From 8ab5c961e8b40814e5d61734daf19b0dda2e1da7 Mon Sep 17 00:00:00 2001 From: damithsenanayake Date: Thu, 2 Oct 2025 13:04:37 +1000 Subject: [PATCH 001/303] feat: include token streaming and thoughts rendering for anthropic models. --- src/google/adk/models/anthropic_llm.py | 210 +++++++++++++- tests/unittests/models/test_anthropic_llm.py | 4 +- .../models/test_anthropic_max_tokens.py | 268 ++++++++++++++++++ .../models/test_anthropic_streaming.py | 132 +++++++++ .../models/test_anthropic_thinking.py | 254 +++++++++++++++++ 5 files changed, 855 insertions(+), 13 deletions(-) create mode 100644 tests/unittests/models/test_anthropic_max_tokens.py create mode 100644 tests/unittests/models/test_anthropic_streaming.py create mode 100644 tests/unittests/models/test_anthropic_thinking.py diff --git a/src/google/adk/models/anthropic_llm.py b/src/google/adk/models/anthropic_llm.py index 6c20b1b9a5..2df020d0e8 100644 --- a/src/google/adk/models/anthropic_llm.py +++ b/src/google/adk/models/anthropic_llm.py @@ -30,6 +30,7 @@ from typing import Union from anthropic import AnthropicVertex +from anthropic import AsyncAnthropicVertex from anthropic import NOT_GIVEN from anthropic import types as anthropic_types from google.genai import types @@ -166,7 +167,83 @@ def content_block_to_part( ) part.function_call.id = content_block.id return part - raise NotImplementedError("Not supported yet.") + + # Handle thinking blocks from Anthropic extended thinking feature + # Thinking blocks have a 'thinking' attribute containing the reasoning text + if hasattr(content_block, "thinking"): + thinking_text = content_block.thinking + logger.info(f"Received thinking block ({len(thinking_text)} chars)") + # Return as Part with thought=True (standard GenAI format) + return types.Part(text=thinking_text, thought=True) + + # Alternative check: some versions may use type attribute + if ( + hasattr(content_block, "type") + and getattr(content_block, "type", None) == "thinking" + ): + thinking_text = str(content_block) + logger.info( + f"Received thinking block via type check ({len(thinking_text)} chars)" + ) + # Return as Part with thought=True (standard GenAI format) + return types.Part(text=thinking_text, thought=True) + + raise NotImplementedError( + f"Not supported yet: {type(content_block).__name__}" + ) + + +def streaming_event_to_llm_response( + event: anthropic_types.MessageStreamEvent, +) -> Optional[LlmResponse]: + """Convert Anthropic streaming events to ADK LlmResponse format. + + Args: + event: Anthropic streaming event + + Returns: + LlmResponse or None if event should be skipped + """ + # Handle content block deltas + if event.type == "content_block_delta": + delta = event.delta + + # Text delta + if hasattr(delta, "type") and delta.type == "text_delta": + return LlmResponse( + content=types.Content( + role="model", + parts=[types.Part.from_text(text=delta.text)], + ), + partial=True, + ) + + # Thinking delta + if hasattr(delta, "type") and delta.type == "thinking_delta": + return LlmResponse( + content=types.Content( + role="model", + parts=[types.Part(text=delta.thinking, thought=True)], + ), + partial=True, + ) + + # Handle message deltas (usage updates) + elif event.type == "message_delta": + if hasattr(event, "usage"): + return LlmResponse( + usage_metadata=types.GenerateContentResponseUsageMetadata( + prompt_token_count=getattr(event.usage, "input_tokens", 0), + candidates_token_count=getattr(event.usage, "output_tokens", 0), + total_token_count=( + getattr(event.usage, "input_tokens", 0) + + getattr(event.usage, "output_tokens", 0) + ), + ), + ) + + # Ignore start/stop events + return None def message_to_generate_content_response( @@ -283,19 +360,128 @@ async def generate_content_async( if llm_request.tools_dict else NOT_GIVEN ) - # TODO(b/421255973): Enable streaming for anthropic models. - message = self._anthropic_client.messages.create( - model=llm_request.model, - system=llm_request.config.system_instruction, - messages=messages, - tools=tools, - tool_choice=tool_choice, - max_tokens=self.max_tokens, + + # Extract and convert thinking config from ADK to Anthropic format + thinking = NOT_GIVEN + if llm_request.config and llm_request.config.thinking_config: + budget = llm_request.config.thinking_config.thinking_budget + if budget and budget != 0: + if budget == -1: + # Automatic thinking budget - use recommended default of 10000 tokens + thinking = {"type": "enabled", "budget_tokens": 1024} + logger.info( + "Extended thinking enabled (automatic budget: 10000 tokens)" + ) + elif budget > 0: + # Specific budget - enforce minimum 1024 tokens + actual_budget = max(budget, 1024) + thinking = {"type": "enabled", "budget_tokens": actual_budget} + logger.info( + f"Extended thinking enabled (budget: {actual_budget} tokens)" + ) + + # Determine if streaming should be used + use_streaming = ( + stream # From runtime context (streaming_mode == SSE) + or thinking + != NOT_GIVEN # Extended thinking requires streaming (Anthropic-specific) + or self.max_tokens + >= 8192 # Large max_tokens may exceed 10min timeout (Anthropic SDK requirement) ) - yield message_to_generate_content_response(message) + + if use_streaming: + # Use streaming mode + logger.info( + f"Using streaming mode (stream={stream}, " + f"has_thinking={thinking != NOT_GIVEN}, " + f"large_max_tokens={self.max_tokens >= 8192})" + ) + + # Accumulators for text and thinking + accumulated_text = "" + accumulated_thinking = "" + + async with self._anthropic_client.messages.stream( + model=llm_request.model, + system=llm_request.config.system_instruction, + messages=messages, + tools=tools, + tool_choice=tool_choice, + max_tokens=self.max_tokens, + thinking=thinking, + ) as anthropic_stream: + # Process streaming events + async for event in anthropic_stream: + # Convert Anthropic event to LlmResponse + if llm_response := streaming_event_to_llm_response(event): + # Track accumulated content + is_thought = False + if llm_response.content and llm_response.content.parts: + for part in llm_response.content.parts: + if part.text: + if hasattr(part, "thought") and part.thought: + accumulated_thinking += part.text + is_thought = True + else: + accumulated_text += part.text + + # If we have accumulated thinking and now getting text, + # yield the accumulated thinking first + if accumulated_thinking and accumulated_text and not is_thought: + yield LlmResponse( + content=types.Content( + role="model", + parts=[ + types.Part(text=accumulated_thinking, thought=True) + ], + ), + partial=True, + ) + accumulated_thinking = "" # Reset after yielding + + # Yield partial response (but skip individual thought deltas) + if not is_thought: + yield llm_response + + # Get final message to extract usage metadata + final_message = await anthropic_stream.get_final_message() + + # Build final aggregated response with complete content + parts = [] + if accumulated_thinking: + parts.append(types.Part(text=accumulated_thinking, thought=True)) + if accumulated_text: + parts.append(types.Part.from_text(text=accumulated_text)) + + # Only yield final aggregated response if we have content + if parts: + yield LlmResponse( + content=types.Content(role="model", parts=parts), + usage_metadata=types.GenerateContentResponseUsageMetadata( + prompt_token_count=final_message.usage.input_tokens, + candidates_token_count=final_message.usage.output_tokens, + total_token_count=( + final_message.usage.input_tokens + + final_message.usage.output_tokens + ), + ), + ) + + else: + # Non-streaming mode (simple requests without thinking) + logger.info("Using non-streaming mode") + message = await self._anthropic_client.messages.create( + model=llm_request.model, + system=llm_request.config.system_instruction, + messages=messages, + tools=tools, + tool_choice=tool_choice, + max_tokens=self.max_tokens, + ) + yield message_to_generate_content_response(message) @cached_property - def _anthropic_client(self) -> AnthropicVertex: + def _anthropic_client(self) -> AsyncAnthropicVertex: if ( "GOOGLE_CLOUD_PROJECT" not in os.environ or "GOOGLE_CLOUD_LOCATION" not in os.environ @@ -305,7 +491,7 @@ def _anthropic_client(self) -> AnthropicVertex: " Anthropic on Vertex." ) - return AnthropicVertex( + return AsyncAnthropicVertex( project_id=os.environ["GOOGLE_CLOUD_PROJECT"], region=os.environ["GOOGLE_CLOUD_LOCATION"], ) diff --git a/tests/unittests/models/test_anthropic_llm.py b/tests/unittests/models/test_anthropic_llm.py index a81fbc7252..f892c8ddf2 100644 --- a/tests/unittests/models/test_anthropic_llm.py +++ b/tests/unittests/models/test_anthropic_llm.py @@ -293,8 +293,10 @@ async def test_function_declaration_to_tool_param( @pytest.mark.asyncio async def test_generate_content_async( - claude_llm, llm_request, generate_content_response, generate_llm_response + llm_request, generate_content_response, generate_llm_response ): + # Use max_tokens < 8192 to trigger non-streaming mode + claude_llm = Claude(model="claude-3-5-sonnet-v2@20241022", max_tokens=4096) with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: with mock.patch.object( anthropic_llm, diff --git a/tests/unittests/models/test_anthropic_max_tokens.py b/tests/unittests/models/test_anthropic_max_tokens.py new file mode 100644 index 0000000000..ccd3c66359 --- /dev/null +++ b/tests/unittests/models/test_anthropic_max_tokens.py @@ -0,0 +1,268 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Tests for Anthropic max_tokens streaming threshold behavior.""" + +import os +from unittest import mock + +from anthropic import types as anthropic_types +from google.adk.models.anthropic_llm import Claude +from google.adk.models.llm_request import LlmRequest +from google.genai import types +import pytest + + +@pytest.fixture +def base_llm_request(): + return LlmRequest( + model="claude-opus-4-1@20250805", + contents=[ + types.Content( + role="user", parts=[types.Part.from_text(text="What is 2+2?")] + ) + ], + config=types.GenerateContentConfig( + system_instruction="You are a helpful assistant" + ), + ) + + +@pytest.mark.asyncio +async def test_max_tokens_below_threshold_uses_non_streaming(base_llm_request): + """Test that max_tokens < 8192 uses non-streaming mode.""" + claude_llm = Claude(model="claude-opus-4-1@20250805", max_tokens=4096) + + with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: + mock_client.messages.create = mock.AsyncMock( + return_value=anthropic_types.Message( + id="test", + content=[anthropic_types.TextBlock(text="4", type="text")], + model="claude-opus-4-1@20250805", + role="assistant", + stop_reason="end_turn", + type="message", + usage=anthropic_types.Usage(input_tokens=10, output_tokens=2), + ) + ) + + responses = [] + async for response in claude_llm.generate_content_async( + base_llm_request, stream=False + ): + responses.append(response) + + # Verify non-streaming mode was used + mock_client.messages.create.assert_called_once() + mock_client.messages.stream.assert_not_called() + + +@pytest.mark.asyncio +async def test_max_tokens_at_threshold_uses_streaming(base_llm_request): + """Test that max_tokens >= 8192 uses streaming mode.""" + claude_llm = Claude(model="claude-opus-4-1@20250805", max_tokens=8192) + + with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: + mock_stream = mock.AsyncMock() + mock_stream.__aenter__ = mock.AsyncMock(return_value=mock_stream) + mock_stream.__aexit__ = mock.AsyncMock() + mock_stream.__aiter__ = mock.AsyncMock(return_value=iter([])) + mock_stream.get_final_message = mock.AsyncMock( + return_value=anthropic_types.Message( + id="test", + content=[], + model="claude-opus-4-1@20250805", + role="assistant", + stop_reason="end_turn", + type="message", + usage=anthropic_types.Usage(input_tokens=10, output_tokens=2), + ) + ) + mock_client.messages.stream = mock.Mock(return_value=mock_stream) + + responses = [] + async for response in claude_llm.generate_content_async( + base_llm_request, stream=False + ): + responses.append(response) + + # Verify streaming mode was used + mock_client.messages.stream.assert_called_once() + assert not mock_client.messages.create.called + + +@pytest.mark.asyncio +async def test_max_tokens_above_threshold_uses_streaming(base_llm_request): + """Test that max_tokens > 8192 uses streaming mode.""" + claude_llm = Claude(model="claude-opus-4-1@20250805", max_tokens=16000) + + with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: + mock_stream = mock.AsyncMock() + mock_stream.__aenter__ = mock.AsyncMock(return_value=mock_stream) + mock_stream.__aexit__ = mock.AsyncMock() + mock_stream.__aiter__ = mock.AsyncMock(return_value=iter([])) + mock_stream.get_final_message = mock.AsyncMock( + return_value=anthropic_types.Message( + id="test", + content=[], + model="claude-opus-4-1@20250805", + role="assistant", + stop_reason="end_turn", + type="message", + usage=anthropic_types.Usage(input_tokens=10, output_tokens=2), + ) + ) + mock_client.messages.stream = mock.Mock(return_value=mock_stream) + + responses = [] + async for response in claude_llm.generate_content_async( + base_llm_request, stream=False + ): + responses.append(response) + + # Verify streaming mode was used + mock_client.messages.stream.assert_called_once() + assert not mock_client.messages.create.called + + +@pytest.mark.asyncio +async def test_stream_flag_overrides_max_tokens(base_llm_request): + """Test that stream=True forces streaming regardless of max_tokens.""" + claude_llm = Claude(model="claude-opus-4-1@20250805", max_tokens=1024) + + with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: + mock_stream = mock.AsyncMock() + mock_stream.__aenter__ = mock.AsyncMock(return_value=mock_stream) + mock_stream.__aexit__ = mock.AsyncMock() + mock_stream.__aiter__ = mock.AsyncMock(return_value=iter([])) + mock_stream.get_final_message = mock.AsyncMock( + return_value=anthropic_types.Message( + id="test", + content=[], + model="claude-opus-4-1@20250805", + role="assistant", + stop_reason="end_turn", + type="message", + usage=anthropic_types.Usage(input_tokens=10, output_tokens=2), + ) + ) + mock_client.messages.stream = mock.Mock(return_value=mock_stream) + + responses = [] + async for response in claude_llm.generate_content_async( + base_llm_request, stream=True + ): + responses.append(response) + + # Verify streaming mode was used even with low max_tokens + mock_client.messages.stream.assert_called_once() + assert not mock_client.messages.create.called + + +@pytest.mark.asyncio +async def test_thinking_enables_streaming_regardless_max_tokens( + base_llm_request, +): + """Test that thinking config enables streaming regardless of max_tokens.""" + claude_llm = Claude(model="claude-opus-4-1@20250805", max_tokens=1024) + base_llm_request.config.thinking_config = types.ThinkingConfig( + include_thoughts=True, thinking_budget=-1 + ) + + with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: + mock_stream = mock.AsyncMock() + mock_stream.__aenter__ = mock.AsyncMock(return_value=mock_stream) + mock_stream.__aexit__ = mock.AsyncMock() + mock_stream.__aiter__ = mock.AsyncMock(return_value=iter([])) + mock_stream.get_final_message = mock.AsyncMock( + return_value=anthropic_types.Message( + id="test", + content=[], + model="claude-opus-4-1@20250805", + role="assistant", + stop_reason="end_turn", + type="message", + usage=anthropic_types.Usage(input_tokens=10, output_tokens=2), + ) + ) + mock_client.messages.stream = mock.Mock(return_value=mock_stream) + + responses = [] + async for response in claude_llm.generate_content_async( + base_llm_request, stream=False + ): + responses.append(response) + + # Verify streaming mode was used due to thinking config + mock_client.messages.stream.assert_called_once() + assert not mock_client.messages.create.called + + +@pytest.mark.asyncio +async def test_streaming_decision_logic(base_llm_request): + """Test the complete streaming decision logic.""" + # Case 1: No streaming triggers + claude_llm_1 = Claude(model="claude-opus-4-1@20250805", max_tokens=4096) + + with mock.patch.object(claude_llm_1, "_anthropic_client") as mock_client: + mock_client.messages.create = mock.AsyncMock( + return_value=anthropic_types.Message( + id="test", + content=[anthropic_types.TextBlock(text="4", type="text")], + model="claude-opus-4-1@20250805", + role="assistant", + stop_reason="end_turn", + type="message", + usage=anthropic_types.Usage(input_tokens=10, output_tokens=2), + ) + ) + + responses = [] + async for response in claude_llm_1.generate_content_async( + base_llm_request, stream=False + ): + responses.append(response) + + # Should use non-streaming + mock_client.messages.create.assert_called_once() + + # Case 2: Large max_tokens trigger + claude_llm_2 = Claude(model="claude-opus-4-1@20250805", max_tokens=10000) + + with mock.patch.object(claude_llm_2, "_anthropic_client") as mock_client: + mock_stream = mock.AsyncMock() + mock_stream.__aenter__ = mock.AsyncMock(return_value=mock_stream) + mock_stream.__aexit__ = mock.AsyncMock() + mock_stream.__aiter__ = mock.AsyncMock(return_value=iter([])) + mock_stream.get_final_message = mock.AsyncMock( + return_value=anthropic_types.Message( + id="test", + content=[], + model="claude-opus-4-1@20250805", + role="assistant", + stop_reason="end_turn", + type="message", + usage=anthropic_types.Usage(input_tokens=10, output_tokens=2), + ) + ) + mock_client.messages.stream = mock.Mock(return_value=mock_stream) + + responses = [] + async for response in claude_llm_2.generate_content_async( + base_llm_request, stream=False + ): + responses.append(response) + + # Should use streaming + mock_client.messages.stream.assert_called_once() diff --git a/tests/unittests/models/test_anthropic_streaming.py b/tests/unittests/models/test_anthropic_streaming.py new file mode 100644 index 0000000000..0f0f05e5dc --- /dev/null +++ b/tests/unittests/models/test_anthropic_streaming.py @@ -0,0 +1,132 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Tests for Anthropic streaming with thinking support.""" + +import os +from unittest import mock + +from anthropic import types as anthropic_types +from google.adk.models.anthropic_llm import Claude +from google.adk.models.anthropic_llm import streaming_event_to_llm_response +from google.adk.models.llm_request import LlmRequest +from google.genai import types +import pytest + + +@pytest.fixture +def claude_llm(): + return Claude(model="claude-opus-4-1@20250805", max_tokens=16000) + + +@pytest.fixture +def llm_request_with_thinking(): + return LlmRequest( + model="claude-opus-4-1@20250805", + contents=[ + types.Content( + role="user", + parts=[types.Part.from_text(text="Explain quantum computing")], + ) + ], + config=types.GenerateContentConfig( + system_instruction="You are a helpful assistant", + thinking_config=types.ThinkingConfig( + include_thoughts=True, thinking_budget=-1 + ), + ), + ) + + +def test_streaming_event_text_delta(): + """Test that text_delta events are converted correctly.""" + + class TextDelta: + type = "text_delta" + text = "Hello " + + class ContentBlockDeltaEvent: + type = "content_block_delta" + delta = TextDelta() + + event = ContentBlockDeltaEvent() + llm_response = streaming_event_to_llm_response(event) + + assert llm_response is not None + assert llm_response.partial is True + assert llm_response.content is not None + assert llm_response.content.role == "model" + assert len(llm_response.content.parts) == 1 + assert llm_response.content.parts[0].text == "Hello " + assert ( + not hasattr(llm_response.content.parts[0], "thought") + or not llm_response.content.parts[0].thought + ) + + +def test_streaming_event_thinking_delta(): + """Test that thinking_delta events are converted with thought=True.""" + + class ThinkingDelta: + type = "thinking_delta" + thinking = "Let me think... " + + class ContentBlockDeltaEvent: + type = "content_block_delta" + delta = ThinkingDelta() + + event = ContentBlockDeltaEvent() + llm_response = streaming_event_to_llm_response(event) + + assert llm_response is not None + assert llm_response.partial is True + assert llm_response.content is not None + assert llm_response.content.role == "model" + assert len(llm_response.content.parts) == 1 + assert llm_response.content.parts[0].text == "Let me think... " + assert hasattr(llm_response.content.parts[0], "thought") + assert llm_response.content.parts[0].thought is True + + +def test_streaming_event_message_delta_usage(): + """Test that message_delta events with usage are converted correctly.""" + + class Usage: + input_tokens = 100 + output_tokens = 50 + + class MessageDeltaEvent: + type = "message_delta" + usage = Usage() + + event = MessageDeltaEvent() + llm_response = streaming_event_to_llm_response(event) + + assert llm_response is not None + assert llm_response.usage_metadata is not None + assert llm_response.usage_metadata.prompt_token_count == 100 + assert llm_response.usage_metadata.candidates_token_count == 50 + assert llm_response.usage_metadata.total_token_count == 150 + + +def test_streaming_event_ignored(): + """Test that start/stop events are ignored.""" + + class MessageStartEvent: + type = "message_start" + + event = MessageStartEvent() + llm_response = streaming_event_to_llm_response(event) + + assert llm_response is None diff --git a/tests/unittests/models/test_anthropic_thinking.py b/tests/unittests/models/test_anthropic_thinking.py new file mode 100644 index 0000000000..19c3feedb5 --- /dev/null +++ b/tests/unittests/models/test_anthropic_thinking.py @@ -0,0 +1,254 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Tests for Anthropic Extended Thinking configuration.""" + +import os +from unittest import mock + +from anthropic import types as anthropic_types +from google.adk.models.anthropic_llm import Claude +from google.adk.models.anthropic_llm import content_block_to_part +from google.adk.models.llm_request import LlmRequest +from google.genai import types +import pytest + + +@pytest.fixture +def claude_llm(): + return Claude(model="claude-opus-4-1@20250805", max_tokens=4096) + + +@pytest.fixture +def base_llm_request(): + return LlmRequest( + model="claude-opus-4-1@20250805", + contents=[ + types.Content( + role="user", parts=[types.Part.from_text(text="What is 2+2?")] + ) + ], + config=types.GenerateContentConfig( + system_instruction="You are a helpful assistant" + ), + ) + + +@pytest.mark.asyncio +async def test_thinking_budget_automatic(claude_llm, base_llm_request): + """Test that thinking_budget=-1 uses automatic budget (1024 tokens).""" + base_llm_request.config.thinking_config = types.ThinkingConfig( + include_thoughts=True, thinking_budget=-1 + ) + + with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: + mock_stream = mock.AsyncMock() + mock_stream.__aenter__ = mock.AsyncMock(return_value=mock_stream) + mock_stream.__aexit__ = mock.AsyncMock() + mock_stream.__aiter__ = mock.AsyncMock(return_value=iter([])) + mock_stream.get_final_message = mock.AsyncMock( + return_value=anthropic_types.Message( + id="test", + content=[], + model="claude-opus-4-1@20250805", + role="assistant", + stop_reason="end_turn", + type="message", + usage=anthropic_types.Usage(input_tokens=10, output_tokens=20), + ) + ) + mock_client.messages.stream = mock.Mock(return_value=mock_stream) + + responses = [] + async for response in claude_llm.generate_content_async( + base_llm_request, stream=False + ): + responses.append(response) + + # Verify thinking parameter was passed with 1024 tokens + mock_client.messages.stream.assert_called_once() + call_kwargs = mock_client.messages.stream.call_args.kwargs + assert call_kwargs["thinking"] == {"type": "enabled", "budget_tokens": 1024} + + +@pytest.mark.asyncio +async def test_thinking_budget_disabled(claude_llm, base_llm_request): + """Test that thinking_budget=0 disables thinking.""" + base_llm_request.config.thinking_config = types.ThinkingConfig( + include_thoughts=True, thinking_budget=0 + ) + + with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: + mock_client.messages.create = mock.AsyncMock( + return_value=anthropic_types.Message( + id="test", + content=[anthropic_types.TextBlock(text="4", type="text")], + model="claude-opus-4-1@20250805", + role="assistant", + stop_reason="end_turn", + type="message", + usage=anthropic_types.Usage(input_tokens=10, output_tokens=2), + ) + ) + + responses = [] + async for response in claude_llm.generate_content_async( + base_llm_request, stream=False + ): + responses.append(response) + + # Verify non-streaming mode was used (thinking disabled) + mock_client.messages.create.assert_called_once() + # Thinking should not be in the call + assert "thinking" not in mock_client.messages.create.call_args.kwargs + + +@pytest.mark.asyncio +async def test_thinking_budget_specific_value(claude_llm, base_llm_request): + """Test that thinking_budget with specific value is used.""" + base_llm_request.config.thinking_config = types.ThinkingConfig( + include_thoughts=True, thinking_budget=5000 + ) + + with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: + mock_stream = mock.AsyncMock() + mock_stream.__aenter__ = mock.AsyncMock(return_value=mock_stream) + mock_stream.__aexit__ = mock.AsyncMock() + mock_stream.__aiter__ = mock.AsyncMock(return_value=iter([])) + mock_stream.get_final_message = mock.AsyncMock( + return_value=anthropic_types.Message( + id="test", + content=[], + model="claude-opus-4-1@20250805", + role="assistant", + stop_reason="end_turn", + type="message", + usage=anthropic_types.Usage(input_tokens=10, output_tokens=20), + ) + ) + mock_client.messages.stream = mock.Mock(return_value=mock_stream) + + responses = [] + async for response in claude_llm.generate_content_async( + base_llm_request, stream=False + ): + responses.append(response) + + # Verify thinking parameter was passed with 5000 tokens + mock_client.messages.stream.assert_called_once() + call_kwargs = mock_client.messages.stream.call_args.kwargs + assert call_kwargs["thinking"] == {"type": "enabled", "budget_tokens": 5000} + + +@pytest.mark.asyncio +async def test_thinking_budget_minimum_enforced(claude_llm, base_llm_request): + """Test that thinking budget below 1024 is enforced to minimum 1024.""" + base_llm_request.config.thinking_config = types.ThinkingConfig( + include_thoughts=True, thinking_budget=500 + ) + + with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: + mock_stream = mock.AsyncMock() + mock_stream.__aenter__ = mock.AsyncMock(return_value=mock_stream) + mock_stream.__aexit__ = mock.AsyncMock() + mock_stream.__aiter__ = mock.AsyncMock(return_value=iter([])) + mock_stream.get_final_message = mock.AsyncMock( + return_value=anthropic_types.Message( + id="test", + content=[], + model="claude-opus-4-1@20250805", + role="assistant", + stop_reason="end_turn", + type="message", + usage=anthropic_types.Usage(input_tokens=10, output_tokens=20), + ) + ) + mock_client.messages.stream = mock.Mock(return_value=mock_stream) + + responses = [] + async for response in claude_llm.generate_content_async( + base_llm_request, stream=False + ): + responses.append(response) + + # Verify thinking parameter was enforced to minimum 1024 tokens + mock_client.messages.stream.assert_called_once() + call_kwargs = mock_client.messages.stream.call_args.kwargs + assert call_kwargs["thinking"] == {"type": "enabled", "budget_tokens": 1024} + + +def test_thinking_block_parsing(): + """Test that thinking blocks are parsed as Part(thought=True).""" + + # Create a mock thinking block + class ThinkingBlock: + + def __init__(self): + self.thinking = "Let me think about this step by step..." + self.type = "thinking" + + thinking_block = ThinkingBlock() + part = content_block_to_part(thinking_block) + + assert part.text == "Let me think about this step by step..." + assert hasattr(part, "thought") + assert part.thought is True + + +def test_thinking_block_type_check(): + """Test alternative thinking block detection via type attribute.""" + + # Create a mock thinking block with only type attribute + class ThinkingBlockTypeOnly: + + def __init__(self): + self.type = "thinking" + + def __str__(self): + return "Thinking content here" + + thinking_block = ThinkingBlockTypeOnly() + part = content_block_to_part(thinking_block) + + assert part.text == "Thinking content here" + assert hasattr(part, "thought") + assert part.thought is True + + +@pytest.mark.asyncio +async def test_no_thinking_config(claude_llm, base_llm_request): + """Test that no thinking config results in normal operation.""" + # No thinking_config set + + with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: + mock_client.messages.create = mock.AsyncMock( + return_value=anthropic_types.Message( + id="test", + content=[anthropic_types.TextBlock(text="4", type="text")], + model="claude-opus-4-1@20250805", + role="assistant", + stop_reason="end_turn", + type="message", + usage=anthropic_types.Usage(input_tokens=10, output_tokens=2), + ) + ) + + responses = [] + async for response in claude_llm.generate_content_async( + base_llm_request, stream=False + ): + responses.append(response) + + # Verify non-streaming mode was used + mock_client.messages.create.assert_called_once() From ae8b49e8c5ba119989e6b2280bf9382a470db4b1 Mon Sep 17 00:00:00 2001 From: damithsenanayake Date: Thu, 2 Oct 2025 13:32:39 +1000 Subject: [PATCH 002/303] fix: default value fix --- src/google/adk/models/anthropic_llm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/google/adk/models/anthropic_llm.py b/src/google/adk/models/anthropic_llm.py index 2df020d0e8..43132f1fbd 100644 --- a/src/google/adk/models/anthropic_llm.py +++ b/src/google/adk/models/anthropic_llm.py @@ -368,7 +368,7 @@ async def generate_content_async( if budget and budget != 0: if budget == -1: # Automatic thinking budget - use recommended default of 10000 tokens - thinking = {"type": "enabled", "budget_tokens": 1024} + thinking = {"type": "enabled", "budget_tokens": 10000} logger.info( "Extended thinking enabled (automatic budget: 10000 tokens)" ) From 5b7b6ededd0f87f6b742aef54b3592301856b29a Mon Sep 17 00:00:00 2001 From: damithsenanayake Date: Thu, 2 Oct 2025 13:40:52 +1000 Subject: [PATCH 003/303] refactor: gemini code review --- src/google/adk/models/anthropic_llm.py | 28 ++++++++++++-------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/google/adk/models/anthropic_llm.py b/src/google/adk/models/anthropic_llm.py index 43132f1fbd..9f9bfb8bdd 100644 --- a/src/google/adk/models/anthropic_llm.py +++ b/src/google/adk/models/anthropic_llm.py @@ -209,7 +209,7 @@ def streaming_event_to_llm_response( delta = event.delta # Text delta - if hasattr(delta, "type") and delta.type == "text_delta": + if delta.type == "text_delta": return LlmResponse( content=types.Content( role="model", @@ -219,7 +219,7 @@ def streaming_event_to_llm_response( ) # Thinking delta - if hasattr(delta, "type") and delta.type == "thinking_delta": + elif delta.type == "thinking_delta": return LlmResponse( content=types.Content( role="model", @@ -231,14 +231,13 @@ def streaming_event_to_llm_response( # Handle message deltas (usage updates) elif event.type == "message_delta": if hasattr(event, "usage"): + input_tokens = getattr(event.usage, "input_tokens", 0) + output_tokens = getattr(event.usage, "output_tokens", 0) return LlmResponse( usage_metadata=types.GenerateContentResponseUsageMetadata( - prompt_token_count=getattr(event.usage, "input_tokens", 0), - candidates_token_count=getattr(event.usage, "output_tokens", 0), - total_token_count=( - getattr(event.usage, "input_tokens", 0) - + getattr(event.usage, "output_tokens", 0) - ), + prompt_token_count=input_tokens, + candidates_token_count=output_tokens, + total_token_count=input_tokens + output_tokens, ), ) @@ -365,7 +364,7 @@ async def generate_content_async( thinking = NOT_GIVEN if llm_request.config and llm_request.config.thinking_config: budget = llm_request.config.thinking_config.thinking_budget - if budget and budget != 0: + if budget: if budget == -1: # Automatic thinking budget - use recommended default of 10000 tokens thinking = {"type": "enabled", "budget_tokens": 10000} @@ -455,15 +454,14 @@ async def generate_content_async( # Only yield final aggregated response if we have content if parts: + input_tokens = final_message.usage.input_tokens + output_tokens = final_message.usage.output_tokens yield LlmResponse( content=types.Content(role="model", parts=parts), usage_metadata=types.GenerateContentResponseUsageMetadata( - prompt_token_count=final_message.usage.input_tokens, - candidates_token_count=final_message.usage.output_tokens, - total_token_count=( - final_message.usage.input_tokens - + final_message.usage.output_tokens - ), + prompt_token_count=input_tokens, + candidates_token_count=output_tokens, + total_token_count=input_tokens + output_tokens, ), ) From c77e5d5d7462fe9121b5da22029571b91d03d162 Mon Sep 17 00:00:00 2001 From: damithsenanayake Date: Thu, 2 Oct 2025 13:42:38 +1000 Subject: [PATCH 004/303] fix: test fix for default tokens --- tests/unittests/models/test_anthropic_thinking.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/unittests/models/test_anthropic_thinking.py b/tests/unittests/models/test_anthropic_thinking.py index 19c3feedb5..fed8ae48df 100644 --- a/tests/unittests/models/test_anthropic_thinking.py +++ b/tests/unittests/models/test_anthropic_thinking.py @@ -47,7 +47,7 @@ def base_llm_request(): @pytest.mark.asyncio async def test_thinking_budget_automatic(claude_llm, base_llm_request): - """Test that thinking_budget=-1 uses automatic budget (1024 tokens).""" + """Test that thinking_budget=-1 uses automatic budget (10000 tokens).""" base_llm_request.config.thinking_config = types.ThinkingConfig( include_thoughts=True, thinking_budget=-1 ) @@ -76,10 +76,10 @@ async def test_thinking_budget_automatic(claude_llm, base_llm_request): ): responses.append(response) - # Verify thinking parameter was passed with 1024 tokens + # Verify thinking parameter was passed with 10000 tokens mock_client.messages.stream.assert_called_once() call_kwargs = mock_client.messages.stream.call_args.kwargs - assert call_kwargs["thinking"] == {"type": "enabled", "budget_tokens": 1024} + assert call_kwargs["thinking"] == {"type": "enabled", "budget_tokens": 10000} @pytest.mark.asyncio From 769e57f0b2261b15b58f72ebac2894ef437034ad Mon Sep 17 00:00:00 2001 From: damithsenanayake Date: Thu, 2 Oct 2025 22:14:51 +1000 Subject: [PATCH 005/303] wip: tool calling fixed --- src/google/adk/models/anthropic_llm.py | 97 +++++++++++++++----------- 1 file changed, 58 insertions(+), 39 deletions(-) diff --git a/src/google/adk/models/anthropic_llm.py b/src/google/adk/models/anthropic_llm.py index 9f9bfb8bdd..fd6e84303b 100644 --- a/src/google/adk/models/anthropic_llm.py +++ b/src/google/adk/models/anthropic_llm.py @@ -85,8 +85,20 @@ def part_to_message_block( anthropic_types.ImageBlockParam, anthropic_types.ToolUseBlockParam, anthropic_types.ToolResultBlockParam, + dict, # For thinking blocks ]: - if part.text: + # Handle thinking blocks (must check thought=True BEFORE text) + # Thinking is stored as Part(text=..., thought=True, thought_signature=...) + if part.text and hasattr(part, 'thought') and part.thought: + thinking_block = {"type": "thinking", "thinking": part.text} + if hasattr(part, 'thought_signature') and part.thought_signature: + # thought_signature is stored as bytes in Part, but API expects base64 string + thinking_block["signature"] = base64.b64encode(part.thought_signature).decode('utf-8') + logger.debug(f"Including signature with thinking block") + else: + logger.warning(f"No signature found for thinking block - this may cause API errors") + return thinking_block + elif part.text: return anthropic_types.TextBlockParam(text=part.text, type="text") elif part.function_call: assert part.function_call.name @@ -140,14 +152,26 @@ def part_to_message_block( def content_to_message_param( content: types.Content, ) -> anthropic_types.MessageParam: - message_block = [] + thinking_blocks = [] + other_blocks = [] + for part in content.parts or []: # Image data is not supported in Claude for model turns. if _is_image_part(part): logger.warning("Image data is not supported in Claude for model turns.") continue - message_block.append(part_to_message_block(part)) + block = part_to_message_block(part) + + # Separate thinking blocks from other blocks + # Anthropic requires thinking blocks to come FIRST in assistant messages + if isinstance(block, dict) and block.get("type") == "thinking": + thinking_blocks.append(block) + else: + other_blocks.append(block) + + # Thinking blocks MUST come first (Anthropic API requirement) + message_block = thinking_blocks + other_blocks return { "role": to_claude_role(content.role), @@ -172,9 +196,10 @@ def content_block_to_part( # Thinking blocks have a 'thinking' attribute containing the reasoning text if hasattr(content_block, "thinking"): thinking_text = content_block.thinking - logger.info(f"Received thinking block ({len(thinking_text)} chars)") - # Return as Part with thought=True (standard GenAI format) - return types.Part(text=thinking_text, thought=True) + signature = getattr(content_block, 'signature', None) + logger.info(f"Received thinking block ({len(thinking_text)} chars, signature={'present' if signature else 'missing'})") + # Return as Part with thought=True and preserve signature (standard GenAI format) + return types.Part(text=thinking_text, thought=True, thought_signature=signature) # Alternative check: some versions may use type attribute if ( @@ -182,11 +207,12 @@ def content_block_to_part( and getattr(content_block, "type", None) == "thinking" ): thinking_text = str(content_block) + signature = getattr(content_block, 'signature', None) logger.info( - f"Received thinking block via type check ({len(thinking_text)} chars)" + f"Received thinking block via type check ({len(thinking_text)} chars, signature={'present' if signature else 'missing'})" ) - # Return as Part with thought=True (standard GenAI format) - return types.Part(text=thinking_text, thought=True) + # Return as Part with thought=True and preserve signature (standard GenAI format) + return types.Part(text=thinking_text, thought=True, thought_signature=signature) raise NotImplementedError( f"Not supported yet: {type(content_block).__name__}" @@ -231,8 +257,8 @@ def streaming_event_to_llm_response( # Handle message deltas (usage updates) elif event.type == "message_delta": if hasattr(event, "usage"): - input_tokens = getattr(event.usage, "input_tokens", 0) - output_tokens = getattr(event.usage, "output_tokens", 0) + input_tokens = getattr(event.usage, "input_tokens", 0) or 0 + output_tokens = getattr(event.usage, "output_tokens", 0) or 0 return LlmResponse( usage_metadata=types.GenerateContentResponseUsageMetadata( prompt_token_count=input_tokens, @@ -362,33 +388,27 @@ async def generate_content_async( # Extract and convert thinking config from ADK to Anthropic format thinking = NOT_GIVEN + if llm_request.config and llm_request.config.thinking_config: budget = llm_request.config.thinking_config.thinking_budget if budget: if budget == -1: - # Automatic thinking budget - use recommended default of 10000 tokens - thinking = {"type": "enabled", "budget_tokens": 10000} - logger.info( - "Extended thinking enabled (automatic budget: 10000 tokens)" + raise ValueError( + "Unlimited thinking budget (-1) is not supported with Claude." ) elif budget > 0: - # Specific budget - enforce minimum 1024 tokens - actual_budget = max(budget, 1024) - thinking = {"type": "enabled", "budget_tokens": actual_budget} + + thinking = {"type": "enabled", "budget_tokens": budget} logger.info( - f"Extended thinking enabled (budget: {actual_budget} tokens)" + f"Extended thinking enabled (budget: {budget} tokens)" ) + else: + logger.warning(f"Budget not given! budget={budget}") + else: + logger.warning(f"No thinking_config found in llm_request.config") - # Determine if streaming should be used - use_streaming = ( - stream # From runtime context (streaming_mode == SSE) - or thinking - != NOT_GIVEN # Extended thinking requires streaming (Anthropic-specific) - or self.max_tokens - >= 8192 # Large max_tokens may exceed 10min timeout (Anthropic SDK requirement) - ) - if use_streaming: + if stream: # Use streaming mode logger.info( f"Using streaming mode (stream={stream}, " @@ -426,6 +446,8 @@ async def generate_content_async( # If we have accumulated thinking and now getting text, # yield the accumulated thinking first + # NOTE: This partial response is for UI display only + # The final response with signature will be yielded after the stream ends if accumulated_thinking and accumulated_text and not is_thought: yield LlmResponse( content=types.Content( @@ -442,18 +464,14 @@ async def generate_content_async( if not is_thought: yield llm_response - # Get final message to extract usage metadata + # Get final message with complete content blocks (includes signatures) final_message = await anthropic_stream.get_final_message() - # Build final aggregated response with complete content - parts = [] - if accumulated_thinking: - parts.append(types.Part(text=accumulated_thinking, thought=True)) - if accumulated_text: - parts.append(types.Part.from_text(text=accumulated_text)) - - # Only yield final aggregated response if we have content - if parts: + # Build final response from complete content blocks to preserve thinking signatures + # IMPORTANT: Use final_message.content instead of accumulated strings + # because accumulated strings don't have signatures + if final_message.content: + parts = [content_block_to_part(cb) for cb in final_message.content] input_tokens = final_message.usage.input_tokens output_tokens = final_message.usage.output_tokens yield LlmResponse( @@ -466,7 +484,7 @@ async def generate_content_async( ) else: - # Non-streaming mode (simple requests without thinking) + # Non-streaming mode logger.info("Using non-streaming mode") message = await self._anthropic_client.messages.create( model=llm_request.model, @@ -475,6 +493,7 @@ async def generate_content_async( tools=tools, tool_choice=tool_choice, max_tokens=self.max_tokens, + thinking=thinking, ) yield message_to_generate_content_response(message) From c949900e1e50d54480257a434965864573af853a Mon Sep 17 00:00:00 2001 From: damithsenanayake Date: Thu, 2 Oct 2025 22:27:12 +1000 Subject: [PATCH 006/303] tests: thinking config changes --- .../models/test_anthropic_max_tokens.py | 268 ------------------ .../models/test_anthropic_thinking.py | 142 ++++++---- 2 files changed, 81 insertions(+), 329 deletions(-) delete mode 100644 tests/unittests/models/test_anthropic_max_tokens.py diff --git a/tests/unittests/models/test_anthropic_max_tokens.py b/tests/unittests/models/test_anthropic_max_tokens.py deleted file mode 100644 index ccd3c66359..0000000000 --- a/tests/unittests/models/test_anthropic_max_tokens.py +++ /dev/null @@ -1,268 +0,0 @@ -# Copyright 2025 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""Tests for Anthropic max_tokens streaming threshold behavior.""" - -import os -from unittest import mock - -from anthropic import types as anthropic_types -from google.adk.models.anthropic_llm import Claude -from google.adk.models.llm_request import LlmRequest -from google.genai import types -import pytest - - -@pytest.fixture -def base_llm_request(): - return LlmRequest( - model="claude-opus-4-1@20250805", - contents=[ - types.Content( - role="user", parts=[types.Part.from_text(text="What is 2+2?")] - ) - ], - config=types.GenerateContentConfig( - system_instruction="You are a helpful assistant" - ), - ) - - -@pytest.mark.asyncio -async def test_max_tokens_below_threshold_uses_non_streaming(base_llm_request): - """Test that max_tokens < 8192 uses non-streaming mode.""" - claude_llm = Claude(model="claude-opus-4-1@20250805", max_tokens=4096) - - with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: - mock_client.messages.create = mock.AsyncMock( - return_value=anthropic_types.Message( - id="test", - content=[anthropic_types.TextBlock(text="4", type="text")], - model="claude-opus-4-1@20250805", - role="assistant", - stop_reason="end_turn", - type="message", - usage=anthropic_types.Usage(input_tokens=10, output_tokens=2), - ) - ) - - responses = [] - async for response in claude_llm.generate_content_async( - base_llm_request, stream=False - ): - responses.append(response) - - # Verify non-streaming mode was used - mock_client.messages.create.assert_called_once() - mock_client.messages.stream.assert_not_called() - - -@pytest.mark.asyncio -async def test_max_tokens_at_threshold_uses_streaming(base_llm_request): - """Test that max_tokens >= 8192 uses streaming mode.""" - claude_llm = Claude(model="claude-opus-4-1@20250805", max_tokens=8192) - - with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: - mock_stream = mock.AsyncMock() - mock_stream.__aenter__ = mock.AsyncMock(return_value=mock_stream) - mock_stream.__aexit__ = mock.AsyncMock() - mock_stream.__aiter__ = mock.AsyncMock(return_value=iter([])) - mock_stream.get_final_message = mock.AsyncMock( - return_value=anthropic_types.Message( - id="test", - content=[], - model="claude-opus-4-1@20250805", - role="assistant", - stop_reason="end_turn", - type="message", - usage=anthropic_types.Usage(input_tokens=10, output_tokens=2), - ) - ) - mock_client.messages.stream = mock.Mock(return_value=mock_stream) - - responses = [] - async for response in claude_llm.generate_content_async( - base_llm_request, stream=False - ): - responses.append(response) - - # Verify streaming mode was used - mock_client.messages.stream.assert_called_once() - assert not mock_client.messages.create.called - - -@pytest.mark.asyncio -async def test_max_tokens_above_threshold_uses_streaming(base_llm_request): - """Test that max_tokens > 8192 uses streaming mode.""" - claude_llm = Claude(model="claude-opus-4-1@20250805", max_tokens=16000) - - with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: - mock_stream = mock.AsyncMock() - mock_stream.__aenter__ = mock.AsyncMock(return_value=mock_stream) - mock_stream.__aexit__ = mock.AsyncMock() - mock_stream.__aiter__ = mock.AsyncMock(return_value=iter([])) - mock_stream.get_final_message = mock.AsyncMock( - return_value=anthropic_types.Message( - id="test", - content=[], - model="claude-opus-4-1@20250805", - role="assistant", - stop_reason="end_turn", - type="message", - usage=anthropic_types.Usage(input_tokens=10, output_tokens=2), - ) - ) - mock_client.messages.stream = mock.Mock(return_value=mock_stream) - - responses = [] - async for response in claude_llm.generate_content_async( - base_llm_request, stream=False - ): - responses.append(response) - - # Verify streaming mode was used - mock_client.messages.stream.assert_called_once() - assert not mock_client.messages.create.called - - -@pytest.mark.asyncio -async def test_stream_flag_overrides_max_tokens(base_llm_request): - """Test that stream=True forces streaming regardless of max_tokens.""" - claude_llm = Claude(model="claude-opus-4-1@20250805", max_tokens=1024) - - with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: - mock_stream = mock.AsyncMock() - mock_stream.__aenter__ = mock.AsyncMock(return_value=mock_stream) - mock_stream.__aexit__ = mock.AsyncMock() - mock_stream.__aiter__ = mock.AsyncMock(return_value=iter([])) - mock_stream.get_final_message = mock.AsyncMock( - return_value=anthropic_types.Message( - id="test", - content=[], - model="claude-opus-4-1@20250805", - role="assistant", - stop_reason="end_turn", - type="message", - usage=anthropic_types.Usage(input_tokens=10, output_tokens=2), - ) - ) - mock_client.messages.stream = mock.Mock(return_value=mock_stream) - - responses = [] - async for response in claude_llm.generate_content_async( - base_llm_request, stream=True - ): - responses.append(response) - - # Verify streaming mode was used even with low max_tokens - mock_client.messages.stream.assert_called_once() - assert not mock_client.messages.create.called - - -@pytest.mark.asyncio -async def test_thinking_enables_streaming_regardless_max_tokens( - base_llm_request, -): - """Test that thinking config enables streaming regardless of max_tokens.""" - claude_llm = Claude(model="claude-opus-4-1@20250805", max_tokens=1024) - base_llm_request.config.thinking_config = types.ThinkingConfig( - include_thoughts=True, thinking_budget=-1 - ) - - with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: - mock_stream = mock.AsyncMock() - mock_stream.__aenter__ = mock.AsyncMock(return_value=mock_stream) - mock_stream.__aexit__ = mock.AsyncMock() - mock_stream.__aiter__ = mock.AsyncMock(return_value=iter([])) - mock_stream.get_final_message = mock.AsyncMock( - return_value=anthropic_types.Message( - id="test", - content=[], - model="claude-opus-4-1@20250805", - role="assistant", - stop_reason="end_turn", - type="message", - usage=anthropic_types.Usage(input_tokens=10, output_tokens=2), - ) - ) - mock_client.messages.stream = mock.Mock(return_value=mock_stream) - - responses = [] - async for response in claude_llm.generate_content_async( - base_llm_request, stream=False - ): - responses.append(response) - - # Verify streaming mode was used due to thinking config - mock_client.messages.stream.assert_called_once() - assert not mock_client.messages.create.called - - -@pytest.mark.asyncio -async def test_streaming_decision_logic(base_llm_request): - """Test the complete streaming decision logic.""" - # Case 1: No streaming triggers - claude_llm_1 = Claude(model="claude-opus-4-1@20250805", max_tokens=4096) - - with mock.patch.object(claude_llm_1, "_anthropic_client") as mock_client: - mock_client.messages.create = mock.AsyncMock( - return_value=anthropic_types.Message( - id="test", - content=[anthropic_types.TextBlock(text="4", type="text")], - model="claude-opus-4-1@20250805", - role="assistant", - stop_reason="end_turn", - type="message", - usage=anthropic_types.Usage(input_tokens=10, output_tokens=2), - ) - ) - - responses = [] - async for response in claude_llm_1.generate_content_async( - base_llm_request, stream=False - ): - responses.append(response) - - # Should use non-streaming - mock_client.messages.create.assert_called_once() - - # Case 2: Large max_tokens trigger - claude_llm_2 = Claude(model="claude-opus-4-1@20250805", max_tokens=10000) - - with mock.patch.object(claude_llm_2, "_anthropic_client") as mock_client: - mock_stream = mock.AsyncMock() - mock_stream.__aenter__ = mock.AsyncMock(return_value=mock_stream) - mock_stream.__aexit__ = mock.AsyncMock() - mock_stream.__aiter__ = mock.AsyncMock(return_value=iter([])) - mock_stream.get_final_message = mock.AsyncMock( - return_value=anthropic_types.Message( - id="test", - content=[], - model="claude-opus-4-1@20250805", - role="assistant", - stop_reason="end_turn", - type="message", - usage=anthropic_types.Usage(input_tokens=10, output_tokens=2), - ) - ) - mock_client.messages.stream = mock.Mock(return_value=mock_stream) - - responses = [] - async for response in claude_llm_2.generate_content_async( - base_llm_request, stream=False - ): - responses.append(response) - - # Should use streaming - mock_client.messages.stream.assert_called_once() diff --git a/tests/unittests/models/test_anthropic_thinking.py b/tests/unittests/models/test_anthropic_thinking.py index fed8ae48df..ba839d9123 100644 --- a/tests/unittests/models/test_anthropic_thinking.py +++ b/tests/unittests/models/test_anthropic_thinking.py @@ -17,6 +17,7 @@ import os from unittest import mock +from anthropic import NOT_GIVEN from anthropic import types as anthropic_types from google.adk.models.anthropic_llm import Claude from google.adk.models.anthropic_llm import content_block_to_part @@ -46,40 +47,22 @@ def base_llm_request(): @pytest.mark.asyncio -async def test_thinking_budget_automatic(claude_llm, base_llm_request): - """Test that thinking_budget=-1 uses automatic budget (10000 tokens).""" +async def test_thinking_budget_automatic_raises_error( + claude_llm, base_llm_request +): + """Test that thinking_budget=-1 raises ValueError.""" base_llm_request.config.thinking_config = types.ThinkingConfig( include_thoughts=True, thinking_budget=-1 ) - with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: - mock_stream = mock.AsyncMock() - mock_stream.__aenter__ = mock.AsyncMock(return_value=mock_stream) - mock_stream.__aexit__ = mock.AsyncMock() - mock_stream.__aiter__ = mock.AsyncMock(return_value=iter([])) - mock_stream.get_final_message = mock.AsyncMock( - return_value=anthropic_types.Message( - id="test", - content=[], - model="claude-opus-4-1@20250805", - role="assistant", - stop_reason="end_turn", - type="message", - usage=anthropic_types.Usage(input_tokens=10, output_tokens=20), - ) - ) - mock_client.messages.stream = mock.Mock(return_value=mock_stream) - - responses = [] + with pytest.raises( + ValueError, + match="Unlimited thinking budget \\(-1\\) is not supported with Claude", + ): async for response in claude_llm.generate_content_async( base_llm_request, stream=False ): - responses.append(response) - - # Verify thinking parameter was passed with 10000 tokens - mock_client.messages.stream.assert_called_once() - call_kwargs = mock_client.messages.stream.call_args.kwargs - assert call_kwargs["thinking"] == {"type": "enabled", "budget_tokens": 10000} + pass @pytest.mark.asyncio @@ -110,8 +93,9 @@ async def test_thinking_budget_disabled(claude_llm, base_llm_request): # Verify non-streaming mode was used (thinking disabled) mock_client.messages.create.assert_called_once() - # Thinking should not be in the call - assert "thinking" not in mock_client.messages.create.call_args.kwargs + # Thinking should be NOT_GIVEN when disabled + call_kwargs = mock_client.messages.create.call_args.kwargs + assert call_kwargs.get("thinking") == NOT_GIVEN @pytest.mark.asyncio @@ -122,11 +106,7 @@ async def test_thinking_budget_specific_value(claude_llm, base_llm_request): ) with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: - mock_stream = mock.AsyncMock() - mock_stream.__aenter__ = mock.AsyncMock(return_value=mock_stream) - mock_stream.__aexit__ = mock.AsyncMock() - mock_stream.__aiter__ = mock.AsyncMock(return_value=iter([])) - mock_stream.get_final_message = mock.AsyncMock( + mock_client.messages.create = mock.AsyncMock( return_value=anthropic_types.Message( id="test", content=[], @@ -137,7 +117,6 @@ async def test_thinking_budget_specific_value(claude_llm, base_llm_request): usage=anthropic_types.Usage(input_tokens=10, output_tokens=20), ) ) - mock_client.messages.stream = mock.Mock(return_value=mock_stream) responses = [] async for response in claude_llm.generate_content_async( @@ -146,24 +125,20 @@ async def test_thinking_budget_specific_value(claude_llm, base_llm_request): responses.append(response) # Verify thinking parameter was passed with 5000 tokens - mock_client.messages.stream.assert_called_once() - call_kwargs = mock_client.messages.stream.call_args.kwargs + mock_client.messages.create.assert_called_once() + call_kwargs = mock_client.messages.create.call_args.kwargs assert call_kwargs["thinking"] == {"type": "enabled", "budget_tokens": 5000} @pytest.mark.asyncio -async def test_thinking_budget_minimum_enforced(claude_llm, base_llm_request): - """Test that thinking budget below 1024 is enforced to minimum 1024.""" +async def test_thinking_budget_minimum_value(claude_llm, base_llm_request): + """Test that thinking budget of 1024 tokens (minimum) works.""" base_llm_request.config.thinking_config = types.ThinkingConfig( - include_thoughts=True, thinking_budget=500 + include_thoughts=True, thinking_budget=1024 ) with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: - mock_stream = mock.AsyncMock() - mock_stream.__aenter__ = mock.AsyncMock(return_value=mock_stream) - mock_stream.__aexit__ = mock.AsyncMock() - mock_stream.__aiter__ = mock.AsyncMock(return_value=iter([])) - mock_stream.get_final_message = mock.AsyncMock( + mock_client.messages.create = mock.AsyncMock( return_value=anthropic_types.Message( id="test", content=[], @@ -174,7 +149,6 @@ async def test_thinking_budget_minimum_enforced(claude_llm, base_llm_request): usage=anthropic_types.Usage(input_tokens=10, output_tokens=20), ) ) - mock_client.messages.stream = mock.Mock(return_value=mock_stream) responses = [] async for response in claude_llm.generate_content_async( @@ -182,53 +156,60 @@ async def test_thinking_budget_minimum_enforced(claude_llm, base_llm_request): ): responses.append(response) - # Verify thinking parameter was enforced to minimum 1024 tokens - mock_client.messages.stream.assert_called_once() - call_kwargs = mock_client.messages.stream.call_args.kwargs + # Verify thinking parameter was passed with 1024 tokens + mock_client.messages.create.assert_called_once() + call_kwargs = mock_client.messages.create.call_args.kwargs assert call_kwargs["thinking"] == {"type": "enabled", "budget_tokens": 1024} def test_thinking_block_parsing(): """Test that thinking blocks are parsed as Part(thought=True).""" + import base64 - # Create a mock thinking block + # Create a mock thinking block with 'thinking' attribute class ThinkingBlock: def __init__(self): self.thinking = "Let me think about this step by step..." - self.type = "thinking" + # Signature must be base64 encoded + self.signature = base64.b64encode(b"mock_signature_123").decode("utf-8") thinking_block = ThinkingBlock() part = content_block_to_part(thinking_block) assert part.text == "Let me think about this step by step..." - assert hasattr(part, "thought") assert part.thought is True + # Signature is stored as bytes (decoded from base64 input) + assert part.thought_signature == b"mock_signature_123" def test_thinking_block_type_check(): - """Test alternative thinking block detection via type attribute.""" + """Test that thinking blocks with type attribute are parsed correctly.""" + import base64 - # Create a mock thinking block with only type attribute - class ThinkingBlockTypeOnly: + # Create a mock thinking block with 'type' attribute + class ThinkingBlockWithType: def __init__(self): self.type = "thinking" + # Signature must be base64 encoded + self.signature = base64.b64encode(b"mock_signature_456").decode("utf-8") def __str__(self): - return "Thinking content here" + return "Thinking content via type check" - thinking_block = ThinkingBlockTypeOnly() + thinking_block = ThinkingBlockWithType() part = content_block_to_part(thinking_block) - assert part.text == "Thinking content here" - assert hasattr(part, "thought") + assert part.text == "Thinking content via type check" assert part.thought is True + # Signature is stored as bytes (decoded from base64 input) + assert part.thought_signature == b"mock_signature_456" @pytest.mark.asyncio async def test_no_thinking_config(claude_llm, base_llm_request): - """Test that no thinking config results in normal operation.""" + """Test that requests without thinking_config work normally.""" # No thinking_config set with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: @@ -250,5 +231,44 @@ async def test_no_thinking_config(claude_llm, base_llm_request): ): responses.append(response) - # Verify non-streaming mode was used + # Verify non-streaming mode was used without thinking mock_client.messages.create.assert_called_once() + call_kwargs = mock_client.messages.create.call_args.kwargs + assert call_kwargs.get("thinking") == NOT_GIVEN + + +@pytest.mark.asyncio +async def test_thinking_with_streaming(claude_llm, base_llm_request): + """Test that thinking works in streaming mode.""" + base_llm_request.config.thinking_config = types.ThinkingConfig( + include_thoughts=True, thinking_budget=2048 + ) + + with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: + mock_stream = mock.AsyncMock() + mock_stream.__aenter__ = mock.AsyncMock(return_value=mock_stream) + mock_stream.__aexit__ = mock.AsyncMock() + mock_stream.__aiter__ = mock.AsyncMock(return_value=iter([])) + mock_stream.get_final_message = mock.AsyncMock( + return_value=anthropic_types.Message( + id="test", + content=[], + model="claude-opus-4-1@20250805", + role="assistant", + stop_reason="end_turn", + type="message", + usage=anthropic_types.Usage(input_tokens=10, output_tokens=20), + ) + ) + mock_client.messages.stream = mock.Mock(return_value=mock_stream) + + responses = [] + async for response in claude_llm.generate_content_async( + base_llm_request, stream=True + ): + responses.append(response) + + # Verify streaming mode was used with thinking + mock_client.messages.stream.assert_called_once() + call_kwargs = mock_client.messages.stream.call_args.kwargs + assert call_kwargs["thinking"] == {"type": "enabled", "budget_tokens": 2048} From 5f321fddefe5d2a549152a80cebfd84865acb11f Mon Sep 17 00:00:00 2001 From: damithsenanayake Date: Fri, 3 Oct 2025 06:37:27 +1000 Subject: [PATCH 007/303] feat: interleaved thinking with tools --- src/google/adk/models/anthropic_llm.py | 10 + .../models/test_anthropic_thinking.py | 197 ++++++++++++++++++ 2 files changed, 207 insertions(+) diff --git a/src/google/adk/models/anthropic_llm.py b/src/google/adk/models/anthropic_llm.py index fd6e84303b..06590fa8d7 100644 --- a/src/google/adk/models/anthropic_llm.py +++ b/src/google/adk/models/anthropic_llm.py @@ -352,10 +352,12 @@ class Claude(BaseLlm): Attributes: model: The name of the Claude model. max_tokens: The maximum number of tokens to generate. + enable_interleaved_thinking: Enable interleaved thinking for tool use (beta). """ model: str = "claude-3-5-sonnet-v2@20241022" max_tokens: int = 8192 + enable_interleaved_thinking: bool = False @classmethod @override @@ -407,6 +409,12 @@ async def generate_content_async( else: logger.warning(f"No thinking_config found in llm_request.config") + # Configure beta header for interleaved thinking + extra_headers = ( + {"anthropic-beta": "interleaved-thinking-2025-05-14"} + if self.enable_interleaved_thinking and thinking != NOT_GIVEN + else NOT_GIVEN + ) if stream: # Use streaming mode @@ -428,6 +436,7 @@ async def generate_content_async( tool_choice=tool_choice, max_tokens=self.max_tokens, thinking=thinking, + extra_headers=extra_headers, ) as anthropic_stream: # Process streaming events async for event in anthropic_stream: @@ -494,6 +503,7 @@ async def generate_content_async( tool_choice=tool_choice, max_tokens=self.max_tokens, thinking=thinking, + extra_headers=extra_headers, ) yield message_to_generate_content_response(message) diff --git a/tests/unittests/models/test_anthropic_thinking.py b/tests/unittests/models/test_anthropic_thinking.py index ba839d9123..6d3505d18c 100644 --- a/tests/unittests/models/test_anthropic_thinking.py +++ b/tests/unittests/models/test_anthropic_thinking.py @@ -272,3 +272,200 @@ async def test_thinking_with_streaming(claude_llm, base_llm_request): mock_client.messages.stream.assert_called_once() call_kwargs = mock_client.messages.stream.call_args.kwargs assert call_kwargs["thinking"] == {"type": "enabled", "budget_tokens": 2048} + + +@pytest.mark.asyncio +async def test_interleaved_thinking_disabled_by_default( + claude_llm, base_llm_request +): + """Test that beta header is NOT sent when interleaved thinking is disabled.""" + base_llm_request.config.thinking_config = types.ThinkingConfig( + include_thoughts=True, thinking_budget=2048 + ) + + with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: + mock_client.messages.create = mock.AsyncMock( + return_value=anthropic_types.Message( + id="test", + content=[], + model="claude-opus-4-1@20250805", + role="assistant", + stop_reason="end_turn", + type="message", + usage=anthropic_types.Usage(input_tokens=10, output_tokens=20), + ) + ) + + responses = [] + async for response in claude_llm.generate_content_async( + base_llm_request, stream=False + ): + responses.append(response) + + # Verify beta header is NOT_GIVEN (default behavior) + mock_client.messages.create.assert_called_once() + call_kwargs = mock_client.messages.create.call_args.kwargs + assert call_kwargs.get("extra_headers") == NOT_GIVEN + + +@pytest.mark.asyncio +async def test_interleaved_thinking_streaming(base_llm_request): + """Test that beta header is sent in streaming mode when enabled.""" + # Create Claude with interleaved thinking enabled + claude_llm = Claude( + model="claude-opus-4-1@20250805", + max_tokens=4096, + enable_interleaved_thinking=True, + ) + + base_llm_request.config.thinking_config = types.ThinkingConfig( + include_thoughts=True, thinking_budget=2048 + ) + + with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: + mock_stream = mock.AsyncMock() + mock_stream.__aenter__ = mock.AsyncMock(return_value=mock_stream) + mock_stream.__aexit__ = mock.AsyncMock() + mock_stream.__aiter__ = mock.AsyncMock(return_value=iter([])) + mock_stream.get_final_message = mock.AsyncMock( + return_value=anthropic_types.Message( + id="test", + content=[], + model="claude-opus-4-1@20250805", + role="assistant", + stop_reason="end_turn", + type="message", + usage=anthropic_types.Usage(input_tokens=10, output_tokens=20), + ) + ) + mock_client.messages.stream = mock.Mock(return_value=mock_stream) + + responses = [] + async for response in claude_llm.generate_content_async( + base_llm_request, stream=True + ): + responses.append(response) + + # Verify beta header was sent + mock_client.messages.stream.assert_called_once() + call_kwargs = mock_client.messages.stream.call_args.kwargs + assert call_kwargs["extra_headers"] == { + "anthropic-beta": "interleaved-thinking-2025-05-14" + } + + +@pytest.mark.asyncio +async def test_interleaved_thinking_non_streaming(base_llm_request): + """Test that beta header is sent in non-streaming mode when enabled.""" + # Create Claude with interleaved thinking enabled + claude_llm = Claude( + model="claude-opus-4-1@20250805", + max_tokens=4096, + enable_interleaved_thinking=True, + ) + + base_llm_request.config.thinking_config = types.ThinkingConfig( + include_thoughts=True, thinking_budget=2048 + ) + + with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: + mock_client.messages.create = mock.AsyncMock( + return_value=anthropic_types.Message( + id="test", + content=[], + model="claude-opus-4-1@20250805", + role="assistant", + stop_reason="end_turn", + type="message", + usage=anthropic_types.Usage(input_tokens=10, output_tokens=20), + ) + ) + + responses = [] + async for response in claude_llm.generate_content_async( + base_llm_request, stream=False + ): + responses.append(response) + + # Verify beta header was sent + mock_client.messages.create.assert_called_once() + call_kwargs = mock_client.messages.create.call_args.kwargs + assert call_kwargs["extra_headers"] == { + "anthropic-beta": "interleaved-thinking-2025-05-14" + } + + +@pytest.mark.asyncio +async def test_interleaved_thinking_requires_thinking_config(base_llm_request): + """Test that beta header is NOT sent when thinking is disabled.""" + # Create Claude with interleaved thinking enabled + claude_llm = Claude( + model="claude-opus-4-1@20250805", + max_tokens=4096, + enable_interleaved_thinking=True, + ) + + # No thinking_config set - thinking disabled + base_llm_request.config.thinking_config = types.ThinkingConfig( + include_thoughts=True, thinking_budget=0 # Disabled + ) + + with mock.patch.object(claude_llm, "_anthropic_client") as mock_client: + mock_client.messages.create = mock.AsyncMock( + return_value=anthropic_types.Message( + id="test", + content=[anthropic_types.TextBlock(text="4", type="text")], + model="claude-opus-4-1@20250805", + role="assistant", + stop_reason="end_turn", + type="message", + usage=anthropic_types.Usage(input_tokens=10, output_tokens=2), + ) + ) + + responses = [] + async for response in claude_llm.generate_content_async( + base_llm_request, stream=False + ): + responses.append(response) + + # Verify beta header is NOT_GIVEN when thinking is disabled + mock_client.messages.create.assert_called_once() + call_kwargs = mock_client.messages.create.call_args.kwargs + assert call_kwargs.get("extra_headers") == NOT_GIVEN + + +@pytest.mark.asyncio +async def test_thinking_blocks_preserved_in_assistant_messages(base_llm_request): + """Test that thinking blocks from previous assistant turn are preserved.""" + from google.adk.models.anthropic_llm import content_to_message_param + + # Create content with thinking block and tool use + content = types.Content( + role="model", + parts=[ + types.Part( + text="Let me calculate this step by step...", thought=True + ), + types.Part.from_function_call( + name="calculator", args={"expression": "2+2"} + ), + ], + ) + + message_param = content_to_message_param(content) + + # Verify message structure + assert message_param["role"] == "assistant" + assert len(message_param["content"]) == 2 + + # Verify thinking block comes FIRST + assert message_param["content"][0]["type"] == "thinking" + assert ( + message_param["content"][0]["thinking"] + == "Let me calculate this step by step..." + ) + + # Verify tool use comes after + assert message_param["content"][1]["type"] == "tool_use" + assert message_param["content"][1]["name"] == "calculator" From 65d6da081c5e0d86dfd618ace2858d83f6162667 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Thu, 2 Oct 2025 15:38:43 -0700 Subject: [PATCH 008/303] ADK changes PiperOrigin-RevId: 814413627 --- src/google/adk/memory/vertex_ai_memory_bank_service.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/google/adk/memory/vertex_ai_memory_bank_service.py b/src/google/adk/memory/vertex_ai_memory_bank_service.py index 03f4c3925f..a3fb9b6ad4 100644 --- a/src/google/adk/memory/vertex_ai_memory_bank_service.py +++ b/src/google/adk/memory/vertex_ai_memory_bank_service.py @@ -20,7 +20,11 @@ from google.genai import types from typing_extensions import override -import vertexai + +try: + import vertexai +except ImportError: + from google.cloud.aiplatform import vertexai from .base_memory_service import BaseMemoryService from .base_memory_service import SearchMemoryResponse From a9b76b9061e740f99de8463376ae85f934166285 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Thu, 2 Oct 2025 15:48:58 -0700 Subject: [PATCH 009/303] ADK changes PiperOrigin-RevId: 814417092 --- src/google/adk/memory/vertex_ai_memory_bank_service.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/google/adk/memory/vertex_ai_memory_bank_service.py b/src/google/adk/memory/vertex_ai_memory_bank_service.py index a3fb9b6ad4..03f4c3925f 100644 --- a/src/google/adk/memory/vertex_ai_memory_bank_service.py +++ b/src/google/adk/memory/vertex_ai_memory_bank_service.py @@ -20,11 +20,7 @@ from google.genai import types from typing_extensions import override - -try: - import vertexai -except ImportError: - from google.cloud.aiplatform import vertexai +import vertexai from .base_memory_service import BaseMemoryService from .base_memory_service import SearchMemoryResponse From bb1b86bd1417bfdd57bf3fede7fa80b1c9ea8243 Mon Sep 17 00:00:00 2001 From: damithsenanayake Date: Fri, 3 Oct 2025 08:58:32 +1000 Subject: [PATCH 010/303] refactor: pass header directly --- src/google/adk/models/anthropic_llm.py | 12 +++------ .../models/test_anthropic_thinking.py | 26 ++++++++++--------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/src/google/adk/models/anthropic_llm.py b/src/google/adk/models/anthropic_llm.py index 06590fa8d7..a598aa567c 100644 --- a/src/google/adk/models/anthropic_llm.py +++ b/src/google/adk/models/anthropic_llm.py @@ -352,12 +352,12 @@ class Claude(BaseLlm): Attributes: model: The name of the Claude model. max_tokens: The maximum number of tokens to generate. - enable_interleaved_thinking: Enable interleaved thinking for tool use (beta). + extra_headers: Optional extra headers to pass to the Anthropic API. """ model: str = "claude-3-5-sonnet-v2@20241022" max_tokens: int = 8192 - enable_interleaved_thinking: bool = False + extra_headers: Optional[dict[str, str]] = None @classmethod @override @@ -409,12 +409,8 @@ async def generate_content_async( else: logger.warning(f"No thinking_config found in llm_request.config") - # Configure beta header for interleaved thinking - extra_headers = ( - {"anthropic-beta": "interleaved-thinking-2025-05-14"} - if self.enable_interleaved_thinking and thinking != NOT_GIVEN - else NOT_GIVEN - ) + # Use extra headers if provided + extra_headers = self.extra_headers or NOT_GIVEN if stream: # Use streaming mode diff --git a/tests/unittests/models/test_anthropic_thinking.py b/tests/unittests/models/test_anthropic_thinking.py index 6d3505d18c..dbe3415f1b 100644 --- a/tests/unittests/models/test_anthropic_thinking.py +++ b/tests/unittests/models/test_anthropic_thinking.py @@ -310,12 +310,12 @@ async def test_interleaved_thinking_disabled_by_default( @pytest.mark.asyncio async def test_interleaved_thinking_streaming(base_llm_request): - """Test that beta header is sent in streaming mode when enabled.""" - # Create Claude with interleaved thinking enabled + """Test that beta header is sent in streaming mode when provided.""" + # Create Claude with beta headers claude_llm = Claude( model="claude-opus-4-1@20250805", max_tokens=4096, - enable_interleaved_thinking=True, + extra_headers={"anthropic-beta": "interleaved-thinking-2025-05-14"}, ) base_llm_request.config.thinking_config = types.ThinkingConfig( @@ -356,12 +356,12 @@ async def test_interleaved_thinking_streaming(base_llm_request): @pytest.mark.asyncio async def test_interleaved_thinking_non_streaming(base_llm_request): - """Test that beta header is sent in non-streaming mode when enabled.""" - # Create Claude with interleaved thinking enabled + """Test that beta header is sent in non-streaming mode when provided.""" + # Create Claude with beta headers claude_llm = Claude( model="claude-opus-4-1@20250805", max_tokens=4096, - enable_interleaved_thinking=True, + extra_headers={"anthropic-beta": "interleaved-thinking-2025-05-14"}, ) base_llm_request.config.thinking_config = types.ThinkingConfig( @@ -396,13 +396,13 @@ async def test_interleaved_thinking_non_streaming(base_llm_request): @pytest.mark.asyncio -async def test_interleaved_thinking_requires_thinking_config(base_llm_request): - """Test that beta header is NOT sent when thinking is disabled.""" - # Create Claude with interleaved thinking enabled +async def test_extra_headers_sent_regardless_of_thinking(base_llm_request): + """Test that extra headers are sent even when thinking is disabled.""" + # Create Claude with beta headers claude_llm = Claude( model="claude-opus-4-1@20250805", max_tokens=4096, - enable_interleaved_thinking=True, + extra_headers={"anthropic-beta": "interleaved-thinking-2025-05-14"}, ) # No thinking_config set - thinking disabled @@ -429,10 +429,12 @@ async def test_interleaved_thinking_requires_thinking_config(base_llm_request): ): responses.append(response) - # Verify beta header is NOT_GIVEN when thinking is disabled + # Verify beta header is sent even when thinking is disabled mock_client.messages.create.assert_called_once() call_kwargs = mock_client.messages.create.call_args.kwargs - assert call_kwargs.get("extra_headers") == NOT_GIVEN + assert call_kwargs.get("extra_headers") == { + "anthropic-beta": "interleaved-thinking-2025-05-14" + } @pytest.mark.asyncio From 420df25f586bd9b48e7990920b26913700cf0a39 Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Thu, 2 Oct 2025 19:19:53 -0700 Subject: [PATCH 011/303] chore: add a remote A2A knowledge agent for Agent Builder Assistant PiperOrigin-RevId: 814484204 --- .../adk_knowledge_agent/README.md | 25 +++++++ .../adk_knowledge_agent/__init__.py | 15 ++++ .../adk_knowledge_agent/agent.json | 17 +++++ .../adk_knowledge_agent/agent.py | 74 +++++++++++++++++++ .../adk_knowledge_agent/requirements.txt | 1 + 5 files changed, 132 insertions(+) create mode 100644 contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/README.md create mode 100644 contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/__init__.py create mode 100644 contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/agent.json create mode 100644 contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/agent.py create mode 100644 contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/requirements.txt diff --git a/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/README.md b/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/README.md new file mode 100644 index 0000000000..cf0c89016e --- /dev/null +++ b/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/README.md @@ -0,0 +1,25 @@ +# Agent Knowledge Agent + +An intelligent assistant for performing Vertex AI Search to find ADK knowledge +and documentation. + +## Deployment + +This agent is deployed to Google Could Run as an A2A agent, which is used by +the parent ADK Agent Builder Assistant. + +Here are the steps to deploy the agent: + +1. Set environment variables + +```bash +export GOOGLE_CLOUD_PROJECT=your-project-id +export GOOGLE_CLOUD_LOCATION=us-central1 # Or your preferred location +export GOOGLE_GENAI_USE_VERTEXAI=True +``` + +2. Run the deployment command + +```bash +$ adk deploy cloud_run --project=your-project-id --region=us-central1 --service_name=adk-agent-builder-knowledge-service --with_ui --a2a ./adk_knowledge_agent +``` \ No newline at end of file diff --git a/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/__init__.py b/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/__init__.py new file mode 100644 index 0000000000..c48963cdc7 --- /dev/null +++ b/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/agent.json b/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/agent.json new file mode 100644 index 0000000000..f58374072a --- /dev/null +++ b/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/agent.json @@ -0,0 +1,17 @@ +{ + "capabilities": {}, + "defaultInputModes": ["text/plain"], + "defaultOutputModes": ["application/json"], + "description": "Agent for performing Vertex AI Search to find ADK knowledge and documentation", + "name": "adk_knowledge_agent", + "skills": [ + { + "id": "adk_knowledge_search", + "name": "ADK Knowledge Search", + "description": "Searches for ADK examples and documentation using the Vertex AI Search tool", + "tags": ["search", "documentation", "knowledge base", "Vertex AI", "ADK"] + } + ], + "url": "https://adk-agent-builder-knowledge-service-654646711756.us-central1.run.app/a2a/adk_knowledge_agent", + "version": "1.0.0" +} \ No newline at end of file diff --git a/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/agent.py b/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/agent.py new file mode 100644 index 0000000000..90eb5e6691 --- /dev/null +++ b/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/agent.py @@ -0,0 +1,74 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import json +from typing import Optional + +from google.adk.agents import LlmAgent +from google.adk.agents.callback_context import CallbackContext +from google.adk.models import LlmResponse +from google.adk.tools.vertex_ai_search_tool import VertexAiSearchTool +from google.genai import types + +VERTEXAI_DATASTORE_ID = "projects/adk-agent-builder-assistant/locations/global/collections/default_collection/dataStores/adk-agent-builder-sample-datastore_1758230446136" + + +def citation_retrieval_after_model_callback( + callback_context: CallbackContext, + llm_response: LlmResponse, +) -> Optional[LlmResponse]: + """Callback function to retrieve citations after model response is generated.""" + grounding_metadata = llm_response.grounding_metadata + if not grounding_metadata: + return None + + content = llm_response.content + if not llm_response.content: + return None + + parts = content.parts + if not parts: + return None + + # Add citations to the response as JSON objects. + parts.append(types.Part(text="References:\n")) + for grounding_chunk in grounding_metadata.grounding_chunks: + retrieved_context = grounding_chunk.retrieved_context + if not retrieved_context: + continue + + citation = { + "title": retrieved_context.title, + "uri": retrieved_context.uri, + "snippet": retrieved_context.text, + } + parts.append(types.Part(text=json.dumps(citation))) + + return LlmResponse(content=types.Content(parts=parts)) + + +root_agent = LlmAgent( + name="adk_knowledge_agent", + description=( + "Agent for performing Vertex AI Search to find ADK knowledge and" + " documentation" + ), + instruction="""You are a specialized search agent for an ADK knowledge base. + + You can use the VertexAiSearchTool to search for ADK examples and documentation in the document store. + """, + model="gemini-2.5-flash", + tools=[VertexAiSearchTool(data_store_id=VERTEXAI_DATASTORE_ID)], + after_model_callback=citation_retrieval_after_model_callback, +) diff --git a/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/requirements.txt b/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/requirements.txt new file mode 100644 index 0000000000..7065c19760 --- /dev/null +++ b/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/requirements.txt @@ -0,0 +1 @@ +google-adk[a2a]==1.15.1 \ No newline at end of file From c5b976b3063279cacabfb541d40ec2beb7e9f330 Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Thu, 2 Oct 2025 19:21:16 -0700 Subject: [PATCH 012/303] chore: Create the context cache based on the token count of previous request before this change, we estimate the token count of the contents to cache and use it to compare with the threshold user set. but that's not precise , so we use the actual prompt token count of previous llm request. We won't create cache for the very initial request PiperOrigin-RevId: 814484840 --- .../llm_flows/context_cache_processor.py | 63 ++++-- .../models/gemini_context_cache_manager.py | 19 +- src/google/adk/models/llm_request.py | 3 + .../test_gemini_context_cache_manager.py | 68 +++++++ .../llm_flows/test_context_cache_processor.py | 192 ++++++++++++++++++ 5 files changed, 323 insertions(+), 22 deletions(-) diff --git a/src/google/adk/flows/llm_flows/context_cache_processor.py b/src/google/adk/flows/llm_flows/context_cache_processor.py index b274b3abe4..a9e9eb7615 100644 --- a/src/google/adk/flows/llm_flows/context_cache_processor.py +++ b/src/google/adk/flows/llm_flows/context_cache_processor.py @@ -62,9 +62,11 @@ async def run_async( # Set cache config to request llm_request.cache_config = invocation_context.context_cache_config - # Find latest cache metadata from session events - latest_cache_metadata = self._find_latest_cache_metadata( - invocation_context, agent.name, invocation_context.invocation_id + # Find latest cache metadata and previous token count from session events + latest_cache_metadata, previous_token_count = ( + self._find_cache_info_from_events( + invocation_context, agent.name, invocation_context.invocation_id + ) ) if latest_cache_metadata: @@ -77,51 +79,78 @@ async def run_async( latest_cache_metadata.cached_contents_count, ) + if previous_token_count is not None: + llm_request.cacheable_contents_token_count = previous_token_count + logger.debug( + 'Found previous prompt token count for agent %s: %d', + agent.name, + previous_token_count, + ) + logger.debug('Context caching enabled for agent %s', agent.name) # This processor yields no events return yield # AsyncGenerator requires a yield in function body - def _find_latest_cache_metadata( + def _find_cache_info_from_events( self, invocation_context: 'InvocationContext', agent_name: str, current_invocation_id: str, - ) -> Optional[CacheMetadata]: - """Find the latest cache metadata from session events. + ) -> tuple[Optional[CacheMetadata], Optional[int]]: + """Find cache metadata and previous token count from session events. Args: invocation_context: Context containing session with events - agent_name: Name of agent to find cache metadata for + agent_name: Name of agent to find cache info for current_invocation_id: Current invocation ID to compare for increment Returns: - Latest cache metadata for the agent (with updated invocations_used - if needed), or None if not found + Tuple of (cache_metadata, previous_prompt_token_count) + cache_metadata: Latest cache metadata with updated invocations_used if needed + previous_prompt_token_count: Most recent prompt token count from LLM response """ if not invocation_context.session or not invocation_context.session.events: - return None + return None, None + + cache_metadata = None + previous_token_count = None # Search events from most recent to oldest using index traversal events = invocation_context.session.events for i in range(len(events) - 1, -1, -1): event = events[i] - if event.cache_metadata is not None and event.author == agent_name: - - cache_metadata = event.cache_metadata + if event.author != agent_name: + continue + # Look for cache metadata (only in actual LLM response events) + if cache_metadata is None and event.cache_metadata is not None: # Check if this is a different invocation - increment invocations_used if event.invocation_id and event.invocation_id != current_invocation_id: # Different invocation - increment invocations_used - return cache_metadata.model_copy( - update={'invocations_used': cache_metadata.invocations_used + 1} + cache_metadata = event.cache_metadata.model_copy( + update={ + 'invocations_used': event.cache_metadata.invocations_used + 1 + } ) else: # Same invocation or no invocation_id - return as-is - return cache_metadata + cache_metadata = event.cache_metadata + + # Look for previous prompt token count (from actual LLM response events) + if ( + previous_token_count is None + and event.usage_metadata + and event.usage_metadata.prompt_token_count is not None + ): + previous_token_count = event.usage_metadata.prompt_token_count + + # Stop early if we found both pieces of information + if cache_metadata is not None and previous_token_count is not None: + break - return None + return cache_metadata, previous_token_count # Create processor instance for use in flows diff --git a/src/google/adk/models/gemini_context_cache_manager.py b/src/google/adk/models/gemini_context_cache_manager.py index 31eb1af8d4..5c1aeaf5af 100644 --- a/src/google/adk/models/gemini_context_cache_manager.py +++ b/src/google/adk/models/gemini_context_cache_manager.py @@ -257,12 +257,21 @@ async def _create_new_cache_with_contents( Returns: Cache metadata if successful, None otherwise """ - # Estimate token count for minimum cache size check - estimated_tokens = self._estimate_request_tokens(llm_request) - if estimated_tokens < llm_request.cache_config.min_tokens: + # Check if we have token count from previous response for cache size validation + if llm_request.cacheable_contents_token_count is None: logger.info( - "Request too small for caching (%d < %d tokens)", - estimated_tokens, + "No previous token count available, skipping cache creation for" + " initial request" + ) + return None + + if ( + llm_request.cacheable_contents_token_count + < llm_request.cache_config.min_tokens + ): + logger.info( + "Previous request too small for caching (%d < %d tokens)", + llm_request.cacheable_contents_token_count, llm_request.cache_config.min_tokens, ) return None diff --git a/src/google/adk/models/llm_request.py b/src/google/adk/models/llm_request.py index 814e0dbe8e..04a61fd9eb 100644 --- a/src/google/adk/models/llm_request.py +++ b/src/google/adk/models/llm_request.py @@ -88,6 +88,9 @@ class LlmRequest(BaseModel): cache_metadata: Optional[CacheMetadata] = None """Cache metadata from previous requests, used for cache management.""" + cacheable_contents_token_count: Optional[int] = None + """Token count from previous request's prompt, used for cache size validation.""" + def append_instructions( self, instructions: Union[list[str], types.Content] ) -> list[types.Content]: diff --git a/tests/unittests/agents/test_gemini_context_cache_manager.py b/tests/unittests/agents/test_gemini_context_cache_manager.py index ff1d1c2784..23b678cc53 100644 --- a/tests/unittests/agents/test_gemini_context_cache_manager.py +++ b/tests/unittests/agents/test_gemini_context_cache_manager.py @@ -121,6 +121,9 @@ async def test_handle_context_caching_new_cache(self): ) llm_request = self.create_llm_request() + llm_request.cacheable_contents_token_count = ( + 2048 # Add token count for cache creation + ) start_time = time.time() with patch.object( @@ -194,6 +197,9 @@ async def test_handle_context_caching_invalid_existing_cache(self): invocations_used=15 ) # Exceeds cache_intervals llm_request = self.create_llm_request(cache_metadata=existing_cache) + llm_request.cacheable_contents_token_count = ( + 2048 # Add token count for cache creation + ) with ( patch.object(self.manager, "_is_cache_valid", return_value=False), @@ -521,3 +527,65 @@ def test_parameter_types_enforcement(self): assert not hasattr( cache_metadata, "usage_metadata" ) # CacheMetadata should NOT have this + + def create_llm_request_with_token_count( + self, token_count=None, cache_metadata=None + ): + """Helper to create LlmRequest with cacheable_contents_token_count.""" + llm_request = self.create_llm_request(cache_metadata=cache_metadata) + llm_request.cacheable_contents_token_count = token_count + return llm_request + + async def test_cache_creation_with_sufficient_token_count(self): + """Test cache creation succeeds when token count meets minimum.""" + # Setup mocks + mock_cached_content = AsyncMock() + mock_cached_content.name = ( + "projects/test/locations/us-central1/cachedContents/token123" + ) + self.manager.genai_client.aio.caches.create = AsyncMock( + return_value=mock_cached_content + ) + + # Create request with sufficient token count + llm_request = self.create_llm_request_with_token_count(token_count=2048) + + with patch.object( + self.manager, "_generate_cache_fingerprint", return_value="test_fp" + ): + result = await self.manager.handle_context_caching(llm_request) + + # Should succeed in creating cache + assert result is not None + assert result.cache_name == mock_cached_content.name + self.manager.genai_client.aio.caches.create.assert_called_once() + + async def test_cache_creation_with_insufficient_token_count(self): + """Test cache creation fails when token count is below minimum.""" + # Set higher minimum token requirement + self.manager.cache_config = ContextCacheConfig( + cache_intervals=10, + ttl_seconds=1800, + min_tokens=2048, + ) + + # Create request with insufficient token count + llm_request = self.create_llm_request_with_token_count(token_count=1024) + llm_request.cache_config = self.manager.cache_config + + result = await self.manager.handle_context_caching(llm_request) + + # Should not create cache + assert result is None + self.manager.genai_client.aio.caches.create.assert_not_called() + + async def test_cache_creation_without_token_count(self): + """Test cache creation is skipped when no token count is available.""" + # Create request without token count (initial request) + llm_request = self.create_llm_request_with_token_count(token_count=None) + + result = await self.manager.handle_context_caching(llm_request) + + # Should skip cache creation for initial request + assert result is None + self.manager.genai_client.aio.caches.create.assert_not_called() diff --git a/tests/unittests/flows/llm_flows/test_context_cache_processor.py b/tests/unittests/flows/llm_flows/test_context_cache_processor.py index 31ee270d61..026bdc85b8 100644 --- a/tests/unittests/flows/llm_flows/test_context_cache_processor.py +++ b/tests/unittests/flows/llm_flows/test_context_cache_processor.py @@ -452,3 +452,195 @@ async def test_mixed_events_scenario(self): assert llm_request.cache_config == self.cache_config assert llm_request.cache_metadata is not None assert llm_request.cache_metadata.invocations_used == 11 # 10 + 1 + + async def test_cacheable_contents_token_count_extraction(self): + """Test that previous prompt token count is extracted and set.""" + agent = LlmAgent(name="test_agent") + + # Create event with usage metadata + event_with_tokens = Event( + author="test_agent", + usage_metadata=types.UsageMetadata( + prompt_token_count=1024, + response_token_count=256, + total_token_count=1280, + ), + ) + + events = [event_with_tokens] + + invocation_context = self.create_invocation_context( + agent, + context_cache_config=self.cache_config, + session_events=events, + ) + + llm_request = LlmRequest( + model="gemini-2.0-flash", + contents=[ + types.Content( + role="user", + parts=[types.Part(text="Hello")], + ) + ], + ) + + async for event in self.processor.run_async( + invocation_context, llm_request + ): + pass + + # Should extract token count from the event + assert llm_request.cacheable_contents_token_count == 1024 + + async def test_cacheable_contents_token_count_no_usage_metadata(self): + """Test when no usage metadata is available.""" + agent = LlmAgent(name="test_agent") + + events = [ + Event(author="test_agent", usage_metadata=None), + Event(author="other_agent"), + ] + + invocation_context = self.create_invocation_context( + agent, + context_cache_config=self.cache_config, + session_events=events, + ) + + llm_request = LlmRequest( + model="gemini-2.0-flash", + contents=[ + types.Content( + role="user", + parts=[types.Part(text="Hello")], + ) + ], + ) + + async for event in self.processor.run_async( + invocation_context, llm_request + ): + pass + + # Should not set token count when no usage metadata + assert llm_request.cacheable_contents_token_count is None + + async def test_cacheable_contents_token_count_agent_filtering(self): + """Test that token count is filtered by agent name.""" + agent = LlmAgent(name="target_agent") + + events = [ + Event( + author="other_agent", + usage_metadata=types.UsageMetadata(prompt_token_count=2048), + ), + Event( + author="target_agent", + usage_metadata=types.UsageMetadata(prompt_token_count=1024), + ), + ] + + invocation_context = self.create_invocation_context( + agent, + context_cache_config=self.cache_config, + session_events=events, + ) + + llm_request = LlmRequest( + model="gemini-2.0-flash", + contents=[ + types.Content( + role="user", + parts=[types.Part(text="Hello")], + ) + ], + ) + + async for event in self.processor.run_async( + invocation_context, llm_request + ): + pass + + # Should use target_agent's token count, not other_agent's + assert llm_request.cacheable_contents_token_count == 1024 + + async def test_cacheable_contents_token_count_latest_selected(self): + """Test that the most recent token count is selected.""" + agent = LlmAgent(name="test_agent") + + events = [ + Event( + author="test_agent", + usage_metadata=types.UsageMetadata(prompt_token_count=512), + ), + Event( + author="test_agent", + usage_metadata=types.UsageMetadata(prompt_token_count=1024), + ), + ] + + invocation_context = self.create_invocation_context( + agent, + context_cache_config=self.cache_config, + session_events=events, + ) + + llm_request = LlmRequest( + model="gemini-2.0-flash", + contents=[ + types.Content( + role="user", + parts=[types.Part(text="Hello")], + ) + ], + ) + + async for event in self.processor.run_async( + invocation_context, llm_request + ): + pass + + # Should use the latest (most recent) token count + assert llm_request.cacheable_contents_token_count == 1024 + + async def test_cache_metadata_and_token_count_both_found(self): + """Test that both cache metadata and token count are found in single pass.""" + agent = LlmAgent(name="test_agent") + cache_metadata = self.create_cache_metadata(invocations_used=5) + + events = [ + Event( + author="test_agent", + cache_metadata=cache_metadata, + usage_metadata=types.UsageMetadata(prompt_token_count=1024), + invocation_id="previous_invocation", + ), + ] + + invocation_context = self.create_invocation_context( + agent, + context_cache_config=self.cache_config, + session_events=events, + invocation_id="current_invocation", + ) + + llm_request = LlmRequest( + model="gemini-2.0-flash", + contents=[ + types.Content( + role="user", + parts=[types.Part(text="Hello")], + ) + ], + ) + + async for event in self.processor.run_async( + invocation_context, llm_request + ): + pass + + # Should find both cache metadata and token count + assert llm_request.cache_metadata is not None + assert llm_request.cache_metadata.invocations_used == 6 # 5 + 1 + assert llm_request.cacheable_contents_token_count == 1024 From a4ef7edcbb81280f812db42452f85ae8e6f0d9de Mon Sep 17 00:00:00 2001 From: George Weale Date: Thu, 2 Oct 2025 19:33:22 -0700 Subject: [PATCH 013/303] chore: add `__init__.py` prompt for tool imports PiperOrigin-RevId: 814488943 --- .../adk_agent_builder_assistant/instruction_embedded.template | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index 5d723e1e4c..60960218df 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -267,7 +267,8 @@ Always reference this schema when creating configurations to ensure compliance. **File Naming & Structure:** - Main configuration MUST be `root_agent.yaml` (not `agent.yaml`) -- Agent directories need `__init__.py` with `from . import agent` +- Agent directories need `__init__.py` with `from . import agent` +- **Tools directory MUST have `__init__.py`** - The `tools/` folder requires an empty `__init__.py` file to be a valid Python package (required for imports) - Python files in agent directory, YAML at root level **Tool Configuration:** From dd0571ad09ddd98ff9c9599c28443cce82e58bce Mon Sep 17 00:00:00 2001 From: George Weale Date: Thu, 2 Oct 2025 19:35:44 -0700 Subject: [PATCH 014/303] chore: Clarify `write_config_files` usage for sub-agent YAML files PiperOrigin-RevId: 814489632 --- .../instruction_embedded.template | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index 60960218df..723b74adfe 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -171,9 +171,10 @@ Always reference this schema when creating configurations to ensure compliance. ### Core Agent Building Tools #### Configuration Management (MANDATORY FOR .yaml/.yml FILES) -- **write_config_files**: ⚠️ REQUIRED for ALL YAML files (root_agent.yaml, sub-agents/*.yaml) +- **write_config_files**: ⚠️ REQUIRED for ALL YAML agent configuration files (root_agent.yaml, any sub-agent YAML files in root folder) * Validates YAML syntax and ADK AgentConfig schema compliance - * Example: `write_config_files({{"./project/root_agent.yaml": yaml_content}})` + * Example: `write_config_files({{"./project/root_agent.yaml": yaml_content, "./project/researcher_agent.yaml": sub_agent_content}})` + * **CRITICAL**: All agent YAML files must be in the root project folder, NOT in a sub_agents/ subdirectory - **read_config_files**: Read and parse multiple YAML configuration files with validation and metadata extraction - **config_file_reader**: Legacy function (use read_config_files instead) - **config_file_writer**: Legacy function (use write_config_files instead) From 42db35111b8a019d646fb68f6883649b4ddf720a Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Thu, 2 Oct 2025 19:56:13 -0700 Subject: [PATCH 015/303] chore: fix typo for `GenerateContentConfig` in Agent Builder Assistant PiperOrigin-RevId: 814495803 --- .../agent_builder_assistant.py | 3 ++- .../instruction_embedded.template | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py b/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py index 275fc620a6..a1b38fbb2b 100644 --- a/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py +++ b/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py @@ -24,6 +24,7 @@ from google.adk.models import BaseLlm from google.adk.tools import AgentTool from google.adk.tools import FunctionTool +from google.genai import types from .sub_agents.google_search_agent import create_google_search_agent from .sub_agents.url_context_agent import create_url_context_agent @@ -112,7 +113,7 @@ def create_agent( instruction=instruction, model=model, tools=all_tools, - generate_content_config=types.GenerateContextConfig( + generate_content_config=types.GenerateContentConfig( max_output_tokens=8192, ), ) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index 723b74adfe..a486c178f8 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -101,15 +101,15 @@ Always reference this schema when creating configurations to ensure compliance. **STEP 2: PYTHON FILES SECOND** 1. Generate Python tool/callback files -2. Present complete Python content to user for confirmation +2. Present complete Python content to user for confirmation 3. Ask: "Should I create these Python files?" 4. Only proceed after user confirmation -1. **Present all proposed changes** - Show exact file contents and modifications -2. **Get explicit user approval** - Wait for "yes" or "proceed" before any writes -3. **Execute approved changes** - Only write files after user confirms +5. **Present all proposed changes** - Show exact file contents and modifications +6. **Get explicit user approval** - Wait for "yes" or "proceed" before any writes +7. **Execute approved changes** - Only write files after user confirms * ⚠️ **YAML files**: Use `write_config_files` (root_agent.yaml, etc.) * ⚠️ **Python files**: Use `write_files` (tools/*.py, etc.) -4. **Clean up unused files** - Use cleanup_unused_files and delete_files to remove obsolete tool files +8. **Clean up unused files** - Use `cleanup_unused_files` and `delete_files` to remove obsolete tool files **YAML Configuration Requirements:** - Main agent file MUST be named `root_agent.yaml` From 01628987070451b6a9f79668a415aa922f9d466c Mon Sep 17 00:00:00 2001 From: Max Ind Date: Fri, 3 Oct 2025 02:56:00 -0700 Subject: [PATCH 016/303] ADK changes PiperOrigin-RevId: 814614027 --- src/google/adk/telemetry/google_cloud.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/google/adk/telemetry/google_cloud.py b/src/google/adk/telemetry/google_cloud.py index 100182cbbf..ec78cf1625 100644 --- a/src/google/adk/telemetry/google_cloud.py +++ b/src/google/adk/telemetry/google_cloud.py @@ -17,7 +17,6 @@ import logging import google.auth -from opentelemetry.resourcedetector.gcp_resource_detector import GoogleCloudResourceDetector from opentelemetry.sdk._logs import LogRecordProcessor from opentelemetry.sdk._logs.export import BatchLogRecordProcessor from opentelemetry.sdk.metrics.export import MetricReader @@ -108,8 +107,19 @@ def get_gcp_resource() -> Resource: # Then the GCP detector adds attributes corresponding to a correct # monitored resource if ADK runs on one of supported platforms # (e.g. GCE, GKE, CloudRun). - return ( - OTELResourceDetector() - .detect() - .merge(GoogleCloudResourceDetector(raise_on_error=False).detect()) - ) + + resource = OTELResourceDetector().detect() + + try: + from opentelemetry.resourcedetector.gcp_resource_detector import GoogleCloudResourceDetector + + resource = resource.merge( + GoogleCloudResourceDetector(raise_on_error=False).detect() + ) + except ImportError: + logger.warning( + 'Cloud not import opentelemetry.resourcedetector.gcp_resource_detector' + ' GCE, GKE or CloudRun related resource attributes may be missing' + ) + + return resource From 33b2d495bef84a847db06a4df307c1946ca1cc4e Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Fri, 3 Oct 2025 09:05:38 -0700 Subject: [PATCH 017/303] chore: Emphasize "model" property can inherit from parent LlmAgent PiperOrigin-RevId: 814715394 --- .../adk_agent_builder_assistant/instruction_embedded.template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index a486c178f8..b616731a1e 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -279,7 +279,7 @@ Always reference this schema when creating configurations to ensure compliance. - **Critical**: Tool paths must include the project folder name as the first component (final component of root folder path only) **ADK Agent Types and Model Field Rules:** -- **LlmAgent**: REQUIRES `model` field - this agent directly uses LLM for responses +- **LlmAgent**: REQUIRES `model` field (unless inherited from ancestor) - this agent directly uses LLM for responses - **SequentialAgent**: NO `model` field - workflow agent that orchestrates other agents in sequence - **ParallelAgent**: NO `model` field - workflow agent that runs multiple agents in parallel - **LoopAgent**: NO `model` field - workflow agent that executes agents in a loop @@ -288,7 +288,7 @@ Always reference this schema when creating configurations to ensure compliance. **ADK AgentConfig Schema Compliance:** - Always reference the embedded ADK AgentConfig schema to verify field requirements - **MODEL FIELD RULES**: - * **LlmAgent**: `model` field is REQUIRED - Ask user for preference only when LlmAgent is needed, use "{default_model}" if not specified + * **LlmAgent**: `model` field is REQUIRED (unless inherited from ancestor) - Ask user for preference only when LlmAgent is needed, use "{default_model}" if not specified * **Workflow Agents**: `model` field is FORBIDDEN - Remove model field entirely for Sequential/Parallel/Loop agents - Optional fields: description, instruction, tools, sub_agents as defined in ADK AgentConfig schema From 611b604bdca696de7ae8d32d7bc72c100b99dd40 Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Fri, 3 Oct 2025 10:14:07 -0700 Subject: [PATCH 018/303] chore: Emphasize not to ask for root_directory if it's set in the context PiperOrigin-RevId: 814738676 --- .../adk_agent_builder_assistant/instruction_embedded.template | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index b616731a1e..bf29a7c114 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -54,8 +54,9 @@ Always reference this schema when creating configurations to ensure compliance. - ❌ WRONG: "Before I proceed with creating an agent..." or asking for root directory. - **ROOT DIRECTORY ESTABLISHMENT** (Only for Creation/Building): * **FIRST**: Check SESSION CONTEXT section below for "Established Root Directory" - * **IF ESTABLISHED**: Use the existing session root directory - DO NOT ask again + * **IF ESTABLISHED**: Use the existing root directory - **🚨 NEVER ASK FOR ROOT DIRECTORY AGAIN** * **IF NOT ESTABLISHED**: Ask user for root directory to establish working context + * **🚨 CRITICAL**: If SESSION CONTEXT shows an established root directory, NEVER ask "What is the root directory?" or similar questions - **MODEL PREFERENCE**: Always ask for explicit model confirmation when LlmAgent(s) will be needed * **When to ask**: After analyzing requirements and deciding that LlmAgent is needed for the solution * **MANDATORY CONFIRMATION**: Say "Please confirm what model you want to use" - do NOT assume or suggest defaults From 0b84d3eea750515060d0b8709e453238aad17ce8 Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Fri, 3 Oct 2025 11:32:47 -0700 Subject: [PATCH 019/303] chore: Show relative path in response if root directory already set in session state PiperOrigin-RevId: 814768273 --- .../adk_agent_builder_assistant/instruction_embedded.template | 1 + 1 file changed, 1 insertion(+) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index bf29a7c114..f4836a2ac2 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -91,6 +91,7 @@ Always reference this schema when creating configurations to ensure compliance. - **For new files**: Show the complete content and ask for approval - **For existing file modifications**: Ask "Should I create a backup before modifying this file?" - **Use backup_existing parameter**: Set to True only if user explicitly requests backup +- **🚨 PATH DISPLAY RULE**: When root directory is established (shown in SESSION CONTEXT), ALWAYS show relative paths in responses (e.g., `root_agent.yaml`, `tools/dice_tool.py`) instead of full absolute paths **IMPLEMENTATION ORDER (CRITICAL - ONLY AFTER USER CONFIRMS DESIGN):** From 960eda3d1f2f46dc93a365eb3de03dc3483fe9bb Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Fri, 3 Oct 2025 15:36:25 -0700 Subject: [PATCH 020/303] feat: Add `dry_run` functionality to BigQuery `execute_sql` tool PiperOrigin-RevId: 814854520 --- contributing/samples/bigquery/README.md | 2 +- src/google/adk/tools/bigquery/query_tool.py | 151 ++++++++++++++-- .../bigquery/test_bigquery_query_tool.py | 167 ++++++++++++++++-- 3 files changed, 295 insertions(+), 25 deletions(-) diff --git a/contributing/samples/bigquery/README.md b/contributing/samples/bigquery/README.md index ea6c70a2fd..3185c4636c 100644 --- a/contributing/samples/bigquery/README.md +++ b/contributing/samples/bigquery/README.md @@ -23,7 +23,7 @@ distributed via the `google.adk.tools.bigquery` module. These tools include: 1. `execute_sql` - Runs a SQL query in BigQuery. + Runs or dry-runs a SQL query in BigQuery. 1. `ask_data_insights` diff --git a/src/google/adk/tools/bigquery/query_tool.py b/src/google/adk/tools/bigquery/query_tool.py index 03be2866bc..e2b1b25621 100644 --- a/src/google/adk/tools/bigquery/query_tool.py +++ b/src/google/adk/tools/bigquery/query_tool.py @@ -37,6 +37,7 @@ def execute_sql( credentials: Credentials, settings: BigQueryToolConfig, tool_context: ToolContext, + dry_run: bool = False, ) -> dict: """Run a BigQuery or BigQuery ML SQL query in the project and return the result. @@ -47,12 +48,17 @@ def execute_sql( credentials (Credentials): The credentials to use for the request. settings (BigQueryToolConfig): The settings for the tool. tool_context (ToolContext): The context for the tool. + dry_run (bool, default False): If True, the query will not be executed. + Instead, the query will be validated and information about the query + will be returned. Defaults to False. Returns: - dict: Dictionary representing the result of the query. - If the result contains the key "result_is_likely_truncated" with - value True, it means that there may be additional rows matching the - query not returned in the result. + dict: If `dry_run` is False, dictionary representing the result of the + query. If the result contains the key "result_is_likely_truncated" + with value True, it means that there may be additional rows matching + the query not returned in the result. + If `dry_run` is True, dictionary with "dry_run_info" field + containing query information returned by BigQuery. Examples: Fetch data or insights from a table: @@ -77,6 +83,39 @@ def execute_sql( } ] } + + Validate a query and estimate costs without executing it: + + >>> execute_sql( + ... "my_project", + ... "SELECT island FROM " + ... "bigquery-public-data.ml_datasets.penguins", + ... dry_run=True + ... ) + { + "status": "SUCCESS", + "dry_run_info": { + "configuration": { + "dryRun": True, + "jobType": "QUERY", + "query": { + "destinationTable": { + "datasetId": "_...", + "projectId": "my_project", + "tableId": "anon..." + }, + "priority": "INTERACTIVE", + "query": "SELECT island FROM bigquery-public-data.ml_datasets.penguins", + "useLegacySql": False, + "writeDisposition": "WRITE_TRUNCATE" + } + }, + "jobReference": { + "location": "US", + "projectId": "my_project" + } + } + } """ try: # Validate compute project if applicable @@ -167,6 +206,18 @@ def execute_sql( } # Finally execute the query and fetch the result + if dry_run: + job_config_kwargs = {"dry_run": True} + if bq_connection_properties: + job_config_kwargs["connection_properties"] = bq_connection_properties + job_config = bigquery.QueryJobConfig(**job_config_kwargs) + dry_run_job = bq_client.query( + query, + project=project_id, + job_config=job_config, + ) + return {"status": "SUCCESS", "dry_run_info": dry_run_job.to_api_repr()} + job_config = ( bigquery.QueryJobConfig(connection_properties=bq_connection_properties) if bq_connection_properties @@ -214,12 +265,17 @@ def _execute_sql_write_mode(*args, **kwargs) -> dict: credentials (Credentials): The credentials to use for the request. settings (BigQueryToolConfig): The settings for the tool. tool_context (ToolContext): The context for the tool. + dry_run (bool, default False): If True, the query will not be executed. + Instead, the query will be validated and information about the query + will be returned. Defaults to False. Returns: - dict: Dictionary representing the result of the query. - If the result contains the key "result_is_likely_truncated" with - value True, it means that there may be additional rows matching the - query not returned in the result. + dict: If `dry_run` is False, dictionary representing the result of the + query. If the result contains the key "result_is_likely_truncated" + with value True, it means that there may be additional rows matching + the query not returned in the result. + If `dry_run` is True, dictionary with "dry_run_info" field + containing query information returned by BigQuery. Examples: Fetch data or insights from a table: @@ -245,6 +301,39 @@ def _execute_sql_write_mode(*args, **kwargs) -> dict: ] } + Validate a query and estimate costs without executing it: + + >>> execute_sql( + ... "my_project", + ... "SELECT island FROM " + ... "bigquery-public-data.ml_datasets.penguins", + ... dry_run=True + ... ) + { + "status": "SUCCESS", + "dry_run_info": { + "configuration": { + "dryRun": True, + "jobType": "QUERY", + "query": { + "destinationTable": { + "datasetId": "_...", + "projectId": "my_project", + "tableId": "anon..." + }, + "priority": "INTERACTIVE", + "query": "SELECT island FROM bigquery-public-data.ml_datasets.penguins", + "useLegacySql": False, + "writeDisposition": "WRITE_TRUNCATE" + } + }, + "jobReference": { + "location": "US", + "projectId": "my_project" + } + } + } + Create a table with schema prescribed: >>> execute_sql("my_project", @@ -396,12 +485,17 @@ def _execute_sql_protected_write_mode(*args, **kwargs) -> dict: credentials (Credentials): The credentials to use for the request. settings (BigQueryToolConfig): The settings for the tool. tool_context (ToolContext): The context for the tool. + dry_run (bool, default False): If True, the query will not be executed. + Instead, the query will be validated and information about the query + will be returned. Defaults to False. Returns: - dict: Dictionary representing the result of the query. - If the result contains the key "result_is_likely_truncated" with - value True, it means that there may be additional rows matching the - query not returned in the result. + dict: If `dry_run` is False, dictionary representing the result of the + query. If the result contains the key "result_is_likely_truncated" + with value True, it means that there may be additional rows matching + the query not returned in the result. + If `dry_run` is True, dictionary with "dry_run_info" field + containing query information returned by BigQuery. Examples: Fetch data or insights from a table: @@ -427,6 +521,39 @@ def _execute_sql_protected_write_mode(*args, **kwargs) -> dict: ] } + Validate a query and estimate costs without executing it: + + >>> execute_sql( + ... "my_project", + ... "SELECT island FROM " + ... "bigquery-public-data.ml_datasets.penguins", + ... dry_run=True + ... ) + { + "status": "SUCCESS", + "dry_run_info": { + "configuration": { + "dryRun": True, + "jobType": "QUERY", + "query": { + "destinationTable": { + "datasetId": "_...", + "projectId": "my_project", + "tableId": "anon..." + }, + "priority": "INTERACTIVE", + "query": "SELECT island FROM bigquery-public-data.ml_datasets.penguins", + "useLegacySql": False, + "writeDisposition": "WRITE_TRUNCATE" + } + }, + "jobReference": { + "location": "US", + "projectId": "my_project" + } + } + } + Create a temporary table with schema prescribed: >>> execute_sql("my_project", diff --git a/tests/unittests/tools/bigquery/test_bigquery_query_tool.py b/tests/unittests/tools/bigquery/test_bigquery_query_tool.py index 95abbe49ad..8e0d19cfa8 100644 --- a/tests/unittests/tools/bigquery/test_bigquery_query_tool.py +++ b/tests/unittests/tools/bigquery/test_bigquery_query_tool.py @@ -95,12 +95,17 @@ async def test_execute_sql_declaration_read_only(tool_settings): credentials (Credentials): The credentials to use for the request. settings (BigQueryToolConfig): The settings for the tool. tool_context (ToolContext): The context for the tool. + dry_run (bool, default False): If True, the query will not be executed. + Instead, the query will be validated and information about the query + will be returned. Defaults to False. Returns: - dict: Dictionary representing the result of the query. - If the result contains the key "result_is_likely_truncated" with - value True, it means that there may be additional rows matching the - query not returned in the result. + dict: If `dry_run` is False, dictionary representing the result of the + query. If the result contains the key "result_is_likely_truncated" + with value True, it means that there may be additional rows matching + the query not returned in the result. + If `dry_run` is True, dictionary with "dry_run_info" field + containing query information returned by BigQuery. Examples: Fetch data or insights from a table: @@ -124,6 +129,39 @@ async def test_execute_sql_declaration_read_only(tool_settings): "population": 52 } ] + } + + Validate a query and estimate costs without executing it: + + >>> execute_sql( + ... "my_project", + ... "SELECT island FROM " + ... "bigquery-public-data.ml_datasets.penguins", + ... dry_run=True + ... ) + { + "status": "SUCCESS", + "dry_run_info": { + "configuration": { + "dryRun": True, + "jobType": "QUERY", + "query": { + "destinationTable": { + "datasetId": "_...", + "projectId": "my_project", + "tableId": "anon..." + }, + "priority": "INTERACTIVE", + "query": "SELECT island FROM bigquery-public-data.ml_datasets.penguins", + "useLegacySql": False, + "writeDisposition": "WRITE_TRUNCATE" + } + }, + "jobReference": { + "location": "US", + "projectId": "my_project" + } + } }""") @@ -156,12 +194,17 @@ async def test_execute_sql_declaration_write(tool_settings): credentials (Credentials): The credentials to use for the request. settings (BigQueryToolConfig): The settings for the tool. tool_context (ToolContext): The context for the tool. + dry_run (bool, default False): If True, the query will not be executed. + Instead, the query will be validated and information about the query + will be returned. Defaults to False. Returns: - dict: Dictionary representing the result of the query. - If the result contains the key "result_is_likely_truncated" with - value True, it means that there may be additional rows matching the - query not returned in the result. + dict: If `dry_run` is False, dictionary representing the result of the + query. If the result contains the key "result_is_likely_truncated" + with value True, it means that there may be additional rows matching + the query not returned in the result. + If `dry_run` is True, dictionary with "dry_run_info" field + containing query information returned by BigQuery. Examples: Fetch data or insights from a table: @@ -187,6 +230,39 @@ async def test_execute_sql_declaration_write(tool_settings): ] } + Validate a query and estimate costs without executing it: + + >>> execute_sql( + ... "my_project", + ... "SELECT island FROM " + ... "bigquery-public-data.ml_datasets.penguins", + ... dry_run=True + ... ) + { + "status": "SUCCESS", + "dry_run_info": { + "configuration": { + "dryRun": True, + "jobType": "QUERY", + "query": { + "destinationTable": { + "datasetId": "_...", + "projectId": "my_project", + "tableId": "anon..." + }, + "priority": "INTERACTIVE", + "query": "SELECT island FROM bigquery-public-data.ml_datasets.penguins", + "useLegacySql": False, + "writeDisposition": "WRITE_TRUNCATE" + } + }, + "jobReference": { + "location": "US", + "projectId": "my_project" + } + } + } + Create a table with schema prescribed: >>> execute_sql("my_project", @@ -355,12 +431,17 @@ async def test_execute_sql_declaration_protected_write(tool_settings): credentials (Credentials): The credentials to use for the request. settings (BigQueryToolConfig): The settings for the tool. tool_context (ToolContext): The context for the tool. + dry_run (bool, default False): If True, the query will not be executed. + Instead, the query will be validated and information about the query + will be returned. Defaults to False. Returns: - dict: Dictionary representing the result of the query. - If the result contains the key "result_is_likely_truncated" with - value True, it means that there may be additional rows matching the - query not returned in the result. + dict: If `dry_run` is False, dictionary representing the result of the + query. If the result contains the key "result_is_likely_truncated" + with value True, it means that there may be additional rows matching + the query not returned in the result. + If `dry_run` is True, dictionary with "dry_run_info" field + containing query information returned by BigQuery. Examples: Fetch data or insights from a table: @@ -386,6 +467,39 @@ async def test_execute_sql_declaration_protected_write(tool_settings): ] } + Validate a query and estimate costs without executing it: + + >>> execute_sql( + ... "my_project", + ... "SELECT island FROM " + ... "bigquery-public-data.ml_datasets.penguins", + ... dry_run=True + ... ) + { + "status": "SUCCESS", + "dry_run_info": { + "configuration": { + "dryRun": True, + "jobType": "QUERY", + "query": { + "destinationTable": { + "datasetId": "_...", + "projectId": "my_project", + "tableId": "anon..." + }, + "priority": "INTERACTIVE", + "query": "SELECT island FROM bigquery-public-data.ml_datasets.penguins", + "useLegacySql": False, + "writeDisposition": "WRITE_TRUNCATE" + } + }, + "jobReference": { + "location": "US", + "projectId": "my_project" + } + } + } + Create a temporary table with schema prescribed: >>> execute_sql("my_project", @@ -798,6 +912,35 @@ def test_execute_sql_non_select_stmt_write_protected_persistent_target( } +def test_execute_sql_dry_run_true(): + """Test execute_sql tool with dry_run=True.""" + project = "my_project" + query = "SELECT 123 AS num" + credentials = mock.create_autospec(Credentials, instance=True) + tool_settings = BigQueryToolConfig(write_mode=WriteMode.ALLOWED) + tool_context = mock.create_autospec(ToolContext, instance=True) + api_repr = { + "configuration": {"dryRun": True, "query": {"query": query}}, + "jobReference": {"projectId": project, "location": "US"}, + } + + with mock.patch("google.cloud.bigquery.Client", autospec=False) as Client: + bq_client = Client.return_value + + query_job = mock.create_autospec(bigquery.QueryJob) + query_job.to_api_repr.return_value = api_repr + bq_client.query.return_value = query_job + + result = execute_sql( + project, query, credentials, tool_settings, tool_context, dry_run=True + ) + assert result == {"status": "SUCCESS", "dry_run_info": api_repr} + bq_client.query.assert_called_once() + _, mock_kwargs = bq_client.query.call_args + assert mock_kwargs["job_config"].dry_run == True + bq_client.query_and_wait.assert_not_called() + + @pytest.mark.parametrize( ("write_mode",), [ From 97b950b36b9c16467f0f42216b2dc8395346d7fe Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Fri, 3 Oct 2025 20:59:34 -0700 Subject: [PATCH 021/303] feat: Migrate vertex_ai_session_service to use Agent Engine SDK PiperOrigin-RevId: 814948921 --- src/google/adk/cli/fast_api.py | 4 +- .../adk/sessions/vertex_ai_session_service.py | 406 ++++++++---------- .../test_vertex_ai_session_service.py | 400 ++++++++++------- 3 files changed, 426 insertions(+), 384 deletions(-) diff --git a/src/google/adk/cli/fast_api.py b/src/google/adk/cli/fast_api.py index 02e617ed32..326cab0367 100644 --- a/src/google/adk/cli/fast_api.py +++ b/src/google/adk/cli/fast_api.py @@ -105,8 +105,8 @@ def _parse_agent_engine_resource_name(agent_engine_id_or_resource_name): agent_engine_id = agent_engine_id_or_resource_name.split("/")[-1] else: envs.load_dotenv_for_agent("", agents_dir) - project = os.environ["GOOGLE_CLOUD_PROJECT"] - location = os.environ["GOOGLE_CLOUD_LOCATION"] + project = os.environ.get("GOOGLE_CLOUD_PROJECT", None) + location = os.environ.get("GOOGLE_CLOUD_LOCATION", None) agent_engine_id = agent_engine_id_or_resource_name return project, location, agent_engine_id diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index 31dea1a094..e3ad97b776 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -13,25 +13,21 @@ # limitations under the License. from __future__ import annotations -import json +import datetime import logging import os import re from typing import Any from typing import Dict from typing import Optional -import urllib.parse -from dateutil import parser from google.genai.errors import ClientError from tenacity import retry from tenacity import retry_if_result -from tenacity import RetryError from tenacity import stop_after_attempt from tenacity import wait_exponential from typing_extensions import override - -from google import genai +import vertexai from . import _session_util from ..events.event import Event @@ -41,12 +37,11 @@ from .base_session_service import ListSessionsResponse from .session import Session -isoparse = parser.isoparse logger = logging.getLogger('google_adk.' + __name__) class VertexAiSessionService(BaseSessionService): - """Connects to the Vertex AI Agent Engine Session Service using GenAI API client. + """Connects to the Vertex AI Agent Engine Session Service using Agent Engine SDK. https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/sessions/overview """ @@ -68,20 +63,6 @@ def __init__( self._location = location self._agent_engine_id = agent_engine_id - async def _get_session_api_response( - self, - reasoning_engine_id: str, - session_id: str, - api_client: genai.ApiClient, - ): - get_session_api_response = await api_client.async_request( - http_method='GET', - path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', - request_dict={}, - ) - get_session_api_response = _convert_api_response(get_session_api_response) - return get_session_api_response - @override async def create_session( self, @@ -96,38 +77,35 @@ async def create_session( 'User-provided Session id is not supported for' ' VertexAISessionService.' ) + reasoning_engine_id = self._get_reasoning_engine_id(app_name) api_client = self._get_api_client() - session_json_dict = {'user_id': user_id} - if state: - session_json_dict['session_state'] = state - - api_response = await api_client.async_request( - http_method='POST', - path=f'reasoningEngines/{reasoning_engine_id}/sessions', - request_dict=session_json_dict, - ) - api_response = _convert_api_response(api_response) - logger.info('Create session response received.') - logger.debug('Create session response: %s', api_response) + config = {'session_state': state} if state else {} - session_id = api_response['name'].split('/')[-3] - operation_id = api_response['name'].split('/')[-1] if _is_vertex_express_mode(self._project, self._location): + config['wait_for_completion'] = False + api_response = api_client.agent_engines.sessions.create( + name=f'reasoningEngines/{reasoning_engine_id}', + user_id=user_id, + config=config, + ) + logger.info('Create session response received.') + session_id = api_response.name.split('/')[-3] + # Express mode doesn't support LRO, so we need to poll # the session resource. # TODO: remove this once LRO polling is supported in Express mode. @retry( - stop=stop_after_attempt(5), + stop=stop_after_attempt(6), wait=wait_exponential(multiplier=1, min=1, max=3), retry=retry_if_result(lambda response: not response), reraise=True, ) async def _poll_session_resource(): try: - return await self._get_session_api_response( - reasoning_engine_id, session_id, api_client + return api_client.agent_engines.sessions.get( + name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}' ) except ClientError: logger.info('Polling session resource') @@ -137,45 +115,26 @@ async def _poll_session_resource(): await _poll_session_resource() except Exception as exc: raise ValueError('Failed to create session.') from exc - else: - @retry( - stop=stop_after_attempt(5), - wait=wait_exponential(multiplier=1, min=1, max=3), - retry=retry_if_result( - lambda response: not response.get('done', False), - ), - reraise=True, + get_session_response = api_client.agent_engines.sessions.get( + name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}' ) - async def _poll_lro(): - lro_response = await api_client.async_request( - http_method='GET', - path=f'operations/{operation_id}', - request_dict={}, - ) - lro_response = _convert_api_response(lro_response) - return lro_response - - try: - await _poll_lro() - except RetryError as exc: - raise TimeoutError( - f'Timeout waiting for operation {operation_id} to complete.' - ) from exc - except Exception as exc: - raise ValueError('Failed to create session.') from exc + else: + api_response = api_client.agent_engines.sessions.create( + name=f'reasoningEngines/{reasoning_engine_id}', + user_id=user_id, + config=config, + ) + logger.debug('Create session response: %s', api_response) + get_session_response = api_response.response + session_id = get_session_response.name.split('/')[-1] - get_session_api_response = await self._get_session_api_response( - reasoning_engine_id, session_id, api_client - ) session = Session( app_name=str(app_name), user_id=str(user_id), id=str(session_id), - state=get_session_api_response.get('sessionState', {}), - last_update_time=isoparse( - get_session_api_response['updateTime'] - ).timestamp(), + state=getattr(get_session_response, 'session_state', None) or {}, + last_update_time=get_session_response.update_time.timestamp(), ) return session @@ -192,79 +151,49 @@ async def get_session( api_client = self._get_api_client() # Get session resource - get_session_api_response = await self._get_session_api_response( - reasoning_engine_id, session_id, api_client + get_session_response = api_client.agent_engines.sessions.get( + name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', ) - if get_session_api_response['userId'] != user_id: - raise ValueError(f'Session not found: {session_id}') + if get_session_response.user_id != user_id: + raise ValueError( + f'Session {session_id} does not belong to user {user_id}.' + ) - session_id = get_session_api_response['name'].split('/')[-1] - update_timestamp = isoparse( - get_session_api_response['updateTime'] - ).timestamp() + session_id_from_name = get_session_response.name.split('/')[-1] + update_timestamp = get_session_response.update_time.timestamp() session = Session( app_name=str(app_name), user_id=str(user_id), - id=str(session_id), - state=get_session_api_response.get('sessionState', {}), + id=str(session_id_from_name), + state=getattr(get_session_response, 'session_state', None) or {}, last_update_time=update_timestamp, ) - list_events_api_response = await api_client.async_request( - http_method='GET', - path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}/events', - request_dict={}, - ) - converted_api_response = _convert_api_response(list_events_api_response) - - # Handles empty response case where there are no events to fetch - if not converted_api_response or converted_api_response.get( - 'httpHeaders', None - ): - return session - - session.events += [ - _from_api_event(event) - for event in converted_api_response['sessionEvents'] - ] + list_events_kwargs = {} + if config and not config.num_recent_events and config.after_timestamp: + list_events_kwargs['config'] = { + 'filter': 'timestamp>="{}"'.format( + datetime.datetime.fromtimestamp( + config.after_timestamp, tz=datetime.timezone.utc + ).isoformat() + ) + } - while converted_api_response.get('nextPageToken', None): - page_token = converted_api_response.get('nextPageToken', None) - list_events_api_response = await api_client.async_request( - http_method='GET', - path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}/events?pageToken={page_token}', - request_dict={}, - ) - converted_api_response = _convert_api_response(list_events_api_response) - - # Handles empty response case where there are no more events to fetch - if not converted_api_response or converted_api_response.get( - 'httpHeaders', None - ): - break - session.events += [ - _from_api_event(event) - for event in converted_api_response['sessionEvents'] - ] + events_iterator = api_client.agent_engines.sessions.events.list( + name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', + **list_events_kwargs, + ) + session.events += [_from_api_event(event) for event in events_iterator] session.events = [ event for event in session.events if event.timestamp <= update_timestamp ] - session.events.sort(key=lambda event: event.timestamp) # Filter events based on config if config: if config.num_recent_events: session.events = session.events[-config.num_recent_events :] - elif config.after_timestamp: - i = len(session.events) - 1 - while i >= 0: - if session.events[i].timestamp < config.after_timestamp: - break - i -= 1 - if i >= 0: - session.events = session.events[i:] return session @@ -275,46 +204,22 @@ async def list_sessions( reasoning_engine_id = self._get_reasoning_engine_id(app_name) api_client = self._get_api_client() - base_path = f'reasoningEngines/{reasoning_engine_id}/sessions' sessions = [] - page_token = None - while True: - path = base_path - query_params = {} - if user_id: - query_params['filter'] = f'user_id="{user_id}"' - if page_token: - query_params['pageToken'] = page_token - - if query_params: - path = f'{path}?{urllib.parse.urlencode(query_params)}' - - list_sessions_api_response = await api_client.async_request( - http_method='GET', - path=path, - request_dict={}, + sessions_iterator = api_client.agent_engines.sessions.list( + name=f'reasoningEngines/{reasoning_engine_id}', + config={'filter': f'user_id="{user_id}"'}, + ) + + for api_session in sessions_iterator: + sessions.append( + Session( + app_name=app_name, + user_id=user_id, + id=api_session.name.split('/')[-1], + state=getattr(api_session, 'session_state', None) or {}, + last_update_time=api_session.update_time.timestamp(), + ) ) - converted_api_response = _convert_api_response(list_sessions_api_response) - - # Handles empty response case - if not converted_api_response or converted_api_response.get( - 'httpHeaders', None - ): - break - - for api_session in converted_api_response.get('sessions', []): - session = Session( - app_name=app_name, - user_id=user_id, - id=api_session['name'].split('/')[-1], - state=api_session.get('sessionState', {}), - last_update_time=isoparse(api_session['updateTime']).timestamp(), - ) - sessions.append(session) - - page_token = converted_api_response.get('nextPageToken') - if not page_token: - break return ListSessionsResponse(sessions=sessions) @@ -325,10 +230,8 @@ async def delete_session( api_client = self._get_api_client() try: - await api_client.async_request( - http_method='DELETE', - path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', - request_dict={}, + api_client.agent_engines.sessions.delete( + name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', ) except Exception as e: logger.error('Error deleting session %s: %s', session_id, e) @@ -341,10 +244,52 @@ async def append_event(self, session: Session, event: Event) -> Event: reasoning_engine_id = self._get_reasoning_engine_id(session.app_name) api_client = self._get_api_client() - await api_client.async_request( - http_method='POST', - path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session.id}:appendEvent', - request_dict=_convert_event_to_json(event), + + config = {} + if event.content: + config['content'] = event.content.model_dump( + exclude_none=True, mode='json' + ) + if event.actions: + config['actions'] = { + 'skip_summarization': event.actions.skip_summarization, + 'state_delta': event.actions.state_delta, + 'artifact_delta': event.actions.artifact_delta, + 'transfer_agent': event.actions.transfer_to_agent, + 'escalate': event.actions.escalate, + 'requested_auth_configs': event.actions.requested_auth_configs, + } + if event.error_code: + config['error_code'] = event.error_code + if event.error_message: + config['error_message'] = event.error_message + + metadata_dict = { + 'partial': event.partial, + 'turn_complete': event.turn_complete, + 'interrupted': event.interrupted, + 'branch': event.branch, + 'custom_metadata': event.custom_metadata, + 'long_running_tool_ids': ( + list(event.long_running_tool_ids) + if event.long_running_tool_ids + else None + ), + } + if event.grounding_metadata: + metadata_dict['grounding_metadata'] = event.grounding_metadata.model_dump( + exclude_none=True, mode='json' + ) + config['event_metadata'] = metadata_dict + + api_client.agent_engines.sessions.events.append( + name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session.id}', + author=event.author, + invocation_id=event.invocation_id, + timestamp=datetime.datetime.fromtimestamp( + event.timestamp, tz=datetime.timezone.utc + ), + config=config, ) return event @@ -366,26 +311,13 @@ def _get_reasoning_engine_id(self, app_name: str): return match.groups()[-1] - def _api_client_http_options_override( - self, - ) -> Optional[genai.types.HttpOptions]: - return None - - def _get_api_client(self) -> genai.client.BaseApiClient: + def _get_api_client(self) -> vertexai.Client: """Instantiates an API client for the given project and location. - It needs to be instantiated inside each request so that the event loop - management can be properly propagated. - Returns: An API client for the given project and location. """ - return genai.client.BaseApiClient( - vertexai=True, - project=self._project, - location=self._location, - http_options=self._api_client_http_options_override(), - ) + return vertexai.Client(project=self._project, location=self._location) def _is_vertex_express_mode( @@ -400,13 +332,6 @@ def _is_vertex_express_mode( ) -def _convert_api_response(api_response): - """Converts the API response to a JSON object based on the type.""" - if hasattr(api_response, 'body'): - return json.loads(api_response.body) - return api_response - - def _convert_event_to_json(event: Event) -> Dict[str, Any]: metadata_json = { 'partial': event.partial, @@ -460,47 +385,60 @@ def _convert_event_to_json(event: Event) -> Dict[str, Any]: return event_json -def _from_api_event(api_event: Dict[str, Any]) -> Event: - event_actions = EventActions() - if api_event.get('actions', None): - event_actions = EventActions( - skip_summarization=api_event['actions'].get('skipSummarization', None), - state_delta=api_event['actions'].get('stateDelta', {}), - artifact_delta=api_event['actions'].get('artifactDelta', {}), - transfer_to_agent=api_event['actions'].get('transferAgent', None), - escalate=api_event['actions'].get('escalate', None), - requested_auth_configs=api_event['actions'].get( - 'requestedAuthConfigs', {} - ), - ) - - event = Event( - id=api_event['name'].split('/')[-1], - invocation_id=api_event['invocationId'], - author=api_event['author'], - actions=event_actions, - content=_session_util.decode_content(api_event.get('content', None)), - timestamp=isoparse(api_event['timestamp']).timestamp(), - error_code=api_event.get('errorCode', None), - error_message=api_event.get('errorMessage', None), - ) - - if api_event.get('eventMetadata', None): - long_running_tool_ids_list = api_event['eventMetadata'].get( - 'longRunningToolIds', None - ) - event.partial = api_event['eventMetadata'].get('partial', None) - event.turn_complete = api_event['eventMetadata'].get('turnComplete', None) - event.interrupted = api_event['eventMetadata'].get('interrupted', None) - event.branch = api_event['eventMetadata'].get('branch', None) - event.custom_metadata = api_event['eventMetadata'].get( - 'customMetadata', None - ) - event.grounding_metadata = _session_util.decode_grounding_metadata( - api_event['eventMetadata'].get('groundingMetadata', None) +def _from_api_event(api_event_obj: vertexai.types.SessionEvent) -> Event: + """Converts an API event object to an Event object.""" + actions = getattr(api_event_obj, 'actions', None) + if actions: + actions_dict = actions.model_dump(exclude_none=True, mode='python') + rename_map = {'transfer_agent': 'transfer_to_agent'} + renamed_actions_dict = { + rename_map.get(k, k): v for k, v in actions_dict.items() + } + event_actions = EventActions.model_validate(renamed_actions_dict) + else: + event_actions = EventActions() + + event_metadata = getattr(api_event_obj, 'event_metadata', None) + if event_metadata: + long_running_tool_ids_list = getattr( + event_metadata, 'long_running_tool_ids', None ) - event.long_running_tool_ids = ( + long_running_tool_ids = ( set(long_running_tool_ids_list) if long_running_tool_ids_list else None ) - - return event + partial = getattr(event_metadata, 'partial', None) + turn_complete = getattr(event_metadata, 'turn_complete', None) + interrupted = getattr(event_metadata, 'interrupted', None) + branch = getattr(event_metadata, 'branch', None) + custom_metadata = getattr(event_metadata, 'custom_metadata', None) + grounding_metadata = _session_util.decode_grounding_metadata( + getattr(event_metadata, 'grounding_metadata', None) + ) + else: + long_running_tool_ids = None + partial = None + turn_complete = None + interrupted = None + branch = None + custom_metadata = None + grounding_metadata = None + + return Event( + id=api_event_obj.name.split('/')[-1], + invocation_id=api_event_obj.invocation_id, + author=api_event_obj.author, + actions=event_actions, + content=_session_util.decode_content( + getattr(api_event_obj, 'content', None) + ), + timestamp=api_event_obj.timestamp.timestamp(), + error_code=getattr(api_event_obj, 'error_code', None), + error_message=getattr(api_event_obj, 'error_message', None), + partial=partial, + turn_complete=turn_complete, + interrupted=interrupted, + branch=branch, + custom_metadata=custom_metadata, + grounding_metadata=grounding_metadata, + long_running_tool_ids=long_running_tool_ids, + ) diff --git a/tests/unittests/sessions/test_vertex_ai_session_service.py b/tests/unittests/sessions/test_vertex_ai_session_service.py index f72394c44c..fc9c2b5f2e 100644 --- a/tests/unittests/sessions/test_vertex_ai_session_service.py +++ b/tests/unittests/sessions/test_vertex_ai_session_service.py @@ -12,21 +12,23 @@ # See the License for the specific language governing permissions and # limitations under the License. +import copy import re -import this +import types from typing import Any from typing import List from typing import Optional from typing import Tuple from unittest import mock -from urllib import parse from dateutil.parser import isoparse from google.adk.events.event import Event from google.adk.events.event_actions import EventActions +from google.adk.sessions.base_session_service import GetSessionConfig from google.adk.sessions.session import Session from google.adk.sessions.vertex_ai_session_service import VertexAiSessionService -from google.genai import types +from google.api_core import exceptions as api_core_exceptions +from google.genai import types as genai_types import pytest MOCK_SESSION_JSON_1 = { @@ -34,28 +36,28 @@ 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/1' ), - 'createTime': '2024-12-12T12:12:12.123456Z', - 'updateTime': '2024-12-12T12:12:12.123456Z', - 'sessionState': { + 'create_time': '2024-12-12T12:12:12.123456Z', + 'update_time': '2024-12-12T12:12:12.123456Z', + 'session_state': { 'key': {'value': 'test_value'}, }, - 'userId': 'user', + 'user_id': 'user', } MOCK_SESSION_JSON_2 = { 'name': ( 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/2' ), - 'updateTime': '2024-12-13T12:12:12.123456Z', - 'userId': 'user', + 'update_time': '2024-12-13T12:12:12.123456Z', + 'user_id': 'user', } MOCK_SESSION_JSON_3 = { 'name': ( 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/3' ), - 'updateTime': '2024-12-14T12:12:12.123456Z', - 'userId': 'user2', + 'update_time': '2024-12-14T12:12:12.123456Z', + 'user_id': 'user2', } MOCK_EVENT_JSON = [ { @@ -63,7 +65,7 @@ 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/1/events/123' ), - 'invocationId': '123', + 'invocation_id': '123', 'author': 'user', 'timestamp': '2024-12-12T12:12:12.123456Z', 'content': { @@ -72,17 +74,17 @@ ], }, 'actions': { - 'stateDelta': { + 'state_delta': { 'key': {'value': 'test_value'}, }, - 'transferAgent': 'agent', + 'transfer_agent': 'agent', }, - 'eventMetadata': { + 'event_metadata': { 'partial': False, - 'turnComplete': True, + 'turn_complete': True, 'interrupted': False, 'branch': '', - 'longRunningToolIds': ['tool1'], + 'long_running_tool_ids': ['tool1'], }, }, ] @@ -92,7 +94,7 @@ 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/2/events/123' ), - 'invocationId': '222', + 'invocation_id': '222', 'author': 'user', 'timestamp': '2024-12-12T12:12:12.123456Z', }, @@ -103,9 +105,9 @@ 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/2/events/456' ), - 'invocationId': '333', + 'invocation_id': '333', 'author': 'user', - 'timestamp': '2024-12-12T12:12:12.123456Z', + 'timestamp': '2024-12-12T12:12:13.123456Z', }, ] MOCK_SESSION_JSON_PAGE1 = { @@ -113,31 +115,33 @@ 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/page1' ), - 'updateTime': '2024-12-15T12:12:12.123456Z', - 'userId': 'user_with_pages', + 'update_time': '2024-12-15T12:12:12.123456Z', + 'user_id': 'user_with_pages', } MOCK_SESSION_JSON_PAGE2 = { 'name': ( 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/page2' ), - 'updateTime': '2024-12-16T12:12:12.123456Z', - 'userId': 'user_with_pages', + 'update_time': '2024-12-16T12:12:12.123456Z', + 'user_id': 'user_with_pages', } MOCK_SESSION = Session( app_name='123', user_id='user', id='1', - state=MOCK_SESSION_JSON_1['sessionState'], - last_update_time=isoparse(MOCK_SESSION_JSON_1['updateTime']).timestamp(), + state=MOCK_SESSION_JSON_1['session_state'], + last_update_time=isoparse(MOCK_SESSION_JSON_1['update_time']).timestamp(), events=[ Event( id='123', invocation_id='123', author='user', timestamp=isoparse(MOCK_EVENT_JSON[0]['timestamp']).timestamp(), - content=types.Content(parts=[types.Part(text='test_content')]), + content=genai_types.Content( + parts=[genai_types.Part(text='test_content')] + ), actions=EventActions( transfer_to_agent='agent', state_delta={'key': {'value': 'test_value'}}, @@ -155,7 +159,7 @@ app_name='123', user_id='user', id='2', - last_update_time=isoparse(MOCK_SESSION_JSON_2['updateTime']).timestamp(), + last_update_time=isoparse(MOCK_SESSION_JSON_2['update_time']).timestamp(), events=[ Event( id='123', @@ -173,12 +177,52 @@ ) -SESSION_REGEX = r'^reasoningEngines/([^/]+)/sessions/([^/]+)$' -SESSIONS_REGEX = r'^reasoningEngines/([^/]+)/sessions\?.*$' -EVENTS_REGEX = ( - r'^reasoningEngines/([^/]+)/sessions/([^/]+)/events(?:\?pageToken=([^/]+))?' -) -LRO_REGEX = r'^operations/([^/]+)$' +class PydanticNamespace(types.SimpleNamespace): + + def model_dump(self, exclude_none=True, mode='python'): + d = {} + for k, v in self.__dict__.items(): + if exclude_none and v is None: + continue + if isinstance(v, PydanticNamespace): + d[k] = v.model_dump(exclude_none=exclude_none, mode=mode) + elif isinstance(v, list): + d[k] = [ + i.model_dump(exclude_none=exclude_none, mode=mode) + if isinstance(i, PydanticNamespace) + else i + for i in v + ] + else: + d[k] = v + return d + + +def _convert_to_object(data): + if isinstance(data, dict): + kwargs = {} + for key, value in data.items(): + if key in [ + 'timestamp', + 'update_time', + 'create_time', + ] and isinstance(value, str): + kwargs[key] = isoparse(value) + elif key in [ + 'session_state', + 'state_delta', + 'artifact_delta', + 'custom_metadata', + 'requested_auth_configs', + ]: + kwargs[key] = value + else: + kwargs[key] = _convert_to_object(value) + return PydanticNamespace(**kwargs) + elif isinstance(data, list): + return [_convert_to_object(item) for item in data] + else: + return data class MockApiClient: @@ -186,112 +230,126 @@ class MockApiClient: def __init__(self) -> None: """Initializes MockClient.""" - this.session_dict: dict[str, Any] = {} - this.event_dict: dict[str, Tuple[List[Any], Optional[str]]] = {} - - async def async_request( - self, http_method: str, path: str, request_dict: dict[str, Any] - ): - """Mocks the API Client request method""" - if http_method == 'GET': - if re.match(SESSION_REGEX, path): - match = re.match(SESSION_REGEX, path) - if match: - session_id = match.group(2) - if session_id in self.session_dict: - return self.session_dict[session_id] - else: - raise ValueError(f'Session not found: {session_id}') - elif re.match(SESSIONS_REGEX, path): - parsed_url = parse.urlparse(path) - query_params = parse.parse_qs(parsed_url.query) - filter_val = query_params.get('filter', [''])[0] - user_id_match = re.search(r'user_id="([^"]+)"', filter_val) - if not user_id_match: - raise ValueError(f'Could not find user_id in filter: {filter_val}') - user_id = user_id_match.group(1) - - if user_id == 'user_with_pages': - page_token = query_params.get('pageToken', [None])[0] - if page_token == 'my_token': - return {'sessions': [MOCK_SESSION_JSON_PAGE2]} - else: - return { - 'sessions': [MOCK_SESSION_JSON_PAGE1], - 'nextPageToken': 'my_token', - } - return { - 'sessions': [ - session - for session in self.session_dict.values() - if session['userId'] == user_id - ], - } - elif re.match(EVENTS_REGEX, path): - match = re.match(EVENTS_REGEX, path) - if match: - session_id = match.group(2) - if match.group(3): - page_token = match.group(3) - if page_token == 'my_token': - response = {'sessionEvents': MOCK_EVENT_JSON_3} - response['nextPageToken'] = 'my_token2' - return response - else: - return {} - events_tuple = self.event_dict.get(session_id, ([], None)) - response = {'sessionEvents': events_tuple[0]} - if events_tuple[1]: - response['nextPageToken'] = events_tuple[1] - return response - elif re.match(LRO_REGEX, path): - # Mock long-running operation as completed - return { - 'name': path, - 'done': True, - 'response': self.session_dict['4'], # Return the created session - } - else: - raise ValueError(f'Unsupported path: {path}') - elif http_method == 'POST': - new_session_id = '4' - self.session_dict[new_session_id] = { - 'name': ( - 'projects/test-project/locations/test-location/' - 'reasoningEngines/123/sessions/' - + new_session_id - ), - 'userId': request_dict['user_id'], - 'sessionState': request_dict.get('session_state', {}), - 'updateTime': '2024-12-12T12:12:12.123456Z', - } - return { - 'name': ( - 'projects/test_project/locations/test_location/' - 'reasoningEngines/123/sessions/' - + new_session_id - + '/operations/111' - ), - 'done': False, - } - elif http_method == 'DELETE': - match = re.match(SESSION_REGEX, path) + self.session_dict: dict[str, Any] = {} + self.event_dict: dict[str, Tuple[List[Any], Optional[str]]] = {} + self.agent_engines = mock.Mock() + self.agent_engines.sessions.get.side_effect = self._get_session + self.agent_engines.sessions.list.side_effect = self._list_sessions + self.agent_engines.sessions.delete.side_effect = self._delete_session + self.agent_engines.sessions.create.side_effect = self._create_session + self.agent_engines.sessions.events.list.side_effect = self._list_events + self.agent_engines.sessions.events.append.side_effect = self._append_event + + def _get_session(self, name: str): + session_id = name.split('/')[-1] + if session_id in self.session_dict: + return _convert_to_object(self.session_dict[session_id]) + raise api_core_exceptions.NotFound(f'Session not found: {session_id}') + + def _list_sessions(self, name: str, config: dict[str, Any]): + filter_val = config.get('filter', '') + user_id_match = re.search(r'user_id="([^"]+)"', filter_val) + if not user_id_match: + raise ValueError(f'Could not find user_id in filter: {filter_val}') + user_id = user_id_match.group(1) + + if user_id == 'user_with_pages': + return [ + _convert_to_object(MOCK_SESSION_JSON_PAGE1), + _convert_to_object(MOCK_SESSION_JSON_PAGE2), + ] + return [ + _convert_to_object(session) + for session in self.session_dict.values() + if session['user_id'] == user_id + ] + + def _delete_session(self, name: str): + session_id = name.split('/')[-1] + self.session_dict.pop(session_id) + + def _create_session(self, name: str, user_id: str, config: dict[str, Any]): + new_session_id = '4' + self.session_dict[new_session_id] = { + 'name': ( + 'projects/test-project/locations/test-location/' + 'reasoningEngines/123/sessions/' + + new_session_id + ), + 'user_id': user_id, + 'session_state': config.get('session_state', {}), + 'update_time': '2024-12-12T12:12:12.123456Z', + } + return _convert_to_object({ + 'name': ( + 'projects/test_project/locations/test_location/' + 'reasoningEngines/123/sessions/' + + new_session_id + + '/operations/111' + ), + 'done': True, + 'response': self.session_dict['4'], + }) + + def _list_events(self, name: str, **kwargs): + session_id = name.split('/')[-1] + events = [] + if session_id in self.event_dict: + events_tuple = self.event_dict[session_id] + events.extend(events_tuple[0]) + if events_tuple[1] == 'my_token': + events.extend(MOCK_EVENT_JSON_3) + + config = kwargs.get('config', {}) + filter_str = config.get('filter', None) + if filter_str: + match = re.search(r'timestamp>="([^"]+)"', filter_str) if match: - self.session_dict.pop(match.group(2)) + after_timestamp_str = match.group(1) + after_timestamp = isoparse(after_timestamp_str) + events = [ + event + for event in events + if isoparse(event['timestamp']) >= after_timestamp + ] + return [_convert_to_object(event) for event in events] + + def _append_event( + self, + name: str, + author: str, + invocation_id: str, + timestamp: Any, + config: dict[str, Any], + ): + session_id = name.split('/')[-1] + event_list, token = self.event_dict.get(session_id, ([], None)) + event_id = str(len(event_list) + 1000) # generate unique ID + + event_timestamp_str = timestamp.isoformat().replace('+00:00', 'Z') + event_json = { + 'name': f'{name}/events/{event_id}', + 'invocation_id': invocation_id, + 'author': author, + 'timestamp': event_timestamp_str, + } + event_json.update(config) + + if session_id in self.session_dict: + self.session_dict[session_id]['update_time'] = event_timestamp_str + + if session_id in self.event_dict: + self.event_dict[session_id][0].append(event_json) else: - raise ValueError(f'Unsupported http method: {http_method}') + self.event_dict[session_id] = ([event_json], None) def mock_vertex_ai_session_service(agent_engine_id: Optional[str] = None): """Creates a mock Vertex AI Session service for testing.""" - if agent_engine_id: - return VertexAiSessionService( - project='test-project', - location='test-location', - agent_engine_id=agent_engine_id, - ) return VertexAiSessionService( - project='test-project', location='test-location' + project='test-project', + location='test-location', + agent_engine_id=agent_engine_id, ) @@ -306,8 +364,8 @@ def mock_get_api_client(): 'page2': MOCK_SESSION_JSON_PAGE2, } api_client.event_dict = { - '1': (MOCK_EVENT_JSON, None), - '2': (MOCK_EVENT_JSON_2, 'my_token'), + '1': (copy.deepcopy(MOCK_EVENT_JSON), None), + '2': (copy.deepcopy(MOCK_EVENT_JSON_2), 'my_token'), } with mock.patch( 'google.adk.sessions.vertex_ai_session_service.VertexAiSessionService._get_api_client', @@ -320,30 +378,24 @@ def mock_get_api_client(): @pytest.mark.usefixtures('mock_get_api_client') @pytest.mark.parametrize('agent_engine_id', [None, '123']) async def test_get_empty_session(agent_engine_id): - if agent_engine_id: - session_service = mock_vertex_ai_session_service(agent_engine_id) - else: - session_service = mock_vertex_ai_session_service() - with pytest.raises(ValueError) as excinfo: + session_service = mock_vertex_ai_session_service(agent_engine_id) + with pytest.raises(api_core_exceptions.NotFound) as excinfo: await session_service.get_session( app_name='123', user_id='user', session_id='0' ) - assert str(excinfo.value) == 'Session not found: 0' + assert str(excinfo.value) == '404 Session not found: 0' @pytest.mark.asyncio @pytest.mark.usefixtures('mock_get_api_client') @pytest.mark.parametrize('agent_engine_id', [None, '123']) async def test_get_another_user_session(agent_engine_id): - if agent_engine_id: - session_service = mock_vertex_ai_session_service(agent_engine_id) - else: - session_service = mock_vertex_ai_session_service() + session_service = mock_vertex_ai_session_service(agent_engine_id) with pytest.raises(ValueError) as excinfo: await session_service.get_session( app_name='123', user_id='user2', session_id='1' ) - assert str(excinfo.value) == 'Session not found: 1' + assert str(excinfo.value) == 'Session 1 does not belong to user user2.' @pytest.mark.asyncio @@ -361,11 +413,11 @@ async def test_get_and_delete_session(): await session_service.delete_session( app_name='123', user_id='user', session_id='1' ) - with pytest.raises(ValueError) as excinfo: + with pytest.raises(api_core_exceptions.NotFound) as excinfo: await session_service.get_session( app_name='123', user_id='user', session_id='1' ) - assert str(excinfo.value) == 'Session not found: 1' + assert str(excinfo.value) == '404 Session not found: 1' @pytest.mark.asyncio @@ -381,6 +433,23 @@ async def test_get_session_with_page_token(): ) +@pytest.mark.asyncio +@pytest.mark.usefixtures('mock_get_api_client') +async def test_get_session_with_after_timestamp_filter(): + session_service = mock_vertex_ai_session_service() + session = await session_service.get_session( + app_name='123', + user_id='user', + session_id='2', + config=GetSessionConfig( + after_timestamp=isoparse('2024-12-12T12:12:13.0Z').timestamp() + ), + ) + assert session is not None + assert len(session.events) == 1 + assert session.events[0].id == '456' + + @pytest.mark.asyncio @pytest.mark.usefixtures('mock_get_api_client') async def test_list_sessions(): @@ -435,3 +504,38 @@ async def test_create_session_with_custom_session_id(): assert str(excinfo.value) == ( 'User-provided Session id is not supported for VertexAISessionService.' ) + + +@pytest.mark.asyncio +@pytest.mark.usefixtures('mock_get_api_client') +async def test_append_event(): + session_service = mock_vertex_ai_session_service() + session_before_append = await session_service.get_session( + app_name='123', user_id='user', session_id='1' + ) + event_to_append = Event( + invocation_id='new_invocation', + author='model', + timestamp=1734005533.0, + content=genai_types.Content(parts=[genai_types.Part(text='new_content')]), + actions=EventActions( + transfer_to_agent='another_agent', + state_delta={'new_key': 'new_value'}, + skip_summarization=True, + ), + error_code='1', + error_message='test_error', + branch='test_branch', + custom_metadata={'custom': 'data'}, + long_running_tool_ids={'tool2'}, + ) + + await session_service.append_event(session_before_append, event_to_append) + + retrieved_session = await session_service.get_session( + app_name='123', user_id='user', session_id='1' + ) + + assert len(retrieved_session.events) == 2 + event_to_append.id = retrieved_session.events[1].id + assert retrieved_session.events[1] == event_to_append From d1efc8461e82fc31df940b701f1d1b5422214296 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Fri, 3 Oct 2025 22:13:49 -0700 Subject: [PATCH 022/303] feat: Migrate vertex_ai_session_service to use Agent Engine SDK PiperOrigin-RevId: 814967790 --- src/google/adk/cli/fast_api.py | 4 +- .../adk/sessions/vertex_ai_session_service.py | 406 ++++++++++-------- .../test_vertex_ai_session_service.py | 400 +++++++---------- 3 files changed, 384 insertions(+), 426 deletions(-) diff --git a/src/google/adk/cli/fast_api.py b/src/google/adk/cli/fast_api.py index 326cab0367..02e617ed32 100644 --- a/src/google/adk/cli/fast_api.py +++ b/src/google/adk/cli/fast_api.py @@ -105,8 +105,8 @@ def _parse_agent_engine_resource_name(agent_engine_id_or_resource_name): agent_engine_id = agent_engine_id_or_resource_name.split("/")[-1] else: envs.load_dotenv_for_agent("", agents_dir) - project = os.environ.get("GOOGLE_CLOUD_PROJECT", None) - location = os.environ.get("GOOGLE_CLOUD_LOCATION", None) + project = os.environ["GOOGLE_CLOUD_PROJECT"] + location = os.environ["GOOGLE_CLOUD_LOCATION"] agent_engine_id = agent_engine_id_or_resource_name return project, location, agent_engine_id diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index e3ad97b776..31dea1a094 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -13,21 +13,25 @@ # limitations under the License. from __future__ import annotations -import datetime +import json import logging import os import re from typing import Any from typing import Dict from typing import Optional +import urllib.parse +from dateutil import parser from google.genai.errors import ClientError from tenacity import retry from tenacity import retry_if_result +from tenacity import RetryError from tenacity import stop_after_attempt from tenacity import wait_exponential from typing_extensions import override -import vertexai + +from google import genai from . import _session_util from ..events.event import Event @@ -37,11 +41,12 @@ from .base_session_service import ListSessionsResponse from .session import Session +isoparse = parser.isoparse logger = logging.getLogger('google_adk.' + __name__) class VertexAiSessionService(BaseSessionService): - """Connects to the Vertex AI Agent Engine Session Service using Agent Engine SDK. + """Connects to the Vertex AI Agent Engine Session Service using GenAI API client. https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/sessions/overview """ @@ -63,6 +68,20 @@ def __init__( self._location = location self._agent_engine_id = agent_engine_id + async def _get_session_api_response( + self, + reasoning_engine_id: str, + session_id: str, + api_client: genai.ApiClient, + ): + get_session_api_response = await api_client.async_request( + http_method='GET', + path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', + request_dict={}, + ) + get_session_api_response = _convert_api_response(get_session_api_response) + return get_session_api_response + @override async def create_session( self, @@ -77,35 +96,38 @@ async def create_session( 'User-provided Session id is not supported for' ' VertexAISessionService.' ) - reasoning_engine_id = self._get_reasoning_engine_id(app_name) api_client = self._get_api_client() - config = {'session_state': state} if state else {} + session_json_dict = {'user_id': user_id} + if state: + session_json_dict['session_state'] = state - if _is_vertex_express_mode(self._project, self._location): - config['wait_for_completion'] = False - api_response = api_client.agent_engines.sessions.create( - name=f'reasoningEngines/{reasoning_engine_id}', - user_id=user_id, - config=config, - ) - logger.info('Create session response received.') - session_id = api_response.name.split('/')[-3] + api_response = await api_client.async_request( + http_method='POST', + path=f'reasoningEngines/{reasoning_engine_id}/sessions', + request_dict=session_json_dict, + ) + api_response = _convert_api_response(api_response) + logger.info('Create session response received.') + logger.debug('Create session response: %s', api_response) + session_id = api_response['name'].split('/')[-3] + operation_id = api_response['name'].split('/')[-1] + if _is_vertex_express_mode(self._project, self._location): # Express mode doesn't support LRO, so we need to poll # the session resource. # TODO: remove this once LRO polling is supported in Express mode. @retry( - stop=stop_after_attempt(6), + stop=stop_after_attempt(5), wait=wait_exponential(multiplier=1, min=1, max=3), retry=retry_if_result(lambda response: not response), reraise=True, ) async def _poll_session_resource(): try: - return api_client.agent_engines.sessions.get( - name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}' + return await self._get_session_api_response( + reasoning_engine_id, session_id, api_client ) except ClientError: logger.info('Polling session resource') @@ -115,26 +137,45 @@ async def _poll_session_resource(): await _poll_session_resource() except Exception as exc: raise ValueError('Failed to create session.') from exc - - get_session_response = api_client.agent_engines.sessions.get( - name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}' - ) else: - api_response = api_client.agent_engines.sessions.create( - name=f'reasoningEngines/{reasoning_engine_id}', - user_id=user_id, - config=config, + + @retry( + stop=stop_after_attempt(5), + wait=wait_exponential(multiplier=1, min=1, max=3), + retry=retry_if_result( + lambda response: not response.get('done', False), + ), + reraise=True, ) - logger.debug('Create session response: %s', api_response) - get_session_response = api_response.response - session_id = get_session_response.name.split('/')[-1] + async def _poll_lro(): + lro_response = await api_client.async_request( + http_method='GET', + path=f'operations/{operation_id}', + request_dict={}, + ) + lro_response = _convert_api_response(lro_response) + return lro_response + + try: + await _poll_lro() + except RetryError as exc: + raise TimeoutError( + f'Timeout waiting for operation {operation_id} to complete.' + ) from exc + except Exception as exc: + raise ValueError('Failed to create session.') from exc + get_session_api_response = await self._get_session_api_response( + reasoning_engine_id, session_id, api_client + ) session = Session( app_name=str(app_name), user_id=str(user_id), id=str(session_id), - state=getattr(get_session_response, 'session_state', None) or {}, - last_update_time=get_session_response.update_time.timestamp(), + state=get_session_api_response.get('sessionState', {}), + last_update_time=isoparse( + get_session_api_response['updateTime'] + ).timestamp(), ) return session @@ -151,49 +192,79 @@ async def get_session( api_client = self._get_api_client() # Get session resource - get_session_response = api_client.agent_engines.sessions.get( - name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', + get_session_api_response = await self._get_session_api_response( + reasoning_engine_id, session_id, api_client ) - if get_session_response.user_id != user_id: - raise ValueError( - f'Session {session_id} does not belong to user {user_id}.' - ) + if get_session_api_response['userId'] != user_id: + raise ValueError(f'Session not found: {session_id}') - session_id_from_name = get_session_response.name.split('/')[-1] - update_timestamp = get_session_response.update_time.timestamp() + session_id = get_session_api_response['name'].split('/')[-1] + update_timestamp = isoparse( + get_session_api_response['updateTime'] + ).timestamp() session = Session( app_name=str(app_name), user_id=str(user_id), - id=str(session_id_from_name), - state=getattr(get_session_response, 'session_state', None) or {}, + id=str(session_id), + state=get_session_api_response.get('sessionState', {}), last_update_time=update_timestamp, ) - list_events_kwargs = {} - if config and not config.num_recent_events and config.after_timestamp: - list_events_kwargs['config'] = { - 'filter': 'timestamp>="{}"'.format( - datetime.datetime.fromtimestamp( - config.after_timestamp, tz=datetime.timezone.utc - ).isoformat() - ) - } - - events_iterator = api_client.agent_engines.sessions.events.list( - name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', - **list_events_kwargs, + list_events_api_response = await api_client.async_request( + http_method='GET', + path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}/events', + request_dict={}, ) - session.events += [_from_api_event(event) for event in events_iterator] + converted_api_response = _convert_api_response(list_events_api_response) + + # Handles empty response case where there are no events to fetch + if not converted_api_response or converted_api_response.get( + 'httpHeaders', None + ): + return session + + session.events += [ + _from_api_event(event) + for event in converted_api_response['sessionEvents'] + ] + + while converted_api_response.get('nextPageToken', None): + page_token = converted_api_response.get('nextPageToken', None) + list_events_api_response = await api_client.async_request( + http_method='GET', + path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}/events?pageToken={page_token}', + request_dict={}, + ) + converted_api_response = _convert_api_response(list_events_api_response) + + # Handles empty response case where there are no more events to fetch + if not converted_api_response or converted_api_response.get( + 'httpHeaders', None + ): + break + session.events += [ + _from_api_event(event) + for event in converted_api_response['sessionEvents'] + ] session.events = [ event for event in session.events if event.timestamp <= update_timestamp ] + session.events.sort(key=lambda event: event.timestamp) # Filter events based on config if config: if config.num_recent_events: session.events = session.events[-config.num_recent_events :] + elif config.after_timestamp: + i = len(session.events) - 1 + while i >= 0: + if session.events[i].timestamp < config.after_timestamp: + break + i -= 1 + if i >= 0: + session.events = session.events[i:] return session @@ -204,22 +275,46 @@ async def list_sessions( reasoning_engine_id = self._get_reasoning_engine_id(app_name) api_client = self._get_api_client() + base_path = f'reasoningEngines/{reasoning_engine_id}/sessions' sessions = [] - sessions_iterator = api_client.agent_engines.sessions.list( - name=f'reasoningEngines/{reasoning_engine_id}', - config={'filter': f'user_id="{user_id}"'}, - ) - - for api_session in sessions_iterator: - sessions.append( - Session( - app_name=app_name, - user_id=user_id, - id=api_session.name.split('/')[-1], - state=getattr(api_session, 'session_state', None) or {}, - last_update_time=api_session.update_time.timestamp(), - ) + page_token = None + while True: + path = base_path + query_params = {} + if user_id: + query_params['filter'] = f'user_id="{user_id}"' + if page_token: + query_params['pageToken'] = page_token + + if query_params: + path = f'{path}?{urllib.parse.urlencode(query_params)}' + + list_sessions_api_response = await api_client.async_request( + http_method='GET', + path=path, + request_dict={}, ) + converted_api_response = _convert_api_response(list_sessions_api_response) + + # Handles empty response case + if not converted_api_response or converted_api_response.get( + 'httpHeaders', None + ): + break + + for api_session in converted_api_response.get('sessions', []): + session = Session( + app_name=app_name, + user_id=user_id, + id=api_session['name'].split('/')[-1], + state=api_session.get('sessionState', {}), + last_update_time=isoparse(api_session['updateTime']).timestamp(), + ) + sessions.append(session) + + page_token = converted_api_response.get('nextPageToken') + if not page_token: + break return ListSessionsResponse(sessions=sessions) @@ -230,8 +325,10 @@ async def delete_session( api_client = self._get_api_client() try: - api_client.agent_engines.sessions.delete( - name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', + await api_client.async_request( + http_method='DELETE', + path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', + request_dict={}, ) except Exception as e: logger.error('Error deleting session %s: %s', session_id, e) @@ -244,52 +341,10 @@ async def append_event(self, session: Session, event: Event) -> Event: reasoning_engine_id = self._get_reasoning_engine_id(session.app_name) api_client = self._get_api_client() - - config = {} - if event.content: - config['content'] = event.content.model_dump( - exclude_none=True, mode='json' - ) - if event.actions: - config['actions'] = { - 'skip_summarization': event.actions.skip_summarization, - 'state_delta': event.actions.state_delta, - 'artifact_delta': event.actions.artifact_delta, - 'transfer_agent': event.actions.transfer_to_agent, - 'escalate': event.actions.escalate, - 'requested_auth_configs': event.actions.requested_auth_configs, - } - if event.error_code: - config['error_code'] = event.error_code - if event.error_message: - config['error_message'] = event.error_message - - metadata_dict = { - 'partial': event.partial, - 'turn_complete': event.turn_complete, - 'interrupted': event.interrupted, - 'branch': event.branch, - 'custom_metadata': event.custom_metadata, - 'long_running_tool_ids': ( - list(event.long_running_tool_ids) - if event.long_running_tool_ids - else None - ), - } - if event.grounding_metadata: - metadata_dict['grounding_metadata'] = event.grounding_metadata.model_dump( - exclude_none=True, mode='json' - ) - config['event_metadata'] = metadata_dict - - api_client.agent_engines.sessions.events.append( - name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session.id}', - author=event.author, - invocation_id=event.invocation_id, - timestamp=datetime.datetime.fromtimestamp( - event.timestamp, tz=datetime.timezone.utc - ), - config=config, + await api_client.async_request( + http_method='POST', + path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session.id}:appendEvent', + request_dict=_convert_event_to_json(event), ) return event @@ -311,13 +366,26 @@ def _get_reasoning_engine_id(self, app_name: str): return match.groups()[-1] - def _get_api_client(self) -> vertexai.Client: + def _api_client_http_options_override( + self, + ) -> Optional[genai.types.HttpOptions]: + return None + + def _get_api_client(self) -> genai.client.BaseApiClient: """Instantiates an API client for the given project and location. + It needs to be instantiated inside each request so that the event loop + management can be properly propagated. + Returns: An API client for the given project and location. """ - return vertexai.Client(project=self._project, location=self._location) + return genai.client.BaseApiClient( + vertexai=True, + project=self._project, + location=self._location, + http_options=self._api_client_http_options_override(), + ) def _is_vertex_express_mode( @@ -332,6 +400,13 @@ def _is_vertex_express_mode( ) +def _convert_api_response(api_response): + """Converts the API response to a JSON object based on the type.""" + if hasattr(api_response, 'body'): + return json.loads(api_response.body) + return api_response + + def _convert_event_to_json(event: Event) -> Dict[str, Any]: metadata_json = { 'partial': event.partial, @@ -385,60 +460,47 @@ def _convert_event_to_json(event: Event) -> Dict[str, Any]: return event_json -def _from_api_event(api_event_obj: vertexai.types.SessionEvent) -> Event: - """Converts an API event object to an Event object.""" - actions = getattr(api_event_obj, 'actions', None) - if actions: - actions_dict = actions.model_dump(exclude_none=True, mode='python') - rename_map = {'transfer_agent': 'transfer_to_agent'} - renamed_actions_dict = { - rename_map.get(k, k): v for k, v in actions_dict.items() - } - event_actions = EventActions.model_validate(renamed_actions_dict) - else: - event_actions = EventActions() - - event_metadata = getattr(api_event_obj, 'event_metadata', None) - if event_metadata: - long_running_tool_ids_list = getattr( - event_metadata, 'long_running_tool_ids', None - ) - long_running_tool_ids = ( - set(long_running_tool_ids_list) if long_running_tool_ids_list else None - ) - partial = getattr(event_metadata, 'partial', None) - turn_complete = getattr(event_metadata, 'turn_complete', None) - interrupted = getattr(event_metadata, 'interrupted', None) - branch = getattr(event_metadata, 'branch', None) - custom_metadata = getattr(event_metadata, 'custom_metadata', None) - grounding_metadata = _session_util.decode_grounding_metadata( - getattr(event_metadata, 'grounding_metadata', None) +def _from_api_event(api_event: Dict[str, Any]) -> Event: + event_actions = EventActions() + if api_event.get('actions', None): + event_actions = EventActions( + skip_summarization=api_event['actions'].get('skipSummarization', None), + state_delta=api_event['actions'].get('stateDelta', {}), + artifact_delta=api_event['actions'].get('artifactDelta', {}), + transfer_to_agent=api_event['actions'].get('transferAgent', None), + escalate=api_event['actions'].get('escalate', None), + requested_auth_configs=api_event['actions'].get( + 'requestedAuthConfigs', {} + ), ) - else: - long_running_tool_ids = None - partial = None - turn_complete = None - interrupted = None - branch = None - custom_metadata = None - grounding_metadata = None - - return Event( - id=api_event_obj.name.split('/')[-1], - invocation_id=api_event_obj.invocation_id, - author=api_event_obj.author, + + event = Event( + id=api_event['name'].split('/')[-1], + invocation_id=api_event['invocationId'], + author=api_event['author'], actions=event_actions, - content=_session_util.decode_content( - getattr(api_event_obj, 'content', None) - ), - timestamp=api_event_obj.timestamp.timestamp(), - error_code=getattr(api_event_obj, 'error_code', None), - error_message=getattr(api_event_obj, 'error_message', None), - partial=partial, - turn_complete=turn_complete, - interrupted=interrupted, - branch=branch, - custom_metadata=custom_metadata, - grounding_metadata=grounding_metadata, - long_running_tool_ids=long_running_tool_ids, + content=_session_util.decode_content(api_event.get('content', None)), + timestamp=isoparse(api_event['timestamp']).timestamp(), + error_code=api_event.get('errorCode', None), + error_message=api_event.get('errorMessage', None), ) + + if api_event.get('eventMetadata', None): + long_running_tool_ids_list = api_event['eventMetadata'].get( + 'longRunningToolIds', None + ) + event.partial = api_event['eventMetadata'].get('partial', None) + event.turn_complete = api_event['eventMetadata'].get('turnComplete', None) + event.interrupted = api_event['eventMetadata'].get('interrupted', None) + event.branch = api_event['eventMetadata'].get('branch', None) + event.custom_metadata = api_event['eventMetadata'].get( + 'customMetadata', None + ) + event.grounding_metadata = _session_util.decode_grounding_metadata( + api_event['eventMetadata'].get('groundingMetadata', None) + ) + event.long_running_tool_ids = ( + set(long_running_tool_ids_list) if long_running_tool_ids_list else None + ) + + return event diff --git a/tests/unittests/sessions/test_vertex_ai_session_service.py b/tests/unittests/sessions/test_vertex_ai_session_service.py index fc9c2b5f2e..f72394c44c 100644 --- a/tests/unittests/sessions/test_vertex_ai_session_service.py +++ b/tests/unittests/sessions/test_vertex_ai_session_service.py @@ -12,23 +12,21 @@ # See the License for the specific language governing permissions and # limitations under the License. -import copy import re -import types +import this from typing import Any from typing import List from typing import Optional from typing import Tuple from unittest import mock +from urllib import parse from dateutil.parser import isoparse from google.adk.events.event import Event from google.adk.events.event_actions import EventActions -from google.adk.sessions.base_session_service import GetSessionConfig from google.adk.sessions.session import Session from google.adk.sessions.vertex_ai_session_service import VertexAiSessionService -from google.api_core import exceptions as api_core_exceptions -from google.genai import types as genai_types +from google.genai import types import pytest MOCK_SESSION_JSON_1 = { @@ -36,28 +34,28 @@ 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/1' ), - 'create_time': '2024-12-12T12:12:12.123456Z', - 'update_time': '2024-12-12T12:12:12.123456Z', - 'session_state': { + 'createTime': '2024-12-12T12:12:12.123456Z', + 'updateTime': '2024-12-12T12:12:12.123456Z', + 'sessionState': { 'key': {'value': 'test_value'}, }, - 'user_id': 'user', + 'userId': 'user', } MOCK_SESSION_JSON_2 = { 'name': ( 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/2' ), - 'update_time': '2024-12-13T12:12:12.123456Z', - 'user_id': 'user', + 'updateTime': '2024-12-13T12:12:12.123456Z', + 'userId': 'user', } MOCK_SESSION_JSON_3 = { 'name': ( 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/3' ), - 'update_time': '2024-12-14T12:12:12.123456Z', - 'user_id': 'user2', + 'updateTime': '2024-12-14T12:12:12.123456Z', + 'userId': 'user2', } MOCK_EVENT_JSON = [ { @@ -65,7 +63,7 @@ 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/1/events/123' ), - 'invocation_id': '123', + 'invocationId': '123', 'author': 'user', 'timestamp': '2024-12-12T12:12:12.123456Z', 'content': { @@ -74,17 +72,17 @@ ], }, 'actions': { - 'state_delta': { + 'stateDelta': { 'key': {'value': 'test_value'}, }, - 'transfer_agent': 'agent', + 'transferAgent': 'agent', }, - 'event_metadata': { + 'eventMetadata': { 'partial': False, - 'turn_complete': True, + 'turnComplete': True, 'interrupted': False, 'branch': '', - 'long_running_tool_ids': ['tool1'], + 'longRunningToolIds': ['tool1'], }, }, ] @@ -94,7 +92,7 @@ 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/2/events/123' ), - 'invocation_id': '222', + 'invocationId': '222', 'author': 'user', 'timestamp': '2024-12-12T12:12:12.123456Z', }, @@ -105,9 +103,9 @@ 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/2/events/456' ), - 'invocation_id': '333', + 'invocationId': '333', 'author': 'user', - 'timestamp': '2024-12-12T12:12:13.123456Z', + 'timestamp': '2024-12-12T12:12:12.123456Z', }, ] MOCK_SESSION_JSON_PAGE1 = { @@ -115,33 +113,31 @@ 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/page1' ), - 'update_time': '2024-12-15T12:12:12.123456Z', - 'user_id': 'user_with_pages', + 'updateTime': '2024-12-15T12:12:12.123456Z', + 'userId': 'user_with_pages', } MOCK_SESSION_JSON_PAGE2 = { 'name': ( 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/page2' ), - 'update_time': '2024-12-16T12:12:12.123456Z', - 'user_id': 'user_with_pages', + 'updateTime': '2024-12-16T12:12:12.123456Z', + 'userId': 'user_with_pages', } MOCK_SESSION = Session( app_name='123', user_id='user', id='1', - state=MOCK_SESSION_JSON_1['session_state'], - last_update_time=isoparse(MOCK_SESSION_JSON_1['update_time']).timestamp(), + state=MOCK_SESSION_JSON_1['sessionState'], + last_update_time=isoparse(MOCK_SESSION_JSON_1['updateTime']).timestamp(), events=[ Event( id='123', invocation_id='123', author='user', timestamp=isoparse(MOCK_EVENT_JSON[0]['timestamp']).timestamp(), - content=genai_types.Content( - parts=[genai_types.Part(text='test_content')] - ), + content=types.Content(parts=[types.Part(text='test_content')]), actions=EventActions( transfer_to_agent='agent', state_delta={'key': {'value': 'test_value'}}, @@ -159,7 +155,7 @@ app_name='123', user_id='user', id='2', - last_update_time=isoparse(MOCK_SESSION_JSON_2['update_time']).timestamp(), + last_update_time=isoparse(MOCK_SESSION_JSON_2['updateTime']).timestamp(), events=[ Event( id='123', @@ -177,52 +173,12 @@ ) -class PydanticNamespace(types.SimpleNamespace): - - def model_dump(self, exclude_none=True, mode='python'): - d = {} - for k, v in self.__dict__.items(): - if exclude_none and v is None: - continue - if isinstance(v, PydanticNamespace): - d[k] = v.model_dump(exclude_none=exclude_none, mode=mode) - elif isinstance(v, list): - d[k] = [ - i.model_dump(exclude_none=exclude_none, mode=mode) - if isinstance(i, PydanticNamespace) - else i - for i in v - ] - else: - d[k] = v - return d - - -def _convert_to_object(data): - if isinstance(data, dict): - kwargs = {} - for key, value in data.items(): - if key in [ - 'timestamp', - 'update_time', - 'create_time', - ] and isinstance(value, str): - kwargs[key] = isoparse(value) - elif key in [ - 'session_state', - 'state_delta', - 'artifact_delta', - 'custom_metadata', - 'requested_auth_configs', - ]: - kwargs[key] = value - else: - kwargs[key] = _convert_to_object(value) - return PydanticNamespace(**kwargs) - elif isinstance(data, list): - return [_convert_to_object(item) for item in data] - else: - return data +SESSION_REGEX = r'^reasoningEngines/([^/]+)/sessions/([^/]+)$' +SESSIONS_REGEX = r'^reasoningEngines/([^/]+)/sessions\?.*$' +EVENTS_REGEX = ( + r'^reasoningEngines/([^/]+)/sessions/([^/]+)/events(?:\?pageToken=([^/]+))?' +) +LRO_REGEX = r'^operations/([^/]+)$' class MockApiClient: @@ -230,126 +186,112 @@ class MockApiClient: def __init__(self) -> None: """Initializes MockClient.""" - self.session_dict: dict[str, Any] = {} - self.event_dict: dict[str, Tuple[List[Any], Optional[str]]] = {} - self.agent_engines = mock.Mock() - self.agent_engines.sessions.get.side_effect = self._get_session - self.agent_engines.sessions.list.side_effect = self._list_sessions - self.agent_engines.sessions.delete.side_effect = self._delete_session - self.agent_engines.sessions.create.side_effect = self._create_session - self.agent_engines.sessions.events.list.side_effect = self._list_events - self.agent_engines.sessions.events.append.side_effect = self._append_event - - def _get_session(self, name: str): - session_id = name.split('/')[-1] - if session_id in self.session_dict: - return _convert_to_object(self.session_dict[session_id]) - raise api_core_exceptions.NotFound(f'Session not found: {session_id}') - - def _list_sessions(self, name: str, config: dict[str, Any]): - filter_val = config.get('filter', '') - user_id_match = re.search(r'user_id="([^"]+)"', filter_val) - if not user_id_match: - raise ValueError(f'Could not find user_id in filter: {filter_val}') - user_id = user_id_match.group(1) - - if user_id == 'user_with_pages': - return [ - _convert_to_object(MOCK_SESSION_JSON_PAGE1), - _convert_to_object(MOCK_SESSION_JSON_PAGE2), - ] - return [ - _convert_to_object(session) - for session in self.session_dict.values() - if session['user_id'] == user_id - ] - - def _delete_session(self, name: str): - session_id = name.split('/')[-1] - self.session_dict.pop(session_id) - - def _create_session(self, name: str, user_id: str, config: dict[str, Any]): - new_session_id = '4' - self.session_dict[new_session_id] = { - 'name': ( - 'projects/test-project/locations/test-location/' - 'reasoningEngines/123/sessions/' - + new_session_id - ), - 'user_id': user_id, - 'session_state': config.get('session_state', {}), - 'update_time': '2024-12-12T12:12:12.123456Z', - } - return _convert_to_object({ - 'name': ( - 'projects/test_project/locations/test_location/' - 'reasoningEngines/123/sessions/' - + new_session_id - + '/operations/111' - ), - 'done': True, - 'response': self.session_dict['4'], - }) - - def _list_events(self, name: str, **kwargs): - session_id = name.split('/')[-1] - events = [] - if session_id in self.event_dict: - events_tuple = self.event_dict[session_id] - events.extend(events_tuple[0]) - if events_tuple[1] == 'my_token': - events.extend(MOCK_EVENT_JSON_3) - - config = kwargs.get('config', {}) - filter_str = config.get('filter', None) - if filter_str: - match = re.search(r'timestamp>="([^"]+)"', filter_str) - if match: - after_timestamp_str = match.group(1) - after_timestamp = isoparse(after_timestamp_str) - events = [ - event - for event in events - if isoparse(event['timestamp']) >= after_timestamp - ] - return [_convert_to_object(event) for event in events] - - def _append_event( - self, - name: str, - author: str, - invocation_id: str, - timestamp: Any, - config: dict[str, Any], + this.session_dict: dict[str, Any] = {} + this.event_dict: dict[str, Tuple[List[Any], Optional[str]]] = {} + + async def async_request( + self, http_method: str, path: str, request_dict: dict[str, Any] ): - session_id = name.split('/')[-1] - event_list, token = self.event_dict.get(session_id, ([], None)) - event_id = str(len(event_list) + 1000) # generate unique ID - - event_timestamp_str = timestamp.isoformat().replace('+00:00', 'Z') - event_json = { - 'name': f'{name}/events/{event_id}', - 'invocation_id': invocation_id, - 'author': author, - 'timestamp': event_timestamp_str, - } - event_json.update(config) - - if session_id in self.session_dict: - self.session_dict[session_id]['update_time'] = event_timestamp_str - - if session_id in self.event_dict: - self.event_dict[session_id][0].append(event_json) + """Mocks the API Client request method""" + if http_method == 'GET': + if re.match(SESSION_REGEX, path): + match = re.match(SESSION_REGEX, path) + if match: + session_id = match.group(2) + if session_id in self.session_dict: + return self.session_dict[session_id] + else: + raise ValueError(f'Session not found: {session_id}') + elif re.match(SESSIONS_REGEX, path): + parsed_url = parse.urlparse(path) + query_params = parse.parse_qs(parsed_url.query) + filter_val = query_params.get('filter', [''])[0] + user_id_match = re.search(r'user_id="([^"]+)"', filter_val) + if not user_id_match: + raise ValueError(f'Could not find user_id in filter: {filter_val}') + user_id = user_id_match.group(1) + + if user_id == 'user_with_pages': + page_token = query_params.get('pageToken', [None])[0] + if page_token == 'my_token': + return {'sessions': [MOCK_SESSION_JSON_PAGE2]} + else: + return { + 'sessions': [MOCK_SESSION_JSON_PAGE1], + 'nextPageToken': 'my_token', + } + return { + 'sessions': [ + session + for session in self.session_dict.values() + if session['userId'] == user_id + ], + } + elif re.match(EVENTS_REGEX, path): + match = re.match(EVENTS_REGEX, path) + if match: + session_id = match.group(2) + if match.group(3): + page_token = match.group(3) + if page_token == 'my_token': + response = {'sessionEvents': MOCK_EVENT_JSON_3} + response['nextPageToken'] = 'my_token2' + return response + else: + return {} + events_tuple = self.event_dict.get(session_id, ([], None)) + response = {'sessionEvents': events_tuple[0]} + if events_tuple[1]: + response['nextPageToken'] = events_tuple[1] + return response + elif re.match(LRO_REGEX, path): + # Mock long-running operation as completed + return { + 'name': path, + 'done': True, + 'response': self.session_dict['4'], # Return the created session + } + else: + raise ValueError(f'Unsupported path: {path}') + elif http_method == 'POST': + new_session_id = '4' + self.session_dict[new_session_id] = { + 'name': ( + 'projects/test-project/locations/test-location/' + 'reasoningEngines/123/sessions/' + + new_session_id + ), + 'userId': request_dict['user_id'], + 'sessionState': request_dict.get('session_state', {}), + 'updateTime': '2024-12-12T12:12:12.123456Z', + } + return { + 'name': ( + 'projects/test_project/locations/test_location/' + 'reasoningEngines/123/sessions/' + + new_session_id + + '/operations/111' + ), + 'done': False, + } + elif http_method == 'DELETE': + match = re.match(SESSION_REGEX, path) + if match: + self.session_dict.pop(match.group(2)) else: - self.event_dict[session_id] = ([event_json], None) + raise ValueError(f'Unsupported http method: {http_method}') def mock_vertex_ai_session_service(agent_engine_id: Optional[str] = None): """Creates a mock Vertex AI Session service for testing.""" + if agent_engine_id: + return VertexAiSessionService( + project='test-project', + location='test-location', + agent_engine_id=agent_engine_id, + ) return VertexAiSessionService( - project='test-project', - location='test-location', - agent_engine_id=agent_engine_id, + project='test-project', location='test-location' ) @@ -364,8 +306,8 @@ def mock_get_api_client(): 'page2': MOCK_SESSION_JSON_PAGE2, } api_client.event_dict = { - '1': (copy.deepcopy(MOCK_EVENT_JSON), None), - '2': (copy.deepcopy(MOCK_EVENT_JSON_2), 'my_token'), + '1': (MOCK_EVENT_JSON, None), + '2': (MOCK_EVENT_JSON_2, 'my_token'), } with mock.patch( 'google.adk.sessions.vertex_ai_session_service.VertexAiSessionService._get_api_client', @@ -378,24 +320,30 @@ def mock_get_api_client(): @pytest.mark.usefixtures('mock_get_api_client') @pytest.mark.parametrize('agent_engine_id', [None, '123']) async def test_get_empty_session(agent_engine_id): - session_service = mock_vertex_ai_session_service(agent_engine_id) - with pytest.raises(api_core_exceptions.NotFound) as excinfo: + if agent_engine_id: + session_service = mock_vertex_ai_session_service(agent_engine_id) + else: + session_service = mock_vertex_ai_session_service() + with pytest.raises(ValueError) as excinfo: await session_service.get_session( app_name='123', user_id='user', session_id='0' ) - assert str(excinfo.value) == '404 Session not found: 0' + assert str(excinfo.value) == 'Session not found: 0' @pytest.mark.asyncio @pytest.mark.usefixtures('mock_get_api_client') @pytest.mark.parametrize('agent_engine_id', [None, '123']) async def test_get_another_user_session(agent_engine_id): - session_service = mock_vertex_ai_session_service(agent_engine_id) + if agent_engine_id: + session_service = mock_vertex_ai_session_service(agent_engine_id) + else: + session_service = mock_vertex_ai_session_service() with pytest.raises(ValueError) as excinfo: await session_service.get_session( app_name='123', user_id='user2', session_id='1' ) - assert str(excinfo.value) == 'Session 1 does not belong to user user2.' + assert str(excinfo.value) == 'Session not found: 1' @pytest.mark.asyncio @@ -413,11 +361,11 @@ async def test_get_and_delete_session(): await session_service.delete_session( app_name='123', user_id='user', session_id='1' ) - with pytest.raises(api_core_exceptions.NotFound) as excinfo: + with pytest.raises(ValueError) as excinfo: await session_service.get_session( app_name='123', user_id='user', session_id='1' ) - assert str(excinfo.value) == '404 Session not found: 1' + assert str(excinfo.value) == 'Session not found: 1' @pytest.mark.asyncio @@ -433,23 +381,6 @@ async def test_get_session_with_page_token(): ) -@pytest.mark.asyncio -@pytest.mark.usefixtures('mock_get_api_client') -async def test_get_session_with_after_timestamp_filter(): - session_service = mock_vertex_ai_session_service() - session = await session_service.get_session( - app_name='123', - user_id='user', - session_id='2', - config=GetSessionConfig( - after_timestamp=isoparse('2024-12-12T12:12:13.0Z').timestamp() - ), - ) - assert session is not None - assert len(session.events) == 1 - assert session.events[0].id == '456' - - @pytest.mark.asyncio @pytest.mark.usefixtures('mock_get_api_client') async def test_list_sessions(): @@ -504,38 +435,3 @@ async def test_create_session_with_custom_session_id(): assert str(excinfo.value) == ( 'User-provided Session id is not supported for VertexAISessionService.' ) - - -@pytest.mark.asyncio -@pytest.mark.usefixtures('mock_get_api_client') -async def test_append_event(): - session_service = mock_vertex_ai_session_service() - session_before_append = await session_service.get_session( - app_name='123', user_id='user', session_id='1' - ) - event_to_append = Event( - invocation_id='new_invocation', - author='model', - timestamp=1734005533.0, - content=genai_types.Content(parts=[genai_types.Part(text='new_content')]), - actions=EventActions( - transfer_to_agent='another_agent', - state_delta={'new_key': 'new_value'}, - skip_summarization=True, - ), - error_code='1', - error_message='test_error', - branch='test_branch', - custom_metadata={'custom': 'data'}, - long_running_tool_ids={'tool2'}, - ) - - await session_service.append_event(session_before_append, event_to_append) - - retrieved_session = await session_service.get_session( - app_name='123', user_id='user', session_id='1' - ) - - assert len(retrieved_session.events) == 2 - event_to_append.id = retrieved_session.events[1].id - assert retrieved_session.events[1] == event_to_append From c6dd444fc947571d089b784fde3a81e17b10cf28 Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Sat, 4 Oct 2025 08:52:38 -0700 Subject: [PATCH 023/303] fix: Adapt to new computer use tool name in genai sdk 1.41.0 1.40.0 has some bug that caused some UT tests failures PiperOrigin-RevId: 815098429 --- pyproject.toml | 2 +- src/google/adk/tools/computer_use/computer_use_toolset.py | 4 +--- tests/unittests/models/test_google_llm.py | 4 ++-- .../unittests/tools/computer_use/test_computer_use_toolset.py | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 4559ff456c..8dc92258a0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ dependencies = [ "google-cloud-spanner>=3.56.0, <4.0.0", # For Spanner database "google-cloud-speech>=2.30.0, <3.0.0", # For Audio Transcription "google-cloud-storage>=2.18.0, <3.0.0", # For GCS Artifact service - "google-genai>=1.21.1, <=1.40.0, !=1.37.0, !=1.38.0, !=1.39.0", # Google GenAI SDK + "google-genai>=1.41.0, <2.0.0", # Google GenAI SDK "graphviz>=0.20.2, <1.0.0", # Graphviz for graph rendering "mcp>=1.8.0, <2.0.0;python_version>='3.10'", # For MCP Toolset "opentelemetry-api>=1.37.0, <=1.37.0", # OpenTelemetry - limit upper version for sdk and api to not risk breaking changes from unstable _logs package. diff --git a/src/google/adk/tools/computer_use/computer_use_toolset.py b/src/google/adk/tools/computer_use/computer_use_toolset.py index 8834b5a453..d5c69f732d 100644 --- a/src/google/adk/tools/computer_use/computer_use_toolset.py +++ b/src/google/adk/tools/computer_use/computer_use_toolset.py @@ -206,9 +206,7 @@ async def process_llm_request( types.Environment.ENVIRONMENT_BROWSER, ) llm_request.config.tools.append( - types.Tool( - computer_use=types.ToolComputerUse(environment=environment) - ) + types.Tool(computer_use=types.ComputerUse(environment=environment)) ) logger.debug( "Added computer use tool with environment: %s", diff --git a/tests/unittests/models/test_google_llm.py b/tests/unittests/models/test_google_llm.py index 985d7e91cf..cd03f1ddf7 100644 --- a/tests/unittests/models/test_google_llm.py +++ b/tests/unittests/models/test_google_llm.py @@ -128,7 +128,7 @@ def llm_request_with_computer_use(): system_instruction="You are a helpful assistant", tools=[ types.Tool( - computer_use=types.ToolComputerUse( + computer_use=types.ComputerUse( environment=types.Environment.ENVIRONMENT_BROWSER ) ) @@ -1488,7 +1488,7 @@ async def test_computer_use_removes_system_instruction(): system_instruction="You are a helpful assistant", tools=[ types.Tool( - computer_use=types.ToolComputerUse( + computer_use=types.ComputerUse( environment=types.Environment.ENVIRONMENT_BROWSER ) ) diff --git a/tests/unittests/tools/computer_use/test_computer_use_toolset.py b/tests/unittests/tools/computer_use/test_computer_use_toolset.py index 803dddd066..6367b46ce4 100644 --- a/tests/unittests/tools/computer_use/test_computer_use_toolset.py +++ b/tests/unittests/tools/computer_use/test_computer_use_toolset.py @@ -370,7 +370,7 @@ async def test_process_llm_request_with_existing_computer_use( config=types.GenerateContentConfig( tools=[ types.Tool( - computer_use=types.ToolComputerUse( + computer_use=types.ComputerUse( environment=types.Environment.ENVIRONMENT_BROWSER ) ) From 84c1faeeef635ec658b6106e6151906c7ea146f2 Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Sun, 5 Oct 2025 21:20:33 -0700 Subject: [PATCH 024/303] chore: Introduce the remote A2A ADK Knowledge Agent to Agent Builder Assistant PiperOrigin-RevId: 815543707 --- .../agent_builder_assistant.py | 8 ++++- .../instruction_embedded.template | 11 ++++++- .../sub_agents/__init__.py | 7 +++- .../sub_agents/adk_knowledge_agent.py | 33 +++++++++++++++++++ 4 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 contributing/samples/adk_agent_builder_assistant/sub_agents/adk_knowledge_agent.py diff --git a/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py b/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py index a1b38fbb2b..4bb6d592e1 100644 --- a/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py +++ b/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py @@ -26,6 +26,7 @@ from google.adk.tools import FunctionTool from google.genai import types +from .sub_agents.adk_knowledge_agent import create_adk_knowledge_agent from .sub_agents.google_search_agent import create_google_search_agent from .sub_agents.url_context_agent import create_url_context_agent from .tools.cleanup_unused_files import cleanup_unused_files @@ -71,9 +72,14 @@ def create_agent( # - Maintains compatibility with existing ADK tool ecosystem # Built-in ADK tools wrapped as sub-agents + adk_knowledge_agent = create_adk_knowledge_agent() google_search_agent = create_google_search_agent() url_context_agent = create_url_context_agent() - agent_tools = [AgentTool(google_search_agent), AgentTool(url_context_agent)] + agent_tools = [ + AgentTool(adk_knowledge_agent), + AgentTool(google_search_agent), + AgentTool(url_context_agent), + ] # CUSTOM FUNCTION TOOLS: Agent Builder specific capabilities # diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index f4836a2ac2..4cb61d8e80 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -194,6 +194,9 @@ Always reference this schema when creating configurations to ensure compliance. ### ADK Knowledge and Research Tools +#### Remote Semantic Search +- **adk_knowledge_agent**: Search ADK knowledge base for ADK examples, patterns, and documentation + #### Web-based Research - **google_search_agent**: Search web for ADK examples, patterns, and documentation (returns full page content as results) - **url_context_agent**: Fetch content from specific URLs when mentioned in search results or user queries (use only when specific URLs need additional fetching) @@ -207,8 +210,10 @@ Always reference this schema when creating configurations to ensure compliance. * Follow up with **read_files** to get complete file contents **Research Workflow for ADK Questions:** +Mainly rely on **adk_knowledge_agent** for ADK questions. Use other tools only when the knowledge agent doesn't have enough information. + 1. **search_adk_source** - Find specific code patterns with regex -2. **read_files** - Read complete source files for detailed analysis +2. **read_files** - Read complete source files for detailed analysis 3. **google_search_agent** - Find external examples and documentation 4. **url_context_agent** - Fetch specific GitHub files or documentation pages @@ -224,6 +229,10 @@ Always reference this schema when creating configurations to ensure compliance. **Research Tool Usage Patterns:** +**Default Research Tool:** +Use **adk_knowledge_agent** as the primary research tool for ADK questions. +Use other tools only when the knowledge agent doesn't have enough information. + **For ADK Code Questions (NEW - Preferred Method):** 1. **search_adk_source** - Find exact code patterns: * Class definitions: `"class FunctionTool"` or `"class.*Agent"` diff --git a/contributing/samples/adk_agent_builder_assistant/sub_agents/__init__.py b/contributing/samples/adk_agent_builder_assistant/sub_agents/__init__.py index af422f9654..e034001357 100644 --- a/contributing/samples/adk_agent_builder_assistant/sub_agents/__init__.py +++ b/contributing/samples/adk_agent_builder_assistant/sub_agents/__init__.py @@ -14,7 +14,12 @@ """Sub-agents for Agent Builder Assistant.""" +from .adk_knowledge_agent import create_adk_knowledge_agent from .google_search_agent import create_google_search_agent from .url_context_agent import create_url_context_agent -__all__ = ['create_google_search_agent', 'create_url_context_agent'] +__all__ = [ + 'create_adk_knowledge_agent', + 'create_google_search_agent', + 'create_url_context_agent', +] diff --git a/contributing/samples/adk_agent_builder_assistant/sub_agents/adk_knowledge_agent.py b/contributing/samples/adk_agent_builder_assistant/sub_agents/adk_knowledge_agent.py new file mode 100644 index 0000000000..c95ff018d3 --- /dev/null +++ b/contributing/samples/adk_agent_builder_assistant/sub_agents/adk_knowledge_agent.py @@ -0,0 +1,33 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Sub-agent for ADK Knowledge.""" + +from google.adk.agents.llm_agent import Agent +from google.adk.agents.remote_a2a_agent import AGENT_CARD_WELL_KNOWN_PATH +from google.adk.agents.remote_a2a_agent import RemoteA2aAgent + + +def create_adk_knowledge_agent() -> Agent: + """Create a sub-agent that only uses google_search tool.""" + return RemoteA2aAgent( + name="adk_knowledge_agent", + description=( + "Agent for performing Vertex AI Search to find ADK knowledge and" + " documentation" + ), + agent_card=( + f"https://adk-agent-builder-knowledge-service-654646711756.us-central1.run.app/a2a/adk_knowledge_agent{AGENT_CARD_WELL_KNOWN_PATH}" + ), + ) From 4b47a0a5522d5df54c40f0e173f25d2724d98f68 Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Sun, 5 Oct 2025 21:47:18 -0700 Subject: [PATCH 025/303] chore: Add instructions for callback signatures PiperOrigin-RevId: 815549924 --- .../instruction_embedded.template | 82 +++++++++++++++++-- 1 file changed, 76 insertions(+), 6 deletions(-) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index 4cb61d8e80..fa349a76c4 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -42,7 +42,7 @@ Always reference this schema when creating configurations to ensure compliance. - Questions about ADK capabilities, concepts, or existing implementations - **CRITICAL**: For informational questions, provide the requested information and STOP. Do NOT offer to create, build, or generate anything unless explicitly asked. * **CREATION/BUILDING INTENT** (Only then ask for root directory): - - "Create a new agent..." / "Build me an agent..." + - "Create a new agent..." / "Build me an agent..." - "Generate an agent..." / "Implement an agent..." - "Update my agent..." / "Modify my agent..." / "Change my agent..." - "I want to create..." / "Help me build..." / "Help me update..." @@ -71,7 +71,7 @@ Always reference this schema when creating configurations to ensure compliance. - Explore existing project structure using the RESOLVED ABSOLUTE PATH - Identify integration needs (APIs, databases, external services) -### 2. Design Phase +### 2. Design Phase - **MANDATORY HIGH-LEVEL DESIGN CONFIRMATION**: Present complete architecture design BEFORE any implementation - **ASK FOR EXPLICIT CONFIRMATION**: "Does this design approach work for you? Should I proceed with implementation?" - **INCLUDE IN DESIGN PRESENTATION**: @@ -275,6 +275,76 @@ Use other tools only when the knowledge agent doesn't have enough information. 7. **Keep TODO for complex**: For complex business logic, leave TODO comments 8. **Follow current ADK patterns**: Always search for and reference the latest examples from contributing/samples +### 🚨 CRITICAL: Callback Correct Signatures +ADK supports different callback types with DIFFERENT signatures. Use FUNCTION-based callbacks (never classes): + +## 1. Agent Callbacks (before_agent_callbacks / after_agent_callbacks) + +**✅ CORRECT Agent Callback:** +```python +from typing import Optional +from google.genai import types +from google.adk.agents.callback_context import CallbackContext + +def content_filter_callback(context: CallbackContext) -> Optional[types.Content]: + """After agent callback to filter sensitive content.""" + # Access the response content through context + if hasattr(context, 'response') and context.response: + response_text = str(context.response) + if "confidential" in response_text.lower(): + filtered_text = response_text.replace("confidential", "[FILTERED]") + return types.Content(parts=[types.Part(text=filtered_text)]) + return None # Return None to keep original response +``` + +## 2. Model Callbacks (before_model_callbacks / after_model_callbacks) + +**✅ CORRECT Model Callback:** +```python +from typing import Optional +from google.adk.models.llm_request import LlmRequest +from google.adk.models.llm_response import LlmResponse +from google.adk.agents.callback_context import CallbackContext + +def log_model_request(context: CallbackContext, request: LlmRequest) -> Optional[LlmResponse]: + """Before model callback to log requests.""" + print(f"Model request: {{request.contents}}") + return None # Return None to proceed with original request + +def modify_model_response(context: CallbackContext, response: LlmResponse) -> Optional[LlmResponse]: + """After model callback to modify response.""" + # Modify response if needed + return response # Return modified response or None for original +``` + +## 3. Tool Callbacks (before_tool_callbacks / after_tool_callbacks) + +**✅ CORRECT Tool Callback:** +```python +from typing import Any, Dict, Optional +from google.adk.tools.base_tool import BaseTool +from google.adk.tools.tool_context import ToolContext + +def validate_tool_input(tool: BaseTool, args: Dict[str, Any], context: ToolContext) -> Optional[Dict]: + """Before tool callback to validate input.""" + # Validate or modify tool arguments + if "unsafe_param" in args: + del args["unsafe_param"] + return args # Return modified args or None for original + +def log_tool_result(tool: BaseTool, args: Dict[str, Any], context: ToolContext, result: Dict) -> Optional[Dict]: + """After tool callback to log results.""" + print(f"Tool {{tool.name}} executed with result: {{result}}") + return None # Return None to keep original result +``` + +## Callback Signature Summary: +- **Agent Callbacks**: `(CallbackContext) -> Optional[types.Content]` +- **Before Model**: `(CallbackContext, LlmRequest) -> Optional[LlmResponse]` +- **After Model**: `(CallbackContext, LlmResponse) -> Optional[LlmResponse]` +- **Before Tool**: `(BaseTool, Dict[str, Any], ToolContext) -> Optional[Dict]` +- **After Tool**: `(BaseTool, Dict[str, Any], ToolContext, Dict) -> Optional[Dict]` + ## Important ADK Requirements **File Naming & Structure:** @@ -314,8 +384,8 @@ Use other tools only when the knowledge agent doesn't have enough information. ### Examples: - **User input**: `./config_agents/roll_and_check` -- **WRONG approach**: Create files at `/config_agents/roll_and_check` -- **CORRECT approach**: +- **WRONG approach**: Create files at `/config_agents/roll_and_check` +- **CORRECT approach**: 1. Call `resolve_root_directory("./config_agents/roll_and_check")` 2. Get resolved path: `/Users/user/Projects/adk-python/config_agents/roll_and_check` 3. Use the resolved absolute path for all operations @@ -343,7 +413,7 @@ Use other tools only when the knowledge agent doesn't have enough information. **Your primary role is to be a collaborative architecture consultant that follows an efficient, user-centric workflow:** 1. **Always ask for root folder first** - Know where to create the project -2. **Design with specific paths** - Include exact file locations in proposals +2. **Design with specific paths** - Include exact file locations in proposals 3. **Provide high-level architecture overview** - When confirming design, always include: * Overall system architecture and component relationships * Agent types and their responsibilities @@ -364,4 +434,4 @@ Use other tools only when the knowledge agent doesn't have enough information. **Incorrect Commands to Avoid:** - `adk run [root_directory]/root_agent.yaml` - Do NOT specify the YAML file directly - `adk web` without parent directory - Must specify the parent folder containing the agent projects -- Always use the project directory for `adk run`, and parent directory for `adk web` \ No newline at end of file +- Always use the project directory for `adk run`, and parent directory for `adk web` From bd76b46ce296409d929ae69c5c43347c73e7b365 Mon Sep 17 00:00:00 2001 From: Max Ind Date: Mon, 6 Oct 2025 05:13:02 -0700 Subject: [PATCH 026/303] feat(otel): Switch CloudTraceSpanExporter to telemetry.googleapis.com PiperOrigin-RevId: 815675872 --- pyproject.toml | 2 +- src/google/adk/cli/adk_web_server.py | 22 ++++--- src/google/adk/telemetry/google_cloud.py | 63 ++++++++++++++----- src/google/adk/telemetry/setup.py | 6 +- .../unittests/telemetry/test_google_cloud.py | 34 ++++++++++ 5 files changed, 98 insertions(+), 29 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 8dc92258a0..147563096e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,8 +52,8 @@ dependencies = [ "python-dateutil>=2.9.0.post0, <3.0.0", # For Vertext AI Session Service "python-dotenv>=1.0.0, <2.0.0", # To manage environment variables "requests>=2.32.4, <3.0.0", - "sqlalchemy>=2.0, <3.0.0", # SQL database ORM "sqlalchemy-spanner>=1.14.0", # Spanner database session service + "sqlalchemy>=2.0, <3.0.0", # SQL database ORM "starlette>=0.46.2, <1.0.0", # For FastAPI CLI "tenacity>=8.0.0, <9.0.0", # For Retry management "typing-extensions>=4.5, <5", diff --git a/src/google/adk/cli/adk_web_server.py b/src/google/adk/cli/adk_web_server.py index 2a2dbc05d6..d503e76264 100644 --- a/src/google/adk/cli/adk_web_server.py +++ b/src/google/adk/cli/adk_web_server.py @@ -292,8 +292,9 @@ def _setup_telemetry( else: # Old logic - to be removed when above leaves experimental. tracer_provider = TracerProvider() - for exporter in internal_exporters: - tracer_provider.add_span_processor(exporter) + if internal_exporters is not None: + for exporter in internal_exporters: + tracer_provider.add_span_processor(exporter) trace.set_tracer_provider(tracer_provider=tracer_provider) @@ -312,10 +313,10 @@ def _otel_env_vars_enabled() -> bool: def _setup_gcp_telemetry_experimental( internal_exporters: list[SpanProcessor] = None, ): - from ..telemetry.setup import maybe_set_otel_providers + if typing.TYPE_CHECKING: + from ..telemetry.setup import OTelHooks - otel_hooks_to_add = [] - otel_resource = None + otel_hooks_to_add: list[OTelHooks] = [] if internal_exporters: from ..telemetry.setup import OTelHooks @@ -323,8 +324,13 @@ def _setup_gcp_telemetry_experimental( # Register ADK-specific exporters in trace provider. otel_hooks_to_add.append(OTelHooks(span_processors=internal_exporters)) + import google.auth + from ..telemetry.google_cloud import get_gcp_exporters from ..telemetry.google_cloud import get_gcp_resource + from ..telemetry.setup import maybe_set_otel_providers + + credentials, project_id = google.auth.default() otel_hooks_to_add.append( get_gcp_exporters( @@ -334,12 +340,14 @@ def _setup_gcp_telemetry_experimental( # TODO - reenable metrics once errors during shutdown are fixed. enable_cloud_metrics=False, enable_cloud_logging=True, + google_auth=(credentials, project_id), ) ) - otel_resource = get_gcp_resource() + otel_resource = get_gcp_resource(project_id) maybe_set_otel_providers( - otel_hooks_to_setup=otel_hooks_to_add, otel_resource=otel_resource + otel_hooks_to_setup=otel_hooks_to_add, + otel_resource=otel_resource, ) _setup_instrumentation_lib_if_installed() diff --git a/src/google/adk/telemetry/google_cloud.py b/src/google/adk/telemetry/google_cloud.py index ec78cf1625..64016d642a 100644 --- a/src/google/adk/telemetry/google_cloud.py +++ b/src/google/adk/telemetry/google_cloud.py @@ -15,6 +15,9 @@ from __future__ import annotations import logging +from typing import cast +from typing import Optional +from typing import TYPE_CHECKING import google.auth from opentelemetry.sdk._logs import LogRecordProcessor @@ -29,6 +32,9 @@ from ..utils.feature_decorator import experimental from .setup import OTelHooks +if TYPE_CHECKING: + from google.auth.credentials import Credentials + logger = logging.getLogger('google_adk.' + __name__) @@ -37,6 +43,7 @@ def get_gcp_exporters( enable_cloud_tracing: bool = False, enable_cloud_metrics: bool = False, enable_cloud_logging: bool = False, + google_auth: Optional[tuple[Credentials, str]] = None, ) -> OTelHooks: """Returns GCP OTel exporters to be used in the app. @@ -44,8 +51,16 @@ def get_gcp_exporters( enable_tracing: whether to enable tracing to Cloud Trace. enable_metrics: whether to enable raporting metrics to Cloud Monitoring. enable_logging: whether to enable sending logs to Cloud Logging. + google_auth: optional custom credentials and project_id. google.auth.default() used when this is omitted. """ - _, project_id = google.auth.default() + + credentials, project_id = ( + google_auth if google_auth is not None else google.auth.default() + ) + if TYPE_CHECKING: + credentials = cast(Credentials, credentials) + project_id = cast(str, project_id) + if not project_id: logger.warning( 'Cannot determine GCP Project. OTel GCP Exporters cannot be set up.' @@ -53,18 +68,18 @@ def get_gcp_exporters( ) return OTelHooks() - span_processors = [] + span_processors: list[SpanProcessor] = [] if enable_cloud_tracing: - exporter = _get_gcp_span_exporter(project_id) + exporter = _get_gcp_span_exporter(credentials) span_processors.append(exporter) - metric_readers = [] + metric_readers: list[MetricReader] = [] if enable_cloud_metrics: exporter = _get_gcp_metrics_exporter(project_id) if exporter: metric_readers.append(exporter) - log_record_processors = [] + log_record_processors: list[LogRecordProcessor] = [] if enable_cloud_logging: exporter = _get_gcp_logs_exporter(project_id) if exporter: @@ -77,10 +92,18 @@ def get_gcp_exporters( ) -def _get_gcp_span_exporter(project_id: str) -> SpanProcessor: - from opentelemetry.exporter.cloud_trace import CloudTraceSpanExporter +def _get_gcp_span_exporter(credentials: Credentials) -> SpanProcessor: + """Adds OTEL span exporter to telemetry.googleapis.com""" + + from google.auth.transport.requests import AuthorizedSession + from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter - return BatchSpanProcessor(CloudTraceSpanExporter(project_id=project_id)) + return BatchSpanProcessor( + OTLPSpanExporter( + session=AuthorizedSession(credentials=credentials), + endpoint='https://telemetry.googleapis.com/v1/traces', + ) + ) def _get_gcp_metrics_exporter(project_id: str) -> MetricReader: @@ -101,15 +124,22 @@ def _get_gcp_logs_exporter(project_id: str) -> LogRecordProcessor: ) -def get_gcp_resource() -> Resource: - # The OTELResourceDetector populates resource labels from - # environment variables like OTEL_SERVICE_NAME and OTEL_RESOURCE_ATTRIBUTES. - # Then the GCP detector adds attributes corresponding to a correct - # monitored resource if ADK runs on one of supported platforms - # (e.g. GCE, GKE, CloudRun). - - resource = OTELResourceDetector().detect() +def get_gcp_resource(project_id: Optional[str] = None) -> Resource: + """Returns OTEL with attributes specified in the following order (attributes specified later, overwrite those specified earlier): + 1. Populates gcp.project_id attribute from the project_id argument if present. + 2. OTELResourceDetector populates resource labels from environment variables like OTEL_SERVICE_NAME and OTEL_RESOURCE_ATTRIBUTES. + 3. GCP detector adds attributes corresponding to a correct monitored resource if ADK runs on one of supported platforms (e.g. GCE, GKE, CloudRun). + Args: + project_id: project id to fill out as `gcp.project_id` on the OTEL resource. + This may be overwritten by OTELResourceDetector, if `gcp.project_id` is present in `OTEL_RESOURCE_ATTRIBUTES` env var. + """ + resource = Resource( + attributes={'gcp.project_id': project_id} + if project_id is not None + else {} + ) + resource = resource.merge(OTELResourceDetector().detect()) try: from opentelemetry.resourcedetector.gcp_resource_detector import GoogleCloudResourceDetector @@ -121,5 +151,4 @@ def get_gcp_resource() -> Resource: 'Cloud not import opentelemetry.resourcedetector.gcp_resource_detector' ' GCE, GKE or CloudRun related resource attributes may be missing' ) - return resource diff --git a/src/google/adk/telemetry/setup.py b/src/google/adk/telemetry/setup.py index fd059ce0a6..eac5c96142 100644 --- a/src/google/adk/telemetry/setup.py +++ b/src/google/adk/telemetry/setup.py @@ -73,10 +73,8 @@ def maybe_set_otel_providers( otel_resource: OTel resource to use in providers. If empty - default OTel resource detection will be used. """ - if otel_hooks_to_setup is None: - otel_hooks_to_setup = [] - if otel_resource is None: - otel_resource = _get_otel_resource() + otel_hooks_to_setup = otel_hooks_to_setup or [] + otel_resource = otel_resource or _get_otel_resource() # Add generic OTel exporters based on OTel env variables. otel_hooks_to_setup.append(_get_otel_exporters()) diff --git a/tests/unittests/telemetry/test_google_cloud.py b/tests/unittests/telemetry/test_google_cloud.py index c861c07098..318be63041 100644 --- a/tests/unittests/telemetry/test_google_cloud.py +++ b/tests/unittests/telemetry/test_google_cloud.py @@ -12,9 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. +import os +from typing import Optional from unittest import mock from google.adk.telemetry.google_cloud import get_gcp_exporters +from google.adk.telemetry.google_cloud import get_gcp_resource import pytest @@ -55,3 +58,34 @@ def test_get_gcp_exporters( assert len(otel_hooks.log_record_processors) == ( 1 if enable_cloud_logging else 0 ) + + +@pytest.mark.parametrize("project_id_in_arg", ["project_id_in_arg", None]) +@pytest.mark.parametrize("project_id_on_env", ["project_id_on_env", None]) +def test_get_gcp_resource( + project_id_in_arg: Optional[str], + project_id_on_env: Optional[str], + monkeypatch: pytest.MonkeyPatch, +): + # Arrange. + if project_id_on_env is not None: + monkeypatch.setenv( + "OTEL_RESOURCE_ATTRIBUTES", f"gcp.project_id={project_id_on_env}" + ) + + # Act. + otel_resource = get_gcp_resource(project_id_in_arg) + + # Assert. + expected_project_id = ( + project_id_on_env + if project_id_on_env is not None + else project_id_in_arg + if project_id_in_arg is not None + else None + ) + assert otel_resource is not None + assert ( + otel_resource.attributes.get("gcp.project_id", None) + == expected_project_id + ) From 86de3ef7e39dc6efaf2a79e24e51cb178cbccf9f Mon Sep 17 00:00:00 2001 From: George Weale Date: Mon, 6 Oct 2025 09:26:35 -0700 Subject: [PATCH 027/303] chore: `google.genai` instead of `google.generativeai' PiperOrigin-RevId: 815759570 --- .../adk_agent_builder_assistant/instruction_embedded.template | 1 + 1 file changed, 1 insertion(+) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index fa349a76c4..813033323b 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -274,6 +274,7 @@ Use other tools only when the knowledge agent doesn't have enough information. 6. **Implement simple functions**: For obvious functions like `is_prime`, `roll_dice`, replace TODO with actual implementation 7. **Keep TODO for complex**: For complex business logic, leave TODO comments 8. **Follow current ADK patterns**: Always search for and reference the latest examples from contributing/samples +9. **Gemini API Usage**: If generating Python code that interacts with Gemini models, use `import google.genai as genai`, not `google.generativeai`. ### 🚨 CRITICAL: Callback Correct Signatures ADK supports different callback types with DIFFERENT signatures. Use FUNCTION-based callbacks (never classes): From ca6a4340f47ddd62a65ebed272eaa75c17c77dcf Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Mon, 6 Oct 2025 09:56:42 -0700 Subject: [PATCH 028/303] chore: Move adk knowledge agent out of adk agent builder folder PiperOrigin-RevId: 815771308 --- .../remote_agents => }/adk_knowledge_agent/README.md | 0 .../remote_agents => }/adk_knowledge_agent/__init__.py | 0 .../remote_agents => }/adk_knowledge_agent/agent.json | 0 .../remote_agents => }/adk_knowledge_agent/agent.py | 0 .../remote_agents => }/adk_knowledge_agent/requirements.txt | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename contributing/samples/{adk_agent_builder_assistant/remote_agents => }/adk_knowledge_agent/README.md (100%) rename contributing/samples/{adk_agent_builder_assistant/remote_agents => }/adk_knowledge_agent/__init__.py (100%) rename contributing/samples/{adk_agent_builder_assistant/remote_agents => }/adk_knowledge_agent/agent.json (100%) rename contributing/samples/{adk_agent_builder_assistant/remote_agents => }/adk_knowledge_agent/agent.py (100%) rename contributing/samples/{adk_agent_builder_assistant/remote_agents => }/adk_knowledge_agent/requirements.txt (100%) diff --git a/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/README.md b/contributing/samples/adk_knowledge_agent/README.md similarity index 100% rename from contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/README.md rename to contributing/samples/adk_knowledge_agent/README.md diff --git a/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/__init__.py b/contributing/samples/adk_knowledge_agent/__init__.py similarity index 100% rename from contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/__init__.py rename to contributing/samples/adk_knowledge_agent/__init__.py diff --git a/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/agent.json b/contributing/samples/adk_knowledge_agent/agent.json similarity index 100% rename from contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/agent.json rename to contributing/samples/adk_knowledge_agent/agent.json diff --git a/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/agent.py b/contributing/samples/adk_knowledge_agent/agent.py similarity index 100% rename from contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/agent.py rename to contributing/samples/adk_knowledge_agent/agent.py diff --git a/contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/requirements.txt b/contributing/samples/adk_knowledge_agent/requirements.txt similarity index 100% rename from contributing/samples/adk_agent_builder_assistant/remote_agents/adk_knowledge_agent/requirements.txt rename to contributing/samples/adk_knowledge_agent/requirements.txt From e0dd06ff04f9d3c2f022873ce145aaae2de02f45 Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Mon, 6 Oct 2025 10:28:12 -0700 Subject: [PATCH 029/303] feat: implementation of LLM context compaction Provide a more efficient way to compact LLM context for better agentic performance. PiperOrigin-RevId: 815785898 --- src/google/adk/apps/app.py | 24 +- src/google/adk/apps/base_events_compactor.py | 17 +- src/google/adk/apps/compaction.py | 190 +++++++++++++++ .../adk/apps/sliding_window_compactor.py | 144 ++++++++++++ src/google/adk/flows/llm_flows/contents.py | 98 ++++++-- src/google/adk/runners.py | 34 +++ tests/unittests/apps/test_compaction.py | 219 ++++++++++++++++++ .../apps/test_sliding_window_compactor.py | 162 +++++++++++++ tests/unittests/conftest.py | 31 ++- tests/unittests/tools/test_agent_tool.py | 22 +- 10 files changed, 905 insertions(+), 36 deletions(-) create mode 100644 src/google/adk/apps/compaction.py create mode 100644 src/google/adk/apps/sliding_window_compactor.py create mode 100644 tests/unittests/apps/test_compaction.py create mode 100644 tests/unittests/apps/test_sliding_window_compactor.py diff --git a/src/google/adk/apps/app.py b/src/google/adk/apps/app.py index d1596c8559..50faab6292 100644 --- a/src/google/adk/apps/app.py +++ b/src/google/adk/apps/app.py @@ -47,6 +47,26 @@ class ResumabilityConfig(BaseModel): """ +@experimental +class EventsCompactionConfig(BaseModel): + """The config of event compaction for an application.""" + + model_config = ConfigDict( + arbitrary_types_allowed=True, + extra="forbid", + ) + + compactor: BaseEventsCompactor + """The event compactor strategy for the application.""" + compaction_interval: int + """The number of *new* user-initiated invocations that, once + fully represented in the session's events, will trigger a compaction.""" + overlap_size: int + """The number of preceding invocations to include from the + end of the last compacted range. This creates an overlap between consecutive + compacted summaries, maintaining context.""" + + @experimental class App(BaseModel): """Represents an LLM-backed agentic application. @@ -73,8 +93,8 @@ class App(BaseModel): plugins: list[BasePlugin] = Field(default_factory=list) """The plugins in the application.""" - event_compactor: Optional[BaseEventsCompactor] = None - """The event compactor strategy for the application.""" + events_compaction_config: Optional[EventsCompactionConfig] = None + """The config of event compaction for the application.""" context_cache_config: Optional[ContextCacheConfig] = None """Context cache configuration that applies to all LLM agents in the app.""" diff --git a/src/google/adk/apps/base_events_compactor.py b/src/google/adk/apps/base_events_compactor.py index 97e6611f5e..dcb875c0b8 100644 --- a/src/google/adk/apps/base_events_compactor.py +++ b/src/google/adk/apps/base_events_compactor.py @@ -26,25 +26,22 @@ class BaseEventsCompactor(abc.ABC): """Base interface for compacting events.""" + @abc.abstractmethod async def maybe_compact_events( self, *, events: list[Event] - ) -> Optional[Content]: - """A list of uncompacted events, decide whether to compact. + ) -> Optional[Event]: + """Compact a list of events into a single event. - If no need to compact, return None. Otherwise, compact into a content and + If compaction failed, return None. Otherwise, compact into a content and return it. - This method will summarize the events and return a new summray event - indicating the range of events it summarized. - - When sending events to the LLM, if a summary event is present, the events it - replaces (those identified in itssummary_range) should not be included. + This method will summarize the events and return a new summray event + indicating the range of events it summarized. Args: events: Events to compact. - agent_name: The name of the agent. Returns: - The new compacted content, or None if no compaction is needed. + The new compacted event, or None if no compaction happended. """ raise NotImplementedError() diff --git a/src/google/adk/apps/compaction.py b/src/google/adk/apps/compaction.py new file mode 100644 index 0000000000..83ddecfb72 --- /dev/null +++ b/src/google/adk/apps/compaction.py @@ -0,0 +1,190 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +import logging + +from google.adk.apps.app import App +from google.adk.sessions.base_session_service import BaseSessionService +from google.adk.sessions.session import Session + +logger = logging.getLogger('google_adk.' + __name__) + + +async def _run_compaction_for_sliding_window( + app: App, session: Session, session_service: BaseSessionService +): + """Runs compaction for SlidingWindowCompactor. + + This method implements the sliding window compaction logic. It determines + if enough new invocations have occurred since the last compaction based on + `compaction_invocation_threshold`. If so, it selects a range of events to + compact based on `overlap_size`, and calls `maybe_compact_events` on the + compactor. + + The compaction process is controlled by two parameters: + 1. `compaction_invocation_threshold`: The number of *new* user-initiated + invocations that, once fully + represented in the session's events, will trigger a compaction. + 2. `overlap_size`: The number of preceding invocations to include from the + end of the last + compacted range. This creates an overlap between consecutive compacted + summaries, + maintaining context. + + The compactor is called after an agent has finished processing a turn and all + its events + have been added to the session. It checks if a new compaction is needed. + + When a compaction is triggered: + - The compactor identifies the range of `invocation_id`s to be summarized. + - This range starts `overlap_size` invocations before the beginning of the + new block of `compaction_invocation_threshold` invocations and ends + with the last + invocation + in the current block. + - A `CompactedEvent` is created, summarizing all events within this + determined + `invocation_id` range. This `CompactedEvent` is then appended to the + session. + + Here is an example with `compaction_invocation_threshold = 2` and + `overlap_size = 1`: + Let's assume events are added for `invocation_id`s 1, 2, 3, and 4 in order. + + 1. **After `invocation_id` 2 events are added:** + - The session now contains events for invocations 1 and 2. This + fulfills the `compaction_invocation_threshold = 2` criteria. + - Since this is the first compaction, the range starts from the + beginning. + - A `CompactedEvent` is generated, summarizing events within + `invocation_id` range [1, 2]. + - The session now contains: `[E(inv=1, role=user), E(inv=1, role=model), + E(inv=2, role=user), E(inv=2, role=model), E(inv=2, role=user), + CompactedEvent(inv=[1, 2])]`. + + 2. **After `invocation_id` 3 events are added:** + - No compaction happens yet, because only 1 new invocation (`inv=3`) + has been completed since the last compaction, and + `compaction_invocation_threshold` is 2. + + 3. **After `invocation_id` 4 events are added:** + - The session now contains new events for invocations 3 and 4, again + fulfilling `compaction_invocation_threshold = 2`. + - The last `CompactedEvent` covered up to `invocation_id` 2. With + `overlap_size = 1`, the new compaction range + will start one invocation before the new block (inv 3), which is + `invocation_id` 2. + - The new compaction range is from `invocation_id` 2 to 4. + - A new `CompactedEvent` is generated, summarizing events within + `invocation_id` range [2, 4]. + - The session now contains: `[E(inv=1, role=user), E(inv=1, role=model), + E(inv=2, role=user), E(inv=2, role=model), E(inv=2, role=user), + CompactedEvent(inv=[1, 2]), E(inv=3, role=user), E(inv=3, role=model), + E(inv=4, role=user), E(inv=4, role=model), CompactedEvent(inv=[2, 4])]`. + + + Args: + app: The application instance. + session: The session containing events to compact. + session_service: The session service for appending events. + """ + events = session.events + if not events: + return None + # Find the last compaction event and its range. + last_compacted_end_timestamp = 0.0 + for event in reversed(events): + if ( + event.actions + and event.actions.compaction + and event.actions.compaction.end_timestamp + ): + last_compacted_end_timestamp = event.actions.compaction.end_timestamp + break + + # Get unique invocation IDs and their latest timestamps. + invocation_latest_timestamps = {} + for event in events: + # Only consider non-compaction events for unique invocation IDs. + if event.invocation_id and not (event.actions and event.actions.compaction): + invocation_latest_timestamps[event.invocation_id] = max( + invocation_latest_timestamps.get(event.invocation_id, 0.0), + event.timestamp, + ) + + unique_invocation_ids = list(invocation_latest_timestamps.keys()) + + # Determine which invocations are new since the last compaction. + new_invocation_ids = [ + inv_id + for inv_id in unique_invocation_ids + if invocation_latest_timestamps[inv_id] > last_compacted_end_timestamp + ] + + if len(new_invocation_ids) < app.events_compaction_config.compaction_interval: + return None # Not enough new invocations to trigger compaction. + + # Determine the range of invocations to compact. + # The end of the compaction range is the last of the new invocations. + end_inv_id = new_invocation_ids[-1] + + # The start of the compaction range is overlap_size invocations before + # the first of the new invocations. + first_new_inv_id = new_invocation_ids[0] + first_new_inv_idx = unique_invocation_ids.index(first_new_inv_id) + + start_idx = max( + 0, first_new_inv_idx - app.events_compaction_config.overlap_size + ) + start_inv_id = unique_invocation_ids[start_idx] + + # Find the index of the last event with end_inv_id. + last_event_idx = -1 + for i in range(len(events) - 1, -1, -1): + if events[i].invocation_id == end_inv_id: + last_event_idx = i + break + + events_to_compact = [] + # Trim events_to_compact to include all events up to and including the + # last event of end_inv_id. + if last_event_idx != -1: + # Find the index of the first event of start_inv_id in events. + first_event_start_inv_idx = -1 + for i, event in enumerate(events): + if event.invocation_id == start_inv_id: + first_event_start_inv_idx = i + break + if first_event_start_inv_idx != -1: + events_to_compact = events[first_event_start_inv_idx : last_event_idx + 1] + # Filter out any existing compaction events from the list. + events_to_compact = [ + e + for e in events_to_compact + if not (e.actions and e.actions.compaction) + ] + + if not events_to_compact: + return None + + compaction_event = ( + await app.events_compaction_config.compactor.maybe_compact_events( + events=events_to_compact + ) + ) + if compaction_event: + await session_service.append_event(session=session, event=compaction_event) + logger.debug('Event compactor finished.') diff --git a/src/google/adk/apps/sliding_window_compactor.py b/src/google/adk/apps/sliding_window_compactor.py new file mode 100644 index 0000000000..2385d9c156 --- /dev/null +++ b/src/google/adk/apps/sliding_window_compactor.py @@ -0,0 +1,144 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from __future__ import annotations + +from typing import Optional + +from google.genai import types +from google.genai.types import Content +from google.genai.types import Part + +from ..events.event import Event +from ..events.event_actions import EventActions +from ..events.event_actions import EventCompaction +from ..models.base_llm import BaseLlm +from ..models.llm_request import LlmRequest +from .base_events_compactor import BaseEventsCompactor + + +class SlidingWindowCompactor(BaseEventsCompactor): + """A summarizer for Sliding Window Compaction logic in Runner. + + This compactor works with ADK runner to provide sliding window compaction. + The runner uses `compaction_invocation_threshold` and `overlap_size` + configured in `EventsCompactionConfig` on the `App` to determine when to + trigger compaction and which events to compact. This class performs + summarization of events passed by the runner. + + The compaction process is controlled by two parameters read by the Runner from + `EventsCompactionConfig`: + 1. `compaction_invocation_threshold`: The number of *new* user-initiated + invocations that, once fully + represented in the session's events, will trigger a compaction. + 2. `overlap_size`: The number of preceding invocations to include from the + end of the last + compacted range. This creates an overlap between consecutive compacted + summaries, + maintaining context. + + When `Runner` determines compaction is needed based on + `compaction_invocation_threshold`, + it selects a range of events based on `overlap_size` and passes them to + `maybe_compact_events` for summarization into a `CompactedEvent`. + This `CompactedEvent` is then appended to the session by the `Runner`. + """ + + _DEFAULT_PROMPT_TEMPLATE = ( + 'The following is a conversation history between a user and an AI' + ' agent. Please summarize the conversation, focusing on key' + ' information and decisions made, as well as any unresolved' + ' questions or tasks. The summary should be concise and capture the' + ' essence of the interaction. Each event is prefixed with the' + ' author.\\n\\n{conversation_history}' + ) + + def __init__( + self, + llm: BaseLlm, + prompt_template: Optional[str] = None, + ): + """Initializes the SlidingWindowCompactor. + + Args: + llm: The LLM used for summarization. + prompt_template: An optional template string for the summarization + prompt. If not provided, a default template will be used. The template + should contain a '{conversation_history}' placeholder. + """ + self._llm = llm + self._prompt_template = prompt_template or self._DEFAULT_PROMPT_TEMPLATE + + def _format_events_for_prompt(self, events: list[Event]) -> str: + """Formats a list of events into a string for the LLM prompt.""" + formatted_history = [] + for event in events: + if event.content and event.content.parts: + for part in event.content.parts: + if part.text: + formatted_history.append(f'{event.author}: {part.text}') + return '\\n'.join(formatted_history) + + async def maybe_compact_events( + self, *, events: list[Event] + ) -> Optional[Event]: + """Compacts given events and returns the compacted content. + + Args: + events: A list of events to compact. + + Returns: + The new compacted event, or None if no compaction is needed. + """ + if not events: + return None + + conversation_history = self._format_events_for_prompt(events) + prompt = self._prompt_template.format( + conversation_history=conversation_history + ) + + llm_request = LlmRequest( + model=self._llm.model, + contents=[Content(role='user', parts=[Part(text=prompt)])], + ) + summary_content = None + async for llm_response in self._llm.generate_content_async( + llm_request, stream=False + ): + if llm_response.content: + summary_content = llm_response.content + break + + if summary_content is None: + return None + + # Ensure the compacted content has the role 'user' + summary_content.role = 'user' + + start_timestamp = events[0].timestamp + end_timestamp = events[-1].timestamp + + compaction = EventCompaction( + start_timestamp=start_timestamp, + end_timestamp=end_timestamp, + compacted_content=summary_content, + ) + + actions = EventActions(compaction=compaction) + + return Event( + author='user', + actions=actions, + invocation_id=Event.new_id(), + ) diff --git a/src/google/adk/flows/llm_flows/contents.py b/src/google/adk/flows/llm_flows/contents.py index 974daac011..9ff7ee45d7 100644 --- a/src/google/adk/flows/llm_flows/contents.py +++ b/src/google/adk/flows/llm_flows/contents.py @@ -222,6 +222,9 @@ def _contains_empty_content(event: Event) -> bool: Returns: True if the event should be skipped, False otherwise. """ + if event.actions and event.actions.compaction: + return False + return ( not event.content or not event.content.role @@ -233,17 +236,40 @@ def _contains_empty_content(event: Event) -> bool: def _get_contents( current_branch: Optional[str], events: list[Event], agent_name: str = '' ) -> list[types.Content]: - """Get the contents for the LLM request. - - Applies filtering, rearrangement, and content processing to events. + """Retrieves and processes events into a list of Contents for the LLM request. + + This function prepares the conversation history for the LLM by applying + several transformations: + 1. **Initial Filtering**: Removes events that are empty, do not belong + to the current invocation branch, or are related to authentication + or request confirmation. + 2. **Compaction Handling**: Identifies the latest compaction event. If found, + it replaces all events covered by the compaction range with the compacted + summary content. Only events *after* the compaction's end timestamp + are included in addition to the summary. If no compaction event exists, + all filtered events are considered. + 3. **Transcription Aggregation**: Combines consecutive + `input_transcription` and `output_transcription` events into single + 'user' and 'model' role `types.Content` events, respectively. + 4. **Multi-Agent Presentation**: Reformats messages from other agents + (i.e., not the current `agent_name` and not 'user') to be presented + as user-role context, prefixed with `[agent_name] said:`. Compactor + events are included directly without reformatting. + 5. **Function Call/Response Rearrangement**: Ensures proper pairing of + asynchronous function calls and responses within the event history. + 6. **Content Conversion**: Converts the final list of processed events + into `types.Content` objects, removing any client-side function call IDs. Args: - current_branch: The current branch of the agent. - events: Events to process. - agent_name: The name of the agent. + current_branch: The current invocation branch ID. Events outside this branch + will be filtered out. + events: A list of session events to process. + agent_name: The name of the agent currently running. Used to distinguish + between events from the current agent, other agents, and the user. Returns: - A list of processed contents. + A list of `types.Content` objects representing the conversation history + to be sent to the LLM. """ accumulated_input_transcription = '' accumulated_output_transcription = '' @@ -266,18 +292,55 @@ def _get_contents( raw_filtered_events.append(event) + # Find the latest compaction event. + latest_compaction_event = None + for event in reversed(raw_filtered_events): + if event.actions and event.actions.compaction: + latest_compaction_event = event + break + + events_to_process = [] + if latest_compaction_event: + compaction = latest_compaction_event.actions.compaction + if ( + compaction.start_timestamp is not None + and compaction.end_timestamp is not None + ): + # Add the compacted event itself. + new_event = Event( + timestamp=compaction.end_timestamp, + author='compactor', + content=compaction.compacted_content, + branch=latest_compaction_event.branch, + invocation_id=latest_compaction_event.invocation_id, + actions=latest_compaction_event.actions, + ) + events_to_process.append(new_event) + + # Add events from raw_filtered_events that are *after* the + # latest compaction's end timestamp. + for event in raw_filtered_events: + if event.timestamp > compaction.end_timestamp: + events_to_process.append(event) + else: + # No compaction events, process all raw filtered events. + events_to_process = raw_filtered_events + + # Sort by timestamp to ensure chronological order. + events_to_process.sort(key=lambda x: x.timestamp) + filtered_events = [] # aggregate transcription events - for i in range(len(raw_filtered_events)): - event = raw_filtered_events[i] + for i in range(len(events_to_process)): + event = events_to_process[i] if not event.content: # Convert transcription into normal event if event.input_transcription and event.input_transcription.text: accumulated_input_transcription += event.input_transcription.text if ( - i != len(raw_filtered_events) - 1 - and raw_filtered_events[i + 1].input_transcription - and raw_filtered_events[i + 1].input_transcription.text + i != len(events_to_process) - 1 + and events_to_process[i + 1].input_transcription + and events_to_process[i + 1].input_transcription.text ): continue event = event.model_copy(deep=True) @@ -290,9 +353,9 @@ def _get_contents( elif event.output_transcription and event.output_transcription.text: accumulated_output_transcription += event.output_transcription.text if ( - i != len(raw_filtered_events) - 1 - and raw_filtered_events[i + 1].output_transcription - and raw_filtered_events[i + 1].output_transcription.text + i != len(events_to_process) - 1 + and events_to_process[i + 1].output_transcription + and events_to_process[i + 1].output_transcription.text ): continue event = event.model_copy(deep=True) @@ -321,8 +384,9 @@ def _get_contents( contents = [] for event in result_events: content = copy.deepcopy(event.content) - remove_client_function_call_id(content) - contents.append(content) + if content: + remove_client_function_call_id(content) + contents.append(content) return contents diff --git a/src/google/adk/runners.py b/src/google/adk/runners.py index e7066a0c48..8dd1e42ba8 100644 --- a/src/google/adk/runners.py +++ b/src/google/adk/runners.py @@ -25,6 +25,8 @@ from typing import Optional import warnings +from google.adk.apps.compaction import _run_compaction_for_sliding_window +from google.adk.apps.sliding_window_compactor import SlidingWindowCompactor from google.genai import types from .agents.active_streaming_tool import ActiveStreamingTool @@ -134,6 +136,7 @@ def __init__( ValueError: If `app` is provided along with `app_name` or `plugins`, or if `app` is not provided but either `app_name` or `agent` is missing. """ + self.app = app ( self.app_name, self.agent, @@ -360,11 +363,42 @@ async def execute(ctx: InvocationContext) -> AsyncGenerator[Event]: ) as agen: async for event in agen: yield event + # Run compaction after all events are yielded from the agent. + # (We don't compact in the middle of an invocation, we only compact at the end of an invocation.) + if self.app and self.app.events_compaction_config: + logger.info('Running event compactor.') + # Run compaction in a separate task to avoid blocking the main thread. + # So the users can still finish the event loop from the agent while the + # compaction is running. + asyncio.create_task( + _run_compaction_for_sliding_window( + self.app, session, self.session_service + ) + ) async with Aclosing(_run_with_trace(new_message, invocation_id)) as agen: async for event in agen: yield event + async def _run_compaction_default(self, session: Session): + """Runs compaction for other types of compactors. + + This method calls `maybe_compact_events` on the compactor with all + events in the session. + + Args: + session: The session containing events to compact. + """ + compaction_event = ( + await self.app.events_compaction_config.compactor.maybe_compact_events( + events=session.events + ) + ) + if compaction_event: + await self.session_service.append_event( + session=session, event=compaction_event + ) + def _should_append_event(self, event: Event, is_live_call: bool) -> bool: """Checks if an event should be appended to the session.""" # Don't append audio response from model in live mode to session. diff --git a/tests/unittests/apps/test_compaction.py b/tests/unittests/apps/test_compaction.py new file mode 100644 index 0000000000..316290b06f --- /dev/null +++ b/tests/unittests/apps/test_compaction.py @@ -0,0 +1,219 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import unittest +from unittest.mock import AsyncMock +from unittest.mock import Mock + +from google.adk.agents.base_agent import BaseAgent +from google.adk.apps.app import App +from google.adk.apps.app import EventsCompactionConfig +from google.adk.apps.compaction import _run_compaction_for_sliding_window +from google.adk.apps.sliding_window_compactor import SlidingWindowCompactor +from google.adk.events.event import Event +from google.adk.events.event_actions import EventActions +from google.adk.events.event_actions import EventCompaction +from google.adk.sessions.base_session_service import BaseSessionService +from google.adk.sessions.session import Session +from google.genai.types import Content +from google.genai.types import Part +import pytest + + +@pytest.mark.parametrize( + 'env_variables', ['GOOGLE_AI', 'VERTEX'], indirect=True +) +class TestCompaction(unittest.IsolatedAsyncioTestCase): + + def setUp(self): + self.mock_session_service = AsyncMock(spec=BaseSessionService) + self.mock_compactor = AsyncMock(spec=SlidingWindowCompactor) + + def _create_event( + self, timestamp: float, invocation_id: str, text: str + ) -> Event: + return Event( + timestamp=timestamp, + invocation_id=invocation_id, + author='user', + content=Content(parts=[Part(text=text)]), + ) + + def _create_compacted_event( + self, start_ts: float, end_ts: float, summary_text: str + ) -> Event: + compaction = EventCompaction( + start_timestamp=start_ts, + end_timestamp=end_ts, + compacted_content=Content(parts=[Part(text=summary_text)]), + ) + return Event( + timestamp=end_ts, + author='compactor', + content=compaction.compacted_content, + actions=EventActions(compaction=compaction), + invocation_id=Event.new_id(), + ) + + async def test_run_compaction_for_sliding_window_no_events(self): + app = App(name='test', root_agent=Mock(spec=BaseAgent)) + session = Session(app_name='test', user_id='u1', id='s1', events=[]) + await _run_compaction_for_sliding_window( + app, session, self.mock_session_service + ) + self.mock_compactor.maybe_compact_events.assert_not_called() + self.mock_session_service.append_event.assert_not_called() + + async def test_run_compaction_for_sliding_window_not_enough_new_invocations( + self, + ): + app = App( + name='test', + root_agent=Mock(spec=BaseAgent), + events_compaction_config=EventsCompactionConfig( + compactor=self.mock_compactor, + compaction_interval=3, + overlap_size=1, + ), + ) + # Only two new invocations ('inv1', 'inv2'), less than compaction_interval=3. + session = Session( + app_name='test', + user_id='u1', + id='s1', + events=[ + self._create_event(1.0, 'inv1', 'e1'), + self._create_event(2.0, 'inv2', 'e2'), + ], + ) + await _run_compaction_for_sliding_window( + app, session, self.mock_session_service + ) + self.mock_compactor.maybe_compact_events.assert_not_called() + self.mock_session_service.append_event.assert_not_called() + + async def test_run_compaction_for_sliding_window_first_compaction(self): + app = App( + name='test', + root_agent=Mock(spec=BaseAgent), + events_compaction_config=EventsCompactionConfig( + compactor=self.mock_compactor, + compaction_interval=2, + overlap_size=1, + ), + ) + events = [ + self._create_event(1.0, 'inv1', 'e1'), + self._create_event(2.0, 'inv2', 'e2'), + self._create_event(3.0, 'inv3', 'e3'), + self._create_event(4.0, 'inv4', 'e4'), + ] + session = Session(app_name='test', user_id='u1', id='s1', events=events) + + mock_compacted_event = self._create_compacted_event( + 1.0, 4.0, 'Summary inv1-inv4' + ) + self.mock_compactor.maybe_compact_events.return_value = mock_compacted_event + + await _run_compaction_for_sliding_window( + app, session, self.mock_session_service + ) + + # Expected events to compact: inv1, inv2, inv3, inv4 + compacted_events_arg = self.mock_compactor.maybe_compact_events.call_args[ + 1 + ]['events'] + self.assertEqual( + [e.invocation_id for e in compacted_events_arg], + ['inv1', 'inv2', 'inv3', 'inv4'], + ) + self.mock_session_service.append_event.assert_called_once_with( + session=session, event=mock_compacted_event + ) + + async def test_run_compaction_for_sliding_window_with_overlap(self): + app = App( + name='test', + root_agent=Mock(spec=BaseAgent), + events_compaction_config=EventsCompactionConfig( + compactor=self.mock_compactor, + compaction_interval=2, + overlap_size=1, + ), + ) + # inv1-inv2 are already compacted. Last compacted end timestamp is 2.0. + initial_events = [ + self._create_event(1.0, 'inv1', 'e1'), + self._create_event(2.0, 'inv2', 'e2'), + self._create_compacted_event(1.0, 2.0, 'Summary inv1-inv2'), + ] + # Add new invocations inv3, inv4, inv5 + new_events = [ + self._create_event(3.0, 'inv3', 'e3'), + self._create_event(4.0, 'inv4', 'e4'), + self._create_event(5.0, 'inv5', 'e5'), + ] + session = Session( + app_name='test', + user_id='u1', + id='s1', + events=initial_events + new_events, + ) + + mock_compacted_event = self._create_compacted_event( + 2.0, 5.0, 'Summary inv2-inv5' + ) + self.mock_compactor.maybe_compact_events.return_value = mock_compacted_event + + await _run_compaction_for_sliding_window( + app, session, self.mock_session_service + ) + + # New invocations are inv3, inv4, inv5 (3 new) > threshold (2). + # Overlap size is 1, so start from 1 inv before inv3, which is inv2. + # Compact range: inv2 to inv5. + compacted_events_arg = self.mock_compactor.maybe_compact_events.call_args[ + 1 + ]['events'] + self.assertEqual( + [e.invocation_id for e in compacted_events_arg], + ['inv2', 'inv3', 'inv4', 'inv5'], + ) + self.mock_session_service.append_event.assert_called_once_with( + session=session, event=mock_compacted_event + ) + + async def test_run_compaction_for_sliding_window_no_compaction_event_returned( + self, + ): + app = App( + name='test', + root_agent=Mock(spec=BaseAgent), + events_compaction_config=EventsCompactionConfig( + compactor=self.mock_compactor, + compaction_interval=1, + overlap_size=0, + ), + ) + events = [self._create_event(1.0, 'inv1', 'e1')] + session = Session(app_name='test', user_id='u1', id='s1', events=events) + + self.mock_compactor.maybe_compact_events.return_value = None + + await _run_compaction_for_sliding_window( + app, session, self.mock_session_service + ) + + self.mock_compactor.maybe_compact_events.assert_called_once() + self.mock_session_service.append_event.assert_not_called() diff --git a/tests/unittests/apps/test_sliding_window_compactor.py b/tests/unittests/apps/test_sliding_window_compactor.py new file mode 100644 index 0000000000..edc3ed2136 --- /dev/null +++ b/tests/unittests/apps/test_sliding_window_compactor.py @@ -0,0 +1,162 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import unittest +from unittest.mock import AsyncMock +from unittest.mock import Mock + +from google.adk.apps.sliding_window_compactor import SlidingWindowCompactor +from google.adk.events.event import Event +from google.adk.events.event_actions import EventActions +from google.adk.events.event_actions import EventCompaction +from google.adk.models.base_llm import BaseLlm +from google.adk.models.llm_request import LlmRequest +from google.genai.types import Content +from google.genai.types import FunctionCall +from google.genai.types import FunctionResponse +from google.genai.types import Part +import pytest + + +@pytest.mark.parametrize( + 'env_variables', ['GOOGLE_AI', 'VERTEX'], indirect=True +) +class TestSlidingWindowCompactor(unittest.IsolatedAsyncioTestCase): + + def setUp(self): + self.mock_llm = AsyncMock(spec=BaseLlm) + self.mock_llm.model = 'test-model' + self.compactor = SlidingWindowCompactor(llm=self.mock_llm) + + def _create_event( + self, timestamp: float, text: str, author: str = 'user' + ) -> Event: + return Event( + timestamp=timestamp, + author=author, + content=Content(parts=[Part(text=text)]), + ) + + async def test_maybe_compact_events_success(self): + events = [ + self._create_event(1.0, 'Hello', 'user'), + self._create_event(2.0, 'Hi there!', 'model'), + ] + expected_conversation_history = 'user: Hello\\nmodel: Hi there!' + expected_prompt = self.compactor._DEFAULT_PROMPT_TEMPLATE.format( + conversation_history=expected_conversation_history + ) + mock_llm_response = Mock(content=Content(parts=[Part(text='Summary')])) + + async def async_gen(): + yield mock_llm_response + + self.mock_llm.generate_content_async.return_value = async_gen() + + compacted_event = await self.compactor.maybe_compact_events(events=events) + + self.assertIsNotNone(compacted_event) + self.assertEqual( + compacted_event.actions.compaction.compacted_content.parts[0].text, + 'Summary', + ) + self.assertEqual(compacted_event.author, 'user') + self.assertIsNotNone(compacted_event.actions) + self.assertIsNotNone(compacted_event.actions.compaction) + self.assertEqual(compacted_event.actions.compaction.start_timestamp, 1.0) + self.assertEqual(compacted_event.actions.compaction.end_timestamp, 2.0) + self.assertEqual( + compacted_event.actions.compaction.compacted_content.parts[0].text, + 'Summary', + ) + + self.mock_llm.generate_content_async.assert_called_once() + args, kwargs = self.mock_llm.generate_content_async.call_args + llm_request = args[0] + self.assertIsInstance(llm_request, LlmRequest) + self.assertEqual(llm_request.model, 'test-model') + self.assertEqual(llm_request.contents[0].role, 'user') + self.assertEqual(llm_request.contents[0].parts[0].text, expected_prompt) + self.assertFalse(kwargs['stream']) + + async def test_maybe_compact_events_empty_llm_response(self): + events = [ + self._create_event(1.0, 'Hello', 'user'), + ] + mock_llm_response = Mock(content=None) + + async def async_gen(): + yield mock_llm_response + + self.mock_llm.generate_content_async.return_value = async_gen() + + compacted_event = await self.compactor.maybe_compact_events(events=events) + self.assertIsNone(compacted_event) + + async def test_maybe_compact_events_empty_input(self): + compacted_event = await self.compactor.maybe_compact_events(events=[]) + self.assertIsNone(compacted_event) + self.mock_llm.generate_content_async.assert_not_called() + + def test_format_events_for_prompt(self): + events = [ + self._create_event(1.0, 'User says...', 'user'), + self._create_event(2.0, 'Model replies...', 'model'), + self._create_event(3.0, 'Another user input', 'user'), + self._create_event(4.0, 'More model text', 'model'), + # Event with no content + Event(timestamp=5.0, author='user'), + # Event with empty content part + Event( + timestamp=6.0, + author='model', + content=Content(parts=[Part(text='')]), + ), + # Event with function call + Event( + timestamp=7.0, + author='model', + content=Content( + parts=[ + Part( + function_call=FunctionCall( + id='call_1', name='tool', args={} + ) + ) + ] + ), + ), + # Event with function response + Event( + timestamp=8.0, + author='model', + content=Content( + parts=[ + Part( + function_response=FunctionResponse( + id='call_1', + name='tool', + response={'result': 'done'}, + ) + ) + ] + ), + ), + ] + expected_formatted_history = ( + 'user: User says...\\nmodel: Model replies...\\nuser: Another user' + ' input\\nmodel: More model text' + ) + formatted_history = self.compactor._format_events_for_prompt(events) + self.assertEqual(formatted_history, expected_formatted_history) diff --git a/tests/unittests/conftest.py b/tests/unittests/conftest.py index 2b93226dbd..59b66bd622 100644 --- a/tests/unittests/conftest.py +++ b/tests/unittests/conftest.py @@ -38,7 +38,7 @@ } -@fixture(autouse=True) +@fixture def env_variables(request: FixtureRequest): # Set up the environment env_name: str = request.param @@ -56,6 +56,35 @@ def env_variables(request: FixtureRequest): os.environ[key] = original_val +# Store original environment variables to restore later +_original_env = {} + + +@hookimpl(tryfirst=True) +def pytest_sessionstart(session): + """Set up environment variables at the beginning of the test session.""" + if not ENV_SETUPS: + return + # Use the first env setup to initialize environment for module-level imports + env_name = next(iter(ENV_SETUPS.keys())) + envs = ENV_SETUPS[env_name] + global _original_env + _original_env = {key: os.environ.get(key) for key in envs} + os.environ.update(envs) + + +@hookimpl(trylast=True) +def pytest_sessionfinish(session): + """Restore original environment variables at the end of the test session.""" + global _original_env + for key, original_val in _original_env.items(): + if original_val is None: + os.environ.pop(key, None) + else: + os.environ[key] = original_val + _original_env = {} + + @hookimpl(tryfirst=True) def pytest_generate_tests(metafunc: Metafunc): """Generate test cases for each environment setup.""" diff --git a/tests/unittests/tools/test_agent_tool.py b/tests/unittests/tools/test_agent_tool.py index 1f2a026e8a..0b47696652 100644 --- a/tests/unittests/tools/test_agent_tool.py +++ b/tests/unittests/tools/test_agent_tool.py @@ -236,7 +236,7 @@ async def after_main_agent(callback_context: CallbackContext): ], indirect=True, ) -def test_custom_schema(): +def test_custom_schema(env_variables): class CustomInput(BaseModel): custom_input: str @@ -289,7 +289,9 @@ class CustomOutput(BaseModel): ], indirect=True, ) -def test_agent_tool_response_schema_no_output_schema_vertex_ai(): +def test_agent_tool_response_schema_no_output_schema_vertex_ai( + env_variables, +): """Test AgentTool with no output schema has string response schema for VERTEX_AI.""" tool_agent = Agent( name='tool_agent', @@ -314,7 +316,9 @@ def test_agent_tool_response_schema_no_output_schema_vertex_ai(): ], indirect=True, ) -def test_agent_tool_response_schema_with_output_schema_vertex_ai(): +def test_agent_tool_response_schema_with_output_schema_vertex_ai( + env_variables, +): """Test AgentTool with output schema has object response schema for VERTEX_AI.""" class CustomOutput(BaseModel): @@ -342,7 +346,9 @@ class CustomOutput(BaseModel): ], indirect=True, ) -def test_agent_tool_response_schema_gemini_api(): +def test_agent_tool_response_schema_gemini_api( + env_variables, +): """Test AgentTool with GEMINI_API variant has no response schema.""" class CustomOutput(BaseModel): @@ -369,7 +375,9 @@ class CustomOutput(BaseModel): ], indirect=True, ) -def test_agent_tool_response_schema_with_input_schema_vertex_ai(): +def test_agent_tool_response_schema_with_input_schema_vertex_ai( + env_variables, +): """Test AgentTool with input and output schemas for VERTEX_AI.""" class CustomInput(BaseModel): @@ -403,7 +411,9 @@ class CustomOutput(BaseModel): ], indirect=True, ) -def test_agent_tool_response_schema_with_input_schema_no_output_vertex_ai(): +def test_agent_tool_response_schema_with_input_schema_no_output_vertex_ai( + env_variables, +): """Test AgentTool with input schema but no output schema for VERTEX_AI.""" class CustomInput(BaseModel): From 46d73be41a0d760812931427413addd7f1faae87 Mon Sep 17 00:00:00 2001 From: George Weale Date: Mon, 6 Oct 2025 10:47:52 -0700 Subject: [PATCH 030/303] chore: Add more info to "Session not found" error message in ADK runners for differently named app and folder PiperOrigin-RevId: 815795412 --- src/google/adk/cli/utils/agent_loader.py | 37 ++++++++++++++++++ src/google/adk/runners.py | 49 ++++++++++++++++++++++++ 2 files changed, 86 insertions(+) diff --git a/src/google/adk/cli/utils/agent_loader.py b/src/google/adk/cli/utils/agent_loader.py index 0e5ed08da3..d5cb08cf0e 100644 --- a/src/google/adk/cli/utils/agent_loader.py +++ b/src/google/adk/cli/utils/agent_loader.py @@ -205,9 +205,19 @@ def _perform_load(self, agent_name: str) -> Union[BaseAgent, App]: envs.load_dotenv_for_agent(actual_agent_name, str(agents_dir)) if root_agent := self._load_from_module_or_package(actual_agent_name): + self._ensure_app_name_matches( + maybe_app=root_agent, + expected_app_name=actual_agent_name, + agents_dir=agents_dir, + ) return root_agent if root_agent := self._load_from_submodule(actual_agent_name): + self._ensure_app_name_matches( + maybe_app=root_agent, + expected_app_name=actual_agent_name, + agents_dir=agents_dir, + ) return root_agent if root_agent := self._load_from_yaml_config(actual_agent_name, agents_dir): @@ -223,6 +233,33 @@ def _perform_load(self, agent_name: str) -> Union[BaseAgent, App]: " file can be loaded if present, and a root_agent is exposed." ) + def _ensure_app_name_matches( + self, + *, + maybe_app: Union[BaseAgent, App], + expected_app_name: str, + agents_dir: str, + ) -> None: + """Raises a detailed error when App.name does not match its directory.""" + + if not isinstance(maybe_app, App): + return + + # Built-in apps live under double-underscore directories. + if expected_app_name.startswith("__"): + return + + if maybe_app.name == expected_app_name: + return + + raise ValueError( + "App name mismatch detected. The App defined at " + f"'{agents_dir}/{expected_app_name}' declares name " + f"'{maybe_app.name}', but ADK expects it to match the directory " + f"name '{expected_app_name}'. Rename the App or the folder so they " + "match, then reload." + ) + @override def load_agent(self, agent_name: str) -> Union[BaseAgent, App]: """Load an agent module (with caching & .env) and return its root_agent.""" diff --git a/src/google/adk/runners.py b/src/google/adk/runners.py index 8dd1e42ba8..c78961bd2c 100644 --- a/src/google/adk/runners.py +++ b/src/google/adk/runners.py @@ -15,7 +15,9 @@ from __future__ import annotations import asyncio +import inspect import logging +from pathlib import Path import queue from typing import Any from typing import AsyncGenerator @@ -149,6 +151,11 @@ def __init__( self.memory_service = memory_service self.credential_service = credential_service self.plugin_manager = PluginManager(plugins=plugins) + ( + self._agent_origin_app_name, + self._agent_origin_dir, + ) = self._infer_agent_origin(self.agent) + self._enforce_app_name_alignment() def _validate_runner_params( self, @@ -211,6 +218,48 @@ def _validate_runner_params( ) return app_name, agent, context_cache_config, resumability_config, plugins + def _infer_agent_origin( + self, agent: BaseAgent + ) -> tuple[Optional[str], Optional[Path]]: + module = inspect.getmodule(agent.__class__) + if not module: + return None, None + module_file = getattr(module, '__file__', None) + if not module_file: + return None, None + module_path = Path(module_file).resolve() + project_root = Path.cwd() + try: + module_path.relative_to(project_root) + except ValueError: + return None, module_path.parent + + current = module_path.parent + while current != project_root and current.parent != current: + parent = current.parent + if parent.name == 'agents': + return current.name, current + current = parent + + return None, module_path.parent + + def _enforce_app_name_alignment(self) -> None: + origin_name = self._agent_origin_app_name + origin_dir = self._agent_origin_dir + if not origin_name or origin_name.startswith('__'): + return + if origin_name == self.app_name: + return + origin_location = str(origin_dir) if origin_dir else origin_name + message = ( + 'App name mismatch detected. The runner is configured with ' + f'app name "{self.app_name}", but the root agent was loaded from ' + f'"{origin_location}", which implies app name "{origin_name}". ' + 'Rename the App or its directory so the names match before running ' + 'the agent.' + ) + raise ValueError(message) + def run( self, *, From 5c6cdcd197a6780fc86d9183fa208f78c8a975d9 Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Mon, 6 Oct 2025 11:27:41 -0700 Subject: [PATCH 031/303] feat: Support Oauth2 client credentials grant type PiperOrigin-RevId: 815813477 --- src/google/adk/auth/credential_manager.py | 43 ++++++- .../exchanger/oauth2_credential_exchanger.py | 101 ++++++++++++++- src/google/adk/auth/oauth2_credential_util.py | 37 +++--- .../test_oauth2_credential_exchanger.py | 116 ++++++++++++++++++ .../unittests/auth/test_credential_manager.py | 106 ++++++++++++++++ 5 files changed, 381 insertions(+), 22 deletions(-) diff --git a/src/google/adk/auth/credential_manager.py b/src/google/adk/auth/credential_manager.py index 5f51bae888..3503e1e447 100644 --- a/src/google/adk/auth/credential_manager.py +++ b/src/google/adk/auth/credential_manager.py @@ -25,11 +25,11 @@ from .auth_credential import AuthCredentialTypes from .auth_schemes import AuthSchemeType from .auth_schemes import ExtendedOAuth2 +from .auth_schemes import OpenIdConnectWithConfig from .auth_tool import AuthConfig from .exchanger.base_credential_exchanger import BaseCredentialExchanger from .exchanger.credential_exchanger_registry import CredentialExchangerRegistry from .oauth2_discovery import OAuth2DiscoveryManager -from .refresher.base_credential_refresher import BaseCredentialRefresher from .refresher.credential_refresher_registry import CredentialRefresherRegistry logger = logging.getLogger("google_adk." + __name__) @@ -85,8 +85,17 @@ def __init__( # Register default exchangers and refreshers # TODO: support service account credential exchanger + from .exchanger.oauth2_credential_exchanger import OAuth2CredentialExchanger from .refresher.oauth2_credential_refresher import OAuth2CredentialRefresher + oauth2_exchanger = OAuth2CredentialExchanger() + self._exchanger_registry.register( + AuthCredentialTypes.OAUTH2, oauth2_exchanger + ) + self._exchanger_registry.register( + AuthCredentialTypes.OPEN_ID_CONNECT, oauth2_exchanger + ) + oauth2_refresher = OAuth2CredentialRefresher() self._refresher_registry.register( AuthCredentialTypes.OAUTH2, oauth2_refresher @@ -134,9 +143,14 @@ async def get_auth_credential( credential = await self._load_from_auth_response(callback_context) was_from_auth_response = True - # Step 5: If still no credential available, return None + # Step 5: If still no credential available, check if client credentials if not credential: - return None + # For client credentials flow, use raw credentials directly + if self._is_client_credentials_flow(): + credential = self._auth_config.raw_auth_credential + else: + # For authorization code flow, return None to trigger user authorization + return None # Step 6: Exchange credential if needed (e.g., service account to access token) credential, was_exchanged = await self._exchange_credential(credential) @@ -328,3 +342,26 @@ def _missing_oauth_info(self) -> bool: and not flows.authorizationCode.tokenUrl ) return False + + def _is_client_credentials_flow(self) -> bool: + """Check if the auth scheme uses client credentials flow. + + Supports both OAuth2 and OIDC schemes. + + Returns: + True if using client credentials flow, False otherwise. + """ + auth_scheme = self._auth_config.auth_scheme + + # Check OAuth2 schemes + if isinstance(auth_scheme, OAuth2) and auth_scheme.flows: + return auth_scheme.flows.clientCredentials is not None + + # Check OIDC schemes + if isinstance(auth_scheme, OpenIdConnectWithConfig): + return ( + auth_scheme.grant_types_supported is not None + and "client_credentials" in auth_scheme.grant_types_supported + ) + + return False diff --git a/src/google/adk/auth/exchanger/oauth2_credential_exchanger.py b/src/google/adk/auth/exchanger/oauth2_credential_exchanger.py index 4231a7c1ed..71c5f7c896 100644 --- a/src/google/adk/auth/exchanger/oauth2_credential_exchanger.py +++ b/src/google/adk/auth/exchanger/oauth2_credential_exchanger.py @@ -19,9 +19,11 @@ import logging from typing import Optional +from fastapi.openapi.models import OAuth2 from google.adk.auth.auth_credential import AuthCredential from google.adk.auth.auth_schemes import AuthScheme from google.adk.auth.auth_schemes import OAuthGrantType +from google.adk.auth.auth_schemes import OpenIdConnectWithConfig from google.adk.auth.oauth2_credential_util import create_oauth2_session from google.adk.auth.oauth2_credential_util import update_credential_with_tokens from google.adk.utils.feature_decorator import experimental @@ -81,9 +83,100 @@ async def exchange( if auth_credential.oauth2 and auth_credential.oauth2.access_token: return auth_credential + # Determine grant type from auth_scheme + grant_type = self._determine_grant_type(auth_scheme) + + if grant_type == OAuthGrantType.CLIENT_CREDENTIALS: + return await self._exchange_client_credentials( + auth_credential, auth_scheme + ) + elif grant_type == OAuthGrantType.AUTHORIZATION_CODE: + return await self._exchange_authorization_code( + auth_credential, auth_scheme + ) + else: + logger.warning("Unsupported OAuth2 grant type: %s", grant_type) + return auth_credential + + def _determine_grant_type( + self, auth_scheme: AuthScheme + ) -> Optional[OAuthGrantType]: + """Determine the OAuth2 grant type from the auth scheme. + + Args: + auth_scheme: The OAuth2 authentication scheme. + + Returns: + The OAuth2 grant type or None if cannot be determined. + """ + if isinstance(auth_scheme, OAuth2) and auth_scheme.flows: + return OAuthGrantType.from_flow(auth_scheme.flows) + elif isinstance(auth_scheme, OpenIdConnectWithConfig): + # Check supported grant types for OIDC + if ( + auth_scheme.grant_types_supported + and "client_credentials" in auth_scheme.grant_types_supported + ): + return OAuthGrantType.CLIENT_CREDENTIALS + else: + # Default to authorization code if client credentials not supported + return OAuthGrantType.AUTHORIZATION_CODE + + return None + + async def _exchange_client_credentials( + self, + auth_credential: AuthCredential, + auth_scheme: AuthScheme, + ) -> AuthCredential: + """Exchange client credentials for access token. + + Args: + auth_credential: The OAuth2 credential to exchange. + auth_scheme: The OAuth2 authentication scheme. + + Returns: + The credential with access token. + """ client, token_endpoint = create_oauth2_session(auth_scheme, auth_credential) if not client: - logger.warning("Could not create OAuth2 session for token exchange") + logger.warning( + "Could not create OAuth2 session for client credentials exchange" + ) + return auth_credential + + try: + tokens = client.fetch_token( + token_endpoint, + grant_type=OAuthGrantType.CLIENT_CREDENTIALS, + ) + update_credential_with_tokens(auth_credential, tokens) + logger.debug("Successfully exchanged client credentials for access token") + except Exception as e: + logger.error("Failed to exchange client credentials: %s", e) + return auth_credential + + return auth_credential + + async def _exchange_authorization_code( + self, + auth_credential: AuthCredential, + auth_scheme: AuthScheme, + ) -> AuthCredential: + """Exchange authorization code for access token. + + Args: + auth_credential: The OAuth2 credential to exchange. + auth_scheme: The OAuth2 authentication scheme. + + Returns: + The credential with access token. + """ + client, token_endpoint = create_oauth2_session(auth_scheme, auth_credential) + if not client: + logger.warning( + "Could not create OAuth2 session for authorization code exchange" + ) return auth_credential try: @@ -94,11 +187,9 @@ async def exchange( grant_type=OAuthGrantType.AUTHORIZATION_CODE, ) update_credential_with_tokens(auth_credential, tokens) - logger.debug("Successfully exchanged OAuth2 tokens") + logger.debug("Successfully exchanged authorization code for access token") except Exception as e: - # TODO reconsider whether we should raise errors in this case - logger.error("Failed to exchange OAuth2 tokens: %s", e) - # Return original credential on failure + logger.error("Failed to exchange authorization code: %s", e) return auth_credential return auth_credential diff --git a/src/google/adk/auth/oauth2_credential_util.py b/src/google/adk/auth/oauth2_credential_util.py index cc315bd29e..d90103a88c 100644 --- a/src/google/adk/auth/oauth2_credential_util.py +++ b/src/google/adk/auth/oauth2_credential_util.py @@ -18,6 +18,8 @@ from typing import Optional from typing import Tuple +from authlib.integrations.requests_client import OAuth2Session +from authlib.oauth2.rfc6749 import OAuth2Token from fastapi.openapi.models import OAuth2 from ..utils.feature_decorator import experimental @@ -25,15 +27,6 @@ from .auth_schemes import AuthScheme from .auth_schemes import OpenIdConnectWithConfig -try: - from authlib.integrations.requests_client import OAuth2Session - from authlib.oauth2.rfc6749 import OAuth2Token - - AUTHLIB_AVAILABLE = True -except ImportError: - AUTHLIB_AVAILABLE = False - - logger = logging.getLogger("google_adk." + __name__) @@ -53,18 +46,34 @@ def create_oauth2_session( """ if isinstance(auth_scheme, OpenIdConnectWithConfig): if not hasattr(auth_scheme, "token_endpoint"): + logger.warning("OpenIdConnect scheme missing token_endpoint") return None, None token_endpoint = auth_scheme.token_endpoint - scopes = auth_scheme.scopes + scopes = auth_scheme.scopes or [] elif isinstance(auth_scheme, OAuth2): + # Support both authorization code and client credentials flows if ( - not auth_scheme.flows.authorizationCode - or not auth_scheme.flows.authorizationCode.tokenUrl + auth_scheme.flows.authorizationCode + and auth_scheme.flows.authorizationCode.tokenUrl + ): + token_endpoint = auth_scheme.flows.authorizationCode.tokenUrl + scopes = list(auth_scheme.flows.authorizationCode.scopes.keys()) + elif ( + auth_scheme.flows.clientCredentials + and auth_scheme.flows.clientCredentials.tokenUrl ): + token_endpoint = auth_scheme.flows.clientCredentials.tokenUrl + scopes = list(auth_scheme.flows.clientCredentials.scopes.keys()) + else: + logger.warning( + "OAuth2 scheme missing required flow configuration. Expected either" + " authorizationCode.tokenUrl or clientCredentials.tokenUrl. Auth" + " scheme: %s", + auth_scheme, + ) return None, None - token_endpoint = auth_scheme.flows.authorizationCode.tokenUrl - scopes = list(auth_scheme.flows.authorizationCode.scopes.keys()) else: + logger.warning(f"Unsupported auth_scheme type: {type(auth_scheme)}") return None, None if ( diff --git a/tests/unittests/auth/exchanger/test_oauth2_credential_exchanger.py b/tests/unittests/auth/exchanger/test_oauth2_credential_exchanger.py index 31288511e6..bc5990c677 100644 --- a/tests/unittests/auth/exchanger/test_oauth2_credential_exchanger.py +++ b/tests/unittests/auth/exchanger/test_oauth2_credential_exchanger.py @@ -17,6 +17,9 @@ from unittest.mock import patch from authlib.oauth2.rfc6749 import OAuth2Token +from fastapi.openapi.models import OAuth2 +from fastapi.openapi.models import OAuthFlowClientCredentials +from fastapi.openapi.models import OAuthFlows from google.adk.auth.auth_credential import AuthCredential from google.adk.auth.auth_credential import AuthCredentialTypes from google.adk.auth.auth_credential import OAuth2Auth @@ -218,3 +221,116 @@ async def test_exchange_authlib_not_available(self): # Should return original credential when authlib is not available assert result == credential assert result.oauth2.access_token is None + + @patch("google.adk.auth.oauth2_credential_util.OAuth2Session") + @pytest.mark.asyncio + async def test_exchange_client_credentials_success(self, mock_oauth2_session): + """Test successful client credentials exchange.""" + # Setup mock + mock_client = Mock() + mock_oauth2_session.return_value = mock_client + mock_tokens = OAuth2Token({ + "access_token": "client_access_token", + "expires_at": int(time.time()) + 3600, + "expires_in": 3600, + }) + mock_client.fetch_token.return_value = mock_tokens + + # Create OAuth2 scheme with client credentials flow + flows = OAuthFlows( + clientCredentials=OAuthFlowClientCredentials( + tokenUrl="https://example.com/token", + scopes={"read": "Read access", "write": "Write access"}, + ) + ) + scheme = OAuth2(flows=flows) + + credential = AuthCredential( + auth_type=AuthCredentialTypes.OAUTH2, + oauth2=OAuth2Auth( + client_id="test_client_id", + client_secret="test_client_secret", + ), + ) + + exchanger = OAuth2CredentialExchanger() + result = await exchanger.exchange(credential, scheme) + + # Verify client credentials exchange was successful + assert result.oauth2.access_token == "client_access_token" + mock_client.fetch_token.assert_called_once_with( + "https://example.com/token", + grant_type="client_credentials", + ) + + @patch("google.adk.auth.oauth2_credential_util.OAuth2Session") + @pytest.mark.asyncio + async def test_exchange_client_credentials_failure(self, mock_oauth2_session): + """Test client credentials exchange failure.""" + # Setup mock to raise exception during fetch_token + mock_client = Mock() + mock_oauth2_session.return_value = mock_client + mock_client.fetch_token.side_effect = Exception( + "Client credentials fetch failed" + ) + + # Create OAuth2 scheme with client credentials flow + flows = OAuthFlows( + clientCredentials=OAuthFlowClientCredentials( + tokenUrl="https://example.com/token", scopes={"read": "Read access"} + ) + ) + scheme = OAuth2(flows=flows) + + credential = AuthCredential( + auth_type=AuthCredentialTypes.OAUTH2, + oauth2=OAuth2Auth( + client_id="test_client_id", + client_secret="test_client_secret", + ), + ) + + exchanger = OAuth2CredentialExchanger() + result = await exchanger.exchange(credential, scheme) + + # Should return original credential when client credentials exchange fails + assert result == credential + assert result.oauth2.access_token is None + mock_client.fetch_token.assert_called_once() + + @pytest.mark.asyncio + async def test_determine_grant_type_client_credentials(self): + """Test grant type determination for client credentials.""" + flows = OAuthFlows( + clientCredentials=OAuthFlowClientCredentials( + tokenUrl="https://example.com/token", scopes={"read": "Read access"} + ) + ) + scheme = OAuth2(flows=flows) + + exchanger = OAuth2CredentialExchanger() + grant_type = exchanger._determine_grant_type(scheme) + + from google.adk.auth.auth_schemes import OAuthGrantType + + assert grant_type == OAuthGrantType.CLIENT_CREDENTIALS + + @pytest.mark.asyncio + async def test_determine_grant_type_openid_connect(self): + """Test grant type determination for OpenID Connect (defaults to auth code).""" + scheme = OpenIdConnectWithConfig( + type_="openIdConnect", + openId_connect_url=( + "https://example.com/.well-known/openid_configuration" + ), + authorization_endpoint="https://example.com/auth", + token_endpoint="https://example.com/token", + scopes=["openid"], + ) + + exchanger = OAuth2CredentialExchanger() + grant_type = exchanger._determine_grant_type(scheme) + + from google.adk.auth.auth_schemes import OAuthGrantType + + assert grant_type == OAuthGrantType.AUTHORIZATION_CODE diff --git a/tests/unittests/auth/test_credential_manager.py b/tests/unittests/auth/test_credential_manager.py index 8ecf694667..da3ea54214 100644 --- a/tests/unittests/auth/test_credential_manager.py +++ b/tests/unittests/auth/test_credential_manager.py @@ -105,6 +105,9 @@ async def test_load_auth_credentials_no_credential(self): auth_config = Mock(spec=AuthConfig) auth_config.raw_auth_credential = None auth_config.exchanged_auth_credential = None + # Add auth_scheme for the _is_client_credentials_flow method + auth_config.auth_scheme = Mock() + auth_config.auth_scheme.flows = None callback_context = Mock() @@ -562,6 +565,109 @@ async def test_populate_auth_scheme_noop(self, implicit_oauth2_scheme): assert manager._auth_config.auth_scheme == implicit_oauth2_scheme + def test_is_client_credentials_flow_oauth2_with_client_credentials(self): + """Test _is_client_credentials_flow returns True for OAuth2 with client credentials.""" + from fastapi.openapi.models import OAuth2 + from fastapi.openapi.models import OAuthFlowClientCredentials + from fastapi.openapi.models import OAuthFlows + + # Create OAuth2 scheme with client credentials flow + auth_scheme = OAuth2( + flows=OAuthFlows( + clientCredentials=OAuthFlowClientCredentials( + tokenUrl="https://example.com/token" + ) + ) + ) + + auth_config = Mock(spec=AuthConfig) + auth_config.auth_scheme = auth_scheme + auth_config.raw_auth_credential = None + auth_config.exchanged_auth_credential = None + + manager = CredentialManager(auth_config) + + assert manager._is_client_credentials_flow() is True + + def test_is_client_credentials_flow_oauth2_without_client_credentials(self): + """Test _is_client_credentials_flow returns False for OAuth2 without client credentials.""" + from fastapi.openapi.models import OAuth2 + from fastapi.openapi.models import OAuthFlowAuthorizationCode + from fastapi.openapi.models import OAuthFlows + + # Create OAuth2 scheme with authorization code flow only + auth_scheme = OAuth2( + flows=OAuthFlows( + authorizationCode=OAuthFlowAuthorizationCode( + authorizationUrl="https://example.com/auth", + tokenUrl="https://example.com/token", + ) + ) + ) + + auth_config = Mock(spec=AuthConfig) + auth_config.auth_scheme = auth_scheme + auth_config.raw_auth_credential = None + auth_config.exchanged_auth_credential = None + + manager = CredentialManager(auth_config) + + assert manager._is_client_credentials_flow() is False + + def test_is_client_credentials_flow_oidc_with_client_credentials(self): + """Test _is_client_credentials_flow returns True for OIDC with client credentials.""" + from google.adk.auth.auth_schemes import OpenIdConnectWithConfig + + # Create OIDC scheme with client credentials support + auth_scheme = OpenIdConnectWithConfig( + authorization_endpoint="https://example.com/auth", + token_endpoint="https://example.com/token", + grant_types_supported=["authorization_code", "client_credentials"], + ) + + auth_config = Mock(spec=AuthConfig) + auth_config.auth_scheme = auth_scheme + auth_config.raw_auth_credential = None + auth_config.exchanged_auth_credential = None + + manager = CredentialManager(auth_config) + + assert manager._is_client_credentials_flow() is True + + def test_is_client_credentials_flow_oidc_without_client_credentials(self): + """Test _is_client_credentials_flow returns False for OIDC without client credentials.""" + from google.adk.auth.auth_schemes import OpenIdConnectWithConfig + + # Create OIDC scheme without client credentials support + auth_scheme = OpenIdConnectWithConfig( + authorization_endpoint="https://example.com/auth", + token_endpoint="https://example.com/token", + grant_types_supported=["authorization_code"], + ) + + auth_config = Mock(spec=AuthConfig) + auth_config.auth_scheme = auth_scheme + auth_config.raw_auth_credential = None + auth_config.exchanged_auth_credential = None + + manager = CredentialManager(auth_config) + + assert manager._is_client_credentials_flow() is False + + def test_is_client_credentials_flow_other_scheme(self): + """Test _is_client_credentials_flow returns False for other auth schemes.""" + # Create a non-OAuth2/OIDC scheme + auth_scheme = Mock() + + auth_config = Mock(spec=AuthConfig) + auth_config.auth_scheme = auth_scheme + auth_config.raw_auth_credential = None + auth_config.exchanged_auth_credential = None + + manager = CredentialManager(auth_config) + + assert manager._is_client_credentials_flow() is False + @pytest.fixture def oauth2_auth_scheme(): From 4bb089d386d4e8133e9aadbba5c42d31ff281cf6 Mon Sep 17 00:00:00 2001 From: Haoming Chen Date: Mon, 6 Oct 2025 12:58:34 -0700 Subject: [PATCH 032/303] feat: Add BigQuery analyze_contribution tool This change introduces a new `analyze_contribution` function in `query_tool.py` which uses BigQuery ML's `CREATE MODEL` with `CONTRIBUTION_ANALYSIS` type and `ML.GET_INSIGHTS` to analyze the contribution of different dimensions to a given metric. The new function is also added to the `bigquery_toolset`. PiperOrigin-RevId: 815849281 --- .../adk/tools/bigquery/bigquery_toolset.py | 1 + src/google/adk/tools/bigquery/query_tool.py | 200 ++++++++++++++++++ .../bigquery/test_bigquery_query_tool.py | 131 +++++++++++- .../tools/bigquery/test_bigquery_toolset.py | 3 +- 4 files changed, 333 insertions(+), 2 deletions(-) diff --git a/src/google/adk/tools/bigquery/bigquery_toolset.py b/src/google/adk/tools/bigquery/bigquery_toolset.py index 627c0bbc24..debf8a2d59 100644 --- a/src/google/adk/tools/bigquery/bigquery_toolset.py +++ b/src/google/adk/tools/bigquery/bigquery_toolset.py @@ -82,6 +82,7 @@ async def get_tools( metadata_tool.list_table_ids, query_tool.get_execute_sql(self._tool_settings), query_tool.forecast, + query_tool.analyze_contribution, data_insights_tool.ask_data_insights, ] ] diff --git a/src/google/adk/tools/bigquery/query_tool.py b/src/google/adk/tools/bigquery/query_tool.py index e2b1b25621..c55b504934 100644 --- a/src/google/adk/tools/bigquery/query_tool.py +++ b/src/google/adk/tools/bigquery/query_tool.py @@ -19,6 +19,7 @@ import types from typing import Callable from typing import Optional +import uuid from google.auth.credentials import Credentials from google.cloud import bigquery @@ -892,3 +893,202 @@ def forecast( ) """ return execute_sql(project_id, query, credentials, settings, tool_context) + + +def analyze_contribution( + project_id: str, + input_data: str, + contribution_metric: str, + dimension_id_cols: list[str], + is_test_col: str, + credentials: Credentials, + settings: BigQueryToolConfig, + tool_context: ToolContext, + top_k_insights: int = 30, + pruning_method: str = "PRUNE_REDUNDANT_INSIGHTS", +) -> dict: + """Run a BigQuery ML contribution analysis using ML.CREATE_MODEL and ML.GET_INSIGHTS. + + Args: + project_id (str): The GCP project id in which the query should be + executed. + input_data (str): The data that contain the test and control data to + analyze. Can be a fully qualified BigQuery table ID or a SQL query. + dimension_id_cols (list[str]): The column names of the dimension columns. + contribution_metric (str): The name of the column that contains the metric + to analyze. Provides the expression to use to calculate the metric you + are analyzing. To calculate a summable metric, the expression must be in + the form SUM(metric_column_name), where metric_column_name is a numeric + data type. To calculate a summable ratio metric, the expression must be + in the form + SUM(numerator_metric_column_name)/SUM(denominator_metric_column_name), + where numerator_metric_column_name and denominator_metric_column_name + are numeric data types. To calculate a summable by category metric, the + expression must be in the form + SUM(metric_sum_column_name)/COUNT(DISTINCT categorical_column_name). The + summed column must be a numeric data type. The categorical column must + have type BOOL, DATE, DATETIME, TIME, TIMESTAMP, STRING, or INT64. + is_test_col (str): The name of the column to use to determine whether a + given row is test data or control data. The column must have a BOOL data + type. + credentials: The credentials to use for the request. + settings: The settings for the tool. + tool_context: The context for the tool. + top_k_insights (int, optional): The number of top insights to return, + ranked by apriori support. Defaults to 30. + pruning_method (str, optional): The method to use for pruning redundant + insights. Can be 'NO_PRUNING' or 'PRUNE_REDUNDANT_INSIGHTS'. Defaults to + "PRUNE_REDUNDANT_INSIGHTS". + + Returns: + dict: Dictionary representing the result of the contribution analysis. + + Examples: + Analyze the contribution of different dimensions to the total sales: + + >>> analyze_contribution( + ... project_id="my-gcp-project", + ... input_data="my-dataset.my-sales-table", + ... dimension_id_cols=["store_id", "product_category"], + ... contribution_metric="SUM(total_sales)", + ... is_test_col="is_test" + ... ) + The return is: + { + "status": "SUCCESS", + "rows": [ + { + "store_id": "S1", + "product_category": "Electronics", + "contributors": ["S1", "Electronics"], + "metric_test": 120, + "metric_control": 100, + "difference": 20, + "relative_difference": 0.2, + "unexpected_difference": 5, + "relative_unexpected_difference": 0.043, + "apriori_support": 0.15 + }, + ... + ] + } + + Analyze the contribution of different dimensions to the total sales using + a SQL query as input: + + >>> analyze_contribution( + ... project_id="my-gcp-project", + ... input_data="SELECT store_id, product_category, total_sales, " + ... "is_test FROM `my-project.my-dataset.my-sales-table` " + ... "WHERE transaction_date > '2025-01-01'" + ... dimension_id_cols=["store_id", "product_category"], + ... contribution_metric="SUM(total_sales)", + ... is_test_col="is_test" + ... ) + The return is: + { + "status": "SUCCESS", + "rows": [ + { + "store_id": "S2", + "product_category": "Groceries", + "contributors": ["S2", "Groceries"], + "metric_test": 250, + "metric_control": 200, + "difference": 50, + "relative_difference": 0.25, + "unexpected_difference": 10, + "relative_unexpected_difference": 0.041, + "apriori_support": 0.22 + }, + ... + ] + } + """ + if not all(isinstance(item, str) for item in dimension_id_cols): + return { + "status": "ERROR", + "error_details": "All elements in dimension_id_cols must be strings.", + } + + # Generate a unique temporary model name + model_name = ( + f"contribution_analysis_model_{str(uuid.uuid4()).replace('-', '_')}" + ) + + id_cols_str = "[" + ", ".join([f"'{col}'" for col in dimension_id_cols]) + "]" + options = [ + "MODEL_TYPE = 'CONTRIBUTION_ANALYSIS'", + f"CONTRIBUTION_METRIC = '{contribution_metric}'", + f"IS_TEST_COL = '{is_test_col}'", + f"DIMENSION_ID_COLS = {id_cols_str}", + ] + + options.append(f"TOP_K_INSIGHTS_BY_APRIORI_SUPPORT = {top_k_insights}") + + upper_pruning = pruning_method.upper() + if upper_pruning not in ["NO_PRUNING", "PRUNE_REDUNDANT_INSIGHTS"]: + return { + "status": "ERROR", + "error_details": f"Invalid pruning_method: {pruning_method}", + } + options.append(f"PRUNING_METHOD = '{upper_pruning}'") + + options_str = ", ".join(options) + + trimmed_upper_input_data = input_data.strip().upper() + if trimmed_upper_input_data.startswith( + "SELECT" + ) or trimmed_upper_input_data.startswith("WITH"): + input_data_source = f"({input_data})" + else: + input_data_source = f"SELECT * FROM `{input_data}`" + + create_model_query = f""" + CREATE TEMP MODEL {model_name} + OPTIONS ({options_str}) + AS {input_data_source} + """ + + get_insights_query = f""" + SELECT * FROM ML.GET_INSIGHTS(MODEL {model_name}) + """ + + # Create a session and run the create model query. + original_write_mode = settings.write_mode + try: + if settings.write_mode == WriteMode.BLOCKED: + raise ValueError("analyze_contribution is not allowed in this session.") + elif original_write_mode != WriteMode.PROTECTED: + # Running create temp model requires a session. So we set the write mode + # to PROTECTED to run the create model query and job query in the same + # session. + settings.write_mode = WriteMode.PROTECTED + + result = execute_sql( + project_id, + create_model_query, + credentials, + settings, + tool_context, + ) + if result["status"] != "SUCCESS": + return result + + result = execute_sql( + project_id, + get_insights_query, + credentials, + settings, + tool_context, + ) + except Exception as ex: # pylint: disable=broad-except + return { + "status": "ERROR", + "error_details": f"Error during analyze_contribution: {str(ex)}", + } + finally: + # Restore the original write mode. + settings.write_mode == original_write_mode + + return result diff --git a/tests/unittests/tools/bigquery/test_bigquery_query_tool.py b/tests/unittests/tools/bigquery/test_bigquery_query_tool.py index 8e0d19cfa8..6e4442574f 100644 --- a/tests/unittests/tools/bigquery/test_bigquery_query_tool.py +++ b/tests/unittests/tools/bigquery/test_bigquery_query_tool.py @@ -28,6 +28,7 @@ from google.adk.tools.bigquery import BigQueryToolset from google.adk.tools.bigquery.config import BigQueryToolConfig from google.adk.tools.bigquery.config import WriteMode +from google.adk.tools.bigquery.query_tool import analyze_contribution from google.adk.tools.bigquery.query_tool import execute_sql from google.adk.tools.bigquery.query_tool import forecast from google.adk.tools.tool_context import ToolContext @@ -874,7 +875,8 @@ def test_execute_sql_non_select_stmt_write_protected_persistent_target( """Test execute_sql tool for non-SELECT query when writes are protected. This is a special case when the destination table is a persistent/permananent - one and the protected write is enabled. In this case the operation should fail. + one and the protected write is enabled. In this case the operation should + fail. """ project = "my_project" query_result = [] @@ -1272,3 +1274,130 @@ def test_forecast_with_invalid_id_cols(): assert result["status"] == "ERROR" assert "All elements in id_cols must be strings." in result["error_details"] + + +# analyze_contribution calls execute_sql twice. We need to test that the +# queries are properly constructed and call execute_sql with the correct +# parameters exactly twice. +@mock.patch("google.adk.tools.bigquery.query_tool.execute_sql", autospec=True) +@mock.patch("uuid.uuid4", autospec=True) +def test_analyze_contribution_with_table_id(mock_uuid, mock_execute_sql): + """Test analyze_contribution tool invocation with a table id.""" + mock_credentials = mock.MagicMock(spec=Credentials) + mock_settings = BigQueryToolConfig(write_mode=WriteMode.PROTECTED) + mock_tool_context = mock.create_autospec(ToolContext, instance=True) + mock_uuid.return_value = "test_uuid" + mock_execute_sql.return_value = {"status": "SUCCESS"} + + analyze_contribution( + project_id="test-project", + input_data="test-dataset.test-table", + dimension_id_cols=["dim1", "dim2"], + contribution_metric="SUM(metric)", + is_test_col="is_test", + credentials=mock_credentials, + settings=mock_settings, + tool_context=mock_tool_context, + ) + + expected_create_model_query = """ + CREATE TEMP MODEL contribution_analysis_model_test_uuid + OPTIONS (MODEL_TYPE = 'CONTRIBUTION_ANALYSIS', CONTRIBUTION_METRIC = 'SUM(metric)', IS_TEST_COL = 'is_test', DIMENSION_ID_COLS = ['dim1', 'dim2'], TOP_K_INSIGHTS_BY_APRIORI_SUPPORT = 30, PRUNING_METHOD = 'PRUNE_REDUNDANT_INSIGHTS') + AS SELECT * FROM `test-dataset.test-table` + """ + + expected_get_insights_query = """ + SELECT * FROM ML.GET_INSIGHTS(MODEL contribution_analysis_model_test_uuid) + """ + + assert mock_execute_sql.call_count == 2 + mock_execute_sql.assert_any_call( + "test-project", + expected_create_model_query, + mock_credentials, + mock_settings, + mock_tool_context, + ) + mock_execute_sql.assert_any_call( + "test-project", + expected_get_insights_query, + mock_credentials, + mock_settings, + mock_tool_context, + ) + + +# analyze_contribution calls execute_sql twice. We need to test that the +# queries are properly constructed and call execute_sql with the correct +# parameters exactly twice. +@mock.patch("google.adk.tools.bigquery.query_tool.execute_sql", autospec=True) +@mock.patch("uuid.uuid4", autospec=True) +def test_analyze_contribution_with_query_statement(mock_uuid, mock_execute_sql): + """Test analyze_contribution tool invocation with a query statement.""" + mock_credentials = mock.MagicMock(spec=Credentials) + mock_settings = BigQueryToolConfig(write_mode=WriteMode.PROTECTED) + mock_tool_context = mock.create_autospec(ToolContext, instance=True) + mock_uuid.return_value = "test_uuid" + mock_execute_sql.return_value = {"status": "SUCCESS"} + + input_data_query = "SELECT * FROM `test-dataset.test-table`" + analyze_contribution( + project_id="test-project", + input_data=input_data_query, + dimension_id_cols=["dim1", "dim2"], + contribution_metric="SUM(metric)", + is_test_col="is_test", + credentials=mock_credentials, + settings=mock_settings, + tool_context=mock_tool_context, + ) + + expected_create_model_query = f""" + CREATE TEMP MODEL contribution_analysis_model_test_uuid + OPTIONS (MODEL_TYPE = 'CONTRIBUTION_ANALYSIS', CONTRIBUTION_METRIC = 'SUM(metric)', IS_TEST_COL = 'is_test', DIMENSION_ID_COLS = ['dim1', 'dim2'], TOP_K_INSIGHTS_BY_APRIORI_SUPPORT = 30, PRUNING_METHOD = 'PRUNE_REDUNDANT_INSIGHTS') + AS ({input_data_query}) + """ + + expected_get_insights_query = """ + SELECT * FROM ML.GET_INSIGHTS(MODEL contribution_analysis_model_test_uuid) + """ + + assert mock_execute_sql.call_count == 2 + mock_execute_sql.assert_any_call( + "test-project", + expected_create_model_query, + mock_credentials, + mock_settings, + mock_tool_context, + ) + mock_execute_sql.assert_any_call( + "test-project", + expected_get_insights_query, + mock_credentials, + mock_settings, + mock_tool_context, + ) + + +def test_analyze_contribution_with_invalid_dimension_id_cols(): + """Test analyze_contribution tool invocation with invalid dimension_id_cols.""" + mock_credentials = mock.MagicMock(spec=Credentials) + mock_settings = BigQueryToolConfig() + mock_tool_context = mock.create_autospec(ToolContext, instance=True) + + result = analyze_contribution( + project_id="test-project", + input_data="test-dataset.test-table", + dimension_id_cols=["dim1", 123], + contribution_metric="metric", + is_test_col="is_test", + credentials=mock_credentials, + settings=mock_settings, + tool_context=mock_tool_context, + ) + + assert result["status"] == "ERROR" + assert ( + "All elements in dimension_id_cols must be strings." + in result["error_details"] + ) diff --git a/tests/unittests/tools/bigquery/test_bigquery_toolset.py b/tests/unittests/tools/bigquery/test_bigquery_toolset.py index 74e913f587..9a65018392 100644 --- a/tests/unittests/tools/bigquery/test_bigquery_toolset.py +++ b/tests/unittests/tools/bigquery/test_bigquery_toolset.py @@ -41,7 +41,7 @@ async def test_bigquery_toolset_tools_default(): tools = await toolset.get_tools() assert tools is not None - assert len(tools) == 7 + assert len(tools) == 8 assert all([isinstance(tool, GoogleTool) for tool in tools]) expected_tool_names = set([ @@ -52,6 +52,7 @@ async def test_bigquery_toolset_tools_default(): "execute_sql", "ask_data_insights", "forecast", + "analyze_contribution", ]) actual_tool_names = set([tool.name for tool in tools]) assert actual_tool_names == expected_tool_names From 90e1e3e10c64c0d7b44a32b76c8b5d8d5af81d45 Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Mon, 6 Oct 2025 13:33:32 -0700 Subject: [PATCH 033/303] chore: Add sample agent for testing oatuh2 client credentials grant type PiperOrigin-RevId: 815863131 --- .../oauth2_client_credentials/README.md | 143 +++++++ .../oauth2_client_credentials/__init__.py | 15 + .../oauth2_client_credentials/agent.py | 134 +++++++ .../samples/oauth2_client_credentials/main.py | 152 ++++++++ .../oauth2_test_server.py | 350 ++++++++++++++++++ 5 files changed, 794 insertions(+) create mode 100644 contributing/samples/oauth2_client_credentials/README.md create mode 100644 contributing/samples/oauth2_client_credentials/__init__.py create mode 100644 contributing/samples/oauth2_client_credentials/agent.py create mode 100644 contributing/samples/oauth2_client_credentials/main.py create mode 100644 contributing/samples/oauth2_client_credentials/oauth2_test_server.py diff --git a/contributing/samples/oauth2_client_credentials/README.md b/contributing/samples/oauth2_client_credentials/README.md new file mode 100644 index 0000000000..e7d2139542 --- /dev/null +++ b/contributing/samples/oauth2_client_credentials/README.md @@ -0,0 +1,143 @@ +# OAuth2 Client Credentials Weather Agent + +This sample demonstrates OAuth2 client credentials flow with ADK's `AuthenticatedFunctionTool` using a practical weather assistant agent. + +## Overview + +The OAuth2 client credentials grant type is used for server-to-server authentication where no user interaction is required. This demo shows: + +- How to configure OAuth2 client credentials in ADK +- Using `AuthenticatedFunctionTool` for automatic token management +- Transparent authentication in a practical weather assistant +- Testing the OAuth2 client credentials implementation + +## Architecture + +``` +[WeatherAssistant] -> [AuthenticatedFunctionTool] -> [OAuth2CredentialExchanger] -> [OAuth2 Server] -> [Weather API] +``` + +1. **WeatherAssistant** calls weather tool when user asks for weather data +2. **AuthenticatedFunctionTool** automatically handles OAuth2 flow +3. **OAuth2CredentialExchanger** exchanges client credentials for access token +4. **Authenticated requests** are made to weather API + +## Files + +### `agent.py` - WeatherAssistant Agent + +Weather assistant agent that demonstrates OAuth2 client credentials flow transparently: + +- **OAuth2 Configuration**: Client credentials setup with token URL and scopes +- **Weather Tool**: Single `get_weather_data` tool for fetching weather information +- **Agent Definition**: ADK LLM agent focused on providing weather information + +**Key Features:** +- Automatic token exchange using client ID and secret +- Bearer token authentication +- Transparent OAuth2 handling (invisible to the model) +- Practical use case demonstrating machine-to-machine authentication + +### `main.py` - CLI Interface + +Command-line interface for running the WeatherAssistant agent: + +```bash +# Ask for weather +python contributing/samples/oauth2_client_credentials/main.py "What's the weather in Tokyo?" +``` + +**Requirements:** +- LLM API key (Google AI or Vertex AI) +- OAuth2 test server running + +### `oauth2_test_server.py` - Local OAuth2 Server + +Mock OAuth2 server for testing the client credentials flow: + +```bash +python contributing/samples/oauth2_client_credentials/oauth2_test_server.py +``` + +**Features:** +- OIDC discovery endpoint (`/.well-known/openid_configuration`) +- Client credentials token exchange (`/token`) +- Protected weather API (`/api/weather`) +- Supports both `authorization_code` and `client_credentials` grant types +- Test credentials: `client_id="test_client"`, `client_secret="test_secret"` + +**Endpoints:** +- `GET /.well-known/openid_configuration` - OIDC discovery +- `POST /token` - Token exchange +- `GET /api/weather` - Weather API (requires Bearer token) +- `GET /` - Server info + +## Quick Start + +1. **Start the OAuth2 server:** + ```bash + python contributing/samples/oauth2_client_credentials/oauth2_test_server.py & + ``` +2. Create a `.env` file in the project root with your API credentials: + +```bash +# Choose Model Backend: 0 -> ML Dev, 1 -> Vertex +GOOGLE_GENAI_USE_VERTEXAI=1 + +# ML Dev backend config +GOOGLE_API_KEY=your_google_api_key_here + +# Vertex backend config +GOOGLE_CLOUD_PROJECT=your_project_id +GOOGLE_CLOUD_LOCATION=us-central1 +``` + +3. **Run the agent:** + ```bash + # Ask for weather + python contributing/samples/oauth2_client_credentials/main.py "What's the weather in Tokyo?" + ``` + +3. **Interactive demo (use ADK commands):** + ```bash + # Interactive CLI + adk run contributing/samples/oauth2_client_credentials + + # Interactive web UI + adk web contributing/samples + ``` + +## OAuth2 Configuration + +The agent uses these OAuth2 settings (configured in `agent.py`): + +```python +flows = OAuthFlows( + clientCredentials=OAuthFlowClientCredentials( + tokenUrl="http://localhost:8000/token", + scopes={ + "read": "Read access to weather data", + "write": "Write access for data updates", + "admin": "Administrative access", + }, + ) +) + +raw_credential = AuthCredential( + auth_type=AuthCredentialTypes.OAUTH2, + oauth2=OAuth2Auth( + client_id="test_client", + client_secret="test_secret", + ), +) +``` + +## Authentication Flow + +1. **Weather Request**: User asks WeatherAssistant for weather information +2. **Tool Invocation**: Agent calls `get_weather_data` authenticated function tool +3. **Credential Loading**: CredentialManager loads OAuth2 configuration +4. **Token Exchange**: OAuth2CredentialExchanger uses client credentials to get access token +5. **Request Enhancement**: AuthenticatedFunctionTool adds `Authorization: Bearer ` header +6. **API Call**: Weather API accessed with valid token +7. **Response**: Weather data returned to user diff --git a/contributing/samples/oauth2_client_credentials/__init__.py b/contributing/samples/oauth2_client_credentials/__init__.py new file mode 100644 index 0000000000..c48963cdc7 --- /dev/null +++ b/contributing/samples/oauth2_client_credentials/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/oauth2_client_credentials/agent.py b/contributing/samples/oauth2_client_credentials/agent.py new file mode 100644 index 0000000000..f0806784a9 --- /dev/null +++ b/contributing/samples/oauth2_client_credentials/agent.py @@ -0,0 +1,134 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Weather Assistant Agent. + +This agent provides weather information for cities worldwide. +It demonstrates OAuth2 client credentials flow transparently +through AuthenticatedFunctionTool usage. +""" + +from fastapi.openapi.models import OAuth2 +from fastapi.openapi.models import OAuthFlowClientCredentials +from fastapi.openapi.models import OAuthFlows +from google.adk.agents.llm_agent import Agent +from google.adk.auth.auth_credential import AuthCredential +from google.adk.auth.auth_credential import AuthCredentialTypes +from google.adk.auth.auth_credential import OAuth2Auth +from google.adk.auth.auth_tool import AuthConfig +from google.adk.tools.authenticated_function_tool import AuthenticatedFunctionTool +import requests + + +# OAuth2 configuration for weather API access +def create_auth_config() -> AuthConfig: + """Create OAuth2 auth configuration for weather API.""" + + # Define OAuth2 scheme with client credentials flow + flows = OAuthFlows( + clientCredentials=OAuthFlowClientCredentials( + tokenUrl="http://localhost:8080/token", + scopes={ + "read": "Read access to weather data", + "write": "Write access for data updates", + "admin": "Administrative access", + }, + ) + ) + auth_scheme = OAuth2(flows=flows) + + # Create credential with client ID and secret + raw_credential = AuthCredential( + auth_type=AuthCredentialTypes.OAUTH2, + oauth2=OAuth2Auth( + client_id="test_client", + client_secret="test_secret", + ), + ) + + return AuthConfig( + auth_scheme=auth_scheme, + raw_auth_credential=raw_credential, + credential_key="weather_api_client", + ) + + +def get_weather_data(city: str = "San Francisco", credential=None) -> str: + """Get current weather data for a specified city. + + Args: + city: City name to get weather for + credential: API credential (automatically injected by AuthenticatedFunctionTool) + + Returns: + Current weather information for the city. + """ + + try: + # Use the credential to make authenticated requests to weather API + headers = {} + if credential and credential.oauth2 and credential.oauth2.access_token: + headers["Authorization"] = f"Bearer {credential.oauth2.access_token}" + + # Call weather API endpoint + params = {"city": city, "units": "metric"} + response = requests.get( + "http://localhost:8080/api/weather", + headers=headers, + params=params, + timeout=10, + ) + + if response.status_code == 200: + data = response.json() + result = f"🌤️ Weather for {city}:\n" + result += f"Temperature: {data.get('temperature', 'N/A')}°C\n" + result += f"Condition: {data.get('condition', 'N/A')}\n" + result += f"Humidity: {data.get('humidity', 'N/A')}%\n" + result += f"Wind Speed: {data.get('wind_speed', 'N/A')} km/h\n" + result += f"Last Updated: {data.get('timestamp', 'N/A')}\n" + return result + else: + return ( + f"❌ Failed to get weather data: {response.status_code} -" + f" {response.text}" + ) + + except Exception as e: + return f"❌ Error getting weather data: {str(e)}" + + +# Create the weather assistant agent +root_agent = Agent( + name="WeatherAssistant", + description=( + "Weather assistant that provides current weather information for cities" + " worldwide." + ), + model="gemini-2.5-pro", + instruction=( + "You are a helpful Weather Assistant that provides current weather" + " information for any city worldwide.\n\nWhen users ask for weather:\n•" + " Ask for the city name if not provided\n• Provide temperature in" + " Celsius\n• Include helpful details like humidity, wind speed, and" + " conditions\n• Be friendly and conversational about the weather\n\nIf" + " there are any issues getting weather data, apologize and suggest" + " trying again or checking for a different city name." + ), + tools=[ + AuthenticatedFunctionTool( + func=get_weather_data, auth_config=create_auth_config() + ), + ], +) diff --git a/contributing/samples/oauth2_client_credentials/main.py b/contributing/samples/oauth2_client_credentials/main.py new file mode 100644 index 0000000000..ede4b1c735 --- /dev/null +++ b/contributing/samples/oauth2_client_credentials/main.py @@ -0,0 +1,152 @@ +"""WeatherAssistant Agent main script. + +This script demonstrates OAuth2 client credentials flow using a practical +weather assistant agent with AuthenticatedFunctionTool. +""" + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse +import asyncio +import logging +import sys +import time + +import agent +from dotenv import load_dotenv +from google.adk.cli.utils import logs +from google.adk.runners import InMemoryRunner + +APP_NAME = "weather_assistant_app" +USER_ID = "weather_user" + +logs.setup_adk_logger(level=logging.INFO) + + +def process_arguments(): + """Parses command-line arguments.""" + parser = argparse.ArgumentParser( + description=( + "WeatherAssistant Agent - demonstrates OAuth2 client credentials" + " authentication transparently through weather queries." + ), + epilog=( + "Example usage:\n\tpython main.py" + ' "What\'s the weather in Tokyo?"\n\n' + "For interactive usage, use ADK commands:\n" + "\tadk run .\n" + "\tadk web .\n" + ), + formatter_class=argparse.RawTextHelpFormatter, + ) + + parser.add_argument( + "message", + type=str, + help=( + "Ask the weather assistant a question or request weather information." + ), + ) + + return parser.parse_args() + + +async def process_message(runner, session_id, message): + """Process a single message with the weather assistant.""" + print(f"🌤️ Weather Assistant: ") + + response = await call_agent_async(runner, USER_ID, session_id, message) + print(f"{response}\n") + + +async def call_agent_async(runner, user_id, session_id, prompt): + """Helper function to call agent asynchronously.""" + from google.adk.agents.run_config import RunConfig + from google.genai import types + + content = types.Content( + role="user", parts=[types.Part.from_text(text=prompt)] + ) + final_response_text = "" + + async for event in runner.run_async( + user_id=user_id, + session_id=session_id, + new_message=content, + run_config=RunConfig(save_input_blobs_as_artifacts=False), + ): + if event.content and event.content.parts: + if text := "".join(part.text or "" for part in event.content.parts): + if event.author != "user": + final_response_text += text + + return final_response_text + + +async def main(): + """Main function.""" + # Load environment variables from .env file + load_dotenv() + + args = process_arguments() + + print("🌤️ WeatherAssistant Agent") + print("=" * 40) + print("Ask me about weather in any city around the world!") + print("(OAuth2 client credentials authentication happens transparently)\n") + + # Create runner and session + runner = InMemoryRunner( + agent=agent.root_agent, + app_name=APP_NAME, + ) + + session = await runner.session_service.create_session( + app_name=APP_NAME, user_id=USER_ID + ) + + try: + await process_message(runner, session.id, args.message) + + except Exception as e: + print(f"❌ Error: {e}", file=sys.stderr) + return 1 + + return 0 + + +if __name__ == "__main__": + start_time = time.time() + print( + "⏰ Started at" + f" {time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(start_time))}" + ) + print("-" * 50) + + try: + exit_code = asyncio.run(main()) + except KeyboardInterrupt: + print("\n⏹️ Interrupted by user") + exit_code = 1 + + end_time = time.time() + print("-" * 50) + print( + "⏰ Finished at" + f" {time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(end_time))}" + ) + print(f"⌛ Total execution time: {end_time - start_time:.2f} seconds") + + sys.exit(exit_code) diff --git a/contributing/samples/oauth2_client_credentials/oauth2_test_server.py b/contributing/samples/oauth2_client_credentials/oauth2_test_server.py new file mode 100644 index 0000000000..ee569830a6 --- /dev/null +++ b/contributing/samples/oauth2_client_credentials/oauth2_test_server.py @@ -0,0 +1,350 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" +Weather API OAuth2 Test Server + +A simple FastAPI server that implements OAuth2 flows for weather API testing: +- Client Credentials Flow +- Authorization Code Flow + +Usage: + python oauth2_test_server.py + +Endpoints: + GET /auth - Authorization endpoint (auth code flow) + POST /token - Token endpoint (both flows) + GET /.well-known/openid_configuration - OpenID Connect discovery + GET /api/weather - Weather API (requires Bearer token) +""" + +import secrets +import time +from typing import Dict +from typing import Optional + +from fastapi import FastAPI +from fastapi import Form +from fastapi import HTTPException +from fastapi import Query +from fastapi import Request +from fastapi import status +from fastapi.responses import HTMLResponse +from fastapi.responses import RedirectResponse +from pydantic import BaseModel + +app = FastAPI(title="Weather API OAuth2 Server", version="1.0.0") + +# In-memory storage (for testing only) +clients = { + "test_client": { + "client_secret": "test_secret", + "redirect_uris": [ + "http://localhost:8080/callback", + "urn:ietf:wg:oauth:2.0:oob", + ], + "scopes": ["read", "write", "admin"], + } +} + +authorization_codes = {} # code -> {client_id, redirect_uri, scope, expires_at} +access_tokens = {} # token -> {client_id, scope, expires_at, token_type} + + +class TokenResponse(BaseModel): + access_token: str + token_type: str = "Bearer" + expires_in: int = 3600 + refresh_token: Optional[str] = None + scope: Optional[str] = None + + +@app.get("/.well-known/openid_configuration") +async def openid_configuration(): + """OpenID Connect Discovery endpoint.""" + return { + "issuer": "http://localhost:8080", + "authorization_endpoint": "http://localhost:8080/auth", + "token_endpoint": "http://localhost:8080/token", + "userinfo_endpoint": "http://localhost:8080/userinfo", + "revocation_endpoint": "http://localhost:8080/revoke", + "scopes_supported": ["openid", "read", "write", "admin"], + "response_types_supported": ["code"], + "grant_types_supported": ["authorization_code", "client_credentials"], + "token_endpoint_auth_methods_supported": [ + "client_secret_basic", + "client_secret_post", + ], + "subject_types_supported": ["public"], + } + + +@app.get("/auth") +async def authorize( + response_type: str = Query(...), + client_id: str = Query(...), + redirect_uri: str = Query(...), + scope: str = Query(default="read"), + state: str = Query(default=""), +): + """Authorization endpoint for OAuth2 authorization code flow.""" + + # Validate client + if client_id not in clients: + raise HTTPException(status_code=400, detail="Invalid client_id") + + client = clients[client_id] + if redirect_uri not in client["redirect_uris"]: + raise HTTPException(status_code=400, detail="Invalid redirect_uri") + + if response_type != "code": + raise HTTPException(status_code=400, detail="Unsupported response_type") + + # Generate authorization code + auth_code = secrets.token_urlsafe(32) + authorization_codes[auth_code] = { + "client_id": client_id, + "redirect_uri": redirect_uri, + "scope": scope, + "expires_at": time.time() + 600, # 10 minutes + } + + # Simulate user consent - in real implementation, this would show a consent form + params = f"code={auth_code}" + if state: + params += f"&state={state}" + + return RedirectResponse(url=f"{redirect_uri}?{params}") + + +@app.post("/token") +async def token_endpoint( + request: Request, + grant_type: str = Form(...), + client_id: str = Form(default=None), + client_secret: str = Form(default=None), + code: str = Form(default=None), + redirect_uri: str = Form(default=None), + scope: str = Form(default="read"), +): + """Token endpoint for both client credentials and authorization code flows.""" + + # Support both HTTP Basic auth and form-based client authentication + auth_header = request.headers.get("Authorization") + + if auth_header and auth_header.startswith("Basic "): + # HTTP Basic authentication + import base64 + + try: + encoded_credentials = auth_header[6:] # Remove "Basic " prefix + decoded = base64.b64decode(encoded_credentials).decode("utf-8") + basic_client_id, basic_client_secret = decoded.split(":", 1) + client_id = client_id or basic_client_id + client_secret = client_secret or basic_client_secret + except Exception: + raise HTTPException( + status_code=401, detail="Invalid authorization header" + ) + + if not client_id or not client_secret: + raise HTTPException(status_code=400, detail="Client credentials required") + + # Validate client credentials + if client_id not in clients: + raise HTTPException(status_code=401, detail="Invalid client") + + client = clients[client_id] + if client["client_secret"] != client_secret: + raise HTTPException(status_code=401, detail="Invalid client credentials") + + if grant_type == "client_credentials": + return await handle_client_credentials(client_id, scope) + elif grant_type == "authorization_code": + return await handle_authorization_code(client_id, code, redirect_uri, scope) + else: + raise HTTPException(status_code=400, detail="Unsupported grant_type") + + +async def handle_client_credentials( + client_id: str, scope: str +) -> TokenResponse: + """Handle client credentials flow.""" + + # Generate access token + access_token = secrets.token_urlsafe(32) + expires_at = time.time() + 3600 # 1 hour + + # Store token + access_tokens[access_token] = { + "client_id": client_id, + "scope": scope, + "expires_at": expires_at, + "token_type": "Bearer", + } + + return TokenResponse( + access_token=access_token, + token_type="Bearer", + expires_in=3600, + scope=scope, + ) + + +async def handle_authorization_code( + client_id: str, code: str, redirect_uri: str, scope: str +) -> TokenResponse: + """Handle authorization code flow.""" + + if not code: + raise HTTPException(status_code=400, detail="Missing authorization code") + + if code not in authorization_codes: + raise HTTPException(status_code=400, detail="Invalid authorization code") + + auth_data = authorization_codes[code] + + # Validate authorization code + if time.time() > auth_data["expires_at"]: + del authorization_codes[code] + raise HTTPException(status_code=400, detail="Authorization code expired") + + if auth_data["client_id"] != client_id: + raise HTTPException(status_code=400, detail="Client mismatch") + + if redirect_uri and auth_data["redirect_uri"] != redirect_uri: + raise HTTPException(status_code=400, detail="Redirect URI mismatch") + + # Generate tokens + access_token = secrets.token_urlsafe(32) + refresh_token = secrets.token_urlsafe(32) + expires_at = time.time() + 3600 # 1 hour + + # Store token + access_tokens[access_token] = { + "client_id": client_id, + "scope": auth_data["scope"], + "expires_at": expires_at, + "token_type": "Bearer", + } + + # Clean up authorization code (one-time use) + del authorization_codes[code] + + return TokenResponse( + access_token=access_token, + token_type="Bearer", + expires_in=3600, + refresh_token=refresh_token, + scope=auth_data["scope"], + ) + + +@app.get("/api/weather") +async def get_weather( + request: Request, city: str = "San Francisco", units: str = "metric" +): + """Weather API endpoint that returns weather data for a city.""" + + # Check authentication + auth_header = request.headers.get("Authorization") + if not auth_header or not auth_header.startswith("Bearer "): + raise HTTPException( + status_code=401, detail="Missing or invalid authorization header" + ) + + token = auth_header[7:] # Remove "Bearer " prefix + + if token not in access_tokens: + raise HTTPException(status_code=401, detail="Invalid access token") + + token_data = access_tokens[token] + + if time.time() > token_data["expires_at"]: + del access_tokens[token] + raise HTTPException(status_code=401, detail="Access token expired") + + # Return weather data (simulated) + from datetime import datetime + import random + + conditions = ["Sunny", "Partly Cloudy", "Cloudy", "Light Rain", "Clear"] + + weather_data = { + "city": city, + "temperature": random.randint(15, 30), + "condition": random.choice(conditions), + "humidity": random.randint(40, 80), + "wind_speed": random.randint(5, 25), + "timestamp": datetime.now().isoformat(), + "units": units, + "api_client": token_data["client_id"], + } + + return weather_data + + +@app.get("/") +async def root(): + """Root endpoint with server information.""" + return HTMLResponse(""" + + Weather API OAuth2 Server + +

Weather API OAuth2 Server

+

Available Endpoints:

+
    +
  • GET /auth - Authorization endpoint
  • +
  • POST /token - Token endpoint
  • +
  • GET /.well-known/openid_configuration - Discovery
  • +
  • GET /api/weather - Weather API (requires Bearer token)
  • +
+ +

Test Client Credentials:

+
    +
  • Client ID: test_client
  • +
  • Client Secret: test_secret
  • +
  • Scopes: read, write, admin
  • +
+ +

Example cURL Commands:

+

Client Credentials Flow:

+
+curl -X POST http://localhost:8080/token \\
+  -d "grant_type=client_credentials" \\
+  -d "client_id=test_client" \\
+  -d "client_secret=test_secret" \\
+  -d "scope=read write"
+            
+ +

Test Weather API:

+
+curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \\
+  "http://localhost:8080/api/weather?city=Tokyo"
+            
+ + + """) + + +if __name__ == "__main__": + import uvicorn + + print("🌤️ Starting Weather API OAuth2 Server...") + print("📖 Documentation: http://localhost:8080/docs") + print("🏠 Server Info: http://localhost:8080") + print( + '🔧 Test with: curl -H "Authorization: Bearer TOKEN"' + ' "http://localhost:8080/api/weather?city=Tokyo"' + ) + uvicorn.run(app, host="0.0.0.0", port=8080, log_level="info") From 68402bda49083f2d56f8e8488fe13aa58b3bc18c Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Mon, 6 Oct 2025 17:36:33 -0700 Subject: [PATCH 034/303] fix: Set default response modality to AUDIO in run_session Some native audio models require the modality to be set, so we default to AUDIO if not specified in `RunConfig`. PiperOrigin-RevId: 815952039 --- src/google/adk/runners.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/google/adk/runners.py b/src/google/adk/runners.py index c78961bd2c..e6ddf09a6d 100644 --- a/src/google/adk/runners.py +++ b/src/google/adk/runners.py @@ -617,6 +617,10 @@ async def run_live( Either `session` or both `user_id` and `session_id` must be provided. """ run_config = run_config or RunConfig() + # Some native audio models requires the modality to be set. So we set it to + # AUDIO by default. + if run_config.response_modalities is None: + run_config.response_modalities = ['AUDIO'] if session is None and (user_id is None or session_id is None): raise ValueError( 'Either session or user_id and session_id must be provided.' From f1abdb1938e474564a3a76279a1a0a511f74a750 Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Mon, 6 Oct 2025 18:53:45 -0700 Subject: [PATCH 035/303] fix: Rename SlidingWindowCompactor to LlmEventSummarizer and refine its docstring The class is now named `LlmEventSummarizer` to better reflect that its primary function is to use an LLM to summarize events. The docstring has been updated to clarify that this class is responsible *only* for the LLM-based summarization of a given set of events, while the logic for determining *when* and *which* events form the sliding window is handled by an external component, such as an ADK Runner. PiperOrigin-RevId: 815976264 --- ...w_compactor.py => llm_event_summarizer.py} | 44 ++++++++----------- src/google/adk/runners.py | 1 - tests/unittests/apps/test_compaction.py | 4 +- ...pactor.py => test_llm_event_summarizer.py} | 6 +-- 4 files changed, 23 insertions(+), 32 deletions(-) rename src/google/adk/apps/{sliding_window_compactor.py => llm_event_summarizer.py} (74%) rename tests/unittests/apps/{test_sliding_window_compactor.py => test_llm_event_summarizer.py} (96%) diff --git a/src/google/adk/apps/sliding_window_compactor.py b/src/google/adk/apps/llm_event_summarizer.py similarity index 74% rename from src/google/adk/apps/sliding_window_compactor.py rename to src/google/adk/apps/llm_event_summarizer.py index 2385d9c156..ad86d89160 100644 --- a/src/google/adk/apps/sliding_window_compactor.py +++ b/src/google/adk/apps/llm_event_summarizer.py @@ -27,31 +27,23 @@ from .base_events_compactor import BaseEventsCompactor -class SlidingWindowCompactor(BaseEventsCompactor): - """A summarizer for Sliding Window Compaction logic in Runner. - - This compactor works with ADK runner to provide sliding window compaction. - The runner uses `compaction_invocation_threshold` and `overlap_size` - configured in `EventsCompactionConfig` on the `App` to determine when to - trigger compaction and which events to compact. This class performs - summarization of events passed by the runner. - - The compaction process is controlled by two parameters read by the Runner from - `EventsCompactionConfig`: - 1. `compaction_invocation_threshold`: The number of *new* user-initiated - invocations that, once fully - represented in the session's events, will trigger a compaction. - 2. `overlap_size`: The number of preceding invocations to include from the - end of the last - compacted range. This creates an overlap between consecutive compacted - summaries, - maintaining context. - - When `Runner` determines compaction is needed based on - `compaction_invocation_threshold`, - it selects a range of events based on `overlap_size` and passes them to - `maybe_compact_events` for summarization into a `CompactedEvent`. - This `CompactedEvent` is then appended to the session by the `Runner`. +class LlmEventSummarizer(BaseEventsCompactor): + """An LLM-based event summarizer for sliding window compaction. + + This class is responsible for summarizing a provided list of events into a + single compacted event. It is designed to be used as part of a sliding window + compaction process. + + The actual logic for determining *when* to trigger compaction and *which* + events form the sliding window (based on parameters like + `compaction_invocation_threshold` and `overlap_size` from + `EventsCompactionConfig`) is handled by an external component, such as an ADK + "Runner". This compactor focuses solely on generating a summary of the events + it receives. + + When `maybe_compact_events` is called with a list of events, this class + formats the events, generates a summary using an LLM, and returns a new + `Event` containing the summary within an `EventCompaction`. """ _DEFAULT_PROMPT_TEMPLATE = ( @@ -68,7 +60,7 @@ def __init__( llm: BaseLlm, prompt_template: Optional[str] = None, ): - """Initializes the SlidingWindowCompactor. + """Initializes the LlmEventSummarizer. Args: llm: The LLM used for summarization. diff --git a/src/google/adk/runners.py b/src/google/adk/runners.py index e6ddf09a6d..74d25992a3 100644 --- a/src/google/adk/runners.py +++ b/src/google/adk/runners.py @@ -28,7 +28,6 @@ import warnings from google.adk.apps.compaction import _run_compaction_for_sliding_window -from google.adk.apps.sliding_window_compactor import SlidingWindowCompactor from google.genai import types from .agents.active_streaming_tool import ActiveStreamingTool diff --git a/tests/unittests/apps/test_compaction.py b/tests/unittests/apps/test_compaction.py index 316290b06f..c0a427ab26 100644 --- a/tests/unittests/apps/test_compaction.py +++ b/tests/unittests/apps/test_compaction.py @@ -20,7 +20,7 @@ from google.adk.apps.app import App from google.adk.apps.app import EventsCompactionConfig from google.adk.apps.compaction import _run_compaction_for_sliding_window -from google.adk.apps.sliding_window_compactor import SlidingWindowCompactor +from google.adk.apps.llm_event_summarizer import LlmEventSummarizer from google.adk.events.event import Event from google.adk.events.event_actions import EventActions from google.adk.events.event_actions import EventCompaction @@ -38,7 +38,7 @@ class TestCompaction(unittest.IsolatedAsyncioTestCase): def setUp(self): self.mock_session_service = AsyncMock(spec=BaseSessionService) - self.mock_compactor = AsyncMock(spec=SlidingWindowCompactor) + self.mock_compactor = AsyncMock(spec=LlmEventSummarizer) def _create_event( self, timestamp: float, invocation_id: str, text: str diff --git a/tests/unittests/apps/test_sliding_window_compactor.py b/tests/unittests/apps/test_llm_event_summarizer.py similarity index 96% rename from tests/unittests/apps/test_sliding_window_compactor.py rename to tests/unittests/apps/test_llm_event_summarizer.py index edc3ed2136..af190128f2 100644 --- a/tests/unittests/apps/test_sliding_window_compactor.py +++ b/tests/unittests/apps/test_llm_event_summarizer.py @@ -16,7 +16,7 @@ from unittest.mock import AsyncMock from unittest.mock import Mock -from google.adk.apps.sliding_window_compactor import SlidingWindowCompactor +from google.adk.apps.llm_event_summarizer import LlmEventSummarizer from google.adk.events.event import Event from google.adk.events.event_actions import EventActions from google.adk.events.event_actions import EventCompaction @@ -32,12 +32,12 @@ @pytest.mark.parametrize( 'env_variables', ['GOOGLE_AI', 'VERTEX'], indirect=True ) -class TestSlidingWindowCompactor(unittest.IsolatedAsyncioTestCase): +class TestLlmEventSummarizer(unittest.IsolatedAsyncioTestCase): def setUp(self): self.mock_llm = AsyncMock(spec=BaseLlm) self.mock_llm.model = 'test-model' - self.compactor = SlidingWindowCompactor(llm=self.mock_llm) + self.compactor = LlmEventSummarizer(llm=self.mock_llm) def _create_event( self, timestamp: float, text: str, author: str = 'user' From 238472d083b5aa67551bde733fc47826ff062679 Mon Sep 17 00:00:00 2001 From: Bo Yang Date: Mon, 6 Oct 2025 21:34:08 -0700 Subject: [PATCH 036/303] fix: Updates the load_artifacts tool so that the model can reliability call it for follow up questions about the same artifact PiperOrigin-RevId: 816025399 --- src/google/adk/tools/load_artifacts_tool.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/google/adk/tools/load_artifacts_tool.py b/src/google/adk/tools/load_artifacts_tool.py index d97eb2a2af..09a1429294 100644 --- a/src/google/adk/tools/load_artifacts_tool.py +++ b/src/google/adk/tools/load_artifacts_tool.py @@ -62,7 +62,13 @@ async def run_async( self, *, args: dict[str, Any], tool_context: ToolContext ) -> Any: artifact_names: list[str] = args.get('artifact_names', []) - return {'artifact_names': artifact_names} + return { + 'artifact_names': artifact_names, + 'status': ( + 'artifact contents temporarily inserted and removed. to access' + ' these artifacts, call load_artifacts tool again.' + ), + } @override async def process_llm_request( @@ -88,8 +94,10 @@ async def _append_artifacts_to_llm_request( {json.dumps(artifact_names)} When the user asks questions about any of the artifacts, you should call the - `load_artifacts` function to load the artifact. Do not generate any text other - than the function call. + `load_artifacts` function to load the artifact. Always call load_artifacts + before answering questions related to the artifacts, regardless of whether the + artifacts have been loaded before. Do not depend on prior answers about the + artifacts. """]) # Attach the content of the artifacts if the model requests them. From 3f4bd67b49cd60e6a2e43ccd5192efe450a6e009 Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Mon, 6 Oct 2025 22:20:17 -0700 Subject: [PATCH 037/303] fix: Make compactor optional in EventsCompactionConfig and add a default If `EventsCompactionConfig` is provided without a `compactor`, a `SlidingWindowCompactor` is now automatically instantiated using the `root_agent`'s LLM. This simplifies configuration by providing a sensible default. PiperOrigin-RevId: 816038579 --- src/google/adk/apps/app.py | 8 ++++-- ...compactor.py => base_events_summarizer.py} | 4 +-- src/google/adk/apps/compaction.py | 8 +++++- src/google/adk/apps/llm_event_summarizer.py | 6 ++-- tests/unittests/apps/test_compaction.py | 28 +++++++++++-------- .../apps/test_llm_event_summarizer.py | 6 ++-- 6 files changed, 36 insertions(+), 24 deletions(-) rename src/google/adk/apps/{base_events_compactor.py => base_events_summarizer.py} (94%) diff --git a/src/google/adk/apps/app.py b/src/google/adk/apps/app.py index 50faab6292..0447a543a5 100644 --- a/src/google/adk/apps/app.py +++ b/src/google/adk/apps/app.py @@ -21,7 +21,7 @@ from ..agents.base_agent import BaseAgent from ..agents.context_cache_config import ContextCacheConfig -from ..apps.base_events_compactor import BaseEventsCompactor +from ..apps.base_events_summarizer import BaseEventsSummarizer from ..plugins.base_plugin import BasePlugin from ..utils.feature_decorator import experimental @@ -56,11 +56,13 @@ class EventsCompactionConfig(BaseModel): extra="forbid", ) - compactor: BaseEventsCompactor - """The event compactor strategy for the application.""" + summarizer: Optional[BaseEventsSummarizer] = None + """The event summarizer to use for compaction.""" + compaction_interval: int """The number of *new* user-initiated invocations that, once fully represented in the session's events, will trigger a compaction.""" + overlap_size: int """The number of preceding invocations to include from the end of the last compacted range. This creates an overlap between consecutive diff --git a/src/google/adk/apps/base_events_compactor.py b/src/google/adk/apps/base_events_summarizer.py similarity index 94% rename from src/google/adk/apps/base_events_compactor.py rename to src/google/adk/apps/base_events_summarizer.py index dcb875c0b8..5e72d7a18c 100644 --- a/src/google/adk/apps/base_events_compactor.py +++ b/src/google/adk/apps/base_events_summarizer.py @@ -23,11 +23,11 @@ @experimental -class BaseEventsCompactor(abc.ABC): +class BaseEventsSummarizer(abc.ABC): """Base interface for compacting events.""" @abc.abstractmethod - async def maybe_compact_events( + async def maybe_summarize_events( self, *, events: list[Event] ) -> Optional[Event]: """Compact a list of events into a single event. diff --git a/src/google/adk/apps/compaction.py b/src/google/adk/apps/compaction.py index 83ddecfb72..a6f55f9ad6 100644 --- a/src/google/adk/apps/compaction.py +++ b/src/google/adk/apps/compaction.py @@ -17,6 +17,7 @@ import logging from google.adk.apps.app import App +from google.adk.apps.llm_event_summarizer import LlmEventSummarizer from google.adk.sessions.base_session_service import BaseSessionService from google.adk.sessions.session import Session @@ -180,8 +181,13 @@ async def _run_compaction_for_sliding_window( if not events_to_compact: return None + if not app.events_compaction_config.summarizer: + app.events_compaction_config.summarizer = LlmEventSummarizer( + llm=app.root_agent.canonical_model + ) + compaction_event = ( - await app.events_compaction_config.compactor.maybe_compact_events( + await app.events_compaction_config.summarizer.maybe_summarize_events( events=events_to_compact ) ) diff --git a/src/google/adk/apps/llm_event_summarizer.py b/src/google/adk/apps/llm_event_summarizer.py index ad86d89160..76e3b73eb7 100644 --- a/src/google/adk/apps/llm_event_summarizer.py +++ b/src/google/adk/apps/llm_event_summarizer.py @@ -19,15 +19,15 @@ from google.genai.types import Content from google.genai.types import Part +from ..apps.base_events_summarizer import BaseEventsSummarizer from ..events.event import Event from ..events.event_actions import EventActions from ..events.event_actions import EventCompaction from ..models.base_llm import BaseLlm from ..models.llm_request import LlmRequest -from .base_events_compactor import BaseEventsCompactor -class LlmEventSummarizer(BaseEventsCompactor): +class LlmEventSummarizer(BaseEventsSummarizer): """An LLM-based event summarizer for sliding window compaction. This class is responsible for summarizing a provided list of events into a @@ -81,7 +81,7 @@ def _format_events_for_prompt(self, events: list[Event]) -> str: formatted_history.append(f'{event.author}: {part.text}') return '\\n'.join(formatted_history) - async def maybe_compact_events( + async def maybe_summarize_events( self, *, events: list[Event] ) -> Optional[Event]: """Compacts given events and returns the compacted content. diff --git a/tests/unittests/apps/test_compaction.py b/tests/unittests/apps/test_compaction.py index c0a427ab26..483ea3905d 100644 --- a/tests/unittests/apps/test_compaction.py +++ b/tests/unittests/apps/test_compaction.py @@ -72,7 +72,7 @@ async def test_run_compaction_for_sliding_window_no_events(self): await _run_compaction_for_sliding_window( app, session, self.mock_session_service ) - self.mock_compactor.maybe_compact_events.assert_not_called() + self.mock_compactor.maybe_summarize_events.assert_not_called() self.mock_session_service.append_event.assert_not_called() async def test_run_compaction_for_sliding_window_not_enough_new_invocations( @@ -82,7 +82,7 @@ async def test_run_compaction_for_sliding_window_not_enough_new_invocations( name='test', root_agent=Mock(spec=BaseAgent), events_compaction_config=EventsCompactionConfig( - compactor=self.mock_compactor, + summarizer=self.mock_compactor, compaction_interval=3, overlap_size=1, ), @@ -100,7 +100,7 @@ async def test_run_compaction_for_sliding_window_not_enough_new_invocations( await _run_compaction_for_sliding_window( app, session, self.mock_session_service ) - self.mock_compactor.maybe_compact_events.assert_not_called() + self.mock_compactor.maybe_summarize_events.assert_not_called() self.mock_session_service.append_event.assert_not_called() async def test_run_compaction_for_sliding_window_first_compaction(self): @@ -108,7 +108,7 @@ async def test_run_compaction_for_sliding_window_first_compaction(self): name='test', root_agent=Mock(spec=BaseAgent), events_compaction_config=EventsCompactionConfig( - compactor=self.mock_compactor, + summarizer=self.mock_compactor, compaction_interval=2, overlap_size=1, ), @@ -124,14 +124,16 @@ async def test_run_compaction_for_sliding_window_first_compaction(self): mock_compacted_event = self._create_compacted_event( 1.0, 4.0, 'Summary inv1-inv4' ) - self.mock_compactor.maybe_compact_events.return_value = mock_compacted_event + self.mock_compactor.maybe_summarize_events.return_value = ( + mock_compacted_event + ) await _run_compaction_for_sliding_window( app, session, self.mock_session_service ) # Expected events to compact: inv1, inv2, inv3, inv4 - compacted_events_arg = self.mock_compactor.maybe_compact_events.call_args[ + compacted_events_arg = self.mock_compactor.maybe_summarize_events.call_args[ 1 ]['events'] self.assertEqual( @@ -147,7 +149,7 @@ async def test_run_compaction_for_sliding_window_with_overlap(self): name='test', root_agent=Mock(spec=BaseAgent), events_compaction_config=EventsCompactionConfig( - compactor=self.mock_compactor, + summarizer=self.mock_compactor, compaction_interval=2, overlap_size=1, ), @@ -174,7 +176,9 @@ async def test_run_compaction_for_sliding_window_with_overlap(self): mock_compacted_event = self._create_compacted_event( 2.0, 5.0, 'Summary inv2-inv5' ) - self.mock_compactor.maybe_compact_events.return_value = mock_compacted_event + self.mock_compactor.maybe_summarize_events.return_value = ( + mock_compacted_event + ) await _run_compaction_for_sliding_window( app, session, self.mock_session_service @@ -183,7 +187,7 @@ async def test_run_compaction_for_sliding_window_with_overlap(self): # New invocations are inv3, inv4, inv5 (3 new) > threshold (2). # Overlap size is 1, so start from 1 inv before inv3, which is inv2. # Compact range: inv2 to inv5. - compacted_events_arg = self.mock_compactor.maybe_compact_events.call_args[ + compacted_events_arg = self.mock_compactor.maybe_summarize_events.call_args[ 1 ]['events'] self.assertEqual( @@ -201,7 +205,7 @@ async def test_run_compaction_for_sliding_window_no_compaction_event_returned( name='test', root_agent=Mock(spec=BaseAgent), events_compaction_config=EventsCompactionConfig( - compactor=self.mock_compactor, + summarizer=self.mock_compactor, compaction_interval=1, overlap_size=0, ), @@ -209,11 +213,11 @@ async def test_run_compaction_for_sliding_window_no_compaction_event_returned( events = [self._create_event(1.0, 'inv1', 'e1')] session = Session(app_name='test', user_id='u1', id='s1', events=events) - self.mock_compactor.maybe_compact_events.return_value = None + self.mock_compactor.maybe_summarize_events.return_value = None await _run_compaction_for_sliding_window( app, session, self.mock_session_service ) - self.mock_compactor.maybe_compact_events.assert_called_once() + self.mock_compactor.maybe_summarize_events.assert_called_once() self.mock_session_service.append_event.assert_not_called() diff --git a/tests/unittests/apps/test_llm_event_summarizer.py b/tests/unittests/apps/test_llm_event_summarizer.py index af190128f2..4ced5d3f0b 100644 --- a/tests/unittests/apps/test_llm_event_summarizer.py +++ b/tests/unittests/apps/test_llm_event_summarizer.py @@ -64,7 +64,7 @@ async def async_gen(): self.mock_llm.generate_content_async.return_value = async_gen() - compacted_event = await self.compactor.maybe_compact_events(events=events) + compacted_event = await self.compactor.maybe_summarize_events(events=events) self.assertIsNotNone(compacted_event) self.assertEqual( @@ -101,11 +101,11 @@ async def async_gen(): self.mock_llm.generate_content_async.return_value = async_gen() - compacted_event = await self.compactor.maybe_compact_events(events=events) + compacted_event = await self.compactor.maybe_summarize_events(events=events) self.assertIsNone(compacted_event) async def test_maybe_compact_events_empty_input(self): - compacted_event = await self.compactor.maybe_compact_events(events=[]) + compacted_event = await self.compactor.maybe_summarize_events(events=[]) self.assertIsNone(compacted_event) self.mock_llm.generate_content_async.assert_not_called() From 3be9cd844cfe83e0c3f029a294700306b85d00b5 Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Tue, 7 Oct 2025 08:10:29 -0700 Subject: [PATCH 038/303] chore: Let tools to handle root directory resolvement and model only knows the project name and always use relative path PiperOrigin-RevId: 816213558 --- .../agent_builder_assistant.py | 114 +++++------------- .../instruction_embedded.template | 93 +++++++------- .../tools/__init__.py | 2 - .../tools/delete_files.py | 13 +- .../tools/explore_project.py | 56 +++++---- .../tools/read_config_files.py | 7 +- .../tools/read_files.py | 18 ++- .../tools/resolve_root_directory.py | 100 --------------- .../tools/write_config_files.py | 3 + .../tools/write_files.py | 12 +- .../utils/resolve_root_directory.py | 87 +++++++++++++ 11 files changed, 237 insertions(+), 268 deletions(-) delete mode 100644 contributing/samples/adk_agent_builder_assistant/tools/resolve_root_directory.py create mode 100644 contributing/samples/adk_agent_builder_assistant/utils/resolve_root_directory.py diff --git a/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py b/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py index 4bb6d592e1..69f34a2a7b 100644 --- a/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py +++ b/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py @@ -34,7 +34,6 @@ from .tools.explore_project import explore_project from .tools.read_config_files import read_config_files from .tools.read_files import read_files -from .tools.resolve_root_directory import resolve_root_directory from .tools.search_adk_source import search_adk_source from .tools.write_config_files import write_config_files from .tools.write_files import write_files @@ -60,9 +59,7 @@ def create_agent( Configured LlmAgent with embedded ADK AgentConfig schema """ # Load full ADK AgentConfig schema directly into instruction context - instruction = AgentBuilderAssistant._load_instruction_with_schema( - model, working_directory - ) + instruction = AgentBuilderAssistant._load_instruction_with_schema(model) # TOOL ARCHITECTURE: Hybrid approach using both AgentTools and FunctionTools # @@ -95,8 +92,6 @@ def create_agent( write_config_files ), # Write/validate multiple YAML configs FunctionTool(explore_project), # Analyze project structure - # Working directory context tools - FunctionTool(resolve_root_directory), # File management tools (multi-file support) FunctionTool(read_files), # Read multiple files FunctionTool(write_files), # Write multiple files @@ -135,7 +130,6 @@ def _load_schema() -> str: # ADK AgentConfig schema loading with caching and error handling. schema_content = load_agent_config_schema( raw_format=True, # Get as JSON string - escape_braces=True, # Escape braces for template embedding ) # Format as indented code block for instruction embedding @@ -157,7 +151,6 @@ def _load_schema() -> str: @staticmethod def _load_instruction_with_schema( model: Union[str, BaseLlm], - working_directory: Optional[str] = None, ) -> Callable[[ReadonlyContext], str]: """Load instruction template and embed ADK AgentConfig schema content.""" instruction_template = ( @@ -172,19 +165,43 @@ def _load_instruction_with_schema( else getattr(model, "model_name", str(model)) ) - # Fill the instruction template with ADK AgentConfig schema content and default model - instruction_text = instruction_template.format( - schema_content=schema_content, default_model=model_str - ) - # Return a function that accepts ReadonlyContext and returns the instruction def instruction_provider(context: ReadonlyContext) -> str: - return AgentBuilderAssistant._compile_instruction_with_context( - instruction_text, context, working_directory + # Extract project folder name from session state + project_folder_name = AgentBuilderAssistant._extract_project_folder_name( + context ) + # Fill the instruction template with all variables + instruction_text = instruction_template.format( + schema_content=schema_content, + default_model=model_str, + project_folder_name=project_folder_name, + ) + return instruction_text + return instruction_provider + @staticmethod + def _extract_project_folder_name(context: ReadonlyContext) -> str: + """Extract project folder name from session state using resolve_file_path.""" + from .utils.resolve_root_directory import resolve_file_path + + session_state = context._invocation_context.session.state + + # Use resolve_file_path to get the full resolved path for "." + # This handles all the root_directory resolution logic consistently + resolved_path = resolve_file_path(".", session_state) + + # Extract the project folder name from the resolved path + project_folder_name = resolved_path.name + + # Fallback to "project" if we somehow get an empty name + if not project_folder_name: + project_folder_name = "project" + + return project_folder_name + @staticmethod def _load_embedded_schema_instruction_template() -> str: """Load instruction template for embedded ADK AgentConfig schema mode.""" @@ -197,70 +214,3 @@ def _load_embedded_schema_instruction_template() -> str: with open(template_path, "r", encoding="utf-8") as f: return f.read() - - @staticmethod - def _compile_instruction_with_context( - instruction_text: str, - context: ReadonlyContext, - working_directory: Optional[str] = None, - ) -> str: - """Compile instruction with session context and working directory information. - - This method enhances instructions with: - 1. Working directory information for path resolution - 2. Session-based root directory binding if available - - Args: - instruction_text: Base instruction text - context: ReadonlyContext from the agent session - working_directory: Optional working directory for path resolution - - Returns: - Enhanced instruction text with context information - """ - import os - - # Get working directory (use provided or current working directory) - actual_working_dir = working_directory or os.getcwd() - - # Check for existing root directory in session state - session_root_directory = context._invocation_context.session.state.get( - "root_directory" - ) - - # Compile additional context information - context_info = f""" - -## SESSION CONTEXT - -**Working Directory**: `{actual_working_dir}` -- Use this as the base directory for path resolution when calling resolve_root_directory -- Pass this as the working_directory parameter to resolve_root_directory tool - -""" - - if session_root_directory: - context_info += f"""**Established Root Directory**: `{session_root_directory}` -- This session is bound to root directory: {session_root_directory} -- DO NOT ask the user for root directory - use this established path -- All agent building should happen within this root directory -- If user wants to work in a different directory, ask them to start a new chat session - -""" - else: - context_info += f"""**Root Directory**: Not yet established -- You MUST ask the user for their desired root directory first -- Use resolve_root_directory tool to validate the path -- Once confirmed, this session will be bound to that root directory - -""" - - context_info += """**Session Binding Rules**: -- Each chat session is bound to ONE root directory -- Once established, work only within that root directory -- To switch directories, user must start a new chat session -- Always verify paths using resolve_root_directory tool before creating files - -""" - - return instruction_text + context_info diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index 813033323b..df47e071e6 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -29,11 +29,15 @@ You have access to the complete ADK AgentConfig schema embedded in your context: Always reference this schema when creating configurations to ensure compliance. +## Current Context + +**Current Project Folder Name**: `{project_folder_name}` + ## Workflow Guidelines ### 1. Discovery Phase - **DETERMINE USER INTENT FIRST**: - * **INFORMATIONAL QUESTIONS** (Answer directly WITHOUT asking for root directory): + * **INFORMATIONAL QUESTIONS** (Answer directly): - "Could you find me examples of..." / "Find me samples of..." - "Show me how to..." / "How do I..." - "What is..." / "What are..." / "Explain..." @@ -41,34 +45,21 @@ Always reference this schema when creating configurations to ensure compliance. - "I'm looking for information about..." / "I need to understand..." - Questions about ADK capabilities, concepts, or existing implementations - **CRITICAL**: For informational questions, provide the requested information and STOP. Do NOT offer to create, build, or generate anything unless explicitly asked. - * **CREATION/BUILDING INTENT** (Only then ask for root directory): + * **CREATION/BUILDING INTENT**: - "Create a new agent..." / "Build me an agent..." - "Generate an agent..." / "Implement an agent..." - "Update my agent..." / "Modify my agent..." / "Change my agent..." - "I want to create..." / "Help me build..." / "Help me update..." - "Set up a project..." / "Make me an agent..." -**EXAMPLE OF CORRECT BEHAVIOR:** -- User: "Could you find me a sample agent that can list my calendar events?" -- ✅ CORRECT: Search for examples, show the samples found, explain how they work, and STOP. -- ❌ WRONG: "Before I proceed with creating an agent..." or asking for root directory. -- **ROOT DIRECTORY ESTABLISHMENT** (Only for Creation/Building): - * **FIRST**: Check SESSION CONTEXT section below for "Established Root Directory" - * **IF ESTABLISHED**: Use the existing root directory - **🚨 NEVER ASK FOR ROOT DIRECTORY AGAIN** - * **IF NOT ESTABLISHED**: Ask user for root directory to establish working context - * **🚨 CRITICAL**: If SESSION CONTEXT shows an established root directory, NEVER ask "What is the root directory?" or similar questions - **MODEL PREFERENCE**: Always ask for explicit model confirmation when LlmAgent(s) will be needed * **When to ask**: After analyzing requirements and deciding that LlmAgent is needed for the solution * **MANDATORY CONFIRMATION**: Say "Please confirm what model you want to use" - do NOT assume or suggest defaults * **EXAMPLES**: "gemini-2.5-flash", "gemini-2.5-pro", etc. * **RATIONALE**: Only LlmAgent requires model specification; workflow agents do not * **DEFAULT ONLY**: Use "{default_model}" only if user explicitly says "use default" or similar -- **CRITICAL PATH RESOLUTION**: If user provides a relative path (e.g., `./config_agents/roll_and_check`): - * **FIRST**: Call `resolve_root_directory` to get the correct absolute path - * **VERIFY**: The resolved path matches user's intended location - * **EXAMPLE**: `./config_agents/roll_and_check` should resolve to `/Users/user/Projects/adk-python/config_agents/roll_and_check`, NOT `/config_agents/roll_and_check` - Understand the user's goals and requirements through targeted questions -- Explore existing project structure using the RESOLVED ABSOLUTE PATH +- Explore existing project structure using the explore_project tool - Identify integration needs (APIs, databases, external services) ### 2. Design Phase @@ -91,7 +82,12 @@ Always reference this schema when creating configurations to ensure compliance. - **For new files**: Show the complete content and ask for approval - **For existing file modifications**: Ask "Should I create a backup before modifying this file?" - **Use backup_existing parameter**: Set to True only if user explicitly requests backup -- **🚨 PATH DISPLAY RULE**: When root directory is established (shown in SESSION CONTEXT), ALWAYS show relative paths in responses (e.g., `root_agent.yaml`, `tools/dice_tool.py`) instead of full absolute paths +- **🚨 PATH DISPLAY RULE**: ALWAYS show relative paths in responses (e.g., `root_agent.yaml`, `tools/dice_tool.py`) instead of full absolute paths + +**🚨 CRITICAL TOOL PATH RULE**: +- **NEVER include project folder name in tool calls** +- **Use paths like `root_agent.yaml`, NOT `{project_folder_name}/root_agent.yaml`** +- **Tools automatically resolve relative to project folder** **IMPLEMENTATION ORDER (CRITICAL - ONLY AFTER USER CONFIRMS DESIGN):** @@ -109,18 +105,18 @@ Always reference this schema when creating configurations to ensure compliance. 5. **Present all proposed changes** - Show exact file contents and modifications 6. **Get explicit user approval** - Wait for "yes" or "proceed" before any writes 7. **Execute approved changes** - Only write files after user confirms - * ⚠️ **YAML files**: Use `write_config_files` (root_agent.yaml, etc.) - * ⚠️ **Python files**: Use `write_files` (tools/*.py, etc.) + * ⚠️ **YAML files**: Use `write_config_files` with paths like `"root_agent.yaml"` (NO project folder prefix) + * ⚠️ **Python files**: Use `write_files` with paths like `"tools/dice_tool.py"` (NO project folder prefix) 8. **Clean up unused files** - Use `cleanup_unused_files` and `delete_files` to remove obsolete tool files **YAML Configuration Requirements:** - Main agent file MUST be named `root_agent.yaml` -- **Sub-agent placement**: Place ALL sub-agent YAML files in the root folder, NOT in `sub_agents/` subfolder +- **Sub-agent placement**: Place ALL sub-agent YAML files in the main project folder, NOT in `sub_agents/` subfolder - Tool paths use format: `project_name.tools.module.function_name` (must start with project folder name, no `.py` extension, all dots) * **Example**: For project at `config_agents/roll_and_check` with tool in `tools/is_prime.py`, use: `roll_and_check.tools.is_prime.is_prime` - * **Pattern**: `{{{{project_folder_name}}}}.tools.{{{{module_name}}}}.{{{{function_name}}}}` - * **🚨 CRITICAL TOOL NAMING RULE**: Use ONLY the FINAL/LAST component of the root folder path as project_folder_name - - ✅ CORRECT: For root directory `projects/workspace/my_agent`, use `my_agent` (last component) + * **Pattern**: `{{project_folder_name}}.tools.{{module_name}}.{{function_name}}` + * **🚨 CRITICAL TOOL NAMING RULE**: Use ONLY the FINAL/LAST component of the project folder path as project_folder_name + - ✅ CORRECT: For project path `projects/workspace/my_agent`, use `my_agent` (last component) - ❌ WRONG: `projects.workspace.my_agent` (full dotted path) - ✅ CORRECT: For `./config_based/roll_and_check`, use `roll_and_check` (last component) - ❌ WRONG: `config_based.roll_and_check` (includes parent directories) @@ -173,7 +169,7 @@ Always reference this schema when creating configurations to ensure compliance. ### Core Agent Building Tools #### Configuration Management (MANDATORY FOR .yaml/.yml FILES) -- **write_config_files**: ⚠️ REQUIRED for ALL YAML agent configuration files (root_agent.yaml, any sub-agent YAML files in root folder) +- **write_config_files**: ⚠️ REQUIRED for ALL YAML agent configuration files (root_agent.yaml, any sub-agent YAML files in main project folder) * Validates YAML syntax and ADK AgentConfig schema compliance * Example: `write_config_files({{"./project/root_agent.yaml": yaml_content, "./project/researcher_agent.yaml": sub_agent_content}})` * **CRITICAL**: All agent YAML files must be in the root project folder, NOT in a sub_agents/ subdirectory @@ -190,7 +186,6 @@ Always reference this schema when creating configurations to ensure compliance. #### Project Organization - **explore_project**: Explore project structure and suggest conventional file paths -- **resolve_root_directory**: Resolve path issues when execution context differs from user's working directory ### ADK Knowledge and Research Tools @@ -358,7 +353,7 @@ def log_tool_result(tool: BaseTool, args: Dict[str, Any], context: ToolContext, - Function tools: `project_name.tools.module.function_name` format (all dots, must start with project folder name) - No `.py` extension in tool paths - No function declarations needed in YAML -- **Critical**: Tool paths must include the project folder name as the first component (final component of root folder path only) +- **Critical**: Tool paths must include the project folder name as the first component (final component of project folder path only) **ADK Agent Types and Model Field Rules:** - **LlmAgent**: REQUIRES `model` field (unless inherited from ancestor) - this agent directly uses LLM for responses @@ -374,31 +369,31 @@ def log_tool_result(tool: BaseTool, args: Dict[str, Any], context: ToolContext, * **Workflow Agents**: `model` field is FORBIDDEN - Remove model field entirely for Sequential/Parallel/Loop agents - Optional fields: description, instruction, tools, sub_agents as defined in ADK AgentConfig schema -## Critical Path Handling Rules - -**NEVER assume relative path context** - Always resolve paths first! +## File Operation Guidelines -### For relative paths provided by users: -1. **ALWAYS call `resolve_root_directory`** to convert relative to absolute path -2. **Verify the resolved path** matches user's intended location -3. **Use the resolved absolute path** for all file operations +**CRITICAL PATH RULE FOR TOOL CALLS**: +- **NEVER include the project folder name in paths when calling tools** +- **Tools automatically resolve paths relative to the project folder** +- **Use simple relative paths like `root_agent.yaml`, `tools/dice_tool.py`** +- **WRONG**: `{project_folder_name}/root_agent.yaml` (includes project folder name) +- **CORRECT**: `root_agent.yaml` (just the file path within project) -### Examples: -- **User input**: `./config_agents/roll_and_check` -- **WRONG approach**: Create files at `/config_agents/roll_and_check` -- **CORRECT approach**: - 1. Call `resolve_root_directory("./config_agents/roll_and_check")` - 2. Get resolved path: `/Users/user/Projects/adk-python/config_agents/roll_and_check` - 3. Use the resolved absolute path for all operations +**Examples**: +- Current project folder: `basic` +- ✅ **CORRECT tool calls**: + * `write_config_files({{"root_agent.yaml": "..."}})` + * `write_files({{"tools/dice_tool.py": "..."}})` +- ❌ **WRONG tool calls**: + * `write_config_files({{"basic/root_agent.yaml": "..."}})` (duplicates project folder!) + * This would create `projects/basic/basic/root_agent.yaml` instead of `projects/basic/root_agent.yaml` ## Success Criteria ### Design Phase Success: -1. Root folder path confirmed and analyzed with explore_project -2. Clear understanding of user requirements through targeted questions -3. Well-researched architecture based on proven ADK patterns -4. Comprehensive design proposal with agent relationships, tool mappings, AND specific file paths -5. User approval of both architecture and file structure before any implementation +1. Clear understanding of user requirements through targeted questions +2. Well-researched architecture based on proven ADK patterns +3. Comprehensive design proposal with agent relationships, tool mappings, AND specific file paths +4. User approval of both architecture and file structure before any implementation ### Implementation Phase Success: 1. Files created at exact paths specified in approved design @@ -413,8 +408,8 @@ def log_tool_result(tool: BaseTool, args: Dict[str, Any], context: ToolContext, **Your primary role is to be a collaborative architecture consultant that follows an efficient, user-centric workflow:** -1. **Always ask for root folder first** - Know where to create the project -2. **Design with specific paths** - Include exact file locations in proposals +1. **Understand requirements first** - Know what the user wants to build +2. **Design the architecture** - Plan the agent structure and components 3. **Provide high-level architecture overview** - When confirming design, always include: * Overall system architecture and component relationships * Agent types and their responsibilities @@ -429,10 +424,10 @@ def log_tool_result(tool: BaseTool, args: Dict[str, Any], context: ToolContext, ## Running Generated Agents **Correct ADK Commands:** -- `adk run [root_directory]` - Run agent from root directory (e.g., `adk run config_agents/roll_and_check`) +- `adk run [project_directory]` - Run agent from project directory (e.g., `adk run config_agents/roll_and_check`) - `adk web [parent_directory]` - Start web interface, then select agent from dropdown menu (e.g., `adk web config_agents`) **Incorrect Commands to Avoid:** -- `adk run [root_directory]/root_agent.yaml` - Do NOT specify the YAML file directly +- `adk run [project_directory]/root_agent.yaml` - Do NOT specify the YAML file directly - `adk web` without parent directory - Must specify the parent folder containing the agent projects - Always use the project directory for `adk run`, and parent directory for `adk web` diff --git a/contributing/samples/adk_agent_builder_assistant/tools/__init__.py b/contributing/samples/adk_agent_builder_assistant/tools/__init__.py index 66d5bbd72f..c282cfa45e 100644 --- a/contributing/samples/adk_agent_builder_assistant/tools/__init__.py +++ b/contributing/samples/adk_agent_builder_assistant/tools/__init__.py @@ -19,7 +19,6 @@ from .explore_project import explore_project from .read_config_files import read_config_files from .read_files import read_files -from .resolve_root_directory import resolve_root_directory from .search_adk_source import search_adk_source from .write_config_files import write_config_files from .write_files import write_files @@ -33,5 +32,4 @@ 'write_files', 'search_adk_source', 'explore_project', - 'resolve_root_directory', ] diff --git a/contributing/samples/adk_agent_builder_assistant/tools/delete_files.py b/contributing/samples/adk_agent_builder_assistant/tools/delete_files.py index 18a68018f6..170f8e9e9c 100644 --- a/contributing/samples/adk_agent_builder_assistant/tools/delete_files.py +++ b/contributing/samples/adk_agent_builder_assistant/tools/delete_files.py @@ -21,9 +21,14 @@ from typing import Dict from typing import List +from google.adk.tools.tool_context import ToolContext + +from ..utils.resolve_root_directory import resolve_file_paths + async def delete_files( file_paths: List[str], + tool_context: ToolContext, create_backup: bool = False, confirm_deletion: bool = True, ) -> Dict[str, Any]: @@ -54,6 +59,10 @@ async def delete_files( - errors: list of general error messages """ try: + # Resolve file paths using session state + session_state = tool_context._invocation_context.session.state + resolved_paths = resolve_file_paths(file_paths, session_state) + result = { "success": True, "files": {}, @@ -68,8 +77,8 @@ async def delete_files( result["errors"].append("Deletion not confirmed by user") return result - for file_path in file_paths: - file_path_obj = Path(file_path).resolve() + for resolved_path in resolved_paths: + file_path_obj = resolved_path.resolve() file_info = { "existed": False, "backup_created": False, diff --git a/contributing/samples/adk_agent_builder_assistant/tools/explore_project.py b/contributing/samples/adk_agent_builder_assistant/tools/explore_project.py index 22ccc03487..b9beb17277 100644 --- a/contributing/samples/adk_agent_builder_assistant/tools/explore_project.py +++ b/contributing/samples/adk_agent_builder_assistant/tools/explore_project.py @@ -19,23 +19,24 @@ from typing import Dict from typing import List +from google.adk.tools.tool_context import ToolContext -async def explore_project(root_directory: str) -> Dict[str, Any]: +from ..utils.resolve_root_directory import resolve_file_path + + +async def explore_project(tool_context: ToolContext) -> Dict[str, Any]: """Analyze project structure and suggest optimal file paths for ADK agents. This tool performs comprehensive project analysis to understand the existing structure and recommend appropriate locations for new agent configurations, tools, and related files following ADK best practices. - Args: - root_directory: Absolute or relative path to the root directory to explore - and analyze + The tool automatically determines the project directory from session state. Returns: - Dict containing analysis results: + Dict containing analysis results with ALL PATHS RELATIVE TO PROJECT FOLDER: Always included: - success: bool indicating if exploration succeeded - - root_path: absolute path to the analyzed directory Success cases only (success=True): - project_info: dict with basic project metadata. Contains: @@ -54,8 +55,7 @@ async def explore_project(root_directory: str) -> Dict[str, Any]: - existing_configs: list of dicts for found YAML configuration files. Each dict contains: • "filename": name of the config file - • "path": absolute path to the file - • "relative_path": path relative to project root + • "relative_path": path relative to project folder • "size": file size in bytes • "is_valid_yaml": bool indicating if YAML parses correctly @@ -80,7 +80,7 @@ async def explore_project(root_directory: str) -> Dict[str, Any]: Examples: Basic project exploration: - result = await explore_project("/path/to/my_adk_project") + result = await explore_project(tool_context) Check project structure: if result["project_info"]["has_tools_directory"]: @@ -96,20 +96,21 @@ async def explore_project(root_directory: str) -> Dict[str, Any]: directories = result["suggestions"]["directories"]["tools"] """ try: - root_path = Path(root_directory).resolve() + # Resolve root directory using session state (use "." as current project directory) + session_state = tool_context._invocation_context.session.state + resolved_path = resolve_file_path(".", session_state) + root_path = resolved_path.resolve() if not root_path.exists(): return { "success": False, - "error": f"Root directory does not exist: {root_directory}", - "root_path": str(root_path), + "error": f"Project directory does not exist: {root_path}", } if not root_path.is_dir(): return { "success": False, - "error": f"Path is not a directory: {root_directory}", - "root_path": str(root_path), + "error": f"Path is not a directory: {root_path}", } # Analyze project structure @@ -121,7 +122,6 @@ async def explore_project(root_directory: str) -> Dict[str, Any]: return { "success": True, - "root_path": str(root_path), "project_info": project_info, "existing_configs": existing_configs, "directory_structure": directory_structure, @@ -132,14 +132,12 @@ async def explore_project(root_directory: str) -> Dict[str, Any]: except PermissionError: return { "success": False, - "error": f"Permission denied accessing directory: {root_directory}", - "root_path": root_directory, + "error": "Permission denied accessing project directory", } except Exception as e: return { "success": False, "error": f"Error exploring project: {str(e)}", - "root_path": root_directory, } @@ -191,12 +189,12 @@ def _find_existing_configs(root_path: Path) -> List[Dict[str, Any]]: # Look for YAML files in root directory (ADK convention) for yaml_file in root_path.glob("*.yaml"): if yaml_file.is_file(): - config_info = _analyze_config_file(yaml_file) + config_info = _analyze_config_file(yaml_file, root_path) configs.append(config_info) for yml_file in root_path.glob("*.yml"): if yml_file.is_file(): - config_info = _analyze_config_file(yml_file) + config_info = _analyze_config_file(yml_file, root_path) configs.append(config_info) # Sort by name for consistent ordering @@ -209,12 +207,18 @@ def _find_existing_configs(root_path: Path) -> List[Dict[str, Any]]: return configs -def _analyze_config_file(config_path: Path) -> Dict[str, Any]: +def _analyze_config_file(config_path: Path, root_path: Path) -> Dict[str, Any]: """Analyze a single configuration file.""" + # Compute relative path from project root + try: + relative_path = config_path.relative_to(root_path) + except ValueError: + # Fallback if not relative to root_path + relative_path = config_path.name + info = { "filename": config_path.name, - "path": str(config_path), - "relative_path": config_path.name, # In root directory + "relative_path": str(relative_path), "size": 0, "is_valid_yaml": False, "agent_name": None, @@ -300,10 +304,10 @@ def _generate_path_suggestions( "root_agent.yaml", ] - # Directory suggestions + # Directory suggestions (relative paths) directories = { "tools": { - "path": str(root_path / "tools"), + "path": "tools", "exists": (root_path / "tools").exists(), "purpose": "Custom tool implementations", "example_files": [ @@ -312,7 +316,7 @@ def _generate_path_suggestions( ], }, "callbacks": { - "path": str(root_path / "callbacks"), + "path": "callbacks", "exists": (root_path / "callbacks").exists(), "purpose": "Custom callback functions", "example_files": ["logging.py", "security.py"], diff --git a/contributing/samples/adk_agent_builder_assistant/tools/read_config_files.py b/contributing/samples/adk_agent_builder_assistant/tools/read_config_files.py index ad52c52e69..63b1bc5800 100644 --- a/contributing/samples/adk_agent_builder_assistant/tools/read_config_files.py +++ b/contributing/samples/adk_agent_builder_assistant/tools/read_config_files.py @@ -19,12 +19,15 @@ from typing import Dict from typing import List +from google.adk.tools.tool_context import ToolContext import yaml from .read_files import read_files -async def read_config_files(file_paths: List[str]) -> Dict[str, Any]: +async def read_config_files( + file_paths: List[str], tool_context: ToolContext +) -> Dict[str, Any]: """Read multiple YAML configuration files and extract metadata. Args: @@ -49,7 +52,7 @@ async def read_config_files(file_paths: List[str]) -> Dict[str, Any]: - errors: list of general error messages """ # Read all files using the file_manager read_files tool - read_result = await read_files(file_paths) + read_result = await read_files(file_paths, tool_context) result = { "success": True, diff --git a/contributing/samples/adk_agent_builder_assistant/tools/read_files.py b/contributing/samples/adk_agent_builder_assistant/tools/read_files.py index bd06134079..4afaf2711b 100644 --- a/contributing/samples/adk_agent_builder_assistant/tools/read_files.py +++ b/contributing/samples/adk_agent_builder_assistant/tools/read_files.py @@ -19,8 +19,14 @@ from typing import Dict from typing import List +from google.adk.tools.tool_context import ToolContext -async def read_files(file_paths: List[str]) -> Dict[str, Any]: +from ..utils.resolve_root_directory import resolve_file_paths + + +async def read_files( + file_paths: List[str], tool_context: ToolContext +) -> Dict[str, Any]: """Read content from multiple files. This tool reads content from multiple files and returns their contents. @@ -43,6 +49,10 @@ async def read_files(file_paths: List[str]) -> Dict[str, Any]: - errors: list of general error messages """ try: + # Resolve file paths using session state + session_state = tool_context._invocation_context.session.state + resolved_paths = resolve_file_paths(file_paths, session_state) + result = { "success": True, "files": {}, @@ -51,8 +61,8 @@ async def read_files(file_paths: List[str]) -> Dict[str, Any]: "errors": [], } - for file_path in file_paths: - file_path_obj = Path(file_path).resolve() + for resolved_path in resolved_paths: + file_path_obj = resolved_path.resolve() file_info = { "content": "", "file_size": 0, @@ -72,7 +82,7 @@ async def read_files(file_paths: List[str]) -> Dict[str, Any]: result["successful_reads"] += 1 except Exception as e: - file_info["error"] = f"Failed to read {file_path}: {str(e)}" + file_info["error"] = f"Failed to read {file_path_obj}: {str(e)}" result["success"] = False result["files"][str(file_path_obj)] = file_info diff --git a/contributing/samples/adk_agent_builder_assistant/tools/resolve_root_directory.py b/contributing/samples/adk_agent_builder_assistant/tools/resolve_root_directory.py deleted file mode 100644 index 3483a78d8f..0000000000 --- a/contributing/samples/adk_agent_builder_assistant/tools/resolve_root_directory.py +++ /dev/null @@ -1,100 +0,0 @@ -# Copyright 2025 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""Working directory helper tool to resolve path context issues.""" - -import os -from pathlib import Path -from typing import Any -from typing import Dict -from typing import Optional - - -async def resolve_root_directory( - root_directory: str, working_directory: Optional[str] = None -) -> Dict[str, Any]: - """Resolve the root directory from user-provided path for agent building. - - This tool determines where to create or update agent configurations by - resolving the user-provided path. It handles both absolute and relative paths, - using the current working directory when needed for relative path resolution. - - Args: - root_directory: Path provided by user (can be relative or absolute) - indicating where to build agents - working_directory: Optional explicit working directory to use as base for - relative path resolution (defaults to os.getcwd()) - - Returns: - Dict containing path resolution results: - Always included: - - success: bool indicating if resolution succeeded - - original_path: the provided root directory path - - resolved_path: absolute path to the resolved location - - resolution_method: explanation of how path was resolved - - path_exists: bool indicating if resolved path exists - - Conditionally included: - - alternative_paths: list of other possible path interpretations - - warnings: list of potential issues or ambiguities - - working_directory_used: the working directory used for resolution - - Examples: - Resolve relative path: - result = await resolve_root_directory("./my_project", - "/home/user/projects") - - Resolve with auto-detection: - result = await resolve_root_directory("my_agent.yaml") - # Will use current working directory for relative paths - """ - try: - current_cwd = os.getcwd() - root_path_obj = Path(root_directory) - - # If user provided an absolute path, use it directly - if root_path_obj.is_absolute(): - resolved_path = root_path_obj - else: - # For relative paths, prefer user-provided working directory - if working_directory: - resolved_path = Path(working_directory) / root_directory - else: - # Fallback to actual current working directory - resolved_path = Path(current_cwd) / root_directory - - return { - "success": True, - "original_path": root_directory, - "resolved_path": str(resolved_path.resolve()), - "exists": resolved_path.exists(), - "is_absolute": root_path_obj.is_absolute(), - "current_cwd": current_cwd, - "working_directory_used": working_directory, - "recommendation": ( - f"Use resolved path: {resolved_path.resolve()}" - if resolved_path.exists() - else ( - "Path does not exist. Create parent directories first:" - f" {resolved_path.parent}" - ) - ), - } - - except Exception as e: - return { - "success": False, - "error": f"Failed to resolve path: {str(e)}", - "original_path": root_directory, - } diff --git a/contributing/samples/adk_agent_builder_assistant/tools/write_config_files.py b/contributing/samples/adk_agent_builder_assistant/tools/write_config_files.py index 78f17240ac..8b56dc3439 100644 --- a/contributing/samples/adk_agent_builder_assistant/tools/write_config_files.py +++ b/contributing/samples/adk_agent_builder_assistant/tools/write_config_files.py @@ -18,6 +18,7 @@ from typing import Any from typing import Dict +from google.adk.tools.tool_context import ToolContext import jsonschema import yaml @@ -27,6 +28,7 @@ async def write_config_files( configs: Dict[str, str], + tool_context: ToolContext, backup_existing: bool = False, # Changed default to False - user should decide create_directories: bool = True, ) -> Dict[str, Any]: @@ -143,6 +145,7 @@ async def write_config_files( if result["success"] and validated_configs: write_result: Dict[str, Any] = await write_files( validated_configs, + tool_context, create_backup=backup_existing, create_directories=create_directories, ) diff --git a/contributing/samples/adk_agent_builder_assistant/tools/write_files.py b/contributing/samples/adk_agent_builder_assistant/tools/write_files.py index d610fe3eba..088f8c413c 100644 --- a/contributing/samples/adk_agent_builder_assistant/tools/write_files.py +++ b/contributing/samples/adk_agent_builder_assistant/tools/write_files.py @@ -20,9 +20,14 @@ from typing import Any from typing import Dict +from google.adk.tools.tool_context import ToolContext + +from ..utils.resolve_root_directory import resolve_file_path + async def write_files( files: Dict[str, str], + tool_context: ToolContext, create_backup: bool = False, create_directories: bool = True, ) -> Dict[str, Any]: @@ -50,6 +55,9 @@ async def write_files( - errors: list of general error messages """ try: + # Get session state for path resolution + session_state = tool_context._invocation_context.session.state + result = { "success": True, "files": {}, @@ -59,7 +67,9 @@ async def write_files( } for file_path, content in files.items(): - file_path_obj = Path(file_path).resolve() + # Resolve file path using session state + resolved_path = resolve_file_path(file_path, session_state) + file_path_obj = resolved_path.resolve() file_info = { "file_size": 0, "existed_before": False, diff --git a/contributing/samples/adk_agent_builder_assistant/utils/resolve_root_directory.py b/contributing/samples/adk_agent_builder_assistant/utils/resolve_root_directory.py new file mode 100644 index 0000000000..4826b999b5 --- /dev/null +++ b/contributing/samples/adk_agent_builder_assistant/utils/resolve_root_directory.py @@ -0,0 +1,87 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Working directory helper tool to resolve path context issues.""" + +import os +from pathlib import Path +from typing import Any +from typing import Dict +from typing import List +from typing import Optional + + +def resolve_file_path( + file_path: str, + session_state: Optional[Dict[str, Any]] = None, + working_directory: Optional[str] = None, +) -> Path: + """Resolve a file path using root directory from session state. + + This is a helper function that other tools can use to resolve file paths + without needing to be async or return detailed resolution information. + + Args: + file_path: File path (relative or absolute) + session_state: Session state dict that may contain root_directory + working_directory: Working directory to use as base (defaults to cwd) + + Returns: + Resolved absolute Path object + """ + file_path_obj = Path(file_path) + + # If already absolute, use as-is + if file_path_obj.is_absolute(): + return file_path_obj + + # Get root directory from session state, default to "./" + root_directory = "./" + if session_state and "root_directory" in session_state: + root_directory = session_state["root_directory"] + + # Use the same resolution logic as the main function + root_path_obj = Path(root_directory) + + if root_path_obj.is_absolute(): + resolved_root = root_path_obj + else: + if working_directory: + resolved_root = Path(working_directory) / root_directory + else: + resolved_root = Path(os.getcwd()) / root_directory + + # Resolve file path relative to root directory + return resolved_root / file_path + + +def resolve_file_paths( + file_paths: List[str], + session_state: Optional[Dict[str, Any]] = None, + working_directory: Optional[str] = None, +) -> List[Path]: + """Resolve multiple file paths using root directory from session state. + + Args: + file_paths: List of file paths (relative or absolute) + session_state: Session state dict that may contain root_directory + working_directory: Working directory to use as base (defaults to cwd) + + Returns: + List of resolved absolute Path objects + """ + return [ + resolve_file_path(path, session_state, working_directory) + for path in file_paths + ] From 90d4c19c5115c7af361effa8e12c248225ccf6ab Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Tue, 7 Oct 2025 09:57:53 -0700 Subject: [PATCH 039/303] feat: Migrate vertex ai session service to use agent engine sdk PiperOrigin-RevId: 816259798 --- src/google/adk/cli/fast_api.py | 4 +- .../adk/sessions/vertex_ai_session_service.py | 408 ++++++++---------- .../test_vertex_ai_session_service.py | 400 ++++++++++------- 3 files changed, 432 insertions(+), 380 deletions(-) diff --git a/src/google/adk/cli/fast_api.py b/src/google/adk/cli/fast_api.py index 02e617ed32..326cab0367 100644 --- a/src/google/adk/cli/fast_api.py +++ b/src/google/adk/cli/fast_api.py @@ -105,8 +105,8 @@ def _parse_agent_engine_resource_name(agent_engine_id_or_resource_name): agent_engine_id = agent_engine_id_or_resource_name.split("/")[-1] else: envs.load_dotenv_for_agent("", agents_dir) - project = os.environ["GOOGLE_CLOUD_PROJECT"] - location = os.environ["GOOGLE_CLOUD_LOCATION"] + project = os.environ.get("GOOGLE_CLOUD_PROJECT", None) + location = os.environ.get("GOOGLE_CLOUD_LOCATION", None) agent_engine_id = agent_engine_id_or_resource_name return project, location, agent_engine_id diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index 31dea1a094..def89b24b3 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -13,25 +13,23 @@ # limitations under the License. from __future__ import annotations -import json +import datetime import logging import os import re from typing import Any from typing import Dict from typing import Optional -import urllib.parse +from typing import Union -from dateutil import parser +from google.genai import types from google.genai.errors import ClientError from tenacity import retry from tenacity import retry_if_result -from tenacity import RetryError from tenacity import stop_after_attempt from tenacity import wait_exponential from typing_extensions import override - -from google import genai +import vertexai from . import _session_util from ..events.event import Event @@ -41,12 +39,11 @@ from .base_session_service import ListSessionsResponse from .session import Session -isoparse = parser.isoparse logger = logging.getLogger('google_adk.' + __name__) class VertexAiSessionService(BaseSessionService): - """Connects to the Vertex AI Agent Engine Session Service using GenAI API client. + """Connects to the Vertex AI Agent Engine Session Service using Agent Engine SDK. https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/sessions/overview """ @@ -68,20 +65,6 @@ def __init__( self._location = location self._agent_engine_id = agent_engine_id - async def _get_session_api_response( - self, - reasoning_engine_id: str, - session_id: str, - api_client: genai.ApiClient, - ): - get_session_api_response = await api_client.async_request( - http_method='GET', - path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', - request_dict={}, - ) - get_session_api_response = _convert_api_response(get_session_api_response) - return get_session_api_response - @override async def create_session( self, @@ -96,38 +79,35 @@ async def create_session( 'User-provided Session id is not supported for' ' VertexAISessionService.' ) + reasoning_engine_id = self._get_reasoning_engine_id(app_name) api_client = self._get_api_client() - session_json_dict = {'user_id': user_id} - if state: - session_json_dict['session_state'] = state + config = {'session_state': state} if state else {} - api_response = await api_client.async_request( - http_method='POST', - path=f'reasoningEngines/{reasoning_engine_id}/sessions', - request_dict=session_json_dict, - ) - api_response = _convert_api_response(api_response) - logger.info('Create session response received.') - logger.debug('Create session response: %s', api_response) - - session_id = api_response['name'].split('/')[-3] - operation_id = api_response['name'].split('/')[-1] if _is_vertex_express_mode(self._project, self._location): + config['wait_for_completion'] = False + api_response = api_client.agent_engines.sessions.create( + name=f'reasoningEngines/{reasoning_engine_id}', + user_id=user_id, + config=config, + ) + logger.info('Create session response received.') + session_id = api_response.name.split('/')[-3] + # Express mode doesn't support LRO, so we need to poll # the session resource. # TODO: remove this once LRO polling is supported in Express mode. @retry( - stop=stop_after_attempt(5), + stop=stop_after_attempt(6), wait=wait_exponential(multiplier=1, min=1, max=3), retry=retry_if_result(lambda response: not response), reraise=True, ) async def _poll_session_resource(): try: - return await self._get_session_api_response( - reasoning_engine_id, session_id, api_client + return api_client.agent_engines.sessions.get( + name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}' ) except ClientError: logger.info('Polling session resource') @@ -137,45 +117,26 @@ async def _poll_session_resource(): await _poll_session_resource() except Exception as exc: raise ValueError('Failed to create session.') from exc - else: - @retry( - stop=stop_after_attempt(5), - wait=wait_exponential(multiplier=1, min=1, max=3), - retry=retry_if_result( - lambda response: not response.get('done', False), - ), - reraise=True, + get_session_response = api_client.agent_engines.sessions.get( + name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}' ) - async def _poll_lro(): - lro_response = await api_client.async_request( - http_method='GET', - path=f'operations/{operation_id}', - request_dict={}, - ) - lro_response = _convert_api_response(lro_response) - return lro_response - - try: - await _poll_lro() - except RetryError as exc: - raise TimeoutError( - f'Timeout waiting for operation {operation_id} to complete.' - ) from exc - except Exception as exc: - raise ValueError('Failed to create session.') from exc + else: + api_response = api_client.agent_engines.sessions.create( + name=f'reasoningEngines/{reasoning_engine_id}', + user_id=user_id, + config=config, + ) + logger.debug('Create session response: %s', api_response) + get_session_response = api_response.response + session_id = get_session_response.name.split('/')[-1] - get_session_api_response = await self._get_session_api_response( - reasoning_engine_id, session_id, api_client - ) session = Session( app_name=str(app_name), user_id=str(user_id), id=str(session_id), - state=get_session_api_response.get('sessionState', {}), - last_update_time=isoparse( - get_session_api_response['updateTime'] - ).timestamp(), + state=getattr(get_session_response, 'session_state', None) or {}, + last_update_time=get_session_response.update_time.timestamp(), ) return session @@ -192,79 +153,49 @@ async def get_session( api_client = self._get_api_client() # Get session resource - get_session_api_response = await self._get_session_api_response( - reasoning_engine_id, session_id, api_client + get_session_response = api_client.agent_engines.sessions.get( + name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', ) - if get_session_api_response['userId'] != user_id: - raise ValueError(f'Session not found: {session_id}') + if get_session_response.user_id != user_id: + raise ValueError( + f'Session {session_id} does not belong to user {user_id}.' + ) - session_id = get_session_api_response['name'].split('/')[-1] - update_timestamp = isoparse( - get_session_api_response['updateTime'] - ).timestamp() + session_id_from_name = get_session_response.name.split('/')[-1] + update_timestamp = get_session_response.update_time.timestamp() session = Session( app_name=str(app_name), user_id=str(user_id), - id=str(session_id), - state=get_session_api_response.get('sessionState', {}), + id=str(session_id_from_name), + state=getattr(get_session_response, 'session_state', None) or {}, last_update_time=update_timestamp, ) - list_events_api_response = await api_client.async_request( - http_method='GET', - path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}/events', - request_dict={}, - ) - converted_api_response = _convert_api_response(list_events_api_response) - - # Handles empty response case where there are no events to fetch - if not converted_api_response or converted_api_response.get( - 'httpHeaders', None - ): - return session - - session.events += [ - _from_api_event(event) - for event in converted_api_response['sessionEvents'] - ] + list_events_kwargs = {} + if config and not config.num_recent_events and config.after_timestamp: + list_events_kwargs['config'] = { + 'filter': 'timestamp>="{}"'.format( + datetime.datetime.fromtimestamp( + config.after_timestamp, tz=datetime.timezone.utc + ).isoformat() + ) + } - while converted_api_response.get('nextPageToken', None): - page_token = converted_api_response.get('nextPageToken', None) - list_events_api_response = await api_client.async_request( - http_method='GET', - path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}/events?pageToken={page_token}', - request_dict={}, - ) - converted_api_response = _convert_api_response(list_events_api_response) - - # Handles empty response case where there are no more events to fetch - if not converted_api_response or converted_api_response.get( - 'httpHeaders', None - ): - break - session.events += [ - _from_api_event(event) - for event in converted_api_response['sessionEvents'] - ] + events_iterator = api_client.agent_engines.sessions.events.list( + name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', + **list_events_kwargs, + ) + session.events += [_from_api_event(event) for event in events_iterator] session.events = [ event for event in session.events if event.timestamp <= update_timestamp ] - session.events.sort(key=lambda event: event.timestamp) # Filter events based on config if config: if config.num_recent_events: session.events = session.events[-config.num_recent_events :] - elif config.after_timestamp: - i = len(session.events) - 1 - while i >= 0: - if session.events[i].timestamp < config.after_timestamp: - break - i -= 1 - if i >= 0: - session.events = session.events[i:] return session @@ -275,46 +206,22 @@ async def list_sessions( reasoning_engine_id = self._get_reasoning_engine_id(app_name) api_client = self._get_api_client() - base_path = f'reasoningEngines/{reasoning_engine_id}/sessions' sessions = [] - page_token = None - while True: - path = base_path - query_params = {} - if user_id: - query_params['filter'] = f'user_id="{user_id}"' - if page_token: - query_params['pageToken'] = page_token - - if query_params: - path = f'{path}?{urllib.parse.urlencode(query_params)}' - - list_sessions_api_response = await api_client.async_request( - http_method='GET', - path=path, - request_dict={}, + sessions_iterator = api_client.agent_engines.sessions.list( + name=f'reasoningEngines/{reasoning_engine_id}', + config={'filter': f'user_id="{user_id}"'}, + ) + + for api_session in sessions_iterator: + sessions.append( + Session( + app_name=app_name, + user_id=user_id, + id=api_session.name.split('/')[-1], + state=getattr(api_session, 'session_state', None) or {}, + last_update_time=api_session.update_time.timestamp(), + ) ) - converted_api_response = _convert_api_response(list_sessions_api_response) - - # Handles empty response case - if not converted_api_response or converted_api_response.get( - 'httpHeaders', None - ): - break - - for api_session in converted_api_response.get('sessions', []): - session = Session( - app_name=app_name, - user_id=user_id, - id=api_session['name'].split('/')[-1], - state=api_session.get('sessionState', {}), - last_update_time=isoparse(api_session['updateTime']).timestamp(), - ) - sessions.append(session) - - page_token = converted_api_response.get('nextPageToken') - if not page_token: - break return ListSessionsResponse(sessions=sessions) @@ -325,10 +232,8 @@ async def delete_session( api_client = self._get_api_client() try: - await api_client.async_request( - http_method='DELETE', - path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', - request_dict={}, + api_client.agent_engines.sessions.delete( + name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', ) except Exception as e: logger.error('Error deleting session %s: %s', session_id, e) @@ -341,10 +246,52 @@ async def append_event(self, session: Session, event: Event) -> Event: reasoning_engine_id = self._get_reasoning_engine_id(session.app_name) api_client = self._get_api_client() - await api_client.async_request( - http_method='POST', - path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session.id}:appendEvent', - request_dict=_convert_event_to_json(event), + + config = {} + if event.content: + config['content'] = event.content.model_dump( + exclude_none=True, mode='json' + ) + if event.actions: + config['actions'] = { + 'skip_summarization': event.actions.skip_summarization, + 'state_delta': event.actions.state_delta, + 'artifact_delta': event.actions.artifact_delta, + 'transfer_agent': event.actions.transfer_to_agent, + 'escalate': event.actions.escalate, + 'requested_auth_configs': event.actions.requested_auth_configs, + } + if event.error_code: + config['error_code'] = event.error_code + if event.error_message: + config['error_message'] = event.error_message + + metadata_dict = { + 'partial': event.partial, + 'turn_complete': event.turn_complete, + 'interrupted': event.interrupted, + 'branch': event.branch, + 'custom_metadata': event.custom_metadata, + 'long_running_tool_ids': ( + list(event.long_running_tool_ids) + if event.long_running_tool_ids + else None + ), + } + if event.grounding_metadata: + metadata_dict['grounding_metadata'] = event.grounding_metadata.model_dump( + exclude_none=True, mode='json' + ) + config['event_metadata'] = metadata_dict + + api_client.agent_engines.sessions.events.append( + name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session.id}', + author=event.author, + invocation_id=event.invocation_id, + timestamp=datetime.datetime.fromtimestamp( + event.timestamp, tz=datetime.timezone.utc + ), + config=config, ) return event @@ -368,24 +315,19 @@ def _get_reasoning_engine_id(self, app_name: str): def _api_client_http_options_override( self, - ) -> Optional[genai.types.HttpOptions]: + ) -> Optional[Union[types.HttpOptions, types.HttpOptionsDict]]: return None - def _get_api_client(self) -> genai.client.BaseApiClient: + def _get_api_client(self) -> vertexai.Client: """Instantiates an API client for the given project and location. - It needs to be instantiated inside each request so that the event loop - management can be properly propagated. - Returns: An API client for the given project and location. """ - return genai.client.BaseApiClient( - vertexai=True, - project=self._project, - location=self._location, - http_options=self._api_client_http_options_override(), - ) + client = vertexai.Client(project=self._project, location=self._location) + if self._api_client_http_options_override(): + client.http_options = self._api_client_http_options_override() + return client def _is_vertex_express_mode( @@ -400,13 +342,6 @@ def _is_vertex_express_mode( ) -def _convert_api_response(api_response): - """Converts the API response to a JSON object based on the type.""" - if hasattr(api_response, 'body'): - return json.loads(api_response.body) - return api_response - - def _convert_event_to_json(event: Event) -> Dict[str, Any]: metadata_json = { 'partial': event.partial, @@ -460,47 +395,60 @@ def _convert_event_to_json(event: Event) -> Dict[str, Any]: return event_json -def _from_api_event(api_event: Dict[str, Any]) -> Event: - event_actions = EventActions() - if api_event.get('actions', None): - event_actions = EventActions( - skip_summarization=api_event['actions'].get('skipSummarization', None), - state_delta=api_event['actions'].get('stateDelta', {}), - artifact_delta=api_event['actions'].get('artifactDelta', {}), - transfer_to_agent=api_event['actions'].get('transferAgent', None), - escalate=api_event['actions'].get('escalate', None), - requested_auth_configs=api_event['actions'].get( - 'requestedAuthConfigs', {} - ), - ) - - event = Event( - id=api_event['name'].split('/')[-1], - invocation_id=api_event['invocationId'], - author=api_event['author'], - actions=event_actions, - content=_session_util.decode_content(api_event.get('content', None)), - timestamp=isoparse(api_event['timestamp']).timestamp(), - error_code=api_event.get('errorCode', None), - error_message=api_event.get('errorMessage', None), - ) - - if api_event.get('eventMetadata', None): - long_running_tool_ids_list = api_event['eventMetadata'].get( - 'longRunningToolIds', None - ) - event.partial = api_event['eventMetadata'].get('partial', None) - event.turn_complete = api_event['eventMetadata'].get('turnComplete', None) - event.interrupted = api_event['eventMetadata'].get('interrupted', None) - event.branch = api_event['eventMetadata'].get('branch', None) - event.custom_metadata = api_event['eventMetadata'].get( - 'customMetadata', None - ) - event.grounding_metadata = _session_util.decode_grounding_metadata( - api_event['eventMetadata'].get('groundingMetadata', None) +def _from_api_event(api_event_obj: vertexai.types.SessionEvent) -> Event: + """Converts an API event object to an Event object.""" + actions = getattr(api_event_obj, 'actions', None) + if actions: + actions_dict = actions.model_dump(exclude_none=True, mode='python') + rename_map = {'transfer_agent': 'transfer_to_agent'} + renamed_actions_dict = { + rename_map.get(k, k): v for k, v in actions_dict.items() + } + event_actions = EventActions.model_validate(renamed_actions_dict) + else: + event_actions = EventActions() + + event_metadata = getattr(api_event_obj, 'event_metadata', None) + if event_metadata: + long_running_tool_ids_list = getattr( + event_metadata, 'long_running_tool_ids', None ) - event.long_running_tool_ids = ( + long_running_tool_ids = ( set(long_running_tool_ids_list) if long_running_tool_ids_list else None ) - - return event + partial = getattr(event_metadata, 'partial', None) + turn_complete = getattr(event_metadata, 'turn_complete', None) + interrupted = getattr(event_metadata, 'interrupted', None) + branch = getattr(event_metadata, 'branch', None) + custom_metadata = getattr(event_metadata, 'custom_metadata', None) + grounding_metadata = _session_util.decode_grounding_metadata( + getattr(event_metadata, 'grounding_metadata', None) + ) + else: + long_running_tool_ids = None + partial = None + turn_complete = None + interrupted = None + branch = None + custom_metadata = None + grounding_metadata = None + + return Event( + id=api_event_obj.name.split('/')[-1], + invocation_id=api_event_obj.invocation_id, + author=api_event_obj.author, + actions=event_actions, + content=_session_util.decode_content( + getattr(api_event_obj, 'content', None) + ), + timestamp=api_event_obj.timestamp.timestamp(), + error_code=getattr(api_event_obj, 'error_code', None), + error_message=getattr(api_event_obj, 'error_message', None), + partial=partial, + turn_complete=turn_complete, + interrupted=interrupted, + branch=branch, + custom_metadata=custom_metadata, + grounding_metadata=grounding_metadata, + long_running_tool_ids=long_running_tool_ids, + ) diff --git a/tests/unittests/sessions/test_vertex_ai_session_service.py b/tests/unittests/sessions/test_vertex_ai_session_service.py index f72394c44c..fc9c2b5f2e 100644 --- a/tests/unittests/sessions/test_vertex_ai_session_service.py +++ b/tests/unittests/sessions/test_vertex_ai_session_service.py @@ -12,21 +12,23 @@ # See the License for the specific language governing permissions and # limitations under the License. +import copy import re -import this +import types from typing import Any from typing import List from typing import Optional from typing import Tuple from unittest import mock -from urllib import parse from dateutil.parser import isoparse from google.adk.events.event import Event from google.adk.events.event_actions import EventActions +from google.adk.sessions.base_session_service import GetSessionConfig from google.adk.sessions.session import Session from google.adk.sessions.vertex_ai_session_service import VertexAiSessionService -from google.genai import types +from google.api_core import exceptions as api_core_exceptions +from google.genai import types as genai_types import pytest MOCK_SESSION_JSON_1 = { @@ -34,28 +36,28 @@ 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/1' ), - 'createTime': '2024-12-12T12:12:12.123456Z', - 'updateTime': '2024-12-12T12:12:12.123456Z', - 'sessionState': { + 'create_time': '2024-12-12T12:12:12.123456Z', + 'update_time': '2024-12-12T12:12:12.123456Z', + 'session_state': { 'key': {'value': 'test_value'}, }, - 'userId': 'user', + 'user_id': 'user', } MOCK_SESSION_JSON_2 = { 'name': ( 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/2' ), - 'updateTime': '2024-12-13T12:12:12.123456Z', - 'userId': 'user', + 'update_time': '2024-12-13T12:12:12.123456Z', + 'user_id': 'user', } MOCK_SESSION_JSON_3 = { 'name': ( 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/3' ), - 'updateTime': '2024-12-14T12:12:12.123456Z', - 'userId': 'user2', + 'update_time': '2024-12-14T12:12:12.123456Z', + 'user_id': 'user2', } MOCK_EVENT_JSON = [ { @@ -63,7 +65,7 @@ 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/1/events/123' ), - 'invocationId': '123', + 'invocation_id': '123', 'author': 'user', 'timestamp': '2024-12-12T12:12:12.123456Z', 'content': { @@ -72,17 +74,17 @@ ], }, 'actions': { - 'stateDelta': { + 'state_delta': { 'key': {'value': 'test_value'}, }, - 'transferAgent': 'agent', + 'transfer_agent': 'agent', }, - 'eventMetadata': { + 'event_metadata': { 'partial': False, - 'turnComplete': True, + 'turn_complete': True, 'interrupted': False, 'branch': '', - 'longRunningToolIds': ['tool1'], + 'long_running_tool_ids': ['tool1'], }, }, ] @@ -92,7 +94,7 @@ 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/2/events/123' ), - 'invocationId': '222', + 'invocation_id': '222', 'author': 'user', 'timestamp': '2024-12-12T12:12:12.123456Z', }, @@ -103,9 +105,9 @@ 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/2/events/456' ), - 'invocationId': '333', + 'invocation_id': '333', 'author': 'user', - 'timestamp': '2024-12-12T12:12:12.123456Z', + 'timestamp': '2024-12-12T12:12:13.123456Z', }, ] MOCK_SESSION_JSON_PAGE1 = { @@ -113,31 +115,33 @@ 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/page1' ), - 'updateTime': '2024-12-15T12:12:12.123456Z', - 'userId': 'user_with_pages', + 'update_time': '2024-12-15T12:12:12.123456Z', + 'user_id': 'user_with_pages', } MOCK_SESSION_JSON_PAGE2 = { 'name': ( 'projects/test-project/locations/test-location/' 'reasoningEngines/123/sessions/page2' ), - 'updateTime': '2024-12-16T12:12:12.123456Z', - 'userId': 'user_with_pages', + 'update_time': '2024-12-16T12:12:12.123456Z', + 'user_id': 'user_with_pages', } MOCK_SESSION = Session( app_name='123', user_id='user', id='1', - state=MOCK_SESSION_JSON_1['sessionState'], - last_update_time=isoparse(MOCK_SESSION_JSON_1['updateTime']).timestamp(), + state=MOCK_SESSION_JSON_1['session_state'], + last_update_time=isoparse(MOCK_SESSION_JSON_1['update_time']).timestamp(), events=[ Event( id='123', invocation_id='123', author='user', timestamp=isoparse(MOCK_EVENT_JSON[0]['timestamp']).timestamp(), - content=types.Content(parts=[types.Part(text='test_content')]), + content=genai_types.Content( + parts=[genai_types.Part(text='test_content')] + ), actions=EventActions( transfer_to_agent='agent', state_delta={'key': {'value': 'test_value'}}, @@ -155,7 +159,7 @@ app_name='123', user_id='user', id='2', - last_update_time=isoparse(MOCK_SESSION_JSON_2['updateTime']).timestamp(), + last_update_time=isoparse(MOCK_SESSION_JSON_2['update_time']).timestamp(), events=[ Event( id='123', @@ -173,12 +177,52 @@ ) -SESSION_REGEX = r'^reasoningEngines/([^/]+)/sessions/([^/]+)$' -SESSIONS_REGEX = r'^reasoningEngines/([^/]+)/sessions\?.*$' -EVENTS_REGEX = ( - r'^reasoningEngines/([^/]+)/sessions/([^/]+)/events(?:\?pageToken=([^/]+))?' -) -LRO_REGEX = r'^operations/([^/]+)$' +class PydanticNamespace(types.SimpleNamespace): + + def model_dump(self, exclude_none=True, mode='python'): + d = {} + for k, v in self.__dict__.items(): + if exclude_none and v is None: + continue + if isinstance(v, PydanticNamespace): + d[k] = v.model_dump(exclude_none=exclude_none, mode=mode) + elif isinstance(v, list): + d[k] = [ + i.model_dump(exclude_none=exclude_none, mode=mode) + if isinstance(i, PydanticNamespace) + else i + for i in v + ] + else: + d[k] = v + return d + + +def _convert_to_object(data): + if isinstance(data, dict): + kwargs = {} + for key, value in data.items(): + if key in [ + 'timestamp', + 'update_time', + 'create_time', + ] and isinstance(value, str): + kwargs[key] = isoparse(value) + elif key in [ + 'session_state', + 'state_delta', + 'artifact_delta', + 'custom_metadata', + 'requested_auth_configs', + ]: + kwargs[key] = value + else: + kwargs[key] = _convert_to_object(value) + return PydanticNamespace(**kwargs) + elif isinstance(data, list): + return [_convert_to_object(item) for item in data] + else: + return data class MockApiClient: @@ -186,112 +230,126 @@ class MockApiClient: def __init__(self) -> None: """Initializes MockClient.""" - this.session_dict: dict[str, Any] = {} - this.event_dict: dict[str, Tuple[List[Any], Optional[str]]] = {} - - async def async_request( - self, http_method: str, path: str, request_dict: dict[str, Any] - ): - """Mocks the API Client request method""" - if http_method == 'GET': - if re.match(SESSION_REGEX, path): - match = re.match(SESSION_REGEX, path) - if match: - session_id = match.group(2) - if session_id in self.session_dict: - return self.session_dict[session_id] - else: - raise ValueError(f'Session not found: {session_id}') - elif re.match(SESSIONS_REGEX, path): - parsed_url = parse.urlparse(path) - query_params = parse.parse_qs(parsed_url.query) - filter_val = query_params.get('filter', [''])[0] - user_id_match = re.search(r'user_id="([^"]+)"', filter_val) - if not user_id_match: - raise ValueError(f'Could not find user_id in filter: {filter_val}') - user_id = user_id_match.group(1) - - if user_id == 'user_with_pages': - page_token = query_params.get('pageToken', [None])[0] - if page_token == 'my_token': - return {'sessions': [MOCK_SESSION_JSON_PAGE2]} - else: - return { - 'sessions': [MOCK_SESSION_JSON_PAGE1], - 'nextPageToken': 'my_token', - } - return { - 'sessions': [ - session - for session in self.session_dict.values() - if session['userId'] == user_id - ], - } - elif re.match(EVENTS_REGEX, path): - match = re.match(EVENTS_REGEX, path) - if match: - session_id = match.group(2) - if match.group(3): - page_token = match.group(3) - if page_token == 'my_token': - response = {'sessionEvents': MOCK_EVENT_JSON_3} - response['nextPageToken'] = 'my_token2' - return response - else: - return {} - events_tuple = self.event_dict.get(session_id, ([], None)) - response = {'sessionEvents': events_tuple[0]} - if events_tuple[1]: - response['nextPageToken'] = events_tuple[1] - return response - elif re.match(LRO_REGEX, path): - # Mock long-running operation as completed - return { - 'name': path, - 'done': True, - 'response': self.session_dict['4'], # Return the created session - } - else: - raise ValueError(f'Unsupported path: {path}') - elif http_method == 'POST': - new_session_id = '4' - self.session_dict[new_session_id] = { - 'name': ( - 'projects/test-project/locations/test-location/' - 'reasoningEngines/123/sessions/' - + new_session_id - ), - 'userId': request_dict['user_id'], - 'sessionState': request_dict.get('session_state', {}), - 'updateTime': '2024-12-12T12:12:12.123456Z', - } - return { - 'name': ( - 'projects/test_project/locations/test_location/' - 'reasoningEngines/123/sessions/' - + new_session_id - + '/operations/111' - ), - 'done': False, - } - elif http_method == 'DELETE': - match = re.match(SESSION_REGEX, path) + self.session_dict: dict[str, Any] = {} + self.event_dict: dict[str, Tuple[List[Any], Optional[str]]] = {} + self.agent_engines = mock.Mock() + self.agent_engines.sessions.get.side_effect = self._get_session + self.agent_engines.sessions.list.side_effect = self._list_sessions + self.agent_engines.sessions.delete.side_effect = self._delete_session + self.agent_engines.sessions.create.side_effect = self._create_session + self.agent_engines.sessions.events.list.side_effect = self._list_events + self.agent_engines.sessions.events.append.side_effect = self._append_event + + def _get_session(self, name: str): + session_id = name.split('/')[-1] + if session_id in self.session_dict: + return _convert_to_object(self.session_dict[session_id]) + raise api_core_exceptions.NotFound(f'Session not found: {session_id}') + + def _list_sessions(self, name: str, config: dict[str, Any]): + filter_val = config.get('filter', '') + user_id_match = re.search(r'user_id="([^"]+)"', filter_val) + if not user_id_match: + raise ValueError(f'Could not find user_id in filter: {filter_val}') + user_id = user_id_match.group(1) + + if user_id == 'user_with_pages': + return [ + _convert_to_object(MOCK_SESSION_JSON_PAGE1), + _convert_to_object(MOCK_SESSION_JSON_PAGE2), + ] + return [ + _convert_to_object(session) + for session in self.session_dict.values() + if session['user_id'] == user_id + ] + + def _delete_session(self, name: str): + session_id = name.split('/')[-1] + self.session_dict.pop(session_id) + + def _create_session(self, name: str, user_id: str, config: dict[str, Any]): + new_session_id = '4' + self.session_dict[new_session_id] = { + 'name': ( + 'projects/test-project/locations/test-location/' + 'reasoningEngines/123/sessions/' + + new_session_id + ), + 'user_id': user_id, + 'session_state': config.get('session_state', {}), + 'update_time': '2024-12-12T12:12:12.123456Z', + } + return _convert_to_object({ + 'name': ( + 'projects/test_project/locations/test_location/' + 'reasoningEngines/123/sessions/' + + new_session_id + + '/operations/111' + ), + 'done': True, + 'response': self.session_dict['4'], + }) + + def _list_events(self, name: str, **kwargs): + session_id = name.split('/')[-1] + events = [] + if session_id in self.event_dict: + events_tuple = self.event_dict[session_id] + events.extend(events_tuple[0]) + if events_tuple[1] == 'my_token': + events.extend(MOCK_EVENT_JSON_3) + + config = kwargs.get('config', {}) + filter_str = config.get('filter', None) + if filter_str: + match = re.search(r'timestamp>="([^"]+)"', filter_str) if match: - self.session_dict.pop(match.group(2)) + after_timestamp_str = match.group(1) + after_timestamp = isoparse(after_timestamp_str) + events = [ + event + for event in events + if isoparse(event['timestamp']) >= after_timestamp + ] + return [_convert_to_object(event) for event in events] + + def _append_event( + self, + name: str, + author: str, + invocation_id: str, + timestamp: Any, + config: dict[str, Any], + ): + session_id = name.split('/')[-1] + event_list, token = self.event_dict.get(session_id, ([], None)) + event_id = str(len(event_list) + 1000) # generate unique ID + + event_timestamp_str = timestamp.isoformat().replace('+00:00', 'Z') + event_json = { + 'name': f'{name}/events/{event_id}', + 'invocation_id': invocation_id, + 'author': author, + 'timestamp': event_timestamp_str, + } + event_json.update(config) + + if session_id in self.session_dict: + self.session_dict[session_id]['update_time'] = event_timestamp_str + + if session_id in self.event_dict: + self.event_dict[session_id][0].append(event_json) else: - raise ValueError(f'Unsupported http method: {http_method}') + self.event_dict[session_id] = ([event_json], None) def mock_vertex_ai_session_service(agent_engine_id: Optional[str] = None): """Creates a mock Vertex AI Session service for testing.""" - if agent_engine_id: - return VertexAiSessionService( - project='test-project', - location='test-location', - agent_engine_id=agent_engine_id, - ) return VertexAiSessionService( - project='test-project', location='test-location' + project='test-project', + location='test-location', + agent_engine_id=agent_engine_id, ) @@ -306,8 +364,8 @@ def mock_get_api_client(): 'page2': MOCK_SESSION_JSON_PAGE2, } api_client.event_dict = { - '1': (MOCK_EVENT_JSON, None), - '2': (MOCK_EVENT_JSON_2, 'my_token'), + '1': (copy.deepcopy(MOCK_EVENT_JSON), None), + '2': (copy.deepcopy(MOCK_EVENT_JSON_2), 'my_token'), } with mock.patch( 'google.adk.sessions.vertex_ai_session_service.VertexAiSessionService._get_api_client', @@ -320,30 +378,24 @@ def mock_get_api_client(): @pytest.mark.usefixtures('mock_get_api_client') @pytest.mark.parametrize('agent_engine_id', [None, '123']) async def test_get_empty_session(agent_engine_id): - if agent_engine_id: - session_service = mock_vertex_ai_session_service(agent_engine_id) - else: - session_service = mock_vertex_ai_session_service() - with pytest.raises(ValueError) as excinfo: + session_service = mock_vertex_ai_session_service(agent_engine_id) + with pytest.raises(api_core_exceptions.NotFound) as excinfo: await session_service.get_session( app_name='123', user_id='user', session_id='0' ) - assert str(excinfo.value) == 'Session not found: 0' + assert str(excinfo.value) == '404 Session not found: 0' @pytest.mark.asyncio @pytest.mark.usefixtures('mock_get_api_client') @pytest.mark.parametrize('agent_engine_id', [None, '123']) async def test_get_another_user_session(agent_engine_id): - if agent_engine_id: - session_service = mock_vertex_ai_session_service(agent_engine_id) - else: - session_service = mock_vertex_ai_session_service() + session_service = mock_vertex_ai_session_service(agent_engine_id) with pytest.raises(ValueError) as excinfo: await session_service.get_session( app_name='123', user_id='user2', session_id='1' ) - assert str(excinfo.value) == 'Session not found: 1' + assert str(excinfo.value) == 'Session 1 does not belong to user user2.' @pytest.mark.asyncio @@ -361,11 +413,11 @@ async def test_get_and_delete_session(): await session_service.delete_session( app_name='123', user_id='user', session_id='1' ) - with pytest.raises(ValueError) as excinfo: + with pytest.raises(api_core_exceptions.NotFound) as excinfo: await session_service.get_session( app_name='123', user_id='user', session_id='1' ) - assert str(excinfo.value) == 'Session not found: 1' + assert str(excinfo.value) == '404 Session not found: 1' @pytest.mark.asyncio @@ -381,6 +433,23 @@ async def test_get_session_with_page_token(): ) +@pytest.mark.asyncio +@pytest.mark.usefixtures('mock_get_api_client') +async def test_get_session_with_after_timestamp_filter(): + session_service = mock_vertex_ai_session_service() + session = await session_service.get_session( + app_name='123', + user_id='user', + session_id='2', + config=GetSessionConfig( + after_timestamp=isoparse('2024-12-12T12:12:13.0Z').timestamp() + ), + ) + assert session is not None + assert len(session.events) == 1 + assert session.events[0].id == '456' + + @pytest.mark.asyncio @pytest.mark.usefixtures('mock_get_api_client') async def test_list_sessions(): @@ -435,3 +504,38 @@ async def test_create_session_with_custom_session_id(): assert str(excinfo.value) == ( 'User-provided Session id is not supported for VertexAISessionService.' ) + + +@pytest.mark.asyncio +@pytest.mark.usefixtures('mock_get_api_client') +async def test_append_event(): + session_service = mock_vertex_ai_session_service() + session_before_append = await session_service.get_session( + app_name='123', user_id='user', session_id='1' + ) + event_to_append = Event( + invocation_id='new_invocation', + author='model', + timestamp=1734005533.0, + content=genai_types.Content(parts=[genai_types.Part(text='new_content')]), + actions=EventActions( + transfer_to_agent='another_agent', + state_delta={'new_key': 'new_value'}, + skip_summarization=True, + ), + error_code='1', + error_message='test_error', + branch='test_branch', + custom_metadata={'custom': 'data'}, + long_running_tool_ids={'tool2'}, + ) + + await session_service.append_event(session_before_append, event_to_append) + + retrieved_session = await session_service.get_session( + app_name='123', user_id='user', session_id='1' + ) + + assert len(retrieved_session.events) == 2 + event_to_append.id = retrieved_session.events[1].id + assert retrieved_session.events[1] == event_to_append From 0989d646885e1e1da343f81899e215ea7af480a8 Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Tue, 7 Oct 2025 10:48:16 -0700 Subject: [PATCH 040/303] chore: Remove unnecessary check tool type and tool attribute tool in config.tools cann't be ToolDict and must have computer_use attr PiperOrigin-RevId: 816283438 --- src/google/adk/models/google_llm.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/google/adk/models/google_llm.py b/src/google/adk/models/google_llm.py index ba4f0e52f9..ec93d72c9d 100644 --- a/src/google/adk/models/google_llm.py +++ b/src/google/adk/models/google_llm.py @@ -313,11 +313,7 @@ async def _preprocess_request(self, llm_request: LlmRequest) -> None: if llm_request.config and llm_request.config.tools: # Check if computer use is configured for tool in llm_request.config.tools: - if ( - isinstance(tool, (types.Tool, types.ToolDict)) - and hasattr(tool, 'computer_use') - and tool.computer_use - ): + if isinstance(tool, types.Tool) and tool.computer_use: llm_request.config.system_instruction = None await self._adapt_computer_use_tool(llm_request) From 4485379a049a5c84583a43c85d444ea1f1ba6f12 Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Tue, 7 Oct 2025 10:58:39 -0700 Subject: [PATCH 041/303] ADK changes PiperOrigin-RevId: 816288113 --- pyproject.toml | 1 + src/google/adk/agents/llm_agent.py | 20 +++ src/google/adk/tools/__init__.py | 2 + .../adk/tools/discovery_engine_search_tool.py | 126 ++++++++++++++++ .../unittests/agents/test_llm_agent_fields.py | 43 +++++- .../test_discovery_engine_search_tool.py | 134 ++++++++++++++++++ 6 files changed, 322 insertions(+), 4 deletions(-) create mode 100644 src/google/adk/tools/discovery_engine_search_tool.py create mode 100644 tests/unittests/tools/test_discovery_engine_search_tool.py diff --git a/pyproject.toml b/pyproject.toml index 147563096e..95c69f1fa7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,6 +34,7 @@ dependencies = [ "google-api-python-client>=2.157.0, <3.0.0", # Google API client discovery "google-cloud-aiplatform[agent_engines]>=1.112.0, <2.0.0",# For VertexAI integrations, e.g. example store. "google-cloud-bigtable>=2.32.0", # For Bigtable database + "google-cloud-discoveryengine>=0.13.12, <0.14.0", # For Discovery Engine Search Tool "google-cloud-secret-manager>=2.22.0, <3.0.0", # Fetching secrets in RestAPI Tool "google-cloud-spanner>=3.56.0, <4.0.0", # For Spanner database "google-cloud-speech>=2.30.0, <3.0.0", # For Audio Transcription diff --git a/src/google/adk/agents/llm_agent.py b/src/google/adk/agents/llm_agent.py index 9a96478678..21c82774c9 100644 --- a/src/google/adk/agents/llm_agent.py +++ b/src/google/adk/agents/llm_agent.py @@ -21,6 +21,7 @@ from typing import AsyncGenerator from typing import Awaitable from typing import Callable +from typing import cast from typing import ClassVar from typing import Dict from typing import Literal @@ -118,6 +119,7 @@ async def _convert_tool_union_to_tools( multiple_tools: bool = False, ) -> list[BaseTool]: from ..tools.google_search_tool import google_search + from ..tools.vertex_ai_search_tool import VertexAiSearchTool # Wrap google_search tool with AgentTool if there are multiple tools because # the built-in tools cannot be used together with other tools. @@ -128,6 +130,24 @@ async def _convert_tool_union_to_tools( return [GoogleSearchAgentTool(create_google_search_agent(model))] + # Replace VertexAiSearchTool with DiscoveryEngineSearchTool if there are + # multiple tools because the built-in tools cannot be used together with + # other tools. + # TODO(b/448114567): Remove once the workaround is no longer needed. + if multiple_tools and isinstance(tool_union, VertexAiSearchTool): + from ..tools.discovery_engine_search_tool import DiscoveryEngineSearchTool + + vais_tool = cast(VertexAiSearchTool, tool_union) + return [ + DiscoveryEngineSearchTool( + data_store_id=vais_tool.data_store_id, + data_store_specs=vais_tool.data_store_specs, + search_engine_id=vais_tool.search_engine_id, + filter=vais_tool.filter, + max_results=vais_tool.max_results, + ) + ] + if isinstance(tool_union, BaseTool): return [tool_union] if callable(tool_union): diff --git a/src/google/adk/tools/__init__.py b/src/google/adk/tools/__init__.py index c45b72b9b6..50d01dfe3a 100644 --- a/src/google/adk/tools/__init__.py +++ b/src/google/adk/tools/__init__.py @@ -18,6 +18,7 @@ from .agent_tool import AgentTool from .apihub_tool.apihub_toolset import APIHubToolset from .base_tool import BaseTool +from .discovery_engine_search_tool import DiscoveryEngineSearchTool from .enterprise_search_tool import enterprise_web_search_tool as enterprise_web_search from .example_tool import ExampleTool from .exit_loop_tool import exit_loop @@ -39,6 +40,7 @@ 'APIHubToolset', 'AuthToolArguments', 'BaseTool', + 'DiscoveryEngineSearchTool', 'enterprise_web_search', 'google_maps_grounding', 'google_search', diff --git a/src/google/adk/tools/discovery_engine_search_tool.py b/src/google/adk/tools/discovery_engine_search_tool.py new file mode 100644 index 0000000000..3eeb40f340 --- /dev/null +++ b/src/google/adk/tools/discovery_engine_search_tool.py @@ -0,0 +1,126 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from typing import Any +from typing import Optional + +from google.api_core.exceptions import GoogleAPICallError +import google.auth +from google.cloud import discoveryengine_v1beta as discoveryengine +from google.genai import types + +from .function_tool import FunctionTool + + +class DiscoveryEngineSearchTool(FunctionTool): + """Tool for searching the discovery engine.""" + + def __init__( + self, + data_store_id: Optional[str] = None, + data_store_specs: Optional[ + list[types.VertexAISearchDataStoreSpec] + ] = None, + search_engine_id: Optional[str] = None, + filter: Optional[str] = None, + max_results: Optional[int] = None, + ): + """Initializes the DiscoveryEngineSearchTool. + + Args: + data_store_id: The Vertex AI search data store resource ID in the format + of + "projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}". + data_store_specs: Specifications that define the specific DataStores to be + searched. It should only be set if engine is used. + search_engine_id: The Vertex AI search engine resource ID in the format of + "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}". + filter: The filter to be applied to the search request. Default is None. + max_results: The maximum number of results to return. Default is None. + """ + super().__init__(self.discovery_engine_search) + if (data_store_id is None and search_engine_id is None) or ( + data_store_id is not None and search_engine_id is not None + ): + raise ValueError( + "Either data_store_id or search_engine_id must be specified." + ) + if data_store_specs is not None and search_engine_id is None: + raise ValueError( + "search_engine_id must be specified if data_store_specs is specified." + ) + + self._serving_config = ( + f"{data_store_id or search_engine_id}/servingConfigs/default_config" + ) + self._data_store_specs = data_store_specs + self._search_engine_id = search_engine_id + self._filter = filter + self._max_results = max_results + + credentials, _ = google.auth.default() + self._discovery_engine_client = discoveryengine.SearchServiceClient( + credentials=credentials + ) + + def discovery_engine_search( + self, + query: str, + ) -> dict[str, Any]: + """Search the discovery engine. + + Args: + query: The search query. + + Returns: + A dictionary containing the status of the request and the list of search + results, which contains the title, url and content. + """ + request = discoveryengine.SearchRequest( + serving_config=self._serving_config, + query=query, + content_search_spec=discoveryengine.SearchRequest.ContentSearchSpec( + search_result_mode=discoveryengine.SearchRequest.ContentSearchSpec.SearchResultMode.CHUNKS, + chunk_spec=discoveryengine.SearchRequest.ContentSearchSpec.ChunkSpec( + num_previous_chunks=0, + num_next_chunks=0, + ), + ), + ) + + if self._data_store_specs: + request.data_store_specs = self._data_store_specs + if self._filter: + request.filter = self._filter + if self._max_results: + request.page_size = self._max_results + + results = [] + try: + response = self._discovery_engine_client.search(request) + for item in response.results: + chunk = item.chunk + if not chunk or not chunk.document_metadata: + continue + + results.append({ + "title": chunk.document_metadata.title, + "url": chunk.document_metadata.uri, + "content": chunk.content, + }) + except GoogleAPICallError as e: + return {"status": "error", "error_message": str(e)} + return {"status": "success", "results": results} diff --git a/tests/unittests/agents/test_llm_agent_fields.py b/tests/unittests/agents/test_llm_agent_fields.py index bac0aace71..42d02b4b70 100644 --- a/tests/unittests/agents/test_llm_agent_fields.py +++ b/tests/unittests/agents/test_llm_agent_fields.py @@ -15,18 +15,17 @@ """Unit tests for canonical_xxx fields in LlmAgent.""" from typing import Any -from typing import cast from typing import Optional from google.adk.agents.callback_context import CallbackContext from google.adk.agents.invocation_context import InvocationContext from google.adk.agents.llm_agent import LlmAgent -from google.adk.agents.loop_agent import LoopAgent from google.adk.agents.readonly_context import ReadonlyContext from google.adk.models.llm_request import LlmRequest from google.adk.models.registry import LLMRegistry from google.adk.sessions.in_memory_session_service import InMemorySessionService from google.adk.tools.google_search_tool import google_search +from google.adk.tools.vertex_ai_search_tool import VertexAiSearchTool from google.genai import types from pydantic import BaseModel import pytest @@ -306,6 +305,7 @@ async def test_handle_google_search_with_other_tools(self): assert len(tools) == 2 assert tools[0].name == '_my_tool' + assert tools[0].__class__.__name__ == 'FunctionTool' assert tools[1].name == 'google_search_agent' assert tools[1].__class__.__name__ == 'GoogleSearchAgentTool' @@ -325,8 +325,8 @@ async def test_handle_google_search_only(self): assert tools[0].name == 'google_search' assert tools[0].__class__.__name__ == 'GoogleSearchTool' - async def test_no_google_search(self): - """Test other tools are not affected.""" + async def test_function_tool_only(self): + """Test that function tool is not affected.""" agent = LlmAgent( name='test_agent', model='gemini-pro', @@ -340,3 +340,38 @@ async def test_no_google_search(self): assert len(tools) == 1 assert tools[0].name == '_my_tool' assert tools[0].__class__.__name__ == 'FunctionTool' + + async def test_handle_google_vais_with_other_tools(self): + """Test that VertexAiSearchTool is wrapped into an agent.""" + agent = LlmAgent( + name='test_agent', + model='gemini-pro', + tools=[ + self._my_tool, + VertexAiSearchTool(data_store_id='test_data_store_id'), + ], + ) + ctx = await _create_readonly_context(agent) + tools = await agent.canonical_tools(ctx) + + assert len(tools) == 2 + assert tools[0].name == '_my_tool' + assert tools[0].__class__.__name__ == 'FunctionTool' + assert tools[1].name == 'discovery_engine_search' + assert tools[1].__class__.__name__ == 'DiscoveryEngineSearchTool' + + async def test_handle_vais_only(self): + """Test that VertexAiSearchTool is not wrapped into an agent.""" + agent = LlmAgent( + name='test_agent', + model='gemini-pro', + tools=[ + VertexAiSearchTool(data_store_id='test_data_store_id'), + ], + ) + ctx = await _create_readonly_context(agent) + tools = await agent.canonical_tools(ctx) + + assert len(tools) == 1 + assert tools[0].name == 'vertex_ai_search' + assert tools[0].__class__.__name__ == 'VertexAiSearchTool' diff --git a/tests/unittests/tools/test_discovery_engine_search_tool.py b/tests/unittests/tools/test_discovery_engine_search_tool.py new file mode 100644 index 0000000000..08313789cf --- /dev/null +++ b/tests/unittests/tools/test_discovery_engine_search_tool.py @@ -0,0 +1,134 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from unittest import mock + +from google.adk.tools.discovery_engine_search_tool import DiscoveryEngineSearchTool +from google.api_core import exceptions +from google.cloud import discoveryengine_v1beta as discoveryengine +import pytest + + +@mock.patch( + "google.auth.default", + mock.MagicMock(return_value=("credentials", "project")), +) +class TestDiscoveryEngineSearchTool: + """Test the DiscoveryEngineSearchTool class.""" + + def test_init_with_data_store_id(self): + """Test initialization with data_store_id.""" + tool = DiscoveryEngineSearchTool(data_store_id="test_data_store") + assert ( + tool._serving_config == "test_data_store/servingConfigs/default_config" + ) + + def test_init_with_search_engine_id(self): + """Test initialization with search_engine_id.""" + tool = DiscoveryEngineSearchTool(search_engine_id="test_search_engine") + assert ( + tool._serving_config + == "test_search_engine/servingConfigs/default_config" + ) + + def test_init_with_no_ids_raises_error(self): + """Test that initialization with no IDs raises ValueError.""" + with pytest.raises( + ValueError, + match="Either data_store_id or search_engine_id must be specified.", + ): + DiscoveryEngineSearchTool() + + def test_init_with_both_ids_raises_error(self): + """Test that initialization with both IDs raises ValueError.""" + with pytest.raises( + ValueError, + match="Either data_store_id or search_engine_id must be specified.", + ): + DiscoveryEngineSearchTool( + data_store_id="test_data_store", + search_engine_id="test_search_engine", + ) + + def test_init_with_data_store_specs_without_search_engine_id_raises_error( + self, + ): + """Test that data_store_specs without search_engine_id raises ValueError.""" + with pytest.raises( + ValueError, + match=( + "search_engine_id must be specified if data_store_specs is" + " specified." + ), + ): + DiscoveryEngineSearchTool( + data_store_id="test_data_store", data_store_specs=[{"id": "123"}] + ) + + @mock.patch( + "google.cloud.discoveryengine_v1beta.SearchServiceClient", + ) + def test_discovery_engine_search_success(self, mock_search_client): + """Test successful discovery engine search.""" + mock_response = discoveryengine.SearchResponse() + mock_response.results = [ + discoveryengine.SearchResponse.SearchResult( + chunk=discoveryengine.Chunk( + document_metadata={ + "title": "Test Title", + "uri": "http://example.com", + }, + content="Test Content", + ) + ) + ] + mock_search_client.return_value.search.return_value = mock_response + + tool = DiscoveryEngineSearchTool(data_store_id="test_data_store") + result = tool.discovery_engine_search("test query") + + assert result["status"] == "success" + assert len(result["results"]) == 1 + assert result["results"][0]["title"] == "Test Title" + assert result["results"][0]["url"] == "http://example.com" + assert result["results"][0]["content"] == "Test Content" + + @mock.patch( + "google.cloud.discoveryengine_v1beta.SearchServiceClient", + ) + def test_discovery_engine_search_api_error(self, mock_search_client): + """Test discovery engine search with API error.""" + mock_search_client.return_value.search.side_effect = ( + exceptions.GoogleAPICallError("API error") + ) + + tool = DiscoveryEngineSearchTool(data_store_id="test_data_store") + result = tool.discovery_engine_search("test query") + + assert result["status"] == "error" + assert result["error_message"] == "None API error" + + @mock.patch( + "google.cloud.discoveryengine_v1beta.SearchServiceClient", + ) + def test_discovery_engine_search_no_results(self, mock_search_client): + """Test discovery engine search with no results.""" + mock_response = discoveryengine.SearchResponse() + mock_search_client.return_value.search.return_value = mock_response + + tool = DiscoveryEngineSearchTool(data_store_id="test_data_store") + result = tool.discovery_engine_search("test query") + + assert result["status"] == "success" + assert not result["results"] From 2699ad7aff1e94220e9101919c402e9edd156332 Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Tue, 7 Oct 2025 12:05:17 -0700 Subject: [PATCH 042/303] chore: fix the test_llm_agent_fields.py by adding a mock for `google.auth.default` PiperOrigin-RevId: 816319357 --- tests/unittests/agents/test_llm_agent_fields.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/unittests/agents/test_llm_agent_fields.py b/tests/unittests/agents/test_llm_agent_fields.py index 42d02b4b70..9dcac9c844 100644 --- a/tests/unittests/agents/test_llm_agent_fields.py +++ b/tests/unittests/agents/test_llm_agent_fields.py @@ -16,6 +16,7 @@ from typing import Any from typing import Optional +from unittest import mock from google.adk.agents.callback_context import CallbackContext from google.adk.agents.invocation_context import InvocationContext @@ -341,6 +342,10 @@ async def test_function_tool_only(self): assert tools[0].name == '_my_tool' assert tools[0].__class__.__name__ == 'FunctionTool' + @mock.patch( + 'google.auth.default', + mock.MagicMock(return_value=('credentials', 'project')), + ) async def test_handle_google_vais_with_other_tools(self): """Test that VertexAiSearchTool is wrapped into an agent.""" agent = LlmAgent( From 5ac446d947522a322e552af481efbccceedf5573 Mon Sep 17 00:00:00 2001 From: Yifan Wang Date: Tue, 7 Oct 2025 13:49:10 -0700 Subject: [PATCH 043/303] chore: add invocation_id to AgentRunRequest for resuming long running functions PiperOrigin-RevId: 816362937 --- src/google/adk/cli/adk_web_server.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/google/adk/cli/adk_web_server.py b/src/google/adk/cli/adk_web_server.py index d503e76264..98c77f5d73 100644 --- a/src/google/adk/cli/adk_web_server.py +++ b/src/google/adk/cli/adk_web_server.py @@ -172,6 +172,8 @@ class RunAgentRequest(common.BaseModel): new_message: types.Content streaming: bool = False state_delta: Optional[dict[str, Any]] = None + # for resume long running functions + invocation_id: Optional[str] = None class CreateSessionRequest(common.BaseModel): @@ -1386,6 +1388,7 @@ async def event_generator(): new_message=req.new_message, state_delta=req.state_delta, run_config=RunConfig(streaming_mode=stream_mode), + invocation_id=req.invocation_id, ) ) as agen: async for event in agen: From 3f86760e0baa3f9f2a1d8c433a5ce6f7e1dd0deb Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Tue, 7 Oct 2025 14:00:42 -0700 Subject: [PATCH 044/303] chore: Remove unnecessary check tool type and tool attribute tool in config.tools cann't be ToolDict and must have computer_use attr PiperOrigin-RevId: 816368064 --- src/google/adk/tools/computer_use/computer_use_toolset.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/google/adk/tools/computer_use/computer_use_toolset.py b/src/google/adk/tools/computer_use/computer_use_toolset.py index d5c69f732d..4a5f0295bc 100644 --- a/src/google/adk/tools/computer_use/computer_use_toolset.py +++ b/src/google/adk/tools/computer_use/computer_use_toolset.py @@ -190,11 +190,7 @@ async def process_llm_request( # Check if computer use is already configured for tool in llm_request.config.tools: - if ( - isinstance(tool, (types.Tool, types.ToolDict)) - and hasattr(tool, "computer_use") - and tool.computer_use - ): + if isinstance(tool, types.Tool) and tool.computer_use: logger.debug("Computer use already configured in LLM request") return From 636def3687a85e274e3ab44d906f6d92d49e84c0 Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Tue, 7 Oct 2025 14:46:54 -0700 Subject: [PATCH 045/303] fix: Add AuthConfig json serialization in vertex ai session service Resolves https://github.com/google/adk-python/issues/2035 PiperOrigin-RevId: 816387628 --- .../adk/sessions/vertex_ai_session_service.py | 85 ++++--------------- .../test_vertex_ai_session_service.py | 15 ++++ 2 files changed, 33 insertions(+), 67 deletions(-) diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index def89b24b3..e905d8adf0 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -14,11 +14,11 @@ from __future__ import annotations import datetime +import json import logging import os import re from typing import Any -from typing import Dict from typing import Optional from typing import Union @@ -132,9 +132,9 @@ async def _poll_session_resource(): session_id = get_session_response.name.split('/')[-1] session = Session( - app_name=str(app_name), - user_id=str(user_id), - id=str(session_id), + app_name=app_name, + user_id=user_id, + id=session_id, state=getattr(get_session_response, 'session_state', None) or {}, last_update_time=get_session_response.update_time.timestamp(), ) @@ -162,12 +162,11 @@ async def get_session( f'Session {session_id} does not belong to user {user_id}.' ) - session_id_from_name = get_session_response.name.split('/')[-1] update_timestamp = get_session_response.update_time.timestamp() session = Session( - app_name=str(app_name), - user_id=str(user_id), - id=str(session_id_from_name), + app_name=app_name, + user_id=user_id, + id=session_id, state=getattr(get_session_response, 'session_state', None) or {}, last_update_time=update_timestamp, ) @@ -186,10 +185,10 @@ async def get_session( name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', **list_events_kwargs, ) - session.events += [_from_api_event(event) for event in events_iterator] - - session.events = [ - event for event in session.events if event.timestamp <= update_timestamp + session.events += [ + _from_api_event(event) + for event in events_iterator + if event.timestamp.timestamp() <= update_timestamp ] # Filter events based on config @@ -259,7 +258,12 @@ async def append_event(self, session: Session, event: Event) -> Event: 'artifact_delta': event.actions.artifact_delta, 'transfer_agent': event.actions.transfer_to_agent, 'escalate': event.actions.escalate, - 'requested_auth_configs': event.actions.requested_auth_configs, + 'requested_auth_configs': { + k: json.loads(v.model_dump_json(exclude_none=True, by_alias=True)) + for k, v in event.actions.requested_auth_configs.items() + }, + # TODO: add requested_tool_confirmations, compaction, agent_state once + # they are available in the API. } if event.error_code: config['error_code'] = event.error_code @@ -305,7 +309,7 @@ def _get_reasoning_engine_id(self, app_name: str): pattern = r'^projects/([a-zA-Z0-9-_]+)/locations/([a-zA-Z0-9-_]+)/reasoningEngines/(\d+)$' match = re.fullmatch(pattern, app_name) - if not bool(match): + if not match: raise ValueError( f'App name {app_name} is not valid. It should either be the full' ' ReasoningEngine resource name, or the reasoning engine id.' @@ -342,59 +346,6 @@ def _is_vertex_express_mode( ) -def _convert_event_to_json(event: Event) -> Dict[str, Any]: - metadata_json = { - 'partial': event.partial, - 'turn_complete': event.turn_complete, - 'interrupted': event.interrupted, - 'branch': event.branch, - 'custom_metadata': event.custom_metadata, - 'long_running_tool_ids': ( - list(event.long_running_tool_ids) - if event.long_running_tool_ids - else None - ), - } - if event.grounding_metadata: - metadata_json['grounding_metadata'] = event.grounding_metadata.model_dump( - exclude_none=True, mode='json' - ) - - event_json = { - 'author': event.author, - 'invocation_id': event.invocation_id, - 'timestamp': { - 'seconds': int(event.timestamp), - 'nanos': int( - (event.timestamp - int(event.timestamp)) * 1_000_000_000 - ), - }, - 'error_code': event.error_code, - 'error_message': event.error_message, - 'event_metadata': metadata_json, - } - - if event.actions: - actions_json = { - 'skip_summarization': event.actions.skip_summarization, - 'state_delta': event.actions.state_delta, - 'artifact_delta': event.actions.artifact_delta, - 'transfer_agent': event.actions.transfer_to_agent, - 'escalate': event.actions.escalate, - 'requested_auth_configs': event.actions.requested_auth_configs, - } - event_json['actions'] = actions_json - if event.content: - event_json['content'] = event.content.model_dump( - exclude_none=True, mode='json' - ) - if event.error_code: - event_json['error_code'] = event.error_code - if event.error_message: - event_json['error_message'] = event.error_message - return event_json - - def _from_api_event(api_event_obj: vertexai.types.SessionEvent) -> Event: """Converts an API event object to an Event object.""" actions = getattr(api_event_obj, 'actions', None) diff --git a/tests/unittests/sessions/test_vertex_ai_session_service.py b/tests/unittests/sessions/test_vertex_ai_session_service.py index fc9c2b5f2e..92a180e641 100644 --- a/tests/unittests/sessions/test_vertex_ai_session_service.py +++ b/tests/unittests/sessions/test_vertex_ai_session_service.py @@ -22,6 +22,9 @@ from unittest import mock from dateutil.parser import isoparse +from fastapi.openapi import models as openapi_models +from google.adk.auth import auth_schemes +from google.adk.auth.auth_tool import AuthConfig from google.adk.events.event import Event from google.adk.events.event_actions import EventActions from google.adk.sessions.base_session_service import GetSessionConfig @@ -522,6 +525,18 @@ async def test_append_event(): transfer_to_agent='another_agent', state_delta={'new_key': 'new_value'}, skip_summarization=True, + requested_auth_configs={ + 'test_auth': AuthConfig( + auth_scheme=auth_schemes.OAuth2( + flows=openapi_models.OAuthFlows( + implicit=openapi_models.OAuthFlowImplicit( + authorizationUrl='http://test.com/auth', + scopes={}, + ) + ) + ), + ), + }, ), error_code='1', error_message='test_error', From db41f54e7bc832a72899eede3141517ca41cfa9a Mon Sep 17 00:00:00 2001 From: "Xinran (Sherry) Tang" Date: Tue, 7 Oct 2025 14:47:04 -0700 Subject: [PATCH 046/303] chore: When processing pending tool confirmation requests, only look at events in the same branch PiperOrigin-RevId: 816387687 --- src/google/adk/flows/llm_flows/request_confirmation.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/google/adk/flows/llm_flows/request_confirmation.py b/src/google/adk/flows/llm_flows/request_confirmation.py index 612d4e42f0..358cae80b3 100644 --- a/src/google/adk/flows/llm_flows/request_confirmation.py +++ b/src/google/adk/flows/llm_flows/request_confirmation.py @@ -48,7 +48,8 @@ async def run_async( agent = invocation_context.agent - events = invocation_context.session.events + # Only look at events in the current branch. + events = invocation_context._get_events(current_branch=True) if not events: return From b0f0698ec27b73cadec36f8fd9da1275c69c6b6f Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Tue, 7 Oct 2025 15:08:15 -0700 Subject: [PATCH 047/303] chore: Add a sample agent to demonstrate that built-in google search tool and VertexAiSearchTool can be used together with other tools PiperOrigin-RevId: 816396360 --- .../samples/built_in_multi_tools/README.md | 14 +++++ .../samples/built_in_multi_tools/__init__.py | 15 +++++ .../samples/built_in_multi_tools/agent.py | 63 +++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 contributing/samples/built_in_multi_tools/README.md create mode 100644 contributing/samples/built_in_multi_tools/__init__.py create mode 100644 contributing/samples/built_in_multi_tools/agent.py diff --git a/contributing/samples/built_in_multi_tools/README.md b/contributing/samples/built_in_multi_tools/README.md new file mode 100644 index 0000000000..a31bd6a8d4 --- /dev/null +++ b/contributing/samples/built_in_multi_tools/README.md @@ -0,0 +1,14 @@ +This agent is to demonstrate that the built-in google search tool and the +VertexAiSearchTool can be used together with other tools, even though the model +has the limitation that built-in tool cannot be used by other tools. + +It is achieved by the workarounds added in https://github.com/google/adk-python/blob/4485379a049a5c84583a43c85d444ea1f1ba6f12/src/google/adk/agents/llm_agent.py#L124-L149. + +To run this agent, set the environment variable `VERTEXAI_DATASTORE_ID` +(e.g. +`projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}`) +and use `adk web`. + +You can follow +https://cloud.google.com/generative-ai-app-builder/docs/create-data-store-es +to set up the datastore. diff --git a/contributing/samples/built_in_multi_tools/__init__.py b/contributing/samples/built_in_multi_tools/__init__.py new file mode 100644 index 0000000000..c48963cdc7 --- /dev/null +++ b/contributing/samples/built_in_multi_tools/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/built_in_multi_tools/agent.py b/contributing/samples/built_in_multi_tools/agent.py new file mode 100644 index 0000000000..5194e0ef9f --- /dev/null +++ b/contributing/samples/built_in_multi_tools/agent.py @@ -0,0 +1,63 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +import random + +from dotenv import load_dotenv +from google.adk import Agent +from google.adk.tools.google_search_tool import google_search +from google.adk.tools.tool_context import ToolContext +from google.adk.tools.vertex_ai_search_tool import VertexAiSearchTool + +load_dotenv(override=True) + +VERTEXAI_DATASTORE_ID = os.getenv("VERTEXAI_DATASTORE_ID") +if not VERTEXAI_DATASTORE_ID: + raise ValueError("VERTEXAI_DATASTORE_ID environment variable not set") + + +def roll_die(sides: int, tool_context: ToolContext) -> int: + """Roll a die and return the rolled result. + + Args: + sides: The integer number of sides the die has. + + Returns: + An integer of the result of rolling the die. + """ + result = random.randint(1, sides) + if "rolls" not in tool_context.state: + tool_context.state["rolls"] = [] + + tool_context.state["rolls"] = tool_context.state["rolls"] + [result] + return result + + +root_agent = Agent( + model="gemini-2.5-pro", + name="hello_world_agent", + description="A hello world agent with multiple tools.", + instruction=""" + You are a helpful assistant which can help user to roll dice and search for information. + - Use `roll_die` tool to roll dice. + - Use `VertexAISearchTool` to search for Google Agent Development Kit (ADK) information in the datastore. + - Use `google_search` to search for general information. + """, + tools=[ + roll_die, + VertexAiSearchTool(data_store_id=VERTEXAI_DATASTORE_ID), + google_search, + ], +) From 8110e41b36cceddb8b92ba17cffaacf701706b36 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Tue, 7 Oct 2025 15:42:43 -0700 Subject: [PATCH 048/303] fix: VertexSessionService with adding base_url override to base api override without removing initialized http_options PiperOrigin-RevId: 816409410 --- src/google/adk/sessions/vertex_ai_session_service.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index e905d8adf0..3cb1d61ea4 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -328,10 +328,11 @@ def _get_api_client(self) -> vertexai.Client: Returns: An API client for the given project and location. """ - client = vertexai.Client(project=self._project, location=self._location) - if self._api_client_http_options_override(): - client.http_options = self._api_client_http_options_override() - return client + return vertexai.Client( + project=self._project, + location=self._location, + http_options=self._api_client_http_options_override(), + ) def _is_vertex_express_mode( From 84f2f417f77ead3748c5bbeac7f144164b9a9416 Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Tue, 7 Oct 2025 16:11:05 -0700 Subject: [PATCH 049/303] fix: Rollback compaction handling from _get_contents The sorting may cause problems in complex cases so rolling it back. Will implement it with a non-sorting approach. PiperOrigin-RevId: 816420710 --- src/google/adk/flows/llm_flows/contents.py | 95 ++++------------------ 1 file changed, 17 insertions(+), 78 deletions(-) diff --git a/src/google/adk/flows/llm_flows/contents.py b/src/google/adk/flows/llm_flows/contents.py index 9ff7ee45d7..ec1ad5ac4d 100644 --- a/src/google/adk/flows/llm_flows/contents.py +++ b/src/google/adk/flows/llm_flows/contents.py @@ -236,40 +236,17 @@ def _contains_empty_content(event: Event) -> bool: def _get_contents( current_branch: Optional[str], events: list[Event], agent_name: str = '' ) -> list[types.Content]: - """Retrieves and processes events into a list of Contents for the LLM request. - - This function prepares the conversation history for the LLM by applying - several transformations: - 1. **Initial Filtering**: Removes events that are empty, do not belong - to the current invocation branch, or are related to authentication - or request confirmation. - 2. **Compaction Handling**: Identifies the latest compaction event. If found, - it replaces all events covered by the compaction range with the compacted - summary content. Only events *after* the compaction's end timestamp - are included in addition to the summary. If no compaction event exists, - all filtered events are considered. - 3. **Transcription Aggregation**: Combines consecutive - `input_transcription` and `output_transcription` events into single - 'user' and 'model' role `types.Content` events, respectively. - 4. **Multi-Agent Presentation**: Reformats messages from other agents - (i.e., not the current `agent_name` and not 'user') to be presented - as user-role context, prefixed with `[agent_name] said:`. Compactor - events are included directly without reformatting. - 5. **Function Call/Response Rearrangement**: Ensures proper pairing of - asynchronous function calls and responses within the event history. - 6. **Content Conversion**: Converts the final list of processed events - into `types.Content` objects, removing any client-side function call IDs. + """Get the contents for the LLM request. + + Applies filtering, rearrangement, and content processing to events. Args: - current_branch: The current invocation branch ID. Events outside this branch - will be filtered out. - events: A list of session events to process. - agent_name: The name of the agent currently running. Used to distinguish - between events from the current agent, other agents, and the user. + current_branch: The current branch of the agent. + events: Events to process. + agent_name: The name of the agent. Returns: - A list of `types.Content` objects representing the conversation history - to be sent to the LLM. + A list of processed contents. """ accumulated_input_transcription = '' accumulated_output_transcription = '' @@ -292,55 +269,18 @@ def _get_contents( raw_filtered_events.append(event) - # Find the latest compaction event. - latest_compaction_event = None - for event in reversed(raw_filtered_events): - if event.actions and event.actions.compaction: - latest_compaction_event = event - break - - events_to_process = [] - if latest_compaction_event: - compaction = latest_compaction_event.actions.compaction - if ( - compaction.start_timestamp is not None - and compaction.end_timestamp is not None - ): - # Add the compacted event itself. - new_event = Event( - timestamp=compaction.end_timestamp, - author='compactor', - content=compaction.compacted_content, - branch=latest_compaction_event.branch, - invocation_id=latest_compaction_event.invocation_id, - actions=latest_compaction_event.actions, - ) - events_to_process.append(new_event) - - # Add events from raw_filtered_events that are *after* the - # latest compaction's end timestamp. - for event in raw_filtered_events: - if event.timestamp > compaction.end_timestamp: - events_to_process.append(event) - else: - # No compaction events, process all raw filtered events. - events_to_process = raw_filtered_events - - # Sort by timestamp to ensure chronological order. - events_to_process.sort(key=lambda x: x.timestamp) - filtered_events = [] # aggregate transcription events - for i in range(len(events_to_process)): - event = events_to_process[i] + for i in range(len(raw_filtered_events)): + event = raw_filtered_events[i] if not event.content: # Convert transcription into normal event if event.input_transcription and event.input_transcription.text: accumulated_input_transcription += event.input_transcription.text if ( - i != len(events_to_process) - 1 - and events_to_process[i + 1].input_transcription - and events_to_process[i + 1].input_transcription.text + i != len(raw_filtered_events) - 1 + and raw_filtered_events[i + 1].input_transcription + and raw_filtered_events[i + 1].input_transcription.text ): continue event = event.model_copy(deep=True) @@ -353,9 +293,9 @@ def _get_contents( elif event.output_transcription and event.output_transcription.text: accumulated_output_transcription += event.output_transcription.text if ( - i != len(events_to_process) - 1 - and events_to_process[i + 1].output_transcription - and events_to_process[i + 1].output_transcription.text + i != len(raw_filtered_events) - 1 + and raw_filtered_events[i + 1].output_transcription + and raw_filtered_events[i + 1].output_transcription.text ): continue event = event.model_copy(deep=True) @@ -384,9 +324,8 @@ def _get_contents( contents = [] for event in result_events: content = copy.deepcopy(event.content) - if content: - remove_client_function_call_id(content) - contents.append(content) + remove_client_function_call_id(content) + contents.append(content) return contents From 2b5acb98f577f5349e788bcf9910c8d7107e63b3 Mon Sep 17 00:00:00 2001 From: Douglas Reid Date: Tue, 7 Oct 2025 17:37:56 -0700 Subject: [PATCH 050/303] feat(models): add support for gemma model via gemini api MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge https://github.com/google/adk-python/pull/2857 Adds support for invoking Gemma models via the Gemini API endpoint. To support agentic function, callbacks are added which can extract and transform function calls and responses into user and model messages in the history. This change is intended to allow developers to explore the use of Gemma models for agentic purposes without requiring local deployment of the models. This should ease the burden of experimentation and testing for developers. A basic "hello world" style agent example is provided to demonstrate proper functioning of Gemma 3 models inside an Agent container, using the dice roll + prime check framework of similar examples for other models. ## Testing ### Testing Plan - add and run integration and unit tests - manual run of example `multi_tool_agent` from quickstart using new `Gemma` model - manual run of `hello_world_gemma` agent ### Automated Test Results: | Test Command | Results | |----------------|---------| | pytest ./tests/unittests | 4386 passed, 2849 warnings in 58.43s | | pytest ./tests/unittests/models/test_google_llm.py | 100 passed, 4 warnings in 5.83s | | pytest ./tests/integration/models/test_google_llm.py | 5 passed, 2 warnings in 3.73s | ### Manual Testing Here is a log of `multi_tool_agent` run with locally-built wheel and using Gemma model. ``` ❯ adk run multi_tool_agent Log setup complete: /var/folders/bg/_133c0ds2kb7cn699cpmmh_h0061bp/T/agents_log/agent.20250904_152617.log To access latest log: tail -F /var/folders/bg/_133c0ds2kb7cn699cpmmh_h0061bp/T/agents_log/agent.latest.log /Users//venvs/adk-quickstart/lib/python3.11/site-packages/google/adk/cli/cli.py:143: UserWarning: [EXPERIMENTAL] InMemoryCredentialService: This feature is experimental and may change or be removed in future versions without notice. It may introduce breaking changes at any time. credential_service = InMemoryCredentialService() /Users//venvs/adk-quickstart/lib/python3.11/site-packages/google/adk/auth/credential_service/in_memory_credential_service.py:33: UserWarning: [EXPERIMENTAL] BaseCredentialService: This feature is experimental and may change or be removed in future versions without notice. It may introduce breaking changes at any time. super().__init__() Running agent weather_time_agent, type exit to exit. [user]: what's the weather like today? [weather_time_agent]: Which city are you asking about? [user]: new york [weather_time_agent]: OK. The weather in New York is sunny with a temperature of 25 degrees Celsius (77 degrees Fahrenheit). ``` And here is a snippet of a log generated with DEBUG level logging of the `hello_world_gemma` sample. It demonstrates how function calls are extracted and inserted based on Gemma model interactions: ``` ... 2025-09-04 15:32:41,708 - DEBUG - google_llm.py:138 - LLM Request: ----------------------------------------------------------- System Instruction: None ----------------------------------------------------------- Contents: {"parts":[{"text":"\n You roll dice and answer questions about the outcome of the dice rolls.\n You can roll dice of different sizes...\n"}],"role":"user"} {"parts":[{"text":"Hi, introduce yourself."}],"role":"user"} {"parts":[{"text":"Hello! I am data_processing_agent, a hello world agent that can roll many-sided dice and check if numbers are prime. I'm ready to assist you with those tasks. Let's begin!\n\n\n\n"}],"role":"model"} {"parts":[{"text":"Roll a die with 100 sides and check if it is prime"}],"role":"user"} {"parts":[{"text":"{\"args\":{\"sides\":100},\"name\":\"roll_die\"}"}],"role":"model"} {"parts":[{"text":"Invoking tool `roll_die` produced: `{\"result\": 82}`."}],"role":"user"} {"parts":[{"text":"{\"args\":{\"nums\":[82]},\"name\":\"check_prime\"}"}],"role":"model"} {"parts":[{"text":"Invoking tool `check_prime` produced: `{\"result\": \"No prime numbers found.\"}`."}],"role":"user"} {"parts":[{"text":"The die roll was 82, and it is not a prime number.\n\n\n\n"}],"role":"model"} {"parts":[{"text":"Roll it again."}],"role":"user"} ----------------------------------------------------------- Functions: ----------------------------------------------------------- 2025-09-04 15:32:41,708 - INFO - models.py:8165 - AFC is enabled with max remote calls: 10. 2025-09-04 15:32:42,693 - INFO - google_llm.py:180 - Response received from the model. 2025-09-04 15:32:42,693 - DEBUG - google_llm.py:181 - LLM Response: ----------------------------------------------------------- Text: {"args":{"sides":100},"name":"roll_die"} ----------------------------------------------------------- ... ``` COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/2857 from douglas-reid:add-gemma-via-api e6d015f6a9ccbcf20ef7a7af8e4bbe1e9a5936b6 PiperOrigin-RevId: 816451001 --- .../samples/hello_world_gemma/__init__.py | 16 + .../samples/hello_world_gemma/agent.py | 95 ++++ .../samples/hello_world_gemma/main.py | 77 +++ src/google/adk/models/__init__.py | 6 +- src/google/adk/models/gemma_llm.py | 331 ++++++++++++ tests/integration/conftest.py | 2 +- tests/integration/models/test_gemma_llm.py | 57 ++ tests/unittests/models/test_gemma_llm.py | 506 ++++++++++++++++++ 8 files changed, 1087 insertions(+), 3 deletions(-) create mode 100644 contributing/samples/hello_world_gemma/__init__.py create mode 100644 contributing/samples/hello_world_gemma/agent.py create mode 100644 contributing/samples/hello_world_gemma/main.py create mode 100644 src/google/adk/models/gemma_llm.py create mode 100644 tests/integration/models/test_gemma_llm.py create mode 100644 tests/unittests/models/test_gemma_llm.py diff --git a/contributing/samples/hello_world_gemma/__init__.py b/contributing/samples/hello_world_gemma/__init__.py new file mode 100644 index 0000000000..7d5bb0b1c6 --- /dev/null +++ b/contributing/samples/hello_world_gemma/__init__.py @@ -0,0 +1,16 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from . import agent diff --git a/contributing/samples/hello_world_gemma/agent.py b/contributing/samples/hello_world_gemma/agent.py new file mode 100644 index 0000000000..3407d721d3 --- /dev/null +++ b/contributing/samples/hello_world_gemma/agent.py @@ -0,0 +1,95 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import random + +from google.adk.agents.llm_agent import Agent +from google.adk.models.gemma_llm import Gemma +from google.genai.types import GenerateContentConfig + + +def roll_die(sides: int) -> int: + """Roll a die and return the rolled result. + + Args: + sides: The integer number of sides the die has. + + Returns: + An integer of the result of rolling the die. + """ + return random.randint(1, sides) + + +async def check_prime(nums: list[int]) -> str: + """Check if a given list of numbers are prime. + + Args: + nums: The list of numbers to check. + + Returns: + A str indicating which number is prime. + """ + primes = set() + for number in nums: + number = number + if number <= 1: + continue + is_prime = True + for i in range(2, int(number**0.5) + 1): + if number % i == 0: + is_prime = False + break + if is_prime: + primes.add(number) + return ( + "No prime numbers found." + if not primes + else f"{', '.join(str(num) for num in primes)} are prime numbers." + ) + + +root_agent = Agent( + model=Gemma(model="gemma-3-27b-it"), + name="data_processing_agent", + description=( + "hello world agent that can roll many-sided dice and check if numbers" + " are prime." + ), + instruction=""" + You roll dice and answer questions about the outcome of the dice rolls. + You can roll dice of different sizes. + You can use multiple tools in parallel by calling functions in parallel(in one request and in one round). + It is ok to discuss previous dice roles, and comment on the dice rolls. + When you are asked to roll a die, you must call the roll_die tool with the number of sides. Be sure to pass in an integer. Do not pass in a string. + You should never roll a die on your own. + When checking prime numbers, call the check_prime tool with a list of integers. Be sure to pass in a list of integers. You should never pass in a string. + You should not check prime numbers before calling the tool. + When you are asked to roll a die and check prime numbers, you should always make the following two function calls: + 1. You should first call the roll_die tool to get a roll. Wait for the function response before calling the check_prime tool. + 2. After the user reports a response from roll_die tool, you should call the check_prime tool with the roll_die result. + 2.1 If user asks you to check primes based on previous rolls, make sure you include the previous rolls in the list. + 3. When you respond, you must include the roll_die result from step 1. + You should always perform the previous 3 steps when asking for a roll and checking prime numbers. + You should not rely on the previous history on prime results. + """, + tools=[ + roll_die, + check_prime, + ], + generate_content_config=GenerateContentConfig( + temperature=1.0, + top_p=0.95, + ), +) diff --git a/contributing/samples/hello_world_gemma/main.py b/contributing/samples/hello_world_gemma/main.py new file mode 100644 index 0000000000..f177064b68 --- /dev/null +++ b/contributing/samples/hello_world_gemma/main.py @@ -0,0 +1,77 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import asyncio +import logging +import time + +import agent +from dotenv import load_dotenv +from google.adk.artifacts.in_memory_artifact_service import InMemoryArtifactService +from google.adk.cli.utils import logs +from google.adk.runners import Runner +from google.adk.sessions.in_memory_session_service import InMemorySessionService +from google.adk.sessions.session import Session +from google.genai import types + +load_dotenv(override=True) +logs.log_to_tmp_folder(level=logging.INFO) + + +async def main(): + app_name = 'my_gemma_app' + user_id_1 = 'user1' + session_service = InMemorySessionService() + artifact_service = InMemoryArtifactService() + runner = Runner( + app_name=app_name, + agent=agent.root_agent, + artifact_service=artifact_service, + session_service=session_service, + ) + session_11 = await session_service.create_session( + app_name=app_name, user_id=user_id_1 + ) + + async def run_prompt(session: Session, new_message: str): + content = types.Content( + role='user', parts=[types.Part.from_text(text=new_message)] + ) + print('** User says:', content.model_dump(exclude_none=True)) + async for event in runner.run_async( + user_id=user_id_1, + session_id=session.id, + new_message=content, + ): + if event.content.parts and event.content.parts[0].text: + print(f'** {event.author}: {event.content.parts[0].text}') + + start_time = time.time() + print('Start time:', start_time) + print('------------------------------------') + await run_prompt(session_11, 'Hi, introduce yourself.') + await run_prompt( + session_11, 'Roll a die with 100 sides and check if it is prime' + ) + await run_prompt(session_11, 'Roll it again.') + await run_prompt(session_11, 'What numbers did I get?') + end_time = time.time() + print('------------------------------------') + print('End time:', end_time) + print('Total time:', end_time - start_time) + + +if __name__ == '__main__': + asyncio.run(main()) diff --git a/src/google/adk/models/__init__.py b/src/google/adk/models/__init__.py index fc86c197ca..c08570a96c 100644 --- a/src/google/adk/models/__init__.py +++ b/src/google/adk/models/__init__.py @@ -15,6 +15,7 @@ """Defines the interface to support a model.""" from .base_llm import BaseLlm +from .gemma_llm import Gemma from .google_llm import Gemini from .llm_request import LlmRequest from .llm_response import LlmResponse @@ -23,9 +24,10 @@ __all__ = [ 'BaseLlm', 'Gemini', + 'Gemma', 'LLMRegistry', ] -for regex in Gemini.supported_models(): - LLMRegistry.register(Gemini) +LLMRegistry.register(Gemini) +LLMRegistry.register(Gemma) diff --git a/src/google/adk/models/gemma_llm.py b/src/google/adk/models/gemma_llm.py new file mode 100644 index 0000000000..3233d66f99 --- /dev/null +++ b/src/google/adk/models/gemma_llm.py @@ -0,0 +1,331 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from functools import cached_property +import json +import logging +import re +from typing import Any +from typing import AsyncGenerator + +from google.adk.models.google_llm import Gemini +from google.adk.models.llm_request import LlmRequest +from google.adk.models.llm_response import LlmResponse +from google.adk.utils.variant_utils import GoogleLLMVariant +from google.genai import types +from google.genai.types import Content +from google.genai.types import FunctionDeclaration +from google.genai.types import Part +from pydantic import AliasChoices +from pydantic import BaseModel +from pydantic import Field +from pydantic import ValidationError +from typing_extensions import override + +logger = logging.getLogger('google_adk.' + __name__) + + +class GemmaFunctionCallModel(BaseModel): + """Flexible Pydantic model for parsing inline Gemma function call responses.""" + + name: str = Field(validation_alias=AliasChoices('name', 'function')) + parameters: dict[str, Any] = Field( + validation_alias=AliasChoices('parameters', 'args') + ) + + +class Gemma(Gemini): + """Integration for Gemma models exposed via the Gemini API. + + Only Gemma 3 models are supported at this time. For agentic use cases, + use of gemma-3-27b-it and gemma-3-12b-it are strongly recommended. + + For full documentation, see: https://ai.google.dev/gemma/docs/core/ + + NOTE: Gemma does **NOT** support system instructions. Any system instructions + will be replaced with an initial *user* prompt in the LLM request. If system + instructions change over the course of agent execution, the initial content + **SHOULD** be replaced. Special care is warranted here. + See: https://ai.google.dev/gemma/docs/core/prompt-structure#system-instructions + + NOTE: Gemma's function calling support is limited. It does not have full access to the + same built-in tools as Gemini. It also does not have special API support for tools and + functions. Rather, tools must be passed in via a `user` prompt, and extracted from model + responses based on approximate shape. + + NOTE: Vertex AI API support for Gemma is not currently included. This **ONLY** supports + usage via the Gemini API. + """ + + model: str = ( + 'gemma-3-27b-it' # Others: [gemma-3-1b-it, gemma-3-4b-it, gemma-3-12b-it] + ) + + @classmethod + @override + def supported_models(cls) -> list[str]: + """Provides the list of supported models. + + Returns: + A list of supported models. + """ + + return [ + r'gemma-3.*', + ] + + @cached_property + def _api_backend(self) -> GoogleLLMVariant: + return GoogleLLMVariant.GEMINI_API + + def _move_function_calls_into_system_instruction( + self, llm_request: LlmRequest + ): + if llm_request.model is None or not llm_request.model.startswith('gemma-3'): + return + + # Iterate through the existing contents to find and convert function calls and responses + # from text parts, as Gemma models don't directly support function calling. + new_contents: list[Content] = [] + for content_item in llm_request.contents: + ( + new_parts_for_content, + has_function_response_part, + has_function_call_part, + ) = _convert_content_parts_for_gemma(content_item) + + if has_function_response_part: + if new_parts_for_content: + new_contents.append(Content(role='user', parts=new_parts_for_content)) + elif has_function_call_part: + if new_parts_for_content: + new_contents.append( + Content(role='model', parts=new_parts_for_content) + ) + else: + new_contents.append(content_item) + + llm_request.contents = new_contents + + if not llm_request.config.tools: + return + + all_function_declarations: list[FunctionDeclaration] = [] + for tool_item in llm_request.config.tools: + if isinstance(tool_item, types.Tool) and tool_item.function_declarations: + all_function_declarations.extend(tool_item.function_declarations) + + if all_function_declarations: + system_instruction = _build_gemma_function_system_instruction( + all_function_declarations + ) + llm_request.append_instructions([system_instruction]) + + llm_request.config.tools = [] + + def _extract_function_calls_from_response(self, llm_response: LlmResponse): + if llm_response.partial or (llm_response.turn_complete is True): + return + + if not llm_response.content: + return + + if not llm_response.content.parts: + return + + if len(llm_response.content.parts) > 1: + return + + response_text = llm_response.content.parts[0].text + if not response_text: + return + + try: + json_candidate = None + + markdown_code_block_pattern = re.compile( + r'```(?:(json|tool_code))?\s*(.*?)\s*```', re.DOTALL + ) + block_match = markdown_code_block_pattern.search(response_text) + + if block_match: + json_candidate = block_match.group(2).strip() + else: + found, json_text = _get_last_valid_json_substring(response_text) + if found: + json_candidate = json_text + + if not json_candidate: + return + + function_call_parsed = GemmaFunctionCallModel.model_validate_json( + json_candidate + ) + function_call = types.FunctionCall( + name=function_call_parsed.name, + args=function_call_parsed.parameters, + ) + function_call_part = Part(function_call=function_call) + llm_response.content.parts = [function_call_part] + except (json.JSONDecodeError, ValidationError) as e: + logger.debug( + f'Error attempting to parse JSON into function call. Leaving as text' + f' response. %s', + e, + ) + except Exception as e: + logger.warning('Error processing Gemma function call response: %s', e) + + @override + async def _preprocess_request(self, llm_request: LlmRequest) -> None: + self._move_function_calls_into_system_instruction(llm_request=llm_request) + + if system_instruction := llm_request.config.system_instruction: + contents = llm_request.contents + instruction_content = Content( + role='user', parts=[Part.from_text(text=system_instruction)] + ) + + # NOTE: if history is preserved, we must include the system instructions ONLY once at the beginning + # of any chain of contents. + if contents: + if contents[0] != instruction_content: + # only prepend if it hasn't already been done + llm_request.contents = [instruction_content] + contents + + llm_request.config.system_instruction = None + + return await super()._preprocess_request(llm_request) + + @override + async def generate_content_async( + self, llm_request: LlmRequest, stream: bool = False + ) -> AsyncGenerator[LlmResponse, None]: + """Sends a request to the Gemma model. + + Args: + llm_request: LlmRequest, the request to send to the Gemini model. + stream: bool = False, whether to do streaming call. + + Yields: + LlmResponse: The model response. + """ + # print(f'{llm_request=}') + assert llm_request.model.startswith('gemma-'), ( + f'Requesting a non-Gemma model ({llm_request.model}) with the Gemma LLM' + ' is not supported.' + ) + + async for response in super().generate_content_async(llm_request, stream): + self._extract_function_calls_from_response(response) + yield response + + +def _convert_content_parts_for_gemma( + content_item: Content, +) -> tuple[list[Part], bool, bool]: + """Converts function call/response parts within a content item to text parts. + + Args: + content_item: The original Content item. + + Returns: + A tuple containing: + - A list of new Part objects with function calls/responses converted to text. + - A boolean indicating if any function response parts were found. + - A boolean indicating if any function call parts were found. + """ + new_parts: list[Part] = [] + has_function_response_part = False + has_function_call_part = False + + for part in content_item.parts: + if func_response := part.function_response: + has_function_response_part = True + response_text = ( + f'Invoking tool `{func_response.name}` produced:' + f' `{json.dumps(func_response.response)}`.' + ) + new_parts.append(Part.from_text(text=response_text)) + elif func_call := part.function_call: + has_function_call_part = True + new_parts.append( + Part.from_text(text=func_call.model_dump_json(exclude_none=True)) + ) + else: + new_parts.append(part) + return new_parts, has_function_response_part, has_function_call_part + + +def _build_gemma_function_system_instruction( + function_declarations: list[FunctionDeclaration], +) -> str: + """Constructs the system instruction string for Gemma function calling.""" + if not function_declarations: + return '' + + system_instruction_prefix = 'You have access to the following functions:\n[' + instruction_parts = [] + for func in function_declarations: + instruction_parts.append(func.model_dump_json(exclude_none=True)) + + separator = ',\n' + system_instruction = ( + f'{system_instruction_prefix}{separator.join(instruction_parts)}\n]\n' + ) + + system_instruction += ( + 'When you call a function, you MUST respond in the format of: ' + """{"name": function name, "parameters": dictionary of argument name and its value}\n""" + 'When you call a function, you MUST NOT include any other text in the' + ' response.\n' + ) + return system_instruction + + +def _get_last_valid_json_substring(text: str) -> tuple[bool, str | None]: + """Attempts to find and return the last valid JSON object in a string. + + This function is designed to extract JSON that might be embedded in a larger + text, potentially with introductory or concluding remarks. It will always chose + the last block of valid json found within the supplied text (if it exists). + + Args: + text: The input string to search for JSON objects. + + Returns: + A tuple: + - bool: True if a valid JSON substring was found, False otherwise. + - str | None: The last valid JSON substring found, or None if none was + found. + """ + decoder = json.JSONDecoder() + last_json_str = None + start_pos = 0 + while start_pos < len(text): + try: + first_brace_index = text.index('{', start_pos) + _, end_index = decoder.raw_decode(text[first_brace_index:]) + last_json_str = text[first_brace_index : first_brace_index + end_index] + start_pos = first_brace_index + end_index + except json.JSONDecodeError: + start_pos = first_brace_index + 1 + except ValueError: + break + + if last_json_str: + return True, last_json_str + return False, None diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index 6dc1f3d1bb..45e720a579 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -114,6 +114,6 @@ def pytest_generate_tests(metafunc: Metafunc): def _is_explicitly_marked(mark_name: str, metafunc: Metafunc) -> bool: if hasattr(metafunc.function, 'pytestmark'): for mark in metafunc.function.pytestmark: - if mark.name == 'parametrize' and mark.args[0] == mark_name: + if mark.name == 'parametrize' and mark_name in mark.args[0]: return True return False diff --git a/tests/integration/models/test_gemma_llm.py b/tests/integration/models/test_gemma_llm.py new file mode 100644 index 0000000000..81b9672a18 --- /dev/null +++ b/tests/integration/models/test_gemma_llm.py @@ -0,0 +1,57 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from google.adk.models.gemma_llm import Gemma +from google.adk.models.llm_request import LlmRequest +from google.adk.models.llm_response import LlmResponse +from google.genai import types +from google.genai.types import Content +from google.genai.types import Part +import pytest + +DEFAULT_GEMMA_MODEL = "gemma-3-1b-it" + + +@pytest.fixture +def gemma_llm(): + return Gemma(model=DEFAULT_GEMMA_MODEL) + + +@pytest.fixture +def gemma_request(): + return LlmRequest( + model=DEFAULT_GEMMA_MODEL, + contents=[ + Content( + role="user", + parts=[ + Part.from_text(text="You are a helpful assistant."), + Part.from_text(text="Hello!"), + ], + ) + ], + config=types.GenerateContentConfig( + temperature=0.1, + response_modalities=[types.Modality.TEXT], + system_instruction="Talk like a pirate.", + ), + ) + + +@pytest.mark.asyncio +@pytest.mark.parametrize("llm_backend", ["GOOGLE_AI"]) +async def test_generate_content_async(gemma_llm, gemma_request): + async for response in gemma_llm.generate_content_async(gemma_request): + assert isinstance(response, LlmResponse) + assert response.content.parts[0].text diff --git a/tests/unittests/models/test_gemma_llm.py b/tests/unittests/models/test_gemma_llm.py new file mode 100644 index 0000000000..2cf98306b9 --- /dev/null +++ b/tests/unittests/models/test_gemma_llm.py @@ -0,0 +1,506 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from google.adk.models.gemma_llm import Gemma +from google.adk.models.llm_request import LlmRequest +from google.adk.models.llm_response import LlmResponse +from google.genai import types +from google.genai.types import Content +from google.genai.types import Part +import pytest + + +@pytest.fixture +def llm_request(): + return LlmRequest( + model="gemma-3-4b-it", + contents=[Content(role="user", parts=[Part.from_text(text="Hello")])], + config=types.GenerateContentConfig( + temperature=0.1, + response_modalities=[types.Modality.TEXT], + system_instruction="You are a helpful assistant", + ), + ) + + +@pytest.fixture +def llm_request_with_duplicate_instruction(): + return LlmRequest( + model="gemma-3-1b-it", + contents=[ + Content( + role="user", + parts=[Part.from_text(text="Talk like a pirate.")], + ), + Content(role="user", parts=[Part.from_text(text="Hello")]), + ], + config=types.GenerateContentConfig( + response_modalities=[types.Modality.TEXT], + system_instruction="Talk like a pirate.", + ), + ) + + +@pytest.fixture +def llm_request_with_tools(): + return LlmRequest( + model="gemma-3-1b-it", + contents=[Content(role="user", parts=[Part.from_text(text="Hello")])], + config=types.GenerateContentConfig( + tools=[ + types.Tool( + function_declarations=[ + types.FunctionDeclaration( + name="search_web", + description="Search the web for a query.", + parameters=types.Schema( + type=types.Type.OBJECT, + properties={ + "query": types.Schema(type=types.Type.STRING) + }, + required=["query"], + ), + ), + types.FunctionDeclaration( + name="get_current_time", + description="Gets the current time.", + parameters=types.Schema( + type=types.Type.OBJECT, properties={} + ), + ), + ] + ) + ], + ), + ) + + +@pytest.mark.asyncio +async def test_not_gemma_model(): + llm = Gemma() + llm_request_bad_model = LlmRequest( + model="not-a-gemma-model", + ) + with pytest.raises(AssertionError, match=r".*model.*"): + async for _ in llm.generate_content_async(llm_request_bad_model): + pass + + +@pytest.mark.asyncio +@pytest.mark.parametrize( + "llm_request", + ["llm_request", "llm_request_with_duplicate_instruction"], + indirect=True, +) +async def test_preprocess_request(llm_request): + llm = Gemma() + want_content_text = llm_request.config.system_instruction + + await llm._preprocess_request(llm_request) + + # system instruction should be cleared + assert not llm_request.config.system_instruction + # should be two content bits now (deduped, if needed) + assert len(llm_request.contents) == 2 + # first message in contents should be "user": + assert llm_request.contents[0].role == "user" + assert llm_request.contents[0].parts[0].text == want_content_text + + +@pytest.mark.asyncio +async def test_preprocess_request_with_tools(llm_request_with_tools): + + gemma = Gemma() + await gemma._preprocess_request(llm_request_with_tools) + + assert not llm_request_with_tools.config.tools + + # The original user content should now be the second item + assert llm_request_with_tools.contents[1].role == "user" + assert llm_request_with_tools.contents[1].parts[0].text == "Hello" + + sys_instruct_text = llm_request_with_tools.contents[0].parts[0].text + assert sys_instruct_text is not None + assert "You have access to the following functions" in sys_instruct_text + assert ( + """{"description":"Search the web for a query.","name":"search_web",""" + in sys_instruct_text + ) + assert ( + """{"description":"Gets the current time.","name":"get_current_time","parameters":{"properties":{}""" + in sys_instruct_text + ) + + +@pytest.mark.asyncio +async def test_preprocess_request_with_function_response(): + # Simulate an LlmRequest with a function response + func_response_data = types.FunctionResponse( + name="search_web", response={"results": [{"title": "ADK"}]} + ) + llm_request = LlmRequest( + model="gemma-3-1b-it", + contents=[ + types.Content( + role="model", + parts=[types.Part(function_response=func_response_data)], + ) + ], + config=types.GenerateContentConfig(), + ) + + gemma = Gemma() + await gemma._preprocess_request(llm_request) + + # Assertions: function response converted to user role text content + assert llm_request.contents + assert len(llm_request.contents) == 1 + assert llm_request.contents[0].role == "user" + assert llm_request.contents[0].parts + assert ( + llm_request.contents[0].parts[0].text + == 'Invoking tool `search_web` produced: `{"results": [{"title":' + ' "ADK"}]}`.' + ) + assert llm_request.contents[0].parts[0].function_response is None + assert llm_request.contents[0].parts[0].function_call is None + + +@pytest.mark.asyncio +async def test_preprocess_request_with_function_call(): + func_call_data = types.FunctionCall(name="get_current_time", args={}) + llm_request = LlmRequest( + model="gemma-3-1b-it", + contents=[ + types.Content( + role="user", parts=[types.Part(function_call=func_call_data)] + ) + ], + ) + + gemma = Gemma() + await gemma._preprocess_request(llm_request) + + assert len(llm_request.contents) == 1 + assert llm_request.contents[0].role == "model" + expected_text = func_call_data.model_dump_json(exclude_none=True) + assert llm_request.contents[0].parts + got_part = llm_request.contents[0].parts[0] + assert got_part.text == expected_text + assert got_part.function_call is None + assert got_part.function_response is None + + +@pytest.mark.asyncio +async def test_preprocess_request_with_mixed_content(): + func_call = types.FunctionCall(name="get_weather", args={"city": "London"}) + func_response = types.FunctionResponse( + name="get_weather", response={"temp": "15C"} + ) + + llm_request = LlmRequest( + model="gemma-3-1b-it", + contents=[ + types.Content( + role="user", parts=[types.Part.from_text(text="Hello!")] + ), + types.Content( + role="model", parts=[types.Part(function_call=func_call)] + ), + types.Content( + role="some_function", + parts=[types.Part(function_response=func_response)], + ), + types.Content( + role="user", parts=[types.Part.from_text(text="How are you?")] + ), + ], + ) + + gemma = Gemma() + await gemma._preprocess_request(llm_request) + + # Assertions + assert len(llm_request.contents) == 4 + + # First part: original user text + assert llm_request.contents[0].role == "user" + assert llm_request.contents[0].parts + assert llm_request.contents[0].parts[0].text == "Hello!" + + # Second part: function call converted to model text + assert llm_request.contents[1].role == "model" + assert llm_request.contents[1].parts + assert llm_request.contents[1].parts[0].text == func_call.model_dump_json( + exclude_none=True + ) + + # Third part: function response converted to user text + assert llm_request.contents[2].role == "user" + assert llm_request.contents[2].parts + assert ( + llm_request.contents[2].parts[0].text + == 'Invoking tool `get_weather` produced: `{"temp": "15C"}`.' + ) + + # Fourth part: original user text + assert llm_request.contents[3].role == "user" + assert llm_request.contents[3].parts + assert llm_request.contents[3].parts[0].text == "How are you?" + + +def test_process_response(): + # Simulate a response from Gemma that should be converted to a FunctionCall + json_function_call_str = ( + '{"name": "search_web", "parameters": {"query": "latest news"}}' + ) + llm_response = LlmResponse( + content=Content( + role="model", parts=[Part.from_text(text=json_function_call_str)] + ) + ) + + gemma = Gemma() + gemma._extract_function_calls_from_response(llm_response=llm_response) + + # Assert that the content was transformed into a FunctionCall + assert llm_response.content + assert llm_response.content.parts + assert len(llm_response.content.parts) == 1 + part = llm_response.content.parts[0] + assert part.function_call is not None + assert part.function_call.name == "search_web" + assert part.function_call.args == {"query": "latest news"} + # Assert that the entire part matches the expected structure + expected_function_call = types.FunctionCall( + name="search_web", args={"query": "latest news"} + ) + expected_part = Part(function_call=expected_function_call) + assert part == expected_part + assert part.text is None # Ensure text part is cleared + + +def test_process_response_invalid_json_text(): + # Simulate a response with plain text that is not JSON + original_text = "This is a regular text response." + llm_response = LlmResponse( + content=Content(role="model", parts=[Part.from_text(text=original_text)]) + ) + + gemma = Gemma() + gemma._extract_function_calls_from_response(llm_response=llm_response) + + # Assert that the content remains unchanged + assert llm_response.content + assert llm_response.content.parts + assert len(llm_response.content.parts) == 1 + assert llm_response.content.parts[0].text == original_text + assert llm_response.content.parts[0].function_call is None + + +def test_process_response_malformed_json(): + # Simulate a response with valid JSON but not in the function call format + malformed_json_str = '{"not_a_function": "value", "another_field": 123}' + llm_response = LlmResponse( + content=Content( + role="model", parts=[Part.from_text(text=malformed_json_str)] + ) + ) + gemma = Gemma() + gemma._extract_function_calls_from_response(llm_response=llm_response) + + # Assert that the content remains unchanged because it doesn't match the expected schema + assert llm_response.content + assert llm_response.content.parts + assert len(llm_response.content.parts) == 1 + assert llm_response.content.parts[0].text == malformed_json_str + assert llm_response.content.parts[0].function_call is None + + +def test_process_response_empty_content_or_multiple_parts(): + gemma = Gemma() + + # Test case 1: LlmResponse with no content + llm_response_no_content = LlmResponse(content=None) + gemma._extract_function_calls_from_response( + llm_response=llm_response_no_content + ) + assert llm_response_no_content.content is None + + # Test case 2: LlmResponse with empty parts list + llm_response_empty_parts = LlmResponse( + content=Content(role="model", parts=[]) + ) + gemma._extract_function_calls_from_response( + llm_response=llm_response_empty_parts + ) + assert llm_response_empty_parts.content + assert not llm_response_empty_parts.content.parts + + # Test case 3: LlmResponse with multiple parts + llm_response_multiple_parts = LlmResponse( + content=Content( + role="model", + parts=[ + Part.from_text(text="part one"), + Part.from_text(text="part two"), + ], + ) + ) + original_parts = list( + llm_response_multiple_parts.content.parts + ) # Copy for comparison + gemma._extract_function_calls_from_response( + llm_response=llm_response_multiple_parts + ) + assert llm_response_multiple_parts.content + assert ( + llm_response_multiple_parts.content.parts == original_parts + ) # Should remain unchanged + + # Test case 4: LlmResponse with one part, but empty text + llm_response_empty_text_part = LlmResponse( + content=Content(role="model", parts=[Part.from_text(text="")]) + ) + gemma._extract_function_calls_from_response( + llm_response=llm_response_empty_text_part + ) + assert llm_response_empty_text_part.content + assert llm_response_empty_text_part.content.parts + assert llm_response_empty_text_part.content.parts[0].text == "" + assert llm_response_empty_text_part.content.parts[0].function_call is None + + +def test_process_response_with_markdown_json_block(): + # Simulate a response from Gemma with a JSON function call in a markdown block + json_function_call_str = """ +```json +{"name": "search_web", "parameters": {"query": "latest news"}} +```""" + llm_response = LlmResponse( + content=Content( + role="model", parts=[Part.from_text(text=json_function_call_str)] + ) + ) + + gemma = Gemma() + gemma._extract_function_calls_from_response(llm_response) + + assert llm_response.content + assert llm_response.content.parts + assert len(llm_response.content.parts) == 1 + part = llm_response.content.parts[0] + assert part.function_call is not None + assert part.function_call.name == "search_web" + assert part.function_call.args == {"query": "latest news"} + assert part.text is None + + +def test_process_response_with_markdown_tool_code_block(): + # Simulate a response from Gemma with a JSON function call in a 'tool_code' markdown block + json_function_call_str = """ +Some text before. +```tool_code +{"name": "get_current_time", "parameters": {}} +``` +And some text after.""" + llm_response = LlmResponse( + content=Content( + role="model", parts=[Part.from_text(text=json_function_call_str)] + ) + ) + + gemma = Gemma() + gemma._extract_function_calls_from_response(llm_response) + + assert llm_response.content + assert llm_response.content.parts + assert len(llm_response.content.parts) == 1 + part = llm_response.content.parts[0] + assert part.function_call is not None + assert part.function_call.name == "get_current_time" + assert part.function_call.args == {} + assert part.text is None + + +def test_process_response_with_embedded_json(): + # Simulate a response with valid JSON embedded in text + embedded_json_str = ( + 'Please call the tool: {"name": "search_web", "parameters": {"query":' + ' "new features"}} thanks!' + ) + llm_response = LlmResponse( + content=Content( + role="model", parts=[Part.from_text(text=embedded_json_str)] + ) + ) + + gemma = Gemma() + gemma._extract_function_calls_from_response(llm_response) + + assert llm_response.content + assert llm_response.content.parts + assert len(llm_response.content.parts) == 1 + part = llm_response.content.parts[0] + assert part.function_call is not None + assert part.function_call.name == "search_web" + assert part.function_call.args == {"query": "new features"} + assert part.text is None + + +def test_process_response_flexible_parsing(): + # Test with "function" and "args" keys as supported by GemmaFunctionCallModel + flexible_json_str = '{"function": "do_something", "args": {"value": 123}}' + llm_response = LlmResponse( + content=Content( + role="model", parts=[Part.from_text(text=flexible_json_str)] + ) + ) + + gemma = Gemma() + gemma._extract_function_calls_from_response(llm_response) + + assert llm_response.content + assert llm_response.content.parts + assert len(llm_response.content.parts) == 1 + part = llm_response.content.parts[0] + assert part.function_call is not None + assert part.function_call.name == "do_something" + assert part.function_call.args == {"value": 123} + assert part.text is None + + +def test_process_response_last_json_object(): + # Simulate a response with multiple JSON objects, ensuring the last valid one is picked + multiple_json_str = ( + 'I thought about {"name": "first_call", "parameters": {"a": 1}} but then' + ' decided to call: {"name": "second_call", "parameters": {"b": 2}}' + ) + llm_response = LlmResponse( + content=Content( + role="model", parts=[Part.from_text(text=multiple_json_str)] + ) + ) + + gemma = Gemma() + gemma._extract_function_calls_from_response(llm_response) + + assert llm_response.content + assert llm_response.content.parts + assert len(llm_response.content.parts) == 1 + part = llm_response.content.parts[0] + assert part.function_call is not None + assert part.function_call.name == "second_call" + assert part.function_call.args == {"b": 2} + assert part.text is None From e55b8946d6a2e01aaf018d6a79d11d13c5286152 Mon Sep 17 00:00:00 2001 From: Che Liu Date: Tue, 7 Oct 2025 17:56:21 -0700 Subject: [PATCH 051/303] feat: Add `ReflectRetryToolPlugin` to reflect from errors and retry with different arguments when tool errors This plugin intercepts tool failures, provides structured guidance to the LLM for reflection and correction, and retries the operation up to a configurable limit. **Key Features:** - **Concurrency Safe:** Uses locking to safely handle parallel tool executions - **Configurable Scope:** Tracks failures per-invocation (default) or globally using the `TrackingScope` enum. - **Extensible Scoping:** The `_get_scope_key` method can be overridden to implement custom tracking logic (e.g., per-user or per-session). - **Granular Tracking:** Failure counts are tracked per-tool within the defined scope. A success with one tool resets its counter without affecting others. - **Custom Error Extraction:** Supports detecting errors in normal tool responses that don't throw exceptions, by overriding the `extract_error_from_result` method. **Example:** ```python from my_project.plugins import ReflectAndRetryToolPlugin, TrackingScope # Example 1: (MOST COMMON USAGE): # Track failures only within the current agent invocation (default). error_handling_plugin = ReflectAndRetryToolPlugin(max_retries=3) # Example 2: # Track failures globally across all turns and users. global_error_handling_plugin = ReflectAndRetryToolPlugin(max_retries=5, scope=TrackingScope.GLOBAL) # Example 3: # Retry on failures but do not throw exceptions. error_handling_plugin = ReflectAndRetryToolPlugin(max_retries=3, throw_exception_if_retry_exceeded=False) # Example 4: # Track failures in successful tool responses that contain errors. class CustomRetryPlugin(ReflectAndRetryToolPlugin): async def extract_error_from_result(self, *, tool, tool_args,tool_context, result): # Detect error based on response content if result.get('status') == 'error': return result return None # No error detected error_handling_plugin = CustomRetryPlugin(max_retries=5) ``` PiperOrigin-RevId: 816456549 --- src/google/adk/plugins/__init__.py | 10 +- src/google/adk/plugins/logging_plugin.py | 5 +- .../adk/plugins/reflect_retry_tool_plugin.py | 339 +++++++++++ .../plugins/test_reflect_retry_tool_plugin.py | 526 ++++++++++++++++++ 4 files changed, 878 insertions(+), 2 deletions(-) create mode 100644 src/google/adk/plugins/reflect_retry_tool_plugin.py create mode 100644 tests/unittests/plugins/test_reflect_retry_tool_plugin.py diff --git a/src/google/adk/plugins/__init__.py b/src/google/adk/plugins/__init__.py index b0c771ede5..c824622091 100644 --- a/src/google/adk/plugins/__init__.py +++ b/src/google/adk/plugins/__init__.py @@ -13,5 +13,13 @@ # limitations under the License. from .base_plugin import BasePlugin +from .logging_plugin import LoggingPlugin +from .plugin_manager import PluginManager +from .reflect_retry_tool_plugin import ReflectAndRetryToolPlugin -__all__ = ['BasePlugin'] +__all__ = [ + 'BasePlugin', + 'LoggingPlugin', + 'PluginManager', + 'ReflectAndRetryToolPlugin', +] diff --git a/src/google/adk/plugins/logging_plugin.py b/src/google/adk/plugins/logging_plugin.py index 7f9b2e31a2..72d1ca83e2 100644 --- a/src/google/adk/plugins/logging_plugin.py +++ b/src/google/adk/plugins/logging_plugin.py @@ -16,12 +16,12 @@ from typing import Any from typing import Optional +from typing import TYPE_CHECKING from google.genai import types from ..agents.base_agent import BaseAgent from ..agents.callback_context import CallbackContext -from ..agents.invocation_context import InvocationContext from ..events.event import Event from ..models.llm_request import LlmRequest from ..models.llm_response import LlmResponse @@ -29,6 +29,9 @@ from ..tools.tool_context import ToolContext from .base_plugin import BasePlugin +if TYPE_CHECKING: + from ..agents.invocation_context import InvocationContext + class LoggingPlugin(BasePlugin): """A plugin that logs important information at each callback point. diff --git a/src/google/adk/plugins/reflect_retry_tool_plugin.py b/src/google/adk/plugins/reflect_retry_tool_plugin.py new file mode 100644 index 0000000000..cc501a93b7 --- /dev/null +++ b/src/google/adk/plugins/reflect_retry_tool_plugin.py @@ -0,0 +1,339 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +import asyncio +from enum import Enum +import json +from typing import Any +from typing import Optional + +from pydantic import BaseModel + +from ..tools.base_tool import BaseTool +from ..tools.tool_context import ToolContext +from ..utils.feature_decorator import experimental +from .base_plugin import BasePlugin + +REFLECT_AND_RETRY_RESPONSE_TYPE = "ERROR_HANDLED_BY_REFLECT_AND_RETRY_PLUGIN" +GLOBAL_SCOPE_KEY = "__global_reflect_and_retry_scope__" + +# A mapping from a tool's name to its consecutive failure count. +PerToolFailuresCounter = dict[str, int] + + +class TrackingScope(Enum): + """Defines the lifecycle scope for tracking tool failure counts.""" + + INVOCATION = "invocation" + GLOBAL = "global" + + +class ToolFailureResponse(BaseModel): + """Response containing tool failure details and retry guidance.""" + + response_type: str = REFLECT_AND_RETRY_RESPONSE_TYPE + error_type: str = "" + error_details: str = "" + retry_count: int = 0 + reflection_guidance: str = "" + + +@experimental +class ReflectAndRetryToolPlugin(BasePlugin): + """Provides self-healing, concurrent-safe error recovery for tool failures. + + This plugin intercepts tool failures, provides structured guidance to the LLM + for reflection and correction, and retries the operation up to a configurable + limit. + + **Key Features:** + + - **Concurrency Safe:** Uses locking to safely handle parallel tool + executions + - **Configurable Scope:** Tracks failures per-invocation (default) or globally + using the `TrackingScope` enum. + - **Extensible Scoping:** The `_get_scope_key` method can be overridden to + implement custom tracking logic (e.g., per-user or per-session). + - **Granular Tracking:** Failure counts are tracked per-tool within the + defined scope. A success with one tool resets its counter without affecting + others. + - **Custom Error Extraction:** Supports detecting errors in normal tool + responses + that + don't throw exceptions, by overriding the `extract_error_from_result` + method. + + **Example:** + ```python + from my_project.plugins import ReflectAndRetryToolPlugin, TrackingScope + + # Example 1: (MOST COMMON USAGE): + # Track failures only within the current agent invocation (default). + error_handling_plugin = ReflectAndRetryToolPlugin(max_retries=3) + + # Example 2: + # Track failures globally across all turns and users. + global_error_handling_plugin = ReflectAndRetryToolPlugin(max_retries=5, + scope=TrackingScope.GLOBAL) + + # Example 3: + # Retry on failures but do not throw exceptions. + error_handling_plugin = + ReflectAndRetryToolPlugin(max_retries=3, + throw_exception_if_retry_exceeded=False) + + # Example 4: + # Track failures in successful tool responses that contain errors. + class CustomRetryPlugin(ReflectAndRetryToolPlugin): + async def extract_error_from_result(self, *, tool, tool_args,tool_context, + result): + # Detect error based on response content + if result.get('status') == 'error': + return result + return None # No error detected + error_handling_plugin = CustomRetryPlugin(max_retries=5) + ``` + """ + + def __init__( + self, + name: str = "reflect_retry_tool_plugin", + max_retries: int = 3, + throw_exception_if_retry_exceeded: bool = True, + tracking_scope: TrackingScope = TrackingScope.INVOCATION, + ): + """Initializes the ReflectAndRetryToolPlugin. + + Args: + name: Plugin instance identifier. + max_retries: Maximum consecutive failures before giving up (0 = no + retries). + throw_exception_if_retry_exceeded: If True, raises the final exception + when the retry limit is reached. If False, returns guidance instead. + tracking_scope: Determines the lifecycle of the error tracking state. + Defaults to `TrackingScope.INVOCATION` tracking per-invocation. + """ + super().__init__(name) + if max_retries < 0: + raise ValueError("max_retries must be a non-negative integer.") + self.max_retries = max_retries + self.throw_exception_if_retry_exceeded = throw_exception_if_retry_exceeded + self.scope = tracking_scope + self._scoped_failure_counters: dict[str, PerToolFailuresCounter] = {} + self._lock = asyncio.Lock() + + async def after_tool_callback( + self, + *, + tool: BaseTool, + tool_args: dict[str, Any], + tool_context: ToolContext, + result: Any, + ) -> Optional[dict]: + """Handles successful tool calls or extracts and processes errors.""" + if ( + isinstance(result, dict) + and result.get("response_type") == REFLECT_AND_RETRY_RESPONSE_TYPE + ): + return None + + error = await self.extract_error_from_result( + tool=tool, tool_args=tool_args, tool_context=tool_context, result=result + ) + + if error: + return await self._handle_tool_error(tool, tool_args, tool_context, error) + + # On success, reset the failure count for this specific tool within its scope. + await self._reset_failures_for_tool(tool_context, tool.name) + return None + + async def extract_error_from_result( + self, + *, + tool: BaseTool, + tool_args: dict[str, Any], + tool_context: ToolContext, + result: Any, + ) -> Optional[Any]: + """Extracts an error from a successful tool result and triggers retry logic. + + This is useful when tool call finishes successfully but the result contains + an error object like {"error": ...} that should be handled by the plugin. + + By overriding this method, you can trigger retry logic on these successful + results that contain errors. + """ + return None + + async def on_tool_error_callback( + self, + *, + tool: BaseTool, + tool_args: dict[str, Any], + tool_context: ToolContext, + error: Exception, + ) -> Optional[dict]: + """Handles tool exceptions by providing reflection guidance.""" + return await self._handle_tool_error(tool, tool_args, tool_context, error) + + async def _handle_tool_error( + self, + tool: BaseTool, + tool_args: dict[str, Any], + tool_context: ToolContext, + error: Any, + ) -> Optional[dict]: + """Central, thread-safe logic for processing tool errors.""" + if self.max_retries == 0: + if self.throw_exception_if_retry_exceeded: + raise error + return self._get_tool_retry_exceed_msg(tool, error, tool_args) + + scope_key = self._get_scope_key(tool_context) + async with self._lock: + tool_failure_counter = self._scoped_failure_counters.setdefault( + scope_key, {} + ) + current_retries = tool_failure_counter.get(tool.name, 0) + 1 + tool_failure_counter[tool.name] = current_retries + + if current_retries <= self.max_retries: + return self._create_tool_reflection_response( + tool, tool_args, error, current_retries + ) + + # Max Retry exceeded + if self.throw_exception_if_retry_exceeded: + raise error + else: + return self._get_tool_retry_exceed_msg(tool, tool_args, error) + + def _get_scope_key(self, tool_context: ToolContext) -> str: + """Returns a unique key for the state dictionary based on the scope. + + This method can be overridden in a subclass to implement custom scoping + logic, for example, tracking failures on a per-user or per-session basis. + """ + if self.scope is TrackingScope.INVOCATION: + return tool_context.invocation_id + elif self.scope is TrackingScope.GLOBAL: + return GLOBAL_SCOPE_KEY + raise ValueError(f"Unknown scope: {self.scope}") + + async def _reset_failures_for_tool( + self, tool_context: ToolContext, tool_name: str + ) -> None: + """Atomically resets the failure count for a tool and cleans up state.""" + scope = self._get_scope_key(tool_context) + async with self._lock: + if scope in self._scoped_failure_counters: + state = self._scoped_failure_counters[scope] + state.pop(tool_name, None) + + def _ensure_exception(self, error: Any) -> Exception: + """Ensures the given error is an Exception instance, wrapping if not.""" + return error if isinstance(error, Exception) else Exception(str(error)) + + def _format_error_details(self, error: Any) -> str: + """Formats error details for inclusion in the reflection message.""" + if isinstance(error, Exception): + return f"{type(error).__name__}: {str(error)}" + return str(error) + + def _create_tool_reflection_response( + self, + tool: BaseTool, + tool_args: dict[str, Any], + error: Any, + retry_count: int, + ) -> dict[str, Any]: + """Generates structured reflection guidance for tool failures.""" + args_summary = json.dumps(tool_args, indent=2, default=str) + error_details = self._format_error_details(error) + + reflection_message = f""" +The call to tool `{tool.name}` failed. + +**Error Details:** +``` +{error_details} +``` + +**Tool Arguments Used:** +```json +{args_summary} +``` + +**Reflection Guidance:** +This is retry attempt **{retry_count} of {self.max_retries}**. Analyze the error and the arguments you provided. Do not repeat the exact same call. Consider the following before your next attempt: + +1. **Invalid Parameters**: Does the error suggest that one or more arguments are incorrect, badly formatted, or missing? Review the tool's schema and your arguments. +2. **State or Preconditions**: Did a previous step fail or not produce the necessary state/resource for this tool to succeed? +3. **Alternative Approach**: Is this the right tool for the job? Could another tool or a different sequence of steps achieve the goal? +4. **Simplify the Task**: Can you break the problem down into smaller, simpler steps? + +Formulate a new plan based on your analysis and try a corrected or different approach. +""" + + return ToolFailureResponse( + error_type=( + type(error).__name__ + if isinstance(error, Exception) + else "ToolError" + ), + error_details=str(error), + retry_count=retry_count, + reflection_guidance=reflection_message.strip(), + ).model_dump(mode="json") + + def _get_tool_retry_exceed_msg( + self, + tool: BaseTool, + tool_args: dict[str, Any], + error: Exception, + ) -> dict[str, Any]: + """Generates guidance when the maximum retry limit is exceeded.""" + error_details = self._format_error_details(error) + args_summary = json.dumps(tool_args, indent=2, default=str) + + reflection_message = f""" +The tool `{tool.name}` has failed consecutively {self.max_retries} times and the retry limit has been exceeded. + +**Last Error:** +``` +{error_details} +``` + +**Last Arguments Used:** +```json +{args_summary} +``` + +**Final Instruction:** +**Do not attempt to use the `{tool.name}` tool again for this task.** You must now try a different approach. Acknowledge the failure and devise a new strategy, potentially using other available tools or informing the user that the task cannot be completed. +""" + + return ToolFailureResponse( + error_type=( + type(error).__name__ + if isinstance(error, Exception) + else "ToolError" + ), + error_details=str(error), + retry_count=self.max_retries, + reflection_guidance=reflection_message.strip(), + ).model_dump(mode="json") diff --git a/tests/unittests/plugins/test_reflect_retry_tool_plugin.py b/tests/unittests/plugins/test_reflect_retry_tool_plugin.py new file mode 100644 index 0000000000..ac0850201c --- /dev/null +++ b/tests/unittests/plugins/test_reflect_retry_tool_plugin.py @@ -0,0 +1,526 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Any +from unittest import IsolatedAsyncioTestCase +from unittest.mock import Mock + +from google.adk.plugins.reflect_retry_tool_plugin import REFLECT_AND_RETRY_RESPONSE_TYPE +from google.adk.plugins.reflect_retry_tool_plugin import ReflectAndRetryToolPlugin +from google.adk.tools.base_tool import BaseTool +from google.adk.tools.tool_context import ToolContext + + +class MockTool(BaseTool): + """Mock tool for testing purposes.""" + + def __init__(self, name: str = "mock_tool"): + self.name = name + self.description = f"Mock tool named {name}" + + async def run(self, **kwargs) -> Any: + return "mock result" + + +class CustomErrorExtractionPlugin(ReflectAndRetryToolPlugin): + """Custom plugin for testing error extraction from tool responses.""" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.error_conditions = {} + + def set_error_condition(self, condition_func): + """Set a custom error condition function for testing.""" + self.error_condition = condition_func + + async def extract_error_from_result( + self, *, tool, tool_args, tool_context, result + ): + """Extract error based on custom conditions set for testing.""" + if hasattr(self, "error_condition"): + return self.error_condition(result) + return None + + +# Inheriting from IsolatedAsyncioTestCase ensures these tests works in Python +# 3.9. See https://github.com/pytest-dev/pytest-asyncio/issues/1039 +# Without this, the tests will fail with a "RuntimeError: There is no current +# event loop in thread 'MainThread'." +class TestReflectAndRetryToolPlugin(IsolatedAsyncioTestCase): + """Comprehensive tests for ReflectAndRetryToolPlugin focusing on behavior.""" + + def get_plugin(self): + """Create a default plugin instance for testing.""" + return ReflectAndRetryToolPlugin() + + def get_custom_plugin(self): + """Create a plugin with custom parameters.""" + return ReflectAndRetryToolPlugin( + name="custom_plugin", + max_retries=5, + throw_exception_if_retry_exceeded=False, + ) + + def get_mock_tool(self): + """Create a mock tool for testing.""" + return MockTool("test_tool_id") + + def get_mock_tool_context(self): + """Create a mock tool context.""" + return Mock(spec=ToolContext) + + def get_custom_error_plugin(self): + """Create a custom error extraction plugin for testing.""" + return CustomErrorExtractionPlugin(max_retries=3) + + def get_sample_tool_args(self): + """Sample tool arguments for testing.""" + return {"param1": "value1", "param2": 42, "param3": True} + + async def test_plugin_initialization_default(self): + """Test plugin initialization with default parameters.""" + plugin = self.get_plugin() + + self.assertEqual(plugin.name, "reflect_retry_tool_plugin") + self.assertEqual(plugin.max_retries, 3) + self.assertIs(plugin.throw_exception_if_retry_exceeded, True) + + async def test_plugin_initialization_custom(self): + """Test plugin initialization with custom parameters.""" + plugin = ReflectAndRetryToolPlugin( + name="custom_name", + max_retries=10, + throw_exception_if_retry_exceeded=False, + ) + + self.assertEqual(plugin.name, "custom_name") + self.assertEqual(plugin.max_retries, 10) + self.assertIsNot(plugin.throw_exception_if_retry_exceeded, True) + + async def test_after_tool_callback_successful_call(self): + """Test after_tool_callback with successful tool call.""" + plugin = self.get_plugin() + mock_tool = self.get_mock_tool() + mock_tool_context = self.get_mock_tool_context() + sample_tool_args = self.get_sample_tool_args() + result = {"success": True, "data": "test_data"} + + callback_result = await plugin.after_tool_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + result=result, + ) + + # Should return None for successful calls + self.assertIsNone(callback_result) + + async def test_after_tool_callback_ignore_retry_response(self): + """Test that retry responses are ignored in after_tool_callback.""" + plugin = self.get_plugin() + mock_tool = self.get_mock_tool() + mock_tool_context = self.get_mock_tool_context() + sample_tool_args = self.get_sample_tool_args() + retry_result = {"response_type": REFLECT_AND_RETRY_RESPONSE_TYPE} + + callback_result = await plugin.after_tool_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + result=retry_result, + ) + + # Retry responses should be ignored + self.assertIsNone(callback_result) + + async def test_on_tool_error_callback_max_retries_zero(self): + """Test error callback when max_retries is 0. + + This should return None so that the exception is rethrown + """ + mock_tool = self.get_mock_tool() + mock_tool_context = self.get_mock_tool_context() + sample_tool_args = self.get_sample_tool_args() + plugin = ReflectAndRetryToolPlugin(max_retries=0) + error = ValueError("Test error") + + with self.assertRaises(ValueError) as cm: + await plugin.on_tool_error_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + error=error, + ) + + # Should re-raise the original exception when max_retries is 0 + self.assertIs(cm.exception, error) + + async def test_on_tool_error_callback_first_failure(self): + """Test first tool failure creates reflection response.""" + plugin = self.get_plugin() + mock_tool = self.get_mock_tool() + mock_tool_context = self.get_mock_tool_context() + sample_tool_args = self.get_sample_tool_args() + error = ValueError("Test error message") + + result = await plugin.on_tool_error_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + error=error, + ) + + self.assertIsNotNone(result) + self.assertEqual(result["response_type"], REFLECT_AND_RETRY_RESPONSE_TYPE) + self.assertEqual(result["error_type"], "ValueError") + self.assertEqual(result["error_details"], "Test error message") + self.assertEqual(result["retry_count"], 1) + self.assertIn("test_tool_id", result["reflection_guidance"]) + self.assertIn("Test error message", result["reflection_guidance"]) + + async def test_retry_behavior_with_consecutive_failures(self): + """Test the retry behavior with consecutive failures.""" + plugin = self.get_plugin() + mock_tool = self.get_mock_tool() + mock_tool_context = self.get_mock_tool_context() + sample_tool_args = self.get_sample_tool_args() + error = RuntimeError("Runtime error") + + # First failure + result1 = await plugin.on_tool_error_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + error=error, + ) + self.assertEqual(result1["retry_count"], 1) + + # Second failure - should have different retry count based on plugin logic + result2 = await plugin.on_tool_error_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + error=error, + ) + # The plugin's internal logic determines the exact retry count + self.assertIsNotNone(result2) + self.assertEqual(result2["response_type"], REFLECT_AND_RETRY_RESPONSE_TYPE) + self.assertEqual(result2["retry_count"], 2) + + async def test_different_tools_behavior(self): + """Test behavior when using different tools.""" + plugin = self.get_plugin() + mock_tool_context = self.get_mock_tool_context() + sample_tool_args = self.get_sample_tool_args() + tool1 = MockTool("tool1") + tool2 = MockTool("tool2") + error = ValueError("Test error") + + # First failure on tool1 + result1 = await plugin.on_tool_error_callback( + tool=tool1, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + error=error, + ) + self.assertEqual(result1["retry_count"], 1) + + # Failure on tool2 + result2 = await plugin.on_tool_error_callback( + tool=tool2, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + error=error, + ) + # Since tool is different, retry count should start over. + self.assertIsNotNone(result2) + self.assertEqual(result2["response_type"], REFLECT_AND_RETRY_RESPONSE_TYPE) + self.assertEqual(result2["retry_count"], 1) + + async def test_max_retries_exceeded_with_exception(self): + """Test that original exception is raised when max retries exceeded.""" + mock_tool = self.get_mock_tool() + mock_tool_context = self.get_mock_tool_context() + sample_tool_args = self.get_sample_tool_args() + plugin = ReflectAndRetryToolPlugin( + max_retries=1, throw_exception_if_retry_exceeded=True + ) + error = ConnectionError("Connection failed") + + # First call should succeed and return a retry response + await plugin.on_tool_error_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + error=error, + ) + + # Second call should exceed max_retries and raise + with self.assertRaises(ConnectionError) as cm: + await plugin.on_tool_error_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + error=error, + ) + + # Verify exception properties + self.assertIs(cm.exception, error) + + async def test_max_retries_exceeded_without_exception(self): + """Test max retries exceeded returns failure message when exception is disabled.""" + mock_tool = self.get_mock_tool() + mock_tool_context = self.get_mock_tool_context() + sample_tool_args = self.get_sample_tool_args() + plugin = ReflectAndRetryToolPlugin( + max_retries=2, throw_exception_if_retry_exceeded=False + ) + error = TimeoutError("Timeout occurred") + + # Call until we exceed the retry limit + result = None + for _ in range(3): + result = await plugin.on_tool_error_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + error=error, + ) + + # Should get a retry exceeded message on the last call + self.assertIsNotNone(result) + self.assertEqual(result["response_type"], REFLECT_AND_RETRY_RESPONSE_TYPE) + self.assertEqual(result["error_type"], "TimeoutError") + self.assertIn( + "the retry limit has been exceeded", result["reflection_guidance"] + ) + self.assertIn("Do not attempt to use the", result["reflection_guidance"]) + + async def test_successful_call_resets_retry_behavior(self): + """Test that successful calls reset the retry behavior.""" + plugin = self.get_plugin() + mock_tool = self.get_mock_tool() + mock_tool_context = self.get_mock_tool_context() + sample_tool_args = self.get_sample_tool_args() + error = ValueError("Test error") + + # First failure + result1 = await plugin.on_tool_error_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + error=error, + ) + self.assertEqual(result1["retry_count"], 1) + + # Successful call + await plugin.after_tool_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + result={"success": True}, + ) + + # Next failure should start fresh + result2 = await plugin.on_tool_error_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + error=error, + ) + self.assertEqual(result2["retry_count"], 1) # Should restart from 1 + + async def test_none_result_handling(self): + """Test handling of None results in after_tool_callback.""" + plugin = self.get_plugin() + mock_tool = self.get_mock_tool() + mock_tool_context = self.get_mock_tool_context() + sample_tool_args = self.get_sample_tool_args() + + # None result should be handled gracefully + callback_result = await plugin.after_tool_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + result=None, + ) + + self.assertIsNone(callback_result) + + async def test_empty_tool_args_handling(self): + """Test handling of empty tool arguments.""" + plugin = self.get_plugin() + mock_tool = self.get_mock_tool() + mock_tool_context = self.get_mock_tool_context() + empty_args = {} + error = ValueError("Test error") + + result = await plugin.on_tool_error_callback( + tool=mock_tool, + tool_args=empty_args, + tool_context=mock_tool_context, + error=error, + ) + + self.assertIsNotNone(result) + # Empty args should be represented in the response + self.assertIn("{}", result["reflection_guidance"]) + + async def test_retry_count_progression(self): + """Test that retry counts progress correctly for the same tool.""" + mock_tool_context = self.get_mock_tool_context() + sample_tool_args = self.get_sample_tool_args() + plugin = ReflectAndRetryToolPlugin(max_retries=5) + error = ValueError("Test error") + tool = MockTool("single_tool") + + for i in range(1, 4): + result = await plugin.on_tool_error_callback( + tool=tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + error=error, + ) + self.assertEqual(result["retry_count"], i) + + async def test_max_retries_parameter_behavior(self): + """Test that max_retries parameter affects behavior correctly.""" + mock_tool = self.get_mock_tool() + mock_tool_context = self.get_mock_tool_context() + sample_tool_args = self.get_sample_tool_args() + # Test with very low max_retries + plugin = ReflectAndRetryToolPlugin( + max_retries=1, throw_exception_if_retry_exceeded=False + ) + error = ValueError("Test error") + + # First call is fine + await plugin.on_tool_error_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + error=error, + ) + + # Second call exceeds limit + result = await plugin.on_tool_error_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + error=error, + ) + + # Should hit max retries quickly with max_retries=1 + self.assertIn( + "the retry limit has been exceeded.", result["reflection_guidance"] + ) + + async def test_default_extract_error_returns_none(self): + """Test that default extract_error_from_result returns None.""" + plugin = self.get_plugin() + mock_tool = self.get_mock_tool() + mock_tool_context = self.get_mock_tool_context() + sample_tool_args = self.get_sample_tool_args() + result = {"status": "success", "data": "some data"} + + error = await plugin.extract_error_from_result( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + result=result, + ) + self.assertIsNone(error) + + async def test_custom_error_detection_and_success_handling(self): + """Test custom error detection, success handling, and retry progression.""" + custom_error_plugin = self.get_custom_error_plugin() + mock_tool = self.get_mock_tool() + mock_tool_context = self.get_mock_tool_context() + sample_tool_args = self.get_sample_tool_args() + custom_error_plugin.set_error_condition( + lambda result: result if result.get("status") == "error" else None + ) + + # Test error detection + error_result = {"status": "error", "message": "Something went wrong"} + callback_result = await custom_error_plugin.after_tool_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + result=error_result, + ) + self.assertIsNotNone(callback_result) + self.assertEqual( + callback_result["response_type"], REFLECT_AND_RETRY_RESPONSE_TYPE + ) + self.assertEqual(callback_result["retry_count"], 1) + + # Test success handling + success_result = {"status": "success", "data": "operation completed"} + callback_result = await custom_error_plugin.after_tool_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + result=success_result, + ) + self.assertIsNone(callback_result) + + async def test_retry_state_management(self): + """Test retry state management with custom errors and mixed error types.""" + custom_error_plugin = self.get_custom_error_plugin() + mock_tool = self.get_mock_tool() + mock_tool_context = self.get_mock_tool_context() + sample_tool_args = self.get_sample_tool_args() + custom_error_plugin.set_error_condition( + lambda result: result if result.get("failed") else None + ) + + # Custom error followed by exception + custom_error = {"failed": True, "reason": "Network timeout"} + result1 = await custom_error_plugin.after_tool_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + result=custom_error, + ) + self.assertEqual(result1["retry_count"], 1) + + # Exception should increment retry count + exception = ValueError("Invalid parameter") + result2 = await custom_error_plugin.on_tool_error_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + error=exception, + ) + self.assertEqual(result2["retry_count"], 2) + + # Success should reset + success = {"result": "success"} + result3 = await custom_error_plugin.after_tool_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + result=success, + ) + self.assertIsNone(result3) + + # Next error should start fresh + result4 = await custom_error_plugin.after_tool_callback( + tool=mock_tool, + tool_args=sample_tool_args, + tool_context=mock_tool_context, + result=custom_error, + ) + self.assertEqual(result4["retry_count"], 1) From 3f2b457efd27ed47160811705e30efa6dd09d7c0 Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Tue, 7 Oct 2025 21:15:38 -0700 Subject: [PATCH 052/303] fix: fix compaction logic When there are multiple intervals and compactions, the original implementation only keep the last one. The right implementation is to keep as many compaction events/summary as the requested internals. PiperOrigin-RevId: 816516662 --- contributing/samples/hello_world_app/agent.py | 9 +- src/google/adk/apps/llm_event_summarizer.py | 7 +- src/google/adk/flows/llm_flows/contents.py | 99 ++++++++++++--- tests/unittests/apps/test_compaction.py | 115 +++++++++++++++++- 4 files changed, 209 insertions(+), 21 deletions(-) diff --git a/contributing/samples/hello_world_app/agent.py b/contributing/samples/hello_world_app/agent.py index 0232f2638f..04ba197946 100755 --- a/contributing/samples/hello_world_app/agent.py +++ b/contributing/samples/hello_world_app/agent.py @@ -18,6 +18,8 @@ from google.adk.agents.base_agent import BaseAgent from google.adk.agents.callback_context import CallbackContext from google.adk.apps import App +from google.adk.apps.app import EventsCompactionConfig +from google.adk.apps.llm_event_summarizer import LlmEventSummarizer from google.adk.models.llm_request import LlmRequest from google.adk.plugins.base_plugin import BasePlugin from google.adk.plugins.context_filter_plugin import ContextFilterPlugin @@ -147,7 +149,12 @@ async def before_model_callback( root_agent=root_agent, plugins=[ CountInvocationPlugin(), - ContextFilterPlugin(num_invocations_to_keep=3), + # ContextFilterPlugin(num_invocations_to_keep=3), SaveFilesAsArtifactsPlugin(), ], + # Enable event compaction with an LLM-based summarizer. + events_compaction_config=EventsCompactionConfig( + compaction_interval=2, + overlap_size=1, + ), ) diff --git a/src/google/adk/apps/llm_event_summarizer.py b/src/google/adk/apps/llm_event_summarizer.py index 76e3b73eb7..fffb2ab547 100644 --- a/src/google/adk/apps/llm_event_summarizer.py +++ b/src/google/adk/apps/llm_event_summarizer.py @@ -51,8 +51,7 @@ class LlmEventSummarizer(BaseEventsSummarizer): ' agent. Please summarize the conversation, focusing on key' ' information and decisions made, as well as any unresolved' ' questions or tasks. The summary should be concise and capture the' - ' essence of the interaction. Each event is prefixed with the' - ' author.\\n\\n{conversation_history}' + ' essence of the interaction.\\n\\n{conversation_history}' ) def __init__( @@ -115,8 +114,8 @@ async def maybe_summarize_events( if summary_content is None: return None - # Ensure the compacted content has the role 'user' - summary_content.role = 'user' + # Ensure the compacted content has the role 'model' + summary_content.role = 'model' start_timestamp = events[0].timestamp end_timestamp = events[-1].timestamp diff --git a/src/google/adk/flows/llm_flows/contents.py b/src/google/adk/flows/llm_flows/contents.py index ec1ad5ac4d..1ccb230c6b 100644 --- a/src/google/adk/flows/llm_flows/contents.py +++ b/src/google/adk/flows/llm_flows/contents.py @@ -214,7 +214,8 @@ def _contains_empty_content(event: Event) -> bool: """Check if an event should be skipped due to missing or empty content. This can happen to the evnets that only changed session state. - When both content and transcriptions are empty, the event will be considered as empty. + When both content and transcriptions are empty, the event will be considered + as empty. Args: event: The event to check. @@ -233,6 +234,64 @@ def _contains_empty_content(event: Event) -> bool: ) and (not event.output_transcription and not event.input_transcription) +def _process_compaction_events(events: list[Event]) -> list[Event]: + """Processes events by applying compaction. + + Identifies compacted ranges and filters out events that are covered by + compaction summaries. + + Args: + events: A list of events to process. + + Returns: + A list of events with compaction applied. + """ + # example of compaction events: + # [event_1(timestamp=1), event_2(timestamp=2), + # compaction_1(event_1, event_2, timestamp=3), event_3(timestamp=4), + # compaction_2(event_2, event_3, timestamp=5), event_4(timestamp=6)] + # for each compaction event, it only covers the events at most between the + # current compaction and the previous compaction. So during copmaction, we + # don't have to go across compaction boundaries. + # Compaction events are always strictly in order based on event timestamp. + events_to_process = [] + last_compaction_start_time = float('inf') + + # Iterate in reverse to easily handle overlapping compactions. + for event in reversed(events): + if event.actions and event.actions.compaction: + compaction = event.actions.compaction + if ( + compaction.start_timestamp is not None + and compaction.end_timestamp is not None + ): + # Create a new event for the compacted summary. + new_event = Event( + timestamp=compaction.end_timestamp, + author='model', + content=compaction.compacted_content, + branch=event.branch, + invocation_id=event.invocation_id, + actions=event.actions, + ) + # Prepend to maintain chronological order in the final list. + events_to_process.insert(0, new_event) + # Update the boundary for filtering. Events with timestamps greater than + # or equal to this start time have been compacted. + last_compaction_start_time = min( + last_compaction_start_time, compaction.start_timestamp + ) + elif event.timestamp < last_compaction_start_time: + # This event is not a compaction and is before the current compaction + # range. Prepend to maintain chronological order. + events_to_process.insert(0, event) + else: + # skip the event + pass + + return events_to_process + + def _get_contents( current_branch: Optional[str], events: list[Event], agent_name: str = '' ) -> list[types.Content]: @@ -254,6 +313,7 @@ def _get_contents( # Parse the events, leaving the contents and the function calls and # responses from the current agent. raw_filtered_events = [] + has_compaction_events = False for event in events: if _contains_empty_content(event): continue @@ -267,20 +327,27 @@ def _get_contents( # Skip request confirmation events. continue + if event.actions and event.actions.compaction: + has_compaction_events = True raw_filtered_events.append(event) + if has_compaction_events: + events_to_process = _process_compaction_events(raw_filtered_events) + else: + events_to_process = raw_filtered_events + filtered_events = [] # aggregate transcription events - for i in range(len(raw_filtered_events)): - event = raw_filtered_events[i] + for i in range(len(events_to_process)): + event = events_to_process[i] if not event.content: # Convert transcription into normal event if event.input_transcription and event.input_transcription.text: accumulated_input_transcription += event.input_transcription.text if ( - i != len(raw_filtered_events) - 1 - and raw_filtered_events[i + 1].input_transcription - and raw_filtered_events[i + 1].input_transcription.text + i != len(events_to_process) - 1 + and events_to_process[i + 1].input_transcription + and events_to_process[i + 1].input_transcription.text ): continue event = event.model_copy(deep=True) @@ -293,9 +360,9 @@ def _get_contents( elif event.output_transcription and event.output_transcription.text: accumulated_output_transcription += event.output_transcription.text if ( - i != len(raw_filtered_events) - 1 - and raw_filtered_events[i + 1].output_transcription - and raw_filtered_events[i + 1].output_transcription.text + i != len(events_to_process) - 1 + and events_to_process[i + 1].output_transcription + and events_to_process[i + 1].output_transcription.text ): continue event = event.model_copy(deep=True) @@ -324,8 +391,9 @@ def _get_contents( contents = [] for event in result_events: content = copy.deepcopy(event.content) - remove_client_function_call_id(content) - contents.append(content) + if content: + remove_client_function_call_id(content) + contents.append(content) return contents @@ -557,7 +625,8 @@ def _is_live_model_audio_event(event: Event) -> bool: ), ], role='model' - ) grounding_metadata=None partial=None turn_complete=None finish_reason=None error_code=None error_message=None ... + ) grounding_metadata=None partial=None turn_complete=None finish_reason=None + error_code=None error_message=None ... """ if not event.content: return False @@ -579,8 +648,10 @@ async def _add_instructions_to_user_content( ) -> None: """Insert instruction-related contents at proper position in conversation. - This function inserts instruction-related contents (passed as parameter) at the - proper position in the conversation flow, specifically before the last continuous + This function inserts instruction-related contents (passed as parameter) at + the + proper position in the conversation flow, specifically before the last + continuous batch of user content to maintain conversation context. Args: diff --git a/tests/unittests/apps/test_compaction.py b/tests/unittests/apps/test_compaction.py index 483ea3905d..fc7d1a68ff 100644 --- a/tests/unittests/apps/test_compaction.py +++ b/tests/unittests/apps/test_compaction.py @@ -24,6 +24,7 @@ from google.adk.events.event import Event from google.adk.events.event_actions import EventActions from google.adk.events.event_actions import EventCompaction +from google.adk.flows.llm_flows import contents from google.adk.sessions.base_session_service import BaseSessionService from google.adk.sessions.session import Session from google.genai.types import Content @@ -47,7 +48,7 @@ def _create_event( timestamp=timestamp, invocation_id=invocation_id, author='user', - content=Content(parts=[Part(text=text)]), + content=Content(role='user', parts=[Part(text=text)]), ) def _create_compacted_event( @@ -56,7 +57,9 @@ def _create_compacted_event( compaction = EventCompaction( start_timestamp=start_ts, end_timestamp=end_ts, - compacted_content=Content(parts=[Part(text=summary_text)]), + compacted_content=Content( + role='model', parts=[Part(text=summary_text)] + ), ) return Event( timestamp=end_ts, @@ -221,3 +224,111 @@ async def test_run_compaction_for_sliding_window_no_compaction_event_returned( self.mock_compactor.maybe_summarize_events.assert_called_once() self.mock_session_service.append_event.assert_not_called() + + def test_get_contents_with_multiple_compactions(self): + + # Event timestamps: 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0 + # Compaction 1: covers 1.0 to 4.0 (summary at 4.0) + # Compaction 2: covers 6.0 to 9.0 (summary at 9.0) + events = [ + self._create_event(1.0, 'inv1', 'Event 1'), + self._create_event(2.0, 'inv2', 'Event 2'), + self._create_event(3.0, 'inv3', 'Event 3'), + self._create_event(4.0, 'inv4', 'Event 4'), + self._create_compacted_event(1.0, 4.0, 'Summary 1-4'), + self._create_event(5.0, 'inv5', 'Event 5'), + self._create_event(6.0, 'inv6', 'Event 6'), + self._create_event(7.0, 'inv7', 'Event 7'), + self._create_event(8.0, 'inv8', 'Event 8'), + self._create_event(9.0, 'inv9', 'Event 9'), + self._create_compacted_event(6.0, 9.0, 'Summary 6-9'), + self._create_event(10.0, 'inv10', 'Event 10'), + ] + + result_contents = contents._get_contents(None, events) + + # Expected contents: + # Summary 1-4 (at timestamp 4.0) + # Event 5 (at timestamp 5.0) + # Summary 6-9 (at timestamp 9.0) + # Event 10 (at timestamp 10.0) + expected_texts = [ + 'Summary 1-4', + 'Event 5', + 'Summary 6-9', + 'Event 10', + ] + actual_texts = [c.parts[0].text for c in result_contents] + self.assertEqual(actual_texts, expected_texts) + # Verify timestamps are in order + + def test_get_contents_no_compaction(self): + + events = [ + self._create_event(1.0, 'inv1', 'Event 1'), + self._create_event(2.0, 'inv2', 'Event 2'), + self._create_event(3.0, 'inv3', 'Event 3'), + ] + + result_contents = contents._get_contents(None, events) + expected_texts = ['Event 1', 'Event 2', 'Event 3'] + actual_texts = [c.parts[0].text for c in result_contents] + self.assertEqual(actual_texts, expected_texts) + + def test_get_contents_single_compaction_at_start(self): + + events = [ + self._create_event(1.0, 'inv1', 'Event 1'), + self._create_event(2.0, 'inv2', 'Event 2'), + self._create_compacted_event(1.0, 2.0, 'Summary 1-2'), + self._create_event(3.0, 'inv3', 'Event 3'), + ] + + result_contents = contents._get_contents(None, events) + expected_texts = ['Summary 1-2', 'Event 3'] + actual_texts = [c.parts[0].text for c in result_contents] + self.assertEqual(actual_texts, expected_texts) + + def test_get_contents_single_compaction_in_middle(self): + + events = [ + self._create_event(1.0, 'inv1', 'Event 1'), + self._create_event(2.0, 'inv2', 'Event 2'), + self._create_compacted_event(1.0, 2.0, 'Summary 1-2'), + self._create_event(3.0, 'inv3', 'Event 3'), + self._create_event(4.0, 'inv4', 'Event 4'), + self._create_compacted_event(3.0, 4.0, 'Summary 3-4'), + self._create_event(5.0, 'inv5', 'Event 5'), + ] + + result_contents = contents._get_contents(None, events) + expected_texts = ['Summary 1-2', 'Summary 3-4', 'Event 5'] + actual_texts = [c.parts[0].text for c in result_contents] + self.assertEqual(actual_texts, expected_texts) + + def test_get_contents_compaction_at_end(self): + + events = [ + self._create_event(1.0, 'inv1', 'Event 1'), + self._create_event(2.0, 'inv2', 'Event 2'), + self._create_event(3.0, 'inv3', 'Event 3'), + self._create_compacted_event(2.0, 3.0, 'Summary 2-3'), + ] + + result_contents = contents._get_contents(None, events) + expected_texts = ['Event 1', 'Summary 2-3'] + actual_texts = [c.parts[0].text for c in result_contents] + self.assertEqual(actual_texts, expected_texts) + + def test_get_contents_compaction_at_beginning(self): + + events = [ + self._create_compacted_event(1.0, 2.0, 'Summary 1-2'), + self._create_event(3.0, 'inv3', 'Event 3'), + self._create_event(4.0, 'inv4', 'Event 4'), + ] + + result_contents = contents._get_contents(None, events) + expected_texts = ['Summary 1-2', 'Event 3', 'Event 4'] + actual_texts = [c.parts[0].text for c in result_contents] + self.assertEqual(actual_texts, expected_texts) From 30212669ff61f3cbd6603c3dceadfbcc4cec42f8 Mon Sep 17 00:00:00 2001 From: Haoming Chen Date: Tue, 7 Oct 2025 21:19:09 -0700 Subject: [PATCH 053/303] docs: Update BigQuery samples README Add the new analyze_contribution tool and renumbering as the Github cannot display it correctly. PiperOrigin-RevId: 816517893 --- contributing/samples/bigquery/README.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/contributing/samples/bigquery/README.md b/contributing/samples/bigquery/README.md index 3185c4636c..6737acb410 100644 --- a/contributing/samples/bigquery/README.md +++ b/contributing/samples/bigquery/README.md @@ -9,23 +9,23 @@ distributed via the `google.adk.tools.bigquery` module. These tools include: Fetches BigQuery dataset ids present in a GCP project. -1. `get_dataset_info` +2. `get_dataset_info` Fetches metadata about a BigQuery dataset. -1. `list_table_ids` +3. `list_table_ids` Fetches table ids present in a BigQuery dataset. -1. `get_table_info` +4. `get_table_info` Fetches metadata about a BigQuery table. -1. `execute_sql` +5. `execute_sql` Runs or dry-runs a SQL query in BigQuery. -1. `ask_data_insights` +6. `ask_data_insights` Natural language-in, natural language-out tool that answers questions about structured data in BigQuery. Provides a one-stop solution for generating @@ -35,11 +35,17 @@ distributed via the `google.adk.tools.bigquery` module. These tools include: the official [Conversational Analytics API documentation](https://cloud.google.com/gemini/docs/conversational-analytics-api/overview) for instructions. -1. `forecast` +7. `forecast` Perform time series forecasting using BigQuery's `AI.FORECAST` function, leveraging the TimesFM 2.0 model. +8. `analyze_contribution` + + Perform contribution analysis in BigQuery by creating a temporary + `CONTRIBUTION_ANALYSIS` model and then querying it with + `ML.GET_INSIGHTS` to find top contributors for a given metric. + ## How to use Set up environment variables in your `.env` file for using From f2bed14c4b3a47da9d8e7bd958f0770e25a39bae Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Tue, 7 Oct 2025 23:06:41 -0700 Subject: [PATCH 054/303] chore: Adjust the LLM Request logging 1. function declarations is not necessary in the first tool 2. log the config PiperOrigin-RevId: 816547534 --- src/google/adk/models/google_llm.py | 40 ++++++- tests/unittests/models/test_google_llm.py | 132 ++++++++++++++++++++++ 2 files changed, 168 insertions(+), 4 deletions(-) diff --git a/src/google/adk/models/google_llm.py b/src/google/adk/models/google_llm.py index ec93d72c9d..411162bb0c 100644 --- a/src/google/adk/models/google_llm.py +++ b/src/google/adk/models/google_llm.py @@ -351,10 +351,19 @@ def _build_function_declaration_log( def _build_request_log(req: LlmRequest) -> str: - function_decls: list[types.FunctionDeclaration] = cast( - list[types.FunctionDeclaration], - req.config.tools[0].function_declarations if req.config.tools else [], - ) + # Find which tool contains function_declarations + function_decls: list[types.FunctionDeclaration] = [] + function_decl_tool_index: Optional[int] = None + + if req.config.tools: + for idx, tool in enumerate(req.config.tools): + if tool.function_declarations: + function_decls = cast( + list[types.FunctionDeclaration], tool.function_declarations + ) + function_decl_tool_index = idx + break + function_logs = ( [ _build_function_declaration_log(func_decl) @@ -375,12 +384,35 @@ def _build_request_log(req: LlmRequest) -> str: for content in req.contents ] + # Build exclusion dict for config logging + tools_exclusion = ( + {function_decl_tool_index: {'function_declarations'}} + if function_decl_tool_index is not None + else True + ) + + try: + config_log = str( + req.config.model_dump( + exclude_none=True, + exclude={ + 'system_instruction': True, + 'tools': tools_exclusion if req.config.tools else True, + }, + ) + ) + except Exception: + config_log = repr(req.config) + return f""" LLM Request: ----------------------------------------------------------- System Instruction: {req.config.system_instruction} ----------------------------------------------------------- +Config: +{config_log} +----------------------------------------------------------- Contents: {_NEW_LINE.join(contents_logs)} ----------------------------------------------------------- diff --git a/tests/unittests/models/test_google_llm.py b/tests/unittests/models/test_google_llm.py index cd03f1ddf7..255a86e82a 100644 --- a/tests/unittests/models/test_google_llm.py +++ b/tests/unittests/models/test_google_llm.py @@ -24,6 +24,7 @@ from google.adk.models.gemini_llm_connection import GeminiLlmConnection from google.adk.models.google_llm import _AGENT_ENGINE_TELEMETRY_ENV_VARIABLE_NAME from google.adk.models.google_llm import _AGENT_ENGINE_TELEMETRY_TAG +from google.adk.models.google_llm import _build_request_log from google.adk.models.google_llm import Gemini from google.adk.models.llm_request import LlmRequest from google.adk.models.llm_response import LlmResponse @@ -1726,3 +1727,134 @@ async def mock_coro(): # Verify cache metadata is preserved assert second_arg.cache_name == cache_metadata.cache_name assert second_arg.invocations_used == cache_metadata.invocations_used + + +def test_build_request_log_with_config_multiple_tool_types(): + """Test that _build_request_log includes config with multiple tool types.""" + func_decl = types.FunctionDeclaration( + name="test_function", + description="A test function", + parameters={"type": "object", "properties": {}}, + ) + + tool = types.Tool( + function_declarations=[func_decl], + google_search=types.GoogleSearch(), + code_execution=types.ToolCodeExecution(), + ) + + llm_request = LlmRequest( + model="gemini-1.5-flash", + contents=[Content(role="user", parts=[Part.from_text(text="Hello")])], + config=types.GenerateContentConfig( + temperature=0.7, + max_output_tokens=500, + system_instruction="You are a helpful assistant", + tools=[tool], + ), + ) + + log_output = _build_request_log(llm_request) + + # Verify config section exists + assert "Config:" in log_output + + # Verify config contains expected fields (using Python dict format with single quotes) + assert "'temperature': 0.7" in log_output + assert "'max_output_tokens': 500" in log_output + + # Verify config contains other tool types (not function_declarations) + assert "'google_search'" in log_output + assert "'code_execution'" in log_output + + # Verify function_declarations is NOT in config section + # (it should only be in the Functions section) + config_section = log_output.split("Functions:")[0] + assert "'function_declarations'" not in config_section + + # Verify function is in Functions section + assert "Functions:" in log_output + assert "test_function" in log_output + + # Verify system instruction is NOT in config section + assert ( + "'system_instruction'" + not in log_output.split("Contents:")[0].split("Config:")[1] + ) + + +def test_build_request_log_function_declarations_in_second_tool(): + """Test that function_declarations in non-first tool are handled correctly.""" + func_decl = types.FunctionDeclaration( + name="my_function", + description="A test function", + parameters={"type": "object", "properties": {}}, + ) + + # First tool has only google_search + tool1 = types.Tool(google_search=types.GoogleSearch()) + + # Second tool has function_declarations + tool2 = types.Tool( + function_declarations=[func_decl], + code_execution=types.ToolCodeExecution(), + ) + + llm_request = LlmRequest( + model="gemini-1.5-flash", + contents=[Content(role="user", parts=[Part.from_text(text="Hello")])], + config=types.GenerateContentConfig( + temperature=0.5, + system_instruction="You are a helpful assistant", + tools=[tool1, tool2], + ), + ) + + log_output = _build_request_log(llm_request) + + # Verify function is in Functions section + assert "Functions:" in log_output + assert "my_function" in log_output + + # Verify function_declarations is NOT in config section + config_section = log_output.split("Functions:")[0] + assert "'function_declarations'" not in config_section + + # Verify both tools are in config but without function_declarations (Python dict format) + assert "'google_search'" in log_output + assert "'code_execution'" in log_output + + # Verify config has the expected structure without parsing + config_section = log_output.split("Config:")[1].split("---")[0] + # Should have 2 tools (two dict entries in the tools list) + assert config_section.count("'google_search'") == 1 + assert config_section.count("'code_execution'") == 1 + # Function declarations should NOT be in config section + assert "'function_declarations'" not in config_section + + +def test_build_request_log_fallback_to_repr_on_all_failures(monkeypatch): + """Test that _build_request_log falls back to repr() if model_dump fails.""" + + llm_request = LlmRequest( + model="gemini-1.5-flash", + contents=[Content(role="user", parts=[Part.from_text(text="Hello")])], + config=types.GenerateContentConfig( + temperature=0.7, + system_instruction="You are a helpful assistant", + ), + ) + + # Mock model_dump at class level to raise exception + def mock_model_dump(*args, **kwargs): + raise Exception("dump failed") + + monkeypatch.setattr( + types.GenerateContentConfig, "model_dump", mock_model_dump + ) + + log_output = _build_request_log(llm_request) + + # Should still succeed using repr() + assert "Config:" in log_output + assert "GenerateContentConfig" in log_output From 0e3c0f78f5ac6e3a6bd946b257a854e66774cbd7 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Wed, 8 Oct 2025 11:08:07 -0700 Subject: [PATCH 055/303] feat: Make `session_id` optional in `BaseArtifactService` methods PiperOrigin-RevId: 816782982 --- .../adk/artifacts/base_artifact_service.py | 37 ++++++--- .../adk/artifacts/gcs_artifact_service.py | 77 ++++++++++++------- .../artifacts/in_memory_artifact_service.py | 47 +++++++---- .../adk/tools/_forwarding_artifact_service.py | 20 +++-- 4 files changed, 126 insertions(+), 55 deletions(-) diff --git a/src/google/adk/artifacts/base_artifact_service.py b/src/google/adk/artifacts/base_artifact_service.py index 249df96673..5fc67ae76a 100644 --- a/src/google/adk/artifacts/base_artifact_service.py +++ b/src/google/adk/artifacts/base_artifact_service.py @@ -11,7 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - +from __future__ import annotations from abc import ABC from abc import abstractmethod @@ -29,9 +29,9 @@ async def save_artifact( *, app_name: str, user_id: str, - session_id: str, filename: str, artifact: types.Part, + session_id: Optional[str] = None, ) -> int: """Saves an artifact to the artifact service storage. @@ -42,9 +42,9 @@ async def save_artifact( Args: app_name: The app name. user_id: The user ID. - session_id: The session ID. filename: The filename of the artifact. artifact: The artifact to save. + session_id: The session ID. If `None`, the artifact is user-scoped. Returns: The revision ID. The first version of the artifact has a revision ID of 0. @@ -57,8 +57,8 @@ async def load_artifact( *, app_name: str, user_id: str, - session_id: str, filename: str, + session_id: Optional[str] = None, version: Optional[int] = None, ) -> Optional[types.Part]: """Gets an artifact from the artifact service storage. @@ -69,8 +69,8 @@ async def load_artifact( Args: app_name: The app name. user_id: The user ID. - session_id: The session ID. filename: The filename of the artifact. + session_id: The session ID. If `None`, load the user-scoped artifact. version: The version of the artifact. If None, the latest version will be returned. @@ -80,7 +80,7 @@ async def load_artifact( @abstractmethod async def list_artifact_keys( - self, *, app_name: str, user_id: str, session_id: str + self, *, app_name: str, user_id: str, session_id: Optional[str] = None ) -> list[str]: """Lists all the artifact filenames within a session. @@ -90,33 +90,48 @@ async def list_artifact_keys( session_id: The ID of the session. Returns: - A list of all artifact filenames within a session. + A list of artifact filenames. If `session_id` is provided, returns + both session-scoped and user-scoped artifact filenames. If `session_id` + is `None`, returns + user-scoped artifact filenames. """ @abstractmethod async def delete_artifact( - self, *, app_name: str, user_id: str, session_id: str, filename: str + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, ) -> None: """Deletes an artifact. Args: app_name: The name of the application. user_id: The ID of the user. - session_id: The ID of the session. filename: The name of the artifact file. + session_id: The ID of the session. If `None`, delete the user-scoped + artifact. """ @abstractmethod async def list_versions( - self, *, app_name: str, user_id: str, session_id: str, filename: str + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, ) -> list[int]: """Lists all versions of an artifact. Args: app_name: The name of the application. user_id: The ID of the user. - session_id: The ID of the session. filename: The name of the artifact file. + session_id: The ID of the session. If `None`, only list the user-scoped + artifacts versions. Returns: A list of all available versions of the artifact. diff --git a/src/google/adk/artifacts/gcs_artifact_service.py b/src/google/adk/artifacts/gcs_artifact_service.py index a49d170e80..7c40ef0c06 100644 --- a/src/google/adk/artifacts/gcs_artifact_service.py +++ b/src/google/adk/artifacts/gcs_artifact_service.py @@ -41,7 +41,6 @@ class GcsArtifactService(BaseArtifactService): def __init__(self, bucket_name: str, **kwargs): """Initializes the GcsArtifactService. - Args: bucket_name: The name of the bucket to use. **kwargs: Keyword arguments to pass to the Google Cloud Storage client. @@ -56,9 +55,9 @@ async def save_artifact( *, app_name: str, user_id: str, - session_id: str, filename: str, artifact: types.Part, + session_id: Optional[str] = None, ) -> int: return await asyncio.to_thread( self._save_artifact, @@ -75,8 +74,8 @@ async def load_artifact( *, app_name: str, user_id: str, - session_id: str, filename: str, + session_id: Optional[str] = None, version: Optional[int] = None, ) -> Optional[types.Part]: return await asyncio.to_thread( @@ -90,7 +89,7 @@ async def load_artifact( @override async def list_artifact_keys( - self, *, app_name: str, user_id: str, session_id: str + self, *, app_name: str, user_id: str, session_id: Optional[str] = None ) -> list[str]: return await asyncio.to_thread( self._list_artifact_keys, @@ -101,7 +100,12 @@ async def list_artifact_keys( @override async def delete_artifact( - self, *, app_name: str, user_id: str, session_id: str, filename: str + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, ) -> None: return await asyncio.to_thread( self._delete_artifact, @@ -113,7 +117,12 @@ async def delete_artifact( @override async def list_versions( - self, *, app_name: str, user_id: str, session_id: str, filename: str + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, ) -> list[int]: return await asyncio.to_thread( self._list_versions, @@ -139,31 +148,36 @@ def _get_blob_name( self, app_name: str, user_id: str, - session_id: str, filename: str, version: int, + session_id: Optional[str] = None, ) -> str: """Constructs the blob name in GCS. Args: app_name: The name of the application. user_id: The ID of the user. - session_id: The ID of the session. filename: The name of the artifact file. version: The version of the artifact. + session_id: The ID of the session. Returns: The constructed blob name in GCS. """ if self._file_has_user_namespace(filename): return f"{app_name}/{user_id}/user/{filename}/{version}" + + if session_id is None: + raise ValueError( + "Session ID must be provided for session-scoped artifacts." + ) return f"{app_name}/{user_id}/{session_id}/{filename}/{version}" def _save_artifact( self, app_name: str, user_id: str, - session_id: str, + session_id: Optional[str], filename: str, artifact: types.Part, ) -> int: @@ -176,7 +190,7 @@ def _save_artifact( version = 0 if not versions else max(versions) + 1 blob_name = self._get_blob_name( - app_name, user_id, session_id, filename, version + app_name, user_id, filename, version, session_id ) blob = self.bucket.blob(blob_name) @@ -198,7 +212,7 @@ def _load_artifact( self, app_name: str, user_id: str, - session_id: str, + session_id: Optional[str], filename: str, version: Optional[int] = None, ) -> Optional[types.Part]: @@ -214,7 +228,7 @@ def _load_artifact( version = max(versions) blob_name = self._get_blob_name( - app_name, user_id, session_id, filename, version + app_name, user_id, filename, version, session_id ) blob = self.bucket.blob(blob_name) @@ -227,17 +241,18 @@ def _load_artifact( return artifact def _list_artifact_keys( - self, app_name: str, user_id: str, session_id: str + self, app_name: str, user_id: str, session_id: Optional[str] ) -> list[str]: filenames = set() - session_prefix = f"{app_name}/{user_id}/{session_id}/" - session_blobs = self.storage_client.list_blobs( - self.bucket, prefix=session_prefix - ) - for blob in session_blobs: - *_, filename, _ = blob.name.split("/") - filenames.add(filename) + if session_id: + session_prefix = f"{app_name}/{user_id}/{session_id}/" + session_blobs = self.storage_client.list_blobs( + self.bucket, prefix=session_prefix + ) + for blob in session_blobs: + *_, filename, _ = blob.name.split("/") + filenames.add(filename) user_namespace_prefix = f"{app_name}/{user_id}/user/" user_namespace_blobs = self.storage_client.list_blobs( @@ -250,7 +265,11 @@ def _list_artifact_keys( return sorted(list(filenames)) def _delete_artifact( - self, app_name: str, user_id: str, session_id: str, filename: str + self, + app_name: str, + user_id: str, + session_id: Optional[str], + filename: str, ) -> None: versions = self._list_versions( app_name=app_name, @@ -260,18 +279,23 @@ def _delete_artifact( ) for version in versions: blob_name = self._get_blob_name( - app_name, user_id, session_id, filename, version + app_name, user_id, filename, version, session_id ) blob = self.bucket.blob(blob_name) blob.delete() return def _list_versions( - self, app_name: str, user_id: str, session_id: str, filename: str + self, + app_name: str, + user_id: str, + session_id: Optional[str], + filename: str, ) -> list[int]: """Lists all available versions of an artifact. - This method retrieves all versions of a specific artifact by querying GCS blobs + This method retrieves all versions of a specific artifact by querying GCS + blobs that match the constructed blob name prefix. Args: @@ -281,10 +305,11 @@ def _list_versions( filename: The name of the artifact file. Returns: - A list of version numbers (integers) available for the specified artifact. + A list of version numbers (integers) available for the specified + artifact. Returns an empty list if no versions are found. """ - prefix = self._get_blob_name(app_name, user_id, session_id, filename, "") + prefix = self._get_blob_name(app_name, user_id, filename, "", session_id) blobs = self.storage_client.list_blobs(self.bucket, prefix=prefix) versions = [] for blob in blobs: diff --git a/src/google/adk/artifacts/in_memory_artifact_service.py b/src/google/adk/artifacts/in_memory_artifact_service.py index e483769549..6b99413056 100644 --- a/src/google/adk/artifacts/in_memory_artifact_service.py +++ b/src/google/adk/artifacts/in_memory_artifact_service.py @@ -48,21 +48,30 @@ def _file_has_user_namespace(self, filename: str) -> bool: return filename.startswith("user:") def _artifact_path( - self, app_name: str, user_id: str, session_id: str, filename: str + self, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str], ) -> str: """Constructs the artifact path. Args: app_name: The name of the application. user_id: The ID of the user. - session_id: The ID of the session. filename: The name of the artifact file. + session_id: The ID of the session. Returns: The constructed artifact path. """ if self._file_has_user_namespace(filename): return f"{app_name}/{user_id}/user/{filename}" + + if session_id is None: + raise ValueError( + "Session ID must be provided for session-scoped artifacts." + ) return f"{app_name}/{user_id}/{session_id}/{filename}" @override @@ -71,11 +80,11 @@ async def save_artifact( *, app_name: str, user_id: str, - session_id: str, filename: str, artifact: types.Part, + session_id: Optional[str] = None, ) -> int: - path = self._artifact_path(app_name, user_id, session_id, filename) + path = self._artifact_path(app_name, user_id, filename, session_id) if path not in self.artifacts: self.artifacts[path] = [] version = len(self.artifacts[path]) @@ -88,11 +97,11 @@ async def load_artifact( *, app_name: str, user_id: str, - session_id: str, filename: str, + session_id: Optional[str] = None, version: Optional[int] = None, ) -> Optional[types.Part]: - path = self._artifact_path(app_name, user_id, session_id, filename) + path = self._artifact_path(app_name, user_id, filename, session_id) versions = self.artifacts.get(path) if not versions: return None @@ -102,13 +111,15 @@ async def load_artifact( @override async def list_artifact_keys( - self, *, app_name: str, user_id: str, session_id: str + self, *, app_name: str, user_id: str, session_id: Optional[str] = None ) -> list[str]: - session_prefix = f"{app_name}/{user_id}/{session_id}/" usernamespace_prefix = f"{app_name}/{user_id}/user/" + session_prefix = ( + f"{app_name}/{user_id}/{session_id}/" if session_id else None + ) filenames = [] for path in self.artifacts: - if path.startswith(session_prefix): + if session_prefix and path.startswith(session_prefix): filename = path.removeprefix(session_prefix) filenames.append(filename) elif path.startswith(usernamespace_prefix): @@ -118,18 +129,28 @@ async def list_artifact_keys( @override async def delete_artifact( - self, *, app_name: str, user_id: str, session_id: str, filename: str + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, ) -> None: - path = self._artifact_path(app_name, user_id, session_id, filename) + path = self._artifact_path(app_name, user_id, filename, session_id) if not self.artifacts.get(path): return None self.artifacts.pop(path, None) @override async def list_versions( - self, *, app_name: str, user_id: str, session_id: str, filename: str + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, ) -> list[int]: - path = self._artifact_path(app_name, user_id, session_id, filename) + path = self._artifact_path(app_name, user_id, filename, session_id) versions = self.artifacts.get(path) if not versions: return [] diff --git a/src/google/adk/tools/_forwarding_artifact_service.py b/src/google/adk/tools/_forwarding_artifact_service.py index 44607cd1dc..df59933cef 100644 --- a/src/google/adk/tools/_forwarding_artifact_service.py +++ b/src/google/adk/tools/_forwarding_artifact_service.py @@ -39,9 +39,9 @@ async def save_artifact( *, app_name: str, user_id: str, - session_id: str, filename: str, artifact: types.Part, + session_id: Optional[str] = None, ) -> int: return await self.tool_context.save_artifact( filename=filename, artifact=artifact @@ -53,8 +53,8 @@ async def load_artifact( *, app_name: str, user_id: str, - session_id: str, filename: str, + session_id: Optional[str] = None, version: Optional[int] = None, ) -> Optional[types.Part]: return await self.tool_context.load_artifact( @@ -63,13 +63,18 @@ async def load_artifact( @override async def list_artifact_keys( - self, *, app_name: str, user_id: str, session_id: str + self, *, app_name: str, user_id: str, session_id: Optional[str] = None ) -> list[str]: return await self.tool_context.list_artifacts() @override async def delete_artifact( - self, *, app_name: str, user_id: str, session_id: str, filename: str + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, ) -> None: del app_name, user_id, session_id if self._invocation_context.artifact_service is None: @@ -83,7 +88,12 @@ async def delete_artifact( @override async def list_versions( - self, *, app_name: str, user_id: str, session_id: str, filename: str + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, ) -> list[int]: del app_name, user_id, session_id if self._invocation_context.artifact_service is None: From e858dc0799abfe3e1111422588923c2a0e3f418e Mon Sep 17 00:00:00 2001 From: George Weale Date: Wed, 8 Oct 2025 11:22:17 -0700 Subject: [PATCH 056/303] chore: change how agent builder assistant instructions for model selection asking, to make it ask once for plan and one for model selection PiperOrigin-RevId: 816788530 --- .../instruction_embedded.template | 94 ++++++++++--------- 1 file changed, 49 insertions(+), 45 deletions(-) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index df47e071e6..b384d61704 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -36,7 +36,8 @@ Always reference this schema when creating configurations to ensure compliance. ## Workflow Guidelines ### 1. Discovery Phase -- **DETERMINE USER INTENT FIRST**: + +**STEP 1: DETERMINE USER INTENT FIRST** * **INFORMATIONAL QUESTIONS** (Answer directly): - "Could you find me examples of..." / "Find me samples of..." - "Show me how to..." / "How do I..." @@ -52,62 +53,65 @@ Always reference this schema when creating configurations to ensure compliance. - "I want to create..." / "Help me build..." / "Help me update..." - "Set up a project..." / "Make me an agent..." -- **MODEL PREFERENCE**: Always ask for explicit model confirmation when LlmAgent(s) will be needed - * **When to ask**: After analyzing requirements and deciding that LlmAgent is needed for the solution - * **MANDATORY CONFIRMATION**: Say "Please confirm what model you want to use" - do NOT assume or suggest defaults - * **EXAMPLES**: "gemini-2.5-flash", "gemini-2.5-pro", etc. - * **RATIONALE**: Only LlmAgent requires model specification; workflow agents do not - * **DEFAULT ONLY**: Use "{default_model}" only if user explicitly says "use default" or similar +**STEP 2: UNDERSTAND REQUIREMENTS** - Understand the user's goals and requirements through targeted questions - Explore existing project structure using the explore_project tool - Identify integration needs (APIs, databases, external services) +- Analyze which agent types are needed (LlmAgent, SequentialAgent, ParallelAgent, LoopAgent) + +**STEP 3: MODEL SELECTION (COMPLETE BEFORE MOVING TO DESIGN PHASE)** +- **CRITICAL TIMING**: Ask for model selection IMMEDIATELY after determining LlmAgent is needed, BEFORE presenting any design +- **MANDATORY CONFIRMATION**: Say "Please confirm what model you want to use" - do NOT assume or suggest defaults +- **EXAMPLES**: "gemini-2.5-flash", "gemini-2.5-pro", etc. +- **RATIONALE**: Only LlmAgent requires model specification; workflow agents do not +- **DEFAULT ONLY**: Use "{default_model}" only if user explicitly says "use default" or similar +- **WORKFLOW**: Complete all Discovery steps (including this model selection) → Then proceed to Design Phase with model already chosen ### 2. Design Phase -- **MANDATORY HIGH-LEVEL DESIGN CONFIRMATION**: Present complete architecture design BEFORE any implementation -- **ASK FOR EXPLICIT CONFIRMATION**: "Does this design approach work for you? Should I proceed with implementation?" -- **INCLUDE IN DESIGN PRESENTATION**: - * Agent types and their roles - * Tool requirements and purposes - * File structure overview - * Model selection (if applicable) -- **WAIT FOR USER CONFIRMATION**: Do not proceed to implementation until user confirms the design -- **NO FILE CONTENT**: Do not show any file content during design phase - only architecture overview +- **NOTE**: Model selection has ALREADY been completed in Discovery Phase (Step 3) - do NOT ask for model again + +**PRESENT COMPLETE IMPLEMENTATION** - Show everything the user needs to review in one place: + * High-level architecture overview (agent types and their roles) + * Selected model (already chosen in Discovery Phase) + * **Complete YAML configuration files** - Show full content of all YAML files + * **Complete Python files** - Show full content of all Python tool/callback files + * File structure with paths + +- **SINGLE CONFIRMATION REQUIRED**: Ask ONCE after showing everything - "Should I proceed with creating these files?" +- **WAIT FOR USER CONFIRMATION**: Do not proceed to implementation until user confirms +- **ONE APPROVAL FOR EVERYTHING**: User reviews plan + all file contents, then gives single approval +- **WORKFLOW**: Model already selected → Present plan + all file contents → ONE "Should I proceed?" → Execute without asking again ### 3. Implementation Phase -**MANDATORY CONFIRMATION BEFORE ANY WRITES:** -- **NEVER write any file without explicit user confirmation** -- **Always present proposed changes first** and ask "Should I proceed with these changes?" -- **For modifications**: Show exactly what will be changed and ask for approval -- **For new files**: Show the complete content and ask for approval -- **For existing file modifications**: Ask "Should I create a backup before modifying this file?" -- **Use backup_existing parameter**: Set to True only if user explicitly requests backup -- **🚨 PATH DISPLAY RULE**: ALWAYS show relative paths in responses (e.g., `root_agent.yaml`, `tools/dice_tool.py`) instead of full absolute paths +**NOTE: User has ALREADY approved everything in Design Phase - DO NOT ask for confirmation again** + +**🚨 PATH DISPLAY RULE**: ALWAYS show relative paths in responses (e.g., `root_agent.yaml`, `tools/dice_tool.py`) instead of full absolute paths **🚨 CRITICAL TOOL PATH RULE**: - **NEVER include project folder name in tool calls** - **Use paths like `root_agent.yaml`, NOT `{project_folder_name}/root_agent.yaml`** - **Tools automatically resolve relative to project folder** -**IMPLEMENTATION ORDER (CRITICAL - ONLY AFTER USER CONFIRMS DESIGN):** - -**STEP 1: YAML CONFIGURATION FILES FIRST** -1. Generate all YAML configuration files -2. Present complete YAML content to user for confirmation -3. Ask: "Should I create these YAML configuration files?" -4. Only proceed after user confirmation - -**STEP 2: PYTHON FILES SECOND** -1. Generate Python tool/callback files -2. Present complete Python content to user for confirmation -3. Ask: "Should I create these Python files?" -4. Only proceed after user confirmation -5. **Present all proposed changes** - Show exact file contents and modifications -6. **Get explicit user approval** - Wait for "yes" or "proceed" before any writes -7. **Execute approved changes** - Only write files after user confirms - * ⚠️ **YAML files**: Use `write_config_files` with paths like `"root_agent.yaml"` (NO project folder prefix) - * ⚠️ **Python files**: Use `write_files` with paths like `"tools/dice_tool.py"` (NO project folder prefix) -8. **Clean up unused files** - Use `cleanup_unused_files` and `delete_files` to remove obsolete tool files +**IMPLEMENTATION ORDER (Execute immediately after Design Phase approval):** + +**STEP 1: WRITE YAML CONFIGURATION FILES** +1. Write all YAML configuration files using `write_config_files` + * Use paths like `"root_agent.yaml"` (NO project folder prefix) + * Files were already shown and approved in Design Phase + +**STEP 2: WRITE PYTHON FILES** +1. Write Python tool/callback files using `write_files` + * Use paths like `"tools/dice_tool.py"` (NO project folder prefix) + * Files were already shown and approved in Design Phase + +**STEP 3: CLEANUP** +1. Use `cleanup_unused_files` and `delete_files` to remove obsolete tool files if needed + +**For file modifications (updates to existing files):** +- Show exactly what will be changed and ask for approval +- Ask "Should I create a backup before modifying this file?" if modifying existing files +- Use backup_existing parameter: Set to True only if user explicitly requests backup **YAML Configuration Requirements:** - Main agent file MUST be named `root_agent.yaml` @@ -426,8 +430,8 @@ def log_tool_result(tool: BaseTool, args: Dict[str, Any], context: ToolContext, **Correct ADK Commands:** - `adk run [project_directory]` - Run agent from project directory (e.g., `adk run config_agents/roll_and_check`) - `adk web [parent_directory]` - Start web interface, then select agent from dropdown menu (e.g., `adk web config_agents`) +- **Key Rule**: Always use the project directory for `adk run`, and parent directory for `adk web` **Incorrect Commands to Avoid:** - `adk run [project_directory]/root_agent.yaml` - Do NOT specify the YAML file directly -- `adk web` without parent directory - Must specify the parent folder containing the agent projects -- Always use the project directory for `adk run`, and parent directory for `adk web` +- `adk web` without parent directory - Must specify the parent folder containing the agent projects \ No newline at end of file From 03f051d3edc7c345c2df08123a7ac55a040fc7b1 Mon Sep 17 00:00:00 2001 From: "Wei Sun (Jack)" Date: Wed, 8 Oct 2025 11:22:19 -0700 Subject: [PATCH 057/303] chore: Bumps version to v1.16.0 and updates CHANGELOG PiperOrigin-RevId: 816788551 --- CHANGELOG.md | 82 +++++++++++++++++++++++++++++++++------ src/google/adk/version.py | 2 +- 2 files changed, 72 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a133b6c86..c551f6f14d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,65 @@ # Changelog +## [1.16.0](https://github.com/google/adk-python/compare/v1.15.1...v1.16.0) (2025-10-08) + +### Features + +* **[Core]** + * Implementation of LLM context compaction ([e0dd06f](https://github.com/google/adk-python/commit/e0dd06ff04f9d3c2f022873ce145aaae2de02f45)) + * Support pause and resume an invocation in ADK ([ce9c39f](https://github.com/google/adk-python/commit/ce9c39f5a85ed12c22009693b5e6bc65f4641633), + [2f1040f](https://github.com/google/adk-python/commit/2f1040f296db365080b62d6372474d90196ce0d6), + [1ee01cc](https://github.com/google/adk-python/commit/1ee01cc05add44ce460d2cfd3726dceb0c76dceb), + [f005414](https://github.com/google/adk-python/commit/f005414895a57befe880fd58c0d778e499a20d8e), + [fbf7576](https://github.com/google/adk-python/commit/fbf75761bb8d89a70b32c43bbd3fa2f48b81d67c)) +* **[Models]** + * Add `citation_metadata` to `LlmResponse` ([3f28e30](https://github.com/google/adk-python/commit/3f28e30c6da192e90a8100f270274cb9a55a5348)) + * Add support for gemma model via gemini api ([2b5acb9](https://github.com/google/adk-python/commit/2b5acb98f577f5349e788bcf9910c8d7107e63b3)) +* **[Tools]** + * Add `dry_run` functionality to BigQuery `execute_sql` tool ([960eda3](https://github.com/google/adk-python/commit/960eda3d1f2f46dc93a365eb3de03dc3483fe9bb)) + * Add BigQuery analyze_contribution tool ([4bb089d](https://github.com/google/adk-python/commit/4bb089d386d4e8133e9aadbba5c42d31ff281cf6)) + * Spanner ADK toolset supports customizable template SQL and parameterized SQL ([da62700](https://github.com/google/adk-python/commit/da62700d739cb505149554962a8bcfb30f9428cc)) + * Support Oauth2 client credentials grant type ([5c6cdcd](https://github.com/google/adk-python/commit/5c6cdcd197a6780fc86d9183fa208f78c8a975d9)) + * Add `ReflectRetryToolPlugin` to reflect from errors and retry with different arguments when tool errors ([e55b894](https://github.com/google/adk-python/commit/e55b8946d6a2e01aaf018d6a79d11d13c5286152)) + * Support using `VertexAiSearchTool` built-in tool with other tools in the same agent ([4485379](https://github.com/google/adk-python/commit/4485379a049a5c84583a43c85d444ea1f1ba6f12)) + * Support using google search built-in tool with other tools in the same agent ([d3148da](https://github.com/google/adk-python/commit/d3148dacc97f0a9a39b6d7a9640f7b7b0d6f9a6c)) +* **[Evals]** + * Add HallucinationsV1 evaluation metric ([8c73d29](https://github.com/google/adk-python/commit/8c73d29c7557a75d64917ac503da519361d1d762)) + * Add Rubric based tool use metric ([c984b9e](https://github.com/google/adk-python/commit/c984b9e5529b48fff64865a8b805e7e93942ea53)) +* **[UI]** + * Adds `adk web` options for custom logo ([822efe0](https://github.com/google/adk-python/commit/822efe00659607bad2d19ec9a2d14c649fca2d8d)) +* **[Observability]** + * **otel:** Switch CloudTraceSpanExporter to telemetry.googleapis.com ([bd76b46](https://github.com/google/adk-python/commit/bd76b46ce296409d929ae69c5c43347c73e7b365)) + +### Bug Fixes + +* Adapt to new computer use tool name in genai sdk 1.41.0 ([c6dd444](https://github.com/google/adk-python/commit/c6dd444fc947571d089b784fde3a81e17b10cf28)) +* Add AuthConfig json serialization in vertex ai session service ([636def3](https://github.com/google/adk-python/commit/636def3687a85e274e3ab44d906f6d92d49e84c0)) +* Added more agent instructions for doc content changes ([7459962](https://github.com/google/adk-python/commit/745996212db156878554386be34f58658482e687)) +* Convert argument to pydantic model when tool declares it accepts pydantic model as argument ([571c802](https://github.com/google/adk-python/commit/571c802fbaa80b3e65f9ce2db772b9db5a13dbc4)) +* Do not re-create `App` object when loader returns an `App` ([d5c46e4](https://github.com/google/adk-python/commit/d5c46e496009eb55d78637f47162df7fcaf3a7ac)) +* Fix compaction logic ([3f2b457](https://github.com/google/adk-python/commit/3f2b457efd27ed47160811705e30efa6dd09d7c0)) +* Fix the instruction in workflow_triage example agent ([8f3ca03](https://github.com/google/adk-python/commit/8f3ca0359e5b1306c1395770759a74aa48a52347)) +* Fixes a bug that causes intermittent `pydantic` validation errors when uploading files ([e680063](https://github.com/google/adk-python/commit/e68006386fdd0da98feb9c3dce9322e44a9c914d)) +* Handle A2A Task Status Update Event when streaming in remote_a2a_agent ([a5cf80b](https://github.com/google/adk-python/commit/a5cf80b952887c07bb1d56b7bdec28808edcc4a9)) +* Make compactor optional in Events Compaction Config and add a default ([3f4bd67](https://github.com/google/adk-python/commit/3f4bd67b49cd60e6a2e43ccd5192efe450a6e009)) +* Rename SlidingWindowCompactor to LlmEventSummarizer and refine its docstring ([f1abdb1](https://github.com/google/adk-python/commit/f1abdb1938e474564a3a76279a1a0a511f74a750)) +* Rollback compaction handling from _get_contents ([84f2f41](https://github.com/google/adk-python/commit/84f2f417f77ead3748c5bbeac7f144164b9a9416)) +* Set `max_output_tokens` for the agent builder ([2e2d61b](https://github.com/google/adk-python/commit/2e2d61b6fecb90cd474d6f51255678ff74b67a9b)) +* Set default response modality to AUDIO in run_session ([68402bd](https://github.com/google/adk-python/commit/68402bda49083f2d56f8e8488fe13aa58b3bc18c)) +* Update remote_a2a_agent to better handle streaming events and avoid duplicate responses ([8e5f361](https://github.com/google/adk-python/commit/8e5f36126498f751171bb2639c7f5a9e7dca2558)) +* Update the load_artifacts tool so that the model can reliably call it for follow up questions about the same artifact ([238472d](https://github.com/google/adk-python/commit/238472d083b5aa67551bde733fc47826ff062679)) +* Fix VertexAiSessionService base_url override to preserve initialized http_options ([8110e41](https://github.com/google/adk-python/commit/8110e41b36cceddb8b92ba17cffaacf701706b36), [c51ea0b](https://github.com/google/adk-python/commit/c51ea0b52e63de8e43d3dccb24f9d20987784aa5)) + +### Improvements + +* Migrate VertexAiSessionService to use Agent Engine SDK ([90d4c19](https://github.com/google/adk-python/commit/90d4c19c5115c7af361effa8e12c248225ccf6ab)) +* Migrate VertexAiMemoryBankService to use Agent Engine SDK ([d1efc84](https://github.com/google/adk-python/commit/d1efc8461e82fc31df940b701f1d1b5422214296), [97b950b](https://github.com/google/adk-python/commit/97b950b36b9c16467f0f42216b2dc8395346d7fe), [83fd045](https://github.com/google/adk-python/commit/83fd0457188decdabeae58b4e8be25daa89f2943)) +* Add support for resolving $ref and $defs in OpenAPI schemas ([a239716](https://github.com/google/adk-python/commit/a239716930c72a0dbd2ccabeea69be46110ca48d)) + +### Documentation + +* Update BigQuery samples README ([3021266](https://github.com/google/adk-python/commit/30212669ff61f3cbd6603c3dceadfbcc4cec42f8)) + ## [1.15.1](https://github.com/google/adk-python/compare/v1.15.0...v1.15.1) (2025-09-26) ### Bug Fixes @@ -10,11 +70,11 @@ ### Features -* [Core] +* **[Core]** * Adding the ContextFilterPlugin ([a06bf27](https://github.com/google/adk-python/commit/a06bf278cbc89f521c187ed51b032d82ffdafe2d)) * Adds plugin to save artifacts for issue [#2176](https://github.com/google/adk-python/issues/2176) ([657369c](https://github.com/google/adk-python/commit/657369cffe142ef3745cd5950d0d24a49f42f7fd)) * Expose log probs of candidates in LlmResponse ([f7bd3c1](https://github.com/google/adk-python/commit/f7bd3c111c211e880d7c1954dd4508b952704c68)) -* [Context Caching] +* **[Context Caching]** * Support context caching ([c66245a](https://github.com/google/adk-python/commit/c66245a3b80192c16cb67ee3194f82c9a7c901e5)) - Support explicit context caching auto creation and lifecycle management. @@ -29,21 +89,21 @@ Usage: `LlmAgent(model=...,static_instruction =types.Content(parts=...), ... )` -* [Telemetry] +* **[Observability]** * Add --otel_to_cloud experimental support ([1ae0b82](https://github.com/google/adk-python/commit/1ae0b82f5602a57ad1ca975ca0b7c85003d1a28a), [b131268](https://github.com/google/adk-python/commit/b1312680f4ea9f21c3246a1d24392619643d71f5), [7870480](https://github.com/google/adk-python/commit/7870480c63bb4fc08cfb3cabc0e1f0458f0e85bd)) * Add GenAI Instrumentation if --otel_to_cloud is enabled ([cee365a](https://github.com/google/adk-python/commit/cee365a13d0d1b1f2be046c1cc29e24a8d1fdbcc)) * Support standard OTel env variables for exporter endpoints ([f157b2e](https://github.com/google/adk-python/commit/f157b2ee4caf4055e78f4657254e45913895f5de)) * Temporarily disable Cloud Monitoring integration in --otel_to_cloud ([3b80337](https://github.com/google/adk-python/commit/3b80337faf427460e4743e25dbb92578f823513f)) -* [Services] +* **[Services]** * Add endpoint to generate memory from session ([2595824](https://github.com/google/adk-python/commit/25958242db890b4d2aac8612f7f7cfbb561727fa)) -* [Tools] +* **[Tools]** * Add Google Maps Grounding Tool to ADK ([6b49391](https://github.com/google/adk-python/commit/6b493915469ecb42068e24818ab547b0856e4709)) * **MCP:** Initialize tool_name_prefix in MCPToolse ([86dea5b](https://github.com/google/adk-python/commit/86dea5b53ac305367283b7e353b60d0f4515be3b)) -* [Evals] +* **[Evals]** * Data model for storing App Details and data model for steps ([01923a9](https://github.com/google/adk-python/commit/01923a9227895906ca8ae32712d65b178e2cd7d5)) * Adds Rubric based final response evaluator ([5a485b0](https://github.com/google/adk-python/commit/5a485b01cd64cb49735e13ebd5e7fa3da02cd85f)) * Populate AppDetails to each Invocation ([d486795](https://github.com/google/adk-python/commit/d48679582de91050ca9c5106402319be9a8ae7e8)) -* [Samples] +* **[Samples]** * Make the bigquery sample agent run with ADC out-of-the-box ([10cf377](https://github.com/google/adk-python/commit/10cf37749417856e394e62896231e41b13420f18)) ### Bug Fixes @@ -71,22 +131,22 @@ ### Features -* [A2A] +* **[A2A]** * Allow users to pass their own agent card to to_a2a method [a1679da](https://github.com/google/adk-python/commit/a1679dae3fef70f1231afba3e97d45b59c314ae3) * Allow custom part converters in A2A classes [b05fef9](https://github.com/google/adk-python/commit/b05fef9ba71f95ab2658eb4eb5608c141d49f82f) -* [Tools] +* **[Tools]** * Allow setting agent/application name and compute project for BigQuery tools [11a2ffe](https://github.com/google/adk-python/commit/11a2ffe35adbae977b49ceccf0e76e20c6dc90b6) * Add BigQuery forecast tool [0935a40](https://github.com/google/adk-python/commit/0935a40011a3276ee7f7fa3b91678b4d63f22ba5) * Add GkeCodeExecutor for sandboxed code execution on GKE [72ff9c6](https://github.com/google/adk-python/commit/72ff9c64a291aebb50b07446378f375e58882c4e) * Add a tool confirmation flow that can guard tool execution with explicit confirmation and custom input [a17bcbb](https://github.com/google/adk-python/commit/a17bcbb2aa0f5c6aca460db96ed1cb7dd86fef84) * Add audience and prompt as configurable for OAuth flows [edda922](https://github.com/google/adk-python/commit/edda922791f15ac37830ed95ebf76b9f836d9db4) * Allow user specify embedding model for file retrieval [67f23df](https://github.com/google/adk-python/commit/67f23df25ad47aff3cb36d0fc9ce2c9b97bde09b) -* [Core] +* **[Core]** * Allow all possible values for `agent_class` field in all Agent Configs [3bc2d77](https://github.com/google/adk-python/commit/3bc2d77b4d180e9c42b30d4d1ce580aa75abe501) * Allow agent loader to load built-in agents from special directories in adk folder [578fad7](https://github.com/google/adk-python/commit/578fad7034a7b369a490ad0afa4dd2820463c22d) * Upgrade ADK runner to use App in addition to root_agent [4df79dd](https://github.com/google/adk-python/commit/4df79dd5c92d96096d031b26470458d0bca79a79) * Allow inject artifact into instructions [bb4cfde](https://github.com/google/adk-python/commit/bb4cfdec12370955d4038d6d8c86e04691f2308e) -* [Misc] Create an initial ADK release analyzer agent to find the doc updates needed between releases [e3422c6](https://github.com/google/adk-python/commit/e3422c616d18ec3850454ee83f2ef286198543ec) +* **[Misc]** Create an initial ADK release analyzer agent to find the doc updates needed between releases [e3422c6](https://github.com/google/adk-python/commit/e3422c616d18ec3850454ee83f2ef286198543ec) ### Bug Fixes diff --git a/src/google/adk/version.py b/src/google/adk/version.py index 8a2607d6ed..1d73afb1fd 100644 --- a/src/google/adk/version.py +++ b/src/google/adk/version.py @@ -13,4 +13,4 @@ # limitations under the License. # version: major.minor.patch -__version__ = "1.15.1" +__version__ = "1.16.0" From 75179243b434cf55814c947845602da9e83a7968 Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Wed, 8 Oct 2025 11:34:32 -0700 Subject: [PATCH 058/303] chore: Update human_tool_confirmation agent to use resumability feature PiperOrigin-RevId: 816793131 --- contributing/samples/human_tool_confirmation/agent.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/contributing/samples/human_tool_confirmation/agent.py b/contributing/samples/human_tool_confirmation/agent.py index 43e67dc99f..e1ef5a518e 100644 --- a/contributing/samples/human_tool_confirmation/agent.py +++ b/contributing/samples/human_tool_confirmation/agent.py @@ -13,6 +13,8 @@ # limitations under the License. from google.adk import Agent +from google.adk.apps import App +from google.adk.apps import ResumabilityConfig from google.adk.tools.function_tool import FunctionTool from google.adk.tools.tool_confirmation import ToolConfirmation from google.adk.tools.tool_context import ToolContext @@ -88,3 +90,12 @@ def request_time_off(days: int, tool_context: ToolContext): ], generate_content_config=types.GenerateContentConfig(temperature=0.1), ) + +app = App( + name='human_tool_confirmation', + root_agent=root_agent, + # Set the resumability config to enable resumability. + resumability_config=ResumabilityConfig( + is_resumable=True, + ), +) From 32f2ec3a78c4ef8475b7d8a630705e4cf5ccbe50 Mon Sep 17 00:00:00 2001 From: "Xinran (Sherry) Tang" Date: Wed, 8 Oct 2025 12:01:27 -0700 Subject: [PATCH 059/303] feat: Set agent_state in invocation context right before yielding the checkpoint event PiperOrigin-RevId: 816804179 --- src/google/adk/agents/base_agent.py | 16 +++---- src/google/adk/agents/invocation_context.py | 35 +++++++++++++-- src/google/adk/agents/llm_agent.py | 6 ++- src/google/adk/agents/loop_agent.py | 8 ++-- src/google/adk/agents/parallel_agent.py | 12 ++++-- src/google/adk/agents/sequential_agent.py | 8 ++-- tests/unittests/agents/test_base_agent.py | 22 ++++------ .../agents/test_invocation_context.py | 43 +++++++++++++++++++ tests/unittests/agents/test_parallel_agent.py | 2 + 9 files changed, 113 insertions(+), 39 deletions(-) diff --git a/src/google/adk/agents/base_agent.py b/src/google/adk/agents/base_agent.py index 939334a394..9f473de81f 100644 --- a/src/google/adk/agents/base_agent.py +++ b/src/google/adk/agents/base_agent.py @@ -184,21 +184,19 @@ def _load_agent_state( def _create_agent_state_event( self, ctx: InvocationContext, - *, - agent_state: Optional[BaseAgentState] = None, - end_of_agent: bool = False, ) -> Event: - """Returns an event with agent state. + """Returns an event with current agent state set in the invocation context. Args: ctx: The invocation context. - agent_state: The agent state to checkpoint. - end_of_agent: Whether the agent is finished running. + + Returns: + An event with the current agent state set in the invocation context. """ event_actions = EventActions() - if agent_state: - event_actions.agent_state = agent_state.model_dump(mode='json') - if end_of_agent: + if (agent_state := ctx.agent_states.get(self.name)) is not None: + event_actions.agent_state = agent_state + if ctx.end_of_agents.get(self.name): event_actions.end_of_agent = True return Event( invocation_id=ctx.invocation_id, diff --git a/src/google/adk/agents/invocation_context.py b/src/google/adk/agents/invocation_context.py index 66ecbaf4a9..de18e58640 100644 --- a/src/google/adk/agents/invocation_context.py +++ b/src/google/adk/agents/invocation_context.py @@ -217,10 +217,37 @@ def is_resumable(self) -> bool: and self.resumability_config.is_resumable ) - def reset_agent_state(self, agent_name: str) -> None: - """Resets the state of an agent, allowing it to be re-run.""" - self.agent_states.pop(agent_name, None) - self.end_of_agents.pop(agent_name, None) + def set_agent_state( + self, + agent_name: str, + *, + agent_state: Optional[BaseAgentState] = None, + end_of_agent: bool = False, + ) -> None: + """Sets the state of an agent in this invocation. + + * If end_of_agent is True, will set the end_of_agent flag to True and + clear the agent_state. + * Otherwise, if agent_state is not None, will set the agent_state and + reset the end_of_agent flag to False. + * Otherwise, will clear the agent_state and end_of_agent flag, to allow the + agent to re-run. + + Args: + agent_name: The name of the agent. + agent_state: The state of the agent. Will be ignored if end_of_agent is + True. + end_of_agent: Whether the agent has finished running. + """ + if end_of_agent: + self.end_of_agents[agent_name] = True + self.agent_states.pop(agent_name, None) + elif agent_state is not None: + self.agent_states[agent_name] = agent_state.model_dump(mode="json") + self.end_of_agents[agent_name] = False + else: + self.end_of_agents.pop(agent_name, None) + self.agent_states.pop(agent_name, None) def populate_invocation_agent_states(self) -> None: """Populates agent states for the current invocation if it is resumable. diff --git a/src/google/adk/agents/llm_agent.py b/src/google/adk/agents/llm_agent.py index 21c82774c9..3bfbfea062 100644 --- a/src/google/adk/agents/llm_agent.py +++ b/src/google/adk/agents/llm_agent.py @@ -388,7 +388,8 @@ async def _run_async_impl( async for event in agen: yield event - yield self._create_agent_state_event(ctx, end_of_agent=True) + ctx.set_agent_state(self.name, end_of_agent=True) + yield self._create_agent_state_event(ctx) return async with Aclosing(self._llm_flow.run_async(ctx)) as agen: @@ -399,7 +400,8 @@ async def _run_async_impl( return if ctx.is_resumable: - yield self._create_agent_state_event(ctx, end_of_agent=True) + ctx.set_agent_state(self.name, end_of_agent=True) + yield self._create_agent_state_event(ctx) @override async def _run_live_impl( diff --git a/src/google/adk/agents/loop_agent.py b/src/google/adk/agents/loop_agent.py index 9965f18fdf..6b8b743570 100644 --- a/src/google/adk/agents/loop_agent.py +++ b/src/google/adk/agents/loop_agent.py @@ -91,12 +91,13 @@ async def _run_async_impl( current_sub_agent=sub_agent.name, times_looped=times_looped, ) - yield self._create_agent_state_event(ctx, agent_state=agent_state) + ctx.set_agent_state(self.name, agent_state=agent_state) + yield self._create_agent_state_event(ctx) # Reset the sub-agent's state in the context to ensure that each # sub-agent starts fresh. if not is_resuming_at_current_agent: - ctx.reset_agent_state(sub_agent.name) + ctx.set_agent_state(sub_agent.name) is_resuming_at_current_agent = False async with Aclosing(sub_agent.run_async(ctx)) as agen: @@ -119,7 +120,8 @@ async def _run_async_impl( return if ctx.is_resumable: - yield self._create_agent_state_event(ctx, end_of_agent=True) + ctx.set_agent_state(self.name, end_of_agent=True) + yield self._create_agent_state_event(ctx) def _get_start_state( self, diff --git a/src/google/adk/agents/parallel_agent.py b/src/google/adk/agents/parallel_agent.py index 45dabfea0a..69ccd8a4f1 100644 --- a/src/google/adk/agents/parallel_agent.py +++ b/src/google/adk/agents/parallel_agent.py @@ -181,14 +181,15 @@ async def _run_async_impl( agent_state = self._load_agent_state(ctx, BaseAgentState) if ctx.is_resumable and agent_state is None: - yield self._create_agent_state_event(ctx, agent_state=BaseAgentState()) + ctx.set_agent_state(self.name, agent_state=BaseAgentState()) + yield self._create_agent_state_event(ctx) agent_runs = [] # Prepare and collect async generators for each sub-agent. for sub_agent in self.sub_agents: if agent_state is None: # Reset sub-agent state to make sure each sub-agent starts fresh. - ctx.reset_agent_state(sub_agent.name) + ctx.set_agent_state(sub_agent.name) sub_agent_ctx = _create_branch_ctx_for_sub_agent(self, sub_agent, ctx) @@ -215,8 +216,11 @@ async def _run_async_impl( return # Once all sub-agents are done, mark the ParallelAgent as final. - if ctx.is_resumable: - yield self._create_agent_state_event(ctx, end_of_agent=True) + if ctx.is_resumable and all( + ctx.end_of_agents.get(sub_agent.name) for sub_agent in self.sub_agents + ): + ctx.set_agent_state(self.name, end_of_agent=True) + yield self._create_agent_state_event(ctx) finally: for sub_agent_run in agent_runs: diff --git a/src/google/adk/agents/sequential_agent.py b/src/google/adk/agents/sequential_agent.py index 5cc5b654ad..417008f9ce 100644 --- a/src/google/adk/agents/sequential_agent.py +++ b/src/google/adk/agents/sequential_agent.py @@ -70,11 +70,12 @@ async def _run_async_impl( # already been logged, so we should avoid yielding it again. if ctx.is_resumable: agent_state = SequentialAgentState(current_sub_agent=sub_agent.name) - yield self._create_agent_state_event(ctx, agent_state=agent_state) + ctx.set_agent_state(self.name, agent_state=agent_state) + yield self._create_agent_state_event(ctx) # Reset the sub-agent's state in the context to ensure that each # sub-agent starts fresh. - ctx.reset_agent_state(sub_agent.name) + ctx.set_agent_state(sub_agent.name) async with Aclosing(sub_agent.run_async(ctx)) as agen: async for event in agen: @@ -90,7 +91,8 @@ async def _run_async_impl( resuming_sub_agent = False if ctx.is_resumable: - yield self._create_agent_state_event(ctx, end_of_agent=True) + ctx.set_agent_state(self.name, end_of_agent=True) + yield self._create_agent_state_event(ctx) def _get_start_index( self, diff --git a/tests/unittests/agents/test_base_agent.py b/tests/unittests/agents/test_base_agent.py index 176fd5f834..663179f670 100644 --- a/tests/unittests/agents/test_base_agent.py +++ b/tests/unittests/agents/test_base_agent.py @@ -929,9 +929,10 @@ async def test_create_agent_state_event(): ctx.branch = 'test_branch' - # Test case 1: with state + # Test case 1: set agent state in context state = _TestAgentState(test_field='checkpoint') - event = agent._create_agent_state_event(ctx, agent_state=state) + ctx.set_agent_state(agent.name, agent_state=state) + event = agent._create_agent_state_event(ctx) assert event is not None assert event.invocation_id == ctx.invocation_id assert event.author == agent.name @@ -941,8 +942,9 @@ async def test_create_agent_state_event(): assert event.actions.agent_state == state.model_dump(mode='json') assert not event.actions.end_of_agent - # Test case 2: with end_of_agent - event = agent._create_agent_state_event(ctx, end_of_agent=True) + # Test case 2: set end_of_agent in context + ctx.set_agent_state(agent.name, end_of_agent=True) + event = agent._create_agent_state_event(ctx) assert event is not None assert event.invocation_id == ctx.invocation_id assert event.author == agent.name @@ -951,16 +953,8 @@ async def test_create_agent_state_event(): assert event.actions.end_of_agent assert event.actions.agent_state is None - # Test case 3: with both state and end_of_agent - state = _TestAgentState(test_field='checkpoint') - event = agent._create_agent_state_event( - ctx, agent_state=state, end_of_agent=True - ) - assert event is not None - assert event.actions.agent_state == state.model_dump(mode='json') - assert event.actions.end_of_agent - - # Test case 4: with neither + # Test case 3: reset agent state and end_of_agent in context + ctx.set_agent_state(agent.name) event = agent._create_agent_state_event(ctx) assert event is not None assert event.actions.agent_state is None diff --git a/tests/unittests/agents/test_invocation_context.py b/tests/unittests/agents/test_invocation_context.py index d293348363..2cdf38c9ea 100644 --- a/tests/unittests/agents/test_invocation_context.py +++ b/tests/unittests/agents/test_invocation_context.py @@ -347,6 +347,49 @@ def test_populate_invocation_agent_states_no_content(self): assert not invocation_context.agent_states assert not invocation_context.end_of_agents + def test_set_agent_state_with_end_of_agent_true(self): + """Tests that set_agent_state clears agent_state and sets end_of_agent to True.""" + invocation_context = self._create_test_invocation_context( + ResumabilityConfig(is_resumable=True) + ) + invocation_context.agent_states['agent1'] = {} + invocation_context.end_of_agents['agent1'] = False + + # Set state with end_of_agent=True, which should clear the existing + # agent_state. + invocation_context.set_agent_state('agent1', end_of_agent=True) + assert 'agent1' not in invocation_context.agent_states + assert invocation_context.end_of_agents['agent1'] + + def test_set_agent_state_with_agent_state(self): + """Tests that set_agent_state sets agent_state and sets end_of_agent to False.""" + agent_state = BaseAgentState() + invocation_context = self._create_test_invocation_context( + ResumabilityConfig(is_resumable=True) + ) + invocation_context.end_of_agents['agent1'] = True + + # Set state with agent_state=agent_state, which should set the agent_state + # and reset the end_of_agent flag to False. + invocation_context.set_agent_state('agent1', agent_state=agent_state) + assert invocation_context.agent_states['agent1'] == agent_state.model_dump( + mode='json' + ) + assert invocation_context.end_of_agents['agent1'] is False + + def test_reset_agent_state(self): + """Tests that set_agent_state clears agent_state and end_of_agent.""" + invocation_context = self._create_test_invocation_context( + ResumabilityConfig(is_resumable=True) + ) + invocation_context.agent_states['agent1'] = {} + invocation_context.end_of_agents['agent1'] = True + + # Reset state, which should clear the agent_state and end_of_agent flag. + invocation_context.set_agent_state('agent1') + assert 'agent1' not in invocation_context.agent_states + assert 'agent1' not in invocation_context.end_of_agents + class TestFindMatchingFunctionCall: """Test suite for find_matching_function_call.""" diff --git a/tests/unittests/agents/test_parallel_agent.py b/tests/unittests/agents/test_parallel_agent.py index 309658087d..5b6c046f54 100644 --- a/tests/unittests/agents/test_parallel_agent.py +++ b/tests/unittests/agents/test_parallel_agent.py @@ -52,6 +52,8 @@ async def _run_async_impl( ) -> AsyncGenerator[Event, None]: await asyncio.sleep(self.delay) yield self.event(ctx) + if ctx.is_resumable: + ctx.set_agent_state(self.name, end_of_agent=True) async def _create_parent_invocation_context( From 2efaa575757d3d3f40157286118f4a04b6498159 Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Wed, 8 Oct 2025 14:57:44 -0700 Subject: [PATCH 060/303] chore: Don't label issue as bot triaged PiperOrigin-RevId: 816873967 --- contributing/samples/adk_triaging_agent/agent.py | 3 +-- contributing/samples/adk_triaging_agent/settings.py | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index 6bf1660ca5..2c44bdac23 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -14,7 +14,6 @@ from typing import Any -from adk_triaging_agent.settings import BOT_LABEL from adk_triaging_agent.settings import GITHUB_BASE_URL from adk_triaging_agent.settings import IS_INTERACTIVE from adk_triaging_agent.settings import OWNER @@ -103,7 +102,7 @@ def add_label_and_owner_to_issue( label_url = ( f"{GITHUB_BASE_URL}/repos/{OWNER}/{REPO}/issues/{issue_number}/labels" ) - label_payload = [label, BOT_LABEL] + label_payload = [label] try: response = post_request(label_url, label_payload) diff --git a/contributing/samples/adk_triaging_agent/settings.py b/contributing/samples/adk_triaging_agent/settings.py index ae81d173ad..ea21f8c679 100644 --- a/contributing/samples/adk_triaging_agent/settings.py +++ b/contributing/samples/adk_triaging_agent/settings.py @@ -26,7 +26,6 @@ OWNER = os.getenv("OWNER", "google") REPO = os.getenv("REPO", "adk-python") -BOT_LABEL = os.getenv("BOT_LABEL", "bot triaged") EVENT_NAME = os.getenv("EVENT_NAME") ISSUE_NUMBER = os.getenv("ISSUE_NUMBER") ISSUE_TITLE = os.getenv("ISSUE_TITLE") From cbe60c47aaf82ffd1f6091edabc2daf973f7ee43 Mon Sep 17 00:00:00 2001 From: Ankur Sharma Date: Wed, 8 Oct 2025 15:23:21 -0700 Subject: [PATCH 061/303] feat: Adds data model to support UserSimulation Details: - Introduces a concept of `ConversationScenario` to represent a scenario that user simulator is supposed to follow. - Introduces a `UserSimulator` interface, that one should implement. UserSimulator interface will be integrated with LocalEvalService in subsequent PRs. PiperOrigin-RevId: 816883699 --- .../adk/evaluation/conversation_scenarios.py | 63 +++++++++++ src/google/adk/evaluation/eval_case.py | 20 +++- src/google/adk/evaluation/eval_config.py | 6 ++ .../evaluation/llm_backed_user_simulator.py | 88 +++++++++++++++ src/google/adk/evaluation/user_simulator.py | 102 ++++++++++++++++++ 5 files changed, 277 insertions(+), 2 deletions(-) create mode 100644 src/google/adk/evaluation/conversation_scenarios.py create mode 100644 src/google/adk/evaluation/llm_backed_user_simulator.py create mode 100644 src/google/adk/evaluation/user_simulator.py diff --git a/src/google/adk/evaluation/conversation_scenarios.py b/src/google/adk/evaluation/conversation_scenarios.py new file mode 100644 index 0000000000..1ad7dd7358 --- /dev/null +++ b/src/google/adk/evaluation/conversation_scenarios.py @@ -0,0 +1,63 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from typing import Union + +from google.genai import types as genai_types +from pydantic import Field + +from .common import EvalBaseModel + + +class ConversationScenario(EvalBaseModel): + """Scenario for a conversation between a simulated user and the Agent.""" + + starting_prompt: Union[str, genai_types.Content] + """Starting prompt for the conversation. + + This prompt acts as the first user message that is given to the Agent. Any + subsequent user messages are obtained by the system that is simulating the + user. + """ + + conversation_plan: str + """A plan that user simulation system needs to follow as it plays out the conversation. + + Example: + For a Travel Agent that has tools that let it book a flight and car, a sample + starting prompt could be: + + `I need to book a flight.` + + A conversation plan could look like: + + First, you want to book a one-way flight from SFO to LAX for next Tuesday. + You prefer a morning flight and your budget is under $150. If the agent finds + a valid flight, confirm the booking. Once confirmed, your next goal is to rent + a standard-size car for three days from the airport. Once both tasks are done, + your overall goal is complete. + """ + + +class ConversationScenarios(EvalBaseModel): + """A simple container for the list of ConversationScenario. + + Mainly serves the purpose of helping with serialization and deserialization. + """ + + scenarios: list[ConversationScenario] = Field( + default_factory=list, description="""A list of ConversationScenario.""" + ) diff --git a/src/google/adk/evaluation/eval_case.py b/src/google/adk/evaluation/eval_case.py index 1f736a7f6f..5e27aa414c 100644 --- a/src/google/adk/evaluation/eval_case.py +++ b/src/google/adk/evaluation/eval_case.py @@ -24,6 +24,7 @@ from .app_details import AppDetails from .common import EvalBaseModel +from .conversation_scenarios import ConversationScenario from .eval_rubrics import Rubric @@ -119,14 +120,29 @@ class SessionInput(EvalBaseModel): """The state of the session.""" +StaticConversation: TypeAlias = list[Invocation] +"""A conversation where user's query for each invocation is already specified.""" + + class EvalCase(EvalBaseModel): """An eval case.""" eval_id: str """Unique identifier for the evaluation case.""" - conversation: list[Invocation] - """A conversation between the user and the Agent. The conversation can have any number of invocations.""" + conversation: Optional[StaticConversation] = None + """A static conversation between the user and the Agent. + + While creating an eval case you should specify either a `conversation` or a + `conversation_scenario`, but not both. + """ + + conversation_scenario: Optional[ConversationScenario] = None + """A conversation scenario that should be used by a UserSimulator. + + While creating an eval case you should specify either a `conversation` or a + `conversation_scenario`, but not both. + """ session_input: Optional[SessionInput] = None """Session input that will be passed on to the Agent during eval. diff --git a/src/google/adk/evaluation/eval_config.py b/src/google/adk/evaluation/eval_config.py index 74870dbc56..e1b1fd6c97 100644 --- a/src/google/adk/evaluation/eval_config.py +++ b/src/google/adk/evaluation/eval_config.py @@ -26,6 +26,7 @@ from ..evaluation.eval_metrics import EvalMetric from .eval_metrics import BaseCriterion from .eval_metrics import Threshold +from .user_simulator import BaseUserSimulatorConfig logger = logging.getLogger("google_adk." + __name__) @@ -70,6 +71,11 @@ class EvalConfig(BaseModel): """, ) + user_simulator_config: Optional[BaseUserSimulatorConfig] = Field( + default=None, + description="""Config to be used by the user simulator.""", + ) + _DEFAULT_EVAL_CONFIG = EvalConfig( criteria={"tool_trajectory_avg_score": 1.0, "response_match_score": 0.8} diff --git a/src/google/adk/evaluation/llm_backed_user_simulator.py b/src/google/adk/evaluation/llm_backed_user_simulator.py new file mode 100644 index 0000000000..cda86b93b4 --- /dev/null +++ b/src/google/adk/evaluation/llm_backed_user_simulator.py @@ -0,0 +1,88 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from typing import ClassVar +from typing import Optional + +from google.genai import types as genai_types +from pydantic import Field +from typing_extensions import override + +from ..events.event import Event +from ..utils.feature_decorator import experimental +from .evaluator import Evaluator +from .user_simulator import BaseUserSimulatorConfig +from .user_simulator import NextUserMessage +from .user_simulator import UserSimulator + + +class LlmBackedUserSimulatorConfig(BaseUserSimulatorConfig): + """Contains configurations required by an LLM backed user simulator.""" + + model: str = Field( + default="gemini-2.5-flash", + description="The model to use for user simulation.", + ) + + model_config: Optional[genai_types.GenerateContentConfig] = Field( + default=genai_types.GenerateContentConfig, + description="The configuration for the model.", + ) + + max_allowed_invocations: int = Field( + default=20, + description="""Maximum number of invocations allowed by the simulated +interaction. This property allows us to stop a run-off conversation, where the +agent and the user simulator get into an never ending loop. + +(Not recommended)If you don't want a limit, you can set the value to -1. + """, + ) + + +@experimental +class LlmBackedUserSimulator(UserSimulator): + """A UserSimulator that uses a LLM to generate messages on behalf of the user.""" + + config_type: ClassVar[type[LlmBackedUserSimulatorConfig]] = ( + LlmBackedUserSimulatorConfig + ) + + def __init__(self, *, config: BaseUserSimulatorConfig): + super().__init__(config, config_type=LlmBackedUserSimulator.config_type) + + @override + async def get_next_user_message( + self, + conversation_plan: str, + events: list[Event], + ) -> NextUserMessage: + """Returns the next user message to send to the agent with help from a LLM. + + Args: + conversation_plan: A plan that user simulation system needs to follow as + it plays out the conversation. + events: The unaltered conversation history between the user and the + agent(s) under evaluation. + """ + raise NotImplementedError() + + @override + def get_simulation_evaluator( + self, + ) -> Evaluator: + """Returns an Evaluator that evaluates if the simulation was successful or not.""" + raise NotImplementedError() diff --git a/src/google/adk/evaluation/user_simulator.py b/src/google/adk/evaluation/user_simulator.py new file mode 100644 index 0000000000..39297805aa --- /dev/null +++ b/src/google/adk/evaluation/user_simulator.py @@ -0,0 +1,102 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from abc import ABC +import enum +from typing import Optional + +from google.genai import types as genai_types +from pydantic import alias_generators +from pydantic import BaseModel +from pydantic import ConfigDict +from pydantic import Field +from pydantic import ValidationError + +from ..events.event import Event +from ..utils.feature_decorator import experimental +from .common import EvalBaseModel +from .evaluator import Evaluator + + +class BaseUserSimulatorConfig(BaseModel): + """Base class for configurations pertaining to User Simulator.""" + + model_config = ConfigDict( + alias_generator=alias_generators.to_camel, + populate_by_name=True, + extra="allow", + ) + + +class Status(enum.Enum): + """The resulting status of get_next_user_message().""" + + SUCCESS = "success" + TURN_LIMIT_REACHED = "turn_limit_reached" + STOP_SIGNAL_DETECTED = "stop_signal_detected" + NO_MESSAGE_GENERATED = "no_message_generated" + + +class NextUserMessage(EvalBaseModel): + status: Status = Field( + description="""The resulting status of `get_next_user_message()`. + +The caller of `get_next_user_message()` should inspect this field to determine +if the user simulator was able to successfully generate a message or why it was +not able to do so.""" + ) + + user_message: Optional[genai_types.Content] = Field( + description="""The next user message.""" + ) + + +@experimental +class UserSimulator(ABC): + """A user simulator for the purposes of automating interaction with an Agent.""" + + def __init__( + self, + config: BaseUserSimulatorConfig, + config_type: type[BaseUserSimulatorConfig], + ): + # Unpack the config to a specific type needed by the class implementing this + # interface. + try: + self._config = config_type.model_validate(config.model_dump()) + except ValidationError as e: + raise ValueError(f"Expect config of type `{config_type}`.") from e + + async def get_next_user_message( + self, + conversation_plan: str, + events: list[Event], + ) -> NextUserMessage: + """Returns the next user message to send to the agent. + + Args: + conversation_plan: A plan that user simulation system needs to follow as + it plays out the conversation. + events: The unaltered conversation history between the user and the + agent(s) under evaluation. + """ + raise NotImplementedError() + + def get_simulation_evaluator( + self, + ) -> Evaluator: + """Returns an instnace of an Evaluator that evaluates if the simulation was successful or not.""" + raise NotImplementedError() From 24342e95f868ab6511fa4472bffcb1356b3d952c Mon Sep 17 00:00:00 2001 From: "Wei Sun (Jack)" Date: Wed, 8 Oct 2025 16:13:08 -0700 Subject: [PATCH 062/303] chore: Remove temp state deltas before appending an event PiperOrigin-RevId: 816902208 --- .../adk/sessions/base_session_service.py | 19 ++++++++-- .../adk/sessions/database_session_service.py | 3 ++ .../sessions/test_session_service.py | 36 +++++++++++++++++++ 3 files changed, 56 insertions(+), 2 deletions(-) diff --git a/src/google/adk/sessions/base_session_service.py b/src/google/adk/sessions/base_session_service.py index 25e46ba199..a76a6b9d82 100644 --- a/src/google/adk/sessions/base_session_service.py +++ b/src/google/adk/sessions/base_session_service.py @@ -12,6 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations + import abc from typing import Any from typing import Optional @@ -95,11 +97,24 @@ async def append_event(self, session: Session, event: Event) -> Event: """Appends an event to a session object.""" if event.partial: return event - self.__update_session_state(session, event) + event = self._trim_temp_delta_state(event) + self._update_session_state(session, event) session.events.append(event) return event - def __update_session_state(self, session: Session, event: Event) -> None: + def _trim_temp_delta_state(self, event: Event) -> Event: + """Removes temporary state delta keys from the event.""" + if not event.actions or not event.actions.state_delta: + return event + + event.actions.state_delta = { + key: value + for key, value in event.actions.state_delta.items() + if not key.startswith(State.TEMP_PREFIX) + } + return event + + def _update_session_state(self, session: Session, event: Event) -> None: """Updates the session state based on the event.""" if not event.actions or not event.actions.state_delta: return diff --git a/src/google/adk/sessions/database_session_service.py b/src/google/adk/sessions/database_session_service.py index 959524c689..3ed87847fe 100644 --- a/src/google/adk/sessions/database_session_service.py +++ b/src/google/adk/sessions/database_session_service.py @@ -599,6 +599,9 @@ async def append_event(self, session: Session, event: Event) -> Event: if event.partial: return event + # Trim temp state before persisting + event = self._trim_temp_delta_state(event) + # 1. Check if timestamp is stale # 2. Update session attributes based on event config # 3. Store event to table diff --git a/tests/unittests/sessions/test_session_service.py b/tests/unittests/sessions/test_session_service.py index c2a3a1d98f..2ca265cb64 100644 --- a/tests/unittests/sessions/test_session_service.py +++ b/tests/unittests/sessions/test_session_service.py @@ -441,3 +441,39 @@ async def test_append_event_with_fields(service_type): retrieved_event = retrieved_session.events[0] assert retrieved_event == event + + +@pytest.mark.asyncio +@pytest.mark.parametrize( + 'service_type', [SessionServiceType.IN_MEMORY, SessionServiceType.DATABASE] +) +async def test_append_event_should_trim_temp_delta_state(service_type): + session_service = get_session_service(service_type) + app_name = 'my_app' + user_id = 'user' + + session = await session_service.create_session( + app_name=app_name, user_id=user_id + ) + + event = Event( + invocation_id='invocation', + author='user', + content=types.Content(role='user', parts=[types.Part(text='text')]), + actions=EventActions( + state_delta={ + 'app:key': 'app_value', + 'temp:key': 'temp_value', + } + ), + ) + + await session_service.append_event(session, event) + + updated_session = await session_service.get_session( + app_name=app_name, user_id=user_id, session_id=session.id + ) + + last_event = updated_session.events[-1] + assert 'temp:key' not in last_event.actions.state_delta + assert last_event.actions.state_delta['app:key'] == 'app_value' From cac9fae8297ff6aff42bc15553e2b56e8289f23b Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Wed, 8 Oct 2025 19:20:57 -0700 Subject: [PATCH 063/303] chore: Don't label 'bot triaged' for PR PiperOrigin-RevId: 816959715 --- contributing/samples/adk_pr_triaging_agent/agent.py | 3 +-- contributing/samples/adk_pr_triaging_agent/settings.py | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/contributing/samples/adk_pr_triaging_agent/agent.py b/contributing/samples/adk_pr_triaging_agent/agent.py index 11664d47f7..14ff44b60c 100644 --- a/contributing/samples/adk_pr_triaging_agent/agent.py +++ b/contributing/samples/adk_pr_triaging_agent/agent.py @@ -15,7 +15,6 @@ from pathlib import Path from typing import Any -from adk_pr_triaging_agent.settings import BOT_LABEL from adk_pr_triaging_agent.settings import GITHUB_BASE_URL from adk_pr_triaging_agent.settings import IS_INTERACTIVE from adk_pr_triaging_agent.settings import OWNER @@ -178,7 +177,7 @@ def add_label_and_reviewer_to_pr(pr_number: int, label: str) -> dict[str, Any]: label_url = ( f"{GITHUB_BASE_URL}/repos/{OWNER}/{REPO}/issues/{pr_number}/labels" ) - label_payload = [label, BOT_LABEL] + label_payload = [label] try: response = post_request(label_url, label_payload) diff --git a/contributing/samples/adk_pr_triaging_agent/settings.py b/contributing/samples/adk_pr_triaging_agent/settings.py index 1b2bb518c4..ca1d7ff2b7 100644 --- a/contributing/samples/adk_pr_triaging_agent/settings.py +++ b/contributing/samples/adk_pr_triaging_agent/settings.py @@ -27,7 +27,6 @@ OWNER = os.getenv("OWNER", "google") REPO = os.getenv("REPO", "adk-python") -BOT_LABEL = os.getenv("BOT_LABEL", "bot triaged") PULL_REQUEST_NUMBER = os.getenv("PULL_REQUEST_NUMBER") IS_INTERACTIVE = os.environ.get("INTERACTIVE", "1").lower() in ["true", "1"] From 9b8a4aad6fe65ef37885e5c3368d2799a2666534 Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Wed, 8 Oct 2025 23:04:51 -0700 Subject: [PATCH 064/303] chore: Add an sample agent for the `ReflectAndRetryToolPlugin` PiperOrigin-RevId: 817024977 --- .../plugin_reflect_tool_retry/README.md | 53 +++++++++++++ .../basic/__init__.py | 15 ++++ .../plugin_reflect_tool_retry/basic/agent.py | 77 +++++++++++++++++++ 3 files changed, 145 insertions(+) create mode 100644 contributing/samples/plugin_reflect_tool_retry/README.md create mode 100644 contributing/samples/plugin_reflect_tool_retry/basic/__init__.py create mode 100644 contributing/samples/plugin_reflect_tool_retry/basic/agent.py diff --git a/contributing/samples/plugin_reflect_tool_retry/README.md b/contributing/samples/plugin_reflect_tool_retry/README.md new file mode 100644 index 0000000000..084862e4df --- /dev/null +++ b/contributing/samples/plugin_reflect_tool_retry/README.md @@ -0,0 +1,53 @@ +# Reflect And Retry Tool Plugin + +`ReflectAndRetryToolPlugin` provides self-healing, concurrent-safe error +recovery for tool failures. + +**Key Features:** + +- **Concurrency Safe:** Uses locking to safely handle parallel tool +executions +- **Configurable Scope:** Tracks failures per-invocation (default) or globally + using the `TrackingScope` enum. +- **Extensible Scoping:** The `_get_scope_key` method can be overridden to + implement custom tracking logic (e.g., per-user or per-session). +- **Granular Tracking:** Failure counts are tracked per-tool within the + defined scope. A success with one tool resets its counter without affecting + others. +- **Custom Error Extraction:** Supports detecting errors in normal tool +responses that don't throw exceptions, by overriding the +`extract_error_from_result` method. + +## Samples + +Here are some sample agents to demonstrate the usage of the plugin. + +### Basic Usage + +This is a hello world example to show the basic usage of the plugin. The +`guess_number_tool` is hacked with both Exceptions and error responses. With the +help of the `CustomRetryPlugin`, both above error types can lead to retries. + +For example, here is the output from agent: + +``` +I'll guess the number 50. Let's see how it is! +My guess of 50 was too high! I'll try a smaller number this time. Let's go with 25. +My guess of 25 was still too high! I'm going smaller. How about 10? +Still too high! My guess of 10 was also too large. I'll try 5 this time. +My guess of 5 is "almost valid"! That's good news, it means I'm getting very close. I'll try 4. +My guess of 4 is still "almost valid," just like 5. It seems I'm still hovering around the right answer. Let's try 3! +I guessed the number 3, and it is valid! I found it! +``` + +You can run the agent with: + +```bash +$ adk web contributing/samples/plugin_reflect_tool_retry +``` + +You can provide the following prompt to see the agent retrying tool calls: + +``` +Please guess a number! Tell me what number you guess and how is it. +``` diff --git a/contributing/samples/plugin_reflect_tool_retry/basic/__init__.py b/contributing/samples/plugin_reflect_tool_retry/basic/__init__.py new file mode 100644 index 0000000000..c48963cdc7 --- /dev/null +++ b/contributing/samples/plugin_reflect_tool_retry/basic/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/plugin_reflect_tool_retry/basic/agent.py b/contributing/samples/plugin_reflect_tool_retry/basic/agent.py new file mode 100644 index 0000000000..a0b6fec7ce --- /dev/null +++ b/contributing/samples/plugin_reflect_tool_retry/basic/agent.py @@ -0,0 +1,77 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Any + +from google.adk.agents import LlmAgent +from google.adk.apps.app import App +from google.adk.plugins import LoggingPlugin +from google.adk.plugins import ReflectAndRetryToolPlugin + +APP_NAME = "basic" +USER_ID = "test_user" + + +def guess_number_tool(query: int) -> dict[str, Any]: + """A tool that guesses a number. + + Args: + query: The number to guess. + + Returns: + A dictionary containing the status and result of the tool execution. + """ + target_number = 3 + if query == target_number: + return {"status": "success", "result": "Number is valid."} + + if abs(query - target_number) <= 2: + return {"status": "error", "error_message": "Number is almost valid."} + + if query > target_number: + raise ValueError("Number is too large.") + + if query < target_number: + raise ValueError("Number is too small.") + + raise ValueError("Number is invalid.") + + +class CustomRetryPlugin(ReflectAndRetryToolPlugin): + + async def extract_error_from_result( + self, *, tool, tool_args, tool_context, result + ): + return result if result.get("status") == "error" else None + + +root_agent = LlmAgent( + name="hello_world", + description="Helpful agent", + instruction="""Use guess_number_tool to guess a number.""", + model="gemini-2.5-flash", + tools=[guess_number_tool], +) + + +app = App( + name=APP_NAME, + root_agent=root_agent, + plugins=[ + CustomRetryPlugin( + max_retries=6, throw_exception_if_retry_exceeded=False + ), + LoggingPlugin(), + ], +) From 55aa6f669b0c0a47d630db6740a8310da87d43e9 Mon Sep 17 00:00:00 2001 From: Kacper Jawoszek Date: Thu, 9 Oct 2025 04:37:48 -0700 Subject: [PATCH 065/303] feat(otel): set default_log_name for GCP logging exporter Uses value of GCP_DEFAULT_LOG_NAME env var if it exists, defaults to literal adk-otel. PiperOrigin-RevId: 817125337 --- src/google/adk/telemetry/google_cloud.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/google/adk/telemetry/google_cloud.py b/src/google/adk/telemetry/google_cloud.py index 64016d642a..fbad8cea3e 100644 --- a/src/google/adk/telemetry/google_cloud.py +++ b/src/google/adk/telemetry/google_cloud.py @@ -15,6 +15,7 @@ from __future__ import annotations import logging +import os from typing import cast from typing import Optional from typing import TYPE_CHECKING @@ -37,6 +38,9 @@ logger = logging.getLogger('google_adk.' + __name__) +_GCP_LOG_NAME_ENV_VARIABLE_NAME = 'GOOGLE_CLOUD_DEFAULT_LOG_NAME' +_DEFAULT_LOG_NAME = 'adk-otel' + @experimental def get_gcp_exporters( @@ -118,9 +122,13 @@ def _get_gcp_metrics_exporter(project_id: str) -> MetricReader: def _get_gcp_logs_exporter(project_id: str) -> LogRecordProcessor: from opentelemetry.exporter.cloud_logging import CloudLoggingExporter + default_log_name = os.environ.get( + _GCP_LOG_NAME_ENV_VARIABLE_NAME, _DEFAULT_LOG_NAME + ) return BatchLogRecordProcessor( - # TODO(jawoszek) - add default_log_name once design is approved. - CloudLoggingExporter(project_id=project_id) + CloudLoggingExporter( + project_id=project_id, default_log_name=default_log_name + ), ) From 847df1638cbf1686aa43e8e094121d4e23e40245 Mon Sep 17 00:00:00 2001 From: George Weale Date: Thu, 9 Oct 2025 08:59:48 -0700 Subject: [PATCH 066/303] fix: handle `App` instances returned by `agent_loader.load_agent` The `agent_loader.load_agent` method can now return an `App` object. This change unwraps the `App` to get its `root_agent` before passing it to the graph builder, makes sure a `BaseAgent` instance is always used PiperOrigin-RevId: 817209601 --- src/google/adk/cli/adk_web_server.py | 9 ++++- tests/unittests/cli/test_fast_api.py | 52 ++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/src/google/adk/cli/adk_web_server.py b/src/google/adk/cli/adk_web_server.py index 98c77f5d73..76ba4ce970 100644 --- a/src/google/adk/cli/adk_web_server.py +++ b/src/google/adk/cli/adk_web_server.py @@ -1429,7 +1429,14 @@ async def get_event_graph( function_calls = event.get_function_calls() function_responses = event.get_function_responses() - root_agent = self.agent_loader.load_agent(app_name) + agent_or_app = self.agent_loader.load_agent(app_name) + # The loader may return an App; unwrap to its root agent so the graph builder + # receives a BaseAgent instance. + root_agent = ( + agent_or_app.root_agent + if isinstance(agent_or_app, App) + else agent_or_app + ) dot_graph = None if function_calls: function_call_highlights = [] diff --git a/tests/unittests/cli/test_fast_api.py b/tests/unittests/cli/test_fast_api.py index a18b409e4c..90bba32cb2 100755 --- a/tests/unittests/cli/test_fast_api.py +++ b/tests/unittests/cli/test_fast_api.py @@ -29,6 +29,7 @@ from fastapi.testclient import TestClient from google.adk.agents.base_agent import BaseAgent from google.adk.agents.run_config import RunConfig +from google.adk.apps.app import App from google.adk.cli.fast_api import get_fast_api_app from google.adk.evaluation.eval_case import EvalCase from google.adk.evaluation.eval_case import Invocation @@ -39,6 +40,7 @@ from google.adk.events.event_actions import EventActions from google.adk.runners import Runner from google.adk.sessions.base_session_service import ListSessionsResponse +from google.adk.sessions.session import Session from google.genai import types from pydantic import BaseModel import pytest @@ -1007,6 +1009,56 @@ def test_debug_trace(test_app): logger.info("Debug trace test completed successfully") +def test_get_event_graph_returns_dot_src_for_app_agent(): + """Ensure graph endpoint unwraps App instances before building the graph.""" + from google.adk.cli.adk_web_server import AdkWebServer + + root_agent = DummyAgent(name="dummy_agent") + app_agent = App(name="test_app", root_agent=root_agent) + + class Loader: + + def load_agent(self, app_name): + return app_agent + + def list_agents(self): + return [app_agent.name] + + session_service = AsyncMock() + session = Session( + id="session_id", + app_name="test_app", + user_id="user", + state={}, + events=[Event(author="dummy_agent")], + ) + event_id = session.events[0].id + session_service.get_session.return_value = session + + adk_web_server = AdkWebServer( + agent_loader=Loader(), + session_service=session_service, + memory_service=MagicMock(), + artifact_service=MagicMock(), + credential_service=MagicMock(), + eval_sets_manager=MagicMock(), + eval_set_results_manager=MagicMock(), + agents_dir=".", + ) + + fast_api_app = adk_web_server.get_fast_api_app( + setup_observer=lambda _observer, _server: None, + tear_down_observer=lambda _observer, _server: None, + ) + + client = TestClient(fast_api_app) + response = client.get( + f"/apps/test_app/users/user/sessions/session_id/events/{event_id}/graph" + ) + assert response.status_code == 200 + assert "dotSrc" in response.json() + + @pytest.mark.skipif( sys.version_info < (3, 10), reason="A2A requires Python 3.10+" ) From 0aede9f1a1a6bb9b1258bcee9fb7a6fc80969024 Mon Sep 17 00:00:00 2001 From: "Wei Sun (Jack)" Date: Thu, 9 Oct 2025 11:24:11 -0700 Subject: [PATCH 067/303] docs: Update CHANGELOG with [847df16](https://github.com/google/adk-python/commit/847df1638cbf1686aa43e8e094121d4e23e40245) PiperOrigin-RevId: 817267158 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c551f6f14d..93252d8cba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,6 +49,7 @@ * Update remote_a2a_agent to better handle streaming events and avoid duplicate responses ([8e5f361](https://github.com/google/adk-python/commit/8e5f36126498f751171bb2639c7f5a9e7dca2558)) * Update the load_artifacts tool so that the model can reliably call it for follow up questions about the same artifact ([238472d](https://github.com/google/adk-python/commit/238472d083b5aa67551bde733fc47826ff062679)) * Fix VertexAiSessionService base_url override to preserve initialized http_options ([8110e41](https://github.com/google/adk-python/commit/8110e41b36cceddb8b92ba17cffaacf701706b36), [c51ea0b](https://github.com/google/adk-python/commit/c51ea0b52e63de8e43d3dccb24f9d20987784aa5)) +* Handle `App` instances returned by `agent_loader.load_agent` ([847df16](https://github.com/google/adk-python/commit/847df1638cbf1686aa43e8e094121d4e23e40245)) ### Improvements From cc24d616f80c0eba2b09239b621cf3d176f144ea Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Thu, 9 Oct 2025 11:51:48 -0700 Subject: [PATCH 068/303] feat: Support ContentUnion as static instruction PiperOrigin-RevId: 817278990 --- src/google/adk/agents/llm_agent.py | 19 +- src/google/adk/agents/llm_agent_config.py | 11 +- .../adk/flows/llm_flows/instructions.py | 5 +- .../flows/llm_flows/test_instructions.py | 165 ++++++++++++++++++ 4 files changed, 191 insertions(+), 9 deletions(-) diff --git a/src/google/adk/agents/llm_agent.py b/src/google/adk/agents/llm_agent.py index 3bfbfea062..7592173595 100644 --- a/src/google/adk/agents/llm_agent.py +++ b/src/google/adk/agents/llm_agent.py @@ -196,7 +196,7 @@ class LlmAgent(BaseAgent): or personality. """ - static_instruction: Optional[types.Content] = None + static_instruction: Optional[types.ContentUnion] = None """Static instruction content sent literally as system instruction at the beginning. This field is for content that never changes and doesn't contain placeholders. @@ -223,11 +223,20 @@ class LlmAgent(BaseAgent): For explicit caching control, configure context_cache_config at App level. **Content Support:** - Can contain text, files, binaries, or any combination as types.Content - supports multiple part types (text, inline_data, file_data, etc.). - - **Example:** + Accepts types.ContentUnion which includes: + - str: Simple text instruction + - types.Content: Rich content object + - types.Part: Single part (text, inline_data, file_data, etc.) + - PIL.Image.Image: Image object + - types.File: File reference + - list[PartUnion]: List of parts + + **Examples:** ```python + # Simple string instruction + static_instruction = "You are a helpful assistant." + + # Rich content with files static_instruction = types.Content( role='user', parts=[ diff --git a/src/google/adk/agents/llm_agent_config.py b/src/google/adk/agents/llm_agent_config.py index 4cb5dc2c56..4203a5923b 100644 --- a/src/google/adk/agents/llm_agent_config.py +++ b/src/google/adk/agents/llm_agent_config.py @@ -35,6 +35,10 @@ class LlmAgentConfig(BaseAgentConfig): model_config = ConfigDict( extra='forbid', + # Allow arbitrary types to support types.ContentUnion for static_instruction. + # ContentUnion includes PIL.Image.Image which doesn't have Pydantic schema + # support, but we validate it at runtime using google.genai._transformers.t_content() + arbitrary_types_allowed=True, ) agent_class: str = Field( @@ -62,14 +66,15 @@ class LlmAgentConfig(BaseAgentConfig): ) ) - static_instruction: Optional[types.Content] = Field( + static_instruction: Optional[types.ContentUnion] = Field( default=None, description=( 'Optional. LlmAgent.static_instruction. Static content sent literally' ' at position 0 without placeholder processing. When set, changes' ' instruction behavior to go to user content instead of' - ' system_instruction. Supports context caching and rich content' - ' (text, files, binaries).' + ' system_instruction. Supports context caching. Accepts' + ' types.ContentUnion (str, types.Content, types.Part,' + ' PIL.Image.Image, types.File, or list[PartUnion]).' ), ) diff --git a/src/google/adk/flows/llm_flows/instructions.py b/src/google/adk/flows/llm_flows/instructions.py index 8c7499623f..587c164687 100644 --- a/src/google/adk/flows/llm_flows/instructions.py +++ b/src/google/adk/flows/llm_flows/instructions.py @@ -19,6 +19,7 @@ from typing import AsyncGenerator from typing import TYPE_CHECKING +from google.genai import _transformers from typing_extensions import override from ...agents.readonly_context import ReadonlyContext @@ -84,7 +85,9 @@ async def run_async( # Handle static_instruction - add via append_instructions if agent.static_instruction: - llm_request.append_instructions(agent.static_instruction) + # Convert ContentUnion to Content using genai transformer + static_content = _transformers.t_content(agent.static_instruction) + llm_request.append_instructions(static_content) # Handle instruction based on whether static_instruction exists if agent.instruction and not agent.static_instruction: diff --git a/tests/unittests/flows/llm_flows/test_instructions.py b/tests/unittests/flows/llm_flows/test_instructions.py index 88bc13e0c3..d3fcdbf56b 100644 --- a/tests/unittests/flows/llm_flows/test_instructions.py +++ b/tests/unittests/flows/llm_flows/test_instructions.py @@ -551,6 +551,56 @@ def test_static_instruction_field_exists(llm_backend): assert agent.static_instruction == static_content +@pytest.mark.parametrize("llm_backend", ["GOOGLE_AI", "VERTEX"]) +def test_static_instruction_supports_string(llm_backend): + """Test that static_instruction field supports simple strings.""" + static_str = "This is a static instruction as a string" + agent = LlmAgent(name="test_agent", static_instruction=static_str) + assert agent.static_instruction == static_str + assert isinstance(agent.static_instruction, str) + + +@pytest.mark.parametrize("llm_backend", ["GOOGLE_AI", "VERTEX"]) +def test_static_instruction_supports_part(llm_backend): + """Test that static_instruction field supports types.Part.""" + static_part = types.Part(text="This is a static instruction as Part") + agent = LlmAgent(name="test_agent", static_instruction=static_part) + assert agent.static_instruction == static_part + assert isinstance(agent.static_instruction, types.Part) + + +@pytest.mark.parametrize("llm_backend", ["GOOGLE_AI", "VERTEX"]) +def test_static_instruction_supports_file(llm_backend): + """Test that static_instruction field supports types.File.""" + static_file = types.File(uri="gs://bucket/file.txt", mime_type="text/plain") + agent = LlmAgent(name="test_agent", static_instruction=static_file) + assert agent.static_instruction == static_file + assert isinstance(agent.static_instruction, types.File) + + +@pytest.mark.parametrize("llm_backend", ["GOOGLE_AI", "VERTEX"]) +def test_static_instruction_supports_list_of_parts(llm_backend): + """Test that static_instruction field supports list[PartUnion].""" + static_parts_list = [ + types.Part(text="First part"), + types.Part(text="Second part"), + ] + agent = LlmAgent(name="test_agent", static_instruction=static_parts_list) + assert agent.static_instruction == static_parts_list + assert isinstance(agent.static_instruction, list) + assert len(agent.static_instruction) == 2 + + +@pytest.mark.parametrize("llm_backend", ["GOOGLE_AI", "VERTEX"]) +def test_static_instruction_supports_list_of_strings(llm_backend): + """Test that static_instruction field supports list of strings.""" + static_strings_list = ["First instruction", "Second instruction"] + agent = LlmAgent(name="test_agent", static_instruction=static_strings_list) + assert agent.static_instruction == static_strings_list + assert isinstance(agent.static_instruction, list) + assert all(isinstance(s, str) for s in agent.static_instruction) + + @pytest.mark.parametrize("llm_backend", ["GOOGLE_AI", "VERTEX"]) def test_static_instruction_supports_multiple_parts(llm_backend): """Test that static_instruction supports multiple parts including files.""" @@ -607,6 +657,91 @@ async def test_static_instruction_added_to_contents(llm_backend): assert llm_request.config.system_instruction == "Static instruction content" +@pytest.mark.parametrize("llm_backend", ["GOOGLE_AI", "VERTEX"]) +@pytest.mark.asyncio +async def test_static_instruction_string_added_to_system(llm_backend): + """Test that string static instructions are added to system_instruction.""" + agent = LlmAgent( + name="test_agent", static_instruction="Static instruction as string" + ) + + invocation_context = await _create_invocation_context(agent) + + llm_request = LlmRequest() + + # Run the instruction processor + async for _ in request_processor.run_async(invocation_context, llm_request): + pass + + # Static instruction should be added to system instructions, not contents + assert len(llm_request.contents) == 0 + assert llm_request.config.system_instruction == "Static instruction as string" + + +@pytest.mark.parametrize("llm_backend", ["GOOGLE_AI", "VERTEX"]) +@pytest.mark.asyncio +async def test_static_instruction_part_converted_to_system(llm_backend): + """Test that Part static instructions are converted and added to system_instruction.""" + static_part = types.Part(text="Static instruction from Part") + agent = LlmAgent(name="test_agent", static_instruction=static_part) + + invocation_context = await _create_invocation_context(agent) + llm_request = LlmRequest() + + # Run the instruction processor + async for _ in request_processor.run_async(invocation_context, llm_request): + pass + + # Part should be converted to Content and text extracted to system instruction + assert llm_request.config.system_instruction == "Static instruction from Part" + + +@pytest.mark.parametrize("llm_backend", ["GOOGLE_AI", "VERTEX"]) +@pytest.mark.asyncio +async def test_static_instruction_list_of_parts_converted_to_system( + llm_backend, +): + """Test that list of Parts is converted and added to system_instruction.""" + static_parts_list = [ + types.Part(text="First part"), + types.Part(text="Second part"), + ] + agent = LlmAgent(name="test_agent", static_instruction=static_parts_list) + + invocation_context = await _create_invocation_context(agent) + llm_request = LlmRequest() + + # Run the instruction processor + async for _ in request_processor.run_async(invocation_context, llm_request): + pass + + # List of parts should be converted to Content with text extracted + assert llm_request.config.system_instruction == "First part\n\nSecond part" + + +@pytest.mark.parametrize("llm_backend", ["GOOGLE_AI", "VERTEX"]) +@pytest.mark.asyncio +async def test_static_instruction_list_of_strings_converted_to_system( + llm_backend, +): + """Test that list of strings is converted and added to system_instruction.""" + static_strings_list = ["First instruction", "Second instruction"] + agent = LlmAgent(name="test_agent", static_instruction=static_strings_list) + + invocation_context = await _create_invocation_context(agent) + llm_request = LlmRequest() + + # Run the instruction processor + async for _ in request_processor.run_async(invocation_context, llm_request): + pass + + # List of strings should be converted to Content with text extracted + assert ( + llm_request.config.system_instruction + == "First instruction\n\nSecond instruction" + ) + + @pytest.mark.parametrize("llm_backend", ["GOOGLE_AI", "VERTEX"]) @pytest.mark.asyncio async def test_dynamic_instruction_without_static_goes_to_system(llm_backend): @@ -658,6 +793,36 @@ async def test_dynamic_instruction_with_static_not_in_system(llm_backend): assert llm_request.contents[0].parts[0].text == "Dynamic instruction content" +@pytest.mark.parametrize("llm_backend", ["GOOGLE_AI", "VERTEX"]) +@pytest.mark.asyncio +async def test_dynamic_instruction_with_string_static_not_in_system( + llm_backend, +): + """Test that dynamic instructions go to user content when string static_instruction exists.""" + agent = LlmAgent( + name="test_agent", + instruction="Dynamic instruction content", + static_instruction="Static instruction as string", + ) + + invocation_context = await _create_invocation_context(agent) + + llm_request = LlmRequest() + + # Run the instruction processor + async for _ in request_processor.run_async(invocation_context, llm_request): + pass + + # Static instruction should be in system instructions + assert llm_request.config.system_instruction == "Static instruction as string" + + # Dynamic instruction should be added as user content + assert len(llm_request.contents) == 1 + assert llm_request.contents[0].role == "user" + assert len(llm_request.contents[0].parts) == 1 + assert llm_request.contents[0].parts[0].text == "Dynamic instruction content" + + @pytest.mark.parametrize("llm_backend", ["GOOGLE_AI", "VERTEX"]) @pytest.mark.asyncio async def test_dynamic_instructions_added_to_user_content(llm_backend): From 9939e0b087094038b90d86c2fd35c26dd63f1157 Mon Sep 17 00:00:00 2001 From: "Xinran (Sherry) Tang" Date: Thu, 9 Oct 2025 16:04:18 -0700 Subject: [PATCH 069/303] feat: Support resuming a parallel agent with multiple branches paused on tool confirmation requests PiperOrigin-RevId: 817373403 --- src/google/adk/agents/llm_agent.py | 5 + .../adk/flows/llm_flows/base_llm_flow.py | 5 + .../runners/test_run_tool_confirmation.py | 262 ++++++++++++++++++ 3 files changed, 272 insertions(+) diff --git a/src/google/adk/agents/llm_agent.py b/src/google/adk/agents/llm_agent.py index 7592173595..ccc8daaf28 100644 --- a/src/google/adk/agents/llm_agent.py +++ b/src/google/adk/agents/llm_agent.py @@ -409,6 +409,11 @@ async def _run_async_impl( return if ctx.is_resumable: + events = ctx._get_events(current_invocation=True, current_branch=True) + if events and ctx.should_pause_invocation(events[-1]): + return + # Only yield an end state if the last event is no longer a long running + # tool call. ctx.set_agent_state(self.name, end_of_agent=True) yield self._create_agent_state_event(ctx) diff --git a/src/google/adk/flows/llm_flows/base_llm_flow.py b/src/google/adk/flows/llm_flows/base_llm_flow.py index 5c5c7ec2f7..f5b242b7c5 100644 --- a/src/google/adk/flows/llm_flows/base_llm_flow.py +++ b/src/google/adk/flows/llm_flows/base_llm_flow.py @@ -388,6 +388,11 @@ async def _run_one_step_async( and events and events[-1].get_function_calls() ): + # Long running tool calls should have been handled before this point. + # If there are still long running tool calls, it means the agent is paused + # before, and its branch hasn't been resumed yet. + if invocation_context.should_pause_invocation(events[-1]): + return model_response_event = events[-1] async with Aclosing( self._postprocess_handle_function_calls_async( diff --git a/tests/unittests/runners/test_run_tool_confirmation.py b/tests/unittests/runners/test_run_tool_confirmation.py index 0896a4cac0..aaeb45abbc 100644 --- a/tests/unittests/runners/test_run_tool_confirmation.py +++ b/tests/unittests/runners/test_run_tool_confirmation.py @@ -18,7 +18,9 @@ from unittest import mock from google.adk.agents.base_agent import BaseAgent +from google.adk.agents.base_agent import BaseAgentState from google.adk.agents.llm_agent import LlmAgent +from google.adk.agents.parallel_agent import ParallelAgent from google.adk.agents.sequential_agent import SequentialAgent from google.adk.agents.sequential_agent import SequentialAgentState from google.adk.apps.app import App @@ -549,10 +551,23 @@ async def test_pause_and_resume_on_request_confirmation( agent: SequentialAgent, ): """Tests HITL flow where all tool calls are confirmed.""" + + # Test setup: + # - root_agent is a SequentialAgent with two sub-agents: sub_agent1 and + # sub_agent2. + # - sub_agent1 has a tool call that asks for HITL confirmation. + # - sub_agent2 does not have any tool calls. + # - The test will: + # - Run the query and verify that the invocation is paused after the long + # running tool call, at sub_agent1. + # - Resume the invocation and execute the tool call from sub_agent1. + # - Verify that root_agent continues to run sub_agent2. + events = runner.run("test user query") sub_agent1 = agent.sub_agents[0] sub_agent2 = agent.sub_agents[1] + # Step 1: # Verify that the invocation is paused after the long running tool call. # So that no intermediate function response and llm response is generated. # And the second sub agent is not started. @@ -598,6 +613,7 @@ async def test_pause_and_resume_on_request_confirmation( ) invocation_id = events[2].invocation_id + # Step 2: # Resume the invocation and confirm the tool call from sub_agent1, and # sub_agent2 will continue. user_confirmation = testing_utils.UserContent( @@ -640,3 +656,249 @@ async def test_pause_and_resume_on_request_confirmation( testing_utils.simplify_resumable_app_events(copy.deepcopy(events)) == expected_parts_final ) + + +class TestHITLConfirmationFlowWithParallelAgentAndResumableApp: + """Tests the HITL confirmation flow with a resumable sequential agent app.""" + + @pytest.fixture + def tools(self) -> list[FunctionTool]: + """Provides the tools for the agent.""" + return [FunctionTool(func=_test_request_confirmation_function)] + + @pytest.fixture + def llm_responses( + self, tools: list[FunctionTool] + ) -> list[GenerateContentResponse]: + """Provides mock LLM responses for the tests.""" + return [ + _create_llm_response_from_tools(tools), + _create_llm_response_from_text("test llm response after tool call"), + ] + + @pytest.fixture + def agent( + self, + tools: list[FunctionTool], + llm_responses: list[GenerateContentResponse], + ) -> ParallelAgent: + """Provides a single ParallelAgent for the test.""" + return ParallelAgent( + name="root_agent", + sub_agents=[ + LlmAgent( + name="agent1", + model=testing_utils.MockModel(responses=llm_responses), + tools=tools, + ), + LlmAgent( + name="agent2", + model=testing_utils.MockModel(responses=llm_responses), + tools=tools, + ), + ], + ) + + @pytest.fixture + def runner(self, agent: ParallelAgent) -> testing_utils.InMemoryRunner: + """Provides an in-memory runner for the agent.""" + # Mark the app as resumable. So that the invocation will be paused after the + # long running tool call. + app = App( + name="test_app", + resumability_config=ResumabilityConfig(is_resumable=True), + root_agent=agent, + ) + return testing_utils.InMemoryRunner(app=app) + + @pytest.mark.asyncio + async def test_pause_and_resume_on_request_confirmation( + self, + runner: testing_utils.InMemoryRunner, + agent: ParallelAgent, + ): + """Tests HITL flow where all tool calls are confirmed.""" + events = runner.run("test user query") + + # Test setup: + # - root_agent is a ParallelAgent with two sub-agents: sub_agent1 and + # sub_agent2. + # - Both sub_agents have a tool call that asks for HITL confirmation. + # - The test will: + # - Run the query and verify that each branch is paused after the long + # running tool call. + # - Resume the invocation and execute the tool call of each branch. + + sub_agent1 = agent.sub_agents[0] + sub_agent2 = agent.sub_agents[1] + + # Verify that each branch is paused after the long running tool call. + # So that no intermediate function response and llm response is generated. + root_agent_events = [event for event in events if event.branch is None] + sub_agent1_branch_events = [ + event + for event in events + if event.branch == f"{agent.name}.{sub_agent1.name}" + ] + sub_agent2_branch_events = [ + event + for event in events + if event.branch == f"{agent.name}.{sub_agent2.name}" + ] + assert testing_utils.simplify_resumable_app_events( + copy.deepcopy(root_agent_events) + ) == [ + ( + agent.name, + BaseAgentState().model_dump(mode="json"), + ), + ] + assert testing_utils.simplify_resumable_app_events( + copy.deepcopy(sub_agent1_branch_events) + ) == [ + ( + sub_agent1.name, + Part( + function_call=FunctionCall( + name=sub_agent1.tools[0].name, args={} + ) + ), + ), + ( + sub_agent1.name, + Part( + function_call=FunctionCall( + name=REQUEST_CONFIRMATION_FUNCTION_CALL_NAME, + args={ + "originalFunctionCall": { + "name": sub_agent1.tools[0].name, + "id": mock.ANY, + "args": {}, + }, + "toolConfirmation": { + "hint": "test hint for request_confirmation", + "confirmed": False, + }, + }, + ) + ), + ), + ] + assert testing_utils.simplify_resumable_app_events( + copy.deepcopy(sub_agent2_branch_events) + ) == [ + ( + sub_agent2.name, + Part( + function_call=FunctionCall( + name=sub_agent2.tools[0].name, args={} + ) + ), + ), + ( + sub_agent2.name, + Part( + function_call=FunctionCall( + name=REQUEST_CONFIRMATION_FUNCTION_CALL_NAME, + args={ + "originalFunctionCall": { + "name": sub_agent2.tools[0].name, + "id": mock.ANY, + "args": {}, + }, + "toolConfirmation": { + "hint": "test hint for request_confirmation", + "confirmed": False, + }, + }, + ) + ), + ), + ] + + ask_for_confirmation_function_call_ids = [ + sub_agent1_branch_events[1].content.parts[0].function_call.id, + sub_agent2_branch_events[1].content.parts[0].function_call.id, + ] + assert ( + sub_agent1_branch_events[1].invocation_id + == sub_agent2_branch_events[1].invocation_id + ) + invocation_id = sub_agent1_branch_events[1].invocation_id + + # Resume the invocation and confirm the tool call from sub_agent1. + user_confirmations = [ + testing_utils.UserContent( + Part( + function_response=FunctionResponse( + id=id, + name=REQUEST_CONFIRMATION_FUNCTION_CALL_NAME, + response={"confirmed": True}, + ) + ) + ) + for id in ask_for_confirmation_function_call_ids + ] + + events = await runner.run_async( + user_confirmations[0], invocation_id=invocation_id + ) + for event in events: + assert event.invocation_id == invocation_id + + root_agent_events = [event for event in events if event.branch is None] + sub_agent1_branch_events = [ + event + for event in events + if event.branch == f"{agent.name}.{sub_agent1.name}" + ] + sub_agent2_branch_events = [ + event + for event in events + if event.branch == f"{agent.name}.{sub_agent2.name}" + ] + + # Verify that sub_agent1 is resumed and final; sub_agent2 is still paused; + # root_agent is not final. + assert not root_agent_events + assert not sub_agent2_branch_events + assert testing_utils.simplify_resumable_app_events( + copy.deepcopy(sub_agent1_branch_events) + ) == [ + ( + sub_agent1.name, + Part( + function_response=FunctionResponse( + name=sub_agent1.tools[0].name, + response={"result": "confirmed=True"}, + ) + ), + ), + (sub_agent1.name, "test llm response after tool call"), + (sub_agent1.name, testing_utils.END_OF_AGENT), + ] + + # Resume the invocation again and confirm the tool call from sub_agent2. + events = await runner.run_async( + user_confirmations[1], invocation_id=invocation_id + ) + for event in events: + assert event.invocation_id == invocation_id + + # Verify that sub_agent2 is resumed and final; root_agent is final. + assert testing_utils.simplify_resumable_app_events( + copy.deepcopy(events) + ) == [ + ( + sub_agent2.name, + Part( + function_response=FunctionResponse( + name=sub_agent1.tools[0].name, + response={"result": "confirmed=True"}, + ) + ), + ), + (sub_agent2.name, "test llm response after tool call"), + (sub_agent2.name, testing_utils.END_OF_AGENT), + (agent.name, testing_utils.END_OF_AGENT), + ] From ae139bb461c2e7c6be154b04f3f2c80919808d31 Mon Sep 17 00:00:00 2001 From: Ankur Sharma Date: Thu, 9 Oct 2025 20:30:21 -0700 Subject: [PATCH 070/303] feat: ADK cli allows developers to create an eval set and add an eval case Agent developers can now create an eval set and add eval cases through command line itself. Adding an eval case is limited only to specifying conversation scenarios. Sample comamnds: - Create an eval set: adk eval_set create \ contributing/samples/hello_world \ set_01 - Add an eval case with scenario file Content of scenarios.json file: '{"scenarios": [{"starting_prompt": "hello", "conversation_plan": "world"}]}' adk eval_set add_eval_case \ contributing/samples/hello_world \ set_01 \ --scenarios scenarios.json PiperOrigin-RevId: 817456117 --- src/google/adk/cli/cli_eval.py | 20 ++ src/google/adk/cli/cli_tools_click.py | 166 ++++++++++++++++- tests/unittests/cli/utils/test_cli_eval.py | 51 ++++++ .../cli/utils/test_cli_tools_click.py | 172 ++++++++++++++++++ 4 files changed, 400 insertions(+), 9 deletions(-) create mode 100644 tests/unittests/cli/utils/test_cli_eval.py diff --git a/src/google/adk/cli/cli_eval.py b/src/google/adk/cli/cli_eval.py index dcd6652ca6..4f285d6136 100644 --- a/src/google/adk/cli/cli_eval.py +++ b/src/google/adk/cli/cli_eval.py @@ -47,6 +47,7 @@ from ..evaluation.eval_metrics import EvalMetricResultPerInvocation from ..evaluation.eval_metrics import JudgeModelOptions from ..evaluation.eval_result import EvalCaseResult +from ..evaluation.eval_sets_manager import EvalSetsManager from ..evaluation.evaluator import EvalStatus from ..evaluation.evaluator import Evaluator from ..sessions.base_session_service import BaseSessionService @@ -436,3 +437,22 @@ def _get_evaluator(eval_metric: EvalMetric) -> Evaluator: return FinalResponseMatchV2Evaluator(eval_metric) raise ValueError(f"Unsupported eval metric: {eval_metric}") + + +def get_eval_sets_manager( + eval_storage_uri: Optional[str], agents_dir: str +) -> EvalSetsManager: + """Returns an instance of EvalSetsManager.""" + try: + from ..evaluation.local_eval_sets_manager import LocalEvalSetsManager + from .utils import evals + except ModuleNotFoundError as mnf: + raise click.ClickException(MISSING_EVAL_DEPENDENCIES_MESSAGE) from mnf + + if eval_storage_uri: + gcs_eval_managers = evals.create_gcs_eval_managers_from_uri( + eval_storage_uri + ) + return gcs_eval_managers.eval_sets_manager + else: + return LocalEvalSetsManager(agents_dir=agents_dir) diff --git a/src/google/adk/cli/cli_tools_click.py b/src/google/adk/cli/cli_tools_click.py index e76d903f28..7115b5fca1 100644 --- a/src/google/adk/cli/cli_tools_click.py +++ b/src/google/adk/cli/cli_tools_click.py @@ -18,6 +18,8 @@ from contextlib import asynccontextmanager from datetime import datetime import functools +import hashlib +import json import logging import os from pathlib import Path @@ -433,6 +435,28 @@ def cli_run( ) +def eval_options(): + """Decorator to add common eval options to click commands.""" + + def decorator(func): + @click.option( + "--eval_storage_uri", + type=str, + help=( + "Optional. The evals storage URI to store agent evals," + " supported URIs: gs://." + ), + default=None, + ) + @functools.wraps(func) + def wrapper(*args, **kwargs): + return func(*args, **kwargs) + + return wrapper + + return decorator + + @main.command("eval", cls=HelpfulCommand) @click.argument( "agent_module_file_path", @@ -449,15 +473,7 @@ def cli_run( default=False, help="Optional. Whether to print detailed results on console or not.", ) -@click.option( - "--eval_storage_uri", - type=str, - help=( - "Optional. The evals storage URI to store agent evals," - " supported URIs: gs://." - ), - default=None, -) +@eval_options() def cli_eval( agent_module_file_path: str, eval_set_file_path_or_id: list[str], @@ -675,6 +691,138 @@ def cli_eval( pretty_print_eval_result(eval_result) +@main.group("eval_set") +def eval_set(): + """Manage Eval Sets.""" + pass + + +@eval_set.command("create", cls=HelpfulCommand) +@click.argument( + "agent_module_file_path", + type=click.Path( + exists=True, dir_okay=True, file_okay=False, resolve_path=True + ), +) +@click.argument("eval_set_id", type=str, required=True) +@eval_options() +def cli_create_eval_set( + agent_module_file_path: str, + eval_set_id: str, + eval_storage_uri: Optional[str] = None, +): + """Creates an empty EvalSet given the agent_module_file_path and eval_set_id.""" + from .cli_eval import get_eval_sets_manager + + app_name = os.path.basename(agent_module_file_path) + agents_dir = os.path.dirname(agent_module_file_path) + eval_sets_manager = get_eval_sets_manager(eval_storage_uri, agents_dir) + + try: + eval_sets_manager.create_eval_set( + app_name=app_name, eval_set_id=eval_set_id + ) + click.echo(f"Eval set '{eval_set_id}' created for app '{app_name}'.") + except ValueError as e: + raise click.ClickException(str(e)) + + +@eval_set.command("add_eval_case", cls=HelpfulCommand) +@click.argument( + "agent_module_file_path", + type=click.Path( + exists=True, dir_okay=True, file_okay=False, resolve_path=True + ), +) +@click.argument("eval_set_id", type=str, required=True) +@click.option( + "--scenarios_file", + type=click.Path( + exists=True, dir_okay=False, file_okay=True, resolve_path=True + ), + help="A path to file containing JSON serialized ConversationScenarios.", + required=True, +) +@click.option( + "--session_input_file", + type=click.Path( + exists=True, dir_okay=False, file_okay=True, resolve_path=True + ), + help=( + "Optional. Path to session file containing SessionInput in JSON format." + ), + default=None, +) +@eval_options() +def cli_add_eval_case( + agent_module_file_path: str, + eval_set_id: str, + scenarios_file: str, + eval_storage_uri: Optional[str] = None, + session_input_file: Optional[str] = None, +): + """Adds eval cases to the given eval set. + + There are several ways that an eval case can be created, for now this method + only supports adding one using a conversation scenarios file. + + If an eval case for the generated id already exists, then we skip adding it. + """ + try: + from ..evaluation.conversation_scenarios import ConversationScenarios + from ..evaluation.eval_case import EvalCase + from ..evaluation.eval_case import SessionInput + from .cli_eval import get_eval_sets_manager + except ModuleNotFoundError as mnf: + raise click.ClickException(MISSING_EVAL_DEPENDENCIES_MESSAGE) from mnf + + app_name = os.path.basename(agent_module_file_path) + agents_dir = os.path.dirname(agent_module_file_path) + eval_sets_manager = get_eval_sets_manager(eval_storage_uri, agents_dir) + + try: + session_input = None + if session_input_file: + with open(session_input_file, "r") as f: + session_input = SessionInput.model_validate_json(f.read()) + + with open(scenarios_file, "r") as f: + conversation_scenarios = ConversationScenarios.model_validate_json( + f.read() + ) + + for scenario in conversation_scenarios.scenarios: + scenario_str = json.dumps(scenario.model_dump(), sort_keys=True) + eval_id = hashlib.sha256(scenario_str.encode("utf-8")).hexdigest()[:8] + eval_case = EvalCase( + eval_id=eval_id, + conversation_scenario=scenario, + session_input=session_input, + creation_timestamp=datetime.now().timestamp(), + ) + + if ( + eval_sets_manager.get_eval_case( + app_name=app_name, eval_set_id=eval_set_id, eval_case_id=eval_id + ) + is None + ): + eval_sets_manager.add_eval_case( + app_name=app_name, eval_set_id=eval_set_id, eval_case=eval_case + ) + click.echo( + f"Eval case '{eval_case.eval_id}' added to eval set" + f" '{eval_set_id}'." + ) + else: + click.echo( + f"Eval case '{eval_case.eval_id}' already exists in eval set" + f" '{eval_set_id}', skipped adding." + ) + except Exception as e: + raise click.ClickException(f"Failed to add eval case(s): {e}") from e + + def web_options(): """Decorator to add web UI options to click commands.""" diff --git a/tests/unittests/cli/utils/test_cli_eval.py b/tests/unittests/cli/utils/test_cli_eval.py new file mode 100644 index 0000000000..8ff33dd9a1 --- /dev/null +++ b/tests/unittests/cli/utils/test_cli_eval.py @@ -0,0 +1,51 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Unit tests for utilities in cli_eval.""" + +from __future__ import annotations + +from types import SimpleNamespace +from unittest import mock + + +def test_get_eval_sets_manager_local(monkeypatch): + mock_local_manager = mock.MagicMock() + monkeypatch.setattr( + "google.adk.evaluation.local_eval_sets_manager.LocalEvalSetsManager", + lambda *a, **k: mock_local_manager, + ) + from google.adk.cli.cli_eval import get_eval_sets_manager + + manager = get_eval_sets_manager(eval_storage_uri=None, agents_dir="some/dir") + assert manager == mock_local_manager + + +def test_get_eval_sets_manager_gcs(monkeypatch): + mock_gcs_manager = mock.MagicMock() + mock_create_gcs = mock.MagicMock() + mock_create_gcs.return_value = SimpleNamespace( + eval_sets_manager=mock_gcs_manager + ) + monkeypatch.setattr( + "google.adk.cli.utils.evals.create_gcs_eval_managers_from_uri", + mock_create_gcs, + ) + from google.adk.cli.cli_eval import get_eval_sets_manager + + manager = get_eval_sets_manager( + eval_storage_uri="gs://bucket", agents_dir="some/dir" + ) + assert manager == mock_gcs_manager + mock_create_gcs.assert_called_once_with("gs://bucket") diff --git a/tests/unittests/cli/utils/test_cli_tools_click.py b/tests/unittests/cli/utils/test_cli_tools_click.py index 138289ed2e..3bd02b3997 100644 --- a/tests/unittests/cli/utils/test_cli_tools_click.py +++ b/tests/unittests/cli/utils/test_cli_tools_click.py @@ -18,6 +18,7 @@ from __future__ import annotations import builtins +import json from pathlib import Path from types import SimpleNamespace from typing import Any @@ -620,6 +621,177 @@ def test_cli_eval_with_eval_set_id( assert len(eval_set_results) == 2 +def test_cli_create_eval_set(tmp_path: Path): + app_name = "test_app" + eval_set_id = "test_eval_set" + agent_path = tmp_path / app_name + agent_path.mkdir() + (agent_path / "__init__.py").touch() + + runner = CliRunner() + result = runner.invoke( + cli_tools_click.main, + ["eval_set", "create", str(agent_path), eval_set_id], + ) + + assert result.exit_code == 0 + eval_set_file = agent_path / f"{eval_set_id}.evalset.json" + assert eval_set_file.exists() + with open(eval_set_file, "r") as f: + eval_set_data = json.load(f) + assert eval_set_data["eval_set_id"] == eval_set_id + assert eval_set_data["eval_cases"] == [] + + +def test_cli_add_eval_case_no_session(tmp_path: Path): + app_name = "test_app_add_1" + eval_set_id = "test_eval_set_add_1" + agent_path = tmp_path / app_name + agent_path.mkdir() + (agent_path / "__init__.py").touch() + + scenarios_file = tmp_path / "scenarios1.json" + scenarios_file.write_text( + '{"scenarios": [{"starting_prompt": "hello", "conversation_plan":' + ' "world"}]}' + ) + + runner = CliRunner() + runner.invoke( + cli_tools_click.main, + ["eval_set", "create", str(agent_path), eval_set_id], + catch_exceptions=False, + ) + result = runner.invoke( + cli_tools_click.main, + [ + "eval_set", + "add_eval_case", + str(agent_path), + eval_set_id, + "--scenarios_file", + str(scenarios_file), + ], + catch_exceptions=False, + ) + + assert result.exit_code == 0 + eval_set_file = agent_path / f"{eval_set_id}.evalset.json" + assert eval_set_file.exists() + with open(eval_set_file, "r") as f: + eval_set_data = json.load(f) + assert len(eval_set_data["eval_cases"]) == 1 + eval_case = eval_set_data["eval_cases"][0] + assert eval_case["eval_id"] == "0a1a5048" + assert eval_case["conversation_scenario"]["starting_prompt"] == "hello" + assert "session_input" not in eval_case + + +def test_cli_add_eval_case_with_session(tmp_path: Path): + app_name = "test_app_add_2" + eval_set_id = "test_eval_set_add_2" + agent_path = tmp_path / app_name + agent_path.mkdir() + (agent_path / "__init__.py").touch() + + scenarios_file = tmp_path / "scenarios2.json" + scenarios_file.write_text( + '{"scenarios": [{"starting_prompt": "hello", "conversation_plan":' + ' "world"}]}' + ) + session_file = tmp_path / "session2.json" + session_file.write_text( + '{"app_name": "test_app_add_2", "user_id": "test_user", "state": {}}' + ) + + runner = CliRunner() + runner.invoke( + cli_tools_click.main, + ["eval_set", "create", str(agent_path), eval_set_id], + catch_exceptions=False, + ) + result = runner.invoke( + cli_tools_click.main, + [ + "eval_set", + "add_eval_case", + str(agent_path), + eval_set_id, + "--scenarios_file", + str(scenarios_file), + "--session_input_file", + str(session_file), + ], + catch_exceptions=False, + ) + + assert result.exit_code == 0 + eval_set_file = agent_path / f"{eval_set_id}.evalset.json" + assert eval_set_file.exists() + with open(eval_set_file, "r") as f: + eval_set_data = json.load(f) + assert len(eval_set_data["eval_cases"]) == 1 + eval_case = eval_set_data["eval_cases"][0] + assert eval_case["eval_id"] == "0a1a5048" + assert eval_case["session_input"]["app_name"] == "test_app_add_2" + + +def test_cli_add_eval_case_skip_existing(tmp_path: Path): + app_name = "test_app_add_3" + eval_set_id = "test_eval_set_add_3" + agent_path = tmp_path / app_name + agent_path.mkdir() + (agent_path / "__init__.py").touch() + + scenarios_file = tmp_path / "scenarios3.json" + scenarios_file.write_text( + '{"scenarios": [{"starting_prompt": "hello", "conversation_plan":' + ' "world"}]}' + ) + + runner = CliRunner() + runner.invoke( + cli_tools_click.main, + ["eval_set", "create", str(agent_path), eval_set_id], + catch_exceptions=False, + ) + result1 = runner.invoke( + cli_tools_click.main, + [ + "eval_set", + "add_eval_case", + str(agent_path), + eval_set_id, + "--scenarios_file", + str(scenarios_file), + ], + catch_exceptions=False, + ) + eval_set_file = agent_path / f"{eval_set_id}.evalset.json" + with open(eval_set_file, "r") as f: + eval_set_data1 = json.load(f) + + result2 = runner.invoke( + cli_tools_click.main, + [ + "eval_set", + "add_eval_case", + str(agent_path), + eval_set_id, + "--scenarios_file", + str(scenarios_file), + ], + catch_exceptions=False, + ) + with open(eval_set_file, "r") as f: + eval_set_data2 = json.load(f) + + assert result1.exit_code == 0 + assert result2.exit_code == 0 + assert len(eval_set_data1["eval_cases"]) == 1 + assert len(eval_set_data2["eval_cases"]) == 1 + + def test_cli_deploy_cloud_run_gcloud_arg_conflict( tmp_path: Path, monkeypatch: pytest.MonkeyPatch ) -> None: From 731bb9078d01359ae770719a8f5c003680ed9f3e Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Thu, 9 Oct 2025 20:35:13 -0700 Subject: [PATCH 071/303] chore: Announce the first ADK Community Call in the README The added section provides details for the community call on Oct 15, 2025, including the agenda and links to join and add to calendars. PiperOrigin-RevId: 817457276 --- README.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/README.md b/README.md index 43e33561d6..d4c5050349 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,35 @@ Agent Development Kit (ADK) is a flexible and modular framework for developing and deploying AI agents. While optimized for Gemini and the Google ecosystem, ADK is model-agnostic, deployment-agnostic, and is built for compatibility with other frameworks. ADK was designed to make agent development feel more like software development, to make it easier for developers to create, deploy, and orchestrate agentic architectures that range from simple tasks to complex workflows. +--- +## 🔥ADK's very first community call on Oct 15 + +Join our ADK Community Call! Our first virtual community call is on Oct 15! +Meet our team, and talk with us about our roadmap and how to contribute. + +First Call Details: + +Topic: ADK Roadmap + +Date: October 15, 2025 + +Time: 9:30-10:30am PST + +Meeting link: +[Join the call](http://meet.google.com/gjm-gfim-ctz) + +Add to your calendar +[Event calendar invite](https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=MDUydWo1dHV1dHFtNzJuM3E0bmEyMW12ZnZfMjAyNTEwMTVUMTYzMDAwWiBjXzljNWVjODhhMmQyYWU5YjY5Mzk4ODU1MGZkNDA5MjVmYjgxYjM4MTI1NGNjYTgzNmRkMjMwNzRiMjNmYzcyZDVAZw&tmsrc=c_9c5ec88a2d2ae9b693988550fd40925fb81b381254cca836dd23074b23fc72d5%40group.calendar.google.com), [.ics file](https://calendar.google.com/calendar/ical/c_9c5ec88a2d2ae9b693988550fd40925fb81b381254cca836dd23074b23fc72d5%40group.calendar.google.com/public/basic.ics), [ADK community calendar](https://calendar.google.com/calendar/embed?src=c_9c5ec88a2d2ae9b693988550fd40925fb81b381254cca836dd23074b23fc72d5%40group.calendar.google.com&ctz=America%2FLos_Angeles) + +Agenda: +[Julia] ADK Roadmap + +[ Bo & Hangfei] Eng Deep Dive: Context Caching + +[Kris] How to Contribute + +[Shubham] Upcoming Events + --- ## 🔥 What's new From 9e0b1fb62b06de7ecb79bf77d54a999167d001e1 Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Thu, 9 Oct 2025 21:19:00 -0700 Subject: [PATCH 072/303] fix: Create context cache only when prefix matches with previous request PiperOrigin-RevId: 817468275 --- .../llm_flows/context_cache_processor.py | 26 +-- src/google/adk/models/cache_metadata.py | 65 ++++++-- .../models/gemini_context_cache_manager.py | 97 ++++++----- .../test_gemini_context_cache_manager.py | 150 +++++++++++------- .../llm_flows/test_context_cache_processor.py | 4 +- tests/unittests/models/test_cache_metadata.py | 77 ++++----- tests/unittests/models/test_google_llm.py | 2 +- .../utils/test_cache_performance_analyzer.py | 4 +- 8 files changed, 264 insertions(+), 161 deletions(-) diff --git a/src/google/adk/flows/llm_flows/context_cache_processor.py b/src/google/adk/flows/llm_flows/context_cache_processor.py index a9e9eb7615..e08a73955f 100644 --- a/src/google/adk/flows/llm_flows/context_cache_processor.py +++ b/src/google/adk/flows/llm_flows/context_cache_processor.py @@ -72,11 +72,9 @@ async def run_async( if latest_cache_metadata: llm_request.cache_metadata = latest_cache_metadata logger.debug( - 'Found cache metadata for agent %s: invocations_used=%d, ' - 'cached_contents=%d', + 'Found cache metadata for agent %s: %s', agent.name, - latest_cache_metadata.invocations_used, - latest_cache_metadata.cached_contents_count, + latest_cache_metadata, ) if previous_token_count is not None: @@ -108,8 +106,10 @@ def _find_cache_info_from_events( Returns: Tuple of (cache_metadata, previous_prompt_token_count) - cache_metadata: Latest cache metadata with updated invocations_used if needed - previous_prompt_token_count: Most recent prompt token count from LLM response + cache_metadata: Latest cache metadata with invocations_used incremented + only if this is a different invocation and has active cache + previous_prompt_token_count: Most recent prompt token count from + LLM response """ if not invocation_context.session or not invocation_context.session.events: return None, None @@ -126,17 +126,21 @@ def _find_cache_info_from_events( # Look for cache metadata (only in actual LLM response events) if cache_metadata is None and event.cache_metadata is not None: - # Check if this is a different invocation - increment invocations_used - if event.invocation_id and event.invocation_id != current_invocation_id: - # Different invocation - increment invocations_used + # Check if this is a different invocation and has active cache + if ( + event.invocation_id + and event.invocation_id != current_invocation_id + and event.cache_metadata.cache_name is not None + ): + # Different invocation with active cache - increment invocations_used cache_metadata = event.cache_metadata.model_copy( update={ 'invocations_used': event.cache_metadata.invocations_used + 1 } ) else: - # Same invocation or no invocation_id - return as-is - cache_metadata = event.cache_metadata + # Same invocation or no active cache - return copy as-is + cache_metadata = event.cache_metadata.model_copy() # Look for previous prompt token count (from actual LLM response events) if ( diff --git a/src/google/adk/models/cache_metadata.py b/src/google/adk/models/cache_metadata.py index ad41418192..1652522138 100644 --- a/src/google/adk/models/cache_metadata.py +++ b/src/google/adk/models/cache_metadata.py @@ -26,19 +26,30 @@ class CacheMetadata(BaseModel): """Metadata for context cache associated with LLM responses. This class stores cache identification, usage tracking, and lifecycle - information for a particular cache instance. + information for a particular cache instance. It can be in two states: + + 1. Active cache state: cache_name is set, all fields populated + 2. Fingerprint-only state: cache_name is None, only fingerprint and + contents_count are set for prefix matching Token counts (cached and total) are available in the LlmResponse.usage_metadata and should be accessed from there to avoid duplication. Attributes: cache_name: The full resource name of the cached content (e.g., - 'projects/123/locations/us-central1/cachedContents/456') - expire_time: Unix timestamp when the cache expires - fingerprint: Hash of agent configuration (instruction + tools + model) - invocations_used: Number of invocations this cache has been used for - cached_contents_count: Number of contents stored in this cache - created_at: Unix timestamp when the cache was created + 'projects/123/locations/us-central1/cachedContents/456'). + None when no active cache exists (fingerprint-only state). + expire_time: Unix timestamp when the cache expires. None when no + active cache exists. + fingerprint: Hash of cacheable contents (instruction + tools + contents). + Always present for prefix matching. + invocations_used: Number of invocations this cache has been used for. + None when no active cache exists. + contents_count: Number of contents. When active cache exists, this is + the count of cached contents. When no active cache exists, this is + the total count of contents in the request. + created_at: Unix timestamp when the cache was created. None when + no active cache exists. """ model_config = ConfigDict( @@ -46,45 +57,65 @@ class CacheMetadata(BaseModel): frozen=True, # Cache metadata should be immutable ) - cache_name: str = Field( - description="Full resource name of the cached content" + cache_name: Optional[str] = Field( + default=None, + description=( + "Full resource name of the cached content (None if no active cache)" + ), ) - expire_time: float = Field(description="Unix timestamp when cache expires") + expire_time: Optional[float] = Field( + default=None, + description="Unix timestamp when cache expires (None if no active cache)", + ) fingerprint: str = Field( - description="Hash of agent configuration used to detect changes" + description="Hash of cacheable contents used to detect changes" ) - invocations_used: int = Field( + invocations_used: Optional[int] = Field( + default=None, ge=0, - description="Number of invocations this cache has been used for", + description=( + "Number of invocations this cache has been used for (None if no" + " active cache)" + ), ) - cached_contents_count: int = Field( + contents_count: int = Field( ge=0, - description="Number of contents stored in this cache", + description=( + "Number of contents (cached contents when active cache exists, " + "total contents in request when no active cache)" + ), ) created_at: Optional[float] = Field( default=None, description=( - "Unix timestamp when cache was created (None if reused existing)" + "Unix timestamp when cache was created (None if no active cache)" ), ) @property def expire_soon(self) -> bool: """Check if the cache will expire soon (with 2-minute buffer).""" + if self.expire_time is None: + return False buffer_seconds = 120 # 2 minutes buffer for processing time return time.time() > (self.expire_time - buffer_seconds) def __str__(self) -> str: """String representation for logging and debugging.""" + if self.cache_name is None: + return ( + f"Fingerprint-only: {self.contents_count} contents, " + f"fingerprint={self.fingerprint[:8]}..." + ) cache_id = self.cache_name.split("/")[-1] time_until_expiry_minutes = (self.expire_time - time.time()) / 60 return ( f"Cache {cache_id}: used {self.invocations_used} invocations, " - f"cached {self.cached_contents_count} contents, " + f"cached {self.contents_count} contents, " f"expires in {time_until_expiry_minutes:.1f}min" ) diff --git a/src/google/adk/models/gemini_context_cache_manager.py b/src/google/adk/models/gemini_context_cache_manager.py index 5c1aeaf5af..111e7de6cc 100644 --- a/src/google/adk/models/gemini_context_cache_manager.py +++ b/src/google/adk/models/gemini_context_cache_manager.py @@ -69,11 +69,8 @@ async def handle_context_caching( # Check if we have existing cache metadata and if it's valid if llm_request.cache_metadata: logger.debug( - "Found existing cache metadata: cache_name=%s, invocations_used=%d," - " cached_contents_count=%d", - llm_request.cache_metadata.cache_name, - llm_request.cache_metadata.invocations_used, - llm_request.cache_metadata.cached_contents_count, + "Found existing cache metadata: %s", + llm_request.cache_metadata, ) if await self._is_cache_valid(llm_request): # Valid cache found - use it @@ -82,47 +79,70 @@ async def handle_context_caching( llm_request.cache_metadata.cache_name, ) cache_name = llm_request.cache_metadata.cache_name - cache_contents_count = llm_request.cache_metadata.cached_contents_count + cache_contents_count = llm_request.cache_metadata.contents_count self._apply_cache_to_request( llm_request, cache_name, cache_contents_count ) return llm_request.cache_metadata.model_copy() else: - # Invalid cache - clean it up + # Invalid cache - clean it up and check if we should create new one + old_cache_metadata = llm_request.cache_metadata + + # Only cleanup if there's an active cache + if old_cache_metadata.cache_name is not None: + logger.debug( + "Cache is invalid, cleaning up: %s", + old_cache_metadata.cache_name, + ) + await self.cleanup_cache(old_cache_metadata.cache_name) + + # Calculate current fingerprint using contents count from old metadata + cache_contents_count = old_cache_metadata.contents_count + current_fingerprint = self._generate_cache_fingerprint( + llm_request, cache_contents_count + ) + + # If fingerprints match, create new cache (expired but same content) + if current_fingerprint == old_cache_metadata.fingerprint: + logger.debug( + "Fingerprints match after invalidation, creating new cache" + ) + cache_metadata = await self._create_new_cache_with_contents( + llm_request, cache_contents_count + ) + if cache_metadata: + self._apply_cache_to_request( + llm_request, cache_metadata.cache_name, cache_contents_count + ) + return cache_metadata + + # Fingerprints don't match - recalculate with total contents logger.debug( - "Cache is invalid, cleaning up: %s", - llm_request.cache_metadata.cache_name, + "Fingerprints don't match, returning fingerprint-only metadata" + ) + total_contents_count = len(llm_request.contents) + fingerprint_for_all = self._generate_cache_fingerprint( + llm_request, total_contents_count + ) + return CacheMetadata( + fingerprint=fingerprint_for_all, + contents_count=total_contents_count, ) - await self.cleanup_cache(llm_request.cache_metadata.cache_name) - llm_request.cache_metadata = None - # Find contents to cache for new cache creation - cache_contents_count = self._find_count_of_contents_to_cache( - llm_request.contents - ) + # No existing cache metadata - return fingerprint-only metadata + # We don't create cache without previous fingerprint to match logger.debug( - "Determined to cache %d contents from %d total contents", - cache_contents_count, - len(llm_request.contents), + "No existing cache metadata, creating fingerprint-only metadata" ) - - # Create new cache with the determined contents - cache_metadata = await self._create_new_cache_with_contents( - llm_request, cache_contents_count + total_contents_count = len(llm_request.contents) + fingerprint = self._generate_cache_fingerprint( + llm_request, total_contents_count ) - if not cache_metadata: - return None - - # Set up request to use the new cache - self._apply_cache_to_request( - llm_request, cache_metadata.cache_name, cache_contents_count - ) - logger.debug( - "Successfully applied cache to request: %s", cache_metadata.cache_name + return CacheMetadata( + fingerprint=fingerprint, + contents_count=total_contents_count, ) - return cache_metadata - def _find_count_of_contents_to_cache( self, contents: list[types.Content] ) -> int: @@ -158,7 +178,8 @@ def _find_count_of_contents_to_cache( async def _is_cache_valid(self, llm_request: LlmRequest) -> bool: """Check if the cache from request metadata is still valid. - Validates expiry, cache intervals, and fingerprint compatibility. + Validates that it's an active cache (not fingerprint-only), checks expiry, + cache intervals, and fingerprint compatibility. Args: llm_request: Request containing cache metadata to validate @@ -170,6 +191,10 @@ async def _is_cache_valid(self, llm_request: LlmRequest) -> bool: if not cache_metadata: return False + # Fingerprint-only metadata is not a valid active cache + if cache_metadata.cache_name is None: + return False + # Check if cache has expired if time.time() >= cache_metadata.expire_time: logger.info("Cache expired: %s", cache_metadata.cache_name) @@ -190,7 +215,7 @@ async def _is_cache_valid(self, llm_request: LlmRequest) -> bool: # Check if fingerprint matches using cached contents count current_fingerprint = self._generate_cache_fingerprint( - llm_request, cache_metadata.cached_contents_count + llm_request, cache_metadata.contents_count ) if current_fingerprint != cache_metadata.fingerprint: logger.debug("Cache content fingerprint mismatch") @@ -376,7 +401,7 @@ async def _create_gemini_cache( llm_request, cache_contents_count ), invocations_used=1, - cached_contents_count=cache_contents_count, + contents_count=cache_contents_count, created_at=created_at, ) diff --git a/tests/unittests/agents/test_gemini_context_cache_manager.py b/tests/unittests/agents/test_gemini_context_cache_manager.py index 23b678cc53..0443843ae1 100644 --- a/tests/unittests/agents/test_gemini_context_cache_manager.py +++ b/tests/unittests/agents/test_gemini_context_cache_manager.py @@ -87,7 +87,7 @@ def create_llm_request(self, cache_metadata=None, contents_count=3): ) def create_cache_metadata( - self, invocations_used=0, expired=False, cached_contents_count=3 + self, invocations_used=0, expired=False, contents_count=3 ): """Helper to create test CacheMetadata.""" current_time = time.time() @@ -98,7 +98,7 @@ def create_cache_metadata( expire_time=expire_time, fingerprint="test_fingerprint", invocations_used=invocations_used, - cached_contents_count=cached_contents_count, + contents_count=contents_count, created_at=current_time - 600, ) @@ -109,45 +109,26 @@ def test_init(self): assert manager is not None assert manager.genai_client == mock_client - async def test_handle_context_caching_new_cache(self): - """Test handling context caching with no existing cache.""" - # Setup mocks - mock_cached_content = AsyncMock() - mock_cached_content.name = ( - "projects/test/locations/us-central1/cachedContents/new123" - ) - self.manager.genai_client.aio.caches.create = AsyncMock( - return_value=mock_cached_content - ) - - llm_request = self.create_llm_request() - llm_request.cacheable_contents_token_count = ( - 2048 # Add token count for cache creation - ) - start_time = time.time() + async def test_handle_context_caching_no_existing_cache(self): + """Test handling context caching with no existing cache returns fingerprint-only metadata.""" + llm_request = self.create_llm_request(contents_count=5) with patch.object( self.manager, "_generate_cache_fingerprint", return_value="test_fp" ): result = await self.manager.handle_context_caching(llm_request) - end_time = time.time() - assert result is not None - # Verify new cache metadata is created with fresh values - assert ( - result.cache_name - == "projects/test/locations/us-central1/cachedContents/new123" - ) - assert result.invocations_used == 1 # New cache starts with 1 invocation + # Should return fingerprint-only metadata (no active cache) + assert result.cache_name is None + assert result.expire_time is None + assert result.invocations_used is None + assert result.created_at is None assert result.fingerprint == "test_fp" + assert result.contents_count == 5 # Total contents count - # Verify timestamps are recent (within test execution time) - assert start_time <= result.created_at <= end_time - assert result.expire_time > time.time() # Should be in the future - - # Verify cache creation was called - self.manager.genai_client.aio.caches.create.assert_called_once() + # No cache should be created + self.manager.genai_client.aio.caches.create.assert_not_called() async def test_handle_context_caching_valid_existing_cache(self): """Test handling context caching with valid existing cache.""" @@ -181,8 +162,8 @@ async def test_handle_context_caching_valid_existing_cache(self): # Should not create new cache self.manager.genai_client.aio.caches.create.assert_not_called() - async def test_handle_context_caching_invalid_existing_cache(self): - """Test handling context caching with invalid existing cache.""" + async def test_handle_context_caching_invalid_cache_fingerprint_match(self): + """Test invalid cache with matching fingerprint creates new cache.""" # Setup mocks mock_cached_content = AsyncMock() mock_cached_content.name = ( @@ -205,13 +186,16 @@ async def test_handle_context_caching_invalid_existing_cache(self): patch.object(self.manager, "_is_cache_valid", return_value=False), patch.object(self.manager, "cleanup_cache") as mock_cleanup, patch.object( - self.manager, "_generate_cache_fingerprint", return_value="new_fp" + self.manager, + "_generate_cache_fingerprint", + return_value="test_fingerprint", # Match old fingerprint ), ): result = await self.manager.handle_context_caching(llm_request) assert result is not None + # Should create new cache when fingerprints match assert ( result.cache_name == "projects/test/locations/us-central1/cachedContents/new456" @@ -219,6 +203,41 @@ async def test_handle_context_caching_invalid_existing_cache(self): mock_cleanup.assert_called_once_with(existing_cache.cache_name) self.manager.genai_client.aio.caches.create.assert_called_once() + async def test_handle_context_caching_invalid_cache_fingerprint_mismatch( + self, + ): + """Test invalid cache with mismatched fingerprint returns fingerprint-only metadata.""" + # Create request with invalid existing cache + existing_cache = self.create_cache_metadata( + invocations_used=15, contents_count=3 + ) # Exceeds cache_intervals + llm_request = self.create_llm_request( + cache_metadata=existing_cache, contents_count=5 + ) + + with ( + patch.object(self.manager, "_is_cache_valid", return_value=False), + patch.object(self.manager, "cleanup_cache") as mock_cleanup, + patch.object( + self.manager, + "_generate_cache_fingerprint", + side_effect=["old_fp", "new_fp"], # Different fingerprints + ), + ): + + result = await self.manager.handle_context_caching(llm_request) + + assert result is not None + # Should return fingerprint-only metadata + assert result.cache_name is None + assert result.expire_time is None + assert result.invocations_used is None + assert result.created_at is None + assert result.fingerprint == "new_fp" + assert result.contents_count == 5 # Total contents count + mock_cleanup.assert_called_once_with(existing_cache.cache_name) + self.manager.genai_client.aio.caches.create.assert_not_called() + async def test_is_cache_valid_fingerprint_mismatch(self): """Test cache validation with fingerprint mismatch.""" cache_metadata = self.create_cache_metadata() @@ -247,6 +266,21 @@ async def test_is_cache_valid_expired_cache(self): assert result is False + async def test_is_cache_valid_fingerprint_only_metadata(self): + """Test cache validation with fingerprint-only metadata (no active cache).""" + # Create fingerprint-only metadata (cache_name is None) + cache_metadata = CacheMetadata( + fingerprint="test_fingerprint", + contents_count=5, + ) + llm_request = self.create_llm_request(cache_metadata=cache_metadata) + + result = await self.manager._is_cache_valid(llm_request) + + assert ( + result is False + ) # Fingerprint-only metadata is not a valid active cache + async def test_is_cache_valid_cache_intervals_exceeded(self): """Test cache validation with max invocations exceeded.""" cache_metadata = self.create_cache_metadata( @@ -537,16 +571,8 @@ def create_llm_request_with_token_count( return llm_request async def test_cache_creation_with_sufficient_token_count(self): - """Test cache creation succeeds when token count meets minimum.""" - # Setup mocks - mock_cached_content = AsyncMock() - mock_cached_content.name = ( - "projects/test/locations/us-central1/cachedContents/token123" - ) - self.manager.genai_client.aio.caches.create = AsyncMock( - return_value=mock_cached_content - ) - + """Test that fingerprint-only metadata is returned even with sufficient tokens.""" + # With new prefix matching logic, no cache is created without existing metadata # Create request with sufficient token count llm_request = self.create_llm_request_with_token_count(token_count=2048) @@ -555,13 +581,15 @@ async def test_cache_creation_with_sufficient_token_count(self): ): result = await self.manager.handle_context_caching(llm_request) - # Should succeed in creating cache + # Should return fingerprint-only metadata (no cache creation) assert result is not None - assert result.cache_name == mock_cached_content.name - self.manager.genai_client.aio.caches.create.assert_called_once() + assert result.cache_name is None # Fingerprint-only state + assert result.fingerprint == "test_fp" + assert result.contents_count == 3 + self.manager.genai_client.aio.caches.create.assert_not_called() async def test_cache_creation_with_insufficient_token_count(self): - """Test cache creation fails when token count is below minimum.""" + """Test that fingerprint-only metadata is returned even with insufficient tokens.""" # Set higher minimum token requirement self.manager.cache_config = ContextCacheConfig( cache_intervals=10, @@ -573,19 +601,29 @@ async def test_cache_creation_with_insufficient_token_count(self): llm_request = self.create_llm_request_with_token_count(token_count=1024) llm_request.cache_config = self.manager.cache_config - result = await self.manager.handle_context_caching(llm_request) + with patch.object( + self.manager, "_generate_cache_fingerprint", return_value="test_fp" + ): + result = await self.manager.handle_context_caching(llm_request) - # Should not create cache - assert result is None + # Should return fingerprint-only metadata + assert result is not None + assert result.cache_name is None + assert result.fingerprint == "test_fp" self.manager.genai_client.aio.caches.create.assert_not_called() async def test_cache_creation_without_token_count(self): - """Test cache creation is skipped when no token count is available.""" + """Test that fingerprint-only metadata is returned even without token count.""" # Create request without token count (initial request) llm_request = self.create_llm_request_with_token_count(token_count=None) - result = await self.manager.handle_context_caching(llm_request) + with patch.object( + self.manager, "_generate_cache_fingerprint", return_value="test_fp" + ): + result = await self.manager.handle_context_caching(llm_request) - # Should skip cache creation for initial request - assert result is None + # Should return fingerprint-only metadata + assert result is not None + assert result.cache_name is None + assert result.fingerprint == "test_fp" self.manager.genai_client.aio.caches.create.assert_not_called() diff --git a/tests/unittests/flows/llm_flows/test_context_cache_processor.py b/tests/unittests/flows/llm_flows/test_context_cache_processor.py index 026bdc85b8..13602a6d48 100644 --- a/tests/unittests/flows/llm_flows/test_context_cache_processor.py +++ b/tests/unittests/flows/llm_flows/test_context_cache_processor.py @@ -66,7 +66,7 @@ def create_invocation_context( ) def create_cache_metadata( - self, invocations_used=1, cache_name="test-cache", cached_contents_count=3 + self, invocations_used=1, cache_name="test-cache", contents_count=3 ): """Helper to create CacheMetadata.""" return CacheMetadata( @@ -76,7 +76,7 @@ def create_cache_metadata( expire_time=time.time() + 1800, fingerprint="test_fingerprint", invocations_used=invocations_used, - cached_contents_count=cached_contents_count, + contents_count=contents_count, created_at=time.time() - 600, ) diff --git a/tests/unittests/models/test_cache_metadata.py b/tests/unittests/models/test_cache_metadata.py index 0be24db79b..496c15592f 100644 --- a/tests/unittests/models/test_cache_metadata.py +++ b/tests/unittests/models/test_cache_metadata.py @@ -32,7 +32,7 @@ def test_required_fields(self): expire_time=time.time() + 1800, fingerprint="abc123", invocations_used=5, - cached_contents_count=3, + contents_count=3, ) assert ( @@ -42,7 +42,7 @@ def test_required_fields(self): assert metadata.expire_time > time.time() assert metadata.fingerprint == "abc123" assert metadata.invocations_used == 5 - assert metadata.cached_contents_count == 3 + assert metadata.contents_count == 3 assert metadata.created_at is None # Optional field def test_optional_created_at(self): @@ -54,7 +54,7 @@ def test_optional_created_at(self): expire_time=time.time() + 1800, fingerprint="abc123", invocations_used=3, - cached_contents_count=2, + contents_count=2, created_at=current_time, ) @@ -68,7 +68,7 @@ def test_invocations_used_validation(self): expire_time=time.time() + 1800, fingerprint="abc123", invocations_used=0, - cached_contents_count=1, + contents_count=1, ) assert metadata.invocations_used == 0 @@ -77,7 +77,7 @@ def test_invocations_used_validation(self): expire_time=time.time() + 1800, fingerprint="abc123", invocations_used=10, - cached_contents_count=1, + contents_count=1, ) assert metadata.invocations_used == 10 @@ -88,30 +88,30 @@ def test_invocations_used_validation(self): expire_time=time.time() + 1800, fingerprint="abc123", invocations_used=-1, - cached_contents_count=1, + contents_count=1, ) assert "greater than or equal to 0" in str(exc_info.value) - def test_cached_contents_count_validation(self): - """Test cached_contents_count validation constraints.""" + def test_contents_count_validation(self): + """Test contents_count validation constraints.""" # Valid: zero or positive metadata = CacheMetadata( cache_name="projects/123/locations/us-central1/cachedContents/456", expire_time=time.time() + 1800, fingerprint="abc123", invocations_used=1, - cached_contents_count=0, + contents_count=0, ) - assert metadata.cached_contents_count == 0 + assert metadata.contents_count == 0 metadata = CacheMetadata( cache_name="projects/123/locations/us-central1/cachedContents/456", expire_time=time.time() + 1800, fingerprint="abc123", invocations_used=1, - cached_contents_count=10, + contents_count=10, ) - assert metadata.cached_contents_count == 10 + assert metadata.contents_count == 10 # Invalid: negative with pytest.raises(ValidationError) as exc_info: @@ -120,7 +120,7 @@ def test_cached_contents_count_validation(self): expire_time=time.time() + 1800, fingerprint="abc123", invocations_used=1, - cached_contents_count=-1, + contents_count=-1, ) assert "greater than or equal to 0" in str(exc_info.value) @@ -133,7 +133,7 @@ def test_expire_soon_property(self): expire_time=future_time, fingerprint="abc123", invocations_used=1, - cached_contents_count=1, + contents_count=1, ) assert not metadata.expire_soon @@ -144,7 +144,7 @@ def test_expire_soon_property(self): expire_time=soon_time, fingerprint="abc123", invocations_used=1, - cached_contents_count=1, + contents_count=1, ) assert metadata.expire_soon @@ -158,7 +158,7 @@ def test_str_representation(self): expire_time=expire_time, fingerprint="abc123", invocations_used=7, - cached_contents_count=4, + contents_count=4, ) str_repr = str(metadata) @@ -174,7 +174,7 @@ def test_immutability(self): expire_time=time.time() + 1800, fingerprint="abc123", invocations_used=5, - cached_contents_count=3, + contents_count=3, ) # Should not be able to modify fields @@ -188,7 +188,7 @@ def test_model_config(self): expire_time=time.time() + 1800, fingerprint="abc123", invocations_used=5, - cached_contents_count=3, + contents_count=3, ) assert metadata.model_config["extra"] == "forbid" @@ -201,7 +201,7 @@ def test_field_descriptions(self): expire_time=time.time() + 1800, fingerprint="abc123", invocations_used=5, - cached_contents_count=3, + contents_count=3, ) schema = metadata.model_json_schema() @@ -211,10 +211,10 @@ def test_field_descriptions(self): in schema["properties"]["invocations_used"]["description"] ) - assert "cached_contents_count" in schema["properties"] + assert "contents_count" in schema["properties"] assert ( "Number of contents" - in schema["properties"]["cached_contents_count"]["description"] + in schema["properties"]["contents_count"]["description"] ) def test_realistic_cache_scenarios(self): @@ -227,7 +227,7 @@ def test_realistic_cache_scenarios(self): expire_time=current_time + 1800, fingerprint="fresh_fingerprint", invocations_used=1, - cached_contents_count=5, + contents_count=5, created_at=current_time, ) assert fresh_cache.invocations_used == 1 @@ -239,7 +239,7 @@ def test_realistic_cache_scenarios(self): expire_time=current_time + 600, fingerprint="used_fingerprint", invocations_used=8, - cached_contents_count=3, + contents_count=3, created_at=current_time - 1200, ) assert used_cache.invocations_used == 8 @@ -252,7 +252,7 @@ def test_realistic_cache_scenarios(self): expire_time=current_time + 60, # 1 minute fingerprint="expiring_fingerprint", invocations_used=15, - cached_contents_count=10, + contents_count=10, ) assert expiring_cache.expire_soon @@ -265,7 +265,7 @@ def test_cache_name_extraction(self): expire_time=time.time() + 1800, fingerprint="abc123", invocations_used=1, - cached_contents_count=2, + contents_count=2, ) str_repr = str(metadata) @@ -278,7 +278,7 @@ def test_no_performance_metrics(self): expire_time=time.time() + 1800, fingerprint="abc123", invocations_used=5, - cached_contents_count=3, + contents_count=3, ) # Verify that token counts are NOT in CacheMetadata @@ -288,22 +288,17 @@ def test_no_performance_metrics(self): assert not hasattr(metadata, "prompt_tokens") def test_missing_required_fields(self): - """Test validation when required fields are missing.""" - # Test each required field + """Test validation when truly required fields are missing.""" + # Only fingerprint and contents_count are required now + # Other fields are optional (for fingerprint-only state) required_fields = [ - "cache_name", - "expire_time", "fingerprint", - "invocations_used", - "cached_contents_count", + "contents_count", ] base_args = { - "cache_name": "projects/123/locations/us-central1/cachedContents/456", - "expire_time": time.time() + 1800, "fingerprint": "abc123", - "invocations_used": 1, - "cached_contents_count": 2, + "contents_count": 2, } for field in required_fields: @@ -312,3 +307,13 @@ def test_missing_required_fields(self): with pytest.raises(ValidationError): CacheMetadata(**args) + + # Test that optional fields can be omitted (fingerprint-only state) + metadata = CacheMetadata( + fingerprint="abc123", + contents_count=5, + ) + assert metadata.cache_name is None + assert metadata.expire_time is None + assert metadata.invocations_used is None + assert metadata.created_at is None diff --git a/tests/unittests/models/test_google_llm.py b/tests/unittests/models/test_google_llm.py index 255a86e82a..1b5979bdf9 100644 --- a/tests/unittests/models/test_google_llm.py +++ b/tests/unittests/models/test_google_llm.py @@ -96,7 +96,7 @@ def cache_metadata(): expire_time=time.time() + 3600, fingerprint="test_fingerprint", invocations_used=2, - cached_contents_count=3, + contents_count=3, created_at=time.time() - 600, ) diff --git a/tests/unittests/utils/test_cache_performance_analyzer.py b/tests/unittests/utils/test_cache_performance_analyzer.py index 11c5e6ec56..b1ee58c6d1 100644 --- a/tests/unittests/utils/test_cache_performance_analyzer.py +++ b/tests/unittests/utils/test_cache_performance_analyzer.py @@ -36,7 +36,7 @@ def setup_method(self): self.analyzer = CachePerformanceAnalyzer(self.mock_session_service) def create_cache_metadata( - self, invocations_used=1, cache_name="test-cache", cached_contents_count=5 + self, invocations_used=1, cache_name="test-cache", contents_count=5 ): """Helper to create test CacheMetadata.""" return CacheMetadata( @@ -46,7 +46,7 @@ def create_cache_metadata( expire_time=time.time() + 1800, fingerprint="test_fingerprint", invocations_used=invocations_used, - cached_contents_count=cached_contents_count, + contents_count=contents_count, created_at=time.time() - 600, ) From 81913c85f4e5d0a705bfc6d14b0d75bf008f1d31 Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Thu, 9 Oct 2025 21:23:02 -0700 Subject: [PATCH 073/303] chore: Update README md with recent ADK features This CL updates the "What's new" section to include Resumability, ReflectRetryToolPlugin, Context compaction, and Search tool support. It also moves "Agent Config" and "Tool Confirmation" from "What's new" to "Key Features". PiperOrigin-RevId: 817469210 --- README.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index d4c5050349..98cfafbe9b 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Agent Development Kit (ADK) is a flexible and modular framework for developing a --- -## 🔥ADK's very first community call on Oct 15 +## 🔥 ADK's very first community call on Oct 15 Join our ADK Community Call! Our first virtual community call is on Oct 15! Meet our team, and talk with us about our roadmap and how to contribute. @@ -47,9 +47,7 @@ Add to your calendar Agenda: [Julia] ADK Roadmap - [ Bo & Hangfei] Eng Deep Dive: Context Caching - [Kris] How to Contribute [Shubham] Upcoming Events @@ -58,10 +56,13 @@ Agenda: ## 🔥 What's new -- **Agent Config**: Build agents without code. Check out the - [Agent Config](https://google.github.io/adk-docs/agents/config/) feature. +- **Context compaction**: Supports context compaction to reduce context length. Here is a [sample](https://github.com/google/adk-python/blob/main/contributing/samples/hello_world_app/agent.py#L156) and [compaction config](https://github.com/google/adk-python/blob/main/src/google/adk/apps/app.py#L51). + +- **Resumability**: Support pause and resume an invocation in ADK. -- **Tool Confirmation**: A [tool confirmation flow(HITL)](https://google.github.io/adk-docs/tools/confirmation/) that can guard tool execution with explicit confirmation and custom input +- **ReflectRetryToolPlugin**: Add [`ReflectRetryToolPlugin`](https://github.com/google/adk-python/blob/main/src/google/adk/plugins/reflect_retry_tool_plugin.py) to reflect from errors and retry with different arguments when tool errors. + +- **Search tool**: Support using Google built-in search and built-in `VertexAiSearchTool` with other tools in the same agent. ## ✨ Key Features @@ -72,6 +73,11 @@ Agenda: - **Code-First Development**: Define agent logic, tools, and orchestration directly in Python for ultimate flexibility, testability, and versioning. +- **Agent Config**: Build agents without code. Check out the + [Agent Config](https://google.github.io/adk-docs/agents/config/) feature. + +- **Tool Confirmation**: A [tool confirmation flow(HITL)](https://google.github.io/adk-docs/tools/confirmation/) that can guard tool execution with explicit confirmation and custom input. + - **Modular Multi-Agent Systems**: Design scalable applications by composing multiple specialized agents into flexible hierarchies. From 64646e0002a105f30852dfb6133bc0716fa1516e Mon Sep 17 00:00:00 2001 From: Ankur Sharma Date: Thu, 9 Oct 2025 22:01:50 -0700 Subject: [PATCH 074/303] chore: Remove deprecated static methods from TrajectoryEvaluator This change removes the `evaluate`, `_evaluate_row`, `are_tools_equal`, `_remove_tool_outputs`, `_report_failures`, and `_print_results` static methods from `TrajectoryEvaluator`, along with their corresponding unit tests. These methods were previously marked as deprecated. PiperOrigin-RevId: 817477494 --- .../adk/evaluation/trajectory_evaluator.py | 172 -------- .../evaluation/test_trajectory_evaluator.py | 405 +++++++----------- 2 files changed, 153 insertions(+), 424 deletions(-) diff --git a/src/google/adk/evaluation/trajectory_evaluator.py b/src/google/adk/evaluation/trajectory_evaluator.py index 9ea78a44db..4a5c71fd2f 100644 --- a/src/google/adk/evaluation/trajectory_evaluator.py +++ b/src/google/adk/evaluation/trajectory_evaluator.py @@ -14,13 +14,9 @@ from __future__ import annotations -from typing import Any from typing import Optional from google.genai import types as genai_types -import pandas as pd -from tabulate import tabulate -from typing_extensions import deprecated from typing_extensions import override from .eval_case import get_all_tool_calls @@ -30,7 +26,6 @@ from .eval_metrics import MetricInfo from .eval_metrics import MetricValueInfo from .eval_metrics import PrebuiltMetrics -from .evaluation_constants import EvalConstants from .evaluator import EvalStatus from .evaluator import EvaluationResult from .evaluator import Evaluator @@ -129,170 +124,3 @@ def _are_tool_calls_equal( def _get_eval_status(self, score: float): return EvalStatus.PASSED if score >= self._threshold else EvalStatus.FAILED - - @staticmethod - @deprecated( - "This method has been deprecated and will be removed soon. Please use" - " evaluate_invocations instead." - ) - def evaluate( - eval_dataset: list[list[dict[str, Any]]], - *, - print_detailed_results: bool = False, - ): - r"""Returns the mean tool use accuracy of the eval dataset. - - Tool use accuracy is calculated by comparing the expected and the actual - tool use trajectories. An exact match scores a 1, 0 otherwise. The final - number is an average of these individual scores. - - Value range: [0, 1], where 0 means none of the tool use entries aligned, - and 1 would mean all of them aligned. Higher value is good. - - Args: - eval_dataset: The dataset that will be evaluated. - print_detailed_results: Prints detailed results on the console. This is - usually helpful during debugging. - - A note on eval_dataset: - The dataset should be a list session, where each session is represented - as a list of interaction that need evaluation. Each evaluation is - represented as a dictionary that is expected to have values for the - following keys: - 1) query - 2) response - 3) acutal_tool_use - 4) expected_tool_use - - Here is a sample eval_dataset value with one entry: - - [ - [ - { - "query": "Roll a 16 sided dice for me", - "response": "I rolled a 16 sided die and got 13.\n", - "expected_tool_use": [ - { - "tool_name": "roll_die", - "tool_input": { - "sides": 16 - } - } - ], - "acutal_tool_use": [ - { - "tool_name": "roll_die", - "tool_input": { - "sides": 16 - } - } - ] - } - ] - ] - """ - if not eval_dataset: - raise ValueError("The evaluation dataset is empty.") - - results_df = pd.DataFrame( - columns=[ - "query", - "response", - "actual_tool_use", - "expected_tool_use", - "tool_use_accuracy", - ] - ) - failures = [] - - for conversation in eval_dataset: - for index, row in enumerate(conversation): - new_row, failure = TrajectoryEvaluator._evaluate_row(row) - results_df = pd.concat( - [results_df, pd.DataFrame([new_row])], ignore_index=True - ) - if failure: - failure["turn"] = index + 1 - failures.append(failure) - - TrajectoryEvaluator._report_failures(failures) - - if print_detailed_results: - TrajectoryEvaluator._print_results(results_df) - - return results_df["tool_use_accuracy"].mean() - - @staticmethod - def _evaluate_row(row): - # We don't evaluate the mock tool outputs. - expected = TrajectoryEvaluator._remove_tool_outputs( - row["expected_tool_use"] - ) - actual = row["actual_tool_use"] - tool_use_accuracy = ( - 1.0 if TrajectoryEvaluator.are_tools_equal(actual, expected) else 0.0 - ) - - new_row = { - "query": row["query"], - "response": row["response"], - "actual_tool_use": actual, - "expected_tool_use": expected, - "tool_use_accuracy": tool_use_accuracy, - } - failure = ( - None - if tool_use_accuracy == 1.0 - else {"query": row["query"], "actual": actual, "expected": expected} - ) - return new_row, failure - - @staticmethod - @deprecated( - "are_tools_equal is deprecated and will be removed soon. Please use" - " TrajectoryEvaluator._are_tool_calls_equal instead." - ) - def are_tools_equal(list_a_original, list_b_original): - # Remove other entries that we don't want to evaluate - list_a = [ - {"tool_name": tool["tool_name"], "tool_input": tool["tool_input"]} - for tool in list_a_original - ] - - list_b = [ - {"tool_name": tool["tool_name"], "tool_input": tool["tool_input"]} - for tool in list_b_original - ] - - return list_a == list_b - - @staticmethod - def _remove_tool_outputs(tool_use_list): - """Removes 'mock_tool_output' from each dictionary in the list.""" - result = [] - for tool_use in tool_use_list: - new_tool_use = ( - tool_use.copy() - ) # Create a copy to avoid modifying the original - new_tool_use.pop( - EvalConstants.MOCK_TOOL_OUTPUT, None - ) # Remove 'tool_output' if it exists - result.append(new_tool_use) - return result - - @staticmethod - def _report_failures(failures): - if failures: - print("Failures:") - for failure in failures: - print(f"""{{ - "turn": {failure["turn"]}, - "query": '{failure["query"]}', - "actual": {failure["actual"]}, - "expected_tool_use": {failure["expected"]}, -}} -""") - - @staticmethod - def _print_results(results_df): - print(tabulate(results_df, headers="keys", tablefmt="grid")) diff --git a/tests/unittests/evaluation/test_trajectory_evaluator.py b/tests/unittests/evaluation/test_trajectory_evaluator.py index a8053dd13d..2f20b7ebb7 100644 --- a/tests/unittests/evaluation/test_trajectory_evaluator.py +++ b/tests/unittests/evaluation/test_trajectory_evaluator.py @@ -14,263 +14,18 @@ """Testings for the Trajectory Evaluator.""" -import math +from google.adk.evaluation.eval_case import IntermediateData +from google.adk.evaluation.eval_case import Invocation from google.adk.evaluation.eval_metrics import PrebuiltMetrics +from google.adk.evaluation.evaluator import EvalStatus from google.adk.evaluation.trajectory_evaluator import TrajectoryEvaluator +from google.genai import types as genai_types import pytest -# Define reusable tool call structures -TOOL_ROLL_DICE_16 = {"tool_name": "roll_die", "tool_input": {"sides": 16}} -TOOL_ROLL_DICE_6 = {"tool_name": "roll_die", "tool_input": {"sides": 6}} -TOOL_GET_WEATHER = { - "tool_name": "get_weather", - "tool_input": {"location": "Paris"}, -} -TOOL_GET_WEATHER_SF = { - "tool_name": "get_weather", - "tool_input": {"location": "SF"}, -} - -# Sample data for turns -TURN_MATCH = { - "query": "Q1", - "response": "R1", - "actual_tool_use": [TOOL_ROLL_DICE_16], - "expected_tool_use": [TOOL_ROLL_DICE_16], -} -TURN_MISMATCH_INPUT = { - "query": "Q2", - "response": "R2", - "actual_tool_use": [TOOL_ROLL_DICE_6], - "expected_tool_use": [TOOL_ROLL_DICE_16], -} -TURN_MISMATCH_NAME = { - "query": "Q3", - "response": "R3", - "actual_tool_use": [TOOL_GET_WEATHER], - "expected_tool_use": [TOOL_ROLL_DICE_16], -} -TURN_MATCH_MULTIPLE = { - "query": "Q4", - "response": "R4", - "actual_tool_use": [TOOL_GET_WEATHER, TOOL_ROLL_DICE_6], - "expected_tool_use": [TOOL_GET_WEATHER, TOOL_ROLL_DICE_6], -} -TURN_MISMATCH_ORDER = { - "query": "Q5", - "response": "R5", - "actual_tool_use": [TOOL_ROLL_DICE_6, TOOL_GET_WEATHER], - "expected_tool_use": [TOOL_GET_WEATHER, TOOL_ROLL_DICE_6], -} -TURN_MISMATCH_LENGTH_ACTUAL_LONGER = { - "query": "Q6", - "response": "R6", - "actual_tool_use": [TOOL_GET_WEATHER, TOOL_ROLL_DICE_6], - "expected_tool_use": [TOOL_GET_WEATHER], -} -TURN_MISMATCH_LENGTH_EXPECTED_LONGER = { - "query": "Q7", - "response": "R7", - "actual_tool_use": [TOOL_GET_WEATHER], - "expected_tool_use": [TOOL_GET_WEATHER, TOOL_ROLL_DICE_6], -} -TURN_MATCH_WITH_MOCK_OUTPUT = { - "query": "Q8", - "response": "R8", - "actual_tool_use": [TOOL_GET_WEATHER_SF], - "expected_tool_use": [ - {**TOOL_GET_WEATHER_SF, "mock_tool_output": "Sunny"} - ], # Add mock output to expected -} -TURN_MATCH_EMPTY_TOOLS = { - "query": "Q9", - "response": "R9", - "actual_tool_use": [], - "expected_tool_use": [], -} -TURN_MISMATCH_EMPTY_VS_NONEMPTY = { - "query": "Q10", - "response": "R10", - "actual_tool_use": [], - "expected_tool_use": [TOOL_GET_WEATHER], -} - - -def test_evaluate_none_dataset_raises_value_error(): - """Tests evaluate function raises ValueError for an empty list.""" - with pytest.raises(ValueError, match="The evaluation dataset is empty."): - TrajectoryEvaluator.evaluate(None) - - -def test_evaluate_empty_dataset_raises_value_error(): - """Tests evaluate function raises ValueError for an empty list.""" - with pytest.raises(ValueError, match="The evaluation dataset is empty."): - TrajectoryEvaluator.evaluate([]) - - -def test_evaluate_single_turn_match(): - """Tests evaluate function with one conversation, one turn, perfect match.""" - eval_dataset = [[TURN_MATCH]] - assert TrajectoryEvaluator.evaluate(eval_dataset) == 1.0 - - -def test_evaluate_single_turn_mismatch(): - """Tests evaluate function with one conversation, one turn, mismatch.""" - eval_dataset = [[TURN_MISMATCH_INPUT]] - assert TrajectoryEvaluator.evaluate(eval_dataset) == 0.0 - - -def test_evaluate_multiple_turns_all_match(): - """Tests evaluate function with one conversation, multiple turns, all match.""" - eval_dataset = [[TURN_MATCH, TURN_MATCH_MULTIPLE, TURN_MATCH_EMPTY_TOOLS]] - assert TrajectoryEvaluator.evaluate(eval_dataset) == 1.0 - - -def test_evaluate_multiple_turns_mixed(): - """Tests evaluate function with one conversation, mixed match/mismatch turns.""" - eval_dataset = [ - [TURN_MATCH, TURN_MISMATCH_NAME, TURN_MATCH_MULTIPLE, TURN_MISMATCH_ORDER] - ] - # Expected: (1.0 + 0.0 + 1.0 + 0.0) / 4 = 0.5 - assert TrajectoryEvaluator.evaluate(eval_dataset) == 0.5 - - -def test_evaluate_multiple_conversations_mixed(): - """Tests evaluate function with multiple conversations, mixed turns.""" - eval_dataset = [ - [TURN_MATCH, TURN_MISMATCH_INPUT], # Conv 1: 1.0, 0.0 -> Avg 0.5 - [TURN_MATCH_MULTIPLE], # Conv 2: 1.0 -> Avg 1.0 - [ - TURN_MISMATCH_ORDER, - TURN_MISMATCH_LENGTH_ACTUAL_LONGER, - TURN_MATCH, - ], # Conv 3: 0.0, 0.0, 1.0 -> Avg 1/3 - ] - # Expected: (1.0 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0) / 6 = 3.0 / 6 = 0.5 - assert TrajectoryEvaluator.evaluate(eval_dataset) == 0.5 - - -def test_evaluate_ignores_mock_tool_output_in_expected(): - """Tests evaluate function correctly compares even if expected has mock_tool_output.""" - eval_dataset = [[TURN_MATCH_WITH_MOCK_OUTPUT]] - assert TrajectoryEvaluator.evaluate(eval_dataset) == 1.0 - - -def test_evaluate_match_empty_tool_lists(): - """Tests evaluate function correctly matches empty tool lists.""" - eval_dataset = [[TURN_MATCH_EMPTY_TOOLS]] - assert TrajectoryEvaluator.evaluate(eval_dataset) == 1.0 - - -def test_evaluate_mismatch_empty_vs_nonempty(): - """Tests evaluate function correctly mismatches empty vs non-empty tool lists.""" - eval_dataset = [[TURN_MISMATCH_EMPTY_VS_NONEMPTY]] - assert TrajectoryEvaluator.evaluate(eval_dataset) == 0.0 - eval_dataset_rev = [[{ - **TURN_MISMATCH_EMPTY_VS_NONEMPTY, # Swap actual/expected - "actual_tool_use": [TOOL_GET_WEATHER], - "expected_tool_use": [], - }]] - assert TrajectoryEvaluator.evaluate(eval_dataset_rev) == 0.0 - - -def test_evaluate_dataset_with_empty_conversation(): - """Tests evaluate function handles dataset containing an empty conversation list.""" - eval_dataset = [[TURN_MATCH], []] # One valid conversation, one empty - # Should only evaluate the first conversation -> 1.0 / 1 turn = 1.0 - assert TrajectoryEvaluator.evaluate(eval_dataset) == 1.0 - - -def test_evaluate_dataset_only_empty_conversation(): - """Tests evaluate function handles dataset with only an empty conversation.""" - eval_dataset = [[]] - # No rows evaluated, mean of empty series is NaN - # Depending on desired behavior, this could be 0.0 or NaN. The code returns - # NaN. - assert math.isnan(TrajectoryEvaluator.evaluate(eval_dataset)) - - -def test_evaluate_print_detailed_results(capsys): - """Tests evaluate function runs with print_detailed_results=True and prints something.""" - eval_dataset = [[TURN_MATCH, TURN_MISMATCH_INPUT]] - TrajectoryEvaluator.evaluate(eval_dataset, print_detailed_results=True) - captured = capsys.readouterr() - assert "query" in captured.out # Check if the results table header is printed - assert "R1" in captured.out # Check if some data is printed - assert "Failures:" in captured.out # Check if failures header is printed - assert "Q2" in captured.out # Check if the failing query is printed - - -def test_evaluate_no_failures_print(capsys): - """Tests evaluate function does not print Failures section when all turns match.""" - eval_dataset = [[TURN_MATCH]] - TrajectoryEvaluator.evaluate(eval_dataset, print_detailed_results=True) - captured = capsys.readouterr() - assert "query" in captured.out # Results table should still print - assert "Failures:" not in captured.out # Failures section should NOT print - - -def test_are_tools_equal_identical(): - """Tests are_tools_equal function with identical lists.""" - list_a = [TOOL_GET_WEATHER, TOOL_ROLL_DICE_6] - list_b = [TOOL_GET_WEATHER, TOOL_ROLL_DICE_6] - assert TrajectoryEvaluator.are_tools_equal(list_a, list_b) - - -def test_are_tools_equal_empty(): - """Tests are_tools_equal function with empty lists.""" - assert TrajectoryEvaluator.are_tools_equal([], []) - - -def test_are_tools_equal_different_order(): - """Tests are_tools_equal function with same tools, different order.""" - list_a = [TOOL_ROLL_DICE_6, TOOL_GET_WEATHER] - list_b = [TOOL_GET_WEATHER, TOOL_ROLL_DICE_6] - assert not TrajectoryEvaluator.are_tools_equal(list_a, list_b) - - -def test_are_tools_equal_different_length(): - """Tests are_tools_equal function with lists of different lengths.""" - list_a = [TOOL_GET_WEATHER, TOOL_ROLL_DICE_6] - list_b = [TOOL_GET_WEATHER] - assert not TrajectoryEvaluator.are_tools_equal(list_a, list_b) - - -def test_are_tools_equal_different_input_values(): - """Tests are_tools_equal function with different input values.""" - list_a = [TOOL_ROLL_DICE_16] - list_b = [TOOL_ROLL_DICE_6] - assert not TrajectoryEvaluator.are_tools_equal(list_a, list_b) - - -def test_are_tools_equal_different_tool_names(): - """Tests are_tools_equal function with different tool names.""" - list_a = [TOOL_ROLL_DICE_16] - list_b = [TOOL_GET_WEATHER] - assert not TrajectoryEvaluator.are_tools_equal(list_a, list_b) - - -def test_are_tools_equal_ignores_extra_keys(): - """Tests are_tools_equal function ignores keys other than tool_name/tool_input.""" - list_a = [{ - "tool_name": "get_weather", - "tool_input": {"location": "Paris"}, - "extra_key": "abc", - }] - list_b = [{ - "tool_name": "get_weather", - "tool_input": {"location": "Paris"}, - "other_key": 123, - }] - assert TrajectoryEvaluator.are_tools_equal(list_a, list_b) - - -def test_are_tools_equal_one_empty_one_not(): - """Tests are_tools_equal function with one empty list and one non-empty list.""" - list_a = [] - list_b = [TOOL_GET_WEATHER] - assert not TrajectoryEvaluator.are_tools_equal(list_a, list_b) +_USER_CONTENT = genai_types.Content( + parts=[genai_types.Part(text="User input here.")] +) def test_get_metric_info(): @@ -281,3 +36,149 @@ def test_get_metric_info(): ) assert metric_info.metric_value_info.interval.min_value == 0.0 assert metric_info.metric_value_info.interval.max_value == 1.0 + + +@pytest.fixture +def evaluator() -> TrajectoryEvaluator: + """Returns a TrajectoryEvaluator.""" + return TrajectoryEvaluator(threshold=0.5) + + +def test_evaluate_invocations_equal_tool_calls(evaluator: TrajectoryEvaluator): + """Tests evaluate_invocations with equal tool calls.""" + tool_call = genai_types.FunctionCall(name="test_func", args={"arg1": "val1"}) + intermediate_data = IntermediateData(tool_uses=[tool_call]) + invocation = Invocation( + user_content=_USER_CONTENT, intermediate_data=intermediate_data + ) + result = evaluator.evaluate_invocations([invocation], [invocation]) + assert result.overall_score == 1.0 + assert result.overall_eval_status == EvalStatus.PASSED + assert len(result.per_invocation_results) == 1 + assert result.per_invocation_results[0].score == 1.0 + assert result.per_invocation_results[0].eval_status == EvalStatus.PASSED + + +def test_evaluate_invocations_different_tool_call_names( + evaluator: TrajectoryEvaluator, +): + """Tests evaluate_invocations with different tool call names.""" + tool_call1 = genai_types.FunctionCall( + name="test_func1", args={"arg1": "val1"} + ) + tool_call2 = genai_types.FunctionCall( + name="test_func2", args={"arg1": "val1"} + ) + invocation1 = Invocation( + user_content=_USER_CONTENT, + intermediate_data=IntermediateData(tool_uses=[tool_call1]), + ) + invocation2 = Invocation( + user_content=_USER_CONTENT, + intermediate_data=IntermediateData(tool_uses=[tool_call2]), + ) + result = evaluator.evaluate_invocations([invocation1], [invocation2]) + assert result.overall_score == 0.0 + assert result.overall_eval_status == EvalStatus.FAILED + assert result.per_invocation_results[0].score == 0.0 + assert result.per_invocation_results[0].eval_status == EvalStatus.FAILED + + +def test_evaluate_invocations_different_tool_call_args( + evaluator: TrajectoryEvaluator, +): + """Tests evaluate_invocations with different tool call args.""" + tool_call1 = genai_types.FunctionCall(name="test_func", args={"arg1": "val1"}) + tool_call2 = genai_types.FunctionCall(name="test_func", args={"arg1": "val2"}) + invocation1 = Invocation( + user_content=_USER_CONTENT, + intermediate_data=IntermediateData(tool_uses=[tool_call1]), + ) + invocation2 = Invocation( + user_content=_USER_CONTENT, + intermediate_data=IntermediateData(tool_uses=[tool_call2]), + ) + result = evaluator.evaluate_invocations([invocation1], [invocation2]) + assert result.overall_score == 0.0 + assert result.overall_eval_status == EvalStatus.FAILED + assert result.per_invocation_results[0].score == 0.0 + assert result.per_invocation_results[0].eval_status == EvalStatus.FAILED + + +def test_evaluate_invocations_different_number_of_tool_calls( + evaluator: TrajectoryEvaluator, +): + """Tests evaluate_invocations with different number of tool calls.""" + tool_call1 = genai_types.FunctionCall(name="test_func", args={"arg1": "val1"}) + tool_call2 = genai_types.FunctionCall(name="test_func", args={"arg1": "val1"}) + invocation1 = Invocation( + user_content=_USER_CONTENT, + intermediate_data=IntermediateData(tool_uses=[tool_call1]), + ) + invocation2 = Invocation( + user_content=_USER_CONTENT, + intermediate_data=IntermediateData(tool_uses=[tool_call1, tool_call2]), + ) + result = evaluator.evaluate_invocations([invocation1], [invocation2]) + assert result.overall_score == 0.0 + assert result.overall_eval_status == EvalStatus.FAILED + assert result.per_invocation_results[0].score == 0.0 + assert result.per_invocation_results[0].eval_status == EvalStatus.FAILED + + +def test_evaluate_invocations_no_tool_calls(evaluator: TrajectoryEvaluator): + """Tests evaluate_invocations with no tool calls.""" + invocation = Invocation( + user_content=_USER_CONTENT, intermediate_data=IntermediateData() + ) + result = evaluator.evaluate_invocations([invocation], [invocation]) + assert result.overall_score == 1.0 + assert result.overall_eval_status == EvalStatus.PASSED + assert result.per_invocation_results[0].score == 1.0 + assert result.per_invocation_results[0].eval_status == EvalStatus.PASSED + + +def test_evaluate_invocations_multiple_invocations( + evaluator: TrajectoryEvaluator, +): + """Tests evaluate_invocations with multiple invocations.""" + tool_call1 = genai_types.FunctionCall( + name="test_func1", args={"arg1": "val1"} + ) + tool_call2 = genai_types.FunctionCall( + name="test_func2", args={"arg1": "val1"} + ) + inv1_actual = Invocation( + user_content=_USER_CONTENT, + intermediate_data=IntermediateData(tool_uses=[tool_call1]), + ) + inv1_expected = Invocation( + user_content=_USER_CONTENT, + intermediate_data=IntermediateData(tool_uses=[tool_call1]), + ) + inv2_actual = Invocation( + user_content=_USER_CONTENT, + intermediate_data=IntermediateData(tool_uses=[tool_call1]), + ) + inv2_expected = Invocation( + user_content=_USER_CONTENT, + intermediate_data=IntermediateData(tool_uses=[tool_call2]), + ) + result = evaluator.evaluate_invocations( + [inv1_actual, inv2_actual], [inv1_expected, inv2_expected] + ) + assert result.overall_score == 0.5 + assert result.overall_eval_status == EvalStatus.PASSED + assert len(result.per_invocation_results) == 2 + assert result.per_invocation_results[0].score == 1.0 + assert result.per_invocation_results[0].eval_status == EvalStatus.PASSED + assert result.per_invocation_results[1].score == 0.0 + assert result.per_invocation_results[1].eval_status == EvalStatus.FAILED + + +def test_evaluate_invocations_no_invocations(evaluator: TrajectoryEvaluator): + """Tests evaluate_invocations with no invocations.""" + result = evaluator.evaluate_invocations([], []) + assert result.overall_score is None + assert result.overall_eval_status == EvalStatus.NOT_EVALUATED + assert not result.per_invocation_results From 9a6b8507f06d8367488aac653efecf665619516c Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Thu, 9 Oct 2025 23:04:21 -0700 Subject: [PATCH 075/303] feat: Add `bypass_multi_tools_limit` option to GoogleSearchTool and VertexAiSearchTool PiperOrigin-RevId: 817493869 --- src/google/adk/agents/llm_agent.py | 27 ++++++----- src/google/adk/tools/google_search_tool.py | 10 +++- src/google/adk/tools/vertex_ai_search_tool.py | 6 +++ .../unittests/agents/test_llm_agent_fields.py | 46 ++++++++++++++++++- 4 files changed, 74 insertions(+), 15 deletions(-) diff --git a/src/google/adk/agents/llm_agent.py b/src/google/adk/agents/llm_agent.py index ccc8daaf28..c143568252 100644 --- a/src/google/adk/agents/llm_agent.py +++ b/src/google/adk/agents/llm_agent.py @@ -118,17 +118,19 @@ async def _convert_tool_union_to_tools( model: Union[str, BaseLlm], multiple_tools: bool = False, ) -> list[BaseTool]: - from ..tools.google_search_tool import google_search + from ..tools.google_search_tool import GoogleSearchTool from ..tools.vertex_ai_search_tool import VertexAiSearchTool # Wrap google_search tool with AgentTool if there are multiple tools because # the built-in tools cannot be used together with other tools. # TODO(b/448114567): Remove once the workaround is no longer needed. - if multiple_tools and tool_union is google_search: + if multiple_tools and isinstance(tool_union, GoogleSearchTool): from ..tools.google_search_agent_tool import create_google_search_agent from ..tools.google_search_agent_tool import GoogleSearchAgentTool - return [GoogleSearchAgentTool(create_google_search_agent(model))] + search_tool = cast(GoogleSearchTool, tool_union) + if search_tool.bypass_multi_tools_limit: + return [GoogleSearchAgentTool(create_google_search_agent(model))] # Replace VertexAiSearchTool with DiscoveryEngineSearchTool if there are # multiple tools because the built-in tools cannot be used together with @@ -138,15 +140,16 @@ async def _convert_tool_union_to_tools( from ..tools.discovery_engine_search_tool import DiscoveryEngineSearchTool vais_tool = cast(VertexAiSearchTool, tool_union) - return [ - DiscoveryEngineSearchTool( - data_store_id=vais_tool.data_store_id, - data_store_specs=vais_tool.data_store_specs, - search_engine_id=vais_tool.search_engine_id, - filter=vais_tool.filter, - max_results=vais_tool.max_results, - ) - ] + if vais_tool.bypass_multi_tools_limit: + return [ + DiscoveryEngineSearchTool( + data_store_id=vais_tool.data_store_id, + data_store_specs=vais_tool.data_store_specs, + search_engine_id=vais_tool.search_engine_id, + filter=vais_tool.filter, + max_results=vais_tool.max_results, + ) + ] if isinstance(tool_union, BaseTool): return [tool_union] diff --git a/src/google/adk/tools/google_search_tool.py b/src/google/adk/tools/google_search_tool.py index 4f64bc4a14..80941ab864 100644 --- a/src/google/adk/tools/google_search_tool.py +++ b/src/google/adk/tools/google_search_tool.py @@ -35,9 +35,17 @@ class GoogleSearchTool(BaseTool): local code execution. """ - def __init__(self): + def __init__(self, *, bypass_multi_tools_limit: bool = True): + """Initializes the Google search tool. + + Args: + bypass_multi_tools_limit: Whether to bypass the multi tools limitation, + so that the tool can be used with other tools in the same agent. + """ + # Name and description are not used because this is a model built-in tool. super().__init__(name='google_search', description='google_search') + self.bypass_multi_tools_limit = bypass_multi_tools_limit @override async def process_llm_request( diff --git a/src/google/adk/tools/vertex_ai_search_tool.py b/src/google/adk/tools/vertex_ai_search_tool.py index 1a658ef62c..e19bd22274 100644 --- a/src/google/adk/tools/vertex_ai_search_tool.py +++ b/src/google/adk/tools/vertex_ai_search_tool.py @@ -47,6 +47,7 @@ def __init__( search_engine_id: Optional[str] = None, filter: Optional[str] = None, max_results: Optional[int] = None, + bypass_multi_tools_limit: bool = True, ): """Initializes the Vertex AI Search tool. @@ -58,6 +59,10 @@ def __init__( searched. It should only be set if engine is used. search_engine_id: The Vertex AI search engine resource ID in the format of "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}". + filter: The filter to apply to the search results. + max_results: The maximum number of results to return. + bypass_multi_tools_limit: Whether to bypass the multi tools limitation, + so that the tool can be used with other tools in the same agent. Raises: ValueError: If both data_store_id and search_engine_id are not specified @@ -80,6 +85,7 @@ def __init__( self.search_engine_id = search_engine_id self.filter = filter self.max_results = max_results + self.bypass_multi_tools_limit = bypass_multi_tools_limit @override async def process_llm_request( diff --git a/tests/unittests/agents/test_llm_agent_fields.py b/tests/unittests/agents/test_llm_agent_fields.py index 9dcac9c844..5523a34af1 100644 --- a/tests/unittests/agents/test_llm_agent_fields.py +++ b/tests/unittests/agents/test_llm_agent_fields.py @@ -26,6 +26,7 @@ from google.adk.models.registry import LLMRegistry from google.adk.sessions.in_memory_session_service import InMemorySessionService from google.adk.tools.google_search_tool import google_search +from google.adk.tools.google_search_tool import GoogleSearchTool from google.adk.tools.vertex_ai_search_tool import VertexAiSearchTool from google.genai import types from pydantic import BaseModel @@ -310,6 +311,25 @@ async def test_handle_google_search_with_other_tools(self): assert tools[1].name == 'google_search_agent' assert tools[1].__class__.__name__ == 'GoogleSearchAgentTool' + async def test_handle_google_search_with_other_tools_no_bypass(self): + """Test that google_search is not wrapped into an agent.""" + agent = LlmAgent( + name='test_agent', + model='gemini-pro', + tools=[ + self._my_tool, + GoogleSearchTool(bypass_multi_tools_limit=False), + ], + ) + ctx = await _create_readonly_context(agent) + tools = await agent.canonical_tools(ctx) + + assert len(tools) == 2 + assert tools[0].name == '_my_tool' + assert tools[0].__class__.__name__ == 'FunctionTool' + assert tools[1].name == 'google_search' + assert tools[1].__class__.__name__ == 'GoogleSearchTool' + async def test_handle_google_search_only(self): """Test that google_search is not wrapped into an agent.""" agent = LlmAgent( @@ -346,8 +366,8 @@ async def test_function_tool_only(self): 'google.auth.default', mock.MagicMock(return_value=('credentials', 'project')), ) - async def test_handle_google_vais_with_other_tools(self): - """Test that VertexAiSearchTool is wrapped into an agent.""" + async def test_handle_vais_with_other_tools(self): + """Test that VertexAiSearchTool is replaced with Discovery Engine Search.""" agent = LlmAgent( name='test_agent', model='gemini-pro', @@ -365,6 +385,28 @@ async def test_handle_google_vais_with_other_tools(self): assert tools[1].name == 'discovery_engine_search' assert tools[1].__class__.__name__ == 'DiscoveryEngineSearchTool' + async def test_handle_vais_with_other_tools_no_bypass(self): + """Test that VertexAiSearchTool is not replaced.""" + agent = LlmAgent( + name='test_agent', + model='gemini-pro', + tools=[ + self._my_tool, + VertexAiSearchTool( + data_store_id='test_data_store_id', + bypass_multi_tools_limit=False, + ), + ], + ) + ctx = await _create_readonly_context(agent) + tools = await agent.canonical_tools(ctx) + + assert len(tools) == 2 + assert tools[0].name == '_my_tool' + assert tools[0].__class__.__name__ == 'FunctionTool' + assert tools[1].name == 'vertex_ai_search' + assert tools[1].__class__.__name__ == 'VertexAiSearchTool' + async def test_handle_vais_only(self): """Test that VertexAiSearchTool is not wrapped into an agent.""" agent = LlmAgent( From 998264a5b1b98ac660fcc1359fb2d25c84fa0d87 Mon Sep 17 00:00:00 2001 From: Ankur Sharma Date: Fri, 10 Oct 2025 08:37:46 -0700 Subject: [PATCH 076/303] fix: Only exclude scores that are None Scores with values 0 (or 0.0) were also getting excluded. PiperOrigin-RevId: 817658059 --- src/google/adk/evaluation/agent_evaluator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/google/adk/evaluation/agent_evaluator.py b/src/google/adk/evaluation/agent_evaluator.py index 7de82ef115..049d2bf71c 100644 --- a/src/google/adk/evaluation/agent_evaluator.py +++ b/src/google/adk/evaluation/agent_evaluator.py @@ -629,7 +629,7 @@ def _process_metrics_and_get_failures( scores = [ m.eval_metric_result.score for m in eval_metric_results_with_invocations - if m.eval_metric_result.score + if m.eval_metric_result.score is not None ] if scores: From 85ed500871ff55c74d16e809ddae0d4db66cbc3a Mon Sep 17 00:00:00 2001 From: George Weale Date: Fri, 10 Oct 2025 08:38:47 -0700 Subject: [PATCH 077/303] fix: Add support for file URIs in LiteLLM content conversion to fix issue #3131 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit changed the LiteLLM content conversion so Part.file_data.file_uri (like the gs://…) becomes a file object with file_id, making sure GCS-backed files reach LiteLLM proxies instead of being dropped add unit tests covering both _get_content and _content_to_message_param paths for file URIs PiperOrigin-RevId: 817658432 --- src/google/adk/models/lite_llm.py | 13 ++++++- tests/unittests/models/test_litellm.py | 54 ++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 1 deletion(-) diff --git a/src/google/adk/models/lite_llm.py b/src/google/adk/models/lite_llm.py index d8b4d7ce81..94d9831c39 100644 --- a/src/google/adk/models/lite_llm.py +++ b/src/google/adk/models/lite_llm.py @@ -65,8 +65,9 @@ _EXCLUDED_PART_FIELD = {"inline_data": {"data"}} -class ChatCompletionFileUrlObject(TypedDict): +class ChatCompletionFileUrlObject(TypedDict, total=False): file_data: str + file_id: str format: str @@ -281,6 +282,16 @@ def _get_content( }) else: raise ValueError("LiteLlm(BaseLlm) does not support this content part.") + elif part.file_data and part.file_data.file_uri: + file_object: ChatCompletionFileUrlObject = { + "file_id": part.file_data.file_uri, + } + if part.file_data.mime_type: + file_object["format"] = part.file_data.mime_type + content_objects.append({ + "type": "file", + "file": file_object, + }) return content_objects diff --git a/tests/unittests/models/test_litellm.py b/tests/unittests/models/test_litellm.py index 84fd7f26d0..2fbacc0f1b 100644 --- a/tests/unittests/models/test_litellm.py +++ b/tests/unittests/models/test_litellm.py @@ -1005,6 +1005,47 @@ def test_content_to_message_param_user_message(): assert message["content"] == "Test prompt" +def test_content_to_message_param_user_message_with_file_uri(): + file_part = types.Part.from_uri( + file_uri="gs://bucket/document.pdf", mime_type="application/pdf" + ) + content = types.Content( + role="user", + parts=[ + types.Part.from_text(text="Summarize this file."), + file_part, + ], + ) + + message = _content_to_message_param(content) + assert message["role"] == "user" + assert isinstance(message["content"], list) + assert message["content"][0]["type"] == "text" + assert message["content"][0]["text"] == "Summarize this file." + assert message["content"][1]["type"] == "file" + assert message["content"][1]["file"]["file_id"] == "gs://bucket/document.pdf" + assert message["content"][1]["file"]["format"] == "application/pdf" + + +def test_content_to_message_param_user_message_file_uri_only(): + file_part = types.Part.from_uri( + file_uri="gs://bucket/only.pdf", mime_type="application/pdf" + ) + content = types.Content( + role="user", + parts=[ + file_part, + ], + ) + + message = _content_to_message_param(content) + assert message["role"] == "user" + assert isinstance(message["content"], list) + assert message["content"][0]["type"] == "file" + assert message["content"][0]["file"]["file_id"] == "gs://bucket/only.pdf" + assert message["content"][0]["file"]["format"] == "application/pdf" + + def test_content_to_message_param_multi_part_function_response(): part1 = types.Part.from_function_response( name="function_one", @@ -1183,6 +1224,19 @@ def test_get_content_pdf(): assert content[0]["file"]["format"] == "application/pdf" +def test_get_content_file_uri(): + parts = [ + types.Part.from_uri( + file_uri="gs://bucket/document.pdf", + mime_type="application/pdf", + ) + ] + content = _get_content(parts) + assert content[0]["type"] == "file" + assert content[0]["file"]["file_id"] == "gs://bucket/document.pdf" + assert content[0]["file"]["format"] == "application/pdf" + + def test_get_content_audio(): parts = [ types.Part.from_bytes(data=b"test_audio_data", mime_type="audio/mpeg") From bddc70b5d004ba5304fe05bcbf6e08210f0e6131 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Fri, 10 Oct 2025 09:46:12 -0700 Subject: [PATCH 078/303] fix: Better handling the A2A streaming tasks so calling Agent can tell whether it's in progress updates (thought) or the final response PiperOrigin-RevId: 817682171 --- src/google/adk/agents/remote_a2a_agent.py | 12 + .../unittests/agents/test_remote_a2a_agent.py | 205 +++++++++++++++++- 2 files changed, 212 insertions(+), 5 deletions(-) diff --git a/src/google/adk/agents/remote_a2a_agent.py b/src/google/adk/agents/remote_a2a_agent.py index 30da849c36..6c532dff93 100644 --- a/src/google/adk/agents/remote_a2a_agent.py +++ b/src/google/adk/agents/remote_a2a_agent.py @@ -37,6 +37,7 @@ from a2a.types import Part as A2APart from a2a.types import Role from a2a.types import TaskArtifactUpdateEvent as A2ATaskArtifactUpdateEvent + from a2a.types import TaskState from a2a.types import TaskStatusUpdateEvent as A2ATaskStatusUpdateEvent from a2a.types import TransportProtocol as A2ATransport except ImportError as e: @@ -414,14 +415,25 @@ async def _handle_a2a_response( # response for a non-streaming task, which is the full task state. # We process this to get the initial message. event = convert_a2a_task_to_event(task, self.name, ctx) + # for streaming task, we update the event with the task status. + # We update the event as Thought updates. + if task and task.status and task.status.state == TaskState.submitted: + event.content.parts[0].thought = True elif ( isinstance(update, A2ATaskStatusUpdateEvent) + and update.status and update.status.message ): # This is a streaming task status update with a message. event = convert_a2a_message_to_event( update.status.message, self.name, ctx ) + if event.content and update.status.state in [ + TaskState.submitted, + TaskState.working, + ]: + for part in event.content.parts: + part.thought = True elif isinstance(update, A2ATaskArtifactUpdateEvent) and ( not update.append or update.last_chunk ): diff --git a/tests/unittests/agents/test_remote_a2a_agent.py b/tests/unittests/agents/test_remote_a2a_agent.py index 735ec6ab17..597b5f1b51 100644 --- a/tests/unittests/agents/test_remote_a2a_agent.py +++ b/tests/unittests/agents/test_remote_a2a_agent.py @@ -23,6 +23,7 @@ from google.adk.events.event import Event from google.adk.sessions.session import Session +from google.genai import types as genai_types import httpx import pytest @@ -41,12 +42,14 @@ from a2a.types import AgentSkill from a2a.types import Artifact from a2a.types import Message as A2AMessage + from a2a.types import Part as A2ATaskStatus from a2a.types import SendMessageSuccessResponse from a2a.types import Task as A2ATask from a2a.types import TaskArtifactUpdateEvent from a2a.types import TaskState from a2a.types import TaskStatus from a2a.types import TaskStatusUpdateEvent + from a2a.types import TextPart from google.adk.agents.invocation_context import InvocationContext from google.adk.agents.remote_a2a_agent import A2A_METADATA_PREFIX from google.adk.agents.remote_a2a_agent import AgentCardResolutionError @@ -693,17 +696,21 @@ async def test_handle_a2a_response_success_with_message(self): assert A2A_METADATA_PREFIX + "context_id" in result.custom_metadata @pytest.mark.asyncio - async def test_handle_a2a_response_with_task_and_no_update(self): - """Test successful A2A response handling with task and no update.""" + async def test_handle_a2a_response_with_task_completed_and_no_update(self): + """Test successful A2A response handling with non-streeaming task and no update.""" mock_a2a_task = Mock(spec=A2ATask) mock_a2a_task.id = "task-123" mock_a2a_task.context_id = "context-123" + mock_a2a_task.status = Mock(spec=A2ATaskStatus) + mock_a2a_task.status.state = TaskState.completed # Create a proper Event mock that can handle custom_metadata + mock_a2a_part = Mock(spec=TextPart) mock_event = Event( author=self.agent.name, invocation_id=self.mock_context.invocation_id, branch=self.mock_context.branch, + content=genai_types.Content(role="model", parts=[mock_a2a_part]), ) with patch( @@ -721,6 +728,49 @@ async def test_handle_a2a_response_with_task_and_no_update(self): self.agent.name, self.mock_context, ) + # Check the parts are not updated as Thought + assert result.content.parts[0].thought is None + # Check that metadata was added + assert result.custom_metadata is not None + assert A2A_METADATA_PREFIX + "task_id" in result.custom_metadata + assert A2A_METADATA_PREFIX + "context_id" in result.custom_metadata + + @pytest.mark.asyncio + async def test_handle_a2a_response_with_task_submitted_and_no_update(self): + """Test successful A2A response handling with streaming task and no update.""" + mock_a2a_task = Mock(spec=A2ATask) + mock_a2a_task.id = "task-123" + mock_a2a_task.context_id = "context-123" + mock_a2a_task.status = Mock(spec=A2ATaskStatus) + mock_a2a_task.status.state = TaskState.submitted + + # Create a proper Event mock that can handle custom_metadata + mock_a2a_part = Mock(spec=TextPart) + mock_event = Event( + author=self.agent.name, + invocation_id=self.mock_context.invocation_id, + branch=self.mock_context.branch, + content=genai_types.Content(role="model", parts=[mock_a2a_part]), + ) + + with patch( + "google.adk.agents.remote_a2a_agent.convert_a2a_task_to_event" + ) as mock_convert: + mock_convert.return_value = mock_event + + result = await self.agent._handle_a2a_response( + (mock_a2a_task, None), self.mock_context + ) + + assert result == mock_event + mock_convert.assert_called_once_with( + mock_a2a_task, + self.agent.name, + self.mock_context, + ) + # Check the parts are updated as Thought + assert result.content.parts[0].thought is True + assert result.content.parts[0].thought_signature is None # Check that metadata was added assert result.custom_metadata is not None assert A2A_METADATA_PREFIX + "task_id" in result.custom_metadata @@ -740,10 +790,57 @@ async def test_handle_a2a_response_with_task_status_update_with_message(self): mock_update.status.message = mock_a2a_message # Create a proper Event mock that can handle custom_metadata + mock_a2a_part = Mock(spec=TextPart) + mock_event = Event( + author=self.agent.name, + invocation_id=self.mock_context.invocation_id, + branch=self.mock_context.branch, + content=genai_types.Content(role="model", parts=[mock_a2a_part]), + ) + + with patch( + "google.adk.agents.remote_a2a_agent.convert_a2a_message_to_event" + ) as mock_convert: + mock_convert.return_value = mock_event + + result = await self.agent._handle_a2a_response( + (mock_a2a_task, mock_update), self.mock_context + ) + + assert result == mock_event + mock_convert.assert_called_once_with( + mock_a2a_message, + self.agent.name, + self.mock_context, + ) + # Check that metadata was added + assert result.custom_metadata is not None + assert result.content.parts[0].thought is None + assert A2A_METADATA_PREFIX + "task_id" in result.custom_metadata + assert A2A_METADATA_PREFIX + "context_id" in result.custom_metadata + + @pytest.mark.asyncio + async def test_handle_a2a_response_with_task_status_working_update_with_message( + self, + ): + """Test handling of a task status update with a message.""" + mock_a2a_task = Mock(spec=A2ATask) + mock_a2a_task.id = "task-123" + mock_a2a_task.context_id = "context-123" + + mock_a2a_message = Mock(spec=A2AMessage) + mock_update = Mock(spec=TaskStatusUpdateEvent) + mock_update.status = Mock(TaskStatus) + mock_update.status.state = TaskState.working + mock_update.status.message = mock_a2a_message + + # Create a proper Event mock that can handle custom_metadata + mock_a2a_part = Mock(spec=TextPart) mock_event = Event( author=self.agent.name, invocation_id=self.mock_context.invocation_id, branch=self.mock_context.branch, + content=genai_types.Content(role="model", parts=[mock_a2a_part]), ) with patch( @@ -763,6 +860,7 @@ async def test_handle_a2a_response_with_task_status_update_with_message(self): ) # Check that metadata was added assert result.custom_metadata is not None + assert result.content.parts[0].thought is True assert A2A_METADATA_PREFIX + "task_id" in result.custom_metadata assert A2A_METADATA_PREFIX + "context_id" in result.custom_metadata @@ -985,17 +1083,21 @@ async def test_handle_a2a_response_success_with_message(self): assert A2A_METADATA_PREFIX + "context_id" in result.custom_metadata @pytest.mark.asyncio - async def test_handle_a2a_response_with_task_and_no_update(self): - """Test successful A2A response handling with task and no update.""" + async def test_handle_a2a_response_with_task_completed_and_no_update(self): + """Test successful A2A response handling with non-streeaming task and no update.""" mock_a2a_task = Mock(spec=A2ATask) mock_a2a_task.id = "task-123" mock_a2a_task.context_id = "context-123" + mock_a2a_task.status = Mock(spec=A2ATaskStatus) + mock_a2a_task.status.state = TaskState.completed # Create a proper Event mock that can handle custom_metadata + mock_a2a_part = Mock(spec=TextPart) mock_event = Event( author=self.agent.name, invocation_id=self.mock_context.invocation_id, branch=self.mock_context.branch, + content=genai_types.Content(role="model", parts=[mock_a2a_part]), ) with patch( @@ -1009,8 +1111,53 @@ async def test_handle_a2a_response_with_task_and_no_update(self): assert result == mock_event mock_convert.assert_called_once_with( - mock_a2a_task, self.agent.name, self.mock_context + mock_a2a_task, + self.agent.name, + self.mock_context, ) + # Check the parts are not updated as Thought + assert result.content.parts[0].thought is None + # Check that metadata was added + assert result.custom_metadata is not None + assert A2A_METADATA_PREFIX + "task_id" in result.custom_metadata + assert A2A_METADATA_PREFIX + "context_id" in result.custom_metadata + + @pytest.mark.asyncio + async def test_handle_a2a_response_with_task_submitted_and_no_update(self): + """Test successful A2A response handling with streaming task and no update.""" + mock_a2a_task = Mock(spec=A2ATask) + mock_a2a_task.id = "task-123" + mock_a2a_task.context_id = "context-123" + mock_a2a_task.status = Mock(spec=A2ATaskStatus) + mock_a2a_task.status.state = TaskState.submitted + + # Create a proper Event mock that can handle custom_metadata + mock_a2a_part = Mock(spec=TextPart) + mock_event = Event( + author=self.agent.name, + invocation_id=self.mock_context.invocation_id, + branch=self.mock_context.branch, + content=genai_types.Content(role="model", parts=[mock_a2a_part]), + ) + + with patch( + "google.adk.agents.remote_a2a_agent.convert_a2a_task_to_event" + ) as mock_convert: + mock_convert.return_value = mock_event + + result = await self.agent._handle_a2a_response( + (mock_a2a_task, None), self.mock_context + ) + + assert result == mock_event + mock_convert.assert_called_once_with( + mock_a2a_task, + self.agent.name, + self.mock_context, + ) + # Check the parts are updated as Thought + assert result.content.parts[0].thought is True + assert result.content.parts[0].thought_signature is None # Check that metadata was added assert result.custom_metadata is not None assert A2A_METADATA_PREFIX + "task_id" in result.custom_metadata @@ -1030,10 +1177,57 @@ async def test_handle_a2a_response_with_task_status_update_with_message(self): mock_update.status.message = mock_a2a_message # Create a proper Event mock that can handle custom_metadata + mock_a2a_part = Mock(spec=TextPart) + mock_event = Event( + author=self.agent.name, + invocation_id=self.mock_context.invocation_id, + branch=self.mock_context.branch, + content=genai_types.Content(role="model", parts=[mock_a2a_part]), + ) + + with patch( + "google.adk.agents.remote_a2a_agent.convert_a2a_message_to_event" + ) as mock_convert: + mock_convert.return_value = mock_event + + result = await self.agent._handle_a2a_response( + (mock_a2a_task, mock_update), self.mock_context + ) + + assert result == mock_event + mock_convert.assert_called_once_with( + mock_a2a_message, + self.agent.name, + self.mock_context, + ) + # Check that metadata was added + assert result.custom_metadata is not None + assert result.content.parts[0].thought is None + assert A2A_METADATA_PREFIX + "task_id" in result.custom_metadata + assert A2A_METADATA_PREFIX + "context_id" in result.custom_metadata + + @pytest.mark.asyncio + async def test_handle_a2a_response_with_task_status_working_update_with_message( + self, + ): + """Test handling of a task status update with a message.""" + mock_a2a_task = Mock(spec=A2ATask) + mock_a2a_task.id = "task-123" + mock_a2a_task.context_id = "context-123" + + mock_a2a_message = Mock(spec=A2AMessage) + mock_update = Mock(spec=TaskStatusUpdateEvent) + mock_update.status = Mock(TaskStatus) + mock_update.status.state = TaskState.working + mock_update.status.message = mock_a2a_message + + # Create a proper Event mock that can handle custom_metadata + mock_a2a_part = Mock(spec=TextPart) mock_event = Event( author=self.agent.name, invocation_id=self.mock_context.invocation_id, branch=self.mock_context.branch, + content=genai_types.Content(role="model", parts=[mock_a2a_part]), ) with patch( @@ -1053,6 +1247,7 @@ async def test_handle_a2a_response_with_task_status_update_with_message(self): ) # Check that metadata was added assert result.custom_metadata is not None + assert result.content.parts[0].thought is True assert A2A_METADATA_PREFIX + "task_id" in result.custom_metadata assert A2A_METADATA_PREFIX + "context_id" in result.custom_metadata From 59670d240eab59b1f2c12187931857492783196c Mon Sep 17 00:00:00 2001 From: "Xinran (Sherry) Tang" Date: Fri, 10 Oct 2025 13:23:23 -0700 Subject: [PATCH 079/303] feat: Support resuming from a paused invocation starting from a sub-agent PiperOrigin-RevId: 817766247 --- src/google/adk/runners.py | 18 ++- .../runners/test_resume_invocation.py | 146 ++++++++++++++++++ tests/unittests/testing_utils.py | 6 +- 3 files changed, 162 insertions(+), 8 deletions(-) create mode 100644 tests/unittests/runners/test_resume_invocation.py diff --git a/src/google/adk/runners.py b/src/google/adk/runners.py index 74d25992a3..261168997d 100644 --- a/src/google/adk/runners.py +++ b/src/google/adk/runners.py @@ -381,12 +381,11 @@ async def _run_with_trace( run_config=run_config, state_delta=state_delta, ) - if invocation_context.end_of_agents.get(self.agent.name): - # Directly return if the root agent has already ended. - # TODO: Handle the case where the invocation-to-resume started from - # a sub_agent: - # invocation1: root_agent -> sub_agent1 - # invocation2: sub_agent1 [paused][resume] + if invocation_context.end_of_agents.get( + invocation_context.agent.name + ): + # Directly return if the current agent in invocation context is + # already final. return else: invocation_context = await self._setup_context_for_new_invocation( @@ -869,6 +868,13 @@ async def _setup_context_for_resumed_invocation( ) # Step 4: Populate agent states for the current invocation. invocation_context.populate_invocation_agent_states() + # Step 5: Set agent to run for the invocation. + # + # If the root agent is not found in end_of_agents, it means the invocation + # started from a sub-agent and paused on a sub-agent. + # We should find the appropriate agent to run to continue the invocation. + if self.agent.name not in invocation_context.end_of_agents: + invocation_context.agent = self._find_agent_to_run(session, self.agent) return invocation_context def _find_user_message_for_invocation( diff --git a/tests/unittests/runners/test_resume_invocation.py b/tests/unittests/runners/test_resume_invocation.py new file mode 100644 index 0000000000..f7755fca9d --- /dev/null +++ b/tests/unittests/runners/test_resume_invocation.py @@ -0,0 +1,146 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""Tests for edge cases of resuming invocations.""" + +import copy + +from google.adk.agents.llm_agent import LlmAgent +from google.adk.apps.app import App +from google.adk.apps.app import ResumabilityConfig +from google.genai.types import Part +import pytest + +from .. import testing_utils + + +def transfer_call_part(agent_name: str) -> Part: + return Part.from_function_call( + name="transfer_to_agent", args={"agent_name": agent_name} + ) + + +TRANSFER_RESPONSE_PART = Part.from_function_response( + name="transfer_to_agent", response={"result": None} +) + + +@pytest.mark.asyncio +async def test_resume_invocation_from_sub_agent(): + """A test case for an edge case, where an invocation-to-resume starts from a sub-agent. + + For example: + invocation1: root_agent -> sub_agent + invocation2: sub_agent [paused][resume] + """ + # Step 1: Setup + # root_agent -> sub_agent + sub_agent = LlmAgent( + name="sub_agent", + model=testing_utils.MockModel.create( + responses=[ + "first response from sub_agent", + "second response from sub_agent", + "third response from sub_agent", + ] + ), + ) + root_agent = LlmAgent( + name="root_agent", + model=testing_utils.MockModel.create( + responses=[transfer_call_part(sub_agent.name)] + ), + sub_agents=[sub_agent], + ) + runner = testing_utils.InMemoryRunner( + app=App( + name="test_app", + root_agent=root_agent, + resumability_config=ResumabilityConfig(is_resumable=True), + ) + ) + + # Step 2: Run the first invocation + # Expect the invocation to start from root_agent and transferred to sub_agent. + invocation_1_events = runner.run("test user query") + assert testing_utils.simplify_resumable_app_events( + copy.deepcopy(invocation_1_events) + ) == [ + ( + root_agent.name, + transfer_call_part(sub_agent.name), + ), + ( + root_agent.name, + TRANSFER_RESPONSE_PART, + ), + ( + sub_agent.name, + "first response from sub_agent", + ), + ( + sub_agent.name, + testing_utils.END_OF_AGENT, + ), + ( + root_agent.name, + testing_utils.END_OF_AGENT, + ), + ] + + # Step 3: Run the second invocation + # Expect the invocation to directly start from sub_agent. + invocation_2_events = runner.run( + "test user query 2", + ) + assert testing_utils.simplify_resumable_app_events( + copy.deepcopy(invocation_2_events) + ) == [ + ( + sub_agent.name, + "second response from sub_agent", + ), + (sub_agent.name, testing_utils.END_OF_AGENT), + ] + # Asserts the invocation will be a no-op if the current agent in context is + # already final. + assert not await runner.run_async( + invocation_id=invocation_2_events[0].invocation_id + ) + + # Step 4: Copy all session.events[:-1] to a new session + # This is to simulate the case where we pause on the second invocation. + session_id = runner.session_id + session = await runner.runner.session_service.get_session( + app_name="test_app", user_id="test_user", session_id=session_id + ) + new_session = await runner.runner.session_service.create_session( + app_name=session.app_name, user_id=session.user_id + ) + for event in session.events[:-1]: + await runner.runner.session_service.append_event(new_session, event) + runner.session_id = new_session.id + + # Step 5: Resume the second invocation + resumed_invocation_2_events = await runner.run_async( + invocation_id=invocation_2_events[0].invocation_id + ) + assert testing_utils.simplify_resumable_app_events( + copy.deepcopy(resumed_invocation_2_events) + ) == [ + ( + sub_agent.name, + "third response from sub_agent", + ), + (sub_agent.name, testing_utils.END_OF_AGENT), + ] diff --git a/tests/unittests/testing_utils.py b/tests/unittests/testing_utils.py index 4b0a6ed1c3..950e70b94c 100644 --- a/tests/unittests/testing_utils.py +++ b/tests/unittests/testing_utils.py @@ -274,14 +274,16 @@ def run(self, new_message: types.ContentUnion) -> list[Event]: ) async def run_async( - self, new_message: types.ContentUnion, invocation_id: Optional[str] = None + self, + new_message: Optional[types.ContentUnion] = None, + invocation_id: Optional[str] = None, ) -> list[Event]: events = [] async for event in self.runner.run_async( user_id=self.session.user_id, session_id=self.session.id, invocation_id=invocation_id, - new_message=get_user_content(new_message), + new_message=get_user_content(new_message) if new_message else None, ): events.append(event) return events From 16b030b2b25a9b0b489e47b4b148fc4d39aeffcb Mon Sep 17 00:00:00 2001 From: Joe Fernandez Date: Fri, 10 Oct 2025 16:11:43 -0700 Subject: [PATCH 080/303] fix: Add a guideline to avoid content deletion Directs agent to avoid deleting existing content PiperOrigin-RevId: 817823999 --- contributing/samples/adk_documentation/adk_docs_updater/agent.py | 1 + 1 file changed, 1 insertion(+) diff --git a/contributing/samples/adk_documentation/adk_docs_updater/agent.py b/contributing/samples/adk_documentation/adk_docs_updater/agent.py index 24e2a0f164..40e940a5c9 100644 --- a/contributing/samples/adk_documentation/adk_docs_updater/agent.py +++ b/contributing/samples/adk_documentation/adk_docs_updater/agent.py @@ -93,6 +93,7 @@ # 4. Guidelines & Rules - **File Paths:** Always use absolute paths when calling the tools to read files, list directories, or search the codebase. - **Tool Call Parallelism:** Execute multiple independent tool calls in parallel when feasible (i.e. searching the codebase). + - **Avoid deletion:** Do not delete any existing content unless specifically directed to do so. - **Explaination:** Provide concise explanations for your actions and reasoning for each step. - **Minimize changes:** When making updates to documentation pages, make the minimum amount of changes to achieve the communication goal. Only make changes that are necessary, and leave everything else as-is. - **Avoid trivial code sample changes:** Update code samples only when adding or modifying functionality. Do not reformat code samples, change variable names, or change code syntax unless you are specifically directed to make those updates. From b21d0a50d610407be2f10b73a91274840ffdfe18 Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Fri, 10 Oct 2025 16:36:43 -0700 Subject: [PATCH 081/303] fix: Add more clear instruction to the doc updater agent about one PR for each recommended change PiperOrigin-RevId: 817831087 --- .../adk_documentation/adk_docs_updater/agent.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/contributing/samples/adk_documentation/adk_docs_updater/agent.py b/contributing/samples/adk_documentation/adk_docs_updater/agent.py index 40e940a5c9..afa5565127 100644 --- a/contributing/samples/adk_documentation/adk_docs_updater/agent.py +++ b/contributing/samples/adk_documentation/adk_docs_updater/agent.py @@ -85,7 +85,15 @@ - Use active voice phrasing in your doc updates. - Use second person "you" form of address in your doc updates. 9. Create pull requests to update the ADK doc file using the `create_pull_request_from_changes` tool. - - For each recommended change, create a separate pull request. + - For each recommended change, create a separate pull request. Make sure the recommended change has exactly one pull request. + For example, if the ADK doc issue contains the following 2 recommended changes: + ``` + 1. Title of recommended change 1 + + 2. Title of recommended change 2 + + ``` + Then you should create 2 pull requests, one for each recommended change, even if each recommended change needs to update multiple ADK doc files. - The title of the pull request should be "Update ADK doc according to issue # - ", where is the number of the ADK docs issue and is the id of the recommended change (e.g. "1", "2", etc.). - The body of the pull request should be the instructions about how to update the ADK docs. - **{APPROVAL_INSTRUCTION}** From 6da727485898137948d72906d86d78b6db6331ac Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Sat, 11 Oct 2025 09:57:06 -0700 Subject: [PATCH 082/303] feat: Set default for `bypass_multi_tools_limit` to False for GoogleSearchTool and VertexAiSearchTool PiperOrigin-RevId: 818053371 --- src/google/adk/tools/google_search_tool.py | 2 +- src/google/adk/tools/vertex_ai_search_tool.py | 2 +- tests/unittests/agents/test_llm_agent_fields.py | 7 +++++-- tests/unittests/flows/llm_flows/test_base_llm_flow.py | 4 +++- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/google/adk/tools/google_search_tool.py b/src/google/adk/tools/google_search_tool.py index 80941ab864..d974989209 100644 --- a/src/google/adk/tools/google_search_tool.py +++ b/src/google/adk/tools/google_search_tool.py @@ -35,7 +35,7 @@ class GoogleSearchTool(BaseTool): local code execution. """ - def __init__(self, *, bypass_multi_tools_limit: bool = True): + def __init__(self, *, bypass_multi_tools_limit: bool = False): """Initializes the Google search tool. Args: diff --git a/src/google/adk/tools/vertex_ai_search_tool.py b/src/google/adk/tools/vertex_ai_search_tool.py index e19bd22274..be51a7e860 100644 --- a/src/google/adk/tools/vertex_ai_search_tool.py +++ b/src/google/adk/tools/vertex_ai_search_tool.py @@ -47,7 +47,7 @@ def __init__( search_engine_id: Optional[str] = None, filter: Optional[str] = None, max_results: Optional[int] = None, - bypass_multi_tools_limit: bool = True, + bypass_multi_tools_limit: bool = False, ): """Initializes the Vertex AI Search tool. diff --git a/tests/unittests/agents/test_llm_agent_fields.py b/tests/unittests/agents/test_llm_agent_fields.py index 5523a34af1..5540e55b0d 100644 --- a/tests/unittests/agents/test_llm_agent_fields.py +++ b/tests/unittests/agents/test_llm_agent_fields.py @@ -299,7 +299,7 @@ async def test_handle_google_search_with_other_tools(self): model='gemini-pro', tools=[ self._my_tool, - google_search, + GoogleSearchTool(bypass_multi_tools_limit=True), ], ) ctx = await _create_readonly_context(agent) @@ -373,7 +373,10 @@ async def test_handle_vais_with_other_tools(self): model='gemini-pro', tools=[ self._my_tool, - VertexAiSearchTool(data_store_id='test_data_store_id'), + VertexAiSearchTool( + data_store_id='test_data_store_id', + bypass_multi_tools_limit=True, + ), ], ) ctx = await _create_readonly_context(agent) diff --git a/tests/unittests/flows/llm_flows/test_base_llm_flow.py b/tests/unittests/flows/llm_flows/test_base_llm_flow.py index 1b310f878f..47b4b00fd4 100644 --- a/tests/unittests/flows/llm_flows/test_base_llm_flow.py +++ b/tests/unittests/flows/llm_flows/test_base_llm_flow.py @@ -25,12 +25,14 @@ from google.adk.models.llm_response import LlmResponse from google.adk.plugins.base_plugin import BasePlugin from google.adk.tools.base_toolset import BaseToolset -from google.adk.tools.google_search_tool import google_search +from google.adk.tools.google_search_tool import GoogleSearchTool from google.genai import types import pytest from ... import testing_utils +google_search = GoogleSearchTool(bypass_multi_tools_limit=True) + class BaseLlmFlowForTesting(BaseLlmFlow): """Test implementation of BaseLlmFlow for testing purposes.""" From e63180cb62b3571b2b958cad0cd94e1c841da20e Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Sun, 12 Oct 2025 20:27:39 -0700 Subject: [PATCH 083/303] feat: Add the support for returning `struct_data.uri` in DiscoveryEngineSearchTool For https://github.com/google/adk-python/issues/3146 PiperOrigin-RevId: 818458080 --- .../adk/tools/discovery_engine_search_tool.py | 18 ++++++++++++++---- .../tools/test_discovery_engine_search_tool.py | 6 +++++- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/google/adk/tools/discovery_engine_search_tool.py b/src/google/adk/tools/discovery_engine_search_tool.py index 3eeb40f340..0e771ece4f 100644 --- a/src/google/adk/tools/discovery_engine_search_tool.py +++ b/src/google/adk/tools/discovery_engine_search_tool.py @@ -80,7 +80,7 @@ def discovery_engine_search( self, query: str, ) -> dict[str, Any]: - """Search the discovery engine. + """Search through Vertex AI Search's discovery engine search API. Args: query: The search query. @@ -113,12 +113,22 @@ def discovery_engine_search( response = self._discovery_engine_client.search(request) for item in response.results: chunk = item.chunk - if not chunk or not chunk.document_metadata: + if not chunk: continue + title = "" + uri = "" + doc_metadata = chunk.document_metadata + if doc_metadata: + title = doc_metadata.title + uri = doc_metadata.uri + # Prioritize URI from struct_data if it exists. + if doc_metadata.struct_data and "uri" in doc_metadata.struct_data: + uri = doc_metadata.struct_data["uri"] + results.append({ - "title": chunk.document_metadata.title, - "url": chunk.document_metadata.uri, + "title": title, + "url": uri, "content": chunk.content, }) except GoogleAPICallError as e: diff --git a/tests/unittests/tools/test_discovery_engine_search_tool.py b/tests/unittests/tools/test_discovery_engine_search_tool.py index 08313789cf..d10da252c7 100644 --- a/tests/unittests/tools/test_discovery_engine_search_tool.py +++ b/tests/unittests/tools/test_discovery_engine_search_tool.py @@ -87,7 +87,11 @@ def test_discovery_engine_search_success(self, mock_search_client): chunk=discoveryengine.Chunk( document_metadata={ "title": "Test Title", - "uri": "http://example.com", + "uri": "gs://test_bucket/test_file", + "struct_data": { + "key1": "value1", + "uri": "http://example.com", + }, }, content="Test Content", ) From e212ff558e4ad25e609b61986d90d4489e92b2bb Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Sun, 12 Oct 2025 21:18:50 -0700 Subject: [PATCH 084/303] feat: Add new methods in the artifact service interface PiperOrigin-RevId: 818473733 --- .../adk/artifacts/base_artifact_service.py | 72 ++++++++++++++++++- .../adk/artifacts/gcs_artifact_service.py | 34 +++++++++ .../artifacts/in_memory_artifact_service.py | 32 +++++++++ .../adk/tools/_forwarding_artifact_service.py | 26 +++++++ 4 files changed, 163 insertions(+), 1 deletion(-) diff --git a/src/google/adk/artifacts/base_artifact_service.py b/src/google/adk/artifacts/base_artifact_service.py index 5fc67ae76a..cc2a3a1e1d 100644 --- a/src/google/adk/artifacts/base_artifact_service.py +++ b/src/google/adk/artifacts/base_artifact_service.py @@ -15,9 +15,23 @@ from abc import ABC from abc import abstractmethod +from typing import Any from typing import Optional from google.genai import types +from pydantic import BaseModel +from pydantic import Field + + +class ArtifactVersion(BaseModel): + """Represents the metadata of a specific version of an artifact.""" + + version: int + """The version number of the artifact.""" + canonical_uri: str + """The canonical URI of the artifact version.""" + custom_metadata: dict[str, Any] = Field(default_factory=dict) + """A dictionary of custom metadata associated with the artifact version.""" class BaseArtifactService(ABC): @@ -32,6 +46,7 @@ async def save_artifact( filename: str, artifact: types.Part, session_id: Optional[str] = None, + custom_metadata: Optional[dict[str, Any]] = None, ) -> int: """Saves an artifact to the artifact service storage. @@ -43,8 +58,12 @@ async def save_artifact( app_name: The app name. user_id: The user ID. filename: The filename of the artifact. - artifact: The artifact to save. + artifact: The artifact to save. If the artifact consists of `file_data`, + the artifact service assumes its content has been uploaded separately, + and this method will associate the `file_data` with the artifact if + necessary. session_id: The session ID. If `None`, the artifact is user-scoped. + custom_metadata: custom metadata to associate with the artifact. Returns: The revision ID. The first version of the artifact has a revision ID of 0. @@ -136,3 +155,54 @@ async def list_versions( Returns: A list of all available versions of the artifact. """ + + @abstractmethod + async def list_artifact_versions( + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, + ) -> list[ArtifactVersion]: + """Lists all versions and their metadata for a specific artifact. + + Args: + app_name: The name of the application. + user_id: The ID of the user. + filename: The name of the artifact file. + session_id: The ID of the session. If `None`, lists versions of the + user-scoped artifact. Otherwise, lists versions of the artifact within + the specified session. + + Returns: + A list of ArtifactVersion objects, each representing a version of the + artifact and its associated metadata. + """ + + @abstractmethod + async def get_artifact_version( + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, + version: Optional[int] = None, + ) -> Optional[ArtifactVersion]: + """Gets the metadata for a specific version of an artifact. + + Args: + app_name: The name of the application. + user_id: The ID of the user. + filename: The name of the artifact file. + session_id: The ID of the session. If `None`, the artifact will be fetched + from the user-scoped artifacts. Otherwise, it will be fetched from the + specified session. + version: The version number of the artifact to retrieve. If `None`, the + latest version will be returned. + + Returns: + An ArtifactVersion object containing the metadata of the specified + artifact version, or `None` if the artifact version is not found. + """ diff --git a/src/google/adk/artifacts/gcs_artifact_service.py b/src/google/adk/artifacts/gcs_artifact_service.py index 7c40ef0c06..d8a5b2fd1e 100644 --- a/src/google/adk/artifacts/gcs_artifact_service.py +++ b/src/google/adk/artifacts/gcs_artifact_service.py @@ -24,12 +24,14 @@ import asyncio import logging +from typing import Any from typing import Optional from google.cloud import storage from google.genai import types from typing_extensions import override +from .base_artifact_service import ArtifactVersion from .base_artifact_service import BaseArtifactService logger = logging.getLogger("google_adk." + __name__) @@ -58,6 +60,7 @@ async def save_artifact( filename: str, artifact: types.Part, session_id: Optional[str] = None, + custom_metadata: Optional[dict[str, Any]] = None, ) -> int: return await asyncio.to_thread( self._save_artifact, @@ -66,6 +69,7 @@ async def save_artifact( session_id, filename, artifact, + custom_metadata, ) @override @@ -180,7 +184,12 @@ def _save_artifact( session_id: Optional[str], filename: str, artifact: types.Part, + custom_metadata: Optional[dict[str, Any]] = None, ) -> int: + if custom_metadata: + # TODO: b/447451270 - support saving artifact with custom metadata. + raise NotImplementedError("custom_metadata is not supported yet.") + versions = self._list_versions( app_name=app_name, user_id=user_id, @@ -316,3 +325,28 @@ def _list_versions( *_, version = blob.name.split("/") versions.append(int(version)) return versions + + @override + async def list_artifact_versions( + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, + ) -> list[ArtifactVersion]: + # TODO: b/447451270 - Support list_artifact_versions. + raise NotImplementedError("list_artifact_versions is not implemented yet.") + + @override + async def get_artifact_version( + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, + version: Optional[int] = None, + ) -> Optional[ArtifactVersion]: + # TODO: b/447451270 - Support get_artifact_version. + raise NotImplementedError("get_artifact_version is not implemented yet.") diff --git a/src/google/adk/artifacts/in_memory_artifact_service.py b/src/google/adk/artifacts/in_memory_artifact_service.py index 6b99413056..ab556f2b7e 100644 --- a/src/google/adk/artifacts/in_memory_artifact_service.py +++ b/src/google/adk/artifacts/in_memory_artifact_service.py @@ -14,6 +14,7 @@ from __future__ import annotations import logging +from typing import Any from typing import Optional from google.genai import types @@ -21,6 +22,7 @@ from pydantic import Field from typing_extensions import override +from .base_artifact_service import ArtifactVersion from .base_artifact_service import BaseArtifactService logger = logging.getLogger("google_adk." + __name__) @@ -83,7 +85,12 @@ async def save_artifact( filename: str, artifact: types.Part, session_id: Optional[str] = None, + custom_metadata: Optional[dict[str, Any]] = None, ) -> int: + # TODO: b/447451270 - Support saving artifact with custom metadata. + if custom_metadata: + raise NotImplementedError("custom_metadata is not supported yet.") + path = self._artifact_path(app_name, user_id, filename, session_id) if path not in self.artifacts: self.artifacts[path] = [] @@ -155,3 +162,28 @@ async def list_versions( if not versions: return [] return list(range(len(versions))) + + @override + async def list_artifact_versions( + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, + ) -> list[ArtifactVersion]: + # TODO: b/447451270 - Support list_artifact_versions. + raise NotImplementedError("list_artifact_versions is not implemented yet.") + + @override + async def get_artifact_version( + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, + version: Optional[int] = None, + ) -> Optional[ArtifactVersion]: + # TODO: b/447451270 - Support get_artifact_version. + raise NotImplementedError("get_artifact_version is not implemented yet.") diff --git a/src/google/adk/tools/_forwarding_artifact_service.py b/src/google/adk/tools/_forwarding_artifact_service.py index df59933cef..c9f94208a4 100644 --- a/src/google/adk/tools/_forwarding_artifact_service.py +++ b/src/google/adk/tools/_forwarding_artifact_service.py @@ -14,12 +14,14 @@ from __future__ import annotations +from typing import Any from typing import Optional from typing import TYPE_CHECKING from google.genai import types from typing_extensions import override +from ..artifacts.base_artifact_service import ArtifactVersion from ..artifacts.base_artifact_service import BaseArtifactService if TYPE_CHECKING: @@ -42,6 +44,7 @@ async def save_artifact( filename: str, artifact: types.Part, session_id: Optional[str] = None, + custom_metadata: Optional[dict[str, Any]] = None, ) -> int: return await self.tool_context.save_artifact( filename=filename, artifact=artifact @@ -104,3 +107,26 @@ async def list_versions( session_id=self._invocation_context.session.id, filename=filename, ) + + @override + async def list_artifact_versions( + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, + ) -> list[ArtifactVersion]: + raise NotImplementedError("list_artifact_versions is not implemented yet.") + + @override + async def get_artifact_version( + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, + version: Optional[int] = None, + ) -> Optional[ArtifactVersion]: + raise NotImplementedError("get_artifact_version is not implemented yet.") From 348e552ba63344fdbea010bf44d779429792dfbd Mon Sep 17 00:00:00 2001 From: Ankur Sharma Date: Mon, 13 Oct 2025 10:12:42 -0700 Subject: [PATCH 085/303] chore: Remove deprecated `run_evals` from `cli_eval.py` This change removes the `run_evals` function and its helper `_get_evaluator` from `cli_eval.py`, as they were marked as deprecated. Corresponding test mocks and patches in `test_fast_api.py` are also removed. PiperOrigin-RevId: 818719422 --- src/google/adk/cli/adk_web_server.py | 2 +- src/google/adk/cli/cli_eval.py | 182 --------------------------- tests/unittests/cli/test_fast_api.py | 30 ----- 3 files changed, 1 insertion(+), 213 deletions(-) diff --git a/src/google/adk/cli/adk_web_server.py b/src/google/adk/cli/adk_web_server.py index 76ba4ce970..2b9993a05b 100644 --- a/src/google/adk/cli/adk_web_server.py +++ b/src/google/adk/cli/adk_web_server.py @@ -72,6 +72,7 @@ from ..evaluation.eval_metrics import EvalMetric from ..evaluation.eval_metrics import EvalMetricResult from ..evaluation.eval_metrics import EvalMetricResultPerInvocation +from ..evaluation.eval_metrics import EvalStatus from ..evaluation.eval_metrics import MetricInfo from ..evaluation.eval_result import EvalSetResult from ..evaluation.eval_set import EvalSet @@ -85,7 +86,6 @@ from ..sessions.session import Session from ..utils.context_utils import Aclosing from .cli_eval import EVAL_SESSION_ID_PREFIX -from .cli_eval import EvalStatus from .utils import cleanup from .utils import common from .utils import envs diff --git a/src/google/adk/cli/cli_eval.py b/src/google/adk/cli/cli_eval.py index 4f285d6136..ac2e0b9715 100644 --- a/src/google/adk/cli/cli_eval.py +++ b/src/google/adk/cli/cli_eval.py @@ -15,42 +15,27 @@ from __future__ import annotations import importlib.util -import inspect import logging import os import sys from typing import Any -from typing import AsyncGenerator from typing import Optional -import uuid import click from google.genai import types as genai_types -from typing_extensions import deprecated from ..agents.llm_agent import Agent -from ..artifacts.base_artifact_service import BaseArtifactService from ..evaluation.base_eval_service import BaseEvalService from ..evaluation.base_eval_service import EvaluateConfig from ..evaluation.base_eval_service import EvaluateRequest -from ..evaluation.base_eval_service import InferenceConfig from ..evaluation.base_eval_service import InferenceRequest from ..evaluation.base_eval_service import InferenceResult from ..evaluation.constants import MISSING_EVAL_DEPENDENCIES_MESSAGE -from ..evaluation.eval_case import EvalCase from ..evaluation.eval_case import get_all_tool_calls from ..evaluation.eval_case import IntermediateDataType -from ..evaluation.eval_config import BaseCriterion -from ..evaluation.eval_config import EvalConfig from ..evaluation.eval_metrics import EvalMetric -from ..evaluation.eval_metrics import EvalMetricResult -from ..evaluation.eval_metrics import EvalMetricResultPerInvocation -from ..evaluation.eval_metrics import JudgeModelOptions from ..evaluation.eval_result import EvalCaseResult from ..evaluation.eval_sets_manager import EvalSetsManager -from ..evaluation.evaluator import EvalStatus -from ..evaluation.evaluator import Evaluator -from ..sessions.base_session_service import BaseSessionService from ..utils.context_utils import Aclosing logger = logging.getLogger("google_adk." + __name__) @@ -172,147 +157,6 @@ async def _collect_eval_results( return eval_results -@deprecated( - "This method is deprecated and will be removed in fututre release. Please" - " use LocalEvalService to define your custom evals." -) -async def run_evals( - eval_cases_by_eval_set_id: dict[str, list[EvalCase]], - root_agent: Agent, - reset_func: Optional[Any], - eval_metrics: list[EvalMetric], - session_service: Optional[BaseSessionService] = None, - artifact_service: Optional[BaseArtifactService] = None, -) -> AsyncGenerator[EvalCaseResult, None]: - """Returns a stream of EvalCaseResult for each eval case that was evaluated. - - Args: - eval_cases_by_eval_set_id: Eval cases categorized by eval set id to which - they belong. - root_agent: Agent to use for inferencing. - reset_func: If present, this will be called before invoking the agent before - every inferencing step. - eval_metrics: A list of metrics that should be used during evaluation. - session_service: The session service to use during inferencing. - artifact_service: The artifact service to use during inferencing. - """ - try: - from ..evaluation.evaluation_generator import EvaluationGenerator - except ModuleNotFoundError as e: - raise ModuleNotFoundError(MISSING_EVAL_DEPENDENCIES_MESSAGE) from e - - for eval_set_id, eval_cases in eval_cases_by_eval_set_id.items(): - for eval_case in eval_cases: - eval_name = eval_case.eval_id - initial_session = eval_case.session_input - user_id = initial_session.user_id if initial_session else "test_user_id" - - try: - print(f"Running Eval: {eval_set_id}:{eval_name}") - session_id = f"{EVAL_SESSION_ID_PREFIX}{str(uuid.uuid4())}" - - inference_result = ( - await EvaluationGenerator._generate_inferences_from_root_agent( - invocations=eval_case.conversation, - root_agent=root_agent, - reset_func=reset_func, - initial_session=initial_session, - session_id=session_id, - session_service=session_service, - artifact_service=artifact_service, - ) - ) - - # Initialize the per-invocation metric results to an empty list. - # We will fill this as we evaluate each metric. - eval_metric_result_per_invocation = [] - for actual, expected in zip(inference_result, eval_case.conversation): - eval_metric_result_per_invocation.append( - EvalMetricResultPerInvocation( - actual_invocation=actual, - expected_invocation=expected, - eval_metric_results=[], - ) - ) - - overall_eval_metric_results = [] - - for eval_metric in eval_metrics: - metric_evaluator = _get_evaluator(eval_metric) - - if inspect.iscoroutinefunction(metric_evaluator.evaluate_invocations): - evaluation_result = await metric_evaluator.evaluate_invocations( - actual_invocations=inference_result, - expected_invocations=eval_case.conversation, - ) - else: - evaluation_result = metric_evaluator.evaluate_invocations( - actual_invocations=inference_result, - expected_invocations=eval_case.conversation, - ) - - overall_eval_metric_results.append( - EvalMetricResult( - metric_name=eval_metric.metric_name, - threshold=eval_metric.threshold, - score=evaluation_result.overall_score, - eval_status=evaluation_result.overall_eval_status, - ) - ) - for index, per_invocation_result in enumerate( - evaluation_result.per_invocation_results - ): - eval_metric_result_per_invocation[index].eval_metric_results.append( - EvalMetricResult( - metric_name=eval_metric.metric_name, - threshold=eval_metric.threshold, - score=per_invocation_result.score, - eval_status=per_invocation_result.eval_status, - ) - ) - - final_eval_status = EvalStatus.NOT_EVALUATED - # Go over the all the eval statuses and mark the final eval status as - # passed if all of them pass, otherwise mark the final eval status to - # failed. - for overall_eval_metric_result in overall_eval_metric_results: - overall_eval_status = overall_eval_metric_result.eval_status - if overall_eval_status == EvalStatus.PASSED: - final_eval_status = EvalStatus.PASSED - elif overall_eval_status == EvalStatus.NOT_EVALUATED: - continue - elif overall_eval_status == EvalStatus.FAILED: - final_eval_status = EvalStatus.FAILED - break - else: - raise ValueError("Unknown eval status.") - - yield EvalCaseResult( - eval_set_file=eval_set_id, - eval_set_id=eval_set_id, - eval_id=eval_name, - final_eval_status=final_eval_status, - eval_metric_results=[], - overall_eval_metric_results=overall_eval_metric_results, - eval_metric_result_per_invocation=eval_metric_result_per_invocation, - session_id=session_id, - user_id=user_id, - ) - - if final_eval_status == EvalStatus.PASSED: - result = "✅ Passed" - else: - result = "❌ Failed" - - print(f"Result: {result}\n") - except ModuleNotFoundError as e: - raise ModuleNotFoundError(MISSING_EVAL_DEPENDENCIES_MESSAGE) from e - except Exception: - # Catching the general exception, so that we don't block other eval - # cases. - logger.exception("Eval failed for `%s:%s`", eval_set_id, eval_name) - - def _convert_content_to_text( content: Optional[genai_types.Content], ) -> str: @@ -413,32 +257,6 @@ def pretty_print_eval_result(eval_result: EvalCaseResult): click.echo("\n\n") # Few empty lines for visual clarity -def _get_evaluator(eval_metric: EvalMetric) -> Evaluator: - try: - from ..evaluation.final_response_match_v2 import FinalResponseMatchV2Evaluator - from ..evaluation.response_evaluator import ResponseEvaluator - from ..evaluation.safety_evaluator import SafetyEvaluatorV1 - from ..evaluation.trajectory_evaluator import TrajectoryEvaluator - except ModuleNotFoundError as e: - raise ModuleNotFoundError(MISSING_EVAL_DEPENDENCIES_MESSAGE) from e - if eval_metric.metric_name == TOOL_TRAJECTORY_SCORE_KEY: - return TrajectoryEvaluator(threshold=eval_metric.threshold) - elif ( - eval_metric.metric_name == RESPONSE_MATCH_SCORE_KEY - or eval_metric.metric_name == RESPONSE_EVALUATION_SCORE_KEY - ): - return ResponseEvaluator( - threshold=eval_metric.threshold, metric_name=eval_metric.metric_name - ) - elif eval_metric.metric_name == SAFETY_V1_KEY: - return SafetyEvaluatorV1(eval_metric) - elif eval_metric.metric_name == FINAL_RESPONSE_MATCH_V2: - eval_metric.judge_model_options = JudgeModelOptions() - return FinalResponseMatchV2Evaluator(eval_metric) - - raise ValueError(f"Unsupported eval metric: {eval_metric}") - - def get_eval_sets_manager( eval_storage_uri: Optional[str], agents_dir: str ) -> EvalSetsManager: diff --git a/tests/unittests/cli/test_fast_api.py b/tests/unittests/cli/test_fast_api.py index 90bba32cb2..8f12daf958 100755 --- a/tests/unittests/cli/test_fast_api.py +++ b/tests/unittests/cli/test_fast_api.py @@ -153,28 +153,6 @@ class _MockEvalCaseResult(BaseModel): eval_metric_result_per_invocation: list = {} -# Mock for the run_evals function, tailored for test_run_eval -async def mock_run_evals_for_fast_api(*args, **kwargs): - # This is what the test_run_eval expects for its assertions - yield _MockEvalCaseResult( - eval_set_id="test_eval_set_id", # Matches expected in verify_eval_case_result - eval_id="test_eval_case_id", # Matches expected - final_eval_status=1, # Matches expected (assuming 1 is PASSED) - user_id="test_user", # Placeholder, adapt if needed - session_id="test_session_for_eval_case", # Placeholder - eval_set_file="test_eval_set_file", # Placeholder - overall_eval_metric_results=[{ # Matches expected - "metricName": "tool_trajectory_avg_score", - "threshold": 0.5, - "score": 1.0, - "evalStatus": 1, - }], - # Provide other fields if RunEvalResult or subsequent processing needs them - eval_metric_results=[], - eval_metric_result_per_invocation=[], - ) - - ################################################# # Test Fixtures ################################################# @@ -453,10 +431,6 @@ def test_app( "google.adk.cli.fast_api.LocalEvalSetResultsManager", return_value=mock_eval_set_results_manager, ), - patch( - "google.adk.cli.cli_eval.run_evals", # Patch where it's imported in fast_api.py - new=mock_run_evals_for_fast_api, - ), ): # Get the FastAPI app, but don't actually run it app = get_fast_api_app( @@ -604,10 +578,6 @@ def test_app_with_a2a( "google.adk.cli.fast_api.LocalEvalSetResultsManager", return_value=mock_eval_set_results_manager, ), - patch( - "google.adk.cli.cli_eval.run_evals", - new=mock_run_evals_for_fast_api, - ), patch("a2a.server.tasks.InMemoryTaskStore") as mock_task_store, patch( "google.adk.a2a.executor.a2a_agent_executor.A2aAgentExecutor" From 214986ebeb53b2ef34c8aa37cd6403106de82c1b Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Mon, 13 Oct 2025 11:51:31 -0700 Subject: [PATCH 086/303] chore: Adjust the instruction about default model PiperOrigin-RevId: 818765464 --- .../instruction_embedded.template | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index b384d61704..00c9aad681 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -64,7 +64,9 @@ Always reference this schema when creating configurations to ensure compliance. - **MANDATORY CONFIRMATION**: Say "Please confirm what model you want to use" - do NOT assume or suggest defaults - **EXAMPLES**: "gemini-2.5-flash", "gemini-2.5-pro", etc. - **RATIONALE**: Only LlmAgent requires model specification; workflow agents do not -- **DEFAULT ONLY**: Use "{default_model}" only if user explicitly says "use default" or similar +- **DEFAULT MODEL**: If user says "use default" or "proceed with default model", use: {default_model} + * This is the actual model name, NOT the literal string "default" + * The default model for this session is: {default_model} - **WORKFLOW**: Complete all Discovery steps (including this model selection) → Then proceed to Design Phase with model already chosen ### 2. Design Phase @@ -369,7 +371,7 @@ def log_tool_result(tool: BaseTool, args: Dict[str, Any], context: ToolContext, **ADK AgentConfig Schema Compliance:** - Always reference the embedded ADK AgentConfig schema to verify field requirements - **MODEL FIELD RULES**: - * **LlmAgent**: `model` field is REQUIRED (unless inherited from ancestor) - Ask user for preference only when LlmAgent is needed, use "{default_model}" if not specified + * **LlmAgent**: `model` field is REQUIRED (unless inherited from ancestor) - Ask user for preference only when LlmAgent is needed, use {default_model} if user says to use default * **Workflow Agents**: `model` field is FORBIDDEN - Remove model field entirely for Sequential/Parallel/Loop agents - Optional fields: description, instruction, tools, sub_agents as defined in ADK AgentConfig schema From bb1ea74924127d65d763a45b869da3d4ff4d5c5a Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Mon, 13 Oct 2025 11:53:23 -0700 Subject: [PATCH 087/303] chore: Delegate the agent state reset logic to LoopAgent This is so we don't need to worry about side effect of Loop in all agent type. Custom agent should do the same if there exists loop inside. PiperOrigin-RevId: 818766305 --- src/google/adk/agents/invocation_context.py | 19 +++++++++++ src/google/adk/agents/loop_agent.py | 6 ++-- src/google/adk/agents/parallel_agent.py | 4 --- src/google/adk/agents/sequential_agent.py | 4 --- .../agents/test_invocation_context.py | 34 +++++++++++++++++++ 5 files changed, 55 insertions(+), 12 deletions(-) diff --git a/src/google/adk/agents/invocation_context.py b/src/google/adk/agents/invocation_context.py index de18e58640..e972a65eda 100644 --- a/src/google/adk/agents/invocation_context.py +++ b/src/google/adk/agents/invocation_context.py @@ -249,6 +249,25 @@ def set_agent_state( self.end_of_agents.pop(agent_name, None) self.agent_states.pop(agent_name, None) + def reset_sub_agent_states( + self, + agent_name: str, + ) -> None: + """Resets the state of all sub-agents of the given agent in this invocation. + + Args: + agent_name: The name of the agent whose sub-agent states need to be reset. + """ + agent = self.agent.find_agent(agent_name) + if not agent: + return + + for sub_agent in agent.sub_agents: + # Reset the sub-agent's state in the context to ensure that each + # sub-agent starts fresh. + self.set_agent_state(sub_agent.name) + self.reset_sub_agent_states(sub_agent.name) + def populate_invocation_agent_states(self) -> None: """Populates agent states for the current invocation if it is resumable. diff --git a/src/google/adk/agents/loop_agent.py b/src/google/adk/agents/loop_agent.py index 6b8b743570..6129d12ce2 100644 --- a/src/google/adk/agents/loop_agent.py +++ b/src/google/adk/agents/loop_agent.py @@ -94,10 +94,6 @@ async def _run_async_impl( ctx.set_agent_state(self.name, agent_state=agent_state) yield self._create_agent_state_event(ctx) - # Reset the sub-agent's state in the context to ensure that each - # sub-agent starts fresh. - if not is_resuming_at_current_agent: - ctx.set_agent_state(sub_agent.name) is_resuming_at_current_agent = False async with Aclosing(sub_agent.run_async(ctx)) as agen: @@ -114,6 +110,8 @@ async def _run_async_impl( # Restart from the beginning of the loop. start_index = 0 times_looped += 1 + # Reset the state of all sub-agents in the loop. + ctx.reset_sub_agent_states(self.name) # If the invocation is paused, we should not yield the end of agent event. if pause_invocation: diff --git a/src/google/adk/agents/parallel_agent.py b/src/google/adk/agents/parallel_agent.py index 69ccd8a4f1..cbbb0333d2 100644 --- a/src/google/adk/agents/parallel_agent.py +++ b/src/google/adk/agents/parallel_agent.py @@ -187,10 +187,6 @@ async def _run_async_impl( agent_runs = [] # Prepare and collect async generators for each sub-agent. for sub_agent in self.sub_agents: - if agent_state is None: - # Reset sub-agent state to make sure each sub-agent starts fresh. - ctx.set_agent_state(sub_agent.name) - sub_agent_ctx = _create_branch_ctx_for_sub_agent(self, sub_agent, ctx) # Only include sub-agents that haven't finished in a previous run. diff --git a/src/google/adk/agents/sequential_agent.py b/src/google/adk/agents/sequential_agent.py index 417008f9ce..af49629ff3 100644 --- a/src/google/adk/agents/sequential_agent.py +++ b/src/google/adk/agents/sequential_agent.py @@ -73,10 +73,6 @@ async def _run_async_impl( ctx.set_agent_state(self.name, agent_state=agent_state) yield self._create_agent_state_event(ctx) - # Reset the sub-agent's state in the context to ensure that each - # sub-agent starts fresh. - ctx.set_agent_state(sub_agent.name) - async with Aclosing(sub_agent.run_async(ctx)) as agen: async for event in agen: yield event diff --git a/tests/unittests/agents/test_invocation_context.py b/tests/unittests/agents/test_invocation_context.py index 2cdf38c9ea..620453e817 100644 --- a/tests/unittests/agents/test_invocation_context.py +++ b/tests/unittests/agents/test_invocation_context.py @@ -390,6 +390,40 @@ def test_reset_agent_state(self): assert 'agent1' not in invocation_context.agent_states assert 'agent1' not in invocation_context.end_of_agents + def test_reset_sub_agent_states(self): + """Tests that reset_sub_agent_states resets sub-agent states.""" + sub_sub_agent_1 = BaseAgent(name='sub_sub_agent_1') + sub_agent_1 = BaseAgent(name='sub_agent_1', sub_agents=[sub_sub_agent_1]) + sub_agent_2 = BaseAgent(name='sub_agent_2') + root_agent = BaseAgent( + name='root_agent', sub_agents=[sub_agent_1, sub_agent_2] + ) + + invocation_context = self._create_test_invocation_context( + ResumabilityConfig(is_resumable=True) + ) + invocation_context.agent = root_agent + invocation_context.set_agent_state( + 'sub_agent_1', agent_state=BaseAgentState() + ) + invocation_context.set_agent_state('sub_agent_2', end_of_agent=True) + invocation_context.set_agent_state( + 'sub_sub_agent_1', agent_state=BaseAgentState() + ) + + assert 'sub_agent_1' in invocation_context.agent_states + assert 'sub_agent_2' in invocation_context.end_of_agents + assert 'sub_sub_agent_1' in invocation_context.agent_states + + invocation_context.reset_sub_agent_states('root_agent') + + assert 'sub_agent_1' not in invocation_context.agent_states + assert 'sub_agent_1' not in invocation_context.end_of_agents + assert 'sub_agent_2' not in invocation_context.agent_states + assert 'sub_agent_2' not in invocation_context.end_of_agents + assert 'sub_sub_agent_1' not in invocation_context.agent_states + assert 'sub_sub_agent_1' not in invocation_context.end_of_agents + class TestFindMatchingFunctionCall: """Test suite for find_matching_function_call.""" From fa84bcb5756773eadff486b99c9bd416b4faa9c6 Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Mon, 13 Oct 2025 12:30:08 -0700 Subject: [PATCH 088/303] chore: Correct the callback signatures PiperOrigin-RevId: 818781277 --- .../instruction_embedded.template | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index 00c9aad681..ce0280875d 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -288,11 +288,11 @@ from typing import Optional from google.genai import types from google.adk.agents.callback_context import CallbackContext -def content_filter_callback(context: CallbackContext) -> Optional[types.Content]: +def content_filter_callback(callback_context: CallbackContext) -> Optional[types.Content]: """After agent callback to filter sensitive content.""" - # Access the response content through context - if hasattr(context, 'response') and context.response: - response_text = str(context.response) + # Access the response content through callback_context + if hasattr(callback_context, 'response') and callback_context.response: + response_text = str(callback_context.response) if "confidential" in response_text.lower(): filtered_text = response_text.replace("confidential", "[FILTERED]") return types.Content(parts=[types.Part(text=filtered_text)]) @@ -308,12 +308,12 @@ from google.adk.models.llm_request import LlmRequest from google.adk.models.llm_response import LlmResponse from google.adk.agents.callback_context import CallbackContext -def log_model_request(context: CallbackContext, request: LlmRequest) -> Optional[LlmResponse]: +def log_model_request(callback_context: CallbackContext, request: LlmRequest) -> Optional[LlmResponse]: """Before model callback to log requests.""" print(f"Model request: {{request.contents}}") return None # Return None to proceed with original request -def modify_model_response(context: CallbackContext, response: LlmResponse) -> Optional[LlmResponse]: +def modify_model_response(callback_context: CallbackContext, response: LlmResponse) -> Optional[LlmResponse]: """After model callback to modify response.""" # Modify response if needed return response # Return modified response or None for original @@ -327,25 +327,25 @@ from typing import Any, Dict, Optional from google.adk.tools.base_tool import BaseTool from google.adk.tools.tool_context import ToolContext -def validate_tool_input(tool: BaseTool, args: Dict[str, Any], context: ToolContext) -> Optional[Dict]: +def validate_tool_input(tool: BaseTool, tool_args: Dict[str, Any], tool_context: ToolContext) -> Optional[Dict]: """Before tool callback to validate input.""" # Validate or modify tool arguments - if "unsafe_param" in args: - del args["unsafe_param"] - return args # Return modified args or None for original + if "unsafe_param" in tool_args: + del tool_args["unsafe_param"] + return tool_args # Return modified args or None for original -def log_tool_result(tool: BaseTool, args: Dict[str, Any], context: ToolContext, result: Dict) -> Optional[Dict]: +def log_tool_result(tool: BaseTool, tool_args: Dict[str, Any], tool_context: ToolContext, result: Dict) -> Optional[Dict]: """After tool callback to log results.""" print(f"Tool {{tool.name}} executed with result: {{result}}") return None # Return None to keep original result ``` ## Callback Signature Summary: -- **Agent Callbacks**: `(CallbackContext) -> Optional[types.Content]` -- **Before Model**: `(CallbackContext, LlmRequest) -> Optional[LlmResponse]` -- **After Model**: `(CallbackContext, LlmResponse) -> Optional[LlmResponse]` -- **Before Tool**: `(BaseTool, Dict[str, Any], ToolContext) -> Optional[Dict]` -- **After Tool**: `(BaseTool, Dict[str, Any], ToolContext, Dict) -> Optional[Dict]` +- **Agent Callbacks**: `(callback_context: CallbackContext) -> Optional[types.Content]` +- **Before Model**: `(callback_context: CallbackContext, request: LlmRequest) -> Optional[LlmResponse]` +- **After Model**: `(callback_context: CallbackContext, response: LlmResponse) -> Optional[LlmResponse]` +- **Before Tool**: `(tool: BaseTool, tool_args: Dict[str, Any], tool_context: ToolContext) -> Optional[Dict]` +- **After Tool**: `(tool: BaseTool, tool_args: Dict[str, Any], tool_context: ToolContext, result: Dict) -> Optional[Dict]` ## Important ADK Requirements From e2072af69f40474431b6749b7b9dc22fbcbc7730 Mon Sep 17 00:00:00 2001 From: George Weale Date: Mon, 13 Oct 2025 13:08:40 -0700 Subject: [PATCH 089/303] feat: migrate invocation_context to callback_context Update plugin manager and built-in plugins to prioritize CallbackContext. Keep InvocationContext access for legacy plugins with adapter. Change callback docs/tests to cover the new context. PiperOrigin-RevId: 818798087 --- src/google/adk/agents/readonly_context.py | 21 ++- .../adk/cli/plugins/recordings_plugin.py | 9 +- src/google/adk/cli/plugins/replay_plugin.py | 9 +- src/google/adk/plugins/base_plugin.py | 122 ++++++++++++------ .../adk/plugins/global_instruction_plugin.py | 2 +- src/google/adk/plugins/logging_plugin.py | 43 +++--- src/google/adk/plugins/plugin_manager.py | 101 ++++++++++++++- tests/unittests/plugins/test_base_plugin.py | 24 ++-- .../plugins/test_global_instruction_plugin.py | 13 +- tests/unittests/test_runners.py | 6 +- 10 files changed, 240 insertions(+), 110 deletions(-) diff --git a/src/google/adk/agents/readonly_context.py b/src/google/adk/agents/readonly_context.py index c067fd11d9..12470be076 100644 --- a/src/google/adk/agents/readonly_context.py +++ b/src/google/adk/agents/readonly_context.py @@ -55,6 +55,21 @@ def state(self) -> MappingProxyType[str, Any]: return MappingProxyType(self._invocation_context.session.state) @property - def session(self) -> Session: - """The current session for this invocation.""" - return self._invocation_context.session + def user_id(self) -> str: + """The user ID for the current invocation.""" + return self._invocation_context.user_id + + @property + def app_name(self) -> str: + """The application name for the current invocation.""" + return self._invocation_context.app_name + + @property + def session_id(self) -> str: + """The session ID for the current invocation.""" + return self._invocation_context.session.id + + @property + def branch(self) -> Optional[str]: + """The branch name for the current invocation, if any.""" + return self._invocation_context.branch diff --git a/src/google/adk/cli/plugins/recordings_plugin.py b/src/google/adk/cli/plugins/recordings_plugin.py index 8ee368925a..0383e0b915 100644 --- a/src/google/adk/cli/plugins/recordings_plugin.py +++ b/src/google/adk/cli/plugins/recordings_plugin.py @@ -39,7 +39,6 @@ from .recordings_schema import ToolRecording if TYPE_CHECKING: - from ...agents.invocation_context import InvocationContext from ...tools.base_tool import BaseTool from ...tools.tool_context import ToolContext @@ -75,10 +74,10 @@ def __init__(self, *, name: str = "adk_recordings") -> None: @override async def before_run_callback( - self, *, invocation_context: InvocationContext + self, *, callback_context: CallbackContext ) -> Optional[types.Content]: """Always create fresh per-invocation recording state when enabled.""" - ctx = CallbackContext(invocation_context) + ctx = callback_context if self._is_record_mode_on(ctx): # Always create/overwrite the state for this invocation self._create_invocation_state(ctx) @@ -280,10 +279,10 @@ async def on_tool_error_callback( @override async def after_run_callback( - self, *, invocation_context: InvocationContext + self, *, callback_context: CallbackContext ) -> None: """Finalize and persist recordings, then clean per-invocation state.""" - ctx = CallbackContext(invocation_context) + ctx = callback_context if not self._is_record_mode_on(ctx): return None diff --git a/src/google/adk/cli/plugins/replay_plugin.py b/src/google/adk/cli/plugins/replay_plugin.py index 1ca63f6dd3..f0d972429e 100644 --- a/src/google/adk/cli/plugins/replay_plugin.py +++ b/src/google/adk/cli/plugins/replay_plugin.py @@ -38,7 +38,6 @@ from .recordings_schema import ToolRecording if TYPE_CHECKING: - from ...agents.invocation_context import InvocationContext from ...tools.base_tool import BaseTool from ...tools.tool_context import ToolContext @@ -81,10 +80,10 @@ def __init__(self, *, name: str = "adk_replay") -> None: @override async def before_run_callback( - self, *, invocation_context: InvocationContext + self, *, callback_context: CallbackContext ) -> Optional[types.Content]: """Load replay recordings when enabled.""" - ctx = CallbackContext(invocation_context) + ctx = callback_context if self._is_replay_mode_on(ctx): # Load the replay state for this invocation self._load_invocation_state(ctx) @@ -156,10 +155,10 @@ async def before_tool_callback( @override async def after_run_callback( - self, *, invocation_context: InvocationContext + self, *, callback_context: CallbackContext ) -> None: """Clean up replay state after invocation completes.""" - ctx = CallbackContext(invocation_context) + ctx = callback_context if not self._is_replay_mode_on(ctx): return None diff --git a/src/google/adk/plugins/base_plugin.py b/src/google/adk/plugins/base_plugin.py index fb3e3c00f8..99115433c0 100644 --- a/src/google/adk/plugins/base_plugin.py +++ b/src/google/adk/plugins/base_plugin.py @@ -111,11 +111,61 @@ def __init__(self, name: str): super().__init__() self.name = name + if TYPE_CHECKING: + + async def on_user_message_callback( + self, + *, + callback_context: Optional[CallbackContext] = None, + user_message: types.Content, + invocation_context: Optional[InvocationContext] = None, + ) -> Optional[types.Content]: + """Callback executed when a user message is received before an invocation starts. + + Plugins can implement this with either callback_context (new) or + invocation_context (deprecated) or both. + """ + + async def before_run_callback( + self, + *, + callback_context: Optional[CallbackContext] = None, + invocation_context: Optional[InvocationContext] = None, + ) -> Optional[types.Content]: + """Callback executed before the ADK runner runs. + + Plugins can implement this with either callback_context (new) or + invocation_context (deprecated) or both. + """ + + async def on_event_callback( + self, + *, + callback_context: Optional[CallbackContext] = None, + event: Event, + invocation_context: Optional[InvocationContext] = None, + ) -> Optional[Event]: + """Callback executed after an event is yielded from runner. + + Plugins can implement this with either callback_context (new) or + invocation_context (deprecated) or both. + """ + + async def after_run_callback( + self, + *, + callback_context: Optional[CallbackContext] = None, + invocation_context: Optional[InvocationContext] = None, + ) -> None: + """Callback executed after an ADK runner run has completed. + + Plugins can implement this with either callback_context (new) or + invocation_context (deprecated) or both. + """ + + # Runtime implementation accepts both via **kwargs async def on_user_message_callback( - self, - *, - invocation_context: InvocationContext, - user_message: types.Content, + self, **kwargs: Any ) -> Optional[types.Content]: """Callback executed when a user message is received before an invocation starts. @@ -123,69 +173,63 @@ async def on_user_message_callback( runner starts the invocation. Args: - invocation_context: The context for the entire invocation. + callback_context: The context for the callback execution. user_message: The message content input by user. + invocation_context: DEPRECATED. Use callback_context instead. The context + for the entire invocation. This parameter is maintained for backward + compatibility and will be removed in a future version. Returns: - An optional `types.Content` to be returned to the ADK. Returning a - value to replace the user message. Returning `None` to proceed - normally. + The modified user message or None if no modification is needed. """ - pass + return None - async def before_run_callback( - self, *, invocation_context: InvocationContext - ) -> Optional[types.Content]: + async def before_run_callback(self, **kwargs: Any) -> Optional[types.Content]: """Callback executed before the ADK runner runs. - This is the first callback to be called in the lifecycle, ideal for global - setup or initialization tasks. + This is the first lifecycle hook and is ideal for global setup, logging, + or checks that may stop the invocation from running. Args: - invocation_context: The context for the entire invocation, containing - session information, the root agent, etc. + callback_context: The context for the callback execution. + invocation_context: DEPRECATED. Use callback_context instead. The context + for the entire invocation. This parameter is maintained for backward + compatibility and will be removed in a future version. Returns: - An optional `Event` to be returned to the ADK. Returning a value to - halt execution of the runner and ends the runner with that event. Return - `None` to proceed normally. + Optional `types.Content` to halt execution and return the value to the + caller. Return `None` to proceed normally. """ - pass + return None - async def on_event_callback( - self, *, invocation_context: InvocationContext, event: Event - ) -> Optional[Event]: + async def on_event_callback(self, **kwargs: Any) -> Optional[Event]: """Callback executed after an event is yielded from runner. - This is the ideal place to make modification to the event before the event - is handled by the underlying agent app. - Args: - invocation_context: The context for the entire invocation. + callback_context: The context for the callback execution. event: The event raised by the runner. + invocation_context: DEPRECATED. Use callback_context instead. The context + for the entire invocation. This parameter is maintained for backward + compatibility and will be removed in a future version. Returns: - An optional value. A non-`None` return may be used by the framework to - modify or replace the response. Returning `None` allows the original - response to be used. + The modified event or None if no modification is needed. """ - pass + return None - async def after_run_callback( - self, *, invocation_context: InvocationContext - ) -> None: + async def after_run_callback(self, **kwargs: Any) -> None: """Callback executed after an ADK runner run has completed. - This is the final callback in the ADK lifecycle, suitable for cleanup, final - logging, or reporting tasks. - Args: - invocation_context: The context for the entire invocation. + callback_context: The context for the callback execution. + invocation_context: DEPRECATED. Use callback_context instead. The context + for the entire invocation. This parameter is maintained for backward + compatibility and will be removed in a future version. Returns: None """ - pass + return None async def before_agent_callback( self, *, agent: BaseAgent, callback_context: CallbackContext diff --git a/src/google/adk/plugins/global_instruction_plugin.py b/src/google/adk/plugins/global_instruction_plugin.py index 4251f691f6..5cdf489f22 100644 --- a/src/google/adk/plugins/global_instruction_plugin.py +++ b/src/google/adk/plugins/global_instruction_plugin.py @@ -79,7 +79,7 @@ async def before_model_callback( return None # Resolve the global instruction (handle both string and InstructionProvider) - readonly_context = ReadonlyContext(callback_context.invocation_context) + readonly_context = callback_context final_global_instruction = await self._resolve_global_instruction( readonly_context ) diff --git a/src/google/adk/plugins/logging_plugin.py b/src/google/adk/plugins/logging_plugin.py index 72d1ca83e2..11773461c7 100644 --- a/src/google/adk/plugins/logging_plugin.py +++ b/src/google/adk/plugins/logging_plugin.py @@ -69,38 +69,32 @@ def __init__(self, name: str = "logging_plugin"): async def on_user_message_callback( self, *, - invocation_context: InvocationContext, + callback_context: CallbackContext, user_message: types.Content, ) -> Optional[types.Content]: """Log user message and invocation start.""" self._log(f"🚀 USER MESSAGE RECEIVED") - self._log(f" Invocation ID: {invocation_context.invocation_id}") - self._log(f" Session ID: {invocation_context.session.id}") - self._log(f" User ID: {invocation_context.user_id}") - self._log(f" App Name: {invocation_context.app_name}") - self._log( - " Root Agent:" - f" {invocation_context.agent.name if hasattr(invocation_context.agent, 'name') else 'Unknown'}" - ) + self._log(f" Invocation ID: {callback_context.invocation_id}") + self._log(f" Session ID: {callback_context.session_id}") + self._log(f" User ID: {callback_context.user_id}") + self._log(f" App Name: {callback_context.app_name}") + self._log(f" Root Agent: {callback_context.agent_name}") self._log(f" User Content: {self._format_content(user_message)}") - if invocation_context.branch: - self._log(f" Branch: {invocation_context.branch}") + if callback_context.branch: + self._log(f" Branch: {callback_context.branch}") return None async def before_run_callback( - self, *, invocation_context: InvocationContext + self, *, callback_context: CallbackContext ) -> Optional[types.Content]: """Log invocation start.""" self._log(f"🏃 INVOCATION STARTING") - self._log(f" Invocation ID: {invocation_context.invocation_id}") - self._log( - " Starting Agent:" - f" {invocation_context.agent.name if hasattr(invocation_context.agent, 'name') else 'Unknown'}" - ) + self._log(f" Invocation ID: {callback_context.invocation_id}") + self._log(f" Starting Agent: {callback_context.agent_name}") return None async def on_event_callback( - self, *, invocation_context: InvocationContext, event: Event + self, *, callback_context: CallbackContext, event: Event ) -> Optional[Event]: """Log events yielded from the runner.""" self._log(f"📢 EVENT YIELDED") @@ -123,15 +117,12 @@ async def on_event_callback( return None async def after_run_callback( - self, *, invocation_context: InvocationContext + self, *, callback_context: CallbackContext ) -> Optional[None]: """Log invocation completion.""" self._log(f"✅ INVOCATION COMPLETED") - self._log(f" Invocation ID: {invocation_context.invocation_id}") - self._log( - " Final Agent:" - f" {invocation_context.agent.name if hasattr(invocation_context.agent, 'name') else 'Unknown'}" - ) + self._log(f" Invocation ID: {callback_context.invocation_id}") + self._log(f" Final Agent: {callback_context.agent_name}") return None async def before_agent_callback( @@ -141,8 +132,8 @@ async def before_agent_callback( self._log(f"🤖 AGENT STARTING") self._log(f" Agent Name: {callback_context.agent_name}") self._log(f" Invocation ID: {callback_context.invocation_id}") - if callback_context._invocation_context.branch: - self._log(f" Branch: {callback_context._invocation_context.branch}") + if callback_context.branch: + self._log(f" Branch: {callback_context.branch}") return None async def after_agent_callback( diff --git a/src/google/adk/plugins/plugin_manager.py b/src/google/adk/plugins/plugin_manager.py index 217dbb8be6..23708f1598 100644 --- a/src/google/adk/plugins/plugin_manager.py +++ b/src/google/adk/plugins/plugin_manager.py @@ -14,20 +14,22 @@ from __future__ import annotations +import inspect import logging from typing import Any from typing import List from typing import Literal from typing import Optional from typing import TYPE_CHECKING +import warnings from google.genai import types +from ..agents.callback_context import CallbackContext from .base_plugin import BasePlugin if TYPE_CHECKING: from ..agents.base_agent import BaseAgent - from ..agents.callback_context import CallbackContext from ..agents.invocation_context import InvocationContext from ..events.event import Event from ..models.llm_request import LlmRequest @@ -113,35 +115,39 @@ async def run_on_user_message_callback( invocation_context: InvocationContext, ) -> Optional[types.Content]: """Runs the `on_user_message_callback` for all plugins.""" + callback_context = CallbackContext(invocation_context) return await self._run_callbacks( "on_user_message_callback", user_message=user_message, - invocation_context=invocation_context, + callback_context=callback_context, ) async def run_before_run_callback( self, *, invocation_context: InvocationContext ) -> Optional[types.Content]: """Runs the `before_run_callback` for all plugins.""" + callback_context = CallbackContext(invocation_context) return await self._run_callbacks( - "before_run_callback", invocation_context=invocation_context + "before_run_callback", callback_context=callback_context ) async def run_after_run_callback( self, *, invocation_context: InvocationContext ) -> Optional[None]: """Runs the `after_run_callback` for all plugins.""" + callback_context = CallbackContext(invocation_context) return await self._run_callbacks( - "after_run_callback", invocation_context=invocation_context + "after_run_callback", callback_context=callback_context ) async def run_on_event_callback( self, *, invocation_context: InvocationContext, event: Event ) -> Optional[Event]: """Runs the `on_event_callback` for all plugins.""" + callback_context = CallbackContext(invocation_context) return await self._run_callbacks( "on_event_callback", - invocation_context=invocation_context, + callback_context=callback_context, event=event, ) @@ -277,8 +283,14 @@ async def _run_callbacks( # Each plugin might not implement all callbacks. The base class provides # default `pass` implementations, so `getattr` will always succeed. callback_method = getattr(plugin, callback_name) + + # Backward compatibility: Support both callback_context and invocation_context + adapted_kwargs = self._adapt_kwargs_for_plugin( + plugin, callback_method, kwargs + ) + try: - result = await callback_method(**kwargs) + result = await callback_method(**adapted_kwargs) if result is not None: # Early exit: A plugin has returned a value. We stop # processing further plugins and return this value immediately. @@ -297,3 +309,80 @@ async def _run_callbacks( raise RuntimeError(error_message) from e return None + + def _adapt_kwargs_for_plugin( + self, plugin: BasePlugin, callback_method: Any, kwargs: dict[str, Any] + ) -> dict[str, Any]: + """Adapts keyword arguments for backward compatibility with legacy plugins. + + This method handles the migration from invocation_context to + callback_context + by inspecting the plugin's callback method signature and providing the + appropriate parameter name. For maximum compatibility, it may pass both + parameters when the signature is ambiguous. + + Args: + plugin: The plugin instance. + callback_method: The callback method to be invoked. + kwargs: The original keyword arguments. + + Returns: + Adapted keyword arguments that match the plugin's expected signature. + """ + # If no callback_context in kwargs, no adaptation needed + if "callback_context" not in kwargs: + return kwargs.copy() + + callback_context = kwargs["callback_context"] + + try: + # Inspect the callback method signature + sig = inspect.signature(callback_method) + params = sig.parameters + + # Case 1: Method explicitly wants only invocation_context + if "invocation_context" in params and "callback_context" not in params: + # Legacy plugin - pass only invocation_context + warnings.warn( + f"Plugin '{plugin.name}' uses deprecated 'invocation_context' " + "parameter in callback methods. Please update to use " + "'callback_context' instead. Support for 'invocation_context' " + "will be removed in a future version.", + DeprecationWarning, + stacklevel=3, + ) + adapted_kwargs = kwargs.copy() + adapted_kwargs["invocation_context"] = ( + callback_context._invocation_context + ) + del adapted_kwargs["callback_context"] + return adapted_kwargs + + # Case 2: Method explicitly wants only callback_context + elif "callback_context" in params and "invocation_context" not in params: + # Modern plugin - pass only callback_context + return kwargs.copy() + + # Case 3: Method wants both, uses **kwargs, or signature is unclear + else: + # Pass both parameters for maximum compatibility + # This handles: **kwargs, both parameters explicitly, or unknown cases + adapted_kwargs = kwargs.copy() + adapted_kwargs["invocation_context"] = ( + callback_context._invocation_context + ) + return adapted_kwargs + + except (ValueError, TypeError) as e: + # Fallback: Pass both parameters for safety + logger.debug( + "Failed to inspect plugin '%s' callback signature: %s. " + "Passing both callback_context and invocation_context for safety.", + plugin.name, + e, + ) + adapted_kwargs = kwargs.copy() + adapted_kwargs["invocation_context"] = ( + callback_context._invocation_context + ) + return adapted_kwargs diff --git a/tests/unittests/plugins/test_base_plugin.py b/tests/unittests/plugins/test_base_plugin.py index 3a2de94303..2af514fc28 100644 --- a/tests/unittests/plugins/test_base_plugin.py +++ b/tests/unittests/plugins/test_base_plugin.py @@ -103,19 +103,15 @@ async def test_base_plugin_default_callbacks_return_none(): assert ( await plugin.on_user_message_callback( user_message=mock_user_message, - invocation_context=mock_context, + callback_context=mock_context, ) is None ) - assert ( - await plugin.before_run_callback(invocation_context=mock_context) is None - ) - assert ( - await plugin.after_run_callback(invocation_context=mock_context) is None - ) + assert await plugin.before_run_callback(callback_context=mock_context) is None + assert await plugin.after_run_callback(callback_context=mock_context) is None assert ( await plugin.on_event_callback( - invocation_context=mock_context, event=mock_context + callback_context=mock_context, event=mock_context ) is None ) @@ -200,25 +196,21 @@ async def test_base_plugin_all_callbacks_can_be_overridden(): assert ( await plugin.on_user_message_callback( user_message=mock_user_message, - invocation_context=mock_invocation_context, + callback_context=mock_callback_context, ) == "overridden_on_user_message" ) assert ( - await plugin.before_run_callback( - invocation_context=mock_invocation_context - ) + await plugin.before_run_callback(callback_context=mock_callback_context) == "overridden_before_run" ) assert ( - await plugin.after_run_callback( - invocation_context=mock_invocation_context - ) + await plugin.after_run_callback(callback_context=mock_callback_context) == "overridden_after_run" ) assert ( await plugin.on_event_callback( - invocation_context=mock_invocation_context, event=mock_event + callback_context=mock_callback_context, event=mock_event ) == "overridden_on_event" ) diff --git a/tests/unittests/plugins/test_global_instruction_plugin.py b/tests/unittests/plugins/test_global_instruction_plugin.py index 2253b1fb5a..4571dd3941 100644 --- a/tests/unittests/plugins/test_global_instruction_plugin.py +++ b/tests/unittests/plugins/test_global_instruction_plugin.py @@ -43,7 +43,7 @@ async def test_global_instruction_plugin_with_string(): mock_invocation_context.session = mock_session mock_callback_context = Mock(spec=CallbackContext) - mock_callback_context.invocation_context = mock_invocation_context + mock_callback_context._invocation_context = mock_invocation_context llm_request = LlmRequest( model="gemini-1.5-flash", @@ -70,7 +70,7 @@ async def test_global_instruction_plugin_with_instruction_provider(): """Test GlobalInstructionPlugin with an InstructionProvider function.""" async def build_global_instruction(readonly_context: ReadonlyContext) -> str: - return f"You are assistant for user {readonly_context.session.user_id}." + return f"You are assistant for user {readonly_context.user_id}." plugin = GlobalInstructionPlugin(global_instruction=build_global_instruction) @@ -83,7 +83,8 @@ async def build_global_instruction(readonly_context: ReadonlyContext) -> str: mock_invocation_context.session = mock_session mock_callback_context = Mock(spec=CallbackContext) - mock_callback_context.invocation_context = mock_invocation_context + mock_callback_context._invocation_context = mock_invocation_context + mock_callback_context.user_id = "alice" llm_request = LlmRequest( model="gemini-1.5-flash", @@ -119,7 +120,7 @@ async def test_global_instruction_plugin_empty_instruction(): mock_invocation_context.session = mock_session mock_callback_context = Mock(spec=CallbackContext) - mock_callback_context.invocation_context = mock_invocation_context + mock_callback_context._invocation_context = mock_invocation_context llm_request = LlmRequest( model="gemini-1.5-flash", @@ -156,7 +157,7 @@ async def test_global_instruction_plugin_leads_existing(): mock_invocation_context.session = mock_session mock_callback_context = Mock(spec=CallbackContext) - mock_callback_context.invocation_context = mock_invocation_context + mock_callback_context._invocation_context = mock_invocation_context llm_request = LlmRequest( model="gemini-1.5-flash", @@ -191,7 +192,7 @@ async def test_global_instruction_plugin_prepends_to_list(): mock_invocation_context.session = mock_session mock_callback_context = Mock(spec=CallbackContext) - mock_callback_context.invocation_context = mock_invocation_context + mock_callback_context._invocation_context = mock_invocation_context llm_request = LlmRequest( model="gemini-1.5-flash", diff --git a/tests/unittests/test_runners.py b/tests/unittests/test_runners.py index e6578aabe2..8c003b36be 100644 --- a/tests/unittests/test_runners.py +++ b/tests/unittests/test_runners.py @@ -15,8 +15,8 @@ from typing import Optional from google.adk.agents.base_agent import BaseAgent +from google.adk.agents.callback_context import CallbackContext from google.adk.agents.context_cache_config import ContextCacheConfig -from google.adk.agents.invocation_context import InvocationContext from google.adk.agents.llm_agent import LlmAgent from google.adk.apps.app import App from google.adk.apps.app import ResumabilityConfig @@ -98,7 +98,7 @@ def __init__(self): async def on_user_message_callback( self, *, - invocation_context: InvocationContext, + callback_context: CallbackContext, user_message: types.Content, ) -> Optional[types.Content]: if not self.enable_user_message_callback: @@ -109,7 +109,7 @@ async def on_user_message_callback( ) async def on_event_callback( - self, *, invocation_context: InvocationContext, event: Event + self, *, callback_context: CallbackContext, event: Event ) -> Optional[Event]: if not self.enable_event_callback: return None From 2158b3c91531e9125761f211f125d9ab41a55e10 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Mon, 13 Oct 2025 13:45:21 -0700 Subject: [PATCH 090/303] fix: correctly populate context_id in remote_a2a_agent library when constructing a2a request PiperOrigin-RevId: 818813897 --- src/google/adk/agents/remote_a2a_agent.py | 26 ++++++----------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/src/google/adk/agents/remote_a2a_agent.py b/src/google/adk/agents/remote_a2a_agent.py index 6c532dff93..bee8904c7e 100644 --- a/src/google/adk/agents/remote_a2a_agent.py +++ b/src/google/adk/agents/remote_a2a_agent.py @@ -337,26 +337,15 @@ def _create_a2a_request_for_user_function_response( ctx.session.events[-1], ctx, Role.user, self._genai_part_converter ) if function_call_event.custom_metadata: - a2a_message.task_id = ( - function_call_event.custom_metadata.get( - A2A_METADATA_PREFIX + "task_id" - ) - if function_call_event.custom_metadata - else None - ) - a2a_message.context_id = ( - function_call_event.custom_metadata.get( - A2A_METADATA_PREFIX + "context_id" - ) - if function_call_event.custom_metadata - else None - ) + metadata = function_call_event.custom_metadata + a2a_message.task_id = metadata.get(A2A_METADATA_PREFIX + "task_id") + a2a_message.context_id = metadata.get(A2A_METADATA_PREFIX + "context_id") return a2a_message def _construct_message_parts_from_session( self, ctx: InvocationContext - ) -> tuple[list[A2APart], dict[str, Any], str]: + ) -> tuple[list[A2APart], Optional[str]]: """Construct A2A message parts from session events. Args: @@ -374,11 +363,8 @@ def _construct_message_parts_from_session( # stop on content generated by current a2a agent given it should already # be in remote session if event.custom_metadata: - context_id = ( - event.custom_metadata.get(A2A_METADATA_PREFIX + "context_id") - if event.custom_metadata - else None - ) + metadata = event.custom_metadata + context_id = metadata.get(A2A_METADATA_PREFIX + "context_id") break if not event.content or not event.content.parts: From df05ed6b3b7b218d85fddc1acd6617802cdf6f2a Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Mon, 13 Oct 2025 14:05:09 -0700 Subject: [PATCH 091/303] feat: migrate invocation_context to callback_context Update plugin manager and built-in plugins to prioritize CallbackContext. Keep InvocationContext access for legacy plugins with adapter. Change callback docs/tests to cover the new context. PiperOrigin-RevId: 818822267 --- src/google/adk/agents/readonly_context.py | 21 +-- .../adk/cli/plugins/recordings_plugin.py | 9 +- src/google/adk/cli/plugins/replay_plugin.py | 9 +- src/google/adk/plugins/base_plugin.py | 122 ++++++------------ .../adk/plugins/global_instruction_plugin.py | 2 +- src/google/adk/plugins/logging_plugin.py | 43 +++--- src/google/adk/plugins/plugin_manager.py | 101 +-------------- tests/unittests/plugins/test_base_plugin.py | 24 ++-- .../plugins/test_global_instruction_plugin.py | 13 +- tests/unittests/test_runners.py | 6 +- 10 files changed, 110 insertions(+), 240 deletions(-) diff --git a/src/google/adk/agents/readonly_context.py b/src/google/adk/agents/readonly_context.py index 12470be076..c067fd11d9 100644 --- a/src/google/adk/agents/readonly_context.py +++ b/src/google/adk/agents/readonly_context.py @@ -55,21 +55,6 @@ def state(self) -> MappingProxyType[str, Any]: return MappingProxyType(self._invocation_context.session.state) @property - def user_id(self) -> str: - """The user ID for the current invocation.""" - return self._invocation_context.user_id - - @property - def app_name(self) -> str: - """The application name for the current invocation.""" - return self._invocation_context.app_name - - @property - def session_id(self) -> str: - """The session ID for the current invocation.""" - return self._invocation_context.session.id - - @property - def branch(self) -> Optional[str]: - """The branch name for the current invocation, if any.""" - return self._invocation_context.branch + def session(self) -> Session: + """The current session for this invocation.""" + return self._invocation_context.session diff --git a/src/google/adk/cli/plugins/recordings_plugin.py b/src/google/adk/cli/plugins/recordings_plugin.py index 0383e0b915..8ee368925a 100644 --- a/src/google/adk/cli/plugins/recordings_plugin.py +++ b/src/google/adk/cli/plugins/recordings_plugin.py @@ -39,6 +39,7 @@ from .recordings_schema import ToolRecording if TYPE_CHECKING: + from ...agents.invocation_context import InvocationContext from ...tools.base_tool import BaseTool from ...tools.tool_context import ToolContext @@ -74,10 +75,10 @@ def __init__(self, *, name: str = "adk_recordings") -> None: @override async def before_run_callback( - self, *, callback_context: CallbackContext + self, *, invocation_context: InvocationContext ) -> Optional[types.Content]: """Always create fresh per-invocation recording state when enabled.""" - ctx = callback_context + ctx = CallbackContext(invocation_context) if self._is_record_mode_on(ctx): # Always create/overwrite the state for this invocation self._create_invocation_state(ctx) @@ -279,10 +280,10 @@ async def on_tool_error_callback( @override async def after_run_callback( - self, *, callback_context: CallbackContext + self, *, invocation_context: InvocationContext ) -> None: """Finalize and persist recordings, then clean per-invocation state.""" - ctx = callback_context + ctx = CallbackContext(invocation_context) if not self._is_record_mode_on(ctx): return None diff --git a/src/google/adk/cli/plugins/replay_plugin.py b/src/google/adk/cli/plugins/replay_plugin.py index f0d972429e..1ca63f6dd3 100644 --- a/src/google/adk/cli/plugins/replay_plugin.py +++ b/src/google/adk/cli/plugins/replay_plugin.py @@ -38,6 +38,7 @@ from .recordings_schema import ToolRecording if TYPE_CHECKING: + from ...agents.invocation_context import InvocationContext from ...tools.base_tool import BaseTool from ...tools.tool_context import ToolContext @@ -80,10 +81,10 @@ def __init__(self, *, name: str = "adk_replay") -> None: @override async def before_run_callback( - self, *, callback_context: CallbackContext + self, *, invocation_context: InvocationContext ) -> Optional[types.Content]: """Load replay recordings when enabled.""" - ctx = callback_context + ctx = CallbackContext(invocation_context) if self._is_replay_mode_on(ctx): # Load the replay state for this invocation self._load_invocation_state(ctx) @@ -155,10 +156,10 @@ async def before_tool_callback( @override async def after_run_callback( - self, *, callback_context: CallbackContext + self, *, invocation_context: InvocationContext ) -> None: """Clean up replay state after invocation completes.""" - ctx = callback_context + ctx = CallbackContext(invocation_context) if not self._is_replay_mode_on(ctx): return None diff --git a/src/google/adk/plugins/base_plugin.py b/src/google/adk/plugins/base_plugin.py index 99115433c0..fb3e3c00f8 100644 --- a/src/google/adk/plugins/base_plugin.py +++ b/src/google/adk/plugins/base_plugin.py @@ -111,61 +111,11 @@ def __init__(self, name: str): super().__init__() self.name = name - if TYPE_CHECKING: - - async def on_user_message_callback( - self, - *, - callback_context: Optional[CallbackContext] = None, - user_message: types.Content, - invocation_context: Optional[InvocationContext] = None, - ) -> Optional[types.Content]: - """Callback executed when a user message is received before an invocation starts. - - Plugins can implement this with either callback_context (new) or - invocation_context (deprecated) or both. - """ - - async def before_run_callback( - self, - *, - callback_context: Optional[CallbackContext] = None, - invocation_context: Optional[InvocationContext] = None, - ) -> Optional[types.Content]: - """Callback executed before the ADK runner runs. - - Plugins can implement this with either callback_context (new) or - invocation_context (deprecated) or both. - """ - - async def on_event_callback( - self, - *, - callback_context: Optional[CallbackContext] = None, - event: Event, - invocation_context: Optional[InvocationContext] = None, - ) -> Optional[Event]: - """Callback executed after an event is yielded from runner. - - Plugins can implement this with either callback_context (new) or - invocation_context (deprecated) or both. - """ - - async def after_run_callback( - self, - *, - callback_context: Optional[CallbackContext] = None, - invocation_context: Optional[InvocationContext] = None, - ) -> None: - """Callback executed after an ADK runner run has completed. - - Plugins can implement this with either callback_context (new) or - invocation_context (deprecated) or both. - """ - - # Runtime implementation accepts both via **kwargs async def on_user_message_callback( - self, **kwargs: Any + self, + *, + invocation_context: InvocationContext, + user_message: types.Content, ) -> Optional[types.Content]: """Callback executed when a user message is received before an invocation starts. @@ -173,63 +123,69 @@ async def on_user_message_callback( runner starts the invocation. Args: - callback_context: The context for the callback execution. + invocation_context: The context for the entire invocation. user_message: The message content input by user. - invocation_context: DEPRECATED. Use callback_context instead. The context - for the entire invocation. This parameter is maintained for backward - compatibility and will be removed in a future version. Returns: - The modified user message or None if no modification is needed. + An optional `types.Content` to be returned to the ADK. Returning a + value to replace the user message. Returning `None` to proceed + normally. """ - return None + pass - async def before_run_callback(self, **kwargs: Any) -> Optional[types.Content]: + async def before_run_callback( + self, *, invocation_context: InvocationContext + ) -> Optional[types.Content]: """Callback executed before the ADK runner runs. - This is the first lifecycle hook and is ideal for global setup, logging, - or checks that may stop the invocation from running. + This is the first callback to be called in the lifecycle, ideal for global + setup or initialization tasks. Args: - callback_context: The context for the callback execution. - invocation_context: DEPRECATED. Use callback_context instead. The context - for the entire invocation. This parameter is maintained for backward - compatibility and will be removed in a future version. + invocation_context: The context for the entire invocation, containing + session information, the root agent, etc. Returns: - Optional `types.Content` to halt execution and return the value to the - caller. Return `None` to proceed normally. + An optional `Event` to be returned to the ADK. Returning a value to + halt execution of the runner and ends the runner with that event. Return + `None` to proceed normally. """ - return None + pass - async def on_event_callback(self, **kwargs: Any) -> Optional[Event]: + async def on_event_callback( + self, *, invocation_context: InvocationContext, event: Event + ) -> Optional[Event]: """Callback executed after an event is yielded from runner. + This is the ideal place to make modification to the event before the event + is handled by the underlying agent app. + Args: - callback_context: The context for the callback execution. + invocation_context: The context for the entire invocation. event: The event raised by the runner. - invocation_context: DEPRECATED. Use callback_context instead. The context - for the entire invocation. This parameter is maintained for backward - compatibility and will be removed in a future version. Returns: - The modified event or None if no modification is needed. + An optional value. A non-`None` return may be used by the framework to + modify or replace the response. Returning `None` allows the original + response to be used. """ - return None + pass - async def after_run_callback(self, **kwargs: Any) -> None: + async def after_run_callback( + self, *, invocation_context: InvocationContext + ) -> None: """Callback executed after an ADK runner run has completed. + This is the final callback in the ADK lifecycle, suitable for cleanup, final + logging, or reporting tasks. + Args: - callback_context: The context for the callback execution. - invocation_context: DEPRECATED. Use callback_context instead. The context - for the entire invocation. This parameter is maintained for backward - compatibility and will be removed in a future version. + invocation_context: The context for the entire invocation. Returns: None """ - return None + pass async def before_agent_callback( self, *, agent: BaseAgent, callback_context: CallbackContext diff --git a/src/google/adk/plugins/global_instruction_plugin.py b/src/google/adk/plugins/global_instruction_plugin.py index 5cdf489f22..4251f691f6 100644 --- a/src/google/adk/plugins/global_instruction_plugin.py +++ b/src/google/adk/plugins/global_instruction_plugin.py @@ -79,7 +79,7 @@ async def before_model_callback( return None # Resolve the global instruction (handle both string and InstructionProvider) - readonly_context = callback_context + readonly_context = ReadonlyContext(callback_context.invocation_context) final_global_instruction = await self._resolve_global_instruction( readonly_context ) diff --git a/src/google/adk/plugins/logging_plugin.py b/src/google/adk/plugins/logging_plugin.py index 11773461c7..72d1ca83e2 100644 --- a/src/google/adk/plugins/logging_plugin.py +++ b/src/google/adk/plugins/logging_plugin.py @@ -69,32 +69,38 @@ def __init__(self, name: str = "logging_plugin"): async def on_user_message_callback( self, *, - callback_context: CallbackContext, + invocation_context: InvocationContext, user_message: types.Content, ) -> Optional[types.Content]: """Log user message and invocation start.""" self._log(f"🚀 USER MESSAGE RECEIVED") - self._log(f" Invocation ID: {callback_context.invocation_id}") - self._log(f" Session ID: {callback_context.session_id}") - self._log(f" User ID: {callback_context.user_id}") - self._log(f" App Name: {callback_context.app_name}") - self._log(f" Root Agent: {callback_context.agent_name}") + self._log(f" Invocation ID: {invocation_context.invocation_id}") + self._log(f" Session ID: {invocation_context.session.id}") + self._log(f" User ID: {invocation_context.user_id}") + self._log(f" App Name: {invocation_context.app_name}") + self._log( + " Root Agent:" + f" {invocation_context.agent.name if hasattr(invocation_context.agent, 'name') else 'Unknown'}" + ) self._log(f" User Content: {self._format_content(user_message)}") - if callback_context.branch: - self._log(f" Branch: {callback_context.branch}") + if invocation_context.branch: + self._log(f" Branch: {invocation_context.branch}") return None async def before_run_callback( - self, *, callback_context: CallbackContext + self, *, invocation_context: InvocationContext ) -> Optional[types.Content]: """Log invocation start.""" self._log(f"🏃 INVOCATION STARTING") - self._log(f" Invocation ID: {callback_context.invocation_id}") - self._log(f" Starting Agent: {callback_context.agent_name}") + self._log(f" Invocation ID: {invocation_context.invocation_id}") + self._log( + " Starting Agent:" + f" {invocation_context.agent.name if hasattr(invocation_context.agent, 'name') else 'Unknown'}" + ) return None async def on_event_callback( - self, *, callback_context: CallbackContext, event: Event + self, *, invocation_context: InvocationContext, event: Event ) -> Optional[Event]: """Log events yielded from the runner.""" self._log(f"📢 EVENT YIELDED") @@ -117,12 +123,15 @@ async def on_event_callback( return None async def after_run_callback( - self, *, callback_context: CallbackContext + self, *, invocation_context: InvocationContext ) -> Optional[None]: """Log invocation completion.""" self._log(f"✅ INVOCATION COMPLETED") - self._log(f" Invocation ID: {callback_context.invocation_id}") - self._log(f" Final Agent: {callback_context.agent_name}") + self._log(f" Invocation ID: {invocation_context.invocation_id}") + self._log( + " Final Agent:" + f" {invocation_context.agent.name if hasattr(invocation_context.agent, 'name') else 'Unknown'}" + ) return None async def before_agent_callback( @@ -132,8 +141,8 @@ async def before_agent_callback( self._log(f"🤖 AGENT STARTING") self._log(f" Agent Name: {callback_context.agent_name}") self._log(f" Invocation ID: {callback_context.invocation_id}") - if callback_context.branch: - self._log(f" Branch: {callback_context.branch}") + if callback_context._invocation_context.branch: + self._log(f" Branch: {callback_context._invocation_context.branch}") return None async def after_agent_callback( diff --git a/src/google/adk/plugins/plugin_manager.py b/src/google/adk/plugins/plugin_manager.py index 23708f1598..217dbb8be6 100644 --- a/src/google/adk/plugins/plugin_manager.py +++ b/src/google/adk/plugins/plugin_manager.py @@ -14,22 +14,20 @@ from __future__ import annotations -import inspect import logging from typing import Any from typing import List from typing import Literal from typing import Optional from typing import TYPE_CHECKING -import warnings from google.genai import types -from ..agents.callback_context import CallbackContext from .base_plugin import BasePlugin if TYPE_CHECKING: from ..agents.base_agent import BaseAgent + from ..agents.callback_context import CallbackContext from ..agents.invocation_context import InvocationContext from ..events.event import Event from ..models.llm_request import LlmRequest @@ -115,39 +113,35 @@ async def run_on_user_message_callback( invocation_context: InvocationContext, ) -> Optional[types.Content]: """Runs the `on_user_message_callback` for all plugins.""" - callback_context = CallbackContext(invocation_context) return await self._run_callbacks( "on_user_message_callback", user_message=user_message, - callback_context=callback_context, + invocation_context=invocation_context, ) async def run_before_run_callback( self, *, invocation_context: InvocationContext ) -> Optional[types.Content]: """Runs the `before_run_callback` for all plugins.""" - callback_context = CallbackContext(invocation_context) return await self._run_callbacks( - "before_run_callback", callback_context=callback_context + "before_run_callback", invocation_context=invocation_context ) async def run_after_run_callback( self, *, invocation_context: InvocationContext ) -> Optional[None]: """Runs the `after_run_callback` for all plugins.""" - callback_context = CallbackContext(invocation_context) return await self._run_callbacks( - "after_run_callback", callback_context=callback_context + "after_run_callback", invocation_context=invocation_context ) async def run_on_event_callback( self, *, invocation_context: InvocationContext, event: Event ) -> Optional[Event]: """Runs the `on_event_callback` for all plugins.""" - callback_context = CallbackContext(invocation_context) return await self._run_callbacks( "on_event_callback", - callback_context=callback_context, + invocation_context=invocation_context, event=event, ) @@ -283,14 +277,8 @@ async def _run_callbacks( # Each plugin might not implement all callbacks. The base class provides # default `pass` implementations, so `getattr` will always succeed. callback_method = getattr(plugin, callback_name) - - # Backward compatibility: Support both callback_context and invocation_context - adapted_kwargs = self._adapt_kwargs_for_plugin( - plugin, callback_method, kwargs - ) - try: - result = await callback_method(**adapted_kwargs) + result = await callback_method(**kwargs) if result is not None: # Early exit: A plugin has returned a value. We stop # processing further plugins and return this value immediately. @@ -309,80 +297,3 @@ async def _run_callbacks( raise RuntimeError(error_message) from e return None - - def _adapt_kwargs_for_plugin( - self, plugin: BasePlugin, callback_method: Any, kwargs: dict[str, Any] - ) -> dict[str, Any]: - """Adapts keyword arguments for backward compatibility with legacy plugins. - - This method handles the migration from invocation_context to - callback_context - by inspecting the plugin's callback method signature and providing the - appropriate parameter name. For maximum compatibility, it may pass both - parameters when the signature is ambiguous. - - Args: - plugin: The plugin instance. - callback_method: The callback method to be invoked. - kwargs: The original keyword arguments. - - Returns: - Adapted keyword arguments that match the plugin's expected signature. - """ - # If no callback_context in kwargs, no adaptation needed - if "callback_context" not in kwargs: - return kwargs.copy() - - callback_context = kwargs["callback_context"] - - try: - # Inspect the callback method signature - sig = inspect.signature(callback_method) - params = sig.parameters - - # Case 1: Method explicitly wants only invocation_context - if "invocation_context" in params and "callback_context" not in params: - # Legacy plugin - pass only invocation_context - warnings.warn( - f"Plugin '{plugin.name}' uses deprecated 'invocation_context' " - "parameter in callback methods. Please update to use " - "'callback_context' instead. Support for 'invocation_context' " - "will be removed in a future version.", - DeprecationWarning, - stacklevel=3, - ) - adapted_kwargs = kwargs.copy() - adapted_kwargs["invocation_context"] = ( - callback_context._invocation_context - ) - del adapted_kwargs["callback_context"] - return adapted_kwargs - - # Case 2: Method explicitly wants only callback_context - elif "callback_context" in params and "invocation_context" not in params: - # Modern plugin - pass only callback_context - return kwargs.copy() - - # Case 3: Method wants both, uses **kwargs, or signature is unclear - else: - # Pass both parameters for maximum compatibility - # This handles: **kwargs, both parameters explicitly, or unknown cases - adapted_kwargs = kwargs.copy() - adapted_kwargs["invocation_context"] = ( - callback_context._invocation_context - ) - return adapted_kwargs - - except (ValueError, TypeError) as e: - # Fallback: Pass both parameters for safety - logger.debug( - "Failed to inspect plugin '%s' callback signature: %s. " - "Passing both callback_context and invocation_context for safety.", - plugin.name, - e, - ) - adapted_kwargs = kwargs.copy() - adapted_kwargs["invocation_context"] = ( - callback_context._invocation_context - ) - return adapted_kwargs diff --git a/tests/unittests/plugins/test_base_plugin.py b/tests/unittests/plugins/test_base_plugin.py index 2af514fc28..3a2de94303 100644 --- a/tests/unittests/plugins/test_base_plugin.py +++ b/tests/unittests/plugins/test_base_plugin.py @@ -103,15 +103,19 @@ async def test_base_plugin_default_callbacks_return_none(): assert ( await plugin.on_user_message_callback( user_message=mock_user_message, - callback_context=mock_context, + invocation_context=mock_context, ) is None ) - assert await plugin.before_run_callback(callback_context=mock_context) is None - assert await plugin.after_run_callback(callback_context=mock_context) is None + assert ( + await plugin.before_run_callback(invocation_context=mock_context) is None + ) + assert ( + await plugin.after_run_callback(invocation_context=mock_context) is None + ) assert ( await plugin.on_event_callback( - callback_context=mock_context, event=mock_context + invocation_context=mock_context, event=mock_context ) is None ) @@ -196,21 +200,25 @@ async def test_base_plugin_all_callbacks_can_be_overridden(): assert ( await plugin.on_user_message_callback( user_message=mock_user_message, - callback_context=mock_callback_context, + invocation_context=mock_invocation_context, ) == "overridden_on_user_message" ) assert ( - await plugin.before_run_callback(callback_context=mock_callback_context) + await plugin.before_run_callback( + invocation_context=mock_invocation_context + ) == "overridden_before_run" ) assert ( - await plugin.after_run_callback(callback_context=mock_callback_context) + await plugin.after_run_callback( + invocation_context=mock_invocation_context + ) == "overridden_after_run" ) assert ( await plugin.on_event_callback( - callback_context=mock_callback_context, event=mock_event + invocation_context=mock_invocation_context, event=mock_event ) == "overridden_on_event" ) diff --git a/tests/unittests/plugins/test_global_instruction_plugin.py b/tests/unittests/plugins/test_global_instruction_plugin.py index 4571dd3941..2253b1fb5a 100644 --- a/tests/unittests/plugins/test_global_instruction_plugin.py +++ b/tests/unittests/plugins/test_global_instruction_plugin.py @@ -43,7 +43,7 @@ async def test_global_instruction_plugin_with_string(): mock_invocation_context.session = mock_session mock_callback_context = Mock(spec=CallbackContext) - mock_callback_context._invocation_context = mock_invocation_context + mock_callback_context.invocation_context = mock_invocation_context llm_request = LlmRequest( model="gemini-1.5-flash", @@ -70,7 +70,7 @@ async def test_global_instruction_plugin_with_instruction_provider(): """Test GlobalInstructionPlugin with an InstructionProvider function.""" async def build_global_instruction(readonly_context: ReadonlyContext) -> str: - return f"You are assistant for user {readonly_context.user_id}." + return f"You are assistant for user {readonly_context.session.user_id}." plugin = GlobalInstructionPlugin(global_instruction=build_global_instruction) @@ -83,8 +83,7 @@ async def build_global_instruction(readonly_context: ReadonlyContext) -> str: mock_invocation_context.session = mock_session mock_callback_context = Mock(spec=CallbackContext) - mock_callback_context._invocation_context = mock_invocation_context - mock_callback_context.user_id = "alice" + mock_callback_context.invocation_context = mock_invocation_context llm_request = LlmRequest( model="gemini-1.5-flash", @@ -120,7 +119,7 @@ async def test_global_instruction_plugin_empty_instruction(): mock_invocation_context.session = mock_session mock_callback_context = Mock(spec=CallbackContext) - mock_callback_context._invocation_context = mock_invocation_context + mock_callback_context.invocation_context = mock_invocation_context llm_request = LlmRequest( model="gemini-1.5-flash", @@ -157,7 +156,7 @@ async def test_global_instruction_plugin_leads_existing(): mock_invocation_context.session = mock_session mock_callback_context = Mock(spec=CallbackContext) - mock_callback_context._invocation_context = mock_invocation_context + mock_callback_context.invocation_context = mock_invocation_context llm_request = LlmRequest( model="gemini-1.5-flash", @@ -192,7 +191,7 @@ async def test_global_instruction_plugin_prepends_to_list(): mock_invocation_context.session = mock_session mock_callback_context = Mock(spec=CallbackContext) - mock_callback_context._invocation_context = mock_invocation_context + mock_callback_context.invocation_context = mock_invocation_context llm_request = LlmRequest( model="gemini-1.5-flash", diff --git a/tests/unittests/test_runners.py b/tests/unittests/test_runners.py index 8c003b36be..e6578aabe2 100644 --- a/tests/unittests/test_runners.py +++ b/tests/unittests/test_runners.py @@ -15,8 +15,8 @@ from typing import Optional from google.adk.agents.base_agent import BaseAgent -from google.adk.agents.callback_context import CallbackContext from google.adk.agents.context_cache_config import ContextCacheConfig +from google.adk.agents.invocation_context import InvocationContext from google.adk.agents.llm_agent import LlmAgent from google.adk.apps.app import App from google.adk.apps.app import ResumabilityConfig @@ -98,7 +98,7 @@ def __init__(self): async def on_user_message_callback( self, *, - callback_context: CallbackContext, + invocation_context: InvocationContext, user_message: types.Content, ) -> Optional[types.Content]: if not self.enable_user_message_callback: @@ -109,7 +109,7 @@ async def on_user_message_callback( ) async def on_event_callback( - self, *, callback_context: CallbackContext, event: Event + self, *, invocation_context: InvocationContext, event: Event ) -> Optional[Event]: if not self.enable_event_callback: return None From d8548aabd21ad8c89939913270d7274879bb523e Mon Sep 17 00:00:00 2001 From: George Weale Date: Mon, 13 Oct 2025 14:08:12 -0700 Subject: [PATCH 092/303] feat: add structured JSON logging with Cloud Trace correlation Close #1683 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - add a shared --structured_logs flag to adk web and adk api_server so users can opt into JSON-formatted output - introduce CloudTraceJSONFormatter that emits structured entries and attaches current Cloud Trace/Span IDs when an OpenTelemetry context is active - update CLI logging setup to clear duplicate stdout handlers when Cloud Logging is enabled and to reconfigure existing handlers (like from Uvicorn) so they also pick up the structured format and requested log level With the flag disabled the CLIs keep their existing text logs; when enabled, the services now produce Cloud Logging–friendly JSON that can be correlated with distributed traces. PiperOrigin-RevId: 818823818 --- pyproject.toml | 3 + src/google/adk/cli/cli_deploy.py | 4 +- src/google/adk/cli/cli_tools_click.py | 22 ++++- src/google/adk/cli/utils/logs.py | 30 +++++- tests/unittests/cli/utils/test_logs.py | 124 +++++++++++++++++++++++++ 5 files changed, 175 insertions(+), 8 deletions(-) create mode 100644 tests/unittests/cli/utils/test_logs.py diff --git a/pyproject.toml b/pyproject.toml index 95c69f1fa7..be34270be1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,10 +31,13 @@ dependencies = [ "authlib>=1.5.1, <2.0.0", # For RestAPI Tool "click>=8.1.8, <9.0.0", # For CLI tools "fastapi>=0.115.0, <1.0.0", # FastAPI framework + "google-api-core>=2.20.0, <3.0.0", # Core Google API helpers "google-api-python-client>=2.157.0, <3.0.0", # Google API client discovery + "google-auth>=2.24.0, <3.0.0", # Google auth helpers "google-cloud-aiplatform[agent_engines]>=1.112.0, <2.0.0",# For VertexAI integrations, e.g. example store. "google-cloud-bigtable>=2.32.0", # For Bigtable database "google-cloud-discoveryengine>=0.13.12, <0.14.0", # For Discovery Engine Search Tool + "google-cloud-logging>=3.8.0, <4.0.0", # For structured logging with trace correlation "google-cloud-secret-manager>=2.22.0, <3.0.0", # Fetching secrets in RestAPI Tool "google-cloud-spanner>=3.56.0, <4.0.0", # For Spanner database "google-cloud-speech>=2.30.0, <3.0.0", # For Audio Transcription diff --git a/src/google/adk/cli/cli_deploy.py b/src/google/adk/cli/cli_deploy.py index d26b3c9660..6609721665 100644 --- a/src/google/adk/cli/cli_deploy.py +++ b/src/google/adk/cli/cli_deploy.py @@ -59,7 +59,7 @@ EXPOSE {port} -CMD adk {command} --port={port} {host_option} {service_option} {trace_to_cloud_option} {allow_origins_option} {a2a_option} "/app/agents" +CMD adk {command} --port={port} {host_option} {service_option} {trace_to_cloud_option} {log_to_cloud_option} {allow_origins_option} {a2a_option} "/app/agents" """ _AGENT_ENGINE_APP_TEMPLATE: Final[str] = """ @@ -267,6 +267,7 @@ def to_cloud_run( memory_service_uri, ), trace_to_cloud_option='--trace_to_cloud' if trace_to_cloud else '', + log_to_cloud_option='--log_to_cloud', allow_origins_option=allow_origins_option, adk_version=adk_version, host_option=host_option, @@ -702,6 +703,7 @@ def to_gke( memory_service_uri, ), trace_to_cloud_option='--trace_to_cloud' if trace_to_cloud else '', + log_to_cloud_option='--log_to_cloud', allow_origins_option=allow_origins_option, adk_version=adk_version, host_option=host_option, diff --git a/src/google/adk/cli/cli_tools_click.py b/src/google/adk/cli/cli_tools_click.py index 7115b5fca1..90db3b0d07 100644 --- a/src/google/adk/cli/cli_tools_click.py +++ b/src/google/adk/cli/cli_tools_click.py @@ -937,6 +937,7 @@ def fast_api_common_options(): """Decorator to add common fast api options to click commands.""" def decorator(func): + @click.option( "--host", type=str, @@ -986,6 +987,17 @@ def decorator(func): " Observability services - Cloud Trace and Cloud Logging." ), ) + @click.option( + "--log_to_cloud", + is_flag=True, + show_default=True, + default=False, + help=( + "Optional. Emit structured JSON logs via Google Cloud Logging," + " keeping multiline messages in a single entry. Only set this to" + " True when deployed to Google Cloud environment." + ), + ) @click.option( "--reload/--no-reload", default=True, @@ -1065,6 +1077,7 @@ def cli_web( port: int = 8000, trace_to_cloud: bool = False, otel_to_cloud: bool = False, + log_to_cloud: bool = False, reload: bool = True, session_service_uri: Optional[str] = None, artifact_service_uri: Optional[str] = None, @@ -1086,7 +1099,9 @@ def cli_web( adk web --session_service_uri=[uri] --port=[port] path/to/agents_dir """ - logs.setup_adk_logger(getattr(logging, log_level.upper())) + logs.setup_adk_logger( + getattr(logging, log_level.upper()), log_to_cloud=log_to_cloud + ) @asynccontextmanager async def _lifespan(app: FastAPI): @@ -1164,6 +1179,7 @@ def cli_api_server( port: int = 8000, trace_to_cloud: bool = False, otel_to_cloud: bool = False, + log_to_cloud: bool = False, reload: bool = True, session_service_uri: Optional[str] = None, artifact_service_uri: Optional[str] = None, @@ -1183,7 +1199,9 @@ def cli_api_server( adk api_server --session_service_uri=[uri] --port=[port] path/to/agents_dir """ - logs.setup_adk_logger(getattr(logging, log_level.upper())) + logs.setup_adk_logger( + getattr(logging, log_level.upper()), log_to_cloud=log_to_cloud + ) session_service_uri = session_service_uri or session_db_url artifact_service_uri = artifact_service_uri or artifact_storage_uri diff --git a/src/google/adk/cli/utils/logs.py b/src/google/adk/cli/utils/logs.py index a9abae18c7..4b0bfd9cc8 100644 --- a/src/google/adk/cli/utils/logs.py +++ b/src/google/adk/cli/utils/logs.py @@ -19,17 +19,37 @@ import tempfile import time +from google.api_core import exceptions as api_core_exceptions +from google.auth import exceptions as auth_exceptions +from google.cloud import logging as cloud_logging + LOGGING_FORMAT = ( '%(asctime)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s' ) -def setup_adk_logger(level=logging.INFO): - # Configure the root logger format and level. - logging.basicConfig(level=level, format=LOGGING_FORMAT) +def setup_adk_logger(level=logging.INFO, *, log_to_cloud: bool = False): + """Set up ADK logger with optional Google Cloud Logging integration.""" + root_logger = logging.getLogger() - adk_logger = logging.getLogger('google_adk') - adk_logger.setLevel(level) + if log_to_cloud: + # Remove the default StreamHandler to avoid duplicate stdout logs. + root_logger.handlers = [] + client = cloud_logging.Client() + client.setup_logging(log_level=level) + root_logger.setLevel(level) + else: + if root_logger.handlers: + # Uvicorn installs handlers ahead of application code, so basicConfig is a no-op. + formatter = logging.Formatter(LOGGING_FORMAT) + for handler in root_logger.handlers: + handler.setLevel(level) + handler.setFormatter(formatter) + else: + logging.basicConfig(level=level, format=LOGGING_FORMAT) + root_logger.setLevel(level) + + logging.getLogger('google_adk').setLevel(level) def log_to_tmp_folder( diff --git a/tests/unittests/cli/utils/test_logs.py b/tests/unittests/cli/utils/test_logs.py new file mode 100644 index 0000000000..0a61459eed --- /dev/null +++ b/tests/unittests/cli/utils/test_logs.py @@ -0,0 +1,124 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from importlib import reload +import io +import json +import logging +from unittest import mock +from unittest import TestCase + +from google.adk.cli.utils import logs as logs_module + +logs = reload(logs_module) + + +class TestSetupAdkLogger(TestCase): + """Tests for setup_adk_logger helper.""" + + def setUp(self): + super().setUp() + self._reset_logging() + self.addCleanup(self._reset_logging) + + def _reset_logging(self): + root_logger = logging.getLogger() + for handler in list(root_logger.handlers): + root_logger.removeHandler(handler) + try: + handler.close() + except Exception: # pylint: disable=broad-except + pass + root_logger.setLevel(logging.WARNING) + root_logger.propagate = True + + def test_log_to_cloud_uses_google_cloud_logging_client(self): + """Log setup delegates to google.cloud.logging client when available.""" + buffer = io.StringIO() + + class _JsonFormatter(logging.Formatter): + + def format(self, record): + return json.dumps({'message': record.getMessage()}, ensure_ascii=False) + + class FakeClient: + + def __init__(self): + self.called_with = None + + def setup_logging(self, log_level=logging.INFO): + self.called_with = log_level + handler = logging.StreamHandler(buffer) + handler.setLevel(log_level) + handler.setFormatter(_JsonFormatter()) + root = logging.getLogger() + root.handlers = [handler] + root.setLevel(log_level) + root.propagate = False + + fake_client = FakeClient() + client_factory = mock.Mock(return_value=fake_client) + with mock.patch.object(logs, 'cloud_logging', autospec=True) as mock_module: + mock_module.Client = client_factory + logs.setup_adk_logger(level=logging.INFO, log_to_cloud=True) + logging.getLogger('google_adk.test').info('hello\nworld') + + client_factory.assert_called_once() + self.assertEqual(logging.getLogger('google_adk').level, logging.INFO) + self.assertEqual(fake_client.called_with, logging.INFO) + output_lines = [ + line for line in buffer.getvalue().splitlines() if line.strip() + ] + self.assertEqual(len(output_lines), 1) + entry = json.loads(output_lines[0]) + self.assertEqual(entry['message'], 'hello\nworld') + + def test_log_to_cloud_client_failure_surfaces_error(self): + """Cloud logging setup failures surface as actionable errors.""" + + class FailingClient: + + def setup_logging(self, log_level=logging.INFO): + del log_level + raise OSError('boom') + + client_factory = mock.Mock(return_value=FailingClient()) + with mock.patch.object(logs, 'cloud_logging', autospec=True) as mock_module: + mock_module.Client = client_factory + with self.assertRaises(OSError): + logs.setup_adk_logger(level=logging.INFO, log_to_cloud=True) + + client_factory.assert_called_once() + + def test_text_logging_configures_basic_logging(self): + """Fallback text logging configures default formatter and handlers.""" + logs.setup_adk_logger(level=logging.ERROR, log_to_cloud=False) + + root_logger = logging.getLogger() + self.assertEqual(root_logger.level, logging.ERROR) + self.assertTrue(root_logger.handlers) + handler = root_logger.handlers[0] + formatter = handler.formatter + self.assertIsInstance(formatter, logging.Formatter) + self.assertEqual( + formatter._style._fmt, # pylint: disable=protected-access + logs.LOGGING_FORMAT, + ) + + def test_text_logging_sets_adk_logger_level(self): + """ADK logger level is aligned when text logging is used.""" + logs.setup_adk_logger(level=logging.WARNING, log_to_cloud=False) + self.assertEqual(logging.getLogger('google_adk').level, logging.WARNING) From 3c0b99a19e3773b8441bffe2891113568202f9d8 Mon Sep 17 00:00:00 2001 From: George Weale Date: Mon, 13 Oct 2025 14:56:53 -0700 Subject: [PATCH 093/303] fix: rollback of add structured JSON logging with Cloud Trace correlation Close #1683 PiperOrigin-RevId: 818844025 --- pyproject.toml | 3 - src/google/adk/cli/cli_deploy.py | 4 +- src/google/adk/cli/cli_tools_click.py | 22 +---- src/google/adk/cli/utils/logs.py | 30 +----- tests/unittests/cli/utils/test_logs.py | 124 ------------------------- 5 files changed, 8 insertions(+), 175 deletions(-) delete mode 100644 tests/unittests/cli/utils/test_logs.py diff --git a/pyproject.toml b/pyproject.toml index be34270be1..95c69f1fa7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,13 +31,10 @@ dependencies = [ "authlib>=1.5.1, <2.0.0", # For RestAPI Tool "click>=8.1.8, <9.0.0", # For CLI tools "fastapi>=0.115.0, <1.0.0", # FastAPI framework - "google-api-core>=2.20.0, <3.0.0", # Core Google API helpers "google-api-python-client>=2.157.0, <3.0.0", # Google API client discovery - "google-auth>=2.24.0, <3.0.0", # Google auth helpers "google-cloud-aiplatform[agent_engines]>=1.112.0, <2.0.0",# For VertexAI integrations, e.g. example store. "google-cloud-bigtable>=2.32.0", # For Bigtable database "google-cloud-discoveryengine>=0.13.12, <0.14.0", # For Discovery Engine Search Tool - "google-cloud-logging>=3.8.0, <4.0.0", # For structured logging with trace correlation "google-cloud-secret-manager>=2.22.0, <3.0.0", # Fetching secrets in RestAPI Tool "google-cloud-spanner>=3.56.0, <4.0.0", # For Spanner database "google-cloud-speech>=2.30.0, <3.0.0", # For Audio Transcription diff --git a/src/google/adk/cli/cli_deploy.py b/src/google/adk/cli/cli_deploy.py index 6609721665..d26b3c9660 100644 --- a/src/google/adk/cli/cli_deploy.py +++ b/src/google/adk/cli/cli_deploy.py @@ -59,7 +59,7 @@ EXPOSE {port} -CMD adk {command} --port={port} {host_option} {service_option} {trace_to_cloud_option} {log_to_cloud_option} {allow_origins_option} {a2a_option} "/app/agents" +CMD adk {command} --port={port} {host_option} {service_option} {trace_to_cloud_option} {allow_origins_option} {a2a_option} "/app/agents" """ _AGENT_ENGINE_APP_TEMPLATE: Final[str] = """ @@ -267,7 +267,6 @@ def to_cloud_run( memory_service_uri, ), trace_to_cloud_option='--trace_to_cloud' if trace_to_cloud else '', - log_to_cloud_option='--log_to_cloud', allow_origins_option=allow_origins_option, adk_version=adk_version, host_option=host_option, @@ -703,7 +702,6 @@ def to_gke( memory_service_uri, ), trace_to_cloud_option='--trace_to_cloud' if trace_to_cloud else '', - log_to_cloud_option='--log_to_cloud', allow_origins_option=allow_origins_option, adk_version=adk_version, host_option=host_option, diff --git a/src/google/adk/cli/cli_tools_click.py b/src/google/adk/cli/cli_tools_click.py index 90db3b0d07..7115b5fca1 100644 --- a/src/google/adk/cli/cli_tools_click.py +++ b/src/google/adk/cli/cli_tools_click.py @@ -937,7 +937,6 @@ def fast_api_common_options(): """Decorator to add common fast api options to click commands.""" def decorator(func): - @click.option( "--host", type=str, @@ -987,17 +986,6 @@ def decorator(func): " Observability services - Cloud Trace and Cloud Logging." ), ) - @click.option( - "--log_to_cloud", - is_flag=True, - show_default=True, - default=False, - help=( - "Optional. Emit structured JSON logs via Google Cloud Logging," - " keeping multiline messages in a single entry. Only set this to" - " True when deployed to Google Cloud environment." - ), - ) @click.option( "--reload/--no-reload", default=True, @@ -1077,7 +1065,6 @@ def cli_web( port: int = 8000, trace_to_cloud: bool = False, otel_to_cloud: bool = False, - log_to_cloud: bool = False, reload: bool = True, session_service_uri: Optional[str] = None, artifact_service_uri: Optional[str] = None, @@ -1099,9 +1086,7 @@ def cli_web( adk web --session_service_uri=[uri] --port=[port] path/to/agents_dir """ - logs.setup_adk_logger( - getattr(logging, log_level.upper()), log_to_cloud=log_to_cloud - ) + logs.setup_adk_logger(getattr(logging, log_level.upper())) @asynccontextmanager async def _lifespan(app: FastAPI): @@ -1179,7 +1164,6 @@ def cli_api_server( port: int = 8000, trace_to_cloud: bool = False, otel_to_cloud: bool = False, - log_to_cloud: bool = False, reload: bool = True, session_service_uri: Optional[str] = None, artifact_service_uri: Optional[str] = None, @@ -1199,9 +1183,7 @@ def cli_api_server( adk api_server --session_service_uri=[uri] --port=[port] path/to/agents_dir """ - logs.setup_adk_logger( - getattr(logging, log_level.upper()), log_to_cloud=log_to_cloud - ) + logs.setup_adk_logger(getattr(logging, log_level.upper())) session_service_uri = session_service_uri or session_db_url artifact_service_uri = artifact_service_uri or artifact_storage_uri diff --git a/src/google/adk/cli/utils/logs.py b/src/google/adk/cli/utils/logs.py index 4b0bfd9cc8..a9abae18c7 100644 --- a/src/google/adk/cli/utils/logs.py +++ b/src/google/adk/cli/utils/logs.py @@ -19,37 +19,17 @@ import tempfile import time -from google.api_core import exceptions as api_core_exceptions -from google.auth import exceptions as auth_exceptions -from google.cloud import logging as cloud_logging - LOGGING_FORMAT = ( '%(asctime)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s' ) -def setup_adk_logger(level=logging.INFO, *, log_to_cloud: bool = False): - """Set up ADK logger with optional Google Cloud Logging integration.""" - root_logger = logging.getLogger() +def setup_adk_logger(level=logging.INFO): + # Configure the root logger format and level. + logging.basicConfig(level=level, format=LOGGING_FORMAT) - if log_to_cloud: - # Remove the default StreamHandler to avoid duplicate stdout logs. - root_logger.handlers = [] - client = cloud_logging.Client() - client.setup_logging(log_level=level) - root_logger.setLevel(level) - else: - if root_logger.handlers: - # Uvicorn installs handlers ahead of application code, so basicConfig is a no-op. - formatter = logging.Formatter(LOGGING_FORMAT) - for handler in root_logger.handlers: - handler.setLevel(level) - handler.setFormatter(formatter) - else: - logging.basicConfig(level=level, format=LOGGING_FORMAT) - root_logger.setLevel(level) - - logging.getLogger('google_adk').setLevel(level) + adk_logger = logging.getLogger('google_adk') + adk_logger.setLevel(level) def log_to_tmp_folder( diff --git a/tests/unittests/cli/utils/test_logs.py b/tests/unittests/cli/utils/test_logs.py deleted file mode 100644 index 0a61459eed..0000000000 --- a/tests/unittests/cli/utils/test_logs.py +++ /dev/null @@ -1,124 +0,0 @@ -# Copyright 2025 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import annotations - -from importlib import reload -import io -import json -import logging -from unittest import mock -from unittest import TestCase - -from google.adk.cli.utils import logs as logs_module - -logs = reload(logs_module) - - -class TestSetupAdkLogger(TestCase): - """Tests for setup_adk_logger helper.""" - - def setUp(self): - super().setUp() - self._reset_logging() - self.addCleanup(self._reset_logging) - - def _reset_logging(self): - root_logger = logging.getLogger() - for handler in list(root_logger.handlers): - root_logger.removeHandler(handler) - try: - handler.close() - except Exception: # pylint: disable=broad-except - pass - root_logger.setLevel(logging.WARNING) - root_logger.propagate = True - - def test_log_to_cloud_uses_google_cloud_logging_client(self): - """Log setup delegates to google.cloud.logging client when available.""" - buffer = io.StringIO() - - class _JsonFormatter(logging.Formatter): - - def format(self, record): - return json.dumps({'message': record.getMessage()}, ensure_ascii=False) - - class FakeClient: - - def __init__(self): - self.called_with = None - - def setup_logging(self, log_level=logging.INFO): - self.called_with = log_level - handler = logging.StreamHandler(buffer) - handler.setLevel(log_level) - handler.setFormatter(_JsonFormatter()) - root = logging.getLogger() - root.handlers = [handler] - root.setLevel(log_level) - root.propagate = False - - fake_client = FakeClient() - client_factory = mock.Mock(return_value=fake_client) - with mock.patch.object(logs, 'cloud_logging', autospec=True) as mock_module: - mock_module.Client = client_factory - logs.setup_adk_logger(level=logging.INFO, log_to_cloud=True) - logging.getLogger('google_adk.test').info('hello\nworld') - - client_factory.assert_called_once() - self.assertEqual(logging.getLogger('google_adk').level, logging.INFO) - self.assertEqual(fake_client.called_with, logging.INFO) - output_lines = [ - line for line in buffer.getvalue().splitlines() if line.strip() - ] - self.assertEqual(len(output_lines), 1) - entry = json.loads(output_lines[0]) - self.assertEqual(entry['message'], 'hello\nworld') - - def test_log_to_cloud_client_failure_surfaces_error(self): - """Cloud logging setup failures surface as actionable errors.""" - - class FailingClient: - - def setup_logging(self, log_level=logging.INFO): - del log_level - raise OSError('boom') - - client_factory = mock.Mock(return_value=FailingClient()) - with mock.patch.object(logs, 'cloud_logging', autospec=True) as mock_module: - mock_module.Client = client_factory - with self.assertRaises(OSError): - logs.setup_adk_logger(level=logging.INFO, log_to_cloud=True) - - client_factory.assert_called_once() - - def test_text_logging_configures_basic_logging(self): - """Fallback text logging configures default formatter and handlers.""" - logs.setup_adk_logger(level=logging.ERROR, log_to_cloud=False) - - root_logger = logging.getLogger() - self.assertEqual(root_logger.level, logging.ERROR) - self.assertTrue(root_logger.handlers) - handler = root_logger.handlers[0] - formatter = handler.formatter - self.assertIsInstance(formatter, logging.Formatter) - self.assertEqual( - formatter._style._fmt, # pylint: disable=protected-access - logs.LOGGING_FORMAT, - ) - - def test_text_logging_sets_adk_logger_level(self): - """ADK logger level is aligned when text logging is used.""" - logs.setup_adk_logger(level=logging.WARNING, log_to_cloud=False) - self.assertEqual(logging.getLogger('google_adk').level, logging.WARNING) From dfb8638eaeec30e24cfe0bf182fcfcc6139cea89 Mon Sep 17 00:00:00 2001 From: George Weale Date: Mon, 13 Oct 2025 15:01:04 -0700 Subject: [PATCH 094/303] chore: fix the `cleanup_unused_files` tool in yaml agent to use the same directory as other tools PiperOrigin-RevId: 818846060 --- .../tools/cleanup_unused_files.py | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/contributing/samples/adk_agent_builder_assistant/tools/cleanup_unused_files.py b/contributing/samples/adk_agent_builder_assistant/tools/cleanup_unused_files.py index 1c8003b0dc..c9d95da48f 100644 --- a/contributing/samples/adk_agent_builder_assistant/tools/cleanup_unused_files.py +++ b/contributing/samples/adk_agent_builder_assistant/tools/cleanup_unused_files.py @@ -14,16 +14,20 @@ """Cleanup unused files tool for Agent Builder Assistant.""" -from pathlib import Path from typing import Any from typing import Dict from typing import List from typing import Optional +from google.adk.tools.tool_context import ToolContext + +from ..utils.resolve_root_directory import resolve_file_path +from ..utils.resolve_root_directory import resolve_file_paths + async def cleanup_unused_files( - root_directory: str, used_files: List[str], + tool_context: ToolContext, file_patterns: Optional[List[str]] = None, exclude_patterns: Optional[List[str]] = None, ) -> Dict[str, Any]: @@ -31,27 +35,32 @@ async def cleanup_unused_files( This tool helps clean up unused tool files when agent configurations change. It identifies files that match patterns but aren't referenced in used_files - list. + list. Paths are resolved automatically using the tool context. Args: - root_directory: Root directory to scan for unused files used_files: List of file paths currently in use (should not be deleted) + tool_context: Tool execution context (provides session state) file_patterns: List of glob patterns to match files (default: ["*.py"]) exclude_patterns: List of patterns to exclude (default: ["__init__.py"]) Returns: Dict containing cleanup results: - success: bool indicating if scan succeeded - - root_directory: absolute path to scanned directory - unused_files: list of unused files found - deleted_files: list of files actually deleted - backup_files: list of backup files created - errors: list of error messages - total_freed_space: total bytes freed by deletions """ + session_state = tool_context.state + root_path = resolve_file_path(".", session_state) + try: - root_path = Path(root_directory).resolve() - used_files_set = {Path(f).resolve() for f in used_files} + root_path = root_path.resolve() + resolved_used_files = { + path.resolve() + for path in resolve_file_paths(used_files or [], session_state) + } # Set defaults if file_patterns is None: @@ -61,7 +70,6 @@ async def cleanup_unused_files( result = { "success": False, - "root_directory": str(root_path), "unused_files": [], "deleted_files": [], "backup_files": [], @@ -85,7 +93,7 @@ async def cleanup_unused_files( # Identify unused files unused_files = [] for file_path in all_files: - if file_path not in used_files_set: + if file_path.resolve() not in resolved_used_files: unused_files.append(file_path) result["unused_files"] = [str(f) for f in unused_files] @@ -99,7 +107,6 @@ async def cleanup_unused_files( except Exception as e: return { "success": False, - "root_directory": root_directory, "unused_files": [], "deleted_files": [], "backup_files": [], From d22b8bf8907e723f618dfd18e90dd0a5dbc9518c Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Mon, 13 Oct 2025 21:43:10 -0700 Subject: [PATCH 095/303] chore: Clarify how to use adk built-in tool in instruction PiperOrigin-RevId: 818987709 --- .../instruction_embedded.template | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index ce0280875d..b09458f52e 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -129,6 +129,43 @@ Always reference this schema when creating configurations to ensure compliance. * **Remember**: Always extract just the folder name after the last slash/separator - No function declarations in YAML (handled automatically by ADK) +**🚨 CRITICAL: Built-in Tools vs Custom Tools** + +**ADK Built-in Tools** (use directly, NO custom Python file needed): +- **Naming**: Use simple name WITHOUT dots (e.g., `google_search`, NOT `google.adk.tools.google_search`) +- **No custom code**: Do NOT create Python files for built-in tools +- **Available built-in tools**: + * `google_search` - Google Search tool + * `enterprise_web_search` - Enterprise web search + * `google_maps_grounding` - Google Maps grounding + * `url_context` - URL context fetching + * `VertexAiSearchTool` - Vertex AI Search (class name) + * `exit_loop` - Exit loop control + * `get_user_choice` - User choice interaction + * `load_artifacts` - Load artifacts + * `load_memory` - Load memory + * `preload_memory` - Preload memory + * `transfer_to_agent` - Transfer to another agent + +**Example - Built-in Tool Usage (CORRECT):** +```yaml +tools: + - name: google_search + - name: url_context +``` + +**Example - Built-in Tool Usage (WRONG):** +```yaml +tools: + - name: cb.tools.google_search_tool.google_search_tool # ❌ WRONG - treating built-in as custom +``` +**DO NOT create Python files like `tools/google_search_tool.py` for built-in tools!** + +**Custom Tools** (require Python implementation): +- **Naming**: Use dotted path: `{{project_folder_name}}.tools.{{module_name}}.{{function_name}}` +- **Require Python file**: Must create actual Python file in `tools/` directory +- **Example**: `my_project.tools.dice_tool.roll_dice` → requires `tools/dice_tool.py` with `roll_dice()` function + **TOOL IMPLEMENTATION STRATEGY:** - **For simple/obvious tools**: Implement them directly with actual working code * Example: dice rolling, prime checking, basic math, file operations From 89344da81364d921f778c8bbea93e1df6ad1097e Mon Sep 17 00:00:00 2001 From: George Weale Date: Tue, 14 Oct 2025 10:46:26 -0700 Subject: [PATCH 096/303] chore: Update agent builder instructions and remove run command details PiperOrigin-RevId: 819299339 --- .../instruction_embedded.template | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index b09458f52e..06e985a079 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -443,7 +443,6 @@ def log_tool_result(tool: BaseTool, tool_args: Dict[str, Any], tool_context: Too 2. No redundant suggest_file_path calls for pre-approved paths 3. Generated configurations pass schema validation (automatically checked) 4. Follow ADK naming and organizational conventions -5. Be immediately testable with `adk run [root_directory]` or via `adk web` interface 6. Include clear, actionable instructions for each agent 7. Use appropriate tools for intended functionality @@ -463,14 +462,3 @@ def log_tool_result(tool: BaseTool, tool_args: Dict[str, Any], tool_context: Too 6. **Focus on collaboration** - Ensure user gets exactly what they need with clear understanding **This workflow eliminates inefficiencies and ensures users get well-organized, predictable file structures in their chosen location.** - -## Running Generated Agents - -**Correct ADK Commands:** -- `adk run [project_directory]` - Run agent from project directory (e.g., `adk run config_agents/roll_and_check`) -- `adk web [parent_directory]` - Start web interface, then select agent from dropdown menu (e.g., `adk web config_agents`) -- **Key Rule**: Always use the project directory for `adk run`, and parent directory for `adk web` - -**Incorrect Commands to Avoid:** -- `adk run [project_directory]/root_agent.yaml` - Do NOT specify the YAML file directly -- `adk web` without parent directory - Must specify the parent folder containing the agent projects \ No newline at end of file From bae21027d9bd7f811bed638ecce692262cb33fe5 Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Tue, 14 Oct 2025 11:14:35 -0700 Subject: [PATCH 097/303] chore: Disable the scheduled execution for issue triage workflow PiperOrigin-RevId: 819312327 --- .github/workflows/triage.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml index 937a3d7d22..57e729e9b5 100644 --- a/.github/workflows/triage.yml +++ b/.github/workflows/triage.yml @@ -3,8 +3,6 @@ name: ADK Issue Triaging Agent on: issues: types: [opened, reopened] - schedule: - - cron: '0 */6 * * *' # every 6h jobs: agent-triage-issues: From 9fbed0b15afb94ec8c0c7ab60221bbc97e481b06 Mon Sep 17 00:00:00 2001 From: Joseph Pagadora Date: Tue, 14 Oct 2025 11:35:53 -0700 Subject: [PATCH 098/303] fix: Overall eval status should be NOT_EVALUATED if no invocations were evaluated PiperOrigin-RevId: 819322513 --- .../adk/evaluation/hallucinations_v1.py | 2 +- .../evaluation/test_hallucinations_v1.py | 67 +++++++++++++++++++ 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/src/google/adk/evaluation/hallucinations_v1.py b/src/google/adk/evaluation/hallucinations_v1.py index ad9162f893..15cda35dc3 100644 --- a/src/google/adk/evaluation/hallucinations_v1.py +++ b/src/google/adk/evaluation/hallucinations_v1.py @@ -694,7 +694,7 @@ def _aggregate_invocation_results( if not valid_results: return EvaluationResult( overall_score=None, - overall_eval_status=EvalStatus.FAILED, + overall_eval_status=EvalStatus.NOT_EVALUATED, per_invocation_results=per_invocation_results, ) diff --git a/tests/unittests/evaluation/test_hallucinations_v1.py b/tests/unittests/evaluation/test_hallucinations_v1.py index 047424415d..d74cb24a1f 100644 --- a/tests/unittests/evaluation/test_hallucinations_v1.py +++ b/tests/unittests/evaluation/test_hallucinations_v1.py @@ -1445,6 +1445,73 @@ async def test_evaluate_invocations_no_nl_response(hallucinations_metric): assert per_invocation_result.eval_status == EvalStatus.NOT_EVALUATED +@pytest.mark.asyncio +async def test_evaluate_all_invocations_not_evaluated(hallucinations_metric): + metric = hallucinations_metric + app_details = AppDetails( + agent_details={ + "root": AgentDetails( + name="root", + instructions="Root agent instructions.", + tool_declarations=[], + ), + }, + ) + user_content = genai_types.Content( + parts=[genai_types.Part(text="User query.")] + ) + actual_invocation = Invocation( + app_details=app_details, + user_content=user_content, + intermediate_data=InvocationEvents( + invocation_events=[ + InvocationEvent( + author="root", + content=genai_types.Content( + parts=[ + genai_types.Part(text="Intermediate NL response."), + ] + ), + ), + ] + ), + final_response=genai_types.Content( + parts=[genai_types.Part(text="Final response.")] + ), + ) + expected_invocation = Invocation( + app_details=app_details, + user_content=user_content, + final_response=genai_types.Content( + parts=[genai_types.Part(text="Final response.")] + ), + ) + + async def mock_evaluate_nl_response(nl_response, context): + return None, "Judge model error." + + with patch( + "google.adk.evaluation.hallucinations_v1.HallucinationsV1Evaluator._evaluate_nl_response", + side_effect=mock_evaluate_nl_response, + ): + result = await metric.evaluate_invocations( + [actual_invocation, actual_invocation], + [expected_invocation, expected_invocation], + ) + + assert len(result.per_invocation_results) == 2 + assert result.per_invocation_results[0].score is None + assert ( + result.per_invocation_results[0].eval_status == EvalStatus.NOT_EVALUATED + ) + assert result.per_invocation_results[1].score is None + assert ( + result.per_invocation_results[1].eval_status == EvalStatus.NOT_EVALUATED + ) + assert result.overall_score is None + assert result.overall_eval_status == EvalStatus.NOT_EVALUATED + + @pytest.mark.asyncio async def test_evaluate_invocations_partial_failure(hallucinations_metric): metric = hallucinations_metric From 2c7a34259395b1294319118d0f3d1b3b867b44d6 Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Tue, 14 Oct 2025 13:28:55 -0700 Subject: [PATCH 099/303] feat: Add create_time and mime_type to ArtifactVersion PiperOrigin-RevId: 819372593 --- src/google/adk/artifacts/base_artifact_service.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/google/adk/artifacts/base_artifact_service.py b/src/google/adk/artifacts/base_artifact_service.py index cc2a3a1e1d..da0f88f1aa 100644 --- a/src/google/adk/artifacts/base_artifact_service.py +++ b/src/google/adk/artifacts/base_artifact_service.py @@ -15,6 +15,7 @@ from abc import ABC from abc import abstractmethod +from datetime import datetime from typing import Any from typing import Optional @@ -28,6 +29,10 @@ class ArtifactVersion(BaseModel): version: int """The version number of the artifact.""" + create_time: float = Field(default_factory=lambda: datetime.now().timestamp()) + """The creation time of the artifact version.""" + mime_type: Optional[str] = None + """The MIME type of the artifact version.""" canonical_uri: str """The canonical URI of the artifact version.""" custom_metadata: dict[str, Any] = Field(default_factory=dict) From cb6d583cad2e6ab4ac5aa1ebc96805d911c07935 Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Tue, 14 Oct 2025 13:35:52 -0700 Subject: [PATCH 100/303] chore: Add RSVP link to ADK Community Call This change adds a link to a Qualtrics form for RSVPing to the ADK Community Call in the README. PiperOrigin-RevId: 819376219 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 98cfafbe9b..56a2755350 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ Meeting link: [Join the call](http://meet.google.com/gjm-gfim-ctz) Add to your calendar -[Event calendar invite](https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=MDUydWo1dHV1dHFtNzJuM3E0bmEyMW12ZnZfMjAyNTEwMTVUMTYzMDAwWiBjXzljNWVjODhhMmQyYWU5YjY5Mzk4ODU1MGZkNDA5MjVmYjgxYjM4MTI1NGNjYTgzNmRkMjMwNzRiMjNmYzcyZDVAZw&tmsrc=c_9c5ec88a2d2ae9b693988550fd40925fb81b381254cca836dd23074b23fc72d5%40group.calendar.google.com), [.ics file](https://calendar.google.com/calendar/ical/c_9c5ec88a2d2ae9b693988550fd40925fb81b381254cca836dd23074b23fc72d5%40group.calendar.google.com/public/basic.ics), [ADK community calendar](https://calendar.google.com/calendar/embed?src=c_9c5ec88a2d2ae9b693988550fd40925fb81b381254cca836dd23074b23fc72d5%40group.calendar.google.com&ctz=America%2FLos_Angeles) +[Event calendar invite](https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=MDUydWo1dHV1dHFtNzJuM3E0bmEyMW12ZnZfMjAyNTEwMTVUMTYzMDAwWiBjXzljNWVjODhhMmQyYWU5YjY5Mzk4ODU1MGZkNDA5MjVmYjgxYjM4MTI1NGNjYTgzNmRkMjMwNzRiMjNmYzcyZDVAZw&tmsrc=c_9c5ec88a2d2ae9b693988550fd40925fb81b381254cca836dd23074b23fc72d5%40group.calendar.google.com), [.ics file](https://calendar.google.com/calendar/ical/c_9c5ec88a2d2ae9b693988550fd40925fb81b381254cca836dd23074b23fc72d5%40group.calendar.google.com/public/basic.ics), [ADK community calendar](https://calendar.google.com/calendar/embed?src=c_9c5ec88a2d2ae9b693988550fd40925fb81b381254cca836dd23074b23fc72d5%40group.calendar.google.com&ctz=America%2FLos_Angeles), [ADK Community Call RSVP](https://google.qualtrics.com/jfe/form/SV_3K0RJZ64H1BexqS) Agenda: [Julia] ADK Roadmap From 85c95a8cbf71c8dbd23f45ee1517d98bef9b5a80 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Tue, 14 Oct 2025 14:20:31 -0700 Subject: [PATCH 101/303] feat: Add create_time and mime_type to ArtifactVersion PiperOrigin-RevId: 819396924 --- src/google/adk/artifacts/base_artifact_service.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/google/adk/artifacts/base_artifact_service.py b/src/google/adk/artifacts/base_artifact_service.py index da0f88f1aa..cc2a3a1e1d 100644 --- a/src/google/adk/artifacts/base_artifact_service.py +++ b/src/google/adk/artifacts/base_artifact_service.py @@ -15,7 +15,6 @@ from abc import ABC from abc import abstractmethod -from datetime import datetime from typing import Any from typing import Optional @@ -29,10 +28,6 @@ class ArtifactVersion(BaseModel): version: int """The version number of the artifact.""" - create_time: float = Field(default_factory=lambda: datetime.now().timestamp()) - """The creation time of the artifact version.""" - mime_type: Optional[str] = None - """The MIME type of the artifact version.""" canonical_uri: str """The canonical URI of the artifact version.""" custom_metadata: dict[str, Any] = Field(default_factory=dict) From 141318f77554ae4eb5a360bea524e98eff4a086c Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Tue, 14 Oct 2025 14:30:17 -0700 Subject: [PATCH 102/303] feat: Support returning all sessions when user_id is none in the request resolves https://github.com/google/adk-python/issues/3154 PiperOrigin-RevId: 819401023 --- .../adk/sessions/base_session_service.py | 13 +++- .../adk/sessions/database_session_service.py | 38 +++++++---- .../adk/sessions/in_memory_session_service.py | 28 +++++--- .../adk/sessions/vertex_ai_session_service.py | 9 ++- .../sessions/test_session_service.py | 67 ++++++++++++++++++- .../test_vertex_ai_session_service.py | 32 ++++++--- 6 files changed, 147 insertions(+), 40 deletions(-) diff --git a/src/google/adk/sessions/base_session_service.py b/src/google/adk/sessions/base_session_service.py index a76a6b9d82..f2f6f9f22d 100644 --- a/src/google/adk/sessions/base_session_service.py +++ b/src/google/adk/sessions/base_session_service.py @@ -83,9 +83,18 @@ async def get_session( @abc.abstractmethod async def list_sessions( - self, *, app_name: str, user_id: str + self, *, app_name: str, user_id: Optional[str] = None ) -> ListSessionsResponse: - """Lists all the sessions.""" + """Lists all the sessions for a user. + + Args: + app_name: The name of the app. + user_id: The ID of the user. If not provided, lists all sessions for all + users. + + Returns: + A ListSessionsResponse containing the sessions. + """ @abc.abstractmethod async def delete_session( diff --git a/src/google/adk/sessions/database_session_service.py b/src/google/adk/sessions/database_session_service.py index 3ed87847fe..7ed3e3be8f 100644 --- a/src/google/adk/sessions/database_session_service.py +++ b/src/google/adk/sessions/database_session_service.py @@ -554,30 +554,42 @@ async def get_session( @override async def list_sessions( - self, *, app_name: str, user_id: str + self, *, app_name: str, user_id: Optional[str] = None ) -> ListSessionsResponse: with self.database_session_factory() as sql_session: - results = ( - sql_session.query(StorageSession) - .filter(StorageSession.app_name == app_name) - .filter(StorageSession.user_id == user_id) - .all() + query = sql_session.query(StorageSession).filter( + StorageSession.app_name == app_name ) + if user_id is not None: + query = query.filter(StorageSession.user_id == user_id) + results = query.all() - # Fetch states from storage + # Fetch app state from storage storage_app_state = sql_session.get(StorageAppState, (app_name)) - storage_user_state = sql_session.get( - StorageUserState, (app_name, user_id) - ) - app_state = storage_app_state.state if storage_app_state else {} - user_state = storage_user_state.state if storage_user_state else {} + + # Fetch user state(s) from storage + user_states_map = {} + if user_id is not None: + storage_user_state = sql_session.get( + StorageUserState, (app_name, user_id) + ) + if storage_user_state: + user_states_map[user_id] = storage_user_state.state + else: + all_user_states_for_app = ( + sql_session.query(StorageUserState) + .filter(StorageUserState.app_name == app_name) + .all() + ) + for storage_user_state in all_user_states_for_app: + user_states_map[storage_user_state.user_id] = storage_user_state.state sessions = [] for storage_session in results: session_state = storage_session.state + user_state = user_states_map.get(storage_session.user_id, {}) merged_state = _merge_state(app_state, user_state, session_state) - sessions.append(storage_session.to_session(state=merged_state)) return ListSessionsResponse(sessions=sessions) diff --git a/src/google/adk/sessions/in_memory_session_service.py b/src/google/adk/sessions/in_memory_session_service.py index bbb480ae45..adc0923004 100644 --- a/src/google/adk/sessions/in_memory_session_service.py +++ b/src/google/adk/sessions/in_memory_session_service.py @@ -201,31 +201,41 @@ def _merge_state( @override async def list_sessions( - self, *, app_name: str, user_id: str + self, *, app_name: str, user_id: Optional[str] = None ) -> ListSessionsResponse: return self._list_sessions_impl(app_name=app_name, user_id=user_id) def list_sessions_sync( - self, *, app_name: str, user_id: str + self, *, app_name: str, user_id: Optional[str] = None ) -> ListSessionsResponse: logger.warning('Deprecated. Please migrate to the async method.') return self._list_sessions_impl(app_name=app_name, user_id=user_id) def _list_sessions_impl( - self, *, app_name: str, user_id: str + self, *, app_name: str, user_id: Optional[str] = None ) -> ListSessionsResponse: empty_response = ListSessionsResponse() if app_name not in self.sessions: return empty_response - if user_id not in self.sessions[app_name]: + if user_id is not None and user_id not in self.sessions[app_name]: return empty_response sessions_without_events = [] - for session in self.sessions[app_name][user_id].values(): - copied_session = copy.deepcopy(session) - copied_session.events = [] - copied_session = self._merge_state(app_name, user_id, copied_session) - sessions_without_events.append(copied_session) + + if user_id is None: + for user_id in self.sessions[app_name]: + for session_id in self.sessions[app_name][user_id]: + session = self.sessions[app_name][user_id][session_id] + copied_session = copy.deepcopy(session) + copied_session.events = [] + copied_session = self._merge_state(app_name, user_id, copied_session) + sessions_without_events.append(copied_session) + else: + for session in self.sessions[app_name][user_id].values(): + copied_session = copy.deepcopy(session) + copied_session.events = [] + copied_session = self._merge_state(app_name, user_id, copied_session) + sessions_without_events.append(copied_session) return ListSessionsResponse(sessions=sessions_without_events) @override diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index 3cb1d61ea4..72ff0d6c13 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -200,22 +200,25 @@ async def get_session( @override async def list_sessions( - self, *, app_name: str, user_id: str + self, *, app_name: str, user_id: Optional[str] = None ) -> ListSessionsResponse: reasoning_engine_id = self._get_reasoning_engine_id(app_name) api_client = self._get_api_client() sessions = [] + config = {} + if user_id is not None: + config['filter'] = f'user_id="{user_id}"' sessions_iterator = api_client.agent_engines.sessions.list( name=f'reasoningEngines/{reasoning_engine_id}', - config={'filter': f'user_id="{user_id}"'}, + config=config, ) for api_session in sessions_iterator: sessions.append( Session( app_name=app_name, - user_id=user_id, + user_id=api_session.user_id, id=api_session.name.split('/')[-1], state=getattr(api_session, 'session_state', None) or {}, last_update_time=api_session.update_time.timestamp(), diff --git a/tests/unittests/sessions/test_session_service.py b/tests/unittests/sessions/test_session_service.py index 2ca265cb64..0c005d683f 100644 --- a/tests/unittests/sessions/test_session_service.py +++ b/tests/unittests/sessions/test_session_service.py @@ -116,9 +116,70 @@ async def test_create_and_list_sessions(service_type): app_name=app_name, user_id=user_id ) sessions = list_sessions_response.sessions - for i in range(len(sessions)): - assert sessions[i].id == session_ids[i] - assert sessions[i].state == {'key': 'value' + session_ids[i]} + assert len(sessions) == len(session_ids) + assert {s.id for s in sessions} == set(session_ids) + for session in sessions: + assert session.state == {'key': 'value' + session.id} + + +@pytest.mark.asyncio +@pytest.mark.parametrize( + 'service_type', [SessionServiceType.IN_MEMORY, SessionServiceType.DATABASE] +) +async def test_list_sessions_all_users(service_type): + session_service = get_session_service(service_type) + app_name = 'my_app' + user_id_1 = 'user1' + user_id_2 = 'user2' + + await session_service.create_session( + app_name=app_name, + user_id=user_id_1, + session_id='session1a', + state={'key': 'value1a'}, + ) + await session_service.create_session( + app_name=app_name, + user_id=user_id_1, + session_id='session1b', + state={'key': 'value1b'}, + ) + await session_service.create_session( + app_name=app_name, + user_id=user_id_2, + session_id='session2a', + state={'key': 'value2a'}, + ) + + # List sessions for user1 + list_sessions_response_1 = await session_service.list_sessions( + app_name=app_name, user_id=user_id_1 + ) + sessions_1 = list_sessions_response_1.sessions + assert len(sessions_1) == 2 + assert {s.id for s in sessions_1} == {'session1a', 'session1b'} + for session in sessions_1: + if session.id == 'session1a': + assert session.state == {'key': 'value1a'} + else: + assert session.state == {'key': 'value1b'} + + # List sessions for user2 + list_sessions_response_2 = await session_service.list_sessions( + app_name=app_name, user_id=user_id_2 + ) + sessions_2 = list_sessions_response_2.sessions + assert len(sessions_2) == 1 + assert sessions_2[0].id == 'session2a' + assert sessions_2[0].state == {'key': 'value2a'} + + # List sessions for all users + list_sessions_response_all = await session_service.list_sessions( + app_name=app_name, user_id=None + ) + sessions_all = list_sessions_response_all.sessions + assert len(sessions_all) == 3 + assert {s.id for s in sessions_all} == {'session1a', 'session1b', 'session2a'} @pytest.mark.asyncio diff --git a/tests/unittests/sessions/test_vertex_ai_session_service.py b/tests/unittests/sessions/test_vertex_ai_session_service.py index 92a180e641..bf06fc0101 100644 --- a/tests/unittests/sessions/test_vertex_ai_session_service.py +++ b/tests/unittests/sessions/test_vertex_ai_session_service.py @@ -252,19 +252,22 @@ def _get_session(self, name: str): def _list_sessions(self, name: str, config: dict[str, Any]): filter_val = config.get('filter', '') user_id_match = re.search(r'user_id="([^"]+)"', filter_val) - if not user_id_match: - raise ValueError(f'Could not find user_id in filter: {filter_val}') - user_id = user_id_match.group(1) - - if user_id == 'user_with_pages': + if user_id_match: + user_id = user_id_match.group(1) + if user_id == 'user_with_pages': + return [ + _convert_to_object(MOCK_SESSION_JSON_PAGE1), + _convert_to_object(MOCK_SESSION_JSON_PAGE2), + ] return [ - _convert_to_object(MOCK_SESSION_JSON_PAGE1), - _convert_to_object(MOCK_SESSION_JSON_PAGE2), + _convert_to_object(session) + for session in self.session_dict.values() + if session['user_id'] == user_id ] + + # No user filter, return all sessions return [ - _convert_to_object(session) - for session in self.session_dict.values() - if session['user_id'] == user_id + _convert_to_object(session) for session in self.session_dict.values() ] def _delete_session(self, name: str): @@ -475,6 +478,15 @@ async def test_list_sessions_with_pagination(): assert sessions.sessions[1].id == 'page2' +@pytest.mark.asyncio +@pytest.mark.usefixtures('mock_get_api_client') +async def test_list_sessions_all_users(): + session_service = mock_vertex_ai_session_service() + sessions = await session_service.list_sessions(app_name='123', user_id=None) + assert len(sessions.sessions) == 5 + assert {s.id for s in sessions.sessions} == {'1', '2', '3', 'page1', 'page2'} + + @pytest.mark.asyncio @pytest.mark.usefixtures('mock_get_api_client') async def test_create_session(): From f9c09ef07525c59d9eae948ef89eabcac4e56810 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Tue, 14 Oct 2025 15:10:03 -0700 Subject: [PATCH 103/303] feat: Support returning all sessions when user_id is none in the request resolves https://github.com/google/adk-python/issues/3154 PiperOrigin-RevId: 819417330 --- .../adk/sessions/base_session_service.py | 13 +--- .../adk/sessions/database_session_service.py | 38 ++++------- .../adk/sessions/in_memory_session_service.py | 28 +++----- .../adk/sessions/vertex_ai_session_service.py | 9 +-- .../sessions/test_session_service.py | 67 +------------------ .../test_vertex_ai_session_service.py | 32 +++------ 6 files changed, 40 insertions(+), 147 deletions(-) diff --git a/src/google/adk/sessions/base_session_service.py b/src/google/adk/sessions/base_session_service.py index f2f6f9f22d..a76a6b9d82 100644 --- a/src/google/adk/sessions/base_session_service.py +++ b/src/google/adk/sessions/base_session_service.py @@ -83,18 +83,9 @@ async def get_session( @abc.abstractmethod async def list_sessions( - self, *, app_name: str, user_id: Optional[str] = None + self, *, app_name: str, user_id: str ) -> ListSessionsResponse: - """Lists all the sessions for a user. - - Args: - app_name: The name of the app. - user_id: The ID of the user. If not provided, lists all sessions for all - users. - - Returns: - A ListSessionsResponse containing the sessions. - """ + """Lists all the sessions.""" @abc.abstractmethod async def delete_session( diff --git a/src/google/adk/sessions/database_session_service.py b/src/google/adk/sessions/database_session_service.py index 7ed3e3be8f..3ed87847fe 100644 --- a/src/google/adk/sessions/database_session_service.py +++ b/src/google/adk/sessions/database_session_service.py @@ -554,42 +554,30 @@ async def get_session( @override async def list_sessions( - self, *, app_name: str, user_id: Optional[str] = None + self, *, app_name: str, user_id: str ) -> ListSessionsResponse: with self.database_session_factory() as sql_session: - query = sql_session.query(StorageSession).filter( - StorageSession.app_name == app_name + results = ( + sql_session.query(StorageSession) + .filter(StorageSession.app_name == app_name) + .filter(StorageSession.user_id == user_id) + .all() ) - if user_id is not None: - query = query.filter(StorageSession.user_id == user_id) - results = query.all() - # Fetch app state from storage + # Fetch states from storage storage_app_state = sql_session.get(StorageAppState, (app_name)) - app_state = storage_app_state.state if storage_app_state else {} + storage_user_state = sql_session.get( + StorageUserState, (app_name, user_id) + ) - # Fetch user state(s) from storage - user_states_map = {} - if user_id is not None: - storage_user_state = sql_session.get( - StorageUserState, (app_name, user_id) - ) - if storage_user_state: - user_states_map[user_id] = storage_user_state.state - else: - all_user_states_for_app = ( - sql_session.query(StorageUserState) - .filter(StorageUserState.app_name == app_name) - .all() - ) - for storage_user_state in all_user_states_for_app: - user_states_map[storage_user_state.user_id] = storage_user_state.state + app_state = storage_app_state.state if storage_app_state else {} + user_state = storage_user_state.state if storage_user_state else {} sessions = [] for storage_session in results: session_state = storage_session.state - user_state = user_states_map.get(storage_session.user_id, {}) merged_state = _merge_state(app_state, user_state, session_state) + sessions.append(storage_session.to_session(state=merged_state)) return ListSessionsResponse(sessions=sessions) diff --git a/src/google/adk/sessions/in_memory_session_service.py b/src/google/adk/sessions/in_memory_session_service.py index adc0923004..bbb480ae45 100644 --- a/src/google/adk/sessions/in_memory_session_service.py +++ b/src/google/adk/sessions/in_memory_session_service.py @@ -201,41 +201,31 @@ def _merge_state( @override async def list_sessions( - self, *, app_name: str, user_id: Optional[str] = None + self, *, app_name: str, user_id: str ) -> ListSessionsResponse: return self._list_sessions_impl(app_name=app_name, user_id=user_id) def list_sessions_sync( - self, *, app_name: str, user_id: Optional[str] = None + self, *, app_name: str, user_id: str ) -> ListSessionsResponse: logger.warning('Deprecated. Please migrate to the async method.') return self._list_sessions_impl(app_name=app_name, user_id=user_id) def _list_sessions_impl( - self, *, app_name: str, user_id: Optional[str] = None + self, *, app_name: str, user_id: str ) -> ListSessionsResponse: empty_response = ListSessionsResponse() if app_name not in self.sessions: return empty_response - if user_id is not None and user_id not in self.sessions[app_name]: + if user_id not in self.sessions[app_name]: return empty_response sessions_without_events = [] - - if user_id is None: - for user_id in self.sessions[app_name]: - for session_id in self.sessions[app_name][user_id]: - session = self.sessions[app_name][user_id][session_id] - copied_session = copy.deepcopy(session) - copied_session.events = [] - copied_session = self._merge_state(app_name, user_id, copied_session) - sessions_without_events.append(copied_session) - else: - for session in self.sessions[app_name][user_id].values(): - copied_session = copy.deepcopy(session) - copied_session.events = [] - copied_session = self._merge_state(app_name, user_id, copied_session) - sessions_without_events.append(copied_session) + for session in self.sessions[app_name][user_id].values(): + copied_session = copy.deepcopy(session) + copied_session.events = [] + copied_session = self._merge_state(app_name, user_id, copied_session) + sessions_without_events.append(copied_session) return ListSessionsResponse(sessions=sessions_without_events) @override diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index 72ff0d6c13..3cb1d61ea4 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -200,25 +200,22 @@ async def get_session( @override async def list_sessions( - self, *, app_name: str, user_id: Optional[str] = None + self, *, app_name: str, user_id: str ) -> ListSessionsResponse: reasoning_engine_id = self._get_reasoning_engine_id(app_name) api_client = self._get_api_client() sessions = [] - config = {} - if user_id is not None: - config['filter'] = f'user_id="{user_id}"' sessions_iterator = api_client.agent_engines.sessions.list( name=f'reasoningEngines/{reasoning_engine_id}', - config=config, + config={'filter': f'user_id="{user_id}"'}, ) for api_session in sessions_iterator: sessions.append( Session( app_name=app_name, - user_id=api_session.user_id, + user_id=user_id, id=api_session.name.split('/')[-1], state=getattr(api_session, 'session_state', None) or {}, last_update_time=api_session.update_time.timestamp(), diff --git a/tests/unittests/sessions/test_session_service.py b/tests/unittests/sessions/test_session_service.py index 0c005d683f..2ca265cb64 100644 --- a/tests/unittests/sessions/test_session_service.py +++ b/tests/unittests/sessions/test_session_service.py @@ -116,70 +116,9 @@ async def test_create_and_list_sessions(service_type): app_name=app_name, user_id=user_id ) sessions = list_sessions_response.sessions - assert len(sessions) == len(session_ids) - assert {s.id for s in sessions} == set(session_ids) - for session in sessions: - assert session.state == {'key': 'value' + session.id} - - -@pytest.mark.asyncio -@pytest.mark.parametrize( - 'service_type', [SessionServiceType.IN_MEMORY, SessionServiceType.DATABASE] -) -async def test_list_sessions_all_users(service_type): - session_service = get_session_service(service_type) - app_name = 'my_app' - user_id_1 = 'user1' - user_id_2 = 'user2' - - await session_service.create_session( - app_name=app_name, - user_id=user_id_1, - session_id='session1a', - state={'key': 'value1a'}, - ) - await session_service.create_session( - app_name=app_name, - user_id=user_id_1, - session_id='session1b', - state={'key': 'value1b'}, - ) - await session_service.create_session( - app_name=app_name, - user_id=user_id_2, - session_id='session2a', - state={'key': 'value2a'}, - ) - - # List sessions for user1 - list_sessions_response_1 = await session_service.list_sessions( - app_name=app_name, user_id=user_id_1 - ) - sessions_1 = list_sessions_response_1.sessions - assert len(sessions_1) == 2 - assert {s.id for s in sessions_1} == {'session1a', 'session1b'} - for session in sessions_1: - if session.id == 'session1a': - assert session.state == {'key': 'value1a'} - else: - assert session.state == {'key': 'value1b'} - - # List sessions for user2 - list_sessions_response_2 = await session_service.list_sessions( - app_name=app_name, user_id=user_id_2 - ) - sessions_2 = list_sessions_response_2.sessions - assert len(sessions_2) == 1 - assert sessions_2[0].id == 'session2a' - assert sessions_2[0].state == {'key': 'value2a'} - - # List sessions for all users - list_sessions_response_all = await session_service.list_sessions( - app_name=app_name, user_id=None - ) - sessions_all = list_sessions_response_all.sessions - assert len(sessions_all) == 3 - assert {s.id for s in sessions_all} == {'session1a', 'session1b', 'session2a'} + for i in range(len(sessions)): + assert sessions[i].id == session_ids[i] + assert sessions[i].state == {'key': 'value' + session_ids[i]} @pytest.mark.asyncio diff --git a/tests/unittests/sessions/test_vertex_ai_session_service.py b/tests/unittests/sessions/test_vertex_ai_session_service.py index bf06fc0101..92a180e641 100644 --- a/tests/unittests/sessions/test_vertex_ai_session_service.py +++ b/tests/unittests/sessions/test_vertex_ai_session_service.py @@ -252,22 +252,19 @@ def _get_session(self, name: str): def _list_sessions(self, name: str, config: dict[str, Any]): filter_val = config.get('filter', '') user_id_match = re.search(r'user_id="([^"]+)"', filter_val) - if user_id_match: - user_id = user_id_match.group(1) - if user_id == 'user_with_pages': - return [ - _convert_to_object(MOCK_SESSION_JSON_PAGE1), - _convert_to_object(MOCK_SESSION_JSON_PAGE2), - ] + if not user_id_match: + raise ValueError(f'Could not find user_id in filter: {filter_val}') + user_id = user_id_match.group(1) + + if user_id == 'user_with_pages': return [ - _convert_to_object(session) - for session in self.session_dict.values() - if session['user_id'] == user_id + _convert_to_object(MOCK_SESSION_JSON_PAGE1), + _convert_to_object(MOCK_SESSION_JSON_PAGE2), ] - - # No user filter, return all sessions return [ - _convert_to_object(session) for session in self.session_dict.values() + _convert_to_object(session) + for session in self.session_dict.values() + if session['user_id'] == user_id ] def _delete_session(self, name: str): @@ -478,15 +475,6 @@ async def test_list_sessions_with_pagination(): assert sessions.sessions[1].id == 'page2' -@pytest.mark.asyncio -@pytest.mark.usefixtures('mock_get_api_client') -async def test_list_sessions_all_users(): - session_service = mock_vertex_ai_session_service() - sessions = await session_service.list_sessions(app_name='123', user_id=None) - assert len(sessions.sessions) == 5 - assert {s.id for s in sessions.sessions} == {'1', '2', '3', 'page1', 'page2'} - - @pytest.mark.asyncio @pytest.mark.usefixtures('mock_get_api_client') async def test_create_session(): From 05aa3fa38b9afb9c5b0e6d4dba1093a6874ad3bd Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Tue, 14 Oct 2025 15:35:27 -0700 Subject: [PATCH 104/303] fix: Remove the PR triaging agent's dependence on "bot triaged" label PiperOrigin-RevId: 819427872 --- .github/workflows/pr-triage.yml | 10 ++++++++-- contributing/samples/adk_pr_triaging_agent/agent.py | 5 ++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pr-triage.yml b/.github/workflows/pr-triage.yml index d0491d9eeb..a8a2082094 100644 --- a/.github/workflows/pr-triage.yml +++ b/.github/workflows/pr-triage.yml @@ -3,10 +3,16 @@ name: ADK Pull Request Triaging Agent on: pull_request_target: types: [opened, reopened, edited] + workflow_dispatch: + inputs: + pr_number: + description: 'The Pull Request number to triage' + required: true + type: 'string' jobs: agent-triage-pull-request: - if: "!contains(github.event.pull_request.labels.*.name, 'bot triaged') && !contains(github.event.pull_request.labels.*.name, 'google-contributor')" + if: github.event_name == 'workflow_dispatch' || !contains(github.event.pull_request.labels.*.name, 'google-contributor') runs-on: ubuntu-latest permissions: pull-requests: write @@ -33,7 +39,7 @@ jobs: GOOGLE_GENAI_USE_VERTEXAI: 0 OWNER: 'google' REPO: 'adk-python' - PULL_REQUEST_NUMBER: ${{ github.event.pull_request.number }} + PULL_REQUEST_NUMBER: ${{ github.event.pull_request.number || github.event.inputs.pr_number }} INTERACTIVE: ${{ vars.PR_TRIAGE_INTERACTIVE }} PYTHONPATH: contributing/samples run: python -m adk_pr_triaging_agent.main diff --git a/contributing/samples/adk_pr_triaging_agent/agent.py b/contributing/samples/adk_pr_triaging_agent/agent.py index 14ff44b60c..e7718e5041 100644 --- a/contributing/samples/adk_pr_triaging_agent/agent.py +++ b/contributing/samples/adk_pr_triaging_agent/agent.py @@ -298,7 +298,10 @@ def add_comment_to_pr(pr_number: int, comment: str) -> dict[str, Any]: # 4. Steps When you are given a PR, here are the steps you should take: - Call the `get_pull_request_details` tool to get the details of the PR. - - Skip the PR (i.e. do not label or comment) if the PR is closed or is labeled with "{BOT_LABEL}" or "google-contributior". + - Skip the PR (i.e. do not label or comment) if any of the following is true: + - the PR is closed + - the PR is labeled with "google-contributior" + - the PR is already labelled with the above labels (e.g. "documentation", "services", "tools", etc.) and has a reviewer assigned. - Check if the PR is following the contribution guidelines. - If it's not following the guidelines, recommend or add a comment to the PR that points to the contribution guidelines (https://github.com/google/adk-python/blob/main/CONTRIBUTING.md). - If it's following the guidelines, recommend or add a label to the PR. From d82c4921404d638eda31ac42788ffb14d54854e7 Mon Sep 17 00:00:00 2001 From: Ankur Sharma Date: Tue, 14 Oct 2025 22:37:15 -0700 Subject: [PATCH 105/303] chore: Remove deprecated `convert_session_to_eval_format` function This change removes the `convert_session_to_eval_format` function and its associated unit tests. New tests for `create_gcs_eval_managers_from_uri` are also added. PiperOrigin-RevId: 819576620 --- src/google/adk/cli/utils/evals.py | 81 ----- tests/unittests/cli/utils/test_evals.py | 455 +++--------------------- 2 files changed, 42 insertions(+), 494 deletions(-) diff --git a/src/google/adk/cli/utils/evals.py b/src/google/adk/cli/utils/evals.py index 8b2a3f2fca..715c07c147 100644 --- a/src/google/adk/cli/utils/evals.py +++ b/src/google/adk/cli/utils/evals.py @@ -14,15 +14,11 @@ from __future__ import annotations -import dataclasses import os -from typing import Any -from typing import Tuple from pydantic import alias_generators from pydantic import BaseModel from pydantic import ConfigDict -from typing_extensions import deprecated from ...evaluation.eval_case import Invocation from ...evaluation.evaluation_generator import EvaluationGenerator @@ -43,83 +39,6 @@ class GcsEvalManagers(BaseModel): eval_set_results_manager: GcsEvalSetResultsManager -@deprecated('Use convert_session_to_eval_invocations instead.') -def convert_session_to_eval_format(session: Session) -> list[dict[str, Any]]: - """Converts a session data into eval format. - - Args: - session: The session that should be converted. - - Returns: - list: A single evaluation dataset in the required format. - """ - eval_case = [] - events = session.events if session and session.events else [] - - for event in events: - if event.author == 'user': - if not event.content or not event.content.parts: - continue - - # Extract user query - content = event.content - parts = content.parts - - query = parts[0].text or '' - - # Find the corresponding tool usage or response for the query - expected_tool_use = [] - intermediate_agent_responses = [] - - # Check subsequent events to extract tool uses or responses for this turn. - for subsequent_event in events[events.index(event) + 1 :]: - event_author = subsequent_event.author or 'agent' - if event_author == 'user': - # We found an event where the author was the user. This means that a - # new turn has started. So close this turn here. - break - - if not subsequent_event.content or not subsequent_event.content.parts: - continue - - for subsequent_part in subsequent_event.content.parts: - # Some events have both function call and reference - - if subsequent_part.function_call: - tool_name = subsequent_part.function_call.name or '' - tool_input = subsequent_part.function_call.args or {} - expected_tool_use.append({ - 'tool_name': tool_name, - 'tool_input': tool_input, - }) - elif subsequent_part.text: - # Also keep track of all the natural language responses that - # agent (or sub agents) generated. - intermediate_agent_responses.append( - {'author': event_author, 'text': subsequent_part.text} - ) - - # If we are here then either we are done reading all the events or we - # encountered an event that had content authored by the end-user. - # This, basically means an end of turn. - # We assume that the last natural language intermediate response is the - # final response from the agent/model. We treat that as a reference. - eval_case.append({ - 'query': query, - 'expected_tool_use': expected_tool_use, - 'expected_intermediate_agent_responses': intermediate_agent_responses[ - :-1 - ], - 'reference': ( - intermediate_agent_responses[-1]['text'] - if intermediate_agent_responses - else '' - ), - }) - - return eval_case - - def convert_session_to_eval_invocations(session: Session) -> list[Invocation]: """Converts a session data into a list of Invocation. diff --git a/tests/unittests/cli/utils/test_evals.py b/tests/unittests/cli/utils/test_evals.py index e73a4cbd30..0438278cda 100644 --- a/tests/unittests/cli/utils/test_evals.py +++ b/tests/unittests/cli/utils/test_evals.py @@ -14,421 +14,50 @@ """Tests for utilities in eval.""" - -from google.adk.cli.utils.evals import convert_session_to_eval_format -from google.adk.events.event import Event -from google.adk.sessions.session import Session -from google.genai import types - - -def build_event(author: str, parts_content: list[dict]) -> Event: - """Builds an Event object with specified parts.""" - parts = [] - for p_data in parts_content: - part_args = {} - if "text" in p_data: - part_args["text"] = p_data["text"] - if "func_name" in p_data: - part_args["function_call"] = types.FunctionCall( - name=p_data.get("func_name"), args=p_data.get("func_args") - ) - # Add other part types here if needed for future tests - parts.append(types.Part(**part_args)) - return Event(author=author, content=types.Content(parts=parts)) - - -def test_convert_empty_session(): - """Test conversion function with empty events list in Session.""" - # Pydantic models require mandatory fields for instantiation - session_empty_events = Session( - id="s1", app_name="app", user_id="u1", events=[] +import os +from unittest import mock + +from google.adk.cli.utils import evals +from google.adk.evaluation.gcs_eval_set_results_manager import GcsEvalSetResultsManager +from google.adk.evaluation.gcs_eval_sets_manager import GcsEvalSetsManager +import pytest + + +@mock.patch.dict(os.environ, {'GOOGLE_CLOUD_PROJECT': 'test-project'}) +@mock.patch( + 'google.adk.cli.utils.evals.GcsEvalSetResultsManager', + autospec=True, +) +@mock.patch( + 'google.adk.cli.utils.evals.GcsEvalSetsManager', + autospec=True, +) +def test_create_gcs_eval_managers_from_uri_success( + mock_gcs_eval_sets_manager, mock_gcs_eval_set_results_manager +): + mock_gcs_eval_sets_manager.return_value = mock.MagicMock( + spec=GcsEvalSetsManager + ) + mock_gcs_eval_set_results_manager.return_value = mock.MagicMock( + spec=GcsEvalSetResultsManager ) - assert not convert_session_to_eval_format(session_empty_events) - - -def test_convert_none_session(): - """Test conversion function with None Session.""" - assert not convert_session_to_eval_format(None) - - -def test_convert_session_skips_initial_non_user_events(): - """Test conversion function with only user events.""" - events = [ - build_event("model", [{"text": "Hello"}]), - build_event("user", [{"text": "How are you?"}]), - ] - session = Session(id="s1", app_name="app", user_id="u1", events=events) - expected = [ - { - "query": "How are you?", - "expected_tool_use": [], - "expected_intermediate_agent_responses": [], - "reference": "", - }, - ] - assert convert_session_to_eval_format(session) == expected - - -def test_convert_single_turn_text_only(): - """Test a single user query followed by a single agent text response.""" - events = [ - build_event("user", [{"text": "What is the time?"}]), - build_event("root_agent", [{"text": "It is 3 PM."}]), - ] - session = Session(id="s1", app_name="app", user_id="u1", events=events) - expected = [{ - "query": "What is the time?", - "expected_tool_use": [], - "expected_intermediate_agent_responses": [], - "reference": "It is 3 PM.", - }] - assert convert_session_to_eval_format(session) == expected - - -def test_convert_single_turn_tool_only(): - """Test a single user query followed by a single agent tool call.""" - events = [ - build_event("user", [{"text": "Get weather for Seattle"}]), - build_event( - "root_agent", - [{"func_name": "get_weather", "func_args": {"city": "Seattle"}}], - ), - ] - session = Session(id="s1", app_name="app", user_id="u1", events=events) - expected = [{ - "query": "Get weather for Seattle", - "expected_tool_use": [ - {"tool_name": "get_weather", "tool_input": {"city": "Seattle"}} - ], - "expected_intermediate_agent_responses": [], - "reference": "", - }] - assert convert_session_to_eval_format(session) == expected - - -def test_convert_single_turn_multiple_tools_and_texts(): - """Test a turn with multiple agent responses (tools and text).""" - events = [ - build_event("user", [{"text": "Do task A then task B"}]), - build_event( - "root_agent", [{"text": "Okay, starting task A."}] - ), # Intermediate Text 1 - build_event( - "root_agent", [{"func_name": "task_A", "func_args": {"param": 1}}] - ), # Tool 1 - build_event( - "root_agent", [{"text": "Task A done. Now starting task B."}] - ), # Intermediate Text 2 - build_event( - "another_agent", [{"func_name": "task_B", "func_args": {}}] - ), # Tool 2 - build_event( - "root_agent", [{"text": "All tasks completed."}] - ), # Final Text (Reference) - ] - session = Session(id="s1", app_name="app", user_id="u1", events=events) - expected = [{ - "query": "Do task A then task B", - "expected_tool_use": [ - {"tool_name": "task_A", "tool_input": {"param": 1}}, - {"tool_name": "task_B", "tool_input": {}}, - ], - "expected_intermediate_agent_responses": [ - {"author": "root_agent", "text": "Okay, starting task A."}, - { - "author": "root_agent", - "text": "Task A done. Now starting task B.", - }, - ], - "reference": "All tasks completed.", - }] - assert convert_session_to_eval_format(session) == expected - - -def test_convert_multi_turn_session(): - """Test a session with multiple user/agent turns.""" - events = [ - build_event("user", [{"text": "Query 1"}]), - build_event("agent", [{"text": "Response 1"}]), - build_event("user", [{"text": "Query 2"}]), - build_event("agent", [{"func_name": "tool_X", "func_args": {}}]), - build_event("agent", [{"text": "Response 2"}]), - ] - session = Session(id="s1", app_name="app", user_id="u1", events=events) - expected = [ - { # Turn 1 - "query": "Query 1", - "expected_tool_use": [], - "expected_intermediate_agent_responses": [], - "reference": "Response 1", - }, - { # Turn 2 - "query": "Query 2", - "expected_tool_use": [{"tool_name": "tool_X", "tool_input": {}}], - "expected_intermediate_agent_responses": [], - "reference": "Response 2", - }, - ] - assert convert_session_to_eval_format(session) == expected - - -def test_convert_agent_event_multiple_parts(): - """Test an agent event with both text and tool call parts.""" - events = [ - build_event("user", [{"text": "Do something complex"}]), - # Build event with multiple dicts in parts_content list - build_event( - "agent", - [ - {"text": "Okay, doing it."}, - {"func_name": "complex_tool", "func_args": {"value": True}}, - ], - ), - build_event("agent", [{"text": "Finished."}]), - ] - session = Session(id="s1", app_name="app", user_id="u1", events=events) - expected = [{ - "query": "Do something complex", - "expected_tool_use": [ - {"tool_name": "complex_tool", "tool_input": {"value": True}} - ], - "expected_intermediate_agent_responses": [{ - "author": "agent", - "text": "Okay, doing it.", - }], # Text from first part of agent event - "reference": "Finished.", # Text from second agent event - }] - assert convert_session_to_eval_format(session) == expected - - -def test_convert_handles_missing_content_or_parts(): - """Test that events missing content or parts are skipped gracefully.""" - events = [ - build_event("user", [{"text": "Query 1"}]), - Event(author="agent", content=None), # Agent event missing content - build_event("agent", [{"text": "Response 1"}]), - Event(author="user", content=None), # User event missing content - build_event("user", [{"text": "Query 2"}]), - Event( - author="agent", content=types.Content(parts=[]) - ), # Agent event with empty parts list - build_event("agent", [{"text": "Response 2"}]), - # User event with content but no parts (or None parts) - Event(author="user", content=types.Content(parts=None)), - build_event("user", [{"text": "Query 3"}]), - build_event("agent", [{"text": "Response 3"}]), - ] - session = Session(id="s1", app_name="app", user_id="u1", events=events) - expected = [ - { # Turn 1 (from Query 1) - "query": "Query 1", - "expected_tool_use": [], - "expected_intermediate_agent_responses": [], - "reference": "Response 1", - }, - { # Turn 2 (from Query 2 - user event with None content was skipped) - "query": "Query 2", - "expected_tool_use": [], - "expected_intermediate_agent_responses": [], - "reference": "Response 2", - }, - { # Turn 3 (from Query 3 - user event with None parts was skipped) - "query": "Query 3", - "expected_tool_use": [], - "expected_intermediate_agent_responses": [], - "reference": "Response 3", - }, - ] - assert convert_session_to_eval_format(session) == expected - - -def test_convert_handles_missing_tool_name_or_args(): - """Test tool calls with missing name or args.""" - events = [ - build_event("user", [{"text": "Call tools"}]), - # Event where FunctionCall has name=None - Event( - author="agent", - content=types.Content( - parts=[ - types.Part( - function_call=types.FunctionCall(name=None, args={"a": 1}) - ) - ] - ), - ), - # Event where FunctionCall has args=None - Event( - author="agent", - content=types.Content( - parts=[ - types.Part( - function_call=types.FunctionCall(name="tool_B", args=None) - ) - ] - ), - ), - # Event where FunctionCall part exists but FunctionCall object is None - # (should skip) - Event( - author="agent", - content=types.Content( - parts=[types.Part(function_call=None, text="some text")] - ), - ), - build_event("agent", [{"text": "Done"}]), - ] - session = Session(id="s1", app_name="app", user_id="u1", events=events) - expected = [{ - "query": "Call tools", - "expected_tool_use": [ - {"tool_name": "", "tool_input": {"a": 1}}, # Defaults name to "" - {"tool_name": "tool_B", "tool_input": {}}, # Defaults args to {} - ], - "expected_intermediate_agent_responses": [{ - "author": "agent", - "text": "some text", - }], # Text part from the event where function_call was None - "reference": "Done", - }] - assert convert_session_to_eval_format(session) == expected - - -def test_convert_handles_missing_user_query_text(): - """Test user event where the first part has no text.""" - events = [ - # Event where user part has text=None - Event( - author="user", content=types.Content(parts=[types.Part(text=None)]) - ), - build_event("agent", [{"text": "Response 1"}]), - # Event where user part has text="" - build_event("user", [{"text": ""}]), - build_event("agent", [{"text": "Response 2"}]), - ] - session = Session(id="s1", app_name="app", user_id="u1", events=events) - expected = [ - { - "query": "", # Defaults to "" if text is None - "expected_tool_use": [], - "expected_intermediate_agent_responses": [], - "reference": "Response 1", - }, - { - "query": "", # Defaults to "" if text is "" - "expected_tool_use": [], - "expected_intermediate_agent_responses": [], - "reference": "Response 2", - }, - ] - assert convert_session_to_eval_format(session) == expected - - -def test_convert_handles_empty_agent_text(): - """Test agent responses with empty string text.""" - events = [ - build_event("user", [{"text": "Query"}]), - build_event("agent", [{"text": "Okay"}]), - build_event("agent", [{"text": ""}]), # Empty text - build_event("agent", [{"text": "Done"}]), - ] - session = Session(id="s1", app_name="app", user_id="u1", events=events) - expected = [{ - "query": "Query", - "expected_tool_use": [], - "expected_intermediate_agent_responses": [ - {"author": "agent", "text": "Okay"}, - ], - "reference": "Done", - }] - assert convert_session_to_eval_format(session) == expected + managers = evals.create_gcs_eval_managers_from_uri('gs://test-bucket') -def test_convert_complex_sample_session(): - """Test using the complex sample session provided earlier.""" - events = [ - build_event("user", [{"text": "What can you do?"}]), - build_event( - "root_agent", - [{"text": "I can roll dice and check if numbers are prime. \n"}], - ), - build_event( - "user", - [{ - "text": ( - "Roll a 8 sided dice and then check if 90 is a prime number" - " or not." - ) - }], - ), - build_event( - "root_agent", - [{ - "func_name": "transfer_to_agent", - "func_args": {"agent_name": "roll_agent"}, - }], - ), - # Skipping FunctionResponse events as they don't have text/functionCall - # parts used by converter - build_event( - "roll_agent", [{"func_name": "roll_die", "func_args": {"sides": 8}}] - ), - # Skipping FunctionResponse - build_event( - "roll_agent", - [ - {"text": "I rolled a 2. Now, I'll check if 90 is prime. \n\n"}, - { - "func_name": "transfer_to_agent", - "func_args": {"agent_name": "prime_agent"}, - }, - ], - ), - # Skipping FunctionResponse - build_event( - "prime_agent", - [{"func_name": "check_prime", "func_args": {"nums": [90]}}], - ), - # Skipping FunctionResponse - build_event("prime_agent", [{"text": "90 is not a prime number. \n"}]), - ] - session = Session( - id="some_id", - app_name="hello_world_ma", - user_id="user", - events=events, + assert managers is not None + mock_gcs_eval_sets_manager.assert_called_once_with( + bucket_name='test-bucket', project='test-project' ) - expected = [ - { - "query": "What can you do?", - "expected_tool_use": [], - "expected_intermediate_agent_responses": [], - "reference": "I can roll dice and check if numbers are prime. \n", - }, - { - "query": ( - "Roll a 8 sided dice and then check if 90 is a prime number or" - " not." - ), - "expected_tool_use": [ - { - "tool_name": "transfer_to_agent", - "tool_input": {"agent_name": "roll_agent"}, - }, - {"tool_name": "roll_die", "tool_input": {"sides": 8}}, - { - "tool_name": "transfer_to_agent", - "tool_input": {"agent_name": "prime_agent"}, - }, # From combined event - {"tool_name": "check_prime", "tool_input": {"nums": [90]}}, - ], - "expected_intermediate_agent_responses": [{ - "author": "roll_agent", - "text": "I rolled a 2. Now, I'll check if 90 is prime. \n\n", - }], # Text from combined event - "reference": "90 is not a prime number. \n", - }, - ] + mock_gcs_eval_set_results_manager.assert_called_once_with( + bucket_name='test-bucket', project='test-project' + ) + assert managers.eval_sets_manager == mock_gcs_eval_sets_manager.return_value + assert ( + managers.eval_set_results_manager + == mock_gcs_eval_set_results_manager.return_value + ) + - actual = convert_session_to_eval_format(session) - assert actual == expected +def test_create_gcs_eval_managers_from_uri_failure(): + with pytest.raises(ValueError): + evals.create_gcs_eval_managers_from_uri('unsupported-uri') From 78e74b5bf2d895d72025a44dbcf589f543514a50 Mon Sep 17 00:00:00 2001 From: Kathy Wu Date: Wed, 15 Oct 2025 09:57:09 -0700 Subject: [PATCH 106/303] feat: Add require_confirmation param for MCP tool/toolset This allows users to require human approval for using MCP tools. PiperOrigin-RevId: 819800747 --- contributing/samples/mcp_sse_agent/agent.py | 1 + src/google/adk/tools/mcp_tool/mcp_tool.py | 61 ++++++++++++++ src/google/adk/tools/mcp_tool/mcp_toolset.py | 8 ++ .../unittests/tools/mcp_tool/test_mcp_tool.py | 83 +++++++++++++++++++ 4 files changed, 153 insertions(+) diff --git a/contributing/samples/mcp_sse_agent/agent.py b/contributing/samples/mcp_sse_agent/agent.py index 5423bfc6b0..4981512e5f 100755 --- a/contributing/samples/mcp_sse_agent/agent.py +++ b/contributing/samples/mcp_sse_agent/agent.py @@ -53,6 +53,7 @@ 'get_file_info', 'list_allowed_directories', ], + require_confirmation=True, ) ], ) diff --git a/src/google/adk/tools/mcp_tool/mcp_tool.py b/src/google/adk/tools/mcp_tool/mcp_tool.py index 8683cdf3f0..94a7e63fbd 100644 --- a/src/google/adk/tools/mcp_tool/mcp_tool.py +++ b/src/google/adk/tools/mcp_tool/mcp_tool.py @@ -15,8 +15,12 @@ from __future__ import annotations import base64 +import inspect import logging +from typing import Any +from typing import Callable from typing import Optional +from typing import Union import warnings from fastapi.openapi.models import APIKeyIn @@ -70,6 +74,7 @@ def __init__( mcp_session_manager: MCPSessionManager, auth_scheme: Optional[AuthScheme] = None, auth_credential: Optional[AuthCredential] = None, + require_confirmation: Union[bool, Callable[..., bool]] = False, ): """Initializes an MCPTool. @@ -81,6 +86,10 @@ def __init__( mcp_session_manager: The MCP session manager to use for communication. auth_scheme: The authentication scheme to use. auth_credential: The authentication credential to use. + require_confirmation: Whether this tool requires confirmation. A boolean + or a callable that takes the function's arguments and returns a + boolean. If the callable returns True, the tool will require + confirmation from the user. Raises: ValueError: If mcp_tool or mcp_session_manager is None. @@ -96,6 +105,7 @@ def __init__( ) self._mcp_tool = mcp_tool self._mcp_session_manager = mcp_session_manager + self._require_confirmation = require_confirmation @override def _get_declaration(self) -> FunctionDeclaration: @@ -116,6 +126,57 @@ def raw_mcp_tool(self) -> McpBaseTool: """Returns the raw MCP tool.""" return self._mcp_tool + async def _invoke_callable( + self, target: Callable[..., Any], args_to_call: dict[str, Any] + ) -> Any: + """Invokes a callable, handling both sync and async cases.""" + + # Functions are callable objects, but not all callable objects are functions + # checking coroutine function is not enough. We also need to check whether + # Callable's __call__ function is a coroutine funciton + is_async = inspect.iscoroutinefunction(target) or ( + hasattr(target, "__call__") + and inspect.iscoroutinefunction(target.__call__) + ) + if is_async: + return await target(**args_to_call) + else: + return target(**args_to_call) + + @override + async def run_async( + self, *, args: dict[str, Any], tool_context: ToolContext + ) -> Any: + if isinstance(self._require_confirmation, Callable): + require_confirmation = await self._invoke_callable( + self._require_confirmation, args + ) + else: + require_confirmation = bool(self._require_confirmation) + + if require_confirmation: + if not tool_context.tool_confirmation: + args_to_show = args.copy() + if "tool_context" in args_to_show: + args_to_show.pop("tool_context") + + tool_context.request_confirmation( + hint=( + f"Please approve or reject the tool call {self.name}() by" + " responding with a FunctionResponse with an expected" + " ToolConfirmation payload." + ), + ) + return { + "error": ( + "This tool call requires confirmation, please approve or" + " reject." + ) + } + elif not tool_context.tool_confirmation.confirmed: + return {"error": "This tool call is rejected."} + return await super().run_async(args=args, tool_context=tool_context) + @retry_on_closed_resource @override async def _run_async_impl( diff --git a/src/google/adk/tools/mcp_tool/mcp_toolset.py b/src/google/adk/tools/mcp_tool/mcp_toolset.py index 150336f3f2..42b1137efb 100644 --- a/src/google/adk/tools/mcp_tool/mcp_toolset.py +++ b/src/google/adk/tools/mcp_tool/mcp_toolset.py @@ -16,6 +16,8 @@ import logging import sys +from typing import Callable +from typing import Dict from typing import List from typing import Optional from typing import TextIO @@ -104,6 +106,7 @@ def __init__( errlog: TextIO = sys.stderr, auth_scheme: Optional[AuthScheme] = None, auth_credential: Optional[AuthCredential] = None, + require_confirmation: Union[bool, Callable[..., bool]] = False, ): """Initializes the MCPToolset. @@ -124,6 +127,9 @@ def __init__( errlog: TextIO stream for error logging. auth_scheme: The auth scheme of the tool for tool calling auth_credential: The auth credential of the tool for tool calling + require_confirmation: Whether tools in this toolset require + confirmation. Can be a single boolean or a callable to apply to all + tools. """ super().__init__(tool_filter=tool_filter, tool_name_prefix=tool_name_prefix) @@ -140,6 +146,7 @@ def __init__( ) self._auth_scheme = auth_scheme self._auth_credential = auth_credential + self._require_confirmation = require_confirmation @retry_on_closed_resource async def get_tools( @@ -169,6 +176,7 @@ async def get_tools( mcp_session_manager=self._mcp_session_manager, auth_scheme=self._auth_scheme, auth_credential=self._auth_credential, + require_confirmation=self._require_confirmation, ) if self._is_tool_selected(mcp_tool, readonly_context): diff --git a/tests/unittests/tools/mcp_tool/test_mcp_tool.py b/tests/unittests/tools/mcp_tool/test_mcp_tool.py index d32593749b..7785447745 100644 --- a/tests/unittests/tools/mcp_tool/test_mcp_tool.py +++ b/tests/unittests/tools/mcp_tool/test_mcp_tool.py @@ -549,6 +549,89 @@ async def test_get_headers_api_key_error_logging(self): in logged_message ) + @pytest.mark.asyncio + async def test_run_async_require_confirmation_true_no_confirmation(self): + """Test require_confirmation=True with no confirmation in context.""" + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + require_confirmation=True, + ) + tool_context = Mock(spec=ToolContext) + tool_context.tool_confirmation = None + tool_context.request_confirmation = Mock() + args = {"param1": "test_value"} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == { + "error": ( + "This tool call requires confirmation, please approve or reject." + ) + } + tool_context.request_confirmation.assert_called_once() + + @pytest.mark.asyncio + async def test_run_async_require_confirmation_true_rejected(self): + """Test require_confirmation=True with rejection in context.""" + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + require_confirmation=True, + ) + tool_context = Mock(spec=ToolContext) + tool_context.tool_confirmation = Mock(confirmed=False) + args = {"param1": "test_value"} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == {"error": "This tool call is rejected."} + + @pytest.mark.asyncio + async def test_run_async_require_confirmation_true_confirmed(self): + """Test require_confirmation=True with confirmation in context.""" + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + require_confirmation=True, + ) + tool_context = Mock(spec=ToolContext) + tool_context.tool_confirmation = Mock(confirmed=True) + args = {"param1": "test_value"} + + with patch( + "google.adk.tools.base_authenticated_tool.BaseAuthenticatedTool.run_async", + new_callable=AsyncMock, + ) as mock_super_run_async: + await tool.run_async(args=args, tool_context=tool_context) + mock_super_run_async.assert_called_once_with( + args=args, tool_context=tool_context + ) + + @pytest.mark.asyncio + async def test_run_async_require_confirmation_callable_true_no_confirmation( + self, + ): + """Test require_confirmation=callable with no confirmation in context.""" + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + require_confirmation=lambda **kwargs: True, + ) + tool_context = Mock(spec=ToolContext) + tool_context.tool_confirmation = None + tool_context.request_confirmation = Mock() + args = {"param1": "test_value"} + + result = await tool.run_async(args=args, tool_context=tool_context) + + assert result == { + "error": ( + "This tool call requires confirmation, please approve or reject." + ) + } + tool_context.request_confirmation.assert_called_once() + def test_init_validation(self): """Test that initialization validates required parameters.""" # This test ensures that the MCPTool properly handles its dependencies From b65018138467e3205137d3ce309e8ff4ef076253 Mon Sep 17 00:00:00 2001 From: machache Date: Wed, 15 Oct 2025 11:59:18 -0700 Subject: [PATCH 107/303] feat: add support for ContetxtWindowCompressionConfig in RunConfig Merge https://github.com/google/adk-python/pull/2206 ### Summary This PR adds support for `ContextWindowCompressionConfig` in `RunConfig`. This enables context window compression using a `trigger_tokens` threshold and a sliding window with a `target_tokens` limit. This feature is useful for managing long-running audio inputs. ### Related Issue Closes #2188 ### Testing Plan - Added new unit test: `test_streaming_with_context_window_compression_config` COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/2206 from ac-machache:support/add-context-compression-config c8a5b15cae2d2b72f331797d07ae0bbaf977ed3c PiperOrigin-RevId: 819855786 --- src/google/adk/agents/run_config.py | 5 ++ src/google/adk/flows/llm_flows/basic.py | 3 + .../streaming/test_live_streaming_configs.py | 56 +++++++++++++++++++ 3 files changed, 64 insertions(+) diff --git a/src/google/adk/agents/run_config.py b/src/google/adk/agents/run_config.py index 9fe82fabf1..754970537e 100644 --- a/src/google/adk/agents/run_config.py +++ b/src/google/adk/agents/run_config.py @@ -94,6 +94,11 @@ class RunConfig(BaseModel): session_resumption: Optional[types.SessionResumptionConfig] = None """Configures session resumption mechanism. Only support transparent session resumption mode now.""" + context_window_compression: Optional[types.ContextWindowCompressionConfig] = ( + None + ) + """Configuration for context window compression. If set, this will enable context window compression for LLM input.""" + save_live_audio: bool = False """Saves live video and audio data to session and artifact service. diff --git a/src/google/adk/flows/llm_flows/basic.py b/src/google/adk/flows/llm_flows/basic.py index 013c7ad054..24cc7fd67c 100644 --- a/src/google/adk/flows/llm_flows/basic.py +++ b/src/google/adk/flows/llm_flows/basic.py @@ -79,6 +79,9 @@ async def run_async( llm_request.live_connect_config.session_resumption = ( invocation_context.run_config.session_resumption ) + llm_request.live_connect_config.context_window_compression = ( + invocation_context.run_config.context_window_compression + ) # TODO: handle tool append here, instead of in BaseTool.process_llm_request. diff --git a/tests/unittests/streaming/test_live_streaming_configs.py b/tests/unittests/streaming/test_live_streaming_configs.py index c5b3606776..ecb253e09f 100644 --- a/tests/unittests/streaming/test_live_streaming_configs.py +++ b/tests/unittests/streaming/test_live_streaming_configs.py @@ -586,3 +586,59 @@ def test_streaming_with_session_resumption_config(): llm_request_sent_to_mock.live_connect_config.session_resumption.transparent is True ) + + +def test_streaming_with_context_window_compression_config(): + """Test streaming with context window compression config.""" + response = LlmResponse(turn_complete=True) + + mock_model = testing_utils.MockModel.create([response]) + + root_agent = Agent( + name='root_agent', + model=mock_model, + tools=[], + ) + + runner = testing_utils.InMemoryRunner( + root_agent=root_agent, response_modalities=['AUDIO'] + ) + + # Create run config with context window compression + run_config = RunConfig( + context_window_compression=types.ContextWindowCompressionConfig( + trigger_tokens=1000, + sliding_window=types.SlidingWindow(target_tokens=500), + ) + ) + + live_request_queue = LiveRequestQueue() + live_request_queue.send_realtime( + blob=types.Blob(data=b'\x00\xFF', mime_type='audio/pcm') + ) + + res_events = runner.run_live(live_request_queue, run_config) + + assert res_events is not None, 'Expected a list of events, got None.' + assert ( + len(res_events) > 0 + ), 'Expected at least one response, but got an empty list.' + assert len(mock_model.requests) == 1 + + # Get the request that was captured + llm_request_sent_to_mock = mock_model.requests[0] + + # Assert that the request contained the correct configuration + assert llm_request_sent_to_mock.live_connect_config is not None + assert ( + llm_request_sent_to_mock.live_connect_config.context_window_compression + is not None + ) + assert ( + llm_request_sent_to_mock.live_connect_config.context_window_compression.trigger_tokens + == 1000 + ) + assert ( + llm_request_sent_to_mock.live_connect_config.context_window_compression.sliding_window.target_tokens + == 500 + ) From a985cc38ec063ea3c1f8f1adfdd8b90a925ffb57 Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Wed, 15 Oct 2025 13:13:46 -0700 Subject: [PATCH 108/303] feat: Support return all sessions when user id is none PiperOrigin-RevId: 819884236 --- .../adk/sessions/base_session_service.py | 13 +++- .../adk/sessions/database_session_service.py | 38 +++++++---- .../adk/sessions/in_memory_session_service.py | 28 +++++--- .../adk/sessions/vertex_ai_session_service.py | 9 ++- .../sessions/test_session_service.py | 67 ++++++++++++++++++- .../test_vertex_ai_session_service.py | 32 ++++++--- 6 files changed, 147 insertions(+), 40 deletions(-) diff --git a/src/google/adk/sessions/base_session_service.py b/src/google/adk/sessions/base_session_service.py index a76a6b9d82..f2f6f9f22d 100644 --- a/src/google/adk/sessions/base_session_service.py +++ b/src/google/adk/sessions/base_session_service.py @@ -83,9 +83,18 @@ async def get_session( @abc.abstractmethod async def list_sessions( - self, *, app_name: str, user_id: str + self, *, app_name: str, user_id: Optional[str] = None ) -> ListSessionsResponse: - """Lists all the sessions.""" + """Lists all the sessions for a user. + + Args: + app_name: The name of the app. + user_id: The ID of the user. If not provided, lists all sessions for all + users. + + Returns: + A ListSessionsResponse containing the sessions. + """ @abc.abstractmethod async def delete_session( diff --git a/src/google/adk/sessions/database_session_service.py b/src/google/adk/sessions/database_session_service.py index 3ed87847fe..7ed3e3be8f 100644 --- a/src/google/adk/sessions/database_session_service.py +++ b/src/google/adk/sessions/database_session_service.py @@ -554,30 +554,42 @@ async def get_session( @override async def list_sessions( - self, *, app_name: str, user_id: str + self, *, app_name: str, user_id: Optional[str] = None ) -> ListSessionsResponse: with self.database_session_factory() as sql_session: - results = ( - sql_session.query(StorageSession) - .filter(StorageSession.app_name == app_name) - .filter(StorageSession.user_id == user_id) - .all() + query = sql_session.query(StorageSession).filter( + StorageSession.app_name == app_name ) + if user_id is not None: + query = query.filter(StorageSession.user_id == user_id) + results = query.all() - # Fetch states from storage + # Fetch app state from storage storage_app_state = sql_session.get(StorageAppState, (app_name)) - storage_user_state = sql_session.get( - StorageUserState, (app_name, user_id) - ) - app_state = storage_app_state.state if storage_app_state else {} - user_state = storage_user_state.state if storage_user_state else {} + + # Fetch user state(s) from storage + user_states_map = {} + if user_id is not None: + storage_user_state = sql_session.get( + StorageUserState, (app_name, user_id) + ) + if storage_user_state: + user_states_map[user_id] = storage_user_state.state + else: + all_user_states_for_app = ( + sql_session.query(StorageUserState) + .filter(StorageUserState.app_name == app_name) + .all() + ) + for storage_user_state in all_user_states_for_app: + user_states_map[storage_user_state.user_id] = storage_user_state.state sessions = [] for storage_session in results: session_state = storage_session.state + user_state = user_states_map.get(storage_session.user_id, {}) merged_state = _merge_state(app_state, user_state, session_state) - sessions.append(storage_session.to_session(state=merged_state)) return ListSessionsResponse(sessions=sessions) diff --git a/src/google/adk/sessions/in_memory_session_service.py b/src/google/adk/sessions/in_memory_session_service.py index bbb480ae45..adc0923004 100644 --- a/src/google/adk/sessions/in_memory_session_service.py +++ b/src/google/adk/sessions/in_memory_session_service.py @@ -201,31 +201,41 @@ def _merge_state( @override async def list_sessions( - self, *, app_name: str, user_id: str + self, *, app_name: str, user_id: Optional[str] = None ) -> ListSessionsResponse: return self._list_sessions_impl(app_name=app_name, user_id=user_id) def list_sessions_sync( - self, *, app_name: str, user_id: str + self, *, app_name: str, user_id: Optional[str] = None ) -> ListSessionsResponse: logger.warning('Deprecated. Please migrate to the async method.') return self._list_sessions_impl(app_name=app_name, user_id=user_id) def _list_sessions_impl( - self, *, app_name: str, user_id: str + self, *, app_name: str, user_id: Optional[str] = None ) -> ListSessionsResponse: empty_response = ListSessionsResponse() if app_name not in self.sessions: return empty_response - if user_id not in self.sessions[app_name]: + if user_id is not None and user_id not in self.sessions[app_name]: return empty_response sessions_without_events = [] - for session in self.sessions[app_name][user_id].values(): - copied_session = copy.deepcopy(session) - copied_session.events = [] - copied_session = self._merge_state(app_name, user_id, copied_session) - sessions_without_events.append(copied_session) + + if user_id is None: + for user_id in self.sessions[app_name]: + for session_id in self.sessions[app_name][user_id]: + session = self.sessions[app_name][user_id][session_id] + copied_session = copy.deepcopy(session) + copied_session.events = [] + copied_session = self._merge_state(app_name, user_id, copied_session) + sessions_without_events.append(copied_session) + else: + for session in self.sessions[app_name][user_id].values(): + copied_session = copy.deepcopy(session) + copied_session.events = [] + copied_session = self._merge_state(app_name, user_id, copied_session) + sessions_without_events.append(copied_session) return ListSessionsResponse(sessions=sessions_without_events) @override diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index 3cb1d61ea4..72ff0d6c13 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -200,22 +200,25 @@ async def get_session( @override async def list_sessions( - self, *, app_name: str, user_id: str + self, *, app_name: str, user_id: Optional[str] = None ) -> ListSessionsResponse: reasoning_engine_id = self._get_reasoning_engine_id(app_name) api_client = self._get_api_client() sessions = [] + config = {} + if user_id is not None: + config['filter'] = f'user_id="{user_id}"' sessions_iterator = api_client.agent_engines.sessions.list( name=f'reasoningEngines/{reasoning_engine_id}', - config={'filter': f'user_id="{user_id}"'}, + config=config, ) for api_session in sessions_iterator: sessions.append( Session( app_name=app_name, - user_id=user_id, + user_id=api_session.user_id, id=api_session.name.split('/')[-1], state=getattr(api_session, 'session_state', None) or {}, last_update_time=api_session.update_time.timestamp(), diff --git a/tests/unittests/sessions/test_session_service.py b/tests/unittests/sessions/test_session_service.py index 2ca265cb64..0c005d683f 100644 --- a/tests/unittests/sessions/test_session_service.py +++ b/tests/unittests/sessions/test_session_service.py @@ -116,9 +116,70 @@ async def test_create_and_list_sessions(service_type): app_name=app_name, user_id=user_id ) sessions = list_sessions_response.sessions - for i in range(len(sessions)): - assert sessions[i].id == session_ids[i] - assert sessions[i].state == {'key': 'value' + session_ids[i]} + assert len(sessions) == len(session_ids) + assert {s.id for s in sessions} == set(session_ids) + for session in sessions: + assert session.state == {'key': 'value' + session.id} + + +@pytest.mark.asyncio +@pytest.mark.parametrize( + 'service_type', [SessionServiceType.IN_MEMORY, SessionServiceType.DATABASE] +) +async def test_list_sessions_all_users(service_type): + session_service = get_session_service(service_type) + app_name = 'my_app' + user_id_1 = 'user1' + user_id_2 = 'user2' + + await session_service.create_session( + app_name=app_name, + user_id=user_id_1, + session_id='session1a', + state={'key': 'value1a'}, + ) + await session_service.create_session( + app_name=app_name, + user_id=user_id_1, + session_id='session1b', + state={'key': 'value1b'}, + ) + await session_service.create_session( + app_name=app_name, + user_id=user_id_2, + session_id='session2a', + state={'key': 'value2a'}, + ) + + # List sessions for user1 + list_sessions_response_1 = await session_service.list_sessions( + app_name=app_name, user_id=user_id_1 + ) + sessions_1 = list_sessions_response_1.sessions + assert len(sessions_1) == 2 + assert {s.id for s in sessions_1} == {'session1a', 'session1b'} + for session in sessions_1: + if session.id == 'session1a': + assert session.state == {'key': 'value1a'} + else: + assert session.state == {'key': 'value1b'} + + # List sessions for user2 + list_sessions_response_2 = await session_service.list_sessions( + app_name=app_name, user_id=user_id_2 + ) + sessions_2 = list_sessions_response_2.sessions + assert len(sessions_2) == 1 + assert sessions_2[0].id == 'session2a' + assert sessions_2[0].state == {'key': 'value2a'} + + # List sessions for all users + list_sessions_response_all = await session_service.list_sessions( + app_name=app_name, user_id=None + ) + sessions_all = list_sessions_response_all.sessions + assert len(sessions_all) == 3 + assert {s.id for s in sessions_all} == {'session1a', 'session1b', 'session2a'} @pytest.mark.asyncio diff --git a/tests/unittests/sessions/test_vertex_ai_session_service.py b/tests/unittests/sessions/test_vertex_ai_session_service.py index 92a180e641..bf06fc0101 100644 --- a/tests/unittests/sessions/test_vertex_ai_session_service.py +++ b/tests/unittests/sessions/test_vertex_ai_session_service.py @@ -252,19 +252,22 @@ def _get_session(self, name: str): def _list_sessions(self, name: str, config: dict[str, Any]): filter_val = config.get('filter', '') user_id_match = re.search(r'user_id="([^"]+)"', filter_val) - if not user_id_match: - raise ValueError(f'Could not find user_id in filter: {filter_val}') - user_id = user_id_match.group(1) - - if user_id == 'user_with_pages': + if user_id_match: + user_id = user_id_match.group(1) + if user_id == 'user_with_pages': + return [ + _convert_to_object(MOCK_SESSION_JSON_PAGE1), + _convert_to_object(MOCK_SESSION_JSON_PAGE2), + ] return [ - _convert_to_object(MOCK_SESSION_JSON_PAGE1), - _convert_to_object(MOCK_SESSION_JSON_PAGE2), + _convert_to_object(session) + for session in self.session_dict.values() + if session['user_id'] == user_id ] + + # No user filter, return all sessions return [ - _convert_to_object(session) - for session in self.session_dict.values() - if session['user_id'] == user_id + _convert_to_object(session) for session in self.session_dict.values() ] def _delete_session(self, name: str): @@ -475,6 +478,15 @@ async def test_list_sessions_with_pagination(): assert sessions.sessions[1].id == 'page2' +@pytest.mark.asyncio +@pytest.mark.usefixtures('mock_get_api_client') +async def test_list_sessions_all_users(): + session_service = mock_vertex_ai_session_service() + sessions = await session_service.list_sessions(app_name='123', user_id=None) + assert len(sessions.sessions) == 5 + assert {s.id for s in sessions.sessions} == {'1', '2', '3', 'page1', 'page2'} + + @pytest.mark.asyncio @pytest.mark.usefixtures('mock_get_api_client') async def test_create_session(): From 36c96ec5b356109b7c874c85d8bb24f0bf6c050d Mon Sep 17 00:00:00 2001 From: Lin Nikaido <153617286+Lin-Nikaido@users.noreply.github.com> Date: Wed, 15 Oct 2025 13:32:47 -0700 Subject: [PATCH 109/303] fix: #2883 pickle data was truncated error in database session using MySql Merge https://github.com/google/adk-python/pull/2884 closes: #2883 # Fix When put leage data into event and load it. the _pickle.UnpicklingError was occurred. The root caurse is `DynamicPickleType` mapping `BLOB` as default in case of MySql, not `LONGBLOB`. And learge data will be able to cut off tail of data. And raise pickle error. # What todo Defined `LONFBLOB` as default explicitly. # Question Where should we code the test code like this case? I cannot found the test code the DB and table was created expectedly. COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/2884 from Lin-Nikaido:fix/#2883-mysql-datatype-fix 2be9b38fc3f5d5083b0b6715a2bf7b4eff5d947b PiperOrigin-RevId: 819891727 --- src/google/adk/sessions/database_session_service.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/google/adk/sessions/database_session_service.py b/src/google/adk/sessions/database_session_service.py index 7ed3e3be8f..9eca275381 100644 --- a/src/google/adk/sessions/database_session_service.py +++ b/src/google/adk/sessions/database_session_service.py @@ -112,6 +112,8 @@ class DynamicPickleType(TypeDecorator): impl = PickleType def load_dialect_impl(self, dialect): + if dialect.name == "mysql": + return dialect.type_descriptor(mysql.LONGBLOB) if dialect.name == "spanner+spanner": from google.cloud.sqlalchemy_spanner.sqlalchemy_spanner import SpannerPickleType From 2424d6a3b1704771045441f319a4189898f9ce96 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Wed, 15 Oct 2025 13:45:37 -0700 Subject: [PATCH 110/303] feat: Reorder create_time and mime_type to ArtifactVersion Before: http://sponge2/ba05f9ac-c13d-43b6-bb8a-3e1b029cc705(failed) After: http://sponge2/a623ba76-62c1-4d17-b4b6-22044333a801 PiperOrigin-RevId: 819896989 --- src/google/adk/artifacts/base_artifact_service.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/google/adk/artifacts/base_artifact_service.py b/src/google/adk/artifacts/base_artifact_service.py index cc2a3a1e1d..cb0c5398f8 100644 --- a/src/google/adk/artifacts/base_artifact_service.py +++ b/src/google/adk/artifacts/base_artifact_service.py @@ -15,6 +15,7 @@ from abc import ABC from abc import abstractmethod +from datetime import datetime from typing import Any from typing import Optional @@ -32,6 +33,10 @@ class ArtifactVersion(BaseModel): """The canonical URI of the artifact version.""" custom_metadata: dict[str, Any] = Field(default_factory=dict) """A dictionary of custom metadata associated with the artifact version.""" + create_time: float = Field(default_factory=lambda: datetime.now().timestamp()) + """The creation time of the artifact version.""" + mime_type: Optional[str] = None + """The MIME type of the artifact version.""" class BaseArtifactService(ABC): From 6ab1498aa0bad783e17e97a2ceede97b4bd3016f Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Wed, 15 Oct 2025 13:54:52 -0700 Subject: [PATCH 111/303] fix: Add usage_metadata and citation_metadata to DatabaseSessionService PiperOrigin-RevId: 819900773 --- src/google/adk/sessions/_session_util.py | 25 ++++++---------- .../adk/sessions/database_session_service.py | 29 ++++++++++++++++--- .../adk/sessions/vertex_ai_session_service.py | 9 +++--- .../sessions/test_session_service.py | 5 ++++ 4 files changed, 44 insertions(+), 24 deletions(-) diff --git a/src/google/adk/sessions/_session_util.py b/src/google/adk/sessions/_session_util.py index 2cc65949cb..68340c8b7b 100644 --- a/src/google/adk/sessions/_session_util.py +++ b/src/google/adk/sessions/_session_util.py @@ -16,23 +16,16 @@ from typing import Any from typing import Optional +from typing import Type +from typing import TypeVar -from google.genai import types +M = TypeVar("M") -def decode_content( - content: Optional[dict[str, Any]], -) -> Optional[types.Content]: - """Decodes a content object from a JSON dictionary.""" - if not content: +def decode_model( + data: Optional[dict[str, Any]], model_cls: Type[M] +) -> Optional[M]: + """Decodes a pydantic model object from a JSON dictionary.""" + if data is None: return None - return types.Content.model_validate(content) - - -def decode_grounding_metadata( - grounding_metadata: Optional[dict[str, Any]], -) -> Optional[types.GroundingMetadata]: - """Decodes a grounding metadata object from a JSON dictionary.""" - if not grounding_metadata: - return None - return types.GroundingMetadata.model_validate(grounding_metadata) + return model_cls.model_validate(data) diff --git a/src/google/adk/sessions/database_session_service.py b/src/google/adk/sessions/database_session_service.py index 9eca275381..04af695b11 100644 --- a/src/google/adk/sessions/database_session_service.py +++ b/src/google/adk/sessions/database_session_service.py @@ -23,6 +23,7 @@ from typing import Optional import uuid +from google.genai import types from sqlalchemy import Boolean from sqlalchemy import delete from sqlalchemy import Dialect @@ -252,6 +253,12 @@ class StorageEvent(Base): custom_metadata: Mapped[dict[str, Any]] = mapped_column( DynamicJSON, nullable=True ) + usage_metadata: Mapped[dict[str, Any]] = mapped_column( + DynamicJSON, nullable=True + ) + citation_metadata: Mapped[dict[str, Any]] = mapped_column( + DynamicJSON, nullable=True + ) partial: Mapped[bool] = mapped_column(Boolean, nullable=True) turn_complete: Mapped[bool] = mapped_column(Boolean, nullable=True) @@ -318,6 +325,14 @@ def from_event(cls, session: Session, event: Event) -> StorageEvent: ) if event.custom_metadata: storage_event.custom_metadata = event.custom_metadata + if event.usage_metadata: + storage_event.usage_metadata = event.usage_metadata.model_dump( + exclude_none=True, mode="json" + ) + if event.citation_metadata: + storage_event.citation_metadata = event.citation_metadata.model_dump( + exclude_none=True, mode="json" + ) return storage_event def to_event(self) -> Event: @@ -328,17 +343,23 @@ def to_event(self) -> Event: branch=self.branch, actions=self.actions, timestamp=self.timestamp.timestamp(), - content=_session_util.decode_content(self.content), long_running_tool_ids=self.long_running_tool_ids, partial=self.partial, turn_complete=self.turn_complete, error_code=self.error_code, error_message=self.error_message, interrupted=self.interrupted, - grounding_metadata=_session_util.decode_grounding_metadata( - self.grounding_metadata - ), custom_metadata=self.custom_metadata, + content=_session_util.decode_model(self.content, types.Content), + grounding_metadata=_session_util.decode_model( + self.grounding_metadata, types.GroundingMetadata + ), + usage_metadata=_session_util.decode_model( + self.usage_metadata, types.GenerateContentResponseUsageMetadata + ), + citation_metadata=_session_util.decode_model( + self.citation_metadata, types.CitationMetadata + ), ) diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index 72ff0d6c13..6901f4cb64 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -376,8 +376,9 @@ def _from_api_event(api_event_obj: vertexai.types.SessionEvent) -> Event: interrupted = getattr(event_metadata, 'interrupted', None) branch = getattr(event_metadata, 'branch', None) custom_metadata = getattr(event_metadata, 'custom_metadata', None) - grounding_metadata = _session_util.decode_grounding_metadata( - getattr(event_metadata, 'grounding_metadata', None) + grounding_metadata = _session_util.decode_model( + getattr(event_metadata, 'grounding_metadata', None), + types.GroundingMetadata, ) else: long_running_tool_ids = None @@ -393,8 +394,8 @@ def _from_api_event(api_event_obj: vertexai.types.SessionEvent) -> Event: invocation_id=api_event_obj.invocation_id, author=api_event_obj.author, actions=event_actions, - content=_session_util.decode_content( - getattr(api_event_obj, 'content', None) + content=_session_util.decode_model( + getattr(api_event_obj, 'content', None), types.Content ), timestamp=api_event_obj.timestamp.timestamp(), error_code=getattr(api_event_obj, 'error_code', None), diff --git a/tests/unittests/sessions/test_session_service.py b/tests/unittests/sessions/test_session_service.py index 0c005d683f..0dd4162e0f 100644 --- a/tests/unittests/sessions/test_session_service.py +++ b/tests/unittests/sessions/test_session_service.py @@ -390,6 +390,11 @@ async def test_append_event_complete(service_type): error_code='error_code', error_message='error_message', interrupted=True, + usage_metadata=types.GenerateContentResponseUsageMetadata( + prompt_token_count=1, candidates_token_count=1, total_token_count=2 + ), + citation_metadata=types.CitationMetadata(), + custom_metadata={'custom_key': 'custom_value'}, ) await session_service.append_event(session=session, event=event) From a17f3b2e6d2d48c433b42e27763f3d6df80243ca Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Wed, 15 Oct 2025 15:20:57 -0700 Subject: [PATCH 112/303] feat: Allow custom request and event converters in A2aAgentExecutor This change introduces type aliases for request and event conversion functions: - `A2ARequestToADKRunArgsConverter`: For converting A2A `RequestContext` to an `ADKRunArgs` Pydantic model. - `AdkEventToA2AEventsConverter`: For converting ADK `Event` to a list of A2A `A2AEvent` objects. The `convert_a2a_request_to_adk_run_args` function now returns a structured `ADKRunArgs` model instead of a generic dictionary, improving type safety. These converter types can now be provided via the `A2aAgentExecutorConfig` to customize the conversion logic used by the `A2aAgentExecutor`. The executor defaults to the existing `convert_a2a_request_to_adk_run_args` and `convert_event_to_a2a_events` functions if no custom converters are specified. This allows users to inject their own logic for handling request and event conversions, for example, to add custom metadata or transform data types, without modifying the core executor. PiperOrigin-RevId: 819934960 --- .../adk/a2a/converters/event_converter.py | 29 + .../adk/a2a/converters/request_converter.py | 65 +- .../adk/a2a/executor/a2a_agent_executor.py | 44 +- .../a2a/converters/test_request_converter.py | 106 +- .../a2a/executor/test_a2a_agent_executor.py | 1155 ++++++++--------- 5 files changed, 728 insertions(+), 671 deletions(-) diff --git a/src/google/adk/a2a/converters/event_converter.py b/src/google/adk/a2a/converters/event_converter.py index 5e941a7868..df8247634e 100644 --- a/src/google/adk/a2a/converters/event_converter.py +++ b/src/google/adk/a2a/converters/event_converter.py @@ -14,6 +14,7 @@ from __future__ import annotations +from collections.abc import Callable from datetime import datetime from datetime import timezone import logging @@ -57,6 +58,34 @@ logger = logging.getLogger("google_adk." + __name__) +AdkEventToA2AEventsConverter = Callable[ + [ + Event, + InvocationContext, + Optional[str], + Optional[str], + GenAIPartToA2APartConverter, + ], + List[A2AEvent], +] +"""A callable that converts an ADK Event into a list of A2A events. + +This interface allows for custom logic to map ADK's event structure to the +event structure expected by the A2A server. + +Args: + event: The source ADK Event to convert. + invocation_context: The context of the ADK agent invocation. + task_id: The ID of the A2A task being processed. + context_id: The context ID from the A2A request. + part_converter: A function to convert GenAI content parts to A2A + parts. + +Returns: + A list of A2A events. +""" + + def _serialize_metadata_value(value: Any) -> str: """Safely serializes metadata values to string format. diff --git a/src/google/adk/a2a/converters/request_converter.py b/src/google/adk/a2a/converters/request_converter.py index 78a6d78eee..92166c3fc8 100644 --- a/src/google/adk/a2a/converters/request_converter.py +++ b/src/google/adk/a2a/converters/request_converter.py @@ -14,8 +14,12 @@ from __future__ import annotations +from collections.abc import Callable import sys from typing import Any +from typing import Optional + +from pydantic import BaseModel try: from a2a.server.agent_execution import RequestContext @@ -35,6 +39,39 @@ from .part_converter import convert_a2a_part_to_genai_part +@a2a_experimental +class AgentRunRequest(BaseModel): + """Data model for arguments passed to the ADK runner.""" + + user_id: Optional[str] = None + session_id: Optional[str] = None + invocation_id: Optional[str] = None + new_message: Optional[genai_types.Content] = None + state_delta: Optional[dict[str, Any]] = None + run_config: Optional[RunConfig] = None + + +A2ARequestToAgentRunRequestConverter = Callable[ + [ + RequestContext, + A2APartToGenAIPartConverter, + ], + AgentRunRequest, +] +"""A callable that converts an A2A RequestContext to RunnerRequest for ADK runner. + +This interface allows for custom logic to map an incoming A2A RequestContext to the +structured arguments expected by the ADK runner's `run_async` method. + +Args: + request: The incoming request context from the A2A server. + part_converter: A function to convert A2A content parts to GenAI parts. + +Returns: + An RunnerRequest object containing the keyword arguments for ADK runner's run_async method. +""" + + def _get_user_id(request: RequestContext) -> str: # Get user from call context if available (auth is enabled on a2a server) if ( @@ -49,20 +86,32 @@ def _get_user_id(request: RequestContext) -> str: @a2a_experimental -def convert_a2a_request_to_adk_run_args( +def convert_a2a_request_to_agent_run_request( request: RequestContext, part_converter: A2APartToGenAIPartConverter = convert_a2a_part_to_genai_part, -) -> dict[str, Any]: +) -> AgentRunRequest: + """Converts an A2A RequestContext to an AgentRunRequest model. + + Args: + request: The incoming request context from the A2A server. + part_converter: A function to convert A2A content parts to GenAI parts. + + Returns: + A AgentRunRequest object ready to be used as arguments for the ADK runner. + + Raises: + ValueError: If the request message is None. + """ if not request.message: raise ValueError('Request message cannot be None') - return { - 'user_id': _get_user_id(request), - 'session_id': request.context_id, - 'new_message': genai_types.Content( + return AgentRunRequest( + user_id=_get_user_id(request), + session_id=request.context_id, + new_message=genai_types.Content( role='user', parts=[part_converter(part) for part in request.message.parts], ), - 'run_config': RunConfig(), - } + run_config=RunConfig(), + ) diff --git a/src/google/adk/a2a/executor/a2a_agent_executor.py b/src/google/adk/a2a/executor/a2a_agent_executor.py index 4cb928436b..608a818864 100644 --- a/src/google/adk/a2a/executor/a2a_agent_executor.py +++ b/src/google/adk/a2a/executor/a2a_agent_executor.py @@ -18,7 +18,6 @@ from datetime import timezone import inspect import logging -from typing import Any from typing import Awaitable from typing import Callable from typing import Optional @@ -52,12 +51,15 @@ from pydantic import BaseModel from typing_extensions import override +from ..converters.event_converter import AdkEventToA2AEventsConverter from ..converters.event_converter import convert_event_to_a2a_events from ..converters.part_converter import A2APartToGenAIPartConverter from ..converters.part_converter import convert_a2a_part_to_genai_part from ..converters.part_converter import convert_genai_part_to_a2a_part from ..converters.part_converter import GenAIPartToA2APartConverter -from ..converters.request_converter import convert_a2a_request_to_adk_run_args +from ..converters.request_converter import A2ARequestToAgentRunRequestConverter +from ..converters.request_converter import AgentRunRequest +from ..converters.request_converter import convert_a2a_request_to_agent_run_request from ..converters.utils import _get_adk_metadata_key from ..experimental import a2a_experimental from .task_result_aggregator import TaskResultAggregator @@ -75,6 +77,10 @@ class A2aAgentExecutorConfig(BaseModel): gen_ai_part_converter: GenAIPartToA2APartConverter = ( convert_genai_part_to_a2a_part ) + request_converter: A2ARequestToAgentRunRequestConverter = ( + convert_a2a_request_to_agent_run_request + ) + event_converter: AdkEventToA2AEventsConverter = convert_event_to_a2a_events @a2a_experimental @@ -192,19 +198,20 @@ async def _handle_request( # Resolve the runner instance runner = await self._resolve_runner() - # Convert the a2a request to ADK run args - run_args = convert_a2a_request_to_adk_run_args( - context, self._config.a2a_part_converter + # Convert the a2a request to AgentRunRequest + run_request = self._config.request_converter( + context, + self._config.a2a_part_converter, ) # ensure the session exists - session = await self._prepare_session(context, run_args, runner) + session = await self._prepare_session(context, run_request, runner) # create invocation context invocation_context = runner._new_invocation_context( session=session, - new_message=run_args['new_message'], - run_config=run_args['run_config'], + new_message=run_request.new_message, + run_config=run_request.run_config, ) # publish the task working event @@ -219,16 +226,16 @@ async def _handle_request( final=False, metadata={ _get_adk_metadata_key('app_name'): runner.app_name, - _get_adk_metadata_key('user_id'): run_args['user_id'], - _get_adk_metadata_key('session_id'): run_args['session_id'], + _get_adk_metadata_key('user_id'): run_request.user_id, + _get_adk_metadata_key('session_id'): run_request.session_id, }, ) ) task_result_aggregator = TaskResultAggregator() - async with Aclosing(runner.run_async(**run_args)) as agen: + async with Aclosing(runner.run_async(**vars(run_request))) as agen: async for adk_event in agen: - for a2a_event in convert_event_to_a2a_events( + for a2a_event in self._config.event_converter( adk_event, invocation_context, context.task_id, @@ -284,12 +291,15 @@ async def _handle_request( ) async def _prepare_session( - self, context: RequestContext, run_args: dict[str, Any], runner: Runner + self, + context: RequestContext, + run_request: AgentRunRequest, + runner: Runner, ): - session_id = run_args['session_id'] + session_id = run_request.session_id # create a new session if not exists - user_id = run_args['user_id'] + user_id = run_request.user_id session = await runner.session_service.get_session( app_name=runner.app_name, user_id=user_id, @@ -302,7 +312,7 @@ async def _prepare_session( state={}, session_id=session_id, ) - # Update run_args with the new session_id - run_args['session_id'] = session.id + # Update run_request with the new session_id + run_request.session_id = session.id return session diff --git a/tests/unittests/a2a/converters/test_request_converter.py b/tests/unittests/a2a/converters/test_request_converter.py index 115b231230..360afbd378 100644 --- a/tests/unittests/a2a/converters/test_request_converter.py +++ b/tests/unittests/a2a/converters/test_request_converter.py @@ -27,7 +27,7 @@ try: from a2a.server.agent_execution import RequestContext from google.adk.a2a.converters.request_converter import _get_user_id - from google.adk.a2a.converters.request_converter import convert_a2a_request_to_adk_run_args + from google.adk.a2a.converters.request_converter import convert_a2a_request_to_agent_run_request from google.adk.runners import RunConfig from google.genai import types as genai_types except ImportError as e: @@ -143,11 +143,11 @@ def test_get_user_id_with_none_context_id(self): assert result == "A2A_USER_None" -class TestConvertA2aRequestToAdkRunArgs: - """Test cases for convert_a2a_request_to_adk_run_args function.""" +class TestConvertA2aRequestToAgentRunRequest: + """Test cases for convert_a2a_request_to_agent_run_request function.""" def test_convert_a2a_request_basic(self): - """Test basic conversion of A2A request to ADK run args.""" + """Test basic conversion of A2A request to ADK AgentRunRequest.""" # Arrange mock_part1 = Mock() mock_part2 = Mock() @@ -173,16 +173,18 @@ def test_convert_a2a_request_basic(self): mock_convert_part.side_effect = [mock_genai_part1, mock_genai_part2] # Act - result = convert_a2a_request_to_adk_run_args(request, mock_convert_part) + result = convert_a2a_request_to_agent_run_request( + request, mock_convert_part + ) # Assert assert result is not None - assert result["user_id"] == "test_user" - assert result["session_id"] == "test_context_123" - assert isinstance(result["new_message"], genai_types.Content) - assert result["new_message"].role == "user" - assert result["new_message"].parts == [mock_genai_part1, mock_genai_part2] - assert isinstance(result["run_config"], RunConfig) + assert result.user_id == "test_user" + assert result.session_id == "test_context_123" + assert isinstance(result.new_message, genai_types.Content) + assert result.new_message.role == "user" + assert result.new_message.parts == [mock_genai_part1, mock_genai_part2] + assert isinstance(result.run_config, RunConfig) # Verify calls assert mock_convert_part.call_count == 2 @@ -197,7 +199,7 @@ def test_convert_a2a_request_no_message_raises_error(self): # Act & Assert with pytest.raises(ValueError, match="Request message cannot be None"): - convert_a2a_request_to_adk_run_args(request) + convert_a2a_request_to_agent_run_request(request) def test_convert_a2a_request_empty_parts(self): """Test conversion with empty parts list.""" @@ -212,16 +214,18 @@ def test_convert_a2a_request_empty_parts(self): request.call_context = None # Act - result = convert_a2a_request_to_adk_run_args(request, mock_convert_part) + result = convert_a2a_request_to_agent_run_request( + request, mock_convert_part + ) # Assert assert result is not None - assert result["user_id"] == "A2A_USER_test_context_123" - assert result["session_id"] == "test_context_123" - assert isinstance(result["new_message"], genai_types.Content) - assert result["new_message"].role == "user" - assert result["new_message"].parts == [] - assert isinstance(result["run_config"], RunConfig) + assert result.user_id == "A2A_USER_test_context_123" + assert result.session_id == "test_context_123" + assert isinstance(result.new_message, genai_types.Content) + assert result.new_message.role == "user" + assert result.new_message.parts == [] + assert isinstance(result.run_config, RunConfig) # Verify convert_part wasn't called mock_convert_part.assert_not_called() @@ -244,16 +248,18 @@ def test_convert_a2a_request_none_context_id(self): mock_convert_part.return_value = mock_genai_part # Act - result = convert_a2a_request_to_adk_run_args(request, mock_convert_part) + result = convert_a2a_request_to_agent_run_request( + request, mock_convert_part + ) # Assert assert result is not None - assert result["user_id"] == "A2A_USER_None" - assert result["session_id"] is None - assert isinstance(result["new_message"], genai_types.Content) - assert result["new_message"].role == "user" - assert result["new_message"].parts == [mock_genai_part] - assert isinstance(result["run_config"], RunConfig) + assert result.user_id == "A2A_USER_None" + assert result.session_id is None + assert isinstance(result.new_message, genai_types.Content) + assert result.new_message.role == "user" + assert result.new_message.parts == [mock_genai_part] + assert isinstance(result.run_config, RunConfig) def test_convert_a2a_request_no_auth(self): """Test conversion when no authentication is available.""" @@ -273,16 +279,18 @@ def test_convert_a2a_request_no_auth(self): mock_convert_part.return_value = mock_genai_part # Act - result = convert_a2a_request_to_adk_run_args(request, mock_convert_part) + result = convert_a2a_request_to_agent_run_request( + request, mock_convert_part + ) # Assert assert result is not None - assert result["user_id"] == "A2A_USER_session_123" - assert result["session_id"] == "session_123" - assert isinstance(result["new_message"], genai_types.Content) - assert result["new_message"].role == "user" - assert result["new_message"].parts == [mock_genai_part] - assert isinstance(result["run_config"], RunConfig) + assert result.user_id == "A2A_USER_session_123" + assert result.session_id == "session_123" + assert isinstance(result.new_message, genai_types.Content) + assert result.new_message.role == "user" + assert result.new_message.parts == [mock_genai_part] + assert isinstance(result.run_config, RunConfig) class TestIntegration: @@ -312,16 +320,18 @@ def test_end_to_end_conversion_with_auth_user(self): mock_convert_part.return_value = mock_genai_part # Act - result = convert_a2a_request_to_adk_run_args(request, mock_convert_part) + result = convert_a2a_request_to_agent_run_request( + request, mock_convert_part + ) # Assert assert result is not None - assert result["user_id"] == "auth_user" # Should use authenticated user - assert result["session_id"] == "mysession" - assert isinstance(result["new_message"], genai_types.Content) - assert result["new_message"].role == "user" - assert result["new_message"].parts == [mock_genai_part] - assert isinstance(result["run_config"], RunConfig) + assert result.user_id == "auth_user" # Should use authenticated user + assert result.session_id == "mysession" + assert isinstance(result.new_message, genai_types.Content) + assert result.new_message.role == "user" + assert result.new_message.parts == [mock_genai_part] + assert isinstance(result.run_config, RunConfig) def test_end_to_end_conversion_with_fallback_user(self): """Test end-to-end conversion with fallback user ID.""" @@ -341,15 +351,17 @@ def test_end_to_end_conversion_with_fallback_user(self): mock_convert_part.return_value = mock_genai_part # Act - result = convert_a2a_request_to_adk_run_args(request, mock_convert_part) + result = convert_a2a_request_to_agent_run_request( + request, mock_convert_part + ) # Assert assert result is not None assert ( - result["user_id"] == "A2A_USER_test_session_456" + result.user_id == "A2A_USER_test_session_456" ) # Should fallback to context ID - assert result["session_id"] == "test_session_456" - assert isinstance(result["new_message"], genai_types.Content) - assert result["new_message"].role == "user" - assert result["new_message"].parts == [mock_genai_part] - assert isinstance(result["run_config"], RunConfig) + assert result.session_id == "test_session_456" + assert isinstance(result.new_message, genai_types.Content) + assert result.new_message.role == "user" + assert result.new_message.parts == [mock_genai_part] + assert isinstance(result.run_config, RunConfig) diff --git a/tests/unittests/a2a/executor/test_a2a_agent_executor.py b/tests/unittests/a2a/executor/test_a2a_agent_executor.py index 11d6b3a7c2..4bcc7a91d7 100644 --- a/tests/unittests/a2a/executor/test_a2a_agent_executor.py +++ b/tests/unittests/a2a/executor/test_a2a_agent_executor.py @@ -31,10 +31,13 @@ from a2a.types import Message from a2a.types import TaskState from a2a.types import TextPart + from google.adk.a2a.converters.request_converter import AgentRunRequest from google.adk.a2a.executor.a2a_agent_executor import A2aAgentExecutor from google.adk.a2a.executor.a2a_agent_executor import A2aAgentExecutorConfig from google.adk.events.event import Event + from google.adk.runners import RunConfig from google.adk.runners import Runner + from google.genai.types import Content except ImportError as e: if sys.version_info < (3, 10): # Imports are not needed since tests will be skipped due to pytestmark. @@ -58,9 +61,13 @@ def setup_method(self): self.mock_a2a_part_converter = Mock() self.mock_gen_ai_part_converter = Mock() + self.mock_request_converter = Mock() + self.mock_event_converter = Mock() self.mock_config = A2aAgentExecutorConfig( a2a_part_converter=self.mock_a2a_part_converter, gen_ai_part_converter=self.mock_gen_ai_part_converter, + request_converter=self.mock_request_converter, + event_converter=self.mock_event_converter, ) self.executor = A2aAgentExecutor( runner=self.mock_runner, config=self.mock_config @@ -84,71 +91,73 @@ async def _create_async_generator(self, items): async def test_execute_success_new_task(self): """Test successful execution of a new task.""" # Setup - with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_a2a_request_to_adk_run_args" - ) as mock_convert: - mock_convert.return_value = { - "user_id": "test-user", - "session_id": "test-session", - "new_message": Mock(), - "run_config": Mock(), - } - - # Mock session service - mock_session = Mock() - mock_session.id = "test-session" - self.mock_runner.session_service.get_session = AsyncMock( - return_value=mock_session - ) + self.mock_request_converter.return_value = AgentRunRequest( + user_id="test-user", + session_id="test-session", + new_message=Mock(spec=Content), + run_config=Mock(spec=RunConfig), + ) + # Mock session service + mock_session = Mock() + mock_session.id = "test-session" + self.mock_runner.session_service.get_session = AsyncMock( + return_value=mock_session + ) - # Mock invocation context - mock_invocation_context = Mock() - self.mock_runner._new_invocation_context.return_value = ( - mock_invocation_context - ) + # Mock invocation context + mock_invocation_context = Mock() + self.mock_runner._new_invocation_context.return_value = ( + mock_invocation_context + ) + + # Mock agent run with proper async generator + mock_event = Mock(spec=Event) - # Mock agent run with proper async generator - mock_event = Mock(spec=Event) - - # Configure run_async to return the async generator when awaited - async def mock_run_async(**kwargs): - async for item in self._create_async_generator([mock_event]): - yield item - - self.mock_runner.run_async = mock_run_async - - with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_event_to_a2a_events" - ) as mock_convert_events: - mock_convert_events.return_value = [] - - # Execute - await self.executor.execute(self.mock_context, self.mock_event_queue) - - # Verify task submitted event was enqueued - assert self.mock_event_queue.enqueue_event.call_count >= 3 - submitted_event = self.mock_event_queue.enqueue_event.call_args_list[0][ - 0 - ][0] - assert submitted_event.status.state == TaskState.submitted - assert submitted_event.final == False - - # Verify working event was enqueued - working_event = self.mock_event_queue.enqueue_event.call_args_list[1][ - 0 - ][0] - assert working_event.status.state == TaskState.working - assert working_event.final == False - - # Verify final event was enqueued with proper message field - final_event = self.mock_event_queue.enqueue_event.call_args_list[-1][0][ - 0 - ] - assert final_event.final == True - # The TaskResultAggregator is created with default state (working), and since no messages - # are processed, it will publish a status event with the current state - assert hasattr(final_event.status, "message") - assert final_event.status.state == TaskState.working + # Configure run_async to return the async generator when awaited + async def mock_run_async(**kwargs): + async for item in self._create_async_generator([mock_event]): + yield item + + self.mock_runner.run_async = mock_run_async + self.mock_event_converter.return_value = [] + + # Execute + await self.executor.execute(self.mock_context, self.mock_event_queue) + + # Verify request converter was called with proper arguments + self.mock_request_converter.assert_called_once_with( + self.mock_context, self.mock_a2a_part_converter + ) + + # Verify event converter was called with proper arguments + self.mock_event_converter.assert_called_once_with( + mock_event, + mock_invocation_context, + self.mock_context.task_id, + self.mock_context.context_id, + self.mock_gen_ai_part_converter, + ) + + # Verify task submitted event was enqueued + assert self.mock_event_queue.enqueue_event.call_count >= 3 + submitted_event = self.mock_event_queue.enqueue_event.call_args_list[0][0][ + 0 + ] + assert submitted_event.status.state == TaskState.submitted + assert submitted_event.final == False + + # Verify working event was enqueued + working_event = self.mock_event_queue.enqueue_event.call_args_list[1][0][0] + assert working_event.status.state == TaskState.working + assert working_event.final == False + + # Verify final event was enqueued with proper message field + final_event = self.mock_event_queue.enqueue_event.call_args_list[-1][0][0] + assert final_event.final == True + # The TaskResultAggregator is created with default state (working), and since no messages + # are processed, it will publish a status event with the current state + assert hasattr(final_event.status, "message") + assert final_event.status.state == TaskState.working @pytest.mark.asyncio async def test_execute_no_message_error(self): @@ -164,73 +173,76 @@ async def test_execute_existing_task(self): self.mock_context.current_task = Mock() self.mock_context.task_id = "existing-task-id" - with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_a2a_request_to_adk_run_args" - ) as mock_convert: - mock_convert.return_value = { - "user_id": "test-user", - "session_id": "test-session", - "new_message": Mock(), - "run_config": Mock(), - } - - # Mock session service - mock_session = Mock() - mock_session.id = "test-session" - self.mock_runner.session_service.get_session = AsyncMock( - return_value=mock_session - ) + self.mock_request_converter.return_value = AgentRunRequest( + user_id="test-user", + session_id="test-session", + new_message=Mock(spec=Content), + run_config=Mock(spec=RunConfig), + ) - # Mock invocation context - mock_invocation_context = Mock() - self.mock_runner._new_invocation_context.return_value = ( - mock_invocation_context - ) + # Mock session service + mock_session = Mock() + mock_session.id = "test-session" + self.mock_runner.session_service.get_session = AsyncMock( + return_value=mock_session + ) + + # Mock invocation context + mock_invocation_context = Mock() + self.mock_runner._new_invocation_context.return_value = ( + mock_invocation_context + ) + + # Mock agent run with proper async generator + mock_event = Mock(spec=Event) - # Mock agent run with proper async generator - mock_event = Mock(spec=Event) - - # Configure run_async to return the async generator when awaited - async def mock_run_async(**kwargs): - async for item in self._create_async_generator([mock_event]): - yield item - - self.mock_runner.run_async = mock_run_async - - with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_event_to_a2a_events" - ) as mock_convert_events: - mock_convert_events.return_value = [] - - # Execute - await self.executor.execute(self.mock_context, self.mock_event_queue) - - # Verify no submitted event (first call should be working event) - working_event = self.mock_event_queue.enqueue_event.call_args_list[0][ - 0 - ][0] - assert working_event.status.state == TaskState.working - assert working_event.final == False - - # Verify final event was enqueued with proper message field - final_event = self.mock_event_queue.enqueue_event.call_args_list[-1][0][ - 0 - ] - assert final_event.final == True - # The TaskResultAggregator is created with default state (working), and since no messages - # are processed, it will publish a status event with the current state - assert hasattr(final_event.status, "message") - assert final_event.status.state == TaskState.working + # Configure run_async to return the async generator when awaited + async def mock_run_async(**kwargs): + async for item in self._create_async_generator([mock_event]): + yield item + + self.mock_runner.run_async = mock_run_async + self.mock_event_converter.return_value = [] + + # Execute + await self.executor.execute(self.mock_context, self.mock_event_queue) + + # Verify request converter was called with proper arguments + self.mock_request_converter.assert_called_once_with( + self.mock_context, self.mock_a2a_part_converter + ) + + # Verify event converter was called with proper arguments + self.mock_event_converter.assert_called_once_with( + mock_event, + mock_invocation_context, + self.mock_context.task_id, + self.mock_context.context_id, + self.mock_gen_ai_part_converter, + ) + + # Verify no submitted event (first call should be working event) + working_event = self.mock_event_queue.enqueue_event.call_args_list[0][0][0] + assert working_event.status.state == TaskState.working + assert working_event.final == False + + # Verify final event was enqueued with proper message field + final_event = self.mock_event_queue.enqueue_event.call_args_list[-1][0][0] + assert final_event.final == True + # The TaskResultAggregator is created with default state (working), and since no messages + # are processed, it will publish a status event with the current state + assert hasattr(final_event.status, "message") + assert final_event.status.state == TaskState.working @pytest.mark.asyncio async def test_prepare_session_new_session(self): """Test session preparation when session doesn't exist.""" - run_args = { - "user_id": "test-user", - "session_id": None, - "new_message": Mock(), - "run_config": Mock(), - } + run_args = AgentRunRequest( + user_id="test-user", + session_id=None, + new_message=Mock(spec=Content), + run_config=Mock(spec=RunConfig), + ) # Mock session service self.mock_runner.session_service.get_session = AsyncMock(return_value=None) @@ -247,18 +259,18 @@ async def test_prepare_session_new_session(self): # Verify session was created assert result == mock_session - assert run_args["session_id"] is not None + assert run_args.session_id is not None self.mock_runner.session_service.create_session.assert_called_once() @pytest.mark.asyncio async def test_prepare_session_existing_session(self): """Test session preparation when session exists.""" - run_args = { - "user_id": "test-user", - "session_id": "existing-session", - "new_message": Mock(), - "run_config": Mock(), - } + run_args = AgentRunRequest( + user_id="test-user", + session_id="existing-session", + new_message=Mock(spec=Content), + run_config=Mock(spec=RunConfig), + ) # Mock session service mock_session = Mock() @@ -397,63 +409,55 @@ def create_runner(): executor = A2aAgentExecutor(runner=create_runner, config=self.mock_config) - with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_a2a_request_to_adk_run_args" - ) as mock_convert: - mock_convert.return_value = { - "user_id": "test-user", - "session_id": "test-session", - "new_message": Mock(), - "run_config": Mock(), - } - - # Mock session service - mock_session = Mock() - mock_session.id = "test-session" - self.mock_runner.session_service.get_session = AsyncMock( - return_value=mock_session - ) + self.mock_request_converter.return_value = AgentRunRequest( + user_id="test-user", + session_id="test-session", + new_message=Mock(spec=Content), + run_config=Mock(spec=RunConfig), + ) - # Mock invocation context - mock_invocation_context = Mock() - self.mock_runner._new_invocation_context.return_value = ( - mock_invocation_context - ) + # Mock session service + mock_session = Mock() + mock_session.id = "test-session" + self.mock_runner.session_service.get_session = AsyncMock( + return_value=mock_session + ) - # Mock agent run with proper async generator - mock_event = Mock(spec=Event) - - async def mock_run_async(**kwargs): - async for item in self._create_async_generator([mock_event]): - yield item - - self.mock_runner.run_async = mock_run_async - - with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_event_to_a2a_events" - ) as mock_convert_events: - mock_convert_events.return_value = [] - - # Execute - await executor.execute(self.mock_context, self.mock_event_queue) - - # Verify task submitted event was enqueued - assert self.mock_event_queue.enqueue_event.call_count >= 3 - submitted_event = self.mock_event_queue.enqueue_event.call_args_list[0][ - 0 - ][0] - assert submitted_event.status.state == TaskState.submitted - assert submitted_event.final == False - - # Verify final event was enqueued with proper message field - final_event = self.mock_event_queue.enqueue_event.call_args_list[-1][0][ - 0 - ] - assert final_event.final == True - # The TaskResultAggregator is created with default state (working), and since no messages - # are processed, it will publish a status event with the current state - assert hasattr(final_event.status, "message") - assert final_event.status.state == TaskState.working + # Mock invocation context + mock_invocation_context = Mock() + self.mock_runner._new_invocation_context.return_value = ( + mock_invocation_context + ) + + # Mock agent run with proper async generator + mock_event = Mock(spec=Event) + + async def mock_run_async(**kwargs): + async for item in self._create_async_generator([mock_event]): + yield item + + self.mock_runner.run_async = mock_run_async + + self.mock_event_converter.return_value = [] + + # Execute + await executor.execute(self.mock_context, self.mock_event_queue) + + # Verify task submitted event was enqueued + assert self.mock_event_queue.enqueue_event.call_count >= 3 + submitted_event = self.mock_event_queue.enqueue_event.call_args_list[0][0][ + 0 + ] + assert submitted_event.status.state == TaskState.submitted + assert submitted_event.final == False + + # Verify final event was enqueued with proper message field + final_event = self.mock_event_queue.enqueue_event.call_args_list[-1][0][0] + assert final_event.final == True + # The TaskResultAggregator is created with default state (working), and since no messages + # are processed, it will publish a status event with the current state + assert hasattr(final_event.status, "message") + assert final_event.status.state == TaskState.working @pytest.mark.asyncio async def test_execute_with_async_callable_runner(self): @@ -464,63 +468,55 @@ async def create_runner(): executor = A2aAgentExecutor(runner=create_runner, config=self.mock_config) - with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_a2a_request_to_adk_run_args" - ) as mock_convert: - mock_convert.return_value = { - "user_id": "test-user", - "session_id": "test-session", - "new_message": Mock(), - "run_config": Mock(), - } - - # Mock session service - mock_session = Mock() - mock_session.id = "test-session" - self.mock_runner.session_service.get_session = AsyncMock( - return_value=mock_session - ) + self.mock_request_converter.return_value = AgentRunRequest( + user_id="test-user", + session_id="test-session", + new_message=Mock(spec=Content), + run_config=Mock(spec=RunConfig), + ) - # Mock invocation context - mock_invocation_context = Mock() - self.mock_runner._new_invocation_context.return_value = ( - mock_invocation_context - ) + # Mock session service + mock_session = Mock() + mock_session.id = "test-session" + self.mock_runner.session_service.get_session = AsyncMock( + return_value=mock_session + ) + + # Mock invocation context + mock_invocation_context = Mock() + self.mock_runner._new_invocation_context.return_value = ( + mock_invocation_context + ) + + # Mock agent run with proper async generator + mock_event = Mock(spec=Event) + + async def mock_run_async(**kwargs): + async for item in self._create_async_generator([mock_event]): + yield item + + self.mock_runner.run_async = mock_run_async - # Mock agent run with proper async generator - mock_event = Mock(spec=Event) - - async def mock_run_async(**kwargs): - async for item in self._create_async_generator([mock_event]): - yield item - - self.mock_runner.run_async = mock_run_async - - with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_event_to_a2a_events" - ) as mock_convert_events: - mock_convert_events.return_value = [] - - # Execute - await executor.execute(self.mock_context, self.mock_event_queue) - - # Verify task submitted event was enqueued - assert self.mock_event_queue.enqueue_event.call_count >= 3 - submitted_event = self.mock_event_queue.enqueue_event.call_args_list[0][ - 0 - ][0] - assert submitted_event.status.state == TaskState.submitted - assert submitted_event.final == False - - # Verify final event was enqueued with proper message field - final_event = self.mock_event_queue.enqueue_event.call_args_list[-1][0][ - 0 - ] - assert final_event.final == True - # The TaskResultAggregator is created with default state (working), and since no messages - # are processed, it will publish a status event with the current state - assert hasattr(final_event.status, "message") - assert final_event.status.state == TaskState.working + self.mock_event_converter.return_value = [] + + # Execute + await executor.execute(self.mock_context, self.mock_event_queue) + + # Verify task submitted event was enqueued + assert self.mock_event_queue.enqueue_event.call_count >= 3 + submitted_event = self.mock_event_queue.enqueue_event.call_args_list[0][0][ + 0 + ] + assert submitted_event.status.state == TaskState.submitted + assert submitted_event.final == False + + # Verify final event was enqueued with proper message field + final_event = self.mock_event_queue.enqueue_event.call_args_list[-1][0][0] + assert final_event.final == True + # The TaskResultAggregator is created with default state (working), and since no messages + # are processed, it will publish a status event with the current state + assert hasattr(final_event.status, "message") + assert final_event.status.state == TaskState.working @pytest.mark.asyncio async def test_handle_request_integration(self): @@ -529,83 +525,75 @@ async def test_handle_request_integration(self): self.mock_context.task_id = "test-task-id" # Setup detailed mocks + self.mock_request_converter.return_value = AgentRunRequest( + user_id="test-user", + session_id="test-session", + new_message=Mock(spec=Content), + run_config=Mock(spec=RunConfig), + ) + + # Mock session service + mock_session = Mock() + mock_session.id = "test-session" + self.mock_runner.session_service.get_session = AsyncMock( + return_value=mock_session + ) + + # Mock invocation context + mock_invocation_context = Mock() + self.mock_runner._new_invocation_context.return_value = ( + mock_invocation_context + ) + + # Mock agent run with multiple events using proper async generator + mock_events = [Mock(spec=Event), Mock(spec=Event)] + + # Configure run_async to return the async generator when awaited + async def mock_run_async(**kwargs): + async for item in self._create_async_generator(mock_events): + yield item + + self.mock_runner.run_async = mock_run_async + + self.mock_event_converter.return_value = [Mock()] + with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_a2a_request_to_adk_run_args" - ) as mock_convert: - mock_convert.return_value = { - "user_id": "test-user", - "session_id": "test-session", - "new_message": Mock(), - "run_config": Mock(), - } - - # Mock session service - mock_session = Mock() - mock_session.id = "test-session" - self.mock_runner.session_service.get_session = AsyncMock( - return_value=mock_session + "google.adk.a2a.executor.a2a_agent_executor.TaskResultAggregator" + ) as mock_aggregator_class: + mock_aggregator = Mock() + mock_aggregator.task_state = TaskState.working + # Mock the task_status_message property to return None by default + mock_aggregator.task_status_message = None + mock_aggregator_class.return_value = mock_aggregator + + # Execute + await self.executor._handle_request( + self.mock_context, self.mock_event_queue ) - # Mock invocation context - mock_invocation_context = Mock() - self.mock_runner._new_invocation_context.return_value = ( - mock_invocation_context - ) + # Verify working event was enqueued + working_events = [ + call[0][0] + for call in self.mock_event_queue.enqueue_event.call_args_list + if hasattr(call[0][0], "status") + and call[0][0].status.state == TaskState.working + ] + assert len(working_events) >= 1 - # Mock agent run with multiple events using proper async generator - mock_events = [Mock(spec=Event), Mock(spec=Event)] - - # Configure run_async to return the async generator when awaited - async def mock_run_async(**kwargs): - async for item in self._create_async_generator(mock_events): - yield item - - self.mock_runner.run_async = mock_run_async - - with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_event_to_a2a_events" - ) as mock_convert_events: - mock_convert_events.return_value = [Mock()] - - with patch( - "google.adk.a2a.executor.a2a_agent_executor.TaskResultAggregator" - ) as mock_aggregator_class: - mock_aggregator = Mock() - mock_aggregator.task_state = TaskState.working - # Mock the task_status_message property to return None by default - mock_aggregator.task_status_message = None - mock_aggregator_class.return_value = mock_aggregator - - # Execute - await self.executor._handle_request( - self.mock_context, self.mock_event_queue - ) - - # Verify working event was enqueued - working_events = [ - call[0][0] - for call in self.mock_event_queue.enqueue_event.call_args_list - if hasattr(call[0][0], "status") - and call[0][0].status.state == TaskState.working - ] - assert len(working_events) >= 1 - - # Verify aggregator processed events - assert mock_aggregator.process_event.call_count == len(mock_events) - - # Verify final event has message field from aggregator and state is completed when aggregator state is working - final_events = [ - call[0][0] - for call in self.mock_event_queue.enqueue_event.call_args_list - if hasattr(call[0][0], "final") and call[0][0].final == True - ] - assert len(final_events) >= 1 - final_event = final_events[-1] # Get the last final event - assert ( - final_event.status.message == mock_aggregator.task_status_message - ) - # When aggregator state is working but no message, final event should be working - assert final_event.status.state == TaskState.working + # Verify aggregator processed events + assert mock_aggregator.process_event.call_count == len(mock_events) + + # Verify final event has message field from aggregator and state is completed when aggregator state is working + final_events = [ + call[0][0] + for call in self.mock_event_queue.enqueue_event.call_args_list + if hasattr(call[0][0], "final") and call[0][0].final == True + ] + assert len(final_events) >= 1 + final_event = final_events[-1] # Get the last final event + assert final_event.status.message == mock_aggregator.task_status_message + # When aggregator state is working but no message, final event should be working + assert final_event.status.state == TaskState.working @pytest.mark.asyncio async def test_cancel_with_task_id(self): @@ -637,31 +625,26 @@ async def test_execute_with_exception_handling(self): None # Make sure it goes through submitted event creation ) - with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_a2a_request_to_adk_run_args" - ) as mock_convert: - mock_convert.side_effect = Exception("Test error") + self.mock_request_converter.side_effect = Exception("Test error") - # Execute (should not raise since we catch the exception) - await self.executor.execute(self.mock_context, self.mock_event_queue) + # Execute (should not raise since we catch the exception) + await self.executor.execute(self.mock_context, self.mock_event_queue) - # Verify both submitted and failure events were enqueued - # First call should be submitted event, last should be failure event - assert self.mock_event_queue.enqueue_event.call_count >= 2 + # Verify both submitted and failure events were enqueued + # First call should be submitted event, last should be failure event + assert self.mock_event_queue.enqueue_event.call_count >= 2 - # Check submitted event (first) - submitted_event = self.mock_event_queue.enqueue_event.call_args_list[0][ - 0 - ][0] - assert submitted_event.status.state == TaskState.submitted - assert submitted_event.final == False + # Check submitted event (first) + submitted_event = self.mock_event_queue.enqueue_event.call_args_list[0][0][ + 0 + ] + assert submitted_event.status.state == TaskState.submitted + assert submitted_event.final == False - # Check failure event (last) - failure_event = self.mock_event_queue.enqueue_event.call_args_list[-1][0][ - 0 - ] - assert failure_event.status.state == TaskState.failed - assert failure_event.final == True + # Check failure event (last) + failure_event = self.mock_event_queue.enqueue_event.call_args_list[-1][0][0] + assert failure_event.status.state == TaskState.failed + assert failure_event.final == True @pytest.mark.asyncio async def test_handle_request_with_aggregator_message(self): @@ -680,69 +663,63 @@ async def test_handle_request_with_aggregator_message(self): test_message.parts = [Mock(spec=TextPart)] # Setup detailed mocks - with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_a2a_request_to_adk_run_args" - ) as mock_convert: - mock_convert.return_value = { - "user_id": "test-user", - "session_id": "test-session", - "new_message": Mock(), - "run_config": Mock(), - } - - # Mock session service - mock_session = Mock() - mock_session.id = "test-session" - self.mock_runner.session_service.get_session = AsyncMock( - return_value=mock_session - ) + self.mock_request_converter.return_value = AgentRunRequest( + user_id="test-user", + session_id="test-session", + new_message=Mock(spec=Content), + run_config=Mock(spec=RunConfig), + ) - # Mock invocation context - mock_invocation_context = Mock() - self.mock_runner._new_invocation_context.return_value = ( - mock_invocation_context + # Mock session service + mock_session = Mock() + mock_session.id = "test-session" + self.mock_runner.session_service.get_session = AsyncMock( + return_value=mock_session + ) + + # Mock invocation context + mock_invocation_context = Mock() + self.mock_runner._new_invocation_context.return_value = ( + mock_invocation_context + ) + + # Mock agent run with multiple events using proper async generator + mock_events = [Mock(spec=Event), Mock(spec=Event)] + + # Configure run_async to return the async generator when awaited + async def mock_run_async(**kwargs): + async for item in self._create_async_generator(mock_events): + yield item + + self.mock_runner.run_async = mock_run_async + + self.mock_event_converter.return_value = [Mock()] + + with patch( + "google.adk.a2a.executor.a2a_agent_executor.TaskResultAggregator" + ) as mock_aggregator_class: + mock_aggregator = Mock() + mock_aggregator.task_state = TaskState.completed + # Mock the task_status_message property to return a test message + mock_aggregator.task_status_message = test_message + mock_aggregator_class.return_value = mock_aggregator + + # Execute + await self.executor._handle_request( + self.mock_context, self.mock_event_queue ) - # Mock agent run with multiple events using proper async generator - mock_events = [Mock(spec=Event), Mock(spec=Event)] - - # Configure run_async to return the async generator when awaited - async def mock_run_async(**kwargs): - async for item in self._create_async_generator(mock_events): - yield item - - self.mock_runner.run_async = mock_run_async - - with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_event_to_a2a_events" - ) as mock_convert_events: - mock_convert_events.return_value = [Mock()] - - with patch( - "google.adk.a2a.executor.a2a_agent_executor.TaskResultAggregator" - ) as mock_aggregator_class: - mock_aggregator = Mock() - mock_aggregator.task_state = TaskState.completed - # Mock the task_status_message property to return a test message - mock_aggregator.task_status_message = test_message - mock_aggregator_class.return_value = mock_aggregator - - # Execute - await self.executor._handle_request( - self.mock_context, self.mock_event_queue - ) - - # Verify final event has message field from aggregator - final_events = [ - call[0][0] - for call in self.mock_event_queue.enqueue_event.call_args_list - if hasattr(call[0][0], "final") and call[0][0].final == True - ] - assert len(final_events) >= 1 - final_event = final_events[-1] # Get the last final event - assert final_event.status.message == test_message - # When aggregator state is completed (not working), final event should be completed - assert final_event.status.state == TaskState.completed + # Verify final event has message field from aggregator + final_events = [ + call[0][0] + for call in self.mock_event_queue.enqueue_event.call_args_list + if hasattr(call[0][0], "final") and call[0][0].final == True + ] + assert len(final_events) >= 1 + final_event = final_events[-1] # Get the last final event + assert final_event.status.message == test_message + # When aggregator state is completed (not working), final event should be completed + assert final_event.status.state == TaskState.completed @pytest.mark.asyncio async def test_handle_request_with_non_working_aggregator_state(self): @@ -761,69 +738,63 @@ async def test_handle_request_with_non_working_aggregator_state(self): test_message.parts = [Mock(spec=TextPart)] # Setup detailed mocks - with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_a2a_request_to_adk_run_args" - ) as mock_convert: - mock_convert.return_value = { - "user_id": "test-user", - "session_id": "test-session", - "new_message": Mock(), - "run_config": Mock(), - } - - # Mock session service - mock_session = Mock() - mock_session.id = "test-session" - self.mock_runner.session_service.get_session = AsyncMock( - return_value=mock_session - ) + self.mock_request_converter.return_value = AgentRunRequest( + user_id="test-user", + session_id="test-session", + new_message=Mock(spec=Content), + run_config=Mock(spec=RunConfig), + ) + + # Mock session service + mock_session = Mock() + mock_session.id = "test-session" + self.mock_runner.session_service.get_session = AsyncMock( + return_value=mock_session + ) + + # Mock invocation context + mock_invocation_context = Mock() + self.mock_runner._new_invocation_context.return_value = ( + mock_invocation_context + ) - # Mock invocation context - mock_invocation_context = Mock() - self.mock_runner._new_invocation_context.return_value = ( - mock_invocation_context + # Mock agent run with multiple events using proper async generator + mock_events = [Mock(spec=Event), Mock(spec=Event)] + + # Configure run_async to return the async generator when awaited + async def mock_run_async(**kwargs): + async for item in self._create_async_generator(mock_events): + yield item + + self.mock_runner.run_async = mock_run_async + + self.mock_event_converter.return_value = [Mock()] + + with patch( + "google.adk.a2a.executor.a2a_agent_executor.TaskResultAggregator" + ) as mock_aggregator_class: + mock_aggregator = Mock() + # Test with failed state - should preserve failed state + mock_aggregator.task_state = TaskState.failed + mock_aggregator.task_status_message = test_message + mock_aggregator_class.return_value = mock_aggregator + + # Execute + await self.executor._handle_request( + self.mock_context, self.mock_event_queue ) - # Mock agent run with multiple events using proper async generator - mock_events = [Mock(spec=Event), Mock(spec=Event)] - - # Configure run_async to return the async generator when awaited - async def mock_run_async(**kwargs): - async for item in self._create_async_generator(mock_events): - yield item - - self.mock_runner.run_async = mock_run_async - - with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_event_to_a2a_events" - ) as mock_convert_events: - mock_convert_events.return_value = [Mock()] - - with patch( - "google.adk.a2a.executor.a2a_agent_executor.TaskResultAggregator" - ) as mock_aggregator_class: - mock_aggregator = Mock() - # Test with failed state - should preserve failed state - mock_aggregator.task_state = TaskState.failed - mock_aggregator.task_status_message = test_message - mock_aggregator_class.return_value = mock_aggregator - - # Execute - await self.executor._handle_request( - self.mock_context, self.mock_event_queue - ) - - # Verify final event preserves the non-working state - final_events = [ - call[0][0] - for call in self.mock_event_queue.enqueue_event.call_args_list - if hasattr(call[0][0], "final") and call[0][0].final == True - ] - assert len(final_events) >= 1 - final_event = final_events[-1] # Get the last final event - assert final_event.status.message == test_message - # When aggregator state is failed (not working), final event should keep failed state - assert final_event.status.state == TaskState.failed + # Verify final event preserves the non-working state + final_events = [ + call[0][0] + for call in self.mock_event_queue.enqueue_event.call_args_list + if hasattr(call[0][0], "final") and call[0][0].final == True + ] + assert len(final_events) >= 1 + final_event = final_events[-1] # Get the last final event + assert final_event.status.message == test_message + # When aggregator state is failed (not working), final event should keep failed state + assert final_event.status.state == TaskState.failed @pytest.mark.asyncio async def test_handle_request_with_working_state_publishes_artifact_and_completed( @@ -846,84 +817,77 @@ async def test_handle_request_with_working_state_publishes_artifact_and_complete test_message.parts = [Part(root=TextPart(text="test content"))] # Setup detailed mocks - with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_a2a_request_to_adk_run_args" - ) as mock_convert: - mock_convert.return_value = { - "user_id": "test-user", - "session_id": "test-session", - "new_message": Mock(), - "run_config": Mock(), - } - - # Mock session service - mock_session = Mock() - mock_session.id = "test-session" - self.mock_runner.session_service.get_session = AsyncMock( - return_value=mock_session - ) + self.mock_request_converter.return_value = AgentRunRequest( + user_id="test-user", + session_id="test-session", + new_message=Mock(spec=Content), + run_config=Mock(spec=RunConfig), + ) + + # Mock session service + mock_session = Mock() + mock_session.id = "test-session" + self.mock_runner.session_service.get_session = AsyncMock( + return_value=mock_session + ) + + # Mock invocation context + mock_invocation_context = Mock() + self.mock_runner._new_invocation_context.return_value = ( + mock_invocation_context + ) + + # Mock agent run with multiple events using proper async generator + mock_events = [Mock(spec=Event), Mock(spec=Event)] + + # Configure run_async to return the async generator when awaited + async def mock_run_async(**kwargs): + async for item in self._create_async_generator(mock_events): + yield item + + self.mock_runner.run_async = mock_run_async + + self.mock_event_converter.return_value = [Mock()] - # Mock invocation context - mock_invocation_context = Mock() - self.mock_runner._new_invocation_context.return_value = ( - mock_invocation_context + with patch( + "google.adk.a2a.executor.a2a_agent_executor.TaskResultAggregator" + ) as mock_aggregator_class: + mock_aggregator = Mock() + # Test with working state - should publish artifact update and completed status + mock_aggregator.task_state = TaskState.working + mock_aggregator.task_status_message = test_message + mock_aggregator_class.return_value = mock_aggregator + + # Execute + await self.executor._handle_request( + self.mock_context, self.mock_event_queue ) - # Mock agent run with multiple events using proper async generator - mock_events = [Mock(spec=Event), Mock(spec=Event)] - - # Configure run_async to return the async generator when awaited - async def mock_run_async(**kwargs): - async for item in self._create_async_generator(mock_events): - yield item - - self.mock_runner.run_async = mock_run_async - - with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_event_to_a2a_events" - ) as mock_convert_events: - mock_convert_events.return_value = [Mock()] - - with patch( - "google.adk.a2a.executor.a2a_agent_executor.TaskResultAggregator" - ) as mock_aggregator_class: - mock_aggregator = Mock() - # Test with working state - should publish artifact update and completed status - mock_aggregator.task_state = TaskState.working - mock_aggregator.task_status_message = test_message - mock_aggregator_class.return_value = mock_aggregator - - # Execute - await self.executor._handle_request( - self.mock_context, self.mock_event_queue - ) - - # Verify artifact update event was published - artifact_events = [ - call[0][0] - for call in self.mock_event_queue.enqueue_event.call_args_list - if hasattr(call[0][0], "artifact") - and call[0][0].last_chunk == True - ] - assert len(artifact_events) == 1 - artifact_event = artifact_events[0] - assert artifact_event.task_id == "test-task-id" - assert artifact_event.context_id == "test-context-id" - # Check that artifact parts correspond to message parts - assert len(artifact_event.artifact.parts) == len(test_message.parts) - assert artifact_event.artifact.parts == test_message.parts - - # Verify final status event was published with completed state - final_events = [ - call[0][0] - for call in self.mock_event_queue.enqueue_event.call_args_list - if hasattr(call[0][0], "final") and call[0][0].final == True - ] - assert len(final_events) >= 1 - final_event = final_events[-1] # Get the last final event - assert final_event.status.state == TaskState.completed - assert final_event.task_id == "test-task-id" - assert final_event.context_id == "test-context-id" + # Verify artifact update event was published + artifact_events = [ + call[0][0] + for call in self.mock_event_queue.enqueue_event.call_args_list + if hasattr(call[0][0], "artifact") and call[0][0].last_chunk == True + ] + assert len(artifact_events) == 1 + artifact_event = artifact_events[0] + assert artifact_event.task_id == "test-task-id" + assert artifact_event.context_id == "test-context-id" + # Check that artifact parts correspond to message parts + assert len(artifact_event.artifact.parts) == len(test_message.parts) + assert artifact_event.artifact.parts == test_message.parts + + # Verify final status event was published with completed state + final_events = [ + call[0][0] + for call in self.mock_event_queue.enqueue_event.call_args_list + if hasattr(call[0][0], "final") and call[0][0].final == True + ] + assert len(final_events) >= 1 + final_event = final_events[-1] # Get the last final event + assert final_event.status.state == TaskState.completed + assert final_event.task_id == "test-task-id" + assert final_event.context_id == "test-context-id" @pytest.mark.asyncio async def test_handle_request_with_non_working_state_publishes_status_only( @@ -946,76 +910,69 @@ async def test_handle_request_with_non_working_state_publishes_status_only( test_message.parts = [Part(root=TextPart(text="test content"))] # Setup detailed mocks + self.mock_request_converter.return_value = AgentRunRequest( + user_id="test-user", + session_id="test-session", + new_message=Mock(spec=Content), + run_config=Mock(spec=RunConfig), + ) + + # Mock session service + mock_session = Mock() + mock_session.id = "test-session" + self.mock_runner.session_service.get_session = AsyncMock( + return_value=mock_session + ) + + # Mock invocation context + mock_invocation_context = Mock() + self.mock_runner._new_invocation_context.return_value = ( + mock_invocation_context + ) + + # Mock agent run with multiple events using proper async generator + mock_events = [Mock(spec=Event), Mock(spec=Event)] + + # Configure run_async to return the async generator when awaited + async def mock_run_async(**kwargs): + async for item in self._create_async_generator(mock_events): + yield item + + self.mock_runner.run_async = mock_run_async + + self.mock_event_converter.return_value = [Mock()] + with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_a2a_request_to_adk_run_args" - ) as mock_convert: - mock_convert.return_value = { - "user_id": "test-user", - "session_id": "test-session", - "new_message": Mock(), - "run_config": Mock(), - } - - # Mock session service - mock_session = Mock() - mock_session.id = "test-session" - self.mock_runner.session_service.get_session = AsyncMock( - return_value=mock_session + "google.adk.a2a.executor.a2a_agent_executor.TaskResultAggregator" + ) as mock_aggregator_class: + mock_aggregator = Mock() + # Test with auth_required state - should publish only status event + mock_aggregator.task_state = TaskState.auth_required + mock_aggregator.task_status_message = test_message + mock_aggregator_class.return_value = mock_aggregator + + # Execute + await self.executor._handle_request( + self.mock_context, self.mock_event_queue ) - # Mock invocation context - mock_invocation_context = Mock() - self.mock_runner._new_invocation_context.return_value = ( - mock_invocation_context - ) + # Verify no artifact update event was published + artifact_events = [ + call[0][0] + for call in self.mock_event_queue.enqueue_event.call_args_list + if hasattr(call[0][0], "artifact") and call[0][0].last_chunk == True + ] + assert len(artifact_events) == 0 - # Mock agent run with multiple events using proper async generator - mock_events = [Mock(spec=Event), Mock(spec=Event)] - - # Configure run_async to return the async generator when awaited - async def mock_run_async(**kwargs): - async for item in self._create_async_generator(mock_events): - yield item - - self.mock_runner.run_async = mock_run_async - - with patch( - "google.adk.a2a.executor.a2a_agent_executor.convert_event_to_a2a_events" - ) as mock_convert_events: - mock_convert_events.return_value = [Mock()] - - with patch( - "google.adk.a2a.executor.a2a_agent_executor.TaskResultAggregator" - ) as mock_aggregator_class: - mock_aggregator = Mock() - # Test with auth_required state - should publish only status event - mock_aggregator.task_state = TaskState.auth_required - mock_aggregator.task_status_message = test_message - mock_aggregator_class.return_value = mock_aggregator - - # Execute - await self.executor._handle_request( - self.mock_context, self.mock_event_queue - ) - - # Verify no artifact update event was published - artifact_events = [ - call[0][0] - for call in self.mock_event_queue.enqueue_event.call_args_list - if hasattr(call[0][0], "artifact") - and call[0][0].last_chunk == True - ] - assert len(artifact_events) == 0 - - # Verify final status event was published with the actual state and message - final_events = [ - call[0][0] - for call in self.mock_event_queue.enqueue_event.call_args_list - if hasattr(call[0][0], "final") and call[0][0].final == True - ] - assert len(final_events) >= 1 - final_event = final_events[-1] # Get the last final event - assert final_event.status.state == TaskState.auth_required - assert final_event.status.message == test_message - assert final_event.task_id == "test-task-id" - assert final_event.context_id == "test-context-id" + # Verify final status event was published with the actual state and message + final_events = [ + call[0][0] + for call in self.mock_event_queue.enqueue_event.call_args_list + if hasattr(call[0][0], "final") and call[0][0].final == True + ] + assert len(final_events) >= 1 + final_event = final_events[-1] # Get the last final event + assert final_event.status.state == TaskState.auth_required + assert final_event.status.message == test_message + assert final_event.task_id == "test-task-id" + assert final_event.context_id == "test-context-id" From 86097afe49fbff7d46e92a58dccdf5009ba19a83 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Wed, 15 Oct 2025 17:26:50 -0700 Subject: [PATCH 113/303] feat: Update AgentEvaluator to handle async ADK agent definitions AgentEvaluator should recognize root_agent and get_agent_async as valid structures for ADK agent definitions. PiperOrigin-RevId: 819976635 --- src/google/adk/evaluation/agent_evaluator.py | 24 +++- .../hello_world_agent_async/__init__.py | 15 +++ .../fixture/hello_world_agent_async/agent.py | 104 ++++++++++++++++++ .../roll_die.test.json | 55 +++++++++ .../hello_world_agent_async/test_config.json | 6 + tests/integration/test_single_agent.py | 11 ++ 6 files changed, 210 insertions(+), 5 deletions(-) create mode 100644 tests/integration/fixture/hello_world_agent_async/__init__.py create mode 100644 tests/integration/fixture/hello_world_agent_async/agent.py create mode 100644 tests/integration/fixture/hello_world_agent_async/roll_die.test.json create mode 100644 tests/integration/fixture/hello_world_agent_async/test_config.json diff --git a/src/google/adk/evaluation/agent_evaluator.py b/src/google/adk/evaluation/agent_evaluator.py index 049d2bf71c..3788a2e614 100644 --- a/src/google/adk/evaluation/agent_evaluator.py +++ b/src/google/adk/evaluation/agent_evaluator.py @@ -118,7 +118,7 @@ async def evaluate_eval_set( Args: agent_module: The path to python module that contains the definition of the agent. There is convention in place here, where the code is going to - look for 'root_agent' in the loaded module. + look for 'root_agent' or `get_agent_async` in the loaded module. eval_set: The eval set. criteria: Evauation criterias, a dictionary of metric names to their respective thresholds. This field is deprecated. @@ -144,7 +144,7 @@ async def evaluate_eval_set( if eval_config is None: raise ValueError("`eval_config` is required.") - agent_for_eval = AgentEvaluator._get_agent_for_eval( + agent_for_eval = await AgentEvaluator._get_agent_for_eval( module_name=agent_module, agent_name=agent_name ) eval_metrics = get_eval_metrics_from_config(eval_config) @@ -200,7 +200,7 @@ async def evaluate( Args: agent_module: The path to python module that contains the definition of the agent. There is convention in place here, where the code is going to - look for 'root_agent' in the loaded module. + look for 'root_agent' or 'get_agent_async' in the loaded module. eval_dataset_file_path_or_dir: The eval data set. This can be either a string representing full path to the file containing eval dataset, or a directory that is recursively explored for all files that have a @@ -466,12 +466,26 @@ def _convert_tool_calls_to_text( return "\n".join([str(t) for t in tool_calls]) @staticmethod - def _get_agent_for_eval( + async def _get_agent_for_eval( module_name: str, agent_name: Optional[str] = None ) -> BaseAgent: module_path = f"{module_name}" agent_module = importlib.import_module(module_path) - root_agent = agent_module.agent.root_agent + print(dir(agent_module)) + if hasattr(agent_module, "agent"): + if hasattr(agent_module.agent, "root_agent"): + root_agent = agent_module.agent.root_agent + elif hasattr(agent_module.agent, "get_agent_async"): + root_agent, _ = await agent_module.agent.get_agent_async() + else: + raise ValueError( + f"Module {module_name} does not have a root_agent or" + " get_agent_async method." + ) + else: + raise ValueError( + f"Module {module_name} does not have a member named `agent`." + ) agent_for_eval = root_agent if agent_name: diff --git a/tests/integration/fixture/hello_world_agent_async/__init__.py b/tests/integration/fixture/hello_world_agent_async/__init__.py new file mode 100644 index 0000000000..c48963cdc7 --- /dev/null +++ b/tests/integration/fixture/hello_world_agent_async/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/tests/integration/fixture/hello_world_agent_async/agent.py b/tests/integration/fixture/hello_world_agent_async/agent.py new file mode 100644 index 0000000000..b105065cc0 --- /dev/null +++ b/tests/integration/fixture/hello_world_agent_async/agent.py @@ -0,0 +1,104 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Hello world agent from agent 1.0 revised to be defined with get_agent_async +# instead of root_agent - https://colab.sandbox.google.com/drive/1Zq-nqmgK0nCERCv8jKIaoeTTgbNn6oSo?resourcekey=0-GYaz9pFT4wY8CI8Cvjy5GA#scrollTo=u3X3XwDOaCv9 +import contextlib +import random +from typing import Optional + +from google.adk import Agent +from google.adk.agents import llm_agent +from google.genai import types + + +def roll_die(sides: int) -> int: + """Roll a die and return the rolled result. + + Args: + sides: The integer number of sides the die has. + + Returns: + An integer of the result of rolling the die. + """ + return random.randint(1, sides) + + +def check_prime(nums: list[int]) -> list[str]: + """Check if a given list of numbers are prime. + + Args: + nums: The list of numbers to check. + + Returns: + A str indicating which number is prime. + """ + primes = set() + for number in nums: + number = int(number) + if number <= 1: + continue + is_prime = True + for i in range(2, int(number**0.5) + 1): + if number % i == 0: + is_prime = False + break + if is_prime: + primes.add(number) + return ( + 'No prime numbers found.' + if not primes + else f"{', '.join(str(num) for num in primes)} are prime numbers." + ) + + +async def get_agent_async() -> ( + tuple[llm_agent.LlmAgent, Optional[contextlib.AsyncExitStack]] +): + """Returns the root agent.""" + root_agent = Agent( + model='gemini-2.0-flash-001', + name='data_processing_agent', + instruction=""" + You roll dice and answer questions about the outcome of the dice rolls. + You can roll dice of different sizes. + You can use multiple tools in parallel by calling functions in parallel(in one request and in one round). + The only things you do are roll dice for the user and discuss the outcomes. + It is ok to discuss previous dice roles, and comment on the dice rolls. + When you are asked to roll a die, you must call the roll_die tool with the number of sides. Be sure to pass in an integer. Do not pass in a string. + You should never roll a die on your own. + When checking prime numbers, call the check_prime tool with a list of integers. Be sure to pass in a list of integers. You should never pass in a string. + You should not check prime numbers before calling the tool. + When you are asked to roll a die and check prime numbers, you should always make the following two function calls: + 1. You should first call the roll_die tool to get a roll. Wait for the function response before calling the check_prime tool. + 2. After you get the function response from roll_die tool, you should call the check_prime tool with the roll_die result. + 2.1 If user asks you to check primes based on previous rolls, make sure you include the previous rolls in the list. + 3. When you respond, you must include the roll_die result from step 1. + You should always perform the previous 3 steps when asking for a roll and checking prime numbers. + You should not rely on the previous history on prime results. + """, + tools=[ + roll_die, + check_prime, + ], + generate_content_config=types.GenerateContentConfig( + safety_settings=[ + types.SafetySetting( # avoid false alarm about rolling dice. + category=types.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT, + threshold=types.HarmBlockThreshold.OFF, + ), + ] + ), + ) + return root_agent, None diff --git a/tests/integration/fixture/hello_world_agent_async/roll_die.test.json b/tests/integration/fixture/hello_world_agent_async/roll_die.test.json new file mode 100644 index 0000000000..7e787d409a --- /dev/null +++ b/tests/integration/fixture/hello_world_agent_async/roll_die.test.json @@ -0,0 +1,55 @@ +{ + "eval_set_id": "56540925-a5ff-49fe-a4e1-589fe78066f2", + "name": "56540925-a5ff-49fe-a4e1-589fe78066f2", + "description": null, + "eval_cases": [ + { + "eval_id": "tests/integration/fixture/hello_world_agent_async/roll_die.test.json", + "conversation": [ + { + "invocation_id": "b01f67f0-9f23-44d6-bbe4-36ea235cb9fb", + "user_content": { + "parts": [ + { + "video_metadata": null, + "thought": null, + "code_execution_result": null, + "executable_code": null, + "file_data": null, + "function_call": null, + "function_response": null, + "inline_data": null, + "text": "Hi who are you?" + } + ], + "role": "user" + }, + "final_response": { + "parts": [ + { + "video_metadata": null, + "thought": null, + "code_execution_result": null, + "executable_code": null, + "file_data": null, + "function_call": null, + "function_response": null, + "inline_data": null, + "text": "I am a data processing agent. I can roll dice and check if the results are prime numbers. What would you like me to do? \n" + } + ], + "role": "model" + }, + "intermediate_data": { + "tool_uses": [], + "intermediate_responses": [] + }, + "creation_timestamp": 1747341775.8937013 + } + ], + "session_input": null, + "creation_timestamp": 1747341775.8937826 + } + ], + "creation_timestamp": 1747341775.8937957 +} \ No newline at end of file diff --git a/tests/integration/fixture/hello_world_agent_async/test_config.json b/tests/integration/fixture/hello_world_agent_async/test_config.json new file mode 100644 index 0000000000..c7fba6a4b1 --- /dev/null +++ b/tests/integration/fixture/hello_world_agent_async/test_config.json @@ -0,0 +1,6 @@ +{ + "criteria": { + "tool_trajectory_avg_score": 1.0, + "response_match_score": 0.5 + } +} diff --git a/tests/integration/test_single_agent.py b/tests/integration/test_single_agent.py index 183005eda8..49f3b7ba66 100644 --- a/tests/integration/test_single_agent.py +++ b/tests/integration/test_single_agent.py @@ -23,3 +23,14 @@ async def test_eval_agent(): eval_dataset_file_path_or_dir="tests/integration/fixture/home_automation_agent/simple_test.test.json", num_runs=4, ) + + +@pytest.mark.asyncio +async def test_eval_agent_async(): + await AgentEvaluator.evaluate( + agent_module="tests.integration.fixture.hello_world_agent_async", + eval_dataset_file_path_or_dir=( + "tests/integration/fixture/hello_world_agent_async/roll_die.test.json" + ), + num_runs=4, + ) From 3734ceaa6c245e072ae46949c44dd48ec39ae2e5 Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Wed, 15 Oct 2025 17:40:49 -0700 Subject: [PATCH 114/303] fix: Use the agent's model when creating Google search agent tool PiperOrigin-RevId: 819980797 --- .../samples/built_in_multi_tools/agent.py | 8 ++-- .../adk/flows/llm_flows/base_llm_flow.py | 6 ++- .../flows/llm_flows/test_base_llm_flow.py | 45 +++++++++++++++++-- 3 files changed, 52 insertions(+), 7 deletions(-) diff --git a/contributing/samples/built_in_multi_tools/agent.py b/contributing/samples/built_in_multi_tools/agent.py index 5194e0ef9f..3eb9ce8bef 100644 --- a/contributing/samples/built_in_multi_tools/agent.py +++ b/contributing/samples/built_in_multi_tools/agent.py @@ -17,7 +17,7 @@ from dotenv import load_dotenv from google.adk import Agent -from google.adk.tools.google_search_tool import google_search +from google.adk.tools.google_search_tool import GoogleSearchTool from google.adk.tools.tool_context import ToolContext from google.adk.tools.vertex_ai_search_tool import VertexAiSearchTool @@ -57,7 +57,9 @@ def roll_die(sides: int, tool_context: ToolContext) -> int: """, tools=[ roll_die, - VertexAiSearchTool(data_store_id=VERTEXAI_DATASTORE_ID), - google_search, + VertexAiSearchTool( + data_store_id=VERTEXAI_DATASTORE_ID, bypass_multi_tools_limit=True + ), + GoogleSearchTool(bypass_multi_tools_limit=True), ], ) diff --git a/src/google/adk/flows/llm_flows/base_llm_flow.py b/src/google/adk/flows/llm_flows/base_llm_flow.py index f5b242b7c5..531a5034c8 100644 --- a/src/google/adk/flows/llm_flows/base_llm_flow.py +++ b/src/google/adk/flows/llm_flows/base_llm_flow.py @@ -438,6 +438,10 @@ async def _preprocess_async( from ...agents.llm_agent import LlmAgent agent = invocation_context.agent + if not isinstance(agent, LlmAgent): + raise TypeError( + f'Expected agent to be an LlmAgent, but got {type(agent)}' + ) # Runs processors. for processor in self.request_processors: @@ -468,7 +472,7 @@ async def _preprocess_async( tools = await _convert_tool_union_to_tools( tool_union, ReadonlyContext(invocation_context), - llm_request.model, + agent.model, multiple_tools, ) for tool in tools: diff --git a/tests/unittests/flows/llm_flows/test_base_llm_flow.py b/tests/unittests/flows/llm_flows/test_base_llm_flow.py index 47b4b00fd4..81ef925a39 100644 --- a/tests/unittests/flows/llm_flows/test_base_llm_flow.py +++ b/tests/unittests/flows/llm_flows/test_base_llm_flow.py @@ -14,13 +14,13 @@ """Unit tests for BaseLlmFlow toolset integration.""" -from typing import Optional +from unittest import mock from unittest.mock import AsyncMock -from google.adk.agents.callback_context import CallbackContext from google.adk.agents.llm_agent import Agent from google.adk.events.event import Event from google.adk.flows.llm_flows.base_llm_flow import BaseLlmFlow +from google.adk.models.google_llm import Gemini from google.adk.models.llm_request import LlmRequest from google.adk.models.llm_response import LlmResponse from google.adk.plugins.base_plugin import BasePlugin @@ -95,7 +95,6 @@ async def close(self): async def test_preprocess_handles_mixed_tools_and_toolsets(): """Test that _preprocess_async properly handles both tools and toolsets.""" from google.adk.tools.base_tool import BaseTool - from google.adk.tools.function_tool import FunctionTool # Create a mock tool class _MockTool(BaseTool): @@ -200,6 +199,46 @@ def _my_tool(sides: int) -> int: assert {d.name for d in declarations} == {'_my_tool', 'google_search_agent'} +@pytest.mark.asyncio +async def test_preprocess_calls_convert_tool_union_to_tools(): + """Test that _preprocess_async calls _convert_tool_union_to_tools.""" + + class _MockTool: + process_llm_request = AsyncMock() + + mock_tool_instance = _MockTool() + + def _my_tool(sides: int) -> int: + """A simple tool.""" + return sides + + with mock.patch( + 'google.adk.agents.llm_agent._convert_tool_union_to_tools', + new_callable=AsyncMock, + ) as mock_convert: + mock_convert.return_value = [mock_tool_instance] + + model = Gemini(model='gemini-2') + agent = Agent( + name='test_agent', model=model, tools=[_my_tool, google_search] + ) + invocation_context = await testing_utils.create_invocation_context( + agent=agent, user_content='test message' + ) + flow = BaseLlmFlowForTesting() + llm_request = LlmRequest(model='gemini-2') + + async for _ in flow._preprocess_async(invocation_context, llm_request): + pass + + mock_convert.assert_called_with( + google_search, + mock.ANY, # ReadonlyContext(invocation_context) + model, + True, # multiple_tools + ) + + # TODO(b/448114567): Remove the following # test_handle_after_model_callback_grounding tests once the workaround # is no longer needed. From f51380f9ea4534591eda76bef27407c0aa7c3fae Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Wed, 15 Oct 2025 21:42:56 -0700 Subject: [PATCH 115/303] feat: Extend `ReflectAndRetryToolPlugin` to support hallucinating function calls PiperOrigin-RevId: 820051762 --- .../plugin_reflect_tool_retry/README.md | 24 +++++- .../hallucinating_func_name/__init__.py | 15 ++++ .../hallucinating_func_name/agent.py | 81 +++++++++++++++++++ src/google/adk/flows/llm_flows/functions.py | 75 ++++++++++++----- .../adk/plugins/reflect_retry_tool_plugin.py | 59 ++++++++++++-- .../plugins/test_reflect_retry_tool_plugin.py | 57 +++++++++++++ 6 files changed, 283 insertions(+), 28 deletions(-) create mode 100644 contributing/samples/plugin_reflect_tool_retry/hallucinating_func_name/__init__.py create mode 100644 contributing/samples/plugin_reflect_tool_retry/hallucinating_func_name/agent.py diff --git a/contributing/samples/plugin_reflect_tool_retry/README.md b/contributing/samples/plugin_reflect_tool_retry/README.md index 084862e4df..773623162c 100644 --- a/contributing/samples/plugin_reflect_tool_retry/README.md +++ b/contributing/samples/plugin_reflect_tool_retry/README.md @@ -46,8 +46,30 @@ You can run the agent with: $ adk web contributing/samples/plugin_reflect_tool_retry ``` -You can provide the following prompt to see the agent retrying tool calls: +Select "basic" and provide the following prompt to see the agent retrying tool +calls: ``` Please guess a number! Tell me what number you guess and how is it. ``` + +### Hallucinating tool calls + +The "hallucinating_func_name" agent is an example to show the plugin can retry +hallucinating tool calls. + +For example, we used the `after_model_callback` to hack a tool call with the +wrong name then the agent can retry calling with the right tool name. + +You can run the agent with: + +```bash +$ adk web contributing/samples/plugin_reflect_tool_retry +``` + +Select "hallucinating_func_name" and provide the following prompt to see the +agent retrying tool calls: + +``` +Roll a 6 sided die +``` diff --git a/contributing/samples/plugin_reflect_tool_retry/hallucinating_func_name/__init__.py b/contributing/samples/plugin_reflect_tool_retry/hallucinating_func_name/__init__.py new file mode 100644 index 0000000000..c48963cdc7 --- /dev/null +++ b/contributing/samples/plugin_reflect_tool_retry/hallucinating_func_name/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/plugin_reflect_tool_retry/hallucinating_func_name/agent.py b/contributing/samples/plugin_reflect_tool_retry/hallucinating_func_name/agent.py new file mode 100644 index 0000000000..5b8d926265 --- /dev/null +++ b/contributing/samples/plugin_reflect_tool_retry/hallucinating_func_name/agent.py @@ -0,0 +1,81 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random + +from google.adk.agents import LlmAgent +from google.adk.agents.callback_context import CallbackContext +from google.adk.apps.app import App +from google.adk.models.llm_response import LlmResponse +from google.adk.plugins import ReflectAndRetryToolPlugin +from google.adk.tools.tool_context import ToolContext + +APP_NAME = "hallucinating_func_name" +USER_ID = "test_user" + +hallucinated = False # Whether the tool name is hallucinated + + +def roll_die(sides: int, tool_context: ToolContext) -> int: + """Roll a die and return the rolled result. + + Args: + sides: The integer number of sides the die has. + + Returns: + An integer of the result of rolling the die. + """ + result = random.randint(1, sides) + if not "rolls" in tool_context.state: + tool_context.state["rolls"] = [] + + tool_context.state["rolls"] = tool_context.state["rolls"] + [result] + return result + + +def after_model_callback( + callback_context: CallbackContext, llm_response: LlmResponse +): + """After model callback to produce one hallucinating tool call.""" + global hallucinated + + if hallucinated: + return None + + if ( + llm_response.content + and llm_response.content.parts[0].function_call.name == "roll_die" + ): + llm_response.content.parts[0].function_call.name = "roll_die_wrong_name" + hallucinated = True + return None + + +root_agent = LlmAgent( + name="hello_world", + description="Helpful agent", + instruction="""Use guess_number_tool to guess a number.""", + model="gemini-2.5-flash", + tools=[roll_die], + after_model_callback=after_model_callback, +) + + +app = App( + name=APP_NAME, + root_agent=root_agent, + plugins=[ + ReflectAndRetryToolPlugin(max_retries=3), + ], +) diff --git a/src/google/adk/flows/llm_flows/functions.py b/src/google/adk/flows/llm_flows/functions.py index b7508aeefa..4380322ba7 100644 --- a/src/google/adk/flows/llm_flows/functions.py +++ b/src/google/adk/flows/llm_flows/functions.py @@ -275,21 +275,37 @@ async def _execute_single_function_call_async( tool_confirmation: Optional[ToolConfirmation] = None, ) -> Optional[Event]: """Execute a single function call with thread safety for state modifications.""" - tool, tool_context = _get_tool_and_context( - invocation_context, - function_call, - tools_dict, - tool_confirmation, + # Do not use "args" as the variable name, because it is a reserved keyword + # in python debugger. + # Make a deep copy to avoid being modified. + function_args = ( + copy.deepcopy(function_call.args) if function_call.args else {} ) - with tracer.start_as_current_span(f'execute_tool {tool.name}'): - # Do not use "args" as the variable name, because it is a reserved keyword - # in python debugger. - # Make a deep copy to avoid being modified. - function_args = ( - copy.deepcopy(function_call.args) if function_call.args else {} + tool_context = _create_tool_context( + invocation_context, function_call, tool_confirmation + ) + + try: + tool = _get_tool(function_call, tools_dict) + except ValueError as tool_error: + tool = BaseTool(name=function_call.name, description='Tool not found') + error_response = ( + await invocation_context.plugin_manager.run_on_tool_error_callback( + tool=tool, + tool_args=function_args, + tool_context=tool_context, + error=tool_error, + ) ) + if error_response is not None: + return __build_response_event( + tool, error_response, tool_context, invocation_context + ) + else: + raise tool_error + with tracer.start_as_current_span(f'execute_tool {tool.name}'): # Step 1: Check if plugin before_tool_callback overrides the function # response. function_response = ( @@ -639,24 +655,45 @@ async def run_tool_and_update_queue(tool, function_args, tool_context): return function_response -def _get_tool_and_context( - invocation_context: InvocationContext, - function_call: types.FunctionCall, - tools_dict: dict[str, BaseTool], - tool_confirmation: Optional[ToolConfirmation] = None, +def _get_tool( + function_call: types.FunctionCall, tools_dict: dict[str, BaseTool] ): + """Returns the tool corresponding to the function call.""" if function_call.name not in tools_dict: raise ValueError( - f'Function {function_call.name} is not found in the tools_dict.' + f'Function {function_call.name} is not found in the tools_dict:' + f' {tools_dict.keys()}.' ) - tool_context = ToolContext( + return tools_dict[function_call.name] + + +def _create_tool_context( + invocation_context: InvocationContext, + function_call: types.FunctionCall, + tool_confirmation: Optional[ToolConfirmation] = None, +): + """Creates a ToolContext object.""" + return ToolContext( invocation_context=invocation_context, function_call_id=function_call.id, tool_confirmation=tool_confirmation, ) - tool = tools_dict[function_call.name] + +def _get_tool_and_context( + invocation_context: InvocationContext, + function_call: types.FunctionCall, + tools_dict: dict[str, BaseTool], + tool_confirmation: Optional[ToolConfirmation] = None, +): + """Returns the tool and tool context corresponding to the function call.""" + tool = _get_tool(function_call, tools_dict) + tool_context = _create_tool_context( + invocation_context, + function_call, + tool_confirmation, + ) return (tool, tool_context) diff --git a/src/google/adk/plugins/reflect_retry_tool_plugin.py b/src/google/adk/plugins/reflect_retry_tool_plugin.py index cc501a93b7..a3a0cc2572 100644 --- a/src/google/adk/plugins/reflect_retry_tool_plugin.py +++ b/src/google/adk/plugins/reflect_retry_tool_plugin.py @@ -142,8 +142,20 @@ async def after_tool_callback( tool_args: dict[str, Any], tool_context: ToolContext, result: Any, - ) -> Optional[dict]: - """Handles successful tool calls or extracts and processes errors.""" + ) -> Optional[dict[str, Any]]: + """Handles successful tool calls or extracts and processes errors. + + Args: + tool: The tool that was called. + tool_args: The arguments passed to the tool. + tool_context: The context of the tool call. + result: The result of the tool call. + + Returns: + An optional dictionary containing reflection guidance if an error is + detected, or None if the tool call was successful or the + response is already a reflection message. + """ if ( isinstance(result, dict) and result.get("response_type") == REFLECT_AND_RETRY_RESPONSE_TYPE @@ -157,7 +169,8 @@ async def after_tool_callback( if error: return await self._handle_tool_error(tool, tool_args, tool_context, error) - # On success, reset the failure count for this specific tool within its scope. + # On success, reset the failure count for this specific tool within + # its scope. await self._reset_failures_for_tool(tool_context, tool.name) return None @@ -168,7 +181,7 @@ async def extract_error_from_result( tool_args: dict[str, Any], tool_context: ToolContext, result: Any, - ) -> Optional[Any]: + ) -> Optional[dict[str, Any]]: """Extracts an error from a successful tool result and triggers retry logic. This is useful when tool call finishes successfully but the result contains @@ -176,6 +189,15 @@ async def extract_error_from_result( By overriding this method, you can trigger retry logic on these successful results that contain errors. + + Args: + tool: The tool that was called. + tool_args: The arguments passed to the tool. + tool_context: The context of the tool call. + result: The result of the tool call. + + Returns: + The extracted error if any, or None if no error was detected. """ return None @@ -186,8 +208,18 @@ async def on_tool_error_callback( tool_args: dict[str, Any], tool_context: ToolContext, error: Exception, - ) -> Optional[dict]: - """Handles tool exceptions by providing reflection guidance.""" + ) -> Optional[dict[str, Any]]: + """Handles tool exceptions by providing reflection guidance. + + Args: + tool: The tool that was called. + tool_args: The arguments passed to the tool. + tool_context: The context of the tool call. + error: The exception raised by the tool. + + Returns: + An optional dictionary containing reflection guidance for the error. + """ return await self._handle_tool_error(tool, tool_args, tool_context, error) async def _handle_tool_error( @@ -196,8 +228,18 @@ async def _handle_tool_error( tool_args: dict[str, Any], tool_context: ToolContext, error: Any, - ) -> Optional[dict]: - """Central, thread-safe logic for processing tool errors.""" + ) -> Optional[dict[str, Any]]: + """Central, thread-safe logic for processing tool errors. + + Args: + tool: The tool that was called. + tool_args: The arguments passed to the tool. + tool_context: The context of the tool call. + error: The error to be handled. + + Returns: + An optional dictionary containing reflection guidance for the error. + """ if self.max_retries == 0: if self.throw_exception_if_retry_exceeded: raise error @@ -285,6 +327,7 @@ def _create_tool_reflection_response( 2. **State or Preconditions**: Did a previous step fail or not produce the necessary state/resource for this tool to succeed? 3. **Alternative Approach**: Is this the right tool for the job? Could another tool or a different sequence of steps achieve the goal? 4. **Simplify the Task**: Can you break the problem down into smaller, simpler steps? +5. **Wrong Function Name**: Does the error indicates the tool is not found? Please check again and only use available tools. Formulate a new plan based on your analysis and try a corrected or different approach. """ diff --git a/tests/unittests/plugins/test_reflect_retry_tool_plugin.py b/tests/unittests/plugins/test_reflect_retry_tool_plugin.py index ac0850201c..1e15f33899 100644 --- a/tests/unittests/plugins/test_reflect_retry_tool_plugin.py +++ b/tests/unittests/plugins/test_reflect_retry_tool_plugin.py @@ -16,10 +16,14 @@ from unittest import IsolatedAsyncioTestCase from unittest.mock import Mock +from google.adk.agents.llm_agent import LlmAgent from google.adk.plugins.reflect_retry_tool_plugin import REFLECT_AND_RETRY_RESPONSE_TYPE from google.adk.plugins.reflect_retry_tool_plugin import ReflectAndRetryToolPlugin from google.adk.tools.base_tool import BaseTool from google.adk.tools.tool_context import ToolContext +from google.genai import types + +from .. import testing_utils class MockTool(BaseTool): @@ -524,3 +528,56 @@ async def test_retry_state_management(self): result=custom_error, ) self.assertEqual(result4["retry_count"], 1) + + async def test_hallucinating_tool_name(self): + """Test that hallucinating tool name is handled correctly.""" + wrong_function_call = types.Part.from_function_call( + name="increase_by_one", args={"x": 1} + ) + correct_function_call = types.Part.from_function_call( + name="increase", args={"x": 1} + ) + responses: list[types.Content] = [ + wrong_function_call, + correct_function_call, + "response1", + ] + mock_model = testing_utils.MockModel.create(responses=responses) + + function_called = 0 + + def increase(x: int) -> int: + nonlocal function_called + function_called += 1 + return x + 1 + + agent = LlmAgent(name="root_agent", model=mock_model, tools=[increase]) + runner = testing_utils.TestInMemoryRunner( + agent=agent, plugins=[self.get_plugin()] + ) + + events = await runner.run_async_with_new_session("test") + + # Assert that the first event is a function call with the wrong name + assert events[0].content.parts[0].function_call.name == "increase_by_one" + + # Assert that the second event is a function response with the + # reflection_guidance + assert ( + events[1].content.parts[0].function_response.response["error_type"] + == "ValueError" + ) + assert ( + events[1].content.parts[0].function_response.response["retry_count"] + == 1 + ) + assert ( + "Wrong Function Name" + in events[1] + .content.parts[0] + .function_response.response["reflection_guidance"] + ) + + # Assert that the third event is a function call with the correct name + assert events[2].content.parts[0].function_call.name == "increase" + self.assertEqual(function_called, 1) From 1e1d63f34c57c6633e0f7d1c995c3edd91683296 Mon Sep 17 00:00:00 2001 From: Alexey Guseynov Date: Thu, 16 Oct 2025 03:41:02 -0700 Subject: [PATCH 116/303] fix: Internal change PiperOrigin-RevId: 820159440 --- src/google/adk/agents/base_agent.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/google/adk/agents/base_agent.py b/src/google/adk/agents/base_agent.py index 9f473de81f..88cd05f275 100644 --- a/src/google/adk/agents/base_agent.py +++ b/src/google/adk/agents/base_agent.py @@ -286,7 +286,7 @@ async def _run_with_trace() -> AsyncGenerator[Event, None]: with tracer.start_as_current_span(f'invoke_agent {self.name}') as span: ctx = self._create_invocation_context(parent_context) tracing.trace_agent_invocation(span, self, ctx) - if event := await self.__handle_before_agent_callback(ctx): + if event := await self._handle_before_agent_callback(ctx): yield event if ctx.end_invocation: return @@ -298,7 +298,7 @@ async def _run_with_trace() -> AsyncGenerator[Event, None]: if ctx.end_invocation: return - if event := await self.__handle_after_agent_callback(ctx): + if event := await self._handle_after_agent_callback(ctx): yield event async with Aclosing(_run_with_trace()) as agen: @@ -324,7 +324,7 @@ async def _run_with_trace() -> AsyncGenerator[Event, None]: with tracer.start_as_current_span(f'invoke_agent {self.name}') as span: ctx = self._create_invocation_context(parent_context) tracing.trace_agent_invocation(span, self, ctx) - if event := await self.__handle_before_agent_callback(ctx): + if event := await self._handle_before_agent_callback(ctx): yield event if ctx.end_invocation: return @@ -333,7 +333,7 @@ async def _run_with_trace() -> AsyncGenerator[Event, None]: async for event in agen: yield event - if event := await self.__handle_after_agent_callback(ctx): + if event := await self._handle_after_agent_callback(ctx): yield event async with Aclosing(_run_with_trace()) as agen: @@ -438,7 +438,7 @@ def canonical_after_agent_callbacks(self) -> list[_SingleAgentCallback]: return self.after_agent_callback return [self.after_agent_callback] - async def __handle_before_agent_callback( + async def _handle_before_agent_callback( self, ctx: InvocationContext ) -> Optional[Event]: """Runs the before_agent_callback if it exists. @@ -496,7 +496,7 @@ async def __handle_before_agent_callback( return None - async def __handle_after_agent_callback( + async def _handle_after_agent_callback( self, invocation_context: InvocationContext ) -> Optional[Event]: """Runs the after_agent_callback if it exists. From 5a543c00df2f7a66018df8a67efcf4ce44d4e0e4 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Thu, 16 Oct 2025 11:26:12 -0700 Subject: [PATCH 117/303] feat: implement new methods in in-memory artifact service * save_artifact with custom_metadata * list_artifact_versions * get_artifact_version PiperOrigin-RevId: 820321444 --- .../artifacts/in_memory_artifact_service.py | 70 +++++-- .../artifacts/test_artifact_service.py | 183 ++++++++++++++++++ tests/unittests/tools/test_agent_tool.py | 24 ++- 3 files changed, 259 insertions(+), 18 deletions(-) diff --git a/src/google/adk/artifacts/in_memory_artifact_service.py b/src/google/adk/artifacts/in_memory_artifact_service.py index ab556f2b7e..f7b07d35cc 100644 --- a/src/google/adk/artifacts/in_memory_artifact_service.py +++ b/src/google/adk/artifacts/in_memory_artifact_service.py @@ -13,6 +13,7 @@ # limitations under the License. from __future__ import annotations +import dataclasses import logging from typing import Any from typing import Optional @@ -28,6 +29,19 @@ logger = logging.getLogger("google_adk." + __name__) +@dataclasses.dataclass +class _ArtifactEntry: + """Represents a single version of an artifact stored in memory. + + Attributes: + data: The actual data of the artifact. + artifact_version: Metadata about this specific version of the artifact. + """ + + data: types.Part + artifact_version: ArtifactVersion + + class InMemoryArtifactService(BaseArtifactService, BaseModel): """An in-memory implementation of the artifact service. @@ -35,7 +49,7 @@ class InMemoryArtifactService(BaseArtifactService, BaseModel): testing and development only. """ - artifacts: dict[str, list[types.Part]] = Field(default_factory=dict) + artifacts: dict[str, list[_ArtifactEntry]] = Field(default_factory=dict) def _file_has_user_namespace(self, filename: str) -> bool: """Checks if the filename has a user namespace. @@ -87,15 +101,34 @@ async def save_artifact( session_id: Optional[str] = None, custom_metadata: Optional[dict[str, Any]] = None, ) -> int: - # TODO: b/447451270 - Support saving artifact with custom metadata. - if custom_metadata: - raise NotImplementedError("custom_metadata is not supported yet.") - path = self._artifact_path(app_name, user_id, filename, session_id) if path not in self.artifacts: self.artifacts[path] = [] version = len(self.artifacts[path]) - self.artifacts[path].append(artifact) + if self._file_has_user_namespace(filename): + canonical_uri = f"memory://apps/{app_name}/users/{user_id}/artifacts/{filename}/versions/{version}" + else: + canonical_uri = f"memory://apps/{app_name}/users/{user_id}/sessions/{session_id}/artifacts/{filename}/versions/{version}" + + artifact_version = ArtifactVersion( + version=version, + canonical_uri=canonical_uri, + ) + if custom_metadata: + artifact_version.custom_metadata = custom_metadata + + if artifact.inline_data is not None: + artifact_version.mime_type = artifact.inline_data.mime_type + elif artifact.text is not None: + artifact_version.mime_type = "text/plain" + elif artifact.file_data is not None: + artifact_version.mime_type = artifact.file_data.mime_type + else: + raise ValueError("Not supported artifact type.") + + self.artifacts[path].append( + _ArtifactEntry(data=artifact, artifact_version=artifact_version) + ) return version @override @@ -114,7 +147,10 @@ async def load_artifact( return None if version is None: version = -1 - return versions[version] + try: + return versions[version].data + except IndexError: + return None @override async def list_artifact_keys( @@ -172,8 +208,11 @@ async def list_artifact_versions( filename: str, session_id: Optional[str] = None, ) -> list[ArtifactVersion]: - # TODO: b/447451270 - Support list_artifact_versions. - raise NotImplementedError("list_artifact_versions is not implemented yet.") + path = self._artifact_path(app_name, user_id, filename, session_id) + entries = self.artifacts.get(path) + if not entries: + return [] + return [entry.artifact_version for entry in entries] @override async def get_artifact_version( @@ -185,5 +224,14 @@ async def get_artifact_version( session_id: Optional[str] = None, version: Optional[int] = None, ) -> Optional[ArtifactVersion]: - # TODO: b/447451270 - Support get_artifact_version. - raise NotImplementedError("get_artifact_version is not implemented yet.") + path = self._artifact_path(app_name, user_id, filename, session_id) + entries = self.artifacts.get(path) + if not entries: + return None + + if version is None: + version = -1 + try: + return entries[version].artifact_version + except IndexError: + return None diff --git a/tests/unittests/artifacts/test_artifact_service.py b/tests/unittests/artifacts/test_artifact_service.py index f9065959d7..920aad6835 100644 --- a/tests/unittests/artifacts/test_artifact_service.py +++ b/tests/unittests/artifacts/test_artifact_service.py @@ -14,11 +14,14 @@ """Tests for the artifact service.""" +from datetime import datetime import enum from typing import Optional from typing import Union from unittest import mock +from unittest.mock import patch +from google.adk.artifacts.base_artifact_service import ArtifactVersion from google.adk.artifacts.gcs_artifact_service import GcsArtifactService from google.adk.artifacts.in_memory_artifact_service import InMemoryArtifactService from google.genai import types @@ -26,6 +29,9 @@ Enum = enum.Enum +# Define a fixed datetime object to be returned by datetime.now() +FIXED_DATETIME = datetime(2025, 1, 1, 12, 0, 0) + class ArtifactServiceType(Enum): IN_MEMORY = "IN_MEMORY" @@ -195,6 +201,15 @@ async def test_save_load_delete(service_type): == artifact ) + # Attempt to load a version that doesn't exist + assert not await artifact_service.load_artifact( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + version=3, + ) + await artifact_service.delete_artifact( app_name=app_name, user_id=user_id, @@ -322,3 +337,171 @@ async def test_list_keys_preserves_user_prefix(): # Should contain prefixed names and session file expected_keys = ["user:document.pdf", "user:image.png", "session_file.txt"] assert sorted(artifact_keys) == sorted(expected_keys) + + +@pytest.mark.asyncio +async def test_list_artifact_versions_and_get_artifact_version(): + """Tests listing artifact versions and getting a specific version.""" + artifact_service = InMemoryArtifactService() + app_name = "app0" + user_id = "user0" + session_id = "123" + filename = "filename" + versions = [ + types.Part.from_bytes( + data=i.to_bytes(2, byteorder="big"), mime_type="text/plain" + ) + for i in range(4) + ] + + with patch( + "google.adk.artifacts.base_artifact_service.datetime" + ) as mock_datetime: + mock_datetime.now.return_value = FIXED_DATETIME + + for i in range(4): + await artifact_service.save_artifact( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + artifact=versions[i], + custom_metadata={"key": "value" + str(i)}, + ) + + artifact_versions = await artifact_service.list_artifact_versions( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + ) + + expected_artifact_versions = [ + ArtifactVersion( + version=i, + canonical_uri=( + f"memory://apps/{app_name}/users/{user_id}/sessions/{session_id}/artifacts/{filename}/versions/{i}" + ), + custom_metadata={"key": "value" + str(i)}, + mime_type="text/plain", + create_time=FIXED_DATETIME.timestamp(), + ) + for i in range(4) + ] + assert artifact_versions == expected_artifact_versions + + # Get latest artifact version when version is not specified + assert ( + await artifact_service.get_artifact_version( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + ) + == expected_artifact_versions[-1] + ) + + # Get artifact version by version number + assert ( + await artifact_service.get_artifact_version( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + version=2, + ) + == expected_artifact_versions[2] + ) + + +@pytest.mark.asyncio +async def test_list_artifact_versions_with_user_prefix(): + """Tests listing artifact versions with user prefix.""" + artifact_service = InMemoryArtifactService() + app_name = "app0" + user_id = "user0" + session_id = "123" + user_scoped_filename = "user:document.pdf" + versions = [ + types.Part.from_bytes( + data=i.to_bytes(2, byteorder="big"), mime_type="text/plain" + ) + for i in range(4) + ] + + with patch( + "google.adk.artifacts.base_artifact_service.datetime" + ) as mock_datetime: + mock_datetime.now.return_value = FIXED_DATETIME + + for i in range(4): + # Save artifacts with "user:" prefix (cross-session artifacts) + await artifact_service.save_artifact( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=user_scoped_filename, + artifact=versions[i], + custom_metadata={"key": "value" + str(i)}, + ) + + artifact_versions = await artifact_service.list_artifact_versions( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=user_scoped_filename, + ) + + expected_artifact_versions = [ + ArtifactVersion( + version=i, + canonical_uri=( + f"memory://apps/{app_name}/users/{user_id}/artifacts/{user_scoped_filename}/versions/{i}" + ), + custom_metadata={"key": "value" + str(i)}, + mime_type="text/plain", + create_time=FIXED_DATETIME.timestamp(), + ) + for i in range(4) + ] + assert artifact_versions == expected_artifact_versions + + +@pytest.mark.asyncio +async def test_get_artifact_version_artifact_does_not_exist(): + """Tests getting an artifact version when artifact does not exist.""" + artifact_service = InMemoryArtifactService() + assert not await artifact_service.get_artifact_version( + app_name="test_app", + user_id="test_user", + session_id="session_id", + filename="filename", + ) + + +@pytest.mark.asyncio +async def test_get_artifact_version_out_of_index(): + """Tests loading an artifact with an out-of-index version.""" + artifact_service = InMemoryArtifactService() + app_name = "app0" + user_id = "user0" + session_id = "123" + filename = "filename" + artifact = types.Part.from_bytes(data=b"test_data", mime_type="text/plain") + + await artifact_service.save_artifact( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + artifact=artifact, + ) + + # Attempt to get a version that doesn't exist + assert not await artifact_service.get_artifact_version( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + version=3, + ) diff --git a/tests/unittests/tools/test_agent_tool.py b/tests/unittests/tools/test_agent_tool.py index 0b47696652..1743a30f99 100644 --- a/tests/unittests/tools/test_agent_tool.py +++ b/tests/unittests/tools/test_agent_tool.py @@ -178,7 +178,8 @@ def test_update_state(): assert runner.session.state['state_1'] == 'changed_value' -def test_update_artifacts(): +@mark.asyncio +async def test_update_artifacts(): """The agent tool can read and write artifacts.""" async def before_tool_agent(callback_context: CallbackContext): @@ -219,12 +220,21 @@ async def after_main_agent(callback_context: CallbackContext): runner = testing_utils.InMemoryRunner(root_agent) runner.run('test1') - artifacts_path = f'test_app/test_user/{runner.session_id}' - assert runner.runner.artifact_service.artifacts == { - f'{artifacts_path}/artifact_1': [Part.from_text(text='test')], - f'{artifacts_path}/artifact_2': [Part.from_text(text='test 2')], - f'{artifacts_path}/artifact_3': [Part.from_text(text='test 2 3')], - } + async def load_artifact(filename: str): + return await runner.runner.artifact_service.load_artifact( + app_name='test_app', + user_id='test_user', + session_id=runner.session_id, + filename=filename, + ) + + assert await runner.runner.artifact_service.list_artifact_keys( + app_name='test_app', user_id='test_user', session_id=runner.session_id + ) == ['artifact_1', 'artifact_2', 'artifact_3'] + + assert await load_artifact('artifact_1') == Part.from_text(text='test') + assert await load_artifact('artifact_2') == Part.from_text(text='test 2') + assert await load_artifact('artifact_3') == Part.from_text(text='test 2 3') @mark.parametrize( From 9dc00360e3b7b06383b5ad4c0284e80efa00763e Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Thu, 16 Oct 2025 12:08:33 -0700 Subject: [PATCH 118/303] ci: Add `state` info for PR triaging agent PiperOrigin-RevId: 820340584 --- contributing/samples/adk_pr_triaging_agent/agent.py | 2 ++ contributing/samples/adk_pr_triaging_agent/main.py | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/contributing/samples/adk_pr_triaging_agent/agent.py b/contributing/samples/adk_pr_triaging_agent/agent.py index e7718e5041..c5fe0e0c0c 100644 --- a/contributing/samples/adk_pr_triaging_agent/agent.py +++ b/contributing/samples/adk_pr_triaging_agent/agent.py @@ -69,8 +69,10 @@ def get_pull_request_details(pr_number: int) -> str: repository(owner: $owner, name: $repo) { pullRequest(number: $prNumber) { id + number title body + state author { login } diff --git a/contributing/samples/adk_pr_triaging_agent/main.py b/contributing/samples/adk_pr_triaging_agent/main.py index da67fa1647..04971c02e8 100644 --- a/contributing/samples/adk_pr_triaging_agent/main.py +++ b/contributing/samples/adk_pr_triaging_agent/main.py @@ -13,6 +13,7 @@ # limitations under the License. import asyncio +import logging import time from adk_pr_triaging_agent import agent @@ -22,10 +23,13 @@ from adk_pr_triaging_agent.utils import call_agent_async from adk_pr_triaging_agent.utils import parse_number_string from google.adk.runners import InMemoryRunner +from google.adk.utils import logs APP_NAME = "adk_pr_triaging_app" USER_ID = "adk_pr_triaging_user" +logs.setup_adk_logger(level=logging.DEBUG) + async def main(): runner = InMemoryRunner( From e50f05a9fc94834796876f7f112f344f788f202e Mon Sep 17 00:00:00 2001 From: Kacper Jawoszek Date: Thu, 16 Oct 2025 12:32:37 -0700 Subject: [PATCH 119/303] feat(otel): env variable for disabling llm_request and llm_response in spans The default without the variable set is to keep the content in spans to keep backward compatible behavior for existing users. This allows to enable tracing without potential PII data from request and response. Google GenAI instrumentation lib requires an explicit opt-in to enable request and response content - see https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation-genai/opentelemetry-instrumentation-google-genai#enabling-message-content. PiperOrigin-RevId: 820351154 --- src/google/adk/telemetry/tracing.py | 91 ++++++++++----- tests/unittests/telemetry/test_spans.py | 146 ++++++++++++++++++++++++ 2 files changed, 208 insertions(+), 29 deletions(-) diff --git a/src/google/adk/telemetry/tracing.py b/src/google/adk/telemetry/tracing.py index 12fbca1d1a..cc0a2a232e 100644 --- a/src/google/adk/telemetry/tracing.py +++ b/src/google/adk/telemetry/tracing.py @@ -24,6 +24,7 @@ from __future__ import annotations import json +import os from typing import Any from typing import TYPE_CHECKING @@ -33,6 +34,9 @@ from .. import version from ..events.event import Event +# By default some ADK spans include attributes with potential PII data. +# This env, when set to false, allows to disable populating those attributes. +ADK_CAPTURE_MESSAGE_CONTENT_IN_SPANS = 'ADK_CAPTURE_MESSAGE_CONTENT_IN_SPANS' # TODO: Replace with constant from opentelemetry.semconv when it reaches version 1.37 in g3. GEN_AI_AGENT_DESCRIPTION = 'gen_ai.agent.description' GEN_AI_AGENT_NAME = 'gen_ai.agent.name' @@ -138,10 +142,13 @@ def trace_tool_call( span.set_attribute('gcp.vertex.agent.llm_request', '{}') span.set_attribute('gcp.vertex.agent.llm_response', '{}') - span.set_attribute( - 'gcp.vertex.agent.tool_call_args', - _safe_json_serialize(args), - ) + if _should_add_request_response_to_spans(): + span.set_attribute( + 'gcp.vertex.agent.tool_call_args', + _safe_json_serialize(args), + ) + else: + span.set_attribute('gcp.vertex.agent.tool_call_args', {}) # Tracing tool response tool_call_id = '' @@ -163,10 +170,13 @@ def trace_tool_call( if not isinstance(tool_response, dict): tool_response = {'result': tool_response} span.set_attribute('gcp.vertex.agent.event_id', function_response_event.id) - span.set_attribute( - 'gcp.vertex.agent.tool_response', - _safe_json_serialize(tool_response), - ) + if _should_add_request_response_to_spans(): + span.set_attribute( + 'gcp.vertex.agent.tool_response', + _safe_json_serialize(tool_response), + ) + else: + span.set_attribute('gcp.vertex.agent.tool_response', {}) def trace_merged_tool_calls( @@ -200,10 +210,13 @@ def trace_merged_tool_calls( except Exception: # pylint: disable=broad-exception-caught function_response_event_json = '' - span.set_attribute( - 'gcp.vertex.agent.tool_response', - function_response_event_json, - ) + if _should_add_request_response_to_spans(): + span.set_attribute( + 'gcp.vertex.agent.tool_response', + function_response_event_json, + ) + else: + span.set_attribute('gcp.vertex.agent.tool_response', {}) # Setting empty llm request and response (as UI expect these) while not # applicable for tool_response. span.set_attribute('gcp.vertex.agent.llm_request', '{}') @@ -243,10 +256,13 @@ def trace_call_llm( ) span.set_attribute('gcp.vertex.agent.event_id', event_id) # Consider removing once GenAI SDK provides a way to record this info. - span.set_attribute( - 'gcp.vertex.agent.llm_request', - _safe_json_serialize(_build_llm_request_for_trace(llm_request)), - ) + if _should_add_request_response_to_spans(): + span.set_attribute( + 'gcp.vertex.agent.llm_request', + _safe_json_serialize(_build_llm_request_for_trace(llm_request)), + ) + else: + span.set_attribute('gcp.vertex.agent.llm_request', {}) # Consider removing once GenAI SDK provides a way to record this info. if llm_request.config: if llm_request.config.top_p: @@ -265,10 +281,13 @@ def trace_call_llm( except Exception: # pylint: disable=broad-exception-caught llm_response_json = '' - span.set_attribute( - 'gcp.vertex.agent.llm_response', - llm_response_json, - ) + if _should_add_request_response_to_spans(): + span.set_attribute( + 'gcp.vertex.agent.llm_response', + llm_response_json, + ) + else: + span.set_attribute('gcp.vertex.agent.llm_response', {}) if llm_response.usage_metadata is not None: span.set_attribute( @@ -309,15 +328,18 @@ def trace_send_data( span.set_attribute('gcp.vertex.agent.event_id', event_id) # Once instrumentation is added to the GenAI SDK, consider whether this # information still needs to be recorded by the Agent Development Kit. - span.set_attribute( - 'gcp.vertex.agent.data', - _safe_json_serialize([ - types.Content(role=content.role, parts=content.parts).model_dump( - exclude_none=True - ) - for content in data - ]), - ) + if _should_add_request_response_to_spans(): + span.set_attribute( + 'gcp.vertex.agent.data', + _safe_json_serialize([ + types.Content(role=content.role, parts=content.parts).model_dump( + exclude_none=True + ) + for content in data + ]), + ) + else: + span.set_attribute('gcp.vertex.agent.data', {}) def _build_llm_request_for_trace(llm_request: LlmRequest) -> dict[str, Any]: @@ -350,3 +372,14 @@ def _build_llm_request_for_trace(llm_request: LlmRequest) -> dict[str, Any]: ) ) return result + + +# Defaults to true for now to preserve backward compatibility. +# Once prompt and response logging is well established in ADK, we might start +# a deprecation of request/response content in spans by switching the default +# to false. +def _should_add_request_response_to_spans() -> bool: + disabled_via_env_var = os.getenv( + ADK_CAPTURE_MESSAGE_CONTENT_IN_SPANS, 'true' + ).lower() in ('false', '0') + return not disabled_via_env_var diff --git a/tests/unittests/telemetry/test_spans.py b/tests/unittests/telemetry/test_spans.py index cfd2b745cc..38a8358f59 100644 --- a/tests/unittests/telemetry/test_spans.py +++ b/tests/unittests/telemetry/test_spans.py @@ -13,6 +13,7 @@ # limitations under the License. import json +import os from typing import Any from typing import Dict from typing import Optional @@ -23,6 +24,7 @@ from google.adk.models.llm_request import LlmRequest from google.adk.models.llm_response import LlmResponse from google.adk.sessions.in_memory_session_service import InMemorySessionService +from google.adk.telemetry.tracing import ADK_CAPTURE_MESSAGE_CONTENT_IN_SPANS from google.adk.telemetry.tracing import trace_agent_invocation from google.adk.telemetry.tracing import trace_call_llm from google.adk.telemetry.tracing import trace_merged_tool_calls @@ -371,3 +373,147 @@ def test_trace_merged_tool_calls_sets_correct_attributes( expected_calls, any_order=True ) mock_event_fixture.model_dumps_json.assert_called_once_with(exclude_none=True) + + +@pytest.mark.asyncio +async def test_call_llm_disabling_request_response_content( + monkeypatch, mock_span_fixture +): + """Test trace_call_llm doesn't set request and response attributes if env is set to false""" + # Arrange + monkeypatch.setenv(ADK_CAPTURE_MESSAGE_CONTENT_IN_SPANS, 'false') + monkeypatch.setattr( + 'opentelemetry.trace.get_current_span', lambda: mock_span_fixture + ) + + agent = LlmAgent(name='test_agent') + invocation_context = await _create_invocation_context(agent) + llm_request = LlmRequest( + model='gemini-pro', + contents=[ + types.Content( + role='user', + parts=[types.Part(text='Hello, how are you?')], + ), + ], + ) + llm_response = LlmResponse( + turn_complete=True, + finish_reason=types.FinishReason.STOP, + ) + + # Act + trace_call_llm(invocation_context, 'test_event_id', llm_request, llm_response) + + # Assert + assert not any( + call_obj.args[0] == 'gcp.vertex.agent.llm_request' + and call_obj.args[1] != {} + for call_obj in mock_span_fixture.set_attribute.call_args_list + ), "Attribute 'gcp.vertex.agent.llm_request' was incorrectly set on the span." + + assert not any( + call_obj.args[0] == 'gcp.vertex.agent.llm_response' + and call_obj.args[1] != {} + for call_obj in mock_span_fixture.set_attribute.call_args_list + ), ( + "Attribute 'gcp.vertex.agent.llm_response' was incorrectly set on the" + ' span.' + ) + + +def test_trace_tool_call_disabling_request_response_content( + monkeypatch, + mock_span_fixture, + mock_tool_fixture, + mock_event_fixture, +): + """Test trace_tool_call doesn't set request and response attributes if env is set to false""" + # Arrange + monkeypatch.setenv(ADK_CAPTURE_MESSAGE_CONTENT_IN_SPANS, 'false') + monkeypatch.setattr( + 'opentelemetry.trace.get_current_span', lambda: mock_span_fixture + ) + + test_args: Dict[str, Any] = {'query': 'details', 'id_list': [1, 2, 3]} + test_tool_call_id: str = 'tool_call_id_002' + test_event_id: str = 'event_id_dict_002' + dict_function_response: Dict[str, Any] = { + 'data': 'structured_data', + 'count': 5, + } + + mock_event_fixture.id = test_event_id + mock_event_fixture.content = types.Content( + role='user', + parts=[ + types.Part( + function_response=types.FunctionResponse( + id=test_tool_call_id, + name='test_function_1', + response=dict_function_response, + ) + ), + ], + ) + + # Act + trace_tool_call( + tool=mock_tool_fixture, + args=test_args, + function_response_event=mock_event_fixture, + ) + + # Assert + assert not any( + call_obj.args[0] == 'gcp.vertex.agent.tool_call_args' + and call_obj.args[1] != {} + for call_obj in mock_span_fixture.set_attribute.call_args_list + ), ( + "Attribute 'gcp.vertex.agent.tool_call_args' was incorrectly set on the" + ' span.' + ) + + assert not any( + call_obj.args[0] == 'gcp.vertex.agent.tool_response' + and call_obj.args[1] != {} + for call_obj in mock_span_fixture.set_attribute.call_args_list + ), ( + "Attribute 'gcp.vertex.agent.tool_response' was incorrectly set on the" + ' span.' + ) + + +def test_trace_merged_tool_disabling_request_response_content( + monkeypatch, + mock_span_fixture, + mock_event_fixture, +): + """Test trace_merged_tool doesn't set request and response attributes if env is set to false""" + # Arrange + monkeypatch.setenv(ADK_CAPTURE_MESSAGE_CONTENT_IN_SPANS, 'false') + monkeypatch.setattr( + 'opentelemetry.trace.get_current_span', lambda: mock_span_fixture + ) + + test_response_event_id = 'merged_evt_id_001' + custom_event_json_output = ( + '{"custom_event_payload": true, "details": "merged_details"}' + ) + mock_event_fixture.model_dumps_json.return_value = custom_event_json_output + + # Act + trace_merged_tool_calls( + response_event_id=test_response_event_id, + function_response_event=mock_event_fixture, + ) + + # Assert + assert not any( + call_obj.args[0] == 'gcp.vertex.agent.tool_response' + and call_obj.args[1] != {} + for call_obj in mock_span_fixture.set_attribute.call_args_list + ), ( + "Attribute 'gcp.vertex.agent.tool_response' was incorrectly set on the" + ' span.' + ) From e6e2767c3901a14187f5527540f318317dd6c8e3 Mon Sep 17 00:00:00 2001 From: Doug Gebert <42218599+DHHHG@users.noreply.github.com> Date: Thu, 16 Oct 2025 13:23:19 -0700 Subject: [PATCH 120/303] chore: Update gemini_llm_connection.py - typo spelling correction Merge https://github.com/google/adk-python/pull/3168 Fixed misspelling on line 228 from: - logger.info('Redeived session... To: - logger.info('Received session... COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3168 from DHHHG:patch-1 90b76d72ba474cd0092b2cc8d955b918c18d05bd PiperOrigin-RevId: 820369618 --- src/google/adk/models/gemini_llm_connection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/google/adk/models/gemini_llm_connection.py b/src/google/adk/models/gemini_llm_connection.py index 509128b060..f1470c0a29 100644 --- a/src/google/adk/models/gemini_llm_connection.py +++ b/src/google/adk/models/gemini_llm_connection.py @@ -205,7 +205,7 @@ async def receive(self) -> AsyncGenerator[LlmResponse, None]: ] yield LlmResponse(content=types.Content(role='model', parts=parts)) if message.session_resumption_update: - logger.info('Redeived session reassumption message: %s', message) + logger.info('Received session resumption message: %s', message) yield ( LlmResponse( live_session_resumption_update=message.session_resumption_update From ce4638651f376fb6579993d8468ae57198134729 Mon Sep 17 00:00:00 2001 From: Giovanni Galloro Date: Thu, 16 Oct 2025 13:53:03 -0700 Subject: [PATCH 121/303] docs: Bump models in llms and llms-full to Gemini 2.5 Merge https://github.com/google/adk-python/pull/3166 COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3166 from ggalloro:model-updates e741c8b266ef8cd7def203f94e8d9f8608c06685 PiperOrigin-RevId: 820381464 --- llms-full.txt | 202 +++++++++++++++++++++++++------------------------- llms.txt | 8 +- 2 files changed, 105 insertions(+), 105 deletions(-) diff --git a/llms-full.txt b/llms-full.txt index a053d5d778..35ffd56dab 100644 --- a/llms-full.txt +++ b/llms-full.txt @@ -92,7 +92,7 @@ from google.adk.tools import google_search root_agent = Agent( name="search_assistant", - model="gemini-2.0-flash", # Or your preferred Gemini model + model="gemini-2.5-flash", # Or your preferred Gemini model instruction="You are a helpful assistant. Answer user questions using Google Search when needed.", description="An assistant that can search the web.", tools=[google_search] @@ -107,13 +107,13 @@ Define a multi-agent system with coordinator agent, greeter agent, and task exec from google.adk.agents import LlmAgent, BaseAgent # Define individual agents -greeter = LlmAgent(name="greeter", model="gemini-2.0-flash", ...) -task_executor = LlmAgent(name="task_executor", model="gemini-2.0-flash", ...) +greeter = LlmAgent(name="greeter", model="gemini-2.5-flash", ...) +task_executor = LlmAgent(name="task_executor", model="gemini-2.5-flash", ...) # Create parent agent and assign children via sub_agents coordinator = LlmAgent( name="Coordinator", - model="gemini-2.0-flash", + model="gemini-2.5-flash", description="I coordinate greetings and tasks.", sub_agents=[ # Assign sub_agents here greeter, @@ -432,7 +432,7 @@ These are standard `LlmAgent` definitions, responsible for specific tasks. Their === "Python" ```python - GEMINI_2_FLASH = "gemini-2.0-flash" # Define model constant + GEMINI_2_FLASH = "gemini-2.5-flash" # Define model constant # --- Define the individual LLM agents --- story_generator = LlmAgent( name="StoryGenerator", @@ -597,7 +597,7 @@ Finally, you instantiate your `StoryFlowAgent` and use the `Runner` as usual. APP_NAME = "story_app" USER_ID = "12345" SESSION_ID = "123344" - GEMINI_2_FLASH = "gemini-2.0-flash" + GEMINI_2_FLASH = "gemini-2.5-flash" # --- Configure Logging --- logging.basicConfig(level=logging.INFO) @@ -951,7 +951,7 @@ First, you need to establish what the agent *is* and what it's *for*. inquiries about current billing statements," not just "Billing agent"). * **`model` (Required):** Specify the underlying LLM that will power this - agent's reasoning. This is a string identifier like `"gemini-2.0-flash"`. The + agent's reasoning. This is a string identifier like `"gemini-2.5-flash"`. The choice of model impacts the agent's capabilities, cost, and performance. See the [Models](models.md) page for available options and considerations. @@ -960,7 +960,7 @@ First, you need to establish what the agent *is* and what it's *for*. ```python # Example: Defining the basic identity capital_agent = LlmAgent( - model="gemini-2.0-flash", + model="gemini-2.5-flash", name="capital_agent", description="Answers user questions about the capital city of a given country." # instruction and tools will be added next @@ -1003,7 +1003,7 @@ tells the agent: ```python # Example: Adding instructions capital_agent = LlmAgent( - model="gemini-2.0-flash", + model="gemini-2.5-flash", name="capital_agent", description="Answers user questions about the capital city of a given country.", instruction="""You are an agent that provides the capital city of a country. @@ -1053,7 +1053,7 @@ on the conversation and its instructions. # Add the tool to the agent capital_agent = LlmAgent( - model="gemini-2.0-flash", + model="gemini-2.5-flash", name="capital_agent", description="Answers user questions about the capital city of a given country.", instruction="""You are an agent that provides the capital city of a country... (previous instruction text)""", @@ -1185,7 +1185,7 @@ For more complex reasoning involving multiple steps or executing code: USER_ID = "test_user_456" SESSION_ID_TOOL_AGENT = "session_tool_agent_xyz" SESSION_ID_SCHEMA_AGENT = "session_schema_agent_xyz" - MODEL_NAME = "gemini-2.0-flash" + MODEL_NAME = "gemini-2.5-flash" # --- 2. Define Schemas --- @@ -1441,7 +1441,7 @@ export GOOGLE_GENAI_USE_VERTEXAI=FALSE # --- Example using a stable Gemini Flash model --- agent_gemini_flash = LlmAgent( # Use the latest stable Flash model identifier - model="gemini-2.0-flash", + model="gemini-2.5-flash", name="gemini_flash_agent", instruction="You are a fast and helpful Gemini assistant.", # ... other agent parameters @@ -1453,7 +1453,7 @@ export GOOGLE_GENAI_USE_VERTEXAI=FALSE # different availability or quota limitations. agent_gemini_pro = LlmAgent( # Use the latest generally available Pro model identifier - model="gemini-2.5-pro-preview-03-25", + model="gemini-2.5-pro", name="gemini_pro_agent", instruction="You are a powerful and knowledgeable Gemini assistant.", # ... other agent parameters @@ -2009,13 +2009,13 @@ The foundation for structuring multi-agent systems is the parent-child relations from google.adk.agents import LlmAgent, BaseAgent # Define individual agents - greeter = LlmAgent(name="Greeter", model="gemini-2.0-flash") + greeter = LlmAgent(name="Greeter", model="gemini-2.5-flash") task_doer = BaseAgent(name="TaskExecutor") # Custom non-LLM agent # Create parent agent and assign children via sub_agents coordinator = LlmAgent( name="Coordinator", - model="gemini-2.0-flash", + model="gemini-2.5-flash", description="I coordinate greetings and tasks.", sub_agents=[ # Assign sub_agents here greeter, @@ -2163,7 +2163,7 @@ Leverages an [`LlmAgent`](llm-agents.md)'s understanding to dynamically route ta coordinator = LlmAgent( name="Coordinator", - model="gemini-2.0-flash", + model="gemini-2.5-flash", instruction="You are an assistant. Delegate booking tasks to Booker and info requests to Info.", description="Main coordinator.", # AutoFlow is typically used implicitly here @@ -2212,7 +2212,7 @@ Allows an [`LlmAgent`](llm-agents.md) to treat another `BaseAgent` instance as a # Parent agent uses the AgentTool artist_agent = LlmAgent( name="Artist", - model="gemini-2.0-flash", + model="gemini-2.5-flash", instruction="Create a prompt and use the ImageGen tool to generate the image.", tools=[image_tool] # Include the AgentTool ) @@ -2251,7 +2251,7 @@ By combining ADK's composition primitives, you can implement various established coordinator = LlmAgent( name="HelpDeskCoordinator", - model="gemini-2.0-flash", + model="gemini-2.5-flash", instruction="Route user requests: Use Billing agent for payment issues, Support agent for technical problems.", description="Main help desk router.", # allow_transfer=True is often implicit with sub_agents in AutoFlow @@ -2357,7 +2357,7 @@ By combining ADK's composition primitives, you can implement various established # Mid-level agent combining tools research_assistant = LlmAgent( name="ResearchAssistant", - model="gemini-2.0-flash", + model="gemini-2.5-flash", description="Finds and summarizes information on a topic.", tools=[agent_tool.AgentTool(agent=web_searcher), agent_tool.AgentTool(agent=summarizer)] ) @@ -2365,7 +2365,7 @@ By combining ADK's composition primitives, you can implement various established # High-level agent delegating research report_writer = LlmAgent( name="ReportWriter", - model="gemini-2.0-flash", + model="gemini-2.5-flash", instruction="Write a report on topic X. Use the ResearchAssistant to gather information.", tools=[agent_tool.AgentTool(agent=research_assistant)] # Alternatively, could use LLM Transfer if research_assistant is a sub_agent @@ -2641,7 +2641,7 @@ In this setup, the `LoopAgent` would manage the iterative process. The `CriticA APP_NAME = "doc_writing_app_v3" # New App Name USER_ID = "dev_user_01" SESSION_ID_BASE = "loop_exit_tool_session" # New Base Session ID - GEMINI_MODEL = "gemini-2.0-flash" + GEMINI_MODEL = "gemini-2.5-flash" STATE_INITIAL_TOPIC = "initial_topic" # --- State Keys --- STATE_CURRENT_DOC = "current_document" @@ -3171,7 +3171,7 @@ Understanding artifacts involves grasping a few key components: the service that from google.adk.sessions import InMemorySessionService # Example: Configuring the Runner with an Artifact Service - my_agent = LlmAgent(name="artifact_user_agent", model="gemini-2.0-flash") + my_agent = LlmAgent(name="artifact_user_agent", model="gemini-2.5-flash") artifact_service = InMemoryArtifactService() # Choose an implementation session_service = InMemorySessionService() @@ -3290,7 +3290,7 @@ Before you can use any artifact methods via the context objects, you **must** pr from google.adk.sessions import InMemorySessionService # Your agent definition - agent = LlmAgent(name="my_agent", model="gemini-2.0-flash") + agent = LlmAgent(name="my_agent", model="gemini-2.5-flash") # Instantiate the desired artifact service artifact_service = InMemoryArtifactService() @@ -3663,7 +3663,7 @@ Callbacks are a cornerstone feature of ADK, providing a powerful mechanism to ho # --- Register it during Agent creation --- my_agent = LlmAgent( name="MyCallbackAgent", - model="gemini-2.0-flash", # Or your desired model + model="gemini-2.5-flash", # Or your desired model instruction="Be helpful.", # Other agent parameters... before_model_callback=my_before_model_logic # Pass the function here @@ -3726,7 +3726,7 @@ from typing import Optional from google.genai import types from google.adk.sessions import InMemorySessionService -GEMINI_2_FLASH="gemini-2.0-flash" +GEMINI_2_FLASH="gemini-2.5-flash" # --- Define the Callback Function --- def simple_before_model_modifier( @@ -3839,7 +3839,7 @@ await call_agent_async("write a joke on BLOCK") from google.genai import types from google.adk.sessions import InMemorySessionService - GEMINI_2_FLASH="gemini-2.0-flash" + GEMINI_2_FLASH="gemini-2.5-flash" # --- Define the Callback Function --- def simple_before_model_modifier( @@ -3990,7 +3990,7 @@ These callbacks are available on *any* agent that inherits from `BaseAgent` (inc from typing import Optional # Define the model - Use the specific model name requested - GEMINI_2_FLASH="gemini-2.0-flash" + GEMINI_2_FLASH="gemini-2.5-flash" # --- 1. Define the Callback Function --- def check_if_agent_should_run(callback_context: CallbackContext) -> Optional[types.Content]: @@ -4157,7 +4157,7 @@ These callbacks are available on *any* agent that inherits from `BaseAgent` (inc from typing import Optional # Define the model - Use the specific model name requested - GEMINI_2_FLASH="gemini-2.0-flash" + GEMINI_2_FLASH="gemini-2.5-flash" # --- 1. Define the Callback Function --- def modify_output_after_agent(callback_context: CallbackContext) -> Optional[types.Content]: @@ -4319,7 +4319,7 @@ If the callback returns `None` (or a `Maybe.empty()` object in Java), the LLM co from google.genai import types from google.adk.sessions import InMemorySessionService - GEMINI_2_FLASH="gemini-2.0-flash" + GEMINI_2_FLASH="gemini-2.5-flash" # --- Define the Callback Function --- def simple_before_model_modifier( @@ -4449,7 +4449,7 @@ If the callback returns `None` (or a `Maybe.empty()` object in Java), the LLM co from google.adk.sessions import InMemorySessionService from google.adk.models import LlmResponse - GEMINI_2_FLASH="gemini-2.0-flash" + GEMINI_2_FLASH="gemini-2.5-flash" # --- Define the Callback Function --- def simple_after_model_modifier( @@ -4592,7 +4592,7 @@ These callbacks are also specific to `LlmAgent` and trigger around the execution from typing import Dict, Any - GEMINI_2_FLASH="gemini-2.0-flash" + GEMINI_2_FLASH="gemini-2.5-flash" def get_capital_city(country: str) -> str: """Retrieves the capital city of a given country.""" @@ -4712,7 +4712,7 @@ These callbacks are also specific to `LlmAgent` and trigger around the execution from typing import Dict, Any from copy import deepcopy - GEMINI_2_FLASH="gemini-2.0-flash" + GEMINI_2_FLASH="gemini-2.5-flash" # --- Define a Simple Tool Function (Same as before) --- def get_capital_city(country: str) -> str: @@ -5703,7 +5703,7 @@ def get_current_time(city: str) -> dict: root_agent = Agent( name="weather_time_agent", - model="gemini-2.0-flash", + model="gemini-2.5-flash", description=( "Agent to answer questions about the time and weather in a city." ), @@ -8214,7 +8214,7 @@ application entirely on your machine and is recommended for internal development root_agent = Agent( name="weather_time_agent", - model="gemini-2.0-flash", + model="gemini-2.5-flash", description=( "Agent to answer questions about the time and weather in a city." ), @@ -8387,7 +8387,7 @@ agent will be unable to function. ```py root_agent = Agent( name="weather_time_agent", - model="replace-me-with-model-id", #e.g. gemini-2.0-flash-live-001 + model="replace-me-with-model-id", #e.g. gemini-2.5-flash-live-001 ... ``` @@ -8628,7 +8628,7 @@ Create the **ScienceTeacherAgent.java** file under the `src/main/java/agents/` d !!!note "Troubleshooting" - The model `gemini-2.0-flash-exp` will be deprecated in the future. If you see any issues on using it, try using `gemini-2.0-flash-live-001` instead + The model `gemini-2.5-flash-exp` will be deprecated in the future. If you see any issues on using it, try using `gemini-2.5-flash-live-001` instead We will use `Dev UI` to run this agent later. For the tool to automatically recognize the agent, its Java class has to comply with the following two rules: @@ -8903,7 +8903,7 @@ root_agent = Agent( # The Large Language Model (LLM) that agent will use. # Please fill in the latest model id that supports live from # https://google.github.io/adk-docs/get-started/streaming/quickstart-streaming/#supported-models - model="...", # for example: model="gemini-2.0-flash-live-001" or model="gemini-2.0-flash-live-preview-04-09" + model="...", # for example: model="gemini-2.5-flash-live-001" or model="gemini-2.5-flash-live-preview-04-09" # A short description of the agent's purpose. description="Agent to answer questions using Google Search.", # Instructions to set the agent's behavior. @@ -9505,7 +9505,7 @@ def get_weather(city: str) -> dict: # Create an agent with tools agent = Agent( name="weather_agent", - model="gemini-2.0-flash-exp", + model="gemini-2.5-flash-exp", description="Agent to answer questions using weather tools.", instruction="You must use the available tools to find an answer.", tools=[get_weather] @@ -9640,7 +9640,7 @@ def get_weather(city: str) -> dict: # Create an agent with tools agent = Agent( name="weather_agent", - model="gemini-2.0-flash-exp", + model="gemini-2.5-flash-exp", description="Agent to answer questions using weather tools.", instruction="You must use the available tools to find an answer.", tools=[get_weather] @@ -10403,7 +10403,7 @@ When modifications to the tools to add guardrails aren't possible, the [**`Befor # Hypothetical Agent setup root_agent = LlmAgent( # Use specific agent type - model='gemini-2.0-flash', + model='gemini-2.5-flash', name='root_agent', instruction="...", before_tool_callback=validate_tool_params, # Assign the callback @@ -10650,7 +10650,7 @@ This example demonstrates the basic flow using the `InMemory` services for simpl # --- Constants --- APP_NAME = "memory_example_app" USER_ID = "mem_user" - MODEL = "gemini-2.0-flash" # Use a valid model + MODEL = "gemini-2.5-flash" # Use a valid model # --- Agent Definitions --- # Agent 1: Simple agent to capture information @@ -11031,7 +11031,7 @@ This is the simplest method for saving an agent's final text response directly i # Define agent with output_key greeting_agent = LlmAgent( name="Greeter", - model="gemini-2.0-flash", # Use a valid model + model="gemini-2.5-flash", # Use a valid model instruction="Generate a short, friendly greeting.", output_key="last_greeting" # Save response to state['last_greeting'] ) @@ -11339,15 +11339,15 @@ from google.adk.tools import google_search # Import the tool root_agent = Agent( name="google_search_agent", - model="gemini-2.0-flash-exp", # if this model does not work, try below - #model="gemini-2.0-flash-live-001", + model="gemini-2.5-flash-exp", # if this model does not work, try below + #model="gemini-2.5-flash-live-001", description="Agent to answer questions using Google Search.", instruction="Answer the question using the Google Search tool.", tools=[google_search], ) ``` -**Note:** To enable both text and audio/video input, the model must support the generateContent (for text) and bidiGenerateContent methods. Verify these capabilities by referring to the [List Models Documentation](https://ai.google.dev/api/models#method:-models.list). This quickstart utilizes the gemini-2.0-flash-exp model for demonstration purposes. +**Note:** To enable both text and audio/video input, the model must support the generateContent (for text) and bidiGenerateContent methods. Verify these capabilities by referring to the [List Models Documentation](https://ai.google.dev/api/models#method:-models.list). This quickstart utilizes the gemini-2.5-flash-exp model for demonstration purposes. Notice how easily you integrated [grounding with Google Search](https://ai.google.dev/gemini-api/docs/grounding?lang=python#configure-search) capabilities. The `Agent` class and the `google_search` tool handle the complex interactions with the LLM and grounding with the search API, allowing you to focus on the agent's *purpose* and *behavior*. @@ -11406,7 +11406,7 @@ These console logs are important in case you develop your own streaming applicat 6\. **Troubleshooting tips** - **When `ws://` doesn't work:** If you see any errors on the Chrome DevTools with regard to `ws://` connection, try replacing `ws://` with `wss://` on `app/static/js/app.js` at line 28. This may happen when you are running the sample on a cloud environment and using a proxy connection to connect from your browser. -- **When `gemini-2.0-flash-exp` model doesn't work:** If you see any errors on the app server console with regard to `gemini-2.0-flash-exp` model availability, try replacing it with `gemini-2.0-flash-live-001` on `app/google_search_agent/agent.py` at line 6. +- **When `gemini-2.5-flash-exp` model doesn't work:** If you see any errors on the app server console with regard to `gemini-2.5-flash-exp` model availability, try replacing it with `gemini-2.5-flash-live-001` on `app/google_search_agent/agent.py` at line 6. ## 4. Server code overview {#4.-server-side-code-overview} @@ -12092,7 +12092,7 @@ These console logs are important in case you develop your own streaming applicat 6\. **Troubleshooting tips** - **When your browser can't connect to the server via SSH proxy:** SSH proxy used in various cloud services may not work with SSE. Please try without SSH proxy, such as using a local laptop, or try the [WebSocket](custom-streaming-ws.md) version. -- **When `gemini-2.0-flash-exp` model doesn't work:** If you see any errors on the app server console with regard to `gemini-2.0-flash-exp` model availability, try replacing it with `gemini-2.0-flash-live-001` on `app/google_search_agent/agent.py` at line 6. +- **When `gemini-2.5-flash-exp` model doesn't work:** If you see any errors on the app server console with regard to `gemini-2.5-flash-exp` model availability, try replacing it with `gemini-2.5-flash-live-001` on `app/google_search_agent/agent.py` at line 6. ## 4. Agent definition @@ -12105,8 +12105,8 @@ from google.adk.tools import google_search # Import the tool root_agent = Agent( name="google_search_agent", - model="gemini-2.0-flash-exp", # if this model does not work, try below - #model="gemini-2.0-flash-live-001", + model="gemini-2.5-flash-exp", # if this model does not work, try below + #model="gemini-2.5-flash-live-001", description="Agent to answer questions using Google Search.", instruction="Answer the question using the Google Search tool.", tools=[google_search], @@ -13213,7 +13213,7 @@ async def monitor_video_stream( # Call the model to generate content based on the provided image and prompt response = client.models.generate_content( - model="gemini-2.0-flash-exp", + model="gemini-2.5-flash-exp", contents=contents, config=genai_types.GenerateContentConfig( system_instruction=( @@ -13247,7 +13247,7 @@ def stop_streaming(function_name: str): root_agent = Agent( - model="gemini-2.0-flash-exp", + model="gemini-2.5-flash-exp", name="video_streaming_agent", instruction=""" You are a monitoring agent. You can do video monitoring and stock price monitoring @@ -13872,7 +13872,7 @@ except Exception as e: # --- Agent Configuration --- # Configure and create the main LLM Agent. root_agent = LlmAgent( - model='gemini-2.0-flash', + model='gemini-2.5-flash', name='enterprise_assistant', instruction='Help user integrate with multiple enterprise systems, including retrieving user information which may require authentication.', tools=userinfo_toolset.get_tools(), @@ -14341,7 +14341,7 @@ Search. The `google_search` tool is only compatible with Gemini 2 models. root_agent = Agent( name="basic_search_agent", - model="gemini-2.0-flash", + model="gemini-2.5-flash", description="Agent to answer questions using Google Search.", instruction="I can answer your questions by searching the internet. Just ask me anything!", # google_search is a pre-built tool which allows the agent to perform Google searches. @@ -14410,7 +14410,7 @@ like calculations, data manipulation, or running small scripts. APP_NAME = "calculator" USER_ID = "user1234" SESSION_ID = "session_code_exec_async" - GEMINI_MODEL = "gemini-2.0-flash" + GEMINI_MODEL = "gemini-2.5-flash" # Agent Definition code_agent = LlmAgent( @@ -14537,7 +14537,7 @@ APP_NAME_VSEARCH = "vertex_search_app" USER_ID_VSEARCH = "user_vsearch_1" SESSION_ID_VSEARCH = "session_vsearch_1" AGENT_NAME_VSEARCH = "doc_qa_agent" -GEMINI_2_FLASH = "gemini-2.0-flash" +GEMINI_2_FLASH = "gemini-2.5-flash" # Tool Instantiation # You MUST provide your datastore ID here. @@ -14659,7 +14659,7 @@ AGENT_NAME = "bigquery_agent" APP_NAME = "bigquery_app" USER_ID = "user1234" SESSION_ID = "1234" -GEMINI_MODEL = "gemini-2.0-flash" +GEMINI_MODEL = "gemini-2.5-flash" # Define a tool configuration to block any write operations tool_config = BigQueryToolConfig(write_mode=WriteMode.BLOCKED) @@ -14734,7 +14734,7 @@ to use built-in tools with other tools by using multiple agents: search_agent = Agent( - model='gemini-2.0-flash', + model='gemini-2.5-flash', name='SearchAgent', instruction=""" You're a specialist in Google Search @@ -14742,7 +14742,7 @@ to use built-in tools with other tools by using multiple agents: tools=[google_search], ) coding_agent = Agent( - model='gemini-2.0-flash', + model='gemini-2.5-flash', name='CodeAgent', instruction=""" You're a specialist in Code Execution @@ -14751,7 +14751,7 @@ to use built-in tools with other tools by using multiple agents: ) root_agent = Agent( name="RootAgent", - model="gemini-2.0-flash", + model="gemini-2.5-flash", description="Root Agent", tools=[agent_tool.AgentTool(agent=search_agent), agent_tool.AgentTool(agent=coding_agent)], ) @@ -14777,7 +14777,7 @@ to use built-in tools with other tools by using multiple agents: ```py root_agent = Agent( name="RootAgent", - model="gemini-2.0-flash", + model="gemini-2.5-flash", description="Root Agent", tools=[custom_function], executor=[BuiltInCodeExecutor] # <-- not supported when used with tools @@ -14799,7 +14799,7 @@ is **not** currently supported: ```py search_agent = Agent( - model='gemini-2.0-flash', + model='gemini-2.5-flash', name='SearchAgent', instruction=""" You're a specialist in Google Search @@ -14807,7 +14807,7 @@ is **not** currently supported: tools=[google_search], ) coding_agent = Agent( - model='gemini-2.0-flash', + model='gemini-2.5-flash', name='CodeAgent', instruction=""" You're a specialist in Code Execution @@ -14816,7 +14816,7 @@ is **not** currently supported: ) root_agent = Agent( name="RootAgent", - model="gemini-2.0-flash", + model="gemini-2.5-flash", description="Root Agent", sub_agents=[ search_agent, @@ -14921,7 +14921,7 @@ The docstring (or comments above) your function serve as the tool's description stock_price_agent = Agent( - model='gemini-2.0-flash', + model='gemini-2.5-flash', name='stock_agent', instruction= 'You are an agent who retrieves stock prices. If a ticker symbol is provided, fetch the current price. If only a company name is given, first perform a Google search to find the correct ticker symbol before retrieving the stock price. If the provided ticker symbol is invalid or data cannot be retrieved, inform the user that the stock price could not be found.', description='This agent specializes in retrieving real-time stock prices. Given a stock ticker symbol (e.g., AAPL, GOOG, MSFT) or the stock name, use the tools and reliable data sources to provide the most up-to-date price.', @@ -15122,7 +15122,7 @@ Agent client received an event with long running function calls and check the st # 3. Use the tool in an Agent file_processor_agent = Agent( # Use a model compatible with function calling - model="gemini-2.0-flash", + model="gemini-2.5-flash", name='reimbursement_agent', instruction=""" You are an agent whose job is to handle the reimbursement process for @@ -15299,14 +15299,14 @@ The `AgentTool` class provides the following attributes for customizing its beha SESSION_ID="1234" summary_agent = Agent( - model="gemini-2.0-flash", + model="gemini-2.5-flash", name="summary_agent", instruction="""You are an expert summarizer. Please read the following text and provide a concise summary.""", description="Agent to summarize text", ) root_agent = Agent( - model='gemini-2.0-flash', + model='gemini-2.5-flash', name='root_agent', instruction="""You are a helpful assistant. When the user provides a text, use the 'summarize' tool to generate a summary. Always forward the user's message exactly as received to the 'summarize' tool, without modifying or summarizing it yourself. Present the response from the tool to the user.""", tools=[AgentTool(agent=summary_agent)] @@ -15475,7 +15475,7 @@ you only need to follow a subset of these steps. from .tools import sample_toolset root_agent = LlmAgent( - model='gemini-2.0-flash', + model='gemini-2.5-flash', name='enterprise_assistant', instruction='Help user, leverage the tools you have access to', tools=sample_toolset.get_tools(), @@ -15651,7 +15651,7 @@ Connect your agent to enterprise applications using from .tools import connector_tool root_agent = LlmAgent( - model='gemini-2.0-flash', + model='gemini-2.5-flash', name='connector_agent', instruction="Help user, leverage the tools you have access to", tools=[connector_tool], @@ -15706,7 +15706,7 @@ workflow as a tool for your agent or create a new one. from .tools import integration_tool, connector_tool root_agent = LlmAgent( - model='gemini-2.0-flash', + model='gemini-2.5-flash', name='integration_agent', instruction="Help user, leverage the tools you have access to", tools=[integration_tool], @@ -15896,7 +15896,7 @@ The following example showcases how an agent can use tools by **referencing thei APP_NAME="weather_sentiment_agent" USER_ID="user1234" SESSION_ID="1234" - MODEL_ID="gemini-2.0-flash" + MODEL_ID="gemini-2.5-flash" # Tool 1 def get_weather_report(city: str) -> dict: @@ -16096,14 +16096,14 @@ The `tool_context.actions` attribute (`ToolContext.actions()` in Java) holds an escalation_tool = FunctionTool(func=check_and_transfer) main_agent = Agent( - model='gemini-2.0-flash', + model='gemini-2.5-flash', name='main_agent', instruction="""You are the first point of contact for customer support of an analytics tool. Answer general queries. If the user indicates urgency, use the 'check_and_transfer' tool.""", tools=[check_and_transfer] ) support_agent = Agent( - model='gemini-2.0-flash', + model='gemini-2.5-flash', name='support_agent', instruction="""You are the dedicated support agent. Mentioned you are a support handler and please help the user with their urgent issue.""" ) @@ -16435,7 +16435,7 @@ math_toolset_instance = SimpleMathToolset(prefix="calculator_") # 5. Define an agent that uses both the individual tool and the toolset calculator_agent = LlmAgent( name="CalculatorAgent", - model="gemini-2.0-flash", # Replace with your desired model + model="gemini-2.5-flash", # Replace with your desired model instruction="You are a helpful calculator and greeter. " "Use 'greet_user' for greetings. " "Use 'calculator_add_numbers' to add and 'calculator_subtract_numbers' to subtract. " @@ -16528,7 +16528,7 @@ TARGET_FOLDER_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), "/ # If you created ./adk_agent_samples/mcp_agent/your_folder, root_agent = LlmAgent( - model='gemini-2.0-flash', + model='gemini-2.5-flash', name='filesystem_assistant_agent', instruction='Help the user manage their files. You can list files, read files, etc.', tools=[ @@ -16626,7 +16626,7 @@ if not google_maps_api_key: # You might want to raise an error or exit if the key is crucial and not found. root_agent = LlmAgent( - model='gemini-2.0-flash', + model='gemini-2.5-flash', name='maps_assistant_agent', instruction='Help the user with mapping, directions, and finding places using Google Maps tools.', tools=[ @@ -16858,7 +16858,7 @@ if PATH_TO_YOUR_MCP_SERVER_SCRIPT == "/path/to/your/my_adk_mcp_server.py": # Optionally, raise an error if the path is critical root_agent = LlmAgent( - model='gemini-2.0-flash', + model='gemini-2.5-flash', name='web_reader_mcp_client_agent', instruction="Use the 'load_web_page' tool to fetch content from a URL provided by the user.", tools=[ @@ -16961,7 +16961,7 @@ async def get_agent_async(): # Use in an agent root_agent = LlmAgent( - model='gemini-2.0-flash', # Adjust model name if needed based on availability + model='gemini-2.5-flash', # Adjust model name if needed based on availability name='enterprise_assistant', instruction='Help user accessing their file systems', tools=[toolset], # Provide the MCP tools to the ADK agent @@ -17107,7 +17107,7 @@ Follow these steps to integrate an OpenAPI spec into your agent: my_agent = LlmAgent( name="api_interacting_agent", - model="gemini-2.0-flash", # Or your preferred model + model="gemini-2.5-flash", # Or your preferred model tools=[toolset], # Pass the toolset # ... other agent config ... ) @@ -17157,7 +17157,7 @@ This example demonstrates generating tools from a simple Pet Store OpenAPI spec USER_ID_OPENAPI = "user_openapi_1" SESSION_ID_OPENAPI = f"session_openapi_{uuid.uuid4()}" # Unique session ID AGENT_NAME_OPENAPI = "petstore_manager_agent" - GEMINI_MODEL = "gemini-2.0-flash" + GEMINI_MODEL = "gemini-2.5-flash" # --- Sample OpenAPI Specification (JSON String) --- # A basic Pet Store API example using httpbin.org as a mock server @@ -17417,7 +17417,7 @@ ADK provides the `LangchainTool` wrapper to integrate tools from the LangChain e # Define the ADK agent, including the wrapped tool my_agent = Agent( name="langchain_tool_agent", - model="gemini-2.0-flash", + model="gemini-2.5-flash", description="Agent to answer questions using TavilySearch.", instruction="I can answer your questions by searching the internet. Just ask me anything!", tools=[adk_tavily_tool] # Add the wrapped tool here @@ -17473,7 +17473,7 @@ adk_tavily_tool = LangchainTool(tool=tavily_search) # Define Agent with the wrapped tool my_agent = Agent( name="langchain_tool_agent", - model="gemini-2.0-flash", + model="gemini-2.5-flash", description="Agent to answer questions using TavilySearch.", instruction="I can answer your questions by searching the internet. Just ask me anything!", tools=[adk_tavily_tool] # Add the wrapped tool here @@ -17557,7 +17557,7 @@ ADK provides the `CrewaiTool` wrapper to integrate tools from the CrewAI library # Define the ADK agent my_agent = Agent( name="crewai_search_agent", - model="gemini-2.0-flash", + model="gemini-2.5-flash", description="Agent to find recent news using the Serper search tool.", instruction="I can find the latest news for you. What topic are you interested in?", tools=[adk_serper_tool] # Add the wrapped tool here @@ -17614,7 +17614,7 @@ adk_serper_tool = CrewaiTool( serper_agent = Agent( name="basic_search_agent", - model="gemini-2.0-flash", + model="gemini-2.5-flash", description="Agent to answer questions using Google Search.", instruction="I can answer your questions by searching the internet. Just ask me anything!", # Add the Serper tool @@ -17810,7 +17810,7 @@ os.environ["GOOGLE_GENAI_USE_VERTEXAI"] = "False" # --- Define Model Constants for easier use --- # More supported models can be referenced here: https://ai.google.dev/gemini-api/docs/models#model-variations -MODEL_GEMINI_2_0_FLASH = "gemini-2.0-flash" +MODEL_GEMINI_2_5_FLASH = "gemini-2.5-flash" # More supported models can be referenced here: https://docs.litellm.ai/docs/providers/openai#openai-chat-completion-models MODEL_GPT_4O = "openai/gpt-4.1" # You can also try: gpt-4.1-mini, gpt-4o etc. @@ -17891,7 +17891,7 @@ Now, let's create the **Agent** itself. An `Agent` in ADK orchestrates the inter We configure it with several key parameters: * `name`: A unique identifier for this agent (e.g., "weather\_agent\_v1"). -* `model`: Specifies which LLM to use (e.g., `MODEL_GEMINI_2_0_FLASH`). We'll start with a specific Gemini model. +* `model`: Specifies which LLM to use (e.g., `MODEL_GEMINI_2_5_FLASH`). We'll start with a specific Gemini model. * `description`: A concise summary of the agent's overall purpose. This becomes crucial later when other agents need to decide whether to delegate tasks to *this* agent. * `instruction`: Detailed guidance for the LLM on how to behave, its persona, its goals, and specifically *how and when* to utilize its assigned `tools`. * `tools`: A list containing the actual Python tool functions the agent is allowed to use (e.g., `[get_weather]`). @@ -17904,7 +17904,7 @@ We configure it with several key parameters: ```python # @title Define the Weather Agent # Use one of the model constants defined earlier -AGENT_MODEL = MODEL_GEMINI_2_0_FLASH # Starting with Gemini +AGENT_MODEL = MODEL_GEMINI_2_5_FLASH # Starting with Gemini weather_agent = Agent( name="weather_agent_v1", @@ -18365,14 +18365,14 @@ Now, create the `Agent` instances for our specialists. Notice their highly focus # If you want to use models other than Gemini, Ensure LiteLlm is imported and API keys are set (from Step 0/2) # from google.adk.models.lite_llm import LiteLlm # MODEL_GPT_4O, MODEL_CLAUDE_SONNET etc. should be defined -# Or else, continue to use: model = MODEL_GEMINI_2_0_FLASH +# Or else, continue to use: model = MODEL_GEMINI_2_5_FLASH # --- Greeting Agent --- greeting_agent = None try: greeting_agent = Agent( # Using a potentially different/cheaper model for a simple task - model = MODEL_GEMINI_2_0_FLASH, + model = MODEL_GEMINI_2_5_FLASH, # model=LiteLlm(model=MODEL_GPT_4O), # If you would like to experiment with other models name="greeting_agent", instruction="You are the Greeting Agent. Your ONLY task is to provide a friendly greeting to the user. " @@ -18391,7 +18391,7 @@ farewell_agent = None try: farewell_agent = Agent( # Can use the same or a different model - model = MODEL_GEMINI_2_0_FLASH, + model = MODEL_GEMINI_2_5_FLASH, # model=LiteLlm(model=MODEL_GPT_4O), # If you would like to experiment with other models name="farewell_agent", instruction="You are the Farewell Agent. Your ONLY task is to provide a polite goodbye message. " @@ -18430,7 +18430,7 @@ runner_root = None # Initialize runner if greeting_agent and farewell_agent and 'get_weather' in globals(): # Let's use a capable Gemini model for the root agent to handle orchestration - root_agent_model = MODEL_GEMINI_2_0_FLASH + root_agent_model = MODEL_GEMINI_2_5_FLASH weather_agent_team = Agent( name="weather_agent_v2", # Give it a new version name @@ -18735,13 +18735,13 @@ from google.adk.agents import Agent from google.adk.models.lite_llm import LiteLlm from google.adk.runners import Runner # Ensure tools 'say_hello', 'say_goodbye' are defined (from Step 3) -# Ensure model constants MODEL_GPT_4O, MODEL_GEMINI_2_0_FLASH etc. are defined +# Ensure model constants MODEL_GPT_4O, MODEL_GEMINI_2_5_FLASH etc. are defined # --- Redefine Greeting Agent (from Step 3) --- greeting_agent = None try: greeting_agent = Agent( - model=MODEL_GEMINI_2_0_FLASH, + model=MODEL_GEMINI_2_5_FLASH, name="greeting_agent", instruction="You are the Greeting Agent. Your ONLY task is to provide a friendly greeting using the 'say_hello' tool. Do nothing else.", description="Handles simple greetings and hellos using the 'say_hello' tool.", @@ -18755,7 +18755,7 @@ except Exception as e: farewell_agent = None try: farewell_agent = Agent( - model=MODEL_GEMINI_2_0_FLASH, + model=MODEL_GEMINI_2_5_FLASH, name="farewell_agent", instruction="You are the Farewell Agent. Your ONLY task is to provide a polite goodbye message using the 'say_goodbye' tool. Do not perform any other actions.", description="Handles simple farewells and goodbyes using the 'say_goodbye' tool.", @@ -18772,7 +18772,7 @@ runner_root_stateful = None # Initialize runner # Check prerequisites before creating the root agent if greeting_agent and farewell_agent and 'get_weather_stateful' in globals(): - root_agent_model = MODEL_GEMINI_2_0_FLASH # Choose orchestration model + root_agent_model = MODEL_GEMINI_2_5_FLASH # Choose orchestration model root_agent_stateful = Agent( name="weather_agent_v4_stateful", # New version name @@ -19062,7 +19062,7 @@ greeting_agent = None try: # Use a defined model constant greeting_agent = Agent( - model=MODEL_GEMINI_2_0_FLASH, + model=MODEL_GEMINI_2_5_FLASH, name="greeting_agent", # Keep original name for consistency instruction="You are the Greeting Agent. Your ONLY task is to provide a friendly greeting using the 'say_hello' tool. Do nothing else.", description="Handles simple greetings and hellos using the 'say_hello' tool.", @@ -19076,7 +19076,7 @@ farewell_agent = None try: # Use a defined model constant farewell_agent = Agent( - model=MODEL_GEMINI_2_0_FLASH, + model=MODEL_GEMINI_2_5_FLASH, name="farewell_agent", # Keep original name instruction="You are the Farewell Agent. Your ONLY task is to provide a polite goodbye message using the 'say_goodbye' tool. Do not perform any other actions.", description="Handles simple farewells and goodbyes using the 'say_goodbye' tool.", @@ -19095,7 +19095,7 @@ runner_root_model_guardrail = None if greeting_agent and farewell_agent and 'get_weather_stateful' in globals() and 'block_keyword_guardrail' in globals(): # Use a defined model constant - root_agent_model = MODEL_GEMINI_2_0_FLASH + root_agent_model = MODEL_GEMINI_2_5_FLASH root_agent_model_guardrail = Agent( name="weather_agent_v5_model_guardrail", # New version name for clarity @@ -19354,7 +19354,7 @@ greeting_agent = None try: # Use a defined model constant greeting_agent = Agent( - model=MODEL_GEMINI_2_0_FLASH, + model=MODEL_GEMINI_2_5_FLASH, name="greeting_agent", # Keep original name for consistency instruction="You are the Greeting Agent. Your ONLY task is to provide a friendly greeting using the 'say_hello' tool. Do nothing else.", description="Handles simple greetings and hellos using the 'say_hello' tool.", @@ -19368,7 +19368,7 @@ farewell_agent = None try: # Use a defined model constant farewell_agent = Agent( - model=MODEL_GEMINI_2_0_FLASH, + model=MODEL_GEMINI_2_5_FLASH, name="farewell_agent", # Keep original name instruction="You are the Farewell Agent. Your ONLY task is to provide a polite goodbye message using the 'say_goodbye' tool. Do not perform any other actions.", description="Handles simple farewells and goodbyes using the 'say_goodbye' tool.", @@ -19388,7 +19388,7 @@ if ('greeting_agent' in globals() and greeting_agent and 'block_keyword_guardrail' in globals() and 'block_paris_tool_guardrail' in globals()): - root_agent_model = MODEL_GEMINI_2_0_FLASH + root_agent_model = MODEL_GEMINI_2_5_FLASH root_agent_tool_guardrail = Agent( name="weather_agent_v6_tool_guardrail", # New version name diff --git a/llms.txt b/llms.txt index 0ff16cbb82..97e83563c1 100644 --- a/llms.txt +++ b/llms.txt @@ -92,7 +92,7 @@ from google.adk.tools import google_search root_agent = Agent( name="search_assistant", - model="gemini-2.0-flash", # Or your preferred Gemini model + model="gemini-2.5-flash", # Or your preferred Gemini model instruction="You are a helpful assistant. Answer user questions using Google Search when needed.", description="An assistant that can search the web.", tools=[google_search] @@ -109,13 +109,13 @@ Define a multi-agent system with coordinator agent, greeter agent, and task exec from google.adk.agents import LlmAgent, BaseAgent # Define individual agents -greeter = LlmAgent(name="greeter", model="gemini-2.0-flash", ...) -task_executor = LlmAgent(name="task_executor", model="gemini-2.0-flash", ...) +greeter = LlmAgent(name="greeter", model="gemini-2.5-flash", ...) +task_executor = LlmAgent(name="task_executor", model="gemini-2.5-flash", ...) # Create parent agent and assign children via sub_agents coordinator = LlmAgent( name="Coordinator", - model="gemini-2.0-flash", + model="gemini-2.5-flash", description="I coordinate greetings and tasks.", sub_agents=[ # Assign sub_agents here greeter, From 37a153ef94d1280dfd3637770ac67e6252f618ef Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Thu, 16 Oct 2025 14:26:43 -0700 Subject: [PATCH 122/303] ci: Fix the `logs` importing for PR triaging agent PiperOrigin-RevId: 820395414 --- contributing/samples/adk_pr_triaging_agent/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributing/samples/adk_pr_triaging_agent/main.py b/contributing/samples/adk_pr_triaging_agent/main.py index 04971c02e8..ad5893d855 100644 --- a/contributing/samples/adk_pr_triaging_agent/main.py +++ b/contributing/samples/adk_pr_triaging_agent/main.py @@ -22,8 +22,8 @@ from adk_pr_triaging_agent.settings import REPO from adk_pr_triaging_agent.utils import call_agent_async from adk_pr_triaging_agent.utils import parse_number_string +from google.adk.cli.utils import logs from google.adk.runners import InMemoryRunner -from google.adk.utils import logs APP_NAME = "adk_pr_triaging_app" USER_ID = "adk_pr_triaging_user" From 2a8fdd94e151fa49a0889f2d92cb374d5e8b29da Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Thu, 16 Oct 2025 14:57:28 -0700 Subject: [PATCH 123/303] chore: Add computer use sample agent PiperOrigin-RevId: 820407078 --- contributing/samples/computer_use/README.md | 96 ++++++ contributing/samples/computer_use/agent.py | 35 ++ .../samples/computer_use/playwright.py | 317 ++++++++++++++++++ .../samples/computer_use/requirements.txt | 4 + 4 files changed, 452 insertions(+) create mode 100644 contributing/samples/computer_use/README.md create mode 100755 contributing/samples/computer_use/agent.py create mode 100644 contributing/samples/computer_use/playwright.py create mode 100644 contributing/samples/computer_use/requirements.txt diff --git a/contributing/samples/computer_use/README.md b/contributing/samples/computer_use/README.md new file mode 100644 index 0000000000..ff7ae6c0a5 --- /dev/null +++ b/contributing/samples/computer_use/README.md @@ -0,0 +1,96 @@ +# Computer Use Agent + +This directory contains a computer use agent that can operate a browser to complete user tasks. The agent uses Playwright to control a Chromium browser and can interact with web pages by taking screenshots, clicking, typing, and navigating. + +This agent is to demo the usage of ComputerUseToolset. + + +## Overview + +The computer use agent consists of: +- `agent.py`: Main agent configuration using Google's gemini-2.5-computer-use-preview-10-2025 model +- `playwright.py`: Playwright-based computer implementation for browser automation +- `requirements.txt`: Python dependencies + +## Setup + +### 1. Install Python Dependencies + +Install the required Python packages from the requirements file: + +```bash +uv pip install -r internal/samples/computer_use/requirements.txt +``` + +### 2. Install Playwright Dependencies + +Install Playwright's system dependencies for Chromium: + +```bash +playwright install-deps chromium +``` + +### 3. Install Chromium Browser + +Install the Chromium browser for Playwright: + +```bash +playwright install chromium +``` + +## Usage + +### Running the Agent + +To start the computer use agent, run the following command from the project root: + +```bash +adk web internal/samples +``` + +This will start the ADK web interface where you can interact with the computer_use agent. + +### Example Queries + +Once the agent is running, you can send queries like: + +``` +find me a flight from SF to Hawaii on next Monday, coming back on next Friday. start by navigating directly to flights.google.com +``` + +The agent will: +1. Open a browser window +2. Navigate to the specified website +3. Interact with the page elements to complete your task +4. Provide updates on its progress + +### Other Example Tasks + +- Book hotel reservations +- Search for products online +- Fill out forms +- Navigate complex websites +- Research information across multiple pages + +## Technical Details + +- **Model**: Uses Google's `gemini-2.5-computer-use-preview-10-2025` model for computer use capabilities +- **Browser**: Automated Chromium browser via Playwright +- **Screen Size**: Configured for 600x800 resolution +- **Tools**: Uses ComputerUseToolset for screen capture, clicking, typing, and scrolling + +## Troubleshooting + +If you encounter issues: + +1. **Playwright not found**: Make sure you've run both `playwright install-deps chromium` and `playwright install chromium` +2. **Dependencies missing**: Verify all packages from `requirements.txt` are installed +3. **Browser crashes**: Check that your system supports Chromium and has sufficient resources +4. **Permission errors**: Ensure your user has permission to run browser automation tools + +## Notes + +- The agent operates in a controlled browser environment +- Screenshots are taken to help the agent understand the current state +- The agent will provide updates on its actions as it works +- Be patient as complex tasks may take some time to complete diff --git a/contributing/samples/computer_use/agent.py b/contributing/samples/computer_use/agent.py new file mode 100755 index 0000000000..5fed9aa25b --- /dev/null +++ b/contributing/samples/computer_use/agent.py @@ -0,0 +1,35 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from google.adk import Agent +from google.adk.models.google_llm import Gemini +from google.adk.tools.computer_use.computer_use_toolset import ComputerUseToolset +from typing_extensions import override + +from .playwright import PlaywrightComputer + +root_agent = Agent( + model='gemini-2.5-computer-use-preview-10-2025', + name='hello_world_agent', + description=( + 'computer use agent that can operate a browser on a computer to finish' + ' user tasks' + ), + instruction=""" + you are a computer use agent + """, + tools=[ + ComputerUseToolset(computer=PlaywrightComputer(screen_size=(1280, 936))) + ], +) diff --git a/contributing/samples/computer_use/playwright.py b/contributing/samples/computer_use/playwright.py new file mode 100644 index 0000000000..64ad54fd0f --- /dev/null +++ b/contributing/samples/computer_use/playwright.py @@ -0,0 +1,317 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import asyncio +import time +from typing import Literal + +from google.adk.tools.computer_use.base_computer import BaseComputer +from google.adk.tools.computer_use.base_computer import ComputerEnvironment +from google.adk.tools.computer_use.base_computer import ComputerState +from playwright.async_api import async_playwright +import termcolor +from typing_extensions import override + +# Define a mapping from the user-friendly key names to Playwright's expected key names. +# Playwright is generally good with case-insensitivity for these, but it's best to be canonical. +# See: https://playwright.dev/docs/api/class-keyboard#keyboard-press +# Keys like 'a', 'b', '1', '$' are passed directly. +PLAYWRIGHT_KEY_MAP = { + "backspace": "Backspace", + "tab": "Tab", + "return": "Enter", # Playwright uses 'Enter' + "enter": "Enter", + "shift": "Shift", + "control": "Control", # Or 'ControlOrMeta' for cross-platform Ctrl/Cmd + "alt": "Alt", + "escape": "Escape", + "space": "Space", # Can also just be " " + "pageup": "PageUp", + "pagedown": "PageDown", + "end": "End", + "home": "Home", + "left": "ArrowLeft", + "up": "ArrowUp", + "right": "ArrowRight", + "down": "ArrowDown", + "insert": "Insert", + "delete": "Delete", + "semicolon": ";", # For actual character ';' + "equals": "=", # For actual character '=' + "multiply": "Multiply", # NumpadMultiply + "add": "Add", # NumpadAdd + "separator": "Separator", # Numpad specific + "subtract": "Subtract", # NumpadSubtract, or just '-' for character + "decimal": "Decimal", # NumpadDecimal, or just '.' for character + "divide": "Divide", # NumpadDivide, or just '/' for character + "f1": "F1", + "f2": "F2", + "f3": "F3", + "f4": "F4", + "f5": "F5", + "f6": "F6", + "f7": "F7", + "f8": "F8", + "f9": "F9", + "f10": "F10", + "f11": "F11", + "f12": "F12", + "command": "Meta", # 'Meta' is Command on macOS, Windows key on Windows +} + + +class PlaywrightComputer(BaseComputer): + """Conputer that controls Chromium via Playwright.""" + + def __init__( + self, + screen_size: tuple[int, int], + initial_url: str = "https://www.google.com", + search_engine_url: str = "https://www.google.com", + highlight_mouse: bool = False, + ): + self._initial_url = initial_url + self._screen_size = screen_size + self._search_engine_url = search_engine_url + self._highlight_mouse = highlight_mouse + + @override + async def initialize(self): + print("Creating session...") + self._playwright = await async_playwright().start() + self._browser = await self._playwright.chromium.launch( + args=["--disable-blink-features=AutomationControlled"], + headless=False, + ) + self._context = await self._browser.new_context( + viewport={ + "width": self._screen_size[0], + "height": self._screen_size[1], + } + ) + self._page = await self._context.new_page() + await self._page.goto(self._initial_url) + + termcolor.cprint( + f"Started local playwright.", + color="green", + attrs=["bold"], + ) + + @override + async def environment(self): + return ComputerEnvironment.ENVIRONMENT_BROWSER + + @override + async def close(self, exc_type, exc_val, exc_tb): + if self._context: + self._context.close() + try: + self._browser.close() + except Exception as e: + # Browser was already shut down because of SIGINT or such. + if ( + "Browser.close: Connection closed while reading from the driver" + in str(e) + ): + pass + else: + raise + + self._playwright.stop() + + async def open_web_browser(self) -> ComputerState: + return await self.current_state() + + async def click_at(self, x: int, y: int): + await self.highlight_mouse(x, y) + await self._page.mouse.click(x, y) + await self._page.wait_for_load_state() + return await self.current_state() + + async def hover_at(self, x: int, y: int): + await self.highlight_mouse(x, y) + await self._page.mouse.move(x, y) + await self._page.wait_for_load_state() + return await self.current_state() + + async def type_text_at( + self, + x: int, + y: int, + text: str, + press_enter: bool = True, + clear_before_typing: bool = True, + ) -> ComputerState: + await self.highlight_mouse(x, y) + await self._page.mouse.click(x, y) + await self._page.wait_for_load_state() + + if clear_before_typing: + await self.key_combination(["Control", "A"]) + await self.key_combination(["Delete"]) + + await self._page.keyboard.type(text) + await self._page.wait_for_load_state() + + if press_enter: + await self.key_combination(["Enter"]) + await self._page.wait_for_load_state() + return await self.current_state() + + async def _horizontal_document_scroll( + self, direction: Literal["left", "right"] + ) -> ComputerState: + # Scroll by 50% of the viewport size. + horizontal_scroll_amount = await self.screen_size()[0] // 2 + if direction == "left": + sign = "-" + else: + sign = "" + scroll_argument = f"{sign}{horizontal_scroll_amount}" + # Scroll using JS. + await self._page.evaluate(f"window.scrollBy({scroll_argument}, 0); ") + await self._page.wait_for_load_state() + return await self.current_state() + + async def scroll_document( + self, direction: Literal["up", "down", "left", "right"] + ) -> ComputerState: + if direction == "down": + return await self.key_combination(["PageDown"]) + elif direction == "up": + return await self.key_combination(["PageUp"]) + elif direction in ("left", "right"): + return await self._horizontal_document_scroll(direction) + else: + raise ValueError("Unsupported direction: ", direction) + + async def scroll_at( + self, + x: int, + y: int, + direction: Literal["up", "down", "left", "right"], + magnitude: int, + ) -> ComputerState: + await self.highlight_mouse(x, y) + + await self._page.mouse.move(x, y) + await self._page.wait_for_load_state() + + dx = 0 + dy = 0 + if direction == "up": + dy = -magnitude + elif direction == "down": + dy = magnitude + elif direction == "left": + dx = -magnitude + elif direction == "right": + dx = magnitude + else: + raise ValueError("Unsupported direction: ", direction) + + await self._page.mouse.wheel(dx, dy) + await self._page.wait_for_load_state() + return await self.current_state() + + async def wait(self, seconds: int) -> ComputerState: + await asyncio.sleep(seconds) + return await self.current_state() + + async def go_back(self) -> ComputerState: + await self._page.go_back() + await self._page.wait_for_load_state() + return await self.current_state() + + async def go_forward(self) -> ComputerState: + await self._page.go_forward() + await self._page.wait_for_load_state() + return await self.current_state() + + async def search(self) -> ComputerState: + return await self.navigate(self._search_engine_url) + + async def navigate(self, url: str) -> ComputerState: + await self._page.goto(url) + await self._page.wait_for_load_state() + return await self.current_state() + + async def key_combination(self, keys: list[str]) -> ComputerState: + # Normalize all keys to the Playwright compatible version. + keys = [PLAYWRIGHT_KEY_MAP.get(k.lower(), k) for k in keys] + + for key in keys[:-1]: + await self._page.keyboard.down(key) + + await self._page.keyboard.press(keys[-1]) + + for key in reversed(keys[:-1]): + await self._page.keyboard.up(key) + + return await self.current_state() + + async def drag_and_drop( + self, x: int, y: int, destination_x: int, destination_y: int + ) -> ComputerState: + await self.highlight_mouse(x, y) + await self._page.mouse.move(x, y) + await self._page.wait_for_load_state() + await self._page.mouse.down() + await self._page.wait_for_load_state() + + await self.highlight_mouse(destination_x, destination_y) + await self._page.mouse.move(destination_x, destination_y) + await self._page.wait_for_load_state() + await self._page.mouse.up() + return await self.current_state() + + async def current_state(self) -> ComputerState: + await self._page.wait_for_load_state() + # Even if Playwright reports the page as loaded, it may not be so. + # Add a manual sleep to make sure the page has finished rendering. + time.sleep(0.5) + screenshot_bytes = await self._page.screenshot(type="png", full_page=False) + return ComputerState(screenshot=screenshot_bytes, url=self._page.url) + + async def screen_size(self) -> tuple[int, int]: + return self._screen_size + + async def highlight_mouse(self, x: int, y: int): + if not self._highlight_mouse: + return + await self._page.evaluate(f""" + () => {{ + const element_id = "playwright-feedback-circle"; + const div = document.createElement('div'); + div.id = element_id; + div.style.pointerEvents = 'none'; + div.style.border = '4px solid red'; + div.style.borderRadius = '50%'; + div.style.width = '20px'; + div.style.height = '20px'; + div.style.position = 'fixed'; + div.style.zIndex = '9999'; + document.body.appendChild(div); + + div.hidden = false; + div.style.left = {x} - 10 + 'px'; + div.style.top = {y} - 10 + 'px'; + + setTimeout(() => {{ + div.hidden = true; + }}, 2000); + }} + """) + # Wait a bit for the user to see the cursor. + time.sleep(1) diff --git a/contributing/samples/computer_use/requirements.txt b/contributing/samples/computer_use/requirements.txt new file mode 100644 index 0000000000..5b1df13832 --- /dev/null +++ b/contributing/samples/computer_use/requirements.txt @@ -0,0 +1,4 @@ +termcolor==3.1.0 +playwright==1.52.0 +browserbase==1.3.0 +rich From 6dcbb5aca642290112a7c81162b455526c15cd14 Mon Sep 17 00:00:00 2001 From: Kathy Wu Date: Thu, 16 Oct 2025 15:12:06 -0700 Subject: [PATCH 124/303] feat: Support dynamic per-request headers in MCPToolset Add a header_provider param which is a callable[ReadonlyContext, Dict[str, Any]] for users to build headers in MCPToolset fix: https://github.com/google/adk-python/issues/3156 PiperOrigin-RevId: 820412372 --- .../mcp_dynamic_header_agent/README.md | 8 +++ .../mcp_dynamic_header_agent/__init__.py | 15 ++++ .../samples/mcp_dynamic_header_agent/agent.py | 34 +++++++++ .../mcp_dynamic_header_agent/header_server.py | 50 +++++++++++++ src/google/adk/tools/mcp_tool/mcp_tool.py | 27 +++++-- src/google/adk/tools/mcp_tool/mcp_toolset.py | 16 ++++- .../unittests/tools/mcp_tool/test_mcp_tool.py | 71 +++++++++++++++++++ .../tools/mcp_tool/test_mcp_toolset.py | 27 +++++++ 8 files changed, 243 insertions(+), 5 deletions(-) create mode 100644 contributing/samples/mcp_dynamic_header_agent/README.md create mode 100644 contributing/samples/mcp_dynamic_header_agent/__init__.py create mode 100644 contributing/samples/mcp_dynamic_header_agent/agent.py create mode 100644 contributing/samples/mcp_dynamic_header_agent/header_server.py diff --git a/contributing/samples/mcp_dynamic_header_agent/README.md b/contributing/samples/mcp_dynamic_header_agent/README.md new file mode 100644 index 0000000000..50f7125585 --- /dev/null +++ b/contributing/samples/mcp_dynamic_header_agent/README.md @@ -0,0 +1,8 @@ +This agent connects to a local MCP server via Streamable HTTP and provides +custom per-request headers to the MCP server. + +To run this agent, start the local MCP server first by running: + +```bash +uv run header_server.py +``` \ No newline at end of file diff --git a/contributing/samples/mcp_dynamic_header_agent/__init__.py b/contributing/samples/mcp_dynamic_header_agent/__init__.py new file mode 100644 index 0000000000..c48963cdc7 --- /dev/null +++ b/contributing/samples/mcp_dynamic_header_agent/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/mcp_dynamic_header_agent/agent.py b/contributing/samples/mcp_dynamic_header_agent/agent.py new file mode 100644 index 0000000000..028d7feb12 --- /dev/null +++ b/contributing/samples/mcp_dynamic_header_agent/agent.py @@ -0,0 +1,34 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from google.adk.agents.llm_agent import LlmAgent +from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams +from google.adk.tools.mcp_tool.mcp_toolset import McpToolset + +root_agent = LlmAgent( + model='gemini-2.0-flash', + name='tenant_agent', + instruction="""You are a helpful assistant that helps users get tenant + information. Call the get_tenant_data tool when the user asks for tenant data.""", + tools=[ + McpToolset( + connection_params=StreamableHTTPConnectionParams( + url='http://localhost:3000/mcp', + ), + tool_filter=['get_tenant_data'], + header_provider=lambda ctx: {'X-Tenant-ID': 'tenant1'}, + ) + ], +) diff --git a/contributing/samples/mcp_dynamic_header_agent/header_server.py b/contributing/samples/mcp_dynamic_header_agent/header_server.py new file mode 100644 index 0000000000..386ae43bdf --- /dev/null +++ b/contributing/samples/mcp_dynamic_header_agent/header_server.py @@ -0,0 +1,50 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from fastapi import Request +from mcp.server.fastmcp import Context +from mcp.server.fastmcp import FastMCP + +mcp = FastMCP('Header Check Server', host='localhost', port=3000) + +TENANT_DATA = { + 'tenant1': {'name': 'Tenant 1', 'data': 'Data for tenant 1'}, + 'tenant2': {'name': 'Tenant 2', 'data': 'Data for tenant 2'}, +} + + +@mcp.tool( + description='Returns tenant specific data based on X-Tenant-ID header.' +) +def get_tenant_data(context: Context) -> dict: + """Return tenant specific data.""" + if context.request_context and context.request_context.request: + headers = context.request_context.request.headers + tenant_id = headers.get('x-tenant-id') + if tenant_id in TENANT_DATA: + return TENANT_DATA[tenant_id] + else: + return {'error': f'Tenant {tenant_id} not found'} + else: + return {'error': 'Could not get request context'} + + +if __name__ == '__main__': + try: + print('Starting Header Check MCP server on http://localhost:3000') + mcp.run(transport='streamable-http') + except KeyboardInterrupt: + print('\nServer stopped.') diff --git a/src/google/adk/tools/mcp_tool/mcp_tool.py b/src/google/adk/tools/mcp_tool/mcp_tool.py index 94a7e63fbd..545f81ee3b 100644 --- a/src/google/adk/tools/mcp_tool/mcp_tool.py +++ b/src/google/adk/tools/mcp_tool/mcp_tool.py @@ -17,8 +17,10 @@ import base64 import inspect import logging +import sys from typing import Any from typing import Callable +from typing import Dict from typing import Optional from typing import Union import warnings @@ -27,6 +29,7 @@ from google.genai.types import FunctionDeclaration from typing_extensions import override +from ...agents.readonly_context import ReadonlyContext from .._gemini_schema_util import _to_gemini_schema from .mcp_session_manager import MCPSessionManager from .mcp_session_manager import retry_on_closed_resource @@ -36,8 +39,6 @@ try: from mcp.types import Tool as McpBaseTool except ImportError as e: - import sys - if sys.version_info < (3, 10): raise ImportError( "MCP Tool requires Python 3.10 or above. Please upgrade your Python" @@ -75,6 +76,9 @@ def __init__( auth_scheme: Optional[AuthScheme] = None, auth_credential: Optional[AuthCredential] = None, require_confirmation: Union[bool, Callable[..., bool]] = False, + header_provider: Optional[ + Callable[[ReadonlyContext], Dict[str, str]] + ] = None, ): """Initializes an MCPTool. @@ -106,6 +110,7 @@ def __init__( self._mcp_tool = mcp_tool self._mcp_session_manager = mcp_session_manager self._require_confirmation = require_confirmation + self._header_provider = header_provider @override def _get_declaration(self) -> FunctionDeclaration: @@ -192,10 +197,24 @@ async def _run_async_impl( Any: The response from the tool. """ # Extract headers from credential for session pooling - headers = await self._get_headers(tool_context, credential) + auth_headers = await self._get_headers(tool_context, credential) + dynamic_headers = None + if self._header_provider: + dynamic_headers = self._header_provider( + ReadonlyContext(tool_context._invocation_context) + ) + + headers: Dict[str, str] = {} + if auth_headers: + headers.update(auth_headers) + if dynamic_headers: + headers.update(dynamic_headers) + final_headers = headers if headers else None # Get the session from the session manager - session = await self._mcp_session_manager.create_session(headers=headers) + session = await self._mcp_session_manager.create_session( + headers=final_headers + ) response = await session.call_tool(self._mcp_tool.name, arguments=args) return response diff --git a/src/google/adk/tools/mcp_tool/mcp_toolset.py b/src/google/adk/tools/mcp_tool/mcp_toolset.py index 42b1137efb..06c57a452f 100644 --- a/src/google/adk/tools/mcp_tool/mcp_toolset.py +++ b/src/google/adk/tools/mcp_tool/mcp_toolset.py @@ -16,6 +16,8 @@ import logging import sys +from typing import Any +from typing import AsyncIterator from typing import Callable from typing import Dict from typing import List @@ -107,6 +109,9 @@ def __init__( auth_scheme: Optional[AuthScheme] = None, auth_credential: Optional[AuthCredential] = None, require_confirmation: Union[bool, Callable[..., bool]] = False, + header_provider: Optional[ + Callable[[ReadonlyContext], Dict[str, str]] + ] = None, ): """Initializes the MCPToolset. @@ -130,6 +135,8 @@ def __init__( require_confirmation: Whether tools in this toolset require confirmation. Can be a single boolean or a callable to apply to all tools. + header_provider: A callable that takes a ReadonlyContext and returns a + dictionary of headers to be used for the MCP session. """ super().__init__(tool_filter=tool_filter, tool_name_prefix=tool_name_prefix) @@ -138,6 +145,7 @@ def __init__( self._connection_params = connection_params self._errlog = errlog + self._header_provider = header_provider # Create the session manager that will handle the MCP connection self._mcp_session_manager = MCPSessionManager( @@ -162,8 +170,13 @@ async def get_tools( Returns: List[BaseTool]: A list of tools available under the specified context. """ + headers = ( + self._header_provider(readonly_context) + if self._header_provider and readonly_context + else None + ) # Get session from session manager - session = await self._mcp_session_manager.create_session() + session = await self._mcp_session_manager.create_session(headers=headers) # Fetch available tools from the MCP server tools_response: ListToolsResult = await session.list_tools() @@ -177,6 +190,7 @@ async def get_tools( auth_scheme=self._auth_scheme, auth_credential=self._auth_credential, require_confirmation=self._require_confirmation, + header_provider=self._header_provider, ) if self._is_tool_selected(mcp_tool, readonly_context): diff --git a/tests/unittests/tools/mcp_tool/test_mcp_tool.py b/tests/unittests/tools/mcp_tool/test_mcp_tool.py index 7785447745..37c2df8975 100644 --- a/tests/unittests/tools/mcp_tool/test_mcp_tool.py +++ b/tests/unittests/tools/mcp_tool/test_mcp_tool.py @@ -640,3 +640,74 @@ def test_init_validation(self): with pytest.raises(TypeError): MCPTool(mcp_tool=self.mock_mcp_tool) # Missing session manager + + @pytest.mark.asyncio + async def test_run_async_impl_with_header_provider_no_auth(self): + """Test running tool with header_provider but no auth.""" + expected_headers = {"X-Tenant-ID": "test-tenant"} + header_provider = Mock(return_value=expected_headers) + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + header_provider=header_provider, + ) + + expected_response = {"result": "success"} + self.mock_session.call_tool = AsyncMock(return_value=expected_response) + + tool_context = Mock(spec=ToolContext) + tool_context._invocation_context = Mock() + args = {"param1": "test_value"} + + result = await tool._run_async_impl( + args=args, tool_context=tool_context, credential=None + ) + + assert result == expected_response + header_provider.assert_called_once() + self.mock_session_manager.create_session.assert_called_once_with( + headers=expected_headers + ) + self.mock_session.call_tool.assert_called_once_with( + "test_tool", arguments=args + ) + + @pytest.mark.asyncio + async def test_run_async_impl_with_header_provider_and_oauth2(self): + """Test running tool with header_provider and OAuth2 auth.""" + dynamic_headers = {"X-Tenant-ID": "test-tenant"} + header_provider = Mock(return_value=dynamic_headers) + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + header_provider=header_provider, + ) + + oauth2_auth = OAuth2Auth(access_token="test_access_token") + credential = AuthCredential( + auth_type=AuthCredentialTypes.OAUTH2, oauth2=oauth2_auth + ) + + expected_response = {"result": "success"} + self.mock_session.call_tool = AsyncMock(return_value=expected_response) + + tool_context = Mock(spec=ToolContext) + tool_context._invocation_context = Mock() + args = {"param1": "test_value"} + + result = await tool._run_async_impl( + args=args, tool_context=tool_context, credential=credential + ) + + assert result == expected_response + header_provider.assert_called_once() + self.mock_session_manager.create_session.assert_called_once() + call_args = self.mock_session_manager.create_session.call_args + headers = call_args[1]["headers"] + assert headers == { + "Authorization": "Bearer test_access_token", + "X-Tenant-ID": "test-tenant", + } + self.mock_session.call_tool.assert_called_once_with( + "test_tool", arguments=args + ) diff --git a/tests/unittests/tools/mcp_tool/test_mcp_toolset.py b/tests/unittests/tools/mcp_tool/test_mcp_toolset.py index d5e6ae2438..37b23d998c 100644 --- a/tests/unittests/tools/mcp_tool/test_mcp_toolset.py +++ b/tests/unittests/tools/mcp_tool/test_mcp_toolset.py @@ -29,6 +29,7 @@ # Import dependencies with version checking try: + from google.adk.agents.readonly_context import ReadonlyContext from google.adk.tools.mcp_tool.mcp_session_manager import MCPSessionManager from google.adk.tools.mcp_tool.mcp_session_manager import SseConnectionParams from google.adk.tools.mcp_tool.mcp_session_manager import StdioConnectionParams @@ -55,6 +56,7 @@ def __init__(self, command="test_command", args=None): StreamableHTTPConnectionParams = DummyClass MCPTool = DummyClass MCPToolset = DummyClass + ReadonlyContext = DummyClass else: raise e @@ -245,6 +247,31 @@ def file_tools_filter(tool, context): assert tools[0].name == "read_file" assert tools[1].name == "write_file" + @pytest.mark.asyncio + async def test_get_tools_with_header_provider(self): + """Test get_tools with a header_provider.""" + mock_tools = [MockMCPTool("tool1"), MockMCPTool("tool2")] + self.mock_session.list_tools = AsyncMock( + return_value=MockListToolsResult(mock_tools) + ) + mock_readonly_context = Mock(spec=ReadonlyContext) + expected_headers = {"X-Tenant-ID": "test-tenant"} + header_provider = Mock(return_value=expected_headers) + + toolset = MCPToolset( + connection_params=self.mock_stdio_params, + header_provider=header_provider, + ) + toolset._mcp_session_manager = self.mock_session_manager + + tools = await toolset.get_tools(readonly_context=mock_readonly_context) + + assert len(tools) == 2 + header_provider.assert_called_once_with(mock_readonly_context) + self.mock_session_manager.create_session.assert_called_once_with( + headers=expected_headers + ) + @pytest.mark.asyncio async def test_close_success(self): """Test successful cleanup.""" From 307896aeceeb97efed352bc0217bae10423e5da6 Mon Sep 17 00:00:00 2001 From: George Weale Date: Thu, 16 Oct 2025 22:40:09 -0700 Subject: [PATCH 125/303] fix: Exclude `additionalProperties` from Gemini schemas PiperOrigin-RevId: 820542466 --- src/google/adk/tools/_gemini_schema_util.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/google/adk/tools/_gemini_schema_util.py b/src/google/adk/tools/_gemini_schema_util.py index c87763431d..df76f3c85b 100644 --- a/src/google/adk/tools/_gemini_schema_util.py +++ b/src/google/adk/tools/_gemini_schema_util.py @@ -142,7 +142,9 @@ def _sanitize_schema_formats_for_gemini( ) -> dict[str, Any]: """Filters the schema to only include fields that are supported by JSONSchema.""" supported_fields: set[str] = set(_ExtendedJSONSchema.model_fields.keys()) - schema_field_names: set[str] = {"items"} # 'additional_properties' to come + # Gemini rejects schemas that include `additionalProperties`, so drop it. + supported_fields.discard("additional_properties") + schema_field_names: set[str] = {"items"} list_schema_field_names: set[str] = { "any_of", # 'one_of', 'all_of', 'not' to come } From 9dce06f9b00259ec42241df4f6638955e783a9d1 Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Thu, 16 Oct 2025 23:24:08 -0700 Subject: [PATCH 126/303] feat: Add rewind_async to support rewinding the session to before a previous invocation PiperOrigin-RevId: 820552460 --- .../samples/rewind_session/__init__.py | 15 ++ contributing/samples/rewind_session/agent.py | 71 +++++ src/google/adk/artifacts/artifact_util.py | 116 ++++++++ .../adk/artifacts/gcs_artifact_service.py | 5 + .../artifacts/in_memory_artifact_service.py | 44 +++- src/google/adk/events/event_actions.py | 3 + src/google/adk/flows/llm_flows/contents.py | 21 +- src/google/adk/runners.py | 145 +++++++++- .../unittests/artifacts/test_artifact_util.py | 109 ++++++++ .../flows/llm_flows/test_contents.py | 57 ++++ tests/unittests/runners/test_runner_rewind.py | 248 ++++++++++++++++++ 11 files changed, 830 insertions(+), 4 deletions(-) create mode 100644 contributing/samples/rewind_session/__init__.py create mode 100644 contributing/samples/rewind_session/agent.py create mode 100644 src/google/adk/artifacts/artifact_util.py create mode 100644 tests/unittests/artifacts/test_artifact_util.py create mode 100644 tests/unittests/runners/test_runner_rewind.py diff --git a/contributing/samples/rewind_session/__init__.py b/contributing/samples/rewind_session/__init__.py new file mode 100644 index 0000000000..c48963cdc7 --- /dev/null +++ b/contributing/samples/rewind_session/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/rewind_session/agent.py b/contributing/samples/rewind_session/agent.py new file mode 100644 index 0000000000..569bde0737 --- /dev/null +++ b/contributing/samples/rewind_session/agent.py @@ -0,0 +1,71 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from google.adk import Agent +from google.adk.tools.tool_context import ToolContext +from google.genai import types + + +async def update_state(tool_context: ToolContext, key: str, value: str) -> dict: + """Updates a state value.""" + tool_context.state[key] = value + return {"status": f"Updated state '{key}' to '{value}'"} + + +async def load_state(tool_context: ToolContext, key: str) -> dict: + """Loads a state value.""" + return {key: tool_context.state.get(key)} + + +async def save_artifact( + tool_context: ToolContext, filename: str, content: str +) -> dict: + """Saves an artifact with the given filename and content.""" + artifact_bytes = content.encode("utf-8") + artifact_part = types.Part( + inline_data=types.Blob(mime_type="text/plain", data=artifact_bytes) + ) + version = await tool_context.save_artifact(filename, artifact_part) + return {"status": "success", "filename": filename, "version": version} + + +async def load_artifact(tool_context: ToolContext, filename: str) -> dict: + """Loads an artifact with the given filename.""" + artifact = await tool_context.load_artifact(filename) + if not artifact: + return {"error": f"Artifact '{filename}' not found"} + content = artifact.inline_data.data.decode("utf-8") + return {"filename": filename, "content": content} + + +# Create the agent +root_agent = Agent( + name="state_agent", + model="gemini-2.0-flash", + instruction="""You are an agent that manages state and artifacts. + + You can: + - Update state value + - Load state value + - Save artifact + - Load artifact + + Use the appropriate tool based on what the user asks for.""", + tools=[ + update_state, + load_state, + save_artifact, + load_artifact, + ], +) diff --git a/src/google/adk/artifacts/artifact_util.py b/src/google/adk/artifacts/artifact_util.py new file mode 100644 index 0000000000..15cdd4dedb --- /dev/null +++ b/src/google/adk/artifacts/artifact_util.py @@ -0,0 +1,116 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""Utility functions for handling artifact URIs.""" + +from __future__ import annotations + +import re +from typing import NamedTuple +from typing import Optional + +from google.genai import types + + +class ParsedArtifactUri(NamedTuple): + """The result of parsing an artifact URI.""" + + app_name: str + user_id: str + session_id: Optional[str] + filename: str + version: int + + +_SESSION_SCOPED_ARTIFACT_URI_RE = re.compile( + r"artifact://apps/([^/]+)/users/([^/]+)/sessions/([^/]+)/artifacts/([^/]+)/versions/(\d+)" +) +_USER_SCOPED_ARTIFACT_URI_RE = re.compile( + r"artifact://apps/([^/]+)/users/([^/]+)/artifacts/([^/]+)/versions/(\d+)" +) + + +def parse_artifact_uri(uri: str) -> Optional[ParsedArtifactUri]: + """Parses an artifact URI. + + Args: + uri: The artifact URI to parse. + + Returns: + A ParsedArtifactUri if parsing is successful, None otherwise. + """ + if not uri or not uri.startswith("artifact://"): + return None + + match = _SESSION_SCOPED_ARTIFACT_URI_RE.match(uri) + if match: + return ParsedArtifactUri( + app_name=match.group(1), + user_id=match.group(2), + session_id=match.group(3), + filename=match.group(4), + version=int(match.group(5)), + ) + + match = _USER_SCOPED_ARTIFACT_URI_RE.match(uri) + if match: + return ParsedArtifactUri( + app_name=match.group(1), + user_id=match.group(2), + session_id=None, + filename=match.group(3), + version=int(match.group(4)), + ) + + return None + + +def get_artifact_uri( + app_name: str, + user_id: str, + filename: str, + version: int, + session_id: Optional[str] = None, +) -> str: + """Constructs an artifact URI. + + Args: + app_name: The name of the application. + user_id: The ID of the user. + filename: The name of the artifact file. + version: The version of the artifact. + session_id: The ID of the session. + + Returns: + The constructed artifact URI. + """ + if session_id: + return f"artifact://apps/{app_name}/users/{user_id}/sessions/{session_id}/artifacts/{filename}/versions/{version}" + else: + return f"artifact://apps/{app_name}/users/{user_id}/artifacts/{filename}/versions/{version}" + + +def is_artifact_ref(artifact: types.Part) -> bool: + """Checks if an artifact part is an artifact reference. + + Args: + artifact: The artifact part to check. + + Returns: + True if the artifact part is an artifact reference, False otherwise. + """ + return bool( + artifact.file_data + and artifact.file_data.file_uri + and artifact.file_data.file_uri.startswith("artifact://") + ) diff --git a/src/google/adk/artifacts/gcs_artifact_service.py b/src/google/adk/artifacts/gcs_artifact_service.py index d8a5b2fd1e..b834584b78 100644 --- a/src/google/adk/artifacts/gcs_artifact_service.py +++ b/src/google/adk/artifacts/gcs_artifact_service.py @@ -212,6 +212,11 @@ def _save_artifact( blob.upload_from_string( data=artifact.text, ) + elif artifact.file_data: + raise NotImplementedError( + "Saving artifact with file_data is not supported yet in" + " GcsArtifactService." + ) else: raise ValueError("Artifact must have either inline_data or text.") diff --git a/src/google/adk/artifacts/in_memory_artifact_service.py b/src/google/adk/artifacts/in_memory_artifact_service.py index f7b07d35cc..246e8a85fb 100644 --- a/src/google/adk/artifacts/in_memory_artifact_service.py +++ b/src/google/adk/artifacts/in_memory_artifact_service.py @@ -18,6 +18,7 @@ from typing import Any from typing import Optional +from google.adk.artifacts import artifact_util from google.genai import types from pydantic import BaseModel from pydantic import Field @@ -122,7 +123,15 @@ async def save_artifact( elif artifact.text is not None: artifact_version.mime_type = "text/plain" elif artifact.file_data is not None: - artifact_version.mime_type = artifact.file_data.mime_type + if artifact_util.is_artifact_ref(artifact): + if not artifact_util.parse_artifact_uri(artifact.file_data.file_uri): + raise ValueError( + f"Invalid artifact reference URI: {artifact.file_data.file_uri}" + ) + # If it's a valid artifact URI, we store the artifact part as-is. + # And we don't know the mime type until we load it. + else: + artifact_version.mime_type = artifact.file_data.mime_type else: raise ValueError("Not supported artifact type.") @@ -147,11 +156,42 @@ async def load_artifact( return None if version is None: version = -1 + try: - return versions[version].data + artifact_entry = versions[version] except IndexError: return None + if artifact_entry is None: + return None + + # Resolve artifact reference if needed. + artifact_data = artifact_entry.data + if artifact_util.is_artifact_ref(artifact_data): + parsed_uri = artifact_util.parse_artifact_uri( + artifact_data.file_data.file_uri + ) + if not parsed_uri: + raise ValueError( + "Invalid artifact reference URI:" + f" {artifact_data.file_data.file_uri}" + ) + return await self.load_artifact( + app_name=parsed_uri.app_name, + user_id=parsed_uri.user_id, + filename=parsed_uri.filename, + session_id=parsed_uri.session_id, + version=parsed_uri.version, + ) + + if ( + artifact_data == types.Part() + or artifact_data == types.Part(text="") + or (artifact_data.inline_data and not artifact_data.inline_data.data) + ): + return None + return artifact_data + @override async def list_artifact_keys( self, *, app_name: str, user_id: str, session_id: Optional[str] = None diff --git a/src/google/adk/events/event_actions.py b/src/google/adk/events/event_actions.py index af3168fe18..da55c87306 100644 --- a/src/google/adk/events/event_actions.py +++ b/src/google/adk/events/event_actions.py @@ -104,3 +104,6 @@ class EventActions(BaseModel): agent_state: Optional[dict[str, Any]] = None """The agent state at the current event.""" + + rewind_before_invocation_id: Optional[str] = None + """The invocation id to rewind to. This is only set for rewind event.""" diff --git a/src/google/adk/flows/llm_flows/contents.py b/src/google/adk/flows/llm_flows/contents.py index 1ccb230c6b..3c4da72097 100644 --- a/src/google/adk/flows/llm_flows/contents.py +++ b/src/google/adk/flows/llm_flows/contents.py @@ -310,11 +310,30 @@ def _get_contents( accumulated_input_transcription = '' accumulated_output_transcription = '' + # Filter out events that are annulled by a rewind. + # By iterating backward, when a rewind event is found, we skip all events + # from that point back to the `rewind_before_invocation_id`, thus removing + # them from the history used for the LLM request. + rewind_filtered_events = [] + i = len(events) - 1 + while i >= 0: + event = events[i] + if event.actions and event.actions.rewind_before_invocation_id: + rewind_invocation_id = event.actions.rewind_before_invocation_id + for j in range(0, i, 1): + if events[j].invocation_id == rewind_invocation_id: + i = j + break + else: + rewind_filtered_events.append(event) + i -= 1 + rewind_filtered_events.reverse() + # Parse the events, leaving the contents and the function calls and # responses from the current agent. raw_filtered_events = [] has_compaction_events = False - for event in events: + for event in rewind_filtered_events: if _contains_empty_content(event): continue if not _is_event_belongs_to_branch(current_branch, event): diff --git a/src/google/adk/runners.py b/src/google/adk/runners.py index 261168997d..f68008af5c 100644 --- a/src/google/adk/runners.py +++ b/src/google/adk/runners.py @@ -28,6 +28,7 @@ import warnings from google.adk.apps.compaction import _run_compaction_for_sliding_window +from google.adk.artifacts import artifact_util from google.genai import types from .agents.active_streaming_tool import ActiveStreamingTool @@ -427,6 +428,146 @@ async def execute(ctx: InvocationContext) -> AsyncGenerator[Event]: async for event in agen: yield event + async def rewind_async( + self, + *, + user_id: str, + session_id: str, + rewind_before_invocation_id: str, + ) -> None: + """Rewinds the session to before the specified invocation.""" + session = await self.session_service.get_session( + app_name=self.app_name, user_id=user_id, session_id=session_id + ) + if not session: + raise ValueError(f'Session not found: {session_id}') + + rewind_event_index = -1 + for i, event in enumerate(session.events): + if event.invocation_id == rewind_before_invocation_id: + rewind_event_index = i + break + + if rewind_event_index == -1: + raise ValueError( + f'Invocation ID not found: {rewind_before_invocation_id}' + ) + + # Compute state delta to reverse changes + state_delta = await self._compute_state_delta_for_rewind( + session, rewind_event_index + ) + + # Compute artifact delta to reverse changes + artifact_delta = await self._compute_artifact_delta_for_rewind( + session, rewind_event_index + ) + + # Create rewind event + rewind_event = Event( + invocation_id=new_invocation_context_id(), + author='user', + actions=EventActions( + rewind_before_invocation_id=rewind_before_invocation_id, + state_delta=state_delta, + artifact_delta=artifact_delta, + ), + ) + + logger.info('Rewinding session to invocation: %s', rewind_event) + + await self.session_service.append_event(session=session, event=rewind_event) + + async def _compute_state_delta_for_rewind( + self, session: Session, rewind_event_index: int + ) -> dict[str, Any]: + """Computes the state delta to reverse changes.""" + state_at_rewind_point: dict[str, Any] = {} + for i in range(rewind_event_index): + if session.events[i].actions.state_delta: + for k, v in session.events[i].actions.state_delta.items(): + if k.startswith('app:') or k.startswith('user:'): + continue + if v is None: + state_at_rewind_point.pop(k, None) + else: + state_at_rewind_point[k] = v + + current_state = session.state + rewind_state_delta = {} + + # 1. Add/update keys in rewind_state_delta to match state_at_rewind_point. + for key, value_at_rewind in state_at_rewind_point.items(): + if key not in current_state or current_state[key] != value_at_rewind: + rewind_state_delta[key] = value_at_rewind + + # 2. Set keys to None in rewind_state_delta if they are in current_state + # but not in state_at_rewind_point. These keys were added after the + # rewind point and need to be removed. + for key in current_state: + if key.startswith('app:') or key.startswith('user:'): + continue + if key not in state_at_rewind_point: + rewind_state_delta[key] = None + + return rewind_state_delta + + async def _compute_artifact_delta_for_rewind( + self, session: Session, rewind_event_index: int + ) -> dict[str, int]: + """Computes the artifact delta to reverse changes.""" + if not self.artifact_service: + return {} + + versions_at_rewind_point: dict[str, int] = {} + for i in range(rewind_event_index): + event = session.events[i] + if event.actions.artifact_delta: + versions_at_rewind_point.update(event.actions.artifact_delta) + + current_versions: dict[str, int] = {} + for event in session.events: + if event.actions.artifact_delta: + current_versions.update(event.actions.artifact_delta) + + rewind_artifact_delta = {} + for filename, vn in current_versions.items(): + if filename.startswith('user:'): + # User artifacts are not restored on rewind. + continue + vt = versions_at_rewind_point.get(filename) + if vt == vn: + continue + + rewind_artifact_delta[filename] = vn + 1 + if vt is None: + # Artifact did not exist at rewind point. Mark it as inaccessible. + artifact = types.Part( + inline_data=types.Blob( + mime_type='application/octet-stream', data=b'' + ) + ) + else: + # Artifact version changed after rewind point. Restore to version at + # rewind point. + artifact_uri = artifact_util.get_artifact_uri( + app_name=self.app_name, + user_id=session.user_id, + session_id=session.id, + filename=filename, + version=vt, + ) + artifact = types.Part(file_data=types.FileData(file_uri=artifact_uri)) + await self.artifact_service.save_artifact( + app_name=self.app_name, + user_id=session.user_id, + session_id=session.id, + filename=filename, + artifact=artifact, + ) + + return rewind_artifact_delta + async def _run_compaction_default(self, session: Session): """Runs compaction for other types of compactors. @@ -1083,7 +1224,7 @@ def __init__( self, agent: Optional[BaseAgent] = None, *, - app_name: Optional[str] = 'InMemoryRunner', + app_name: Optional[str] = None, plugins: Optional[list[BasePlugin]] = None, app: Optional[App] = None, ): @@ -1094,6 +1235,8 @@ def __init__( app_name: The application name of the runner. Defaults to 'InMemoryRunner'. """ + if app is None and app_name is None: + app_name = 'InMemoryRunner' super().__init__( app_name=app_name, agent=agent, diff --git a/tests/unittests/artifacts/test_artifact_util.py b/tests/unittests/artifacts/test_artifact_util.py new file mode 100644 index 0000000000..995bf015da --- /dev/null +++ b/tests/unittests/artifacts/test_artifact_util.py @@ -0,0 +1,109 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Tests for artifact_util.""" + +from google.adk.artifacts import artifact_util +from google.genai import types +import pytest + + +def test_parse_session_scoped_artifact_uri(): + """Tests parsing a valid session-scoped artifact URI.""" + uri = "artifact://apps/app1/users/user1/sessions/session1/artifacts/file1/versions/123" + parsed = artifact_util.parse_artifact_uri(uri) + assert parsed is not None + assert parsed.app_name == "app1" + assert parsed.user_id == "user1" + assert parsed.session_id == "session1" + assert parsed.filename == "file1" + assert parsed.version == 123 + + +def test_parse_user_scoped_artifact_uri(): + """Tests parsing a valid user-scoped artifact URI.""" + uri = "artifact://apps/app2/users/user2/artifacts/file2/versions/456" + parsed = artifact_util.parse_artifact_uri(uri) + assert parsed is not None + assert parsed.app_name == "app2" + assert parsed.user_id == "user2" + assert parsed.session_id is None + assert parsed.filename == "file2" + assert parsed.version == 456 + + +@pytest.mark.parametrize( + "invalid_uri", + [ + "http://example.com", + "artifact://invalid", + "artifact://app1/user1/sessions/session1/artifacts/file1", + "artifact://apps/app1/users/user1/sessions/session1/artifacts/file1", + "artifact://apps/app1/users/user1/artifacts/file1", + ], +) +def test_parse_invalid_artifact_uri(invalid_uri): + """Tests parsing invalid artifact URIs.""" + assert artifact_util.parse_artifact_uri(invalid_uri) is None + + +def test_get_session_scoped_artifact_uri(): + """Tests constructing a session-scoped artifact URI.""" + uri = artifact_util.get_artifact_uri( + app_name="app1", + user_id="user1", + session_id="session1", + filename="file1", + version=123, + ) + assert ( + uri + == "artifact://apps/app1/users/user1/sessions/session1/artifacts/file1/versions/123" + ) + + +def test_get_user_scoped_artifact_uri(): + """Tests constructing a user-scoped artifact URI.""" + uri = artifact_util.get_artifact_uri( + app_name="app2", user_id="user2", filename="file2", version=456 + ) + assert uri == "artifact://apps/app2/users/user2/artifacts/file2/versions/456" + + +def test_is_artifact_ref_true(): + """Tests is_artifact_ref with a valid artifact reference.""" + artifact = types.Part( + file_data=types.FileData( + file_uri="artifact://apps/a/u/s/f/v/1", mime_type="text/plain" + ) + ) + assert artifact_util.is_artifact_ref(artifact) is True + + +@pytest.mark.parametrize( + "part", + [ + types.Part(text="hello"), + types.Part(inline_data=types.Blob(data=b"123", mime_type="text/plain")), + types.Part( + file_data=types.FileData( + file_uri="http://example.com", mime_type="text/plain" + ) + ), + types.Part(), + ], +) +def test_is_artifact_ref_false(part): + """Tests is_artifact_ref with non-reference parts.""" + assert artifact_util.is_artifact_ref(part) is False diff --git a/tests/unittests/flows/llm_flows/test_contents.py b/tests/unittests/flows/llm_flows/test_contents.py index 7283a0ce7f..9e77407b27 100644 --- a/tests/unittests/flows/llm_flows/test_contents.py +++ b/tests/unittests/flows/llm_flows/test_contents.py @@ -324,6 +324,63 @@ async def test_confirmation_events_are_filtered(): ] +@pytest.mark.asyncio +async def test_rewind_events_are_filtered_out(): + """Test that events are filtered based on rewind action.""" + agent = Agent(model="gemini-2.5-flash", name="test_agent") + llm_request = LlmRequest(model="gemini-2.5-flash") + invocation_context = await testing_utils.create_invocation_context( + agent=agent + ) + + events = [ + Event( + invocation_id="inv1", + author="user", + content=types.UserContent("First message"), + ), + Event( + invocation_id="inv1", + author="test_agent", + content=types.ModelContent("First response"), + ), + Event( + invocation_id="inv2", + author="user", + content=types.UserContent("Second message"), + ), + Event( + invocation_id="inv2", + author="test_agent", + content=types.ModelContent("Second response"), + ), + Event( + invocation_id="rewind_inv", + author="test_agent", + actions=EventActions(rewind_before_invocation_id="inv2"), + ), + Event( + invocation_id="inv3", + author="user", + content=types.UserContent("Third message"), + ), + ] + invocation_context.session.events = events + + # Process the request + async for _ in contents.request_processor.run_async( + invocation_context, llm_request + ): + pass + + # Verify rewind correctly filters conversation history + assert llm_request.contents == [ + types.UserContent("First message"), + types.ModelContent("First response"), + types.UserContent("Third message"), + ] + + @pytest.mark.asyncio async def test_events_with_empty_content_are_skipped(): """Test that events with empty content (state-only changes) are skipped.""" diff --git a/tests/unittests/runners/test_runner_rewind.py b/tests/unittests/runners/test_runner_rewind.py new file mode 100644 index 0000000000..ae325e5ad9 --- /dev/null +++ b/tests/unittests/runners/test_runner_rewind.py @@ -0,0 +1,248 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Tests for runner.rewind_async.""" + +from google.adk.agents.base_agent import BaseAgent +from google.adk.artifacts.in_memory_artifact_service import InMemoryArtifactService +from google.adk.events.event import Event +from google.adk.events.event import EventActions +from google.adk.runners import Runner +from google.adk.sessions.in_memory_session_service import InMemorySessionService +from google.genai import types +import pytest + + +class TestRunnerRewind: + """Tests for runner.rewind_async.""" + + runner: Runner + + def setup_method(self): + """Set up test fixtures.""" + root_agent = BaseAgent(name="test_agent") + session_service = InMemorySessionService() + artifact_service = InMemoryArtifactService() + self.runner = Runner( + app_name="test_app", + agent=root_agent, + session_service=session_service, + artifact_service=artifact_service, + ) + + @pytest.mark.asyncio + async def test_rewind_async_with_state_and_artifacts(self): + """Tests rewind_async rewinds state and artifacts.""" + runner = self.runner + user_id = "test_user" + session_id = "test_session" + + # 1. Setup session and initial artifacts + session = await runner.session_service.create_session( + app_name=runner.app_name, user_id=user_id, session_id=session_id + ) + + # invocation1 + await runner.artifact_service.save_artifact( + app_name=runner.app_name, + user_id=user_id, + session_id=session_id, + filename="f1", + artifact=types.Part.from_text(text="f1v0"), + ) + event1 = Event( + invocation_id="invocation1", + author="agent", + content=types.Content(parts=[types.Part.from_text(text="event1")]), + actions=EventActions( + state_delta={"k1": "v1"}, artifact_delta={"f1": 0} + ), + ) + await runner.session_service.append_event(session=session, event=event1) + + # invocation2 + await runner.artifact_service.save_artifact( + app_name=runner.app_name, + user_id=user_id, + session_id=session_id, + filename="f1", + artifact=types.Part.from_text(text="f1v1"), + ) + await runner.artifact_service.save_artifact( + app_name=runner.app_name, + user_id=user_id, + session_id=session_id, + filename="f2", + artifact=types.Part.from_text(text="f2v0"), + ) + event2 = Event( + invocation_id="invocation2", + author="agent", + content=types.Content(parts=[types.Part.from_text(text="event2")]), + actions=EventActions( + state_delta={"k1": "v2", "k2": "v2"}, + artifact_delta={"f1": 1, "f2": 0}, + ), + ) + await runner.session_service.append_event(session=session, event=event2) + + # invocation3 + event3 = Event( + invocation_id="invocation3", + author="agent", + content=types.Content(parts=[types.Part.from_text(text="event3")]), + actions=EventActions(state_delta={"k2": "v3"}), + ) + await runner.session_service.append_event(session=session, event=event3) + + session = await runner.session_service.get_session( + app_name=runner.app_name, user_id=user_id, session_id=session_id + ) + assert session.state == {"k1": "v2", "k2": "v3"} + assert await runner.artifact_service.load_artifact( + app_name=runner.app_name, + user_id=user_id, + session_id=session_id, + filename="f1", + ) == types.Part.from_text(text="f1v1") + assert await runner.artifact_service.load_artifact( + app_name=runner.app_name, + user_id=user_id, + session_id=session_id, + filename="f2", + ) == types.Part.from_text(text="f2v0") + + # 2. Rewind before invocation2 + await runner.rewind_async( + user_id=user_id, + session_id=session_id, + rewind_before_invocation_id="invocation2", + ) + + # 3. Verify state and artifacts are rewinded + session = await runner.session_service.get_session( + app_name=runner.app_name, user_id=user_id, session_id=session_id + ) + # After rewind before invocation2, only event1 state delta should apply. + assert session.state["k1"] == "v1" + assert not session.state["k2"] + # f1 should be rewinded to v0 + assert await runner.artifact_service.load_artifact( + app_name=runner.app_name, + user_id=user_id, + session_id=session_id, + filename="f1", + ) == types.Part.from_text(text="f1v0") + # f2 should not exist + assert ( + await runner.artifact_service.load_artifact( + app_name=runner.app_name, + user_id=user_id, + session_id=session_id, + filename="f2", + ) + is None + ) + + @pytest.mark.asyncio + async def test_rewind_async_not_first_invocation(self): + """Tests rewind_async rewinds state and artifacts to invocation2.""" + runner = self.runner + user_id = "test_user" + session_id = "test_session" + + # 1. Setup session and initial artifacts + session = await runner.session_service.create_session( + app_name=runner.app_name, user_id=user_id, session_id=session_id + ) + # invocation1 + await runner.artifact_service.save_artifact( + app_name=runner.app_name, + user_id=user_id, + session_id=session_id, + filename="f1", + artifact=types.Part.from_text(text="f1v0"), + ) + event1 = Event( + invocation_id="invocation1", + author="agent", + content=types.Content(parts=[types.Part.from_text(text="event1")]), + actions=EventActions( + state_delta={"k1": "v1"}, artifact_delta={"f1": 0} + ), + ) + await runner.session_service.append_event(session=session, event=event1) + + # invocation2 + await runner.artifact_service.save_artifact( + app_name=runner.app_name, + user_id=user_id, + session_id=session_id, + filename="f1", + artifact=types.Part.from_text(text="f1v1"), + ) + await runner.artifact_service.save_artifact( + app_name=runner.app_name, + user_id=user_id, + session_id=session_id, + filename="f2", + artifact=types.Part.from_text(text="f2v0"), + ) + event2 = Event( + invocation_id="invocation2", + author="agent", + content=types.Content(parts=[types.Part.from_text(text="event2")]), + actions=EventActions( + state_delta={"k1": "v2", "k2": "v2"}, + artifact_delta={"f1": 1, "f2": 0}, + ), + ) + await runner.session_service.append_event(session=session, event=event2) + + # invocation3 + event3 = Event( + invocation_id="invocation3", + author="agent", + content=types.Content(parts=[types.Part.from_text(text="event3")]), + actions=EventActions(state_delta={"k2": "v3"}), + ) + await runner.session_service.append_event(session=session, event=event3) + + # 2. Rewind before invocation3 + await runner.rewind_async( + user_id=user_id, + session_id=session_id, + rewind_before_invocation_id="invocation3", + ) + + # 3. Verify state and artifacts are rewinded + session = await runner.session_service.get_session( + app_name=runner.app_name, user_id=user_id, session_id=session_id + ) + # After rewind before invocation3, event1 and event2 state deltas should apply. + assert session.state == {"k1": "v2", "k2": "v2"} + # f1 should be v1 + assert await runner.artifact_service.load_artifact( + app_name=runner.app_name, + user_id=user_id, + session_id=session_id, + filename="f1", + ) == types.Part.from_text(text="f1v1") + # f2 should be v0 + assert await runner.artifact_service.load_artifact( + app_name=runner.app_name, + user_id=user_id, + session_id=session_id, + filename="f2", + ) == types.Part.from_text(text="f2v0") From cf3403231dfc77fb94d4dfa691486707af56cf75 Mon Sep 17 00:00:00 2001 From: Ankur Sharma Date: Fri, 17 Oct 2025 08:24:40 -0700 Subject: [PATCH 127/303] chore: Fix evaluation test cases to only use pytest features PiperOrigin-RevId: 820700378 --- .../unittests/evaluation/test_eval_config.py | 11 +- .../evaluation/test_evaluation_generator.py | 18 +- .../evaluation/test_hallucinations_v1.py | 185 +++++++++--------- .../unittests/evaluation/test_llm_as_judge.py | 15 +- .../evaluation/test_local_eval_service.py | 31 +-- .../test_local_eval_set_results_manager.py | 20 +- .../test_request_intercepter_plugin.py | 6 +- .../evaluation/test_response_evaluator.py | 24 +-- .../evaluation/test_safety_evaluator.py | 13 +- .../evaluation/test_vertex_ai_eval_facade.py | 28 ++- 10 files changed, 176 insertions(+), 175 deletions(-) diff --git a/tests/unittests/evaluation/test_eval_config.py b/tests/unittests/evaluation/test_eval_config.py index 150e30a621..a46b9dfcb0 100644 --- a/tests/unittests/evaluation/test_eval_config.py +++ b/tests/unittests/evaluation/test_eval_config.py @@ -14,8 +14,6 @@ from __future__ import annotations -from unittest import mock - from google.adk.evaluation.eval_config import _DEFAULT_EVAL_CONFIG from google.adk.evaluation.eval_config import EvalConfig from google.adk.evaluation.eval_config import get_eval_metrics_from_config @@ -28,13 +26,14 @@ def test_get_evaluation_criteria_or_default_returns_default(): assert get_evaluation_criteria_or_default("") == _DEFAULT_EVAL_CONFIG -def test_get_evaluation_criteria_or_default_reads_from_file(): +def test_get_evaluation_criteria_or_default_reads_from_file(mocker): eval_config = EvalConfig( criteria={"tool_trajectory_avg_score": 0.5, "response_match_score": 0.5} ) - mock_open = mock.mock_open(read_data=eval_config.model_dump_json()) - with mock.patch("builtins.open", mock_open): - assert get_evaluation_criteria_or_default("dummy_path") == eval_config + mocker.patch( + "builtins.open", mocker.mock_open(read_data=eval_config.model_dump_json()) + ) + assert get_evaluation_criteria_or_default("dummy_path") == eval_config def test_get_eval_metrics_from_config(): diff --git a/tests/unittests/evaluation/test_evaluation_generator.py b/tests/unittests/evaluation/test_evaluation_generator.py index 4d6d550989..133c618762 100644 --- a/tests/unittests/evaluation/test_evaluation_generator.py +++ b/tests/unittests/evaluation/test_evaluation_generator.py @@ -14,8 +14,6 @@ from __future__ import annotations -from unittest import mock - from google.adk.evaluation.app_details import AgentDetails from google.adk.evaluation.app_details import AppDetails from google.adk.evaluation.evaluation_generator import EvaluationGenerator @@ -206,17 +204,17 @@ def test_multi_agent( class TestGetAppDetailsByInvocationId: """Test cases for EvaluationGenerator._get_app_details_by_invocation_id method.""" - def test_get_app_details_by_invocation_id_empty(self): + def test_get_app_details_by_invocation_id_empty(self, mocker): """Tests with an empty list of events.""" - mock_request_intercepter = mock.MagicMock(spec=_RequestIntercepterPlugin) + mock_request_intercepter = mocker.MagicMock(spec=_RequestIntercepterPlugin) app_details = EvaluationGenerator._get_app_details_by_invocation_id( [], mock_request_intercepter ) assert app_details == {} - def test_get_app_details_by_invocation_id_no_model_requests(self): + def test_get_app_details_by_invocation_id_no_model_requests(self, mocker): """Tests when request_intercepter returns no model requests.""" - mock_request_intercepter = mock.MagicMock(spec=_RequestIntercepterPlugin) + mock_request_intercepter = mocker.MagicMock(spec=_RequestIntercepterPlugin) mock_request_intercepter.get_model_request.return_value = None events = [ _build_event("user", [types.Part(text="Hello")], "inv1"), @@ -230,9 +228,9 @@ def test_get_app_details_by_invocation_id_no_model_requests(self): events[1] ) - def test_get_app_details_single_invocation_single_agent(self): + def test_get_app_details_single_invocation_single_agent(self, mocker): """Tests a single invocation with one agent.""" - mock_request_intercepter = mock.MagicMock(spec=_RequestIntercepterPlugin) + mock_request_intercepter = mocker.MagicMock(spec=_RequestIntercepterPlugin) mock_llm_request = LlmRequest(model="test") mock_llm_request.config.system_instruction = "instruction1" mock_llm_request.config.tools = [types.Tool()] @@ -262,9 +260,9 @@ def test_get_app_details_single_invocation_single_agent(self): events[1] ) - def test_get_app_details_multiple_invocations_multiple_agents(self): + def test_get_app_details_multiple_invocations_multiple_agents(self, mocker): """Tests multiple invocations with multiple agents.""" - mock_request_intercepter = mock.MagicMock(spec=_RequestIntercepterPlugin) + mock_request_intercepter = mocker.MagicMock(spec=_RequestIntercepterPlugin) def get_model_request_side_effect(event): mock_llm_request = LlmRequest(model="test") diff --git a/tests/unittests/evaluation/test_hallucinations_v1.py b/tests/unittests/evaluation/test_hallucinations_v1.py index d74cb24a1f..42953743da 100644 --- a/tests/unittests/evaluation/test_hallucinations_v1.py +++ b/tests/unittests/evaluation/test_hallucinations_v1.py @@ -13,9 +13,6 @@ # limitations under the License. import json -from unittest.mock import AsyncMock -from unittest.mock import MagicMock -from unittest.mock import patch from google.adk.evaluation.app_details import AgentDetails from google.adk.evaluation.app_details import AppDetails @@ -34,13 +31,13 @@ @pytest.fixture -def mock_llm_registry(): +def mock_llm_registry(mocker): """Mocks LLMRegistry to avoid actual model loading during tests.""" - with patch( + MockLLMRegistry = mocker.patch( "google.adk.evaluation.hallucinations_v1.LLMRegistry" - ) as MockLLMRegistry: - MockLLMRegistry.return_value.resolve.return_value = AsyncMock - yield + ) + MockLLMRegistry.return_value.resolve.return_value = mocker.MagicMock() + yield @pytest.fixture @@ -176,8 +173,8 @@ def test_parse_validation_results_empty(self): class TestEvaluateNlResponse: """Test cases for _evaluate_nl_response method.""" - def _create_genai_response(self, text): - response_mock = MagicMock() + def _create_genai_response(self, text, mocker): + response_mock = mocker.MagicMock() response_mock.content = genai_types.Content( parts=[genai_types.Part(text=text)] ) @@ -185,12 +182,12 @@ def _create_genai_response(self, text): @pytest.mark.asyncio async def test_evaluate_nl_response_unexpected_labels( - self, hallucinations_metric + self, hallucinations_metric, mocker ): """Tests _evaluate_nl_response with unexpected labels.""" metric = hallucinations_metric seg_response = self._create_genai_response( - "sentence 1sentence 2" + "sentence 1sentence 2", mocker ) val_response_text = """sentence: sentence 1 label: @@ -204,7 +201,7 @@ async def test_evaluate_nl_response_unexpected_labels( supporting_excerpt: null contradicting_excerpt: null """ - val_response = self._create_genai_response(val_response_text) + val_response = self._create_genai_response(val_response_text, mocker) async def seg_gen(): yield seg_response @@ -212,7 +209,7 @@ async def seg_gen(): async def val_gen(): yield val_response - metric._judge_model.generate_content_async = MagicMock( + metric._judge_model.generate_content_async = mocker.MagicMock( side_effect=[ seg_gen(), val_gen(), @@ -223,14 +220,14 @@ async def val_gen(): @pytest.mark.asyncio async def test_evaluate_nl_response_missing_label( - self, hallucinations_metric + self, hallucinations_metric, mocker ): """Tests _evaluate_nl_response with missing labels in validation results.""" metric = hallucinations_metric seg_response = self._create_genai_response( - "sentence 1" + "sentence 1", mocker ) - val_response = self._create_genai_response("val_response") + val_response = self._create_genai_response("val_response", mocker) async def seg_gen(): yield seg_response @@ -238,7 +235,7 @@ async def seg_gen(): async def val_gen(): yield val_response - metric._judge_model.generate_content_async = MagicMock( + metric._judge_model.generate_content_async = mocker.MagicMock( side_effect=[ seg_gen(), val_gen(), @@ -585,7 +582,7 @@ class TestEvaluateInvocationsAgentTree: @pytest.mark.asyncio async def test_evaluate_invocations_multi_agents( - self, hallucinations_metric, agent_tree_data + self, hallucinations_metric, agent_tree_data, mocker ): """Tests evaluate_invocations with agent tree and checks contexts.""" invocation, expected_invocation = agent_tree_data @@ -804,22 +801,22 @@ async def mock_evaluate_nl_response(nl_response, context): }]) return None, "error" - with patch( + mocker.patch( "google.adk.evaluation.hallucinations_v1.HallucinationsV1Evaluator._evaluate_nl_response", side_effect=mock_evaluate_nl_response, - ): - result = await metric.evaluate_invocations( - [invocation], [expected_invocation] - ) + ) + result = await metric.evaluate_invocations( + [invocation], [expected_invocation] + ) - assert result.overall_score == pytest.approx(0.5) - assert len(result.per_invocation_results) == 1 - per_invocation_result = result.per_invocation_results[0] - assert per_invocation_result.score == pytest.approx(0.5) + assert result.overall_score == pytest.approx(0.5) + assert len(result.per_invocation_results) == 1 + per_invocation_result = result.per_invocation_results[0] + assert per_invocation_result.score == pytest.approx(0.5) @pytest.mark.asyncio async def test_evaluate_invocations_agent_tree_skip_intermediate( - self, mock_llm_registry, agent_tree_data + self, mock_llm_registry, agent_tree_data, mocker ): """Tests evaluate_invocations with agent tree skipping intermediate steps.""" invocation, expected_invocation = agent_tree_data @@ -927,18 +924,18 @@ async def mock_evaluate_nl_response(nl_response, context): "label": "contradictory", }]) - with patch( + mocker.patch( "google.adk.evaluation.hallucinations_v1.HallucinationsV1Evaluator._evaluate_nl_response", side_effect=mock_evaluate_nl_response, - ): - result = await metric.evaluate_invocations( - [invocation], [expected_invocation] - ) + ) + result = await metric.evaluate_invocations( + [invocation], [expected_invocation] + ) - assert result.overall_score == 0.0 - assert len(result.per_invocation_results) == 1 - per_invocation_result = result.per_invocation_results[0] - assert per_invocation_result.score == 0.0 + assert result.overall_score == 0.0 + assert len(result.per_invocation_results) == 1 + per_invocation_result = result.per_invocation_results[0] + assert per_invocation_result.score == 0.0 @pytest.fixture @@ -1053,7 +1050,7 @@ class TestEvaluateInvocationsTimeWeather: @pytest.mark.asyncio async def test_evaluate_invocations_time_weather( - self, hallucinations_metric, time_weather_data + self, hallucinations_metric, time_weather_data, mocker ): """Tests evaluate_invocations with time/weather agent.""" invocation, response1, response2 = time_weather_data @@ -1190,20 +1187,20 @@ async def mock_evaluate_nl_response(nl_response, context): ]) return None, "error" - with patch( + mocker.patch( "google.adk.evaluation.hallucinations_v1.HallucinationsV1Evaluator._evaluate_nl_response", side_effect=mock_evaluate_nl_response, - ): - result = await metric.evaluate_invocations([invocation], [invocation]) + ) + result = await metric.evaluate_invocations([invocation], [invocation]) - assert result.overall_score == pytest.approx(5 / 6) - assert len(result.per_invocation_results) == 1 - per_invocation_result = result.per_invocation_results[0] - assert per_invocation_result.score == pytest.approx(5 / 6) + assert result.overall_score == pytest.approx(5 / 6) + assert len(result.per_invocation_results) == 1 + per_invocation_result = result.per_invocation_results[0] + assert per_invocation_result.score == pytest.approx(5 / 6) @pytest.mark.asyncio async def test_evaluate_invocations_time_weather_skip_intermediate( - self, mock_llm_registry, time_weather_data + self, mock_llm_registry, time_weather_data, mocker ): """Tests evaluate_invocations with time/weather agent.""" invocation, _, response2 = time_weather_data @@ -1300,20 +1297,20 @@ async def mock_evaluate_nl_response(nl_response, context): {"sentence": sentence2, "label": "supported"}, ]) - with patch( + mocker.patch( "google.adk.evaluation.hallucinations_v1.HallucinationsV1Evaluator._evaluate_nl_response", side_effect=mock_evaluate_nl_response, - ): - result = await metric.evaluate_invocations([invocation], [invocation]) + ) + result = await metric.evaluate_invocations([invocation], [invocation]) - assert result.overall_score == 1.0 - assert len(result.per_invocation_results) == 1 - per_invocation_result = result.per_invocation_results[0] - assert per_invocation_result.score == 1.0 + assert result.overall_score == 1.0 + assert len(result.per_invocation_results) == 1 + per_invocation_result = result.per_invocation_results[0] + assert per_invocation_result.score == 1.0 @pytest.mark.asyncio -async def test_evaluate_invocations_success_path(hallucinations_metric): +async def test_evaluate_invocations_success_path(hallucinations_metric, mocker): metric = hallucinations_metric app_details = AppDetails( agent_details={ @@ -1380,18 +1377,18 @@ async def mock_evaluate_nl_response(nl_response, context): ) return None, "error" - with patch( + mocker.patch( "google.adk.evaluation.hallucinations_v1.HallucinationsV1Evaluator._evaluate_nl_response", side_effect=mock_evaluate_nl_response, - ): - result = await metric.evaluate_invocations( - [actual_invocation], [expected_invocation] - ) + ) + result = await metric.evaluate_invocations( + [actual_invocation], [expected_invocation] + ) - assert result.overall_score == pytest.approx(0.5) - assert len(result.per_invocation_results) == 1 - per_invocation_result = result.per_invocation_results[0] - assert per_invocation_result.score == pytest.approx(0.5) + assert result.overall_score == pytest.approx(0.5) + assert len(result.per_invocation_results) == 1 + per_invocation_result = result.per_invocation_results[0] + assert per_invocation_result.score == pytest.approx(0.5) @pytest.mark.asyncio @@ -1446,7 +1443,9 @@ async def test_evaluate_invocations_no_nl_response(hallucinations_metric): @pytest.mark.asyncio -async def test_evaluate_all_invocations_not_evaluated(hallucinations_metric): +async def test_evaluate_all_invocations_not_evaluated( + hallucinations_metric, mocker +): metric = hallucinations_metric app_details = AppDetails( agent_details={ @@ -1490,30 +1489,32 @@ async def test_evaluate_all_invocations_not_evaluated(hallucinations_metric): async def mock_evaluate_nl_response(nl_response, context): return None, "Judge model error." - with patch( + mocker.patch( "google.adk.evaluation.hallucinations_v1.HallucinationsV1Evaluator._evaluate_nl_response", side_effect=mock_evaluate_nl_response, - ): - result = await metric.evaluate_invocations( - [actual_invocation, actual_invocation], - [expected_invocation, expected_invocation], - ) + ) + result = await metric.evaluate_invocations( + [actual_invocation, actual_invocation], + [expected_invocation, expected_invocation], + ) - assert len(result.per_invocation_results) == 2 - assert result.per_invocation_results[0].score is None - assert ( - result.per_invocation_results[0].eval_status == EvalStatus.NOT_EVALUATED - ) - assert result.per_invocation_results[1].score is None - assert ( - result.per_invocation_results[1].eval_status == EvalStatus.NOT_EVALUATED - ) - assert result.overall_score is None - assert result.overall_eval_status == EvalStatus.NOT_EVALUATED + assert len(result.per_invocation_results) == 2 + assert result.per_invocation_results[0].score is None + assert ( + result.per_invocation_results[0].eval_status == EvalStatus.NOT_EVALUATED + ) + assert result.per_invocation_results[1].score is None + assert ( + result.per_invocation_results[1].eval_status == EvalStatus.NOT_EVALUATED + ) + assert result.overall_score is None + assert result.overall_eval_status == EvalStatus.NOT_EVALUATED @pytest.mark.asyncio -async def test_evaluate_invocations_partial_failure(hallucinations_metric): +async def test_evaluate_invocations_partial_failure( + hallucinations_metric, mocker +): metric = hallucinations_metric app_details = AppDetails( agent_details={ @@ -1563,15 +1564,15 @@ async def mock_evaluate_nl_response(nl_response, context): return None, "some error during evaluation" return None, "error" - with patch( + mocker.patch( "google.adk.evaluation.hallucinations_v1.HallucinationsV1Evaluator._evaluate_nl_response", side_effect=mock_evaluate_nl_response, - ): - result = await metric.evaluate_invocations( - [actual_invocation], [expected_invocation] - ) + ) + result = await metric.evaluate_invocations( + [actual_invocation], [expected_invocation] + ) - assert result.overall_score == 0.8 - assert len(result.per_invocation_results) == 1 - per_invocation_result = result.per_invocation_results[0] - assert per_invocation_result.score == 0.8 + assert result.overall_score == 0.8 + assert len(result.per_invocation_results) == 1 + per_invocation_result = result.per_invocation_results[0] + assert per_invocation_result.score == 0.8 diff --git a/tests/unittests/evaluation/test_llm_as_judge.py b/tests/unittests/evaluation/test_llm_as_judge.py index 6618e6c1c0..eb5a11543b 100644 --- a/tests/unittests/evaluation/test_llm_as_judge.py +++ b/tests/unittests/evaluation/test_llm_as_judge.py @@ -15,7 +15,6 @@ from __future__ import annotations from typing import Optional -from unittest.mock import MagicMock from google.adk.evaluation.eval_case import Invocation from google.adk.evaluation.eval_metrics import EvalMetric @@ -128,8 +127,8 @@ def test_llm_as_judge_init_unregistered_model(): @pytest.fixture -def mock_judge_model(): - mock_judge_model = MagicMock() +def mock_judge_model(mocker): + mock_judge_model = mocker.MagicMock() async def mock_generate_content_async(llm_request): yield LlmResponse( @@ -144,30 +143,30 @@ async def mock_generate_content_async(llm_request): @pytest.mark.asyncio async def test_evaluate_invocations_with_mock( - mock_llm_as_judge, mock_judge_model + mock_llm_as_judge, mock_judge_model, mocker ): mock_llm_as_judge._judge_model = mock_judge_model - mock_format_auto_rater_prompt = MagicMock( + mock_format_auto_rater_prompt = mocker.MagicMock( wraps=mock_llm_as_judge.format_auto_rater_prompt ) mock_llm_as_judge.format_auto_rater_prompt = mock_format_auto_rater_prompt - mock_convert_auto_rater_response_to_score = MagicMock( + mock_convert_auto_rater_response_to_score = mocker.MagicMock( wraps=mock_llm_as_judge.convert_auto_rater_response_to_score ) mock_llm_as_judge.convert_auto_rater_response_to_score = ( mock_convert_auto_rater_response_to_score ) - mock_aggregate_per_invocation_samples = MagicMock( + mock_aggregate_per_invocation_samples = mocker.MagicMock( wraps=mock_llm_as_judge.aggregate_per_invocation_samples ) mock_llm_as_judge.aggregate_per_invocation_samples = ( mock_aggregate_per_invocation_samples ) - mock_aggregate_invocation_results = MagicMock( + mock_aggregate_invocation_results = mocker.MagicMock( wraps=mock_llm_as_judge.aggregate_invocation_results ) mock_llm_as_judge.aggregate_invocation_results = ( diff --git a/tests/unittests/evaluation/test_local_eval_service.py b/tests/unittests/evaluation/test_local_eval_service.py index f68136caa1..c9010444c0 100644 --- a/tests/unittests/evaluation/test_local_eval_service.py +++ b/tests/unittests/evaluation/test_local_eval_service.py @@ -14,7 +14,6 @@ import asyncio import sys -from unittest import mock from google.adk.agents.llm_agent import LlmAgent from google.adk.errors.not_found_error import NotFoundError @@ -47,8 +46,8 @@ @pytest.fixture -def mock_eval_sets_manager(): - return mock.create_autospec(EvalSetsManager) +def mock_eval_sets_manager(mocker): + return mocker.create_autospec(EvalSetsManager) @pytest.fixture @@ -58,8 +57,8 @@ def dummy_agent(): @pytest.fixture -def mock_eval_set_results_manager(): - return mock.create_autospec(EvalSetResultsManager) +def mock_eval_set_results_manager(mocker): + return mocker.create_autospec(EvalSetResultsManager) @pytest.fixture @@ -118,6 +117,7 @@ async def test_perform_inference_success( eval_service, dummy_agent, mock_eval_sets_manager, + mocker, ): eval_set = EvalSet( eval_set_id="test_eval_set", @@ -128,8 +128,8 @@ async def test_perform_inference_success( ) mock_eval_sets_manager.get_eval_set.return_value = eval_set - mock_inference_result = mock.MagicMock() - eval_service._perform_inference_sigle_eval_item = mock.AsyncMock( + mock_inference_result = mocker.MagicMock() + eval_service._perform_inference_sigle_eval_item = mocker.AsyncMock( return_value=mock_inference_result ) @@ -157,6 +157,7 @@ async def test_perform_inference_with_case_ids( eval_service, dummy_agent, mock_eval_sets_manager, + mocker, ): eval_set = EvalSet( eval_set_id="test_eval_set", @@ -168,8 +169,8 @@ async def test_perform_inference_with_case_ids( ) mock_eval_sets_manager.get_eval_set.return_value = eval_set - mock_inference_result = mock.MagicMock() - eval_service._perform_inference_sigle_eval_item = mock.AsyncMock( + mock_inference_result = mocker.MagicMock() + eval_service._perform_inference_sigle_eval_item = mocker.AsyncMock( return_value=mock_inference_result ) @@ -219,7 +220,7 @@ async def test_perform_inference_eval_set_not_found( @pytest.mark.asyncio async def test_evaluate_success( - eval_service, mock_eval_sets_manager, mock_eval_set_results_manager + eval_service, mock_eval_sets_manager, mock_eval_set_results_manager, mocker ): inference_results = [ InferenceResult( @@ -243,7 +244,7 @@ async def test_evaluate_success( evaluate_config=EvaluateConfig(eval_metrics=[eval_metric], parallelism=2), ) - mock_eval_case = mock.MagicMock(spec=EvalCase) + mock_eval_case = mocker.MagicMock(spec=EvalCase) mock_eval_case.conversation = [] mock_eval_case.session_input = None mock_eval_sets_manager.get_eval_case.return_value = mock_eval_case @@ -290,7 +291,7 @@ async def test_evaluate_eval_case_not_found( @pytest.mark.asyncio async def test_evaluate_single_inference_result( - eval_service, mock_eval_sets_manager, mock_eval_set_results_manager + eval_service, mock_eval_sets_manager, mock_eval_set_results_manager, mocker ): invocation = Invocation( user_content=genai_types.Content( @@ -314,7 +315,7 @@ async def test_evaluate_single_inference_result( eval_metric = EvalMetric(metric_name="fake_metric", threshold=0.5) evaluate_config = EvaluateConfig(eval_metrics=[eval_metric], parallelism=1) - mock_eval_case = mock.MagicMock(spec=EvalCase) + mock_eval_case = mocker.MagicMock(spec=EvalCase) mock_eval_case.conversation = [ invocation.model_copy(deep=True), invocation.model_copy(deep=True), @@ -370,7 +371,7 @@ def test_generate_final_eval_status_doesn_t_throw_on(eval_service): @pytest.mark.skipif( sys.version_info < (3, 10), reason="MCP tool requires Python 3.10+" ) -async def test_mcp_stdio_agent_no_runtime_error(): +async def test_mcp_stdio_agent_no_runtime_error(mocker): """Test that LocalEvalService can handle MCP stdio agents without RuntimeError. This is a regression test for GitHub issue #2196: @@ -421,7 +422,7 @@ async def test_mcp_stdio_agent_no_runtime_error(): ) # Create a mock eval sets manager that returns an eval case - mock_eval_sets_manager = mock.create_autospec(EvalSetsManager) + mock_eval_sets_manager = mocker.create_autospec(EvalSetsManager) test_eval_case = EvalCase( eval_id="test_mcp_case", conversation=[ diff --git a/tests/unittests/evaluation/test_local_eval_set_results_manager.py b/tests/unittests/evaluation/test_local_eval_set_results_manager.py index 3411d9b7a8..45500d71c5 100644 --- a/tests/unittests/evaluation/test_local_eval_set_results_manager.py +++ b/tests/unittests/evaluation/test_local_eval_set_results_manager.py @@ -19,7 +19,6 @@ import shutil import tempfile import time -from unittest.mock import patch from google.adk.errors.not_found_error import NotFoundError from google.adk.evaluation._eval_set_results_manager_utils import _sanitize_eval_set_result_name @@ -68,12 +67,11 @@ def setup(self): eval_case_results=self.eval_case_results, creation_timestamp=self.timestamp, ) - - def teardown(self): + yield shutil.rmtree(self.temp_dir) - @patch("time.time") - def test_save_eval_set_result(self, mock_time): + def test_save_eval_set_result(self, mocker): + mock_time = mocker.patch("time.time") mock_time.return_value = self.timestamp self.manager.save_eval_set_result( self.app_name, self.eval_set_id, self.eval_case_results @@ -93,8 +91,8 @@ def test_save_eval_set_result(self, mock_time): expected_eval_set_result_json = self.eval_set_result.model_dump_json() assert expected_eval_set_result_json == actual_eval_set_result_json - @patch("time.time") - def test_get_eval_set_result(self, mock_time): + def test_get_eval_set_result(self, mocker): + mock_time = mocker.patch("time.time") mock_time.return_value = self.timestamp self.manager.save_eval_set_result( self.app_name, self.eval_set_id, self.eval_case_results @@ -104,15 +102,15 @@ def test_get_eval_set_result(self, mock_time): ) assert retrieved_result == self.eval_set_result - @patch("time.time") - def test_get_eval_set_result_not_found(self, mock_time): + def test_get_eval_set_result_not_found(self, mocker): + mock_time = mocker.patch("time.time") mock_time.return_value = self.timestamp with pytest.raises(NotFoundError) as e: self.manager.get_eval_set_result(self.app_name, "non_existent_id") - @patch("time.time") - def test_list_eval_set_results(self, mock_time): + def test_list_eval_set_results(self, mocker): + mock_time = mocker.patch("time.time") mock_time.return_value = self.timestamp # Save two eval set results for the same app self.manager.save_eval_set_result( diff --git a/tests/unittests/evaluation/test_request_intercepter_plugin.py b/tests/unittests/evaluation/test_request_intercepter_plugin.py index 1381e0014c..3fa0aa50c6 100644 --- a/tests/unittests/evaluation/test_request_intercepter_plugin.py +++ b/tests/unittests/evaluation/test_request_intercepter_plugin.py @@ -14,8 +14,6 @@ from __future__ import annotations -from unittest import mock - from google.adk.agents.callback_context import CallbackContext from google.adk.evaluation.request_intercepter_plugin import _LLM_REQUEST_ID_KEY from google.adk.evaluation.request_intercepter_plugin import _RequestIntercepterPlugin @@ -26,7 +24,7 @@ class TestRequestIntercepterPlugin: - async def test_intercept_request_and_response(self): + async def test_intercept_request_and_response(self, mocker): plugin = _RequestIntercepterPlugin(name="test_plugin") llm_request = LlmRequest( model="test_model", @@ -37,7 +35,7 @@ async def test_intercept_request_and_response(self): ) ], ) - mock_invocation_context = mock.MagicMock() + mock_invocation_context = mocker.MagicMock() mock_invocation_context.session.state = {} callback_context = CallbackContext(mock_invocation_context) llm_response = LlmResponse() diff --git a/tests/unittests/evaluation/test_response_evaluator.py b/tests/unittests/evaluation/test_response_evaluator.py index bace9c6a44..8bf4b76f39 100644 --- a/tests/unittests/evaluation/test_response_evaluator.py +++ b/tests/unittests/evaluation/test_response_evaluator.py @@ -12,8 +12,9 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations + """Tests for the Response Evaluator.""" -from unittest.mock import patch from google.adk.evaluation.eval_case import Invocation from google.adk.evaluation.eval_metrics import PrebuiltMetrics @@ -24,14 +25,14 @@ from vertexai import types as vertexai_types -@patch( - "google.adk.evaluation.vertex_ai_eval_facade._VertexAiEvalFacade._perform_eval" -) class TestResponseEvaluator: """A class to help organize "patch" that are applicable to all tests.""" - def test_evaluate_invocations_rouge_metric(self, mock_perform_eval): + def test_evaluate_invocations_rouge_metric(self, mocker): """Test evaluate_invocations function for Rouge metric.""" + mock_perform_eval = mocker.patch( + "google.adk.evaluation.vertex_ai_eval_facade._VertexAiEvalFacade._perform_eval" + ) actual_invocations = [ Invocation( user_content=genai_types.Content( @@ -67,10 +68,11 @@ def test_evaluate_invocations_rouge_metric(self, mock_perform_eval): assert evaluation_result.overall_eval_status == EvalStatus.FAILED mock_perform_eval.assert_not_called() # Ensure _perform_eval was not called - def test_evaluate_invocations_coherence_metric_passed( - self, mock_perform_eval - ): + def test_evaluate_invocations_coherence_metric_passed(self, mocker): """Test evaluate_invocations function for Coherence metric.""" + mock_perform_eval = mocker.patch( + "google.adk.evaluation.vertex_ai_eval_facade._VertexAiEvalFacade._perform_eval" + ) actual_invocations = [ Invocation( user_content=genai_types.Content( @@ -115,7 +117,7 @@ def test_evaluate_invocations_coherence_metric_passed( vertexai_types.PrebuiltMetric.COHERENCE.name ] - def test_get_metric_info_response_evaluation_score(self, mock_perform_eval): + def test_get_metric_info_response_evaluation_score(self): """Test get_metric_info function for response evaluation metric.""" metric_info = ResponseEvaluator.get_metric_info( PrebuiltMetrics.RESPONSE_EVALUATION_SCORE.value @@ -127,7 +129,7 @@ def test_get_metric_info_response_evaluation_score(self, mock_perform_eval): assert metric_info.metric_value_info.interval.min_value == 1.0 assert metric_info.metric_value_info.interval.max_value == 5.0 - def test_get_metric_info_response_match_score(self, mock_perform_eval): + def test_get_metric_info_response_match_score(self): """Test get_metric_info function for response match metric.""" metric_info = ResponseEvaluator.get_metric_info( PrebuiltMetrics.RESPONSE_MATCH_SCORE.value @@ -136,7 +138,7 @@ def test_get_metric_info_response_match_score(self, mock_perform_eval): assert metric_info.metric_value_info.interval.min_value == 0.0 assert metric_info.metric_value_info.interval.max_value == 1.0 - def test_get_metric_info_invalid(self, mock_perform_eval): + def test_get_metric_info_invalid(self): """Test get_metric_info function for invalid metric.""" with pytest.raises(ValueError): ResponseEvaluator.get_metric_info("invalid_metric") diff --git a/tests/unittests/evaluation/test_safety_evaluator.py b/tests/unittests/evaluation/test_safety_evaluator.py index 5cc95b1d2b..29acf969d6 100644 --- a/tests/unittests/evaluation/test_safety_evaluator.py +++ b/tests/unittests/evaluation/test_safety_evaluator.py @@ -13,7 +13,6 @@ # limitations under the License. """Tests for the Response Evaluator.""" -from unittest.mock import patch from google.adk.evaluation.eval_case import Invocation from google.adk.evaluation.eval_metrics import EvalMetric @@ -24,16 +23,14 @@ from vertexai import types as vertexai_types -@patch( - "google.adk.evaluation.vertex_ai_eval_facade._VertexAiEvalFacade._perform_eval" -) class TestSafetyEvaluatorV1: """A class to help organize "patch" that are applicable to all tests.""" - def test_evaluate_invocations_coherence_metric_passed( - self, mock_perform_eval - ): + def test_evaluate_invocations_coherence_metric_passed(self, mocker): """Test evaluate_invocations function for Coherence metric.""" + mock_perform_eval = mocker.patch( + "google.adk.evaluation.vertex_ai_eval_facade._VertexAiEvalFacade._perform_eval" + ) actual_invocations = [ Invocation( user_content=genai_types.Content( @@ -78,7 +75,7 @@ def test_evaluate_invocations_coherence_metric_passed( vertexai_types.PrebuiltMetric.SAFETY.name ] - def test_get_metric_info(self, mock_perform_eval): + def test_get_metric_info(self): """Test get_metric_info function for Safety metric.""" metric_info = SafetyEvaluatorV1.get_metric_info() assert metric_info.metric_name == PrebuiltMetrics.SAFETY_V1.value diff --git a/tests/unittests/evaluation/test_vertex_ai_eval_facade.py b/tests/unittests/evaluation/test_vertex_ai_eval_facade.py index 8fd1705c49..ee4ff1d72a 100644 --- a/tests/unittests/evaluation/test_vertex_ai_eval_facade.py +++ b/tests/unittests/evaluation/test_vertex_ai_eval_facade.py @@ -12,10 +12,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations + """Tests for the Response Evaluator.""" import math import random -from unittest.mock import patch from google.adk.evaluation.eval_case import Invocation from google.adk.evaluation.evaluator import EvalStatus @@ -25,14 +26,14 @@ from vertexai import types as vertexai_types -@patch( - "google.adk.evaluation.vertex_ai_eval_facade._VertexAiEvalFacade._perform_eval" -) class TestVertexAiEvalFacade: """A class to help organize "patch" that are applicable to all tests.""" - def test_evaluate_invocations_metric_passed(self, mock_perform_eval): + def test_evaluate_invocations_metric_passed(self, mocker): """Test evaluate_invocations function for a metric.""" + mock_perform_eval = mocker.patch( + "google.adk.evaluation.vertex_ai_eval_facade._VertexAiEvalFacade._perform_eval" + ) actual_invocations = [ Invocation( user_content=genai_types.Content( @@ -77,8 +78,11 @@ def test_evaluate_invocations_metric_passed(self, mock_perform_eval): vertexai_types.PrebuiltMetric.COHERENCE.name ] - def test_evaluate_invocations_metric_failed(self, mock_perform_eval): + def test_evaluate_invocations_metric_failed(self, mocker): """Test evaluate_invocations function for a metric.""" + mock_perform_eval = mocker.patch( + "google.adk.evaluation.vertex_ai_eval_facade._VertexAiEvalFacade._perform_eval" + ) actual_invocations = [ Invocation( user_content=genai_types.Content( @@ -133,9 +137,12 @@ def test_evaluate_invocations_metric_failed(self, mock_perform_eval): ], ) def test_evaluate_invocations_metric_no_score( - self, mock_perform_eval, summary_metric_with_no_score + self, mocker, summary_metric_with_no_score ): """Test evaluate_invocations function for a metric.""" + mock_perform_eval = mocker.patch( + "google.adk.evaluation.vertex_ai_eval_facade._VertexAiEvalFacade._perform_eval" + ) actual_invocations = [ Invocation( user_content=genai_types.Content( @@ -180,10 +187,11 @@ def test_evaluate_invocations_metric_no_score( vertexai_types.PrebuiltMetric.COHERENCE.name ] - def test_evaluate_invocations_metric_multiple_invocations( - self, mock_perform_eval - ): + def test_evaluate_invocations_metric_multiple_invocations(self, mocker): """Test evaluate_invocations function for a metric with multiple invocations.""" + mock_perform_eval = mocker.patch( + "google.adk.evaluation.vertex_ai_eval_facade._VertexAiEvalFacade._perform_eval" + ) num_invocations = 6 actual_invocations = [] expected_invocations = [] From 8b3ed059c24903e8aca0a09d9d503b48af7df850 Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Fri, 17 Oct 2025 10:03:58 -0700 Subject: [PATCH 128/303] chore: Refactor and fix state management in the session service Also refactoring the test cases to focus on the expected behaviors PiperOrigin-RevId: 820734484 --- src/google/adk/sessions/_session_util.py | 18 ++ .../adk/sessions/database_session_service.py | 100 ++---- .../adk/sessions/in_memory_session_service.py | 56 ++-- .../sessions/test_session_service.py | 299 ++++++++---------- 4 files changed, 223 insertions(+), 250 deletions(-) diff --git a/src/google/adk/sessions/_session_util.py b/src/google/adk/sessions/_session_util.py index 68340c8b7b..0b2f99eef2 100644 --- a/src/google/adk/sessions/_session_util.py +++ b/src/google/adk/sessions/_session_util.py @@ -19,6 +19,8 @@ from typing import Type from typing import TypeVar +from .state import State + M = TypeVar("M") @@ -29,3 +31,19 @@ def decode_model( if data is None: return None return model_cls.model_validate(data) + + +def extract_state_delta( + state: dict[str, Any], +) -> dict[str, dict[str, Any]]: + """Extracts app, user, and session state deltas from a state dictionary.""" + deltas = {"app": {}, "user": {}, "session": {}} + if state: + for key in state.keys(): + if key.startswith(State.APP_PREFIX): + deltas["app"][key.removeprefix(State.APP_PREFIX)] = state[key] + elif key.startswith(State.USER_PREFIX): + deltas["user"][key.removeprefix(State.USER_PREFIX)] = state[key] + elif not key.startswith(State.TEMP_PREFIX): + deltas["session"][key] = state[key] + return deltas diff --git a/src/google/adk/sessions/database_session_service.py b/src/google/adk/sessions/database_session_service.py index 04af695b11..6ce14961f9 100644 --- a/src/google/adk/sessions/database_session_service.py +++ b/src/google/adk/sessions/database_session_service.py @@ -465,20 +465,14 @@ async def create_session( # 5. Return the session with self.database_session_factory() as sql_session: - # Fetch app and user states from storage storage_app_state = sql_session.get(StorageAppState, (app_name)) - storage_user_state = sql_session.get( - StorageUserState, (app_name, user_id) - ) - - app_state = storage_app_state.state if storage_app_state else {} - user_state = storage_user_state.state if storage_user_state else {} - - # Create state tables if not exist if not storage_app_state: storage_app_state = StorageAppState(app_name=app_name, state={}) sql_session.add(storage_app_state) + storage_user_state = sql_session.get( + StorageUserState, (app_name, user_id) + ) if not storage_user_state: storage_user_state = StorageUserState( app_name=app_name, user_id=user_id, state={} @@ -486,19 +480,16 @@ async def create_session( sql_session.add(storage_user_state) # Extract state deltas - app_state_delta, user_state_delta, session_state = _extract_state_delta( - state - ) + state_deltas = _session_util.extract_state_delta(state) + app_state_delta = state_deltas["app"] + user_state_delta = state_deltas["user"] + session_state = state_deltas["session"] # Apply state delta - app_state.update(app_state_delta) - user_state.update(user_state_delta) - - # Store app and user state if app_state_delta: - storage_app_state.state = app_state + storage_app_state.state = storage_app_state.state | app_state_delta if user_state_delta: - storage_user_state.state = user_state + storage_user_state.state = storage_user_state.state | user_state_delta # Store the session storage_session = StorageSession( @@ -513,7 +504,9 @@ async def create_session( sql_session.refresh(storage_session) # Merge states for response - merged_state = _merge_state(app_state, user_state, session_state) + merged_state = _merge_state( + storage_app_state.state, storage_user_state.state, session_state + ) session = storage_session.to_session(state=merged_state) return session @@ -536,19 +529,18 @@ async def get_session( if storage_session is None: return None + query = sql_session.query(StorageEvent).filter( + StorageEvent.app_name == app_name, + StorageEvent.user_id == user_id, + StorageEvent.session_id == storage_session.id, + ) + if config and config.after_timestamp: after_dt = datetime.fromtimestamp(config.after_timestamp) - timestamp_filter = StorageEvent.timestamp >= after_dt - else: - timestamp_filter = True + query = query.filter(StorageEvent.timestamp >= after_dt) storage_events = ( - sql_session.query(StorageEvent) - .filter(StorageEvent.app_name == app_name) - .filter(StorageEvent.session_id == storage_session.id) - .filter(StorageEvent.user_id == user_id) - .filter(timestamp_filter) - .order_by(StorageEvent.timestamp.desc()) + query.order_by(StorageEvent.timestamp.desc()) .limit( config.num_recent_events if config and config.num_recent_events @@ -660,30 +652,21 @@ async def append_event(self, session: Session, event: Event) -> Event: StorageUserState, (session.app_name, session.user_id) ) - app_state = storage_app_state.state if storage_app_state else {} - user_state = storage_user_state.state if storage_user_state else {} - session_state = storage_session.state - # Extract state delta - app_state_delta = {} - user_state_delta = {} - session_state_delta = {} - if event.actions: - if event.actions.state_delta: - app_state_delta, user_state_delta, session_state_delta = ( - _extract_state_delta(event.actions.state_delta) - ) - - # Merge state and update storage - if app_state_delta: - app_state.update(app_state_delta) - storage_app_state.state = app_state - if user_state_delta: - user_state.update(user_state_delta) - storage_user_state.state = user_state - if session_state_delta: - session_state.update(session_state_delta) - storage_session.state = session_state + if event.actions and event.actions.state_delta: + state_deltas = _session_util.extract_state_delta( + event.actions.state_delta + ) + app_state_delta = state_deltas["app"] + user_state_delta = state_deltas["user"] + session_state_delta = state_deltas["session"] + # Merge state and update storage + if app_state_delta: + storage_app_state.state = storage_app_state.state | app_state_delta + if user_state_delta: + storage_user_state.state = storage_user_state.state | user_state_delta + if session_state_delta: + storage_session.state = storage_session.state | session_state_delta sql_session.add(StorageEvent.from_event(session, event)) @@ -698,21 +681,6 @@ async def append_event(self, session: Session, event: Event) -> Event: return event -def _extract_state_delta(state: dict[str, Any]): - app_state_delta = {} - user_state_delta = {} - session_state_delta = {} - if state: - for key in state.keys(): - if key.startswith(State.APP_PREFIX): - app_state_delta[key.removeprefix(State.APP_PREFIX)] = state[key] - elif key.startswith(State.USER_PREFIX): - user_state_delta[key.removeprefix(State.USER_PREFIX)] = state[key] - elif not key.startswith(State.TEMP_PREFIX): - session_state_delta[key] = state[key] - return app_state_delta, user_state_delta, session_state_delta - - def _merge_state(app_state, user_state, session_state): # Merge states for response merged_state = copy.deepcopy(session_state) diff --git a/src/google/adk/sessions/in_memory_session_service.py b/src/google/adk/sessions/in_memory_session_service.py index adc0923004..e45cf9d8cb 100644 --- a/src/google/adk/sessions/in_memory_session_service.py +++ b/src/google/adk/sessions/in_memory_session_service.py @@ -22,6 +22,7 @@ from typing_extensions import override +from . import _session_util from ..events.event import Event from .base_session_service import BaseSessionService from .base_session_service import GetSessionConfig @@ -88,6 +89,17 @@ def _create_session_impl( state: Optional[dict[str, Any]] = None, session_id: Optional[str] = None, ) -> Session: + state_deltas = _session_util.extract_state_delta(state) + app_state_delta = state_deltas['app'] + user_state_delta = state_deltas['user'] + session_state = state_deltas['session'] + if app_state_delta: + self.app_state.setdefault(app_name, {}).update(app_state_delta) + if user_state_delta: + self.user_state.setdefault(app_name, {}).setdefault(user_id, {}).update( + user_state_delta + ) + session_id = ( session_id.strip() if session_id and session_id.strip() @@ -97,7 +109,7 @@ def _create_session_impl( app_name=app_name, user_id=user_id, id=session_id, - state=state or {}, + state=session_state or {}, last_update_time=time.time(), ) @@ -174,11 +186,13 @@ def _get_session_impl( if i >= 0: copied_session.events = copied_session.events[i + 1 :] + # Return a copy of the session object with merged state. return self._merge_state(app_name, user_id, copied_session) def _merge_state( self, app_name: str, user_id: str, copied_session: Session ) -> Session: + """Merges app and user state into session state.""" # Merge app state if app_name in self.app_state: for key in self.app_state[app_name].keys(): @@ -269,11 +283,9 @@ def _delete_session_impl( @override async def append_event(self, session: Session, event: Event) -> Event: - # Update the in-memory session. - await super().append_event(session=session, event=event) - session.last_update_time = event.timestamp + if event.partial: + return event - # Update the storage session app_name = session.app_name user_id = session.user_id session_id = session.id @@ -293,21 +305,29 @@ def _warning(message: str) -> None: _warning(f'session_id {session_id} not in sessions[app_name][user_id]') return event - if event.actions and event.actions.state_delta: - for key in event.actions.state_delta: - if key.startswith(State.APP_PREFIX): - self.app_state.setdefault(app_name, {})[ - key.removeprefix(State.APP_PREFIX) - ] = event.actions.state_delta[key] - - if key.startswith(State.USER_PREFIX): - self.user_state.setdefault(app_name, {}).setdefault(user_id, {})[ - key.removeprefix(State.USER_PREFIX) - ] = event.actions.state_delta[key] + # Update the in-memory session. + await super().append_event(session=session, event=event) + session.last_update_time = event.timestamp + # Update the storage session storage_session = self.sessions[app_name][user_id].get(session_id) - await super().append_event(session=storage_session, event=event) - + storage_session.events.append(event) storage_session.last_update_time = event.timestamp + if event.actions and event.actions.state_delta: + state_deltas = _session_util.extract_state_delta( + event.actions.state_delta + ) + app_state_delta = state_deltas['app'] + user_state_delta = state_deltas['user'] + session_state_delta = state_deltas['session'] + if app_state_delta: + self.app_state.setdefault(app_name, {}).update(app_state_delta) + if user_state_delta: + self.user_state.setdefault(app_name, {}).setdefault(user_id, {}).update( + user_state_delta + ) + if session_state_delta: + storage_session.state.update(session_state_delta) + return event diff --git a/tests/unittests/sessions/test_session_service.py b/tests/unittests/sessions/test_session_service.py index 0dd4162e0f..4d92dcea2c 100644 --- a/tests/unittests/sessions/test_session_service.py +++ b/tests/unittests/sessions/test_session_service.py @@ -90,7 +90,7 @@ async def test_create_get_session(service_type): await session_service.get_session( app_name=app_name, user_id=user_id, session_id=session.id ) - != session + is None ) @@ -151,20 +151,17 @@ async def test_list_sessions_all_users(service_type): state={'key': 'value2a'}, ) - # List sessions for user1 + # List sessions for user1 - should contain merged state list_sessions_response_1 = await session_service.list_sessions( app_name=app_name, user_id=user_id_1 ) sessions_1 = list_sessions_response_1.sessions assert len(sessions_1) == 2 - assert {s.id for s in sessions_1} == {'session1a', 'session1b'} - for session in sessions_1: - if session.id == 'session1a': - assert session.state == {'key': 'value1a'} - else: - assert session.state == {'key': 'value1b'} - - # List sessions for user2 + sessions_1_map = {s.id: s for s in sessions_1} + assert sessions_1_map['session1a'].state == {'key': 'value1a'} + assert sessions_1_map['session1b'].state == {'key': 'value1b'} + + # List sessions for user2 - should contain merged state list_sessions_response_2 = await session_service.list_sessions( app_name=app_name, user_id=user_id_2 ) @@ -173,151 +170,170 @@ async def test_list_sessions_all_users(service_type): assert sessions_2[0].id == 'session2a' assert sessions_2[0].state == {'key': 'value2a'} - # List sessions for all users + # List sessions for all users - should contain merged state list_sessions_response_all = await session_service.list_sessions( app_name=app_name, user_id=None ) sessions_all = list_sessions_response_all.sessions assert len(sessions_all) == 3 - assert {s.id for s in sessions_all} == {'session1a', 'session1b', 'session2a'} + sessions_all_map = {s.id: s for s in sessions_all} + assert sessions_all_map['session1a'].state == {'key': 'value1a'} + assert sessions_all_map['session1b'].state == {'key': 'value1b'} + assert sessions_all_map['session2a'].state == {'key': 'value2a'} @pytest.mark.asyncio @pytest.mark.parametrize( 'service_type', [SessionServiceType.IN_MEMORY, SessionServiceType.DATABASE] ) -async def test_session_state(service_type): +async def test_app_state_is_shared_by_all_users_of_app(service_type): session_service = get_session_service(service_type) app_name = 'my_app' - user_id_1 = 'user1' - user_id_2 = 'user2' - user_id_malicious = 'malicious' - session_id_11 = 'session11' - session_id_12 = 'session12' - session_id_2 = 'session2' - state_11 = {'key11': 'value11'} - state_12 = {'key12': 'value12'} - - session_11 = await session_service.create_session( - app_name=app_name, - user_id=user_id_1, - state=state_11, - session_id=session_id_11, + # User 1 creates a session, establishing app:k1 + session1 = await session_service.create_session( + app_name=app_name, user_id='u1', session_id='s1', state={'app:k1': 'v1'} ) - await session_service.create_session( - app_name=app_name, - user_id=user_id_1, - state=state_12, - session_id=session_id_12, + # User 1 appends an event to session1, establishing app:k2 + event = Event( + invocation_id='inv1', + author='user', + actions=EventActions(state_delta={'app:k2': 'v2'}), ) - await session_service.create_session( - app_name=app_name, user_id=user_id_2, session_id=session_id_2 + await session_service.append_event(session=session1, event=event) + + # User 2 creates a new session session2, it should see app:k1 and app:k2 + session2 = await session_service.create_session( + app_name=app_name, user_id='u2', session_id='s2' ) + assert session2.state == {'app:k1': 'v1', 'app:k2': 'v2'} - await session_service.create_session( - app_name=app_name, user_id=user_id_malicious, session_id=session_id_11 + # If we get session session1 again, it should also see both + session1_got = await session_service.get_session( + app_name=app_name, user_id='u1', session_id='s1' ) + assert session1_got.state.get('app:k1') == 'v1' + assert session1_got.state.get('app:k2') == 'v2' - assert session_11.state.get('key11') == 'value11' +@pytest.mark.asyncio +@pytest.mark.parametrize( + 'service_type', [SessionServiceType.IN_MEMORY, SessionServiceType.DATABASE] +) +async def test_user_state_is_shared_only_by_user_sessions(service_type): + session_service = get_session_service(service_type) + app_name = 'my_app' + # User 1 creates a session, establishing user:k1 for user 1 + session1 = await session_service.create_session( + app_name=app_name, user_id='u1', session_id='s1', state={'user:k1': 'v1'} + ) + # User 1 appends an event to session1, establishing user:k2 for user 1 event = Event( - invocation_id='invocation', + invocation_id='inv1', author='user', - content=types.Content(role='user', parts=[types.Part(text='text')]), - actions=EventActions( - state_delta={ - 'app:key': 'value', - 'user:key1': 'value1', - 'temp:key': 'temp', - 'key11': 'value11_new', - } - ), + actions=EventActions(state_delta={'user:k2': 'v2'}), ) - await session_service.append_event(session=session_11, event=event) - - # User and app state is stored, temp state is filtered. - assert session_11.state.get('app:key') == 'value' - assert session_11.state.get('key11') == 'value11_new' - assert session_11.state.get('user:key1') == 'value1' - assert not session_11.state.get('temp:key') + await session_service.append_event(session=session1, event=event) - session_12 = await session_service.get_session( - app_name=app_name, user_id=user_id_1, session_id=session_id_12 + # Another session for User 1 should see user:k1 and user:k2 + session1b = await session_service.create_session( + app_name=app_name, user_id='u1', session_id='s1b' ) - # After getting a new instance, the session_12 got the user and app state, - # even append_event is not applied to it, temp state has no effect - assert session_12.state.get('key12') == 'value12' - assert not session_12.state.get('temp:key') + assert session1b.state == {'user:k1': 'v1', 'user:k2': 'v2'} - # The user1's state is not visible to user2, app state is visible - session_2 = await session_service.get_session( - app_name=app_name, user_id=user_id_2, session_id=session_id_2 + # A session for User 2 should NOT see user:k1 or user:k2 + session2 = await session_service.create_session( + app_name=app_name, user_id='u2', session_id='s2' ) - assert session_2.state.get('app:key') == 'value' - assert not session_2.state.get('user:key1') + assert session2.state == {} - assert not session_2.state.get('user:key1') - # The change to session_11 is persisted - session_11 = await session_service.get_session( - app_name=app_name, user_id=user_id_1, session_id=session_id_11 +@pytest.mark.asyncio +@pytest.mark.parametrize( + 'service_type', [SessionServiceType.IN_MEMORY, SessionServiceType.DATABASE] +) +async def test_session_state_is_not_shared(service_type): + session_service = get_session_service(service_type) + app_name = 'my_app' + # User 1 creates a session session1, establishing sk1 only for session1 + session1 = await session_service.create_session( + app_name=app_name, user_id='u1', session_id='s1', state={'sk1': 'v1'} ) - assert session_11.state.get('key11') == 'value11_new' - assert session_11.state.get('user:key1') == 'value1' - assert not session_11.state.get('temp:key') + # User 1 appends an event to session1, establishing sk2 only for session1 + event = Event( + invocation_id='inv1', + author='user', + actions=EventActions(state_delta={'sk2': 'v2'}), + ) + await session_service.append_event(session=session1, event=event) - # Make sure a malicious user cannot obtain a session and events not belonging to them - session_mismatch = await session_service.get_session( - app_name=app_name, user_id=user_id_malicious, session_id=session_id_11 + # Getting session1 should show sk1 and sk2 + session1_got = await session_service.get_session( + app_name=app_name, user_id='u1', session_id='s1' ) + assert session1_got.state.get('sk1') == 'v1' + assert session1_got.state.get('sk2') == 'v2' - assert len(session_mismatch.events) == 0 + # Creating another session session1b for User 1 should NOT see sk1 or sk2 + session1b = await session_service.create_session( + app_name=app_name, user_id='u1', session_id='s1b' + ) + assert session1b.state == {} @pytest.mark.asyncio @pytest.mark.parametrize( 'service_type', [SessionServiceType.IN_MEMORY, SessionServiceType.DATABASE] ) -async def test_create_new_session_will_merge_states(service_type): +async def test_temp_state_is_not_persisted_in_state_or_events(service_type): session_service = get_session_service(service_type) app_name = 'my_app' - user_id = 'user' - session_id_1 = 'session1' - session_id_2 = 'session2' - state_1 = {'key1': 'value1'} - - session_1 = await session_service.create_session( - app_name=app_name, user_id=user_id, state=state_1, session_id=session_id_1 + user_id = 'u1' + session = await session_service.create_session( + app_name=app_name, user_id=user_id, session_id='s1' ) - event = Event( - invocation_id='invocation', + invocation_id='inv1', author='user', - content=types.Content(role='user', parts=[types.Part(text='text')]), - actions=EventActions( - state_delta={ - 'app:key': 'value', - 'user:key1': 'value1', - 'temp:key': 'temp', - } - ), + actions=EventActions(state_delta={'temp:k1': 'v1', 'sk': 'v2'}), ) - await session_service.append_event(session=session_1, event=event) + await session_service.append_event(session=session, event=event) + + # Refetch session and check state and event + session_got = await session_service.get_session( + app_name=app_name, user_id=user_id, session_id='s1' + ) + # Check session state does not contain temp keys + assert session_got.state.get('sk') == 'v2' + assert 'temp:k1' not in session_got.state + # Check event as stored in session does not contain temp keys in state_delta + assert 'temp:k1' not in session_got.events[0].actions.state_delta + assert session_got.events[0].actions.state_delta.get('sk') == 'v2' - # User and app state is stored, temp state is filtered. - assert session_1.state.get('app:key') == 'value' - assert session_1.state.get('key1') == 'value1' - assert session_1.state.get('user:key1') == 'value1' - assert not session_1.state.get('temp:key') - session_2 = await session_service.create_session( - app_name=app_name, user_id=user_id, state={}, session_id=session_id_2 +@pytest.mark.asyncio +@pytest.mark.parametrize( + 'service_type', [SessionServiceType.IN_MEMORY, SessionServiceType.DATABASE] +) +async def test_get_session_respects_user_id(service_type): + session_service = get_session_service(service_type) + app_name = 'my_app' + # u1 creates session 's1' and adds an event + session1 = await session_service.create_session( + app_name=app_name, user_id='u1', session_id='s1' + ) + event = Event(invocation_id='inv1', author='user') + await session_service.append_event(session1, event) + # u2 creates a session with the same session_id 's1' + await session_service.create_session( + app_name=app_name, user_id='u2', session_id='s1' + ) + # Check that getting s1 for u2 returns u2's session (with no events) + # not u1's session. + session2_got = await session_service.get_session( + app_name=app_name, user_id='u2', session_id='s1' ) - # Session 2 has the persisted states - assert session_2.state.get('app:key') == 'value' - assert session_2.state.get('user:key1') == 'value1' - assert not session_2.state.get('key1') - assert not session_2.state.get('temp:key') + assert session2_got.user_id == 'u2' + assert len(session2_got.events) == 0 @pytest.mark.asyncio @@ -390,6 +406,9 @@ async def test_append_event_complete(service_type): error_code='error_code', error_message='error_message', interrupted=True, + grounding_metadata=types.GroundingMetadata( + web_search_queries=['query1'], + ), usage_metadata=types.GenerateContentResponseUsageMetadata( prompt_token_count=1, candidates_token_count=1, total_token_count=2 ), @@ -474,72 +493,20 @@ async def test_get_session_with_config(service_type): @pytest.mark.parametrize( 'service_type', [SessionServiceType.IN_MEMORY, SessionServiceType.DATABASE] ) -async def test_append_event_with_fields(service_type): - session_service = get_session_service(service_type) - app_name = 'my_app' - user_id = 'test_user' - session = await session_service.create_session( - app_name=app_name, user_id=user_id, state={} - ) - - event = Event( - invocation_id='invocation', - author='user', - content=types.Content(role='user', parts=[types.Part(text='text')]), - long_running_tool_ids={'tool1', 'tool2'}, - partial=False, - turn_complete=True, - error_code='ERROR_CODE', - error_message='error message', - interrupted=True, - grounding_metadata=types.GroundingMetadata( - web_search_queries=['query1'], - ), - custom_metadata={'custom_key': 'custom_value'}, - ) - await session_service.append_event(session, event) - - retrieved_session = await session_service.get_session( - app_name=app_name, user_id=user_id, session_id=session.id - ) - assert retrieved_session - assert len(retrieved_session.events) == 1 - retrieved_event = retrieved_session.events[0] - - assert retrieved_event == event - - -@pytest.mark.asyncio -@pytest.mark.parametrize( - 'service_type', [SessionServiceType.IN_MEMORY, SessionServiceType.DATABASE] -) -async def test_append_event_should_trim_temp_delta_state(service_type): +async def test_partial_events_are_not_persisted(service_type): session_service = get_session_service(service_type) app_name = 'my_app' user_id = 'user' - session = await session_service.create_session( app_name=app_name, user_id=user_id ) - - event = Event( - invocation_id='invocation', - author='user', - content=types.Content(role='user', parts=[types.Part(text='text')]), - actions=EventActions( - state_delta={ - 'app:key': 'app_value', - 'temp:key': 'temp_value', - } - ), - ) - + event = Event(author='user', partial=True) await session_service.append_event(session, event) - updated_session = await session_service.get_session( + # Check in-memory session + assert len(session.events) == 0 + # Check persisted session + session_got = await session_service.get_session( app_name=app_name, user_id=user_id, session_id=session.id ) - - last_event = updated_session.events[-1] - assert 'temp:key' not in last_event.actions.state_delta - assert last_event.actions.state_delta['app:key'] == 'app_value' + assert len(session_got.events) == 0 From 0df67599c0eb54a9a5df51af06483b40058953bf Mon Sep 17 00:00:00 2001 From: "Wei Sun (Jack)" Date: Fri, 17 Oct 2025 15:27:12 -0700 Subject: [PATCH 129/303] chore: Checks gemini version for `2 and above` for gemini-builtin tools PiperOrigin-RevId: 820848897 --- .../code_executors/built_in_code_executor.py | 4 +- .../retrieval/vertex_ai_rag_retrieval.py | 4 +- src/google/adk/tools/url_context_tool.py | 4 +- src/google/adk/utils/model_name_utils.py | 23 ++++- .../unittests/utils/test_model_name_utils.py | 89 +++++++++++-------- 5 files changed, 76 insertions(+), 48 deletions(-) diff --git a/src/google/adk/code_executors/built_in_code_executor.py b/src/google/adk/code_executors/built_in_code_executor.py index 35a50c9067..402d9f557a 100644 --- a/src/google/adk/code_executors/built_in_code_executor.py +++ b/src/google/adk/code_executors/built_in_code_executor.py @@ -19,7 +19,7 @@ from ..agents.invocation_context import InvocationContext from ..models import LlmRequest -from ..utils.model_name_utils import is_gemini_2_model +from ..utils.model_name_utils import is_gemini_2_or_above from .base_code_executor import BaseCodeExecutor from .code_execution_utils import CodeExecutionInput from .code_execution_utils import CodeExecutionResult @@ -42,7 +42,7 @@ def execute_code( def process_llm_request(self, llm_request: LlmRequest) -> None: """Pre-process the LLM request for Gemini 2.0+ models to use the code execution tool.""" - if is_gemini_2_model(llm_request.model): + if is_gemini_2_or_above(llm_request.model): llm_request.config = llm_request.config or types.GenerateContentConfig() llm_request.config.tools = llm_request.config.tools or [] llm_request.config.tools.append( diff --git a/src/google/adk/tools/retrieval/vertex_ai_rag_retrieval.py b/src/google/adk/tools/retrieval/vertex_ai_rag_retrieval.py index 64c835f74c..7edce4f944 100644 --- a/src/google/adk/tools/retrieval/vertex_ai_rag_retrieval.py +++ b/src/google/adk/tools/retrieval/vertex_ai_rag_retrieval.py @@ -24,7 +24,7 @@ from typing_extensions import override from vertexai.preview import rag -from ...utils.model_name_utils import is_gemini_2_model +from ...utils.model_name_utils import is_gemini_2_or_above from ..tool_context import ToolContext from .base_retrieval_tool import BaseRetrievalTool @@ -63,7 +63,7 @@ async def process_llm_request( llm_request: LlmRequest, ) -> None: # Use Gemini built-in Vertex AI RAG tool for Gemini 2 models. - if is_gemini_2_model(llm_request.model): + if is_gemini_2_or_above(llm_request.model): llm_request.config = ( types.GenerateContentConfig() if not llm_request.config diff --git a/src/google/adk/tools/url_context_tool.py b/src/google/adk/tools/url_context_tool.py index 95d6536026..4d7c185b8e 100644 --- a/src/google/adk/tools/url_context_tool.py +++ b/src/google/adk/tools/url_context_tool.py @@ -20,7 +20,7 @@ from typing_extensions import override from ..utils.model_name_utils import is_gemini_1_model -from ..utils.model_name_utils import is_gemini_2_model +from ..utils.model_name_utils import is_gemini_2_or_above from .base_tool import BaseTool from .tool_context import ToolContext @@ -50,7 +50,7 @@ async def process_llm_request( llm_request.config.tools = llm_request.config.tools or [] if is_gemini_1_model(llm_request.model): raise ValueError('Url context tool can not be used in Gemini 1.x.') - elif is_gemini_2_model(llm_request.model): + elif is_gemini_2_or_above(llm_request.model): llm_request.config.tools.append( types.Tool(url_context=types.UrlContext()) ) diff --git a/src/google/adk/utils/model_name_utils.py b/src/google/adk/utils/model_name_utils.py index 172639fdea..6e8add2565 100644 --- a/src/google/adk/utils/model_name_utils.py +++ b/src/google/adk/utils/model_name_utils.py @@ -19,6 +19,9 @@ import re from typing import Optional +from packaging.version import InvalidVersion +from packaging.version import Version + def extract_model_name(model_string: str) -> str: """Extract the actual model name from either simple or path-based format. @@ -74,17 +77,29 @@ def is_gemini_1_model(model_string: Optional[str]) -> bool: return re.match(r'^gemini-1\.\d+', model_name) is not None -def is_gemini_2_model(model_string: Optional[str]) -> bool: - """Check if the model is a Gemini 2.x model using regex patterns. +def is_gemini_2_or_above(model_string: Optional[str]) -> bool: + """Check if the model is a Gemini 2.0 or newer model using semantic versions. Args: model_string: Either a simple model name or path-based model name Returns: - True if it's a Gemini 2.x model, False otherwise + True if it's a Gemini 2.0+ model, False otherwise """ if not model_string: return False model_name = extract_model_name(model_string) - return re.match(r'^gemini-2\.\d+', model_name) is not None + if not model_name.startswith('gemini-'): + return False + + version_string = model_name[len('gemini-') :].split('-', 1)[0] + if not version_string: + return False + + try: + parsed_version = Version(version_string) + except InvalidVersion: + return False + + return parsed_version.major >= 2 diff --git a/tests/unittests/utils/test_model_name_utils.py b/tests/unittests/utils/test_model_name_utils.py index 4e4ddd06a8..c80380df72 100644 --- a/tests/unittests/utils/test_model_name_utils.py +++ b/tests/unittests/utils/test_model_name_utils.py @@ -16,7 +16,7 @@ from google.adk.utils.model_name_utils import extract_model_name from google.adk.utils.model_name_utils import is_gemini_1_model -from google.adk.utils.model_name_utils import is_gemini_2_model +from google.adk.utils.model_name_utils import is_gemini_2_or_above from google.adk.utils.model_name_utils import is_gemini_model @@ -165,46 +165,51 @@ def test_is_gemini_1_model_edge_cases(self): class TestIsGemini2Model: - """Test the is_gemini_2_model function.""" - - def test_is_gemini_2_model_simple_names(self): - """Test Gemini 2.x model detection with simple model names.""" - assert is_gemini_2_model('gemini-2.0-flash') is True - assert is_gemini_2_model('gemini-2.5-pro') is True - assert is_gemini_2_model('gemini-2.0-flash-001') is True - assert is_gemini_2_model('gemini-2.9-experimental') is True - assert is_gemini_2_model('gemini-1.5-flash') is False - assert is_gemini_2_model('gemini-1.0-pro') is False - assert is_gemini_2_model('gemini-3.0-pro') is False # Only 2.x versions - assert is_gemini_2_model('claude-3-sonnet') is False - - def test_is_gemini_2_model_path_based_names(self): - """Test Gemini 2.x model detection with path-based model names.""" + """Test the is_gemini_2_or_above function.""" + + def test_is_gemini_2_or_above_simple_names(self): + """Test Gemini 2.0+ model detection with simple model names.""" + assert is_gemini_2_or_above('gemini-2.0-flash') is True + assert is_gemini_2_or_above('gemini-2.5-pro') is True + assert is_gemini_2_or_above('gemini-2.0-flash-001') is True + assert is_gemini_2_or_above('gemini-2.9-experimental') is True + assert is_gemini_2_or_above('gemini-2-pro') is True + assert is_gemini_2_or_above('gemini-2') is True + assert is_gemini_2_or_above('gemini-3.0-pro') is True + assert is_gemini_2_or_above('gemini-1.5-flash') is False + assert is_gemini_2_or_above('gemini-1.0-pro') is False + assert is_gemini_2_or_above('claude-3-sonnet') is False + + def test_is_gemini_2_or_above_path_based_names(self): + """Test Gemini 2.0+ model detection with path-based model names.""" gemini_2_path = 'projects/265104255505/locations/us-central1/publishers/google/models/gemini-2.0-flash-001' - assert is_gemini_2_model(gemini_2_path) is True + assert is_gemini_2_or_above(gemini_2_path) is True gemini_2_path_2 = 'projects/12345/locations/us-east1/publishers/google/models/gemini-2.5-pro-preview' - assert is_gemini_2_model(gemini_2_path_2) is True + assert is_gemini_2_or_above(gemini_2_path_2) is True gemini_1_path = 'projects/265104255505/locations/us-central1/publishers/google/models/gemini-1.5-flash-001' - assert is_gemini_2_model(gemini_1_path) is False + assert is_gemini_2_or_above(gemini_1_path) is False - def test_is_gemini_2_model_edge_cases(self): - """Test edge cases for Gemini 2.x model detection.""" + gemini_3_path = 'projects/12345/locations/us-east1/publishers/google/models/gemini-3.0-pro' + assert is_gemini_2_or_above(gemini_3_path) is True + + def test_is_gemini_2_or_above_edge_cases(self): + """Test edge cases for Gemini 2.0+ model detection.""" # Test with None - assert is_gemini_2_model(None) is False + assert is_gemini_2_or_above(None) is False # Test with empty string - assert is_gemini_2_model('') is False + assert is_gemini_2_or_above('') is False # Test with model names containing gemini-2 but not starting with it - assert is_gemini_2_model('my-gemini-2.5-model') is False - assert is_gemini_2_model('custom-gemini-2.0-flash') is False + assert is_gemini_2_or_above('my-gemini-2.5-model') is False + assert is_gemini_2_or_above('custom-gemini-2.0-flash') is False # Test with invalid versions - assert is_gemini_2_model('gemini-2') is False # Missing dot - assert is_gemini_2_model('gemini-2-pro') is False # Missing dot - assert is_gemini_2_model('gemini-2.') is False # Missing version number + assert is_gemini_2_or_above('gemini-2.') is False # Missing version number + assert is_gemini_2_or_above('gemini-0.9-test') is False + assert is_gemini_2_or_above('gemini-one') is False class TestModelNameUtilsIntegration: @@ -216,32 +221,34 @@ def test_model_classification_consistency(self): 'gemini-1.5-flash', 'gemini-2.0-flash', 'gemini-2.5-pro', + 'gemini-3.0-pro', 'projects/123/locations/us-central1/publishers/google/models/gemini-1.5-pro', 'projects/123/locations/us-central1/publishers/google/models/gemini-2.0-flash', + 'projects/123/locations/us-central1/publishers/google/models/gemini-3.0-pro', 'claude-3-sonnet', 'gpt-4', ] for model in test_models: - # A model can only be either Gemini 1.x or Gemini 2.x, not both + # A model can only be either Gemini 1.x or Gemini 2.0+, not both if is_gemini_1_model(model): - assert not is_gemini_2_model( + assert not is_gemini_2_or_above( model - ), f'Model {model} classified as both Gemini 1.x and 2.x' + ), f'Model {model} classified as both Gemini 1.x and 2.0+' assert is_gemini_model( model ), f'Model {model} is Gemini 1.x but not classified as Gemini' - if is_gemini_2_model(model): + if is_gemini_2_or_above(model): assert not is_gemini_1_model( model - ), f'Model {model} classified as both Gemini 1.x and 2.x' + ), f'Model {model} classified as both Gemini 1.x and 2.0+' assert is_gemini_model( model - ), f'Model {model} is Gemini 2.x but not classified as Gemini' + ), f'Model {model} is Gemini 2.0+ but not classified as Gemini' - # If it's neither Gemini 1.x nor 2.x, it should not be classified as Gemini - if not is_gemini_1_model(model) and not is_gemini_2_model(model): + # If it's neither Gemini 1.x nor 2.0+, it should not be classified as Gemini + if not is_gemini_1_model(model) and not is_gemini_2_or_above(model): if model and 'gemini-' not in extract_model_name(model): assert not is_gemini_model( model @@ -262,6 +269,10 @@ def test_path_vs_simple_model_consistency(self): 'gemini-2.5-pro', 'projects/123/locations/us-central1/publishers/google/models/gemini-2.5-pro', ), + ( + 'gemini-3.0-pro', + 'projects/123/locations/us-central1/publishers/google/models/gemini-3.0-pro', + ), ( 'claude-3-sonnet', 'projects/123/locations/us-central1/publishers/google/models/claude-3-sonnet', @@ -278,7 +289,9 @@ def test_path_vs_simple_model_consistency(self): f'Inconsistent Gemini 1.x classification for {simple_model} vs' f' {path_model}' ) - assert is_gemini_2_model(simple_model) == is_gemini_2_model(path_model), ( - f'Inconsistent Gemini 2.x classification for {simple_model} vs' + assert is_gemini_2_or_above(simple_model) == is_gemini_2_or_above( + path_model + ), ( + f'Inconsistent Gemini 2.0+ classification for {simple_model} vs' f' {path_model}' ) From a2d9f13fa1d31e00ba9493fba321ca151cdd9366 Mon Sep 17 00:00:00 2001 From: "Xiang (Sean) Zhou" Date: Fri, 17 Oct 2025 15:36:54 -0700 Subject: [PATCH 130/303] chore: Add span for context caching handling and new cache creation PiperOrigin-RevId: 820852233 --- .../models/gemini_context_cache_manager.py | 101 ++++++++++-------- src/google/adk/models/google_llm.py | 12 ++- 2 files changed, 65 insertions(+), 48 deletions(-) diff --git a/src/google/adk/models/gemini_context_cache_manager.py b/src/google/adk/models/gemini_context_cache_manager.py index 111e7de6cc..136890be0b 100644 --- a/src/google/adk/models/gemini_context_cache_manager.py +++ b/src/google/adk/models/gemini_context_cache_manager.py @@ -353,57 +353,66 @@ async def _create_gemini_cache( Returns: Cache metadata with precise creation timestamp """ - # Prepare cache contents (first N contents + system instruction + tools) - cache_contents = llm_request.contents[:cache_contents_count] - - cache_config = types.CreateCachedContentConfig( - contents=cache_contents, - ttl=llm_request.cache_config.ttl_string, - display_name=( - f"adk-cache-{int(time.time())}-{cache_contents_count}contents" - ), - ) - - # Add system instruction if present - if llm_request.config and llm_request.config.system_instruction: - cache_config.system_instruction = llm_request.config.system_instruction - logger.debug( - "Added system instruction to cache config (length=%d)", - len(llm_request.config.system_instruction), + from ..telemetry.tracing import tracer + + with tracer.start_as_current_span("create_cache") as span: + # Prepare cache contents (first N contents + system instruction + tools) + cache_contents = llm_request.contents[:cache_contents_count] + + cache_config = types.CreateCachedContentConfig( + contents=cache_contents, + ttl=llm_request.cache_config.ttl_string, + display_name=( + f"adk-cache-{int(time.time())}-{cache_contents_count}contents" + ), ) - # Add tools if present - if llm_request.config and llm_request.config.tools: - cache_config.tools = llm_request.config.tools + # Add system instruction if present + if llm_request.config and llm_request.config.system_instruction: + cache_config.system_instruction = llm_request.config.system_instruction + logger.debug( + "Added system instruction to cache config (length=%d)", + len(llm_request.config.system_instruction), + ) - # Add tool config if present - if llm_request.config and llm_request.config.tool_config: - cache_config.tool_config = llm_request.config.tool_config + # Add tools if present + if llm_request.config and llm_request.config.tools: + cache_config.tools = llm_request.config.tools - logger.debug( - "Creating cache with model %s and config: %s", - llm_request.model, - cache_config, - ) - cached_content = await self.genai_client.aio.caches.create( - model=llm_request.model, - config=cache_config, - ) - # Set precise creation timestamp right after cache creation - created_at = time.time() - logger.info("Cache created successfully: %s", cached_content.name) + # Add tool config if present + if llm_request.config and llm_request.config.tool_config: + cache_config.tool_config = llm_request.config.tool_config - # Return complete cache metadata with precise timing - return CacheMetadata( - cache_name=cached_content.name, - expire_time=created_at + llm_request.cache_config.ttl_seconds, - fingerprint=self._generate_cache_fingerprint( - llm_request, cache_contents_count - ), - invocations_used=1, - contents_count=cache_contents_count, - created_at=created_at, - ) + span.set_attribute("cache_contents_count", cache_contents_count) + span.set_attribute("model", llm_request.model) + span.set_attribute("ttl_seconds", llm_request.cache_config.ttl_seconds) + + logger.debug( + "Creating cache with model %s and config: %s", + llm_request.model, + cache_config, + ) + cached_content = await self.genai_client.aio.caches.create( + model=llm_request.model, + config=cache_config, + ) + # Set precise creation timestamp right after cache creation + created_at = time.time() + logger.info("Cache created successfully: %s", cached_content.name) + + span.set_attribute("cache_name", cached_content.name) + + # Return complete cache metadata with precise timing + return CacheMetadata( + cache_name=cached_content.name, + expire_time=created_at + llm_request.cache_config.ttl_seconds, + fingerprint=self._generate_cache_fingerprint( + llm_request, cache_contents_count + ), + invocations_used=1, + contents_count=cache_contents_count, + created_at=created_at, + ) async def cleanup_cache(self, cache_name: str) -> None: """Clean up cache by deleting it. diff --git a/src/google/adk/models/google_llm.py b/src/google/adk/models/google_llm.py index 411162bb0c..f9e6fe1677 100644 --- a/src/google/adk/models/google_llm.py +++ b/src/google/adk/models/google_llm.py @@ -115,10 +115,18 @@ async def generate_content_async( cache_metadata = None cache_manager = None if llm_request.cache_config: + from ..telemetry.tracing import tracer from .gemini_context_cache_manager import GeminiContextCacheManager - cache_manager = GeminiContextCacheManager(self.api_client) - cache_metadata = await cache_manager.handle_context_caching(llm_request) + with tracer.start_as_current_span('handle_context_caching') as span: + cache_manager = GeminiContextCacheManager(self.api_client) + cache_metadata = await cache_manager.handle_context_caching(llm_request) + if cache_metadata: + if cache_metadata.cache_name: + span.set_attribute('cache_action', 'active_cache') + span.set_attribute('cache_name', cache_metadata.cache_name) + else: + span.set_attribute('cache_action', 'fingerprint_only') logger.info( 'Sending out request, model: %s, backend: %s, stream: %s', From dbd818be0b6e2270bd135a33c968073daaf770d9 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Fri, 17 Oct 2025 15:41:56 -0700 Subject: [PATCH 131/303] feat: introduces a new AgentEngineSandboxCodeExecutor class that supports executes agent generated code The AgentEngineSandboxCodeExecutor uses the Vertex AI Code Execution Sandbox API to execute code PiperOrigin-RevId: 820854185 --- .../agent_engine_code_execution/README | 18 ++ .../agent_engine_code_execution/__init__.py | 15 ++ .../agent_engine_code_execution/agent.py | 95 +++++++++ pyproject.toml | 2 +- src/google/adk/code_executors/__init__.py | 13 ++ .../agent_engine_sandbox_code_executor.py | 187 ++++++++++++++++++ .../code_executors/code_execution_utils.py | 6 +- ...test_agent_engine_sandbox_code_executor.py | 122 ++++++++++++ 8 files changed, 455 insertions(+), 3 deletions(-) create mode 100644 contributing/samples/agent_engine_code_execution/README create mode 100644 contributing/samples/agent_engine_code_execution/__init__.py create mode 100644 contributing/samples/agent_engine_code_execution/agent.py create mode 100644 src/google/adk/code_executors/agent_engine_sandbox_code_executor.py create mode 100644 tests/unittests/code_executors/test_agent_engine_sandbox_code_executor.py diff --git a/contributing/samples/agent_engine_code_execution/README b/contributing/samples/agent_engine_code_execution/README new file mode 100644 index 0000000000..5126bfd986 --- /dev/null +++ b/contributing/samples/agent_engine_code_execution/README @@ -0,0 +1,18 @@ +# OAuth Sample + +## Introduction + +This sample data science agent uses Agent Engine Code Execution Sandbox to execute LLM generated code. + + +## How to use + +* 1. Follow https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/code-execution/overview to create a code execution sandbox environment. + +* 2. Replace the SANDBOX_RESOURCE_NAME with the one you just created. If you dont want to create a new sandbox environment directly, the Agent Engine Code Execution Sandbox will create one for you by default using the AGENT_ENGINE_RESOURCE_NAME you specified, however, please ensure to clean up sandboxes after use, otherwise, it will consume quotas. + + +## Sample prompt + +* Can you write a function that calculates the sum from 1 to 100. +* The dataset is given as below. Store,Date,Weekly_Sales,Holiday_Flag,Temperature,Fuel_Price,CPI,Unemployment Store 1,2023-06-01,1000,0,70,3.0,200,5 Store 2,2023-06-02,1200,1,80,3.5,210,6 Store 3,2023-06-03,1400,0,90,4.0,220,7 Store 4,2023-06-04,1600,1,70,4.5,230,8 Store 5,2023-06-05,1800,0,80,5.0,240,9 Store 6,2023-06-06,2000,1,90,5.5,250,10 Store 7,2023-06-07,2200,0,90,6.0,260,11 Plot a scatter plot showcasing the relationship between Weekly Sales and Temperature for each store, distinguishing stores with a Holiday Flag. \ No newline at end of file diff --git a/contributing/samples/agent_engine_code_execution/__init__.py b/contributing/samples/agent_engine_code_execution/__init__.py new file mode 100644 index 0000000000..c48963cdc7 --- /dev/null +++ b/contributing/samples/agent_engine_code_execution/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/agent_engine_code_execution/agent.py b/contributing/samples/agent_engine_code_execution/agent.py new file mode 100644 index 0000000000..c626067e26 --- /dev/null +++ b/contributing/samples/agent_engine_code_execution/agent.py @@ -0,0 +1,95 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Data science agent.""" + +from google.adk.agents.llm_agent import Agent +from google.adk.code_executors.agent_engine_sandbox_code_executor import AgentEngineSandboxCodeExecutor + + +def base_system_instruction(): + """Returns: data science agent system instruction.""" + + return """ + # Guidelines + + **Objective:** Assist the user in achieving their data analysis goals within the context of a Python Colab notebook, **with emphasis on avoiding assumptions and ensuring accuracy.** Reaching that goal can involve multiple steps. When you need to generate code, you **don't** need to solve the goal in one go. Only generate the next step at a time. + + **Code Execution:** All code snippets provided will be executed within the Colab environment. + + **Statefulness:** All code snippets are executed and the variables stays in the environment. You NEVER need to re-initialize variables. You NEVER need to reload files. You NEVER need to re-import libraries. + + **Output Visibility:** Always print the output of code execution to visualize results, especially for data exploration and analysis. For example: + - To look a the shape of a pandas.DataFrame do: + ```tool_code + print(df.shape) + ``` + The output will be presented to you as: + ```tool_outputs + (49, 7) + + ``` + - To display the result of a numerical computation: + ```tool_code + x = 10 ** 9 - 12 ** 5 + print(f'{{x=}}') + ``` + The output will be presented to you as: + ```tool_outputs + x=999751168 + + ``` + - You **never** generate ```tool_outputs yourself. + - You can then use this output to decide on next steps. + - Print just variables (e.g., `print(f'{{variable=}}')`. + + **No Assumptions:** **Crucially, avoid making assumptions about the nature of the data or column names.** Base findings solely on the data itself. Always use the information obtained from `explore_df` to guide your analysis. + + **Available files:** Only use the files that are available as specified in the list of available files. + + **Data in prompt:** Some queries contain the input data directly in the prompt. You have to parse that data into a pandas DataFrame. ALWAYS parse all the data. NEVER edit the data that are given to you. + + **Answerability:** Some queries may not be answerable with the available data. In those cases, inform the user why you cannot process their query and suggest what type of data would be needed to fulfill their request. + + """ + + +root_agent = Agent( + model="gemini-2.0-flash-001", + name="agent_engine_code_execution_agent", + instruction=base_system_instruction() + """ + + +You need to assist the user with their queries by looking at the data and the context in the conversation. +You final answer should summarize the code and code execution relevant to the user query. + +You should include all pieces of data to answer the user query, such as the table from code execution results. +If you cannot answer the question directly, you should follow the guidelines above to generate the next step. +If the question can be answered directly with writing any code, you should do that. +If you doesn't have enough data to answer the question, you should ask for clarification from the user. + +You should NEVER install any package on your own like `pip install ...`. +When plotting trends, you should make sure to sort and order the data by the x-axis. + + +""", + code_executor=AgentEngineSandboxCodeExecutor( + # Replace with your sandbox resource name if you already have one. + sandbox_resource_name="SANDBOX_RESOURCE_NAME", + # "projects/vertex-agent-loadtest/locations/us-central1/reasoningEngines/6842889780301135872/sandboxEnvironments/6545148628569161728", + # Replace with agent engine resource name used for creating sandbox if + # sandbox_resource_name is not set. + agent_engine_resource_name="AGENT_ENGINE_RESOURCE_NAME", + ), +) diff --git a/pyproject.toml b/pyproject.toml index 95c69f1fa7..bcb7dd10f5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,7 +32,7 @@ dependencies = [ "click>=8.1.8, <9.0.0", # For CLI tools "fastapi>=0.115.0, <1.0.0", # FastAPI framework "google-api-python-client>=2.157.0, <3.0.0", # Google API client discovery - "google-cloud-aiplatform[agent_engines]>=1.112.0, <2.0.0",# For VertexAI integrations, e.g. example store. + "google-cloud-aiplatform[agent_engines]>=1.121.0, <2.0.0",# For VertexAI integrations, e.g. example store. "google-cloud-bigtable>=2.32.0", # For Bigtable database "google-cloud-discoveryengine>=0.13.12, <0.14.0", # For Discovery Engine Search Tool "google-cloud-secret-manager>=2.22.0, <3.0.0", # Fetching secrets in RestAPI Tool diff --git a/src/google/adk/code_executors/__init__.py b/src/google/adk/code_executors/__init__.py index 41d406f63d..edeaf5d272 100644 --- a/src/google/adk/code_executors/__init__.py +++ b/src/google/adk/code_executors/__init__.py @@ -12,6 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations + import logging from .base_code_executor import BaseCodeExecutor @@ -29,6 +31,7 @@ 'VertexAiCodeExecutor', 'ContainerCodeExecutor', 'GkeCodeExecutor', + 'AgentEngineSandboxCodeExecutor', ] @@ -63,4 +66,14 @@ def __getattr__(name: str): 'GkeCodeExecutor requires additional dependencies. ' 'Please install with: pip install "google-adk[extensions]"' ) from e + elif name == 'AgentEngineSandboxCodeExecutor': + try: + from .agent_engine_sandbox_code_executor import AgentEngineSandboxCodeExecutor + + return AgentEngineSandboxCodeExecutor + except ImportError as e: + raise ImportError( + 'AgentEngineSandboxCodeExecutor requires additional dependencies. ' + 'Please install with: pip install "google-adk[extensions]"' + ) from e raise AttributeError(f"module '{__name__}' has no attribute '{name}'") diff --git a/src/google/adk/code_executors/agent_engine_sandbox_code_executor.py b/src/google/adk/code_executors/agent_engine_sandbox_code_executor.py new file mode 100644 index 0000000000..cfaee8d253 --- /dev/null +++ b/src/google/adk/code_executors/agent_engine_sandbox_code_executor.py @@ -0,0 +1,187 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +import json +import logging +import mimetypes +import re +from typing import Optional + +from typing_extensions import override +import vertexai +from vertexai import types + +from ..agents.invocation_context import InvocationContext +from ..utils.feature_decorator import experimental +from .base_code_executor import BaseCodeExecutor +from .code_execution_utils import CodeExecutionInput +from .code_execution_utils import CodeExecutionResult +from .code_execution_utils import File + +logger = logging.getLogger('google_adk.' + __name__) + + +@experimental +class AgentEngineSandboxCodeExecutor(BaseCodeExecutor): + """A code executor that uses Agent Engine Code Execution Sandbox to execute code. + + Attributes: + sandbox_resource_name: If set, load the existing resource name of the code + interpreter extension instead of creating a new one. Format: + projects/123/locations/us-central1/reasoningEngines/456/sandboxEnvironments/789 + """ + + sandbox_resource_name: str = None + + def __init__( + self, + sandbox_resource_name: Optional[str] = None, + agent_engine_resource_name: Optional[str] = None, + **data, + ): + """Initializes the AgentEngineSandboxCodeExecutor. + + Args: + sandbox_resource_name: If set, load the existing resource name of code + execution sandbox, if not set, create a new one. Format: + projects/123/locations/us-central1/reasoningEngines/456/ + sandboxEnvironments/789 + agent_engine_resource_name: The resource name of the agent engine to use + to create the code execution sandbox. Format: + projects/123/locations/us-central1/reasoningEngines/456, when both + sandbox_resource_name and agent_engine_resource_name are set, + agent_engine_resource_name will be ignored. + **data: Additional keyword arguments to be passed to the base class. + """ + super().__init__(**data) + sandbox_resource_name_pattern = r'^projects/([a-zA-Z0-9-_]+)/locations/([a-zA-Z0-9-_]+)/reasoningEngines/(\d+)/sandboxEnvironments/(\d+)$' + agent_engine_resource_name_pattern = r'^projects/([a-zA-Z0-9-_]+)/locations/([a-zA-Z0-9-_]+)/reasoningEngines/(\d+)$' + + if sandbox_resource_name is not None: + self.sandbox_resource_name = sandbox_resource_name + self._project_id, self._location = ( + self._get_project_id_and_location_from_resource_name( + sandbox_resource_name, sandbox_resource_name_pattern + ) + ) + elif agent_engine_resource_name is not None: + self._project_id, self._location = ( + self._get_project_id_and_location_from_resource_name( + agent_engine_resource_name, agent_engine_resource_name_pattern + ) + ) + # @TODO - Add TTL for sandbox creation after it is available + # in SDK. + operation = self._get_api_client().agent_engines.sandboxes.create( + spec={'code_execution_environment': {}}, + name=agent_engine_resource_name, + config=types.CreateAgentEngineSandboxConfig( + display_name='default_sandbox' + ), + ) + self.sandbox_resource_name = operation.response.name + else: + raise ValueError( + 'Either sandbox_resource_name or agent_engine_resource_name must be' + ' set.' + ) + + @override + def execute_code( + self, + invocation_context: InvocationContext, + code_execution_input: CodeExecutionInput, + ) -> CodeExecutionResult: + # Execute the code. + input_data = { + 'code': code_execution_input.code, + } + if code_execution_input.input_files: + input_data['files'] = [ + { + 'name': f.name, + 'contents': f.content, + 'mimeType': f.mime_type, + } + for f in code_execution_input.input_files + ] + + code_execution_response = ( + self._get_api_client().agent_engines.sandboxes.execute_code( + name=self.sandbox_resource_name, + input_data=input_data, + ) + ) + saved_files = [] + stdout = '' + stderr = '' + for output in code_execution_response.outputs: + if output.mime_type == 'application/json' and ( + output.metadata is None + or output.metadata.attributes is None + or 'file_name' not in output.metadata.attributes + ): + json_output_data = json.loads(output.data.decode('utf-8')) + stdout = json_output_data.get('stdout', '') + stderr = json_output_data.get('stderr', '') + else: + file_name = '' + if ( + output.metadata is not None + and output.metadata.attributes is not None + ): + file_name = output.metadata.attributes.get('file_name', b'').decode( + 'utf-8' + ) + mime_type = output.mime_type + if not mime_type: + mime_type, _ = mimetypes.guess_type(file_name) + saved_files.append( + File( + name=file_name, + content=output.data, + mime_type=mime_type, + ) + ) + + # Collect the final result. + return CodeExecutionResult( + stdout=stdout, + stderr=stderr, + output_files=saved_files, + ) + + def _get_api_client(self): + """Instantiates an API client for the given project and location. + + It needs to be instantiated inside each request so that the event loop + management can be properly propagated. + + Returns: + An API client for the given project and location. + """ + return vertexai.Client(project=self._project_id, location=self._location) + + def _get_project_id_and_location_from_resource_name( + self, resource_name: str, pattern: str + ) -> tuple[str, str]: + """Extracts the project ID and location from the resource name.""" + match = re.fullmatch(pattern, resource_name) + + if not match: + raise ValueError(f'resource name {resource_name} is not valid.') + + return match.groups()[0], match.groups()[1] diff --git a/src/google/adk/code_executors/code_execution_utils.py b/src/google/adk/code_executors/code_execution_utils.py index 8a20218378..46b412a0de 100644 --- a/src/google/adk/code_executors/code_execution_utils.py +++ b/src/google/adk/code_executors/code_execution_utils.py @@ -14,6 +14,8 @@ """Utility functions for code execution.""" +from __future__ import annotations + import base64 import binascii import copy @@ -34,9 +36,9 @@ class File: The name of the file with file extension (e.g., "file.csv"). """ - content: str + content: str | bytes """ - The base64-encoded bytes of the file content. + The base64-encoded bytes of the file content or the original bytes of the file content. """ mime_type: str = 'text/plain' diff --git a/tests/unittests/code_executors/test_agent_engine_sandbox_code_executor.py b/tests/unittests/code_executors/test_agent_engine_sandbox_code_executor.py new file mode 100644 index 0000000000..b1f922952a --- /dev/null +++ b/tests/unittests/code_executors/test_agent_engine_sandbox_code_executor.py @@ -0,0 +1,122 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import json +from unittest.mock import MagicMock +from unittest.mock import patch + +from google.adk.agents.invocation_context import InvocationContext +from google.adk.code_executors.agent_engine_sandbox_code_executor import AgentEngineSandboxCodeExecutor +from google.adk.code_executors.code_execution_utils import CodeExecutionInput +import pytest + + +@pytest.fixture +def mock_invocation_context() -> InvocationContext: + """Fixture for a mock InvocationContext.""" + mock = MagicMock(spec=InvocationContext) + mock.invocation_id = "test-invocation-123" + return mock + + +class TestAgentEngineSandboxCodeExecutor: + """Unit tests for the AgentEngineSandboxCodeExecutor.""" + + def test_init_with_sandbox_overrides(self): + """Tests that class attributes can be overridden at instantiation.""" + executor = AgentEngineSandboxCodeExecutor( + sandbox_resource_name="projects/123/locations/us-central1/reasoningEngines/456/sandboxEnvironments/789", + ) + assert executor.sandbox_resource_name == ( + "projects/123/locations/us-central1/reasoningEngines/456/sandboxEnvironments/789" + ) + + def test_init_with_sandbox_overrides_throws_error(self): + """Tests that class attributes can be overridden at instantiation.""" + with pytest.raises(ValueError): + AgentEngineSandboxCodeExecutor( + sandbox_resource_name="projects/123/locations/us-central1/reasoningEgines/456/sandboxes/789", + ) + + def test_init_with_agent_engine_overrides_throws_error(self): + """Tests that class attributes can be overridden at instantiation.""" + with pytest.raises(ValueError): + AgentEngineSandboxCodeExecutor( + agent_engine_resource_name=( + "projects/123/locations/us-central1/reason/456" + ), + ) + + @patch( + "google.adk.code_executors.agent_engine_sandbox_code_executor.vertexai" + ) + def test_execute_code_success( + self, + mock_vertexai, + mock_invocation_context, + ): + # Setup Mocks + mock_api_client = MagicMock() + mock_vertexai.Client.return_value = mock_api_client + mock_response = MagicMock() + mock_json_output = MagicMock() + mock_json_output.mime_type = "application/json" + mock_json_output.data = json.dumps( + {"stdout": "hello world", "stderr": ""} + ).encode("utf-8") + mock_json_output.metadata = None + + mock_file_output = MagicMock() + mock_file_output.mime_type = "text/plain" + mock_file_output.data = b"file content" + mock_file_output.metadata = MagicMock() + mock_file_output.metadata.attributes = {"file_name": b"file.txt"} + + mock_png_file_output = MagicMock() + mock_png_file_output.mime_type = "image/png" + sample_png_bytes = b"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x01\x00\x00\x00\x01\x08\x06\x00\x00\x00\x1f\x15\xc4\x89" + mock_png_file_output.data = sample_png_bytes + mock_png_file_output.metadata = MagicMock() + mock_png_file_output.metadata.attributes = {"file_name": b"file.png"} + + mock_response.outputs = [ + mock_json_output, + mock_file_output, + mock_png_file_output, + ] + mock_api_client.agent_engines.sandboxes.execute_code.return_value = ( + mock_response + ) + + # Execute + executor = AgentEngineSandboxCodeExecutor( + sandbox_resource_name="projects/123/locations/us-central1/reasoningEngines/456/sandboxEnvironments/789" + ) + code_input = CodeExecutionInput(code='print("hello world")') + result = executor.execute_code(mock_invocation_context, code_input) + + # Assert + assert result.stdout == "hello world" + assert not result.stderr + assert result.output_files[0].mime_type == "text/plain" + assert result.output_files[0].content == b"file content" + + assert result.output_files[0].name == "file.txt" + assert result.output_files[1].mime_type == "image/png" + assert result.output_files[1].name == "file.png" + assert result.output_files[1].content == sample_png_bytes + mock_api_client.agent_engines.sandboxes.execute_code.assert_called_once_with( + name="projects/123/locations/us-central1/reasoningEngines/456/sandboxEnvironments/789", + input_data={"code": 'print("hello world")'}, + ) From af74eba695c7f4d4b811ed4e4f26221994fc4cb6 Mon Sep 17 00:00:00 2001 From: "Wei Sun (Jack)" Date: Fri, 17 Oct 2025 16:52:29 -0700 Subject: [PATCH 132/303] test: Skips test_langchain_tool.py temporarily after their new 1.0.0 release breaks existings deps of langchain PiperOrigin-RevId: 820875043 --- tests/unittests/tools/test_langchain_tool.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/unittests/tools/test_langchain_tool.py b/tests/unittests/tools/test_langchain_tool.py index 998b3131ef..b2c7b681d0 100644 --- a/tests/unittests/tools/test_langchain_tool.py +++ b/tests/unittests/tools/test_langchain_tool.py @@ -12,13 +12,22 @@ # See the License for the specific language governing permissions and # limitations under the License. +import pytest + +# TODO: Re-enable this test after verifying LangchainTool and +# LangGraphAgent against langchain's 1.0.0 release. +pytest.skip( + allow_module_level=True, + reason="Langchain just made 1.0.0 release that breaks existing import.", +) + + from unittest.mock import MagicMock from google.adk.tools.langchain_tool import LangchainTool from langchain.tools import tool from langchain_core.tools.structured import StructuredTool from pydantic import BaseModel -import pytest @tool From a5b742b3609b515fb64cada18cd151a51fdf75a7 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Sat, 18 Oct 2025 20:23:27 -0700 Subject: [PATCH 133/303] feat: introduces a new AgentEngineSandboxCodeExecutor class that supports executes agent generated code The AgentEngineSandboxCodeExecutor uses the Vertex AI Code Execution Sandbox API to execute code PiperOrigin-RevId: 821197794 --- .../agent_engine_code_execution/README | 18 -- .../agent_engine_code_execution/__init__.py | 15 -- .../agent_engine_code_execution/agent.py | 95 --------- pyproject.toml | 2 +- src/google/adk/code_executors/__init__.py | 13 -- .../agent_engine_sandbox_code_executor.py | 187 ------------------ .../code_executors/code_execution_utils.py | 6 +- ...test_agent_engine_sandbox_code_executor.py | 122 ------------ 8 files changed, 3 insertions(+), 455 deletions(-) delete mode 100644 contributing/samples/agent_engine_code_execution/README delete mode 100644 contributing/samples/agent_engine_code_execution/__init__.py delete mode 100644 contributing/samples/agent_engine_code_execution/agent.py delete mode 100644 src/google/adk/code_executors/agent_engine_sandbox_code_executor.py delete mode 100644 tests/unittests/code_executors/test_agent_engine_sandbox_code_executor.py diff --git a/contributing/samples/agent_engine_code_execution/README b/contributing/samples/agent_engine_code_execution/README deleted file mode 100644 index 5126bfd986..0000000000 --- a/contributing/samples/agent_engine_code_execution/README +++ /dev/null @@ -1,18 +0,0 @@ -# OAuth Sample - -## Introduction - -This sample data science agent uses Agent Engine Code Execution Sandbox to execute LLM generated code. - - -## How to use - -* 1. Follow https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/code-execution/overview to create a code execution sandbox environment. - -* 2. Replace the SANDBOX_RESOURCE_NAME with the one you just created. If you dont want to create a new sandbox environment directly, the Agent Engine Code Execution Sandbox will create one for you by default using the AGENT_ENGINE_RESOURCE_NAME you specified, however, please ensure to clean up sandboxes after use, otherwise, it will consume quotas. - - -## Sample prompt - -* Can you write a function that calculates the sum from 1 to 100. -* The dataset is given as below. Store,Date,Weekly_Sales,Holiday_Flag,Temperature,Fuel_Price,CPI,Unemployment Store 1,2023-06-01,1000,0,70,3.0,200,5 Store 2,2023-06-02,1200,1,80,3.5,210,6 Store 3,2023-06-03,1400,0,90,4.0,220,7 Store 4,2023-06-04,1600,1,70,4.5,230,8 Store 5,2023-06-05,1800,0,80,5.0,240,9 Store 6,2023-06-06,2000,1,90,5.5,250,10 Store 7,2023-06-07,2200,0,90,6.0,260,11 Plot a scatter plot showcasing the relationship between Weekly Sales and Temperature for each store, distinguishing stores with a Holiday Flag. \ No newline at end of file diff --git a/contributing/samples/agent_engine_code_execution/__init__.py b/contributing/samples/agent_engine_code_execution/__init__.py deleted file mode 100644 index c48963cdc7..0000000000 --- a/contributing/samples/agent_engine_code_execution/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright 2025 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from . import agent diff --git a/contributing/samples/agent_engine_code_execution/agent.py b/contributing/samples/agent_engine_code_execution/agent.py deleted file mode 100644 index c626067e26..0000000000 --- a/contributing/samples/agent_engine_code_execution/agent.py +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright 2025 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""Data science agent.""" - -from google.adk.agents.llm_agent import Agent -from google.adk.code_executors.agent_engine_sandbox_code_executor import AgentEngineSandboxCodeExecutor - - -def base_system_instruction(): - """Returns: data science agent system instruction.""" - - return """ - # Guidelines - - **Objective:** Assist the user in achieving their data analysis goals within the context of a Python Colab notebook, **with emphasis on avoiding assumptions and ensuring accuracy.** Reaching that goal can involve multiple steps. When you need to generate code, you **don't** need to solve the goal in one go. Only generate the next step at a time. - - **Code Execution:** All code snippets provided will be executed within the Colab environment. - - **Statefulness:** All code snippets are executed and the variables stays in the environment. You NEVER need to re-initialize variables. You NEVER need to reload files. You NEVER need to re-import libraries. - - **Output Visibility:** Always print the output of code execution to visualize results, especially for data exploration and analysis. For example: - - To look a the shape of a pandas.DataFrame do: - ```tool_code - print(df.shape) - ``` - The output will be presented to you as: - ```tool_outputs - (49, 7) - - ``` - - To display the result of a numerical computation: - ```tool_code - x = 10 ** 9 - 12 ** 5 - print(f'{{x=}}') - ``` - The output will be presented to you as: - ```tool_outputs - x=999751168 - - ``` - - You **never** generate ```tool_outputs yourself. - - You can then use this output to decide on next steps. - - Print just variables (e.g., `print(f'{{variable=}}')`. - - **No Assumptions:** **Crucially, avoid making assumptions about the nature of the data or column names.** Base findings solely on the data itself. Always use the information obtained from `explore_df` to guide your analysis. - - **Available files:** Only use the files that are available as specified in the list of available files. - - **Data in prompt:** Some queries contain the input data directly in the prompt. You have to parse that data into a pandas DataFrame. ALWAYS parse all the data. NEVER edit the data that are given to you. - - **Answerability:** Some queries may not be answerable with the available data. In those cases, inform the user why you cannot process their query and suggest what type of data would be needed to fulfill their request. - - """ - - -root_agent = Agent( - model="gemini-2.0-flash-001", - name="agent_engine_code_execution_agent", - instruction=base_system_instruction() + """ - - -You need to assist the user with their queries by looking at the data and the context in the conversation. -You final answer should summarize the code and code execution relevant to the user query. - -You should include all pieces of data to answer the user query, such as the table from code execution results. -If you cannot answer the question directly, you should follow the guidelines above to generate the next step. -If the question can be answered directly with writing any code, you should do that. -If you doesn't have enough data to answer the question, you should ask for clarification from the user. - -You should NEVER install any package on your own like `pip install ...`. -When plotting trends, you should make sure to sort and order the data by the x-axis. - - -""", - code_executor=AgentEngineSandboxCodeExecutor( - # Replace with your sandbox resource name if you already have one. - sandbox_resource_name="SANDBOX_RESOURCE_NAME", - # "projects/vertex-agent-loadtest/locations/us-central1/reasoningEngines/6842889780301135872/sandboxEnvironments/6545148628569161728", - # Replace with agent engine resource name used for creating sandbox if - # sandbox_resource_name is not set. - agent_engine_resource_name="AGENT_ENGINE_RESOURCE_NAME", - ), -) diff --git a/pyproject.toml b/pyproject.toml index bcb7dd10f5..95c69f1fa7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,7 +32,7 @@ dependencies = [ "click>=8.1.8, <9.0.0", # For CLI tools "fastapi>=0.115.0, <1.0.0", # FastAPI framework "google-api-python-client>=2.157.0, <3.0.0", # Google API client discovery - "google-cloud-aiplatform[agent_engines]>=1.121.0, <2.0.0",# For VertexAI integrations, e.g. example store. + "google-cloud-aiplatform[agent_engines]>=1.112.0, <2.0.0",# For VertexAI integrations, e.g. example store. "google-cloud-bigtable>=2.32.0", # For Bigtable database "google-cloud-discoveryengine>=0.13.12, <0.14.0", # For Discovery Engine Search Tool "google-cloud-secret-manager>=2.22.0, <3.0.0", # Fetching secrets in RestAPI Tool diff --git a/src/google/adk/code_executors/__init__.py b/src/google/adk/code_executors/__init__.py index edeaf5d272..41d406f63d 100644 --- a/src/google/adk/code_executors/__init__.py +++ b/src/google/adk/code_executors/__init__.py @@ -12,8 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -from __future__ import annotations - import logging from .base_code_executor import BaseCodeExecutor @@ -31,7 +29,6 @@ 'VertexAiCodeExecutor', 'ContainerCodeExecutor', 'GkeCodeExecutor', - 'AgentEngineSandboxCodeExecutor', ] @@ -66,14 +63,4 @@ def __getattr__(name: str): 'GkeCodeExecutor requires additional dependencies. ' 'Please install with: pip install "google-adk[extensions]"' ) from e - elif name == 'AgentEngineSandboxCodeExecutor': - try: - from .agent_engine_sandbox_code_executor import AgentEngineSandboxCodeExecutor - - return AgentEngineSandboxCodeExecutor - except ImportError as e: - raise ImportError( - 'AgentEngineSandboxCodeExecutor requires additional dependencies. ' - 'Please install with: pip install "google-adk[extensions]"' - ) from e raise AttributeError(f"module '{__name__}' has no attribute '{name}'") diff --git a/src/google/adk/code_executors/agent_engine_sandbox_code_executor.py b/src/google/adk/code_executors/agent_engine_sandbox_code_executor.py deleted file mode 100644 index cfaee8d253..0000000000 --- a/src/google/adk/code_executors/agent_engine_sandbox_code_executor.py +++ /dev/null @@ -1,187 +0,0 @@ -# Copyright 2025 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import annotations - -import json -import logging -import mimetypes -import re -from typing import Optional - -from typing_extensions import override -import vertexai -from vertexai import types - -from ..agents.invocation_context import InvocationContext -from ..utils.feature_decorator import experimental -from .base_code_executor import BaseCodeExecutor -from .code_execution_utils import CodeExecutionInput -from .code_execution_utils import CodeExecutionResult -from .code_execution_utils import File - -logger = logging.getLogger('google_adk.' + __name__) - - -@experimental -class AgentEngineSandboxCodeExecutor(BaseCodeExecutor): - """A code executor that uses Agent Engine Code Execution Sandbox to execute code. - - Attributes: - sandbox_resource_name: If set, load the existing resource name of the code - interpreter extension instead of creating a new one. Format: - projects/123/locations/us-central1/reasoningEngines/456/sandboxEnvironments/789 - """ - - sandbox_resource_name: str = None - - def __init__( - self, - sandbox_resource_name: Optional[str] = None, - agent_engine_resource_name: Optional[str] = None, - **data, - ): - """Initializes the AgentEngineSandboxCodeExecutor. - - Args: - sandbox_resource_name: If set, load the existing resource name of code - execution sandbox, if not set, create a new one. Format: - projects/123/locations/us-central1/reasoningEngines/456/ - sandboxEnvironments/789 - agent_engine_resource_name: The resource name of the agent engine to use - to create the code execution sandbox. Format: - projects/123/locations/us-central1/reasoningEngines/456, when both - sandbox_resource_name and agent_engine_resource_name are set, - agent_engine_resource_name will be ignored. - **data: Additional keyword arguments to be passed to the base class. - """ - super().__init__(**data) - sandbox_resource_name_pattern = r'^projects/([a-zA-Z0-9-_]+)/locations/([a-zA-Z0-9-_]+)/reasoningEngines/(\d+)/sandboxEnvironments/(\d+)$' - agent_engine_resource_name_pattern = r'^projects/([a-zA-Z0-9-_]+)/locations/([a-zA-Z0-9-_]+)/reasoningEngines/(\d+)$' - - if sandbox_resource_name is not None: - self.sandbox_resource_name = sandbox_resource_name - self._project_id, self._location = ( - self._get_project_id_and_location_from_resource_name( - sandbox_resource_name, sandbox_resource_name_pattern - ) - ) - elif agent_engine_resource_name is not None: - self._project_id, self._location = ( - self._get_project_id_and_location_from_resource_name( - agent_engine_resource_name, agent_engine_resource_name_pattern - ) - ) - # @TODO - Add TTL for sandbox creation after it is available - # in SDK. - operation = self._get_api_client().agent_engines.sandboxes.create( - spec={'code_execution_environment': {}}, - name=agent_engine_resource_name, - config=types.CreateAgentEngineSandboxConfig( - display_name='default_sandbox' - ), - ) - self.sandbox_resource_name = operation.response.name - else: - raise ValueError( - 'Either sandbox_resource_name or agent_engine_resource_name must be' - ' set.' - ) - - @override - def execute_code( - self, - invocation_context: InvocationContext, - code_execution_input: CodeExecutionInput, - ) -> CodeExecutionResult: - # Execute the code. - input_data = { - 'code': code_execution_input.code, - } - if code_execution_input.input_files: - input_data['files'] = [ - { - 'name': f.name, - 'contents': f.content, - 'mimeType': f.mime_type, - } - for f in code_execution_input.input_files - ] - - code_execution_response = ( - self._get_api_client().agent_engines.sandboxes.execute_code( - name=self.sandbox_resource_name, - input_data=input_data, - ) - ) - saved_files = [] - stdout = '' - stderr = '' - for output in code_execution_response.outputs: - if output.mime_type == 'application/json' and ( - output.metadata is None - or output.metadata.attributes is None - or 'file_name' not in output.metadata.attributes - ): - json_output_data = json.loads(output.data.decode('utf-8')) - stdout = json_output_data.get('stdout', '') - stderr = json_output_data.get('stderr', '') - else: - file_name = '' - if ( - output.metadata is not None - and output.metadata.attributes is not None - ): - file_name = output.metadata.attributes.get('file_name', b'').decode( - 'utf-8' - ) - mime_type = output.mime_type - if not mime_type: - mime_type, _ = mimetypes.guess_type(file_name) - saved_files.append( - File( - name=file_name, - content=output.data, - mime_type=mime_type, - ) - ) - - # Collect the final result. - return CodeExecutionResult( - stdout=stdout, - stderr=stderr, - output_files=saved_files, - ) - - def _get_api_client(self): - """Instantiates an API client for the given project and location. - - It needs to be instantiated inside each request so that the event loop - management can be properly propagated. - - Returns: - An API client for the given project and location. - """ - return vertexai.Client(project=self._project_id, location=self._location) - - def _get_project_id_and_location_from_resource_name( - self, resource_name: str, pattern: str - ) -> tuple[str, str]: - """Extracts the project ID and location from the resource name.""" - match = re.fullmatch(pattern, resource_name) - - if not match: - raise ValueError(f'resource name {resource_name} is not valid.') - - return match.groups()[0], match.groups()[1] diff --git a/src/google/adk/code_executors/code_execution_utils.py b/src/google/adk/code_executors/code_execution_utils.py index 46b412a0de..8a20218378 100644 --- a/src/google/adk/code_executors/code_execution_utils.py +++ b/src/google/adk/code_executors/code_execution_utils.py @@ -14,8 +14,6 @@ """Utility functions for code execution.""" -from __future__ import annotations - import base64 import binascii import copy @@ -36,9 +34,9 @@ class File: The name of the file with file extension (e.g., "file.csv"). """ - content: str | bytes + content: str """ - The base64-encoded bytes of the file content or the original bytes of the file content. + The base64-encoded bytes of the file content. """ mime_type: str = 'text/plain' diff --git a/tests/unittests/code_executors/test_agent_engine_sandbox_code_executor.py b/tests/unittests/code_executors/test_agent_engine_sandbox_code_executor.py deleted file mode 100644 index b1f922952a..0000000000 --- a/tests/unittests/code_executors/test_agent_engine_sandbox_code_executor.py +++ /dev/null @@ -1,122 +0,0 @@ -# Copyright 2025 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import json -from unittest.mock import MagicMock -from unittest.mock import patch - -from google.adk.agents.invocation_context import InvocationContext -from google.adk.code_executors.agent_engine_sandbox_code_executor import AgentEngineSandboxCodeExecutor -from google.adk.code_executors.code_execution_utils import CodeExecutionInput -import pytest - - -@pytest.fixture -def mock_invocation_context() -> InvocationContext: - """Fixture for a mock InvocationContext.""" - mock = MagicMock(spec=InvocationContext) - mock.invocation_id = "test-invocation-123" - return mock - - -class TestAgentEngineSandboxCodeExecutor: - """Unit tests for the AgentEngineSandboxCodeExecutor.""" - - def test_init_with_sandbox_overrides(self): - """Tests that class attributes can be overridden at instantiation.""" - executor = AgentEngineSandboxCodeExecutor( - sandbox_resource_name="projects/123/locations/us-central1/reasoningEngines/456/sandboxEnvironments/789", - ) - assert executor.sandbox_resource_name == ( - "projects/123/locations/us-central1/reasoningEngines/456/sandboxEnvironments/789" - ) - - def test_init_with_sandbox_overrides_throws_error(self): - """Tests that class attributes can be overridden at instantiation.""" - with pytest.raises(ValueError): - AgentEngineSandboxCodeExecutor( - sandbox_resource_name="projects/123/locations/us-central1/reasoningEgines/456/sandboxes/789", - ) - - def test_init_with_agent_engine_overrides_throws_error(self): - """Tests that class attributes can be overridden at instantiation.""" - with pytest.raises(ValueError): - AgentEngineSandboxCodeExecutor( - agent_engine_resource_name=( - "projects/123/locations/us-central1/reason/456" - ), - ) - - @patch( - "google.adk.code_executors.agent_engine_sandbox_code_executor.vertexai" - ) - def test_execute_code_success( - self, - mock_vertexai, - mock_invocation_context, - ): - # Setup Mocks - mock_api_client = MagicMock() - mock_vertexai.Client.return_value = mock_api_client - mock_response = MagicMock() - mock_json_output = MagicMock() - mock_json_output.mime_type = "application/json" - mock_json_output.data = json.dumps( - {"stdout": "hello world", "stderr": ""} - ).encode("utf-8") - mock_json_output.metadata = None - - mock_file_output = MagicMock() - mock_file_output.mime_type = "text/plain" - mock_file_output.data = b"file content" - mock_file_output.metadata = MagicMock() - mock_file_output.metadata.attributes = {"file_name": b"file.txt"} - - mock_png_file_output = MagicMock() - mock_png_file_output.mime_type = "image/png" - sample_png_bytes = b"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x01\x00\x00\x00\x01\x08\x06\x00\x00\x00\x1f\x15\xc4\x89" - mock_png_file_output.data = sample_png_bytes - mock_png_file_output.metadata = MagicMock() - mock_png_file_output.metadata.attributes = {"file_name": b"file.png"} - - mock_response.outputs = [ - mock_json_output, - mock_file_output, - mock_png_file_output, - ] - mock_api_client.agent_engines.sandboxes.execute_code.return_value = ( - mock_response - ) - - # Execute - executor = AgentEngineSandboxCodeExecutor( - sandbox_resource_name="projects/123/locations/us-central1/reasoningEngines/456/sandboxEnvironments/789" - ) - code_input = CodeExecutionInput(code='print("hello world")') - result = executor.execute_code(mock_invocation_context, code_input) - - # Assert - assert result.stdout == "hello world" - assert not result.stderr - assert result.output_files[0].mime_type == "text/plain" - assert result.output_files[0].content == b"file content" - - assert result.output_files[0].name == "file.txt" - assert result.output_files[1].mime_type == "image/png" - assert result.output_files[1].name == "file.png" - assert result.output_files[1].content == sample_png_bytes - mock_api_client.agent_engines.sandboxes.execute_code.assert_called_once_with( - name="projects/123/locations/us-central1/reasoningEngines/456/sandboxEnvironments/789", - input_data={"code": 'print("hello world")'}, - ) From d327538724f505480c9f764c61d59eee0da92b5c Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Sun, 19 Oct 2025 11:21:08 -0700 Subject: [PATCH 134/303] chore: Throw 409 already exist error when trying to create a session with existing id Resolves https://github.com/google/adk-python/issues/2950 PiperOrigin-RevId: 821362008 --- src/google/adk/cli/adk_web_server.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/google/adk/cli/adk_web_server.py b/src/google/adk/cli/adk_web_server.py index 2b9993a05b..5ae83b8ea1 100644 --- a/src/google/adk/cli/adk_web_server.py +++ b/src/google/adk/cli/adk_web_server.py @@ -741,7 +741,7 @@ async def create_session_with_id( is not None ): raise HTTPException( - status_code=400, detail=f"Session already exists: {session_id}" + status_code=409, detail=f"Session already exists: {session_id}" ) session = await self.session_service.create_session( app_name=app_name, user_id=user_id, state=state, session_id=session_id @@ -763,6 +763,13 @@ async def create_session( app_name=app_name, user_id=user_id ) + if req.session_id and await self.session_service.get_session( + app_name=app_name, user_id=user_id, session_id=req.session_id + ): + raise HTTPException( + status_code=409, detail=f"Session already exists: {req.session_id}" + ) + session = await self.session_service.create_session( app_name=app_name, user_id=user_id, From ee39a891106316b790621795b5cc529e89815a98 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Mon, 20 Oct 2025 10:14:06 -0700 Subject: [PATCH 135/303] feat: introduces a new AgentEngineSandboxCodeExecutor class that supports executes agent generated code The AgentEngineSandboxCodeExecutor uses the Vertex AI Code Execution Sandbox API to execute code PiperOrigin-RevId: 821699641 --- .../agent_engine_code_execution/README | 18 ++ .../agent_engine_code_execution/__init__.py | 15 ++ .../agent_engine_code_execution/agent.py | 95 +++++++++ pyproject.toml | 2 +- src/google/adk/code_executors/__init__.py | 13 ++ .../agent_engine_sandbox_code_executor.py | 187 ++++++++++++++++++ .../code_executors/code_execution_utils.py | 6 +- ...test_agent_engine_sandbox_code_executor.py | 122 ++++++++++++ 8 files changed, 455 insertions(+), 3 deletions(-) create mode 100644 contributing/samples/agent_engine_code_execution/README create mode 100644 contributing/samples/agent_engine_code_execution/__init__.py create mode 100644 contributing/samples/agent_engine_code_execution/agent.py create mode 100644 src/google/adk/code_executors/agent_engine_sandbox_code_executor.py create mode 100644 tests/unittests/code_executors/test_agent_engine_sandbox_code_executor.py diff --git a/contributing/samples/agent_engine_code_execution/README b/contributing/samples/agent_engine_code_execution/README new file mode 100644 index 0000000000..f593c5849f --- /dev/null +++ b/contributing/samples/agent_engine_code_execution/README @@ -0,0 +1,18 @@ +# OAuth Sample + +## Introduction + +This sample data science agent uses Agent Engine Code Execution Sandbox to execute LLM generated code. + + +## How to use + +* 1. Follow https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/code-execution/overview to create a code execution sandbox environment. + +* 2. Replace the SANDBOX_RESOURCE_NAME with the one you just created. If you dont want to create a new sandbox environment directly, the Agent Engine Code Execution Sandbox will create one for you by default using the AGENT_ENGINE_RESOURCE_NAME you specified, however, please ensure to clean up sandboxes after use, otherwise, it will consume quotas. + + +## Sample prompt + +* Can you write a function that calculates the sum from 1 to 100. +* The dataset is given as below. Store,Date,Weekly_Sales,Holiday_Flag,Temperature,Fuel_Price,CPI,Unemployment Store 1,2023-06-01,1000,0,70,3.0,200,5 Store 2,2023-06-02,1200,1,80,3.5,210,6 Store 3,2023-06-03,1400,0,90,4.0,220,7 Store 4,2023-06-04,1600,1,70,4.5,230,8 Store 5,2023-06-05,1800,0,80,5.0,240,9 Store 6,2023-06-06,2000,1,90,5.5,250,10 Store 7,2023-06-07,2200,0,90,6.0,260,11 Plot a scatter plot showcasing the relationship between Weekly Sales and Temperature for each store, distinguishing stores with a Holiday Flag. \ No newline at end of file diff --git a/contributing/samples/agent_engine_code_execution/__init__.py b/contributing/samples/agent_engine_code_execution/__init__.py new file mode 100644 index 0000000000..c48963cdc7 --- /dev/null +++ b/contributing/samples/agent_engine_code_execution/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/agent_engine_code_execution/agent.py b/contributing/samples/agent_engine_code_execution/agent.py new file mode 100644 index 0000000000..c626067e26 --- /dev/null +++ b/contributing/samples/agent_engine_code_execution/agent.py @@ -0,0 +1,95 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Data science agent.""" + +from google.adk.agents.llm_agent import Agent +from google.adk.code_executors.agent_engine_sandbox_code_executor import AgentEngineSandboxCodeExecutor + + +def base_system_instruction(): + """Returns: data science agent system instruction.""" + + return """ + # Guidelines + + **Objective:** Assist the user in achieving their data analysis goals within the context of a Python Colab notebook, **with emphasis on avoiding assumptions and ensuring accuracy.** Reaching that goal can involve multiple steps. When you need to generate code, you **don't** need to solve the goal in one go. Only generate the next step at a time. + + **Code Execution:** All code snippets provided will be executed within the Colab environment. + + **Statefulness:** All code snippets are executed and the variables stays in the environment. You NEVER need to re-initialize variables. You NEVER need to reload files. You NEVER need to re-import libraries. + + **Output Visibility:** Always print the output of code execution to visualize results, especially for data exploration and analysis. For example: + - To look a the shape of a pandas.DataFrame do: + ```tool_code + print(df.shape) + ``` + The output will be presented to you as: + ```tool_outputs + (49, 7) + + ``` + - To display the result of a numerical computation: + ```tool_code + x = 10 ** 9 - 12 ** 5 + print(f'{{x=}}') + ``` + The output will be presented to you as: + ```tool_outputs + x=999751168 + + ``` + - You **never** generate ```tool_outputs yourself. + - You can then use this output to decide on next steps. + - Print just variables (e.g., `print(f'{{variable=}}')`. + + **No Assumptions:** **Crucially, avoid making assumptions about the nature of the data or column names.** Base findings solely on the data itself. Always use the information obtained from `explore_df` to guide your analysis. + + **Available files:** Only use the files that are available as specified in the list of available files. + + **Data in prompt:** Some queries contain the input data directly in the prompt. You have to parse that data into a pandas DataFrame. ALWAYS parse all the data. NEVER edit the data that are given to you. + + **Answerability:** Some queries may not be answerable with the available data. In those cases, inform the user why you cannot process their query and suggest what type of data would be needed to fulfill their request. + + """ + + +root_agent = Agent( + model="gemini-2.0-flash-001", + name="agent_engine_code_execution_agent", + instruction=base_system_instruction() + """ + + +You need to assist the user with their queries by looking at the data and the context in the conversation. +You final answer should summarize the code and code execution relevant to the user query. + +You should include all pieces of data to answer the user query, such as the table from code execution results. +If you cannot answer the question directly, you should follow the guidelines above to generate the next step. +If the question can be answered directly with writing any code, you should do that. +If you doesn't have enough data to answer the question, you should ask for clarification from the user. + +You should NEVER install any package on your own like `pip install ...`. +When plotting trends, you should make sure to sort and order the data by the x-axis. + + +""", + code_executor=AgentEngineSandboxCodeExecutor( + # Replace with your sandbox resource name if you already have one. + sandbox_resource_name="SANDBOX_RESOURCE_NAME", + # "projects/vertex-agent-loadtest/locations/us-central1/reasoningEngines/6842889780301135872/sandboxEnvironments/6545148628569161728", + # Replace with agent engine resource name used for creating sandbox if + # sandbox_resource_name is not set. + agent_engine_resource_name="AGENT_ENGINE_RESOURCE_NAME", + ), +) diff --git a/pyproject.toml b/pyproject.toml index 95c69f1fa7..bcb7dd10f5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,7 +32,7 @@ dependencies = [ "click>=8.1.8, <9.0.0", # For CLI tools "fastapi>=0.115.0, <1.0.0", # FastAPI framework "google-api-python-client>=2.157.0, <3.0.0", # Google API client discovery - "google-cloud-aiplatform[agent_engines]>=1.112.0, <2.0.0",# For VertexAI integrations, e.g. example store. + "google-cloud-aiplatform[agent_engines]>=1.121.0, <2.0.0",# For VertexAI integrations, e.g. example store. "google-cloud-bigtable>=2.32.0", # For Bigtable database "google-cloud-discoveryengine>=0.13.12, <0.14.0", # For Discovery Engine Search Tool "google-cloud-secret-manager>=2.22.0, <3.0.0", # Fetching secrets in RestAPI Tool diff --git a/src/google/adk/code_executors/__init__.py b/src/google/adk/code_executors/__init__.py index 41d406f63d..edeaf5d272 100644 --- a/src/google/adk/code_executors/__init__.py +++ b/src/google/adk/code_executors/__init__.py @@ -12,6 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations + import logging from .base_code_executor import BaseCodeExecutor @@ -29,6 +31,7 @@ 'VertexAiCodeExecutor', 'ContainerCodeExecutor', 'GkeCodeExecutor', + 'AgentEngineSandboxCodeExecutor', ] @@ -63,4 +66,14 @@ def __getattr__(name: str): 'GkeCodeExecutor requires additional dependencies. ' 'Please install with: pip install "google-adk[extensions]"' ) from e + elif name == 'AgentEngineSandboxCodeExecutor': + try: + from .agent_engine_sandbox_code_executor import AgentEngineSandboxCodeExecutor + + return AgentEngineSandboxCodeExecutor + except ImportError as e: + raise ImportError( + 'AgentEngineSandboxCodeExecutor requires additional dependencies. ' + 'Please install with: pip install "google-adk[extensions]"' + ) from e raise AttributeError(f"module '{__name__}' has no attribute '{name}'") diff --git a/src/google/adk/code_executors/agent_engine_sandbox_code_executor.py b/src/google/adk/code_executors/agent_engine_sandbox_code_executor.py new file mode 100644 index 0000000000..cfaee8d253 --- /dev/null +++ b/src/google/adk/code_executors/agent_engine_sandbox_code_executor.py @@ -0,0 +1,187 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +import json +import logging +import mimetypes +import re +from typing import Optional + +from typing_extensions import override +import vertexai +from vertexai import types + +from ..agents.invocation_context import InvocationContext +from ..utils.feature_decorator import experimental +from .base_code_executor import BaseCodeExecutor +from .code_execution_utils import CodeExecutionInput +from .code_execution_utils import CodeExecutionResult +from .code_execution_utils import File + +logger = logging.getLogger('google_adk.' + __name__) + + +@experimental +class AgentEngineSandboxCodeExecutor(BaseCodeExecutor): + """A code executor that uses Agent Engine Code Execution Sandbox to execute code. + + Attributes: + sandbox_resource_name: If set, load the existing resource name of the code + interpreter extension instead of creating a new one. Format: + projects/123/locations/us-central1/reasoningEngines/456/sandboxEnvironments/789 + """ + + sandbox_resource_name: str = None + + def __init__( + self, + sandbox_resource_name: Optional[str] = None, + agent_engine_resource_name: Optional[str] = None, + **data, + ): + """Initializes the AgentEngineSandboxCodeExecutor. + + Args: + sandbox_resource_name: If set, load the existing resource name of code + execution sandbox, if not set, create a new one. Format: + projects/123/locations/us-central1/reasoningEngines/456/ + sandboxEnvironments/789 + agent_engine_resource_name: The resource name of the agent engine to use + to create the code execution sandbox. Format: + projects/123/locations/us-central1/reasoningEngines/456, when both + sandbox_resource_name and agent_engine_resource_name are set, + agent_engine_resource_name will be ignored. + **data: Additional keyword arguments to be passed to the base class. + """ + super().__init__(**data) + sandbox_resource_name_pattern = r'^projects/([a-zA-Z0-9-_]+)/locations/([a-zA-Z0-9-_]+)/reasoningEngines/(\d+)/sandboxEnvironments/(\d+)$' + agent_engine_resource_name_pattern = r'^projects/([a-zA-Z0-9-_]+)/locations/([a-zA-Z0-9-_]+)/reasoningEngines/(\d+)$' + + if sandbox_resource_name is not None: + self.sandbox_resource_name = sandbox_resource_name + self._project_id, self._location = ( + self._get_project_id_and_location_from_resource_name( + sandbox_resource_name, sandbox_resource_name_pattern + ) + ) + elif agent_engine_resource_name is not None: + self._project_id, self._location = ( + self._get_project_id_and_location_from_resource_name( + agent_engine_resource_name, agent_engine_resource_name_pattern + ) + ) + # @TODO - Add TTL for sandbox creation after it is available + # in SDK. + operation = self._get_api_client().agent_engines.sandboxes.create( + spec={'code_execution_environment': {}}, + name=agent_engine_resource_name, + config=types.CreateAgentEngineSandboxConfig( + display_name='default_sandbox' + ), + ) + self.sandbox_resource_name = operation.response.name + else: + raise ValueError( + 'Either sandbox_resource_name or agent_engine_resource_name must be' + ' set.' + ) + + @override + def execute_code( + self, + invocation_context: InvocationContext, + code_execution_input: CodeExecutionInput, + ) -> CodeExecutionResult: + # Execute the code. + input_data = { + 'code': code_execution_input.code, + } + if code_execution_input.input_files: + input_data['files'] = [ + { + 'name': f.name, + 'contents': f.content, + 'mimeType': f.mime_type, + } + for f in code_execution_input.input_files + ] + + code_execution_response = ( + self._get_api_client().agent_engines.sandboxes.execute_code( + name=self.sandbox_resource_name, + input_data=input_data, + ) + ) + saved_files = [] + stdout = '' + stderr = '' + for output in code_execution_response.outputs: + if output.mime_type == 'application/json' and ( + output.metadata is None + or output.metadata.attributes is None + or 'file_name' not in output.metadata.attributes + ): + json_output_data = json.loads(output.data.decode('utf-8')) + stdout = json_output_data.get('stdout', '') + stderr = json_output_data.get('stderr', '') + else: + file_name = '' + if ( + output.metadata is not None + and output.metadata.attributes is not None + ): + file_name = output.metadata.attributes.get('file_name', b'').decode( + 'utf-8' + ) + mime_type = output.mime_type + if not mime_type: + mime_type, _ = mimetypes.guess_type(file_name) + saved_files.append( + File( + name=file_name, + content=output.data, + mime_type=mime_type, + ) + ) + + # Collect the final result. + return CodeExecutionResult( + stdout=stdout, + stderr=stderr, + output_files=saved_files, + ) + + def _get_api_client(self): + """Instantiates an API client for the given project and location. + + It needs to be instantiated inside each request so that the event loop + management can be properly propagated. + + Returns: + An API client for the given project and location. + """ + return vertexai.Client(project=self._project_id, location=self._location) + + def _get_project_id_and_location_from_resource_name( + self, resource_name: str, pattern: str + ) -> tuple[str, str]: + """Extracts the project ID and location from the resource name.""" + match = re.fullmatch(pattern, resource_name) + + if not match: + raise ValueError(f'resource name {resource_name} is not valid.') + + return match.groups()[0], match.groups()[1] diff --git a/src/google/adk/code_executors/code_execution_utils.py b/src/google/adk/code_executors/code_execution_utils.py index 8a20218378..46b412a0de 100644 --- a/src/google/adk/code_executors/code_execution_utils.py +++ b/src/google/adk/code_executors/code_execution_utils.py @@ -14,6 +14,8 @@ """Utility functions for code execution.""" +from __future__ import annotations + import base64 import binascii import copy @@ -34,9 +36,9 @@ class File: The name of the file with file extension (e.g., "file.csv"). """ - content: str + content: str | bytes """ - The base64-encoded bytes of the file content. + The base64-encoded bytes of the file content or the original bytes of the file content. """ mime_type: str = 'text/plain' diff --git a/tests/unittests/code_executors/test_agent_engine_sandbox_code_executor.py b/tests/unittests/code_executors/test_agent_engine_sandbox_code_executor.py new file mode 100644 index 0000000000..b1f922952a --- /dev/null +++ b/tests/unittests/code_executors/test_agent_engine_sandbox_code_executor.py @@ -0,0 +1,122 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import json +from unittest.mock import MagicMock +from unittest.mock import patch + +from google.adk.agents.invocation_context import InvocationContext +from google.adk.code_executors.agent_engine_sandbox_code_executor import AgentEngineSandboxCodeExecutor +from google.adk.code_executors.code_execution_utils import CodeExecutionInput +import pytest + + +@pytest.fixture +def mock_invocation_context() -> InvocationContext: + """Fixture for a mock InvocationContext.""" + mock = MagicMock(spec=InvocationContext) + mock.invocation_id = "test-invocation-123" + return mock + + +class TestAgentEngineSandboxCodeExecutor: + """Unit tests for the AgentEngineSandboxCodeExecutor.""" + + def test_init_with_sandbox_overrides(self): + """Tests that class attributes can be overridden at instantiation.""" + executor = AgentEngineSandboxCodeExecutor( + sandbox_resource_name="projects/123/locations/us-central1/reasoningEngines/456/sandboxEnvironments/789", + ) + assert executor.sandbox_resource_name == ( + "projects/123/locations/us-central1/reasoningEngines/456/sandboxEnvironments/789" + ) + + def test_init_with_sandbox_overrides_throws_error(self): + """Tests that class attributes can be overridden at instantiation.""" + with pytest.raises(ValueError): + AgentEngineSandboxCodeExecutor( + sandbox_resource_name="projects/123/locations/us-central1/reasoningEgines/456/sandboxes/789", + ) + + def test_init_with_agent_engine_overrides_throws_error(self): + """Tests that class attributes can be overridden at instantiation.""" + with pytest.raises(ValueError): + AgentEngineSandboxCodeExecutor( + agent_engine_resource_name=( + "projects/123/locations/us-central1/reason/456" + ), + ) + + @patch( + "google.adk.code_executors.agent_engine_sandbox_code_executor.vertexai" + ) + def test_execute_code_success( + self, + mock_vertexai, + mock_invocation_context, + ): + # Setup Mocks + mock_api_client = MagicMock() + mock_vertexai.Client.return_value = mock_api_client + mock_response = MagicMock() + mock_json_output = MagicMock() + mock_json_output.mime_type = "application/json" + mock_json_output.data = json.dumps( + {"stdout": "hello world", "stderr": ""} + ).encode("utf-8") + mock_json_output.metadata = None + + mock_file_output = MagicMock() + mock_file_output.mime_type = "text/plain" + mock_file_output.data = b"file content" + mock_file_output.metadata = MagicMock() + mock_file_output.metadata.attributes = {"file_name": b"file.txt"} + + mock_png_file_output = MagicMock() + mock_png_file_output.mime_type = "image/png" + sample_png_bytes = b"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x01\x00\x00\x00\x01\x08\x06\x00\x00\x00\x1f\x15\xc4\x89" + mock_png_file_output.data = sample_png_bytes + mock_png_file_output.metadata = MagicMock() + mock_png_file_output.metadata.attributes = {"file_name": b"file.png"} + + mock_response.outputs = [ + mock_json_output, + mock_file_output, + mock_png_file_output, + ] + mock_api_client.agent_engines.sandboxes.execute_code.return_value = ( + mock_response + ) + + # Execute + executor = AgentEngineSandboxCodeExecutor( + sandbox_resource_name="projects/123/locations/us-central1/reasoningEngines/456/sandboxEnvironments/789" + ) + code_input = CodeExecutionInput(code='print("hello world")') + result = executor.execute_code(mock_invocation_context, code_input) + + # Assert + assert result.stdout == "hello world" + assert not result.stderr + assert result.output_files[0].mime_type == "text/plain" + assert result.output_files[0].content == b"file content" + + assert result.output_files[0].name == "file.txt" + assert result.output_files[1].mime_type == "image/png" + assert result.output_files[1].name == "file.png" + assert result.output_files[1].content == sample_png_bytes + mock_api_client.agent_engines.sandboxes.execute_code.assert_called_once_with( + name="projects/123/locations/us-central1/reasoningEngines/456/sandboxEnvironments/789", + input_data={"code": 'print("hello world")'}, + ) From 0b73a6937bd84a41f79a9ada3fc782dca1d6fb11 Mon Sep 17 00:00:00 2001 From: ejfn <148174+ejfn@users.noreply.github.com> Date: Mon, 20 Oct 2025 12:10:50 -0700 Subject: [PATCH 136/303] fix: Handle App objects in eval and graph endpoints Merge https://github.com/google/adk-python/pull/3060 ## Description Fixes #3059 This PR fixes two endpoints in `adk web` that fail when using App objects instead of bare agents. ## Changes - **Eval execution endpoint** (line ~969): Extract root_agent from App objects before passing to LocalEvalService - **Graph visualization endpoint** (line ~1308): Extract root_agent from App objects before graph operations Both endpoints now properly handle both BaseAgent and App objects by checking the type and extracting `.root_agent` when needed. ## Testing Plan ### Manual E2E Testing with ADK Web Tested with an App object that includes context caching: ```python from google.adk.apps import App from google.adk.agents import LlmAgent root_agent = LlmAgent(name="MyAgent", model="gemini-1.5-pro-002") app = App( name="my_agent", root_agent=root_agent, context_cache_config=ContextCacheConfig(...) ) ``` **Before fix:** - Graph visualization failed (tried to call agent methods on App object) - Eval execution failed (LocalEvalService received App instead of agent) **After fix:** - Graph visualization works correctly - Eval execution works correctly - Both endpoints properly extract root_agent from App objects ## Checklist - [x] Code follows project style (autoformat.sh passed) - [x] Changes are focused and minimal - [x] Issue #3059 created and referenced - [x] Manual E2E testing completed COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3060 from ejfn:ejfn/bugfix-app-object-endpoints 01c30191bfd9487a8c8463ccf24b297cb9a4ce37 PiperOrigin-RevId: 821746910 --- src/google/adk/cli/adk_web_server.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/google/adk/cli/adk_web_server.py b/src/google/adk/cli/adk_web_server.py index 5ae83b8ea1..dc111ae7d7 100644 --- a/src/google/adk/cli/adk_web_server.py +++ b/src/google/adk/cli/adk_web_server.py @@ -486,6 +486,12 @@ async def get_runner_async(self, app_name: str) -> Runner: self.runner_dict[app_name] = runner return runner + def _get_root_agent(self, agent_or_app: BaseAgent | App) -> BaseAgent: + """Extract root agent from either a BaseAgent or App object.""" + if isinstance(agent_or_app, App): + return agent_or_app.root_agent + return agent_or_app + def _create_runner(self, agentic_app: App) -> Runner: """Create a runner with common services.""" return Runner( @@ -933,9 +939,8 @@ async def add_session_to_eval_set( # Populate the session with initial session state. agent_or_app = self.agent_loader.load_agent(app_name) - if isinstance(agent_or_app, App): - agent_or_app = agent_or_app.root_agent - initial_session_state = create_empty_state(agent_or_app) + root_agent = self._get_root_agent(agent_or_app) + initial_session_state = create_empty_state(root_agent) new_eval_case = EvalCase( eval_id=req.eval_id, @@ -1096,7 +1101,8 @@ async def run_eval( status_code=400, detail=f"Eval set `{eval_set_id}` not found." ) - root_agent = self.agent_loader.load_agent(app_name) + agent_or_app = self.agent_loader.load_agent(app_name) + root_agent = self._get_root_agent(agent_or_app) eval_case_results = [] @@ -1437,13 +1443,7 @@ async def get_event_graph( function_calls = event.get_function_calls() function_responses = event.get_function_responses() agent_or_app = self.agent_loader.load_agent(app_name) - # The loader may return an App; unwrap to its root agent so the graph builder - # receives a BaseAgent instance. - root_agent = ( - agent_or_app.root_agent - if isinstance(agent_or_app, App) - else agent_or_app - ) + root_agent = self._get_root_agent(agent_or_app) dot_graph = None if function_calls: function_call_highlights = [] From 6a5eac0bdc9adc6907a28f65a3d4d7234e863049 Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Mon, 20 Oct 2025 13:33:27 -0700 Subject: [PATCH 137/303] feat: Allow passing extra kwargs to create_session of VertexAiSessionService This can be used to set ttl and other configs. PiperOrigin-RevId: 821782343 --- .../adk/sessions/vertex_ai_session_service.py | 17 +++++++++++ .../test_vertex_ai_session_service.py | 28 +++++++++++++++++-- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index 6901f4cb64..7c54728316 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -73,7 +73,23 @@ async def create_session( user_id: str, state: Optional[dict[str, Any]] = None, session_id: Optional[str] = None, + **kwargs: Any, ) -> Session: + """Creates a new session. + + Args: + app_name: The name of the application. + user_id: The ID of the user. + state: The initial state of the session. + session_id: The ID of the session. + **kwargs: Additional arguments to pass to the session creation. E.g. set + expire_time='2025-10-01T00:00:00Z' to set the session expiration time. + See https://cloud.google.com/vertex-ai/generative-ai/docs/reference/rest/v1beta1/projects.locations.reasoningEngines.sessions + for more details. + Returns: + The created session. + """ + if session_id: raise ValueError( 'User-provided Session id is not supported for' @@ -84,6 +100,7 @@ async def create_session( api_client = self._get_api_client() config = {'session_state': state} if state else {} + config.update(kwargs) if _is_vertex_express_mode(self._project, self._location): config['wait_for_completion'] = False diff --git a/tests/unittests/sessions/test_vertex_ai_session_service.py b/tests/unittests/sessions/test_vertex_ai_session_service.py index bf06fc0101..7279741552 100644 --- a/tests/unittests/sessions/test_vertex_ai_session_service.py +++ b/tests/unittests/sessions/test_vertex_ai_session_service.py @@ -242,6 +242,7 @@ def __init__(self) -> None: self.agent_engines.sessions.create.side_effect = self._create_session self.agent_engines.sessions.events.list.side_effect = self._list_events self.agent_engines.sessions.events.append.side_effect = self._append_event + self.last_create_session_config: dict[str, Any] = {} def _get_session(self, name: str): session_id = name.split('/')[-1] @@ -275,6 +276,7 @@ def _delete_session(self, name: str): self.session_dict.pop(session_id) def _create_session(self, name: str, user_id: str, config: dict[str, Any]): + self.last_create_session_config = config new_session_id = '4' self.session_dict[new_session_id] = { 'name': ( @@ -360,7 +362,8 @@ def mock_vertex_ai_session_service(agent_engine_id: Optional[str] = None): @pytest.fixture -def mock_get_api_client(): +def mock_api_client_instance(): + """Creates a mock API client instance for testing.""" api_client = MockApiClient() api_client.session_dict = { '1': MOCK_SESSION_JSON_1, @@ -373,9 +376,15 @@ def mock_get_api_client(): '1': (copy.deepcopy(MOCK_EVENT_JSON), None), '2': (copy.deepcopy(MOCK_EVENT_JSON_2), 'my_token'), } + return api_client + + +@pytest.fixture +def mock_get_api_client(mock_api_client_instance): + """Mocks the _get_api_client method to return a mock API client.""" with mock.patch( 'google.adk.sessions.vertex_ai_session_service.VertexAiSessionService._get_api_client', - return_value=api_client, + return_value=mock_api_client_instance, ): yield @@ -521,6 +530,21 @@ async def test_create_session_with_custom_session_id(): ) +@pytest.mark.asyncio +@pytest.mark.usefixtures('mock_get_api_client') +async def test_create_session_with_custom_config(mock_api_client_instance): + session_service = mock_vertex_ai_session_service() + + expire_time = '2025-12-12T12:12:12.123456Z' + await session_service.create_session( + app_name='123', user_id='user', expire_time=expire_time + ) + assert ( + mock_api_client_instance.last_create_session_config['expire_time'] + == expire_time + ) + + @pytest.mark.asyncio @pytest.mark.usefixtures('mock_get_api_client') async def test_append_event(): From 0bdba3026345872fb907aedd1ed75e4135e58a30 Mon Sep 17 00:00:00 2001 From: "Wei Sun (Jack)" Date: Tue, 21 Oct 2025 10:34:47 -0700 Subject: [PATCH 138/303] docs: format README.md for samples PiperOrigin-RevId: 822180731 --- .../samples/oauth_calendar_agent/README.md | 46 +++++++++++-------- .../output_schema_with_tools/README.md | 34 +++++++++----- 2 files changed, 49 insertions(+), 31 deletions(-) diff --git a/contributing/samples/oauth_calendar_agent/README.md b/contributing/samples/oauth_calendar_agent/README.md index aaefd6d08b..87e382f6c1 100644 --- a/contributing/samples/oauth_calendar_agent/README.md +++ b/contributing/samples/oauth_calendar_agent/README.md @@ -4,37 +4,45 @@ This sample tests and demos the OAuth support in ADK via two tools: -* 1. list_calendar_events +* 1. list_calendar_events - This is a customized tool that calls Google Calendar API to list calendar events. - It pass in the client id and client secrete to ADK and then get back the access token from ADK. - And then it uses the access token to call calendar api. + This is a customized tool that calls Google Calendar API to list calendar + events. It pass in the client id and client secrete to ADK and then get back + the access token from ADK. And then it uses the access token to call + calendar api. -* 2. get_calendar_events +* 2. get_calendar_events - This is an google calendar tool that calls Google Calendar API to get the details of a specific calendar. - This tool is from the ADK built-in Google Calendar ToolSet. - Everything is wrapped and the tool user just needs to pass in the client id and client secret. + This is an google calendar tool that calls Google Calendar API to get the + details of a specific calendar. This tool is from the ADK built-in Google + Calendar ToolSet. Everything is wrapped and the tool user just needs to pass + in the client id and client secret. ## How to use -* 1. Follow https://developers.google.com/identity/protocols/oauth2#1.-obtain-oauth-2.0-credentials-from-the-dynamic_data.setvar.console_name. to get your client id and client secret. - Be sure to choose "web" as your client type. +* 1. Follow + https://developers.google.com/identity/protocols/oauth2#1.-obtain-oauth-2.0-credentials-from-the-dynamic_data.setvar.console_name. + to get your client id and client secret. Be sure to choose "web" as your + client type. -* 2. Configure your `.env` file to add two variables: +* 2. Configure your `.env` file to add two variables: - * OAUTH_CLIENT_ID={your client id} - * OAUTH_CLIENT_SECRET={your client secret} + * OAUTH_CLIENT_ID={your client id} + * OAUTH_CLIENT_SECRET={your client secret} - Note: don't create a separate `.env` file , instead put it to the same `.env` file that stores your Vertex AI or Dev ML credentials + Note: don't create a separate `.env` file , instead put it to the same + `.env` file that stores your Vertex AI or Dev ML credentials -* 3. Follow https://developers.google.com/identity/protocols/oauth2/web-server#creatingcred to add http://localhost/dev-ui/ to "Authorized redirect URIs". +* 3. Follow + https://developers.google.com/identity/protocols/oauth2/web-server#creatingcred + to add http://localhost/dev-ui/ to "Authorized redirect URIs". - Note: localhost here is just a hostname that you use to access the dev ui, replace it with the actual hostname you use to access the dev ui. + Note: localhost here is just a hostname that you use to access the dev ui, + replace it with the actual hostname you use to access the dev ui. -* 4. For 1st run, allow popup for localhost in Chrome. +* 4. For 1st run, allow popup for localhost in Chrome. ## Sample prompt -* `List all my today's meeting from 7am to 7pm.` -* `Get the details of the first event.` +* `List all my today's meeting from 7am to 7pm.` +* `Get the details of the first event.` diff --git a/contributing/samples/output_schema_with_tools/README.md b/contributing/samples/output_schema_with_tools/README.md index a275d89179..177d735f01 100644 --- a/contributing/samples/output_schema_with_tools/README.md +++ b/contributing/samples/output_schema_with_tools/README.md @@ -1,22 +1,32 @@ # Output Schema with Tools Sample Agent -This sample demonstrates how to use structured output (`output_schema`) alongside other tools in an ADK agent. Previously, this combination was not allowed, but now it's supported through a special processor that handles the interaction. +This sample demonstrates how to use structured output (`output_schema`) +alongside other tools in an ADK agent. Previously, this combination was not +allowed, but now it's supported through a special processor that handles the +interaction. ## How it Works The agent combines: -- **Tools**: `search_wikipedia` and `get_current_year` for gathering information -- **Structured Output**: `PersonInfo` schema to ensure consistent response format + +- **Tools**: `search_wikipedia` and `get_current_year` for gathering + information +- **Structured Output**: `PersonInfo` schema to ensure consistent response + format When both `output_schema` and `tools` are specified: -1. ADK automatically adds a special `set_model_response` tool -2. The model can use the regular tools for information gathering -3. For the final response, the model uses `set_model_response` with structured data -4. ADK extracts and validates the structured response + +1. ADK automatically adds a special `set_model_response` tool +2. The model can use the regular tools for information gathering +3. For the final response, the model uses `set_model_response` with structured + data +4. ADK extracts and validates the structured response ## Expected Response Format -The agent will return information in this structured format for user query "Tell me about Albert Einstein": +The agent will return information in this structured format for user query + +> Tell me about Albert Einstein. ```json { @@ -30,7 +40,7 @@ The agent will return information in this structured format for user query "Tell ## Key Features Demonstrated -1. **Tool Usage**: Agent can search Wikipedia and get current year -2. **Structured Output**: Response follows strict PersonInfo schema -3. **Validation**: ADK validates the response matches the schema -4. **Flexibility**: Works with any combination of tools and output schemas +1. **Tool Usage**: Agent can search Wikipedia and get current year +2. **Structured Output**: Response follows strict PersonInfo schema +3. **Validation**: ADK validates the response matches the schema +4. **Flexibility**: Works with any combination of tools and output schemas From 4a842c5a1334c3ee01406f796651299589fe12ab Mon Sep 17 00:00:00 2001 From: Jaroslav Pantsjoha Date: Tue, 21 Oct 2025 10:46:55 -0700 Subject: [PATCH 139/303] fix(cli): Improve error message when adk web is run in wrong directory MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge https://github.com/google/adk-python/pull/3196 ## Summary Enhances the `AgentLoader` error message to provide clear guidance when users run `adk web` from incorrect directories. ## Motivation During internal workshops, multiple teams encountered confusion when starting `adk web` from the wrong directory. This often happened when: - Running `adk web my_agent/` instead of `adk web .` - Being inside an agent directory when executing the command - Configuring incorrect start paths during development ## Changes - **Smart detection**: Checks if `agent.py` or `root_agent.yaml` exists in the current directory - **Visual diagram**: Shows expected directory structure with actual agent name - **Explicit command**: Includes `adk web ` usage example - **Conditional hint**: Provides targeted guidance when user is detected to be inside an agent directory ## Example Error Message ### Before ``` ValueError: No root_agent found for 'my_agent'. Searched in 'my_agent.agent.root_agent', 'my_agent.root_agent' and 'my_agent/root_agent.yaml'. Ensure 'path/my_agent' is structured correctly, an .env file can be loaded if present, and a root_agent is exposed. ``` ### After ``` ValueError: No root_agent found for 'my_agent'. Searched in 'my_agent.agent.root_agent', 'my_agent.root_agent' and 'my_agent/root_agent.yaml'. Expected directory structure: / my_agent/ agent.py (with root_agent) OR root_agent.yaml Then run: adk web Ensure 'path/my_agent' is structured correctly, an .env file can be loaded if present, and a root_agent is exposed. HINT: It looks like you might be running 'adk web' from inside an agent directory. Try running 'adk web .' from the parent directory that contains your agent folder, not from within the agent folder itself. ``` ## Testing - ✅ Existing unit tests pass (17/22, with 5 pre-existing failures unrelated to this change) - ✅ `test_agent_not_found_error` passes, confirming error message enhancement works correctly - ✅ Code follows ADK contribution guidelines ## Type - [x] Bug fix (improved error messaging) - [ ] Feature - [ ] Breaking change - [ ] Documentation ## Related Fixes #3195 --- **Tags**: #non-breaking 🤖 Generated with [Claude Code](https://claude.com/claude-code) COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3196 from jpantsjoha:fix/improve-adk-web-error-message a73b190f5b021dbe0afa8426172696ee9eeae8da PiperOrigin-RevId: 822186700 --- src/google/adk/cli/utils/agent_loader.py | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/google/adk/cli/utils/agent_loader.py b/src/google/adk/cli/utils/agent_loader.py index d5cb08cf0e..6ea3fc3626 100644 --- a/src/google/adk/cli/utils/agent_loader.py +++ b/src/google/adk/cli/utils/agent_loader.py @@ -224,13 +224,30 @@ def _perform_load(self, agent_name: str) -> Union[BaseAgent, App]: return root_agent # If no root_agent was found by any pattern + # Check if user might be in the wrong directory + hint = "" + agents_path = Path(agents_dir) + if ( + agents_path.joinpath("agent.py").is_file() + or agents_path.joinpath("root_agent.yaml").is_file() + ): + hint = ( + "\n\nHINT: It looks like you might be running 'adk web' from inside" + " an agent directory. Try running 'adk web .' from the parent" + " directory that contains your agent folder, not from within the" + " agent folder itself." + ) + raise ValueError( f"No root_agent found for '{agent_name}'. Searched in" f" '{actual_agent_name}.agent.root_agent'," f" '{actual_agent_name}.root_agent' and" - f" '{actual_agent_name}/root_agent.yaml'. Ensure" - f" '{agents_dir}/{actual_agent_name}' is structured correctly, an .env" - " file can be loaded if present, and a root_agent is exposed." + f" '{actual_agent_name}/root_agent.yaml'.\n\nExpected directory" + f" structure:\n /\n {actual_agent_name}/\n " + " agent.py (with root_agent) OR\n root_agent.yaml\n\nThen run:" + f" adk web \n\nEnsure '{agents_dir}/{actual_agent_name}' is" + " structured correctly, an .env file can be loaded if present, and a" + f" root_agent is exposed.{hint}" ) def _ensure_app_name_matches( From aeaec859bf1d7096ee685321daba9bbf83672056 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Tue, 21 Oct 2025 11:14:45 -0700 Subject: [PATCH 140/303] feat: Adds Static User Simulator and User Simulator Provider Details: - Adds the `StaticUserSimulator` which implements the current functionality of supplying a fixed set of user prompts for an EvalCase. - Adds the `UserSimulatorProvider` which determines the type of user simulator required for an EvalCase (StaticUserSimulator or LlmBackedUserSimulator). - Integrates the UserSimulatorProvider and UserSimulator into the CLI and evaluation infrastructure. - Updates and adds unit tests for the new functionality. - Miscellaneous updates to lay groundwork for a full implementation of the LlmBackedUserSimulator in the future. PiperOrigin-RevId: 822198401 --- src/google/adk/cli/cli_tools_click.py | 6 + src/google/adk/evaluation/agent_evaluator.py | 8 ++ .../adk/evaluation/conversation_scenarios.py | 11 +- src/google/adk/evaluation/eval_case.py | 12 +- src/google/adk/evaluation/eval_config.py | 2 +- .../adk/evaluation/evaluation_generator.py | 84 +++++++---- .../evaluation/llm_backed_user_simulator.py | 33 +++-- .../adk/evaluation/local_eval_service.py | 54 +++++++- .../adk/evaluation/static_user_simulator.py | 79 +++++++++++ src/google/adk/evaluation/user_simulator.py | 30 ++-- .../adk/evaluation/user_simulator_provider.py | 77 ++++++++++ tests/unittests/evaluation/test_eval_case.py | 35 +++++ .../evaluation/test_evaluation_generator.py | 131 ++++++++++++++++++ .../evaluation/test_local_eval_service.py | 49 +++++++ .../evaluation/test_static_user_simulator.py | 54 ++++++++ .../evaluation/test_user_simulator.py | 45 ++++++ .../test_user_simulator_provider.py | 79 +++++++++++ 17 files changed, 727 insertions(+), 62 deletions(-) create mode 100644 src/google/adk/evaluation/static_user_simulator.py create mode 100644 src/google/adk/evaluation/user_simulator_provider.py create mode 100644 tests/unittests/evaluation/test_static_user_simulator.py create mode 100644 tests/unittests/evaluation/test_user_simulator.py create mode 100644 tests/unittests/evaluation/test_user_simulator_provider.py diff --git a/src/google/adk/cli/cli_tools_click.py b/src/google/adk/cli/cli_tools_click.py index 7115b5fca1..a47d20f700 100644 --- a/src/google/adk/cli/cli_tools_click.py +++ b/src/google/adk/cli/cli_tools_click.py @@ -549,6 +549,7 @@ def cli_eval( from ..evaluation.local_eval_set_results_manager import LocalEvalSetResultsManager from ..evaluation.local_eval_sets_manager import load_eval_set_from_file from ..evaluation.local_eval_sets_manager import LocalEvalSetsManager + from ..evaluation.user_simulator_provider import UserSimulatorProvider from .cli_eval import _collect_eval_results from .cli_eval import _collect_inferences from .cli_eval import get_root_agent @@ -638,11 +639,16 @@ def cli_eval( ) ) + user_simulator_provider = UserSimulatorProvider( + user_simulator_config=eval_config.user_simulator_config + ) + try: eval_service = LocalEvalService( root_agent=root_agent, eval_sets_manager=eval_sets_manager, eval_set_results_manager=eval_set_results_manager, + user_simulator_provider=user_simulator_provider, ) inference_results = asyncio.run( diff --git a/src/google/adk/evaluation/agent_evaluator.py b/src/google/adk/evaluation/agent_evaluator.py index 3788a2e614..ff6666d6ea 100644 --- a/src/google/adk/evaluation/agent_evaluator.py +++ b/src/google/adk/evaluation/agent_evaluator.py @@ -50,6 +50,7 @@ from .evaluator import EvalStatus from .in_memory_eval_sets_manager import InMemoryEvalSetsManager from .local_eval_sets_manager import convert_eval_set_to_pydanctic_schema +from .user_simulator_provider import UserSimulatorProvider logger = logging.getLogger("google_adk." + __name__) @@ -149,12 +150,17 @@ async def evaluate_eval_set( ) eval_metrics = get_eval_metrics_from_config(eval_config) + user_simulator_provider = UserSimulatorProvider( + user_simulator_config=eval_config.user_simulator_config + ) + # Step 1: Perform evals, basically inferencing and evaluation of metrics eval_results_by_eval_id = await AgentEvaluator._get_eval_results_by_eval_id( agent_for_eval=agent_for_eval, eval_set=eval_set, eval_metrics=eval_metrics, num_runs=num_runs, + user_simulator_provider=user_simulator_provider, ) # Step 2: Post-process the results! @@ -518,6 +524,7 @@ async def _get_eval_results_by_eval_id( eval_set: EvalSet, eval_metrics: list[EvalMetric], num_runs: int, + user_simulator_provider: UserSimulatorProvider, ) -> dict[str, list[EvalCaseResult]]: """Returns EvalCaseResults grouped by eval case id. @@ -541,6 +548,7 @@ async def _get_eval_results_by_eval_id( eval_sets_manager=AgentEvaluator._get_eval_sets_manager( app_name=app_name, eval_set=eval_set ), + user_simulator_provider=user_simulator_provider, ) inference_requests = [ diff --git a/src/google/adk/evaluation/conversation_scenarios.py b/src/google/adk/evaluation/conversation_scenarios.py index 1ad7dd7358..fc5d365316 100644 --- a/src/google/adk/evaluation/conversation_scenarios.py +++ b/src/google/adk/evaluation/conversation_scenarios.py @@ -14,22 +14,19 @@ from __future__ import annotations -from typing import Union - -from google.genai import types as genai_types from pydantic import Field from .common import EvalBaseModel class ConversationScenario(EvalBaseModel): - """Scenario for a conversation between a simulated user and the Agent.""" + """Scenario for a conversation between a simulated user and the Agent under test.""" - starting_prompt: Union[str, genai_types.Content] + starting_prompt: str """Starting prompt for the conversation. - This prompt acts as the first user message that is given to the Agent. Any - subsequent user messages are obtained by the system that is simulating the + This prompt acts as the fixed first user message that is given to the Agent. + Any subsequent user messages are obtained by the system that is simulating the user. """ diff --git a/src/google/adk/evaluation/eval_case.py b/src/google/adk/evaluation/eval_case.py index 5e27aa414c..9d3389015a 100644 --- a/src/google/adk/evaluation/eval_case.py +++ b/src/google/adk/evaluation/eval_case.py @@ -20,6 +20,7 @@ from google.genai import types as genai_types from pydantic import Field +from pydantic import model_validator from typing_extensions import TypeAlias from .app_details import AppDetails @@ -121,7 +122,7 @@ class SessionInput(EvalBaseModel): StaticConversation: TypeAlias = list[Invocation] -"""A conversation where user's query for each invocation is already specified.""" +"""A conversation where the user's queries for each invocation are already specified.""" class EvalCase(EvalBaseModel): @@ -158,6 +159,15 @@ class EvalCase(EvalBaseModel): ) """A list of rubrics that are applicable to all the invocations in the conversation of this eval case.""" + @model_validator(mode="after") + def ensure_conversation_xor_conversation_scenario(self) -> EvalCase: + if (self.conversation is None) == (self.conversation_scenario is None): + raise ValueError( + "Exactly one of conversation and conversation_scenario must be" + " provided in an EvalCase." + ) + return self + def get_all_tool_calls( intermediate_data: Optional[IntermediateDataType], diff --git a/src/google/adk/evaluation/eval_config.py b/src/google/adk/evaluation/eval_config.py index e1b1fd6c97..8302bb9134 100644 --- a/src/google/adk/evaluation/eval_config.py +++ b/src/google/adk/evaluation/eval_config.py @@ -73,7 +73,7 @@ class EvalConfig(BaseModel): user_simulator_config: Optional[BaseUserSimulatorConfig] = Field( default=None, - description="""Config to be used by the user simulator.""", + description="Config to be used by the user simulator.", ) diff --git a/src/google/adk/evaluation/evaluation_generator.py b/src/google/adk/evaluation/evaluation_generator.py index 97986dfd87..dff61810b4 100644 --- a/src/google/adk/evaluation/evaluation_generator.py +++ b/src/google/adk/evaluation/evaluation_generator.py @@ -14,11 +14,14 @@ from __future__ import annotations +import copy import importlib from typing import Any +from typing import AsyncGenerator from typing import Optional import uuid +from google.genai.types import Content from pydantic import BaseModel from ..agents.llm_agent import Agent @@ -41,6 +44,9 @@ from .eval_case import SessionInput from .eval_set import EvalSet from .request_intercepter_plugin import _RequestIntercepterPlugin +from .user_simulator import Status as UserSimulatorStatus +from .user_simulator import UserSimulator +from .user_simulator_provider import UserSimulatorProvider _USER_AUTHOR = "user" _DEFAULT_AUTHOR = "agent" @@ -79,11 +85,13 @@ async def generate_responses( results = [] for eval_case in eval_set.eval_cases: + # assume only static conversations are needed + user_simulator = UserSimulatorProvider().provide(eval_case) responses = [] for _ in range(repeat_num): response_invocations = await EvaluationGenerator._process_query( - eval_case.conversation, agent_module_path, + user_simulator, agent_name, eval_case.session_input, ) @@ -123,8 +131,8 @@ def generate_responses_from_session(session_path, eval_dataset): @staticmethod async def _process_query( - invocations: list[Invocation], module_name: str, + user_simulator: UserSimulator, agent_name: Optional[str] = None, initial_session: Optional[SessionInput] = None, ) -> list[Invocation]: @@ -141,13 +149,44 @@ async def _process_query( assert agent_to_evaluate, f"Sub-Agent `{agent_name}` not found." return await EvaluationGenerator._generate_inferences_from_root_agent( - invocations, agent_to_evaluate, reset_func, initial_session + agent_to_evaluate, + user_simulator=user_simulator, + reset_func=reset_func, + initial_session=initial_session, ) + @staticmethod + async def _generate_inferences_for_single_user_invocation( + runner: Runner, + user_id: str, + session_id: str, + user_content: Content, + ) -> AsyncGenerator[Event, None]: + invocation_id = None + + async with Aclosing( + runner.run_async( + user_id=user_id, + session_id=session_id, + new_message=user_content, + ) + ) as agen: + + async for event in agen: + if not invocation_id: + invocation_id = event.invocation_id + yield Event( + content=user_content, + author=_USER_AUTHOR, + invocation_id=invocation_id, + ) + + yield event + @staticmethod async def _generate_inferences_from_root_agent( - invocations: list[Invocation], root_agent: Agent, + user_simulator: UserSimulator, reset_func: Optional[Any] = None, initial_session: Optional[SessionInput] = None, session_id: Optional[str] = None, @@ -155,7 +194,8 @@ async def _generate_inferences_from_root_agent( artifact_service: Optional[BaseArtifactService] = None, memory_service: Optional[BaseMemoryService] = None, ) -> list[Invocation]: - """Scrapes the root agent given the list of Invocations.""" + """Scrapes the root agent in coordination with the user simulator.""" + if not session_service: session_service = InMemorySessionService() @@ -194,29 +234,19 @@ async def _generate_inferences_from_root_agent( plugins=[request_intercepter_plugin], ) as runner: events = [] - - for invocation in invocations: - user_content = invocation.user_content - invocation_id = None - - async with Aclosing( - runner.run_async( - user_id=user_id, session_id=session_id, new_message=user_content - ) - ) as agen: - - async for event in agen: - if not invocation_id: - invocation_id = event.invocation_id - events.append( - Event( - content=user_content, - author=_USER_AUTHOR, - invocation_id=invocation_id, - ) - ) - + while True: + next_user_message = await user_simulator.get_next_user_message( + copy.deepcopy(events) + ) + if next_user_message.status == UserSimulatorStatus.SUCCESS: + async for ( + event + ) in EvaluationGenerator._generate_inferences_for_single_user_invocation( + runner, user_id, session_id, next_user_message.user_message + ): events.append(event) + else: # no message generated + break app_details_by_invocation_id = ( EvaluationGenerator._get_app_details_by_invocation_id( diff --git a/src/google/adk/evaluation/llm_backed_user_simulator.py b/src/google/adk/evaluation/llm_backed_user_simulator.py index cda86b93b4..9993563e2a 100644 --- a/src/google/adk/evaluation/llm_backed_user_simulator.py +++ b/src/google/adk/evaluation/llm_backed_user_simulator.py @@ -22,7 +22,9 @@ from typing_extensions import override from ..events.event import Event +from ..models.registry import LLMRegistry from ..utils.feature_decorator import experimental +from .conversation_scenarios import ConversationScenario from .evaluator import Evaluator from .user_simulator import BaseUserSimulatorConfig from .user_simulator import NextUserMessage @@ -37,52 +39,59 @@ class LlmBackedUserSimulatorConfig(BaseUserSimulatorConfig): description="The model to use for user simulation.", ) - model_config: Optional[genai_types.GenerateContentConfig] = Field( - default=genai_types.GenerateContentConfig, + model_configuration: genai_types.GenerateContentConfig = Field( + default_factory=genai_types.GenerateContentConfig, description="The configuration for the model.", ) max_allowed_invocations: int = Field( default=20, description="""Maximum number of invocations allowed by the simulated -interaction. This property allows us to stop a run-off conversation, where the -agent and the user simulator get into an never ending loop. +interaction. This property allows us to stop a run-off conversation, where the +agent and the user simulator get into a never ending loop. The initial fixed +prompt is also counted as an invocation. -(Not recommended)If you don't want a limit, you can set the value to -1. - """, +(Not recommended) If you don't want a limit, you can set the value to -1.""", ) @experimental class LlmBackedUserSimulator(UserSimulator): - """A UserSimulator that uses a LLM to generate messages on behalf of the user.""" + """A UserSimulator that uses an LLM to generate messages on behalf of the user.""" config_type: ClassVar[type[LlmBackedUserSimulatorConfig]] = ( LlmBackedUserSimulatorConfig ) - def __init__(self, *, config: BaseUserSimulatorConfig): + def __init__( + self, + *, + config: BaseUserSimulatorConfig, + conversation_scenario: ConversationScenario, + ): super().__init__(config, config_type=LlmBackedUserSimulator.config_type) + self._conversation_scenario = conversation_scenario @override async def get_next_user_message( self, - conversation_plan: str, events: list[Event], ) -> NextUserMessage: """Returns the next user message to send to the agent with help from a LLM. Args: - conversation_plan: A plan that user simulation system needs to follow as - it plays out the conversation. events: The unaltered conversation history between the user and the agent(s) under evaluation. + + Returns: + A NextUserMessage object containing the next user message to send to the + agent, or a status indicating why no message was generated. """ raise NotImplementedError() @override def get_simulation_evaluator( self, - ) -> Evaluator: + ) -> Optional[Evaluator]: """Returns an Evaluator that evaluates if the simulation was successful or not.""" raise NotImplementedError() diff --git a/src/google/adk/evaluation/local_eval_service.py b/src/google/adk/evaluation/local_eval_service.py index 84e26cb1f5..4dfd391a16 100644 --- a/src/google/adk/evaluation/local_eval_service.py +++ b/src/google/adk/evaluation/local_eval_service.py @@ -22,6 +22,8 @@ from typing import Optional import uuid +from google.genai.types import Content +from google.genai.types import Part from typing_extensions import override from ..agents.base_agent import BaseAgent @@ -51,6 +53,7 @@ from .evaluator import EvaluationResult from .metric_evaluator_registry import DEFAULT_METRIC_EVALUATOR_REGISTRY from .metric_evaluator_registry import MetricEvaluatorRegistry +from .user_simulator_provider import UserSimulatorProvider logger = logging.getLogger('google_adk.' + __name__) @@ -74,6 +77,7 @@ def __init__( artifact_service: Optional[BaseArtifactService] = None, eval_set_results_manager: Optional[EvalSetResultsManager] = None, session_id_supplier: Callable[[], str] = _get_session_id, + user_simulator_provider: UserSimulatorProvider = UserSimulatorProvider(), ): self._root_agent = root_agent self._eval_sets_manager = eval_sets_manager @@ -87,6 +91,7 @@ def __init__( self._artifact_service = artifact_service self._eval_set_results_manager = eval_set_results_manager self._session_id_supplier = session_id_supplier + self._user_simulator_provider = user_simulator_provider @override async def perform_inference( @@ -211,6 +216,48 @@ async def _evaluate_single_inference_result( # would be the score for the eval case. overall_eval_metric_results = [] + user_id = ( + eval_case.session_input.user_id + if eval_case.session_input and eval_case.session_input.user_id + else 'test_user_id' + ) + + if eval_case.conversation_scenario: + logger.warning( + 'Skipping evaluation of variable-length conversation scenario in eval' + ' set/case %s/%s.', + inference_result.eval_set_id, + inference_result.eval_case_id, + ) + for actual_invocation in inference_result.inferences: + eval_metric_result_per_invocation.append( + EvalMetricResultPerInvocation( + actual_invocation=actual_invocation, + expected_invocation=Invocation( + user_content=actual_invocation.user_content, + final_response=Content( + parts=[Part(text='N/A')], role='model' + ), + ), + ) + ) + eval_case_result = EvalCaseResult( + eval_set_file=inference_result.eval_set_id, + eval_set_id=inference_result.eval_set_id, + eval_id=inference_result.eval_case_id, + final_eval_status=EvalStatus.NOT_EVALUATED, + overall_eval_metric_results=overall_eval_metric_results, + eval_metric_result_per_invocation=eval_metric_result_per_invocation, + session_id=inference_result.session_id, + session_details=await self._session_service.get_session( + app_name=inference_result.app_name, + user_id=user_id, + session_id=inference_result.session_id, + ), + user_id=user_id, + ) + return (inference_result, eval_case_result) + if len(inference_result.inferences) != len(eval_case.conversation): raise ValueError( 'Inferences should match conversations in eval case. Found' @@ -281,11 +328,6 @@ async def _evaluate_single_inference_result( final_eval_status = self._generate_final_eval_status( overall_eval_metric_results ) - user_id = ( - eval_case.session_input.user_id - if eval_case.session_input and eval_case.session_input.user_id - else 'test_user_id' - ) eval_case_result = EvalCaseResult( eval_set_file=inference_result.eval_set_id, @@ -373,8 +415,8 @@ async def _perform_inference_sigle_eval_item( try: inferences = ( await EvaluationGenerator._generate_inferences_from_root_agent( - invocations=eval_case.conversation, root_agent=root_agent, + user_simulator=self._user_simulator_provider.provide(eval_case), initial_session=initial_session, session_id=session_id, session_service=self._session_service, diff --git a/src/google/adk/evaluation/static_user_simulator.py b/src/google/adk/evaluation/static_user_simulator.py new file mode 100644 index 0000000000..4c5e2cb54d --- /dev/null +++ b/src/google/adk/evaluation/static_user_simulator.py @@ -0,0 +1,79 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +import logging +from typing import Optional + +from typing_extensions import override + +from ..events.event import Event +from ..utils.feature_decorator import experimental +from .eval_case import StaticConversation +from .evaluator import Evaluator +from .user_simulator import BaseUserSimulatorConfig +from .user_simulator import NextUserMessage +from .user_simulator import Status +from .user_simulator import UserSimulator + +logger = logging.getLogger("google_adk." + __name__) + + +@experimental +class StaticUserSimulator(UserSimulator): + """A UserSimulator that returns a static list of user messages.""" + + def __init__(self, *, static_conversation: StaticConversation): + super().__init__( + BaseUserSimulatorConfig(), config_type=BaseUserSimulatorConfig + ) + self.static_conversation = static_conversation + self.invocation_idx = 0 + + @override + async def get_next_user_message( + self, + events: list[Event], + ) -> NextUserMessage: + """Returns the next user message to send to the agent from a static list. + + Args: + events: The unaltered conversation history between the user and the + agent(s) under evaluation. + + Returns: + A NextUserMessage object containing the next user message to send to the + agent, or a status indicating why no message was generated. + """ + # check if we have reached the end of the list of invocations + if self.invocation_idx >= len(self.static_conversation): + return NextUserMessage(status=Status.STOP_SIGNAL_DETECTED) + + # return the next message in the static list + next_user_content = self.static_conversation[ + self.invocation_idx + ].user_content + self.invocation_idx += 1 + return NextUserMessage( + status=Status.SUCCESS, + user_message=next_user_content, + ) + + @override + def get_simulation_evaluator( + self, + ) -> Optional[Evaluator]: + """The StaticUserSimulator does not require an evaluator.""" + return None diff --git a/src/google/adk/evaluation/user_simulator.py b/src/google/adk/evaluation/user_simulator.py index 39297805aa..c5ab013d7c 100644 --- a/src/google/adk/evaluation/user_simulator.py +++ b/src/google/adk/evaluation/user_simulator.py @@ -23,6 +23,7 @@ from pydantic import BaseModel from pydantic import ConfigDict from pydantic import Field +from pydantic import model_validator from pydantic import ValidationError from ..events.event import Event @@ -32,7 +33,7 @@ class BaseUserSimulatorConfig(BaseModel): - """Base class for configurations pertaining to User Simulator.""" + """Base class for configurations pertaining to user simulator.""" model_config = ConfigDict( alias_generator=alias_generators.to_camel, @@ -60,13 +61,25 @@ class NextUserMessage(EvalBaseModel): ) user_message: Optional[genai_types.Content] = Field( - description="""The next user message.""" + description="""The next user message.""", default=None ) + @model_validator(mode="after") + def ensure_user_message_iff_success(self) -> NextUserMessage: + if (self.status == Status.SUCCESS) == (self.user_message is None): + raise ValueError( + "A user_message should be provided if and only if the status is" + " SUCCESS" + ) + return self + @experimental class UserSimulator(ABC): - """A user simulator for the purposes of automating interaction with an Agent.""" + """A user simulator for the purposes of automating interaction with an Agent. + + Typically, you must create one user simulator instance per eval case. + """ def __init__( self, @@ -82,21 +95,22 @@ def __init__( async def get_next_user_message( self, - conversation_plan: str, events: list[Event], ) -> NextUserMessage: """Returns the next user message to send to the agent. Args: - conversation_plan: A plan that user simulation system needs to follow as - it plays out the conversation. events: The unaltered conversation history between the user and the agent(s) under evaluation. + + Returns: + A NextUserMessage object containing the next user message to send to the + agent, or a status indicating why no message was generated. """ raise NotImplementedError() def get_simulation_evaluator( self, - ) -> Evaluator: - """Returns an instnace of an Evaluator that evaluates if the simulation was successful or not.""" + ) -> Optional[Evaluator]: + """Returns an instance of an Evaluator that evaluates if the user simulation was successful or not.""" raise NotImplementedError() diff --git a/src/google/adk/evaluation/user_simulator_provider.py b/src/google/adk/evaluation/user_simulator_provider.py new file mode 100644 index 0000000000..1aea8c8c92 --- /dev/null +++ b/src/google/adk/evaluation/user_simulator_provider.py @@ -0,0 +1,77 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from typing import Optional + +from ..utils.feature_decorator import experimental +from .eval_case import EvalCase +from .llm_backed_user_simulator import LlmBackedUserSimulator +from .static_user_simulator import StaticUserSimulator +from .user_simulator import BaseUserSimulatorConfig +from .user_simulator import UserSimulator + + +@experimental +class UserSimulatorProvider: + """Provides a UserSimulator instance per EvalCase, mixing configuration data + from the EvalConfig with per-EvalCase conversation data.""" + + def __init__( + self, + user_simulator_config: Optional[BaseUserSimulatorConfig] = None, + ): + if user_simulator_config is None: + user_simulator_config = BaseUserSimulatorConfig() + elif not isinstance(user_simulator_config, BaseUserSimulatorConfig): + # assume that the user simulator will fully validate the config it gets. + raise ValueError(f"Expect config of type `{BaseUserSimulatorConfig}`.") + self._user_simulator_config = user_simulator_config + + def provide(self, eval_case: EvalCase) -> UserSimulator: + """Provide an appropriate user simulator based on the type of conversation data in the EvalCase + + Args: + eval_case: An EvalCase containing a `conversation` xor a + `conversation_scenario`. + + Returns: + A StaticUserSimulator or an LlmBackedUserSimulator based on the type of + the conversation data. + + Raises: + ValueError: If no conversation data or multiple types of conversation data + are provided. + """ + if eval_case.conversation is None: + if eval_case.conversation_scenario is None: + raise ValueError( + "Neither static invocations nor conversation scenario provided in" + " EvalCase. Provide exactly one." + ) + + return LlmBackedUserSimulator( + config=self._user_simulator_config, + conversation_scenario=eval_case.conversation_scenario, + ) + + else: # eval_case.conversation is not None + if eval_case.conversation_scenario is not None: + raise ValueError( + "Both static invocations and conversation scenario provided in" + " EvalCase. Provide exactly one." + ) + + return StaticUserSimulator(static_conversation=eval_case.conversation) diff --git a/tests/unittests/evaluation/test_eval_case.py b/tests/unittests/evaluation/test_eval_case.py index bea81d46ba..4784a9a0aa 100644 --- a/tests/unittests/evaluation/test_eval_case.py +++ b/tests/unittests/evaluation/test_eval_case.py @@ -14,6 +14,8 @@ from __future__ import annotations +from google.adk.evaluation.conversation_scenarios import ConversationScenario +from google.adk.evaluation.eval_case import EvalCase from google.adk.evaluation.eval_case import get_all_tool_calls from google.adk.evaluation.eval_case import get_all_tool_calls_with_responses from google.adk.evaluation.eval_case import get_all_tool_responses @@ -246,3 +248,36 @@ def test_get_all_tool_calls_with_responses_with_invocation_events(): (tool_call1, tool_response1), (tool_call2, None), ] + + +def test_conversation_and_conversation_scenario_mutual_exclusion(): + """Tests the ensure_conversation_xor_conversation_scenario validator.""" + test_conversation_scenario = ConversationScenario( + starting_prompt='', conversation_plan='' + ) + + with pytest.raises( + ValueError, + match=( + 'Exactly one of conversation and conversation_scenario must be' + ' provided in an EvalCase.' + ), + ): + EvalCase(eval_id='test_id') + + with pytest.raises( + ValueError, + match=( + 'Exactly one of conversation and conversation_scenario must be' + ' provided in an EvalCase.' + ), + ): + EvalCase( + eval_id='test_id', + conversation=[], + conversation_scenario=test_conversation_scenario, + ) + + # these two should not cause exceptions + EvalCase(eval_id='test_id', conversation=[]) + EvalCase(eval_id='test_id', conversation_scenario=test_conversation_scenario) diff --git a/tests/unittests/evaluation/test_evaluation_generator.py b/tests/unittests/evaluation/test_evaluation_generator.py index 133c618762..27372f12c2 100644 --- a/tests/unittests/evaluation/test_evaluation_generator.py +++ b/tests/unittests/evaluation/test_evaluation_generator.py @@ -18,9 +18,13 @@ from google.adk.evaluation.app_details import AppDetails from google.adk.evaluation.evaluation_generator import EvaluationGenerator from google.adk.evaluation.request_intercepter_plugin import _RequestIntercepterPlugin +from google.adk.evaluation.user_simulator import NextUserMessage +from google.adk.evaluation.user_simulator import Status as UserSimulatorStatus +from google.adk.evaluation.user_simulator import UserSimulator from google.adk.events.event import Event from google.adk.models.llm_request import LlmRequest from google.genai import types +import pytest def _build_event( @@ -324,3 +328,130 @@ def get_model_request_side_effect(event): } assert app_details == expected_app_details assert mock_request_intercepter.get_model_request.call_count == 3 + + +class TestGenerateInferencesForSingleUserInvocation: + """Test cases for EvaluationGenerator._generate_inferences_for_single_user_invocation method.""" + + @pytest.mark.asyncio + async def test_generate_inferences_with_mock_runner(self, mocker): + """Tests inference generation with a mocked runner.""" + runner = mocker.MagicMock() + + agent_parts = [types.Part(text="Agent response")] + + async def mock_run_async(*args, **kwargs): + yield _build_event( + author="agent", + parts=agent_parts, + invocation_id="inv1", + ) + + runner.run_async.return_value = mock_run_async() + + user_content = types.Content(parts=[types.Part(text="User query")]) + + events = [ + event + async for event in EvaluationGenerator._generate_inferences_for_single_user_invocation( + runner, "test_user", "test_session", user_content + ) + ] + + assert len(events) == 2 + assert events[0].author == "user" + assert events[0].content == user_content + assert events[0].invocation_id == "inv1" + assert events[1].author == "agent" + assert events[1].content.parts == agent_parts + + runner.run_async.assert_called_once_with( + user_id="test_user", + session_id="test_session", + new_message=user_content, + ) + + +@pytest.fixture +def mock_runner(mocker): + """Provides a mock Runner for testing.""" + mock_runner_cls = mocker.patch( + "google.adk.evaluation.evaluation_generator.Runner" + ) + mock_runner_instance = mocker.AsyncMock() + mock_runner_instance.__aenter__.return_value = mock_runner_instance + mock_runner_cls.return_value = mock_runner_instance + yield mock_runner_instance + + +@pytest.fixture +def mock_session_service(mocker): + """Provides a mock InMemorySessionService for testing.""" + mock_session_service_cls = mocker.patch( + "google.adk.evaluation.evaluation_generator.InMemorySessionService" + ) + mock_session_service_instance = mocker.MagicMock() + mock_session_service_instance.create_session = mocker.AsyncMock() + mock_session_service_cls.return_value = mock_session_service_instance + yield mock_session_service_instance + + +class TestGenerateInferencesFromRootAgent: + """Test cases for EvaluationGenerator._generate_inferences_from_root_agent method.""" + + @pytest.mark.asyncio + async def test_generates_inferences_with_user_simulator( + self, mocker, mock_runner, mock_session_service + ): + """Tests that inferences are generated by interacting with a user simulator.""" + mock_agent = mocker.MagicMock() + mock_user_sim = mocker.MagicMock(spec=UserSimulator) + + # Mock user simulator will produce one message, then stop. + async def get_next_user_message_side_effect(*args, **kwargs): + if mock_user_sim.get_next_user_message.call_count == 1: + return NextUserMessage( + status=UserSimulatorStatus.SUCCESS, + user_message=types.Content(parts=[types.Part(text="message 1")]), + ) + return NextUserMessage(status=UserSimulatorStatus.STOP_SIGNAL_DETECTED) + + mock_user_sim.get_next_user_message = mocker.AsyncMock( + side_effect=get_next_user_message_side_effect + ) + + mock_generate_inferences = mocker.patch( + "google.adk.evaluation.evaluation_generator.EvaluationGenerator._generate_inferences_for_single_user_invocation" + ) + mocker.patch( + "google.adk.evaluation.evaluation_generator.EvaluationGenerator._get_app_details_by_invocation_id" + ) + mocker.patch( + "google.adk.evaluation.evaluation_generator.EvaluationGenerator.convert_events_to_eval_invocations" + ) + + # Each call to _generate_inferences_for_single_user_invocation will + # yield one user and one agent event. + async def mock_generate_inferences_side_effect( + runner, user_id, session_id, user_content + ): + yield _build_event("user", user_content.parts, "inv1") + yield _build_event("agent", [types.Part(text="agent_response")], "inv1") + + mock_generate_inferences.side_effect = mock_generate_inferences_side_effect + + await EvaluationGenerator._generate_inferences_from_root_agent( + root_agent=mock_agent, + user_simulator=mock_user_sim, + ) + + # Check that user simulator was called until it stopped. + assert mock_user_sim.get_next_user_message.call_count == 2 + + # Check that we generated inferences for each user message. + assert mock_generate_inferences.call_count == 1 + + # Check the content of the user messages passed to inference generation + mock_generate_inferences.assert_called_once() + called_with_content = mock_generate_inferences.call_args.args[3] + assert called_with_content.parts[0].text == "message 1" diff --git a/tests/unittests/evaluation/test_local_eval_service.py b/tests/unittests/evaluation/test_local_eval_service.py index c9010444c0..d5faf55f25 100644 --- a/tests/unittests/evaluation/test_local_eval_service.py +++ b/tests/unittests/evaluation/test_local_eval_service.py @@ -12,6 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations + import asyncio import sys @@ -246,6 +248,7 @@ async def test_evaluate_success( mock_eval_case = mocker.MagicMock(spec=EvalCase) mock_eval_case.conversation = [] + mock_eval_case.conversation_scenario = None mock_eval_case.session_input = None mock_eval_sets_manager.get_eval_case.return_value = mock_eval_case @@ -321,6 +324,7 @@ async def test_evaluate_single_inference_result( invocation.model_copy(deep=True), invocation.model_copy(deep=True), ] + mock_eval_case.conversation_scenario = None mock_eval_case.session_input = None mock_eval_sets_manager.get_eval_case.return_value = mock_eval_case @@ -352,6 +356,51 @@ async def test_evaluate_single_inference_result( assert metric_result.eval_status == EvalStatus.PASSED +@pytest.mark.asyncio +async def test_evaluate_single_inference_result_skipped_for_conversation_scenario( + eval_service, mock_eval_sets_manager, mocker +): + """To be removed once evaluation is implemented for conversation scenarios.""" + invocation = Invocation( + user_content=genai_types.Content( + parts=[genai_types.Part(text="test user content.")] + ), + final_response=genai_types.Content( + parts=[genai_types.Part(text="test final response.")] + ), + ) + inference_result = InferenceResult( + app_name="test_app", + eval_set_id="test_eval_set", + eval_case_id="case1", + inferences=[invocation.model_copy(deep=True)], + session_id="session1", + ) + eval_metric = EvalMetric(metric_name="fake_metric", threshold=0.5) + evaluate_config = EvaluateConfig(eval_metrics=[eval_metric], parallelism=1) + + mock_eval_case = mocker.MagicMock(spec=EvalCase) + mock_eval_case.conversation = None + mock_eval_case.conversation_scenario = mocker.MagicMock() + mock_eval_case.session_input = None + mock_eval_sets_manager.get_eval_case.return_value = mock_eval_case + + _, result = await eval_service._evaluate_single_inference_result( + inference_result=inference_result, evaluate_config=evaluate_config + ) + assert isinstance(result, EvalCaseResult) + assert result.eval_id == "case1" + assert result.final_eval_status == EvalStatus.NOT_EVALUATED + assert not result.overall_eval_metric_results + assert len(result.eval_metric_result_per_invocation) == 1 + invocation_result = result.eval_metric_result_per_invocation[0] + assert not invocation_result.eval_metric_results + assert ( + invocation_result.expected_invocation.final_response.parts[0].text + == "N/A" + ) + + def test_generate_final_eval_status_doesn_t_throw_on(eval_service): # How to fix if this test case fails? # This test case has failed mainly because a new EvalStatus got added. You diff --git a/tests/unittests/evaluation/test_static_user_simulator.py b/tests/unittests/evaluation/test_static_user_simulator.py new file mode 100644 index 0000000000..5cc70c80e6 --- /dev/null +++ b/tests/unittests/evaluation/test_static_user_simulator.py @@ -0,0 +1,54 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from google.adk.evaluation import static_user_simulator +from google.adk.evaluation import user_simulator +from google.adk.evaluation.eval_case import Invocation +from google.genai import types +import pytest + + +class TestStaticUserSimulator: + """Test cases for StaticUserSimulator.""" + + @pytest.mark.asyncio + async def test_get_next_user_message(self): + """Tests that the provided messages are returned in order followed by the stop signal.""" + conversation = [ + Invocation( + invocation_id="inv1", + user_content=types.Content(parts=[types.Part(text="message 1")]), + ), + Invocation( + invocation_id="inv2", + user_content=types.Content(parts=[types.Part(text="message 2")]), + ), + ] + simulator = static_user_simulator.StaticUserSimulator( + static_conversation=conversation + ) + + next_message_1 = await simulator.get_next_user_message(events=[]) + assert user_simulator.Status.SUCCESS == next_message_1.status + assert "message 1" == next_message_1.user_message.parts[0].text + + next_message_2 = await simulator.get_next_user_message(events=[]) + assert user_simulator.Status.SUCCESS == next_message_2.status + assert "message 2" == next_message_2.user_message.parts[0].text + + next_message_3 = await simulator.get_next_user_message(events=[]) + assert user_simulator.Status.STOP_SIGNAL_DETECTED == next_message_3.status + assert next_message_3.user_message is None diff --git a/tests/unittests/evaluation/test_user_simulator.py b/tests/unittests/evaluation/test_user_simulator.py new file mode 100644 index 0000000000..c3e1e606ee --- /dev/null +++ b/tests/unittests/evaluation/test_user_simulator.py @@ -0,0 +1,45 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from google.adk.evaluation.user_simulator import NextUserMessage +from google.adk.evaluation.user_simulator import Status +from google.genai.types import Content +import pytest + + +def test_next_user_message_validation(): + """Tests post-init validation of NextUserMessage.""" + with pytest.raises( + ValueError, + match=( + "A user_message should be provided if and only if the status is" + " SUCCESS" + ), + ): + NextUserMessage(status=Status.SUCCESS) + + with pytest.raises( + ValueError, + match=( + "A user_message should be provided if and only if the status is" + " SUCCESS" + ), + ): + NextUserMessage(status=Status.TURN_LIMIT_REACHED, user_message=Content()) + + # these two should not cause exceptions + NextUserMessage(status=Status.SUCCESS, user_message=Content()) + NextUserMessage(status=Status.TURN_LIMIT_REACHED) diff --git a/tests/unittests/evaluation/test_user_simulator_provider.py b/tests/unittests/evaluation/test_user_simulator_provider.py new file mode 100644 index 0000000000..7cff4241b6 --- /dev/null +++ b/tests/unittests/evaluation/test_user_simulator_provider.py @@ -0,0 +1,79 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from google.adk.evaluation import conversation_scenarios +from google.adk.evaluation import eval_case +from google.adk.evaluation import user_simulator_provider +from google.adk.evaluation.llm_backed_user_simulator import LlmBackedUserSimulator +from google.adk.evaluation.llm_backed_user_simulator import LlmBackedUserSimulatorConfig +from google.adk.evaluation.static_user_simulator import StaticUserSimulator +from google.genai import types +import pytest + +_TEST_CONVERSATION = [ + eval_case.Invocation( + invocation_id='inv1', + user_content=types.Content(parts=[types.Part(text='Hello!')]), + ), +] + +_TEST_CONVERSATION_SCENARIO = conversation_scenarios.ConversationScenario( + starting_prompt='Hello!', conversation_plan='test plan' +) + + +class TestUserSimulatorProvider: + """Test cases for the UserSimulatorProvider.""" + + def test_provide_static_user_simulator(self): + """Tests the case when a StaticUserSimulator should be provided.""" + provider = user_simulator_provider.UserSimulatorProvider() + test_eval_case = eval_case.EvalCase( + eval_id='test_eval_id', + conversation=_TEST_CONVERSATION, + ) + simulator = provider.provide(test_eval_case) + assert isinstance(simulator, StaticUserSimulator) + assert simulator.static_conversation == _TEST_CONVERSATION + + def test_provide_llm_backed_user_simulator(self, mocker): + """Tests the case when a LlmBackedUserSimulator should be provided.""" + mock_llm_registry = mocker.patch( + 'google.adk.evaluation.llm_backed_user_simulator.LLMRegistry', + autospec=True, + ) + mock_llm_registry.return_value.resolve.return_value = mocker.Mock() + # Test case 1: No config in provider. + provider = user_simulator_provider.UserSimulatorProvider() + test_eval_case = eval_case.EvalCase( + eval_id='test_eval_id', + conversation_scenario=_TEST_CONVERSATION_SCENARIO, + ) + simulator = provider.provide(test_eval_case) + assert isinstance(simulator, LlmBackedUserSimulator) + assert simulator._conversation_scenario == _TEST_CONVERSATION_SCENARIO + + # Test case 2: Config in provider. + llm_config = LlmBackedUserSimulatorConfig( + model='test_model', + ) + provider = user_simulator_provider.UserSimulatorProvider( + user_simulator_config=llm_config + ) + simulator = provider.provide(test_eval_case) + assert isinstance(simulator, LlmBackedUserSimulator) + assert simulator._conversation_scenario == _TEST_CONVERSATION_SCENARIO + assert simulator._config.model == 'test_model' From dc4975dea9fb79ad887460659f8f397a537ee38f Mon Sep 17 00:00:00 2001 From: George Weale Date: Tue, 21 Oct 2025 11:29:43 -0700 Subject: [PATCH 141/303] =?UTF-8?q?fix:=20relax=20runner=20app-name=20enfo?= =?UTF-8?q?rcement=20-=20let=20=5Fenforce=5Fapp=5Fname=5Falignment=20warn?= =?UTF-8?q?=20instead=20of=20raising=20while=20caching=20the=20hint=20that?= =?UTF-8?q?=20now=20augments=20the=20existing=20=E2=80=9CSession=20not=20f?= =?UTF-8?q?ound=20=E2=80=A6=E2=80=9D=20error=20-=20tighten=20=5Finfer=5Fag?= =?UTF-8?q?ent=5Forigin=20so=20it=20ignores=20hidden=20folders=20(like=20.?= =?UTF-8?q?venv)=20-=20make=20AgentTool=20reuse=20the=20parent=20runner?= =?UTF-8?q?=E2=80=99s=20app=5Fname,=20stopping=20internal=20runners=20from?= =?UTF-8?q?=20conflicting=20in=20multi-agent=20setups?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PiperOrigin-RevId: 822205860 --- src/google/adk/cli/utils/agent_loader.py | 59 +++++++---- src/google/adk/runners.py | 50 ++++++---- src/google/adk/tools/agent_tool.py | 9 +- tests/unittests/test_runners.py | 117 ++++++++++++++++++++++ tests/unittests/tools/test_agent_tool.py | 122 +++++++++++++++++++++++ 5 files changed, 317 insertions(+), 40 deletions(-) diff --git a/src/google/adk/cli/utils/agent_loader.py b/src/google/adk/cli/utils/agent_loader.py index 6ea3fc3626..b43306811d 100644 --- a/src/google/adk/cli/utils/agent_loader.py +++ b/src/google/adk/cli/utils/agent_loader.py @@ -15,6 +15,7 @@ from __future__ import annotations import importlib +import importlib.util import logging import os from pathlib import Path @@ -205,22 +206,30 @@ def _perform_load(self, agent_name: str) -> Union[BaseAgent, App]: envs.load_dotenv_for_agent(actual_agent_name, str(agents_dir)) if root_agent := self._load_from_module_or_package(actual_agent_name): - self._ensure_app_name_matches( - maybe_app=root_agent, + self._record_origin_metadata( + loaded=root_agent, expected_app_name=actual_agent_name, + module_name=actual_agent_name, agents_dir=agents_dir, ) return root_agent if root_agent := self._load_from_submodule(actual_agent_name): - self._ensure_app_name_matches( - maybe_app=root_agent, + self._record_origin_metadata( + loaded=root_agent, expected_app_name=actual_agent_name, + module_name=f"{actual_agent_name}.agent", agents_dir=agents_dir, ) return root_agent if root_agent := self._load_from_yaml_config(actual_agent_name, agents_dir): + self._record_origin_metadata( + loaded=root_agent, + expected_app_name=actual_agent_name, + module_name=None, + agents_dir=agents_dir, + ) return root_agent # If no root_agent was found by any pattern @@ -250,32 +259,42 @@ def _perform_load(self, agent_name: str) -> Union[BaseAgent, App]: f" root_agent is exposed.{hint}" ) - def _ensure_app_name_matches( + def _record_origin_metadata( self, *, - maybe_app: Union[BaseAgent, App], + loaded: Union[BaseAgent, App], expected_app_name: str, + module_name: Optional[str], agents_dir: str, ) -> None: - """Raises a detailed error when App.name does not match its directory.""" + """Annotates loaded agent/App with its origin for later diagnostics.""" - if not isinstance(maybe_app, App): - return - - # Built-in apps live under double-underscore directories. + # Do not attach metadata for built-in agents (double underscore names). if expected_app_name.startswith("__"): return - if maybe_app.name == expected_app_name: - return + origin_path: Optional[Path] = None + if module_name: + spec = importlib.util.find_spec(module_name) + if spec and spec.origin: + module_origin = Path(spec.origin).resolve() + origin_path = ( + module_origin.parent if module_origin.is_file() else module_origin + ) - raise ValueError( - "App name mismatch detected. The App defined at " - f"'{agents_dir}/{expected_app_name}' declares name " - f"'{maybe_app.name}', but ADK expects it to match the directory " - f"name '{expected_app_name}'. Rename the App or the folder so they " - "match, then reload." - ) + if origin_path is None: + candidate = Path(agents_dir, expected_app_name) + origin_path = candidate if candidate.exists() else Path(agents_dir) + + def _attach_metadata(target: Union[BaseAgent, App]) -> None: + setattr(target, "_adk_origin_app_name", expected_app_name) + setattr(target, "_adk_origin_path", origin_path) + + if isinstance(loaded, App): + _attach_metadata(loaded) + _attach_metadata(loaded.root_agent) + else: + _attach_metadata(loaded) @override def load_agent(self, agent_name: str) -> Union[BaseAgent, App]: diff --git a/src/google/adk/runners.py b/src/google/adk/runners.py index f68008af5c..50197dda2f 100644 --- a/src/google/adk/runners.py +++ b/src/google/adk/runners.py @@ -155,6 +155,7 @@ def __init__( self._agent_origin_app_name, self._agent_origin_dir, ) = self._infer_agent_origin(self.agent) + self._app_name_alignment_hint: Optional[str] = None self._enforce_app_name_alignment() def _validate_runner_params( @@ -230,35 +231,47 @@ def _infer_agent_origin( module_path = Path(module_file).resolve() project_root = Path.cwd() try: - module_path.relative_to(project_root) + relative_path = module_path.relative_to(project_root) except ValueError: return None, module_path.parent - - current = module_path.parent - while current != project_root and current.parent != current: - parent = current.parent - if parent.name == 'agents': - return current.name, current - current = parent - - return None, module_path.parent + origin_dir = module_path.parent + if 'agents' not in relative_path.parts: + return None, origin_dir + origin_name = origin_dir.name + if origin_name.startswith('.'): + return None, origin_dir + return origin_name, origin_dir def _enforce_app_name_alignment(self) -> None: origin_name = self._agent_origin_app_name origin_dir = self._agent_origin_dir if not origin_name or origin_name.startswith('__'): + self._app_name_alignment_hint = None return if origin_name == self.app_name: + self._app_name_alignment_hint = None return origin_location = str(origin_dir) if origin_dir else origin_name - message = ( - 'App name mismatch detected. The runner is configured with ' - f'app name "{self.app_name}", but the root agent was loaded from ' - f'"{origin_location}", which implies app name "{origin_name}". ' - 'Rename the App or its directory so the names match before running ' - 'the agent.' + mismatch_details = ( + 'The runner is configured with app name ' + f'"{self.app_name}", but the root agent was loaded from ' + f'"{origin_location}", which implies app name "{origin_name}".' + ) + resolution = ( + 'Ensure the runner app_name matches that directory or pass app_name ' + 'explicitly when constructing the runner.' + ) + self._app_name_alignment_hint = f'{mismatch_details} {resolution}' + logger.warning('App name mismatch detected. %s', mismatch_details) + + def _format_session_not_found_message(self, session_id: str) -> str: + message = f'Session not found: {session_id}' + if not self._app_name_alignment_hint: + return message + return ( + f'{message}. {self._app_name_alignment_hint} ' + 'The mismatch prevents the runner from locating the session.' ) - raise ValueError(message) def run( self, @@ -362,7 +375,8 @@ async def _run_with_trace( app_name=self.app_name, user_id=user_id, session_id=session_id ) if not session: - raise ValueError(f'Session not found: {session_id}') + message = self._format_session_not_found_message(session_id) + raise ValueError(message) if not invocation_id and not new_message: raise ValueError('Both invocation_id and new_message are None.') diff --git a/src/google/adk/tools/agent_tool.py b/src/google/adk/tools/agent_tool.py index 9f276fa4fe..43c2d2be3d 100644 --- a/src/google/adk/tools/agent_tool.py +++ b/src/google/adk/tools/agent_tool.py @@ -125,8 +125,13 @@ async def run_async( role='user', parts=[types.Part.from_text(text=args['request'])], ) + invocation_context = tool_context._invocation_context + parent_app_name = ( + invocation_context.app_name if invocation_context else None + ) + child_app_name = parent_app_name or self.agent.name runner = Runner( - app_name=self.agent.name, + app_name=child_app_name, agent=self.agent, artifact_service=ForwardingArtifactService(tool_context), session_service=InMemorySessionService(), @@ -141,7 +146,7 @@ async def run_async( if not k.startswith('_adk') # Filter out adk internal states } session = await runner.session_service.create_session( - app_name=self.agent.name, + app_name=child_app_name, user_id=tool_context._invocation_context.user_id, state=state_dict, ) diff --git a/tests/unittests/test_runners.py b/tests/unittests/test_runners.py index e6578aabe2..d78061ddf2 100644 --- a/tests/unittests/test_runners.py +++ b/tests/unittests/test_runners.py @@ -12,6 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +from pathlib import Path +import textwrap from typing import Optional from google.adk.agents.base_agent import BaseAgent @@ -21,6 +23,7 @@ from google.adk.apps.app import App from google.adk.apps.app import ResumabilityConfig from google.adk.artifacts.in_memory_artifact_service import InMemoryArtifactService +from google.adk.cli.utils.agent_loader import AgentLoader from google.adk.events.event import Event from google.adk.plugins.base_plugin import BasePlugin from google.adk.runners import Runner @@ -158,6 +161,120 @@ def setup_method(self): artifact_service=self.artifact_service, ) + +@pytest.mark.asyncio +async def test_session_not_found_message_includes_alignment_hint(): + + class RunnerWithMismatch(Runner): + + def _infer_agent_origin( + self, agent: BaseAgent + ) -> tuple[Optional[str], Optional[Path]]: + del agent + return "expected_app", Path("/workspace/agents/expected_app") + + session_service = InMemorySessionService() + runner = RunnerWithMismatch( + app_name="configured_app", + agent=MockLlmAgent("root_agent"), + session_service=session_service, + artifact_service=InMemoryArtifactService(), + ) + + agen = runner.run_async( + user_id="user", + session_id="missing", + new_message=types.Content(role="user", parts=[]), + ) + + with pytest.raises(ValueError) as excinfo: + await agen.__anext__() + + await agen.aclose() + + message = str(excinfo.value) + assert "Session not found" in message + assert "configured_app" in message + assert "expected_app" in message + assert "Ensure the runner app_name matches" in message + + +@pytest.mark.asyncio +async def test_runner_allows_nested_agent_directories(tmp_path, monkeypatch): + project_root = tmp_path / "workspace" + agent_dir = project_root / "agents" / "examples" / "001_hello_world" + agent_dir.mkdir(parents=True) + # Make package structure importable. + for pkg_dir in [ + project_root / "agents", + project_root / "agents" / "examples", + agent_dir, + ]: + (pkg_dir / "__init__.py").write_text("", encoding="utf-8") + # Extra directories that previously confused origin inference, e.g. virtualenv. + (project_root / "agents" / ".venv").mkdir() + + agent_source = textwrap.dedent("""\ + from google.adk.events.event import Event + from google.adk.agents.base_agent import BaseAgent + from google.genai import types + + + class SimpleAgent(BaseAgent): + + def __init__(self): + super().__init__(name='simplest_agent', sub_agents=[]) + + async def _run_async_impl(self, invocation_context): + yield Event( + invocation_id=invocation_context.invocation_id, + author=self.name, + content=types.Content( + role='model', + parts=[types.Part(text='hello from nested')], + ), + ) + + + root_agent = SimpleAgent() + """) + (agent_dir / "agent.py").write_text(agent_source, encoding="utf-8") + + monkeypatch.chdir(project_root) + loader = AgentLoader(agents_dir="agents/examples") + loaded_agent = loader.load_agent("001_hello_world") + + assert isinstance(loaded_agent, BaseAgent) + session_service = InMemorySessionService() + artifact_service = InMemoryArtifactService() + runner = Runner( + app_name="001_hello_world", + agent=loaded_agent, + session_service=session_service, + artifact_service=artifact_service, + ) + assert runner._app_name_alignment_hint is None + + session = await session_service.create_session( + app_name="001_hello_world", + user_id="user", + ) + agen = runner.run_async( + user_id=session.user_id, + session_id=session.id, + new_message=types.Content( + role="user", + parts=[types.Part(text="hi")], + ), + ) + event = await agen.__anext__() + await agen.aclose() + + assert event.author == "simplest_agent" + assert event.content + assert event.content.parts + assert event.content.parts[0].text == "hello from nested" + def test_find_agent_to_run_with_function_response_scenario(self): """Test finding agent when last event is function response.""" # Create a function call from sub_agent1 diff --git a/tests/unittests/tools/test_agent_tool.py b/tests/unittests/tools/test_agent_tool.py index 1743a30f99..d38d53dbbc 100644 --- a/tests/unittests/tools/test_agent_tool.py +++ b/tests/unittests/tools/test_agent_tool.py @@ -12,15 +12,23 @@ # See the License for the specific language governing permissions and # limitations under the License. +from typing import Any from typing import Optional from google.adk.agents.callback_context import CallbackContext +from google.adk.agents.invocation_context import InvocationContext from google.adk.agents.llm_agent import Agent +from google.adk.agents.run_config import RunConfig from google.adk.agents.sequential_agent import SequentialAgent +from google.adk.artifacts.in_memory_artifact_service import InMemoryArtifactService +from google.adk.memory.in_memory_memory_service import InMemoryMemoryService from google.adk.models.llm_request import LlmRequest from google.adk.models.llm_response import LlmResponse from google.adk.plugins.base_plugin import BasePlugin +from google.adk.plugins.plugin_manager import PluginManager +from google.adk.sessions.in_memory_session_service import InMemorySessionService from google.adk.tools.agent_tool import AgentTool +from google.adk.tools.tool_context import ToolContext from google.adk.utils.variant_utils import GoogleLLMVariant from google.genai import types from google.genai.types import Part @@ -51,6 +59,120 @@ def change_state_callback(callback_context: CallbackContext): print('change_state_callback: ', callback_context.state) +@mark.asyncio +async def test_agent_tool_inherits_parent_app_name(monkeypatch): + parent_app_name = 'parent_app' + captured: dict[str, str] = {} + + class RecordingSessionService(InMemorySessionService): + + async def create_session( + self, + *, + app_name: str, + user_id: str, + state: Optional[dict[str, Any]] = None, + session_id: Optional[str] = None, + ): + captured['session_app_name'] = app_name + return await super().create_session( + app_name=app_name, + user_id=user_id, + state=state, + session_id=session_id, + ) + + monkeypatch.setattr( + 'google.adk.sessions.in_memory_session_service.InMemorySessionService', + RecordingSessionService, + ) + + async def _empty_async_generator(): + if False: + yield None + + class StubRunner: + + def __init__( + self, + *, + app_name: str, + agent: Agent, + artifact_service, + session_service, + memory_service, + credential_service, + plugins, + ): + del artifact_service, memory_service, credential_service + captured['runner_app_name'] = app_name + self.agent = agent + self.session_service = session_service + self.plugin_manager = PluginManager(plugins=plugins) + self.app_name = app_name + + def run_async( + self, + *, + user_id: str, + session_id: str, + invocation_id: Optional[str] = None, + new_message: Optional[types.Content] = None, + state_delta: Optional[dict[str, Any]] = None, + run_config: Optional[RunConfig] = None, + ): + del ( + user_id, + session_id, + invocation_id, + new_message, + state_delta, + run_config, + ) + return _empty_async_generator() + + monkeypatch.setattr('google.adk.runners.Runner', StubRunner) + + tool_agent = Agent( + name='tool_agent', + model='test-model', + ) + agent_tool = AgentTool(agent=tool_agent) + root_agent = Agent( + name='root_agent', + model='test-model', + tools=[agent_tool], + ) + + artifact_service = InMemoryArtifactService() + parent_session_service = InMemorySessionService() + parent_session = await parent_session_service.create_session( + app_name=parent_app_name, + user_id='user', + ) + invocation_context = InvocationContext( + artifact_service=artifact_service, + session_service=parent_session_service, + memory_service=InMemoryMemoryService(), + plugin_manager=PluginManager(), + invocation_id='invocation-id', + agent=root_agent, + session=parent_session, + run_config=RunConfig(), + ) + tool_context = ToolContext(invocation_context) + + assert tool_context._invocation_context.app_name == parent_app_name + + await agent_tool.run_async( + args={'request': 'hello'}, + tool_context=tool_context, + ) + + assert captured['runner_app_name'] == parent_app_name + assert captured['session_app_name'] == parent_app_name + + def test_no_schema(): mock_model = testing_utils.MockModel.create( responses=[ From fe1fc75c15a7983829bbe0b023f4b612b1e5c018 Mon Sep 17 00:00:00 2001 From: George Weale Date: Tue, 21 Oct 2025 11:54:02 -0700 Subject: [PATCH 142/303] chore: Improve hint message in agent loader PiperOrigin-RevId: 822216833 --- src/google/adk/cli/utils/agent_loader.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/google/adk/cli/utils/agent_loader.py b/src/google/adk/cli/utils/agent_loader.py index b43306811d..6eee2ee839 100644 --- a/src/google/adk/cli/utils/agent_loader.py +++ b/src/google/adk/cli/utils/agent_loader.py @@ -241,10 +241,10 @@ def _perform_load(self, agent_name: str) -> Union[BaseAgent, App]: or agents_path.joinpath("root_agent.yaml").is_file() ): hint = ( - "\n\nHINT: It looks like you might be running 'adk web' from inside" - " an agent directory. Try running 'adk web .' from the parent" - " directory that contains your agent folder, not from within the" - " agent folder itself." + "\n\nHINT: It looks like this command might be running from inside an" + " agent directory. Run it from the parent directory that contains" + " your agent folder (for example the project root) so the loader can" + " locate your agents." ) raise ValueError( From ce3418a69de56570847d45f56ffe7139ab0a47aa Mon Sep 17 00:00:00 2001 From: Kathy Wu Date: Tue, 21 Oct 2025 13:06:03 -0700 Subject: [PATCH 143/303] fix: Fix BuiltInCodeExecutor so that it can support visualizations Previously BuiltInCodeExecutor was missing the logic to save output files from executed code as artifacts, so images/visualizations wouldn't show up in the UI. This fix will iterate through all parts of the LlmResponse, and if any of them are images, it will save the image data using artifact_service (similar to what is done in VertexAICodeExecutor). This fixes the backend, but there are still UI bugs that should be fixed -- events without content are currently ignored, so the image doesn't appear even though it is saved. We will add the UI fix in a separate change. PiperOrigin-RevId: 822245140 --- .../adk/flows/llm_flows/_code_execution.py | 38 +++++++ .../flows/llm_flows/test_code_execution.py | 102 ++++++++++++++++++ 2 files changed, 140 insertions(+) create mode 100644 tests/unittests/flows/llm_flows/test_code_execution.py diff --git a/src/google/adk/flows/llm_flows/_code_execution.py b/src/google/adk/flows/llm_flows/_code_execution.py index 5c0a5777f0..d37e773c7f 100644 --- a/src/google/adk/flows/llm_flows/_code_execution.py +++ b/src/google/adk/flows/llm_flows/_code_execution.py @@ -19,6 +19,7 @@ import base64 import copy import dataclasses +import datetime import os import re from typing import AsyncGenerator @@ -275,6 +276,43 @@ async def _run_post_processor( return if isinstance(code_executor, BuiltInCodeExecutor): + event_actions = EventActions() + + # If an image is generated, save it to the artifact service and add it to + # the event actions. + for part in llm_response.content.parts: + if part.inline_data and part.inline_data.mime_type.startswith('image/'): + if invocation_context.artifact_service is None: + raise ValueError('Artifact service is not initialized.') + + if part.inline_data.display_name: + file_name = part.inline_data.display_name + else: + now = datetime.datetime.now().astimezone() + timestamp = now.strftime('%Y%m%d_%H%M%S') + file_extension = part.inline_data.mime_type.split('/')[-1] + file_name = f'{timestamp}.{file_extension}' + + version = await invocation_context.artifact_service.save_artifact( + app_name=invocation_context.app_name, + user_id=invocation_context.user_id, + session_id=invocation_context.session.id, + filename=file_name, + artifact=types.Part.from_bytes( + data=part.inline_data.data, + mime_type=part.inline_data.mime_type, + ), + ) + event_actions.artifact_delta[file_name] = version + part.inline_data = None + part.text = f'artifact: {file_name}' + + yield Event( + invocation_id=invocation_context.invocation_id, + author=agent.name, + branch=invocation_context.branch, + actions=event_actions, + ) return code_executor_context = CodeExecutorContext(invocation_context.session.state) diff --git a/tests/unittests/flows/llm_flows/test_code_execution.py b/tests/unittests/flows/llm_flows/test_code_execution.py new file mode 100644 index 0000000000..4212e19a60 --- /dev/null +++ b/tests/unittests/flows/llm_flows/test_code_execution.py @@ -0,0 +1,102 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Unit tests for Code Execution logic.""" + +import datetime +from unittest.mock import AsyncMock +from unittest.mock import MagicMock +from unittest.mock import patch + +from google.adk.agents.llm_agent import Agent +from google.adk.code_executors.built_in_code_executor import BuiltInCodeExecutor +from google.adk.flows.llm_flows._code_execution import response_processor +from google.adk.models.llm_response import LlmResponse +from google.genai import types +import pytest + +from ... import testing_utils + + +@pytest.mark.asyncio +@patch('google.adk.flows.llm_flows._code_execution.datetime') +async def test_builtin_code_executor_image_artifact_creation(mock_datetime): + """Test BuiltInCodeExecutor creates artifacts for images in response.""" + mock_now = datetime.datetime(2025, 1, 1, 12, 0, 0) + mock_datetime.datetime.now.return_value.astimezone.return_value = mock_now + code_executor = BuiltInCodeExecutor() + agent = Agent(name='test_agent', code_executor=code_executor) + invocation_context = await testing_utils.create_invocation_context( + agent=agent, user_content='test message' + ) + invocation_context.artifact_service = MagicMock() + invocation_context.artifact_service.save_artifact = AsyncMock( + return_value='v1' + ) + llm_response = LlmResponse( + content=types.Content( + parts=[ + types.Part( + inline_data=types.Blob( + mime_type='image/png', + data=b'image1', + display_name='image_1.png', + ) + ), + types.Part(text='this is text'), + types.Part( + inline_data=types.Blob(mime_type='image/jpeg', data=b'image2') + ), + ] + ) + ) + + events = [] + async for event in response_processor.run_async( + invocation_context, llm_response + ): + events.append(event) + + expected_timestamp = mock_now.strftime('%Y%m%d_%H%M%S') + expected_filename2 = f'{expected_timestamp}.jpeg' + + assert invocation_context.artifact_service.save_artifact.call_count == 2 + invocation_context.artifact_service.save_artifact.assert_any_call( + app_name=invocation_context.app_name, + user_id=invocation_context.user_id, + session_id=invocation_context.session.id, + filename='image_1.png', + artifact=types.Part.from_bytes(data=b'image1', mime_type='image/png'), + ) + invocation_context.artifact_service.save_artifact.assert_any_call( + app_name=invocation_context.app_name, + user_id=invocation_context.user_id, + session_id=invocation_context.session.id, + filename=expected_filename2, + artifact=types.Part.from_bytes(data=b'image2', mime_type='image/jpeg'), + ) + + assert len(events) == 1 + assert events[0].actions.artifact_delta == { + 'image_1.png': 'v1', + expected_filename2: 'v1', + } + assert not events[0].content + assert llm_response.content is not None + assert len(llm_response.content.parts) == 3 + assert llm_response.content.parts[0].text == 'artifact: image_1.png' + assert not llm_response.content.parts[0].inline_data + assert llm_response.content.parts[1].text == 'this is text' + assert llm_response.content.parts[2].text == f'artifact: {expected_filename2}' + assert not llm_response.content.parts[2].inline_data From ed37e343f0c997d3ee5dc98888c5e0dbd7f2a2b6 Mon Sep 17 00:00:00 2001 From: Parham MohammadAlizadeh Date: Tue, 21 Oct 2025 14:16:08 -0700 Subject: [PATCH 144/303] feat(tools): support additional headers for google api toolset #non-breaking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge https://github.com/google/adk-python/pull/3194 Allow Google API toolsets to accept optional per-request headers #3105 ## Testing Plan ### Unit Tests - ✅ Added `test_init_with_additional_headers` in `test_google_api_tool.py` to verify headers are passed to RestApiTool - ✅ Added `test_prepare_request_params_merges_default_headers` in `test_rest_api_tool.py` to verify custom headers are merged into requests - ✅ Added `test_prepare_request_params_preserves_existing_headers` in `test_rest_api_tool.py` to verify critical headers (Content-Type, User-Agent) are not overridden by additional_headers - ✅ Updated `test_init` and `test_get_tools` in `test_google_api_toolset.py` to verify the parameter is properly stored and passed through ### Manual Testing Tested with Google Ads API scenario (the original use case from issue #3105): ```python import os from google.adk.tools.google_api_tool import GoogleApiToolset # Create toolset with developer-token header required by Google Ads API google_ads_toolset = GoogleApiToolset( client_id=os.environ["CLIENT_ID"], client_secret=os.environ["CLIENT_SECRET"], api_name="googleads", api_version="v21", additional_headers={"developer-token": os.environ["GOOGLE_ADS_DEV_TOKEN"]} ) # Verify headers are included in API requests tools = await google_ads_toolset.get_tools() # Successfully made requests with the developer-token header COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3194 from Prhmma:feature/google-api-toolset-additional-headers-3105 e10489e82bfde5cf2bfd3f1bced3e1f5cea1f8b2 PiperOrigin-RevId: 822273582 --- .../tools/google_api_tool/google_api_tool.py | 8 ++- .../google_api_tool/google_api_toolset.py | 12 +++- .../openapi_spec_parser/rest_api_tool.py | 8 +++ .../google_api_tool/test_google_api_tool.py | 8 +++ .../test_google_api_toolset.py | 11 +++- .../openapi_spec_parser/test_rest_api_tool.py | 59 +++++++++++++++++++ 6 files changed, 102 insertions(+), 4 deletions(-) diff --git a/src/google/adk/tools/google_api_tool/google_api_tool.py b/src/google/adk/tools/google_api_tool/google_api_tool.py index d2bac5686d..04d1ebb4b6 100644 --- a/src/google/adk/tools/google_api_tool/google_api_tool.py +++ b/src/google/adk/tools/google_api_tool/google_api_tool.py @@ -39,6 +39,8 @@ def __init__( client_id: Optional[str] = None, client_secret: Optional[str] = None, service_account: Optional[ServiceAccount] = None, + *, + additional_headers: Optional[Dict[str, str]] = None, ): super().__init__( name=rest_api_tool.name, @@ -46,9 +48,11 @@ def __init__( is_long_running=rest_api_tool.is_long_running, ) self._rest_api_tool = rest_api_tool + if additional_headers: + self._rest_api_tool.set_default_headers(additional_headers) if service_account is not None: self.configure_sa_auth(service_account) - else: + elif client_id is not None and client_secret is not None: self.configure_auth(client_id, client_secret) @override @@ -57,7 +61,7 @@ def _get_declaration(self) -> FunctionDeclaration: @override async def run_async( - self, *, args: dict[str, Any], tool_context: Optional[ToolContext] + self, *, args: Dict[str, Any], tool_context: Optional[ToolContext] ) -> Dict[str, Any]: return await self._rest_api_tool.run_async( args=args, tool_context=tool_context diff --git a/src/google/adk/tools/google_api_tool/google_api_toolset.py b/src/google/adk/tools/google_api_tool/google_api_toolset.py index 7e5de3e595..714e654229 100644 --- a/src/google/adk/tools/google_api_tool/google_api_toolset.py +++ b/src/google/adk/tools/google_api_tool/google_api_toolset.py @@ -14,6 +14,7 @@ from __future__ import annotations +from typing import Dict from typing import List from typing import Optional from typing import Union @@ -45,6 +46,8 @@ class GoogleApiToolset(BaseToolset): tool_filter: Optional filter to include only specific tools or use a predicate function. service_account: Optional service account for authentication. tool_name_prefix: Optional prefix to add to all tool names in this toolset. + additional_headers: Optional dict of HTTP headers to inject into every request + executed by this toolset. """ def __init__( @@ -56,6 +59,8 @@ def __init__( tool_filter: Optional[Union[ToolPredicate, List[str]]] = None, service_account: Optional[ServiceAccount] = None, tool_name_prefix: Optional[str] = None, + *, + additional_headers: Optional[Dict[str, str]] = None, ): super().__init__(tool_filter=tool_filter, tool_name_prefix=tool_name_prefix) self.api_name = api_name @@ -63,6 +68,7 @@ def __init__( self._client_id = client_id self._client_secret = client_secret self._service_account = service_account + self._additional_headers = additional_headers self._openapi_toolset = self._load_toolset_with_oidc_auth() @override @@ -72,7 +78,11 @@ async def get_tools( """Get all tools in the toolset.""" return [ GoogleApiTool( - tool, self._client_id, self._client_secret, self._service_account + tool, + self._client_id, + self._client_secret, + self._service_account, + additional_headers=self._additional_headers, ) for tool in await self._openapi_toolset.get_tools(readonly_context) if self._is_tool_selected(tool, readonly_context) diff --git a/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py b/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py index 2c02d55510..2f16e8ba87 100644 --- a/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py +++ b/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py @@ -134,6 +134,7 @@ def __init__( # Private properties self.credential_exchanger = AutoAuthCredentialExchanger() + self._default_headers: Dict[str, str] = {} if should_parse_operation: self._operation_parser = OperationParser(self.operation) @@ -216,6 +217,10 @@ def configure_auth_credential( auth_credential = AuthCredential.model_validate_json(auth_credential) self.auth_credential = auth_credential + def set_default_headers(self, headers: Dict[str, str]): + """Sets default headers that are merged into every request.""" + self._default_headers = headers + def _prepare_auth_request_params( self, auth_scheme: AuthScheme, @@ -335,6 +340,9 @@ def _prepare_request_params( k: v for k, v in query_params.items() if v is not None } + for key, value in self._default_headers.items(): + header_params.setdefault(key, value) + request_params: Dict[str, Any] = { "method": method, "url": url, diff --git a/tests/unittests/tools/google_api_tool/test_google_api_tool.py b/tests/unittests/tools/google_api_tool/test_google_api_tool.py index 0d9c1f9efb..9e4761fe0a 100644 --- a/tests/unittests/tools/google_api_tool/test_google_api_tool.py +++ b/tests/unittests/tools/google_api_tool/test_google_api_tool.py @@ -56,6 +56,14 @@ def test_init(self, mock_rest_api_tool): assert tool.is_long_running is False assert tool._rest_api_tool == mock_rest_api_tool + def test_init_with_additional_headers(self, mock_rest_api_tool): + """Test GoogleApiTool initialization with additional headers.""" + headers = {"developer-token": "test-token"} + + GoogleApiTool(mock_rest_api_tool, additional_headers=headers) + + mock_rest_api_tool.set_default_headers.assert_called_once_with(headers) + def test_get_declaration(self, mock_rest_api_tool): """Test _get_declaration method.""" tool = GoogleApiTool(mock_rest_api_tool) diff --git a/tests/unittests/tools/google_api_tool/test_google_api_toolset.py b/tests/unittests/tools/google_api_tool/test_google_api_toolset.py index 9dc89ff69c..5da0cb4bcb 100644 --- a/tests/unittests/tools/google_api_tool/test_google_api_toolset.py +++ b/tests/unittests/tools/google_api_tool/test_google_api_toolset.py @@ -126,12 +126,14 @@ def test_init( client_id = "test_client_id" client_secret = "test_client_secret" + additional_headers = {"developer-token": "abc123"} tool_set = GoogleApiToolset( api_name=TEST_API_NAME, api_version=TEST_API_VERSION, client_id=client_id, client_secret=client_secret, + additional_headers=additional_headers, ) assert tool_set.api_name == TEST_API_NAME @@ -141,6 +143,7 @@ def test_init( assert tool_set._service_account is None assert tool_set.tool_filter is None assert tool_set._openapi_toolset == mock_openapi_toolset_instance + assert tool_set._additional_headers == additional_headers mock_converter_class.assert_called_once_with( TEST_API_NAME, TEST_API_VERSION @@ -191,6 +194,7 @@ async def test_get_tools( client_id = "cid" client_secret = "csecret" sa_mock = mock.MagicMock(spec=ServiceAccount) + additional_headers = {"developer-token": "token"} tool_set = GoogleApiToolset( api_name=TEST_API_NAME, @@ -198,6 +202,7 @@ async def test_get_tools( client_id=client_id, client_secret=client_secret, service_account=sa_mock, + additional_headers=additional_headers, ) tools = await tool_set.get_tools(mock_readonly_context) @@ -209,7 +214,11 @@ async def test_get_tools( for i, rest_tool in enumerate(mock_rest_api_tools): mock_google_api_tool_class.assert_any_call( - rest_tool, client_id, client_secret, sa_mock + rest_tool, + client_id, + client_secret, + sa_mock, + additional_headers=additional_headers, ) assert tools[i] is mock_google_api_tool_instances[i] diff --git a/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_rest_api_tool.py b/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_rest_api_tool.py index c4cbea7b9b..02b496bc53 100644 --- a/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_rest_api_tool.py +++ b/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_rest_api_tool.py @@ -686,6 +686,65 @@ def test_prepare_request_params_unknown_parameter( # Make sure unknown parameters are ignored and do not raise errors. assert "unknown_param" not in request_params["params"] + def test_prepare_request_params_merges_default_headers( + self, + sample_endpoint, + sample_auth_credential, + sample_auth_scheme, + sample_operation, + ): + tool = RestApiTool( + name="test_tool", + description="Test Tool", + endpoint=sample_endpoint, + operation=sample_operation, + auth_credential=sample_auth_credential, + auth_scheme=sample_auth_scheme, + ) + tool.set_default_headers({"developer-token": "token"}) + + request_params = tool._prepare_request_params([], {}) + + assert request_params["headers"]["developer-token"] == "token" + + def test_prepare_request_params_preserves_existing_headers( + self, + sample_endpoint, + sample_auth_credential, + sample_auth_scheme, + sample_operation, + sample_api_parameters, + ): + tool = RestApiTool( + name="test_tool", + description="Test Tool", + endpoint=sample_endpoint, + operation=sample_operation, + auth_credential=sample_auth_credential, + auth_scheme=sample_auth_scheme, + ) + tool.set_default_headers({ + "Content-Type": "text/plain", + "developer-token": "token", + "User-Agent": "custom-default", + }) + + header_param = ApiParameter( + original_name="User-Agent", + py_name="user_agent", + param_location="header", + param_schema=OpenAPISchema(type="string"), + ) + + params = sample_api_parameters + [header_param] + kwargs = {"test_body_param": "value", "user_agent": "api-client"} + + request_params = tool._prepare_request_params(params, kwargs) + + assert request_params["headers"]["Content-Type"] == "application/json" + assert request_params["headers"]["developer-token"] == "token" + assert request_params["headers"]["User-Agent"] == "api-client" + def test_prepare_request_params_base_url_handling( self, sample_auth_credential, sample_auth_scheme, sample_operation ): From c850da3a07ec1441037ced1b654d8aacacd277ab Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Tue, 21 Oct 2025 14:29:58 -0700 Subject: [PATCH 145/303] fix: Fix the broken langchain importing caused their 1.0.0 release PiperOrigin-RevId: 822279014 --- .../langchain_structured_tool_agent/agent.py | 4 +++- pyproject.toml | 4 ++-- src/google/adk/tools/langchain_tool.py | 2 +- tests/unittests/tools/test_langchain_tool.py | 13 ++----------- 4 files changed, 8 insertions(+), 15 deletions(-) diff --git a/contributing/samples/langchain_structured_tool_agent/agent.py b/contributing/samples/langchain_structured_tool_agent/agent.py index 5c4c5b9a21..e83bc40b2f 100644 --- a/contributing/samples/langchain_structured_tool_agent/agent.py +++ b/contributing/samples/langchain_structured_tool_agent/agent.py @@ -17,17 +17,19 @@ """ from google.adk.agents.llm_agent import Agent from google.adk.tools.langchain_tool import LangchainTool -from langchain.tools import tool +from langchain_core.tools import tool from langchain_core.tools.structured import StructuredTool from pydantic import BaseModel async def add(x, y) -> int: + """Adds two numbers.""" return x + y @tool def minus(x, y) -> int: + """Subtracts two numbers.""" return x - y diff --git a/pyproject.toml b/pyproject.toml index bcb7dd10f5..6782f41792 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -114,7 +114,7 @@ test = [ "anthropic>=0.43.0", # For anthropic model tests "kubernetes>=29.0.0", # For GkeCodeExecutor "langchain-community>=0.3.17", - "langgraph>=0.2.60, <= 0.4.10", # For LangGraphAgent + "langgraph>=0.2.60, <0.4.8", # For LangGraphAgent "litellm>=1.75.5, <2.0.0", # For LiteLLM tests "llama-index-readers-file>=0.4.0", # For retrieval tests "openai>=1.100.2", # For LiteLLM @@ -144,7 +144,7 @@ extensions = [ "crewai[tools];python_version>='3.10'", # For CrewaiTool "docker>=7.0.0", # For ContainerCodeExecutor "kubernetes>=29.0.0", # For GkeCodeExecutor - "langgraph>=0.2.60", # For LangGraphAgent + "langgraph>=0.2.60, <0.4.8", # For LangGraphAgent "litellm>=1.75.5", # For LiteLlm class. Currently has OpenAI limitations. TODO: once LiteLlm fix it "llama-index-readers-file>=0.4.0", # For retrieval using LlamaIndex. "llama-index-embeddings-google-genai>=0.3.0",# For files retrieval using LlamaIndex. diff --git a/src/google/adk/tools/langchain_tool.py b/src/google/adk/tools/langchain_tool.py index 44f884ff6e..33f52b95a4 100644 --- a/src/google/adk/tools/langchain_tool.py +++ b/src/google/adk/tools/langchain_tool.py @@ -18,8 +18,8 @@ from typing import Union from google.genai import types -from langchain.agents import Tool from langchain_core.tools import BaseTool as LangchainBaseTool +from langchain_core.tools import Tool from langchain_core.tools.structured import StructuredTool from typing_extensions import override diff --git a/tests/unittests/tools/test_langchain_tool.py b/tests/unittests/tools/test_langchain_tool.py index b2c7b681d0..fdcadff87d 100644 --- a/tests/unittests/tools/test_langchain_tool.py +++ b/tests/unittests/tools/test_langchain_tool.py @@ -12,22 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -import pytest - -# TODO: Re-enable this test after verifying LangchainTool and -# LangGraphAgent against langchain's 1.0.0 release. -pytest.skip( - allow_module_level=True, - reason="Langchain just made 1.0.0 release that breaks existing import.", -) - - from unittest.mock import MagicMock from google.adk.tools.langchain_tool import LangchainTool -from langchain.tools import tool +from langchain_core.tools import tool from langchain_core.tools.structured import StructuredTool from pydantic import BaseModel +import pytest @tool From 2a901d12f4c7d4659aae09df73ed5f9a538e5360 Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Tue, 21 Oct 2025 15:10:57 -0700 Subject: [PATCH 146/303] chore: Raise AlreadyExistsError when trying to create a resource with same ID Move the dedupe logic into session service so that the internal error can be surfaced to client PiperOrigin-RevId: 822294430 --- src/google/adk/cli/adk_web_server.py | 59 +++++---- src/google/adk/errors/already_exists_error.py | 28 ++++ .../adk/sessions/database_session_service.py | 7 + .../adk/sessions/in_memory_session_service.py | 5 + tests/unittests/cli/test_fast_api.py | 125 ++++-------------- .../sessions/test_session_service.py | 27 ++++ 6 files changed, 127 insertions(+), 124 deletions(-) create mode 100644 src/google/adk/errors/already_exists_error.py diff --git a/src/google/adk/cli/adk_web_server.py b/src/google/adk/cli/adk_web_server.py index dc111ae7d7..b073f1a7b0 100644 --- a/src/google/adk/cli/adk_web_server.py +++ b/src/google/adk/cli/adk_web_server.py @@ -63,6 +63,7 @@ from ..apps.app import App from ..artifacts.base_artifact_service import BaseArtifactService from ..auth.credential_service.base_credential_service import BaseCredentialService +from ..errors.already_exists_error import AlreadyExistsError from ..errors.not_found_error import NotFoundError from ..evaluation.base_eval_service import InferenceConfig from ..evaluation.base_eval_service import InferenceRequest @@ -583,6 +584,33 @@ def _setup_runtime_config(self, web_assets_dir: str): "Failed to write runtime config file %s: %s", runtime_config_path, e ) + async def _create_session( + self, + *, + app_name: str, + user_id: str, + session_id: Optional[str] = None, + state: Optional[dict[str, Any]] = None, + ) -> Session: + try: + session = await self.session_service.create_session( + app_name=app_name, + user_id=user_id, + state=state, + session_id=session_id, + ) + logger.info("New session created: %s", session.id) + return session + except AlreadyExistsError as e: + raise HTTPException( + status_code=409, detail=f"Session already exists: {session_id}" + ) from e + except Exception as e: + logger.error( + "Internal server error during session creation: %s", e, exc_info=True + ) + raise HTTPException(status_code=500, detail=str(e)) from e + def get_fast_api_app( self, lifespan: Optional[Lifespan[FastAPI]] = None, @@ -740,20 +768,12 @@ async def create_session_with_id( session_id: str, state: Optional[dict[str, Any]] = None, ) -> Session: - if ( - await self.session_service.get_session( - app_name=app_name, user_id=user_id, session_id=session_id - ) - is not None - ): - raise HTTPException( - status_code=409, detail=f"Session already exists: {session_id}" - ) - session = await self.session_service.create_session( - app_name=app_name, user_id=user_id, state=state, session_id=session_id + return await self._create_session( + app_name=app_name, + user_id=user_id, + state=state, + session_id=session_id, ) - logger.info("New session created: %s", session_id) - return session @app.post( "/apps/{app_name}/users/{user_id}/sessions", @@ -765,18 +785,9 @@ async def create_session( req: Optional[CreateSessionRequest] = None, ) -> Session: if not req: - return await self.session_service.create_session( - app_name=app_name, user_id=user_id - ) + return await self._create_session(app_name=app_name, user_id=user_id) - if req.session_id and await self.session_service.get_session( - app_name=app_name, user_id=user_id, session_id=req.session_id - ): - raise HTTPException( - status_code=409, detail=f"Session already exists: {req.session_id}" - ) - - session = await self.session_service.create_session( + session = await self._create_session( app_name=app_name, user_id=user_id, state=req.state, diff --git a/src/google/adk/errors/already_exists_error.py b/src/google/adk/errors/already_exists_error.py new file mode 100644 index 0000000000..35878ca090 --- /dev/null +++ b/src/google/adk/errors/already_exists_error.py @@ -0,0 +1,28 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + + +class AlreadyExistsError(Exception): + """Represents an error that occurs when an entity already exists.""" + + def __init__(self, message="The resource already exists."): + """Initializes the AlreadyExistsError exception. + + Args: + message (str): An optional custom message to describe the error. + """ + self.message = message + super().__init__(self.message) diff --git a/src/google/adk/sessions/database_session_service.py b/src/google/adk/sessions/database_session_service.py index 6ce14961f9..215a5d8278 100644 --- a/src/google/adk/sessions/database_session_service.py +++ b/src/google/adk/sessions/database_session_service.py @@ -53,6 +53,7 @@ from tzlocal import get_localzone from . import _session_util +from ..errors.already_exists_error import AlreadyExistsError from ..events.event import Event from .base_session_service import BaseSessionService from .base_session_service import GetSessionConfig @@ -465,6 +466,12 @@ async def create_session( # 5. Return the session with self.database_session_factory() as sql_session: + if session_id and sql_session.get( + StorageSession, (app_name, user_id, session_id) + ): + raise AlreadyExistsError( + f"Session with id {session_id} already exists." + ) # Fetch app and user states from storage storage_app_state = sql_session.get(StorageAppState, (app_name)) if not storage_app_state: diff --git a/src/google/adk/sessions/in_memory_session_service.py b/src/google/adk/sessions/in_memory_session_service.py index e45cf9d8cb..6ba7f0bb01 100644 --- a/src/google/adk/sessions/in_memory_session_service.py +++ b/src/google/adk/sessions/in_memory_session_service.py @@ -23,6 +23,7 @@ from typing_extensions import override from . import _session_util +from ..errors.already_exists_error import AlreadyExistsError from ..events.event import Event from .base_session_service import BaseSessionService from .base_session_service import GetSessionConfig @@ -89,6 +90,10 @@ def _create_session_impl( state: Optional[dict[str, Any]] = None, session_id: Optional[str] = None, ) -> Session: + if session_id and self._get_session_impl( + app_name=app_name, user_id=user_id, session_id=session_id + ): + raise AlreadyExistsError(f'Session with id {session_id} already exists.') state_deltas = _session_util.extract_state_delta(state) app_state_delta = state_deltas['app'] user_state_delta = state_deltas['user'] diff --git a/tests/unittests/cli/test_fast_api.py b/tests/unittests/cli/test_fast_api.py index 8f12daf958..f4a84179be 100755 --- a/tests/unittests/cli/test_fast_api.py +++ b/tests/unittests/cli/test_fast_api.py @@ -39,8 +39,9 @@ from google.adk.events.event import Event from google.adk.events.event_actions import EventActions from google.adk.runners import Runner -from google.adk.sessions.base_session_service import ListSessionsResponse +from google.adk.sessions.in_memory_session_service import InMemorySessionService from google.adk.sessions.session import Session +from google.adk.sessions.state import State from google.genai import types from pydantic import BaseModel import pytest @@ -194,98 +195,8 @@ def list_agents(self): @pytest.fixture def mock_session_service(): - """Create a mock session service that uses an in-memory dictionary.""" - - # In-memory database to store sessions during testing - session_data = { - "test_app": { - "test_user": { - "test_session": { - "id": "test_session", - "app_name": "test_app", - "user_id": "test_user", - "events": [], - "state": {}, - "created_at": time.time(), - } - } - } - } - - # Mock session service class that operates on the in-memory database - class MockSessionService: - - async def get_session(self, app_name, user_id, session_id): - """Retrieve a session by ID.""" - if ( - app_name in session_data - and user_id in session_data[app_name] - and session_id in session_data[app_name][user_id] - ): - return session_data[app_name][user_id][session_id] - return None - - async def create_session( - self, app_name, user_id, state=None, session_id=None - ): - """Create a new session.""" - if session_id is None: - session_id = f"session_{int(time.time())}" - - # Initialize app_name and user_id if they don't exist - if app_name not in session_data: - session_data[app_name] = {} - if user_id not in session_data[app_name]: - session_data[app_name][user_id] = {} - - # Create the session - session = { - "id": session_id, - "app_name": app_name, - "user_id": user_id, - "events": [], - "state": state or {}, - } - - session_data[app_name][user_id][session_id] = session - return session - - async def list_sessions(self, app_name, user_id): - """List all sessions for a user.""" - if app_name not in session_data or user_id not in session_data[app_name]: - return {"sessions": []} - - return ListSessionsResponse( - sessions=list(session_data[app_name][user_id].values()) - ) - - async def delete_session(self, app_name, user_id, session_id): - """Delete a session.""" - if ( - app_name in session_data - and user_id in session_data[app_name] - and session_id in session_data[app_name][user_id] - ): - del session_data[app_name][user_id][session_id] - - async def append_event(self, session, event): - """Append an event to a session.""" - # Update session state if event has state_delta - if event.actions and event.actions.state_delta: - session["state"].update(event.actions.state_delta) - - # Add event to session events - session["events"].append(event.model_dump()) - - # Update the session in storage - session_data[session["app_name"]][session["user_id"]][ - session["id"] - ] = session - - return event - - # Return an instance of our mock service - return MockSessionService() + """Create an in-memory session service instance for testing.""" + return InMemorySessionService() @pytest.fixture @@ -465,7 +376,7 @@ async def create_test_session( state={}, ) - logger.info(f"Created test session: {session['id']}") + logger.info(f"Created test session: {session.id}") return test_session_info @@ -654,6 +565,22 @@ def test_create_session_with_id(test_app, test_session_info): logger.info(f"Created session with ID: {data['id']}") +def test_create_session_with_id_already_exists(test_app, test_session_info): + """Test creating a session with an ID that already exists.""" + session_id = "existing_session_id" + url = f"/apps/{test_session_info['app_name']}/users/{test_session_info['user_id']}/sessions/{session_id}" + + # Create the session for the first time + response = test_app.post(url, json={"state": {}}) + assert response.status_code == 200 + + # Attempt to create it again + response = test_app.post(url, json={"state": {}}) + assert response.status_code == 409 + assert "Session already exists" in response.json()["detail"] + logger.info("Verified 409 on duplicate session creation.") + + def test_create_session_without_id(test_app, test_session_info): """Test creating a session with a generated ID.""" url = f"/apps/{test_session_info['app_name']}/users/{test_session_info['user_id']}/sessions" @@ -753,9 +680,7 @@ def test_update_session(test_app, create_test_session): state_patch_events = [ event for event in events - if ( - event.get("invocationId") or event.get("invocation_id", "") - ).startswith("p-") + if event.get("invocationId", "").startswith("p-") ] assert len(state_patch_events) == 1, ( @@ -766,9 +691,9 @@ def test_update_session(test_app, create_test_session): assert state_patch_event["author"] == "user" # Check for actions in both camelCase and snake_case - actions = state_patch_event.get("actions") or state_patch_event.get("actions") + actions = state_patch_event.get("actions") assert actions is not None, f"No actions found in event: {state_patch_event}" - state_delta_in_event = actions.get("state_delta") or actions.get("stateDelta") + state_delta_in_event = actions.get("stateDelta") assert state_delta_in_event == state_delta logger.info("Session state patched successfully") @@ -818,7 +743,7 @@ def test_agent_run(test_app, create_test_session): ) # Third event should have interrupted flag - assert data[2]["interrupted"] == True + assert data[2]["interrupted"] is True logger.info("Agent run test completed successfully") diff --git a/tests/unittests/sessions/test_session_service.py b/tests/unittests/sessions/test_session_service.py index 4d92dcea2c..45d4fcc591 100644 --- a/tests/unittests/sessions/test_session_service.py +++ b/tests/unittests/sessions/test_session_service.py @@ -16,6 +16,7 @@ from datetime import timezone import enum +from google.adk.errors.already_exists_error import AlreadyExistsError from google.adk.events.event import Event from google.adk.events.event_actions import EventActions from google.adk.sessions.base_session_service import GetSessionConfig @@ -336,6 +337,32 @@ async def test_get_session_respects_user_id(service_type): assert len(session2_got.events) == 0 +@pytest.mark.asyncio +@pytest.mark.parametrize( + 'service_type', [SessionServiceType.IN_MEMORY, SessionServiceType.DATABASE] +) +async def test_create_session_with_existing_id_raises_error(service_type): + session_service = get_session_service(service_type) + app_name = 'my_app' + user_id = 'test_user' + session_id = 'existing_session' + + # Create the first session + await session_service.create_session( + app_name=app_name, + user_id=user_id, + session_id=session_id, + ) + + # Attempt to create a session with the same ID + with pytest.raises(AlreadyExistsError): + await session_service.create_session( + app_name=app_name, + user_id=user_id, + session_id=session_id, + ) + + @pytest.mark.asyncio @pytest.mark.parametrize( 'service_type', [SessionServiceType.IN_MEMORY, SessionServiceType.DATABASE] From 409df1378f36b436139aa909fc90a9e9a0776b3a Mon Sep 17 00:00:00 2001 From: Luis Pabon Date: Tue, 21 Oct 2025 15:43:32 -0700 Subject: [PATCH 147/303] feat: Granular Per Agent Speech Configuration Merge https://github.com/google/adk-python/pull/3170 Addresses Feature Request: #3116 This PR adds a `speech_config` to the **LLM Agent configuration** for the **live use case**. When an **asynchronous LLM** call is made to the **Gemini Live API**, it prioritizes the most specific agent configuration's speech_config. If that is null, it then uses the run configuration's speech_config. Unit tests have been added to verify this behavior. COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3170 from qyuo:bidi_agent_speech_config af1bd277d4f95c4a7d9aa0b16828ba3de826ce08 PiperOrigin-RevId: 822305427 --- .../live_bidi_streaming_multi_agent/agent.py | 36 +++- src/google/adk/agents/run_config.py | 5 +- src/google/adk/models/google_llm.py | 5 + tests/unittests/models/test_google_llm.py | 186 ++++++++++++++++++ 4 files changed, 229 insertions(+), 3 deletions(-) diff --git a/contributing/samples/live_bidi_streaming_multi_agent/agent.py b/contributing/samples/live_bidi_streaming_multi_agent/agent.py index 413e33a727..ddb36b2845 100644 --- a/contributing/samples/live_bidi_streaming_multi_agent/agent.py +++ b/contributing/samples/live_bidi_streaming_multi_agent/agent.py @@ -16,6 +16,7 @@ from google.adk.agents.llm_agent import Agent from google.adk.examples.example import Example +from google.adk.models.google_llm import Gemini from google.adk.tools.example_tool import ExampleTool from google.genai import types @@ -28,6 +29,17 @@ def roll_die(sides: int) -> int: roll_agent = Agent( name="roll_agent", + model=Gemini( + # model="gemini-2.0-flash-live-preview-04-09", # for Vertex project + model="gemini-live-2.5-flash-preview", # for AI studio key + speech_config=types.SpeechConfig( + voice_config=types.VoiceConfig( + prebuilt_voice_config=types.PrebuiltVoiceConfig( + voice_name="Kore", + ) + ) + ), + ), description="Handles rolling dice of different sizes.", instruction=""" You are responsible for rolling dice based on the user's request. @@ -69,6 +81,17 @@ def check_prime(nums: list[int]) -> str: prime_agent = Agent( name="prime_agent", + model=Gemini( + # model="gemini-2.0-flash-live-preview-04-09", # for Vertex project + model="gemini-live-2.5-flash-preview", # for AI studio key + speech_config=types.SpeechConfig( + voice_config=types.VoiceConfig( + prebuilt_voice_config=types.PrebuiltVoiceConfig( + voice_name="Puck", + ) + ) + ), + ), description="Handles checking if numbers are prime.", instruction=""" You are responsible for checking whether numbers are prime. @@ -100,8 +123,17 @@ def get_current_weather(location: str): root_agent = Agent( # find supported models here: https://google.github.io/adk-docs/get-started/streaming/quickstart-streaming/ - model="gemini-2.0-flash-live-preview-04-09", # for Vertex project - # model="gemini-live-2.5-flash-preview", # for AI studio key + model=Gemini( + # model="gemini-2.0-flash-live-preview-04-09", # for Vertex project + model="gemini-live-2.5-flash-preview", # for AI studio key + speech_config=types.SpeechConfig( + voice_config=types.VoiceConfig( + prebuilt_voice_config=types.PrebuiltVoiceConfig( + voice_name="Zephyr", + ) + ) + ), + ), name="root_agent", instruction=""" You are a helpful assistant that can check time, roll dice and check if numbers are prime. diff --git a/src/google/adk/agents/run_config.py b/src/google/adk/agents/run_config.py index 754970537e..bfcf370676 100644 --- a/src/google/adk/agents/run_config.py +++ b/src/google/adk/agents/run_config.py @@ -35,7 +35,10 @@ class StreamingMode(Enum): class RunConfig(BaseModel): - """Configs for runtime behavior of agents.""" + """Configs for runtime behavior of agents. + + The configs here will be overriden by agent-specific configurations. + """ model_config = ConfigDict( extra='forbid', diff --git a/src/google/adk/models/google_llm.py b/src/google/adk/models/google_llm.py index f9e6fe1677..84f8cf516c 100644 --- a/src/google/adk/models/google_llm.py +++ b/src/google/adk/models/google_llm.py @@ -60,6 +60,8 @@ class Gemini(BaseLlm): model: str = 'gemini-2.5-flash' + speech_config: Optional[types.SpeechConfig] = None + retry_options: Optional[types.HttpRetryOptions] = None """Allow Gemini to retry failed responses. @@ -269,6 +271,9 @@ async def connect(self, llm_request: LlmRequest) -> BaseLlmConnection: self._live_api_version ) + if self.speech_config is not None: + llm_request.live_connect_config.speech_config = self.speech_config + llm_request.live_connect_config.system_instruction = types.Content( role='system', parts=[ diff --git a/tests/unittests/models/test_google_llm.py b/tests/unittests/models/test_google_llm.py index 1b5979bdf9..f3356975f5 100644 --- a/tests/unittests/models/test_google_llm.py +++ b/tests/unittests/models/test_google_llm.py @@ -1858,3 +1858,189 @@ def mock_model_dump(*args, **kwargs): # Should still succeed using repr() assert "Config:" in log_output assert "GenerateContentConfig" in log_output + + +@pytest.mark.asyncio +async def test_connect_uses_gemini_speech_config_when_request_is_none( + gemini_llm, llm_request +): + """Tests that Gemini's speech_config is used when live_connect_config's is None.""" + # Arrange: Set a speech_config on the Gemini instance with the voice "Kore" + gemini_llm.speech_config = types.SpeechConfig( + voice_config=types.VoiceConfig( + prebuilt_voice_config=types.PrebuiltVoiceConfig( + voice_name="Kore", + ) + ) + ) + llm_request.live_connect_config = ( + types.LiveConnectConfig() + ) # speech_config is None + + mock_live_session = mock.AsyncMock() + + with mock.patch.object(gemini_llm, "_live_api_client") as mock_live_client: + + class MockLiveConnect: + + async def __aenter__(self): + return mock_live_session + + async def __aexit__(self, *args): + pass + + mock_live_client.aio.live.connect.return_value = MockLiveConnect() + + # Act + async with gemini_llm.connect(llm_request) as connection: + # Assert + mock_live_client.aio.live.connect.assert_called_once() + call_args = mock_live_client.aio.live.connect.call_args + config_arg = call_args.kwargs["config"] + + # Verify the speech_config from the Gemini instance was used + assert config_arg.speech_config is not None + assert ( + config_arg.speech_config.voice_config.prebuilt_voice_config.voice_name + == "Kore" + ) + assert isinstance(connection, GeminiLlmConnection) + + +@pytest.mark.asyncio +async def test_connect_uses_request_speech_config_when_gemini_is_none( + gemini_llm, llm_request +): + """Tests that request's speech_config is used when Gemini's is None.""" + # Arrange: Set a speech_config on the request instance with the voice "Kore" + gemini_llm.speech_config = None + request_speech_config = types.SpeechConfig( + voice_config=types.VoiceConfig( + prebuilt_voice_config=types.PrebuiltVoiceConfig( + voice_name="Kore", + ) + ) + ) + llm_request.live_connect_config = types.LiveConnectConfig( + speech_config=request_speech_config + ) + + mock_live_session = mock.AsyncMock() + + with mock.patch.object(gemini_llm, "_live_api_client") as mock_live_client: + + class MockLiveConnect: + + async def __aenter__(self): + return mock_live_session + + async def __aexit__(self, *args): + pass + + mock_live_client.aio.live.connect.return_value = MockLiveConnect() + + # Act + async with gemini_llm.connect(llm_request) as connection: + # Assert + mock_live_client.aio.live.connect.assert_called_once() + call_args = mock_live_client.aio.live.connect.call_args + config_arg = call_args.kwargs["config"] + + # Verify the speech_config from the request instance was used + assert config_arg.speech_config is not None + assert ( + config_arg.speech_config.voice_config.prebuilt_voice_config.voice_name + == "Kore" + ) + assert isinstance(connection, GeminiLlmConnection) + + +@pytest.mark.asyncio +async def test_connect_request_gemini_config_overrides_speech_config( + gemini_llm, llm_request +): + """Tests that live_connect_config's speech_config is preserved even if Gemini has one.""" + # Arrange: Set different speech_configs on both the Gemini instance ("Puck") and the request ("Zephyr") + gemini_llm.speech_config = types.SpeechConfig( + voice_config=types.VoiceConfig( + prebuilt_voice_config=types.PrebuiltVoiceConfig( + voice_name="Puck", + ) + ) + ) + request_speech_config = types.SpeechConfig( + voice_config=types.VoiceConfig( + prebuilt_voice_config=types.PrebuiltVoiceConfig( + voice_name="Zephyr", + ) + ) + ) + llm_request.live_connect_config = types.LiveConnectConfig( + speech_config=request_speech_config + ) + + mock_live_session = mock.AsyncMock() + + with mock.patch.object(gemini_llm, "_live_api_client") as mock_live_client: + + class MockLiveConnect: + + async def __aenter__(self): + return mock_live_session + + async def __aexit__(self, *args): + pass + + mock_live_client.aio.live.connect.return_value = MockLiveConnect() + + # Act + async with gemini_llm.connect(llm_request) as connection: + # Assert + mock_live_client.aio.live.connect.assert_called_once() + call_args = mock_live_client.aio.live.connect.call_args + config_arg = call_args.kwargs["config"] + + # Verify the speech_config from the request ("Zephyr") was overwritten by Gemini's speech_config ("Puck") + assert config_arg.speech_config is not None + assert ( + config_arg.speech_config.voice_config.prebuilt_voice_config.voice_name + == "Puck" + ) + assert isinstance(connection, GeminiLlmConnection) + + +@pytest.mark.asyncio +async def test_connect_speech_config_remains_none_when_both_are_none( + gemini_llm, llm_request +): + """Tests that speech_config is None when neither Gemini nor the request has it.""" + # Arrange: Ensure both Gemini instance and request have no speech_config + gemini_llm.speech_config = None + llm_request.live_connect_config = ( + types.LiveConnectConfig() + ) # speech_config is None + + mock_live_session = mock.AsyncMock() + + with mock.patch.object(gemini_llm, "_live_api_client") as mock_live_client: + + class MockLiveConnect: + + async def __aenter__(self): + return mock_live_session + + async def __aexit__(self, *args): + pass + + mock_live_client.aio.live.connect.return_value = MockLiveConnect() + + # Act + async with gemini_llm.connect(llm_request) as connection: + # Assert + mock_live_client.aio.live.connect.assert_called_once() + call_args = mock_live_client.aio.live.connect.call_args + config_arg = call_args.kwargs["config"] + + # Verify the final speech_config is still None + assert config_arg.speech_config is None + assert isinstance(connection, GeminiLlmConnection) From 391628fcdc7b950c6835f64ae3ccab197163c990 Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Tue, 21 Oct 2025 15:58:22 -0700 Subject: [PATCH 148/303] feat: Add a service registry to provide a generic way to register custom service implementations to be used in FastAPI server To register a custom service: - Create a factory function that takes a URI and returns an instance of your custom service. This function will parse any details it needs from the URI. - Register your factory with the global service registry. You need to define a unique URI scheme for your service (e.g., custom). PiperOrigin-RevId: 822310466 --- src/google/adk/cli/fast_api.py | 85 ++----- src/google/adk/cli/service_registry.py | 224 +++++++++++++++++++ tests/unittests/cli/test_service_registry.py | 169 ++++++++++++++ 3 files changed, 411 insertions(+), 67 deletions(-) create mode 100644 src/google/adk/cli/service_registry.py create mode 100644 tests/unittests/cli/test_service_registry.py diff --git a/src/google/adk/cli/fast_api.py b/src/google/adk/cli/fast_api.py index 326cab0367..7e1e18bec9 100644 --- a/src/google/adk/cli/fast_api.py +++ b/src/google/adk/cli/fast_api.py @@ -33,18 +33,16 @@ from starlette.types import Lifespan from watchdog.observers import Observer -from ..artifacts.gcs_artifact_service import GcsArtifactService from ..artifacts.in_memory_artifact_service import InMemoryArtifactService from ..auth.credential_service.in_memory_credential_service import InMemoryCredentialService from ..evaluation.local_eval_set_results_manager import LocalEvalSetResultsManager from ..evaluation.local_eval_sets_manager import LocalEvalSetsManager from ..memory.in_memory_memory_service import InMemoryMemoryService -from ..memory.vertex_ai_memory_bank_service import VertexAiMemoryBankService from ..runners import Runner from ..sessions.in_memory_session_service import InMemorySessionService -from ..sessions.vertex_ai_session_service import VertexAiSessionService from ..utils.feature_decorator import working_in_progress from .adk_web_server import AdkWebServer +from .service_registry import get_service_registry from .utils import envs from .utils import evals from .utils.agent_change_handler import AgentChangeEventHandler @@ -85,54 +83,14 @@ def get_fast_api_app( eval_sets_manager = LocalEvalSetsManager(agents_dir=agents_dir) eval_set_results_manager = LocalEvalSetResultsManager(agents_dir=agents_dir) - def _parse_agent_engine_resource_name(agent_engine_id_or_resource_name): - if not agent_engine_id_or_resource_name: - raise click.ClickException( - "Agent engine resource name or resource id can not be empty." - ) - - # "projects/my-project/locations/us-central1/reasoningEngines/1234567890", - if "/" in agent_engine_id_or_resource_name: - # Validate resource name. - if len(agent_engine_id_or_resource_name.split("/")) != 6: - raise click.ClickException( - "Agent engine resource name is mal-formatted. It should be of" - " format :" - " projects/{project_id}/locations/{location}/reasoningEngines/{resource_id}" - ) - project = agent_engine_id_or_resource_name.split("/")[1] - location = agent_engine_id_or_resource_name.split("/")[3] - agent_engine_id = agent_engine_id_or_resource_name.split("/")[-1] - else: - envs.load_dotenv_for_agent("", agents_dir) - project = os.environ.get("GOOGLE_CLOUD_PROJECT", None) - location = os.environ.get("GOOGLE_CLOUD_LOCATION", None) - agent_engine_id = agent_engine_id_or_resource_name - return project, location, agent_engine_id + service_registry = get_service_registry() # Build the Memory service if memory_service_uri: - if memory_service_uri.startswith("rag://"): - from ..memory.vertex_ai_rag_memory_service import VertexAiRagMemoryService - - rag_corpus = memory_service_uri.split("://")[1] - if not rag_corpus: - raise click.ClickException("Rag corpus can not be empty.") - envs.load_dotenv_for_agent("", agents_dir) - memory_service = VertexAiRagMemoryService( - rag_corpus=f'projects/{os.environ["GOOGLE_CLOUD_PROJECT"]}/locations/{os.environ["GOOGLE_CLOUD_LOCATION"]}/ragCorpora/{rag_corpus}' - ) - elif memory_service_uri.startswith("agentengine://"): - agent_engine_id_or_resource_name = memory_service_uri.split("://")[1] - project, location, agent_engine_id = _parse_agent_engine_resource_name( - agent_engine_id_or_resource_name - ) - memory_service = VertexAiMemoryBankService( - project=project, - location=location, - agent_engine_id=agent_engine_id, - ) - else: + memory_service = service_registry.create_memory_service( + memory_service_uri, agents_dir=agents_dir + ) + if not memory_service: raise click.ClickException( "Unsupported memory service URI: %s" % memory_service_uri ) @@ -141,34 +99,27 @@ def _parse_agent_engine_resource_name(agent_engine_id_or_resource_name): # Build the Session service if session_service_uri: - if session_service_uri.startswith("agentengine://"): - agent_engine_id_or_resource_name = session_service_uri.split("://")[1] - project, location, agent_engine_id = _parse_agent_engine_resource_name( - agent_engine_id_or_resource_name - ) - session_service = VertexAiSessionService( - project=project, - location=location, - agent_engine_id=agent_engine_id, - ) - else: + session_kwargs = session_db_kwargs or {} + session_service = service_registry.create_session_service( + session_service_uri, agents_dir=agents_dir, **session_kwargs + ) + if not session_service: + # Fallback to DatabaseSessionService if the service registry doesn't + # support the session service URI scheme. from ..sessions.database_session_service import DatabaseSessionService - # Database session additional settings - if session_db_kwargs is None: - session_db_kwargs = {} session_service = DatabaseSessionService( - db_url=session_service_uri, **session_db_kwargs + db_url=session_service_uri, **session_kwargs ) else: session_service = InMemorySessionService() # Build the Artifact service if artifact_service_uri: - if artifact_service_uri.startswith("gs://"): - gcs_bucket = artifact_service_uri.split("://")[1] - artifact_service = GcsArtifactService(bucket_name=gcs_bucket) - else: + artifact_service = service_registry.create_artifact_service( + artifact_service_uri, agents_dir=agents_dir + ) + if not artifact_service: raise click.ClickException( "Unsupported artifact service URI: %s" % artifact_service_uri ) diff --git a/src/google/adk/cli/service_registry.py b/src/google/adk/cli/service_registry.py new file mode 100644 index 0000000000..bc95bad285 --- /dev/null +++ b/src/google/adk/cli/service_registry.py @@ -0,0 +1,224 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +import os +from typing import Any +from typing import Dict +from typing import Protocol +from urllib.parse import urlparse + +from ..artifacts.base_artifact_service import BaseArtifactService +from ..memory.base_memory_service import BaseMemoryService +from ..sessions.base_session_service import BaseSessionService + + +def _load_gcp_config( + agents_dir: str | None, service_name: str +) -> tuple[str, str]: + """Loads GCP project and location from environment.""" + if not agents_dir: + raise ValueError(f"agents_dir must be provided for {service_name}") + + from .utils import envs + + envs.load_dotenv_for_agent("", agents_dir) + + project = os.environ.get("GOOGLE_CLOUD_PROJECT") + location = os.environ.get("GOOGLE_CLOUD_LOCATION") + + if not project or not location: + raise ValueError("GOOGLE_CLOUD_PROJECT or GOOGLE_CLOUD_LOCATION not set.") + + return project, location + + +def _parse_agent_engine_kwargs( + uri_part: str, agents_dir: str | None +) -> dict[str, Any]: + """Helper to parse agent engine resource name.""" + if not uri_part: + raise ValueError( + "Agent engine resource name or resource id can not be empty." + ) + if "/" in uri_part: + parts = uri_part.split("/") + if not ( + len(parts) == 6 + and parts[0] == "projects" + and parts[2] == "locations" + and parts[4] == "reasoningEngines" + ): + raise ValueError( + "Agent engine resource name is mal-formatted. It should be of" + " format :" + " projects/{project_id}/locations/{location}/reasoningEngines/{resource_id}" + ) + project = parts[1] + location = parts[3] + agent_engine_id = parts[5] + else: + project, location = _load_gcp_config( + agents_dir, "short-form agent engine IDs" + ) + agent_engine_id = uri_part + return { + "project": project, + "location": location, + "agent_engine_id": agent_engine_id, + } + + +class ServiceFactory(Protocol): + """Protocol for service factory functions.""" + + def __call__( + self, uri: str, **kwargs + ) -> BaseSessionService | BaseArtifactService | BaseMemoryService: + ... + + +class ServiceRegistry: + """Registry for custom service URI schemes.""" + + def __init__(self): + self._session_factories: Dict[str, ServiceFactory] = {} + self._artifact_factories: Dict[str, ServiceFactory] = {} + self._memory_factories: Dict[str, ServiceFactory] = {} + + def register_session_service( + self, scheme: str, factory: ServiceFactory + ) -> None: + """Register a factory for a custom session service URI scheme. + + Args: + scheme: URI scheme (e.g., 'custom') + factory: Callable that takes (uri, **kwargs) and returns + BaseSessionService + """ + self._session_factories[scheme] = factory + + def register_artifact_service( + self, scheme: str, factory: ServiceFactory + ) -> None: + """Register a factory for a custom artifact service URI scheme.""" + self._artifact_factories[scheme] = factory + + def register_memory_service( + self, scheme: str, factory: ServiceFactory + ) -> None: + """Register a factory for a custom memory service URI scheme.""" + self._memory_factories[scheme] = factory + + def create_session_service( + self, uri: str, **kwargs + ) -> BaseSessionService | None: + """Create session service from URI using registered factories.""" + scheme = urlparse(uri).scheme + if scheme and scheme in self._session_factories: + return self._session_factories[scheme](uri, **kwargs) + return None + + def create_artifact_service( + self, uri: str, **kwargs + ) -> BaseArtifactService | None: + """Create artifact service from URI using registered factories.""" + scheme = urlparse(uri).scheme + if scheme and scheme in self._artifact_factories: + return self._artifact_factories[scheme](uri, **kwargs) + return None + + def create_memory_service( + self, uri: str, **kwargs + ) -> BaseMemoryService | None: + """Create memory service from URI using registered factories.""" + scheme = urlparse(uri).scheme + if scheme and scheme in self._memory_factories: + return self._memory_factories[scheme](uri, **kwargs) + return None + + +def _register_builtin_services(registry: ServiceRegistry) -> None: + """Register built-in service implementations.""" + + # -- Session Services -- + def agentengine_session_factory(uri: str, **kwargs): + from ..sessions.vertex_ai_session_service import VertexAiSessionService + + parsed = urlparse(uri) + params = _parse_agent_engine_kwargs( + parsed.netloc + parsed.path, kwargs.get("agents_dir") + ) + return VertexAiSessionService(**params) + + def database_session_factory(uri: str, **kwargs): + from ..sessions.database_session_service import DatabaseSessionService + + kwargs_copy = kwargs.copy() + kwargs_copy.pop("agents_dir", None) + return DatabaseSessionService(db_url=uri, **kwargs_copy) + + registry.register_session_service("agentengine", agentengine_session_factory) + for scheme in ["sqlite", "postgresql", "mysql"]: + registry.register_session_service(scheme, database_session_factory) + + # -- Artifact Services -- + def gcs_artifact_factory(uri: str, **kwargs): + from ..artifacts.gcs_artifact_service import GcsArtifactService + + kwargs_copy = kwargs.copy() + kwargs_copy.pop("agents_dir", None) + parsed_uri = urlparse(uri) + bucket_name = parsed_uri.netloc + return GcsArtifactService(bucket_name=bucket_name, **kwargs_copy) + + registry.register_artifact_service("gs", gcs_artifact_factory) + + # -- Memory Services -- + def rag_memory_factory(uri: str, **kwargs): + from ..memory.vertex_ai_rag_memory_service import VertexAiRagMemoryService + + rag_corpus = urlparse(uri).netloc + if not rag_corpus: + raise ValueError("Rag corpus can not be empty.") + agents_dir = kwargs.get("agents_dir") + project, location = _load_gcp_config(agents_dir, "RAG memory service") + return VertexAiRagMemoryService( + rag_corpus=( + f"projects/{project}/locations/{location}/ragCorpora/{rag_corpus}" + ) + ) + + def agentengine_memory_factory(uri: str, **kwargs): + from ..memory.vertex_ai_memory_bank_service import VertexAiMemoryBankService + + parsed = urlparse(uri) + params = _parse_agent_engine_kwargs( + parsed.netloc + parsed.path, kwargs.get("agents_dir") + ) + return VertexAiMemoryBankService(**params) + + registry.register_memory_service("rag", rag_memory_factory) + registry.register_memory_service("agentengine", agentengine_memory_factory) + + +# Global registry instance +_global_registry = ServiceRegistry() +_register_builtin_services(_global_registry) + + +def get_service_registry() -> ServiceRegistry: + """Get the global service registry instance.""" + return _global_registry diff --git a/tests/unittests/cli/test_service_registry.py b/tests/unittests/cli/test_service_registry.py new file mode 100644 index 0000000000..b877703a08 --- /dev/null +++ b/tests/unittests/cli/test_service_registry.py @@ -0,0 +1,169 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from unittest.mock import patch + +import pytest + + +@pytest.fixture(autouse=True) +def mock_services(): + """Mock all service implementation classes to avoid real instantiation.""" + with ( + patch( + "google.adk.sessions.vertex_ai_session_service.VertexAiSessionService" + ) as mock_vertex_session, + patch( + "google.adk.sessions.database_session_service.DatabaseSessionService" + ) as mock_db_session, + patch( + "google.adk.artifacts.gcs_artifact_service.GcsArtifactService" + ) as mock_gcs_artifact, + patch( + "google.adk.memory.vertex_ai_rag_memory_service.VertexAiRagMemoryService" + ) as mock_rag_memory, + patch( + "google.adk.memory.vertex_ai_memory_bank_service.VertexAiMemoryBankService" + ) as mock_agentengine_memory, + ): + yield { + "vertex_session": mock_vertex_session, + "db_session": mock_db_session, + "gcs_artifact": mock_gcs_artifact, + "rag_memory": mock_rag_memory, + "agentengine_memory": mock_agentengine_memory, + } + + +@pytest.fixture +def registry(): + from google.adk.cli.service_registry import get_service_registry + + return get_service_registry() + + +# Session Service Tests +def test_create_session_service_sqlite(registry, mock_services): + registry.create_session_service("sqlite:///test.db") + mock_services["db_session"].assert_called_once_with( + db_url="sqlite:///test.db" + ) + + +def test_create_session_service_sqlite_with_kwargs(registry, mock_services): + registry.create_session_service( + "sqlite:///test.db", pool_size=10, agents_dir="foo" + ) + mock_services["db_session"].assert_called_once_with( + db_url="sqlite:///test.db", pool_size=10 + ) + + +def test_create_session_service_postgresql(registry, mock_services): + registry.create_session_service("postgresql://user:pass@host/db") + mock_services["db_session"].assert_called_once_with( + db_url="postgresql://user:pass@host/db" + ) + + +@patch("google.adk.cli.utils.envs.load_dotenv_for_agent") +def test_create_session_service_agentengine_short( + mock_load_dotenv, registry, mock_services, monkeypatch +): + monkeypatch.setenv("GOOGLE_CLOUD_PROJECT", "test-project") + monkeypatch.setenv("GOOGLE_CLOUD_LOCATION", "us-central1") + registry.create_session_service( + "agentengine://123", agents_dir="/path/to/agents" + ) + mock_services["vertex_session"].assert_called_once_with( + project="test-project", location="us-central1", agent_engine_id="123" + ) + mock_load_dotenv.assert_called_once_with("", "/path/to/agents") + + +def test_create_session_service_agentengine_full(registry, mock_services): + uri = "agentengine://projects/p/locations/l/reasoningEngines/123" + registry.create_session_service(uri, agents_dir="/path/to/agents") + mock_services["vertex_session"].assert_called_once_with( + project="p", location="l", agent_engine_id="123" + ) + + +# Artifact Service Tests +def test_create_artifact_service_gcs(registry, mock_services): + registry.create_artifact_service( + "gs://my-bucket/path/prefix", agents_dir="foo", other_kwarg="bar" + ) + mock_services["gcs_artifact"].assert_called_once_with( + bucket_name="my-bucket", other_kwarg="bar" + ) + + +# Memory Service Tests +@patch("google.adk.cli.utils.envs.load_dotenv_for_agent") +def test_create_memory_service_rag( + mock_load_dotenv, registry, mock_services, monkeypatch +): + monkeypatch.setenv("GOOGLE_CLOUD_PROJECT", "test-project") + monkeypatch.setenv("GOOGLE_CLOUD_LOCATION", "us-central1") + registry.create_memory_service( + "rag://corpus-123", agents_dir="/path/to/agents" + ) + mock_services["rag_memory"].assert_called_once_with( + rag_corpus=( + "projects/test-project/locations/us-central1/ragCorpora/corpus-123" + ) + ) + mock_load_dotenv.assert_called_once_with("", "/path/to/agents") + + +@patch("google.adk.cli.utils.envs.load_dotenv_for_agent") +def test_create_memory_service_agentengine_short( + mock_load_dotenv, registry, mock_services, monkeypatch +): + monkeypatch.setenv("GOOGLE_CLOUD_PROJECT", "test-project") + monkeypatch.setenv("GOOGLE_CLOUD_LOCATION", "us-central1") + registry.create_memory_service( + "agentengine://456", agents_dir="/path/to/agents" + ) + mock_services["agentengine_memory"].assert_called_once_with( + project="test-project", location="us-central1", agent_engine_id="456" + ) + mock_load_dotenv.assert_called_once_with("", "/path/to/agents") + + +def test_create_memory_service_agentengine_full(registry, mock_services): + uri = "agentengine://projects/p/locations/l/reasoningEngines/456" + registry.create_memory_service(uri, agents_dir="/path/to/agents") + mock_services["agentengine_memory"].assert_called_once_with( + project="p", location="l", agent_engine_id="456" + ) + + +# General Tests +def test_unsupported_scheme(registry, mock_services): + session_service = registry.create_session_service("unsupported://foo") + artifact_service = registry.create_artifact_service("unsupported://foo") + memory_service = registry.create_memory_service("unsupported://foo") + assert session_service is None + assert artifact_service is None + assert memory_service is None + for service in [ + "vertex_session", + "db_session", + "gcs_artifact", + "rag_memory", + "agentengine_memory", + ]: + mock_services[service].assert_not_called() From aab2504ebdb3d9c986cdab53ccf02ea737546da0 Mon Sep 17 00:00:00 2001 From: Yifan Wang Date: Tue, 21 Oct 2025 17:30:50 -0700 Subject: [PATCH 149/303] chore: update adk web PiperOrigin-RevId: 822341297 --- src/google/adk/cli/browser/index.html | 12 +- src/google/adk/cli/browser/main-FFZEKOTG.js | 3961 +++++++++++++++++ src/google/adk/cli/browser/main-W7QZBYAR.js | 3914 ---------------- .../adk/cli/browser/styles-4VDSPQ37.css | 17 - .../adk/cli/browser/styles-NFETHFZB.css | 1 + 5 files changed, 3968 insertions(+), 3937 deletions(-) create mode 100644 src/google/adk/cli/browser/main-FFZEKOTG.js delete mode 100644 src/google/adk/cli/browser/main-W7QZBYAR.js delete mode 100644 src/google/adk/cli/browser/styles-4VDSPQ37.css create mode 100644 src/google/adk/cli/browser/styles-NFETHFZB.css diff --git a/src/google/adk/cli/browser/index.html b/src/google/adk/cli/browser/index.html index 2db84f6397..0b82ed6622 100644 --- a/src/google/adk/cli/browser/index.html +++ b/src/google/adk/cli/browser/index.html @@ -23,12 +23,12 @@ - - - - - + + + + + - + diff --git a/src/google/adk/cli/browser/main-FFZEKOTG.js b/src/google/adk/cli/browser/main-FFZEKOTG.js new file mode 100644 index 0000000000..2420b14964 --- /dev/null +++ b/src/google/adk/cli/browser/main-FFZEKOTG.js @@ -0,0 +1,3961 @@ +import{a as sA,b as Fe,c as pv,d as He,e as $Q,f as Ni}from"./chunk-EQDQRRRY.js";var gV=He(MR=>{"use strict";var cV={b:"\b",f:"\f",n:` +`,r:"\r",t:" ",'"':'"',"/":"/","\\":"\\"},e6A=97;MR.parse=function(t,e,A){var i={},n=0,o=0,r=0,s=A&&A.bigint&&typeof BigInt<"u";return{data:a("",!0),pointers:i};function a(K,O){c();var V;x(K,"value");var j=E();switch(j){case"t":B("rue"),V=!0;break;case"f":B("alse"),V=!1;break;case"n":B("ull"),V=null;break;case'"':V=g();break;case"[":V=C(K);break;case"{":V=d(K);break;default:u(),"-0123456789".indexOf(j)>=0?V=I():G()}return x(K,"valueEnd"),c(),O&&rNumber.MAX_SAFE_INTEGER||V="a"&&V<="f"?O+=V.charCodeAt()-e6A+10:V>="0"&&V<="9"?O+=+V:J()}return String.fromCharCode(O)}function w(){for(var K="";t[r]>="0"&&t[r]<="9";)K+=E();if(K.length)return K;z(),G()}function x(K,O){R(K,O,D())}function R(K,O,V){i[K]=i[K]||{},i[K][O]=V}function D(){return{line:n,column:o,pos:r}}function G(){throw new SyntaxError("Unexpected token "+t[r]+" in JSON at position "+r)}function J(){u(),G()}function z(){if(r>=t.length)throw new SyntaxError("Unexpected end of JSON input")}};MR.stringify=function(t,e,A){if(!X8(t))return;var i=0,n,o,r=typeof A=="object"?A.space:A;switch(typeof r){case"number":var s=r>10?10:r<0?0:Math.floor(r);r=s&&R(s," "),n=s,o=s;break;case"string":r=r.slice(0,10),n=0,o=0;for(var a=0;a=0}var i6A=/"|\\/g,n6A=/[\b]/g,o6A=/\f/g,r6A=/\n/g,s6A=/\r/g,a6A=/\t/g;function $8(t){return t=t.replace(i6A,"\\$&").replace(o6A,"\\f").replace(n6A,"\\b").replace(r6A,"\\n").replace(s6A,"\\r").replace(a6A,"\\t"),'"'+t+'"'}var c6A=/~/g,g6A=/\//g;function vR(t){return t.replace(c6A,"~0").replace(g6A,"~1")}});var SX=He((i8e,kX)=>{"use strict";var bX=function(t,e){var A,i,n=1,o=0,r=0,s=String.alphabet;function a(c,g,I){if(I){for(A=g;I=a(c,A),I<76&&I>65;)++A;return+c.slice(g-1,A)}return I=s&&s.indexOf(c.charAt(g)),I>-1?I+76:(I=c.charCodeAt(g)||0,I<45||I>127?I:I<46?65:I<48?I-1:I<58?I+18:I<65?I-11:I<91?I+11:I<97?I-37:I<123?I+5:I-63)}if((t+="")!=(e+="")){for(;n;)if(i=a(t,o++),n=a(e,r++),i<76&&n<76&&i>66&&n>66&&(i=a(t,o,o),n=a(e,r,o=A),r=A),i!=n)return i{"use strict";Object.defineProperty(Dn,"__esModule",{value:!0});Dn.regexpCode=Dn.getEsmExportName=Dn.getProperty=Dn.safeStringify=Dn.stringify=Dn.strConcat=Dn.addCodeArg=Dn.str=Dn._=Dn.nil=Dn._Code=Dn.Name=Dn.IDENTIFIER=Dn._CodeOrName=void 0;var f4=class{};Dn._CodeOrName=f4;Dn.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var uC=class extends f4{constructor(e){if(super(),!Dn.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};Dn.Name=uC;var Hc=class extends f4{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((A,i)=>`${A}${i}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((A,i)=>(i instanceof uC&&(A[i.str]=(A[i.str]||0)+1),A),{})}};Dn._Code=Hc;Dn.nil=new Hc("");function LX(t,...e){let A=[t[0]],i=0;for(;i{"use strict";Object.defineProperty(Ra,"__esModule",{value:!0});Ra.ValueScope=Ra.ValueScopeName=Ra.Scope=Ra.varKinds=Ra.UsedValueState=void 0;var Sa=p4(),IL=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},J5=function(t){return t[t.Started=0]="Started",t[t.Completed=1]="Completed",t}(J5||(Ra.UsedValueState=J5={}));Ra.varKinds={const:new Sa.Name("const"),let:new Sa.Name("let"),var:new Sa.Name("var")};var Y5=class{constructor({prefixes:e,parent:A}={}){this._names={},this._prefixes=e,this._parent=A}toName(e){return e instanceof Sa.Name?e:this.name(e)}name(e){return new Sa.Name(this._newName(e))}_newName(e){let A=this._names[e]||this._nameGroup(e);return`${e}${A.index++}`}_nameGroup(e){var A,i;if(!((i=(A=this._parent)===null||A===void 0?void 0:A._prefixes)===null||i===void 0)&&i.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};Ra.Scope=Y5;var T5=class extends Sa.Name{constructor(e,A){super(A),this.prefix=e}setValue(e,{property:A,itemIndex:i}){this.value=e,this.scopePath=(0,Sa._)`.${new Sa.Name(A)}[${i}]`}};Ra.ValueScopeName=T5;var a9A=(0,Sa._)`\n`,CL=class extends Y5{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts=Fe(sA({},e),{_n:e.lines?a9A:Sa.nil})}get(){return this._scope}name(e){return new T5(e,this._newName(e))}value(e,A){var i;if(A.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let n=this.toName(e),{prefix:o}=n,r=(i=A.key)!==null&&i!==void 0?i:A.ref,s=this._values[o];if(s){let g=s.get(r);if(g)return g}else s=this._values[o]=new Map;s.set(r,n);let a=this._scope[o]||(this._scope[o]=[]),c=a.length;return a[c]=A.ref,n.setValue(A,{property:o,itemIndex:c}),n}getValue(e,A){let i=this._values[e];if(i)return i.get(A)}scopeRefs(e,A=this._values){return this._reduceValues(A,i=>{if(i.scopePath===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return(0,Sa._)`${e}${i.scopePath}`})}scopeCode(e=this._values,A,i){return this._reduceValues(e,n=>{if(n.value===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return n.value.code},A,i)}_reduceValues(e,A,i={},n){let o=Sa.nil;for(let r in e){let s=e[r];if(!s)continue;let a=i[r]=i[r]||new Map;s.forEach(c=>{if(a.has(c))return;a.set(c,J5.Started);let g=A(c);if(g){let I=this.opts.es5?Ra.varKinds.var:Ra.varKinds.const;o=(0,Sa._)`${o}${I} ${c} = ${g};${this.opts._n}`}else if(g=n?.(c))o=(0,Sa._)`${o}${g}${this.opts._n}`;else throw new IL(c);a.set(c,J5.Completed)})}return o}};Ra.ValueScope=CL});var Pi=He(Hi=>{"use strict";Object.defineProperty(Hi,"__esModule",{value:!0});Hi.or=Hi.and=Hi.not=Hi.CodeGen=Hi.operators=Hi.varKinds=Hi.ValueScopeName=Hi.ValueScope=Hi.Scope=Hi.Name=Hi.regexpCode=Hi.stringify=Hi.getProperty=Hi.nil=Hi.strConcat=Hi.str=Hi._=void 0;var cn=p4(),kg=dL(),p1=p4();Object.defineProperty(Hi,"_",{enumerable:!0,get:function(){return p1._}});Object.defineProperty(Hi,"str",{enumerable:!0,get:function(){return p1.str}});Object.defineProperty(Hi,"strConcat",{enumerable:!0,get:function(){return p1.strConcat}});Object.defineProperty(Hi,"nil",{enumerable:!0,get:function(){return p1.nil}});Object.defineProperty(Hi,"getProperty",{enumerable:!0,get:function(){return p1.getProperty}});Object.defineProperty(Hi,"stringify",{enumerable:!0,get:function(){return p1.stringify}});Object.defineProperty(Hi,"regexpCode",{enumerable:!0,get:function(){return p1.regexpCode}});Object.defineProperty(Hi,"Name",{enumerable:!0,get:function(){return p1.Name}});var j5=dL();Object.defineProperty(Hi,"Scope",{enumerable:!0,get:function(){return j5.Scope}});Object.defineProperty(Hi,"ValueScope",{enumerable:!0,get:function(){return j5.ValueScope}});Object.defineProperty(Hi,"ValueScopeName",{enumerable:!0,get:function(){return j5.ValueScopeName}});Object.defineProperty(Hi,"varKinds",{enumerable:!0,get:function(){return j5.varKinds}});Hi.operators={GT:new cn._Code(">"),GTE:new cn._Code(">="),LT:new cn._Code("<"),LTE:new cn._Code("<="),EQ:new cn._Code("==="),NEQ:new cn._Code("!=="),NOT:new cn._Code("!"),OR:new cn._Code("||"),AND:new cn._Code("&&"),ADD:new cn._Code("+")};var K0=class{optimizeNodes(){return this}optimizeNames(e,A){return this}},BL=class extends K0{constructor(e,A,i){super(),this.varKind=e,this.name=A,this.rhs=i}render({es5:e,_n:A}){let i=e?kg.varKinds.var:this.varKind,n=this.rhs===void 0?"":` = ${this.rhs}`;return`${i} ${this.name}${n};`+A}optimizeNames(e,A){if(e[this.name.str])return this.rhs&&(this.rhs=fE(this.rhs,e,A)),this}get names(){return this.rhs instanceof cn._CodeOrName?this.rhs.names:{}}},O5=class extends K0{constructor(e,A,i){super(),this.lhs=e,this.rhs=A,this.sideEffects=i}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,A){if(!(this.lhs instanceof cn.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=fE(this.rhs,e,A),this}get names(){let e=this.lhs instanceof cn.Name?{}:sA({},this.lhs.names);return P5(e,this.rhs)}},EL=class extends O5{constructor(e,A,i,n){super(e,i,n),this.op=A}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},QL=class extends K0{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},uL=class extends K0{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},hL=class extends K0{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},fL=class extends K0{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,A){return this.code=fE(this.code,e,A),this}get names(){return this.code instanceof cn._CodeOrName?this.code.names:{}}},D4=class extends K0{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((A,i)=>A+i.render(e),"")}optimizeNodes(){let{nodes:e}=this,A=e.length;for(;A--;){let i=e[A].optimizeNodes();Array.isArray(i)?e.splice(A,1,...i):i?e[A]=i:e.splice(A,1)}return e.length>0?this:void 0}optimizeNames(e,A){let{nodes:i}=this,n=i.length;for(;n--;){let o=i[n];o.optimizeNames(e,A)||(c9A(e,o.names),i.splice(n,1))}return i.length>0?this:void 0}get names(){return this.nodes.reduce((e,A)=>hC(e,A.names),{})}},U0=class extends D4{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},mL=class extends D4{},pL=(()=>{class t extends U0{}return t.kind="else",t})(),H5=(()=>{class t extends U0{constructor(A,i){super(i),this.condition=A}render(A){let i=`if(${this.condition})`+super.render(A);return this.else&&(i+="else "+this.else.render(A)),i}optimizeNodes(){super.optimizeNodes();let A=this.condition;if(A===!0)return this.nodes;let i=this.else;if(i){let n=i.optimizeNodes();i=this.else=Array.isArray(n)?new pL(n):n}if(i)return A===!1?i instanceof t?i:i.nodes:this.nodes.length?this:new t(KX(A),i instanceof t?[i]:i.nodes);if(!(A===!1||!this.nodes.length))return this}optimizeNames(A,i){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(A,i),!!(super.optimizeNames(A,i)||this.else))return this.condition=fE(this.condition,A,i),this}get names(){let A=super.names;return P5(A,this.condition),this.else&&hC(A,this.else.names),A}}return t.kind="if",t})(),q5=(()=>{class t extends U0{}return t.kind="for",t})(),DL=class extends q5{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,A){if(super.optimizeNames(e,A))return this.iteration=fE(this.iteration,e,A),this}get names(){return hC(super.names,this.iteration.names)}},wL=class extends q5{constructor(e,A,i,n){super(),this.varKind=e,this.name=A,this.from=i,this.to=n}render(e){let A=e.es5?kg.varKinds.var:this.varKind,{name:i,from:n,to:o}=this;return`for(${A} ${i}=${n}; ${i}<${o}; ${i}++)`+super.render(e)}get names(){let e=P5(super.names,this.from);return P5(e,this.to)}},z5=class extends q5{constructor(e,A,i,n){super(),this.loop=e,this.varKind=A,this.name=i,this.iterable=n}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,A){if(super.optimizeNames(e,A))return this.iterable=fE(this.iterable,e,A),this}get names(){return hC(super.names,this.iterable.names)}},NX=(()=>{class t extends U0{constructor(A,i,n){super(),this.name=A,this.args=i,this.async=n}render(A){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(A)}}return t.kind="func",t})(),FX=(()=>{class t extends D4{render(A){return"return "+super.render(A)}}return t.kind="return",t})(),yL=class extends U0{render(e){let A="try"+super.render(e);return this.catch&&(A+=this.catch.render(e)),this.finally&&(A+=this.finally.render(e)),A}optimizeNodes(){var e,A;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(A=this.finally)===null||A===void 0||A.optimizeNodes(),this}optimizeNames(e,A){var i,n;return super.optimizeNames(e,A),(i=this.catch)===null||i===void 0||i.optimizeNames(e,A),(n=this.finally)===null||n===void 0||n.optimizeNames(e,A),this}get names(){let e=super.names;return this.catch&&hC(e,this.catch.names),this.finally&&hC(e,this.finally.names),e}},_X=(()=>{class t extends U0{constructor(A){super(),this.error=A}render(A){return`catch(${this.error})`+super.render(A)}}return t.kind="catch",t})(),GX=(()=>{class t extends U0{render(A){return"finally"+super.render(A)}}return t.kind="finally",t})(),vL=class{constructor(e,A={}){this._values={},this._blockStarts=[],this._constants={},this.opts=Fe(sA({},A),{_n:A.lines?` +`:""}),this._extScope=e,this._scope=new kg.Scope({parent:e}),this._nodes=[new mL]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,A){let i=this._extScope.value(e,A);return(this._values[i.prefix]||(this._values[i.prefix]=new Set)).add(i),i}getScopeValue(e,A){return this._extScope.getValue(e,A)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,A,i,n){let o=this._scope.toName(A);return i!==void 0&&n&&(this._constants[o.str]=i),this._leafNode(new BL(e,o,i)),o}const(e,A,i){return this._def(kg.varKinds.const,e,A,i)}let(e,A,i){return this._def(kg.varKinds.let,e,A,i)}var(e,A,i){return this._def(kg.varKinds.var,e,A,i)}assign(e,A,i){return this._leafNode(new O5(e,A,i))}add(e,A){return this._leafNode(new EL(e,Hi.operators.ADD,A))}code(e){return typeof e=="function"?e():e!==cn.nil&&this._leafNode(new fL(e)),this}object(...e){let A=["{"];for(let[i,n]of e)A.length>1&&A.push(","),A.push(i),(i!==n||this.opts.es5)&&(A.push(":"),(0,cn.addCodeArg)(A,n));return A.push("}"),new cn._Code(A)}if(e,A,i){if(this._blockNode(new H5(e)),A&&i)this.code(A).else().code(i).endIf();else if(A)this.code(A).endIf();else if(i)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new H5(e))}else(){return this._elseNode(new pL)}endIf(){return this._endBlockNode(H5,pL)}_for(e,A){return this._blockNode(e),A&&this.code(A).endFor(),this}for(e,A){return this._for(new DL(e),A)}forRange(e,A,i,n,o=this.opts.es5?kg.varKinds.var:kg.varKinds.let){let r=this._scope.toName(e);return this._for(new wL(o,r,A,i),()=>n(r))}forOf(e,A,i,n=kg.varKinds.const){let o=this._scope.toName(e);if(this.opts.es5){let r=A instanceof cn.Name?A:this.var("_arr",A);return this.forRange("_i",0,(0,cn._)`${r}.length`,s=>{this.var(o,(0,cn._)`${r}[${s}]`),i(o)})}return this._for(new z5("of",n,o,A),()=>i(o))}forIn(e,A,i,n=this.opts.es5?kg.varKinds.var:kg.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,cn._)`Object.keys(${A})`,i);let o=this._scope.toName(e);return this._for(new z5("in",n,o,A),()=>i(o))}endFor(){return this._endBlockNode(q5)}label(e){return this._leafNode(new QL(e))}break(e){return this._leafNode(new uL(e))}return(e){let A=new FX;if(this._blockNode(A),this.code(e),A.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(FX)}try(e,A,i){if(!A&&!i)throw new Error('CodeGen: "try" without "catch" and "finally"');let n=new yL;if(this._blockNode(n),this.code(e),A){let o=this.name("e");this._currNode=n.catch=new _X(o),A(o)}return i&&(this._currNode=n.finally=new GX,this.code(i)),this._endBlockNode(_X,GX)}throw(e){return this._leafNode(new hL(e))}block(e,A){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(A),this}endBlock(e){let A=this._blockStarts.pop();if(A===void 0)throw new Error("CodeGen: not in self-balancing block");let i=this._nodes.length-A;if(i<0||e!==void 0&&i!==e)throw new Error(`CodeGen: wrong number of nodes: ${i} vs ${e} expected`);return this._nodes.length=A,this}func(e,A=cn.nil,i,n){return this._blockNode(new NX(e,A,i)),n&&this.code(n).endFunc(),this}endFunc(){return this._endBlockNode(NX)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,A){let i=this._currNode;if(i instanceof e||A&&i instanceof A)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${A?`${e.kind}/${A.kind}`:e.kind}"`)}_elseNode(e){let A=this._currNode;if(!(A instanceof H5))throw new Error('CodeGen: "else" without "if"');return this._currNode=A.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let A=this._nodes;A[A.length-1]=e}};Hi.CodeGen=vL;function hC(t,e){for(let A in e)t[A]=(t[A]||0)+(e[A]||0);return t}function P5(t,e){return e instanceof cn._CodeOrName?hC(t,e.names):t}function fE(t,e,A){if(t instanceof cn.Name)return i(t);if(!n(t))return t;return new cn._Code(t._items.reduce((o,r)=>(r instanceof cn.Name&&(r=i(r)),r instanceof cn._Code?o.push(...r._items):o.push(r),o),[]));function i(o){let r=A[o.str];return r===void 0||e[o.str]!==1?o:(delete e[o.str],r)}function n(o){return o instanceof cn._Code&&o._items.some(r=>r instanceof cn.Name&&e[r.str]===1&&A[r.str]!==void 0)}}function c9A(t,e){for(let A in e)t[A]=(t[A]||0)-(e[A]||0)}function KX(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,cn._)`!${ML(t)}`}Hi.not=KX;var g9A=UX(Hi.operators.AND);function l9A(...t){return t.reduce(g9A)}Hi.and=l9A;var I9A=UX(Hi.operators.OR);function C9A(...t){return t.reduce(I9A)}Hi.or=C9A;function UX(t){return(e,A)=>e===cn.nil?A:A===cn.nil?e:(0,cn._)`${ML(e)} ${t} ${ML(A)}`}function ML(t){return t instanceof cn.Name?t:(0,cn._)`(${t})`}});var wn=He(ji=>{"use strict";Object.defineProperty(ji,"__esModule",{value:!0});ji.checkStrictMode=ji.getErrorPath=ji.Type=ji.useFunc=ji.setEvaluated=ji.evaluatedPropsToName=ji.mergeEvaluated=ji.eachItem=ji.unescapeJsonPointer=ji.escapeJsonPointer=ji.escapeFragment=ji.unescapeFragment=ji.schemaRefOrVal=ji.schemaHasRulesButRef=ji.schemaHasRules=ji.checkUnknownRules=ji.alwaysValidSchema=ji.toHash=void 0;var yo=Pi(),d9A=p4();function B9A(t){let e={};for(let A of t)e[A]=!0;return e}ji.toHash=B9A;function E9A(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(TX(t,e),!HX(e,t.self.RULES.all))}ji.alwaysValidSchema=E9A;function TX(t,e=t.schema){let{opts:A,self:i}=t;if(!A.strictSchema||typeof e=="boolean")return;let n=i.RULES.keywords;for(let o in e)n[o]||PX(t,`unknown keyword: "${o}"`)}ji.checkUnknownRules=TX;function HX(t,e){if(typeof t=="boolean")return!t;for(let A in t)if(e[A])return!0;return!1}ji.schemaHasRules=HX;function Q9A(t,e){if(typeof t=="boolean")return!t;for(let A in t)if(A!=="$ref"&&e.all[A])return!0;return!1}ji.schemaHasRulesButRef=Q9A;function u9A({topSchemaRef:t,schemaPath:e},A,i,n){if(!n){if(typeof A=="number"||typeof A=="boolean")return A;if(typeof A=="string")return(0,yo._)`${A}`}return(0,yo._)`${t}${e}${(0,yo.getProperty)(i)}`}ji.schemaRefOrVal=u9A;function h9A(t){return OX(decodeURIComponent(t))}ji.unescapeFragment=h9A;function f9A(t){return encodeURIComponent(kL(t))}ji.escapeFragment=f9A;function kL(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}ji.escapeJsonPointer=kL;function OX(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}ji.unescapeJsonPointer=OX;function m9A(t,e){if(Array.isArray(t))for(let A of t)e(A);else e(t)}ji.eachItem=m9A;function JX({mergeNames:t,mergeToName:e,mergeValues:A,resultToName:i}){return(n,o,r,s)=>{let a=r===void 0?o:r instanceof yo.Name?(o instanceof yo.Name?t(n,o,r):e(n,o,r),r):o instanceof yo.Name?(e(n,r,o),o):A(o,r);return s===yo.Name&&!(a instanceof yo.Name)?i(n,a):a}}ji.mergeEvaluated={props:JX({mergeNames:(t,e,A)=>t.if((0,yo._)`${A} !== true && ${e} !== undefined`,()=>{t.if((0,yo._)`${e} === true`,()=>t.assign(A,!0),()=>t.assign(A,(0,yo._)`${A} || {}`).code((0,yo._)`Object.assign(${A}, ${e})`))}),mergeToName:(t,e,A)=>t.if((0,yo._)`${A} !== true`,()=>{e===!0?t.assign(A,!0):(t.assign(A,(0,yo._)`${A} || {}`),SL(t,A,e))}),mergeValues:(t,e)=>t===!0?!0:sA(sA({},t),e),resultToName:zX}),items:JX({mergeNames:(t,e,A)=>t.if((0,yo._)`${A} !== true && ${e} !== undefined`,()=>t.assign(A,(0,yo._)`${e} === true ? true : ${A} > ${e} ? ${A} : ${e}`)),mergeToName:(t,e,A)=>t.if((0,yo._)`${A} !== true`,()=>t.assign(A,e===!0?!0:(0,yo._)`${A} > ${e} ? ${A} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function zX(t,e){if(e===!0)return t.var("props",!0);let A=t.var("props",(0,yo._)`{}`);return e!==void 0&&SL(t,A,e),A}ji.evaluatedPropsToName=zX;function SL(t,e,A){Object.keys(A).forEach(i=>t.assign((0,yo._)`${e}${(0,yo.getProperty)(i)}`,!0))}ji.setEvaluated=SL;var YX={};function p9A(t,e){return t.scopeValue("func",{ref:e,code:YX[e.code]||(YX[e.code]=new d9A._Code(e.code))})}ji.useFunc=p9A;var bL=function(t){return t[t.Num=0]="Num",t[t.Str=1]="Str",t}(bL||(ji.Type=bL={}));function D9A(t,e,A){if(t instanceof yo.Name){let i=e===bL.Num;return A?i?(0,yo._)`"[" + ${t} + "]"`:(0,yo._)`"['" + ${t} + "']"`:i?(0,yo._)`"/" + ${t}`:(0,yo._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return A?(0,yo.getProperty)(t).toString():"/"+kL(t)}ji.getErrorPath=D9A;function PX(t,e,A=t.opts.strictSchema){if(A){if(e=`strict mode: ${e}`,A===!0)throw new Error(e);t.self.logger.warn(e)}}ji.checkStrictMode=PX});var J0=He(RL=>{"use strict";Object.defineProperty(RL,"__esModule",{value:!0});var Ns=Pi(),w9A={data:new Ns.Name("data"),valCxt:new Ns.Name("valCxt"),instancePath:new Ns.Name("instancePath"),parentData:new Ns.Name("parentData"),parentDataProperty:new Ns.Name("parentDataProperty"),rootData:new Ns.Name("rootData"),dynamicAnchors:new Ns.Name("dynamicAnchors"),vErrors:new Ns.Name("vErrors"),errors:new Ns.Name("errors"),this:new Ns.Name("this"),self:new Ns.Name("self"),scope:new Ns.Name("scope"),json:new Ns.Name("json"),jsonPos:new Ns.Name("jsonPos"),jsonLen:new Ns.Name("jsonLen"),jsonPart:new Ns.Name("jsonPart")};RL.default=w9A});var w4=He(Fs=>{"use strict";Object.defineProperty(Fs,"__esModule",{value:!0});Fs.extendErrors=Fs.resetErrorsCount=Fs.reportExtraError=Fs.reportError=Fs.keyword$DataError=Fs.keywordError=void 0;var En=Pi(),V5=wn(),ea=J0();Fs.keywordError={message:({keyword:t})=>(0,En.str)`must pass "${t}" keyword validation`};Fs.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,En.str)`"${t}" keyword must be ${e} ($data)`:(0,En.str)`"${t}" keyword is invalid ($data)`};function y9A(t,e=Fs.keywordError,A,i){let{it:n}=t,{gen:o,compositeRule:r,allErrors:s}=n,a=VX(t,e,A);i??(r||s)?jX(o,a):qX(n,(0,En._)`[${a}]`)}Fs.reportError=y9A;function v9A(t,e=Fs.keywordError,A){let{it:i}=t,{gen:n,compositeRule:o,allErrors:r}=i,s=VX(t,e,A);jX(n,s),o||r||qX(i,ea.default.vErrors)}Fs.reportExtraError=v9A;function M9A(t,e){t.assign(ea.default.errors,e),t.if((0,En._)`${ea.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,En._)`${ea.default.vErrors}.length`,e),()=>t.assign(ea.default.vErrors,null)))}Fs.resetErrorsCount=M9A;function b9A({gen:t,keyword:e,schemaValue:A,data:i,errsCount:n,it:o}){if(n===void 0)throw new Error("ajv implementation error");let r=t.name("err");t.forRange("i",n,ea.default.errors,s=>{t.const(r,(0,En._)`${ea.default.vErrors}[${s}]`),t.if((0,En._)`${r}.instancePath === undefined`,()=>t.assign((0,En._)`${r}.instancePath`,(0,En.strConcat)(ea.default.instancePath,o.errorPath))),t.assign((0,En._)`${r}.schemaPath`,(0,En.str)`${o.errSchemaPath}/${e}`),o.opts.verbose&&(t.assign((0,En._)`${r}.schema`,A),t.assign((0,En._)`${r}.data`,i))})}Fs.extendErrors=b9A;function jX(t,e){let A=t.const("err",e);t.if((0,En._)`${ea.default.vErrors} === null`,()=>t.assign(ea.default.vErrors,(0,En._)`[${A}]`),(0,En._)`${ea.default.vErrors}.push(${A})`),t.code((0,En._)`${ea.default.errors}++`)}function qX(t,e){let{gen:A,validateName:i,schemaEnv:n}=t;n.$async?A.throw((0,En._)`new ${t.ValidationError}(${e})`):(A.assign((0,En._)`${i}.errors`,e),A.return(!1))}var fC={keyword:new En.Name("keyword"),schemaPath:new En.Name("schemaPath"),params:new En.Name("params"),propertyName:new En.Name("propertyName"),message:new En.Name("message"),schema:new En.Name("schema"),parentSchema:new En.Name("parentSchema")};function VX(t,e,A){let{createErrors:i}=t.it;return i===!1?(0,En._)`{}`:k9A(t,e,A)}function k9A(t,e,A={}){let{gen:i,it:n}=t,o=[S9A(n,A),R9A(t,A)];return L9A(t,e,o),i.object(...o)}function S9A({errorPath:t},{instancePath:e}){let A=e?(0,En.str)`${t}${(0,V5.getErrorPath)(e,V5.Type.Str)}`:t;return[ea.default.instancePath,(0,En.strConcat)(ea.default.instancePath,A)]}function R9A({keyword:t,it:{errSchemaPath:e}},{schemaPath:A,parentSchema:i}){let n=i?e:(0,En.str)`${e}/${t}`;return A&&(n=(0,En.str)`${n}${(0,V5.getErrorPath)(A,V5.Type.Str)}`),[fC.schemaPath,n]}function L9A(t,{params:e,message:A},i){let{keyword:n,data:o,schemaValue:r,it:s}=t,{opts:a,propertyName:c,topSchemaRef:g,schemaPath:I}=s;i.push([fC.keyword,n],[fC.params,typeof e=="function"?e(t):e||(0,En._)`{}`]),a.messages&&i.push([fC.message,typeof A=="function"?A(t):A]),a.verbose&&i.push([fC.schema,r],[fC.parentSchema,(0,En._)`${g}${I}`],[ea.default.data,o]),c&&i.push([fC.propertyName,c])}});var WX=He(mE=>{"use strict";Object.defineProperty(mE,"__esModule",{value:!0});mE.boolOrEmptySchema=mE.topBoolOrEmptySchema=void 0;var x9A=w4(),N9A=Pi(),F9A=J0(),_9A={message:"boolean schema is false"};function G9A(t){let{gen:e,schema:A,validateName:i}=t;A===!1?ZX(t,!1):typeof A=="object"&&A.$async===!0?e.return(F9A.default.data):(e.assign((0,N9A._)`${i}.errors`,null),e.return(!0))}mE.topBoolOrEmptySchema=G9A;function K9A(t,e){let{gen:A,schema:i}=t;i===!1?(A.var(e,!1),ZX(t)):A.var(e,!0)}mE.boolOrEmptySchema=K9A;function ZX(t,e){let{gen:A,data:i}=t,n={gen:A,keyword:"false schema",data:i,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,x9A.reportError)(n,_9A,void 0,e)}});var LL=He(pE=>{"use strict";Object.defineProperty(pE,"__esModule",{value:!0});pE.getRules=pE.isJSONType=void 0;var U9A=["string","number","integer","boolean","null","object","array"],J9A=new Set(U9A);function Y9A(t){return typeof t=="string"&&J9A.has(t)}pE.isJSONType=Y9A;function T9A(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:Fe(sA({},t),{integer:!0,boolean:!0,null:!0}),rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}pE.getRules=T9A});var xL=He(D1=>{"use strict";Object.defineProperty(D1,"__esModule",{value:!0});D1.shouldUseRule=D1.shouldUseGroup=D1.schemaHasRulesForType=void 0;function H9A({schema:t,self:e},A){let i=e.RULES.types[A];return i&&i!==!0&&XX(t,i)}D1.schemaHasRulesForType=H9A;function XX(t,e){return e.rules.some(A=>$X(t,A))}D1.shouldUseGroup=XX;function $X(t,e){var A;return t[e.keyword]!==void 0||((A=e.definition.implements)===null||A===void 0?void 0:A.some(i=>t[i]!==void 0))}D1.shouldUseRule=$X});var y4=He(_s=>{"use strict";Object.defineProperty(_s,"__esModule",{value:!0});_s.reportTypeError=_s.checkDataTypes=_s.checkDataType=_s.coerceAndCheckDataType=_s.getJSONTypes=_s.getSchemaTypes=_s.DataType=void 0;var O9A=LL(),z9A=xL(),P9A=w4(),ki=Pi(),A$=wn(),DE=function(t){return t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong",t}(DE||(_s.DataType=DE={}));function j9A(t){let e=e$(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}_s.getSchemaTypes=j9A;function e$(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(O9A.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}_s.getJSONTypes=e$;function q9A(t,e){let{gen:A,data:i,opts:n}=t,o=V9A(e,n.coerceTypes),r=e.length>0&&!(o.length===0&&e.length===1&&(0,z9A.schemaHasRulesForType)(t,e[0]));if(r){let s=FL(e,i,n.strictNumbers,DE.Wrong);A.if(s,()=>{o.length?Z9A(t,e,o):_L(t)})}return r}_s.coerceAndCheckDataType=q9A;var t$=new Set(["string","number","integer","boolean","null"]);function V9A(t,e){return e?t.filter(A=>t$.has(A)||e==="array"&&A==="array"):[]}function Z9A(t,e,A){let{gen:i,data:n,opts:o}=t,r=i.let("dataType",(0,ki._)`typeof ${n}`),s=i.let("coerced",(0,ki._)`undefined`);o.coerceTypes==="array"&&i.if((0,ki._)`${r} == 'object' && Array.isArray(${n}) && ${n}.length == 1`,()=>i.assign(n,(0,ki._)`${n}[0]`).assign(r,(0,ki._)`typeof ${n}`).if(FL(e,n,o.strictNumbers),()=>i.assign(s,n))),i.if((0,ki._)`${s} !== undefined`);for(let c of A)(t$.has(c)||c==="array"&&o.coerceTypes==="array")&&a(c);i.else(),_L(t),i.endIf(),i.if((0,ki._)`${s} !== undefined`,()=>{i.assign(n,s),W9A(t,s)});function a(c){switch(c){case"string":i.elseIf((0,ki._)`${r} == "number" || ${r} == "boolean"`).assign(s,(0,ki._)`"" + ${n}`).elseIf((0,ki._)`${n} === null`).assign(s,(0,ki._)`""`);return;case"number":i.elseIf((0,ki._)`${r} == "boolean" || ${n} === null + || (${r} == "string" && ${n} && ${n} == +${n})`).assign(s,(0,ki._)`+${n}`);return;case"integer":i.elseIf((0,ki._)`${r} === "boolean" || ${n} === null + || (${r} === "string" && ${n} && ${n} == +${n} && !(${n} % 1))`).assign(s,(0,ki._)`+${n}`);return;case"boolean":i.elseIf((0,ki._)`${n} === "false" || ${n} === 0 || ${n} === null`).assign(s,!1).elseIf((0,ki._)`${n} === "true" || ${n} === 1`).assign(s,!0);return;case"null":i.elseIf((0,ki._)`${n} === "" || ${n} === 0 || ${n} === false`),i.assign(s,null);return;case"array":i.elseIf((0,ki._)`${r} === "string" || ${r} === "number" + || ${r} === "boolean" || ${n} === null`).assign(s,(0,ki._)`[${n}]`)}}}function W9A({gen:t,parentData:e,parentDataProperty:A},i){t.if((0,ki._)`${e} !== undefined`,()=>t.assign((0,ki._)`${e}[${A}]`,i))}function NL(t,e,A,i=DE.Correct){let n=i===DE.Correct?ki.operators.EQ:ki.operators.NEQ,o;switch(t){case"null":return(0,ki._)`${e} ${n} null`;case"array":o=(0,ki._)`Array.isArray(${e})`;break;case"object":o=(0,ki._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":o=r((0,ki._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":o=r();break;default:return(0,ki._)`typeof ${e} ${n} ${t}`}return i===DE.Correct?o:(0,ki.not)(o);function r(s=ki.nil){return(0,ki.and)((0,ki._)`typeof ${e} == "number"`,s,A?(0,ki._)`isFinite(${e})`:ki.nil)}}_s.checkDataType=NL;function FL(t,e,A,i){if(t.length===1)return NL(t[0],e,A,i);let n,o=(0,A$.toHash)(t);if(o.array&&o.object){let r=(0,ki._)`typeof ${e} != "object"`;n=o.null?r:(0,ki._)`!${e} || ${r}`,delete o.null,delete o.array,delete o.object}else n=ki.nil;o.number&&delete o.integer;for(let r in o)n=(0,ki.and)(n,NL(r,e,A,i));return n}_s.checkDataTypes=FL;var X9A={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,ki._)`{type: ${t}}`:(0,ki._)`{type: ${e}}`};function _L(t){let e=$9A(t);(0,P9A.reportError)(e,X9A)}_s.reportTypeError=_L;function $9A(t){let{gen:e,data:A,schema:i}=t,n=(0,A$.schemaRefOrVal)(t,i,"type");return{gen:e,keyword:"type",data:A,schema:i.type,schemaCode:n,schemaValue:n,parentSchema:i,params:{},it:t}}});var n$=He(Z5=>{"use strict";Object.defineProperty(Z5,"__esModule",{value:!0});Z5.assignDefaults=void 0;var wE=Pi(),AMA=wn();function eMA(t,e){let{properties:A,items:i}=t.schema;if(e==="object"&&A)for(let n in A)i$(t,n,A[n].default);else e==="array"&&Array.isArray(i)&&i.forEach((n,o)=>i$(t,o,n.default))}Z5.assignDefaults=eMA;function i$(t,e,A){let{gen:i,compositeRule:n,data:o,opts:r}=t;if(A===void 0)return;let s=(0,wE._)`${o}${(0,wE.getProperty)(e)}`;if(n){(0,AMA.checkStrictMode)(t,`default is ignored for: ${s}`);return}let a=(0,wE._)`${s} === undefined`;r.useDefaults==="empty"&&(a=(0,wE._)`${a} || ${s} === null || ${s} === ""`),i.if(a,(0,wE._)`${s} = ${(0,wE.stringify)(A)}`)}});var Oc=He(co=>{"use strict";Object.defineProperty(co,"__esModule",{value:!0});co.validateUnion=co.validateArray=co.usePattern=co.callValidateCode=co.schemaProperties=co.allSchemaProperties=co.noPropertyInData=co.propertyInData=co.isOwnProperty=co.hasPropFunc=co.reportMissingProp=co.checkMissingProp=co.checkReportMissingProp=void 0;var Ho=Pi(),GL=wn(),w1=J0(),tMA=wn();function iMA(t,e){let{gen:A,data:i,it:n}=t;A.if(UL(A,i,e,n.opts.ownProperties),()=>{t.setParams({missingProperty:(0,Ho._)`${e}`},!0),t.error()})}co.checkReportMissingProp=iMA;function nMA({gen:t,data:e,it:{opts:A}},i,n){return(0,Ho.or)(...i.map(o=>(0,Ho.and)(UL(t,e,o,A.ownProperties),(0,Ho._)`${n} = ${o}`)))}co.checkMissingProp=nMA;function oMA(t,e){t.setParams({missingProperty:e},!0),t.error()}co.reportMissingProp=oMA;function o$(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,Ho._)`Object.prototype.hasOwnProperty`})}co.hasPropFunc=o$;function KL(t,e,A){return(0,Ho._)`${o$(t)}.call(${e}, ${A})`}co.isOwnProperty=KL;function rMA(t,e,A,i){let n=(0,Ho._)`${e}${(0,Ho.getProperty)(A)} !== undefined`;return i?(0,Ho._)`${n} && ${KL(t,e,A)}`:n}co.propertyInData=rMA;function UL(t,e,A,i){let n=(0,Ho._)`${e}${(0,Ho.getProperty)(A)} === undefined`;return i?(0,Ho.or)(n,(0,Ho.not)(KL(t,e,A))):n}co.noPropertyInData=UL;function r$(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}co.allSchemaProperties=r$;function sMA(t,e){return r$(e).filter(A=>!(0,GL.alwaysValidSchema)(t,e[A]))}co.schemaProperties=sMA;function aMA({schemaCode:t,data:e,it:{gen:A,topSchemaRef:i,schemaPath:n,errorPath:o},it:r},s,a,c){let g=c?(0,Ho._)`${t}, ${e}, ${i}${n}`:e,I=[[w1.default.instancePath,(0,Ho.strConcat)(w1.default.instancePath,o)],[w1.default.parentData,r.parentData],[w1.default.parentDataProperty,r.parentDataProperty],[w1.default.rootData,w1.default.rootData]];r.opts.dynamicRef&&I.push([w1.default.dynamicAnchors,w1.default.dynamicAnchors]);let C=(0,Ho._)`${g}, ${A.object(...I)}`;return a!==Ho.nil?(0,Ho._)`${s}.call(${a}, ${C})`:(0,Ho._)`${s}(${C})`}co.callValidateCode=aMA;var cMA=(0,Ho._)`new RegExp`;function gMA({gen:t,it:{opts:e}},A){let i=e.unicodeRegExp?"u":"",{regExp:n}=e.code,o=n(A,i);return t.scopeValue("pattern",{key:o.toString(),ref:o,code:(0,Ho._)`${n.code==="new RegExp"?cMA:(0,tMA.useFunc)(t,n)}(${A}, ${i})`})}co.usePattern=gMA;function lMA(t){let{gen:e,data:A,keyword:i,it:n}=t,o=e.name("valid");if(n.allErrors){let s=e.let("valid",!0);return r(()=>e.assign(s,!1)),s}return e.var(o,!0),r(()=>e.break()),o;function r(s){let a=e.const("len",(0,Ho._)`${A}.length`);e.forRange("i",0,a,c=>{t.subschema({keyword:i,dataProp:c,dataPropType:GL.Type.Num},o),e.if((0,Ho.not)(o),s)})}}co.validateArray=lMA;function IMA(t){let{gen:e,schema:A,keyword:i,it:n}=t;if(!Array.isArray(A))throw new Error("ajv implementation error");if(A.some(a=>(0,GL.alwaysValidSchema)(n,a))&&!n.opts.unevaluated)return;let r=e.let("valid",!1),s=e.name("_valid");e.block(()=>A.forEach((a,c)=>{let g=t.subschema({keyword:i,schemaProp:c,compositeRule:!0},s);e.assign(r,(0,Ho._)`${r} || ${s}`),t.mergeValidEvaluated(g,s)||e.if((0,Ho.not)(r))})),t.result(r,()=>t.reset(),()=>t.error(!0))}co.validateUnion=IMA});var c$=He(Fl=>{"use strict";Object.defineProperty(Fl,"__esModule",{value:!0});Fl.validateKeywordUsage=Fl.validSchemaType=Fl.funcKeywordCode=Fl.macroKeywordCode=void 0;var ta=Pi(),mC=J0(),CMA=Oc(),dMA=w4();function BMA(t,e){let{gen:A,keyword:i,schema:n,parentSchema:o,it:r}=t,s=e.macro.call(r.self,n,o,r),a=a$(A,i,s);r.opts.validateSchema!==!1&&r.self.validateSchema(s,!0);let c=A.name("valid");t.subschema({schema:s,schemaPath:ta.nil,errSchemaPath:`${r.errSchemaPath}/${i}`,topSchemaRef:a,compositeRule:!0},c),t.pass(c,()=>t.error(!0))}Fl.macroKeywordCode=BMA;function EMA(t,e){var A;let{gen:i,keyword:n,schema:o,parentSchema:r,$data:s,it:a}=t;uMA(a,e);let c=!s&&e.compile?e.compile.call(a.self,o,r,a):e.validate,g=a$(i,n,c),I=i.let("valid");t.block$data(I,C),t.ok((A=e.valid)!==null&&A!==void 0?A:I);function C(){if(e.errors===!1)E(),e.modifying&&s$(t),u(()=>t.error());else{let h=e.async?d():B();e.modifying&&s$(t),u(()=>QMA(t,h))}}function d(){let h=i.let("ruleErrs",null);return i.try(()=>E((0,ta._)`await `),w=>i.assign(I,!1).if((0,ta._)`${w} instanceof ${a.ValidationError}`,()=>i.assign(h,(0,ta._)`${w}.errors`),()=>i.throw(w))),h}function B(){let h=(0,ta._)`${g}.errors`;return i.assign(h,null),E(ta.nil),h}function E(h=e.async?(0,ta._)`await `:ta.nil){let w=a.opts.passContext?mC.default.this:mC.default.self,x=!("compile"in e&&!s||e.schema===!1);i.assign(I,(0,ta._)`${h}${(0,CMA.callValidateCode)(t,g,w,x)}`,e.modifying)}function u(h){var w;i.if((0,ta.not)((w=e.valid)!==null&&w!==void 0?w:I),h)}}Fl.funcKeywordCode=EMA;function s$(t){let{gen:e,data:A,it:i}=t;e.if(i.parentData,()=>e.assign(A,(0,ta._)`${i.parentData}[${i.parentDataProperty}]`))}function QMA(t,e){let{gen:A}=t;A.if((0,ta._)`Array.isArray(${e})`,()=>{A.assign(mC.default.vErrors,(0,ta._)`${mC.default.vErrors} === null ? ${e} : ${mC.default.vErrors}.concat(${e})`).assign(mC.default.errors,(0,ta._)`${mC.default.vErrors}.length`),(0,dMA.extendErrors)(t)},()=>t.error())}function uMA({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function a$(t,e,A){if(A===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof A=="function"?{ref:A}:{ref:A,code:(0,ta.stringify)(A)})}function hMA(t,e,A=!1){return!e.length||e.some(i=>i==="array"?Array.isArray(t):i==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==i||A&&typeof t>"u")}Fl.validSchemaType=hMA;function fMA({schema:t,opts:e,self:A,errSchemaPath:i},n,o){if(Array.isArray(n.keyword)?!n.keyword.includes(o):n.keyword!==o)throw new Error("ajv implementation error");let r=n.dependencies;if(r?.some(s=>!Object.prototype.hasOwnProperty.call(t,s)))throw new Error(`parent schema must have dependencies of ${o}: ${r.join(",")}`);if(n.validateSchema&&!n.validateSchema(t[o])){let a=`keyword "${o}" value is invalid at path "${i}": `+A.errorsText(n.validateSchema.errors);if(e.validateSchema==="log")A.logger.error(a);else throw new Error(a)}}Fl.validateKeywordUsage=fMA});var l$=He(y1=>{"use strict";Object.defineProperty(y1,"__esModule",{value:!0});y1.extendSubschemaMode=y1.extendSubschemaData=y1.getSubschema=void 0;var _l=Pi(),g$=wn();function mMA(t,{keyword:e,schemaProp:A,schema:i,schemaPath:n,errSchemaPath:o,topSchemaRef:r}){if(e!==void 0&&i!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let s=t.schema[e];return A===void 0?{schema:s,schemaPath:(0,_l._)`${t.schemaPath}${(0,_l.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:s[A],schemaPath:(0,_l._)`${t.schemaPath}${(0,_l.getProperty)(e)}${(0,_l.getProperty)(A)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,g$.escapeFragment)(A)}`}}if(i!==void 0){if(n===void 0||o===void 0||r===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:i,schemaPath:n,topSchemaRef:r,errSchemaPath:o}}throw new Error('either "keyword" or "schema" must be passed')}y1.getSubschema=mMA;function pMA(t,e,{dataProp:A,dataPropType:i,data:n,dataTypes:o,propertyName:r}){if(n!==void 0&&A!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=e;if(A!==void 0){let{errorPath:c,dataPathArr:g,opts:I}=e,C=s.let("data",(0,_l._)`${e.data}${(0,_l.getProperty)(A)}`,!0);a(C),t.errorPath=(0,_l.str)`${c}${(0,g$.getErrorPath)(A,i,I.jsPropertySyntax)}`,t.parentDataProperty=(0,_l._)`${A}`,t.dataPathArr=[...g,t.parentDataProperty]}if(n!==void 0){let c=n instanceof _l.Name?n:s.let("data",n,!0);a(c),r!==void 0&&(t.propertyName=r)}o&&(t.dataTypes=o);function a(c){t.data=c,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,c]}}y1.extendSubschemaData=pMA;function DMA(t,{jtdDiscriminator:e,jtdMetadata:A,compositeRule:i,createErrors:n,allErrors:o}){i!==void 0&&(t.compositeRule=i),n!==void 0&&(t.createErrors=n),o!==void 0&&(t.allErrors=o),t.jtdDiscriminator=e,t.jtdMetadata=A}y1.extendSubschemaMode=DMA});var JL=He((D8e,I$)=>{"use strict";I$.exports=function t(e,A){if(e===A)return!0;if(e&&A&&typeof e=="object"&&typeof A=="object"){if(e.constructor!==A.constructor)return!1;var i,n,o;if(Array.isArray(e)){if(i=e.length,i!=A.length)return!1;for(n=i;n--!==0;)if(!t(e[n],A[n]))return!1;return!0}if(e.constructor===RegExp)return e.source===A.source&&e.flags===A.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===A.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===A.toString();if(o=Object.keys(e),i=o.length,i!==Object.keys(A).length)return!1;for(n=i;n--!==0;)if(!Object.prototype.hasOwnProperty.call(A,o[n]))return!1;for(n=i;n--!==0;){var r=o[n];if(!t(e[r],A[r]))return!1}return!0}return e!==e&&A!==A}});var d$=He((w8e,C$)=>{"use strict";var v1=C$.exports=function(t,e,A){typeof e=="function"&&(A=e,e={}),A=e.cb||A;var i=typeof A=="function"?A:A.pre||function(){},n=A.post||function(){};W5(e,i,n,t,"",t)};v1.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};v1.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};v1.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};v1.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function W5(t,e,A,i,n,o,r,s,a,c){if(i&&typeof i=="object"&&!Array.isArray(i)){e(i,n,o,r,s,a,c);for(var g in i){var I=i[g];if(Array.isArray(I)){if(g in v1.arrayKeywords)for(var C=0;C{"use strict";Object.defineProperty(La,"__esModule",{value:!0});La.getSchemaRefs=La.resolveUrl=La.normalizeId=La._getFullPath=La.getFullPath=La.inlineRef=void 0;var yMA=wn(),vMA=JL(),MMA=d$(),bMA=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function kMA(t,e=!0){return typeof t=="boolean"?!0:e===!0?!YL(t):e?B$(t)<=e:!1}La.inlineRef=kMA;var SMA=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function YL(t){for(let e in t){if(SMA.has(e))return!0;let A=t[e];if(Array.isArray(A)&&A.some(YL)||typeof A=="object"&&YL(A))return!0}return!1}function B$(t){let e=0;for(let A in t){if(A==="$ref")return 1/0;if(e++,!bMA.has(A)&&(typeof t[A]=="object"&&(0,yMA.eachItem)(t[A],i=>e+=B$(i)),e===1/0))return 1/0}return e}function E$(t,e="",A){A!==!1&&(e=yE(e));let i=t.parse(e);return Q$(t,i)}La.getFullPath=E$;function Q$(t,e){return t.serialize(e).split("#")[0]+"#"}La._getFullPath=Q$;var RMA=/#\/?$/;function yE(t){return t?t.replace(RMA,""):""}La.normalizeId=yE;function LMA(t,e,A){return A=yE(A),t.resolve(e,A)}La.resolveUrl=LMA;var xMA=/^[a-z_][-a-z0-9._]*$/i;function NMA(t,e){if(typeof t=="boolean")return{};let{schemaId:A,uriResolver:i}=this.opts,n=yE(t[A]||e),o={"":n},r=E$(i,n,!1),s={},a=new Set;return MMA(t,{allKeys:!0},(I,C,d,B)=>{if(B===void 0)return;let E=r+C,u=o[B];typeof I[A]=="string"&&(u=h.call(this,I[A])),w.call(this,I.$anchor),w.call(this,I.$dynamicAnchor),o[C]=u;function h(x){let R=this.opts.uriResolver.resolve;if(x=yE(u?R(u,x):x),a.has(x))throw g(x);a.add(x);let D=this.refs[x];return typeof D=="string"&&(D=this.refs[D]),typeof D=="object"?c(I,D.schema,x):x!==yE(E)&&(x[0]==="#"?(c(I,s[x],x),s[x]=I):this.refs[x]=E),x}function w(x){if(typeof x=="string"){if(!xMA.test(x))throw new Error(`invalid anchor "${x}"`);h.call(this,`#${x}`)}}}),s;function c(I,C,d){if(C!==void 0&&!vMA(I,C))throw g(d)}function g(I){return new Error(`reference "${I}" resolves to more than one schema`)}}La.getSchemaRefs=NMA});var k4=He(M1=>{"use strict";Object.defineProperty(M1,"__esModule",{value:!0});M1.getData=M1.KeywordCxt=M1.validateFunctionCode=void 0;var p$=WX(),u$=y4(),HL=xL(),X5=y4(),FMA=n$(),b4=c$(),TL=l$(),wt=Pi(),si=J0(),_MA=v4(),Y0=wn(),M4=w4();function GMA(t){if(y$(t)&&(v$(t),w$(t))){JMA(t);return}D$(t,()=>(0,p$.topBoolOrEmptySchema)(t))}M1.validateFunctionCode=GMA;function D$({gen:t,validateName:e,schema:A,schemaEnv:i,opts:n},o){n.code.es5?t.func(e,(0,wt._)`${si.default.data}, ${si.default.valCxt}`,i.$async,()=>{t.code((0,wt._)`"use strict"; ${h$(A,n)}`),UMA(t,n),t.code(o)}):t.func(e,(0,wt._)`${si.default.data}, ${KMA(n)}`,i.$async,()=>t.code(h$(A,n)).code(o))}function KMA(t){return(0,wt._)`{${si.default.instancePath}="", ${si.default.parentData}, ${si.default.parentDataProperty}, ${si.default.rootData}=${si.default.data}${t.dynamicRef?(0,wt._)`, ${si.default.dynamicAnchors}={}`:wt.nil}}={}`}function UMA(t,e){t.if(si.default.valCxt,()=>{t.var(si.default.instancePath,(0,wt._)`${si.default.valCxt}.${si.default.instancePath}`),t.var(si.default.parentData,(0,wt._)`${si.default.valCxt}.${si.default.parentData}`),t.var(si.default.parentDataProperty,(0,wt._)`${si.default.valCxt}.${si.default.parentDataProperty}`),t.var(si.default.rootData,(0,wt._)`${si.default.valCxt}.${si.default.rootData}`),e.dynamicRef&&t.var(si.default.dynamicAnchors,(0,wt._)`${si.default.valCxt}.${si.default.dynamicAnchors}`)},()=>{t.var(si.default.instancePath,(0,wt._)`""`),t.var(si.default.parentData,(0,wt._)`undefined`),t.var(si.default.parentDataProperty,(0,wt._)`undefined`),t.var(si.default.rootData,si.default.data),e.dynamicRef&&t.var(si.default.dynamicAnchors,(0,wt._)`{}`)})}function JMA(t){let{schema:e,opts:A,gen:i}=t;D$(t,()=>{A.$comment&&e.$comment&&b$(t),zMA(t),i.let(si.default.vErrors,null),i.let(si.default.errors,0),A.unevaluated&&YMA(t),M$(t),qMA(t)})}function YMA(t){let{gen:e,validateName:A}=t;t.evaluated=e.const("evaluated",(0,wt._)`${A}.evaluated`),e.if((0,wt._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,wt._)`${t.evaluated}.props`,(0,wt._)`undefined`)),e.if((0,wt._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,wt._)`${t.evaluated}.items`,(0,wt._)`undefined`))}function h$(t,e){let A=typeof t=="object"&&t[e.schemaId];return A&&(e.code.source||e.code.process)?(0,wt._)`/*# sourceURL=${A} */`:wt.nil}function TMA(t,e){if(y$(t)&&(v$(t),w$(t))){HMA(t,e);return}(0,p$.boolOrEmptySchema)(t,e)}function w$({schema:t,self:e}){if(typeof t=="boolean")return!t;for(let A in t)if(e.RULES.all[A])return!0;return!1}function y$(t){return typeof t.schema!="boolean"}function HMA(t,e){let{schema:A,gen:i,opts:n}=t;n.$comment&&A.$comment&&b$(t),PMA(t),jMA(t);let o=i.const("_errs",si.default.errors);M$(t,o),i.var(e,(0,wt._)`${o} === ${si.default.errors}`)}function v$(t){(0,Y0.checkUnknownRules)(t),OMA(t)}function M$(t,e){if(t.opts.jtd)return f$(t,[],!1,e);let A=(0,u$.getSchemaTypes)(t.schema),i=(0,u$.coerceAndCheckDataType)(t,A);f$(t,A,!i,e)}function OMA(t){let{schema:e,errSchemaPath:A,opts:i,self:n}=t;e.$ref&&i.ignoreKeywordsWithRef&&(0,Y0.schemaHasRulesButRef)(e,n.RULES)&&n.logger.warn(`$ref: keywords ignored in schema at path "${A}"`)}function zMA(t){let{schema:e,opts:A}=t;e.default!==void 0&&A.useDefaults&&A.strictSchema&&(0,Y0.checkStrictMode)(t,"default is ignored in the schema root")}function PMA(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,_MA.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function jMA(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function b$({gen:t,schemaEnv:e,schema:A,errSchemaPath:i,opts:n}){let o=A.$comment;if(n.$comment===!0)t.code((0,wt._)`${si.default.self}.logger.log(${o})`);else if(typeof n.$comment=="function"){let r=(0,wt.str)`${i}/$comment`,s=t.scopeValue("root",{ref:e.root});t.code((0,wt._)`${si.default.self}.opts.$comment(${o}, ${r}, ${s}.schema)`)}}function qMA(t){let{gen:e,schemaEnv:A,validateName:i,ValidationError:n,opts:o}=t;A.$async?e.if((0,wt._)`${si.default.errors} === 0`,()=>e.return(si.default.data),()=>e.throw((0,wt._)`new ${n}(${si.default.vErrors})`)):(e.assign((0,wt._)`${i}.errors`,si.default.vErrors),o.unevaluated&&VMA(t),e.return((0,wt._)`${si.default.errors} === 0`))}function VMA({gen:t,evaluated:e,props:A,items:i}){A instanceof wt.Name&&t.assign((0,wt._)`${e}.props`,A),i instanceof wt.Name&&t.assign((0,wt._)`${e}.items`,i)}function f$(t,e,A,i){let{gen:n,schema:o,data:r,allErrors:s,opts:a,self:c}=t,{RULES:g}=c;if(o.$ref&&(a.ignoreKeywordsWithRef||!(0,Y0.schemaHasRulesButRef)(o,g))){n.block(()=>S$(t,"$ref",g.all.$ref.definition));return}a.jtd||ZMA(t,e),n.block(()=>{for(let C of g.rules)I(C);I(g.post)});function I(C){(0,HL.shouldUseGroup)(o,C)&&(C.type?(n.if((0,X5.checkDataType)(C.type,r,a.strictNumbers)),m$(t,C),e.length===1&&e[0]===C.type&&A&&(n.else(),(0,X5.reportTypeError)(t)),n.endIf()):m$(t,C),s||n.if((0,wt._)`${si.default.errors} === ${i||0}`))}}function m$(t,e){let{gen:A,schema:i,opts:{useDefaults:n}}=t;n&&(0,FMA.assignDefaults)(t,e.type),A.block(()=>{for(let o of e.rules)(0,HL.shouldUseRule)(i,o)&&S$(t,o.keyword,o.definition,e.type)})}function ZMA(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(WMA(t,e),t.opts.allowUnionTypes||XMA(t,e),$MA(t,t.dataTypes))}function WMA(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(A=>{k$(t.dataTypes,A)||OL(t,`type "${A}" not allowed by context "${t.dataTypes.join(",")}"`)}),ebA(t,e)}}function XMA(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&OL(t,"use allowUnionTypes to allow union type keyword")}function $MA(t,e){let A=t.self.RULES.all;for(let i in A){let n=A[i];if(typeof n=="object"&&(0,HL.shouldUseRule)(t.schema,n)){let{type:o}=n.definition;o.length&&!o.some(r=>AbA(e,r))&&OL(t,`missing type "${o.join(",")}" for keyword "${i}"`)}}}function AbA(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function k$(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function ebA(t,e){let A=[];for(let i of t.dataTypes)k$(e,i)?A.push(i):e.includes("integer")&&i==="number"&&A.push("integer");t.dataTypes=A}function OL(t,e){let A=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${A}" (strictTypes)`,(0,Y0.checkStrictMode)(t,e,t.opts.strictTypes)}var $5=class{constructor(e,A,i){if((0,b4.validateKeywordUsage)(e,A,i),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=i,this.data=e.data,this.schema=e.schema[i],this.$data=A.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Y0.schemaRefOrVal)(e,this.schema,i,this.$data),this.schemaType=A.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=A,this.$data)this.schemaCode=e.gen.const("vSchema",R$(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,b4.validSchemaType)(this.schema,A.schemaType,A.allowUndefined))throw new Error(`${i} value must be ${JSON.stringify(A.schemaType)}`);("code"in A?A.trackErrors:A.errors!==!1)&&(this.errsCount=e.gen.const("_errs",si.default.errors))}result(e,A,i){this.failResult((0,wt.not)(e),A,i)}failResult(e,A,i){this.gen.if(e),i?i():this.error(),A?(this.gen.else(),A(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,A){this.failResult((0,wt.not)(e),void 0,A)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:A}=this;this.fail((0,wt._)`${A} !== undefined && (${(0,wt.or)(this.invalid$data(),e)})`)}error(e,A,i){if(A){this.setParams(A),this._error(e,i),this.setParams({});return}this._error(e,i)}_error(e,A){(e?M4.reportExtraError:M4.reportError)(this,this.def.error,A)}$dataError(){(0,M4.reportError)(this,this.def.$dataError||M4.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,M4.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,A){A?Object.assign(this.params,e):this.params=e}block$data(e,A,i=wt.nil){this.gen.block(()=>{this.check$data(e,i),A()})}check$data(e=wt.nil,A=wt.nil){if(!this.$data)return;let{gen:i,schemaCode:n,schemaType:o,def:r}=this;i.if((0,wt.or)((0,wt._)`${n} === undefined`,A)),e!==wt.nil&&i.assign(e,!0),(o.length||r.validateSchema)&&(i.elseIf(this.invalid$data()),this.$dataError(),e!==wt.nil&&i.assign(e,!1)),i.else()}invalid$data(){let{gen:e,schemaCode:A,schemaType:i,def:n,it:o}=this;return(0,wt.or)(r(),s());function r(){if(i.length){if(!(A instanceof wt.Name))throw new Error("ajv implementation error");let a=Array.isArray(i)?i:[i];return(0,wt._)`${(0,X5.checkDataTypes)(a,A,o.opts.strictNumbers,X5.DataType.Wrong)}`}return wt.nil}function s(){if(n.validateSchema){let a=e.scopeValue("validate$data",{ref:n.validateSchema});return(0,wt._)`!${a}(${A})`}return wt.nil}}subschema(e,A){let i=(0,TL.getSubschema)(this.it,e);(0,TL.extendSubschemaData)(i,this.it,e),(0,TL.extendSubschemaMode)(i,e);let n=Fe(sA(sA({},this.it),i),{items:void 0,props:void 0});return TMA(n,A),n}mergeEvaluated(e,A){let{it:i,gen:n}=this;i.opts.unevaluated&&(i.props!==!0&&e.props!==void 0&&(i.props=Y0.mergeEvaluated.props(n,e.props,i.props,A)),i.items!==!0&&e.items!==void 0&&(i.items=Y0.mergeEvaluated.items(n,e.items,i.items,A)))}mergeValidEvaluated(e,A){let{it:i,gen:n}=this;if(i.opts.unevaluated&&(i.props!==!0||i.items!==!0))return n.if(A,()=>this.mergeEvaluated(e,wt.Name)),!0}};M1.KeywordCxt=$5;function S$(t,e,A,i){let n=new $5(t,A,e);"code"in A?A.code(n,i):n.$data&&A.validate?(0,b4.funcKeywordCode)(n,A):"macro"in A?(0,b4.macroKeywordCode)(n,A):(A.compile||A.validate)&&(0,b4.funcKeywordCode)(n,A)}var tbA=/^\/(?:[^~]|~0|~1)*$/,ibA=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function R$(t,{dataLevel:e,dataNames:A,dataPathArr:i}){let n,o;if(t==="")return si.default.rootData;if(t[0]==="/"){if(!tbA.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);n=t,o=si.default.rootData}else{let c=ibA.exec(t);if(!c)throw new Error(`Invalid JSON-pointer: ${t}`);let g=+c[1];if(n=c[2],n==="#"){if(g>=e)throw new Error(a("property/index",g));return i[e-g]}if(g>e)throw new Error(a("data",g));if(o=A[e-g],!n)return o}let r=o,s=n.split("/");for(let c of s)c&&(o=(0,wt._)`${o}${(0,wt.getProperty)((0,Y0.unescapeJsonPointer)(c))}`,r=(0,wt._)`${r} && ${o}`);return r;function a(c,g){return`Cannot access ${c} ${g} levels up, current level is ${e}`}}M1.getData=R$});var AD=He(PL=>{"use strict";Object.defineProperty(PL,"__esModule",{value:!0});var zL=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};PL.default=zL});var S4=He(VL=>{"use strict";Object.defineProperty(VL,"__esModule",{value:!0});var jL=v4(),qL=class extends Error{constructor(e,A,i,n){super(n||`can't resolve reference ${i} from id ${A}`),this.missingRef=(0,jL.resolveUrl)(e,A,i),this.missingSchema=(0,jL.normalizeId)((0,jL.getFullPath)(e,this.missingRef))}};VL.default=qL});var tD=He(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});zc.resolveSchema=zc.getCompilingSchema=zc.resolveRef=zc.compileSchema=zc.SchemaEnv=void 0;var Sg=Pi(),nbA=AD(),pC=J0(),Rg=v4(),L$=wn(),obA=k4(),vE=class{constructor(e){var A;this.refs={},this.dynamicAnchors={};let i;typeof e.schema=="object"&&(i=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(A=e.baseId)!==null&&A!==void 0?A:(0,Rg.normalizeId)(i?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=i?.$async,this.refs={}}};zc.SchemaEnv=vE;function WL(t){let e=x$.call(this,t);if(e)return e;let A=(0,Rg.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:i,lines:n}=this.opts.code,{ownProperties:o}=this.opts,r=new Sg.CodeGen(this.scope,{es5:i,lines:n,ownProperties:o}),s;t.$async&&(s=r.scopeValue("Error",{ref:nbA.default,code:(0,Sg._)`require("ajv/dist/runtime/validation_error").default`}));let a=r.scopeName("validate");t.validateName=a;let c={gen:r,allErrors:this.opts.allErrors,data:pC.default.data,parentData:pC.default.parentData,parentDataProperty:pC.default.parentDataProperty,dataNames:[pC.default.data],dataPathArr:[Sg.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:r.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,Sg.stringify)(t.schema)}:{ref:t.schema}),validateName:a,ValidationError:s,schema:t.schema,schemaEnv:t,rootId:A,baseId:t.baseId||A,schemaPath:Sg.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,Sg._)`""`,opts:this.opts,self:this},g;try{this._compilations.add(t),(0,obA.validateFunctionCode)(c),r.optimize(this.opts.code.optimize);let I=r.toString();g=`${r.scopeRefs(pC.default.scope)}return ${I}`,this.opts.code.process&&(g=this.opts.code.process(g,t));let d=new Function(`${pC.default.self}`,`${pC.default.scope}`,g)(this,this.scope.get());if(this.scope.value(a,{ref:d}),d.errors=null,d.schema=t.schema,d.schemaEnv=t,t.$async&&(d.$async=!0),this.opts.code.source===!0&&(d.source={validateName:a,validateCode:I,scopeValues:r._values}),this.opts.unevaluated){let{props:B,items:E}=c;d.evaluated={props:B instanceof Sg.Name?void 0:B,items:E instanceof Sg.Name?void 0:E,dynamicProps:B instanceof Sg.Name,dynamicItems:E instanceof Sg.Name},d.source&&(d.source.evaluated=(0,Sg.stringify)(d.evaluated))}return t.validate=d,t}catch(I){throw delete t.validate,delete t.validateName,g&&this.logger.error("Error compiling schema, function code:",g),I}finally{this._compilations.delete(t)}}zc.compileSchema=WL;function rbA(t,e,A){var i;A=(0,Rg.resolveUrl)(this.opts.uriResolver,e,A);let n=t.refs[A];if(n)return n;let o=cbA.call(this,t,A);if(o===void 0){let r=(i=t.localRefs)===null||i===void 0?void 0:i[A],{schemaId:s}=this.opts;r&&(o=new vE({schema:r,schemaId:s,root:t,baseId:e}))}if(o!==void 0)return t.refs[A]=sbA.call(this,o)}zc.resolveRef=rbA;function sbA(t){return(0,Rg.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:WL.call(this,t)}function x$(t){for(let e of this._compilations)if(abA(e,t))return e}zc.getCompilingSchema=x$;function abA(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function cbA(t,e){let A;for(;typeof(A=this.refs[e])=="string";)e=A;return A||this.schemas[e]||eD.call(this,t,e)}function eD(t,e){let A=this.opts.uriResolver.parse(e),i=(0,Rg._getFullPath)(this.opts.uriResolver,A),n=(0,Rg.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&i===n)return ZL.call(this,A,t);let o=(0,Rg.normalizeId)(i),r=this.refs[o]||this.schemas[o];if(typeof r=="string"){let s=eD.call(this,t,r);return typeof s?.schema!="object"?void 0:ZL.call(this,A,s)}if(typeof r?.schema=="object"){if(r.validate||WL.call(this,r),o===(0,Rg.normalizeId)(e)){let{schema:s}=r,{schemaId:a}=this.opts,c=s[a];return c&&(n=(0,Rg.resolveUrl)(this.opts.uriResolver,n,c)),new vE({schema:s,schemaId:a,root:t,baseId:n})}return ZL.call(this,A,r)}}zc.resolveSchema=eD;var gbA=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function ZL(t,{baseId:e,schema:A,root:i}){var n;if(((n=t.fragment)===null||n===void 0?void 0:n[0])!=="/")return;for(let s of t.fragment.slice(1).split("/")){if(typeof A=="boolean")return;let a=A[(0,L$.unescapeFragment)(s)];if(a===void 0)return;A=a;let c=typeof A=="object"&&A[this.opts.schemaId];!gbA.has(s)&&c&&(e=(0,Rg.resolveUrl)(this.opts.uriResolver,e,c))}let o;if(typeof A!="boolean"&&A.$ref&&!(0,L$.schemaHasRulesButRef)(A,this.RULES)){let s=(0,Rg.resolveUrl)(this.opts.uriResolver,e,A.$ref);o=eD.call(this,i,s)}let{schemaId:r}=this.opts;if(o=o||new vE({schema:A,schemaId:r,root:i,baseId:e}),o.schema!==o.root.schema)return o}});var N$=He((R8e,lbA)=>{lbA.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var $L=He((L8e,K$)=>{"use strict";var IbA=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),_$=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function XL(t){let e="",A=0,i=0;for(i=0;i=48&&A<=57||A>=65&&A<=70||A>=97&&A<=102))return"";e+=t[i];break}for(i+=1;i=48&&A<=57||A>=65&&A<=70||A>=97&&A<=102))return"";e+=t[i]}return e}var CbA=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function F$(t){return t.length=0,!0}function dbA(t,e,A){if(t.length){let i=XL(t);if(i!=="")e.push(i);else return A.error=!0,!1;t.length=0}return!0}function BbA(t){let e=0,A={error:!1,address:"",zone:""},i=[],n=[],o=!1,r=!1,s=dbA;for(let a=0;a7){A.error=!0;break}a>0&&t[a-1]===":"&&(o=!0),i.push(":");continue}else if(c==="%"){if(!s(n,i,A))break;s=F$}else{n.push(c);continue}}return n.length&&(s===F$?A.zone=n.join(""):r?i.push(n.join("")):i.push(XL(n))),A.address=i.join(""),A}function G$(t){if(EbA(t,":")<2)return{host:t,isIPV6:!1};let e=BbA(t);if(e.error)return{host:t,isIPV6:!1};{let A=e.address,i=e.address;return e.zone&&(A+="%"+e.zone,i+="%25"+e.zone),{host:A,isIPV6:!0,escapedHost:i}}}function EbA(t,e){let A=0;for(let i=0;i{"use strict";var{isUUID:fbA}=$L(),mbA=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,pbA=["http","https","ws","wss","urn","urn:uuid"];function DbA(t){return pbA.indexOf(t)!==-1}function Ax(t){return t.secure===!0?!0:t.secure===!1?!1:t.scheme?t.scheme.length===3&&(t.scheme[0]==="w"||t.scheme[0]==="W")&&(t.scheme[1]==="s"||t.scheme[1]==="S")&&(t.scheme[2]==="s"||t.scheme[2]==="S"):!1}function U$(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function J$(t){let e=String(t.scheme).toLowerCase()==="https";return(t.port===(e?443:80)||t.port==="")&&(t.port=void 0),t.path||(t.path="/"),t}function wbA(t){return t.secure=Ax(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function ybA(t){if((t.port===(Ax(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[e,A]=t.resourceName.split("?");t.path=e&&e!=="/"?e:void 0,t.query=A,t.resourceName=void 0}return t.fragment=void 0,t}function vbA(t,e){if(!t.path)return t.error="URN can not be parsed",t;let A=t.path.match(mbA);if(A){let i=e.scheme||t.scheme||"urn";t.nid=A[1].toLowerCase(),t.nss=A[2];let n=`${i}:${e.nid||t.nid}`,o=ex(n);t.path=void 0,o&&(t=o.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function MbA(t,e){if(t.nid===void 0)throw new Error("URN without nid cannot be serialized");let A=e.scheme||t.scheme||"urn",i=t.nid.toLowerCase(),n=`${A}:${e.nid||i}`,o=ex(n);o&&(t=o.serialize(t,e));let r=t,s=t.nss;return r.path=`${i||e.nid}:${s}`,e.skipEscape=!0,r}function bbA(t,e){let A=t;return A.uuid=A.nss,A.nss=void 0,!e.tolerant&&(!A.uuid||!fbA(A.uuid))&&(A.error=A.error||"UUID is not valid."),A}function kbA(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var Y$={scheme:"http",domainHost:!0,parse:U$,serialize:J$},SbA={scheme:"https",domainHost:Y$.domainHost,parse:U$,serialize:J$},iD={scheme:"ws",domainHost:!0,parse:wbA,serialize:ybA},RbA={scheme:"wss",domainHost:iD.domainHost,parse:iD.parse,serialize:iD.serialize},LbA={scheme:"urn",parse:vbA,serialize:MbA,skipNormalize:!0},xbA={scheme:"urn:uuid",parse:bbA,serialize:kbA,skipNormalize:!0},nD={http:Y$,https:SbA,ws:iD,wss:RbA,urn:LbA,"urn:uuid":xbA};Object.setPrototypeOf(nD,null);function ex(t){return t&&(nD[t]||nD[t.toLowerCase()])||void 0}T$.exports={wsIsSecure:Ax,SCHEMES:nD,isValidSchemeName:DbA,getSchemeHandler:ex}});var P$=He((N8e,rD)=>{"use strict";var{normalizeIPv6:NbA,removeDotSegments:R4,recomposeAuthority:FbA,normalizeComponentEncoding:oD,isIPv4:_bA,nonSimpleDomain:GbA}=$L(),{SCHEMES:KbA,getSchemeHandler:O$}=H$();function UbA(t,e){return typeof t=="string"?t=Gl(T0(t,e),e):typeof t=="object"&&(t=T0(Gl(t,e),e)),t}function JbA(t,e,A){let i=A?Object.assign({scheme:"null"},A):{scheme:"null"},n=z$(T0(t,i),T0(e,i),i,!0);return i.skipEscape=!0,Gl(n,i)}function z$(t,e,A,i){let n={};return i||(t=T0(Gl(t,A),A),e=T0(Gl(e,A),A)),A=A||{},!A.tolerant&&e.scheme?(n.scheme=e.scheme,n.userinfo=e.userinfo,n.host=e.host,n.port=e.port,n.path=R4(e.path||""),n.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(n.userinfo=e.userinfo,n.host=e.host,n.port=e.port,n.path=R4(e.path||""),n.query=e.query):(e.path?(e.path[0]==="/"?n.path=R4(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?n.path="/"+e.path:t.path?n.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:n.path=e.path,n.path=R4(n.path)),n.query=e.query):(n.path=t.path,e.query!==void 0?n.query=e.query:n.query=t.query),n.userinfo=t.userinfo,n.host=t.host,n.port=t.port),n.scheme=t.scheme),n.fragment=e.fragment,n}function YbA(t,e,A){return typeof t=="string"?(t=unescape(t),t=Gl(oD(T0(t,A),!0),Fe(sA({},A),{skipEscape:!0}))):typeof t=="object"&&(t=Gl(oD(t,!0),Fe(sA({},A),{skipEscape:!0}))),typeof e=="string"?(e=unescape(e),e=Gl(oD(T0(e,A),!0),Fe(sA({},A),{skipEscape:!0}))):typeof e=="object"&&(e=Gl(oD(e,!0),Fe(sA({},A),{skipEscape:!0}))),t.toLowerCase()===e.toLowerCase()}function Gl(t,e){let A={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},i=Object.assign({},e),n=[],o=O$(i.scheme||A.scheme);o&&o.serialize&&o.serialize(A,i),A.path!==void 0&&(i.skipEscape?A.path=unescape(A.path):(A.path=escape(A.path),A.scheme!==void 0&&(A.path=A.path.split("%3A").join(":")))),i.reference!=="suffix"&&A.scheme&&n.push(A.scheme,":");let r=FbA(A);if(r!==void 0&&(i.reference!=="suffix"&&n.push("//"),n.push(r),A.path&&A.path[0]!=="/"&&n.push("/")),A.path!==void 0){let s=A.path;!i.absolutePath&&(!o||!o.absolutePath)&&(s=R4(s)),r===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),n.push(s)}return A.query!==void 0&&n.push("?",A.query),A.fragment!==void 0&&n.push("#",A.fragment),n.join("")}var TbA=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function T0(t,e){let A=Object.assign({},e),i={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},n=!1;A.reference==="suffix"&&(A.scheme?t=A.scheme+":"+t:t="//"+t);let o=t.match(TbA);if(o){if(i.scheme=o[1],i.userinfo=o[3],i.host=o[4],i.port=parseInt(o[5],10),i.path=o[6]||"",i.query=o[7],i.fragment=o[8],isNaN(i.port)&&(i.port=o[5]),i.host)if(_bA(i.host)===!1){let a=NbA(i.host);i.host=a.host.toLowerCase(),n=a.isIPV6}else n=!0;i.scheme===void 0&&i.userinfo===void 0&&i.host===void 0&&i.port===void 0&&i.query===void 0&&!i.path?i.reference="same-document":i.scheme===void 0?i.reference="relative":i.fragment===void 0?i.reference="absolute":i.reference="uri",A.reference&&A.reference!=="suffix"&&A.reference!==i.reference&&(i.error=i.error||"URI is not a "+A.reference+" reference.");let r=O$(A.scheme||i.scheme);if(!A.unicodeSupport&&(!r||!r.unicodeSupport)&&i.host&&(A.domainHost||r&&r.domainHost)&&n===!1&&GbA(i.host))try{i.host=URL.domainToASCII(i.host.toLowerCase())}catch(s){i.error=i.error||"Host's domain name can not be converted to ASCII: "+s}(!r||r&&!r.skipNormalize)&&(t.indexOf("%")!==-1&&(i.scheme!==void 0&&(i.scheme=unescape(i.scheme)),i.host!==void 0&&(i.host=unescape(i.host))),i.path&&(i.path=escape(unescape(i.path))),i.fragment&&(i.fragment=encodeURI(decodeURIComponent(i.fragment)))),r&&r.parse&&r.parse(i,A)}else i.error=i.error||"URI can not be parsed.";return i}var tx={SCHEMES:KbA,normalize:UbA,resolve:JbA,resolveComponent:z$,equal:YbA,serialize:Gl,parse:T0};rD.exports=tx;rD.exports.default=tx;rD.exports.fastUri=tx});var q$=He(ix=>{"use strict";Object.defineProperty(ix,"__esModule",{value:!0});var j$=P$();j$.code='require("ajv/dist/runtime/uri").default';ix.default=j$});var tAA=He(Es=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0});Es.CodeGen=Es.Name=Es.nil=Es.stringify=Es.str=Es._=Es.KeywordCxt=void 0;var HbA=k4();Object.defineProperty(Es,"KeywordCxt",{enumerable:!0,get:function(){return HbA.KeywordCxt}});var ME=Pi();Object.defineProperty(Es,"_",{enumerable:!0,get:function(){return ME._}});Object.defineProperty(Es,"str",{enumerable:!0,get:function(){return ME.str}});Object.defineProperty(Es,"stringify",{enumerable:!0,get:function(){return ME.stringify}});Object.defineProperty(Es,"nil",{enumerable:!0,get:function(){return ME.nil}});Object.defineProperty(Es,"Name",{enumerable:!0,get:function(){return ME.Name}});Object.defineProperty(Es,"CodeGen",{enumerable:!0,get:function(){return ME.CodeGen}});var ObA=AD(),$$=S4(),zbA=LL(),L4=tD(),PbA=Pi(),x4=v4(),sD=y4(),ox=wn(),V$=N$(),jbA=q$(),AAA=(t,e)=>new RegExp(t,e);AAA.code="new RegExp";var qbA=["removeAdditional","useDefaults","coerceTypes"],VbA=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),ZbA={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},WbA={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Z$=200;function XbA(t){var e,A,i,n,o,r,s,a,c,g,I,C,d,B,E,u,h,w,x,R,D,G,J,z,K;let O=t.strict,V=(e=t.code)===null||e===void 0?void 0:e.optimize,j=V===!0||V===void 0?1:V||0,dA=(i=(A=t.code)===null||A===void 0?void 0:A.regExp)!==null&&i!==void 0?i:AAA,fA=(n=t.uriResolver)!==null&&n!==void 0?n:jbA.default;return{strictSchema:(r=(o=t.strictSchema)!==null&&o!==void 0?o:O)!==null&&r!==void 0?r:!0,strictNumbers:(a=(s=t.strictNumbers)!==null&&s!==void 0?s:O)!==null&&a!==void 0?a:!0,strictTypes:(g=(c=t.strictTypes)!==null&&c!==void 0?c:O)!==null&&g!==void 0?g:"log",strictTuples:(C=(I=t.strictTuples)!==null&&I!==void 0?I:O)!==null&&C!==void 0?C:"log",strictRequired:(B=(d=t.strictRequired)!==null&&d!==void 0?d:O)!==null&&B!==void 0?B:!1,code:t.code?Fe(sA({},t.code),{optimize:j,regExp:dA}):{optimize:j,regExp:dA},loopRequired:(E=t.loopRequired)!==null&&E!==void 0?E:Z$,loopEnum:(u=t.loopEnum)!==null&&u!==void 0?u:Z$,meta:(h=t.meta)!==null&&h!==void 0?h:!0,messages:(w=t.messages)!==null&&w!==void 0?w:!0,inlineRefs:(x=t.inlineRefs)!==null&&x!==void 0?x:!0,schemaId:(R=t.schemaId)!==null&&R!==void 0?R:"$id",addUsedSchema:(D=t.addUsedSchema)!==null&&D!==void 0?D:!0,validateSchema:(G=t.validateSchema)!==null&&G!==void 0?G:!0,validateFormats:(J=t.validateFormats)!==null&&J!==void 0?J:!0,unicodeRegExp:(z=t.unicodeRegExp)!==null&&z!==void 0?z:!0,int32range:(K=t.int32range)!==null&&K!==void 0?K:!0,uriResolver:fA}}var N4=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts=sA(sA({},e),XbA(e));let{es5:A,lines:i}=this.opts.code;this.scope=new PbA.ValueScope({scope:{},prefixes:VbA,es5:A,lines:i}),this.logger=nkA(e.logger);let n=e.validateFormats;e.validateFormats=!1,this.RULES=(0,zbA.getRules)(),W$.call(this,ZbA,e,"NOT SUPPORTED"),W$.call(this,WbA,e,"DEPRECATED","warn"),this._metaOpts=tkA.call(this),e.formats&&AkA.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&ekA.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),$bA.call(this),e.validateFormats=n}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:A,schemaId:i}=this.opts,n=V$;i==="id"&&(n=sA({},V$),n.id=n.$id,delete n.$id),A&&e&&this.addMetaSchema(n,n[i],!1)}defaultMeta(){let{meta:e,schemaId:A}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[A]||e:void 0}validate(e,A){let i;if(typeof e=="string"){if(i=this.getSchema(e),!i)throw new Error(`no schema with key or ref "${e}"`)}else i=this.compile(e);let n=i(A);return"$async"in i||(this.errors=i.errors),n}compile(e,A){let i=this._addSchema(e,A);return i.validate||this._compileSchemaEnv(i)}compileAsync(e,A){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:i}=this.opts;return n.call(this,e,A);function n(g,I){return Ni(this,null,function*(){yield o.call(this,g.$schema);let C=this._addSchema(g,I);return C.validate||r.call(this,C)})}function o(g){return Ni(this,null,function*(){g&&!this.getSchema(g)&&(yield n.call(this,{$ref:g},!0))})}function r(g){return Ni(this,null,function*(){try{return this._compileSchemaEnv(g)}catch(I){if(!(I instanceof $$.default))throw I;return s.call(this,I),yield a.call(this,I.missingSchema),r.call(this,g)}})}function s({missingSchema:g,missingRef:I}){if(this.refs[g])throw new Error(`AnySchema ${g} is loaded but ${I} cannot be resolved`)}function a(g){return Ni(this,null,function*(){let I=yield c.call(this,g);this.refs[g]||(yield o.call(this,I.$schema)),this.refs[g]||this.addSchema(I,g,A)})}function c(g){return Ni(this,null,function*(){let I=this._loading[g];if(I)return I;try{return yield this._loading[g]=i(g)}finally{delete this._loading[g]}})}}addSchema(e,A,i,n=this.opts.validateSchema){if(Array.isArray(e)){for(let r of e)this.addSchema(r,void 0,i,n);return this}let o;if(typeof e=="object"){let{schemaId:r}=this.opts;if(o=e[r],o!==void 0&&typeof o!="string")throw new Error(`schema ${r} must be string`)}return A=(0,x4.normalizeId)(A||o),this._checkUnique(A),this.schemas[A]=this._addSchema(e,i,A,n,!0),this}addMetaSchema(e,A,i=this.opts.validateSchema){return this.addSchema(e,A,!0,i),this}validateSchema(e,A){if(typeof e=="boolean")return!0;let i;if(i=e.$schema,i!==void 0&&typeof i!="string")throw new Error("$schema must be a string");if(i=i||this.opts.defaultMeta||this.defaultMeta(),!i)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let n=this.validate(i,e);if(!n&&A){let o="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(o);else throw new Error(o)}return n}getSchema(e){let A;for(;typeof(A=X$.call(this,e))=="string";)e=A;if(A===void 0){let{schemaId:i}=this.opts,n=new L4.SchemaEnv({schema:{},schemaId:i});if(A=L4.resolveSchema.call(this,n,e),!A)return;this.refs[e]=A}return A.validate||this._compileSchemaEnv(A)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let A=X$.call(this,e);return typeof A=="object"&&this._cache.delete(A.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let A=e;this._cache.delete(A);let i=e[this.opts.schemaId];return i&&(i=(0,x4.normalizeId)(i),delete this.schemas[i],delete this.refs[i]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let A of e)this.addKeyword(A);return this}addKeyword(e,A){let i;if(typeof e=="string")i=e,typeof A=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),A.keyword=i);else if(typeof e=="object"&&A===void 0){if(A=e,i=A.keyword,Array.isArray(i)&&!i.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(rkA.call(this,i,A),!A)return(0,ox.eachItem)(i,o=>nx.call(this,o)),this;akA.call(this,A);let n=Fe(sA({},A),{type:(0,sD.getJSONTypes)(A.type),schemaType:(0,sD.getJSONTypes)(A.schemaType)});return(0,ox.eachItem)(i,n.type.length===0?o=>nx.call(this,o,n):o=>n.type.forEach(r=>nx.call(this,o,n,r))),this}getKeyword(e){let A=this.RULES.all[e];return typeof A=="object"?A.definition:!!A}removeKeyword(e){let{RULES:A}=this;delete A.keywords[e],delete A.all[e];for(let i of A.rules){let n=i.rules.findIndex(o=>o.keyword===e);n>=0&&i.rules.splice(n,1)}return this}addFormat(e,A){return typeof A=="string"&&(A=new RegExp(A)),this.formats[e]=A,this}errorsText(e=this.errors,{separator:A=", ",dataVar:i="data"}={}){return!e||e.length===0?"No errors":e.map(n=>`${i}${n.instancePath} ${n.message}`).reduce((n,o)=>n+A+o)}$dataMetaSchema(e,A){let i=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let n of A){let o=n.split("/").slice(1),r=e;for(let s of o)r=r[s];for(let s in i){let a=i[s];if(typeof a!="object")continue;let{$data:c}=a.definition,g=r[s];c&&g&&(r[s]=eAA(g))}}return e}_removeAllSchemas(e,A){for(let i in e){let n=e[i];(!A||A.test(i))&&(typeof n=="string"?delete e[i]:n&&!n.meta&&(this._cache.delete(n.schema),delete e[i]))}}_addSchema(e,A,i,n=this.opts.validateSchema,o=this.opts.addUsedSchema){let r,{schemaId:s}=this.opts;if(typeof e=="object")r=e[s];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let a=this._cache.get(e);if(a!==void 0)return a;i=(0,x4.normalizeId)(r||i);let c=x4.getSchemaRefs.call(this,e,i);return a=new L4.SchemaEnv({schema:e,schemaId:s,meta:A,baseId:i,localRefs:c}),this._cache.set(a.schema,a),o&&!i.startsWith("#")&&(i&&this._checkUnique(i),this.refs[i]=a),n&&this.validateSchema(e,!0),a}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):L4.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let A=this.opts;this.opts=this._metaOpts;try{L4.compileSchema.call(this,e)}finally{this.opts=A}}};N4.ValidationError=ObA.default;N4.MissingRefError=$$.default;Es.default=N4;function W$(t,e,A,i="error"){for(let n in t){let o=n;o in e&&this.logger[i](`${A}: option ${n}. ${t[o]}`)}}function X$(t){return t=(0,x4.normalizeId)(t),this.schemas[t]||this.refs[t]}function $bA(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function AkA(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function ekA(t){if(Array.isArray(t)){this.addVocabulary(t);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in t){let A=t[e];A.keyword||(A.keyword=e),this.addKeyword(A)}}function tkA(){let t=sA({},this.opts);for(let e of qbA)delete t[e];return t}var ikA={log(){},warn(){},error(){}};function nkA(t){if(t===!1)return ikA;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var okA=/^[a-z_$][a-z0-9_$:-]*$/i;function rkA(t,e){let{RULES:A}=this;if((0,ox.eachItem)(t,i=>{if(A.keywords[i])throw new Error(`Keyword ${i} is already defined`);if(!okA.test(i))throw new Error(`Keyword ${i} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function nx(t,e,A){var i;let n=e?.post;if(A&&n)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:o}=this,r=n?o.post:o.rules.find(({type:a})=>a===A);if(r||(r={type:A,rules:[]},o.rules.push(r)),o.keywords[t]=!0,!e)return;let s={keyword:t,definition:Fe(sA({},e),{type:(0,sD.getJSONTypes)(e.type),schemaType:(0,sD.getJSONTypes)(e.schemaType)})};e.before?skA.call(this,r,s,e.before):r.rules.push(s),o.all[t]=s,(i=e.implements)===null||i===void 0||i.forEach(a=>this.addKeyword(a))}function skA(t,e,A){let i=t.rules.findIndex(n=>n.keyword===A);i>=0?t.rules.splice(i,0,e):(t.rules.push(e),this.logger.warn(`rule ${A} is not defined`))}function akA(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=eAA(e)),t.validateSchema=this.compile(e,!0))}var ckA={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function eAA(t){return{anyOf:[t,ckA]}}});var iAA=He(rx=>{"use strict";Object.defineProperty(rx,"__esModule",{value:!0});var gkA={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};rx.default=gkA});var sAA=He(DC=>{"use strict";Object.defineProperty(DC,"__esModule",{value:!0});DC.callRef=DC.getValidate=void 0;var lkA=S4(),nAA=Oc(),xa=Pi(),bE=J0(),oAA=tD(),aD=wn(),IkA={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:A,it:i}=t,{baseId:n,schemaEnv:o,validateName:r,opts:s,self:a}=i,{root:c}=o;if((A==="#"||A==="#/")&&n===c.baseId)return I();let g=oAA.resolveRef.call(a,c,n,A);if(g===void 0)throw new lkA.default(i.opts.uriResolver,n,A);if(g instanceof oAA.SchemaEnv)return C(g);return d(g);function I(){if(o===c)return cD(t,r,o,o.$async);let B=e.scopeValue("root",{ref:c});return cD(t,(0,xa._)`${B}.validate`,c,c.$async)}function C(B){let E=rAA(t,B);cD(t,E,B,B.$async)}function d(B){let E=e.scopeValue("schema",s.code.source===!0?{ref:B,code:(0,xa.stringify)(B)}:{ref:B}),u=e.name("valid"),h=t.subschema({schema:B,dataTypes:[],schemaPath:xa.nil,topSchemaRef:E,errSchemaPath:A},u);t.mergeEvaluated(h),t.ok(u)}}};function rAA(t,e){let{gen:A}=t;return e.validate?A.scopeValue("validate",{ref:e.validate}):(0,xa._)`${A.scopeValue("wrapper",{ref:e})}.validate`}DC.getValidate=rAA;function cD(t,e,A,i){let{gen:n,it:o}=t,{allErrors:r,schemaEnv:s,opts:a}=o,c=a.passContext?bE.default.this:xa.nil;i?g():I();function g(){if(!s.$async)throw new Error("async schema referenced by sync schema");let B=n.let("valid");n.try(()=>{n.code((0,xa._)`await ${(0,nAA.callValidateCode)(t,e,c)}`),d(e),r||n.assign(B,!0)},E=>{n.if((0,xa._)`!(${E} instanceof ${o.ValidationError})`,()=>n.throw(E)),C(E),r||n.assign(B,!1)}),t.ok(B)}function I(){t.result((0,nAA.callValidateCode)(t,e,c),()=>d(e),()=>C(e))}function C(B){let E=(0,xa._)`${B}.errors`;n.assign(bE.default.vErrors,(0,xa._)`${bE.default.vErrors} === null ? ${E} : ${bE.default.vErrors}.concat(${E})`),n.assign(bE.default.errors,(0,xa._)`${bE.default.vErrors}.length`)}function d(B){var E;if(!o.opts.unevaluated)return;let u=(E=A?.validate)===null||E===void 0?void 0:E.evaluated;if(o.props!==!0)if(u&&!u.dynamicProps)u.props!==void 0&&(o.props=aD.mergeEvaluated.props(n,u.props,o.props));else{let h=n.var("props",(0,xa._)`${B}.evaluated.props`);o.props=aD.mergeEvaluated.props(n,h,o.props,xa.Name)}if(o.items!==!0)if(u&&!u.dynamicItems)u.items!==void 0&&(o.items=aD.mergeEvaluated.items(n,u.items,o.items));else{let h=n.var("items",(0,xa._)`${B}.evaluated.items`);o.items=aD.mergeEvaluated.items(n,h,o.items,xa.Name)}}}DC.callRef=cD;DC.default=IkA});var aAA=He(sx=>{"use strict";Object.defineProperty(sx,"__esModule",{value:!0});var CkA=iAA(),dkA=sAA(),BkA=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",CkA.default,dkA.default];sx.default=BkA});var cAA=He(ax=>{"use strict";Object.defineProperty(ax,"__esModule",{value:!0});var gD=Pi(),b1=gD.operators,lD={maximum:{okStr:"<=",ok:b1.LTE,fail:b1.GT},minimum:{okStr:">=",ok:b1.GTE,fail:b1.LT},exclusiveMaximum:{okStr:"<",ok:b1.LT,fail:b1.GTE},exclusiveMinimum:{okStr:">",ok:b1.GT,fail:b1.LTE}},EkA={message:({keyword:t,schemaCode:e})=>(0,gD.str)`must be ${lD[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,gD._)`{comparison: ${lD[t].okStr}, limit: ${e}}`},QkA={keyword:Object.keys(lD),type:"number",schemaType:"number",$data:!0,error:EkA,code(t){let{keyword:e,data:A,schemaCode:i}=t;t.fail$data((0,gD._)`${A} ${lD[e].fail} ${i} || isNaN(${A})`)}};ax.default=QkA});var gAA=He(cx=>{"use strict";Object.defineProperty(cx,"__esModule",{value:!0});var F4=Pi(),ukA={message:({schemaCode:t})=>(0,F4.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,F4._)`{multipleOf: ${t}}`},hkA={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:ukA,code(t){let{gen:e,data:A,schemaCode:i,it:n}=t,o=n.opts.multipleOfPrecision,r=e.let("res"),s=o?(0,F4._)`Math.abs(Math.round(${r}) - ${r}) > 1e-${o}`:(0,F4._)`${r} !== parseInt(${r})`;t.fail$data((0,F4._)`(${i} === 0 || (${r} = ${A}/${i}, ${s}))`)}};cx.default=hkA});var IAA=He(gx=>{"use strict";Object.defineProperty(gx,"__esModule",{value:!0});function lAA(t){let e=t.length,A=0,i=0,n;for(;i=55296&&n<=56319&&i{"use strict";Object.defineProperty(lx,"__esModule",{value:!0});var wC=Pi(),fkA=wn(),mkA=IAA(),pkA={message({keyword:t,schemaCode:e}){let A=t==="maxLength"?"more":"fewer";return(0,wC.str)`must NOT have ${A} than ${e} characters`},params:({schemaCode:t})=>(0,wC._)`{limit: ${t}}`},DkA={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:pkA,code(t){let{keyword:e,data:A,schemaCode:i,it:n}=t,o=e==="maxLength"?wC.operators.GT:wC.operators.LT,r=n.opts.unicode===!1?(0,wC._)`${A}.length`:(0,wC._)`${(0,fkA.useFunc)(t.gen,mkA.default)}(${A})`;t.fail$data((0,wC._)`${r} ${o} ${i}`)}};lx.default=DkA});var dAA=He(Ix=>{"use strict";Object.defineProperty(Ix,"__esModule",{value:!0});var wkA=Oc(),ID=Pi(),ykA={message:({schemaCode:t})=>(0,ID.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,ID._)`{pattern: ${t}}`},vkA={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:ykA,code(t){let{data:e,$data:A,schema:i,schemaCode:n,it:o}=t,r=o.opts.unicodeRegExp?"u":"",s=A?(0,ID._)`(new RegExp(${n}, ${r}))`:(0,wkA.usePattern)(t,i);t.fail$data((0,ID._)`!${s}.test(${e})`)}};Ix.default=vkA});var BAA=He(Cx=>{"use strict";Object.defineProperty(Cx,"__esModule",{value:!0});var _4=Pi(),MkA={message({keyword:t,schemaCode:e}){let A=t==="maxProperties"?"more":"fewer";return(0,_4.str)`must NOT have ${A} than ${e} properties`},params:({schemaCode:t})=>(0,_4._)`{limit: ${t}}`},bkA={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:MkA,code(t){let{keyword:e,data:A,schemaCode:i}=t,n=e==="maxProperties"?_4.operators.GT:_4.operators.LT;t.fail$data((0,_4._)`Object.keys(${A}).length ${n} ${i}`)}};Cx.default=bkA});var EAA=He(dx=>{"use strict";Object.defineProperty(dx,"__esModule",{value:!0});var G4=Oc(),K4=Pi(),kkA=wn(),SkA={message:({params:{missingProperty:t}})=>(0,K4.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,K4._)`{missingProperty: ${t}}`},RkA={keyword:"required",type:"object",schemaType:"array",$data:!0,error:SkA,code(t){let{gen:e,schema:A,schemaCode:i,data:n,$data:o,it:r}=t,{opts:s}=r;if(!o&&A.length===0)return;let a=A.length>=s.loopRequired;if(r.allErrors?c():g(),s.strictRequired){let d=t.parentSchema.properties,{definedProperties:B}=t.it;for(let E of A)if(d?.[E]===void 0&&!B.has(E)){let u=r.schemaEnv.baseId+r.errSchemaPath,h=`required property "${E}" is not defined at "${u}" (strictRequired)`;(0,kkA.checkStrictMode)(r,h,r.opts.strictRequired)}}function c(){if(a||o)t.block$data(K4.nil,I);else for(let d of A)(0,G4.checkReportMissingProp)(t,d)}function g(){let d=e.let("missing");if(a||o){let B=e.let("valid",!0);t.block$data(B,()=>C(d,B)),t.ok(B)}else e.if((0,G4.checkMissingProp)(t,A,d)),(0,G4.reportMissingProp)(t,d),e.else()}function I(){e.forOf("prop",i,d=>{t.setParams({missingProperty:d}),e.if((0,G4.noPropertyInData)(e,n,d,s.ownProperties),()=>t.error())})}function C(d,B){t.setParams({missingProperty:d}),e.forOf(d,i,()=>{e.assign(B,(0,G4.propertyInData)(e,n,d,s.ownProperties)),e.if((0,K4.not)(B),()=>{t.error(),e.break()})},K4.nil)}}};dx.default=RkA});var QAA=He(Bx=>{"use strict";Object.defineProperty(Bx,"__esModule",{value:!0});var U4=Pi(),LkA={message({keyword:t,schemaCode:e}){let A=t==="maxItems"?"more":"fewer";return(0,U4.str)`must NOT have ${A} than ${e} items`},params:({schemaCode:t})=>(0,U4._)`{limit: ${t}}`},xkA={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:LkA,code(t){let{keyword:e,data:A,schemaCode:i}=t,n=e==="maxItems"?U4.operators.GT:U4.operators.LT;t.fail$data((0,U4._)`${A}.length ${n} ${i}`)}};Bx.default=xkA});var CD=He(Ex=>{"use strict";Object.defineProperty(Ex,"__esModule",{value:!0});var uAA=JL();uAA.code='require("ajv/dist/runtime/equal").default';Ex.default=uAA});var hAA=He(ux=>{"use strict";Object.defineProperty(ux,"__esModule",{value:!0});var Qx=y4(),Qs=Pi(),NkA=wn(),FkA=CD(),_kA={message:({params:{i:t,j:e}})=>(0,Qs.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,Qs._)`{i: ${t}, j: ${e}}`},GkA={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:_kA,code(t){let{gen:e,data:A,$data:i,schema:n,parentSchema:o,schemaCode:r,it:s}=t;if(!i&&!n)return;let a=e.let("valid"),c=o.items?(0,Qx.getSchemaTypes)(o.items):[];t.block$data(a,g,(0,Qs._)`${r} === false`),t.ok(a);function g(){let B=e.let("i",(0,Qs._)`${A}.length`),E=e.let("j");t.setParams({i:B,j:E}),e.assign(a,!0),e.if((0,Qs._)`${B} > 1`,()=>(I()?C:d)(B,E))}function I(){return c.length>0&&!c.some(B=>B==="object"||B==="array")}function C(B,E){let u=e.name("item"),h=(0,Qx.checkDataTypes)(c,u,s.opts.strictNumbers,Qx.DataType.Wrong),w=e.const("indices",(0,Qs._)`{}`);e.for((0,Qs._)`;${B}--;`,()=>{e.let(u,(0,Qs._)`${A}[${B}]`),e.if(h,(0,Qs._)`continue`),c.length>1&&e.if((0,Qs._)`typeof ${u} == "string"`,(0,Qs._)`${u} += "_"`),e.if((0,Qs._)`typeof ${w}[${u}] == "number"`,()=>{e.assign(E,(0,Qs._)`${w}[${u}]`),t.error(),e.assign(a,!1).break()}).code((0,Qs._)`${w}[${u}] = ${B}`)})}function d(B,E){let u=(0,NkA.useFunc)(e,FkA.default),h=e.name("outer");e.label(h).for((0,Qs._)`;${B}--;`,()=>e.for((0,Qs._)`${E} = ${B}; ${E}--;`,()=>e.if((0,Qs._)`${u}(${A}[${B}], ${A}[${E}])`,()=>{t.error(),e.assign(a,!1).break(h)})))}}};ux.default=GkA});var fAA=He(fx=>{"use strict";Object.defineProperty(fx,"__esModule",{value:!0});var hx=Pi(),KkA=wn(),UkA=CD(),JkA={message:"must be equal to constant",params:({schemaCode:t})=>(0,hx._)`{allowedValue: ${t}}`},YkA={keyword:"const",$data:!0,error:JkA,code(t){let{gen:e,data:A,$data:i,schemaCode:n,schema:o}=t;i||o&&typeof o=="object"?t.fail$data((0,hx._)`!${(0,KkA.useFunc)(e,UkA.default)}(${A}, ${n})`):t.fail((0,hx._)`${o} !== ${A}`)}};fx.default=YkA});var mAA=He(mx=>{"use strict";Object.defineProperty(mx,"__esModule",{value:!0});var J4=Pi(),TkA=wn(),HkA=CD(),OkA={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,J4._)`{allowedValues: ${t}}`},zkA={keyword:"enum",schemaType:"array",$data:!0,error:OkA,code(t){let{gen:e,data:A,$data:i,schema:n,schemaCode:o,it:r}=t;if(!i&&n.length===0)throw new Error("enum must have non-empty array");let s=n.length>=r.opts.loopEnum,a,c=()=>a??(a=(0,TkA.useFunc)(e,HkA.default)),g;if(s||i)g=e.let("valid"),t.block$data(g,I);else{if(!Array.isArray(n))throw new Error("ajv implementation error");let d=e.const("vSchema",o);g=(0,J4.or)(...n.map((B,E)=>C(d,E)))}t.pass(g);function I(){e.assign(g,!1),e.forOf("v",o,d=>e.if((0,J4._)`${c()}(${A}, ${d})`,()=>e.assign(g,!0).break()))}function C(d,B){let E=n[B];return typeof E=="object"&&E!==null?(0,J4._)`${c()}(${A}, ${d}[${B}])`:(0,J4._)`${A} === ${E}`}}};mx.default=zkA});var pAA=He(px=>{"use strict";Object.defineProperty(px,"__esModule",{value:!0});var PkA=cAA(),jkA=gAA(),qkA=CAA(),VkA=dAA(),ZkA=BAA(),WkA=EAA(),XkA=QAA(),$kA=hAA(),ASA=fAA(),eSA=mAA(),tSA=[PkA.default,jkA.default,qkA.default,VkA.default,ZkA.default,WkA.default,XkA.default,$kA.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},ASA.default,eSA.default];px.default=tSA});var wx=He(Y4=>{"use strict";Object.defineProperty(Y4,"__esModule",{value:!0});Y4.validateAdditionalItems=void 0;var yC=Pi(),Dx=wn(),iSA={message:({params:{len:t}})=>(0,yC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,yC._)`{limit: ${t}}`},nSA={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:iSA,code(t){let{parentSchema:e,it:A}=t,{items:i}=e;if(!Array.isArray(i)){(0,Dx.checkStrictMode)(A,'"additionalItems" is ignored when "items" is not an array of schemas');return}DAA(t,i)}};function DAA(t,e){let{gen:A,schema:i,data:n,keyword:o,it:r}=t;r.items=!0;let s=A.const("len",(0,yC._)`${n}.length`);if(i===!1)t.setParams({len:e.length}),t.pass((0,yC._)`${s} <= ${e.length}`);else if(typeof i=="object"&&!(0,Dx.alwaysValidSchema)(r,i)){let c=A.var("valid",(0,yC._)`${s} <= ${e.length}`);A.if((0,yC.not)(c),()=>a(c)),t.ok(c)}function a(c){A.forRange("i",e.length,s,g=>{t.subschema({keyword:o,dataProp:g,dataPropType:Dx.Type.Num},c),r.allErrors||A.if((0,yC.not)(c),()=>A.break())})}}Y4.validateAdditionalItems=DAA;Y4.default=nSA});var yx=He(T4=>{"use strict";Object.defineProperty(T4,"__esModule",{value:!0});T4.validateTuple=void 0;var wAA=Pi(),dD=wn(),oSA=Oc(),rSA={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:A}=t;if(Array.isArray(e))return yAA(t,"additionalItems",e);A.items=!0,!(0,dD.alwaysValidSchema)(A,e)&&t.ok((0,oSA.validateArray)(t))}};function yAA(t,e,A=t.schema){let{gen:i,parentSchema:n,data:o,keyword:r,it:s}=t;g(n),s.opts.unevaluated&&A.length&&s.items!==!0&&(s.items=dD.mergeEvaluated.items(i,A.length,s.items));let a=i.name("valid"),c=i.const("len",(0,wAA._)`${o}.length`);A.forEach((I,C)=>{(0,dD.alwaysValidSchema)(s,I)||(i.if((0,wAA._)`${c} > ${C}`,()=>t.subschema({keyword:r,schemaProp:C,dataProp:C},a)),t.ok(a))});function g(I){let{opts:C,errSchemaPath:d}=s,B=A.length,E=B===I.minItems&&(B===I.maxItems||I[e]===!1);if(C.strictTuples&&!E){let u=`"${r}" is ${B}-tuple, but minItems or maxItems/${e} are not specified or different at path "${d}"`;(0,dD.checkStrictMode)(s,u,C.strictTuples)}}}T4.validateTuple=yAA;T4.default=rSA});var vAA=He(vx=>{"use strict";Object.defineProperty(vx,"__esModule",{value:!0});var sSA=yx(),aSA={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,sSA.validateTuple)(t,"items")};vx.default=aSA});var bAA=He(Mx=>{"use strict";Object.defineProperty(Mx,"__esModule",{value:!0});var MAA=Pi(),cSA=wn(),gSA=Oc(),lSA=wx(),ISA={message:({params:{len:t}})=>(0,MAA.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,MAA._)`{limit: ${t}}`},CSA={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:ISA,code(t){let{schema:e,parentSchema:A,it:i}=t,{prefixItems:n}=A;i.items=!0,!(0,cSA.alwaysValidSchema)(i,e)&&(n?(0,lSA.validateAdditionalItems)(t,n):t.ok((0,gSA.validateArray)(t)))}};Mx.default=CSA});var kAA=He(bx=>{"use strict";Object.defineProperty(bx,"__esModule",{value:!0});var Pc=Pi(),BD=wn(),dSA={message:({params:{min:t,max:e}})=>e===void 0?(0,Pc.str)`must contain at least ${t} valid item(s)`:(0,Pc.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,Pc._)`{minContains: ${t}}`:(0,Pc._)`{minContains: ${t}, maxContains: ${e}}`},BSA={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:dSA,code(t){let{gen:e,schema:A,parentSchema:i,data:n,it:o}=t,r,s,{minContains:a,maxContains:c}=i;o.opts.next?(r=a===void 0?1:a,s=c):r=1;let g=e.const("len",(0,Pc._)`${n}.length`);if(t.setParams({min:r,max:s}),s===void 0&&r===0){(0,BD.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&r>s){(0,BD.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,BD.alwaysValidSchema)(o,A)){let E=(0,Pc._)`${g} >= ${r}`;s!==void 0&&(E=(0,Pc._)`${E} && ${g} <= ${s}`),t.pass(E);return}o.items=!0;let I=e.name("valid");s===void 0&&r===1?d(I,()=>e.if(I,()=>e.break())):r===0?(e.let(I,!0),s!==void 0&&e.if((0,Pc._)`${n}.length > 0`,C)):(e.let(I,!1),C()),t.result(I,()=>t.reset());function C(){let E=e.name("_valid"),u=e.let("count",0);d(E,()=>e.if(E,()=>B(u)))}function d(E,u){e.forRange("i",0,g,h=>{t.subschema({keyword:"contains",dataProp:h,dataPropType:BD.Type.Num,compositeRule:!0},E),u()})}function B(E){e.code((0,Pc._)`${E}++`),s===void 0?e.if((0,Pc._)`${E} >= ${r}`,()=>e.assign(I,!0).break()):(e.if((0,Pc._)`${E} > ${s}`,()=>e.assign(I,!1).break()),r===1?e.assign(I,!0):e.if((0,Pc._)`${E} >= ${r}`,()=>e.assign(I,!0)))}}};bx.default=BSA});var LAA=He(Kl=>{"use strict";Object.defineProperty(Kl,"__esModule",{value:!0});Kl.validateSchemaDeps=Kl.validatePropertyDeps=Kl.error=void 0;var kx=Pi(),ESA=wn(),H4=Oc();Kl.error={message:({params:{property:t,depsCount:e,deps:A}})=>{let i=e===1?"property":"properties";return(0,kx.str)`must have ${i} ${A} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:A,missingProperty:i}})=>(0,kx._)`{property: ${t}, + missingProperty: ${i}, + depsCount: ${e}, + deps: ${A}}`};var QSA={keyword:"dependencies",type:"object",schemaType:"object",error:Kl.error,code(t){let[e,A]=uSA(t);SAA(t,e),RAA(t,A)}};function uSA({schema:t}){let e={},A={};for(let i in t){if(i==="__proto__")continue;let n=Array.isArray(t[i])?e:A;n[i]=t[i]}return[e,A]}function SAA(t,e=t.schema){let{gen:A,data:i,it:n}=t;if(Object.keys(e).length===0)return;let o=A.let("missing");for(let r in e){let s=e[r];if(s.length===0)continue;let a=(0,H4.propertyInData)(A,i,r,n.opts.ownProperties);t.setParams({property:r,depsCount:s.length,deps:s.join(", ")}),n.allErrors?A.if(a,()=>{for(let c of s)(0,H4.checkReportMissingProp)(t,c)}):(A.if((0,kx._)`${a} && (${(0,H4.checkMissingProp)(t,s,o)})`),(0,H4.reportMissingProp)(t,o),A.else())}}Kl.validatePropertyDeps=SAA;function RAA(t,e=t.schema){let{gen:A,data:i,keyword:n,it:o}=t,r=A.name("valid");for(let s in e)(0,ESA.alwaysValidSchema)(o,e[s])||(A.if((0,H4.propertyInData)(A,i,s,o.opts.ownProperties),()=>{let a=t.subschema({keyword:n,schemaProp:s},r);t.mergeValidEvaluated(a,r)},()=>A.var(r,!0)),t.ok(r))}Kl.validateSchemaDeps=RAA;Kl.default=QSA});var NAA=He(Sx=>{"use strict";Object.defineProperty(Sx,"__esModule",{value:!0});var xAA=Pi(),hSA=wn(),fSA={message:"property name must be valid",params:({params:t})=>(0,xAA._)`{propertyName: ${t.propertyName}}`},mSA={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:fSA,code(t){let{gen:e,schema:A,data:i,it:n}=t;if((0,hSA.alwaysValidSchema)(n,A))return;let o=e.name("valid");e.forIn("key",i,r=>{t.setParams({propertyName:r}),t.subschema({keyword:"propertyNames",data:r,dataTypes:["string"],propertyName:r,compositeRule:!0},o),e.if((0,xAA.not)(o),()=>{t.error(!0),n.allErrors||e.break()})}),t.ok(o)}};Sx.default=mSA});var Lx=He(Rx=>{"use strict";Object.defineProperty(Rx,"__esModule",{value:!0});var ED=Oc(),Lg=Pi(),pSA=J0(),QD=wn(),DSA={message:"must NOT have additional properties",params:({params:t})=>(0,Lg._)`{additionalProperty: ${t.additionalProperty}}`},wSA={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:DSA,code(t){let{gen:e,schema:A,parentSchema:i,data:n,errsCount:o,it:r}=t;if(!o)throw new Error("ajv implementation error");let{allErrors:s,opts:a}=r;if(r.props=!0,a.removeAdditional!=="all"&&(0,QD.alwaysValidSchema)(r,A))return;let c=(0,ED.allSchemaProperties)(i.properties),g=(0,ED.allSchemaProperties)(i.patternProperties);I(),t.ok((0,Lg._)`${o} === ${pSA.default.errors}`);function I(){e.forIn("key",n,u=>{!c.length&&!g.length?B(u):e.if(C(u),()=>B(u))})}function C(u){let h;if(c.length>8){let w=(0,QD.schemaRefOrVal)(r,i.properties,"properties");h=(0,ED.isOwnProperty)(e,w,u)}else c.length?h=(0,Lg.or)(...c.map(w=>(0,Lg._)`${u} === ${w}`)):h=Lg.nil;return g.length&&(h=(0,Lg.or)(h,...g.map(w=>(0,Lg._)`${(0,ED.usePattern)(t,w)}.test(${u})`))),(0,Lg.not)(h)}function d(u){e.code((0,Lg._)`delete ${n}[${u}]`)}function B(u){if(a.removeAdditional==="all"||a.removeAdditional&&A===!1){d(u);return}if(A===!1){t.setParams({additionalProperty:u}),t.error(),s||e.break();return}if(typeof A=="object"&&!(0,QD.alwaysValidSchema)(r,A)){let h=e.name("valid");a.removeAdditional==="failing"?(E(u,h,!1),e.if((0,Lg.not)(h),()=>{t.reset(),d(u)})):(E(u,h),s||e.if((0,Lg.not)(h),()=>e.break()))}}function E(u,h,w){let x={keyword:"additionalProperties",dataProp:u,dataPropType:QD.Type.Str};w===!1&&Object.assign(x,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(x,h)}}};Rx.default=wSA});var GAA=He(Nx=>{"use strict";Object.defineProperty(Nx,"__esModule",{value:!0});var ySA=k4(),FAA=Oc(),xx=wn(),_AA=Lx(),vSA={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:A,parentSchema:i,data:n,it:o}=t;o.opts.removeAdditional==="all"&&i.additionalProperties===void 0&&_AA.default.code(new ySA.KeywordCxt(o,_AA.default,"additionalProperties"));let r=(0,FAA.allSchemaProperties)(A);for(let I of r)o.definedProperties.add(I);o.opts.unevaluated&&r.length&&o.props!==!0&&(o.props=xx.mergeEvaluated.props(e,(0,xx.toHash)(r),o.props));let s=r.filter(I=>!(0,xx.alwaysValidSchema)(o,A[I]));if(s.length===0)return;let a=e.name("valid");for(let I of s)c(I)?g(I):(e.if((0,FAA.propertyInData)(e,n,I,o.opts.ownProperties)),g(I),o.allErrors||e.else().var(a,!0),e.endIf()),t.it.definedProperties.add(I),t.ok(a);function c(I){return o.opts.useDefaults&&!o.compositeRule&&A[I].default!==void 0}function g(I){t.subschema({keyword:"properties",schemaProp:I,dataProp:I},a)}}};Nx.default=vSA});var YAA=He(Fx=>{"use strict";Object.defineProperty(Fx,"__esModule",{value:!0});var KAA=Oc(),uD=Pi(),UAA=wn(),JAA=wn(),MSA={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:A,data:i,parentSchema:n,it:o}=t,{opts:r}=o,s=(0,KAA.allSchemaProperties)(A),a=s.filter(E=>(0,UAA.alwaysValidSchema)(o,A[E]));if(s.length===0||a.length===s.length&&(!o.opts.unevaluated||o.props===!0))return;let c=r.strictSchema&&!r.allowMatchingProperties&&n.properties,g=e.name("valid");o.props!==!0&&!(o.props instanceof uD.Name)&&(o.props=(0,JAA.evaluatedPropsToName)(e,o.props));let{props:I}=o;C();function C(){for(let E of s)c&&d(E),o.allErrors?B(E):(e.var(g,!0),B(E),e.if(g))}function d(E){for(let u in c)new RegExp(E).test(u)&&(0,UAA.checkStrictMode)(o,`property ${u} matches pattern ${E} (use allowMatchingProperties)`)}function B(E){e.forIn("key",i,u=>{e.if((0,uD._)`${(0,KAA.usePattern)(t,E)}.test(${u})`,()=>{let h=a.includes(E);h||t.subschema({keyword:"patternProperties",schemaProp:E,dataProp:u,dataPropType:JAA.Type.Str},g),o.opts.unevaluated&&I!==!0?e.assign((0,uD._)`${I}[${u}]`,!0):!h&&!o.allErrors&&e.if((0,uD.not)(g),()=>e.break())})})}}};Fx.default=MSA});var TAA=He(_x=>{"use strict";Object.defineProperty(_x,"__esModule",{value:!0});var bSA=wn(),kSA={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:A,it:i}=t;if((0,bSA.alwaysValidSchema)(i,A)){t.fail();return}let n=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},n),t.failResult(n,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};_x.default=kSA});var HAA=He(Gx=>{"use strict";Object.defineProperty(Gx,"__esModule",{value:!0});var SSA=Oc(),RSA={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:SSA.validateUnion,error:{message:"must match a schema in anyOf"}};Gx.default=RSA});var OAA=He(Kx=>{"use strict";Object.defineProperty(Kx,"__esModule",{value:!0});var hD=Pi(),LSA=wn(),xSA={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,hD._)`{passingSchemas: ${t.passing}}`},NSA={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:xSA,code(t){let{gen:e,schema:A,parentSchema:i,it:n}=t;if(!Array.isArray(A))throw new Error("ajv implementation error");if(n.opts.discriminator&&i.discriminator)return;let o=A,r=e.let("valid",!1),s=e.let("passing",null),a=e.name("_valid");t.setParams({passing:s}),e.block(c),t.result(r,()=>t.reset(),()=>t.error(!0));function c(){o.forEach((g,I)=>{let C;(0,LSA.alwaysValidSchema)(n,g)?e.var(a,!0):C=t.subschema({keyword:"oneOf",schemaProp:I,compositeRule:!0},a),I>0&&e.if((0,hD._)`${a} && ${r}`).assign(r,!1).assign(s,(0,hD._)`[${s}, ${I}]`).else(),e.if(a,()=>{e.assign(r,!0),e.assign(s,I),C&&t.mergeEvaluated(C,hD.Name)})})}}};Kx.default=NSA});var zAA=He(Ux=>{"use strict";Object.defineProperty(Ux,"__esModule",{value:!0});var FSA=wn(),_SA={keyword:"allOf",schemaType:"array",code(t){let{gen:e,schema:A,it:i}=t;if(!Array.isArray(A))throw new Error("ajv implementation error");let n=e.name("valid");A.forEach((o,r)=>{if((0,FSA.alwaysValidSchema)(i,o))return;let s=t.subschema({keyword:"allOf",schemaProp:r},n);t.ok(n),t.mergeEvaluated(s)})}};Ux.default=_SA});var qAA=He(Jx=>{"use strict";Object.defineProperty(Jx,"__esModule",{value:!0});var fD=Pi(),jAA=wn(),GSA={message:({params:t})=>(0,fD.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,fD._)`{failingKeyword: ${t.ifClause}}`},KSA={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:GSA,code(t){let{gen:e,parentSchema:A,it:i}=t;A.then===void 0&&A.else===void 0&&(0,jAA.checkStrictMode)(i,'"if" without "then" and "else" is ignored');let n=PAA(i,"then"),o=PAA(i,"else");if(!n&&!o)return;let r=e.let("valid",!0),s=e.name("_valid");if(a(),t.reset(),n&&o){let g=e.let("ifClause");t.setParams({ifClause:g}),e.if(s,c("then",g),c("else",g))}else n?e.if(s,c("then")):e.if((0,fD.not)(s),c("else"));t.pass(r,()=>t.error(!0));function a(){let g=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);t.mergeEvaluated(g)}function c(g,I){return()=>{let C=t.subschema({keyword:g},s);e.assign(r,s),t.mergeValidEvaluated(C,r),I?e.assign(I,(0,fD._)`${g}`):t.setParams({ifClause:g})}}}};function PAA(t,e){let A=t.schema[e];return A!==void 0&&!(0,jAA.alwaysValidSchema)(t,A)}Jx.default=KSA});var VAA=He(Yx=>{"use strict";Object.defineProperty(Yx,"__esModule",{value:!0});var USA=wn(),JSA={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:A}){e.if===void 0&&(0,USA.checkStrictMode)(A,`"${t}" without "if" is ignored`)}};Yx.default=JSA});var ZAA=He(Tx=>{"use strict";Object.defineProperty(Tx,"__esModule",{value:!0});var YSA=wx(),TSA=vAA(),HSA=yx(),OSA=bAA(),zSA=kAA(),PSA=LAA(),jSA=NAA(),qSA=Lx(),VSA=GAA(),ZSA=YAA(),WSA=TAA(),XSA=HAA(),$SA=OAA(),ARA=zAA(),eRA=qAA(),tRA=VAA();function iRA(t=!1){let e=[WSA.default,XSA.default,$SA.default,ARA.default,eRA.default,tRA.default,jSA.default,qSA.default,PSA.default,VSA.default,ZSA.default];return t?e.push(TSA.default,OSA.default):e.push(YSA.default,HSA.default),e.push(zSA.default),e}Tx.default=iRA});var WAA=He(Hx=>{"use strict";Object.defineProperty(Hx,"__esModule",{value:!0});var pr=Pi(),nRA={message:({schemaCode:t})=>(0,pr.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,pr._)`{format: ${t}}`},oRA={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:nRA,code(t,e){let{gen:A,data:i,$data:n,schema:o,schemaCode:r,it:s}=t,{opts:a,errSchemaPath:c,schemaEnv:g,self:I}=s;if(!a.validateFormats)return;n?C():d();function C(){let B=A.scopeValue("formats",{ref:I.formats,code:a.code.formats}),E=A.const("fDef",(0,pr._)`${B}[${r}]`),u=A.let("fType"),h=A.let("format");A.if((0,pr._)`typeof ${E} == "object" && !(${E} instanceof RegExp)`,()=>A.assign(u,(0,pr._)`${E}.type || "string"`).assign(h,(0,pr._)`${E}.validate`),()=>A.assign(u,(0,pr._)`"string"`).assign(h,E)),t.fail$data((0,pr.or)(w(),x()));function w(){return a.strictSchema===!1?pr.nil:(0,pr._)`${r} && !${h}`}function x(){let R=g.$async?(0,pr._)`(${E}.async ? await ${h}(${i}) : ${h}(${i}))`:(0,pr._)`${h}(${i})`,D=(0,pr._)`(typeof ${h} == "function" ? ${R} : ${h}.test(${i}))`;return(0,pr._)`${h} && ${h} !== true && ${u} === ${e} && !${D}`}}function d(){let B=I.formats[o];if(!B){w();return}if(B===!0)return;let[E,u,h]=x(B);E===e&&t.pass(R());function w(){if(a.strictSchema===!1){I.logger.warn(D());return}throw new Error(D());function D(){return`unknown format "${o}" ignored in schema at path "${c}"`}}function x(D){let G=D instanceof RegExp?(0,pr.regexpCode)(D):a.code.formats?(0,pr._)`${a.code.formats}${(0,pr.getProperty)(o)}`:void 0,J=A.scopeValue("formats",{key:o,ref:D,code:G});return typeof D=="object"&&!(D instanceof RegExp)?[D.type||"string",D.validate,(0,pr._)`${J}.validate`]:["string",D,J]}function R(){if(typeof B=="object"&&!(B instanceof RegExp)&&B.async){if(!g.$async)throw new Error("async format in sync schema");return(0,pr._)`await ${h}(${i})`}return typeof u=="function"?(0,pr._)`${h}(${i})`:(0,pr._)`${h}.test(${i})`}}}};Hx.default=oRA});var XAA=He(Ox=>{"use strict";Object.defineProperty(Ox,"__esModule",{value:!0});var rRA=WAA(),sRA=[rRA.default];Ox.default=sRA});var $AA=He(kE=>{"use strict";Object.defineProperty(kE,"__esModule",{value:!0});kE.contentVocabulary=kE.metadataVocabulary=void 0;kE.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];kE.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var eeA=He(zx=>{"use strict";Object.defineProperty(zx,"__esModule",{value:!0});var aRA=aAA(),cRA=pAA(),gRA=ZAA(),lRA=XAA(),AeA=$AA(),IRA=[aRA.default,cRA.default,(0,gRA.default)(),lRA.default,AeA.metadataVocabulary,AeA.contentVocabulary];zx.default=IRA});var ieA=He(mD=>{"use strict";Object.defineProperty(mD,"__esModule",{value:!0});mD.DiscrError=void 0;var teA=function(t){return t.Tag="tag",t.Mapping="mapping",t}(teA||(mD.DiscrError=teA={}))});var oeA=He(jx=>{"use strict";Object.defineProperty(jx,"__esModule",{value:!0});var SE=Pi(),Px=ieA(),neA=tD(),CRA=S4(),dRA=wn(),BRA={message:({params:{discrError:t,tagName:e}})=>t===Px.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:A}})=>(0,SE._)`{error: ${t}, tag: ${A}, tagValue: ${e}}`},ERA={keyword:"discriminator",type:"object",schemaType:"object",error:BRA,code(t){let{gen:e,data:A,schema:i,parentSchema:n,it:o}=t,{oneOf:r}=n;if(!o.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=i.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(i.mapping)throw new Error("discriminator: mapping is not supported");if(!r)throw new Error("discriminator: requires oneOf keyword");let a=e.let("valid",!1),c=e.const("tag",(0,SE._)`${A}${(0,SE.getProperty)(s)}`);e.if((0,SE._)`typeof ${c} == "string"`,()=>g(),()=>t.error(!1,{discrError:Px.DiscrError.Tag,tag:c,tagName:s})),t.ok(a);function g(){let d=C();e.if(!1);for(let B in d)e.elseIf((0,SE._)`${c} === ${B}`),e.assign(a,I(d[B]));e.else(),t.error(!1,{discrError:Px.DiscrError.Mapping,tag:c,tagName:s}),e.endIf()}function I(d){let B=e.name("valid"),E=t.subschema({keyword:"oneOf",schemaProp:d},B);return t.mergeEvaluated(E,SE.Name),B}function C(){var d;let B={},E=h(n),u=!0;for(let R=0;R{QRA.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var aeA=He((Oo,qx)=>{"use strict";Object.defineProperty(Oo,"__esModule",{value:!0});Oo.MissingRefError=Oo.ValidationError=Oo.CodeGen=Oo.Name=Oo.nil=Oo.stringify=Oo.str=Oo._=Oo.KeywordCxt=Oo.Ajv=void 0;var uRA=tAA(),hRA=eeA(),fRA=oeA(),seA=reA(),mRA=["/properties"],pD="http://json-schema.org/draft-07/schema",RE=class extends uRA.default{_addVocabularies(){super._addVocabularies(),hRA.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(fRA.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(seA,mRA):seA;this.addMetaSchema(e,pD,!1),this.refs["http://json-schema.org/schema"]=pD}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(pD)?pD:void 0)}};Oo.Ajv=RE;qx.exports=Oo=RE;qx.exports.Ajv=RE;Object.defineProperty(Oo,"__esModule",{value:!0});Oo.default=RE;var pRA=k4();Object.defineProperty(Oo,"KeywordCxt",{enumerable:!0,get:function(){return pRA.KeywordCxt}});var LE=Pi();Object.defineProperty(Oo,"_",{enumerable:!0,get:function(){return LE._}});Object.defineProperty(Oo,"str",{enumerable:!0,get:function(){return LE.str}});Object.defineProperty(Oo,"stringify",{enumerable:!0,get:function(){return LE.stringify}});Object.defineProperty(Oo,"nil",{enumerable:!0,get:function(){return LE.nil}});Object.defineProperty(Oo,"Name",{enumerable:!0,get:function(){return LE.Name}});Object.defineProperty(Oo,"CodeGen",{enumerable:!0,get:function(){return LE.CodeGen}});var DRA=AD();Object.defineProperty(Oo,"ValidationError",{enumerable:!0,get:function(){return DRA.default}});var wRA=S4();Object.defineProperty(Oo,"MissingRefError",{enumerable:!0,get:function(){return wRA.default}})});var ceA=He(DD=>{"use strict";(function(t){"use strict";function e(L){return L!==null?Object.prototype.toString.call(L)==="[object Array]":!1}function A(L){return L!==null?Object.prototype.toString.call(L)==="[object Object]":!1}function i(L,T){if(L===T)return!0;var P=Object.prototype.toString.call(L);if(P!==Object.prototype.toString.call(T))return!1;if(e(L)===!0){if(L.length!==T.length)return!1;for(var X=0;X",9:"Array"},x="EOF",R="UnquotedIdentifier",D="QuotedIdentifier",G="Rbracket",J="Rparen",z="Comma",K="Colon",O="Rbrace",V="Number",j="Current",dA="Expref",fA="Pipe",EA="Or",IA="And",SA="EQ",nA="GT",lA="LT",wA="GTE",VA="LTE",ie="NE",UA="Flatten",BA="Star",JA="Filter",Xe="Dot",We="Not",KA="Lbrace",tA="Lbracket",OA="Lparen",gA="Literal",zA={".":Xe,"*":BA,",":z,":":K,"{":KA,"}":O,"]":G,"(":OA,")":J,"@":j},xA={"<":!0,">":!0,"=":!0,"!":!0},Me={" ":!0," ":!0,"\n":!0};function LA(L){return L>="a"&&L<="z"||L>="A"&&L<="Z"||L==="_"}function cA(L){return L>="0"&&L<="9"||L==="-"}function Gt(L){return L>="a"&&L<="z"||L>="A"&&L<="Z"||L>="0"&&L<="9"||L==="_"}function ct(){}ct.prototype={tokenize:function(L){var T=[];this._current=0;for(var P,X,kA;this._current")return L[this._current]==="="?(this._current++,{type:wA,value:">=",start:T}):{type:nA,value:">",start:T};if(P==="="&&L[this._current]==="=")return this._current++,{type:SA,value:"==",start:T}},_consumeLiteral:function(L){this._current++;for(var T=this._current,P=L.length,X;L[this._current]!=="`"&&this._current=0)return!0;if(P.indexOf(L)>=0)return!0;if(X.indexOf(L[0])>=0)try{return JSON.parse(L),!0}catch{return!1}else return!1}};var oe={};oe[x]=0,oe[R]=0,oe[D]=0,oe[G]=0,oe[J]=0,oe[z]=0,oe[O]=0,oe[V]=0,oe[j]=0,oe[dA]=0,oe[fA]=1,oe[EA]=2,oe[IA]=3,oe[SA]=5,oe[nA]=5,oe[lA]=5,oe[wA]=5,oe[VA]=5,oe[ie]=5,oe[UA]=9,oe[BA]=20,oe[JA]=21,oe[Xe]=40,oe[We]=45,oe[KA]=50,oe[tA]=55,oe[OA]=60;function Dt(){}Dt.prototype={parse:function(L){this._loadTokens(L),this.index=0;var T=this.expression(0);if(this._lookahead(0)!==x){var P=this._lookaheadToken(0),X=new Error("Unexpected token type: "+P.type+", value: "+P.value);throw X.name="ParserError",X}return T},_loadTokens:function(L){var T=new ct,P=T.tokenize(L);P.push({type:x,value:"",start:L.length}),this.tokens=P},expression:function(L){var T=this._lookaheadToken(0);this._advance();for(var P=this.nud(T),X=this._lookahead(0);L=0)return this.expression(L);if(T===tA)return this._match(tA),this._parseMultiselectList();if(T===KA)return this._match(KA),this._parseMultiselectHash()},_parseProjectionRHS:function(L){var T;if(oe[this._lookahead(0)]<10)T={type:"Identity"};else if(this._lookahead(0)===tA)T=this.expression(L);else if(this._lookahead(0)===JA)T=this.expression(L);else if(this._lookahead(0)===Xe)this._match(Xe),T=this._parseDotRHS(L);else{var P=this._lookaheadToken(0),X=new Error("Sytanx error, unexpected token: "+P.value+"("+P.type+")");throw X.name="ParserError",X}return T},_parseMultiselectList:function(){for(var L=[];this._lookahead(0)!==G;){var T=this.expression(0);if(L.push(T),this._lookahead(0)===z&&(this._match(z),this._lookahead(0)===G))throw new Error("Unexpected token Rbracket")}return this._match(G),{type:"MultiSelectList",children:L}},_parseMultiselectHash:function(){for(var L=[],T=[R,D],P,X,kA,le;;){if(P=this._lookaheadToken(0),T.indexOf(P.type)<0)throw new Error("Expecting an identifier token, got: "+P.type);if(X=P.value,this._advance(),this._match(K),kA=this.expression(0),le={type:"KeyValuePair",name:X,value:kA},L.push(le),this._lookahead(0)===z)this._match(z);else if(this._lookahead(0)===O){this._match(O);break}}return{type:"MultiSelectHash",children:L}}};function _e(L){this.runtime=L}_e.prototype={search:function(L,T){return this.visit(L,T)},visit:function(L,T){var P,X,kA,le,Ee,NA,MA,Ct,$e,XA;switch(L.type){case"Field":return T!==null&&A(T)?(NA=T[L.name],NA===void 0?null:NA):null;case"Subexpression":for(kA=this.visit(L.children[0],T),XA=1;XA0)for(XA=Oi;XALe;XA+=zi)kA.push(T[XA]);return kA;case"Projection":var fi=this.visit(L.children[0],T);if(!e(fi))return null;for($e=[],XA=0;XAEe;break;case wA:kA=le>=Ee;break;case lA:kA=le=L&&(T=P<0?L-1:L),T}};function Re(L){this._interpreter=L,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[a]}]},avg:{_func:this._functionAvg,_signature:[{types:[u]}]},ceil:{_func:this._functionCeil,_signature:[{types:[a]}]},contains:{_func:this._functionContains,_signature:[{types:[g,I]},{types:[c]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[g]},{types:[g]}]},floor:{_func:this._functionFloor,_signature:[{types:[a]}]},length:{_func:this._functionLength,_signature:[{types:[g,I,C]}]},map:{_func:this._functionMap,_signature:[{types:[B]},{types:[I]}]},max:{_func:this._functionMax,_signature:[{types:[u,h]}]},merge:{_func:this._functionMerge,_signature:[{types:[C],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[I]},{types:[B]}]},sum:{_func:this._functionSum,_signature:[{types:[u]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[g]},{types:[g]}]},min:{_func:this._functionMin,_signature:[{types:[u,h]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[I]},{types:[B]}]},type:{_func:this._functionType,_signature:[{types:[c]}]},keys:{_func:this._functionKeys,_signature:[{types:[C]}]},values:{_func:this._functionValues,_signature:[{types:[C]}]},sort:{_func:this._functionSort,_signature:[{types:[h,u]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[I]},{types:[B]}]},join:{_func:this._functionJoin,_signature:[{types:[g]},{types:[h]}]},reverse:{_func:this._functionReverse,_signature:[{types:[g,I]}]},to_array:{_func:this._functionToArray,_signature:[{types:[c]}]},to_string:{_func:this._functionToString,_signature:[{types:[c]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[c]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[c],variadic:!0}]}}}Re.prototype={callFunction:function(L,T){var P=this.functionTable[L];if(P===void 0)throw new Error("Unknown function: "+L+"()");return this._validateArgs(L,T,P._signature),P._func.call(this,T)},_validateArgs:function(L,T,P){var X;if(P[P.length-1].variadic){if(T.length=0;kA--)X+=P[kA];return X}else{var le=L[0].slice(0);return le.reverse(),le}},_functionAbs:function(L){return Math.abs(L[0])},_functionCeil:function(L){return Math.ceil(L[0])},_functionAvg:function(L){for(var T=0,P=L[0],X=0;X=0},_functionFloor:function(L){return Math.floor(L[0])},_functionLength:function(L){return A(L[0])?Object.keys(L[0]).length:L[0].length},_functionMap:function(L){for(var T=[],P=this._interpreter,X=L[0],kA=L[1],le=0;le0){var T=this._getTypeName(L[0][0]);if(T===a)return Math.max.apply(Math,L[0]);for(var P=L[0],X=P[0],kA=1;kA0){var T=this._getTypeName(L[0][0]);if(T===a)return Math.min.apply(Math,L[0]);for(var P=L[0],X=P[0],kA=1;kAot?1:XAkA&&(kA=Ee,le=P[NA]);return le},_functionMinBy:function(L){for(var T=L[1],P=L[0],X=this.createKeyFunction(T,[a,g]),kA=1/0,le,Ee,NA=0;NA"u"?DD.jmespath={}:DD)});var NgA=He((oLe,xgA)=>{"use strict";xgA.exports=[{value:"#B0171F",name:"indian red"},{value:"#DC143C",css:!0,name:"crimson"},{value:"#FFB6C1",css:!0,name:"lightpink"},{value:"#FFAEB9",name:"lightpink 1"},{value:"#EEA2AD",name:"lightpink 2"},{value:"#CD8C95",name:"lightpink 3"},{value:"#8B5F65",name:"lightpink 4"},{value:"#FFC0CB",css:!0,name:"pink"},{value:"#FFB5C5",name:"pink 1"},{value:"#EEA9B8",name:"pink 2"},{value:"#CD919E",name:"pink 3"},{value:"#8B636C",name:"pink 4"},{value:"#DB7093",css:!0,name:"palevioletred"},{value:"#FF82AB",name:"palevioletred 1"},{value:"#EE799F",name:"palevioletred 2"},{value:"#CD6889",name:"palevioletred 3"},{value:"#8B475D",name:"palevioletred 4"},{value:"#FFF0F5",name:"lavenderblush 1"},{value:"#FFF0F5",css:!0,name:"lavenderblush"},{value:"#EEE0E5",name:"lavenderblush 2"},{value:"#CDC1C5",name:"lavenderblush 3"},{value:"#8B8386",name:"lavenderblush 4"},{value:"#FF3E96",name:"violetred 1"},{value:"#EE3A8C",name:"violetred 2"},{value:"#CD3278",name:"violetred 3"},{value:"#8B2252",name:"violetred 4"},{value:"#FF69B4",css:!0,name:"hotpink"},{value:"#FF6EB4",name:"hotpink 1"},{value:"#EE6AA7",name:"hotpink 2"},{value:"#CD6090",name:"hotpink 3"},{value:"#8B3A62",name:"hotpink 4"},{value:"#872657",name:"raspberry"},{value:"#FF1493",name:"deeppink 1"},{value:"#FF1493",css:!0,name:"deeppink"},{value:"#EE1289",name:"deeppink 2"},{value:"#CD1076",name:"deeppink 3"},{value:"#8B0A50",name:"deeppink 4"},{value:"#FF34B3",name:"maroon 1"},{value:"#EE30A7",name:"maroon 2"},{value:"#CD2990",name:"maroon 3"},{value:"#8B1C62",name:"maroon 4"},{value:"#C71585",css:!0,name:"mediumvioletred"},{value:"#D02090",name:"violetred"},{value:"#DA70D6",css:!0,name:"orchid"},{value:"#FF83FA",name:"orchid 1"},{value:"#EE7AE9",name:"orchid 2"},{value:"#CD69C9",name:"orchid 3"},{value:"#8B4789",name:"orchid 4"},{value:"#D8BFD8",css:!0,name:"thistle"},{value:"#FFE1FF",name:"thistle 1"},{value:"#EED2EE",name:"thistle 2"},{value:"#CDB5CD",name:"thistle 3"},{value:"#8B7B8B",name:"thistle 4"},{value:"#FFBBFF",name:"plum 1"},{value:"#EEAEEE",name:"plum 2"},{value:"#CD96CD",name:"plum 3"},{value:"#8B668B",name:"plum 4"},{value:"#DDA0DD",css:!0,name:"plum"},{value:"#EE82EE",css:!0,name:"violet"},{value:"#FF00FF",vga:!0,name:"magenta"},{value:"#FF00FF",vga:!0,css:!0,name:"fuchsia"},{value:"#EE00EE",name:"magenta 2"},{value:"#CD00CD",name:"magenta 3"},{value:"#8B008B",name:"magenta 4"},{value:"#8B008B",css:!0,name:"darkmagenta"},{value:"#800080",vga:!0,css:!0,name:"purple"},{value:"#BA55D3",css:!0,name:"mediumorchid"},{value:"#E066FF",name:"mediumorchid 1"},{value:"#D15FEE",name:"mediumorchid 2"},{value:"#B452CD",name:"mediumorchid 3"},{value:"#7A378B",name:"mediumorchid 4"},{value:"#9400D3",css:!0,name:"darkviolet"},{value:"#9932CC",css:!0,name:"darkorchid"},{value:"#BF3EFF",name:"darkorchid 1"},{value:"#B23AEE",name:"darkorchid 2"},{value:"#9A32CD",name:"darkorchid 3"},{value:"#68228B",name:"darkorchid 4"},{value:"#4B0082",css:!0,name:"indigo"},{value:"#8A2BE2",css:!0,name:"blueviolet"},{value:"#9B30FF",name:"purple 1"},{value:"#912CEE",name:"purple 2"},{value:"#7D26CD",name:"purple 3"},{value:"#551A8B",name:"purple 4"},{value:"#9370DB",css:!0,name:"mediumpurple"},{value:"#AB82FF",name:"mediumpurple 1"},{value:"#9F79EE",name:"mediumpurple 2"},{value:"#8968CD",name:"mediumpurple 3"},{value:"#5D478B",name:"mediumpurple 4"},{value:"#483D8B",css:!0,name:"darkslateblue"},{value:"#8470FF",name:"lightslateblue"},{value:"#7B68EE",css:!0,name:"mediumslateblue"},{value:"#6A5ACD",css:!0,name:"slateblue"},{value:"#836FFF",name:"slateblue 1"},{value:"#7A67EE",name:"slateblue 2"},{value:"#6959CD",name:"slateblue 3"},{value:"#473C8B",name:"slateblue 4"},{value:"#F8F8FF",css:!0,name:"ghostwhite"},{value:"#E6E6FA",css:!0,name:"lavender"},{value:"#0000FF",vga:!0,css:!0,name:"blue"},{value:"#0000EE",name:"blue 2"},{value:"#0000CD",name:"blue 3"},{value:"#0000CD",css:!0,name:"mediumblue"},{value:"#00008B",name:"blue 4"},{value:"#00008B",css:!0,name:"darkblue"},{value:"#000080",vga:!0,css:!0,name:"navy"},{value:"#191970",css:!0,name:"midnightblue"},{value:"#3D59AB",name:"cobalt"},{value:"#4169E1",css:!0,name:"royalblue"},{value:"#4876FF",name:"royalblue 1"},{value:"#436EEE",name:"royalblue 2"},{value:"#3A5FCD",name:"royalblue 3"},{value:"#27408B",name:"royalblue 4"},{value:"#6495ED",css:!0,name:"cornflowerblue"},{value:"#B0C4DE",css:!0,name:"lightsteelblue"},{value:"#CAE1FF",name:"lightsteelblue 1"},{value:"#BCD2EE",name:"lightsteelblue 2"},{value:"#A2B5CD",name:"lightsteelblue 3"},{value:"#6E7B8B",name:"lightsteelblue 4"},{value:"#778899",css:!0,name:"lightslategray"},{value:"#708090",css:!0,name:"slategray"},{value:"#C6E2FF",name:"slategray 1"},{value:"#B9D3EE",name:"slategray 2"},{value:"#9FB6CD",name:"slategray 3"},{value:"#6C7B8B",name:"slategray 4"},{value:"#1E90FF",name:"dodgerblue 1"},{value:"#1E90FF",css:!0,name:"dodgerblue"},{value:"#1C86EE",name:"dodgerblue 2"},{value:"#1874CD",name:"dodgerblue 3"},{value:"#104E8B",name:"dodgerblue 4"},{value:"#F0F8FF",css:!0,name:"aliceblue"},{value:"#4682B4",css:!0,name:"steelblue"},{value:"#63B8FF",name:"steelblue 1"},{value:"#5CACEE",name:"steelblue 2"},{value:"#4F94CD",name:"steelblue 3"},{value:"#36648B",name:"steelblue 4"},{value:"#87CEFA",css:!0,name:"lightskyblue"},{value:"#B0E2FF",name:"lightskyblue 1"},{value:"#A4D3EE",name:"lightskyblue 2"},{value:"#8DB6CD",name:"lightskyblue 3"},{value:"#607B8B",name:"lightskyblue 4"},{value:"#87CEFF",name:"skyblue 1"},{value:"#7EC0EE",name:"skyblue 2"},{value:"#6CA6CD",name:"skyblue 3"},{value:"#4A708B",name:"skyblue 4"},{value:"#87CEEB",css:!0,name:"skyblue"},{value:"#00BFFF",name:"deepskyblue 1"},{value:"#00BFFF",css:!0,name:"deepskyblue"},{value:"#00B2EE",name:"deepskyblue 2"},{value:"#009ACD",name:"deepskyblue 3"},{value:"#00688B",name:"deepskyblue 4"},{value:"#33A1C9",name:"peacock"},{value:"#ADD8E6",css:!0,name:"lightblue"},{value:"#BFEFFF",name:"lightblue 1"},{value:"#B2DFEE",name:"lightblue 2"},{value:"#9AC0CD",name:"lightblue 3"},{value:"#68838B",name:"lightblue 4"},{value:"#B0E0E6",css:!0,name:"powderblue"},{value:"#98F5FF",name:"cadetblue 1"},{value:"#8EE5EE",name:"cadetblue 2"},{value:"#7AC5CD",name:"cadetblue 3"},{value:"#53868B",name:"cadetblue 4"},{value:"#00F5FF",name:"turquoise 1"},{value:"#00E5EE",name:"turquoise 2"},{value:"#00C5CD",name:"turquoise 3"},{value:"#00868B",name:"turquoise 4"},{value:"#5F9EA0",css:!0,name:"cadetblue"},{value:"#00CED1",css:!0,name:"darkturquoise"},{value:"#F0FFFF",name:"azure 1"},{value:"#F0FFFF",css:!0,name:"azure"},{value:"#E0EEEE",name:"azure 2"},{value:"#C1CDCD",name:"azure 3"},{value:"#838B8B",name:"azure 4"},{value:"#E0FFFF",name:"lightcyan 1"},{value:"#E0FFFF",css:!0,name:"lightcyan"},{value:"#D1EEEE",name:"lightcyan 2"},{value:"#B4CDCD",name:"lightcyan 3"},{value:"#7A8B8B",name:"lightcyan 4"},{value:"#BBFFFF",name:"paleturquoise 1"},{value:"#AEEEEE",name:"paleturquoise 2"},{value:"#AEEEEE",css:!0,name:"paleturquoise"},{value:"#96CDCD",name:"paleturquoise 3"},{value:"#668B8B",name:"paleturquoise 4"},{value:"#2F4F4F",css:!0,name:"darkslategray"},{value:"#97FFFF",name:"darkslategray 1"},{value:"#8DEEEE",name:"darkslategray 2"},{value:"#79CDCD",name:"darkslategray 3"},{value:"#528B8B",name:"darkslategray 4"},{value:"#00FFFF",name:"cyan"},{value:"#00FFFF",css:!0,name:"aqua"},{value:"#00EEEE",name:"cyan 2"},{value:"#00CDCD",name:"cyan 3"},{value:"#008B8B",name:"cyan 4"},{value:"#008B8B",css:!0,name:"darkcyan"},{value:"#008080",vga:!0,css:!0,name:"teal"},{value:"#48D1CC",css:!0,name:"mediumturquoise"},{value:"#20B2AA",css:!0,name:"lightseagreen"},{value:"#03A89E",name:"manganeseblue"},{value:"#40E0D0",css:!0,name:"turquoise"},{value:"#808A87",name:"coldgrey"},{value:"#00C78C",name:"turquoiseblue"},{value:"#7FFFD4",name:"aquamarine 1"},{value:"#7FFFD4",css:!0,name:"aquamarine"},{value:"#76EEC6",name:"aquamarine 2"},{value:"#66CDAA",name:"aquamarine 3"},{value:"#66CDAA",css:!0,name:"mediumaquamarine"},{value:"#458B74",name:"aquamarine 4"},{value:"#00FA9A",css:!0,name:"mediumspringgreen"},{value:"#F5FFFA",css:!0,name:"mintcream"},{value:"#00FF7F",css:!0,name:"springgreen"},{value:"#00EE76",name:"springgreen 1"},{value:"#00CD66",name:"springgreen 2"},{value:"#008B45",name:"springgreen 3"},{value:"#3CB371",css:!0,name:"mediumseagreen"},{value:"#54FF9F",name:"seagreen 1"},{value:"#4EEE94",name:"seagreen 2"},{value:"#43CD80",name:"seagreen 3"},{value:"#2E8B57",name:"seagreen 4"},{value:"#2E8B57",css:!0,name:"seagreen"},{value:"#00C957",name:"emeraldgreen"},{value:"#BDFCC9",name:"mint"},{value:"#3D9140",name:"cobaltgreen"},{value:"#F0FFF0",name:"honeydew 1"},{value:"#F0FFF0",css:!0,name:"honeydew"},{value:"#E0EEE0",name:"honeydew 2"},{value:"#C1CDC1",name:"honeydew 3"},{value:"#838B83",name:"honeydew 4"},{value:"#8FBC8F",css:!0,name:"darkseagreen"},{value:"#C1FFC1",name:"darkseagreen 1"},{value:"#B4EEB4",name:"darkseagreen 2"},{value:"#9BCD9B",name:"darkseagreen 3"},{value:"#698B69",name:"darkseagreen 4"},{value:"#98FB98",css:!0,name:"palegreen"},{value:"#9AFF9A",name:"palegreen 1"},{value:"#90EE90",name:"palegreen 2"},{value:"#90EE90",css:!0,name:"lightgreen"},{value:"#7CCD7C",name:"palegreen 3"},{value:"#548B54",name:"palegreen 4"},{value:"#32CD32",css:!0,name:"limegreen"},{value:"#228B22",css:!0,name:"forestgreen"},{value:"#00FF00",vga:!0,name:"green 1"},{value:"#00FF00",vga:!0,css:!0,name:"lime"},{value:"#00EE00",name:"green 2"},{value:"#00CD00",name:"green 3"},{value:"#008B00",name:"green 4"},{value:"#008000",vga:!0,css:!0,name:"green"},{value:"#006400",css:!0,name:"darkgreen"},{value:"#308014",name:"sapgreen"},{value:"#7CFC00",css:!0,name:"lawngreen"},{value:"#7FFF00",name:"chartreuse 1"},{value:"#7FFF00",css:!0,name:"chartreuse"},{value:"#76EE00",name:"chartreuse 2"},{value:"#66CD00",name:"chartreuse 3"},{value:"#458B00",name:"chartreuse 4"},{value:"#ADFF2F",css:!0,name:"greenyellow"},{value:"#CAFF70",name:"darkolivegreen 1"},{value:"#BCEE68",name:"darkolivegreen 2"},{value:"#A2CD5A",name:"darkolivegreen 3"},{value:"#6E8B3D",name:"darkolivegreen 4"},{value:"#556B2F",css:!0,name:"darkolivegreen"},{value:"#6B8E23",css:!0,name:"olivedrab"},{value:"#C0FF3E",name:"olivedrab 1"},{value:"#B3EE3A",name:"olivedrab 2"},{value:"#9ACD32",name:"olivedrab 3"},{value:"#9ACD32",css:!0,name:"yellowgreen"},{value:"#698B22",name:"olivedrab 4"},{value:"#FFFFF0",name:"ivory 1"},{value:"#FFFFF0",css:!0,name:"ivory"},{value:"#EEEEE0",name:"ivory 2"},{value:"#CDCDC1",name:"ivory 3"},{value:"#8B8B83",name:"ivory 4"},{value:"#F5F5DC",css:!0,name:"beige"},{value:"#FFFFE0",name:"lightyellow 1"},{value:"#FFFFE0",css:!0,name:"lightyellow"},{value:"#EEEED1",name:"lightyellow 2"},{value:"#CDCDB4",name:"lightyellow 3"},{value:"#8B8B7A",name:"lightyellow 4"},{value:"#FAFAD2",css:!0,name:"lightgoldenrodyellow"},{value:"#FFFF00",vga:!0,name:"yellow 1"},{value:"#FFFF00",vga:!0,css:!0,name:"yellow"},{value:"#EEEE00",name:"yellow 2"},{value:"#CDCD00",name:"yellow 3"},{value:"#8B8B00",name:"yellow 4"},{value:"#808069",name:"warmgrey"},{value:"#808000",vga:!0,css:!0,name:"olive"},{value:"#BDB76B",css:!0,name:"darkkhaki"},{value:"#FFF68F",name:"khaki 1"},{value:"#EEE685",name:"khaki 2"},{value:"#CDC673",name:"khaki 3"},{value:"#8B864E",name:"khaki 4"},{value:"#F0E68C",css:!0,name:"khaki"},{value:"#EEE8AA",css:!0,name:"palegoldenrod"},{value:"#FFFACD",name:"lemonchiffon 1"},{value:"#FFFACD",css:!0,name:"lemonchiffon"},{value:"#EEE9BF",name:"lemonchiffon 2"},{value:"#CDC9A5",name:"lemonchiffon 3"},{value:"#8B8970",name:"lemonchiffon 4"},{value:"#FFEC8B",name:"lightgoldenrod 1"},{value:"#EEDC82",name:"lightgoldenrod 2"},{value:"#CDBE70",name:"lightgoldenrod 3"},{value:"#8B814C",name:"lightgoldenrod 4"},{value:"#E3CF57",name:"banana"},{value:"#FFD700",name:"gold 1"},{value:"#FFD700",css:!0,name:"gold"},{value:"#EEC900",name:"gold 2"},{value:"#CDAD00",name:"gold 3"},{value:"#8B7500",name:"gold 4"},{value:"#FFF8DC",name:"cornsilk 1"},{value:"#FFF8DC",css:!0,name:"cornsilk"},{value:"#EEE8CD",name:"cornsilk 2"},{value:"#CDC8B1",name:"cornsilk 3"},{value:"#8B8878",name:"cornsilk 4"},{value:"#DAA520",css:!0,name:"goldenrod"},{value:"#FFC125",name:"goldenrod 1"},{value:"#EEB422",name:"goldenrod 2"},{value:"#CD9B1D",name:"goldenrod 3"},{value:"#8B6914",name:"goldenrod 4"},{value:"#B8860B",css:!0,name:"darkgoldenrod"},{value:"#FFB90F",name:"darkgoldenrod 1"},{value:"#EEAD0E",name:"darkgoldenrod 2"},{value:"#CD950C",name:"darkgoldenrod 3"},{value:"#8B6508",name:"darkgoldenrod 4"},{value:"#FFA500",name:"orange 1"},{value:"#FF8000",css:!0,name:"orange"},{value:"#EE9A00",name:"orange 2"},{value:"#CD8500",name:"orange 3"},{value:"#8B5A00",name:"orange 4"},{value:"#FFFAF0",css:!0,name:"floralwhite"},{value:"#FDF5E6",css:!0,name:"oldlace"},{value:"#F5DEB3",css:!0,name:"wheat"},{value:"#FFE7BA",name:"wheat 1"},{value:"#EED8AE",name:"wheat 2"},{value:"#CDBA96",name:"wheat 3"},{value:"#8B7E66",name:"wheat 4"},{value:"#FFE4B5",css:!0,name:"moccasin"},{value:"#FFEFD5",css:!0,name:"papayawhip"},{value:"#FFEBCD",css:!0,name:"blanchedalmond"},{value:"#FFDEAD",name:"navajowhite 1"},{value:"#FFDEAD",css:!0,name:"navajowhite"},{value:"#EECFA1",name:"navajowhite 2"},{value:"#CDB38B",name:"navajowhite 3"},{value:"#8B795E",name:"navajowhite 4"},{value:"#FCE6C9",name:"eggshell"},{value:"#D2B48C",css:!0,name:"tan"},{value:"#9C661F",name:"brick"},{value:"#FF9912",name:"cadmiumyellow"},{value:"#FAEBD7",css:!0,name:"antiquewhite"},{value:"#FFEFDB",name:"antiquewhite 1"},{value:"#EEDFCC",name:"antiquewhite 2"},{value:"#CDC0B0",name:"antiquewhite 3"},{value:"#8B8378",name:"antiquewhite 4"},{value:"#DEB887",css:!0,name:"burlywood"},{value:"#FFD39B",name:"burlywood 1"},{value:"#EEC591",name:"burlywood 2"},{value:"#CDAA7D",name:"burlywood 3"},{value:"#8B7355",name:"burlywood 4"},{value:"#FFE4C4",name:"bisque 1"},{value:"#FFE4C4",css:!0,name:"bisque"},{value:"#EED5B7",name:"bisque 2"},{value:"#CDB79E",name:"bisque 3"},{value:"#8B7D6B",name:"bisque 4"},{value:"#E3A869",name:"melon"},{value:"#ED9121",name:"carrot"},{value:"#FF8C00",css:!0,name:"darkorange"},{value:"#FF7F00",name:"darkorange 1"},{value:"#EE7600",name:"darkorange 2"},{value:"#CD6600",name:"darkorange 3"},{value:"#8B4500",name:"darkorange 4"},{value:"#FFA54F",name:"tan 1"},{value:"#EE9A49",name:"tan 2"},{value:"#CD853F",name:"tan 3"},{value:"#CD853F",css:!0,name:"peru"},{value:"#8B5A2B",name:"tan 4"},{value:"#FAF0E6",css:!0,name:"linen"},{value:"#FFDAB9",name:"peachpuff 1"},{value:"#FFDAB9",css:!0,name:"peachpuff"},{value:"#EECBAD",name:"peachpuff 2"},{value:"#CDAF95",name:"peachpuff 3"},{value:"#8B7765",name:"peachpuff 4"},{value:"#FFF5EE",name:"seashell 1"},{value:"#FFF5EE",css:!0,name:"seashell"},{value:"#EEE5DE",name:"seashell 2"},{value:"#CDC5BF",name:"seashell 3"},{value:"#8B8682",name:"seashell 4"},{value:"#F4A460",css:!0,name:"sandybrown"},{value:"#C76114",name:"rawsienna"},{value:"#D2691E",css:!0,name:"chocolate"},{value:"#FF7F24",name:"chocolate 1"},{value:"#EE7621",name:"chocolate 2"},{value:"#CD661D",name:"chocolate 3"},{value:"#8B4513",name:"chocolate 4"},{value:"#8B4513",css:!0,name:"saddlebrown"},{value:"#292421",name:"ivoryblack"},{value:"#FF7D40",name:"flesh"},{value:"#FF6103",name:"cadmiumorange"},{value:"#8A360F",name:"burntsienna"},{value:"#A0522D",css:!0,name:"sienna"},{value:"#FF8247",name:"sienna 1"},{value:"#EE7942",name:"sienna 2"},{value:"#CD6839",name:"sienna 3"},{value:"#8B4726",name:"sienna 4"},{value:"#FFA07A",name:"lightsalmon 1"},{value:"#FFA07A",css:!0,name:"lightsalmon"},{value:"#EE9572",name:"lightsalmon 2"},{value:"#CD8162",name:"lightsalmon 3"},{value:"#8B5742",name:"lightsalmon 4"},{value:"#FF7F50",css:!0,name:"coral"},{value:"#FF4500",name:"orangered 1"},{value:"#FF4500",css:!0,name:"orangered"},{value:"#EE4000",name:"orangered 2"},{value:"#CD3700",name:"orangered 3"},{value:"#8B2500",name:"orangered 4"},{value:"#5E2612",name:"sepia"},{value:"#E9967A",css:!0,name:"darksalmon"},{value:"#FF8C69",name:"salmon 1"},{value:"#EE8262",name:"salmon 2"},{value:"#CD7054",name:"salmon 3"},{value:"#8B4C39",name:"salmon 4"},{value:"#FF7256",name:"coral 1"},{value:"#EE6A50",name:"coral 2"},{value:"#CD5B45",name:"coral 3"},{value:"#8B3E2F",name:"coral 4"},{value:"#8A3324",name:"burntumber"},{value:"#FF6347",name:"tomato 1"},{value:"#FF6347",css:!0,name:"tomato"},{value:"#EE5C42",name:"tomato 2"},{value:"#CD4F39",name:"tomato 3"},{value:"#8B3626",name:"tomato 4"},{value:"#FA8072",css:!0,name:"salmon"},{value:"#FFE4E1",name:"mistyrose 1"},{value:"#FFE4E1",css:!0,name:"mistyrose"},{value:"#EED5D2",name:"mistyrose 2"},{value:"#CDB7B5",name:"mistyrose 3"},{value:"#8B7D7B",name:"mistyrose 4"},{value:"#FFFAFA",name:"snow 1"},{value:"#FFFAFA",css:!0,name:"snow"},{value:"#EEE9E9",name:"snow 2"},{value:"#CDC9C9",name:"snow 3"},{value:"#8B8989",name:"snow 4"},{value:"#BC8F8F",css:!0,name:"rosybrown"},{value:"#FFC1C1",name:"rosybrown 1"},{value:"#EEB4B4",name:"rosybrown 2"},{value:"#CD9B9B",name:"rosybrown 3"},{value:"#8B6969",name:"rosybrown 4"},{value:"#F08080",css:!0,name:"lightcoral"},{value:"#CD5C5C",css:!0,name:"indianred"},{value:"#FF6A6A",name:"indianred 1"},{value:"#EE6363",name:"indianred 2"},{value:"#8B3A3A",name:"indianred 4"},{value:"#CD5555",name:"indianred 3"},{value:"#A52A2A",css:!0,name:"brown"},{value:"#FF4040",name:"brown 1"},{value:"#EE3B3B",name:"brown 2"},{value:"#CD3333",name:"brown 3"},{value:"#8B2323",name:"brown 4"},{value:"#B22222",css:!0,name:"firebrick"},{value:"#FF3030",name:"firebrick 1"},{value:"#EE2C2C",name:"firebrick 2"},{value:"#CD2626",name:"firebrick 3"},{value:"#8B1A1A",name:"firebrick 4"},{value:"#FF0000",vga:!0,name:"red 1"},{value:"#FF0000",vga:!0,css:!0,name:"red"},{value:"#EE0000",name:"red 2"},{value:"#CD0000",name:"red 3"},{value:"#8B0000",name:"red 4"},{value:"#8B0000",css:!0,name:"darkred"},{value:"#800000",vga:!0,css:!0,name:"maroon"},{value:"#8E388E",name:"sgi beet"},{value:"#7171C6",name:"sgi slateblue"},{value:"#7D9EC0",name:"sgi lightblue"},{value:"#388E8E",name:"sgi teal"},{value:"#71C671",name:"sgi chartreuse"},{value:"#8E8E38",name:"sgi olivedrab"},{value:"#C5C1AA",name:"sgi brightgray"},{value:"#C67171",name:"sgi salmon"},{value:"#555555",name:"sgi darkgray"},{value:"#1E1E1E",name:"sgi gray 12"},{value:"#282828",name:"sgi gray 16"},{value:"#515151",name:"sgi gray 32"},{value:"#5B5B5B",name:"sgi gray 36"},{value:"#848484",name:"sgi gray 52"},{value:"#8E8E8E",name:"sgi gray 56"},{value:"#AAAAAA",name:"sgi lightgray"},{value:"#B7B7B7",name:"sgi gray 72"},{value:"#C1C1C1",name:"sgi gray 76"},{value:"#EAEAEA",name:"sgi gray 92"},{value:"#F4F4F4",name:"sgi gray 96"},{value:"#FFFFFF",vga:!0,css:!0,name:"white"},{value:"#F5F5F5",name:"white smoke"},{value:"#F5F5F5",name:"gray 96"},{value:"#DCDCDC",css:!0,name:"gainsboro"},{value:"#D3D3D3",css:!0,name:"lightgrey"},{value:"#C0C0C0",vga:!0,css:!0,name:"silver"},{value:"#A9A9A9",css:!0,name:"darkgray"},{value:"#808080",vga:!0,css:!0,name:"gray"},{value:"#696969",css:!0,name:"dimgray"},{value:"#696969",name:"gray 42"},{value:"#000000",vga:!0,css:!0,name:"black"},{value:"#FCFCFC",name:"gray 99"},{value:"#FAFAFA",name:"gray 98"},{value:"#F7F7F7",name:"gray 97"},{value:"#F2F2F2",name:"gray 95"},{value:"#F0F0F0",name:"gray 94"},{value:"#EDEDED",name:"gray 93"},{value:"#EBEBEB",name:"gray 92"},{value:"#E8E8E8",name:"gray 91"},{value:"#E5E5E5",name:"gray 90"},{value:"#E3E3E3",name:"gray 89"},{value:"#E0E0E0",name:"gray 88"},{value:"#DEDEDE",name:"gray 87"},{value:"#DBDBDB",name:"gray 86"},{value:"#D9D9D9",name:"gray 85"},{value:"#D6D6D6",name:"gray 84"},{value:"#D4D4D4",name:"gray 83"},{value:"#D1D1D1",name:"gray 82"},{value:"#CFCFCF",name:"gray 81"},{value:"#CCCCCC",name:"gray 80"},{value:"#C9C9C9",name:"gray 79"},{value:"#C7C7C7",name:"gray 78"},{value:"#C4C4C4",name:"gray 77"},{value:"#C2C2C2",name:"gray 76"},{value:"#BFBFBF",name:"gray 75"},{value:"#BDBDBD",name:"gray 74"},{value:"#BABABA",name:"gray 73"},{value:"#B8B8B8",name:"gray 72"},{value:"#B5B5B5",name:"gray 71"},{value:"#B3B3B3",name:"gray 70"},{value:"#B0B0B0",name:"gray 69"},{value:"#ADADAD",name:"gray 68"},{value:"#ABABAB",name:"gray 67"},{value:"#A8A8A8",name:"gray 66"},{value:"#A6A6A6",name:"gray 65"},{value:"#A3A3A3",name:"gray 64"},{value:"#A1A1A1",name:"gray 63"},{value:"#9E9E9E",name:"gray 62"},{value:"#9C9C9C",name:"gray 61"},{value:"#999999",name:"gray 60"},{value:"#969696",name:"gray 59"},{value:"#949494",name:"gray 58"},{value:"#919191",name:"gray 57"},{value:"#8F8F8F",name:"gray 56"},{value:"#8C8C8C",name:"gray 55"},{value:"#8A8A8A",name:"gray 54"},{value:"#878787",name:"gray 53"},{value:"#858585",name:"gray 52"},{value:"#828282",name:"gray 51"},{value:"#7F7F7F",name:"gray 50"},{value:"#7D7D7D",name:"gray 49"},{value:"#7A7A7A",name:"gray 48"},{value:"#787878",name:"gray 47"},{value:"#757575",name:"gray 46"},{value:"#737373",name:"gray 45"},{value:"#707070",name:"gray 44"},{value:"#6E6E6E",name:"gray 43"},{value:"#666666",name:"gray 40"},{value:"#636363",name:"gray 39"},{value:"#616161",name:"gray 38"},{value:"#5E5E5E",name:"gray 37"},{value:"#5C5C5C",name:"gray 36"},{value:"#595959",name:"gray 35"},{value:"#575757",name:"gray 34"},{value:"#545454",name:"gray 33"},{value:"#525252",name:"gray 32"},{value:"#4F4F4F",name:"gray 31"},{value:"#4D4D4D",name:"gray 30"},{value:"#4A4A4A",name:"gray 29"},{value:"#474747",name:"gray 28"},{value:"#454545",name:"gray 27"},{value:"#424242",name:"gray 26"},{value:"#404040",name:"gray 25"},{value:"#3D3D3D",name:"gray 24"},{value:"#3B3B3B",name:"gray 23"},{value:"#383838",name:"gray 22"},{value:"#363636",name:"gray 21"},{value:"#333333",name:"gray 20"},{value:"#303030",name:"gray 19"},{value:"#2E2E2E",name:"gray 18"},{value:"#2B2B2B",name:"gray 17"},{value:"#292929",name:"gray 16"},{value:"#262626",name:"gray 15"},{value:"#242424",name:"gray 14"},{value:"#212121",name:"gray 13"},{value:"#1F1F1F",name:"gray 12"},{value:"#1C1C1C",name:"gray 11"},{value:"#1A1A1A",name:"gray 10"},{value:"#171717",name:"gray 9"},{value:"#141414",name:"gray 8"},{value:"#121212",name:"gray 7"},{value:"#0F0F0F",name:"gray 6"},{value:"#0D0D0D",name:"gray 5"},{value:"#0A0A0A",name:"gray 4"},{value:"#080808",name:"gray 3"},{value:"#050505",name:"gray 2"},{value:"#030303",name:"gray 1"},{value:"#F5F5F5",css:!0,name:"whitesmoke"}]});var GgA=He((rLe,dI)=>{"use strict";var dv=NgA(),FgA=dv.filter(function(t){return!!t.css}),_gA=dv.filter(function(t){return!!t.vga});dI.exports=function(t){var e=dI.exports.get(t);return e&&e.value};dI.exports.get=function(t){return t=t||"",t=t.trim().toLowerCase(),dv.filter(function(e){return e.name.toLowerCase()===t}).pop()};dI.exports.all=dI.exports.get.all=function(){return dv};dI.exports.get.css=function(t){return t?(t=t||"",t=t.trim().toLowerCase(),FgA.filter(function(e){return e.name.toLowerCase()===t}).pop()):FgA};dI.exports.get.vga=function(t){return t?(t=t||"",t=t.trim().toLowerCase(),_gA.filter(function(e){return e.name.toLowerCase()===t}).pop()):_gA}});var olA=He((sLe,nlA)=>{"use strict";var UjA=1/0,JjA="[object Symbol]",YjA=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,zgA="\\ud800-\\udfff",TjA="\\u0300-\\u036f\\ufe20-\\ufe23",HjA="\\u20d0-\\u20f0",PgA="\\u2700-\\u27bf",jgA="a-z\\xdf-\\xf6\\xf8-\\xff",OjA="\\xac\\xb1\\xd7\\xf7",zjA="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",PjA="\\u2000-\\u206f",jjA=" \\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",qgA="A-Z\\xc0-\\xd6\\xd8-\\xde",qjA="\\ufe0e\\ufe0f",VgA=OjA+zjA+PjA+jjA,ZgA="['\u2019]",KgA="["+VgA+"]",VjA="["+TjA+HjA+"]",WgA="\\d+",ZjA="["+PgA+"]",XgA="["+jgA+"]",$gA="[^"+zgA+VgA+WgA+PgA+jgA+qgA+"]",WjA="\\ud83c[\\udffb-\\udfff]",XjA="(?:"+VjA+"|"+WjA+")",$jA="[^"+zgA+"]",AlA="(?:\\ud83c[\\udde6-\\uddff]){2}",elA="[\\ud800-\\udbff][\\udc00-\\udfff]",PQ="["+qgA+"]",AqA="\\u200d",UgA="(?:"+XgA+"|"+$gA+")",eqA="(?:"+PQ+"|"+$gA+")",JgA="(?:"+ZgA+"(?:d|ll|m|re|s|t|ve))?",YgA="(?:"+ZgA+"(?:D|LL|M|RE|S|T|VE))?",tlA=XjA+"?",ilA="["+qjA+"]?",tqA="(?:"+AqA+"(?:"+[$jA,AlA,elA].join("|")+")"+ilA+tlA+")*",iqA=ilA+tlA+tqA,nqA="(?:"+[ZjA,AlA,elA].join("|")+")"+iqA,oqA=RegExp([PQ+"?"+XgA+"+"+JgA+"(?="+[KgA,PQ,"$"].join("|")+")",eqA+"+"+YgA+"(?="+[KgA,PQ+UgA,"$"].join("|")+")",PQ+"?"+UgA+"+"+JgA,PQ+"+"+YgA,WgA,nqA].join("|"),"g"),rqA=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,sqA=typeof global=="object"&&global&&global.Object===Object&&global,aqA=typeof self=="object"&&self&&self.Object===Object&&self,cqA=sqA||aqA||Function("return this")();function gqA(t){return t.match(YjA)||[]}function lqA(t){return rqA.test(t)}function IqA(t){return t.match(oqA)||[]}var CqA=Object.prototype,dqA=CqA.toString,TgA=cqA.Symbol,HgA=TgA?TgA.prototype:void 0,OgA=HgA?HgA.toString:void 0;function BqA(t){if(typeof t=="string")return t;if(QqA(t))return OgA?OgA.call(t):"";var e=t+"";return e=="0"&&1/t==-UjA?"-0":e}function EqA(t){return!!t&&typeof t=="object"}function QqA(t){return typeof t=="symbol"||EqA(t)&&dqA.call(t)==JjA}function uqA(t){return t==null?"":BqA(t)}function hqA(t,e,A){return t=uqA(t),e=A?void 0:e,e===void 0?lqA(t)?IqA(t):gqA(t):t.match(e)||[]}nlA.exports=hqA});var mlA=He((aLe,flA)=>{"use strict";var fqA=1/0,mqA="[object Symbol]",pqA=/^\s+/,pU="\\ud800-\\udfff",glA="\\u0300-\\u036f\\ufe20-\\ufe23",llA="\\u20d0-\\u20f0",IlA="\\ufe0e\\ufe0f",DqA="["+pU+"]",fU="["+glA+llA+"]",mU="\\ud83c[\\udffb-\\udfff]",wqA="(?:"+fU+"|"+mU+")",ClA="[^"+pU+"]",dlA="(?:\\ud83c[\\udde6-\\uddff]){2}",BlA="[\\ud800-\\udbff][\\udc00-\\udfff]",ElA="\\u200d",QlA=wqA+"?",ulA="["+IlA+"]?",yqA="(?:"+ElA+"(?:"+[ClA,dlA,BlA].join("|")+")"+ulA+QlA+")*",vqA=ulA+QlA+yqA,MqA="(?:"+[ClA+fU+"?",fU,dlA,BlA,DqA].join("|")+")",bqA=RegExp(mU+"(?="+mU+")|"+MqA+vqA,"g"),kqA=RegExp("["+ElA+pU+glA+llA+IlA+"]"),SqA=typeof global=="object"&&global&&global.Object===Object&&global,RqA=typeof self=="object"&&self&&self.Object===Object&&self,LqA=SqA||RqA||Function("return this")();function xqA(t){return t.split("")}function NqA(t,e,A,i){for(var n=t.length,o=A+(i?1:-1);i?o--:++o-1;);return A}function KqA(t){return kqA.test(t)}function rlA(t){return KqA(t)?UqA(t):xqA(t)}function UqA(t){return t.match(bqA)||[]}var JqA=Object.prototype,YqA=JqA.toString,slA=LqA.Symbol,alA=slA?slA.prototype:void 0,clA=alA?alA.toString:void 0;function TqA(t,e,A){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),A=A>n?n:A,A<0&&(A+=n),n=e>A?0:A-e>>>0,e>>>=0;for(var o=Array(n);++i=i?t:TqA(t,e,A)}function OqA(t){return!!t&&typeof t=="object"}function zqA(t){return typeof t=="symbol"||OqA(t)&&YqA.call(t)==mqA}function PqA(t){return t==null?"":hlA(t)}function jqA(t,e,A){if(t=PqA(t),t&&(A||e===void 0))return t.replace(pqA,"");if(!t||!(e=hlA(e)))return t;var i=rlA(t),n=GqA(i,rlA(e));return HqA(i,n).join("")}flA.exports=jqA});var YlA=He((cLe,JlA)=>{"use strict";var DU=1/0,qqA=9007199254740991,VqA=17976931348623157e292,plA=NaN,ZqA="[object Symbol]",WqA=/^\s+|\s+$/g,XqA=/^[-+]0x[0-9a-f]+$/i,$qA=/^0b[01]+$/i,AVA=/^0o[0-7]+$/i,MU="\\ud800-\\udfff",blA="\\u0300-\\u036f\\ufe20-\\ufe23",klA="\\u20d0-\\u20f0",SlA="\\ufe0e\\ufe0f",eVA="["+MU+"]",wU="["+blA+klA+"]",yU="\\ud83c[\\udffb-\\udfff]",tVA="(?:"+wU+"|"+yU+")",RlA="[^"+MU+"]",LlA="(?:\\ud83c[\\udde6-\\uddff]){2}",xlA="[\\ud800-\\udbff][\\udc00-\\udfff]",NlA="\\u200d",FlA=tVA+"?",_lA="["+SlA+"]?",iVA="(?:"+NlA+"(?:"+[RlA,LlA,xlA].join("|")+")"+_lA+FlA+")*",nVA=_lA+FlA+iVA,oVA="(?:"+[RlA+wU+"?",wU,LlA,xlA,eVA].join("|")+")",vU=RegExp(yU+"(?="+yU+")|"+oVA+nVA,"g"),rVA=RegExp("["+NlA+MU+blA+klA+SlA+"]"),sVA=parseInt,aVA=typeof global=="object"&&global&&global.Object===Object&&global,cVA=typeof self=="object"&&self&&self.Object===Object&&self,gVA=aVA||cVA||Function("return this")(),lVA=CVA("length");function IVA(t){return t.split("")}function CVA(t){return function(e){return e?.[t]}}function bU(t){return rVA.test(t)}function GlA(t){return bU(t)?BVA(t):lVA(t)}function dVA(t){return bU(t)?EVA(t):IVA(t)}function BVA(t){for(var e=vU.lastIndex=0;vU.test(t);)e++;return e}function EVA(t){return t.match(vU)||[]}var QVA=Object.prototype,uVA=QVA.toString,DlA=gVA.Symbol,hVA=Math.ceil,fVA=Math.floor,wlA=DlA?DlA.prototype:void 0,ylA=wlA?wlA.toString:void 0;function vlA(t,e){var A="";if(!t||e<1||e>qqA)return A;do e%2&&(A+=t),e=fVA(e/2),e&&(t+=t);while(e);return A}function mVA(t,e,A){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),A=A>n?n:A,A<0&&(A+=n),n=e>A?0:A-e>>>0,e>>>=0;for(var o=Array(n);++i=i?t:mVA(t,e,A)}function DVA(t,e){e=e===void 0?" ":KlA(e);var A=e.length;if(A<2)return A?vlA(e,t):e;var i=vlA(e,hVA(t/GlA(e)));return bU(e)?pVA(dVA(i),0,t).join(""):i.slice(0,t)}function MlA(t){var e=typeof t;return!!t&&(e=="object"||e=="function")}function wVA(t){return!!t&&typeof t=="object"}function UlA(t){return typeof t=="symbol"||wVA(t)&&uVA.call(t)==ZqA}function yVA(t){if(!t)return t===0?t:0;if(t=MVA(t),t===DU||t===-DU){var e=t<0?-1:1;return e*VqA}return t===t?t:0}function vVA(t){var e=yVA(t),A=e%1;return e===e?A?e-A:e:0}function MVA(t){if(typeof t=="number")return t;if(UlA(t))return plA;if(MlA(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=MlA(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=t.replace(WqA,"");var A=$qA.test(t);return A||AVA.test(t)?sVA(t.slice(2),A?2:8):XqA.test(t)?plA:+t}function bVA(t){return t==null?"":KlA(t)}function kVA(t,e,A){t=bVA(t),e=vVA(e);var i=e?GlA(t):0;return e&&i{"use strict";TlA.exports=(t,e,A,i)=>{let n=(t+(i||"")).toString().includes("%");if(typeof t=="string"?[t,e,A,i]=t.match(/(0?\.?\d{1,3})%?\b/g).map(Number):i!==void 0&&(i=parseFloat(i)),typeof t!="number"||typeof e!="number"||typeof A!="number"||t>255||e>255||A>255)throw new TypeError("Expected three numbers below 256");if(typeof i=="number"){if(!n&&i>=0&&i<=1)i=Math.round(255*i);else if(n&&i>=0&&i<=100)i=Math.round(255*i/100);else throw new TypeError(`Expected alpha value (${i}) as a fraction or percentage`);i=(i|256).toString(16).slice(1)}else i="";return(A|e<<8|t<<16|1<<24).toString(16).slice(1)+i}});var zlA=He((lLe,OlA)=>{"use strict";var Lf="a-f\\d",SVA=`#?[${Lf}]{3}[${Lf}]?`,RVA=`#?[${Lf}]{6}([${Lf}]{2})?`,LVA=new RegExp(`[^#${Lf}]`,"gi"),xVA=new RegExp(`^${SVA}$|^${RVA}$`,"i");OlA.exports=(t,e={})=>{if(typeof t!="string"||LVA.test(t)||!xVA.test(t))throw new TypeError("Expected a valid hex string");t=t.replace(/^#/,"");let A=1;t.length===8&&(A=Number.parseInt(t.slice(6,8),16)/255,t=t.slice(0,6)),t.length===4&&(A=Number.parseInt(t.slice(3,4).repeat(2),16)/255,t=t.slice(0,3)),t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let i=Number.parseInt(t,16),n=i>>16,o=i>>8&255,r=i&255,s=typeof e.alpha=="number"?e.alpha:A;if(e.format==="array")return[n,o,r,s];if(e.format==="css"){let a=s===1?"":` / ${Number((s*100).toFixed(2))}%`;return`rgb(${n} ${o} ${r}${a})`}return{red:n,green:o,blue:r,alpha:s}}});var qlA=He((ILe,jlA)=>{"use strict";var NVA=GgA(),FVA=olA(),_VA=mlA(),GVA=YlA(),KVA=HlA(),PlA=zlA(),kU=.75,SU=.25,RU=16777215,UVA=49979693;jlA.exports=function(t){return"#"+TVA(String(JSON.stringify(t)))};function JVA(t){var e=FVA(t),A=[];return e.forEach(function(i){var n=NVA(i);n&&A.push(PlA(_VA(n,"#"),{format:"array"}))}),A}function YVA(t){var e=[0,0,0];return t.forEach(function(A){for(var i=0;i<3;i++)e[i]+=A[i]}),[e[0]/t.length,e[1]/t.length,e[2]/t.length]}function TVA(t){var e,A=JVA(t);A.length>0&&(e=YVA(A));var i=1,n=0,o=1;if(t.length>0)for(var r=0;rn&&(n=t[r].charCodeAt(0)),o=parseInt(RU/n),i=(i+t[r].charCodeAt(0)*o*UVA)%RU;var s=(i*t.length%RU).toString(16);s=GVA(s,6,s);var a=PlA(s,{format:"array"});return e?KVA(SU*a[0]+kU*e[0],SU*a[1]+kU*e[1],SU*a[2]+kU*e[2]):s}});function vv(t,e){return Object.is(t,e)}var _r=null,Ff=!1,Mv=1,aa=Symbol("SIGNAL");function pi(t){let e=_r;return _r=t,e}function bv(){return _r}var Cd={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:"unknown",producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function eu(t){if(Ff)throw new Error("");if(_r===null)return;_r.consumerOnSignalRead(t);let e=_r.nextProducerIndex++;if(Jf(_r),e<_r.producerNode.length&&_r.producerNode[e]!==t&&Au(_r)){let A=_r.producerNode[e];Uf(A,_r.producerIndexOfThis[e])}_r.producerNode[e]!==t&&(_r.producerNode[e]=t,_r.producerIndexOfThis[e]=Au(_r)?_U(t,_r,e):0),_r.producerLastReadVersion[e]=t.version}function FU(){Mv++}function kv(t){if(!(Au(t)&&!t.dirty)&&!(!t.dirty&&t.lastCleanEpoch===Mv)){if(!t.producerMustRecompute(t)&&!Kf(t)){yv(t);return}t.producerRecomputeValue(t),yv(t)}}function Sv(t){if(t.liveConsumerNode===void 0)return;let e=Ff;Ff=!0;try{for(let A of t.liveConsumerNode)A.dirty||i0A(A)}finally{Ff=e}}function Rv(){return _r?.consumerAllowSignalWrites!==!1}function i0A(t){t.dirty=!0,Sv(t),t.consumerMarkedDirty?.(t)}function yv(t){t.dirty=!1,t.lastCleanEpoch=Mv}function tu(t){return t&&(t.nextProducerIndex=0),pi(t)}function Gf(t,e){if(pi(e),!(!t||t.producerNode===void 0||t.producerIndexOfThis===void 0||t.producerLastReadVersion===void 0)){if(Au(t))for(let A=t.nextProducerIndex;At.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function Kf(t){Jf(t);for(let e=0;e0}function Jf(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}function GU(t){t.liveConsumerNode??=[],t.liveConsumerIndexOfThis??=[]}function KU(t){return t.producerNode!==void 0}function Yf(t,e){let A=Object.create(n0A);A.computation=t,e!==void 0&&(A.equal=e);let i=()=>{if(kv(A),eu(A),A.value===_f)throw A.error;return A.value};return i[aa]=A,i}var Dv=Symbol("UNSET"),wv=Symbol("COMPUTING"),_f=Symbol("ERRORED"),n0A=Fe(sA({},Cd),{value:Dv,dirty:!0,error:null,equal:vv,kind:"computed",producerMustRecompute(t){return t.value===Dv||t.value===wv},producerRecomputeValue(t){if(t.value===wv)throw new Error("Detected cycle in computations.");let e=t.value;t.value=wv;let A=tu(t),i,n=!1;try{i=t.computation(),pi(null),n=e!==Dv&&e!==_f&&i!==_f&&t.equal(e,i)}catch(o){i=_f,t.error=o}finally{Gf(t,A)}if(n){t.value=e;return}t.value=i,t.version++}});function o0A(){throw new Error}var UU=o0A;function JU(t){UU(t)}function Lv(t){UU=t}var r0A=null;function xv(t,e){let A=Object.create(Tf);A.value=t,e!==void 0&&(A.equal=e);let i=()=>(eu(A),A.value);return i[aa]=A,i}function nu(t,e){Rv()||JU(t),t.equal(t.value,e)||(t.value=e,s0A(t))}function Nv(t,e){Rv()||JU(t),nu(t,e(t.value))}var Tf=Fe(sA({},Cd),{equal:vv,value:void 0,kind:"signal"});function s0A(t){t.version++,FU(),Sv(t),r0A?.()}function Fv(t){let e=pi(null);try{return t()}finally{pi(e)}}var _v;function ou(){return _v}function I0(t){let e=_v;return _v=t,e}var Hf=Symbol("NotFound");function Vt(t){return typeof t=="function"}function dd(t){let A=t(i=>{Error.call(i),i.stack=new Error().stack});return A.prototype=Object.create(Error.prototype),A.prototype.constructor=A,A}var Of=dd(t=>function(A){t(this),this.message=A?`${A.length} errors occurred during unsubscription: +${A.map((i,n)=>`${n+1}) ${i.toString()}`).join(` + `)}`:"",this.name="UnsubscriptionError",this.errors=A});function QI(t,e){if(t){let A=t.indexOf(e);0<=A&&t.splice(A,1)}}var Kt=class t{constructor(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let e;if(!this.closed){this.closed=!0;let{_parentage:A}=this;if(A)if(this._parentage=null,Array.isArray(A))for(let o of A)o.remove(this);else A.remove(this);let{initialTeardown:i}=this;if(Vt(i))try{i()}catch(o){e=o instanceof Of?o.errors:[o]}let{_finalizers:n}=this;if(n){this._finalizers=null;for(let o of n)try{YU(o)}catch(r){e=e??[],r instanceof Of?e=[...e,...r.errors]:e.push(r)}}if(e)throw new Of(e)}}add(e){var A;if(e&&e!==this)if(this.closed)YU(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(A=this._finalizers)!==null&&A!==void 0?A:[]).push(e)}}_hasParent(e){let{_parentage:A}=this;return A===e||Array.isArray(A)&&A.includes(e)}_addParent(e){let{_parentage:A}=this;this._parentage=Array.isArray(A)?(A.push(e),A):A?[A,e]:e}_removeParent(e){let{_parentage:A}=this;A===e?this._parentage=null:Array.isArray(A)&&QI(A,e)}remove(e){let{_finalizers:A}=this;A&&QI(A,e),e instanceof t&&e._removeParent(this)}};Kt.EMPTY=(()=>{let t=new Kt;return t.closed=!0,t})();var Gv=Kt.EMPTY;function zf(t){return t instanceof Kt||t&&"closed"in t&&Vt(t.remove)&&Vt(t.add)&&Vt(t.unsubscribe)}function YU(t){Vt(t)?t():t.unsubscribe()}var rg={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var Bd={setTimeout(t,e,...A){let{delegate:i}=Bd;return i?.setTimeout?i.setTimeout(t,e,...A):setTimeout(t,e,...A)},clearTimeout(t){let{delegate:e}=Bd;return(e?.clearTimeout||clearTimeout)(t)},delegate:void 0};function Pf(t){Bd.setTimeout(()=>{let{onUnhandledError:e}=rg;if(e)e(t);else throw t})}function ru(){}var TU=Kv("C",void 0,void 0);function HU(t){return Kv("E",void 0,t)}function OU(t){return Kv("N",t,void 0)}function Kv(t,e,A){return{kind:t,value:e,error:A}}var uI=null;function Ed(t){if(rg.useDeprecatedSynchronousErrorHandling){let e=!uI;if(e&&(uI={errorThrown:!1,error:null}),t(),e){let{errorThrown:A,error:i}=uI;if(uI=null,A)throw i}}else t()}function zU(t){rg.useDeprecatedSynchronousErrorHandling&&uI&&(uI.errorThrown=!0,uI.error=t)}var C0=class extends Kt{constructor(e){super(),this.isStopped=!1,e?(this.destination=e,zf(e)&&e.add(this)):this.destination=C0A}static create(e,A,i){return new d0(e,A,i)}next(e){this.isStopped?Jv(OU(e),this):this._next(e)}error(e){this.isStopped?Jv(HU(e),this):(this.isStopped=!0,this._error(e))}complete(){this.isStopped?Jv(TU,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(e){this.destination.next(e)}_error(e){try{this.destination.error(e)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},l0A=Function.prototype.bind;function Uv(t,e){return l0A.call(t,e)}var Yv=class{constructor(e){this.partialObserver=e}next(e){let{partialObserver:A}=this;if(A.next)try{A.next(e)}catch(i){jf(i)}}error(e){let{partialObserver:A}=this;if(A.error)try{A.error(e)}catch(i){jf(i)}else jf(e)}complete(){let{partialObserver:e}=this;if(e.complete)try{e.complete()}catch(A){jf(A)}}},d0=class extends C0{constructor(e,A,i){super();let n;if(Vt(e)||!e)n={next:e??void 0,error:A??void 0,complete:i??void 0};else{let o;this&&rg.useDeprecatedNextContext?(o=Object.create(e),o.unsubscribe=()=>this.unsubscribe(),n={next:e.next&&Uv(e.next,o),error:e.error&&Uv(e.error,o),complete:e.complete&&Uv(e.complete,o)}):n=e}this.destination=new Yv(n)}};function jf(t){rg.useDeprecatedSynchronousErrorHandling?zU(t):Pf(t)}function I0A(t){throw t}function Jv(t,e){let{onStoppedNotification:A}=rg;A&&Bd.setTimeout(()=>A(t,e))}var C0A={closed:!0,next:ru,error:I0A,complete:ru};var Qd=typeof Symbol=="function"&&Symbol.observable||"@@observable";function Os(t){return t}function Tv(...t){return Hv(t)}function Hv(t){return t.length===0?Os:t.length===1?t[0]:function(A){return t.reduce((i,n)=>n(i),A)}}var gt=(()=>{class t{constructor(A){A&&(this._subscribe=A)}lift(A){let i=new t;return i.source=this,i.operator=A,i}subscribe(A,i,n){let o=B0A(A)?A:new d0(A,i,n);return Ed(()=>{let{operator:r,source:s}=this;o.add(r?r.call(o,s):s?this._subscribe(o):this._trySubscribe(o))}),o}_trySubscribe(A){try{return this._subscribe(A)}catch(i){A.error(i)}}forEach(A,i){return i=PU(i),new i((n,o)=>{let r=new d0({next:s=>{try{A(s)}catch(a){o(a),r.unsubscribe()}},error:o,complete:n});this.subscribe(r)})}_subscribe(A){var i;return(i=this.source)===null||i===void 0?void 0:i.subscribe(A)}[Qd](){return this}pipe(...A){return Hv(A)(this)}toPromise(A){return A=PU(A),new A((i,n)=>{let o;this.subscribe(r=>o=r,r=>n(r),()=>i(o))})}}return t.create=e=>new t(e),t})();function PU(t){var e;return(e=t??rg.Promise)!==null&&e!==void 0?e:Promise}function d0A(t){return t&&Vt(t.next)&&Vt(t.error)&&Vt(t.complete)}function B0A(t){return t&&t instanceof C0||d0A(t)&&zf(t)}function Ov(t){return Vt(t?.lift)}function ti(t){return e=>{if(Ov(e))return e.lift(function(A){try{return t(A,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function ei(t,e,A,i,n){return new zv(t,e,A,i,n)}var zv=class extends C0{constructor(e,A,i,n,o,r){super(e),this.onFinalize=o,this.shouldUnsubscribe=r,this._next=A?function(s){try{A(s)}catch(a){e.error(a)}}:super._next,this._error=n?function(s){try{n(s)}catch(a){e.error(a)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(s){e.error(s)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var e;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){let{closed:A}=this;super.unsubscribe(),!A&&((e=this.onFinalize)===null||e===void 0||e.call(this))}}};function ud(){return ti((t,e)=>{let A=null;t._refCount++;let i=ei(e,void 0,void 0,void 0,()=>{if(!t||t._refCount<=0||0<--t._refCount){A=null;return}let n=t._connection,o=A;A=null,n&&(!o||n===o)&&n.unsubscribe(),e.unsubscribe()});t.subscribe(i),i.closed||(A=t.connect())})}var C2=class extends gt{constructor(e,A){super(),this.source=e,this.subjectFactory=A,this._subject=null,this._refCount=0,this._connection=null,Ov(e)&&(this.lift=e.lift)}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){let e=this._subject;return(!e||e.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;let{_connection:e}=this;this._subject=this._connection=null,e?.unsubscribe()}connect(){let e=this._connection;if(!e){e=this._connection=new Kt;let A=this.getSubject();e.add(this.source.subscribe(ei(A,void 0,()=>{this._teardown(),A.complete()},i=>{this._teardown(),A.error(i)},()=>this._teardown()))),e.closed&&(this._connection=null,e=Kt.EMPTY)}return e}refCount(){return ud()(this)}};var jU=dd(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var qA=(()=>{class t extends gt{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(A){let i=new hd(this,this);return i.operator=A,i}_throwIfClosed(){if(this.closed)throw new jU}next(A){Ed(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let i of this.currentObservers)i.next(A)}})}error(A){Ed(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=A;let{observers:i}=this;for(;i.length;)i.shift().error(A)}})}complete(){Ed(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:A}=this;for(;A.length;)A.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var A;return((A=this.observers)===null||A===void 0?void 0:A.length)>0}_trySubscribe(A){return this._throwIfClosed(),super._trySubscribe(A)}_subscribe(A){return this._throwIfClosed(),this._checkFinalizedStatuses(A),this._innerSubscribe(A)}_innerSubscribe(A){let{hasError:i,isStopped:n,observers:o}=this;return i||n?Gv:(this.currentObservers=null,o.push(A),new Kt(()=>{this.currentObservers=null,QI(o,A)}))}_checkFinalizedStatuses(A){let{hasError:i,thrownError:n,isStopped:o}=this;i?A.error(n):o&&A.complete()}asObservable(){let A=new gt;return A.source=this,A}}return t.create=(e,A)=>new hd(e,A),t})(),hd=class extends qA{constructor(e,A){super(),this.destination=e,this.source=A}next(e){var A,i;(i=(A=this.destination)===null||A===void 0?void 0:A.next)===null||i===void 0||i.call(A,e)}error(e){var A,i;(i=(A=this.destination)===null||A===void 0?void 0:A.error)===null||i===void 0||i.call(A,e)}complete(){var e,A;(A=(e=this.destination)===null||e===void 0?void 0:e.complete)===null||A===void 0||A.call(e)}_subscribe(e){var A,i;return(i=(A=this.source)===null||A===void 0?void 0:A.subscribe(e))!==null&&i!==void 0?i:Gv}};var Fi=class extends qA{constructor(e){super(),this._value=e}get value(){return this.getValue()}_subscribe(e){let A=super._subscribe(e);return!A.closed&&e.next(this._value),A}getValue(){let{hasError:e,thrownError:A,_value:i}=this;if(e)throw A;return this._throwIfClosed(),i}next(e){super.next(this._value=e)}};var su={now(){return(su.delegate||Date).now()},delegate:void 0};var sg=class extends qA{constructor(e=1/0,A=1/0,i=su){super(),this._bufferSize=e,this._windowTime=A,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=A===1/0,this._bufferSize=Math.max(1,e),this._windowTime=Math.max(1,A)}next(e){let{isStopped:A,_buffer:i,_infiniteTimeWindow:n,_timestampProvider:o,_windowTime:r}=this;A||(i.push(e),!n&&i.push(o.now()+r)),this._trimBuffer(),super.next(e)}_subscribe(e){this._throwIfClosed(),this._trimBuffer();let A=this._innerSubscribe(e),{_infiniteTimeWindow:i,_buffer:n}=this,o=n.slice();for(let r=0;rt.complete());function Wf(t){return t&&Vt(t.schedule)}function Pv(t){return t[t.length-1]}function Xf(t){return Vt(Pv(t))?t.pop():void 0}function Al(t){return Wf(Pv(t))?t.pop():void 0}function VU(t,e){return typeof Pv(t)=="number"?t.pop():e}function WU(t,e,A,i){function n(o){return o instanceof A?o:new A(function(r){r(o)})}return new(A||(A=Promise))(function(o,r){function s(g){try{c(i.next(g))}catch(I){r(I)}}function a(g){try{c(i.throw(g))}catch(I){r(I)}}function c(g){g.done?o(g.value):n(g.value).then(s,a)}c((i=i.apply(t,e||[])).next())})}function ZU(t){var e=typeof Symbol=="function"&&Symbol.iterator,A=e&&t[e],i=0;if(A)return A.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function hI(t){return this instanceof hI?(this.v=t,this):new hI(t)}function XU(t,e,A){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=A.apply(t,e||[]),n,o=[];return n=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",r),n[Symbol.asyncIterator]=function(){return this},n;function r(d){return function(B){return Promise.resolve(B).then(d,I)}}function s(d,B){i[d]&&(n[d]=function(E){return new Promise(function(u,h){o.push([d,E,u,h])>1||a(d,E)})},B&&(n[d]=B(n[d])))}function a(d,B){try{c(i[d](B))}catch(E){C(o[0][3],E)}}function c(d){d.value instanceof hI?Promise.resolve(d.value.v).then(g,I):C(o[0][2],d)}function g(d){a("next",d)}function I(d){a("throw",d)}function C(d,B){d(B),o.shift(),o.length&&a(o[0][0],o[0][1])}}function $U(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],A;return e?e.call(t):(t=typeof ZU=="function"?ZU(t):t[Symbol.iterator](),A={},i("next"),i("throw"),i("return"),A[Symbol.asyncIterator]=function(){return this},A);function i(o){A[o]=t[o]&&function(r){return new Promise(function(s,a){r=t[o](r),n(s,a,r.done,r.value)})}}function n(o,r,s,a){Promise.resolve(a).then(function(c){o({value:c,done:s})},r)}}var md=t=>t&&typeof t.length=="number"&&typeof t!="function";function $f(t){return Vt(t?.then)}function Am(t){return Vt(t[Qd])}function em(t){return Symbol.asyncIterator&&Vt(t?.[Symbol.asyncIterator])}function tm(t){return new TypeError(`You provided ${t!==null&&typeof t=="object"?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}function E0A(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var im=E0A();function nm(t){return Vt(t?.[im])}function om(t){return XU(this,arguments,function*(){let A=t.getReader();try{for(;;){let{value:i,done:n}=yield hI(A.read());if(n)return yield hI(void 0);yield yield hI(i)}}finally{A.releaseLock()}})}function rm(t){return Vt(t?.getReader)}function Wn(t){if(t instanceof gt)return t;if(t!=null){if(Am(t))return Q0A(t);if(md(t))return u0A(t);if($f(t))return h0A(t);if(em(t))return AJ(t);if(nm(t))return f0A(t);if(rm(t))return m0A(t)}throw tm(t)}function Q0A(t){return new gt(e=>{let A=t[Qd]();if(Vt(A.subscribe))return A.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function u0A(t){return new gt(e=>{for(let A=0;A{t.then(A=>{e.closed||(e.next(A),e.complete())},A=>e.error(A)).then(null,Pf)})}function f0A(t){return new gt(e=>{for(let A of t)if(e.next(A),e.closed)return;e.complete()})}function AJ(t){return new gt(e=>{p0A(t,e).catch(A=>e.error(A))})}function m0A(t){return AJ(om(t))}function p0A(t,e){var A,i,n,o;return WU(this,void 0,void 0,function*(){try{for(A=$U(t);i=yield A.next(),!i.done;){let r=i.value;if(e.next(r),e.closed)return}}catch(r){n={error:r}}finally{try{i&&!i.done&&(o=A.return)&&(yield o.call(A))}finally{if(n)throw n.error}}e.complete()})}function ca(t,e,A,i=0,n=!1){let o=e.schedule(function(){A(),n?t.add(this.schedule(null,i)):this.unsubscribe()},i);if(t.add(o),!n)return o}function sm(t,e=0){return ti((A,i)=>{A.subscribe(ei(i,n=>ca(i,t,()=>i.next(n),e),()=>ca(i,t,()=>i.complete(),e),n=>ca(i,t,()=>i.error(n),e)))})}function am(t,e=0){return ti((A,i)=>{i.add(t.schedule(()=>A.subscribe(i),e))})}function eJ(t,e){return Wn(t).pipe(am(e),sm(e))}function tJ(t,e){return Wn(t).pipe(am(e),sm(e))}function iJ(t,e){return new gt(A=>{let i=0;return e.schedule(function(){i===t.length?A.complete():(A.next(t[i++]),A.closed||this.schedule())})})}function nJ(t,e){return new gt(A=>{let i;return ca(A,e,()=>{i=t[im](),ca(A,e,()=>{let n,o;try{({value:n,done:o}=i.next())}catch(r){A.error(r);return}o?A.complete():A.next(n)},0,!0)}),()=>Vt(i?.return)&&i.return()})}function cm(t,e){if(!t)throw new Error("Iterable cannot be null");return new gt(A=>{ca(A,e,()=>{let i=t[Symbol.asyncIterator]();ca(A,e,()=>{i.next().then(n=>{n.done?A.complete():A.next(n.value)})},0,!0)})})}function oJ(t,e){return cm(om(t),e)}function rJ(t,e){if(t!=null){if(Am(t))return eJ(t,e);if(md(t))return iJ(t,e);if($f(t))return tJ(t,e);if(em(t))return cm(t,e);if(nm(t))return nJ(t,e);if(rm(t))return oJ(t,e)}throw tm(t)}function ro(t,e){return e?rJ(t,e):Wn(t)}function Ce(...t){let e=Al(t);return ro(t,e)}function d2(t,e){let A=Vt(t)?t:()=>t,i=n=>n.error(A());return new gt(e?n=>e.schedule(i,0,n):i)}function B2(t){return!!t&&(t instanceof gt||Vt(t.lift)&&Vt(t.subscribe))}var B0=dd(t=>function(){t(this),this.name="EmptyError",this.message="no elements in sequence"});function sJ(t){return t instanceof Date&&!isNaN(t)}function je(t,e){return ti((A,i)=>{let n=0;A.subscribe(ei(i,o=>{i.next(t.call(e,o,n++))}))})}var{isArray:D0A}=Array;function w0A(t,e){return D0A(e)?t(...e):t(e)}function pd(t){return je(e=>w0A(t,e))}var{isArray:y0A}=Array,{getPrototypeOf:v0A,prototype:M0A,keys:b0A}=Object;function gm(t){if(t.length===1){let e=t[0];if(y0A(e))return{args:e,keys:null};if(k0A(e)){let A=b0A(e);return{args:A.map(i=>e[i]),keys:A}}}return{args:t,keys:null}}function k0A(t){return t&&typeof t=="object"&&v0A(t)===M0A}function lm(t,e){return t.reduce((A,i,n)=>(A[i]=e[n],A),{})}function ga(...t){let e=Al(t),A=Xf(t),{args:i,keys:n}=gm(t);if(i.length===0)return ro([],e);let o=new gt(S0A(i,e,n?r=>lm(n,r):Os));return A?o.pipe(pd(A)):o}function S0A(t,e,A=Os){return i=>{aJ(e,()=>{let{length:n}=t,o=new Array(n),r=n,s=n;for(let a=0;a{let c=ro(t[a],e),g=!1;c.subscribe(ei(i,I=>{o[a]=I,g||(g=!0,s--),s||i.next(A(o.slice()))},()=>{--r||i.complete()}))},i)},i)}}function aJ(t,e,A){t?ca(A,t,e):e()}function cJ(t,e,A,i,n,o,r,s){let a=[],c=0,g=0,I=!1,C=()=>{I&&!a.length&&!c&&e.complete()},d=E=>c{o&&e.next(E),c++;let u=!1;Wn(A(E,g++)).subscribe(ei(e,h=>{n?.(h),o?d(h):e.next(h)},()=>{u=!0},void 0,()=>{if(u)try{for(c--;a.length&&cB(h)):B(h)}C()}catch(h){e.error(h)}}))};return t.subscribe(ei(e,d,()=>{I=!0,C()})),()=>{s?.()}}function or(t,e,A=1/0){return Vt(e)?or((i,n)=>je((o,r)=>e(i,o,n,r))(Wn(t(i,n))),A):(typeof e=="number"&&(A=e),ti((i,n)=>cJ(i,n,t,A)))}function E2(t=1/0){return or(Os,t)}function gJ(){return E2(1)}function Q2(...t){return gJ()(ro(t,Al(t)))}function el(t){return new gt(e=>{Wn(t()).subscribe(e)})}function gu(...t){let e=Xf(t),{args:A,keys:i}=gm(t),n=new gt(o=>{let{length:r}=A;if(!r){o.complete();return}let s=new Array(r),a=r,c=r;for(let g=0;g{I||(I=!0,c--),s[g]=C},()=>a--,void 0,()=>{(!a||!I)&&(c||o.next(i?lm(i,s):s),o.complete())}))}});return e?n.pipe(pd(e)):n}var R0A=["addListener","removeListener"],L0A=["addEventListener","removeEventListener"],x0A=["on","off"];function lu(t,e,A,i){if(Vt(A)&&(i=A,A=void 0),i)return lu(t,e,A).pipe(pd(i));let[n,o]=_0A(t)?L0A.map(r=>s=>t[r](e,s,A)):N0A(t)?R0A.map(lJ(t,e)):F0A(t)?x0A.map(lJ(t,e)):[];if(!n&&md(t))return or(r=>lu(r,e,A))(Wn(t));if(!n)throw new TypeError("Invalid event target");return new gt(r=>{let s=(...a)=>r.next(1o(s)})}function lJ(t,e){return A=>i=>t[A](e,i)}function N0A(t){return Vt(t.addListener)&&Vt(t.removeListener)}function F0A(t){return Vt(t.on)&&Vt(t.off)}function _0A(t){return Vt(t.addEventListener)&&Vt(t.removeEventListener)}function fI(t=0,e,A=qU){let i=-1;return e!=null&&(Wf(e)?A=e:i=e),new gt(n=>{let o=sJ(t)?+t-A.now():t;o<0&&(o=0);let r=0;return A.schedule(function(){n.closed||(n.next(r++),0<=i?this.schedule(void 0,i):n.complete())},o)})}function Hn(...t){let e=Al(t),A=VU(t,1/0),i=t;return i.length?i.length===1?Wn(i[0]):E2(A)(ro(i,e)):lr}function Nt(t,e){return ti((A,i)=>{let n=0;A.subscribe(ei(i,o=>t.call(e,o,n++)&&i.next(o)))})}function IJ(t){return ti((e,A)=>{let i=!1,n=null,o=null,r=!1,s=()=>{if(o?.unsubscribe(),o=null,i){i=!1;let c=n;n=null,A.next(c)}r&&A.complete()},a=()=>{o=null,r&&A.complete()};e.subscribe(ei(A,c=>{i=!0,n=c,o||Wn(t(c)).subscribe(o=ei(A,s,a))},()=>{r=!0,(!i||!o||o.closed)&&A.complete()}))})}function Dd(t,e=cu){return IJ(()=>fI(t,e))}function Gr(t){return ti((e,A)=>{let i=null,n=!1,o;i=e.subscribe(ei(A,void 0,void 0,r=>{o=Wn(t(r,Gr(t)(e))),i?(i.unsubscribe(),i=null,o.subscribe(A)):n=!0})),n&&(i.unsubscribe(),i=null,o.subscribe(A))})}function CJ(t,e,A,i,n){return(o,r)=>{let s=A,a=e,c=0;o.subscribe(ei(r,g=>{let I=c++;a=s?t(a,g,I):(s=!0,g),i&&r.next(a)},n&&(()=>{s&&r.next(a),r.complete()})))}}function tl(t,e){return Vt(e)?or(t,e,1):or(t,1)}function ag(t,e=cu){return ti((A,i)=>{let n=null,o=null,r=null,s=()=>{if(n){n.unsubscribe(),n=null;let c=o;o=null,i.next(c)}};function a(){let c=r+t,g=e.now();if(g{o=c,r=e.now(),n||(n=e.schedule(a,t),i.add(n))},()=>{s(),i.complete()},void 0,()=>{o=n=null}))})}function u2(t){return ti((e,A)=>{let i=!1;e.subscribe(ei(A,n=>{i=!0,A.next(n)},()=>{i||A.next(t),A.complete()}))})}function Xn(t){return t<=0?()=>lr:ti((e,A)=>{let i=0;e.subscribe(ei(A,n=>{++i<=t&&(A.next(n),t<=i&&A.complete())}))})}function wd(t){return je(()=>t)}function il(t,e=Os){return t=t??G0A,ti((A,i)=>{let n,o=!0;A.subscribe(ei(i,r=>{let s=e(r);(o||!t(n,s))&&(o=!1,n=s,i.next(r))}))})}function G0A(t,e){return t===e}function Im(t=K0A){return ti((e,A)=>{let i=!1;e.subscribe(ei(A,n=>{i=!0,A.next(n)},()=>i?A.complete():A.error(t())))})}function K0A(){return new B0}function nl(t){return ti((e,A)=>{try{e.subscribe(A)}finally{A.add(t)}})}function ol(t,e){let A=arguments.length>=2;return i=>i.pipe(t?Nt((n,o)=>t(n,o,i)):Os,Xn(1),A?u2(e):Im(()=>new B0))}function yd(t){return t<=0?()=>lr:ti((e,A)=>{let i=[];e.subscribe(ei(A,n=>{i.push(n),t{for(let n of i)A.next(n);A.complete()},void 0,()=>{i=null}))})}function jv(t,e){let A=arguments.length>=2;return i=>i.pipe(t?Nt((n,o)=>t(n,o,i)):Os,yd(1),A?u2(e):Im(()=>new B0))}function Cm(){return ti((t,e)=>{let A,i=!1;t.subscribe(ei(e,n=>{let o=A;A=n,i&&e.next([o,n]),i=!0}))})}function qv(t,e){return ti(CJ(t,e,arguments.length>=2,!0))}function Iu(t={}){let{connector:e=()=>new qA,resetOnError:A=!0,resetOnComplete:i=!0,resetOnRefCountZero:n=!0}=t;return o=>{let r,s,a,c=0,g=!1,I=!1,C=()=>{s?.unsubscribe(),s=void 0},d=()=>{C(),r=a=void 0,g=I=!1},B=()=>{let E=r;d(),E?.unsubscribe()};return ti((E,u)=>{c++,!I&&!g&&C();let h=a=a??e();u.add(()=>{c--,c===0&&!I&&!g&&(s=Vv(B,n))}),h.subscribe(u),!r&&c>0&&(r=new d0({next:w=>h.next(w),error:w=>{I=!0,C(),s=Vv(d,A,w),h.error(w)},complete:()=>{g=!0,C(),s=Vv(d,i),h.complete()}}),Wn(E).subscribe(r))})(o)}}function Vv(t,e,...A){if(e===!0){t();return}if(e===!1)return;let i=new d0({next:()=>{i.unsubscribe(),t()}});return Wn(e(...A)).subscribe(i)}function h2(t,e,A){let i,n=!1;return t&&typeof t=="object"?{bufferSize:i=1/0,windowTime:e=1/0,refCount:n=!1,scheduler:A}=t:i=t??1/0,Iu({connector:()=>new sg(i,e,A),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:n})}function mI(t){return Nt((e,A)=>t<=A)}function On(...t){let e=Al(t);return ti((A,i)=>{(e?Q2(t,A,e):Q2(t,A)).subscribe(i)})}function $n(t,e){return ti((A,i)=>{let n=null,o=0,r=!1,s=()=>r&&!n&&i.complete();A.subscribe(ei(i,a=>{n?.unsubscribe();let c=0,g=o++;Wn(t(a,g)).subscribe(n=ei(i,I=>i.next(e?e(a,I,g,c++):I),()=>{n=null,s()}))},()=>{r=!0,s()}))})}function kt(t){return ti((e,A)=>{Wn(t).subscribe(ei(A,()=>A.complete(),ru)),!A.closed&&e.subscribe(A)})}function Zv(t,e=!1){return ti((A,i)=>{let n=0;A.subscribe(ei(i,o=>{let r=t(o,n++);(r||e)&&i.next(o),!r&&i.complete()}))})}function So(t,e,A){let i=Vt(t)||e||A?{next:t,error:e,complete:A}:t;return i?ti((n,o)=>{var r;(r=i.subscribe)===null||r===void 0||r.call(i);let s=!0;n.subscribe(ei(o,a=>{var c;(c=i.next)===null||c===void 0||c.call(i,a),o.next(a)},()=>{var a;s=!1,(a=i.complete)===null||a===void 0||a.call(i),o.complete()},a=>{var c;s=!1,(c=i.error)===null||c===void 0||c.call(i,a),o.error(a)},()=>{var a,c;s&&((a=i.unsubscribe)===null||a===void 0||a.call(i)),(c=i.finalize)===null||c===void 0||c.call(i)}))}):Os}var rY="https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss",te=class extends Error{code;constructor(e,A){super(Xm(e,A)),this.code=e}};function U0A(t){return`NG0${Math.abs(t)}`}function Xm(t,e){return`${U0A(t)}${e?": "+e:""}`}var sY=Symbol("InputSignalNode#UNSET"),J0A=Fe(sA({},Tf),{transformFn:void 0,applyValueToInputSignal(t,e){nu(t,e)}});function aY(t,e){let A=Object.create(J0A);A.value=t,A.transformFn=e?.transform;function i(){if(eu(A),A.value===sY){let n=null;throw new te(-950,n)}return A.value}return i[aa]=A,i}function wu(t){return{toString:t}.toString()}var dm="__parameters__";function Y0A(t){return function(...A){if(t){let i=t(...A);for(let n in i)this[n]=i[n]}}}function cY(t,e,A){return wu(()=>{let i=Y0A(e);function n(...o){if(this instanceof n)return i.apply(this,o),this;let r=new n(...o);return s.annotation=r,s;function s(a,c,g){let I=a.hasOwnProperty(dm)?a[dm]:Object.defineProperty(a,dm,{value:[]})[dm];for(;I.length<=g;)I.push(null);return(I[g]=I[g]||[]).push(r),a}}return n.prototype.ngMetadataName=t,n.annotationCls=n,n})}var Pa=globalThis;function fo(t){for(let e in t)if(t[e]===fo)return e;throw Error("Could not find renamed property on target object.")}function T0A(t,e){for(let A in e)e.hasOwnProperty(A)&&!t.hasOwnProperty(A)&&(t[A]=e[A])}function Ia(t){if(typeof t=="string")return t;if(Array.isArray(t))return`[${t.map(Ia).join(", ")}]`;if(t==null)return""+t;let e=t.overriddenName||t.name;if(e)return`${e}`;let A=t.toString();if(A==null)return""+A;let i=A.indexOf(` +`);return i>=0?A.slice(0,i):A}function l9(t,e){return t?e?`${t} ${e}`:t:e||""}var H0A=fo({__forward_ref__:fo});function Ur(t){return t.__forward_ref__=Ur,t.toString=function(){return Ia(this())},t}function cs(t){return gY(t)?t():t}function gY(t){return typeof t=="function"&&t.hasOwnProperty(H0A)&&t.__forward_ref__===Ur}function bA(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function Ve(t){return{providers:t.providers||[],imports:t.imports||[]}}function $m(t){return dJ(t,IY)||dJ(t,CY)}function lY(t){return $m(t)!==null}function dJ(t,e){return t.hasOwnProperty(e)?t[e]:null}function O0A(t){let e=t&&(t[IY]||t[CY]);return e||null}function BJ(t){return t&&(t.hasOwnProperty(EJ)||t.hasOwnProperty(z0A))?t[EJ]:null}var IY=fo({\u0275prov:fo}),EJ=fo({\u0275inj:fo}),CY=fo({ngInjectableDef:fo}),z0A=fo({ngInjectorDef:fo}),eA=class{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(e,A){this._desc=e,this.\u0275prov=void 0,typeof A=="number"?this.__NG_ELEMENT_ID__=A:A!==void 0&&(this.\u0275prov=bA({token:this,providedIn:A.providedIn||"root",factory:A.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}};function dY(t){return t&&!!t.\u0275providers}var P0A=fo({\u0275cmp:fo}),j0A=fo({\u0275dir:fo}),q0A=fo({\u0275pipe:fo}),V0A=fo({\u0275mod:fo}),ym=fo({\u0275fac:fo}),Eu=fo({__NG_ELEMENT_ID__:fo}),QJ=fo({__NG_ENV_ID__:fo});function wI(t){return typeof t=="string"?t:t==null?"":String(t)}function Z0A(t){return typeof t=="function"?t.name||t.toString():typeof t=="object"&&t!=null&&typeof t.type=="function"?t.type.name||t.type.toString():wI(t)}function BY(t,e){throw new te(-200,t)}function DM(t,e){throw new te(-201,!1)}var bi=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(bi||{}),I9;function EY(){return I9}function la(t){let e=I9;return I9=t,e}function QY(t,e,A){let i=$m(t);if(i&&i.providedIn=="root")return i.value===void 0?i.value=i.factory():i.value;if(A&bi.Optional)return null;if(e!==void 0)return e;DM(t,"Injector")}var W0A={},pI=W0A,C9="__NG_DI_FLAG__",vm=class{injector;constructor(e){this.injector=e}retrieve(e,A){let i=A;return this.injector.get(e,i.optional?Hf:pI,i)}},Mm="ngTempTokenPath",X0A="ngTokenPath",$0A=/\n/gm,A2A="\u0275",uJ="__source";function e2A(t,e=bi.Default){if(ou()===void 0)throw new te(-203,!1);if(ou()===null)return QY(t,void 0,e);{let A=ou(),i;return A instanceof vm?i=A.injector:i=A,i.get(t,e&bi.Optional?null:void 0,e)}}function be(t,e=bi.Default){return(EY()||e2A)(cs(t),e)}function f(t,e=bi.Default){return be(t,Ap(e))}function Ap(t){return typeof t>"u"||typeof t=="number"?t:0|(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function d9(t){let e=[];for(let A=0;A ");else if(typeof e=="object"){let o=[];for(let r in e)if(e.hasOwnProperty(r)){let s=e[r];o.push(r+":"+(typeof s=="string"?JSON.stringify(s):Ia(s)))}n=`{${o.join(", ")}}`}return`${A}${i?"("+i+")":""}[${n}]: ${t.replace($0A,` + `)}`}var Yd=uY(cY("Optional"),8);var ep=uY(cY("SkipSelf"),4);function yI(t,e){let A=t.hasOwnProperty(ym);return A?t[ym]:null}function o2A(t,e,A){if(t.length!==e.length)return!1;for(let i=0;iArray.isArray(A)?wM(A,e):e(A))}function hY(t,e,A){e>=t.length?t.push(A):t.splice(e,0,A)}function bm(t,e){return e>=t.length-1?t.pop():t.splice(e,1)[0]}function s2A(t,e){let A=[];for(let i=0;ie;){let o=n-2;t[n]=t[o],n--}t[e]=A,t[e+1]=i}}function tp(t,e,A){let i=yu(t,e);return i>=0?t[i|1]=A:(i=~i,a2A(t,i,e,A)),i}function Wv(t,e){let A=yu(t,e);if(A>=0)return t[A|1]}function yu(t,e){return c2A(t,e,1)}function c2A(t,e,A){let i=0,n=t.length>>A;for(;n!==i;){let o=i+(n-i>>1),r=t[o<e?n=o:i=o+1}return~(n<{A.push(r)};return wM(e,r=>{let s=r;B9(s,o,[],i)&&(n||=[],n.push(s))}),n!==void 0&&yY(n,o),A}function yY(t,e){for(let A=0;A{e(o,i)})}}function B9(t,e,A,i){if(t=cs(t),!t)return!1;let n=null,o=BJ(t),r=!o&&p2(t);if(!o&&!r){let a=t.ngModule;if(o=BJ(a),o)n=a;else return!1}else{if(r&&!r.standalone)return!1;n=t}let s=i.has(n);if(r){if(s)return!1;if(i.add(n),r.dependencies){let a=typeof r.dependencies=="function"?r.dependencies():r.dependencies;for(let c of a)B9(c,e,A,i)}}else if(o){if(o.imports!=null&&!s){i.add(n);let c;try{wM(o.imports,g=>{B9(g,e,A,i)&&(c||=[],c.push(g))})}finally{}c!==void 0&&yY(c,e)}if(!s){let c=yI(n)||(()=>new n);e({provide:n,useFactory:c,deps:zs},n),e({provide:mY,useValue:n,multi:!0},n),e({provide:Ld,useValue:()=>be(n),multi:!0},n)}let a=o.providers;if(a!=null&&!s){let c=t;vM(a,g=>{e(g,c)})}}else return!1;return n!==t&&t.providers!==void 0}function vM(t,e){for(let A of t)dY(A)&&(A=A.\u0275providers),Array.isArray(A)?vM(A,e):e(A)}var l2A=fo({provide:String,useValue:fo});function vY(t){return t!==null&&typeof t=="object"&&l2A in t}function I2A(t){return!!(t&&t.useExisting)}function C2A(t){return!!(t&&t.useFactory)}function xd(t){return typeof t=="function"}function d2A(t){return!!t.useClass}var ip=new eA(""),hm={},hJ={},Xv;function np(){return Xv===void 0&&(Xv=new km),Xv}var vr=class{},Qu=class extends vr{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(e,A,i,n){super(),this.parent=A,this.source=i,this.scopes=n,Q9(e,r=>this.processProvider(r)),this.records.set(fY,vd(void 0,this)),n.has("environment")&&this.records.set(vr,vd(void 0,this));let o=this.records.get(ip);o!=null&&typeof o.value=="string"&&this.scopes.add(o.value),this.injectorDefTypes=new Set(this.get(mY,zs,bi.Self))}retrieve(e,A){let i=A;return this.get(e,i.optional?Hf:pI,i)}destroy(){du(this),this._destroyed=!0;let e=pi(null);try{for(let i of this._ngOnDestroyHooks)i.ngOnDestroy();let A=this._onDestroyHooks;this._onDestroyHooks=[];for(let i of A)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),pi(e)}}onDestroy(e){return du(this),this._onDestroyHooks.push(e),()=>this.removeOnDestroy(e)}runInContext(e){du(this);let A=I0(this),i=la(void 0),n;try{return e()}finally{I0(A),la(i)}}get(e,A=pI,i=bi.Default){if(du(this),e.hasOwnProperty(QJ))return e[QJ](this);i=Ap(i);let n,o=I0(this),r=la(void 0);try{if(!(i&bi.SkipSelf)){let a=this.records.get(e);if(a===void 0){let c=h2A(e)&&$m(e);c&&this.injectableDefInScope(c)?a=vd(E9(e),hm):a=null,this.records.set(e,a)}if(a!=null)return this.hydrate(e,a,i)}let s=i&bi.Self?np():this.parent;return A=i&bi.Optional&&A===pI?null:A,s.get(e,A)}catch(s){if(s.name==="NullInjectorError"){if((s[Mm]=s[Mm]||[]).unshift(Ia(e)),o)throw s;return i2A(s,e,"R3InjectorError",this.source)}else throw s}finally{la(r),I0(o)}}resolveInjectorInitializers(){let e=pi(null),A=I0(this),i=la(void 0),n;try{let o=this.get(Ld,zs,bi.Self);for(let r of o)r()}finally{I0(A),la(i),pi(e)}}toString(){let e=[],A=this.records;for(let i of A.keys())e.push(Ia(i));return`R3Injector[${e.join(", ")}]`}processProvider(e){e=cs(e);let A=xd(e)?e:cs(e&&e.provide),i=E2A(e);if(!xd(e)&&e.multi===!0){let n=this.records.get(A);n||(n=vd(void 0,hm,!0),n.factory=()=>d9(n.multi),this.records.set(A,n)),A=e,n.multi.push(e)}this.records.set(A,i)}hydrate(e,A,i){let n=pi(null);try{return A.value===hJ?BY(Ia(e)):A.value===hm&&(A.value=hJ,A.value=A.factory(void 0,i)),typeof A.value=="object"&&A.value&&u2A(A.value)&&this._ngOnDestroyHooks.add(A.value),A.value}finally{pi(n)}}injectableDefInScope(e){if(!e.providedIn)return!1;let A=cs(e.providedIn);return typeof A=="string"?A==="any"||this.scopes.has(A):this.injectorDefTypes.has(A)}removeOnDestroy(e){let A=this._onDestroyHooks.indexOf(e);A!==-1&&this._onDestroyHooks.splice(A,1)}};function E9(t){let e=$m(t),A=e!==null?e.factory:yI(t);if(A!==null)return A;if(t instanceof eA)throw new te(204,!1);if(t instanceof Function)return B2A(t);throw new te(204,!1)}function B2A(t){if(t.length>0)throw new te(204,!1);let A=O0A(t);return A!==null?()=>A.factory(t):()=>new t}function E2A(t){if(vY(t))return vd(void 0,t.useValue);{let e=MY(t);return vd(e,hm)}}function MY(t,e,A){let i;if(xd(t)){let n=cs(t);return yI(n)||E9(n)}else if(vY(t))i=()=>cs(t.useValue);else if(C2A(t))i=()=>t.useFactory(...d9(t.deps||[]));else if(I2A(t))i=(n,o)=>be(cs(t.useExisting),o!==void 0&&o&bi.Optional?bi.Optional:void 0);else{let n=cs(t&&(t.useClass||t.provide));if(Q2A(t))i=()=>new n(...d9(t.deps));else return yI(n)||E9(n)}return i}function du(t){if(t.destroyed)throw new te(205,!1)}function vd(t,e,A=!1){return{factory:t,value:e,multi:A?[]:void 0}}function Q2A(t){return!!t.deps}function u2A(t){return t!==null&&typeof t=="object"&&typeof t.ngOnDestroy=="function"}function h2A(t){return typeof t=="function"||typeof t=="object"&&t instanceof eA}function Q9(t,e){for(let A of t)Array.isArray(A)?Q9(A,e):A&&dY(A)?Q9(A.\u0275providers,e):e(A)}function da(t,e){let A;t instanceof Qu?(du(t),A=t):A=new vm(t);let i,n=I0(A),o=la(void 0);try{return e()}finally{I0(n),la(o)}}function MM(){return EY()!==void 0||ou()!=null}function bM(t){if(!MM())throw new te(-203,!1)}function f2A(t){return typeof t=="function"}var Cl=0,hi=1,ii=2,vs=3,lg=4,Ba=5,Nd=6,Sm=7,Kr=8,Fd=9,E0=10,Jo=11,uu=12,fJ=13,Td=14,ja=15,vI=16,Md=17,Q0=18,op=19,bY=20,f2=21,$v=22,MI=23,wc=24,Sd=25,Qr=26,kM=1;var bI=7,Rm=8,_d=9,ys=10;function m2(t){return Array.isArray(t)&&typeof t[kM]=="object"}function h0(t){return Array.isArray(t)&&t[kM]===!0}function SM(t){return(t.flags&4)!==0}function Hd(t){return t.componentOffset>-1}function rp(t){return(t.flags&1)===1}function Ig(t){return!!t.template}function Lm(t){return(t[ii]&512)!==0}function Od(t){return(t[ii]&256)===256}var u9=class{previousValue;currentValue;firstChange;constructor(e,A,i){this.previousValue=e,this.currentValue=A,this.firstChange=i}isFirstChange(){return this.firstChange}};function kY(t,e,A,i){e!==null?e.applyValueToInputSignal(e,i):t[A]=i}var Xt=(()=>{let t=()=>SY;return t.ngInherit=!0,t})();function SY(t){return t.type.prototype.ngOnChanges&&(t.setInput=p2A),m2A}function m2A(){let t=LY(this),e=t?.current;if(e){let A=t.previous;if(A===sl)t.previous=e;else for(let i in e)A[i]=e[i];t.current=null,this.ngOnChanges(e)}}function p2A(t,e,A,i,n){let o=this.declaredInputs[i],r=LY(t)||D2A(t,{previous:sl,current:null}),s=r.current||(r.current={}),a=r.previous,c=a[o];s[o]=new u9(c&&c.currentValue,A,a===sl),kY(t,e,n,A)}var RY="__ngSimpleChanges__";function LY(t){return t[RY]||null}function D2A(t,e){return t[RY]=e}var mJ=null;var so=function(t,e=null,A){mJ?.(t,e,A)},xY="svg",w2A="math";function al(t){for(;Array.isArray(t);)t=t[Cl];return t}function y2A(t){for(;Array.isArray(t);){if(typeof t[kM]=="object")return t;t=t[Cl]}return null}function NY(t,e){return al(e[t])}function dl(t,e){return al(e[t.index])}function RM(t,e){return t.data[e]}function sp(t,e){return t[e]}function LM(t,e,A,i){A>=t.data.length&&(t.data[A]=null,t.blueprint[A]=null),e[A]=i}function cl(t,e){let A=e[t];return m2(A)?A:A[Cl]}function v2A(t){return(t[ii]&4)===4}function xM(t){return(t[ii]&128)===128}function M2A(t){return h0(t[vs])}function D2(t,e){return e==null?null:t[e]}function FY(t){t[Md]=0}function _Y(t){t[ii]&1024||(t[ii]|=1024,xM(t)&&zd(t))}function b2A(t,e){for(;t>0;)e=e[Td],t--;return e}function ap(t){return!!(t[ii]&9216||t[wc]?.dirty)}function h9(t){t[E0].changeDetectionScheduler?.notify(8),t[ii]&64&&(t[ii]|=1024),ap(t)&&zd(t)}function zd(t){t[E0].changeDetectionScheduler?.notify(0);let e=kI(t);for(;e!==null&&!(e[ii]&8192||(e[ii]|=8192,!xM(e)));)e=kI(e)}function GY(t,e){if(Od(t))throw new te(911,!1);t[f2]===null&&(t[f2]=[]),t[f2].push(e)}function k2A(t,e){if(t[f2]===null)return;let A=t[f2].indexOf(e);A!==-1&&t[f2].splice(A,1)}function kI(t){let e=t[vs];return h0(e)?e[vs]:e}function NM(t){return t[Sm]??=[]}function FM(t){return t.cleanup??=[]}function S2A(t,e,A,i){let n=NM(e);n.push(A),t.firstCreatePass&&FM(t).push(i,n.length-1)}var Di={lFrame:OY(null),bindingsEnabled:!0,skipHydrationRootTNode:null};var f9=!1;function R2A(){return Di.lFrame.elementDepthCount}function L2A(){Di.lFrame.elementDepthCount++}function x2A(){Di.lFrame.elementDepthCount--}function _M(){return Di.bindingsEnabled}function KY(){return Di.skipHydrationRootTNode!==null}function N2A(t){return Di.skipHydrationRootTNode===t}function F2A(){Di.skipHydrationRootTNode=null}function zt(){return Di.lFrame.lView}function ao(){return Di.lFrame.tView}function QA(t){return Di.lFrame.contextLView=t,t[Kr]}function uA(t){return Di.lFrame.contextLView=null,t}function gs(){let t=UY();for(;t!==null&&t.type===64;)t=t.parent;return t}function UY(){return Di.lFrame.currentTNode}function _2A(){let t=Di.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}function w2(t,e){let A=Di.lFrame;A.currentTNode=t,A.isParent=e}function GM(){return Di.lFrame.isParent}function KM(){Di.lFrame.isParent=!1}function JY(){return Di.lFrame.contextLView}function YY(){return f9}function xm(t){let e=f9;return f9=t,e}function Mu(){let t=Di.lFrame,e=t.bindingRootIndex;return e===-1&&(e=t.bindingRootIndex=t.tView.bindingStartIndex),e}function G2A(){return Di.lFrame.bindingIndex}function K2A(t){return Di.lFrame.bindingIndex=t}function y2(){return Di.lFrame.bindingIndex++}function UM(t){let e=Di.lFrame,A=e.bindingIndex;return e.bindingIndex=e.bindingIndex+t,A}function U2A(){return Di.lFrame.inI18n}function J2A(t,e){let A=Di.lFrame;A.bindingIndex=A.bindingRootIndex=t,m9(e)}function Y2A(){return Di.lFrame.currentDirectiveIndex}function m9(t){Di.lFrame.currentDirectiveIndex=t}function JM(t){let e=Di.lFrame.currentDirectiveIndex;return e===-1?null:t[e]}function YM(){return Di.lFrame.currentQueryIndex}function cp(t){Di.lFrame.currentQueryIndex=t}function T2A(t){let e=t[hi];return e.type===2?e.declTNode:e.type===1?t[Ba]:null}function TY(t,e,A){if(A&bi.SkipSelf){let n=e,o=t;for(;n=n.parent,n===null&&!(A&bi.Host);)if(n=T2A(o),n===null||(o=o[Td],n.type&10))break;if(n===null)return!1;e=n,t=o}let i=Di.lFrame=HY();return i.currentTNode=e,i.lView=t,!0}function TM(t){let e=HY(),A=t[hi];Di.lFrame=e,e.currentTNode=A.firstChild,e.lView=t,e.tView=A,e.contextLView=t,e.bindingIndex=A.bindingStartIndex,e.inI18n=!1}function HY(){let t=Di.lFrame,e=t===null?null:t.child;return e===null?OY(t):e}function OY(t){let e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return t!==null&&(t.child=e),e}function zY(){let t=Di.lFrame;return Di.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}var PY=zY;function HM(){let t=zY();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function H2A(t){return(Di.lFrame.contextLView=b2A(t,Di.lFrame.contextLView))[Kr]}function Bl(){return Di.lFrame.selectedIndex}function SI(t){Di.lFrame.selectedIndex=t}function Pd(){let t=Di.lFrame;return RM(t.tView,t.selectedIndex)}function ur(){Di.lFrame.currentNamespace=xY}function _I(){O2A()}function O2A(){Di.lFrame.currentNamespace=null}function z2A(){return Di.lFrame.currentNamespace}var jY=!0;function gp(){return jY}function lp(t){jY=t}function P2A(t,e,A){let{ngOnChanges:i,ngOnInit:n,ngDoCheck:o}=e.type.prototype;if(i){let r=SY(e);(A.preOrderHooks??=[]).push(t,r),(A.preOrderCheckHooks??=[]).push(t,r)}n&&(A.preOrderHooks??=[]).push(0-t,n),o&&((A.preOrderHooks??=[]).push(t,o),(A.preOrderCheckHooks??=[]).push(t,o))}function OM(t,e){for(let A=e.directiveStart,i=e.directiveEnd;A=i)break}else e[a]<0&&(t[Md]+=65536),(s>14>16&&(t[ii]&3)===e&&(t[ii]+=16384,pJ(s,o)):pJ(s,o)}var Rd=-1,RI=class{factory;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(e,A,i){this.factory=e,this.canSeeViewProviders=A,this.injectImpl=i}};function q2A(t){return(t.flags&8)!==0}function V2A(t){return(t.flags&16)!==0}function Z2A(t,e,A){let i=0;for(;ie){r=o-1;break}}}for(;o>16}function Fm(t,e){let A=X2A(t),i=e;for(;A>0;)i=i[Td],A--;return i}var p9=!0;function _m(t){let e=p9;return p9=t,e}var $2A=256,WY=$2A-1,XY=5,A1A=0,rl={};function e1A(t,e,A){let i;typeof A=="string"?i=A.charCodeAt(0)||0:A.hasOwnProperty(Eu)&&(i=A[Eu]),i==null&&(i=A[Eu]=A1A++);let n=i&WY,o=1<>XY)]|=o}function Gm(t,e){let A=$Y(t,e);if(A!==-1)return A;let i=e[hi];i.firstCreatePass&&(t.injectorIndex=e.length,e9(i.data,t),e9(e,null),e9(i.blueprint,null));let n=zM(t,e),o=t.injectorIndex;if(ZY(n)){let r=Nm(n),s=Fm(n,e),a=s[hi].data;for(let c=0;c<8;c++)e[o+c]=s[r+c]|a[r+c]}return e[o+8]=n,o}function e9(t,e){t.push(0,0,0,0,0,0,0,0,e)}function $Y(t,e){return t.injectorIndex===-1||t.parent&&t.parent.injectorIndex===t.injectorIndex||e[t.injectorIndex+8]===null?-1:t.injectorIndex}function zM(t,e){if(t.parent&&t.parent.injectorIndex!==-1)return t.parent.injectorIndex;let A=0,i=null,n=e;for(;n!==null;){if(i=nT(n),i===null)return Rd;if(A++,n=n[Td],i.injectorIndex!==-1)return i.injectorIndex|A<<16}return Rd}function D9(t,e,A){e1A(t,e,A)}function t1A(t,e){if(e==="class")return t.classes;if(e==="style")return t.styles;let A=t.attrs;if(A){let i=A.length,n=0;for(;n>20,I=i?s:s+g,C=n?s+g:c;for(let d=I;d=a&&B.type===A)return d}if(n){let d=r[a];if(d&&Ig(d)&&d.type===A)return a}return null}function hu(t,e,A,i,n){let o=t[A],r=e.data;if(o instanceof RI){let s=o;s.resolving&&BY(Z0A(r[A]));let a=_m(s.canSeeViewProviders);s.resolving=!0;let c,g=s.injectImpl?la(s.injectImpl):null,I=TY(t,i,bi.Default);try{o=t[A]=s.factory(void 0,n,r,t,i),e.firstCreatePass&&A>=i.directiveStart&&P2A(A,r[A],e)}finally{g!==null&&la(g),_m(a),s.resolving=!1,PY()}}return o}function n1A(t){if(typeof t=="string")return t.charCodeAt(0)||0;let e=t.hasOwnProperty(Eu)?t[Eu]:void 0;return typeof e=="number"?e>=0?e&WY:o1A:e}function wJ(t,e,A){let i=1<>XY)]&i)}function yJ(t,e){return!(t&bi.Self)&&!(t&bi.Host&&e)}var DI=class{_tNode;_lView;constructor(e,A){this._tNode=e,this._lView=A}get(e,A,i){return tT(this._tNode,this._lView,e,Ap(i),A)}};function o1A(){return new DI(gs(),zt())}function ci(t){return wu(()=>{let e=t.prototype.constructor,A=e[ym]||w9(e),i=Object.prototype,n=Object.getPrototypeOf(t.prototype).constructor;for(;n&&n!==i;){let o=n[ym]||w9(n);if(o&&o!==A)return o;n=Object.getPrototypeOf(n)}return o=>new o})}function w9(t){return gY(t)?()=>{let e=w9(cs(t));return e&&e()}:yI(t)}function r1A(t,e,A,i,n){let o=t,r=e;for(;o!==null&&r!==null&&r[ii]&2048&&!Lm(r);){let s=iT(o,r,A,i|bi.Self,rl);if(s!==rl)return s;let a=o.parent;if(!a){let c=r[bY];if(c){let g=c.get(A,rl,i);if(g!==rl)return g}a=nT(r),r=r[Td]}o=a}return n}function nT(t){let e=t[hi],A=e.type;return A===2?e.declTNode:A===1?t[Ba]:null}function PM(t){return t1A(gs(),t)}function vJ(t,e=null,A=null,i){let n=oT(t,e,A,i);return n.resolveInjectorInitializers(),n}function oT(t,e=null,A=null,i,n=new Set){let o=[A||zs,yM(t)];return i=i||(typeof t=="object"?void 0:Ia(t)),new Qu(o,e||np(),i||null,n)}var Zt=class t{static THROW_IF_NOT_FOUND=pI;static NULL=new km;static create(e,A){if(Array.isArray(e))return vJ({name:""},A,e,"");{let i=e.name??"";return vJ({name:i},e.parent,e.providers,i)}}static \u0275prov=bA({token:t,providedIn:"any",factory:()=>be(fY)});static __NG_ELEMENT_ID__=-1};var Wr=class{attributeName;constructor(e){this.attributeName=e}__NG_ELEMENT_ID__=()=>PM(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}},s1A=new eA("");s1A.__NG_ELEMENT_ID__=t=>{let e=gs();if(e===null)throw new te(204,!1);if(e.type&2)return e.value;if(t&bi.Optional)return null;throw new te(204,!1)};var rT=!1,f0=(()=>{class t{static __NG_ELEMENT_ID__=a1A;static __NG_ENV_ID__=A=>A}return t})(),Km=class extends f0{_lView;constructor(e){super(),this._lView=e}onDestroy(e){let A=this._lView;return Od(A)?(e(),()=>{}):(GY(A,e),()=>k2A(A,e))}};function a1A(){return new Km(zt())}var LI=class{},jM=new eA("",{providedIn:"root",factory:()=>!1});var sT=new eA(""),aT=new eA(""),m0=(()=>{class t{taskId=0;pendingTasks=new Set;get _hasPendingTasks(){return this.hasPendingTasks.value}hasPendingTasks=new Fi(!1);add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);let A=this.taskId++;return this.pendingTasks.add(A),A}has(A){return this.pendingTasks.has(A)}remove(A){this.pendingTasks.delete(A),this.pendingTasks.size===0&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new t})}return t})();var y9=class extends qA{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(e=!1){super(),this.__isAsync=e,MM()&&(this.destroyRef=f(f0,{optional:!0})??void 0,this.pendingTasks=f(m0,{optional:!0})??void 0)}emit(e){let A=pi(null);try{super.next(e)}finally{pi(A)}}subscribe(e,A,i){let n=e,o=A||(()=>null),r=i;if(e&&typeof e=="object"){let a=e;n=a.next?.bind(a),o=a.error?.bind(a),r=a.complete?.bind(a)}this.__isAsync&&(o=this.wrapInTimeout(o),n&&(n=this.wrapInTimeout(n)),r&&(r=this.wrapInTimeout(r)));let s=super.subscribe({next:n,error:o,complete:r});return e instanceof Kt&&e.add(s),s}wrapInTimeout(e){return A=>{let i=this.pendingTasks?.add();setTimeout(()=>{try{e(A)}finally{i!==void 0&&this.pendingTasks?.remove(i)}})}}},YA=y9;function fu(...t){}function cT(t){let e,A;function i(){t=fu;try{A!==void 0&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(A),e!==void 0&&clearTimeout(e)}catch{}}return e=setTimeout(()=>{t(),i()}),typeof requestAnimationFrame=="function"&&(A=requestAnimationFrame(()=>{t(),i()})),()=>i()}function MJ(t){return queueMicrotask(()=>t()),()=>{t=fu}}var qM="isAngularZone",Um=qM+"_ID",c1A=0,ye=class t{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new YA(!1);onMicrotaskEmpty=new YA(!1);onStable=new YA(!1);onError=new YA(!1);constructor(e){let{enableLongStackTrace:A=!1,shouldCoalesceEventChangeDetection:i=!1,shouldCoalesceRunChangeDetection:n=!1,scheduleInRootZone:o=rT}=e;if(typeof Zone>"u")throw new te(908,!1);Zone.assertZonePatched();let r=this;r._nesting=0,r._outer=r._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),A&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!n&&i,r.shouldCoalesceRunChangeDetection=n,r.callbackScheduled=!1,r.scheduleInRootZone=o,I1A(r)}static isInAngularZone(){return typeof Zone<"u"&&Zone.current.get(qM)===!0}static assertInAngularZone(){if(!t.isInAngularZone())throw new te(909,!1)}static assertNotInAngularZone(){if(t.isInAngularZone())throw new te(909,!1)}run(e,A,i){return this._inner.run(e,A,i)}runTask(e,A,i,n){let o=this._inner,r=o.scheduleEventTask("NgZoneEvent: "+n,e,g1A,fu,fu);try{return o.runTask(r,A,i)}finally{o.cancelTask(r)}}runGuarded(e,A,i){return this._inner.runGuarded(e,A,i)}runOutsideAngular(e){return this._outer.run(e)}},g1A={};function VM(t){if(t._nesting==0&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function l1A(t){if(t.isCheckStableRunning||t.callbackScheduled)return;t.callbackScheduled=!0;function e(){cT(()=>{t.callbackScheduled=!1,v9(t),t.isCheckStableRunning=!0,VM(t),t.isCheckStableRunning=!1})}t.scheduleInRootZone?Zone.root.run(()=>{e()}):t._outer.run(()=>{e()}),v9(t)}function I1A(t){let e=()=>{l1A(t)},A=c1A++;t._inner=t._inner.fork({name:"angular",properties:{[qM]:!0,[Um]:A,[Um+A]:!0},onInvokeTask:(i,n,o,r,s,a)=>{if(C1A(a))return i.invokeTask(o,r,s,a);try{return bJ(t),i.invokeTask(o,r,s,a)}finally{(t.shouldCoalesceEventChangeDetection&&r.type==="eventTask"||t.shouldCoalesceRunChangeDetection)&&e(),kJ(t)}},onInvoke:(i,n,o,r,s,a,c)=>{try{return bJ(t),i.invoke(o,r,s,a,c)}finally{t.shouldCoalesceRunChangeDetection&&!t.callbackScheduled&&!d1A(a)&&e(),kJ(t)}},onHasTask:(i,n,o,r)=>{i.hasTask(o,r),n===o&&(r.change=="microTask"?(t._hasPendingMicrotasks=r.microTask,v9(t),VM(t)):r.change=="macroTask"&&(t.hasPendingMacrotasks=r.macroTask))},onHandleError:(i,n,o,r)=>(i.handleError(o,r),t.runOutsideAngular(()=>t.onError.emit(r)),!1)})}function v9(t){t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&t.callbackScheduled===!0?t.hasPendingMicrotasks=!0:t.hasPendingMicrotasks=!1}function bJ(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function kJ(t){t._nesting--,VM(t)}var M9=class{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new YA;onMicrotaskEmpty=new YA;onStable=new YA;onError=new YA;run(e,A,i){return e.apply(A,i)}runGuarded(e,A,i){return e.apply(A,i)}runOutsideAngular(e){return e()}runTask(e,A,i,n){return e.apply(A,i)}};function C1A(t){return gT(t,"__ignore_ng_zone__")}function d1A(t){return gT(t,"__scheduler_tick__")}function gT(t,e){return!Array.isArray(t)||t.length!==1?!1:t[0]?.data?.[e]===!0}var Ps=class{_console=console;handleError(e){this._console.error("ERROR",e)}},B1A=new eA("",{providedIn:"root",factory:()=>{let t=f(ye),e=f(Ps);return A=>t.runOutsideAngular(()=>e.handleError(A))}}),b9=class{destroyed=!1;listeners=null;errorHandler=f(Ps,{optional:!0});destroyRef=f(f0);constructor(){this.destroyRef.onDestroy(()=>{this.destroyed=!0,this.listeners=null})}subscribe(e){if(this.destroyed)throw new te(953,!1);return(this.listeners??=[]).push(e),{unsubscribe:()=>{let A=this.listeners?.indexOf(e);A!==void 0&&A!==-1&&this.listeners?.splice(A,1)}}}emit(e){if(this.destroyed){console.warn(Xm(953,!1));return}if(this.listeners===null)return;let A=pi(null);try{for(let i of this.listeners)try{i(e)}catch(n){this.errorHandler?.handleError(n)}}finally{pi(A)}}};function GI(t){return new b9}function SJ(t,e){return aY(t,e)}function E1A(t){return aY(sY,t)}var bs=(SJ.required=E1A,SJ);function Q1A(){return jd(gs(),zt())}function jd(t,e){return new se(dl(t,e))}var se=(()=>{class t{nativeElement;constructor(A){this.nativeElement=A}static __NG_ELEMENT_ID__=Q1A}return t})();function lT(t){return t instanceof se?t.nativeElement:t}function v2(t){return typeof t=="function"&&t[aa]!==void 0}function Ao(t,e){let A=xv(t,e?.equal),i=A[aa];return A.set=n=>nu(i,n),A.update=n=>Nv(i,n),A.asReadonly=u1A.bind(A),A}function u1A(){let t=this[aa];if(t.readonlyFn===void 0){let e=()=>this();e[aa]=t,t.readonlyFn=e}return t.readonlyFn}function IT(t){return v2(t)&&typeof t.set=="function"}function h1A(){return this._results[Symbol.iterator]()}var qa=class{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new qA}constructor(e=!1){this._emitDistinctChangesOnly=e}get(e){return this._results[e]}map(e){return this._results.map(e)}filter(e){return this._results.filter(e)}find(e){return this._results.find(e)}reduce(e,A){return this._results.reduce(e,A)}forEach(e){this._results.forEach(e)}some(e){return this._results.some(e)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(e,A){this.dirty=!1;let i=r2A(e);(this._changesDetected=!o2A(this._results,i,A))&&(this._results=i,this.length=i.length,this.last=i[this.length-1],this.first=i[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(e){this._onDirty=e}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}[Symbol.iterator]=h1A};function CT(t){return(t.flags&128)===128}var dT=function(t){return t[t.OnPush=0]="OnPush",t[t.Default=1]="Default",t}(dT||{}),BT=new Map,f1A=0;function m1A(){return f1A++}function p1A(t){BT.set(t[op],t)}function k9(t){BT.delete(t[op])}var RJ="__ngContext__";function qd(t,e){m2(e)?(t[RJ]=e[op],p1A(e)):t[RJ]=e}function ET(t){return uT(t[uu])}function QT(t){return uT(t[lg])}function uT(t){for(;t!==null&&!h0(t);)t=t[lg];return t}var S9;function hT(t){S9=t}function fT(){if(S9!==void 0)return S9;if(typeof document<"u")return document;throw new te(210,!1)}var Vd=new eA("",{providedIn:"root",factory:()=>D1A}),D1A="ng",ZM=new eA(""),El=new eA("",{providedIn:"platform",factory:()=>"unknown"});var _i=new eA(""),bu=new eA("",{providedIn:"root",factory:()=>fT().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});var w1A="h",y1A="b";var mT=!1,v1A=new eA("",{providedIn:"root",factory:()=>mT});var WM=function(t){return t[t.CHANGE_DETECTION=0]="CHANGE_DETECTION",t[t.AFTER_NEXT_RENDER=1]="AFTER_NEXT_RENDER",t}(WM||{}),Zd=new eA(""),LJ=new Set;function Cg(t){LJ.has(t)||(LJ.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}var XM=(()=>{class t{view;node;constructor(A,i){this.view=A,this.node=i}static __NG_ELEMENT_ID__=M1A}return t})();function M1A(){return new XM(zt(),gs())}var bd=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(bd||{}),pT=(()=>{class t{impl=null;execute(){this.impl?.execute()}static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new t})}return t})(),b1A=[bd.EarlyRead,bd.Write,bd.MixedReadWrite,bd.Read],k1A=(()=>{class t{ngZone=f(ye);scheduler=f(LI);errorHandler=f(Ps,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){f(Zd,{optional:!0})}execute(){let A=this.sequences.size>0;A&&so(16),this.executing=!0;for(let i of b1A)for(let n of this.sequences)if(!(n.erroredOrDestroyed||!n.hooks[i]))try{n.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>{let o=n.hooks[i];return o(n.pipelinedValue)},n.snapshot))}catch(o){n.erroredOrDestroyed=!0,this.errorHandler?.handleError(o)}this.executing=!1;for(let i of this.sequences)i.afterRun(),i.once&&(this.sequences.delete(i),i.destroy());for(let i of this.deferredRegistrations)this.sequences.add(i);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),A&&so(17)}register(A){let{view:i}=A;i!==void 0?((i[Sd]??=[]).push(A),zd(i),i[ii]|=8192):this.executing?this.deferredRegistrations.add(A):this.addSequence(A)}addSequence(A){this.sequences.add(A),this.scheduler.notify(7)}unregister(A){this.executing&&this.sequences.has(A)?(A.erroredOrDestroyed=!0,A.pipelinedValue=void 0,A.once=!0):(this.sequences.delete(A),this.deferredRegistrations.delete(A))}maybeTrace(A,i){return i?i.run(WM.AFTER_NEXT_RENDER,A):A()}static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new t})}return t})(),R9=class{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(e,A,i,n,o,r=null){this.impl=e,this.hooks=A,this.view=i,this.once=n,this.snapshot=r,this.unregisterOnDestroy=o?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();let e=this.view?.[Sd];e&&(this.view[Sd]=e.filter(A=>A!==this))}};function ku(t,e){!e?.injector&&bM(ku);let A=e?.injector??f(Zt);return Cg("NgAfterRender"),DT(t,A,e,!1)}function Ir(t,e){!e?.injector&&bM(Ir);let A=e?.injector??f(Zt);return Cg("NgAfterNextRender"),DT(t,A,e,!0)}function S1A(t,e){if(t instanceof Function){let A=[void 0,void 0,void 0,void 0];return A[e]=t,A}else return[t.earlyRead,t.write,t.mixedReadWrite,t.read]}function DT(t,e,A,i){let n=e.get(pT);n.impl??=e.get(k1A);let o=e.get(Zd,null,{optional:!0}),r=A?.phase??bd.MixedReadWrite,s=A?.manualCleanup!==!0?e.get(f0):null,a=e.get(XM,null,{optional:!0}),c=new R9(n.impl,S1A(t,r),a?.view,i,s,o?.snapshot(null));return n.impl.register(c),c}var R1A=(t,e,A,i)=>{};function L1A(t,e,A,i){R1A(t,e,A,i)}var x1A=()=>null;function wT(t,e,A=!1){return x1A(t,e,A)}function yT(t,e){let A=t.contentQueries;if(A!==null){let i=pi(null);try{for(let n=0;nt,createScript:t=>t,createScriptURL:t=>t})}catch{}return Bm}function Ip(t){return N1A()?.createHTML(t)||t}var Em;function F1A(){if(Em===void 0&&(Em=null,Pa.trustedTypes))try{Em=Pa.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return Em}function xJ(t){return F1A()?.createHTML(t)||t}var u0=class{changingThisBreaksApplicationSecurity;constructor(e){this.changingThisBreaksApplicationSecurity=e}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${rY})`}},x9=class extends u0{getTypeName(){return"HTML"}},N9=class extends u0{getTypeName(){return"Style"}},F9=class extends u0{getTypeName(){return"Script"}},_9=class extends u0{getTypeName(){return"URL"}},G9=class extends u0{getTypeName(){return"ResourceURL"}};function dg(t){return t instanceof u0?t.changingThisBreaksApplicationSecurity:t}function M2(t,e){let A=_1A(t);if(A!=null&&A!==e){if(A==="ResourceURL"&&e==="URL")return!0;throw new Error(`Required a safe ${e}, got a ${A} (see ${rY})`)}return A===e}function _1A(t){return t instanceof u0&&t.getTypeName()||null}function vT(t){return new x9(t)}function MT(t){return new N9(t)}function bT(t){return new F9(t)}function kT(t){return new _9(t)}function ST(t){return new G9(t)}function G1A(t){let e=new U9(t);return K1A()?new K9(e):e}var K9=class{inertDocumentHelper;constructor(e){this.inertDocumentHelper=e}getInertBodyElement(e){e=""+e;try{let A=new window.DOMParser().parseFromString(Ip(e),"text/html").body;return A===null?this.inertDocumentHelper.getInertBodyElement(e):(A.firstChild?.remove(),A)}catch{return null}}},U9=class{defaultDoc;inertDocument;constructor(e){this.defaultDoc=e,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(e){let A=this.inertDocument.createElement("template");return A.innerHTML=Ip(e),A}};function K1A(){try{return!!new window.DOMParser().parseFromString(Ip(""),"text/html")}catch{return!1}}var U1A=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Cp(t){return t=String(t),t.match(U1A)?t:"unsafe:"+t}function p0(t){let e={};for(let A of t.split(","))e[A]=!0;return e}function Su(...t){let e={};for(let A of t)for(let i in A)A.hasOwnProperty(i)&&(e[i]=!0);return e}var RT=p0("area,br,col,hr,img,wbr"),LT=p0("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),xT=p0("rp,rt"),J1A=Su(xT,LT),Y1A=Su(LT,p0("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),T1A=Su(xT,p0("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),NJ=Su(RT,Y1A,T1A,J1A),NT=p0("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),H1A=p0("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),O1A=p0("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"),z1A=Su(NT,H1A,O1A),P1A=p0("script,style,template"),J9=class{sanitizedSomething=!1;buf=[];sanitizeChildren(e){let A=e.firstChild,i=!0,n=[];for(;A;){if(A.nodeType===Node.ELEMENT_NODE?i=this.startElement(A):A.nodeType===Node.TEXT_NODE?this.chars(A.nodeValue):this.sanitizedSomething=!0,i&&A.firstChild){n.push(A),A=V1A(A);continue}for(;A;){A.nodeType===Node.ELEMENT_NODE&&this.endElement(A);let o=q1A(A);if(o){A=o;break}A=n.pop()}}return this.buf.join("")}startElement(e){let A=FJ(e).toLowerCase();if(!NJ.hasOwnProperty(A))return this.sanitizedSomething=!0,!P1A.hasOwnProperty(A);this.buf.push("<"),this.buf.push(A);let i=e.attributes;for(let n=0;n"),!0}endElement(e){let A=FJ(e).toLowerCase();NJ.hasOwnProperty(A)&&!RT.hasOwnProperty(A)&&(this.buf.push(""))}chars(e){this.buf.push(_J(e))}};function j1A(t,e){return(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}function q1A(t){let e=t.nextSibling;if(e&&t!==e.previousSibling)throw FT(e);return e}function V1A(t){let e=t.firstChild;if(e&&j1A(t,e))throw FT(e);return e}function FJ(t){let e=t.nodeName;return typeof e=="string"?e:"FORM"}function FT(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}var Z1A=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,W1A=/([^\#-~ |!])/g;function _J(t){return t.replace(/&/g,"&").replace(Z1A,function(e){let A=e.charCodeAt(0),i=e.charCodeAt(1);return"&#"+((A-55296)*1024+(i-56320)+65536)+";"}).replace(W1A,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(//g,">")}var Qm;function Ab(t,e){let A=null;try{Qm=Qm||G1A(t);let i=e?String(e):"";A=Qm.getInertBodyElement(i);let n=5,o=i;do{if(n===0)throw new Error("Failed to sanitize html because the input is unstable");n--,i=o,o=A.innerHTML,A=Qm.getInertBodyElement(i)}while(i!==o);let s=new J9().sanitizeChildren(GJ(A)||A);return Ip(s)}finally{if(A){let i=GJ(A)||A;for(;i.firstChild;)i.firstChild.remove()}}}function GJ(t){return"content"in t&&X1A(t)?t.content:null}function X1A(t){return t.nodeType===Node.ELEMENT_NODE&&t.nodeName==="TEMPLATE"}var Xr=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(Xr||{});function b2(t){let e=_T();return e?xJ(e.sanitize(Xr.HTML,t)||""):M2(t,"HTML")?xJ(dg(t)):Ab(fT(),wI(t))}function js(t){let e=_T();return e?e.sanitize(Xr.URL,t)||"":M2(t,"URL")?dg(t):Cp(wI(t))}function _T(){let t=zt();return t&&t[E0].sanitizer}var $1A=/^>|^->||--!>|)/g,eIA="\u200B$1\u200B";function tIA(t){return t.replace($1A,e=>e.replace(AIA,eIA))}function dp(t){return t.ownerDocument.defaultView}function Wd(t){return t.ownerDocument}function GT(t){return t instanceof Function?t():t}function iIA(t,e,A){let i=t.length;for(;;){let n=t.indexOf(e,A);if(n===-1)return n;if(n===0||t.charCodeAt(n-1)<=32){let o=e.length;if(n+o===i||t.charCodeAt(n+o)<=32)return n}A=n+1}}var KT="ng-template";function nIA(t,e,A,i){let n=0;if(i){for(;n-1){let o;for(;++no?I="":I=n[g+1].toLowerCase(),i&2&&c!==I){if(cg(i))return!1;r=!0}}}}return cg(i)||r}function cg(t){return(t&1)===0}function sIA(t,e,A,i){if(e===null)return-1;let n=0;if(i||!A){let o=!1;for(;n-1)for(A++;A0?'="'+s+'"':"")+"]"}else i&8?n+="."+r:i&4&&(n+=" "+r);else n!==""&&!cg(r)&&(e+=KJ(o,n),n=""),i=r,o=o||!cg(i);A++}return n!==""&&(e+=KJ(o,n)),e}function CIA(t){return t.map(IIA).join(",")}function dIA(t){let e=[],A=[],i=1,n=2;for(;iQr&&zT(t,e,Qr,!1),so(r?2:0,n),A(i,n)}finally{SI(o),so(r?3:1,n)}}function Ep(t,e,A){kIA(t,e,A),(A.flags&64)===64&&SIA(t,e,A)}function ob(t,e,A=dl){let i=e.localNames;if(i!==null){let n=e.index+1;for(let o=0;onull;function MIA(t){return t==="class"?"className":t==="for"?"htmlFor":t==="formaction"?"formAction":t==="innerHtml"?"innerHTML":t==="readonly"?"readOnly":t==="tabindex"?"tabIndex":t}function Ru(t,e,A,i,n,o,r,s){if(!s&&sb(e,t,A,i,n)){Hd(e)&&bIA(A,e.index);return}if(e.type&3){let a=dl(e,A);i=MIA(i),n=r!=null?r(n,e.value||"",i):n,o.setProperty(a,i,n)}else e.type&12}function bIA(t,e){let A=cl(e,t);A[ii]&16||(A[ii]|=64)}function kIA(t,e,A){let i=A.directiveStart,n=A.directiveEnd;Hd(A)&&DIA(e,A,t.data[i+A.componentOffset]),t.firstCreatePass||Gm(A,e);let o=A.initialInputs;for(let r=i;r=0?i[s]():i[-s].unsubscribe(),r+=2}else{let s=i[A[r+1]];A[r].call(s)}i!==null&&(e[Sm]=null);let n=e[f2];if(n!==null){e[f2]=null;for(let r=0;r{zd(t.lView)},consumerOnSignalRead(){this.lView[wc]=this}});function tCA(t){let e=t[wc]??Object.create(iCA);return e.lView=t,e}var iCA=Fe(sA({},Cd),{consumerIsAlwaysLive:!0,kind:"template",consumerMarkedDirty:t=>{let e=kI(t.lView);for(;e&&!eH(e[hi]);)e=kI(e);e&&_Y(e)},consumerOnSignalRead(){this.lView[wc]=this}});function eH(t){return t.type!==2}function tH(t){if(t[MI]===null)return;let e=!0;for(;e;){let A=!1;for(let i of t[MI])i.dirty&&(A=!0,i.zone===null||Zone.current===i.zone?i.run():i.zone.run(()=>i.run()));e=A&&!!(t[ii]&8192)}}var nCA=100;function iH(t,e=!0,A=0){let n=t[E0].rendererFactory,o=!1;o||n.begin?.();try{oCA(t,A)}catch(r){throw e&&FIA(t,r),r}finally{o||n.end?.()}}function oCA(t,e){let A=YY();try{xm(!0),H9(t,e);let i=0;for(;ap(t);){if(i===nCA)throw new te(103,!1);i++,H9(t,1)}}finally{xm(A)}}function rCA(t,e,A,i){if(Od(e))return;let n=e[ii],o=!1,r=!1;TM(e);let s=!0,a=null,c=null;o||(eH(t)?(c=XIA(e),a=tu(c)):bv()===null?(s=!1,c=tCA(e),a=tu(c)):e[wc]&&(iu(e[wc]),e[wc]=null));try{FY(e),K2A(t.bindingStartIndex),A!==null&&PT(t,e,A,2,i);let g=(n&3)===3;if(!o)if(g){let d=t.preOrderCheckHooks;d!==null&&fm(e,d,null)}else{let d=t.preOrderHooks;d!==null&&mm(e,d,0,null),A9(e,0)}if(r||sCA(e),tH(e),nH(e,0),t.contentQueries!==null&&yT(t,e),!o)if(g){let d=t.contentCheckHooks;d!==null&&fm(e,d)}else{let d=t.contentHooks;d!==null&&mm(e,d,1),A9(e,1)}cCA(t,e);let I=t.components;I!==null&&rH(e,I,0);let C=t.viewQuery;if(C!==null&&L9(2,C,i),!o)if(g){let d=t.viewCheckHooks;d!==null&&fm(e,d)}else{let d=t.viewHooks;d!==null&&mm(e,d,2),A9(e,2)}if(t.firstUpdatePass===!0&&(t.firstUpdatePass=!1),e[$v]){for(let d of e[$v])d();e[$v]=null}o||($T(e),e[ii]&=-73)}catch(g){throw o||zd(e),g}finally{c!==null&&(Gf(c,a),s&&ACA(c)),HM()}}function nH(t,e){for(let A=ET(t);A!==null;A=QT(A))for(let i=ys;i0&&(t[A-1][lg]=i[lg]);let o=bm(t,ys+e);JIA(i[hi],i);let r=o[Q0];r!==null&&r.detachView(o[hi]),i[vs]=null,i[lg]=null,i[ii]&=-129}return i}function gCA(t,e,A,i){let n=ys+i,o=A.length;i>0&&(A[n-1][lg]=e),i-1&&(mu(e,i),bm(A,i))}this._attachedToViewContainer=!1}Qp(this._lView[hi],this._lView)}onDestroy(e){GY(this._lView,e)}markForCheck(){Cb(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[ii]&=-129}reattach(){h9(this._lView),this._lView[ii]|=128}detectChanges(){this._lView[ii]|=1024,iH(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new te(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;let e=Lm(this._lView),A=this._lView[vI];A!==null&&!e&&lb(A,this._lView),qT(this._lView[hi],this._lView)}attachToAppRef(e){if(this._attachedToViewContainer)throw new te(902,!1);this._appRef=e;let A=Lm(this._lView),i=this._lView[vI];i!==null&&!A&&gH(i,this._lView),h9(this._lView)}};var mn=(()=>{class t{static __NG_ELEMENT_ID__=CCA}return t})(),lCA=mn,ICA=class extends lCA{_declarationLView;_declarationTContainer;elementRef;constructor(e,A,i){super(),this._declarationLView=e,this._declarationTContainer=A,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(e,A){return this.createEmbeddedViewImpl(e,A)}createEmbeddedViewImpl(e,A,i){let n=Lu(this._declarationLView,this._declarationTContainer,e,{embeddedViewInjector:A,dehydratedView:i});return new pu(n)}};function CCA(){return fp(gs(),zt())}function fp(t,e){return t.type&4?new ICA(e,t,jd(t,e)):null}function Xd(t,e,A,i,n){let o=t.data[e];if(o===null)o=dCA(t,e,A,i,n),U2A()&&(o.flags|=32);else if(o.type&64){o.type=A,o.value=i,o.attrs=n;let r=_2A();o.injectorIndex=r===null?-1:r.injectorIndex}return w2(o,!0),o}function dCA(t,e,A,i,n){let o=UY(),r=GM(),s=r?o:o&&o.parent,a=t.data[e]=ECA(t,s,A,e,i,n);return BCA(t,a,o,r),a}function BCA(t,e,A,i){t.firstChild===null&&(t.firstChild=e),A!==null&&(i?A.child==null&&e.parent!==null&&(A.child=e):A.next===null&&(A.next=e,e.prev=A))}function ECA(t,e,A,i,n,o){let r=e?e.injectorIndex:-1,s=0;return KY()&&(s|=128),{type:A,index:i,insertBeforeIndex:null,injectorIndex:r,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:s,providerIndexes:0,value:n,attrs:o,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}var fie=new RegExp(`^(\\d+)*(${y1A}|${w1A})*(.*)`);var QCA=()=>null;function Ud(t,e){return QCA(t,e)}var uCA=class{},lH=class{},O9=class{resolveComponentFactory(e){throw Error(`No component factory found for ${Ia(e)}.`)}},mp=class{static NULL=new O9},Ms=class{},qi=(()=>{class t{destroyNode=null;static __NG_ELEMENT_ID__=()=>hCA()}return t})();function hCA(){let t=zt(),e=gs(),A=cl(e.index,t);return(m2(A)?A:t)[Jo]}var fCA=(()=>{class t{static \u0275prov=bA({token:t,providedIn:"root",factory:()=>null})}return t})();var i9={},z9=class{injector;parentInjector;constructor(e,A){this.injector=e,this.parentInjector=A}get(e,A,i){i=Ap(i);let n=this.injector.get(e,i9,i);return n!==i9||A===i9?n:this.parentInjector.get(e,A,i)}};function P9(t,e,A){let i=A?t.styles:null,n=A?t.classes:null,o=0;if(e!==null)for(let r=0;r0&&(A.directiveToIndex=new Map);for(let C=0;C0;){let A=t[--e];if(typeof A=="number"&&A<0)return A}return 0}function SCA(t,e,A){if(A){if(e.exportAs)for(let i=0;i{let[A,i,n]=t[e],o={propName:A,templateName:e,isSignal:(i&Bp.SignalBased)!==0};return n&&(o.transform=n),o})}function xCA(t){return Object.keys(t).map(e=>({propName:t[e],templateName:e}))}function NCA(t,e,A){let i=e instanceof vr?e:e?.injector;return i&&t.getStandaloneInjector!==null&&(i=t.getStandaloneInjector(i)||i),i?new z9(A,i):A}function FCA(t){let e=t.get(Ms,null);if(e===null)throw new te(407,!1);let A=t.get(fCA,null),i=t.get(LI,null);return{rendererFactory:e,sanitizer:A,changeDetectionScheduler:i}}function _CA(t,e){let A=(t.selectors[0][0]||"div").toLowerCase();return JT(e,A,A==="svg"?xY:A==="math"?w2A:null)}var xI=class extends lH{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=LCA(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=xCA(this.componentDef.outputs),this.cachedOutputs}constructor(e,A){super(),this.componentDef=e,this.ngModule=A,this.componentType=e.type,this.selector=CIA(e.selectors),this.ngContentSelectors=e.ngContentSelectors??[],this.isBoundToModule=!!A}create(e,A,i,n){so(22);let o=pi(null);try{let r=this.componentDef,s=i?["ng-version","19.2.15"]:dIA(this.componentDef.selectors[0]),a=tb(0,null,null,1,0,null,null,null,null,[s],null),c=NCA(r,n||this.ngModule,e),g=FCA(c),I=g.rendererFactory.createRenderer(null,r),C=i?wIA(I,i,r.encapsulation,c):_CA(r,I),d=ib(null,a,null,512|HT(r),null,null,g,I,c,null,wT(C,c,!0));d[Qr]=C,TM(d);let B=null;try{let E=dH(Qr,a,d,"#host",()=>[this.componentDef],!0,0);C&&(TT(I,C,E),qd(C,d)),Ep(a,d,E),$M(a,E,d),BH(a,E),A!==void 0&&GCA(E,this.ngContentSelectors,A),B=cl(E.index,d),d[Kr]=B[Kr],ab(a,d,null)}catch(E){throw B!==null&&k9(B),k9(d),E}finally{so(23),HM()}return new j9(this.componentType,d)}finally{pi(o)}}},j9=class extends uCA{_rootLView;instance;hostView;changeDetectorRef;componentType;location;previousInputValues=null;_tNode;constructor(e,A){super(),this._rootLView=A,this._tNode=RM(A[hi],Qr),this.location=jd(this._tNode,A),this.instance=cl(this._tNode.index,A)[Kr],this.hostView=this.changeDetectorRef=new pu(A,void 0,!1),this.componentType=e}setInput(e,A){let i=this._tNode;if(this.previousInputValues??=new Map,this.previousInputValues.has(e)&&Object.is(this.previousInputValues.get(e),A))return;let n=this._rootLView,o=sb(i,n[hi],n,e,A);this.previousInputValues.set(e,A);let r=cl(i.index,n);Cb(r,1)}get injector(){return new DI(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(e){this.hostView.onDestroy(e)}};function GCA(t,e,A){let i=t.projection=[];for(let n=0;n{class t{static __NG_ELEMENT_ID__=KCA}return t})();function KCA(){let t=gs();return QH(t,zt())}var UCA=Sn,EH=class extends UCA{_lContainer;_hostTNode;_hostLView;constructor(e,A,i){super(),this._lContainer=e,this._hostTNode=A,this._hostLView=i}get element(){return jd(this._hostTNode,this._hostLView)}get injector(){return new DI(this._hostTNode,this._hostLView)}get parentInjector(){let e=zM(this._hostTNode,this._hostLView);if(ZY(e)){let A=Fm(e,this._hostLView),i=Nm(e),n=A[hi].data[i+8];return new DI(n,A)}else return new DI(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(e){let A=OJ(this._lContainer);return A!==null&&A[e]||null}get length(){return this._lContainer.length-ys}createEmbeddedView(e,A,i){let n,o;typeof i=="number"?n=i:i!=null&&(n=i.index,o=i.injector);let r=Ud(this._lContainer,e.ssrId),s=e.createEmbeddedViewImpl(A||{},o,r);return this.insertImpl(s,n,Kd(this._hostTNode,r)),s}createComponent(e,A,i,n,o){let r=e&&!f2A(e),s;if(r)s=A;else{let B=A||{};s=B.index,i=B.injector,n=B.projectableNodes,o=B.environmentInjector||B.ngModuleRef}let a=r?e:new xI(p2(e)),c=i||this.parentInjector;if(!o&&a.ngModule==null){let E=(r?c:this.parentInjector).get(vr,null);E&&(o=E)}let g=p2(a.componentType??{}),I=Ud(this._lContainer,g?.id??null),C=I?.firstChild??null,d=a.create(c,n,C,o);return this.insertImpl(d.hostView,s,Kd(this._hostTNode,I)),d}insert(e,A){return this.insertImpl(e,A,!0)}insertImpl(e,A,i){let n=e._lView;if(M2A(n)){let s=this.indexOf(e);if(s!==-1)this.detach(s);else{let a=n[vs],c=new EH(a,a[Ba],a[vs]);c.detach(c.indexOf(e))}}let o=this._adjustIndex(A),r=this._lContainer;return xu(r,n,o,i),e.attachToViewContainerRef(),hY(n9(r),o,e),e}move(e,A){return this.insert(e,A)}indexOf(e){let A=OJ(this._lContainer);return A!==null?A.indexOf(e):-1}remove(e){let A=this._adjustIndex(e,-1),i=mu(this._lContainer,A);i&&(bm(n9(this._lContainer),A),Qp(i[hi],i))}detach(e){let A=this._adjustIndex(e,-1),i=mu(this._lContainer,A);return i&&bm(n9(this._lContainer),A)!=null?new pu(i):null}_adjustIndex(e,A=0){return e??this.length+A}};function OJ(t){return t[Rm]}function n9(t){return t[Rm]||(t[Rm]=[])}function QH(t,e){let A,i=e[t.index];return h0(i)?A=i:(A=sH(i,e,null,t),e[t.index]=A,nb(e,A)),YCA(A,e,t,i),new EH(A,t,e)}function JCA(t,e){let A=t[Jo],i=A.createComment(""),n=dl(e,t),o=A.parentNode(n);return Jm(A,o,i,A.nextSibling(n),!1),i}var YCA=OCA,TCA=()=>!1;function HCA(t,e,A){return TCA(t,e,A)}function OCA(t,e,A,i){if(t[bI])return;let n;A.type&8?n=al(i):n=JCA(e,A),t[bI]=n}var q9=class t{queryList;matches=null;constructor(e){this.queryList=e}clone(){return new t(this.queryList)}setDirty(){this.queryList.setDirty()}},V9=class t{queries;constructor(e=[]){this.queries=e}createEmbeddedView(e){let A=e.queries;if(A!==null){let i=e.contentQueries!==null?e.contentQueries[0]:A.length,n=[];for(let o=0;o0)i.push(r[s/2]);else{let c=o[s+1],g=e[-a];for(let I=ys;Ie.trim())}function pH(t,e,A){t.queries===null&&(t.queries=new Z9),t.queries.track(new W9(e,A))}function ZCA(t,e){let A=t.contentQueries||(t.contentQueries=[]),i=A.length?A[A.length-1]:-1;e!==i&&A.push(t.queries.length-1,e)}function Eb(t,e){return t.queries.getByIndex(e)}function DH(t,e){let A=t[hi],i=Eb(A,e);return i.crossesNgTemplate?X9(A,t,e,[]):uH(A,t,i,e)}function Qb(t,e,A){let i,n=Yf(()=>{i._dirtyCounter();let o=XCA(i,t);if(e&&o===void 0)throw new te(-951,!1);return o});return i=n[aa],i._dirtyCounter=Ao(0),i._flatValue=void 0,n}function wH(t){return Qb(!0,!1,t)}function yH(t){return Qb(!0,!0,t)}function WCA(t){return Qb(!1,!1,t)}function vH(t,e){let A=t[aa];A._lView=zt(),A._queryIndex=e,A._queryList=Bb(A._lView,e),A._queryList.onDirty(()=>A._dirtyCounter.update(i=>i+1))}function XCA(t,e){let A=t._lView,i=t._queryIndex;if(A===void 0||i===void 0||A[ii]&4)return e?void 0:zs;let n=Bb(A,i),o=DH(A,i);return n.reset(o,lT),e?n.first:n._changesDetected||t._flatValue===void 0?t._flatValue=n.toArray():t._flatValue}function zJ(t,e){return wH(e)}function $CA(t,e){return yH(e)}var qs=(zJ.required=$CA,zJ);function MH(t,e){return WCA(e)}function PJ(t,e){return wH(e)}function AdA(t,e){return yH(e)}var bH=(PJ.required=AdA,PJ);var Il=class{},ub=class{};function kH(t,e){return new Om(t,e??null,[])}var Om=class extends Il{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];componentFactoryResolver=new Tm(this);constructor(e,A,i,n=!0){super(),this.ngModuleType=e,this._parent=A;let o=pY(e);this._bootstrapComponents=GT(o.bootstrap),this._r3Injector=oT(e,A,[{provide:Il,useValue:this},{provide:mp,useValue:this.componentFactoryResolver},...i],Ia(e),new Set(["environment"])),n&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}get injector(){return this._r3Injector}destroy(){let e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(A=>A()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}},$9=class extends ub{moduleType;constructor(e){super(),this.moduleType=e}create(e){return new Om(this.moduleType,e,[])}};var zm=class extends Il{injector;componentFactoryResolver=new Tm(this);instance=null;constructor(e){super();let A=new Qu([...e.providers,{provide:Il,useValue:this},{provide:mp,useValue:this.componentFactoryResolver}],e.parent||np(),e.debugName,new Set(["environment"]));this.injector=A,e.runEnvironmentInitializers&&A.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(e){this.injector.onDestroy(e)}};function Nu(t,e,A=null){return new zm({providers:t,parent:e,debugName:A,runEnvironmentInitializers:!0}).injector}var edA=(()=>{class t{_injector;cachedInjectors=new Map;constructor(A){this._injector=A}getOrCreateStandaloneInjector(A){if(!A.standalone)return null;if(!this.cachedInjectors.has(A)){let i=wY(!1,A.type),n=i.length>0?Nu([i],this._injector,`Standalone[${A.type.name}]`):null;this.cachedInjectors.set(A,n)}return this.cachedInjectors.get(A)}ngOnDestroy(){try{for(let A of this.cachedInjectors.values())A!==null&&A.destroy()}finally{this.cachedInjectors.clear()}}static \u0275prov=bA({token:t,providedIn:"environment",factory:()=>new t(be(vr))})}return t})();function jA(t){return wu(()=>{let e=SH(t),A=Fe(sA({},e),{decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===dT.OnPush,directiveDefs:null,pipeDefs:null,dependencies:e.standalone&&t.dependencies||null,getStandaloneInjector:e.standalone?n=>n.get(edA).getOrCreateStandaloneInjector(A):null,getExternalStyles:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||gl.Emulated,styles:t.styles||zs,_:null,schemas:t.schemas||null,tView:null,id:""});e.standalone&&Cg("NgStandalone"),RH(A);let i=t.dependencies;return A.directiveDefs=jJ(i,!1),A.pipeDefs=jJ(i,!0),A.id=rdA(A),A})}function tdA(t){return p2(t)||DY(t)}function idA(t){return t!==null}function Ze(t){return wu(()=>({type:t.type,bootstrap:t.bootstrap||zs,declarations:t.declarations||zs,imports:t.imports||zs,exports:t.exports||zs,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function ndA(t,e){if(t==null)return sl;let A={};for(let i in t)if(t.hasOwnProperty(i)){let n=t[i],o,r,s,a;Array.isArray(n)?(s=n[0],o=n[1],r=n[2]??o,a=n[3]||null):(o=n,r=n,s=Bp.None,a=null),A[o]=[i,s,a],e[o]=r}return A}function odA(t){if(t==null)return sl;let e={};for(let A in t)t.hasOwnProperty(A)&&(e[t[A]]=A);return e}function WA(t){return wu(()=>{let e=SH(t);return RH(e),e})}function $d(t){return{type:t.type,name:t.name,factory:null,pure:t.pure!==!1,standalone:t.standalone??!0,onDestroy:t.type.prototype.ngOnDestroy||null}}function SH(t){let e={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:e,inputConfig:t.inputs||sl,exportAs:t.exportAs||null,standalone:t.standalone??!0,signals:t.signals===!0,selectors:t.selectors||zs,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:ndA(t.inputs,e),outputs:odA(t.outputs),debugInfo:null}}function RH(t){t.features?.forEach(e=>e(t))}function jJ(t,e){if(!t)return null;let A=e?g2A:tdA;return()=>(typeof t=="function"?t():t).map(i=>A(i)).filter(idA)}function rdA(t){let e=0,A=typeof t.consts=="function"?"":t.consts,i=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,A,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery];for(let o of i.join("|"))e=Math.imul(31,e)+o.charCodeAt(0)<<0;return e+=2147483648,"c"+e}function sdA(t){return Object.getPrototypeOf(t.prototype).constructor}function lt(t){let e=sdA(t.type),A=!0,i=[t];for(;e;){let n;if(Ig(t))n=e.\u0275cmp||e.\u0275dir;else{if(e.\u0275cmp)throw new te(903,!1);n=e.\u0275dir}if(n){if(A){i.push(n);let r=t;r.inputs=o9(t.inputs),r.declaredInputs=o9(t.declaredInputs),r.outputs=o9(t.outputs);let s=n.hostBindings;s&&IdA(t,s);let a=n.viewQuery,c=n.contentQueries;if(a&&gdA(t,a),c&&ldA(t,c),adA(t,n),T0A(t.outputs,n.outputs),Ig(n)&&n.data.animation){let g=t.data;g.animation=(g.animation||[]).concat(n.data.animation)}}let o=n.features;if(o)for(let r=0;r=0;i--){let n=t[i];n.hostVars=e+=n.hostVars,n.hostAttrs=Gd(n.hostAttrs,A=Gd(A,n.hostAttrs))}}function o9(t){return t===sl?{}:t===zs?[]:t}function gdA(t,e){let A=t.viewQuery;A?t.viewQuery=(i,n)=>{e(i,n),A(i,n)}:t.viewQuery=e}function ldA(t,e){let A=t.contentQueries;A?t.contentQueries=(i,n,o)=>{e(i,n,o),A(i,n,o)}:t.contentQueries=e}function IdA(t,e){let A=t.hostBindings;A?t.hostBindings=(i,n)=>{e(i,n),A(i,n)}:t.hostBindings=e}function LH(t){let e=A=>{let i=Array.isArray(t);A.hostDirectives===null?(A.findHostDirectiveDefs=xH,A.hostDirectives=i?t.map(AM):[t]):i?A.hostDirectives.unshift(...t.map(AM)):A.hostDirectives.unshift(t)};return e.ngInherit=!0,e}function xH(t,e,A){if(t.hostDirectives!==null)for(let i of t.hostDirectives)if(typeof i=="function"){let n=i();for(let o of n)qJ(AM(o),e,A)}else qJ(i,e,A)}function qJ(t,e,A){let i=DY(t.directive);CdA(i.declaredInputs,t.inputs),xH(i,e,A),A.set(i,t),e.push(i)}function AM(t){return typeof t=="function"?{directive:cs(t),inputs:sl,outputs:sl}:{directive:cs(t.directive),inputs:VJ(t.inputs),outputs:VJ(t.outputs)}}function VJ(t){if(t===void 0||t.length===0)return sl;let e={};for(let A=0;A{class t{log(A){console.log(A)}warn(A){console.warn(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();var pb=new eA(""),Fu=new eA(""),pp=(()=>{class t{_ngZone;registry;_isZoneStable=!0;_callbacks=[];_taskTrackingZone=null;_destroyRef;constructor(A,i,n){this._ngZone=A,this.registry=i,MM()&&(this._destroyRef=f(f0,{optional:!0})??void 0),Db||(hdA(n),n.addToWindow(i)),this._watchAngularEvents(),A.run(()=>{this._taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){let A=this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),i=this._ngZone.runOutsideAngular(()=>this._ngZone.onStable.subscribe({next:()=>{ye.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}}));this._destroyRef?.onDestroy(()=>{A.unsubscribe(),i.unsubscribe()})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;this._callbacks.length!==0;){let A=this._callbacks.pop();clearTimeout(A.timeoutId),A.doneCb()}});else{let A=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>i.updateCb&&i.updateCb(A)?(clearTimeout(i.timeoutId),!1):!0)}}getPendingTasks(){return this._taskTrackingZone?this._taskTrackingZone.macroTasks.map(A=>({source:A.source,creationLocation:A.creationLocation,data:A.data})):[]}addCallback(A,i,n){let o=-1;i&&i>0&&(o=setTimeout(()=>{this._callbacks=this._callbacks.filter(r=>r.timeoutId!==o),A()},i)),this._callbacks.push({doneCb:A,timeoutId:o,updateCb:n})}whenStable(A,i,n){if(n&&!this._taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(A,i,n),this._runCallbacksIfReady()}registerApplication(A){this.registry.registerApplication(A,this)}unregisterApplication(A){this.registry.unregisterApplication(A)}findProviders(A,i,n){return[]}static \u0275fac=function(i){return new(i||t)(be(ye),be(Dp),be(Fu))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),Dp=(()=>{class t{_applications=new Map;registerApplication(A,i){this._applications.set(A,i)}unregisterApplication(A){this._applications.delete(A)}unregisterAllApplications(){this._applications.clear()}getTestability(A){return this._applications.get(A)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(A,i=!0){return Db?.findTestabilityInTree(this,A,i)??null}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function hdA(t){Db=t}var Db,_H=(()=>{class t{static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new eM})}return t})(),eM=class{queuedEffectCount=0;queues=new Map;schedule(e){this.enqueue(e)}remove(e){let A=e.zone,i=this.queues.get(A);i.has(e)&&(i.delete(e),this.queuedEffectCount--)}enqueue(e){let A=e.zone;this.queues.has(A)||this.queues.set(A,new Set);let i=this.queues.get(A);i.has(e)||(this.queuedEffectCount++,i.add(e))}flush(){for(;this.queuedEffectCount>0;)for(let[e,A]of this.queues)e===null?this.flushQueue(A):e.run(()=>this.flushQueue(A))}flushQueue(e){for(let A of e)e.delete(A),this.queuedEffectCount--,A.run()}};function k2(t){return!!t&&typeof t.then=="function"}function wb(t){return!!t&&typeof t.subscribe=="function"}var GH=new eA("");function yb(t){return vu([{provide:GH,multi:!0,useValue:t}])}var KH=(()=>{class t{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((A,i)=>{this.resolve=A,this.reject=i});appInits=f(GH,{optional:!0})??[];injector=f(Zt);constructor(){}runInitializers(){if(this.initialized)return;let A=[];for(let n of this.appInits){let o=da(this.injector,n);if(k2(o))A.push(o);else if(wb(o)){let r=new Promise((s,a)=>{o.subscribe({complete:s,error:a})});A.push(r)}}let i=()=>{this.done=!0,this.resolve()};Promise.all(A).then(()=>{i()}).catch(n=>{this.reject(n)}),A.length===0&&i(),this.initialized=!0}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),vb=new eA("");function fdA(){Lv(()=>{throw new te(600,!1)})}function mdA(t){return t.isBoundToModule}var pdA=10;var Ca=(()=>{class t{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=f(B1A);afterRenderManager=f(pT);zonelessEnabled=f(jM);rootEffectScheduler=f(_H);dirtyFlags=0;tracingSnapshot=null;externalTestViews=new Set;afterTick=new qA;get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];isStable=f(m0).hasPendingTasks.pipe(je(A=>!A));constructor(){f(Zd,{optional:!0})}whenStable(){let A;return new Promise(i=>{A=this.isStable.subscribe({next:n=>{n&&i()}})}).finally(()=>{A.unsubscribe()})}_injector=f(vr);_rendererFactory=null;get injector(){return this._injector}bootstrap(A,i){return this.bootstrapImpl(A,i)}bootstrapImpl(A,i,n=Zt.NULL){so(10);let o=A instanceof lH;if(!this._injector.get(KH).done){let d="";throw new te(405,d)}let s;o?s=A:s=this._injector.get(mp).resolveComponentFactory(A),this.componentTypes.push(s.componentType);let a=mdA(s)?void 0:this._injector.get(Il),c=i||s.selector,g=s.create(n,[],c,a),I=g.location.nativeElement,C=g.injector.get(pb,null);return C?.registerApplication(I),g.onDestroy(()=>{this.detachView(g.hostView),Dm(this.components,g),C?.unregisterApplication(I)}),this._loadComponent(g),so(11,g),g}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){so(12),this.tracingSnapshot!==null?this.tracingSnapshot.run(WM.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw new te(101,!1);let A=pi(null);try{this._runningTick=!0,this.synchronize()}catch(i){this.internalErrorHandler(i)}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,pi(A),this.afterTick.next(),so(13)}};synchronize(){this._rendererFactory===null&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(Ms,null,{optional:!0}));let A=0;for(;this.dirtyFlags!==0&&A++ap(A))){this.dirtyFlags|=2;return}else this.dirtyFlags&=-8}attachView(A){let i=A;this._views.push(i),i.attachToAppRef(this)}detachView(A){let i=A;Dm(this._views,i),i.detachFromAppRef()}_loadComponent(A){this.attachView(A.hostView),this.tick(),this.components.push(A),this._injector.get(vb,[]).forEach(n=>n(A))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(A=>A()),this._views.slice().forEach(A=>A.destroy())}finally{this._destroyed=!0,this._views=[],this._destroyListeners=[]}}onDestroy(A){return this._destroyListeners.push(A),()=>Dm(this._destroyListeners,A)}destroy(){if(this._destroyed)throw new te(406,!1);let A=this._injector;A.destroy&&!A.destroyed&&A.destroy()}get viewCount(){return this._views.length}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Dm(t,e){let A=t.indexOf(e);A>-1&&t.splice(A,1)}function DdA(t,e,A,i){if(!A&&!ap(t))return;iH(t,e,A&&!i?0:1)}function Ke(t,e,A,i){let n=zt(),o=y2();if(Va(n,o,e)){let r=ao(),s=Pd();LIA(s,n,t,e,A,i)}return Ke}function Mb(t,e,A,i){return Va(t,y2(),A)?e+wI(A)+i:Ea}function wdA(t,e,A,i,n,o){let r=G2A(),s=FH(t,r,A,n);return UM(2),s?e+wI(A)+i+wI(n)+o:Ea}function um(t,e){return t<<17|e<<2}function NI(t){return t>>17&32767}function ydA(t){return(t&2)==2}function vdA(t,e){return t&131071|e<<17}function tM(t){return t|2}function Jd(t){return(t&131068)>>2}function r9(t,e){return t&-131069|e<<2}function MdA(t){return(t&1)===1}function iM(t){return t|1}function bdA(t,e,A,i,n,o){let r=o?e.classBindings:e.styleBindings,s=NI(r),a=Jd(r);t[i]=A;let c=!1,g;if(Array.isArray(A)){let I=A;g=I[1],(g===null||yu(I,g)>0)&&(c=!0)}else g=A;if(n)if(a!==0){let C=NI(t[s+1]);t[i+1]=um(C,s),C!==0&&(t[C+1]=r9(t[C+1],i)),t[s+1]=vdA(t[s+1],i)}else t[i+1]=um(s,0),s!==0&&(t[s+1]=r9(t[s+1],i)),s=i;else t[i+1]=um(a,0),s===0?s=i:t[a+1]=r9(t[a+1],i),a=i;c&&(t[i+1]=tM(t[i+1])),ZJ(t,g,i,!0),ZJ(t,g,i,!1),kdA(e,g,t,i,o),r=um(s,a),o?e.classBindings=r:e.styleBindings=r}function kdA(t,e,A,i,n){let o=n?t.residualClasses:t.residualStyles;o!=null&&typeof e=="string"&&yu(o,e)>=0&&(A[i+1]=iM(A[i+1]))}function ZJ(t,e,A,i){let n=t[A+1],o=e===null,r=i?NI(n):Jd(n),s=!1;for(;r!==0&&(s===!1||o);){let a=t[r],c=t[r+1];SdA(a,e)&&(s=!0,t[r+1]=i?iM(c):tM(c)),r=i?NI(c):Jd(c)}s&&(t[A+1]=i?tM(n):iM(n))}function SdA(t,e){return t===null||e==null||(Array.isArray(t)?t[1]:t)===e?!0:Array.isArray(t)&&typeof e=="string"?yu(t,e)>=0:!1}var gg={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function RdA(t){return t.substring(gg.key,gg.keyEnd)}function LdA(t){return xdA(t),UH(t,JH(t,0,gg.textEnd))}function UH(t,e){let A=gg.textEnd;return A===e?-1:(e=gg.keyEnd=NdA(t,gg.key=e,A),JH(t,e,A))}function xdA(t){gg.key=0,gg.keyEnd=0,gg.value=0,gg.valueEnd=0,gg.textEnd=t.length}function JH(t,e,A){for(;e32;)e++;return e}function yA(t,e,A){let i=zt(),n=y2();if(Va(i,n,e)){let o=ao(),r=Pd();Ru(o,r,i,t,e,i[Jo],A,!1)}return yA}function nM(t,e,A,i,n){sb(e,t,A,n?"class":"style",i)}function mo(t,e,A){return TH(t,e,A,!1),mo}function he(t,e){return TH(t,e,null,!0),he}function Ro(t){HH(JdA,YH,t,!0)}function YH(t,e){for(let A=LdA(e);A>=0;A=UH(e,A))tp(t,RdA(e),!0)}function TH(t,e,A,i){let n=zt(),o=ao(),r=UM(2);if(o.firstUpdatePass&&zH(o,t,r,i),e!==Ea&&Va(n,r,e)){let s=o.data[Bl()];PH(o,s,n,n[Jo],t,n[r+1]=TdA(e,A),i,r)}}function HH(t,e,A,i){let n=ao(),o=UM(2);n.firstUpdatePass&&zH(n,null,o,i);let r=zt();if(A!==Ea&&Va(r,o,A)){let s=n.data[Bl()];if(jH(s,i)&&!OH(n,o)){let a=i?s.classesWithoutHost:s.stylesWithoutHost;a!==null&&(A=l9(a,A||"")),nM(n,s,r,A,i)}else YdA(n,s,r,r[Jo],r[o+1],r[o+1]=UdA(t,e,A),i,o)}}function OH(t,e){return e>=t.expandoStartIndex}function zH(t,e,A,i){let n=t.data;if(n[A+1]===null){let o=n[Bl()],r=OH(t,A);jH(o,i)&&e===null&&!r&&(e=!1),e=FdA(n,o,e,i),bdA(n,o,e,A,r,i)}}function FdA(t,e,A,i){let n=JM(t),o=i?e.residualClasses:e.residualStyles;if(n===null)(i?e.classBindings:e.styleBindings)===0&&(A=s9(null,t,e,A,i),A=Du(A,e.attrs,i),o=null);else{let r=e.directiveStylingLast;if(r===-1||t[r]!==n)if(A=s9(n,t,e,A,i),o===null){let a=_dA(t,e,i);a!==void 0&&Array.isArray(a)&&(a=s9(null,t,e,a[1],i),a=Du(a,e.attrs,i),GdA(t,e,i,a))}else o=KdA(t,e,i)}return o!==void 0&&(i?e.residualClasses=o:e.residualStyles=o),A}function _dA(t,e,A){let i=A?e.classBindings:e.styleBindings;if(Jd(i)!==0)return t[NI(i)]}function GdA(t,e,A,i){let n=A?e.classBindings:e.styleBindings;t[NI(n)]=i}function KdA(t,e,A){let i,n=e.directiveEnd;for(let o=1+e.directiveStylingLast;o0;){let a=t[n],c=Array.isArray(a),g=c?a[1]:a,I=g===null,C=A[n+1];C===Ea&&(C=I?zs:void 0);let d=I?Wv(C,i):g===i?C:void 0;if(c&&!jm(d)&&(d=Wv(a,i)),jm(d)&&(s=d,r))return s;let B=t[n+1];n=r?NI(B):Jd(B)}if(e!==null){let a=o?e.residualClasses:e.residualStyles;a!=null&&(s=Wv(a,i))}return s}function jm(t){return t!==void 0}function TdA(t,e){return t==null||t===""||(typeof e=="string"?t=t+e:typeof t=="object"&&(t=Ia(dg(t)))),t}function jH(t,e){return(t.flags&(e?8:16))!==0}function qH(t,e,A){let i=zt(),n=Mb(i,t,e,A);HH(tp,YH,n,!0)}var oM=class{destroy(e){}updateValue(e,A){}swap(e,A){let i=Math.min(e,A),n=Math.max(e,A),o=this.detach(n);if(n-i>1){let r=this.detach(i);this.attach(i,o),this.attach(n,r)}else this.attach(i,o)}move(e,A){this.attach(A,this.detach(e))}};function a9(t,e,A,i,n){return t===A&&Object.is(e,i)?1:Object.is(n(t,e),n(A,i))?-1:0}function HdA(t,e,A){let i,n,o=0,r=t.length-1,s=void 0;if(Array.isArray(e)){let a=e.length-1;for(;o<=r&&o<=a;){let c=t.at(o),g=e[o],I=a9(o,c,o,g,A);if(I!==0){I<0&&t.updateValue(o,g),o++;continue}let C=t.at(r),d=e[a],B=a9(r,C,a,d,A);if(B!==0){B<0&&t.updateValue(r,d),r--,a--;continue}let E=A(o,c),u=A(r,C),h=A(o,g);if(Object.is(h,u)){let w=A(a,d);Object.is(w,E)?(t.swap(o,r),t.updateValue(r,d),a--,r--):t.move(r,o),t.updateValue(o,g),o++;continue}if(i??=new qm,n??=$J(t,o,r,A),rM(t,i,o,h))t.updateValue(o,g),o++,r++;else if(n.has(h))i.set(E,t.detach(o)),r--;else{let w=t.create(o,e[o]);t.attach(o,w),o++,r++}}for(;o<=a;)XJ(t,i,A,o,e[o]),o++}else if(e!=null){let a=e[Symbol.iterator](),c=a.next();for(;!c.done&&o<=r;){let g=t.at(o),I=c.value,C=a9(o,g,o,I,A);if(C!==0)C<0&&t.updateValue(o,I),o++,c=a.next();else{i??=new qm,n??=$J(t,o,r,A);let d=A(o,I);if(rM(t,i,o,d))t.updateValue(o,I),o++,r++,c=a.next();else if(!n.has(d))t.attach(o,t.create(o,I)),o++,r++,c=a.next();else{let B=A(o,g);i.set(B,t.detach(o)),r--}}}for(;!c.done;)XJ(t,i,A,t.length,c.value),c=a.next()}for(;o<=r;)t.destroy(t.detach(r--));i?.forEach(a=>{t.destroy(a)})}function rM(t,e,A,i){return e!==void 0&&e.has(i)?(t.attach(A,e.get(i)),e.delete(i),!0):!1}function XJ(t,e,A,i,n){if(rM(t,e,i,A(i,n)))t.updateValue(i,n);else{let o=t.create(i,n);t.attach(i,o)}}function $J(t,e,A,i){let n=new Set;for(let o=e;o<=A;o++)n.add(i(o,t.at(o)));return n}var qm=class{kvMap=new Map;_vMap=void 0;has(e){return this.kvMap.has(e)}delete(e){if(!this.has(e))return!1;let A=this.kvMap.get(e);return this._vMap!==void 0&&this._vMap.has(A)?(this.kvMap.set(e,this._vMap.get(A)),this._vMap.delete(A)):this.kvMap.delete(e),!0}get(e){return this.kvMap.get(e)}set(e,A){if(this.kvMap.has(e)){let i=this.kvMap.get(e);this._vMap===void 0&&(this._vMap=new Map);let n=this._vMap;for(;n.has(i);)i=n.get(i);n.set(i,A)}else this.kvMap.set(e,A)}forEach(e){for(let[A,i]of this.kvMap)if(e(i,A),this._vMap!==void 0){let n=this._vMap;for(;n.has(i);)i=n.get(i),e(i,A)}}};function _A(t,e){Cg("NgControlFlow");let A=zt(),i=y2(),n=A[i]!==Ea?A[i]:-1,o=n!==-1?Vm(A,Qr+n):void 0,r=0;if(Va(A,i,t)){let s=pi(null);try{if(o!==void 0&&cH(o,r),t!==-1){let a=Qr+t,c=Vm(A,a),g=gM(A[hi],a),I=Ud(c,g.tView.ssrId),C=Lu(A,g,e,{dehydratedView:I});xu(c,C,r,Kd(g,I))}}finally{pi(s)}}else if(o!==void 0){let s=aH(o,r);s!==void 0&&(s[Kr]=e)}}var sM=class{lContainer;$implicit;$index;constructor(e,A,i){this.lContainer=e,this.$implicit=A,this.$index=i}get $count(){return this.lContainer.length-ys}};function AB(t){return t}function zn(t,e){return e}var aM=class{hasEmptyBlock;trackByFn;liveCollection;constructor(e,A,i){this.hasEmptyBlock=e,this.trackByFn=A,this.liveCollection=i}};function dn(t,e,A,i,n,o,r,s,a,c,g,I,C){Cg("NgControlFlow");let d=zt(),B=ao(),E=a!==void 0,u=zt(),h=s?r.bind(u[ja][Kr]):r,w=new aM(E,h);u[Qr+t]=w,Pm(d,B,t+1,e,A,i,n,D2(B.consts,o)),E&&Pm(d,B,t+2,a,c,g,I,D2(B.consts,C))}var cM=class extends oM{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(e,A,i){super(),this.lContainer=e,this.hostLView=A,this.templateTNode=i}get length(){return this.lContainer.length-ys}at(e){return this.getLView(e)[Kr].$implicit}attach(e,A){let i=A[Nd];this.needsIndexUpdate||=e!==this.length,xu(this.lContainer,A,e,Kd(this.templateTNode,i))}detach(e){return this.needsIndexUpdate||=e!==this.length-1,OdA(this.lContainer,e)}create(e,A){let i=Ud(this.lContainer,this.templateTNode.tView.ssrId),n=Lu(this.hostLView,this.templateTNode,new sM(this.lContainer,A,e),{dehydratedView:i});return this.operationsCounter?.recordCreate(),n}destroy(e){Qp(e[hi],e),this.operationsCounter?.recordDestroy()}updateValue(e,A){this.getLView(e)[Kr].$implicit=A}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let e=0;e(lp(!0),JT(i,n,z2A()));function jdA(t,e,A,i,n){let o=e.consts,r=D2(o,i),s=Xd(e,t,8,"ng-container",r);r!==null&&P9(s,r,!0);let a=D2(o,n);return _M()&&db(e,A,s,a,rb),s.mergedAttrs=Gd(s.mergedAttrs,s.attrs),e.queries!==null&&e.queries.elementStart(e,s),s}function S2(t,e,A){let i=zt(),n=ao(),o=t+Qr,r=n.firstCreatePass?jdA(o,n,i,e,A):n.data[o];w2(r,!0);let s=qdA(n,i,r,t);return i[o]=s,gp()&&up(n,i,s,r),qd(s,i),rp(r)&&(Ep(n,i,r),$M(n,r,i)),A!=null&&ob(i,r),S2}function R2(){let t=gs(),e=ao();return GM()?KM():(t=t.parent,w2(t,!1)),e.firstCreatePass&&(OM(e,t),SM(t)&&e.queries.elementEnd(t)),R2}function rr(t,e,A){return S2(t,e,A),R2(),rr}var qdA=(t,e,A,i)=>(lp(!0),QIA(e[Jo],""));function me(){return zt()}function Qa(t,e,A){let i=zt(),n=y2();if(Va(i,n,e)){let o=ao(),r=Pd();Ru(o,r,i,t,e,i[Jo],A,!0)}return Qa}function bb(t,e,A){let i=zt(),n=y2();if(Va(i,n,e)){let o=ao(),r=Pd(),s=JM(o.data),a=jT(s,r,i);Ru(o,r,i,t,e,a,A,!0)}return bb}var Zm="en-US";var VdA=Zm;function ZdA(t){typeof t=="string"&&(VdA=t.toLowerCase().replace(/_/g,"-"))}function AY(t,e,A){return function i(n){if(n===Function)return A;let o=Hd(t)?cl(t.index,e):e;Cb(o,5);let r=e[Kr],s=eY(e,r,A,n),a=i.__ngNextListenerFn__;for(;a;)s=eY(e,r,a,n)&&s,a=a.__ngNextListenerFn__;return s}}function eY(t,e,A,i){let n=pi(null);try{return so(6,e,A),A(i)!==!1}catch(o){return WdA(t,o),!1}finally{so(7,e,A),pi(n)}}function WdA(t,e){let A=t[Fd],i=A?A.get(Ps,null):null;i&&i.handleError(e)}function tY(t,e,A,i,n,o){let r=e[A],s=e[hi],c=s.data[A].outputs[i],g=r[c],I=s.firstCreatePass?FM(s):null,C=NM(e),d=g.subscribe(o),B=C.length;C.push(o,d),I&&I.push(n,t.index,B,-(B+1))}function mA(t,e,A,i){let n=zt(),o=ao(),r=gs();return Sb(o,n,n[Jo],r,t,e,i),mA}function kb(t,e){let A=gs(),i=zt(),n=ao(),o=JM(n.data),r=jT(o,A,i);return Sb(n,i,r,A,t,e),kb}function XdA(t,e,A,i){let n=t.cleanup;if(n!=null)for(let o=0;oa?s[a]:null}typeof r=="string"&&(o+=2)}return null}function Sb(t,e,A,i,n,o,r){let s=rp(i),c=t.firstCreatePass?FM(t):null,g=NM(e),I=!0;if(i.type&3||r){let C=dl(i,e),d=r?r(C):C,B=g.length,E=r?h=>r(al(h[i.index])):i.index,u=null;if(!r&&s&&(u=XdA(t,e,n,i.index)),u!==null){let h=u.__ngLastListenerFn__||u;h.__ngNextListenerFn__=o,u.__ngLastListenerFn__=o,I=!1}else{o=AY(i,e,o),L1A(e,d,n,o);let h=A.listen(d,n,o);g.push(o,h),c&&c.push(n,E,B,B+1)}}else o=AY(i,e,o);if(I){let C=i.outputs?.[n],d=i.hostDirectiveOutputs?.[n];if(d&&d.length)for(let B=0;B(lp(!0),BIA(e[Jo],i));function tt(t){return Bt("",t,""),tt}function Bt(t,e,A){let i=zt(),n=Mb(i,t,e,A);return n!==Ea&&WH(i,Bl(),n),Bt}function x2(t,e,A,i,n){let o=zt(),r=wdA(o,t,e,A,i,n);return r!==Ea&&WH(o,Bl(),r),x2}function WH(t,e,A){let i=NY(e,t);EIA(t[Jo],i,A)}function Za(t,e,A){IT(e)&&(e=e());let i=zt(),n=y2();if(Va(i,n,e)){let o=ao(),r=Pd();Ru(o,r,i,t,e,i[Jo],A,!1)}return Za}function Wa(t,e){let A=IT(t);return A&&t.set(e),A}function Xa(t,e){let A=zt(),i=ao(),n=gs();return Sb(i,A,A[Jo],n,t,e),Xa}var XH={};function Rb(t){let e=ao(),A=zt(),i=t+Qr,n=Xd(e,i,128,null,null);return w2(n,!1),LM(e,A,i,XH),Rb}function Lb(t){Cg("NgLet");let e=ao(),A=zt(),i=Bl();return LM(e,A,i,t),t}function xb(t){let e=JY(),A=sp(e,Qr+t);if(A===XH)throw new te(314,!1);return A}function tBA(t,e,A){let i=ao();if(i.firstCreatePass){let n=Ig(t);lM(A,i.data,i.blueprint,n,!0),lM(e,i.data,i.blueprint,n,!1)}}function lM(t,e,A,i,n){if(t=cs(t),Array.isArray(t))for(let o=0;o>20;if(xd(t)||!t.multi){let d=new RI(c,n,Ge),B=g9(a,e,n?g:g+C,I);B===-1?(D9(Gm(s,r),o,a),c9(o,t,e.length),e.push(a),s.directiveStart++,s.directiveEnd++,n&&(s.providerIndexes+=1048576),A.push(d),r.push(d)):(A[B]=d,r[B]=d)}else{let d=g9(a,e,g+C,I),B=g9(a,e,g,g+C),E=d>=0&&A[d],u=B>=0&&A[B];if(n&&!u||!n&&!E){D9(Gm(s,r),o,a);let h=oBA(n?nBA:iBA,A.length,n,i,c);!n&&u&&(A[B].providerFactory=h),c9(o,t,e.length,0),e.push(a),s.directiveStart++,s.directiveEnd++,n&&(s.providerIndexes+=1048576),A.push(h),r.push(h)}else{let h=$H(A[n?B:d],c,!n&&i);c9(o,t,d>-1?d:B,h)}!n&&i&&u&&A[B].componentProviders++}}}function c9(t,e,A,i){let n=xd(e),o=d2A(e);if(n||o){let a=(o?cs(e.useClass):e).prototype.ngOnDestroy;if(a){let c=t.destroyHooks||(t.destroyHooks=[]);if(!n&&e.multi){let g=c.indexOf(A);g===-1?c.push(A,[i,a]):c[g+1].push(i,a)}else c.push(A,a)}}}function $H(t,e,A){return A&&t.componentProviders++,t.multi.push(e)-1}function g9(t,e,A,i){for(let n=A;n{A.providersResolver=(i,n)=>tBA(i,n?n(t):t,e)}}function AO(t,e,A){let i=Mu()+t,n=zt();return n[i]===Ea?fb(n,i,A?e.call(A):e()):BdA(n,i)}function vc(t,e,A,i){return tO(zt(),Mu(),t,e,A,i)}function Bg(t,e,A,i,n){return iO(zt(),Mu(),t,e,A,i,n)}function eO(t,e){let A=t[e];return A===Ea?void 0:A}function tO(t,e,A,i,n,o){let r=e+A;return Va(t,r,n)?fb(t,r+1,o?i.call(o,n):i(n)):eO(t,r+1)}function iO(t,e,A,i,n,o,r){let s=e+A;return FH(t,s,n,o)?fb(t,s+2,r?i.call(r,n,o):i(n,o)):eO(t,s+2)}function eo(t,e){let A=ao(),i,n=t+Qr;A.firstCreatePass?(i=rBA(e,A.pipeRegistry),A.data[n]=i,i.onDestroy&&(A.destroyHooks??=[]).push(n,i.onDestroy)):i=A.data[n];let o=i.factory||(i.factory=yI(i.type,!0)),r,s=la(Ge);try{let a=_m(!1),c=o();return _m(a),LM(A,zt(),n,c),c}finally{la(s)}}function rBA(t,e){if(e)for(let A=e.length-1;A>=0;A--){let i=e[A];if(t===i.name)return i}}function Yo(t,e,A){let i=t+Qr,n=zt(),o=sp(n,i);return nO(n,i)?tO(n,Mu(),e,o.transform,A,o):o.transform(A)}function _u(t,e,A,i){let n=t+Qr,o=zt(),r=sp(o,n);return nO(o,n)?iO(o,Mu(),e,r.transform,A,i,r):r.transform(A,i)}function nO(t,e){return t[hi].data[e].pure}function Gu(t,e){return fp(t,e)}var FI=class{full;major;minor;patch;constructor(e){this.full=e;let A=e.split(".");this.major=A[0],this.minor=A[1],this.patch=A.slice(2).join(".")}},Nb=new FI("19.2.15"),CM=class{ngModuleFactory;componentFactories;constructor(e,A){this.ngModuleFactory=e,this.componentFactories=A}},oO=(()=>{class t{compileModuleSync(A){return new $9(A)}compileModuleAsync(A){return Promise.resolve(this.compileModuleSync(A))}compileModuleAndAllComponentsSync(A){let i=this.compileModuleSync(A),n=pY(A),o=GT(n.declarations).reduce((r,s)=>{let a=p2(s);return a&&r.push(new xI(a)),r},[]);return new CM(i,o)}compileModuleAndAllComponentsAsync(A){return Promise.resolve(this.compileModuleAndAllComponentsSync(A))}clearCache(){}clearCacheFor(A){}getModuleId(A){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var sBA=(()=>{class t{zone=f(ye);changeDetectionScheduler=f(LI);applicationRef=f(Ca);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function aBA({ngZoneFactory:t,ignoreChangesOutsideZone:e,scheduleInRootZone:A}){return t??=()=>new ye(Fe(sA({},cBA()),{scheduleInRootZone:A})),[{provide:ye,useFactory:t},{provide:Ld,multi:!0,useFactory:()=>{let i=f(sBA,{optional:!0});return()=>i.initialize()}},{provide:Ld,multi:!0,useFactory:()=>{let i=f(gBA);return()=>{i.initialize()}}},e===!0?{provide:sT,useValue:!0}:[],{provide:aT,useValue:A??rT}]}function cBA(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}var gBA=(()=>{class t{subscription=new Kt;initialized=!1;zone=f(ye);pendingTasks=f(m0);initialize(){if(this.initialized)return;this.initialized=!0;let A=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(A=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{ye.assertNotInAngularZone(),queueMicrotask(()=>{A!==null&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(A),A=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{ye.assertInAngularZone(),A??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var lBA=(()=>{class t{appRef=f(Ca);taskService=f(m0);ngZone=f(ye);zonelessEnabled=f(jM);tracing=f(Zd,{optional:!0});disableScheduling=f(sT,{optional:!0})??!1;zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new Kt;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(Um):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(f(aT,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof M9||!this.zoneIsDefined)}notify(A){if(!this.zonelessEnabled&&A===5)return;let i=!1;switch(A){case 0:{this.appRef.dirtyFlags|=2;break}case 3:case 2:case 4:case 5:case 1:{this.appRef.dirtyFlags|=4;break}case 6:{this.appRef.dirtyFlags|=2,i=!0;break}case 12:{this.appRef.dirtyFlags|=16,i=!0;break}case 13:{this.appRef.dirtyFlags|=2,i=!0;break}case 11:{i=!0;break}case 9:case 8:case 7:case 10:default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick(i))return;let n=this.useMicrotaskScheduler?MJ:cT;this.pendingRenderTaskId=this.taskService.add(),this.scheduleInRootZone?this.cancelScheduledCallback=Zone.root.run(()=>n(()=>this.tick())):this.cancelScheduledCallback=this.ngZone.runOutsideAngular(()=>n(()=>this.tick()))}shouldScheduleTick(A){return!(this.disableScheduling&&!A||this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(Um+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(this.appRef.dirtyFlags===0){this.cleanup();return}!this.zonelessEnabled&&this.appRef.dirtyFlags&7&&(this.appRef.dirtyFlags|=1);let A=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(i){throw this.taskService.remove(A),i}finally{this.cleanup()}this.useMicrotaskScheduler=!0,MJ(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(A)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){let A=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(A)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function IBA(){return typeof $localize<"u"&&$localize.locale||Zm}var wp=new eA("",{providedIn:"root",factory:()=>f(wp,bi.Optional|bi.SkipSelf)||IBA()});var dM=new eA(""),CBA=new eA("");function Cu(t){return!t.moduleRef}function dBA(t){let e=Cu(t)?t.r3Injector:t.moduleRef.injector,A=e.get(ye);return A.run(()=>{Cu(t)?t.r3Injector.resolveInjectorInitializers():t.moduleRef.resolveInjectorInitializers();let i=e.get(Ps,null),n;if(A.runOutsideAngular(()=>{n=A.onError.subscribe({next:o=>{i.handleError(o)}})}),Cu(t)){let o=()=>e.destroy(),r=t.platformInjector.get(dM);r.add(o),e.onDestroy(()=>{n.unsubscribe(),r.delete(o)})}else{let o=()=>t.moduleRef.destroy(),r=t.platformInjector.get(dM);r.add(o),t.moduleRef.onDestroy(()=>{Dm(t.allPlatformModules,t.moduleRef),n.unsubscribe(),r.delete(o)})}return EBA(i,A,()=>{let o=e.get(KH);return o.runInitializers(),o.donePromise.then(()=>{let r=e.get(wp,Zm);if(ZdA(r||Zm),!e.get(CBA,!0))return Cu(t)?e.get(Ca):(t.allPlatformModules.push(t.moduleRef),t.moduleRef);if(Cu(t)){let a=e.get(Ca);return t.rootComponent!==void 0&&a.bootstrap(t.rootComponent),a}else return BBA(t.moduleRef,t.allPlatformModules),t.moduleRef})})})}function BBA(t,e){let A=t.injector.get(Ca);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(i=>A.bootstrap(i));else if(t.instance.ngDoBootstrap)t.instance.ngDoBootstrap(A);else throw new te(-403,!1);e.push(t)}function EBA(t,e,A){try{let i=A();return k2(i)?i.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):i}catch(i){throw e.runOutsideAngular(()=>t.handleError(i)),i}}var wm=null;function QBA(t=[],e){return Zt.create({name:e,providers:[{provide:ip,useValue:"platform"},{provide:dM,useValue:new Set([()=>wm=null])},...t]})}function uBA(t=[]){if(wm)return wm;let e=QBA(t);return wm=e,fdA(),hBA(e),e}function hBA(t){let e=t.get(ZM,null);da(t,()=>{e?.forEach(A=>A())})}var Et=(()=>{class t{static __NG_ELEMENT_ID__=fBA}return t})();function fBA(t){return mBA(gs(),zt(),(t&16)===16)}function mBA(t,e,A){if(Hd(t)&&!A){let i=cl(t.index,e);return new pu(i,i)}else if(t.type&175){let i=e[ja];return new pu(i,e)}return null}var BM=class{constructor(){}supports(e){return NH(e)}create(e){return new EM(e)}},pBA=(t,e)=>e,EM=class{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(e){this._trackByFn=e||pBA}forEachItem(e){let A;for(A=this._itHead;A!==null;A=A._next)e(A)}forEachOperation(e){let A=this._itHead,i=this._removalsHead,n=0,o=null;for(;A||i;){let r=!i||A&&A.currentIndex{r=this._trackByFn(n,s),A===null||!Object.is(A.trackById,r)?(A=this._mismatch(A,s,r,n),i=!0):(i&&(A=this._verifyReinsertion(A,s,r,n)),Object.is(A.item,s)||this._addIdentityChange(A,s)),A=A._next,n++}),this.length=n;return this._truncate(A),this.collection=e,this.isDirty}get isDirty(){return this._additionsHead!==null||this._movesHead!==null||this._removalsHead!==null||this._identityChangesHead!==null}_reset(){if(this.isDirty){let e;for(e=this._previousItHead=this._itHead;e!==null;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;e!==null;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;e!==null;e=e._nextMoved)e.previousIndex=e.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,A,i,n){let o;return e===null?o=this._itTail:(o=e._prev,this._remove(e)),e=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null),e!==null?(Object.is(e.item,A)||this._addIdentityChange(e,A),this._reinsertAfter(e,o,n)):(e=this._linkedRecords===null?null:this._linkedRecords.get(i,n),e!==null?(Object.is(e.item,A)||this._addIdentityChange(e,A),this._moveAfter(e,o,n)):e=this._addAfter(new QM(A,i),o,n)),e}_verifyReinsertion(e,A,i,n){let o=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null);return o!==null?e=this._reinsertAfter(o,e._prev,n):e.currentIndex!=n&&(e.currentIndex=n,this._addToMoves(e,n)),e}_truncate(e){for(;e!==null;){let A=e._next;this._addToRemovals(this._unlink(e)),e=A}this._unlinkedRecords!==null&&this._unlinkedRecords.clear(),this._additionsTail!==null&&(this._additionsTail._nextAdded=null),this._movesTail!==null&&(this._movesTail._nextMoved=null),this._itTail!==null&&(this._itTail._next=null),this._removalsTail!==null&&(this._removalsTail._nextRemoved=null),this._identityChangesTail!==null&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,A,i){this._unlinkedRecords!==null&&this._unlinkedRecords.remove(e);let n=e._prevRemoved,o=e._nextRemoved;return n===null?this._removalsHead=o:n._nextRemoved=o,o===null?this._removalsTail=n:o._prevRemoved=n,this._insertAfter(e,A,i),this._addToMoves(e,i),e}_moveAfter(e,A,i){return this._unlink(e),this._insertAfter(e,A,i),this._addToMoves(e,i),e}_addAfter(e,A,i){return this._insertAfter(e,A,i),this._additionsTail===null?this._additionsTail=this._additionsHead=e:this._additionsTail=this._additionsTail._nextAdded=e,e}_insertAfter(e,A,i){let n=A===null?this._itHead:A._next;return e._next=n,e._prev=A,n===null?this._itTail=e:n._prev=e,A===null?this._itHead=e:A._next=e,this._linkedRecords===null&&(this._linkedRecords=new Wm),this._linkedRecords.put(e),e.currentIndex=i,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){this._linkedRecords!==null&&this._linkedRecords.remove(e);let A=e._prev,i=e._next;return A===null?this._itHead=i:A._next=i,i===null?this._itTail=A:i._prev=A,e}_addToMoves(e,A){return e.previousIndex===A||(this._movesTail===null?this._movesTail=this._movesHead=e:this._movesTail=this._movesTail._nextMoved=e),e}_addToRemovals(e){return this._unlinkedRecords===null&&(this._unlinkedRecords=new Wm),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,this._removalsTail===null?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,A){return e.item=A,this._identityChangesTail===null?this._identityChangesTail=this._identityChangesHead=e:this._identityChangesTail=this._identityChangesTail._nextIdentityChange=e,e}},QM=class{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(e,A){this.item=e,this.trackById=A}},uM=class{_head=null;_tail=null;add(e){this._head===null?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,A){let i;for(i=this._head;i!==null;i=i._nextDup)if((A===null||A<=i.currentIndex)&&Object.is(i.trackById,e))return i;return null}remove(e){let A=e._prevDup,i=e._nextDup;return A===null?this._head=i:A._nextDup=i,i===null?this._tail=A:i._prevDup=A,this._head===null}},Wm=class{map=new Map;put(e){let A=e.trackById,i=this.map.get(A);i||(i=new uM,this.map.set(A,i)),i.add(e)}get(e,A){let i=e,n=this.map.get(i);return n?n.get(e,A):null}remove(e){let A=e.trackById;return this.map.get(A).remove(e)&&this.map.delete(A),e}get isEmpty(){return this.map.size===0}clear(){this.map.clear()}};function iY(t,e,A){let i=t.previousIndex;if(i===null)return i;let n=0;return A&&i{if(A&&A.key===n)this._maybeAddToChanges(A,i),this._appendAfter=A,A=A._next;else{let o=this._getOrCreateRecordForKey(n,i);A=this._insertBeforeOrAppend(A,o)}}),A){A._prev&&(A._prev._next=null),this._removalsHead=A;for(let i=A;i!==null;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,A){if(e){let i=e._prev;return A._next=e,A._prev=i,e._prev=A,i&&(i._next=A),e===this._mapHead&&(this._mapHead=A),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=A,A._prev=this._appendAfter):this._mapHead=A,this._appendAfter=A,null}_getOrCreateRecordForKey(e,A){if(this._records.has(e)){let n=this._records.get(e);this._maybeAddToChanges(n,A);let o=n._prev,r=n._next;return o&&(o._next=r),r&&(r._prev=o),n._next=null,n._prev=null,n}let i=new mM(e);return this._records.set(e,i),i.currentValue=A,this._addToAdditions(i),i}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;e!==null;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;e!==null;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;e!=null;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,A){Object.is(A,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=A,this._addToChanges(e))}_addToAdditions(e){this._additionsHead===null?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){this._changesHead===null?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,A){e instanceof Map?e.forEach(A):Object.keys(e).forEach(i=>A(e[i],i))}},mM=class{key;previousValue=null;currentValue=null;_nextPrevious=null;_next=null;_prev=null;_nextAdded=null;_nextRemoved=null;_nextChanged=null;constructor(e){this.key=e}};function nY(){return new Ql([new BM])}var Ql=(()=>{class t{factories;static \u0275prov=bA({token:t,providedIn:"root",factory:nY});constructor(A){this.factories=A}static create(A,i){if(i!=null){let n=i.factories.slice();A=A.concat(n)}return new t(A)}static extend(A){return{provide:t,useFactory:i=>t.create(A,i||nY()),deps:[[t,new ep,new Yd]]}}find(A){let i=this.factories.find(n=>n.supports(A));if(i!=null)return i;throw new te(901,!1)}}return t})();function oY(){return new yp([new hM])}var yp=(()=>{class t{static \u0275prov=bA({token:t,providedIn:"root",factory:oY});factories;constructor(A){this.factories=A}static create(A,i){if(i){let n=i.factories.slice();A=A.concat(n)}return new t(A)}static extend(A){return{provide:t,useFactory:i=>t.create(A,i||oY()),deps:[[t,new ep,new Yd]]}}find(A){let i=this.factories.find(n=>n.supports(A));if(i)return i;throw new te(901,!1)}}return t})();var rO=(()=>{class t{constructor(A){}static \u0275fac=function(i){return new(i||t)(be(Ca))};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();function sO(t){let{rootComponent:e,appProviders:A,platformProviders:i,platformRef:n}=t;so(8);try{let o=n?.injector??uBA(i),r=[aBA({}),{provide:LI,useExisting:lBA},...A||[]],s=new zm({providers:r,parent:o,debugName:"",runEnvironmentInitializers:!1});return dBA({r3Injector:s.injector,platformInjector:o,rootComponent:e})}catch(o){return Promise.reject(o)}finally{so(9)}}function ge(t){return typeof t=="boolean"?t:t!=null&&t!=="false"}function en(t,e=NaN){return!isNaN(parseFloat(t))&&!isNaN(Number(t))?Number(t):e}function ua(t){return Fv(t)}function Mc(t,e){return Yf(t,e?.equal)}var pM=class{[aa];constructor(e){this[aa]=e}destroy(){this[aa].destroy()}};function Ku(t,e){!e?.injector&&bM(Ku);let A=e?.injector??f(Zt),i=e?.manualCleanup!==!0?A.get(f0):null,n,o=A.get(XM,null,{optional:!0}),r=A.get(LI);return o!==null&&!e?.forceRoot?(n=yBA(o.view,r,t),i instanceof Km&&i._lView===o.view&&(i=null)):n=vBA(t,A.get(_H),r),n.injector=A,i!==null&&(n.onDestroyFn=i.onDestroy(()=>n.destroy())),new pM(n)}var aO=Fe(sA({},Cd),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,hasRun:!1,cleanupFns:void 0,zone:null,kind:"effect",onDestroyFn:fu,run(){if(this.dirty=!1,this.hasRun&&!Kf(this))return;this.hasRun=!0;let t=i=>(this.cleanupFns??=[]).push(i),e=tu(this),A=xm(!1);try{this.maybeCleanup(),this.fn(t)}finally{xm(A),Gf(this,e)}},maybeCleanup(){if(this.cleanupFns?.length)try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[]}}}),DBA=Fe(sA({},aO),{consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){iu(this),this.onDestroyFn(),this.maybeCleanup(),this.scheduler.remove(this)}}),wBA=Fe(sA({},aO),{consumerMarkedDirty(){this.view[ii]|=8192,zd(this.view),this.notifier.notify(13)},destroy(){iu(this),this.onDestroyFn(),this.maybeCleanup(),this.view[MI]?.delete(this)}});function yBA(t,e,A){let i=Object.create(wBA);return i.view=t,i.zone=typeof Zone<"u"?Zone.current:null,i.notifier=e,i.fn=A,t[MI]??=new Set,t[MI].add(i),i.consumerMarkedDirty(i),i}function vBA(t,e,A){let i=Object.create(DBA);return i.fn=t,i.scheduler=e,i.notifier=A,i.zone=typeof Zone<"u"?Zone.current:null,i.scheduler.schedule(i),i.notifier.notify(12),i}function vp(t,e){let A=p2(t),i=e.elementInjector||np();return new xI(A).create(i,e.projectableNodes,e.hostElement,e.environmentInjector)}function cO(t){let e=p2(t);if(!e)return null;let A=new xI(e);return{get selector(){return A.selector},get type(){return A.componentType},get inputs(){return A.inputs},get outputs(){return A.outputs},get ngContentSelectors(){return A.ngContentSelectors},get isStandalone(){return e.standalone},get isSignal(){return e.signals}}}var at=new eA("");var IO=null;function $a(){return IO}function Fb(t){IO??=t}var Uu=class{},Ju=(()=>{class t{historyGo(A){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(CO),providedIn:"platform"})}return t})(),_b=new eA(""),CO=(()=>{class t extends Ju{_location;_history;_doc=f(at);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return $a().getBaseHref(this._doc)}onPopState(A){let i=$a().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",A,!1),()=>i.removeEventListener("popstate",A)}onHashChange(A){let i=$a().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",A,!1),()=>i.removeEventListener("hashchange",A)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(A){this._location.pathname=A}pushState(A,i,n){this._history.pushState(A,i,n)}replaceState(A,i,n){this._history.replaceState(A,i,n)}forward(){this._history.forward()}back(){this._history.back()}historyGo(A=0){this._history.go(A)}getState(){return this._history.state}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function Mp(t,e){return t?e?t.endsWith("/")?e.startsWith("/")?t+e.slice(1):t+e:e.startsWith("/")?t+e:`${t}/${e}`:t:e}function gO(t){let e=t.search(/#|\?|$/);return t[e-1]==="/"?t.slice(0,e-1)+t.slice(e):t}function Eg(t){return t&&t[0]!=="?"?`?${t}`:t}var D0=(()=>{class t{historyGo(A){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(kp),providedIn:"root"})}return t})(),bp=new eA(""),kp=(()=>{class t extends D0{_platformLocation;_baseHref;_removeListenerFns=[];constructor(A,i){super(),this._platformLocation=A,this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??f(at).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(A){this._removeListenerFns.push(this._platformLocation.onPopState(A),this._platformLocation.onHashChange(A))}getBaseHref(){return this._baseHref}prepareExternalUrl(A){return Mp(this._baseHref,A)}path(A=!1){let i=this._platformLocation.pathname+Eg(this._platformLocation.search),n=this._platformLocation.hash;return n&&A?`${i}${n}`:i}pushState(A,i,n,o){let r=this.prepareExternalUrl(n+Eg(o));this._platformLocation.pushState(A,i,r)}replaceState(A,i,n,o){let r=this.prepareExternalUrl(n+Eg(o));this._platformLocation.replaceState(A,i,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(A=0){this._platformLocation.historyGo?.(A)}static \u0275fac=function(i){return new(i||t)(be(Ju),be(bp,8))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),ha=(()=>{class t{_subject=new qA;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(A){this._locationStrategy=A;let i=this._locationStrategy.getBaseHref();this._basePath=kBA(gO(lO(i))),this._locationStrategy.onPopState(n=>{this._subject.next({url:this.path(!0),pop:!0,state:n.state,type:n.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(A=!1){return this.normalize(this._locationStrategy.path(A))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(A,i=""){return this.path()==this.normalize(A+Eg(i))}normalize(A){return t.stripTrailingSlash(bBA(this._basePath,lO(A)))}prepareExternalUrl(A){return A&&A[0]!=="/"&&(A="/"+A),this._locationStrategy.prepareExternalUrl(A)}go(A,i="",n=null){this._locationStrategy.pushState(n,"",A,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(A+Eg(i)),n)}replaceState(A,i="",n=null){this._locationStrategy.replaceState(n,"",A,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(A+Eg(i)),n)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(A=0){this._locationStrategy.historyGo?.(A)}onUrlChange(A){return this._urlChangeListeners.push(A),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{let i=this._urlChangeListeners.indexOf(A);this._urlChangeListeners.splice(i,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(A="",i){this._urlChangeListeners.forEach(n=>n(A,i))}subscribe(A,i,n){return this._subject.subscribe({next:A,error:i??void 0,complete:n??void 0})}static normalizeQueryParams=Eg;static joinWithSlash=Mp;static stripTrailingSlash=gO;static \u0275fac=function(i){return new(i||t)(be(D0))};static \u0275prov=bA({token:t,factory:()=>MBA(),providedIn:"root"})}return t})();function MBA(){return new ha(be(D0))}function bBA(t,e){if(!t||!e.startsWith(t))return e;let A=e.substring(t.length);return A===""||["/",";","?","#"].includes(A[0])?A:e}function lO(t){return t.replace(/\/index.html$/,"")}function kBA(t){if(new RegExp("^(https?:)?//").test(t)){let[,A]=t.split(/\/\/[^\/]+/);return A}return t}var Jb=(()=>{class t extends D0{_platformLocation;_baseHref="";_removeListenerFns=[];constructor(A,i){super(),this._platformLocation=A,i!=null&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(A){this._removeListenerFns.push(this._platformLocation.onPopState(A),this._platformLocation.onHashChange(A))}getBaseHref(){return this._baseHref}path(A=!1){let i=this._platformLocation.hash??"#";return i.length>0?i.substring(1):i}prepareExternalUrl(A){let i=Mp(this._baseHref,A);return i.length>0?"#"+i:i}pushState(A,i,n,o){let r=this.prepareExternalUrl(n+Eg(o))||this._platformLocation.pathname;this._platformLocation.pushState(A,i,r)}replaceState(A,i,n,o){let r=this.prepareExternalUrl(n+Eg(o))||this._platformLocation.pathname;this._platformLocation.replaceState(A,i,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(A=0){this._platformLocation.historyGo?.(A)}static \u0275fac=function(i){return new(i||t)(be(Ju),be(bp,8))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();var Gb=/\s+/,dO=[],Vs=(()=>{class t{_ngEl;_renderer;initialClasses=dO;rawClass;stateMap=new Map;constructor(A,i){this._ngEl=A,this._renderer=i}set klass(A){this.initialClasses=A!=null?A.trim().split(Gb):dO}set ngClass(A){this.rawClass=typeof A=="string"?A.trim().split(Gb):A}ngDoCheck(){for(let i of this.initialClasses)this._updateState(i,!0);let A=this.rawClass;if(Array.isArray(A)||A instanceof Set)for(let i of A)this._updateState(i,!0);else if(A!=null)for(let i of Object.keys(A))this._updateState(i,!!A[i]);this._applyStateDiff()}_updateState(A,i){let n=this.stateMap.get(A);n!==void 0?(n.enabled!==i&&(n.changed=!0,n.enabled=i),n.touched=!0):this.stateMap.set(A,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(let A of this.stateMap){let i=A[0],n=A[1];n.changed?(this._toggleClass(i,n.enabled),n.changed=!1):n.touched||(n.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),n.touched=!1}}_toggleClass(A,i){A=A.trim(),A.length>0&&A.split(Gb).forEach(n=>{i?this._renderer.addClass(this._ngEl.nativeElement,n):this._renderer.removeClass(this._ngEl.nativeElement,n)})}static \u0275fac=function(i){return new(i||t)(Ge(se),Ge(qi))};static \u0275dir=WA({type:t,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return t})(),Yu=(()=>{class t{_viewContainerRef;ngComponentOutlet=null;ngComponentOutletInputs;ngComponentOutletInjector;ngComponentOutletContent;ngComponentOutletNgModule;ngComponentOutletNgModuleFactory;_componentRef;_moduleRef;_inputsUsed=new Map;get componentInstance(){return this._componentRef?.instance??null}constructor(A){this._viewContainerRef=A}_needToReCreateNgModuleInstance(A){return A.ngComponentOutletNgModule!==void 0||A.ngComponentOutletNgModuleFactory!==void 0}_needToReCreateComponentInstance(A){return A.ngComponentOutlet!==void 0||A.ngComponentOutletContent!==void 0||A.ngComponentOutletInjector!==void 0||this._needToReCreateNgModuleInstance(A)}ngOnChanges(A){if(this._needToReCreateComponentInstance(A)&&(this._viewContainerRef.clear(),this._inputsUsed.clear(),this._componentRef=void 0,this.ngComponentOutlet)){let i=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;this._needToReCreateNgModuleInstance(A)&&(this._moduleRef?.destroy(),this.ngComponentOutletNgModule?this._moduleRef=kH(this.ngComponentOutletNgModule,BO(i)):this.ngComponentOutletNgModuleFactory?this._moduleRef=this.ngComponentOutletNgModuleFactory.create(BO(i)):this._moduleRef=void 0),this._componentRef=this._viewContainerRef.createComponent(this.ngComponentOutlet,{injector:i,ngModuleRef:this._moduleRef,projectableNodes:this.ngComponentOutletContent})}}ngDoCheck(){if(this._componentRef){if(this.ngComponentOutletInputs)for(let A of Object.keys(this.ngComponentOutletInputs))this._inputsUsed.set(A,!0);this._applyInputStateDiff(this._componentRef)}}ngOnDestroy(){this._moduleRef?.destroy()}_applyInputStateDiff(A){for(let[i,n]of this._inputsUsed)n?(A.setInput(i,this.ngComponentOutletInputs[i]),this._inputsUsed.set(i,!1)):(A.setInput(i,void 0),this._inputsUsed.delete(i))}static \u0275fac=function(i){return new(i||t)(Ge(Sn))};static \u0275dir=WA({type:t,selectors:[["","ngComponentOutlet",""]],inputs:{ngComponentOutlet:"ngComponentOutlet",ngComponentOutletInputs:"ngComponentOutletInputs",ngComponentOutletInjector:"ngComponentOutletInjector",ngComponentOutletContent:"ngComponentOutletContent",ngComponentOutletNgModule:"ngComponentOutletNgModule",ngComponentOutletNgModuleFactory:"ngComponentOutletNgModuleFactory"},exportAs:["ngComponentOutlet"],features:[Xt]})}return t})();function BO(t){return t.get(Il).injector}var Sp=class{$implicit;ngForOf;index;count;constructor(e,A,i,n){this.$implicit=e,this.ngForOf=A,this.index=i,this.count=n}get first(){return this.index===0}get last(){return this.index===this.count-1}get even(){return this.index%2===0}get odd(){return!this.even}},Lp=(()=>{class t{_viewContainer;_template;_differs;set ngForOf(A){this._ngForOf=A,this._ngForOfDirty=!0}set ngForTrackBy(A){this._trackByFn=A}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(A,i,n){this._viewContainer=A,this._template=i,this._differs=n}set ngForTemplate(A){A&&(this._template=A)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;let A=this._ngForOf;!this._differ&&A&&(this._differ=this._differs.find(A).create(this.ngForTrackBy))}if(this._differ){let A=this._differ.diff(this._ngForOf);A&&this._applyChanges(A)}}_applyChanges(A){let i=this._viewContainer;A.forEachOperation((n,o,r)=>{if(n.previousIndex==null)i.createEmbeddedView(this._template,new Sp(n.item,this._ngForOf,-1,-1),r===null?void 0:r);else if(r==null)i.remove(o===null?void 0:o);else if(o!==null){let s=i.get(o);i.move(s,r),EO(s,n)}});for(let n=0,o=i.length;n{let o=i.get(n.currentIndex);EO(o,n)})}static ngTemplateContextGuard(A,i){return!0}static \u0275fac=function(i){return new(i||t)(Ge(Sn),Ge(mn),Ge(Ql))};static \u0275dir=WA({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return t})();function EO(t,e){t.context.$implicit=e.item}var Tu=(()=>{class t{_viewContainer;_context=new Rp;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(A,i){this._viewContainer=A,this._thenTemplateRef=i}set ngIf(A){this._context.$implicit=this._context.ngIf=A,this._updateView()}set ngIfThen(A){QO(A,!1),this._thenTemplateRef=A,this._thenViewRef=null,this._updateView()}set ngIfElse(A){QO(A,!1),this._elseTemplateRef=A,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(A,i){return!0}static \u0275fac=function(i){return new(i||t)(Ge(Sn),Ge(mn))};static \u0275dir=WA({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return t})(),Rp=class{$implicit=null;ngIf=null};function QO(t,e){if(t&&!t.createEmbeddedView)throw new te(2020,!1)}var Yb=(()=>{class t{_ngEl;_differs;_renderer;_ngStyle=null;_differ=null;constructor(A,i,n){this._ngEl=A,this._differs=i,this._renderer=n}set ngStyle(A){this._ngStyle=A,!this._differ&&A&&(this._differ=this._differs.find(A).create())}ngDoCheck(){if(this._differ){let A=this._differ.diff(this._ngStyle);A&&this._applyChanges(A)}}_setStyle(A,i){let[n,o]=A.split("."),r=n.indexOf("-")===-1?void 0:ll.DashCase;i!=null?this._renderer.setStyle(this._ngEl.nativeElement,n,o?`${i}${o}`:i,r):this._renderer.removeStyle(this._ngEl.nativeElement,n,r)}_applyChanges(A){A.forEachRemovedItem(i=>this._setStyle(i.key,null)),A.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),A.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static \u0275fac=function(i){return new(i||t)(Ge(se),Ge(yp),Ge(qi))};static \u0275dir=WA({type:t,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}})}return t})(),Hu=(()=>{class t{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;constructor(A){this._viewContainerRef=A}ngOnChanges(A){if(this._shouldRecreateView(A)){let i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet){this._viewRef=null;return}let n=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,n,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(A){return!!A.ngTemplateOutlet||!!A.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(A,i,n)=>this.ngTemplateOutletContext?Reflect.set(this.ngTemplateOutletContext,i,n):!1,get:(A,i,n)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,n)}})}static \u0275fac=function(i){return new(i||t)(Ge(Sn))};static \u0275dir=WA({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[Xt]})}return t})();function SBA(t,e){return new te(2100,!1)}var Kb=class{createSubscription(e,A){return ua(()=>e.subscribe({next:A,error:i=>{throw i}}))}dispose(e){ua(()=>e.unsubscribe())}},Ub=class{createSubscription(e,A){return e.then(i=>A?.(i),i=>{throw i}),{unsubscribe:()=>{A=null}}}dispose(e){e.unsubscribe()}},RBA=new Ub,LBA=new Kb,Qg=(()=>{class t{_ref;_latestValue=null;markForCheckOnValueUpdate=!0;_subscription=null;_obj=null;_strategy=null;constructor(A){this._ref=A}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(A){if(!this._obj){if(A)try{this.markForCheckOnValueUpdate=!1,this._subscribe(A)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return A!==this._obj?(this._dispose(),this.transform(A)):this._latestValue}_subscribe(A){this._obj=A,this._strategy=this._selectStrategy(A),this._subscription=this._strategy.createSubscription(A,i=>this._updateLatestValue(A,i))}_selectStrategy(A){if(k2(A))return RBA;if(wb(A))return LBA;throw SBA(t,A)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(A,i){A===this._obj&&(this._latestValue=i,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static \u0275fac=function(i){return new(i||t)(Ge(Et,16))};static \u0275pipe=$d({name:"async",type:t,pure:!1})}return t})();function xBA(t,e){return{key:t,value:e}}var Ou=(()=>{class t{differs;constructor(A){this.differs=A}differ;keyValues=[];compareFn=uO;transform(A,i=uO){if(!A||!(A instanceof Map)&&typeof A!="object")return null;this.differ??=this.differs.find(A).create();let n=this.differ.diff(A),o=i!==this.compareFn;return n&&(this.keyValues=[],n.forEachItem(r=>{this.keyValues.push(xBA(r.key,r.currentValue))})),(n||o)&&(i&&this.keyValues.sort(i),this.compareFn=i),this.keyValues}static \u0275fac=function(i){return new(i||t)(Ge(yp,16))};static \u0275pipe=$d({name:"keyvalue",type:t,pure:!1})}return t})();function uO(t,e){let A=t.key,i=e.key;if(A===i)return 0;if(A==null)return 1;if(i==null)return-1;if(typeof A=="string"&&typeof i=="string")return A{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();function zu(t,e){e=encodeURIComponent(e);for(let A of t.split(";")){let i=A.indexOf("="),[n,o]=i==-1?[A,""]:[A.slice(0,i),A.slice(i+1)];if(n.trim()===e)return decodeURIComponent(o)}return null}var xp="browser",hO="server";function ul(t){return t===xp}function Np(t){return t===hO}var KI=class{};var fO=(()=>{class t{static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new Tb(f(at),window)})}return t})(),Tb=class{document;window;offset=()=>[0,0];constructor(e,A){this.document=e,this.window=A}setOffset(e){Array.isArray(e)?this.offset=()=>e:this.offset=e}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(e){this.window.scrollTo(e[0],e[1])}scrollToAnchor(e){let A=NBA(this.document,e);A&&(this.scrollToElement(A),A.focus())}setHistoryScrollRestoration(e){this.window.history.scrollRestoration=e}scrollToElement(e){let A=e.getBoundingClientRect(),i=A.left+this.window.pageXOffset,n=A.top+this.window.pageYOffset,o=this.offset();this.window.scrollTo(i-o[0],n-o[1])}};function NBA(t,e){let A=t.getElementById(e)||t.getElementsByName(e)[0];if(A)return A;if(typeof t.createTreeWalker=="function"&&t.body&&typeof t.body.attachShadow=="function"){let i=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT),n=i.currentNode;for(;n;){let o=n.shadowRoot;if(o){let r=o.getElementById(e)||o.querySelector(`[name="${e}"]`);if(r)return r}n=i.nextNode()}}return null}var tB=class{},Pu=class{},N2=class t{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(e){e?typeof e=="string"?this.lazyInit=()=>{this.headers=new Map,e.split(` +`).forEach(A=>{let i=A.indexOf(":");if(i>0){let n=A.slice(0,i),o=A.slice(i+1).trim();this.addHeaderEntry(n,o)}})}:typeof Headers<"u"&&e instanceof Headers?(this.headers=new Map,e.forEach((A,i)=>{this.addHeaderEntry(i,A)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(e).forEach(([A,i])=>{this.setHeaderEntries(A,i)})}:this.headers=new Map}has(e){return this.init(),this.headers.has(e.toLowerCase())}get(e){this.init();let A=this.headers.get(e.toLowerCase());return A&&A.length>0?A[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(e){return this.init(),this.headers.get(e.toLowerCase())||null}append(e,A){return this.clone({name:e,value:A,op:"a"})}set(e,A){return this.clone({name:e,value:A,op:"s"})}delete(e,A){return this.clone({name:e,value:A,op:"d"})}maybeSetNormalizedName(e,A){this.normalizedNames.has(A)||this.normalizedNames.set(A,e)}init(){this.lazyInit&&(this.lazyInit instanceof t?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(e=>this.applyUpdate(e)),this.lazyUpdate=null))}copyFrom(e){e.init(),Array.from(e.headers.keys()).forEach(A=>{this.headers.set(A,e.headers.get(A)),this.normalizedNames.set(A,e.normalizedNames.get(A))})}clone(e){let A=new t;return A.lazyInit=this.lazyInit&&this.lazyInit instanceof t?this.lazyInit:this,A.lazyUpdate=(this.lazyUpdate||[]).concat([e]),A}applyUpdate(e){let A=e.name.toLowerCase();switch(e.op){case"a":case"s":let i=e.value;if(typeof i=="string"&&(i=[i]),i.length===0)return;this.maybeSetNormalizedName(e.name,A);let n=(e.op==="a"?this.headers.get(A):void 0)||[];n.push(...i),this.headers.set(A,n);break;case"d":let o=e.value;if(!o)this.headers.delete(A),this.normalizedNames.delete(A);else{let r=this.headers.get(A);if(!r)return;r=r.filter(s=>o.indexOf(s)===-1),r.length===0?(this.headers.delete(A),this.normalizedNames.delete(A)):this.headers.set(A,r)}break}}addHeaderEntry(e,A){let i=e.toLowerCase();this.maybeSetNormalizedName(e,i),this.headers.has(i)?this.headers.get(i).push(A):this.headers.set(i,[A])}setHeaderEntries(e,A){let i=(Array.isArray(A)?A:[A]).map(o=>o.toString()),n=e.toLowerCase();this.headers.set(n,i),this.maybeSetNormalizedName(e,n)}forEach(e){this.init(),Array.from(this.normalizedNames.keys()).forEach(A=>e(this.normalizedNames.get(A),this.headers.get(A)))}};var _p=class{encodeKey(e){return mO(e)}encodeValue(e){return mO(e)}decodeKey(e){return decodeURIComponent(e)}decodeValue(e){return decodeURIComponent(e)}};function FBA(t,e){let A=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(n=>{let o=n.indexOf("="),[r,s]=o==-1?[e.decodeKey(n),""]:[e.decodeKey(n.slice(0,o)),e.decodeValue(n.slice(o+1))],a=A.get(r)||[];a.push(s),A.set(r,a)}),A}var _BA=/%(\d[a-f0-9])/gi,GBA={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function mO(t){return encodeURIComponent(t).replace(_BA,(e,A)=>GBA[A]??e)}function Fp(t){return`${t}`}var w0=class t{map;encoder;updates=null;cloneFrom=null;constructor(e={}){if(this.encoder=e.encoder||new _p,e.fromString){if(e.fromObject)throw new te(2805,!1);this.map=FBA(e.fromString,this.encoder)}else e.fromObject?(this.map=new Map,Object.keys(e.fromObject).forEach(A=>{let i=e.fromObject[A],n=Array.isArray(i)?i.map(Fp):[Fp(i)];this.map.set(A,n)})):this.map=null}has(e){return this.init(),this.map.has(e)}get(e){this.init();let A=this.map.get(e);return A?A[0]:null}getAll(e){return this.init(),this.map.get(e)||null}keys(){return this.init(),Array.from(this.map.keys())}append(e,A){return this.clone({param:e,value:A,op:"a"})}appendAll(e){let A=[];return Object.keys(e).forEach(i=>{let n=e[i];Array.isArray(n)?n.forEach(o=>{A.push({param:i,value:o,op:"a"})}):A.push({param:i,value:n,op:"a"})}),this.clone(A)}set(e,A){return this.clone({param:e,value:A,op:"s"})}delete(e,A){return this.clone({param:e,value:A,op:"d"})}toString(){return this.init(),this.keys().map(e=>{let A=this.encoder.encodeKey(e);return this.map.get(e).map(i=>A+"="+this.encoder.encodeValue(i)).join("&")}).filter(e=>e!=="").join("&")}clone(e){let A=new t({encoder:this.encoder});return A.cloneFrom=this.cloneFrom||this,A.updates=(this.updates||[]).concat(e),A}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(e=>this.map.set(e,this.cloneFrom.map.get(e))),this.updates.forEach(e=>{switch(e.op){case"a":case"s":let A=(e.op==="a"?this.map.get(e.param):void 0)||[];A.push(Fp(e.value)),this.map.set(e.param,A);break;case"d":if(e.value!==void 0){let i=this.map.get(e.param)||[],n=i.indexOf(Fp(e.value));n!==-1&&i.splice(n,1),i.length>0?this.map.set(e.param,i):this.map.delete(e.param)}else{this.map.delete(e.param);break}}}),this.cloneFrom=this.updates=null)}};var Gp=class{map=new Map;set(e,A){return this.map.set(e,A),this}get(e){return this.map.has(e)||this.map.set(e,e.defaultValue()),this.map.get(e)}delete(e){return this.map.delete(e),this}has(e){return this.map.has(e)}keys(){return this.map.keys()}};function KBA(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function pO(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function DO(t){return typeof Blob<"u"&&t instanceof Blob}function wO(t){return typeof FormData<"u"&&t instanceof FormData}function UBA(t){return typeof URLSearchParams<"u"&&t instanceof URLSearchParams}var yO="Content-Type",vO="Accept",bO="X-Request-URL",kO="text/plain",SO="application/json",JBA=`${SO}, ${kO}, */*`,eB=class t{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;responseType="json";method;params;urlWithParams;transferCache;constructor(e,A,i,n){this.url=A,this.method=e.toUpperCase();let o;if(KBA(this.method)||n?(this.body=i!==void 0?i:null,o=n):o=i,o&&(this.reportProgress=!!o.reportProgress,this.withCredentials=!!o.withCredentials,o.responseType&&(this.responseType=o.responseType),o.headers&&(this.headers=o.headers),o.context&&(this.context=o.context),o.params&&(this.params=o.params),this.transferCache=o.transferCache),this.headers??=new N2,this.context??=new Gp,!this.params)this.params=new w0,this.urlWithParams=A;else{let r=this.params.toString();if(r.length===0)this.urlWithParams=A;else{let s=A.indexOf("?"),a=s===-1?"?":sC.set(d,e.setHeaders[d]),c)),e.setParams&&(g=Object.keys(e.setParams).reduce((C,d)=>C.set(d,e.setParams[d]),g)),new t(A,i,r,{params:g,headers:c,context:I,reportProgress:a,responseType:n,withCredentials:s,transferCache:o})}},UI=function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t}(UI||{}),iB=class{headers;status;statusText;url;ok;type;constructor(e,A=200,i="OK"){this.headers=e.headers||new N2,this.status=e.status!==void 0?e.status:A,this.statusText=e.statusText||i,this.url=e.url||null,this.ok=this.status>=200&&this.status<300}},Kp=class t extends iB{constructor(e={}){super(e)}type=UI.ResponseHeader;clone(e={}){return new t({headers:e.headers||this.headers,status:e.status!==void 0?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}},ju=class t extends iB{body;constructor(e={}){super(e),this.body=e.body!==void 0?e.body:null}type=UI.Response;clone(e={}){return new t({body:e.body!==void 0?e.body:this.body,headers:e.headers||this.headers,status:e.status!==void 0?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}},qu=class extends iB{name="HttpErrorResponse";message;error;ok=!1;constructor(e){super(e,0,"Unknown Error"),this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${e.url||"(unknown url)"}`:this.message=`Http failure response for ${e.url||"(unknown url)"}: ${e.status} ${e.statusText}`,this.error=e.error||null}},YBA=200,TBA=204;function Ob(t,e){return{body:e,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials,transferCache:t.transferCache}}var ks=(()=>{class t{handler;constructor(A){this.handler=A}request(A,i,n={}){let o;if(A instanceof eB)o=A;else{let a;n.headers instanceof N2?a=n.headers:a=new N2(n.headers);let c;n.params&&(n.params instanceof w0?c=n.params:c=new w0({fromObject:n.params})),o=new eB(A,i,n.body!==void 0?n.body:null,{headers:a,context:n.context,params:c,reportProgress:n.reportProgress,responseType:n.responseType||"json",withCredentials:n.withCredentials,transferCache:n.transferCache})}let r=Ce(o).pipe(tl(a=>this.handler.handle(a)));if(A instanceof eB||n.observe==="events")return r;let s=r.pipe(Nt(a=>a instanceof ju));switch(n.observe||"body"){case"body":switch(o.responseType){case"arraybuffer":return s.pipe(je(a=>{if(a.body!==null&&!(a.body instanceof ArrayBuffer))throw new te(2806,!1);return a.body}));case"blob":return s.pipe(je(a=>{if(a.body!==null&&!(a.body instanceof Blob))throw new te(2807,!1);return a.body}));case"text":return s.pipe(je(a=>{if(a.body!==null&&typeof a.body!="string")throw new te(2808,!1);return a.body}));case"json":default:return s.pipe(je(a=>a.body))}case"response":return s;default:throw new te(2809,!1)}}delete(A,i={}){return this.request("DELETE",A,i)}get(A,i={}){return this.request("GET",A,i)}head(A,i={}){return this.request("HEAD",A,i)}jsonp(A,i){return this.request("JSONP",A,{params:new w0().append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(A,i={}){return this.request("OPTIONS",A,i)}patch(A,i,n={}){return this.request("PATCH",A,Ob(n,i))}post(A,i,n={}){return this.request("POST",A,Ob(n,i))}put(A,i,n={}){return this.request("PUT",A,Ob(n,i))}static \u0275fac=function(i){return new(i||t)(be(tB))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();var HBA=new eA("");function RO(t,e){return e(t)}function OBA(t,e){return(A,i)=>e.intercept(A,{handle:n=>t(n,i)})}function zBA(t,e,A){return(i,n)=>da(A,()=>e(i,o=>t(o,n)))}var LO=new eA(""),Pb=new eA(""),xO=new eA(""),jb=new eA("",{providedIn:"root",factory:()=>!0});function PBA(){let t=null;return(e,A)=>{t===null&&(t=(f(LO,{optional:!0})??[]).reduceRight(OBA,RO));let i=f(m0);if(f(jb)){let o=i.add();return t(e,A).pipe(nl(()=>i.remove(o)))}else return t(e,A)}}var Up=(()=>{class t extends tB{backend;injector;chain=null;pendingTasks=f(m0);contributeToStability=f(jb);constructor(A,i){super(),this.backend=A,this.injector=i}handle(A){if(this.chain===null){let i=Array.from(new Set([...this.injector.get(Pb),...this.injector.get(xO,[])]));this.chain=i.reduceRight((n,o)=>zBA(n,o,this.injector),RO)}if(this.contributeToStability){let i=this.pendingTasks.add();return this.chain(A,n=>this.backend.handle(n)).pipe(nl(()=>this.pendingTasks.remove(i)))}else return this.chain(A,i=>this.backend.handle(i))}static \u0275fac=function(i){return new(i||t)(be(Pu),be(vr))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();var jBA=/^\)\]\}',?\n/,qBA=RegExp(`^${bO}:`,"m");function VBA(t){return"responseURL"in t&&t.responseURL?t.responseURL:qBA.test(t.getAllResponseHeaders())?t.getResponseHeader(bO):null}var zb=(()=>{class t{xhrFactory;constructor(A){this.xhrFactory=A}handle(A){if(A.method==="JSONP")throw new te(-2800,!1);let i=this.xhrFactory;return(i.\u0275loadImpl?ro(i.\u0275loadImpl()):Ce(null)).pipe($n(()=>new gt(o=>{let r=i.build();if(r.open(A.method,A.urlWithParams),A.withCredentials&&(r.withCredentials=!0),A.headers.forEach((E,u)=>r.setRequestHeader(E,u.join(","))),A.headers.has(vO)||r.setRequestHeader(vO,JBA),!A.headers.has(yO)){let E=A.detectContentTypeHeader();E!==null&&r.setRequestHeader(yO,E)}if(A.responseType){let E=A.responseType.toLowerCase();r.responseType=E!=="json"?E:"text"}let s=A.serializeBody(),a=null,c=()=>{if(a!==null)return a;let E=r.statusText||"OK",u=new N2(r.getAllResponseHeaders()),h=VBA(r)||A.url;return a=new Kp({headers:u,status:r.status,statusText:E,url:h}),a},g=()=>{let{headers:E,status:u,statusText:h,url:w}=c(),x=null;u!==TBA&&(x=typeof r.response>"u"?r.responseText:r.response),u===0&&(u=x?YBA:0);let R=u>=200&&u<300;if(A.responseType==="json"&&typeof x=="string"){let D=x;x=x.replace(jBA,"");try{x=x!==""?JSON.parse(x):null}catch(G){x=D,R&&(R=!1,x={error:G,text:x})}}R?(o.next(new ju({body:x,headers:E,status:u,statusText:h,url:w||void 0})),o.complete()):o.error(new qu({error:x,headers:E,status:u,statusText:h,url:w||void 0}))},I=E=>{let{url:u}=c(),h=new qu({error:E,status:r.status||0,statusText:r.statusText||"Unknown Error",url:u||void 0});o.error(h)},C=!1,d=E=>{C||(o.next(c()),C=!0);let u={type:UI.DownloadProgress,loaded:E.loaded};E.lengthComputable&&(u.total=E.total),A.responseType==="text"&&r.responseText&&(u.partialText=r.responseText),o.next(u)},B=E=>{let u={type:UI.UploadProgress,loaded:E.loaded};E.lengthComputable&&(u.total=E.total),o.next(u)};return r.addEventListener("load",g),r.addEventListener("error",I),r.addEventListener("timeout",I),r.addEventListener("abort",I),A.reportProgress&&(r.addEventListener("progress",d),s!==null&&r.upload&&r.upload.addEventListener("progress",B)),r.send(s),o.next({type:UI.Sent}),()=>{r.removeEventListener("error",I),r.removeEventListener("abort",I),r.removeEventListener("load",g),r.removeEventListener("timeout",I),A.reportProgress&&(r.removeEventListener("progress",d),s!==null&&r.upload&&r.upload.removeEventListener("progress",B)),r.readyState!==r.DONE&&r.abort()}})))}static \u0275fac=function(i){return new(i||t)(be(KI))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),NO=new eA(""),ZBA="XSRF-TOKEN",WBA=new eA("",{providedIn:"root",factory:()=>ZBA}),XBA="X-XSRF-TOKEN",$BA=new eA("",{providedIn:"root",factory:()=>XBA}),Vu=class{},AEA=(()=>{class t{doc;cookieName;lastCookieString="";lastToken=null;parseCount=0;constructor(A,i){this.doc=A,this.cookieName=i}getToken(){let A=this.doc.cookie||"";return A!==this.lastCookieString&&(this.parseCount++,this.lastToken=zu(A,this.cookieName),this.lastCookieString=A),this.lastToken}static \u0275fac=function(i){return new(i||t)(be(at),be(WBA))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();function eEA(t,e){let A=t.url.toLowerCase();if(!f(NO)||t.method==="GET"||t.method==="HEAD"||A.startsWith("http://")||A.startsWith("https://"))return e(t);let i=f(Vu).getToken(),n=f($BA);return i!=null&&!t.headers.has(n)&&(t=t.clone({headers:t.headers.set(n,i)})),e(t)}var qb=function(t){return t[t.Interceptors=0]="Interceptors",t[t.LegacyInterceptors=1]="LegacyInterceptors",t[t.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",t[t.NoXsrfProtection=3]="NoXsrfProtection",t[t.JsonpSupport=4]="JsonpSupport",t[t.RequestsMadeViaParent=5]="RequestsMadeViaParent",t[t.Fetch=6]="Fetch",t}(qb||{});function tEA(t,e){return{\u0275kind:t,\u0275providers:e}}function FO(...t){let e=[ks,zb,Up,{provide:tB,useExisting:Up},{provide:Pu,useFactory:()=>f(HBA,{optional:!0})??f(zb)},{provide:Pb,useValue:eEA,multi:!0},{provide:NO,useValue:!0},{provide:Vu,useClass:AEA}];for(let A of t)e.push(...A.\u0275providers);return vu(e)}var MO=new eA("");function _O(){return tEA(qb.LegacyInterceptors,[{provide:MO,useFactory:PBA},{provide:Pb,useExisting:MO,multi:!0}])}var Vb=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[FO(_O())]})}return t})();var OO=(()=>{class t{_renderer;_elementRef;onChange=A=>{};onTouched=()=>{};constructor(A,i){this._renderer=A,this._elementRef=i}setProperty(A,i){this._renderer.setProperty(this._elementRef.nativeElement,A,i)}registerOnTouched(A){this.onTouched=A}registerOnChange(A){this.onChange=A}setDisabledState(A){this.setProperty("disabled",A)}static \u0275fac=function(i){return new(i||t)(Ge(qi),Ge(se))};static \u0275dir=WA({type:t})}return t})(),iEA=(()=>{class t extends OO{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,features:[lt]})}return t})(),bc=new eA("");var nEA={provide:bc,useExisting:Ur(()=>kc),multi:!0};function oEA(){let t=$a()?$a().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}var rEA=new eA(""),kc=(()=>{class t extends OO{_compositionMode;_composing=!1;constructor(A,i,n){super(A,i),this._compositionMode=n,this._compositionMode==null&&(this._compositionMode=!oEA())}writeValue(A){let i=A??"";this.setProperty("value",i)}_handleInput(A){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(A)}_compositionStart(){this._composing=!0}_compositionEnd(A){this._composing=!1,this._compositionMode&&this.onChange(A)}static \u0275fac=function(i){return new(i||t)(Ge(qi),Ge(se),Ge(rEA,8))};static \u0275dir=WA({type:t,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,n){i&1&&mA("input",function(r){return n._handleInput(r.target.value)})("blur",function(){return n.onTouched()})("compositionstart",function(){return n._compositionStart()})("compositionend",function(r){return n._compositionEnd(r.target.value)})},standalone:!1,features:[ut([nEA]),lt]})}return t})();function $b(t){return t==null||Ak(t)===0}function Ak(t){return t==null?null:Array.isArray(t)||typeof t=="string"?t.length:t instanceof Set?t.size:null}var M0=new eA(""),th=new eA(""),sEA=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Ac=class{static min(e){return aEA(e)}static max(e){return cEA(e)}static required(e){return gEA(e)}static requiredTrue(e){return lEA(e)}static email(e){return IEA(e)}static minLength(e){return CEA(e)}static maxLength(e){return dEA(e)}static pattern(e){return BEA(e)}static nullValidator(e){return zO()}static compose(e){return WO(e)}static composeAsync(e){return XO(e)}};function aEA(t){return e=>{if(e.value==null||t==null)return null;let A=parseFloat(e.value);return!isNaN(A)&&A{if(e.value==null||t==null)return null;let A=parseFloat(e.value);return!isNaN(A)&&A>t?{max:{max:t,actual:e.value}}:null}}function gEA(t){return $b(t.value)?{required:!0}:null}function lEA(t){return t.value===!0?null:{required:!0}}function IEA(t){return $b(t.value)||sEA.test(t.value)?null:{email:!0}}function CEA(t){return e=>{let A=e.value?.length??Ak(e.value);return A===null||A===0?null:A{let A=e.value?.length??Ak(e.value);return A!==null&&A>t?{maxlength:{requiredLength:t,actualLength:A}}:null}}function BEA(t){if(!t)return zO;let e,A;return typeof t=="string"?(A="",t.charAt(0)!=="^"&&(A+="^"),A+=t,t.charAt(t.length-1)!=="$"&&(A+="$"),e=new RegExp(A)):(A=t.toString(),e=t),i=>{if($b(i.value))return null;let n=i.value;return e.test(n)?null:{pattern:{requiredPattern:A,actualValue:n}}}}function zO(t){return null}function PO(t){return t!=null}function jO(t){return k2(t)?ro(t):t}function qO(t){let e={};return t.forEach(A=>{e=A!=null?sA(sA({},e),A):e}),Object.keys(e).length===0?null:e}function VO(t,e){return e.map(A=>A(t))}function EEA(t){return!t.validate}function ZO(t){return t.map(e=>EEA(e)?e:A=>e.validate(A))}function WO(t){if(!t)return null;let e=t.filter(PO);return e.length==0?null:function(A){return qO(VO(A,e))}}function ek(t){return t!=null?WO(ZO(t)):null}function XO(t){if(!t)return null;let e=t.filter(PO);return e.length==0?null:function(A){let i=VO(A,e).map(jO);return gu(i).pipe(je(qO))}}function tk(t){return t!=null?XO(ZO(t)):null}function GO(t,e){return t===null?[e]:Array.isArray(t)?[...t,e]:[t,e]}function $O(t){return t._rawValidators}function Az(t){return t._rawAsyncValidators}function Zb(t){return t?Array.isArray(t)?t:[t]:[]}function Yp(t,e){return Array.isArray(t)?t.includes(e):t===e}function KO(t,e){let A=Zb(e);return Zb(t).forEach(n=>{Yp(A,n)||A.push(n)}),A}function UO(t,e){return Zb(e).filter(A=>!Yp(t,A))}var Tp=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(e){this._rawValidators=e||[],this._composedValidatorFn=ek(this._rawValidators)}_setAsyncValidators(e){this._rawAsyncValidators=e||[],this._composedAsyncValidatorFn=tk(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(e){this._onDestroyCallbacks.push(e)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(e=>e()),this._onDestroyCallbacks=[]}reset(e=void 0){this.control&&this.control.reset(e)}hasError(e,A){return this.control?this.control.hasError(e,A):!1}getError(e,A){return this.control?this.control.getError(e,A):null}},v0=class extends Tp{name;get formDirective(){return null}get path(){return null}},ec=class extends Tp{_parent=null;name=null;valueAccessor=null},Hp=class{_cd;constructor(e){this._cd=e}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}},QEA={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},sre=Fe(sA({},QEA),{"[class.ng-submitted]":"isSubmitted"}),Ss=(()=>{class t extends Hp{constructor(A){super(A)}static \u0275fac=function(i){return new(i||t)(Ge(ec,2))};static \u0275dir=WA({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,n){i&2&&he("ng-untouched",n.isUntouched)("ng-touched",n.isTouched)("ng-pristine",n.isPristine)("ng-dirty",n.isDirty)("ng-valid",n.isValid)("ng-invalid",n.isInvalid)("ng-pending",n.isPending)},standalone:!1,features:[lt]})}return t})(),ez=(()=>{class t extends Hp{constructor(A){super(A)}static \u0275fac=function(i){return new(i||t)(Ge(v0,10))};static \u0275dir=WA({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,n){i&2&&he("ng-untouched",n.isUntouched)("ng-touched",n.isTouched)("ng-pristine",n.isPristine)("ng-dirty",n.isDirty)("ng-valid",n.isValid)("ng-invalid",n.isInvalid)("ng-pending",n.isPending)("ng-submitted",n.isSubmitted)},standalone:!1,features:[lt]})}return t})();var Zu="VALID",Jp="INVALID",nB="PENDING",Wu="DISABLED",F2=class{},Op=class extends F2{value;source;constructor(e,A){super(),this.value=e,this.source=A}},$u=class extends F2{pristine;source;constructor(e,A){super(),this.pristine=e,this.source=A}},Ah=class extends F2{touched;source;constructor(e,A){super(),this.touched=e,this.source=A}},oB=class extends F2{status;source;constructor(e,A){super(),this.status=e,this.source=A}},zp=class extends F2{source;constructor(e){super(),this.source=e}},Pp=class extends F2{source;constructor(e){super(),this.source=e}};function ik(t){return(Zp(t)?t.validators:t)||null}function uEA(t){return Array.isArray(t)?ek(t):t||null}function nk(t,e){return(Zp(e)?e.asyncValidators:t)||null}function hEA(t){return Array.isArray(t)?tk(t):t||null}function Zp(t){return t!=null&&!Array.isArray(t)&&typeof t=="object"}function tz(t,e,A){let i=t.controls;if(!(e?Object.keys(i):i).length)throw new te(1e3,"");if(!i[A])throw new te(1001,"")}function iz(t,e,A){t._forEachChild((i,n)=>{if(A[n]===void 0)throw new te(1002,"")})}var rB=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(e,A){this._assignValidators(e),this._assignAsyncValidators(A)}get validator(){return this._composedValidatorFn}set validator(e){this._rawValidators=this._composedValidatorFn=e}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(e){this._rawAsyncValidators=this._composedAsyncValidatorFn=e}get parent(){return this._parent}get status(){return ua(this.statusReactive)}set status(e){ua(()=>this.statusReactive.set(e))}_status=Mc(()=>this.statusReactive());statusReactive=Ao(void 0);get valid(){return this.status===Zu}get invalid(){return this.status===Jp}get pending(){return this.status==nB}get disabled(){return this.status===Wu}get enabled(){return this.status!==Wu}errors;get pristine(){return ua(this.pristineReactive)}set pristine(e){ua(()=>this.pristineReactive.set(e))}_pristine=Mc(()=>this.pristineReactive());pristineReactive=Ao(!0);get dirty(){return!this.pristine}get touched(){return ua(this.touchedReactive)}set touched(e){ua(()=>this.touchedReactive.set(e))}_touched=Mc(()=>this.touchedReactive());touchedReactive=Ao(!1);get untouched(){return!this.touched}_events=new qA;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(e){this._assignValidators(e)}setAsyncValidators(e){this._assignAsyncValidators(e)}addValidators(e){this.setValidators(KO(e,this._rawValidators))}addAsyncValidators(e){this.setAsyncValidators(KO(e,this._rawAsyncValidators))}removeValidators(e){this.setValidators(UO(e,this._rawValidators))}removeAsyncValidators(e){this.setAsyncValidators(UO(e,this._rawAsyncValidators))}hasValidator(e){return Yp(this._rawValidators,e)}hasAsyncValidator(e){return Yp(this._rawAsyncValidators,e)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(e={}){let A=this.touched===!1;this.touched=!0;let i=e.sourceControl??this;this._parent&&!e.onlySelf&&this._parent.markAsTouched(Fe(sA({},e),{sourceControl:i})),A&&e.emitEvent!==!1&&this._events.next(new Ah(!0,i))}markAllAsTouched(e={}){this.markAsTouched({onlySelf:!0,emitEvent:e.emitEvent,sourceControl:this}),this._forEachChild(A=>A.markAllAsTouched(e))}markAsUntouched(e={}){let A=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=e.sourceControl??this;this._forEachChild(n=>{n.markAsUntouched({onlySelf:!0,emitEvent:e.emitEvent,sourceControl:i})}),this._parent&&!e.onlySelf&&this._parent._updateTouched(e,i),A&&e.emitEvent!==!1&&this._events.next(new Ah(!1,i))}markAsDirty(e={}){let A=this.pristine===!0;this.pristine=!1;let i=e.sourceControl??this;this._parent&&!e.onlySelf&&this._parent.markAsDirty(Fe(sA({},e),{sourceControl:i})),A&&e.emitEvent!==!1&&this._events.next(new $u(!1,i))}markAsPristine(e={}){let A=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=e.sourceControl??this;this._forEachChild(n=>{n.markAsPristine({onlySelf:!0,emitEvent:e.emitEvent})}),this._parent&&!e.onlySelf&&this._parent._updatePristine(e,i),A&&e.emitEvent!==!1&&this._events.next(new $u(!0,i))}markAsPending(e={}){this.status=nB;let A=e.sourceControl??this;e.emitEvent!==!1&&(this._events.next(new oB(this.status,A)),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.markAsPending(Fe(sA({},e),{sourceControl:A}))}disable(e={}){let A=this._parentMarkedDirty(e.onlySelf);this.status=Wu,this.errors=null,this._forEachChild(n=>{n.disable(Fe(sA({},e),{onlySelf:!0}))}),this._updateValue();let i=e.sourceControl??this;e.emitEvent!==!1&&(this._events.next(new Op(this.value,i)),this._events.next(new oB(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Fe(sA({},e),{skipPristineCheck:A}),this),this._onDisabledChange.forEach(n=>n(!0))}enable(e={}){let A=this._parentMarkedDirty(e.onlySelf);this.status=Zu,this._forEachChild(i=>{i.enable(Fe(sA({},e),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors(Fe(sA({},e),{skipPristineCheck:A}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(e,A){this._parent&&!e.onlySelf&&(this._parent.updateValueAndValidity(e),e.skipPristineCheck||this._parent._updatePristine({},A),this._parent._updateTouched({},A))}setParent(e){this._parent=e}getRawValue(){return this.value}updateValueAndValidity(e={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Zu||this.status===nB)&&this._runAsyncValidator(i,e.emitEvent)}let A=e.sourceControl??this;e.emitEvent!==!1&&(this._events.next(new Op(this.value,A)),this._events.next(new oB(this.status,A)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(Fe(sA({},e),{sourceControl:A}))}_updateTreeValidity(e={emitEvent:!0}){this._forEachChild(A=>A._updateTreeValidity(e)),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Wu:Zu}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(e,A){if(this.asyncValidator){this.status=nB,this._hasOwnPendingAsyncValidator={emitEvent:A!==!1};let i=jO(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(n=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(n,{emitEvent:A,shouldHaveEmitted:e})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let e=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,e}return!1}setErrors(e,A={}){this.errors=e,this._updateControlsErrors(A.emitEvent!==!1,this,A.shouldHaveEmitted)}get(e){let A=e;return A==null||(Array.isArray(A)||(A=A.split(".")),A.length===0)?null:A.reduce((i,n)=>i&&i._find(n),this)}getError(e,A){let i=A?this.get(A):this;return i&&i.errors?i.errors[e]:null}hasError(e,A){return!!this.getError(e,A)}get root(){let e=this;for(;e._parent;)e=e._parent;return e}_updateControlsErrors(e,A,i){this.status=this._calculateStatus(),e&&this.statusChanges.emit(this.status),(e||i)&&this._events.next(new oB(this.status,A)),this._parent&&this._parent._updateControlsErrors(e,A,i)}_initObservables(){this.valueChanges=new YA,this.statusChanges=new YA}_calculateStatus(){return this._allControlsDisabled()?Wu:this.errors?Jp:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(nB)?nB:this._anyControlsHaveStatus(Jp)?Jp:Zu}_anyControlsHaveStatus(e){return this._anyControls(A=>A.status===e)}_anyControlsDirty(){return this._anyControls(e=>e.dirty)}_anyControlsTouched(){return this._anyControls(e=>e.touched)}_updatePristine(e,A){let i=!this._anyControlsDirty(),n=this.pristine!==i;this.pristine=i,this._parent&&!e.onlySelf&&this._parent._updatePristine(e,A),n&&this._events.next(new $u(this.pristine,A))}_updateTouched(e={},A){this.touched=this._anyControlsTouched(),this._events.next(new Ah(this.touched,A)),this._parent&&!e.onlySelf&&this._parent._updateTouched(e,A)}_onDisabledChange=[];_registerOnCollectionChange(e){this._onCollectionChange=e}_setUpdateStrategy(e){Zp(e)&&e.updateOn!=null&&(this._updateOn=e.updateOn)}_parentMarkedDirty(e){let A=this._parent&&this._parent.dirty;return!e&&!!A&&!this._parent._anyControlsDirty()}_find(e){return null}_assignValidators(e){this._rawValidators=Array.isArray(e)?e.slice():e,this._composedValidatorFn=uEA(this._rawValidators)}_assignAsyncValidators(e){this._rawAsyncValidators=Array.isArray(e)?e.slice():e,this._composedAsyncValidatorFn=hEA(this._rawAsyncValidators)}},sB=class extends rB{constructor(e,A,i){super(ik(A),nk(i,A)),this.controls=e,this._initObservables(),this._setUpdateStrategy(A),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(e,A){return this.controls[e]?this.controls[e]:(this.controls[e]=A,A.setParent(this),A._registerOnCollectionChange(this._onCollectionChange),A)}addControl(e,A,i={}){this.registerControl(e,A),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(e,A={}){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),delete this.controls[e],this.updateValueAndValidity({emitEvent:A.emitEvent}),this._onCollectionChange()}setControl(e,A,i={}){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),delete this.controls[e],A&&this.registerControl(e,A),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(e){return this.controls.hasOwnProperty(e)&&this.controls[e].enabled}setValue(e,A={}){iz(this,!0,e),Object.keys(e).forEach(i=>{tz(this,!0,i),this.controls[i].setValue(e[i],{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A)}patchValue(e,A={}){e!=null&&(Object.keys(e).forEach(i=>{let n=this.controls[i];n&&n.patchValue(e[i],{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A))}reset(e={},A={}){this._forEachChild((i,n)=>{i.reset(e?e[n]:null,{onlySelf:!0,emitEvent:A.emitEvent})}),this._updatePristine(A,this),this._updateTouched(A,this),this.updateValueAndValidity(A)}getRawValue(){return this._reduceChildren({},(e,A,i)=>(e[i]=A.getRawValue(),e))}_syncPendingControls(){let e=this._reduceChildren(!1,(A,i)=>i._syncPendingControls()?!0:A);return e&&this.updateValueAndValidity({onlySelf:!0}),e}_forEachChild(e){Object.keys(this.controls).forEach(A=>{let i=this.controls[A];i&&e(i,A)})}_setUpControls(){this._forEachChild(e=>{e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(e){for(let[A,i]of Object.entries(this.controls))if(this.contains(A)&&e(i))return!0;return!1}_reduceValue(){let e={};return this._reduceChildren(e,(A,i,n)=>((i.enabled||this.disabled)&&(A[n]=i.value),A))}_reduceChildren(e,A){let i=e;return this._forEachChild((n,o)=>{i=A(i,n,o)}),i}_allControlsDisabled(){for(let e of Object.keys(this.controls))if(this.controls[e].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(e){return this.controls.hasOwnProperty(e)?this.controls[e]:null}};var Wb=class extends sB{};var aB=new eA("",{providedIn:"root",factory:()=>Wp}),Wp="always";function nz(t,e){return[...e.path,t]}function eh(t,e,A=Wp){ok(t,e),e.valueAccessor.writeValue(t.value),(t.disabled||A==="always")&&e.valueAccessor.setDisabledState?.(t.disabled),mEA(t,e),DEA(t,e),pEA(t,e),fEA(t,e)}function jp(t,e,A=!0){let i=()=>{};e.valueAccessor&&(e.valueAccessor.registerOnChange(i),e.valueAccessor.registerOnTouched(i)),Vp(t,e),t&&(e._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function qp(t,e){t.forEach(A=>{A.registerOnValidatorChange&&A.registerOnValidatorChange(e)})}function fEA(t,e){if(e.valueAccessor.setDisabledState){let A=i=>{e.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(A),e._registerOnDestroy(()=>{t._unregisterOnDisabledChange(A)})}}function ok(t,e){let A=$O(t);e.validator!==null?t.setValidators(GO(A,e.validator)):typeof A=="function"&&t.setValidators([A]);let i=Az(t);e.asyncValidator!==null?t.setAsyncValidators(GO(i,e.asyncValidator)):typeof i=="function"&&t.setAsyncValidators([i]);let n=()=>t.updateValueAndValidity();qp(e._rawValidators,n),qp(e._rawAsyncValidators,n)}function Vp(t,e){let A=!1;if(t!==null){if(e.validator!==null){let n=$O(t);if(Array.isArray(n)&&n.length>0){let o=n.filter(r=>r!==e.validator);o.length!==n.length&&(A=!0,t.setValidators(o))}}if(e.asyncValidator!==null){let n=Az(t);if(Array.isArray(n)&&n.length>0){let o=n.filter(r=>r!==e.asyncValidator);o.length!==n.length&&(A=!0,t.setAsyncValidators(o))}}}let i=()=>{};return qp(e._rawValidators,i),qp(e._rawAsyncValidators,i),A}function mEA(t,e){e.valueAccessor.registerOnChange(A=>{t._pendingValue=A,t._pendingChange=!0,t._pendingDirty=!0,t.updateOn==="change"&&oz(t,e)})}function pEA(t,e){e.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,t.updateOn==="blur"&&t._pendingChange&&oz(t,e),t.updateOn!=="submit"&&t.markAsTouched()})}function oz(t,e){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function DEA(t,e){let A=(i,n)=>{e.valueAccessor.writeValue(i),n&&e.viewToModelUpdate(i)};t.registerOnChange(A),e._registerOnDestroy(()=>{t._unregisterOnChange(A)})}function rz(t,e){t==null,ok(t,e)}function wEA(t,e){return Vp(t,e)}function rk(t,e){if(!t.hasOwnProperty("model"))return!1;let A=t.model;return A.isFirstChange()?!0:!Object.is(e,A.currentValue)}function yEA(t){return Object.getPrototypeOf(t.constructor)===iEA}function sz(t,e){t._syncPendingControls(),e.forEach(A=>{let i=A.control;i.updateOn==="submit"&&i._pendingChange&&(A.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function sk(t,e){if(!e)return null;Array.isArray(e);let A,i,n;return e.forEach(o=>{o.constructor===kc?A=o:yEA(o)?i=o:n=o}),n||i||A||null}function vEA(t,e){let A=t.indexOf(e);A>-1&&t.splice(A,1)}var MEA={provide:v0,useExisting:Ur(()=>ih)},Xu=Promise.resolve(),ih=(()=>{class t extends v0{callSetDisabledState;get submitted(){return ua(this.submittedReactive)}_submitted=Mc(()=>this.submittedReactive());submittedReactive=Ao(!1);_directives=new Set;form;ngSubmit=new YA;options;constructor(A,i,n){super(),this.callSetDisabledState=n,this.form=new sB({},ek(A),tk(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(A){Xu.then(()=>{let i=this._findContainer(A.path);A.control=i.registerControl(A.name,A.control),eh(A.control,A,this.callSetDisabledState),A.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(A)})}getControl(A){return this.form.get(A.path)}removeControl(A){Xu.then(()=>{let i=this._findContainer(A.path);i&&i.removeControl(A.name),this._directives.delete(A)})}addFormGroup(A){Xu.then(()=>{let i=this._findContainer(A.path),n=new sB({});rz(n,A),i.registerControl(A.name,n),n.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(A){Xu.then(()=>{let i=this._findContainer(A.path);i&&i.removeControl(A.name)})}getFormGroup(A){return this.form.get(A.path)}updateModel(A,i){Xu.then(()=>{this.form.get(A.path).setValue(i)})}setValue(A){this.control.setValue(A)}onSubmit(A){return this.submittedReactive.set(!0),sz(this.form,this._directives),this.ngSubmit.emit(A),this.form._events.next(new zp(this.control)),A?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(A=void 0){this.form.reset(A),this.submittedReactive.set(!1),this.form._events.next(new Pp(this.form))}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(A){return A.pop(),A.length?this.form.get(A):this.form}static \u0275fac=function(i){return new(i||t)(Ge(M0,10),Ge(th,10),Ge(aB,8))};static \u0275dir=WA({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,n){i&1&&mA("submit",function(r){return n.onSubmit(r)})("reset",function(){return n.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[ut([MEA]),lt]})}return t})();function JO(t,e){let A=t.indexOf(e);A>-1&&t.splice(A,1)}function YO(t){return typeof t=="object"&&t!==null&&Object.keys(t).length===2&&"value"in t&&"disabled"in t}var y0=class extends rB{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(e=null,A,i){super(ik(A),nk(i,A)),this._applyFormState(e),this._setUpdateStrategy(A),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Zp(A)&&(A.nonNullable||A.initialValueIsDefault)&&(YO(e)?this.defaultValue=e.value:this.defaultValue=e)}setValue(e,A={}){this.value=this._pendingValue=e,this._onChange.length&&A.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,A.emitViewToModelChange!==!1)),this.updateValueAndValidity(A)}patchValue(e,A={}){this.setValue(e,A)}reset(e=this.defaultValue,A={}){this._applyFormState(e),this.markAsPristine(A),this.markAsUntouched(A),this.setValue(this.value,A),this._pendingChange=!1}_updateValue(){}_anyControls(e){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(e){this._onChange.push(e)}_unregisterOnChange(e){JO(this._onChange,e)}registerOnDisabledChange(e){this._onDisabledChange.push(e)}_unregisterOnDisabledChange(e){JO(this._onDisabledChange,e)}_forEachChild(e){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(e){YO(e)?(this.value=this._pendingValue=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=e}};var bEA=t=>t instanceof y0;var kEA={provide:ec,useExisting:Ur(()=>tc)},TO=Promise.resolve(),tc=(()=>{class t extends ec{_changeDetectorRef;callSetDisabledState;control=new y0;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new YA;constructor(A,i,n,o,r,s){super(),this._changeDetectorRef=r,this.callSetDisabledState=s,this._parent=A,this._setValidators(i),this._setAsyncValidators(n),this.valueAccessor=sk(this,o)}ngOnChanges(A){if(this._checkForErrors(),!this._registered||"name"in A){if(this._registered&&(this._checkName(),this.formDirective)){let i=A.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in A&&this._updateDisabled(A),rk(A,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){eh(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(A){TO.then(()=>{this.control.setValue(A,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(A){let i=A.isDisabled.currentValue,n=i!==0&&ge(i);TO.then(()=>{n&&!this.control.disabled?this.control.disable():!n&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(A){return this._parent?nz(A,this._parent):[A]}static \u0275fac=function(i){return new(i||t)(Ge(v0,9),Ge(M0,10),Ge(th,10),Ge(bc,10),Ge(Et,8),Ge(aB,8))};static \u0275dir=WA({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[ut([kEA]),lt,Xt]})}return t})();var az=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return t})();var ak=new eA(""),SEA={provide:ec,useExisting:Ur(()=>ck)},ck=(()=>{class t extends ec{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(A){}model;update=new YA;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(A,i,n,o,r){super(),this._ngModelWarningConfig=o,this.callSetDisabledState=r,this._setValidators(A),this._setAsyncValidators(i),this.valueAccessor=sk(this,n)}ngOnChanges(A){if(this._isControlChanged(A)){let i=A.form.previousValue;i&&jp(i,this,!1),eh(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}rk(A,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&jp(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}_isControlChanged(A){return A.hasOwnProperty("form")}static \u0275fac=function(i){return new(i||t)(Ge(M0,10),Ge(th,10),Ge(bc,10),Ge(ak,8),Ge(aB,8))};static \u0275dir=WA({type:t,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[ut([SEA]),lt,Xt]})}return t})(),REA={provide:v0,useExisting:Ur(()=>YI)},YI=(()=>{class t extends v0{callSetDisabledState;get submitted(){return ua(this._submittedReactive)}set submitted(A){this._submittedReactive.set(A)}_submitted=Mc(()=>this._submittedReactive());_submittedReactive=Ao(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];form=null;ngSubmit=new YA;constructor(A,i,n){super(),this.callSetDisabledState=n,this._setValidators(A),this._setAsyncValidators(i)}ngOnChanges(A){A.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Vp(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(A){let i=this.form.get(A.path);return eh(i,A,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(A),i}getControl(A){return this.form.get(A.path)}removeControl(A){jp(A.control||null,A,!1),vEA(this.directives,A)}addFormGroup(A){this._setUpFormContainer(A)}removeFormGroup(A){this._cleanUpFormContainer(A)}getFormGroup(A){return this.form.get(A.path)}addFormArray(A){this._setUpFormContainer(A)}removeFormArray(A){this._cleanUpFormContainer(A)}getFormArray(A){return this.form.get(A.path)}updateModel(A,i){this.form.get(A.path).setValue(i)}onSubmit(A){return this._submittedReactive.set(!0),sz(this.form,this.directives),this.ngSubmit.emit(A),this.form._events.next(new zp(this.control)),A?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(A=void 0){this.form.reset(A),this._submittedReactive.set(!1),this.form._events.next(new Pp(this.form))}_updateDomValue(){this.directives.forEach(A=>{let i=A.control,n=this.form.get(A.path);i!==n&&(jp(i||null,A),bEA(n)&&(eh(n,A,this.callSetDisabledState),A.control=n))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(A){let i=this.form.get(A.path);rz(i,A),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(A){if(this.form){let i=this.form.get(A.path);i&&wEA(i,A)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){ok(this.form,this),this._oldForm&&Vp(this._oldForm,this)}static \u0275fac=function(i){return new(i||t)(Ge(M0,10),Ge(th,10),Ge(aB,8))};static \u0275dir=WA({type:t,selectors:[["","formGroup",""]],hostBindings:function(i,n){i&1&&mA("submit",function(r){return n.onSubmit(r)})("reset",function(){return n.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[ut([REA]),lt,Xt]})}return t})();var LEA={provide:ec,useExisting:Ur(()=>gk)},gk=(()=>{class t extends ec{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(A){}model;update=new YA;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(A,i,n,o,r){super(),this._ngModelWarningConfig=r,this._parent=A,this._setValidators(i),this._setAsyncValidators(n),this.valueAccessor=sk(this,o)}ngOnChanges(A){this._added||this._setUpControl(),rk(A,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}get path(){return nz(this.name==null?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_setUpControl(){this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||t)(Ge(v0,13),Ge(M0,10),Ge(th,10),Ge(bc,10),Ge(ak,8))};static \u0275dir=WA({type:t,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[ut([LEA]),lt,Xt]})}return t})();var cz=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})(),Xb=class extends rB{constructor(e,A,i){super(ik(A),nk(i,A)),this.controls=e,this._initObservables(),this._setUpdateStrategy(A),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(e){return this.controls[this._adjustIndex(e)]}push(e,A={}){this.controls.push(e),this._registerControl(e),this.updateValueAndValidity({emitEvent:A.emitEvent}),this._onCollectionChange()}insert(e,A,i={}){this.controls.splice(e,0,A),this._registerControl(A),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(e,A={}){let i=this._adjustIndex(e);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:A.emitEvent})}setControl(e,A,i={}){let n=this._adjustIndex(e);n<0&&(n=0),this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),this.controls.splice(n,1),A&&(this.controls.splice(n,0,A),this._registerControl(A)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(e,A={}){iz(this,!1,e),e.forEach((i,n)=>{tz(this,!1,n),this.at(n).setValue(i,{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A)}patchValue(e,A={}){e!=null&&(e.forEach((i,n)=>{this.at(n)&&this.at(n).patchValue(i,{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A))}reset(e=[],A={}){this._forEachChild((i,n)=>{i.reset(e[n],{onlySelf:!0,emitEvent:A.emitEvent})}),this._updatePristine(A,this),this._updateTouched(A,this),this.updateValueAndValidity(A)}getRawValue(){return this.controls.map(e=>e.getRawValue())}clear(e={}){this.controls.length<1||(this._forEachChild(A=>A._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:e.emitEvent}))}_adjustIndex(e){return e<0?e+this.length:e}_syncPendingControls(){let e=this.controls.reduce((A,i)=>i._syncPendingControls()?!0:A,!1);return e&&this.updateValueAndValidity({onlySelf:!0}),e}_forEachChild(e){this.controls.forEach((A,i)=>{e(A,i)})}_updateValue(){this.value=this.controls.filter(e=>e.enabled||this.disabled).map(e=>e.value)}_anyControls(e){return this.controls.some(A=>A.enabled&&e(A))}_setUpControls(){this._forEachChild(e=>this._registerControl(e))}_allControlsDisabled(){for(let e of this.controls)if(e.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(e){e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)}_find(e){return this.at(e)??null}};function HO(t){return!!t&&(t.asyncValidators!==void 0||t.validators!==void 0||t.updateOn!==void 0)}var gz=(()=>{class t{useNonNullable=!1;get nonNullable(){let A=new t;return A.useNonNullable=!0,A}group(A,i=null){let n=this._reduceControls(A),o={};return HO(i)?o=i:i!==null&&(o.validators=i.validator,o.asyncValidators=i.asyncValidator),new sB(n,o)}record(A,i=null){let n=this._reduceControls(A);return new Wb(n,i)}control(A,i,n){let o={};return this.useNonNullable?(HO(i)?o=i:(o.validators=i,o.asyncValidators=n),new y0(A,Fe(sA({},o),{nonNullable:!0}))):new y0(A,i,n)}array(A,i,n){let o=A.map(r=>this._createControl(r));return new Xb(o,i,n)}_reduceControls(A){let i={};return Object.keys(A).forEach(n=>{i[n]=this._createControl(A[n])}),i}_createControl(A){if(A instanceof y0)return A;if(A instanceof rB)return A;if(Array.isArray(A)){let i=A[0],n=A.length>1?A[1]:null,o=A.length>2?A[2]:null;return this.control(i,n,o)}else return this.control(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Mr=(()=>{class t{static withConfig(A){return{ngModule:t,providers:[{provide:aB,useValue:A.callSetDisabledState??Wp}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[cz]})}return t})(),cB=(()=>{class t{static withConfig(A){return{ngModule:t,providers:[{provide:ak,useValue:A.warnOnNgModelWithFormControl??"always"},{provide:aB,useValue:A.callSetDisabledState??Wp}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[cz]})}return t})();var Ik;try{Ik=typeof Intl<"u"&&Intl.v8BreakIterator}catch{Ik=!1}var ni=(()=>{class t{_platformId=f(El);isBrowser=this._platformId?ul(this._platformId):typeof document=="object"&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!!(window.chrome||Ik)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var gB,lz=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function Ck(){if(gB)return gB;if(typeof document!="object"||!document)return gB=new Set(lz),gB;let t=document.createElement("input");return gB=new Set(lz.filter(e=>(t.setAttribute("type",e),t.type===e))),gB}var nh;function xEA(){if(nh==null&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>nh=!0}))}finally{nh=nh||!1}return nh}function Sc(t){return xEA()?t:!!t.capture}var hg=function(t){return t[t.NORMAL=0]="NORMAL",t[t.NEGATED=1]="NEGATED",t[t.INVERTED=2]="INVERTED",t}(hg||{}),Xp,TI;function $p(){if(TI==null){if(typeof document!="object"||!document||typeof Element!="function"||!Element)return TI=!1,TI;if("scrollBehavior"in document.documentElement.style)TI=!0;else{let t=Element.prototype.scrollTo;t?TI=!/\{\s*\[native code\]\s*\}/.test(t.toString()):TI=!1}}return TI}function lB(){if(typeof document!="object"||!document)return hg.NORMAL;if(Xp==null){let t=document.createElement("div"),e=t.style;t.dir="rtl",e.width="1px",e.overflow="auto",e.visibility="hidden",e.pointerEvents="none",e.position="absolute";let A=document.createElement("div"),i=A.style;i.width="2px",i.height="1px",t.appendChild(A),document.body.appendChild(t),Xp=hg.NORMAL,t.scrollLeft===0&&(t.scrollLeft=1,Xp=t.scrollLeft===0?hg.NEGATED:hg.INVERTED),t.remove()}return Xp}var lk;function NEA(){if(lk==null){let t=typeof document<"u"?document.head:null;lk=!!(t&&(t.createShadowRoot||t.attachShadow))}return lk}function Iz(t){if(NEA()){let e=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&e instanceof ShadowRoot)return e}return null}function IB(){let t=typeof document<"u"&&document?document.activeElement:null;for(;t&&t.shadowRoot;){let e=t.shadowRoot.activeElement;if(e===t)break;t=e}return t}function ic(t){return t.composedPath?t.composedPath()[0]:t.target}function dk(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}function Bk(t,e,A,i,n){let o=parseInt(Nb.major),r=parseInt(Nb.minor);return o>19||o===19&&r>0||o===0&&r===0?t.listen(e,A,i,n):(e.addEventListener(A,i,n),()=>{e.removeEventListener(A,i,n)})}var A6=new WeakMap,Pn=(()=>{class t{_appRef;_injector=f(Zt);_environmentInjector=f(vr);load(A){let i=this._appRef=this._appRef||this._injector.get(Ca),n=A6.get(i);n||(n={loaders:new Set,refs:[]},A6.set(i,n),i.onDestroy(()=>{A6.get(i)?.refs.forEach(o=>o.destroy()),A6.delete(i)})),n.loaders.has(A)||(n.loaders.add(A),n.refs.push(vp(A,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),oh=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],exportAs:["cdkVisuallyHidden"],decls:0,vars:0,template:function(i,n){},styles:[".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}"],encapsulation:2,changeDetection:0})}return t})();function sr(t,...e){return e.length?e.some(A=>t[A]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}function Ar(t){return t!=null&&`${t}`!="false"}function Zs(t,e=0){return Ek(t)?Number(t):arguments.length===2?e:0}function Ek(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}function CB(t){return Array.isArray(t)?t:[t]}function hr(t){return t==null?"":typeof t=="string"?t:`${t}px`}function fa(t){return t instanceof se?t.nativeElement:t}function FEA(t){if(t.type==="characterData"&&t.target instanceof Comment)return!0;if(t.type==="childList"){for(let e=0;e{class t{create(A){return typeof MutationObserver>"u"?null:new MutationObserver(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),dz=(()=>{class t{_mutationObserverFactory=f(Cz);_observedElements=new Map;_ngZone=f(ye);constructor(){}ngOnDestroy(){this._observedElements.forEach((A,i)=>this._cleanupObserver(i))}observe(A){let i=fa(A);return new gt(n=>{let r=this._observeElement(i).pipe(je(s=>s.filter(a=>!FEA(a))),Nt(s=>!!s.length)).subscribe(s=>{this._ngZone.run(()=>{n.next(s)})});return()=>{r.unsubscribe(),this._unobserveElement(i)}})}_observeElement(A){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(A))this._observedElements.get(A).count++;else{let i=new qA,n=this._mutationObserverFactory.create(o=>i.next(o));n&&n.observe(A,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(A,{observer:n,stream:i,count:1})}return this._observedElements.get(A).stream})}_unobserveElement(A){this._observedElements.has(A)&&(this._observedElements.get(A).count--,this._observedElements.get(A).count||this._cleanupObserver(A))}_cleanupObserver(A){if(this._observedElements.has(A)){let{observer:i,stream:n}=this._observedElements.get(A);i&&i.disconnect(),n.complete(),this._observedElements.delete(A)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),e6=(()=>{class t{_contentObserver=f(dz);_elementRef=f(se);event=new YA;get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._disabled?this._unsubscribe():this._subscribe()}_disabled=!1;get debounce(){return this._debounce}set debounce(A){this._debounce=Zs(A),this._subscribe()}_debounce;_currentSubscription=null;constructor(){}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();let A=this._contentObserver.observe(this._elementRef);this._currentSubscription=(this.debounce?A.pipe(ag(this.debounce)):A).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",ge],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}return t})(),rh=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[Cz]})}return t})();var Bz=new Set,HI,_EA=(()=>{class t{_platform=f(ni);_nonce=f(bu,{optional:!0});_matchMedia;constructor(){this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):KEA}matchMedia(A){return(this._platform.WEBKIT||this._platform.BLINK)&&GEA(A,this._nonce),this._matchMedia(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function GEA(t,e){if(!Bz.has(t))try{HI||(HI=document.createElement("style"),e&&HI.setAttribute("nonce",e),HI.setAttribute("type","text/css"),document.head.appendChild(HI)),HI.sheet&&(HI.sheet.insertRule(`@media ${t} {body{ }}`,0),Bz.add(t))}catch(A){console.error(A)}}function KEA(t){return{matches:t==="all"||t==="",media:t,addListener:()=>{},removeListener:()=>{}}}var t6=(()=>{class t{_mediaMatcher=f(_EA);_zone=f(ye);_queries=new Map;_destroySubject=new qA;constructor(){}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(A){return Ez(CB(A)).some(n=>this._registerQuery(n).mql.matches)}observe(A){let n=Ez(CB(A)).map(r=>this._registerQuery(r).observable),o=ga(n);return o=Q2(o.pipe(Xn(1)),o.pipe(mI(1),ag(0))),o.pipe(je(r=>{let s={matches:!1,breakpoints:{}};return r.forEach(({matches:a,query:c})=>{s.matches=s.matches||a,s.breakpoints[c]=a}),s}))}_registerQuery(A){if(this._queries.has(A))return this._queries.get(A);let i=this._mediaMatcher.matchMedia(A),o={observable:new gt(r=>{let s=a=>this._zone.run(()=>r.next(a));return i.addListener(s),()=>{i.removeListener(s)}}).pipe(On(i),je(({matches:r})=>({query:A,matches:r})),kt(this._destroySubject)),mql:i};return this._queries.set(A,o),o}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Ez(t){return t.map(e=>e.split(",")).reduce((e,A)=>e.concat(A)).map(e=>e.trim())}var Qz={XSmall:"(max-width: 599.98px)",Small:"(min-width: 600px) and (max-width: 959.98px)",Medium:"(min-width: 960px) and (max-width: 1279.98px)",Large:"(min-width: 1280px) and (max-width: 1919.98px)",XLarge:"(min-width: 1920px)",Handset:"(max-width: 599.98px) and (orientation: portrait), (max-width: 959.98px) and (orientation: landscape)",Tablet:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), (min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",Web:"(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)",HandsetPortrait:"(max-width: 599.98px) and (orientation: portrait)",TabletPortrait:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)",WebPortrait:"(min-width: 840px) and (orientation: portrait)",HandsetLandscape:"(max-width: 959.98px) and (orientation: landscape)",TabletLandscape:"(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",WebLandscape:"(min-width: 1280px) and (orientation: landscape)"};var pz=" ";function wk(t,e,A){let i=r6(t,e);A=A.trim(),!i.some(n=>n.trim()===A)&&(i.push(A),t.setAttribute(e,i.join(pz)))}function c6(t,e,A){let i=r6(t,e);A=A.trim();let n=i.filter(o=>o!==A);n.length?t.setAttribute(e,n.join(pz)):t.removeAttribute(e)}function r6(t,e){return t.getAttribute(e)?.match(/\S+/g)??[]}var Dz="cdk-describedby-message",i6="cdk-describedby-host",fk=0,wz=(()=>{class t{_platform=f(ni);_document=f(at);_messageRegistry=new Map;_messagesContainer=null;_id=`${fk++}`;constructor(){f(Pn).load(oh),this._id=f(Vd)+"-"+fk++}describe(A,i,n){if(!this._canBeDescribed(A,i))return;let o=Qk(i,n);typeof i!="string"?(uz(i,this._id),this._messageRegistry.set(o,{messageElement:i,referenceCount:0})):this._messageRegistry.has(o)||this._createMessageElement(i,n),this._isElementDescribedByMessage(A,o)||this._addMessageReference(A,o)}removeDescription(A,i,n){if(!i||!this._isElementNode(A))return;let o=Qk(i,n);if(this._isElementDescribedByMessage(A,o)&&this._removeMessageReference(A,o),typeof i=="string"){let r=this._messageRegistry.get(o);r&&r.referenceCount===0&&this._deleteMessageElement(o)}this._messagesContainer?.childNodes.length===0&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){let A=this._document.querySelectorAll(`[${i6}="${this._id}"]`);for(let i=0;in.indexOf(Dz)!=0);A.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(A,i){let n=this._messageRegistry.get(i);wk(A,"aria-describedby",n.messageElement.id),A.setAttribute(i6,this._id),n.referenceCount++}_removeMessageReference(A,i){let n=this._messageRegistry.get(i);n.referenceCount--,c6(A,"aria-describedby",n.messageElement.id),A.removeAttribute(i6)}_isElementDescribedByMessage(A,i){let n=r6(A,"aria-describedby"),o=this._messageRegistry.get(i),r=o&&o.messageElement.id;return!!r&&n.indexOf(r)!=-1}_canBeDescribed(A,i){if(!this._isElementNode(A))return!1;if(i&&typeof i=="object")return!0;let n=i==null?"":`${i}`.trim(),o=A.getAttribute("aria-label");return n?!o||o.trim()!==n:!1}_isElementNode(A){return A.nodeType===this._document.ELEMENT_NODE}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Qk(t,e){return typeof t=="string"?`${e||""}/${t}`:t}function uz(t,e){t.id||(t.id=`${Dz}-${e}-${fk++}`)}var XEA=200,mk=class{_letterKeyStream=new qA;_items=[];_selectedItemIndex=-1;_pressedLetters=[];_skipPredicateFn;_selectedItem=new qA;selectedItem=this._selectedItem;constructor(e,A){let i=typeof A?.debounceInterval=="number"?A.debounceInterval:XEA;A?.skipPredicate&&(this._skipPredicateFn=A.skipPredicate),this.setItems(e),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(e){this._selectedItemIndex=e}setItems(e){this._items=e}handleKey(e){let A=e.keyCode;e.key&&e.key.length===1?this._letterKeyStream.next(e.key.toLocaleUpperCase()):(A>=65&&A<=90||A>=48&&A<=57)&&this._letterKeyStream.next(String.fromCharCode(A))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(e){this._letterKeyStream.pipe(So(A=>this._pressedLetters.push(A)),ag(e),Nt(()=>this._pressedLetters.length>0),je(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(A=>{for(let i=1;ie.disabled;constructor(e,A){this._items=e,e instanceof qa?this._itemChangesSubscription=e.changes.subscribe(i=>this._itemsChanged(i.toArray())):v2(e)&&(this._effectRef=Ku(()=>this._itemsChanged(e()),{injector:A}))}tabOut=new qA;change=new qA;skipPredicate(e){return this._skipPredicateFn=e,this}withWrap(e=!0){return this._wrap=e,this}withVerticalOrientation(e=!0){return this._vertical=e,this}withHorizontalOrientation(e){return this._horizontal=e,this}withAllowedModifierKeys(e){return this._allowedModifierKeys=e,this}withTypeAhead(e=200){this._typeaheadSubscription.unsubscribe();let A=this._getItemsArray();return this._typeahead=new mk(A,{debounceInterval:typeof e=="number"?e:void 0,skipPredicate:i=>this._skipPredicateFn(i)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(i=>{this.setActiveItem(i)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(e=!0){return this._homeAndEnd=e,this}withPageUpDown(e=!0,A=10){return this._pageUpAndDown={enabled:e,delta:A},this}setActiveItem(e){let A=this._activeItem();this.updateActiveItem(e),this._activeItem()!==A&&this.change.next(this._activeItemIndex)}onKeydown(e){let A=e.keyCode,n=["altKey","ctrlKey","metaKey","shiftKey"].every(o=>!e[o]||this._allowedModifierKeys.indexOf(o)>-1);switch(A){case 9:this.tabOut.next();return;case 40:if(this._vertical&&n){this.setNextItemActive();break}else return;case 38:if(this._vertical&&n){this.setPreviousItemActive();break}else return;case 39:if(this._horizontal&&n){this._horizontal==="rtl"?this.setPreviousItemActive():this.setNextItemActive();break}else return;case 37:if(this._horizontal&&n){this._horizontal==="rtl"?this.setNextItemActive():this.setPreviousItemActive();break}else return;case 36:if(this._homeAndEnd&&n){this.setFirstItemActive();break}else return;case 35:if(this._homeAndEnd&&n){this.setLastItemActive();break}else return;case 33:if(this._pageUpAndDown.enabled&&n){let o=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(o>0?o:0,1);break}else return;case 34:if(this._pageUpAndDown.enabled&&n){let o=this._activeItemIndex+this._pageUpAndDown.delta,r=this._getItemsArray().length;this._setActiveItemByIndex(o-1&&i!==this._activeItemIndex&&(this._activeItemIndex=i,this._typeahead?.setCurrentSelectedItemIndex(i))}}},a6=class extends s6{setActiveItem(e){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(e),this.activeItem&&this.activeItem.setActiveStyles()}},zI=class extends s6{_origin="program";setFocusOrigin(e){return this._origin=e,this}setActiveItem(e){super.setActiveItem(e),this.activeItem&&this.activeItem.focus(this._origin)}};var sh=(()=>{class t{_platform=f(ni);constructor(){}isDisabled(A){return A.hasAttribute("disabled")}isVisible(A){return AQA(A)&&getComputedStyle(A).visibility==="visible"}isTabbable(A){if(!this._platform.isBrowser)return!1;let i=$EA(aQA(A));if(i&&(hz(i)===-1||!this.isVisible(i)))return!1;let n=A.nodeName.toLowerCase(),o=hz(A);return A.hasAttribute("contenteditable")?o!==-1:n==="iframe"||n==="object"||this._platform.WEBKIT&&this._platform.IOS&&!rQA(A)?!1:n==="audio"?A.hasAttribute("controls")?o!==-1:!1:n==="video"?o===-1?!1:o!==null?!0:this._platform.FIREFOX||A.hasAttribute("controls"):A.tabIndex>=0}isFocusable(A,i){return sQA(A)&&!this.isDisabled(A)&&(i?.ignoreVisibility||this.isVisible(A))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $EA(t){try{return t.frameElement}catch{return null}}function AQA(t){return!!(t.offsetWidth||t.offsetHeight||typeof t.getClientRects=="function"&&t.getClientRects().length)}function eQA(t){let e=t.nodeName.toLowerCase();return e==="input"||e==="select"||e==="button"||e==="textarea"}function tQA(t){return nQA(t)&&t.type=="hidden"}function iQA(t){return oQA(t)&&t.hasAttribute("href")}function nQA(t){return t.nodeName.toLowerCase()=="input"}function oQA(t){return t.nodeName.toLowerCase()=="a"}function yz(t){if(!t.hasAttribute("tabindex")||t.tabIndex===void 0)return!1;let e=t.getAttribute("tabindex");return!!(e&&!isNaN(parseInt(e,10)))}function hz(t){if(!yz(t))return null;let e=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(e)?-1:e}function rQA(t){let e=t.nodeName.toLowerCase(),A=e==="input"&&t.type;return A==="text"||A==="password"||e==="select"||e==="textarea"}function sQA(t){return tQA(t)?!1:eQA(t)||iQA(t)||t.hasAttribute("contenteditable")||yz(t)}function aQA(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}var pk=class{_element;_checker;_ngZone;_document;_injector;_startAnchor;_endAnchor;_hasAttached=!1;startAnchorListener=()=>this.focusLastTabbableElement();endAnchorListener=()=>this.focusFirstTabbableElement();get enabled(){return this._enabled}set enabled(e){this._enabled=e,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}_enabled=!0;constructor(e,A,i,n,o=!1,r){this._element=e,this._checker=A,this._ngZone=i,this._document=n,this._injector=r,o||this.attachAnchors()}destroy(){let e=this._startAnchor,A=this._endAnchor;e&&(e.removeEventListener("focus",this.startAnchorListener),e.remove()),A&&(A.removeEventListener("focus",this.endAnchorListener),A.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return this._hasAttached?!0:(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(e){return new Promise(A=>{this._executeOnStable(()=>A(this.focusInitialElement(e)))})}focusFirstTabbableElementWhenReady(e){return new Promise(A=>{this._executeOnStable(()=>A(this.focusFirstTabbableElement(e)))})}focusLastTabbableElementWhenReady(e){return new Promise(A=>{this._executeOnStable(()=>A(this.focusLastTabbableElement(e)))})}_getRegionBoundary(e){let A=this._element.querySelectorAll(`[cdk-focus-region-${e}], [cdkFocusRegion${e}], [cdk-focus-${e}]`);return e=="start"?A.length?A[0]:this._getFirstTabbableElement(this._element):A.length?A[A.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(e){let A=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(A){if(!this._checker.isFocusable(A)){let i=this._getFirstTabbableElement(A);return i?.focus(e),!!i}return A.focus(e),!0}return this.focusFirstTabbableElement(e)}focusFirstTabbableElement(e){let A=this._getRegionBoundary("start");return A&&A.focus(e),!!A}focusLastTabbableElement(e){let A=this._getRegionBoundary("end");return A&&A.focus(e),!!A}hasAttached(){return this._hasAttached}_getFirstTabbableElement(e){if(this._checker.isFocusable(e)&&this._checker.isTabbable(e))return e;let A=e.children;for(let i=0;i=0;i--){let n=A[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(A[i]):null;if(n)return n}return null}_createAnchor(){let e=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,e),e.classList.add("cdk-visually-hidden"),e.classList.add("cdk-focus-trap-anchor"),e.setAttribute("aria-hidden","true"),e}_toggleAnchorTabIndex(e,A){e?A.setAttribute("tabindex","0"):A.removeAttribute("tabindex")}toggleAnchors(e){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}_executeOnStable(e){this._injector?Ir(e,{injector:this._injector}):setTimeout(e)}},g6=(()=>{class t{_checker=f(sh);_ngZone=f(ye);_document=f(at);_injector=f(Zt);constructor(){f(Pn).load(oh)}create(A,i=!1){return new pk(A,this._checker,this._ngZone,this._document,i,this._injector)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function ah(t){return t.buttons===0||t.detail===0}function ch(t){let e=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!!e&&e.identifier===-1&&(e.radiusX==null||e.radiusX===1)&&(e.radiusY==null||e.radiusY===1)}var cQA=new eA("cdk-input-modality-detector-options"),gQA={ignoreKeys:[18,17,224,91,16]},vz=650,dB=Sc({passive:!0,capture:!0}),lQA=(()=>{class t{_platform=f(ni);modalityDetected;modalityChanged;get mostRecentModality(){return this._modality.value}_mostRecentTarget=null;_modality=new Fi(null);_options;_lastTouchMs=0;_onKeydown=A=>{this._options?.ignoreKeys?.some(i=>i===A.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=ic(A))};_onMousedown=A=>{Date.now()-this._lastTouchMs{if(ch(A)){this._modality.next("keyboard");return}this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=ic(A)};constructor(){let A=f(ye),i=f(at),n=f(cQA,{optional:!0});this._options=sA(sA({},gQA),n),this.modalityDetected=this._modality.pipe(mI(1)),this.modalityChanged=this.modalityDetected.pipe(il()),this._platform.isBrowser&&A.runOutsideAngular(()=>{i.addEventListener("keydown",this._onKeydown,dB),i.addEventListener("mousedown",this._onMousedown,dB),i.addEventListener("touchstart",this._onTouchstart,dB)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,dB),document.removeEventListener("mousedown",this._onMousedown,dB),document.removeEventListener("touchstart",this._onTouchstart,dB))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),IQA=new eA("liveAnnouncerElement",{providedIn:"root",factory:CQA});function CQA(){return null}var dQA=new eA("LIVE_ANNOUNCER_DEFAULT_OPTIONS"),BQA=0,l6=(()=>{class t{_ngZone=f(ye);_defaultOptions=f(dQA,{optional:!0});_liveElement;_document=f(at);_previousTimeout;_currentPromise;_currentResolve;constructor(){let A=f(IQA,{optional:!0});this._liveElement=A||this._createLiveElement()}announce(A,...i){let n=this._defaultOptions,o,r;return i.length===1&&typeof i[0]=="number"?r=i[0]:[o,r]=i,this.clear(),clearTimeout(this._previousTimeout),o||(o=n&&n.politeness?n.politeness:"polite"),r==null&&n&&(r=n.duration),this._liveElement.setAttribute("aria-live",o),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(s=>this._currentResolve=s)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=A,typeof r=="number"&&(this._previousTimeout=setTimeout(()=>this.clear(),r)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){let A="cdk-live-announcer-element",i=this._document.getElementsByClassName(A),n=this._document.createElement("div");for(let o=0;o .cdk-overlay-container [aria-modal="true"]');for(let n=0;n{class t{_ngZone=f(ye);_platform=f(ni);_inputModalityDetector=f(lQA);_origin=null;_lastFocusOrigin;_windowFocused=!1;_windowFocusTimeoutId;_originTimeoutId;_originFromTouchInteraction=!1;_elementInfo=new Map;_monitoredElementCount=0;_rootNodeFocusListenerCount=new Map;_detectionMode;_windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)};_document=f(at,{optional:!0});_stopInputModalityDetector=new qA;constructor(){let A=f(EQA,{optional:!0});this._detectionMode=A?.detectionMode||o6.IMMEDIATE}_rootNodeFocusAndBlurListener=A=>{let i=ic(A);for(let n=i;n;n=n.parentElement)A.type==="focus"?this._onFocus(A,n):this._onBlur(A,n)};monitor(A,i=!1){let n=fa(A);if(!this._platform.isBrowser||n.nodeType!==1)return Ce();let o=Iz(n)||this._getDocument(),r=this._elementInfo.get(n);if(r)return i&&(r.checkChildren=!0),r.subject;let s={checkChildren:i,subject:new qA,rootNode:o};return this._elementInfo.set(n,s),this._registerGlobalListeners(s),s.subject}stopMonitoring(A){let i=fa(A),n=this._elementInfo.get(i);n&&(n.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(n))}focusVia(A,i,n){let o=fa(A),r=this._getDocument().activeElement;o===r?this._getClosestElementsInfo(o).forEach(([s,a])=>this._originChanged(s,i,a)):(this._setOrigin(i),typeof o.focus=="function"&&o.focus(n))}ngOnDestroy(){this._elementInfo.forEach((A,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(A){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(A)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:A&&this._isLastInteractionFromInputLabel(A)?"mouse":"program"}_shouldBeAttributedToTouch(A){return this._detectionMode===o6.EVENTUAL||!!A?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(A,i){A.classList.toggle("cdk-focused",!!i),A.classList.toggle("cdk-touch-focused",i==="touch"),A.classList.toggle("cdk-keyboard-focused",i==="keyboard"),A.classList.toggle("cdk-mouse-focused",i==="mouse"),A.classList.toggle("cdk-program-focused",i==="program")}_setOrigin(A,i=!1){this._ngZone.runOutsideAngular(()=>{if(this._origin=A,this._originFromTouchInteraction=A==="touch"&&i,this._detectionMode===o6.IMMEDIATE){clearTimeout(this._originTimeoutId);let n=this._originFromTouchInteraction?vz:1;this._originTimeoutId=setTimeout(()=>this._origin=null,n)}})}_onFocus(A,i){let n=this._elementInfo.get(i),o=ic(A);!n||!n.checkChildren&&i!==o||this._originChanged(i,this._getFocusOrigin(o),n)}_onBlur(A,i){let n=this._elementInfo.get(i);!n||n.checkChildren&&A.relatedTarget instanceof Node&&i.contains(A.relatedTarget)||(this._setClasses(i),this._emitOrigin(n,null))}_emitOrigin(A,i){A.subject.observers.length&&this._ngZone.run(()=>A.subject.next(i))}_registerGlobalListeners(A){if(!this._platform.isBrowser)return;let i=A.rootNode,n=this._rootNodeFocusListenerCount.get(i)||0;n||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,n6),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,n6)}),this._rootNodeFocusListenerCount.set(i,n+1),++this._monitoredElementCount===1&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(kt(this._stopInputModalityDetector)).subscribe(o=>{this._setOrigin(o,!0)}))}_removeGlobalListeners(A){let i=A.rootNode;if(this._rootNodeFocusListenerCount.has(i)){let n=this._rootNodeFocusListenerCount.get(i);n>1?this._rootNodeFocusListenerCount.set(i,n-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,n6),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,n6),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(A,i,n){this._setClasses(A,i),this._emitOrigin(n,i),this._lastFocusOrigin=i}_getClosestElementsInfo(A){let i=[];return this._elementInfo.forEach((n,o)=>{(o===A||n.checkChildren&&o.contains(A))&&i.push([o,n])}),i}_isLastInteractionFromInputLabel(A){let{_mostRecentTarget:i,mostRecentModality:n}=this._inputModalityDetector;if(n!=="mouse"||!i||i===A||A.nodeName!=="INPUT"&&A.nodeName!=="TEXTAREA"||A.disabled)return!1;let o=A.labels;if(o){for(let r=0;r{class t{_elementRef=f(se);_focusMonitor=f(Jr);_monitorSubscription;_focusOrigin=null;cdkFocusChange=new YA;constructor(){}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){let A=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(A,A.nodeType===1&&A.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return t})(),OI=function(t){return t[t.NONE=0]="NONE",t[t.BLACK_ON_WHITE=1]="BLACK_ON_WHITE",t[t.WHITE_ON_BLACK=2]="WHITE_ON_BLACK",t}(OI||{}),fz="cdk-high-contrast-black-on-white",mz="cdk-high-contrast-white-on-black",uk="cdk-high-contrast-active",yk=(()=>{class t{_platform=f(ni);_hasCheckedHighContrastMode;_document=f(at);_breakpointSubscription;constructor(){this._breakpointSubscription=f(t6).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return OI.NONE;let A=this._document.createElement("div");A.style.backgroundColor="rgb(1,2,3)",A.style.position="absolute",this._document.body.appendChild(A);let i=this._document.defaultView||window,n=i&&i.getComputedStyle?i.getComputedStyle(A):null,o=(n&&n.backgroundColor||"").replace(/ /g,"");switch(A.remove(),o){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return OI.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return OI.BLACK_ON_WHITE}return OI.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){let A=this._document.body.classList;A.remove(uk,fz,mz),this._hasCheckedHighContrastMode=!0;let i=this.getHighContrastMode();i===OI.BLACK_ON_WHITE?A.add(uk,fz):i===OI.WHITE_ON_BLACK&&A.add(uk,mz)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),vk=(()=>{class t{constructor(){f(yk)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[rh]})}return t})(),hk={},an=(()=>{class t{_appId=f(Vd);getId(A){return this._appId!=="ng"&&(A+=this._appId),hk.hasOwnProperty(A)||(hk[A]=0),`${A}${hk[A]++}`}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var QQA=new eA("cdk-dir-doc",{providedIn:"root",factory:uQA});function uQA(){return f(at)}var hQA=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;function fQA(t){let e=t?.toLowerCase()||"";return e==="auto"&&typeof navigator<"u"&&navigator?.language?hQA.test(navigator.language)?"rtl":"ltr":e==="rtl"?"rtl":"ltr"}var po=(()=>{class t{value="ltr";change=new YA;constructor(){let A=f(QQA,{optional:!0});if(A){let i=A.body?A.body.dir:null,n=A.documentElement?A.documentElement.dir:null;this.value=fQA(i||n||"ltr")}}ngOnDestroy(){this.change.complete()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var G2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();var mQA=["text"],pQA=[[["mat-icon"]],"*"],DQA=["mat-icon","*"];function wQA(t,e){if(t&1&&TA(0,"mat-pseudo-checkbox",1),t&2){let A=Y();yA("disabled",A.disabled)("state",A.selected?"checked":"unchecked")}}function yQA(t,e){if(t&1&&TA(0,"mat-pseudo-checkbox",3),t&2){let A=Y();yA("disabled",A.disabled)}}function vQA(t,e){if(t&1&&(S(0,"span",4),AA(1),N()),t&2){let A=Y();_(),Bt("(",A.group.label,")")}}var MQA=["mat-internal-form-field",""],bQA=["*"];var pn=(()=>{class t{constructor(){f(yk)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[G2,G2]})}return t})(),BB=class{_defaultMatcher;ngControl;_parentFormGroup;_parentForm;_stateChanges;errorState=!1;matcher;constructor(e,A,i,n,o){this._defaultMatcher=e,this.ngControl=A,this._parentFormGroup=i,this._parentForm=n,this._stateChanges=o}updateErrorState(){let e=this.errorState,A=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,n=this.ngControl?this.ngControl.control:null,o=i?.isErrorState(n,A)??!1;o!==e&&(this.errorState=o,this._stateChanges.next())}};var d6=(()=>{class t{isErrorState(A,i){return!!(A&&A.invalid&&(A.touched||i&&i.submitted))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Yr=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["structural-styles"]],decls:0,vars:0,template:function(i,n){},styles:['.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}'],encapsulation:2,changeDetection:0})}return t})();var Ws=function(t){return t[t.FADING_IN=0]="FADING_IN",t[t.VISIBLE=1]="VISIBLE",t[t.FADING_OUT=2]="FADING_OUT",t[t.HIDDEN=3]="HIDDEN",t}(Ws||{}),kk=class{_renderer;element;config;_animationForciblyDisabledThroughCss;state=Ws.HIDDEN;constructor(e,A,i,n=!1){this._renderer=e,this.element=A,this.config=i,this._animationForciblyDisabledThroughCss=n}fadeOut(){this._renderer.fadeOutRipple(this)}},bz=Sc({passive:!0,capture:!0}),Sk=class{_events=new Map;addHandler(e,A,i,n){let o=this._events.get(A);if(o){let r=o.get(i);r?r.add(n):o.set(i,new Set([n]))}else this._events.set(A,new Map([[i,new Set([n])]])),e.runOutsideAngular(()=>{document.addEventListener(A,this._delegateEventHandler,bz)})}removeHandler(e,A,i){let n=this._events.get(e);if(!n)return;let o=n.get(A);o&&(o.delete(i),o.size===0&&n.delete(A),n.size===0&&(this._events.delete(e),document.removeEventListener(e,this._delegateEventHandler,bz)))}_delegateEventHandler=e=>{let A=ic(e);A&&this._events.get(e.type)?.forEach((i,n)=>{(n===A||n.contains(A))&&i.forEach(o=>o.handleEvent(e))})}},C6={enterDuration:225,exitDuration:150},kQA=800,kz=Sc({passive:!0,capture:!0}),Sz=["mousedown","touchstart"],Rz=["mouseup","mouseleave","touchend","touchcancel"],SQA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],hostAttrs:["mat-ripple-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:[".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}"],encapsulation:2,changeDetection:0})}return t})(),EB=class t{_target;_ngZone;_platform;_containerElement;_triggerElement;_isPointerDown=!1;_activeRipples=new Map;_mostRecentTransientRipple;_lastTouchStartEvent;_pointerUpEventsRegistered=!1;_containerRect;static _eventManager=new Sk;constructor(e,A,i,n,o){this._target=e,this._ngZone=A,this._platform=n,n.isBrowser&&(this._containerElement=fa(i)),o&&o.get(Pn).load(SQA)}fadeInRipple(e,A,i={}){let n=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),o=sA(sA({},C6),i.animation);i.centered&&(e=n.left+n.width/2,A=n.top+n.height/2);let r=i.radius||RQA(e,A,n),s=e-n.left,a=A-n.top,c=o.enterDuration,g=document.createElement("div");g.classList.add("mat-ripple-element"),g.style.left=`${s-r}px`,g.style.top=`${a-r}px`,g.style.height=`${r*2}px`,g.style.width=`${r*2}px`,i.color!=null&&(g.style.backgroundColor=i.color),g.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(g);let I=window.getComputedStyle(g),C=I.transitionProperty,d=I.transitionDuration,B=C==="none"||d==="0s"||d==="0s, 0s"||n.width===0&&n.height===0,E=new kk(this,g,i,B);g.style.transform="scale3d(1, 1, 1)",E.state=Ws.FADING_IN,i.persistent||(this._mostRecentTransientRipple=E);let u=null;return!B&&(c||o.exitDuration)&&this._ngZone.runOutsideAngular(()=>{let h=()=>{u&&(u.fallbackTimer=null),clearTimeout(x),this._finishRippleTransition(E)},w=()=>this._destroyRipple(E),x=setTimeout(w,c+100);g.addEventListener("transitionend",h),g.addEventListener("transitioncancel",w),u={onTransitionEnd:h,onTransitionCancel:w,fallbackTimer:x}}),this._activeRipples.set(E,u),(B||!c)&&this._finishRippleTransition(E),E}fadeOutRipple(e){if(e.state===Ws.FADING_OUT||e.state===Ws.HIDDEN)return;let A=e.element,i=sA(sA({},C6),e.config.animation);A.style.transitionDuration=`${i.exitDuration}ms`,A.style.opacity="0",e.state=Ws.FADING_OUT,(e._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(e)}fadeOutAll(){this._getActiveRipples().forEach(e=>e.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(e=>{e.config.persistent||e.fadeOut()})}setupTriggerEvents(e){let A=fa(e);!this._platform.isBrowser||!A||A===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=A,Sz.forEach(i=>{t._eventManager.addHandler(this._ngZone,i,A,this)}))}handleEvent(e){e.type==="mousedown"?this._onMousedown(e):e.type==="touchstart"?this._onTouchStart(e):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{Rz.forEach(A=>{this._triggerElement.addEventListener(A,this,kz)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(e){e.state===Ws.FADING_IN?this._startFadeOutTransition(e):e.state===Ws.FADING_OUT&&this._destroyRipple(e)}_startFadeOutTransition(e){let A=e===this._mostRecentTransientRipple,{persistent:i}=e.config;e.state=Ws.VISIBLE,!i&&(!A||!this._isPointerDown)&&e.fadeOut()}_destroyRipple(e){let A=this._activeRipples.get(e)??null;this._activeRipples.delete(e),this._activeRipples.size||(this._containerRect=null),e===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),e.state=Ws.HIDDEN,A!==null&&(e.element.removeEventListener("transitionend",A.onTransitionEnd),e.element.removeEventListener("transitioncancel",A.onTransitionCancel),A.fallbackTimer!==null&&clearTimeout(A.fallbackTimer)),e.element.remove()}_onMousedown(e){let A=ah(e),i=this._lastTouchStartEvent&&Date.now(){let A=e.state===Ws.VISIBLE||e.config.terminateOnPointerUp&&e.state===Ws.FADING_IN;!e.config.persistent&&A&&e.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){let e=this._triggerElement;e&&(Sz.forEach(A=>t._eventManager.removeHandler(A,e,this)),this._pointerUpEventsRegistered&&(Rz.forEach(A=>e.removeEventListener(A,this,kz)),this._pointerUpEventsRegistered=!1))}};function RQA(t,e,A){let i=Math.max(Math.abs(t-A.left),Math.abs(t-A.right)),n=Math.max(Math.abs(e-A.top),Math.abs(e-A.bottom));return Math.sqrt(i*i+n*n)}var ZI=new eA("mat-ripple-global-options"),Xs=(()=>{class t{_elementRef=f(se);_animationMode=f(_i,{optional:!0});color;unbounded;centered;radius=0;animation;get disabled(){return this._disabled}set disabled(A){A&&this.fadeOutAllNonPersistent(),this._disabled=A,this._setupTriggerEventsIfEnabled()}_disabled=!1;get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(A){this._trigger=A,this._setupTriggerEventsIfEnabled()}_trigger;_rippleRenderer;_globalOptions;_isInitialized=!1;constructor(){let A=f(ye),i=f(ni),n=f(ZI,{optional:!0}),o=f(Zt);this._globalOptions=n||{},this._rippleRenderer=new EB(this,A,this._elementRef,i,o)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:sA(sA(sA({},this._globalOptions.animation),this._animationMode==="NoopAnimations"?{enterDuration:0,exitDuration:0}:{}),this.animation),terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(A,i=0,n){return typeof A=="number"?this._rippleRenderer.fadeInRipple(A,i,sA(sA({},this.rippleConfig),n)):this._rippleRenderer.fadeInRipple(0,0,sA(sA({},this.rippleConfig),A))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,n){i&2&&he("mat-ripple-unbounded",n.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return t})(),WI=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,pn]})}return t})(),Lk=(()=>{class t{_animationMode=f(_i,{optional:!0});state="unchecked";disabled=!1;appearance="full";constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,n){i&2&&he("mat-pseudo-checkbox-indeterminate",n.state==="indeterminate")("mat-pseudo-checkbox-checked",n.state==="checked")("mat-pseudo-checkbox-disabled",n.disabled)("mat-pseudo-checkbox-minimal",n.appearance==="minimal")("mat-pseudo-checkbox-full",n.appearance==="full")("_mat-animation-noopable",n._animationMode==="NoopAnimations")},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(i,n){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-minimal-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-primary))}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full{border-color:var(--mat-full-pseudo-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-full-pseudo-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-full-pseudo-checkbox-selected-icon-color, var(--mat-sys-primary));border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-full-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-full-pseudo-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-full-pseudo-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}return t})();var xk=new eA("MAT_OPTION_PARENT_COMPONENT"),Nk=new eA("MatOptgroup");var Rk=class{source;isUserInput;constructor(e,A=!1){this.source=e,this.isUserInput=A}},K2=(()=>{class t{_element=f(se);_changeDetectorRef=f(Et);_parent=f(xk,{optional:!0});group=f(Nk,{optional:!0});_signalDisableRipple=!1;_selected=!1;_active=!1;_disabled=!1;_mostRecentViewValue="";get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}value;id=f(an).getId("mat-option-");get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(A){this._disabled=A}get disableRipple(){return this._signalDisableRipple?this._parent.disableRipple():!!this._parent?.disableRipple}get hideSingleSelectionIndicator(){return!!(this._parent&&this._parent.hideSingleSelectionIndicator)}onSelectionChange=new YA;_text;_stateChanges=new qA;constructor(){let A=f(Pn);A.load(Yr),A.load(oh),this._signalDisableRipple=!!this._parent&&v2(this._parent.disableRipple)}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(A=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),A&&this._emitSelectionChangeEvent())}deselect(A=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),A&&this._emitSelectionChangeEvent())}focus(A,i){let n=this._getHostElement();typeof n.focus=="function"&&n.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(A){(A.keyCode===13||A.keyCode===32)&&!sr(A)&&(this._selectViaInteraction(),A.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=this.multiple?!this._selected:!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){let A=this.viewValue;A!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=A)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(A=!1){this.onSelectionChange.emit(new Rk(this,A))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-option"]],viewQuery:function(i,n){if(i&1&&st(mQA,7),i&2){let o;de(o=Be())&&(n._text=o.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,n){i&1&&mA("click",function(){return n._selectViaInteraction()})("keydown",function(r){return n._handleKeydown(r)}),i&2&&(Qa("id",n.id),Ke("aria-selected",n.selected)("aria-disabled",n.disabled.toString()),he("mdc-list-item--selected",n.selected)("mat-mdc-option-multiple",n.multiple)("mat-mdc-option-active",n.active)("mdc-list-item--disabled",n.disabled))},inputs:{value:"value",id:"id",disabled:[2,"disabled","disabled",ge]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],ngContentSelectors:DQA,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,n){i&1&&($t(pQA),FA(0,wQA,1,2,"mat-pseudo-checkbox",1),Ue(1),S(2,"span",2,0),Ue(4,1),N(),FA(5,yQA,1,1,"mat-pseudo-checkbox",3)(6,vQA,2,1,"span",4),TA(7,"div",5)),i&2&&(_A(n.multiple?0:-1),_(5),_A(!n.multiple&&n.selected&&!n.hideSingleSelectionIndicator?5:-1),_(),_A(n.group&&n.group._inert?6:-1),_(),yA("matRippleTrigger",n._getHostElement())("matRippleDisabled",n.disabled||n.disableRipple))},dependencies:[Lk,Xs],styles:['.mat-mdc-option{-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;min-height:48px;padding:0 16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-option-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-option-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-option-label-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-option-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-option-label-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));outline:0}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color, var(--mat-sys-secondary-container))}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}@media(forced-colors: active){.mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{right:auto;left:16px}}.mat-mdc-option-multiple{--mdc-list-list-item-selected-container-color:var(--mdc-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();function Fz(t,e,A){if(A.length){let i=e.toArray(),n=A.toArray(),o=0;for(let r=0;rA+i?Math.max(0,t-i+e):A}var Lz={capture:!0},xz=["focus","mousedown","mouseenter","touchstart"],Mk="mat-ripple-loader-uninitialized",bk="mat-ripple-loader-class-name",Nz="mat-ripple-loader-centered",I6="mat-ripple-loader-disabled",Gz=(()=>{class t{_document=f(at,{optional:!0});_animationMode=f(_i,{optional:!0});_globalRippleOptions=f(ZI,{optional:!0});_platform=f(ni);_ngZone=f(ye);_injector=f(Zt);_hosts=new Map;constructor(){this._ngZone.runOutsideAngular(()=>{for(let A of xz)this._document?.addEventListener(A,this._onInteraction,Lz)})}ngOnDestroy(){let A=this._hosts.keys();for(let i of A)this.destroyRipple(i);for(let i of xz)this._document?.removeEventListener(i,this._onInteraction,Lz)}configureRipple(A,i){A.setAttribute(Mk,this._globalRippleOptions?.namespace??""),(i.className||!A.hasAttribute(bk))&&A.setAttribute(bk,i.className||""),i.centered&&A.setAttribute(Nz,""),i.disabled&&A.setAttribute(I6,"")}setDisabled(A,i){let n=this._hosts.get(A);n?(n.target.rippleDisabled=i,!i&&!n.hasSetUpEvents&&(n.hasSetUpEvents=!0,n.renderer.setupTriggerEvents(A))):i?A.setAttribute(I6,""):A.removeAttribute(I6)}_onInteraction=A=>{let i=ic(A);if(i instanceof HTMLElement){let n=i.closest(`[${Mk}="${this._globalRippleOptions?.namespace??""}"]`);n&&this._createRipple(n)}};_createRipple(A){if(!this._document||this._hosts.has(A))return;A.querySelector(".mat-ripple")?.remove();let i=this._document.createElement("span");i.classList.add("mat-ripple",A.getAttribute(bk)),A.append(i);let n=this._animationMode==="NoopAnimations",o=this._globalRippleOptions,r=n?0:o?.animation?.enterDuration??C6.enterDuration,s=n?0:o?.animation?.exitDuration??C6.exitDuration,a={rippleDisabled:n||o?.disabled||A.hasAttribute(I6),rippleConfig:{centered:A.hasAttribute(Nz),terminateOnPointerUp:o?.terminateOnPointerUp,animation:{enterDuration:r,exitDuration:s}}},c=new EB(a,this._ngZone,i,this._platform,this._injector),g=!a.rippleDisabled;g&&c.setupTriggerEvents(A),this._hosts.set(A,{target:a,renderer:c,hasSetUpEvents:g}),A.removeAttribute(Mk)}destroyRipple(A){let i=this._hosts.get(A);i&&(i.renderer._removeTriggerEvents(),this._hosts.delete(A))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),B6=(()=>{class t{labelPosition;static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,n){i&2&&he("mdc-form-field--align-end",n.labelPosition==="before")},inputs:{labelPosition:"labelPosition"},attrs:MQA,ngContentSelectors:bQA,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},styles:[".mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0}"],encapsulation:2,changeDetection:0})}return t})();var LQA=["mat-button",""],Fk=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],_k=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"];var xQA="@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}",NQA=["mat-fab",""],FQA=["mat-mini-fab",""],_QA='.mat-mdc-fab-base{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus>.mat-focus-indicator::before{content:""}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-sys-corner-large));color:var(--mat-fab-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display, block)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-sys-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-small-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-mini-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;height:var(--mdc-extended-fab-container-height, 56px);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-sys-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-sys-label-large-tracking));box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}',GQA=["mat-icon-button",""],KQA=["*"];var UQA=new eA("MAT_BUTTON_CONFIG");var JQA=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],Q6=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);_animationMode=f(_i,{optional:!0});_focusMonitor=f(Jr);_rippleLoader=f(Gz);_isFab=!1;color;get disableRipple(){return this._disableRipple}set disableRipple(A){this._disableRipple=A,this._updateRippleDisabled()}_disableRipple=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._updateRippleDisabled()}_disabled=!1;ariaDisabled;disabledInteractive;constructor(){f(Pn).load(Yr);let A=f(UQA,{optional:!0}),i=this._elementRef.nativeElement,n=i.classList;this.disabledInteractive=A?.disabledInteractive??!1,this.color=A?.color??null,this._rippleLoader?.configureRipple(i,{className:"mat-mdc-button-ripple"});for(let{attribute:o,mdcClasses:r}of JQA)i.hasAttribute(o)&&n.add(...r)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(A="program",i){A?this._focusMonitor.focusVia(this._elementRef.nativeElement,A,i):this._elementRef.nativeElement.focus(i)}_getAriaDisabled(){return this.ariaDisabled!=null?this.ariaDisabled:this.disabled&&this.disabledInteractive?!0:null}_getDisabledAttribute(){return this.disabledInteractive||!this.disabled?null:!0}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",ge],disabled:[2,"disabled","disabled",ge],ariaDisabled:[2,"aria-disabled","ariaDisabled",ge],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge]}})}return t})();var dr=(()=>{class t extends Q6{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(i,n){i&2&&(Ke("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[lt],attrs:LQA,ngContentSelectors:_k,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&($t(Fk),TA(0,"span",0),Ue(1),S(2,"span",1),Ue(3,1),N(),Ue(4,2),TA(5,"span",2)(6,"span",3)),i&2&&he("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:['.mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 12px);height:var(--mdc-text-button-container-height, 40px);font-family:var(--mdc-text-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-sys-label-large-weight))}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-sys-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 16px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display, block)}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-filled-button-container-height, 40px);font-family:var(--mdc-filled-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-filled-button-horizontal-padding, 24px)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color, var(--mat-sys-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-unelevated-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display, block)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-sys-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-sys-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-filled-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-sys-level1));height:var(--mdc-protected-button-container-height, 40px);font-family:var(--mdc-protected-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-protected-button-horizontal-padding, 24px)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-raised-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-raised-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display, block)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-sys-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-sys-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-sys-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-protected-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow, var(--mat-sys-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-outlined-button-container-height, 40px);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-sys-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-sys-corner-full));border-width:var(--mdc-outlined-button-outline-width, 1px);padding:0 var(--mat-outlined-button-horizontal-padding, 24px)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-outlined-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-outlined-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display, block)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-sys-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-sys-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:var(--mdc-outlined-button-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button .mdc-button__ripple{border-width:var(--mdc-outlined-button-outline-width, 1px);border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-focus-indicator,.mat-mdc-unelevated-button .mat-focus-indicator,.mat-mdc-raised-button .mat-focus-indicator,.mat-mdc-outlined-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus>.mat-focus-indicator::before,.mat-mdc-unelevated-button:focus>.mat-focus-indicator::before,.mat-mdc-raised-button:focus>.mat-focus-indicator::before,.mat-mdc-outlined-button:focus>.mat-focus-indicator::before{content:""}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-focus-indicator::before,.mat-mdc-raised-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}',"@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}"],encapsulation:2,changeDetection:0})}return t})();var Kz=new eA("mat-mdc-fab-default-options",{providedIn:"root",factory:Uz});function Uz(){return{color:"accent"}}var E6=Uz(),Jz=(()=>{class t extends Q6{_options=f(Kz,{optional:!0});_isFab=!0;extended;constructor(){super(),this._options=this._options||E6,this.color=this._options.color||E6.color}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["button","mat-fab",""]],hostVars:18,hostBindings:function(i,n){i&2&&(Ke("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0)("mdc-fab--extended",n.extended)("mat-mdc-extended-fab",n.extended))},inputs:{extended:[2,"extended","extended",ge]},exportAs:["matButton"],features:[lt],attrs:NQA,ngContentSelectors:_k,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&($t(Fk),TA(0,"span",0),Ue(1),S(2,"span",1),Ue(3,1),N(),Ue(4,2),TA(5,"span",2)(6,"span",3)),i&2&&he("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:['.mat-mdc-fab-base{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus>.mat-focus-indicator::before{content:""}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-sys-corner-large));color:var(--mat-fab-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display, block)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-sys-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-small-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-mini-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;height:var(--mdc-extended-fab-container-height, 56px);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-sys-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-sys-label-large-tracking));box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}'],encapsulation:2,changeDetection:0})}return t})(),u6=(()=>{class t extends Q6{_options=f(Kz,{optional:!0});_isFab=!0;constructor(){super(),this._options=this._options||E6,this.color=this._options.color||E6.color}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["button","mat-mini-fab",""]],hostVars:14,hostBindings:function(i,n){i&2&&(Ke("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[lt],attrs:FQA,ngContentSelectors:_k,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&($t(Fk),TA(0,"span",0),Ue(1),S(2,"span",1),Ue(3,1),N(),Ue(4,2),TA(5,"span",2)(6,"span",3)),i&2&&he("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:[_QA],encapsulation:2,changeDetection:0})}return t})();var QB=(()=>{class t extends Q6{constructor(){super(),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["button","mat-icon-button",""]],hostVars:14,hostBindings:function(i,n){i&2&&(Ke("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[lt],attrs:GQA,ngContentSelectors:KQA,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&($t(),TA(0,"span",0),Ue(1),TA(2,"span",1)(3,"span",2))},styles:['.mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:50%;flex-shrink:0;text-align:center;width:var(--mdc-icon-button-state-layer-size, 40px);height:var(--mdc-icon-button-state-layer-size, 40px);padding:calc(calc(var(--mdc-icon-button-state-layer-size, 40px) - var(--mdc-icon-button-icon-size, 24px)) / 2);font-size:var(--mdc-icon-button-icon-size, 24px);color:var(--mdc-icon-button-icon-color, var(--mat-sys-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus>.mat-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-icon-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-icon-button-touch-target-display, block)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mdc-icon-button-icon-size, 24px);height:var(--mdc-icon-button-icon-size, 24px);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button[hidden]{display:none}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',xQA],encapsulation:2,changeDetection:0})}return t})();var uB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,WI,pn]})}return t})();var Gk=class{_box;_destroyed=new qA;_resizeSubject=new qA;_resizeObserver;_elementObservables=new Map;constructor(e){this._box=e,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(A=>this._resizeSubject.next(A)))}observe(e){return this._elementObservables.has(e)||this._elementObservables.set(e,new gt(A=>{let i=this._resizeSubject.subscribe(A);return this._resizeObserver?.observe(e,{box:this._box}),()=>{this._resizeObserver?.unobserve(e),i.unsubscribe(),this._elementObservables.delete(e)}}).pipe(Nt(A=>A.some(i=>i.target===e)),h2({bufferSize:1,refCount:!0}),kt(this._destroyed))),this._elementObservables.get(e)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}},h6=(()=>{class t{_cleanupErrorListener;_observers=new Map;_ngZone=f(ye);constructor(){typeof ResizeObserver<"u"}ngOnDestroy(){for(let[,A]of this._observers)A.destroy();this._observers.clear(),this._cleanupErrorListener?.()}observe(A,i){let n=i?.box||"content-box";return this._observers.has(n)||this._observers.set(n,new Gk(n)),this._observers.get(n).observe(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var oi=function(t){return t[t.State=0]="State",t[t.Transition=1]="Transition",t[t.Sequence=2]="Sequence",t[t.Group=3]="Group",t[t.Animate=4]="Animate",t[t.Keyframes=5]="Keyframes",t[t.Style=6]="Style",t[t.Trigger=7]="Trigger",t[t.Reference=8]="Reference",t[t.AnimateChild=9]="AnimateChild",t[t.AnimateRef=10]="AnimateRef",t[t.Query=11]="Query",t[t.Stagger=12]="Stagger",t}(oi||{}),Rc="*";function nc(t,e){return{type:oi.Trigger,name:t,definitions:e,options:{}}}function Is(t,e=null){return{type:oi.Animate,styles:e,timings:t}}function Yz(t,e=null){return{type:oi.Sequence,steps:t,options:e}}function Do(t){return{type:oi.Style,styles:t,offset:null}}function $s(t,e,A){return{type:oi.State,name:t,styles:e,options:A}}function $r(t,e,A=null){return{type:oi.Transition,expr:t,animation:e,options:A}}function Kk(t=null){return{type:oi.AnimateChild,options:t}}function Uk(t,e,A=null){return{type:oi.Query,selector:t,animation:e,options:A}}var hl=class{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(e=0,A=0){this.totalTime=e+A}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(e=>e()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(e){this._position=this.totalTime?e*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(e){let A=e=="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},XI=class{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(e){this.players=e;let A=0,i=0,n=0,o=this.players.length;o==0?queueMicrotask(()=>this._onFinish()):this.players.forEach(r=>{r.onDone(()=>{++A==o&&this._onFinish()}),r.onDestroy(()=>{++i==o&&this._onDestroy()}),r.onStart(()=>{++n==o&&this._onStart()})}),this.totalTime=this.players.reduce((r,s)=>Math.max(r,s.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this.players.forEach(e=>e.init())}onStart(e){this._onStartFns.push(e)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(e=>e()),this._onStartFns=[])}onDone(e){this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(e=>e.play())}pause(){this.players.forEach(e=>e.pause())}restart(){this.players.forEach(e=>e.restart())}finish(){this._onFinish(),this.players.forEach(e=>e.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(e=>e.destroy()),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this.players.forEach(e=>e.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(e){let A=e*this.totalTime;this.players.forEach(i=>{let n=i.totalTime?Math.min(1,A/i.totalTime):1;i.setPosition(n)})}getPosition(){let e=this.players.reduce((A,i)=>A===null||i.totalTime>A.totalTime?i:A,null);return e!=null?e.getPosition():0}beforeDestroy(){this.players.forEach(e=>{e.beforeDestroy&&e.beforeDestroy()})}triggerCallback(e){let A=e=="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},hB="!";var TQA=["notch"],HQA=["matFormFieldNotchedOutline",""],OQA=["*"],zQA=["textField"],PQA=["iconPrefixContainer"],jQA=["textPrefixContainer"],qQA=["iconSuffixContainer"],VQA=["textSuffixContainer"],ZQA=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],WQA=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function XQA(t,e){t&1&&TA(0,"span",21)}function $QA(t,e){if(t&1&&(S(0,"label",20),Ue(1,1),FA(2,XQA,1,0,"span",21),N()),t&2){let A=Y(2);yA("floating",A._shouldLabelFloat())("monitorResize",A._hasOutline())("id",A._labelId),Ke("for",A._control.disableAutomaticLabeling?null:A._control.id),_(2),_A(!A.hideRequiredMarker&&A._control.required?2:-1)}}function AuA(t,e){if(t&1&&FA(0,$QA,3,5,"label",20),t&2){let A=Y();_A(A._hasFloatingLabel()?0:-1)}}function euA(t,e){t&1&&TA(0,"div",7)}function tuA(t,e){}function iuA(t,e){if(t&1&&FA(0,tuA,0,0,"ng-template",13),t&2){Y(2);let A=Cr(1);yA("ngTemplateOutlet",A)}}function nuA(t,e){if(t&1&&(S(0,"div",9),FA(1,iuA,1,1,null,13),N()),t&2){let A=Y();yA("matFormFieldNotchedOutlineOpen",A._shouldLabelFloat()),_(),_A(A._forceDisplayInfixLabel()?-1:1)}}function ouA(t,e){t&1&&(S(0,"div",10,2),Ue(2,2),N())}function ruA(t,e){t&1&&(S(0,"div",11,3),Ue(2,3),N())}function suA(t,e){}function auA(t,e){if(t&1&&FA(0,suA,0,0,"ng-template",13),t&2){Y();let A=Cr(1);yA("ngTemplateOutlet",A)}}function cuA(t,e){t&1&&(S(0,"div",14,4),Ue(2,4),N())}function guA(t,e){t&1&&(S(0,"div",15,5),Ue(2,5),N())}function luA(t,e){t&1&&TA(0,"div",16)}function IuA(t,e){if(t&1&&(S(0,"div",18),Ue(1,6),N()),t&2){let A=Y();yA("@transitionMessages",A._subscriptAnimationState)}}function CuA(t,e){if(t&1&&(S(0,"mat-hint",22),AA(1),N()),t&2){let A=Y(2);yA("id",A._hintLabelId),_(),tt(A.hintLabel)}}function duA(t,e){if(t&1&&(S(0,"div",19),FA(1,CuA,2,2,"mat-hint",22),Ue(2,7),TA(3,"div",23),Ue(4,8),N()),t&2){let A=Y();yA("@transitionMessages",A._subscriptAnimationState),_(),_A(A.hintLabel?1:-1)}}var m6=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["mat-label"]]})}return t})(),BuA=new eA("MatError");var Tz=(()=>{class t{align="start";id=f(an).getId("mat-mdc-hint-");static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,n){i&2&&(Qa("id",n.id),Ke("align",null),he("mat-mdc-form-field-hint-end",n.align==="end"))},inputs:{align:"align",id:"id"}})}return t})(),EuA=new eA("MatPrefix");var Vz=new eA("MatSuffix"),Zz=(()=>{class t{set _isTextSelector(A){this._isText=!0}_isText=!1;static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matSuffix",""],["","matIconSuffix",""],["","matTextSuffix",""]],inputs:{_isTextSelector:[0,"matTextSuffix","_isTextSelector"]},features:[ut([{provide:Vz,useExisting:t}])]})}return t})(),Wz=new eA("FloatingLabelParent"),Hz=(()=>{class t{_elementRef=f(se);get floating(){return this._floating}set floating(A){this._floating=A,this.monitorResize&&this._handleResize()}_floating=!1;get monitorResize(){return this._monitorResize}set monitorResize(A){this._monitorResize=A,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}_monitorResize=!1;_resizeObserver=f(h6);_ngZone=f(ye);_parent=f(Wz);_resizeSubscription=new Kt;constructor(){}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return QuA(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,n){i&2&&he("mdc-floating-label--float-above",n.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return t})();function QuA(t){let e=t;if(e.offsetParent!==null)return e.scrollWidth;let A=e.cloneNode(!0);A.style.setProperty("position","absolute"),A.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(A);let i=A.scrollWidth;return A.remove(),i}var Oz="mdc-line-ripple--active",f6="mdc-line-ripple--deactivating",zz=(()=>{class t{_elementRef=f(se);_cleanupTransitionEnd;constructor(){let A=f(ye),i=f(qi);A.runOutsideAngular(()=>{this._cleanupTransitionEnd=i.listen(this._elementRef.nativeElement,"transitionend",this._handleTransitionEnd)})}activate(){let A=this._elementRef.nativeElement.classList;A.remove(f6),A.add(Oz)}deactivate(){this._elementRef.nativeElement.classList.add(f6)}_handleTransitionEnd=A=>{let i=this._elementRef.nativeElement.classList,n=i.contains(f6);A.propertyName==="opacity"&&n&&i.remove(Oz,f6)};ngOnDestroy(){this._cleanupTransitionEnd()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return t})(),Pz=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);open=!1;_notch;constructor(){}ngAfterViewInit(){let A=this._elementRef.nativeElement.querySelector(".mdc-floating-label");A?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),typeof requestAnimationFrame=="function"&&(A.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>A.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(A){!this.open||!A?this._notch.nativeElement.style.width="":this._notch.nativeElement.style.width=`calc(${A}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,n){if(i&1&&st(TQA,5),i&2){let o;de(o=Be())&&(n._notch=o.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,n){i&2&&he("mdc-notched-outline--notched",n.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},attrs:HQA,ngContentSelectors:OQA,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,n){i&1&&($t(),TA(0,"div",1),S(1,"div",2,0),Ue(3),N(),TA(4,"div",3))},encapsulation:2,changeDetection:0})}return t})(),uuA={transitionMessages:nc("transitionMessages",[$s("enter",Do({opacity:1,transform:"translateY(0%)"})),$r("void => enter",[Do({opacity:0,transform:"translateY(-5px)"}),Is("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},gh=(()=>{class t{value;stateChanges;id;placeholder;ngControl;focused;empty;shouldLabelFloat;required;disabled;errorState;controlType;autofilled;userAriaDescribedBy;disableAutomaticLabeling;static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t})}return t})();var lh=new eA("MatFormField"),huA=new eA("MAT_FORM_FIELD_DEFAULT_OPTIONS"),jz="fill",fuA="auto",qz="fixed",muA="translateY(-50%)",fl=(()=>{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_dir=f(po);_platform=f(ni);_idGenerator=f(an);_defaults=f(huA,{optional:!0});_animationMode=f(_i,{optional:!0});_textField;_iconPrefixContainer;_textPrefixContainer;_iconSuffixContainer;_textSuffixContainer;_floatingLabel;_notchedOutline;_lineRipple;_formFieldControl;_prefixChildren;_suffixChildren;_errorChildren;_hintChildren;_labelChild=bH(m6);get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(A){this._hideRequiredMarker=Ar(A)}_hideRequiredMarker=!1;color="primary";get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||fuA}set floatLabel(A){A!==this._floatLabel&&(this._floatLabel=A,this._changeDetectorRef.markForCheck())}_floatLabel;get appearance(){return this._appearance}set appearance(A){let i=this._appearance,n=A||this._defaults?.appearance||jz;this._appearance=n,this._appearance==="outline"&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdate=!0)}_appearance=jz;get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||qz}set subscriptSizing(A){this._subscriptSizing=A||this._defaults?.subscriptSizing||qz}_subscriptSizing=null;get hintLabel(){return this._hintLabel}set hintLabel(A){this._hintLabel=A,this._processHints()}_hintLabel="";_hasIconPrefix=!1;_hasTextPrefix=!1;_hasIconSuffix=!1;_hasTextSuffix=!1;_labelId=this._idGenerator.getId("mat-mdc-form-field-label-");_hintLabelId=this._idGenerator.getId("mat-mdc-hint-");_subscriptAnimationState="";get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(A){this._explicitFormFieldControl=A}_destroyed=new qA;_isFocused=null;_explicitFormFieldControl;_needsOutlineLabelOffsetUpdate=!1;_previousControl=null;_stateChanges;_valueChanges;_describedByChanges;_injector=f(Zt);constructor(){let A=this._defaults;A&&(A.appearance&&(this.appearance=A.appearance),this._hideRequiredMarker=!!A?.hideRequiredMarker,A.color&&(this.color=A.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._previousControl=this._control)}ngOnDestroy(){this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._describedByChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getLabelId=Mc(()=>this._hasFloatingLabel()?this._labelId:null);getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(A){let i=this._control,n="mat-mdc-form-field-type-";A&&this._elementRef.nativeElement.classList.remove(n+A.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(n+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._changeDetectorRef.markForCheck()}),this._describedByChanges?.unsubscribe(),this._describedByChanges=i.stateChanges.pipe(On([void 0,void 0]),je(()=>[i.errorState,i.userAriaDescribedBy]),Cm(),Nt(([[o,r],[s,a]])=>o!==s||r!==a)).subscribe(()=>this._syncDescribedByIds()),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(kt(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck()))}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(A=>!A._isText),this._hasTextPrefix=!!this._prefixChildren.find(A=>A._isText),this._hasIconSuffix=!!this._suffixChildren.find(A=>!A._isText),this._hasTextSuffix=!!this._suffixChildren.find(A=>A._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),Hn(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){this._control}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||this._isFocused===null)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0),ku(()=>{this._needsOutlineLabelOffsetUpdate&&(this._needsOutlineLabelOffsetUpdate=!1,this._updateOutlineLabelOffset())},{injector:this._injector}),this._dir.change.pipe(kt(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0)}_shouldAlwaysFloat(){return this.floatLabel==="always"}_hasOutline(){return this.appearance==="outline"}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel=Mc(()=>!!this._labelChild());_shouldLabelFloat(){return this._hasFloatingLabel()?this._control.shouldLabelFloat||this._shouldAlwaysFloat():!1}_shouldForward(A){let i=this._control?this._control.ngControl:null;return i&&i[A]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){!this._hasOutline()||!this._floatingLabel||!this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(0):this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth())}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){this._hintChildren}_syncDescribedByIds(){if(this._control){let A=[];if(this._control.userAriaDescribedBy&&typeof this._control.userAriaDescribedBy=="string"&&A.push(...this._control.userAriaDescribedBy.split(" ")),this._getDisplayedMessages()==="hint"){let i=this._hintChildren?this._hintChildren.find(o=>o.align==="start"):null,n=this._hintChildren?this._hintChildren.find(o=>o.align==="end"):null;i?A.push(i.id):this._hintLabel&&A.push(this._hintLabelId),n&&A.push(n.id)}else this._errorChildren&&A.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(A)}}_updateOutlineLabelOffset(){if(!this._hasOutline()||!this._floatingLabel)return;let A=this._floatingLabel.element;if(!(this._iconPrefixContainer||this._textPrefixContainer)){A.style.transform="";return}if(!this._isAttachedToDom()){this._needsOutlineLabelOffsetUpdate=!0;return}let i=this._iconPrefixContainer?.nativeElement,n=this._textPrefixContainer?.nativeElement,o=this._iconSuffixContainer?.nativeElement,r=this._textSuffixContainer?.nativeElement,s=i?.getBoundingClientRect().width??0,a=n?.getBoundingClientRect().width??0,c=o?.getBoundingClientRect().width??0,g=r?.getBoundingClientRect().width??0,I=this._dir.value==="rtl"?"-1":"1",C=`${s+a}px`,B=`calc(${I} * (${C} + var(--mat-mdc-form-field-label-offset-x, 0px)))`;A.style.transform=`var( + --mat-mdc-form-field-label-transform, + ${muA} translateX(${B}) + )`;let E=s+a+c+g;this._elementRef.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${E}px)`)}_isAttachedToDom(){let A=this._elementRef.nativeElement;if(A.getRootNode){let i=A.getRootNode();return i&&i!==A}return document.documentElement.contains(A)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-form-field"]],contentQueries:function(i,n,o){if(i&1&&(ZH(o,n._labelChild,m6,5),gi(o,gh,5),gi(o,EuA,5),gi(o,Vz,5),gi(o,BuA,5),gi(o,Tz,5)),i&2){yc();let r;de(r=Be())&&(n._formFieldControl=r.first),de(r=Be())&&(n._prefixChildren=r),de(r=Be())&&(n._suffixChildren=r),de(r=Be())&&(n._errorChildren=r),de(r=Be())&&(n._hintChildren=r)}},viewQuery:function(i,n){if(i&1&&(st(zQA,5),st(PQA,5),st(jQA,5),st(qQA,5),st(VQA,5),st(Hz,5),st(Pz,5),st(zz,5)),i&2){let o;de(o=Be())&&(n._textField=o.first),de(o=Be())&&(n._iconPrefixContainer=o.first),de(o=Be())&&(n._textPrefixContainer=o.first),de(o=Be())&&(n._iconSuffixContainer=o.first),de(o=Be())&&(n._textSuffixContainer=o.first),de(o=Be())&&(n._floatingLabel=o.first),de(o=Be())&&(n._notchedOutline=o.first),de(o=Be())&&(n._lineRipple=o.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,n){i&2&&he("mat-mdc-form-field-label-always-float",n._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",n._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",n._hasIconSuffix)("mat-form-field-invalid",n._control.errorState)("mat-form-field-disabled",n._control.disabled)("mat-form-field-autofilled",n._control.autofilled)("mat-form-field-no-animations",n._animationMode==="NoopAnimations")("mat-form-field-appearance-fill",n.appearance=="fill")("mat-form-field-appearance-outline",n.appearance=="outline")("mat-form-field-hide-placeholder",n._hasFloatingLabel()&&!n._shouldLabelFloat())("mat-focused",n._control.focused)("mat-primary",n.color!=="accent"&&n.color!=="warn")("mat-accent",n.color==="accent")("mat-warn",n.color==="warn")("ng-untouched",n._shouldForward("untouched"))("ng-touched",n._shouldForward("touched"))("ng-pristine",n._shouldForward("pristine"))("ng-dirty",n._shouldForward("dirty"))("ng-valid",n._shouldForward("valid"))("ng-invalid",n._shouldForward("invalid"))("ng-pending",n._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[ut([{provide:lh,useExisting:t},{provide:Wz,useExisting:t}])],ngContentSelectors:WQA,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,n){if(i&1){let o=me();$t(ZQA),FA(0,AuA,1,1,"ng-template",null,0,Gu),S(2,"div",6,1),mA("click",function(s){return QA(o),uA(n._control.onContainerClick(s))}),FA(4,euA,1,0,"div",7),S(5,"div",8),FA(6,nuA,2,2,"div",9)(7,ouA,3,0,"div",10)(8,ruA,3,0,"div",11),S(9,"div",12),FA(10,auA,1,1,null,13),Ue(11),N(),FA(12,cuA,3,0,"div",14)(13,guA,3,0,"div",15),N(),FA(14,luA,1,0,"div",16),N(),S(15,"div",17),FA(16,IuA,2,1,"div",18)(17,duA,5,2,"div",19),N()}if(i&2){let o;_(2),he("mdc-text-field--filled",!n._hasOutline())("mdc-text-field--outlined",n._hasOutline())("mdc-text-field--no-label",!n._hasFloatingLabel())("mdc-text-field--disabled",n._control.disabled)("mdc-text-field--invalid",n._control.errorState),_(2),_A(!n._hasOutline()&&!n._control.disabled?4:-1),_(2),_A(n._hasOutline()?6:-1),_(),_A(n._hasIconPrefix?7:-1),_(),_A(n._hasTextPrefix?8:-1),_(2),_A(!n._hasOutline()||n._forceDisplayInfixLabel()?10:-1),_(2),_A(n._hasTextSuffix?12:-1),_(),_A(n._hasIconSuffix?13:-1),_(),_A(n._hasOutline()?-1:14),_(),he("mat-mdc-form-field-subscript-dynamic-size",n.subscriptSizing==="dynamic"),_(),_A((o=n._getDisplayedMessages())==="error"?16:o==="hint"?17:-1)}},dependencies:[Hz,Pz,Hu,zz,Tz],styles:['.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-moz-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-webkit-input-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive:-ms-input-placeholder{opacity:0}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-filled-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-outlined-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color, var(--mat-sys-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 4%, transparent))}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)));padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px);padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}@media(forced-colors: active){.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-filled-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-filled-text-field-hover-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-filled-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-filled-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-filled-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-filled-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-filled-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-filled-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-outlined-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-outlined-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-outlined-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-outlined-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-outlined-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-outlined-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-outline-color, var(--mat-sys-outline));border-width:var(--mdc-outlined-text-field-outline-width, 1px)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-hover-outline-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-focus-outline-color, var(--mat-sys-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-hover-outline-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-focus-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mdc-outlined-text-field-focus-outline-width, 2px)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),100% - max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))*2)}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none;--mat-form-field-notch-max-width: 100%}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1;border-bottom-width:var(--mdc-filled-text-field-active-indicator-height, 1px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color, var(--mat-sys-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color, var(--mat-sys-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height, 2px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color, var(--mat-sys-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color, var(--mat-sys-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height, 56px);padding-top:var(--mat-form-field-filled-with-label-container-padding-top, 24px);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom, 8px)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding, 16px);padding-bottom:var(--mat-form-field-container-vertical-padding, 16px)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height, 56px)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height, 56px) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color, var(--mat-sys-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-sys-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-sys-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-sys-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity, 0)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color, var(--mat-sys-neutral10))}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color, color-mix(in srgb, var(--mat-sys-neutral10) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-sys-on-surface-variant))}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}@media(forced-colors: active){.mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}}@media(forced-colors: active){.mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-sys-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-sys-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-sys-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-sys-error))}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field-infix:has(textarea[cols]){width:auto}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[uuA.transitionMessages]},changeDetection:0})}return t})(),U2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,rh,pn]})}return t})();var $z=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-text-field-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:["textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}"],encapsulation:2,changeDetection:0})}return t})(),Xz=Sc({passive:!0}),AP=(()=>{class t{_platform=f(ni);_ngZone=f(ye);_styleLoader=f(Pn);_monitoredElements=new Map;constructor(){}monitor(A){if(!this._platform.isBrowser)return lr;this._styleLoader.load($z);let i=fa(A),n=this._monitoredElements.get(i);if(n)return n.subject;let o=new qA,r="cdk-text-field-autofilled",s=a=>{a.animationName==="cdk-text-field-autofill-start"&&!i.classList.contains(r)?(i.classList.add(r),this._ngZone.run(()=>o.next({target:a.target,isAutofilled:!0}))):a.animationName==="cdk-text-field-autofill-end"&&i.classList.contains(r)&&(i.classList.remove(r),this._ngZone.run(()=>o.next({target:a.target,isAutofilled:!1})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",s,Xz),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:o,unlisten:()=>{i.removeEventListener("animationstart",s,Xz)}}),o}stopMonitoring(A){let i=fa(A),n=this._monitoredElements.get(i);n&&(n.unlisten(),n.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((A,i)=>this.stopMonitoring(i))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var eP=(()=>{class t{_elementRef=f(se);_platform=f(ni);_ngZone=f(ye);_renderer=f(qi);_resizeEvents=new qA;_previousValue;_initialHeight;_destroyed=new qA;_listenerCleanups;_minRows;_maxRows;_enabled=!0;_previousMinRows=-1;_textareaElement;get minRows(){return this._minRows}set minRows(A){this._minRows=Zs(A),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(A){this._maxRows=Zs(A),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(A){this._enabled!==A&&((this._enabled=A)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(A){this._cachedPlaceholderHeight=void 0,A?this._textareaElement.setAttribute("placeholder",A):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}_cachedLineHeight;_cachedPlaceholderHeight;_document=f(at,{optional:!0});_hasFocus;_isViewInited=!1;constructor(){f(Pn).load($z),this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){let A=this.minRows&&this._cachedLineHeight?`${this.minRows*this._cachedLineHeight}px`:null;A&&(this._textareaElement.style.minHeight=A)}_setMaxHeight(){let A=this.maxRows&&this._cachedLineHeight?`${this.maxRows*this._cachedLineHeight}px`:null;A&&(this._textareaElement.style.maxHeight=A)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{this._listenerCleanups=[this._renderer.listen("window","resize",()=>this._resizeEvents.next()),this._renderer.listen(this._textareaElement,"focus",this._handleFocusEvent),this._renderer.listen(this._textareaElement,"blur",this._handleFocusEvent)],this._resizeEvents.pipe(Dd(16)).subscribe(()=>{this._cachedLineHeight=this._cachedPlaceholderHeight=void 0,this.resizeToFitContent(!0)})}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._listenerCleanups?.forEach(A=>A()),this._resizeEvents.complete(),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let A=this._textareaElement.cloneNode(!1),i=A.style;A.rows=1,i.position="absolute",i.visibility="hidden",i.border="none",i.padding="0",i.height="",i.minHeight="",i.maxHeight="",i.top=i.bottom=i.left=i.right="auto",i.overflow="hidden",this._textareaElement.parentNode.appendChild(A),this._cachedLineHeight=A.clientHeight,A.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){let A=this._textareaElement,i=A.style.marginBottom||"",n=this._platform.FIREFOX,o=n&&this._hasFocus,r=n?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";o&&(A.style.marginBottom=`${A.clientHeight}px`),A.classList.add(r);let s=A.scrollHeight-4;return A.classList.remove(r),o&&(A.style.marginBottom=i),s}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||this._cachedPlaceholderHeight!=null)return;if(!this.placeholder){this._cachedPlaceholderHeight=0;return}let A=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=A}_handleFocusEvent=A=>{this._hasFocus=A.type==="focus"};ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(A=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight))return;let i=this._elementRef.nativeElement,n=i.value;if(!A&&this._minRows===this._previousMinRows&&n===this._previousValue)return;let o=this._measureScrollHeight(),r=Math.max(o,this._cachedPlaceholderHeight||0);i.style.height=`${r}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=n,this._previousMinRows=this._minRows}reset(){this._initialHeight!==void 0&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_scrollToCaretPosition(A){let{selectionStart:i,selectionEnd:n}=A;!this._destroyed.isStopped&&this._hasFocus&&A.setSelectionRange(i,n)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,n){i&1&&mA("input",function(){return n._noopInputHandler()})},inputs:{minRows:[0,"cdkAutosizeMinRows","minRows"],maxRows:[0,"cdkAutosizeMaxRows","maxRows"],enabled:[2,"cdkTextareaAutosize","enabled",ge],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"]})}return t})(),p6=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();var wuA=new eA("MAT_INPUT_VALUE_ACCESSOR"),yuA=["button","checkbox","file","hidden","image","radio","range","reset","submit"],vuA=new eA("MAT_INPUT_CONFIG"),J2=(()=>{class t{_elementRef=f(se);_platform=f(ni);ngControl=f(ec,{optional:!0,self:!0});_autofillMonitor=f(AP);_ngZone=f(ye);_formField=f(lh,{optional:!0});_renderer=f(qi);_uid=f(an).getId("mat-input-");_previousNativeValue;_inputValueAccessor;_signalBasedValueAccessor;_previousPlaceholder;_errorStateTracker;_config=f(vuA,{optional:!0});_cleanupIosKeyup;_cleanupWebkitWheel;_formFieldDescribedBy;_isServer;_isNativeSelect;_isTextarea;_isInFormField;focused=!1;stateChanges=new qA;controlType="mat-input";autofilled=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=Ar(A),this.focused&&(this.focused=!1,this.stateChanges.next())}_disabled=!1;get id(){return this._id}set id(A){this._id=A||this._uid}_id;placeholder;name;get required(){return this._required??this.ngControl?.control?.hasValidator(Ac.required)??!1}set required(A){this._required=Ar(A)}_required;get type(){return this._type}set type(A){let i=this._type;this._type=A||"text",this._validateType(),!this._isTextarea&&Ck().has(this._type)&&(this._elementRef.nativeElement.type=this._type),this._type!==i&&this._ensureWheelDefaultBehavior()}_type="text";get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(A){this._errorStateTracker.matcher=A}userAriaDescribedBy;get value(){return this._signalBasedValueAccessor?this._signalBasedValueAccessor.value():this._inputValueAccessor.value}set value(A){A!==this.value&&(this._signalBasedValueAccessor?this._signalBasedValueAccessor.value.set(A):this._inputValueAccessor.value=A,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(A){this._readonly=Ar(A)}_readonly=!1;disabledInteractive;get errorState(){return this._errorStateTracker.errorState}set errorState(A){this._errorStateTracker.errorState=A}_neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(A=>Ck().has(A));constructor(){let A=f(ih,{optional:!0}),i=f(YI,{optional:!0}),n=f(d6),o=f(wuA,{optional:!0,self:!0}),r=this._elementRef.nativeElement,s=r.nodeName.toLowerCase();o?v2(o.value)?this._signalBasedValueAccessor=o:this._inputValueAccessor=o:this._inputValueAccessor=r,this._previousNativeValue=this.value,this.id=this.id,this._platform.IOS&&this._ngZone.runOutsideAngular(()=>{this._cleanupIosKeyup=this._renderer.listen(r,"keyup",this._iOSKeyupListener)}),this._errorStateTracker=new BB(n,this.ngControl,i,A,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect=s==="select",this._isTextarea=s==="textarea",this._isInFormField=!!this._formField,this.disabledInteractive=this._config?.disabledInteractive||!1,this._isNativeSelect&&(this.controlType=r.multiple?"mat-native-select-multiple":"mat-native-select"),this._signalBasedValueAccessor&&Ku(()=>{this._signalBasedValueAccessor.value(),this.stateChanges.next()})}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(A=>{this.autofilled=A.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._cleanupIosKeyup?.(),this._cleanupWebkitWheel?.()}ngDoCheck(){this.ngControl&&(this.updateErrorState(),this.ngControl.disabled!==null&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(A){this._elementRef.nativeElement.focus(A)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(A){if(A!==this.focused){if(!this._isNativeSelect&&A&&this.disabled&&this.disabledInteractive){let i=this._elementRef.nativeElement;i.type==="number"?(i.type="text",i.setSelectionRange(0,0),i.type="number"):i.setSelectionRange(0,0)}this.focused=A,this.stateChanges.next()}}_onInput(){}_dirtyCheckNativeValue(){let A=this._elementRef.nativeElement.value;this._previousNativeValue!==A&&(this._previousNativeValue=A,this.stateChanges.next())}_dirtyCheckPlaceholder(){let A=this._getPlaceholder();if(A!==this._previousPlaceholder){let i=this._elementRef.nativeElement;this._previousPlaceholder=A,A?i.setAttribute("placeholder",A):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){yuA.indexOf(this._type)>-1}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let A=this._elementRef.nativeElement.validity;return A&&A.badInput}get empty(){return!this._isNeverEmpty()&&!this._elementRef.nativeElement.value&&!this._isBadInput()&&!this.autofilled}get shouldLabelFloat(){if(this._isNativeSelect){let A=this._elementRef.nativeElement,i=A.options[0];return this.focused||A.multiple||!this.empty||!!(A.selectedIndex>-1&&i&&i.label)}else return this.focused&&!this.disabled||!this.empty}setDescribedByIds(A){let i=this._elementRef.nativeElement,n=i.getAttribute("aria-describedby"),o;if(n){let r=this._formFieldDescribedBy||A;o=A.concat(n.split(" ").filter(s=>s&&!r.includes(s)))}else o=A;this._formFieldDescribedBy=A,o.length?i.setAttribute("aria-describedby",o.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){let A=this._elementRef.nativeElement;return this._isNativeSelect&&(A.multiple||A.size>1)}_iOSKeyupListener=A=>{let i=A.target;!i.value&&i.selectionStart===0&&i.selectionEnd===0&&(i.setSelectionRange(1,1),i.setSelectionRange(0,0))};_webkitBlinkWheelListener=()=>{};_ensureWheelDefaultBehavior(){this._cleanupWebkitWheel?.(),this._type==="number"&&(this._platform.BLINK||this._platform.WEBKIT)&&(this._cleanupWebkitWheel=this._renderer.listen(this._elementRef.nativeElement,"wheel",this._webkitBlinkWheelListener))}_getReadonlyAttribute(){return this._isNativeSelect?null:this.readonly||this.disabled&&this.disabledInteractive?"true":null}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:21,hostBindings:function(i,n){i&1&&mA("focus",function(){return n._focusChanged(!0)})("blur",function(){return n._focusChanged(!1)})("input",function(){return n._onInput()}),i&2&&(Qa("id",n.id)("disabled",n.disabled&&!n.disabledInteractive)("required",n.required),Ke("name",n.name||null)("readonly",n._getReadonlyAttribute())("aria-disabled",n.disabled&&n.disabledInteractive?"true":null)("aria-invalid",n.empty&&n.required?null:n.errorState)("aria-required",n.required)("id",n.id),he("mat-input-server",n._isServer)("mat-mdc-form-field-textarea-control",n._isInFormField&&n._isTextarea)("mat-mdc-form-field-input-control",n._isInFormField)("mat-mdc-input-disabled-interactive",n.disabledInteractive)("mdc-text-field__input",n._isInFormField)("mat-mdc-native-select-inline",n._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly",disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge]},exportAs:["matInput"],features:[ut([{provide:gh,useExisting:t}]),Xt]})}return t})(),D6=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,U2,U2,p6,pn]})}return t})();var v6=new eA(""),Hk=(()=>{class t{_zone;_plugins;_eventNameToPlugin=new Map;constructor(A,i){this._zone=i,A.forEach(n=>{n.manager=this}),this._plugins=A.slice().reverse()}addEventListener(A,i,n,o){return this._findPluginFor(i).addEventListener(A,i,n,o)}getZone(){return this._zone}_findPluginFor(A){let i=this._eventNameToPlugin.get(A);if(i)return i;if(i=this._plugins.find(o=>o.supports(A)),!i)throw new te(5101,!1);return this._eventNameToPlugin.set(A,i),i}static \u0275fac=function(i){return new(i||t)(be(v6),be(ye))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),Ih=class{_doc;constructor(e){this._doc=e}manager},w6="ng-app-id";function tP(t){for(let e of t)e.remove()}function iP(t,e){let A=e.createElement("style");return A.textContent=t,A}function buA(t,e,A,i){let n=t.head?.querySelectorAll(`style[${w6}="${e}"],link[${w6}="${e}"]`);if(n)for(let o of n)o.removeAttribute(w6),o instanceof HTMLLinkElement?i.set(o.href.slice(o.href.lastIndexOf("/")+1),{usage:0,elements:[o]}):o.textContent&&A.set(o.textContent,{usage:0,elements:[o]})}function Yk(t,e){let A=e.createElement("link");return A.setAttribute("rel","stylesheet"),A.setAttribute("href",t),A}var Ok=(()=>{class t{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;isServer;constructor(A,i,n,o={}){this.doc=A,this.appId=i,this.nonce=n,this.isServer=Np(o),buA(A,i,this.inline,this.external),this.hosts.add(A.head)}addStyles(A,i){for(let n of A)this.addUsage(n,this.inline,iP);i?.forEach(n=>this.addUsage(n,this.external,Yk))}removeStyles(A,i){for(let n of A)this.removeUsage(n,this.inline);i?.forEach(n=>this.removeUsage(n,this.external))}addUsage(A,i,n){let o=i.get(A);o?o.usage++:i.set(A,{usage:1,elements:[...this.hosts].map(r=>this.addElement(r,n(A,this.doc)))})}removeUsage(A,i){let n=i.get(A);n&&(n.usage--,n.usage<=0&&(tP(n.elements),i.delete(A)))}ngOnDestroy(){for(let[,{elements:A}]of[...this.inline,...this.external])tP(A);this.hosts.clear()}addHost(A){this.hosts.add(A);for(let[i,{elements:n}]of this.inline)n.push(this.addElement(A,iP(i,this.doc)));for(let[i,{elements:n}]of this.external)n.push(this.addElement(A,Yk(i,this.doc)))}removeHost(A){this.hosts.delete(A)}addElement(A,i){return this.nonce&&i.setAttribute("nonce",this.nonce),this.isServer&&i.setAttribute(w6,this.appId),A.appendChild(i)}static \u0275fac=function(i){return new(i||t)(be(at),be(Vd),be(bu,8),be(El))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),Jk={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},zk=/%COMP%/g;var oP="%COMP%",kuA=`_nghost-${oP}`,SuA=`_ngcontent-${oP}`,RuA=!0,LuA=new eA("",{providedIn:"root",factory:()=>RuA});function xuA(t){return SuA.replace(zk,t)}function NuA(t){return kuA.replace(zk,t)}function rP(t,e){return e.map(A=>A.replace(zk,t))}var Bh=(()=>{class t{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;platformId;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;platformIsServer;constructor(A,i,n,o,r,s,a,c=null,g=null){this.eventManager=A,this.sharedStylesHost=i,this.appId=n,this.removeStylesOnCompDestroy=o,this.doc=r,this.platformId=s,this.ngZone=a,this.nonce=c,this.tracingService=g,this.platformIsServer=Np(s),this.defaultRenderer=new Ch(A,r,a,this.platformIsServer,this.tracingService)}createRenderer(A,i){if(!A||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===gl.ShadowDom&&(i=Fe(sA({},i),{encapsulation:gl.Emulated}));let n=this.getOrCreateRenderer(A,i);return n instanceof y6?n.applyToHost(A):n instanceof dh&&n.applyStyles(),n}getOrCreateRenderer(A,i){let n=this.rendererByCompId,o=n.get(i.id);if(!o){let r=this.doc,s=this.ngZone,a=this.eventManager,c=this.sharedStylesHost,g=this.removeStylesOnCompDestroy,I=this.platformIsServer,C=this.tracingService;switch(i.encapsulation){case gl.Emulated:o=new y6(a,c,i,this.appId,g,r,s,I,C);break;case gl.ShadowDom:return new Tk(a,c,A,i,r,s,this.nonce,I,C);default:o=new dh(a,c,i,g,r,s,I,C);break}n.set(i.id,o)}return o}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(A){this.rendererByCompId.delete(A)}static \u0275fac=function(i){return new(i||t)(be(Hk),be(Ok),be(Vd),be(LuA),be(at),be(El),be(ye),be(bu),be(Zd,8))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),Ch=class{eventManager;doc;ngZone;platformIsServer;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(e,A,i,n,o){this.eventManager=e,this.doc=A,this.ngZone=i,this.platformIsServer=n,this.tracingService=o}destroy(){}destroyNode=null;createElement(e,A){return A?this.doc.createElementNS(Jk[A]||A,e):this.doc.createElement(e)}createComment(e){return this.doc.createComment(e)}createText(e){return this.doc.createTextNode(e)}appendChild(e,A){(nP(e)?e.content:e).appendChild(A)}insertBefore(e,A,i){e&&(nP(e)?e.content:e).insertBefore(A,i)}removeChild(e,A){A.remove()}selectRootElement(e,A){let i=typeof e=="string"?this.doc.querySelector(e):e;if(!i)throw new te(-5104,!1);return A||(i.textContent=""),i}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,A,i,n){if(n){A=n+":"+A;let o=Jk[n];o?e.setAttributeNS(o,A,i):e.setAttribute(A,i)}else e.setAttribute(A,i)}removeAttribute(e,A,i){if(i){let n=Jk[i];n?e.removeAttributeNS(n,A):e.removeAttribute(`${i}:${A}`)}else e.removeAttribute(A)}addClass(e,A){e.classList.add(A)}removeClass(e,A){e.classList.remove(A)}setStyle(e,A,i,n){n&(ll.DashCase|ll.Important)?e.style.setProperty(A,i,n&ll.Important?"important":""):e.style[A]=i}removeStyle(e,A,i){i&ll.DashCase?e.style.removeProperty(A):e.style[A]=""}setProperty(e,A,i){e!=null&&(e[A]=i)}setValue(e,A){e.nodeValue=A}listen(e,A,i,n){if(typeof e=="string"&&(e=$a().getGlobalEventTarget(this.doc,e),!e))throw new te(5102,!1);let o=this.decoratePreventDefault(i);return this.tracingService?.wrapEventListener&&(o=this.tracingService.wrapEventListener(e,A,o)),this.eventManager.addEventListener(e,A,o,n)}decoratePreventDefault(e){return A=>{if(A==="__ngUnwrap__")return e;(this.platformIsServer?this.ngZone.runGuarded(()=>e(A)):e(A))===!1&&A.preventDefault()}}};function nP(t){return t.tagName==="TEMPLATE"&&t.content!==void 0}var Tk=class extends Ch{sharedStylesHost;hostEl;shadowRoot;constructor(e,A,i,n,o,r,s,a,c){super(e,o,r,a,c),this.sharedStylesHost=A,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);let g=n.styles;g=rP(n.id,g);for(let C of g){let d=document.createElement("style");s&&d.setAttribute("nonce",s),d.textContent=C,this.shadowRoot.appendChild(d)}let I=n.getExternalStyles?.();if(I)for(let C of I){let d=Yk(C,o);s&&d.setAttribute("nonce",s),this.shadowRoot.appendChild(d)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}appendChild(e,A){return super.appendChild(this.nodeOrShadowRoot(e),A)}insertBefore(e,A,i){return super.insertBefore(this.nodeOrShadowRoot(e),A,i)}removeChild(e,A){return super.removeChild(null,A)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}},dh=class extends Ch{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(e,A,i,n,o,r,s,a,c){super(e,o,r,s,a),this.sharedStylesHost=A,this.removeStylesOnCompDestroy=n;let g=i.styles;this.styles=c?rP(c,g):g,this.styleUrls=i.getExternalStyles?.(c)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},y6=class extends dh{contentAttr;hostAttr;constructor(e,A,i,n,o,r,s,a,c){let g=n+"-"+i.id;super(e,A,i,o,r,s,a,c,g),this.contentAttr=xuA(g),this.hostAttr=NuA(g)}applyToHost(e){this.applyStyles(),this.setAttribute(e,this.hostAttr,"")}createElement(e,A){let i=super.createElement(e,A);return super.setAttribute(i,this.contentAttr,""),i}};var M6=class t extends Uu{supportsDOMEvents=!0;static makeCurrent(){Fb(new t)}onAndCancel(e,A,i,n){return e.addEventListener(A,i,n),()=>{e.removeEventListener(A,i,n)}}dispatchEvent(e,A){e.dispatchEvent(A)}remove(e){e.remove()}createElement(e,A){return A=A||this.getDefaultDocument(),A.createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,A){return A==="window"?window:A==="document"?e:A==="body"?e.body:null}getBaseHref(e){let A=FuA();return A==null?null:_uA(A)}resetBaseElement(){Eh=null}getUserAgent(){return window.navigator.userAgent}getCookie(e){return zu(document.cookie,e)}},Eh=null;function FuA(){return Eh=Eh||document.head.querySelector("base"),Eh?Eh.getAttribute("href"):null}function _uA(t){return new URL(t,document.baseURI).pathname}var b6=class{addToWindow(e){Pa.getAngularTestability=(i,n=!0)=>{let o=e.findTestabilityInTree(i,n);if(o==null)throw new te(5103,!1);return o},Pa.getAllAngularTestabilities=()=>e.getAllTestabilities(),Pa.getAllAngularRootElements=()=>e.getAllRootElements();let A=i=>{let n=Pa.getAllAngularTestabilities(),o=n.length,r=function(){o--,o==0&&i()};n.forEach(s=>{s.whenStable(r)})};Pa.frameworkStabilizers||(Pa.frameworkStabilizers=[]),Pa.frameworkStabilizers.push(A)}findTestabilityInTree(e,A,i){if(A==null)return null;let n=e.getTestability(A);return n??(i?$a().isShadowRoot(A)?this.findTestabilityInTree(e,A.host,!0):this.findTestabilityInTree(e,A.parentElement,!0):null)}},GuA=(()=>{class t{build(){return new XMLHttpRequest}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),aP=(()=>{class t extends Ih{constructor(A){super(A)}supports(A){return!0}addEventListener(A,i,n,o){return A.addEventListener(i,n,o),()=>this.removeEventListener(A,i,n,o)}removeEventListener(A,i,n,o){return A.removeEventListener(i,n,o)}static \u0275fac=function(i){return new(i||t)(be(at))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),sP=["alt","control","meta","shift"],KuA={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},UuA={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey},cP=(()=>{class t extends Ih{constructor(A){super(A)}supports(A){return t.parseEventName(A)!=null}addEventListener(A,i,n,o){let r=t.parseEventName(i),s=t.eventCallback(r.fullKey,n,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>$a().onAndCancel(A,r.domEventName,s,o))}static parseEventName(A){let i=A.toLowerCase().split("."),n=i.shift();if(i.length===0||!(n==="keydown"||n==="keyup"))return null;let o=t._normalizeKey(i.pop()),r="",s=i.indexOf("code");if(s>-1&&(i.splice(s,1),r="code."),sP.forEach(c=>{let g=i.indexOf(c);g>-1&&(i.splice(g,1),r+=c+".")}),r+=o,i.length!=0||o.length===0)return null;let a={};return a.domEventName=n,a.fullKey=r,a}static matchEventFullKeyCode(A,i){let n=KuA[A.key]||A.key,o="";return i.indexOf("code.")>-1&&(n=A.code,o="code."),n==null||!n?!1:(n=n.toLowerCase(),n===" "?n="space":n==="."&&(n="dot"),sP.forEach(r=>{if(r!==n){let s=UuA[r];s(A)&&(o+=r+".")}}),o+=n,o===i)}static eventCallback(A,i,n){return o=>{t.matchEventFullKeyCode(o,A)&&n.runGuarded(()=>i(o))}}static _normalizeKey(A){return A==="esc"?"escape":A}static \u0275fac=function(i){return new(i||t)(be(at))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();function Pk(t,e,A){return sO(sA({rootComponent:t,platformRef:A?.platformRef},JuA(e)))}function JuA(t){return{appProviders:[...gP,...t?.providers??[]],platformProviders:OuA}}function YuA(){M6.makeCurrent()}function TuA(){return new Ps}function HuA(){return hT(document),document}var OuA=[{provide:El,useValue:xp},{provide:ZM,useValue:YuA,multi:!0},{provide:at,useFactory:HuA}];var zuA=[{provide:Fu,useClass:b6},{provide:pb,useClass:pp,deps:[ye,Dp,Fu]},{provide:pp,useClass:pp,deps:[ye,Dp,Fu]}],gP=[{provide:ip,useValue:"root"},{provide:Ps,useFactory:TuA},{provide:v6,useClass:aP,multi:!0,deps:[at]},{provide:v6,useClass:cP,multi:!0,deps:[at]},Bh,Ok,Hk,{provide:Ms,useExisting:Bh},{provide:KI,useClass:GuA},[]],jk=(()=>{class t{constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[...gP,...zuA],imports:[ug,rO]})}return t})();var lP=(()=>{class t{_doc;constructor(A){this._doc=A}getTitle(){return this._doc.title}setTitle(A){this._doc.title=A||""}static \u0275fac=function(i){return new(i||t)(be(at))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var oc=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:function(i){let n=null;return i?n=new(i||t):n=be(PuA),n},providedIn:"root"})}return t})(),PuA=(()=>{class t extends oc{_doc;constructor(A){super(),this._doc=A}sanitize(A,i){if(i==null)return null;switch(A){case Xr.NONE:return i;case Xr.HTML:return M2(i,"HTML")?dg(i):Ab(this._doc,String(i)).toString();case Xr.STYLE:return M2(i,"Style")?dg(i):i;case Xr.SCRIPT:if(M2(i,"Script"))return dg(i);throw new te(5200,!1);case Xr.URL:return M2(i,"URL")?dg(i):Cp(String(i));case Xr.RESOURCE_URL:if(M2(i,"ResourceURL"))return dg(i);throw new te(5201,!1);default:throw new te(5202,!1)}}bypassSecurityTrustHtml(A){return vT(A)}bypassSecurityTrustStyle(A){return MT(A)}bypassSecurityTrustScript(A){return bT(A)}bypassSecurityTrustUrl(A){return kT(A)}bypassSecurityTrustResourceUrl(A){return ST(A)}static \u0275fac=function(i){return new(i||t)(be(at))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function IP(t){return new te(3e3,!1)}function juA(){return new te(3100,!1)}function quA(){return new te(3101,!1)}function VuA(t){return new te(3001,!1)}function ZuA(t){return new te(3003,!1)}function WuA(t){return new te(3004,!1)}function dP(t,e){return new te(3005,!1)}function BP(){return new te(3006,!1)}function EP(){return new te(3007,!1)}function QP(t,e){return new te(3008,!1)}function uP(t){return new te(3002,!1)}function hP(t,e,A,i,n){return new te(3010,!1)}function fP(){return new te(3011,!1)}function mP(){return new te(3012,!1)}function pP(){return new te(3200,!1)}function DP(){return new te(3202,!1)}function wP(){return new te(3013,!1)}function yP(t){return new te(3014,!1)}function vP(t){return new te(3015,!1)}function MP(t){return new te(3016,!1)}function bP(t,e){return new te(3404,!1)}function XuA(t){return new te(3502,!1)}function kP(t){return new te(3503,!1)}function SP(){return new te(3300,!1)}function RP(t){return new te(3504,!1)}function LP(t){return new te(3301,!1)}function xP(t,e){return new te(3302,!1)}function NP(t){return new te(3303,!1)}function FP(t,e){return new te(3400,!1)}function _P(t){return new te(3401,!1)}function GP(t){return new te(3402,!1)}function KP(t,e){return new te(3505,!1)}function b0(t){switch(t.length){case 0:return new hl;case 1:return t[0];default:return new XI(t)}}function Wk(t,e,A=new Map,i=new Map){let n=[],o=[],r=-1,s=null;if(e.forEach(a=>{let c=a.get("offset"),g=c==r,I=g&&s||new Map;a.forEach((C,d)=>{let B=d,E=C;if(d!=="offset")switch(B=t.normalizePropertyName(B,n),E){case hB:E=A.get(d);break;case Rc:E=i.get(d);break;default:E=t.normalizeStyleValue(d,B,E,n);break}I.set(B,E)}),g||o.push(I),s=I,r=c}),n.length)throw XuA(n);return o}function k6(t,e,A,i){switch(e){case"start":t.onStart(()=>i(A&&qk(A,"start",t)));break;case"done":t.onDone(()=>i(A&&qk(A,"done",t)));break;case"destroy":t.onDestroy(()=>i(A&&qk(A,"destroy",t)));break}}function qk(t,e,A){let i=A.totalTime,n=!!A.disabled,o=S6(t.element,t.triggerName,t.fromState,t.toState,e||t.phaseName,i??t.totalTime,n),r=t._data;return r!=null&&(o._data=r),o}function S6(t,e,A,i,n="",o=0,r){return{element:t,triggerName:e,fromState:A,toState:i,phaseName:n,totalTime:o,disabled:!!r}}function ma(t,e,A){let i=t.get(e);return i||t.set(e,i=A),i}function Xk(t){let e=t.indexOf(":"),A=t.substring(1,e),i=t.slice(e+1);return[A,i]}var $uA=typeof document>"u"?null:document.documentElement;function R6(t){let e=t.parentNode||t.host||null;return e===$uA?null:e}function AhA(t){return t.substring(1,6)=="ebkit"}var $I=null,CP=!1;function UP(t){$I||($I=ehA()||{},CP=$I.style?"WebkitAppearance"in $I.style:!1);let e=!0;return $I.style&&!AhA(t)&&(e=t in $I.style,!e&&CP&&(e="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in $I.style)),e}function ehA(){return typeof document<"u"?document.body:null}function $k(t,e){for(;e;){if(e===t)return!0;e=R6(e)}return!1}function AS(t,e,A){if(A)return Array.from(t.querySelectorAll(e));let i=t.querySelector(e);return i?[i]:[]}var thA=1e3,eS="{{",ihA="}}",tS="ng-enter",L6="ng-leave",uh="ng-trigger",hh=".ng-trigger",iS="ng-animating",x6=".ng-animating";function ml(t){if(typeof t=="number")return t;let e=t.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:Vk(parseFloat(e[1]),e[2])}function Vk(t,e){switch(e){case"s":return t*thA;default:return t}}function fh(t,e,A){return t.hasOwnProperty("duration")?t:nhA(t,e,A)}function nhA(t,e,A){let i=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,n,o=0,r="";if(typeof t=="string"){let s=t.match(i);if(s===null)return e.push(IP(t)),{duration:0,delay:0,easing:""};n=Vk(parseFloat(s[1]),s[2]);let a=s[3];a!=null&&(o=Vk(parseFloat(a),s[4]));let c=s[5];c&&(r=c)}else n=t;if(!A){let s=!1,a=e.length;n<0&&(e.push(juA()),s=!0),o<0&&(e.push(quA()),s=!0),s&&e.splice(a,0,IP(t))}return{duration:n,delay:o,easing:r}}function JP(t){return t.length?t[0]instanceof Map?t:t.map(e=>new Map(Object.entries(e))):[]}function pg(t,e,A){e.forEach((i,n)=>{let o=N6(n);A&&!A.has(n)&&A.set(n,t.style[o]),t.style[o]=i})}function Y2(t,e){e.forEach((A,i)=>{let n=N6(i);t.style[n]=""})}function fB(t){return Array.isArray(t)?t.length==1?t[0]:Yz(t):t}function YP(t,e,A){let i=e.params||{},n=nS(t);n.length&&n.forEach(o=>{i.hasOwnProperty(o)||A.push(VuA(o))})}var Zk=new RegExp(`${eS}\\s*(.+?)\\s*${ihA}`,"g");function nS(t){let e=[];if(typeof t=="string"){let A;for(;A=Zk.exec(t);)e.push(A[1]);Zk.lastIndex=0}return e}function mB(t,e,A){let i=`${t}`,n=i.replace(Zk,(o,r)=>{let s=e[r];return s==null&&(A.push(ZuA(r)),s=""),s.toString()});return n==i?t:n}var ohA=/-+([a-z0-9])/g;function N6(t){return t.replace(ohA,(...e)=>e[1].toUpperCase())}function TP(t,e){return t===0||e===0}function HP(t,e,A){if(A.size&&e.length){let i=e[0],n=[];if(A.forEach((o,r)=>{i.has(r)||n.push(r),i.set(r,o)}),n.length)for(let o=1;or.set(s,F6(t,s)))}}return e}function pa(t,e,A){switch(e.type){case oi.Trigger:return t.visitTrigger(e,A);case oi.State:return t.visitState(e,A);case oi.Transition:return t.visitTransition(e,A);case oi.Sequence:return t.visitSequence(e,A);case oi.Group:return t.visitGroup(e,A);case oi.Animate:return t.visitAnimate(e,A);case oi.Keyframes:return t.visitKeyframes(e,A);case oi.Style:return t.visitStyle(e,A);case oi.Reference:return t.visitReference(e,A);case oi.AnimateChild:return t.visitAnimateChild(e,A);case oi.AnimateRef:return t.visitAnimateRef(e,A);case oi.Query:return t.visitQuery(e,A);case oi.Stagger:return t.visitStagger(e,A);default:throw WuA(e.type)}}function F6(t,e){return window.getComputedStyle(t)[e]}var mS=(()=>{class t{validateStyleProperty(A){return UP(A)}containsElement(A,i){return $k(A,i)}getParentElement(A){return R6(A)}query(A,i,n){return AS(A,i,n)}computeStyle(A,i,n){return n||""}animate(A,i,n,o,r,s=[],a){return new hl(n,o)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),eC=class{static NOOP=new mS},tC=class{};var rhA=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),J6=class extends tC{normalizePropertyName(e,A){return N6(e)}normalizeStyleValue(e,A,i,n){let o="",r=i.toString().trim();if(rhA.has(A)&&i!==0&&i!=="0")if(typeof i=="number")o="px";else{let s=i.match(/^[+-]?[\d\.]+([a-z]*)$/);s&&s[1].length==0&&n.push(dP(e,i))}return r+o}};var Y6="*";function shA(t,e){let A=[];return typeof t=="string"?t.split(/\s*,\s*/).forEach(i=>ahA(i,A,e)):A.push(t),A}function ahA(t,e,A){if(t[0]==":"){let a=chA(t,A);if(typeof a=="function"){e.push(a);return}t=a}let i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(i==null||i.length<4)return A.push(vP(t)),e;let n=i[1],o=i[2],r=i[3];e.push(OP(n,r));let s=n==Y6&&r==Y6;o[0]=="<"&&!s&&e.push(OP(r,n))}function chA(t,e){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(A,i)=>parseFloat(i)>parseFloat(A);case":decrement":return(A,i)=>parseFloat(i) *"}}var _6=new Set(["true","1"]),G6=new Set(["false","0"]);function OP(t,e){let A=_6.has(t)||G6.has(t),i=_6.has(e)||G6.has(e);return(n,o)=>{let r=t==Y6||t==n,s=e==Y6||e==o;return!r&&A&&typeof n=="boolean"&&(r=n?_6.has(t):G6.has(t)),!s&&i&&typeof o=="boolean"&&(s=o?_6.has(e):G6.has(e)),r&&s}}var Aj=":self",ghA=new RegExp(`s*${Aj}s*,?`,"g");function ej(t,e,A,i){return new gS(t).build(e,A,i)}var zP="",gS=class{_driver;constructor(e){this._driver=e}build(e,A,i){let n=new lS(A);return this._resetContextStyleTimingState(n),pa(this,fB(e),n)}_resetContextStyleTimingState(e){e.currentQuerySelector=zP,e.collectedStyles=new Map,e.collectedStyles.set(zP,new Map),e.currentTime=0}visitTrigger(e,A){let i=A.queryCount=0,n=A.depCount=0,o=[],r=[];return e.name.charAt(0)=="@"&&A.errors.push(BP()),e.definitions.forEach(s=>{if(this._resetContextStyleTimingState(A),s.type==oi.State){let a=s,c=a.name;c.toString().split(/\s*,\s*/).forEach(g=>{a.name=g,o.push(this.visitState(a,A))}),a.name=c}else if(s.type==oi.Transition){let a=this.visitTransition(s,A);i+=a.queryCount,n+=a.depCount,r.push(a)}else A.errors.push(EP())}),{type:oi.Trigger,name:e.name,states:o,transitions:r,queryCount:i,depCount:n,options:null}}visitState(e,A){let i=this.visitStyle(e.styles,A),n=e.options&&e.options.params||null;if(i.containsDynamicStyles){let o=new Set,r=n||{};i.styles.forEach(s=>{s instanceof Map&&s.forEach(a=>{nS(a).forEach(c=>{r.hasOwnProperty(c)||o.add(c)})})}),o.size&&A.errors.push(QP(e.name,[...o.values()]))}return{type:oi.State,name:e.name,style:i,options:n?{params:n}:null}}visitTransition(e,A){A.queryCount=0,A.depCount=0;let i=pa(this,fB(e.animation),A),n=shA(e.expr,A.errors);return{type:oi.Transition,matchers:n,animation:i,queryCount:A.queryCount,depCount:A.depCount,options:AC(e.options)}}visitSequence(e,A){return{type:oi.Sequence,steps:e.steps.map(i=>pa(this,i,A)),options:AC(e.options)}}visitGroup(e,A){let i=A.currentTime,n=0,o=e.steps.map(r=>{A.currentTime=i;let s=pa(this,r,A);return n=Math.max(n,A.currentTime),s});return A.currentTime=n,{type:oi.Group,steps:o,options:AC(e.options)}}visitAnimate(e,A){let i=dhA(e.timings,A.errors);A.currentAnimateTimings=i;let n,o=e.styles?e.styles:Do({});if(o.type==oi.Keyframes)n=this.visitKeyframes(o,A);else{let r=e.styles,s=!1;if(!r){s=!0;let c={};i.easing&&(c.easing=i.easing),r=Do(c)}A.currentTime+=i.duration+i.delay;let a=this.visitStyle(r,A);a.isEmptyStep=s,n=a}return A.currentAnimateTimings=null,{type:oi.Animate,timings:i,style:n,options:null}}visitStyle(e,A){let i=this._makeStyleAst(e,A);return this._validateStyleAst(i,A),i}_makeStyleAst(e,A){let i=[],n=Array.isArray(e.styles)?e.styles:[e.styles];for(let s of n)typeof s=="string"?s===Rc?i.push(s):A.errors.push(uP(s)):i.push(new Map(Object.entries(s)));let o=!1,r=null;return i.forEach(s=>{if(s instanceof Map&&(s.has("easing")&&(r=s.get("easing"),s.delete("easing")),!o)){for(let a of s.values())if(a.toString().indexOf(eS)>=0){o=!0;break}}}),{type:oi.Style,styles:i,easing:r,offset:e.offset,containsDynamicStyles:o,options:null}}_validateStyleAst(e,A){let i=A.currentAnimateTimings,n=A.currentTime,o=A.currentTime;i&&o>0&&(o-=i.duration+i.delay),e.styles.forEach(r=>{typeof r!="string"&&r.forEach((s,a)=>{let c=A.collectedStyles.get(A.currentQuerySelector),g=c.get(a),I=!0;g&&(o!=n&&o>=g.startTime&&n<=g.endTime&&(A.errors.push(hP(a,g.startTime,g.endTime,o,n)),I=!1),o=g.startTime),I&&c.set(a,{startTime:o,endTime:n}),A.options&&YP(s,A.options,A.errors)})})}visitKeyframes(e,A){let i={type:oi.Keyframes,styles:[],options:null};if(!A.currentAnimateTimings)return A.errors.push(fP()),i;let n=1,o=0,r=[],s=!1,a=!1,c=0,g=e.steps.map(h=>{let w=this._makeStyleAst(h,A),x=w.offset!=null?w.offset:ChA(w.styles),R=0;return x!=null&&(o++,R=w.offset=x),a=a||R<0||R>1,s=s||R0&&o{let x=C>0?w==d?1:C*w:r[w],R=x*u;A.currentTime=B+E.delay+R,E.duration=R,this._validateStyleAst(h,A),h.offset=x,i.styles.push(h)}),i}visitReference(e,A){return{type:oi.Reference,animation:pa(this,fB(e.animation),A),options:AC(e.options)}}visitAnimateChild(e,A){return A.depCount++,{type:oi.AnimateChild,options:AC(e.options)}}visitAnimateRef(e,A){return{type:oi.AnimateRef,animation:this.visitReference(e.animation,A),options:AC(e.options)}}visitQuery(e,A){let i=A.currentQuerySelector,n=e.options||{};A.queryCount++,A.currentQuery=e;let[o,r]=lhA(e.selector);A.currentQuerySelector=i.length?i+" "+o:o,ma(A.collectedStyles,A.currentQuerySelector,new Map);let s=pa(this,fB(e.animation),A);return A.currentQuery=null,A.currentQuerySelector=i,{type:oi.Query,selector:o,limit:n.limit||0,optional:!!n.optional,includeSelf:r,animation:s,originalSelector:e.selector,options:AC(e.options)}}visitStagger(e,A){A.currentQuery||A.errors.push(wP());let i=e.timings==="full"?{duration:0,delay:0,easing:"full"}:fh(e.timings,A.errors,!0);return{type:oi.Stagger,animation:pa(this,fB(e.animation),A),timings:i,options:null}}};function lhA(t){let e=!!t.split(/\s*,\s*/).find(A=>A==Aj);return e&&(t=t.replace(ghA,"")),t=t.replace(/@\*/g,hh).replace(/@\w+/g,A=>hh+"-"+A.slice(1)).replace(/:animating/g,x6),[t,e]}function IhA(t){return t?sA({},t):null}var lS=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(e){this.errors=e}};function ChA(t){if(typeof t=="string")return null;let e=null;if(Array.isArray(t))t.forEach(A=>{if(A instanceof Map&&A.has("offset")){let i=A;e=parseFloat(i.get("offset")),i.delete("offset")}});else if(t instanceof Map&&t.has("offset")){let A=t;e=parseFloat(A.get("offset")),A.delete("offset")}return e}function dhA(t,e){if(t.hasOwnProperty("duration"))return t;if(typeof t=="number"){let o=fh(t,e).duration;return oS(o,0,"")}let A=t;if(A.split(/\s+/).some(o=>o.charAt(0)=="{"&&o.charAt(1)=="{")){let o=oS(0,0,"");return o.dynamic=!0,o.strValue=A,o}let n=fh(A,e);return oS(n.duration,n.delay,n.easing)}function AC(t){return t?(t=sA({},t),t.params&&(t.params=IhA(t.params))):t={},t}function oS(t,e,A){return{duration:t,delay:e,easing:A}}function pS(t,e,A,i,n,o,r=null,s=!1){return{type:1,element:t,keyframes:e,preStyleProps:A,postStyleProps:i,duration:n,delay:o,totalTime:n+o,easing:r,subTimeline:s}}var ph=class{_map=new Map;get(e){return this._map.get(e)||[]}append(e,A){let i=this._map.get(e);i||this._map.set(e,i=[]),i.push(...A)}has(e){return this._map.has(e)}clear(){this._map.clear()}},BhA=1,EhA=":enter",QhA=new RegExp(EhA,"g"),uhA=":leave",hhA=new RegExp(uhA,"g");function tj(t,e,A,i,n,o=new Map,r=new Map,s,a,c=[]){return new IS().buildKeyframes(t,e,A,i,n,o,r,s,a,c)}var IS=class{buildKeyframes(e,A,i,n,o,r,s,a,c,g=[]){c=c||new ph;let I=new CS(e,A,c,n,o,g,[]);I.options=a;let C=a.delay?ml(a.delay):0;I.currentTimeline.delayNextStep(C),I.currentTimeline.setStyles([r],null,I.errors,a),pa(this,i,I);let d=I.timelines.filter(B=>B.containsAnimation());if(d.length&&s.size){let B;for(let E=d.length-1;E>=0;E--){let u=d[E];if(u.element===A){B=u;break}}B&&!B.allowOnlyTimelineStyles()&&B.setStyles([s],null,I.errors,a)}return d.length?d.map(B=>B.buildKeyframes()):[pS(A,[],[],[],0,C,"",!1)]}visitTrigger(e,A){}visitState(e,A){}visitTransition(e,A){}visitAnimateChild(e,A){let i=A.subInstructions.get(A.element);if(i){let n=A.createSubContext(e.options),o=A.currentTimeline.currentTime,r=this._visitSubInstructions(i,n,n.options);o!=r&&A.transformIntoNewTimeline(r)}A.previousNode=e}visitAnimateRef(e,A){let i=A.createSubContext(e.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([e.options,e.animation.options],A,i),this.visitReference(e.animation,i),A.transformIntoNewTimeline(i.currentTimeline.currentTime),A.previousNode=e}_applyAnimationRefDelays(e,A,i){for(let n of e){let o=n?.delay;if(o){let r=typeof o=="number"?o:ml(mB(o,n?.params??{},A.errors));i.delayNextStep(r)}}}_visitSubInstructions(e,A,i){let o=A.currentTimeline.currentTime,r=i.duration!=null?ml(i.duration):null,s=i.delay!=null?ml(i.delay):null;return r!==0&&e.forEach(a=>{let c=A.appendInstructionToTimeline(a,r,s);o=Math.max(o,c.duration+c.delay)}),o}visitReference(e,A){A.updateOptions(e.options,!0),pa(this,e.animation,A),A.previousNode=e}visitSequence(e,A){let i=A.subContextCount,n=A,o=e.options;if(o&&(o.params||o.delay)&&(n=A.createSubContext(o),n.transformIntoNewTimeline(),o.delay!=null)){n.previousNode.type==oi.Style&&(n.currentTimeline.snapshotCurrentStyles(),n.previousNode=T6);let r=ml(o.delay);n.delayNextStep(r)}e.steps.length&&(e.steps.forEach(r=>pa(this,r,n)),n.currentTimeline.applyStylesToKeyframe(),n.subContextCount>i&&n.transformIntoNewTimeline()),A.previousNode=e}visitGroup(e,A){let i=[],n=A.currentTimeline.currentTime,o=e.options&&e.options.delay?ml(e.options.delay):0;e.steps.forEach(r=>{let s=A.createSubContext(e.options);o&&s.delayNextStep(o),pa(this,r,s),n=Math.max(n,s.currentTimeline.currentTime),i.push(s.currentTimeline)}),i.forEach(r=>A.currentTimeline.mergeTimelineCollectedStyles(r)),A.transformIntoNewTimeline(n),A.previousNode=e}_visitTiming(e,A){if(e.dynamic){let i=e.strValue,n=A.params?mB(i,A.params,A.errors):i;return fh(n,A.errors)}else return{duration:e.duration,delay:e.delay,easing:e.easing}}visitAnimate(e,A){let i=A.currentAnimateTimings=this._visitTiming(e.timings,A),n=A.currentTimeline;i.delay&&(A.incrementTime(i.delay),n.snapshotCurrentStyles());let o=e.style;o.type==oi.Keyframes?this.visitKeyframes(o,A):(A.incrementTime(i.duration),this.visitStyle(o,A),n.applyStylesToKeyframe()),A.currentAnimateTimings=null,A.previousNode=e}visitStyle(e,A){let i=A.currentTimeline,n=A.currentAnimateTimings;!n&&i.hasCurrentStyleProperties()&&i.forwardFrame();let o=n&&n.easing||e.easing;e.isEmptyStep?i.applyEmptyStep(o):i.setStyles(e.styles,o,A.errors,A.options),A.previousNode=e}visitKeyframes(e,A){let i=A.currentAnimateTimings,n=A.currentTimeline.duration,o=i.duration,s=A.createSubContext().currentTimeline;s.easing=i.easing,e.styles.forEach(a=>{let c=a.offset||0;s.forwardTime(c*o),s.setStyles(a.styles,a.easing,A.errors,A.options),s.applyStylesToKeyframe()}),A.currentTimeline.mergeTimelineCollectedStyles(s),A.transformIntoNewTimeline(n+o),A.previousNode=e}visitQuery(e,A){let i=A.currentTimeline.currentTime,n=e.options||{},o=n.delay?ml(n.delay):0;o&&(A.previousNode.type===oi.Style||i==0&&A.currentTimeline.hasCurrentStyleProperties())&&(A.currentTimeline.snapshotCurrentStyles(),A.previousNode=T6);let r=i,s=A.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!n.optional,A.errors);A.currentQueryTotal=s.length;let a=null;s.forEach((c,g)=>{A.currentQueryIndex=g;let I=A.createSubContext(e.options,c);o&&I.delayNextStep(o),c===A.element&&(a=I.currentTimeline),pa(this,e.animation,I),I.currentTimeline.applyStylesToKeyframe();let C=I.currentTimeline.currentTime;r=Math.max(r,C)}),A.currentQueryIndex=0,A.currentQueryTotal=0,A.transformIntoNewTimeline(r),a&&(A.currentTimeline.mergeTimelineCollectedStyles(a),A.currentTimeline.snapshotCurrentStyles()),A.previousNode=e}visitStagger(e,A){let i=A.parentContext,n=A.currentTimeline,o=e.timings,r=Math.abs(o.duration),s=r*(A.currentQueryTotal-1),a=r*A.currentQueryIndex;switch(o.duration<0?"reverse":o.easing){case"reverse":a=s-a;break;case"full":a=i.currentStaggerTime;break}let g=A.currentTimeline;a&&g.delayNextStep(a);let I=g.currentTime;pa(this,e.animation,A),A.previousNode=e,i.currentStaggerTime=n.currentTime-I+(n.startTime-i.currentTimeline.startTime)}},T6={},CS=class t{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=T6;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(e,A,i,n,o,r,s,a){this._driver=e,this.element=A,this.subInstructions=i,this._enterClassName=n,this._leaveClassName=o,this.errors=r,this.timelines=s,this.currentTimeline=a||new H6(this._driver,A,0),s.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(e,A){if(!e)return;let i=e,n=this.options;i.duration!=null&&(n.duration=ml(i.duration)),i.delay!=null&&(n.delay=ml(i.delay));let o=i.params;if(o){let r=n.params;r||(r=this.options.params={}),Object.keys(o).forEach(s=>{(!A||!r.hasOwnProperty(s))&&(r[s]=mB(o[s],r,this.errors))})}}_copyOptions(){let e={};if(this.options){let A=this.options.params;if(A){let i=e.params={};Object.keys(A).forEach(n=>{i[n]=A[n]})}}return e}createSubContext(e=null,A,i){let n=A||this.element,o=new t(this._driver,n,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(n,i||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(e),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o}transformIntoNewTimeline(e){return this.previousNode=T6,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(e,A,i){let n={duration:A??e.duration,delay:this.currentTimeline.currentTime+(i??0)+e.delay,easing:""},o=new dS(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,n,e.stretchStartingKeyframe);return this.timelines.push(o),n}incrementTime(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)}delayNextStep(e){e>0&&this.currentTimeline.delayNextStep(e)}invokeQuery(e,A,i,n,o,r){let s=[];if(n&&s.push(this.element),e.length>0){e=e.replace(QhA,"."+this._enterClassName),e=e.replace(hhA,"."+this._leaveClassName);let a=i!=1,c=this._driver.query(this.element,e,a);i!==0&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),s.push(...c)}return!o&&s.length==0&&r.push(yP(A)),s}},H6=class t{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(e,A,i,n){this._driver=e,this.element=A,this.startTime=i,this._elementTimelineStylesLookup=n,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(A),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(A,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(e){let A=this._keyframes.size===1&&this._pendingStyles.size;this.duration||A?(this.forwardTime(this.currentTime+e),A&&this.snapshotCurrentStyles()):this.startTime+=e}fork(e,A){return this.applyStylesToKeyframe(),new t(this._driver,e,A||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=BhA,this._loadKeyframe()}forwardTime(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()}_updateStyle(e,A){this._localTimelineStyles.set(e,A),this._globalTimelineStyles.set(e,A),this._styleSummary.set(e,{time:this.currentTime,value:A})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(e){e&&this._previousKeyframe.set("easing",e);for(let[A,i]of this._globalTimelineStyles)this._backFill.set(A,i||Rc),this._currentKeyframe.set(A,Rc);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(e,A,i,n){A&&this._previousKeyframe.set("easing",A);let o=n&&n.params||{},r=fhA(e,this._globalTimelineStyles);for(let[s,a]of r){let c=mB(a,o,i);this._pendingStyles.set(s,c),this._localTimelineStyles.has(s)||this._backFill.set(s,this._globalTimelineStyles.get(s)??Rc),this._updateStyle(s,c)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((e,A)=>{this._currentKeyframe.set(A,e)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((e,A)=>{this._currentKeyframe.has(A)||this._currentKeyframe.set(A,e)}))}snapshotCurrentStyles(){for(let[e,A]of this._localTimelineStyles)this._pendingStyles.set(e,A),this._updateStyle(e,A)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let e=[];for(let A in this._currentKeyframe)e.push(A);return e}mergeTimelineCollectedStyles(e){e._styleSummary.forEach((A,i)=>{let n=this._styleSummary.get(i);(!n||A.time>n.time)&&this._updateStyle(i,A.value)})}buildKeyframes(){this.applyStylesToKeyframe();let e=new Set,A=new Set,i=this._keyframes.size===1&&this.duration===0,n=[];this._keyframes.forEach((s,a)=>{let c=new Map([...this._backFill,...s]);c.forEach((g,I)=>{g===hB?e.add(I):g===Rc&&A.add(I)}),i||c.set("offset",a/this.duration),n.push(c)});let o=[...e.values()],r=[...A.values()];if(i){let s=n[0],a=new Map(s);s.set("offset",0),a.set("offset",1),n=[s,a]}return pS(this.element,n,o,r,this.duration,this.startTime,this.easing,!1)}},dS=class extends H6{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(e,A,i,n,o,r,s=!1){super(e,A,r.delay),this.keyframes=i,this.preStyleProps=n,this.postStyleProps=o,this._stretchStartingKeyframe=s,this.timings={duration:r.duration,delay:r.delay,easing:r.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let e=this.keyframes,{delay:A,duration:i,easing:n}=this.timings;if(this._stretchStartingKeyframe&&A){let o=[],r=i+A,s=A/r,a=new Map(e[0]);a.set("offset",0),o.push(a);let c=new Map(e[0]);c.set("offset",PP(s)),o.push(c);let g=e.length-1;for(let I=1;I<=g;I++){let C=new Map(e[I]),d=C.get("offset"),B=A+d*i;C.set("offset",PP(B/r)),o.push(C)}i=r,A=0,n="",e=o}return pS(this.element,e,this.preStyleProps,this.postStyleProps,i,A,n,!0)}};function PP(t,e=3){let A=Math.pow(10,e-1);return Math.round(t*A)/A}function fhA(t,e){let A=new Map,i;return t.forEach(n=>{if(n==="*"){i??=e.keys();for(let o of i)A.set(o,Rc)}else for(let[o,r]of n)A.set(o,r)}),A}function jP(t,e,A,i,n,o,r,s,a,c,g,I,C){return{type:0,element:t,triggerName:e,isRemovalTransition:n,fromState:A,fromStyles:o,toState:i,toStyles:r,timelines:s,queriedElements:a,preStyleProps:c,postStyleProps:g,totalTime:I,errors:C}}var rS={},O6=class{_triggerName;ast;_stateStyles;constructor(e,A,i){this._triggerName=e,this.ast=A,this._stateStyles=i}match(e,A,i,n){return mhA(this.ast.matchers,e,A,i,n)}buildStyles(e,A,i){let n=this._stateStyles.get("*");return e!==void 0&&(n=this._stateStyles.get(e?.toString())||n),n?n.buildStyles(A,i):new Map}build(e,A,i,n,o,r,s,a,c,g){let I=[],C=this.ast.options&&this.ast.options.params||rS,d=s&&s.params||rS,B=this.buildStyles(i,d,I),E=a&&a.params||rS,u=this.buildStyles(n,E,I),h=new Set,w=new Map,x=new Map,R=n==="void",D={params:ij(E,C),delay:this.ast.options?.delay},G=g?[]:tj(e,A,this.ast.animation,o,r,B,u,D,c,I),J=0;return G.forEach(z=>{J=Math.max(z.duration+z.delay,J)}),I.length?jP(A,this._triggerName,i,n,R,B,u,[],[],w,x,J,I):(G.forEach(z=>{let K=z.element,O=ma(w,K,new Set);z.preStyleProps.forEach(j=>O.add(j));let V=ma(x,K,new Set);z.postStyleProps.forEach(j=>V.add(j)),K!==A&&h.add(K)}),jP(A,this._triggerName,i,n,R,B,u,G,[...h.values()],w,x,J))}};function mhA(t,e,A,i,n){return t.some(o=>o(e,A,i,n))}function ij(t,e){let A=sA({},e);return Object.entries(t).forEach(([i,n])=>{n!=null&&(A[i]=n)}),A}var BS=class{styles;defaultParams;normalizer;constructor(e,A,i){this.styles=e,this.defaultParams=A,this.normalizer=i}buildStyles(e,A){let i=new Map,n=ij(e,this.defaultParams);return this.styles.styles.forEach(o=>{typeof o!="string"&&o.forEach((r,s)=>{r&&(r=mB(r,n,A));let a=this.normalizer.normalizePropertyName(s,A);r=this.normalizer.normalizeStyleValue(s,a,r,A),i.set(s,r)})}),i}};function phA(t,e,A){return new ES(t,e,A)}var ES=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(e,A,i){this.name=e,this.ast=A,this._normalizer=i,A.states.forEach(n=>{let o=n.options&&n.options.params||{};this.states.set(n.name,new BS(n.style,o,i))}),qP(this.states,"true","1"),qP(this.states,"false","0"),A.transitions.forEach(n=>{this.transitionFactories.push(new O6(e,n,this.states))}),this.fallbackTransition=DhA(e,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(e,A,i,n){return this.transitionFactories.find(r=>r.match(e,A,i,n))||null}matchStyles(e,A,i){return this.fallbackTransition.buildStyles(e,A,i)}};function DhA(t,e,A){let i=[(r,s)=>!0],n={type:oi.Sequence,steps:[],options:null},o={type:oi.Transition,animation:n,matchers:i,options:null,queryCount:0,depCount:0};return new O6(t,o,e)}function qP(t,e,A){t.has(e)?t.has(A)||t.set(A,t.get(e)):t.has(A)&&t.set(e,t.get(A))}var whA=new ph,QS=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(e,A,i){this.bodyNode=e,this._driver=A,this._normalizer=i}register(e,A){let i=[],n=[],o=ej(this._driver,A,i,n);if(i.length)throw kP(i);this._animations.set(e,o)}_buildPlayer(e,A,i){let n=e.element,o=Wk(this._normalizer,e.keyframes,A,i);return this._driver.animate(n,o,e.duration,e.delay,e.easing,[],!0)}create(e,A,i={}){let n=[],o=this._animations.get(e),r,s=new Map;if(o?(r=tj(this._driver,A,o,tS,L6,new Map,new Map,i,whA,n),r.forEach(g=>{let I=ma(s,g.element,new Map);g.postStyleProps.forEach(C=>I.set(C,null))})):(n.push(SP()),r=[]),n.length)throw RP(n);s.forEach((g,I)=>{g.forEach((C,d)=>{g.set(d,this._driver.computeStyle(I,d,Rc))})});let a=r.map(g=>{let I=s.get(g.element);return this._buildPlayer(g,new Map,I)}),c=b0(a);return this._playersById.set(e,c),c.onDestroy(()=>this.destroy(e)),this.players.push(c),c}destroy(e){let A=this._getPlayer(e);A.destroy(),this._playersById.delete(e);let i=this.players.indexOf(A);i>=0&&this.players.splice(i,1)}_getPlayer(e){let A=this._playersById.get(e);if(!A)throw LP(e);return A}listen(e,A,i,n){let o=S6(A,"","","");return k6(this._getPlayer(e),i,o,n),()=>{}}command(e,A,i,n){if(i=="register"){this.register(e,n[0]);return}if(i=="create"){let r=n[0]||{};this.create(e,A,r);return}let o=this._getPlayer(e);switch(i){case"play":o.play();break;case"pause":o.pause();break;case"reset":o.reset();break;case"restart":o.restart();break;case"finish":o.finish();break;case"init":o.init();break;case"setPosition":o.setPosition(parseFloat(n[0]));break;case"destroy":this.destroy(e);break}}},VP="ng-animate-queued",yhA=".ng-animate-queued",sS="ng-animate-disabled",vhA=".ng-animate-disabled",MhA="ng-star-inserted",bhA=".ng-star-inserted",khA=[],nj={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},ShA={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Dg="__ng_removed",Dh=class{namespaceId;value;options;get params(){return this.options.params}constructor(e,A=""){this.namespaceId=A;let i=e&&e.hasOwnProperty("value"),n=i?e.value:e;if(this.value=LhA(n),i){let o=e,{value:r}=o,s=pv(o,["value"]);this.options=s}else this.options={};this.options.params||(this.options.params={})}absorbOptions(e){let A=e.params;if(A){let i=this.options.params;Object.keys(A).forEach(n=>{i[n]==null&&(i[n]=A[n])})}}},mh="void",aS=new Dh(mh),uS=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(e,A,i){this.id=e,this.hostElement=A,this._engine=i,this._hostClassName="ng-tns-"+e,Lc(A,this._hostClassName)}listen(e,A,i,n){if(!this._triggers.has(A))throw xP(i,A);if(i==null||i.length==0)throw NP(A);if(!xhA(i))throw FP(i,A);let o=ma(this._elementListeners,e,[]),r={name:A,phase:i,callback:n};o.push(r);let s=ma(this._engine.statesByElement,e,new Map);return s.has(A)||(Lc(e,uh),Lc(e,uh+"-"+A),s.set(A,aS)),()=>{this._engine.afterFlush(()=>{let a=o.indexOf(r);a>=0&&o.splice(a,1),this._triggers.has(A)||s.delete(A)})}}register(e,A){return this._triggers.has(e)?!1:(this._triggers.set(e,A),!0)}_getTrigger(e){let A=this._triggers.get(e);if(!A)throw _P(e);return A}trigger(e,A,i,n=!0){let o=this._getTrigger(A),r=new wh(this.id,A,e),s=this._engine.statesByElement.get(e);s||(Lc(e,uh),Lc(e,uh+"-"+A),this._engine.statesByElement.set(e,s=new Map));let a=s.get(A),c=new Dh(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&a&&c.absorbOptions(a.options),s.set(A,c),a||(a=aS),!(c.value===mh)&&a.value===c.value){if(!_hA(a.params,c.params)){let E=[],u=o.matchStyles(a.value,a.params,E),h=o.matchStyles(c.value,c.params,E);E.length?this._engine.reportError(E):this._engine.afterFlush(()=>{Y2(e,u),pg(e,h)})}return}let C=ma(this._engine.playersByElement,e,[]);C.forEach(E=>{E.namespaceId==this.id&&E.triggerName==A&&E.queued&&E.destroy()});let d=o.matchTransition(a.value,c.value,e,c.params),B=!1;if(!d){if(!n)return;d=o.fallbackTransition,B=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:A,transition:d,fromState:a,toState:c,player:r,isFallbackTransition:B}),B||(Lc(e,VP),r.onStart(()=>{pB(e,VP)})),r.onDone(()=>{let E=this.players.indexOf(r);E>=0&&this.players.splice(E,1);let u=this._engine.playersByElement.get(e);if(u){let h=u.indexOf(r);h>=0&&u.splice(h,1)}}),this.players.push(r),C.push(r),r}deregister(e){this._triggers.delete(e),this._engine.statesByElement.forEach(A=>A.delete(e)),this._elementListeners.forEach((A,i)=>{this._elementListeners.set(i,A.filter(n=>n.name!=e))})}clearElementCache(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);let A=this._engine.playersByElement.get(e);A&&(A.forEach(i=>i.destroy()),this._engine.playersByElement.delete(e))}_signalRemovalForInnerTriggers(e,A){let i=this._engine.driver.query(e,hh,!0);i.forEach(n=>{if(n[Dg])return;let o=this._engine.fetchNamespacesByElement(n);o.size?o.forEach(r=>r.triggerLeaveAnimation(n,A,!1,!0)):this.clearElementCache(n)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(n=>this.clearElementCache(n)))}triggerLeaveAnimation(e,A,i,n){let o=this._engine.statesByElement.get(e),r=new Map;if(o){let s=[];if(o.forEach((a,c)=>{if(r.set(c,a.value),this._triggers.has(c)){let g=this.trigger(e,c,mh,n);g&&s.push(g)}}),s.length)return this._engine.markElementAsRemoved(this.id,e,!0,A,r),i&&b0(s).onDone(()=>this._engine.processLeaveNode(e)),!0}return!1}prepareLeaveAnimationListeners(e){let A=this._elementListeners.get(e),i=this._engine.statesByElement.get(e);if(A&&i){let n=new Set;A.forEach(o=>{let r=o.name;if(n.has(r))return;n.add(r);let a=this._triggers.get(r).fallbackTransition,c=i.get(r)||aS,g=new Dh(mh),I=new wh(this.id,r,e);this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:r,transition:a,fromState:c,toState:g,player:I,isFallbackTransition:!0})})}}removeNode(e,A){let i=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,A),this.triggerLeaveAnimation(e,A,!0))return;let n=!1;if(i.totalAnimations){let o=i.players.length?i.playersByQueriedElement.get(e):[];if(o&&o.length)n=!0;else{let r=e;for(;r=r.parentNode;)if(i.statesByElement.get(r)){n=!0;break}}}if(this.prepareLeaveAnimationListeners(e),n)i.markElementAsRemoved(this.id,e,!1,A);else{let o=e[Dg];(!o||o===nj)&&(i.afterFlush(()=>this.clearElementCache(e)),i.destroyInnerAnimations(e),i._onRemovalComplete(e,A))}}insertNode(e,A){Lc(e,this._hostClassName)}drainQueuedTransitions(e){let A=[];return this._queue.forEach(i=>{let n=i.player;if(n.destroyed)return;let o=i.element,r=this._elementListeners.get(o);r&&r.forEach(s=>{if(s.name==i.triggerName){let a=S6(o,i.triggerName,i.fromState.value,i.toState.value);a._data=e,k6(i.player,s.phase,a,s.callback)}}),n.markedForDestroy?this._engine.afterFlush(()=>{n.destroy()}):A.push(i)}),this._queue=[],A.sort((i,n)=>{let o=i.transition.ast.depCount,r=n.transition.ast.depCount;return o==0||r==0?o-r:this._engine.driver.containsElement(i.element,n.element)?1:-1})}destroy(e){this.players.forEach(A=>A.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,e)}},hS=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(e,A)=>{};_onRemovalComplete(e,A){this.onRemovalComplete(e,A)}constructor(e,A,i){this.bodyNode=e,this.driver=A,this._normalizer=i}get queuedPlayers(){let e=[];return this._namespaceList.forEach(A=>{A.players.forEach(i=>{i.queued&&e.push(i)})}),e}createNamespace(e,A){let i=new uS(e,A,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,A)?this._balanceNamespaceList(i,A):(this.newHostElements.set(A,i),this.collectEnterElement(A)),this._namespaceLookup[e]=i}_balanceNamespaceList(e,A){let i=this._namespaceList,n=this.namespacesByHostElement;if(i.length-1>=0){let r=!1,s=this.driver.getParentElement(A);for(;s;){let a=n.get(s);if(a){let c=i.indexOf(a);i.splice(c+1,0,e),r=!0;break}s=this.driver.getParentElement(s)}r||i.unshift(e)}else i.push(e);return n.set(A,e),e}register(e,A){let i=this._namespaceLookup[e];return i||(i=this.createNamespace(e,A)),i}registerTrigger(e,A,i){let n=this._namespaceLookup[e];n&&n.register(A,i)&&this.totalAnimations++}destroy(e,A){e&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let i=this._fetchNamespace(e);this.namespacesByHostElement.delete(i.hostElement);let n=this._namespaceList.indexOf(i);n>=0&&this._namespaceList.splice(n,1),i.destroy(A),delete this._namespaceLookup[e]}))}_fetchNamespace(e){return this._namespaceLookup[e]}fetchNamespacesByElement(e){let A=new Set,i=this.statesByElement.get(e);if(i){for(let n of i.values())if(n.namespaceId){let o=this._fetchNamespace(n.namespaceId);o&&A.add(o)}}return A}trigger(e,A,i,n){if(K6(A)){let o=this._fetchNamespace(e);if(o)return o.trigger(A,i,n),!0}return!1}insertNode(e,A,i,n){if(!K6(A))return;let o=A[Dg];if(o&&o.setForRemoval){o.setForRemoval=!1,o.setForMove=!0;let r=this.collectedLeaveElements.indexOf(A);r>=0&&this.collectedLeaveElements.splice(r,1)}if(e){let r=this._fetchNamespace(e);r&&r.insertNode(A,i)}n&&this.collectEnterElement(A)}collectEnterElement(e){this.collectedEnterElements.push(e)}markElementAsDisabled(e,A){A?this.disabledNodes.has(e)||(this.disabledNodes.add(e),Lc(e,sS)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),pB(e,sS))}removeNode(e,A,i){if(K6(A)){let n=e?this._fetchNamespace(e):null;n?n.removeNode(A,i):this.markElementAsRemoved(e,A,!1,i);let o=this.namespacesByHostElement.get(A);o&&o.id!==e&&o.removeNode(A,i)}else this._onRemovalComplete(A,i)}markElementAsRemoved(e,A,i,n,o){this.collectedLeaveElements.push(A),A[Dg]={namespaceId:e,setForRemoval:n,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:o}}listen(e,A,i,n,o){return K6(A)?this._fetchNamespace(e).listen(A,i,n,o):()=>{}}_buildInstruction(e,A,i,n,o){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,i,n,e.fromState.options,e.toState.options,A,o)}destroyInnerAnimations(e){let A=this.driver.query(e,hh,!0);A.forEach(i=>this.destroyActiveAnimationsForElement(i)),this.playersByQueriedElement.size!=0&&(A=this.driver.query(e,x6,!0),A.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(e){let A=this.playersByElement.get(e);A&&A.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(e){let A=this.playersByQueriedElement.get(e);A&&A.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(e=>{if(this.players.length)return b0(this.players).onDone(()=>e());e()})}processLeaveNode(e){let A=e[Dg];if(A&&A.setForRemoval){if(e[Dg]=nj,A.namespaceId){this.destroyInnerAnimations(e);let i=this._fetchNamespace(A.namespaceId);i&&i.clearElementCache(e)}this._onRemovalComplete(e,A.setForRemoval)}e.classList?.contains(sS)&&this.markElementAsDisabled(e,!1),this.driver.query(e,vhA,!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(e=-1){let A=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,n)=>this._balanceNamespaceList(i,n)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){let i=this._whenQuietFns;this._whenQuietFns=[],A.length?b0(A).onDone(()=>{i.forEach(n=>n())}):i.forEach(n=>n())}}reportError(e){throw GP(e)}_flushAnimations(e,A){let i=new ph,n=[],o=new Map,r=[],s=new Map,a=new Map,c=new Map,g=new Set;this.disabledNodes.forEach(IA=>{g.add(IA);let SA=this.driver.query(IA,yhA,!0);for(let nA=0;nA{let nA=tS+E++;B.set(SA,nA),IA.forEach(lA=>Lc(lA,nA))});let u=[],h=new Set,w=new Set;for(let IA=0;IAh.add(lA)):w.add(SA))}let x=new Map,R=XP(C,Array.from(h));R.forEach((IA,SA)=>{let nA=L6+E++;x.set(SA,nA),IA.forEach(lA=>Lc(lA,nA))}),e.push(()=>{d.forEach((IA,SA)=>{let nA=B.get(SA);IA.forEach(lA=>pB(lA,nA))}),R.forEach((IA,SA)=>{let nA=x.get(SA);IA.forEach(lA=>pB(lA,nA))}),u.forEach(IA=>{this.processLeaveNode(IA)})});let D=[],G=[];for(let IA=this._namespaceList.length-1;IA>=0;IA--)this._namespaceList[IA].drainQueuedTransitions(A).forEach(nA=>{let lA=nA.player,wA=nA.element;if(D.push(lA),this.collectedEnterElements.length){let We=wA[Dg];if(We&&We.setForMove){if(We.previousTriggersValues&&We.previousTriggersValues.has(nA.triggerName)){let KA=We.previousTriggersValues.get(nA.triggerName),tA=this.statesByElement.get(nA.element);if(tA&&tA.has(nA.triggerName)){let OA=tA.get(nA.triggerName);OA.value=KA,tA.set(nA.triggerName,OA)}}lA.destroy();return}}let VA=!I||!this.driver.containsElement(I,wA),ie=x.get(wA),UA=B.get(wA),BA=this._buildInstruction(nA,i,UA,ie,VA);if(BA.errors&&BA.errors.length){G.push(BA);return}if(VA){lA.onStart(()=>Y2(wA,BA.fromStyles)),lA.onDestroy(()=>pg(wA,BA.toStyles)),n.push(lA);return}if(nA.isFallbackTransition){lA.onStart(()=>Y2(wA,BA.fromStyles)),lA.onDestroy(()=>pg(wA,BA.toStyles)),n.push(lA);return}let JA=[];BA.timelines.forEach(We=>{We.stretchStartingKeyframe=!0,this.disabledNodes.has(We.element)||JA.push(We)}),BA.timelines=JA,i.append(wA,BA.timelines);let Xe={instruction:BA,player:lA,element:wA};r.push(Xe),BA.queriedElements.forEach(We=>ma(s,We,[]).push(lA)),BA.preStyleProps.forEach((We,KA)=>{if(We.size){let tA=a.get(KA);tA||a.set(KA,tA=new Set),We.forEach((OA,gA)=>tA.add(gA))}}),BA.postStyleProps.forEach((We,KA)=>{let tA=c.get(KA);tA||c.set(KA,tA=new Set),We.forEach((OA,gA)=>tA.add(gA))})});if(G.length){let IA=[];G.forEach(SA=>{IA.push(KP(SA.triggerName,SA.errors))}),D.forEach(SA=>SA.destroy()),this.reportError(IA)}let J=new Map,z=new Map;r.forEach(IA=>{let SA=IA.element;i.has(SA)&&(z.set(SA,SA),this._beforeAnimationBuild(IA.player.namespaceId,IA.instruction,J))}),n.forEach(IA=>{let SA=IA.element;this._getPreviousPlayers(SA,!1,IA.namespaceId,IA.triggerName,null).forEach(lA=>{ma(J,SA,[]).push(lA),lA.destroy()})});let K=u.filter(IA=>$P(IA,a,c)),O=new Map;WP(O,this.driver,w,c,Rc).forEach(IA=>{$P(IA,a,c)&&K.push(IA)});let j=new Map;d.forEach((IA,SA)=>{WP(j,this.driver,new Set(IA),a,hB)}),K.forEach(IA=>{let SA=O.get(IA),nA=j.get(IA);O.set(IA,new Map([...SA?.entries()??[],...nA?.entries()??[]]))});let dA=[],fA=[],EA={};r.forEach(IA=>{let{element:SA,player:nA,instruction:lA}=IA;if(i.has(SA)){if(g.has(SA)){nA.onDestroy(()=>pg(SA,lA.toStyles)),nA.disabled=!0,nA.overrideTotalTime(lA.totalTime),n.push(nA);return}let wA=EA;if(z.size>1){let ie=SA,UA=[];for(;ie=ie.parentNode;){let BA=z.get(ie);if(BA){wA=BA;break}UA.push(ie)}UA.forEach(BA=>z.set(BA,wA))}let VA=this._buildAnimation(nA.namespaceId,lA,J,o,j,O);if(nA.setRealPlayer(VA),wA===EA)dA.push(nA);else{let ie=this.playersByElement.get(wA);ie&&ie.length&&(nA.parentPlayer=b0(ie)),n.push(nA)}}else Y2(SA,lA.fromStyles),nA.onDestroy(()=>pg(SA,lA.toStyles)),fA.push(nA),g.has(SA)&&n.push(nA)}),fA.forEach(IA=>{let SA=o.get(IA.element);if(SA&&SA.length){let nA=b0(SA);IA.setRealPlayer(nA)}}),n.forEach(IA=>{IA.parentPlayer?IA.syncPlayerEvents(IA.parentPlayer):IA.destroy()});for(let IA=0;IA!VA.destroyed);wA.length?NhA(this,SA,wA):this.processLeaveNode(SA)}return u.length=0,dA.forEach(IA=>{this.players.push(IA),IA.onDone(()=>{IA.destroy();let SA=this.players.indexOf(IA);this.players.splice(SA,1)}),IA.play()}),dA}afterFlush(e){this._flushFns.push(e)}afterFlushAnimationsDone(e){this._whenQuietFns.push(e)}_getPreviousPlayers(e,A,i,n,o){let r=[];if(A){let s=this.playersByQueriedElement.get(e);s&&(r=s)}else{let s=this.playersByElement.get(e);if(s){let a=!o||o==mh;s.forEach(c=>{c.queued||!a&&c.triggerName!=n||r.push(c)})}}return(i||n)&&(r=r.filter(s=>!(i&&i!=s.namespaceId||n&&n!=s.triggerName))),r}_beforeAnimationBuild(e,A,i){let n=A.triggerName,o=A.element,r=A.isRemovalTransition?void 0:e,s=A.isRemovalTransition?void 0:n;for(let a of A.timelines){let c=a.element,g=c!==o,I=ma(i,c,[]);this._getPreviousPlayers(c,g,r,s,A.toState).forEach(d=>{let B=d.getRealPlayer();B.beforeDestroy&&B.beforeDestroy(),d.destroy(),I.push(d)})}Y2(o,A.fromStyles)}_buildAnimation(e,A,i,n,o,r){let s=A.triggerName,a=A.element,c=[],g=new Set,I=new Set,C=A.timelines.map(B=>{let E=B.element;g.add(E);let u=E[Dg];if(u&&u.removedBeforeQueried)return new hl(B.duration,B.delay);let h=E!==a,w=FhA((i.get(E)||khA).map(J=>J.getRealPlayer())).filter(J=>{let z=J;return z.element?z.element===E:!1}),x=o.get(E),R=r.get(E),D=Wk(this._normalizer,B.keyframes,x,R),G=this._buildPlayer(B,D,w);if(B.subTimeline&&n&&I.add(E),h){let J=new wh(e,s,E);J.setRealPlayer(G),c.push(J)}return G});c.forEach(B=>{ma(this.playersByQueriedElement,B.element,[]).push(B),B.onDone(()=>RhA(this.playersByQueriedElement,B.element,B))}),g.forEach(B=>Lc(B,iS));let d=b0(C);return d.onDestroy(()=>{g.forEach(B=>pB(B,iS)),pg(a,A.toStyles)}),I.forEach(B=>{ma(n,B,[]).push(d)}),d}_buildPlayer(e,A,i){return A.length>0?this.driver.animate(e.element,A,e.duration,e.delay,e.easing,i):new hl(e.duration,e.delay)}},wh=class{namespaceId;triggerName;element;_player=new hl;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(e,A,i){this.namespaceId=e,this.triggerName=A,this.element=i}setRealPlayer(e){this._containsRealPlayer||(this._player=e,this._queuedCallbacks.forEach((A,i)=>{A.forEach(n=>k6(e,i,void 0,n))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(e){this.totalTime=e}syncPlayerEvents(e){let A=this._player;A.triggerCallback&&e.onStart(()=>A.triggerCallback("start")),e.onDone(()=>this.finish()),e.onDestroy(()=>this.destroy())}_queueEvent(e,A){ma(this._queuedCallbacks,e,[]).push(A)}onDone(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)}onStart(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)}onDestroy(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(e){this.queued||this._player.setPosition(e)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(e){let A=this._player;A.triggerCallback&&A.triggerCallback(e)}};function RhA(t,e,A){let i=t.get(e);if(i){if(i.length){let n=i.indexOf(A);i.splice(n,1)}i.length==0&&t.delete(e)}return i}function LhA(t){return t??null}function K6(t){return t&&t.nodeType===1}function xhA(t){return t=="start"||t=="done"}function ZP(t,e){let A=t.style.display;return t.style.display=e??"none",A}function WP(t,e,A,i,n){let o=[];A.forEach(a=>o.push(ZP(a)));let r=[];i.forEach((a,c)=>{let g=new Map;a.forEach(I=>{let C=e.computeStyle(c,I,n);g.set(I,C),(!C||C.length==0)&&(c[Dg]=ShA,r.push(c))}),t.set(c,g)});let s=0;return A.forEach(a=>ZP(a,o[s++])),r}function XP(t,e){let A=new Map;if(t.forEach(s=>A.set(s,[])),e.length==0)return A;let i=1,n=new Set(e),o=new Map;function r(s){if(!s)return i;let a=o.get(s);if(a)return a;let c=s.parentNode;return A.has(c)?a=c:n.has(c)?a=i:a=r(c),o.set(s,a),a}return e.forEach(s=>{let a=r(s);a!==i&&A.get(a).push(s)}),A}function Lc(t,e){t.classList?.add(e)}function pB(t,e){t.classList?.remove(e)}function NhA(t,e,A){b0(A).onDone(()=>t.processLeaveNode(e))}function FhA(t){let e=[];return oj(t,e),e}function oj(t,e){for(let A=0;An.add(o)):e.set(t,i),A.delete(t),!0}var DB=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(e,A)=>{};constructor(e,A,i){this._driver=A,this._normalizer=i,this._transitionEngine=new hS(e.body,A,i),this._timelineEngine=new QS(e.body,A,i),this._transitionEngine.onRemovalComplete=(n,o)=>this.onRemovalComplete(n,o)}registerTrigger(e,A,i,n,o){let r=e+"-"+n,s=this._triggerCache[r];if(!s){let a=[],c=[],g=ej(this._driver,o,a,c);if(a.length)throw bP(n,a);s=phA(n,g,this._normalizer),this._triggerCache[r]=s}this._transitionEngine.registerTrigger(A,n,s)}register(e,A){this._transitionEngine.register(e,A)}destroy(e,A){this._transitionEngine.destroy(e,A)}onInsert(e,A,i,n){this._transitionEngine.insertNode(e,A,i,n)}onRemove(e,A,i){this._transitionEngine.removeNode(e,A,i)}disableAnimations(e,A){this._transitionEngine.markElementAsDisabled(e,A)}process(e,A,i,n){if(i.charAt(0)=="@"){let[o,r]=Xk(i),s=n;this._timelineEngine.command(o,A,r,s)}else this._transitionEngine.trigger(e,A,i,n)}listen(e,A,i,n,o){if(i.charAt(0)=="@"){let[r,s]=Xk(i);return this._timelineEngine.listen(r,A,s,o)}return this._transitionEngine.listen(e,A,i,n,o)}flush(e=-1){this._transitionEngine.flush(e)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(e){this._transitionEngine.afterFlushAnimationsDone(e)}};function GhA(t,e){let A=null,i=null;return Array.isArray(e)&&e.length?(A=cS(e[0]),e.length>1&&(i=cS(e[e.length-1]))):e instanceof Map&&(A=cS(e)),A||i?new KhA(t,A,i):null}var KhA=(()=>{class t{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(A,i,n){this._element=A,this._startStyles=i,this._endStyles=n;let o=t.initialStylesByElement.get(A);o||t.initialStylesByElement.set(A,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&pg(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(pg(this._element,this._initialStyles),this._endStyles&&(pg(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(t.initialStylesByElement.delete(this._element),this._startStyles&&(Y2(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Y2(this._element,this._endStyles),this._endStyles=null),pg(this._element,this._initialStyles),this._state=3)}}return t})();function cS(t){let e=null;return t.forEach((A,i)=>{UhA(i)&&(e=e||new Map,e.set(i,A))}),e}function UhA(t){return t==="display"||t==="position"}var z6=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(e,A,i,n){this.element=e,this.keyframes=A,this.options=i,this._specialStyles=n,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;let e=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,e,this.options),this._finalKeyframe=e.length?e[e.length-1]:new Map;let A=()=>this._onFinish();this.domPlayer.addEventListener("finish",A),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",A)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(e){let A=[];return e.forEach(i=>{A.push(Object.fromEntries(i))}),A}_triggerWebAnimation(e,A,i){return e.animate(this._convertKeyframesToObject(A),i)}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(e=>e()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}setPosition(e){this.domPlayer===void 0&&this.init(),this.domPlayer.currentTime=e*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){let e=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,n)=>{n!=="offset"&&e.set(n,this._finished?i:F6(this.element,n))}),this.currentSnapshot=e}triggerCallback(e){let A=e==="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},P6=class{validateStyleProperty(e){return!0}validateAnimatableStyleProperty(e){return!0}containsElement(e,A){return $k(e,A)}getParentElement(e){return R6(e)}query(e,A,i){return AS(e,A,i)}computeStyle(e,A,i){return F6(e,A)}animate(e,A,i,n,o,r=[]){let s=n==0?"both":"forwards",a={duration:i,delay:n,fill:s};o&&(a.easing=o);let c=new Map,g=r.filter(d=>d instanceof z6);TP(i,n)&&g.forEach(d=>{d.currentSnapshot.forEach((B,E)=>c.set(E,B))});let I=JP(A).map(d=>new Map(d));I=HP(e,I,c);let C=GhA(e,I);return new z6(e,I,a,C)}};var U6="@",rj="@.disabled",j6=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(e,A,i,n){this.namespaceId=e,this.delegate=A,this.engine=i,this._onDestroy=n}get data(){return this.delegate.data}destroyNode(e){this.delegate.destroyNode?.(e)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(e,A){return this.delegate.createElement(e,A)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}appendChild(e,A){this.delegate.appendChild(e,A),this.engine.onInsert(this.namespaceId,A,e,!1)}insertBefore(e,A,i,n=!0){this.delegate.insertBefore(e,A,i),this.engine.onInsert(this.namespaceId,A,e,n)}removeChild(e,A,i){this.parentNode(A)&&this.engine.onRemove(this.namespaceId,A,this.delegate)}selectRootElement(e,A){return this.delegate.selectRootElement(e,A)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,A,i,n){this.delegate.setAttribute(e,A,i,n)}removeAttribute(e,A,i){this.delegate.removeAttribute(e,A,i)}addClass(e,A){this.delegate.addClass(e,A)}removeClass(e,A){this.delegate.removeClass(e,A)}setStyle(e,A,i,n){this.delegate.setStyle(e,A,i,n)}removeStyle(e,A,i){this.delegate.removeStyle(e,A,i)}setProperty(e,A,i){A.charAt(0)==U6&&A==rj?this.disableAnimations(e,!!i):this.delegate.setProperty(e,A,i)}setValue(e,A){this.delegate.setValue(e,A)}listen(e,A,i,n){return this.delegate.listen(e,A,i,n)}disableAnimations(e,A){this.engine.disableAnimations(e,A)}},fS=class extends j6{factory;constructor(e,A,i,n,o){super(A,i,n,o),this.factory=e,this.namespaceId=A}setProperty(e,A,i){A.charAt(0)==U6?A.charAt(1)=="."&&A==rj?(i=i===void 0?!0:!!i,this.disableAnimations(e,i)):this.engine.process(this.namespaceId,e,A.slice(1),i):this.delegate.setProperty(e,A,i)}listen(e,A,i,n){if(A.charAt(0)==U6){let o=JhA(e),r=A.slice(1),s="";return r.charAt(0)!=U6&&([r,s]=YhA(r)),this.engine.listen(this.namespaceId,o,r,s,a=>{let c=a._data||-1;this.factory.scheduleListenerCallback(c,i,a)})}return this.delegate.listen(e,A,i,n)}};function JhA(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}function YhA(t){let e=t.indexOf("."),A=t.substring(0,e),i=t.slice(e+1);return[A,i]}var q6=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(e,A,i){this.delegate=e,this.engine=A,this._zone=i,A.onRemovalComplete=(n,o)=>{o?.removeChild(null,n)}}createRenderer(e,A){let i="",n=this.delegate.createRenderer(e,A);if(!e||!A?.data?.animation){let c=this._rendererCache,g=c.get(n);if(!g){let I=()=>c.delete(n);g=new j6(i,n,this.engine,I),c.set(n,g)}return g}let o=A.id,r=A.id+"-"+this._currentId;this._currentId++,this.engine.register(r,e);let s=c=>{Array.isArray(c)?c.forEach(s):this.engine.registerTrigger(o,r,e,c.name,c)};return A.data.animation.forEach(s),new fS(this,r,n,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(e,A,i){if(e>=0&&eA(i));return}let n=this._animationCallbacksBuffer;n.length==0&&queueMicrotask(()=>{this._zone.run(()=>{n.forEach(o=>{let[r,s]=o;r(s)}),this._animationCallbacksBuffer=[]})}),n.push([A,i])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}componentReplaced(e){this.engine.flush(),this.delegate.componentReplaced?.(e)}};var HhA=(()=>{class t extends DB{constructor(A,i,n){super(A,i,n)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||t)(be(at),be(eC),be(tC))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();function OhA(){return new J6}function zhA(t,e,A){return new q6(t,e,A)}var sj=[{provide:tC,useFactory:OhA},{provide:DB,useClass:HhA},{provide:Ms,useFactory:zhA,deps:[Bh,DB,ye]}],qce=[{provide:eC,useClass:mS},{provide:_i,useValue:"NoopAnimations"},...sj],PhA=[{provide:eC,useFactory:()=>new P6},{provide:_i,useFactory:()=>"BrowserAnimations"},...sj];function aj(){return Cg("NgEagerAnimations"),[...PhA]}var wi="primary",Gh=Symbol("RouteTitle"),MS=class{params;constructor(e){this.params=e||{}}has(e){return Object.prototype.hasOwnProperty.call(this.params,e)}get(e){if(this.has(e)){let A=this.params[e];return Array.isArray(A)?A[0]:A}return null}getAll(e){if(this.has(e)){let A=this.params[e];return Array.isArray(A)?A:[A]}return[]}get keys(){return Object.keys(this.params)}};function oC(t){return new MS(t)}function Ej(t,e,A){let i=A.path.split("/");if(i.length>t.length||A.pathMatch==="full"&&(e.hasChildren()||i.lengthi[o]===n)}else return t===e}function uj(t){return t.length>0?t[t.length-1]:null}function z2(t){return B2(t)?t:k2(t)?ro(Promise.resolve(t)):Ce(t)}var qhA={exact:fj,subset:mj},hj={exact:VhA,subset:ZhA,ignored:()=>!0};function cj(t,e,A){return qhA[A.paths](t.root,e.root,A.matrixParams)&&hj[A.queryParams](t.queryParams,e.queryParams)&&!(A.fragment==="exact"&&t.fragment!==e.fragment)}function VhA(t,e){return pl(t,e)}function fj(t,e,A){if(!iC(t.segments,e.segments)||!W6(t.segments,e.segments,A)||t.numberOfChildren!==e.numberOfChildren)return!1;for(let i in e.children)if(!t.children[i]||!fj(t.children[i],e.children[i],A))return!1;return!0}function ZhA(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(A=>Qj(t[A],e[A]))}function mj(t,e,A){return pj(t,e,e.segments,A)}function pj(t,e,A,i){if(t.segments.length>A.length){let n=t.segments.slice(0,A.length);return!(!iC(n,A)||e.hasChildren()||!W6(n,A,i))}else if(t.segments.length===A.length){if(!iC(t.segments,A)||!W6(t.segments,A,i))return!1;for(let n in e.children)if(!t.children[n]||!mj(t.children[n],e.children[n],i))return!1;return!0}else{let n=A.slice(0,t.segments.length),o=A.slice(t.segments.length);return!iC(t.segments,n)||!W6(t.segments,n,i)||!t.children[wi]?!1:pj(t.children[wi],e,o,i)}}function W6(t,e,A){return e.every((i,n)=>hj[A](t[n].parameters,i.parameters))}var wl=class{root;queryParams;fragment;_queryParamMap;constructor(e=new Nn([],{}),A={},i=null){this.root=e,this.queryParams=A,this.fragment=i}get queryParamMap(){return this._queryParamMap??=oC(this.queryParams),this._queryParamMap}toString(){return $hA.serialize(this)}},Nn=class{segments;children;parent=null;constructor(e,A){this.segments=e,this.children=A,Object.values(A).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return X6(this)}},T2=class{path;parameters;_parameterMap;constructor(e,A){this.path=e,this.parameters=A}get parameterMap(){return this._parameterMap??=oC(this.parameters),this._parameterMap}toString(){return wj(this)}};function WhA(t,e){return iC(t,e)&&t.every((A,i)=>pl(A.parameters,e[i].parameters))}function iC(t,e){return t.length!==e.length?!1:t.every((A,i)=>A.path===e[i].path)}function XhA(t,e){let A=[];return Object.entries(t.children).forEach(([i,n])=>{i===wi&&(A=A.concat(e(n,i)))}),Object.entries(t.children).forEach(([i,n])=>{i!==wi&&(A=A.concat(e(n,i)))}),A}var rC=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>new H2,providedIn:"root"})}return t})(),H2=class{parse(e){let A=new SS(e);return new wl(A.parseRootSegment(),A.parseQueryParams(),A.parseFragment())}serialize(e){let A=`/${yh(e.root,!0)}`,i=t4A(e.queryParams),n=typeof e.fragment=="string"?`#${A4A(e.fragment)}`:"";return`${A}${i}${n}`}},$hA=new H2;function X6(t){return t.segments.map(e=>wj(e)).join("/")}function yh(t,e){if(!t.hasChildren())return X6(t);if(e){let A=t.children[wi]?yh(t.children[wi],!1):"",i=[];return Object.entries(t.children).forEach(([n,o])=>{n!==wi&&i.push(`${n}:${yh(o,!1)}`)}),i.length>0?`${A}(${i.join("//")})`:A}else{let A=XhA(t,(i,n)=>n===wi?[yh(t.children[wi],!1)]:[`${n}:${yh(i,!1)}`]);return Object.keys(t.children).length===1&&t.children[wi]!=null?`${X6(t)}/${A[0]}`:`${X6(t)}/(${A.join("//")})`}}function Dj(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function V6(t){return Dj(t).replace(/%3B/gi,";")}function A4A(t){return encodeURI(t)}function kS(t){return Dj(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function $6(t){return decodeURIComponent(t)}function gj(t){return $6(t.replace(/\+/g,"%20"))}function wj(t){return`${kS(t.path)}${e4A(t.parameters)}`}function e4A(t){return Object.entries(t).map(([e,A])=>`;${kS(e)}=${kS(A)}`).join("")}function t4A(t){let e=Object.entries(t).map(([A,i])=>Array.isArray(i)?i.map(n=>`${V6(A)}=${V6(n)}`).join("&"):`${V6(A)}=${V6(i)}`).filter(A=>A);return e.length?`?${e.join("&")}`:""}var i4A=/^[^\/()?;#]+/;function DS(t){let e=t.match(i4A);return e?e[0]:""}var n4A=/^[^\/()?;=#]+/;function o4A(t){let e=t.match(n4A);return e?e[0]:""}var r4A=/^[^=?&#]+/;function s4A(t){let e=t.match(r4A);return e?e[0]:""}var a4A=/^[^&#]+/;function c4A(t){let e=t.match(a4A);return e?e[0]:""}var SS=class{url;remaining;constructor(e){this.url=e,this.remaining=e}parseRootSegment(){return this.consumeOptional("/"),this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new Nn([],{}):new Nn([],this.parseChildren())}parseQueryParams(){let e={};if(this.consumeOptional("?"))do this.parseQueryParam(e);while(this.consumeOptional("&"));return e}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(this.remaining==="")return{};this.consumeOptional("/");let e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let A={};this.peekStartsWith("/(")&&(this.capture("/"),A=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(e.length>0||Object.keys(A).length>0)&&(i[wi]=new Nn(e,A)),i}parseSegment(){let e=DS(this.remaining);if(e===""&&this.peekStartsWith(";"))throw new te(4009,!1);return this.capture(e),new T2($6(e),this.parseMatrixParams())}parseMatrixParams(){let e={};for(;this.consumeOptional(";");)this.parseParam(e);return e}parseParam(e){let A=o4A(this.remaining);if(!A)return;this.capture(A);let i="";if(this.consumeOptional("=")){let n=DS(this.remaining);n&&(i=n,this.capture(i))}e[$6(A)]=$6(i)}parseQueryParam(e){let A=s4A(this.remaining);if(!A)return;this.capture(A);let i="";if(this.consumeOptional("=")){let r=c4A(this.remaining);r&&(i=r,this.capture(i))}let n=gj(A),o=gj(i);if(e.hasOwnProperty(n)){let r=e[n];Array.isArray(r)||(r=[r],e[n]=r),r.push(o)}else e[n]=o}parseParens(e){let A={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){let i=DS(this.remaining),n=this.remaining[i.length];if(n!=="/"&&n!==")"&&n!==";")throw new te(4010,!1);let o;i.indexOf(":")>-1?(o=i.slice(0,i.indexOf(":")),this.capture(o),this.capture(":")):e&&(o=wi);let r=this.parseChildren();A[o]=Object.keys(r).length===1?r[wi]:new Nn([],r),this.consumeOptional("//")}return A}peekStartsWith(e){return this.remaining.startsWith(e)}consumeOptional(e){return this.peekStartsWith(e)?(this.remaining=this.remaining.substring(e.length),!0):!1}capture(e){if(!this.consumeOptional(e))throw new te(4011,!1)}};function yj(t){return t.segments.length>0?new Nn([],{[wi]:t}):t}function vj(t){let e={};for(let[i,n]of Object.entries(t.children)){let o=vj(n);if(i===wi&&o.segments.length===0&&o.hasChildren())for(let[r,s]of Object.entries(o.children))e[r]=s;else(o.segments.length>0||o.hasChildren())&&(e[i]=o)}let A=new Nn(t.segments,e);return g4A(A)}function g4A(t){if(t.numberOfChildren===1&&t.children[wi]){let e=t.children[wi];return new Nn(t.segments.concat(e.segments),e.children)}return t}function bB(t){return t instanceof wl}function Mj(t,e,A=null,i=null){let n=bj(t);return kj(n,e,A,i)}function bj(t){let e;function A(o){let r={};for(let a of o.children){let c=A(a);r[a.outlet]=c}let s=new Nn(o.url,r);return o===t&&(e=s),s}let i=A(t.root),n=yj(i);return e??n}function kj(t,e,A,i){let n=t;for(;n.parent;)n=n.parent;if(e.length===0)return wS(n,n,n,A,i);let o=l4A(e);if(o.toRoot())return wS(n,n,new Nn([],{}),A,i);let r=I4A(o,n,t),s=r.processChildren?Mh(r.segmentGroup,r.index,o.commands):Rj(r.segmentGroup,r.index,o.commands);return wS(n,r.segmentGroup,s,A,i)}function e8(t){return typeof t=="object"&&t!=null&&!t.outlets&&!t.segmentPath}function kh(t){return typeof t=="object"&&t!=null&&t.outlets}function wS(t,e,A,i,n){let o={};i&&Object.entries(i).forEach(([a,c])=>{o[a]=Array.isArray(c)?c.map(g=>`${g}`):`${c}`});let r;t===e?r=A:r=Sj(t,e,A);let s=yj(vj(r));return new wl(s,o,n)}function Sj(t,e,A){let i={};return Object.entries(t.children).forEach(([n,o])=>{o===e?i[n]=A:i[n]=Sj(o,e,A)}),new Nn(t.segments,i)}var t8=class{isAbsolute;numberOfDoubleDots;commands;constructor(e,A,i){if(this.isAbsolute=e,this.numberOfDoubleDots=A,this.commands=i,e&&i.length>0&&e8(i[0]))throw new te(4003,!1);let n=i.find(kh);if(n&&n!==uj(i))throw new te(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}};function l4A(t){if(typeof t[0]=="string"&&t.length===1&&t[0]==="/")return new t8(!0,0,t);let e=0,A=!1,i=t.reduce((n,o,r)=>{if(typeof o=="object"&&o!=null){if(o.outlets){let s={};return Object.entries(o.outlets).forEach(([a,c])=>{s[a]=typeof c=="string"?c.split("/"):c}),[...n,{outlets:s}]}if(o.segmentPath)return[...n,o.segmentPath]}return typeof o!="string"?[...n,o]:r===0?(o.split("/").forEach((s,a)=>{a==0&&s==="."||(a==0&&s===""?A=!0:s===".."?e++:s!=""&&n.push(s))}),n):[...n,o]},[]);return new t8(A,e,i)}var vB=class{segmentGroup;processChildren;index;constructor(e,A,i){this.segmentGroup=e,this.processChildren=A,this.index=i}};function I4A(t,e,A){if(t.isAbsolute)return new vB(e,!0,0);if(!A)return new vB(e,!1,NaN);if(A.parent===null)return new vB(A,!0,0);let i=e8(t.commands[0])?0:1,n=A.segments.length-1+i;return C4A(A,n,t.numberOfDoubleDots)}function C4A(t,e,A){let i=t,n=e,o=A;for(;o>n;){if(o-=n,i=i.parent,!i)throw new te(4005,!1);n=i.segments.length}return new vB(i,!1,n-o)}function d4A(t){return kh(t[0])?t[0].outlets:{[wi]:t}}function Rj(t,e,A){if(t??=new Nn([],{}),t.segments.length===0&&t.hasChildren())return Mh(t,e,A);let i=B4A(t,e,A),n=A.slice(i.commandIndex);if(i.match&&i.pathIndexo!==wi)&&t.children[wi]&&t.numberOfChildren===1&&t.children[wi].segments.length===0){let o=Mh(t.children[wi],e,A);return new Nn(t.segments,o.children)}return Object.entries(i).forEach(([o,r])=>{typeof r=="string"&&(r=[r]),r!==null&&(n[o]=Rj(t.children[o],e,r))}),Object.entries(t.children).forEach(([o,r])=>{i[o]===void 0&&(n[o]=r)}),new Nn(t.segments,n)}}function B4A(t,e,A){let i=0,n=e,o={match:!1,pathIndex:0,commandIndex:0};for(;n=A.length)return o;let r=t.segments[n],s=A[i];if(kh(s))break;let a=`${s}`,c=i0&&a===void 0)break;if(a&&c&&typeof c=="object"&&c.outlets===void 0){if(!Ij(a,c,r))return o;i+=2}else{if(!Ij(a,{},r))return o;i++}n++}return{match:!0,pathIndex:n,commandIndex:i}}function RS(t,e,A){let i=t.segments.slice(0,e),n=0;for(;n{typeof i=="string"&&(i=[i]),i!==null&&(e[A]=RS(new Nn([],{}),0,i))}),e}function lj(t){let e={};return Object.entries(t).forEach(([A,i])=>e[A]=`${i}`),e}function Ij(t,e,A){return t==A.path&&pl(e,A.parameters)}var A8="imperative",Tr=function(t){return t[t.NavigationStart=0]="NavigationStart",t[t.NavigationEnd=1]="NavigationEnd",t[t.NavigationCancel=2]="NavigationCancel",t[t.NavigationError=3]="NavigationError",t[t.RoutesRecognized=4]="RoutesRecognized",t[t.ResolveStart=5]="ResolveStart",t[t.ResolveEnd=6]="ResolveEnd",t[t.GuardsCheckStart=7]="GuardsCheckStart",t[t.GuardsCheckEnd=8]="GuardsCheckEnd",t[t.RouteConfigLoadStart=9]="RouteConfigLoadStart",t[t.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",t[t.ChildActivationStart=11]="ChildActivationStart",t[t.ChildActivationEnd=12]="ChildActivationEnd",t[t.ActivationStart=13]="ActivationStart",t[t.ActivationEnd=14]="ActivationEnd",t[t.Scroll=15]="Scroll",t[t.NavigationSkipped=16]="NavigationSkipped",t}(Tr||{}),sc=class{id;url;constructor(e,A){this.id=e,this.url=A}},O2=class extends sc{type=Tr.NavigationStart;navigationTrigger;restoredState;constructor(e,A,i="imperative",n=null){super(e,A),this.navigationTrigger=i,this.restoredState=n}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}},ac=class extends sc{urlAfterRedirects;type=Tr.NavigationEnd;constructor(e,A,i){super(e,A),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}},Da=function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromResolver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t}(Da||{}),kB=function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t}(kB||{}),Dl=class extends sc{reason;code;type=Tr.NavigationCancel;constructor(e,A,i,n){super(e,A),this.reason=i,this.code=n}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}},yl=class extends sc{reason;code;type=Tr.NavigationSkipped;constructor(e,A,i,n){super(e,A),this.reason=i,this.code=n}},SB=class extends sc{error;target;type=Tr.NavigationError;constructor(e,A,i,n){super(e,A),this.error=i,this.target=n}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}},Sh=class extends sc{urlAfterRedirects;state;type=Tr.RoutesRecognized;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},i8=class extends sc{urlAfterRedirects;state;type=Tr.GuardsCheckStart;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},n8=class extends sc{urlAfterRedirects;state;shouldActivate;type=Tr.GuardsCheckEnd;constructor(e,A,i,n,o){super(e,A),this.urlAfterRedirects=i,this.state=n,this.shouldActivate=o}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}},o8=class extends sc{urlAfterRedirects;state;type=Tr.ResolveStart;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},r8=class extends sc{urlAfterRedirects;state;type=Tr.ResolveEnd;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},s8=class{route;type=Tr.RouteConfigLoadStart;constructor(e){this.route=e}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}},a8=class{route;type=Tr.RouteConfigLoadEnd;constructor(e){this.route=e}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}},c8=class{snapshot;type=Tr.ChildActivationStart;constructor(e){this.snapshot=e}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},g8=class{snapshot;type=Tr.ChildActivationEnd;constructor(e){this.snapshot=e}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},l8=class{snapshot;type=Tr.ActivationStart;constructor(e){this.snapshot=e}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},I8=class{snapshot;type=Tr.ActivationEnd;constructor(e){this.snapshot=e}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},RB=class{routerEvent;position;anchor;type=Tr.Scroll;constructor(e,A,i){this.routerEvent=e,this.position=A,this.anchor=i}toString(){let e=this.position?`${this.position[0]}, ${this.position[1]}`:null;return`Scroll(anchor: '${this.anchor}', position: '${e}')`}},Rh=class{},LB=class{url;navigationBehaviorOptions;constructor(e,A){this.url=e,this.navigationBehaviorOptions=A}};function Q4A(t,e){return t.providers&&!t._injector&&(t._injector=Nu(t.providers,e,`Route: ${t.path}`)),t._injector??e}function wg(t){return t.outlet||wi}function u4A(t,e){let A=t.filter(i=>wg(i)===e);return A.push(...t.filter(i=>wg(i)!==e)),A}function Kh(t){if(!t)return null;if(t.routeConfig?._injector)return t.routeConfig._injector;for(let e=t.parent;e;e=e.parent){let A=e.routeConfig;if(A?._loadedInjector)return A._loadedInjector;if(A?._injector)return A._injector}return null}var C8=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return Kh(this.route?.snapshot)??this.rootInjector}constructor(e){this.rootInjector=e,this.children=new sC(this.rootInjector)}},sC=(()=>{class t{rootInjector;contexts=new Map;constructor(A){this.rootInjector=A}onChildOutletCreated(A,i){let n=this.getOrCreateContext(A);n.outlet=i,this.contexts.set(A,n)}onChildOutletDestroyed(A){let i=this.getContext(A);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){let A=this.contexts;return this.contexts=new Map,A}onOutletReAttached(A){this.contexts=A}getOrCreateContext(A){let i=this.getContext(A);return i||(i=new C8(this.rootInjector),this.contexts.set(A,i)),i}getContext(A){return this.contexts.get(A)||null}static \u0275fac=function(i){return new(i||t)(be(vr))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),d8=class{_root;constructor(e){this._root=e}get root(){return this._root.value}parent(e){let A=this.pathFromRoot(e);return A.length>1?A[A.length-2]:null}children(e){let A=LS(e,this._root);return A?A.children.map(i=>i.value):[]}firstChild(e){let A=LS(e,this._root);return A&&A.children.length>0?A.children[0].value:null}siblings(e){let A=xS(e,this._root);return A.length<2?[]:A[A.length-2].children.map(n=>n.value).filter(n=>n!==e)}pathFromRoot(e){return xS(e,this._root).map(A=>A.value)}};function LS(t,e){if(t===e.value)return e;for(let A of e.children){let i=LS(t,A);if(i)return i}return null}function xS(t,e){if(t===e.value)return[e];for(let A of e.children){let i=xS(t,A);if(i.length)return i.unshift(e),i}return[]}var rc=class{value;children;constructor(e,A){this.value=e,this.children=A}toString(){return`TreeNode(${this.value})`}};function yB(t){let e={};return t&&t.children.forEach(A=>e[A.value.outlet]=A),e}var Lh=class extends d8{snapshot;constructor(e,A){super(e),this.snapshot=A,YS(this,e)}toString(){return this.snapshot.toString()}};function Lj(t){let e=h4A(t),A=new Fi([new T2("",{})]),i=new Fi({}),n=new Fi({}),o=new Fi({}),r=new Fi(""),s=new xc(A,i,o,r,n,wi,t,e.root);return s.snapshot=e.root,new Lh(new rc(s,[]),e)}function h4A(t){let e={},A={},i={},n="",o=new nC([],e,i,n,A,wi,t,null,{});return new xh("",new rc(o,[]))}var xc=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(e,A,i,n,o,r,s,a){this.urlSubject=e,this.paramsSubject=A,this.queryParamsSubject=i,this.fragmentSubject=n,this.dataSubject=o,this.outlet=r,this.component=s,this._futureSnapshot=a,this.title=this.dataSubject?.pipe(je(c=>c[Gh]))??Ce(void 0),this.url=e,this.params=A,this.queryParams=i,this.fragment=n,this.data=o}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(je(e=>oC(e))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(je(e=>oC(e))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}};function B8(t,e,A="emptyOnly"){let i,{routeConfig:n}=t;return e!==null&&(A==="always"||n?.path===""||!e.component&&!e.routeConfig?.loadComponent)?i={params:sA(sA({},e.params),t.params),data:sA(sA({},e.data),t.data),resolve:sA(sA(sA(sA({},t.data),e.data),n?.data),t._resolvedData)}:i={params:sA({},t.params),data:sA({},t.data),resolve:sA(sA({},t.data),t._resolvedData??{})},n&&Nj(n)&&(i.resolve[Gh]=n.title),i}var nC=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;get title(){return this.data?.[Gh]}constructor(e,A,i,n,o,r,s,a,c){this.url=e,this.params=A,this.queryParams=i,this.fragment=n,this.data=o,this.outlet=r,this.component=s,this.routeConfig=a,this._resolve=c}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=oC(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=oC(this.queryParams),this._queryParamMap}toString(){let e=this.url.map(i=>i.toString()).join("/"),A=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${e}', path:'${A}')`}},xh=class extends d8{url;constructor(e,A){super(A),this.url=e,YS(this,A)}toString(){return xj(this._root)}};function YS(t,e){e.value._routerState=t,e.children.forEach(A=>YS(t,A))}function xj(t){let e=t.children.length>0?` { ${t.children.map(xj).join(", ")} } `:"";return`${t.value}${e}`}function yS(t){if(t.snapshot){let e=t.snapshot,A=t._futureSnapshot;t.snapshot=A,pl(e.queryParams,A.queryParams)||t.queryParamsSubject.next(A.queryParams),e.fragment!==A.fragment&&t.fragmentSubject.next(A.fragment),pl(e.params,A.params)||t.paramsSubject.next(A.params),jhA(e.url,A.url)||t.urlSubject.next(A.url),pl(e.data,A.data)||t.dataSubject.next(A.data)}else t.snapshot=t._futureSnapshot,t.dataSubject.next(t._futureSnapshot.data)}function NS(t,e){let A=pl(t.params,e.params)&&WhA(t.url,e.url),i=!t.parent!=!e.parent;return A&&!i&&(!t.parent||NS(t.parent,e.parent))}function Nj(t){return typeof t.title=="string"||t.title===null}var Fj=new eA(""),TS=(()=>{class t{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=wi;activateEvents=new YA;deactivateEvents=new YA;attachEvents=new YA;detachEvents=new YA;routerOutletData=bs(void 0);parentContexts=f(sC);location=f(Sn);changeDetector=f(Et);inputBinder=f(Uh,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(A){if(A.name){let{firstChange:i,previousValue:n}=A.name;if(i)return;this.isTrackedInParentContexts(n)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(n)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(A){return this.parentContexts.getContext(A)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let A=this.parentContexts.getContext(this.name);A?.route&&(A.attachRef?this.attach(A.attachRef,A.route):this.activateWith(A.route,A.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new te(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new te(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new te(4012,!1);this.location.detach();let A=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(A.instance),A}attach(A,i){this.activated=A,this._activatedRoute=i,this.location.insert(A.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(A.instance)}deactivate(){if(this.activated){let A=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(A)}}activateWith(A,i){if(this.isActivated)throw new te(4013,!1);this._activatedRoute=A;let n=this.location,r=A.snapshot.component,s=this.parentContexts.getOrCreateContext(this.name).children,a=new FS(A,s,n.injector,this.routerOutletData);this.activated=n.createComponent(r,{index:n.length,injector:a,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[Xt]})}return t})(),FS=class{route;childContexts;parent;outletData;constructor(e,A,i,n){this.route=e,this.childContexts=A,this.parent=i,this.outletData=n}get(e,A){return e===xc?this.route:e===sC?this.childContexts:e===Fj?this.outletData:this.parent.get(e,A)}},Uh=new eA(""),HS=(()=>{class t{outletDataSubscriptions=new Map;bindActivatedRouteToOutletComponent(A){this.unsubscribeFromRouteData(A),this.subscribeToRouteData(A)}unsubscribeFromRouteData(A){this.outletDataSubscriptions.get(A)?.unsubscribe(),this.outletDataSubscriptions.delete(A)}subscribeToRouteData(A){let{activatedRoute:i}=A,n=ga([i.queryParams,i.params,i.data]).pipe($n(([o,r,s],a)=>(s=sA(sA(sA({},o),r),s),a===0?Ce(s):Promise.resolve(s)))).subscribe(o=>{if(!A.isActivated||!A.activatedComponentRef||A.activatedRoute!==i||i.component===null){this.unsubscribeFromRouteData(A);return}let r=cO(i.component);if(!r){this.unsubscribeFromRouteData(A);return}for(let{templateName:s}of r.inputs)A.activatedComponentRef.setInput(s,o[s])});this.outletDataSubscriptions.set(A,n)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),OS=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(i,n){i&1&&TA(0,"router-outlet")},dependencies:[TS],encapsulation:2})}return t})();function zS(t){let e=t.children&&t.children.map(zS),A=e?Fe(sA({},t),{children:e}):sA({},t);return!A.component&&!A.loadComponent&&(e||A.loadChildren)&&A.outlet&&A.outlet!==wi&&(A.component=OS),A}function f4A(t,e,A){let i=Nh(t,e._root,A?A._root:void 0);return new Lh(i,e)}function Nh(t,e,A){if(A&&t.shouldReuseRoute(e.value,A.value.snapshot)){let i=A.value;i._futureSnapshot=e.value;let n=m4A(t,e,A);return new rc(i,n)}else{if(t.shouldAttach(e.value)){let o=t.retrieve(e.value);if(o!==null){let r=o.route;return r.value._futureSnapshot=e.value,r.children=e.children.map(s=>Nh(t,s)),r}}let i=p4A(e.value),n=e.children.map(o=>Nh(t,o));return new rc(i,n)}}function m4A(t,e,A){return e.children.map(i=>{for(let n of A.children)if(t.shouldReuseRoute(i.value,n.value.snapshot))return Nh(t,i,n);return Nh(t,i)})}function p4A(t){return new xc(new Fi(t.url),new Fi(t.params),new Fi(t.queryParams),new Fi(t.fragment),new Fi(t.data),t.outlet,t.component,t)}var xB=class{redirectTo;navigationBehaviorOptions;constructor(e,A){this.redirectTo=e,this.navigationBehaviorOptions=A}},_j="ngNavigationCancelingError";function E8(t,e){let{redirectTo:A,navigationBehaviorOptions:i}=bB(e)?{redirectTo:e,navigationBehaviorOptions:void 0}:e,n=Gj(!1,Da.Redirect);return n.url=A,n.navigationBehaviorOptions=i,n}function Gj(t,e){let A=new Error(`NavigationCancelingError: ${t||""}`);return A[_j]=!0,A.cancellationCode=e,A}function D4A(t){return Kj(t)&&bB(t.url)}function Kj(t){return!!t&&t[_j]}var w4A=(t,e,A,i)=>je(n=>(new _S(e,n.targetRouterState,n.currentRouterState,A,i).activate(t),n)),_S=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(e,A,i,n,o){this.routeReuseStrategy=e,this.futureState=A,this.currState=i,this.forwardEvent=n,this.inputBindingEnabled=o}activate(e){let A=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(A,i,e),yS(this.futureState.root),this.activateChildRoutes(A,i,e)}deactivateChildRoutes(e,A,i){let n=yB(A);e.children.forEach(o=>{let r=o.value.outlet;this.deactivateRoutes(o,n[r],i),delete n[r]}),Object.values(n).forEach(o=>{this.deactivateRouteAndItsChildren(o,i)})}deactivateRoutes(e,A,i){let n=e.value,o=A?A.value:null;if(n===o)if(n.component){let r=i.getContext(n.outlet);r&&this.deactivateChildRoutes(e,A,r.children)}else this.deactivateChildRoutes(e,A,i);else o&&this.deactivateRouteAndItsChildren(A,i)}deactivateRouteAndItsChildren(e,A){e.value.component&&this.routeReuseStrategy.shouldDetach(e.value.snapshot)?this.detachAndStoreRouteSubtree(e,A):this.deactivateRouteAndOutlet(e,A)}detachAndStoreRouteSubtree(e,A){let i=A.getContext(e.value.outlet),n=i&&e.value.component?i.children:A,o=yB(e);for(let r of Object.values(o))this.deactivateRouteAndItsChildren(r,n);if(i&&i.outlet){let r=i.outlet.detach(),s=i.children.onOutletDeactivated();this.routeReuseStrategy.store(e.value.snapshot,{componentRef:r,route:e,contexts:s})}}deactivateRouteAndOutlet(e,A){let i=A.getContext(e.value.outlet),n=i&&e.value.component?i.children:A,o=yB(e);for(let r of Object.values(o))this.deactivateRouteAndItsChildren(r,n);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(e,A,i){let n=yB(A);e.children.forEach(o=>{this.activateRoutes(o,n[o.value.outlet],i),this.forwardEvent(new I8(o.value.snapshot))}),e.children.length&&this.forwardEvent(new g8(e.value.snapshot))}activateRoutes(e,A,i){let n=e.value,o=A?A.value:null;if(yS(n),n===o)if(n.component){let r=i.getOrCreateContext(n.outlet);this.activateChildRoutes(e,A,r.children)}else this.activateChildRoutes(e,A,i);else if(n.component){let r=i.getOrCreateContext(n.outlet);if(this.routeReuseStrategy.shouldAttach(n.snapshot)){let s=this.routeReuseStrategy.retrieve(n.snapshot);this.routeReuseStrategy.store(n.snapshot,null),r.children.onOutletReAttached(s.contexts),r.attachRef=s.componentRef,r.route=s.route.value,r.outlet&&r.outlet.attach(s.componentRef,s.route.value),yS(s.route.value),this.activateChildRoutes(e,null,r.children)}else r.attachRef=null,r.route=n,r.outlet&&r.outlet.activateWith(n,r.injector),this.activateChildRoutes(e,null,r.children)}else this.activateChildRoutes(e,null,i)}},Q8=class{path;route;constructor(e){this.path=e,this.route=this.path[this.path.length-1]}},MB=class{component;route;constructor(e,A){this.component=e,this.route=A}};function y4A(t,e,A){let i=t._root,n=e?e._root:null;return vh(i,n,A,[i.value])}function v4A(t){let e=t.routeConfig?t.routeConfig.canActivateChild:null;return!e||e.length===0?null:{node:t,guards:e}}function FB(t,e){let A=Symbol(),i=e.get(t,A);return i===A?typeof t=="function"&&!lY(t)?t:e.get(t):i}function vh(t,e,A,i,n={canDeactivateChecks:[],canActivateChecks:[]}){let o=yB(e);return t.children.forEach(r=>{M4A(r,o[r.value.outlet],A,i.concat([r.value]),n),delete o[r.value.outlet]}),Object.entries(o).forEach(([r,s])=>bh(s,A.getContext(r),n)),n}function M4A(t,e,A,i,n={canDeactivateChecks:[],canActivateChecks:[]}){let o=t.value,r=e?e.value:null,s=A?A.getContext(t.value.outlet):null;if(r&&o.routeConfig===r.routeConfig){let a=b4A(r,o,o.routeConfig.runGuardsAndResolvers);a?n.canActivateChecks.push(new Q8(i)):(o.data=r.data,o._resolvedData=r._resolvedData),o.component?vh(t,e,s?s.children:null,i,n):vh(t,e,A,i,n),a&&s&&s.outlet&&s.outlet.isActivated&&n.canDeactivateChecks.push(new MB(s.outlet.component,r))}else r&&bh(e,s,n),n.canActivateChecks.push(new Q8(i)),o.component?vh(t,null,s?s.children:null,i,n):vh(t,null,A,i,n);return n}function b4A(t,e,A){if(typeof A=="function")return A(t,e);switch(A){case"pathParamsChange":return!iC(t.url,e.url);case"pathParamsOrQueryParamsChange":return!iC(t.url,e.url)||!pl(t.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!NS(t,e)||!pl(t.queryParams,e.queryParams);case"paramsChange":default:return!NS(t,e)}}function bh(t,e,A){let i=yB(t),n=t.value;Object.entries(i).forEach(([o,r])=>{n.component?e?bh(r,e.children.getContext(o),A):bh(r,null,A):bh(r,e,A)}),n.component?e&&e.outlet&&e.outlet.isActivated?A.canDeactivateChecks.push(new MB(e.outlet.component,n)):A.canDeactivateChecks.push(new MB(null,n)):A.canDeactivateChecks.push(new MB(null,n))}function Jh(t){return typeof t=="function"}function k4A(t){return typeof t=="boolean"}function S4A(t){return t&&Jh(t.canLoad)}function R4A(t){return t&&Jh(t.canActivate)}function L4A(t){return t&&Jh(t.canActivateChild)}function x4A(t){return t&&Jh(t.canDeactivate)}function N4A(t){return t&&Jh(t.canMatch)}function Uj(t){return t instanceof B0||t?.name==="EmptyError"}var Z6=Symbol("INITIAL_VALUE");function NB(){return $n(t=>ga(t.map(e=>e.pipe(Xn(1),On(Z6)))).pipe(je(e=>{for(let A of e)if(A!==!0){if(A===Z6)return Z6;if(A===!1||F4A(A))return A}return!0}),Nt(e=>e!==Z6),Xn(1)))}function F4A(t){return bB(t)||t instanceof xB}function _4A(t,e){return or(A=>{let{targetSnapshot:i,currentSnapshot:n,guards:{canActivateChecks:o,canDeactivateChecks:r}}=A;return r.length===0&&o.length===0?Ce(Fe(sA({},A),{guardsResult:!0})):G4A(r,i,n,t).pipe(or(s=>s&&k4A(s)?K4A(i,o,t,e):Ce(s)),je(s=>Fe(sA({},A),{guardsResult:s})))})}function G4A(t,e,A,i){return ro(t).pipe(or(n=>H4A(n.component,n.route,A,e,i)),ol(n=>n!==!0,!0))}function K4A(t,e,A,i){return ro(e).pipe(tl(n=>Q2(J4A(n.route.parent,i),U4A(n.route,i),T4A(t,n.path,A),Y4A(t,n.route,A))),ol(n=>n!==!0,!0))}function U4A(t,e){return t!==null&&e&&e(new l8(t)),Ce(!0)}function J4A(t,e){return t!==null&&e&&e(new c8(t)),Ce(!0)}function Y4A(t,e,A){let i=e.routeConfig?e.routeConfig.canActivate:null;if(!i||i.length===0)return Ce(!0);let n=i.map(o=>el(()=>{let r=Kh(e)??A,s=FB(o,r),a=R4A(s)?s.canActivate(e,t):da(r,()=>s(e,t));return z2(a).pipe(ol())}));return Ce(n).pipe(NB())}function T4A(t,e,A){let i=e[e.length-1],o=e.slice(0,e.length-1).reverse().map(r=>v4A(r)).filter(r=>r!==null).map(r=>el(()=>{let s=r.guards.map(a=>{let c=Kh(r.node)??A,g=FB(a,c),I=L4A(g)?g.canActivateChild(i,t):da(c,()=>g(i,t));return z2(I).pipe(ol())});return Ce(s).pipe(NB())}));return Ce(o).pipe(NB())}function H4A(t,e,A,i,n){let o=e&&e.routeConfig?e.routeConfig.canDeactivate:null;if(!o||o.length===0)return Ce(!0);let r=o.map(s=>{let a=Kh(e)??n,c=FB(s,a),g=x4A(c)?c.canDeactivate(t,e,A,i):da(a,()=>c(t,e,A,i));return z2(g).pipe(ol())});return Ce(r).pipe(NB())}function O4A(t,e,A,i){let n=e.canLoad;if(n===void 0||n.length===0)return Ce(!0);let o=n.map(r=>{let s=FB(r,t),a=S4A(s)?s.canLoad(e,A):da(t,()=>s(e,A));return z2(a)});return Ce(o).pipe(NB(),Jj(i))}function Jj(t){return Tv(So(e=>{if(typeof e!="boolean")throw E8(t,e)}),je(e=>e===!0))}function z4A(t,e,A,i){let n=e.canMatch;if(!n||n.length===0)return Ce(!0);let o=n.map(r=>{let s=FB(r,t),a=N4A(s)?s.canMatch(e,A):da(t,()=>s(e,A));return z2(a)});return Ce(o).pipe(NB(),Jj(i))}var Fh=class{segmentGroup;constructor(e){this.segmentGroup=e||null}},_h=class extends Error{urlTree;constructor(e){super(),this.urlTree=e}};function wB(t){return d2(new Fh(t))}function P4A(t){return d2(new te(4e3,!1))}function j4A(t){return d2(Gj(!1,Da.GuardRejected))}var GS=class{urlSerializer;urlTree;constructor(e,A){this.urlSerializer=e,this.urlTree=A}lineralizeSegments(e,A){let i=[],n=A.root;for(;;){if(i=i.concat(n.segments),n.numberOfChildren===0)return Ce(i);if(n.numberOfChildren>1||!n.children[wi])return P4A(`${e.redirectTo}`);n=n.children[wi]}}applyRedirectCommands(e,A,i,n,o){if(typeof A!="string"){let s=A,{queryParams:a,fragment:c,routeConfig:g,url:I,outlet:C,params:d,data:B,title:E}=n,u=da(o,()=>s({params:d,data:B,queryParams:a,fragment:c,routeConfig:g,url:I,outlet:C,title:E}));if(u instanceof wl)throw new _h(u);A=u}let r=this.applyRedirectCreateUrlTree(A,this.urlSerializer.parse(A),e,i);if(A[0]==="/")throw new _h(r);return r}applyRedirectCreateUrlTree(e,A,i,n){let o=this.createSegmentGroup(e,A.root,i,n);return new wl(o,this.createQueryParams(A.queryParams,this.urlTree.queryParams),A.fragment)}createQueryParams(e,A){let i={};return Object.entries(e).forEach(([n,o])=>{if(typeof o=="string"&&o[0]===":"){let s=o.substring(1);i[n]=A[s]}else i[n]=o}),i}createSegmentGroup(e,A,i,n){let o=this.createSegments(e,A.segments,i,n),r={};return Object.entries(A.children).forEach(([s,a])=>{r[s]=this.createSegmentGroup(e,a,i,n)}),new Nn(o,r)}createSegments(e,A,i,n){return A.map(o=>o.path[0]===":"?this.findPosParam(e,o,n):this.findOrReturn(o,i))}findPosParam(e,A,i){let n=i[A.path.substring(1)];if(!n)throw new te(4001,!1);return n}findOrReturn(e,A){let i=0;for(let n of A){if(n.path===e.path)return A.splice(i),n;i++}return e}},KS={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function q4A(t,e,A,i,n){let o=Yj(t,e,A);return o.matched?(i=Q4A(e,i),z4A(i,e,A,n).pipe(je(r=>r===!0?o:sA({},KS)))):Ce(o)}function Yj(t,e,A){if(e.path==="**")return V4A(A);if(e.path==="")return e.pathMatch==="full"&&(t.hasChildren()||A.length>0)?sA({},KS):{matched:!0,consumedSegments:[],remainingSegments:A,parameters:{},positionalParamSegments:{}};let n=(e.matcher||Ej)(A,t,e);if(!n)return sA({},KS);let o={};Object.entries(n.posParams??{}).forEach(([s,a])=>{o[s]=a.path});let r=n.consumed.length>0?sA(sA({},o),n.consumed[n.consumed.length-1].parameters):o;return{matched:!0,consumedSegments:n.consumed,remainingSegments:A.slice(n.consumed.length),parameters:r,positionalParamSegments:n.posParams??{}}}function V4A(t){return{matched:!0,parameters:t.length>0?uj(t).parameters:{},consumedSegments:t,remainingSegments:[],positionalParamSegments:{}}}function Cj(t,e,A,i){return A.length>0&&X4A(t,A,i)?{segmentGroup:new Nn(e,W4A(i,new Nn(A,t.children))),slicedSegments:[]}:A.length===0&&$4A(t,A,i)?{segmentGroup:new Nn(t.segments,Z4A(t,A,i,t.children)),slicedSegments:A}:{segmentGroup:new Nn(t.segments,t.children),slicedSegments:A}}function Z4A(t,e,A,i){let n={};for(let o of A)if(h8(t,e,o)&&!i[wg(o)]){let r=new Nn([],{});n[wg(o)]=r}return sA(sA({},i),n)}function W4A(t,e){let A={};A[wi]=e;for(let i of t)if(i.path===""&&wg(i)!==wi){let n=new Nn([],{});A[wg(i)]=n}return A}function X4A(t,e,A){return A.some(i=>h8(t,e,i)&&wg(i)!==wi)}function $4A(t,e,A){return A.some(i=>h8(t,e,i))}function h8(t,e,A){return(t.hasChildren()||e.length>0)&&A.pathMatch==="full"?!1:A.path===""}function A3A(t,e,A){return e.length===0&&!t.children[A]}var US=class{};function e3A(t,e,A,i,n,o,r="emptyOnly"){return new JS(t,e,A,i,n,r,o).recognize()}var t3A=31,JS=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(e,A,i,n,o,r,s){this.injector=e,this.configLoader=A,this.rootComponentType=i,this.config=n,this.urlTree=o,this.paramsInheritanceStrategy=r,this.urlSerializer=s,this.applyRedirects=new GS(this.urlSerializer,this.urlTree)}noMatchError(e){return new te(4002,`'${e.segmentGroup}'`)}recognize(){let e=Cj(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(e).pipe(je(({children:A,rootSnapshot:i})=>{let n=new rc(i,A),o=new xh("",n),r=Mj(i,[],this.urlTree.queryParams,this.urlTree.fragment);return r.queryParams=this.urlTree.queryParams,o.url=this.urlSerializer.serialize(r),{state:o,tree:r}}))}match(e){let A=new nC([],Object.freeze({}),Object.freeze(sA({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),wi,this.rootComponentType,null,{});return this.processSegmentGroup(this.injector,this.config,e,wi,A).pipe(je(i=>({children:i,rootSnapshot:A})),Gr(i=>{if(i instanceof _h)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof Fh?this.noMatchError(i):i}))}processSegmentGroup(e,A,i,n,o){return i.segments.length===0&&i.hasChildren()?this.processChildren(e,A,i,o):this.processSegment(e,A,i,i.segments,n,!0,o).pipe(je(r=>r instanceof rc?[r]:[]))}processChildren(e,A,i,n){let o=[];for(let r of Object.keys(i.children))r==="primary"?o.unshift(r):o.push(r);return ro(o).pipe(tl(r=>{let s=i.children[r],a=u4A(A,r);return this.processSegmentGroup(e,a,s,r,n)}),qv((r,s)=>(r.push(...s),r)),u2(null),jv(),or(r=>{if(r===null)return wB(i);let s=Tj(r);return i3A(s),Ce(s)}))}processSegment(e,A,i,n,o,r,s){return ro(A).pipe(tl(a=>this.processSegmentAgainstRoute(a._injector??e,A,a,i,n,o,r,s).pipe(Gr(c=>{if(c instanceof Fh)return Ce(null);throw c}))),ol(a=>!!a),Gr(a=>{if(Uj(a))return A3A(i,n,o)?Ce(new US):wB(i);throw a}))}processSegmentAgainstRoute(e,A,i,n,o,r,s,a){return wg(i)!==r&&(r===wi||!h8(n,o,i))?wB(n):i.redirectTo===void 0?this.matchSegmentAgainstRoute(e,n,i,o,r,a):this.allowRedirects&&s?this.expandSegmentAgainstRouteUsingRedirect(e,n,A,i,o,r,a):wB(n)}expandSegmentAgainstRouteUsingRedirect(e,A,i,n,o,r,s){let{matched:a,parameters:c,consumedSegments:g,positionalParamSegments:I,remainingSegments:C}=Yj(A,n,o);if(!a)return wB(A);typeof n.redirectTo=="string"&&n.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>t3A&&(this.allowRedirects=!1));let d=new nC(o,c,Object.freeze(sA({},this.urlTree.queryParams)),this.urlTree.fragment,dj(n),wg(n),n.component??n._loadedComponent??null,n,Bj(n)),B=B8(d,s,this.paramsInheritanceStrategy);d.params=Object.freeze(B.params),d.data=Object.freeze(B.data);let E=this.applyRedirects.applyRedirectCommands(g,n.redirectTo,I,d,e);return this.applyRedirects.lineralizeSegments(n,E).pipe(or(u=>this.processSegment(e,i,A,u.concat(C),r,!1,s)))}matchSegmentAgainstRoute(e,A,i,n,o,r){let s=q4A(A,i,n,e,this.urlSerializer);return i.path==="**"&&(A.children={}),s.pipe($n(a=>a.matched?(e=i._injector??e,this.getChildConfig(e,i,n).pipe($n(({routes:c})=>{let g=i._loadedInjector??e,{parameters:I,consumedSegments:C,remainingSegments:d}=a,B=new nC(C,I,Object.freeze(sA({},this.urlTree.queryParams)),this.urlTree.fragment,dj(i),wg(i),i.component??i._loadedComponent??null,i,Bj(i)),E=B8(B,r,this.paramsInheritanceStrategy);B.params=Object.freeze(E.params),B.data=Object.freeze(E.data);let{segmentGroup:u,slicedSegments:h}=Cj(A,C,d,c);if(h.length===0&&u.hasChildren())return this.processChildren(g,c,u,B).pipe(je(x=>new rc(B,x)));if(c.length===0&&h.length===0)return Ce(new rc(B,[]));let w=wg(i)===o;return this.processSegment(g,c,u,h,w?wi:o,!0,B).pipe(je(x=>new rc(B,x instanceof rc?[x]:[])))}))):wB(A)))}getChildConfig(e,A,i){return A.children?Ce({routes:A.children,injector:e}):A.loadChildren?A._loadedRoutes!==void 0?Ce({routes:A._loadedRoutes,injector:A._loadedInjector}):O4A(e,A,i,this.urlSerializer).pipe(or(n=>n?this.configLoader.loadChildren(e,A).pipe(So(o=>{A._loadedRoutes=o.routes,A._loadedInjector=o.injector})):j4A(A))):Ce({routes:[],injector:e})}};function i3A(t){t.sort((e,A)=>e.value.outlet===wi?-1:A.value.outlet===wi?1:e.value.outlet.localeCompare(A.value.outlet))}function n3A(t){let e=t.value.routeConfig;return e&&e.path===""}function Tj(t){let e=[],A=new Set;for(let i of t){if(!n3A(i)){e.push(i);continue}let n=e.find(o=>i.value.routeConfig===o.value.routeConfig);n!==void 0?(n.children.push(...i.children),A.add(n)):e.push(i)}for(let i of A){let n=Tj(i.children);e.push(new rc(i.value,n))}return e.filter(i=>!A.has(i))}function dj(t){return t.data||{}}function Bj(t){return t.resolve||{}}function o3A(t,e,A,i,n,o){return or(r=>e3A(t,e,A,i,r.extractedUrl,n,o).pipe(je(({state:s,tree:a})=>Fe(sA({},r),{targetSnapshot:s,urlAfterRedirects:a}))))}function r3A(t,e){return or(A=>{let{targetSnapshot:i,guards:{canActivateChecks:n}}=A;if(!n.length)return Ce(A);let o=new Set(n.map(a=>a.route)),r=new Set;for(let a of o)if(!r.has(a))for(let c of Hj(a))r.add(c);let s=0;return ro(r).pipe(tl(a=>o.has(a)?s3A(a,i,t,e):(a.data=B8(a,a.parent,t).resolve,Ce(void 0))),So(()=>s++),yd(1),or(a=>s===r.size?Ce(A):lr))})}function Hj(t){let e=t.children.map(A=>Hj(A)).flat();return[t,...e]}function s3A(t,e,A,i){let n=t.routeConfig,o=t._resolve;return n?.title!==void 0&&!Nj(n)&&(o[Gh]=n.title),a3A(o,t,e,i).pipe(je(r=>(t._resolvedData=r,t.data=B8(t,t.parent,A).resolve,null)))}function a3A(t,e,A,i){let n=bS(t);if(n.length===0)return Ce({});let o={};return ro(n).pipe(or(r=>c3A(t[r],e,A,i).pipe(ol(),So(s=>{if(s instanceof xB)throw E8(new H2,s);o[r]=s}))),yd(1),je(()=>o),Gr(r=>Uj(r)?lr:d2(r)))}function c3A(t,e,A,i){let n=Kh(e)??i,o=FB(t,n),r=o.resolve?o.resolve(e,A):da(n,()=>o(e,A));return z2(r)}function vS(t){return $n(e=>{let A=t(e);return A?ro(A).pipe(je(()=>e)):Ce(e)})}var PS=(()=>{class t{buildTitle(A){let i,n=A.root;for(;n!==void 0;)i=this.getResolvedTitleForRoute(n)??i,n=n.children.find(o=>o.outlet===wi);return i}getResolvedTitleForRoute(A){return A.data[Gh]}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(Oj),providedIn:"root"})}return t})(),Oj=(()=>{class t extends PS{title;constructor(A){super(),this.title=A}updateTitle(A){let i=this.buildTitle(A);i!==void 0&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||t)(be(lP))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),aC=new eA("",{providedIn:"root",factory:()=>({})}),_B=new eA(""),f8=(()=>{class t{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=f(oO);loadComponent(A){if(this.componentLoaders.get(A))return this.componentLoaders.get(A);if(A._loadedComponent)return Ce(A._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(A);let i=z2(A.loadComponent()).pipe(je(Pj),So(o=>{this.onLoadEndListener&&this.onLoadEndListener(A),A._loadedComponent=o}),nl(()=>{this.componentLoaders.delete(A)})),n=new C2(i,()=>new qA).pipe(ud());return this.componentLoaders.set(A,n),n}loadChildren(A,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return Ce({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);let o=zj(i,this.compiler,A,this.onLoadEndListener).pipe(nl(()=>{this.childrenLoaders.delete(i)})),r=new C2(o,()=>new qA).pipe(ud());return this.childrenLoaders.set(i,r),r}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function zj(t,e,A,i){return z2(t.loadChildren()).pipe(je(Pj),or(n=>n instanceof ub||Array.isArray(n)?Ce(n):ro(e.compileModuleAsync(n))),je(n=>{i&&i(t);let o,r,s=!1;return Array.isArray(n)?(r=n,s=!0):(o=n.create(A).injector,r=o.get(_B,[],{optional:!0,self:!0}).flat()),{routes:r.map(zS),injector:o}}))}function g3A(t){return t&&typeof t=="object"&&"default"in t}function Pj(t){return g3A(t)?t.default:t}var m8=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(l3A),providedIn:"root"})}return t})(),l3A=(()=>{class t{shouldProcessUrl(A){return!0}extract(A){return A}merge(A,i){return A}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),jS=new eA(""),qS=new eA("");function jj(t,e,A){let i=t.get(qS),n=t.get(at);return t.get(ye).runOutsideAngular(()=>{if(!n.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,new Promise(c=>setTimeout(c));let o,r=new Promise(c=>{o=c}),s=n.startViewTransition(()=>(o(),I3A(t))),{onViewTransitionCreated:a}=i;return a&&da(t,()=>a({transition:s,from:e,to:A})),r})}function I3A(t){return new Promise(e=>{Ir({read:()=>setTimeout(e)},{injector:t})})}var VS=new eA(""),p8=(()=>{class t{currentNavigation=null;currentTransition=null;lastSuccessfulNavigation=null;events=new qA;transitionAbortSubject=new qA;configLoader=f(f8);environmentInjector=f(vr);destroyRef=f(f0);urlSerializer=f(rC);rootContexts=f(sC);location=f(ha);inputBindingEnabled=f(Uh,{optional:!0})!==null;titleStrategy=f(PS);options=f(aC,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=f(m8);createViewTransition=f(jS,{optional:!0});navigationErrorHandler=f(VS,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>Ce(void 0);rootComponentType=null;destroyed=!1;constructor(){let A=n=>this.events.next(new s8(n)),i=n=>this.events.next(new a8(n));this.configLoader.onLoadEndListener=i,this.configLoader.onLoadStartListener=A,this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(A){let i=++this.navigationId;this.transitions?.next(Fe(sA({},A),{extractedUrl:this.urlHandlingStrategy.extract(A.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:i}))}setupNavigations(A){return this.transitions=new Fi(null),this.transitions.pipe(Nt(i=>i!==null),$n(i=>{let n=!1,o=!1;return Ce(i).pipe($n(r=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",Da.SupersededByNewNavigation),lr;this.currentTransition=i,this.currentNavigation={id:r.id,initialUrl:r.rawUrl,extractedUrl:r.extractedUrl,targetBrowserUrl:typeof r.extras.browserUrl=="string"?this.urlSerializer.parse(r.extras.browserUrl):r.extras.browserUrl,trigger:r.source,extras:r.extras,previousNavigation:this.lastSuccessfulNavigation?Fe(sA({},this.lastSuccessfulNavigation),{previousNavigation:null}):null};let s=!A.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),a=r.extras.onSameUrlNavigation??A.onSameUrlNavigation;if(!s&&a!=="reload"){let c="";return this.events.next(new yl(r.id,this.urlSerializer.serialize(r.rawUrl),c,kB.IgnoredSameUrlNavigation)),r.resolve(!1),lr}if(this.urlHandlingStrategy.shouldProcessUrl(r.rawUrl))return Ce(r).pipe($n(c=>(this.events.next(new O2(c.id,this.urlSerializer.serialize(c.extractedUrl),c.source,c.restoredState)),c.id!==this.navigationId?lr:Promise.resolve(c))),o3A(this.environmentInjector,this.configLoader,this.rootComponentType,A.config,this.urlSerializer,this.paramsInheritanceStrategy),So(c=>{i.targetSnapshot=c.targetSnapshot,i.urlAfterRedirects=c.urlAfterRedirects,this.currentNavigation=Fe(sA({},this.currentNavigation),{finalUrl:c.urlAfterRedirects});let g=new Sh(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(g)}));if(s&&this.urlHandlingStrategy.shouldProcessUrl(r.currentRawUrl)){let{id:c,extractedUrl:g,source:I,restoredState:C,extras:d}=r,B=new O2(c,this.urlSerializer.serialize(g),I,C);this.events.next(B);let E=Lj(this.rootComponentType).snapshot;return this.currentTransition=i=Fe(sA({},r),{targetSnapshot:E,urlAfterRedirects:g,extras:Fe(sA({},d),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.finalUrl=g,Ce(i)}else{let c="";return this.events.next(new yl(r.id,this.urlSerializer.serialize(r.extractedUrl),c,kB.IgnoredByUrlHandlingStrategy)),r.resolve(!1),lr}}),So(r=>{let s=new i8(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects),r.targetSnapshot);this.events.next(s)}),je(r=>(this.currentTransition=i=Fe(sA({},r),{guards:y4A(r.targetSnapshot,r.currentSnapshot,this.rootContexts)}),i)),_4A(this.environmentInjector,r=>this.events.next(r)),So(r=>{if(i.guardsResult=r.guardsResult,r.guardsResult&&typeof r.guardsResult!="boolean")throw E8(this.urlSerializer,r.guardsResult);let s=new n8(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects),r.targetSnapshot,!!r.guardsResult);this.events.next(s)}),Nt(r=>r.guardsResult?!0:(this.cancelNavigationTransition(r,"",Da.GuardRejected),!1)),vS(r=>{if(r.guards.canActivateChecks.length!==0)return Ce(r).pipe(So(s=>{let a=new o8(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(a)}),$n(s=>{let a=!1;return Ce(s).pipe(r3A(this.paramsInheritanceStrategy,this.environmentInjector),So({next:()=>a=!0,complete:()=>{a||this.cancelNavigationTransition(s,"",Da.NoDataFromResolver)}}))}),So(s=>{let a=new r8(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(a)}))}),vS(r=>{let s=a=>{let c=[];a.routeConfig?.loadComponent&&!a.routeConfig._loadedComponent&&c.push(this.configLoader.loadComponent(a.routeConfig).pipe(So(g=>{a.component=g}),je(()=>{})));for(let g of a.children)c.push(...s(g));return c};return ga(s(r.targetSnapshot.root)).pipe(u2(null),Xn(1))}),vS(()=>this.afterPreactivation()),$n(()=>{let{currentSnapshot:r,targetSnapshot:s}=i,a=this.createViewTransition?.(this.environmentInjector,r.root,s.root);return a?ro(a).pipe(je(()=>i)):Ce(i)}),je(r=>{let s=f4A(A.routeReuseStrategy,r.targetSnapshot,r.currentRouterState);return this.currentTransition=i=Fe(sA({},r),{targetRouterState:s}),this.currentNavigation.targetRouterState=s,i}),So(()=>{this.events.next(new Rh)}),w4A(this.rootContexts,A.routeReuseStrategy,r=>this.events.next(r),this.inputBindingEnabled),Xn(1),So({next:r=>{n=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new ac(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects))),this.titleStrategy?.updateTitle(r.targetRouterState.snapshot),r.resolve(!0)},complete:()=>{n=!0}}),kt(this.transitionAbortSubject.pipe(So(r=>{throw r}))),nl(()=>{!n&&!o&&this.cancelNavigationTransition(i,"",Da.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation=null,this.currentTransition=null)}),Gr(r=>{if(this.destroyed)return i.resolve(!1),lr;if(o=!0,Kj(r))this.events.next(new Dl(i.id,this.urlSerializer.serialize(i.extractedUrl),r.message,r.cancellationCode)),D4A(r)?this.events.next(new LB(r.url,r.navigationBehaviorOptions)):i.resolve(!1);else{let s=new SB(i.id,this.urlSerializer.serialize(i.extractedUrl),r,i.targetSnapshot??void 0);try{let a=da(this.environmentInjector,()=>this.navigationErrorHandler?.(s));if(a instanceof xB){let{message:c,cancellationCode:g}=E8(this.urlSerializer,a);this.events.next(new Dl(i.id,this.urlSerializer.serialize(i.extractedUrl),c,g)),this.events.next(new LB(a.redirectTo,a.navigationBehaviorOptions))}else throw this.events.next(s),r}catch(a){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(a)}}return lr}))}))}cancelNavigationTransition(A,i,n){let o=new Dl(A.id,this.urlSerializer.serialize(A.extractedUrl),i,n);this.events.next(o),A.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let A=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=this.currentNavigation?.targetBrowserUrl??this.currentNavigation?.extractedUrl;return A.toString()!==i?.toString()&&!this.currentNavigation?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function C3A(t){return t!==A8}var qj=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(d3A),providedIn:"root"})}return t})(),u8=class{shouldDetach(e){return!1}store(e,A){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,A){return e.routeConfig===A.routeConfig}},d3A=(()=>{class t extends u8{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Vj=(()=>{class t{urlSerializer=f(rC);options=f(aC,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=f(ha);urlHandlingStrategy=f(m8);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new wl;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:A,initialUrl:i,targetBrowserUrl:n}){let o=A!==void 0?this.urlHandlingStrategy.merge(A,i):i,r=n??o;return r instanceof wl?this.urlSerializer.serialize(r):r}commitTransition({targetRouterState:A,finalUrl:i,initialUrl:n}){i&&A?(this.currentUrlTree=i,this.rawUrlTree=this.urlHandlingStrategy.merge(i,n),this.routerState=A):this.rawUrlTree=n}routerState=Lj(null);getRouterState(){return this.routerState}stateMemento=this.createStateMemento();updateStateMemento(){this.stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}resetInternalState({finalUrl:A}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,A??this.rawUrlTree)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(B3A),providedIn:"root"})}return t})(),B3A=(()=>{class t extends Vj{currentPageId=0;lastSuccessfulId=-1;restoredState(){return this.location.getState()}get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(A){return this.location.subscribe(i=>{i.type==="popstate"&&setTimeout(()=>{A(i.url,i.state,"popstate")})})}handleRouterEvent(A,i){A instanceof O2?this.updateStateMemento():A instanceof yl?this.commitTransition(i):A instanceof Sh?this.urlUpdateStrategy==="eager"&&(i.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(i),i)):A instanceof Rh?(this.commitTransition(i),this.urlUpdateStrategy==="deferred"&&!i.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(i),i)):A instanceof Dl&&(A.code===Da.GuardRejected||A.code===Da.NoDataFromResolver)?this.restoreHistory(i):A instanceof SB?this.restoreHistory(i,!0):A instanceof ac&&(this.lastSuccessfulId=A.id,this.currentPageId=this.browserPageId)}setBrowserUrl(A,{extras:i,id:n}){let{replaceUrl:o,state:r}=i;if(this.location.isCurrentPathEqualTo(A)||o){let s=this.browserPageId,a=sA(sA({},r),this.generateNgRouterState(n,s));this.location.replaceState(A,"",a)}else{let s=sA(sA({},r),this.generateNgRouterState(n,this.browserPageId+1));this.location.go(A,"",s)}}restoreHistory(A,i=!1){if(this.canceledNavigationResolution==="computed"){let n=this.browserPageId,o=this.currentPageId-n;o!==0?this.location.historyGo(o):this.getCurrentUrlTree()===A.finalUrl&&o===0&&(this.resetInternalState(A),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(i&&this.resetInternalState(A),this.resetUrlToCurrentUrlTree())}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(A,i){return this.canceledNavigationResolution==="computed"?{navigationId:A,\u0275routerPageId:i}:{navigationId:A}}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function D8(t,e){t.events.pipe(Nt(A=>A instanceof ac||A instanceof Dl||A instanceof SB||A instanceof yl),je(A=>A instanceof ac||A instanceof yl?0:(A instanceof Dl?A.code===Da.Redirect||A.code===Da.SupersededByNewNavigation:!1)?2:1),Nt(A=>A!==2),Xn(1)).subscribe(()=>{e()})}var E3A={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Q3A={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"},vl=(()=>{class t{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=f(mb);stateManager=f(Vj);options=f(aC,{optional:!0})||{};pendingTasks=f(m0);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=f(p8);urlSerializer=f(rC);location=f(ha);urlHandlingStrategy=f(m8);_events=new qA;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=f(qj);onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=f(_B,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!f(Uh,{optional:!0});constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:A=>{this.console.warn(A)}}),this.subscribeToNavigationEvents()}eventsSubscription=new Kt;subscribeToNavigationEvents(){let A=this.navigationTransitions.events.subscribe(i=>{try{let n=this.navigationTransitions.currentTransition,o=this.navigationTransitions.currentNavigation;if(n!==null&&o!==null){if(this.stateManager.handleRouterEvent(i,o),i instanceof Dl&&i.code!==Da.Redirect&&i.code!==Da.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof ac)this.navigated=!0;else if(i instanceof LB){let r=i.navigationBehaviorOptions,s=this.urlHandlingStrategy.merge(i.url,n.currentRawUrl),a=sA({browserUrl:n.extras.browserUrl,info:n.extras.info,skipLocationChange:n.extras.skipLocationChange,replaceUrl:n.extras.replaceUrl||this.urlUpdateStrategy==="eager"||C3A(n.source)},r);this.scheduleNavigation(s,A8,null,a,{resolve:n.resolve,reject:n.reject,promise:n.promise})}}h3A(i)&&this._events.next(i)}catch(n){this.navigationTransitions.transitionAbortSubject.next(n)}});this.eventsSubscription.add(A)}resetRootComponentType(A){this.routerState.root.component=A,this.navigationTransitions.rootComponentType=A}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),A8,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((A,i,n)=>{this.navigateToSyncWithBrowser(A,n,i)})}navigateToSyncWithBrowser(A,i,n){let o={replaceUrl:!0},r=n?.navigationId?n:null;if(n){let a=sA({},n);delete a.navigationId,delete a.\u0275routerPageId,Object.keys(a).length!==0&&(o.state=a)}let s=this.parseUrl(A);this.scheduleNavigation(s,i,r,o)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(A){this.config=A.map(zS),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(A,i={}){let{relativeTo:n,queryParams:o,fragment:r,queryParamsHandling:s,preserveFragment:a}=i,c=a?this.currentUrlTree.fragment:r,g=null;switch(s??this.options.defaultQueryParamsHandling){case"merge":g=sA(sA({},this.currentUrlTree.queryParams),o);break;case"preserve":g=this.currentUrlTree.queryParams;break;default:g=o||null}g!==null&&(g=this.removeEmptyProps(g));let I;try{let C=n?n.snapshot:this.routerState.snapshot.root;I=bj(C)}catch{(typeof A[0]!="string"||A[0][0]!=="/")&&(A=[]),I=this.currentUrlTree.root}return kj(I,A,g,c??null)}navigateByUrl(A,i={skipLocationChange:!1}){let n=bB(A)?A:this.parseUrl(A),o=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(o,A8,null,i)}navigate(A,i={skipLocationChange:!1}){return u3A(A),this.navigateByUrl(this.createUrlTree(A,i),i)}serializeUrl(A){return this.urlSerializer.serialize(A)}parseUrl(A){try{return this.urlSerializer.parse(A)}catch{return this.urlSerializer.parse("/")}}isActive(A,i){let n;if(i===!0?n=sA({},E3A):i===!1?n=sA({},Q3A):n=i,bB(A))return cj(this.currentUrlTree,A,n);let o=this.parseUrl(A);return cj(this.currentUrlTree,o,n)}removeEmptyProps(A){return Object.entries(A).reduce((i,[n,o])=>(o!=null&&(i[n]=o),i),{})}scheduleNavigation(A,i,n,o,r){if(this.disposed)return Promise.resolve(!1);let s,a,c;r?(s=r.resolve,a=r.reject,c=r.promise):c=new Promise((I,C)=>{s=I,a=C});let g=this.pendingTasks.add();return D8(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(g))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:n,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:A,extras:o,resolve:s,reject:a,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(I=>Promise.reject(I))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function u3A(t){for(let e=0;e{class t{router;injector;preloadingStrategy;loader;subscription;constructor(A,i,n,o){this.router=A,this.injector=i,this.preloadingStrategy=n,this.loader=o}setUpPreloading(){this.subscription=this.router.events.pipe(Nt(A=>A instanceof ac),tl(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(A,i){let n=[];for(let o of i){o.providers&&!o._injector&&(o._injector=Nu(o.providers,A,`Route: ${o.path}`));let r=o._injector??A,s=o._loadedInjector??r;(o.loadChildren&&!o._loadedRoutes&&o.canLoad===void 0||o.loadComponent&&!o._loadedComponent)&&n.push(this.preloadConfig(r,o)),(o.children||o._loadedRoutes)&&n.push(this.processRoutes(s,o.children??o._loadedRoutes))}return ro(n).pipe(E2())}preloadConfig(A,i){return this.preloadingStrategy.preload(i,()=>{let n;i.loadChildren&&i.canLoad===void 0?n=this.loader.loadChildren(A,i):n=Ce(null);let o=n.pipe(or(r=>r===null?Ce(void 0):(i._loadedRoutes=r.routes,i._loadedInjector=r.injector,this.processRoutes(r.injector??A,r.routes))));if(i.loadComponent&&!i._loadedComponent){let r=this.loader.loadComponent(i);return ro([o,r]).pipe(E2())}else return o})}static \u0275fac=function(i){return new(i||t)(be(vl),be(vr),be(Yh),be(f8))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Wj=new eA(""),f3A=(()=>{class t{urlSerializer;transitions;viewportScroller;zone;options;routerEventsSubscription;scrollEventsSubscription;lastId=0;lastSource="imperative";restoredId=0;store={};constructor(A,i,n,o,r={}){this.urlSerializer=A,this.transitions=i,this.viewportScroller=n,this.zone=o,this.options=r,r.scrollPositionRestoration||="disabled",r.anchorScrolling||="disabled"}init(){this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(A=>{A instanceof O2?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=A.navigationTrigger,this.restoredId=A.restoredState?A.restoredState.navigationId:0):A instanceof ac?(this.lastId=A.id,this.scheduleScrollEvent(A,this.urlSerializer.parse(A.urlAfterRedirects).fragment)):A instanceof yl&&A.code===kB.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(A,this.urlSerializer.parse(A.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(A=>{A instanceof RB&&(A.position?this.options.scrollPositionRestoration==="top"?this.viewportScroller.scrollToPosition([0,0]):this.options.scrollPositionRestoration==="enabled"&&this.viewportScroller.scrollToPosition(A.position):A.anchor&&this.options.anchorScrolling==="enabled"?this.viewportScroller.scrollToAnchor(A.anchor):this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(A,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new RB(A,this.lastSource==="popstate"?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static \u0275fac=function(i){IH()};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();function m3A(t){return t.routerState.root}function Th(t,e){return{\u0275kind:t,\u0275providers:e}}function p3A(){let t=f(Zt);return e=>{let A=t.get(Ca);if(e!==A.components[0])return;let i=t.get(vl),n=t.get(Xj);t.get(WS)===1&&i.initialNavigation(),t.get(eq,null,bi.Optional)?.setUpPreloading(),t.get(Wj,null,bi.Optional)?.init(),i.resetRootComponentType(A.componentTypes[0]),n.closed||(n.next(),n.complete(),n.unsubscribe())}}var Xj=new eA("",{factory:()=>new qA}),WS=new eA("",{providedIn:"root",factory:()=>1});function $j(){let t=[{provide:WS,useValue:0},yb(()=>{let e=f(Zt);return e.get(_b,Promise.resolve()).then(()=>new Promise(i=>{let n=e.get(vl),o=e.get(Xj);D8(n,()=>{i(!0)}),e.get(p8).afterPreactivation=()=>(i(!0),o.closed?Ce(void 0):o),n.initialNavigation()}))})];return Th(2,t)}function Aq(){let t=[yb(()=>{f(vl).setUpLocationChangeListener()}),{provide:WS,useValue:2}];return Th(3,t)}var eq=new eA("");function tq(t){return Th(0,[{provide:eq,useExisting:Zj},{provide:Yh,useExisting:t}])}function iq(){return Th(8,[HS,{provide:Uh,useExisting:HS}])}function nq(t){Cg("NgRouterViewTransitions");let e=[{provide:jS,useValue:jj},{provide:qS,useValue:sA({skipNextTransition:!!t?.skipInitialTransition},t)}];return Th(9,e)}var oq=[ha,{provide:rC,useClass:H2},vl,sC,{provide:xc,useFactory:m3A,deps:[vl]},f8,[]],w8=(()=>{class t{constructor(){}static forRoot(A,i){return{ngModule:t,providers:[oq,[],{provide:_B,multi:!0,useValue:A},[],i?.errorHandler?{provide:VS,useValue:i.errorHandler}:[],{provide:aC,useValue:i||{}},i?.useHash?w3A():y3A(),D3A(),i?.preloadingStrategy?tq(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?v3A(i):[],i?.bindToComponentInputs?iq().\u0275providers:[],i?.enableViewTransitions?nq().\u0275providers:[],M3A()]}}static forChild(A){return{ngModule:t,providers:[{provide:_B,multi:!0,useValue:A}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();function D3A(){return{provide:Wj,useFactory:()=>{let t=f(fO),e=f(ye),A=f(aC),i=f(p8),n=f(rC);return A.scrollOffset&&t.setOffset(A.scrollOffset),new f3A(n,i,t,e,A)}}}function w3A(){return{provide:D0,useClass:Jb}}function y3A(){return{provide:D0,useClass:kp}}function v3A(t){return[t.initialNavigation==="disabled"?Aq().\u0275providers:[],t.initialNavigation==="enabledBlocking"?$j().\u0275providers:[]]}var ZS=new eA("");function M3A(){return[{provide:ZS,useFactory:p3A},{provide:vb,multi:!0,useExisting:ZS}]}var k3A=["*"];var S3A=new eA("MAT_CARD_CONFIG"),y8=(()=>{class t{appearance;constructor(){let A=f(S3A,{optional:!0});this.appearance=A?.appearance||"raised"}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,n){i&2&&he("mat-mdc-card-outlined",n.appearance==="outlined")("mdc-card--outlined",n.appearance==="outlined")},inputs:{appearance:"appearance"},exportAs:["matCard"],ngContentSelectors:k3A,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},styles:['.mat-mdc-card{display:flex;flex-direction:column;box-sizing:border-box;position:relative;border-style:solid;border-width:0;background-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium));box-shadow:var(--mdc-elevated-card-container-elevation, var(--mat-sys-level1))}.mat-mdc-card::after{position:absolute;top:0;left:0;width:100%;height:100%;border:solid 1px rgba(0,0,0,0);content:"";display:block;pointer-events:none;box-sizing:border-box;border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium))}.mat-mdc-card-outlined{background-color:var(--mdc-outlined-card-container-color, var(--mat-sys-surface));border-radius:var(--mdc-outlined-card-container-shape, var(--mat-sys-corner-medium));border-width:var(--mdc-outlined-card-outline-width, 1px);border-color:var(--mdc-outlined-card-outline-color, var(--mat-sys-outline-variant));box-shadow:var(--mdc-outlined-card-container-elevation, var(--mat-sys-level0))}.mat-mdc-card-outlined::after{border:none}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mat-mdc-card-actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font, var(--mat-sys-title-large-font));line-height:var(--mat-card-title-text-line-height, var(--mat-sys-title-large-line-height));font-size:var(--mat-card-title-text-size, var(--mat-sys-title-large-size));letter-spacing:var(--mat-card-title-text-tracking, var(--mat-sys-title-large-tracking));font-weight:var(--mat-card-title-text-weight, var(--mat-sys-title-large-weight))}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color, var(--mat-sys-on-surface));font-family:var(--mat-card-subtitle-text-font, var(--mat-sys-title-medium-font));line-height:var(--mat-card-subtitle-text-line-height, var(--mat-sys-title-medium-line-height));font-size:var(--mat-card-subtitle-text-size, var(--mat-sys-title-medium-size));letter-spacing:var(--mat-card-subtitle-text-tracking, var(--mat-sys-title-medium-tracking));font-weight:var(--mat-card-subtitle-text-weight, var(--mat-sys-title-medium-weight))}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end}'],encapsulation:2,changeDetection:0})}return t})();var rq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,pn]})}return t})();var v8=class{};function M8(t){return t&&typeof t.connect=="function"&&!(t instanceof C2)}var GB=function(t){return t[t.REPLACED=0]="REPLACED",t[t.INSERTED=1]="INSERTED",t[t.MOVED=2]="MOVED",t[t.REMOVED=3]="REMOVED",t}(GB||{}),Hh=new eA("_ViewRepeater"),KB=class{applyChanges(e,A,i,n,o){e.forEachOperation((r,s,a)=>{let c,g;if(r.previousIndex==null){let I=i(r,s,a);c=A.createEmbeddedView(I.templateRef,I.context,I.index),g=GB.INSERTED}else a==null?(A.remove(s),g=GB.REMOVED):(c=A.get(s),A.move(c,a),g=GB.MOVED);o&&o({context:c?.context,operation:g,record:r})})}detach(){}};var P2=class{_multiple;_emitChanges;compareWith;_selection=new Set;_deselectedToEmit=[];_selectedToEmit=[];_selected;get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}changed=new qA;constructor(e=!1,A,i=!0,n){this._multiple=e,this._emitChanges=i,this.compareWith=n,A&&A.length&&(e?A.forEach(o=>this._markSelected(o)):this._markSelected(A[0]),this._selectedToEmit.length=0)}select(...e){this._verifyValueAssignment(e),e.forEach(i=>this._markSelected(i));let A=this._hasQueuedChanges();return this._emitChangeEvent(),A}deselect(...e){this._verifyValueAssignment(e),e.forEach(i=>this._unmarkSelected(i));let A=this._hasQueuedChanges();return this._emitChangeEvent(),A}setSelection(...e){this._verifyValueAssignment(e);let A=this.selected,i=new Set(e);e.forEach(o=>this._markSelected(o)),A.filter(o=>!i.has(this._getConcreteValue(o,i))).forEach(o=>this._unmarkSelected(o));let n=this._hasQueuedChanges();return this._emitChangeEvent(),n}toggle(e){return this.isSelected(e)?this.deselect(e):this.select(e)}clear(e=!0){this._unmarkAll();let A=this._hasQueuedChanges();return e&&this._emitChangeEvent(),A}isSelected(e){return this._selection.has(this._getConcreteValue(e))}isEmpty(){return this._selection.size===0}hasValue(){return!this.isEmpty()}sort(e){this._multiple&&this.selected&&this._selected.sort(e)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(e){e=this._getConcreteValue(e),this.isSelected(e)||(this._multiple||this._unmarkAll(),this.isSelected(e)||this._selection.add(e),this._emitChanges&&this._selectedToEmit.push(e))}_unmarkSelected(e){e=this._getConcreteValue(e),this.isSelected(e)&&(this._selection.delete(e),this._emitChanges&&this._deselectedToEmit.push(e))}_unmarkAll(){this.isEmpty()||this._selection.forEach(e=>this._unmarkSelected(e))}_verifyValueAssignment(e){e.length>1&&this._multiple}_hasQueuedChanges(){return!!(this._deselectedToEmit.length||this._selectedToEmit.length)}_getConcreteValue(e,A){if(this.compareWith){A=A??this._selection;for(let i of A)if(this.compareWith(e,i))return i;return e}else return e}};var b8=(()=>{class t{_listeners=[];notify(A,i){for(let n of this._listeners)n(A,i)}listen(A){return this._listeners.push(A),()=>{this._listeners=this._listeners.filter(i=>A!==i)}}ngOnDestroy(){this._listeners=[]}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var L3A=20,q2=(()=>{class t{_ngZone=f(ye);_platform=f(ni);_renderer=f(Ms).createRenderer(null,null);_cleanupGlobalListener;constructor(){}_scrolled=new qA;_scrolledCount=0;scrollContainers=new Map;register(A){this.scrollContainers.has(A)||this.scrollContainers.set(A,A.elementScrolled().subscribe(()=>this._scrolled.next(A)))}deregister(A){let i=this.scrollContainers.get(A);i&&(i.unsubscribe(),this.scrollContainers.delete(A))}scrolled(A=L3A){return this._platform.isBrowser?new gt(i=>{this._cleanupGlobalListener||(this._cleanupGlobalListener=this._ngZone.runOutsideAngular(()=>this._renderer.listen("document","scroll",()=>this._scrolled.next())));let n=A>0?this._scrolled.pipe(Dd(A)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{n.unsubscribe(),this._scrolledCount--,this._scrolledCount||(this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0)}}):Ce()}ngOnDestroy(){this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0,this.scrollContainers.forEach((A,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(A,i){let n=this.getAncestorScrollContainers(A);return this.scrolled(i).pipe(Nt(o=>!o||n.indexOf(o)>-1))}getAncestorScrollContainers(A){let i=[];return this.scrollContainers.forEach((n,o)=>{this._scrollableContainsElement(o,A)&&i.push(o)}),i}_scrollableContainsElement(A,i){let n=fa(i),o=A.getElementRef().nativeElement;do if(n==o)return!0;while(n=n.parentElement);return!1}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),k0=(()=>{class t{elementRef=f(se);scrollDispatcher=f(q2);ngZone=f(ye);dir=f(po,{optional:!0});_scrollElement=this.elementRef.nativeElement;_destroyed=new qA;_renderer=f(qi);_cleanupScroll;_elementScrolled=new qA;constructor(){}ngOnInit(){this._cleanupScroll=this.ngZone.runOutsideAngular(()=>this._renderer.listen(this._scrollElement,"scroll",A=>this._elementScrolled.next(A))),this.scrollDispatcher.register(this)}ngOnDestroy(){this._cleanupScroll?.(),this._elementScrolled.complete(),this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(A){let i=this.elementRef.nativeElement,n=this.dir&&this.dir.value=="rtl";A.left==null&&(A.left=n?A.end:A.start),A.right==null&&(A.right=n?A.start:A.end),A.bottom!=null&&(A.top=i.scrollHeight-i.clientHeight-A.bottom),n&&lB()!=hg.NORMAL?(A.left!=null&&(A.right=i.scrollWidth-i.clientWidth-A.left),lB()==hg.INVERTED?A.left=A.right:lB()==hg.NEGATED&&(A.left=A.right?-A.right:A.right)):A.right!=null&&(A.left=i.scrollWidth-i.clientWidth-A.right),this._applyScrollToOptions(A)}_applyScrollToOptions(A){let i=this.elementRef.nativeElement;$p()?i.scrollTo(A):(A.top!=null&&(i.scrollTop=A.top),A.left!=null&&(i.scrollLeft=A.left))}measureScrollOffset(A){let i="left",n="right",o=this.elementRef.nativeElement;if(A=="top")return o.scrollTop;if(A=="bottom")return o.scrollHeight-o.clientHeight-o.scrollTop;let r=this.dir&&this.dir.value=="rtl";return A=="start"?A=r?n:i:A=="end"&&(A=r?i:n),r&&lB()==hg.INVERTED?A==i?o.scrollWidth-o.clientWidth-o.scrollLeft:o.scrollLeft:r&&lB()==hg.NEGATED?A==i?o.scrollLeft+o.scrollWidth-o.clientWidth:-o.scrollLeft:A==i?o.scrollLeft:o.scrollWidth-o.clientWidth-o.scrollLeft}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return t})(),x3A=20,Nc=(()=>{class t{_platform=f(ni);_listeners;_viewportSize;_change=new qA;_document=f(at,{optional:!0});constructor(){let A=f(ye),i=f(Ms).createRenderer(null,null);A.runOutsideAngular(()=>{if(this._platform.isBrowser){let n=o=>this._change.next(o);this._listeners=[i.listen("window","resize",n),i.listen("window","orientationchange",n)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(A=>A()),this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();let A={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),A}getViewportRect(){let A=this.getViewportScrollPosition(),{width:i,height:n}=this.getViewportSize();return{top:A.top,left:A.left,bottom:A.top+n,right:A.left+i,height:n,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};let A=this._document,i=this._getWindow(),n=A.documentElement,o=n.getBoundingClientRect(),r=-o.top||A.body.scrollTop||i.scrollY||n.scrollTop||0,s=-o.left||A.body.scrollLeft||i.scrollX||n.scrollLeft||0;return{top:r,left:s}}change(A=x3A){return A>0?this._change.pipe(Dd(A)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){let A=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:A.innerWidth,height:A.innerHeight}:{width:0,height:0}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var j2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})(),k8=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[G2,j2,G2,j2]})}return t})();var Oh=class{_attachedHost;attach(e){return this._attachedHost=e,e.attach(this)}detach(){let e=this._attachedHost;e!=null&&(this._attachedHost=null,e.detach())}get isAttached(){return this._attachedHost!=null}setAttachedHost(e){this._attachedHost=e}},yg=class extends Oh{component;viewContainerRef;injector;componentFactoryResolver;projectableNodes;constructor(e,A,i,n,o){super(),this.component=e,this.viewContainerRef=A,this.injector=i,this.projectableNodes=o}},Rs=class extends Oh{templateRef;viewContainerRef;context;injector;constructor(e,A,i,n){super(),this.templateRef=e,this.viewContainerRef=A,this.context=i,this.injector=n}get origin(){return this.templateRef.elementRef}attach(e,A=this.context){return this.context=A,super.attach(e)}detach(){return this.context=void 0,super.detach()}},XS=class extends Oh{element;constructor(e){super(),this.element=e instanceof se?e.nativeElement:e}},V2=class{_attachedPortal;_disposeFn;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(e){if(e instanceof yg)return this._attachedPortal=e,this.attachComponentPortal(e);if(e instanceof Rs)return this._attachedPortal=e,this.attachTemplatePortal(e);if(this.attachDomPortal&&e instanceof XS)return this._attachedPortal=e,this.attachDomPortal(e)}attachDomPortal=null;detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(e){this._disposeFn=e}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}};var zh=class extends V2{outletElement;_appRef;_defaultInjector;_document;constructor(e,A,i,n,o){super(),this.outletElement=e,this._appRef=i,this._defaultInjector=n,this._document=o}attachComponentPortal(e){let A;if(e.viewContainerRef){let i=e.injector||e.viewContainerRef.injector,n=i.get(Il,null,{optional:!0})||void 0;A=e.viewContainerRef.createComponent(e.component,{index:e.viewContainerRef.length,injector:i,ngModuleRef:n,projectableNodes:e.projectableNodes||void 0}),this.setDisposeFn(()=>A.destroy())}else A=vp(e.component,{elementInjector:e.injector||this._defaultInjector||Zt.NULL,environmentInjector:this._appRef.injector,projectableNodes:e.projectableNodes||void 0}),this._appRef.attachView(A.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(A.hostView),A.destroy()});return this.outletElement.appendChild(this._getComponentRootNode(A)),this._attachedPortal=e,A}attachTemplatePortal(e){let A=e.viewContainerRef,i=A.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return i.rootNodes.forEach(n=>this.outletElement.appendChild(n)),i.detectChanges(),this.setDisposeFn(()=>{let n=A.indexOf(i);n!==-1&&A.remove(n)}),this._attachedPortal=e,i}attachDomPortal=e=>{let A=e.element;A.parentNode;let i=this._document.createComment("dom-portal");A.parentNode.insertBefore(i,A),this.outletElement.appendChild(A),this._attachedPortal=e,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(A,i)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(e){return e.hostView.rootNodes[0]}};var sq=(()=>{class t extends Rs{constructor(){let A=f(mn),i=f(Sn);super(A,i)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[lt]})}return t})();var wa=(()=>{class t extends V2{_moduleRef=f(Il,{optional:!0});_document=f(at);_viewContainerRef=f(Sn);_isInitialized=!1;_attachedRef;constructor(){super()}get portal(){return this._attachedPortal}set portal(A){this.hasAttached()&&!A&&!this._isInitialized||(this.hasAttached()&&super.detach(),A&&super.attach(A),this._attachedPortal=A||null)}attached=new YA;get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(A){A.setAttachedHost(this);let i=A.viewContainerRef!=null?A.viewContainerRef:this._viewContainerRef,n=i.createComponent(A.component,{index:i.length,injector:A.injector||i.injector,projectableNodes:A.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0});return i!==this._viewContainerRef&&this._getRootNode().appendChild(n.hostView.rootNodes[0]),super.setDisposeFn(()=>n.destroy()),this._attachedPortal=A,this._attachedRef=n,this.attached.emit(n),n}attachTemplatePortal(A){A.setAttachedHost(this);let i=this._viewContainerRef.createEmbeddedView(A.templateRef,A.context,{injector:A.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=A,this._attachedRef=i,this.attached.emit(i),i}attachDomPortal=A=>{let i=A.element;i.parentNode;let n=this._document.createComment("dom-portal");A.setAttachedHost(this),i.parentNode.insertBefore(n,i),this._getRootNode().appendChild(i),this._attachedPortal=A,super.setDisposeFn(()=>{n.parentNode&&n.parentNode.replaceChild(i,n)})};_getRootNode(){let A=this._viewContainerRef.element.nativeElement;return A.nodeType===A.ELEMENT_NODE?A:A.parentNode}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[lt]})}return t})();var UB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();var aq=$p(),$S=class{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(e,A){this._viewportRuler=e,this._document=A}attach(){}enable(){if(this._canBeEnabled()){let e=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=e.style.left||"",this._previousHTMLStyles.top=e.style.top||"",e.style.left=hr(-this._previousScrollPosition.left),e.style.top=hr(-this._previousScrollPosition.top),e.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){let e=this._document.documentElement,A=this._document.body,i=e.style,n=A.style,o=i.scrollBehavior||"",r=n.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,e.classList.remove("cdk-global-scrollblock"),aq&&(i.scrollBehavior=n.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),aq&&(i.scrollBehavior=o,n.scrollBehavior=r)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;let A=this._document.body,i=this._viewportRuler.getViewportSize();return A.scrollHeight>i.height||A.scrollWidth>i.width}};var AR=class{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(e,A,i,n){this._scrollDispatcher=e,this._ngZone=A,this._viewportRuler=i,this._config=n}attach(e){this._overlayRef,this._overlayRef=e}enable(){if(this._scrollSubscription)return;let e=this._scrollDispatcher.scrolled(0).pipe(Nt(A=>!A||!this._overlayRef.overlayElement.contains(A.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=e.subscribe(()=>{let A=this._viewportRuler.getViewportScrollPosition().top;Math.abs(A-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=e.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}},S8=class{enable(){}disable(){}attach(){}};function eR(t,e){return e.some(A=>{let i=t.bottomA.bottom,o=t.rightA.right;return i||n||o||r})}function cq(t,e){return e.some(A=>{let i=t.topA.bottom,o=t.leftA.right;return i||n||o||r})}var tR=class{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(e,A,i,n){this._scrollDispatcher=e,this._viewportRuler=A,this._ngZone=i,this._config=n}attach(e){this._overlayRef,this._overlayRef=e}enable(){if(!this._scrollSubscription){let e=this._config?this._config.scrollThrottle:0;this._scrollSubscription=this._scrollDispatcher.scrolled(e).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){let A=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:n}=this._viewportRuler.getViewportSize();eR(A,[{width:i,height:n,bottom:n,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}})}}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}},F3A=(()=>{class t{_scrollDispatcher=f(q2);_viewportRuler=f(Nc);_ngZone=f(ye);_document=f(at);constructor(){}noop=()=>new S8;close=A=>new AR(this._scrollDispatcher,this._ngZone,this._viewportRuler,A);block=()=>new $S(this._viewportRuler,this._document);reposition=A=>new tR(this._scrollDispatcher,this._viewportRuler,this._ngZone,A);static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Ml=class{positionStrategy;scrollStrategy=new S8;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;constructor(e){if(e){let A=Object.keys(e);for(let i of A)e[i]!==void 0&&(this[i]=e[i])}}};var iR=class{connectionPair;scrollableViewProperties;constructor(e,A){this.connectionPair=e,this.scrollableViewProperties=A}};var Bq=(()=>{class t{_attachedOverlays=[];_document=f(at);_isAttached;constructor(){}ngOnDestroy(){this.detach()}add(A){this.remove(A),this._attachedOverlays.push(A)}remove(A){let i=this._attachedOverlays.indexOf(A);i>-1&&this._attachedOverlays.splice(i,1),this._attachedOverlays.length===0&&this.detach()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),_3A=(()=>{class t extends Bq{_ngZone=f(ye);_renderer=f(Ms).createRenderer(null,null);_cleanupKeydown;add(A){super.add(A),this._isAttached||(this._ngZone.runOutsideAngular(()=>{this._cleanupKeydown=this._renderer.listen("body","keydown",this._keydownListener)}),this._isAttached=!0)}detach(){this._isAttached&&(this._cleanupKeydown?.(),this._isAttached=!1)}_keydownListener=A=>{let i=this._attachedOverlays;for(let n=i.length-1;n>-1;n--)if(i[n]._keydownEvents.observers.length>0){this._ngZone.run(()=>i[n]._keydownEvents.next(A));break}};static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),G3A=(()=>{class t extends Bq{_platform=f(ni);_ngZone=f(ye,{optional:!0});_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget;add(A){if(super.add(A),!this._isAttached){let i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){let A=this._document.body;A.removeEventListener("pointerdown",this._pointerDownListener,!0),A.removeEventListener("click",this._clickListener,!0),A.removeEventListener("auxclick",this._clickListener,!0),A.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(A.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(A){A.addEventListener("pointerdown",this._pointerDownListener,!0),A.addEventListener("click",this._clickListener,!0),A.addEventListener("auxclick",this._clickListener,!0),A.addEventListener("contextmenu",this._clickListener,!0)}_pointerDownListener=A=>{this._pointerDownEventTarget=ic(A)};_clickListener=A=>{let i=ic(A),n=A.type==="click"&&this._pointerDownEventTarget?this._pointerDownEventTarget:i;this._pointerDownEventTarget=null;let o=this._attachedOverlays.slice();for(let r=o.length-1;r>-1;r--){let s=o[r];if(s._outsidePointerEvents.observers.length<1||!s.hasAttached())continue;if(gq(s.overlayElement,i)||gq(s.overlayElement,n))break;let a=s._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>a.next(A)):a.next(A)}};static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function gq(t,e){let A=typeof ShadowRoot<"u"&&ShadowRoot,i=e;for(;i;){if(i===t)return!0;i=A&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}var Eq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:[".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}"],encapsulation:2,changeDetection:0})}return t})(),R8=(()=>{class t{_platform=f(ni);_containerElement;_document=f(at);_styleLoader=f(Pn);constructor(){}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let A="cdk-overlay-container";if(this._platform.isBrowser||dk()){let n=this._document.querySelectorAll(`.${A}[platform="server"], .${A}[platform="test"]`);for(let o=0;o{let e=this.element;clearTimeout(this._fallbackTimeout),this._cleanupTransitionEnd?.(),this._cleanupTransitionEnd=this._renderer.listen(e,"transitionend",this.dispose),this._fallbackTimeout=setTimeout(this.dispose,500),e.style.pointerEvents="none",e.classList.remove("cdk-overlay-backdrop-showing")})}dispose=()=>{clearTimeout(this._fallbackTimeout),this._cleanupClick?.(),this._cleanupTransitionEnd?.(),this._cleanupClick=this._cleanupTransitionEnd=this._fallbackTimeout=void 0,this.element.remove()}},JB=class{_portalOutlet;_host;_pane;_config;_ngZone;_keyboardDispatcher;_document;_location;_outsideClickDispatcher;_animationsDisabled;_injector;_renderer;_backdropClick=new qA;_attachments=new qA;_detachments=new qA;_positionStrategy;_scrollStrategy;_locationChanges=Kt.EMPTY;_backdropRef=null;_previousHostParent;_keydownEvents=new qA;_outsidePointerEvents=new qA;_renders=new qA;_afterRenderRef;_afterNextRenderRef;constructor(e,A,i,n,o,r,s,a,c,g=!1,I,C){this._portalOutlet=e,this._host=A,this._pane=i,this._config=n,this._ngZone=o,this._keyboardDispatcher=r,this._document=s,this._location=a,this._outsideClickDispatcher=c,this._animationsDisabled=g,this._injector=I,this._renderer=C,n.scrollStrategy&&(this._scrollStrategy=n.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=n.positionStrategy,this._afterRenderRef=ua(()=>ku(()=>{this._renders.next()},{injector:this._injector}))}get overlayElement(){return this._pane}get backdropElement(){return this._backdropRef?.element||null}get hostElement(){return this._host}attach(e){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);let A=this._portalOutlet.attach(e);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=Ir(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),typeof A?.onDestroy=="function"&&A.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),A}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();let e=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),e}dispose(){let e=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._backdropRef?.dispose(),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=this._backdropRef=null,e&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(e){e!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=e,this.hasAttached()&&(e.attach(this),this.updatePosition()))}updateSize(e){this._config=sA(sA({},this._config),e),this._updateElementSize()}setDirection(e){this._config=Fe(sA({},this._config),{direction:e}),this._updateElementDirection()}addPanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!0)}removePanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!1)}getDirection(){let e=this._config.direction;return e?typeof e=="string"?e:e.value:"ltr"}updateScrollStrategy(e){e!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=e,this.hasAttached()&&(e.attach(this),e.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;let e=this._pane.style;e.width=hr(this._config.width),e.height=hr(this._config.height),e.minWidth=hr(this._config.minWidth),e.minHeight=hr(this._config.minHeight),e.maxWidth=hr(this._config.maxWidth),e.maxHeight=hr(this._config.maxHeight)}_togglePointerEvents(e){this._pane.style.pointerEvents=e?"":"none"}_attachBackdrop(){let e="cdk-overlay-backdrop-showing";this._backdropRef?.dispose(),this._backdropRef=new nR(this._document,this._renderer,this._ngZone,A=>{this._backdropClick.next(A)}),this._animationsDisabled&&this._backdropRef.element.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropRef.element,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropRef.element,this._host),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this._backdropRef?.element.classList.add(e))}):this._backdropRef.element.classList.add(e)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){this._animationsDisabled?(this._backdropRef?.dispose(),this._backdropRef=null):this._backdropRef?.detach()}_toggleClasses(e,A,i){let n=CB(A||[]).filter(o=>!!o);n.length&&(i?e.classList.add(...n):e.classList.remove(...n))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{let e=this._renders.pipe(kt(Hn(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||this._pane.children.length===0)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),e.unsubscribe())})})}_disposeScrollStrategy(){let e=this._scrollStrategy;e?.disable(),e?.detach?.()}},lq="cdk-overlay-connected-position-bounding-box",K3A=/([A-Za-z%]+)$/,oR=class{_viewportRuler;_document;_platform;_overlayContainer;_overlayRef;_isInitialRender;_lastBoundingBoxSize={width:0,height:0};_isPushed=!1;_canPush=!0;_growAfterOpen=!1;_hasFlexibleDimensions=!0;_positionLocked=!1;_originRect;_overlayRect;_viewportRect;_containerRect;_viewportMargin=0;_scrollables=[];_preferredPositions=[];_origin;_pane;_isDisposed;_boundingBox;_lastPosition;_lastScrollVisibility;_positionChanges=new qA;_resizeSubscription=Kt.EMPTY;_offsetX=0;_offsetY=0;_transformOriginSelector;_appliedPanelClasses=[];_previousPushAmount;positionChanges=this._positionChanges;get positions(){return this._preferredPositions}constructor(e,A,i,n,o){this._viewportRuler=A,this._document=i,this._platform=n,this._overlayContainer=o,this.setOrigin(e)}attach(e){this._overlayRef&&this._overlayRef,this._validatePositions(),e.hostElement.classList.add(lq),this._overlayRef=e,this._boundingBox=e.hostElement,this._pane=e.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition){this.reapplyLastPosition();return}this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let e=this._originRect,A=this._overlayRect,i=this._viewportRect,n=this._containerRect,o=[],r;for(let s of this._preferredPositions){let a=this._getOriginPoint(e,n,s),c=this._getOverlayPoint(a,A,s),g=this._getOverlayFit(c,A,i,s);if(g.isCompletelyWithinViewport){this._isPushed=!1,this._applyPosition(s,a);return}if(this._canFitWithFlexibleDimensions(g,c,i)){o.push({position:s,origin:a,overlayRect:A,boundingBoxRect:this._calculateBoundingBoxRect(a,s)});continue}(!r||r.overlayFit.visibleAreaa&&(a=g,s=c)}this._isPushed=!1,this._applyPosition(s.position,s.origin);return}if(this._canPush){this._isPushed=!0,this._applyPosition(r.position,r.originPoint);return}this._applyPosition(r.position,r.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&cC(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(lq),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;let e=this._lastPosition;if(e){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let A=this._getOriginPoint(this._originRect,this._containerRect,e);this._applyPosition(e,A)}else this.apply()}withScrollableContainers(e){return this._scrollables=e,this}withPositions(e){return this._preferredPositions=e,e.indexOf(this._lastPosition)===-1&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(e){return this._viewportMargin=e,this}withFlexibleDimensions(e=!0){return this._hasFlexibleDimensions=e,this}withGrowAfterOpen(e=!0){return this._growAfterOpen=e,this}withPush(e=!0){return this._canPush=e,this}withLockedPosition(e=!0){return this._positionLocked=e,this}setOrigin(e){return this._origin=e,this}withDefaultOffsetX(e){return this._offsetX=e,this}withDefaultOffsetY(e){return this._offsetY=e,this}withTransformOriginOn(e){return this._transformOriginSelector=e,this}_getOriginPoint(e,A,i){let n;if(i.originX=="center")n=e.left+e.width/2;else{let r=this._isRtl()?e.right:e.left,s=this._isRtl()?e.left:e.right;n=i.originX=="start"?r:s}A.left<0&&(n-=A.left);let o;return i.originY=="center"?o=e.top+e.height/2:o=i.originY=="top"?e.top:e.bottom,A.top<0&&(o-=A.top),{x:n,y:o}}_getOverlayPoint(e,A,i){let n;i.overlayX=="center"?n=-A.width/2:i.overlayX==="start"?n=this._isRtl()?-A.width:0:n=this._isRtl()?0:-A.width;let o;return i.overlayY=="center"?o=-A.height/2:o=i.overlayY=="top"?0:-A.height,{x:e.x+n,y:e.y+o}}_getOverlayFit(e,A,i,n){let o=Cq(A),{x:r,y:s}=e,a=this._getOffset(n,"x"),c=this._getOffset(n,"y");a&&(r+=a),c&&(s+=c);let g=0-r,I=r+o.width-i.width,C=0-s,d=s+o.height-i.height,B=this._subtractOverflows(o.width,g,I),E=this._subtractOverflows(o.height,C,d),u=B*E;return{visibleArea:u,isCompletelyWithinViewport:o.width*o.height===u,fitsInViewportVertically:E===o.height,fitsInViewportHorizontally:B==o.width}}_canFitWithFlexibleDimensions(e,A,i){if(this._hasFlexibleDimensions){let n=i.bottom-A.y,o=i.right-A.x,r=Iq(this._overlayRef.getConfig().minHeight),s=Iq(this._overlayRef.getConfig().minWidth),a=e.fitsInViewportVertically||r!=null&&r<=n,c=e.fitsInViewportHorizontally||s!=null&&s<=o;return a&&c}return!1}_pushOverlayOnScreen(e,A,i){if(this._previousPushAmount&&this._positionLocked)return{x:e.x+this._previousPushAmount.x,y:e.y+this._previousPushAmount.y};let n=Cq(A),o=this._viewportRect,r=Math.max(e.x+n.width-o.width,0),s=Math.max(e.y+n.height-o.height,0),a=Math.max(o.top-i.top-e.y,0),c=Math.max(o.left-i.left-e.x,0),g=0,I=0;return n.width<=o.width?g=c||-r:g=e.xB&&!this._isInitialRender&&!this._growAfterOpen&&(r=e.y-B/2)}let a=A.overlayX==="start"&&!n||A.overlayX==="end"&&n,c=A.overlayX==="end"&&!n||A.overlayX==="start"&&n,g,I,C;if(c)C=i.width-e.x+this._viewportMargin*2,g=e.x-this._viewportMargin;else if(a)I=e.x,g=i.right-e.x;else{let d=Math.min(i.right-e.x+i.left,e.x),B=this._lastBoundingBoxSize.width;g=d*2,I=e.x-d,g>B&&!this._isInitialRender&&!this._growAfterOpen&&(I=e.x-B/2)}return{top:r,left:I,bottom:s,right:C,width:g,height:o}}_setBoundingBoxStyles(e,A){let i=this._calculateBoundingBoxRect(e,A);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));let n={};if(this._hasExactPosition())n.top=n.left="0",n.bottom=n.right=n.maxHeight=n.maxWidth="",n.width=n.height="100%";else{let o=this._overlayRef.getConfig().maxHeight,r=this._overlayRef.getConfig().maxWidth;n.height=hr(i.height),n.top=hr(i.top),n.bottom=hr(i.bottom),n.width=hr(i.width),n.left=hr(i.left),n.right=hr(i.right),A.overlayX==="center"?n.alignItems="center":n.alignItems=A.overlayX==="end"?"flex-end":"flex-start",A.overlayY==="center"?n.justifyContent="center":n.justifyContent=A.overlayY==="bottom"?"flex-end":"flex-start",o&&(n.maxHeight=hr(o)),r&&(n.maxWidth=hr(r))}this._lastBoundingBoxSize=i,cC(this._boundingBox.style,n)}_resetBoundingBoxStyles(){cC(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){cC(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(e,A){let i={},n=this._hasExactPosition(),o=this._hasFlexibleDimensions,r=this._overlayRef.getConfig();if(n){let g=this._viewportRuler.getViewportScrollPosition();cC(i,this._getExactOverlayY(A,e,g)),cC(i,this._getExactOverlayX(A,e,g))}else i.position="static";let s="",a=this._getOffset(A,"x"),c=this._getOffset(A,"y");a&&(s+=`translateX(${a}px) `),c&&(s+=`translateY(${c}px)`),i.transform=s.trim(),r.maxHeight&&(n?i.maxHeight=hr(r.maxHeight):o&&(i.maxHeight="")),r.maxWidth&&(n?i.maxWidth=hr(r.maxWidth):o&&(i.maxWidth="")),cC(this._pane.style,i)}_getExactOverlayY(e,A,i){let n={top:"",bottom:""},o=this._getOverlayPoint(A,this._overlayRect,e);if(this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i)),e.overlayY==="bottom"){let r=this._document.documentElement.clientHeight;n.bottom=`${r-(o.y+this._overlayRect.height)}px`}else n.top=hr(o.y);return n}_getExactOverlayX(e,A,i){let n={left:"",right:""},o=this._getOverlayPoint(A,this._overlayRect,e);this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i));let r;if(this._isRtl()?r=e.overlayX==="end"?"left":"right":r=e.overlayX==="end"?"right":"left",r==="right"){let s=this._document.documentElement.clientWidth;n.right=`${s-(o.x+this._overlayRect.width)}px`}else n.left=hr(o.x);return n}_getScrollVisibility(){let e=this._getOriginRect(),A=this._pane.getBoundingClientRect(),i=this._scrollables.map(n=>n.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:cq(e,i),isOriginOutsideView:eR(e,i),isOverlayClipped:cq(A,i),isOverlayOutsideView:eR(A,i)}}_subtractOverflows(e,...A){return A.reduce((i,n)=>i-Math.max(n,0),e)}_getNarrowedViewportRect(){let e=this._document.documentElement.clientWidth,A=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+e-this._viewportMargin,bottom:i.top+A-this._viewportMargin,width:e-2*this._viewportMargin,height:A-2*this._viewportMargin}}_isRtl(){return this._overlayRef.getDirection()==="rtl"}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(e,A){return A==="x"?e.offsetX==null?this._offsetX:e.offsetX:e.offsetY==null?this._offsetY:e.offsetY}_validatePositions(){}_addPanelClasses(e){this._pane&&CB(e).forEach(A=>{A!==""&&this._appliedPanelClasses.indexOf(A)===-1&&(this._appliedPanelClasses.push(A),this._pane.classList.add(A))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(e=>{this._pane.classList.remove(e)}),this._appliedPanelClasses=[])}_getOriginRect(){let e=this._origin;if(e instanceof se)return e.nativeElement.getBoundingClientRect();if(e instanceof Element)return e.getBoundingClientRect();let A=e.width||0,i=e.height||0;return{top:e.y,bottom:e.y+i,left:e.x,right:e.x+A,height:i,width:A}}};function cC(t,e){for(let A in e)e.hasOwnProperty(A)&&(t[A]=e[A]);return t}function Iq(t){if(typeof t!="number"&&t!=null){let[e,A]=t.split(K3A);return!A||A==="px"?parseFloat(e):null}return t||null}function Cq(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}function U3A(t,e){return t===e?!0:t.isOriginClipped===e.isOriginClipped&&t.isOriginOutsideView===e.isOriginOutsideView&&t.isOverlayClipped===e.isOverlayClipped&&t.isOverlayOutsideView===e.isOverlayOutsideView}var dq="cdk-global-overlay-wrapper",rR=class{_overlayRef;_cssPosition="static";_topOffset="";_bottomOffset="";_alignItems="";_xPosition="";_xOffset="";_width="";_height="";_isDisposed=!1;attach(e){let A=e.getConfig();this._overlayRef=e,this._width&&!A.width&&e.updateSize({width:this._width}),this._height&&!A.height&&e.updateSize({height:this._height}),e.hostElement.classList.add(dq),this._isDisposed=!1}top(e=""){return this._bottomOffset="",this._topOffset=e,this._alignItems="flex-start",this}left(e=""){return this._xOffset=e,this._xPosition="left",this}bottom(e=""){return this._topOffset="",this._bottomOffset=e,this._alignItems="flex-end",this}right(e=""){return this._xOffset=e,this._xPosition="right",this}start(e=""){return this._xOffset=e,this._xPosition="start",this}end(e=""){return this._xOffset=e,this._xPosition="end",this}width(e=""){return this._overlayRef?this._overlayRef.updateSize({width:e}):this._width=e,this}height(e=""){return this._overlayRef?this._overlayRef.updateSize({height:e}):this._height=e,this}centerHorizontally(e=""){return this.left(e),this._xPosition="center",this}centerVertically(e=""){return this.top(e),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;let e=this._overlayRef.overlayElement.style,A=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:n,height:o,maxWidth:r,maxHeight:s}=i,a=(n==="100%"||n==="100vw")&&(!r||r==="100%"||r==="100vw"),c=(o==="100%"||o==="100vh")&&(!s||s==="100%"||s==="100vh"),g=this._xPosition,I=this._xOffset,C=this._overlayRef.getConfig().direction==="rtl",d="",B="",E="";a?E="flex-start":g==="center"?(E="center",C?B=I:d=I):C?g==="left"||g==="end"?(E="flex-end",d=I):(g==="right"||g==="start")&&(E="flex-start",B=I):g==="left"||g==="start"?(E="flex-start",d=I):(g==="right"||g==="end")&&(E="flex-end",B=I),e.position=this._cssPosition,e.marginLeft=a?"0":d,e.marginTop=c?"0":this._topOffset,e.marginBottom=this._bottomOffset,e.marginRight=a?"0":B,A.justifyContent=E,A.alignItems=c?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;let e=this._overlayRef.overlayElement.style,A=this._overlayRef.hostElement,i=A.style;A.classList.remove(dq),i.justifyContent=i.alignItems=e.marginTop=e.marginBottom=e.marginLeft=e.marginRight=e.position="",this._overlayRef=null,this._isDisposed=!0}},J3A=(()=>{class t{_viewportRuler=f(Nc);_document=f(at);_platform=f(ni);_overlayContainer=f(R8);constructor(){}global(){return new rR}flexibleConnectedTo(A){return new oR(A,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Br=(()=>{class t{scrollStrategies=f(F3A);_overlayContainer=f(R8);_positionBuilder=f(J3A);_keyboardDispatcher=f(_3A);_injector=f(Zt);_ngZone=f(ye);_document=f(at);_directionality=f(po);_location=f(ha);_outsideClickDispatcher=f(G3A);_animationsModuleType=f(_i,{optional:!0});_idGenerator=f(an);_renderer=f(Ms).createRenderer(null,null);_appRef;_styleLoader=f(Pn);constructor(){}create(A){this._styleLoader.load(Eq);let i=this._createHostElement(),n=this._createPaneElement(i),o=this._createPortalOutlet(n),r=new Ml(A);return r.direction=r.direction||this._directionality.value,new JB(o,i,n,r,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,this._animationsModuleType==="NoopAnimations",this._injector.get(vr),this._renderer)}position(){return this._positionBuilder}_createPaneElement(A){let i=this._document.createElement("div");return i.id=this._idGenerator.getId("cdk-overlay-"),i.classList.add("cdk-overlay-pane"),A.appendChild(i),i}_createHostElement(){let A=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(A),A}_createPortalOutlet(A){return this._appRef||(this._appRef=this._injector.get(Ca)),new zh(A,null,this._appRef,this._injector,this._document)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Y3A=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],Qq=new eA("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.reposition()}}),Ph=(()=>{class t{elementRef=f(se);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]})}return t})(),sR=(()=>{class t{_overlay=f(Br);_dir=f(po,{optional:!0});_overlayRef;_templatePortal;_backdropSubscription=Kt.EMPTY;_attachSubscription=Kt.EMPTY;_detachSubscription=Kt.EMPTY;_positionSubscription=Kt.EMPTY;_offsetX;_offsetY;_position;_scrollStrategyFactory=f(Qq);_disposeOnNavigation=!1;_ngZone=f(ye);origin;positions;positionStrategy;get offsetX(){return this._offsetX}set offsetX(A){this._offsetX=A,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(A){this._offsetY=A,this._position&&this._updatePositionStrategy(this._position)}width;height;minWidth;minHeight;backdropClass;panelClass;viewportMargin=0;scrollStrategy;open=!1;disableClose=!1;transformOriginSelector;hasBackdrop=!1;lockPosition=!1;flexibleDimensions=!1;growAfterOpen=!1;push=!1;get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(A){this._disposeOnNavigation=A}backdropClick=new YA;positionChange=new YA;attach=new YA;detach=new YA;overlayKeydown=new YA;overlayOutsideClick=new YA;constructor(){let A=f(mn),i=f(Sn);this._templatePortal=new Rs(A,i),this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(A){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),A.origin&&this.open&&this._position.apply()),A.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=Y3A);let A=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=A.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=A.detachments().subscribe(()=>this.detach.emit()),A.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),i.keyCode===27&&!this.disableClose&&!sr(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{let n=this._getOriginElement(),o=ic(i);(!n||n!==o&&!n.contains(o))&&this.overlayOutsideClick.next(i)})}_buildConfig(){let A=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Ml({direction:this._dir||"ltr",positionStrategy:A,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||this.width===0)&&(i.width=this.width),(this.height||this.height===0)&&(i.height=this.height),(this.minWidth||this.minWidth===0)&&(i.minWidth=this.minWidth),(this.minHeight||this.minHeight===0)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(A){let i=this.positions.map(n=>({originX:n.originX,originY:n.originY,overlayX:n.overlayX,overlayY:n.overlayY,offsetX:n.offsetX||this.offsetX,offsetY:n.offsetY||this.offsetY,panelClass:n.panelClass||void 0}));return A.setOrigin(this._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){let A=this._overlay.position().flexibleConnectedTo(this._getOrigin());return this._updatePositionStrategy(A),A}_getOrigin(){return this.origin instanceof Ph?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof Ph?this.origin.elementRef.nativeElement:this.origin instanceof se?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(A=>{this.backdropClick.emit(A)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(Zv(()=>this.positionChange.observers.length>0)).subscribe(A=>{this._ngZone.run(()=>this.positionChange.emit(A)),this.positionChange.observers.length===0&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",ge],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",ge],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",ge],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",ge],push:[2,"cdkConnectedOverlayPush","push",ge],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",ge]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[Xt]})}return t})();function T3A(t){return()=>t.scrollStrategies.reposition()}var H3A={provide:Qq,deps:[Br],useFactory:T3A},Z2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[Br,H3A],imports:[G2,UB,k8,k8]})}return t})();function O3A(t,e){}var W2=class{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;width="";height="";minWidth;minHeight;maxWidth;maxHeight;positionStrategy;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;scrollStrategy;closeOnNavigation=!0;closeOnDestroy=!0;closeOnOverlayDetachments=!0;componentFactoryResolver;providers;container;templateContext};var cR=(()=>{class t extends V2{_elementRef=f(se);_focusTrapFactory=f(g6);_config;_interactivityChecker=f(sh);_ngZone=f(ye);_overlayRef=f(JB);_focusMonitor=f(Jr);_renderer=f(qi);_platform=f(ni);_document=f(at,{optional:!0});_portalOutlet;_focusTrap=null;_elementFocusedBeforeDialogWasOpened=null;_closeInteractionType=null;_ariaLabelledByQueue=[];_changeDetectorRef=f(Et);_injector=f(Zt);_isDestroyed=!1;constructor(){super(),this._config=f(W2,{optional:!0})||new W2,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(A){this._ariaLabelledByQueue.push(A),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(A){let i=this._ariaLabelledByQueue.indexOf(A);i>-1&&(this._ariaLabelledByQueue.splice(i,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._isDestroyed=!0,this._restoreFocus()}attachComponentPortal(A){this._portalOutlet.hasAttached();let i=this._portalOutlet.attachComponentPortal(A);return this._contentAttached(),i}attachTemplatePortal(A){this._portalOutlet.hasAttached();let i=this._portalOutlet.attachTemplatePortal(A);return this._contentAttached(),i}attachDomPortal=A=>{this._portalOutlet.hasAttached();let i=this._portalOutlet.attachDomPortal(A);return this._contentAttached(),i};_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(A,i){this._interactivityChecker.isFocusable(A)||(A.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let n=()=>{o(),r(),A.removeAttribute("tabindex")},o=this._renderer.listen(A,"blur",n),r=this._renderer.listen(A,"mousedown",n)})),A.focus(i)}_focusByCssSelector(A,i){let n=this._elementRef.nativeElement.querySelector(A);n&&this._forceFocus(n,i)}_trapFocus(){this._isDestroyed||Ir(()=>{let A=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||A.focus();break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElement()||this._focusDialogContainer();break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus);break}},{injector:this._injector})}_restoreFocus(){let A=this._config.restoreFocus,i=null;if(typeof A=="string"?i=this._document.querySelector(A):typeof A=="boolean"?i=A?this._elementFocusedBeforeDialogWasOpened:null:A&&(i=A),this._config.restoreFocus&&i&&typeof i.focus=="function"){let n=IB(),o=this._elementRef.nativeElement;(!n||n===this._document.body||n===o||o.contains(n))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){let A=this._elementRef.nativeElement,i=IB();return A===i||A.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=IB()))}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["cdk-dialog-container"]],viewQuery:function(i,n){if(i&1&&st(wa,7),i&2){let o;de(o=Be())&&(n._portalOutlet=o.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,n){i&2&&Ke("id",n._config.id||null)("role",n._config.role)("aria-modal",n._config.ariaModal)("aria-labelledby",n._config.ariaLabel?null:n._ariaLabelledByQueue[0])("aria-label",n._config.ariaLabel)("aria-describedby",n._config.ariaDescribedBy||null)},features:[lt],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,n){i&1&&FA(0,O3A,0,0,"ng-template",0)},dependencies:[wa],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}return t})(),jh=class{overlayRef;config;componentInstance;componentRef;containerInstance;disableClose;closed=new qA;backdropClick;keydownEvents;outsidePointerEvents;id;_detachSubscription;constructor(e,A){this.overlayRef=e,this.config=A,this.disableClose=A.disableClose,this.backdropClick=e.backdropClick(),this.keydownEvents=e.keydownEvents(),this.outsidePointerEvents=e.outsidePointerEvents(),this.id=A.id,this.keydownEvents.subscribe(i=>{i.keyCode===27&&!this.disableClose&&!sr(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=e.detachments().subscribe(()=>{A.closeOnOverlayDetachments!==!1&&this.close()})}close(e,A){if(this.containerInstance){let i=this.closed;this.containerInstance._closeInteractionType=A?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(e),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(e="",A=""){return this.overlayRef.updateSize({width:e,height:A}),this}addPanelClass(e){return this.overlayRef.addPanelClass(e),this}removePanelClass(e){return this.overlayRef.removePanelClass(e),this}},z3A=new eA("DialogScrollStrategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.block()}}),P3A=new eA("DialogData"),j3A=new eA("DefaultDialogConfig");var uq=(()=>{class t{_overlay=f(Br);_injector=f(Zt);_defaultOptions=f(j3A,{optional:!0});_parentDialog=f(t,{optional:!0,skipSelf:!0});_overlayContainer=f(R8);_idGenerator=f(an);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new qA;_afterOpenedAtThisLevel=new qA;_ariaHiddenElements=new Map;_scrollStrategy=f(z3A);get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}afterAllClosed=el(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(On(void 0)));constructor(){}open(A,i){let n=this._defaultOptions||new W2;i=sA(sA({},n),i),i.id=i.id||this._idGenerator.getId("cdk-dialog-"),i.id&&this.getDialogById(i.id);let o=this._getOverlayConfig(i),r=this._overlay.create(o),s=new jh(r,i),a=this._attachContainer(r,s,i);return s.containerInstance=a,this._attachDialogContent(A,s,a,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(s),s.closed.subscribe(()=>this._removeOpenDialog(s,!0)),this.afterOpened.next(s),s}closeAll(){aR(this.openDialogs,A=>A.close())}getDialogById(A){return this.openDialogs.find(i=>i.id===A)}ngOnDestroy(){aR(this._openDialogsAtThisLevel,A=>{A.config.closeOnDestroy===!1&&this._removeOpenDialog(A,!1)}),aR(this._openDialogsAtThisLevel,A=>A.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(A){let i=new Ml({positionStrategy:A.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:A.scrollStrategy||this._scrollStrategy(),panelClass:A.panelClass,hasBackdrop:A.hasBackdrop,direction:A.direction,minWidth:A.minWidth,minHeight:A.minHeight,maxWidth:A.maxWidth,maxHeight:A.maxHeight,width:A.width,height:A.height,disposeOnNavigation:A.closeOnNavigation});return A.backdropClass&&(i.backdropClass=A.backdropClass),i}_attachContainer(A,i,n){let o=n.injector||n.viewContainerRef?.injector,r=[{provide:W2,useValue:n},{provide:jh,useValue:i},{provide:JB,useValue:A}],s;n.container?typeof n.container=="function"?s=n.container:(s=n.container.type,r.push(...n.container.providers(n))):s=cR;let a=new yg(s,n.viewContainerRef,Zt.create({parent:o||this._injector,providers:r}));return A.attach(a).instance}_attachDialogContent(A,i,n,o){if(A instanceof mn){let r=this._createInjector(o,i,n,void 0),s={$implicit:o.data,dialogRef:i};o.templateContext&&(s=sA(sA({},s),typeof o.templateContext=="function"?o.templateContext():o.templateContext)),n.attachTemplatePortal(new Rs(A,null,s,r))}else{let r=this._createInjector(o,i,n,this._injector),s=n.attachComponentPortal(new yg(A,o.viewContainerRef,r));i.componentRef=s,i.componentInstance=s.instance}}_createInjector(A,i,n,o){let r=A.injector||A.viewContainerRef?.injector,s=[{provide:P3A,useValue:A.data},{provide:jh,useValue:i}];return A.providers&&(typeof A.providers=="function"?s.push(...A.providers(i,A,n)):s.push(...A.providers)),A.direction&&(!r||!r.get(po,null,{optional:!0}))&&s.push({provide:po,useValue:{value:A.direction,change:Ce()}}),Zt.create({parent:r||o,providers:s})}_removeOpenDialog(A,i){let n=this.openDialogs.indexOf(A);n>-1&&(this.openDialogs.splice(n,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((o,r)=>{o?r.setAttribute("aria-hidden",o):r.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){let A=this._overlayContainer.getContainerElement();if(A.parentElement){let i=A.parentElement.children;for(let n=i.length-1;n>-1;n--){let o=i[n];o!==A&&o.nodeName!=="SCRIPT"&&o.nodeName!=="STYLE"&&!o.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(o,o.getAttribute("aria-hidden")),o.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){let A=this._parentDialog;return A?A._getAfterAllClosed():this._afterAllClosedAtThisLevel}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function aR(t,e){let A=t.length;for(;A--;)e(t[A])}function q3A(t,e){}var x8=class{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;width="";height="";minWidth;minHeight;maxWidth;maxHeight;position;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;delayFocusTrap=!0;scrollStrategy;closeOnNavigation=!0;componentFactoryResolver;enterAnimationDuration;exitAnimationDuration},gR="mdc-dialog--open",hq="mdc-dialog--opening",fq="mdc-dialog--closing",V3A=150,Z3A=75,W3A=(()=>{class t extends cR{_animationMode=f(_i,{optional:!0});_animationStateChanged=new YA;_animationsEnabled=this._animationMode!=="NoopAnimations";_actionSectionCount=0;_hostElement=this._elementRef.nativeElement;_enterAnimationDuration=this._animationsEnabled?pq(this._config.enterAnimationDuration)??V3A:0;_exitAnimationDuration=this._animationsEnabled?pq(this._config.exitAnimationDuration)??Z3A:0;_animationTimer=null;_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(mq,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(hq,gR)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(gR),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(gR),this._animationsEnabled?(this._hostElement.style.setProperty(mq,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(fq)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(A){this._actionSectionCount+=A,this._changeDetectorRef.markForCheck()}_finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)};_finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})};_clearAnimationClasses(){this._hostElement.classList.remove(hq,fq)}_waitForAnimationToComplete(A,i){this._animationTimer!==null&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,A)}_requestAnimationFrame(A){this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(A):A()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(A){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:A})}ngOnDestroy(){super.ngOnDestroy(),this._animationTimer!==null&&clearTimeout(this._animationTimer)}attachComponentPortal(A){let i=super.attachComponentPortal(A);return i.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),i}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,n){i&2&&(Qa("id",n._config.id),Ke("aria-modal",n._config.ariaModal)("role",n._config.role)("aria-labelledby",n._config.ariaLabel?null:n._ariaLabelledByQueue[0])("aria-label",n._config.ariaLabel)("aria-describedby",n._config.ariaDescribedBy||null),he("_mat-animation-noopable",!n._animationsEnabled)("mat-mdc-dialog-container-with-actions",n._actionSectionCount>0))},features:[lt],decls:3,vars:0,consts:[[1,"mat-mdc-dialog-inner-container","mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,n){i&1&&(S(0,"div",0)(1,"div",1),FA(2,q3A,0,0,"ng-template",2),N()())},dependencies:[wa],styles:['.mat-mdc-dialog-container{width:100%;height:100%;display:block;box-sizing:border-box;max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;outline:0}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 560px);min-width:var(--mat-dialog-container-min-width, 280px)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, calc(100vw - 32px))}}.mat-mdc-dialog-inner-container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;transition:opacity linear var(--mat-dialog-transition-duration, 0ms);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mdc-dialog--closing .mat-mdc-dialog-inner-container{transition:opacity 75ms linear;transform:none}.mdc-dialog--open .mat-mdc-dialog-inner-container{opacity:1}._mat-animation-noopable .mat-mdc-dialog-inner-container{transition:none}.mat-mdc-dialog-surface{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;width:100%;height:100%;position:relative;overflow-y:auto;outline:0;transform:scale(0.8);transition:transform var(--mat-dialog-transition-duration, 0ms) cubic-bezier(0, 0, 0.2, 1);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;box-shadow:var(--mat-dialog-container-elevation-shadow, none);border-radius:var(--mdc-dialog-container-shape, var(--mat-sys-corner-extra-large, 4px));background-color:var(--mdc-dialog-container-color, var(--mat-sys-surface, white))}[dir=rtl] .mat-mdc-dialog-surface{text-align:right}.mdc-dialog--open .mat-mdc-dialog-surface,.mdc-dialog--closing .mat-mdc-dialog-surface{transform:none}._mat-animation-noopable .mat-mdc-dialog-surface{transition:none}.mat-mdc-dialog-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-dialog-title{display:block;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:var(--mat-dialog-headline-padding, 6px 24px 13px)}.mat-mdc-dialog-title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mat-mdc-dialog-title{text-align:right}.mat-mdc-dialog-container .mat-mdc-dialog-title{color:var(--mdc-dialog-subhead-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mdc-dialog-subhead-font, var(--mat-sys-headline-small-font, inherit));line-height:var(--mdc-dialog-subhead-line-height, var(--mat-sys-headline-small-line-height, 1.5rem));font-size:var(--mdc-dialog-subhead-size, var(--mat-sys-headline-small-size, 1rem));font-weight:var(--mdc-dialog-subhead-weight, var(--mat-sys-headline-small-weight, 400));letter-spacing:var(--mdc-dialog-subhead-tracking, var(--mat-sys-headline-small-tracking, 0.03125em))}.mat-mdc-dialog-content{display:block;flex-grow:1;box-sizing:border-box;margin:0;overflow:auto;max-height:65vh}.mat-mdc-dialog-content>:first-child{margin-top:0}.mat-mdc-dialog-content>:last-child{margin-bottom:0}.mat-mdc-dialog-container .mat-mdc-dialog-content{color:var(--mdc-dialog-supporting-text-color, var(--mat-sys-on-surface-variant, rgba(0, 0, 0, 0.6)));font-family:var(--mdc-dialog-supporting-text-font, var(--mat-sys-body-medium-font, inherit));line-height:var(--mdc-dialog-supporting-text-line-height, var(--mat-sys-body-medium-line-height, 1.5rem));font-size:var(--mdc-dialog-supporting-text-size, var(--mat-sys-body-medium-size, 1rem));font-weight:var(--mdc-dialog-supporting-text-weight, var(--mat-sys-body-medium-weight, 400));letter-spacing:var(--mdc-dialog-supporting-text-tracking, var(--mat-sys-body-medium-tracking, 0.03125em))}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px 0)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0);padding:var(--mat-dialog-actions-padding, 16px 24px);justify-content:var(--mat-dialog-actions-alignment, flex-end)}@media(forced-colors: active){.mat-mdc-dialog-actions{border-top-color:CanvasText}}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}.mat-mdc-dialog-component-host{display:contents}'],encapsulation:2})}return t})(),mq="--mat-dialog-transition-duration";function pq(t){return t==null?null:typeof t=="number"?t:t.endsWith("ms")?Zs(t.substring(0,t.length-2)):t.endsWith("s")?Zs(t.substring(0,t.length-1))*1e3:t==="0"?0:null}var L8=function(t){return t[t.OPEN=0]="OPEN",t[t.CLOSING=1]="CLOSING",t[t.CLOSED=2]="CLOSED",t}(L8||{}),fr=class{_ref;_containerInstance;componentInstance;componentRef;disableClose;id;_afterOpened=new qA;_beforeClosed=new qA;_result;_closeFallbackTimeout;_state=L8.OPEN;_closeInteractionType;constructor(e,A,i){this._ref=e,this._containerInstance=i,this.disableClose=A.disableClose,this.id=e.id,e.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(Nt(n=>n.state==="opened"),Xn(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(Nt(n=>n.state==="closed"),Xn(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),e.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),Hn(this.backdropClick(),this.keydownEvents().pipe(Nt(n=>n.keyCode===27&&!this.disableClose&&!sr(n)))).subscribe(n=>{this.disableClose||(n.preventDefault(),Dq(this,n.type==="keydown"?"keyboard":"mouse"))})}close(e){this._result=e,this._containerInstance._animationStateChanged.pipe(Nt(A=>A.state==="closing"),Xn(1)).subscribe(A=>{this._beforeClosed.next(e),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),A.totalTime+100)}),this._state=L8.CLOSING,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(e){let A=this._ref.config.positionStrategy;return e&&(e.left||e.right)?e.left?A.left(e.left):A.right(e.right):A.centerHorizontally(),e&&(e.top||e.bottom)?e.top?A.top(e.top):A.bottom(e.bottom):A.centerVertically(),this._ref.updatePosition(),this}updateSize(e="",A=""){return this._ref.updateSize(e,A),this}addPanelClass(e){return this._ref.addPanelClass(e),this}removePanelClass(e){return this._ref.removePanelClass(e),this}getState(){return this._state}_finishDialogClose(){this._state=L8.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}};function Dq(t,e,A){return t._closeInteractionType=e,t.close(A)}var Cs=new eA("MatMdcDialogData"),X3A=new eA("mat-mdc-dialog-default-options"),$3A=new eA("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.block()}});var Fc=(()=>{class t{_overlay=f(Br);_defaultOptions=f(X3A,{optional:!0});_scrollStrategy=f($3A);_parentDialog=f(t,{optional:!0,skipSelf:!0});_idGenerator=f(an);_dialog=f(uq);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new qA;_afterOpenedAtThisLevel=new qA;dialogConfigClass=x8;_dialogRefConstructor;_dialogContainerType;_dialogDataToken;get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){let A=this._parentDialog;return A?A._getAfterAllClosed():this._afterAllClosedAtThisLevel}afterAllClosed=el(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(On(void 0)));constructor(){this._dialogRefConstructor=fr,this._dialogContainerType=W3A,this._dialogDataToken=Cs}open(A,i){let n;i=sA(sA({},this._defaultOptions||new x8),i),i.id=i.id||this._idGenerator.getId("mat-mdc-dialog-"),i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();let o=this._dialog.open(A,Fe(sA({},i),{positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:W2,useValue:i}]},templateContext:()=>({dialogRef:n}),providers:(r,s,a)=>(n=new this._dialogRefConstructor(r,i,a),n.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:a},{provide:this._dialogDataToken,useValue:s.data},{provide:this._dialogRefConstructor,useValue:n}])}));return n.componentRef=o.componentRef,n.componentInstance=o.componentInstance,this.openDialogs.push(n),this.afterOpened.next(n),n.afterClosed().subscribe(()=>{let r=this.openDialogs.indexOf(n);r>-1&&(this.openDialogs.splice(r,1),this.openDialogs.length||this._getAfterAllClosed().next())}),n}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(A){return this.openDialogs.find(i=>i.id===A)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(A){let i=A.length;for(;i--;)A[i].close()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),bl=(()=>{class t{dialogRef=f(fr,{optional:!0});_elementRef=f(se);_dialog=f(Fc);ariaLabel;type="button";dialogResult;_matDialogClose;constructor(){}ngOnInit(){this.dialogRef||(this.dialogRef=yq(this._elementRef,this._dialog.openDialogs))}ngOnChanges(A){let i=A._matDialogClose||A._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(A){Dq(this.dialogRef,A.screenX===0&&A.screenY===0?"keyboard":"mouse",this.dialogResult)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,n){i&1&&mA("click",function(r){return n._onButtonClick(r)}),i&2&&Ke("aria-label",n.ariaLabel||null)("type",n.type)},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],type:"type",dialogResult:[0,"mat-dialog-close","dialogResult"],_matDialogClose:[0,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[Xt]})}return t})(),wq=(()=>{class t{_dialogRef=f(fr,{optional:!0});_elementRef=f(se);_dialog=f(Fc);constructor(){}ngOnInit(){this._dialogRef||(this._dialogRef=yq(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._onAdd()})}ngOnDestroy(){this._dialogRef?._containerInstance&&Promise.resolve().then(()=>{this._onRemove()})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t})}return t})(),Ls=(()=>{class t extends wq{id=f(an).getId("mat-mdc-dialog-title-");_onAdd(){this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id)}_onRemove(){this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,n){i&2&&Qa("id",n.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],features:[lt]})}return t})(),ya=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],features:[LH([k0])]})}return t})(),va=(()=>{class t extends wq{align;_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:6,hostBindings:function(i,n){i&2&&he("mat-mdc-dialog-actions-align-start",n.align==="start")("mat-mdc-dialog-actions-align-center",n.align==="center")("mat-mdc-dialog-actions-align-end",n.align==="end")},inputs:{align:"align"},features:[lt]})}return t})();function yq(t,e){let A=t.nativeElement.parentElement;for(;A&&!A.classList.contains("mat-mdc-dialog-container");)A=A.parentElement;return A?e.find(i=>i.id===A.id):null}var vq=(()=>{class t{get vertical(){return this._vertical}set vertical(A){this._vertical=Ar(A)}_vertical=!1;get inset(){return this._inset}set inset(A){this._inset=Ar(A)}_inset=!1;static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,n){i&2&&(Ke("aria-orientation",n.vertical?"vertical":"horizontal"),he("mat-divider-vertical",n.vertical)("mat-divider-horizontal",!n.vertical)("mat-divider-inset",n.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(i,n){},styles:[".mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color, var(--mat-sys-outline));border-top-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color, var(--mat-sys-outline));border-right-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}return t})();var AfA=["*"],N8;function efA(){if(N8===void 0&&(N8=null,typeof window<"u")){let t=window;t.trustedTypes!==void 0&&(N8=t.trustedTypes.createPolicy("angular#components",{createHTML:e=>e}))}return N8}function Vh(t){return efA()?.createHTML(t)||t}function Mq(t){return Error(`Unable to find icon with the name "${t}"`)}function tfA(){return Error("Could not find HttpClient for use with Angular Material icons. Please add provideHttpClient() to your providers.")}function bq(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function kq(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}var S0=class{url;svgText;options;svgElement;constructor(e,A,i){this.url=e,this.svgText=A,this.options=i}},ifA=(()=>{class t{_httpClient;_sanitizer;_errorHandler;_document;_svgIconConfigs=new Map;_iconSetConfigs=new Map;_cachedIconsByUrl=new Map;_inProgressUrlFetches=new Map;_fontCssClassesByAlias=new Map;_resolvers=[];_defaultFontSetClass=["material-icons","mat-ligature-font"];constructor(A,i,n,o){this._httpClient=A,this._sanitizer=i,this._errorHandler=o,this._document=n}addSvgIcon(A,i,n){return this.addSvgIconInNamespace("",A,i,n)}addSvgIconLiteral(A,i,n){return this.addSvgIconLiteralInNamespace("",A,i,n)}addSvgIconInNamespace(A,i,n,o){return this._addSvgIconConfig(A,i,new S0(n,null,o))}addSvgIconResolver(A){return this._resolvers.push(A),this}addSvgIconLiteralInNamespace(A,i,n,o){let r=this._sanitizer.sanitize(Xr.HTML,n);if(!r)throw kq(n);let s=Vh(r);return this._addSvgIconConfig(A,i,new S0("",s,o))}addSvgIconSet(A,i){return this.addSvgIconSetInNamespace("",A,i)}addSvgIconSetLiteral(A,i){return this.addSvgIconSetLiteralInNamespace("",A,i)}addSvgIconSetInNamespace(A,i,n){return this._addSvgIconSetConfig(A,new S0(i,null,n))}addSvgIconSetLiteralInNamespace(A,i,n){let o=this._sanitizer.sanitize(Xr.HTML,i);if(!o)throw kq(i);let r=Vh(o);return this._addSvgIconSetConfig(A,new S0("",r,n))}registerFontClassAlias(A,i=A){return this._fontCssClassesByAlias.set(A,i),this}classNameForFontAlias(A){return this._fontCssClassesByAlias.get(A)||A}setDefaultFontSetClass(...A){return this._defaultFontSetClass=A,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(A){let i=this._sanitizer.sanitize(Xr.RESOURCE_URL,A);if(!i)throw bq(A);let n=this._cachedIconsByUrl.get(i);return n?Ce(F8(n)):this._loadSvgIconFromConfig(new S0(A,null)).pipe(So(o=>this._cachedIconsByUrl.set(i,o)),je(o=>F8(o)))}getNamedSvgIcon(A,i=""){let n=Sq(i,A),o=this._svgIconConfigs.get(n);if(o)return this._getSvgFromConfig(o);if(o=this._getIconConfigFromResolvers(i,A),o)return this._svgIconConfigs.set(n,o),this._getSvgFromConfig(o);let r=this._iconSetConfigs.get(i);return r?this._getSvgFromIconSetConfigs(A,r):d2(Mq(n))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(A){return A.svgText?Ce(F8(this._svgElementFromConfig(A))):this._loadSvgIconFromConfig(A).pipe(je(i=>F8(i)))}_getSvgFromIconSetConfigs(A,i){let n=this._extractIconWithNameFromAnySet(A,i);if(n)return Ce(n);let o=i.filter(r=>!r.svgText).map(r=>this._loadSvgIconSetFromConfig(r).pipe(Gr(s=>{let c=`Loading icon set URL: ${this._sanitizer.sanitize(Xr.RESOURCE_URL,r.url)} failed: ${s.message}`;return this._errorHandler.handleError(new Error(c)),Ce(null)})));return gu(o).pipe(je(()=>{let r=this._extractIconWithNameFromAnySet(A,i);if(!r)throw Mq(A);return r}))}_extractIconWithNameFromAnySet(A,i){for(let n=i.length-1;n>=0;n--){let o=i[n];if(o.svgText&&o.svgText.toString().indexOf(A)>-1){let r=this._svgElementFromConfig(o),s=this._extractSvgIconFromSet(r,A,o.options);if(s)return s}}return null}_loadSvgIconFromConfig(A){return this._fetchIcon(A).pipe(So(i=>A.svgText=i),je(()=>this._svgElementFromConfig(A)))}_loadSvgIconSetFromConfig(A){return A.svgText?Ce(null):this._fetchIcon(A).pipe(So(i=>A.svgText=i))}_extractSvgIconFromSet(A,i,n){let o=A.querySelector(`[id="${i}"]`);if(!o)return null;let r=o.cloneNode(!0);if(r.removeAttribute("id"),r.nodeName.toLowerCase()==="svg")return this._setSvgAttributes(r,n);if(r.nodeName.toLowerCase()==="symbol")return this._setSvgAttributes(this._toSvgElement(r),n);let s=this._svgElementFromString(Vh(""));return s.appendChild(r),this._setSvgAttributes(s,n)}_svgElementFromString(A){let i=this._document.createElement("DIV");i.innerHTML=A;let n=i.querySelector("svg");if(!n)throw Error(" tag not found");return n}_toSvgElement(A){let i=this._svgElementFromString(Vh("")),n=A.attributes;for(let o=0;oVh(c)),nl(()=>this._inProgressUrlFetches.delete(r)),Iu());return this._inProgressUrlFetches.set(r,a),a}_addSvgIconConfig(A,i,n){return this._svgIconConfigs.set(Sq(A,i),n),this}_addSvgIconSetConfig(A,i){let n=this._iconSetConfigs.get(A);return n?n.push(i):this._iconSetConfigs.set(A,[i]),this}_svgElementFromConfig(A){if(!A.svgElement){let i=this._svgElementFromString(A.svgText);this._setSvgAttributes(i,A.options),A.svgElement=i}return A.svgElement}_getIconConfigFromResolvers(A,i){for(let n=0;ne?e.pathname+e.search:""}}var Rq=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],afA=Rq.map(t=>`[${t}]`).join(", "),cfA=/^url\(['"]?#(.*?)['"]?\)$/,_c=(()=>{class t{_elementRef=f(se);_iconRegistry=f(ifA);_location=f(rfA);_errorHandler=f(Ps);_defaultColor;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;inline=!1;get svgIcon(){return this._svgIcon}set svgIcon(A){A!==this._svgIcon&&(A?this._updateSvgIcon(A):this._svgIcon&&this._clearSvgElement(),this._svgIcon=A)}_svgIcon;get fontSet(){return this._fontSet}set fontSet(A){let i=this._cleanupFontValue(A);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}_fontSet;get fontIcon(){return this._fontIcon}set fontIcon(A){let i=this._cleanupFontValue(A);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_fontIcon;_previousFontSetClass=[];_previousFontIconClass;_svgName;_svgNamespace;_previousPath;_elementsWithExternalReferences;_currentIconFetch=Kt.EMPTY;constructor(){let A=f(new Wr("aria-hidden"),{optional:!0}),i=f(ofA,{optional:!0});i&&(i.color&&(this.color=this._defaultColor=i.color),i.fontSet&&(this.fontSet=i.fontSet)),A||this._elementRef.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(A){if(!A)return["",""];let i=A.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${A}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){let A=this._elementsWithExternalReferences;if(A&&A.size){let i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(A){this._clearSvgElement();let i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(A),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(A)}_clearSvgElement(){let A=this._elementRef.nativeElement,i=A.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){let n=A.childNodes[i];(n.nodeType!==1||n.nodeName.toLowerCase()==="svg")&&n.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;let A=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(n=>n.length>0);this._previousFontSetClass.forEach(n=>A.classList.remove(n)),i.forEach(n=>A.classList.add(n)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&A.classList.remove(this._previousFontIconClass),this.fontIcon&&A.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(A){return typeof A=="string"?A.trim().split(" ")[0]:A}_prependPathToReferences(A){let i=this._elementsWithExternalReferences;i&&i.forEach((n,o)=>{n.forEach(r=>{o.setAttribute(r.name,`url('${A}#${r.value}')`)})})}_cacheChildrenWithExternalReferences(A){let i=A.querySelectorAll(afA),n=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let o=0;o{let s=i[o],a=s.getAttribute(r),c=a?a.match(cfA):null;if(c){let g=n.get(s);g||(g=[],n.set(s,g)),g.push({name:r,value:c[1]})}})}_updateSvgIcon(A){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),A){let[i,n]=this._splitIconName(A);i&&(this._svgNamespace=i),n&&(this._svgName=n),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(n,i).pipe(Xn(1)).subscribe(o=>this._setSvgElement(o),o=>{let r=`Error retrieving icon ${i}:${n}! ${o.message}`;this._errorHandler.handleError(new Error(r))})}}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(i,n){i&2&&(Ke("data-mat-icon-type",n._usingFontIcon()?"font":"svg")("data-mat-icon-name",n._svgName||n.fontIcon)("data-mat-icon-namespace",n._svgNamespace||n.fontSet)("fontIcon",n._usingFontIcon()?n.fontIcon:null),Ro(n.color?"mat-"+n.color:""),he("mat-icon-inline",n.inline)("mat-icon-no-color",n.color!=="primary"&&n.color!=="accent"&&n.color!=="warn"))},inputs:{color:"color",inline:[2,"inline","inline",ge],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],ngContentSelectors:AfA,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color, inherit)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0})}return t})(),Lq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,pn]})}return t})();var lfA=["trigger"],IfA=["panel"],CfA=[[["mat-select-trigger"]],"*"],dfA=["mat-select-trigger","*"];function BfA(t,e){if(t&1&&(S(0,"span",4),AA(1),N()),t&2){let A=Y();_(),tt(A.placeholder)}}function EfA(t,e){t&1&&Ue(0)}function QfA(t,e){if(t&1&&(S(0,"span",11),AA(1),N()),t&2){let A=Y(2);_(),tt(A.triggerValue)}}function ufA(t,e){if(t&1&&(S(0,"span",5),FA(1,EfA,1,0)(2,QfA,2,1,"span",11),N()),t&2){let A=Y();_(),_A(A.customTrigger?1:2)}}function hfA(t,e){if(t&1){let A=me();S(0,"div",12,1),mA("@transformPanel.done",function(n){QA(A);let o=Y();return uA(o._panelDoneAnimatingStream.next(n.toState))})("keydown",function(n){QA(A);let o=Y();return uA(o._handleKeydown(n))}),Ue(2,1),N()}if(t&2){let A=Y();qH("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",A._getPanelTheme(),""),yA("ngClass",A.panelClass)("@transformPanel","showing"),Ke("id",A.id+"-panel")("aria-multiselectable",A.multiple)("aria-label",A.ariaLabel||null)("aria-labelledby",A._getPanelAriaLabelledby())}}var ffA={transformPanelWrap:nc("transformPanelWrap",[$r("* => void",Uk("@transformPanel",[Kk()],{optional:!0}))]),transformPanel:nc("transformPanel",[$s("void",Do({opacity:0,transform:"scale(1, 0.8)"})),$r("void => showing",Is("120ms cubic-bezier(0, 0, 0.2, 1)",Do({opacity:1,transform:"scale(1, 1)"}))),$r("* => void",Is("100ms linear",Do({opacity:0})))])};var mfA=new eA("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.reposition()}});var pfA=new eA("MAT_SELECT_CONFIG");var DfA=new eA("MatSelectTrigger"),lR=class{source;value;constructor(e,A){this.source=e,this.value=A}},YB=(()=>{class t{_viewportRuler=f(Nc);_changeDetectorRef=f(Et);_elementRef=f(se);_dir=f(po,{optional:!0});_idGenerator=f(an);_parentFormField=f(lh,{optional:!0});ngControl=f(ec,{self:!0,optional:!0});_liveAnnouncer=f(l6);_defaultOptions=f(pfA,{optional:!0});_initialized=new qA;options;optionGroups;customTrigger;_positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}];_scrollOptionIntoView(A){let i=this.options.toArray()[A];if(i){let n=this.panel.nativeElement,o=Fz(A,this.options,this.optionGroups),r=i._getHostElement();A===0&&o===1?n.scrollTop=0:n.scrollTop=_z(r.offsetTop,r.offsetHeight,n.scrollTop,n.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(A){return new lR(this,A)}_scrollStrategyFactory=f(mfA);_panelOpen=!1;_compareWith=(A,i)=>A===i;_uid=this._idGenerator.getId("mat-select-");_triggerAriaLabelledBy=null;_previousControl;_destroy=new qA;_errorStateTracker;stateChanges=new qA;disableAutomaticLabeling=!0;userAriaDescribedBy;_selectionModel;_keyManager;_preferredOverlayOrigin;_overlayWidth;_onChange=()=>{};_onTouched=()=>{};_valueId=this._idGenerator.getId("mat-select-value-");_panelDoneAnimatingStream=new qA;_scrollStrategy;_overlayPanelClass=this._defaultOptions?.overlayPanelClass||"";get focused(){return this._focused||this._panelOpen}_focused=!1;controlType="mat-select";trigger;panel;_overlayDir;panelClass;disabled=!1;disableRipple=!1;tabIndex=0;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(A){this._hideSingleSelectionIndicator=A,this._syncParentProperties()}_hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1;get placeholder(){return this._placeholder}set placeholder(A){this._placeholder=A,this.stateChanges.next()}_placeholder;get required(){return this._required??this.ngControl?.control?.hasValidator(Ac.required)??!1}set required(A){this._required=A,this.stateChanges.next()}_required;get multiple(){return this._multiple}set multiple(A){this._selectionModel,this._multiple=A}_multiple=!1;disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1;get compareWith(){return this._compareWith}set compareWith(A){this._compareWith=A,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(A){this._assignValue(A)&&this._onChange(A)}_value;ariaLabel="";ariaLabelledby;get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(A){this._errorStateTracker.matcher=A}typeaheadDebounceInterval;sortComparator;get id(){return this._id}set id(A){this._id=A||this._uid,this.stateChanges.next()}_id;get errorState(){return this._errorStateTracker.errorState}set errorState(A){this._errorStateTracker.errorState=A}panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto";canSelectNullableOptions=this._defaultOptions?.canSelectNullableOptions??!1;optionSelectionChanges=el(()=>{let A=this.options;return A?A.changes.pipe(On(A),$n(()=>Hn(...A.map(i=>i.onSelectionChange)))):this._initialized.pipe($n(()=>this.optionSelectionChanges))});openedChange=new YA;_openedStream=this.openedChange.pipe(Nt(A=>A),je(()=>{}));_closedStream=this.openedChange.pipe(Nt(A=>!A),je(()=>{}));selectionChange=new YA;valueChange=new YA;constructor(){let A=f(d6),i=f(ih,{optional:!0}),n=f(YI,{optional:!0}),o=f(new Wr("tabindex"),{optional:!0});this.ngControl&&(this.ngControl.valueAccessor=this),this._defaultOptions?.typeaheadDebounceInterval!=null&&(this.typeaheadDebounceInterval=this._defaultOptions.typeaheadDebounceInterval),this._errorStateTracker=new BB(A,this.ngControl,n,i,this.stateChanges),this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=o==null?0:parseInt(o)||0,this.id=this.id}ngOnInit(){this._selectionModel=new P2(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(il(),kt(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen)),this._viewportRuler.change().pipe(kt(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(kt(this._destroy)).subscribe(A=>{A.added.forEach(i=>i.select()),A.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(On(null),kt(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){let A=this._getTriggerAriaLabelledby(),i=this.ngControl;if(A!==this._triggerAriaLabelledBy){let n=this._elementRef.nativeElement;this._triggerAriaLabelledBy=A,A?n.setAttribute("aria-labelledby",A):n.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(this._previousControl!==void 0&&i.disabled!==null&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(A){(A.disabled||A.userAriaDescribedBy)&&this.stateChanges.next(),A.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this.typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_trackedModal=null;_applyModalPanelOwnership(){let A=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!A)return;let i=`${this.id}-panel`;this._trackedModal&&c6(this._trackedModal,"aria-owns",i),wk(A,"aria-owns",i),this._trackedModal=A}_clearFromModal(){if(!this._trackedModal)return;let A=`${this.id}-panel`;c6(this._trackedModal,"aria-owns",A),this._trackedModal=null}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next())}writeValue(A){this._assignValue(A)}registerOnChange(A){this._onChange=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){let A=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&A.reverse(),A.join(", ")}return this._selectionModel.selected[0].viewValue}updateErrorState(){this._errorStateTracker.updateErrorState()}_isRtl(){return this._dir?this._dir.value==="rtl":!1}_handleKeydown(A){this.disabled||(this.panelOpen?this._handleOpenKeydown(A):this._handleClosedKeydown(A))}_handleClosedKeydown(A){let i=A.keyCode,n=i===40||i===38||i===37||i===39,o=i===13||i===32,r=this._keyManager;if(!r.isTyping()&&o&&!sr(A)||(this.multiple||A.altKey)&&n)A.preventDefault(),this.open();else if(!this.multiple){let s=this.selected;r.onKeydown(A);let a=this.selected;a&&s!==a&&this._liveAnnouncer.announce(a.viewValue,1e4)}}_handleOpenKeydown(A){let i=this._keyManager,n=A.keyCode,o=n===40||n===38,r=i.isTyping();if(o&&A.altKey)A.preventDefault(),this.close();else if(!r&&(n===13||n===32)&&i.activeItem&&!sr(A))A.preventDefault(),i.activeItem._selectViaInteraction();else if(!r&&this._multiple&&n===65&&A.ctrlKey){A.preventDefault();let s=this.options.some(a=>!a.disabled&&!a.selected);this.options.forEach(a=>{a.disabled||(s?a.select():a.deselect())})}else{let s=i.activeItemIndex;i.onKeydown(A),this._multiple&&o&&A.shiftKey&&i.activeItem&&i.activeItemIndex!==s&&i.activeItem._selectViaInteraction()}}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(Xn(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(A){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&A)Array.isArray(A),A.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{let i=this._selectOptionByValue(A);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(A){let i=this.options.find(n=>{if(this._selectionModel.isSelected(n))return!1;try{return(n.value!=null||this.canSelectNullableOptions)&&this._compareWith(n.value,A)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(A){return A!==this._value||this._multiple&&Array.isArray(A)?(this.options&&this._setSelectionByValue(A),this._value=A,!0):!1}_skipPredicate=A=>this.panelOpen?!1:A.disabled;_getOverlayWidth(A){return this.panelWidth==="auto"?(A instanceof Ph?A.elementRef:A||this._elementRef).nativeElement.getBoundingClientRect().width:this.panelWidth===null?"":this.panelWidth}_syncParentProperties(){if(this.options)for(let A of this.options)A._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new a6(this.options).withTypeAhead(this.typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){let A=Hn(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(kt(A)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Hn(...this.options.map(i=>i._stateChanges)).pipe(kt(A)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(A,i){let n=this._selectionModel.isSelected(A);!this.canSelectNullableOptions&&A.value==null&&!this._multiple?(A.deselect(),this._selectionModel.clear(),this.value!=null&&this._propagateChanges(A.value)):(n!==A.selected&&(A.selected?this._selectionModel.select(A):this._selectionModel.deselect(A)),i&&this._keyManager.setActiveItem(A),this.multiple&&(this._sortValues(),i&&this.focus())),n!==this._selectionModel.isSelected(A)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){let A=this.options.toArray();this._selectionModel.sort((i,n)=>this.sortComparator?this.sortComparator(i,n,A):A.indexOf(i)-A.indexOf(n)),this.stateChanges.next()}}_propagateChanges(A){let i;this.multiple?i=this.selected.map(n=>n.value):i=this.selected?this.selected.value:A,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let A=-1;for(let i=0;i0}focus(A){this._elementRef.nativeElement.focus(A)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;let A=this._parentFormField?.getLabelId()||null,i=A?A+" ":"";return this.ariaLabelledby?i+this.ariaLabelledby:A}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;let A=this._parentFormField?.getLabelId(),i=(A?A+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(A){this.openedChange.emit(A)}setDescribedByIds(A){A.length?this._elementRef.nativeElement.setAttribute("aria-describedby",A.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-select"]],contentQueries:function(i,n,o){if(i&1&&(gi(o,DfA,5),gi(o,K2,5),gi(o,Nk,5)),i&2){let r;de(r=Be())&&(n.customTrigger=r.first),de(r=Be())&&(n.options=r),de(r=Be())&&(n.optionGroups=r)}},viewQuery:function(i,n){if(i&1&&(st(lfA,5),st(IfA,5),st(sR,5)),i&2){let o;de(o=Be())&&(n.trigger=o.first),de(o=Be())&&(n.panel=o.first),de(o=Be())&&(n._overlayDir=o.first)}},hostAttrs:["role","combobox","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,n){i&1&&mA("keydown",function(r){return n._handleKeydown(r)})("focus",function(){return n._onFocus()})("blur",function(){return n._onBlur()}),i&2&&(Ke("id",n.id)("tabindex",n.disabled?-1:n.tabIndex)("aria-controls",n.panelOpen?n.id+"-panel":null)("aria-expanded",n.panelOpen)("aria-label",n.ariaLabel||null)("aria-required",n.required.toString())("aria-disabled",n.disabled.toString())("aria-invalid",n.errorState)("aria-activedescendant",n._getAriaActiveDescendant()),he("mat-mdc-select-disabled",n.disabled)("mat-mdc-select-invalid",n.errorState)("mat-mdc-select-required",n.required)("mat-mdc-select-empty",n.empty)("mat-mdc-select-multiple",n.multiple))},inputs:{userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[2,"disabled","disabled",ge],disableRipple:[2,"disableRipple","disableRipple",ge],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:en(A)],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",ge],placeholder:"placeholder",required:[2,"required","required",ge],multiple:[2,"multiple","multiple",ge],disableOptionCentering:[2,"disableOptionCentering","disableOptionCentering",ge],compareWith:"compareWith",value:"value",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[2,"typeaheadDebounceInterval","typeaheadDebounceInterval",en],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth",canSelectNullableOptions:[2,"canSelectNullableOptions","canSelectNullableOptions",ge]},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],features:[ut([{provide:gh,useExisting:t},{provide:xk,useExisting:t}]),Xt],ngContentSelectors:dfA,decls:11,vars:8,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","attach","detach","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"keydown","ngClass"]],template:function(i,n){if(i&1){let o=me();$t(CfA),S(0,"div",2,0),mA("click",function(){return QA(o),uA(n.open())}),S(3,"div",3),FA(4,BfA,2,1,"span",4)(5,ufA,3,1,"span",5),N(),S(6,"div",6)(7,"div",7),ur(),S(8,"svg",8),TA(9,"path",9),N()()()(),FA(10,hfA,3,9,"ng-template",10),mA("backdropClick",function(){return QA(o),uA(n.close())})("attach",function(){return QA(o),uA(n._onAttached())})("detach",function(){return QA(o),uA(n.close())})}if(i&2){let o=Cr(1);_(3),Ke("id",n._valueId),_(),_A(n.empty?4:5),_(6),yA("cdkConnectedOverlayPanelClass",n._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",n._scrollStrategy)("cdkConnectedOverlayOrigin",n._preferredOverlayOrigin||o)("cdkConnectedOverlayOpen",n.panelOpen)("cdkConnectedOverlayPositions",n._positions)("cdkConnectedOverlayWidth",n._overlayWidth)}},dependencies:[Ph,sR,Vs],styles:['.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color, var(--mat-sys-on-surface));font-family:var(--mat-select-trigger-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-select-trigger-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-select-trigger-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-select-trigger-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-select-trigger-text-tracking, var(--mat-sys-body-large-tracking))}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-disabled .mat-mdc-select-placeholder{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color, var(--mat-sys-error))}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}@media(forced-colors: active){.mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .mat-mdc-select-arrow svg{fill:GrayText}}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color, var(--mat-sys-surface-container))}@media(forced-colors: active){div.mat-mdc-select-panel{outline:solid 1px}}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}div.mat-mdc-select-panel .mat-mdc-option{--mdc-list-list-item-container-color: var(--mat-select-panel-background-color)}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color, var(--mat-sys-on-surface-variant))}.mat-form-field-no-animations .mat-mdc-select-placeholder,._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform, translateY(-8px))}'],encapsulation:2,data:{animation:[ffA.transformPanel]},changeDetection:0})}return t})();var wfA=["tooltip"],Fq=20;var _q=new eA("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.reposition({scrollThrottle:Fq})}});function yfA(t){return()=>t.scrollStrategies.reposition({scrollThrottle:Fq})}var vfA={provide:_q,deps:[Br],useFactory:yfA};function MfA(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}var bfA=new eA("mat-tooltip-default-options",{providedIn:"root",factory:MfA});var xq="tooltip-panel",Nq=Sc({passive:!0}),kfA=8,SfA=8,RfA=24,LfA=200,kl=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);_platform=f(ni);_ariaDescriber=f(wz);_focusMonitor=f(Jr);_dir=f(po);_injector=f(Zt);_defaultOptions=f(bfA,{optional:!0});_overlayRef;_tooltipInstance;_portal;_position="below";_positionAtOrigin=!1;_disabled=!1;_tooltipClass;_viewInitialized=!1;_pointerExitEventsInitialized=!1;_tooltipComponent=xfA;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending;_dirSubscribed=!1;get position(){return this._position}set position(A){A!==this._position&&(this._position=A,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(A){this._positionAtOrigin=Ar(A),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(A){let i=Ar(A);this._disabled!==i&&(this._disabled=i,i?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(A){this._showDelay=Zs(A)}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(A){this._hideDelay=Zs(A),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}_hideDelay;touchGestures="auto";get message(){return this._message}set message(A){let i=this._message;this._message=A!=null?String(A).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(i)}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(A){this._tooltipClass=A,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}_passiveListeners=[];_touchstartTimeout=null;_destroyed=new qA;_isDestroyed=!1;constructor(){let A=this._defaultOptions;A&&(this._showDelay=A.showDelay,this._hideDelay=A.hideDelay,A.position&&(this.position=A.position),A.positionAtOrigin&&(this.positionAtOrigin=A.positionAtOrigin),A.touchGestures&&(this.touchGestures=A.touchGestures),A.tooltipClass&&(this.tooltipClass=A.tooltipClass)),this._viewportMargin=kfA}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(kt(this._destroyed)).subscribe(A=>{A?A==="keyboard"&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){let A=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,n])=>{A.removeEventListener(i,n,Nq)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._isDestroyed=!0,this._ariaDescriber.removeDescription(A,this.message,"tooltip"),this._focusMonitor.stopMonitoring(A)}show(A=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible()){this._tooltipInstance?._cancelPendingAnimations();return}let n=this._createOverlay(i);this._detach(),this._portal=this._portal||new yg(this._tooltipComponent,this._injector.get(Sn));let o=this._tooltipInstance=n.attach(this._portal).instance;o._triggerElement=this._elementRef.nativeElement,o._mouseLeaveHideDelay=this._hideDelay,o.afterHidden().pipe(kt(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),o.show(A)}hide(A=this.hideDelay){let i=this._tooltipInstance;i&&(i.isVisible()?i.hide(A):(i._cancelPendingAnimations(),this._detach()))}toggle(A){this._isTooltipVisible()?this.hide():this.show(void 0,A)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(A){if(this._overlayRef){let r=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!A)&&r._origin instanceof se)return this._overlayRef;this._detach()}let i=this._injector.get(q2).getAncestorScrollContainers(this._elementRef),n=this._injector.get(Br),o=n.position().flexibleConnectedTo(this.positionAtOrigin?A||this._elementRef:this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return o.positionChanges.pipe(kt(this._destroyed)).subscribe(r=>{this._updateCurrentPositionClass(r.connectionPair),this._tooltipInstance&&r.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=n.create({direction:this._dir,positionStrategy:o,panelClass:`${this._cssClassPrefix}-${xq}`,scrollStrategy:this._injector.get(_q)()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(kt(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(kt(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(kt(this._destroyed)).subscribe(r=>{this._isTooltipVisible()&&r.keyCode===27&&!sr(r)&&(r.preventDefault(),r.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._dirSubscribed||(this._dirSubscribed=!0,this._dir.change.pipe(kt(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(A){let i=A.getConfig().positionStrategy,n=this._getOrigin(),o=this._getOverlayPosition();i.withPositions([this._addOffset(sA(sA({},n.main),o.main)),this._addOffset(sA(sA({},n.fallback),o.fallback))])}_addOffset(A){let i=SfA,n=!this._dir||this._dir.value=="ltr";return A.originY==="top"?A.offsetY=-i:A.originY==="bottom"?A.offsetY=i:A.originX==="start"?A.offsetX=n?-i:i:A.originX==="end"&&(A.offsetX=n?i:-i),A}_getOrigin(){let A=!this._dir||this._dir.value=="ltr",i=this.position,n;i=="above"||i=="below"?n={originX:"center",originY:i=="above"?"top":"bottom"}:i=="before"||i=="left"&&A||i=="right"&&!A?n={originX:"start",originY:"center"}:(i=="after"||i=="right"&&A||i=="left"&&!A)&&(n={originX:"end",originY:"center"});let{x:o,y:r}=this._invertPosition(n.originX,n.originY);return{main:n,fallback:{originX:o,originY:r}}}_getOverlayPosition(){let A=!this._dir||this._dir.value=="ltr",i=this.position,n;i=="above"?n={overlayX:"center",overlayY:"bottom"}:i=="below"?n={overlayX:"center",overlayY:"top"}:i=="before"||i=="left"&&A||i=="right"&&!A?n={overlayX:"end",overlayY:"center"}:(i=="after"||i=="right"&&A||i=="left"&&!A)&&(n={overlayX:"start",overlayY:"center"});let{x:o,y:r}=this._invertPosition(n.overlayX,n.overlayY);return{main:n,fallback:{overlayX:o,overlayY:r}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),Ir(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(A){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=A,this._tooltipInstance._markForCheck())}_invertPosition(A,i){return this.position==="above"||this.position==="below"?i==="top"?i="bottom":i==="bottom"&&(i="top"):A==="end"?A="start":A==="start"&&(A="end"),{x:A,y:i}}_updateCurrentPositionClass(A){let{overlayY:i,originX:n,originY:o}=A,r;if(i==="center"?this._dir&&this._dir.value==="rtl"?r=n==="end"?"left":"right":r=n==="start"?"left":"right":r=i==="bottom"&&o==="top"?"above":"below",r!==this._currentPosition){let s=this._overlayRef;if(s){let a=`${this._cssClassPrefix}-${xq}-`;s.removePanelClass(a+this._currentPosition),s.addPanelClass(a+r)}this._currentPosition=r}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",A=>{this._setupPointerExitEventsIfNeeded();let i;A.x!==void 0&&A.y!==void 0&&(i=A),this.show(void 0,i)}]):this.touchGestures!=="off"&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",A=>{let i=A.targetTouches?.[0],n=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout);let o=500;this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,n)},this._defaultOptions?.touchLongPressShowDelay??o)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;let A=[];if(this._platformSupportsMouseEvents())A.push(["mouseleave",i=>{let n=i.relatedTarget;(!n||!this._overlayRef?.overlayElement.contains(n))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if(this.touchGestures!=="off"){this._disableNativeGesturesIfNecessary();let i=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay)};A.push(["touchend",i],["touchcancel",i])}this._addListeners(A),this._passiveListeners.push(...A)}_addListeners(A){A.forEach(([i,n])=>{this._elementRef.nativeElement.addEventListener(i,n,Nq)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(A){if(this._isTooltipVisible()){let i=this._injector.get(at).elementFromPoint(A.clientX,A.clientY),n=this._elementRef.nativeElement;i!==n&&!n.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){let A=this.touchGestures;if(A!=="off"){let i=this._elementRef.nativeElement,n=i.style;(A==="on"||i.nodeName!=="INPUT"&&i.nodeName!=="TEXTAREA")&&(n.userSelect=n.msUserSelect=n.webkitUserSelect=n.MozUserSelect="none"),(A==="on"||!i.draggable)&&(n.webkitUserDrag="none"),n.touchAction="none",n.webkitTapHighlightColor="transparent"}}_syncAriaDescription(A){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,A,"tooltip"),this._isDestroyed||Ir({write:()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")}},{injector:this._injector}))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,n){i&2&&he("mat-mdc-tooltip-disabled",n.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return t})(),xfA=(()=>{class t{_changeDetectorRef=f(Et);_elementRef=f(se);_isMultiline=!1;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled;_tooltip;_closeOnInteraction=!1;_isVisible=!1;_onHide=new qA;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";constructor(){let A=f(_i,{optional:!0});this._animationsDisabled=A==="NoopAnimations"}show(A){this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},A)}hide(A){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},A)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:A}){(!A||!this._triggerElement.contains(A))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){let A=this._elementRef.nativeElement.getBoundingClientRect();return A.height>RfA&&A.width>=LfA}_handleAnimationEnd({animationName:A}){(A===this._showAnimation||A===this._hideAnimation)&&this._finalizeAnimation(A===this._showAnimation)}_cancelPendingAnimations(){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(A){A?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(A){let i=this._tooltip.nativeElement,n=this._showAnimation,o=this._hideAnimation;if(i.classList.remove(A?o:n),i.classList.add(A?n:o),this._isVisible!==A&&(this._isVisible=A,this._changeDetectorRef.markForCheck()),A&&!this._animationsDisabled&&typeof getComputedStyle=="function"){let r=getComputedStyle(i);(r.getPropertyValue("animation-duration")==="0s"||r.getPropertyValue("animation-name")==="none")&&(this._animationsDisabled=!0)}A&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(A))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-tooltip-component"]],viewQuery:function(i,n){if(i&1&&st(wfA,7),i&2){let o;de(o=Be())&&(n._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(i,n){i&1&&mA("mouseleave",function(r){return n._handleMouseLeave(r)})},decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(i,n){if(i&1){let o=me();S(0,"div",1,0),mA("animationend",function(s){return QA(o),uA(n._handleAnimationEnd(s))}),S(2,"div",2),AA(3),N()()}i&2&&(he("mdc-tooltip--multiline",n._isMultiline),yA("ngClass",n.tooltipClass),_(3),tt(n.message))},dependencies:[Vs],styles:['.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mdc-plain-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mdc-plain-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-plain-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mdc-plain-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mdc-plain-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mdc-plain-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mdc-plain-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-mdc-tooltip-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel{line-height:normal}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}return t})();var IR=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[vfA],imports:[vk,Z2,pn,pn,j2]})}return t})();function FfA(t,e){if(t&1&&(S(0,"mat-option",17),AA(1),N()),t&2){let A=e.$implicit;yA("value",A),_(),Bt(" ",A," ")}}function _fA(t,e){if(t&1){let A=me();S(0,"mat-form-field",14)(1,"mat-select",16,0),mA("selectionChange",function(n){QA(A);let o=Y(2);return uA(o._changePageSize(n.value))}),dn(3,FfA,2,2,"mat-option",17,zn),N(),S(5,"div",18),mA("click",function(){QA(A);let n=Cr(2);return uA(n.open())}),N()()}if(t&2){let A=Y(2);yA("appearance",A._formFieldAppearance)("color",A.color),_(),yA("value",A.pageSize)("disabled",A.disabled)("aria-labelledby",A._pageSizeLabelId)("panelClass",A.selectConfig.panelClass||"")("disableOptionCentering",A.selectConfig.disableOptionCentering),_(2),Bn(A._displayedPageSizeOptions)}}function GfA(t,e){if(t&1&&(S(0,"div",15),AA(1),N()),t&2){let A=Y(2);_(),tt(A.pageSize)}}function KfA(t,e){if(t&1&&(S(0,"div",3)(1,"div",13),AA(2),N(),FA(3,_fA,6,7,"mat-form-field",14)(4,GfA,2,1,"div",15),N()),t&2){let A=Y();_(),Ke("id",A._pageSizeLabelId),_(),Bt(" ",A._intl.itemsPerPageLabel," "),_(),_A(A._displayedPageSizeOptions.length>1?3:-1),_(),_A(A._displayedPageSizeOptions.length<=1?4:-1)}}function UfA(t,e){if(t&1){let A=me();S(0,"button",19),mA("click",function(){QA(A);let n=Y();return uA(n._buttonClicked(0,n._previousButtonsDisabled()))}),ur(),S(1,"svg",8),TA(2,"path",20),N()()}if(t&2){let A=Y();yA("matTooltip",A._intl.firstPageLabel)("matTooltipDisabled",A._previousButtonsDisabled())("disabled",A._previousButtonsDisabled()),Ke("aria-label",A._intl.firstPageLabel)}}function JfA(t,e){if(t&1){let A=me();S(0,"button",21),mA("click",function(){QA(A);let n=Y();return uA(n._buttonClicked(n.getNumberOfPages()-1,n._nextButtonsDisabled()))}),ur(),S(1,"svg",8),TA(2,"path",22),N()()}if(t&2){let A=Y();yA("matTooltip",A._intl.lastPageLabel)("matTooltipDisabled",A._nextButtonsDisabled())("disabled",A._nextButtonsDisabled()),Ke("aria-label",A._intl.lastPageLabel)}}var _8=(()=>{class t{changes=new qA;itemsPerPageLabel="Items per page:";nextPageLabel="Next page";previousPageLabel="Previous page";firstPageLabel="First page";lastPageLabel="Last page";getRangeLabel=(A,i,n)=>{if(n==0||i==0)return`0 of ${n}`;n=Math.max(n,0);let o=A*i,r=o{class t{_intl=f(_8);_changeDetectorRef=f(Et);_formFieldAppearance;_pageSizeLabelId=f(an).getId("mat-paginator-page-size-label-");_intlChanges;_isInitialized=!1;_initializedStream=new sg(1);color;get pageIndex(){return this._pageIndex}set pageIndex(A){this._pageIndex=Math.max(A||0,0),this._changeDetectorRef.markForCheck()}_pageIndex=0;get length(){return this._length}set length(A){this._length=A||0,this._changeDetectorRef.markForCheck()}_length=0;get pageSize(){return this._pageSize}set pageSize(A){this._pageSize=Math.max(A||0,0),this._updateDisplayedPageSizeOptions()}_pageSize;get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(A){this._pageSizeOptions=(A||[]).map(i=>en(i,0)),this._updateDisplayedPageSizeOptions()}_pageSizeOptions=[];hidePageSize=!1;showFirstLastButtons=!1;selectConfig={};disabled=!1;page=new YA;_displayedPageSizeOptions;initialized=this._initializedStream;constructor(){let A=this._intl,i=f(TfA,{optional:!0});if(this._intlChanges=A.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),i){let{pageSize:n,pageSizeOptions:o,hidePageSize:r,showFirstLastButtons:s}=i;n!=null&&(this._pageSize=n),o!=null&&(this._pageSizeOptions=o),r!=null&&(this.hidePageSize=r),s!=null&&(this.showFirstLastButtons=s)}this._formFieldAppearance=i?.formFieldAppearance||"outline"}ngOnInit(){this._isInitialized=!0,this._updateDisplayedPageSizeOptions(),this._initializedStream.next()}ngOnDestroy(){this._initializedStream.complete(),this._intlChanges.unsubscribe()}nextPage(){this.hasNextPage()&&this._navigate(this.pageIndex+1)}previousPage(){this.hasPreviousPage()&&this._navigate(this.pageIndex-1)}firstPage(){this.hasPreviousPage()&&this._navigate(0)}lastPage(){this.hasNextPage()&&this._navigate(this.getNumberOfPages()-1)}hasPreviousPage(){return this.pageIndex>=1&&this.pageSize!=0}hasNextPage(){let A=this.getNumberOfPages()-1;return this.pageIndexA-i),this._changeDetectorRef.markForCheck())}_emitPageEvent(A){this.page.emit({previousPageIndex:A,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}_navigate(A){let i=this.pageIndex;A!==i&&(this.pageIndex=A,this._emitPageEvent(i))}_buttonClicked(A,i){i||this._navigate(A)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-mdc-paginator"],inputs:{color:"color",pageIndex:[2,"pageIndex","pageIndex",en],length:[2,"length","length",en],pageSize:[2,"pageSize","pageSize",en],pageSizeOptions:"pageSizeOptions",hidePageSize:[2,"hidePageSize","hidePageSize",ge],showFirstLastButtons:[2,"showFirstLastButtons","showFirstLastButtons",ge],selectConfig:"selectConfig",disabled:[2,"disabled","disabled",ge]},outputs:{page:"page"},exportAs:["matPaginator"],decls:14,vars:12,consts:[["selectRef",""],[1,"mat-mdc-paginator-outer-container"],[1,"mat-mdc-paginator-container"],[1,"mat-mdc-paginator-page-size"],[1,"mat-mdc-paginator-range-actions"],["aria-live","polite",1,"mat-mdc-paginator-range-label"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","disabled"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-previous",3,"click","matTooltip","matTooltipDisabled","disabled"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true",1,"mat-mdc-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-next",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","disabled"],[1,"mat-mdc-paginator-page-size-label"],[1,"mat-mdc-paginator-page-size-select",3,"appearance","color"],[1,"mat-mdc-paginator-page-size-value"],["hideSingleSelectionIndicator","",3,"selectionChange","value","disabled","aria-labelledby","panelClass","disableOptionCentering"],[3,"value"],[1,"mat-mdc-paginator-touch-target",3,"click"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(i,n){i&1&&(S(0,"div",1)(1,"div",2),FA(2,KfA,5,4,"div",3),S(3,"div",4)(4,"div",5),AA(5),N(),FA(6,UfA,3,4,"button",6),S(7,"button",7),mA("click",function(){return n._buttonClicked(n.pageIndex-1,n._previousButtonsDisabled())}),ur(),S(8,"svg",8),TA(9,"path",9),N()(),_I(),S(10,"button",10),mA("click",function(){return n._buttonClicked(n.pageIndex+1,n._nextButtonsDisabled())}),ur(),S(11,"svg",8),TA(12,"path",11),N()(),FA(13,JfA,3,4,"button",12),N()()()),i&2&&(_(2),_A(n.hidePageSize?-1:2),_(3),Bt(" ",n._intl.getRangeLabel(n.pageIndex,n.pageSize,n.length)," "),_(),_A(n.showFirstLastButtons?6:-1),_(),yA("matTooltip",n._intl.previousPageLabel)("matTooltipDisabled",n._previousButtonsDisabled())("disabled",n._previousButtonsDisabled()),Ke("aria-label",n._intl.previousPageLabel),_(3),yA("matTooltip",n._intl.nextPageLabel)("matTooltipDisabled",n._nextButtonsDisabled())("disabled",n._nextButtonsDisabled()),Ke("aria-label",n._intl.nextPageLabel),_(3),_A(n.showFirstLastButtons?13:-1))},dependencies:[fl,YB,K2,QB,kl],styles:[".mat-mdc-paginator{display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-paginator-container-text-color, var(--mat-sys-on-surface));background-color:var(--mat-paginator-container-background-color, var(--mat-sys-surface));font-family:var(--mat-paginator-container-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-paginator-container-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-paginator-container-text-size, var(--mat-sys-body-small-size));font-weight:var(--mat-paginator-container-text-weight, var(--mat-sys-body-small-weight));letter-spacing:var(--mat-paginator-container-text-tracking, var(--mat-sys-body-small-tracking));--mat-form-field-container-height:var(--mat-paginator-form-field-container-height, 40px);--mat-form-field-container-vertical-padding:var(--mat-paginator-form-field-container-vertical-padding, 8px)}.mat-mdc-paginator .mat-mdc-select-value{font-size:var(--mat-paginator-select-trigger-text-size, var(--mat-sys-body-small-size))}.mat-mdc-paginator .mat-mdc-form-field-subscript-wrapper{display:none}.mat-mdc-paginator .mat-mdc-select{line-height:1.5}.mat-mdc-paginator-outer-container{display:flex}.mat-mdc-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap;width:100%;min-height:var(--mat-paginator-container-size, 56px)}.mat-mdc-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-mdc-paginator-page-size{margin-right:0;margin-left:8px}.mat-mdc-paginator-page-size-label{margin:0 4px}.mat-mdc-paginator-page-size-select{margin:0 4px;width:84px}.mat-mdc-paginator-range-label{margin:0 32px 0 24px}.mat-mdc-paginator-range-actions{display:flex;align-items:center}.mat-mdc-paginator-icon{display:inline-block;width:28px;fill:var(--mat-paginator-enabled-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button[aria-disabled] .mat-mdc-paginator-icon{fill:var(--mat-paginator-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}[dir=rtl] .mat-mdc-paginator-icon{transform:rotate(180deg)}@media(forced-colors: active){.mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon,.mat-mdc-paginator-icon{fill:currentColor;fill:CanvasText}.mat-mdc-paginator-range-actions .mat-mdc-icon-button{outline:solid 1px}}.mat-mdc-paginator-touch-target{display:var(--mat-paginator-touch-target-display, block);position:absolute;top:50%;left:50%;width:84px;height:48px;background-color:rgba(0,0,0,0);transform:translate(-50%, -50%);cursor:pointer}"],encapsulation:2,changeDetection:0})}return t})();var Kq=["*"],HfA=["content"],OfA=[[["mat-drawer"]],[["mat-drawer-content"]],"*"],zfA=["mat-drawer","mat-drawer-content","*"];function PfA(t,e){if(t&1){let A=me();S(0,"div",1),mA("click",function(){QA(A);let n=Y();return uA(n._onBackdropClicked())}),N()}if(t&2){let A=Y();he("mat-drawer-shown",A._isShowingBackdrop())}}function jfA(t,e){t&1&&(S(0,"mat-drawer-content"),Ue(1,2),N())}var qfA=new eA("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:VfA}),Uq=new eA("MAT_DRAWER_CONTAINER");function VfA(){return!1}var CR=(()=>{class t extends k0{_platform=f(ni);_changeDetectorRef=f(Et);_container=f(BR);constructor(){let A=f(se),i=f(q2),n=f(ye);super(A,i,n)}ngAfterContentInit(){this._container._contentMarginChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})}_shouldBeHidden(){if(this._platform.isBrowser)return!1;let{start:A,end:i}=this._container;return A!=null&&A.mode!=="over"&&A.opened||i!=null&&i.mode!=="over"&&i.opened}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-drawer-content"]],hostAttrs:[1,"mat-drawer-content"],hostVars:6,hostBindings:function(i,n){i&2&&(mo("margin-left",n._container._contentMargins.left,"px")("margin-right",n._container._contentMargins.right,"px"),he("mat-drawer-content-hidden",n._shouldBeHidden()))},features:[ut([{provide:k0,useExisting:t}]),lt],ngContentSelectors:Kq,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},encapsulation:2,changeDetection:0})}return t})(),dR=(()=>{class t{_elementRef=f(se);_focusTrapFactory=f(g6);_focusMonitor=f(Jr);_platform=f(ni);_ngZone=f(ye);_renderer=f(qi);_interactivityChecker=f(sh);_doc=f(at,{optional:!0});_container=f(Uq,{optional:!0});_focusTrap=null;_elementFocusedBeforeDrawerWasOpened=null;_eventCleanups;_isAttached;_anchor;get position(){return this._position}set position(A){A=A==="end"?"end":"start",A!==this._position&&(this._isAttached&&this._updatePositionInParent(A),this._position=A,this.onPositionChanged.emit())}_position="start";get mode(){return this._mode}set mode(A){this._mode=A,this._updateFocusTrapState(),this._modeChanged.next()}_mode="over";get disableClose(){return this._disableClose}set disableClose(A){this._disableClose=Ar(A)}_disableClose=!1;get autoFocus(){let A=this._autoFocus;return A??(this.mode==="side"?"dialog":"first-tabbable")}set autoFocus(A){(A==="true"||A==="false"||A==null)&&(A=Ar(A)),this._autoFocus=A}_autoFocus;get opened(){return this._opened}set opened(A){this.toggle(Ar(A))}_opened=!1;_openedVia;_animationStarted=new qA;_animationEnd=new qA;openedChange=new YA(!0);_openedStream=this.openedChange.pipe(Nt(A=>A),je(()=>{}));openedStart=this._animationStarted.pipe(Nt(()=>this.opened),wd(void 0));_closedStream=this.openedChange.pipe(Nt(A=>!A),je(()=>{}));closedStart=this._animationStarted.pipe(Nt(()=>!this.opened),wd(void 0));_destroyed=new qA;onPositionChanged=new YA;_content;_modeChanged=new qA;_injector=f(Zt);_changeDetectorRef=f(Et);constructor(){this.openedChange.pipe(kt(this._destroyed)).subscribe(A=>{A?(this._doc&&(this._elementFocusedBeforeDrawerWasOpened=this._doc.activeElement),this._takeFocus()):this._isFocusWithinDrawer()&&this._restoreFocus(this._openedVia||"program")}),this._ngZone.runOutsideAngular(()=>{let A=this._elementRef.nativeElement;lu(A,"keydown").pipe(Nt(i=>i.keyCode===27&&!this.disableClose&&!sr(i)),kt(this._destroyed)).subscribe(i=>this._ngZone.run(()=>{this.close(),i.stopPropagation(),i.preventDefault()})),this._eventCleanups=[this._renderer.listen(A,"transitionrun",this._handleTransitionEvent),this._renderer.listen(A,"transitionend",this._handleTransitionEvent),this._renderer.listen(A,"transitioncancel",this._handleTransitionEvent)]}),this._animationEnd.subscribe(()=>{this.openedChange.emit(this._opened)})}_forceFocus(A,i){this._interactivityChecker.isFocusable(A)||(A.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let n=()=>{o(),r(),A.removeAttribute("tabindex")},o=this._renderer.listen(A,"blur",n),r=this._renderer.listen(A,"mousedown",n)})),A.focus(i)}_focusByCssSelector(A,i){let n=this._elementRef.nativeElement.querySelector(A);n&&this._forceFocus(n,i)}_takeFocus(){if(!this._focusTrap)return;let A=this._elementRef.nativeElement;switch(this.autoFocus){case!1:case"dialog":return;case!0:case"first-tabbable":Ir(()=>{!this._focusTrap.focusInitialElement()&&typeof A.focus=="function"&&A.focus()},{injector:this._injector});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this.autoFocus);break}}_restoreFocus(A){this.autoFocus!=="dialog"&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,A):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null)}_isFocusWithinDrawer(){let A=this._doc.activeElement;return!!A&&this._elementRef.nativeElement.contains(A)}ngAfterViewInit(){this._isAttached=!0,this._position==="end"&&this._updatePositionInParent("end"),this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState())}ngOnDestroy(){this._eventCleanups.forEach(A=>A()),this._focusTrap?.destroy(),this._anchor?.remove(),this._anchor=null,this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}open(A){return this.toggle(!0,A)}close(){return this.toggle(!1)}_closeViaBackdropClick(){return this._setOpen(!1,!0,"mouse")}toggle(A=!this.opened,i){A&&i&&(this._openedVia=i);let n=this._setOpen(A,!A&&this._isFocusWithinDrawer(),this._openedVia||"program");return A||(this._openedVia=null),n}_setOpen(A,i,n){return A===this._opened?Promise.resolve(A?"open":"close"):(this._opened=A,this._container?._transitionsEnabled?this._setIsAnimating(!0):setTimeout(()=>{this._animationStarted.next(),this._animationEnd.next()}),this._elementRef.nativeElement.classList.toggle("mat-drawer-opened",A),!A&&i&&this._restoreFocus(n),this._changeDetectorRef.markForCheck(),this._updateFocusTrapState(),new Promise(o=>{this.openedChange.pipe(Xn(1)).subscribe(r=>o(r?"open":"close"))}))}_setIsAnimating(A){this._elementRef.nativeElement.classList.toggle("mat-drawer-animating",A)}_getWidth(){return this._elementRef.nativeElement.offsetWidth||0}_updateFocusTrapState(){this._focusTrap&&(this._focusTrap.enabled=!!this._container?.hasBackdrop&&this.opened)}_updatePositionInParent(A){if(!this._platform.isBrowser)return;let i=this._elementRef.nativeElement,n=i.parentNode;A==="end"?(this._anchor||(this._anchor=this._doc.createComment("mat-drawer-anchor"),n.insertBefore(this._anchor,i)),n.appendChild(i)):this._anchor&&this._anchor.parentNode.insertBefore(i,this._anchor)}_handleTransitionEvent=A=>{let i=this._elementRef.nativeElement;A.target===i&&this._ngZone.run(()=>{A.type==="transitionrun"?this._animationStarted.next(A):(A.type==="transitionend"&&this._setIsAnimating(!1),this._animationEnd.next(A))})};static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-drawer"]],viewQuery:function(i,n){if(i&1&&st(HfA,5),i&2){let o;de(o=Be())&&(n._content=o.first)}},hostAttrs:["tabIndex","-1",1,"mat-drawer"],hostVars:11,hostBindings:function(i,n){i&2&&(Ke("align",null),mo("visibility",!n._container&&!n.opened?"hidden":null),he("mat-drawer-end",n.position==="end")("mat-drawer-over",n.mode==="over")("mat-drawer-push",n.mode==="push")("mat-drawer-side",n.mode==="side"))},inputs:{position:"position",mode:"mode",disableClose:"disableClose",autoFocus:"autoFocus",opened:"opened"},outputs:{openedChange:"openedChange",_openedStream:"opened",openedStart:"openedStart",_closedStream:"closed",closedStart:"closedStart",onPositionChanged:"positionChanged"},exportAs:["matDrawer"],ngContentSelectors:Kq,decls:3,vars:0,consts:[["content",""],["cdkScrollable","",1,"mat-drawer-inner-container"]],template:function(i,n){i&1&&($t(),S(0,"div",1,0),Ue(2),N())},dependencies:[k0],encapsulation:2,changeDetection:0})}return t})(),BR=(()=>{class t{_dir=f(po,{optional:!0});_element=f(se);_ngZone=f(ye);_changeDetectorRef=f(Et);_animationMode=f(_i,{optional:!0});_transitionsEnabled=!1;_allDrawers;_drawers=new qa;_content;_userContent;get start(){return this._start}get end(){return this._end}get autosize(){return this._autosize}set autosize(A){this._autosize=Ar(A)}_autosize=f(qfA);get hasBackdrop(){return this._drawerHasBackdrop(this._start)||this._drawerHasBackdrop(this._end)}set hasBackdrop(A){this._backdropOverride=A==null?null:Ar(A)}_backdropOverride;backdropClick=new YA;_start;_end;_left;_right;_destroyed=new qA;_doCheckSubject=new qA;_contentMargins={left:null,right:null};_contentMarginChanges=new qA;get scrollable(){return this._userContent||this._content}_injector=f(Zt);constructor(){let A=f(ni),i=f(Nc);this._dir?.change.pipe(kt(this._destroyed)).subscribe(()=>{this._validateDrawers(),this.updateContentMargins()}),i.change().pipe(kt(this._destroyed)).subscribe(()=>this.updateContentMargins()),this._animationMode!=="NoopAnimations"&&A.isBrowser&&this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{this._element.nativeElement.classList.add("mat-drawer-transition"),this._transitionsEnabled=!0},200)})}ngAfterContentInit(){this._allDrawers.changes.pipe(On(this._allDrawers),kt(this._destroyed)).subscribe(A=>{this._drawers.reset(A.filter(i=>!i._container||i._container===this)),this._drawers.notifyOnChanges()}),this._drawers.changes.pipe(On(null)).subscribe(()=>{this._validateDrawers(),this._drawers.forEach(A=>{this._watchDrawerToggle(A),this._watchDrawerPosition(A),this._watchDrawerMode(A)}),(!this._drawers.length||this._isDrawerOpen(this._start)||this._isDrawerOpen(this._end))&&this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(()=>{this._doCheckSubject.pipe(ag(10),kt(this._destroyed)).subscribe(()=>this.updateContentMargins())})}ngOnDestroy(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}open(){this._drawers.forEach(A=>A.open())}close(){this._drawers.forEach(A=>A.close())}updateContentMargins(){let A=0,i=0;if(this._left&&this._left.opened){if(this._left.mode=="side")A+=this._left._getWidth();else if(this._left.mode=="push"){let n=this._left._getWidth();A+=n,i-=n}}if(this._right&&this._right.opened){if(this._right.mode=="side")i+=this._right._getWidth();else if(this._right.mode=="push"){let n=this._right._getWidth();i+=n,A-=n}}A=A||null,i=i||null,(A!==this._contentMargins.left||i!==this._contentMargins.right)&&(this._contentMargins={left:A,right:i},this._ngZone.run(()=>this._contentMarginChanges.next(this._contentMargins)))}ngDoCheck(){this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(()=>this._doCheckSubject.next())}_watchDrawerToggle(A){A._animationStarted.pipe(kt(this._drawers.changes)).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),A.mode!=="side"&&A.openedChange.pipe(kt(this._drawers.changes)).subscribe(()=>this._setContainerClass(A.opened))}_watchDrawerPosition(A){A.onPositionChanged.pipe(kt(this._drawers.changes)).subscribe(()=>{Ir({read:()=>this._validateDrawers()},{injector:this._injector})})}_watchDrawerMode(A){A._modeChanged.pipe(kt(Hn(this._drawers.changes,this._destroyed))).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()})}_setContainerClass(A){let i=this._element.nativeElement.classList,n="mat-drawer-container-has-open";A?i.add(n):i.remove(n)}_validateDrawers(){this._start=this._end=null,this._drawers.forEach(A=>{A.position=="end"?(this._end!=null,this._end=A):(this._start!=null,this._start=A)}),this._right=this._left=null,this._dir&&this._dir.value==="rtl"?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}_isPushed(){return this._isDrawerOpen(this._start)&&this._start.mode!="over"||this._isDrawerOpen(this._end)&&this._end.mode!="over"}_onBackdropClicked(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}_closeModalDrawersViaBackdrop(){[this._start,this._end].filter(A=>A&&!A.disableClose&&this._drawerHasBackdrop(A)).forEach(A=>A._closeViaBackdropClick())}_isShowingBackdrop(){return this._isDrawerOpen(this._start)&&this._drawerHasBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._drawerHasBackdrop(this._end)}_isDrawerOpen(A){return A!=null&&A.opened}_drawerHasBackdrop(A){return this._backdropOverride==null?!!A&&A.mode!=="side":this._backdropOverride}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-drawer-container"]],contentQueries:function(i,n,o){if(i&1&&(gi(o,CR,5),gi(o,dR,5)),i&2){let r;de(r=Be())&&(n._content=r.first),de(r=Be())&&(n._allDrawers=r)}},viewQuery:function(i,n){if(i&1&&st(CR,5),i&2){let o;de(o=Be())&&(n._userContent=o.first)}},hostAttrs:[1,"mat-drawer-container"],hostVars:2,hostBindings:function(i,n){i&2&&he("mat-drawer-container-explicit-backdrop",n._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[ut([{provide:Uq,useExisting:t}])],ngContentSelectors:zfA,decls:4,vars:2,consts:[[1,"mat-drawer-backdrop",3,"mat-drawer-shown"],[1,"mat-drawer-backdrop",3,"click"]],template:function(i,n){i&1&&($t(OfA),FA(0,PfA,1,2,"div",0),Ue(1),Ue(2,1),FA(3,jfA,2,0,"mat-drawer-content")),i&2&&(_A(n.hasBackdrop?0:-1),_(3),_A(n._content?-1:3))},dependencies:[CR],styles:[".mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color, var(--mat-sys-on-background));background-color:var(--mat-sidenav-content-background-color, var(--mat-sys-background));box-sizing:border-box;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color, color-mix(in srgb, var(--mat-sys-neutral-variant20) 40%, transparent))}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}@media(forced-colors: active){.mat-drawer-backdrop{opacity:.5}}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-content.mat-drawer-content-hidden{opacity:0}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;color:var(--mat-sidenav-container-text-color, var(--mat-sys-on-surface-variant));box-shadow:var(--mat-sidenav-container-elevation-shadow, none);background-color:var(--mat-sidenav-container-background-color, var(--mat-sys-surface));border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));width:var(--mat-sidenav-container-width, 360px);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}@media(forced-colors: active){.mat-drawer,[dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}}@media(forced-colors: active){[dir=rtl] .mat-drawer,.mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer-transition .mat-drawer{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating){visibility:hidden;box-shadow:none}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating) .mat-drawer-inner-container{display:none}.mat-drawer.mat-drawer-opened.mat-drawer-opened{transform:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto}.mat-sidenav-fixed{position:fixed}"],encapsulation:2,changeDetection:0})}return t})();var WfA=["switch"],XfA=["*"];function $fA(t,e){t&1&&(S(0,"span",10),ur(),S(1,"svg",12),TA(2,"path",13),N(),S(3,"svg",14),TA(4,"path",15),N()())}var AmA=new eA("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1,disabledInteractive:!1})}),emA={provide:bc,useExisting:Ur(()=>ER),multi:!0},G8=class{source;checked;constructor(e,A){this.source=e,this.checked=A}},ER=(()=>{class t{_elementRef=f(se);_focusMonitor=f(Jr);_changeDetectorRef=f(Et);defaults=f(AmA);_onChange=A=>{};_onTouched=()=>{};_validatorOnChange=()=>{};_uniqueId;_checked=!1;_createChangeEvent(A){return new G8(this,A)}_labelId;get buttonId(){return`${this.id||this._uniqueId}-button`}_switchElement;focus(){this._switchElement.nativeElement.focus()}_noopAnimations;_focused;name=null;id;labelPosition="after";ariaLabel=null;ariaLabelledby=null;ariaDescribedby;required;color;disabled=!1;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(A){this._checked=A,this._changeDetectorRef.markForCheck()}hideIcon;disabledInteractive;change=new YA;toggleChange=new YA;get inputId(){return`${this.id||this._uniqueId}-input`}constructor(){f(Pn).load(Yr);let A=f(new Wr("tabindex"),{optional:!0}),i=this.defaults,n=f(_i,{optional:!0});this.tabIndex=A==null?0:parseInt(A)||0,this.color=i.color||"accent",this._noopAnimations=n==="NoopAnimations",this.id=this._uniqueId=f(an).getId("mat-mdc-slide-toggle-"),this.hideIcon=i.hideIcon??!1,this.disabledInteractive=i.disabledInteractive??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(A=>{A==="keyboard"||A==="program"?(this._focused=!0,this._changeDetectorRef.markForCheck()):A||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(A){A.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(A){this.checked=!!A}registerOnChange(A){this._onChange=A}registerOnTouched(A){this._onTouched=A}validate(A){return this.required&&A.value!==!0?{required:!0}:null}registerOnValidatorChange(A){this._validatorOnChange=A}setDisabledState(A){this.disabled=A,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.disabled||(this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new G8(this,this.checked))))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-slide-toggle"]],viewQuery:function(i,n){if(i&1&&st(WfA,5),i&2){let o;de(o=Be())&&(n._switchElement=o.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,n){i&2&&(Qa("id",n.id),Ke("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-slide-toggle-focused",n._focused)("mat-mdc-slide-toggle-checked",n.checked)("_mat-animation-noopable",n._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],required:[2,"required","required",ge],color:"color",disabled:[2,"disabled","disabled",ge],disableRipple:[2,"disableRipple","disableRipple",ge],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:en(A)],checked:[2,"checked","checked",ge],hideIcon:[2,"hideIcon","hideIcon",ge],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],features:[ut([emA,{provide:M0,useExisting:t,multi:!0}]),Xt],ngContentSelectors:XfA,decls:13,vars:27,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"div",1)(1,"button",2,0),mA("click",function(){return QA(o),uA(n._handleClick())}),TA(3,"span",3),S(4,"span",4)(5,"span",5)(6,"span",6),TA(7,"span",7),N(),S(8,"span",8),TA(9,"span",9),N(),FA(10,$fA,5,0,"span",10),N()()(),S(11,"label",11),mA("click",function(s){return QA(o),uA(s.stopPropagation())}),Ue(12),N()()}if(i&2){let o=Cr(2);yA("labelPosition",n.labelPosition),_(),he("mdc-switch--selected",n.checked)("mdc-switch--unselected",!n.checked)("mdc-switch--checked",n.checked)("mdc-switch--disabled",n.disabled)("mat-mdc-slide-toggle-disabled-interactive",n.disabledInteractive),yA("tabIndex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("disabled",n.disabled&&!n.disabledInteractive),Ke("id",n.buttonId)("name",n.name)("aria-label",n.ariaLabel)("aria-labelledby",n._getAriaLabelledBy())("aria-describedby",n.ariaDescribedby)("aria-required",n.required||null)("aria-checked",n.checked)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),_(8),yA("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)("matRippleCentered",!0),_(),_A(n.hideIcon?-1:10),_(),yA("for",n.buttonId),Ke("id",n._labelId)}},dependencies:[Xs,B6],styles:['.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative;width:var(--mdc-switch-track-width, 52px)}.mdc-switch.mdc-switch--disabled{cursor:default;pointer-events:none}.mdc-switch.mat-mdc-slide-toggle-disabled-interactive{pointer-events:auto}.mdc-switch__track{overflow:hidden;position:relative;width:100%;height:var(--mdc-switch-track-height, 32px);border-radius:var(--mdc-switch-track-shape, var(--mat-sys-corner-full))}.mdc-switch--disabled.mdc-switch .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity, 0.12)}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%;border-width:var(--mat-switch-track-outline-width, 2px);border-color:var(--mat-switch-track-outline-color, var(--mat-sys-outline))}.mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track::after{border-width:var(--mat-switch-selected-track-outline-width, 2px);border-color:var(--mat-switch-selected-track-outline-color, transparent)}.mdc-switch--disabled .mdc-switch__track::before,.mdc-switch--disabled .mdc-switch__track::after{border-width:var(--mat-switch-disabled-unselected-track-outline-width, 2px);border-color:var(--mat-switch-disabled-unselected-track-outline-color, var(--mat-sys-on-surface))}@media(forced-colors: active){.mdc-switch__track{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0);background:var(--mdc-switch-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch--selected .mdc-switch__track::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color, var(--mat-sys-surface-variant))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::before,.mdc-switch.mdc-switch--disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch__track::after{transform:translateX(-100%);background:var(--mdc-switch-selected-track-color, var(--mat-sys-primary))}[dir=rtl] .mdc-switch__track::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::after{transform:translateX(0)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color, var(--mat-sys-primary))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::after,.mdc-switch.mdc-switch--disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color, var(--mat-sys-on-surface))}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0);width:calc(100% - var(--mdc-switch-handle-width))}[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto;transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1);width:var(--mdc-switch-handle-width);height:var(--mdc-switch-handle-height);border-radius:var(--mdc-switch-handle-shape, var(--mat-sys-corner-full))}[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size, 16px);height:var(--mat-switch-unselected-handle-size, 16px);margin:var(--mat-switch-unselected-handle-horizontal-margin, 0 8px)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin, 0 4px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size, 24px);height:var(--mat-switch-selected-handle-size, 24px);margin:var(--mat-switch-selected-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size, 24px);height:var(--mat-switch-with-icon-handle-size, 24px)}.mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size, 28px);height:var(--mat-switch-pressed-handle-size, 28px)}.mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin, 0 22px)}.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin, 0 2px)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity, 1)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity, 0.38)}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media(forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color, var(--mat-sys-on-primary))}.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color, var(--mat-sys-primary-container))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:hover:not(:focus):not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:focus:not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:active .mdc-switch__handle::after,.mdc-switch--selected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color, var(--mat-sys-surface))}.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color, var(--mat-sys-outline))}.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color, var(--mat-sys-on-surface))}.mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__shadow,.mdc-switch.mdc-switch--disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1;width:var(--mdc-switch-state-layer-size, 40px);height:var(--mdc-switch-state-layer-size, 40px)}.mdc-switch__ripple::after{content:"";opacity:0}.mdc-switch--disabled .mdc-switch__ripple::after{display:none}.mat-mdc-slide-toggle-disabled-interactive .mdc-switch__ripple::after{display:block}.mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:75ms opacity cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:focus .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:active .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-pressed-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-selected-pressed-state-layer-color, var(--mat-sys-primary));opacity:var(--mdc-switch-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch__icons{position:relative;height:100%;width:100%;z-index:1}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity, 0.38)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity, 0.38)}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size, 16px);height:var(--mdc-switch-unselected-icon-size, 16px);fill:var(--mdc-switch-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size, 16px);height:var(--mdc-switch-selected-icon-size, 16px);fill:var(--mdc-switch-selected-icon-color, var(--mat-sys-on-primary-container))}.mdc-switch--selected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color, var(--mat-sys-on-surface))}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle{-webkit-user-select:none;user-select:none;display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-internal-form-field{color:var(--mat-switch-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-switch-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-switch-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-switch-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-switch-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-switch-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}'],encapsulation:2,changeDetection:0})}return t})();function tmA(t,e){if(t&1){let A=me();S(0,"div",1)(1,"button",2),mA("click",function(){QA(A);let n=Y();return uA(n.action())}),AA(2),N()()}if(t&2){let A=Y();_(2),Bt(" ",A.data.action," ")}}var imA=["label"];function nmA(t,e){}var omA=Math.pow(2,31)-1,Zh=class{_overlayRef;instance;containerInstance;_afterDismissed=new qA;_afterOpened=new qA;_onAction=new qA;_durationTimeoutId;_dismissedByAction=!1;constructor(e,A){this._overlayRef=A,this.containerInstance=e,e._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(e){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(e,omA))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}},Jq=new eA("MatSnackBarData"),TB=class{politeness="assertive";announcementMessage="";viewContainerRef;duration=0;panelClass;direction;data=null;horizontalPosition="center";verticalPosition="bottom"},rmA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return t})(),smA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return t})(),amA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return t})(),cmA=(()=>{class t{snackBarRef=f(Zh);data=f(Jq);constructor(){}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(i,n){i&1&&(S(0,"div",0),AA(1),N(),FA(2,tmA,3,1,"div",1)),i&2&&(_(),Bt(" ",n.data.message,` +`),_(),_A(n.hasAction?2:-1))},dependencies:[dr,rmA,smA,amA],styles:[".mat-mdc-simple-snack-bar{display:flex}"],encapsulation:2,changeDetection:0})}return t})(),gmA={snackBarState:nc("state",[$s("void, hidden",Do({transform:"scale(0.8)",opacity:0})),$s("visible",Do({transform:"scale(1)",opacity:1})),$r("* => visible",Is("150ms cubic-bezier(0, 0, 0.2, 1)")),$r("* => void, * => hidden",Is("75ms cubic-bezier(0.4, 0.0, 1, 1)",Do({opacity:0})))])},lmA=(()=>{class t extends V2{_ngZone=f(ye);_elementRef=f(se);_changeDetectorRef=f(Et);_platform=f(ni);snackBarConfig=f(TB);_document=f(at);_trackedModals=new Set;_announceDelay=150;_announceTimeoutId;_destroyed=!1;_portalOutlet;_onAnnounce=new qA;_onExit=new qA;_onEnter=new qA;_animationState="void";_live;_label;_role;_liveElementId=f(an).getId("mat-snack-bar-container-live-");constructor(){super();let A=this.snackBarConfig;A.politeness==="assertive"&&!A.announcementMessage?this._live="assertive":A.politeness==="off"?this._live="off":this._live="polite",this._platform.FIREFOX&&(this._live==="polite"&&(this._role="status"),this._live==="assertive"&&(this._role="alert"))}attachComponentPortal(A){this._assertNotAttached();let i=this._portalOutlet.attachComponentPortal(A);return this._afterPortalAttached(),i}attachTemplatePortal(A){this._assertNotAttached();let i=this._portalOutlet.attachTemplatePortal(A);return this._afterPortalAttached(),i}attachDomPortal=A=>{this._assertNotAttached();let i=this._portalOutlet.attachDomPortal(A);return this._afterPortalAttached(),i};onAnimationEnd(A){let{fromState:i,toState:n}=A;if((n==="void"&&i!=="void"||n==="hidden")&&this._completeExit(),n==="visible"){let o=this._onEnter;this._ngZone.run(()=>{o.next(),o.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.markForCheck(),this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._ngZone.run(()=>{this._animationState="hidden",this._changeDetectorRef.markForCheck(),this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId)}),this._onExit}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){queueMicrotask(()=>{this._onExit.next(),this._onExit.complete()})}_afterPortalAttached(){let A=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(r=>A.classList.add(r)):A.classList.add(i)),this._exposeToModals();let n=this._label.nativeElement,o="mdc-snackbar__label";n.classList.toggle(o,!n.querySelector(`.${o}`))}_exposeToModals(){let A=this._liveElementId,i=this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');for(let n=0;n{let i=A.getAttribute("aria-owns");if(i){let n=i.replace(this._liveElementId,"").trim();n.length>0?A.setAttribute("aria-owns",n):A.removeAttribute("aria-owns")}}),this._trackedModals.clear()}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{let A=this._elementRef.nativeElement.querySelector("[aria-hidden]"),i=this._elementRef.nativeElement.querySelector("[aria-live]");if(A&&i){let n=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&A.contains(document.activeElement)&&(n=document.activeElement),A.removeAttribute("aria-hidden"),i.appendChild(A),n?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-snack-bar-container"]],viewQuery:function(i,n){if(i&1&&(st(wa,7),st(imA,7)),i&2){let o;de(o=Be())&&(n._portalOutlet=o.first),de(o=Be())&&(n._label=o.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container"],hostVars:1,hostBindings:function(i,n){i&1&&kb("@state.done",function(r){return n.onAnimationEnd(r)}),i&2&&bb("@state",n._animationState)},features:[lt],decls:6,vars:3,consts:[["label",""],[1,"mdc-snackbar__surface","mat-mdc-snackbar-surface"],[1,"mat-mdc-snack-bar-label"],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(i,n){i&1&&(S(0,"div",1)(1,"div",2,0)(3,"div",3),FA(4,nmA,0,0,"ng-template",4),N(),TA(5,"div"),N()()),i&2&&(_(5),Ke("aria-live",n._live)("role",n._role)("id",n._liveElementId))},dependencies:[wa],styles:[".mat-mdc-snack-bar-container{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);margin:8px}.mat-mdc-snack-bar-handset .mat-mdc-snack-bar-container{width:100vw}.mat-mdc-snackbar-surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;padding-left:0;padding-right:8px}[dir=rtl] .mat-mdc-snackbar-surface{padding-right:0;padding-left:8px}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{min-width:344px;max-width:672px}.mat-mdc-snack-bar-handset .mat-mdc-snackbar-surface{width:100%;min-width:0}@media(forced-colors: active){.mat-mdc-snackbar-surface{outline:solid 1px}}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{color:var(--mdc-snackbar-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-snackbar-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mdc-snackbar-container-color, var(--mat-sys-inverse-surface))}.mdc-snackbar__label{width:100%;flex-grow:1;box-sizing:border-box;margin:0;padding:14px 8px 14px 16px}[dir=rtl] .mdc-snackbar__label{padding-left:8px;padding-right:16px}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-family:var(--mdc-snackbar-supporting-text-font, var(--mat-sys-body-medium-font));font-size:var(--mdc-snackbar-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mdc-snackbar-supporting-text-weight, var(--mat-sys-body-medium-weight));line-height:var(--mdc-snackbar-supporting-text-line-height, var(--mat-sys-body-medium-line-height))}.mat-mdc-snack-bar-actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled).mat-unthemed{color:var(--mat-snack-bar-button-color, var(--mat-sys-inverse-primary))}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){--mat-text-button-state-layer-color:currentColor;--mat-text-button-ripple-color:currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{opacity:.1}"],encapsulation:2,data:{animation:[gmA.snackBarState]}})}return t})();function ImA(){return new TB}var CmA=new eA("mat-snack-bar-default-options",{providedIn:"root",factory:ImA}),Yq=(()=>{class t{_overlay=f(Br);_live=f(l6);_injector=f(Zt);_breakpointObserver=f(t6);_parentSnackBar=f(t,{optional:!0,skipSelf:!0});_defaultConfig=f(CmA);_snackBarRefAtThisLevel=null;simpleSnackBarComponent=cmA;snackBarContainerComponent=lmA;handsetCssClass="mat-mdc-snack-bar-handset";get _openedSnackBarRef(){let A=this._parentSnackBar;return A?A._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(A){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=A:this._snackBarRefAtThisLevel=A}constructor(){}openFromComponent(A,i){return this._attach(A,i)}openFromTemplate(A,i){return this._attach(A,i)}open(A,i="",n){let o=sA(sA({},this._defaultConfig),n);return o.data={message:A,action:i},o.announcementMessage===A&&(o.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,o)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(A,i){let n=i&&i.viewContainerRef&&i.viewContainerRef.injector,o=Zt.create({parent:n||this._injector,providers:[{provide:TB,useValue:i}]}),r=new yg(this.snackBarContainerComponent,i.viewContainerRef,o),s=A.attach(r);return s.instance.snackBarConfig=i,s.instance}_attach(A,i){let n=sA(sA(sA({},new TB),this._defaultConfig),i),o=this._createOverlay(n),r=this._attachSnackBarContainer(o,n),s=new Zh(r,o);if(A instanceof mn){let a=new Rs(A,null,{$implicit:n.data,snackBarRef:s});s.instance=r.attachTemplatePortal(a)}else{let a=this._createInjector(n,s),c=new yg(A,void 0,a),g=r.attachComponentPortal(c);s.instance=g.instance}return this._breakpointObserver.observe(Qz.HandsetPortrait).pipe(kt(o.detachments())).subscribe(a=>{o.overlayElement.classList.toggle(this.handsetCssClass,a.matches)}),n.announcementMessage&&r._onAnnounce.subscribe(()=>{this._live.announce(n.announcementMessage,n.politeness)}),this._animateSnackBar(s,n),this._openedSnackBarRef=s,this._openedSnackBarRef}_animateSnackBar(A,i){A.afterDismissed().subscribe(()=>{this._openedSnackBarRef==A&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{A.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):A.containerInstance.enter(),i.duration&&i.duration>0&&A.afterOpened().subscribe(()=>A._dismissAfter(i.duration))}_createOverlay(A){let i=new Ml;i.direction=A.direction;let n=this._overlay.position().global(),o=A.direction==="rtl",r=A.horizontalPosition==="left"||A.horizontalPosition==="start"&&!o||A.horizontalPosition==="end"&&o,s=!r&&A.horizontalPosition!=="center";return r?n.left("0"):s?n.right("0"):n.centerHorizontally(),A.verticalPosition==="top"?n.top("0"):n.bottom("0"),i.positionStrategy=n,this._overlay.create(i)}_createInjector(A,i){let n=A&&A.viewContainerRef&&A.viewContainerRef.injector;return Zt.create({parent:n||this._injector,providers:[{provide:Zh,useValue:i},{provide:Jq,useValue:A.data}]})}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var dmA=t=>["segment",t],BmA=(t,e)=>({"segment-main":!0,expandable:t,expanded:e});function EmA(t,e){t&1&&TA(0,"div",9)}function QmA(t,e){if(t&1&&(S(0,"span",10),AA(1),N()),t&2){let A=Y().$implicit;_(),tt(A.description)}}function umA(t,e){if(t&1&&(S(0,"section",11),TA(1,"ngx-json-viewer",12),N()),t&2){let A=Y().$implicit,i=Y();_(),yA("json",A.value)("expanded",i.expanded)("depth",i.depth)("_currentDepth",i._currentDepth+1)}}function hmA(t,e){if(t&1){let A=me();S(0,"section",2)(1,"section",3),mA("click",function(){let n=QA(A).$implicit,o=Y();return uA(o.toggle(n))}),FA(2,EmA,1,0,"div",4),S(3,"span",5),AA(4),N(),S(5,"span",6),AA(6,": "),N(),FA(7,QmA,2,1,"span",7),N(),FA(8,umA,2,4,"section",8),N()}if(t&2){let A=e.$implicit,i=Y();yA("ngClass",vc(6,dmA,"segment-type-"+A.type)),_(),yA("ngClass",Bg(8,BmA,i.isExpandable(A),A.expanded)),_(),yA("ngIf",i.isExpandable(A)),_(2),tt(A.key),_(3),yA("ngIf",!A.expanded||!i.isExpandable(A)),_(),yA("ngIf",A.expanded&&i.isExpandable(A))}}var X2=(()=>{class t{constructor(){this.expanded=!0,this.depth=-1,this._currentDepth=0,this.segments=[]}ngOnChanges(){this.segments=[],this.json=this.decycle(this.json),typeof this.json=="object"?Object.keys(this.json).forEach(A=>{this.segments.push(this.parseKeyValue(A,this.json[A]))}):this.segments.push(this.parseKeyValue(`(${typeof this.json})`,this.json))}isExpandable(A){return A.type==="object"||A.type==="array"}toggle(A){this.isExpandable(A)&&(A.expanded=!A.expanded)}parseKeyValue(A,i){let n={key:A,value:i,type:void 0,description:""+i,expanded:this.isExpanded()};switch(typeof n.value){case"number":{n.type="number";break}case"boolean":{n.type="boolean";break}case"function":{n.type="function";break}case"string":{n.type="string",n.description='"'+n.value+'"';break}case"undefined":{n.type="undefined",n.description="undefined";break}case"object":{n.value===null?(n.type="null",n.description="null"):Array.isArray(n.value)?(n.type="array",n.description="Array["+n.value.length+"] "+JSON.stringify(n.value)):n.value instanceof Date?n.type="date":(n.type="object",n.description="Object "+JSON.stringify(n.value));break}}return n}isExpanded(){return this.expanded&&!(this.depth>-1&&this._currentDepth>=this.depth)}decycle(A){let i=new WeakMap;return function n(o,r){let s,a;return typeof o=="object"&&o!==null&&!(o instanceof Boolean)&&!(o instanceof Date)&&!(o instanceof Number)&&!(o instanceof RegExp)&&!(o instanceof String)?(s=i.get(o),s!==void 0?{$ref:s}:(i.set(o,r),Array.isArray(o)?(a=[],o.forEach(function(c,g){a[g]=n(c,r+"["+g+"]")})):(a={},Object.keys(o).forEach(function(c){a[c]=n(o[c],r+"["+JSON.stringify(c)+"]")})),a)):o}(A,"$")}}return t.\u0275fac=function(A){return new(A||t)},t.\u0275cmp=jA({type:t,selectors:[["ngx-json-viewer"]],inputs:{json:"json",expanded:"expanded",depth:"depth",_currentDepth:"_currentDepth"},standalone:!1,features:[Xt],decls:2,vars:1,consts:[[1,"ngx-json-viewer"],[3,"ngClass",4,"ngFor","ngForOf"],[3,"ngClass"],[3,"click","ngClass"],["class","toggler",4,"ngIf"],[1,"segment-key"],[1,"segment-separator"],["class","segment-value",4,"ngIf"],["class","children",4,"ngIf"],[1,"toggler"],[1,"segment-value"],[1,"children"],[3,"json","expanded","depth","_currentDepth"]],template:function(A,i){A&1&&(S(0,"section",0),FA(1,hmA,9,11,"section",1),N()),A&2&&(_(),yA("ngForOf",i.segments))},dependencies:[Vs,Lp,Tu,t],styles:['@charset "UTF-8";.ngx-json-viewer[_ngcontent-%COMP%]{font-family:var(--ngx-json-font-family, monospace);font-size:var(--ngx-json-font-size, 1em);width:100%;height:100%;overflow:hidden;position:relative}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%]{padding:2px;margin:1px 1px 1px 12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%]{word-wrap:break-word}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]{position:absolute;margin-left:-14px;margin-top:3px;font-size:.8em;line-height:1.2em;vertical-align:middle;color:var(--ngx-json-toggler, #787878)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]:after{display:inline-block;content:"\\25ba";transition:transform .1s ease-in}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-key, #4E187C)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-separator[_ngcontent-%COMP%]{color:var(--ngx-json-separator, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-value, #000)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .children[_ngcontent-%COMP%]{margin-left:12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-string[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-string, #FF6B6B)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-number[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-number, #009688)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-boolean[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-boolean, #B938A4)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-date[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-date, #05668D)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-array, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-object, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-function[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-function, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-null, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-undefined, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-null-bg, red)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%]{white-space:nowrap}.ngx-json-viewer[_ngcontent-%COMP%] .expanded[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]:after{transform:rotate(90deg)}.ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]{cursor:pointer}']}),t})(),Sl=(()=>{class t{}return t.\u0275fac=function(A){return new(A||t)},t.\u0275mod=Ze({type:t}),t.\u0275inj=Ve({imports:[ug]}),t})();var ds=class t{static getBaseUrlWithoutPath(){let e=window.location.href;return new URL(e).origin+"/dev-ui/"}static getApiServerBaseUrl(){return window.runtimeConfig?.backendUrl||""}static getWSServerUrl(){let e=t.getApiServerBaseUrl();return!e||e==""?window.location.host:e.startsWith("http://")?e.slice(7):e.startsWith("https://")?e.slice(8):e}};var HB=new eA("AgentService");var U8=new eA("ArtifactService");var OB=new eA("DownloadService");var Rl=new eA("EvalService");var zB=new eA("EventService");var Tq="import_session",Hq="edit_function_args";var Oq="a2a_card",Gc=new eA("FeatureFlagService");var PB=new eA("GraphService");var J8=new eA("LocalFileService");var $2=new eA("SafeValuesService"),Y8=class{openBase64InNewTab(e,A){try{if(!e)return;let i=e;if(e.startsWith("data:")&&e.includes(";base64,")&&(i=i.substring(i.indexOf(";base64,")+8)),!A||!i)return;let n=atob(i),o=new Array(n.length);for(let c=0;cthis.onResizeHandleMouseDown(e)),document.documentElement.style.setProperty("--bottom-panel-height","310px"),this.renderer.setStyle(this.el.nativeElement,"height","var(--bottom-panel-height)")}onResizeHandleMouseDown(e){this.resizingEvent={isResizing:!0,startingCursorY:e.clientY,startingHeight:this.bottomPanelHeight},e.preventDefault()}onMouseMove(e){if(!this.resizingEvent.isResizing)return;let A=this.resizingEvent.startingCursorY-e.clientY,i=this.resizingEvent.startingHeight+A;this.bottomPanelHeight=i,this.renderer.addClass(document.body,"resizing")}onMouseUp(){this.resizingEvent.isResizing=!1,this.renderer.removeClass(document.body,"resizing")}onResize(){this.bottomMaxHeight=window.innerHeight/2,this.bottomPanelHeight=this.bottomPanelHeight}set bottomPanelHeight(e){let A=Math.min(Math.max(e,this.bottomMinHeight),this.bottomMaxHeight);document.body.style.setProperty("--bottom-panel-height",`${A}px`)}get bottomPanelHeight(){let e=getComputedStyle(document.body).getPropertyValue("--bottom-panel-height"),A=parseInt(e,10);return isNaN(A)?500:A}static \u0275fac=function(A){return new(A||t)(Ge(se),Ge(qi))};static \u0275dir=WA({type:t,selectors:[["","appResizableBottomPanel",""]],hostBindings:function(A,i){A&1&&mA("mousemove",function(o){return i.onMouseMove(o)},!1,Wd)("mouseup",function(){return i.onMouseUp()},!1,Wd)("resize",function(){return i.onResize()},!1,dp)}})};var O8=class t{constructor(e,A){this.el=e;this.renderer=A}sideDrawerMinWidth=310;sideDrawerMaxWidth=window.innerWidth/2;resizeHandle=null;resizingEvent={isResizing:!1,startingCursorX:0,startingWidth:0};ngAfterViewInit(){this.sideDrawerMaxWidth=window.innerWidth/2,this.resizeHandle=document.getElementsByClassName("resize-handler")[0],this.resizeHandle&&this.renderer.listen(this.resizeHandle,"mousedown",e=>this.onResizeHandleMouseDown(e)),document.documentElement.style.setProperty("--side-drawer-width","570px"),this.renderer.setStyle(this.el.nativeElement,"width","var(--side-drawer-width)")}onResizeHandleMouseDown(e){this.resizingEvent={isResizing:!0,startingCursorX:e.clientX,startingWidth:this.sideDrawerWidth},e.preventDefault()}onMouseMove(e){if(!this.resizingEvent.isResizing)return;let A=e.clientX-this.resizingEvent.startingCursorX,i=this.resizingEvent.startingWidth+A;this.sideDrawerWidth=i,this.renderer.addClass(document.body,"resizing")}onMouseUp(){this.resizingEvent.isResizing=!1,this.renderer.removeClass(document.body,"resizing")}onResize(){this.sideDrawerMaxWidth=window.innerWidth/2,this.sideDrawerWidth=this.sideDrawerWidth}set sideDrawerWidth(e){let A=Math.min(Math.max(e,this.sideDrawerMinWidth),this.sideDrawerMaxWidth);document.documentElement.style.setProperty("--side-drawer-width",`${A}px`)}get sideDrawerWidth(){let e=getComputedStyle(document.documentElement).getPropertyValue("--side-drawer-width"),A=parseFloat(e);return isNaN(A)?500:A}static \u0275fac=function(A){return new(A||t)(Ge(se),Ge(qi))};static \u0275dir=WA({type:t,selectors:[["","appResizableDrawer",""]],hostBindings:function(A,i){A&1&&mA("mousemove",function(o){return i.onMouseMove(o)},!1,Wd)("mouseup",function(){return i.onMouseUp()},!1,Wd)("resize",function(){return i.onResize()},!1,dp)}})};var fmA=["audioPlayer"],qB=class t{base64data=bs("");audioPlayerRef=qs("audioPlayer");audioSrc="";constructor(){}ngOnChanges(e){e.base64data&&this.base64data()&&this.setAudioSource(this.base64data())}setAudioSource(e){e.startsWith("data:")?this.audioSrc=e:this.audioSrc=`data:audio/mpeg;base64,${e}`,this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&this.audioPlayerRef().nativeElement.load()}play(){this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&this.audioPlayerRef().nativeElement.play()}pause(){this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&this.audioPlayerRef().nativeElement.pause()}stop(){this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&(this.audioPlayerRef().nativeElement.pause(),this.audioPlayerRef().nativeElement.currentTime=0)}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-audio-player"]],viewQuery:function(A,i){A&1&&ls(i.audioPlayerRef,fmA,5),A&2&&yc()},inputs:{base64data:[1,"base64data"]},features:[Xt],decls:3,vars:1,consts:[["audioPlayer",""],["controls","",3,"src"]],template:function(A,i){A&1&&(S(0,"div"),TA(1,"audio",1,0),N()),A&2&&(_(),yA("src",i.audioSrc,js))},styles:[".audio-player-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;padding:15px;background-color:var(--audio-player-container-background-color);border-radius:8px;box-shadow:0 2px 5px var(--audio-player-container-box-shadow-color);margin:20px auto;max-width:350px}audio[_ngcontent-%COMP%]{outline:none;border-radius:5px;width:350px}.custom-controls[_ngcontent-%COMP%]{margin-top:10px;display:flex;gap:10px}.custom-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:8px 15px;border:none;border-radius:5px;background-color:var(--audio-player-custom-controls-button-background-color);color:var(--audio-player-custom-controls-button-color);cursor:pointer;font-size:14px;transition:background-color .2s ease}.custom-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background-color:var(--audio-player-custom-controls-button-hover-background-color)}"]})};function mmA(t,e){if(t&1&&TA(0,"img",5),t&2){let A=Y(2);yA("src",A.displayContent,js)}}function pmA(t,e){t&1&&(S(0,"div",6),AA(1," No image data provided. "),N())}function DmA(t,e){if(t&1&&(S(0,"div",3),FA(1,mmA,1,1,"img",5)(2,pmA,2,0,"div",6),N()),t&2){let A=Y();_(),_A(A.displayContent?1:-1),_(),_A(A.displayContent?-1:2)}}function wmA(t,e){if(t&1&&TA(0,"div",4),t&2){let A=Y();yA("innerHTML",A.displayContent,b2)}}var t1=class t{constructor(e,A,i){this.dialogRef=e;this.data=A;this.sanitizer=i}displayContent=null;isSvgContent=!1;ngOnInit(){this.processImageData()}processImageData(){let e=this.data.imageData;if(!e){this.displayContent=null,this.isSvgContent=!1;return}if(e.trim().includes("0?1:-1),_(3),Bt(" ",o.getArtifactName(i)," "),_(5),Za("ngModel",o.selectedArtifacts[n]),_(),Bn(o.getSortedArtifactsFromId(i)),_(7),_A((A=o.selectedArtifacts[n].mediaType)===o.MediaType.IMAGE?17:A===o.MediaType.AUDIO?18:-1)}}var SmA="default_artifact_name",gC=(n=>(n.IMAGE="image",n.AUDIO="audio",n.TEXT="text",n.UNSPECIFIED="unspecified",n))(gC||{});function P8(t){let e=t.toLowerCase();for(let A of Object.values(gC))if(A!=="unspecified"&&e.startsWith(A+"/"))return A;return"unspecified"}function RmA(t){return t?t.startsWith("image/"):!1}function LmA(t){return t?t.startsWith("audio/"):!1}var z8=class t{artifacts=bs([]);selectedArtifacts=[];isArtifactAudio=LmA;isArtifactImage=RmA;MediaType=gC;downloadService=f(OB);dialog=f(Fc);safeValuesService=f($2);ngOnChanges(e){if(e.artifacts){this.selectedArtifacts=[];for(let A of this.getDistinctArtifactIds())this.selectedArtifacts.push(this.getSortedArtifactsFromId(A)[0])}}downloadArtifact(e){this.downloadService.downloadBase64Data(e.data,e.mimeType,e.id)}getArtifactName(e){return e??SmA}getDistinctArtifactIds(){return[...new Set(this.artifacts().map(e=>e.id))]}getSortedArtifactsFromId(e){return this.artifacts().filter(A=>A.id===e).sort((A,i)=>i.versionId-A.versionId)}onArtifactVersionChange(e,A){this.selectedArtifacts[A]=e.value}openViewImageDialog(e){if(!e||!e.startsWith("data:")||e.indexOf(";base64,")===-1)return;let A=this.dialog.open(t1,{maxWidth:"90vw",maxHeight:"90vh",data:{imageData:e}})}openArtifact(e,A){if(this.isArtifactImage(A)){this.openViewImageDialog(e);return}this.openBase64InNewTab(e,A)}openBase64InNewTab(e,A){}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-artifact-tab"]],inputs:{artifacts:[1,"artifacts"]},features:[Xt],decls:3,vars:0,consts:[[1,"artifact-container"],[1,"artifact-box"],[1,"white-separator"],[1,"artifact-metadata"],[1,"link-style-button",3,"click"],[1,"version-select-container"],[3,"ngModelChange","selectionChange","ngModel"],[3,"value"],["mat-flat-button","",1,"download-button",3,"click"],["alt","artifact.id",1,"generated-image",3,"click","src"],[3,"base64data"]],template:function(A,i){A&1&&(S(0,"div",0),dn(1,kmA,19,4,"div",1,zn),N()),A&2&&(_(),Bn(i.getDistinctArtifactIds()))},dependencies:[YB,Mr,Ss,tc,K2,dr,_c,qB],styles:[".artifact-container[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.artifact-box[_ngcontent-%COMP%]{padding:10px;max-width:100%;margin-left:26px;display:flex;flex-direction:column}.artifact-metadata[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:15px;flex-wrap:wrap;gap:5px}.download-button[_ngcontent-%COMP%]{background-color:var(--artifact-tab-download-button-background-color)!important;margin-left:35px;width:130px;height:28px;font-size:14px}.generated-image[_ngcontent-%COMP%]{max-width:60%;border-radius:8px;cursor:pointer}hr.white-separator[_ngcontent-%COMP%]{border:none;border-top:1px solid var(--artifact-tab-white-separator-border-top-color);margin-bottom:1.2em;margin-right:15px}.version-select-container[_ngcontent-%COMP%]{background-color:var(--artifact-tab-version-select-container-background-color);width:80px;margin-left:15px}.link-style-button[_ngcontent-%COMP%]{background:none;border:none;padding:0;font:inherit;color:var(--artifact-tab-link-style-button-color)!important;text-decoration:underline;cursor:pointer;outline:none}.link-style-button[_ngcontent-%COMP%]:hover{color:var(--artifact-tab-link-style-button-hover-color);text-decoration:underline}.link-style-button[_ngcontent-%COMP%]:focus{outline:1px dotted var(--artifact-tab-link-style-button-focus-outline-color)}.link-style-button[_ngcontent-%COMP%]:active{color:var(--artifact-tab-link-style-button-active-color)}.link-style-button[_ngcontent-%COMP%]:disabled{color:var(--artifact-tab-link-style-button-disabled-color);text-decoration:none;cursor:not-allowed}"]})};var xmA=["mat-menu-item",""],NmA=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],FmA=["mat-icon, [matMenuItemIcon]","*"];function _mA(t,e){t&1&&(ur(),S(0,"svg",2),TA(1,"polygon",3),N())}var GmA=["*"];function KmA(t,e){if(t&1){let A=me();S(0,"div",0),mA("click",function(){QA(A);let n=Y();return uA(n.closed.emit("click"))})("animationstart",function(n){QA(A);let o=Y();return uA(o._onAnimationStart(n.animationName))})("animationend",function(n){QA(A);let o=Y();return uA(o._onAnimationDone(n.animationName))})("animationcancel",function(n){QA(A);let o=Y();return uA(o._onAnimationDone(n.animationName))}),S(1,"div",1),Ue(2),N()()}if(t&2){let A=Y();Ro(A._classList),he("mat-menu-panel-animations-disabled",A._animationsDisabled)("mat-menu-panel-exit-animation",A._panelAnimationState==="void")("mat-menu-panel-animating",A._isAnimating),yA("id",A.panelId),Ke("aria-label",A.ariaLabel||null)("aria-labelledby",A.ariaLabelledby||null)("aria-describedby",A.ariaDescribedby||null)}}var uR=new eA("MAT_MENU_PANEL"),Xh=(()=>{class t{_elementRef=f(se);_document=f(at);_focusMonitor=f(Jr);_parentMenu=f(uR,{optional:!0});_changeDetectorRef=f(Et);role="menuitem";disabled=!1;disableRipple=!1;_hovered=new qA;_focused=new qA;_highlighted=!1;_triggersSubmenu=!1;constructor(){f(Pn).load(Yr),this._parentMenu?.addItem?.(this)}focus(A,i){this._focusMonitor&&A?this._focusMonitor.focusVia(this._getHostElement(),A,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(A){this.disabled&&(A.preventDefault(),A.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){let A=this._elementRef.nativeElement.cloneNode(!0),i=A.querySelectorAll("mat-icon, .material-icons");for(let n=0;n{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_injector=f(Zt);_keyManager;_xPosition;_yPosition;_firstItemFocusRef;_exitFallbackTimeout;_animationsDisabled;_allItems;_directDescendantItems=new qa;_classList={};_panelAnimationState="void";_animationDone=new qA;_isAnimating=!1;parentMenu;direction;overlayPanelClass;backdropClass;ariaLabel;ariaLabelledby;ariaDescribedby;get xPosition(){return this._xPosition}set xPosition(A){this._xPosition=A,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(A){this._yPosition=A,this.setPositionClasses()}templateRef;items;lazyContent;overlapTrigger;hasBackdrop;set panelClass(A){let i=this._previousPanelClass,n=sA({},this._classList);i&&i.length&&i.split(" ").forEach(o=>{n[o]=!1}),this._previousPanelClass=A,A&&A.length&&(A.split(" ").forEach(o=>{n[o]=!0}),this._elementRef.nativeElement.className=""),this._classList=n}_previousPanelClass;get classList(){return this.panelClass}set classList(A){this.panelClass=A}closed=new YA;close=this.closed;panelId=f(an).getId("mat-menu-panel-");constructor(){let A=f(JmA);this.overlayPanelClass=A.overlayPanelClass||"",this._xPosition=A.xPosition,this._yPosition=A.yPosition,this.backdropClass=A.backdropClass,this.overlapTrigger=A.overlapTrigger,this.hasBackdrop=A.hasBackdrop,this._animationsDisabled=f(_i,{optional:!0})==="NoopAnimations"}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new zI(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(On(this._directDescendantItems),$n(A=>Hn(...A.map(i=>i._focused)))).subscribe(A=>this._keyManager.updateActiveItem(A)),this._directDescendantItems.changes.subscribe(A=>{let i=this._keyManager;if(this._panelAnimationState==="enter"&&i.activeItem?._hasFocus()){let n=A.toArray(),o=Math.max(0,Math.min(n.length-1,i.activeItemIndex||0));n[o]&&!n[o].disabled?i.setActiveItem(o):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusRef?.destroy(),clearTimeout(this._exitFallbackTimeout)}_hovered(){return this._directDescendantItems.changes.pipe(On(this._directDescendantItems),$n(i=>Hn(...i.map(n=>n._hovered))))}addItem(A){}removeItem(A){}_handleKeydown(A){let i=A.keyCode,n=this._keyManager;switch(i){case 27:sr(A)||(A.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&this.direction==="ltr"&&this.closed.emit("keydown");break;case 39:this.parentMenu&&this.direction==="rtl"&&this.closed.emit("keydown");break;default:(i===38||i===40)&&n.setFocusOrigin("keyboard"),n.onKeydown(A);return}}focusFirstItem(A="program"){this._firstItemFocusRef?.destroy(),this._firstItemFocusRef=Ir(()=>{let i=this._resolvePanel();if(!i||!i.contains(document.activeElement)){let n=this._keyManager;n.setFocusOrigin(A).setFirstItemActive(),!n.activeItem&&i&&i.focus()}},{injector:this._injector})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(A){}setPositionClasses(A=this.xPosition,i=this.yPosition){this._classList=Fe(sA({},this._classList),{"mat-menu-before":A==="before","mat-menu-after":A==="after","mat-menu-above":i==="above","mat-menu-below":i==="below"}),this._changeDetectorRef.markForCheck()}_onAnimationDone(A){let i=A===j8;(i||A===QR)&&(i&&(clearTimeout(this._exitFallbackTimeout),this._exitFallbackTimeout=void 0),this._animationDone.next(i?"void":"enter"),this._isAnimating=!1)}_onAnimationStart(A){(A===QR||A===j8)&&(this._isAnimating=!0)}_setIsOpen(A){if(this._panelAnimationState=A?"enter":"void",A){if(this._keyManager.activeItemIndex===0){let i=this._resolvePanel();i&&(i.scrollTop=0)}}else this._animationsDisabled||(this._exitFallbackTimeout=setTimeout(()=>this._onAnimationDone(j8),200));this._animationsDisabled&&setTimeout(()=>{this._onAnimationDone(A?QR:j8)}),this._changeDetectorRef.markForCheck()}_updateDirectDescendants(){this._allItems.changes.pipe(On(this._allItems)).subscribe(A=>{this._directDescendantItems.reset(A.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}_resolvePanel(){let A=null;return this._directDescendantItems.length&&(A=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),A}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-menu"]],contentQueries:function(i,n,o){if(i&1&&(gi(o,UmA,5),gi(o,Xh,5),gi(o,Xh,4)),i&2){let r;de(r=Be())&&(n.lazyContent=r.first),de(r=Be())&&(n._allItems=r),de(r=Be())&&(n.items=r)}},viewQuery:function(i,n){if(i&1&&st(mn,5),i&2){let o;de(o=Be())&&(n.templateRef=o.first)}},hostVars:3,hostBindings:function(i,n){i&2&&Ke("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[2,"overlapTrigger","overlapTrigger",ge],hasBackdrop:[2,"hasBackdrop","hasBackdrop",A=>A==null?null:ge(A)],panelClass:[0,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],features:[ut([{provide:uR,useExisting:t}])],ngContentSelectors:GmA,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel",3,"click","animationstart","animationend","animationcancel","id"],[1,"mat-mdc-menu-content"]],template:function(i,n){i&1&&($t(),FA(0,KmA,3,12,"ng-template"))},styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;outline:0}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-menu-item-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-menu-item-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-menu-item-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-menu-item-label-text-weight, var(--mat-sys-label-large-weight))}@keyframes _mat-menu-enter{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:none}}@keyframes _mat-menu-exit{from{opacity:1}to{opacity:0}}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;box-sizing:border-box;outline:0;animation:_mat-menu-enter 120ms cubic-bezier(0, 0, 0.2, 1);border-radius:var(--mat-menu-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-menu-container-color, var(--mat-sys-surface-container));box-shadow:var(--mat-menu-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));will-change:transform,opacity}.mat-mdc-menu-panel.mat-menu-panel-exit-animation{animation:_mat-menu-exit 100ms 25ms linear forwards}.mat-mdc-menu-panel.mat-menu-panel-animations-disabled{animation:none}.mat-mdc-menu-panel.mat-menu-panel-animating{pointer-events:none}.mat-mdc-menu-panel.mat-menu-panel-animating:has(.mat-mdc-menu-content:empty){display:none}@media(forced-colors: active){.mat-mdc-menu-panel{outline:solid 1px}}.mat-mdc-menu-panel .mat-divider{color:var(--mat-menu-divider-color, var(--mat-sys-surface-variant));margin-bottom:var(--mat-menu-divider-bottom-spacing, 8px);margin-top:var(--mat-menu-divider-top-spacing, 8px)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px;padding-left:var(--mat-menu-item-leading-spacing, 12px);padding-right:var(--mat-menu-item-trailing-spacing, 12px);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-menu-item::-moz-focus-inner{border:0}[dir=rtl] .mat-mdc-menu-item{padding-left:var(--mat-menu-item-trailing-spacing, 12px);padding-right:var(--mat-menu-item-leading-spacing, 12px)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-trailing-spacing, 12px)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-trailing-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-leading-spacing, 12px)}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item:focus{outline:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing, 12px);height:var(--mat-menu-item-icon-size, 24px);width:var(--mat-menu-item-icon-size, 24px)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing, 12px)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}@media(forced-colors: active){.mat-mdc-menu-item{margin-top:1px}}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size, 24px);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing, 12px)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing, 12px);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1);transform-origin:center}@media(forced-colors: active){.mat-mdc-menu-submenu-icon{fill:CanvasText}}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,changeDetection:0})}return t})(),Pq=new eA("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.reposition()}});function TmA(t){return()=>t.scrollStrategies.reposition()}var HmA={provide:Pq,deps:[Br],useFactory:TmA},zq=Sc({passive:!0});var Wh=new WeakMap,jq=(()=>{class t{_overlay=f(Br);_element=f(se);_viewContainerRef=f(Sn);_menuItemInstance=f(Xh,{optional:!0,self:!0});_dir=f(po,{optional:!0});_focusMonitor=f(Jr);_ngZone=f(ye);_scrollStrategy=f(Pq);_changeDetectorRef=f(Et);_portal;_overlayRef=null;_menuOpen=!1;_closingActionsSubscription=Kt.EMPTY;_hoverSubscription=Kt.EMPTY;_menuCloseSubscription=Kt.EMPTY;_pendingRemoval;_parentMaterialMenu;_parentInnerPadding;_handleTouchStart=A=>{ch(A)||(this._openedBy="touch")};_openedBy=void 0;get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(A){this.menu=A}get menu(){return this._menu}set menu(A){A!==this._menu&&(this._menu=A,this._menuCloseSubscription.unsubscribe(),A&&(this._parentMaterialMenu,this._menuCloseSubscription=A.close.subscribe(i=>{this._destroyMenu(i),(i==="click"||i==="tab")&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}_menu;menuData;restoreFocus=!0;menuOpened=new YA;onMenuOpen=this.menuOpened;menuClosed=new YA;onMenuClose=this.menuClosed;constructor(){let A=f(uR,{optional:!0});this._parentMaterialMenu=A instanceof VB?A:void 0,this._element.nativeElement.addEventListener("touchstart",this._handleTouchStart,zq)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this.menu&&this._ownsMenu(this.menu)&&Wh.delete(this.menu),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,zq),this._pendingRemoval?.unsubscribe(),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe(),this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null)}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){let A=this.menu;if(this._menuOpen||!A)return;this._pendingRemoval?.unsubscribe();let i=Wh.get(A);Wh.set(A,this),i&&i!==this&&i.closeMenu();let n=this._createOverlay(A),o=n.getConfig(),r=o.positionStrategy;this._setPosition(A,r),o.hasBackdrop=A.hasBackdrop==null?!this.triggersSubmenu():A.hasBackdrop,n.hasAttached()||(n.attach(this._getPortal(A)),A.lazyContent?.attach(this.menuData)),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),A.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,A.direction=this.dir,A.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0),A instanceof VB&&(A._setIsOpen(!0),A._directDescendantItems.changes.pipe(kt(A.close)).subscribe(()=>{r.withLockedPosition(!1).reapplyLastPosition(),r.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(A,i){this._focusMonitor&&A?this._focusMonitor.focusVia(this._element,A,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(A){let i=this._overlayRef,n=this._menu;!i||!this.menuOpen||(this._closingActionsSubscription.unsubscribe(),this._pendingRemoval?.unsubscribe(),n instanceof VB&&this._ownsMenu(n)?(this._pendingRemoval=n._animationDone.pipe(Xn(1)).subscribe(()=>{i.detach(),n.lazyContent?.detach()}),n._setIsOpen(!1)):(i.detach(),n?.lazyContent?.detach()),n&&this._ownsMenu(n)&&Wh.delete(n),this.restoreFocus&&(A==="keydown"||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,this._setIsMenuOpen(!1))}_setIsMenuOpen(A){A!==this._menuOpen&&(this._menuOpen=A,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(A),this._changeDetectorRef.markForCheck())}_createOverlay(A){if(!this._overlayRef){let i=this._getOverlayConfig(A);this._subscribeToPositions(A,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe(n=>{this.menu instanceof VB&&this.menu._handleKeydown(n)})}return this._overlayRef}_getOverlayConfig(A){return new Ml({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:A.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:A.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir||"ltr"})}_subscribeToPositions(A,i){A.setPositionClasses&&i.positionChanges.subscribe(n=>{this._ngZone.run(()=>{let o=n.connectionPair.overlayX==="start"?"after":"before",r=n.connectionPair.overlayY==="top"?"below":"above";A.setPositionClasses(o,r)})})}_setPosition(A,i){let[n,o]=A.xPosition==="before"?["end","start"]:["start","end"],[r,s]=A.yPosition==="above"?["bottom","top"]:["top","bottom"],[a,c]=[r,s],[g,I]=[n,o],C=0;if(this.triggersSubmenu()){if(I=n=A.xPosition==="before"?"start":"end",o=g=n==="end"?"start":"end",this._parentMaterialMenu){if(this._parentInnerPadding==null){let d=this._parentMaterialMenu.items.first;this._parentInnerPadding=d?d._getHostElement().offsetTop:0}C=r==="bottom"?this._parentInnerPadding:-this._parentInnerPadding}}else A.overlapTrigger||(a=r==="top"?"bottom":"top",c=s==="top"?"bottom":"top");i.withPositions([{originX:n,originY:a,overlayX:g,overlayY:r,offsetY:C},{originX:o,originY:a,overlayX:I,overlayY:r,offsetY:C},{originX:n,originY:c,overlayX:g,overlayY:s,offsetY:-C},{originX:o,originY:c,overlayX:I,overlayY:s,offsetY:-C}])}_menuClosingActions(){let A=this._overlayRef.backdropClick(),i=this._overlayRef.detachments(),n=this._parentMaterialMenu?this._parentMaterialMenu.closed:Ce(),o=this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(Nt(r=>this._menuOpen&&r!==this._menuItemInstance)):Ce();return Hn(A,n,o,i)}_handleMousedown(A){ah(A)||(this._openedBy=A.button===0?"mouse":void 0,this.triggersSubmenu()&&A.preventDefault())}_handleKeydown(A){let i=A.keyCode;(i===13||i===32)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(i===39&&this.dir==="ltr"||i===37&&this.dir==="rtl")&&(this._openedBy="keyboard",this.openMenu())}_handleClick(A){this.triggersSubmenu()?(A.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){this.triggersSubmenu()&&this._parentMaterialMenu&&(this._hoverSubscription=this._parentMaterialMenu._hovered().subscribe(A=>{A===this._menuItemInstance&&!A.disabled&&(this._openedBy="mouse",this.openMenu())}))}_getPortal(A){return(!this._portal||this._portal.templateRef!==A.templateRef)&&(this._portal=new Rs(A.templateRef,this._viewContainerRef)),this._portal}_ownsMenu(A){return Wh.get(A)===this}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(i,n){i&1&&mA("click",function(r){return n._handleClick(r)})("mousedown",function(r){return n._handleMousedown(r)})("keydown",function(r){return n._handleKeydown(r)}),i&2&&Ke("aria-haspopup",n.menu?"menu":null)("aria-expanded",n.menuOpen)("aria-controls",n.menuOpen?n.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[0,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[0,"matMenuTriggerFor","menu"],menuData:[0,"matMenuTriggerData","menuData"],restoreFocus:[0,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"]})}return t})(),qq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[HmA],imports:[WI,pn,Z2,j2,pn]})}return t})(),Vq={transformMenu:nc("transformMenu",[$s("void",Do({opacity:0,transform:"scale(0.8)"})),$r("void => enter",Is("120ms cubic-bezier(0, 0, 0.2, 1)",Do({opacity:1,transform:"scale(1)"}))),$r("* => void",Is("100ms 25ms linear",Do({opacity:0})))]),fadeInItems:nc("fadeInItems",[$s("showing",Do({opacity:1})),$r("void => *",[Do({opacity:0}),Is("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},kCe=Vq.fadeInItems,SCe=Vq.transformMenu;function zmA(t,e){t&1&&TA(0,"div",2)}var PmA=new eA("MAT_PROGRESS_BAR_DEFAULT_OPTIONS");var Wq=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);_changeDetectorRef=f(Et);_renderer=f(qi);_cleanupTransitionEnd;_animationMode=f(_i,{optional:!0});constructor(){let A=f(PmA,{optional:!0});this._isNoopAnimation=this._animationMode==="NoopAnimations",A&&(A.color&&(this.color=this._defaultColor=A.color),this.mode=A.mode||this.mode)}_isNoopAnimation=!1;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;_defaultColor="primary";get value(){return this._value}set value(A){this._value=Zq(A||0),this._changeDetectorRef.markForCheck()}_value=0;get bufferValue(){return this._bufferValue||0}set bufferValue(A){this._bufferValue=Zq(A||0),this._changeDetectorRef.markForCheck()}_bufferValue=0;animationEnd=new YA;get mode(){return this._mode}set mode(A){this._mode=A,this._changeDetectorRef.markForCheck()}_mode="determinate";ngAfterViewInit(){this._ngZone.runOutsideAngular(()=>{this._cleanupTransitionEnd=this._renderer.listen(this._elementRef.nativeElement,"transitionend",this._transitionendHandler)})}ngOnDestroy(){this._cleanupTransitionEnd?.()}_getPrimaryBarTransform(){return`scaleX(${this._isIndeterminate()?1:this.value/100})`}_getBufferBarFlexBasis(){return`${this.mode==="buffer"?this.bufferValue:100}%`}_isIndeterminate(){return this.mode==="indeterminate"||this.mode==="query"}_transitionendHandler=A=>{this.animationEnd.observers.length===0||!A.target||!A.target.classList.contains("mdc-linear-progress__primary-bar")||(this.mode==="determinate"||this.mode==="buffer")&&this._ngZone.run(()=>this.animationEnd.next({value:this.value}))};static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-progress-bar"]],hostAttrs:["role","progressbar","aria-valuemin","0","aria-valuemax","100","tabindex","-1",1,"mat-mdc-progress-bar","mdc-linear-progress"],hostVars:10,hostBindings:function(i,n){i&2&&(Ke("aria-valuenow",n._isIndeterminate()?null:n.value)("mode",n.mode),Ro("mat-"+n.color),he("_mat-animation-noopable",n._isNoopAnimation)("mdc-linear-progress--animation-ready",!n._isNoopAnimation)("mdc-linear-progress--indeterminate",n._isIndeterminate()))},inputs:{color:"color",value:[2,"value","value",en],bufferValue:[2,"bufferValue","bufferValue",en],mode:"mode"},outputs:{animationEnd:"animationEnd"},exportAs:["matProgressBar"],decls:7,vars:5,consts:[["aria-hidden","true",1,"mdc-linear-progress__buffer"],[1,"mdc-linear-progress__buffer-bar"],[1,"mdc-linear-progress__buffer-dots"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__primary-bar"],[1,"mdc-linear-progress__bar-inner"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__secondary-bar"]],template:function(i,n){i&1&&(S(0,"div",0),TA(1,"div",1),FA(2,zmA,1,0,"div",2),N(),S(3,"div",3),TA(4,"span",4),N(),S(5,"div",5),TA(6,"span",4),N()),i&2&&(_(),mo("flex-basis",n._getBufferBarFlexBasis()),_(),_A(n.mode==="buffer"?2:-1),_(),mo("transform",n._getPrimaryBarTransform()))},styles:[`.mat-mdc-progress-bar{display:block;text-align:start}.mat-mdc-progress-bar[mode=query]{transform:scaleX(-1)}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-dots,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__secondary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__bar-inner.mdc-linear-progress__bar-inner{animation:none}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-bar{transition:transform 1ms}.mdc-linear-progress{position:relative;width:100%;transform:translateZ(0);outline:1px solid rgba(0,0,0,0);overflow-x:hidden;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);height:max(var(--mdc-linear-progress-track-height, 4px),var(--mdc-linear-progress-active-indicator-height, 4px))}@media(forced-colors: active){.mdc-linear-progress{outline-color:CanvasText}}.mdc-linear-progress__bar{position:absolute;top:0;bottom:0;margin:auto 0;width:100%;animation:none;transform-origin:top left;transition:transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);height:var(--mdc-linear-progress-active-indicator-height, 4px)}.mdc-linear-progress--indeterminate .mdc-linear-progress__bar{transition:none}[dir=rtl] .mdc-linear-progress__bar{right:0;transform-origin:center right}.mdc-linear-progress__bar-inner{display:inline-block;position:absolute;width:100%;animation:none;border-top-style:solid;border-color:var(--mdc-linear-progress-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-linear-progress-active-indicator-height, 4px)}.mdc-linear-progress__buffer{display:flex;position:absolute;top:0;bottom:0;margin:auto 0;width:100%;overflow:hidden;height:var(--mdc-linear-progress-track-height, 4px);border-radius:var(--mdc-linear-progress-track-shape, var(--mat-sys-corner-none))}.mdc-linear-progress__buffer-dots{-webkit-mask-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E");background-repeat:repeat-x;flex:auto;transform:rotate(180deg);animation:mdc-linear-progress-buffering 250ms infinite linear;background-color:var(--mdc-linear-progress-track-color, var(--mat-sys-surface-variant))}@media(forced-colors: active){.mdc-linear-progress__buffer-dots{background-color:ButtonBorder}}[dir=rtl] .mdc-linear-progress__buffer-dots{animation:mdc-linear-progress-buffering-reverse 250ms infinite linear;transform:rotate(0)}.mdc-linear-progress__buffer-bar{flex:0 1 100%;transition:flex-basis 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);background-color:var(--mdc-linear-progress-track-color, var(--mat-sys-surface-variant))}.mdc-linear-progress__primary-bar{transform:scaleX(0)}.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{left:-145.166611%}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation:mdc-linear-progress-primary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-primary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation-name:mdc-linear-progress-primary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{right:-145.166611%;left:auto}.mdc-linear-progress__secondary-bar{display:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{left:-54.888891%;display:block}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation:mdc-linear-progress-secondary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-secondary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation-name:mdc-linear-progress-secondary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{right:-54.888891%;left:auto}@keyframes mdc-linear-progress-buffering{from{transform:rotate(180deg) translateX(calc(var(--mdc-linear-progress-track-height, 4px) * -2.5))}}@keyframes mdc-linear-progress-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(83.67142%)}100%{transform:translateX(200.611057%)}}@keyframes mdc-linear-progress-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(84.386165%)}100%{transform:translateX(160.277782%)}}@keyframes mdc-linear-progress-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-primary-indeterminate-translate-reverse{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(-83.67142%)}100%{transform:translateX(-200.611057%)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate-reverse{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(-37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(-84.386165%)}100%{transform:translateX(-160.277782%)}}@keyframes mdc-linear-progress-buffering-reverse{from{transform:translateX(-10px)}}`],encapsulation:2,changeDetection:0})}return t})();function Zq(t,e=0,A=100){return Math.max(e,Math.min(A,t))}var Xq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn]})}return t})();var q8=new eA("MARKDOWN_COMPONENT");var qmA={cancelEditingTooltip:"Cancel editing",saveEvalMessageTooltip:"Save eval case message",thoughtChipLabel:"Thought",outcomeLabel:"Outcome",outputLabel:"Output",actualToolUsesLabel:"Actual tool uses:",expectedToolUsesLabel:"Expected tool uses:",actualResponseLabel:"Actual response:",expectedResponseLabel:"Expected response:",matchScoreLabel:"Match score",thresholdLabel:"Threshold",evalPassLabel:"Pass",evalFailLabel:"Fail",editEvalMessageTooltip:"Edit eval case message",deleteEvalMessageTooltip:"Delete eval case message",editFunctionArgsTooltip:"Edit function arguments",typeMessagePlaceholder:"Type a Message...",uploadFileTooltip:"Upload local file",moreOptionsTooltip:"More options",updateStateMenuLabel:"Update state",turnOffMicTooltip:"Turn off microphone",useMicTooltip:"Use microphone",turnOffCamTooltip:"Turn off camera",useCamTooltip:"Use camera",updatedSessionStateChipLabel:"Updated session state"},$q=new eA("Chat Panel Messages",{factory:()=>qmA});var VmA=["videoContainer"],ZmA=["autoScroll"],WmA=["messageTextarea"],XmA=(t,e)=>({"user-message":t,"bot-message":e}),$mA=(t,e)=>({"eval-pass":t,"eval-fail":e}),ApA=(t,e)=>({"eval-fail":t,"message-card--highlighted":e}),epA=(t,e)=>({text:t,thought:e}),eV=t=>({"function-event-button-highlight":t}),hR=t=>({hidden:t});function tpA(t,e){if(t&1){let A=me();S(0,"button",13),mA("click",function(){QA(A);let n=Y().$index,o=Y(2);return uA(o.clickEvent.emit(n))}),S(1,"mat-icon",14),AA(2,"robot_2"),N()()}if(t&2){let A=Y().$index,i=Y(2);Ro(i.customIconColorClass(A)),yA("matTooltip",i.getAgentNameFromEvent(A))}}function ipA(t,e){t&1&&TA(0,"mat-progress-bar",15)}function npA(t,e){if(t&1&&TA(0,"img",20),t&2){let A=Y().$implicit;yA("src",A.url,js)}}function opA(t,e){if(t&1&&(S(0,"mat-icon"),AA(1,"insert_drive_file"),N(),S(2,"a",21),AA(3),N()),t&2){let A=Y().$implicit;_(2),yA("href",A.url,js),_(),tt(A.file.name)}}function rpA(t,e){if(t&1&&(S(0,"div",19),FA(1,npA,1,1,"img",20)(2,opA,4,2),N()),t&2){let A=e.$implicit;_(),_A(A.file.type.startsWith("image/")?1:-1),_(),_A(A.file.type.startsWith("image/")?-1:2)}}function spA(t,e){if(t&1&&(S(0,"div",16),dn(1,rpA,3,2,"div",19,zn),N()),t&2){let A=Y(2).$implicit;_(),Bn(A.attachments)}}function apA(t,e){if(t&1&&(S(0,"div",17),AA(1),N()),t&2){let A=Y(4);_(),tt(A.i18n.thoughtChipLabel)}}function cpA(t,e){if(t&1){let A=me();S(0,"div",22)(1,"textarea",24,2),mA("ngModelChange",function(n){QA(A);let o=Y(5);return uA(o.userEditEvalCaseMessageChange.emit(n))})("keydown",function(n){QA(A);let o=Y(3).$implicit,r=Y(2);return uA(r.handleKeydown.emit({event:n,message:o}))}),N(),S(3,"div",25)(4,"span",26),mA("click",function(){QA(A);let n=Y(3).$implicit,o=Y(2);return uA(o.cancelEditMessage.emit(n))}),AA(5," close "),N(),S(6,"span",27),mA("click",function(){QA(A);let n=Y(3).$implicit,o=Y(2);return uA(o.saveEditMessage.emit(n))}),AA(7," check "),N()()()}if(t&2){let A=Y(5);_(),yA("ngModel",A.userEditEvalCaseMessage),_(3),yA("matTooltip",A.i18n.cancelEditingTooltip),_(2),yA("matTooltip",A.i18n.saveEvalMessageTooltip)}}function gpA(t,e){if(t&1&&rr(0,23),t&2){let A=Y(3).$implicit,i=Y(2);yA("ngComponentOutlet",i.markdownComponent)("ngComponentOutletInputs",Bg(2,epA,A.text,A.thought))}}function lpA(t,e){if(t&1&&FA(0,cpA,8,3,"div",22)(1,gpA,1,5,"ng-container",23),t&2){let A=Y(2).$implicit;_A(A.isEditing?0:1)}}function IpA(t,e){if(t&1&&(S(0,"div"),TA(1,"div",28),N()),t&2){let A=Y(2).$implicit,i=Y(2);_(),yA("innerHTML",i.renderGooglerSearch(A.renderedContent),b2)}}function CpA(t,e){if(t&1&&(S(0,"code"),AA(1),N()),t&2){let A=Y(2).$implicit;_(),Bt(" ",A.executableCode.code," ")}}function dpA(t,e){if(t&1&&(S(0,"div")(1,"div"),AA(2),N(),S(3,"div"),AA(4),N()()),t&2){let A=Y(2).$implicit,i=Y(2);_(2),x2("",i.i18n.outcomeLabel,": ",A.codeExecutionResult.outcome,""),_(2),x2("",i.i18n.outputLabel,": ",A.codeExecutionResult.output,"")}}function BpA(t,e){if(t&1){let A=me();S(0,"div",29)(1,"img",30),mA("click",function(){QA(A);let n=Y(4).$implicit,o=Y(2);return uA(o.openViewImageDialog.emit(n.inlineData.data))}),N()()}if(t&2){let A=Y(4).$implicit;_(),yA("src",A.inlineData.data,js)}}function EpA(t,e){if(t&1&&(S(0,"div"),TA(1,"app-audio-player",31),N()),t&2){let A=Y(4).$implicit;_(),yA("base64data",A.inlineData.data)}}function QpA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",32)(2,"mat-icon"),AA(3,"description"),N(),S(4,"button",33),mA("click",function(){QA(A);let n=Y(4).$implicit,o=Y(2);return uA(o.openBase64InNewTab.emit({data:n.inlineData.data,mimeType:n.inlineData.mimeType}))}),AA(5),N()()()}if(t&2){let A=Y(4).$implicit;_(5),Bt(" ",A.inlineData.name," ")}}function upA(t,e){if(t&1){let A=me();S(0,"div")(1,"button",33),mA("click",function(){QA(A);let n=Y(4).$implicit,o=Y(2);return uA(o.openBase64InNewTab.emit({data:n.inlineData.data,mimeType:n.inlineData.mimeType}))}),AA(2),N()()}if(t&2){let A=Y(4).$implicit;_(2),Bt(" ",A.inlineData.name," ")}}function hpA(t,e){if(t&1&&(S(0,"div")(1,"div"),FA(2,BpA,2,1,"div",29)(3,EpA,2,1,"div")(4,QpA,6,1,"div")(5,upA,3,1,"div"),N()()),t&2){let A,i=Y(3).$implicit,n=Y(2);_(2),_A((A=i.inlineData.mediaType)===n.MediaType.IMAGE?2:A===n.MediaType.AUDIO?3:A===n.MediaType.TEXT?4:5)}}function fpA(t,e){if(t&1){let A=me();S(0,"div")(1,"img",34),mA("click",function(){QA(A);let n=Y(4).$implicit,o=Y(2);return uA(o.openViewImageDialog.emit(n.inlineData.data))}),N()()}if(t&2){let A=Y(4).$implicit;_(),yA("src",A.inlineData.data,js)}}function mpA(t,e){if(t&1&&(S(0,"div",19)(1,"mat-icon"),AA(2,"insert_drive_file"),N(),S(3,"a",21),AA(4),N()()),t&2){let A=Y(4).$implicit;_(3),yA("href",A.inlineData.data,js),_(),tt(A.inlineData.displayName)}}function ppA(t,e){if(t&1&&(S(0,"div"),FA(1,fpA,2,1,"div")(2,mpA,5,2,"div",19),N()),t&2){let A=Y(3).$implicit;_(),_A(A.inlineData.mimeType.startsWith("image/")?1:2)}}function DpA(t,e){if(t&1&&FA(0,hpA,6,1,"div")(1,ppA,3,1,"div"),t&2){let A=Y(2).$implicit;_A(A.role==="bot"?0:1)}}function wpA(t,e){if(t&1&&(S(0,"div",37)(1,"div",38),AA(2),N(),TA(3,"ngx-json-viewer",39),N(),S(4,"div",40)(5,"div",41),AA(6),N(),TA(7,"ngx-json-viewer",39),N()),t&2){let A=Y(3).$implicit,i=Y(2);_(2),tt(i.i18n.actualToolUsesLabel),_(),yA("json",A.actualInvocationToolUses),_(3),tt(i.i18n.expectedToolUsesLabel),_(),yA("json",A.expectedInvocationToolUses)}}function ypA(t,e){if(t&1&&(S(0,"div",37)(1,"div",38),AA(2),N(),S(3,"div"),AA(4),N()(),S(5,"div",40)(6,"div",41),AA(7),N(),S(8,"div"),AA(9),N()()),t&2){let A=Y(3).$implicit,i=Y(2);_(2),tt(i.i18n.actualResponseLabel),_(2),tt(A.actualFinalResponse),_(3),tt(i.i18n.expectedResponseLabel),_(2),tt(A.expectedFinalResponse)}}function vpA(t,e){if(t&1&&(S(0,"div",36)(1,"span",42),AA(2),N(),S(3,"span",43),AA(4),N()()),t&2){let A=Y(3).$implicit,i=Y(2);_(2),x2("",i.i18n.matchScoreLabel,": ",A.evalScore,""),_(2),x2("",i.i18n.thresholdLabel,": ",A.evalThreshold,"")}}function MpA(t,e){if(t&1&&(S(0,"div",18)(1,"div",35),FA(2,wpA,8,4)(3,ypA,10,4),N(),FA(4,vpA,5,4,"div",36),N()),t&2){let A=Y(2).$implicit;_(2),_A(A.actualInvocationToolUses?2:A.actualFinalResponse?3:-1),_(2),_A(A.evalScore!==void 0&&A.evalThreshold!==void 0?4:-1)}}function bpA(t,e){if(t&1&&(S(0,"mat-card",9),FA(1,ipA,1,0,"mat-progress-bar",15)(2,spA,3,0,"div",16),S(3,"div"),FA(4,apA,2,1,"div",17),S(5,"div"),FA(6,lpA,2,1),N(),FA(7,IpA,2,1,"div"),N(),FA(8,CpA,2,1,"code")(9,dpA,5,4,"div")(10,DpA,2,1)(11,MpA,5,2,"div",18),N()),t&2){let A=Y(),i=A.$implicit,n=A.$index,o=Y(2);yA("ngClass",Bg(10,ApA,i.evalStatus===2,o.shouldMessageHighlighted(n))),_(),_A(i.isLoading?1:-1),_(),_A(i.attachments?2:-1),_(2),_A(i.thought?4:-1),_(2),_A(i.text?6:-1),_(),_A(i.renderedContent?7:-1),_(),_A(i.executableCode?8:-1),_(),_A(i.codeExecutionResult?9:-1),_(),_A(i.inlineData?10:-1),_(),_A(i.failedMetric&&i.evalStatus===2?11:-1)}}function kpA(t,e){if(t&1){let A=me();S(0,"button",44),mA("click",function(){QA(A);let n=Y().$index,o=Y(2);return uA(o.clickEvent.emit(n))}),S(1,"mat-icon"),AA(2,"bolt"),N(),AA(3),N()}if(t&2){let A=Y(),i=A.$implicit,n=A.$index,o=Y(2);yA("ngClass",vc(2,eV,o.shouldMessageHighlighted(n))),_(3),Bt(" ",i.functionCall.name," ")}}function SpA(t,e){if(t&1){let A=me();S(0,"button",44),mA("click",function(){QA(A);let n=Y().$index,o=Y(2);return uA(o.clickEvent.emit(n))}),S(1,"mat-icon"),AA(2,"check"),N(),AA(3),N()}if(t&2){let A=Y(),i=A.$implicit,n=A.$index,o=Y(2);yA("ngClass",vc(2,eV,o.shouldMessageHighlighted(n))),_(3),Bt(" ",i.functionResponse.name," ")}}function RpA(t,e){if(t&1){let A=me();S(0,"div")(1,"span",45),mA("click",function(){QA(A);let n=Y(2).$implicit,o=Y(2);return uA(o.editEvalCaseMessage.emit(n))}),AA(2," edit "),N(),S(3,"span",45),mA("click",function(){QA(A);let n=Y(2),o=n.$implicit,r=n.$index,s=Y(2);return uA(s.deleteEvalCaseMessage.emit({message:o,index:r}))}),AA(4," delete "),N()()}if(t&2){let A=Y(4);_(),yA("ngClass",vc(4,hR,A.isEvalCaseEditing))("matTooltip",A.i18n.editEvalMessageTooltip),_(2),yA("ngClass",vc(6,hR,A.isEvalCaseEditing))("matTooltip",A.i18n.deleteEvalMessageTooltip)}}function LpA(t,e){if(t&1){let A=me();S(0,"div")(1,"span",45),mA("click",function(){QA(A);let n=Y(2).$implicit,o=Y(2);return uA(o.editFunctionArgs.emit(n))}),AA(2," edit "),N()()}if(t&2){let A=Y(4);_(),yA("ngClass",vc(2,hR,A.isEvalCaseEditing))("matTooltip",A.i18n.editFunctionArgsTooltip)}}function xpA(t,e){if(t&1&&FA(0,RpA,5,8,"div")(1,LpA,3,4,"div"),t&2){let A=Y().$implicit,i=Y(2);_A(A.text?0:i.isEditFunctionArgsEnabled&&A.functionCall?1:-1)}}function NpA(t,e){t&1&&(S(0,"button",12)(1,"mat-icon"),AA(2,"person"),N()())}function FpA(t,e){if(t&1&&(S(0,"div",7),FA(1,tpA,3,3,"button",8)(2,bpA,12,13,"mat-card",9)(3,kpA,4,4,"button",10)(4,SpA,4,4,"button",10),S(5,"div",7)(6,"span",11),AA(7),N(),S(8,"span"),AA(9),N()(),FA(10,xpA,2,1)(11,NpA,3,0,"button",12),N()),t&2){let A=e.$implicit,i=Y(2);yA("ngClass",Bg(10,XmA,A.role==="user",A.role==="bot")),_(),_A(A.role==="bot"?1:-1),_(),_A(!A.functionCall&&!A.functionResponse?2:-1),_(),_A(A.functionCall?3:-1),_(),_A(A.functionResponse?4:-1),_(),yA("ngClass",Bg(13,$mA,A.evalStatus===1,A.evalStatus===2)),_(2),tt(A.evalStatus===1?"check":A.evalStatus===2?"close":""),_(2),tt(A.evalStatus===1?i.i18n.evalPassLabel:A.evalStatus===2?i.i18n.evalFailLabel:""),_(),_A(i.evalCase&&A.role==="bot"&&i.isEvalEditMode?10:-1),_(),_A(A.role==="user"?11:-1)}}function _pA(t,e){if(t&1&&(S(0,"div",5,0),TA(2,"div",null,1),dn(4,FpA,12,16,"div",7,zn),N()),t&2){let A=Y();_(4),Bn(A.messages)}}function GpA(t,e){if(t&1){let A=me();S(0,"div",57),TA(1,"img",58),S(2,"button",59),mA("click",function(){QA(A);let n=Y().$index,o=Y(3);return uA(o.removeFile.emit(n))}),S(3,"mat-icon",60),AA(4,"close"),N()()()}if(t&2){let A=Y().$implicit;_(),yA("src",A.url,js)}}function KpA(t,e){if(t&1){let A=me();S(0,"div",56)(1,"button",59),mA("click",function(){QA(A);let n=Y().$index,o=Y(3);return uA(o.removeFile.emit(n))}),S(2,"mat-icon",60),AA(3,"close"),N()(),S(4,"div",61)(5,"mat-icon"),AA(6,"insert_drive_file"),N(),S(7,"span"),AA(8),N()()()}if(t&2){let A=Y().$implicit;_(8),tt(A.file.name)}}function UpA(t,e){if(t&1&&(S(0,"div"),FA(1,GpA,5,1,"div",57)(2,KpA,9,1,"div",56),N()),t&2){let A=e.$implicit;_(),_A(A.file.type.startsWith("image/")?1:A.file.type.startsWith("image/")?-1:2)}}function JpA(t,e){if(t&1){let A=me();S(0,"div",56)(1,"button",59),mA("click",function(){QA(A);let n=Y(3);return uA(n.removeStateUpdate.emit())}),S(2,"mat-icon",60),AA(3,"close"),N()(),S(4,"div",61)(5,"span"),AA(6),N()()()}if(t&2){let A=Y(3);_(6),tt(A.i18n.updatedSessionStateChipLabel)}}function YpA(t,e){if(t&1&&(S(0,"div",48),dn(1,UpA,3,1,"div",null,zn),FA(3,JpA,7,1,"div",56),N()),t&2){let A=Y(2);_(),Bn(A.selectedFiles),_(2),_A(A.updatedSessionState?3:-1)}}function TpA(t,e){if(t&1){let A=me();S(0,"div",6)(1,"input",46,3),mA("change",function(n){QA(A);let o=Y();return uA(o.fileSelect.emit(n))}),N(),S(3,"mat-form-field",47),FA(4,YpA,4,1,"div",48),S(5,"textarea",49),mA("ngModelChange",function(n){QA(A);let o=Y();return uA(o.userInputChange.emit(n))})("keydown.enter",function(n){QA(A);let o=Y();return uA(o.sendMessage.emit(n))}),N(),S(6,"div",50)(7,"div")(8,"button",51),eo(9,"async"),mA("click",function(){QA(A);let n=Cr(2);return uA(n.click())}),S(10,"mat-icon"),AA(11,"attach_file"),N()(),S(12,"button",52),eo(13,"async"),S(14,"mat-icon"),AA(15,"more_vert"),N()(),S(16,"mat-menu",null,4)(18,"span",53),mA("click",function(){QA(A);let n=Y();return uA(n.updateState.emit())}),AA(19),N()()(),S(20,"div")(21,"button",54),eo(22,"async"),mA("click",function(){QA(A);let n=Y();return uA(n.toggleAudioRecording.emit())}),S(23,"mat-icon"),AA(24,"mic"),N()(),S(25,"button",55),eo(26,"async"),mA("click",function(){QA(A);let n=Y();return uA(n.toggleVideoRecording.emit())}),S(27,"mat-icon"),AA(28,"videocam"),N()()()()()()}if(t&2){let A=Cr(17),i=Y();_(4),_A(i.selectedFiles.length&&i.appName!=""||i.updatedSessionState?4:-1),_(),yA("ngModel",i.userInput)("placeholder",i.i18n.typeMessagePlaceholder),_(3),yA("matTooltip",i.i18n.uploadFileTooltip)("disabled",!Yo(9,17,i.isMessageFileUploadEnabledObs)),_(4),yA("matMenuTriggerFor",A)("matTooltip",i.i18n.moreOptionsTooltip)("disabled",!Yo(13,19,i.isManualStateUpdateEnabledObs)),_(7),Bt(" ",i.i18n.updateStateMenuLabel," "),_(2),he("recording",i.isAudioRecording),yA("matTooltip",i.isAudioRecording?i.i18n.turnOffMicTooltip:i.i18n.useMicTooltip)("disabled",!Yo(22,21,i.isBidiStreamingEnabledObs)),_(4),he("recording",i.isVideoRecording),yA("matTooltip",i.isVideoRecording?i.i18n.turnOffCamTooltip:i.i18n.useCamTooltip)("disabled",!Yo(26,23,i.isBidiStreamingEnabledObs))}}var AV="root_agent",ZB=class t{constructor(e){this.sanitizer=e}appName="";messages=[];isChatMode=!0;evalCase=null;isEvalEditMode=!1;isEvalCaseEditing=!1;isEditFunctionArgsEnabled=!1;userInput="";userEditEvalCaseMessage="";selectedFiles=[];updatedSessionState=null;eventData=new Map;isAudioRecording=!1;isVideoRecording=!1;hoveredEventMessageIndices=[];userInputChange=new YA;userEditEvalCaseMessageChange=new YA;clickEvent=new YA;handleKeydown=new YA;cancelEditMessage=new YA;saveEditMessage=new YA;openViewImageDialog=new YA;openBase64InNewTab=new YA;editEvalCaseMessage=new YA;deleteEvalCaseMessage=new YA;editFunctionArgs=new YA;fileSelect=new YA;removeFile=new YA;removeStateUpdate=new YA;sendMessage=new YA;updateState=new YA;toggleAudioRecording=new YA;toggleVideoRecording=new YA;videoContainer;scrollContainer;textarea;scrollInterrupted=!1;previousMessageCount=0;i18n=f($q);stringToColorService=f(jB);markdownComponent=f(q8);featureFlagService=f(Gc);MediaType=gC;isMessageFileUploadEnabledObs=this.featureFlagService.isMessageFileUploadEnabled();isManualStateUpdateEnabledObs=this.featureFlagService.isManualStateUpdateEnabled();isBidiStreamingEnabledObs=this.featureFlagService.isBidiStreamingEnabled();ngAfterViewInit(){this.scrollContainer?.nativeElement&&(this.scrollContainer.nativeElement.addEventListener("wheel",()=>{this.scrollInterrupted=!0}),this.scrollContainer.nativeElement.addEventListener("touchmove",()=>{this.scrollInterrupted=!0}))}ngOnChanges(e){e.messages&&(this.messages.length>this.previousMessageCount&&(this.messages.slice(this.previousMessageCount).some(i=>i.role==="user")&&(this.scrollInterrupted=!1),this.scrollToBottom()),this.previousMessageCount=this.messages.length)}scrollToBottom(){!this.scrollInterrupted&&this.scrollContainer?.nativeElement&&setTimeout(()=>{this.scrollContainer.nativeElement.scrollTo({top:this.scrollContainer.nativeElement.scrollHeight,behavior:"auto"})},50)}getAgentNameFromEvent(e){let A=this.messages[e].eventId;return this.eventData.get(A)?.author??AV}customIconColorClass(e){let A=this.getAgentNameFromEvent(e);return A!==AV?`custom-icon-color-${this.stringToColorService.stc(A).replace("#","")}`:""}shouldMessageHighlighted(e){return this.hoveredEventMessageIndices.includes(e)}renderGooglerSearch(e){return this.sanitizer.bypassSecurityTrustHtml(e)}static \u0275fac=function(A){return new(A||t)(Ge(oc))};static \u0275cmp=jA({type:t,selectors:[["app-chat-panel"]],viewQuery:function(A,i){if(A&1&&(st(VmA,5,se),st(ZmA,5),st(WmA,5)),A&2){let n;de(n=Be())&&(i.videoContainer=n.first),de(n=Be())&&(i.scrollContainer=n.first),de(n=Be())&&(i.textarea=n.first)}},inputs:{appName:"appName",messages:"messages",isChatMode:"isChatMode",evalCase:"evalCase",isEvalEditMode:"isEvalEditMode",isEvalCaseEditing:"isEvalCaseEditing",isEditFunctionArgsEnabled:"isEditFunctionArgsEnabled",userInput:"userInput",userEditEvalCaseMessage:"userEditEvalCaseMessage",selectedFiles:"selectedFiles",updatedSessionState:"updatedSessionState",eventData:"eventData",isAudioRecording:"isAudioRecording",isVideoRecording:"isVideoRecording",hoveredEventMessageIndices:"hoveredEventMessageIndices"},outputs:{userInputChange:"userInputChange",userEditEvalCaseMessageChange:"userEditEvalCaseMessageChange",clickEvent:"clickEvent",handleKeydown:"handleKeydown",cancelEditMessage:"cancelEditMessage",saveEditMessage:"saveEditMessage",openViewImageDialog:"openViewImageDialog",openBase64InNewTab:"openBase64InNewTab",editEvalCaseMessage:"editEvalCaseMessage",deleteEvalCaseMessage:"deleteEvalCaseMessage",editFunctionArgs:"editFunctionArgs",fileSelect:"fileSelect",removeFile:"removeFile",removeStateUpdate:"removeStateUpdate",sendMessage:"sendMessage",updateState:"updateState",toggleAudioRecording:"toggleAudioRecording",toggleVideoRecording:"toggleVideoRecording"},features:[Xt],decls:2,vars:2,consts:[["autoScroll",""],["videoContainer",""],["messageTextarea",""],["fileInput",""],["moreMenu","matMenu"],[1,"chat-messages"],[1,"chat-input"],[3,"ngClass"],["mat-mini-fab","",3,"matTooltip","class"],[1,"message-card",3,"ngClass"],["mat-stroked-button","",1,"function-event-button",3,"ngClass"],[1,"material-symbols-outlined"],["mat-mini-fab",""],["mat-mini-fab","",3,"click","matTooltip"],["fontSet","material-symbols-outlined"],["mode","buffer",1,"loading-bar"],[1,"attachments"],[1,"thought-chip"],[1,"eval-compare-container"],[1,"attachment"],["alt","attachment",1,"image-preview-chat",3,"src"],["download","",3,"href"],[1,"edit-message-container"],[3,"ngComponentOutlet","ngComponentOutletInputs"],["rows","4","cols","80",1,"message-textarea",3,"ngModelChange","keydown","ngModel"],[1,"edit-message-buttons-container"],[1,"material-symbols-outlined","cancel-edit-button",3,"click","matTooltip"],[1,"material-symbols-outlined","save-edit-button",3,"click","matTooltip"],[3,"innerHTML"],[1,"generated-image-container"],["alt","image",1,"generated-image",3,"click","src"],[3,"base64data"],[1,"html-artifact-container"],[1,"link-style-button",3,"click"],["alt","image",1,"image-preview-chat",3,"click","src"],[1,"actual-expected-compare-container"],[1,"score-threshold-container"],[1,"actual-result"],[1,"eval-response-header","header-actual"],[3,"json"],[1,"expected-result"],[1,"eval-response-header","header-expected"],[1,"header-actual"],[1,"header-expected"],["mat-stroked-button","",1,"function-event-button",3,"click","ngClass"],[1,"material-symbols-outlined","eval-case-edit-button",3,"click","ngClass","matTooltip"],["type","file","multiple","","hidden","",3,"change"],["appearance","outline",1,"input-field"],[1,"file-preview"],["matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","1","cdkAutosizeMaxRows","10",1,"chat-input-box",3,"ngModelChange","keydown.enter","ngModel","placeholder"],[1,"chat-input-actions"],["mat-icon-button","",1,"function-event-button",3,"click","matTooltip","disabled"],["mat-icon-button","",1,"function-event-button",3,"matMenuTriggerFor","matTooltip","disabled"],["mat-menu-item","",3,"click"],["mat-icon-button","","matSuffix","",1,"audio-rec-btn",3,"click","matTooltip","disabled"],["mat-icon-button","","matSuffix","",1,"video-rec-btn",3,"click","matTooltip","disabled"],[1,"file-container"],[1,"image-container"],["alt","preview",1,"image-preview",3,"src"],["mat-icon-button","",1,"delete-button",3,"click"],["color","warn"],[1,"file-info"]],template:function(A,i){A&1&&FA(0,_pA,6,0,"div",5)(1,TpA,29,25,"div",6),A&2&&(_A(i.appName!=""?0:-1),_(),_A(i.appName!=""&&i.isChatMode?1:-1))},dependencies:[ug,Vs,Yu,Qg,Mr,kc,Ss,tc,Lq,_c,rq,y8,Xq,Wq,uB,dr,QB,u6,D6,J2,fl,Zz,eP,p6,U2,qq,VB,Xh,jq,Sl,X2,qB,IR,kl],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}.generated-image-container[_ngcontent-%COMP%]{max-width:400px}.generated-image[_ngcontent-%COMP%]{max-width:100%;min-width:40px;border-radius:8px}.html-artifact-container[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:flex-start;align-items:center}.loading-bar[_ngcontent-%COMP%]{width:100px;margin:15px}.chat-messages[_ngcontent-%COMP%]{flex-grow:1;overflow-y:auto;padding:20px;margin-top:16px}.message-card[_ngcontent-%COMP%]{padding:5px 20px;margin:5px;border-radius:20px;max-width:80%;font-size:14px;font-weight:400;position:relative;display:inline-block}.message-card.message-card--highlighted[_ngcontent-%COMP%]{background-color:var(--chat-panel-function-event-button-highlight-background-color)}.function-event-button[_ngcontent-%COMP%]{background-color:var(--chat-panel-function-event-button-background-color);margin:5px 5px 10px}.function-event-button-highlight[_ngcontent-%COMP%]{background-color:var(--chat-panel-function-event-button-highlight-background-color);border-color:var(--chat-panel-function-event-button-highlight-border-color)!important;color:var(--chat-panel-function-event-button-highlight-color)!important}.user-message[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center}.user-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-panel-user-message-message-card-background-color);align-self:flex-end;color:var(--chat-panel-user-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]{display:flex;align-items:center}.bot-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-panel-bot-message-message-card-background-color);align-self:flex-start;color:var(--chat-panel-bot-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]:focus-within .message-card[_ngcontent-%COMP%]{background-color:var(--chat-panel-bot-message-focus-within-message-card-background-color);border:1px solid var(--chat-panel-bot-message-focus-within-message-card-border-color)}.message-textarea[_ngcontent-%COMP%]{background-color:var(--chat-panel-message-textarea-background-color);max-width:100%;border:none;font-family:Google Sans,Helvetica Neue,sans-serif}.message-textarea[_ngcontent-%COMP%]:focus{background-color:var(--chat-panel-message-textarea-focus-background-color);outline:none}.edit-message-buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%]{visibility:hidden;position:absolute;left:10px;z-index:10;background-color:var(--chat-panel-eval-compare-container-background-color);overflow:hidden;border-radius:20px;padding:5px 20px;margin-bottom:10px;font-size:16px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .actual-result[_ngcontent-%COMP%]{border-right:2px solid var(--chat-panel-actual-result-border-right-color);padding-right:8px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .expected-result[_ngcontent-%COMP%]{padding-left:12px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%]:hover .eval-compare-container[_ngcontent-%COMP%]{visibility:visible}.actual-expected-compare-container[_ngcontent-%COMP%]{display:flex}.score-threshold-container[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:10px;align-items:center;margin-top:15px;font-size:14px;font-weight:600}.eval-response-header[_ngcontent-%COMP%]{padding-bottom:5px;border-bottom:2px solid var(--chat-panel-eval-response-header-border-bottom-color);font-style:italic;font-weight:700}.header-expected[_ngcontent-%COMP%]{color:var(--chat-panel-header-expected-color)}.header-actual[_ngcontent-%COMP%]{color:var(--chat-panel-header-actual-color)}.eval-case-edit-button[_ngcontent-%COMP%]{cursor:pointer;margin-left:4px;margin-right:4px}.eval-pass[_ngcontent-%COMP%]{display:flex;color:var(--chat-panel-eval-pass-color)}.eval-fail[_ngcontent-%COMP%]{display:flex;color:var(--chat-panel-eval-fail-color)}.hidden[_ngcontent-%COMP%]{visibility:hidden}.chat-input[_ngcontent-%COMP%]{display:flex;padding:10px;width:60%;margin:0 auto}.input-field[_ngcontent-%COMP%]{flex-grow:1}.input-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{color:var(--chat-panel-input-field-textarea-color);border:none;padding:10px;box-sizing:content-box}.input-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]::placeholder{color:var(--chat-panel-input-field-textarea-placeholder-color)}.input-field[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{color:var(--chat-panel-input-field-button-color);background-color:var(--chat-panel-input-field-button-background-color)}.chat-input-actions[_ngcontent-%COMP%]{width:106%;margin-top:10px;display:flex;justify-content:space-between;align-items:center;max-width:100%}.chat-input-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:10px;margin-right:10px}.file-preview[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px;margin-bottom:8px}.image-preview[_ngcontent-%COMP%]{width:40px;height:40px;object-fit:cover;border-radius:4px}.image-preview-chat[_ngcontent-%COMP%]{max-width:90%;max-height:70vh;width:auto;height:auto;border-radius:8px;cursor:pointer;transition:transform .2s ease-in-out}.attachment[_ngcontent-%COMP%]{display:flex;align-items:center}[_nghost-%COMP%] .mat-mdc-mini-fab{background-color:var(--chat-panel-mat-mdc-mini-fab-background-color)}[_nghost-%COMP%] .mat-mdc-mini-fab mat-icon{color:var(--chat-panel-mat-mdc-mini-fab-mat-icon-color)}[_nghost-%COMP%] .message-text p{white-space:pre-line;word-break:break-word;overflow-wrap:break-word}[_nghost-%COMP%] .input-field .mat-mdc-text-field-wrapper{border:1px solid var(--chat-panel-input-field-mat-mdc-text-field-wrapper-border-color);border-radius:16px}.image-container[_ngcontent-%COMP%]{position:relative;display:inline-block;border-radius:12px;overflow:hidden}.image-preview[_ngcontent-%COMP%]{display:block;width:100%;height:auto;border-radius:12px;width:80px;height:80px}.delete-button[_ngcontent-%COMP%]{position:absolute;top:1px;right:1px;background-color:var(--chat-panel-delete-button-background-color);border:none;border-radius:50%;padding:8px;cursor:pointer;color:var(--chat-panel-delete-button-color);display:flex;align-items:center;justify-content:center;margin-right:0;scale:.7}.delete-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px}.file-container[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;gap:8px;height:80px;background-color:var(--chat-panel-file-container-background-color);border-radius:12px}.file-info[_ngcontent-%COMP%]{margin-right:60px;padding-top:20px;padding-left:16px}.thought-chip[_ngcontent-%COMP%]{border-radius:5px;background-color:var(--chat-panel-thought-chip-background-color);width:80px;text-align:center;margin-top:5px}[_nghost-%COMP%] pre{white-space:pre-wrap;word-break:break-word;overflow-x:auto;max-width:100%}.link-style-button[_ngcontent-%COMP%]{background:none;border:none;padding:0;font:inherit;color:var(--chat-panel-link-style-button-color)!important;text-decoration:underline;cursor:pointer;outline:none;font-size:14px}.cancel-edit-button[_ngcontent-%COMP%]{width:24px;height:24px;color:var(--chat-mat-mdc-text-field-wrapper-border-color);cursor:pointer;margin-right:16px}.save-edit-button[_ngcontent-%COMP%]{width:24px;height:24px;color:var(--mat-sys-primary);cursor:pointer;margin-right:16px}.chat-input-box[_ngcontent-%COMP%]{caret-color:#fff}button.audio-rec-btn[_ngcontent-%COMP%], button.video-rec-btn[_ngcontent-%COMP%]{background-color:var(--chat-card-background-color)}button.audio-rec-btn.recording[_ngcontent-%COMP%], button.video-rec-btn.recording[_ngcontent-%COMP%]{background-color:var(--chat-panel-eval-fail-color)}"]})};function wo(t){return Array.isArray(t)}function Lo(t){return t!==null&&typeof t=="object"&&(t.constructor===void 0||t.constructor.name==="Object")}function fR(t){return t&&typeof t=="object"?t.op==="add":!1}function mR(t){return t&&typeof t=="object"?t.op==="remove":!1}function V8(t){return t&&typeof t=="object"?t.op==="replace":!1}function Z8(t){return t&&typeof t=="object"?t.op==="copy":!1}function i1(t){return t&&typeof t=="object"?t.op==="move":!1}function tV(t,e){return JSON.stringify(t)===JSON.stringify(e)}function HpA(t,e){return t===e}function pR(t){return t.slice(0,t.length-1)}function iV(t){return t[t.length-1]}function nV(t,e){let A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:HpA;if(t.length{e[A]=t[A]}),e}if(Lo(t)){let e=sA({},t);return Object.getOwnPropertySymbols(t).forEach(A=>{e[A]=t[A]}),e}return t}function yR(t,e,A){if(t[e]===A)return t;let i=wR(t);return i[e]=A,i}function Ye(t,e){let A=t,i=0;for(;i3&&arguments[3]!==void 0?arguments[3]:!1;if(e.length===0)return A;let n=e[0],o=Bs(t?t[n]:void 0,e.slice(1),A,i);if(Lo(t)||wo(t))return yR(t,n,o);if(i){let r=OpA.test(n)?[]:{};return r[n]=o,r}throw new Error("Path does not exist")}var OpA=/^\d+$/;function $h(t,e,A){if(e.length===0)return A(t);if(!DR(t))throw new Error("Path doesn't exist");let i=e[0],n=$h(t[i],e.slice(1),A);return yR(t,i,n)}function lC(t,e){if(e.length===0)return t;if(!DR(t))throw new Error("Path does not exist");if(e.length===1){let n=e[0];if(!(n in t))return t;let o=wR(t);return wo(o)&&o.splice(Number.parseInt(n),1),Lo(o)&&delete o[n],o}let A=e[0],i=lC(t[A],e.slice(1));return yR(t,A,i)}function A4(t,e,A){let i=e.slice(0,e.length-1),n=e[e.length-1];return $h(t,i,o=>{if(!Array.isArray(o))throw new TypeError(`Array expected at path ${JSON.stringify(i)}`);let r=wR(o);return r.splice(Number.parseInt(n),0,A),r})}function As(t,e){return t===void 0?!1:e.length===0?!0:t===null?!1:As(t[e[0]],e.slice(1))}function xs(t){let e=t.split("/");return e.shift(),e.map(A=>A.replace(/~1/g,"/").replace(/~0/g,"~"))}function It(t){return t.map(oV).join("")}function oV(t){return`/${String(t).replace(/~/g,"~0").replace(/\//g,"~1")}`}function e4(t,e){return t+oV(e)}function Ma(t,e,A){let i=t;for(let n=0;n{let s,a=ba(o,r.path);if(r.op==="add")s=aV(o,a);else if(r.op==="remove")s=sV(o,a);else if(r.op==="replace")s=rV(o,a);else if(r.op==="copy")s=$pA(o,a);else if(r.op==="move")s=A6A(o,a,t4(r.from));else if(r.op==="test")s=[];else throw new Error(`Unknown JSONPatch operation ${JSON.stringify(r)}`);let c;if(A?.before){let g=A.before(o,r,s);if(g?.revertOperations&&(s=g.revertOperations),g?.document&&(c=g.document),g?.json)throw new Error('Deprecation warning: returned object property ".json" has been renamed to ".document"')}if(i=s.concat(i),c!==void 0)return{document:c}}}),i}function rV(t,e){return As(t,e)?[{op:"replace",path:It(e),value:Ye(t,e)}]:[]}function sV(t,e){return[{op:"add",path:It(e),value:Ye(t,e)}]}function aV(t,e){return WB(t,e)||!As(t,e)?[{op:"remove",path:It(e)}]:rV(t,e)}function $pA(t,e){return aV(t,e)}function A6A(t,e,A){if(e.length="0"&&t<="9"}function IV(t){return t>=" "}function i4(t){return`,:[]/{}() ++`.includes(t)}function bR(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="_"||t==="$"}function kR(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="_"||t==="$"||t>="0"&&t<="9"}var SR=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,RR=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function LR(t){return`,[]/{} ++`.includes(t)}function xR(t){return n4(t)||l6A.test(t)}var l6A=/^[[{\w-]$/;function CV(t){return t===` +`||t==="\r"||t===" "||t==="\b"||t==="\f"}function n1(t,e){let A=t.charCodeAt(e);return A===32||A===10||A===9||A===13}function dV(t,e){let A=t.charCodeAt(e);return A===32||A===9||A===13}function BV(t,e){let A=t.charCodeAt(e);return A===160||A>=8192&&A<=8202||A===8239||A===8287||A===12288}function n4(t){return NR(t)||A5(t)}function NR(t){return t==='"'||t==="\u201C"||t==="\u201D"}function FR(t){return t==='"'}function A5(t){return t==="'"||t==="\u2018"||t==="\u2019"||t==="`"||t==="\xB4"}function _R(t){return t==="'"}function XB(t,e){let A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=t.lastIndexOf(e);return i!==-1?t.substring(0,i)+(A?"":t.substring(i+1)):t}function Kc(t,e){let A=t.length;if(!n1(t,A-1))return t+e;for(;n1(t,A-1);)A--;return t.substring(0,A)+e+t.substring(A)}function EV(t,e,A){return t.substring(0,e)+t.substring(e+A)}function QV(t){return/[,\n][ \t\r]*$/.test(t)}var I6A={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},C6A={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` +`,r:"\r",t:" "};function Uc(t){let e=0,A="";c(["```","[```","{```"]),o()||fA(),c(["```","```]","```}"]);let n=I(",");for(n&&r(),xR(t[e])&&QV(A)?(n||(A=Kc(A,",")),h()):n&&(A=XB(A,","));t[e]==="}"||t[e]==="]";)e++,r();if(e>=t.length)return A;dA();function o(){r();let nA=E()||u()||w()||R()||D()||J(!1)||z();return r(),nA}function r(){let nA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,lA=e,wA=s(nA);do wA=a(),wA&&(wA=s(nA));while(wA);return e>lA}function s(nA){let lA=nA?n1:dV,wA="";for(;;)if(lA(t,e))wA+=t[e],e++;else if(BV(t,e))wA+=" ",e++;else break;return wA.length>0?(A+=wA,!0):!1}function a(){if(t[e]==="/"&&t[e+1]==="*"){for(;e=t.length;VA||(xR(t[e])||ie?A=Kc(A,":"):IA()),o()||(VA||ie?A+="null":IA())}return t[e]==="}"?(A+="}",e++):A=Kc(A,"}"),!0}return!1}function u(){if(t[e]==="["){A+="[",e++,r(),C(",")&&r();let nA=!0;for(;e0&&arguments[0]!==void 0?arguments[0]:!1,lA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,wA=t[e]==="\\";if(wA&&(e++,wA=!0),n4(t[e])){let VA=FR(t[e])?FR:_R(t[e])?_R:A5(t[e])?A5:NR,ie=e,UA=A.length,BA='"';for(e++;;){if(e>=t.length){let JA=K(e-1);return!nA&&i4(t.charAt(JA))?(e=ie,A=A.substring(0,UA),w(!0)):(BA=Kc(BA,'"'),A+=BA,!0)}if(e===lA)return BA=Kc(BA,'"'),A+=BA,!0;if(VA(t[e])){let JA=e,Xe=BA.length;if(BA+='"',e++,A+=BA,r(!1),nA||e>=t.length||i4(t[e])||n4(t[e])||o1(t[e]))return x(),!0;let We=K(JA-1),KA=t.charAt(We);if(KA===",")return e=ie,A=A.substring(0,UA),w(!1,We);if(i4(KA))return e=ie,A=A.substring(0,UA),w(!0);A=A.substring(0,UA),e=JA+1,BA=`${BA.substring(0,Xe)}\\${BA.substring(Xe)}`}else if(nA&&LR(t[e])){if(t[e-1]===":"&&SR.test(t.substring(ie+1,e+2)))for(;e=t.length?e=t.length:SA()}else BA+=JA,e+=2}else{let JA=t.charAt(e);JA==='"'&&t[e-1]!=="\\"?(BA+=`\\${JA}`,e++):CV(JA)?(BA+=I6A[JA],e++):(IV(JA)||j(JA),BA+=JA,e++)}wA&&d()}}return!1}function x(){let nA=!1;for(r();t[e]==="+";){nA=!0,e++,r(),A=XB(A,'"',!0);let lA=A.length;w()?A=EV(A,lA,1):A=Kc(A,'"')}return nA}function R(){let nA=e;if(t[e]==="-"){if(e++,O())return V(nA),!0;if(!o1(t[e]))return e=nA,!1}for(;o1(t[e]);)e++;if(t[e]==="."){if(e++,O())return V(nA),!0;if(!o1(t[e]))return e=nA,!1;for(;o1(t[e]);)e++}if(t[e]==="e"||t[e]==="E"){if(e++,(t[e]==="-"||t[e]==="+")&&e++,O())return V(nA),!0;if(!o1(t[e]))return e=nA,!1;for(;o1(t[e]);)e++}if(!O())return e=nA,!1;if(e>nA){let lA=t.slice(nA,e),wA=/^0\d/.test(lA);return A+=wA?`"${lA}"`:lA,!0}return!1}function D(){return G("true","true")||G("false","false")||G("null","null")||G("True","true")||G("False","false")||G("None","null")}function G(nA,lA){return t.slice(e,e+nA.length)===nA?(A+=lA,e+=nA.length,!0):!1}function J(nA){let lA=e;if(bR(t[e])){for(;elA){for(;n1(t,e-1)&&e>0;)e--;let wA=t.slice(lA,e);return A+=wA==="undefined"?"null":JSON.stringify(wA),t[e]==='"'&&e++,!0}}function z(){if(t[e]==="/"){let nA=e;for(e++;e0&&n1(t,lA);)lA--;return lA}function O(){return e>=t.length||i4(t[e])||n1(t,e)}function V(nA){A+=`${t.slice(nA,e)}0`}function j(nA){throw new R0(`Invalid character ${JSON.stringify(nA)}`,e)}function dA(){throw new R0(`Unexpected character ${JSON.stringify(t[e])}`,e)}function fA(){throw new R0("Unexpected end of json string",t.length)}function EA(){throw new R0("Object key expected",e)}function IA(){throw new R0("Colon expected",e)}function SA(){let nA=t.slice(e,e+6);throw new R0(`Invalid unicode character "${nA}"`,e)}}function d6A(t,e){return t[e]==="*"&&t[e+1]==="/"}var B6A=typeof global=="object"&&global&&global.Object===Object&&global,e5=B6A;var E6A=typeof self=="object"&&self&&self.Object===Object&&self,Q6A=e5||E6A||Function("return this")(),Er=Q6A;var u6A=Er.Symbol,es=u6A;var uV=Object.prototype,h6A=uV.hasOwnProperty,f6A=uV.toString,o4=es?es.toStringTag:void 0;function m6A(t){var e=h6A.call(t,o4),A=t[o4];try{t[o4]=void 0;var i=!0}catch{}var n=f6A.call(t);return i&&(e?t[o4]=A:delete t[o4]),n}var hV=m6A;var p6A=Object.prototype,D6A=p6A.toString;function w6A(t){return D6A.call(t)}var fV=w6A;var y6A="[object Null]",v6A="[object Undefined]",mV=es?es.toStringTag:void 0;function M6A(t){return t==null?t===void 0?v6A:y6A:mV&&mV in Object(t)?hV(t):fV(t)}var Mg=M6A;function b6A(t){return t!=null&&typeof t=="object"}var Aa=b6A;var k6A="[object Symbol]";function S6A(t){return typeof t=="symbol"||Aa(t)&&Mg(t)==k6A}var cc=S6A;function R6A(t,e){for(var A=-1,i=t==null?0:t.length,n=Array(i);++A0){if(++e>=h8A)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var UV=p8A;function D8A(t){return function(){return t}}var JV=D8A;var w8A=function(){try{var t=ka(Object,"defineProperty");return t({},"",{}),t}catch{}}(),AE=w8A;var y8A=AE?function(t,e){return AE(t,"toString",{configurable:!0,enumerable:!1,value:JV(e),writable:!0})}:Ll,YV=y8A;var v8A=UV(YV),TV=v8A;function M8A(t,e){for(var A=-1,i=t==null?0:t.length;++A-1&&t%1==0&&t-1&&t%1==0&&t<=U8A}var tE=J8A;function Y8A(t){return t!=null&&tE(t.length)&&!t5(t)}var Jc=Y8A;function T8A(t,e,A){if(!Hr(A))return!1;var i=typeof e;return(i=="number"?Jc(A)&&eE(e,A.length):i=="string"&&e in A)?a1(A[e],t):!1}var s4=T8A;var H8A=Object.prototype;function O8A(t){var e=t&&t.constructor,A=typeof e=="function"&&e.prototype||H8A;return t===A}var g1=O8A;function z8A(t,e){for(var A=-1,i=Array(t);++A-1}var IZ=lDA;function IDA(t,e){var A=this.__data__,i=C1(A,t);return i<0?(++this.size,A.push([t,e])):A[i][1]=e,this}var CZ=IDA;function sE(t){var e=-1,A=t==null?0:t.length;for(this.clear();++e0&&A(s)?e>1?vZ(s,e-1,A,i,n):gE(n,s):i||(n[n.length]=s)}return n}var MZ=vZ;var FDA=a5(Object.getPrototypeOf,Object),I5=FDA;function _DA(t,e,A){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),A=A>n?n:A,A<0&&(A+=n),n=e>A?0:A-e>>>0,e>>>=0;for(var o=Array(n);++is))return!1;var c=o.get(t),g=o.get(e);if(c&&g)return c==e&&g==t;var I=-1,C=!0,d=A&FyA?new QW:void 0;for(o.set(t,e),o.set(e,t);++I=e||J<0||I&&z>=o}function h(){var G=R5();if(u(G))return w(G);s=setTimeout(h,E(G))}function w(G){return s=void 0,C&&i?d(G):(i=n=void 0,r)}function x(){s!==void 0&&clearTimeout(s),c=0,i=a=n=s=void 0}function R(){return s===void 0?r:w(R5())}function D(){var G=R5(),J=u(G);if(i=arguments,n=this,a=G,J){if(s===void 0)return B(a);if(I)return clearTimeout(s),s=setTimeout(h,e),d(a)}return s===void 0&&(s=setTimeout(h,e)),r}return D.cancel=x,D.flush=R,D}var EE=F7A;function _7A(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var li=_7A;function G7A(t){return typeof t=="function"?t:Ll}var L5=G7A;function K7A(t,e){for(var A=t==null?0:t.length;A--&&e(t[A],A,t)!==!1;);return t}var HW=K7A;var U7A=v5(!0),OW=U7A;function J7A(t,e){return t&&OW(t,e,Yc)}var zW=J7A;var Y7A=b5(zW,!0),PW=Y7A;function T7A(t,e){var A=Fn(t)?HW:PW;return A(t,L5(e))}var HR=T7A;function H7A(t){return t&&t.length?t[0]:void 0}var Tc=H7A;function O7A(t,e){var A=-1,i=Jc(t)?Array(t.length):[];return k5(t,function(n,o,r){i[++A]=e(n,o,r)}),i}var x5=O7A;function z7A(t,e){var A=Fn(t)?r1:x5;return A(t,xl(e,3))}var OR=z7A;var P7A=Object.prototype,j7A=P7A.hasOwnProperty,q7A=S5(function(t,e,A){j7A.call(t,A)?t[A].push(e):s1(t,A,[e])}),zR=q7A;function V7A(t){var e=t==null?0:t.length;return e?bZ(t,0,-1):[]}var yi=V7A;var Z7A="[object Map]",W7A="[object Set]",X7A=Object.prototype,$7A=X7A.hasOwnProperty;function AvA(t){if(t==null)return!0;if(Jc(t)&&(Fn(t)||typeof t=="string"||typeof t.splice=="function"||x0(t)||iE(t)||l1(t)))return!t.length;var e=bg(t);if(e==Z7A||e==W7A)return!t.size;if(g1(t))return!c5(t).length;for(var A in t)if($7A.call(t,A))return!1;return!0}var Gi=AvA;function evA(t,e){return BE(t,e)}var ri=evA;function tvA(t,e){return te||o&&r&&a&&!s&&!c||i&&r&&a||!A&&a||!n)return 1;if(!i&&!o&&!c&&t=s)return a;var c=A[i];return a*(c=="desc"?-1:1)}}return t.index-e.index}var WW=avA;function cvA(t,e,A){e.length?e=r1(e,function(o){return Fn(o)?function(r){return cE(r,o.length===1?o[0]:o)}:o}):e=[Ll];var i=-1;e=r1(e,I1(xl));var n=x5(t,function(o,r,s){var a=r1(e,function(c){return c(o)});return{criteria:a,index:++i,value:o}});return VW(n,function(o,r){return WW(o,r,A)})}var XW=cvA;var gvA=S5(function(t,e,A){t[A?0:1].push(e)},function(){return[[],[]]}),jR=gvA;var lvA=Math.ceil,IvA=Math.max;function CvA(t,e,A,i){for(var n=-1,o=IvA(lvA((e-t)/(A||1)),0),r=Array(o);o--;)r[i?o:++n]=t,t+=A;return r}var $W=CvA;function dvA(t){return function(e,A,i){return i&&typeof i!="number"&&s4(e,A,i)&&(A=i=void 0),e=$B(e),A===void 0?(A=e,e=0):A=$B(A),i=i===void 0?e1&&s4(t,e[0],e[1])?e=[]:A>2&&s4(e[0],e[1],e[2])&&(e=[e[0]]),XW(t,MZ(e,1),[])}),qR=EvA;var QvA=9007199254740991,VR=4294967295,uvA=Math.min;function hvA(t,e){if(t=SV(t),t<1||t>QvA)return[];var A=VR,i=uvA(t,VR);e=L5(e),t-=VR;for(var n=r5(i,e);++AArray.isArray(t),pvA=t=>t!==null&&typeof t=="object"&&!f1(t),DvA=t=>typeof t=="string",dC=(t,e)=>t===e?!0:t!==null&&e!==null&&typeof t=="object"&&typeof e=="object"&&Object.keys(t).length===Object.keys(e).length&&Object.entries(t).every(([A,i])=>dC(i,e[A]));function mr(t){return(...e)=>{let A=e.map(o=>Or(o)),i=A[0],n=A[1];return A.length===1?o=>t(i(o)):A.length===2?o=>t(i(o),n(o)):o=>t(...A.map(r=>r(o)))}}var C4={boolean:0,number:1,string:2},eX=3,iX=(t,e)=>typeof t==typeof e&&typeof t in C4?t>e:!1,wvA=(t,e)=>dC(t,e)||iX(t,e),nX=(t,e)=>typeof t==typeof e&&typeof t in C4?tdC(t,e)||nX(t,e),I4={pipe:(...t)=>{let e=t.map(A=>Or(A));return A=>e.reduce((i,n)=>n(i),A)},object:t=>{let e=Object.keys(t).map(A=>[A,Or(t[A])]);return A=>{let i={};for(let[n,o]of e)i[n]=o(A);return i}},array:(...t)=>{let e=t.map(A=>Or(A));return A=>e.map(i=>i(A))},get:(...t)=>{if(t.length===0)return e=>e??null;if(t.length===1){let e=t[0];return A=>A?.[e]??null}return e=>{let A=e;for(let i of t)A=A?.[i];return A??null}},map:t=>{let e=Or(t);return A=>A.map(e)},mapObject:t=>{let e=Or(t);return A=>{let i={};for(let n of Object.keys(A)){let o=e({key:n,value:A[n]});i[o.key]=o.value}return i}},mapKeys:t=>{let e=Or(t);return A=>{let i={};for(let n of Object.keys(A)){let o=e(n);i[o]=A[n]}return i}},mapValues:t=>{let e=Or(t);return A=>{let i={};for(let n of Object.keys(A))i[n]=e(A[n]);return i}},filter:t=>{let e=Or(t);return A=>A.filter(i=>tX(e(i)))},sort:(t=["get"],e)=>{let A=Or(t),i=e==="desc"?-1:1;function n(o,r){let s=A(o),a=A(r);if(typeof s!=typeof a){let c=C4[typeof s]??eX,g=C4[typeof a]??eX;return c>g?i:ca?i:so.slice().sort(n)},reverse:()=>t=>t.toReversed(),pick:(...t)=>{let e=t.map(([i,...n])=>[n[n.length-1],I4.get(...n)]),A=(i,n)=>{let o={};for(let[r,s]of n)o[r]=s(i);return o};return i=>f1(i)?i.map(n=>A(n,e)):A(i,e)},groupBy:t=>{let e=Or(t);return A=>{let i={};for(let n of A){let o=e(n);i[o]?i[o].push(n):i[o]=[n]}return i}},keyBy:t=>{let e=Or(t);return A=>{let i={};for(let n of A){let o=e(n);o in i||(i[o]=n)}return i}},flatten:()=>t=>t.flat(),join:(t="")=>e=>e.join(t),split:mr((t,e)=>e!==void 0?t.split(e):t.trim().split(/\s+/)),substring:mr((t,e,A)=>t.slice(Math.max(e,0),A)),uniq:()=>t=>{let e=[];for(let A of t)e.findIndex(i=>dC(i,A))===-1&&e.push(A);return e},uniqBy:t=>e=>Object.values(I4.keyBy(t)(e)),limit:t=>e=>e.slice(0,Math.max(t,0)),size:()=>t=>t.length,keys:()=>Object.keys,values:()=>Object.values,prod:()=>t=>l4(t,(e,A)=>e*A),sum:()=>t=>f1(t)?t.reduce((e,A)=>e+A,0):WR(),average:()=>t=>f1(t)?t.length>0?t.reduce((e,A)=>e+A)/t.length:null:WR(),min:()=>t=>l4(t,(e,A)=>Math.min(e,A)),max:()=>t=>l4(t,(e,A)=>Math.max(e,A)),and:mr((...t)=>l4(t,(e,A)=>!!(e&&A))),or:mr((...t)=>l4(t,(e,A)=>!!(e||A))),not:mr(t=>!t),exists:t=>{let e=t.slice(1),A=e.pop(),i=I4.get(...e);return n=>{let o=i(n);return!!o&&Object.hasOwnProperty.call(o,A)}},if:(t,e,A)=>{let i=Or(t),n=Or(e),o=Or(A);return r=>tX(i(r))?n(r):o(r)},in:(t,e)=>{let A=Or(t),i=Or(e);return n=>{let o=A(n);return i(n).findIndex(r=>dC(r,o))!==-1}},"not in":(t,e)=>{let A=I4.in(t,e);return i=>!A(i)},regex:(t,e,A)=>{let i=new RegExp(e,A),n=Or(t);return o=>i.test(n(o))},eq:mr(dC),gt:mr(iX),gte:mr(wvA),lt:mr(nX),lte:mr(yvA),ne:mr((t,e)=>!dC(t,e)),add:mr((t,e)=>t+e),subtract:mr((t,e)=>t-e),multiply:mr((t,e)=>t*e),divide:mr((t,e)=>t/e),mod:mr((t,e)=>t%e),pow:mr((t,e)=>t**e),abs:mr(Math.abs),round:mr((t,e=0)=>+`${Math.round(+`${t}e${e}`)}e${-e}`),number:mr(t=>{let e=Number(t);return Number.isNaN(Number(t))?null:e}),string:mr(String)},tX=t=>t!==null&&t!==0&&t!==!1,l4=(t,e)=>(f1(t)||WR(),t.length===0?null:t.reduce(e)),WR=()=>{XR("Array expected")},XR=t=>{throw new TypeError(t)},F5=[];function Or(t,e){F5.unshift(sA(sA(sA({},I4),F5[0]),e?.functions));try{let A=f1(t)?vvA(t,F5[0]):pvA(t)?XR(`Function notation ["object", {...}] expected but got ${JSON.stringify(t)}`):()=>t;return i=>{try{return A(i)}catch(n){throw n.jsonquery=[{data:i,query:t},...n.jsonquery??[]],n}}}finally{F5.shift()}}function vvA(t,e){let[A,...i]=t,n=e[A];return n||XR(`Unknown function '${A}'`),n(...i)}var oX=[{pow:"^"},{multiply:"*",divide:"/",mod:"%"},{add:"+",subtract:"-"},{gt:">",gte:">=",lt:"<",lte:"<=",in:"in","not in":"not in"},{eq:"==",ne:"!="},{and:"and"},{or:"or"},{pipe:"|"}],MvA=["|","and","or"],rX=["|","and","or","*","/","%","+","-"];function sX(t,e){if(!f1(e))throw new Error("Invalid custom operators");return e.reduce(bvA,t)}function bvA(t,{name:e,op:A,at:i,after:n,before:o}){if(i)return t.map(a=>Object.values(a).includes(i)?Fe(sA({},a),{[e]:A}):a);let r=n??o,s=t.findIndex(a=>Object.values(a).includes(r));if(s!==-1)return t.toSpliced(s+(n?1:0),0,{[e]:A});throw new Error("Invalid custom operator")}var kvA=/^[a-zA-Z_$][a-zA-Z\d_$]*$/,SvA=/^[a-zA-Z_$][a-zA-Z\d_$]*/,RvA=/^"(?:[^"\\]|\\.)*"/,LvA=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/,xvA=/^(0|[1-9][0-9]*)/,NvA=/^(true|false|null)/,FvA=/^[ \n\t\r]+/;function $R(t,e){let A=e?.operators??[],i=sX(oX,A),n=Object.assign({},...i),o=MvA.concat(A.filter(O=>O.vararg).map(O=>O.op)),r=rX.concat(A.filter(O=>O.leftAssociative).map(O=>O.op)),s=(O=i.length-1)=>{let V=i[O];if(!V)return c();let j=t[z]==="(",dA=s(O-1);for(;;){D();let fA=z,EA=a(V);if(!EA)break;let IA=s(O-1),SA=dA[0],nA=EA===SA&&!j;if(nA&&!r.includes(n[EA])){z=fA;break}dA=nA&&o.includes(n[EA])?[...dA,IA]:[EA,dA,IA]}return dA},a=O=>{let V=Object.keys(O).sort((j,dA)=>dA.length-j.length);for(let j of V){let dA=O[j];if(t.substring(z,z+dA.length)===dA)return z+=dA.length,D(),j}},c=()=>{if(D(),t[z]==="("){z++;let O=s();return G(")"),O}return g()},g=()=>{if(t[z]==="."){let O=[];for(;t[z]===".";)z++,O.push(B()??E()??h()??J("Property expected"));return["get",...O]}return I()},I=()=>{let O=z,V=E();if(D(),!V||t[z]!=="(")return z=O,C();z++,D();let j=t[z]!==")"?[s()]:[];for(;z{if(t[z]==="{"){z++,D();let O={},V=!0;for(;z{if(t[z]==="["){z++,D();let O=[],V=!0;for(;zR(RvA,JSON.parse),E=()=>R(SvA,O=>O),u=()=>R(LvA,JSON.parse),h=()=>R(xvA,JSON.parse),w=()=>{let O=R(NvA,JSON.parse);if(O!==void 0)return O;J("Value expected")},x=()=>{D(),z{let j=t.substring(z).match(O);if(j)return z+=j[0].length,V(j[0])},D=()=>R(FvA,O=>O),G=O=>{t[z]!==O&&J(`Character '${O}' expected`),z++},J=(O,V=z)=>{throw new SyntaxError(`${O} (pos: ${V})`)},z=0,K=s();return x(),K}var _vA=40,GvA=" ",aX=(t,e)=>{let A=e?.indentation??GvA,i=e?.operators??[],n=sX(oX,i),o=Object.assign({},...n),r=rX.concat(i.filter(d=>d.leftAssociative).map(d=>d.op)),s=(d,B,E=!1)=>f1(d)?a(d,B,E):JSON.stringify(d),a=(d,B,E)=>{let[u,...h]=d;if(u==="get"&&h.length>0)return g(h);if(u==="object")return c(h[0],B);if(u==="array"){let D=h.map(G=>s(G,B));return C(D,["[",", ","]"],[`[ +${B+A}`,`, +${B+A}`,` +${B}]`])}let w=o[u];if(w){let D=E?"(":"",G=E?")":"",J=h.map((z,K)=>{let O=z?.[0],V=n.findIndex(fA=>u in fA),j=n.findIndex(fA=>O in fA),dA=V0||u===O&&!r.includes(w);return s(z,B+A,dA)});return C(J,[D,` ${w} `,G],[D,` +${B+A}${w} `,G])}let x=h.length===1?B:B+A,R=h.map(D=>s(D,x));return C(R,[`${u}(`,", ",")"],h.length===1?[`${u}(`,`, +${B}`,")"]:[`${u}( +${x}`,`, +${x}`,` +${B})`])},c=(d,B)=>{let E=B+A,u=Object.entries(d).map(([h,w])=>`${I(h)}: ${s(w,E)}`);return C(u,["{ ",", "," }"],[`{ +${E}`,`, +${E}`,` +${B}}`])},g=d=>d.map(B=>`.${I(B)}`).join(""),I=d=>kvA.test(d)?d:JSON.stringify(d),C=(d,[B,E,u],[h,w,x])=>B.length+d.reduce((R,D)=>R+D.length+E.length,0)-E.length+u.length<=(e?.maxLineLength??_vA)?B+d.join(E)+u:h+d.join(w)+x;return s(t,"")};function cX(t,e,A){return Or(DvA(e)?$R(e,A):e,A)(t)}var gX={prefix:"far",iconName:"lightbulb",icon:[384,512,[128161],"f0eb","M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7c0 0 0 0 0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5L109 384c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8c0 0 0 0 0 0s0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4c0 0 0 0 0 0s0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5l-48.6 0c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80l0-16 160 0 0 16c0 44.2-35.8 80-80 80z"]};var KvA={prefix:"far",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},AL=KvA;var eL={prefix:"far",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"]};var lX={prefix:"far",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]};var _5={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z"]};var IX={prefix:"fas",iconName:"down-left-and-up-right-to-center",icon:[512,512,["compress-alt"],"f422","M439 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39L439 7zM72 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39L73 505c-9.4 9.4-24.6 9.4-33.9 0L7 473c-9.4-9.4-9.4-24.6 0-33.9l87-87L55 313c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8z"]};var uE={prefix:"fas",iconName:"caret-right",icon:[256,512,[],"f0da","M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z"]};var tL={prefix:"fas",iconName:"paste",icon:[512,512,["file-clipboard"],"f0ea","M160 0c-23.7 0-44.4 12.9-55.4 32L48 32C21.5 32 0 53.5 0 80L0 400c0 26.5 21.5 48 48 48l144 0 0-272c0-44.2 35.8-80 80-80l48 0 0-16c0-26.5-21.5-48-48-48l-56.6 0C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48l0 272 0 16c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-220.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L320 128l-48 0zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]};var CX={prefix:"fas",iconName:"circle-notch",icon:[512,512,[],"f1ce","M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z"]};var UvA={prefix:"fas",iconName:"scissors",icon:[512,512,[9984,9986,9988,"cut"],"f0c4","M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},BC=UvA;var JvA={prefix:"fas",iconName:"square-caret-down",icon:[448,512,["caret-square-down"],"f150","M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"]},dX=JvA;var BX={prefix:"fas",iconName:"caret-left",icon:[256,512,[],"f0d9","M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z"]};var YvA={prefix:"fas",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},iL=YvA;var TvA={prefix:"fas",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z"]},EX=TvA;var QX={prefix:"fas",iconName:"chevron-up",icon:[512,512,[],"f077","M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"]};var nL={prefix:"fas",iconName:"angle-right",icon:[320,512,[8250],"f105","M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"]};var HvA={prefix:"fas",iconName:"square-caret-up",icon:[448,512,["caret-square-up"],"f151","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"]},uX=HvA;var oL={prefix:"fas",iconName:"caret-up",icon:[320,512,[],"f0d8","M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"]};var rL={prefix:"fas",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"]};var d4={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.9 54.9C10.5 40.9 24.5 32 40 32l432 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9 320 448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z"]};var B4={prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"]};var _0={prefix:"fas",iconName:"wrench",icon:[512,512,[128295],"f0ad","M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7L336 192c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]};var hX={prefix:"fas",iconName:"eye",icon:[576,512,[128065],"f06e","M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"]};var EC={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z"]};var OvA={prefix:"fas",iconName:"arrow-rotate-right",icon:[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M386.3 160L336 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z"]};var G5=OvA;var zvA={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z"]};var K5=zvA;var PvA={prefix:"fas",iconName:"crop-simple",icon:[512,512,["crop-alt"],"f565","M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-224 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64L160 64l0 64 224 0 0 352z"]},fX=PvA;var jvA={prefix:"fas",iconName:"gear",icon:[512,512,[9881,"cog"],"f013","M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"]},mX=jvA;var Nl={prefix:"fas",iconName:"caret-down",icon:[320,512,[],"f0d7","M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"]};var qvA={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"]},sL=qvA;var E4={prefix:"fas",iconName:"arrow-right-arrow-left",icon:[448,512,[8644,"exchange"],"f0ec","M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z"]};var VvA={prefix:"fas",iconName:"arrow-down-short-wide",icon:[576,512,["sort-amount-desc","sort-amount-down-alt"],"f884","M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]};var Q4=VvA;var pX={prefix:"fas",iconName:"angle-down",icon:[448,512,[8964],"f107","M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]};var aL={prefix:"fas",iconName:"arrow-down",icon:[384,512,[8595],"f063","M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]};var ZvA={prefix:"fas",iconName:"magnifying-glass",icon:[512,512,[128269,"search"],"f002","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"]},u4=ZvA;var DX={prefix:"fas",iconName:"chevron-down",icon:[512,512,[],"f078","M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"]};var G0={prefix:"fas",iconName:"copy",icon:[448,512,[],"f0c5","M208 0L332.1 0c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9L448 336c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48zM48 128l80 0 0 64-64 0 0 256 192 0 0-32 64 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48z"]};var QC={prefix:"fas",iconName:"plus",icon:[448,512,[10133,61543,"add"],"2b","M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z"]};var wX={prefix:"fas",iconName:"xmark",icon:[384,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"]},yX=wX;var h4=wX;var vX={prefix:"fas",iconName:"rotate",icon:[512,512,[128260,"sync-alt"],"f2f1","M142.9 142.9c-17.5 17.5-30.1 38-37.8 59.8c-5.9 16.7-24.2 25.4-40.8 19.5s-25.4-24.2-19.5-40.8C55.6 150.7 73.2 122 97.6 97.6c87.2-87.2 228.3-87.5 315.8-1L455 55c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 128c0 13.3-10.7 24-24 24l-8.4 0c0 0 0 0 0 0L344 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l41.1-41.1c-62.6-61.5-163.1-61.2-225.3 1zM16 312c0-13.3 10.7-24 24-24l7.6 0 .7 0L168 288c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-41.1 41.1c62.6 61.5 163.1 61.2 225.3-1c17.5-17.5 30.1-38 37.8-59.8c5.9-16.7 24.2-25.4 40.8-19.5s25.4 24.2 19.5 40.8c-10.8 30.6-28.4 59.3-52.9 83.8c-87.2 87.2-228.3 87.5-315.8 1L57 457c-6.9 6.9-17.2 8.9-26.2 5.2S16 449.7 16 440l0-119.6 0-.7 0-7.6z"]};var MX={prefix:"fas",iconName:"up-right-and-down-left-from-center",icon:[512,512,["expand-alt"],"f424","M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z"]};var cL={prefix:"fas",iconName:"clone",icon:[512,512,[],"f24d","M288 448L64 448l0-224 64 0 0-64-64 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-64-64 0 0 64zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z"]};var U5={prefix:"fas",iconName:"check",icon:[448,512,[10003,10004],"f00c","M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"]};var WvA={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},m1=WvA;var QsA=$Q(SX(),1);var RX=Number.isNaN||function(e){return typeof e=="number"&&e!==e};function XvA(t,e){return!!(t===e||RX(t)&&RX(e))}function $vA(t,e){if(t.length!==e.length)return!1;for(var A=0;A{if(typeof n!="object"||!n.name||!n.init)throw new Error("Invalid JSEP plugin format");this.registered[n.name]||(n.init(this.jsep),this.registered[n.name]=n)})}},Na=class t{static get version(){return"1.4.0"}static toString(){return"JavaScript Expression Parser (JSEP) v"+t.version}static addUnaryOp(e){return t.max_unop_len=Math.max(e.length,t.max_unop_len),t.unary_ops[e]=1,t}static addBinaryOp(e,A,i){return t.max_binop_len=Math.max(e.length,t.max_binop_len),t.binary_ops[e]=A,i?t.right_associative.add(e):t.right_associative.delete(e),t}static addIdentifierChar(e){return t.additional_identifier_chars.add(e),t}static addLiteral(e,A){return t.literals[e]=A,t}static removeUnaryOp(e){return delete t.unary_ops[e],e.length===t.max_unop_len&&(t.max_unop_len=t.getMaxKeyLen(t.unary_ops)),t}static removeAllUnaryOps(){return t.unary_ops={},t.max_unop_len=0,t}static removeIdentifierChar(e){return t.additional_identifier_chars.delete(e),t}static removeBinaryOp(e){return delete t.binary_ops[e],e.length===t.max_binop_len&&(t.max_binop_len=t.getMaxKeyLen(t.binary_ops)),t.right_associative.delete(e),t}static removeAllBinaryOps(){return t.binary_ops={},t.max_binop_len=0,t}static removeLiteral(e){return delete t.literals[e],t}static removeAllLiterals(){return t.literals={},t}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(e){this.expr=e,this.index=0}static parse(e){return new t(e).parse()}static getMaxKeyLen(e){return Math.max(0,...Object.keys(e).map(A=>A.length))}static isDecimalDigit(e){return e>=48&&e<=57}static binaryPrecedence(e){return t.binary_ops[e]||0}static isIdentifierStart(e){return e>=65&&e<=90||e>=97&&e<=122||e>=128&&!t.binary_ops[String.fromCharCode(e)]||t.additional_identifier_chars.has(String.fromCharCode(e))}static isIdentifierPart(e){return t.isIdentifierStart(e)||t.isDecimalDigit(e)}throwError(e){let A=new Error(e+" at character "+this.index);throw A.index=this.index,A.description=e,A}runHook(e,A){if(t.hooks[e]){let i={context:this,node:A};return t.hooks.run(e,i),i.node}return A}searchHook(e){if(t.hooks[e]){let A={context:this};return t.hooks[e].find(function(i){return i.call(A.context,A),A.node}),A.node}}gobbleSpaces(){let e=this.code;for(;e===t.SPACE_CODE||e===t.TAB_CODE||e===t.LF_CODE||e===t.CR_CODE;)e=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");let e=this.gobbleExpressions(),A=e.length===1?e[0]:{type:t.COMPOUND,body:e};return this.runHook("after-all",A)}gobbleExpressions(e){let A=[],i,n;for(;this.index0;){if(t.binary_ops.hasOwnProperty(e)&&(!t.isIdentifierStart(this.code)||this.index+e.lengtho.right_a&&I.right_a?i>I.prec:i<=I.prec;for(;n.length>2&&g(n[n.length-2]);)s=n.pop(),A=n.pop().value,r=n.pop(),e={type:t.BINARY_EXP,operator:A,left:r,right:s},n.push(e);e=this.gobbleToken(),e||this.throwError("Expected expression after "+c),n.push(o,e)}for(a=n.length-1,e=n[a];a>1;)e={type:t.BINARY_EXP,operator:n[a-1].value,left:n[a-2],right:e},a-=2;return e}gobbleToken(){let e,A,i,n;if(this.gobbleSpaces(),n=this.searchHook("gobble-token"),n)return this.runHook("after-token",n);if(e=this.code,t.isDecimalDigit(e)||e===t.PERIOD_CODE)return this.gobbleNumericLiteral();if(e===t.SQUOTE_CODE||e===t.DQUOTE_CODE)n=this.gobbleStringLiteral();else if(e===t.OBRACK_CODE)n=this.gobbleArray();else{for(A=this.expr.substr(this.index,t.max_unop_len),i=A.length;i>0;){if(t.unary_ops.hasOwnProperty(A)&&(!t.isIdentifierStart(this.code)||this.index+A.length=A.length&&this.throwError("Unexpected token "+String.fromCharCode(e));break}else if(o===t.COMMA_CODE){if(this.index++,n++,n!==A.length){if(e===t.CPAREN_CODE)this.throwError("Unexpected token ,");else if(e===t.CBRACK_CODE)for(let r=A.length;r":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10,"**":11},right_associative:new Set(["**"]),additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"});Na.max_unop_len=Na.getMaxKeyLen(Na.unary_ops);Na.max_binop_len=Na.getMaxKeyLen(Na.binary_ops);var H0=t=>new Na(t).parse(),vRA=Object.getOwnPropertyNames(class{});Object.getOwnPropertyNames(Na).filter(t=>!vRA.includes(t)&&H0[t]===void 0).forEach(t=>{H0[t]=Na[t]});H0.Jsep=Na;var MRA="ConditionalExpression",bRA={name:"ternary",init(t){t.hooks.add("after-expression",function(A){if(A.node&&this.code===t.QUMARK_CODE){this.index++;let i=A.node,n=this.gobbleExpression();if(n||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===t.COLON_CODE){this.index++;let o=this.gobbleExpression();if(o||this.throwError("Expected expression"),A.node={type:MRA,test:i,consequent:n,alternate:o},i.operator&&t.binary_ops[i.operator]<=.9){let r=i;for(;r.right.operator&&t.binary_ops[r.right.operator]<=.9;)r=r.right;A.node.test=r.right,r.right=A.node,A.node=i}}else this.throwError("Expected :")}})}};H0.plugins.register(bRA);var geA=47,kRA=92,SRA={name:"regex",init(t){t.hooks.add("gobble-token",function(A){if(this.code===geA){let i=++this.index,n=!1;for(;this.index=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57)r+=this.char;else break}let s;try{s=new RegExp(o,r)}catch(a){this.throwError(a.message)}return A.node={type:t.LITERAL,value:s,raw:this.expr.slice(i-1,this.index)},A.node=this.gobbleTokenProperty(A.node),A.node}this.code===t.OBRACK_CODE?n=!0:n&&this.code===t.CBRACK_CODE&&(n=!1),this.index+=this.code===kRA?2:1}this.throwError("Unclosed Regex")}})}},Vx=43,RRA=45,xE={name:"assignment",assignmentOperators:new Set(["=","*=","**=","/=","%=","+=","-=","<<=",">>=",">>>=","&=","^=","|=","||=","&&=","??="]),updateOperators:[Vx,RRA],assignmentPrecedence:.9,init(t){let e=[t.IDENTIFIER,t.MEMBER_EXP];xE.assignmentOperators.forEach(i=>t.addBinaryOp(i,xE.assignmentPrecedence,!0)),t.hooks.add("gobble-token",function(n){let o=this.code;xE.updateOperators.some(r=>r===o&&r===this.expr.charCodeAt(this.index+1))&&(this.index+=2,n.node={type:"UpdateExpression",operator:o===Vx?"++":"--",argument:this.gobbleTokenProperty(this.gobbleIdentifier()),prefix:!0},(!n.node.argument||!e.includes(n.node.argument.type))&&this.throwError(`Unexpected ${n.node.operator}`))}),t.hooks.add("after-token",function(n){if(n.node){let o=this.code;xE.updateOperators.some(r=>r===o&&r===this.expr.charCodeAt(this.index+1))&&(e.includes(n.node.type)||this.throwError(`Unexpected ${n.node.operator}`),this.index+=2,n.node={type:"UpdateExpression",operator:o===Vx?"++":"--",argument:n.node,prefix:!1})}}),t.hooks.add("after-expression",function(n){n.node&&A(n.node)});function A(i){xE.assignmentOperators.has(i.operator)?(i.type="AssignmentExpression",A(i.left),A(i.right)):i.operator||Object.values(i).forEach(n=>{n&&typeof n=="object"&&A(n)})}}};H0.plugins.register(SRA,xE);H0.addUnaryOp("typeof");H0.addLiteral("null",null);H0.addLiteral("undefined",void 0);var LRA=new Set(["constructor","__proto__","__defineGetter__","__defineSetter__"]),go={evalAst(t,e){switch(t.type){case"BinaryExpression":case"LogicalExpression":return go.evalBinaryExpression(t,e);case"Compound":return go.evalCompound(t,e);case"ConditionalExpression":return go.evalConditionalExpression(t,e);case"Identifier":return go.evalIdentifier(t,e);case"Literal":return go.evalLiteral(t,e);case"MemberExpression":return go.evalMemberExpression(t,e);case"UnaryExpression":return go.evalUnaryExpression(t,e);case"ArrayExpression":return go.evalArrayExpression(t,e);case"CallExpression":return go.evalCallExpression(t,e);case"AssignmentExpression":return go.evalAssignmentExpression(t,e);default:throw SyntaxError("Unexpected expression",t)}},evalBinaryExpression(t,e){return{"||":(i,n)=>i||n(),"&&":(i,n)=>i&&n(),"|":(i,n)=>i|n(),"^":(i,n)=>i^n(),"&":(i,n)=>i&n(),"==":(i,n)=>i==n(),"!=":(i,n)=>i!=n(),"===":(i,n)=>i===n(),"!==":(i,n)=>i!==n(),"<":(i,n)=>i":(i,n)=>i>n(),"<=":(i,n)=>i<=n(),">=":(i,n)=>i>=n(),"<<":(i,n)=>i<>":(i,n)=>i>>n(),">>>":(i,n)=>i>>>n(),"+":(i,n)=>i+n(),"-":(i,n)=>i-n(),"*":(i,n)=>i*n(),"/":(i,n)=>i/n(),"%":(i,n)=>i%n()}[t.operator](go.evalAst(t.left,e),()=>go.evalAst(t.right,e))},evalCompound(t,e){let A;for(let i=0;i-go.evalAst(i,e),"!":i=>!go.evalAst(i,e),"~":i=>~go.evalAst(i,e),"+":i=>+go.evalAst(i,e),typeof:i=>typeof go.evalAst(i,e)}[t.operator](t.argument)},evalArrayExpression(t,e){return t.elements.map(A=>go.evalAst(A,e))},evalCallExpression(t,e){let A=t.arguments.map(n=>go.evalAst(n,e));return go.evalAst(t.callee,e)(...A)},evalAssignmentExpression(t,e){if(t.left.type!=="Identifier")throw SyntaxError("Invalid left-hand side in assignment");let A=t.left.name,i=go.evalAst(t.right,e);return e[A]=i,e[A]}},Xx=class{constructor(e){this.code=e,this.ast=H0(this.code)}runInNewContext(e){let A=Object.assign(Object.create(null),e);return go.evalAst(this.ast,A)}};function k1(t,e){return t=t.slice(),t.push(e),t}function $x(t,e){return e=e.slice(),e.unshift(t),e}var AN=class extends Error{constructor(e){super('JSONPath should not be called with "new" (it prevents return of (unwrapped) scalar values)'),this.avoidNew=!0,this.value=e,this.name="NewError"}};function Rn(t,e,A,i,n){if(!(this instanceof Rn))try{return new Rn(t,e,A,i,n)}catch(r){if(!r.avoidNew)throw r;return r.value}typeof t=="string"&&(n=i,i=A,A=e,e=t,t=null);let o=t&&typeof t=="object";if(t=t||{},this.json=t.json||A,this.path=t.path||e,this.resultType=t.resultType||"value",this.flatten=t.flatten||!1,this.wrap=Object.hasOwn(t,"wrap")?t.wrap:!0,this.sandbox=t.sandbox||{},this.eval=t.eval===void 0?"safe":t.eval,this.ignoreEvalErrors=typeof t.ignoreEvalErrors>"u"?!1:t.ignoreEvalErrors,this.parent=t.parent||null,this.parentProperty=t.parentProperty||null,this.callback=t.callback||i||null,this.otherTypeCallback=t.otherTypeCallback||n||function(){throw new TypeError("You must supply an otherTypeCallback callback option with the @other() operator.")},t.autostart!==!1){let r={path:o?t.path:e};o?"json"in t&&(r.json=t.json):r.json=A;let s=this.evaluate(r);if(!s||typeof s!="object")throw new AN(s);return s}}Rn.prototype.evaluate=function(t,e,A,i){let n=this.parent,o=this.parentProperty,{flatten:r,wrap:s}=this;if(this.currResultType=this.resultType,this.currEval=this.eval,this.currSandbox=this.sandbox,A=A||this.callback,this.currOtherTypeCallback=i||this.otherTypeCallback,e=e||this.json,t=t||this.path,t&&typeof t=="object"&&!Array.isArray(t)){if(!t.path&&t.path!=="")throw new TypeError('You must supply a "path" property when providing an object argument to JSONPath.evaluate().');if(!Object.hasOwn(t,"json"))throw new TypeError('You must supply a "json" property when providing an object argument to JSONPath.evaluate().');({json:e}=t),r=Object.hasOwn(t,"flatten")?t.flatten:r,this.currResultType=Object.hasOwn(t,"resultType")?t.resultType:this.currResultType,this.currSandbox=Object.hasOwn(t,"sandbox")?t.sandbox:this.currSandbox,s=Object.hasOwn(t,"wrap")?t.wrap:s,this.currEval=Object.hasOwn(t,"eval")?t.eval:this.currEval,A=Object.hasOwn(t,"callback")?t.callback:A,this.currOtherTypeCallback=Object.hasOwn(t,"otherTypeCallback")?t.otherTypeCallback:this.currOtherTypeCallback,n=Object.hasOwn(t,"parent")?t.parent:n,o=Object.hasOwn(t,"parentProperty")?t.parentProperty:o,t=t.path}if(n=n||null,o=o||null,Array.isArray(t)&&(t=Rn.toPathString(t)),!t&&t!==""||!e)return;let a=Rn.toPathArray(t);a[0]==="$"&&a.length>1&&a.shift(),this._hasParentSelector=null;let c=this._trace(a,e,["$"],n,o,A).filter(function(g){return g&&!g.isParentSelector});return c.length?!s&&c.length===1&&!c[0].hasArrExpr?this._getPreferredOutput(c[0]):c.reduce((g,I)=>{let C=this._getPreferredOutput(I);return r&&Array.isArray(C)?g=g.concat(C):g.push(C),g},[]):s?[]:void 0};Rn.prototype._getPreferredOutput=function(t){let e=this.currResultType;switch(e){case"all":{let A=Array.isArray(t.path)?t.path:Rn.toPathArray(t.path);return t.pointer=Rn.toPointer(A),t.path=typeof t.path=="string"?t.path:Rn.toPathString(t.path),t}case"value":case"parent":case"parentProperty":return t[e];case"path":return Rn.toPathString(t[e]);case"pointer":return Rn.toPointer(t.path);default:throw new TypeError("Unknown result type")}};Rn.prototype._handleCallback=function(t,e,A){if(e){let i=this._getPreferredOutput(t);t.path=typeof t.path=="string"?t.path:Rn.toPathString(t.path),e(i,A,t)}};Rn.prototype._trace=function(t,e,A,i,n,o,r,s){let a;if(!t.length)return a={path:A,value:e,parent:i,parentProperty:n,hasArrExpr:r},this._handleCallback(a,o,"value"),a;let c=t[0],g=t.slice(1),I=[];function C(d){Array.isArray(d)?d.forEach(B=>{I.push(B)}):I.push(d)}if((typeof c!="string"||s)&&e&&Object.hasOwn(e,c))C(this._trace(g,e[c],k1(A,c),e,c,o,r));else if(c==="*")this._walk(e,d=>{C(this._trace(g,e[d],k1(A,d),e,d,o,!0,!0))});else if(c==="..")C(this._trace(g,e,A,i,n,o,r)),this._walk(e,d=>{typeof e[d]=="object"&&C(this._trace(t.slice(),e[d],k1(A,d),e,d,o,!0))});else{if(c==="^")return this._hasParentSelector=!0,{path:A.slice(0,-1),expr:g,isParentSelector:!0};if(c==="~")return a={path:k1(A,c),value:n,parent:i,parentProperty:null},this._handleCallback(a,o,"property"),a;if(c==="$")C(this._trace(g,e,A,null,null,o,r));else if(/^(-?\d*):(-?\d*):?(\d*)$/u.test(c))C(this._slice(c,g,e,A,i,n,o));else if(c.indexOf("?(")===0){if(this.currEval===!1)throw new Error("Eval [?(expr)] prevented in JSONPath expression.");let d=c.replace(/^\?\((.*?)\)$/u,"$1"),B=/@.?([^?]*)[['](\??\(.*?\))(?!.\)\])[\]']/gu.exec(d);B?this._walk(e,E=>{let u=[B[2]],h=B[1]?e[E][B[1]]:e[E];this._trace(u,h,A,i,n,o,!0).length>0&&C(this._trace(g,e[E],k1(A,E),e,E,o,!0))}):this._walk(e,E=>{this._eval(d,e[E],E,A,i,n)&&C(this._trace(g,e[E],k1(A,E),e,E,o,!0))})}else if(c[0]==="("){if(this.currEval===!1)throw new Error("Eval [(expr)] prevented in JSONPath expression.");C(this._trace($x(this._eval(c,e,A.at(-1),A.slice(0,-1),i,n),g),e,A,i,n,o,r))}else if(c[0]==="@"){let d=!1,B=c.slice(1,-2);switch(B){case"scalar":(!e||!["object","function"].includes(typeof e))&&(d=!0);break;case"boolean":case"string":case"undefined":case"function":typeof e===B&&(d=!0);break;case"integer":Number.isFinite(e)&&!(e%1)&&(d=!0);break;case"number":Number.isFinite(e)&&(d=!0);break;case"nonFinite":typeof e=="number"&&!Number.isFinite(e)&&(d=!0);break;case"object":e&&typeof e===B&&(d=!0);break;case"array":Array.isArray(e)&&(d=!0);break;case"other":d=this.currOtherTypeCallback(e,A,i,n);break;case"null":e===null&&(d=!0);break;default:throw new TypeError("Unknown value type "+B)}if(d)return a={path:A,value:e,parent:i,parentProperty:n},this._handleCallback(a,o,"value"),a}else if(c[0]==="`"&&e&&Object.hasOwn(e,c.slice(1))){let d=c.slice(1);C(this._trace(g,e[d],k1(A,d),e,d,o,r,!0))}else if(c.includes(",")){let d=c.split(",");for(let B of d)C(this._trace($x(B,g),e,A,i,n,o,!0))}else!s&&e&&Object.hasOwn(e,c)&&C(this._trace(g,e[c],k1(A,c),e,c,o,r,!0))}if(this._hasParentSelector)for(let d=0;d{e(A)})};Rn.prototype._slice=function(t,e,A,i,n,o,r){if(!Array.isArray(A))return;let s=A.length,a=t.split(":"),c=a[2]&&Number.parseInt(a[2])||1,g=a[0]&&Number.parseInt(a[0])||0,I=a[1]&&Number.parseInt(a[1])||s;g=g<0?Math.max(0,g+s):Math.min(s,g),I=I<0?Math.max(0,I+s):Math.min(s,I);let C=[];for(let d=g;d{C.push(E)});return C};Rn.prototype._eval=function(t,e,A,i,n,o){this.currSandbox._$_parentProperty=o,this.currSandbox._$_parent=n,this.currSandbox._$_property=A,this.currSandbox._$_root=this.json,this.currSandbox._$_v=e;let r=t.includes("@path");r&&(this.currSandbox._$_path=Rn.toPathString(i.concat([A])));let s=this.currEval+"Script:"+t;if(!Rn.cache[s]){let a=t.replaceAll("@parentProperty","_$_parentProperty").replaceAll("@parent","_$_parent").replaceAll("@property","_$_property").replaceAll("@root","_$_root").replaceAll(/@([.\s)[])/gu,"_$_v$1");if(r&&(a=a.replaceAll("@path","_$_path")),this.currEval==="safe"||this.currEval===!0||this.currEval===void 0)Rn.cache[s]=new this.safeVm.Script(a);else if(this.currEval==="native")Rn.cache[s]=new this.vm.Script(a);else if(typeof this.currEval=="function"&&this.currEval.prototype&&Object.hasOwn(this.currEval.prototype,"runInNewContext")){let c=this.currEval;Rn.cache[s]=new c(a)}else if(typeof this.currEval=="function")Rn.cache[s]={runInNewContext:c=>this.currEval(a,c)};else throw new TypeError(`Unknown "eval" property "${this.currEval}"`)}try{return Rn.cache[s].runInNewContext(this.currSandbox)}catch(a){if(this.ignoreEvalErrors)return!1;throw new Error("jsonPath: "+a.message+": "+t)}};Rn.cache={};Rn.toPathString=function(t){let e=t,A=e.length,i="$";for(let n=1;ntypeof e[c]=="function");let o=i.map(c=>e[c]);A=n.reduce((c,g)=>{let I=e[g].toString();return/function/u.test(I)||(I="function "+I),"var "+g+"="+I+";"+c},"")+A,!/(['"])use strict\1/u.test(A)&&!i.includes("arguments")&&(A="var arguments = undefined;"+A),A=A.replace(/;\s*$/u,"");let s=A.lastIndexOf(";"),a=s!==-1?A.slice(0,s+1)+" return "+A.slice(s+1):" return "+A;return new Function(...i,a)(...o)}};Rn.prototype.vm={Script:eN};var iN=[],deA=[];(()=>{let t="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,A=0;e>1;if(t=deA[i])e=i+1;else return!0;if(e==A)return!1}}function leA(t){return t>=127462&&t<=127487}var IeA=8205;function BeA(t,e,A=!0,i=!0){return(A?EeA:FRA)(t,e,i)}function EeA(t,e,A){if(e==t.length)return e;e&&QeA(t.charCodeAt(e))&&ueA(t.charCodeAt(e-1))&&e--;let i=tN(t,e);for(e+=CeA(i);e=0&&leA(tN(t,r));)o++,r-=2;if(o%2==0)break;e+=2}else break}return e}function FRA(t,e,A){for(;e>0;){let i=EeA(t,e-2,A);if(i=56320&&t<57344}function ueA(t){return t>=55296&&t<56320}function CeA(t){return t<65536?1:2}var tn=class t{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,A,i){[e,A]=KE(this,e,A);let n=[];return this.decompose(0,e,n,2),i.length&&i.decompose(0,i.length,n,3),this.decompose(A,this.length,n,1),FE.from(n,this.length-(A-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,A=this.length){[e,A]=KE(this,e,A);let i=[];return this.decompose(e,A,i,0),FE.from(i,A-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let A=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),n=new bC(this),o=new bC(e);for(let r=A,s=A;;){if(n.next(r),o.next(r),r=0,n.lineBreak!=o.lineBreak||n.done!=o.done||n.value!=o.value)return!1;if(s+=n.value.length,n.done||s>=i)return!0}}iter(e=1){return new bC(this,e)}iterRange(e,A=this.length){return new bD(this,e,A)}iterLines(e,A){let i;if(e==null)i=this.iter();else{A==null&&(A=this.lines+1);let n=this.line(e).from;i=this.iterRange(n,Math.max(n,A==this.lines+1?this.length:A<=1?0:this.line(A-1).to))}return new kD(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?t.empty:e.length<=32?new gc(e):FE.from(gc.split(e,[]))}},gc=class t extends tn{constructor(e,A=_RA(e)){super(),this.text=e,this.length=A}get lines(){return this.text.length}get children(){return null}lineInner(e,A,i,n){for(let o=0;;o++){let r=this.text[o],s=n+r.length;if((A?i:s)>=e)return new rN(n,s,i,r);n=s+1,i++}}decompose(e,A,i,n){let o=e<=0&&A>=this.length?this:new t(heA(this.text,e,A),Math.min(A,this.length)-Math.max(0,e));if(n&1){let r=i.pop(),s=MD(o.text,r.text.slice(),0,o.length);if(s.length<=32)i.push(new t(s,r.length+o.length));else{let a=s.length>>1;i.push(new t(s.slice(0,a)),new t(s.slice(a)))}}else i.push(o)}replace(e,A,i){if(!(i instanceof t))return super.replace(e,A,i);[e,A]=KE(this,e,A);let n=MD(this.text,MD(i.text,heA(this.text,0,e)),A),o=this.length+i.length-(A-e);return n.length<=32?new t(n,o):FE.from(t.split(n,[]),o)}sliceString(e,A=this.length,i=` +`){[e,A]=KE(this,e,A);let n="";for(let o=0,r=0;o<=A&&re&&r&&(n+=i),eo&&(n+=s.slice(Math.max(0,e-o),A-o)),o=a+1}return n}flatten(e){for(let A of this.text)e.push(A)}scanIdentical(){return 0}static split(e,A){let i=[],n=-1;for(let o of e)i.push(o),n+=o.length+1,i.length==32&&(A.push(new t(i,n)),i=[],n=-1);return n>-1&&A.push(new t(i,n)),A}},FE=class t extends tn{constructor(e,A){super(),this.children=e,this.length=A,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,A,i,n){for(let o=0;;o++){let r=this.children[o],s=n+r.length,a=i+r.lines-1;if((A?a:s)>=e)return r.lineInner(e,A,i,n);n=s+1,i=a+1}}decompose(e,A,i,n){for(let o=0,r=0;r<=A&&o=r){let c=n&((r<=e?1:0)|(a>=A?2:0));r>=e&&a<=A&&!c?i.push(s):s.decompose(e-r,A-r,i,c)}r=a+1}}replace(e,A,i){if([e,A]=KE(this,e,A),i.lines=o&&A<=s){let a=r.replace(e-o,A-o,i),c=this.lines-r.lines+a.lines;if(a.lines>4&&a.lines>c>>6){let g=this.children.slice();return g[n]=a,new t(g,this.length-(A-e)+i.length)}return super.replace(o,s,a)}o=s+1}return super.replace(e,A,i)}sliceString(e,A=this.length,i=` +`){[e,A]=KE(this,e,A);let n="";for(let o=0,r=0;oe&&o&&(n+=i),er&&(n+=s.sliceString(e-r,A-r,i)),r=a+1}return n}flatten(e){for(let A of this.children)A.flatten(e)}scanIdentical(e,A){if(!(e instanceof t))return 0;let i=0,[n,o,r,s]=A>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;n+=A,o+=A){if(n==r||o==s)return i;let a=this.children[n],c=e.children[o];if(a!=c)return i+a.scanIdentical(c,A);i+=a.length+1}}static from(e,A=e.reduce((i,n)=>i+n.length+1,-1)){let i=0;for(let d of e)i+=d.lines;if(i<32){let d=[];for(let B of e)B.flatten(d);return new gc(d,A)}let n=Math.max(32,i>>5),o=n<<1,r=n>>1,s=[],a=0,c=-1,g=[];function I(d){let B;if(d.lines>o&&d instanceof t)for(let E of d.children)I(E);else d.lines>r&&(a>r||!a)?(C(),s.push(d)):d instanceof gc&&a&&(B=g[g.length-1])instanceof gc&&d.lines+B.lines<=32?(a+=d.lines,c+=d.length+1,g[g.length-1]=new gc(B.text.concat(d.text),B.length+1+d.length)):(a+d.lines>n&&C(),a+=d.lines,c+=d.length+1,g.push(d))}function C(){a!=0&&(s.push(g.length==1?g[0]:t.from(g,c)),c=-1,a=g.length=0)}for(let d of e)I(d);return C(),s.length==1?s[0]:new t(s,A)}};tn.empty=new gc([""],0);function _RA(t){let e=-1;for(let A of t)e+=A.length+1;return e}function MD(t,e,A=0,i=1e9){for(let n=0,o=0,r=!0;o=A&&(a>i&&(s=s.slice(0,i-n)),n0?1:(e instanceof gc?e.text.length:e.children.length)<<1]}nextInner(e,A){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,n=this.nodes[i],o=this.offsets[i],r=o>>1,s=n instanceof gc?n.text.length:n.children.length;if(r==(A>0?s:0)){if(i==0)return this.done=!0,this.value="",this;A>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((o&1)==(A>0?0:1)){if(this.offsets[i]+=A,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(n instanceof gc){let a=n.text[r+(A<0?-1:0)];if(this.offsets[i]+=A,a.length>Math.max(0,e))return this.value=e==0?a:A>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=n.children[r+(A<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=A):(A<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(A>0?1:(a instanceof gc?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},bD=class{constructor(e,A,i){this.value="",this.done=!1,this.cursor=new bC(e,A>i?-1:1),this.pos=A>i?e.length:0,this.from=Math.min(A,i),this.to=Math.max(A,i)}nextInner(e,A){if(A<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,A<0?this.pos-this.to:this.from-this.pos);let i=A<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:n}=this.cursor.next(e);return this.pos+=(n.length+e)*A,this.value=n.length<=i?n:A<0?n.slice(n.length-i):n.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},kD=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:A,lineBreak:i,value:n}=this.inner.next(e);return A&&this.afterBreak?(this.value="",this.afterBreak=!1):A?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(tn.prototype[Symbol.iterator]=function(){return this.iter()},bC.prototype[Symbol.iterator]=bD.prototype[Symbol.iterator]=kD.prototype[Symbol.iterator]=function(){return this});var rN=class{constructor(e,A,i,n){this.from=e,this.to=A,this.number=i,this.text=n}get length(){return this.to-this.from}};function KE(t,e,A){return e=Math.max(0,Math.min(t.length,e)),[e,Math.max(e,Math.min(t.length,A))]}function br(t,e,A=!0,i=!0){return BeA(t,e,A,i)}function GRA(t){return t>=56320&&t<57344}function KRA(t){return t>=55296&&t<56320}function ms(t,e){let A=t.charCodeAt(e);if(!KRA(A)||e+1==t.length)return A;let i=t.charCodeAt(e+1);return GRA(i)?(A-55296<<10)+(i-56320)+65536:A}function V4(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10)+55296,(t&1023)+56320))}function lc(t){return t<65536?1:2}var sN=/\r\n?|\n/,us=function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t}(us||(us={})),R1=class t{constructor(e){this.sections=e}get length(){let e=0;for(let A=0;Ae)return o+(e-n);o+=s}else{if(i!=us.Simple&&c>=e&&(i==us.TrackDel&&ne||i==us.TrackBefore&&ne))return null;if(c>e||c==e&&A<0&&!s)return e==n||A<0?o:o+a;o+=a}n=c}if(e>n)throw new RangeError(`Position ${e} is out of range for changeset of length ${n}`);return o}touchesRange(e,A=e){for(let i=0,n=0;i=0&&n<=A&&s>=e)return nA?"cover":!0;n=s}return!1}toString(){let e="";for(let A=0;A=0?":"+n:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(A=>typeof A!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new t(e)}static create(e){return new t(e)}},hs=class t extends R1{constructor(e,A){super(e),this.inserted=A}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return aN(this,(A,i,n,o,r)=>e=e.replace(n,n+(i-A),r),!1),e}mapDesc(e,A=!1){return cN(this,e,A,!0)}invert(e){let A=this.sections.slice(),i=[];for(let n=0,o=0;n=0){A[n]=s,A[n+1]=r;let a=n>>1;for(;i.length0&&S1(i,A,o.text),o.forward(g),s+=g}let c=e[r++];for(;s>1].toJSON()))}return e}static of(e,A,i){let n=[],o=[],r=0,s=null;function a(g=!1){if(!g&&!n.length)return;rC||I<0||C>A)throw new RangeError(`Invalid change range ${I} to ${C} (in doc of length ${A})`);let B=d?typeof d=="string"?tn.of(d.split(i||sN)):d:tn.empty,E=B.length;if(I==C&&E==0)return;Ir&&Gs(n,I-r,-1),Gs(n,C-I,E),S1(o,n,B),r=C}}return c(e),a(!s),s}static empty(e){return new t(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let A=[],i=[];for(let n=0;ns&&typeof r!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(o.length==1)A.push(o[0],0);else{for(;i.length=0&&A<=0&&A==t[n+1]?t[n]+=e:n>=0&&e==0&&t[n]==0?t[n+1]+=A:i?(t[n]+=e,t[n+1]+=A):t.push(e,A)}function S1(t,e,A){if(A.length==0)return;let i=e.length-2>>1;if(i>1])),!(A||r==t.sections.length||t.sections[r+1]<0);)s=t.sections[r++],a=t.sections[r++];e(n,c,o,g,I),n=c,o=g}}}function cN(t,e,A,i=!1){let n=[],o=i?[]:null,r=new kC(t),s=new kC(e);for(let a=-1;;){if(r.done&&s.len||s.done&&r.len)throw new Error("Mismatched change set lengths");if(r.ins==-1&&s.ins==-1){let c=Math.min(r.len,s.len);Gs(n,c,-1),r.forward(c),s.forward(c)}else if(s.ins>=0&&(r.ins<0||a==r.i||r.off==0&&(s.len=0&&a=0){let c=0,g=r.len;for(;g;)if(s.ins==-1){let I=Math.min(g,s.len);c+=I,g-=I,s.forward(I)}else if(s.ins==0&&s.lena||r.ins>=0&&r.len>a)&&(s||i.length>c),o.forward2(a),r.forward(a)}}}}var kC=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return A>=e.length?tn.empty:e[A]}textBit(e){let{inserted:A}=this.set,i=this.i-2>>1;return i>=A.length&&!e?tn.empty:A[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},NE=class t{constructor(e,A,i){this.from=e,this.to=A,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,A=-1){let i,n;return this.empty?i=n=e.mapPos(this.from,A):(i=e.mapPos(this.from,1),n=e.mapPos(this.to,-1)),i==this.from&&n==this.to?this:new t(i,n,this.flags)}extend(e,A=e){if(e<=this.anchor&&A>=this.anchor)return ae.range(e,A);let i=Math.abs(e-this.anchor)>Math.abs(A-this.anchor)?e:A;return ae.range(this.anchor,i)}eq(e,A=!1){return this.anchor==e.anchor&&this.head==e.head&&(!A||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return ae.range(e.anchor,e.head)}static create(e,A,i){return new t(e,A,i)}},ae=class t{constructor(e,A){this.ranges=e,this.mainIndex=A}map(e,A=-1){return e.empty?this:t.create(this.ranges.map(i=>i.map(e,A)),this.mainIndex)}eq(e,A=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;ie.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new t(e.ranges.map(A=>NE.fromJSON(A)),e.main)}static single(e,A=e){return new t([t.range(e,A)],0)}static create(e,A=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,n=0;ne?8:0)|o)}static normalized(e,A=0){let i=e[A];e.sort((n,o)=>n.from-o.from),A=e.indexOf(i);for(let n=1;no.head?t.range(a,s):t.range(s,a))}}return new t(e,A)}};function MeA(t,e){for(let A of t.ranges)if(A.to>e)throw new RangeError("Selection points outside of document")}var uN=0,qe=class t{constructor(e,A,i,n,o){this.combine=e,this.compareInput=A,this.compare=i,this.isStatic=n,this.id=uN++,this.default=e([]),this.extensions=typeof o=="function"?o(this):o}get reader(){return this}static define(e={}){return new t(e.combine||(A=>A),e.compareInput||((A,i)=>A===i),e.compare||(e.combine?(A,i)=>A===i:hN),!!e.static,e.enables)}of(e){return new _E([],this,0,e)}compute(e,A){if(this.isStatic)throw new Error("Can't compute a static facet");return new _E(e,this,1,A)}computeN(e,A){if(this.isStatic)throw new Error("Can't compute a static facet");return new _E(e,this,2,A)}from(e,A){return A||(A=i=>i),this.compute([e],i=>A(i.field(e)))}};function hN(t,e){return t==e||t.length==e.length&&t.every((A,i)=>A===e[i])}var _E=class{constructor(e,A,i,n){this.dependencies=e,this.facet=A,this.type=i,this.value=n,this.id=uN++}dynamicSlot(e){var A;let i=this.value,n=this.facet.compareInput,o=this.id,r=e[o]>>1,s=this.type==2,a=!1,c=!1,g=[];for(let I of this.dependencies)I=="doc"?a=!0:I=="selection"?c=!0:(((A=e[I.id])!==null&&A!==void 0?A:1)&1)==0&&g.push(e[I.id]);return{create(I){return I.values[r]=i(I),1},update(I,C){if(a&&C.docChanged||c&&(C.docChanged||C.selection)||gN(I,g)){let d=i(I);if(s?!feA(d,I.values[r],n):!n(d,I.values[r]))return I.values[r]=d,1}return 0},reconfigure:(I,C)=>{let d,B=C.config.address[o];if(B!=null){let E=LD(C,B);if(this.dependencies.every(u=>u instanceof qe?C.facet(u)===I.facet(u):u instanceof tr?C.field(u,!1)==I.field(u,!1):!0)||(s?feA(d=i(I),E,n):n(d=i(I),E)))return I.values[r]=E,0}else d=i(I);return I.values[r]=d,1}}}};function feA(t,e,A){if(t.length!=e.length)return!1;for(let i=0;it[a.id]),n=A.map(a=>a.type),o=i.filter(a=>!(a&1)),r=t[e.id]>>1;function s(a){let c=[];for(let g=0;gi===n),e);return e.provide&&(A.provides=e.provide(A)),A}create(e){let A=e.facet(wD).find(i=>i.field==this);return(A?.create||this.createF)(e)}slot(e){let A=e[this.id]>>1;return{create:i=>(i.values[A]=this.create(i),1),update:(i,n)=>{let o=i.values[A],r=this.updateF(o,n);return this.compareF(o,r)?0:(i.values[A]=r,1)},reconfigure:(i,n)=>{let o=i.facet(wD),r=n.facet(wD),s;return(s=o.find(a=>a.field==this))&&s!=r.find(a=>a.field==this)?(i.values[A]=s.create(i),1):n.config.address[this.id]!=null?(i.values[A]=n.field(this),0):(i.values[A]=this.create(i),1)}}}init(e){return[this,wD.of({field:this,create:e})]}get extension(){return this}},vC={lowest:4,low:3,default:2,high:1,highest:0};function O4(t){return e=>new SD(e,t)}var Ng={highest:O4(vC.highest),high:O4(vC.high),default:O4(vC.default),low:O4(vC.low),lowest:O4(vC.lowest)},SD=class{constructor(e,A){this.inner=e,this.prec=A}},Jl=class t{of(e){return new P4(this,e)}reconfigure(e){return t.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},P4=class{constructor(e,A){this.compartment=e,this.inner=A}},RD=class t{constructor(e,A,i,n,o,r){for(this.base=e,this.compartments=A,this.dynamicSlots=i,this.address=n,this.staticValues=o,this.facets=r,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,A,i){let n=[],o=Object.create(null),r=new Map;for(let C of JRA(e,A,r))C instanceof tr?n.push(C):(o[C.facet.id]||(o[C.facet.id]=[])).push(C);let s=Object.create(null),a=[],c=[];for(let C of n)s[C.id]=c.length<<1,c.push(d=>C.slot(d));let g=i?.config.facets;for(let C in o){let d=o[C],B=d[0].facet,E=g&&g[C]||[];if(d.every(u=>u.type==0))if(s[B.id]=a.length<<1|1,hN(E,d))a.push(i.facet(B));else{let u=B.combine(d.map(h=>h.value));a.push(i&&B.compare(u,i.facet(B))?i.facet(B):u)}else{for(let u of d)u.type==0?(s[u.id]=a.length<<1|1,a.push(u.value)):(s[u.id]=c.length<<1,c.push(h=>u.dynamicSlot(h)));s[B.id]=c.length<<1,c.push(u=>URA(u,B,d))}}let I=c.map(C=>C(s));return new t(e,r,I,s,a,o)}};function JRA(t,e,A){let i=[[],[],[],[],[]],n=new Map;function o(r,s){let a=n.get(r);if(a!=null){if(a<=s)return;let c=i[a].indexOf(r);c>-1&&i[a].splice(c,1),r instanceof P4&&A.delete(r.compartment)}if(n.set(r,s),Array.isArray(r))for(let c of r)o(c,s);else if(r instanceof P4){if(A.has(r.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(r.compartment)||r.inner;A.set(r.compartment,c),o(c,s)}else if(r instanceof SD)o(r.inner,r.prec);else if(r instanceof tr)i[s].push(r),r.provides&&o(r.provides,s);else if(r instanceof _E)i[s].push(r),r.facet.extensions&&o(r.facet.extensions,vC.default);else{let c=r.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${r}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);o(c,s)}}return o(t,vC.default),i.reduce((r,s)=>r.concat(s))}function z4(t,e){if(e&1)return 2;let A=e>>1,i=t.status[A];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;t.status[A]=4;let n=t.computeSlot(t,t.config.dynamicSlots[A]);return t.status[A]=2|n}function LD(t,e){return e&1?t.config.staticValues[e>>1]:t.values[e>>1]}var meA=qe.define(),nN=qe.define({combine:t=>t.some(e=>e),static:!0}),beA=qe.define({combine:t=>t.length?t[0]:void 0,static:!0}),keA=qe.define(),SeA=qe.define(),ReA=qe.define(),peA=qe.define({combine:t=>t.length?t[0]:!1}),Fa=class{constructor(e,A){this.type=e,this.value=A}static define(){return new lN}},lN=class{of(e){return new Fa(this,e)}},IN=class{constructor(e){this.map=e}of(e){return new Ki(this,e)}},Ki=(()=>{class t{constructor(A,i){this.type=A,this.value=i}map(A){let i=this.type.map(this.value,A);return i===void 0?void 0:i==this.value?this:new t(this.type,i)}is(A){return this.type==A}static define(A={}){return new IN(A.map||(i=>i))}static mapEffects(A,i){if(!A.length)return A;let n=[];for(let o of A){let r=o.map(i);r&&n.push(r)}return n}}return t.reconfigure=t.define(),t.appendConfig=t.define(),t})(),Ul=(()=>{class t{constructor(A,i,n,o,r,s){this.startState=A,this.changes=i,this.selection=n,this.effects=o,this.annotations=r,this.scrollIntoView=s,this._doc=null,this._state=null,n&&MeA(n,i.newLength),r.some(a=>a.type==t.time)||(this.annotations=r.concat(t.time.of(Date.now())))}static create(A,i,n,o,r,s){return new t(A,i,n,o,r,s)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(A){for(let i of this.annotations)if(i.type==A)return i.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(A){let i=this.annotation(t.userEvent);return!!(i&&(i==A||i.length>A.length&&i.slice(0,A.length)==A&&i[A.length]=="."))}}return t.time=Fa.define(),t.userEvent=Fa.define(),t.addToHistory=Fa.define(),t.remote=Fa.define(),t})();function YRA(t,e){let A=[];for(let i=0,n=0;;){let o,r;if(i=t[i]))o=t[i++],r=t[i++];else if(n=0;n--){let o=i[n](t);o instanceof Ul?t=o:Array.isArray(o)&&o.length==1&&o[0]instanceof Ul?t=o[0]:t=xeA(e,GE(o),!1)}return t}function HRA(t){let e=t.startState,A=e.facet(ReA),i=t;for(let n=A.length-1;n>=0;n--){let o=A[n](t);o&&Object.keys(o).length&&(i=LeA(i,CN(e,o,t.changes.newLength),!0))}return i==t?t:Ul.create(e,t.changes,t.selection,i.effects,i.annotations,i.scrollIntoView)}var ORA=[];function GE(t){return t==null?ORA:Array.isArray(t)?t:[t]}var lo=function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t}(lo||(lo={})),zRA=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,dN;try{dN=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function PRA(t){if(dN)return dN.test(t);for(let e=0;e"\x80"&&(A.toUpperCase()!=A.toLowerCase()||zRA.test(A)))return!0}return!1}function jRA(t){return e=>{if(!/\S/.test(e))return lo.Space;if(PRA(e))return lo.Word;for(let A=0;A-1)return lo.Word;return lo.Other}}var Dr=(()=>{class t{constructor(A,i,n,o,r,s){this.config=A,this.doc=i,this.selection=n,this.values=o,this.status=A.statusTemplate.slice(),this.computeSlot=r,s&&(s._state=this);for(let a=0;ao.set(g,c)),i=null),o.set(a.value.compartment,a.value.extension)):a.is(Ki.reconfigure)?(i=null,n=a.value):a.is(Ki.appendConfig)&&(i=null,n=GE(n).concat(a.value));let r;i?r=A.startState.values.slice():(i=RD.resolve(n,o,this),r=new t(i,this.doc,this.selection,i.dynamicSlots.map(()=>null),(c,g)=>g.reconfigure(c,this),null).values);let s=A.startState.facet(nN)?A.newSelection:A.newSelection.asSingle();new t(i,A.newDoc,s,r,(a,c)=>c.update(a,A),A)}replaceSelection(A){return typeof A=="string"&&(A=this.toText(A)),this.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:A},range:ae.cursor(i.from+A.length)}))}changeByRange(A){let i=this.selection,n=A(i.ranges[0]),o=this.changes(n.changes),r=[n.range],s=GE(n.effects);for(let a=1;as.spec.fromJSON(a,c)))}}return t.create({doc:A.doc,selection:ae.fromJSON(A.selection),extensions:i.extensions?o.concat([i.extensions]):o})}static create(A={}){let i=RD.resolve(A.extensions||[],new Map),n=A.doc instanceof tn?A.doc:tn.of((A.doc||"").split(i.staticFacet(t.lineSeparator)||sN)),o=A.selection?A.selection instanceof ae?A.selection:ae.single(A.selection.anchor,A.selection.head):ae.single(0);return MeA(o,n.length),i.staticFacet(nN)||(o=o.asSingle()),new t(i,n,o,i.dynamicSlots.map(()=>null),(r,s)=>s.create(r),null)}get tabSize(){return this.facet(t.tabSize)}get lineBreak(){return this.facet(t.lineSeparator)||` +`}get readOnly(){return this.facet(peA)}phrase(A,...i){for(let n of this.facet(t.phrases))if(Object.prototype.hasOwnProperty.call(n,A)){A=n[A];break}return i.length&&(A=A.replace(/\$(\$|\d*)/g,(n,o)=>{if(o=="$")return"$";let r=+(o||1);return!r||r>i.length?n:i[r-1]})),A}languageDataAt(A,i,n=-1){let o=[];for(let r of this.facet(meA))for(let s of r(this,i,n))Object.prototype.hasOwnProperty.call(s,A)&&o.push(s[A]);return o}charCategorizer(A){return jRA(this.languageDataAt("wordChars",A).join(""))}wordAt(A){let{text:i,from:n,length:o}=this.doc.lineAt(A),r=this.charCategorizer(A),s=A-n,a=A-n;for(;s>0;){let c=br(i,s,!1);if(r(i.slice(c,s))!=lo.Word)break;s=c}for(;ae.length?e[0]:4}),t.lineSeparator=beA,t.readOnly=peA,t.phrases=qe.define({compare(e,A){let i=Object.keys(e),n=Object.keys(A);return i.length==n.length&&i.every(o=>e[o]==A[o])}}),t.languageData=meA,t.changeFilter=keA,t.transactionFilter=SeA,t.transactionExtender=ReA,t})();Jl.reconfigure=Ki.define();function ts(t,e,A={}){let i={};for(let n of t)for(let o of Object.keys(n)){let r=n[o],s=i[o];if(s===void 0)i[o]=r;else if(!(s===r||r===void 0))if(Object.hasOwnProperty.call(A,o))i[o]=A[o](s,r);else throw new Error("Config merge conflict for field "+o)}for(let n in e)i[n]===void 0&&(i[n]=e[n]);return i}var xg=class{eq(e){return this==e}range(e,A=e){return j4.create(e,A,this)}};xg.prototype.startSide=xg.prototype.endSide=0;xg.prototype.point=!1;xg.prototype.mapMode=us.TrackDel;var j4=class t{constructor(e,A,i){this.from=e,this.to=A,this.value=i}static create(e,A,i){return new t(e,A,i)}};function BN(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}var EN=class t{constructor(e,A,i,n){this.from=e,this.to=A,this.value=i,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(e,A,i,n=0){let o=i?this.to:this.from;for(let r=n,s=o.length;;){if(r==s)return r;let a=r+s>>1,c=o[a]-e||(i?this.value[a].endSide:this.value[a].startSide)-A;if(a==r)return c>=0?r:s;c>=0?s=a:r=a+1}}between(e,A,i,n){for(let o=this.findIndex(A,-1e9,!0),r=this.findIndex(i,1e9,!1,o);od||C==d&&c.startSide>0&&c.endSide<=0)continue;(d-C||c.endSide-c.startSide)<0||(r<0&&(r=C),c.point&&(s=Math.max(s,d-C)),i.push(c),n.push(C-r),o.push(d-r))}return{mapped:i.length?new t(n,o,i,s):null,pos:r}}},Io=(()=>{class t{constructor(A,i,n,o){this.chunkPos=A,this.chunk=i,this.nextLayer=n,this.maxPoint=o}static create(A,i,n,o){return new t(A,i,n,o)}get length(){let A=this.chunk.length-1;return A<0?0:Math.max(this.chunkEnd(A),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let A=this.nextLayer.size;for(let i of this.chunk)A+=i.value.length;return A}chunkEnd(A){return this.chunkPos[A]+this.chunk[A].length}update(A){let{add:i=[],sort:n=!1,filterFrom:o=0,filterTo:r=this.length}=A,s=A.filter;if(i.length==0&&!s)return this;if(n&&(i=i.slice().sort(BN)),this.isEmpty)return i.length?t.of(i):this;let a=new xD(this,null,-1).goto(0),c=0,g=[],I=new fs;for(;a.value||c=0){let C=i[c++];I.addInner(C.from,C.to,C.value)||g.push(C)}else a.rangeIndex==1&&a.chunkIndexthis.chunkEnd(a.chunkIndex)||ra.to||r=r&&A<=r+s.length&&s.between(r,A-r,i-r,n)===!1)return}this.nextLayer.between(A,i,n)}}iter(A=0){return q4.from([this]).goto(A)}get isEmpty(){return this.nextLayer==this}static iter(A,i=0){return q4.from(A).goto(i)}static compare(A,i,n,o,r=-1){let s=A.filter(C=>C.maxPoint>0||!C.isEmpty&&C.maxPoint>=r),a=i.filter(C=>C.maxPoint>0||!C.isEmpty&&C.maxPoint>=r),c=DeA(s,a,n),g=new MC(s,c,r),I=new MC(a,c,r);n.iterGaps((C,d,B)=>weA(g,C,I,d,B,o)),n.empty&&n.length==0&&weA(g,0,I,0,0,o)}static eq(A,i,n=0,o){o==null&&(o=999999999);let r=A.filter(I=>!I.isEmpty&&i.indexOf(I)<0),s=i.filter(I=>!I.isEmpty&&A.indexOf(I)<0);if(r.length!=s.length)return!1;if(!r.length)return!0;let a=DeA(r,s),c=new MC(r,a,0).goto(n),g=new MC(s,a,0).goto(n);for(;;){if(c.to!=g.to||!QN(c.active,g.active)||c.point&&(!g.point||!c.point.eq(g.point)))return!1;if(c.to>o)return!0;c.next(),g.next()}}static spans(A,i,n,o,r=-1){let s=new MC(A,null,r).goto(i),a=i,c=s.openStart;for(;;){let g=Math.min(s.to,n);if(s.point){let I=s.activeForPoint(s.to),C=s.pointFroma&&(o.span(a,g,s.active,c),c=s.openEnd(g));if(s.to>n)return c+(s.point&&s.to>n?1:0);a=s.to,s.next()}}static of(A,i=!1){let n=new fs;for(let o of A instanceof j4?[A]:i?qRA(A):A)n.add(o.from,o.to,o.value);return n.finish()}static join(A){if(!A.length)return t.empty;let i=A[A.length-1];for(let n=A.length-2;n>=0;n--)for(let o=A[n];o!=t.empty;o=o.nextLayer)i=new t(o.chunkPos,o.chunk,i,Math.max(o.maxPoint,i.maxPoint));return i}}return t.empty=new t([],[],null,-1),t})();function qRA(t){if(t.length>1)for(let e=t[0],A=1;A0)return t.slice().sort(BN);e=i}return t}Io.empty.nextLayer=Io.empty;var fs=class t{finishChunk(e){this.chunks.push(new EN(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,A,i){this.addInner(e,A,i)||(this.nextLayer||(this.nextLayer=new t)).add(e,A,i)}addInner(e,A,i){let n=e-this.lastTo||i.startSide-this.last.endSide;if(n<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return n<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(A-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=A,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,A-e)),!0)}addChunk(e,A){if((e-this.lastTo||A.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,A.maxPoint),this.chunks.push(A),this.chunkPos.push(e);let i=A.value.length-1;return this.last=A.value[i],this.lastFrom=A.from[i]+e,this.lastTo=A.to[i]+e,!0}finish(){return this.finishInner(Io.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let A=Io.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,A}};function DeA(t,e,A){let i=new Map;for(let o of t)for(let r=0;r=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&n.push(new xD(r,A,i,o));return n.length==1?n[0]:new t(n)}get startSide(){return this.value?this.value.startSide:0}goto(e,A=-1e9){for(let i of this.heap)i.goto(e,A);for(let i=this.heap.length>>1;i>=0;i--)oN(this.heap,i);return this.next(),this}forward(e,A){for(let i of this.heap)i.forward(e,A);for(let i=this.heap.length>>1;i>=0;i--)oN(this.heap,i);(this.to-e||this.value.endSide-A)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),oN(this.heap,0)}}};function oN(t,e){for(let A=t[e];;){let i=(e<<1)+1;if(i>=t.length)break;let n=t[i];if(i+1=0&&(n=t[i+1],i++),A.compare(n)<0)break;t[i]=A,t[e]=n,e=i}}var MC=class{constructor(e,A,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=q4.from(e,A,i)}goto(e,A=-1e9){return this.cursor.goto(e,A),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=A,this.openStart=-1,this.next(),this}forward(e,A){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-A)<0;)this.removeActive(this.minActive);this.cursor.forward(e,A)}removeActive(e){yD(this.active,e),yD(this.activeTo,e),yD(this.activeRank,e),this.minActive=yeA(this.active,this.activeTo)}addActive(e){let A=0,{value:i,to:n,rank:o}=this.cursor;for(;A0;)A++;vD(this.active,A,i),vD(this.activeTo,A,n),vD(this.activeRank,A,o),e&&vD(e,A,this.cursor.from),this.minActive=yeA(this.active,this.activeTo)}next(){let e=this.to,A=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let n=this.minActive;if(n>-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>e){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),i&&yD(i,n)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let o=this.cursor.value;if(!o.point)this.addActive(i),this.cursor.next();else if(A&&this.cursor.to==this.to&&this.cursor.from=0&&i[n]=0&&!(this.activeRank[i]e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&A.push(this.active[i]);return A.reverse()}openEnd(e){let A=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)A++;return A}};function weA(t,e,A,i,n,o){t.goto(e),A.goto(i);let r=i+n,s=i,a=i-e;for(;;){let c=t.to+a-A.to,g=c||t.endSide-A.endSide,I=g<0?t.to+a:A.to,C=Math.min(I,r);if(t.point||A.point?t.point&&A.point&&(t.point==A.point||t.point.eq(A.point))&&QN(t.activeForPoint(t.to),A.activeForPoint(A.to))||o.comparePoint(s,C,t.point,A.point):C>s&&!QN(t.active,A.active)&&o.compareRange(s,C,t.active,A.active),I>r)break;(c||t.openEnd!=A.openEnd)&&o.boundChange&&o.boundChange(I),s=I,g<=0&&t.next(),g>=0&&A.next()}}function QN(t,e){if(t.length!=e.length)return!1;for(let A=0;A=e;i--)t[i+1]=t[i];t[e]=A}function yeA(t,e){let A=-1,i=1e9;for(let n=0;n=e)return n;if(n==t.length)break;o+=t.charCodeAt(n)==9?A-o%A:1,n=br(t,n)}return i===!0?-1:t.length}var fN="\u037C",NeA=typeof Symbol>"u"?"__"+fN:Symbol.for(fN),mN=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),FeA=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},jc=class{constructor(e,A){this.rules=[];let{finish:i}=A||{};function n(r){return/^@/.test(r)?[r]:r.split(/,\s*/)}function o(r,s,a,c){let g=[],I=/^@(\w+)\b/.exec(r[0]),C=I&&I[1]=="keyframes";if(I&&s==null)return a.push(r[0]+";");for(let d in s){let B=s[d];if(/&/.test(d))o(d.split(/,\s*/).map(E=>r.map(u=>E.replace(/&/,u))).reduce((E,u)=>E.concat(u)),B,a);else if(B&&typeof B=="object"){if(!I)throw new RangeError("The value of a property ("+d+") should be a primitive value.");o(n(d),B,g,C)}else B!=null&&g.push(d.replace(/_.*/,"").replace(/[A-Z]/g,E=>"-"+E.toLowerCase())+": "+B+";")}(g.length||C)&&a.push((i&&!I&&!c?r.map(i):r).join(", ")+" {"+g.join(" ")+"}")}for(let r in e)o(n(r),e[r],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let e=FeA[NeA]||1;return FeA[NeA]=e+1,fN+e.toString(36)}static mount(e,A,i){let n=e[mN],o=i&&i.nonce;n?o&&n.setNonce(o):n=new pN(e,o),n.mount(Array.isArray(A)?A:[A],e)}},_eA=new Map,pN=class{constructor(e,A){let i=e.ownerDocument||e,n=i.defaultView;if(!e.head&&e.adoptedStyleSheets&&n.CSSStyleSheet){let o=_eA.get(i);if(o)return e[mN]=o;this.sheet=new n.CSSStyleSheet,_eA.set(i,this)}else this.styleTag=i.createElement("style"),A&&this.styleTag.setAttribute("nonce",A);this.modules=[],e[mN]=this}mount(e,A){let i=this.sheet,n=0,o=0;for(let r=0;r-1&&(this.modules.splice(a,1),o--,a=-1),a==-1){if(this.modules.splice(o++,0,s),i)for(let c=0;c",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},VRA=typeof navigator<"u"&&/Mac/.test(navigator.platform),ZRA=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(kr=0;kr<10;kr++)z0[48+kr]=z0[96+kr]=String(kr);var kr;for(kr=1;kr<=24;kr++)z0[kr+111]="F"+kr;var kr;for(kr=65;kr<=90;kr++)z0[kr]=String.fromCharCode(kr+32),UE[kr]=String.fromCharCode(kr);var kr;for(FD in z0)UE.hasOwnProperty(FD)||(UE[FD]=z0[FD]);var FD;function GeA(t){var e=VRA&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||ZRA&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",A=!e&&t.key||(t.shiftKey?UE:z0)[t.keyCode]||t.key||"Unidentified";return A=="Esc"&&(A="Escape"),A=="Del"&&(A="Delete"),A=="Left"&&(A="ArrowLeft"),A=="Up"&&(A="ArrowUp"),A=="Right"&&(A="ArrowRight"),A=="Down"&&(A="ArrowDown"),A}function _n(){var t=arguments[0];typeof t=="string"&&(t=document.createElement(t));var e=1,A=arguments[1];if(A&&typeof A=="object"&&A.nodeType==null&&!Array.isArray(A)){for(var i in A)if(Object.prototype.hasOwnProperty.call(A,i)){var n=A[i];typeof n=="string"?t.setAttribute(i,n):n!=null&&(t[i]=n)}e++}for(;e.995&&A<1.005||!isFinite(A)||Math.abs(e.width-t.offsetWidth)<1)&&(A=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(e.height-t.offsetHeight)<1)&&(i=1),{scaleX:A,scaleY:i}}function XRA(t,e,A,i,n,o,r,s){let a=t.ownerDocument,c=a.defaultView||window;for(let g=t,I=!1;g&&!I;)if(g.nodeType==1){let C,d=g==a.body,B=1,E=1;if(d)C=WRA(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(g).position)&&(I=!0),g.scrollHeight<=g.clientHeight&&g.scrollWidth<=g.clientWidth){g=g.assignedSlot||g.parentNode;continue}let w=g.getBoundingClientRect();({scaleX:B,scaleY:E}=StA(g,w)),C={left:w.left,right:w.left+g.clientWidth*B,top:w.top,bottom:w.top+g.clientHeight*E}}let u=0,h=0;if(n=="nearest")e.top0&&e.bottom>C.bottom+h&&(h=e.bottom-C.bottom+r)):e.bottom>C.bottom&&(h=e.bottom-C.bottom+r,A<0&&e.top-h0&&e.right>C.right+u&&(u=e.right-C.right+o)):e.right>C.right&&(u=e.right-C.right+o,A<0&&e.leftC.bottom||e.leftC.right)&&(e={left:Math.max(e.left,C.left),right:Math.min(e.right,C.right),top:Math.max(e.top,C.top),bottom:Math.min(e.bottom,C.bottom)}),g=g.assignedSlot||g.parentNode}else if(g.nodeType==11)g=g.host;else break}function $RA(t){let e=t.ownerDocument,A,i;for(let n=t.parentNode;n&&!(n==e.body||A&&i);)if(n.nodeType==1)!i&&n.scrollHeight>n.clientHeight&&(i=n),!A&&n.scrollWidth>n.clientWidth&&(A=n),n=n.assignedSlot||n.parentNode;else if(n.nodeType==11)n=n.host;else break;return{x:A,y:i}}var xN=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:A,focusNode:i}=e;this.set(A,Math.min(e.anchorOffset,A?zl(A):0),i,Math.min(e.focusOffset,i?zl(i):0))}set(e,A,i,n){this.anchorNode=e,this.anchorOffset=A,this.focusNode=i,this.focusOffset=n}},JE=null;function RtA(t){if(t.setActive)return t.setActive();if(JE)return t.focus(JE);let e=[];for(let A=t;A&&(e.push(A,A.scrollTop,A.scrollLeft),A!=A.ownerDocument);A=A.parentNode);if(t.focus(JE==null?{get preventScroll(){return JE={preventScroll:!0},!0}}:void 0),!JE){JE=!1;for(let A=0;AMath.max(1,t.scrollHeight-t.clientHeight-4)}function NtA(t,e){for(let A=t,i=e;;){if(A.nodeType==3&&i>0)return{node:A,offset:i};if(A.nodeType==1&&i>0){if(A.contentEditable=="false")return null;A=A.childNodes[i-1],i=zl(A)}else if(A.parentNode&&!XD(A))i=RC(A),A=A.parentNode;else return null}}function FtA(t,e){for(let A=t,i=e;;){if(A.nodeType==3&&iA)return I.domBoundsAround(e,A,c);if(C>=e&&n==-1&&(n=a,o=c),c>A&&I.dom.parentNode==this.dom){r=a,s=g;break}g=C,c=C+I.breakAfter}return{from:o,to:s<0?i+this.length:s,startDOM:(n?this.children[n-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:r=0?this.children[r].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let A=this.parent;A;A=A.parent){if(e&&(A.flags|=2),A.flags&1)return;A.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.flags&7&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let A=e.parent;if(!A)return e;e=A}}replaceChildren(e,A,i=uF){this.markDirty();for(let n=e;nthis.pos||e==this.pos&&(A>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}};function _tA(t,e,A,i,n,o,r,s,a){let{children:c}=t,g=c.length?c[e]:null,I=o.length?o[o.length-1]:null,C=I?I.breakAfter:r;if(!(e==i&&g&&!r&&!C&&o.length<2&&g.merge(A,n,o.length?I:null,A==0,s,a))){if(i0&&(!r&&o.length&&g.merge(A,g.length,o[0],!1,s,0)?g.breakAfter=o.shift().breakAfter:(A2),it={mac:OeA||/Mac/.test(_a.platform),windows:/Win/.test(_a.platform),linux:/Linux|X11/.test(_a.platform),ie:dw,ie_version:KtA?NN.documentMode||6:_N?+_N[1]:FN?+FN[1]:0,gecko:TeA,gecko_version:TeA?+(/Firefox\/(\d+)/.exec(_a.userAgent)||[0,0])[1]:0,chrome:!!DN,chrome_version:DN?+DN[1]:0,ios:OeA,android:/Android\b/.test(_a.userAgent),webkit:HeA,safari:UtA,webkit_version:HeA?+(/\bAppleWebKit\/(\d+)/.exec(_a.userAgent)||[0,0])[1]:0,tabSize:NN.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"},tLA=256,Pl=class t extends No{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,A){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(A&&A.node==this.dom&&(A.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,A,i){return this.flags&8||i&&(!(i instanceof t)||this.length-(A-e)+i.length>tLA||i.flags&8)?!1:(this.text=this.text.slice(0,e)+(i?i.text:"")+this.text.slice(A),this.markDirty(),!0)}split(e){let A=new t(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),A.flags|=this.flags&8,A}localPosFromDOM(e,A){return e==this.dom?A:A?this.text.length:0}domAtPos(e){return new ia(this.dom,e)}domBoundsAround(e,A,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,A){return iLA(this.dom,e,A)}},N1=class t extends No{constructor(e,A=[],i=0){super(),this.mark=e,this.children=A,this.length=i;for(let n of A)n.setParent(this)}setAttrs(e){if(LtA(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let A in this.mark.attrs)e.setAttribute(A,this.mark.attrs[A]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!((this.flags|e.flags)&8)}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,A){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,A)}merge(e,A,i,n,o,r){return i&&(!(i instanceof t&&i.mark.eq(this.mark))||e&&o<=0||Ae&&A.push(i=e&&(n=o),i=a,o++}let r=this.length-e;return this.length=e,n>-1&&(this.children.length=n,this.markDirty()),new t(this.mark,A,r)}domAtPos(e){return JtA(this,e)}coordsAt(e,A){return TtA(this,e,A)}};function iLA(t,e,A){let i=t.nodeValue.length;e>i&&(e=i);let n=e,o=e,r=0;e==0&&A<0||e==i&&A>=0?it.chrome||it.gecko||(e?(n--,r=1):o=0)?0:s.length-1];return it.safari&&!r&&a.width==0&&(a=Array.prototype.find.call(s,c=>c.width)||a),r?Cw(a,r<0):a||null}var g3=class t extends No{static create(e,A,i){return new t(e,A,i)}constructor(e,A,i){super(),this.widget=e,this.length=A,this.side=i,this.prevWidget=null}split(e){let A=t.create(this.widget,this.length-e,this.side);return this.length-=e,A}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(e,A,i,n,o,r){return i&&(!(i instanceof t)||!this.widget.compare(i.widget)||e>0&&o<=0||A0)?ia.before(this.dom):ia.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,A){let i=this.widget.coordsAt(this.dom,e,A);if(i)return i;let n=this.dom.getClientRects(),o=null;if(!n.length)return null;let r=this.side?this.side<0:e>0;for(let s=r?n.length-1:0;o=n[s],!(e>0?s==0:s==n.length-1||o.top0?ia.before(this.dom):ia.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return tn.empty}get isHidden(){return!0}};Pl.prototype.children=g3.prototype.children=l3.prototype.children=uF;function JtA(t,e){let A=t.dom,{children:i}=t,n=0;for(let o=0;no&&e0;o--){let r=i[o-1];if(r.dom.parentNode==A)return r.domAtPos(r.length)}for(let o=n;o0&&e instanceof N1&&n.length&&(i=n[n.length-1])instanceof N1&&i.mark.eq(e.mark)?YtA(i,e.children[0],A-1):(n.push(e),e.setParent(t)),t.length+=e.length}function TtA(t,e,A){let i=null,n=-1,o=null,r=-1;function s(c,g){for(let I=0,C=0;I=g&&(d.children.length?s(d,g-C):(!o||o.isHidden&&(A>0||oLA(o,d)))&&(B>g||C==B&&d.getSide()>0)?(o=d,r=g-C):(C-1?1:0)!=n.length-(A&&n.indexOf(A)>-1?1:0))return!1;for(let o of i)if(o!=A&&(n.indexOf(o)==-1||t[o]!==e[o]))return!1;return!0}function KN(t,e,A){let i=!1;if(e)for(let n in e)A&&n in A||(i=!0,n=="style"?t.style.cssText="":t.removeAttribute(n));if(A)for(let n in A)e&&e[n]==A[n]||(i=!0,n=="style"?t.style.cssText=A[n]:t.setAttribute(n,A[n]));return i}function rLA(t){let e=Object.create(null);for(let A=0;A0?3e8:-4e8:A>0?1e8:-1e8,new F1(e,A,A,i,e.widget||null,!1)}static replace(e){let A=!!e.block,i,n;if(e.isBlockGap)i=-5e8,n=4e8;else{let{start:o,end:r}=HtA(e,A);i=(o?A?-3e8:-1:5e8)-1,n=(r?A?2e8:1:-6e8)+1}return new F1(e,i,n,A,e.widget||null,!0)}static line(e){return new C3(e)}static set(e,A=!1){return Io.of(e,A)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};ht.none=Io.empty;var I3=class t extends ht{constructor(e){let{start:A,end:i}=HtA(e);super(A?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var A,i;return this==e||e instanceof t&&this.tagName==e.tagName&&(this.class||((A=this.attrs)===null||A===void 0?void 0:A.class))==(e.class||((i=e.attrs)===null||i===void 0?void 0:i.class))&&Aw(this.attrs,e.attrs,"class")}range(e,A=e){if(e>=A)throw new RangeError("Mark decorations may not be empty");return super.range(e,A)}};I3.prototype.point=!1;var C3=class t extends ht{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof t&&this.spec.class==e.spec.class&&Aw(this.spec.attributes,e.spec.attributes)}range(e,A=e){if(A!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,A)}};C3.prototype.mapMode=us.TrackBefore;C3.prototype.point=!0;var F1=class t extends ht{constructor(e,A,i,n,o,r){super(A,i,o,e),this.block=n,this.isReplace=r,this.mapMode=n?A<=0?us.TrackBefore:us.TrackAfter:us.TrackDel}get type(){return this.startSide!=this.endSide?na.WidgetRange:this.startSide<=0?na.WidgetBefore:na.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof t&&sLA(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,A=e){if(this.isReplace&&(e>A||e==A&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&A!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,A)}};F1.prototype.point=!0;function HtA(t,e=!1){let{inclusiveStart:A,inclusiveEnd:i}=t;return A==null&&(A=t.inclusive),i==null&&(i=t.inclusive),{start:A??e,end:i??e}}function sLA(t,e){return t==e||!!(t&&e&&t.compare(e))}function PD(t,e,A,i=0){let n=A.length-1;n>=0&&A[n]+i>=t?A[n]=Math.max(A[n],e):A.push(t,e)}var ps=class t extends No{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,A,i,n,o,r){if(i){if(!(i instanceof t))return!1;this.dom||i.transferDOM(this)}return n&&this.setDeco(i?i.attrs:null),GtA(this,e,A,i?i.children.slice():[],o,r),!0}split(e){let A=new t;if(A.breakAfter=this.breakAfter,this.length==0)return A;let{i,off:n}=this.childPos(e);n&&(A.append(this.children[i].split(n),0),this.children[i].merge(n,this.children[i].length,null,!1,0,0),i++);for(let o=i;o0&&this.children[i-1].length==0;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=e,A}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){Aw(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,A){YtA(this,e,A)}addLineDeco(e){let A=e.spec.attributes,i=e.spec.class;A&&(this.attrs=GN(A,this.attrs||{})),i&&(this.attrs=GN({class:i},this.attrs||{}))}domAtPos(e){return JtA(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.flags|=6)}sync(e,A){var i;this.dom?this.flags&4&&(LtA(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(KN(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,A);let n=this.dom.lastChild;for(;n&&No.get(n)instanceof N1;)n=n.lastChild;if(!n||!this.length||n.nodeName!="BR"&&((i=No.get(n))===null||i===void 0?void 0:i.isEditable)==!1&&(!it.ios||!this.children.some(o=>o instanceof Pl))){let o=document.createElement("BR");o.cmIgnore=!0,this.dom.appendChild(o)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,A;for(let i of this.children){if(!(i instanceof Pl)||/[^ -~]/.test(i.text))return null;let n=c3(i.dom);if(n.length!=1)return null;e+=n[0].width,A=n[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:A}:null}coordsAt(e,A){let i=TtA(this,e,A);if(!this.children.length&&i&&this.parent){let{heightOracle:n}=this.parent.view.viewState,o=i.bottom-i.top;if(Math.abs(o-n.lineHeight)<2&&n.textHeight=A){if(o instanceof t)return o;if(r>A)break}n=r+o.breakAfter}return null}},SC=class t extends No{constructor(e,A,i){super(),this.widget=e,this.length=A,this.deco=i,this.breakAfter=0,this.prevWidget=null}merge(e,A,i,n,o,r){return i&&(!(i instanceof t)||!this.widget.compare(i.widget)||e>0&&o<=0||A0}},d3=class extends Cc{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}},t3=class t{constructor(e,A,i,n){this.doc=e,this.pos=A,this.end=i,this.disallowBlockEffectsFor=n,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=A}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof SC&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new ps),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(_D(new l3(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,!this.posCovered()&&!(e&&this.content.length&&this.content[this.content.length-1]instanceof SC)&&this.getLine()}buildText(e,A,i){for(;e>0;){if(this.textOff==this.text.length){let{value:o,lineBreak:r,done:s}=this.cursor.next(this.skip);if(this.skip=0,s)throw new Error("Ran out of text content when drawing inline views");if(r){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=o,this.textOff=0}let n=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(A.slice(A.length-i)),this.getLine().append(_D(new Pl(this.text.slice(this.textOff,this.textOff+n)),A),i),this.atCursorPos=!0,this.textOff+=n,e-=n,i=0}}span(e,A,i,n){this.buildText(A-e,i,n),this.pos=A,this.openStart<0&&(this.openStart=n)}point(e,A,i,n,o,r){if(this.disallowBlockEffectsFor[r]&&i instanceof F1){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(A>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let s=A-e;if(i instanceof F1)if(i.block)i.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new SC(i.widget||PeA.block,s,i));else{let a=g3.create(i.widget||PeA.inline,s,s?0:i.startSide),c=this.atCursorPos&&!a.isEditable&&o<=n.length&&(e0),g=!a.isEditable&&(en.length||i.startSide<=0),I=this.getLine();this.pendingBuffer==2&&!c&&!a.isEditable&&(this.pendingBuffer=0),this.flushBuffer(n),c&&(I.append(_D(new l3(1),n),o),o=n.length+Math.max(0,o-n.length)),I.append(_D(a,n),o),this.atCursorPos=g,this.pendingBuffer=g?en.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=n.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);s&&(this.textOff+s<=this.text.length?this.textOff+=s:(this.skip+=s-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=A),this.openStart<0&&(this.openStart=o)}static build(e,A,i,n,o){let r=new t(e,A,i,o);return r.openEnd=Io.spans(n,A,i,r),r.openStart<0&&(r.openStart=r.openEnd),r.finish(r.openEnd),r}};function _D(t,e){for(let A of e)t=new N1(A,[t],t.length);return t}var PeA=(()=>{class t extends Cc{constructor(A){super(),this.tag=A}eq(A){return A.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(A){return A.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}return t.inline=new t("span"),t.block=new t("div"),t})(),Co=function(t){return t[t.LTR=0]="LTR",t[t.RTL=1]="RTL",t}(Co||(Co={})),xC=Co.LTR,hF=Co.RTL;function OtA(t){let e=[];for(let A=0;A=A){if(s.level==i)return r;(o<0||(n!=0?n<0?s.fromA:e[o].level>s.level))&&(o=r)}}if(o<0)throw new RangeError("Index out of range");return o}};function PtA(t,e){if(t.length!=e.length)return!1;for(let A=0;A=0;E-=3)if(Yl[E+1]==-d){let u=Yl[E+2],h=u&2?n:u&4?u&1?o:n:0;h&&(vo[I]=vo[Yl[E]]=h),s=E;break}}else{if(Yl.length==189)break;Yl[s++]=I,Yl[s++]=C,Yl[s++]=a}else if((B=vo[I])==2||B==1){let E=B==n;a=E?0:1;for(let u=s-3;u>=0;u-=3){let h=Yl[u+2];if(h&2)break;if(E)Yl[u+2]|=2;else{if(h&4)break;Yl[u+2]|=4}}}}}function CLA(t,e,A,i){for(let n=0,o=i;n<=A.length;n++){let r=n?A[n-1].to:t,s=na;)B==u&&(B=A[--E].from,u=E?A[E-1].to:t),vo[--B]=d;a=g}else o=c,a++}}}function JN(t,e,A,i,n,o,r){let s=i%2?2:1;if(i%2==n%2)for(let a=e,c=0;aa&&r.push(new Hl(a,E.from,d));let u=E.direction==xC!=!(d%2);YN(t,u?i+1:i,n,E.inner,E.from,E.to,r),a=E.to}B=E.to}else{if(B==A||(g?vo[B]!=s:vo[B]==s))break;B++}C?JN(t,a,B,i+1,n,C,r):ae;){let g=!0,I=!1;if(!c||a>o[c-1].to){let E=vo[a-1];E!=s&&(g=!1,I=E==16)}let C=!g&&s==1?[]:null,d=g?i:i+1,B=a;A:for(;;)if(c&&B==o[c-1].to){if(I)break A;let E=o[--c];if(!g)for(let u=E.from,h=c;;){if(u==e)break A;if(h&&o[h-1].to==u)u=o[--h].from;else{if(vo[u-1]==s)break A;break}}if(C)C.push(E);else{E.tovo.length;)vo[vo.length]=256;let i=[],n=e==xC?0:1;return YN(t,n,n,A,0,t.length,i),i}function jtA(t){return[new Hl(0,t,0)]}var qtA="";function BLA(t,e,A,i,n){var o;let r=i.head-t.from,s=Hl.find(e,r,(o=i.bidiLevel)!==null&&o!==void 0?o:-1,i.assoc),a=e[s],c=a.side(n,A);if(r==c){let C=s+=n?1:-1;if(C<0||C>=e.length)return null;a=e[s=C],r=a.side(!n,A),c=a.side(n,A)}let g=br(t.text,r,a.forward(n,A));(ga.to)&&(g=c),qtA=t.text.slice(Math.min(r,g),Math.max(r,g));let I=s==(n?e.length-1:0)?null:e[s+(n?1:-1)];return I&&g==c&&I.level+(n?0:1)t.some(e=>e)}),eiA=qe.define({combine:t=>t.some(e=>e)}),tiA=qe.define(),i3=class t{constructor(e,A="nearest",i="nearest",n=5,o=5,r=!1){this.range=e,this.y=A,this.x=i,this.yMargin=n,this.xMargin=o,this.isSnapshot=r}map(e){return e.empty?this:new t(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new t(ae.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},GD=Ki.define({map:(t,e)=>t.map(e)}),iiA=Ki.define();function is(t,e,A){let i=t.facet(XtA);i.length?i[0](e):window.onerror&&window.onerror(String(e),A,void 0,void 0,e)||(A?console.error(A+":",e):console.error(e))}var P0=qe.define({combine:t=>t.length?t[0]:!0}),QLA=0,YE=qe.define({combine(t){return t.filter((e,A)=>{for(let i=0;i{let a=[];return r&&a.push(B3.of(c=>{let g=c.plugin(s);return g?r(g):ht.none})),o&&a.push(o(s)),a})}static fromClass(e,A){return t.define((i,n)=>new e(i,n),A)}},n3=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let A=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(A)}catch(i){if(is(A.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(A){is(e.state,A,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var A;if(!((A=this.value)===null||A===void 0)&&A.destroy)try{this.value.destroy()}catch(i){is(e.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},qeA=qe.define(),TN=qe.define(),B3=qe.define(),niA=qe.define(),Bw=qe.define(),oiA=qe.define();function VeA(t,e){let A=t.state.facet(oiA);if(!A.length)return A;let i=A.map(o=>o instanceof Function?o(t):o),n=[];return Io.spans(i,e.from,e.to,{point(){},span(o,r,s,a){let c=o-e.from,g=r-e.from,I=n;for(let C=s.length-1;C>=0;C--,a--){let d=s[C].spec.bidiIsolate,B;if(d==null&&(d=ELA(e.text,c,g)),a>0&&I.length&&(B=I[I.length-1]).to==c&&B.direction==d)B.to=g,I=B.inner;else{let E={from:c,to:g,direction:d,inner:[]};I.push(E),I=E.inner}}}}),n}var riA=qe.define();function pF(t){let e=0,A=0,i=0,n=0;for(let o of t.state.facet(riA)){let r=o(t);r&&(r.left!=null&&(e=Math.max(e,r.left)),r.right!=null&&(A=Math.max(A,r.right)),r.top!=null&&(i=Math.max(i,r.top)),r.bottom!=null&&(n=Math.max(n,r.bottom)))}return{left:e,right:A,top:i,bottom:n}}var Z4=qe.define(),Ol=class t{constructor(e,A,i,n){this.fromA=e,this.toA=A,this.fromB=i,this.toB=n}join(e){return new t(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let A=e.length,i=this;for(;A>0;A--){let n=e[A-1];if(!(n.fromA>i.toA)){if(n.toAg)break;o+=2}if(!a)return i;new t(a.fromA,a.toA,a.fromB,a.toB).addToSet(i),r=a.toA,s=a.toB}}},ew=class t{constructor(e,A,i){this.view=e,this.state=A,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=hs.empty(this.startState.doc.length);for(let o of i)this.changes=this.changes.compose(o.changes);let n=[];this.changes.iterChangedRanges((o,r,s,a)=>n.push(new Ol(o,r,s,a))),this.changedRanges=n}static create(e,A,i){return new t(e,A,i)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},tw=class extends No{get length(){return this.view.state.doc.length}constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.editContextFormatting=ht.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new ps],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new Ol(0,0,0,e.state.doc.length)],0,null)}update(e){var A;let i=e.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:c,toA:g})=>gthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let n=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((A=this.domChanged)===null||A===void 0)&&A.newSel?n=this.domChanged.newSel.head:!wLA(e.changes,this.hasComposition)&&!e.selectionSet&&(n=e.state.selection.main.head));let o=n>-1?hLA(this.view,e.changes,n):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:c,to:g}=this.hasComposition;i=new Ol(c,g,e.changes.mapPos(c,-1),e.changes.mapPos(g,1)).addToSet(i.slice())}this.hasComposition=o?{from:o.range.fromB,to:o.range.toB}:null,(it.ie||it.chrome)&&!o&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let r=this.decorations,s=this.updateDeco(),a=pLA(r,s,e.changes);return i=Ol.extendWithRanges(i,a),!(this.flags&7)&&i.length==0?!1:(this.updateInner(i,e.startState.doc.length,o),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,A,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,A,i);let{observer:n}=this.view;n.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let r=it.chrome||it.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,r),this.flags&=-8,r&&(r.written||n.selectionRange.focusNode!=r.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(r=>r.flags&=-9);let o=[];if(this.view.viewport.from||this.view.viewport.to=0?n[r]:null;if(!s)break;let{fromA:a,toA:c,fromB:g,toB:I}=s,C,d,B,E;if(i&&i.range.fromBg){let R=t3.build(this.view.state.doc,g,i.range.fromB,this.decorations,this.dynamicDecorationMap),D=t3.build(this.view.state.doc,i.range.toB,I,this.decorations,this.dynamicDecorationMap);d=R.breakAtStart,B=R.openStart,E=D.openEnd;let G=this.compositionView(i);D.breakAtStart?G.breakAfter=1:D.content.length&&G.merge(G.length,G.length,D.content[0],!1,D.openStart,0)&&(G.breakAfter=D.content[0].breakAfter,D.content.shift()),R.content.length&&G.merge(0,0,R.content[R.content.length-1],!0,0,R.openEnd)&&R.content.pop(),C=R.content.concat(G).concat(D.content)}else({content:C,breakAtStart:d,openStart:B,openEnd:E}=t3.build(this.view.state.doc,g,I,this.decorations,this.dynamicDecorationMap));let{i:u,off:h}=o.findPos(c,1),{i:w,off:x}=o.findPos(a,-1);_tA(this,w,x,u,h,C,d,B,E)}i&&this.fixCompositionDOM(i)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let A of e.transactions)for(let i of A.effects)i.is(iiA)&&(this.editContextFormatting=i.value)}compositionView(e){let A=new Pl(e.text.nodeValue);A.flags|=8;for(let{deco:n}of e.marks)A=new N1(n,[A],A.length);let i=new ps;return i.append(A,0),i}fixCompositionDOM(e){let A=(o,r)=>{r.flags|=8|(r.children.some(a=>a.flags&7)?1:0),this.markedForComposition.add(r);let s=No.get(o);s&&s!=r&&(s.dom=null),r.setDOM(o)},i=this.childPos(e.range.fromB,1),n=this.children[i.i];A(e.line,n);for(let o=e.marks.length-1;o>=-1;o--)i=n.childPos(i.off,1),n=n.children[i.i],A(o>=0?e.marks[o].node:e.text,n)}updateSelection(e=!1,A=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let i=this.view.root.activeElement,n=i==this.dom,o=!n&&!(this.view.state.facet(P0)||this.dom.tabIndex>-1)&&zD(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(n||A||o))return;let r=this.forceSelection;this.forceSelection=!1;let s=this.view.state.selection.main,a=this.moveToLine(this.domAtPos(s.anchor)),c=s.empty?a:this.moveToLine(this.domAtPos(s.head));if(it.gecko&&s.empty&&!this.hasComposition&&uLA(a)){let I=document.createTextNode("");this.view.observer.ignore(()=>a.node.insertBefore(I,a.node.childNodes[a.offset]||null)),a=c=new ia(I,0),r=!0}let g=this.view.observer.selectionRange;(r||!g.focusNode||(!e3(a.node,a.offset,g.anchorNode,g.anchorOffset)||!e3(c.node,c.offset,g.focusNode,g.focusOffset))&&!this.suppressWidgetCursorChange(g,s))&&(this.view.observer.ignore(()=>{it.android&&it.chrome&&this.dom.contains(g.focusNode)&&DLA(g.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let I=a3(this.view.root);if(I)if(s.empty){if(it.gecko){let C=fLA(a.node,a.offset);if(C&&C!=3){let d=(C==1?NtA:FtA)(a.node,a.offset);d&&(a=new ia(d.node,d.offset))}}I.collapse(a.node,a.offset),s.bidiLevel!=null&&I.caretBidiLevel!==void 0&&(I.caretBidiLevel=s.bidiLevel)}else if(I.extend){I.collapse(a.node,a.offset);try{I.extend(c.node,c.offset)}catch{}}else{let C=document.createRange();s.anchor>s.head&&([a,c]=[c,a]),C.setEnd(c.node,c.offset),C.setStart(a.node,a.offset),I.removeAllRanges(),I.addRange(C)}o&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())}),this.view.observer.setSelectionRange(a,c)),this.impreciseAnchor=a.precise?null:new ia(g.anchorNode,g.anchorOffset),this.impreciseHead=c.precise?null:new ia(g.focusNode,g.focusOffset)}suppressWidgetCursorChange(e,A){return this.hasComposition&&A.empty&&e3(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==A.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,A=e.state.selection.main,i=a3(e.root),{anchorNode:n,anchorOffset:o}=e.observer.selectionRange;if(!i||!A.empty||!A.assoc||!i.modify)return;let r=ps.find(this,A.head);if(!r)return;let s=r.posAtStart;if(A.head==s||A.head==s+r.length)return;let a=this.coordsAt(A.head,-1),c=this.coordsAt(A.head,1);if(!a||!c||a.bottom>c.top)return;let g=this.domAtPos(A.head+A.assoc);i.collapse(g.node,g.offset),i.modify("move",A.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let I=e.observer.selectionRange;e.docView.posFromDOM(I.anchorNode,I.anchorOffset)!=A.from&&i.collapse(n,o)}moveToLine(e){let A=this.dom,i;if(e.node!=A)return e;for(let n=e.offset;!i&&n=0;n--){let o=No.get(A.childNodes[n]);o instanceof ps&&(i=o.domAtPos(o.length))}return i?new ia(i.node,i.offset,!0):e}nearest(e){for(let A=e;A;){let i=No.get(A);if(i&&i.rootView==this)return i;A=A.parentNode}return null}posFromDOM(e,A){let i=this.nearest(e);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(e,A)+i.posAtStart}domAtPos(e){let{i:A,off:i}=this.childCursor().findPos(e,-1);for(;A=0;r--){let s=this.children[r],a=o-s.breakAfter,c=a-s.length;if(ae||s.covers(1))&&(!i||s instanceof ps&&!(i instanceof ps&&A>=0)))i=s,n=c;else if(i&&c==e&&a==e&&s instanceof SC&&Math.abs(A)<2){if(s.deco.startSide<0)break;r&&(i=null)}o=c}return i?i.coordsAt(e-n,A):null}coordsForChar(e){let{i:A,off:i}=this.childPos(e,1),n=this.children[A];if(!(n instanceof ps))return null;for(;n.children.length;){let{i:s,off:a}=n.childPos(i,1);for(;;s++){if(s==n.children.length)return null;if((n=n.children[s]).length)break}i=a}if(!(n instanceof Pl))return null;let o=br(n.text,i);if(o==i)return null;let r=LC(n.dom,i,o).getClientRects();for(let s=0;sMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,s=-1,a=this.view.textDirection==Co.LTR;for(let c=0,g=0;gn)break;if(c>=i){let d=I.dom.getBoundingClientRect();if(A.push(d.height),r){let B=I.dom.lastChild,E=B?c3(B):[];if(E.length){let u=E[E.length-1],h=a?u.right-d.left:d.right-u.left;h>s&&(s=h,this.minWidth=o,this.minWidthFrom=c,this.minWidthTo=C)}}}c=C+I.breakAfter}return A}textDirectionAt(e){let{i:A}=this.childPos(e,1);return getComputedStyle(this.children[A].dom).direction=="rtl"?Co.RTL:Co.LTR}measureTextSize(){for(let o of this.children)if(o instanceof ps){let r=o.measureTextSize();if(r)return r}let e=document.createElement("div"),A,i,n;return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let o=c3(e.firstChild)[0];A=e.getBoundingClientRect().height,i=o?o.width/27:7,n=o?o.height:A,e.remove()}),{lineHeight:A,charWidth:i,textHeight:n}}childCursor(e=this.length){let A=this.children.length;return A&&(e-=this.children[--A].length),new $D(this.children,e,A)}computeBlockGapDeco(){let e=[],A=this.view.viewState;for(let i=0,n=0;;n++){let o=n==A.viewports.length?null:A.viewports[n],r=o?o.from-1:this.length;if(r>i){let s=(A.lineBlockAt(r).bottom-A.lineBlockAt(i).top)/this.view.scaleY;e.push(ht.replace({widget:new d3(s),block:!0,inclusive:!0,isBlockGap:!0}).range(i,r))}if(!o)break;i=o.to+1}return ht.set(e)}updateDeco(){let e=1,A=this.view.state.facet(B3).map(o=>(this.dynamicDecorationMap[e++]=typeof o=="function")?o(this.view):o),i=!1,n=this.view.state.facet(niA).map((o,r)=>{let s=typeof o=="function";return s&&(i=!0),s?o(this.view):o});for(n.length&&(this.dynamicDecorationMap[e++]=i,A.push(Io.join(n))),this.decorations=[this.editContextFormatting,...A,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];eA.anchor?-1:1),n;if(!i)return;!A.empty&&(n=this.coordsAt(A.anchor,A.anchor>A.head?-1:1))&&(i={left:Math.min(i.left,n.left),top:Math.min(i.top,n.top),right:Math.max(i.right,n.right),bottom:Math.max(i.bottom,n.bottom)});let o=pF(this.view),r={left:i.left-o.left,top:i.top-o.top,right:i.right+o.right,bottom:i.bottom+o.bottom},{offsetWidth:s,offsetHeight:a}=this.view.scrollDOM;XRA(this.view.scrollDOM,r,A.head{ie.from&&(A=!0)}),A}function yLA(t,e,A=1){let i=t.charCategorizer(e),n=t.doc.lineAt(e),o=e-n.from;if(n.length==0)return ae.cursor(e);o==0?A=1:o==n.length&&(A=-1);let r=o,s=o;A<0?r=br(n.text,o,!1):s=br(n.text,o);let a=i(n.text.slice(r,s));for(;r>0;){let c=br(n.text,r,!1);if(i(n.text.slice(c,r))!=a)break;r=c}for(;st?e.left-t:Math.max(0,t-e.right)}function MLA(t,e){return e.top>t?e.top-t:Math.max(0,t-e.bottom)}function yN(t,e){return t.tope.top+1}function ZeA(t,e){return et.bottom?{top:t.top,left:t.left,right:t.right,bottom:e}:t}function HN(t,e,A){let i,n,o,r,s=!1,a,c,g,I;for(let B=t.firstChild;B;B=B.nextSibling){let E=c3(B);for(let u=0;ux||r==x&&o>w)&&(i=B,n=h,o=w,r=x,s=w?e0:uh.bottom&&(!g||g.bottomh.top)&&(c=B,I=h):g&&yN(g,h)?g=WeA(g,h.bottom):I&&yN(I,h)&&(I=ZeA(I,h.top))}}if(g&&g.bottom>=A?(i=a,n=g):I&&I.top<=A&&(i=c,n=I),!i)return{node:t,offset:0};let C=Math.max(n.left,Math.min(n.right,e));if(i.nodeType==3)return XeA(i,C,A);if(s&&i.contentEditable!="false")return HN(i,C,A);let d=Array.prototype.indexOf.call(t.childNodes,i)+(e>=(n.left+n.right)/2?1:0);return{node:t,offset:d}}function XeA(t,e,A){let i=t.nodeValue.length,n=-1,o=1e9,r=0;for(let s=0;sA?g.top-A:A-g.bottom)-1;if(g.left-1<=e&&g.right+1>=e&&I=(g.left+g.right)/2,d=C;if((it.chrome||it.gecko)&&LC(t,s).getBoundingClientRect().left==g.right&&(d=!C),I<=0)return{node:t,offset:s+(d?1:0)};n=s+(d?1:0),o=I}}}return{node:t,offset:n>-1?n:r>0?t.nodeValue.length:0}}function aiA(t,e,A,i=-1){var n,o;let r=t.contentDOM.getBoundingClientRect(),s=r.top+t.viewState.paddingTop,a,{docHeight:c}=t.viewState,{x:g,y:I}=e,C=I-s;if(C<0)return 0;if(C>c)return t.state.doc.length;for(let R=t.viewState.heightOracle.textHeight/2,D=!1;a=t.elementAtHeight(C),a.type!=na.Text;)for(;C=i>0?a.bottom+R:a.top-R,!(C>=0&&C<=c);){if(D)return A?null:0;D=!0,i=-i}I=s+C;let d=a.from;if(dt.viewport.to)return t.viewport.to==t.state.doc.length?t.state.doc.length:A?null:$eA(t,r,a,g,I);let B=t.dom.ownerDocument,E=t.root.elementFromPoint?t.root:B,u=E.elementFromPoint(g,I);u&&!t.contentDOM.contains(u)&&(u=null),u||(g=Math.max(r.left+1,Math.min(r.right-1,g)),u=E.elementFromPoint(g,I),u&&!t.contentDOM.contains(u)&&(u=null));let h,w=-1;if(u&&((n=t.docView.nearest(u))===null||n===void 0?void 0:n.isEditable)!=!1){if(B.caretPositionFromPoint){let R=B.caretPositionFromPoint(g,I);R&&({offsetNode:h,offset:w}=R)}else if(B.caretRangeFromPoint){let R=B.caretRangeFromPoint(g,I);R&&({startContainer:h,startOffset:w}=R,(!t.contentDOM.contains(h)||it.safari&&bLA(h,w,g)||it.chrome&&kLA(h,w,g))&&(h=void 0))}h&&(w=Math.min(zl(h),w))}if(!h||!t.docView.dom.contains(h)){let R=ps.find(t.docView,d);if(!R)return C>a.top+a.height/2?a.to:a.from;({node:h,offset:w}=HN(R.dom,g,I))}let x=t.docView.nearest(h);if(!x)return null;if(x.isWidget&&((o=x.dom)===null||o===void 0?void 0:o.nodeType)==1){let R=x.dom.getBoundingClientRect();return e.yt.defaultLineHeight*1.5){let s=t.viewState.heightOracle.textHeight,a=Math.floor((n-A.top-(t.defaultLineHeight-s)*.5)/s);o+=a*t.viewState.heightOracle.lineLength}let r=t.state.sliceDoc(A.from,A.to);return A.from+ND(r,o,t.state.tabSize)}function bLA(t,e,A){let i,n=t;if(t.nodeType!=3||e!=(i=t.nodeValue.length))return!1;for(;;){let o=n.nextSibling;if(o){if(o.nodeName=="BR")break;return!1}else{let r=n.parentNode;if(!r||r.nodeName=="DIV")break;n=r}}return LC(t,i-1,i).getBoundingClientRect().right>A}function kLA(t,e,A){if(e!=0)return!1;for(let n=t;;){let o=n.parentNode;if(!o||o.nodeType!=1||o.firstChild!=n)return!1;if(o.classList.contains("cm-line"))break;n=o}let i=t.nodeType==1?t.getBoundingClientRect():LC(t,0,Math.max(t.nodeValue.length,1)).getBoundingClientRect();return A-i.left>5}function ON(t,e,A){let i=t.lineBlockAt(e);if(Array.isArray(i.type)){let n;for(let o of i.type){if(o.from>e)break;if(!(o.toe)return o;(!n||o.type==na.Text&&(n.type!=o.type||(A<0?o.frome)))&&(n=o)}}return n||i}return i}function SLA(t,e,A,i){let n=ON(t,e.head,e.assoc||-1),o=!i||n.type!=na.Text||!(t.lineWrapping||n.widgetLineBreaks)?null:t.coordsAtPos(e.assoc<0&&e.head>n.from?e.head-1:e.head);if(o){let r=t.dom.getBoundingClientRect(),s=t.textDirectionAt(n.from),a=t.posAtCoords({x:A==(s==Co.LTR)?r.right-1:r.left+1,y:(o.top+o.bottom)/2});if(a!=null)return ae.cursor(a,A?-1:1)}return ae.cursor(A?n.to:n.from,A?-1:1)}function AtA(t,e,A,i){let n=t.state.doc.lineAt(e.head),o=t.bidiSpans(n),r=t.textDirectionAt(n.from);for(let s=e,a=null;;){let c=BLA(n,o,r,s,A),g=qtA;if(!c){if(n.number==(A?t.state.doc.lines:1))return s;g=` +`,n=t.state.doc.line(n.number+(A?1:-1)),o=t.bidiSpans(n),c=t.visualLineSide(n,!A)}if(a){if(!a(g))return s}else{if(!i)return c;a=i(g)}s=c}}function RLA(t,e,A){let i=t.state.charCategorizer(e),n=i(A);return o=>{let r=i(o);return n==lo.Space&&(n=r),n==r}}function LLA(t,e,A,i){let n=e.head,o=A?1:-1;if(n==(A?t.state.doc.length:0))return ae.cursor(n,e.assoc);let r=e.goalColumn,s,a=t.contentDOM.getBoundingClientRect(),c=t.coordsAtPos(n,e.assoc||-1),g=t.documentTop;if(c)r==null&&(r=c.left-a.left),s=o<0?c.top:c.bottom;else{let d=t.viewState.lineBlockAt(n);r==null&&(r=Math.min(a.right-a.left,t.defaultCharacterWidth*(n-d.from))),s=(o<0?d.top:d.bottom)+g}let I=a.left+r,C=i??t.viewState.heightOracle.textHeight>>1;for(let d=0;;d+=10){let B=s+(C+d)*o,E=aiA(t,{x:I,y:B},!1,o);if(Ba.bottom||(o<0?En)){let u=t.docView.coordsForChar(E),h=!u||B{if(e>o&&en(t)),A.from,e.head>A.from?-1:1);return i==A.from?A:ae.cursor(i,io)&&this.lineBreak(),n=r}return this.findPointBefore(i,A),this}readTextNode(e){let A=e.nodeValue;for(let i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,A.length));for(let i=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let o=-1,r=1,s;if(this.lineSeparator?(o=A.indexOf(this.lineSeparator,i),r=this.lineSeparator.length):(s=n.exec(A))&&(o=s.index,r=s[0].length),this.append(A.slice(i,o<0?A.length:o)),o<0)break;if(this.lineBreak(),r>1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=r-1);i=o+r}}readNode(e){if(e.cmIgnore)return;let A=No.get(e),i=A&&A.overrideDOMText;if(i!=null){this.findPointInside(e,i.length);for(let n=i.iter();!n.next().done;)n.lineBreak?this.lineBreak():this.append(n.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,A){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==A&&(i.pos=this.text.length)}findPointInside(e,A){for(let i of this.points)(e.nodeType==3?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+(xLA(e,i.node,i.offset)?A:0))}};function xLA(t,e,A){for(;;){if(!e||A-1;let{impreciseHead:o,impreciseAnchor:r}=e.docView;if(e.state.readOnly&&A>-1)this.newSel=null;else if(A>-1&&(this.bounds=e.docView.domBoundsAround(A,i,0))){let s=o||r?[]:_LA(e),a=new zN(s,e.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=GLA(s,this.bounds.from)}else{let s=e.observer.selectionRange,a=o&&o.node==s.focusNode&&o.offset==s.focusOffset||!LN(e.contentDOM,s.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(s.focusNode,s.focusOffset),c=r&&r.node==s.anchorNode&&r.offset==s.anchorOffset||!LN(e.contentDOM,s.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(s.anchorNode,s.anchorOffset),g=e.viewport;if((it.ios||it.chrome)&&e.state.selection.main.empty&&a!=c&&(g.from>0||g.toDate.now()-100?t.inputState.lastKeyCode:-1;if(e.bounds){let{from:r,to:s}=e.bounds,a=n.from,c=null;(o===8||it.android&&e.text.length=n.from&&A.to<=n.to&&(A.from!=n.from||A.to!=n.to)&&n.to-n.from-(A.to-A.from)<=4?A={from:n.from,to:n.to,insert:t.state.doc.slice(n.from,A.from).append(A.insert).append(t.state.doc.slice(A.to,n.to))}:it.chrome&&A&&A.from==A.to&&A.from==n.head&&A.insert.toString()==` + `&&t.lineWrapping&&(i&&(i=ae.single(i.main.anchor-1,i.main.head-1)),A={from:n.from,to:n.to,insert:tn.of([" "])}),A)return DF(t,A,i,o);if(i&&!i.main.eq(n)){let r=!1,s="select";return t.inputState.lastSelectionTime>Date.now()-50&&(t.inputState.lastSelectionOrigin=="select"&&(r=!0),s=t.inputState.lastSelectionOrigin,s=="select.pointer"&&(i=ciA(t.state.facet(Bw).map(a=>a(t)),i))),t.dispatch({selection:i,scrollIntoView:r,userEvent:s}),!0}else return!1}function DF(t,e,A,i=-1){if(it.ios&&t.inputState.flushIOSKey(e))return!0;let n=t.state.selection.main;if(it.android&&(e.to==n.to&&(e.from==n.from||e.from==n.from-1&&t.state.sliceDoc(e.from,n.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&zE(t.contentDOM,"Enter",13)||(e.from==n.from-1&&e.to==n.to&&e.insert.length==0||i==8&&e.insert.lengthn.head)&&zE(t.contentDOM,"Backspace",8)||e.from==n.from&&e.to==n.to+1&&e.insert.length==0&&zE(t.contentDOM,"Delete",46)))return!0;let o=e.insert.toString();t.inputState.composing>=0&&t.inputState.composing++;let r,s=()=>r||(r=NLA(t,e,A));return t.state.facet($tA).some(a=>a(t,e.from,e.to,o,s))||t.dispatch(s()),!0}function NLA(t,e,A){let i,n=t.state,o=n.selection.main;if(e.from>=o.from&&e.to<=o.to&&e.to-e.from>=(o.to-o.from)/3&&(!A||A.main.empty&&A.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let s=o.frome.to?n.sliceDoc(e.to,o.to):"";i=n.replaceSelection(t.state.toText(s+e.insert.sliceString(0,void 0,t.state.lineBreak)+a))}else{let s=n.changes(e),a=A&&A.main.to<=s.newLength?A.main:void 0;if(n.selection.ranges.length>1&&t.inputState.composing>=0&&e.to<=o.to&&e.to>=o.to-10){let c=t.state.sliceDoc(e.from,e.to),g,I=A&&siA(t,A.main.head);if(I){let B=e.insert.length-(e.to-e.from);g={from:I.from,to:I.to-B}}else g=t.state.doc.lineAt(o.head);let C=o.to-e.to,d=o.to-o.from;i=n.changeByRange(B=>{if(B.from==o.from&&B.to==o.to)return{changes:s,range:a||B.map(s)};let E=B.to-C,u=E-c.length;if(B.to-B.from!=d||t.state.sliceDoc(u,E)!=c||B.to>=g.from&&B.from<=g.to)return{range:B};let h=n.changes({from:u,to:E,insert:e.insert}),w=B.to-o.to;return{changes:h,range:a?ae.range(Math.max(0,a.anchor+w),Math.max(0,a.head+w)):B.map(h)}})}else i={changes:s,selection:a&&n.selection.replaceRange(a)}}let r="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,r+=".compose",t.inputState.compositionFirstChange&&(r+=".start",t.inputState.compositionFirstChange=!1)),n.update(i,{userEvent:r,scrollIntoView:!0})}function FLA(t,e,A,i){let n=Math.min(t.length,e.length),o=0;for(;o0&&s>0&&t.charCodeAt(r-1)==e.charCodeAt(s-1);)r--,s--;if(i=="end"){let a=Math.max(0,o-Math.min(r,s));A-=r+a-o}if(r=r?o-A:0;o-=a,s=o+(s-r),r=o}else if(s=s?o-A:0;o-=a,r=o+(r-s),s=o}return{from:o,toA:r,toB:s}}function _LA(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:A,anchorOffset:i,focusNode:n,focusOffset:o}=t.observer.selectionRange;return A&&(e.push(new iw(A,i)),(n!=A||o!=i)&&e.push(new iw(n,o))),e}function GLA(t,e){if(t.length==0)return null;let A=t[0].pos,i=t.length==2?t[1].pos:A;return A>-1&&i>-1?ae.single(A+e,i+e):null}var jN=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,it.safari&&e.contentDOM.addEventListener("input",()=>null),it.gecko&&XLA(e.contentDOM.ownerDocument)}handleEvent(e){!OLA(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,A){let i=this.handlers[e];if(i){for(let n of i.observers)n(this.view,A);for(let n of i.handlers){if(A.defaultPrevented)break;if(n(this.view,A)){A.preventDefault();break}}}}ensureHandlers(e){let A=KLA(e),i=this.handlers,n=this.view.contentDOM;for(let o in A)if(o!="scroll"){let r=!A[o].handlers.length,s=i[o];s&&r!=!s.handlers.length&&(n.removeEventListener(o,this.handleEvent),s=null),s||n.addEventListener(o,this.handleEvent,{passive:r})}for(let o in i)o!="scroll"&&!A[o]&&n.removeEventListener(o,this.handleEvent);this.handlers=A}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&IiA.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),it.android&&it.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let A;return it.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((A=liA.find(i=>i.keyCode==e.keyCode))&&!e.ctrlKey||ULA.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=A||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let A=this.pendingIOSKey;return!A||A.key=="Enter"&&e&&e.from0?!0:it.safari&&!it.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function etA(t,e){return(A,i)=>{try{return e.call(t,i,A)}catch(n){is(A.state,n)}}}function KLA(t){let e=Object.create(null);function A(i){return e[i]||(e[i]={observers:[],handlers:[]})}for(let i of t){let n=i.spec,o=n&&n.plugin.domEventHandlers,r=n&&n.plugin.domEventObservers;if(o)for(let s in o){let a=o[s];a&&A(s).handlers.push(etA(i.value,a))}if(r)for(let s in r){let a=r[s];a&&A(s).observers.push(etA(i.value,a))}}for(let i in Fg)A(i).handlers.push(Fg[i]);for(let i in Vc)A(i).observers.push(Vc[i]);return e}var liA=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],ULA="dthko",IiA=[16,17,18,20,91,92,224,225],KD=6;function UD(t){return Math.max(0,t)*.7+8}function JLA(t,e){return Math.max(Math.abs(t.clientX-e.clientX),Math.abs(t.clientY-e.clientY))}var qN=class{constructor(e,A,i,n){this.view=e,this.startEvent=A,this.style=i,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=A,this.scrollParents=$RA(e.contentDOM),this.atoms=e.state.facet(Bw).map(r=>r(e));let o=e.contentDOM.ownerDocument;o.addEventListener("mousemove",this.move=this.move.bind(this)),o.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=A.shiftKey,this.multiple=e.state.facet(Dr.allowMultipleSelections)&&YLA(e,A),this.dragging=HLA(e,A)&&BiA(A)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&JLA(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let A=0,i=0,n=0,o=0,r=this.view.win.innerWidth,s=this.view.win.innerHeight;this.scrollParents.x&&({left:n,right:r}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:o,bottom:s}=this.scrollParents.y.getBoundingClientRect());let a=pF(this.view);e.clientX-a.left<=n+KD?A=-UD(n-e.clientX):e.clientX+a.right>=r-KD&&(A=UD(e.clientX-r)),e.clientY-a.top<=o+KD?i=-UD(o-e.clientY):e.clientY+a.bottom>=s-KD&&(i=UD(e.clientY-s)),this.setScrollSpeed(A,i)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,A){this.scrollSpeed={x:e,y:A},e||A?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:A}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),A&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=A,A=0),(e||A)&&this.view.win.scrollBy(e,A),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:A}=this,i=ciA(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!i.eq(A.state.selection,this.dragging===!1))&&this.view.dispatch({selection:i,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(A=>A.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function YLA(t,e){let A=t.state.facet(VtA);return A.length?A[0](e):it.mac?e.metaKey:e.ctrlKey}function TLA(t,e){let A=t.state.facet(ZtA);return A.length?A[0](e):it.mac?!e.altKey:!e.ctrlKey}function HLA(t,e){let{main:A}=t.state.selection;if(A.empty)return!1;let i=a3(t.root);if(!i||i.rangeCount==0)return!0;let n=i.getRangeAt(0).getClientRects();for(let o=0;o=e.clientX&&r.top<=e.clientY&&r.bottom>=e.clientY)return!0}return!1}function OLA(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let A=e.target,i;A!=t.contentDOM;A=A.parentNode)if(!A||A.nodeType==11||(i=No.get(A))&&i.ignoreEvent(e))return!1;return!0}var Fg=Object.create(null),Vc=Object.create(null),CiA=it.ie&&it.ie_version<15||it.ios&&it.webkit_version<604;function zLA(t){let e=t.dom.parentNode;if(!e)return;let A=e.appendChild(document.createElement("textarea"));A.style.cssText="position: fixed; left: -10000px; top: 10px",A.focus(),setTimeout(()=>{t.focus(),A.remove(),diA(t,A.value)},50)}function Ew(t,e,A){for(let i of t.facet(e))A=i(A,t);return A}function diA(t,e){e=Ew(t.state,fF,e);let{state:A}=t,i,n=1,o=A.toText(e),r=o.lines==A.selection.ranges.length;if(VN!=null&&A.selection.ranges.every(a=>a.empty)&&VN==o.toString()){let a=-1;i=A.changeByRange(c=>{let g=A.doc.lineAt(c.from);if(g.from==a)return{range:c};a=g.from;let I=A.toText((r?o.line(n++).text:e)+A.lineBreak);return{changes:{from:g.from,insert:I},range:ae.cursor(c.from+I.length)}})}else r?i=A.changeByRange(a=>{let c=o.line(n++);return{changes:{from:a.from,to:a.to,insert:c.text},range:ae.cursor(a.from+c.length)}}):i=A.replaceSelection(o);t.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}Vc.scroll=t=>{t.inputState.lastScrollTop=t.scrollDOM.scrollTop,t.inputState.lastScrollLeft=t.scrollDOM.scrollLeft};Fg.keydown=(t,e)=>(t.inputState.setSelectionOrigin("select"),e.keyCode==27&&t.inputState.tabFocusMode!=0&&(t.inputState.tabFocusMode=Date.now()+2e3),!1);Vc.touchstart=(t,e)=>{t.inputState.lastTouchTime=Date.now(),t.inputState.setSelectionOrigin("select.pointer")};Vc.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")};Fg.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return!1;let A=null;for(let i of t.state.facet(WtA))if(A=i(t,e),A)break;if(!A&&e.button==0&&(A=qLA(t,e)),A){let i=!t.hasFocus;t.inputState.startMouseSelection(new qN(t,e,A,i)),i&&t.observer.ignore(()=>{RtA(t.contentDOM);let o=t.root.activeElement;o&&!o.contains(t.contentDOM)&&o.blur()});let n=t.inputState.mouseSelection;if(n)return n.start(e),n.dragging===!1}else t.inputState.setSelectionOrigin("select.pointer");return!1};function ttA(t,e,A,i){if(i==1)return ae.cursor(e,A);if(i==2)return yLA(t.state,e,A);{let n=ps.find(t.docView,e),o=t.state.doc.lineAt(n?n.posAtEnd:e),r=n?n.posAtStart:o.from,s=n?n.posAtEnd:o.to;return se>=A.top&&e<=A.bottom&&t>=A.left&&t<=A.right;function PLA(t,e,A,i){let n=ps.find(t.docView,e);if(!n)return 1;let o=e-n.posAtStart;if(o==0)return 1;if(o==n.length)return-1;let r=n.coordsAt(o,-1);if(r&&itA(A,i,r))return-1;let s=n.coordsAt(o,1);return s&&itA(A,i,s)?1:r&&r.bottom>=i?-1:1}function ntA(t,e){let A=t.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:A,bias:PLA(t,A,e.clientX,e.clientY)}}var jLA=it.ie&&it.ie_version<=11,otA=null,rtA=0,stA=0;function BiA(t){if(!jLA)return t.detail;let e=otA,A=stA;return otA=t,stA=Date.now(),rtA=!e||A>Date.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(rtA+1)%3:1}function qLA(t,e){let A=ntA(t,e),i=BiA(e),n=t.state.selection;return{update(o){o.docChanged&&(A.pos=o.changes.mapPos(A.pos),n=n.map(o.changes))},get(o,r,s){let a=ntA(t,o),c,g=ttA(t,a.pos,a.bias,i);if(A.pos!=a.pos&&!r){let I=ttA(t,A.pos,A.bias,i),C=Math.min(I.from,g.from),d=Math.max(I.to,g.to);g=C1&&(c=VLA(n,a.pos))?c:s?n.addRange(g):ae.create([g])}}}function VLA(t,e){for(let A=0;A=e)return ae.create(t.ranges.slice(0,A).concat(t.ranges.slice(A+1)),t.mainIndex==A?0:t.mainIndex-(t.mainIndex>A?1:0))}return null}Fg.dragstart=(t,e)=>{let{selection:{main:A}}=t.state;if(e.target.draggable){let n=t.docView.nearest(e.target);if(n&&n.isWidget){let o=n.posAtStart,r=o+n.length;(o>=A.to||r<=A.from)&&(A=ae.range(o,r))}}let{inputState:i}=t;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=A,e.dataTransfer&&(e.dataTransfer.setData("Text",Ew(t.state,mF,t.state.sliceDoc(A.from,A.to))),e.dataTransfer.effectAllowed="copyMove"),!1};Fg.dragend=t=>(t.inputState.draggedContent=null,!1);function atA(t,e,A,i){if(A=Ew(t.state,fF,A),!A)return;let n=t.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:o}=t.inputState,r=i&&o&&TLA(t,e)?{from:o.from,to:o.to}:null,s={from:n,insert:A},a=t.state.changes(r?[r,s]:s);t.focus(),t.dispatch({changes:a,selection:{anchor:a.mapPos(n,-1),head:a.mapPos(n,1)},userEvent:r?"move.drop":"input.drop"}),t.inputState.draggedContent=null}Fg.drop=(t,e)=>{if(!e.dataTransfer)return!1;if(t.state.readOnly)return!0;let A=e.dataTransfer.files;if(A&&A.length){let i=Array(A.length),n=0,o=()=>{++n==A.length&&atA(t,e,i.filter(r=>r!=null).join(t.state.lineBreak),!1)};for(let r=0;r{/[\x00-\x08\x0e-\x1f]{2}/.test(s.result)||(i[r]=s.result),o()},s.readAsText(A[r])}return!0}else{let i=e.dataTransfer.getData("Text");if(i)return atA(t,e,i,!0),!0}return!1};Fg.paste=(t,e)=>{if(t.state.readOnly)return!0;t.observer.flush();let A=CiA?null:e.clipboardData;return A?(diA(t,A.getData("text/plain")||A.getData("text/uri-list")),!0):(zLA(t),!1)};function ZLA(t,e){let A=t.dom.parentNode;if(!A)return;let i=A.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=e,i.focus(),i.selectionEnd=e.length,i.selectionStart=0,setTimeout(()=>{i.remove(),t.focus()},50)}function WLA(t){let e=[],A=[],i=!1;for(let n of t.selection.ranges)n.empty||(e.push(t.sliceDoc(n.from,n.to)),A.push(n));if(!e.length){let n=-1;for(let{from:o}of t.selection.ranges){let r=t.doc.lineAt(o);r.number>n&&(e.push(r.text),A.push({from:r.from,to:Math.min(t.doc.length,r.to+1)})),n=r.number}i=!0}return{text:Ew(t,mF,e.join(t.lineBreak)),ranges:A,linewise:i}}var VN=null;Fg.copy=Fg.cut=(t,e)=>{let{text:A,ranges:i,linewise:n}=WLA(t.state);if(!A&&!n)return!1;VN=n?A:null,e.type=="cut"&&!t.state.readOnly&&t.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let o=CiA?null:e.clipboardData;return o?(o.clearData(),o.setData("text/plain",A),!0):(ZLA(t,A),!1)};var EiA=Fa.define();function QiA(t,e){let A=[];for(let i of t.facet(AiA)){let n=i(t,e);n&&A.push(n)}return A.length?t.update({effects:A,annotations:EiA.of(!0)}):null}function uiA(t){setTimeout(()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let A=QiA(t.state,e);A?t.dispatch(A):t.update([])}},10)}Vc.focus=t=>{t.inputState.lastFocusTime=Date.now(),!t.scrollDOM.scrollTop&&(t.inputState.lastScrollTop||t.inputState.lastScrollLeft)&&(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),uiA(t)};Vc.blur=t=>{t.observer.clearSelectionRange(),uiA(t)};Vc.compositionstart=Vc.compositionupdate=t=>{t.observer.editContext||(t.inputState.compositionFirstChange==null&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0))};Vc.compositionend=t=>{t.observer.editContext||(t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,it.chrome&&it.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then(()=>t.observer.flush()):setTimeout(()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])},50))};Vc.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()};Fg.beforeinput=(t,e)=>{var A,i;if(e.inputType=="insertReplacementText"&&t.observer.editContext){let o=(A=e.dataTransfer)===null||A===void 0?void 0:A.getData("text/plain"),r=e.getTargetRanges();if(o&&r.length){let s=r[0],a=t.posAtDOM(s.startContainer,s.startOffset),c=t.posAtDOM(s.endContainer,s.endOffset);return DF(t,{from:a,to:c,insert:t.state.toText(o)},null),!0}}let n;if(it.chrome&&it.android&&(n=liA.find(o=>o.inputType==e.inputType))&&(t.observer.delayAndroidKey(n.key,n.keyCode),n.key=="Backspace"||n.key=="Delete")){let o=((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0;setTimeout(()=>{var r;(((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0)>o+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())},100)}return it.ios&&e.inputType=="deleteContentForward"&&t.observer.flushSoon(),it.safari&&e.inputType=="insertText"&&t.inputState.composing>=0&&setTimeout(()=>Vc.compositionend(t,e),20),!1};var ctA=new Set;function XLA(t){ctA.has(t)||(ctA.add(t),t.addEventListener("copy",()=>{}),t.addEventListener("cut",()=>{}))}var gtA=["pre-wrap","normal","pre-line","break-spaces"],PE=!1;function ltA(){PE=!1}var ZN=class{constructor(e){this.lineWrapping=e,this.doc=tn.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,A){let i=this.doc.lineAt(A).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((A-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return gtA.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let A=!1;for(let i=0;i-1,a=Math.round(A)!=Math.round(this.lineHeight)||this.lineWrapping!=s;if(this.lineWrapping=s,this.lineHeight=A,this.charWidth=i,this.textHeight=n,this.lineLength=o,a){this.heightSamples={};for(let c=0;c0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>qD&&(PE=!0),this.height=e)}replace(e,A,i){return t.of(i)}decomposeLeft(e,A){A.push(this)}decomposeRight(e,A){A.push(this)}applyChanges(e,A,i,n){let o=this,r=i.doc;for(let s=n.length-1;s>=0;s--){let{fromA:a,toA:c,fromB:g,toB:I}=n[s],C=o.lineAt(a,zo.ByPosNoHeight,i.setDoc(A),0,0),d=C.to>=c?C:o.lineAt(c,zo.ByPosNoHeight,i,0,0);for(I+=d.to-c,c=d.to;s>0&&C.from<=n[s-1].toA;)a=n[s-1].fromA,g=n[s-1].fromB,s--,ao*2){let s=e[A-1];s.break?e.splice(--A,1,s.left,null,s.right):e.splice(--A,1,s.left,s.right),i+=1+s.break,n-=s.size}else if(o>n*2){let s=e[i];s.break?e.splice(i,1,s.left,null,s.right):e.splice(i,1,s.left,s.right),i+=2+s.break,o-=s.size}else break;else if(n=o&&r(this.blockAt(0,i,n,o))}updateHeight(e,A=0,i=!1,n){return n&&n.from<=A&&n.more&&this.setHeight(n.heights[n.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}},qc=class t extends ow{constructor(e,A){super(e,A,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,A,i,n){return new Tl(n,this.length,i,this.height,this.breaks)}replace(e,A,i){let n=i[0];return i.length==1&&(n instanceof t||n instanceof x1&&n.flags&4)&&Math.abs(this.length-n.length)<10?(n instanceof x1?n=new t(n.length,this.height):n.height=this.height,this.outdated||(n.outdated=!1),n):Ic.of(i)}updateHeight(e,A=0,i=!1,n){return n&&n.from<=A&&n.more?this.setHeight(n.heights[n.index++]):(i||this.outdated)&&this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},x1=class t extends Ic{constructor(e){super(e,0)}heightMetrics(e,A){let i=e.doc.lineAt(A).number,n=e.doc.lineAt(A+this.length).number,o=n-i+1,r,s=0;if(e.lineWrapping){let a=Math.min(this.height,e.lineHeight*o);r=a/o,this.length>o+1&&(s=(this.height-a)/(this.length-o-1))}else r=this.height/o;return{firstLine:i,lastLine:n,perLine:r,perChar:s}}blockAt(e,A,i,n){let{firstLine:o,lastLine:r,perLine:s,perChar:a}=this.heightMetrics(A,n);if(A.lineWrapping){let c=n+(e0){let o=i[i.length-1];o instanceof t?i[i.length-1]=new t(o.length+n):i.push(null,new t(n-1))}if(e>0){let o=i[0];o instanceof t?i[0]=new t(e+o.length):i.unshift(new t(e-1),null)}return Ic.of(i)}decomposeLeft(e,A){A.push(new t(e-1),null)}decomposeRight(e,A){A.push(null,new t(this.length-e-1))}updateHeight(e,A=0,i=!1,n){let o=A+this.length;if(n&&n.from<=A+this.length&&n.more){let r=[],s=Math.max(A,n.from),a=-1;for(n.from>A&&r.push(new t(n.from-A-1).updateHeight(e,A));s<=o&&n.more;){let g=e.doc.lineAt(s).length;r.length&&r.push(null);let I=n.heights[n.index++];a==-1?a=I:Math.abs(I-a)>=qD&&(a=-2);let C=new qc(g,I);C.outdated=!1,r.push(C),s+=g+1}s<=o&&r.push(null,new t(o-s).updateHeight(e,s));let c=Ic.of(r);return(a<0||Math.abs(c.height-this.height)>=qD||Math.abs(a-this.heightMetrics(e,A).perLine)>=qD)&&(PE=!0),nw(this,c)}else(i||this.outdated)&&(this.setHeight(e.heightForGap(A,A+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},XN=class extends Ic{constructor(e,A,i){super(e.length+A+i.length,e.height+i.height,A|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return this.flags&1}blockAt(e,A,i,n){let o=i+this.left.height;return es))return c;let g=A==zo.ByPosNoHeight?zo.ByPosNoHeight:zo.ByPos;return a?c.join(this.right.lineAt(s,g,i,r,s)):this.left.lineAt(s,g,i,n,o).join(c)}forEachLine(e,A,i,n,o,r){let s=n+this.left.height,a=o+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,A,i,s,a,r);else{let c=this.lineAt(a,zo.ByPos,i,n,o);e=e&&c.from<=A&&r(c),A>c.to&&this.right.forEachLine(c.to+1,A,i,s,a,r)}}replace(e,A,i){let n=this.left.length+this.break;if(Athis.left.length)return this.balanced(this.left,this.right.replace(e-n,A-n,i));let o=[];e>0&&this.decomposeLeft(e,o);let r=o.length;for(let s of i)o.push(s);if(e>0&&ItA(o,r-1),A=i&&A.push(null)),e>i&&this.right.decomposeLeft(e-i,A)}decomposeRight(e,A){let i=this.left.length,n=i+this.break;if(e>=n)return this.right.decomposeRight(e-n,A);e2*A.size||A.size>2*e.size?Ic.of(this.break?[e,null,A]:[e,A]):(this.left=nw(this.left,e),this.right=nw(this.right,A),this.setHeight(e.height+A.height),this.outdated=e.outdated||A.outdated,this.size=e.size+A.size,this.length=e.length+this.break+A.length,this)}updateHeight(e,A=0,i=!1,n){let{left:o,right:r}=this,s=A+o.length+this.break,a=null;return n&&n.from<=A+o.length&&n.more?a=o=o.updateHeight(e,A,i,n):o.updateHeight(e,A,i),n&&n.from<=s+r.length&&n.more?a=r=r.updateHeight(e,s,i,n):r.updateHeight(e,s,i),a?this.balanced(o,r):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function ItA(t,e){let A,i;t[e]==null&&(A=t[e-1])instanceof x1&&(i=t[e+1])instanceof x1&&t.splice(e-1,3,new x1(A.length+1+i.length))}var $LA=5,$N=class t{constructor(e,A){this.pos=e,this.oracle=A,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,A){if(this.lineStart>-1){let i=Math.min(A,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof qc?n.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new qc(i-this.pos,-1)),this.writtenTo=i,A>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=A}point(e,A,i){if(e=$LA)&&this.addLineDeco(n,o,r)}else A>e&&this.span(e,A);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:A}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=A,this.writtenToe&&this.nodes.push(new qc(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,A){let i=new x1(A-e);return this.oracle.doc.lineAt(e).to==A&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof qc)return e;let A=new qc(0,-1);return this.nodes.push(A),A}addBlock(e){this.enterLine();let A=e.deco;A&&A.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,A&&A.endSide>0&&(this.covering=e)}addLineDeco(e,A,i){let n=this.ensureLine();n.length+=i,n.collapsed+=i,n.widgetHeight=Math.max(n.widgetHeight,e),n.breaks+=A,this.writtenTo=this.pos=this.pos+i}finish(e){let A=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(A instanceof qc)&&!this.isCovered?this.nodes.push(new qc(0,-1)):(this.writtenTog.clientHeight||g.scrollWidth>g.clientWidth)&&I.overflow!="visible"){let C=g.getBoundingClientRect();o=Math.max(o,C.left),r=Math.min(r,C.right),s=Math.max(s,C.top),a=Math.min(c==t.parentNode?n.innerHeight:a,C.bottom)}c=I.position=="absolute"||I.position=="fixed"?g.offsetParent:g.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:o-A.left,right:Math.max(o,r)-A.left,top:s-(A.top+e),bottom:Math.max(s,a)-(A.top+e)}}function txA(t){let e=t.getBoundingClientRect(),A=t.ownerDocument.defaultView||window;return e.left0&&e.top0}function ixA(t,e){let A=t.getBoundingClientRect();return{left:0,right:A.right-A.left,top:e,bottom:A.bottom-(A.top+e)}}var o3=class{constructor(e,A,i,n){this.from=e,this.to=A,this.size=i,this.displaySize=n}static same(e,A){if(e.length!=A.length)return!1;for(let i=0;itypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new ZN(A),this.stateDeco=e.facet(B3).filter(i=>typeof i!="function"),this.heightMap=Ic.empty().applyChanges(this.stateDeco,tn.empty,this.heightOracle.setDoc(e.doc),[new Ol(0,0,0,e.doc.length)]);for(let i=0;i<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());i++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=ht.set(this.lineGaps.map(i=>i.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:A}=this.state.selection;for(let i=0;i<=1;i++){let n=i?A.head:A.anchor;if(!e.some(({from:o,to:r})=>n>=o&&n<=r)){let{from:o,to:r}=this.lineBlockAt(n);e.push(new TE(o,r))}}return this.viewports=e.sort((i,n)=>i.from-n.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?CtA:new tF(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push($4(e,this.scaler))})}update(e,A=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=this.state.facet(B3).filter(g=>typeof g!="function");let n=e.changedRanges,o=Ol.extendWithRanges(n,AxA(i,this.stateDeco,e?e.changes:hs.empty(this.state.doc.length))),r=this.heightMap.height,s=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);ltA(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),o),(this.heightMap.height!=r||PE)&&(e.flags|=2),s?(this.scrollAnchorPos=e.changes.mapPos(s.from,-1),this.scrollAnchorHeight=s.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=r);let a=o.length?this.mapViewport(this.viewport,e.changes):this.viewport;(A&&(A.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,A));let c=a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),A&&(this.scrollTarget=A),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(eiA)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let A=e.contentDOM,i=window.getComputedStyle(A),n=this.heightOracle,o=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?Co.RTL:Co.LTR;let r=this.heightOracle.mustRefreshForWrapping(o),s=A.getBoundingClientRect(),a=r||this.mustMeasureContent||this.contentDOMHeight!=s.height;this.contentDOMHeight=s.height,this.mustMeasureContent=!1;let c=0,g=0;if(s.width&&s.height){let{scaleX:R,scaleY:D}=StA(A,s);(R>.005&&Math.abs(this.scaleX-R)>.005||D>.005&&Math.abs(this.scaleY-D)>.005)&&(this.scaleX=R,this.scaleY=D,c|=16,r=a=!0)}let I=(parseInt(i.paddingTop)||0)*this.scaleY,C=(parseInt(i.paddingBottom)||0)*this.scaleY;(this.paddingTop!=I||this.paddingBottom!=C)&&(this.paddingTop=I,this.paddingBottom=C,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(n.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let d=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=d&&(this.scrollAnchorHeight=-1,this.scrollTop=d),this.scrolledToBottom=xtA(e.scrollDOM);let B=(this.printing?ixA:exA)(A,this.paddingTop),E=B.top-this.pixelViewport.top,u=B.bottom-this.pixelViewport.bottom;this.pixelViewport=B;let h=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(h!=this.inView&&(this.inView=h,h&&(a=!0)),!this.inView&&!this.scrollTarget&&!txA(e.dom))return 0;let w=s.width;if((this.contentDOMWidth!=w||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=s.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),a){let R=e.docView.measureVisibleLineHeights(this.viewport);if(n.mustRefreshForHeights(R)&&(r=!0),r||n.lineWrapping&&Math.abs(w-this.contentDOMWidth)>n.charWidth){let{lineHeight:D,charWidth:G,textHeight:J}=e.docView.measureTextSize();r=D>0&&n.refresh(o,D,G,J,Math.max(5,w/G),R),r&&(e.docView.minWidth=0,c|=16)}E>0&&u>0?g=Math.max(E,u):E<0&&u<0&&(g=Math.min(E,u)),ltA();for(let D of this.viewports){let G=D.from==this.viewport.from?R:e.docView.measureVisibleLineHeights(D);this.heightMap=(r?Ic.empty().applyChanges(this.stateDeco,tn.empty,this.heightOracle,[new Ol(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(n,0,r,new WN(D.from,G))}PE&&(c|=2)}let x=!this.viewportIsAppropriate(this.viewport,g)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return x&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(g,this.scrollTarget),c|=this.updateForViewport()),(c&2||x)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(r?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,A){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),n=this.heightMap,o=this.heightOracle,{visibleTop:r,visibleBottom:s}=this,a=new TE(n.lineAt(r-i*1e3,zo.ByHeight,o,0,0).from,n.lineAt(s+(1-i)*1e3,zo.ByHeight,o,0,0).to);if(A){let{head:c}=A.range;if(ca.to){let g=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),I=n.lineAt(c,zo.ByPos,o,0,0),C;A.y=="center"?C=(I.top+I.bottom)/2-g/2:A.y=="start"||A.y=="nearest"&&c=s+Math.max(10,Math.min(i,250)))&&n>r-2*1e3&&o>1,r=n<<1;if(this.defaultTextDirection!=Co.LTR&&!i)return[];let s=[],a=(g,I,C,d)=>{if(I-gg&&hh.from>=C.from&&h.to<=C.to&&Math.abs(h.from-g)h.fromw));if(!u){if(Ix.from<=I&&x.to>=I)){let x=A.moveToLineBoundary(ae.cursor(I),!1,!0).head;x>g&&(I=x)}let h=this.gapSize(C,g,I,d),w=i||h<2e6?h:2e6;u=new o3(g,I,h,w)}s.push(u)},c=g=>{if(g.length2e6)for(let G of e)G.from>=g.from&&G.fromg.from&&a(g.from,d,g,I),BA.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let A=this.stateDeco;this.lineGaps.length&&(A=A.concat(this.lineGapDeco));let i=[];Io.spans(A,this.viewport.from,this.viewport.to,{span(o,r){i.push({from:o,to:r})},point(){}},20);let n=0;if(i.length!=this.visibleRanges.length)n=12;else for(let o=0;o=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(A=>A.from<=e&&A.to>=e)||$4(this.heightMap.lineAt(e,zo.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(A=>A.top<=e&&A.bottom>=e)||$4(this.heightMap.lineAt(this.scaler.fromDOM(e),zo.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let A=this.lineBlockAtHeight(e+8);return A.from>=this.viewport.from||this.viewportLines[0].top-e>200?A:this.viewportLines[0]}elementAtHeight(e){return $4(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},TE=class{constructor(e,A){this.from=e,this.to=A}};function nxA(t,e,A){let i=[],n=t,o=0;return Io.spans(A,t,e,{span(){},point(r,s){r>n&&(i.push({from:n,to:r}),o+=r-n),n=s}},20),n=1)return e[e.length-1].to;let i=Math.floor(t*A);for(let n=0;;n++){let{from:o,to:r}=e[n],s=r-o;if(i<=s)return o+i;i-=s}}function YD(t,e){let A=0;for(let{from:i,to:n}of t.ranges){if(e<=n){A+=e-i;break}A+=n-i}return A/t.total}function oxA(t,e){for(let A of t)if(e(A))return A}var CtA={toDOM(t){return t},fromDOM(t){return t},scale:1,eq(t){return t==this}},tF=class t{constructor(e,A,i){let n=0,o=0,r=0;this.viewports=i.map(({from:s,to:a})=>{let c=A.lineAt(s,zo.ByPos,e,0,0).top,g=A.lineAt(a,zo.ByPos,e,0,0).bottom;return n+=g-c,{from:s,to:a,top:c,bottom:g,domTop:0,domBottom:0}}),this.scale=(7e6-n)/(A.height-n);for(let s of this.viewports)s.domTop=r+(s.top-o)*this.scale,r=s.domBottom=s.domTop+(s.bottom-s.top),o=s.bottom}toDOM(e){for(let A=0,i=0,n=0;;A++){let o=AA.from==e.viewports[i].from&&A.to==e.viewports[i].to):!1}};function $4(t,e){if(e.scale==1)return t;let A=e.toDOM(t.top),i=e.toDOM(t.bottom);return new Tl(t.from,t.length,A,i-A,Array.isArray(t._content)?t._content.map(n=>$4(n,e)):t._content)}var TD=qe.define({combine:t=>t.join(" ")}),MN=qe.define({combine:t=>t.indexOf(!0)>-1}),iF=jc.newName(),hiA=jc.newName(),fiA=jc.newName(),miA={"&light":"."+hiA,"&dark":"."+fiA};function nF(t,e,A){return new jc(e,{finish(i){return/&/.test(i)?i.replace(/&\w*/,n=>{if(n=="&")return t;if(!A||!A[n])throw new RangeError(`Unsupported selector: ${n}`);return A[n]}):t+" "+i}})}var rxA=nF("."+iF,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},miA),sxA={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},bN=it.ie&&it.ie_version<=11,oF=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new xN,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(A=>{for(let i of A)this.queue.push(i);(it.ie&&it.ie_version<=11||it.ios&&e.composing)&&A.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&it.android&&e.constructor.EDIT_CONTEXT!==!1&&!(it.chrome&&it.chrome_version<126)&&(this.editContext=new rF(e),e.state.facet(P0)&&(e.contentDOM.editContext=this.editContext.editContext)),bN&&(this.onCharData=A=>{this.queue.push({target:A.target,type:"characterData",oldValue:A.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var A;((A=this.view.docView)===null||A===void 0?void 0:A.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),A.length>0&&A[A.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(A=>{A.length>0&&A[A.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((A,i)=>A!=e[i]))){this.gapIntersection.disconnect();for(let A of e)this.gapIntersection.observe(A);this.gaps=e}}onSelectionChange(e){let A=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,n=this.selectionRange;if(i.state.facet(P0)?i.root.activeElement!=this.dom:!zD(this.dom,n))return;let o=n.anchorNode&&i.docView.nearest(n.anchorNode);if(o&&o.ignoreEvent(e)){A||(this.selectionChanged=!1);return}(it.ie&&it.ie_version<=11||it.android&&it.chrome)&&!i.state.selection.main.empty&&n.focusNode&&e3(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,A=a3(e.root);if(!A)return!1;let i=it.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&axA(this.view,A)||A;if(!i||this.selectionRange.eq(i))return!1;let n=zD(this.dom,i);return n&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let o=this.delayedAndroidKey;o&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=o.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&o.force&&zE(this.dom,o.key,o.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(n)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:A,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let A=-1,i=-1,n=!1;for(let o of e){let r=this.readMutation(o);r&&(r.typeOver&&(n=!0),A==-1?{from:A,to:i}=r:(A=Math.min(r.from,A),i=Math.max(r.to,i)))}return{from:A,to:i,typeOver:n}}readChange(){let{from:e,to:A,typeOver:i}=this.processRecords(),n=this.selectionChanged&&zD(this.dom,this.selectionRange);if(e<0&&!n)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let o=new PN(this.view,e,A,i);return this.view.docView.domChanged={newSel:o.newSel?o.newSel.main:null},o}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let A=this.readChange();if(!A)return this.view.requestMeasure(),!1;let i=this.view.state,n=giA(this.view,A);return this.view.state==i&&(A.domChanged||A.newSel&&!A.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),n}readMutation(e){let A=this.view.docView.nearest(e.target);if(!A||A.ignoreMutation(e))return null;if(A.markDirty(e.type=="attributes"),e.type=="attributes"&&(A.flags|=4),e.type=="childList"){let i=dtA(A,e.previousSibling||e.target.previousSibling,-1),n=dtA(A,e.nextSibling||e.target.nextSibling,1);return{from:i?A.posAfter(i):A.posAtStart,to:n?A.posBefore(n):A.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:A.posAtStart,to:A.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(P0)!=e.state.facet(P0)&&(e.view.contentDOM.editContext=e.state.facet(P0)?this.editContext.editContext:null))}destroy(){var e,A,i;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(A=this.gapIntersection)===null||A===void 0||A.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect();for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function dtA(t,e,A){for(;e;){let i=No.get(e);if(i&&i.parent==t)return i;let n=e.parentNode;e=n!=t.dom?n:A>0?e.nextSibling:e.previousSibling}return null}function BtA(t,e){let A=e.startContainer,i=e.startOffset,n=e.endContainer,o=e.endOffset,r=t.docView.domAtPos(t.state.selection.main.anchor);return e3(r.node,r.offset,n,o)&&([A,i,n,o]=[n,o,A,i]),{anchorNode:A,anchorOffset:i,focusNode:n,focusOffset:o}}function axA(t,e){if(e.getComposedRanges){let n=e.getComposedRanges(t.root)[0];if(n)return BtA(t,n)}let A=null;function i(n){n.preventDefault(),n.stopImmediatePropagation(),A=n.getTargetRanges()[0]}return t.contentDOM.addEventListener("beforeinput",i,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",i,!0),A?BtA(t,A):null}var rF=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let A=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=i=>{let n=e.state.selection.main,{anchor:o,head:r}=n,s=this.toEditorPos(i.updateRangeStart),a=this.toEditorPos(i.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:i.updateRangeStart,editorBase:s,drifted:!1});let c={from:s,to:a,insert:tn.of(i.text.split(` +`))};if(c.from==this.from&&othis.to&&(c.to=o),c.from==c.to&&!c.insert.length){let g=ae.single(this.toEditorPos(i.selectionStart),this.toEditorPos(i.selectionEnd));g.main.eq(n)||e.dispatch({selection:g,userEvent:"select"});return}if((it.mac||it.android)&&c.from==r-1&&/^\. ?$/.test(i.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(c={from:s,to:a,insert:tn.of([i.text.replace("."," ")])}),this.pendingContextChange=c,!e.state.readOnly){let g=this.to-this.from+(c.to-c.from+c.insert.length);DF(e,c,ae.single(this.toEditorPos(i.selectionStart,g),this.toEditorPos(i.selectionEnd,g)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state))},this.handlers.characterboundsupdate=i=>{let n=[],o=null;for(let r=this.toEditorPos(i.rangeStart),s=this.toEditorPos(i.rangeEnd);r{let n=[];for(let o of i.getTextFormats()){let r=o.underlineStyle,s=o.underlineThickness;if(r!="None"&&s!="None"){let a=this.toEditorPos(o.rangeStart),c=this.toEditorPos(o.rangeEnd);if(a{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:i}=this.composing;this.composing=null,i&&this.reset(e.state)}};for(let i in this.handlers)A.addEventListener(i,this.handlers[i]);this.measureReq={read:i=>{this.editContext.updateControlBounds(i.contentDOM.getBoundingClientRect());let n=a3(i.root);n&&n.rangeCount&&this.editContext.updateSelectionBounds(n.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let A=0,i=!1,n=this.pendingContextChange;return e.changes.iterChanges((o,r,s,a,c)=>{if(i)return;let g=c.length-(r-o);if(n&&r>=n.to)if(n.from==o&&n.to==r&&n.insert.eq(c)){n=this.pendingContextChange=null,A+=g,this.to+=g;return}else n=null,this.revertPending(e.state);if(o+=A,r+=A,r<=this.from)this.from+=g,this.to+=g;else if(othis.to||this.to-this.from+c.length>3e4){i=!0;return}this.editContext.updateText(this.toContextPos(o),this.toContextPos(r),c.toString()),this.to+=g}A+=g}),n&&!i&&this.revertPending(e.state),!i}update(e){let A=this.pendingContextChange,i=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(i.from,i.to)&&e.transactions.some(n=>!n.isUserEvent("input.type")&&n.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||A)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:A}=e.selection.main;this.from=Math.max(0,A-1e4),this.to=Math.min(e.doc.length,A+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let A=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(A.from),this.toContextPos(A.from+A.insert.length),e.doc.sliceString(A.from,A.to))}setSelection(e){let{main:A}=e.selection,i=this.toContextPos(Math.max(this.from,Math.min(this.to,A.anchor))),n=this.toContextPos(A.head);(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=n)&&this.editContext.updateSelection(i,n)}rangeIsValid(e){let{head:A}=e.selection.main;return!(this.from>0&&A-this.from<500||this.to1e4*3)}toEditorPos(e,A=this.to-this.from){e=Math.min(e,A);let i=this.composing;return i&&i.drifted?i.editorBase+(e-i.contextBase):e+this.from}toContextPos(e){let A=this.composing;return A&&A.drifted?A.contextBase+(e-A.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},Pt=(()=>{class t{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(A={}){var i;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),A.parent&&A.parent.appendChild(this.dom);let{dispatch:n}=A;this.dispatchTransactions=A.dispatchTransactions||n&&(o=>o.forEach(r=>n(r,this)))||(o=>this.update(o)),this.dispatch=this.dispatch.bind(this),this._root=A.root||ALA(A.parent)||document,this.viewState=new rw(A.state||Dr.create(A)),A.scrollTo&&A.scrollTo.is(GD)&&(this.viewState.scrollTarget=A.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(YE).map(o=>new n3(o));for(let o of this.plugins)o.update(this);this.observer=new oF(this),this.inputState=new jN(this),this.inputState.ensureHandlers(this.plugins),this.docView=new tw(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((i=document.fonts)===null||i===void 0)&&i.ready&&document.fonts.ready.then(()=>this.requestMeasure())}dispatch(...A){let i=A.length==1&&A[0]instanceof Ul?A:A.length==1&&Array.isArray(A[0])?A[0]:[this.state.update(...A)];this.dispatchTransactions(i,this)}update(A){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let i=!1,n=!1,o,r=this.state;for(let d of A){if(d.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=d.state}if(this.destroyed){this.viewState.state=r;return}let s=this.hasFocus,a=0,c=null;A.some(d=>d.annotation(EiA))?(this.inputState.notifiedFocused=s,a=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,c=QiA(r,s),c||(a=1));let g=this.observer.delayedAndroidKey,I=null;if(g?(this.observer.clearDelayedAndroidKey(),I=this.observer.readChange(),(I&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(I=null)):this.observer.clear(),r.facet(Dr.phrases)!=this.state.facet(Dr.phrases))return this.setState(r);o=ew.create(this,r,A),o.flags|=a;let C=this.viewState.scrollTarget;try{this.updateState=2;for(let d of A){if(C&&(C=C.map(d.changes)),d.scrollIntoView){let{main:B}=d.state.selection;C=new i3(B.empty?B:ae.cursor(B.head,B.head>B.anchor?-1:1))}for(let B of d.effects)B.is(GD)&&(C=B.value.clip(this.state))}this.viewState.update(o,C),this.bidiCache=sw.update(this.bidiCache,o.changes),o.empty||(this.updatePlugins(o),this.inputState.update(o)),i=this.docView.update(o),this.state.facet(Z4)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(A),this.docView.updateSelection(i,A.some(d=>d.isUserEvent("select.pointer")))}finally{this.updateState=0}if(o.startState.facet(TD)!=o.state.facet(TD)&&(this.viewState.mustMeasureContent=!0),(i||n||C||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),i&&this.docViewUpdate(),!o.empty)for(let d of this.state.facet(wN))try{d(o)}catch(B){is(this.state,B,"update listener")}(c||I)&&Promise.resolve().then(()=>{c&&this.state==c.startState&&this.dispatch(c),I&&!giA(this,I)&&g.force&&zE(this.contentDOM,g.key,g.keyCode)})}setState(A){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=A;return}this.updateState=2;let i=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new rw(A),this.plugins=A.facet(YE).map(n=>new n3(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView.destroy(),this.docView=new tw(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}i&&this.focus(),this.requestMeasure()}updatePlugins(A){let i=A.startState.facet(YE),n=A.state.facet(YE);if(i!=n){let o=[];for(let r of n){let s=i.indexOf(r);if(s<0)o.push(new n3(r));else{let a=this.plugins[s];a.mustUpdate=A,o.push(a)}}for(let r of this.plugins)r.mustUpdate!=A&&r.destroy(this);this.plugins=o,this.pluginMap.clear()}else for(let o of this.plugins)o.mustUpdate=A;for(let o=0;o-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,A&&this.observer.forceFlush();let i=null,n=this.scrollDOM,o=n.scrollTop*this.scaleY,{scrollAnchorPos:r,scrollAnchorHeight:s}=this.viewState;Math.abs(o-this.viewState.scrollTop)>1&&(s=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(s<0)if(xtA(n))r=-1,s=this.viewState.heightMap.height;else{let B=this.viewState.scrollAnchorAt(o);r=B.from,s=B.top}this.updateState=1;let c=this.viewState.measure(this);if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let g=[];c&4||([this.measureRequests,g]=[g,this.measureRequests]);let I=g.map(B=>{try{return B.read(this)}catch(E){return is(this.state,E),EtA}}),C=ew.create(this,this.state,[]),d=!1;C.flags|=c,i?i.flags|=c:i=C,this.updateState=2,C.empty||(this.updatePlugins(C),this.inputState.update(C),this.updateAttrs(),d=this.docView.update(C),d&&this.docViewUpdate());for(let B=0;B1||E<-1){o=o+E,n.scrollTop=o/this.scaleY,s=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(i&&!i.empty)for(let a of this.state.facet(wN))a(i)}get themeClasses(){return iF+" "+(this.state.facet(MN)?fiA:hiA)+" "+this.state.facet(TD)}updateAttrs(){let A=QtA(this,qeA,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),i={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(P0)?"true":"false",class:"cm-content",style:`${it.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(i["aria-readonly"]="true"),QtA(this,TN,i);let n=this.observer.ignore(()=>{let o=KN(this.contentDOM,this.contentAttrs,i),r=KN(this.dom,this.editorAttrs,A);return o||r});return this.editorAttrs=A,this.contentAttrs=i,n}showAnnouncements(A){let i=!0;for(let n of A)for(let o of n.effects)if(o.is(t.announce)){i&&(this.announceDOM.textContent=""),i=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=o.value}}mountStyles(){this.styleModules=this.state.facet(Z4);let A=this.state.facet(t.cspNonce);jc.mount(this.root,this.styleModules.concat(rxA).reverse(),A?{nonce:A}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(A){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),A){if(this.measureRequests.indexOf(A)>-1)return;if(A.key!=null){for(let i=0;in.plugin==A)||null),i&&i.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(A){return this.readMeasured(),this.viewState.elementAtHeight(A)}lineBlockAtHeight(A){return this.readMeasured(),this.viewState.lineBlockAtHeight(A)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(A){return this.viewState.lineBlockAt(A)}get contentHeight(){return this.viewState.contentHeight}moveByChar(A,i,n){return vN(this,A,AtA(this,A,i,n))}moveByGroup(A,i){return vN(this,A,AtA(this,A,i,n=>RLA(this,A.head,n)))}visualLineSide(A,i){let n=this.bidiSpans(A),o=this.textDirectionAt(A.from),r=n[i?n.length-1:0];return ae.cursor(r.side(i,o)+A.from,r.forward(!i,o)?1:-1)}moveToLineBoundary(A,i,n=!0){return SLA(this,A,i,n)}moveVertically(A,i,n){return vN(this,A,LLA(this,A,i,n))}domAtPos(A){return this.docView.domAtPos(A)}posAtDOM(A,i=0){return this.docView.posFromDOM(A,i)}posAtCoords(A,i=!0){return this.readMeasured(),aiA(this,A,i)}coordsAtPos(A,i=1){this.readMeasured();let n=this.docView.coordsAt(A,i);if(!n||n.left==n.right)return n;let o=this.state.doc.lineAt(A),r=this.bidiSpans(o),s=r[Hl.find(r,A-o.from,-1,i)];return Cw(n,s.dir==Co.LTR==i>0)}coordsForChar(A){return this.readMeasured(),this.docView.coordsForChar(A)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(A){return!this.state.facet(jeA)||Athis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(A))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(A){if(A.length>cxA)return jtA(A.length);let i=this.textDirectionAt(A.from),n;for(let r of this.bidiCache)if(r.from==A.from&&r.dir==i&&(r.fresh||PtA(r.isolates,n=VeA(this,A))))return r.order;n||(n=VeA(this,A));let o=dLA(A.text,i,n);return this.bidiCache.push(new sw(A.from,A.to,i,n,!0,o)),o}get hasFocus(){var A;return(this.dom.ownerDocument.hasFocus()||it.safari&&((A=this.inputState)===null||A===void 0?void 0:A.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{RtA(this.contentDOM),this.docView.updateSelection()})}setRoot(A){this._root!=A&&(this._root=A,this.observer.setWindow((A.nodeType==9?A:A.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let A of this.plugins)A.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(A,i={}){return GD.of(new i3(typeof A=="number"?ae.cursor(A):A,i.y,i.x,i.yMargin,i.xMargin))}scrollSnapshot(){let{scrollTop:A,scrollLeft:i}=this.scrollDOM,n=this.viewState.scrollAnchorAt(A);return GD.of(new i3(ae.cursor(n.from),"start","start",n.top-A,i,!0))}setTabFocusMode(A){A==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof A=="boolean"?this.inputState.tabFocusMode=A?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+A)}static domEventHandlers(A){return Bo.define(()=>({}),{eventHandlers:A})}static domEventObservers(A){return Bo.define(()=>({}),{eventObservers:A})}static theme(A,i){let n=jc.newName(),o=[TD.of(n),Z4.of(nF(`.${n}`,A))];return i&&i.dark&&o.push(MN.of(!0)),o}static baseTheme(A){return Ng.lowest(Z4.of(nF("."+iF,A,miA)))}static findFromDOM(A){var i;let n=A.querySelector(".cm-content"),o=n&&No.get(n)||No.get(A);return((i=o?.rootView)===null||i===void 0?void 0:i.view)||null}}return t.styleModule=Z4,t.inputHandler=$tA,t.clipboardInputFilter=fF,t.clipboardOutputFilter=mF,t.scrollHandler=tiA,t.focusChangeEffect=AiA,t.perLineTextDirection=jeA,t.exceptionSink=XtA,t.updateListener=wN,t.editable=P0,t.mouseSelectionStyle=WtA,t.dragMovesSelection=ZtA,t.clickAddsSelectionRange=VtA,t.decorations=B3,t.outerDecorations=niA,t.atomicRanges=Bw,t.bidiIsolatedRanges=oiA,t.scrollMargins=riA,t.darkTheme=MN,t.cspNonce=qe.define({combine:e=>e.length?e[0]:""}),t.contentAttributes=TN,t.editorAttributes=qeA,t.lineWrapping=t.contentAttributes.of({class:"cm-lineWrapping"}),t.announce=Ki.define(),t})(),cxA=4096,EtA={},sw=class t{constructor(e,A,i,n,o,r){this.from=e,this.to=A,this.dir=i,this.isolates=n,this.fresh=o,this.order=r}static update(e,A){if(A.empty&&!e.some(o=>o.fresh))return e;let i=[],n=e.length?e[e.length-1].dir:Co.LTR;for(let o=Math.max(0,e.length-10);o=0;n--){let o=i[n],r=typeof o=="function"?o(t):o;r&&GN(r,A)}return A}var gxA=it.mac?"mac":it.windows?"win":it.linux?"linux":"key";function lxA(t,e){let A=t.split(/-(?!$)/),i=A[A.length-1];i=="Space"&&(i=" ");let n,o,r,s;for(let a=0;ai.concat(n),[]))),A}function DiA(t,e,A){return wiA(piA(t.state),e,t,A)}var L1=null,CxA=4e3;function dxA(t,e=gxA){let A=Object.create(null),i=Object.create(null),n=(r,s)=>{let a=i[r];if(a==null)i[r]=s;else if(a!=s)throw new Error("Key binding "+r+" is used both as a regular binding and as a multi-stroke prefix")},o=(r,s,a,c,g)=>{var I,C;let d=A[r]||(A[r]=Object.create(null)),B=s.split(/ (?!$)/).map(h=>lxA(h,e));for(let h=1;h{let R=L1={view:x,prefix:w,scope:r};return setTimeout(()=>{L1==R&&(L1=null)},CxA),!0}]})}let E=B.join(" ");n(E,!1);let u=d[E]||(d[E]={preventDefault:!1,stopPropagation:!1,run:((C=(I=d._any)===null||I===void 0?void 0:I.run)===null||C===void 0?void 0:C.slice())||[]});a&&u.run.push(a),c&&(u.preventDefault=!0),g&&(u.stopPropagation=!0)};for(let r of t){let s=r.scope?r.scope.split(" "):["editor"];if(r.any)for(let c of s){let g=A[c]||(A[c]=Object.create(null));g._any||(g._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:I}=r;for(let C in g)g[C].run.push(d=>I(d,sF))}let a=r[e]||r.key;if(a)for(let c of s)o(c,a,r.run,r.preventDefault,r.stopPropagation),r.shift&&o(c,"Shift-"+a,r.shift,r.preventDefault,r.stopPropagation)}return A}var sF=null;function wiA(t,e,A,i){sF=e;let n=GeA(e),o=ms(n,0),r=lc(o)==n.length&&n!=" ",s="",a=!1,c=!1,g=!1;L1&&L1.view==A&&L1.scope==i&&(s=L1.prefix+" ",IiA.indexOf(e.keyCode)<0&&(c=!0,L1=null));let I=new Set,C=u=>{if(u){for(let h of u.run)if(!I.has(h)&&(I.add(h),h(A)))return u.stopPropagation&&(g=!0),!0;u.preventDefault&&(u.stopPropagation&&(g=!0),c=!0)}return!1},d=t[i],B,E;return d&&(C(d[s+HD(n,e,!r)])?a=!0:r&&(e.altKey||e.metaKey||e.ctrlKey)&&!(it.windows&&e.ctrlKey&&e.altKey)&&!(it.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(B=z0[e.keyCode])&&B!=n?(C(d[s+HD(B,e,!0)])||e.shiftKey&&(E=UE[e.keyCode])!=n&&E!=B&&C(d[s+HD(E,e,!1)]))&&(a=!0):r&&e.shiftKey&&C(d[s+HD(n,e,!0)])&&(a=!0),!a&&C(d._any)&&(a=!0)),c&&(a=!0),a&&g&&e.stopPropagation(),sF=null,a}var E3=class t{constructor(e,A,i,n,o){this.className=e,this.left=A,this.top=i,this.width=n,this.height=o}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,A){return A.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,A,i){if(i.empty){let n=e.coordsAtPos(i.head,i.assoc||1);if(!n)return[];let o=yiA(e);return[new t(A,n.left-o.left,n.top-o.top,null,n.bottom-n.top)]}else return BxA(e,A,i)}};function yiA(t){let e=t.scrollDOM.getBoundingClientRect();return{left:(t.textDirection==Co.LTR?e.left:e.right-t.scrollDOM.clientWidth*t.scaleX)-t.scrollDOM.scrollLeft*t.scaleX,top:e.top-t.scrollDOM.scrollTop*t.scaleY}}function htA(t,e,A,i){let n=t.coordsAtPos(e,A*2);if(!n)return i;let o=t.dom.getBoundingClientRect(),r=(n.top+n.bottom)/2,s=t.posAtCoords({x:o.left+1,y:r}),a=t.posAtCoords({x:o.right-1,y:r});return s==null||a==null?i:{from:Math.max(i.from,Math.min(s,a)),to:Math.min(i.to,Math.max(s,a))}}function BxA(t,e,A){if(A.to<=t.viewport.from||A.from>=t.viewport.to)return[];let i=Math.max(A.from,t.viewport.from),n=Math.min(A.to,t.viewport.to),o=t.textDirection==Co.LTR,r=t.contentDOM,s=r.getBoundingClientRect(),a=yiA(t),c=r.querySelector(".cm-line"),g=c&&window.getComputedStyle(c),I=s.left+(g?parseInt(g.paddingLeft)+Math.min(0,parseInt(g.textIndent)):0),C=s.right-(g?parseInt(g.paddingRight):0),d=ON(t,i,1),B=ON(t,n,-1),E=d.type==na.Text?d:null,u=B.type==na.Text?B:null;if(E&&(t.lineWrapping||d.widgetLineBreaks)&&(E=htA(t,i,1,E)),u&&(t.lineWrapping||B.widgetLineBreaks)&&(u=htA(t,n,-1,u)),E&&u&&E.from==u.from&&E.to==u.to)return w(x(A.from,A.to,E));{let D=E?x(A.from,null,E):R(d,!1),G=u?x(null,A.to,u):R(B,!0),J=[];return(E||d).to<(u||B).from-(E&&u?1:0)||d.widgetLineBreaks>1&&D.bottom+t.defaultLineHeight/2j&&fA.from=IA)break;wA>EA&&V(Math.max(lA,EA),D==null&&lA<=j,Math.min(wA,IA),G==null&&wA>=dA,nA.dir)}if(EA=SA.to+1,EA>=IA)break}return O.length==0&&V(j,D==null,dA,G==null,t.textDirection),{top:z,bottom:K,horizontal:O}}function R(D,G){let J=s.top+(G?D.top:D.bottom);return{top:J,bottom:J,horizontal:[]}}}function ExA(t,e){return t.constructor==e.constructor&&t.eq(e)}var aF=class{constructor(e,A){this.view=e,this.layer=A,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),A.above&&this.dom.classList.add("cm-layer-above"),A.class&&this.dom.classList.add(A.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),A.mount&&A.mount(this.dom,e)}update(e){e.startState.facet(VD)!=e.state.facet(VD)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let A=0,i=e.facet(VD);for(;A!ExA(A,this.drawn[i]))){let A=this.dom.firstChild,i=0;for(let n of e)n.update&&A&&n.constructor&&this.drawn[i].constructor&&n.update(A,this.drawn[i])?(A=A.nextSibling,i++):this.dom.insertBefore(n.draw(),A);for(;A;){let n=A.nextSibling;A.remove(),A=n}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},VD=qe.define();function viA(t){return[Bo.define(e=>new aF(e,t)),VD.of(t)]}var Q3=qe.define({combine(t){return ts(t,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,A)=>Math.min(e,A),drawRangeCursor:(e,A)=>e||A})}});function MiA(t={}){return[Q3.of(t),QxA,uxA,hxA,eiA.of(!0)]}function biA(t){return t.startState.facet(Q3)!=t.state.facet(Q3)}var QxA=viA({above:!0,markers(t){let{state:e}=t,A=e.facet(Q3),i=[];for(let n of e.selection.ranges){let o=n==e.selection.main;if(n.empty||A.drawRangeCursor){let r=o?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",s=n.empty?n:ae.cursor(n.head,n.head>n.anchor?-1:1);for(let a of E3.forRange(t,r,s))i.push(a)}}return i},update(t,e){t.transactions.some(i=>i.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let A=biA(t);return A&&ftA(t.state,e),t.docChanged||t.selectionSet||A},mount(t,e){ftA(e.state,t)},class:"cm-cursorLayer"});function ftA(t,e){e.style.animationDuration=t.facet(Q3).cursorBlinkRate+"ms"}var uxA=viA({above:!1,markers(t){return t.state.selection.ranges.map(e=>e.empty?[]:E3.forRange(t,"cm-selectionBackground",e)).reduce((e,A)=>e.concat(A))},update(t,e){return t.docChanged||t.selectionSet||t.viewportChanged||biA(t)},class:"cm-selectionLayer"}),hxA=Ng.highest(Pt.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),kiA=Ki.define({map(t,e){return t==null?null:e.mapPos(t)}}),A3=tr.define({create(){return null},update(t,e){return t!=null&&(t=e.changes.mapPos(t)),e.effects.reduce((A,i)=>i.is(kiA)?i.value:A,t)}}),fxA=Bo.fromClass(class{constructor(t){this.view=t,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(t){var e;let A=t.state.field(A3);A==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(t.startState.field(A3)!=A||t.docChanged||t.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:t}=this,e=t.state.field(A3),A=e!=null&&t.coordsAtPos(e);if(!A)return null;let i=t.scrollDOM.getBoundingClientRect();return{left:A.left-i.left+t.scrollDOM.scrollLeft*t.scaleX,top:A.top-i.top+t.scrollDOM.scrollTop*t.scaleY,height:A.bottom-A.top}}drawCursor(t){if(this.cursor){let{scaleX:e,scaleY:A}=this.view;t?(this.cursor.style.left=t.left/e+"px",this.cursor.style.top=t.top/A+"px",this.cursor.style.height=t.height/A+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(t){this.view.state.field(A3)!=t&&this.view.dispatch({effects:kiA.of(t)})}},{eventObservers:{dragover(t){this.setDropPos(this.view.posAtCoords({x:t.clientX,y:t.clientY}))},dragleave(t){(t.target==this.view.contentDOM||!this.view.contentDOM.contains(t.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function SiA(){return[A3,fxA]}function mtA(t,e,A,i,n){e.lastIndex=0;for(let o=t.iterRange(A,i),r=A,s;!o.next().done;r+=o.value.length)if(!o.lineBreak)for(;s=e.exec(o.value);)n(r+s.index,s)}function mxA(t,e){let A=t.visibleRanges;if(A.length==1&&A[0].from==t.viewport.from&&A[0].to==t.viewport.to)return A;let i=[];for(let{from:n,to:o}of A)n=Math.max(t.state.doc.lineAt(n).from,n-e),o=Math.min(t.state.doc.lineAt(o).to,o+e),i.length&&i[i.length-1].to>=n?i[i.length-1].to=o:i.push({from:n,to:o});return i}var cF=class{constructor(e){let{regexp:A,decoration:i,decorate:n,boundary:o,maxLength:r=1e3}=e;if(!A.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=A,n)this.addMatch=(s,a,c,g)=>n(g,c,c+s[0].length,s,a);else if(typeof i=="function")this.addMatch=(s,a,c,g)=>{let I=i(s,a,c);I&&g(c,c+s[0].length,I)};else if(i)this.addMatch=(s,a,c,g)=>g(c,c+s[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=o,this.maxLength=r}createDeco(e){let A=new fs,i=A.add.bind(A);for(let{from:n,to:o}of mxA(e,this.maxLength))mtA(e.state.doc,this.regexp,n,o,(r,s)=>this.addMatch(s,e,r,i));return A.finish()}updateDeco(e,A){let i=1e9,n=-1;return e.docChanged&&e.changes.iterChanges((o,r,s,a)=>{a>=e.view.viewport.from&&s<=e.view.viewport.to&&(i=Math.min(s,i),n=Math.max(a,n))}),e.viewportMoved||n-i>1e3?this.createDeco(e.view):n>-1?this.updateRange(e.view,A.map(e.changes),i,n):A}updateRange(e,A,i,n){for(let o of e.visibleRanges){let r=Math.max(o.from,i),s=Math.min(o.to,n);if(s>=r){let a=e.state.doc.lineAt(r),c=a.toa.from;r--)if(this.boundary.test(a.text[r-1-a.from])){g=r;break}for(;sC.push(h.range(E,u));if(a==c)for(this.regexp.lastIndex=g-a.from;(d=this.regexp.exec(a.text))&&d.indexthis.addMatch(u,e,E,B));A=A.update({filterFrom:g,filterTo:I,filter:(E,u)=>EI,add:C})}}return A}},gF=/x/.unicode!=null?"gu":"g",pxA=new RegExp(`[\0-\b +-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,gF),DxA={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},kN=null;function wxA(){var t;if(kN==null&&typeof document<"u"&&document.body){let e=document.body.style;kN=((t=e.tabSize)!==null&&t!==void 0?t:e.MozTabSize)!=null}return kN||!1}var ZD=qe.define({combine(t){let e=ts(t,{render:null,specialChars:pxA,addSpecialChars:null});return(e.replaceTabs=!wxA())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,gF)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,gF)),e}});function RiA(t={}){return[ZD.of(t),yxA()]}var ptA=null;function yxA(){return ptA||(ptA=Bo.fromClass(class{constructor(t){this.view=t,this.decorations=ht.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(t.state.facet(ZD)),this.decorations=this.decorator.createDeco(t)}makeDecorator(t){return new cF({regexp:t.specialChars,decoration:(e,A,i)=>{let{doc:n}=A.state,o=ms(e[0],0);if(o==9){let r=n.lineAt(i),s=A.state.tabSize,a=O0(r.text,s,i-r.from);return ht.replace({widget:new IF((s-a%s)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[o]||(this.decorationCache[o]=ht.replace({widget:new lF(t,o)}))},boundary:t.replaceTabs?void 0:/[^]/})}update(t){let e=t.state.facet(ZD);t.startState.facet(ZD)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(t.view)):this.decorations=this.decorator.updateDeco(t,this.decorations)}},{decorations:t=>t.decorations}))}var vxA="\u2022";function MxA(t){return t>=32?vxA:t==10?"\u2424":String.fromCharCode(9216+t)}var lF=class extends Cc{constructor(e,A){super(),this.options=e,this.code=A}eq(e){return e.code==this.code}toDOM(e){let A=MxA(this.code),i=e.state.phrase("Control character")+" "+(DxA[this.code]||"0x"+this.code.toString(16)),n=this.options.render&&this.options.render(this.code,i,A);if(n)return n;let o=document.createElement("span");return o.textContent=A,o.title=i,o.setAttribute("aria-label",i),o.className="cm-specialChar",o}ignoreEvent(){return!1}},IF=class extends Cc{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};function LiA(){return kxA}var bxA=ht.line({class:"cm-activeLine"}),kxA=Bo.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.docChanged||t.selectionSet)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=-1,A=[];for(let i of t.state.selection.ranges){let n=t.lineBlockAt(i.head);n.from>e&&(A.push(bxA.range(n.from)),e=n.from)}return ht.set(A)}},{decorations:t=>t.decorations});var CF=2e3;function SxA(t,e,A){let i=Math.min(e.line,A.line),n=Math.max(e.line,A.line),o=[];if(e.off>CF||A.off>CF||e.col<0||A.col<0){let r=Math.min(e.off,A.off),s=Math.max(e.off,A.off);for(let a=i;a<=n;a++){let c=t.doc.line(a);c.length<=s&&o.push(ae.range(c.from+r,c.to+s))}}else{let r=Math.min(e.col,A.col),s=Math.max(e.col,A.col);for(let a=i;a<=n;a++){let c=t.doc.line(a),g=ND(c.text,r,t.tabSize,!0);if(g<0)o.push(ae.cursor(c.to));else{let I=ND(c.text,s,t.tabSize);o.push(ae.range(c.from+g,c.from+I))}}}return o}function RxA(t,e){let A=t.coordsAtPos(t.viewport.from);return A?Math.round(Math.abs((A.left-e)/t.defaultCharacterWidth)):-1}function DtA(t,e){let A=t.posAtCoords({x:e.clientX,y:e.clientY},!1),i=t.state.doc.lineAt(A),n=A-i.from,o=n>CF?-1:n==i.length?RxA(t,e.clientX):O0(i.text,t.state.tabSize,A-i.from);return{line:i.number,col:o,off:n}}function LxA(t,e){let A=DtA(t,e),i=t.state.selection;return A?{update(n){if(n.docChanged){let o=n.changes.mapPos(n.startState.doc.line(A.line).from),r=n.state.doc.lineAt(o);A={line:r.number,col:A.col,off:Math.min(A.off,r.length)},i=i.map(n.changes)}},get(n,o,r){let s=DtA(t,n);if(!s)return i;let a=SxA(t.state,A,s);return a.length?r?ae.create(a.concat(i.ranges)):ae.create(a):i}}:null}function xiA(t){let e=t?.eventFilter||(A=>A.altKey&&A.button==0);return Pt.mouseSelectionStyle.of((A,i)=>e(i)?LxA(A,i):null)}var xxA={Alt:[18,t=>!!t.altKey],Control:[17,t=>!!t.ctrlKey],Shift:[16,t=>!!t.shiftKey],Meta:[91,t=>!!t.metaKey]},NxA={style:"cursor: crosshair"};function NiA(t={}){let[e,A]=xxA[t.key||"Alt"],i=Bo.fromClass(class{constructor(n){this.view=n,this.isDown=!1}set(n){this.isDown!=n&&(this.isDown=n,this.view.update([]))}},{eventObservers:{keydown(n){this.set(n.keyCode==e||A(n))},keyup(n){(n.keyCode==e||!A(n))&&this.set(!1)},mousemove(n){this.set(A(n))}}});return[i,Pt.contentAttributes.of(n=>{var o;return!((o=n.plugin(i))===null||o===void 0)&&o.isDown?NxA:null})]}var W4="-10000px",aw=class{constructor(e,A,i,n){this.facet=A,this.createTooltipView=i,this.removeTooltipView=n,this.input=e.state.facet(A),this.tooltips=this.input.filter(r=>r);let o=null;this.tooltipViews=this.tooltips.map(r=>o=i(r,o))}update(e,A){var i;let n=e.state.facet(this.facet),o=n.filter(a=>a);if(n===this.input){for(let a of this.tooltipViews)a.update&&a.update(e);return!1}let r=[],s=A?[]:null;for(let a=0;aA[c]=a),A.length=s.length),this.input=n,this.tooltips=o,this.tooltipViews=r,!0}};function FxA(t){let e=t.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}var SN=qe.define({combine:t=>{var e,A,i;return{position:it.ios?"absolute":((e=t.find(n=>n.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((A=t.find(n=>n.parent))===null||A===void 0?void 0:A.parent)||null,tooltipSpace:((i=t.find(n=>n.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||FxA}}}),wtA=new WeakMap,wF=Bo.fromClass(class{constructor(t){this.view=t,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=t.state.facet(SN);this.position=e.position,this.parent=e.parent,this.classes=t.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new aw(t,qE,(A,i)=>this.createTooltip(A,i),A=>{this.resizeObserver&&this.resizeObserver.unobserve(A.dom),A.dom.remove()}),this.above=this.manager.tooltips.map(A=>!!A.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(A=>{Date.now()>this.lastTransaction-50&&A.length>0&&A[A.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),t.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let t of this.manager.tooltipViews)this.intersectionObserver.observe(t.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(t){t.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(t,this.above);e&&this.observeIntersection();let A=e||t.geometryChanged,i=t.state.facet(SN);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let n of this.manager.tooltipViews)n.dom.style.position=this.position;A=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let n of this.manager.tooltipViews)this.container.appendChild(n.dom);A=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);A&&this.maybeMeasure()}createTooltip(t,e){let A=t.create(this.view),i=e?e.dom:null;if(A.dom.classList.add("cm-tooltip"),t.arrow&&!A.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let n=document.createElement("div");n.className="cm-tooltip-arrow",A.dom.appendChild(n)}return A.dom.style.position=this.position,A.dom.style.top=W4,A.dom.style.left="0px",this.container.insertBefore(A.dom,i),A.mount&&A.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(A.dom),A}destroy(){var t,e,A;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),(t=i.destroy)===null||t===void 0||t.call(i);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(A=this.intersectionObserver)===null||A===void 0||A.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let t=1,e=1,A=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:o}=this.manager.tooltipViews[0];if(it.gecko)A=o.offsetParent!=this.container.ownerDocument.body;else if(o.style.top==W4&&o.style.left=="0px"){let r=o.getBoundingClientRect();A=Math.abs(r.top+1e4)>1||Math.abs(r.left)>1}}if(A||this.position=="absolute")if(this.parent){let o=this.parent.getBoundingClientRect();o.width&&o.height&&(t=o.width/this.parent.offsetWidth,e=o.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:e}=this.view.viewState);let i=this.view.scrollDOM.getBoundingClientRect(),n=pF(this.view);return{visible:{left:i.left+n.left,top:i.top+n.top,right:i.right-n.right,bottom:i.bottom-n.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((o,r)=>{let s=this.manager.tooltipViews[r];return s.getCoords?s.getCoords(o.pos):this.view.coordsAtPos(o.pos)}),size:this.manager.tooltipViews.map(({dom:o})=>o.getBoundingClientRect()),space:this.view.state.facet(SN).tooltipSpace(this.view),scaleX:t,scaleY:e,makeAbsolute:A}}writeMeasure(t){var e;if(t.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let s of this.manager.tooltipViews)s.dom.style.position="absolute"}let{visible:A,space:i,scaleX:n,scaleY:o}=t,r=[];for(let s=0;s=Math.min(A.bottom,i.bottom)||I.rightMath.min(A.right,i.right)+.1)){g.style.top=W4;continue}let d=a.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,B=d?7:0,E=C.right-C.left,u=(e=wtA.get(c))!==null&&e!==void 0?e:C.bottom-C.top,h=c.offset||GxA,w=this.view.textDirection==Co.LTR,x=C.width>i.right-i.left?w?i.left:i.right-C.width:w?Math.max(i.left,Math.min(I.left-(d?14:0)+h.x,i.right-E)):Math.min(Math.max(i.left,I.left-E+(d?14:0)-h.x),i.right-E),R=this.above[s];!a.strictSide&&(R?I.top-u-B-h.yi.bottom)&&R==i.bottom-I.bottom>I.top-i.top&&(R=this.above[s]=!R);let D=(R?I.top-i.top:i.bottom-I.bottom)-B;if(Dx&&z.topG&&(G=R?z.top-u-2-B:z.bottom+B+2);if(this.position=="absolute"?(g.style.top=(G-t.parent.top)/o+"px",ytA(g,(x-t.parent.left)/n)):(g.style.top=G/o+"px",ytA(g,x/n)),d){let z=I.left+(w?h.x:-h.x)-(x+14-7);d.style.left=z/n+"px"}c.overlap!==!0&&r.push({left:x,top:G,right:J,bottom:G+u}),g.classList.toggle("cm-tooltip-above",R),g.classList.toggle("cm-tooltip-below",!R),c.positioned&&c.positioned(t.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let t of this.manager.tooltipViews)t.dom.style.top=W4}},{eventObservers:{scroll(){this.maybeMeasure()}}});function ytA(t,e){let A=parseInt(t.style.left,10);(isNaN(A)||Math.abs(e-A)>1)&&(t.style.left=e+"px")}var _xA=Pt.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),GxA={x:0,y:0},qE=qe.define({enables:[wF,_xA]}),cw=qe.define({combine:t=>t.reduce((e,A)=>e.concat(A),[])}),gw=class t{static create(e){return new t(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new aw(e,cw,(A,i)=>this.createHostedView(A,i),A=>A.dom.remove())}createHostedView(e,A){let i=e.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(i.dom,A?A.dom.nextSibling:this.dom.firstChild),this.mounted&&i.mount&&i.mount(this.view),i}mount(e){for(let A of this.manager.tooltipViews)A.mount&&A.mount(e);this.mounted=!0}positioned(e){for(let A of this.manager.tooltipViews)A.positioned&&A.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let A of this.manager.tooltipViews)(e=A.destroy)===null||e===void 0||e.call(A)}passProp(e){let A;for(let i of this.manager.tooltipViews){let n=i[e];if(n!==void 0){if(A===void 0)A=n;else if(A!==n)return}}return A}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}},KxA=qE.compute([cw],t=>{let e=t.facet(cw);return e.length===0?null:{pos:Math.min(...e.map(A=>A.pos)),end:Math.max(...e.map(A=>{var i;return(i=A.end)!==null&&i!==void 0?i:A.pos})),create:gw.create,above:e[0].above,arrow:e.some(A=>A.arrow)}}),dF=class{constructor(e,A,i,n,o){this.view=e,this.source=A,this.field=i,this.setHover=n,this.hoverTime=o,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;es.bottom||A.xs.right+e.defaultCharacterWidth)return;let a=e.bidiSpans(e.state.doc.lineAt(n)).find(g=>g.from<=n&&g.to>=n),c=a&&a.dir==Co.RTL?-1:1;o=A.x{this.pending==s&&(this.pending=null,a&&!(Array.isArray(a)&&!a.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(a)?a:[a])}))},a=>is(e.state,a,"hover tooltip"))}else r&&!(Array.isArray(r)&&!r.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(r)?r:[r])})}get tooltip(){let e=this.view.plugin(wF),A=e?e.manager.tooltips.findIndex(i=>i.create==gw.create):-1;return A>-1?e.manager.tooltipViews[A]:null}mousemove(e){var A,i;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:n,tooltip:o}=this;if(n.length&&o&&!UxA(o.dom,e)||this.pending){let{pos:r}=n[0]||this.pending,s=(i=(A=n[0])===null||A===void 0?void 0:A.end)!==null&&i!==void 0?i:r;(r==s?this.view.posAtCoords(this.lastMove)!=r:!JxA(this.view,r,s,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:A}=this;if(A.length){let{tooltip:i}=this;i&&i.dom.contains(e.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let A=i=>{e.removeEventListener("mouseleave",A),this.active.length&&!this.view.dom.contains(i.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",A)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}},OD=4;function UxA(t,e){let{left:A,right:i,top:n,bottom:o}=t.getBoundingClientRect(),r;if(r=t.querySelector(".cm-tooltip-arrow")){let s=r.getBoundingClientRect();n=Math.min(s.top,n),o=Math.max(s.bottom,o)}return e.clientX>=A-OD&&e.clientX<=i+OD&&e.clientY>=n-OD&&e.clientY<=o+OD}function JxA(t,e,A,i,n,o){let r=t.scrollDOM.getBoundingClientRect(),s=t.documentTop+t.documentPadding.top+t.contentHeight;if(r.left>i||r.rightn||Math.min(r.bottom,s)=e&&a<=A}function FiA(t,e={}){let A=Ki.define(),i=tr.define({create(){return[]},update(n,o){if(n.length&&(e.hideOnChange&&(o.docChanged||o.selection)?n=[]:e.hideOn&&(n=n.filter(r=>!e.hideOn(o,r))),o.docChanged)){let r=[];for(let s of n){let a=o.changes.mapPos(s.pos,-1,us.TrackDel);if(a!=null){let c=Object.assign(Object.create(null),s);c.pos=a,c.end!=null&&(c.end=o.changes.mapPos(c.end)),r.push(c)}}n=r}for(let r of o.effects)r.is(A)&&(n=r.value),r.is(YxA)&&(n=[]);return n},provide:n=>cw.from(n)});return{active:i,extension:[i,Bo.define(n=>new dF(n,t,i,A,e.hoverTime||300)),KxA]}}function yF(t,e){let A=t.plugin(wF);if(!A)return null;let i=A.manager.tooltips.indexOf(e);return i<0?null:A.manager.tooltipViews[i]}var YxA=Ki.define();var vtA=qe.define({combine(t){let e,A;for(let i of t)e=e||i.topContainer,A=A||i.bottomContainer;return{topContainer:e,bottomContainer:A}}});function FC(t,e){let A=t.plugin(_iA),i=A?A.specs.indexOf(e):-1;return i>-1?A.panels[i]:null}var _iA=Bo.fromClass(class{constructor(t){this.input=t.state.facet(NC),this.specs=this.input.filter(A=>A),this.panels=this.specs.map(A=>A(t));let e=t.state.facet(vtA);this.top=new HE(t,!0,e.topContainer),this.bottom=new HE(t,!1,e.bottomContainer),this.top.sync(this.panels.filter(A=>A.top)),this.bottom.sync(this.panels.filter(A=>!A.top));for(let A of this.panels)A.dom.classList.add("cm-panel"),A.mount&&A.mount()}update(t){let e=t.state.facet(vtA);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new HE(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new HE(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let A=t.state.facet(NC);if(A!=this.input){let i=A.filter(a=>a),n=[],o=[],r=[],s=[];for(let a of i){let c=this.specs.indexOf(a),g;c<0?(g=a(t.view),s.push(g)):(g=this.panels[c],g.update&&g.update(t)),n.push(g),(g.top?o:r).push(g)}this.specs=i,this.panels=n,this.top.sync(o),this.bottom.sync(r);for(let a of s)a.dom.classList.add("cm-panel"),a.mount&&a.mount()}else for(let i of this.panels)i.update&&i.update(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>Pt.scrollMargins.of(e=>{let A=e.plugin(t);return A&&{top:A.top.scrollMargin(),bottom:A.bottom.scrollMargin()}})}),HE=class{constructor(e,A,i){this.view=e,this.top=A,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let A of this.panels)A.destroy&&e.indexOf(A)<0&&A.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let A=this.container||this.view.dom;A.insertBefore(this.dom,this.top?A.firstChild:null)}let e=this.dom.firstChild;for(let A of this.panels)if(A.dom.parentNode==this.dom){for(;e!=A.dom;)e=MtA(e);e=e.nextSibling}else this.dom.insertBefore(A.dom,e);for(;e;)e=MtA(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}};function MtA(t){let e=t.nextSibling;return t.remove(),e}var NC=qe.define({enables:_iA});var Ga=class extends xg{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};Ga.prototype.elementClass="";Ga.prototype.toDOM=void 0;Ga.prototype.mapMode=us.TrackBefore;Ga.prototype.startSide=Ga.prototype.endSide=-1;Ga.prototype.point=!0;var WD=qe.define(),TxA=qe.define(),HxA={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>Io.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},r3=qe.define();function Qw(t){return[GiA(),r3.of(sA(sA({},HxA),t))]}var BF=qe.define({combine:t=>t.some(e=>e)});function GiA(t){let e=[OxA];return t&&t.fixed===!1&&e.push(BF.of(!0)),e}var OxA=Bo.fromClass(class{constructor(t){this.view=t,this.domAfter=null,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet(r3).map(e=>new lw(t,e)),this.fixed=!t.state.facet(BF);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(t){if(this.updateGutters(t)){let e=this.prevViewport,A=t.view.viewport,i=Math.min(e.to,A.to)-Math.max(e.from,A.from);this.syncGutters(i<(A.to-A.from)*.8)}if(t.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(BF)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let A=Io.iter(this.view.state.facet(WD),this.view.viewport.from),i=[],n=this.gutters.map(o=>new QF(o,this.view.viewport,-this.view.documentPadding.top));for(let o of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(o.type)){let r=!0;for(let s of o.type)if(s.type==na.Text&&r){EF(A,i,s.from);for(let a of n)a.line(this.view,s,i);r=!1}else if(s.widget)for(let a of n)a.widget(this.view,s)}else if(o.type==na.Text){EF(A,i,o.from);for(let r of n)r.line(this.view,o,i)}else if(o.widget)for(let r of n)r.widget(this.view,o);for(let o of n)o.finish();t&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(t){let e=t.startState.facet(r3),A=t.state.facet(r3),i=t.docChanged||t.heightChanged||t.viewportChanged||!Io.eq(t.startState.facet(WD),t.state.facet(WD),t.view.viewport.from,t.view.viewport.to);if(e==A)for(let n of this.gutters)n.update(t)&&(i=!0);else{i=!0;let n=[];for(let o of A){let r=e.indexOf(o);r<0?n.push(new lw(this.view,o)):(this.gutters[r].update(t),n.push(this.gutters[r]))}for(let o of this.gutters)o.dom.remove(),n.indexOf(o)<0&&o.destroy();for(let o of n)o.config.side=="after"?this.getDOMAfter().appendChild(o.dom):this.dom.appendChild(o.dom);this.gutters=n}return i}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:t=>Pt.scrollMargins.of(e=>{let A=e.plugin(t);if(!A||A.gutters.length==0||!A.fixed)return null;let i=A.dom.offsetWidth*e.scaleX,n=A.domAfter?A.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==Co.LTR?{left:i,right:n}:{right:i,left:n}})});function btA(t){return Array.isArray(t)?t:[t]}function EF(t,e,A){for(;t.value&&t.from<=A;)t.from==A&&e.push(t.value),t.next()}var QF=class{constructor(e,A,i){this.gutter=e,this.height=i,this.i=0,this.cursor=Io.iter(e.markers,A.from)}addElement(e,A,i){let{gutter:n}=this,o=(A.top-this.height)/e.scaleY,r=A.height/e.scaleY;if(this.i==n.elements.length){let s=new Iw(e,r,o,i);n.elements.push(s),n.dom.appendChild(s.dom)}else n.elements[this.i].update(e,r,o,i);this.height=A.bottom,this.i++}line(e,A,i){let n=[];EF(this.cursor,n,A.from),i.length&&(n=n.concat(i));let o=this.gutter.config.lineMarker(e,A,n);o&&n.unshift(o);let r=this.gutter;n.length==0&&!r.config.renderEmptyElements||this.addElement(e,A,n)}widget(e,A){let i=this.gutter.config.widgetMarker(e,A.widget,A),n=i?[i]:null;for(let o of e.state.facet(TxA)){let r=o(e,A.widget,A);r&&(n||(n=[])).push(r)}n&&this.addElement(e,A,n)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let A=e.elements.pop();e.dom.removeChild(A.dom),A.destroy()}}},lw=class{constructor(e,A){this.view=e,this.config=A,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in A.domEventHandlers)this.dom.addEventListener(i,n=>{let o=n.target,r;if(o!=this.dom&&this.dom.contains(o)){for(;o.parentNode!=this.dom;)o=o.parentNode;let a=o.getBoundingClientRect();r=(a.top+a.bottom)/2}else r=n.clientY;let s=e.lineBlockAtHeight(r-e.documentTop);A.domEventHandlers[i](e,s,n)&&n.preventDefault()});this.markers=btA(A.markers(e)),A.initialSpacer&&(this.spacer=new Iw(e,0,0,[A.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let A=this.markers;if(this.markers=btA(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let n=this.config.updateSpacer(this.spacer.markers[0],e);n!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[n])}let i=e.view.viewport;return!Io.eq(this.markers,A,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}},Iw=class{constructor(e,A,i,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,A,i,n)}update(e,A,i,n){this.height!=A&&(this.height=A,this.dom.style.height=A+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),zxA(this.markers,n)||this.setMarkers(e,n)}setMarkers(e,A){let i="cm-gutterElement",n=this.dom.firstChild;for(let o=0,r=0;;){let s=r,a=oo(s,a,c)||r(s,a,c):r}return i}})}}),s3=class extends Ga{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}};function RN(t,e){return t.state.facet(OE).formatNumber(e,t.state)}var qxA=r3.compute([OE],t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(PxA)},lineMarker(e,A,i){return i.some(n=>n.toDOM)?null:new s3(RN(e,e.state.doc.lineAt(A.from).number))},widgetMarker:(e,A,i)=>{for(let n of e.state.facet(jxA)){let o=n(e,A,i);if(o)return o}return null},lineMarkerChange:e=>e.startState.facet(OE)!=e.state.facet(OE),initialSpacer(e){return new s3(RN(e,ktA(e.state.doc.lines)))},updateSpacer(e,A){let i=RN(A.view,ktA(A.view.state.doc.lines));return i==e.number?e:new s3(i)},domEventHandlers:t.facet(OE).domEventHandlers,side:"before"}));function KiA(t={}){return[OE.of(t),GiA(),qxA]}function ktA(t){let e=9;for(;e{let e=[],A=-1;for(let i of t.selection.ranges){let n=t.doc.lineAt(i.head).from;n>A&&(A=n,e.push(VxA.range(n)))}return Io.of(e)});function UiA(){return ZxA}var WxA=0,u3=class{constructor(e,A){this.from=e,this.to=A}},di=class{constructor(e={}){this.id=WxA++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=Ks.match(e)),A=>{let i=e(A);return i===void 0?null:[this,i]}}};di.closedBy=new di({deserialize:t=>t.split(" ")});di.openedBy=new di({deserialize:t=>t.split(" ")});di.group=new di({deserialize:t=>t.split(" ")});di.isolate=new di({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}});di.contextHash=new di({perNode:!0});di.lookAhead=new di({perNode:!0});di.mounted=new di({perNode:!0});var VE=class{constructor(e,A,i){this.tree=e,this.overlay=A,this.parser=i}static get(e){return e&&e.props&&e.props[di.mounted.id]}},XxA=Object.create(null),Ks=class t{constructor(e,A,i,n=0){this.name=e,this.props=A,this.id=i,this.flags=n}static define(e){let A=e.props&&e.props.length?Object.create(null):XxA,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),n=new t(e.name||"",A,e.id,i);if(e.props){for(let o of e.props)if(Array.isArray(o)||(o=o(n)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");A[o[0].id]=o[1]}}return n}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let A=this.prop(di.group);return A?A.indexOf(e)>-1:!1}return this.id==e}static match(e){let A=Object.create(null);for(let i in e)for(let n of i.split(" "))A[n]=e[i];return i=>{for(let n=i.prop(di.group),o=-1;o<(n?n.length:0);o++){let r=A[o<0?i.name:n[o]];if(r)return r}}}};Ks.none=new Ks("",Object.create(null),0,8);var h3=class t{constructor(e){this.types=e;for(let A=0;A0;for(let a=this.cursor(r|zr.IncludeAnonymous);;){let c=!1;if(a.from<=o&&a.to>=n&&(!s&&a.type.isAnonymous||A(a)!==!1)){if(a.firstChild())continue;c=!0}for(;c&&i&&(s||!a.type.isAnonymous)&&i(a),!a.nextSibling();){if(!a.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let A in this.props)e.push([+A,this.props[A]]);return e}balance(e={}){return this.children.length<=8?this:LF(Ks.none,this.children,this.positions,0,this.children.length,0,this.length,(A,i,n)=>new t(this.type,A,i,n,this.propValues),e.makeTree||((A,i,n)=>new t(Ks.none,A,i,n)))}static build(e){return ANA(e)}};wr.empty=new wr(Ks.none,[],[],0);var vF=class t{constructor(e,A){this.buffer=e,this.index=A}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new t(this.buffer,this.index)}},_1=class t{constructor(e,A,i){this.buffer=e,this.length=A,this.set=i}get type(){return Ks.none}toString(){let e=[];for(let A=0;A0));a=r[a+3]);return s}slice(e,A,i){let n=this.buffer,o=new Uint16Array(A-e),r=0;for(let s=e,a=0;s=e&&Ae;case 1:return A<=e&&i>e;case 2:return i>e;case 4:return!0}}function f3(t,e,A,i){for(var n;t.from==t.to||(A<1?t.from>=e:t.from>e)||(A>-1?t.to<=e:t.to0?s.length:-1;e!=c;e+=A){let g=s[e],I=a[e]+r.from;if(HiA(n,i,I,I+g.length)){if(g instanceof _1){if(o&zr.ExcludeBuffers)continue;let C=g.findChild(0,g.buffer.length,A,i-I,n);if(C>-1)return new m3(new bF(r,g,e,I),null,C)}else if(o&zr.IncludeAnonymous||!g.type.isAnonymous||RF(g)){let C;if(!(o&zr.IgnoreMounts)&&(C=VE.get(g))&&!C.overlay)return new t(C.tree,I,e,r);let d=new t(g,I,e,r);return o&zr.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(A<0?g.children.length-1:0,A,i,n)}}}if(o&zr.IncludeAnonymous||!r.type.isAnonymous||(r.index>=0?e=r.index+A:e=A<0?-1:r._parent._tree.children.length,r=r._parent,!r))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,A,i=0){let n;if(!(i&zr.IgnoreOverlays)&&(n=VE.get(this._tree))&&n.overlay){let o=e-this.from;for(let{from:r,to:s}of n.overlay)if((A>0?r<=o:r=o:s>o))return new t(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,A,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function YiA(t,e,A,i){let n=t.cursor(),o=[];if(!n.firstChild())return o;if(A!=null){for(let r=!1;!r;)if(r=n.type.is(A),!n.nextSibling())return o}for(;;){if(i!=null&&n.type.is(i))return o;if(n.type.is(e)&&o.push(n.node),!n.nextSibling())return i==null?o:[]}}function MF(t,e,A=e.length-1){for(let i=t;A>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[A]&&e[A]!=i.name)return!1;A--}}return!0}var bF=class{constructor(e,A,i,n){this.parent=e,this.buffer=A,this.index=i,this.start=n}},m3=class t extends fw{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,A,i){super(),this.context=e,this._parent=A,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,A,i){let{buffer:n}=this.context,o=n.findChild(this.index+4,n.buffer[this.index+3],e,A-this.context.start,i);return o<0?null:new t(this.context,this,o)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,A,i=0){if(i&zr.ExcludeBuffers)return null;let{buffer:n}=this.context,o=n.findChild(this.index+4,n.buffer[this.index+3],A>0?1:-1,e-this.context.start,A);return o<0?null:new t(this.context,this,o)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,A=e.buffer[this.index+3];return A<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new t(this.context,this._parent,A):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,A=this._parent?this._parent.index+4:0;return this.index==A?this.externalSibling(-1):new t(this.context,this._parent,e.findChild(A,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],A=[],{buffer:i}=this.context,n=this.index+4,o=i.buffer[this.index+3];if(o>n){let r=i.buffer[this.index+1];e.push(i.slice(n,o,r)),A.push(0)}return new wr(this.type,e,A,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function OiA(t){if(!t.length)return null;let e=0,A=t[0];for(let o=1;oA.from||r.to=e){let s=new jl(r.tree,r.overlay[0].from+o.from,-1,o);(n||(n=[i])).push(f3(s,e,A,!1))}}return n?OiA(n):i}var p3=class{get name(){return this.type.name}constructor(e,A=0){if(this.mode=A,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof jl)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,A){this.index=e;let{start:i,buffer:n}=this.buffer;return this.type=A||n.set.types[n.buffer[e]],this.from=i+n.buffer[e+1],this.to=i+n.buffer[e+2],!0}yield(e){return e?e instanceof jl?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,A,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,A,i,this.mode));let{buffer:n}=this.buffer,o=n.findChild(this.index+4,n.buffer[this.index+3],e,A-this.buffer.start,i);return o<0?!1:(this.stack.push(this.index),this.yieldBuf(o))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,A,i=this.mode){return this.buffer?i&zr.ExcludeBuffers?!1:this.enterChild(1,e,A):this.yield(this._tree.enter(e,A,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&zr.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&zr.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:A}=this.buffer,i=this.stack.length-1;if(e<0){let n=i<0?0:this.stack[i]+4;if(this.index!=n)return this.yieldBuf(A.findChild(n,this.index,-1,0,4))}else{let n=A.buffer[this.index+3];if(n<(i<0?A.buffer.length:A.buffer[this.stack[i]+3]))return this.yieldBuf(n)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let A,i,{buffer:n}=this;if(n){if(e>0){if(this.index-1)for(let o=A+e,r=e<0?-1:i._tree.children.length;o!=r;o+=e){let s=i._tree.children[o];if(this.mode&zr.IncludeAnonymous||s instanceof _1||!s.type.isAnonymous||RF(s))return!1}return!0}move(e,A){if(A&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,A=0){for(;(this.from==this.to||(A<1?this.from>=e:this.from>e)||(A>-1?this.to<=e:this.to=0;){for(let r=e;r;r=r._parent)if(r.index==n){if(n==this.index)return r;A=r,i=o+1;break A}n=this.stack[--o]}for(let n=i;n=0;o--){if(o<0)return MF(this._tree,e,n);let r=i[A.buffer[this.stack[o]]];if(!r.isAnonymous){if(e[n]&&e[n]!=r.name)return!1;n--}}return!0}};function RF(t){return t.children.some(e=>e instanceof _1||!e.type.isAnonymous||RF(e))}function ANA(t){var e;let{buffer:A,nodeSet:i,maxBufferLength:n=1024,reused:o=[],minRepeatType:r=i.types.length}=t,s=Array.isArray(A)?new vF(A,A.length):A,a=i.types,c=0,g=0;function I(D,G,J,z,K,O){let{id:V,start:j,end:dA,size:fA}=s,EA=g,IA=c;for(;fA<0;)if(s.next(),fA==-1){let VA=o[V];J.push(VA),z.push(j-D);return}else if(fA==-3){c=V;return}else if(fA==-4){g=V;return}else throw new RangeError(`Unrecognized record size: ${fA}`);let SA=a[V],nA,lA,wA=j-D;if(dA-j<=n&&(lA=u(s.pos-G,K))){let VA=new Uint16Array(lA.size-lA.skip),ie=s.pos-lA.size,UA=VA.length;for(;s.pos>ie;)UA=h(lA.start,VA,UA);nA=new _1(VA,dA-lA.start,i),wA=lA.start-D}else{let VA=s.pos-fA;s.next();let ie=[],UA=[],BA=V>=r?V:-1,JA=0,Xe=dA;for(;s.pos>VA;)BA>=0&&s.id==BA&&s.size>=0?(s.end<=Xe-n&&(B(ie,UA,j,JA,s.end,Xe,BA,EA,IA),JA=ie.length,Xe=s.end),s.next()):O>2500?C(j,VA,ie,UA):I(j,VA,ie,UA,BA,O+1);if(BA>=0&&JA>0&&JA-1&&JA>0){let We=d(SA,IA);nA=LF(SA,ie,UA,0,ie.length,0,dA-j,We,We)}else nA=E(SA,ie,UA,dA-j,EA-dA,IA)}J.push(nA),z.push(wA)}function C(D,G,J,z){let K=[],O=0,V=-1;for(;s.pos>G;){let{id:j,start:dA,end:fA,size:EA}=s;if(EA>4)s.next();else{if(V>-1&&dA=0;fA-=3)j[EA++]=K[fA],j[EA++]=K[fA+1]-dA,j[EA++]=K[fA+2]-dA,j[EA++]=EA;J.push(new _1(j,K[2]-dA,i)),z.push(dA-D)}}function d(D,G){return(J,z,K)=>{let O=0,V=J.length-1,j,dA;if(V>=0&&(j=J[V])instanceof wr){if(!V&&j.type==D&&j.length==K)return j;(dA=j.prop(di.lookAhead))&&(O=z[V]+j.length+dA)}return E(D,J,z,K,O,G)}}function B(D,G,J,z,K,O,V,j,dA){let fA=[],EA=[];for(;D.length>z;)fA.push(D.pop()),EA.push(G.pop()+J-K);D.push(E(i.types[V],fA,EA,O-K,j-O,dA)),G.push(K-J)}function E(D,G,J,z,K,O,V){if(O){let j=[di.contextHash,O];V=V?[j].concat(V):[j]}if(K>25){let j=[di.lookAhead,K];V=V?[j].concat(V):[j]}return new wr(D,G,J,z,V)}function u(D,G){let J=s.fork(),z=0,K=0,O=0,V=J.end-n,j={size:0,start:0,skip:0};A:for(let dA=J.pos-D;J.pos>dA;){let fA=J.size;if(J.id==G&&fA>=0){j.size=z,j.start=K,j.skip=O,O+=4,z+=4,J.next();continue}let EA=J.pos-fA;if(fA<0||EA=r?4:0,SA=J.start;for(J.next();J.pos>EA;){if(J.size<0)if(J.size==-3)IA+=4;else break A;else J.id>=r&&(IA+=4);J.next()}K=SA,z+=fA,O+=IA}return(G<0||z==D)&&(j.size=z,j.start=K,j.skip=O),j.size>4?j:void 0}function h(D,G,J){let{id:z,start:K,end:O,size:V}=s;if(s.next(),V>=0&&z4){let dA=s.pos-(V-4);for(;s.pos>dA;)J=h(D,G,J)}G[--J]=j,G[--J]=O-D,G[--J]=K-D,G[--J]=z}else V==-3?c=z:V==-4&&(g=z);return J}let w=[],x=[];for(;s.pos>0;)I(t.start||0,t.bufferStart||0,w,x,-1,0);let R=(e=t.length)!==null&&e!==void 0?e:w.length?x[0]+w[0].length:0;return new wr(a[t.topID],w.reverse(),x.reverse(),R)}var TiA=new WeakMap;function hw(t,e){if(!t.isAnonymous||e instanceof _1||e.type!=t)return 1;let A=TiA.get(e);if(A==null){A=1;for(let i of e.children){if(i.type!=t||!(i instanceof wr)){A=1;break}A+=hw(t,i)}TiA.set(e,A)}return A}function LF(t,e,A,i,n,o,r,s,a){let c=0;for(let B=i;B=g)break;G+=J}if(x==R+1){if(G>g){let J=B[R];d(J.children,J.positions,0,J.children.length,E[R]+w);continue}I.push(B[R])}else{let J=E[x-1]+B[x-1].length-D;I.push(LF(t,B,E,R,x,D,J,null,a))}C.push(D+w-o)}}return d(e,A,i,n,0),(s||a)(I,C,r)}var _C=class t{constructor(e,A,i,n,o=!1,r=!1){this.from=e,this.to=A,this.tree=i,this.offset=n,this.open=(o?1:0)|(r?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,A=[],i=!1){let n=[new t(0,e.length,e,0,!1,i)];for(let o of A)o.to>e.length&&n.push(o);return n}static applyChanges(e,A,i=128){if(!A.length)return e;let n=[],o=1,r=e.length?e[0]:null;for(let s=0,a=0,c=0;;s++){let g=s=i)for(;r&&r.from=C.from||I<=C.to||c){let d=Math.max(C.from,a)-c,B=Math.min(C.to,I)-c;C=d>=B?null:new t(d,B,C.tree,C.offset+c,s>0,!!g)}if(C&&n.push(C),r.to>I)break;r=onew u3(n.from,n.to)):[new u3(0,0)]:[new u3(0,e.length)],this.createParse(e,A||[],i)}parse(e,A,i){let n=this.startParse(e,A,i);for(;;){let o=n.advance();if(o)return o}}},SF=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,A){return this.string.slice(e,A)}};var V5e=new di({perNode:!0});var eNA=0,_g=class t{constructor(e,A,i,n){this.name=e,this.set=A,this.base=i,this.modified=n,this.id=eNA++}toString(){let{name:e}=this;for(let A of this.modified)A.name&&(e=`${A.name}(${e})`);return e}static define(e,A){let i=typeof e=="string"?e:"?";if(e instanceof t&&(A=e),A?.base)throw new Error("Can not derive from a modified tag");let n=new t(i,[],null,[]);if(n.set.push(n),A)for(let o of A.set)n.set.push(o);return n}static defineModifier(e){let A=new ww(e);return i=>i.modified.indexOf(A)>-1?i:ww.get(i.base||i,i.modified.concat(A).sort((n,o)=>n.id-o.id))}},tNA=0,ww=class t{constructor(e){this.name=e,this.instances=[],this.id=tNA++}static get(e,A){if(!A.length)return e;let i=A[0].instances.find(s=>s.base==e&&iNA(A,s.modified));if(i)return i;let n=[],o=new _g(e.name,n,e,A);for(let s of A)s.instances.push(o);let r=nNA(A);for(let s of e.set)if(!s.modified.length)for(let a of r)n.push(t.get(s,a));return o}};function iNA(t,e){return t.length==e.length&&t.every((A,i)=>A==e[i])}function nNA(t){let e=[[]];for(let A=0;Ai.length-A.length)}function yw(t){let e=Object.create(null);for(let A in t){let i=t[A];Array.isArray(i)||(i=[i]);for(let n of A.split(" "))if(n){let o=[],r=2,s=n;for(let I=0;;){if(s=="..."&&I>0&&I+3==n.length){r=1;break}let C=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(s);if(!C)throw new RangeError("Invalid path: "+n);if(o.push(C[0]=="*"?"":C[0][0]=='"'?JSON.parse(C[0]):C[0]),I+=C[0].length,I==n.length)break;let d=n[I++];if(I==n.length&&d=="!"){r=0;break}if(d!="/")throw new RangeError("Invalid path: "+n);s=n.slice(I)}let a=o.length-1,c=o[a];if(!c)throw new RangeError("Invalid path: "+n);let g=new WE(i,r,a>0?o.slice(0,a):null);e[c]=g.sort(e[c])}}return jiA.add(e)}var jiA=new di,WE=class{constructor(e,A,i,n){this.tags=e,this.mode=A,this.context=i,this.next=n}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let r=n;for(let s of o)for(let a of s.set){let c=A[a.id];if(c){r=r?r+" "+c:c;break}}return r},scope:i}}function oNA(t,e){let A=null;for(let i of t){let n=i.style(e);n&&(A=A?A+" "+n:n)}return A}function qiA(t,e,A,i=0,n=t.length){let o=new NF(i,Array.isArray(e)?e:[e],A);o.highlightRange(t.cursor(),i,n,"",o.highlighters),o.flush(n)}var NF=class{constructor(e,A,i){this.at=e,this.highlighters=A,this.span=i,this.class=""}startSpan(e,A){A!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=A)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,A,i,n,o){let{type:r,from:s,to:a}=e;if(s>=i||a<=A)return;r.isTop&&(o=this.highlighters.filter(d=>!d.scope||d.scope(r)));let c=n,g=rNA(e)||WE.empty,I=oNA(o,g.tags);if(I&&(c&&(c+=" "),c+=I,g.mode==1&&(n+=(n?" ":"")+I)),this.startSpan(Math.max(A,s),c),g.opaque)return;let C=e.tree&&e.tree.prop(di.mounted);if(C&&C.overlay){let d=e.node.enter(C.overlay[0].from+s,1),B=this.highlighters.filter(u=>!u.scope||u.scope(C.tree.type)),E=e.firstChild();for(let u=0,h=s;;u++){let w=u=x||!e.nextSibling())););if(!w||x>i)break;h=w.to+s,h>A&&(this.highlightRange(d.cursor(),Math.max(A,w.from+s),Math.min(i,h),"",B),this.startSpan(Math.min(i,h),c))}E&&e.parent()}else if(e.firstChild()){C&&(n="");do if(!(e.to<=A)){if(e.from>=i)break;this.highlightRange(e,A,i,n,o),this.startSpan(Math.min(i,e.to),c)}while(e.nextSibling());e.parent()}}};function rNA(t){let e=t.type.prop(jiA);for(;e&&e.context&&!t.matchContext(e.context);)e=e.next;return e||null}var ze=_g.define,mw=ze(),G1=ze(),ziA=ze(G1),PiA=ze(G1),K1=ze(),pw=ze(K1),xF=ze(K1),Zl=ze(),GC=ze(Zl),ql=ze(),Vl=ze(),FF=ze(),D3=ze(FF),Dw=ze(),ke={comment:mw,lineComment:ze(mw),blockComment:ze(mw),docComment:ze(mw),name:G1,variableName:ze(G1),typeName:ziA,tagName:ze(ziA),propertyName:PiA,attributeName:ze(PiA),className:ze(G1),labelName:ze(G1),namespace:ze(G1),macroName:ze(G1),literal:K1,string:pw,docString:ze(pw),character:ze(pw),attributeValue:ze(pw),number:xF,integer:ze(xF),float:ze(xF),bool:ze(K1),regexp:ze(K1),escape:ze(K1),color:ze(K1),url:ze(K1),keyword:ql,self:ze(ql),null:ze(ql),atom:ze(ql),unit:ze(ql),modifier:ze(ql),operatorKeyword:ze(ql),controlKeyword:ze(ql),definitionKeyword:ze(ql),moduleKeyword:ze(ql),operator:Vl,derefOperator:ze(Vl),arithmeticOperator:ze(Vl),logicOperator:ze(Vl),bitwiseOperator:ze(Vl),compareOperator:ze(Vl),updateOperator:ze(Vl),definitionOperator:ze(Vl),typeOperator:ze(Vl),controlOperator:ze(Vl),punctuation:FF,separator:ze(FF),bracket:D3,angleBracket:ze(D3),squareBracket:ze(D3),paren:ze(D3),brace:ze(D3),content:Zl,heading:GC,heading1:ze(GC),heading2:ze(GC),heading3:ze(GC),heading4:ze(GC),heading5:ze(GC),heading6:ze(GC),contentSeparator:ze(Zl),list:ze(Zl),quote:ze(Zl),emphasis:ze(Zl),strong:ze(Zl),link:ze(Zl),monospace:ze(Zl),strikethrough:ze(Zl),inserted:ze(),deleted:ze(),changed:ze(),invalid:ze(),meta:Dw,documentMeta:ze(Dw),annotation:ze(Dw),processingInstruction:ze(Dw),definition:_g.defineModifier("definition"),constant:_g.defineModifier("constant"),function:_g.defineModifier("function"),standard:_g.defineModifier("standard"),local:_g.defineModifier("local"),special:_g.defineModifier("special")};for(let t in ke){let e=ke[t];e instanceof _g&&(e.name=t)}var X5e=_F([{tag:ke.link,class:"tok-link"},{tag:ke.heading,class:"tok-heading"},{tag:ke.emphasis,class:"tok-emphasis"},{tag:ke.strong,class:"tok-strong"},{tag:ke.keyword,class:"tok-keyword"},{tag:ke.atom,class:"tok-atom"},{tag:ke.bool,class:"tok-bool"},{tag:ke.url,class:"tok-url"},{tag:ke.labelName,class:"tok-labelName"},{tag:ke.inserted,class:"tok-inserted"},{tag:ke.deleted,class:"tok-deleted"},{tag:ke.literal,class:"tok-literal"},{tag:ke.string,class:"tok-string"},{tag:ke.number,class:"tok-number"},{tag:[ke.regexp,ke.escape,ke.special(ke.string)],class:"tok-string2"},{tag:ke.variableName,class:"tok-variableName"},{tag:ke.local(ke.variableName),class:"tok-variableName tok-local"},{tag:ke.definition(ke.variableName),class:"tok-variableName tok-definition"},{tag:ke.special(ke.variableName),class:"tok-variableName2"},{tag:ke.definition(ke.propertyName),class:"tok-propertyName tok-definition"},{tag:ke.typeName,class:"tok-typeName"},{tag:ke.namespace,class:"tok-namespace"},{tag:ke.className,class:"tok-className"},{tag:ke.macroName,class:"tok-macroName"},{tag:ke.propertyName,class:"tok-propertyName"},{tag:ke.operator,class:"tok-operator"},{tag:ke.comment,class:"tok-comment"},{tag:ke.meta,class:"tok-meta"},{tag:ke.invalid,class:"tok-invalid"},{tag:ke.punctuation,class:"tok-punctuation"}]);var GF,XE=new di;function sNA(t){return qe.define({combine:t?e=>e.concat(t):void 0})}var aNA=new di,Gg=(()=>{class t{constructor(A,i,n=[],o=""){this.data=A,this.name=o,Dr.prototype.hasOwnProperty("tree")||Object.defineProperty(Dr.prototype,"tree",{get(){return ns(this)}}),this.parser=i,this.extension=[U1.of(this),Dr.languageData.of((r,s,a)=>{let c=ViA(r,s,a),g=c.type.prop(XE);if(!g)return[];let I=r.facet(g),C=c.type.prop(aNA);if(C){let d=c.resolve(s-c.from,a);for(let B of C)if(B.test(d,r)){let E=r.facet(B.facet);return B.type=="replace"?E:E.concat(I)}}return I})].concat(n)}isActiveAt(A,i,n=-1){return ViA(A,i,n).type.prop(XE)==this.data}findRegions(A){let i=A.facet(U1);if(i?.data==this.data)return[{from:0,to:A.doc.length}];if(!i||!i.allowsNesting)return[];let n=[],o=(r,s)=>{if(r.prop(XE)==this.data){n.push({from:s,to:s+r.length});return}let a=r.prop(di.mounted);if(a){if(a.tree.prop(XE)==this.data){if(a.overlay)for(let c of a.overlay)n.push({from:c.from+s,to:c.to+s});else n.push({from:s,to:s+r.length});return}else if(a.overlay){let c=n.length;if(o(a.tree,a.overlay[0].from+s),n.length>c)return}}for(let c=0;ci.isTop?A:void 0)]}),e.name)}configure(e,A){return new t(this.data,this.parser.configure(e),A||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function ns(t){let e=t.field(Gg.state,!1);return e?e.tree:wr.empty}function VF(t,e,A=50){var i;let n=(i=t.field(Gg.state,!1))===null||i===void 0?void 0:i.context;if(!n)return null;let o=n.viewport;n.updateViewport({from:0,to:e});let r=n.isDone(e)||n.work(A,e)?n.tree:null;return n.updateViewport(o),r}var YF=class{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,A){let i=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,A):this.string.slice(e-i,A-i)}},w3=null,TF=class t{constructor(e,A,i=[],n,o,r,s,a){this.parser=e,this.state=A,this.fragments=i,this.tree=n,this.treeLen=o,this.viewport=r,this.skipped=s,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,A,i){return new t(e,A,[],wr.empty,0,i,[],null)}startParse(){return this.parser.startParse(new YF(this.state.doc),this.fragments)}work(e,A){return A!=null&&A>=this.state.doc.length&&(A=void 0),this.tree!=wr.empty&&this.isDone(A??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let n=Date.now()+e;e=()=>Date.now()>n}for(this.parse||(this.parse=this.startParse()),A!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>A)&&A=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(A=this.parse.advance()););}),this.treeLen=e,this.tree=A,this.fragments=this.withoutTempSkipped(_C.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let A=w3;w3=this;try{return e()}finally{w3=A}}withoutTempSkipped(e){for(let A;A=this.tempSkipped.pop();)e=ZiA(e,A.from,A.to);return e}changes(e,A){let{fragments:i,tree:n,treeLen:o,viewport:r,skipped:s}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((c,g,I,C)=>a.push({fromA:c,toA:g,fromB:I,toB:C})),i=_C.applyChanges(i,a),n=wr.empty,o=0,r={from:e.mapPos(r.from,-1),to:e.mapPos(r.to,1)},this.skipped.length){s=[];for(let c of this.skipped){let g=e.mapPos(c.from,1),I=e.mapPos(c.to,-1);ge.from&&(this.fragments=ZiA(this.fragments,n,o),this.skipped.splice(i--,1))}return this.skipped.length>=A?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,A){this.skipped.push({from:e,to:A})}static getSkippingParser(e){return new class extends ZE{createParse(A,i,n){let o=n[0].from,r=n[n.length-1].to;return{parsedPos:o,advance(){let a=w3;if(a){for(let c of n)a.tempSkipped.push(c);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=r,new wr(Ks.none,[],[],r-o)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let A=this.fragments;return this.treeLen>=e&&A.length&&A[0].from==0&&A[0].to>=e}static get(){return w3}};function ZiA(t,e,A){return _C.applyChanges(t,[{fromA:e,toA:A,fromB:e,toB:A}])}var v3=class t{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let A=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),A.viewport.to);return A.work(20,i)||A.takeTree(),new t(A)}static init(e){let A=Math.min(3e3,e.doc.length),i=TF.create(e.facet(U1).parser,e,{from:0,to:A});return i.work(20,A)||i.takeTree(),new t(i)}};Gg.state=tr.define({create:v3.init,update(t,e){for(let A of e.effects)if(A.is(Gg.setState))return A.value;return e.startState.facet(U1)!=e.state.facet(U1)?v3.init(e.state):t.apply(e)}});var tnA=t=>{let e=setTimeout(()=>t(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(tnA=t=>{let e=-1,A=setTimeout(()=>{e=requestIdleCallback(t,{timeout:400})},100);return()=>e<0?clearTimeout(A):cancelIdleCallback(e)});var KF=typeof navigator<"u"&&(!((GF=navigator.scheduling)===null||GF===void 0)&&GF.isInputPending)?()=>navigator.scheduling.isInputPending():null,cNA=Bo.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let A=this.view.state.field(Gg.state).context;(A.updateViewport(e.view.viewport)||this.view.viewport.to>A.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(A)}scheduleWork(){if(this.working)return;let{state:e}=this.view,A=e.field(Gg.state);(A.tree!=A.context.tree||!A.context.isDone(e.doc.length))&&(this.working=tnA(this.work))}work(e){this.working=null;let A=Date.now();if(this.chunkEndn+1e3,a=o.context.work(()=>KF&&KF()||Date.now()>r,n+(s?0:1e5));this.chunkBudget-=Date.now()-A,(a||this.chunkBudget<=0)&&(o.context.takeTree(),this.view.dispatch({effects:Gg.setState.of(new v3(o.context))})),this.chunkBudget>0&&!(a&&!s)&&this.scheduleWork(),this.checkAsyncSchedule(o.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(A=>is(this.view.state,A)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),U1=qe.define({combine(t){return t.length?t[0]:null},enables:t=>[Gg.state,cNA,Pt.contentAttributes.compute([t],e=>{let A=e.facet(t);return A&&A.name?{"data-language":A.name}:{}})]}),Mw=class{constructor(e,A=[]){this.language=e,this.support=A,this.extension=[e,A]}};var gNA=qe.define(),JC=qe.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some(A=>A!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function Ug(t){let e=t.facet(JC);return e.charCodeAt(0)==9?t.tabSize*e.length:e.length}function eQ(t,e){let A="",i=t.tabSize,n=t.facet(JC)[0];if(n==" "){for(;e>=i;)A+=" ",e-=i;n=" "}for(let o=0;o=e?lNA(t,A,e):null}var KC=class{constructor(e,A={}){this.state=e,this.options=A,this.unit=Ug(e)}lineAt(e,A=1){let i=this.state.doc.lineAt(e),{simulateBreak:n,simulateDoubleBreak:o}=this.options;return n!=null&&n>=i.from&&n<=i.to?o&&n==e?{text:"",from:e}:(A<0?n-1&&(o+=r-this.countColumn(i,i.search(/\S|$/))),o}countColumn(e,A=e.length){return O0(e,this.state.tabSize,A)}lineIndent(e,A=1){let{text:i,from:n}=this.lineAt(e,A),o=this.options.overrideIndentation;if(o){let r=o(n);if(r>-1)return r}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},ZF=new di;function lNA(t,e,A){let i=e.resolveStack(A),n=e.resolveInner(A,-1).resolve(A,0).enterUnfinishedNodesBefore(A);if(n!=i.node){let o=[];for(let r=n;r&&!(r.fromi.node.to||r.from==i.node.from&&r.type==i.node.type);r=r.parent)o.push(r);for(let r=o.length-1;r>=0;r--)i={node:o[r],next:i}}return inA(i,t,A)}function inA(t,e,A){for(let i=t;i;i=i.next){let n=CNA(i.node);if(n)return n(HF.create(e,A,i))}return 0}function INA(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}function CNA(t){let e=t.type.prop(ZF);if(e)return e;let A=t.firstChild,i;if(A&&(i=A.type.prop(di.closedBy))){let n=t.lastChild,o=n&&i.indexOf(n.name)>-1;return r=>QNA(r,!0,1,void 0,o&&!INA(r)?n.from:void 0)}return t.parent==null?dNA:null}function dNA(){return 0}var HF=class t extends KC{constructor(e,A,i){super(e.state,e.options),this.base=e,this.pos=A,this.context=i}get node(){return this.context.node}static create(e,A,i){return new t(e,A,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let A=this.state.doc.lineAt(e.from);for(;;){let i=e.resolve(A.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(BNA(i,e))break;A=this.state.doc.lineAt(i.from)}return this.lineIndent(A.from)}continue(){return inA(this.context.next,this.base,this.pos)}};function BNA(t,e){for(let A=e;A;A=A.parent)if(t==A)return!0;return!1}function ENA(t){let e=t.node,A=e.childAfter(e.from),i=e.lastChild;if(!A)return null;let n=t.options.simulateBreak,o=t.state.doc.lineAt(A.from),r=n==null||n<=o.from?o.to:Math.min(o.to,n);for(let s=A.to;;){let a=e.childAfter(s);if(!a||a==i)return null;if(!a.type.isSkipped){if(a.from>=r)return null;let c=/^ */.exec(o.text.slice(A.to-o.from))[0].length;return{from:A.from,to:A.to+c}}s=a.to}}function QNA(t,e,A,i,n){let o=t.textAfter,r=o.match(/^\s*/)[0].length,s=i&&o.slice(r,r+i.length)==i||n==t.pos+r,a=e?ENA(t):null;return a?s?t.column(a.from):t.column(a.to):t.baseIndent+(s?0:t.unit*A)}function WF({except:t,units:e=1}={}){return A=>{let i=t&&t.test(A.textAfter);return A.baseIndent+(i?0:e*A.unit)}}var uNA=200;function nnA(){return Dr.transactionFilter.of(t=>{if(!t.docChanged||!t.isUserEvent("input.type")&&!t.isUserEvent("input.complete"))return t;let e=t.startState.languageDataAt("indentOnInput",t.startState.selection.main.head);if(!e.length)return t;let A=t.newDoc,{head:i}=t.newSelection.main,n=A.lineAt(i);if(i>n.from+uNA)return t;let o=A.sliceString(n.from,i);if(!e.some(c=>c.test(o)))return t;let{state:r}=t,s=-1,a=[];for(let{head:c}of r.selection.ranges){let g=r.doc.lineAt(c);if(g.from==s)continue;s=g.from;let I=kw(r,g.from);if(I==null)continue;let C=/^\s*/.exec(g.text)[0],d=eQ(r,I);C!=d&&a.push({from:g.from,to:g.from+C.length,insert:d})}return a.length?[t,{changes:a,sequential:!0}]:t})}var XF=qe.define(),M3=new di;function onA(t){let e=t.firstChild,A=t.lastChild;return e&&e.toA)continue;if(o&&s.from=e&&c.to>A&&(o=c)}}return o}function fNA(t){let e=t.lastChild;return e&&e.to==t.to&&e.type.isError}function $E(t,e,A){for(let i of t.facet(XF)){let n=i(t,e,A);if(n)return n}return hNA(t,e,A)}function rnA(t,e){let A=e.mapPos(t.from,1),i=e.mapPos(t.to,-1);return A>=i?void 0:{from:A,to:i}}var tQ=Ki.define({map:rnA}),b3=Ki.define({map:rnA});function snA(t){let e=[];for(let{head:A}of t.state.selection.ranges)e.some(i=>i.from<=A&&i.to>=A)||e.push(t.lineBlockAt(A));return e}var UC=tr.define({create(){return ht.none},update(t,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((A,i)=>t=WiA(t,A,i)),t=t.map(e.changes);for(let A of e.effects)if(A.is(tQ)&&!mNA(t,A.value.from,A.value.to)){let{preparePlaceholder:i}=e.state.facet(e_),n=i?ht.replace({widget:new OF(i(e.state,A.value))}):XiA;t=t.update({add:[n.range(A.value.from,A.value.to)]})}else A.is(b3)&&(t=t.update({filter:(i,n)=>A.value.from!=i||A.value.to!=n,filterFrom:A.value.from,filterTo:A.value.to}));return e.selection&&(t=WiA(t,e.selection.main.head)),t},provide:t=>Pt.decorations.from(t),toJSON(t,e){let A=[];return t.between(0,e.doc.length,(i,n)=>{A.push(i,n)}),A},fromJSON(t){if(!Array.isArray(t)||t.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let A=0;A{ne&&(i=!0)}),i?t.update({filterFrom:e,filterTo:A,filter:(n,o)=>n>=A||o<=e}):t}function bw(t,e,A){var i;let n=null;return(i=t.field(UC,!1))===null||i===void 0||i.between(e,A,(o,r)=>{(!n||n.from>o)&&(n={from:o,to:r})}),n}function mNA(t,e,A){let i=!1;return t.between(e,e,(n,o)=>{n==e&&o==A&&(i=!0)}),i}function anA(t,e){return t.field(UC,!1)?e:e.concat(Ki.appendConfig.of(lnA()))}var pNA=t=>{for(let e of snA(t)){let A=$E(t.state,e.from,e.to);if(A)return t.dispatch({effects:anA(t.state,[tQ.of(A),cnA(t,A)])}),!0}return!1},$F=t=>{if(!t.state.field(UC,!1))return!1;let e=[];for(let A of snA(t)){let i=bw(t.state,A.from,A.to);i&&e.push(b3.of(i),cnA(t,i,!1))}return e.length&&t.dispatch({effects:e}),e.length>0};function cnA(t,e,A=!0){let i=t.state.doc.lineAt(e.from).number,n=t.state.doc.lineAt(e.to).number;return Pt.announce.of(`${t.state.phrase(A?"Folded lines":"Unfolded lines")} ${i} ${t.state.phrase("to")} ${n}.`)}var DNA=t=>{let{state:e}=t,A=[];for(let i=0;i{let e=t.state.field(UC,!1);if(!e||!e.size)return!1;let A=[];return e.between(0,t.state.doc.length,(i,n)=>{A.push(b3.of({from:i,to:n}))}),t.dispatch({effects:A}),!0};var gnA=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:pNA},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:$F},{key:"Ctrl-Alt-[",run:DNA},{key:"Ctrl-Alt-]",run:A_}],wNA={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},e_=qe.define({combine(t){return ts(t,wNA)}});function lnA(t){let e=[UC,vNA];return t&&e.push(e_.of(t)),e}function InA(t,e){let{state:A}=t,i=A.facet(e_),n=r=>{let s=t.lineBlockAt(t.posAtDOM(r.target)),a=bw(t.state,s.from,s.to);a&&t.dispatch({effects:b3.of(a)}),r.preventDefault()};if(i.placeholderDOM)return i.placeholderDOM(t,n,e);let o=document.createElement("span");return o.textContent=i.placeholderText,o.setAttribute("aria-label",A.phrase("folded code")),o.title=A.phrase("unfold"),o.className="cm-foldPlaceholder",o.onclick=n,o}var XiA=ht.replace({widget:new class extends Cc{toDOM(t){return InA(t,null)}}}),OF=class extends Cc{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return InA(e,this.value)}},yNA={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1},y3=class extends Ga{constructor(e,A){super(),this.config=e,this.open=A}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let A=document.createElement("span");return A.textContent=this.open?this.config.openText:this.config.closedText,A.title=e.state.phrase(this.open?"Fold line":"Unfold line"),A}};function CnA(t={}){let e=sA(sA({},yNA),t),A=new y3(e,!0),i=new y3(e,!1),n=Bo.fromClass(class{constructor(r){this.from=r.viewport.from,this.markers=this.buildMarkers(r)}update(r){(r.docChanged||r.viewportChanged||r.startState.facet(U1)!=r.state.facet(U1)||r.startState.field(UC,!1)!=r.state.field(UC,!1)||ns(r.startState)!=ns(r.state)||e.foldingChanged(r))&&(this.markers=this.buildMarkers(r.view))}buildMarkers(r){let s=new fs;for(let a of r.viewportLineBlocks){let c=bw(r.state,a.from,a.to)?i:$E(r.state,a.from,a.to)?A:null;c&&s.add(a.from,a.from,c)}return s.finish()}}),{domEventHandlers:o}=e;return[n,Qw({class:"cm-foldGutter",markers(r){var s;return((s=r.plugin(n))===null||s===void 0?void 0:s.markers)||Io.empty},initialSpacer(){return new y3(e,!1)},domEventHandlers:Fe(sA({},o),{click:(r,s,a)=>{if(o.click&&o.click(r,s,a))return!0;let c=bw(r.state,s.from,s.to);if(c)return r.dispatch({effects:b3.of(c)}),!0;let g=$E(r.state,s.from,s.to);return g?(r.dispatch({effects:tQ.of(g)}),!0):!1}})}),lnA()]}var vNA=Pt.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),AQ=class t{constructor(e,A){this.specs=e;let i;function n(s){let a=jc.newName();return(i||(i=Object.create(null)))["."+a]=s,a}let o=typeof A.all=="string"?A.all:A.all?n(A.all):void 0,r=A.scope;this.scope=r instanceof Gg?s=>s.prop(XE)==r.data:r?s=>s==r:void 0,this.style=_F(e.map(s=>({tag:s.tag,class:s.class||n(Object.assign({},s,{tag:null}))})),{all:o}).style,this.module=i?new jc(i):null,this.themeType=A.themeType}static define(e,A){return new t(e,A||{})}},zF=qe.define(),dnA=qe.define({combine(t){return t.length?[t[0]]:null}});function UF(t){let e=t.facet(zF);return e.length?e:t.facet(dnA)}function t_(t,e){let A=[MNA],i;return t instanceof AQ&&(t.module&&A.push(Pt.styleModule.of(t.module)),i=t.themeType),e?.fallback?A.push(dnA.of(t)):i?A.push(zF.computeN([Pt.darkTheme],n=>n.facet(Pt.darkTheme)==(i=="dark")?[t]:[])):A.push(zF.of(t)),A}var PF=class{constructor(e){this.markCache=Object.create(null),this.tree=ns(e.state),this.decorations=this.buildDeco(e,UF(e.state)),this.decoratedTo=e.viewport.to}update(e){let A=ns(e.state),i=UF(e.state),n=i!=UF(e.startState),{viewport:o}=e.view,r=e.changes.mapPos(this.decoratedTo,1);A.length=o.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=r):(A!=this.tree||e.viewportChanged||n)&&(this.tree=A,this.decorations=this.buildDeco(e.view,i),this.decoratedTo=o.to)}buildDeco(e,A){if(!A||!this.tree.length)return ht.none;let i=new fs;for(let{from:n,to:o}of e.visibleRanges)qiA(this.tree,A,(r,s,a)=>{i.add(r,s,this.markCache[a]||(this.markCache[a]=ht.mark({class:a})))},n,o);return i.finish()}},MNA=Ng.high(Bo.fromClass(PF,{decorations:t=>t.decorations})),BnA=AQ.define([{tag:ke.meta,color:"#404740"},{tag:ke.link,textDecoration:"underline"},{tag:ke.heading,textDecoration:"underline",fontWeight:"bold"},{tag:ke.emphasis,fontStyle:"italic"},{tag:ke.strong,fontWeight:"bold"},{tag:ke.strikethrough,textDecoration:"line-through"},{tag:ke.keyword,color:"#708"},{tag:[ke.atom,ke.bool,ke.url,ke.contentSeparator,ke.labelName],color:"#219"},{tag:[ke.literal,ke.inserted],color:"#164"},{tag:[ke.string,ke.deleted],color:"#a11"},{tag:[ke.regexp,ke.escape,ke.special(ke.string)],color:"#e40"},{tag:ke.definition(ke.variableName),color:"#00f"},{tag:ke.local(ke.variableName),color:"#30a"},{tag:[ke.typeName,ke.namespace],color:"#085"},{tag:ke.className,color:"#167"},{tag:[ke.special(ke.variableName),ke.macroName],color:"#256"},{tag:ke.definition(ke.propertyName),color:"#00c"},{tag:ke.comment,color:"#940"},{tag:ke.invalid,color:"#f00"}]),bNA=Pt.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),EnA=1e4,QnA="()[]{}",unA=qe.define({combine(t){return ts(t,{afterCursor:!0,brackets:QnA,maxScanDistance:EnA,renderMatch:RNA})}}),kNA=ht.mark({class:"cm-matchingBracket"}),SNA=ht.mark({class:"cm-nonmatchingBracket"});function RNA(t){let e=[],A=t.matched?kNA:SNA;return e.push(A.range(t.start.from,t.start.to)),t.end&&e.push(A.range(t.end.from,t.end.to)),e}var LNA=tr.define({create(){return ht.none},update(t,e){if(!e.docChanged&&!e.selection)return t;let A=[],i=e.state.facet(unA);for(let n of e.state.selection.ranges){if(!n.empty)continue;let o=Kg(e.state,n.head,-1,i)||n.head>0&&Kg(e.state,n.head-1,1,i)||i.afterCursor&&(Kg(e.state,n.head,1,i)||n.headPt.decorations.from(t)}),xNA=[LNA,bNA];function hnA(t={}){return[unA.of(t),xNA]}var NNA=new di;function jF(t,e,A){let i=t.prop(e<0?di.openedBy:di.closedBy);if(i)return i;if(t.name.length==1){let n=A.indexOf(t.name);if(n>-1&&n%2==(e<0?1:0))return[A[n+e]]}return null}function qF(t){let e=t.type.prop(NNA);return e?e(t.node):t}function Kg(t,e,A,i={}){let n=i.maxScanDistance||EnA,o=i.brackets||QnA,r=ns(t),s=r.resolveInner(e,A);for(let a=s;a;a=a.parent){let c=jF(a.type,A,o);if(c&&a.from0?e>=g.from&&eg.from&&e<=g.to))return FNA(t,e,A,a,g,c,o)}}return _NA(t,e,A,r,s.type,n,o)}function FNA(t,e,A,i,n,o,r){let s=i.parent,a={from:n.from,to:n.to},c=0,g=s?.cursor();if(g&&(A<0?g.childBefore(i.from):g.childAfter(i.to)))do if(A<0?g.to<=i.from:g.from>=i.to){if(c==0&&o.indexOf(g.type.name)>-1&&g.from0)return null;let c={from:A<0?e-1:e,to:A>0?e+1:e},g=t.doc.iterRange(e,A>0?t.doc.length:0),I=0;for(let C=0;!g.next().done&&C<=o;){let d=g.value;A<0&&(C+=d.length);let B=e+C*A;for(let E=A>0?0:d.length-1,u=A>0?d.length:-1;E!=u;E+=A){let h=r.indexOf(d[E]);if(!(h<0||i.resolveInner(B+E,1).type!=n))if(h%2==0==A>0)I++;else{if(I==1)return{start:c,end:{from:B+E,to:B+E+1},matched:h>>1==a>>1};I--}}A>0&&(C+=d.length)}return g.done?{start:c,matched:!1}:null}var GNA=Object.create(null),$iA=[Ks.none];var AnA=[],enA=Object.create(null),KNA=Object.create(null);for(let[t,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])KNA[t]=UNA(GNA,e);function JF(t,e){AnA.indexOf(t)>-1||(AnA.push(t),console.warn(e))}function UNA(t,e){let A=[];for(let s of e.split(" ")){let a=[];for(let c of s.split(".")){let g=t[c]||ke[c];g?typeof g=="function"?a.length?a=a.map(g):JF(c,`Modifier ${c} used at start of tag`):a.length?JF(c,`Tag ${c} used as modifier`):a=Array.isArray(g)?g:[g]:JF(c,`Unknown highlighting tag ${c}`)}for(let c of a)A.push(c)}if(!A.length)return 0;let i=e.replace(/ /g,"_"),n=i+" "+A.map(s=>s.id),o=enA[n];if(o)return o.id;let r=enA[n]=Ks.define({id:$iA.length,name:i,props:[yw({[i]:A})]});return $iA.push(r),r.id}var rDe={rtl:ht.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:Co.RTL}),ltr:ht.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:Co.LTR}),auto:ht.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var JNA=t=>{let{state:e}=t,A=e.doc.lineAt(e.selection.main.from),i=r_(t.state,A.from);return i.line?YNA(t):i.block?HNA(t):!1};function o_(t,e){return({state:A,dispatch:i})=>{if(A.readOnly)return!1;let n=t(e,A);return n?(i(A.update(n)),!0):!1}}var YNA=o_(PNA,0);var TNA=o_(bnA,0);var HNA=o_((t,e)=>bnA(t,e,zNA(e)),0);function r_(t,e){let A=t.languageDataAt("commentTokens",e,1);return A.length?A[0]:{}}var k3=50;function ONA(t,{open:e,close:A},i,n){let o=t.sliceDoc(i-k3,i),r=t.sliceDoc(n,n+k3),s=/\s*$/.exec(o)[0].length,a=/^\s*/.exec(r)[0].length,c=o.length-s;if(o.slice(c-e.length,c)==e&&r.slice(a,a+A.length)==A)return{open:{pos:i-s,margin:s&&1},close:{pos:n+a,margin:a&&1}};let g,I;n-i<=2*k3?g=I=t.sliceDoc(i,n):(g=t.sliceDoc(i,i+k3),I=t.sliceDoc(n-k3,n));let C=/^\s*/.exec(g)[0].length,d=/\s*$/.exec(I)[0].length,B=I.length-d-A.length;return g.slice(C,C+e.length)==e&&I.slice(B,B+A.length)==A?{open:{pos:i+C+e.length,margin:/\s/.test(g.charAt(C+e.length))?1:0},close:{pos:n-d-A.length,margin:/\s/.test(I.charAt(B-1))?1:0}}:null}function zNA(t){let e=[];for(let A of t.selection.ranges){let i=t.doc.lineAt(A.from),n=A.to<=i.to?i:t.doc.lineAt(A.to);n.from>i.from&&n.from==A.to&&(n=A.to==i.to+1?i:t.doc.lineAt(A.to-1));let o=e.length-1;o>=0&&e[o].to>i.from?e[o].to=n.to:e.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:n.to})}return e}function bnA(t,e,A=e.selection.ranges){let i=A.map(o=>r_(e,o.from).block);if(!i.every(o=>o))return null;let n=A.map((o,r)=>ONA(e,i[r],o.from,o.to));if(t!=2&&!n.every(o=>o))return{changes:e.changes(A.map((o,r)=>n[r]?[]:[{from:o.from,insert:i[r].open+" "},{from:o.to,insert:" "+i[r].close}]))};if(t!=1&&n.some(o=>o)){let o=[];for(let r=0,s;rn&&(o==r||r>I.from)){n=I.from;let C=/^\s*/.exec(I.text)[0].length,d=C==I.length,B=I.text.slice(C,C+c.length)==c?C:-1;Co.comment<0&&(!o.empty||o.single))){let o=[];for(let{line:s,token:a,indent:c,empty:g,single:I}of i)(I||!g)&&o.push({from:s.from+c,insert:a+" "});let r=e.changes(o);return{changes:r,selection:e.selection.map(r,1)}}else if(t!=1&&i.some(o=>o.comment>=0)){let o=[];for(let{line:r,comment:s,token:a}of i)if(s>=0){let c=r.from+s,g=c+a.length;r.text[g-r.from]==" "&&g++,o.push({from:c,to:g})}return{changes:o}}return null}function iQ(t,e){return ae.create(t.ranges.map(e),t.mainIndex)}function Wl(t,e){return t.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function Jg({state:t,dispatch:e},A){let i=iQ(t.selection,A);return i.eq(t.selection,!0)?!1:(e(Wl(t,i)),!0)}function Rw(t,e){return ae.cursor(e?t.to:t.from)}function knA(t,e){return Jg(t,A=>A.empty?t.moveByChar(A,e):Rw(A,e))}function Us(t){return t.textDirectionAt(t.state.selection.main.head)==Co.LTR}var SnA=t=>knA(t,!Us(t)),RnA=t=>knA(t,Us(t));function LnA(t,e){return Jg(t,A=>A.empty?t.moveByGroup(A,e):Rw(A,e))}var jNA=t=>LnA(t,!Us(t)),qNA=t=>LnA(t,Us(t));var EDe=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function VNA(t,e,A){if(e.type.prop(A))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function Lw(t,e,A){let i=ns(t).resolveInner(e.head),n=A?di.closedBy:di.openedBy;for(let a=e.head;;){let c=A?i.childAfter(a):i.childBefore(a);if(!c)break;VNA(t,c,n)?i=c:a=A?c.to:c.from}let o=i.type.prop(n),r,s;return o&&(r=A?Kg(t,i.from,1):Kg(t,i.to,-1))&&r.matched?s=A?r.end.to:r.end.from:s=A?i.to:i.from,ae.cursor(s,A?-1:1)}var ZNA=t=>Jg(t,e=>Lw(t.state,e,!Us(t))),WNA=t=>Jg(t,e=>Lw(t.state,e,Us(t)));function xnA(t,e){return Jg(t,A=>{if(!A.empty)return Rw(A,e);let i=t.moveVertically(A,e);return i.head!=A.head?i:t.moveToLineBoundary(A,e)})}var NnA=t=>xnA(t,!1),FnA=t=>xnA(t,!0);function _nA(t){let e=t.scrollDOM.clientHeightr.empty?t.moveVertically(r,e,A.height):Rw(r,e));if(n.eq(i.selection))return!1;let o;if(A.selfScroll){let r=t.coordsAtPos(i.selection.main.head),s=t.scrollDOM.getBoundingClientRect(),a=s.top+A.marginTop,c=s.bottom-A.marginBottom;r&&r.top>a&&r.bottomGnA(t,!1),i_=t=>GnA(t,!0);function J1(t,e,A){let i=t.lineBlockAt(e.head),n=t.moveToLineBoundary(e,A);if(n.head==e.head&&n.head!=(A?i.to:i.from)&&(n=t.moveToLineBoundary(e,A,!1)),!A&&n.head==i.from&&i.length){let o=/^\s*/.exec(t.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;o&&e.head!=i.from+o&&(n=ae.cursor(i.from+o))}return n}var XNA=t=>Jg(t,e=>J1(t,e,!0)),$NA=t=>Jg(t,e=>J1(t,e,!1)),AFA=t=>Jg(t,e=>J1(t,e,!Us(t))),eFA=t=>Jg(t,e=>J1(t,e,Us(t))),tFA=t=>Jg(t,e=>ae.cursor(t.lineBlockAt(e.head).from,1)),iFA=t=>Jg(t,e=>ae.cursor(t.lineBlockAt(e.head).to,-1));function nFA(t,e,A){let i=!1,n=iQ(t.selection,o=>{let r=Kg(t,o.head,-1)||Kg(t,o.head,1)||o.head>0&&Kg(t,o.head-1,1)||o.headnFA(t,e,!1);function Zc(t,e){let A=iQ(t.state.selection,i=>{let n=e(i);return ae.range(i.anchor,n.head,n.goalColumn,n.bidiLevel||void 0)});return A.eq(t.state.selection)?!1:(t.dispatch(Wl(t.state,A)),!0)}function KnA(t,e){return Zc(t,A=>t.moveByChar(A,e))}var UnA=t=>KnA(t,!Us(t)),JnA=t=>KnA(t,Us(t));function YnA(t,e){return Zc(t,A=>t.moveByGroup(A,e))}var rFA=t=>YnA(t,!Us(t)),sFA=t=>YnA(t,Us(t));var aFA=t=>Zc(t,e=>Lw(t.state,e,!Us(t))),cFA=t=>Zc(t,e=>Lw(t.state,e,Us(t)));function TnA(t,e){return Zc(t,A=>t.moveVertically(A,e))}var HnA=t=>TnA(t,!1),OnA=t=>TnA(t,!0);function znA(t,e){return Zc(t,A=>t.moveVertically(A,e,_nA(t).height))}var mnA=t=>znA(t,!1),pnA=t=>znA(t,!0),gFA=t=>Zc(t,e=>J1(t,e,!0)),lFA=t=>Zc(t,e=>J1(t,e,!1)),IFA=t=>Zc(t,e=>J1(t,e,!Us(t))),CFA=t=>Zc(t,e=>J1(t,e,Us(t))),dFA=t=>Zc(t,e=>ae.cursor(t.lineBlockAt(e.head).from)),BFA=t=>Zc(t,e=>ae.cursor(t.lineBlockAt(e.head).to)),DnA=({state:t,dispatch:e})=>(e(Wl(t,{anchor:0})),!0),wnA=({state:t,dispatch:e})=>(e(Wl(t,{anchor:t.doc.length})),!0),ynA=({state:t,dispatch:e})=>(e(Wl(t,{anchor:t.selection.main.anchor,head:0})),!0),vnA=({state:t,dispatch:e})=>(e(Wl(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0),EFA=({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0),QFA=({state:t,dispatch:e})=>{let A=xw(t).map(({from:i,to:n})=>ae.range(i,Math.min(n+1,t.doc.length)));return e(t.update({selection:ae.create(A),userEvent:"select"})),!0},uFA=({state:t,dispatch:e})=>{let A=iQ(t.selection,i=>{let n=ns(t),o=n.resolveStack(i.from,1);if(i.empty){let r=n.resolveStack(i.from,-1);r.node.from>=o.node.from&&r.node.to<=o.node.to&&(o=r)}for(let r=o;r;r=r.next){let{node:s}=r;if((s.from=i.to||s.to>i.to&&s.from<=i.from)&&r.next)return ae.range(s.to,s.from)}return i});return A.eq(t.selection)?!1:(e(Wl(t,A)),!0)},hFA=({state:t,dispatch:e})=>{let A=t.selection,i=null;return A.ranges.length>1?i=ae.create([A.main]):A.main.empty||(i=ae.create([ae.cursor(A.main.head)])),i?(e(Wl(t,i)),!0):!1};function S3(t,e){if(t.state.readOnly)return!1;let A="delete.selection",{state:i}=t,n=i.changeByRange(o=>{let{from:r,to:s}=o;if(r==s){let a=e(o);ar&&(A="delete.forward",a=Sw(t,a,!0)),r=Math.min(r,a),s=Math.max(s,a)}else r=Sw(t,r,!1),s=Sw(t,s,!0);return r==s?{range:o}:{changes:{from:r,to:s},range:ae.cursor(r,rn(t)))i.between(e,e,(n,o)=>{ne&&(e=A?o:n)});return e}var PnA=(t,e,A)=>S3(t,i=>{let n=i.from,{state:o}=t,r=o.doc.lineAt(n),s,a;if(A&&!e&&n>r.from&&nPnA(t,!1,!0);var jnA=t=>PnA(t,!0,!1),qnA=(t,e)=>S3(t,A=>{let i=A.head,{state:n}=t,o=n.doc.lineAt(i),r=n.charCategorizer(i);for(let s=null;;){if(i==(e?o.to:o.from)){i==A.head&&o.number!=(e?n.doc.lines:1)&&(i+=e?1:-1);break}let a=br(o.text,i-o.from,e)+o.from,c=o.text.slice(Math.min(i,a)-o.from,Math.max(i,a)-o.from),g=r(c);if(s!=null&&g!=s)break;(c!=" "||i!=A.head)&&(s=g),i=a}return i}),VnA=t=>qnA(t,!1),fFA=t=>qnA(t,!0),mFA=t=>S3(t,e=>{let A=t.lineBlockAt(e.head).to;return e.headS3(t,e=>{let A=t.moveToLineBoundary(e,!1).head;return e.head>A?A:Math.max(0,e.head-1)}),DFA=t=>S3(t,e=>{let A=t.moveToLineBoundary(e,!0).head;return e.head{if(t.readOnly)return!1;let A=t.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:tn.of(["",""])},range:ae.cursor(i.from)}));return e(t.update(A,{scrollIntoView:!0,userEvent:"input"})),!0},yFA=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let A=t.changeByRange(i=>{if(!i.empty||i.from==0||i.from==t.doc.length)return{range:i};let n=i.from,o=t.doc.lineAt(n),r=n==o.from?n-1:br(o.text,n-o.from,!1)+o.from,s=n==o.to?n+1:br(o.text,n-o.from,!0)+o.from;return{changes:{from:r,to:s,insert:t.doc.slice(n,s).append(t.doc.slice(r,n))},range:ae.cursor(s)}});return A.changes.empty?!1:(e(t.update(A,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function xw(t){let e=[],A=-1;for(let i of t.selection.ranges){let n=t.doc.lineAt(i.from),o=t.doc.lineAt(i.to);if(!i.empty&&i.to==o.from&&(o=t.doc.lineAt(i.to-1)),A>=n.number){let r=e[e.length-1];r.to=o.to,r.ranges.push(i)}else e.push({from:n.from,to:o.to,ranges:[i]});A=o.number+1}return e}function ZnA(t,e,A){if(t.readOnly)return!1;let i=[],n=[];for(let o of xw(t)){if(A?o.to==t.doc.length:o.from==0)continue;let r=t.doc.lineAt(A?o.to+1:o.from-1),s=r.length+1;if(A){i.push({from:o.to,to:r.to},{from:o.from,insert:r.text+t.lineBreak});for(let a of o.ranges)n.push(ae.range(Math.min(t.doc.length,a.anchor+s),Math.min(t.doc.length,a.head+s)))}else{i.push({from:r.from,to:o.from},{from:o.to,insert:t.lineBreak+r.text});for(let a of o.ranges)n.push(ae.range(a.anchor-s,a.head-s))}}return i.length?(e(t.update({changes:i,scrollIntoView:!0,selection:ae.create(n,t.selection.mainIndex),userEvent:"move.line"})),!0):!1}var vFA=({state:t,dispatch:e})=>ZnA(t,e,!1),MFA=({state:t,dispatch:e})=>ZnA(t,e,!0);function WnA(t,e,A){if(t.readOnly)return!1;let i=[];for(let n of xw(t))A?i.push({from:n.from,insert:t.doc.slice(n.from,n.to)+t.lineBreak}):i.push({from:n.to,insert:t.lineBreak+t.doc.slice(n.from,n.to)});return e(t.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}var bFA=({state:t,dispatch:e})=>WnA(t,e,!1),kFA=({state:t,dispatch:e})=>WnA(t,e,!0),SFA=t=>{if(t.state.readOnly)return!1;let{state:e}=t,A=e.changes(xw(e).map(({from:n,to:o})=>(n>0?n--:o{let o;if(t.lineWrapping){let r=t.lineBlockAt(n.head),s=t.coordsAtPos(n.head,n.assoc||1);s&&(o=r.bottom+t.documentTop-s.bottom+t.defaultLineHeight/2)}return t.moveVertically(n,!0,o)}).map(A);return t.dispatch({changes:A,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function RFA(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let A=ns(t).resolveInner(e),i=A.childBefore(e),n=A.childAfter(e),o;return i&&n&&i.to<=e&&n.from>=e&&(o=i.type.prop(di.closedBy))&&o.indexOf(n.name)>-1&&t.doc.lineAt(i.to).from==t.doc.lineAt(n.from).from&&!/\S/.test(t.sliceDoc(i.to,n.from))?{from:i.to,to:n.from}:null}var MnA=XnA(!1),LFA=XnA(!0);function XnA(t){return({state:e,dispatch:A})=>{if(e.readOnly)return!1;let i=e.changeByRange(n=>{let{from:o,to:r}=n,s=e.doc.lineAt(o),a=!t&&o==r&&RFA(e,o);t&&(o=r=(r<=s.to?s:e.doc.lineAt(r)).to);let c=new KC(e,{simulateBreak:o,simulateDoubleBreak:!!a}),g=kw(c,o);for(g==null&&(g=O0(/^\s*/.exec(e.doc.lineAt(o).text)[0],e.tabSize));rs.from&&o{let n=[];for(let r=i.from;r<=i.to;){let s=t.doc.lineAt(r);s.number>A&&(i.empty||i.to>s.from)&&(e(s,n,i),A=s.number),r=s.to+1}let o=t.changes(n);return{changes:n,range:ae.range(o.mapPos(i.anchor,1),o.mapPos(i.head,1))}})}var xFA=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let A=Object.create(null),i=new KC(t,{overrideIndentation:o=>{let r=A[o];return r??-1}}),n=s_(t,(o,r,s)=>{let a=kw(i,o.from);if(a==null)return;/\S/.test(o.text)||(a=0);let c=/^\s*/.exec(o.text)[0],g=eQ(t,a);(c!=g||s.fromt.readOnly?!1:(e(t.update(s_(t,(A,i)=>{i.push({from:A.from,insert:t.facet(JC)})}),{userEvent:"input.indent"})),!0),AoA=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(s_(t,(A,i)=>{let n=/^\s*/.exec(A.text)[0];if(!n)return;let o=O0(n,t.tabSize),r=0,s=eQ(t,Math.max(0,o-Ug(t)));for(;r(t.setTabFocusMode(),!0);var FFA=[{key:"Ctrl-b",run:SnA,shift:UnA,preventDefault:!0},{key:"Ctrl-f",run:RnA,shift:JnA},{key:"Ctrl-p",run:NnA,shift:HnA},{key:"Ctrl-n",run:FnA,shift:OnA},{key:"Ctrl-a",run:tFA,shift:dFA},{key:"Ctrl-e",run:iFA,shift:BFA},{key:"Ctrl-d",run:jnA},{key:"Ctrl-h",run:n_},{key:"Ctrl-k",run:mFA},{key:"Ctrl-Alt-h",run:VnA},{key:"Ctrl-o",run:wFA},{key:"Ctrl-t",run:yFA},{key:"Ctrl-v",run:i_}],_FA=[{key:"ArrowLeft",run:SnA,shift:UnA,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:jNA,shift:rFA,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:AFA,shift:IFA,preventDefault:!0},{key:"ArrowRight",run:RnA,shift:JnA,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:qNA,shift:sFA,preventDefault:!0},{mac:"Cmd-ArrowRight",run:eFA,shift:CFA,preventDefault:!0},{key:"ArrowUp",run:NnA,shift:HnA,preventDefault:!0},{mac:"Cmd-ArrowUp",run:DnA,shift:ynA},{mac:"Ctrl-ArrowUp",run:fnA,shift:mnA},{key:"ArrowDown",run:FnA,shift:OnA,preventDefault:!0},{mac:"Cmd-ArrowDown",run:wnA,shift:vnA},{mac:"Ctrl-ArrowDown",run:i_,shift:pnA},{key:"PageUp",run:fnA,shift:mnA},{key:"PageDown",run:i_,shift:pnA},{key:"Home",run:$NA,shift:lFA,preventDefault:!0},{key:"Mod-Home",run:DnA,shift:ynA},{key:"End",run:XNA,shift:gFA,preventDefault:!0},{key:"Mod-End",run:wnA,shift:vnA},{key:"Enter",run:MnA,shift:MnA},{key:"Mod-a",run:EFA},{key:"Backspace",run:n_,shift:n_},{key:"Delete",run:jnA},{key:"Mod-Backspace",mac:"Alt-Backspace",run:VnA},{key:"Mod-Delete",mac:"Alt-Delete",run:fFA},{mac:"Mod-Backspace",run:pFA},{mac:"Mod-Delete",run:DFA}].concat(FFA.map(t=>({mac:t.key,run:t.run,shift:t.shift}))),eoA=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:ZNA,shift:aFA},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:WNA,shift:cFA},{key:"Alt-ArrowUp",run:vFA},{key:"Shift-Alt-ArrowUp",run:bFA},{key:"Alt-ArrowDown",run:MFA},{key:"Shift-Alt-ArrowDown",run:kFA},{key:"Escape",run:hFA},{key:"Mod-Enter",run:LFA},{key:"Alt-l",mac:"Ctrl-l",run:QFA},{key:"Mod-i",run:uFA,preventDefault:!0},{key:"Mod-[",run:AoA},{key:"Mod-]",run:$nA},{key:"Mod-Alt-\\",run:xFA},{key:"Shift-Mod-k",run:SFA},{key:"Shift-Mod-\\",run:oFA},{key:"Mod-/",run:JNA},{key:"Alt-A",run:TNA},{key:"Ctrl-m",mac:"Shift-Alt-m",run:NFA}].concat(_FA),toA={key:"Tab",run:$nA,shift:AoA};var _w=class{constructor(e,A,i){this.from=e,this.to=A,this.diagnostic=i}},YC=class t{constructor(e,A,i){this.diagnostics=e,this.panel=A,this.selected=i}static init(e,A,i){let n=i.facet(Xl).markerFilter;n&&(e=n(e,i));let o=e.slice().sort((g,I)=>g.from-I.from||g.to-I.to),r=new fs,s=[],a=0;for(let g=0;;){let I=g==o.length?null:o[g];if(!I&&!s.length)break;let C,d;for(s.length?(C=a,d=s.reduce((E,u)=>Math.min(E,u.to),I&&I.from>C?I.from:1e8)):(C=I.from,d=I.to,s.push(I),g++);gE.from||E.to==C))s.push(E),g++,d=Math.min(E.to,d);else{d=Math.min(E.from,d);break}}let B=IoA(s);if(s.some(E=>E.from==E.to||E.from==E.to-1&&i.doc.lineAt(E.from).to==E.from))r.add(C,C,ht.widget({widget:new a_(B),diagnostics:s.slice()}));else{let E=s.reduce((u,h)=>h.markClass?u+" "+h.markClass:u,"");r.add(C,d,ht.mark({class:"cm-lintRange cm-lintRange-"+B+E,diagnostics:s.slice(),inclusiveEnd:s.some(u=>u.to>d)}))}a=d;for(let E=0;E{if(!(e&&r.diagnostics.indexOf(e)<0))if(!i)i=new _w(n,o,e||r.diagnostics[0]);else{if(r.diagnostics.indexOf(i.diagnostic)<0)return!1;i=new _w(i.from,o,i.diagnostic)}}),i}function noA(t,e){let A=e.pos,i=e.end||A,n=t.state.facet(Xl).hideOn(t,A,i);if(n!=null)return n;let o=t.startState.doc.lineAt(e.pos);return!!(t.effects.some(r=>r.is(Uw))||t.changes.touchesRange(o.from,Math.max(o.to,i)))}function ooA(t,e){return t.field(dc,!1)?e:e.concat(Ki.appendConfig.of(doA))}function GFA(t,e){return{effects:ooA(t,[Uw.of(e)])}}var Uw=Ki.define(),g_=Ki.define(),roA=Ki.define(),dc=tr.define({create(){return new YC(ht.none,null,null)},update(t,e){if(e.docChanged&&t.diagnostics.size){let A=t.diagnostics.map(e.changes),i=null,n=t.panel;if(t.selected){let o=e.changes.mapPos(t.selected.from,1);i=nQ(A,t.selected.diagnostic,o)||nQ(A,null,o)}!A.size&&n&&e.state.facet(Xl).autoPanel&&(n=null),t=new YC(A,n,i)}for(let A of e.effects)if(A.is(Uw)){let i=e.state.facet(Xl).autoPanel?A.value.length?R3.open:null:t.panel;t=YC.init(A.value,i,e.state)}else A.is(g_)?t=new YC(t.diagnostics,A.value?R3.open:null,t.selected):A.is(roA)&&(t=new YC(t.diagnostics,t.panel,A.value));return t},provide:t=>[NC.from(t,e=>e.panel),Pt.decorations.from(t,e=>e.diagnostics)]});var KFA=ht.mark({class:"cm-lintRange cm-lintRange-active"});function UFA(t,e,A){let{diagnostics:i}=t.state.field(dc),n,o=-1,r=-1;i.between(e-(A<0?1:0),e+(A>0?1:0),(a,c,{spec:g})=>{if(e>=a&&e<=c&&(a==c||(e>a||A>0)&&(eloA(t,A,!1)))}var JFA=t=>{let e=t.state.field(dc,!1);(!e||!e.panel)&&t.dispatch({effects:ooA(t.state,[g_.of(!0)])});let A=FC(t,R3.open);return A&&A.dom.querySelector(".cm-panel-lint ul").focus(),!0},ioA=t=>{let e=t.state.field(dc,!1);return!e||!e.panel?!1:(t.dispatch({effects:g_.of(!1)}),!0)},YFA=t=>{let e=t.state.field(dc,!1);if(!e)return!1;let A=t.state.selection.main,i=e.diagnostics.iter(A.to+1);return!i.value&&(i=e.diagnostics.iter(0),!i.value||i.from==A.from&&i.to==A.to)?!1:(t.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)};var aoA=[{key:"Mod-Shift-m",run:JFA,preventDefault:!0},{key:"F8",run:YFA}],TFA=Bo.fromClass(class{constructor(t){this.view=t,this.timeout=-1,this.set=!0;let{delay:e}=t.state.facet(Xl);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){clearTimeout(this.timeout);let t=Date.now();if(tPromise.resolve(i(this.view))),i=>{this.view.state.doc==e.doc&&this.view.dispatch(GFA(this.view.state,i.reduce((n,o)=>n.concat(o))))},i=>{is(this.view.state,i)})}}update(t){let e=t.state.facet(Xl);(t.docChanged||e!=t.startState.facet(Xl)||e.needsRefresh&&e.needsRefresh(t))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}});function HFA(t,e,A){let i=[],n=-1;for(let o of t)o.then(r=>{i.push(r),clearTimeout(n),i.length==t.length?e(i):n=setTimeout(()=>e(i),200)},A)}var Xl=qe.define({combine(t){return Object.assign({sources:t.map(e=>e.source).filter(e=>e!=null)},ts(t.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{needsRefresh:(e,A)=>e?A?i=>e(i)||A(i):e:A}))}});function coA(t,e={}){return[Xl.of({source:t,config:e}),TFA,doA]}function goA(t){let e=[];if(t)A:for(let{name:A}of t){for(let i=0;io.toLowerCase()==n.toLowerCase())){e.push(n);continue A}}e.push("")}return e}function loA(t,e,A){var i;let n=A?goA(e.actions):[];return _n("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},_n("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(t):e.message),(i=e.actions)===null||i===void 0?void 0:i.map((o,r)=>{let s=!1,a=C=>{if(C.preventDefault(),s)return;s=!0;let d=nQ(t.state.field(dc).diagnostics,e);d&&o.apply(t,d.from,d.to)},{name:c}=o,g=n[r]?c.indexOf(n[r]):-1,I=g<0?c:[c.slice(0,g),_n("u",c.slice(g,g+1)),c.slice(g+1)];return _n("button",{type:"button",class:"cm-diagnosticAction",onclick:a,onmousedown:a,"aria-label":` Action: ${c}${g<0?"":` (access key "${n[r]})"`}.`},I)}),e.source&&_n("div",{class:"cm-diagnosticSource"},e.source))}var a_=class extends Cc{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return _n("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}},Gw=class{constructor(e,A){this.diagnostic=A,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=loA(e,A,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}},R3=class t{constructor(e){this.view=e,this.items=[];let A=n=>{if(n.keyCode==27)ioA(this.view),this.view.focus();else if(n.keyCode==38||n.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(n.keyCode==40||n.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(n.keyCode==36)this.moveSelection(0);else if(n.keyCode==35)this.moveSelection(this.items.length-1);else if(n.keyCode==13)this.view.focus();else if(n.keyCode>=65&&n.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:o}=this.items[this.selectedIndex],r=goA(o.actions);for(let s=0;s{for(let o=0;oioA(this.view)},"\xD7")),this.update()}get selectedIndex(){let e=this.view.state.field(dc).selected;if(!e)return-1;for(let A=0;A{for(let g of c.diagnostics){if(r.has(g))continue;r.add(g);let I=-1,C;for(let d=i;di&&(this.items.splice(i,I-i),n=!0)),A&&C.diagnostic==A.diagnostic?C.dom.hasAttribute("aria-selected")||(C.dom.setAttribute("aria-selected","true"),o=C):C.dom.hasAttribute("aria-selected")&&C.dom.removeAttribute("aria-selected"),i++}});i({sel:o.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:s,panel:a})=>{let c=a.height/this.list.offsetHeight;s.topa.bottom&&(this.list.scrollTop+=(s.bottom-a.bottom)/c)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),n&&this.sync()}sync(){let e=this.list.firstChild;function A(){let i=e;e=i.nextSibling,i.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)A();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)A()}moveSelection(e){if(this.selectedIndex<0)return;let A=this.view.state.field(dc),i=nQ(A.diagnostics,this.items[e].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:roA.of(i)})}static open(e){return new t(e)}};function Fw(t,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(t)}')`}function Nw(t){return Fw(``,'width="6" height="3"')}var OFA=Pt.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Nw("#d11")},".cm-lintRange-warning":{backgroundImage:Nw("orange")},".cm-lintRange-info":{backgroundImage:Nw("#999")},".cm-lintRange-hint":{backgroundImage:Nw("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function zFA(t){return t=="error"?4:t=="warning"?3:t=="info"?2:1}function IoA(t){let e="hint",A=1;for(let i of t){let n=zFA(i.severity);n>A&&(A=n,e=i.severity)}return e}var Kw=class extends Ga{constructor(e){super(),this.diagnostics=e,this.severity=IoA(e)}toDOM(e){let A=document.createElement("div");A.className="cm-lint-marker cm-lint-marker-"+this.severity;let i=this.diagnostics,n=e.state.facet(Jw).tooltipFilter;return n&&(i=n(i,e.state)),i.length&&(A.onmouseover=()=>jFA(e,A,i)),A}};function PFA(t,e){let A=i=>{let n=e.getBoundingClientRect();if(!(i.clientX>n.left-10&&i.clientXn.top-10&&i.clientYe.getBoundingClientRect()}}})}),e.onmouseout=e.onmousemove=null,PFA(t,e)}let{hoverTime:n}=t.state.facet(Jw),o=setTimeout(i,n);e.onmouseout=()=>{clearTimeout(o),e.onmouseout=e.onmousemove=null},e.onmousemove=()=>{clearTimeout(o),o=setTimeout(i,n)}}function qFA(t,e){let A=Object.create(null);for(let n of e){let o=t.lineAt(n.from);(A[o.from]||(A[o.from]=[])).push(n)}let i=[];for(let n in A)i.push(new Kw(A[n]).range(+n));return Io.of(i,!0)}var VFA=Qw({class:"cm-gutter-lint",markers:t=>t.state.field(c_),widgetMarker:(t,e,A)=>{let i=[];return t.state.field(c_).between(A.from,A.to,(n,o,r)=>{n>A.from&&ni.is(l_)?i.value:A,t)},provide:t=>qE.from(t)}),ZFA=Pt.baseTheme({".cm-gutter-lint":{width:"1.4em","& .cm-gutterElement":{padding:".2em"}},".cm-lint-marker":{width:"1em",height:"1em"},".cm-lint-marker-info":{content:Fw('')},".cm-lint-marker-warning":{content:Fw('')},".cm-lint-marker-error":{content:Fw('')}}),doA=[dc,Pt.decorations.compute([dc],t=>{let{selected:e,panel:A}=t.field(dc);return!e||!A||e.from==e.to?ht.none:ht.set([KFA.range(e.from,e.to)])}),FiA(UFA,{hideOn:noA}),OFA],Jw=qe.define({combine(t){return ts(t,{hoverTime:300,markerFilter:null,tooltipFilter:null})}});function BoA(t={}){return[Jw.of(t),c_,VFA,ZFA,CoA]}var C_=class t{constructor(e,A,i,n,o,r,s,a,c,g=0,I){this.p=e,this.stack=A,this.state=i,this.reducePos=n,this.pos=o,this.score=r,this.buffer=s,this.bufferBase=a,this.curContext=c,this.lookAhead=g,this.parent=I}toString(){return`[${this.stack.filter((e,A)=>A%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,A,i=0){let n=e.parser.context;return new t(e,[],A,i,i,0,[],0,n?new Yw(n,n.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,A){this.stack.push(this.state,A,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var A;let i=e>>19,n=e&65535,{parser:o}=this.p,r=this.reducePos=2e3&&!(!((A=this.p.parser.nodeSet.types[n])===null||A===void 0)&&A.isAnonymous)&&(c==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=g):this.p.lastBigReductionSizea;)this.stack.pop();this.reduceContext(n,c)}storeNode(e,A,i,n=4,o=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&r.buffer[s-4]==0&&r.buffer[s-1]>-1){if(A==i)return;if(r.buffer[s-2]>=A){r.buffer[s-2]=i;return}}}if(!o||this.pos==i)this.buffer.push(e,A,i,n);else{let r=this.buffer.length;if(r>0&&this.buffer[r-4]!=0){let s=!1;for(let a=r;a>0&&this.buffer[a-2]>i;a-=4)if(this.buffer[a-1]>=0){s=!0;break}if(s)for(;r>0&&this.buffer[r-2]>i;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,n>4&&(n-=4)}this.buffer[r]=e,this.buffer[r+1]=A,this.buffer[r+2]=i,this.buffer[r+3]=n}}shift(e,A,i,n){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let o=e,{parser:r}=this.p;(n>this.pos||A<=r.maxNode)&&(this.pos=n,r.stateFlag(o,1)||(this.reducePos=n)),this.pushState(o,i),this.shiftContext(A,i),A<=r.maxNode&&this.buffer.push(A,i,n,4)}else this.pos=n,this.shiftContext(A,i),A<=this.p.parser.maxNode&&this.buffer.push(A,i,n,4)}apply(e,A,i,n){e&65536?this.reduce(e):this.shift(e,A,i,n)}useNode(e,A){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);let n=this.pos;this.reducePos=this.pos=n+e.length,this.pushState(A,n),this.buffer.push(i,n,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,A=e.buffer.length;for(;A>0&&e.buffer[A-2]>e.reducePos;)A-=4;let i=e.buffer.slice(A),n=e.bufferBase+A;for(;e&&n==e.bufferBase;)e=e.parent;return new t(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,n,this.curContext,this.lookAhead,e)}recoverByDelete(e,A){let i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,A,4),this.storeNode(0,this.pos,A,i?8:4),this.pos=this.reducePos=A,this.score-=190}canShift(e){for(let A=new d_(this);;){let i=this.p.parser.stateSlot(A.state,4)||this.p.parser.hasAction(A.state,e);if(i==0)return!1;if((i&65536)==0)return!0;A.reduce(i)}}recoverByInsert(e){if(this.stack.length>=300)return[];let A=this.p.parser.nextStates(this.state);if(A.length>8||this.stack.length>=120){let n=[];for(let o=0,r;oa&1&&s==r)||n.push(A[o],r)}A=n}let i=[];for(let n=0;n>19,n=A&65535,o=this.stack.length-i*3;if(o<0||e.getGoto(this.stack[o],n,!1)<0){let r=this.findForcedReduction();if(r==null)return!1;A=r}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(A),!0}findForcedReduction(){let{parser:e}=this.p,A=[],i=(n,o)=>{if(!A.includes(n))return A.push(n),e.allActions(n,r=>{if(!(r&393216))if(r&65536){let s=(r>>19)-o;if(s>1){let a=r&65535,c=this.stack.length-s*3;if(c>=0&&e.getGoto(this.stack[c],a,!1)>=0)return s<<19|65536|a}}else{let s=i(r,o+1);if(s!=null)return s}})};return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let A=0;Athis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},Yw=class{constructor(e,A){this.tracker=e,this.context=A,this.hash=e.strict?e.hash(A):0}},d_=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let A=e&65535,i=e>>19;i==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(i-1)*3;let n=this.start.p.parser.getGoto(this.stack[this.base-3],A,!0);this.state=n}},B_=class t{constructor(e,A,i){this.stack=e,this.pos=A,this.index=i,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,A=e.bufferBase+e.buffer.length){return new t(e,A,A-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new t(this.stack,this.pos,this.index)}};function L3(t,e=Uint16Array){if(typeof t!="string")return t;let A=null;for(let i=0,n=0;i=92&&r--,r>=34&&r--;let a=r-32;if(a>=46&&(a-=46,s=!0),o+=a,s)break;o*=46}A?A[n++]=o:A=new e(o)}return A}var oQ=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},EoA=new oQ,E_=class{constructor(e,A){this.input=e,this.ranges=A,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=EoA,this.rangeIndex=0,this.pos=this.chunkPos=A[0].from,this.range=A[0],this.end=A[A.length-1].to,this.readNext()}resolveOffset(e,A){let i=this.range,n=this.rangeIndex,o=this.pos+e;for(;oi.to:o>=i.to;){if(n==this.ranges.length-1)return null;let r=this.ranges[++n];o+=r.from-i.to,i=r}return o}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,A.from);return this.end}peek(e){let A=this.chunkOff+e,i,n;if(A>=0&&A=this.chunk2Pos&&is.to&&(this.chunk2=this.chunk2.slice(0,s.to-i)),n=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),n}acceptToken(e,A=0){let i=A?this.resolveOffset(A,-1):this.pos;if(i==null||i=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,A){if(A?(this.token=A,A.start=e,A.lookAhead=e+1,A.value=A.extended=-1):this.token=EoA,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&A<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,A-this.chunkPos);if(e>=this.chunk2Pos&&A<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,A-this.chunk2Pos);if(e>=this.range.from&&A<=this.range.to)return this.input.read(e,A);let i="";for(let n of this.ranges){if(n.from>=A)break;n.to>e&&(i+=this.input.read(Math.max(n.from,e),Math.min(n.to,A)))}return i}},Y1=class{constructor(e,A){this.data=e,this.id=A}token(e,A){let{parser:i}=A.p;moA(this.data,e,A,this.id,i.data,i.tokenPrecTable)}};Y1.prototype.contextual=Y1.prototype.fallback=Y1.prototype.extend=!1;var Q_=class{constructor(e,A,i){this.precTable=A,this.elseToken=i,this.data=typeof e=="string"?L3(e):e}token(e,A){let i=e.pos,n=0;for(;;){let o=e.next<0,r=e.resolveOffset(1,1);if(moA(this.data,e,A,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(o||n++,r==null)break;e.reset(r,e.token)}n&&(e.reset(i,e.token),e.acceptToken(this.elseToken,n))}};Q_.prototype.contextual=Y1.prototype.fallback=Y1.prototype.extend=!1;function moA(t,e,A,i,n,o){let r=0,s=1<0){let B=t[d];if(a.allows(B)&&(e.token.value==-1||e.token.value==B||XFA(B,e.token.value,n,o))){e.acceptToken(B);break}}let g=e.next,I=0,C=t[r+2];if(e.next<0&&C>I&&t[c+C*3-3]==65535){r=t[c+C*3-1];continue A}for(;I>1,B=c+d+(d<<1),E=t[B],u=t[B+1]||65536;if(g=u)I=d+1;else{r=t[B+2],e.advance();continue A}}break}}function QoA(t,e,A){for(let i=e,n;(n=t[i])!=65535;i++)if(n==A)return i-e;return-1}function XFA(t,e,A,i){let n=QoA(A,i,e);return n<0||QoA(A,i,t)e)&&!i.type.isError)return A<0?Math.max(0,Math.min(i.to-1,e-25)):Math.min(t.length,Math.max(i.from+1,e+25));if(A<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return A<0?0:t.length}}var u_=class{constructor(e,A){this.fragments=e,this.nodeSet=A,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?uoA(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?uoA(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=r,null;if(o instanceof wr){if(r==e){if(r=Math.max(this.safeFrom,e)&&(this.trees.push(o),this.start.push(r),this.index.push(0))}else this.index[A]++,this.nextStart=r+o.length}}},h_=class{constructor(e,A){this.stream=A,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(i=>new oQ)}getActions(e){let A=0,i=null,{parser:n}=e.p,{tokenizers:o}=n,r=n.stateSlot(e.state,3),s=e.curContext?e.curContext.hash:0,a=0;for(let c=0;cI.end+25&&(a=Math.max(I.lookAhead,a)),I.value!=0)){let C=A;if(I.extended>-1&&(A=this.addActions(e,I.extended,I.end,A)),A=this.addActions(e,I.value,I.end,A),!g.extend&&(i=I,A>C))break}}for(;this.actions.length>A;)this.actions.pop();return a&&e.setLookAhead(a),!i&&e.pos==this.stream.end&&(i=new oQ,i.value=e.p.parser.eofTerm,i.start=i.end=e.pos,A=this.addActions(e,i.value,i.end,A)),this.mainToken=i,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let A=new oQ,{pos:i,p:n}=e;return A.start=i,A.end=Math.min(i+1,n.stream.end),A.value=i==n.stream.end?n.parser.eofTerm:0,A}updateCachedToken(e,A,i){let n=this.stream.clipPos(i.pos);if(A.token(this.stream.reset(n,e),i),e.value>-1){let{parser:o}=i.p;for(let r=0;r=0&&i.p.parser.dialect.allows(s>>1)){(s&1)==0?e.value=s>>1:e.extended=s>>1;break}}}else e.value=0,e.end=this.stream.clipPos(n+1)}putAction(e,A,i,n){for(let o=0;oe.bufferLength*4?new u_(i,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,A=this.minStackPos,i=this.stacks=[],n,o;if(this.bigReductionCount>300&&e.length==1){let[r]=e;for(;r.forceReduce()&&r.stack.length&&r.stack[r.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let r=0;rA)i.push(s);else{if(this.advanceStack(s,i,e))continue;{n||(n=[],o=[]),n.push(s);let a=this.tokens.getMainToken(s);o.push(a.value,a.end)}}break}}if(!i.length){let r=n&&$FA(n);if(r)return Bc&&console.log("Finish with "+this.stackID(r)),this.stackToTree(r);if(this.parser.strict)throw Bc&&n&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+A);this.recovering||(this.recovering=5)}if(this.recovering&&n){let r=this.stoppedAt!=null&&n[0].pos>this.stoppedAt?n[0]:this.runRecovery(n,o,i);if(r)return Bc&&console.log("Force-finish "+this.stackID(r)),this.stackToTree(r.forceAll())}if(this.recovering){let r=this.recovering==1?1:this.recovering*3;if(i.length>r)for(i.sort((s,a)=>a.score-s.score);i.length>r;)i.pop();i.some(s=>s.reducePos>A)&&this.recovering--}else if(i.length>1){A:for(let r=0;r500&&c.buffer.length>500)if((s.score-c.score||s.buffer.length-c.buffer.length)>0)i.splice(a--,1);else{i.splice(r--,1);continue A}}}i.length>12&&i.splice(12,i.length-12)}this.minStackPos=i[0].pos;for(let r=1;r ":"";if(this.stoppedAt!=null&&n>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,g=c?e.curContext.hash:0;for(let I=this.fragments.nodeAt(n);I;){let C=this.parser.nodeSet.types[I.type.id]==I.type?o.getGoto(e.state,I.type.id):-1;if(C>-1&&I.length&&(!c||(I.prop(di.contextHash)||0)==g))return e.useNode(I,C),Bc&&console.log(r+this.stackID(e)+` (via reuse of ${o.getName(I.type.id)})`),!0;if(!(I instanceof wr)||I.children.length==0||I.positions[0]>0)break;let d=I.children[0];if(d instanceof wr&&I.positions[0]==0)I=d;else break}}let s=o.stateSlot(e.state,4);if(s>0)return e.reduce(s),Bc&&console.log(r+this.stackID(e)+` (via always-reduce ${o.getName(s&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let c=0;cn?A.push(B):i.push(B)}return!1}advanceFully(e,A){let i=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return hoA(e,A),!0}}runRecovery(e,A,i){let n=null,o=!1;for(let r=0;r ":"";if(s.deadEnd&&(o||(o=!0,s.restart(),Bc&&console.log(g+this.stackID(s)+" (restarted)"),this.advanceFully(s,i))))continue;let I=s.split(),C=g;for(let d=0;I.forceReduce()&&d<10&&(Bc&&console.log(C+this.stackID(I)+" (via force-reduce)"),!this.advanceFully(I,i));d++)Bc&&(C=this.stackID(I)+" -> ");for(let d of s.recoverByInsert(a))Bc&&console.log(g+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,i);this.stream.end>s.pos?(c==s.pos&&(c++,a=0),s.recoverByDelete(a,c),Bc&&console.log(g+this.stackID(s)+` (via recover-delete ${this.parser.getName(a)})`),hoA(s,i)):(!n||n.scoree.topRules[s][1]),n=[];for(let s=0;s=0)o(g,a,s[c++]);else{let I=s[c+-g];for(let C=-g;C>0;C--)o(s[c++],a,I);c++}}}this.nodeSet=new h3(A.map((s,a)=>Ks.define({name:a>=this.minRepeatTerm?void 0:s,id:a,props:n[a],top:i.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let r=L3(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let s=0;stypeof s=="number"?new Y1(r,s):s),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,A,i){let n=new f_(this,e,A,i);for(let o of this.wrappers)n=o(n,e,A,i);return n}getGoto(e,A,i=!1){let n=this.goto;if(A>=n[0])return-1;for(let o=n[A+1];;){let r=n[o++],s=r&1,a=n[o++];if(s&&i)return a;for(let c=o+(r>>1);o0}validAction(e,A){return!!this.allActions(e,i=>i==A?!0:null)}allActions(e,A){let i=this.stateSlot(e,4),n=i?A(i):void 0;for(let o=this.stateSlot(e,1);n==null;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=j0(this.data,o+2);else break;n=A(j0(this.data,o+1))}return n}nextStates(e){let A=[];for(let i=this.stateSlot(e,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=j0(this.data,i+2);else break;if((this.data[i+2]&1)==0){let n=this.data[i+1];A.some((o,r)=>r&1&&o==n)||A.push(this.data[i],n)}}return A}configure(e){let A=Object.assign(Object.create(t.prototype),this);if(e.props&&(A.nodeSet=this.nodeSet.extend(...e.props)),e.top){let i=this.topRules[e.top];if(!i)throw new RangeError(`Invalid top rule name ${e.top}`);A.top=i}return e.tokenizers&&(A.tokenizers=this.tokenizers.map(i=>{let n=e.tokenizers.find(o=>o.from==i);return n?n.to:i})),e.specializers&&(A.specializers=this.specializers.slice(),A.specializerSpecs=this.specializerSpecs.map((i,n)=>{let o=e.specializers.find(s=>s.from==i.external);if(!o)return i;let r=Object.assign(Object.assign({},i),{external:o.to});return A.specializers[n]=foA(r),r})),e.contextTracker&&(A.context=e.contextTracker),e.dialect&&(A.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(A.strict=e.strict),e.wrap&&(A.wrappers=A.wrappers.concat(e.wrap)),e.bufferLength!=null&&(A.bufferLength=e.bufferLength),A}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let A=this.dynamicPrecedences;return A==null?0:A[e]||0}parseDialect(e){let A=Object.keys(this.dialects),i=A.map(()=>!1);if(e)for(let o of e.split(" ")){let r=A.indexOf(o);r>=0&&(i[r]=!0)}let n=null;for(let o=0;oi)&&A.p.parser.stateFlag(A.state,2)&&(!e||e.scoret.external(A,i)<<1|e}return t.get}var A_A=yw({String:ke.string,Number:ke.number,"True False":ke.bool,PropertyName:ke.propertyName,Null:ke.null,", :":ke.separator,"[ ]":ke.squareBracket,"{ }":ke.brace}),poA=Tw.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"\u26A0 JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[A_A],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0});var e_A=vw.define({name:"json",parser:poA.configure({props:[ZF.add({Object:WF({except:/^\s*\}/}),Array:WF({except:/^\s*\]/})}),M3.add({"Object Array":onA})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function DoA(){return new Mw(e_A)}var woA=typeof String.prototype.normalize=="function"?t=>t.normalize("NFKD"):t=>t,H1=class{constructor(e,A,i=0,n=e.length,o,r){this.test=r,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,n),this.bufferStart=i,this.normalize=o?s=>o(woA(s)):woA,this.query=this.normalize(A)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return ms(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let A=V4(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=lc(e);let n=this.normalize(A);if(n.length)for(let o=0,r=i;;o++){let s=n.charCodeAt(o),a=this.match(s,r,this.bufferPos+this.bufferStart);if(o==n.length-1){if(a)return this.value=a,this;break}r==i&&othis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let A=this.matchPos<=this.to&&this.re.exec(this.curLine);if(A){let i=this.curLineStart+A.index,n=i+A[0].length;if(this.matchPos=qw(this.text,n+(i==n?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,n,A)))return this.value={from:i,to:n,match:A},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=i||n.to<=A){let s=new t(A,e.sliceString(A,i));return p_.set(e,s),s}if(n.from==A&&n.to==i)return n;let{text:o,from:r}=n;return r>A&&(o=e.sliceString(A,r)+o,r=A),n.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,A=this.re.exec(this.flat.text);if(A&&!A[0]&&A.index==e&&(this.re.lastIndex=e+1,A=this.re.exec(this.flat.text)),A){let i=this.flat.from+A.index,n=i+A[0].length;if((this.flat.to>=this.to||A.index+A[0].length<=this.flat.text.length-10)&&(!this.test||this.test(i,n,A)))return this.value={from:i,to:n,match:A},this.matchPos=qw(this.text,n+(i==n?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Pw.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}};typeof Symbol<"u"&&(zw.prototype[Symbol.iterator]=jw.prototype[Symbol.iterator]=function(){return this});function t_A(t){try{return new RegExp(t,k_),!0}catch{return!1}}function qw(t,e){if(e>=t.length)return e;let A=t.lineAt(e),i;for(;e=56320&&i<57344;)e++;return e}function D_(t){let e=String(t.state.doc.lineAt(t.state.selection.main.head).number),A=_n("input",{class:"cm-textfield",name:"line",value:e}),i=_n("form",{class:"cm-gotoLine",onkeydown:o=>{o.keyCode==27?(o.preventDefault(),t.dispatch({effects:x3.of(!1)}),t.focus()):o.keyCode==13&&(o.preventDefault(),n())},onsubmit:o=>{o.preventDefault(),n()}},_n("label",t.state.phrase("Go to line"),": ",A)," ",_n("button",{class:"cm-button",type:"submit"},t.state.phrase("go")),_n("button",{name:"close",onclick:()=>{t.dispatch({effects:x3.of(!1)}),t.focus()},"aria-label":t.state.phrase("close"),type:"button"},["\xD7"]));function n(){let o=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(A.value);if(!o)return;let{state:r}=t,s=r.doc.lineAt(r.selection.main.head),[,a,c,g,I]=o,C=g?+g.slice(1):0,d=c?+c:s.number;if(c&&I){let u=d/100;a&&(u=u*(a=="-"?-1:1)+s.number/r.doc.lines),d=Math.round(r.doc.lines*u)}else c&&a&&(d=d*(a=="-"?-1:1)+s.number);let B=r.doc.line(Math.max(1,Math.min(r.doc.lines,d))),E=ae.cursor(B.from+Math.max(0,Math.min(C,B.length)));t.dispatch({effects:[x3.of(!1),Pt.scrollIntoView(E.from,{y:"center"})],selection:E}),t.focus()}return{dom:i}}var x3=Ki.define(),yoA=tr.define({create(){return!0},update(t,e){for(let A of e.effects)A.is(x3)&&(t=A.value);return t},provide:t=>NC.from(t,e=>e?D_:null)}),i_A=t=>{let e=FC(t,D_);if(!e){let A=[x3.of(!0)];t.state.field(yoA,!1)==null&&A.push(Ki.appendConfig.of([yoA,n_A])),t.dispatch({effects:A}),e=FC(t,D_)}return e&&e.dom.querySelector("input").select(),!0},n_A=Pt.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px",position:"relative","& label":{fontSize:"80%"},"& [name=close]":{position:"absolute",top:"0",bottom:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:"0"}}}),o_A={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},koA=qe.define({combine(t){return ts(t,o_A,{highlightWordAroundCursor:(e,A)=>e||A,minSelectionLength:Math.min,maxMatches:Math.min})}});function SoA(t){let e=[g_A,c_A];return t&&e.push(koA.of(t)),e}var r_A=ht.mark({class:"cm-selectionMatch"}),s_A=ht.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function voA(t,e,A,i){return(A==0||t(e.sliceDoc(A-1,A))!=lo.Word)&&(i==e.doc.length||t(e.sliceDoc(i,i+1))!=lo.Word)}function a_A(t,e,A,i){return t(e.sliceDoc(A,A+1))==lo.Word&&t(e.sliceDoc(i-1,i))==lo.Word}var c_A=Bo.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.selectionSet||t.docChanged||t.viewportChanged)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=t.state.facet(koA),{state:A}=t,i=A.selection;if(i.ranges.length>1)return ht.none;let n=i.main,o,r=null;if(n.empty){if(!e.highlightWordAroundCursor)return ht.none;let a=A.wordAt(n.head);if(!a)return ht.none;r=A.charCategorizer(n.head),o=A.sliceDoc(a.from,a.to)}else{let a=n.to-n.from;if(a200)return ht.none;if(e.wholeWords){if(o=A.sliceDoc(n.from,n.to),r=A.charCategorizer(n.head),!(voA(r,A,n.from,n.to)&&a_A(r,A,n.from,n.to)))return ht.none}else if(o=A.sliceDoc(n.from,n.to),!o)return ht.none}let s=[];for(let a of t.visibleRanges){let c=new H1(A.doc,o,a.from,a.to);for(;!c.next().done;){let{from:g,to:I}=c.value;if((!r||voA(r,A,g,I))&&(n.empty&&g<=n.from&&I>=n.to?s.push(s_A.range(g,I)):(g>=n.to||I<=n.from)&&s.push(r_A.range(g,I)),s.length>e.maxMatches))return ht.none}}return ht.set(s)}},{decorations:t=>t.decorations}),g_A=Pt.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),l_A=({state:t,dispatch:e})=>{let{selection:A}=t,i=ae.create(A.ranges.map(n=>t.wordAt(n.head)||ae.cursor(n.head)),A.mainIndex);return i.eq(A)?!1:(e(t.update({selection:i})),!0)};function I_A(t,e){let{main:A,ranges:i}=t.selection,n=t.wordAt(A.head),o=n&&n.from==A.from&&n.to==A.to;for(let r=!1,s=new H1(t.doc,e,i[i.length-1].to);;)if(s.next(),s.done){if(r)return null;s=new H1(t.doc,e,0,Math.max(0,i[i.length-1].from-1)),r=!0}else{if(r&&i.some(a=>a.from==s.value.from))continue;if(o){let a=t.wordAt(s.value.from);if(!a||a.from!=s.value.from||a.to!=s.value.to)continue}return s.value}}var C_A=({state:t,dispatch:e})=>{let{ranges:A}=t.selection;if(A.some(o=>o.from===o.to))return l_A({state:t,dispatch:e});let i=t.sliceDoc(A[0].from,A[0].to);if(t.selection.ranges.some(o=>t.sliceDoc(o.from,o.to)!=i))return!1;let n=I_A(t,i);return n?(e(t.update({selection:t.selection.addRange(ae.range(n.from,n.to),!1),effects:Pt.scrollIntoView(n.to)})),!0):!1},TC=qe.define({combine(t){return ts(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new M_(e),scrollToMatch:e=>Pt.scrollIntoView(e)})}});function RoA(t){return t?[TC.of(t),b_]:b_}var Vw=class{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||t_A(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(A,i)=>i=="n"?` +`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new y_(this):new w_(this)}getCursor(e,A=0,i){let n=e.doc?e:Dr.create({doc:e});return i==null&&(i=n.doc.length),this.regexp?sQ(this,n,A,i):rQ(this,n,A,i)}},Zw=class{constructor(e){this.spec=e}};function rQ(t,e,A,i){return new H1(e.doc,t.unquoted,A,i,t.caseSensitive?void 0:n=>n.toLowerCase(),t.wholeWord?d_A(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function d_A(t,e){return(A,i,n,o)=>((o>A||o+n.length=A)return null;n.push(i.value)}return n}highlight(e,A,i,n){let o=rQ(this.spec,e,Math.max(0,A-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!o.next().done;)n(o.value.from,o.value.to)}};function sQ(t,e,A,i){return new zw(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:t.wholeWord?B_A(e.charCategorizer(e.selection.main.head)):void 0},A,i)}function Ww(t,e){return t.slice(br(t,e,!1),e)}function Xw(t,e){return t.slice(e,br(t,e))}function B_A(t){return(e,A,i)=>!i[0].length||(t(Ww(i.input,i.index))!=lo.Word||t(Xw(i.input,i.index))!=lo.Word)&&(t(Xw(i.input,i.index+i[0].length))!=lo.Word||t(Ww(i.input,i.index+i[0].length))!=lo.Word)}var y_=class extends Zw{nextMatch(e,A,i){let n=sQ(this.spec,e,i,e.doc.length).next();return n.done&&(n=sQ(this.spec,e,0,A).next()),n.done?null:n.value}prevMatchInRange(e,A,i){for(let n=1;;n++){let o=Math.max(A,i-n*1e4),r=sQ(this.spec,e,o,i),s=null;for(;!r.next().done;)s=r.value;if(s&&(o==A||s.from>o+10))return s;if(o==A)return null}}prevMatch(e,A,i){return this.prevMatchInRange(e,0,A)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(A,i)=>{if(i=="&")return e.match[0];if(i=="$")return"$";for(let n=i.length;n>0;n--){let o=+i.slice(0,n);if(o>0&&o=A)return null;n.push(i.value)}return n}highlight(e,A,i,n){let o=sQ(this.spec,e,Math.max(0,A-250),Math.min(i+250,e.doc.length));for(;!o.next().done;)n(o.value.from,o.value.to)}},F3=Ki.define(),S_=Ki.define(),T1=tr.define({create(t){return new N3(v_(t).create(),null)},update(t,e){for(let A of e.effects)A.is(F3)?t=new N3(A.value.create(),t.panel):A.is(S_)&&(t=new N3(t.query,A.value?R_:null));return t},provide:t=>NC.from(t,e=>e.panel)});var N3=class{constructor(e,A){this.query=e,this.panel=A}},E_A=ht.mark({class:"cm-searchMatch"}),Q_A=ht.mark({class:"cm-searchMatch cm-searchMatch-selected"}),u_A=Bo.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(T1))}update(t){let e=t.state.field(T1);(e!=t.startState.field(T1)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return ht.none;let{view:A}=this,i=new fs;for(let n=0,o=A.visibleRanges,r=o.length;no[n+1].from-2*250;)a=o[++n].to;t.highlight(A.state,s,a,(c,g)=>{let I=A.state.selection.ranges.some(C=>C.from==c&&C.to==g);i.add(c,g,I?Q_A:E_A)})}return i.finish()}},{decorations:t=>t.decorations});function _3(t){return e=>{let A=e.state.field(T1,!1);return A&&A.query.spec.valid?t(e,A):ey(e)}}var $w=_3((t,{query:e})=>{let{to:A}=t.state.selection.main,i=e.nextMatch(t.state,A,A);if(!i)return!1;let n=ae.single(i.from,i.to),o=t.state.facet(TC);return t.dispatch({selection:n,effects:[L_(t,i),o.scrollToMatch(n.main,t)],userEvent:"select.search"}),xoA(t),!0}),Ay=_3((t,{query:e})=>{let{state:A}=t,{from:i}=A.selection.main,n=e.prevMatch(A,i,i);if(!n)return!1;let o=ae.single(n.from,n.to),r=t.state.facet(TC);return t.dispatch({selection:o,effects:[L_(t,n),r.scrollToMatch(o.main,t)],userEvent:"select.search"}),xoA(t),!0}),h_A=_3((t,{query:e})=>{let A=e.matchAll(t.state,1e3);return!A||!A.length?!1:(t.dispatch({selection:ae.create(A.map(i=>ae.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),f_A=({state:t,dispatch:e})=>{let A=t.selection;if(A.ranges.length>1||A.main.empty)return!1;let{from:i,to:n}=A.main,o=[],r=0;for(let s=new H1(t.doc,t.sliceDoc(i,n));!s.next().done;){if(o.length>1e3)return!1;s.value.from==i&&(r=o.length),o.push(ae.range(s.value.from,s.value.to))}return e(t.update({selection:ae.create(o,r),userEvent:"select.search.matches"})),!0},MoA=_3((t,{query:e})=>{let{state:A}=t,{from:i,to:n}=A.selection.main;if(A.readOnly)return!1;let o=e.nextMatch(A,i,i);if(!o)return!1;let r=o,s=[],a,c,g=[];r.from==i&&r.to==n&&(c=A.toText(e.getReplacement(r)),s.push({from:r.from,to:r.to,insert:c}),r=e.nextMatch(A,r.from,r.to),g.push(Pt.announce.of(A.phrase("replaced match on line $",A.doc.lineAt(i).number)+".")));let I=t.state.changes(s);return r&&(a=ae.single(r.from,r.to).map(I),g.push(L_(t,r)),g.push(A.facet(TC).scrollToMatch(a.main,t))),t.dispatch({changes:I,selection:a,effects:g,userEvent:"input.replace"}),!0}),m_A=_3((t,{query:e})=>{if(t.state.readOnly)return!1;let A=e.matchAll(t.state,1e9).map(n=>{let{from:o,to:r}=n;return{from:o,to:r,insert:e.getReplacement(n)}});if(!A.length)return!1;let i=t.state.phrase("replaced $ matches",A.length)+".";return t.dispatch({changes:A,effects:Pt.announce.of(i),userEvent:"input.replace.all"}),!0});function R_(t){return t.state.facet(TC).createPanel(t)}function v_(t,e){var A,i,n,o,r;let s=t.selection.main,a=s.empty||s.to>s.from+100?"":t.sliceDoc(s.from,s.to);if(e&&!a)return e;let c=t.facet(TC);return new Vw({search:((A=e?.literal)!==null&&A!==void 0?A:c.literal)?a:a.replace(/\n/g,"\\n"),caseSensitive:(i=e?.caseSensitive)!==null&&i!==void 0?i:c.caseSensitive,literal:(n=e?.literal)!==null&&n!==void 0?n:c.literal,regexp:(o=e?.regexp)!==null&&o!==void 0?o:c.regexp,wholeWord:(r=e?.wholeWord)!==null&&r!==void 0?r:c.wholeWord})}function LoA(t){let e=FC(t,R_);return e&&e.dom.querySelector("[main-field]")}function xoA(t){let e=LoA(t);e&&e==t.root.activeElement&&e.select()}var ey=t=>{let e=t.state.field(T1,!1);if(e&&e.panel){let A=LoA(t);if(A&&A!=t.root.activeElement){let i=v_(t.state,e.query.spec);i.valid&&t.dispatch({effects:F3.of(i)}),A.focus(),A.select()}}else t.dispatch({effects:[S_.of(!0),e?F3.of(v_(t.state,e.query.spec)):Ki.appendConfig.of(b_)]});return!0},ty=t=>{let e=t.state.field(T1,!1);if(!e||!e.panel)return!1;let A=FC(t,R_);return A&&A.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:S_.of(!1)}),!0},NoA=[{key:"Mod-f",run:ey,scope:"editor search-panel"},{key:"F3",run:$w,shift:Ay,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:$w,shift:Ay,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:ty,scope:"editor search-panel"},{key:"Mod-Shift-l",run:f_A},{key:"Mod-Alt-g",run:i_A},{key:"Mod-d",run:C_A,preventDefault:!0}],M_=class{constructor(e){this.view=e;let A=this.query=e.state.field(T1).query.spec;this.commit=this.commit.bind(this),this.searchField=_n("input",{value:A.search,placeholder:Ec(e,"Find"),"aria-label":Ec(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=_n("input",{value:A.replace,placeholder:Ec(e,"Replace"),"aria-label":Ec(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=_n("input",{type:"checkbox",name:"case",form:"",checked:A.caseSensitive,onchange:this.commit}),this.reField=_n("input",{type:"checkbox",name:"re",form:"",checked:A.regexp,onchange:this.commit}),this.wordField=_n("input",{type:"checkbox",name:"word",form:"",checked:A.wholeWord,onchange:this.commit});function i(n,o,r){return _n("button",{class:"cm-button",name:n,onclick:o,type:"button"},r)}this.dom=_n("div",{onkeydown:n=>this.keydown(n),class:"cm-search"},[this.searchField,i("next",()=>$w(e),[Ec(e,"next")]),i("prev",()=>Ay(e),[Ec(e,"previous")]),i("select",()=>h_A(e),[Ec(e,"all")]),_n("label",null,[this.caseField,Ec(e,"match case")]),_n("label",null,[this.reField,Ec(e,"regexp")]),_n("label",null,[this.wordField,Ec(e,"by word")]),...e.state.readOnly?[]:[_n("br"),this.replaceField,i("replace",()=>MoA(e),[Ec(e,"replace")]),i("replaceAll",()=>m_A(e),[Ec(e,"replace all")])],_n("button",{name:"close",onclick:()=>ty(e),"aria-label":Ec(e,"close"),type:"button"},["\xD7"])])}commit(){let e=new Vw({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:F3.of(e)}))}keydown(e){DiA(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?Ay:$w)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),MoA(this.view))}update(e){for(let A of e.transactions)for(let i of A.effects)i.is(F3)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(TC).top}};function Ec(t,e){return t.state.phrase(e)}var Hw=30,Ow=/[\s\.,:;?!]/;function L_(t,{from:e,to:A}){let i=t.state.doc.lineAt(e),n=t.state.doc.lineAt(A).to,o=Math.max(i.from,e-Hw),r=Math.min(n,A+Hw),s=t.state.sliceDoc(o,r);if(o!=i.from){for(let a=0;as.length-Hw;a--)if(!Ow.test(s[a-1])&&Ow.test(s[a])){s=s.slice(0,a);break}}return Pt.announce.of(`${t.state.phrase("current match")}. ${s} ${t.state.phrase("on line")} ${i.number}.`)}var p_A=Pt.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),b_=[T1,Ng.low(u_A),p_A];var ny=class{constructor(e,A,i,n){this.state=e,this.pos=A,this.explicit=i,this.view=n,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let A=ns(this.state).resolveInner(this.pos,-1);for(;A&&e.indexOf(A.name)<0;)A=A.parent;return A?{from:A.from,to:this.pos,text:this.state.sliceDoc(A.from,this.pos),type:A.type}:null}matchBefore(e){let A=this.state.doc.lineAt(this.pos),i=Math.max(A.from,this.pos-250),n=A.text.slice(i-A.from,this.pos-A.from),o=n.search(ToA(e,!1));return o<0?null:{from:i+o,to:this.pos,text:n.slice(o)}}get aborted(){return this.abortListeners==null}addEventListener(e,A,i){e=="abort"&&this.abortListeners&&(this.abortListeners.push(A),i&&i.onDocChange&&(this.abortOnDocChange=!0))}};function FoA(t){let e=Object.keys(t).join(""),A=/\w/.test(e);return A&&(e=e.replace(/\w/g,"")),`[${A?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function D_A(t){let e=Object.create(null),A=Object.create(null);for(let{label:n}of t){e[n[0]]=!0;for(let o=1;otypeof n=="string"?{label:n}:n),[A,i]=e.every(n=>/^\w+$/.test(n.label))?[/\w*$/,/\w+$/]:D_A(e);return n=>{let o=n.matchBefore(i);return o||n.explicit?{from:o?o.from:n.pos,options:e,validFor:A}:null}}var oy=class{constructor(e,A,i,n){this.completion=e,this.source=A,this.match=i,this.score=n}};function OC(t){return t.selection.main.from}function ToA(t,e){var A;let{source:i}=t,n=e&&i[0]!="^",o=i[i.length-1]!="$";return!n&&!o?t:new RegExp(`${n?"^":""}(?:${i})${o?"$":""}`,(A=t.flags)!==null&&A!==void 0?A:t.ignoreCase?"i":"")}var HoA=Fa.define();function y_A(t,e,A,i){let{main:n}=t.selection,o=A-n.from,r=i-n.from;return Fe(sA({},t.changeByRange(s=>{if(s!=n&&A!=i&&t.sliceDoc(s.from+o,s.from+r)!=t.sliceDoc(A,i))return{range:s};let a=t.toText(e);return{changes:{from:s.from+o,to:i==n.from?s.to:s.from+r,insert:a},range:ae.cursor(s.from+o+a.length)}})),{scrollIntoView:!0,userEvent:"input.complete"})}var _oA=new WeakMap;function v_A(t){if(!Array.isArray(t))return t;let e=_oA.get(t);return e||_oA.set(t,e=w_A(t)),e}var ry=Ki.define(),G3=Ki.define(),__=class{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let A=0;A=48&&D<=57||D>=97&&D<=122?2:D>=65&&D<=90?1:0:(G=V4(D))!=G.toLowerCase()?1:G!=G.toUpperCase()?2:0;(!w||J==1&&u||R==0&&J!=0)&&(A[I]==D||i[I]==D&&(C=!0)?r[I++]=w:r.length&&(h=!1)),R=J,w+=lc(D)}return I==a&&r[0]==0&&h?this.result(-100+(C?-200:0),r,e):d==a&&B==0?this.ret(-200-e.length+(E==e.length?0:-100),[0,E]):s>-1?this.ret(-700-e.length,[s,s+this.pattern.length]):d==a?this.ret(-900-e.length,[B,E]):I==a?this.result(-100+(C?-200:0)+-700+(h?0:-1100),r,e):A.length==2?null:this.result((n[0]?-700:0)+-200+-1100,n,e)}result(e,A,i){let n=[],o=0;for(let r of A){let s=r+(this.astral?lc(ms(i,r)):1);o&&n[o-1]==r?n[o-1]=s:(n[o++]=r,n[o++]=s)}return this.ret(e-i.length,n)}},G_=class{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:M_A,filterStrict:!1,compareCompletions:(e,A)=>e.label.localeCompare(A.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,A)=>e&&A,closeOnBlur:(e,A)=>e&&A,icons:(e,A)=>e&&A,tooltipClass:(e,A)=>i=>GoA(e(i),A(i)),optionClass:(e,A)=>i=>GoA(e(i),A(i)),addToOptions:(e,A)=>e.concat(A),filterStrict:(e,A)=>e||A})}});function GoA(t,e){return t?e?t+" "+e:t:e}function M_A(t,e,A,i,n,o){let r=t.textDirection==Co.RTL,s=r,a=!1,c="top",g,I,C=e.left-n.left,d=n.right-e.right,B=i.right-i.left,E=i.bottom-i.top;if(s&&C=E||w>e.top?g=A.bottom-e.top:(c="bottom",g=e.bottom-A.top)}let u=(e.bottom-e.top)/o.offsetHeight,h=(e.right-e.left)/o.offsetWidth;return{style:`${c}: ${g/u}px; max-width: ${I/h}px`,class:"cm-completionInfo-"+(a?r?"left-narrow":"right-narrow":s?"left":"right")}}function b_A(t){let e=t.addToOptions.slice();return t.icons&&e.push({render(A){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),A.type&&i.classList.add(...A.type.split(/\s+/g).map(n=>"cm-completionIcon-"+n)),i.setAttribute("aria-hidden","true"),i},position:20}),e.push({render(A,i,n,o){let r=document.createElement("span");r.className="cm-completionLabel";let s=A.displayLabel||A.label,a=0;for(let c=0;ca&&r.appendChild(document.createTextNode(s.slice(a,g)));let C=r.appendChild(document.createElement("span"));C.appendChild(document.createTextNode(s.slice(g,I))),C.className="cm-completionMatchedText",a=I}return aA.position-i.position).map(A=>A.render)}function x_(t,e,A){if(t<=A)return{from:0,to:t};if(e<0&&(e=0),e<=t>>1){let n=Math.floor(e/A);return{from:n*A,to:(n+1)*A}}let i=Math.floor((t-e)/A);return{from:t-(i+1)*A,to:t-i*A}}var K_=class{constructor(e,A,i){this.view=e,this.stateField=A,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:a=>this.placeInfo(a),key:this},this.space=null,this.currentClass="";let n=e.state.field(A),{options:o,selected:r}=n.open,s=e.state.facet(os);this.optionContent=b_A(s),this.optionClass=s.optionClass,this.tooltipClass=s.tooltipClass,this.range=x_(o.length,r,s.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",a=>{let{options:c}=e.state.field(A).open;for(let g=a.target,I;g&&g!=this.dom;g=g.parentNode)if(g.nodeName=="LI"&&(I=/-(\d+)$/.exec(g.id))&&+I[1]{let c=e.state.field(this.stateField,!1);c&&c.tooltip&&e.state.facet(os).closeOnBlur&&a.relatedTarget!=e.contentDOM&&e.dispatch({effects:G3.of(null)})}),this.showOptions(o,n.id)}mount(){this.updateSel()}showOptions(e,A){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,A,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var A;let i=e.state.field(this.stateField),n=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),i!=n){let{options:o,selected:r,disabled:s}=i.open;(!n.open||n.open.options!=o)&&(this.range=x_(o.length,r,e.state.facet(os).maxRenderedOptions),this.showOptions(o,i.id)),this.updateSel(),s!=((A=n.open)===null||A===void 0?void 0:A.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!s)}}updateTooltipClass(e){let A=this.tooltipClass(e);if(A!=this.currentClass){for(let i of this.currentClass.split(" "))i&&this.dom.classList.remove(i);for(let i of A.split(" "))i&&this.dom.classList.add(i);this.currentClass=A}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),A=e.open;if((A.selected>-1&&A.selected=this.range.to)&&(this.range=x_(A.options.length,A.selected,this.view.state.facet(os).maxRenderedOptions),this.showOptions(A.options,e.id)),this.updateSelectedOption(A.selected)){this.destroyInfo();let{completion:i}=A.options[A.selected],{info:n}=i;if(!n)return;let o=typeof n=="string"?document.createTextNode(n):n(i);if(!o)return;"then"in o?o.then(r=>{r&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(r,i)}).catch(r=>is(this.view.state,r,"completion info")):this.addInfoPane(o,i)}}addInfoPane(e,A){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",e.nodeType!=null)i.appendChild(e),this.infoDestroy=null;else{let{dom:n,destroy:o}=e;i.appendChild(n),this.infoDestroy=o||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let A=null;for(let i=this.list.firstChild,n=this.range.from;i;i=i.nextSibling,n++)i.nodeName!="LI"||!i.id?n--:n==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),A=i):i.hasAttribute("aria-selected")&&i.removeAttribute("aria-selected");return A&&S_A(this.list,A),A}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let A=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),n=e.getBoundingClientRect(),o=this.space;if(!o){let r=this.dom.ownerDocument.documentElement;o={left:0,top:0,right:r.clientWidth,bottom:r.clientHeight}}return n.top>Math.min(o.bottom,A.bottom)-10||n.bottom{r.target==n&&r.preventDefault()});let o=null;for(let r=i.from;ri.from||i.from==0))if(o=C,typeof c!="string"&&c.header)n.appendChild(c.header(c));else{let d=n.appendChild(document.createElement("completion-section"));d.textContent=C}}let g=n.appendChild(document.createElement("li"));g.id=A+"-"+r,g.setAttribute("role","option");let I=this.optionClass(s);I&&(g.className=I);for(let C of this.optionContent){let d=C(s,this.view.state,this.view,a);d&&g.appendChild(d)}}return i.from&&n.classList.add("cm-completionListIncompleteTop"),i.tonew K_(A,t,e)}function S_A(t,e){let A=t.getBoundingClientRect(),i=e.getBoundingClientRect(),n=A.height/t.offsetHeight;i.topA.bottom&&(t.scrollTop+=(i.bottom-A.bottom)/n)}function KoA(t){return(t.boost||0)*100+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}function R_A(t,e){let A=[],i=null,n=c=>{A.push(c);let{section:g}=c.completion;if(g){i||(i=[]);let I=typeof g=="string"?g:g.name;i.some(C=>C.name==I)||i.push(typeof g=="string"?{name:I}:g)}},o=e.facet(os);for(let c of t)if(c.hasResult()){let g=c.result.getMatch;if(c.result.filter===!1)for(let I of c.result.options)n(new oy(I,c.source,g?g(I):[],1e9-A.length));else{let I=e.sliceDoc(c.from,c.to),C,d=o.filterStrict?new G_(I):new __(I);for(let B of c.result.options)if(C=d.match(B.label)){let E=B.displayLabel?g?g(B,C.matched):[]:C.matched;n(new oy(B,c.source,E,C.score+(B.boost||0)))}}}if(i){let c=Object.create(null),g=0,I=(C,d)=>{var B,E;return((B=C.rank)!==null&&B!==void 0?B:1e9)-((E=d.rank)!==null&&E!==void 0?E:1e9)||(C.nameI.score-g.score||a(g.completion,I.completion))){let g=c.completion;!s||s.label!=g.label||s.detail!=g.detail||s.type!=null&&g.type!=null&&s.type!=g.type||s.apply!=g.apply||s.boost!=g.boost?r.push(c):KoA(c.completion)>KoA(s)&&(r[r.length-1]=c),s=c.completion}return r}var U_=class t{constructor(e,A,i,n,o,r){this.options=e,this.attrs=A,this.tooltip=i,this.timestamp=n,this.selected=o,this.disabled=r}setSelected(e,A){return e==this.selected||e>=this.options.length?this:new t(this.options,UoA(A,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,A,i,n,o,r){if(n&&!r&&e.some(c=>c.isPending))return n.setDisabled();let s=R_A(e,A);if(!s.length)return n&&e.some(c=>c.isPending)?n.setDisabled():null;let a=A.facet(os).selectOnOpen?0:-1;if(n&&n.selected!=a&&n.selected!=-1){let c=n.options[n.selected].completion;for(let g=0;gg.hasResult()?Math.min(c,g.from):c,1e8),create:G_A,above:o.aboveCursor},n?n.timestamp:Date.now(),a,!1)}map(e){return new t(this.options,this.attrs,Fe(sA({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}setDisabled(){return new t(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}},J_=class t{constructor(e,A,i){this.active=e,this.id=A,this.open=i}static start(){return new t(F_A,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:A}=e,i=A.facet(os),o=(i.override||A.languageDataAt("autocomplete",OC(A)).map(v_A)).map(a=>(this.active.find(g=>g.source==a)||new q0(a,this.active.some(g=>g.state!=0)?1:0)).update(e,i));o.length==this.active.length&&o.every((a,c)=>a==this.active[c])&&(o=this.active);let r=this.open,s=e.effects.some(a=>a.is(T_));r&&e.docChanged&&(r=r.map(e.changes)),e.selection||o.some(a=>a.hasResult()&&e.changes.touchesRange(a.from,a.to))||!L_A(o,this.active)||s?r=U_.build(o,A,this.id,r,i,s):r&&r.disabled&&!o.some(a=>a.isPending)&&(r=null),!r&&o.every(a=>!a.isPending)&&o.some(a=>a.hasResult())&&(o=o.map(a=>a.hasResult()?new q0(a.source,0):a));for(let a of e.effects)a.is(zoA)&&(r=r&&r.setSelected(a.value,this.id));return o==this.active&&r==this.open?this:new t(o,this.id,r)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?x_A:N_A}};function L_A(t,e){if(t==e)return!0;for(let A=0,i=0;;){for(;A-1&&(A["aria-activedescendant"]=t+"-"+e),A}var F_A=[];function OoA(t,e){if(t.isUserEvent("input.complete")){let i=t.annotation(HoA);if(i&&e.activateOnCompletion(i))return 12}let A=t.isUserEvent("input.type");return A&&e.activateOnTyping?5:A?1:t.isUserEvent("delete.backward")?2:t.selection?8:t.docChanged?16:0}var q0=class t{constructor(e,A,i=!1){this.source=e,this.state=A,this.explicit=i}hasResult(){return!1}get isPending(){return this.state==1}update(e,A){let i=OoA(e,A),n=this;(i&8||i&16&&this.touches(e))&&(n=new t(n.source,0)),i&4&&n.state==0&&(n=new t(this.source,1)),n=n.updateFor(e,i);for(let o of e.effects)if(o.is(ry))n=new t(n.source,1,o.value);else if(o.is(G3))n=new t(n.source,0);else if(o.is(T_))for(let r of o.value)r.source==n.source&&(n=r);return n}updateFor(e,A){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(OC(e.state))}},sy=class t extends q0{constructor(e,A,i,n,o,r){super(e,3,A),this.limit=i,this.result=n,this.from=o,this.to=r}hasResult(){return!0}updateFor(e,A){var i;if(!(A&3))return this.map(e.changes);let n=this.result;n.map&&!e.changes.empty&&(n=n.map(n,e.changes));let o=e.changes.mapPos(this.from),r=e.changes.mapPos(this.to,1),s=OC(e.state);if(s>r||!n||A&2&&(OC(e.startState)==this.from||sA.map(e))}}),zoA=Ki.define(),Ka=tr.define({create(){return J_.start()},update(t,e){return t.update(e)},provide:t=>[qE.from(t,e=>e.tooltip),Pt.contentAttributes.from(t,e=>e.attrs)]});function H_(t,e){let A=e.completion.apply||e.completion.label,i=t.state.field(Ka).active.find(n=>n.source==e.source);return i instanceof sy?(typeof A=="string"?t.dispatch(Fe(sA({},y_A(t.state,A,i.from,i.to)),{annotations:HoA.of(e.completion)})):A(t,e.completion,i.from,i.to),!0):!1}var G_A=k_A(Ka,H_);function iy(t,e="option"){return A=>{let i=A.state.field(Ka,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp-1?i.open.selected+n*(t?1:-1):t?0:r-1;return s<0?s=e=="page"?0:r-1:s>=r&&(s=e=="page"?r-1:0),A.dispatch({effects:zoA.of(s)}),!0}}var K_A=t=>{let e=t.state.field(Ka,!1);return t.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampt.state.field(Ka,!1)?(t.dispatch({effects:ry.of(!0)}),!0):!1,U_A=t=>{let e=t.state.field(Ka,!1);return!e||!e.active.some(A=>A.state!=0)?!1:(t.dispatch({effects:G3.of(null)}),!0)},Y_=class{constructor(e,A){this.active=e,this.context=A,this.time=Date.now(),this.updates=[],this.done=void 0}},J_A=50,Y_A=1e3,T_A=Bo.fromClass(class{constructor(t){this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of t.state.field(Ka).active)e.isPending&&this.startQuery(e)}update(t){let e=t.state.field(Ka),A=t.state.facet(os);if(!t.selectionSet&&!t.docChanged&&t.startState.field(Ka)==e)return;let i=t.transactions.some(o=>{let r=OoA(o,A);return r&8||(o.selection||o.docChanged)&&!(r&3)});for(let o=0;oJ_A&&Date.now()-r.time>Y_A){for(let s of r.context.abortListeners)try{s()}catch(a){is(this.view.state,a)}r.context.abortListeners=null,this.running.splice(o--,1)}else r.updates.push(...t.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),t.transactions.some(o=>o.effects.some(r=>r.is(ry)))&&(this.pendingStart=!0);let n=this.pendingStart?50:A.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(o=>o.isPending&&!this.running.some(r=>r.active.source==o.source))?setTimeout(()=>this.startUpdate(),n):-1,this.composing!=0)for(let o of t.transactions)o.isUserEvent("input.type")?this.composing=2:this.composing==2&&o.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:t}=this.view,e=t.field(Ka);for(let A of e.active)A.isPending&&!this.running.some(i=>i.active.source==A.source)&&this.startQuery(A);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(os).updateSyncTime))}startQuery(t){let{state:e}=this.view,A=OC(e),i=new ny(e,A,t.explicit,this.view),n=new Y_(t,i);this.running.push(n),Promise.resolve(t.source(i)).then(o=>{n.context.aborted||(n.done=o||null,this.scheduleAccept())},o=>{this.view.dispatch({effects:G3.of(null)}),is(this.view.state,o)})}scheduleAccept(){this.running.every(t=>t.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(os).updateSyncTime))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],A=this.view.state.facet(os),i=this.view.state.field(Ka);for(let n=0;ns.source==o.active.source);if(r&&r.isPending)if(o.done==null){let s=new q0(o.active.source,0);for(let a of o.updates)s=s.update(a,A);s.isPending||e.push(s)}else this.startQuery(r)}(e.length||i.open&&i.open.disabled)&&this.view.dispatch({effects:T_.of(e)})}},{eventHandlers:{blur(t){let e=this.view.state.field(Ka,!1);if(e&&e.tooltip&&this.view.state.facet(os).closeOnBlur){let A=e.open&&yF(this.view,e.open.tooltip);(!A||!A.dom.contains(t.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:G3.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:ry.of(!1)}),20),this.composing=0}}}),H_A=typeof navigator=="object"&&/Win/.test(navigator.platform),O_A=Ng.highest(Pt.domEventHandlers({keydown(t,e){let A=e.state.field(Ka,!1);if(!A||!A.open||A.open.disabled||A.open.selected<0||t.key.length>1||t.ctrlKey&&!(H_A&&t.altKey)||t.metaKey)return!1;let i=A.open.options[A.open.selected],n=A.active.find(r=>r.source==i.source),o=i.completion.commitCharacters||n.result.commitCharacters;return o&&o.indexOf(t.key)>-1&&H_(e,i),!1}})),z_A=Pt.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});var K3={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},HC=Ki.define({map(t,e){let A=e.mapPos(t,-1,us.TrackAfter);return A??void 0}}),O_=new class extends xg{};O_.startSide=1;O_.endSide=-1;var PoA=tr.define({create(){return Io.empty},update(t,e){if(t=t.map(e.changes),e.selection){let A=e.state.doc.lineAt(e.selection.main.head);t=t.update({filter:i=>i>=A.from&&i<=A.to})}for(let A of e.effects)A.is(HC)&&(t=t.update({add:[O_.range(A.value,A.value+1)]}));return t}});function joA(){return[j_A,PoA]}var F_="()[]{}<>\xAB\xBB\xBB\xAB\uFF3B\uFF3D\uFF5B\uFF5D";function qoA(t){for(let e=0;e{if((P_A?t.composing:t.compositionStarted)||t.state.readOnly)return!1;let n=t.state.selection.main;if(i.length>2||i.length==2&&lc(ms(i,0))==1||e!=n.from||A!=n.to)return!1;let o=V_A(t.state,i);return o?(t.dispatch(o),!0):!1}),q_A=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=VoA(t,t.selection.main.head).brackets||K3.brackets,n=null,o=t.changeByRange(r=>{if(r.empty){let s=Z_A(t.doc,r.head);for(let a of i)if(a==s&&ay(t.doc,r.head)==qoA(ms(a,0)))return{changes:{from:r.head-a.length,to:r.head+a.length},range:ae.cursor(r.head-a.length)}}return{range:n=r}});return n||e(t.update(o,{scrollIntoView:!0,userEvent:"delete.backward"})),!n},ZoA=[{key:"Backspace",run:q_A}];function V_A(t,e){let A=VoA(t,t.selection.main.head),i=A.brackets||K3.brackets;for(let n of i){let o=qoA(ms(n,0));if(e==n)return o==n?$_A(t,n,i.indexOf(n+n+n)>-1,A):W_A(t,n,o,A.before||K3.before);if(e==o&&WoA(t,t.selection.main.from))return X_A(t,n,o)}return null}function WoA(t,e){let A=!1;return t.field(PoA).between(0,t.doc.length,i=>{i==e&&(A=!0)}),A}function ay(t,e){let A=t.sliceString(e,e+2);return A.slice(0,lc(ms(A,0)))}function Z_A(t,e){let A=t.sliceString(e-2,e);return lc(ms(A,0))==A.length?A:A.slice(1)}function W_A(t,e,A,i){let n=null,o=t.changeByRange(r=>{if(!r.empty)return{changes:[{insert:e,from:r.from},{insert:A,from:r.to}],effects:HC.of(r.to+e.length),range:ae.range(r.anchor+e.length,r.head+e.length)};let s=ay(t.doc,r.head);return!s||/\s/.test(s)||i.indexOf(s)>-1?{changes:{insert:e+A,from:r.head},effects:HC.of(r.head+e.length),range:ae.cursor(r.head+e.length)}:{range:n=r}});return n?null:t.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function X_A(t,e,A){let i=null,n=t.changeByRange(o=>o.empty&&ay(t.doc,o.head)==A?{changes:{from:o.head,to:o.head+A.length,insert:A},range:ae.cursor(o.head+A.length)}:i={range:o});return i?null:t.update(n,{scrollIntoView:!0,userEvent:"input.type"})}function $_A(t,e,A,i){let n=i.stringPrefixes||K3.stringPrefixes,o=null,r=t.changeByRange(s=>{if(!s.empty)return{changes:[{insert:e,from:s.from},{insert:e,from:s.to}],effects:HC.of(s.to+e.length),range:ae.range(s.anchor+e.length,s.head+e.length)};let a=s.head,c=ay(t.doc,a),g;if(c==e){if(JoA(t,a))return{changes:{insert:e+e,from:a},effects:HC.of(a+e.length),range:ae.cursor(a+e.length)};if(WoA(t,a)){let C=A&&t.sliceDoc(a,a+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:a,to:a+C.length,insert:C},range:ae.cursor(a+C.length)}}}else{if(A&&t.sliceDoc(a-2*e.length,a)==e+e&&(g=YoA(t,a-2*e.length,n))>-1&&JoA(t,g))return{changes:{insert:e+e+e+e,from:a},effects:HC.of(a+e.length),range:ae.cursor(a+e.length)};if(t.charCategorizer(a)(c)!=lo.Word&&YoA(t,a,n)>-1&&!AGA(t,a,e,n))return{changes:{insert:e+e,from:a},effects:HC.of(a+e.length),range:ae.cursor(a+e.length)}}return{range:o=s}});return o?null:t.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function JoA(t,e){let A=ns(t).resolveInner(e+1);return A.parent&&A.from==e}function AGA(t,e,A,i){let n=ns(t).resolveInner(e,-1),o=i.reduce((r,s)=>Math.max(r,s.length),0);for(let r=0;r<5;r++){let s=t.sliceDoc(n.from,Math.min(n.to,n.from+A.length+o)),a=s.indexOf(A);if(!a||a>-1&&i.indexOf(s.slice(0,a))>-1){let g=n.firstChild;for(;g&&g.from==n.from&&g.to-g.from>A.length+a;){if(t.sliceDoc(g.to-A.length,g.to)==A)return!1;g=g.firstChild}return!0}let c=n.to==e&&n.parent;if(!c)break;n=c}return!1}function YoA(t,e,A){let i=t.charCategorizer(e);if(i(t.sliceDoc(e-1,e))!=lo.Word)return e;for(let n of A){let o=e-n.length;if(t.sliceDoc(o,e)==n&&i(t.sliceDoc(o-1,o))!=lo.Word)return o}return-1}function XoA(t={}){return[O_A,Ka,os.of(t),T_A,eGA,z_A]}var z_=[{key:"Ctrl-Space",run:N_},{mac:"Alt-`",run:N_},{mac:"Alt-i",run:N_},{key:"Escape",run:U_A},{key:"ArrowDown",run:iy(!0)},{key:"ArrowUp",run:iy(!1)},{key:"PageDown",run:iy(!0,"page")},{key:"PageUp",run:iy(!1,"page")},{key:"Enter",run:K_A}],eGA=Ng.highest(jE.computeN([os],t=>t.facet(os).defaultKeymap?[z_]:[]));function tGA(t,e=t.state){let A=new Set;for(let{from:i,to:n}of t.visibleRanges){let o=i;for(;o<=n;){let r=e.doc.lineAt(o);A.has(r)||A.add(r),o=r.to+1}}return A}function P_(t){let e=t.selection.main.head;return t.doc.lineAt(e)}function $oA(t,e){let A=0;A:for(let i=0;i=o.level&&this.markerType!=="codeOnly"?this.set(e,0,n.level):n.empty&&n.level===0&&o.level!==0?this.set(e,0,0):o.level>n.level?this.set(e,0,n.level+1):this.set(e,0,o.level)}let A=$oA(e.text,this.state.tabSize),i=Math.floor(A/this.unitWidth);return this.set(e,A,i)}closestNonEmpty(e,A){let i=e.number+A;for(;A===-1?i>=1:i<=this.state.doc.lines;){if(this.has(i)){let r=this.get(i);if(!r.empty)return r}let o=this.state.doc.line(i);if(o.text.trim().length){let r=$oA(o.text,this.state.tabSize),s=Math.floor(r/this.unitWidth);return this.set(o,r,s)}i+=A}let n=this.state.doc.line(A===-1?1:this.state.doc.lines);return this.set(n,0,0)}findAndSetActiveLines(){let e=P_(this.state);if(!this.has(e))return;let A=this.get(e);if(this.has(A.line.number+1)){let o=this.get(A.line.number+1);o.level>A.level&&(A=o)}if(this.has(A.line.number-1)){let o=this.get(A.line.number-1);o.level>A.level&&(A=o)}if(A.level===0)return;A.active=A.level;let i,n;for(i=A.line.number;i>1;i--){if(!this.has(i-1))continue;let o=this.get(i-1);if(o.level0&&a.push(cy("--indent-marker-bg-color",i,e,s,c)),a.push(cy("--indent-marker-active-bg-color",n,e,r-1,1)),r!==o&&a.push(cy("--indent-marker-bg-color",i,e,r,o-r))}else a.push(cy("--indent-marker-bg-color",i,e,s,o-s));return a.join(",")}var q_=class{constructor(e){this.view=e,this.unitWidth=Ug(e.state),this.currentLineNumber=P_(e.state).number,this.generate(e.state)}update(e){let A=Ug(e.state),i=A!==this.unitWidth;i&&(this.unitWidth=A);let n=P_(e.state).number,o=n!==this.currentLineNumber;this.currentLineNumber=n;let r=e.state.facet(gy).highlightActiveBlock&&o;(e.docChanged||e.viewportChanged||i||r)&&this.generate(e.state)}generate(e){let A=new fs,i=tGA(this.view,e),{hideFirstIndent:n,markerType:o,thickness:r,activeThickness:s}=e.facet(gy),a=new j_(i,e,this.unitWidth,o);for(let c of i){let g=a.get(c.number);if(!g?.level)continue;let I=nGA(g,this.unitWidth,n,r,s);A.add(c.from,c.from,ht.line({class:"cm-indent-markers",attributes:{style:`--indent-markers: ${I}`}}))}this.decorations=A.finish()}};function ArA(t={}){return[gy.of(t),iGA(t.colors),Bo.fromClass(q_,{decorations:e=>e.decorations})]}var oGA=["mainAxis","crossAxis","fallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment"],rGA=["mainAxis","crossAxis","limiter"];function EsA(t,e){if(t==null)return{};var A,i,n=function(r,s){if(r==null)return{};var a={};for(var c in r)if({}.hasOwnProperty.call(r,c)){if(s.indexOf(c)!==-1)continue;a[c]=r[c]}return a}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(i=0;i{};function CGA(t){return t()}function Ry(t){for(var e=0;e1&&arguments[1]!==void 0&&arguments[1])&&(jn.l={s:null,u:null,r1:[],r2:$C(!1)})}function mt(t){var e=jn,A=e.e;if(A!==null)for(var i of(e.e=null,A))LsA(i);return t!==void 0&&(e.x=t),jn=e.p,t??{}}function FQ(){return!xQ||jn!==null&&jn.l===null}function wsA(t){var e,A;return jn===null&&lf(),(A=(e=jn).c)!==null&&A!==void 0?A:e.c=new Map(function(i){for(var n=i.p;n!==null;){var o=n.c;if(o!==null)return o;n=n.p}return null}(jn)||void 0)}function EQ(t){if(typeof t!="object"||t===null||i0 in t)return t;var e=eK(t);if(e!==lGA&&e!==IGA)return t;var A=new Map,i=NQ(t),n=V0(0),o=ZC,r=s=>{if(ZC===o)return s();var a=Go,c=ZC;nI(null),lrA(o);var g=s();return nI(a),lrA(c),g};return i&&A.set("length",V0(t.length)),new Proxy(t,{defineProperty(s,a,c){"value"in c&&c.configurable!==!1&&c.enumerable!==!1&&c.writable!==!1||function(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}();var g=A.get(a);return g===void 0?g=r(()=>{var I=V0(c.value);return A.set(a,I),I}):y(g,c.value,!0),!0},deleteProperty(s,a){var c=A.get(a);if(c===void 0){if(a in s){var g=r(()=>V0(Ds));A.set(a,g),W_(n)}}else{if(i&&typeof a=="string"){var I=A.get("length"),C=Number(a);Number.isInteger(C)&&CV0(EQ(C?s[a]:Ds))),A.set(a,I)),I!==void 0){var d=l(I);return d===Ds?void 0:d}return Reflect.get(s,a,c)},getOwnPropertyDescriptor(s,a){var c=Reflect.getOwnPropertyDescriptor(s,a);if(c&&"value"in c){var g=A.get(a);g&&(c.value=l(g))}else if(c===void 0){var I=A.get(a),C=I?.v;if(I!==void 0&&C!==Ds)return{enumerable:!0,configurable:!0,value:C,writable:!0}}return c},has(s,a){var c;if(a===i0)return!0;var g=A.get(a),I=g!==void 0&&g.v!==Ds||Reflect.has(s,a);return(g!==void 0||qn!==null&&(!I||(c=t2(s,a))!==null&&c!==void 0&&c.writable))&&(g===void 0&&(g=r(()=>V0(I?EQ(s[a]):Ds)),A.set(a,g)),l(g)===Ds)?!1:I},set(s,a,c,g){var I,C=A.get(a),d=a in s;if(i&&a==="length")for(var B=c;BV0(Ds)),A.set(B+"",E))}C===void 0?(!d||(I=t2(s,a))!==null&&I!==void 0&&I.writable)&&(y(C=r(()=>V0(void 0)),EQ(c)),A.set(a,C)):(d=C.v!==Ds,y(C,r(()=>EQ(c))));var u=Reflect.getOwnPropertyDescriptor(s,a);if(u!=null&&u.set&&u.set.call(g,c),!d){if(i&&typeof a=="string"){var h=A.get("length"),w=Number(a);Number.isInteger(w)&&w>=h.v&&y(h,w+1)}W_(n)}return!0},ownKeys(s){l(n);var a=Reflect.ownKeys(s).filter(I=>{var C=A.get(I);return C===void 0||C.v!==Ds});for(var[c,g]of A)g.v===Ds||c in s||a.push(c);return a},setPrototypeOf(){(function(){throw new Error("https://svelte.dev/e/state_prototype_fixed")})()}})}function arA(t){try{if(t!==null&&typeof t=="object"&&i0 in t)return t[i0]}catch{}return t}function hGA(t,e){return Object.is(arA(t),arA(e))}function _Q(t){var e=2050,A=Go!==null&&2&Go.f?Go:null;return qn===null||A!==null&&(A.f&Hg)!==0?e|=Hg:qn.f|=BGA,{ctx:jn,deps:null,effects:null,equals:psA,f:e,fn:t,reactions:null,rv:0,v:Ds,wv:0,parent:A??qn,ac:null}}function Ja(t){var e=_Q(t);return YsA(e),e}function ZA(t){var e=_Q(t);return e.equals=DsA,e}function ysA(t){var e=t.effects;if(e!==null){t.effects=null;for(var A=0;A1&&arguments[1]!==void 0&&arguments[1],n=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],o=$C(t);return i||(o.equals=DsA),xQ&&n&&jn!==null&&jn.l!==null&&((A=(e=jn.l).s)!==null&&A!==void 0?A:e.s=[]).push(o),o}function hc(t,e){return y(t,oA(()=>l(t))),e}function y(t,e){var A,i=arguments.length>2&&arguments[2]!==void 0&&arguments[2];return Go===null||A0&&(Go.f&dGA)===0||!FQ()||!(131090&Go.f)||(A=n2)!==null&&A!==void 0&&A.includes(t)||function(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}(),yG(t,i?EQ(e):e)}function yG(t,e){if(!t.equals(e)){var A=t.v;iI?qC.set(t,e):qC.set(t,A),t.v=e,2&t.f&&((t.f&yQ)!==0&&nK(t),qg(t,(t.f&Hg)===0?Dc:rd)),t.wv=TsA(),MsA(t,yQ),!FQ()||qn===null||(qn.f&Dc)===0||96&qn.f||(Wc===null?function(i){Wc=i}([t]):Wc.push(t))}return e}function crA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,A=l(t),i=e===1?A++:A--;return y(t,A),i}function W_(t){y(t,t.v+1)}function MsA(t,e){var A=t.reactions;if(A!==null)for(var i=FQ(),n=A.length,o=0;o0&&arguments[0]!==void 0?arguments[0]:"";return document.createTextNode(t)}function fc(t){return ksA.call(t)}function $y(t){return SsA.call(t)}function W(t,e){return fc(t)}function Mt(t,e){var A=fc(t);return A instanceof Comment&&A.data===""?$y(A):A}function CA(t){for(var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,A=t;e--;)A=$y(A);return A}function RsA(t){qn===null&&Go===null&&function(){throw new Error("https://svelte.dev/e/effect_orphan")}(),Go!==null&&(Go.f&Hg)!==0&&qn===null&&function(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}(),iI&&function(){throw new Error("https://svelte.dev/e/effect_in_teardown")}()}function gI(t,e,A){var i=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3],n=qn,o={ctx:jn,deps:null,nodes_start:null,nodes_end:null,f:t|yQ,first:null,fn:e,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,transitions:null,wv:0,ac:null};if(A)try{e7(o),o.f|=32768}catch(a){throw tg(o),a}else e!==null&&t7(o);if(!(A&&o.deps===null&&o.first===null&&o.nodes_start===null&&o.teardown===null&&!(524416&o.f))&&i&&(n!==null&&function(a,c){var g=c.last;g===null?c.last=c.first=a:(g.next=a,a.prev=g,c.last=a)}(o,n),Go!==null&&2&Go.f)){var r,s=Go;((r=s.effects)!==null&&r!==void 0?r:s.effects=[]).push(o)}return o}function oK(t){var e=gI(8,null,!1);return qg(e,Dc),e.teardown=t,e}function vG(t){if(RsA(),Go||!qn||(qn.f&Wy)===0)return LsA(t);var e,A=jn;((e=A.e)!==null&&e!==void 0?e:A.e=[]).push(t)}function LsA(t){return gI(2097156,t,!1)}function rs(t){return gI(4,t,!1)}function pA(t,e){var A=jn,i={effect:null,ran:!1};A.l.r1.push(i),i.effect=If(()=>{t(),i.ran||(i.ran=!0,y(A.l.r2,!0),oA(e))})}function ln(){var t=jn;If(()=>{if(l(t.l.r2)){for(var e of t.l.r1){var A=e.effect;(A.f&Dc)!==0&&qg(A,rd),Cf(A)&&e7(A),e.ran=!1}t.l.r2.v=!1}})}function If(t){return gI(8,t,!0)}function we(t){var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:_Q,A=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:[]).map(e);return lI(()=>t(...A.map(l)))}function lI(t){return gI(24|(arguments.length>1&&arguments[1]!==void 0?arguments[1]:0),t,!0)}function s0(t){return gI(40,t,!0,!(arguments.length>1&&arguments[1]!==void 0)||arguments[1])}function xsA(t){var e=t.teardown;if(e!==null){var A=iI,i=Go;grA(!0),nI(null);try{e.call(null)}finally{grA(A),nI(i)}}}function NsA(t){var e=arguments.length>1&&arguments[1]!==void 0&&arguments[1],A=t.first;for(t.first=t.last=null;A!==null;){var i;(i=A.ac)===null||i===void 0||i.abort(msA);var n=A.next;(A.f&hsA)!==0?A.parent=null:tg(A,e),A=n}}function tg(t){var e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],A=!1;(e||262144&t.f)&&t.nodes_start!==null&&t.nodes_end!==null&&(FsA(t.nodes_start,t.nodes_end),A=!0),NsA(t,e&&!A),Ny(t,0),qg(t,tK);var i=t.transitions;if(i!==null)for(var n of i)n.stop();xsA(t);var o=t.parent;o!==null&&o.first!==null&&_sA(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes_start=t.nodes_end=t.ac=null}function FsA(t,e){for(;t!==null;){var A=t===e?null:$y(t);t.remove(),t=A}}function _sA(t){var e=t.parent,A=t.prev,i=t.next;A!==null&&(A.next=i),i!==null&&(i.prev=A),e!==null&&(e.first===t&&(e.first=i),e.last===t&&(e.last=A))}function vQ(t,e){var A=[];rK(t,A,!0),GsA(A,()=>{tg(t),e&&e()})}function GsA(t,e){var A=t.length;if(A>0){var i=()=>--A||e();for(var n of t)n.out(i)}else e()}function rK(t,e,A){if((t.f&$1)===0){if(t.f^=$1,t.transitions!==null)for(var i of t.transitions)(i.is_global||A)&&e.push(i);for(var n=t.first;n!==null;){var o=n.next;rK(n,e,((n.f&gf)!==0||(n.f&Wy)!==0)&&A),n=o}}}function Ly(t){KsA(t,!0)}function KsA(t,e){if((t.f&$1)!==0){t.f^=$1;for(var A=t.first;A!==null;){var i=A.next;KsA(A,((A.f&gf)!==0||(A.f&Wy)!==0)&&e),A=i}if(t.transitions!==null)for(var n of t.transitions)(n.is_global||e)&&n.in()}}var j3=[],X_=[];function UsA(){var t=j3;j3=[],Ry(t)}function A7(t){j3.length===0&&queueMicrotask(UsA),j3.push(t)}function fGA(){var t;j3.length>0&&UsA(),X_.length>0&&(t=X_,X_=[],Ry(t))}function JsA(t,e){for(;e!==null;){if(128&e.f)try{return void e.b.error(t)}catch{}e=e.parent}throw t}var q3=!1,V3=null,VC=!1,iI=!1;function grA(t){iI=t}var P3=[],Go=null,A0=!1;function nI(t){Go=t}var qn=null;function oI(t){qn=t}var n2=null;function YsA(t){Go!==null&&Go.f&wG&&(n2===null?n2=[t]:n2.push(t))}var oa=null,Qc=0,Wc=null,xy=1,Z3=0,ZC=Z3;function lrA(t){ZC=t}var V1=!1,IrA=null;function TsA(){return++xy}function Cf(t){var e=t.f;if((e&yQ)!==0)return!0;if((e&rd)!==0){var A=t.deps,i=(e&Hg)!==0;if(A!==null){var n,o,r=(e&DG)!==0,s=i&&qn!==null&&!V1,a=A.length;if(r||s){var c=t,g=c.parent;for(n=0;nt.wv)return!0}i&&(qn===null||V1)||qg(t,Dc)}return!1}function HsA(t,e){var A,i=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],n=t.reactions;if(n!==null&&((A=n2)===null||A===void 0||!A.includes(t)))for(var o=0;o0)for(C.length=Qc+oa.length,d=0;d0;){e++>1e3&&pGA();var A=P3,i=A.length;P3=[];for(var n=0;nn&&(i.f&EGA)!==0)break}}for(;A1&&arguments[1]!==void 0?arguments[1]:new Set;if(!(typeof t!="object"||t===null||t instanceof EventTarget||e.has(t))){for(var A in e.add(t),t instanceof Date&&t.getTime(),t)try{MG(t[A],e)}catch{}var i=eK(t);if(i!==Object.prototype&&i!==Array.prototype&&i!==Map.prototype&&i!==Set.prototype&&i!==Date.prototype){var n=usA(i);for(var o in n){var r=n[o].get;if(r)try{r.call(t)}catch{}}}}}var CrA=!1;function qsA(t){var e=Go,A=qn;nI(null),oI(null);try{return t()}finally{nI(e),oI(A)}}function vGA(t,e,A){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:A;t.addEventListener(e,()=>qsA(A));var n=t.__on_r;t.__on_r=n?()=>{n(),i(!0)}:()=>i(!0),CrA||(CrA=!0,document.addEventListener("reset",o=>{Promise.resolve().then(()=>{if(!o.defaultPrevented)for(var r of o.target.elements){var s;(s=r.__on_r)===null||s===void 0||s.call(r)}})},{capture:!0}))}var VsA=new Set,bG=new Set;function ZsA(t,e,A){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};function n(o){if(i.capture||T3.call(e,o),!o.cancelBubble)return qsA(()=>A?.call(this,o))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?A7(()=>{e.addEventListener(t,n,i)}):e.addEventListener(t,n,i),n}function ce(t,e,A,i,n){var o={capture:i,passive:n},r=ZsA(t,e,A,o);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&oK(()=>{e.removeEventListener(t,r,o)})}function df(t){for(var e=0;er||i});var I=Go,C=qn;nI(null),oI(null);try{for(var d,B=[];r!==null;){var E=r.assignedSlot||r.parentNode||r.host||null;try{var u=r["__"+n];if(u!=null&&(!r.disabled||t.target===r))if(NQ(u)){var[h,...w]=u;h.apply(r,[t,...w])}else u.call(r,t)}catch(D){d?B.push(D):d=D}if(t.cancelBubble||E===A||E===null)break;r=E}if(d){var x=function(D){queueMicrotask(()=>{throw D})};for(var R of B)x(R);throw d}}finally{t.__root=A,delete t.currentTarget,nI(I),oI(C)}}}function sK(t){var e=document.createElement("template");return e.innerHTML=t.replaceAll("",""),e.content}function Ad(t,e){var A=qn;A.nodes_start===null&&(A.nodes_start=t,A.nodes_end=e)}function vA(t,e){var A,i=!!(1&e),n=!!(2&e),o=!t.startsWith("");return()=>{A===void 0&&(A=sK(o?t:""+t),i||(A=fc(A)));var r=n||bsA?document.importNode(A,!0):A.cloneNode(!0);return i?Ad(fc(r),r.lastChild):Ad(r,r),r}}function II(t,e){return function(A,i){var n,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"svg",r=!A.startsWith(""),s=!!(1&i),a="<".concat(o,">").concat(r?A:""+A,"");return()=>{if(!n){var c=fc(sK(a));if(s)for(n=document.createDocumentFragment();fc(c);)n.appendChild(fc(c));else n=fc(c)}var g=n.cloneNode(!0);return s?Ad(fc(g),g.lastChild):Ad(g,g),g}}(t,e,"svg")}function jr(){var t=Xy((arguments.length>0&&arguments[0]!==void 0?arguments[0]:"")+"");return Ad(t,t),t}function _o(){var t=document.createDocumentFragment(),e=document.createComment(""),A=Xy();return t.append(e,A),Ad(e,A),t}function iA(t,e){t!==null&&t.before(e)}var MGA=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"],bGA={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly",defaultvalue:"defaultValue",defaultchecked:"defaultChecked",srcobject:"srcObject",novalidate:"noValidate",allowfullscreen:"allowFullscreen",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback"},kGA=["touchstart","touchmove"];function SGA(t){return kGA.includes(t)}function pt(t,e){var A,i=e==null?"":typeof e=="object"?e+"":e;i!==((A=t.__t)!==null&&A!==void 0?A:t.__t=t.nodeValue)&&(t.__t=i,t.nodeValue=i+"")}function RGA(t,e){return function(A,i){var{target:n,anchor:o,props:r={},events:s,context:a,intro:c=!0}=i;(function(){if(i2===void 0){i2=window,bsA=/Firefox/.test(navigator.userAgent);var B=Element.prototype,E=Node.prototype,u=Text.prototype;ksA=t2(E,"firstChild").get,SsA=t2(E,"nextSibling").get,orA(B)&&(B.__click=void 0,B.__className=void 0,B.__attributes=null,B.__style=void 0,B.__e=void 0),orA(u)&&(u.__t=void 0)}})();var g=new Set,I=B=>{for(var E=0;E0&&arguments[0]!==void 0?arguments[0]:{};return new Promise(h=>{u.outro?vQ(E,()=>{tg(E),h(void 0)}):(tg(E),h(void 0))})}}(()=>{var B=o??n.appendChild(Xy());return s0(()=>{a&&(ft({}),jn.c=a),s&&(r.$$events=s),C=A(B,r)||{},a&&mt()}),()=>{for(var E of g){n.removeEventListener(E,T3);var u=aQ.get(E);--u===0?(document.removeEventListener(E,T3),aQ.delete(E)):aQ.set(E,u)}var h;bG.delete(I),B!==o&&((h=B.parentNode)===null||h===void 0||h.removeChild(B))}});return kG.set(C,d),C}(t,e)}var aQ=new Map,kG=new WeakMap;function ws(t){jn===null&&lf(),xQ&&jn.l!==null?WsA(jn).m.push(t):vG(()=>{var e=oA(t);if(typeof e=="function")return e})}function ig(t){jn===null&&lf(),ws(()=>()=>oA(t))}function LGA(){var t=jn;return t===null&&lf(),(e,A,i)=>{var n,o=(n=t.s.$$events)===null||n===void 0?void 0:n[e];if(o){var r=NQ(o)?o.slice():[o],s=function(c,g){var{bubbles:I=!1,cancelable:C=!1}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return new CustomEvent(c,{detail:g,bubbles:I,cancelable:C})}(e,A,i);for(var a of r)a.call(t.x,s);return!s.defaultPrevented}return!0}}function xGA(t){jn===null&&lf(),jn.l===null&&function(){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}(),WsA(jn).b.push(t)}function WsA(t){var e,A=t.l;return(e=A.u)!==null&&e!==void 0?e:A.u={a:[],b:[],m:[]}}function GA(t,e){var[A,i]=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[0,0],n=t,o=null,r=null,s=Ds,a=!1,c=function(I){a=!0,g(!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],I)},g=(I,C)=>{s!==(s=I)&&(s?(o?Ly(o):C&&(o=s0(()=>C(n))),r&&vQ(r,()=>{r=null})):(r?Ly(r):C&&(r=s0(()=>C(n,[A+1,i]))),o&&vQ(o,()=>{o=null})))};lI(()=>{a=!1,e(c),a||g(null,null)},A>0?gf:0)}function XsA(t,e,A){var i,n=t,o=Ds,r=FQ()?uGA:iK;lI(()=>{r(o,o=e())&&(i&&vQ(i),i=s0(()=>A(n)))})}function cr(t,e){return e}function jo(t,e,A,i,n){var o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null,r=t,s={flags:e,items:new Map,first:null};!(4&e)||(r=t.appendChild(Xy()));var a=null,c=!1,g=ZA(()=>{var I=A();return NQ(I)?I:I==null?[]:pG(I)});lI(()=>{var I=l(g),C=I.length;c&&C===0||(c=C===0,function(d,B,E,u,h,w,x){var R,D,G,J,z,K,O=!!(8&h),V=!!(3&h),j=d.length,dA=B.items,fA=B.first,EA=fA,IA=null,SA=[],nA=[];if(O)for(K=0;K0){var We=4&h&&j===0?E:null;if(O){for(K=0;K0&&Me.length===0&&zA!==null;if(Gt){var ct=zA.parentNode;ct.textContent="",ct.append(zA),xA.clear(),O1(OA,gA[0].prev,gA[LA-1].next)}GsA(Me,()=>{for(var oe=0;oe{if(D!==void 0)for(z of D){var OA;(OA=z.a)===null||OA===void 0||OA.apply()}}),qn.first=B.first&&B.first.e,qn.last=IA&&IA.e}(I,s,r,n,e,i,A),o!==null&&(C===0?a?Ly(a):a=s0(()=>o(r)):a!==null&&vQ(a,()=>{a=null})),l(g))})}function NGA(t,e,A,i){1&i&&yG(t.v,e),2&i?yG(t.i,A):t.i=A}function FGA(t,e,A,i,n,o,r,s,a,c){var g=1&a?16&a?$C(n):$(n,!1,!1):n,I=2&a?$C(r):r,C={i:I,v:g,k:o,a:null,e:null,prev:A,next:i};try{return C.e=s0(()=>s(t,g,I,c),!1),C.e.prev=A&&A.e,C.e.next=i&&i.e,A===null?e.first=C:(A.next=C,A.e.next=C.e),i!==null&&(i.prev=C,i.e.prev=C.e),C}finally{}}function drA(t,e,A){for(var i=t.next?t.next.e.nodes_start:A,n=e?e.e.nodes_start:A,o=t.e.nodes_start;o!==i;){var r=$y(o);n.before(o),o=r}}function O1(t,e,A){e===null?t.first=A:(e.next=A,e.e.next=A&&A.e),A!==null&&(A.prev=e,A.e.prev=e&&e.e)}function $sA(t,e){var A=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=arguments.length>3&&arguments[3]!==void 0&&arguments[3],n=t,o="";we(()=>{var r,s=qn;if(o!==(o=(r=e())!==null&&r!==void 0?r:"")&&(s.nodes_start!==null&&(FsA(s.nodes_start,s.nodes_end),s.nodes_start=s.nodes_end=null),o!=="")){var a=o+"";A?a="".concat(a,""):i&&(a="".concat(a,""));var c=sK(a);if((A||i)&&(c=fc(c)),Ad(fc(c),c.lastChild),A||i)for(;fc(c);)n.before(fc(c));else n.before(c)}})}function Po(t,e,A,i,n){var o,r=(o=e.$$slots)===null||o===void 0?void 0:o[A],s=!1;r===!0&&(r=e[A==="default"?"children":A],s=!0),r===void 0?n!==null&&n(t):r(t,s?()=>i:i)}function AaA(t,e,A){var i,n,o=t;lI(()=>{i!==(i=e())&&(n&&(vQ(n),n=null),i&&(n=s0(()=>A(o,i))))},gf)}function Ts(t,e,A){rs(()=>{var i=oA(()=>e(t,A?.())||{});if(A&&i!=null&&i.update){var n=!1,o={};If(()=>{var r=A();k(r),n&&iK(o,r)&&(o=r,i.update(r))}),n=!0}if(i!=null&&i.destroy)return()=>i.destroy()})}function _GA(t,e){var A,i=void 0;lI(()=>{i!==(i=e())&&(A&&(tg(A),A=null),i&&(A=s0(()=>{rs(()=>i(t))})))})}function eaA(t){var e,A,i="";if(typeof t=="string"||typeof t=="number")i+=t;else if(typeof t=="object")if(Array.isArray(t)){var n=t.length;for(e=0;e1&&arguments[1]!==void 0&&arguments[1]?" !important;":";",A="";for(var i in t){var n=t[i];n!=null&&n!==""&&(A+=" "+i+": "+n+e)}return A}function $_(t){return t[0]!=="-"||t[1]!=="-"?t.toLowerCase():t}function jt(t,e,A,i,n,o){var r=t.__className;if(r!==A||r===void 0){var s=function(g,I,C){var d=g==null?"":""+g;if(I&&(d=d?d+" "+I:I),C){for(var B in C)if(C[B])d=d?d+" "+B:B;else if(d.length)for(var E=B.length,u=0;(u=d.indexOf(B,u))>=0;){var h=u+E;u!==0&&!BrA.includes(d[u-1])||h!==d.length&&!BrA.includes(d[h])?u=h:d=(u===0?"":d.substring(0,u))+d.substring(h+1)}}return d===""?null:d}(A,i,o);s==null?t.removeAttribute("class"):e?t.className=s:t.setAttribute("class",s),t.__className=A}else if(o&&n!==o)for(var a in o){var c=!!o[a];n!=null&&c===!!n[a]||t.classList.toggle(a,c)}return o}function AG(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},A=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;for(var n in A){var o=A[n];e[n]!==o&&(A[n]==null?t.style.removeProperty(n):t.style.setProperty(n,o,i))}}function eg(t,e,A,i){if(t.__style!==e){var n=function(o,r){if(r){var s,a,c="";if(Array.isArray(r)?(s=r[0],a=r[1]):s=r,o){o=String(o).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var g=!1,I=0,C=!1,d=[];s&&d.push(...Object.keys(s).map($_)),a&&d.push(...Object.keys(a).map($_));for(var B=0,E=-1,u=o.length,h=0;h2&&arguments[2]!==void 0&&arguments[2];if(t.multiple){if(e==null)return;if(!NQ(e))return void console.warn("https://svelte.dev/e/select_multiple_invalid_value");for(var i of t.options)i.selected=e.includes(QrA(i))}else{for(i of t.options)if(hGA(QrA(i),e))return void(i.selected=!0);A&&e===void 0||(t.selectedIndex=-1)}}function GGA(t){var e=new MutationObserver(()=>{SG(t,t.__value)});e.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),oK(()=>{e.disconnect()})}function QrA(t){return"__value"in t?t.__value:t.value}var dQ=Symbol("class"),J3=Symbol("style"),taA=Symbol("is custom element"),iaA=Symbol("is html");function ed(t,e){var A=aK(t);A.value!==(A.value=e??void 0)&&(t.value!==e||e===0&&t.nodeName==="PROGRESS")&&(t.value=e??"")}function gn(t,e,A,i){var n=aK(t);n[e]!==(n[e]=A)&&(e==="loading"&&(t[QGA]=A),A==null?t.removeAttribute(e):typeof A!="string"&&naA(t).includes(e)?t[e]=A:t.setAttribute(e,A))}function KGA(t,e,A,i){var n,o=aK(t),r=o[taA],s=!o[iaA],a=e||{},c=t.tagName==="OPTION";for(var g in e)g in A||(A[g]=null);A.class?A.class=rI(A.class):(i||A[dQ])&&(A.class=null),A[J3]&&((n=A.style)!==null&&n!==void 0||(A.style=null));var I,C,d,B,E,u,h=naA(t),w=function(R){var D=A[R];if(c&&R==="value"&&D==null)return t.value=t.__value="",a[R]=D,0;if(R==="class")return I=t.namespaceURI==="http://www.w3.org/1999/xhtml",jt(t,I,D,i,e?.[dQ],A[dQ]),a[R]=D,a[dQ]=A[dQ],0;if(R==="style")return eg(t,D,e?.[J3],A[J3]),a[R]=D,a[J3]=A[J3],0;if(D===(C=a[R])&&(D!==void 0||!t.hasAttribute(R))||(a[R]=D,(d=R[0]+R[1])==="$$"))return 0;if(d==="on"){var G={},J="$$"+R,z=R.slice(2);if(B=function(fA){return MGA.includes(fA)}(z),function(fA){return fA.endsWith("capture")&&fA!=="gotpointercapture"&&fA!=="lostpointercapture"}(z)&&(z=z.slice(0,-7),G.capture=!0),!B&&C){if(D!=null)return 0;t.removeEventListener(z,a[J],G),a[J]=null}if(D!=null)if(B)t["__".concat(z)]=D,df([z]);else{let fA=function(EA){a[R].call(this,EA)};var dA=fA;a[J]=ZsA(z,t,fA,G)}else B&&(t["__".concat(z)]=void 0)}else if(R==="style")gn(t,R,D);else if(R==="autofocus")(function(fA,EA){if(EA){var IA=document.body;fA.autofocus=!0,A7(()=>{document.activeElement===IA&&fA.focus()})}})(t,!!D);else if(r||R!=="__value"&&(R!=="value"||D==null))if(R==="selected"&&c)(function(fA,EA){EA?fA.hasAttribute("selected")||fA.setAttribute("selected",""):fA.removeAttribute("selected")})(t,D);else if(E=R,s||(E=function(fA){var EA;return fA=fA.toLowerCase(),(EA=bGA[fA])!==null&&EA!==void 0?EA:fA}(E)),u=E==="defaultValue"||E==="defaultChecked",D!=null||r||u)u||h.includes(E)&&(r||typeof D!="string")?t[E]=D:typeof D!="function"&&gn(t,E,D);else if(o[R]=null,E==="value"||E==="checked"){var K=t,O=e===void 0;if(E==="value"){var V=K.defaultValue;K.removeAttribute(E),K.defaultValue=V,K.value=K.__value=O?V:null}else{var j=K.defaultChecked;K.removeAttribute(E),K.defaultChecked=j,K.checked=!!O&&j}}else t.removeAttribute(R);else t.value=t.__value=D};for(var x in A)w(x);return a}function vy(t,e){var A=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&arguments[4]!==void 0&&arguments[4],n=arguments.length>5&&arguments[5]!==void 0?arguments[5]:_Q,o=(arguments.length>2&&arguments[2]!==void 0?arguments[2]:[]).map(n),r=void 0,s={},a=t.nodeName==="SELECT",c=!1;if(lI(()=>{var I=e(...o.map(l)),C=KGA(t,r,I,A,i);for(var d of(c&&a&&"value"in I&&SG(t,I.value),Object.getOwnPropertySymbols(s)))I[d]||tg(s[d]);for(var B of Object.getOwnPropertySymbols(I)){var E=I[B];B.description!=="@attach"||r&&E===r[B]||(s[B]&&tg(s[B]),s[B]=s0(()=>_GA(t,()=>E))),C[B]=E}r=C}),a){var g=t;rs(()=>{SG(g,r.value,!0),GGA(g)})}c=!0}function aK(t){var e;return(e=t.__attributes)!==null&&e!==void 0?e:t.__attributes={[taA]:t.nodeName.includes("-"),[iaA]:t.namespaceURI==="http://www.w3.org/1999/xhtml"}}var urA=new Map;function naA(t){var e,A=urA.get(t.nodeName);if(A)return A;urA.set(t.nodeName,A=[]);for(var i=t,n=Element.prototype;n!==i;){for(var o in e=usA(i))e[o].set&&A.push(o);i=eK(i)}return A}function Fy(t,e){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e,i=FQ();vGA(t,"input",n=>{var o=n?t.defaultValue:t.value;if(o=eG(t)?tG(o):o,A(o),i&&o!==(o=e())){var r=t.selectionStart,s=t.selectionEnd;t.value=o??"",s!==null&&(t.selectionStart=r,t.selectionEnd=Math.min(s,t.value.length))}}),oA(e)==null&&t.value&&A(eG(t)?tG(t.value):t.value),If(()=>{var n=e();eG(t)&&n===tG(t.value)||(t.type!=="date"||n||t.value)&&n!==t.value&&(t.value=n??"")})}function eG(t){var e=t.type;return e==="number"||e==="range"}function tG(t){return t===""?null:+t}function Ft(t,e,A){var i=t2(t,e);i&&i.set&&(t[e]=A,oK(()=>{t[e]=null}))}function hrA(t,e){return t===e||t?.[i0]===e}function Qo(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,A=arguments.length>2?arguments[2]:void 0;return rs(()=>{var i,n;return If(()=>{i=n,n=[],oA(()=>{t!==A(...n)&&(e(t,...n),i&&hrA(A(...i),t)&&e(null,...i))})}),()=>{A7(()=>{n&&hrA(A(...n),t)&&e(null,...n)})}}),t}function Z0(t){return function(){for(var e=arguments.length,A=new Array(e),i=0;i0&&arguments[0]!==void 0&&arguments[0],e=jn,A=e.l.u;if(A){var i,n=()=>k(e.s);if(t){var o=0,r={},s=_Q(()=>{var a=!1,c=e.s;for(var g in c)c[g]!==r[g]&&(r[g]=c[g],a=!0);return a&&o++,o});n=()=>l(s)}A.b.length&&(i=()=>{frA(e,n),Ry(A.b)},RsA(),gI(2097160,i,!0)),vG(()=>{var a=oA(()=>A.m.map(CGA));return()=>{for(var c of a)typeof c=="function"&&c()}}),A.a.length&&vG(()=>{frA(e,n),Ry(A.a)})}}function frA(t,e){if(t.l.s)for(var A of t.l.s)l(A);e()}function i7(t){var e=$C(0);return function(){return arguments.length===1?(y(e,l(e)+1),arguments[0]):(l(e),t())}}function H3(t,e){var A,i=(A=t.$$events)===null||A===void 0?void 0:A[e.type],n=NQ(i)?i.slice():i==null?[]:[i];for(var o of n)o.call(this,e)}var ly=!1,UGA={get(t,e){if(!t.exclude.includes(e))return l(t.version),e in t.special?t.special[e]():t.props[e]},set(t,e,A){if(!(e in t.special)){var i=qn;try{oI(t.parent_effect),t.special[e]=M({get[e](){return t.props[e]}},e,4)}finally{oI(i)}}return t.special[e](A),crA(t.version),!0},getOwnPropertyDescriptor(t,e){if(!t.exclude.includes(e))return e in t.props?{enumerable:!0,configurable:!0,value:t.props[e]}:void 0},deleteProperty:(t,e)=>(t.exclude.includes(e)||(t.exclude.push(e),crA(t.version)),!0),has:(t,e)=>!t.exclude.includes(e)&&e in t.props,ownKeys:t=>Reflect.ownKeys(t.props).filter(e=>!t.exclude.includes(e))};function Iy(t,e){return new Proxy({props:t,exclude:e,special:{},version:$C(0),parent_effect:qn},UGA)}var JGA={get(t,e){for(var A=t.props.length;A--;){var i=t.props[A];if(U3(i)&&(i=i()),typeof i=="object"&&i!==null&&e in i)return i[e]}},set(t,e,A){for(var i=t.props.length;i--;){var n=t.props[i];U3(n)&&(n=n());var o=t2(n,e);if(o&&o.set)return o.set(A),!0}return!1},getOwnPropertyDescriptor(t,e){for(var A=t.props.length;A--;){var i=t.props[A];if(U3(i)&&(i=i()),typeof i=="object"&&i!==null&&e in i){var n=t2(i,e);return n&&!n.configurable&&(n.configurable=!0),n}}},has(t,e){if(e===i0||e===fsA)return!1;for(var A of t.props)if(U3(A)&&(A=A()),A!=null&&e in A)return!0;return!1},ownKeys(t){var e=[];for(var A of t.props)if(U3(A)&&(A=A()),A){for(var i in A)e.includes(i)||e.push(i);for(var n of Object.getOwnPropertySymbols(A))e.includes(n)||e.push(n)}return e}};function AI(){for(var t=arguments.length,e=new Array(t),A=0;A(g&&(g=!1,c=a?oA(i):i),c);if(s){var C,d,B=i0 in t||fsA in t;n=(C=(d=t2(t,e))===null||d===void 0?void 0:d.set)!==null&&C!==void 0?C:B&&e in t?D=>t[e]=D:void 0}var E,u=!1;if(s?[o,u]=function(D){var G=ly;try{return ly=!1,[D(),ly]}finally{ly=G}}(()=>t[e]):o=t[e],o===void 0&&i!==void 0&&(o=I(),n&&(r&&function(){throw new Error("https://svelte.dev/e/props_invalid_value")}(),n(o))),E=r?()=>{var D=t[e];return D===void 0?I():(g=!0,D)}:()=>{var D=t[e];return D!==void 0&&(c=void 0),D===void 0?c:D},r&&!(4&A))return E;if(n){var h=t.$$legacy;return function(D,G){return arguments.length>0?(r&&G&&!h&&!u||n(G?E():D),D):E()}}var w=!1,x=(1&A?_Q:ZA)(()=>(w=!1,E()));s&&l(x);var R=qn;return function(D,G){if(arguments.length>0){var J=G?l(x):r&&s?EQ(D):D;return y(x,J),w=!0,c!==void 0&&(c=J),D}return iI&&w||(R.f&tK)!==0?x.v:l(x)}}function xr(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(i){var n=function(o){try{if(typeof window<"u"&&window.localStorage!==void 0)return window.localStorage[o]}catch{}}("debug");return n!=null&&n.endsWith("*")?i.startsWith(n.slice(0,-1)):i===n}(t);if(!e)return YGA;var A=function(i){for(var n=0,o=0;o9466848e5&&isFinite(t)&&Math.floor(t)===t&&!isNaN(new Date(t).valueOf());if(typeof t=="bigint")return RG(Number(t));try{var e=t&&t.valueOf();if(e!==t)return RG(e)}catch{return!1}return!1}function oaA(t){(Cy=Cy||window.document.createElement("div")).style.color="",Cy.style.color=t;var e=Cy.style.color;return e!==""?e.replace(/\s+/g,"").toLowerCase():void 0}var Cy=void 0;function zGA(t){return typeof t=="string"&&t.length<99&&!!oaA(t)}function gK(t,e){if(typeof t=="number"||typeof t=="string"||typeof t=="boolean"||t===void 0)return typeof t;if(typeof t=="bigint")return"number";if(t===null)return"null";if(Array.isArray(t))return"array";if(nn(t))return"object";var A=e.stringify(t);return A&&cK(A)?"number":A==="true"||A==="false"?"boolean":A==="null"?"null":"unknown"}var PGA=/^https?:\/\/\S+$/;function n7(t){return typeof t=="string"&&PGA.test(t)}function GQ(t,e){if(t==="")return"";var A=t.trim();return A==="null"?null:A==="true"||A!=="false"&&(cK(A)?e.parse(A):t)}var jGA=[];function prA(t,e){if(t.length!==e.length)return!1;for(var A=0;A1&&arguments[1]!==void 0&&arguments[1],A={};if(!Array.isArray(t))throw new TypeError("Array expected");function i(r,s){(!Array.isArray(r)&&!nn(r)||e&&s.length>0)&&(A[It(s)]=!0),nn(r)&&Object.keys(r).forEach(a=>{i(r[a],s.concat(a))})}for(var n=Math.min(t.length,1e4),o=0;oe?t.slice(0,e):t}function DrA(t){return pe({},t)}function wrA(t){return Object.values(t)}function yrA(t,e,A,i){var n=t.slice(0),o=n.splice(e,A);return n.splice.apply(n,[e+i,0,...o]),n}function qGA(t,e,A){return t.slice(0,e).concat(A).concat(t.slice(e))}function Bf(t,e){try{return e.parse(t)}catch{return e.parse(Uc(t))}}function saA(t,e){try{return Bf(t,e)}catch{return}}function Ef(t,e){t=t.replace(caA,"");try{return e(t)}catch{}try{return e("{"+t+"}")}catch{}try{return e("["+t+"]")}catch{}throw new Error("Failed to parse partial JSON")}function aaA(t){t=t.replace(caA,"");try{return Uc(t)}catch{}try{var e=Uc("["+t+"]");return e.substring(1,e.length-1)}catch{}try{var A=Uc("{"+t+"}");return A.substring(1,A.length-1)}catch{}throw new Error("Failed to repair partial JSON")}var caA=/,\s*$/;function MQ(t,e){var A=MrA.exec(e);if(A){var i=ss(A[2]),n=function(d,B){for(var E=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:d.length,h=0,w=E;w"line ".concat(n+1," column ").concat(o+1))}}var r=XGA.exec(e),s=r?ss(r[1]):void 0,a=s!==void 0?s-1:void 0,c=$GA.exec(e),g=c?ss(c[1]):void 0,I=g!==void 0?g-1:void 0,C=a!==void 0&&I!==void 0?function(d,B,E){for(var u=d.indexOf(` +`),h=1;h1&&arguments[1]!==void 0?arguments[1]:void 0,A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:JSON;return W3(t)?t:{text:A.stringify(t.json,null,e)}}function vrA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:JSON;return X3(t)?t:{json:e.parse(t.text)}}function xG(t,e,A){return VGA(t,e,A).text}function ZGA(t,e){return WGA(t,e)>e}function WGA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1/0;if(W3(t))return t.text.length;var A=t.json,i=0;return function n(o){if(Array.isArray(o)){if((i+=o.length-1+2)>e)return;for(var r=0;re)return}else if(nn(o)){var s=Object.keys(o);i+=2+s.length+(s.length-1);for(var a=0;alaA(daA(String(t))),unescapeValue:t=>BaA(IaA(t))},tKA={escapeValue:t=>daA(String(t)),unescapeValue:t=>BaA(t)},iKA={escapeValue:t=>laA(String(t)),unescapeValue:t=>IaA(t)},nKA={escapeValue:t=>String(t),unescapeValue:t=>t};function laA(t){return t.replace(/[^\x20-\x7F]/g,e=>{var A;return e==="\b"||e==="\f"||e===` +`||e==="\r"||e===" "?e:"\\u"+("000"+((A=e.codePointAt(0))===null||A===void 0?void 0:A.toString(16))).slice(-4)})}function IaA(t){return t.replace(/\\u[a-fA-F0-9]{4}/g,e=>{try{var A=JSON.parse('"'+e+'"');return CaA[A]||A}catch{return e}})}var CaA={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},oKA={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":` +`,"\\r":"\r","\\t":" "};function daA(t){return t.replace(/["\b\f\n\r\t\\]/g,e=>CaA[e]||e)}function BaA(t){return t.replace(/\\["bfnrt\\]/g,e=>oKA[e]||e)}function bQ(t){return typeof t!="string"?String(t):t.endsWith(` +`)?t+` +`:t}function EaA(t,e){return KQ(t,A=>A.nodeName.toUpperCase()===e.toUpperCase())}function Z1(t,e,A){return KQ(t,i=>function(n,o,r){return typeof n.getAttribute=="function"&&n.getAttribute(o)===r}(i,e,A))}function KQ(t,e){return!!IK(t,e)}function IK(t,e){for(var A=t;A&&!e(A);)A=A.parentNode;return A}function Qf(t){var e,A;return(e=t==null||(A=t.ownerDocument)===null||A===void 0?void 0:A.defaultView)!==null&&e!==void 0?e:void 0}function CK(t){var e=Qf(t),A=e?.document.activeElement;return!!A&&KQ(A,i=>i===t)}function QaA(t,e){return IK(t,A=>A.nodeName===e)}function oG(t){return Z1(t,"data-type","selectable-key")?Ln.key:Z1(t,"data-type","selectable-value")?Ln.value:Z1(t,"data-type","insert-selection-area-inside")?Ln.inside:Z1(t,"data-type","insert-selection-area-after")?Ln.after:Ln.multi}function My(t){return encodeURIComponent(It(t))}function uaA(t){var e,A=IK(t,n=>!(n==null||!n.hasAttribute)&&n.hasAttribute("data-path")),i=(e=A?.getAttribute("data-path"))!==null&&e!==void 0?e:void 0;return i?xs(decodeURIComponent(i)):void 0}function rKA(t){var{allElements:e,currentElement:A,direction:i,hasPrio:n=()=>!0,margin:o=10}=t,r=OR(e.filter(function(h){var w=h.getBoundingClientRect();return w.width>0&&w.height>0}),a),s=a(A);function a(h){var w=h.getBoundingClientRect();return{x:w.left+w.width/2,y:w.top+w.height/2,rect:w,element:h}}function c(h,w){var x=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,R=h.x-w.x,D=(h.y-w.y)*x;return Math.sqrt(R*R+D*D)}var g=h=>c(h,s);if(i==="Left"||i==="Right"){var I=i==="Left"?r.filter(h=>{return w=s,h.rect.left+o{return w=s,h.rect.right>w.rect.right+o;var w}),C=I.filter(h=>{return w=h,x=s,Math.abs(w.y-x.y)c(h,s,10));return d?.element}if(i==="Up"||i==="Down"){var B=i==="Up"?r.filter(h=>{return w=s,h.y+o{return w=s,h.y>w.y+o;var w}),E=B.filter(h=>n(h.element)),u=QE(E,g)||QE(B,g);return u?.element}}function dK(){var t,e,A,i;return typeof navigator<"u"&&(t=(e=(A=navigator)===null||A===void 0||(A=A.platform)===null||A===void 0?void 0:A.toUpperCase().includes("MAC"))!==null&&e!==void 0?e:(i=navigator)===null||i===void 0||(i=i.userAgentData)===null||i===void 0||(i=i.platform)===null||i===void 0?void 0:i.toUpperCase().includes("MAC"))!==null&&t!==void 0&&t}function s2(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"+",A=[];BK(t,arguments.length>2&&arguments[2]!==void 0?arguments[2]:dK)&&A.push("Ctrl"),t.altKey&&A.push("Alt"),t.shiftKey&&A.push("Shift");var i=t.key.length===1?t.key.toUpperCase():t.key;return i in sKA||A.push(i),A.join(e)}function BK(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:dK;return t.ctrlKey||t.metaKey&&e()}var sKA={Ctrl:!0,Command:!0,Control:!0,Alt:!0,Option:!0,Shift:!0};function Ut(t,e){e===void 0&&(e={});var A=e.insertAt;if(t&&typeof document<"u"){var i=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",A==="top"&&i.firstChild?i.insertBefore(n,i.firstChild):i.appendChild(n),n.styleSheet?n.styleSheet.cssText=t:n.appendChild(document.createTextNode(t))}}Ut(`.jse-absolute-popup.svelte-1r8q3m8 { + position: relative; + left: 0; + top: 0; + width: 0; + height: 0; + z-index: 1001; +} +.jse-absolute-popup.svelte-1r8q3m8 .jse-hidden-input:where(.svelte-1r8q3m8) { + position: fixed; + left: 0; + top: 0; + width: 0; + height: 0; + padding: 0; + margin: 0; + border: none; + outline: none; + overflow: hidden; +} +.jse-absolute-popup.svelte-1r8q3m8 .jse-absolute-popup-content:where(.svelte-1r8q3m8) { + position: absolute; +}`);var aKA=vA('
'),cKA=vA('
');function gKA(t,e){ft(e,!1);var A=M(e,"popup",8),i=M(e,"closeAbsolutePopup",8),n=$(),o=$();function r(I){A().options&&A().options.closeOnOuterClick&&!KQ(I.target,C=>C===l(n))&&i()(A().id)}function s(I){s2(I)==="Escape"&&(I.preventDefault(),I.stopPropagation(),i()(A().id))}ws(function(){l(o)&&l(o).focus()}),qt();var a=cKA();ce("mousedown",i2,function(I){r(I)},!0),ce("keydown",i2,s,!0),ce("wheel",i2,function(I){r(I)},!0);var c=W(a),g=I=>{var C=aKA(),d=W(C);Qo(d,B=>y(o,B),()=>l(o)),AaA(CA(d,2),()=>A().component,(B,E)=>{E(B,AI(()=>A().props))}),we(B=>eg(C,B),[()=>(l(n),k(A()),oA(()=>function(B,E){var u=B.getBoundingClientRect(),{left:h,top:w,positionAbove:x,positionLeft:R}=function(){if(E.anchor){var{anchor:D,width:G=0,height:J=0,offsetTop:z=0,offsetLeft:K=0,position:O}=E,{left:V,top:j,bottom:dA,right:fA}=D.getBoundingClientRect(),EA=O==="top"||j+J>window.innerHeight&&j>J,IA=O==="left"||V+G>window.innerWidth&&V>G;return{left:IA?fA-K:V+K,top:EA?j-z:dA+z,positionAbove:EA,positionLeft:IA}}if(typeof E.left=="number"&&typeof E.top=="number"){var{left:SA,top:nA,width:lA=0,height:wA=0}=E;return{left:SA,top:nA,positionAbove:nA+wA>window.innerHeight&&nA>wA,positionLeft:SA+lA>window.innerWidth&&SA>lA}}throw new Error('Invalid config: pass either "left" and "top", or pass "anchor"')}();return(x?"bottom: ".concat(u.top-w,"px;"):"top: ".concat(w-u.top,"px;"))+(R?"right: ".concat(u.left-h,"px;"):"left: ".concat(h-u.left,"px;"))}(l(n),A().options)))],ZA),iA(I,C)};GA(c,I=>{l(n)&&I(g)}),Qo(a,I=>y(n,I),()=>l(n)),ce("mousedown",a,function(I){I.stopPropagation()}),ce("keydown",a,s),iA(t,a),mt()}var lKA=vA(" ",1);function NG(t,e){ft(e,!1);var A,i,n=xr("jsoneditor:AbsolutePopup"),o=$([],!0);function r(c){var g=l(o).findIndex(C=>C.id===c);if(g!==-1){var I=l(o)[g];I.options.onClose&&I.options.onClose(),y(o,l(o).filter(C=>C.id!==c))}}A="absolute-popup",i={openAbsolutePopup:function(c,g,I){n("open...",g,I);var C={id:QQ(),component:c,props:g||{},options:I||{}};return y(o,[...l(o),C]),C.id},closeAbsolutePopup:r},wsA().set(A,i),pA(()=>l(o),()=>{n("popups",l(o))}),ln(),qt(!0);var s=lKA(),a=Mt(s);jo(a,1,()=>l(o),cr,(c,g)=>{gKA(c,{get popup(){return l(g)},closeAbsolutePopup:r})}),Po(CA(a,2),e,"default",{},null),iA(t,s),mt()}function uf(t,e){for(var A=new Set(e),i=t.replace(/ \(copy( \d+)?\)$/,""),n=t,o=1;A.has(n);){var r="copy"+(o>1?" "+o:"");n="".concat(i," (").concat(r,")"),o++}return n}function X0(t,e){var A=e-3;return t.length>e?t.substring(0,A)+"...":t}function IKA(t){if(t==="")return"";var e=t.toLowerCase();if(e==="null")return null;if(e==="true")return!0;if(e==="false")return!1;if(e!=="undefined"){var A=Number(t),i=parseFloat(t);return isNaN(A)||isNaN(i)?t:A}}var CKA={id:"jsonquery",name:"JSONQuery",description:` +

+ Enter a JSON Query function to filter, sort, or transform the data. + You can use functions like get, filter, + sort, pick, groupBy, uniq, etcetera. + Example query: filter(.age >= 18) +

+`,createQuery:function(t,e){var{filter:A,sort:i,projection:n}=e,o=[];A&&A.path&&A.relation&&A.value&&o.push(["filter",[(r=A.relation,$R("1 ".concat(r," 1"))[0]),dy(A.path),IKA(A.value)]]);var r;return i&&i.path&&i.direction&&o.push(["sort",dy(i.path),i.direction==="desc"?"desc":"asc"]),n&&n.paths&&(n.paths.length>1?o.push(["pick",...n.paths.map(dy)]):o.push(["map",dy(n.paths[0])])),aX(["pipe",...o])},executeQuery:function(t,e,A){var i=gaA(A,JSON)?t:function(n){var o=A.stringify(n);return o!==void 0?JSON.parse(o):void 0}(t);return e.trim()!==""?cX(i,e):i}};function dy(t){return["get",...t]}var dKA=II("");function BKA(t,e){ft(e,!1);var A=870711,i=$(""),n=M(e,"data",8);function o(s){if(!s||!s.raw)return"";var a=s.raw,c={};return a=a.replace(/\s(?:xml:)?id=["']?([^"')\s]+)/g,(g,I)=>{var C="fa-".concat((A+=1).toString(16));return c[I]=C,' id="'.concat(C,'"')}),a=a.replace(/#(?:([^'")\s]+)|xpointer\(id\((['"]?)([^')]+)\2\)\))/g,(g,I,C,d)=>{var B=I||d;return B&&c[B]?"#".concat(c[B]):g}),a}pA(()=>k(n()),()=>{y(i,o(n()))}),ln();var r=dKA();$sA(W(r),()=>l(i),!0),iA(t,r),mt()}Ut(` + .fa-icon.svelte-1mc5hvj { + display: inline-block; + fill: currentColor; + } + .fa-flip-horizontal.svelte-1mc5hvj { + transform: scale(-1, 1); + } + .fa-flip-vertical.svelte-1mc5hvj { + transform: scale(1, -1); + } + .fa-spin.svelte-1mc5hvj { + animation: svelte-1mc5hvj-fa-spin 1s 0s infinite linear; + } + .fa-inverse.svelte-1mc5hvj { + color: #fff; + } + .fa-pulse.svelte-1mc5hvj { + animation: svelte-1mc5hvj-fa-spin 1s infinite steps(8); + } + @keyframes svelte-1mc5hvj-fa-spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } + } +`);var EKA=II(""),QKA=II(""),uKA=II(""),hKA=II("",1);function Ui(t,e){var A=Iy(e,["children","$$slots","$$events","$$legacy"]),i=Iy(A,["class","data","scale","spin","inverse","pulse","flip","label","style"]);ft(e,!1);var n=M(e,"class",8,""),o=M(e,"data",8),r=$(),s=M(e,"scale",8,1),a=M(e,"spin",8,!1),c=M(e,"inverse",8,!1),g=M(e,"pulse",8,!1),I=M(e,"flip",8,void 0),C=M(e,"label",8,""),d=M(e,"style",8,""),B=$(10),E=$(10),u=$(),h=$();function w(){var R=1;return s()!==void 0&&(R=Number(s())),isNaN(R)||R<=0?(console.warn('Invalid prop: prop "scale" should be a number over 0.'),1):1*R}function x(){return l(r)?Math.max(l(r).width,l(r).height)/16:1}pA(()=>(k(o()),k(d()),k(s())),()=>{y(r,function(R){var D;if(R){if(!("definition"in R)){if("iconName"in R&&"icon"in R){R.iconName;var[G,J,,,z]=R.icon;D={width:G,height:J,paths:(Array.isArray(z)?z:[z]).map(K=>({d:K}))}}else D=R[Object.keys(R)[0]];return D}console.error("`import faIconName from '@fortawesome/package-name/faIconName` not supported - Please use `import { faIconName } from '@fortawesome/package-name/faIconName'` instead")}}(o())),d(),s(),y(B,l(r)?l(r).width/x()*w():0),y(E,l(r)?l(r).height/x()*w():0),y(u,function(){var R="";d()!==null&&(R+=d());var D=w();return D===1?R.length===0?"":R:(R===""||R.endsWith(";")||(R+="; "),"".concat(R,"font-size: ").concat(D,"em"))}()),y(h,l(r)?"0 0 ".concat(l(r).width," ").concat(l(r).height):"0 0 ".concat(l(B)," ").concat(l(E)))}),ln(),qt(),function(R,D){var G=Iy(D,["children","$$slots","$$events","$$legacy"]),J=Iy(G,["class","width","height","box","spin","inverse","pulse","flip","style","label"]),z=M(D,"class",8,""),K=M(D,"width",8),O=M(D,"height",8),V=M(D,"box",8,"0 0 0 0"),j=M(D,"spin",8,!1),dA=M(D,"inverse",8,!1),fA=M(D,"pulse",8,!1),EA=M(D,"flip",8,"none"),IA=M(D,"style",8,""),SA=M(D,"label",8,""),nA=EKA();vy(nA,lA=>{var wA;return pe(pe({version:"1.1",class:"fa-icon ".concat((wA=z())!==null&&wA!==void 0?wA:""),width:K(),height:O(),"aria-label":SA(),role:SA()?"img":"presentation",viewBox:V(),style:IA()},J),{},{[dQ]:lA})},[()=>({"fa-spin":j(),"fa-pulse":fA(),"fa-inverse":dA(),"fa-flip-horizontal":EA()==="horizontal","fa-flip-vertical":EA()==="vertical"})],"svelte-1mc5hvj"),Po(W(nA),D,"default",{},null),iA(R,nA)}(t,AI({get label(){return C()},get width(){return l(B)},get height(){return l(E)},get box(){return l(h)},get style(){return l(u)},get spin(){return a()},get flip(){return I()},get inverse(){return c()},get pulse(){return g()},get class(){return n()}},()=>i,{children:(R,D)=>{var G=_o();Po(Mt(G),e,"default",{},J=>{var z=hKA(),K=Mt(z);jo(K,1,()=>(l(r),oA(()=>{var dA;return((dA=l(r))===null||dA===void 0?void 0:dA.paths)||[]})),cr,(dA,fA)=>{var EA=QKA();vy(EA,()=>pe({},l(fA))),iA(dA,EA)});var O=CA(K);jo(O,1,()=>(l(r),oA(()=>{var dA;return((dA=l(r))===null||dA===void 0?void 0:dA.polygons)||[]})),cr,(dA,fA)=>{var EA=uKA();vy(EA,()=>pe({},l(fA))),iA(dA,EA)});var V=CA(O),j=dA=>{BKA(dA,{get data(){return l(r)},set data(fA){y(r,fA)},$$legacy:!0})};GA(V,dA=>{l(r),oA(()=>{var fA;return(fA=l(r))===null||fA===void 0?void 0:fA.raw})&&dA(j)}),iA(J,z)}),iA(R,G)},$$slots:{default:!0}})),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-boolean-toggle.svelte-1ryp01u { + padding: 0; + margin: 1px 0 0; + vertical-align: top; + display: inline-flex; + color: var(--jse-value-color-boolean, #ff8c00); +} + +.jse-boolean-toggle.svelte-1ryp01u:not(.jse-readonly) { + cursor: pointer; +}`);var fKA=vA('
');function mKA(t,e){ft(e,!1);var A=M(e,"path",9),i=M(e,"value",9),n=M(e,"readOnly",9),o=M(e,"onPatch",9),r=M(e,"focus",9);qt(!0);var s,a=fKA(),c=W(a),g=ZA(()=>i()===!0?AL:eL);Ui(c,{get data(){return l(g)}}),we(I=>{gn(a,"aria-checked",i()===!0),s=jt(a,1,"jse-boolean-toggle svelte-1ryp01u",null,s,I),gn(a,"title",n()?"Boolean value ".concat(i()):"Click to toggle this boolean value")},[()=>({"jse-readonly":n()})],ZA),ce("mousedown",a,function(I){I.stopPropagation(),n()||(o()([{op:"replace",path:It(A()),value:!i()}]),r()())}),iA(t,a),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-color-picker-popup.svelte-s1wu8v .picker_wrapper.popup, +.jse-color-picker-popup.svelte-s1wu8v .picker_wrapper.popup .picker_arrow::before, +.jse-color-picker-popup.svelte-s1wu8v .picker_wrapper.popup .picker_arrow::after { + background: var(--jse-color-picker-background, var(--jse-panel-background, #ebebeb)); + line-height: normal; +} +.jse-color-picker-popup.svelte-s1wu8v .picker_slider, +.jse-color-picker-popup.svelte-s1wu8v .picker_sl, +.jse-color-picker-popup.svelte-s1wu8v .picker_editor input, +.jse-color-picker-popup.svelte-s1wu8v .picker_sample, +.jse-color-picker-popup.svelte-s1wu8v .picker_done button { + box-shadow: var(--jse-color-picker-border-box-shadow, #cbcbcb 0 0 0 1px); +} +.jse-color-picker-popup.svelte-s1wu8v .picker_editor input { + background: var(--jse-background-color, #fff); + color: var(--jse-text-color, #4d4d4d); +} +.jse-color-picker-popup.svelte-s1wu8v .picker_done button { + background: var(--jse-button-background, #e0e0e0); + color: var(--jse-button-color, var(--jse-text-color, #4d4d4d)); +} +.jse-color-picker-popup.svelte-s1wu8v .picker_done button:hover { + background: var(--jse-button-background-highlight, #e7e7e7); +}`);var pKA=vA('
');function DKA(t,e){ft(e,!1);var A=M(e,"color",8),i=M(e,"onChange",8),n=M(e,"showOnTop",8),o=$(),r=()=>{};ws(_t(function*(){var a,c=new((a=yield import("./chunk-TXJFAAIW.js"))===null||a===void 0?void 0:a.default)({parent:l(o),color:A(),popup:n()?"top":"bottom",onDone(g){var I=g.rgba[3]===1?g.hex.substring(0,7):g.hex;i()(I)}});c.show(),r=()=>{c.destroy()}})),ig(()=>{r()}),qt();var s=pKA();Qo(s,a=>y(o,a),()=>l(o)),iA(t,s),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-color-picker-button.svelte-xeg9n6 { + font-size: var(--jse-font-size-mono, 14px); + width: var(--jse-color-picker-button-size, 1em); + height: var(--jse-color-picker-button-size, 1em); + box-sizing: border-box; + padding: 0; + margin: 2px 0 0 calc(0.5 * var(--jse-padding, 10px)); + display: inline-flex; + vertical-align: top; + border: 1px solid var(--jse-text-color, #4d4d4d); + border-radius: 2px; + background: inherit; + outline: none; +} + +.jse-color-picker-button.svelte-xeg9n6:not(.jse-readonly) { + cursor: pointer; +}`);var wKA=vA('');function yKA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),{openAbsolutePopup:n}=cI("absolute-popup"),o=M(e,"path",9),r=M(e,"value",9),s=M(e,"readOnly",9),a=M(e,"onPatch",9),c=M(e,"focus",9);function g(B){a()([{op:"replace",path:It(o()),value:B}]),I()}function I(){c()()}pA(()=>k(r()),()=>{y(A,oaA(r()))}),pA(()=>(k(s()),k(r())),()=>{y(i,s()?"Color ".concat(r()):"Click to open a color picker")}),ln(),qt(!0);var C,d=wKA();we(B=>{var E;C=jt(d,1,"jse-color-picker-button svelte-xeg9n6",null,C,B),eg(d,"background: ".concat((E=l(A))!==null&&E!==void 0?E:"")),gn(d,"title",l(i)),gn(d,"aria-label",l(i))},[()=>({"jse-readonly":s()})],ZA),ce("click",d,function(B){var E,u;if(!s()){var h=B.target,w=h.getBoundingClientRect().top,x=((E=(u=Qf(h))===null||u===void 0?void 0:u.innerHeight)!==null&&E!==void 0?E:0)-w<300&&w>300,R={color:r(),onChange:g,showOnTop:x};n(DKA,R,{anchor:h,closeOnOuterClick:!0,onClose:I,offsetTop:18,offsetLeft:-8,height:300})}}),iA(t,d),mt()}var rG=1e3,$3=100,By=100,Gy=2e4,mQ=[{start:0,end:$3}],vKA=1048576,MKA=1048576,sG=10485760,aG="Insert or paste contents, enter [ insert a new array, enter { to insert a new object, or start typing to insert a new value",EK="Open context menu (Click here, right click on the selection, or use the context menu button or Ctrl+Q)",zC="hover-insert-inside",Ey="hover-insert-after",krA="hover-collection",cG="valid",SrA="repairable",$0=336,A2=260,O3=100,RrA={[Ag.asc]:"ascending",[Ag.desc]:"descending"};function haA(t){for(var e=qR(t,s=>s.start),A=[e[0]],i=0;i0&&arguments[0]!==void 0?arguments[0]:{expanded:!1};return{type:"array",expanded:t,visibleSections:mQ,items:[]}}function hK(){var{expanded:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{expanded:!1};return{type:"object",expanded:t,properties:{}}}var fK={createObjectDocumentState:hK,createArrayDocumentState:uK,createValueDocumentState:function(){return{type:"value"}}};function maA(t,e,A,i){var{createObjectDocumentState:n,createArrayDocumentState:o,createValueDocumentState:r}=i;return function s(a,c,g){if(Array.isArray(a)){var I=Rr(c)?c:o();if(g.length===0)return I;var C=ss(g[0]),d=s(a[C],I.items[C],g.slice(1));return Bs(I,["items",g[0]],d)}if(nn(a)){var B=Ua(c)?c:n();if(g.length===0)return B;var E=g[0],u=s(a[E],B.properties[E],g.slice(1));return Bs(B,["properties",E],u)}return QK(c)?c:r()}(t,e,A)}function uc(t,e){return Af(t,e,arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],(A,i)=>{if(A!==void 0&&i!==void 0)return Array.isArray(A)?Rr(i)?i:uK({expanded:!!td(i)&&i.expanded}):nn(A)?Ua(i)?i:hK({expanded:!!td(i)&&i.expanded}):QK(i)?i:void 0},()=>!0)}function Af(t,e,A,i,n){var o=i(t,e,A);if(Array.isArray(t)&&Rr(o)&&n(o)){var r=[];return mK(t,o.visibleSections,a=>{var c=A.concat(String(a)),g=Af(t[a],o.items[a],c,i,n);g!==void 0&&(r[a]=g)}),prA(r,o.items)?o:pe(pe({},o),{},{items:r})}if(nn(t)&&Ua(o)&&n(o)){var s={};return Object.keys(t).forEach(a=>{var c=A.concat(a),g=Af(t[a],o.properties[a],c,i,n);g!==void 0&&(s[a]=g)}),prA(Object.values(s),Object.values(o.properties))?o:pe(pe({},o),{},{properties:s})}return o}function mK(t,e,A){e.forEach(i=>{var{start:n,end:o}=i;raA(n,Math.min(t.length,o),A)})}function ef(t,e){for(var A=t,i=[],n=0;n{var I=td(g)&&!g.expanded?pe(pe({},g),{},{expanded:!0}):g;return Rr(I)?function(C,d){if(function(u,h){return u.some(w=>h>=w.start&&hfunction(c,g,I,C){return Af(c,g,I,(d,B,E)=>Array.isArray(d)&&C(E)?Rr(B)?B.expanded?B:pe(pe({},B),{},{expanded:!0}):uK({expanded:!0}):nn(d)&&C(E)?Ua(B)?B.expanded?B:pe(pe({},B),{},{expanded:!0}):hK({expanded:!0}):B,d=>td(d)&&d.expanded)}(s,a,[],i))}function KrA(t,e,A,i){return kQ(t,e,A,(n,o)=>i?function(r,s,a){return Af(r,s,a,(c,g)=>UrA(g),()=>!0)}(n,o,A):UrA(o))}function UrA(t){return Rr(t)&&t.expanded?pe(pe({},t),{},{expanded:!1,visibleSections:mQ}):Ua(t)&&t.expanded?pe(pe({},t),{},{expanded:!1}):t}function paA(t,e,A){var i={json:t,documentState:e},n=A.reduce((o,r)=>({json:Ma(o.json,[r]),documentState:LKA(o.json,o.documentState,r)}),i);return{json:n.json,documentState:uc(n.json,n.documentState)}}function LKA(t,e,A){if(fR(A))return JrA(t,e,A,void 0);if(mR(A))return YrA(t,e,A);if(V8(A)){var i=ba(t,A.path),n=t0(t,e,i);return n?o7(t,e,i,{type:"value",enforceString:n}):e}return Z8(A)||i1(A)?function(o,r,s){if(i1(s)&&s.from===s.path)return r;var a=r,c=ba(o,s.from),g=$l(o,a,c);return i1(s)&&(a=YrA(o,a,{path:s.from})),a=JrA(o,a,{path:s.path},g),a}(t,e,A):e}function $l(t,e,A){try{return Ye(e,ef(t,A))}catch{return}}function pK(t,e,A,i,n){var o=maA(t,e,A,n);return $h(o,ef(t,A),r=>{var s=Ye(t,A);return i(s,r)})}function o7(t,e,A,i){return function(n,o,r,s,a){var c=maA(n,o,r,a);return Bs(c,ef(n,r),s)}(t,e,A,i,fK)}function kQ(t,e,A,i){return pK(t,e,A,i,fK)}function JrA(t,e,A,i){var n=ba(t,A.path),o=e;return o=kQ(t,o,yi(n),(r,s)=>{if(!Rr(s))return s;var a=ss(li(n)),{items:c,visibleSections:g}=s;return pe(pe({},s),{},{items:a{if(!Rr(s))return s;var a=ss(li(i)),{items:c,visibleSections:g}=s;return pe(pe({},s),{},{items:c.slice(0,a).concat(c.slice(a+1)),visibleSections:DaA(g,a,-1)})}):function(r,s,a){var c=ef(r,a);return As(s,c)?lC(s,ef(r,a)):s}(t,e,i)}function DaA(t,e,A){return function(i){for(var n=i.slice(0),o=1;o({start:i.start>e?i.start+A:i.start,end:i.end>e?i.end+A:i.end})))}function t0(t,e,A){var i,n=Ye(t,A),o=$l(t,e,A),r=QK(o)?o.enforceString:void 0;return typeof r=="boolean"?r:typeof(i=n)=="string"&&typeof GQ(i,JSON)!="string"}function hf(t,e){var A=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=t.indexOf(e);return i!==-1?A?t.slice(i):t.slice(i+1):[]}function DK(t,e){var A=[];return function i(n,o,r){A.push(r),wo(n)&&Rr(o)&&o.expanded&&mK(n,o.visibleSections,s=>{i(n[s],o.items[s],r.concat(String(s)))}),Lo(n)&&Ua(o)&&o.expanded&&Object.keys(n).forEach(s=>{i(n[s],o.properties[s],r.concat(s))})}(t,e,[]),A}function waA(t,e){var A=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],i=[];return function n(o,r){i.push({path:r,type:Tg.value});var s=$l(t,e,r);if(o&&td(s)&&s.expanded){if(A&&i.push({path:r,type:Tg.inside}),wo(o)){var a=Rr(s)?s.visibleSections:mQ;mK(o,a,c=>{var g=r.concat(String(c));n(o[c],g),A&&i.push({path:g,type:Tg.after})})}Lo(o)&&Object.keys(o).forEach(c=>{var g=r.concat(c);i.push({path:g,type:Tg.key}),n(o[c],g),A&&i.push({path:g,type:Tg.after})})}}(t,[]),i}function gG(t,e,A){var i=DK(t,e),n=i.map(It).indexOf(It(A));if(n!==-1&&n3&&arguments[3]!==void 0?arguments[3]:10240;return Yg(t,e,A,ZGA({json:Ye(t,A)},i)?z3:wK)}function lG(t,e,A){var i=$l(t,e,A);return td(i)&&i.expanded?e:id(t,e,A)}function z3(t){return t.length===0||t.length===1&&t[0]==="0"}function KG(t){return t.length===0}function wK(){return!0}function by(){return!1}function Ya(t){return t&&t.type===Ln.after||!1}function yr(t){return t&&t.type===Ln.inside||!1}function Lr(t){return t&&t.type===Ln.key||!1}function Vi(t){return t&&t.type===Ln.value||!1}function Gn(t){return t&&t.type===Ln.multi||!1}function r7(t){return Gn(t)&&ri(t.focusPath,t.anchorPath)}function tf(t){return Gn(t)||Ya(t)||yr(t)||Lr(t)||Vi(t)}function IG(t){return t&&t.type===Ln.text||!1}function sI(t,e){var A=[];return function(i,n,o){if(n){var r=WC(n),s=nt(n);if(ri(r,s))return o(r);if(i!==void 0){var a=vaA(r,s);if(r.length===a.length||s.length===a.length)return o(a);var c=Js(r,s),g=e2(i,c),I=tI(i,c),C=r2(i,c,g),d=r2(i,c,I);if(!(C===-1||d===-1)){var B=Ye(i,a);if(Lo(B)){for(var E=Object.keys(B),u=C;u<=d;u++){var h=o(a.concat(E[u]));if(h!==void 0)return h}return}if(wo(B)){for(var w=C;w<=d;w++){var x=o(a.concat(String(w)));if(x!==void 0)return x}return}throw new Error("Failed to create selection")}}}}(t,e,i=>{A.push(i)}),A}function yaA(t){return yr(t)?t.path:yi(nt(t))}function e2(t,e){if(!Gn(e))return e.path;var A=r2(t,e,e.anchorPath);return r2(t,e,e.focusPath)A?e.focusPath:e.anchorPath}function TrA(t,e,A){var i=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(A){var n=i?nt(A):e2(t,A),o=function(a,c,g){var I=DK(a,c),C=I.map(It),d=It(g),B=C.indexOf(d);if(B!==-1&&B>0)return I[B-1]}(t,e,n);if(i)return yr(A)||Ya(A)?o!==void 0?Js(n,n):void 0:o!==void 0?Js(WC(A),o):void 0;if(Ya(A)||yr(A))return vi(n);if(Lr(A)){if(o===void 0||o.length===0)return;var r=yi(o),s=Ye(t,r);return Array.isArray(s)||Gi(o)?vi(o):a2(o)}return Vi(A),o!==void 0?vi(o):void 0}}function HrA(t,e,A,i){if(!A)return{caret:void 0,previous:void 0,next:void 0};var n=waA(t,e,i),o=n.findIndex(r=>ri(r.path,nt(A))&&String(r.type)===String(A.type));return{caret:o!==-1?n[o]:void 0,previous:o!==-1&&o>0?n[o-1]:void 0,next:o!==-1&&oA[i].length;)i++;var n=A[i];return n===void 0||n.length===0||Array.isArray(Ye(t,yi(n)))?vi(n):a2(n)}function SQ(t,e){if(e.length===1){var A=Tc(e);if(A.op==="replace")return vi(ba(t,A.path))}if(!Gi(e)&&e.every(r=>r.op==="move")){var i=Tc(e),n=e.slice(1);if((Z8(i)||i1(i))&&i.from!==i.path&&n.every(r=>(Z8(r)||i1(r))&&r.from===r.path))return a2(ba(t,i.path))}var o=e.filter(r=>r.op!=="test"&&r.op!=="remove"&&(r.op!=="move"||r.from!==r.path)&&typeof r.path=="string").map(r=>ba(t,r.path));if(!Gi(o))return{type:Ln.multi,anchorPath:Tc(o),focusPath:li(o)}}function vaA(t,e){for(var A=0;AA.length&&e.length>A.length;return{type:Ln.multi,anchorPath:i?A.concat(t[A.length]):A,focusPath:i?A.concat(e[A.length]):A}}function MaA(t,e,A,i){if(Lr(e))return String(li(e.path));if(Vi(e)){var n=Ye(t,e.path);return typeof n=="string"?n:i.stringify(n,null,A)}if(Gn(e)){if(Gi(e.focusPath))return i.stringify(t,null,A);var o=yaA(e),r=Ye(t,o);if(Array.isArray(r)){if(r7(e)){var s=Ye(t,e.focusPath);return i.stringify(s,null,A)}return sI(t,e).map(a=>{var c=Ye(t,a);return"".concat(i.stringify(c,null,A),",")}).join(` +`)}return sI(t,e).map(a=>{var c=li(a),g=Ye(t,a);return"".concat(i.stringify(c),": ").concat(i.stringify(g,null,A),",")}).join(` +`)}}function Sr(t){return(Lr(t)||Vi(t))&&t.edit===!0}function uQ(t){return Lr(t)||Vi(t)||Gn(t)}function Qy(t){return Lr(t)||Vi(t)||r7(t)}function UG(t){switch(t.type){case Tg.key:return a2(t.path);case Tg.value:return vi(t.path);case Tg.after:return o2(t.path);case Tg.inside:return c2(t.path)}}function zrA(t,e){switch(t){case Ln.key:return a2(e);case Ln.value:return vi(e);case Ln.after:return o2(e);case Ln.inside:return c2(e);case Ln.multi:case Ln.text:return Js(e,e)}}function uy(t,e,A){if(e)return nf(t,e,A)||n0(Gn(e)?yi(e.focusPath):e.path,A)?e:void 0}function nf(t,e,A){if(t===void 0||!e)return!1;if(Lr(e)||yr(e)||Ya(e))return ri(e.path,A);if(Vi(e))return n0(A,e.path);if(Gn(e)){var i=e2(t,e),n=tI(t,e),o=yi(e.focusPath);if(!n0(A,o)||A.length<=o.length)return!1;var r=r2(t,e,i),s=r2(t,e,n),a=r2(t,e,A);return a!==-1&&a>=r&&a<=s}return!1}function r2(t,e,A){var i=yi(e.focusPath);if(!n0(A,i)||A.length<=i.length)return-1;var n=A[i.length],o=Ye(t,i);if(Lo(o))return Object.keys(o).indexOf(n);if(wo(o)){var r=ss(n);if(r');function kaA(t,e){ft(e,!1);var A=xr("jsoneditor:EditableDiv"),i=M(e,"value",9),n=M(e,"initialValue",9),o=M(e,"shortText",9,!1),r=M(e,"label",9),s=M(e,"onChange",9),a=M(e,"onCancel",9),c=M(e,"onFind",9),g=M(e,"onPaste",9,er),I=M(e,"onValueClass",9,()=>""),C=$(void 0,!0),d=$(void 0,!0),B=!1;function E(){return l(C)?function(w){return w.replace(/\n$/,"")}(l(C).innerText):""}function u(w){l(C)&&hc(C,l(C).innerText=bQ(w))}ws(()=>{A("onMount",{value:i(),initialValue:n()}),u(n()!==void 0?n():i()),l(C)&&function(w){if(w.firstChild!=null){var x=document.createRange(),R=window.getSelection();x.setStart(w,1),x.collapse(!0),R?.removeAllRanges(),R?.addRange(x)}else w.focus()}(l(C))}),ig(()=>{var w=E();A("onDestroy",{closed:B,value:i(),newValue:w}),B||w===i()||s()(w,eI.no)}),pA(()=>(k(I()),k(i())),()=>{y(d,I()(i()))}),ln(),qt(!0);var h=xKA();Qo(h,w=>y(C,w),()=>l(C)),we(w=>{gn(h,"aria-label",r()),jt(h,1,w,"svelte-f9kmxj")},[()=>rI((k(Vg),l(d),k(o()),oA(()=>Vg("jse-editable-div",l(d),{"jse-short-text":o()}))))],ZA),ce("input",h,function(){var w=E();w===""&&u(""),y(d,I()(w))}),ce("keydown",h,function(w){w.stopPropagation();var x=s2(w);if(x==="Escape"&&(w.preventDefault(),B=!0,a()()),x==="Enter"||x==="Tab"){w.preventDefault(),B=!0;var R=E();s()(R,eI.nextInside)}x==="Ctrl+F"&&(w.preventDefault(),c()(!1)),x==="Ctrl+H"&&(w.preventDefault(),c()(!0))}),ce("paste",h,function(w){if(w.stopPropagation(),g()&&w.clipboardData){var x=w.clipboardData.getData("text/plain");g()(x)}}),ce("blur",h,function(){var w=document.hasFocus(),x=E();A("handleBlur",{hasFocus:w,closed:B,value:i(),newValue:x}),document.hasFocus()&&!B&&(B=!0,x!==i()&&s()(x,eI.self))}),iA(t,h),mt()}function NKA(t,e){ft(e,!1);var A=M(e,"path",9),i=M(e,"value",9),n=M(e,"selection",9),o=M(e,"mode",9),r=M(e,"parser",9),s=M(e,"normalization",9),a=M(e,"enforceString",9),c=M(e,"onPatch",9),g=M(e,"onPasteJson",9),I=M(e,"onSelect",9),C=M(e,"onFind",9),d=M(e,"focus",9),B=M(e,"findNextInside",9);function E(x){return a()?x:GQ(x,r())}function u(){I()(vi(A())),d()()}qt(!0);var h=ZA(()=>(k(s()),k(i()),oA(()=>s().escapeValue(i())))),w=ZA(()=>(k(Sr),k(n()),oA(()=>Sr(n())?n().initialValue:void 0)));kaA(t,{get value(){return l(h)},get initialValue(){return l(w)},label:"Edit value",onChange:function(x,R){c()([{op:"replace",path:It(A()),value:E(s().unescapeValue(x))}],(D,G,J)=>{if(!J||ri(A(),nt(J)))return{state:G,selection:R===eI.nextInside?B()(A()):vi(A())}}),d()()},onCancel:u,onPaste:function(x){try{var R=r().parse(x);Fo(R)&&g()({path:A(),contents:R,onPasteAsJson:()=>{u();var D=[{op:"replace",path:It(A()),value:R}];c()(D,(G,J)=>({state:id(G,J,A())}))}})}catch{}},get onFind(){return C()},onValueClass:function(x){return baA(E(s().unescapeValue(x)),o(),r())}}),mt()}function hQ(t,e,A){var i=yi(e),n=Ye(t,i);if(wo(n)){var o=ss(li(e));return A.map((c,g)=>({op:"add",path:It(i.concat(String(o+g))),value:c.value}))}if(Lo(n)){var r=li(e),s=Object.keys(n),a=r!==void 0?hf(s,r,!0):[];return[...A.map(c=>{var g=uf(c.key,s);return{op:"add",path:It(i.concat(g)),value:c.value}}),...a.map(c=>aI(i,c))]}throw new Error("Cannot create insert operations: parent must be an Object or Array")}function JG(t,e,A){var i=Ye(t,e);if(Array.isArray(i)){var n=i.length;return A.map((o,r)=>({op:"add",path:It(e.concat(String(n+r))),value:o.value}))}return A.map(o=>{var r=uf(o.key,Object.keys(i));return{op:"add",path:It(e.concat(r)),value:o.value}})}function ff(t,e,A,i){var n=uf(i,e.filter(r=>r!==A)),o=hf(e,A,!1);return[{op:"move",from:It(t.concat(A)),path:It(t.concat(n))},...o.map(r=>aI(t,r))]}function SaA(t,e){var A=li(e);if(Gi(A))throw new Error("Cannot duplicate root object");var i=yi(A),n=li(A),o=Ye(t,i);if(wo(o)){var r=li(e),s=r?ss(li(r))+1:0;return[...e.map((g,I)=>({op:"copy",from:It(g),path:It(i.concat(String(I+s)))}))]}if(Lo(o)){var a=Object.keys(o),c=n!==void 0?hf(a,n,!1):[];return[...e.map(g=>{var I=uf(li(g),a);return{op:"copy",from:It(g),path:It(i.concat(I))}}),...c.map(g=>aI(i,g))]}throw new Error("Cannot create duplicate operations: parent must be an Object or Array")}function RaA(t,e){if(Vi(e))return[{op:"move",from:It(e.path),path:""}];if(!Gn(e))throw new Error("Cannot create extract operations: parent must be an Object or Array");var A=yi(e.focusPath),i=Ye(t,A);if(wo(i)){var n=sI(t,e).map(r=>{var s=ss(li(r));return i[s]});return[{op:"replace",path:"",value:n}]}if(Lo(i)){var o={};return sI(t,e).forEach(r=>{var s=String(li(r));o[s]=i[s]}),[{op:"replace",path:"",value:o}]}throw new Error("Cannot extract: unsupported type of selection "+JSON.stringify(e))}function LaA(t,e,A,i){if(Lr(e)){var n=saA(A,i),o=yi(e.path),r=Ye(t,o);return ff(o,Object.keys(r),li(e.path),typeof n=="string"?n:A)}if(Vi(e)||Gn(e)&&Gi(e.focusPath))try{return[{op:"replace",path:It(nt(e)),value:Ef(A,G=>Bf(G,i))}]}catch{return[{op:"replace",path:It(nt(e)),value:A}]}if(Gn(e)){var s=CG(A,i);return function(G,J,z){var K=Tc(J),O=yi(K),V=Ye(G,O);if(wo(V)){var j=Tc(J),dA=j?ss(li(j)):0;return[...Ty(J),...z.map((VA,ie)=>({op:"add",path:It(O.concat(String(ie+dA))),value:VA.value}))]}if(Lo(V)){var fA=li(J),EA=yi(fA),IA=li(fA),SA=Object.keys(V),nA=IA!==void 0?hf(SA,IA,!1):[],lA=new Set(J.map(VA=>li(VA))),wA=SA.filter(VA=>!lA.has(VA));return[...Ty(J),...z.map(VA=>{var ie=uf(VA.key,wA);return{op:"add",path:It(EA.concat(ie)),value:VA.value}}),...nA.map(VA=>aI(EA,VA))]}throw new Error("Cannot create replace operations: parent must be an Object or Array")}(t,sI(t,e),s)}if(Ya(e)){var a=CG(A,i),c=e.path,g=yi(c),I=Ye(t,g);if(wo(I)){var C=ss(li(c));return hQ(t,g.concat(String(C+1)),a)}if(Lo(I)){var d=String(li(c)),B=Object.keys(I);if(Gi(B)||li(B)===d)return JG(t,g,a);var E=B.indexOf(d),u=B[E+1];return hQ(t,g.concat(u),a)}throw new Error("Cannot create insert operations: parent must be an Object or Array")}if(yr(e)){var h=CG(A,i),w=e.path,x=Ye(t,w);if(wo(x))return hQ(t,w.concat("0"),h);if(Lo(x)){var R=Object.keys(x);if(Gi(R))return JG(t,w,h);var D=Tc(R);return hQ(t,w.concat(D),h)}throw new Error("Cannot create insert operations: parent must be an Object or Array")}throw new Error("Cannot insert: unsupported type of selection "+JSON.stringify(e))}function Ty(t){return t.map(e=>({op:"remove",path:It(e)})).reverse()}function aI(t,e){return{op:"move",from:It(t.concat(e)),path:It(t.concat(e))}}function CG(t,e){var A=/^\s*{/.test(t),i=/^\s*\[/.test(t),n=saA(t,e),o=n!==void 0?n:Ef(t,r=>Bf(r,e));return A&&nn(o)||i&&Array.isArray(o)?[{key:"New item",value:o}]:Array.isArray(o)?o.map((r,s)=>({key:"New item "+s,value:r})):nn(o)?Object.keys(o).map(r=>({key:r,value:o[r]})):[{key:"New item",value:o}]}function xaA(t,e){if(Lr(e)){var A=yi(e.path),i=Ye(t,A),n=ff(A,Object.keys(i),li(e.path),"");return{operations:n,newSelection:SQ(t,n)}}if(Vi(e))return{operations:[{op:"replace",path:It(e.path),value:""}],newSelection:e};if(Gn(e)){var o=sI(t,e),r=Ty(o),s=li(o);if(Gi(s))return{operations:[{op:"replace",path:"",value:""}],newSelection:vi([])};var a=yi(s),c=Ye(t,a);if(wo(c)){var g=Tc(o),I=ss(li(g));return{operations:r,newSelection:I===0?c2(a):o2(a.concat(String(I-1)))}}if(Lo(c)){var C=Object.keys(c),d=Tc(o),B=li(d),E=C.indexOf(B),u=C[E-1];return{operations:r,newSelection:E===0?c2(a):o2(a.concat(u))}}throw new Error("Cannot create remove operations: parent must be an Object or Array")}throw new Error("Cannot remove: unsupported type of selection "+JSON.stringify(e))}function NaA(t,e){var A=function(i,n){if(Gi(n)||!n.every(i1))return n;var o=[];for(var r of n){var s=PrA(xs(r.from)),a=PrA(xs(r.path));if(!s||!a)return n;o.push({from:s,path:a,operation:r})}var c=o[0].path.parent,g=Ye(i,c);if(!Lo(g)||!o.every(B=>function(E,u){return ri(E.from.parent,u)&&ri(E.path.parent,u)}(B,c)))return n;var I=function(B,E){var u=Object.keys(E),h=u.slice();for(var w of B){var x=h.indexOf(w.from.key);x!==-1&&(h.splice(x,1),h.push(w.path.key))}for(var R=0;RB.operation,d=o.filter(B=>B.operation.from!==B.operation.path);return d.some(B=>B.path.key===I)?d.map(C):[aI(c,I),...d.map(C)]}(t,e);return W8(t,A,{before:(i,n,o)=>{if(mR(n)){var r=xs(n.path);return{revertOperations:[...o,...dG(i,r)]}}if(i1(n)){var s=xs(n.from);return{revertOperations:n.from===n.path?[n,...dG(i,s)]:[...o,...dG(i,s)]}}return{document:i}}})}function PrA(t){return t.length>0?{parent:yi(t),key:li(t)}:void 0}function dG(t,e){var A=yi(e),i=li(e),n=Ye(t,A);return Lo(n)?hf(Object.keys(n),i,!1).map(o=>aI(A,o)):[]}function jrA(t){var e=t.activeIndex0?0:-1,A=t.items[e],i=t.items.map((n,o)=>pe(pe({},n),{},{active:o===e}));return pe(pe({},t),{},{items:i,activeItem:A,activeIndex:e})}function qrA(t,e){var A,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=t.toLowerCase(),o=(A=i?.maxResults)!==null&&A!==void 0?A:1/0,r=i?.columns,s=[],a=[];function c(u){s.length>=o||s.push(u)}function g(u,h){if(wo(h)){var w=a.length;a.push("0");for(var x=0;x=o)return;a.pop()}else if(Lo(h)){var R=Object.keys(h),D=a.length;for(var G of(a.push(""),R))if(a[D]=G,VrA(G,u,a,zg.key,c),g(u,h[G]),s.length>=o)return;a.pop()}else VrA(String(h),u,a,zg.value,c)}if(t==="")return[];if(r){if(!Array.isArray(e))throw new Error("json must be an Array when option columns is defined");for(var I=0;IB.length+1;)a.pop();g(n,Ye(C,B))}if(s.length>=o)break}return s}return g(n,e),s}function VrA(t,e,A,i,n){var o=t.toLowerCase(),r=0,s=-1,a=-1;do(a=o.indexOf(e,s))!==-1&&(s=a+e.length,n({path:A.slice(0),field:i,fieldIndex:r,start:a,end:s}),r++);while(a!==-1)}function YG(t,e,A,i){return t.substring(0,A)+e+t.substring(i)}function ZrA(t,e,A){var i=t;return HR(A,n=>{i=YG(i,e,n.start,n.end)}),i}function FKA(t,e,A,i,n){var{field:o,path:r,start:s,end:a}=i;if(o===zg.key){var c=yi(r),g=Ye(t,c),I=li(r),C=ff(c,Object.keys(g),I,YG(I,A,s,a));return{newSelection:SQ(t,C),operations:C}}if(o===zg.value){var d=Ye(t,r);if(d===void 0)throw new Error("Cannot replace: path not found ".concat(It(r)));var B=typeof d=="string"?d:String(d),E=t0(t,e,r),u=YG(B,A,s,a),h=[{op:"replace",path:It(r),value:E?u:GQ(u,n)}];return{newSelection:SQ(t,h),operations:h}}throw new Error("Cannot replace: unknown type of search result field ".concat(o))}function WrA(t){return t.path.concat(t.field,String(t.fieldIndex))}function XrA(t){var e=faA(t)?t.searchResults.filter(A=>A.field===zg.key):void 0;return e&&e.length>0?e:void 0}function $rA(t){var e=faA(t)?t.searchResults.filter(A=>A.field===zg.value):void 0;return e&&e.length>0?e:void 0}var _KA={createObjectDocumentState:()=>({type:"object",properties:{}}),createArrayDocumentState:()=>({type:"array",items:[]}),createValueDocumentState:()=>({type:"value"})};function FaA(t,e){return e.reduce((A,i)=>function(n,o,r,s){return pK(n,o,r,s,_KA)}(t,A,i.path,(n,o)=>pe(pe({},o),{},{searchResults:o.searchResults?o.searchResults.concat(i):[i]})),void 0)}function Hy(t){var e,A=(e=t?.searchResults)!==null&&e!==void 0?e:[],i=Ua(t)?Object.values(t.properties).flatMap(Hy):Rr(t)?t.items.flatMap(Hy):[];return A.concat(i)}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-highlight.svelte-5fb7bl { + background-color: var(--jse-search-match-color, #ffe665); + outline: var(--jse-search-match-outline, none); +} +.jse-highlight.jse-active.svelte-5fb7bl { + background-color: var(--jse-search-match-active-color, var(--jse-search-match-color, #ffe665)); + outline: var(--jse-search-match-outline, 2px solid #e0be00); +}`);var GKA=vA(" ");function _aA(t,e){ft(e,!1);var A=$(),i=M(e,"text",8),n=M(e,"searchResultItems",8);pA(()=>(k(i()),k(n())),()=>{y(A,function(r,s){var a=[],c=0;for(var g of s){var I=r.slice(c,g.start);I!==""&&a.push({resultIndex:void 0,type:"normal",text:I,active:!1});var C=r.slice(g.start,g.end);a.push({resultIndex:g.resultIndex,type:"highlight",text:C,active:g.active}),c=g.end}var d=li(s);return d&&d.endl(A),cr,(r,s)=>{var a=_o(),c=Mt(a),g=C=>{var d=jr();we(()=>pt(d,(l(s),oA(()=>l(s).text)))),iA(C,d)},I=C=>{var d,B=GKA(),E=W(B);we((u,h,w)=>{d=jt(B,1,"jse-highlight svelte-5fb7bl",null,d,u),gn(B,"data-search-result-index",h),pt(E,w)},[()=>({"jse-active":l(s).active}),()=>(l(s),oA(()=>String(l(s).resultIndex))),()=>(k(bQ),l(s),oA(()=>bQ(l(s).text)))],ZA),iA(C,B)};GA(c,C=>{l(s),oA(()=>l(s).type==="normal")?C(g):C(I,!1)}),iA(r,a)}),iA(t,o),mt()}function ky(t){var e=1e3;if(t<900)return t.toFixed()+" B";var A=t/e;if(A<900)return A.toFixed(1)+" KB";var i=A/e;if(i<900)return i.toFixed(1)+" MB";var n=i/e;return n<900?n.toFixed(1)+" GB":(n/e).toFixed(1)+" TB"}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-tag.svelte-jlw0fj { + border: none; + font-size: 80%; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + color: var(--jse-tag-color, var(--jse-text-color-inverse, #fff)); + background: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); + border-radius: 2px; + cursor: pointer; + display: inline-block; + padding: 0 4px; + line-height: normal; + margin: 1px 0; +} +.jse-tag.svelte-jlw0fj:hover { + opacity: 0.8; +} +.jse-tag.disabled.svelte-jlw0fj { + opacity: 0.7; + cursor: inherit; +}`);var KKA=vA('');function Sy(t,e){ft(e,!0);var A,i=Ja(()=>e.onclick?o=>{o.preventDefault(),o.stopPropagation(),e.onclick()}:void 0),n=KKA();n.__click=function(){for(var o,r=arguments.length,s=new Array(r),a=0;a2?s-2:0),c=2;c{C!==(C=r())&&(g&&(tg(g),g=null),g=s0(()=>C(I,...a)))},gf)}(W(n),()=>{var o;return(o=e.children)!==null&&o!==void 0?o:rrA}),we(o=>A=jt(n,1,"jse-tag svelte-jlw0fj",null,A,o),[()=>({disabled:!e.onclick})]),iA(t,n),mt()}df(["click"]);function UKA(t,e,A){typeof e.value=="string"&&l(A)&&BK(t)&&(t.preventDefault(),t.stopPropagation(),window.open(e.value,"_blank"))}function JKA(t,e){e.readOnly||(t.preventDefault(),e.onSelect(Yy(e.path)))}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-value.jse-string.svelte-c0g9qz { + color: var(--jse-value-color-string, #008000); +} +.jse-value.jse-object.svelte-c0g9qz, .jse-value.jse-array.svelte-c0g9qz { + min-width: 16px; + color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); +} +.jse-value.jse-number.svelte-c0g9qz { + color: var(--jse-value-color-number, #ee422e); +} +.jse-value.jse-boolean.svelte-c0g9qz { + color: var(--jse-value-color-boolean, #ff8c00); +} +.jse-value.jse-null.svelte-c0g9qz { + color: var(--jse-value-color-null, #004ed0); +} +.jse-value.jse-invalid.svelte-c0g9qz { + color: var(--jse-text-color, #4d4d4d); +} +.jse-value.jse-url.svelte-c0g9qz { + color: var(--jse-value-color-url, #008000); + text-decoration: underline; +} + +.jse-value.svelte-c0g9qz { + display: inline-block; + min-width: 2em; + padding: 0 5px; + box-sizing: border-box; + outline: none; + border-radius: 1px; + vertical-align: top; + word-break: normal; + overflow-wrap: anywhere; + white-space: pre-wrap; +} +.jse-value.jse-table-cell.svelte-c0g9qz { + overflow-wrap: normal; + white-space: nowrap; +} +.jse-value.jse-empty.svelte-c0g9qz { + min-width: 4em; + outline: 1px dotted var(--jse-tag-background, rgba(0, 0, 0, 0.2)); + -moz-outline-radius: 2px; +} +.jse-value.jse-empty.svelte-c0g9qz::after { + pointer-events: none; + color: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); + content: "value"; +}`);var YKA=vA('
');function TKA(t,e){ft(e,!0);var A=V0(!0),i=Ja(()=>l(A)&&typeof e.value=="string"&&e.value.length>e.truncateTextSize&&(!e.searchResultItems||!e.searchResultItems.some(d=>d.active&&d.end>e.truncateTextSize))),n=Ja(()=>l(i)&&typeof e.value=="string"?e.value.substring(0,e.truncateTextSize).trim():e.value),o=Ja(()=>n7(e.value));function r(){y(A,!1)}var s=YKA();s.__click=[UKA,e,o],s.__dblclick=[JKA,e];var a=W(s),c=d=>{var B=Ja(()=>e.normalization.escapeValue(l(n)));_aA(d,{get text(){return l(B)},get searchResultItems(){return e.searchResultItems}})},g=d=>{var B=jr();we(E=>pt(B,E),[()=>bQ(e.normalization.escapeValue(l(n)))]),iA(d,B)};GA(a,d=>{e.searchResultItems?d(c):d(g,!1)});var I=CA(a,2),C=d=>{Sy(d,{onclick:r,children:(B,E)=>{var u=jr();we(h=>pt(u,"Show more (".concat(h??"",")")),[()=>ky(e.value.length)]),iA(B,u)},$$slots:{default:!0}})};GA(I,d=>{l(i)&&typeof e.value=="string"&&d(C)}),we(d=>{jt(s,1,d,"svelte-c0g9qz"),gn(s,"title",l(o)?"Ctrl+Click or Ctrl+Enter to open url in new window":void 0)},[()=>rI(baA(e.value,e.mode,e.parser))]),iA(t,s),mt()}df(["click","dblclick"]);Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-tooltip.svelte-14y3y8t { + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + line-height: normal; + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); + border-radius: 3px; + background: var(--jse-context-menu-background, #656565); + color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); + white-space: nowrap; + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); +}`);var HKA=vA('
');function OKA(t,e){var A=M(e,"text",8),i=HKA(),n=W(i);we(()=>pt(n,A())),iA(t,i)}function RQ(t,e){var A,{text:i,openAbsolutePopup:n,closeAbsolutePopup:o}=e;function r(){A=n(OKA,{text:i},{position:"top",width:10*i.length,offsetTop:3,anchor:t,closeOnOuterClick:!0})}function s(){o(A)}return t.addEventListener("mouseenter",r),t.addEventListener("mouseleave",s),{destroy(){t.removeEventListener("mouseenter",r),t.removeEventListener("mouseleave",s)}}}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-timestamp.svelte-1jla5ec { + padding: 0; + margin: 0; + vertical-align: middle; + display: inline-flex; + color: var(--jse-value-color-number, #ee422e); +}`);var zKA=vA('
');function PKA(t,e){ft(e,!1);var A=$(void 0,!0),i=cI("absolute-popup"),n=M(e,"value",9);pA(()=>k(n()),()=>{y(A,"Time: ".concat(new Date(n()).toString()))}),ln(),qt(!0);var o=zKA();Ui(W(o),{get data(){return lX}}),Ts(o,(r,s)=>RQ?.(r,s),()=>pe({text:l(A)},i)),iA(t,o),mt()}function jKA(t){var e=[];return!t.isEditing&&OGA(t.value)&&e.push({component:mKA,props:t}),!t.isEditing&&zGA(t.value)&&e.push({component:yKA,props:t}),t.isEditing&&e.push({component:NKA,props:t}),t.isEditing||e.push({component:TKA,props:t}),!t.isEditing&&RG(t.value)&&e.push({component:PKA,props:t}),e}function Ta(t){return t.map((e,A)=>VKA.test(e)?"["+e+"]":/[.[\]]/.test(e)||e===""?'["'+function(i){return i.replace(/"/g,'\\"')}(e)+'"]':(A>0?".":"")+e).join("")}function qKA(t){for(var e=[],A=0;Ao==='"',!0)),n('"')):e.push(i(o=>o==="]")),n("]")):e.push(i(o=>o==="."||o==="["));function i(o){for(var r=arguments.length>1&&arguments[1]!==void 0&&arguments[1],s="";A({x:t,y:t}),XKA={left:"right",right:"left",bottom:"top",top:"bottom"},$KA={start:"end",end:"start"};function AsA(t,e,A){return XC(t,Oy(e,A))}function s7(t,e){return typeof t=="function"?t(e):t}function nd(t){return t.split("-")[0]}function a7(t){return t.split("-")[1]}function GaA(t){return t==="x"?"y":"x"}function KaA(t){return t==="y"?"height":"width"}var AUA=new Set(["top","bottom"]);function W1(t){return AUA.has(nd(t))?"y":"x"}function UaA(t){return GaA(W1(t))}function TG(t){return t.replace(/start|end/g,e=>$KA[e])}var esA=["left","right"],tsA=["right","left"],eUA=["top","bottom"],tUA=["bottom","top"];function iUA(t,e,A,i){var n=a7(t),o=function(r,s,a){switch(r){case"top":case"bottom":return a?s?tsA:esA:s?esA:tsA;case"left":case"right":return s?eUA:tUA;default:return[]}}(nd(t),A==="start",i);return n&&(o=o.map(r=>r+"-"+n),e&&(o=o.concat(o.map(TG)))),o}function fy(t){return t.replace(/left|right|bottom|top/g,e=>XKA[e])}function nUA(t){return typeof t!="number"?function(e){return pe({top:0,right:0,bottom:0,left:0},e)}(t):{top:t,right:t,bottom:t,left:t}}function Py(t){var{x:e,y:A,width:i,height:n}=t;return{width:i,height:n,top:A,left:e,right:e+i,bottom:A+n,x:e,y:A}}function isA(t,e,A){var i,{reference:n,floating:o}=t,r=W1(e),s=UaA(e),a=KaA(s),c=nd(e),g=r==="y",I=n.x+n.width/2-o.width/2,C=n.y+n.height/2-o.height/2,d=n[a]/2-o[a]/2;switch(c){case"top":i={x:I,y:n.y-o.height};break;case"bottom":i={x:I,y:n.y+n.height};break;case"right":i={x:n.x+n.width,y:C};break;case"left":i={x:n.x-o.width,y:C};break;default:i={x:n.x,y:n.y}}switch(a7(e)){case"start":i[s]-=d*(A&&g?-1:1);break;case"end":i[s]+=d*(A&&g?-1:1)}return i}var oUA=function(){var t=_t(function*(e,A,i){for(var{placement:n="bottom",strategy:o="absolute",middleware:r=[],platform:s}=i,a=r.filter(Boolean),c=yield s.isRTL==null?void 0:s.isRTL(A),g=yield s.getElementRects({reference:e,floating:A,strategy:o}),{x:I,y:C}=isA(g,n,c),d=n,B={},E=0,u=0;u"u")&&(t instanceof ShadowRoot||t instanceof mc(t).ShadowRoot)}var sUA=new Set(["inline","contents"]);function of(t){var{overflow:e,overflowX:A,overflowY:i,display:n}=jg(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+A)&&!sUA.has(n)}var aUA=new Set(["table","td","th"]);function cUA(t){return aUA.has(LQ(t))}var gUA=[":popover-open",":modal"];function jy(t){return gUA.some(e=>{try{return t.matches(e)}catch{return!1}})}var lUA=["transform","translate","scale","rotate","perspective"],IUA=["transform","translate","scale","rotate","perspective","filter"],CUA=["paint","layout","strict","content"];function zG(t){var e=vK(),A=Pg(t)?jg(t):t;return lUA.some(i=>!!A[i]&&A[i]!=="none")||!!A.containerType&&A.containerType!=="normal"||!e&&!!A.backdropFilter&&A.backdropFilter!=="none"||!e&&!!A.filter&&A.filter!=="none"||IUA.some(i=>(A.willChange||"").includes(i))||CUA.some(i=>(A.contain||"").includes(i))}function vK(){return!(typeof CSS>"u"||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}var dUA=new Set(["html","body","#document"]);function pQ(t){return dUA.has(LQ(t))}function jg(t){return mc(t).getComputedStyle(t)}function g7(t){return Pg(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function X1(t){if(LQ(t)==="html")return t;var e=t.assignedSlot||t.parentNode||nsA(t)&&t.host||r0(t);return nsA(e)?e.host:e}function TaA(t){var e=X1(t);return pQ(e)?t.ownerDocument?t.ownerDocument.body:t.body:a0(e)&&of(e)?e:TaA(e)}function rf(t,e,A){var i;e===void 0&&(e=[]),A===void 0&&(A=!0);var n=TaA(t),o=n===((i=t.ownerDocument)==null?void 0:i.body),r=mc(n);if(o){var s=PG(r);return e.concat(r,r.visualViewport||[],of(n)?n:[],s&&A?rf(s):[])}return e.concat(n,rf(n,[],A))}function PG(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function HaA(t){var e=jg(t),A=parseFloat(e.width)||0,i=parseFloat(e.height)||0,n=a0(t),o=n?t.offsetWidth:A,r=n?t.offsetHeight:i,s=zy(A)!==o||zy(i)!==r;return s&&(A=o,i=r),{width:A,height:i,$:s}}function MK(t){return Pg(t)?t:t.contextElement}function DQ(t){var e=MK(t);if(!a0(e))return o0(1);var A=e.getBoundingClientRect(),{width:i,height:n,$:o}=HaA(e),r=(o?zy(A.width):A.width)/i,s=(o?zy(A.height):A.height)/n;return r&&Number.isFinite(r)||(r=1),s&&Number.isFinite(s)||(s=1),{x:r,y:s}}var BUA=o0(0);function OaA(t){var e=mc(t);return vK()&&e.visualViewport?{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}:BUA}function od(t,e,A,i){e===void 0&&(e=!1),A===void 0&&(A=!1);var n=t.getBoundingClientRect(),o=MK(t),r=o0(1);e&&(i?Pg(i)&&(r=DQ(i)):r=DQ(t));var s=function(D,G,J){return G===void 0&&(G=!1),!(!J||G&&J!==mc(D))&&G}(o,A,i)?OaA(o):o0(0),a=(n.left+s.x)/r.x,c=(n.top+s.y)/r.y,g=n.width/r.x,I=n.height/r.y;if(o)for(var C=mc(o),d=i&&Pg(i)?mc(i):i,B=C,E=PG(B);E&&i&&d!==B;){var u=DQ(E),h=E.getBoundingClientRect(),w=jg(E),x=h.left+(E.clientLeft+parseFloat(w.paddingLeft))*u.x,R=h.top+(E.clientTop+parseFloat(w.paddingTop))*u.y;a*=u.x,c*=u.y,g*=u.x,I*=u.y,a+=x,c+=R,E=PG(B=mc(E))}return Py({width:g,height:I,x:a,y:c})}function bK(t,e){var A=g7(t).scrollLeft;return e?e.left+A:od(r0(t)).left+A}function zaA(t,e,A){A===void 0&&(A=!1);var i=t.getBoundingClientRect();return{x:i.left+e.scrollLeft-(A?0:bK(t,i)),y:i.top+e.scrollTop}}var EUA=new Set(["absolute","fixed"]);function osA(t,e,A){var i;if(e==="viewport")i=function(o,r){var s=mc(o),a=r0(o),c=s.visualViewport,g=a.clientWidth,I=a.clientHeight,C=0,d=0;if(c){g=c.width,I=c.height;var B=vK();(!B||B&&r==="fixed")&&(C=c.offsetLeft,d=c.offsetTop)}return{width:g,height:I,x:C,y:d}}(t,A);else if(e==="document")i=function(o){var r=r0(o),s=g7(o),a=o.ownerDocument.body,c=XC(r.scrollWidth,r.clientWidth,a.scrollWidth,a.clientWidth),g=XC(r.scrollHeight,r.clientHeight,a.scrollHeight,a.clientHeight),I=-s.scrollLeft+bK(o),C=-s.scrollTop;return jg(a).direction==="rtl"&&(I+=XC(r.clientWidth,a.clientWidth)-c),{width:c,height:g,x:I,y:C}}(r0(t));else if(Pg(e))i=function(o,r){var s=od(o,!0,r==="fixed"),a=s.top+o.clientTop,c=s.left+o.clientLeft,g=a0(o)?DQ(o):o0(1);return{width:o.clientWidth*g.x,height:o.clientHeight*g.y,x:c*g.x,y:a*g.y}}(e,A);else{var n=OaA(t);i={x:e.x-n.x,y:e.y-n.y,width:e.width,height:e.height}}return Py(i)}function PaA(t,e){var A=X1(t);return!(A===e||!Pg(A)||pQ(A))&&(jg(A).position==="fixed"||PaA(A,e))}function QUA(t,e,A){var i=a0(e),n=r0(e),o=A==="fixed",r=od(t,!0,o,e),s={scrollLeft:0,scrollTop:0},a=o0(0);function c(){a.x=bK(n)}if(i||!i&&!o)if((LQ(e)!=="body"||of(n))&&(s=g7(e)),i){var g=od(e,!0,o,e);a.x=g.x+e.clientLeft,a.y=g.y+e.clientTop}else n&&c();o&&!i&&n&&c();var I=!n||i||o?o0(0):zaA(n,s);return{x:r.left+s.scrollLeft-a.x-I.x,y:r.top+s.scrollTop-a.y-I.y,width:r.width,height:r.height}}function BG(t){return jg(t).position==="static"}function rsA(t,e){if(!a0(t)||jg(t).position==="fixed")return null;if(e)return e(t);var A=t.offsetParent;return r0(t)===A&&(A=A.ownerDocument.body),A}function ssA(t,e){var A=mc(t);if(jy(t))return A;if(!a0(t)){for(var i=X1(t);i&&!pQ(i);){if(Pg(i)&&!BG(i))return i;i=X1(i)}return A}for(var n=rsA(t,e);n&&cUA(n)&&BG(n);)n=rsA(n,e);return n&&pQ(n)&&BG(n)&&!zG(n)?A:n||function(o){for(var r=X1(o);a0(r)&&!pQ(r);){if(zG(r))return r;if(jy(r))return null;r=X1(r)}return null}(t)||A}var uUA={convertOffsetParentRelativeRectToViewportRelativeRect:function(t){var{elements:e,rect:A,offsetParent:i,strategy:n}=t,o=n==="fixed",r=r0(i),s=!!e&&jy(e.floating);if(i===r||s&&o)return A;var a={scrollLeft:0,scrollTop:0},c=o0(1),g=o0(0),I=a0(i);if((I||!I&&!o)&&((LQ(i)!=="body"||of(r))&&(a=g7(i)),a0(i))){var C=od(i);c=DQ(i),g.x=C.x+i.clientLeft,g.y=C.y+i.clientTop}var d=!r||I||o?o0(0):zaA(r,a,!0);return{width:A.width*c.x,height:A.height*c.y,x:A.x*c.x-a.scrollLeft*c.x+g.x+d.x,y:A.y*c.y-a.scrollTop*c.y+g.y+d.y}},getDocumentElement:r0,getClippingRect:function(t){var{element:e,boundary:A,rootBoundary:i,strategy:n}=t,o=[...A==="clippingAncestors"?jy(e)?[]:function(a,c){var g=c.get(a);if(g)return g;for(var I=rf(a,[],!1).filter(h=>Pg(h)&&LQ(h)!=="body"),C=null,d=jg(a).position==="fixed",B=d?X1(a):a;Pg(B)&&!pQ(B);){var E=jg(B),u=zG(B);u||E.position!=="fixed"||(C=null),(d?!u&&!C:!u&&E.position==="static"&&C&&EUA.has(C.position)||of(B)&&!u&&PaA(a,B))?I=I.filter(h=>h!==B):C=E,B=X1(B)}return c.set(a,I),I}(e,this._c):[].concat(A),i],r=o[0],s=o.reduce((a,c)=>{var g=osA(e,c,n);return a.top=XC(g.top,a.top),a.right=Oy(g.right,a.right),a.bottom=Oy(g.bottom,a.bottom),a.left=XC(g.left,a.left),a},osA(e,r,n));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},getOffsetParent:ssA,getElementRects:function(){var t=_t(function*(e){var A=this.getOffsetParent||ssA,i=this.getDimensions,n=yield i(e.floating);return{reference:QUA(e.reference,yield A(e.floating),e.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}});return function(e){return t.apply(this,arguments)}}(),getClientRects:function(t){return Array.from(t.getClientRects())},getDimensions:function(t){var{width:e,height:A}=HaA(t);return{width:e,height:A}},getScale:DQ,isElement:Pg,isRTL:function(t){return jg(t).direction==="rtl"}};function asA(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}function hUA(t,e,A,i){i===void 0&&(i={});var{ancestorScroll:n=!0,ancestorResize:o=!0,elementResize:r=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:a=!1}=i,c=MK(t),g=n||o?[...c?rf(c):[],...rf(e)]:[];g.forEach(u=>{n&&u.addEventListener("scroll",A,{passive:!0}),o&&u.addEventListener("resize",A)});var I,C=c&&s?function(u,h){var w,x=null,R=r0(u);function D(){var G;clearTimeout(w),(G=x)==null||G.disconnect(),x=null}return function G(J,z){J===void 0&&(J=!1),z===void 0&&(z=1),D();var K=u.getBoundingClientRect(),{left:O,top:V,width:j,height:dA}=K;if(J||h(),j&&dA){var fA={rootMargin:-hy(V)+"px "+-hy(R.clientWidth-(O+j))+"px "+-hy(R.clientHeight-(V+dA))+"px "+-hy(O)+"px",threshold:XC(0,Oy(1,z))||1},EA=!0;try{x=new IntersectionObserver(IA,pe(pe({},fA),{},{root:R.ownerDocument}))}catch{x=new IntersectionObserver(IA,fA)}x.observe(u)}function IA(SA){var nA=SA[0].intersectionRatio;if(nA!==z){if(!EA)return G();nA?G(!1,nA):w=setTimeout(()=>{G(!1,1e-7)},1e3)}nA!==1||asA(K,u.getBoundingClientRect())||G(),EA=!1}}(!0),D}(c,A):null,d=-1,B=null;r&&(B=new ResizeObserver(u=>{var[h]=u;h&&h.target===c&&B&&(B.unobserve(e),cancelAnimationFrame(d),d=requestAnimationFrame(()=>{var w;(w=B)==null||w.observe(e)})),A()}),c&&!a&&B.observe(c),B.observe(e));var E=a?od(t):null;return a&&function u(){var h=od(t);E&&!asA(E,h)&&A(),E=h,I=requestAnimationFrame(u)}(),A(),()=>{var u;g.forEach(h=>{n&&h.removeEventListener("scroll",A),o&&h.removeEventListener("resize",A)}),C?.(),(u=B)==null||u.disconnect(),B=null,a&&cancelAnimationFrame(I)}}var fUA=function(t){return t===void 0&&(t=0),{name:"offset",options:t,fn:e=>_t(function*(){var A,i,{x:n,y:o,placement:r,middlewareData:s}=e,a=yield function(c,g){return OG.apply(this,arguments)}(e,t);return r===((A=s.offset)==null?void 0:A.placement)&&(i=s.arrow)!=null&&i.alignmentOffset?{}:{x:n+a.x,y:o+a.y,data:pe(pe({},a),{},{placement:r})}})()}},mUA=function(t){return t===void 0&&(t={}),{name:"shift",options:t,fn:e=>_t(function*(){var{x:A,y:i,placement:n}=e,o=s7(t,e),{mainAxis:r=!0,crossAxis:s=!1,limiter:a={fn:x=>{var{x:R,y:D}=x;return{x:R,y:D}}}}=o,c=EsA(o,rGA),g={x:A,y:i},I=yield JaA(e,c),C=W1(nd(n)),d=GaA(C),B=g[d],E=g[C];if(r){var u=d==="y"?"bottom":"right";B=AsA(B+I[d==="y"?"top":"left"],B,B-I[u])}if(s){var h=C==="y"?"bottom":"right";E=AsA(E+I[C==="y"?"top":"left"],E,E-I[h])}var w=a.fn(pe(pe({},e),{},{[d]:B,[C]:E}));return pe(pe({},w),{},{data:{x:w.x-A,y:w.y-i,enabled:{[d]:r,[C]:s}}})})()}},pUA=function(t){return t===void 0&&(t={}),{name:"flip",options:t,fn:e=>_t(function*(){var A,i,{placement:n,middlewareData:o,rects:r,initialPlacement:s,platform:a,elements:c}=e,g=s7(t,e),{mainAxis:I=!0,crossAxis:C=!0,fallbackPlacements:d,fallbackStrategy:B="bestFit",fallbackAxisSideDirection:E="none",flipAlignment:u=!0}=g,h=EsA(g,oGA);if((A=o.arrow)!=null&&A.alignmentOffset)return{};var w=nd(n),x=W1(s),R=nd(s)===s,D=yield a.isRTL==null?void 0:a.isRTL(c.floating),G=d||(R||!u?[fy(s)]:function(wA){var VA=fy(wA);return[TG(wA),VA,TG(VA)]}(s)),J=E!=="none";!d&&J&&G.push(...iUA(s,u,E,D));var z=[s,...G],K=yield JaA(e,h),O=[],V=((i=o.flip)==null?void 0:i.overflows)||[];if(I&&O.push(K[w]),C){var j=function(wA,VA,ie){ie===void 0&&(ie=!1);var UA=a7(wA),BA=UaA(wA),JA=KaA(BA),Xe=BA==="x"?UA===(ie?"end":"start")?"right":"left":UA==="start"?"bottom":"top";return VA.reference[JA]>VA.floating[JA]&&(Xe=fy(Xe)),[Xe,fy(Xe)]}(n,r,D);O.push(K[j[0]],K[j[1]])}if(V=[...V,{placement:n,overflows:O}],!O.every(wA=>wA<=0)){var dA,fA,EA=(((dA=o.flip)==null?void 0:dA.index)||0)+1,IA=z[EA];if(IA&&(!(C==="alignment"&&x!==W1(IA))||V.every(wA=>wA.overflows[0]>0&&W1(wA.placement)===x)))return{data:{index:EA,overflows:V},reset:{placement:IA}};var SA=(fA=V.filter(wA=>wA.overflows[0]<=0).sort((wA,VA)=>wA.overflows[1]-VA.overflows[1])[0])==null?void 0:fA.placement;if(!SA)switch(B){case"bestFit":var nA,lA=(nA=V.filter(wA=>{if(J){var VA=W1(wA.placement);return VA===x||VA==="y"}return!0}).map(wA=>[wA.placement,wA.overflows.filter(VA=>VA>0).reduce((VA,ie)=>VA+ie,0)]).sort((wA,VA)=>wA[1]-VA[1])[0])==null?void 0:nA[0];lA&&(SA=lA);break;case"initialPlacement":SA=s}if(n!==SA)return{reset:{placement:SA}}}return{}})()}};function DUA(t){var e,A,i={autoUpdate:!0},n=t,o=a=>pe(pe(pe({},i),t||{}),a||{}),r=a=>{e&&A&&(n=o(a),((c,g,I)=>{var C=new Map,d=pe({platform:uUA},I),B=pe(pe({},d.platform),{},{_c:C});return oUA(c,g,pe(pe({},d),{},{platform:B}))})(e,A,n).then(c=>{var g;Object.assign(A.style,{position:c.strategy,left:"".concat(c.x,"px"),top:"".concat(c.y,"px")}),!((g=n)===null||g===void 0)&&g.onComputed&&n.onComputed(c)}))},s=a=>{ig(a.subscribe(c=>{e===void 0?(e=c,r()):(Object.assign(e,c),r())}))};return[a=>{if("subscribe"in a)return s(a),{};e=a,r()},(a,c)=>{var g;A=a,n=o(c),setTimeout(()=>r(c),0),r(c);var I=()=>{g&&(g(),g=void 0)},C=function(){var{autoUpdate:d}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:n||{};I(),d!==!1&&function(){return PsA.apply(this,arguments)}().then(()=>hUA(e,A,()=>r(n),d===!0?{}:d))};return g=C(),{update(d){r(d),g=C(d)},destroy(){I()}}},r]}function wUA(t){var{loadOptions:e,filterText:A,items:i,multiple:n,value:o,itemId:r,groupBy:s,filterSelectedItems:a,itemFilter:c,convertStringItemsToObjects:g,filterGroupedItems:I,label:C}=t;if(i&&e)return i;if(!i)return[];i&&i.length>0&&typeof i[0]!="object"&&(i=g(i));var d=i.filter(B=>{var E=c(B[C],A,B);return E&&n&&o!=null&&o.length&&(E=!o.some(u=>!!a&&u[r]===B[r])),E});return s&&(d=I(d)),d}function yUA(t){return jaA.apply(this,arguments)}function jaA(){return(jaA=_t(function*(t){var{dispatch:e,loadOptions:A,convertStringItemsToObjects:i,filterText:n}=t,o=yield A(n).catch(r=>{console.warn("svelte-select loadOptions error :>> ",r),e("error",{type:"loadOptions",details:r})});if(o&&!o.cancelled)return o?(o&&o.length>0&&typeof o[0]!="object"&&(o=i(o)),e("loaded",{items:o})):o=[],{filteredItems:o,loading:!1,focused:!0,listOpen:!0}})).apply(this,arguments)}Ut(` + svg.svelte-qbd276 { + width: var(--chevron-icon-width, 20px); + height: var(--chevron-icon-width, 20px); + color: var(--chevron-icon-colour, currentColor); + } +`);var vUA=II(``);Ut(` + svg.svelte-whdbu1 { + width: var(--clear-icon-width, 20px); + height: var(--clear-icon-width, 20px); + color: var(--clear-icon-color, currentColor); + } +`);var MUA=II(``);function EG(t){iA(t,MUA())}Ut(` + .loading.svelte-1p3nqvd { + width: var(--spinner-width, 20px); + height: var(--spinner-height, 20px); + color: var(--spinner-color, var(--icons-color)); + animation: svelte-1p3nqvd-rotate 0.75s linear infinite; + transform-origin: center center; + transform: none; + } + + .circle_path.svelte-1p3nqvd { + stroke-dasharray: 90; + stroke-linecap: round; + } + + @keyframes svelte-1p3nqvd-rotate { + 100% { + transform: rotate(360deg); + } + } +`);var bUA=II('');Ut(` + .svelte-select.svelte-82qwg8 { + /* deprecating camelCase custom props in favour of kebab-case for v5 */ + --borderRadius: var(--border-radius); + --clearSelectColor: var(--clear-select-color); + --clearSelectWidth: var(--clear-select-width); + --disabledBackground: var(--disabled-background); + --disabledBorderColor: var(--disabled-border-color); + --disabledColor: var(--disabled-color); + --disabledPlaceholderColor: var(--disabled-placeholder-color); + --disabledPlaceholderOpacity: var(--disabled-placeholder-opacity); + --errorBackground: var(--error-background); + --errorBorder: var(--error-border); + --groupItemPaddingLeft: var(--group-item-padding-left); + --groupTitleColor: var(--group-title-color); + --groupTitleFontSize: var(--group-title-font-size); + --groupTitleFontWeight: var(--group-title-font-weight); + --groupTitlePadding: var(--group-title-padding); + --groupTitleTextTransform: var(--group-title-text-transform); + --groupTitleBorderColor: var(--group-title-border-color); + --groupTitleBorderWidth: var(--group-title-border-width); + --groupTitleBorderStyle: var(--group-title-border-style); + --indicatorColor: var(--chevron-color); + --indicatorHeight: var(--chevron-height); + --indicatorWidth: var(--chevron-width); + --inputColor: var(--input-color); + --inputLeft: var(--input-left); + --inputLetterSpacing: var(--input-letter-spacing); + --inputMargin: var(--input-margin); + --inputPadding: var(--input-padding); + --itemActiveBackground: var(--item-active-background); + --itemColor: var(--item-color); + --itemFirstBorderRadius: var(--item-first-border-radius); + --itemHoverBG: var(--item-hover-bg); + --itemHoverColor: var(--item-hover-color); + --itemIsActiveBG: var(--item-is-active-bg); + --itemIsActiveColor: var(--item-is-active-color); + --itemIsNotSelectableColor: var(--item-is-not-selectable-color); + --itemPadding: var(--item-padding); + --listBackground: var(--list-background); + --listBorder: var(--list-border); + --listBorderRadius: var(--list-border-radius); + --listEmptyColor: var(--list-empty-color); + --listEmptyPadding: var(--list-empty-padding); + --listEmptyTextAlign: var(--list-empty-text-align); + --listMaxHeight: var(--list-max-height); + --listPosition: var(--list-position); + --listShadow: var(--list-shadow); + --listZIndex: var(--list-z-index); + --multiItemBG: var(--multi-item-bg); + --multiItemBorderRadius: var(--multi-item-border-radius); + --multiItemDisabledHoverBg: var(--multi-item-disabled-hover-bg); + --multiItemDisabledHoverColor: var(--multi-item-disabled-hover-color); + --multiItemHeight: var(--multi-item-height); + --multiItemMargin: var(--multi-item-margin); + --multiItemPadding: var(--multi-item-padding); + --multiSelectInputMargin: var(--multi-select-input-margin); + --multiSelectInputPadding: var(--multi-select-input-padding); + --multiSelectPadding: var(--multi-select-padding); + --placeholderColor: var(--placeholder-color); + --placeholderOpacity: var(--placeholder-opacity); + --selectedItemPadding: var(--selected-item-padding); + --spinnerColor: var(--spinner-color); + --spinnerHeight: var(--spinner-height); + --spinnerWidth: var(--spinner-width); + + --internal-padding: 0 0 0 16px; + + border: var(--border, 1px solid #d8dbdf); + border-radius: var(--border-radius, 6px); + min-height: var(--height, 42px); + position: relative; + display: flex; + align-items: stretch; + padding: var(--padding, var(--internal-padding)); + background: var(--background, #fff); + margin: var(--margin, 0); + width: var(--width, 100%); + font-size: var(--font-size, 16px); + max-height: var(--max-height); + } + + .svelte-82qwg8 { + box-sizing: var(--box-sizing, border-box); + } + + .svelte-select.svelte-82qwg8:hover { + border: var(--border-hover, 1px solid #b2b8bf); + } + + .value-container.svelte-82qwg8 { + display: flex; + flex: 1 1 0%; + flex-wrap: wrap; + align-items: center; + gap: 5px 10px; + padding: var(--value-container-padding, 5px 0); + position: relative; + overflow: var(--value-container-overflow, hidden); + align-self: stretch; + } + + .prepend.svelte-82qwg8, + .indicators.svelte-82qwg8 { + display: flex; + flex-shrink: 0; + align-items: center; + } + + .indicators.svelte-82qwg8 { + position: var(--indicators-position); + top: var(--indicators-top); + right: var(--indicators-right); + bottom: var(--indicators-bottom); + } + + input.svelte-82qwg8 { + position: absolute; + cursor: default; + border: none; + color: var(--input-color, var(--item-color)); + padding: var(--input-padding, 0); + letter-spacing: var(--input-letter-spacing, inherit); + margin: var(--input-margin, 0); + min-width: 10px; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: transparent; + font-size: var(--font-size, 16px); + } + + .svelte-82qwg8:not(.multi) > .value-container:where(.svelte-82qwg8) > input:where(.svelte-82qwg8) { + width: 100%; + height: 100%; + } + + input.svelte-82qwg8::placeholder { + color: var(--placeholder-color, #78848f); + opacity: var(--placeholder-opacity, 1); + } + + input.svelte-82qwg8:focus { + outline: none; + } + + .svelte-select.focused.svelte-82qwg8 { + border: var(--border-focused, 1px solid #006fe8); + border-radius: var(--border-radius-focused, var(--border-radius, 6px)); + } + + .disabled.svelte-82qwg8 { + background: var(--disabled-background, #ebedef); + border-color: var(--disabled-border-color, #ebedef); + color: var(--disabled-color, #c1c6cc); + } + + .disabled.svelte-82qwg8 input:where(.svelte-82qwg8)::placeholder { + color: var(--disabled-placeholder-color, #c1c6cc); + opacity: var(--disabled-placeholder-opacity, 1); + } + + .selected-item.svelte-82qwg8 { + position: relative; + overflow: var(--selected-item-overflow, hidden); + padding: var(--selected-item-padding, 0 20px 0 0); + text-overflow: ellipsis; + white-space: nowrap; + color: var(--selected-item-color, inherit); + font-size: var(--font-size, 16px); + } + + .multi.svelte-82qwg8 .selected-item:where(.svelte-82qwg8) { + position: absolute; + line-height: var(--height, 42px); + height: var(--height, 42px); + } + + .selected-item.svelte-82qwg8:focus { + outline: none; + } + + .hide-selected-item.svelte-82qwg8 { + opacity: 0; + } + + .icon.svelte-82qwg8 { + display: flex; + align-items: center; + justify-content: center; + } + + .clear-select.svelte-82qwg8 { + all: unset; + display: flex; + align-items: center; + justify-content: center; + width: var(--clear-select-width, 40px); + height: var(--clear-select-height, 100%); + color: var(--clear-select-color, var(--icons-color)); + margin: var(--clear-select-margin, 0); + pointer-events: all; + flex-shrink: 0; + } + + .clear-select.svelte-82qwg8:focus { + outline: var(--clear-select-focus-outline, 1px solid #006fe8); + } + + .loading.svelte-82qwg8 { + width: var(--loading-width, 40px); + height: var(--loading-height); + color: var(--loading-color, var(--icons-color)); + margin: var(--loading--margin, 0); + flex-shrink: 0; + } + + .chevron.svelte-82qwg8 { + width: var(--chevron-width, 40px); + height: var(--chevron-height, 40px); + background: var(--chevron-background, transparent); + pointer-events: var(--chevron-pointer-events, none); + color: var(--chevron-color, var(--icons-color)); + border: var(--chevron-border, 0 0 0 1px solid #d8dbdf); + flex-shrink: 0; + } + + .multi.svelte-82qwg8 { + padding: var(--multi-select-padding, var(--internal-padding)); + } + + .multi.svelte-82qwg8 input:where(.svelte-82qwg8) { + padding: var(--multi-select-input-padding, 0); + position: relative; + margin: var(--multi-select-input-margin, 5px 0); + flex: 1 1 40px; + } + + .svelte-select.error.svelte-82qwg8 { + border: var(--error-border, 1px solid #ff2d55); + background: var(--error-background, #fff); + } + + .a11y-text.svelte-82qwg8 { + z-index: 9999; + border: 0px; + clip: rect(1px, 1px, 1px, 1px); + height: 1px; + width: 1px; + position: absolute; + overflow: hidden; + padding: 0px; + white-space: nowrap; + } + + .multi-item.svelte-82qwg8 { + background: var(--multi-item-bg, #ebedef); + margin: var(--multi-item-margin, 0); + outline: var(--multi-item-outline, 1px solid #ddd); + border-radius: var(--multi-item-border-radius, 4px); + height: var(--multi-item-height, 25px); + line-height: var(--multi-item-height, 25px); + display: flex; + cursor: default; + padding: var(--multi-item-padding, 0 5px); + overflow: hidden; + gap: var(--multi-item-gap, 4px); + outline-offset: -1px; + max-width: var(--multi-max-width, none); + color: var(--multi-item-color, var(--item-color)); + } + + .multi-item.disabled.svelte-82qwg8:hover { + background: var(--multi-item-disabled-hover-bg, #ebedef); + color: var(--multi-item-disabled-hover-color, #c1c6cc); + } + + .multi-item-text.svelte-82qwg8 { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .multi-item-clear.svelte-82qwg8 { + display: flex; + align-items: center; + justify-content: center; + --clear-icon-color: var(--multi-item-clear-icon-color, #000); + } + + .multi-item.active.svelte-82qwg8 { + outline: var(--multi-item-active-outline, 1px solid #006fe8); + } + + .svelte-select-list.svelte-82qwg8 { + box-shadow: var(--list-shadow, 0 2px 3px 0 rgba(44, 62, 80, 0.24)); + border-radius: var(--list-border-radius, 4px); + max-height: var(--list-max-height, 252px); + overflow-y: auto; + background: var(--list-background, #fff); + position: var(--list-position, absolute); + z-index: var(--list-z-index, 2); + border: var(--list-border); + } + + .prefloat.svelte-82qwg8 { + opacity: 0; + pointer-events: none; + } + + .list-group-title.svelte-82qwg8 { + color: var(--group-title-color, #8f8f8f); + cursor: default; + font-size: var(--group-title-font-size, 16px); + font-weight: var(--group-title-font-weight, 600); + height: var(--height, 42px); + line-height: var(--height, 42px); + padding: var(--group-title-padding, 0 20px); + text-overflow: ellipsis; + overflow-x: hidden; + white-space: nowrap; + text-transform: var(--group-title-text-transform, uppercase); + border-width: var(--group-title-border-width, medium); + border-style: var(--group-title-border-style, none); + border-color: var(--group-title-border-color, color); + } + + .empty.svelte-82qwg8 { + text-align: var(--list-empty-text-align, center); + padding: var(--list-empty-padding, 20px 0); + color: var(--list-empty-color, #78848f); + } + + .item.svelte-82qwg8 { + cursor: default; + height: var(--item-height, var(--height, 42px)); + line-height: var(--item-line-height, var(--height, 42px)); + padding: var(--item-padding, 0 20px); + color: var(--item-color, inherit); + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + transition: var(--item-transition, all 0.2s); + align-items: center; + width: 100%; + } + + .item.group-item.svelte-82qwg8 { + padding-left: var(--group-item-padding-left, 40px); + } + + .item.svelte-82qwg8:active { + background: var(--item-active-background, #b9daff); + } + + .item.active.svelte-82qwg8 { + background: var(--item-is-active-bg, #007aff); + color: var(--item-is-active-color, #fff); + } + + .item.first.svelte-82qwg8 { + border-radius: var(--item-first-border-radius, 4px 4px 0 0); + } + + .item.hover.svelte-82qwg8:not(.active) { + background: var(--item-hover-bg, #e7f2ff); + color: var(--item-hover-color, inherit); + } + + .item.not-selectable.svelte-82qwg8, + .item.hover.item.not-selectable.svelte-82qwg8, + .item.active.item.not-selectable.svelte-82qwg8, + .item.not-selectable.svelte-82qwg8:active { + color: var(--item-is-not-selectable-color, #999); + background: transparent; + } + + .required.svelte-82qwg8 { + opacity: 0; + z-index: -1; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + } +`);var kUA=vA('
'),SUA=vA('
No options
'),RUA=vA('
'),LUA=vA(' ',1),xUA=vA('
'),NUA=vA('
'),FUA=vA("
"),_UA=vA(''),GUA=vA(''),KUA=vA(''),UUA=vA(''),JUA=vA(''),YUA=vA('
');function jC(t,e){var A=function(aA){var DA={};for(var PA in aA.children&&(DA.default=!0),aA.$$slots)DA[PA]=!0;return DA}(e);ft(e,!1);var i,n=$(),o=$(),r=$(),s=$(),a=$(),c=$(),g=$(),I=$(),C=$(),d=LGA(),B=M(e,"justValue",12,null),E=M(e,"filter",8,wUA),u=M(e,"getItems",8,yUA),h=M(e,"id",8,null),w=M(e,"name",8,null),x=M(e,"container",12,void 0),R=M(e,"input",12,void 0),D=M(e,"multiple",8,!1),G=M(e,"multiFullItemClearable",8,!1),J=M(e,"disabled",8,!1),z=M(e,"focused",12,!1),K=M(e,"value",12,null),O=M(e,"filterText",12,""),V=M(e,"placeholder",8,"Please select"),j=M(e,"placeholderAlwaysShow",8,!1),dA=M(e,"items",12,null),fA=M(e,"label",8,"label"),EA=M(e,"itemFilter",8,(aA,DA,PA)=>"".concat(aA).toLowerCase().includes(DA.toLowerCase())),IA=M(e,"groupBy",8,void 0),SA=M(e,"groupFilter",8,aA=>aA),nA=M(e,"groupHeaderSelectable",8,!1),lA=M(e,"itemId",8,"value"),wA=M(e,"loadOptions",8,void 0),VA=M(e,"containerStyles",8,""),ie=M(e,"hasError",8,!1),UA=M(e,"filterSelectedItems",8,!0),BA=M(e,"required",8,!1),JA=M(e,"closeListOnChange",8,!0),Xe=M(e,"clearFilterTextOnBlur",8,!0),We=M(e,"createGroupHeaderItem",8,(aA,DA)=>({value:aA,[fA()]:aA})),KA=()=>l(g),tA=M(e,"searchable",8,!0),OA=M(e,"inputStyles",8,""),gA=M(e,"clearable",8,!0),zA=M(e,"loading",12,!1),xA=M(e,"listOpen",12,!1),Me=M(e,"debounce",8,function(aA){var DA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;clearTimeout(i),i=setTimeout(aA,DA)}),LA=M(e,"debounceWait",8,300),cA=M(e,"hideEmptyState",8,!1),Gt=M(e,"inputAttributes",24,()=>({})),ct=M(e,"listAutoWidth",8,!0),oe=M(e,"showChevron",8,!1),Dt=M(e,"listOffset",8,5),_e=M(e,"hoverItemIndex",12,0),Re=M(e,"floatingConfig",24,()=>({})),St=M(e,"class",8,""),Se=$(),Wt=$(),L=$(),T=$(),P=$();function X(aA){return aA.map((DA,PA)=>({index:PA,value:DA,label:"".concat(DA)}))}function kA(aA){var DA=[],PA={};aA.forEach(vt=>{var Yt=IA()(vt);DA.includes(Yt)||(DA.push(Yt),PA[Yt]=[],Yt&&PA[Yt].push(Object.assign(We()(Yt,vt),{id:Yt,groupHeader:!0,selectable:nA()}))),PA[Yt].push(Object.assign({groupItem:!!Yt},vt))});var Je=[];return SA()(DA).forEach(vt=>{PA[vt]&&Je.push(...PA[vt])}),Je}function le(){var aA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,DA=arguments.length>1?arguments[1]:void 0;_e(aA<0?0:aA),!DA&&IA()&&l(g)[_e()]&&!l(g)[_e()].selectable&&ai(1)}function Ee(){var aA=!0;if(K()){var DA=[],PA=[];K().forEach(Je=>{DA.includes(Je[lA()])?aA=!1:(DA.push(Je[lA()]),PA.push(Je))}),aA||K(PA)}return aA}function NA(aA){var DA=aA?aA[lA()]:K()[lA()];return dA().find(PA=>PA[lA()]===DA)}function MA(aA){return Ct.apply(this,arguments)}function Ct(){return(Ct=_t(function*(aA){var DA=K()[aA];K().length===1?K(void 0):K(K().filter(PA=>PA!==DA)),d("clear",DA)})).apply(this,arguments)}function $e(aA){if(z())switch(aA.stopPropagation(),aA.key){case"Escape":aA.preventDefault(),Le();break;case"Enter":if(aA.preventDefault(),xA()){if(l(g).length===0)break;var DA=l(g)[_e()];if(K()&&!D()&&K()[lA()]===DA[lA()]){Le();break}b(l(g)[_e()])}break;case"ArrowDown":aA.preventDefault(),xA()?ai(1):(xA(!0),y(Se,void 0));break;case"ArrowUp":aA.preventDefault(),xA()?ai(-1):(xA(!0),y(Se,void 0));break;case"Tab":if(xA()&&z()){if(l(g).length===0||K()&&K()[lA()]===l(g)[_e()][lA()])return Le();aA.preventDefault(),b(l(g)[_e()]),Le()}break;case"Backspace":if(!D()||O().length>0)return;if(D()&&K()&&K().length>0){if(MA(l(Se)!==void 0?l(Se):K().length-1),l(Se)===0||l(Se)===void 0)break;y(Se,K().length>l(Se)?l(Se)-1:void 0)}break;case"ArrowLeft":if(!K()||!D()||O().length>0)return;l(Se)===void 0?y(Se,K().length-1):K().length>l(Se)&&l(Se)!==0&&y(Se,l(Se)-1);break;case"ArrowRight":if(!K()||!D()||O().length>0||l(Se)===void 0)return;l(Se)===K().length-1?y(Se,void 0):l(Se)0?xA(!0):void xA(!xA())}function Oi(){d("clear",K()),K(void 0),Le(),XA()}function Le(){Xe()&&O(""),xA(!1)}xGA(_t(function*(){y(Wt,K()),y(L,O()),y(T,D())})),ws(()=>{xA()&&z(!0),z()&&R()&&R().focus()});var zi=M(e,"ariaValues",8,aA=>"Option ".concat(aA,", selected.")),fi=M(e,"ariaListOpen",8,(aA,DA)=>"You are currently focused on option ".concat(aA,". There are ").concat(DA," results available.")),Ht=M(e,"ariaFocused",8,()=>"Select is focused, type to refine list, press down to open the menu."),Rt,Bi=$(null);function Mi(){clearTimeout(Rt),Rt=setTimeout(()=>{Jt=!1},100)}ig(()=>{var aA;(aA=l(Bi))===null||aA===void 0||aA.remove()});var Jt=!1;function b(aA){aA&&aA.selectable!==!1&&function(DA){if(DA){O("");var PA=Object.assign({},DA);if(PA.groupHeader&&!PA.selectable)return;K(D()?K()?K().concat([PA]):[PA]:K(PA)),setTimeout(()=>{JA()&&Le(),y(Se,void 0),d("change",K()),d("select",DA)})}}(aA)}function et(aA){Jt||_e(aA)}function ai(aA){if(l(g).filter(PA=>!Object.hasOwn(PA,"selectable")||PA.selectable===!0).length===0)return _e(0);aA>0&&_e()===l(g).length-1?_e(0):aA<0&&_e()===0?_e(l(g).length-1):_e(_e()+aA);var DA=l(g)[_e()];DA&&DA.selectable===!1&&(aA!==1&&aA!==-1||ai(aA))}function Wi(aA,DA,PA){if(!D())return DA&&DA[PA]===aA[PA]}var Xi=Mo,xn=Mo;function Mo(aA){return{update(DA){DA.scroll&&(Mi(),aA.scrollIntoView({behavior:"auto",block:"nearest"}))}}}var vn=$({strategy:"absolute",placement:"bottom-start",middleware:[fUA(Dt()),pUA(),mUA()],autoUpdate:!1}),[In,qo,Vo]=DUA(l(vn)),uo=$(!0);pA(()=>(k(dA()),k(K())),()=>{dA(),K()&&function(){if(typeof K()=="string"){var aA=(dA()||[]).find(DA=>DA[lA()]===K());K(aA||{[lA()]:K(),label:K()})}else D()&&Array.isArray(K())&&K().length>0&&K(K().map(DA=>typeof DA=="string"?{value:DA,label:DA}:DA))}()}),pA(()=>(k(Gt()),k(tA())),()=>{!Gt()&&tA()||(y(P,Object.assign({autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:!1,tabindex:0,type:"text","aria-autocomplete":"list"},Gt())),h()&&hc(P,l(P).id=h()),tA()||hc(P,l(P).readonly=!0))}),pA(()=>k(D()),()=>{D()&&K()&&(Array.isArray(K())?K([...K()]):K([K()]))}),pA(()=>(l(T),k(D())),()=>{l(T)&&!D()&&K()&&K(null)}),pA(()=>(k(D()),k(K())),()=>{D()&&K()&&K().length>1&&Ee()}),pA(()=>k(K()),()=>{K()&&(D()?JSON.stringify(K())!==JSON.stringify(l(Wt))&&Ee()&&d("input",K()):l(Wt)&&JSON.stringify(K()[lA()])===JSON.stringify(l(Wt)[lA()])||d("input",K()))}),pA(()=>(k(K()),k(D()),l(Wt)),()=>{!K()&&D()&&l(Wt)&&d("input",K())}),pA(()=>(k(z()),k(R())),()=>{!z()&&R()&&Le()}),pA(()=>(k(O()),l(L)),()=>{O()!==l(L)&&(wA()||O().length!==0)&&(wA()?Me()(_t(function*(){zA(!0);var aA=yield u()({dispatch:d,loadOptions:wA(),convertStringItemsToObjects:X,filterText:O()});aA?(zA(aA.loading),xA(xA()?aA.listOpen:O().length>0),z(xA()&&aA.focused),dA(IA()?kA(aA.filteredItems):aA.filteredItems)):(zA(!1),z(!0),xA(!0))}),LA()):(xA(!0),D()&&y(Se,void 0)))}),pA(()=>(k(E()),k(wA()),k(O()),k(dA()),k(D()),k(K()),k(lA()),k(IA()),k(fA()),k(UA()),k(EA())),()=>{y(g,E()({loadOptions:wA(),filterText:O(),items:dA(),multiple:D(),value:K(),itemId:lA(),groupBy:IA(),label:fA(),filterSelectedItems:UA(),itemFilter:EA(),convertStringItemsToObjects:X,filterGroupedItems:kA}))}),pA(()=>(k(D()),k(xA()),k(K()),l(g)),()=>{!D()&&xA()&&K()&&l(g)&&le(l(g).findIndex(aA=>aA[lA()]===K()[lA()]),!0)}),pA(()=>(k(xA()),k(D())),()=>{xA()&&D()&&_e(0)}),pA(()=>k(O()),()=>{O()&&_e(0)}),pA(()=>k(_e()),()=>{var aA;aA=_e(),d("hoverItem",aA)}),pA(()=>(k(D()),k(K())),()=>{y(n,D()?K()&&K().length>0:K())}),pA(()=>(l(n),k(O())),()=>{y(o,l(n)&&O().length>0)}),pA(()=>(l(n),k(gA()),k(J()),k(zA())),()=>{y(r,l(n)&&gA()&&!J()&&!zA())}),pA(()=>(k(j()),k(D()),k(V()),k(K())),()=>{var aA;y(s,j()&&D()||D()&&((aA=K())===null||aA===void 0?void 0:aA.length)===0?V():K()?"":V())}),pA(()=>(k(K()),k(D())),()=>{var aA,DA;y(a,K()?(aA=D(),DA=void 0,DA=aA&&K().length>0?K().map(PA=>PA[fA()]).join(", "):K()[fA()],zi()(DA)):"")}),pA(()=>(l(g),k(_e()),k(z()),k(xA())),()=>{y(c,function(){if(!l(g)||l(g).length===0)return"";var aA=l(g)[_e()];if(xA()&&aA){var DA=l(g)?l(g).length:0;return fi()(aA[fA()],DA)}return Ht()()}((l(g),_e(),z(),xA())))}),pA(()=>k(dA()),()=>{(function(aA){aA&&aA.length!==0&&!aA.some(DA=>typeof DA!="object")&&K()&&(D()?!K().some(DA=>!DA||!DA[lA()]):K()[lA()])&&(Array.isArray(K())?K(K().map(DA=>NA(DA)||DA)):K(NA()||K()))})(dA())}),pA(()=>(k(D()),k(K()),k(lA())),()=>{B((D(),K(),lA(),D()?K()?K().map(aA=>aA[lA()]):null:K()?K()[lA()]:K()))}),pA(()=>(k(D()),l(Wt),k(K())),()=>{D()||!l(Wt)||K()||d("input",K())}),pA(()=>(k(xA()),l(g),k(D()),k(K())),()=>{xA()&&l(g)&&!D()&&!K()&&le()}),pA(()=>l(g),()=>{(function(aA){xA()&&d("filter",aA)})(l(g))}),pA(()=>(k(x()),k(Re()),l(vn)),()=>{x()&&Re()&&Vo(Object.assign(l(vn),Re()))}),pA(()=>l(Bi),()=>{y(I,!!l(Bi))}),pA(()=>(l(Bi),k(xA())),()=>{(function(aA,DA){if(!aA||!DA)return y(uo,!0);setTimeout(()=>{y(uo,!1)},0)})(l(Bi),xA())}),pA(()=>(k(xA()),k(x()),l(Bi)),()=>{xA()&&x()&&l(Bi)&&function(){var{width:aA}=x().getBoundingClientRect();hc(Bi,l(Bi).style.width=ct()?aA+"px":"auto")}()}),pA(()=>k(_e()),()=>{y(C,_e())}),pA(()=>(k(R()),k(xA()),k(z())),()=>{R()&&xA()&&!z()&&XA()}),pA(()=>(k(x()),k(Re())),()=>{var aA;x()&&((aA=Re())===null||aA===void 0?void 0:aA.autoUpdate)===void 0&&hc(vn,l(vn).autoUpdate=!0)}),ln(),qt();var Qn,Kn=YUA();ce("click",i2,function(aA){var DA;xA()||z()||!x()||x().contains(aA.target)||(DA=l(Bi))!==null&&DA!==void 0&&DA.contains(aA.target)||ot()}),ce("keydown",i2,$e);var $A=W(Kn),Ei=aA=>{var DA,PA=RUA(),Je=W(PA),vt=bt=>{var Li=_o();Po(Mt(Li),e,"list-prepend",{},null),iA(bt,Li)};GA(Je,bt=>{oA(()=>A["list-prepend"])&&bt(vt)});var Yt=CA(Je,2),rn=bt=>{var Li=_o();Po(Mt(Li),e,"list",{get filteredItems(){return l(g)}},null),iA(bt,Li)},no=(bt,Li)=>{var Mn=fn=>{var Te=_o();jo(Mt(Te),1,()=>l(g),cr,(Qi,mi,bn)=>{var Ko,Ot=kUA(),Nr=W(Ot);Po(W(Nr),e,"item",{get item(){return l(mi)},index:bn},Jn=>{var Q=jr();we(()=>pt(Q,(l(mi),k(fA()),oA(()=>{var m;return(m=l(mi))===null||m===void 0?void 0:m[fA()]})))),iA(Jn,Q)}),Ts(Nr,(Jn,Q)=>Xi?.(Jn),()=>({scroll:Wi(l(mi),K(),lA()),listDom:l(I)})),Ts(Nr,(Jn,Q)=>xn?.(Jn),()=>({scroll:l(C)===bn,listDom:l(I)})),we(Jn=>Ko=jt(Nr,1,"item svelte-82qwg8",null,Ko,Jn),[()=>{var Jn,Q;return{"list-group-title":l(mi).groupHeader,active:Wi(l(mi),K(),lA()),first:(Q=bn,Q===0),hover:_e()===bn,"group-item":l(mi).groupItem,"not-selectable":((Jn=l(mi))===null||Jn===void 0?void 0:Jn.selectable)===!1}}],ZA),ce("mouseover",Ot,()=>et(bn)),ce("focus",Ot,()=>et(bn)),ce("click",Ot,Z0(()=>function(Jn){var{item:Q,i:m}=Jn;if(Q?.selectable!==!1)return K()&&!D()&&K()[lA()]===Q[lA()]?Le():void(function(v){return v.groupHeader&&v.selectable||v.selectable||!v.hasOwnProperty("selectable")}(Q)&&(_e(m),b(Q)))}({item:l(mi),i:bn}))),ce("keydown",Ot,z1(Z0(function(Jn){H3.call(this,e,Jn)}))),iA(Qi,Ot)}),iA(fn,Te)},Qt=(fn,Te)=>{var Qi=mi=>{var bn=_o();Po(Mt(bn),e,"empty",{},Ko=>{iA(Ko,SUA())}),iA(mi,bn)};GA(fn,mi=>{cA()||mi(Qi)},Te)};GA(bt,fn=>{l(g),oA(()=>l(g).length>0)?fn(Mn):fn(Qt,!1)},Li)};GA(Yt,bt=>{oA(()=>A.list)?bt(rn):bt(no,!1)});var sn=CA(Yt,2),Ji=bt=>{var Li=_o();Po(Mt(Li),e,"list-append",{},null),iA(bt,Li)};GA(sn,bt=>{oA(()=>A["list-append"])&&bt(Ji)}),Ts(PA,bt=>qo?.(bt)),Qo(PA,bt=>y(Bi,bt),()=>l(Bi)),rs(()=>ce("scroll",PA,Mi)),rs(()=>ce("pointerup",PA,z1(Z0(function(bt){H3.call(this,e,bt)})))),rs(()=>ce("mousedown",PA,z1(Z0(function(bt){H3.call(this,e,bt)})))),we(bt=>DA=jt(PA,1,"svelte-select-list svelte-82qwg8",null,DA,bt),[()=>({prefloat:l(uo)})],ZA),iA(aA,PA)};GA($A,aA=>{xA()&&aA(Ei)});var Ri=CA($A,2),un=W(Ri),Un=aA=>{var DA=LUA(),PA=Mt(DA),Je=W(PA),vt=W(CA(PA,2));we(()=>{pt(Je,l(a)),pt(vt,l(c))}),iA(aA,DA)};GA(un,aA=>{z()&&aA(Un)});var Zo=CA(Ri,2);Po(W(Zo),e,"prepend",{},null);var Ci=CA(Zo,2),io=W(Ci),Wo=aA=>{var DA=_o(),PA=Mt(DA),Je=Yt=>{var rn=_o();jo(Mt(rn),1,K,cr,(no,sn,Ji)=>{var bt,Li=NUA(),Mn=W(Li);Po(W(Mn),e,"selection",{get selection(){return l(sn)},index:Ji},Te=>{var Qi=jr();we(()=>pt(Qi,(l(sn),k(fA()),oA(()=>l(sn)[fA()])))),iA(Te,Qi)});var Qt=CA(Mn,2),fn=Te=>{var Qi=xUA();Po(W(Qi),e,"multi-clear-icon",{},mi=>{EG(mi)}),ce("pointerup",Qi,z1(Z0(()=>MA(Ji)))),iA(Te,Qi)};GA(Qt,Te=>{J()||G()||!EG||Te(fn)}),we(Te=>bt=jt(Li,1,"multi-item svelte-82qwg8",null,bt,Te),[()=>({active:l(Se)===Ji,disabled:J()})],ZA),ce("click",Li,z1(()=>G()?MA(Ji):{})),ce("keydown",Li,z1(Z0(function(Te){H3.call(this,e,Te)}))),iA(no,Li)}),iA(Yt,rn)},vt=Yt=>{var rn,no=FUA();Po(W(no),e,"selection",{get selection(){return K()}},sn=>{var Ji=jr();we(()=>pt(Ji,(k(K()),k(fA()),oA(()=>K()[fA()])))),iA(sn,Ji)}),we(sn=>rn=jt(no,1,"selected-item svelte-82qwg8",null,rn,sn),[()=>({"hide-selected-item":l(o)})],ZA),iA(Yt,no)};GA(PA,Yt=>{D()?Yt(Je):Yt(vt,!1)}),iA(aA,DA)};GA(io,aA=>{l(n)&&aA(Wo)});var Xo=CA(io,2);vy(Xo,()=>pe(pe({readOnly:!tA()},l(P)),{},{placeholder:l(s),style:OA(),disabled:J()}),void 0,"svelte-82qwg8"),Qo(Xo,aA=>R(aA),()=>R());var nr=CA(Ci,2),on=W(nr),$i=aA=>{var DA=_UA();Po(W(DA),e,"loading-icon",{},PA=>{(function(Je){iA(Je,bUA())})(PA)}),iA(aA,DA)};GA(on,aA=>{zA()&&aA($i)});var yt=CA(on,2),hn=aA=>{var DA=GUA();Po(W(DA),e,"clear-icon",{},PA=>{EG(PA)}),ce("click",DA,Oi),iA(aA,DA)};GA(yt,aA=>{l(r)&&aA(hn)});var hA=CA(yt,2),Ae=aA=>{var DA=KUA();Po(W(DA),e,"chevron-icon",{get listOpen(){return xA()}},PA=>{(function(Je){iA(Je,vUA())})(PA)}),iA(aA,DA)};GA(hA,aA=>{oe()&&aA(Ae)});var re=CA(nr,2);Po(re,e,"input-hidden",{get value(){return K()}},aA=>{var DA=UUA();we(PA=>{gn(DA,"name",w()),ed(DA,PA)},[()=>(k(K()),oA(()=>K()?JSON.stringify(K()):null))],ZA),iA(aA,DA)});var xe=CA(re,2),ue=aA=>{var DA=_o();Po(Mt(DA),e,"required",{get value(){return K()}},PA=>{iA(PA,JUA())}),iA(aA,DA)};return GA(xe,aA=>{k(BA()),k(K()),oA(()=>BA()&&(!K()||K().length===0))&&aA(ue)}),rs(()=>ce("pointerup",Kn,z1(Zi))),Qo(Kn,aA=>x(aA),()=>x()),Ts(Kn,aA=>In?.(aA)),we(aA=>{var DA;Qn=jt(Kn,1,"svelte-select ".concat((DA=St())!==null&&DA!==void 0?DA:""),"svelte-82qwg8",Qn,aA),eg(Kn,VA())},[()=>({multi:D(),disabled:J(),focused:z(),"list-open":xA(),"show-chevron":oe(),error:ie()})],ZA),ce("keydown",Xo,$e),ce("blur",Xo,ot),ce("focus",Xo,XA),Fy(Xo,O),iA(t,Kn),Ft(e,"getFilteredItems",KA),Ft(e,"handleClear",Oi),mt({getFilteredItems:KA,handleClear:Oi})}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +table.jse-transform-wizard.svelte-qbze6z { + border-collapse: collapse; + border-spacing: 0; + width: 100%; +} +table.jse-transform-wizard.svelte-qbze6z input:where(.svelte-qbze6z) { + font-family: inherit; + font-size: inherit; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) th:where(.svelte-qbze6z) { + font-weight: normal; + text-align: left; + width: 60px; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) { + width: 100%; + display: flex; + flex-direction: row; + margin-bottom: calc(0.5 * var(--jse-padding, 10px)); +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select .multi-item { + align-items: center; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select .value-container { + gap: 0 !important; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-filter-path { + flex: 4; + margin-right: calc(0.5 * var(--jse-padding, 10px)); +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-filter-relation { + flex: 1.5; + margin-right: calc(0.5 * var(--jse-padding, 10px)); +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-sort-path { + flex: 3; + margin-right: calc(0.5 * var(--jse-padding, 10px)); +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-sort-direction { + flex: 1; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-projection-paths { + flex: 1; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select input { + box-sizing: border-box; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .jse-filter-value:where(.svelte-qbze6z) { + flex: 4; + padding: 4px 8px; + border: var(--jse-input-border, 1px solid #d8dbdf); + border-radius: var(--jse-input-radius, 3px); + outline: none; + background: var(--jse-input-background, var(--jse-background-color, #fff)); + color: inherit; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .jse-filter-value:where(.svelte-qbze6z):focus { + border: var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa))); +}`);var TUA=vA('
Filter
Sort
Pick
');function HUA(t,e){var A,i,n,o,r;ft(e,!1);var s=$(void 0,!0),a=$(void 0,!0),c=$(void 0,!0),g=$(void 0,!0),I=$(void 0,!0),C=$(void 0,!0),d=xr("jsoneditor:TransformWizard"),B=M(e,"json",9),E=M(e,"queryOptions",29,()=>({})),u=M(e,"onChange",9),h=["==","!=","<","<=",">",">="].map(UA=>({value:UA,label:UA})),w=[{value:"asc",label:"ascending"},{value:"desc",label:"descending"}],x=$((A=E())!==null&&A!==void 0&&(A=A.filter)!==null&&A!==void 0&&A.path?q1(E().filter.path):void 0,!0),R=$((i=h.find(UA=>{var BA;return UA.value===((BA=E().filter)===null||BA===void 0?void 0:BA.relation)}))!==null&&i!==void 0?i:h[0],!0),D=$(((n=E())===null||n===void 0||(n=n.filter)===null||n===void 0?void 0:n.value)||"",!0),G=$((o=E())!==null&&o!==void 0&&(o=o.sort)!==null&&o!==void 0&&o.path?q1(E().sort.path):void 0,!0),J=$((r=w.find(UA=>{var BA;return UA.value===((BA=E().sort)===null||BA===void 0?void 0:BA.direction)}))!==null&&r!==void 0?r:w[0],!0);pA(()=>k(B()),()=>{y(s,Array.isArray(B()))}),pA(()=>(l(s),k(B())),()=>{y(a,l(s)?LG(B()):[])}),pA(()=>(l(s),k(B())),()=>{y(c,l(s)?LG(B(),!0):[])}),pA(()=>(l(a),q1),()=>{y(g,l(a).map(q1))}),pA(()=>(l(c),q1),()=>{y(I,l(c)?l(c).map(q1):[])}),pA(()=>(k(E()),l(I),ri),()=>{var UA;y(C,(UA=E())!==null&&UA!==void 0&&(UA=UA.projection)!==null&&UA!==void 0&&UA.paths&&l(I)?E().projection.paths.map(BA=>l(I).find(JA=>ri(JA.value,BA))).filter(BA=>!!BA):void 0)}),pA(()=>l(x),()=>{var UA,BA,JA;BA=(UA=l(x))===null||UA===void 0?void 0:UA.value,ri((JA=E())===null||JA===void 0||(JA=JA.filter)===null||JA===void 0?void 0:JA.path,BA)||(d("changeFilterPath",BA),E(Bs(E(),["filter","path"],BA,!0)),u()(E()))}),pA(()=>l(R),()=>{var UA,BA,JA;BA=(UA=l(R))===null||UA===void 0?void 0:UA.value,ri((JA=E())===null||JA===void 0||(JA=JA.filter)===null||JA===void 0?void 0:JA.relation,BA)||(d("changeFilterRelation",BA),E(Bs(E(),["filter","relation"],BA,!0)),u()(E()))}),pA(()=>l(D),()=>{var UA,BA;UA=l(D),ri((BA=E())===null||BA===void 0||(BA=BA.filter)===null||BA===void 0?void 0:BA.value,UA)||(d("changeFilterValue",UA),E(Bs(E(),["filter","value"],UA,!0)),u()(E()))}),pA(()=>l(G),()=>{var UA,BA,JA;BA=(UA=l(G))===null||UA===void 0?void 0:UA.value,ri((JA=E())===null||JA===void 0||(JA=JA.sort)===null||JA===void 0?void 0:JA.path,BA)||(d("changeSortPath",BA),E(Bs(E(),["sort","path"],BA,!0)),u()(E()))}),pA(()=>l(J),()=>{var UA,BA,JA;BA=(UA=l(J))===null||UA===void 0?void 0:UA.value,ri((JA=E())===null||JA===void 0||(JA=JA.sort)===null||JA===void 0?void 0:JA.direction,BA)||(d("changeSortDirection",BA),E(Bs(E(),["sort","direction"],BA,!0)),u()(E()))}),pA(()=>l(C),()=>{(function(UA){var BA;ri((BA=E())===null||BA===void 0||(BA=BA.projection)===null||BA===void 0?void 0:BA.paths,UA)||(d("changeProjectionPaths",UA),E(Bs(E(),["projection","paths"],UA,!0)),u()(E()))})(l(C)?l(C).map(UA=>UA.value):void 0)}),ln(),qt(!0);var z=TUA(),K=W(z),O=W(K),V=CA(W(O)),j=W(V),dA=W(j);jC(dA,{class:"jse-filter-path",showChevron:!0,get items(){return l(g)},get value(){return l(x)},set value(UA){y(x,UA)},$$legacy:!0});var fA=CA(dA,2);jC(fA,{class:"jse-filter-relation",showChevron:!0,clearable:!1,get items(){return h},get value(){return l(R)},set value(UA){y(R,UA)},$$legacy:!0});var EA=CA(fA,2),IA=CA(O),SA=CA(W(IA)),nA=W(SA),lA=W(nA);jC(lA,{class:"jse-sort-path",showChevron:!0,get items(){return l(g)},get value(){return l(G)},set value(UA){y(G,UA)},$$legacy:!0}),jC(CA(lA,2),{class:"jse-sort-direction",showChevron:!0,clearable:!1,get items(){return w},get value(){return l(J)},set value(UA){y(J,UA)},$$legacy:!0});var wA=CA(IA),VA=CA(W(wA)),ie=W(VA);jC(W(ie),{class:"jse-projection-paths",multiple:!0,showChevron:!0,get items(){return l(I)},get value(){return l(C)},set value(UA){y(C,UA)},$$legacy:!0}),Fy(EA,()=>l(D),UA=>y(D,UA)),iA(t,z),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-select-query-language.svelte-atm4um { + position: relative; + width: 32px; +} +.jse-select-query-language.svelte-atm4um .jse-select-query-language-container:where(.svelte-atm4um) { + position: absolute; + top: 0; + right: 0; + display: flex; + flex-direction: column; + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); +} +.jse-select-query-language.svelte-atm4um .jse-select-query-language-container:where(.svelte-atm4um) .jse-query-language:where(.svelte-atm4um) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + text-align: left; + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + white-space: nowrap; + color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); + background: var(--jse-context-menu-background, #656565); +} +.jse-select-query-language.svelte-atm4um .jse-select-query-language-container:where(.svelte-atm4um) .jse-query-language:where(.svelte-atm4um):hover { + background: var(--jse-context-menu-background-highlight, #7a7a7a); +}`);var OUA=vA(''),zUA=vA('
');function PUA(t,e){ft(e,!1);var A=M(e,"queryLanguages",8),i=M(e,"queryLanguageId",12),n=M(e,"onChangeQueryLanguage",8);qt();var o=zUA();jo(W(o),5,A,cr,(r,s)=>{var a,c=OUA(),g=W(c),I=B=>{Ui(B,{get data(){return AL}})},C=B=>{Ui(B,{get data(){return eL}})};GA(g,B=>{l(s),k(i()),oA(()=>l(s).id===i())?B(I):B(C,!1)});var d=CA(g);we(B=>{var E;a=jt(c,1,"jse-query-language svelte-atm4um",null,a,B),gn(c,"title",(l(s),oA(()=>"Select ".concat(l(s).name," as query language")))),pt(d," ".concat((l(s),(E=oA(()=>l(s).name))!==null&&E!==void 0?E:"")))},[()=>({selected:l(s).id===i()})],ZA),ce("click",c,()=>{return B=l(s).id,i(B),void n()(B);var B}),iA(r,c)}),iA(t,o),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-header.svelte-1y24war { + display: flex; + background: var(--jse-theme-color, #3883fa); + color: var(--jse-menu-color, var(--jse-text-color-inverse, #fff)); +} +.jse-header.svelte-1y24war .jse-title:where(.svelte-1y24war) { + flex: 1; + padding: 5px; + vertical-align: middle; +} +.jse-header.svelte-1y24war button:where(.svelte-1y24war) { + border: none; + background: transparent; + min-width: 32px; + color: inherit; + cursor: pointer; +} +.jse-header.svelte-1y24war button:where(.svelte-1y24war):hover { + background: rgba(255, 255, 255, 0.1); +}`);var jUA=vA(''),qUA=vA('
');function qy(t,e){ft(e,!1);var A=M(e,"title",9,"Modal"),i=M(e,"fullScreenButton",9,!1),n=M(e,"fullscreen",13,!1),o=M(e,"onClose",9,void 0);qt(!0);var r=qUA(),s=W(r),a=W(s),c=CA(s,2);Po(c,e,"actions",{},null);var g=CA(c,2),I=d=>{var B=jUA(),E=W(B),u=ZA(()=>n()?IX:MX);Ui(E,{get data(){return l(u)}}),ce("click",B,()=>n(!n())),iA(d,B)};GA(g,d=>{i()&&d(I)});var C=CA(g,2);Ui(W(C),{get data(){return h4}}),we(()=>pt(a,A())),ce("click",C,()=>{var d;return(d=o())===null||d===void 0?void 0:d()}),iA(t,r),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-config.svelte-1kpylsp { + border: none; + background: transparent; + min-width: 32px; + color: inherit; + cursor: pointer; +} +.jse-config.svelte-1kpylsp:hover { + background: rgba(255, 255, 255, 0.1); +} +.jse-config.hide.svelte-1kpylsp { + display: none; +}`);var VUA=vA(''),QG=xr("jsoneditor:AutoScrollHandler");function csA(t){var e,A;function i(s){return s<20?200:s<50?400:1200}function n(){if(t){var s=.05*(e||0);t.scrollTop+=s}}function o(s){A&&s===e||(r(),QG("startAutoScroll",s),e=s,A=setInterval(n,50))}function r(){A&&(QG("stopAutoScroll"),clearInterval(A),A=void 0,e=void 0)}return QG("createAutoScrollHandler",t),{onDrag:function(s){if(t){var a=s.clientY,{top:c,bottom:g}=t.getBoundingClientRect();ag?o(i(a-g)):r()}},onDragEnd:function(){r()}}}var ZUA=(t,e,A,i)=>(t/=i/2)<1?A/2*t*t+e:-A/2*(--t*(t-2)-1)+e,qaA=()=>{var t,e,A,i,n,o,r,s,a,c,g,I,C;function d(u){return u.getBoundingClientRect().top-(t.getBoundingClientRect?t.getBoundingClientRect().top:0)+A}function B(u){t.scrollTo?t.scrollTo(t.scrollLeft,u):t.scrollTop=u}function E(u){c||(c=u),B(o(g=u-c,A,s,a)),C=!0,g1&&arguments[1]!==void 0?arguments[1]:{};switch(a=1e3,n=h.offset||0,I=h.callback,o=h.easing||ZUA,r=h.a11y||!1,typeof h.container){case"object":t=h.container;break;case"string":t=document.querySelector(h.container);break;default:t=window.document.documentElement}switch(A=t.scrollTop,typeof u){case"number":e=void 0,r=!1,i=A+u;break;case"object":i=d(e=u);break;case"string":e=document.querySelector(u),i=d(e)}switch(s=i-A+n,typeof h.duration){case"number":a=h.duration;break;case"function":a=h.duration(s)}C?c=0:requestAnimationFrame(E)}};function fQ(t,e){var A=Date.now(),i=t();return e(Date.now()-A),i}var BQ=xr("validation"),WUA={createObjectDocumentState:()=>({type:"object",properties:{}}),createArrayDocumentState:()=>({type:"array",items:[]}),createValueDocumentState:()=>({type:"value"})};function gsA(t,e,A,i){return pK(t,e,A,i,WUA)}function VaA(t,e,A,i){if(BQ("validateJSON"),!e)return[];if(A!==i){var n=A.stringify(t);return e(n!==void 0?i.parse(n):void 0)}return e(t)}function XUA(t,e,A,i){if(BQ("validateText"),t.length>104857600)return{validationErrors:[{path:[],message:"Validation turned off: the document is too large",severity:Og.info}]};if(t.length!==0)try{var n=fQ(()=>A.parse(t),a=>BQ("validate: parsed json in ".concat(a," ms")));if(!e)return;var o=A===i?n:fQ(()=>i.parse(t),a=>BQ("validate: parsed json with the validationParser in ".concat(a," ms"))),r=fQ(()=>e(o),a=>BQ("validate: validated json in ".concat(a," ms")));return Gi(r)?void 0:{validationErrors:r}}catch(a){var s=fQ(()=>function(c,g){if(c.length>vKA)return!1;try{return g.parse(Uc(c)),!0}catch{return!1}}(t,A),c=>BQ("validate: checked whether repairable in ".concat(c," ms")));return{parseError:MQ(t,a.message||a.toString()),isRepairable:s}}}var my=xr("jsoneditor:FocusTracker");function kK(t){var e,{onMount:A,onDestroy:i,getWindow:n,hasFocus:o,onFocus:r,onBlur:s}=t,a=!1;function c(){var I=o();I&&(clearTimeout(e),a||(my("focus"),r(),a=I))}function g(){a&&(clearTimeout(e),e=setTimeout(()=>{o()||(my("blur"),a=!1,s())}))}A(()=>{my("mount FocusTracker");var I=n();I&&(I.addEventListener("focusin",c,!0),I.addEventListener("focusout",g,!0))}),i(()=>{my("destroy FocusTracker");var I=n();I&&(I.removeEventListener("focusin",c,!0),I.removeEventListener("focusout",g,!0))})}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-message.svelte-czprfx { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + padding: var(--jse-padding, 10px); + display: flex; + gap: var(--jse-padding, 10px); + flex-wrap: wrap; + align-items: stretch; +} +.jse-message.jse-success.svelte-czprfx { + background: var(--message-success-background, #9ac45d); + color: var(--jse-message-success-color, #fff); +} +.jse-message.svelte-czprfx .jse-text:where(.svelte-czprfx) { + display: flex; + flex: 1; + min-width: 60%; + align-items: center; +} +.jse-message.svelte-czprfx .jse-text.jse-clickable:where(.svelte-czprfx) { + cursor: pointer; +} +.jse-message.svelte-czprfx .jse-text.jse-clickable:where(.svelte-czprfx):hover { + background-color: rgba(255, 255, 255, 0.1); +} +.jse-message.jse-error.svelte-czprfx { + background: var(--jse-message-error-background, var(--jse-error-color, #ee5341)); + color: var(--jse-message-error-color, #fff); +} +.jse-message.jse-warning.svelte-czprfx { + background: var(--jse-message-warning-background, #ffde5c); + color: var(--jse-message-warning-color, #4d4d4d); +} +.jse-message.jse-info.svelte-czprfx { + background: var(--jse-message-info-background, #4f91ff); + color: var(--jse-message-info-color, #fff); +} +.jse-message.svelte-czprfx .jse-actions:where(.svelte-czprfx) { + display: flex; + gap: var(--jse-padding, 10px); +} +.jse-message.svelte-czprfx .jse-actions:where(.svelte-czprfx) button.jse-action:where(.svelte-czprfx) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-message-action-background, rgba(255, 255, 255, 0.2)); + color: inherit; + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); +} +.jse-message.svelte-czprfx .jse-actions:where(.svelte-czprfx) button.jse-action:where(.svelte-czprfx):hover { + background: var(--jse-message-action-background-highlight, rgba(255, 255, 255, 0.3)); +}`);var $UA=vA(''),AJA=vA('
');function pc(t,e){ft(e,!1);var A=M(e,"type",9,"success"),i=M(e,"icon",9,void 0),n=M(e,"message",9,void 0),o=M(e,"actions",25,()=>[]),r=M(e,"onClick",9,void 0),s=M(e,"onClose",9,void 0);s()&&ig(s()),qt(!0);var a,c=AJA(),g=W(c),I=W(g),C=W(I),d=E=>{Ui(E,{get data(){return i()}})};GA(C,E=>{i()&&E(d)});var B=CA(C);jo(CA(g,2),5,o,cr,(E,u)=>{var h=$UA(),w=W(h),x=D=>{Ui(D,{get data(){return l(u),oA(()=>l(u).icon)}})};GA(w,D=>{l(u),oA(()=>l(u).icon)&&D(x)});var R=CA(w);we(()=>{var D;gn(h,"title",(l(u),oA(()=>l(u).title))),h.disabled=(l(u),oA(()=>l(u).disabled)),pt(R," ".concat((l(u),(D=oA(()=>l(u).text))!==null&&D!==void 0?D:"")))}),ce("click",h,()=>{l(u).onClick&&l(u).onClick()}),ce("mousedown",h,()=>{l(u).onMouseDown&&l(u).onMouseDown()}),iA(E,h)}),we(E=>{var u,h;jt(c,1,"jse-message jse-".concat((u=A())!==null&&u!==void 0?u:""),"svelte-czprfx"),a=jt(g,1,"jse-text svelte-czprfx",null,a,E),pt(B," ".concat((h=n())!==null&&h!==void 0?h:""))},[()=>({"jse-clickable":!!r()})],ZA),ce("click",g,function(){r()&&r()()}),iA(t,c),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-validation-errors-overview.svelte-1uindol { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + overflow: auto; + max-height: 25%; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) { + border-collapse: collapse; + width: 100%; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) { + cursor: pointer; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-error:where(.svelte-1uindol) { + background: var(--jse-message-error-background, var(--jse-error-color, #ee5341)); + color: var(--jse-message-error-color, #fff); +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-warning:where(.svelte-1uindol) { + background: var(--jse-message-warning-background, #ffde5c); + color: var(--jse-message-warning-color, #4d4d4d); +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-warning:where(.svelte-1uindol):hover { + filter: brightness(105%); +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-info:where(.svelte-1uindol) { + background: var(--jse-message-info-background, #4f91ff); + color: var(--jse-message-info-color, #fff); +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol):hover { + filter: brightness(110%); +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td:where(.svelte-1uindol) { + padding: 4px var(--jse-padding, 10px); + vertical-align: middle; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-icon:where(.svelte-1uindol) { + width: 36px; + box-sizing: border-box; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-action:where(.svelte-1uindol) { + width: 36px; + box-sizing: border-box; + padding: 0; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-action:where(.svelte-1uindol) button.jse-validation-errors-collapse:where(.svelte-1uindol) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + width: 36px; + height: 26px; + cursor: pointer; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-action:where(.svelte-1uindol) button.jse-validation-errors-collapse:where(.svelte-1uindol):hover { + background-color: rgba(255, 255, 255, 0.2); +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td:where(.svelte-1uindol) div.jse-validation-errors-expand:where(.svelte-1uindol) { + display: inline-block; + position: relative; + top: 3px; +}`);var eJA=vA(''),tJA=vA(' '),iJA=vA(' '),nJA=vA('
'),oJA=vA('
'),rJA=vA('
');function SK(t,e){ft(e,!1);var A=$(void 0,!0),i=M(e,"validationErrors",9),n=M(e,"selectError",9),o=$(!0,!0);function r(){y(o,!1)}function s(){y(o,!0)}pA(()=>k(i()),()=>{y(A,i().length)}),ln(),qt(!0);var a=_o(),c=Mt(a),g=I=>{var C=rJA(),d=W(C),B=u=>{var h=nJA(),w=W(h),x=W(w);jo(x,1,()=>(k(_y),k(i()),k(By),oA(()=>_y(i(),By))),cr,(G,J,z)=>{var K=tJA(),O=W(K);Ui(W(O),{get data(){return m1}});var V=CA(O),j=W(V),dA=CA(V),fA=W(dA),EA=W(CA(dA)),IA=SA=>{var nA=eJA();Ui(W(nA),{get data(){return pX}}),ce("click",nA,Z0(r)),iA(SA,nA)};GA(EA,SA=>{k(i()),oA(()=>z===0&&i().length>1)&&SA(IA)}),we(SA=>{var nA;jt(K,1,"jse-validation-".concat((l(J),(nA=oA(()=>l(J).severity))!==null&&nA!==void 0?nA:"")),"svelte-1uindol"),pt(j,SA),pt(fA,(l(J),oA(()=>l(J).message)))},[()=>(k(Ta),l(J),oA(()=>Ta(l(J).path)))],ZA),ce("click",K,()=>{setTimeout(()=>n()(l(J)))}),iA(G,K)});var R=CA(x),D=G=>{var J=iJA(),z=CA(W(J),2),K=W(z);we(()=>pt(K,"(and ".concat(l(A)-By," more errors)"))),iA(G,J)};GA(R,G=>{l(A)>By&&G(D)}),iA(u,h)},E=u=>{var h=oJA(),w=W(h),x=W(w),R=W(x);Ui(W(R),{get data(){return m1}});var D=W(CA(R));Ui(W(CA(D)),{get data(){return nL}}),we(G=>{var J;jt(x,1,"jse-validation-".concat(G??""),"svelte-1uindol"),pt(D,"".concat((J=l(A))!==null&&J!==void 0?J:""," validation errors "))},[()=>(k(i()),oA(()=>{return G=i(),[Og.error,Og.warning,Og.info].find(J=>G.some(z=>z.severity===J));var G}))],ZA),ce("click",x,s),iA(u,h)};GA(d,u=>{l(o)||l(A)===1?u(B):u(E,!1)}),iA(I,C)};GA(c,I=>{k(Gi),k(i()),oA(()=>!Gi(i()))&&I(g)}),iA(t,a),mt()}function Vy(t,e){if(t)return t.addEventListener("keydown",A),{destroy(){t.removeEventListener("keydown",A)}};function A(i){i.key==="Escape"&&(i.preventDefault(),i.stopPropagation(),e())}}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +dialog.jse-modal.svelte-1s9c2ql { + border-radius: 3px; + font-size: var(--jse-padding, 10px); + border: none; + padding: 0; + display: flex; + min-width: 0; + margin: auto; + overflow: visible; + transition: width 0.1s ease-in-out, height 0.1s ease-in-out; +} +dialog.jse-modal.jse-sort-modal.svelte-1s9c2ql { + width: 400px; +} +dialog.jse-modal.jse-repair-modal.svelte-1s9c2ql { + width: 600px; + height: 500px; +} +dialog.jse-modal.jse-jsoneditor-modal.svelte-1s9c2ql { + width: 800px; + height: 600px; +} +dialog.jse-modal.jse-transform-modal.svelte-1s9c2ql { + width: 1200px; + height: 800px; +} +dialog.jse-modal.jse-fullscreen.svelte-1s9c2ql { + width: 100%; + height: 100%; +} +dialog.jse-modal.svelte-1s9c2ql::backdrop { + background: var(--jse-overlay-background, rgba(0, 0, 0, 0.3)); +} +dialog.jse-modal[open].svelte-1s9c2ql { + animation: svelte-1s9c2ql-zoom 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); +} +dialog.jse-modal[open].svelte-1s9c2ql::backdrop { + animation: svelte-1s9c2ql-fade 0.2s ease-out; +} +dialog.jse-modal.svelte-1s9c2ql .jse-modal-inner:where(.svelte-1s9c2ql) { + flex: 1; + display: flex; + flex-direction: column; + min-width: 0; + min-height: 0; + padding: 0; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + line-height: normal; + background: var(--jse-modal-background, #f5f5f5); + color: var(--jse-text-color, #4d4d4d); +} +@keyframes svelte-1s9c2ql-zoom { + from { + transform: scale(0.95); + } + to { + transform: scale(1); + } +} +@keyframes svelte-1s9c2ql-fade { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +dialog.jse-modal.svelte-1s9c2ql .svelte-select { + --border: var(--jse-svelte-select-border, 1px solid #d8dbdf); + --item-is-active-bg: var(--jse-item-is-active-bg, #3883fa); + --border-radius: var(--jse-svelte-select-border-radius, 3px); + --background: var(--jse-svelte-select-background, #fff); + --padding: var(--jse-svelte-select-padding, 0 10px); + --multi-select-padding: var(--jse-svelte-select-multi-select-padding, 0 10px); + --font-size: var(--jse-svelte-select-font-size, var(--jse-font-size, 16px)); + --height: 36px; + --multi-item-height: 28px; + --multi-item-margin: 2px; + --multi-item-padding: 2px 8px; + --multi-item-border-radius: 6px; + --indicator-top: 8px; +}`);var sJA=vA('
');function sf(t,e){ft(e,!1);var A=M(e,"className",8,void 0),i=M(e,"fullscreen",8,!1),n=M(e,"onClose",8),o=$();function r(){n()()}ws(()=>l(o).showModal()),ig(()=>l(o).close()),qt();var s,a=sJA(),c=W(a);Po(W(c),e,"default",{},null),Qo(a,g=>y(o,g),()=>l(o)),rs(()=>ce("close",a,r)),rs(()=>{return ce("pointerdown",a,(g=r,function(){for(var I=arguments.length,C=new Array(I),d=0;dce("cancel",a,z1(function(g){H3.call(this,e,g)}))),Ts(a,(g,I)=>Vy?.(g,I),()=>r),we((g,I)=>s=jt(a,1,g,"svelte-1s9c2ql",s,I),[()=>rI((k(Vg),k(A()),oA(()=>Vg("jse-modal",A())))),()=>({"jse-fullscreen":i()})],ZA),iA(t,a),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-modal-contents.svelte-189qksl { + flex: 1; + display: flex; + flex-direction: column; + padding: 20px; + overflow: auto; + min-width: 0; + min-height: 0; +} +.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) { + display: flex; + flex-direction: row; + justify-content: flex-end; + padding-top: var(--jse-padding, 10px); +} +.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) button.jse-primary:where(.svelte-189qksl) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); + color: var(--jse-button-primary-color, #fff); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) button.jse-primary:where(.svelte-189qksl):hover { + background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); +} +.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) button.jse-primary:where(.svelte-189qksl):disabled { + background: var(--jse-button-primary-background-disabled, #9d9d9d); +} + +.jse-shortcuts.svelte-189qksl { + display: flex; + flex-wrap: wrap; + justify-content: space-around; + margin: calc(2 * var(--jse-padding, 10px)) 0; +} +.jse-shortcuts.svelte-189qksl .jse-shortcut:where(.svelte-189qksl) .jse-key:where(.svelte-189qksl) { + font-size: 200%; + color: var(--jse-theme-color, #3883fa); +}`);var aJA=vA('
Clipboard permission is disabled by your browser. You can use:
for copy
for cut
for paste
',1);function ZaA(t,e){ft(e,!1);var A=M(e,"onClose",9),i=dK()?"\u2318":"Ctrl";qt(!0),sf(t,{get onClose(){return A()},className:"jse-copy-paste",children:(n,o)=>{var r=aJA(),s=Mt(r);qy(s,{title:"Copying and pasting",get onClose(){return A()}});var a=CA(s,2),c=CA(W(a),2),g=W(c),I=W(g),C=W(I),d=CA(g,2),B=W(d),E=W(B),u=W(CA(d,2)),h=W(u),w=W(CA(c,2));we(()=>{pt(C,"".concat(i,"+C")),pt(E,"".concat(i,"+X")),pt(h,"".concat(i,"+V"))}),ce("click",w,function(){for(var x,R=arguments.length,D=new Array(R),G=0;G'),gJA=vA('
'),lJA=vA(''),IJA=vA('
');function l7(t,e){ft(e,!1);var A=M(e,"items",25,()=>[]);qt(!0);var i=IJA(),n=W(i);Po(n,e,"left",{},null);var o=CA(n,2);jo(o,1,A,cr,(r,s)=>{var a=_o(),c=Mt(a),g=C=>{iA(C,cJA())},I=(C,d)=>{var B=u=>{iA(u,gJA())},E=(u,h)=>{var w=R=>{var D=lJA(),G=W(D),J=O=>{Ui(O,{get data(){return l(s),oA(()=>l(s).icon)}})};GA(G,O=>{l(s),oA(()=>l(s).icon)&&O(J)});var z=CA(G,2),K=O=>{var V=jr();we(()=>pt(V,(l(s),oA(()=>l(s).text)))),iA(O,V)};GA(z,O=>{l(s),oA(()=>l(s).text)&&O(K)}),we(()=>{var O;jt(D,1,"jse-button ".concat((l(s),(O=oA(()=>l(s).className))!==null&&O!==void 0?O:"")),"svelte-pf7s2l"),gn(D,"title",(l(s),oA(()=>l(s).title))),D.disabled=(l(s),oA(()=>l(s).disabled||!1))}),ce("click",D,function(){for(var O,V=arguments.length,j=new Array(V),dA=0;dA{var D=jr();we(G=>pt(D,G),[()=>(l(s),oA(()=>function(G){return console.error("Unknown type of menu item",G),"???"}(l(s))))],ZA),iA(R,D)};GA(u,R=>{k(W0),l(s),oA(()=>W0(l(s)))?R(w):R(x,!1)},h)};GA(C,u=>{k(_G),l(s),oA(()=>_G(l(s)))?u(B):u(E,!1)},d)};GA(c,C=>{k(j1),l(s),oA(()=>j1(l(s)))?C(g):C(I,!1)}),iA(r,a)}),Po(CA(o,2),e,"right",{},null),iA(t,i),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-json-repair-component.svelte-3golau { + flex: 1; + display: flex; + flex-direction: column; + background: var(--jse-background-color, #fff); + color: var(--jse-text-color, #4d4d4d); +} +.jse-json-repair-component.svelte-3golau .jse-info:where(.svelte-3golau) { + padding: calc(0.5 * var(--jse-padding, 10px)); + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + vertical-align: center; +} +.jse-json-repair-component.svelte-3golau .jse-json-text:where(.svelte-3golau) { + flex: 1; + border: none; + padding: 2px; + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + background: var(--jse-input-background, var(--jse-background-color, #fff)); + color: var(--jse-text-color, #4d4d4d); + resize: none; + outline: none; +}`);var CJA=vA('
Repair invalid JSON, then click apply
'),dJA=vA('
');function BJA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=$(void 0,!0),r=$(void 0,!0),s=$(void 0,!0),a=M(e,"text",13,""),c=M(e,"readOnly",9,!1),g=M(e,"onParse",9),I=M(e,"onRepair",9),C=M(e,"onChange",9,void 0),d=M(e,"onApply",9),B=M(e,"onCancel",9),E=xr("jsoneditor:JSONRepair"),u=$(void 0,!0);function h(){if(l(u)&&l(A)){var V=l(A).position!==void 0?l(A).position:0;l(u).setSelectionRange(V,V),l(u).focus()}}function w(){d()(a())}function x(){try{a(I()(a())),C()&&C()(a())}catch{}}var R=$(void 0,!0);pA(()=>k(a()),()=>{y(A,function(V){try{return void g()(V)}catch(j){return MQ(V,j.message)}}(a()))}),pA(()=>k(a()),()=>{y(i,function(V){try{return I()(V),!0}catch{return!1}}(a()))}),pA(()=>l(A),()=>{E("error",l(A))}),pA(()=>k(B()),()=>{y(R,[{type:"space"},{type:"button",icon:h4,title:"Cancel repair",className:"jse-cancel",onClick:B()}])}),pA(()=>aL,()=>{y(n,{icon:aL,text:"Show me",title:"Scroll to the error location",onClick:h})}),pA(()=>_0,()=>{y(o,{icon:_0,text:"Auto repair",title:"Automatically repair JSON",onClick:x})}),pA(()=>(l(i),l(n),l(o)),()=>{y(r,l(i)?[l(n),l(o)]:[l(n)])}),pA(()=>k(c()),()=>{y(s,[{icon:U5,text:"Apply",title:"Apply fixed JSON",disabled:c(),onClick:w}])}),ln(),qt(!0);var D=dJA(),G=W(D);l7(G,{get items(){return l(R)},$$slots:{left:(V,j)=>{iA(V,CJA())}}});var J=CA(G,2),z=V=>{var j=ZA(()=>(l(A),oA(()=>"Cannot parse JSON: ".concat(l(A).message))));pc(V,{type:"error",get icon(){return m1},get message(){return l(j)},get actions(){return l(r)}})},K=V=>{pc(V,{type:"success",message:"JSON is valid now and can be parsed.",get actions(){return l(s)}})};GA(J,V=>{l(A)?V(z):V(K,!1)});var O=CA(J,2);Qo(O,V=>y(u,V),()=>l(u)),we(()=>{O.readOnly=c(),ed(O,a())}),ce("input",O,function(V){E("handleChange");var j=V.target.value;a()!==j&&(a(j),C()&&C()(a()))}),iA(t,D),mt()}function WaA(t,e){ft(e,!1);var A=M(e,"text",13),i=M(e,"onParse",9),n=M(e,"onRepair",9),o=M(e,"onApply",9),r=M(e,"onClose",9);function s(c){o()(c),r()()}function a(){r()()}qt(!0),sf(t,{get onClose(){return r()},className:"jse-repair-modal",children:(c,g)=>{BJA(c,{get onParse(){return i()},get onRepair(){return n()},onApply:s,onCancel:a,get text(){return A()},set text(I){A(I)},$$legacy:!0})},$$slots:{default:!0}}),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +div.jse-collapsed-items.svelte-1h6hzoq { + margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + color: var(--jse-collapsed-items-link-color, rgba(0, 0, 0, 0.38)); + padding: calc(0.5 * var(--jse-padding, 10px)); + border: 8px solid transparent; + border-width: 8px 0; + background-color: var(--jse-contents-background-color, transparent); + background-image: linear-gradient(var(--jse-collapsed-items-background-color, #f5f5f5), var(--jse-collapsed-items-background-color, #f5f5f5)), linear-gradient(to bottom right, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%), linear-gradient(to bottom left, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%), linear-gradient(to top right, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%), linear-gradient(to top left, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%); + background-repeat: repeat, repeat-x, repeat-x, repeat-x, repeat-x; + background-position: 0 0, 8px 0, 8px 0, 8px 100%, 8px 100%; + background-size: auto auto, 16px 16px, 16px 16px, 16px 16px, 16px 16px; + background-clip: padding-box, border-box, border-box, border-box, border-box; + background-origin: padding-box, border-box, border-box, border-box, border-box; + display: flex; +} +div.jse-collapsed-items.jse-selected.svelte-1h6hzoq { + background-color: var(--jse-selection-background-color, #d3d3d3); + --jse-collapsed-items-background-color: var(--jse-collapsed-items-selected-background-color, #c2c2c2); +} +div.jse-collapsed-items.svelte-1h6hzoq div.jse-text:where(.svelte-1h6hzoq), +div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq) { + margin: 0 calc(0.5 * var(--jse-padding, 10px)); +} +div.jse-collapsed-items.svelte-1h6hzoq div.jse-text:where(.svelte-1h6hzoq) { + display: inline; +} +div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq) { + font-family: inherit; + font-size: inherit; + color: var(--jse-collapsed-items-link-color, rgba(0, 0, 0, 0.38)); + background: none; + border: none; + padding: 0; + text-decoration: underline; + cursor: pointer; +} +div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq):hover, div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq):focus { + color: var(--jse-collapsed-items-link-color-highlight, #ee5341); +}`);var EJA=vA(''),QJA=vA('
');function uJA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=$(void 0,!0),r=$(void 0,!0),s=M(e,"visibleSections",9),a=M(e,"sectionIndex",9),c=M(e,"total",9),g=M(e,"path",9),I=M(e,"selection",9),C=M(e,"onExpandSection",9),d=M(e,"context",9);pA(()=>(k(s()),k(a())),()=>{y(A,s()[a()])}),pA(()=>l(A),()=>{y(i,l(A).end)}),pA(()=>(k(s()),k(a()),k(c())),()=>{y(n,s()[a()+1]?s()[a()+1].start:c())}),pA(()=>(k(d()),k(I()),k(g()),l(i)),()=>{y(o,nf(d().getJson(),I(),g().concat(String(l(i)))))}),pA(()=>(l(i),l(n)),()=>{y(r,function(R,D){var G={start:R,end:Math.min(FG(R),D)},J=Math.max(Ky((R+D)/2),R),z={start:J,end:Math.min(FG(J),D)},K=Ky(D),O=K===D?K-$3:K,V={start:Math.max(O,R),end:D},j=[G],dA=z.start>=G.end&&z.end<=V.start;return dA&&j.push(z),V.start>=(dA?z.end:G.end)&&j.push(V),j}(l(i),l(n)))}),ln(),qt(!0);var B,E,u=QJA(),h=W(u),w=W(h),x=W(w);jo(CA(w,2),1,()=>l(r),cr,(R,D)=>{var G=EJA(),J=W(G);we(()=>{var z,K;return pt(J,"show ".concat((l(D),(z=oA(()=>l(D).start))!==null&&z!==void 0?z:""),"-").concat((l(D),(K=oA(()=>l(D).end))!==null&&K!==void 0?K:"")))}),ce("click",G,()=>C()(g(),l(D))),iA(R,G)}),we((R,D)=>{var G,J;B=jt(u,1,"jse-collapsed-items svelte-1h6hzoq",null,B,R),E=eg(u,"",E,D),pt(x,"Items ".concat((G=l(i))!==null&&G!==void 0?G:"","-").concat((J=l(n))!==null&&J!==void 0?J:""))},[()=>({"jse-selected":l(o)}),()=>({"--level":(k(g()),oA(()=>g().length+2))})],ZA),ce("mousemove",u,function(R){R.stopPropagation()}),iA(t,u),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-context-menu-pointer.svelte-137iwnw { + position: absolute; + top: calc(-0.5 * var(--jse-context-menu-pointer-size, calc(1em + 4px))); + right: calc(-0.5 * var(--jse-context-menu-pointer-size, calc(1em + 4px))); + width: var(--jse-context-menu-pointer-size, calc(1em + 4px)); + height: var(--jse-context-menu-pointer-size, calc(1em + 4px)); + padding: 0; + margin: 0; + cursor: pointer; + background: transparent; + border-radius: 2px; + background: var(--jse-context-menu-pointer-hover-background, #b2b2b2); + color: var(--jse-context-menu-pointer-color, var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff))); + border: none; + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); +} +.jse-context-menu-pointer.jse-root.svelte-137iwnw { + top: 0; + right: calc(-2px - var(--jse-context-menu-pointer-size, calc(1em + 4px))); +} +.jse-context-menu-pointer.jse-insert.svelte-137iwnw { + right: -1px; +} +.jse-context-menu-pointer.svelte-137iwnw:hover { + background: var(--jse-context-menu-pointer-background-highlight, var(--jse-context-menu-background-highlight, #7a7a7a)); +} +.jse-context-menu-pointer.jse-selected.svelte-137iwnw { + background: var(--jse-context-menu-pointer-background, var(--jse-context-menu-background, #656565)); +} +.jse-context-menu-pointer.jse-selected.svelte-137iwnw:hover { + background: var(--jse-context-menu-pointer-background-highlight, var(--jse-context-menu-background-highlight, #7a7a7a)); +}`);var hJA=vA('');function P1(t,e){ft(e,!1);var A=M(e,"root",9,!1),i=M(e,"insert",9,!1),n=M(e,"selected",9),o=M(e,"onContextMenu",9);qt(!0);var r,s=hJA();Ui(W(s),{get data(){return Nl}}),we(a=>{r=jt(s,1,"jse-context-menu-pointer svelte-137iwnw",null,r,a),gn(s,"title",EK)},[()=>({"jse-root":A(),"jse-insert":i(),"jse-selected":n()})],ZA),ce("click",s,function(a){for(var c=a.target;c&&c.nodeName!=="BUTTON";)c=c.parentNode;c&&o()({anchor:c,left:0,top:0,width:A2,height:$0,offsetTop:2,offsetLeft:0,showTip:!0})}),iA(t,s),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-key.svelte-2iqnqn { + display: inline-block; + min-width: 2em; + padding: 0 5px; + box-sizing: border-box; + outline: none; + border-radius: 1px; + vertical-align: top; + color: var(--jse-key-color, #1a1a1a); + word-break: normal; + overflow-wrap: normal; + white-space: pre-wrap; +} +.jse-key.jse-empty.svelte-2iqnqn { + min-width: 3em; + outline: 1px dotted var(--jse-tag-background, rgba(0, 0, 0, 0.2)); + -moz-outline-radius: 2px; +} +.jse-key.jse-empty.svelte-2iqnqn::after { + pointer-events: none; + color: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); + content: "key"; +}`);var fJA=vA('
'),mJA=vA(" ",1),pJA=vA('
');function XaA(t,e){ft(e,!0);var A=Ja(()=>Vi(e.selection)&&Sr(e.selection)),i=Ja(()=>e.context.onRenderValue({path:e.path,value:e.value,mode:e.context.mode,truncateTextSize:e.context.truncateTextSize,readOnly:e.context.readOnly,enforceString:e.enforceString,isEditing:l(A),parser:e.context.parser,normalization:e.context.normalization,selection:e.selection,searchResultItems:e.searchResultItems,onPatch:e.context.onPatch,onPasteJson:e.context.onPasteJson,onSelect:e.context.onSelect,onFind:e.context.onFind,findNextInside:e.context.findNextInside,focus:e.context.focus})),n=_o();jo(Mt(n),17,()=>l(i),cr,(o,r)=>{var s=_o(),a=Mt(s),c=I=>{var C=pJA(),d=Ja(()=>l(r).action);Ts(C,(B,E)=>{var u;return(u=l(d))===null||u===void 0?void 0:u(B,E)},()=>l(r).props),iA(I,C)},g=I=>{var C=_o(),d=Ja(()=>l(r).component);AaA(Mt(C),()=>l(d),(B,E)=>{E(B,AI(()=>l(r).props))}),iA(I,C)};GA(a,I=>{RKA(l(r))?I(c):I(g,!1)}),iA(o,s)}),iA(t,n),mt()}var DJA={selecting:!1,selectionAnchor:void 0,selectionAnchorType:void 0,selectionFocus:void 0,dragging:!1};function uG(t){var{json:e,selection:A,deltaY:i,items:n}=t;if(!A)return{operations:void 0,updatedSelection:void 0,offset:0};var o=i<0?function(g){for(var{json:I,items:C,selection:d,deltaY:B}=g,E=e2(I,d),u=C.findIndex(G=>ri(G.path,E)),h=()=>{var G;return(G=C[w-1])===null||G===void 0?void 0:G.height},w=u,x=0;h()!==void 0&&Math.abs(B)>x+h()/2;)x+=h(),w-=1;var R=C[w].path,D=w-u;return w!==u&&C[w]!==void 0?{beforePath:R,offset:D}:void 0}({json:e,selection:A,deltaY:i,items:n}):function(g){for(var I,{json:C,items:d,selection:B,deltaY:E}=g,u=tI(C,B),h=d.findIndex(O=>ri(O.path,u)),w=0,x=h,R=()=>{var O;return(O=d[x+1])===null||O===void 0?void 0:O.height};R()!==void 0&&Math.abs(E)>w+R()/2;)w+=R(),x+=1;var D=yi(u),G=Ye(C,D),J=Array.isArray(G)?x:x+1,z=(I=d[J])===null||I===void 0?void 0:I.path,K=x-h;return z?{beforePath:z,offset:K}:{append:!0,offset:K}}({json:e,selection:A,deltaY:i,items:n});if(!o||o.offset===0)return{operations:void 0,updatedSelection:void 0,offset:0};var r=function(g,I,C){if(!I)return[];var d="beforePath"in C?C.beforePath:void 0,B="append"in C?C.append:void 0,E=yi(nt(I)),u=Ye(g,E);if(!(B||d&&n0(d,E)&&d.length>E.length))return[];var h=e2(g,I),w=tI(g,I),x=li(h),R=li(w),D=d?d[E.length]:void 0;if(!Lo(u)){if(wo(u)){var G=ss(x),J=ss(R),z=D!==void 0?ss(D):u.length;return ZR(J-G+1,z({op:"move",from:It(E.concat(String(G+dA))),path:It(E.concat(String(z+dA)))}):()=>({op:"move",from:It(E.concat(String(G))),path:It(E.concat(String(z)))}))}throw new Error("Cannot create move operations: parent must be an Object or Array")}var K=Object.keys(u),O=K.indexOf(x),V=K.indexOf(R),j=B?K.length:D!==void 0?K.indexOf(D):-1;return O!==-1&&V!==-1&&j!==-1?j>O?[...K.slice(O,V+1),...K.slice(j,K.length)].map(dA=>aI(E,dA)):[...K.slice(j,O),...K.slice(V+1,K.length)].map(dA=>aI(E,dA)):[]}(e,A,o),s=yi(e2(e,A)),a=Ye(e,s);if(Array.isArray(a)){var c=function(g){var I,C,{items:d,json:B,selection:E,offset:u}=g,h=e2(B,E),w=tI(B,E),x=d.findIndex(J=>ri(J.path,h)),R=d.findIndex(J=>ri(J.path,w)),D=(I=d[x+u])===null||I===void 0?void 0:I.path,G=(C=d[R+u])===null||C===void 0?void 0:C.path;return Js(D,G)}({items:n,json:e,selection:A,offset:o.offset});return{operations:r,updatedSelection:c,offset:o.offset}}return{operations:r,updatedSelection:void 0,offset:o.offset}}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +button.jse-validation-error.svelte-1a8aobl { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + padding: 0; + margin: 0; + vertical-align: top; + display: inline-flex; + color: var(--jse-error-color, #ee5341); +} + +button.jse-validation-info.svelte-1a8aobl { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + padding: 0; + margin: 0; + vertical-align: top; + display: inline-flex; + color: var(--jse-info-color, #4f91ff); +} + +button.jse-validation-warning.svelte-1a8aobl { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + padding: 0; + margin: 0; + vertical-align: top; + display: inline-flex; + color: var(--jse-warning-color, #fdc539); +}`);var wJA=vA('');function wQ(t,e){ft(e,!1);var A=$(),i=cI("absolute-popup"),n=M(e,"validationError",8),o=M(e,"onExpand",8);pA(()=>k(n()),()=>{y(A,SKA(n())&&n().isChildError?"Contains invalid data":n().message)}),ln(),qt();var r=wJA();Ui(W(r),{get data(){return m1}}),rs(()=>ce("click",r,function(){for(var s,a=arguments.length,c=new Array(a),g=0;gRQ?.(s,a),()=>pe({text:l(A)},i)),we(()=>{var s;return jt(r,1,"jse-validation-".concat((k(n()),(s=oA(()=>n().severity))!==null&&s!==void 0?s:"")),"svelte-1a8aobl")}),iA(t,r),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-expand.svelte-oawf7x { + width: var(--jse-indent-size, calc(1em + 4px)); + padding: 0; + margin: 0; + border: none; + cursor: pointer; + background: transparent; + color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); + font-size: var(--jse-font-size-mono, 14px); + height: var(--jse-line-height, calc(1em + 4px)); +} +.jse-expand.svelte-oawf7x:hover { + opacity: 0.8; +} + +.jse-meta.svelte-oawf7x, +.jse-separator.svelte-oawf7x, +.jse-index.svelte-oawf7x, +.jse-bracket.svelte-oawf7x { + vertical-align: top; + color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); +} + +.jse-index.svelte-oawf7x { + padding: 0 calc(0.5 * var(--jse-padding, 10px)); +} + +.jse-bracket.svelte-oawf7x { + padding: 0 2px; +} +.jse-bracket.jse-expanded.svelte-oawf7x { + padding-right: var(--jse-padding, 10px); +} + +.jse-identifier.svelte-oawf7x { + vertical-align: top; + position: relative; +} + +.jse-json-node.svelte-oawf7x { + position: relative; + color: var(--jse-text-color, #4d4d4d); +} +.jse-json-node.jse-root.svelte-oawf7x { + min-height: 100%; + padding-bottom: 2px; + box-sizing: border-box; +} +.jse-json-node.jse-root.svelte-oawf7x > .jse-contents-outer:where(.svelte-oawf7x) > .jse-contents:where(.svelte-oawf7x) { + padding-left: 0; +} +.jse-json-node.svelte-oawf7x .jse-props:where(.svelte-oawf7x), +.jse-json-node.svelte-oawf7x .jse-items:where(.svelte-oawf7x) { + position: relative; +} +.jse-json-node.svelte-oawf7x .jse-header-outer:where(.svelte-oawf7x), +.jse-json-node.svelte-oawf7x .jse-footer-outer:where(.svelte-oawf7x) { + display: flex; + margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); +} +.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x) { + position: relative; +} +.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x) .jse-meta:where(.svelte-oawf7x) > .jse-meta-inner:where(.svelte-oawf7x) { + display: flex; + justify-content: center; +} +.jse-json-node.svelte-oawf7x .jse-contents-outer:where(.svelte-oawf7x) { + display: flex; + margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); +} +.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x), +.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x) { + display: flex; + flex-direction: row; + align-items: flex-start; +} +.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x) { + padding-left: var(--jse-indent-size, calc(1em + 4px)); + cursor: var(--jse-contents-cursor, pointer); +} +.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x) .jse-value-outer:where(.svelte-oawf7x) { + display: inline-flex; +} +.jse-json-node.svelte-oawf7x .jse-footer:where(.svelte-oawf7x) { + display: inline-flex; + padding-left: calc(var(--jse-indent-size, calc(1em + 4px)) + 5px); +} +.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x), +.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x), +.jse-json-node.svelte-oawf7x .jse-footer:where(.svelte-oawf7x) { + background: var(--jse-contents-background-color, transparent); +} +.jse-json-node.svelte-oawf7x .jse-insert-selection-area:where(.svelte-oawf7x) { + padding: 0 calc(0.5 * var(--jse-padding, 10px)); + flex: 1; +} +.jse-json-node.svelte-oawf7x .jse-insert-selection-area.jse-inside:where(.svelte-oawf7x) { + display: inline-flex; + align-items: center; +} +.jse-json-node.svelte-oawf7x .jse-insert-selection-area.jse-after:where(.svelte-oawf7x) { + display: flex; + align-items: flex-end; +} +.jse-json-node.svelte-oawf7x .jse-context-menu-pointer-anchor:where(.svelte-oawf7x) { + position: relative; +} +.jse-json-node.svelte-oawf7x .jse-insert-area:where(.svelte-oawf7x) { + display: flex; + position: relative; + z-index: 1; + margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); + max-width: 250px; + min-width: 100px; + height: 0; + margin-right: calc(0.5 * var(--jse-padding, 10px)); + outline: 1px solid; +} +.jse-json-node.svelte-oawf7x .jse-insert-area.jse-hovered:where(.svelte-oawf7x) { + outline-color: var(--jse-context-menu-pointer-hover-background, #b2b2b2); +} +.jse-json-node.svelte-oawf7x .jse-key-outer:where(.svelte-oawf7x) { + position: relative; +} +.jse-json-node.svelte-oawf7x .jse-key-outer:where(.svelte-oawf7x):hover, +.jse-json-node.svelte-oawf7x .jse-value-outer:where(.svelte-oawf7x):hover, +.jse-json-node.svelte-oawf7x .jse-meta:where(.svelte-oawf7x):hover, +.jse-json-node.svelte-oawf7x .jse-footer:where(.svelte-oawf7x):hover { + background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); + cursor: var(--jse-contents-cursor, pointer); +} +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-header, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-contents, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-header, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-contents, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-footer { + background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); + cursor: var(--jse-contents-cursor, pointer); +} +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-value-outer .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-value-outer .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-meta .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-meta .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-header .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-header .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-contents .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-contents .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-header .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-header .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-contents .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-contents .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-footer .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-footer .jse-meta { + background: none; +} +.jse-json-node.jse-selected.svelte-oawf7x .jse-header:where(.svelte-oawf7x), +.jse-json-node.jse-selected.svelte-oawf7x .jse-contents:where(.svelte-oawf7x), +.jse-json-node.jse-selected.svelte-oawf7x .jse-footer:where(.svelte-oawf7x) { + background: var(--jse-selection-background-color, #d3d3d3); + cursor: var(--jse-contents-selected-cursor, grab); +} +.jse-json-node.jse-selected.svelte-oawf7x .jse-key-outer:where(.svelte-oawf7x):hover, +.jse-json-node.jse-selected.svelte-oawf7x .jse-value-outer:where(.svelte-oawf7x):hover, +.jse-json-node.jse-selected.svelte-oawf7x .jse-meta:where(.svelte-oawf7x):hover, +.jse-json-node.jse-selected.svelte-oawf7x .jse-footer:where(.svelte-oawf7x):hover { + background: inherit; + cursor: inherit; +} +.jse-json-node.svelte-oawf7x .jse-key-outer.jse-selected-key:where(.svelte-oawf7x) { + background: var(--jse-selection-background-color, #d3d3d3); + cursor: var(--jse-contents-selected-cursor, grab); +} +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-value-outer, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-meta, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-header, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-contents, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-header, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-contents, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-footer { + background: var(--jse-selection-background-color, #d3d3d3); + cursor: var(--jse-contents-selected-cursor, grab); +} +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-value-outer .jse-key-outer:hover, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-meta .jse-key-outer:hover, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-header .jse-key-outer:hover, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-contents .jse-key-outer:hover, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-header .jse-key-outer:hover, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-contents .jse-key-outer:hover, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-footer .jse-key-outer:hover { + background: inherit; + cursor: inherit; +} +.jse-json-node.jse-readonly.svelte-oawf7x { + --jse-contents-selected-cursor: pointer; +} +.jse-json-node.svelte-oawf7x .jse-insert-area.jse-selected:where(.svelte-oawf7x) { + outline-color: var(--jse-context-menu-pointer-background, var(--jse-context-menu-background, #656565)); +}`);var Eo=i7(()=>DJA),yJA=vA('
:
'),vJA=vA('
[
 ',1),MJA=vA('
[
]
',1),bJA=vA('
'),kJA=vA('
'),SJA=vA('
'),RJA=vA('
'),LJA=vA('
'),xJA=vA(" ",1),NJA=vA('
'),FJA=vA('
',1),_JA=vA('
',1),GJA=vA('
:
'),KJA=vA('
{
'),UJA=vA('
{
}
',1),JJA=vA('
'),YJA=vA('
'),TJA=vA('
'),HJA=vA('
'),OJA=vA('
'),zJA=vA('
'),PJA=vA('
',1),jJA=vA('
',1),qJA=vA('
:
'),VJA=vA('
'),ZJA=vA('
'),WJA=vA('
'),XJA=vA('
'),$JA=vA('
');function jG(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=M(e,"pointer",9),o=M(e,"value",9),r=M(e,"state",9),s=M(e,"validationErrors",9),a=M(e,"searchResults",9),c=M(e,"selection",9),g=M(e,"context",9),I=M(e,"onDragSelectionStart",9),C=xr("jsoneditor:JSONNode"),d=$(void 0,!0),B=void 0,E=$(void 0,!0),u=$(void 0,!0),h=$(void 0,!0),w=$(void 0,!0),x=$(void 0,!0),R=$(void 0,!0),D=$(void 0,!0);function G(KA){KA.stopPropagation();var tA=BK(KA);g().onExpand(l(u),!l(h),tA)}function J(){g().onExpand(l(u),!0)}function z(KA,tA){var OA=ff(l(u),Object.keys(o()),KA,tA);return g().onPatch(OA),li(xs(OA[0].path))}function K(KA){g().onDrag(KA)}function O(KA){Eo().selecting&&(Eo(Eo().selecting=!1),KA.stopPropagation()),g().onDragEnd(),document.removeEventListener("mousemove",K,!0),document.removeEventListener("mouseup",O)}function V(){var KA;return((KA=g().findElement([]))===null||KA===void 0||(KA=KA.getBoundingClientRect())===null||KA===void 0?void 0:KA.top)||0}function j(KA,tA){var OA=V()-KA.initialContentTop;return tA.clientY-KA.initialClientY-OA}function dA(KA){if(!g().readOnly&&c()){var tA=yi(nt(c()));if(ri(l(u),tA)){var OA=function(LA,cA){var Gt=[];function ct(T){var P=l(u).concat(T),X=g().findElement(P);X!==void 0&&Gt.push({path:P,height:X.clientHeight})}if(Array.isArray(o())){var oe=g().getJson();if(oe===void 0)return;var Dt=e2(oe,LA),_e=tI(oe,LA),Re=parseInt(li(Dt),10),St=parseInt(li(_e),10),Se=cA.find(T=>Re>=T.start&&St<=T.end);if(!Se)return;var{start:Wt,end:L}=Se;raA(Wt,Math.min(o().length,L),T=>ct(String(T)))}else Object.keys(o()).forEach(ct);return Gt}(c(),l(x)||mQ);if(C("dragSelectionStart",{selection:c(),items:OA}),OA){var gA=g().getJson();if(gA!==void 0){var zA=e2(gA,c()),xA=OA.findIndex(LA=>ri(LA.path,zA)),{offset:Me}=uG({json:gA,selection:g().getSelection(),deltaY:0,items:OA});y(E,{initialTarget:KA.target,initialClientY:KA.clientY,initialContentTop:V(),selectionStartIndex:xA,selectionItemsCount:sI(gA,c()).length,items:OA,offset:Me,didMoveItems:!1}),Eo(Eo().dragging=!0),document.addEventListener("mousemove",fA,!0),document.addEventListener("mouseup",EA)}}else C("Cannot drag the current selection (probably spread over multiple sections)")}else I()(KA)}}function fA(KA){if(l(E)){var tA=g().getJson();if(tA===void 0)return;var OA=j(l(E),KA),{offset:gA}=uG({json:tA,selection:g().getSelection(),deltaY:OA,items:l(E).items});gA!==l(E).offset&&(C("drag selection",gA,OA),y(E,pe(pe({},l(E)),{},{offset:gA,didMoveItems:!0})))}}function EA(KA){if(l(E)){var tA=g().getJson();if(tA===void 0)return;var OA=j(l(E),KA),{operations:gA,updatedSelection:zA}=uG({json:tA,selection:g().getSelection(),deltaY:OA,items:l(E).items});if(gA)g().onPatch(gA,(LA,cA)=>({state:cA,selection:zA??c()}));else if(KA.target===l(E).initialTarget&&!l(E).didMoveItems){var xA=oG(KA.target),Me=uaA(KA.target);Me&&g().onSelect(zrA(xA,Me))}y(E,void 0),Eo(Eo().dragging=!1),document.removeEventListener("mousemove",fA,!0),document.removeEventListener("mouseup",EA)}}function IA(KA){KA.shiftKey||(KA.stopPropagation(),KA.preventDefault(),g().onSelect(c2(l(u))))}function SA(KA){KA.shiftKey||(KA.stopPropagation(),KA.preventDefault(),g().onSelect(o2(l(u))))}function nA(KA){g().onSelect(c2(l(u))),to(),g().onContextMenu(KA)}function lA(KA){g().onSelect(o2(l(u))),to(),g().onContextMenu(KA)}pA(()=>k(n()),()=>{y(u,xs(n()))}),pA(()=>k(n()),()=>{y(A,encodeURIComponent(n()))}),pA(()=>k(r()),()=>{y(h,!!td(r())&&r().expanded)}),pA(()=>(k(o()),k(r())),()=>{y(w,t0(o(),r(),[]))}),pA(()=>k(r()),()=>{y(x,Rr(r())?r().visibleSections:void 0)}),pA(()=>k(s()),()=>{var KA;y(R,(KA=s())===null||KA===void 0?void 0:KA.validationError)}),pA(()=>(k(g()),k(c()),l(u)),()=>{y(D,nf(g().getJson(),c(),l(u)))}),pA(()=>l(u),()=>{y(i,l(u).length===0)}),ln(),qt(!0);var wA,VA,ie=$JA(),UA=W(ie),BA=KA=>{var tA=_JA(),OA=Mt(tA),gA=W(OA),zA=W(gA),xA=W(zA),Me=NA=>{Ui(NA,{get data(){return Nl}})},LA=NA=>{Ui(NA,{get data(){return uE}})};GA(xA,NA=>{l(h)?NA(Me):NA(LA,!1)});var cA=CA(zA,2);Po(cA,e,"identifier",{},null);var Gt=CA(cA,2),ct=NA=>{iA(NA,yJA())};GA(Gt,NA=>{l(i)||NA(ct)});var oe=CA(Gt,2),Dt=W(oe),_e=W(Dt),Re=NA=>{var MA=vJA();Sy(CA(Mt(MA),2),{children:(Ct,$e)=>{var XA=jr();we(()=>{var ot,Si;return pt(XA,"".concat((k(o()),(ot=oA(()=>o().length))!==null&&ot!==void 0?ot:""),` + `).concat((k(o()),(Si=oA(()=>o().length===1?"item":"items"))!==null&&Si!==void 0?Si:"")))}),iA(Ct,XA)},$$slots:{default:!0}}),iA(NA,MA)},St=NA=>{var MA=MJA();Sy(CA(Mt(MA),2),{onclick:J,children:(Ct,$e)=>{var XA=jr();we(()=>{var ot,Si;return pt(XA,"".concat((k(o()),(ot=oA(()=>o().length))!==null&&ot!==void 0?ot:""),` + `).concat((k(o()),(Si=oA(()=>o().length===1?"item":"items"))!==null&&Si!==void 0?Si:"")))}),iA(Ct,XA)},$$slots:{default:!0}}),iA(NA,MA)};GA(_e,NA=>{l(h)?NA(Re):NA(St,!1)});var Se=CA(oe,2),Wt=NA=>{var MA=bJA();P1(W(MA),{get root(){return l(i)},selected:!0,get onContextMenu(){return k(g()),oA(()=>g().onContextMenu)}}),iA(NA,MA)};GA(Se,NA=>{k(g()),l(D),k(c()),k(Vi),k(Gn),k(Sr),k(ri),k(nt),l(u),oA(()=>!g().readOnly&&l(D)&&c()&&(Vi(c())||Gn(c()))&&!Sr(c())&&ri(nt(c()),l(u)))&&NA(Wt)});var L=CA(gA,2),T=NA=>{wQ(NA,{get validationError(){return l(R)},onExpand:J})};GA(L,NA=>{l(R),l(h),oA(()=>l(R)&&(!l(h)||!l(R).isChildError))&&NA(T)});var P=CA(L,2),X=NA=>{var MA=kJA();ce("click",MA,IA),iA(NA,MA)},kA=NA=>{var MA=SJA();ce("click",MA,SA),iA(NA,MA)};GA(P,NA=>{l(h)?NA(X):NA(kA,!1)});var le=CA(OA,2),Ee=NA=>{var MA=FJA(),Ct=Mt(MA),$e=W(Ct),XA=Oi=>{var Le,zi,fi=RJA(),Ht=W(fi),Rt=ZA(()=>(l(D),k(yr),k(c()),oA(()=>l(D)&&yr(c()))));P1(Ht,{insert:!0,get selected(){return l(Rt)},onContextMenu:nA}),we((Bi,Mi)=>{Le=jt(fi,1,"jse-insert-area jse-inside svelte-oawf7x",null,Le,Bi),gn(fi,"title",aG),zi=eg(fi,"",zi,Mi)},[()=>({"jse-hovered":l(d)===zC,"jse-selected":l(D)&&yr(c())}),()=>({"--level":(l(u),oA(()=>l(u).length+1))})],ZA),iA(Oi,fi)};GA($e,Oi=>{k(g()),l(d),k(zC),l(D),k(yr),k(c()),oA(()=>!g().readOnly&&(l(d)===zC||l(D)&&yr(c())))&&Oi(XA)}),jo(CA($e,2),1,()=>l(x)||mQ,cr,(Oi,Le,zi)=>{var fi=xJA(),Ht=Mt(fi);jo(Ht,1,()=>(k(o()),l(Le),l(E),oA(()=>function(Mi,Jt,b){var et=Jt.start,ai=Math.min(Jt.end,Mi.length),Wi=N5(et,ai);return b&&b.offset!==0?yrA(Wi,b.selectionStartIndex,b.selectionItemsCount,b.offset).map((Xi,xn)=>({index:Xi,gutterIndex:xn})):Wi.map(Xi=>({index:Xi,gutterIndex:Xi}))}(o(),l(Le),l(E)))),Mi=>Mi.index,(Mi,Jt)=>{var b=_o(),et=ZA(()=>(k(Rr),k(s()),l(Jt),oA(()=>Rr(s())?s().items[l(Jt).index]:void 0))),ai=ZA(()=>(k(uy),k(g()),k(c()),l(u),l(Jt),oA(()=>uy(g().getJson(),c(),l(u).concat(String(l(Jt).index)))))),Wi=Mt(b),Xi=ZA(()=>(k(e4),k(n()),l(Jt),oA(()=>e4(n(),l(Jt).index)))),xn=ZA(()=>(k(Rr),k(r()),l(Jt),oA(()=>Rr(r())?r().items[l(Jt).index]:void 0))),Mo=ZA(()=>(k(Rr),k(a()),l(Jt),oA(()=>Rr(a())?a().items[l(Jt).index]:void 0)));jG(Wi,{get value(){return k(o()),l(Jt),oA(()=>o()[l(Jt).index])},get pointer(){return l(Xi)},get state(){return l(xn)},get validationErrors(){return l(et)},get searchResults(){return l(Mo)},get selection(){return l(ai)},get context(){return g()},onDragSelectionStart:dA,$$slots:{identifier:(vn,In)=>{var qo=LJA(),Vo=W(qo),uo=W(Vo);we(()=>pt(uo,(l(Jt),oA(()=>l(Jt).gutterIndex)))),iA(vn,qo)}}}),iA(Mi,b)});var Rt=CA(Ht,2),Bi=Mi=>{var Jt=ZA(()=>l(x)||mQ);uJA(Mi,{get visibleSections(){return l(Jt)},sectionIndex:zi,get total(){return k(o()),oA(()=>o().length)},get path(){return l(u)},get onExpandSection(){return k(g()),oA(()=>g().onExpandSection)},get selection(){return c()},get context(){return g()}})};GA(Rt,Mi=>{l(Le),k(o()),oA(()=>l(Le).end{var Le=NJA();ce("click",Le,SA),iA(Oi,Le)};GA(Si,Oi=>{l(i)||Oi(Zi)}),iA(NA,MA)};GA(le,NA=>{l(h)&&NA(Ee)}),ce("click",zA,G),iA(KA,tA)},JA=(KA,tA)=>{var OA=zA=>{var xA=jJA(),Me=Mt(xA),LA=W(Me),cA=W(LA),Gt=W(cA),ct=XA=>{Ui(XA,{get data(){return Nl}})},oe=XA=>{Ui(XA,{get data(){return uE}})};GA(Gt,XA=>{l(h)?XA(ct):XA(oe,!1)});var Dt=CA(cA,2);Po(Dt,e,"identifier",{},null);var _e=CA(Dt,2),Re=XA=>{iA(XA,GJA())};GA(_e,XA=>{l(i)||XA(Re)});var St=CA(_e,2),Se=W(St),Wt=W(Se),L=XA=>{iA(XA,KJA())},T=XA=>{var ot=UJA();Sy(CA(Mt(ot),2),{onclick:J,children:(Si,Zi)=>{var Oi=jr();we((Le,zi)=>pt(Oi,"".concat(Le??"",` + `).concat(zi??"")),[()=>(k(o()),oA(()=>Object.keys(o()).length)),()=>(k(o()),oA(()=>Object.keys(o()).length===1?"prop":"props"))],ZA),iA(Si,Oi)},$$slots:{default:!0}}),iA(XA,ot)};GA(Wt,XA=>{l(h)?XA(L):XA(T,!1)});var P=CA(St,2),X=XA=>{var ot=JJA();P1(W(ot),{get root(){return l(i)},selected:!0,get onContextMenu(){return k(g()),oA(()=>g().onContextMenu)}}),iA(XA,ot)};GA(P,XA=>{k(g()),l(D),k(c()),k(Vi),k(Gn),k(Sr),k(ri),k(nt),l(u),oA(()=>!g().readOnly&&l(D)&&c()&&(Vi(c())||Gn(c()))&&!Sr(c())&&ri(nt(c()),l(u)))&&XA(X)});var kA=CA(LA,2),le=XA=>{wQ(XA,{get validationError(){return l(R)},onExpand:J})};GA(kA,XA=>{l(R),l(h),oA(()=>l(R)&&(!l(h)||!l(R).isChildError))&&XA(le)});var Ee=CA(kA,2),NA=XA=>{var ot=YJA();ce("click",ot,IA),iA(XA,ot)},MA=(XA,ot)=>{var Si=Zi=>{var Oi=TJA();ce("click",Oi,SA),iA(Zi,Oi)};GA(XA,Zi=>{l(i)||Zi(Si)},ot)};GA(Ee,XA=>{l(h)?XA(NA):XA(MA,!1)});var Ct=CA(Me,2),$e=XA=>{var ot=PJA(),Si=Mt(ot),Zi=W(Si),Oi=Ht=>{var Rt,Bi,Mi=HJA(),Jt=W(Mi),b=ZA(()=>(l(D),k(yr),k(c()),oA(()=>l(D)&&yr(c()))));P1(Jt,{insert:!0,get selected(){return l(b)},onContextMenu:nA}),we((et,ai)=>{Rt=jt(Mi,1,"jse-insert-area jse-inside svelte-oawf7x",null,Rt,et),gn(Mi,"title",aG),Bi=eg(Mi,"",Bi,ai)},[()=>({"jse-hovered":l(d)===zC,"jse-selected":l(D)&&yr(c())}),()=>({"--level":(l(u),oA(()=>l(u).length+1))})],ZA),iA(Ht,Mi)};GA(Zi,Ht=>{k(g()),l(d),k(zC),l(D),k(yr),k(c()),oA(()=>!g().readOnly&&(l(d)===zC||l(D)&&yr(c())))&&Ht(Oi)}),jo(CA(Zi,2),1,()=>(k(o()),l(E),oA(()=>function(Ht,Rt){var Bi=Object.keys(Ht);return Rt&&Rt.offset!==0?yrA(Bi,Rt.selectionStartIndex,Rt.selectionItemsCount,Rt.offset):Bi}(o(),l(E)))),cr,(Ht,Rt)=>{var Bi=_o(),Mi=ZA(()=>(k(e4),k(n()),l(Rt),oA(()=>e4(n(),l(Rt))))),Jt=ZA(()=>(k(Ua),k(a()),l(Rt),oA(()=>Ua(a())?a().properties[l(Rt)]:void 0))),b=ZA(()=>(k(Ua),k(s()),l(Rt),oA(()=>Ua(s())?s().properties[l(Rt)]:void 0))),et=ZA(()=>(l(u),l(Rt),oA(()=>l(u).concat(l(Rt))))),ai=ZA(()=>(k(uy),k(g()),k(c()),k(l(et)),oA(()=>uy(g().getJson(),c(),l(et))))),Wi=Mt(Bi),Xi=ZA(()=>(k(Ua),k(r()),l(Rt),oA(()=>Ua(r())?r().properties[l(Rt)]:void 0)));jG(Wi,{get value(){return k(o()),l(Rt),oA(()=>o()[l(Rt)])},get pointer(){return l(Mi)},get state(){return l(Xi)},get validationErrors(){return l(b)},get searchResults(){return l(Jt)},get selection(){return l(ai)},get context(){return g()},onDragSelectionStart:dA,$$slots:{identifier:(xn,Mo)=>{var vn,In=OJA(),qo=W(In),Vo=ZA(()=>(k(XrA),k(l(Jt)),oA(()=>XrA(l(Jt)))));(function(uo,Qn){ft(Qn,!1);var Kn=$(void 0,!0),$A=$(void 0,!0),Ei=M(Qn,"pointer",9),Ri=M(Qn,"key",9),un=M(Qn,"selection",9),Un=M(Qn,"searchResultItems",9),Zo=M(Qn,"onUpdateKey",9),Ci=M(Qn,"context",9),io=$(void 0,!0);function Wo(re){l($A)||Ci().readOnly||(re.preventDefault(),Ci().onSelect(yK(l(io))))}function Xo(re,xe){var ue=Zo()(Ri(),Ci().normalization.unescapeValue(re)),aA=yi(l(io)).concat(ue);Ci().onSelect(xe===eI.nextInside?vi(aA):a2(aA)),xe!==eI.self&&Ci().focus()}function nr(){Ci().onSelect(a2(l(io))),Ci().focus()}pA(()=>k(Ei()),()=>{y(io,xs(Ei()))}),pA(()=>(k(un()),l(io)),()=>{y(Kn,Lr(un())&&ri(un().path,l(io)))}),pA(()=>(l(Kn),k(un())),()=>{y($A,l(Kn)&&Sr(un()))}),ln(),qt(!0);var on=mJA(),$i=Mt(on),yt=re=>{var xe=ZA(()=>(k(Ci()),k(Ri()),oA(()=>Ci().normalization.escapeValue(Ri())))),ue=ZA(()=>(k(Sr),k(un()),oA(()=>Sr(un())?un().initialValue:void 0)));kaA(re,{get value(){return l(xe)},get initialValue(){return l(ue)},label:"Edit key",shortText:!0,onChange:Xo,onCancel:nr,get onFind(){return k(Ci()),oA(()=>Ci().onFind)}})},hn=re=>{var xe,ue=fJA(),aA=W(ue),DA=Je=>{var vt=ZA(()=>(k(Ci()),k(Ri()),oA(()=>Ci().normalization.escapeValue(Ri()))));_aA(Je,{get text(){return l(vt)},get searchResultItems(){return Un()}})},PA=Je=>{var vt=jr();we(Yt=>pt(vt,Yt),[()=>(k(bQ),k(Ci()),k(Ri()),oA(()=>bQ(Ci().normalization.escapeValue(Ri()))))],ZA),iA(Je,vt)};GA(aA,Je=>{Un()?Je(DA):Je(PA,!1)}),we(Je=>xe=jt(ue,1,"jse-key svelte-2iqnqn",null,xe,Je),[()=>({"jse-empty":Ri()===""})],ZA),ce("dblclick",ue,Wo),iA(re,ue)};GA($i,re=>{k(Ci()),l($A),oA(()=>!Ci().readOnly&&l($A))?re(yt):re(hn,!1)});var hA=CA($i,2),Ae=re=>{P1(re,{selected:!0,get onContextMenu(){return k(Ci()),oA(()=>Ci().onContextMenu)}})};GA(hA,re=>{k(Ci()),l(Kn),l($A),oA(()=>!Ci().readOnly&&l(Kn)&&!l($A))&&re(Ae)}),iA(uo,on),mt()})(qo,{get pointer(){return l(Mi)},get key(){return l(Rt)},get selection(){return l(ai)},get searchResultItems(){return l(Vo)},get context(){return g()},onUpdateKey:z}),we(uo=>vn=jt(In,1,"jse-key-outer svelte-oawf7x",null,vn,uo),[()=>({"jse-selected-key":Lr(l(ai))&&ri(l(ai).path,l(et))})],ZA),iA(xn,In)}}}),iA(Ht,Bi)});var Le=CA(Si,2),zi=CA(W(Le),2),fi=Ht=>{var Rt=zJA();ce("click",Rt,SA),iA(Ht,Rt)};GA(zi,Ht=>{l(i)||Ht(fi)}),iA(XA,ot)};GA(Ct,XA=>{l(h)&&XA($e)}),ce("click",cA,G),iA(zA,xA)},gA=zA=>{var xA=WJA(),Me=W(xA),LA=W(Me);Po(LA,e,"identifier",{},null);var cA=CA(LA,2),Gt=P=>{iA(P,qJA())};GA(cA,P=>{l(i)||P(Gt)});var ct=CA(cA,2),oe=W(ct),Dt=ZA(()=>l(D)?c():void 0),_e=ZA(()=>(k($rA),k(a()),oA(()=>$rA(a()))));XaA(oe,{get path(){return l(u)},get value(){return o()},get enforceString(){return l(w)},get selection(){return l(Dt)},get searchResultItems(){return l(_e)},get context(){return g()}});var Re=CA(ct,2),St=P=>{var X=VJA();P1(W(X),{get root(){return l(i)},selected:!0,get onContextMenu(){return k(g()),oA(()=>g().onContextMenu)}}),iA(P,X)};GA(Re,P=>{k(g()),l(D),k(c()),k(Vi),k(Gn),k(Sr),k(ri),k(nt),l(u),oA(()=>!g().readOnly&&l(D)&&c()&&(Vi(c())||Gn(c()))&&!Sr(c())&&ri(nt(c()),l(u)))&&P(St)});var Se=CA(Me,2),Wt=P=>{wQ(P,{get validationError(){return l(R)},onExpand:J})};GA(Se,P=>{l(R)&&P(Wt)});var L=CA(Se,2),T=P=>{var X=ZJA();ce("click",X,SA),iA(P,X)};GA(L,P=>{l(i)||P(T)}),iA(zA,xA)};GA(KA,zA=>{k(nn),k(o()),oA(()=>nn(o()))?zA(OA):zA(gA,!1)},tA)};GA(UA,KA=>{k(o()),oA(()=>Array.isArray(o()))?KA(BA):KA(JA,!1)});var Xe=CA(UA,2),We=KA=>{var tA,OA=XJA(),gA=W(OA),zA=ZA(()=>(l(D),k(Ya),k(c()),oA(()=>l(D)&&Ya(c()))));P1(gA,{insert:!0,get selected(){return l(zA)},onContextMenu:lA}),we(xA=>{tA=jt(OA,1,"jse-insert-area jse-after svelte-oawf7x",null,tA,xA),gn(OA,"title",aG)},[()=>({"jse-hovered":l(d)===Ey,"jse-selected":l(D)&&Ya(c())})],ZA),iA(KA,OA)};GA(Xe,KA=>{k(g()),l(d),k(Ey),l(D),k(Ya),k(c()),oA(()=>!g().readOnly&&(l(d)===Ey||l(D)&&Ya(c())))&&KA(We)}),we((KA,tA,OA)=>{wA=jt(ie,1,KA,"svelte-oawf7x",wA,tA),gn(ie,"data-path",l(A)),gn(ie,"aria-selected",l(D)),VA=eg(ie,"",VA,OA)},[()=>rI((k(Vg),l(h),k(g()),l(u),k(o()),oA(()=>Vg("jse-json-node",{"jse-expanded":l(h)},g().onClassName(l(u),o()))))),()=>({"jse-root":l(i),"jse-selected":l(D)&&Gn(c()),"jse-selected-value":l(D)&&Vi(c()),"jse-readonly":g().readOnly,"jse-hovered":l(d)===krA}),()=>({"--level":(l(u),oA(()=>l(u).length))})],ZA),ce("mousedown",ie,function(KA){if((KA.buttons===1||KA.buttons===2)&&!((tA=KA.target).nodeName==="DIV"&&tA.contentEditable==="true"||KA.buttons===1&&EaA(KA.target,"BUTTON"))){var tA;KA.stopPropagation(),KA.preventDefault(),g().focus(),document.addEventListener("mousemove",K,!0),document.addEventListener("mouseup",O);var OA=oG(KA.target),gA=g().getJson(),zA=g().getDocumentState();if(!c()||OA===Ln.after||OA===Ln.inside||c().type!==OA&&c().type!==Ln.multi||!nf(gA,c(),l(u)))if(Eo(Eo().selecting=!0),Eo(Eo().selectionAnchor=l(u)),Eo(Eo().selectionAnchorType=OA),Eo(Eo().selectionFocus=l(u)),KA.shiftKey){var xA=g().getSelection();xA&&g().onSelect(Js(WC(xA),l(u)))}else if(OA===Ln.multi)if(l(i)&&KA.target.hasAttribute("data-path")){var Me=li(waA(o(),zA));g().onSelect(UG(Me))}else g().onSelect(Js(l(u),l(u)));else gA!==void 0&&g().onSelect(zrA(OA,l(u)));else KA.button===0&&I()(KA)}}),ce("mousemove",ie,function(KA){if(Eo().selecting){KA.preventDefault(),KA.stopPropagation(),Eo().selectionFocus===void 0&&window.getSelection&&window.getSelection().empty();var tA=oG(KA.target);ri(l(u),Eo().selectionFocus)&&tA===Eo().selectionAnchorType||(Eo(Eo().selectionFocus=l(u)),Eo(Eo().selectionAnchorType=tA),g().onSelect(Js(Eo().selectionAnchor||Eo().selectionFocus,Eo().selectionFocus)))}}),ce("mouseover",ie,function(KA){Eo().selecting||Eo().dragging||(KA.stopPropagation(),Z1(KA.target,"data-type","selectable-value")?y(d,krA):Z1(KA.target,"data-type","selectable-key")?y(d,void 0):Z1(KA.target,"data-type","insert-selection-area-inside")?y(d,zC):Z1(KA.target,"data-type","insert-selection-area-after")&&y(d,Ey),clearTimeout(B))}),ce("mouseout",ie,function(KA){KA.stopPropagation(),B=window.setTimeout(()=>y(d,void 0))}),iA(t,ie),mt()}var AYA={prefix:"fas",iconName:"jsoneditor-expand",icon:[512,512,[],"","M 0,448 V 512 h 512 v -64 z M 0,0 V 64 H 512 V 0 Z M 256,96 128,224 h 256 z M 256,416 384,288 H 128 Z"]},eYA={prefix:"fas",iconName:"jsoneditor-collapse",icon:[512,512,[],"","m 0,224 v 64 h 512 v -64 z M 256,192 384,64 H 128 Z M 256,320 128,448 h 256 z"]},lsA={prefix:"fas",iconName:"jsoneditor-format",icon:[512,512,[],"","M 0,32 v 64 h 416 v -64 z M 160,160 v 64 h 352 v -64 z M 160,288 v 64 h 288 v -64 z M 0,416 v 64 h 320 v -64 z"]},tYA={prefix:"fas",iconName:"jsoneditor-compact",icon:[512,512,[],"","M 0,32 v 64 h 512 v -64 z M 0,160 v 64 h 512 v -64 z M 0,288 v 64 h 352 v -64 z"]};function iYA(t,e){t.stopPropagation(),e.onCreateObject()}function nYA(t,e){t.stopPropagation(),e.onCreateArray()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-welcome.svelte-1eamlhk { + flex: 1; + overflow: auto; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + display: flex; + flex-direction: column; + align-items: center; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-welcome.svelte-1eamlhk:last-child { + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-welcome.svelte-1eamlhk .jse-space.jse-before:where(.svelte-1eamlhk) { + flex: 1; +} +.jse-welcome.svelte-1eamlhk .jse-space.jse-after:where(.svelte-1eamlhk) { + flex: 2; +} +.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) { + display: flex; + flex-direction: column; + max-width: 300px; + margin: 2em var(--jse-padding, 10px); + gap: var(--jse-padding, 10px); +} +.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) .jse-welcome-info:where(.svelte-1eamlhk) { + color: var(--jse-panel-color-readonly, #b2b2b2); +} +.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) button:where(.svelte-1eamlhk) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); + color: var(--jse-button-primary-color, #fff); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) button:where(.svelte-1eamlhk):hover { + background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); +} +.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) button:where(.svelte-1eamlhk):disabled { + background: var(--jse-button-primary-background-disabled, #9d9d9d); +}`);var oYA=(t,e)=>e.onClick(),rYA=vA('
You can paste clipboard data using Ctrl+V, or use the following options:
',1),sYA=vA('
Empty document
');function qG(t,e){var A=typeof t=="string"?t.toLowerCase():t,i=typeof e=="string"?e.toLowerCase():e;return(0,QsA.default)(A,i)}function $aA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,n=Ye(t,e);if(wo(n)){if(A===void 0)throw new Error("Cannot sort: no property selected by which to sort the array");return function(o){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,c=function(I,C){var d={boolean:0,number:1,string:2,undefined:4},B=3;return function(E,u){var h=Ye(E,I),w=Ye(u,I);if(typeof h!=typeof w){var x,R,D=(x=d[typeof h])!==null&&x!==void 0?x:B,G=(R=d[typeof w])!==null&&R!==void 0?R:B;return D>G?C:Dw?C:h1&&arguments[1]!==void 0?arguments[1]:[],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,a=Ye(o,r),c=Object.keys(a).slice();c.sort((I,C)=>s*qG(I,C));var g={};return c.forEach(I=>g[I]=a[I]),[{op:"replace",path:It(r),value:g}]}(t,e,i);throw new Error("Cannot sort: no array or object")}df(["click"]);Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-navigation-bar-dropdown.svelte-2nnd2m { + position: absolute; + top: 100%; + left: 0; + z-index: 3; + background: var(--jse-navigation-bar-background, var(--jse-background-color, #fff)); + color: var(--jse-navigation-bar-dropdown-color, #656565); + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); + display: flex; + flex-direction: column; + max-height: 300px; + overflow: auto; + min-width: 80px; +} +.jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item:where(.svelte-2nnd2m) { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + border: none; + background: transparent; + color: inherit; + cursor: pointer; + outline: none; + text-align: left; + white-space: nowrap; + box-sizing: border-box; + padding: calc(0.5 * var(--jse-padding, 10px)) 36px; +} +.jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item:where(.svelte-2nnd2m):focus, .jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item:where(.svelte-2nnd2m):hover { + background: var(--jse-navigation-bar-background-highlight, #e5e5e5); +} +.jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item.jse-selected:where(.svelte-2nnd2m) { + background: var(--jse-navigation-bar-dropdown-color, #656565); + color: var(--jse-navigation-bar-background, var(--jse-background-color, #fff)); +}`);var aYA=vA(''),cYA=vA(''),gYA=vA('
');function lYA(t,e){ft(e,!1);var A=M(e,"items",9),i=M(e,"selectedItem",9),n=M(e,"onSelect",9);qt(!0);var o=gYA(),r=W(o);jo(r,1,()=>(k(_y),k(A()),oA(()=>_y(A(),100))),c=>c,(c,g)=>{var I,C=aYA(),d=W(C);we((B,E,u)=>{I=jt(C,1,"jse-navigation-bar-dropdown-item svelte-2nnd2m",null,I,B),gn(C,"title",E),pt(d,u)},[()=>({"jse-selected":l(g)===i()}),()=>(l(g),oA(()=>l(g).toString())),()=>(k(X0),l(g),oA(()=>X0(l(g).toString(),30)))],ZA),ce("click",C,Z0(()=>n()(l(g)))),iA(c,C)});var s=CA(r,2),a=c=>{var g=cYA();gn(g,"title","Limited to 100 items"),iA(c,g)};GA(s,c=>{k(A()),oA(()=>A().length>100)&&c(a)}),iA(t,o),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-navigation-bar-item.svelte-752ro1 { + position: relative; + display: flex; +} +.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button:where(.svelte-752ro1) { + font-family: inherit; + font-size: inherit; + padding: calc(0.5 * var(--jse-padding, 10px)) 2px; + border: none; + background: transparent; + color: inherit; + cursor: pointer; + outline: none; + min-width: 2em; + white-space: nowrap; +} +.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button:where(.svelte-752ro1):focus, .jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button:where(.svelte-752ro1):hover { + background: var(--jse-panel-button-background-highlight, #e0e0e0); + color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); +} +.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button.jse-navigation-bar-arrow:where(.svelte-752ro1) { + padding: 2px var(--jse-padding, 10px) 0; +} +.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button.jse-navigation-bar-arrow.jse-open:where(.svelte-752ro1) { + background: var(--jse-navigation-bar-background, var(--jse-background-color, #fff)); + color: var(--jse-navigation-bar-dropdown-color, #656565); +} +.jse-navigation-bar-item.svelte-752ro1:last-child { + padding-right: var(--jse-padding, 10px); +}`);var IYA=vA(''),CYA=vA('
');function IsA(t,e){ft(e,!1);var A,i=$(void 0,!0),n=$(void 0,!0),{openAbsolutePopup:o,closeAbsolutePopup:r}=cI("absolute-popup"),s=M(e,"path",9),a=M(e,"index",9),c=M(e,"onSelect",9),g=M(e,"getItems",9),I=$(void 0,!0),C=$(!1,!0);function d(x){r(A),c()(l(i).concat(x))}pA(()=>(k(s()),k(a())),()=>{y(i,s().slice(0,a()))}),pA(()=>(k(s()),k(a())),()=>{y(n,s()[a()])}),ln(),qt(!0);var B,E=CYA(),u=W(E);Ui(W(u),{get data(){return nL}});var h=CA(u,2),w=x=>{var R=IYA(),D=W(R);we(()=>pt(D,l(n))),ce("click",R,()=>d(l(n))),iA(x,R)};GA(h,x=>{l(n)!==void 0&&x(w)}),Qo(E,x=>y(I,x),()=>l(I)),we(x=>B=jt(u,1,"jse-navigation-bar-button jse-navigation-bar-arrow svelte-752ro1",null,B,x),[()=>({"jse-open":l(C)})],ZA),ce("click",u,function(){if(l(I)){y(C,!0);var x={items:g()(l(i)),selectedItem:l(n),onSelect:d};A=o(lYA,x,{anchor:l(I),closeOnOuterClick:!0,onClose:()=>{y(C,!1)}})}}),iA(t,E),mt()}function RK(t){var e,A;if(navigator.clipboard)return navigator.clipboard.writeText(t);if((e=(A=document).queryCommandSupported)!==null&&e!==void 0&&e.call(A,"copy")){var i=document.createElement("textarea");i.value=t,i.style.position="fixed",i.style.opacity="0",document.body.appendChild(i),i.select();try{document.execCommand("copy")}catch(n){console.error(n)}finally{document.body.removeChild(i)}return Promise.resolve()}return console.error("Copy failed."),Promise.resolve()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-navigation-bar-path-editor.svelte-zc2wx7 { + flex: 1; + display: flex; + border: var(--jse-edit-outline, 2px solid #656565); + background: var(--jse-background-color, #fff); +} +.jse-navigation-bar-path-editor.svelte-zc2wx7 input.jse-navigation-bar-text:where(.svelte-zc2wx7) { + flex: 1; + font-family: inherit; + font-size: inherit; + padding: 0 5px 1px; + background: var(--jse-background-color, #fff); + color: var(--jse-text-color, #4d4d4d); + border: none; + outline: none; +} +.jse-navigation-bar-path-editor.svelte-zc2wx7 button:where(.svelte-zc2wx7) { + border: none; + background: var(--jse-background-color, #fff); + cursor: pointer; + font-family: inherit; + font-size: 80%; + color: inherit; +} +.jse-navigation-bar-path-editor.svelte-zc2wx7 button.jse-navigation-bar-copy.copied:where(.svelte-zc2wx7) { + color: var(--message-success-background, #9ac45d); +} +.jse-navigation-bar-path-editor.svelte-zc2wx7 button.jse-navigation-bar-validation-error:where(.svelte-zc2wx7) { + color: var(--jse-error-color, #ee5341); +} +.jse-navigation-bar-path-editor.error.svelte-zc2wx7 { + border-color: var(--jse-error-color, #ee5341); +} +.jse-navigation-bar-path-editor.error.svelte-zc2wx7 input.jse-navigation-bar-text:where(.svelte-zc2wx7) { + color: var(--jse-error-color, #ee5341); +} +.jse-navigation-bar-path-editor.svelte-zc2wx7 .jse-copied-text:where(.svelte-zc2wx7) { + background: var(--message-success-background, #9ac45d); + color: var(--jse-message-success-color, #fff); + position: relative; + margin: 2px; + padding: 0 5px; + border-radius: 3px; +}`);var dYA=vA(''),BYA=vA('
Copied!
'),EYA=vA('
');function QYA(t,e){ft(e,!1);var A=$(),i=cI("absolute-popup"),n=M(e,"path",8),o=M(e,"pathParser",8),r=M(e,"onChange",8),s=M(e,"onClose",8),a=M(e,"onError",8),c=M(e,"pathExists",8),g=$(),I=$(),C=$(!1),d=void 0,B=$(!1);function E(){l(g).focus()}function u(O){try{var V=o().parse(O);return function(j){if(!c()(j))throw new Error("Path does not exist in current document")}(V),{path:V,error:void 0}}catch(j){return{path:void 0,error:j}}}ws(()=>{E()}),ig(()=>{clearTimeout(d)}),pA(()=>(k(o()),k(n())),()=>{y(I,o().stringify(n()))}),pA(()=>(l(C),l(I)),()=>{y(A,l(C)?u(l(I)).error:void 0)}),ln(),qt();var h,w=EYA(),x=W(w);Qo(x,O=>y(g,O),()=>l(g));var R=CA(x,2),D=O=>{var V=dYA();Ui(W(V),{get data(){return m1}}),Ts(V,(j,dA)=>RQ?.(j,dA),()=>pe({text:String(l(A)||"")},i)),iA(O,V)};GA(R,O=>{l(A)&&O(D)});var G=CA(R,2),J=O=>{iA(O,BYA())};GA(G,O=>{l(B)&&O(J)});var z,K=CA(G,2);Ui(W(K),{get data(){return G0}}),we((O,V)=>{h=jt(w,1,"jse-navigation-bar-path-editor svelte-zc2wx7",null,h,O),ed(x,l(I)),z=jt(K,1,"jse-navigation-bar-copy svelte-zc2wx7",null,z,V)},[()=>({error:l(A)}),()=>({copied:l(B)})],ZA),ce("keydown",x,Z0(function(O){var V=s2(O);if(V==="Escape"&&(O.preventDefault(),s()()),V==="Enter"){O.preventDefault(),y(C,!0);var j=u(l(I));j.path!==void 0?r()(j.path):a()(j.error)}})),ce("input",x,function(O){y(I,O.currentTarget.value)}),ce("click",K,function(){RK(l(I)),y(B,!0),d=window.setTimeout(()=>y(B,!1),1e3),E()}),iA(t,w),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-navigation-bar.svelte-xs03gj { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + background: var(--jse-panel-background, #ebebeb); + color: var(--jse-panel-button-color, inherit); + padding: 0; + margin: 0; + display: flex; + overflow: auto; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj) { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); + color: var(--jse-panel-color-readonly, #b2b2b2); + background: transparent; + border: none; + display: flex; + cursor: pointer; + outline: none; + align-items: center; +} +.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit.flex:where(.svelte-xs03gj) { + flex: 1; +} +.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj):focus, .jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj):hover, .jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit.editing:where(.svelte-xs03gj) { + background: var(--jse-panel-button-background-highlight, #e0e0e0); + color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); + transition: color 0.2s ease-in, background 0.2s ease-in; +} +.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj) .jse-navigation-bar-space:where(.svelte-xs03gj) { + flex: 1; + text-align: left; +}`);var uYA=vA(" ",1),hYA=vA('
');function fYA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=xr("jsoneditor:NavigationBar"),o=M(e,"json",9),r=M(e,"selection",9),s=M(e,"onSelect",9),a=M(e,"onError",9),c=M(e,"pathParser",9),g=$(void 0,!0),I=$(!1,!0);function C(V){n("get items for path",V);var j=Ye(o(),V);if(Array.isArray(j))return N5(0,j.length).map(String);if(nn(j)){var dA=Object.keys(j).slice(0);return dA.sort(qG),dA}return[]}function d(V){return As(o(),V)}function B(V){n("select path",JSON.stringify(V)),s()(Js(V,V))}function E(){y(I,!1)}function u(V){E(),B(V)}pA(()=>(k(r()),nt),()=>{y(A,r()?nt(r()):[])}),pA(()=>(k(o()),l(A)),()=>{y(i,Fo(Ye(o(),l(A))))}),pA(()=>l(A),()=>{l(A),setTimeout(()=>{if(l(g)&&l(g).scrollTo){var V=l(g).scrollWidth-l(g).clientWidth;V>0&&(n("scrollTo ",V),l(g).scrollTo({left:V,behavior:"smooth"}))}})}),ln(),qt(!0);var h=hYA(),w=W(h),x=V=>{var j=uYA(),dA=Mt(j);jo(dA,1,()=>l(A),cr,(IA,SA,nA)=>{IsA(IA,{getItems:C,get path(){return l(A)},index:nA,onSelect:B})});var fA=CA(dA,2),EA=IA=>{IsA(IA,{getItems:C,get path(){return l(A)},get index(){return l(A),oA(()=>l(A).length)},onSelect:B})};GA(fA,IA=>{l(i)&&IA(EA)}),iA(V,j)},R=V=>{QYA(V,{get path(){return l(A)},onClose:E,onChange:u,get onError(){return a()},pathExists:d,get pathParser(){return c()}})};GA(w,V=>{l(I)?V(R,!1):V(x)});var D,G=CA(w,2),J=W(G),z=W(J),K=CA(J,2),O=ZA(()=>l(I)?yX:EX);Ui(K,{get data(){return l(O)}}),Qo(h,V=>y(g,V),()=>l(g)),we((V,j)=>{D=jt(G,1,"jse-navigation-bar-edit svelte-xs03gj",null,D,V),gn(G,"title",l(I)?"Cancel editing the selected path":"Edit the selected path"),pt(z,j)},[()=>({flex:!l(I),editing:l(I)}),()=>(k(Fo),k(o()),l(I),oA(()=>Fo(o())||l(I)?"\xA0":"Navigation bar"))],ZA),ce("click",G,function(){y(I,!l(I))}),iA(t,h),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-search-box.svelte-1mxl2uo { + border: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); + border-radius: 3px; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + background: var(--jse-panel-background, #ebebeb); + color: var(--jse-panel-color-readonly, #b2b2b2); + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); + display: inline-block; + width: 400px; + max-width: 100%; + overflow: auto; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) { + display: flex; + align-items: stretch; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo), +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) input:where(.svelte-1mxl2uo) { + font-family: inherit; + font-size: inherit; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo) { + display: block; + text-align: center; + border: none; + padding: 0 5px; + margin: 0; + cursor: pointer; + color: var(--jse-panel-button-color, inherit); + background: var(--jse-panel-button-background, transparent); +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo):hover { + color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); + background: var(--jse-panel-button-background-highlight, #e0e0e0); +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) input:where(.svelte-1mxl2uo) { + color: var(--jse-panel-color, var(--jse-text-color, #4d4d4d)); + border: var(--jse-input-border, 1px solid #d8dbdf); + border-radius: 3px; + background: var(--jse-input-background, var(--jse-background-color, #fff)); + height: 28px; + padding: 0 5px; + margin: 0; + flex: 1; + width: 0; + min-width: 50px; + outline: none; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-replace-toggle:where(.svelte-1mxl2uo) { + padding: var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)); + min-width: 20px; + background: var(--jse-panel-button-background-highlight, #e0e0e0); +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) { + flex: 1; + display: flex; + flex-direction: column; + padding: calc(0.5 * var(--jse-padding, 10px)); + gap: calc(0.5 * var(--jse-padding, 10px)); +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) { + flex: 1; + display: flex; + align-items: center; + position: relative; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) .jse-search-icon:where(.svelte-1mxl2uo) { + color: inherit; + cursor: inherit; + background: inherit; + width: 32px; + text-align: center; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) label.jse-search-input-label:where(.svelte-1mxl2uo) { + flex: 1; + display: flex; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) .jse-search-count:where(.svelte-1mxl2uo) { + color: inherit; + font-size: 80%; + visibility: hidden; + padding: 0 5px; + min-width: 36px; + text-align: center; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) .jse-search-count.jse-visible:where(.svelte-1mxl2uo) { + visibility: visible; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-replace-section:where(.svelte-1mxl2uo) { + flex: 1; + display: flex; + padding-left: 32px; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-replace-section:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo) { + width: auto; +}`);var mYA=vA(''),pYA=vA('
'),DYA=vA('');function AcA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=xr("jsoneditor:SearchBox"),r=M(e,"json",9),s=M(e,"documentState",9),a=M(e,"parser",9),c=M(e,"showSearch",9),g=M(e,"showReplace",13),I=M(e,"readOnly",9),C=M(e,"columns",9),d=M(e,"onSearch",9),B=M(e,"onFocus",9),E=M(e,"onPatch",9),u=M(e,"onClose",9),h=$("",!0),w="",x=$("",!0),R=$(!1,!0),D=$(void 0,!0),G=EE(function(xA){return JA.apply(this,arguments)},300),J=EE(function(xA){return Xe.apply(this,arguments)},300);function z(){g(!g()&&!I())}function K(xA){xA.stopPropagation();var Me=s2(xA);Me==="Enter"&&(xA.preventDefault(),l(h)!==w?G.flush():nA()),Me==="Shift+Enter"&&(xA.preventDefault(),wA()),Me==="Ctrl+Enter"&&(xA.preventDefault(),g()?dA():nA()),Me==="Ctrl+H"&&(xA.preventDefault(),z()),Me==="Escape"&&(xA.preventDefault(),tA())}function O(xA){s2(xA)==="Enter"&&(xA.preventDefault(),xA.stopPropagation(),dA())}function V(){return j.apply(this,arguments)}function j(){return(j=_t(function*(){to(),yield G.flush()})).apply(this,arguments)}function dA(){return fA.apply(this,arguments)}function fA(){return(fA=_t(function*(){var xA;if(!I()){var Me=(xA=l(D))===null||xA===void 0?void 0:xA.activeItem;if(o("handleReplace",{replaceText:l(x),activeItem:Me}),l(D)&&Me&&r()!==void 0){y(D,pe(pe({},jrA(l(D))),{},{activeIndex:l(i)}));var{operations:LA,newSelection:cA}=FKA(r(),s(),l(x),Me,a());E()(LA,(Gt,ct)=>({state:ct,selection:cA})),to(),yield J.flush(),yield ie()}}})).apply(this,arguments)}function EA(){return IA.apply(this,arguments)}function IA(){return(IA=_t(function*(){if(!I()){o("handleReplaceAll",{text:l(h),replaceText:l(x)});var{operations:xA,newSelection:Me}=function(LA,cA,Gt,ct,oe){for(var Dt=qrA(Gt,LA,{maxResults:1/0}),_e=[],Re=0;ReT.field!==P.field?T.field===zg.key?1:-1:P.path.length-T.path.length);var Wt,L=[];return _e.forEach(T=>{var{field:P,path:X,items:kA}=T;if(P===zg.key){var le=yi(X),Ee=Ye(LA,le),NA=li(X),MA=ff(le,Object.keys(Ee),NA,ZrA(NA,ct,kA));L=L.concat(MA),Wt=SQ(LA,MA)}else{if(P!==zg.value)throw new Error("Cannot replace: unknown type of search result field ".concat(P));var Ct=Ye(LA,X);if(Ct===void 0)throw new Error("Cannot replace: path not found ".concat(It(X)));var $e=typeof Ct=="string"?Ct:String(Ct),XA=t0(LA,cA,X),ot=ZrA($e,ct,kA),Si=[{op:"replace",path:It(X),value:XA?ot:GQ(ot,oe)}];L=L.concat(Si),Wt=SQ(LA,Si)}}),{operations:L,newSelection:Wt}}(r(),s(),l(h),l(x),a());E()(xA,(LA,cA)=>({state:cA,selection:Me})),yield ie()}})).apply(this,arguments)}function SA(xA){xA.select()}function nA(){return lA.apply(this,arguments)}function lA(){return(lA=_t(function*(){y(D,l(D)?jrA(l(D)):void 0),yield ie()})).apply(this,arguments)}function wA(){return VA.apply(this,arguments)}function VA(){return VA=_t(function*(){y(D,l(D)?function(xA){var Me=xA.activeIndex>0?xA.activeIndex-1:xA.items.length-1,LA=xA.items[Me],cA=xA.items.map((Gt,ct)=>pe(pe({},Gt),{},{active:ct===Me}));return pe(pe({},xA),{},{items:cA,activeItem:LA,activeIndex:Me})}(l(D)):void 0),yield ie()}),VA.apply(this,arguments)}function ie(){return UA.apply(this,arguments)}function UA(){return(UA=_t(function*(){var xA;o("handleFocus",l(D));var Me=(xA=l(D))===null||xA===void 0?void 0:xA.activeItem;Me&&r()!==void 0&&(yield B()(Me.path,Me.resultIndex))})).apply(this,arguments)}function BA(){return BA=_t(function*(xA){yield We(xA,l(h),r())}),BA.apply(this,arguments)}function JA(){return JA=_t(function*(xA){yield We(c(),xA,r()),yield ie()}),JA.apply(this,arguments)}function Xe(){return Xe=_t(function*(xA){yield We(c(),l(h),xA)}),Xe.apply(this,arguments)}function We(xA,Me,LA){return KA.apply(this,arguments)}function KA(){return KA=_t(function*(xA,Me,LA){return xA?(o("applySearch",{showSearch:xA,text:Me}),Me===""?(o("clearing search result"),l(D)!==void 0&&y(D,void 0),Promise.resolve()):(w=Me,y(R,!0),new Promise(cA=>{setTimeout(()=>{var Gt=qrA(Me,LA,{maxResults:rG,columns:C()});y(D,function(ct,oe){var Dt=oe!=null&&oe.activeItem?WrA(oe.activeItem):void 0,_e=ct.findIndex(Se=>ri(Dt,WrA(Se))),Re=_e!==-1?_e:oe?.activeIndex!==void 0&&oe?.activeIndex0?0:-1,St=ct.map((Se,Wt)=>pe(pe({resultIndex:Wt},Se),{},{active:Wt===Re}));return{items:St,activeItem:St[Re],activeIndex:Re}}(Gt,l(D))),y(R,!1),cA()})}))):(l(D)&&y(D,void 0),Promise.resolve())}),KA.apply(this,arguments)}function tA(){o("handleClose"),G.cancel(),J.cancel(),We(!1,l(h),r()),u()()}pA(()=>l(D),()=>{var xA;y(A,((xA=l(D))===null||xA===void 0||(xA=xA.items)===null||xA===void 0?void 0:xA.length)||0)}),pA(()=>l(D),()=>{var xA;y(i,((xA=l(D))===null||xA===void 0?void 0:xA.activeIndex)||0)}),pA(()=>(l(A),rG),()=>{y(n,l(A)>=rG?"".concat(999,"+"):String(l(A)))}),pA(()=>(k(d()),l(D)),()=>{d()(l(D))}),pA(()=>k(c()),()=>{(function(xA){BA.apply(this,arguments)})(c())}),pA(()=>l(h),()=>{G(l(h))}),pA(()=>k(r()),()=>{J(r())}),ln(),qt(!0);var OA=_o(),gA=Mt(OA),zA=xA=>{var Me=DYA(),LA=W(Me),cA=W(LA),Gt=NA=>{var MA=mYA(),Ct=W(MA),$e=ZA(()=>g()?Nl:uE);Ui(Ct,{get data(){return l($e)}}),ce("click",MA,z),iA(NA,MA)};GA(cA,NA=>{I()||NA(Gt)});var ct=W(CA(cA,2)),oe=W(ct),Dt=W(oe),_e=NA=>{Ui(NA,{get data(){return CX},spin:!0})},Re=NA=>{Ui(NA,{get data(){return u4}})};GA(Dt,NA=>{l(R)?NA(_e):NA(Re,!1)});var St=CA(oe,2),Se=W(St);rs(()=>Fy(Se,()=>l(h),NA=>y(h,NA))),Ts(Se,NA=>SA?.(NA)),rs(()=>ce("paste",Se,V));var Wt,L=CA(St,2),T=W(L),P=CA(L,2);Ui(W(P),{get data(){return DX}});var X=CA(P,2);Ui(W(X),{get data(){return QX}});var kA=CA(X,2);Ui(W(kA),{get data(){return h4}});var le=CA(ct,2),Ee=NA=>{var MA=pYA(),Ct=W(MA),$e=CA(Ct,2),XA=CA($e,2);Fy(Ct,()=>l(x),ot=>y(x,ot)),ce("keydown",Ct,O),ce("click",$e,dA),ce("click",XA,EA),iA(NA,MA)};GA(le,NA=>{g()&&!I()&&NA(Ee)}),we(NA=>{var MA;Wt=jt(L,1,"jse-search-count svelte-1mxl2uo",null,Wt,NA),pt(T,"".concat(l(i)!==-1&&l(i)({"jse-visible":l(h)!==""})],ZA),ce("click",P,nA),ce("click",X,wA),ce("click",kA,tA),ce("keydown",LA,K),iA(xA,Me)};GA(gA,xA=>{c()&&xA(zA)}),iA(t,OA),mt()}var af=Symbol("path");function wYA(t,e){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1/0,i={};Array.isArray(t)&&function(o,r,s){if(o.length1?(o.length-1)/(r-1):o.length,c=0;c{nn(o)?ecA(o,i,e):i[af]=!0});var n=[];return af in i&&n.push([]),tcA(i,[],n,e),n}function ecA(t,e,A){for(var i in t){var n=t[i],o=e[i]||(e[i]={});nn(n)&&A?ecA(n,o,A):o[af]===void 0&&(o[af]=!0)}}function tcA(t,e,A,i){for(var n in t){var o=e.concat(n),r=t[n];r&&r[af]===!0&&A.push(o),Lo(r)&&i&&tcA(r,o,A,i)}}function yYA(t,e,A,i,n,o){for(var r=arguments.length>6&&arguments[6]!==void 0?arguments[6]:80,s=wo(A)?A.length:0,a=function(w,x){var R=Object.values(w);if(Gi(R))return x;var D=(G,J)=>G+J;return R.reduce(D)/R.length}(i,n),c=t-r,g=e+2*r,I=w=>i[w]||n,C=0,d=o;d0&&(d-=I(--C));for(var B=C,E=0;En0(i,o))}}function PC(t,e){var{rowIndex:A,columnIndex:i}=t;return[String(A),...e[i]]}function vYA(t,e){var[A,i]=jR(t,r=>cK(r.path[0])),n=zR(A,MYA),o=PR(n,r=>{var s={row:[],columns:{}};return r.forEach(a=>{var c=function(g,I){var C=Xc(g.path,I);return C.columnIndex!==-1?C.columnIndex:-1}(a,e);c!==-1?(s.columns[c]===void 0&&(s.columns[c]=[]),s.columns[c].push(a)):s.row.push(a)}),s});return{root:i,rows:o}}function lQ(t,e){if(e&&e.length!==0)return e.length===1?e[0]:{path:t,message:"Multiple validation issues: "+e.map(A=>Ta(A.path)+" "+A.message).join(", "),severity:Og.warning}}function MYA(t){return parseInt(t.path[0],10)}function bYA(t,e,A){var i=e.some(n=>function(o,r,s){if(!o)return!1;if(r.op==="replace"){var a=xs(r.path),{rowIndex:c,columnIndex:g}=Xc(a,s),I=s.findIndex(C=>ri(C,o.path));if(c!==-1&&g!==-1&&g!==I)return!1}return!0}(t,n,A));return i?void 0:t}var Ys=xr("jsoneditor:actions");function icA(t){return VG.apply(this,arguments)}function VG(){return VG=_t(function*(t){var{json:e,selection:A,indentation:i,readOnly:n,parser:o,onPatch:r}=t;if(!n&&e!==void 0&&A&&uQ(A)){var s=MaA(e,A,i,o);if(s!==void 0){Ys("cut",{selection:A,clipboard:s,indentation:i}),yield RK(s);var{operations:a,newSelection:c}=xaA(e,A);r(a,(g,I)=>({state:I,selection:c}))}}}),VG.apply(this,arguments)}function ncA(t){return ZG.apply(this,arguments)}function ZG(){return ZG=_t(function*(t){var{json:e,selection:A,indentation:i,parser:n}=t,o=MaA(e,A,i,n);o!==void 0&&(Ys("copy",{clipboard:o,indentation:i}),yield RK(o))}),ZG.apply(this,arguments)}function ocA(t){var{clipboardText:e,json:A,selection:i,readOnly:n,parser:o,onPatch:r,onChangeText:s,onPasteMultilineText:a,openRepairModal:c}=t;if(!n)try{g(e)}catch{c(e,C=>{Ys("repaired pasted text: ",C),g(C)})}function g(I){if(A!==void 0){var C=i||vi([]),d=LaA(A,C,I,o),B=function(E,u,h){var w=arguments.length>3&&arguments[3]!==void 0?arguments[3]:MKA;if(E.length>w)return!1;var x=/\n/.test(E);if(!x)return!1;var R=u.some(G=>G.op==="replace"&&Array.isArray(G.value)),D=u.filter(G=>G.op==="add").length>1;if(!R&&!D)return!1;try{return Ef(E,h.parse),!1}catch{return!0}}(e,d,o);Ys("paste",{pastedText:I,operations:d,ensureSelection:C,pasteMultilineText:B}),r(d,(E,u)=>{var h=u;return d.filter(w=>(fR(w)||V8(w))&&Fo(w.value)).forEach(w=>{var x=ba(A,w.path);h=id(E,h,x)}),{state:h}}),B&&a(I)}else Ys("paste text",{pastedText:I}),s(e,(E,u)=>{if(E)return{state:id(E,u,[])}})}}function rcA(t){var{json:e,text:A,selection:i,keepSelection:n,readOnly:o,onChange:r,onPatch:s}=t;if(!o&&i){var a=e!==void 0&&(Lr(i)||Vi(i))?Js(i.path,i.path):i;if(Gi(nt(i)))Ys("remove root",{selection:i}),r&&r({text:"",json:void 0},e!==void 0?{text:void 0,json:e}:{text:A||"",json:e},{contentErrors:void 0,patchResult:void 0});else if(e!==void 0){var{operations:c,newSelection:g}=xaA(e,a);Ys("remove",{operations:c,selection:i,newSelection:g}),s(c,(I,C)=>({state:C,selection:n?i:g}))}}}function Zy(t){var{insertType:e,selectInside:A,initialValue:i,json:n,selection:o,readOnly:r,parser:s,onPatch:a,onReplaceJson:c}=t;if(!r){var g=function(E,u,h){if(h==="object")return{};if(h==="array")return[];if(h==="structure"&&E!==void 0){var w=u?yaA(u):[],x=Ye(E,w);if(Array.isArray(x)&&!Gi(x)){var R=Tc(x);return Fo(R)?YR(R,D=>Array.isArray(D)?[]:nn(D)?void 0:""):""}}return""}(n,o,e);if(n!==void 0){var I=s.stringify(g),C=LaA(n,o,I,s);Ys("onInsert",{insertType:e,operations:C,newValue:g,data:I});var d=li(C.filter(E=>E.op==="add"||E.op==="replace"));a(C,(E,u,h)=>{if(d){var w=ba(E,d.path);if(Fo(g))return{state:Yg(E,u,w,wK),selection:A?c2(w):h};if(g===""){var x=Gi(w)?void 0:Ye(E,yi(w));return{state:Yg(E,u,w,by),selection:nn(x)?yK(w,i):Yy(w,i)}}}}),Ys("after patch")}else{Ys("onInsert",{insertType:e,newValue:g});var B=[];c(g,(E,u)=>({state:id(E,u,B),selection:Fo(g)?c2(B):Yy(B)}))}}}function scA(t){return WG.apply(this,arguments)}function WG(){return WG=_t(function*(t){var{char:e,selectInside:A,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a,onSelect:c}=t;o||(Lr(n)?c(pe(pe({},n),{},{edit:!0,initialValue:e})):e==="{"?Zy({insertType:"object",selectInside:A,initialValue:void 0,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a}):e==="["?Zy({insertType:"array",selectInside:A,initialValue:void 0,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a}):Vi(n)&&i!==void 0?Fo(Ye(i,n.path))||c(pe(pe({},n),{},{edit:!0,initialValue:e})):(Ys("onInsertValueWithCharacter",{char:e}),yield function(g){return XG.apply(this,arguments)}({char:e,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a})))}),WG.apply(this,arguments)}function XG(){return XG=_t(function*(t){var{char:e,json:A,selection:i,readOnly:n,parser:o,onPatch:r,onReplaceJson:s}=t;n||Zy({insertType:"value",selectInside:!1,initialValue:e,json:A,selection:i,readOnly:n,parser:o,onPatch:r,onReplaceJson:s})}),XG.apply(this,arguments)}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-json-preview.svelte-1vjn89h { + flex: 1; + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + color: var(--jse-panel-color-readonly, #b2b2b2); + overflow: auto; + white-space: pre-wrap; + padding: 2px; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +}`);var kYA=vA('
');function acA(t,e){ft(e,!1);var A=$(),i=$(),n=M(e,"text",8),o=M(e,"json",8),r=M(e,"indentation",8),s=M(e,"parser",8);pA(()=>(k(o()),k(n())),()=>{y(A,o()!==void 0?{json:o()}:{text:n()||""})}),pA(()=>(l(A),k(r()),k(s()),Gy),()=>{y(i,X0(xG(l(A),r(),s()),Gy))}),ln(),qt();var a=kYA(),c=W(a);we(()=>pt(c,l(i))),iA(t,a),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +button.jse-context-menu-button.svelte-1idfykj { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + flex: 1; + white-space: nowrap; + padding: var(--jse-padding, 10px); + color: inherit; +} +button.jse-context-menu-button.svelte-1idfykj:hover { + background: var(--jse-context-menu-background-highlight, #7a7a7a); +} +button.jse-context-menu-button.svelte-1idfykj:focus { + background: var(--jse-context-menu-background-highlight, #7a7a7a); + z-index: 1; +} +button.jse-context-menu-button.svelte-1idfykj:disabled { + color: var(--jse-context-menu-color-disabled, #9d9d9d); + background: unset; +} +button.jse-context-menu-button.left.svelte-1idfykj { + text-align: left; +} +button.jse-context-menu-button.svelte-1idfykj svg { + width: 16px; +}`);var SYA=vA('');function hG(t,e){ft(e,!1);var A=M(e,"item",8),i=M(e,"className",8,void 0),n=M(e,"onRequestClose",8);qt();var o=SYA(),r=W(o),s=g=>{Ui(g,{get data(){return k(A()),oA(()=>A().icon)}})};GA(r,g=>{k(A()),oA(()=>A().icon)&&g(s)});var a=CA(r,2),c=g=>{var I=jr();we(()=>pt(I,(k(A()),oA(()=>A().text)))),iA(g,I)};GA(a,g=>{k(A()),oA(()=>A().text)&&g(c)}),we(g=>{jt(o,1,g,"svelte-1idfykj"),gn(o,"title",(k(A()),oA(()=>A().title))),o.disabled=(k(A()),oA(()=>A().disabled||!1))},[()=>rI((k(Vg),k(i()),k(A()),oA(()=>Vg("jse-context-menu-button",i(),A().className))))],ZA),ce("click",o,g=>{n()(),A().onClick(g)}),iA(t,o),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-dropdown-button.svelte-11rxb2m { + flex: 1; + line-height: normal; + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + position: relative; + padding: 0; + display: flex; +} +.jse-dropdown-button.svelte-11rxb2m ul:where(.svelte-11rxb2m) { + margin: 0; + padding: 0; +} +.jse-dropdown-button.svelte-11rxb2m ul:where(.svelte-11rxb2m) li:where(.svelte-11rxb2m) { + margin: 0; + padding: 0; + list-style-type: none; +} +.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + width: 2em; + background: var(--jse-context-menu-background, #656565); + color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); + border-radius: 0; +} +.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown.jse-visible:where(.svelte-11rxb2m) { + background: var(--jse-context-menu-background, #656565); +} +.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m):hover { + background: var(--jse-context-menu-background-highlight, #7a7a7a); +} +.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m):focus { + z-index: 1; +} +.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m):disabled { + color: var(--jse-context-menu-color-disabled, #9d9d9d); + background: unset; +} +.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) { + display: none; + position: absolute; + top: 100%; + left: 0; + z-index: 1; + background: var(--jse-context-menu-background, #656565); + color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); +} +.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items.jse-visible:where(.svelte-11rxb2m) { + display: block; +} +.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) button:where(.svelte-11rxb2m) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + width: 100%; + text-align: left; + padding: var(--jse-padding, 10px); + margin: 0; +} +.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) button:where(.svelte-11rxb2m):hover { + background: var(--jse-context-menu-background-highlight, #7a7a7a); +} +.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) button:where(.svelte-11rxb2m):disabled { + color: var(--jse-context-menu-color-disabled, #9d9d9d); + background: unset; +}`);var RYA=vA('
  • '),LYA=vA('
      ');Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +button.jse-context-menu-button.svelte-1idfykj { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + flex: 1; + white-space: nowrap; + padding: var(--jse-padding, 10px); + color: inherit; +} +button.jse-context-menu-button.svelte-1idfykj:hover { + background: var(--jse-context-menu-background-highlight, #7a7a7a); +} +button.jse-context-menu-button.svelte-1idfykj:focus { + background: var(--jse-context-menu-background-highlight, #7a7a7a); + z-index: 1; +} +button.jse-context-menu-button.svelte-1idfykj:disabled { + color: var(--jse-context-menu-color-disabled, #9d9d9d); + background: unset; +} +button.jse-context-menu-button.left.svelte-1idfykj { + text-align: left; +} +button.jse-context-menu-button.svelte-1idfykj svg { + width: 16px; +}`);var xYA=vA('');function fG(t,e){ft(e,!1);var A=$(),i=M(e,"item",8),n=M(e,"className",8,void 0),o=M(e,"onRequestClose",8);pA(()=>(k(i()),k(o())),()=>{y(A,i().items.map(r=>pe(pe({},r),{},{onClick:s=>{o()(),r.onClick(s)}})))}),ln(),qt(),function(r,s){ft(s,!1);var a=$(void 0,!0),c=M(s,"items",25,()=>[]),g=M(s,"title",9,void 0),I=M(s,"width",9,"120px"),C=$(!1,!0);function d(){y(C,!1)}function B(D){s2(D)==="Escape"&&(D.preventDefault(),y(C,!1))}ws(()=>{document.addEventListener("click",d),document.addEventListener("keydown",B)}),ig(()=>{document.removeEventListener("click",d),document.removeEventListener("keydown",B)}),pA(()=>k(c()),()=>{y(a,c().every(D=>D.disabled===!0))}),ln(),qt(!0);var E=LYA(),u=W(E);Po(u,s,"defaultItem",{},null);var h,w=CA(u,2);Ui(W(w),{get data(){return Nl}});var x,R=CA(w,2);jo(W(R),5,c,cr,(D,G)=>{var J=RYA(),z=W(J),K=W(z),O=j=>{Ui(j,{get data(){return l(G),oA(()=>l(G).icon)}})};GA(K,j=>{l(G),oA(()=>l(G).icon)&&j(O)});var V=CA(K);we(()=>{var j;gn(z,"title",(l(G),oA(()=>l(G).title))),z.disabled=(l(G),oA(()=>l(G).disabled)),jt(z,1,rI((l(G),oA(()=>l(G).className))),"svelte-11rxb2m"),pt(V," ".concat((l(G),(j=oA(()=>l(G).text))!==null&&j!==void 0?j:"")))}),ce("click",z,j=>l(G).onClick(j)),iA(D,J)}),we((D,G)=>{var J;gn(E,"title",g()),h=jt(w,1,"jse-open-dropdown svelte-11rxb2m",null,h,D),w.disabled=l(a),x=jt(R,1,"jse-dropdown-items svelte-11rxb2m",null,x,G),eg(R,"width: ".concat((J=I())!==null&&J!==void 0?J:"",";"))},[()=>({"jse-visible":l(C)}),()=>({"jse-visible":l(C)})],ZA),ce("click",w,function(){var D=l(C);setTimeout(()=>y(C,!D))}),ce("click",E,d),iA(r,E),mt()}(t,{get width(){return k(i()),oA(()=>i().width)},get items(){return l(A)},$$slots:{defaultItem:(r,s)=>{var a=xYA(),c=W(a),g=C=>{Ui(C,{get data(){return k(i()),oA(()=>i().main.icon)}})};GA(c,C=>{k(i()),oA(()=>i().main.icon)&&C(g)});var I=CA(c);we(C=>{var d;jt(a,1,C,"svelte-1idfykj"),gn(a,"title",(k(i()),oA(()=>i().main.title))),a.disabled=(k(i()),oA(()=>i().main.disabled||!1)),pt(I," ".concat((k(i()),(d=oA(()=>i().main.text))!==null&&d!==void 0?d:"")))},[()=>rI((k(Vg),k(n()),k(i()),oA(()=>Vg("jse-context-menu-button",n(),i().main.className))))],ZA),ce("click",a,C=>{o()(),i().main.onClick(C)}),iA(r,a)}}}),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-contextmenu.svelte-12z7bz1 { + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + background: var(--jse-context-menu-background, #656565); + color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); +} +.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) { + display: flex; + flex-direction: row; + align-items: flex-start; + justify-content: stretch; +} +.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) div.jse-label:where(.svelte-12z7bz1) { + flex: 1; + white-space: nowrap; + padding: var(--jse-padding, 10px); + color: var(--jse-context-menu-color-disabled, #9d9d9d); + line-height: normal; +} +.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) div.jse-tip:where(.svelte-12z7bz1) { + flex: 1; + background: var(--jse-context-menu-tip-background, rgba(255, 255, 255, 0.2)); + color: var(--context-menu-tip-color, inherit); + margin: calc(0.5 * var(--jse-padding, 10px)); + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); + font-size: 80%; + line-height: 1.3em; + display: flex; + flex-direction: row; + align-items: flex-start; + gap: var(--jse-padding, 10px); + border-radius: 3px; +} +.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) div.jse-tip:where(.svelte-12z7bz1) div.jse-tip-icon:where(.svelte-12z7bz1) { + padding-top: calc(0.5 * var(--jse-padding, 10px)); +} +.jse-contextmenu.svelte-12z7bz1 .jse-column:where(.svelte-12z7bz1) { + flex: 1; + display: flex; + flex-direction: column; + align-items: stretch; +} +.jse-contextmenu.svelte-12z7bz1 .jse-column:where(.svelte-12z7bz1):not(:last-child) { + border-right: 1px solid var(--jse-context-menu-separator-color, #7a7a7a); +} +.jse-contextmenu.svelte-12z7bz1 .jse-separator:where(.svelte-12z7bz1) { + width: 100%; + height: 1px; + background: var(--jse-context-menu-separator-color, #7a7a7a); +}`);var NYA=vA('
      '),FYA=vA('
      '),_YA=vA('
      '),GYA=vA('
      '),KYA=vA('
      '),UYA=vA('
      '),JYA=vA('
      '),YYA=vA('');function ccA(t,e){ft(e,!1);var A=M(e,"items",9),i=M(e,"onRequestClose",9),n=M(e,"tip",9),o=$(void 0,!0);ws(()=>{var C=Array.from(l(o).querySelectorAll("button")).find(d=>!d.disabled);C&&C.focus()});var r={ArrowUp:"Up",ArrowDown:"Down",ArrowLeft:"Left",ArrowRight:"Right"};function s(C){return console.error("Unknown type of context menu item",C),"???"}qt(!0);var a=YYA(),c=W(a);jo(c,1,A,cr,(C,d)=>{var B=_o(),E=Mt(B),u=w=>{hG(w,{get item(){return l(d)},get onRequestClose(){return i()}})},h=(w,x)=>{var R=G=>{fG(G,{get item(){return l(d)},get onRequestClose(){return i()}})},D=(G,J)=>{var z=O=>{var V=KYA();jo(V,5,()=>(l(d),oA(()=>l(d).items)),cr,(j,dA)=>{var fA=_o(),EA=Mt(fA),IA=nA=>{hG(nA,{get item(){return l(dA)},get onRequestClose(){return i()}})},SA=(nA,lA)=>{var wA=ie=>{fG(ie,{get item(){return l(dA)},get onRequestClose(){return i()}})},VA=(ie,UA)=>{var BA=Xe=>{var We=_YA();jo(We,5,()=>(l(dA),oA(()=>l(dA).items)),cr,(KA,tA)=>{var OA=_o(),gA=Mt(OA),zA=Me=>{hG(Me,{className:"left",get item(){return l(tA)},get onRequestClose(){return i()}})},xA=(Me,LA)=>{var cA=ct=>{fG(ct,{className:"left",get item(){return l(tA)},get onRequestClose(){return i()}})},Gt=(ct,oe)=>{var Dt=Re=>{iA(Re,NYA())},_e=(Re,St)=>{var Se=L=>{var T=FYA(),P=W(T);we(()=>pt(P,(l(tA),oA(()=>l(tA).text)))),iA(L,T)},Wt=L=>{var T=jr();we(P=>pt(T,P),[()=>(l(tA),oA(()=>s(l(tA))))],ZA),iA(L,T)};GA(Re,L=>{k(LrA),l(tA),oA(()=>LrA(l(tA)))?L(Se):L(Wt,!1)},St)};GA(ct,Re=>{k(j1),l(tA),oA(()=>j1(l(tA)))?Re(Dt):Re(_e,!1)},oe)};GA(Me,ct=>{k(cQ),l(tA),oA(()=>cQ(l(tA)))?ct(cA):ct(Gt,!1)},LA)};GA(gA,Me=>{k(W0),l(tA),oA(()=>W0(l(tA)))?Me(zA):Me(xA,!1)}),iA(KA,OA)}),iA(Xe,We)},JA=(Xe,We)=>{var KA=OA=>{iA(OA,GYA())},tA=OA=>{var gA=jr();we(zA=>pt(gA,zA),[()=>(l(dA),oA(()=>s(l(dA))))],ZA),iA(OA,gA)};GA(Xe,OA=>{k(j1),l(dA),oA(()=>j1(l(dA)))?OA(KA):OA(tA,!1)},We)};GA(ie,Xe=>{k(NrA),l(dA),oA(()=>NrA(l(dA)))?Xe(BA):Xe(JA,!1)},UA)};GA(nA,ie=>{k(cQ),l(dA),oA(()=>cQ(l(dA)))?ie(wA):ie(VA,!1)},lA)};GA(EA,nA=>{k(W0),l(dA),oA(()=>W0(l(dA)))?nA(IA):nA(SA,!1)}),iA(j,fA)}),iA(O,V)},K=(O,V)=>{var j=fA=>{iA(fA,UYA())},dA=fA=>{var EA=jr();we(IA=>pt(EA,IA),[()=>(l(d),oA(()=>s(l(d))))],ZA),iA(fA,EA)};GA(O,fA=>{k(j1),l(d),oA(()=>j1(l(d)))?fA(j):fA(dA,!1)},V)};GA(G,O=>{k(xrA),l(d),oA(()=>xrA(l(d)))?O(z):O(K,!1)},J)};GA(w,G=>{k(cQ),l(d),oA(()=>cQ(l(d)))?G(R):G(D,!1)},x)};GA(E,w=>{k(W0),l(d),oA(()=>W0(l(d)))?w(u):w(h,!1)}),iA(C,B)});var g=CA(c,2),I=C=>{var d=JYA(),B=W(d),E=W(B);Ui(W(E),{get data(){return gX}});var u=W(CA(E,2));we(()=>pt(u,n())),iA(C,d)};GA(g,C=>{n()&&C(I)}),Qo(a,C=>y(o,C),()=>l(o)),ce("keydown",a,function(C){var d=s2(C),B=r[d];if(B&&C.target){C.preventDefault();var E=rKA({allElements:Array.from(l(o).querySelectorAll("button:not([disabled])")),currentElement:C.target,direction:B,hasPrio:u=>u.getAttribute("data-type")!=="jse-open-dropdown"});E&&E.focus()}}),iA(t,a),mt()}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-value.jse-string.svelte-6ttr41 { + color: var(--jse-value-color-string, #008000); +} +.jse-value.jse-object.svelte-6ttr41, .jse-value.jse-array.svelte-6ttr41 { + min-width: 16px; + color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); +} +.jse-value.jse-number.svelte-6ttr41 { + color: var(--jse-value-color-number, #ee422e); +} +.jse-value.jse-boolean.svelte-6ttr41 { + color: var(--jse-value-color-boolean, #ff8c00); +} +.jse-value.jse-null.svelte-6ttr41 { + color: var(--jse-value-color-null, #004ed0); +} +.jse-value.jse-invalid.svelte-6ttr41 { + color: var(--jse-text-color, #4d4d4d); +} +.jse-value.jse-url.svelte-6ttr41 { + color: var(--jse-value-color-url, #008000); + text-decoration: underline; +} + +.jse-enum-value.svelte-6ttr41 { + background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); + border: none; + padding: 0; + font-family: inherit; + font-size: inherit; + cursor: pointer; + outline: none; +} +.jse-enum-value.jse-selected.svelte-6ttr41 { + background: var(--jse-selection-background-color, #d3d3d3); + color: inherit; +} +.jse-enum-value.jse-value.svelte-6ttr41:focus { + color: var(--jse-text-color, #4d4d4d); +}`);var Iwe=vA(""),Cwe=vA("");var py,Dy;function wy(t,e){return py||(Dy=new WeakMap,py=new ResizeObserver(A=>{for(var i of A){var n=Dy.get(i.target);n&&n(i.target)}})),Dy.set(t,e),py.observe(t),{destroy:()=>{Dy.delete(t),py.unobserve(t)}}}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-tree-mode.svelte-vrx1dr { + flex: 1; + display: flex; + flex-direction: column; + position: relative; + background: var(--jse-background-color, #fff); + min-width: 0; + min-height: 0; + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + color: var(--jse-text-color, #4d4d4d); + line-height: var(--jse-line-height, calc(1em + 4px)); +} +.jse-tree-mode.svelte-vrx1dr .jse-hidden-input-label:where(.svelte-vrx1dr) .jse-hidden-input:where(.svelte-vrx1dr) { + position: fixed; + top: -10px; + left: -10px; + width: 1px; + height: 1px; + padding: 0; + border: 0; + outline: none; +} +.jse-tree-mode.no-main-menu.svelte-vrx1dr { + border-top: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-tree-mode.svelte-vrx1dr .jse-search-box-container:where(.svelte-vrx1dr) { + position: relative; + height: 0; + top: var(--jse-padding, 10px); + margin-right: calc(var(--jse-padding, 10px) + 20px); + margin-left: var(--jse-padding, 10px); + text-align: right; + z-index: 3; +} +.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) { + flex: 1; + overflow: auto; + position: relative; + padding: 2px; + display: flex; + flex-direction: column; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr):last-child { + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) .jse-loading-space:where(.svelte-vrx1dr) { + flex: 1; +} +.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) .jse-loading:where(.svelte-vrx1dr) { + flex: 2; + text-align: center; + color: var(--jse-panel-color-readonly, #b2b2b2); + box-sizing: border-box; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); +} +.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) .jse-search-box-background:where(.svelte-vrx1dr) { + border: 50px solid var(--jse-modal-background, #f5f5f5); + margin: -2px; + margin-bottom: 2px; + display: inline-block; +}`);var TYA=vA(" ",1),HYA=vA('
      '),OYA=vA('
      ',1),zYA=vA(' ',1),PYA=vA('
      loading...
      '),jYA=vA('
      ',1);function $G(t,e){ft(e,!1);var A=$(void 0,!0),i=xr("jsoneditor:TreeMode"),n=typeof window>"u";i("isSSR:",n);var o=h1(),r=h1(),{openAbsolutePopup:s,closeAbsolutePopup:a}=cI("absolute-popup"),c=$(void 0,!0),g=$(void 0,!0),I=$(void 0,!0),C=!1,d=qaA(),B=M(e,"readOnly",9),E=M(e,"externalContent",9),u=M(e,"externalSelection",9),h=M(e,"history",9),w=M(e,"truncateTextSize",9),x=M(e,"mainMenuBar",9),R=M(e,"navigationBar",9),D=M(e,"escapeControlCharacters",9),G=M(e,"escapeUnicodeCharacters",9),J=M(e,"parser",9),z=M(e,"parseMemoizeOne",9),K=M(e,"validator",9),O=M(e,"validationParser",9),V=M(e,"pathParser",9),j=M(e,"indentation",9),dA=M(e,"onError",9),fA=M(e,"onChange",9),EA=M(e,"onChangeMode",9),IA=M(e,"onSelect",9),SA=M(e,"onUndo",9),nA=M(e,"onRedo",9),lA=M(e,"onRenderValue",9),wA=M(e,"onRenderMenu",9),VA=M(e,"onRenderContextMenu",9),ie=M(e,"onClassName",9),UA=M(e,"onFocus",9),BA=M(e,"onBlur",9),JA=M(e,"onSortModal",9),Xe=M(e,"onTransformModal",9),We=M(e,"onJSONEditorModal",9),KA=!1,tA=$(!1,!0),OA=$(void 0,!0);kK({onMount:ws,onDestroy:ig,getWindow:()=>Qf(l(I)),hasFocus:()=>KA&&document.hasFocus()||CK(l(I)),onFocus:()=>{C=!0,UA()&&UA()()},onBlur:()=>{C=!1,BA()&&BA()()}});var gA=$(void 0,!0),zA=$(void 0,!0),xA=void 0,Me=!1,LA=$(GG({json:l(gA)}),!0),cA=$(tf(u())?u():void 0,!0);function Gt(H){y(cA,H)}ws(()=>{if(l(cA)){var H=nt(l(cA));y(LA,Yg(l(gA),l(LA),H,by)),setTimeout(()=>re(H))}});var ct,oe=$(void 0,!0),Dt=$(void 0,!0),_e=$(void 0,!0),Re=$(void 0,!0),St=$(!1,!0),Se=$(!1,!0);function Wt(H){y(Re,(ct=H)?FaA(l(gA),ct.items):void 0)}function L(H,rA){return T.apply(this,arguments)}function T(){return(T=_t(function*(H,rA){y(LA,Yg(l(gA),l(LA),H,by));var HA=Ae(rA);yield yt(H,{element:HA})})).apply(this,arguments)}function P(){y(St,!1),y(Se,!1),Ot()}function X(H){i("select validation error",H),y(cA,vi(H.path)),yt(H.path)}function kA(H){var rA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:KG;i("expand"),y(LA,Yg(l(gA),l(LA),H,rA))}function le(H,rA){y(LA,KrA(l(gA),l(LA),H,rA)),l(cA)&&function(HA,De){return n0(nt(HA),De)&&(nt(HA).length>De.length||yr(HA))}(l(cA),H)&&y(cA,void 0)}var Ee=$(!1,!0),NA=$([],!0),MA=$(void 0,!0),Ct=hE(VaA);function $e(H,rA,HA,De){fQ(()=>{var fe;try{fe=Ct(H,rA,HA,De)}catch(Ie){fe=[{path:[],message:"Failed to validate: "+Ie.message,severity:Og.warning}]}ri(fe,l(NA))||(i("validationErrors changed:",fe),y(NA,fe),y(MA,function(Ie,dt){var At;return dt.forEach(ui=>{At=gsA(Ie,At,ui.path,(Cn,xi)=>pe(pe({},xi),{},{validationError:ui}))}),dt.forEach(ui=>{for(var Cn=ui.path;Cn.length>0;)Cn=yi(Cn),At=gsA(Ie,At,Cn,(xi,Yn)=>Yn.validationError?Yn:pe(pe({},Yn),{},{validationError:{isChildError:!0,path:Cn,message:"Contains invalid data",severity:Og.warning}}))}),At}(H,l(NA))))},fe=>i("validationErrors updated in ".concat(fe," ms")))}function XA(){return i("validate"),xA?{parseError:xA,isRepairable:!1}:($e(l(gA),K(),J(),O()),Gi(l(NA))?void 0:{validationErrors:l(NA)})}function ot(){return l(gA)}function Si(){return l(LA)}function Zi(){return l(cA)}function Oi(H){i("applyExternalContent",{updatedContent:H}),X3(H)?function(rA){if(rA!==void 0){var HA=!ri(l(gA),rA);if(i("update external json",{isChanged:HA,currentlyText:l(gA)===void 0}),!!HA){var De={documentState:l(LA),selection:l(cA),json:l(gA),text:l(zA),textIsRepaired:l(Ee)};y(gA,rA),y(LA,uc(rA,l(LA))),Le(l(gA)),y(zA,void 0),y(Ee,!1),xA=void 0,zi(l(gA)),fi(De)}}}(H.json):W3(H)&&function(rA){if(!(rA===void 0||X3(E()))){var HA=rA!==l(zA);if(i("update external text",{isChanged:HA}),!!HA){var De={documentState:l(LA),selection:l(cA),json:l(gA),text:l(zA),textIsRepaired:l(Ee)};try{y(gA,z()(rA)),y(LA,uc(l(gA),l(LA))),Le(l(gA)),y(zA,rA),y(Ee,!1),xA=void 0}catch(fe){try{y(gA,z()(Uc(rA))),y(LA,uc(l(gA),l(LA))),Le(l(gA)),y(zA,rA),y(Ee,!0),xA=void 0,zi(l(gA))}catch{y(gA,void 0),y(LA,void 0),y(zA,E().text),y(Ee,!1),xA=l(zA)!==void 0&&l(zA)!==""?MQ(l(zA),fe.message||String(fe)):void 0}}zi(l(gA)),fi(De)}}}(H.text)}function Le(H){Me||(Me=!0,y(LA,id(H,l(LA),[])))}function zi(H){l(cA)&&(As(H,WC(l(cA)))&&As(H,nt(l(cA)))||(i("clearing selection: path does not exist anymore",l(cA)),y(cA,gQ(H,l(LA)))))}function fi(H){if(H.json!==void 0||H.text!==void 0){var rA=l(gA)!==void 0&&H.json!==void 0;h().add({type:"tree",undo:{patch:rA?[{op:"replace",path:"",value:H.json}]:void 0,json:H.json,text:H.text,documentState:H.documentState,textIsRepaired:H.textIsRepaired,selection:e0(H.selection),sortedColumn:void 0},redo:{patch:rA?[{op:"replace",path:"",value:l(gA)}]:void 0,json:l(gA),text:l(zA),documentState:l(LA),textIsRepaired:l(Ee),selection:e0(l(cA)),sortedColumn:void 0}})}}function Ht(H,rA){var HA;if(i("patch",H,rA),l(gA)===void 0)throw new Error("Cannot apply patch: no JSON");var De=l(gA),fe={json:void 0,text:l(zA),documentState:l(LA),selection:e0(l(cA)),textIsRepaired:l(Ee),sortedColumn:void 0},Ie=NaA(l(gA),H),dt=paA(l(gA),l(LA),H),At=(HA=SQ(l(gA),H))!==null&&HA!==void 0?HA:l(cA),ui=typeof rA=="function"?rA(dt.json,dt.documentState,At):void 0;return y(gA,ui?.json!==void 0?ui.json:dt.json),y(LA,ui?.state!==void 0?ui.state:dt.documentState),y(cA,ui?.selection!==void 0?ui.selection:At),y(zA,void 0),y(Ee,!1),y(Dt,void 0),y(_e,void 0),xA=void 0,zi(l(gA)),h().add({type:"tree",undo:pe({patch:Ie},fe),redo:{patch:H,json:void 0,text:l(zA),documentState:l(LA),selection:e0(l(cA)),sortedColumn:void 0,textIsRepaired:l(Ee)}}),{json:l(gA),previousJson:De,undo:Ie,redo:H}}function Rt(){!B()&&l(cA)&&y(cA,yK(nt(l(cA))))}function Bi(){if(!B()&&l(cA)){var H=nt(l(cA)),rA=Ye(l(gA),H);Fo(rA)?function(HA,De){i("openJSONEditorModal",{path:HA,value:De}),KA=!0,We()({content:{json:De},path:HA,onPatch:l(m).onPatch,onClose:()=>{KA=!1,setTimeout(Ot)}})}(H,rA):y(cA,Yy(H))}}function Mi(){if(!B()&&Vi(l(cA))){var H=nt(l(cA)),rA=It(H),HA=Ye(l(gA),H),De=!t0(l(gA),l(LA),H),fe=De?String(HA):GQ(String(HA),J());i("handleToggleEnforceString",{enforceString:De,value:HA,updatedValue:fe}),ue([{op:"replace",path:rA,value:fe}],(Ie,dt)=>({state:o7(l(gA),dt,H,{type:"value",enforceString:De})}))}}function Jt(){return l(Ee)&&l(gA)!==void 0&&aA(l(gA)),l(gA)!==void 0?{json:l(gA)}:{text:l(zA)||""}}function b(){return et.apply(this,arguments)}function et(){return et=_t(function*(){var H=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];yield icA({json:l(gA),selection:l(cA),indentation:H?j():void 0,readOnly:B(),parser:J(),onPatch:ue})}),et.apply(this,arguments)}function ai(){return Wi.apply(this,arguments)}function Wi(){return Wi=_t(function*(){var H=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];l(gA)!==void 0&&(yield ncA({json:l(gA),selection:l(cA),indentation:H?j():void 0,parser:J()}))}),Wi.apply(this,arguments)}function Xi(H){var rA;H.preventDefault(),vn((rA=H.clipboardData)===null||rA===void 0?void 0:rA.getData("text/plain"))}function xn(){return Mo.apply(this,arguments)}function Mo(){return(Mo=_t(function*(){try{vn(yield navigator.clipboard.readText())}catch(H){console.error(H),y(tA,!0)}})).apply(this,arguments)}function vn(H){H!==void 0&&ocA({clipboardText:H,json:l(gA),selection:l(cA),readOnly:B(),parser:J(),onPatch:ue,onChangeText:DA,onPasteMultilineText:sn,openRepairModal:In})}function In(H,rA){y(OA,{text:H,onParse:HA=>Ef(HA,De=>Bf(De,J())),onRepair:aaA,onApply:rA,onClose:Ot})}function qo(){rcA({json:l(gA),text:l(zA),selection:l(cA),keepSelection:!1,readOnly:B(),onChange:fA(),onPatch:ue})}function Vo(){!B()&&l(gA)!==void 0&&l(cA)&&uQ&&!Gi(nt(l(cA)))&&(i("duplicate",{selection:l(cA)}),ue(SaA(l(gA),sI(l(gA),l(cA)))))}function uo(){B()||!l(cA)||!Gn(l(cA))&&!Vi(l(cA))||Gi(nt(l(cA)))||(i("extract",{selection:l(cA)}),ue(RaA(l(gA),l(cA)),(H,rA)=>{if(Fo(H))return{state:lG(H,rA,[])}}))}function Qn(H){Zy({insertType:H,selectInside:!0,initialValue:void 0,json:l(gA),selection:l(cA),readOnly:B(),parser:J(),onPatch:ue,onReplaceJson:aA})}function Kn(H){Lr(l(cA))&&y(cA,vi(l(cA).path)),l(cA)||y(cA,gQ(l(gA),l(LA))),Qn(H)}function $A(H){if(!B()&&l(cA))if(Qy(l(cA)))try{var rA=WC(l(cA)),HA=Ye(l(gA),rA),De=function(Ie,dt,At){if(dt==="array"){if(Array.isArray(Ie))return Ie;if(nn(Ie))return wrA(Ie);if(typeof Ie=="string")try{var ui=At.parse(Ie);if(Array.isArray(ui))return ui;if(nn(ui))return wrA(ui)}catch{return[Ie]}return[Ie]}if(dt==="object"){if(Array.isArray(Ie))return DrA(Ie);if(nn(Ie))return Ie;if(typeof Ie=="string")try{var Cn=At.parse(Ie);if(nn(Cn))return Cn;if(Array.isArray(Cn))return DrA(Cn)}catch{return{value:Ie}}return{value:Ie}}if(dt==="value")return Fo(Ie)?At.stringify(Ie):Ie;throw new Error("Cannot convert ".concat(gK(Ie,At)," to ").concat(dt))}(HA,H,J());if(De===HA)return;var fe=[{op:"replace",path:It(rA),value:De}];i("handleConvert",{selection:l(cA),path:rA,type:H,operations:fe}),ue(fe,(Ie,dt)=>({state:l(cA)?id(Ie,dt,nt(l(cA))):l(LA)}))}catch(Ie){dA()(Ie)}else dA()(new Error("Cannot convert current selection to ".concat(H)))}function Ei(){if(l(cA)){var H=TrA(l(gA),l(LA),l(cA),!1),rA=yi(nt(l(cA)));H&&!Gi(nt(H))&&ri(rA,yi(nt(H)))?y(cA,o2(nt(H))):y(cA,c2(rA)),i("insert before",{selection:l(cA),selectionBefore:H,parentPath:rA}),to(),bt()}}function Ri(){if(l(cA)){var H=tI(l(gA),l(cA));i("insert after",H),y(cA,o2(H)),to(),bt()}}function un(H){return Un.apply(this,arguments)}function Un(){return(Un=_t(function*(H){yield scA({char:H,selectInside:!0,json:l(gA),selection:l(cA),readOnly:B(),parser:J(),onPatch:ue,onReplaceJson:aA,onSelect:Gt})})).apply(this,arguments)}function Zo(){if(!B()&&h().canUndo){var H=h().undo();if(Uy(H)){var rA={json:l(gA),text:l(zA)};y(gA,H.undo.patch?Ma(l(gA),H.undo.patch):H.undo.json),y(LA,H.undo.documentState),y(cA,H.undo.selection),y(zA,H.undo.text),y(Ee,H.undo.textIsRepaired),xA=void 0,i("undo",{item:H,json:l(gA),documentState:l(LA),selection:l(cA)}),xe(rA,H.undo.patch&&H.redo.patch?{json:l(gA),previousJson:rA.json,redo:H.undo.patch,undo:H.redo.patch}:void 0),Ot(),l(cA)&&yt(nt(l(cA)),{scrollToWhenVisible:!1})}else SA()(H)}}function Ci(){if(!B()&&h().canRedo){var H=h().redo();if(Uy(H)){var rA={json:l(gA),text:l(zA)};y(gA,H.redo.patch?Ma(l(gA),H.redo.patch):H.redo.json),y(LA,H.redo.documentState),y(cA,H.redo.selection),y(zA,H.redo.text),y(Ee,H.redo.textIsRepaired),xA=void 0,i("redo",{item:H,json:l(gA),documentState:l(LA),selection:l(cA)}),xe(rA,H.undo.patch&&H.redo.patch?{json:l(gA),previousJson:rA.json,redo:H.redo.patch,undo:H.undo.patch}:void 0),Ot(),l(cA)&&yt(nt(l(cA)),{scrollToWhenVisible:!1})}else nA()(H)}}function io(H){var rA;B()||l(gA)===void 0||(KA=!0,JA()({id:o,json:l(gA),rootPath:H,onSort:(rA=_t(function*(HA){var{operations:De}=HA;i("onSort",H,De),ue(De,(fe,Ie)=>({state:lG(fe,Ie,H),selection:vi(H)}))}),function(HA){return rA.apply(this,arguments)}),onClose:()=>{KA=!1,setTimeout(Ot)}}))}function Wo(){l(cA)&&io(OrA(l(gA),l(cA)))}function Xo(){io([])}function nr(H){if(l(gA)!==void 0){var{id:rA,onTransform:HA,onClose:De}=H,fe=H.rootPath||[];KA=!0,Xe()({id:rA||r,json:l(gA),rootPath:fe,onTransform:Ie=>{HA?HA({operations:Ie,json:l(gA),transformedJson:Ma(l(gA),Ie)}):(i("onTransform",fe,Ie),ue(Ie,(dt,At)=>({state:lG(dt,At,fe),selection:vi(fe)})))},onClose:()=>{KA=!1,setTimeout(Ot),De&&De()}})}}function on(){l(cA)&&nr({rootPath:OrA(l(gA),l(cA))})}function $i(){nr({rootPath:[]})}function yt(H){return hn.apply(this,arguments)}function hn(){return hn=_t(function*(H){var{scrollToWhenVisible:rA=!0,element:HA}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};y(LA,Yg(l(gA),l(LA),H,by));var De=HA??hA(H);if(i("scrollTo",{path:H,elem:De,refContents:l(c)}),!De||!l(c))return Promise.resolve();var fe=l(c).getBoundingClientRect(),Ie=De.getBoundingClientRect();if(!rA&&Ie.bottom>fe.top&&Ie.top{d(De,{container:l(c),offset:dt,duration:300,callback:()=>At()})})}),hn.apply(this,arguments)}function hA(H){var rA,HA;return to(),(rA=(HA=l(c))===null||HA===void 0?void 0:HA.querySelector('div[data-path="'.concat(My(H),'"]')))!==null&&rA!==void 0?rA:void 0}function Ae(H){var rA,HA;return to(),(rA=(HA=l(c))===null||HA===void 0?void 0:HA.querySelector('span[data-search-result-index="'.concat(H,'"]')))!==null&&rA!==void 0?rA:void 0}function re(H){var rA=hA(H);if(rA&&l(c)){var HA=l(c).getBoundingClientRect(),De=rA.getBoundingClientRect(),fe=Fo(Ye(l(gA),H))?20:De.height;De.topHA.bottom-20&&d(rA,{container:l(c),offset:-(HA.height-fe-20),duration:0})}}function xe(H,rA){if(H.json!==void 0||H?.text!==void 0){if(l(zA)!==void 0){var HA,De={text:l(zA),json:void 0};(HA=fA())===null||HA===void 0||HA(De,H,{contentErrors:XA(),patchResult:rA})}else if(l(gA)!==void 0){var fe,Ie={text:void 0,json:l(gA)};(fe=fA())===null||fe===void 0||fe(Ie,H,{contentErrors:XA(),patchResult:rA})}}}function ue(H,rA){i("handlePatch",H,rA);var HA={json:l(gA),text:l(zA)},De=Ht(H,rA);return xe(HA,De),De}function aA(H,rA){var HA={json:l(gA),text:l(zA)},De={documentState:l(LA),selection:l(cA),json:l(gA),text:l(zA),textIsRepaired:l(Ee)},fe=Yg(l(gA),uc(H,l(LA)),[],z3),Ie=typeof rA=="function"?rA(H,fe,l(cA)):void 0;y(gA,Ie?.json!==void 0?Ie.json:H),y(LA,Ie?.state!==void 0?Ie.state:fe),y(cA,Ie?.selection!==void 0?Ie.selection:l(cA)),y(zA,void 0),y(Ee,!1),xA=void 0,zi(l(gA)),fi(De),xe(HA,void 0)}function DA(H,rA){i("handleChangeText");var HA={json:l(gA),text:l(zA)},De={documentState:l(LA),selection:l(cA),json:l(gA),text:l(zA),textIsRepaired:l(Ee)};try{y(gA,z()(H)),y(LA,Yg(l(gA),uc(l(gA),l(LA)),[],z3)),y(zA,void 0),y(Ee,!1),xA=void 0}catch(Ie){try{y(gA,z()(Uc(H))),y(LA,Yg(l(gA),uc(l(gA),l(LA)),[],z3)),y(zA,H),y(Ee,!0),xA=void 0}catch{y(gA,void 0),y(LA,GG({json:l(gA),expand:z3})),y(zA,H),y(Ee,!1),xA=l(zA)!==""?MQ(l(zA),Ie.message||String(Ie)):void 0}}if(typeof rA=="function"){var fe=rA(l(gA),l(LA),l(cA));y(gA,fe?.json!==void 0?fe.json:l(gA)),y(LA,fe?.state!==void 0?fe.state:l(LA)),y(cA,fe?.selection!==void 0?fe.selection:l(cA))}zi(l(gA)),fi(De),xe(HA,void 0)}function PA(H,rA){var HA=arguments.length>2&&arguments[2]!==void 0&&arguments[2];i("handleExpand",{path:H,expanded:rA,recursive:HA}),rA?kA(H,HA?wK:KG):le(H,HA),Ot()}function Je(){PA([],!0,!0)}function vt(){PA([],!1,!0)}function Yt(H){i("openFind",{findAndReplace:H}),y(St,!1),y(Se,!1),to(),y(St,!0),y(Se,H)}function rn(H,rA){i("handleExpandSection",H,rA),y(LA,function(HA,De,fe,Ie){return kQ(HA,De,fe,(dt,At)=>{if(!Rr(At))return At;var ui=haA(At.visibleSections.concat(Ie));return pe(pe({},At),{},{visibleSections:ui})})}(l(gA),l(LA),H,rA))}function no(H){i("pasted json as text",H),y(Dt,H)}function sn(H){i("pasted multiline text",{pastedText:H}),y(_e,H)}function Ji(H){var rA,{anchor:HA,left:De,top:fe,width:Ie,height:dt,offsetTop:At,offsetLeft:ui,showTip:Cn}=H,xi=function(kn){var{json:oo,documentState:An,selection:Lt,readOnly:Ti,onEditKey:xt,onEditValue:rt,onToggleEnforceString:Ai,onCut:ho,onCopy:Fr,onPaste:Tn,onRemove:ko,onDuplicate:qr,onExtract:g0,onInsertBefore:Ha,onInsert:ng,onConvert:Wg,onInsertAfter:og,onSort:Vr,onTransform:Zr}=kn,Oa=oo!==void 0,l0=!!Lt,za=!!Lt&&Gi(nt(Lt)),Uo=Lt?Ye(oo,nt(Lt)):void 0,Zn=Array.isArray(Uo)?"Edit array":nn(Uo)?"Edit object":"Edit value",$o=Oa&&(Gn(Lt)||Lr(Lt)||Vi(Lt)),Xg=Lt&&!za?Ye(oo,yi(nt(Lt))):void 0,gd=!Ti&&Oa&&Jy(Lt)&&!za&&!Array.isArray(Xg),ld=!Ti&&Oa&&Lt!==void 0&&Jy(Lt),jQ=ld&&!Fo(Uo),Id=!Ti&&$o,qQ=$o,hv=!Ti&&l0,fv=!Ti&&Oa&&$o&&!za,mv=!Ti&&Oa&&Lt!==void 0&&(Gn(Lt)||Vi(Lt))&&!za,$g=$o,BI=$g?"Convert to:":"Insert:",gr=!Ti&&(yr(Lt)&&Array.isArray(Uo)||Ya(Lt)&&Array.isArray(Xg)),sa=!Ti&&($g?Qy(Lt)&&!nn(Uo):l0),VQ=!Ti&&($g?Qy(Lt)&&!Array.isArray(Uo):l0),ZQ=!Ti&&($g?Qy(Lt)&&Fo(Uo):l0),EI=Lt!==void 0&&t0(oo,An,nt(Lt));function as(WQ){$o?WQ!=="structure"&&Wg(WQ):ng(WQ)}return[{type:"row",items:[{type:"button",onClick:()=>xt(),icon:EC,text:"Edit key",title:"Edit the key (Double-click on the key)",disabled:!gd},{type:"dropdown-button",main:{type:"button",onClick:()=>rt(),icon:EC,text:Zn,title:"Edit the value (Double-click on the value)",disabled:!ld},width:"11em",items:[{type:"button",icon:EC,text:Zn,title:"Edit the value (Double-click on the value)",onClick:()=>rt(),disabled:!ld},{type:"button",icon:EI?iL:rL,text:"Enforce string",title:"Enforce keeping the value as string when it contains a numeric value",onClick:()=>Ai(),disabled:!jQ}]}]},{type:"separator"},{type:"row",items:[{type:"dropdown-button",main:{type:"button",onClick:()=>ho(!0),icon:BC,text:"Cut",title:"Cut selected contents, formatted with indentation (Ctrl+X)",disabled:!Id},width:"10em",items:[{type:"button",icon:BC,text:"Cut formatted",title:"Cut selected contents, formatted with indentation (Ctrl+X)",onClick:()=>ho(!0),disabled:!Id},{type:"button",icon:BC,text:"Cut compacted",title:"Cut selected contents, without indentation (Ctrl+Shift+X)",onClick:()=>ho(!1),disabled:!Id}]},{type:"dropdown-button",main:{type:"button",onClick:()=>Fr(!0),icon:G0,text:"Copy",title:"Copy selected contents, formatted with indentation (Ctrl+C)",disabled:!qQ},width:"12em",items:[{type:"button",icon:G0,text:"Copy formatted",title:"Copy selected contents, formatted with indentation (Ctrl+C)",onClick:()=>Fr(!0),disabled:!qQ},{type:"button",icon:G0,text:"Copy compacted",title:"Copy selected contents, without indentation (Ctrl+Shift+C)",onClick:()=>Fr(!1),disabled:!qQ}]},{type:"button",onClick:()=>Tn(),icon:tL,text:"Paste",title:"Paste clipboard contents (Ctrl+V)",disabled:!hv}]},{type:"separator"},{type:"row",items:[{type:"column",items:[{type:"button",onClick:()=>qr(),icon:cL,text:"Duplicate",title:"Duplicate selected contents (Ctrl+D)",disabled:!fv},{type:"button",onClick:()=>g0(),icon:fX,text:"Extract",title:"Extract selected contents",disabled:!mv},{type:"button",onClick:()=>Vr(),icon:Q4,text:"Sort",title:"Sort array or object contents",disabled:Ti||!$o},{type:"button",onClick:()=>Zr(),icon:d4,text:"Transform",title:"Transform array or object contents (filter, sort, project)",disabled:Ti||!$o},{type:"button",onClick:()=>ko(),icon:_5,text:"Remove",title:"Remove selected contents (Delete)",disabled:Ti||!$o}]},{type:"column",items:[{type:"label",text:BI},{type:"button",onClick:()=>as("structure"),icon:$g?E4:QC,text:"Structure",title:BI+" structure like the first item in the array",disabled:!gr},{type:"button",onClick:()=>as("object"),icon:$g?E4:QC,text:"Object",title:BI+" object",disabled:!sa},{type:"button",onClick:()=>as("array"),icon:$g?E4:QC,text:"Array",title:BI+" array",disabled:!VQ},{type:"button",onClick:()=>as("value"),icon:$g?E4:QC,text:"Value",title:BI+" value",disabled:!ZQ}]}]},{type:"separator"},{type:"row",items:[{type:"button",onClick:()=>Ha(),icon:uX,text:"Insert before",title:"Select area before current entry to insert or paste contents",disabled:Ti||!$o||za},{type:"button",onClick:()=>og(),icon:dX,text:"Insert after",title:"Select area after current entry to insert or paste contents",disabled:Ti||!$o||za}]}]}({json:l(gA),documentState:l(LA),selection:l(cA),readOnly:B(),onEditKey:Rt,onEditValue:Bi,onToggleEnforceString:Mi,onCut:b,onCopy:ai,onPaste:xn,onRemove:qo,onDuplicate:Vo,onExtract:uo,onInsertBefore:Ei,onInsert:Kn,onInsertAfter:Ri,onConvert:$A,onSort:Wo,onTransform:on}),Yn=(rA=VA()(xi))!==null&&rA!==void 0?rA:xi;if(Yn!==!1){var Tt={left:De,top:fe,offsetTop:At,offsetLeft:ui,width:Ie,height:dt,anchor:HA,closeOnOuterClick:!0,onClose:()=>{KA=!1,Ot()}};KA=!0;var bo=s(ccA,{tip:Cn?"Tip: you can open this context menu via right-click or with Ctrl+Q":void 0,items:Yn,onRequestClose:()=>a(bo)},Tt)}}function bt(H){if(!Sr(l(cA)))if(H&&(H.stopPropagation(),H.preventDefault()),H&&H.type==="contextmenu"&&H.target!==l(g))Ji({left:H.clientX,top:H.clientY,width:A2,height:$0,showTip:!1});else{var rA,HA=(rA=l(c))===null||rA===void 0?void 0:rA.querySelector(".jse-context-menu-pointer.jse-selected");if(HA)Ji({anchor:HA,offsetTop:2,width:A2,height:$0,showTip:!1});else{var De,fe=(De=l(c))===null||De===void 0?void 0:De.getBoundingClientRect();fe&&Ji({top:fe.top+2,left:fe.left+2,width:A2,height:$0,showTip:!1})}}}function Li(H){Ji({anchor:QaA(H.target,"BUTTON"),offsetTop:0,width:A2,height:$0,showTip:!0})}function Mn(){return Qt.apply(this,arguments)}function Qt(){return(Qt=_t(function*(){if(i("apply pasted json",l(Dt)),l(Dt)){var{onPasteAsJson:H}=l(Dt);y(Dt,void 0),H(),setTimeout(Ot)}})).apply(this,arguments)}function fn(){return Te.apply(this,arguments)}function Te(){return(Te=_t(function*(){i("apply pasted multiline text",l(_e)),l(_e)&&(vn(JSON.stringify(l(_e))),setTimeout(Ot))})).apply(this,arguments)}function Qi(){i("clear pasted json"),y(Dt,void 0),Ot()}function mi(){i("clear pasted multiline text"),y(_e,void 0),Ot()}function bn(){EA()(ir.text)}function Ko(H){y(cA,H),Ot(),yt(nt(H))}function Ot(){i("focus"),l(g)&&(l(g).focus(),l(g).select())}function Nr(H){return function(rA,HA,De){var fe=yi(De),Ie=[li(De)],dt=Ye(rA,fe),At=dt?gG(dt,HA,Ie):void 0;return At?vi(fe.concat(At)):o2(De)}(l(gA),l(LA),H)}function Jn(H){l(A)&&l(A).onDrag(H)}function Q(){l(A)&&l(A).onDragEnd()}var m=$(void 0,!0);pA(()=>l(cA),()=>{var H;H=l(cA),ri(H,u())||(i("onSelect",H),IA()(H))}),pA(()=>(k(D()),k(G())),()=>{y(oe,lK({escapeControlCharacters:D(),escapeUnicodeCharacters:G()}))}),pA(()=>l(St),()=>{(function(H){l(c)&&H&&l(c).scrollTop===0&&(hc(c,l(c).style.overflowAnchor="none"),hc(c,l(c).scrollTop+=O3),setTimeout(()=>{l(c)&&hc(c,l(c).style.overflowAnchor="")}))})(l(St))}),pA(()=>k(E()),()=>{Oi(E())}),pA(()=>k(u()),()=>{(function(H){ri(l(cA),H)||(i("applyExternalSelection",{selection:l(cA),externalSelection:H}),tf(H)&&y(cA,H))})(u())}),pA(()=>(l(gA),k(K()),k(J()),k(O())),()=>{$e(l(gA),K(),J(),O())}),pA(()=>(l(c),csA),()=>{y(A,l(c)?csA(l(c)):void 0)}),pA(()=>(k(B()),k(w()),k(J()),l(oe),k(lA()),k(ie())),()=>{y(m,{mode:ir.tree,readOnly:B(),truncateTextSize:w(),parser:J(),normalization:l(oe),getJson:ot,getDocumentState:Si,getSelection:Zi,findElement:hA,findNextInside:Nr,focus:Ot,onPatch:ue,onInsert:Qn,onExpand:PA,onSelect:Gt,onFind:Yt,onExpandSection:rn,onPasteJson:no,onRenderValue:lA(),onContextMenu:Ji,onClassName:ie()||(()=>{}),onDrag:Jn,onDragEnd:Q})}),pA(()=>l(m),()=>{i("context changed",l(m))}),ln(),qt(!0);var v=jYA();ce("mousedown",i2,function(H){!KQ(H.target,rA=>rA===l(I))&&Sr(l(cA))&&(i("click outside the editor, exit edit mode"),y(cA,e0(l(cA))),C&&l(g)&&(l(g).focus(),l(g).blur()),i("blur (outside editor)"),l(g)&&l(g).blur())});var p,F=Mt(v),U=W(F),q=H=>{(function(rA,HA){ft(HA,!1);var De=$(void 0,!0),fe=$(void 0,!0),Ie=$(void 0,!0),dt=M(HA,"json",9),At=M(HA,"selection",9),ui=M(HA,"readOnly",9),Cn=M(HA,"showSearch",13,!1),xi=M(HA,"history",9),Yn=M(HA,"onExpandAll",9),Tt=M(HA,"onCollapseAll",9),bo=M(HA,"onUndo",9),kn=M(HA,"onRedo",9),oo=M(HA,"onSort",9),An=M(HA,"onTransform",9),Lt=M(HA,"onContextMenu",9),Ti=M(HA,"onCopy",9),xt=M(HA,"onRenderMenu",9);function rt(){Cn(!Cn())}var Ai=$(void 0,!0),ho=$(void 0,!0),Fr=$(void 0,!0),Tn=$(void 0,!0);pA(()=>k(dt()),()=>{y(De,dt()!==void 0)}),pA(()=>(l(De),k(At()),Vi),()=>{y(fe,l(De)&&(Gn(At())||Lr(At())||Vi(At())))}),pA(()=>(k(Yn()),k(dt())),()=>{y(Ai,{type:"button",icon:AYA,title:"Expand all",className:"jse-expand-all",onClick:Yn(),disabled:!Fo(dt())})}),pA(()=>(k(Tt()),k(dt())),()=>{y(ho,{type:"button",icon:eYA,title:"Collapse all",className:"jse-collapse-all",onClick:Tt(),disabled:!Fo(dt())})}),pA(()=>k(dt()),()=>{y(Fr,{type:"button",icon:u4,title:"Search (Ctrl+F)",className:"jse-search",onClick:rt,disabled:dt()===void 0})}),pA(()=>(k(ui()),l(Ai),l(ho),k(oo()),k(dt()),k(An()),l(Fr),k(Lt()),k(bo()),k(xi()),k(kn()),k(Ti()),l(fe)),()=>{y(Tn,ui()?[l(Ai),l(ho),{type:"separator"},{type:"button",icon:G0,title:"Copy (Ctrl+C)",className:"jse-copy",onClick:Ti(),disabled:!l(fe)},{type:"separator"},l(Fr),{type:"space"}]:[l(Ai),l(ho),{type:"separator"},{type:"button",icon:Q4,title:"Sort",className:"jse-sort",onClick:oo(),disabled:ui()||dt()===void 0},{type:"button",icon:d4,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:An(),disabled:ui()||dt()===void 0},l(Fr),{type:"button",icon:sL,title:EK,className:"jse-contextmenu",onClick:Lt()},{type:"separator"},{type:"button",icon:K5,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:bo(),disabled:!xi().canUndo},{type:"button",icon:G5,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:kn(),disabled:!xi().canRedo},{type:"space"}])}),pA(()=>(k(xt()),l(Tn)),()=>{y(Ie,xt()(l(Tn))||l(Tn))}),ln(),qt(!0),l7(rA,{get items(){return l(Ie)}}),mt()})(H,{get json(){return l(gA)},get selection(){return l(cA)},get readOnly(){return B()},get history(){return h()},onExpandAll:Je,onCollapseAll:vt,onUndo:Zo,onRedo:Ci,onSort:Xo,onTransform:$i,onContextMenu:Li,onCopy:ai,get onRenderMenu(){return wA()},get showSearch(){return l(St)},set showSearch(rA){y(St,rA)},$$legacy:!0})};GA(U,H=>{x()&&H(q)});var Z=CA(U,2),RA=H=>{fYA(H,{get json(){return l(gA)},get selection(){return l(cA)},onSelect:Ko,get onError(){return dA()},get pathParser(){return V()}})};GA(Z,H=>{R()&&H(RA)});var ee=CA(Z,2),ne=H=>{var rA=zYA(),HA=Mt(rA),De=W(HA);De.readOnly=!0,Qo(De,At=>y(g,At),()=>l(g));var fe=CA(HA,2),Ie=At=>{var ui=_o(),Cn=Mt(ui),xi=Tt=>{(function(bo,kn){ft(kn,!0);var oo=sYA();oo.__click=[oYA,kn];var An=CA(W(oo),2),Lt=CA(W(An),2),Ti=xt=>{var rt=rYA(),Ai=CA(Mt(rt),2);gn(Ai,"title","Create an empty JSON object (press '{')"),Ai.__click=[iYA,kn];var ho=CA(Ai,2);gn(ho,"title","Create an empty JSON array (press '[')"),ho.__click=[nYA,kn],iA(xt,rt)};GA(Lt,xt=>{kn.readOnly||xt(Ti)}),iA(bo,oo),mt()})(Tt,{get readOnly(){return B()},onCreateObject:()=>{Ot(),un("{")},onCreateArray:()=>{Ot(),un("[")},onClick:()=>{Ot()}})},Yn=Tt=>{var bo=TYA(),kn=Mt(bo),oo=ZA(()=>B()?[]:[{icon:B4,text:"Repair manually",title:'Open the document in "code" mode and repair it manually',onClick:bn}]);pc(kn,{type:"error",message:"The loaded JSON document is invalid and could not be repaired automatically.",get actions(){return l(oo)}}),acA(CA(kn,2),{get text(){return l(zA)},get json(){return l(gA)},get indentation(){return j()},get parser(){return J()}}),iA(Tt,bo)};GA(Cn,Tt=>{l(zA)===""||l(zA)===void 0?Tt(xi):Tt(Yn,!1)}),iA(At,ui)},dt=At=>{var ui=OYA(),Cn=Mt(ui);AcA(W(Cn),{get json(){return l(gA)},get documentState(){return l(LA)},get parser(){return J()},get showSearch(){return l(St)},get showReplace(){return l(Se)},get readOnly(){return B()},columns:void 0,onSearch:Wt,onFocus:L,onPatch:ue,onClose:P});var xi=CA(Cn,2);gn(xi,"data-jsoneditor-scrollable-contents",!0);var Yn=W(xi),Tt=xt=>{iA(xt,HYA())};GA(Yn,xt=>{l(St)&&xt(Tt)}),jG(CA(Yn,2),{get value(){return l(gA)},pointer:"",get state(){return l(LA)},get validationErrors(){return l(MA)},get searchResults(){return l(Re)},get selection(){return l(cA)},get context(){return l(m)},get onDragSelectionStart(){return er}}),Qo(xi,xt=>y(c,xt),()=>l(c));var bo=CA(xi,2),kn=xt=>{var rt=ZA(()=>(l(Dt),oA(()=>"You pasted a JSON ".concat(Array.isArray(l(Dt).contents)?"array":"object"," as text")))),Ai=ZA(()=>[{icon:_0,text:"Paste as JSON instead",title:"Replace the value with the pasted JSON",onMouseDown:Mn},{text:"Leave as is",title:"Keep the JSON embedded in the value",onClick:Qi}]);pc(xt,{type:"info",get message(){return l(rt)},get actions(){return l(Ai)}})};GA(bo,xt=>{l(Dt)&&xt(kn)});var oo=CA(bo,2),An=xt=>{var rt=ZA(()=>[{icon:_0,text:"Paste as string instead",title:"Paste the clipboard data as a single string value instead of an array",onClick:fn},{text:"Leave as is",title:"Keep the pasted array",onClick:mi}]);pc(xt,{type:"info",message:"Multiline text was pasted as array",get actions(){return l(rt)}})};GA(oo,xt=>{l(_e)&&xt(An)});var Lt=CA(oo,2),Ti=xt=>{var rt=ZA(()=>B()?[]:[{icon:U5,text:"Ok",title:"Accept the repaired document",onClick:Jt},{icon:B4,text:"Repair manually instead",title:"Leave the document unchanged and repair it manually instead",onClick:bn}]);pc(xt,{type:"success",message:"The loaded JSON document was invalid but is successfully repaired.",get actions(){return l(rt)},onClose:Ot})};GA(Lt,xt=>{l(Ee)&&xt(Ti)}),SK(CA(Lt,2),{get validationErrors(){return l(NA)},selectError:X}),iA(At,ui)};GA(fe,At=>{l(gA)===void 0?At(Ie):At(dt,!1)}),ce("paste",De,Xi),iA(H,rA)},Pe=H=>{iA(H,PYA())};GA(ee,H=>{n?H(Pe,!1):H(ne)}),Qo(F,H=>y(I,H),()=>l(I));var Oe=CA(F,2),ve=H=>{ZaA(H,{onClose:()=>y(tA,!1)})};GA(Oe,H=>{l(tA)&&H(ve)});var Ne=CA(Oe,2),Yi=H=>{WaA(H,AI(()=>l(OA),{onClose:()=>{var rA;(rA=l(OA))===null||rA===void 0||rA.onClose(),y(OA,void 0)}}))};return GA(Ne,H=>{l(OA)&&H(Yi)}),we(H=>p=jt(F,1,"jse-tree-mode svelte-vrx1dr",null,p,H),[()=>({"no-main-menu":!x()})],ZA),ce("keydown",F,function(H){var rA=s2(H),HA=H.shiftKey;if(i("keydown",{combo:rA,key:H.key}),rA==="Ctrl+X"&&(H.preventDefault(),b(!0)),rA==="Ctrl+Shift+X"&&(H.preventDefault(),b(!1)),rA==="Ctrl+C"&&(H.preventDefault(),ai(!0)),rA==="Ctrl+Shift+C"&&(H.preventDefault(),ai(!1)),rA==="Ctrl+D"&&(H.preventDefault(),Vo()),rA!=="Delete"&&rA!=="Backspace"||(H.preventDefault(),qo()),rA==="Insert"&&(H.preventDefault(),Qn("structure")),rA==="Ctrl+A"&&(H.preventDefault(),y(cA,vi([]))),rA==="Ctrl+Q"&&bt(H),rA==="ArrowUp"||rA==="Shift+ArrowUp"){H.preventDefault();var De=l(cA)?TrA(l(gA),l(LA),l(cA),HA)||l(cA):gQ(l(gA),l(LA));y(cA,De),re(nt(De))}if(rA==="ArrowDown"||rA==="Shift+ArrowDown"){H.preventDefault();var fe=l(cA)?function(xi,Yn,Tt){var bo=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(Tt){var kn=bo?nt(Tt):tI(xi,Tt),oo=Fo(Ye(xi,kn))?KrA(xi,Yn,kn,!0):Yn,An=gG(xi,Yn,kn),Lt=gG(xi,oo,kn);if(bo)return yr(Tt)?An!==void 0?Js(An,An):void 0:Ya(Tt)?Lt!==void 0?Js(Lt,Lt):void 0:Lt!==void 0?Js(WC(Tt),Lt):void 0;if(Ya(Tt))return Lt!==void 0?vi(Lt):void 0;if(yr(Tt)||Vi(Tt))return An!==void 0?vi(An):void 0;if(Lr(Tt)){if(An===void 0||An.length===0)return;var Ti=yi(An),xt=Ye(xi,Ti);return Array.isArray(xt)?vi(An):a2(An)}return Gn(Tt)?Lt!==void 0?vi(Lt):An!==void 0?vi(An):void 0:void 0}}(l(gA),l(LA),l(cA),HA)||l(cA):gQ(l(gA),l(LA));y(cA,fe),re(nt(fe))}if(rA==="ArrowLeft"||rA==="Shift+ArrowLeft"){H.preventDefault();var Ie=l(cA)?function(xi,Yn,Tt){var bo=arguments.length>3&&arguments[3]!==void 0&&arguments[3],kn=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(Tt){var{caret:oo,previous:An}=HrA(xi,Yn,Tt,kn);if(bo)return Gn(Tt)?void 0:Js(Tt.path,Tt.path);if(oo&&An)return UG(An);var Lt=yi(nt(Tt)),Ti=Ye(xi,Lt);return Vi(Tt)&&Array.isArray(Ti)?Js(Tt.path,Tt.path):Gn(Tt)&&!Array.isArray(Ti)?a2(Tt.focusPath):void 0}}(l(gA),l(LA),l(cA),HA,!B())||l(cA):gQ(l(gA),l(LA));y(cA,Ie),re(nt(Ie))}if(rA==="ArrowRight"||rA==="Shift+ArrowRight"){H.preventDefault();var dt=l(cA)&&l(gA)!==void 0?function(xi,Yn,Tt){var bo=arguments.length>3&&arguments[3]!==void 0&&arguments[3],kn=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(Tt){var{caret:oo,next:An}=HrA(xi,Yn,Tt,kn);return bo?Gn(Tt)?void 0:Js(Tt.path,Tt.path):oo&&An?UG(An):Gn(Tt)?vi(Tt.focusPath):void 0}}(l(gA),l(LA),l(cA),HA,!B())||l(cA):gQ(l(gA),l(LA));y(cA,dt),re(nt(dt))}if(rA==="Enter"&&l(cA)){if(r7(l(cA))){var At=l(cA).focusPath,ui=Ye(l(gA),yi(At));Array.isArray(ui)&&(H.preventDefault(),y(cA,vi(At)))}Lr(l(cA))&&(H.preventDefault(),y(cA,pe(pe({},l(cA)),{},{edit:!0}))),Vi(l(cA))&&(H.preventDefault(),Fo(Ye(l(gA),l(cA).path))?PA(l(cA).path,!0):y(cA,pe(pe({},l(cA)),{},{edit:!0})))}if(rA.replace(/^Shift\+/,"").length===1&&l(cA))return H.preventDefault(),void un(H.key);if(rA==="Enter"&&(Ya(l(cA))||yr(l(cA))))return H.preventDefault(),void un("");if(rA==="Ctrl+Enter"&&Vi(l(cA))){var Cn=Ye(l(gA),l(cA).path);n7(Cn)&&window.open(String(Cn),"_blank")}rA==="Escape"&&l(cA)&&(H.preventDefault(),y(cA,void 0)),rA==="Ctrl+F"&&(H.preventDefault(),Yt(!1)),rA==="Ctrl+H"&&(H.preventDefault(),Yt(!0)),rA==="Ctrl+Z"&&(H.preventDefault(),Zo()),rA==="Ctrl+Shift+Z"&&(H.preventDefault(),Ci())}),ce("mousedown",F,function(H){i("handleMouseDown",H);var rA=H.target;EaA(rA,"BUTTON")||rA.isContentEditable||(Ot(),l(cA)||l(gA)!==void 0||l(zA)!==""&&l(zA)!==void 0||(i("createDefaultSelection"),y(cA,vi([]))))}),ce("contextmenu",F,bt),iA(t,v),Ft(e,"expand",kA),Ft(e,"collapse",le),Ft(e,"validate",XA),Ft(e,"getJson",ot),Ft(e,"patch",Ht),Ft(e,"acceptAutoRepair",Jt),Ft(e,"openTransformModal",nr),Ft(e,"scrollTo",yt),Ft(e,"findElement",hA),Ft(e,"findSearchResult",Ae),Ft(e,"focus",Ot),mt({expand:kA,collapse:le,validate:XA,getJson:ot,patch:Ht,acceptAutoRepair:Jt,openTransformModal:nr,scrollTo:yt,findElement:hA,findSearchResult:Ae,focus:Ot})}function gcA(t){return typeof(e=t)!="object"||e===null?t:new Proxy(t,{get:(A,i,n)=>gcA(Reflect.get(A,i,n)),set:()=>!1,deleteProperty:()=>!1});var e}var yy=xr("jsoneditor:History");function lcA(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=t.maxItems||1e3,A=[],i=0;function n(){return i0}function r(){return{canUndo:n(),canRedo:o(),items:()=>A.slice().reverse(),add:a,undo:g,redo:I,clear:c}}function s(){t.onChange&&t.onChange(r())}function a(C){yy("add",C),A=[C].concat(A.slice(i)).slice(0,e),i=0,s()}function c(){yy("clear"),A=[],i=0,s()}function g(){if(n()){var C=A[i];return i+=1,yy("undo",C),s(),C}}function I(){if(o())return yy("redo",A[i-=1]),s(),A[i]}return{get:r}}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-transform-modal-inner.svelte-rrrjnb { + flex: 1; + display: flex; + flex-direction: column; + min-width: 0; + min-height: 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) { + color: inherit; + flex: 1; + display: flex; + flex-direction: column; + padding: 0; + overflow: auto; + min-width: 0; + min-height: 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) { + display: flex; + flex-direction: row; + justify-content: flex-end; + padding-top: var(--jse-padding, 10px); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) button.jse-primary:where(.svelte-rrrjnb) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); + color: var(--jse-button-primary-color, #fff); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) button.jse-primary:where(.svelte-rrrjnb):hover { + background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) button.jse-primary:where(.svelte-rrrjnb):disabled { + background: var(--jse-button-primary-background-disabled, #9d9d9d); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) { + flex: 1; + display: flex; + gap: calc(2 * var(--jse-padding, 10px)); + min-height: 0; + box-sizing: border-box; + padding: 0 calc(2 * var(--jse-padding, 10px)) var(--jse-padding, 10px); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) { + flex: 1; + display: flex; + flex-direction: column; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) p { + margin: var(--jse-padding, 10px) 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) p:first-child { + margin-top: 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) p:last-child { + margin-bottom: 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) code { + background: var(--jse-modal-code-background, rgba(0, 0, 0, 0.05)); + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .query-error:where(.svelte-rrrjnb) { + color: var(--jse-error-color, #ee5341); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) textarea.jse-query:where(.svelte-rrrjnb) { + flex: 1; + outline: none; + resize: vertical; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) { + flex: 1; + display: flex; + flex-direction: column; + gap: calc(2 * var(--jse-padding, 10px)); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-original-data:where(.svelte-rrrjnb) { + flex: 1; + display: flex; + flex-direction: column; + min-height: 0; + box-sizing: border-box; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-original-data.jse-hide:where(.svelte-rrrjnb) { + flex: none; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-preview-data:where(.svelte-rrrjnb) { + flex: 1; + display: flex; + flex-direction: column; + min-height: 0; + box-sizing: border-box; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents.jse-hide-original-data:where(.svelte-rrrjnb) { + flex-direction: column; + gap: 0; + margin-bottom: 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) { + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)) calc(2 * var(--jse-padding, 10px)); +} +@media screen and (max-width: 1200px) { + .jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) { + flex-direction: column; + overflow: auto; + } + .jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) textarea.jse-query:where(.svelte-rrrjnb) { + min-height: 150px; + flex: none; + } + .jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-tree-mode { + height: 300px; + flex: none; + } +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-label:where(.svelte-rrrjnb) { + font-weight: bold; + display: block; + box-sizing: border-box; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-label:where(.svelte-rrrjnb) .jse-label-inner:where(.svelte-rrrjnb) { + margin-top: calc(2 * var(--jse-padding, 10px)); + margin-bottom: calc(0.5 * var(--jse-padding, 10px)); + box-sizing: border-box; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-label:where(.svelte-rrrjnb) .jse-label-inner:where(.svelte-rrrjnb) button:where(.svelte-rrrjnb) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + font-weight: bold; + padding: 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-tree-mode { + flex: 1; + background: var(--jse-input-background-readonly, transparent); + box-shadow: none; + box-sizing: border-box; + --jse-main-border: var(--jse-input-border, 1px solid #d8dbdf); +} +.jse-transform-modal-inner.svelte-rrrjnb input:where(.svelte-rrrjnb), +.jse-transform-modal-inner.svelte-rrrjnb textarea:where(.svelte-rrrjnb) { + border: var(--jse-input-border, 1px solid #d8dbdf); + outline: none; + box-sizing: border-box; + padding: calc(0.5 * var(--jse-padding, 10px)); + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + color: inherit; + background: var(--jse-input-background, var(--jse-background-color, #fff)); +} +.jse-transform-modal-inner.svelte-rrrjnb input:where(.svelte-rrrjnb):focus, +.jse-transform-modal-inner.svelte-rrrjnb textarea:where(.svelte-rrrjnb):focus { + border: var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa))); +} +.jse-transform-modal-inner.svelte-rrrjnb input:where(.svelte-rrrjnb):read-only, +.jse-transform-modal-inner.svelte-rrrjnb textarea:where(.svelte-rrrjnb):read-only { + background: var(--jse-input-background-readonly, transparent); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-preview.jse-error:where(.svelte-rrrjnb) { + flex: 1; + background: var(--jse-input-background-readonly, transparent); + border: var(--jse-input-border, 1px solid #d8dbdf); + color: var(--jse-error-color, #ee5341); + padding: calc(0.5 * var(--jse-padding, 10px)); +} +.jse-transform-modal-inner.svelte-rrrjnb a { + color: var(--jse-a-color, #156fc5); +} +.jse-transform-modal-inner.svelte-rrrjnb a:hover { + color: var(--jse-a-color-highlight, #0f508d); +}`);var Y3=i7(()=>ZKA),IQ=i7(()=>WKA),qYA=vA('
      '),VYA=vA(" ",1),ZYA=vA('
      '),WYA=vA('
      Language
      Path
      Query
      Preview
      ',1),XYA=vA('
      ');function $YA(t,e){var A,i,n;ft(e,!1);var o=xr("jsoneditor:TransformModal"),r=M(e,"id",25,()=>"transform-modal-"+QQ()),s=M(e,"json",9),a=M(e,"rootPath",25,()=>[]),c=M(e,"indentation",9),g=M(e,"truncateTextSize",9),I=M(e,"escapeControlCharacters",9),C=M(e,"escapeUnicodeCharacters",9),d=M(e,"parser",9),B=M(e,"parseMemoizeOne",9),E=M(e,"validationParser",9),u=M(e,"pathParser",9),h=M(e,"queryLanguages",9),w=M(e,"queryLanguageId",13),x=M(e,"onChangeQueryLanguage",9),R=M(e,"onRenderValue",9),D=M(e,"onRenderMenu",9),G=M(e,"onRenderContextMenu",9),J=M(e,"onClassName",9),z=M(e,"onTransform",9),K=M(e,"onClose",9),O=$(void 0,!0),V=$(lcA({onChange:LA=>y(V,LA)}).get(),!0),j=$(void 0,!0),dA=$(void 0,!0),fA=$(!1,!0),EA="".concat(r(),":").concat(It(a())),IA=(A=Y3()[EA])!==null&&A!==void 0?A:{},SA=$(IQ().showWizard!==!1,!0),nA=$(IQ().showOriginal!==!1,!0),lA=$((i=IA.queryOptions)!==null&&i!==void 0?i:{},!0),wA=$(w()===IA.queryLanguageId&&IA.query?IA.query:"",!0),VA=$((n=IA.isManual)!==null&&n!==void 0&&n,!0),ie=$(void 0,!0),UA=$(void 0,!0),BA=$({text:""},!0);function JA(LA){var cA;return(cA=h().find(Gt=>Gt.id===LA))!==null&&cA!==void 0?cA:h()[0]}function Xe(LA){try{y(lA,LA),y(wA,JA(w()).createQuery(l(j),LA)),y(ie,void 0),y(VA,!1),o("updateQueryByWizard",{queryOptions:l(lA),query:l(wA),isManual:l(VA)})}catch(cA){y(ie,String(cA))}}function We(LA){y(wA,LA.target.value),y(VA,!0),o("handleChangeQuery",{query:l(wA),isManual:l(VA)})}l(VA)||Xe(l(lA)),ws(()=>{var LA;(LA=l(O))===null||LA===void 0||LA.focus()});var KA=EE(function(LA,cA){if(LA===void 0)return y(BA,{text:""}),void y(UA,"Error: No JSON");if(cA.trim()!=="")try{o("previewTransform",{query:cA});var Gt=JA(w()).executeQuery(LA,cA,d());y(BA,{json:Gt}),y(UA,void 0)}catch(ct){y(BA,{text:""}),y(UA,String(ct))}else y(BA,{json:LA})},300);function tA(){if(l(j)===void 0)return y(BA,{text:""}),void y(UA,"Error: No JSON");try{o("handleTransform",{query:l(wA)});var LA=JA(w()).executeQuery(l(j),l(wA),d());z()([{op:"replace",path:It(a()),value:LA}]),K()()}catch(cA){console.error(cA),y(BA,{text:""}),y(UA,String(cA))}}function OA(){y(SA,!l(SA)),IQ(IQ().showWizard=l(SA))}function gA(){y(nA,!l(nA)),IQ(IQ().showOriginal=l(nA))}function zA(LA){LA.focus()}function xA(LA){o("handleChangeQueryLanguage",LA),w(LA),x()(LA),Xe(l(lA))}function Me(){l(fA)?y(fA,!l(fA)):K()()}pA(()=>(k(s()),k(a())),()=>{y(j,gcA(Ye(s(),a())))}),pA(()=>l(j),()=>{y(dA,l(j)?{json:l(j)}:{text:""})}),pA(()=>(l(j),l(wA)),()=>{KA(l(j),l(wA))}),pA(()=>(Y3(),l(lA),l(wA),k(w()),l(VA)),()=>{Y3(Y3()[EA]={queryOptions:l(lA),query:l(wA),queryLanguageId:w(),isManual:l(VA)}),o("store state in memory",EA,Y3()[EA])}),ln(),qt(!0),sf(t,{get onClose(){return K()},className:"jse-transform-modal",get fullscreen(){return l(fA)},children:(LA,cA)=>{var Gt=XYA();NG(W(Gt),{children:(ct,oe)=>{var Dt=WYA(),_e=Mt(Dt);(function(b,et){ft(et,!1);var ai,Wi=M(et,"queryLanguages",9),Xi=M(et,"queryLanguageId",9),xn=M(et,"fullscreen",13),Mo=M(et,"onChangeQueryLanguage",9),vn=M(et,"onClose",9),In=$(void 0,!0),{openAbsolutePopup:qo,closeAbsolutePopup:Vo}=cI("absolute-popup");function uo(){var Qn={queryLanguages:Wi(),queryLanguageId:Xi(),onChangeQueryLanguage:Kn=>{Vo(ai),Mo()(Kn)}};ai=qo(PUA,Qn,{offsetTop:-2,offsetLeft:0,anchor:l(In),closeOnOuterClick:!0})}qt(!0),qy(b,{title:"Transform",fullScreenButton:!0,get onClose(){return vn()},get fullscreen(){return xn()},set fullscreen(Qn){xn(Qn)},$$slots:{actions:(Qn,Kn)=>{var $A,Ei=VUA();Ui(W(Ei),{get data(){return mX}}),Qo(Ei,Ri=>y(In,Ri),()=>l(In)),we(Ri=>$A=jt(Ei,1,"jse-config svelte-1kpylsp",null,$A,Ri),[()=>({hide:Wi().length<=1})],ZA),ce("click",Ei,uo),iA(Qn,Ei)}},$$legacy:!0}),mt()})(_e,{get queryLanguages(){return h()},get queryLanguageId(){return w()},onChangeQueryLanguage:xA,get onClose(){return K()},get fullscreen(){return l(fA)},set fullscreen(b){y(fA,b)},$$legacy:!0});var Re=W(CA(_e,2)),St=W(Re),Se=CA(W(St),2);$sA(W(Se),()=>(k(w()),oA(()=>JA(w()).description)));var Wt=CA(Se,4),L=CA(Wt,2),T=W(L),P=W(T),X=W(P),kA=ZA(()=>l(SA)?Nl:uE);Ui(X,{get data(){return l(kA)}});var le=CA(L,2),Ee=b=>{var et=_o(),ai=Mt(et),Wi=xn=>{var Mo=VYA(),vn=Mt(Mo);HUA(vn,{get queryOptions(){return l(lA)},get json(){return l(j)},onChange:Xe});var In=CA(vn,2),qo=Vo=>{var uo=qYA(),Qn=W(uo);we(()=>pt(Qn,l(ie))),iA(Vo,uo)};GA(In,Vo=>{l(ie)&&Vo(qo)}),iA(xn,Mo)},Xi=xn=>{iA(xn,jr("(Only available for arrays, not for objects)"))};GA(ai,xn=>{l(j),oA(()=>Array.isArray(l(j)))?xn(Wi):xn(Xi,!1)}),iA(b,et)};GA(le,b=>{l(SA)&&b(Ee)});var NA=CA(le,4);Qo(NA,b=>y(O,b),()=>l(O));var MA,Ct,$e=CA(St,2),XA=W($e),ot=W(XA),Si=W(ot),Zi=W(Si),Oi=W(Zi),Le=ZA(()=>l(nA)?Nl:uE);Ui(Oi,{get data(){return l(Le)}});var zi=CA(ot,2),fi=b=>{$G(b,{get externalContent(){return l(dA)},externalSelection:void 0,get history(){return l(V)},readOnly:!0,get truncateTextSize(){return g()},mainMenuBar:!1,navigationBar:!1,get indentation(){return c()},get escapeControlCharacters(){return I()},get escapeUnicodeCharacters(){return C()},get parser(){return d()},get parseMemoizeOne(){return B()},get onRenderValue(){return R()},get onRenderMenu(){return D()},get onRenderContextMenu(){return G()},onError:oA(()=>console.error),get onChange(){return er},get onChangeMode(){return er},get onSelect(){return er},get onUndo(){return er},get onRedo(){return er},get onFocus(){return er},get onBlur(){return er},get onSortModal(){return er},get onTransformModal(){return er},get onJSONEditorModal(){return er},get onClassName(){return J()},validator:void 0,get validationParser(){return E()},get pathParser(){return u()}})};GA(zi,b=>{l(nA)&&b(fi)});var Ht=CA(XA,2),Rt=CA(W(Ht),2),Bi=b=>{$G(b,{get externalContent(){return l(BA)},externalSelection:void 0,get history(){return l(V)},readOnly:!0,get truncateTextSize(){return g()},mainMenuBar:!1,navigationBar:!1,get indentation(){return c()},get escapeControlCharacters(){return I()},get escapeUnicodeCharacters(){return C()},get parser(){return d()},get parseMemoizeOne(){return B()},get onRenderValue(){return R()},get onRenderMenu(){return D()},get onRenderContextMenu(){return G()},onError:oA(()=>console.error),get onChange(){return er},get onChangeMode(){return er},get onSelect(){return er},get onUndo(){return er},get onRedo(){return er},get onFocus(){return er},get onBlur(){return er},get onSortModal(){return er},get onTransformModal(){return er},get onJSONEditorModal(){return er},get onClassName(){return J()},validator:void 0,get validationParser(){return E()},get pathParser(){return u()}})},Mi=b=>{var et=ZYA(),ai=W(et);we(()=>pt(ai,l(UA))),iA(b,et)};GA(Rt,b=>{l(UA)?b(Mi,!1):b(Bi)});var Jt=W(CA(Re,2));rs(()=>ce("click",Jt,tA)),Ts(Jt,b=>zA?.(b)),we((b,et,ai)=>{ed(Wt,b),ed(NA,l(wA)),MA=jt($e,1,"jse-data-contents svelte-rrrjnb",null,MA,et),Ct=jt(XA,1,"jse-original-data svelte-rrrjnb",null,Ct,ai),Jt.disabled=!!l(UA)},[()=>(k(Gi),k(a()),k(Ta),oA(()=>Gi(a())?"(document root)":Ta(a()))),()=>({"jse-hide-original-data":!l(nA)}),()=>({"jse-hide":!l(nA)})],ZA),ce("click",P,OA),ce("input",NA,We),ce("click",Zi,gA),iA(ct,Dt)},$$slots:{default:!0}}),Ts(Gt,(ct,oe)=>Vy?.(ct,oe),()=>Me),iA(LA,Gt)},$$slots:{default:!0}}),mt()}function $c(){}var ATA=0,Pr=class{constructor(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.id=ATA++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=cf.match(e)),A=>{var i=e(A);return i===void 0?null:[this,i]}}};Pr.closedBy=new Pr({deserialize:t=>t.split(" ")}),Pr.openedBy=new Pr({deserialize:t=>t.split(" ")}),Pr.group=new Pr({deserialize:t=>t.split(" ")}),Pr.isolate=new Pr({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}}),Pr.contextHash=new Pr({perNode:!0}),Pr.lookAhead=new Pr({perNode:!0}),Pr.mounted=new Pr({perNode:!0});var dsA,eTA=Object.create(null),cf=class t{constructor(e,A,i){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;this.name=e,this.props=A,this.id=i,this.flags=n}static define(e){var A=e.props&&e.props.length?Object.create(null):eTA,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),n=new t(e.name||"",A,e.id,i);if(e.props){for(var o of e.props)if(Array.isArray(o)||(o=o(n)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");A[o[0].id]=o[1]}}return n}prop(e){return this.props[e.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;var A=this.prop(Pr.group);return!!A&&A.indexOf(e)>-1}return this.id==e}static match(e){var A=Object.create(null);for(var i in e)for(var n of i.split(" "))A[n]=e[i];return o=>{for(var r=o.prop(Pr.group),s=-1;s<(r?r.length:0);s++){var a=A[s<0?o.name:r[s]];if(a)return a}}}};cf.none=new cf("",Object.create(null),0,8),function(t){t[t.ExcludeBuffers=1]="ExcludeBuffers",t[t.IncludeAnonymous=2]="IncludeAnonymous",t[t.IgnoreMounts=4]="IgnoreMounts",t[t.IgnoreOverlays=8]="IgnoreOverlays"}(dsA||(dsA={})),new Pr({perNode:!0});Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-status-bar.svelte-1ulj7zd { + background: var(--jse-panel-background, #ebebeb); + color: var(--jse-panel-color-readonly, #b2b2b2); + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + margin: 0; + border-top: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); + display: flex; + gap: var(--jse-padding, 10px); +} +.jse-status-bar.svelte-1ulj7zd:last-child { + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-status-bar.svelte-1ulj7zd .jse-status-bar-info:where(.svelte-1ulj7zd) { + padding: 2px; +}`);var tTA=vA('
      '),iTA=vA('
      '),nTA=vA('
      '),oTA=vA('
      '),LK=AQ.define([{tag:ke.propertyName,color:"var(--internal-key-color)"},{tag:ke.number,color:"var(--internal-value-color-number)"},{tag:ke.bool,color:"var(--internal-value-color-boolean)"},{tag:ke.string,color:"var(--internal-value-color-string)"},{tag:ke.keyword,color:"var(--internal-value-color-null)"}]),rTA=t_(LK),sTA=LK.style;LK.style=t=>sTA(t||[]);var aTA=[Bo.fromClass(class{constructor(t){this.view=t,this.indentUnit=Ug(t.state),this.initialPaddingLeft=null,this.isChrome=window?.navigator.userAgent.includes("Chrome"),this.generate(t.state)}update(t){var e=Ug(t.state);(e!==this.indentUnit||t.docChanged||t.viewportChanged)&&(this.indentUnit=e,this.generate(t.state))}generate(t){var e=new fs;this.initialPaddingLeft?this.addStyleToBuilder(e,t,this.initialPaddingLeft):this.view.requestMeasure({read:A=>{var i=A.contentDOM.querySelector(".cm-line");i&&(this.initialPaddingLeft=window.getComputedStyle(i).getPropertyValue("padding-left"),this.addStyleToBuilder(e,A.state,this.initialPaddingLeft)),this.decorations=e.finish()}}),this.decorations=e.finish()}addStyleToBuilder(t,e,A){var i=this.getVisibleLines(e);for(var n of i){var{numColumns:o,containsTab:r}=this.numColumns(n.text,e.tabSize),s="calc(".concat(o+this.indentUnit,"ch + ").concat(A,")"),a=this.isChrome?"calc(-".concat(o+this.indentUnit,"ch - ").concat(r?1:0,"px)"):"-".concat(o+this.indentUnit,"ch");t.add(n.from,n.from,ht.line({attributes:{style:"padding-left: ".concat(s,"; text-indent: ").concat(a,";")}}))}}getVisibleLines(t){var e=new Set,A=null;for(var{from:i,to:n}of this.view.visibleRanges)for(var o=i;o<=n;){var r=t.doc.lineAt(o);A!==r&&(e.add(r),A=r),o=r.to+1}return e}numColumns(t,e){var A=0,i=!1;A:for(var n=0;nt.decorations})];Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-text-mode.svelte-1pr65po { + --internal-key-color: var(--jse-key-color, #1a1a1a); + --internal-value-color-number: var(--jse-value-color-number, #ee422e); + --internal-value-color-boolean: var(--jse-value-color-boolean, #ff8c00); + --internal-value-color-string: var(--jse-value-color-string, #008000); + --internal-value-color-null: var(--jse-value-color-null, #004ed0); + flex: 1; + box-sizing: border-box; + display: flex; + flex-direction: column; + background: var(--jse-background-color, #fff); +} +.jse-text-mode.no-main-menu.svelte-1pr65po { + border-top: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) { + flex: 1; + display: flex; + position: relative; + flex-direction: column; + overflow: hidden; + min-width: 0; + min-height: 0; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po):last-child { + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-text-mode.svelte-1pr65po .jse-contents.jse-hidden:where(.svelte-1pr65po) { + visibility: hidden; + position: absolute; + top: 0; + left: 0; +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor { + flex: 1; + overflow: hidden; +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-scroller { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + line-height: var(--jse-line-height, calc(1em + 4px)); + color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-gutters { + background: var(--jse-panel-background, #ebebeb); + color: var(--jse-panel-color-readonly, #b2b2b2); + border-right: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-activeLine, +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-activeLineGutter { + background: var(--jse-active-line-background-color, rgba(0, 0, 0, 0.06)); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-selectionBackground { + background: var(--jse-selection-background-color, #d3d3d3); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-searchMatch { + background-color: var(--jse-search-match-color, #ffe665); + outline: var(--jse-search-match-outline, none); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-searchMatch.cm-searchMatch-selected { + background-color: var(--jse-search-match-active-color, var(--jse-search-match-color, #ffe665)); + outline: var(--jse-search-match-outline, 2px solid #e0be00); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-selectionMatch { + background-color: var(--jse-search-match-background-color, rgba(153, 255, 119, 0.5019607843)); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-foldPlaceholder { + background: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); + color: var(--jse-tag-color, var(--jse-text-color-inverse, #fff)); + border: none; + padding: 0 var(--jse-padding, 10px); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-tooltip { + font-size: var(--jse-font-size, 16px); + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + color: var(--jse-tooltip-color, var(--jse-text-color, #4d4d4d)); + background: var(--jse-tooltip-background, var(--jse-modal-background, #f5f5f5)); + border: var(--jse-tooltip-border, var(--jse-main-border, 1px solid #d7d7d7)); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-diagnosticAction { + background: var(--jse-tooltip-action-button-color, var(--jse-text-color-inverse, #fff)); + background: var(--jse-tooltip-action-button-background, #4d4d4d); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-panels { + border-bottom: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search { + background: var(--jse-panel-background, #ebebeb); + color: var(--jse-panel-color, var(--jse-text-color, #4d4d4d)); + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search input { + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size-text-mode-search, 80%); + color: var(--jse-input-color, var(--jse-text-color, #4d4d4d)); + border: var(--jse-input-border, 1px solid #d8dbdf); + background: var(--jse-input-background, var(--jse-background-color, #fff)); + margin-right: 2px; +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search button { + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size-text-mode-search, 80%); + color: var(--jse-panel-button-color, inherit); + background: var(--jse-panel-button-background, transparent); + border: none; + cursor: pointer; + text-transform: capitalize; + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); + margin: 0; +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search button:hover { + color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); + background: var(--jse-panel-button-background-highlight, #e0e0e0); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search label { + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size-text-mode-search, 80%); + padding-left: var(--jse-padding, 10px); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search label input { + margin-right: 2px; +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search button[name="close"] { + width: 32px; + height: 32px; + font-size: 24px; + line-height: 24px; + padding: 0; + right: 0; + top: -4px; +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-cursor-primary { + border-color: var(--jse-text-color, #4d4d4d); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .jse-loading-space:where(.svelte-1pr65po) { + flex: 1; +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .jse-loading:where(.svelte-1pr65po) { + flex: 2; + text-align: center; + color: var(--jse-panel-color-readonly, #b2b2b2); + box-sizing: border-box; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); +} +.jse-text-mode.svelte-1pr65po .jse-contents.jse-preview:where(.svelte-1pr65po) { + flex: 1; + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + color: var(--jse-panel-color-readonly, #b2b2b2); + overflow: auto; + white-space: pre-wrap; + word-break: break-word; + padding: 2px; +} +.jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) { + display: flex; + align-items: center; + gap: 8px; + padding: 8px 12px; + background: var(--jse-background-color, #fff); + border-top: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); + border-bottom: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); +} +.jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) .jse-fold-tip:where(.svelte-1pr65po) { + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size-mono, 14px); + color: var(--jse-panel-color-readonly, #b2b2b2); +} +.jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) .jse-fold-progress-track:where(.svelte-1pr65po) { + flex: 1; + height: 6px; + background: var(--jse-panel-background, #ebebeb); + border-radius: 3px; + overflow: hidden; + border: 1px solid var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); +} +.jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) .jse-fold-progress-fill:where(.svelte-1pr65po) { + height: 100%; + background: linear-gradient(90deg, var(--jse-theme-color, #3883fa), var(--jse-theme-color-highlight, #5f9dff)); + border-radius: 2px; + transition: width 0.1s ease; + min-width: 2px; +} +.jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) .jse-fold-cancel-button:where(.svelte-1pr65po) { + padding: 4px 12px; + font-size: 12px; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + background: var(--jse-theme-color, #3883fa); + color: #fff; + border-radius: 3px; + cursor: pointer; + transition: background-color 0.2s ease; + flex-shrink: 0; + border: 1px solid var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) .jse-fold-cancel-button:where(.svelte-1pr65po):hover { + background: var(--jse-theme-color-highlight, #5f9dff); + color: #fff; +}`);var cTA=vA('
      Collapsing
      '),gTA=vA('
      ',1),lTA=vA(" ",1),ITA=vA("
      ",1),CTA=vA('
      loading...
      '),dTA=vA("
      ");function BTA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=M(e,"readOnly",9),o=M(e,"mainMenuBar",9),r=M(e,"statusBar",9),s=M(e,"askToFormat",9),a=M(e,"externalContent",9),c=M(e,"externalSelection",9),g=M(e,"history",9),I=M(e,"indentation",9),C=M(e,"tabSize",9),d=M(e,"escapeUnicodeCharacters",9),B=M(e,"parser",9),E=M(e,"validator",9),u=M(e,"validationParser",9),h=M(e,"onChange",9),w=M(e,"onChangeMode",9),x=M(e,"onSelect",9),R=M(e,"onUndo",9),D=M(e,"onRedo",9),G=M(e,"onError",9),J=M(e,"onFocus",9),z=M(e,"onBlur",9),K=M(e,"onRenderMenu",9),O=M(e,"onSortModal",9),V=M(e,"onTransformModal",9),j=xr("jsoneditor:TextMode"),dA={key:"Mod-i",run:kA,shift:le,preventDefault:!0},fA=typeof window>"u";j("isSSR:",fA);var EA,IA=$(void 0,!0),SA=$(void 0,!0),nA=$(void 0,!0),lA=$(!1,!0),wA=$(s(),!0),VA=$([],!0),ie=$(!1,!0),UA=$(0,!0),BA=$(0,!0),JA=null,Xe=new Jl,We=new Jl,KA=new Jl,tA=new Jl,OA=new Jl,gA=a(),zA=$(xG(gA,I(),B()),!0),xA=Fa.define(),Me=null;function LA(){if(!Me||Me.length===0)return!1;var hA=Me[0].startState,Ae=Me[Me.length-1].state,re=Me.map(ue=>ue.changes).reduce((ue,aA)=>ue.compose(aA)),xe={type:"text",undo:{changes:re.invert(hA.doc).toJSON(),selection:uo(hA.selection)},redo:{changes:re.toJSON(),selection:uo(Ae.selection)}};return j("add history item",xe),g().add(xe),Me=null,!0}var cA=$(d(),!0);ws(_t(function*(){if(!fA)try{EA=function(hA){var{target:Ae,initialText:re,readOnly:xe,indentation:ue}=hA;j("Create CodeMirror editor",{readOnly:xe,indentation:ue});var aA=function(PA,Je){return IG(PA)?PA.ranges.every(vt=>vt.anchor{y(nA,PA.state),PA.docChanged&&(PA.transactions.some(Je=>!!Je.annotation(xA))||(Me=[...Me??[],PA]),vn()),PA.selectionSet&&Vo()}),DoA(),RoA({top:!0}),Pt.lineWrapping,We.of(Dr.readOnly.of(xe)),tA.of(Dr.tabSize.of(C())),KA.of(Mo(ue)),OA.of(Pt.theme({},{dark:Rt()}))]});return EA=new Pt({state:DA,parent:Ae}),aA&&EA.dispatch(EA.state.update({selection:aA.main,scrollIntoView:!0})),EA}({target:l(IA),initialText:Qn(l(zA),l(lA))?"":l(A).escapeValue(l(zA)),readOnly:n(),indentation:I()})}catch(hA){console.error(hA)}})),ig(()=>{In(),EA&&(j("Destroy CodeMirror editor"),EA.destroy()),Wt()});var Gt=h1(),ct=h1();function oe(){EA&&(j("focus"),EA.focus())}function Dt(hA,Ae){if(EA)try{(function(){var re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],xe=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],ue=EA.state,aA=ue.doc.length,DA=VF(ue,aA,1/0);if(DA){var PA=[];if(re.length===0)PA=St(DA,ue,void 0,xe);else{var{from:Je}=iG(l(A).escapeValue(l(zA)),re);Je!==void 0&&Je!==0&&(PA=St(DA,ue,Je,xe))}PA.length>0&&function(vt){Se.apply(this,arguments)}(PA)}})(hA,Ae)}catch(re){G()(re)}}function _e(){return XF.of((hA,Ae,re)=>{var xe=VF(hA,hA.doc.length,1/0);if(!xe||xe.lengthre)){if(ue&&DA.from=Ae&&Je.to>re&&(ue=Je)}}}return ue})}function Re(hA){var Ae=hA.lastChild;return Ae&&Ae.to==hA.to&&Ae.type.isError}function St(hA,Ae,re){var xe=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3],ue=[],aA=new Set;return hA.iterate({enter(DA){if(re===void 0||DA.from>=re){var PA=$E(Ae,DA.from,DA.to);if(PA){var Je="".concat(PA.from,"-").concat(PA.to);if(!aA.has(Je))if(xe)ue.push({from:PA.from,to:PA.to}),aA.add(Je);else{var vt=ue.some(Yt=>Yt.from<=PA.from&&Yt.to>=PA.to);vt||(ue.push({from:PA.from,to:PA.to}),aA.add(Je))}}}}}),ue}function Se(){return Se=_t(function*(hA){if(hA.length!==0){var Ae=hA.length>5e3;Ae&&(y(ie,!0),y(UA,0),y(BA,hA.length),JA=new AbortController);var re=xe=>new Promise(ue=>{var aA;Ae&&(aA=JA)!==null&&aA!==void 0&&aA.signal.aborted?ue():requestAnimationFrame(()=>{var DA=Math.min(xe+100,hA.length),PA=hA.slice(xe,DA);EA.dispatch({effects:PA.map(Je=>tQ.of({from:Je.from,to:Je.to}))}),Ae&&y(UA,DA),DA1&&arguments[1]!==void 0?arguments[1]:KG;if(EA)try{if(hA&&hA.length>0){var{from:re}=iG(l(A).escapeValue(l(zA)),hA);re!==void 0&&(EA.dispatch({selection:{anchor:re,head:re}}),$F(EA))}else A_(EA);Ae?.(hA)}catch(xe){G()(xe)}}var T=!1;function P(hA){return X(hA,!1)}function X(hA,Ae){j("handlePatch",hA,Ae);var re=B().parse(l(zA)),xe=Ma(re,hA),ue=W8(re,hA);return b({text:B().stringify(xe,null,I())},Ae,!1),{json:xe,previousJson:re,undo:ue,redo:hA}}function kA(){if(j("format"),n())return!1;try{var hA=B().parse(l(zA));return b({text:B().stringify(hA,null,I())},!0,!1),y(wA,s()),!0}catch(Ae){G()(Ae)}return!1}function le(){if(j("compact"),n())return!1;try{var hA=B().parse(l(zA));return b({text:B().stringify(hA)},!0,!1),y(wA,!1),!0}catch(Ae){G()(Ae)}return!1}function Ee(){if(j("repair"),!n())try{b({text:Uc(l(zA))},!0,!1),y(Kn,cG),y($A,void 0)}catch(hA){G()(hA)}}function NA(){var hA;if(!n())try{var Ae=B().parse(l(zA));T=!0,O()({id:Gt,json:Ae,rootPath:[],onSort:(hA=_t(function*(re){var{operations:xe}=re;j("onSort",xe),X(xe,!0)}),function(re){return hA.apply(this,arguments)}),onClose:()=>{T=!1,oe()}})}catch(re){G()(re)}}function MA(hA){var{id:Ae,rootPath:re,onTransform:xe,onClose:ue}=hA;try{var aA=B().parse(l(zA));T=!0,V()({id:Ae||ct,json:aA,rootPath:re||[],onTransform:DA=>{xe?xe({operations:DA,json:aA,transformedJson:Ma(aA,DA)}):(j("onTransform",DA),X(DA,!0))},onClose:()=>{T=!1,oe(),ue&&ue()}})}catch(DA){G()(DA)}}function Ct(){n()||MA({rootPath:[]})}function $e(){EA&&(l(IA)&&l(IA).querySelector(".cm-search")?ty(EA):ey(EA))}function XA(){if(n())return!1;In();var hA=g().undo();return j("undo",hA),_rA(hA)?(EA.dispatch({annotations:xA.of("undo"),changes:hs.fromJSON(hA.undo.changes),selection:ae.fromJSON(hA.undo.selection),scrollIntoView:!0}),!0):(R()(hA),!1)}function ot(){if(n())return!1;In();var hA=g().redo();return j("redo",hA),_rA(hA)?(EA.dispatch({annotations:xA.of("redo"),changes:hs.fromJSON(hA.redo.changes),selection:ae.fromJSON(hA.redo.selection),scrollIntoView:!0}),!0):(D()(hA),!1)}function Si(){y(lA,!0),b(a(),!0,!0)}function Zi(){w()(ir.tree)}function Oi(){Xi()}function Le(hA){j("select validation error",hA);var{from:Ae,to:re}=Bi(hA);Ae!==void 0&&re!==void 0&&(zi(Ae,re),oe())}function zi(hA,Ae){j("setSelection",{anchor:hA,head:Ae}),EA&&EA.dispatch(EA.state.update({selection:{anchor:hA,head:Ae},scrollIntoView:!0}))}function fi(hA,Ae){if(Ae.state.selection.ranges.length===1){var re=Ae.state.selection.ranges[0],xe=l(zA).slice(re.from,re.to);if(xe==="{"||xe==="["){var ue=AK.default.parse(l(zA)),aA=Object.keys(ue.pointers).find(PA=>{var Je;return((Je=ue.pointers[PA].value)===null||Je===void 0?void 0:Je.pos)===re.from}),DA=ue.pointers[aA];aA&&DA&&DA.value&&DA.valueEnd&&(j("pointer found, selecting inner contents of path:",aA,DA),zi(DA.value.pos+1,DA.valueEnd.pos-1))}}}function Ht(){return coA(Ei,{delay:300})}function Rt(){return!!l(IA)&&getComputedStyle(l(IA)).getPropertyValue("--jse-theme").includes("dark")}function Bi(hA){var{path:Ae,message:re,severity:xe}=hA,{line:ue,column:aA,from:DA,to:PA}=iG(l(A).escapeValue(l(zA)),Ae);return{path:Ae,line:ue,column:aA,from:DA,to:PA,message:re,severity:xe,actions:[]}}function Mi(hA,Ae){var{line:re,column:xe,position:ue,message:aA}=hA;return{path:[],line:re,column:xe,from:ue,to:ue,severity:Og.error,message:aA,actions:Ae&&!n()?[{name:"Auto repair",apply:()=>Ee()}]:void 0}}function Jt(hA){return{from:hA.from||0,to:hA.to||0,message:hA.message||"",actions:hA.actions,severity:hA.severity}}function b(hA,Ae,re){var xe=xG(hA,I(),B()),ue=!ri(hA,gA),aA=gA;j("setCodeMirrorContent",{isChanged:ue,emitChange:Ae,forceUpdate:re}),EA&&(ue||re)&&(gA=hA,y(zA,xe),Qn(l(zA),l(lA))||EA.dispatch({changes:{from:0,to:EA.state.doc.length,insert:l(A).escapeValue(l(zA))}}),LA(),ue&&Ae&&qo(gA,aA))}function et(hA){return IG(hA)?ae.fromJSON(hA):void 0}function ai(){return Wi.apply(this,arguments)}function Wi(){return Wi=_t(function*(){j("refresh"),yield function(){return xn.apply(this,arguments)}()}),Wi.apply(this,arguments)}function Xi(){if(EA){var hA=EA?l(A).unescapeValue(EA.state.doc.toString()):"",Ae=hA!==l(zA);if(j("onChangeCodeMirrorValue",{isChanged:Ae}),Ae){var re=gA;y(zA,hA),gA={text:l(zA)},LA(),qo(gA,re),to(),Vo()}}}function xn(){return(xn=_t(function*(){if(to(),EA){var hA=Rt();return j("updateTheme",{dark:hA}),EA.dispatch({effects:[OA.reconfigure(Pt.theme({},{dark:hA}))]}),new Promise(Ae=>setTimeout(Ae))}return Promise.resolve()})).apply(this,arguments)}function Mo(hA){var Ae=JC.of(typeof hA=="number"?" ".repeat(hA):hA);return hA===" "?[Ae]:[Ae,aTA]}kK({onMount:ws,onDestroy:ig,getWindow:()=>Qf(l(SA)),hasFocus:()=>T&&document.hasFocus()||CK(l(SA)),onFocus:J(),onBlur:()=>{In(),z()()}});var vn=EE(Xi,300);function In(){vn.flush()}function qo(hA,Ae){h()&&h()(hA,Ae,{contentErrors:Ri(),patchResult:void 0})}function Vo(){x()(uo(l(nA).selection))}function uo(hA){return pe({type:Ln.text},hA.toJSON())}function Qn(hA,Ae){return!!hA&&hA.length>sG&&!Ae}var Kn=$(cG,!0),$A=$(void 0,!0);function Ei(){if(Qn(l(zA),l(lA)))return[];var hA=Ri();if(FrA(hA)){var{parseError:Ae,isRepairable:re}=hA;return[Jt(Mi(Ae,re))]}return bKA(hA)?hA.validationErrors.map(Bi).map(Jt):[]}function Ri(){j("validate:start"),In();var hA=un(l(A).escapeValue(l(zA)),E(),B(),u());return FrA(hA)?(y(Kn,hA.isRepairable?SrA:"invalid"),y($A,hA.parseError),y(VA,[])):(y(Kn,cG),y($A,void 0),y(VA,hA?.validationErrors||[])),j("validate:end"),hA}var un=hE(XUA);function Un(){l($A)&&function(hA){j("select parse error",hA);var Ae=Mi(hA,!1);zi(Ae.from!=null?Ae.from:0,Ae.to!=null?Ae.to:0),oe()}(l($A))}var Zo={icon:hX,text:"Show me",title:"Move to the parse error location",onClick:Un};pA(()=>k(d()),()=>{y(A,lK({escapeControlCharacters:!1,escapeUnicodeCharacters:d()}))}),pA(()=>k(a()),()=>{b(a(),!1,!1)}),pA(()=>k(c()),()=>{(function(hA){if(IG(hA)){var Ae=et(hA);!EA||!Ae||l(nA)&&l(nA).selection.eq(Ae)||(j("applyExternalSelection",Ae),EA.dispatch({selection:Ae}))}})(c())}),pA(()=>k(E()),()=>{(function(hA){j("updateLinter",hA),EA&&EA.dispatch({effects:Xe.reconfigure(Ht())})})(E())}),pA(()=>k(I()),()=>{(function(hA){EA&&(j("updateIndentation",hA),EA.dispatch({effects:KA.reconfigure(Mo(hA))}))})(I())}),pA(()=>k(C()),()=>{(function(hA){EA&&(j("updateTabSize",hA),EA.dispatch({effects:tA.reconfigure(Dr.tabSize.of(hA))}))})(C())}),pA(()=>k(n()),()=>{(function(hA){EA&&(j("updateReadOnly",hA),EA.dispatch({effects:[We.reconfigure(Dr.readOnly.of(hA))]}))})(n())}),pA(()=>(l(cA),k(d())),()=>{l(cA)!==d()&&(y(cA,d()),j("forceUpdateText",{escapeUnicodeCharacters:d()}),EA&&EA.dispatch({changes:{from:0,to:EA.state.doc.length,insert:l(A).escapeValue(l(zA))}}))}),pA(()=>(l(Kn),k(n()),_0),()=>{y(i,l(Kn)!==SrA||n()?[Zo]:[{icon:_0,text:"Auto repair",title:"Automatically repair JSON",onClick:Ee},Zo])}),ln(),qt(!0);var Ci,io=dTA(),Wo=W(io),Xo=hA=>{var Ae=ZA(()=>(l(zA),oA(()=>l(zA).length===0))),re=ZA(()=>!l(Ae)),xe=ZA(()=>!l(Ae)),ue=ZA(()=>!l(Ae)),aA=ZA(()=>!l(Ae));(function(DA,PA){ft(PA,!1);var Je=$(void 0,!0),vt=M(PA,"readOnly",9,!1),Yt=M(PA,"onFormat",9),rn=M(PA,"onCompact",9),no=M(PA,"onSort",9),sn=M(PA,"onTransform",9),Ji=M(PA,"onToggleSearch",9),bt=M(PA,"onUndo",9),Li=M(PA,"onRedo",9),Mn=M(PA,"canUndo",9),Qt=M(PA,"canRedo",9),fn=M(PA,"canFormat",9),Te=M(PA,"canCompact",9),Qi=M(PA,"canSort",9),mi=M(PA,"canTransform",9),bn=M(PA,"onRenderMenu",9),Ko={type:"button",icon:u4,title:"Search (Ctrl+F)",className:"jse-search",onClick:Ji()},Ot=$(void 0,!0);pA(()=>(k(vt()),k(Yt()),k(fn()),k(rn()),k(Te()),k(no()),k(Qi()),k(sn()),k(mi()),k(bt()),k(Mn()),k(Li()),k(Qt())),()=>{y(Ot,vt()?[Ko,{type:"space"}]:[{type:"button",icon:lsA,title:"Format JSON: add proper indentation and new lines (Ctrl+I)",className:"jse-format",onClick:Yt(),disabled:vt()||!fn()},{type:"button",icon:tYA,title:"Compact JSON: remove all white spacing and new lines (Ctrl+Shift+I)",className:"jse-compact",onClick:rn(),disabled:vt()||!Te()},{type:"separator"},{type:"button",icon:Q4,title:"Sort",className:"jse-sort",onClick:no(),disabled:vt()||!Qi()},{type:"button",icon:d4,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:sn(),disabled:vt()||!mi()},Ko,{type:"separator"},{type:"button",icon:K5,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:bt(),disabled:!Mn()},{type:"button",icon:G5,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:Li(),disabled:!Qt()},{type:"space"}])}),pA(()=>(k(bn()),l(Ot)),()=>{y(Je,bn()(l(Ot))||l(Ot))}),ln(),qt(!0),l7(DA,{get items(){return l(Je)}}),mt()})(hA,{get readOnly(){return n()},onFormat:kA,onCompact:le,onSort:NA,onTransform:Ct,onToggleSearch:$e,onUndo:XA,onRedo:ot,get canFormat(){return l(re)},get canCompact(){return l(xe)},get canSort(){return l(ue)},get canTransform(){return l(aA)},get canUndo(){return k(g()),oA(()=>g().canUndo)},get canRedo(){return k(g()),oA(()=>g().canRedo)},get onRenderMenu(){return K()}})};GA(Wo,hA=>{o()&&hA(Xo)});var nr=CA(Wo,2),on=hA=>{var Ae=cTA(),re=CA(W(Ae),2),xe=W(re),ue=CA(re,2);we(()=>eg(xe,"width: ".concat(l(BA)>0?l(UA)/l(BA)*100:0,"%"))),ce("click",ue,Wt),iA(hA,Ae)};GA(nr,hA=>{l(ie)&&hA(on)});var $i=CA(nr,2),yt=hA=>{var Ae,re=ITA(),xe=ZA(()=>(l(zA),l(lA),oA(()=>Qn(l(zA),l(lA))))),ue=Mt(re);Qo(ue,vt=>y(IA,vt),()=>l(IA));var aA=CA(ue,2),DA=vt=>{var Yt=gTA(),rn=Mt(Yt),no=ZA(()=>(k(ky),k(sG),l(zA),oA(()=>"The JSON document is larger than ".concat(ky(sG),", ")+"and may crash your browser when loading it in text mode. Actual size: ".concat(ky(l(zA).length),"."))));pc(rn,{get icon(){return m1},type:"error",get message(){return l(no)},actions:[{text:"Open anyway",title:"Open the document in text mode. This may freeze or crash your browser.",onClick:Si},{text:"Open in tree mode",title:"Open the document in tree mode. Tree mode can handle large documents.",onClick:Zi},{text:"Cancel",title:"Cancel opening this large document.",onClick:Oi}],onClose:oe});var sn=W(CA(rn,2));we(Ji=>pt(sn,Ji),[()=>(k(X0),l(zA),k(Gy),oA(()=>X0(l(zA)||"",Gy)))],ZA),iA(vt,Yt)};GA(aA,vt=>{l(xe)&&vt(DA)});var PA=CA(aA,2),Je=vt=>{var Yt=lTA(),rn=Mt(Yt),no=Mn=>{(function(Qt,fn){ft(fn,!1);var Te=M(fn,"editorState",8),Qi=$(),mi=$(),bn=$(),Ko=$(),Ot=$();pA(()=>k(Te()),()=>{var U;y(Qi,(U=Te())===null||U===void 0||(U=U.selection)===null||U===void 0||(U=U.main)===null||U===void 0?void 0:U.head)}),pA(()=>(l(Qi),k(Te())),()=>{var U;y(mi,l(Qi)!==void 0?(U=Te())===null||U===void 0||(U=U.doc)===null||U===void 0?void 0:U.lineAt(l(Qi)):void 0)}),pA(()=>l(mi),()=>{y(bn,l(mi)!==void 0?l(mi).number:void 0)}),pA(()=>(l(mi),l(Qi)),()=>{y(Ko,l(mi)!==void 0&&l(Qi)!==void 0?l(Qi)-l(mi).from+1:void 0)}),pA(()=>k(Te()),()=>{var U;y(Ot,(U=Te())===null||U===void 0||(U=U.selection)===null||U===void 0||(U=U.ranges)===null||U===void 0?void 0:U.reduce((q,Z)=>q+Z.to-Z.from,0))}),ln(),qt();var Nr=oTA(),Jn=W(Nr),Q=U=>{var q=tTA(),Z=W(q);we(()=>{var RA;return pt(Z,"Line: ".concat((RA=l(bn))!==null&&RA!==void 0?RA:""))}),iA(U,q)};GA(Jn,U=>{l(bn)!==void 0&&U(Q)});var m=CA(Jn,2),v=U=>{var q=iTA(),Z=W(q);we(()=>{var RA;return pt(Z,"Column: ".concat((RA=l(Ko))!==null&&RA!==void 0?RA:""))}),iA(U,q)};GA(m,U=>{l(Ko)!==void 0&&U(v)});var p=CA(m,2),F=U=>{var q=nTA(),Z=W(q);we(()=>{var RA;return pt(Z,"Selection: ".concat((RA=l(Ot))!==null&&RA!==void 0?RA:""," characters"))}),iA(U,q)};GA(p,U=>{l(Ot)!==void 0&&l(Ot)>0&&U(F)}),iA(Qt,Nr),mt()})(Mn,{get editorState(){return l(nA)}})};GA(rn,Mn=>{r()&&Mn(no)});var sn=CA(rn,2),Ji=Mn=>{pc(Mn,{type:"error",get icon(){return m1},get message(){return l($A),oA(()=>l($A).message)},get actions(){return l(i)},onClick:Un,onClose:oe})};GA(sn,Mn=>{l($A)&&Mn(Ji)});var bt=CA(sn,2),Li=Mn=>{var Qt=ZA(()=>[{icon:lsA,text:"Format",title:"Format JSON: add proper indentation and new lines (Ctrl+I)",onClick:kA},{icon:h4,text:"No thanks",title:"Close this message",onClick:()=>y(wA,!1)}]);pc(Mn,{type:"success",message:"Do you want to format the JSON?",get actions(){return l(Qt)},onClose:oe})};GA(bt,Mn=>{l($A),l(wA),k(brA),l(zA),oA(()=>!l($A)&&l(wA)&&brA(l(zA)))&&Mn(Li)}),SK(CA(bt,2),{get validationErrors(){return l(VA)},selectError:Le}),iA(vt,Yt)};GA(PA,vt=>{l(xe)||vt(Je)}),we(vt=>Ae=jt(ue,1,"jse-contents svelte-1pr65po",null,Ae,vt),[()=>({"jse-hidden":l(xe)})],ZA),iA(hA,re)},hn=hA=>{iA(hA,CTA())};return GA($i,hA=>{fA?hA(hn,!1):hA(yt)}),Qo(io,hA=>y(SA,hA),()=>l(SA)),we(hA=>Ci=jt(io,1,"jse-text-mode svelte-1pr65po",null,Ci,hA),[()=>({"no-main-menu":!o()})],ZA),iA(t,io),Ft(e,"focus",oe),Ft(e,"collapse",Dt),Ft(e,"expand",L),Ft(e,"patch",P),Ft(e,"handlePatch",X),Ft(e,"openTransformModal",MA),Ft(e,"refresh",ai),Ft(e,"flush",In),Ft(e,"validate",Ri),mt({focus:oe,collapse:Dt,expand:L,patch:P,handlePatch:X,openTransformModal:MA,refresh:ai,flush:In,validate:Ri})}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-inline-value.svelte-h57m0p { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + line-height: var(--jse-line-height, calc(1em + 4px)); + border: none; + padding: 0 calc(0.5 * var(--jse-padding, 10px)); + background: transparent; + color: inherit; + cursor: inherit; +} +.jse-inline-value.jse-highlight.svelte-h57m0p { + background-color: var(--jse-search-match-color, #ffe665); + outline: var(--jse-search-match-outline, none); +} +.jse-inline-value.jse-highlight.jse-active.svelte-h57m0p { + background-color: var(--jse-search-match-active-color, var(--jse-search-match-color, #ffe665)); + outline: var(--jse-search-match-outline, 2px solid #e0be00); +}`);var ETA=vA('');Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-column-header.svelte-2i3vdx { + background: none; + border: none; + font-family: inherit; + font-size: inherit; + color: inherit; + display: flex; + gap: var(--jse-padding, 10px); + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)) calc(0.5 * var(--jse-padding, 10px)); + width: 100%; +} +.jse-column-header.svelte-2i3vdx:hover { + background: var(--jse-table-header-background-highlight, #e8e8e8); +} +.jse-column-header.svelte-2i3vdx:not(.jse-column-header.jse-readonly) { + cursor: pointer; +} +.jse-column-header.svelte-2i3vdx span.jse-column-sort-icon:where(.svelte-2i3vdx) { + height: 1em; +}`);var QTA=vA(''),uTA=vA('');Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-table-mode-welcome.svelte-17xl1jx { + flex: 1; + display: flex; + flex-direction: column; + overflow: auto; + align-items: center; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-table-mode-welcome.svelte-17xl1jx:last-child { + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-space.jse-before:where(.svelte-17xl1jx) { + flex: 1; +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) { + display: flex; + flex-direction: column; + gap: var(--jse-padding, 10px); + max-width: 400px; + margin: 2em var(--jse-padding, 10px); + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-arrays-info:where(.svelte-17xl1jx) { + color: var(--jse-panel-color-readonly, #b2b2b2); +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-property:where(.svelte-17xl1jx) { + display: flex; + align-items: center; + gap: var(--jse-padding, 10px); +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-property:where(.svelte-17xl1jx) .jse-nested-property-path:where(.svelte-17xl1jx) { + flex: 1; +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-property:where(.svelte-17xl1jx) .jse-nested-property-path:where(.svelte-17xl1jx) .jse-nested-property-count:where(.svelte-17xl1jx) { + opacity: 0.5; + white-space: nowrap; +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) button.jse-nested-array-action:where(.svelte-17xl1jx) { + text-align: left; + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); + color: var(--jse-button-primary-color, #fff); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) button.jse-nested-array-action:where(.svelte-17xl1jx):hover { + background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) button.jse-nested-array-action:where(.svelte-17xl1jx):disabled { + background: var(--jse-button-primary-background-disabled, #9d9d9d); +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-space.jse-after:where(.svelte-17xl1jx) { + flex: 2; +}`);var hTA=(t,e)=>e.onClick(),fTA=vA(`An empty document cannot be opened in table mode. You can go to tree mode instead, or paste + a JSON Array using Ctrl+V.`,1),mTA=(t,e,A)=>e.openJSONEditorModal(l(A)),pTA=(t,e,A)=>e.extractPath(l(A)),DTA=vA(''),wTA=vA('
      '),yTA=(t,e)=>e.onChangeMode(ir.tree),vTA=vA('
      ');function MTA(t,e){ft(e,!0);var A=Ja(()=>e.json?function(E){var u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2,h=[];return function w(x,R){Lo(x)&&R.length{w(x[D],R.concat(D))}),wo(x)&&h.push(R)}(E,[]),h}(e.json).slice(0,99).filter(E=>E.length>0):[]),i=Ja(()=>!Gi(l(A))),n=Ja(()=>e.json===void 0&&(e.text===""||e.text===void 0)),o=Ja(()=>l(i)?"Object with nested arrays":l(n)?"An empty document":Lo(e.json)?"An object":wo(e.json)?"An empty array":"A ".concat(gK(e.json,e.parser))),r=vTA();r.__click=[hTA,e];var s=CA(W(r),2),a=W(s),c=W(a),g=CA(a,2),I=W(g),C=E=>{iA(E,jr(`An object cannot be opened in table mode. You can open a nested array instead, or open the + document in tree mode.`))},d=(E,u)=>{var h=x=>{iA(x,fTA())},w=x=>{var R=jr();we(()=>{var D;return pt(R,"".concat((D=l(o))!==null&&D!==void 0?D:""," cannot be opened in table mode. You can open the document in tree mode instead."))}),iA(x,R)};GA(E,x=>{l(n)&&!e.readOnly?x(h):x(w,!1)},u)};GA(I,E=>{l(i)?E(C):E(d,!1)});var B=CA(g,2);jo(B,17,()=>l(A),cr,(E,u)=>{var h=wTA(),w=Ja(()=>function(O){return Ye(e.json,O).length}(l(u))),x=W(h),R=W(x),D=W(CA(R)),G=CA(x,2);G.__click=[mTA,e,u];var J=W(G),z=CA(G,2),K=O=>{var V=DTA();V.__click=[pTA,e,u],iA(O,V)};GA(z,O=>{e.readOnly||O(K)}),we(O=>{var V;pt(R,'"'.concat(O??"",'" ')),pt(D,"(".concat((V=l(w))!==null&&V!==void 0?V:""," ").concat(l(w)!==1?"items":"item",")")),pt(J,e.readOnly?"View":"Edit")},[()=>Ta(l(u))]),iA(E,h)}),CA(B,2).__click=[yTA,e],we(()=>pt(c,l(o))),iA(t,r),mt()}df(["click"]);Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-column-header.svelte-fzj761 { + background: none; + border: none; + font-family: inherit; + font-size: inherit; + color: inherit; + display: flex; + gap: var(--jse-padding, 10px); + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)) calc(0.5 * var(--jse-padding, 10px)); + width: 100%; +} +.jse-column-header.svelte-fzj761:hover { + background: var(--jse-table-header-background-highlight, #e8e8e8); +} +.jse-column-header.svelte-fzj761:not(.jse-column-header.jse-readonly) { + cursor: pointer; +}`);var bTA=vA('');Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-table-mode.svelte-u14cgx { + flex: 1; + display: flex; + flex-direction: column; + position: relative; + background: var(--jse-background-color, #fff); + min-width: 0; + min-height: 0; + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + color: var(--jse-text-color, #4d4d4d); + line-height: var(--jse-line-height, calc(1em + 4px)); +} +.jse-table-mode.no-main-menu.svelte-u14cgx { + border-top: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-table-mode.svelte-u14cgx .jse-search-box-container:where(.svelte-u14cgx) { + position: relative; + height: 0; + top: calc(var(--jse-line-height, calc(1em + 4px)) + 2 * var(--jse-padding, 10px)); + margin-right: calc(var(--jse-padding, 10px) + 20px); + margin-left: var(--jse-padding, 10px); + text-align: right; + z-index: 3; +} +.jse-table-mode.svelte-u14cgx .jse-hidden-input-label:where(.svelte-u14cgx) { + position: fixed; + right: 0; + top: 0; + width: 0; + height: 0; +} +.jse-table-mode.svelte-u14cgx .jse-hidden-input-label:where(.svelte-u14cgx) .jse-hidden-input:where(.svelte-u14cgx) { + width: 0; + height: 0; + padding: 0; + border: 0; + outline: none; +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) { + flex: 1; + align-items: flex-start; + flex-direction: column; + display: flex; + overflow: auto; + overflow-anchor: none; + scrollbar-gutter: stable; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx):last-child { + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) { + border-collapse: collapse; + border-spacing: 0; +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-invisible-start-section:where(.svelte-u14cgx) td:where(.svelte-u14cgx), +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-invisible-end-section:where(.svelte-u14cgx) td:where(.svelte-u14cgx) { + margin: 0; + padding: 0; +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-search-box-background:where(.svelte-u14cgx) { + background: var(--jse-table-header-background, #f5f5f5); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-invisible-end-section:where(.svelte-u14cgx) td:where(.svelte-u14cgx) { + padding-bottom: var(--jse-padding, 10px); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx):hover { + background-color: var(--jse-table-row-odd-background, rgba(0, 0, 0, 0.05)); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) { + padding: 0 var(--jse-padding, 10px) 0 0; + vertical-align: top; + white-space: nowrap; + height: var(--jse-line-height, calc(1em + 4px)); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-header:where(.svelte-u14cgx), .jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-gutter:where(.svelte-u14cgx) { + font-weight: normal; + text-align: left; + color: var(--jse-text-readonly, #8d8d8d); + background: var(--jse-table-header-background, #f5f5f5); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-header:where(.svelte-u14cgx) { + padding: 0; + position: sticky; + top: 0; +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-header:where(.svelte-u14cgx) .jse-table-root-error:where(.svelte-u14cgx) { + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)) calc(0.5 * var(--jse-padding, 10px)); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-gutter:where(.svelte-u14cgx) { + padding: 0 var(--jse-padding, 10px) 0 calc(0.5 * var(--jse-padding, 10px)); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-value-outer:where(.svelte-u14cgx) { + display: inline-block; + cursor: var(--jse-contents-cursor, pointer); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-value-outer:where(.svelte-u14cgx):hover { + background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-value-outer.jse-selected-value:where(.svelte-u14cgx) { + background: var(--jse-selection-background-color, #d3d3d3); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-context-menu-anchor:where(.svelte-u14cgx) { + display: inline-flex; + position: relative; + vertical-align: top; +} +.jse-table-mode.svelte-u14cgx .jse-contents.jse-contents-loading:where(.svelte-u14cgx) { + align-items: unset; +} +.jse-table-mode.svelte-u14cgx .jse-contents.jse-contents-loading:where(.svelte-u14cgx) .jse-loading-space:where(.svelte-u14cgx) { + flex: 1; +} +.jse-table-mode.svelte-u14cgx .jse-contents.jse-contents-loading:where(.svelte-u14cgx) .jse-loading:where(.svelte-u14cgx) { + flex: 2; + text-align: center; + color: var(--jse-panel-color-readonly, #b2b2b2); + box-sizing: border-box; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); +}`);var kTA=vA('
      '),STA=vA(''),RTA=vA(''),LTA=vA(' '),xTA=vA('
      '),NTA=vA('
      '),FTA=vA(''),_TA=vA(''),GTA=vA('
      ',1),KTA=vA(" ",1),UTA=vA(' ',1),JTA=vA('
      loading...
      '),YTA=vA('
      ',1);function TTA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=xr("jsoneditor:TableMode"),{openAbsolutePopup:r,closeAbsolutePopup:s}=cI("absolute-popup"),a=qaA(),c=h1(),g=h1(),I=typeof window>"u";o("isSSR:",I);var C=M(e,"readOnly",9),d=M(e,"externalContent",9),B=M(e,"externalSelection",9),E=M(e,"history",9),u=M(e,"truncateTextSize",9),h=M(e,"mainMenuBar",9),w=M(e,"escapeControlCharacters",9),x=M(e,"escapeUnicodeCharacters",9),R=M(e,"flattenColumns",9),D=M(e,"parser",9),G=M(e,"parseMemoizeOne",9),J=M(e,"validator",9),z=M(e,"validationParser",9),K=M(e,"indentation",9),O=M(e,"onChange",9),V=M(e,"onChangeMode",9),j=M(e,"onSelect",9),dA=M(e,"onUndo",9),fA=M(e,"onRedo",9),EA=M(e,"onRenderValue",9),IA=M(e,"onRenderMenu",9),SA=M(e,"onRenderContextMenu",9),nA=M(e,"onFocus",9),lA=M(e,"onBlur",9),wA=M(e,"onSortModal",9),VA=M(e,"onTransformModal",9),ie=M(e,"onJSONEditorModal",9),UA=$(void 0,!0),BA=$(void 0,!0),JA=$(void 0,!0),Xe=$(void 0,!0),We=$(void 0,!0);kK({onMount:ws,onDestroy:ig,getWindow:()=>Qf(l(BA)),hasFocus:()=>Se&&document.hasFocus()||CK(l(BA)),onFocus:()=>{Wt=!0,nA()&&nA()()},onBlur:()=>{Wt=!1,lA()&&lA()()}});var KA,tA=$(void 0,!0),OA=$(void 0,!0),gA=$(void 0,!0),zA=$(void 0,!0),xA=$(void 0,!0),Me=$(void 0,!0),LA=$(!1,!0),cA=$(!1,!0);function Gt(p){y(Me,(KA=p)?FaA(l(tA),KA.items):void 0)}function ct(p){return oe.apply(this,arguments)}function oe(){return(oe=_t(function*(p){y(MA,void 0),yield Xi(p)})).apply(this,arguments)}function Dt(){y(LA,!1),y(cA,!1),b()}var _e=$(1e4,!0),Re=$([],!0),St=$(void 0,!0),Se=!1,Wt=!1,L=$(!1,!0),T=$({},!0),P=$(600,!0),X=$(0,!0),kA=18;function le(p){y(MA,p)}function Ee(p){l(MA)&&p!==void 0&&(As(p,WC(l(MA)))&&As(p,nt(l(MA)))||(o("clearing selection: path does not exist anymore",l(MA)),y(MA,void 0)))}var NA=$(l(tA)!==void 0?GG({json:l(tA)}):void 0,!0),MA=$(tf(B())?B():void 0,!0),Ct=$(void 0,!0),$e=$(!1,!0);function XA(p){if(!C()){o("onSortByHeader",p);var F=p.sortDirection===Ag.desc?-1:1;Ht($aA(l(tA),[],p.path,F),(U,q)=>({state:q,sortedColumn:p}))}}ws(()=>{l(MA)&&Mo(nt(l(MA)))});var ot=$(void 0,!0);function Si(p){if(p.json!==void 0||p.text!==void 0){var F=l(tA)!==void 0&&p.json!==void 0;E().add({type:"tree",undo:{patch:F?[{op:"replace",path:"",value:p.json}]:void 0,json:p.json,text:p.text,documentState:p.documentState,textIsRepaired:p.textIsRepaired,selection:e0(p.selection),sortedColumn:p.sortedColumn},redo:{patch:F?[{op:"replace",path:"",value:l(tA)}]:void 0,json:l(tA),text:l(OA),documentState:l(NA),textIsRepaired:l($e),selection:e0(l(MA)),sortedColumn:l(Ct)}})}}var Zi=$([],!0),Oi=hE(VaA);function Le(p,F,U,q){fQ(()=>{var Z;try{Z=Oi(p,F,U,q)}catch(RA){Z=[{path:[],message:"Failed to validate: "+RA.message,severity:Og.warning}]}ri(Z,l(Zi))||(o("validationErrors changed:",Z),y(Zi,Z))},Z=>o("validationErrors updated in ".concat(Z," ms")))}function zi(){return o("validate"),l(gA)?{parseError:l(gA),isRepairable:!1}:(Le(l(tA),J(),D(),z()),Gi(l(Zi))?void 0:{validationErrors:l(Zi)})}function fi(p,F){if(o("patch",p,F),l(tA)===void 0)throw new Error("Cannot apply patch: no JSON");var U=l(tA),q={json:void 0,text:l(OA),documentState:l(NA),selection:e0(l(MA)),sortedColumn:l(Ct),textIsRepaired:l($e)},Z=NaA(l(tA),p),RA=paA(l(tA),l(NA),p),ee=bYA(l(Ct),p,l(Re)),ne=typeof F=="function"?F(RA.json,RA.documentState,l(MA)):void 0;return y(tA,ne?.json!==void 0?ne.json:RA.json),y(NA,ne?.state!==void 0?ne.state:RA.documentState),y(MA,ne?.selection!==void 0?ne.selection:l(MA)),y(Ct,ne?.sortedColumn!==void 0?ne.sortedColumn:ee),y(OA,void 0),y($e,!1),y(zA,void 0),y(xA,void 0),y(gA,void 0),E().add({type:"tree",undo:pe({patch:Z},q),redo:{patch:p,json:void 0,text:void 0,documentState:l(NA),selection:e0(l(MA)),sortedColumn:l(Ct),textIsRepaired:l($e)}}),{json:l(tA),previousJson:U,undo:Z,redo:p}}function Ht(p,F){o("handlePatch",p,F);var U={json:l(tA),text:l(OA)},q=fi(p,F);return Rt(U,q),q}function Rt(p,F){if((p.json!==void 0||p?.text!==void 0)&&O()){if(l(OA)!==void 0){var U={text:l(OA),json:void 0};O()(U,p,{contentErrors:zi(),patchResult:F})}else if(l(tA)!==void 0){var q={text:void 0,json:l(tA)};O()(q,p,{contentErrors:zi(),patchResult:F})}}}function Bi(p){o("pasted json as text",p),y(zA,p)}function Mi(p){o("pasted multiline text",{pastedText:p}),y(xA,p)}function Jt(p){var F=parseInt(p[0],10),U=[String(F+1),...p.slice(1)];return As(l(tA),U)?vi(U):vi(p)}function b(){o("focus"),l(Xe)&&(l(Xe).focus(),l(Xe).select())}function et(p){y(X,p.target.scrollTop)}function ai(){l(MA)||y(MA,function(){if(wo(l(tA))&&!Gi(l(tA))&&!Gi(l(Re)))return vi(["0",...l(Re)[0]])}())}function Wi(){if(l($e)&&l(tA)!==void 0){var p={json:l(tA),text:l(OA)},F={json:l(tA),documentState:l(NA),selection:l(MA),sortedColumn:l(Ct),text:l(OA),textIsRepaired:l($e)};y(OA,void 0),y($e,!1),Ee(l(tA)),Si(F),Rt(p,void 0)}return{json:l(tA),text:l(OA)}}function Xi(p){var{scrollToWhenVisible:F=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},U=l(LA)?O3:0,q=CsA(p,l(Re),T,kA),Z=q-l(X)+U+kA,RA=vn(p);if(o("scrollTo",{path:p,top:q,scrollTop:l(X),elem:RA}),!l(JA))return Promise.resolve();var ee=l(JA).getBoundingClientRect();if(RA&&!F){var ne=RA.getBoundingClientRect();if(ne.bottom>ee.top&&ne.top{a(RA,{container:l(JA),offset:Pe,duration:300,callback:()=>{xn(p),Oe()}})}:Oe=>{a(Z,{container:l(JA),offset:Pe,duration:300,callback:()=>{to(),xn(p),Oe()}})})}function xn(p){var F=vn(p);if(F&&l(JA)){var U=l(JA).getBoundingClientRect(),q=F.getBoundingClientRect();if(q.right>U.right){var Z=q.right-U.right;hc(JA,l(JA).scrollLeft+=Z)}if(q.leftPe){var Oe=Z-Pe;hc(JA,l(JA).scrollTop+=Oe)}if(qn0(p.slice(1),RA)),Z=q?p.slice(0,1).concat(q):p;return(F=(U=l(JA))===null||U===void 0?void 0:U.querySelector('td[data-path="'.concat(My(Z),'"]')))!==null&&F!==void 0?F:void 0}function In(p){var F,{anchor:U,left:q,top:Z,width:RA,height:ee,offsetTop:ne,offsetLeft:Pe,showTip:Oe}=p,ve=function(rA){var{json:HA,documentState:De,selection:fe,readOnly:Ie,onEditValue:dt,onEditRow:At,onToggleEnforceString:ui,onCut:Cn,onCopy:xi,onPaste:Yn,onRemove:Tt,onDuplicateRow:bo,onInsertBeforeRow:kn,onInsertAfterRow:oo,onRemoveRow:An}=rA,Lt=HA!==void 0,Ti=!!fe,xt=HA!==void 0&&fe?Ye(HA,nt(fe)):void 0,rt=Lt&&(Gn(fe)||Lr(fe)||Vi(fe)),Ai=!Ie&&Lt&&fe!==void 0&&Jy(fe),ho=Ai&&!Fo(xt),Fr=!Ie&&rt,Tn=fe!==void 0&&t0(HA,De,nt(fe));return[{type:"separator"},{type:"row",items:[{type:"column",items:[{type:"label",text:"Table cell:"},{type:"dropdown-button",main:{type:"button",onClick:()=>dt(),icon:EC,text:"Edit",title:"Edit the value (Double-click on the value)",disabled:!Ai},width:"11em",items:[{type:"button",icon:EC,text:"Edit",title:"Edit the value (Double-click on the value)",onClick:()=>dt(),disabled:!Ai},{type:"button",icon:Tn?iL:rL,text:"Enforce string",title:"Enforce keeping the value as string when it contains a numeric value",onClick:()=>ui(),disabled:!ho}]},{type:"dropdown-button",main:{type:"button",onClick:()=>Cn(!0),icon:BC,text:"Cut",title:"Cut selected contents, formatted with indentation (Ctrl+X)",disabled:!Fr},width:"10em",items:[{type:"button",icon:BC,text:"Cut formatted",title:"Cut selected contents, formatted with indentation (Ctrl+X)",onClick:()=>Cn(!0),disabled:Ie||!rt},{type:"button",icon:BC,text:"Cut compacted",title:"Cut selected contents, without indentation (Ctrl+Shift+X)",onClick:()=>Cn(!1),disabled:Ie||!rt}]},{type:"dropdown-button",main:{type:"button",onClick:()=>xi(!0),icon:G0,text:"Copy",title:"Copy selected contents, formatted with indentation (Ctrl+C)",disabled:!rt},width:"12em",items:[{type:"button",icon:G0,text:"Copy formatted",title:"Copy selected contents, formatted with indentation (Ctrl+C)",onClick:()=>xi(!1),disabled:!rt},{type:"button",icon:G0,text:"Copy compacted",title:"Copy selected contents, without indentation (Ctrl+Shift+C)",onClick:()=>xi(!1),disabled:!rt}]},{type:"button",onClick:()=>Yn(),icon:tL,text:"Paste",title:"Paste clipboard contents (Ctrl+V)",disabled:Ie||!Ti},{type:"button",onClick:()=>Tt(),icon:_5,text:"Remove",title:"Remove selected contents (Delete)",disabled:Ie||!rt}]},{type:"column",items:[{type:"label",text:"Table row:"},{type:"button",onClick:()=>At(),icon:EC,text:"Edit row",title:"Edit the current row",disabled:Ie||!Ti||!Lt},{type:"button",onClick:()=>bo(),icon:cL,text:"Duplicate row",title:"Duplicate the current row (Ctrl+D)",disabled:Ie||!Ti||!Lt},{type:"button",onClick:()=>kn(),icon:QC,text:"Insert before",title:"Insert a row before the current row",disabled:Ie||!Ti||!Lt},{type:"button",onClick:()=>oo(),icon:QC,text:"Insert after",title:"Insert a row after the current row",disabled:Ie||!Ti||!Lt},{type:"button",onClick:()=>An(),icon:_5,text:"Remove row",title:"Remove current row",disabled:Ie||!Ti||!Lt}]}]}]}({json:l(tA),documentState:l(NA),selection:l(MA),readOnly:C(),onEditValue:uo,onEditRow:Qn,onToggleEnforceString:Kn,onCut:Xo,onCopy:on,onPaste:Ri,onRemove:yt,onDuplicateRow:hA,onInsertBeforeRow:Ae,onInsertAfterRow:re,onRemoveRow:xe}),Ne=(F=SA()(ve))!==null&&F!==void 0?F:ve;if(Ne!==!1){var Yi={left:q,top:Z,offsetTop:ne,offsetLeft:Pe,width:RA,height:ee,anchor:U,closeOnOuterClick:!0,onClose:()=>{Se=!1,b()}};Se=!0;var H=r(ccA,{tip:Oe?"Tip: you can open this context menu via right-click or with Ctrl+Q":void 0,items:Ne,onRequestClose(){s(H),b()}},Yi)}}function qo(p){if(!Sr(l(MA)))if(p&&(p.stopPropagation(),p.preventDefault()),p&&p.type==="contextmenu"&&p.target!==l(Xe))In({left:p.clientX,top:p.clientY,width:A2,height:$0,showTip:!1});else{var F,U=(F=l(JA))===null||F===void 0?void 0:F.querySelector(".jse-table-cell.jse-selected-value");if(U)In({anchor:U,offsetTop:2,width:A2,height:$0,showTip:!1});else{var q,Z=(q=l(JA))===null||q===void 0?void 0:q.getBoundingClientRect();Z&&In({top:Z.top+2,left:Z.left+2,width:A2,height:$0,showTip:!1})}}}function Vo(p){In({anchor:QaA(p.target,"BUTTON"),offsetTop:0,width:A2,height:$0,showTip:!0})}function uo(){if(!C()&&l(MA)){var p=nt(l(MA));Fo(Ye(l(tA),p))?rn(p):y(MA,vi(p))}}function Qn(){!C()&&l(MA)&&rn(nt(l(MA)).slice(0,1))}function Kn(){if(!C()&&Vi(l(MA))){var p=l(MA).path,F=It(p),U=Ye(l(tA),p),q=!t0(l(tA),l(NA),p),Z=q?String(U):GQ(String(U),D());o("handleToggleEnforceString",{enforceString:q,value:U,updatedValue:Z}),Ht([{op:"replace",path:F,value:Z}],(RA,ee)=>({state:o7(l(tA),ee,p,{type:"value",enforceString:q})}))}}function $A(){return Ei.apply(this,arguments)}function Ei(){return(Ei=_t(function*(){if(o("apply pasted json",l(zA)),l(zA)){var{onPasteAsJson:p}=l(zA);p(),setTimeout(b)}})).apply(this,arguments)}function Ri(){return un.apply(this,arguments)}function un(){return(un=_t(function*(){try{DA(yield navigator.clipboard.readText())}catch(p){console.error(p),y(L,!0)}})).apply(this,arguments)}function Un(){return Zo.apply(this,arguments)}function Zo(){return(Zo=_t(function*(){o("apply pasted multiline text",l(xA)),l(xA)&&(DA(JSON.stringify(l(xA))),setTimeout(b))})).apply(this,arguments)}function Ci(){o("clear pasted json"),y(zA,void 0),b()}function io(){o("clear pasted multiline text"),y(xA,void 0),b()}function Wo(){V()(ir.text)}function Xo(p){return nr.apply(this,arguments)}function nr(){return(nr=_t(function*(p){yield icA({json:l(tA),selection:l(MA),indentation:p?K():void 0,readOnly:C(),parser:D(),onPatch:Ht})})).apply(this,arguments)}function on(){return $i.apply(this,arguments)}function $i(){return $i=_t(function*(){var p=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];l(tA)!==void 0&&(yield ncA({json:l(tA),selection:l(MA),indentation:p?K():void 0,parser:D()}))}),$i.apply(this,arguments)}function yt(){rcA({json:l(tA),text:l(OA),selection:l(MA),keepSelection:!0,readOnly:C(),onChange:O(),onPatch:Ht})}function hn(p){C()||(o("extract",{path:p}),Ht(RaA(l(tA),vi(p))))}function hA(){(function(p){var{json:F,selection:U,columns:q,readOnly:Z,onPatch:RA}=p;if(!Z&&F!==void 0&&U&&uQ(U)){var{rowIndex:ee,columnIndex:ne}=Xc(nt(U),q);Ys("duplicate row",{rowIndex:ee});var Pe=[String(ee)];RA(SaA(F,[Pe]),(Oe,ve)=>({state:ve,selection:vi(PC({rowIndex:ee({state:Yi,selection:vi(PC({rowIndex:Pe,columnIndex:ne},q))}))}})({json:l(tA),selection:l(MA),columns:l(Re),readOnly:C(),onPatch:Ht})}function xe(){(function(p){var{json:F,selection:U,columns:q,readOnly:Z,onPatch:RA}=p;if(!Z&&F!==void 0&&U&&uQ(U)){var{rowIndex:ee,columnIndex:ne}=Xc(nt(U),q);Ys("remove row",{rowIndex:ee}),RA(Ty([[String(ee)]]),(Pe,Oe)=>{var ve=ee0?ee-1:void 0,Ne=ve!==void 0?vi(PC({rowIndex:ve,columnIndex:ne},q)):void 0;return Ys("remove row new selection",{rowIndex:ee,newRowIndex:ve,newSelection:Ne}),{state:Oe,selection:Ne}})}})({json:l(tA),selection:l(MA),columns:l(Re),readOnly:C(),onPatch:Ht})}function ue(){return(ue=_t(function*(p){yield scA({char:p,selectInside:!1,json:l(tA),selection:l(MA),readOnly:C(),parser:D(),onPatch:Ht,onReplaceJson:PA,onSelect:le})})).apply(this,arguments)}function aA(p){var F;p.preventDefault(),DA((F=p.clipboardData)===null||F===void 0?void 0:F.getData("text/plain"))}function DA(p){p!==void 0&&ocA({clipboardText:p,json:l(tA),selection:l(MA),readOnly:C(),parser:D(),onPatch:Ht,onChangeText:Je,onPasteMultilineText:Mi,openRepairModal:no})}function PA(p,F){var U={json:l(tA),text:l(OA)},q={json:l(tA),documentState:l(NA),selection:l(MA),sortedColumn:l(Ct),text:l(OA),textIsRepaired:l($e)},Z=uc(p,l(NA)),RA=typeof F=="function"?F(p,Z,l(MA)):void 0;y(tA,RA?.json!==void 0?RA.json:p),y(NA,RA?.state!==void 0?RA.state:Z),y(MA,RA?.selection!==void 0?RA.selection:l(MA)),y(Ct,void 0),y(OA,void 0),y($e,!1),y(gA,void 0),Ee(l(tA)),Si(q),Rt(U,void 0)}function Je(p,F){o("handleChangeText");var U={json:l(tA),text:l(OA)},q={json:l(tA),documentState:l(NA),selection:l(MA),sortedColumn:l(Ct),text:l(OA),textIsRepaired:l($e)};try{y(tA,G()(p)),y(NA,uc(l(tA),l(NA))),y(OA,void 0),y($e,!1),y(gA,void 0)}catch(RA){try{y(tA,G()(Uc(p))),y(NA,uc(l(tA),l(NA))),y(OA,p),y($e,!0),y(gA,void 0)}catch{y(tA,void 0),y(NA,void 0),y(OA,p),y($e,!1),y(gA,l(OA)!==""?MQ(l(OA),RA.message||String(RA)):void 0)}}if(typeof F=="function"){var Z=F(l(tA),l(NA),l(MA));y(tA,Z?.json!==void 0?Z.json:l(tA)),y(NA,Z?.state!==void 0?Z.state:l(NA)),y(MA,Z?.selection!==void 0?Z.selection:l(MA))}Ee(l(tA)),Si(q),Rt(U,void 0)}function vt(p){o("select validation error",p),y(MA,vi(p.path)),Xi(p.path)}function Yt(p){if(l(tA)!==void 0){var{id:F,onTransform:U,onClose:q}=p,Z=p.rootPath||[];Se=!0,VA()({id:F||g,json:l(tA),rootPath:Z||[],onTransform:RA=>{U?U({operations:RA,json:l(tA),transformedJson:Ma(l(tA),RA)}):(o("onTransform",Z,RA),Ht(RA))},onClose:()=>{Se=!1,setTimeout(b),q&&q()}})}}function rn(p){o("openJSONEditorModal",{path:p}),Se=!0,ie()({content:{json:Ye(l(tA),p)},path:p,onPatch:Ht,onClose:()=>{Se=!1,setTimeout(b)}})}function no(p,F){y(We,{text:p,onParse:U=>Ef(U,q=>Bf(q,D())),onRepair:aaA,onApply:F,onClose:b})}function sn(){(function(p){C()||l(tA)===void 0||(Se=!0,wA()({id:c,json:l(tA),rootPath:p,onSort:F=>{var{operations:U,itemPath:q,direction:Z}=F;o("onSort",U,p,q,Z),Ht(U,(RA,ee)=>({state:ee,sortedColumn:{path:q,sortDirection:Z===-1?Ag.desc:Ag.asc}}))},onClose:()=>{Se=!1,setTimeout(b)}}))})([])}function Ji(){Yt({rootPath:[]})}function bt(p){o("openFind",{findAndReplace:p}),y(LA,!1),y(cA,!1),to(),y(LA,!0),y(cA,p)}function Li(){if(!C()&&E().canUndo){var p=E().undo();if(Uy(p)){var F={json:l(tA),text:l(OA)};y(tA,p.undo.patch?Ma(l(tA),p.undo.patch):p.undo.json),y(NA,p.undo.documentState),y(MA,p.undo.selection),y(Ct,p.undo.sortedColumn),y(OA,p.undo.text),y($e,p.undo.textIsRepaired),y(gA,void 0),o("undo",{item:p,json:l(tA)}),Rt(F,p.undo.patch&&p.redo.patch?{json:l(tA),previousJson:F.json,redo:p.undo.patch,undo:p.redo.patch}:void 0),b(),l(MA)&&Xi(nt(l(MA)),{scrollToWhenVisible:!1})}else dA()(p)}}function Mn(){if(!C()&&E().canRedo){var p=E().redo();if(Uy(p)){var F={json:l(tA),text:l(OA)};y(tA,p.redo.patch?Ma(l(tA),p.redo.patch):p.redo.json),y(NA,p.redo.documentState),y(MA,p.redo.selection),y(Ct,p.redo.sortedColumn),y(OA,p.redo.text),y($e,p.redo.textIsRepaired),y(gA,void 0),o("redo",{item:p,json:l(tA)}),Rt(F,p.undo.patch&&p.redo.patch?{json:l(tA),previousJson:F.json,redo:p.redo.patch,undo:p.undo.patch}:void 0),b(),l(MA)&&Xi(nt(l(MA)),{scrollToWhenVisible:!1})}else fA()(p)}}function Qt(p){y(P,p.getBoundingClientRect().height)}pA(()=>(k(w()),k(x())),()=>{y(UA,lK({escapeControlCharacters:w(),escapeUnicodeCharacters:x()}))}),pA(()=>l(LA),()=>{(function(p){if(l(JA)){var F=p?O3:-100;l(JA).scrollTo({top:hc(JA,l(JA).scrollTop+=F),left:l(JA).scrollLeft})}})(l(LA))}),pA(()=>k(d()),()=>{(function(p){var F={json:l(tA)},U=W3(p)?p.text!==l(OA):!ri(F.json,p.json);if(o("update external content",{isChanged:U}),U){var q={json:l(tA),documentState:l(NA),selection:l(MA),sortedColumn:l(Ct),text:l(OA),textIsRepaired:l($e)};if(W3(p))try{y(tA,G()(p.text)),y(NA,uc(l(tA),l(NA))),y(OA,p.text),y($e,!1),y(gA,void 0)}catch(Z){try{y(tA,G()(Uc(p.text))),y(NA,uc(l(tA),l(NA))),y(OA,p.text),y($e,!0),y(gA,void 0)}catch{y(tA,void 0),y(NA,void 0),y(OA,p.text),y($e,!1),y(gA,l(OA)!==""?MQ(l(OA),Z.message||String(Z)):void 0)}}else y(tA,p.json),y(NA,uc(l(tA),l(NA))),y(OA,void 0),y($e,!1),y(gA,void 0);Ee(l(tA)),y(Ct,void 0),Si(q)}})(d())}),pA(()=>k(B()),()=>{(function(p){ri(l(MA),p)||(o("applyExternalSelection",{selection:l(MA),externalSelection:p}),tf(p)&&y(MA,p))})(B())}),pA(()=>(l(Re),l(tA),k(R()),l(_e)),()=>{y(Re,wo(l(tA))?function(p,F){var U=new Set(F.map(It)),q=new Set(p.map(It));for(var Z of U)q.has(Z)||U.delete(Z);for(var RA of q)U.has(RA)||U.add(RA);return[...U].map(xs)}(wYA(l(tA),R(),l(_e)),l(Re)):[])}),pA(()=>(l(tA),l(Re)),()=>{y(St,!(!l(tA)||Gi(l(Re))))}),pA(()=>(l(tA),l(_e)),()=>{y(A,Array.isArray(l(tA))&&l(tA).length>l(_e))}),pA(()=>(l(X),l(P),l(tA),l(LA),O3),()=>{y(i,yYA(l(X),l(P),l(tA),T,kA,l(LA)?O3:0))}),pA(()=>l(tA),()=>{l(tA),l(JA)&&l(JA).scrollTo({top:l(JA).scrollTop,left:l(JA).scrollLeft})}),pA(()=>l(MA),()=>{var p;p=l(MA),ri(p,B())||(o("onSelect",p),j()(p))}),pA(()=>(k(C()),k(u()),k(D()),l(UA),l(tA),l(NA),k(EA())),()=>{y(ot,{mode:ir.table,readOnly:C(),truncateTextSize:u(),parser:D(),normalization:l(UA),getJson:()=>l(tA),getDocumentState:()=>l(NA),findElement:vn,findNextInside:Jt,focus:b,onPatch:(p,F)=>Ht(function(U,q){return U.flatMap(Z=>{if(V8(Z)){var RA=xs(Z.path);if(RA.length>0){for(var ee=[Z],ne=yi(RA);ne.length>0&&!As(q,ne);)ee.unshift({op:"add",path:It(ne),value:{}}),ne=yi(ne);return ee}}return Z})}(p,l(tA)),F),onSelect:le,onFind:bt,onPasteJson:Bi,onRenderValue:EA()})}),pA(()=>(l(tA),k(J()),k(D()),k(z())),()=>{Le(l(tA),J(),D(),z())}),pA(()=>(l(Zi),l(Re)),()=>{y(n,vYA(l(Zi),l(Re)))}),ln(),qt(!0);var fn=YTA();ce("mousedown",i2,function(p){!KQ(p.target,F=>F===l(BA))&&Sr(l(MA))&&(o("click outside the editor, exit edit mode"),y(MA,e0(l(MA))),Wt&&l(Xe)&&(l(Xe).focus(),l(Xe).blur()),o("blur (outside editor)"),l(Xe)&&l(Xe).blur())});var Te,Qi=Mt(fn),mi=W(Qi),bn=p=>{(function(F,U){ft(U,!1);var q=M(U,"containsValidArray",9),Z=M(U,"readOnly",9),RA=M(U,"showSearch",13,!1),ee=M(U,"history",9),ne=M(U,"onSort",9),Pe=M(U,"onTransform",9),Oe=M(U,"onContextMenu",9),ve=M(U,"onUndo",9),Ne=M(U,"onRedo",9),Yi=M(U,"onRenderMenu",9);function H(){RA(!RA())}var rA=$(void 0,!0),HA=$(void 0,!0);pA(()=>(k(Z()),k(ne()),k(q()),k(Pe()),k(Oe()),k(ve()),k(ee()),k(Ne())),()=>{y(rA,Z()?[{type:"space"}]:[{type:"button",icon:Q4,title:"Sort",className:"jse-sort",onClick:ne(),disabled:Z()||!q()},{type:"button",icon:d4,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:Pe(),disabled:Z()||!q()},{type:"button",icon:u4,title:"Search (Ctrl+F)",className:"jse-search",onClick:H,disabled:!q()},{type:"button",icon:sL,title:EK,className:"jse-contextmenu",onClick:Oe()},{type:"separator"},{type:"button",icon:K5,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:ve(),disabled:!ee().canUndo},{type:"button",icon:G5,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:Ne(),disabled:!ee().canRedo},{type:"space"}])}),pA(()=>(k(Yi()),l(rA)),()=>{y(HA,Yi()(l(rA))||l(rA))}),ln(),qt(!0),l7(F,{get items(){return l(HA)}}),mt()})(p,{get containsValidArray(){return l(St)},get readOnly(){return C()},get history(){return E()},onSort:sn,onTransform:Ji,onUndo:Li,onRedo:Mn,onContextMenu:Vo,get onRenderMenu(){return IA()},get showSearch(){return l(LA)},set showSearch(F){y(LA,F)},$$legacy:!0})};GA(mi,p=>{h()&&p(bn)});var Ko=CA(mi,2),Ot=p=>{var F=UTA(),U=Mt(F),q=W(U);q.readOnly=!0,Qo(q,ne=>y(Xe,ne),()=>l(Xe));var Z=CA(U,2),RA=ne=>{var Pe=GTA(),Oe=Mt(Pe);AcA(W(Oe),{get json(){return l(tA)},get documentState(){return l(NA)},get parser(){return D()},get showSearch(){return l(LA)},get showReplace(){return l(cA)},get readOnly(){return C()},get columns(){return l(Re)},onSearch:Gt,onFocus:ct,onPatch:Ht,onClose:Dt});var ve=CA(Oe,2),Ne=W(ve),Yi=W(Ne),H=W(Yi),rA=W(H),HA=W(rA),De=rt=>{var Ai=_o(),ho=ZA(()=>(k(lQ),l(n),oA(()=>{var ko;return lQ([],(ko=l(n))===null||ko===void 0?void 0:ko.root)}))),Fr=Mt(Ai),Tn=ko=>{var qr=kTA();wQ(W(qr),{get validationError(){return l(ho)},get onExpand(){return $c}}),iA(ko,qr)};GA(Fr,ko=>{l(ho)&&ko(Tn)}),iA(rt,Ai)};GA(HA,rt=>{k(Gi),l(n),oA(()=>{var Ai;return!Gi((Ai=l(n))===null||Ai===void 0?void 0:Ai.root)})&&rt(De)});var fe=CA(rA);jo(fe,1,()=>l(Re),cr,(rt,Ai)=>{var ho=STA();(function(Fr,Tn){ft(Tn,!1);var ko=$(void 0,!0),qr=$(void 0,!0),g0=$(void 0,!0),Ha=M(Tn,"path",9),ng=M(Tn,"sortedColumn",9),Wg=M(Tn,"readOnly",9),og=M(Tn,"onSort",9);pA(()=>(k(Ha()),Ta),()=>{y(ko,Gi(Ha())?"values":Ta(Ha()))}),pA(()=>(k(ng()),k(Ha())),()=>{var Zn;y(qr,ng()&&ri(Ha(),(Zn=ng())===null||Zn===void 0?void 0:Zn.path)?ng().sortDirection:void 0)}),pA(()=>(l(qr),RrA),()=>{y(g0,l(qr)?RrA[l(qr)]:void 0)}),ln(),qt(!0);var Vr,Zr=uTA(),Oa=W(Zr),l0=W(Oa),za=CA(Oa,2),Uo=Zn=>{var $o=QTA(),Xg=W($o),gd=ZA(()=>(l(qr),k(Ag),k(Nl),k(oL),oA(()=>l(qr)===Ag.asc?Nl:oL)));Ui(Xg,{get data(){return l(gd)}}),we(()=>gn($o,"title","Currently sorted in ".concat(l(g0)," order"))),iA(Zn,$o)};GA(za,Zn=>{l(qr)!==void 0&&Zn(Uo)}),we((Zn,$o)=>{Vr=jt(Zr,1,"jse-column-header svelte-2i3vdx",null,Vr,Zn),gn(Zr,"title",Wg()?l(ko):l(ko)+" (Click to sort the data by this column)"),pt(l0,$o)},[()=>({"jse-readonly":Wg()}),()=>(k(X0),l(ko),k(50),oA(()=>X0(l(ko),50)))],ZA),ce("click",Zr,function(){Wg()||og()({path:Ha(),sortDirection:l(qr)===Ag.asc?Ag.desc:Ag.asc})}),iA(Fr,Zr),mt()})(W(ho),{get path(){return l(Ai)},get sortedColumn(){return l(Ct)},get readOnly(){return C()},onSort:XA}),iA(rt,ho)});var Ie=CA(fe),dt=rt=>{var Ai=RTA(),ho=W(Ai),Fr=ZA(()=>(l(tA),oA(()=>Array.isArray(l(tA))?l(tA).length:0)));(function(Tn,ko){ft(ko,!1);var qr=M(ko,"count",9),g0=M(ko,"maxSampleCount",9),Ha=M(ko,"readOnly",9),ng=M(ko,"onRefresh",9);qt(!0);var Wg,og=bTA();Ui(W(og),{get data(){return vX}}),we(Vr=>{Wg=jt(og,1,"jse-column-header svelte-fzj761",null,Wg,Vr),gn(og,"title","The Columns are created by sampling ".concat(g0()," items out of ").concat(qr(),". ")+"If you're missing a column, click here to sample all of the items instead of a subset. This is slower.")},[()=>({"jse-readonly":Ha()})],ZA),ce("click",og,()=>ng()()),iA(Tn,og),mt()})(ho,{get count(){return l(Fr)},get maxSampleCount(){return l(_e)},get readOnly(){return C()},onRefresh:()=>y(_e,1/0)}),iA(rt,Ai)};GA(Ie,rt=>{l(A)&&rt(dt)});var At,ui,Cn=CA(H),xi=W(Cn),Yn=CA(Cn);jo(Yn,1,()=>(l(i),oA(()=>l(i).visibleItems)),cr,(rt,Ai,ho)=>{var Fr=_TA(),Tn=ZA(()=>(l(i),oA(()=>l(i).startIndex+ho))),ko=ZA(()=>(l(n),k(l(Tn)),oA(()=>l(n).rows[l(Tn)]))),qr=ZA(()=>(k(lQ),k(l(Tn)),k(l(ko)),oA(()=>{var Vr;return lQ([String(l(Tn))],(Vr=l(ko))===null||Vr===void 0?void 0:Vr.row)}))),g0=ZA(()=>(k($l),l(tA),l(Me),k(l(Tn)),oA(()=>$l(l(tA),l(Me),[String(l(Tn))])))),Ha=W(Fr);XsA(Ha,()=>l(Tn),Vr=>{var Zr=LTA(),Oa=W(Zr),l0=CA(Oa),za=Uo=>{wQ(Uo,{get validationError(){return l(qr)},get onExpand(){return $c}})};GA(l0,Uo=>{l(qr)&&Uo(za)}),Ts(Zr,(Uo,Zn)=>wy?.(Uo,Zn),()=>Uo=>function(Zn,$o){T[$o]=Zn.getBoundingClientRect().height}(Uo,l(Tn))),we(()=>{var Uo;return pt(Oa,"".concat((Uo=l(Tn))!==null&&Uo!==void 0?Uo:""," "))}),iA(Vr,Zr)});var ng=CA(Ha);jo(ng,1,()=>l(Re),cr,(Vr,Zr,Oa,l0)=>{var za,Uo=NTA(),Zn=ZA(()=>(k(l(Tn)),l(Zr),oA(()=>[String(l(Tn))].concat(l(Zr))))),$o=ZA(()=>(k(Ye),l(Ai),l(Zr),oA(()=>Ye(l(Ai),l(Zr))))),Xg=ZA(()=>(k(Vi),l(MA),k(n0),k(l(Zn)),oA(()=>Vi(l(MA))&&n0(l(MA).path,l(Zn))))),gd=ZA(()=>(k(l(ko)),oA(()=>{var gr;return(gr=l(ko))===null||gr===void 0?void 0:gr.columns[Oa]}))),ld=ZA(()=>(k(lQ),k(l(Zn)),k(l(gd)),oA(()=>lQ(l(Zn),l(gd))))),jQ=W(Uo),Id=W(jQ),qQ=gr=>{var sa=ZA(()=>(k(Hy),k($l),l(Ai),k(l(g0)),l(Zr),oA(()=>Hy($l(l(Ai),l(g0),l(Zr)))))),VQ=ZA(()=>(k(l(sa)),oA(()=>!!l(sa)&&l(sa).some(EI=>EI.active)))),ZQ=ZA(()=>(k(Gi),k(l(sa)),oA(()=>!Gi(l(sa)))));(function(EI,as){ft(as,!1);var WQ=M(as,"path",9),LU=M(as,"value",9),xU=M(as,"parser",9),WlA=M(as,"isSelected",9),XlA=M(as,"containsSearchResult",9),$lA=M(as,"containsActiveSearchResult",9),A0A=M(as,"onEdit",9);qt(!0);var NU,Nf=ETA(),e0A=W(Nf);we((XQ,t0A)=>{NU=jt(Nf,1,"jse-inline-value svelte-h57m0p",null,NU,XQ),pt(e0A,t0A)},[()=>({"jse-selected":WlA(),"jse-highlight":XlA(),"jse-active":$lA()}),()=>(k(X0),k(xU()),k(LU()),k(50),oA(()=>{var XQ;return X0((XQ=xU().stringify(LU()))!==null&&XQ!==void 0?XQ:"",50)}))],ZA),ce("dblclick",Nf,()=>A0A()(WQ())),iA(EI,Nf),mt()})(gr,{get path(){return l(Zn)},get value(){return l($o)},get parser(){return D()},get isSelected(){return l(Xg)},get containsSearchResult(){return l(ZQ)},get containsActiveSearchResult(){return l(VQ)},onEdit:rn})},hv=gr=>{var sa=ZA(()=>(k($l),l(tA),l(Me),k(l(Zn)),oA(()=>{var as;return(as=$l(l(tA),l(Me),l(Zn)))===null||as===void 0?void 0:as.searchResults}))),VQ=ZA(()=>l($o)!==void 0?l($o):""),ZQ=ZA(()=>(k(t0),l(tA),l(NA),k(l(Zn)),oA(()=>t0(l(tA),l(NA),l(Zn))))),EI=ZA(()=>l(Xg)?l(MA):void 0);XaA(gr,{get path(){return l(Zn)},get value(){return l(VQ)},get enforceString(){return l(ZQ)},get selection(){return l(EI)},get searchResultItems(){return l(sa)},get context(){return l(ot)}})};GA(Id,gr=>{k(Fo),k(l($o)),oA(()=>Fo(l($o)))?gr(qQ):gr(hv,!1)});var fv=CA(Id),mv=gr=>{var sa=xTA();P1(W(sa),{selected:!0,onContextMenu:In}),iA(gr,sa)};GA(fv,gr=>{k(C()),k(l(Xg)),k(Sr),l(MA),oA(()=>!C()&&l(Xg)&&!Sr(l(MA)))&&gr(mv)});var $g=CA(jQ,2),BI=gr=>{wQ(gr,{get validationError(){return l(ld)},get onExpand(){return $c}})};GA($g,gr=>{l(ld)&&gr(BI)}),we((gr,sa)=>{gn(Uo,"data-path",gr),za=jt(jQ,1,"jse-value-outer svelte-u14cgx",null,za,sa)},[()=>(k(My),k(l(Zn)),oA(()=>My(l(Zn)))),()=>({"jse-selected-value":l(Xg)})],ZA),iA(Vr,Uo)});var Wg=CA(ng),og=Vr=>{iA(Vr,FTA())};GA(Wg,Vr=>{l(A)&&Vr(og)}),iA(rt,Fr)});var Tt,bo=W(CA(Yn));Qo(ve,rt=>y(JA,rt),()=>l(JA)),Ts(ve,(rt,Ai)=>wy?.(rt,Ai),()=>Qt),rs(()=>ce("scroll",ve,et));var kn=CA(ve,2),oo=rt=>{var Ai=ZA(()=>(l(zA),oA(()=>"You pasted a JSON ".concat(Array.isArray(l(zA).contents)?"array":"object"," as text")))),ho=ZA(()=>[{icon:_0,text:"Paste as JSON instead",title:"Paste the text as JSON instead of a single value",onMouseDown:$A},{text:"Leave as is",title:"Keep the pasted content as a single value",onClick:Ci}]);pc(rt,{type:"info",get message(){return l(Ai)},get actions(){return l(ho)}})};GA(kn,rt=>{l(zA)&&rt(oo)});var An=CA(kn,2),Lt=rt=>{var Ai=ZA(()=>[{icon:_0,text:"Paste as string instead",title:"Paste the clipboard data as a single string value instead of an array",onClick:Un},{text:"Leave as is",title:"Keep the pasted array",onClick:io}]);pc(rt,{type:"info",message:"Multiline text was pasted as array",get actions(){return l(Ai)}})};GA(An,rt=>{l(xA)&&rt(Lt)});var Ti=CA(An,2),xt=rt=>{var Ai=ZA(()=>C()?[]:[{icon:U5,text:"Ok",title:"Accept the repaired document",onClick:Wi},{icon:B4,text:"Repair manually instead",title:"Leave the document unchanged and repair it manually instead",onClick:Wo}]);pc(rt,{type:"success",message:"The loaded JSON document was invalid but is successfully repaired.",get actions(){return l(Ai)},onClose:b})};GA(Ti,rt=>{l($e)&&rt(xt)}),SK(CA(Ti,2),{get validationErrors(){return l(Zi)},selectError:vt}),we((rt,Ai,ho)=>{At=jt(Cn,1,"jse-table-invisible-start-section svelte-u14cgx",null,At,rt),gn(xi,"colspan",(l(Re),oA(()=>l(Re).length))),ui=eg(xi,"",ui,Ai),gn(bo,"colspan",(l(Re),oA(()=>l(Re).length))),Tt=eg(bo,"",Tt,ho)},[()=>({"jse-search-box-background":l(LA)}),()=>({height:(l(i),oA(()=>l(i).startHeight+"px"))}),()=>({height:(l(i),oA(()=>l(i).endHeight+"px"))})],ZA),iA(ne,Pe)},ee=(ne,Pe)=>{var Oe=Ne=>{var Yi=KTA(),H=Mt(Yi),rA=ZA(()=>C()?[]:[{icon:B4,text:"Repair manually",title:'Open the document in "code" mode and repair it manually',onClick:Wo}]);pc(H,{type:"error",message:"The loaded JSON document is invalid and could not be repaired automatically.",get actions(){return l(rA)}}),acA(CA(H,2),{get text(){return l(OA)},get json(){return l(tA)},get indentation(){return K()},get parser(){return D()}}),iA(Ne,Yi)},ve=Ne=>{MTA(Ne,{get text(){return l(OA)},get json(){return l(tA)},get readOnly(){return C()},get parser(){return D()},openJSONEditorModal:rn,extractPath:hn,get onChangeMode(){return V()},onClick:()=>{b()}})};GA(ne,Ne=>{l(gA)&&l(OA)!==void 0&&l(OA)!==""?Ne(Oe):Ne(ve,!1)},Pe)};GA(Z,ne=>{l(St)?ne(RA):ne(ee,!1)}),ce("paste",q,aA),iA(p,F)},Nr=p=>{iA(p,JTA())};GA(Ko,p=>{I?p(Nr,!1):p(Ot)}),Qo(Qi,p=>y(BA,p),()=>l(BA));var Jn=CA(Qi,2),Q=p=>{ZaA(p,{onClose:()=>y(L,!1)})};GA(Jn,p=>{l(L)&&p(Q)});var m=CA(Jn,2),v=p=>{WaA(p,AI(()=>l(We),{onClose:()=>{var F;(F=l(We))===null||F===void 0||F.onClose(),y(We,void 0)}}))};return GA(m,p=>{l(We)&&p(v)}),we(p=>Te=jt(Qi,1,"jse-table-mode svelte-u14cgx",null,Te,p),[()=>({"no-main-menu":!h()})],ZA),ce("mousedown",Qi,function(p){if(p.buttons===1||p.buttons===2){var F=p.target;F.isContentEditable||b();var U=uaA(F);if(U){if(Sr(l(MA))&&nf(l(tA),l(MA),U))return;y(MA,vi(U)),p.preventDefault()}}}),ce("keydown",Qi,function(p){var F=s2(p);if(o("keydown",{combo:F,key:p.key}),F==="Ctrl+X"&&(p.preventDefault(),Xo(!0)),F==="Ctrl+Shift+X"&&(p.preventDefault(),Xo(!1)),F==="Ctrl+C"&&(p.preventDefault(),on(!0)),F==="Ctrl+Shift+C"&&(p.preventDefault(),on(!1)),F==="Ctrl+D"&&(p.preventDefault(),hA()),F!=="Delete"&&F!=="Backspace"||(p.preventDefault(),yt()),F==="Insert"&&p.preventDefault(),F==="Ctrl+A"&&p.preventDefault(),F==="Ctrl+Q"&&qo(p),F==="ArrowLeft"&&(p.preventDefault(),ai(),l(MA))){var U=function(Pe,Oe){var{rowIndex:ve,columnIndex:Ne}=Xc(nt(Oe),Pe);return Ne>0?vi(PC({rowIndex:ve,columnIndex:Ne-1},Pe)):Oe}(l(Re),l(MA));y(MA,U),Mo(nt(U))}if(F==="ArrowRight"&&(p.preventDefault(),ai(),l(MA))){var q=function(Pe,Oe){var{rowIndex:ve,columnIndex:Ne}=Xc(nt(Oe),Pe);return Ne0?vi(PC({rowIndex:ve-1,columnIndex:Ne},Pe)):Oe}(l(Re),l(MA));y(MA,Z),Mo(nt(Z))}if(F==="ArrowDown"&&(p.preventDefault(),ai(),l(MA))){var RA=function(Pe,Oe,ve){var{rowIndex:Ne,columnIndex:Yi}=Xc(nt(ve),Oe);return Ney(UA,L)}).get()),BA=$(a());function JA(L){if(GrA(L)){y(BA,L.undo.mode);var T=l(UA).items(),P=T.findIndex(kA=>kA===L),X=P!==-1?T[P-1]:void 0;ie("handleUndo",{index:P,item:L,items:T,prevItem:X}),X&&i(X.redo.selection),J()(l(BA))}}function Xe(L){if(GrA(L)){y(BA,L.redo.mode);var T=l(UA).items(),P=T.findIndex(kA=>kA===L),X=P!==-1?T[P+1]:void 0;ie("handleRedo",{index:P,item:L,items:T,nextItem:X}),X&&i(X.undo.selection),J()(l(BA))}}var We=$(),KA={type:"separator"},tA=$(),OA=$();function gA(L){if(l(lA))return l(lA).patch(L);if(l(wA))return l(wA).patch(L);if(l(VA))return l(VA).patch(L);throw new Error('Method patch is not available in mode "'.concat(l(BA),'"'))}function zA(L,T){if(l(lA))return l(lA).expand(L,T);if(l(VA))return l(VA).expand(L,T);throw new Error('Method expand is not available in mode "'.concat(l(BA),'"'))}function xA(L,T){if(l(lA))return l(lA).collapse(L,T);if(l(VA))return l(VA).collapse(L,T);throw new Error('Method collapse is not available in mode "'.concat(l(BA),'"'))}function Me(L){if(l(VA))l(VA).openTransformModal(L);else if(l(lA))l(lA).openTransformModal(L);else{if(!l(wA))throw new Error('Method transform is not available in mode "'.concat(l(BA),'"'));l(wA).openTransformModal(L)}}function LA(){if(l(VA))return l(VA).validate();if(l(lA))return l(lA).validate();if(l(wA))return l(wA).validate();throw new Error('Method validate is not available in mode "'.concat(l(BA),'"'))}function cA(){return l(lA)?l(lA).acceptAutoRepair():A()}function Gt(L){if(l(lA))return l(lA).scrollTo(L);if(l(wA))return l(wA).scrollTo(L);throw new Error('Method scrollTo is not available in mode "'.concat(l(BA),'"'))}function ct(L){if(l(lA))return l(lA).findElement(L);if(l(wA))return l(wA).findElement(L);throw new Error('Method findElement is not available in mode "'.concat(l(BA),'"'))}function oe(){l(VA)?l(VA).focus():l(lA)?l(lA).focus():l(wA)&&l(wA).focus()}function Dt(){return _e.apply(this,arguments)}function _e(){return(_e=_t(function*(){l(VA)&&(yield l(VA).refresh())})).apply(this,arguments)}pA(()=>k(a()),()=>{(function(L){if(L!==l(BA)){var T={type:"mode",undo:{mode:l(BA),selection:void 0},redo:{mode:L,selection:void 0}};l(BA)==="text"&&l(VA)&&l(VA).flush(),ie("add history item",T),l(UA).add(T),y(BA,L)}})(a())}),pA(()=>(l(BA),k(J())),()=>{y(We,[{type:"button",text:"text",title:"Switch to text mode (current mode: ".concat(l(BA),")"),className:"jse-group-button jse-first"+(l(BA)===ir.text?" jse-selected":""),onClick:()=>J()(ir.text)},{type:"button",text:"tree",title:"Switch to tree mode (current mode: ".concat(l(BA),")"),className:"jse-group-button "+(l(BA)===ir.tree?" jse-selected":""),onClick:()=>J()(ir.tree)},{type:"button",text:"table",title:"Switch to table mode (current mode: ".concat(l(BA),")"),className:"jse-group-button jse-last"+(l(BA)===ir.table?" jse-selected":""),onClick:()=>J()(ir.table)}])}),pA(()=>(l(We),k(V()),l(BA),k(D()),k(n())),()=>{y(tA,L=>{var T=_G(L[0])?l(We).concat(L):l(We).concat(KA,L),P=g4(T);return V()(T,{mode:l(BA),modal:D(),readOnly:n()})||P})}),pA(()=>(k(j()),l(BA),k(D()),k(n()),k(i())),()=>{y(OA,L=>{var T,P=g4(L);return(T=j()(L,{mode:l(BA),modal:D(),readOnly:n(),selection:i()}))!==null&&T!==void 0?T:!n()&&P})}),ln(),qt();var Re=_o(),St=Mt(Re),Se=L=>{Qo(BTA(L,{get externalContent(){return A()},get externalSelection(){return i()},get history(){return l(UA)},get readOnly(){return n()},get indentation(){return o()},get tabSize(){return r()},get mainMenuBar(){return c()},get statusBar(){return I()},get askToFormat(){return C()},get escapeUnicodeCharacters(){return B()},get parser(){return u()},get validator(){return w()},get validationParser(){return x()},get onChange(){return G()},get onChangeMode(){return J()},get onSelect(){return z()},onUndo:JA,onRedo:Xe,get onError(){return dA()},get onFocus(){return fA()},get onBlur(){return EA()},get onRenderMenu(){return l(tA)},get onSortModal(){return IA()},get onTransformModal(){return SA()},$$legacy:!0}),T=>y(VA,T),()=>l(VA))},Wt=(L,T)=>{var P=kA=>{Qo(TTA(kA,{get externalContent(){return A()},get externalSelection(){return i()},get history(){return l(UA)},get readOnly(){return n()},get truncateTextSize(){return s()},get mainMenuBar(){return c()},get escapeControlCharacters(){return d()},get escapeUnicodeCharacters(){return B()},get flattenColumns(){return E()},get parser(){return u()},get parseMemoizeOne(){return h()},get validator(){return w()},get validationParser(){return x()},get indentation(){return o()},get onChange(){return G()},get onChangeMode(){return J()},get onSelect(){return z()},onUndo:JA,onRedo:Xe,get onRenderValue(){return K()},get onFocus(){return fA()},get onBlur(){return EA()},get onRenderMenu(){return l(tA)},get onRenderContextMenu(){return l(OA)},get onSortModal(){return IA()},get onTransformModal(){return SA()},get onJSONEditorModal(){return nA()},$$legacy:!0}),le=>y(wA,le),()=>l(wA))},X=kA=>{Qo($G(kA,{get externalContent(){return A()},get externalSelection(){return i()},get history(){return l(UA)},get readOnly(){return n()},get indentation(){return o()},get truncateTextSize(){return s()},get mainMenuBar(){return c()},get navigationBar(){return g()},get escapeControlCharacters(){return d()},get escapeUnicodeCharacters(){return B()},get parser(){return u()},get parseMemoizeOne(){return h()},get validator(){return w()},get validationParser(){return x()},get pathParser(){return R()},get onError(){return dA()},get onChange(){return G()},get onChangeMode(){return J()},get onSelect(){return z()},onUndo:JA,onRedo:Xe,get onRenderValue(){return K()},get onClassName(){return O()},get onFocus(){return fA()},get onBlur(){return EA()},get onRenderMenu(){return l(tA)},get onRenderContextMenu(){return l(OA)},get onSortModal(){return IA()},get onTransformModal(){return SA()},get onJSONEditorModal(){return nA()},$$legacy:!0}),le=>y(lA,le),()=>l(lA))};GA(L,kA=>{l(BA),k(ir),oA(()=>l(BA)===ir.table)?kA(P):kA(X,!1)},T)};return GA(St,L=>{l(BA),k(ir),oA(()=>l(BA)===ir.text||String(l(BA))==="code")?L(Se):L(Wt,!1)}),iA(t,Re),Ft(e,"patch",gA),Ft(e,"expand",zA),Ft(e,"collapse",xA),Ft(e,"transform",Me),Ft(e,"validate",LA),Ft(e,"acceptAutoRepair",cA),Ft(e,"scrollTo",Gt),Ft(e,"findElement",ct),Ft(e,"focus",oe),Ft(e,"refresh",Dt),mt({patch:gA,expand:zA,collapse:xA,transform:Me,validate:LA,acceptAutoRepair:cA,scrollTo:Gt,findElement:ct,focus:oe,refresh:Dt})}Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-modal-wrapper.svelte-v0el4e { + flex: 1; + display: flex; + min-width: 0; + min-height: 0; + flex-direction: column; +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) { + flex: 1; + display: flex; + flex-direction: column; + padding: 20px; + overflow: auto; + min-width: 0; + min-height: 0; +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) { + display: flex; + flex-direction: row; + justify-content: flex-end; + padding-top: var(--jse-padding, 10px); +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) button.jse-primary:where(.svelte-v0el4e) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); + color: var(--jse-button-primary-color, #fff); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) button.jse-primary:where(.svelte-v0el4e):hover { + background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) button.jse-primary:where(.svelte-v0el4e):disabled { + background: var(--jse-button-primary-background-disabled, #9d9d9d); +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-label:where(.svelte-v0el4e) { + font-weight: bold; + display: block; + box-sizing: border-box; +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-label:where(.svelte-v0el4e) .jse-label-inner:where(.svelte-v0el4e) { + margin-top: calc(2 * var(--jse-padding, 10px)); + margin-bottom: calc(0.5 * var(--jse-padding, 10px)); + box-sizing: border-box; +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-modal-inline-editor:where(.svelte-v0el4e) { + flex: 1; + min-height: 150px; + min-width: 0; + max-width: 100%; + display: flex; + --jse-theme-color: var(--jse-modal-editor-theme-color, #707070); + --jse-theme-color-highlight: var(--jse-modal-editor-theme-color-highlight, #646464); +} +.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) { + gap: var(--jse-padding, 10px); + align-items: center; +} +.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) .jse-error:where(.svelte-v0el4e) { + flex: 1; + color: var(--jse-error-color, #ee5341); +} +.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) button.jse-secondary:where(.svelte-v0el4e) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-secondary-background, #d3d3d3); + color: var(--jse-button-secondary-color, var(--jse-text-color, #4d4d4d)); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) button.jse-secondary:where(.svelte-v0el4e):hover { + background: var(--jse-button-secondary-background-highlight, #e1e1e1); +} +.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) button.jse-secondary:where(.svelte-v0el4e):disabled { + background: var(--jse-button-secondary-background-disabled, #9d9d9d); +} +.jse-modal-wrapper.svelte-v0el4e input:where(.svelte-v0el4e) { + border: var(--jse-input-border, 1px solid #d8dbdf); + outline: none; + box-sizing: border-box; + padding: calc(0.5 * var(--jse-padding, 10px)); + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + color: inherit; + background: var(--jse-input-background, var(--jse-background-color, #fff)); +} +.jse-modal-wrapper.svelte-v0el4e input:where(.svelte-v0el4e):focus { + border: var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa))); +} +.jse-modal-wrapper.svelte-v0el4e input:where(.svelte-v0el4e):read-only { + background: var(--jse-input-background-readonly, transparent); +}`);var HTA=vA('
      '),OTA=vA(''),zTA=vA(''),PTA=vA(''),jTA=vA('
      Path
      Contents
      ',1),qTA=vA('
      '),VTA={};Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-modal-contents.svelte-1v9c92j { + flex: 1; + display: flex; + flex-direction: column; + padding: 20px; + overflow: auto; + min-width: 0; + min-height: 0; +} +.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) { + display: flex; + flex-direction: row; + justify-content: flex-end; + padding-top: var(--jse-padding, 10px); +} +.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) button.jse-primary:where(.svelte-1v9c92j) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); + color: var(--jse-button-primary-color, #fff); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) button.jse-primary:where(.svelte-1v9c92j):hover { + background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); +} +.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) button.jse-primary:where(.svelte-1v9c92j):disabled { + background: var(--jse-button-primary-background-disabled, #9d9d9d); +} +.jse-modal-contents.svelte-1v9c92j table:where(.svelte-1v9c92j) { + width: 100%; + border-collapse: collapse; + border-spacing: 0; +} +.jse-modal-contents.svelte-1v9c92j table:where(.svelte-1v9c92j) th:where(.svelte-1v9c92j), +.jse-modal-contents.svelte-1v9c92j table:where(.svelte-1v9c92j) td:where(.svelte-1v9c92j) { + text-align: left; + vertical-align: middle; + font-weight: normal; + padding-bottom: var(--jse-padding, 10px); +} +.jse-modal-contents.svelte-1v9c92j input.jse-path:where(.svelte-1v9c92j) { + width: 100%; + box-sizing: border-box; + padding: 5px 10px; + border: var(--jse-input-border, 1px solid #d8dbdf); + border-radius: var(--jse-input-radius, 3px); + font-family: inherit; + font-size: inherit; + background: inherit; + background: var(--jse-input-background-readonly, transparent); + color: inherit; + outline: none; +} +.jse-modal-contents.svelte-1v9c92j .svelte-select input { + box-sizing: border-box; +} +.jse-modal-contents.svelte-1v9c92j .jse-space:where(.svelte-1v9c92j) { + height: 200px; +} +.jse-modal-contents.svelte-1v9c92j .jse-space:where(.svelte-1v9c92j) .jse-error:where(.svelte-1v9c92j) { + color: var(--jse-error-color, #ee5341); +}`);var CQ=i7(()=>VTA),ZTA=vA('Property'),WTA=vA('
      '),XTA=vA('
      Path
      Direction
      ',1);Ut(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-main.svelte-57bmz4 { + width: 100%; + height: 100%; + min-width: 0; + min-height: 150px; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + line-height: normal; + position: relative; + display: flex; + flex-direction: row; +} +.jse-main.svelte-57bmz4:not(.jse-focus) { + --jse-selection-background-color: var(--jse-selection-background-inactive-color, #e8e8e8); + --jse-context-menu-pointer-background: var(--jse-context-menu-pointer-hover-background, #b2b2b2); +}`);var $TA=vA('
      ',1);function AHA(t,e){ft(e,!1);var A=$(void 0,!0),i=xr("jsoneditor:JSONEditor"),n={text:""},o=void 0,r=!1,s=ir.tree,a=!0,c=!0,g=!0,I=!0,C=!1,d=!1,B=!0,E=JSON,u=void 0,h=JSON,w={parse:qKA,stringify:Ta},x=[CKA],R=x[0].id,D=$c,G=void 0,J=void 0,z=jKA,K=$c,O=$c,V=$c,j=$c,dA=$A=>{console.error($A),alert($A.toString())},fA=$c,EA=$c,IA=M(e,"content",13,n),SA=M(e,"selection",13,o),nA=M(e,"readOnly",13,r),lA=M(e,"indentation",13,2),wA=M(e,"tabSize",13,4),VA=M(e,"truncateTextSize",13,1e3),ie=M(e,"mode",13,s),UA=M(e,"mainMenuBar",13,a),BA=M(e,"navigationBar",13,c),JA=M(e,"statusBar",13,g),Xe=M(e,"askToFormat",13,I),We=M(e,"escapeControlCharacters",13,C),KA=M(e,"escapeUnicodeCharacters",13,d),tA=M(e,"flattenColumns",13,B),OA=M(e,"parser",13,E),gA=M(e,"validator",13,u),zA=M(e,"validationParser",13,h),xA=M(e,"pathParser",13,w),Me=M(e,"queryLanguages",13,x),LA=M(e,"queryLanguageId",13,R),cA=M(e,"onChangeQueryLanguage",13,D),Gt=M(e,"onChange",13,G),ct=M(e,"onSelect",13,J),oe=M(e,"onRenderValue",13,z),Dt=M(e,"onClassName",13,K),_e=M(e,"onRenderMenu",13,O),Re=M(e,"onRenderContextMenu",13,V),St=M(e,"onChangeMode",13,j),Se=M(e,"onError",13,dA),Wt=M(e,"onFocus",13,fA),L=M(e,"onBlur",13,EA),T=$(QQ(),!0),P=$(!1,!0),X=$(void 0,!0),kA=$(void 0,!0),le=$(void 0,!0),Ee=$(void 0,!0),NA=$(OA(),!0);function MA(){return IA()}function Ct($A){i("set");var Ei=nG($A);if(Ei)throw new Error(Ei);y(T,QQ()),IA($A),to()}function $e($A){i("update");var Ei=nG($A);if(Ei)throw new Error(Ei);IA($A),to()}function XA($A){var Ei=l(X).patch($A);return to(),Ei}function ot($A){SA($A),to()}function Si($A,Ei){l(X).expand($A,Ei),to()}function Zi($A){var Ei=arguments.length>1&&arguments[1]!==void 0&&arguments[1];l(X).collapse($A,Ei),to()}function Oi(){var $A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};l(X).transform($A),to()}function Le(){return l(X).validate()}function zi(){var $A=l(X).acceptAutoRepair();return to(),$A}function fi($A){return Ht.apply(this,arguments)}function Ht(){return(Ht=_t(function*($A){yield l(X).scrollTo($A)})).apply(this,arguments)}function Rt($A){return l(X).findElement($A)}function Bi(){l(X).focus(),to()}function Mi(){return Jt.apply(this,arguments)}function Jt(){return(Jt=_t(function*(){yield l(X).refresh()})).apply(this,arguments)}function b($A){var Ei,Ri,un,Un,Zo,Ci,io,Wo,Xo,nr,on,$i,yt,hn,hA,Ae,re,xe,ue,aA,DA,PA,Je,vt,Yt,rn,no,sn,Ji,bt,Li,Mn=Object.keys($A);for(var Qt of Mn)switch(Qt){case"content":IA((Ei=$A[Qt])!==null&&Ei!==void 0?Ei:n);break;case"selection":SA((Ri=$A[Qt])!==null&&Ri!==void 0?Ri:o);break;case"readOnly":nA((un=$A[Qt])!==null&&un!==void 0?un:r);break;case"indentation":lA((Un=$A[Qt])!==null&&Un!==void 0?Un:2);break;case"tabSize":wA((Zo=$A[Qt])!==null&&Zo!==void 0?Zo:4);break;case"truncateTextSize":VA((Ci=$A[Qt])!==null&&Ci!==void 0?Ci:1e3);break;case"mode":ie((io=$A[Qt])!==null&&io!==void 0?io:s);break;case"mainMenuBar":UA((Wo=$A[Qt])!==null&&Wo!==void 0?Wo:a);break;case"navigationBar":BA((Xo=$A[Qt])!==null&&Xo!==void 0?Xo:c);break;case"statusBar":JA((nr=$A[Qt])!==null&&nr!==void 0?nr:g);break;case"askToFormat":Xe((on=$A[Qt])!==null&&on!==void 0?on:I);break;case"escapeControlCharacters":We(($i=$A[Qt])!==null&&$i!==void 0?$i:C);break;case"escapeUnicodeCharacters":KA((yt=$A[Qt])!==null&&yt!==void 0?yt:d);break;case"flattenColumns":tA((hn=$A[Qt])!==null&&hn!==void 0?hn:B);break;case"parser":OA((hA=$A[Qt])!==null&&hA!==void 0?hA:E);break;case"validator":gA((Ae=$A[Qt])!==null&&Ae!==void 0?Ae:u);break;case"validationParser":zA((re=$A[Qt])!==null&&re!==void 0?re:h);break;case"pathParser":xA((xe=$A[Qt])!==null&&xe!==void 0?xe:w);break;case"queryLanguages":Me((ue=$A[Qt])!==null&&ue!==void 0?ue:x);break;case"queryLanguageId":LA((aA=$A[Qt])!==null&&aA!==void 0?aA:R);break;case"onChangeQueryLanguage":cA((DA=$A[Qt])!==null&&DA!==void 0?DA:D);break;case"onChange":Gt((PA=$A[Qt])!==null&&PA!==void 0?PA:G);break;case"onRenderValue":oe((Je=$A[Qt])!==null&&Je!==void 0?Je:z);break;case"onClassName":Dt((vt=$A[Qt])!==null&&vt!==void 0?vt:K);break;case"onRenderMenu":_e((Yt=$A[Qt])!==null&&Yt!==void 0?Yt:O);break;case"onRenderContextMenu":Re((rn=$A[Qt])!==null&&rn!==void 0?rn:V);break;case"onChangeMode":St((no=$A[Qt])!==null&&no!==void 0?no:j);break;case"onSelect":ct((sn=$A[Qt])!==null&&sn!==void 0?sn:J);break;case"onError":Se((Ji=$A[Qt])!==null&&Ji!==void 0?Ji:dA);break;case"onFocus":Wt((bt=$A[Qt])!==null&&bt!==void 0?bt:fA);break;case"onBlur":L((Li=$A[Qt])!==null&&Li!==void 0?Li:EA);break;default:fn(Qt)}function fn(Te){i('Unknown property "'.concat(Te,'"'))}Me().some(Te=>Te.id===LA())||LA(Me()[0].id),to()}function et(){return ai.apply(this,arguments)}function ai(){return(ai=_t(function*(){throw new Error("class method destroy() is deprecated. It is replaced with a method destroy() in the vanilla library.")})).apply(this,arguments)}function Wi($A,Ei,Ri){IA($A),Gt()&&Gt()($A,Ei,Ri)}function Xi($A){SA($A),ct()&&ct()(g4($A))}function xn(){y(P,!0),Wt()&&Wt()()}function Mo(){y(P,!1),L()&&L()()}function vn($A){return In.apply(this,arguments)}function In(){return(In=_t(function*($A){ie()!==$A&&(ie($A),to(),Bi(),St()($A))})).apply(this,arguments)}function qo($A){i("handleChangeQueryLanguage",$A),LA($A),cA()($A)}function Vo($A){var{id:Ei,json:Ri,rootPath:un,onTransform:Un,onClose:Zo}=$A;nA()||y(Ee,{id:Ei,json:Ri,rootPath:un,indentation:lA(),truncateTextSize:VA(),escapeControlCharacters:We(),escapeUnicodeCharacters:KA(),parser:OA(),parseMemoizeOne:l(A),validationParser:zA(),pathParser:xA(),queryLanguages:Me(),queryLanguageId:LA(),onChangeQueryLanguage:qo,onRenderValue:oe(),onRenderMenu:Ci=>_e()(Ci,{mode:ie(),modal:!0,readOnly:nA()}),onRenderContextMenu:Ci=>Re()(Ci,{mode:ie(),modal:!0,readOnly:nA(),selection:SA()}),onClassName:Dt(),onTransform:Un,onClose:Zo})}function uo($A){nA()||y(le,$A)}function Qn($A){var{content:Ei,path:Ri,onPatch:un,onClose:Un}=$A;i("onJSONEditorModal",{content:Ei,path:Ri}),y(kA,{content:Ei,path:Ri,onPatch:un,readOnly:nA(),indentation:lA(),tabSize:wA(),truncateTextSize:VA(),mainMenuBar:UA(),navigationBar:BA(),statusBar:JA(),askToFormat:Xe(),escapeControlCharacters:We(),escapeUnicodeCharacters:KA(),flattenColumns:tA(),parser:OA(),validator:void 0,validationParser:zA(),pathParser:xA(),onRenderValue:oe(),onClassName:Dt(),onRenderMenu:_e(),onRenderContextMenu:Re(),onSortModal:uo,onTransformModal:Vo,onClose:Un})}function Kn($A){$A.stopPropagation()}return pA(()=>(k(OA()),l(NA),k(IA()),QQ),()=>{if(!gaA(OA(),l(NA))){if(i("parser changed, recreate editor"),X3(IA())){var $A=l(NA).stringify(IA().json);IA({json:$A!==void 0?OA().parse($A):void 0})}y(NA,OA()),y(T,QQ())}}),pA(()=>k(IA()),()=>{var $A=nG(IA());$A&&console.error("Error: "+$A)}),pA(()=>k(SA()),()=>{SA()===null&&console.warn("selection is invalid: it is null but should be undefined")}),pA(()=>k(OA()),()=>{y(A,hE(OA().parse))}),pA(()=>k(ie()),()=>{i("mode changed to",ie())}),ln(),qt(!0),NG(t,{children:($A,Ei)=>{var Ri,un=$TA(),Un=Mt(un);XsA(W(Un),()=>l(T),on=>{Qo(BsA(on,{get externalMode(){return ie()},get content(){return IA()},get selection(){return SA()},get readOnly(){return nA()},get indentation(){return lA()},get tabSize(){return wA()},get truncateTextSize(){return VA()},get statusBar(){return JA()},get askToFormat(){return Xe()},get mainMenuBar(){return UA()},get navigationBar(){return BA()},get escapeControlCharacters(){return We()},get escapeUnicodeCharacters(){return KA()},get flattenColumns(){return tA()},get parser(){return OA()},get parseMemoizeOne(){return l(A)},get validator(){return gA()},get validationParser(){return zA()},get pathParser(){return xA()},insideModal:!1,get onError(){return Se()},onChange:Wi,onChangeMode:vn,onSelect:Xi,get onRenderValue(){return oe()},get onClassName(){return Dt()},onFocus:xn,onBlur:Mo,get onRenderMenu(){return _e()},get onRenderContextMenu(){return Re()},onSortModal:uo,onTransformModal:Vo,onJSONEditorModal:Qn,$$legacy:!0}),$i=>y(X,$i),()=>l(X))});var Zo=CA(Un,2),Ci=on=>{(function($i,yt){var hn,hA;ft(yt,!1);var Ae=$(void 0,!0),re=$(void 0,!0),xe=$(void 0,!0),ue=$(void 0,!0),aA=xr("jsoneditor:SortModal"),DA=M(yt,"id",9),PA=M(yt,"json",9),Je=M(yt,"rootPath",9),vt=M(yt,"onSort",9),Yt=M(yt,"onClose",9),rn={value:1,label:"ascending"},no=[rn,{value:-1,label:"descending"}],sn="".concat(DA(),":").concat(It(Je())),Ji=$((hn=CQ()[sn])===null||hn===void 0?void 0:hn.selectedProperty,!0),bt=$(((hA=CQ()[sn])===null||hA===void 0?void 0:hA.selectedDirection)||rn,!0),Li=$(void 0,!0);function Mn(){try{var fn,Te,Qi;y(Li,void 0);var mi=((fn=l(Ji))===null||fn===void 0?void 0:fn.value)||((Te=l(ue))===null||Te===void 0||(Te=Te[0])===null||Te===void 0?void 0:Te.value)||[],bn=(Qi=l(bt))===null||Qi===void 0?void 0:Qi.value,Ko=$aA(PA(),Je(),mi,bn);vt()!==void 0&&Je()!==void 0&&vt()({operations:Ko,rootPath:Je(),itemPath:mi,direction:bn}),Yt()()}catch(Ot){y(Li,String(Ot))}}function Qt(fn){fn.focus()}pA(()=>(k(PA()),k(Je())),()=>{y(Ae,Ye(PA(),Je()))}),pA(()=>l(Ae),()=>{y(re,Array.isArray(l(Ae)))}),pA(()=>(l(re),l(Ae)),()=>{y(xe,l(re)?LG(l(Ae)):void 0)}),pA(()=>(l(xe),q1),()=>{y(ue,l(xe)?l(xe).map(q1):void 0)}),pA(()=>(CQ(),l(Ji),l(bt)),()=>{CQ(CQ()[sn]={selectedProperty:l(Ji),selectedDirection:l(bt)}),aA("store state in memory",sn,CQ()[sn])}),ln(),qt(!0),sf($i,{get onClose(){return Yt()},className:"jse-sort-modal",children:(fn,Te)=>{var Qi=XTA(),mi=Mt(Qi),bn=ZA(()=>l(re)?"Sort array items":"Sort object keys");qy(mi,{get title(){return l(bn)},get onClose(){return Yt()}});var Ko=W(CA(mi,2)),Ot=CA(W(Ko)),Nr=W(Ot),Jn=CA(W(Nr)),Q=W(Jn),m=CA(Nr),v=ee=>{var ne=ZTA(),Pe=CA(W(ne));jC(W(Pe),{showChevron:!0,get items(){return l(ue)},get value(){return l(Ji)},set value(Oe){y(Ji,Oe)},$$legacy:!0}),iA(ee,ne)};GA(m,ee=>{l(re),l(ue),oA(()=>{var ne;return l(re)&&l(ue)&&((ne=l(ue))===null||ne===void 0?void 0:ne.length)>1})&&ee(v)});var p=CA(m),F=CA(W(p));jC(W(F),{showChevron:!0,clearable:!1,get items(){return no},get value(){return l(bt)},set value(ee){y(bt,ee)},$$legacy:!0});var U=CA(Ko,2),q=W(U),Z=ee=>{var ne=WTA(),Pe=W(ne);we(()=>pt(Pe,l(Li))),iA(ee,ne)};GA(q,ee=>{l(Li)&&ee(Z)});var RA=W(CA(U,2));rs(()=>ce("click",RA,Mn)),Ts(RA,ee=>Qt?.(ee)),we(ee=>{ed(Q,ee),RA.disabled=(l(re),l(ue),l(Ji),oA(()=>{var ne;return!!(l(re)&&l(ue)&&((ne=l(ue))===null||ne===void 0?void 0:ne.length)>1)&&!l(Ji)}))},[()=>(k(Je()),k(Gi),k(Ta),oA(()=>Je()&&!Gi(Je())?Ta(Je()):"(document root)"))],ZA),iA(fn,Qi)},$$slots:{default:!0}}),mt()})(on,AI(()=>l(le),{onClose:()=>{var $i;($i=l(le))===null||$i===void 0||$i.onClose(),y(le,void 0)}}))};GA(Zo,on=>{l(le)&&on(Ci)});var io=CA(Zo,2),Wo=on=>{$YA(on,AI(()=>l(Ee),{onClose:()=>{var $i;($i=l(Ee))===null||$i===void 0||$i.onClose(),y(Ee,void 0)}}))};GA(io,on=>{l(Ee)&&on(Wo)});var Xo=CA(io,2),nr=on=>{(function($i,yt){ft(yt,!1);var hn=$(void 0,!0),hA=$(void 0,!0),Ae=$(void 0,!0),re=$(void 0,!0),xe=xr("jsoneditor:JSONEditorModal"),ue=M(yt,"content",9),aA=M(yt,"path",9),DA=M(yt,"onPatch",9),PA=M(yt,"readOnly",9),Je=M(yt,"indentation",9),vt=M(yt,"tabSize",9),Yt=M(yt,"truncateTextSize",9),rn=M(yt,"mainMenuBar",9),no=M(yt,"navigationBar",9),sn=M(yt,"statusBar",9),Ji=M(yt,"askToFormat",9),bt=M(yt,"escapeControlCharacters",9),Li=M(yt,"escapeUnicodeCharacters",9),Mn=M(yt,"flattenColumns",9),Qt=M(yt,"parser",9),fn=M(yt,"validator",9),Te=M(yt,"validationParser",9),Qi=M(yt,"pathParser",9),mi=M(yt,"onRenderValue",9),bn=M(yt,"onClassName",9),Ko=M(yt,"onRenderMenu",9),Ot=M(yt,"onRenderContextMenu",9),Nr=M(yt,"onSortModal",9),Jn=M(yt,"onTransformModal",9),Q=M(yt,"onClose",9),m=$(void 0,!0),v=$(void 0,!0),p={mode:q(ue()),content:ue(),selection:void 0,relativePath:aA()},F=$([p],!0),U=$(void 0,!0);function q(rA){return X3(rA)&&wo(rA.json)?ir.table:ir.tree}function Z(){var rA,HA=(rA=li(l(F)))===null||rA===void 0?void 0:rA.selection;tf(HA)&&l(m).scrollTo(nt(HA))}function RA(){if(xe("handleApply"),!PA())try{y(U,void 0);var rA=l(hn).relativePath,HA=l(hn).content,De=[{op:"replace",path:It(rA),value:vrA(HA,Qt()).json}];if(l(F).length>1){var fe=vrA(l(F)[l(F).length-2].content,Qt()).json,Ie={json:Ma(fe,De)},dt=pe(pe({},l(F)[l(F).length-2]||p),{},{content:Ie});y(F,[...l(F).slice(0,l(F).length-2),dt]),to(),Z()}else DA()(De),Q()()}catch(At){y(U,String(At))}}function ee(){if(xe("handleClose"),l(v))y(v,!1);else if(l(F).length>1){var rA;y(F,yi(l(F))),to(),(rA=l(m))===null||rA===void 0||rA.focus(),Z(),y(U,void 0)}else Q()()}function ne(rA){xe("handleChange",rA),ve(HA=>pe(pe({},HA),{},{content:rA}))}function Pe(rA){xe("handleChangeSelection",rA),ve(HA=>pe(pe({},HA),{},{selection:rA}))}function Oe(rA){xe("handleChangeMode",rA),ve(HA=>pe(pe({},HA),{},{mode:rA}))}function ve(rA){var HA=rA(li(l(F)));y(F,[...yi(l(F)),HA])}function Ne(rA){y(U,rA.toString()),console.error(rA)}function Yi(rA){var HA,{content:De,path:fe}=rA;xe("handleJSONEditorModal",{content:De,path:fe});var Ie={mode:q(De),content:De,selection:void 0,relativePath:fe};y(F,[...l(F),Ie]),to(),(HA=l(m))===null||HA===void 0||HA.focus()}function H(rA){rA.focus()}ws(()=>{var rA;(rA=l(m))===null||rA===void 0||rA.focus()}),pA(()=>l(F),()=>{y(hn,li(l(F))||p)}),pA(()=>l(F),()=>{y(hA,l(F).flatMap(rA=>rA.relativePath))}),pA(()=>(l(hA),Ta),()=>{y(Ae,Gi(l(hA))?"(document root)":Ta(l(hA)))}),pA(()=>k(Qt()),()=>{y(re,hE(Qt().parse))}),ln(),qt(!0),sf($i,{onClose:ee,className:"jse-jsoneditor-modal",get fullscreen(){return l(v)},children:(rA,HA)=>{var De=qTA();NG(W(De),{children:(fe,Ie)=>{var dt=jTA(),At=Mt(dt),ui=ZA(()=>(l(F),oA(()=>l(F).length>1?" (".concat(l(F).length,")"):"")));qy(At,{get title(){var xt;return"Edit nested content ".concat((xt=l(ui))!==null&&xt!==void 0?xt:"")},fullScreenButton:!0,onClose:ee,get fullscreen(){return l(v)},set fullscreen(xt){y(v,xt)},$$legacy:!0});var Cn=CA(At,2),xi=CA(W(Cn),2),Yn=CA(xi,4);Qo(BsA(W(Yn),{get externalMode(){return l(hn),oA(()=>l(hn).mode)},get content(){return l(hn),oA(()=>l(hn).content)},get selection(){return l(hn),oA(()=>l(hn).selection)},get readOnly(){return PA()},get indentation(){return Je()},get tabSize(){return vt()},get truncateTextSize(){return Yt()},get statusBar(){return sn()},get askToFormat(){return Ji()},get mainMenuBar(){return rn()},get navigationBar(){return no()},get escapeControlCharacters(){return bt()},get escapeUnicodeCharacters(){return Li()},get flattenColumns(){return Mn()},get parser(){return Qt()},get parseMemoizeOne(){return l(re)},get validator(){return fn()},get validationParser(){return Te()},get pathParser(){return Qi()},insideModal:!0,onError:Ne,onChange:ne,onChangeMode:Oe,onSelect:Pe,get onRenderValue(){return mi()},get onClassName(){return bn()},get onFocus(){return $c},get onBlur(){return $c},get onRenderMenu(){return Ko()},get onRenderContextMenu(){return Ot()},get onSortModal(){return Nr()},get onTransformModal(){return Jn()},onJSONEditorModal:Yi,$$legacy:!0}),xt=>y(m,xt),()=>l(m));var Tt=W(CA(Yn,2)),bo=xt=>{var rt=HTA(),Ai=W(rt);we(()=>pt(Ai,l(U))),iA(xt,rt)};GA(Tt,xt=>{l(U)&&xt(bo)});var kn=CA(Tt,2),oo=xt=>{var rt=OTA();Ui(W(rt),{get data(){return BX}}),ce("click",rt,ee),iA(xt,rt)};GA(kn,xt=>{l(F),oA(()=>l(F).length>1)&&xt(oo)});var An=CA(kn,2),Lt=xt=>{var rt=zTA();rs(()=>ce("click",rt,RA)),Ts(rt,Ai=>H?.(Ai)),iA(xt,rt)},Ti=xt=>{var rt=PTA();ce("click",rt,ee),iA(xt,rt)};GA(An,xt=>{PA()?xt(Ti,!1):xt(Lt)}),we(()=>ed(xi,l(Ae))),iA(fe,dt)},$$slots:{default:!0}}),iA(rA,De)},$$slots:{default:!0}}),mt()})(on,AI(()=>l(kA),{onClose:()=>{var $i;($i=l(kA))===null||$i===void 0||$i.onClose(),y(kA,void 0)}}))};GA(Xo,on=>{l(kA)&&on(nr)}),we(on=>Ri=jt(Un,1,"jse-main svelte-57bmz4",null,Ri,on),[()=>({"jse-focus":l(P)})],ZA),ce("keydown",Un,Kn),iA($A,un)},$$slots:{default:!0}}),Ft(e,"get",MA),Ft(e,"set",Ct),Ft(e,"update",$e),Ft(e,"patch",XA),Ft(e,"select",ot),Ft(e,"expand",Si),Ft(e,"collapse",Zi),Ft(e,"transform",Oi),Ft(e,"validate",Le),Ft(e,"acceptAutoRepair",zi),Ft(e,"scrollTo",fi),Ft(e,"findElement",Rt),Ft(e,"focus",Bi),Ft(e,"refresh",Mi),Ft(e,"updateProps",b),Ft(e,"destroy",et),mt({get:MA,set:Ct,update:$e,patch:XA,select:ot,expand:Si,collapse:Zi,transform:Oi,validate:Le,acceptAutoRepair:zi,scrollTo:fi,findElement:Rt,focus:Bi,refresh:Mi,updateProps:b,destroy:et})}function IcA(t){var{target:e,props:A}=t,i=RGA(AHA,{target:e,props:A});return i.destroy=_t(function*(){return function(n,o){var r=kG.get(n);return r?(kG.delete(n),r(o)):Promise.resolve()}(i)}),to(),i}var UQ=class t{constructor(e){this.el=e}jsonString;editor=null;ngAfterViewInit(){let e={text:this.jsonString};this.editor=IcA({target:document.getElementById("json-editor"),props:{content:e,mode:ir.text,mainMenuBar:!1}})}getJsonString(){return this.editor?.get().text}static \u0275fac=function(A){return new(A||t)(Ge(se))};static \u0275cmp=jA({type:t,selectors:[["app-json-editor"]],inputs:{jsonString:"jsonString"},decls:1,vars:0,consts:[["id","json-editor",1,"json-editor-container","jse-theme-dark"]],template:function(A,i){A&1&&TA(0,"div",0)},styles:[".jse-theme-dark[_ngcontent-%COMP%]{--jse-theme: dark;--jse-theme-color: #2f6dd0;--jse-theme-color-highlight: #467cd2;--jse-background-color: #1e1e1e;--jse-text-color: #d4d4d4;--jse-text-color-inverse: #4d4d4d;--jse-main-border: 1px solid #4f4f4f;--jse-menu-color: #fff;--jse-modal-background: #2f2f2f;--jse-modal-overlay-background: rgba(0, 0, 0, .5);--jse-modal-code-background: #2f2f2f;--jse-tooltip-color: var(--jse-text-color);--jse-tooltip-background: #4b4b4b;--jse-tooltip-border: 1px solid #737373;--jse-tooltip-action-button-color: inherit;--jse-tooltip-action-button-background: #737373;--jse-panel-background: #333333;--jse-panel-background-border: 1px solid #464646;--jse-panel-color: var(--jse-text-color);--jse-panel-color-readonly: #737373;--jse-panel-border: 1px solid #3c3c3c;--jse-panel-button-color-highlight: #e5e5e5;--jse-panel-button-background-highlight: #464646;--jse-navigation-bar-background: #656565;--jse-navigation-bar-background-highlight: #7e7e7e;--jse-navigation-bar-dropdown-color: var(--jse-text-color);--jse-context-menu-background: #4b4b4b;--jse-context-menu-background-highlight: #595959;--jse-context-menu-separator-color: #595959;--jse-context-menu-color: var(--jse-text-color);--jse-context-menu-pointer-background: #737373;--jse-context-menu-pointer-background-highlight: #818181;--jse-context-menu-pointer-color: var(--jse-context-menu-color);--jse-key-color: #9cdcfe;--jse-value-color: var(--jse-text-color);--jse-value-color-number: #b5cea8;--jse-value-color-boolean: #569cd6;--jse-value-color-null: #569cd6;--jse-value-color-string: #ce9178;--jse-value-color-url: #ce9178;--jse-delimiter-color: #949494;--jse-edit-outline: 2px solid var(--jse-text-color);--jse-selection-background-color: #464646;--jse-selection-background-inactive-color: #333333;--jse-hover-background-color: #343434;--jse-active-line-background-color: rgba(255, 255, 255, .06);--jse-search-match-background-color: #343434;--jse-collapsed-items-background-color: #333333;--jse-collapsed-items-selected-background-color: #565656;--jse-collapsed-items-link-color: #b2b2b2;--jse-collapsed-items-link-color-highlight: #ec8477;--jse-search-match-color: #724c27;--jse-search-match-outline: 1px solid #966535;--jse-search-match-active-color: #9f6c39;--jse-search-match-active-outline: 1px solid #bb7f43;--jse-tag-background: #444444;--jse-tag-color: #bdbdbd;--jse-table-header-background: #333333;--jse-table-header-background-highlight: #424242;--jse-table-row-odd-background: rgba(255, 255, 255, .1);--jse-input-background: #3d3d3d;--jse-input-border: var(--jse-main-border);--jse-button-background: #808080;--jse-button-background-highlight: #7a7a7a;--jse-button-color: #e0e0e0;--jse-button-secondary-background: #494949;--jse-button-secondary-background-highlight: #5d5d5d;--jse-button-secondary-background-disabled: #9d9d9d;--jse-button-secondary-color: var(--jse-text-color);--jse-a-color: #55abff;--jse-a-color-highlight: #4387c9;--jse-svelte-select-background: #3d3d3d;--jse-svelte-select-border: 1px solid #4f4f4f;--list-background: #3d3d3d;--item-hover-bg: #505050;--multi-item-bg: #5b5b5b;--input-color: #d4d4d4;--multi-clear-bg: #8a8a8a;--multi-item-clear-icon-color: #d4d4d4;--multi-item-outline: 1px solid #696969;--list-shadow: 0 2px 8px 0 rgba(0, 0, 0, .4);--jse-color-picker-background: #656565;--jse-color-picker-border-box-shadow: #8c8c8c 0 0 0 1px}.json-editor-container[_ngcontent-%COMP%]{height:300px;max-height:300px}"]})};var mf=class t{constructor(e,A){this.dialogRef=e;this.data=A;this.jsonString=JSON.stringify(A.jsonContent,null,2),this.functionName=A.functionName||""}jsonEditorComponent=qs(UQ);jsonString="";functionName="";ngOnInit(){}onSave(){try{this.jsonString=this.jsonEditorComponent().getJsonString();let e=JSON.parse(this.jsonString);this.dialogRef.close(e)}catch(e){alert("Invalid JSON: "+e)}}onCancel(){this.dialogRef.close(null)}static \u0275fac=function(A){return new(A||t)(Ge(fr),Ge(Cs))};static \u0275cmp=jA({type:t,selectors:[["app-edit-json-dialog"]],viewQuery:function(A,i){A&1&&ls(i.jsonEditorComponent,UQ,5),A&2&&yc()},decls:11,vars:3,consts:[[1,"dialog-container"],["mat-dialog-title",""],[3,"jsonString"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2),N(),S(3,"mat-dialog-content"),AA(4),TA(5,"app-json-editor",2),N(),S(6,"mat-dialog-actions",3)(7,"button",4),AA(8,"Cancel"),N(),S(9,"button",5),mA("click",function(){return i.onSave()}),AA(10,"Save"),N()()()),A&2&&(_(2),tt(i.data.dialogHeader),_(2),Bt(" ",i.functionName," "),_(),yA("jsonString",i.jsonString))},dependencies:[Ls,ya,UQ,va,dr,bl],styles:[".dialog-container[_ngcontent-%COMP%]{border-radius:12px;padding:18px;width:500px;box-shadow:0 8px 16px var(--edit-json-dialog-container-box-shadow-color)}.editor[_ngcontent-%COMP%]{padding-top:12px}"]})};var eHA=["input"],tHA=["label"],iHA=["*"],nHA=new eA("mat-checkbox-default-options",{providedIn:"root",factory:dcA});function dcA(){return{color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1}}var Hs=function(t){return t[t.Init=0]="Init",t[t.Checked=1]="Checked",t[t.Unchecked=2]="Unchecked",t[t.Indeterminate=3]="Indeterminate",t}(Hs||{}),oHA={provide:bc,useExisting:Ur(()=>pf),multi:!0},xK=class{source;checked},CcA=dcA(),pf=(()=>{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_ngZone=f(ye);_animationMode=f(_i,{optional:!0});_options=f(nHA,{optional:!0});focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(A){let i=new xK;return i.source=this,i.checked=A,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return`${this.id||this._uniqueId}-input`}required;labelPosition="after";name=null;change=new YA;indeterminateChange=new YA;value;disableRipple;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=Hs.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){f(Pn).load(Yr);let A=f(new Wr("tabindex"),{optional:!0});this._options=this._options||CcA,this.color=this._options.color||CcA.color,this.tabIndex=A==null?0:parseInt(A)||0,this.id=this._uniqueId=f(an).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??!1}ngOnChanges(A){A.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(A){A!=this.checked&&(this._checked=A,this._changeDetectorRef.markForCheck())}_checked=!1;get disabled(){return this._disabled}set disabled(A){A!==this.disabled&&(this._disabled=A,this._changeDetectorRef.markForCheck())}_disabled=!1;get indeterminate(){return this._indeterminate}set indeterminate(A){let i=A!=this._indeterminate;this._indeterminate=A,i&&(this._indeterminate?this._transitionCheckState(Hs.Indeterminate):this._transitionCheckState(this.checked?Hs.Checked:Hs.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_indeterminate=!1;_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(A){this.checked=!!A}registerOnChange(A){this._controlValueAccessorChangeFn=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A}validate(A){return this.required&&A.value!==!0?{required:!0}:null}registerOnValidatorChange(A){this._validatorChangeFn=A}_transitionCheckState(A){let i=this._currentCheckState,n=this._getAnimationTargetElement();if(!(i===A||!n)&&(this._currentAnimationClass&&n.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,A),this._currentCheckState=A,this._currentAnimationClass.length>0)){n.classList.add(this._currentAnimationClass);let o=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{n.classList.remove(o)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){let A=this._options?.clickAction;!this.disabled&&A!=="noop"?(this.indeterminate&&A!=="check"&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Hs.Checked:Hs.Unchecked),this._emitChangeEvent()):(this.disabled&&this.disabledInteractive||!this.disabled&&A==="noop")&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate)}_onInteractionEvent(A){A.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(A,i){if(this._animationMode==="NoopAnimations")return"";switch(A){case Hs.Init:if(i===Hs.Checked)return this._animationClasses.uncheckedToChecked;if(i==Hs.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Hs.Unchecked:return i===Hs.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Hs.Checked:return i===Hs.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Hs.Indeterminate:return i===Hs.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(A){let i=this._inputElement;i&&(i.nativeElement.indeterminate=A)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(A){A.target&&this._labelElement.nativeElement.contains(A.target)&&A.stopPropagation()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-checkbox"]],viewQuery:function(i,n){if(i&1&&(st(eHA,5),st(tHA,5)),i&2){let o;de(o=Be())&&(n._inputElement=o.first),de(o=Be())&&(n._labelElement=o.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,n){i&2&&(Qa("id",n.id),Ke("tabindex",null)("aria-label",null)("aria-labelledby",null),Ro(n.color?"mat-"+n.color:"mat-accent"),he("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mdc-checkbox--disabled",n.disabled)("mat-mdc-checkbox-disabled",n.disabled)("mat-mdc-checkbox-checked",n.checked)("mat-mdc-checkbox-disabled-interactive",n.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",ge],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",ge],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",ge],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?void 0:en(A)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge],checked:[2,"checked","checked",ge],disabled:[2,"disabled","disabled",ge],indeterminate:[2,"indeterminate","indeterminate",ge]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[ut([oHA,{provide:M0,useExisting:t,multi:!0}]),Xt],ngContentSelectors:iHA,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"div",3),mA("click",function(s){return QA(o),uA(n._preventBubblingFromLabel(s))}),S(1,"div",4,0)(3,"div",5),mA("click",function(){return QA(o),uA(n._onTouchTargetClick())}),N(),S(4,"input",6,1),mA("blur",function(){return QA(o),uA(n._onBlur())})("click",function(){return QA(o),uA(n._onInputClick())})("change",function(s){return QA(o),uA(n._onInteractionEvent(s))}),N(),TA(6,"div",7),S(7,"div",8),ur(),S(8,"svg",9),TA(9,"path",10),N(),_I(),TA(10,"div",11),N(),TA(11,"div",12),N(),S(12,"label",13,2),Ue(14),N()()}if(i&2){let o=Cr(2);yA("labelPosition",n.labelPosition),_(4),he("mdc-checkbox--selected",n.checked),yA("checked",n.checked)("indeterminate",n.indeterminate)("disabled",n.disabled&&!n.disabledInteractive)("id",n.inputId)("required",n.required)("tabIndex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex),Ke("aria-label",n.ariaLabel||null)("aria-labelledby",n.ariaLabelledby)("aria-describedby",n.ariaDescribedby)("aria-checked",n.indeterminate?"mixed":null)("aria-controls",n.ariaControls)("aria-disabled",n.disabled&&n.disabledInteractive?!0:null)("aria-expanded",n.ariaExpanded)("aria-owns",n.ariaOwns)("name",n.name)("value",n.value),_(7),yA("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)("matRippleCentered",!0),_(),yA("for",n.inputId)}},dependencies:[Xs,B6],styles:['.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom;padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover>.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:hover>.mat-mdc-checkbox-ripple>.mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control+.mdc-checkbox__ripple{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox--disabled{cursor:default;pointer-events:none}@media(forced-colors: active){.mdc-checkbox--disabled{opacity:.5}}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mdc-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-touch-target,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__native-control,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__ripple,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-ripple::before,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__mixedmark{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox .mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox .mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display, block)}.mat-mdc-checkbox .mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();var sHA=[[["caption"]],[["colgroup"],["col"]],"*"],aHA=["caption","colgroup, col","*"];function cHA(t,e){t&1&&Ue(0,2)}function gHA(t,e){t&1&&(S(0,"thead",0),rr(1,1),N(),S(2,"tbody",0),rr(3,2)(4,3),N(),S(5,"tfoot",0),rr(6,4),N())}function lHA(t,e){t&1&&rr(0,1)(1,2)(2,3)(3,4)}var Zg=new eA("CDK_TABLE");var Q7=(()=>{class t{template=f(mn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkCellDef",""]]})}return t})(),u7=(()=>{class t{template=f(mn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkHeaderCellDef",""]]})}return t})(),QcA=(()=>{class t{template=f(mn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkFooterCellDef",""]]})}return t})(),JQ=(()=>{class t{_table=f(Zg,{optional:!0});_hasStickyChanged=!1;get name(){return this._name}set name(A){this._setNameInput(A)}_name;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;get stickyEnd(){return this._stickyEnd}set stickyEnd(A){A!==this._stickyEnd&&(this._stickyEnd=A,this._hasStickyChanged=!0)}_stickyEnd=!1;cell;headerCell;footerCell;cssClassFriendlyName;_columnCssClassName;constructor(){}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}_updateColumnCssClassName(){this._columnCssClassName=[`cdk-column-${this.cssClassFriendlyName}`]}_setNameInput(A){A&&(this._name=A,this.cssClassFriendlyName=A.replace(/[^a-z0-9_-]/gi,"-"),this._updateColumnCssClassName())}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkColumnDef",""]],contentQueries:function(i,n,o){if(i&1&&(gi(o,Q7,5),gi(o,u7,5),gi(o,QcA,5)),i&2){let r;de(r=Be())&&(n.cell=r.first),de(r=Be())&&(n.headerCell=r.first),de(r=Be())&&(n.footerCell=r.first)}},inputs:{name:[0,"cdkColumnDef","name"],sticky:[2,"sticky","sticky",ge],stickyEnd:[2,"stickyEnd","stickyEnd",ge]},features:[ut([{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}])]})}return t})(),C7=class{constructor(e,A){A.nativeElement.classList.add(...e._columnCssClassName)}},ucA=(()=>{class t extends C7{constructor(){super(f(JQ),f(se))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["cdk-header-cell"],["th","cdk-header-cell",""]],hostAttrs:["role","columnheader",1,"cdk-header-cell"],features:[lt]})}return t})();var hcA=(()=>{class t extends C7{constructor(){let A=f(JQ),i=f(se);super(A,i);let n=A._table?._getCellRole();n&&i.nativeElement.setAttribute("role",n)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["cdk-cell"],["td","cdk-cell",""]],hostAttrs:[1,"cdk-cell"],features:[lt]})}return t})(),d7=class{tasks=[];endTasks=[]},B7=new eA("_COALESCED_STYLE_SCHEDULER"),FK=(()=>{class t{_currentSchedule=null;_ngZone=f(ye);constructor(){}schedule(A){this._createScheduleIfNeeded(),this._currentSchedule.tasks.push(A)}scheduleEnd(A){this._createScheduleIfNeeded(),this._currentSchedule.endTasks.push(A)}_createScheduleIfNeeded(){this._currentSchedule||(this._currentSchedule=new d7,this._ngZone.runOutsideAngular(()=>queueMicrotask(()=>{for(;this._currentSchedule.tasks.length||this._currentSchedule.endTasks.length;){let A=this._currentSchedule;this._currentSchedule=new d7;for(let i of A.tasks)i();for(let i of A.endTasks)i()}this._currentSchedule=null})))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();var _K=(()=>{class t{template=f(mn);_differs=f(Ql);columns;_columnsDiffer;constructor(){}ngOnChanges(A){if(!this._columnsDiffer){let i=A.columns&&A.columns.currentValue||[];this._columnsDiffer=this._differs.find(i).create(),this._columnsDiffer.diff(i)}}getColumnsDiff(){return this._columnsDiffer.diff(this.columns)}extractCellTemplate(A){return this instanceof Df?A.headerCell.template:this instanceof GK?A.footerCell.template:A.cell.template}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,features:[Xt]})}return t})(),Df=(()=>{class t extends _K{_table=f(Zg,{optional:!0});_hasStickyChanged=!1;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;constructor(){super(f(mn),f(Ql))}ngOnChanges(A){super.ngOnChanges(A)}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkHeaderRowDef",""]],inputs:{columns:[0,"cdkHeaderRowDef","columns"],sticky:[2,"cdkHeaderRowDefSticky","sticky",ge]},features:[lt,Xt]})}return t})(),GK=(()=>{class t extends _K{_table=f(Zg,{optional:!0});_hasStickyChanged=!1;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;constructor(){super(f(mn),f(Ql))}ngOnChanges(A){super.ngOnChanges(A)}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkFooterRowDef",""]],inputs:{columns:[0,"cdkFooterRowDef","columns"],sticky:[2,"cdkFooterRowDefSticky","sticky",ge]},features:[lt,Xt]})}return t})(),h7=(()=>{class t extends _K{_table=f(Zg,{optional:!0});when;constructor(){super(f(mn),f(Ql))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkRowDef",""]],inputs:{columns:[0,"cdkRowDefColumns","columns"],when:[0,"cdkRowDefWhen","when"]},features:[lt]})}return t})(),sd=(()=>{class t{_viewContainer=f(Sn);cells;context;static mostRecentCellOutlet=null;constructor(){t.mostRecentCellOutlet=this}ngOnDestroy(){t.mostRecentCellOutlet===this&&(t.mostRecentCellOutlet=null)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkCellOutlet",""]]})}return t})(),KK=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["cdk-header-row"],["tr","cdk-header-row",""]],hostAttrs:["role","row",1,"cdk-header-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&rr(0,0)},dependencies:[sd],encapsulation:2})}return t})();var UK=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["cdk-row"],["tr","cdk-row",""]],hostAttrs:["role","row",1,"cdk-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&rr(0,0)},dependencies:[sd],encapsulation:2})}return t})(),fcA=(()=>{class t{templateRef=f(mn);_contentClassName="cdk-no-data-row";constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["ng-template","cdkNoDataRow",""]]})}return t})(),BcA=["top","bottom","left","right"],NK=class{_isNativeHtmlTable;_stickCellCss;direction;_coalescedStyleScheduler;_isBrowser;_needsPositionStickyOnElement;_positionListener;_tableInjector;_elemSizeCache=new WeakMap;_resizeObserver=globalThis?.ResizeObserver?new globalThis.ResizeObserver(e=>this._updateCachedSizes(e)):null;_updatedStickyColumnsParamsToReplay=[];_stickyColumnsReplayTimeout=null;_cachedCellWidths=[];_borderCellCss;_destroyed=!1;constructor(e,A,i,n,o=!0,r=!0,s,a){this._isNativeHtmlTable=e,this._stickCellCss=A,this.direction=i,this._coalescedStyleScheduler=n,this._isBrowser=o,this._needsPositionStickyOnElement=r,this._positionListener=s,this._tableInjector=a,this._borderCellCss={top:`${A}-border-elem-top`,bottom:`${A}-border-elem-bottom`,left:`${A}-border-elem-left`,right:`${A}-border-elem-right`}}clearStickyPositioning(e,A){(A.includes("left")||A.includes("right"))&&this._removeFromStickyColumnReplayQueue(e);let i=[];for(let n of e)n.nodeType===n.ELEMENT_NODE&&i.push(n,...Array.from(n.children));this._afterNextRender({write:()=>{for(let n of i)this._removeStickyStyle(n,A)}})}updateStickyColumns(e,A,i,n=!0,o=!0){if(!e.length||!this._isBrowser||!(A.some(u=>u)||i.some(u=>u))){this._positionListener?.stickyColumnsUpdated({sizes:[]}),this._positionListener?.stickyEndColumnsUpdated({sizes:[]});return}let r=e[0],s=r.children.length,a=this.direction==="rtl",c=a?"right":"left",g=a?"left":"right",I=A.lastIndexOf(!0),C=i.indexOf(!0),d,B,E;o&&this._updateStickyColumnReplayQueue({rows:[...e],stickyStartStates:[...A],stickyEndStates:[...i]}),this._afterNextRender({earlyRead:()=>{d=this._getCellWidths(r,n),B=this._getStickyStartColumnPositions(d,A),E=this._getStickyEndColumnPositions(d,i)},write:()=>{for(let u of e)for(let h=0;h!!u)&&(this._positionListener.stickyColumnsUpdated({sizes:I===-1?[]:d.slice(0,I+1).map((u,h)=>A[h]?u:null)}),this._positionListener.stickyEndColumnsUpdated({sizes:C===-1?[]:d.slice(C).map((u,h)=>i[h+C]?u:null).reverse()}))}})}stickRows(e,A,i){if(!this._isBrowser)return;let n=i==="bottom"?e.slice().reverse():e,o=i==="bottom"?A.slice().reverse():A,r=[],s=[],a=[];this._afterNextRender({earlyRead:()=>{for(let c=0,g=0;c{let c=o.lastIndexOf(!0);for(let g=0;g{let i=e.querySelector("tfoot");i&&(A.some(n=>!n)?this._removeStickyStyle(i,["bottom"]):this._addStickyStyle(i,"bottom",0,!1))}})}destroy(){this._stickyColumnsReplayTimeout&&clearTimeout(this._stickyColumnsReplayTimeout),this._resizeObserver?.disconnect(),this._destroyed=!0}_removeStickyStyle(e,A){for(let n of A)e.style[n]="",e.classList.remove(this._borderCellCss[n]);BcA.some(n=>A.indexOf(n)===-1&&e.style[n])?e.style.zIndex=this._getCalculatedZIndex(e):(e.style.zIndex="",this._needsPositionStickyOnElement&&(e.style.position=""),e.classList.remove(this._stickCellCss))}_addStickyStyle(e,A,i,n){e.classList.add(this._stickCellCss),n&&e.classList.add(this._borderCellCss[A]),e.style[A]=`${i}px`,e.style.zIndex=this._getCalculatedZIndex(e),this._needsPositionStickyOnElement&&(e.style.cssText+="position: -webkit-sticky; position: sticky; ")}_getCalculatedZIndex(e){let A={top:100,bottom:10,left:1,right:1},i=0;for(let n of BcA)e.style[n]&&(i+=A[n]);return i?`${i}`:""}_getCellWidths(e,A=!0){if(!A&&this._cachedCellWidths.length)return this._cachedCellWidths;let i=[],n=e.children;for(let o=0;o0;o--)A[o]&&(i[o]=n,n+=e[o]);return i}_retrieveElementSize(e){let A=this._elemSizeCache.get(e);if(A)return A;let i=e.getBoundingClientRect(),n={width:i.width,height:i.height};return this._resizeObserver&&(this._elemSizeCache.set(e,n),this._resizeObserver.observe(e,{box:"border-box"})),n}_updateStickyColumnReplayQueue(e){this._removeFromStickyColumnReplayQueue(e.rows),this._stickyColumnsReplayTimeout||this._updatedStickyColumnsParamsToReplay.push(e)}_removeFromStickyColumnReplayQueue(e){let A=new Set(e);for(let i of this._updatedStickyColumnsParamsToReplay)i.rows=i.rows.filter(n=>!A.has(n));this._updatedStickyColumnsParamsToReplay=this._updatedStickyColumnsParamsToReplay.filter(i=>!!i.rows.length)}_updateCachedSizes(e){let A=!1;for(let i of e){let n=i.borderBoxSize?.length?{width:i.borderBoxSize[0].inlineSize,height:i.borderBoxSize[0].blockSize}:{width:i.contentRect.width,height:i.contentRect.height};n.width!==this._elemSizeCache.get(i.target)?.width&&IHA(i.target)&&(A=!0),this._elemSizeCache.set(i.target,n)}A&&this._updatedStickyColumnsParamsToReplay.length&&(this._stickyColumnsReplayTimeout&&clearTimeout(this._stickyColumnsReplayTimeout),this._stickyColumnsReplayTimeout=setTimeout(()=>{if(!this._destroyed){for(let i of this._updatedStickyColumnsParamsToReplay)this.updateStickyColumns(i.rows,i.stickyStartStates,i.stickyEndStates,!0,!1);this._updatedStickyColumnsParamsToReplay=[],this._stickyColumnsReplayTimeout=null}},0))}_afterNextRender(e){this._tableInjector?Ir(e,{injector:this._tableInjector}):this._coalescedStyleScheduler.schedule(()=>{e.earlyRead?.(),e.write()})}};function IHA(t){return["cdk-cell","cdk-header-cell","cdk-footer-cell"].some(e=>t.classList.contains(e))}var E7=new eA("CDK_SPL");var JK=(()=>{class t{viewContainer=f(Sn);elementRef=f(se);constructor(){let A=f(Zg);A._rowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","rowOutlet",""]]})}return t})(),YK=(()=>{class t{viewContainer=f(Sn);elementRef=f(se);constructor(){let A=f(Zg);A._headerRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","headerRowOutlet",""]]})}return t})(),TK=(()=>{class t{viewContainer=f(Sn);elementRef=f(se);constructor(){let A=f(Zg);A._footerRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","footerRowOutlet",""]]})}return t})(),HK=(()=>{class t{viewContainer=f(Sn);elementRef=f(se);constructor(){let A=f(Zg);A._noDataRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","noDataRowOutlet",""]]})}return t})();var OK=(()=>{class t{_differs=f(Ql);_changeDetectorRef=f(Et);_elementRef=f(se);_dir=f(po,{optional:!0});_platform=f(ni);_viewRepeater=f(Hh);_coalescedStyleScheduler=f(B7);_viewportRuler=f(Nc);_stickyPositioningListener=f(E7,{optional:!0,skipSelf:!0});_document=f(at);_data;_onDestroy=new qA;_renderRows;_renderChangeSubscription;_columnDefsByName=new Map;_rowDefs;_headerRowDefs;_footerRowDefs;_dataDiffer;_defaultRowDef;_customColumnDefs=new Set;_customRowDefs=new Set;_customHeaderRowDefs=new Set;_customFooterRowDefs=new Set;_customNoDataRow;_headerRowDefChanged=!0;_footerRowDefChanged=!0;_stickyColumnStylesNeedReset=!0;_forceRecalculateCellWidths=!0;_cachedRenderRowsMap=new Map;_isNativeHtmlTable;_stickyStyler;stickyCssClass="cdk-table-sticky";needsPositionStickyOnElement=!0;_isServer;_isShowingNoDataRow=!1;_hasAllOutlets=!1;_hasInitialized=!1;_getCellRole(){if(this._cellRoleInternal===void 0){let A=this._elementRef.nativeElement.getAttribute("role");return A==="grid"||A==="treegrid"?"gridcell":"cell"}return this._cellRoleInternal}_cellRoleInternal=void 0;get trackBy(){return this._trackByFn}set trackBy(A){this._trackByFn=A}_trackByFn;get dataSource(){return this._dataSource}set dataSource(A){this._dataSource!==A&&this._switchDataSource(A)}_dataSource;get multiTemplateDataRows(){return this._multiTemplateDataRows}set multiTemplateDataRows(A){this._multiTemplateDataRows=A,this._rowOutlet&&this._rowOutlet.viewContainer.length&&(this._forceRenderDataRows(),this.updateStickyColumnStyles())}_multiTemplateDataRows=!1;get fixedLayout(){return this._fixedLayout}set fixedLayout(A){this._fixedLayout=A,this._forceRecalculateCellWidths=!0,this._stickyColumnStylesNeedReset=!0}_fixedLayout=!1;contentChanged=new YA;viewChange=new Fi({start:0,end:Number.MAX_VALUE});_rowOutlet;_headerRowOutlet;_footerRowOutlet;_noDataRowOutlet;_contentColumnDefs;_contentRowDefs;_contentHeaderRowDefs;_contentFooterRowDefs;_noDataRow;_injector=f(Zt);constructor(){f(new Wr("role"),{optional:!0})||this._elementRef.nativeElement.setAttribute("role","table"),this._isServer=!this._platform.isBrowser,this._isNativeHtmlTable=this._elementRef.nativeElement.nodeName==="TABLE"}ngOnInit(){this._setupStickyStyler(),this._dataDiffer=this._differs.find([]).create((A,i)=>this.trackBy?this.trackBy(i.dataIndex,i.data):i),this._viewportRuler.change().pipe(kt(this._onDestroy)).subscribe(()=>{this._forceRecalculateCellWidths=!0})}ngAfterContentInit(){this._hasInitialized=!0}ngAfterContentChecked(){this._canRender()&&this._render()}ngOnDestroy(){this._stickyStyler?.destroy(),[this._rowOutlet?.viewContainer,this._headerRowOutlet?.viewContainer,this._footerRowOutlet?.viewContainer,this._cachedRenderRowsMap,this._customColumnDefs,this._customRowDefs,this._customHeaderRowDefs,this._customFooterRowDefs,this._columnDefsByName].forEach(A=>{A?.clear()}),this._headerRowDefs=[],this._footerRowDefs=[],this._defaultRowDef=null,this._onDestroy.next(),this._onDestroy.complete(),M8(this.dataSource)&&this.dataSource.disconnect(this)}renderRows(){this._renderRows=this._getAllRenderRows();let A=this._dataDiffer.diff(this._renderRows);if(!A){this._updateNoDataRow(),this.contentChanged.next();return}let i=this._rowOutlet.viewContainer;this._viewRepeater.applyChanges(A,i,(n,o,r)=>this._getEmbeddedViewArgs(n.item,r),n=>n.item.data,n=>{n.operation===GB.INSERTED&&n.context&&this._renderCellTemplateForItem(n.record.item.rowDef,n.context)}),this._updateRowIndexContext(),A.forEachIdentityChange(n=>{let o=i.get(n.currentIndex);o.context.$implicit=n.item.data}),this._updateNoDataRow(),this.contentChanged.next(),this.updateStickyColumnStyles()}addColumnDef(A){this._customColumnDefs.add(A)}removeColumnDef(A){this._customColumnDefs.delete(A)}addRowDef(A){this._customRowDefs.add(A)}removeRowDef(A){this._customRowDefs.delete(A)}addHeaderRowDef(A){this._customHeaderRowDefs.add(A),this._headerRowDefChanged=!0}removeHeaderRowDef(A){this._customHeaderRowDefs.delete(A),this._headerRowDefChanged=!0}addFooterRowDef(A){this._customFooterRowDefs.add(A),this._footerRowDefChanged=!0}removeFooterRowDef(A){this._customFooterRowDefs.delete(A),this._footerRowDefChanged=!0}setNoDataRow(A){this._customNoDataRow=A}updateStickyHeaderRowStyles(){let A=this._getRenderedRows(this._headerRowOutlet);if(this._isNativeHtmlTable){let n=EcA(this._headerRowOutlet,"thead");n&&(n.style.display=A.length?"":"none")}let i=this._headerRowDefs.map(n=>n.sticky);this._stickyStyler.clearStickyPositioning(A,["top"]),this._stickyStyler.stickRows(A,i,"top"),this._headerRowDefs.forEach(n=>n.resetStickyChanged())}updateStickyFooterRowStyles(){let A=this._getRenderedRows(this._footerRowOutlet);if(this._isNativeHtmlTable){let n=EcA(this._footerRowOutlet,"tfoot");n&&(n.style.display=A.length?"":"none")}let i=this._footerRowDefs.map(n=>n.sticky);this._stickyStyler.clearStickyPositioning(A,["bottom"]),this._stickyStyler.stickRows(A,i,"bottom"),this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement,i),this._footerRowDefs.forEach(n=>n.resetStickyChanged())}updateStickyColumnStyles(){let A=this._getRenderedRows(this._headerRowOutlet),i=this._getRenderedRows(this._rowOutlet),n=this._getRenderedRows(this._footerRowOutlet);(this._isNativeHtmlTable&&!this._fixedLayout||this._stickyColumnStylesNeedReset)&&(this._stickyStyler.clearStickyPositioning([...A,...i,...n],["left","right"]),this._stickyColumnStylesNeedReset=!1),A.forEach((o,r)=>{this._addStickyColumnStyles([o],this._headerRowDefs[r])}),this._rowDefs.forEach(o=>{let r=[];for(let s=0;s{this._addStickyColumnStyles([o],this._footerRowDefs[r])}),Array.from(this._columnDefsByName.values()).forEach(o=>o.resetStickyChanged())}_outletAssigned(){!this._hasAllOutlets&&this._rowOutlet&&this._headerRowOutlet&&this._footerRowOutlet&&this._noDataRowOutlet&&(this._hasAllOutlets=!0,this._canRender()&&this._render())}_canRender(){return this._hasAllOutlets&&this._hasInitialized}_render(){this._cacheRowDefs(),this._cacheColumnDefs(),!this._headerRowDefs.length&&!this._footerRowDefs.length&&this._rowDefs.length;let i=this._renderUpdatedColumns()||this._headerRowDefChanged||this._footerRowDefChanged;this._stickyColumnStylesNeedReset=this._stickyColumnStylesNeedReset||i,this._forceRecalculateCellWidths=i,this._headerRowDefChanged&&(this._forceRenderHeaderRows(),this._headerRowDefChanged=!1),this._footerRowDefChanged&&(this._forceRenderFooterRows(),this._footerRowDefChanged=!1),this.dataSource&&this._rowDefs.length>0&&!this._renderChangeSubscription?this._observeRenderChanges():this._stickyColumnStylesNeedReset&&this.updateStickyColumnStyles(),this._checkStickyStates()}_getAllRenderRows(){let A=[],i=this._cachedRenderRowsMap;this._cachedRenderRowsMap=new Map;for(let n=0;n{let s=n&&n.has(r)?n.get(r):[];if(s.length){let a=s.shift();return a.dataIndex=i,a}else return{data:A,rowDef:r,dataIndex:i}})}_cacheColumnDefs(){this._columnDefsByName.clear(),I7(this._getOwnDefs(this._contentColumnDefs),this._customColumnDefs).forEach(i=>{this._columnDefsByName.has(i.name),this._columnDefsByName.set(i.name,i)})}_cacheRowDefs(){this._headerRowDefs=I7(this._getOwnDefs(this._contentHeaderRowDefs),this._customHeaderRowDefs),this._footerRowDefs=I7(this._getOwnDefs(this._contentFooterRowDefs),this._customFooterRowDefs),this._rowDefs=I7(this._getOwnDefs(this._contentRowDefs),this._customRowDefs);let A=this._rowDefs.filter(i=>!i.when);!this.multiTemplateDataRows&&A.length>1,this._defaultRowDef=A[0]}_renderUpdatedColumns(){let A=(r,s)=>{let a=!!s.getColumnsDiff();return r||a},i=this._rowDefs.reduce(A,!1);i&&this._forceRenderDataRows();let n=this._headerRowDefs.reduce(A,!1);n&&this._forceRenderHeaderRows();let o=this._footerRowDefs.reduce(A,!1);return o&&this._forceRenderFooterRows(),i||n||o}_switchDataSource(A){this._data=[],M8(this.dataSource)&&this.dataSource.disconnect(this),this._renderChangeSubscription&&(this._renderChangeSubscription.unsubscribe(),this._renderChangeSubscription=null),A||(this._dataDiffer&&this._dataDiffer.diff([]),this._rowOutlet&&this._rowOutlet.viewContainer.clear()),this._dataSource=A}_observeRenderChanges(){if(!this.dataSource)return;let A;M8(this.dataSource)?A=this.dataSource.connect(this):B2(this.dataSource)?A=this.dataSource:Array.isArray(this.dataSource)&&(A=Ce(this.dataSource)),this._renderChangeSubscription=A.pipe(kt(this._onDestroy)).subscribe(i=>{this._data=i||[],this.renderRows()})}_forceRenderHeaderRows(){this._headerRowOutlet.viewContainer.length>0&&this._headerRowOutlet.viewContainer.clear(),this._headerRowDefs.forEach((A,i)=>this._renderRow(this._headerRowOutlet,A,i)),this.updateStickyHeaderRowStyles()}_forceRenderFooterRows(){this._footerRowOutlet.viewContainer.length>0&&this._footerRowOutlet.viewContainer.clear(),this._footerRowDefs.forEach((A,i)=>this._renderRow(this._footerRowOutlet,A,i)),this.updateStickyFooterRowStyles()}_addStickyColumnStyles(A,i){let n=Array.from(i?.columns||[]).map(s=>{let a=this._columnDefsByName.get(s);return a}),o=n.map(s=>s.sticky),r=n.map(s=>s.stickyEnd);this._stickyStyler.updateStickyColumns(A,o,r,!this._fixedLayout||this._forceRecalculateCellWidths)}_getRenderedRows(A){let i=[];for(let n=0;n!o.when||o.when(i,A));else{let o=this._rowDefs.find(r=>r.when&&r.when(i,A))||this._defaultRowDef;o&&n.push(o)}return n.length,n}_getEmbeddedViewArgs(A,i){let n=A.rowDef,o={$implicit:A.data};return{templateRef:n.template,context:o,index:i}}_renderRow(A,i,n,o={}){let r=A.viewContainer.createEmbeddedView(i.template,o,n);return this._renderCellTemplateForItem(i,o),r}_renderCellTemplateForItem(A,i){for(let n of this._getCellTemplates(A))sd.mostRecentCellOutlet&&sd.mostRecentCellOutlet._viewContainer.createEmbeddedView(n,i);this._changeDetectorRef.markForCheck()}_updateRowIndexContext(){let A=this._rowOutlet.viewContainer;for(let i=0,n=A.length;i{let n=this._columnDefsByName.get(i);return A.extractCellTemplate(n)})}_forceRenderDataRows(){this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear(),this.renderRows()}_checkStickyStates(){let A=(i,n)=>i||n.hasStickyChanged();this._headerRowDefs.reduce(A,!1)&&this.updateStickyHeaderRowStyles(),this._footerRowDefs.reduce(A,!1)&&this.updateStickyFooterRowStyles(),Array.from(this._columnDefsByName.values()).reduce(A,!1)&&(this._stickyColumnStylesNeedReset=!0,this.updateStickyColumnStyles())}_setupStickyStyler(){let A=this._dir?this._dir.value:"ltr";this._stickyStyler=new NK(this._isNativeHtmlTable,this.stickyCssClass,A,this._coalescedStyleScheduler,this._platform.isBrowser,this.needsPositionStickyOnElement,this._stickyPositioningListener,this._injector),(this._dir?this._dir.change:Ce()).pipe(kt(this._onDestroy)).subscribe(i=>{this._stickyStyler.direction=i,this.updateStickyColumnStyles()})}_getOwnDefs(A){return A.filter(i=>!i._table||i._table===this)}_updateNoDataRow(){let A=this._customNoDataRow||this._noDataRow;if(!A)return;let i=this._rowOutlet.viewContainer.length===0;if(i===this._isShowingNoDataRow)return;let n=this._noDataRowOutlet.viewContainer;if(i){let o=n.createEmbeddedView(A.templateRef),r=o.rootNodes[0];o.rootNodes.length===1&&r?.nodeType===this._document.ELEMENT_NODE&&(r.setAttribute("role","row"),r.classList.add(A._contentClassName))}else n.clear();this._isShowingNoDataRow=i,this._changeDetectorRef.markForCheck()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["cdk-table"],["table","cdk-table",""]],contentQueries:function(i,n,o){if(i&1&&(gi(o,fcA,5),gi(o,JQ,5),gi(o,h7,5),gi(o,Df,5),gi(o,GK,5)),i&2){let r;de(r=Be())&&(n._noDataRow=r.first),de(r=Be())&&(n._contentColumnDefs=r),de(r=Be())&&(n._contentRowDefs=r),de(r=Be())&&(n._contentHeaderRowDefs=r),de(r=Be())&&(n._contentFooterRowDefs=r)}},hostAttrs:[1,"cdk-table"],hostVars:2,hostBindings:function(i,n){i&2&&he("cdk-table-fixed-layout",n.fixedLayout)},inputs:{trackBy:"trackBy",dataSource:"dataSource",multiTemplateDataRows:[2,"multiTemplateDataRows","multiTemplateDataRows",ge],fixedLayout:[2,"fixedLayout","fixedLayout",ge]},outputs:{contentChanged:"contentChanged"},exportAs:["cdkTable"],features:[ut([{provide:Zg,useExisting:t},{provide:Hh,useClass:KB},{provide:B7,useClass:FK},{provide:E7,useValue:null}])],ngContentSelectors:aHA,decls:5,vars:2,consts:[["role","rowgroup"],["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,n){i&1&&($t(sHA),Ue(0),Ue(1,1),FA(2,cHA,1,0)(3,gHA,7,0)(4,lHA,4,0)),i&2&&(_(2),_A(n._isServer?2:-1),_(),_A(n._isNativeHtmlTable?3:4))},dependencies:[YK,JK,HK,TK],styles:[".cdk-table-fixed-layout{table-layout:fixed}"],encapsulation:2})}return t})();function I7(t,e){return t.concat(Array.from(e))}function EcA(t,e){let A=e.toUpperCase(),i=t.viewContainer.element.nativeElement;for(;i;){let n=i.nodeType===1?i.nodeName:null;if(n===A)return i;if(n==="TABLE")break;i=i.parentNode}return null}var CHA=[[["caption"]],[["colgroup"],["col"]],"*"],dHA=["caption","colgroup, col","*"];function BHA(t,e){t&1&&Ue(0,2)}function EHA(t,e){t&1&&(S(0,"thead",0),rr(1,1),N(),S(2,"tbody",2),rr(3,3)(4,4),N(),S(5,"tfoot",0),rr(6,5),N())}function QHA(t,e){t&1&&rr(0,1)(1,3)(2,4)(3,5)}var mcA=(()=>{class t extends OK{stickyCssClass="mat-mdc-table-sticky";needsPositionStickyOnElement=!1;static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-table"],["table","mat-table",""]],hostAttrs:[1,"mat-mdc-table","mdc-data-table__table"],hostVars:2,hostBindings:function(i,n){i&2&&he("mdc-table-fixed-layout",n.fixedLayout)},exportAs:["matTable"],features:[ut([{provide:OK,useExisting:t},{provide:Zg,useExisting:t},{provide:B7,useClass:FK},{provide:Hh,useClass:KB},{provide:E7,useValue:null}]),lt],ngContentSelectors:dHA,decls:5,vars:2,consts:[["role","rowgroup"],["headerRowOutlet",""],["role","rowgroup",1,"mdc-data-table__content"],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,n){i&1&&($t(CHA),Ue(0),Ue(1,1),FA(2,BHA,1,0)(3,EHA,7,0)(4,QHA,4,0)),i&2&&(_(2),_A(n._isServer?2:-1),_(),_A(n._isNativeHtmlTable?3:4))},dependencies:[YK,JK,HK,TK],styles:[".mat-mdc-table-sticky{position:sticky !important}mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{min-width:100%;border:0;border-spacing:0;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color, var(--mat-sys-surface))}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell{text-align:right}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-header-headline-font, var(--mat-sys-title-small-font, Roboto, sans-serif));line-height:var(--mat-table-header-headline-line-height, var(--mat-sys-title-small-line-height));font-size:var(--mat-table-header-headline-size, var(--mat-sys-title-small-size, 14px));font-weight:var(--mat-table-header-headline-weight, var(--mat-sys-title-small-weight, 500))}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-row-item-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-row-item-label-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-row-item-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-footer-supporting-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-footer-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-footer-supporting-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-footer-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mat-table-footer-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking, var(--mat-sys-title-small-tracking));font-weight:inherit;line-height:inherit;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mat-mdc-header-cell{text-align:right}.mdc-data-table__row:last-child>.mat-mdc-header-cell{border-bottom:none}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking));line-height:inherit}.mdc-data-table__row:last-child>.mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking))}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}"],encapsulation:2})}return t})(),pcA=(()=>{class t extends Q7{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matCellDef",""]],features:[ut([{provide:Q7,useExisting:t}]),lt]})}return t})(),DcA=(()=>{class t extends u7{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matHeaderCellDef",""]],features:[ut([{provide:u7,useExisting:t}]),lt]})}return t})();var wcA=(()=>{class t extends JQ{get name(){return this._name}set name(A){this._setNameInput(A)}_updateColumnCssClassName(){super._updateColumnCssClassName(),this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matColumnDef",""]],inputs:{name:[0,"matColumnDef","name"]},features:[ut([{provide:JQ,useExisting:t},{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}]),lt]})}return t})(),ycA=(()=>{class t extends ucA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["mat-header-cell"],["th","mat-header-cell",""]],hostAttrs:["role","columnheader",1,"mat-mdc-header-cell","mdc-data-table__header-cell"],features:[lt]})}return t})();var vcA=(()=>{class t extends hcA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["mat-cell"],["td","mat-cell",""]],hostAttrs:[1,"mat-mdc-cell","mdc-data-table__cell"],features:[lt]})}return t})();var McA=(()=>{class t extends Df{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matHeaderRowDef",""]],inputs:{columns:[0,"matHeaderRowDef","columns"],sticky:[2,"matHeaderRowDefSticky","sticky",ge]},features:[ut([{provide:Df,useExisting:t}]),lt]})}return t})();var bcA=(()=>{class t extends h7{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matRowDef",""]],inputs:{columns:[0,"matRowDefColumns","columns"],when:[0,"matRowDefWhen","when"]},features:[ut([{provide:h7,useExisting:t}]),lt]})}return t})(),kcA=(()=>{class t extends KK{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-header-row"],["tr","mat-header-row",""]],hostAttrs:["role","row",1,"mat-mdc-header-row","mdc-data-table__header-row"],exportAs:["matHeaderRow"],features:[ut([{provide:KK,useExisting:t}]),lt],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&rr(0,0)},dependencies:[sd],encapsulation:2})}return t})();var ScA=(()=>{class t extends UK{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-row"],["tr","mat-row",""]],hostAttrs:["role","row",1,"mat-mdc-row","mdc-data-table__row"],exportAs:["matRow"],features:[ut([{provide:UK,useExisting:t}]),lt],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&rr(0,0)},dependencies:[sd],encapsulation:2})}return t})();var uHA=9007199254740991,wf=class extends v8{_data;_renderData=new Fi([]);_filter=new Fi("");_internalPageChanges=new qA;_renderChangesSubscription=null;filteredData;get data(){return this._data.value}set data(e){e=Array.isArray(e)?e:[],this._data.next(e),this._renderChangesSubscription||this._filterData(e)}get filter(){return this._filter.value}set filter(e){this._filter.next(e),this._renderChangesSubscription||this._filterData(this.data)}get sort(){return this._sort}set sort(e){this._sort=e,this._updateChangeSubscription()}_sort;get paginator(){return this._paginator}set paginator(e){this._paginator=e,this._updateChangeSubscription()}_paginator;sortingDataAccessor=(e,A)=>{let i=e[A];if(Ek(i)){let n=Number(i);return n{let i=A.active,n=A.direction;return!i||n==""?e:e.sort((o,r)=>{let s=this.sortingDataAccessor(o,i),a=this.sortingDataAccessor(r,i),c=typeof s,g=typeof a;c!==g&&(c==="number"&&(s+=""),g==="number"&&(a+=""));let I=0;return s!=null&&a!=null?s>a?I=1:s{let i=A.trim().toLowerCase();return Object.values(e).some(n=>`${n}`.toLowerCase().includes(i))};constructor(e=[]){super(),this._data=new Fi(e),this._updateChangeSubscription()}_updateChangeSubscription(){let e=this._sort?Hn(this._sort.sortChange,this._sort.initialized):Ce(null),A=this._paginator?Hn(this._paginator.page,this._internalPageChanges,this._paginator.initialized):Ce(null),i=this._data,n=ga([i,this._filter]).pipe(je(([s])=>this._filterData(s))),o=ga([n,e]).pipe(je(([s])=>this._orderData(s))),r=ga([o,A]).pipe(je(([s])=>this._pageData(s)));this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=r.subscribe(s=>this._renderData.next(s))}_filterData(e){return this.filteredData=this.filter==null||this.filter===""?e:e.filter(A=>this.filterPredicate(A,this.filter)),this.paginator&&this._updatePaginator(this.filteredData.length),this.filteredData}_orderData(e){return this.sort?this.sortData(e.slice(),this.sort):e}_pageData(e){if(!this.paginator)return e;let A=this.paginator.pageIndex*this.paginator.pageSize;return e.slice(A,A+this.paginator.pageSize)}_updatePaginator(e){Promise.resolve().then(()=>{let A=this.paginator;if(A&&(A.length=e,A.pageIndex>0)){let i=Math.ceil(A.length/A.pageSize)-1||0,n=Math.min(A.pageIndex,i);n!==A.pageIndex&&(A.pageIndex=n,this._internalPageChanges.next())}})}connect(){return this._renderChangesSubscription||this._updateChangeSubscription(),this._renderData}disconnect(){this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=null}};var RcA=[{metricName:"tool_trajectory_avg_score",threshold:1},{metricName:"response_match_score",threshold:.7}];var f7="0123456789abcdef",m7=class t{constructor(e){this.bytes=e}static ofInner(e){if(e.length!==16)throw new TypeError("not 128-bit length");return new t(e)}static fromFieldsV7(e,A,i,n){if(!Number.isInteger(e)||!Number.isInteger(A)||!Number.isInteger(i)||!Number.isInteger(n)||e<0||A<0||i<0||n<0||e>0xffffffffffff||A>4095||i>1073741823||n>4294967295)throw new RangeError("invalid field value");let o=new Uint8Array(16);return o[0]=e/2**40,o[1]=e/2**32,o[2]=e/2**24,o[3]=e/2**16,o[4]=e/2**8,o[5]=e,o[6]=112|A>>>8,o[7]=A,o[8]=128|i>>>24,o[9]=i>>>16,o[10]=i>>>8,o[11]=i,o[12]=n>>>24,o[13]=n>>>16,o[14]=n>>>8,o[15]=n,new t(o)}static parse(e){var A,i,n,o;let r;switch(e.length){case 32:r=(A=/^[0-9a-f]{32}$/i.exec(e))===null||A===void 0?void 0:A[0];break;case 36:r=(i=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(e))===null||i===void 0?void 0:i.slice(1,6).join("");break;case 38:r=(n=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(e))===null||n===void 0?void 0:n.slice(1,6).join("");break;case 45:r=(o=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(e))===null||o===void 0?void 0:o.slice(1,6).join("");break;default:break}if(r){let s=new Uint8Array(16);for(let a=0;a<16;a+=4){let c=parseInt(r.substring(2*a,2*a+8),16);s[a+0]=c>>>24,s[a+1]=c>>>16,s[a+2]=c>>>8,s[a+3]=c}return new t(s)}else throw new SyntaxError("could not parse UUID string")}toString(){let e="";for(let A=0;A>>4),e+=f7.charAt(this.bytes[A]&15),(A===3||A===5||A===7||A===9)&&(e+="-");return e}toHex(){let e="";for(let A=0;A>>4),e+=f7.charAt(this.bytes[A]&15);return e}toJSON(){return this.toString()}getVariant(){let e=this.bytes[8]>>>4;if(e<0)throw new Error("unreachable");if(e<=7)return this.bytes.every(A=>A===0)?"NIL":"VAR_0";if(e<=11)return"VAR_10";if(e<=13)return"VAR_110";if(e<=15)return this.bytes.every(A=>A===255)?"MAX":"VAR_RESERVED";throw new Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new t(this.bytes.slice(0))}equals(e){return this.compareTo(e)===0}compareTo(e){for(let A=0;A<16;A++){let i=this.bytes[A]-e.bytes[A];if(i!==0)return Math.sign(i)}return 0}},zK=class{constructor(e){this.timestamp=0,this.counter=0,this.random=e??hHA()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(e,A){let i=this.generateOrAbortCore(e,A);return i===void 0&&(this.timestamp=0,i=this.generateOrAbortCore(e,A)),i}generateOrAbortCore(e,A){if(!Number.isInteger(e)||e<1||e>0xffffffffffff)throw new RangeError("`unixTsMs` must be a 48-bit positive integer");if(A<0||A>0xffffffffffff)throw new RangeError("`rollbackAllowance` out of reasonable range");if(e>this.timestamp)this.timestamp=e,this.resetCounter();else if(e+A>=this.timestamp)this.counter++,this.counter>4398046511103&&(this.timestamp++,this.resetCounter());else return;return m7.fromFieldsV7(this.timestamp,Math.trunc(this.counter/2**30),this.counter&2**30-1,this.random.nextUint32())}resetCounter(){this.counter=this.random.nextUint32()*1024+(this.random.nextUint32()&1023)}generateV4(){let e=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return e[6]=64|e[6]>>>4,e[8]=128|e[8]>>>2,m7.ofInner(e)}},hHA=()=>{if(typeof crypto<"u"&&typeof crypto.getRandomValues<"u")return new PK;if(typeof UUIDV7_DENY_WEAK_RNG<"u"&&UUIDV7_DENY_WEAK_RNG)throw new Error("no cryptographically strong RNG available");return{nextUint32:()=>Math.trunc(Math.random()*65536)*65536+Math.trunc(Math.random()*65536)}},PK=class{constructor(){this.buffer=new Uint32Array(8),this.cursor=65535}nextUint32(){return this.cursor>=this.buffer.length&&(crypto.getRandomValues(this.buffer),this.cursor=0),this.buffer[this.cursor++]}},LcA;var p7=()=>fHA().toString(),fHA=()=>(LcA||(LcA=new zK)).generateV4();var D7=class t{evalService=f(Rl);data=f(Cs);dialogRef=f(fr);newCaseId="case"+p7().slice(0,6);constructor(){}createNewEvalCase(){!this.newCaseId||this.newCaseId==""?alert("Cannot create eval set with empty id!"):this.evalService.addCurrentSession(this.data.appName,this.data.evalSetId,this.newCaseId,this.data.sessionId,this.data.userId).subscribe(e=>{this.dialogRef.close(!0)})}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-add-eval-session-dialog"]],decls:11,vars:1,consts:[["mat-dialog-title",""],[2,"padding-left","20px","padding-right","24px"],["matInput","",3,"ngModelChange","keydown.enter","ngModel"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"h2",0),AA(1,"Add Current Session To Eval Set"),N(),S(2,"mat-dialog-content"),AA(3,` Please enter the eval case name +`),N(),S(4,"mat-form-field",1)(5,"input",2),Xa("ngModelChange",function(o){return Wa(i.newCaseId,o)||(i.newCaseId=o),o}),mA("keydown.enter",function(){return i.createNewEvalCase()}),N()(),S(6,"mat-dialog-actions",3)(7,"button",4),AA(8,"Cancel"),N(),S(9,"button",5),mA("click",function(){return i.createNewEvalCase()}),AA(10,"Create"),N()()),A&2&&(_(5),Za("ngModel",i.newCaseId))},dependencies:[Ls,ya,fl,J2,Mr,kc,Ss,tc,va,dr,bl],encapsulation:2})};var w7=class t{evalService=f(Rl);data=f(Cs);dialogRef=f(fr);newSetId="evalset"+p7().slice(0,6);constructor(){}createNewEvalSet(){!this.newSetId||this.newSetId==""?alert("Cannot create eval set with empty id!"):this.evalService.createNewEvalSet(this.data.appName,this.newSetId).subscribe(e=>{this.dialogRef.close(!0)})}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-new-eval-set-dialog-component"]],decls:11,vars:1,consts:[["mat-dialog-title",""],[2,"padding-left","20px","padding-right","24px"],["matInput","",3,"ngModelChange","keydown.enter","ngModel"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"h2",0),AA(1,"Create New Eval Set"),N(),S(2,"mat-dialog-content"),AA(3,` Please enter the eval set name +`),N(),S(4,"mat-form-field",1)(5,"input",2),Xa("ngModelChange",function(o){return Wa(i.newSetId,o)||(i.newSetId=o),o}),mA("keydown.enter",function(){return i.createNewEvalSet()}),N()(),S(6,"mat-dialog-actions",3)(7,"button",4),AA(8,"Cancel"),N(),S(9,"button",5),mA("click",function(){return i.createNewEvalSet()}),AA(10,"Create"),N()()),A&2&&(_(5),Za("ngModel",i.newSetId))},dependencies:[Ls,ya,fl,J2,Mr,kc,Ss,tc,va,dr,bl],encapsulation:2})};var mHA=["knob"],pHA=["valueIndicatorContainer"];function DHA(t,e){if(t&1&&(S(0,"div",2,1)(2,"div",5)(3,"span",6),AA(4),N()()()),t&2){let A=Y();_(4),tt(A.valueIndicatorText)}}var wHA=["trackActive"],yHA=["*"];function vHA(t,e){if(t&1&&TA(0,"div"),t&2){let A=e.$implicit,i=e.$index,n=Y(3);Ro(A===0?"mdc-slider__tick-mark--active":"mdc-slider__tick-mark--inactive"),mo("transform",n._calcTickMarkTransform(i))}}function MHA(t,e){if(t&1&&dn(0,vHA,1,4,"div",8,AB),t&2){let A=Y(2);Bn(A._tickMarks)}}function bHA(t,e){if(t&1&&(S(0,"div",6,1),FA(2,MHA,2,0),N()),t&2){let A=Y();_(2),_A(A._cachedWidth?2:-1)}}function kHA(t,e){if(t&1&&TA(0,"mat-slider-visual-thumb",7),t&2){let A=Y();yA("discrete",A.discrete)("thumbPosition",1)("valueIndicatorText",A.startValueIndicatorText)}}var Ii=function(t){return t[t.START=1]="START",t[t.END=2]="END",t}(Ii||{}),YQ=function(t){return t[t.ACTIVE=0]="ACTIVE",t[t.INACTIVE=1]="INACTIVE",t}(YQ||{}),jK=new eA("_MatSlider"),xcA=new eA("_MatSliderThumb"),SHA=new eA("_MatSliderRangeThumb"),NcA=new eA("_MatSliderVisualThumb");var RHA=(()=>{class t{_cdr=f(Et);_ngZone=f(ye);_slider=f(jK);_renderer=f(qi);_listenerCleanups;discrete;thumbPosition;valueIndicatorText;_ripple;_knob;_valueIndicatorContainer;_sliderInput;_sliderInputEl;_hoverRippleRef;_focusRippleRef;_activeRippleRef;_isHovered=!1;_isActive=!1;_isValueIndicatorVisible=!1;_hostElement=f(se).nativeElement;_platform=f(ni);constructor(){}ngAfterViewInit(){let A=this._slider._getInput(this.thumbPosition);A&&(this._ripple.radius=24,this._sliderInput=A,this._sliderInputEl=this._sliderInput._hostElement,this._ngZone.runOutsideAngular(()=>{let i=this._sliderInputEl,n=this._renderer;this._listenerCleanups=[n.listen(i,"pointermove",this._onPointerMove),n.listen(i,"pointerdown",this._onDragStart),n.listen(i,"pointerup",this._onDragEnd),n.listen(i,"pointerleave",this._onMouseLeave),n.listen(i,"focus",this._onFocus),n.listen(i,"blur",this._onBlur)]}))}ngOnDestroy(){this._listenerCleanups?.forEach(A=>A())}_onPointerMove=A=>{if(this._sliderInput._isFocused)return;let i=this._hostElement.getBoundingClientRect(),n=this._slider._isCursorOnSliderThumb(A,i);this._isHovered=n,n?this._showHoverRipple():this._hideRipple(this._hoverRippleRef)};_onMouseLeave=()=>{this._isHovered=!1,this._hideRipple(this._hoverRippleRef)};_onFocus=()=>{this._hideRipple(this._hoverRippleRef),this._showFocusRipple(),this._hostElement.classList.add("mdc-slider__thumb--focused")};_onBlur=()=>{this._isActive||this._hideRipple(this._focusRippleRef),this._isHovered&&this._showHoverRipple(),this._hostElement.classList.remove("mdc-slider__thumb--focused")};_onDragStart=A=>{A.button===0&&(this._isActive=!0,this._showActiveRipple())};_onDragEnd=()=>{this._isActive=!1,this._hideRipple(this._activeRippleRef),this._sliderInput._isFocused||this._hideRipple(this._focusRippleRef),this._platform.SAFARI&&this._showHoverRipple()};_showHoverRipple(){this._isShowingRipple(this._hoverRippleRef)||(this._hoverRippleRef=this._showRipple({enterDuration:0,exitDuration:0}),this._hoverRippleRef?.element.classList.add("mat-mdc-slider-hover-ripple"))}_showFocusRipple(){this._isShowingRipple(this._focusRippleRef)||(this._focusRippleRef=this._showRipple({enterDuration:0,exitDuration:0},!0),this._focusRippleRef?.element.classList.add("mat-mdc-slider-focus-ripple"))}_showActiveRipple(){this._isShowingRipple(this._activeRippleRef)||(this._activeRippleRef=this._showRipple({enterDuration:225,exitDuration:400}),this._activeRippleRef?.element.classList.add("mat-mdc-slider-active-ripple"))}_isShowingRipple(A){return A?.state===Ws.FADING_IN||A?.state===Ws.VISIBLE}_showRipple(A,i){if(!this._slider.disabled&&(this._showValueIndicator(),this._slider._isRange&&this._slider._getThumb(this.thumbPosition===Ii.START?Ii.END:Ii.START)._showValueIndicator(),!(this._slider._globalRippleOptions?.disabled&&!i)))return this._ripple.launch({animation:this._slider._noopAnimations?{enterDuration:0,exitDuration:0}:A,centered:!0,persistent:!0})}_hideRipple(A){if(A?.fadeOut(),this._isShowingAnyRipple())return;this._slider._isRange||this._hideValueIndicator();let i=this._getSibling();i._isShowingAnyRipple()||(this._hideValueIndicator(),i._hideValueIndicator())}_showValueIndicator(){this._hostElement.classList.add("mdc-slider__thumb--with-indicator")}_hideValueIndicator(){this._hostElement.classList.remove("mdc-slider__thumb--with-indicator")}_getSibling(){return this._slider._getThumb(this.thumbPosition===Ii.START?Ii.END:Ii.START)}_getValueIndicatorContainer(){return this._valueIndicatorContainer?.nativeElement}_getKnob(){return this._knob.nativeElement}_isShowingAnyRipple(){return this._isShowingRipple(this._hoverRippleRef)||this._isShowingRipple(this._focusRippleRef)||this._isShowingRipple(this._activeRippleRef)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-slider-visual-thumb"]],viewQuery:function(i,n){if(i&1&&(st(Xs,5),st(mHA,5),st(pHA,5)),i&2){let o;de(o=Be())&&(n._ripple=o.first),de(o=Be())&&(n._knob=o.first),de(o=Be())&&(n._valueIndicatorContainer=o.first)}},hostAttrs:[1,"mdc-slider__thumb","mat-mdc-slider-visual-thumb"],inputs:{discrete:"discrete",thumbPosition:"thumbPosition",valueIndicatorText:"valueIndicatorText"},features:[ut([{provide:NcA,useExisting:t}])],decls:4,vars:2,consts:[["knob",""],["valueIndicatorContainer",""],[1,"mdc-slider__value-indicator-container"],[1,"mdc-slider__thumb-knob"],["matRipple","",1,"mat-focus-indicator",3,"matRippleDisabled"],[1,"mdc-slider__value-indicator"],[1,"mdc-slider__value-indicator-text"]],template:function(i,n){i&1&&(FA(0,DHA,5,1,"div",2),TA(1,"div",3,0)(3,"div",4)),i&2&&(_A(n.discrete?0:-1),_(3),yA("matRippleDisabled",!0))},dependencies:[Xs],styles:[".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}"],encapsulation:2,changeDetection:0})}return t})(),FcA=(()=>{class t{_ngZone=f(ye);_cdr=f(Et);_elementRef=f(se);_dir=f(po,{optional:!0});_globalRippleOptions=f(ZI,{optional:!0});_trackActive;_thumbs;_input;_inputs;get disabled(){return this._disabled}set disabled(A){this._disabled=A;let i=this._getInput(Ii.END),n=this._getInput(Ii.START);i&&(i.disabled=this._disabled),n&&(n.disabled=this._disabled)}_disabled=!1;get discrete(){return this._discrete}set discrete(A){this._discrete=A,this._updateValueIndicatorUIs()}_discrete=!1;showTickMarks=!1;get min(){return this._min}set min(A){let i=isNaN(A)?this._min:A;this._min!==i&&this._updateMin(i)}_min=0;color;disableRipple=!1;_updateMin(A){let i=this._min;this._min=A,this._isRange?this._updateMinRange({old:i,new:A}):this._updateMinNonRange(A),this._onMinMaxOrStepChange()}_updateMinRange(A){let i=this._getInput(Ii.END),n=this._getInput(Ii.START),o=i.value,r=n.value;n.min=A.new,i.min=Math.max(A.new,n.value),n.max=Math.min(i.max,i.value),n._updateWidthInactive(),i._updateWidthInactive(),A.newA.old?this._onTranslateXChangeBySideEffect(n,i):this._onTranslateXChangeBySideEffect(i,n),o!==i.value&&this._onValueChange(i),r!==n.value&&this._onValueChange(n)}_updateMaxNonRange(A){let i=this._getInput(Ii.END);if(i){let n=i.value;i.max=A,i._updateThumbUIByValue(),this._updateTrackUI(i),n!==i.value&&this._onValueChange(i)}}get step(){return this._step}set step(A){let i=isNaN(A)?this._step:A;this._step!==i&&this._updateStep(i)}_step=1;_updateStep(A){this._step=A,this._isRange?this._updateStepRange():this._updateStepNonRange(),this._onMinMaxOrStepChange()}_updateStepRange(){let A=this._getInput(Ii.END),i=this._getInput(Ii.START),n=A.value,o=i.value,r=i.value;A.min=this._min,i.max=this._max,A.step=this._step,i.step=this._step,this._platform.SAFARI&&(A.value=A.value,i.value=i.value),A.min=Math.max(this._min,i.value),i.max=Math.min(this._max,A.value),i._updateWidthInactive(),A._updateWidthInactive(),A.value`${A}`;_tickMarks;_noopAnimations;_dirChangeSubscription;_resizeObserver;_cachedWidth;_cachedLeft;_rippleRadius=24;startValueIndicatorText="";endValueIndicatorText="";_endThumbTransform;_startThumbTransform;_isRange=!1;_isRtl=!1;_hasViewInitialized=!1;_tickMarkTrackWidth=0;_hasAnimation=!1;_resizeTimer=null;_platform=f(ni);constructor(){f(Pn).load(Yr);let A=f(_i,{optional:!0});this._noopAnimations=A==="NoopAnimations",this._dir&&(this._dirChangeSubscription=this._dir.change.subscribe(()=>this._onDirChange()),this._isRtl=this._dir.value==="rtl")}_knobRadius=8;_inputPadding;ngAfterViewInit(){this._platform.isBrowser&&this._updateDimensions();let A=this._getInput(Ii.END),i=this._getInput(Ii.START);this._isRange=!!A&&!!i,this._cdr.detectChanges();let n=this._getThumb(Ii.END);this._rippleRadius=n._ripple.radius,this._inputPadding=this._rippleRadius-this._knobRadius,this._isRange?this._initUIRange(A,i):this._initUINonRange(A),this._updateTrackUI(A),this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._observeHostResize(),this._cdr.detectChanges()}_initUINonRange(A){A.initProps(),A.initUI(),this._updateValueIndicatorUI(A),this._hasViewInitialized=!0,A._updateThumbUIByValue()}_initUIRange(A,i){A.initProps(),A.initUI(),i.initProps(),i.initUI(),A._updateMinMax(),i._updateMinMax(),A._updateStaticStyles(),i._updateStaticStyles(),this._updateValueIndicatorUIs(),this._hasViewInitialized=!0,A._updateThumbUIByValue(),i._updateThumbUIByValue()}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._resizeObserver?.disconnect(),this._resizeObserver=null}_onDirChange(){this._isRtl=this._dir?.value==="rtl",this._isRange?this._onDirChangeRange():this._onDirChangeNonRange(),this._updateTickMarkUI()}_onDirChangeRange(){let A=this._getInput(Ii.END),i=this._getInput(Ii.START);A._setIsLeftThumb(),i._setIsLeftThumb(),A.translateX=A._calcTranslateXByValue(),i.translateX=i._calcTranslateXByValue(),A._updateStaticStyles(),i._updateStaticStyles(),A._updateWidthInactive(),i._updateWidthInactive(),A._updateThumbUIByValue(),i._updateThumbUIByValue()}_onDirChangeNonRange(){this._getInput(Ii.END)._updateThumbUIByValue()}_observeHostResize(){typeof ResizeObserver>"u"||!ResizeObserver||this._ngZone.runOutsideAngular(()=>{this._resizeObserver=new ResizeObserver(()=>{this._isActive()||(this._resizeTimer&&clearTimeout(this._resizeTimer),this._onResize())}),this._resizeObserver.observe(this._elementRef.nativeElement)})}_isActive(){return this._getThumb(Ii.START)._isActive||this._getThumb(Ii.END)._isActive}_getValue(A=Ii.END){let i=this._getInput(A);return i?i.value:this.min}_skipUpdate(){return!!(this._getInput(Ii.START)?._skipUIUpdate||this._getInput(Ii.END)?._skipUIUpdate)}_updateDimensions(){this._cachedWidth=this._elementRef.nativeElement.offsetWidth,this._cachedLeft=this._elementRef.nativeElement.getBoundingClientRect().left}_setTrackActiveStyles(A){let i=this._trackActive.nativeElement.style;i.left=A.left,i.right=A.right,i.transformOrigin=A.transformOrigin,i.transform=A.transform}_calcTickMarkTransform(A){let i=A*(this._tickMarkTrackWidth/(this._tickMarks.length-1));return`translateX(${this._isRtl?this._cachedWidth-6-i:i}px`}_onTranslateXChange(A){this._hasViewInitialized&&(this._updateThumbUI(A),this._updateTrackUI(A),this._updateOverlappingThumbUI(A))}_onTranslateXChangeBySideEffect(A,i){this._hasViewInitialized&&(A._updateThumbUIByValue(),i._updateThumbUIByValue())}_onValueChange(A){this._hasViewInitialized&&(this._updateValueIndicatorUI(A),this._updateTickMarkUI(),this._cdr.detectChanges())}_onMinMaxOrStepChange(){this._hasViewInitialized&&(this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.markForCheck())}_onResize(){if(this._hasViewInitialized){if(this._updateDimensions(),this._isRange){let A=this._getInput(Ii.END),i=this._getInput(Ii.START);A._updateThumbUIByValue(),i._updateThumbUIByValue(),A._updateStaticStyles(),i._updateStaticStyles(),A._updateMinMax(),i._updateMinMax(),A._updateWidthInactive(),i._updateWidthInactive()}else{let A=this._getInput(Ii.END);A&&A._updateThumbUIByValue()}this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.detectChanges()}}_thumbsOverlap=!1;_areThumbsOverlapping(){let A=this._getInput(Ii.START),i=this._getInput(Ii.END);return!A||!i?!1:i.translateX-A.translateX<20}_updateOverlappingThumbClassNames(A){let i=A.getSibling(),n=this._getThumb(A.thumbPosition);this._getThumb(i.thumbPosition)._hostElement.classList.remove("mdc-slider__thumb--top"),n._hostElement.classList.toggle("mdc-slider__thumb--top",this._thumbsOverlap)}_updateOverlappingThumbUI(A){!this._isRange||this._skipUpdate()||this._thumbsOverlap!==this._areThumbsOverlapping()&&(this._thumbsOverlap=!this._thumbsOverlap,this._updateOverlappingThumbClassNames(A))}_updateThumbUI(A){if(this._skipUpdate())return;let i=this._getThumb(A.thumbPosition===Ii.END?Ii.END:Ii.START);i._hostElement.style.transform=`translateX(${A.translateX}px)`}_updateValueIndicatorUI(A){if(this._skipUpdate())return;let i=this.displayWith(A.value);if(this._hasViewInitialized?A._valuetext.set(i):A._hostElement.setAttribute("aria-valuetext",i),this.discrete){A.thumbPosition===Ii.START?this.startValueIndicatorText=i:this.endValueIndicatorText=i;let n=this._getThumb(A.thumbPosition);i.length<3?n._hostElement.classList.add("mdc-slider__thumb--short-value"):n._hostElement.classList.remove("mdc-slider__thumb--short-value")}}_updateValueIndicatorUIs(){let A=this._getInput(Ii.END),i=this._getInput(Ii.START);A&&this._updateValueIndicatorUI(A),i&&this._updateValueIndicatorUI(i)}_updateTickMarkTrackUI(){if(!this.showTickMarks||this._skipUpdate())return;let A=this._step&&this._step>0?this._step:1,n=(Math.floor(this.max/A)*A-this.min)/(this.max-this.min);this._tickMarkTrackWidth=(this._cachedWidth-6)*n}_updateTrackUI(A){this._skipUpdate()||(this._isRange?this._updateTrackUIRange(A):this._updateTrackUINonRange(A))}_updateTrackUIRange(A){let i=A.getSibling();if(!i||!this._cachedWidth)return;let n=Math.abs(i.translateX-A.translateX)/this._cachedWidth;A._isLeftThumb&&this._cachedWidth?this._setTrackActiveStyles({left:"auto",right:`${this._cachedWidth-i.translateX}px`,transformOrigin:"right",transform:`scaleX(${n})`}):this._setTrackActiveStyles({left:`${i.translateX}px`,right:"auto",transformOrigin:"left",transform:`scaleX(${n})`})}_updateTrackUINonRange(A){this._isRtl?this._setTrackActiveStyles({left:"auto",right:"0px",transformOrigin:"right",transform:`scaleX(${1-A.fillPercentage})`}):this._setTrackActiveStyles({left:"0px",right:"auto",transformOrigin:"left",transform:`scaleX(${A.fillPercentage})`})}_updateTickMarkUI(){if(!this.showTickMarks||this.step===void 0||this.min===void 0||this.max===void 0)return;let A=this.step>0?this.step:1;this._isRange?this._updateTickMarkUIRange(A):this._updateTickMarkUINonRange(A)}_updateTickMarkUINonRange(A){let i=this._getValue(),n=Math.max(Math.round((i-this.min)/A),0)+1,o=Math.max(Math.round((this.max-i)/A),0)-1;this._isRtl?n++:o++,this._tickMarks=Array(n).fill(YQ.ACTIVE).concat(Array(o).fill(YQ.INACTIVE))}_updateTickMarkUIRange(A){let i=this._getValue(),n=this._getValue(Ii.START),o=Math.max(Math.round((n-this.min)/A),0),r=Math.max(Math.round((i-n)/A)+1,0),s=Math.max(Math.round((this.max-i)/A),0);this._tickMarks=Array(o).fill(YQ.INACTIVE).concat(Array(r).fill(YQ.ACTIVE),Array(s).fill(YQ.INACTIVE))}_getInput(A){if(A===Ii.END&&this._input)return this._input;if(this._inputs?.length)return A===Ii.START?this._inputs.first:this._inputs.last}_getThumb(A){return A===Ii.END?this._thumbs?.last:this._thumbs?.first}_setTransition(A){this._hasAnimation=!this._platform.IOS&&A&&!this._noopAnimations,this._elementRef.nativeElement.classList.toggle("mat-mdc-slider-with-animation",this._hasAnimation)}_isCursorOnSliderThumb(A,i){let n=i.width/2,o=i.x+n,r=i.y+n,s=A.clientX-o,a=A.clientY-r;return Math.pow(s,2)+Math.pow(a,2)qK),multi:!0};var qK=(()=>{class t{_ngZone=f(ye);_elementRef=f(se);_cdr=f(Et);_slider=f(jK);_platform=f(ni);_listenerCleanups;get value(){return en(this._hostElement.value,0)}set value(A){A=isNaN(A)?0:A;let i=A+"";if(!this._hasSetInitialValue){this._initialValue=i;return}this._isActive||this._setValue(i)}_setValue(A){this._hostElement.value=A,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges(),this._slider._cdr.markForCheck()}valueChange=new YA;dragStart=new YA;dragEnd=new YA;get translateX(){return this._slider.min>=this._slider.max?(this._translateX=this._tickMarkOffset,this._translateX):(this._translateX===void 0&&(this._translateX=this._calcTranslateXByValue()),this._translateX)}set translateX(A){this._translateX=A}_translateX;thumbPosition=Ii.END;get min(){return en(this._hostElement.min,0)}set min(A){this._hostElement.min=A+"",this._cdr.detectChanges()}get max(){return en(this._hostElement.max,0)}set max(A){this._hostElement.max=A+"",this._cdr.detectChanges()}get step(){return en(this._hostElement.step,0)}set step(A){this._hostElement.step=A+"",this._cdr.detectChanges()}get disabled(){return ge(this._hostElement.disabled)}set disabled(A){this._hostElement.disabled=A,this._cdr.detectChanges(),this._slider.disabled!==this.disabled&&(this._slider.disabled=this.disabled)}get percentage(){return this._slider.min>=this._slider.max?this._slider._isRtl?1:0:(this.value-this._slider.min)/(this._slider.max-this._slider.min)}get fillPercentage(){return this._slider._cachedWidth?this._translateX===0?0:this.translateX/this._slider._cachedWidth:this._slider._isRtl?1:0}_hostElement=this._elementRef.nativeElement;_valuetext=Ao("");_knobRadius=8;_tickMarkOffset=3;_isActive=!1;_isFocused=!1;_setIsFocused(A){this._isFocused=A}_hasSetInitialValue=!1;_initialValue;_formControl;_destroyed=new qA;_skipUIUpdate=!1;_onChangeFn;_onTouchedFn=()=>{};_isControlInitialized=!1;constructor(){let A=f(qi);this._ngZone.runOutsideAngular(()=>{this._listenerCleanups=[A.listen(this._hostElement,"pointerdown",this._onPointerDown.bind(this)),A.listen(this._hostElement,"pointermove",this._onPointerMove.bind(this)),A.listen(this._hostElement,"pointerup",this._onPointerUp.bind(this))]})}ngOnDestroy(){this._listenerCleanups.forEach(A=>A()),this._destroyed.next(),this._destroyed.complete(),this.dragStart.complete(),this.dragEnd.complete()}initProps(){this._updateWidthInactive(),this.disabled!==this._slider.disabled&&(this._slider.disabled=!0),this.step=this._slider.step,this.min=this._slider.min,this.max=this._slider.max,this._initValue()}initUI(){this._updateThumbUIByValue()}_initValue(){this._hasSetInitialValue=!0,this._initialValue===void 0?this.value=this._getDefaultValue():(this._hostElement.value=this._initialValue,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges())}_getDefaultValue(){return this.min}_onBlur(){this._setIsFocused(!1),this._onTouchedFn()}_onFocus(){this._slider._setTransition(!1),this._slider._updateTrackUI(this),this._setIsFocused(!0)}_onChange(){this.valueChange.emit(this.value),this._isActive&&this._updateThumbUIByValue({withAnimation:!0})}_onInput(){this._onChangeFn?.(this.value),(this._slider.step||!this._isActive)&&this._updateThumbUIByValue({withAnimation:!0}),this._slider._onValueChange(this)}_onNgControlValueChange(){(!this._isActive||!this._isFocused)&&(this._slider._onValueChange(this),this._updateThumbUIByValue()),this._slider.disabled=this._formControl.disabled}_onPointerDown(A){if(!(this.disabled||A.button!==0)){if(this._platform.IOS){let i=this._slider._isCursorOnSliderThumb(A,this._slider._getThumb(this.thumbPosition)._hostElement.getBoundingClientRect());this._isActive=i,this._updateWidthActive(),this._slider._updateDimensions();return}this._isActive=!0,this._setIsFocused(!0),this._updateWidthActive(),this._slider._updateDimensions(),this._slider.step||this._updateThumbUIByPointerEvent(A,{withAnimation:!0}),this.disabled||(this._handleValueCorrection(A),this.dragStart.emit({source:this,parent:this._slider,value:this.value}))}}_handleValueCorrection(A){this._skipUIUpdate=!0,setTimeout(()=>{this._skipUIUpdate=!1,this._fixValue(A)},0)}_fixValue(A){let i=A.clientX-this._slider._cachedLeft,n=this._slider._cachedWidth,o=this._slider.step===0?1:this._slider.step,r=Math.floor((this._slider.max-this._slider.min)/o),s=this._slider._isRtl?1-i/n:i/n,c=Math.round(s*r)/r*(this._slider.max-this._slider.min)+this._slider.min,g=Math.round(c/o)*o,I=this.value;if(g===I){this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(A,{withAnimation:this._slider._hasAnimation});return}this.value=g,this.valueChange.emit(this.value),this._onChangeFn?.(this.value),this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(A,{withAnimation:this._slider._hasAnimation})}_onPointerMove(A){!this._slider.step&&this._isActive&&this._updateThumbUIByPointerEvent(A)}_onPointerUp(){this._isActive&&(this._isActive=!1,this._platform.SAFARI&&this._setIsFocused(!1),this.dragEnd.emit({source:this,parent:this._slider,value:this.value}),setTimeout(()=>this._updateWidthInactive(),this._platform.IOS?10:0))}_clamp(A){let i=this._tickMarkOffset,n=this._slider._cachedWidth-this._tickMarkOffset;return Math.max(Math.min(A,n),i)}_calcTranslateXByValue(){return this._slider._isRtl?(1-this.percentage)*(this._slider._cachedWidth-this._tickMarkOffset*2)+this._tickMarkOffset:this.percentage*(this._slider._cachedWidth-this._tickMarkOffset*2)+this._tickMarkOffset}_calcTranslateXByPointerEvent(A){return A.clientX-this._slider._cachedLeft}_updateWidthActive(){}_updateWidthInactive(){this._hostElement.style.padding=`0 ${this._slider._inputPadding}px`,this._hostElement.style.width=`calc(100% + ${this._slider._inputPadding-this._tickMarkOffset*2}px)`,this._hostElement.style.left=`-${this._slider._rippleRadius-this._tickMarkOffset}px`}_updateThumbUIByValue(A){this.translateX=this._clamp(this._calcTranslateXByValue()),this._updateThumbUI(A)}_updateThumbUIByPointerEvent(A,i){this.translateX=this._clamp(this._calcTranslateXByPointerEvent(A)),this._updateThumbUI(i)}_updateThumbUI(A){this._slider._setTransition(!!A?.withAnimation),this._slider._onTranslateXChange(this)}writeValue(A){(this._isControlInitialized||A!==null)&&(this.value=A)}registerOnChange(A){this._onChangeFn=A,this._isControlInitialized=!0}registerOnTouched(A){this._onTouchedFn=A}setDisabledState(A){this.disabled=A}focus(){this._hostElement.focus()}blur(){this._hostElement.blur()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["input","matSliderThumb",""]],hostAttrs:["type","range",1,"mdc-slider__input"],hostVars:1,hostBindings:function(i,n){i&1&&mA("change",function(){return n._onChange()})("input",function(){return n._onInput()})("blur",function(){return n._onBlur()})("focus",function(){return n._onFocus()}),i&2&&Ke("aria-valuetext",n._valuetext())},inputs:{value:[2,"value","value",en]},outputs:{valueChange:"valueChange",dragStart:"dragStart",dragEnd:"dragEnd"},exportAs:["matSliderThumb"],features:[ut([LHA,{provide:xcA,useExisting:t}])]})}return t})();var y7=class t{constructor(e,A,i){this.dialogRef=e;this.fb=A;this.data=i;this.evalMetrics=this.data.evalMetrics,this.evalForm=this.fb.group({tool_trajectory_avg_score_threshold:[this.getEvalMetricThresholdFromData("tool_trajectory_avg_score"),[Ac.required,Ac.min(0),Ac.max(1)]],response_match_score_threshold:[this.getEvalMetricThresholdFromData("response_match_score"),[Ac.required,Ac.min(0),Ac.max(1)]]})}evalForm;evalMetrics=[];getEvalMetricThresholdFromData(e){return this.evalMetrics.find(A=>A.metricName===e)?.threshold??0}onStart(){if(this.evalForm.valid){let{tool_trajectory_avg_score_threshold:e,response_match_score_threshold:A}=this.evalForm.value;for(let i of this.evalMetrics)i.metricName==="tool_trajectory_avg_score"?i.threshold=e:i.metricName==="response_match_score"&&(i.threshold=A);this.dialogRef.close(this.evalMetrics)}}onCancel(){this.dialogRef.close(null)}static \u0275fac=function(A){return new(A||t)(Ge(fr),Ge(gz),Ge(Cs))};static \u0275cmp=jA({type:t,selectors:[["app-run-eval-config-dialog"]],decls:26,vars:3,consts:[[1,"dialog-container"],["mat-dialog-title","",1,"dialog-title"],[1,"eval-form",3,"formGroup"],[1,"metric-row"],[1,"metric-name"],[1,"flex-1","pl-4"],["min","0","max","1","step","0.1","thumbLabel","",1,"threshold-slider"],["matSliderThumb","","formControlName","tool_trajectory_avg_score_threshold"],[1,"threshold-value"],["matSliderThumb","","formControlName","response_match_score_threshold"],["align","end",1,"dialog-actions"],["mat-button","",1,"cancel-button",3,"click"],["mat-button","",1,"save-button",3,"click"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2,"EVALUATION METRIC"),N(),S(3,"mat-dialog-content")(4,"form",2)(5,"div",3)(6,"div",4),AA(7,"Tool trajectory avg score: "),N(),S(8,"div",5)(9,"mat-slider",6),TA(10,"input",7),N(),S(11,"span",8),AA(12),N()()(),S(13,"div",3)(14,"div",4),AA(15,"Response match score: "),N(),S(16,"div",5)(17,"mat-slider",6),TA(18,"input",9),N(),S(19,"span",8),AA(20),N()()()()(),S(21,"mat-dialog-actions",10)(22,"button",11),mA("click",function(){return i.onCancel()}),AA(23,"Cancel"),N(),S(24,"button",12),mA("click",function(){return i.onStart()}),AA(25,"Start"),N()()()),A&2&&(_(4),yA("formGroup",i.evalForm),_(8),Bt(" ",i.evalForm.controls.tool_trajectory_avg_score_threshold.value," "),_(8),Bt(" ",i.evalForm.controls.response_match_score_threshold.value," "))},dependencies:[Ls,ya,Mr,az,kc,Ss,ez,cB,YI,gk,FcA,qK,va,dr],styles:[".dialog-container[_ngcontent-%COMP%]{border-radius:12px;padding:18px;width:500px;box-shadow:0 8px 16px var(--run-eval-config-dialog-container-box-shadow-color)}.threshold-slider[_ngcontent-%COMP%]{--mdc-slider-active-track-color: var(--run-eval-config-dialog-threshold-slider-active-track-color);--mdc-slider-inactive-track-color: var(--run-eval-config-dialog-threshold-slider-inactive-track-color);--mdc-slider-handle-color: var(--run-eval-config-dialog-threshold-slider-handle-color);--mdc-slider-ripple-color: var(--run-eval-config-dialog-threshold-slider-ripple-color);width:100px}.metric-row[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center}.metric-name[_ngcontent-%COMP%]{width:250px}.threshold-value[_ngcontent-%COMP%]{margin-left:20px}.mdc-slider__thumb--with-indicator[_ngcontent-%COMP%]{background-color:var(--mdc-slider-handle-color, var(--run-eval-config-dialog-mdc-slider-thumb-background-color));border:none!important;box-shadow:none!important}"]})};var xHA=["determinateSpinner"];function NHA(t,e){if(t&1&&(ur(),S(0,"svg",11),TA(1,"circle",12),N()),t&2){let A=Y();Ke("viewBox",A._viewBox()),_(),mo("stroke-dasharray",A._strokeCircumference(),"px")("stroke-dashoffset",A._strokeCircumference()/2,"px")("stroke-width",A._circleStrokeWidth(),"%"),Ke("r",A._circleRadius())}}var FHA=new eA("mat-progress-spinner-default-options",{providedIn:"root",factory:_HA});function _HA(){return{diameter:_cA}}var _cA=100,GHA=10,GcA=(()=>{class t{_elementRef=f(se);_noopAnimations;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;_defaultColor="primary";_determinateCircle;constructor(){let A=f(_i,{optional:!0}),i=f(FHA);this._noopAnimations=A==="NoopAnimations"&&!!i&&!i._forceAnimations,this.mode=this._elementRef.nativeElement.nodeName.toLowerCase()==="mat-spinner"?"indeterminate":"determinate",i&&(i.color&&(this.color=this._defaultColor=i.color),i.diameter&&(this.diameter=i.diameter),i.strokeWidth&&(this.strokeWidth=i.strokeWidth))}mode;get value(){return this.mode==="determinate"?this._value:0}set value(A){this._value=Math.max(0,Math.min(100,A||0))}_value=0;get diameter(){return this._diameter}set diameter(A){this._diameter=A||0}_diameter=_cA;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(A){this._strokeWidth=A||0}_strokeWidth;_circleRadius(){return(this.diameter-GHA)/2}_viewBox(){let A=this._circleRadius()*2+this.strokeWidth;return`0 0 ${A} ${A}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return this.mode==="determinate"?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,n){if(i&1&&st(xHA,5),i&2){let o;de(o=Be())&&(n._determinateCircle=o.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,n){i&2&&(Ke("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow",n.mode==="determinate"?n.value:null)("mode",n.mode),Ro("mat-"+n.color),mo("width",n.diameter,"px")("height",n.diameter,"px")("--mdc-circular-progress-size",n.diameter+"px")("--mdc-circular-progress-active-indicator-width",n.diameter+"px"),he("_mat-animation-noopable",n._noopAnimations)("mdc-circular-progress--indeterminate",n.mode==="indeterminate"))},inputs:{color:"color",mode:"mode",value:[2,"value","value",en],diameter:[2,"diameter","diameter",en],strokeWidth:[2,"strokeWidth","strokeWidth",en]},exportAs:["matProgressSpinner"],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,n){if(i&1&&(FA(0,NHA,2,8,"ng-template",null,0,Gu),S(2,"div",2,1),ur(),S(4,"svg",3),TA(5,"circle",4),N()(),_I(),S(6,"div",5)(7,"div",6)(8,"div",7),rr(9,8),N(),S(10,"div",9),rr(11,8),N(),S(12,"div",10),rr(13,8),N()()()),i&2){let o=Cr(1);_(4),Ke("viewBox",n._viewBox()),_(),mo("stroke-dasharray",n._strokeCircumference(),"px")("stroke-dashoffset",n._strokeDashOffset(),"px")("stroke-width",n._circleStrokeWidth(),"%"),Ke("r",n._circleRadius()),_(4),yA("ngTemplateOutlet",o),_(2),yA("ngTemplateOutlet",o),_(2),yA("ngTemplateOutlet",o)}},dependencies:[Hu],styles:[".mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}"],encapsulation:2,changeDetection:0})}return t})();function KHA(t,e){if(t&1){let A=me();S(0,"div",1)(1,"div"),AA(2,"All eval sets"),N(),S(3,"mat-icon",2),mA("click",function(){QA(A);let n=Y();return uA(n.openNewEvalSetDialog())}),AA(4,"add"),N()()}}function UHA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",3)(2,"div",4),AA(3," Create New Evaluation Set "),N(),S(4,"div",5),AA(5," An evaluation set is a curated collection of evaluation cases, where each case includes input-output examples for assessing agent performance. "),N(),S(6,"div",6),mA("click",function(){QA(A);let n=Y();return uA(n.openNewEvalSetDialog())}),AA(7," Create Evaluation Set "),N()()()}}function JHA(t,e){if(t&1){let A=me();S(0,"div",8),mA("click",function(){let n=QA(A).$implicit,o=Y(2);return uA(o.selectEvalSet(n))}),S(1,"div",9)(2,"span",10),AA(3,"folder"),N(),S(4,"div",11),AA(5),N()(),S(6,"div")(7,"mat-icon",12),AA(8,"chevron_right"),N()()()}if(t&2){let A=e.$implicit;_(5),tt(A)}}function YHA(t,e){if(t&1&&(S(0,"div"),dn(1,JHA,9,1,"div",7,zn),N()),t&2){let A=Y();_(),Bn(A.evalsets)}}function THA(t,e){if(t&1){let A=me();S(0,"th",29)(1,"mat-checkbox",30),mA("change",function(n){QA(A);let o=Y(4);return uA(n?o.toggleAllRows():null)}),N()()}if(t&2){let A=Y(4);_(),yA("checked",A.selection.hasValue()&&A.isAllSelected())("indeterminate",A.selection.hasValue()&&!A.isAllSelected())}}function HHA(t,e){if(t&1){let A=me();S(0,"td",31)(1,"mat-checkbox",32),mA("click",function(n){return QA(A),uA(n.stopPropagation())})("change",function(n){let o=QA(A).$implicit,r=Y(4);return uA(n?r.selection.toggle(o):null)}),N()()}if(t&2){let A=e.$implicit,i=Y(4);_(),yA("checked",i.selection.isSelected(A))}}function OHA(t,e){t&1&&(S(0,"th",29),AA(1," Case ID "),N())}function zHA(t,e){if(t&1){let A=me();S(0,"td",33),mA("click",function(){let n=QA(A).$implicit,o=Y(4);return uA(o.getEvalCase(n))}),AA(1),N()}if(t&2){let A,i=e.$implicit,n=Y(4);he("selected-eval-case",i===((A=n.selectedEvalCase())==null?null:A.evalId)),_(),Bt(" ",i," ")}}function PHA(t,e){t&1&&(S(0,"th",29),AA(1," Result "),N())}function jHA(t,e){if(t&1){let A=me();S(0,"button",35),mA("click",function(){QA(A);let n=Y().$implicit,o=Y(4);return uA(o.getSession(n))}),S(1,"span",36),AA(2),N(),S(3,"div",37),AA(4),N()()}if(t&2){let A=Y().$implicit,i=Y(4);yA("ngClass",i.getEvalResultForCase(A)==1?"result-btn pass":"result-btn fail"),_(2),Bt(" ",i.getEvalResultForCase(A)==1?"check":"close"," "),_(2),Bt("",i.getEvalResultForCase(A)==1?"Pass":"Fail"," ")}}function qHA(t,e){if(t&1&&(S(0,"td",31),FA(1,jHA,5,3,"button",34),N()),t&2){let A=e.$implicit,i=Y(4);_(),_A(i.getEvalResultForCase(A)?1:-1)}}function VHA(t,e){t&1&&TA(0,"tr",38)}function ZHA(t,e){t&1&&TA(0,"tr",39)}function WHA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",16)(2,"button",17),mA("click",function(){QA(A);let n=Y(3);return uA(n.openEvalConfigDialog())}),AA(3,"Run Evaluation"),N(),S(4,"mat-icon",18),mA("click",function(){QA(A);let n=Y(3);return uA(n.toggleEvalHistoryButton())}),AA(5,"history"),N()(),S(6,"div",19)(7,"table",20),S2(8,21),FA(9,THA,2,2,"th",22)(10,HHA,2,1,"td",23),R2(),S2(11,24),FA(12,OHA,2,0,"th",22)(13,zHA,2,3,"td",25),R2(),S2(14,26),FA(15,PHA,2,0,"th",22)(16,qHA,2,1,"td",23),R2(),FA(17,VHA,1,0,"tr",27)(18,ZHA,1,0,"tr",28),N()()()}if(t&2){let A=Y(3);_(7),yA("dataSource",A.dataSource),_(10),yA("matHeaderRowDef",A.displayedColumns),_(),yA("matRowDefColumns",A.displayedColumns)}}function XHA(t,e){if(t&1&&(S(0,"div")(1,"span",50),AA(2,"|"),N(),S(3,"span",51),AA(4),N()()),t&2){let A=Y().$implicit,i=Y(4);_(4),Bt("",i.getFailCountForCurrentResult(A.evaluationResults.evaluationResults)," Failed")}}function $HA(t,e){if(t&1&&(S(0,"span",52),AA(1),N()),t&2){let A=e.$implicit;_(),x2(" ",A.metricName,": ",A.threshold," ")}}function AOA(t,e){if(t&1&&(S(0,"div",46),dn(1,$HA,2,2,"span",52,zn),N()),t&2){let A=Y().$implicit,i=Y(4);_(),Bn(i.getEvalMetrics(A))}}function eOA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",53)(2,"span"),AA(3),N(),S(4,"button",54),mA("click",function(){let n=QA(A).$implicit,o=Y(6);return uA(o.getHistorySession(n))}),S(5,"span",36),AA(6),N(),S(7,"div",37),AA(8),N()()()()}if(t&2){let A=e.$implicit;_(3),Bt(" ",A.evalId," "),_(),yA("ngClass",A.finalEvalStatus==1?"result-btn pass":"result-btn fail"),_(2),Bt(" ",A.finalEvalStatus==1?"check":"close"," "),_(2),Bt("",A.finalEvalStatus==1?"PASS":"FAIL"," ")}}function tOA(t,e){if(t&1&&(S(0,"div",49),dn(1,eOA,9,4,"div",null,zn),N()),t&2){let A=Y().$implicit,i=Y(4);_(),Bn(i.generateHistoryEvaluationDatasource(A.timestamp))}}function iOA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",40)(2,"div",41)(3,"div",42)(4,"div",43),AA(5),N(),S(6,"div",44)(7,"span",45),AA(8),N(),FA(9,XHA,5,1,"div"),N(),FA(10,AOA,3,0,"div",46),N(),S(11,"div",47)(12,"mat-icon",48),mA("click",function(){let n=QA(A).$implicit,o=Y(4);return uA(o.toggleHistoryStatusCard(n.timestamp))}),AA(13),N()()(),FA(14,tOA,3,0,"div",49),N()()}if(t&2){let A=e.$implicit,i=Y(4);_(5),tt(i.formatTimestamp(A.timestamp)),_(3),Bt("",i.getPassCountForCurrentResult(A.evaluationResults.evaluationResults)," Passed"),_(),_A(i.getFailCountForCurrentResult(A.evaluationResults.evaluationResults)>0?9:-1),_(),_A(i.getEvalMetrics(A)?10:-1),_(3),tt(i.getEvaluationStatusCardActionButtonIcon(A.timestamp)),_(),_A(i.isEvaluationStatusCardToggled(A.timestamp)?14:-1)}}function nOA(t,e){if(t&1&&(S(0,"div"),dn(1,iOA,15,6,"div",null,zn),N()),t&2){let A=Y(3);_(),Bn(A.getEvalHistoryOfCurrentSetSorted())}}function oOA(t,e){if(t&1&&(S(0,"div"),FA(1,WHA,19,3,"div")(2,nOA,3,0,"div"),N()),t&2){let A=Y(2);_(),_A(A.showEvalHistory()?-1:1),_(),_A(A.showEvalHistory()?2:-1)}}function rOA(t,e){if(t&1){let A=me();S(0,"button",55),mA("click",function(){QA(A);let n=Y(2);return uA(n.openNewEvalCaseDialog())}),S(1,"div",56)(2,"mat-icon"),AA(3,"add"),N(),S(4,"div",57),AA(5),N()()()}if(t&2){let A=Y(2);_(5),Bt(" Add current session to ",A.selectedEvalSet," ")}}function sOA(t,e){t&1&&(S(0,"div"),TA(1,"mat-spinner",58),N()),t&2&&(_(),yA("diameter",28)("strokeWidth",3))}function aOA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",9)(2,"mat-icon",13),mA("click",function(){QA(A);let n=Y();return uA(n.clearSelectedEvalSet())}),AA(3,"chevron_left"),N(),S(4,"div",14),mA("click",function(){QA(A);let n=Y();return uA(n.clearSelectedEvalSet())}),AA(5),N()(),FA(6,oOA,3,2,"div")(7,rOA,6,1,"button",15)(8,sOA,2,2,"div"),N()}if(t&2){let A=Y();_(5),Bt(" ",A.selectedEvalSet," "),_(),_A(A.evalCases.length>0&&!A.evalRunning()?6:-1),_(),_A(!A.evalRunning()&&!A.showEvalHistory()?7:-1),_(),_A(A.evalRunning()?8:-1)}}var g2=class t{checkboxes=MH(pf);appName=bs("");userId=bs("");sessionId=bs("");sessionSelected=GI();shouldShowTab=GI();evalNotInstalledMsg=GI();evalCaseSelected=GI();evalSetIdSelected=GI();shouldReturnToSession=GI();evalCasesSubject=new Fi([]);changeDetectorRef=f(Et);flagService=f(Gc);displayedColumns=["select","evalId","finalEvalStatus"];evalsets=[];selectedEvalSet="";evalCases=[];selectedEvalCase=Ao(null);deletedEvalCaseIndex=-1;dataSource=new wf(this.evalCases);selection=new P2(!0,[]);showEvalHistory=Ao(!1);evalRunning=Ao(!1);evalMetrics=RcA;currentEvalResultBySet=new Map;dialog=f(Fc);appEvaluationResults={};evalService=f(Rl);sessionService=f(A1);constructor(){this.evalCasesSubject.subscribe(e=>{!this.selectedEvalCase()&&this.deletedEvalCaseIndex>=0&&e.length>0?(this.selectNewEvalCase(e),this.deletedEvalCaseIndex=-1):e.length===0&&this.shouldReturnToSession.emit(!0)})}ngOnChanges(e){e.appName&&(this.selectedEvalSet="",this.evalCases=[],this.getEvalSet(),this.getEvaluationResult())}ngOnInit(){}selectNewEvalCase(e){let A=this.deletedEvalCaseIndex;this.deletedEvalCaseIndex===e.length&&(A=0),this.getEvalCase(e[A])}getEvalSet(){this.appName()!==""&&this.evalService.getEvalSets(this.appName()).pipe(Gr(e=>e.status===404&&e.statusText==="Not Found"?(this.shouldShowTab.emit(!1),Ce(null)):Ce([]))).subscribe(e=>{e!==null&&(this.shouldShowTab.emit(!0),this.evalsets=e)})}openNewEvalSetDialog(){this.dialog.open(w7,{width:"600px",data:{appName:this.appName()}}).afterClosed().subscribe(A=>{A&&this.getEvalSet()})}openNewEvalCaseDialog(){this.dialog.open(D7,{width:"600px",data:{appName:this.appName(),userId:this.userId(),sessionId:this.sessionId(),evalSetId:this.selectedEvalSet}}).afterClosed().subscribe(A=>{A&&this.listEvalCases()})}listEvalCases(){this.evalCases=[],this.evalService.listEvalCases(this.appName(),this.selectedEvalSet).subscribe(e=>{this.evalCases=e,this.dataSource=new wf(this.evalCases),this.evalCasesSubject.next(this.evalCases),this.changeDetectorRef.detectChanges()})}runEval(){if(this.evalRunning.set(!0),this.selection.selected.length==0){alert("No case selected!"),this.evalRunning.set(!1);return}this.evalService.runEval(this.appName(),this.selectedEvalSet,this.selection.selected,this.evalMetrics).pipe(Gr(e=>(e.error?.detail?.includes("not installed")&&this.evalNotInstalledMsg.emit(e.error.detail),Ce([])))).subscribe(e=>{this.evalRunning.set(!1),this.currentEvalResultBySet.set(this.selectedEvalSet,e),this.getEvaluationResult()})}selectEvalSet(e){this.selectedEvalSet=e,this.listEvalCases()}clearSelectedEvalSet(){if(this.showEvalHistory()){this.toggleEvalHistoryButton();return}this.selectedEvalSet=""}isAllSelected(){let e=this.selection.selected.length,A=this.dataSource.data.length;return e===A}toggleAllRows(){if(this.isAllSelected()){this.selection.clear();return}this.selection.select(...this.dataSource.data)}getEvalResultForCase(e){let A=this.currentEvalResultBySet.get(this.selectedEvalSet)?.filter(i=>i.evalId==e);if(!(!A||A.length==0))return A[0].finalEvalStatus}formatToolUses(e){let A=[];for(let i of e)A.push({name:i.name,args:i.args});return A}addEvalCaseResultToEvents(e,A){let i=A.evalMetricResultPerInvocation,n=-1;if(i)for(let o=0;on.evalId==e)[0],i=A.sessionId;this.sessionService.getSession(this.userId(),this.appName(),i).subscribe(n=>{this.addEvalCaseResultToEvents(n,A);let o=this.fromApiResultToSession(n);this.sessionSelected.emit(o)})}toggleEvalHistoryButton(){this.showEvalHistory.set(!this.showEvalHistory())}getEvalHistoryOfCurrentSet(){return this.appEvaluationResults[this.appName()][this.selectedEvalSet]}getEvalHistoryOfCurrentSetSorted(){let e=this.getEvalHistoryOfCurrentSet();return Object.keys(e).sort((n,o)=>o.localeCompare(n)).map(n=>({timestamp:n,evaluationResults:e[n]}))}getPassCountForCurrentResult(e){return e.filter(A=>A.finalEvalStatus==1).length}getFailCountForCurrentResult(e){return e.filter(A=>A.finalEvalStatus==2).length}formatTimestamp(e){let A=Number(e);if(isNaN(A))return"Invalid timestamp provided";let i=new Date(A*1e3);if(isNaN(i.getTime()))return"Invalid date created from timestamp";let n={month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0};return new Intl.DateTimeFormat("en-US",n).format(i)}getEvaluationStatusCardActionButtonIcon(e){return this.getEvalHistoryOfCurrentSet()[e].isToggled?"keyboard_arrow_up":"keyboard_arrow_down"}toggleHistoryStatusCard(e){this.getEvalHistoryOfCurrentSet()[e].isToggled=!this.getEvalHistoryOfCurrentSet()[e].isToggled}isEvaluationStatusCardToggled(e){return this.getEvalHistoryOfCurrentSet()[e].isToggled}generateHistoryEvaluationDatasource(e){return this.getEvalHistoryOfCurrentSet()[e].evaluationResults}getHistorySession(e){this.addEvalCaseResultToEvents(e.sessionDetails,e);let A=this.fromApiResultToSession(e.sessionDetails);this.sessionSelected.emit(A)}getEvalCase(e){this.evalService.getEvalCase(this.appName(),this.selectedEvalSet,e).subscribe(A=>{this.selectedEvalCase.set(A),this.evalCaseSelected.emit(A),this.evalSetIdSelected.emit(this.selectedEvalSet)})}resetEvalCase(){this.selectedEvalCase.set(null)}resetEvalResults(){this.currentEvalResultBySet.clear()}deleteEvalCase(e){this.evalService.deleteEvalCase(this.appName(),this.selectedEvalSet,e).subscribe(A=>{this.deletedEvalCaseIndex=this.evalCases.indexOf(e),this.selectedEvalCase.set(null),this.listEvalCases()})}getEvaluationResult(){this.evalService.listEvalResults(this.appName()).pipe(Gr(e=>e.status===404&&e.statusText==="Not Found"?(this.shouldShowTab.emit(!1),Ce(null)):Ce([]))).subscribe(e=>{for(let A of e)this.evalService.getEvalResult(this.appName(),A).subscribe(i=>{this.appEvaluationResults[this.appName()]||(this.appEvaluationResults[this.appName()]={}),this.appEvaluationResults[this.appName()][i.evalSetId]||(this.appEvaluationResults[this.appName()][i.evalSetId]={});let n=i.creationTimestamp;this.appEvaluationResults[this.appName()][i.evalSetId][n]||(this.appEvaluationResults[this.appName()][i.evalSetId][n]={isToggled:!1,evaluationResults:[]});let o={isToggled:!1,evaluationResults:i.evalCaseResults.map(r=>({setId:r.id,evalId:r.evalId,finalEvalStatus:r.finalEvalStatus,evalMetricResults:r.evalMetricResults,evalMetricResultPerInvocation:r.evalMetricResultPerInvocation,sessionId:r.sessionId,sessionDetails:r.sessionDetails,overallEvalMetricResults:r.overallEvalMetricResults??[]}))};this.appEvaluationResults[this.appName()][i.evalSetId][n]=o})})}openEvalConfigDialog(){if(this.selection.selected.length==0){alert("No case selected!");return}this.dialog.open(y7,{maxWidth:"90vw",maxHeight:"90vh",data:{evalMetrics:this.evalMetrics}}).afterClosed().subscribe(A=>{A&&(this.evalMetrics=A,this.runEval())})}getEvalMetrics(e){if(!e||!e.evaluationResults||!e.evaluationResults.evaluationResults)return this.evalMetrics;let A=e.evaluationResults.evaluationResults;return A.length===0?this.evalMetrics:typeof A[0].overallEvalMetricResults>"u"||!A[0].overallEvalMetricResults||A[0].overallEvalMetricResults.length===0?this.evalMetrics:A[0].overallEvalMetricResults.map(n=>({metricName:n.metricName,threshold:n.threshold}))}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-eval-tab"]],viewQuery:function(A,i){A&1&&ls(i.checkboxes,pf,5),A&2&&yc()},inputs:{appName:[1,"appName"],userId:[1,"userId"],sessionId:[1,"sessionId"]},outputs:{sessionSelected:"sessionSelected",shouldShowTab:"shouldShowTab",evalNotInstalledMsg:"evalNotInstalledMsg",evalCaseSelected:"evalCaseSelected",evalSetIdSelected:"evalSetIdSelected",shouldReturnToSession:"shouldReturnToSession"},features:[Xt],decls:5,vars:4,consts:[[1,"eval-container"],[1,"eval-set-actions"],["matTooltip","Create new evaluation set",2,"cursor","pointer",3,"click"],[1,"empty-eval-info"],[1,"info-title"],[1,"info-detail"],[1,"info-create",3,"click"],[1,"eval-set-row"],[1,"eval-set-row",3,"click"],[2,"display","flex"],[1,"material-symbols-outlined",2,"margin-right","10px","padding-top","16px"],[2,"font-family","Roboto","font-size","14px","padding","16px","padding-top","20px"],[2,"padding-top","20px","color","#9AA0A6"],[2,"color","white","cursor","pointer",3,"click"],[2,"color","#9AA0A6","padding-top","2px","cursor","pointer",3,"click"],[1,"save-session-btn"],[1,"evaluation-tab-header"],[1,"run-eval-btn",3,"click"],["matTooltip","View eval run history",1,"evaluation-history-icon",3,"click"],[1,"mat-table-container",2,"margin-top","16px"],["mat-table","",3,"dataSource"],["matColumnDef","select"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","evalId"],["mat-cell","","class","eval-case-id",3,"selected-eval-case","click",4,"matCellDef"],["matColumnDef","finalEvalStatus"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],[3,"change","checked","indeterminate"],["mat-cell",""],[3,"click","change","checked"],["mat-cell","",1,"eval-case-id",3,"click"],["matTooltip","View eval run result",3,"ngClass"],["matTooltip","View eval run result",3,"click","ngClass"],[1,"material-symbols-outlined"],[2,"padding-top","4px"],["mat-header-row",""],["mat-row",""],[1,"status-card"],[1,"status-card__overview"],[1,"status-card__info"],[1,"status-card__timestamp"],[1,"status-card__summary"],[1,"status-card__passed"],[1,"status-card__metrics"],[1,"status-card__action"],[3,"click"],[1,"status-card__history-cases"],[1,"status-card__separator"],[1,"status-card__failed"],[1,"status-card__metric"],[1,"status-card__history-case"],[3,"click","ngClass"],[1,"save-session-btn",3,"click"],[1,"save-session-btn-detail"],[1,"save-session-btn-text"],[1,"eval-spinner",3,"diameter","strokeWidth"]],template:function(A,i){A&1&&(S(0,"div",0),FA(1,KHA,5,0,"div",1)(2,UHA,8,0,"div")(3,YHA,3,0,"div")(4,aOA,9,4,"div"),N()),A&2&&(_(),_A(i.selectedEvalSet==""?1:-1),_(),_A(i.evalsets.length==0?2:-1),_(),_A(i.evalsets.length>0&&i.selectedEvalSet==""?3:-1),_(),_A(i.selectedEvalSet!=""?4:-1))},dependencies:[_c,kl,mcA,wcA,DcA,ycA,pf,pcA,vcA,Vs,McA,kcA,bcA,ScA,GcA],styles:[".eval-container[_ngcontent-%COMP%]{margin-top:20px;padding-left:25px;padding-right:25px}.eval-case-id[_ngcontent-%COMP%]{cursor:pointer}.eval-set-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between;color:var(--eval-tab-eval-set-actions-color);font-style:normal;font-weight:700;font-size:14px}.empty-eval-info[_ngcontent-%COMP%]{margin-top:12px;background-color:var(--eval-tab-empty-eval-info-background-color);border-radius:8px;box-shadow:0 2px 6px 2px var(--eval-tab-empty-eval-info-box-shadow-color1),0 1px 2px 0 var(--eval-tab-empty-eval-info-box-shadow-color2)}.info-title[_ngcontent-%COMP%]{color:var(--eval-tab-info-title-color);font-family:Roboto;font-size:14px;font-weight:500;padding-top:13px;padding-right:16px;padding-left:16px}.info-detail[_ngcontent-%COMP%]{color:var(--eval-tab-info-detail-color);font-family:Roboto;font-size:14px;font-weight:400;padding-top:13px;padding-right:16px;padding-left:16px;letter-spacing:.2px}.info-create[_ngcontent-%COMP%]{color:var(--eval-tab-info-create-color);font-size:14px;font-style:normal;font-weight:500;padding-right:16px;padding-left:16px;margin-top:19px;padding-bottom:16px;cursor:pointer}.eval-set-row[_ngcontent-%COMP%]{display:flex;justify-content:space-between;cursor:pointer}.selected-eval-case[_ngcontent-%COMP%]{font-weight:900;color:var(--eval-tab-selected-eval-case-color)}.save-session-btn[_ngcontent-%COMP%]{width:100%;background:linear-gradient(0deg,var(--eval-tab-save-session-btn-background-color1) 0%,var(--eval-tab-save-session-btn-background-color1) 100%),var(--eval-tab-save-session-btn-background-color2);border:none;border-radius:4px;margin-top:12px;cursor:pointer}.save-session-btn-detail[_ngcontent-%COMP%]{display:flex;padding:8px 16px 8px 12px;justify-content:center}.save-session-btn-text[_ngcontent-%COMP%]{padding-top:2px;color:var(--eval-tab-save-session-btn-text-color);font-family:Google Sans;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.run-eval-btn[_ngcontent-%COMP%]{border-radius:4px;border:1px solid var(--eval-tab-run-eval-btn-border-color);background-color:transparent;padding:8px 24px;margin-top:16px;color:var(--eval-tab-run-eval-btn-color);cursor:pointer}.run-eval-btn[_ngcontent-%COMP%]:hover{background-color:var(--eval-tab-run-eval-btn-hover-background-color)}.result-btn[_ngcontent-%COMP%]{display:flex;background-color:transparent;border-radius:4px;border:1px solid var(--eval-tab-result-btn-border-color);margin-top:4px;cursor:pointer}.result-btn[_ngcontent-%COMP%]:hover{background-color:var(--eval-tab-result-btn-hover-background-color)}.result-btn.pass[_ngcontent-%COMP%]{color:var(--eval-tab-result-btn-pass-color)}.result-btn.fail[_ngcontent-%COMP%]{color:var(--eval-tab-result-btn-fail-color)}.evaluation-tab-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%}.evaluation-history-icon[_ngcontent-%COMP%]{cursor:pointer;margin-top:4px}.status-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;border-radius:8px;background-color:var(--eval-tab-status-card-background-color);padding:12px 16px;margin-top:12px}.status-card__overview[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%}.status-card__info[_ngcontent-%COMP%]{display:flex;flex-direction:column}.status-card__timestamp[_ngcontent-%COMP%]{font-size:.9em;color:var(--eval-tab-status-card-timestamp-color);margin-bottom:5px}.status-card__summary[_ngcontent-%COMP%]{display:flex;align-items:center;font-size:.95em;font-weight:500}.status-card__metrics[_ngcontent-%COMP%]{display:flex;align-items:center;font-size:.75em;font-weight:300;margin-top:3px}.status-card__metric[_ngcontent-%COMP%]{width:180px;color:var(--eval-tab-status-card-metric-color)}.status-card__failed[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-failed-color)}.status-card__separator[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-separator-color);margin:0 8px}.status-card__passed[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-passed-color)}.status-card__action[_ngcontent-%COMP%]{display:flex;align-items:center}.status-card__action[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-action-mat-icon-color);cursor:pointer;transition:transform .2s ease-in-out}.status-card__action[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]:hover{opacity:.8}.status-card__action[_ngcontent-%COMP%] .status-card__icon[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-icon-color);font-size:1.2em;cursor:pointer}.status-card__action[_ngcontent-%COMP%] .status-card__icon[_ngcontent-%COMP%]:hover{opacity:.8}.status-card__history-cases[_ngcontent-%COMP%]{display:flex;flex-direction:column;margin-top:3px;justify-content:flex-start;width:100%}.status-card__history-case[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:15px}.eval-spinner[_ngcontent-%COMP%]{margin-top:12px}"],changeDetection:0})};function cOA(t,e){t&1&&(S(0,"h2",0),AA(1,"Events List"),N())}function gOA(t,e){t&1&&(S(0,"h2",0),AA(1,"Send Response To Pending Event"),N())}function lOA(t,e){t&1&&(S(0,"h2",4),AA(1,"Events List"),N())}function IOA(t,e){t&1&&(S(0,"h2",4),AA(1,"Send Response To Pending Event"),N())}function COA(t,e){if(t&1){let A=me();S(0,"div")(1,"p"),AA(2,"Name"),N(),S(3,"p"),AA(4),N(),S(5,"p"),AA(6,"Args"),N(),S(7,"p"),AA(8),N(),S(9,"mat-form-field",5)(10,"mat-label"),AA(11,"Response"),N(),S(12,"textarea",6),Xa("ngModelChange",function(n){QA(A);let o=Y();return Wa(o.selectedEvent.response,n)||(o.selectedEvent.response=n),uA(n)}),N()()()}if(t&2){let A=Y();_(4),tt(A.selectedEvent.name),_(4),tt(A.argsToJson(A.selectedEvent.args)),_(4),Za("ngModel",A.selectedEvent.response)}}function dOA(t,e){if(t&1){let A=me();S(0,"button",7),mA("click",function(){QA(A);let n=Y();return uA(n.sendResponse())}),AA(1),N()}if(t&2){let A=Y();yA("disabled",A.sending),_(),Bt(" ",A.sending?"Sending...":"Send"," ")}}var v7=class t{dialogRef=f(fr);data=f(Cs);agentService=f(HB);selectedEvent=this.data.event;appName=this.data.appName;userId=this.data.userId;sessionId=this.data.sessionId;functionCallEventId=this.data.functionCallEventId;sending=!1;response=[];constructor(){}argsToJson(e){return JSON.stringify(e)}sendResponse(){this.sending=!0;let e={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:[]},invocationId:this.data.invocationId};this.selectedEvent.response&&(e.functionCallEventId=this.functionCallEventId,e.newMessage.parts.push({function_response:{id:this.selectedEvent.id,name:this.selectedEvent.name,response:{response:this.selectedEvent.response}}})),this.agentService.runSse(e).subscribe({next:A=>Ni(this,null,function*(){this.response.push(A)}),error:A=>console.error("SSE error:",A),complete:()=>{this.sending=!1,this.dialogRef.close({response:this.response,events:[this.selectedEvent]})}})}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-pending-event-dialog"]],decls:10,vars:6,consts:[["mat-dialog-title",""],["mat-dialog-title","","class","dialog-title",4,"ngIf"],["mat-button","",3,"disabled"],["mat-button","","mat-dialog-close",""],["mat-dialog-title","",1,"dialog-title"],["appearance","outline",1,"response-textarea"],["matInput","",3,"ngModelChange","ngModel"],["mat-button","",3,"click","disabled"]],template:function(A,i){A&1&&(FA(0,cOA,2,0,"h2",0)(1,gOA,2,0,"h2",0)(2,lOA,2,0,"h2",1)(3,IOA,2,0,"h2",1),S(4,"mat-dialog-content"),FA(5,COA,13,3,"div"),N(),S(6,"mat-dialog-actions"),FA(7,dOA,2,2,"button",2),S(8,"button",3),AA(9,"Close"),N()()),A&2&&(_A(i.selectedEvent?-1:0),_(),_A(i.selectedEvent?1:-1),_(),yA("ngIf",!i.selectedEvent),_(),yA("ngIf",i.selectedEvent),_(2),_A(i.selectedEvent?5:-1),_(2),_A(i.selectedEvent&&i.selectedEvent.response?7:-1))},dependencies:[Ls,Tu,ya,fl,m6,J2,Mr,kc,Ss,tc,va,dr,bl],styles:[".response-textarea[_ngcontent-%COMP%]{min-width:500px;margin-top:15px}.dialog-title[_ngcontent-%COMP%]{font-weight:700;font-size:large}"]})};var yf=class t{constructor(e,A){this.dialogRef=e;this.data=A}onConfirm(){this.dialogRef.close(!0)}onCancel(){this.dialogRef.close(!1)}static \u0275fac=function(A){return new(A||t)(Ge(fr),Ge(Cs))};static \u0275cmp=jA({type:t,selectors:[["app-delete-session-dialog"]],decls:11,vars:4,consts:[[1,"confirm-delete-wrapper"],["mat-dialog-title",""],["align","end"],["mat-button","",3,"click"],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2),N(),S(3,"mat-dialog-content")(4,"p"),AA(5),N()(),S(6,"mat-dialog-actions",2)(7,"button",3),mA("click",function(){return i.onCancel()}),AA(8),N(),S(9,"button",4),mA("click",function(){return i.onConfirm()}),AA(10),N()()()),A&2&&(_(2),tt(i.data.title),_(3),tt(i.data.message),_(3),tt(i.data.cancelButtonText),_(2),tt(i.data.confirmButtonText))},dependencies:[Ls,ya,va,dr],encapsulation:2})};var XK=["*"];function BOA(t,e){t&1&&Ue(0)}var EOA=["tabListContainer"],QOA=["tabList"],uOA=["tabListInner"],hOA=["nextPaginator"],fOA=["previousPaginator"],mOA=t=>({animationDuration:t}),pOA=(t,e)=>({value:t,params:e});function DOA(t,e){}var wOA=["tabBodyWrapper"],yOA=["tabHeader"];function vOA(t,e){}function MOA(t,e){if(t&1&&FA(0,vOA,0,0,"ng-template",12),t&2){let A=Y().$implicit;yA("cdkPortalOutlet",A.templateLabel)}}function bOA(t,e){if(t&1&&AA(0),t&2){let A=Y().$implicit;tt(A.textLabel)}}function kOA(t,e){if(t&1){let A=me();S(0,"div",7,2),mA("click",function(){let n=QA(A),o=n.$implicit,r=n.$index,s=Y(),a=Cr(1);return uA(s._handleClick(o,a,r))})("cdkFocusChange",function(n){let o=QA(A).$index,r=Y();return uA(r._tabFocusChanged(n,o))}),TA(2,"span",8)(3,"div",9),S(4,"span",10)(5,"span",11),FA(6,MOA,1,1,null,12)(7,bOA,1,1),N()()()}if(t&2){let A=e.$implicit,i=e.$index,n=Cr(1),o=Y();Ro(A.labelClass),he("mdc-tab--active",o.selectedIndex===i),yA("id",o._getTabLabelId(i))("disabled",A.disabled)("fitInkBarToContent",o.fitInkBarToContent),Ke("tabIndex",o._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",o._tabs.length)("aria-controls",o._getTabContentId(i))("aria-selected",o.selectedIndex===i)("aria-label",A.ariaLabel||null)("aria-labelledby",!A.ariaLabel&&A.ariaLabelledby?A.ariaLabelledby:null),_(3),yA("matRippleTrigger",n)("matRippleDisabled",A.disabled||o.disableRipple),_(3),_A(A.templateLabel?6:7)}}function SOA(t,e){t&1&&Ue(0)}function ROA(t,e){if(t&1){let A=me();S(0,"mat-tab-body",13),mA("_onCentered",function(){QA(A);let n=Y();return uA(n._removeTabBodyWrapperHeight())})("_onCentering",function(n){QA(A);let o=Y();return uA(o._setTabBodyWrapperHeight(n))}),N()}if(t&2){let A=e.$implicit,i=e.$index,n=Y();Ro(A.bodyClass),he("mat-mdc-tab-body-active",n.selectedIndex===i),yA("id",n._getTabContentId(i))("content",A.content)("position",A.position)("origin",A.origin)("animationDuration",n.animationDuration)("preserveContent",n.preserveContent),Ke("tabindex",n.contentTabIndex!=null&&n.selectedIndex===i?n.contentTabIndex:null)("aria-labelledby",n._getTabLabelId(i))("aria-hidden",n.selectedIndex!==i)}}var LOA=new eA("MatTabContent"),xOA=(()=>{class t{template=f(mn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matTabContent",""]],features:[ut([{provide:LOA,useExisting:t}])]})}return t})(),NOA=new eA("MatTabLabel"),JcA=new eA("MAT_TAB"),$K=(()=>{class t extends sq{_closestTab=f(JcA,{optional:!0});static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[ut([{provide:NOA,useExisting:t}]),lt]})}return t})(),YcA=new eA("MAT_TAB_GROUP"),vf=(()=>{class t{_viewContainerRef=f(Sn);_closestTabGroup=f(YcA,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(A){this._setTemplateLabelInput(A)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new qA;position=null;origin=null;isActive=!1;constructor(){f(Pn).load(Yr)}ngOnChanges(A){(A.hasOwnProperty("textLabel")||A.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new Rs(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(A){A&&A._closestTab===this&&(this._templateLabel=A)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-tab"]],contentQueries:function(i,n,o){if(i&1&&(gi(o,$K,5),gi(o,xOA,7,mn)),i&2){let r;de(r=Be())&&(n.templateLabel=r.first),de(r=Be())&&(n._explicitContent=r.first)}},viewQuery:function(i,n){if(i&1&&st(mn,7),i&2){let o;de(o=Be())&&(n._implicitContent=o.first)}},hostAttrs:["hidden",""],inputs:{disabled:[2,"disabled","disabled",ge],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},exportAs:["matTab"],features:[ut([{provide:JcA,useExisting:t}]),Xt],ngContentSelectors:XK,decls:1,vars:0,template:function(i,n){i&1&&($t(),FA(0,BOA,1,0,"ng-template"))},encapsulation:2})}return t})(),VK="mdc-tab-indicator--active",KcA="mdc-tab-indicator--no-transition",ZK=class{_items;_currentItem;constructor(e){this._items=e}hide(){this._items.forEach(e=>e.deactivateInkBar()),this._currentItem=void 0}alignToElement(e){let A=this._items.find(n=>n.elementRef.nativeElement===e),i=this._currentItem;if(A!==i&&(i?.deactivateInkBar(),A)){let n=i?.elementRef.nativeElement.getBoundingClientRect?.();A.activateInkBar(n),this._currentItem=A}}},FOA=(()=>{class t{_elementRef=f(se);_inkBarElement;_inkBarContentElement;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(A){this._fitToContent!==A&&(this._fitToContent=A,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(A){let i=this._elementRef.nativeElement;if(!A||!i.getBoundingClientRect||!this._inkBarContentElement){i.classList.add(VK);return}let n=i.getBoundingClientRect(),o=A.width/n.width,r=A.left-n.left;i.classList.add(KcA),this._inkBarContentElement.style.setProperty("transform",`translateX(${r}px) scaleX(${o})`),i.getBoundingClientRect(),i.classList.remove(KcA),i.classList.add(VK),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(VK)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){let A=this._elementRef.nativeElement.ownerDocument||document,i=this._inkBarElement=A.createElement("span"),n=this._inkBarContentElement=A.createElement("span");i.className="mdc-tab-indicator",n.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",i.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){this._inkBarElement;let A=this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement;A.appendChild(this._inkBarElement)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",ge]}})}return t})();var TcA=(()=>{class t extends FOA{elementRef=f(se);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,n){i&2&&(Ke("aria-disabled",!!n.disabled),he("mat-mdc-tab-disabled",n.disabled))},inputs:{disabled:[2,"disabled","disabled",ge]},features:[lt]})}return t})(),UcA={passive:!0},_OA=650,GOA=100,KOA=(()=>{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_viewportRuler=f(Nc);_dir=f(po,{optional:!0});_ngZone=f(ye);_platform=f(ni);_sharedResizeObserver=f(h6);_injector=f(Zt);_renderer=f(qi);_animationMode=f(_i,{optional:!0});_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new qA;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged;_keyManager;_currentTextContent;_stopScrolling=new qA;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(A){let i=isNaN(A)?0:A;this._selectedIndex!=i&&(this._selectedIndexChanged=!0,this._selectedIndex=i,this._keyManager&&this._keyManager.updateActiveItem(i))}_selectedIndex=0;selectFocusedIndex=new YA;indexFocused=new YA;constructor(){this._eventCleanups=this._ngZone.runOutsideAngular(()=>[this._renderer.listen(this._elementRef.nativeElement,"mouseleave",()=>this._stopInterval())])}ngAfterViewInit(){this._eventCleanups.push(Bk(this._renderer,this._previousPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("before"),UcA),Bk(this._renderer,this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),UcA))}ngAfterContentInit(){let A=this._dir?this._dir.change:Ce("ltr"),i=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(ag(32),kt(this._destroyed)),n=this._viewportRuler.change(150).pipe(kt(this._destroyed)),o=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new zI(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(this._selectedIndex),Ir(o,{injector:this._injector}),Hn(A,n,i,this._items.changes,this._itemsResized()).pipe(kt(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),o()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(r=>{this.indexFocused.emit(r),this._setTabFocus(r)})}_itemsResized(){return typeof ResizeObserver!="function"?lr:this._items.changes.pipe(On(this._items),$n(A=>new gt(i=>this._ngZone.runOutsideAngular(()=>{let n=new ResizeObserver(o=>i.next(o));return A.forEach(o=>n.observe(o.elementRef.nativeElement)),()=>{n.disconnect()}}))),mI(1),Nt(A=>A.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._eventCleanups.forEach(A=>A()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(A){if(!sr(A))switch(A.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){let i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(A))}break;default:this._keyManager.onKeydown(A)}}_onContentChanges(){let A=this._elementRef.nativeElement.textContent;A!==this._currentTextContent&&(this._currentTextContent=A||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(A){!this._isValidIndex(A)||this.focusIndex===A||!this._keyManager||this._keyManager.setActiveItem(A)}_isValidIndex(A){return this._items?!!this._items.toArray()[A]:!0}_setTabFocus(A){if(this._showPaginationControls&&this._scrollToLabel(A),this._items&&this._items.length){this._items.toArray()[A].focus();let i=this._tabListContainer.nativeElement;this._getLayoutDirection()=="ltr"?i.scrollLeft=0:i.scrollLeft=i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;let A=this.scrollDistance,i=this._getLayoutDirection()==="ltr"?-A:A;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(A){this._scrollTo(A)}_scrollHeader(A){let i=this._tabListContainer.nativeElement.offsetWidth,n=(A=="before"?-1:1)*i/3;return this._scrollTo(this._scrollDistance+n)}_handlePaginatorClick(A){this._stopInterval(),this._scrollHeader(A)}_scrollToLabel(A){if(this.disablePagination)return;let i=this._items?this._items.toArray()[A]:null;if(!i)return;let n=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:o,offsetWidth:r}=i.elementRef.nativeElement,s,a;this._getLayoutDirection()=="ltr"?(s=o,a=s+r):(a=this._tabListInner.nativeElement.offsetWidth-o,s=a-r);let c=this.scrollDistance,g=this.scrollDistance+n;sg&&(this.scrollDistance+=Math.min(a-g,s-c))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{let A=this._tabListInner.nativeElement.scrollWidth,i=this._elementRef.nativeElement.offsetWidth,n=A-i>=5;n||(this.scrollDistance=0),n!==this._showPaginationControls&&(this._showPaginationControls=n,this._changeDetectorRef.markForCheck())}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=this.scrollDistance==0,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){let A=this._tabListInner.nativeElement.scrollWidth,i=this._tabListContainer.nativeElement.offsetWidth;return A-i||0}_alignInkBarToSelectedTab(){let A=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=A?A.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(A,i){i&&i.button!=null&&i.button!==0||(this._stopInterval(),fI(_OA,GOA).pipe(kt(Hn(this._stopScrolling,this._destroyed))).subscribe(()=>{let{maxScrollDistance:n,distance:o}=this._scrollHeader(A);(o===0||o>=n)&&this._stopInterval()}))}_scrollTo(A){if(this.disablePagination)return{maxScrollDistance:0,distance:0};let i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,A)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,inputs:{disablePagination:[2,"disablePagination","disablePagination",ge],selectedIndex:[2,"selectedIndex","selectedIndex",en]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return t})(),UOA=(()=>{class t extends KOA{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new ZK(this._items),super.ngAfterContentInit()}_itemSelected(A){A.preventDefault()}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-tab-header"]],contentQueries:function(i,n,o){if(i&1&&gi(o,TcA,4),i&2){let r;de(r=Be())&&(n._items=r)}},viewQuery:function(i,n){if(i&1&&(st(EOA,7),st(QOA,7),st(uOA,7),st(hOA,5),st(fOA,5)),i&2){let o;de(o=Be())&&(n._tabListContainer=o.first),de(o=Be())&&(n._tabList=o.first),de(o=Be())&&(n._tabListInner=o.first),de(o=Be())&&(n._nextPaginator=o.first),de(o=Be())&&(n._previousPaginator=o.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,n){i&2&&he("mat-mdc-tab-header-pagination-controls-enabled",n._showPaginationControls)("mat-mdc-tab-header-rtl",n._getLayoutDirection()=="rtl")},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",ge]},features:[lt],ngContentSelectors:XK,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"div",5,0),mA("click",function(){return QA(o),uA(n._handlePaginatorClick("before"))})("mousedown",function(s){return QA(o),uA(n._handlePaginatorPress("before",s))})("touchend",function(){return QA(o),uA(n._stopInterval())}),TA(2,"div",6),N(),S(3,"div",7,1),mA("keydown",function(s){return QA(o),uA(n._handleKeydown(s))}),S(5,"div",8,2),mA("cdkObserveContent",function(){return QA(o),uA(n._onContentChanges())}),S(7,"div",9,3),Ue(9),N()()(),S(10,"div",10,4),mA("mousedown",function(s){return QA(o),uA(n._handlePaginatorPress("after",s))})("click",function(){return QA(o),uA(n._handlePaginatorClick("after"))})("touchend",function(){return QA(o),uA(n._stopInterval())}),TA(12,"div",6),N()}i&2&&(he("mat-mdc-tab-header-pagination-disabled",n._disableScrollBefore),yA("matRippleDisabled",n._disableScrollBefore||n.disableRipple),_(3),he("_mat-animation-noopable",n._animationMode==="NoopAnimations"),_(2),Ke("aria-label",n.ariaLabel||null)("aria-labelledby",n.ariaLabelledby||null),_(5),he("mat-mdc-tab-header-pagination-disabled",n._disableScrollAfter),yA("matRippleDisabled",n._disableScrollAfter||n.disableRipple))},dependencies:[Xs,e6],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height, 1px);border-bottom-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-header-divider-height, 1px);border-top-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mdc-secondary-navigation-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}"],encapsulation:2})}return t})(),JOA=new eA("MAT_TABS_CONFIG"),YOA={translateTab:nc("translateTab",[$s("center, void, left-origin-center, right-origin-center",Do({transform:"none",visibility:"visible"})),$s("left",Do({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),$s("right",Do({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),$r("* => left, * => right, left => center, right => center",Is("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),$r("void => left-origin-center",[Do({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),Is("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),$r("void => right-origin-center",[Do({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),Is("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])},TOA=(()=>{class t extends wa{_host=f(HcA);_centeringSub=Kt.EMPTY;_leavingSub=Kt.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(On(this._host._isCenterPosition(this._host._position))).subscribe(A=>{this._host._content&&A&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matTabBodyHost",""]],features:[lt]})}return t})(),HcA=(()=>{class t{_elementRef=f(se);_dir=f(po,{optional:!0});_positionIndex;_dirChangeSubscription=Kt.EMPTY;_position;_translateTabComplete=new qA;_onCentering=new YA;_beforeCentering=new YA;_afterLeavingCenter=new YA;_onCentered=new YA(!0);_portalHost;_content;origin;animationDuration="500ms";preserveContent=!1;set position(A){this._positionIndex=A,this._computePositionAnimationState()}constructor(){if(this._dir){let A=f(Et);this._dirChangeSubscription=this._dir.change.subscribe(i=>{this._computePositionAnimationState(i),A.markForCheck()})}this._translateTabComplete.subscribe(A=>{this._isCenterPosition(A.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(A.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}ngOnInit(){this._position=="center"&&this.origin!=null&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(A){let i=this._isCenterPosition(A.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_isCenterPosition(A){return A=="center"||A=="left-origin-center"||A=="right-origin-center"}_computePositionAnimationState(A=this._getLayoutDirection()){this._positionIndex<0?this._position=A=="ltr"?"left":"right":this._positionIndex>0?this._position=A=="ltr"?"right":"left":this._position="center"}_computePositionFromOrigin(A){let i=this._getLayoutDirection();return i=="ltr"&&A<=0||i=="rtl"&&A>0?"left-origin-center":"right-origin-center"}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-tab-body"]],viewQuery:function(i,n){if(i&1&&st(wa,5),i&2){let o;de(o=Be())&&(n._portalHost=o.first)}},hostAttrs:[1,"mat-mdc-tab-body"],inputs:{_content:[0,"content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(i,n){if(i&1){let o=me();S(0,"div",1,0),mA("@translateTab.start",function(s){return QA(o),uA(n._onTranslateTabStarted(s))})("@translateTab.done",function(s){return QA(o),uA(n._translateTabComplete.next(s))}),FA(2,DOA,0,0,"ng-template",2),N()}i&2&&yA("@translateTab",Bg(3,pOA,n._position,vc(1,mOA,n.animationDuration)))},dependencies:[TOA,k0],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[YOA.translateTab]}})}return t})(),HOA=!0,M7=(()=>{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_animationMode=f(_i,{optional:!0});_allTabs;_tabBodyWrapper;_tabHeader;_tabs=new qa;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;_tabsSubscription=Kt.EMPTY;_tabLabelSubscription=Kt.EMPTY;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(A){this._fitInkBarToContent=A,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(A){this._indexToSelect=isNaN(A)?null:A}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(A){let i=A+"";this._animationDuration=/^\d+$/.test(i)?A+"ms":i}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(A){this._contentTabIndex=isNaN(A)?null:A}_contentTabIndex;disablePagination=!1;disableRipple=!1;preserveContent=!1;get backgroundColor(){return this._backgroundColor}set backgroundColor(A){if(!HOA)throw new Error("mat-tab-group background color must be set through the Sass theming API");let i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),A&&i.add("mat-tabs-with-background",`mat-background-${A}`),this._backgroundColor=A}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new YA;focusChange=new YA;animationDone=new YA;selectedTabChange=new YA(!0);_groupId;_isServer=!f(ni).isBrowser;constructor(){let A=f(JOA,{optional:!0});this._groupId=f(an).getId("mat-tab-group-"),this.animationDuration=A&&A.animationDuration?A.animationDuration:"500ms",this.disablePagination=A&&A.disablePagination!=null?A.disablePagination:!1,this.dynamicHeight=A&&A.dynamicHeight!=null?A.dynamicHeight:!1,A?.contentTabIndex!=null&&(this.contentTabIndex=A.contentTabIndex),this.preserveContent=!!A?.preserveContent,this.fitInkBarToContent=A&&A.fitInkBarToContent!=null?A.fitInkBarToContent:!1,this.stretchTabs=A&&A.stretchTabs!=null?A.stretchTabs:!0,this.alignTabs=A&&A.alignTabs!=null?A.alignTabs:null}ngAfterContentChecked(){let A=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=A){let i=this._selectedIndex==null;if(!i){this.selectedTabChange.emit(this._createChangeEvent(A));let n=this._tabBodyWrapper.nativeElement;n.style.minHeight=n.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((n,o)=>n.isActive=o===A),i||(this.selectedIndexChange.emit(A),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,n)=>{i.position=n-A,this._selectedIndex!=null&&i.position==0&&!i.origin&&(i.origin=A-this._selectedIndex)}),this._selectedIndex!==A&&(this._selectedIndex=A,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{let A=this._clampTabIndex(this._indexToSelect);if(A===this._selectedIndex){let i=this._tabs.toArray(),n;for(let o=0;o{i[A].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(A))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(On(this._allTabs)).subscribe(A=>{this._tabs.reset(A.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(A){let i=this._tabHeader;i&&(i.focusIndex=A)}_focusChanged(A){this._lastFocusedTabIndex=A,this.focusChange.emit(this._createChangeEvent(A))}_createChangeEvent(A){let i=new WK;return i.index=A,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[A]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=Hn(...this._tabs.map(A=>A._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(A){return Math.min(this._tabs.length-1,Math.max(A||0,0))}_getTabLabelId(A){return`${this._groupId}-label-${A}`}_getTabContentId(A){return`${this._groupId}-content-${A}`}_setTabBodyWrapperHeight(A){if(!this.dynamicHeight||!this._tabBodyWrapperHeight)return;let i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=A+"px")}_removeTabBodyWrapperHeight(){let A=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=A.clientHeight,A.style.height="",this.animationDone.emit()}_handleClick(A,i,n){i.focusIndex=n,A.disabled||(this.selectedIndex=n)}_getTabIndex(A){let i=this._lastFocusedTabIndex??this.selectedIndex;return A===i?0:-1}_tabFocusChanged(A,i){A&&A!=="mouse"&&A!=="touch"&&(this._tabHeader.focusIndex=i)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-tab-group"]],contentQueries:function(i,n,o){if(i&1&&gi(o,vf,5),i&2){let r;de(r=Be())&&(n._allTabs=r)}},viewQuery:function(i,n){if(i&1&&(st(wOA,5),st(yOA,5)),i&2){let o;de(o=Be())&&(n._tabBodyWrapper=o.first),de(o=Be())&&(n._tabHeader=o.first)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(i,n){i&2&&(Ke("mat-align-tabs",n.alignTabs),Ro("mat-"+(n.color||"primary")),mo("--mat-tab-animation-duration",n.animationDuration),he("mat-mdc-tab-group-dynamic-height",n.dynamicHeight)("mat-mdc-tab-group-inverted-header",n.headerPosition==="below")("mat-mdc-tab-group-stretch-tabs",n.stretchTabs))},inputs:{color:"color",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",ge],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",ge],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",ge],selectedIndex:[2,"selectedIndex","selectedIndex",en],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",en],disablePagination:[2,"disablePagination","disablePagination",ge],disableRipple:[2,"disableRipple","disableRipple",ge],preserveContent:[2,"preserveContent","preserveContent",ge],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[ut([{provide:YcA,useExisting:t}])],ngContentSelectors:XK,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","mat-mdc-tab-body-active","class","content","position","origin","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","id","content","position","origin","animationDuration","preserveContent"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"mat-tab-header",3,0),mA("indexFocused",function(s){return QA(o),uA(n._focusChanged(s))})("selectFocusedIndex",function(s){return QA(o),uA(n.selectedIndex=s)}),dn(2,kOA,8,17,"div",4,zn),N(),FA(4,SOA,1,0),S(5,"div",5,1),dn(7,ROA,1,13,"mat-tab-body",6,zn),N()}i&2&&(yA("selectedIndex",n.selectedIndex||0)("disableRipple",n.disableRipple)("disablePagination",n.disablePagination)("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby),_(2),Bn(n._tabs),_(2),_A(n._isServer?4:-1),_(),he("_mat-animation-noopable",n._animationMode==="NoopAnimations"),_(2),Bn(n._tabs))},dependencies:[UOA,TcA,Mz,Xs,wa,HcA],styles:['.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mdc-secondary-navigation-tab-container-height, 48px);font-family:var(--mat-tab-header-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-header-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-header-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-header-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-header-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-tab-indicator-active-indicator-height, 2px);border-radius:var(--mdc-tab-indicator-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2})}return t})(),WK=class{index;tab};var b7=new eA("LOGO_COMPONENT");function OOA(t,e){t&1&&TA(0,"div",6)}function zOA(t,e){if(t&1&&(S(0,"div",3)(1,"div",5),dn(2,OOA,1,0,"div",6,AB),N(),S(4,"span",7),AA(5),N(),S(6,"div",8),AA(7),S(8,"span",9),AA(9),N()(),S(10,"div",10)(11,"div",11),AA(12),N()()()),t&2){let A=e.$implicit,i=Y();_(2),Bn(i.getArray(A.level)),_(3),Bt(" ",i.getSpanIcon(A.span.name)," "),_(),mo("width",400-A.level*20,"px"),_(),Bt(" ",A.span.name," "),_(2),Bt(" (",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms) "),_(2),mo("left",i.getRelativeStart(A.span),"%")("width",i.getRelativeWidth(A.span),"%"),_(),Bt(" ",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms ")}}var k7=class t{constructor(e,A){this.dialogRef=e;this.data=A}tree=[];baseStartTimeMs=0;totalDurationMs=1;flatTree=[];traceLabelIconMap=new Map([["Invocation","start"],["agent_run","directions_run"],["invoke_agent","directions_run"],["tool","build"],["call_llm","chat"]]);ngOnInit(){this.tree=this.buildSpanTree(this.data.spans),this.flatTree=this.flattenTree(this.tree);let e=this.getGlobalTimes(this.data.spans);this.baseStartTimeMs=e.start,this.totalDurationMs=e.duration}buildSpanTree(e){let A=e.map(o=>sA({},o)),i=new Map,n=[];return A.forEach(o=>i.set(o.span_id,o)),A.forEach(o=>{if(o.parent_span_id&&i.has(o.parent_span_id)){let r=i.get(o.parent_span_id);r.children=r.children||[],r.children.push(o)}else n.push(o)}),n}getGlobalTimes(e){let A=Math.min(...e.map(n=>this.toMs(n.start_time))),i=Math.max(...e.map(n=>this.toMs(n.end_time)));return{start:A,duration:i-A}}toMs(e){return e/1e6}getRelativeStart(e){return(this.toMs(e.start_time)-this.baseStartTimeMs)/this.totalDurationMs*100}getRelativeWidth(e){return(this.toMs(e.end_time)-this.toMs(e.start_time))/this.totalDurationMs*100}flattenTree(e,A=0){return e.flatMap(n=>[{span:n,level:A},...n.children?this.flattenTree(n.children,A+1):[]])}getSpanIcon(e){for(let[A,i]of this.traceLabelIconMap.entries())if(e.startsWith(A))return i;return"start"}getArray(e){return Array.from({length:e})}static \u0275fac=function(A){return new(A||t)(Ge(fr),Ge(Cs))};static \u0275cmp=jA({type:t,selectors:[["app-trace-chart"]],decls:9,vars:1,consts:[["mat-dialog-title",""],[2,"margin-top","8px"],[1,"trace-container"],[1,"trace-row"],["mat-button","","mat-dialog-close",""],[1,"trace-indent"],[1,"indent-connector"],[1,"material-symbols-outlined",2,"margin-right","8px"],[1,"trace-label"],[1,"trace-duration"],[1,"trace-bar-container"],[1,"trace-bar"]],template:function(A,i){A&1&&(S(0,"h2",0),AA(1),N(),S(2,"mat-dialog-content",1)(3,"div",2),dn(4,zOA,13,10,"div",3,zn),N()(),S(6,"mat-dialog-actions")(7,"button",4),AA(8,"Close"),N()()),A&2&&(_(),Bt("Invocation ",i.data.invocId,""),_(3),Bn(i.flatTree))},dependencies:[Ls,ya,va,dr,bl],styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-label[_ngcontent-%COMP%]{width:400px;color:var(--trace-chart-trace-label-color);text-overflow:ellipsis;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px}.trace-bar-container[_ngcontent-%COMP%]{width:50vw;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:var(--trace-chart-trace-bar-background-color);border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:var(--trace-chart-trace-bar-color);font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:var(--trace-chart-trace-duration-color);font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:var(--trace-chart-vertical-line-background-color)}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:var(--trace-chart-horizontal-line-background-color)}"]})};var POA=["button"],jOA=["*"];function qOA(t,e){if(t&1&&(S(0,"div",2),TA(1,"mat-pseudo-checkbox",6),N()),t&2){let A=Y();_(),yA("disabled",A.disabled)}}var OcA=new eA("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:VOA});function VOA(){return{hideSingleSelectionIndicator:!1,hideMultipleSelectionIndicator:!1,disabledInteractive:!1}}var zcA=new eA("MatButtonToggleGroup"),ZOA={provide:bc,useExisting:Ur(()=>AU),multi:!0},S7=class{source;value;constructor(e,A){this.source=e,this.value=A}},AU=(()=>{class t{_changeDetector=f(Et);_dir=f(po,{optional:!0});_multiple=!1;_disabled=!1;_disabledInteractive=!1;_selectionModel;_rawValue;_controlValueAccessorChangeFn=()=>{};_onTouched=()=>{};_buttonToggles;appearance;get name(){return this._name}set name(A){this._name=A,this._markButtonsForCheck()}_name=f(an).getId("mat-button-toggle-group-");vertical;get value(){let A=this._selectionModel?this._selectionModel.selected:[];return this.multiple?A.map(i=>i.value):A[0]?A[0].value:void 0}set value(A){this._setSelectionByValue(A),this.valueChange.emit(this.value)}valueChange=new YA;get selected(){let A=this._selectionModel?this._selectionModel.selected:[];return this.multiple?A:A[0]||null}get multiple(){return this._multiple}set multiple(A){this._multiple=A,this._markButtonsForCheck()}get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._markButtonsForCheck()}get disabledInteractive(){return this._disabledInteractive}set disabledInteractive(A){this._disabledInteractive=A,this._markButtonsForCheck()}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}change=new YA;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(A){this._hideSingleSelectionIndicator=A,this._markButtonsForCheck()}_hideSingleSelectionIndicator;get hideMultipleSelectionIndicator(){return this._hideMultipleSelectionIndicator}set hideMultipleSelectionIndicator(A){this._hideMultipleSelectionIndicator=A,this._markButtonsForCheck()}_hideMultipleSelectionIndicator;constructor(){let A=f(OcA,{optional:!0});this.appearance=A&&A.appearance?A.appearance:"standard",this.hideSingleSelectionIndicator=A?.hideSingleSelectionIndicator??!1,this.hideMultipleSelectionIndicator=A?.hideMultipleSelectionIndicator??!1}ngOnInit(){this._selectionModel=new P2(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(A=>A.checked)),this.multiple||this._initializeTabIndex()}writeValue(A){this.value=A,this._changeDetector.markForCheck()}registerOnChange(A){this._controlValueAccessorChangeFn=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A}_keydown(A){if(this.multiple||this.disabled)return;let n=A.target.id,o=this._buttonToggles.toArray().findIndex(s=>s.buttonId===n),r=null;switch(A.keyCode){case 32:case 13:r=this._buttonToggles.get(o)||null;break;case 38:r=this._getNextButton(o,-1);break;case 37:r=this._getNextButton(o,this.dir==="ltr"?-1:1);break;case 40:r=this._getNextButton(o,1);break;case 39:r=this._getNextButton(o,this.dir==="ltr"?1:-1);break;default:return}r&&(A.preventDefault(),r._onButtonClick(),r.focus())}_emitChangeEvent(A){let i=new S7(A,this.value);this._rawValue=i.value,this._controlValueAccessorChangeFn(i.value),this.change.emit(i)}_syncButtonToggle(A,i,n=!1,o=!1){!this.multiple&&this.selected&&!A.checked&&(this.selected.checked=!1),this._selectionModel?i?this._selectionModel.select(A):this._selectionModel.deselect(A):o=!0,o?Promise.resolve().then(()=>this._updateModelValue(A,n)):this._updateModelValue(A,n)}_isSelected(A){return this._selectionModel&&this._selectionModel.isSelected(A)}_isPrechecked(A){return typeof this._rawValue>"u"?!1:this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some(i=>A.value!=null&&i===A.value):A.value===this._rawValue}_initializeTabIndex(){if(this._buttonToggles.forEach(A=>{A.tabIndex=-1}),this.selected)this.selected.tabIndex=0;else for(let A=0;Athis._selectValue(n,i))):(this._clearSelection(),this._selectValue(A,i)),!this.multiple&&i.every(n=>n.tabIndex===-1)){for(let n of i)if(!n.disabled){n.tabIndex=0;break}}}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(A=>{A.checked=!1,this.multiple||(A.tabIndex=-1)})}_selectValue(A,i){for(let n of i)if(n.value===A){n.checked=!0,this._selectionModel.select(n),this.multiple||(n.tabIndex=0);break}}_updateModelValue(A,i){i&&this._emitChangeEvent(A),this.valueChange.emit(this.value)}_markButtonsForCheck(){this._buttonToggles?.forEach(A=>A._markForCheck())}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["mat-button-toggle-group"]],contentQueries:function(i,n,o){if(i&1&&gi(o,eU,5),i&2){let r;de(r=Be())&&(n._buttonToggles=r)}},hostAttrs:[1,"mat-button-toggle-group"],hostVars:6,hostBindings:function(i,n){i&1&&mA("keydown",function(r){return n._keydown(r)}),i&2&&(Ke("role",n.multiple?"group":"radiogroup")("aria-disabled",n.disabled),he("mat-button-toggle-vertical",n.vertical)("mat-button-toggle-group-appearance-standard",n.appearance==="standard"))},inputs:{appearance:"appearance",name:"name",vertical:[2,"vertical","vertical",ge],value:"value",multiple:[2,"multiple","multiple",ge],disabled:[2,"disabled","disabled",ge],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",ge],hideMultipleSelectionIndicator:[2,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",ge]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],features:[ut([ZOA,{provide:zcA,useExisting:t}])]})}return t})(),eU=(()=>{class t{_changeDetectorRef=f(Et);_elementRef=f(se);_focusMonitor=f(Jr);_idGenerator=f(an);_animationMode=f(_i,{optional:!0});_checked=!1;ariaLabel;ariaLabelledby=null;_buttonElement;buttonToggleGroup;get buttonId(){return`${this.id}-button`}id;name;value;get tabIndex(){return this._tabIndex}set tabIndex(A){A!==this._tabIndex&&(this._tabIndex=A,this._markForCheck())}_tabIndex;disableRipple;get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(A){this._appearance=A}_appearance;get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(A){A!==this._checked&&(this._checked=A,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(A){this._disabled=A}_disabled=!1;get disabledInteractive(){return this._disabledInteractive||this.buttonToggleGroup!==null&&this.buttonToggleGroup.disabledInteractive}set disabledInteractive(A){this._disabledInteractive=A}_disabledInteractive;change=new YA;constructor(){f(Pn).load(Yr);let A=f(zcA,{optional:!0}),i=f(new Wr("tabindex"),{optional:!0})||"",n=f(OcA,{optional:!0});this._tabIndex=parseInt(i)||0,this.buttonToggleGroup=A,this.appearance=n&&n.appearance?n.appearance:"standard",this.disabledInteractive=n?.disabledInteractive??!1}ngOnInit(){let A=this.buttonToggleGroup;this.id=this.id||this._idGenerator.getId("mat-button-toggle-"),A&&(A._isPrechecked(this)?this.checked=!0:A._isSelected(this)!==this._checked&&A._syncButtonToggle(this,this._checked))}ngAfterViewInit(){this._animationMode!=="NoopAnimations"&&this._elementRef.nativeElement.classList.add("mat-button-toggle-animations-enabled"),this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){let A=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),A&&A._isSelected(this)&&A._syncButtonToggle(this,!1,!1,!0)}focus(A){this._buttonElement.nativeElement.focus(A)}_onButtonClick(){if(this.disabled)return;let A=this.isSingleSelector()?!0:!this._checked;if(A!==this._checked&&(this._checked=A,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.isSingleSelector()){let i=this.buttonToggleGroup._buttonToggles.find(n=>n.tabIndex===0);i&&(i.tabIndex=-1),this.tabIndex=0}this.change.emit(new S7(this,this.value))}_markForCheck(){this._changeDetectorRef.markForCheck()}_getButtonName(){return this.isSingleSelector()?this.buttonToggleGroup.name:this.name||null}isSingleSelector(){return this.buttonToggleGroup&&!this.buttonToggleGroup.multiple}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-button-toggle"]],viewQuery:function(i,n){if(i&1&&st(POA,5),i&2){let o;de(o=Be())&&(n._buttonElement=o.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:14,hostBindings:function(i,n){i&1&&mA("focus",function(){return n.focus()}),i&2&&(Ke("aria-label",null)("aria-labelledby",null)("id",n.id)("name",null),he("mat-button-toggle-standalone",!n.buttonToggleGroup)("mat-button-toggle-checked",n.checked)("mat-button-toggle-disabled",n.disabled)("mat-button-toggle-disabled-interactive",n.disabledInteractive)("mat-button-toggle-appearance-standard",n.appearance==="standard"))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[2,"disableRipple","disableRipple",ge],appearance:"appearance",checked:[2,"checked","checked",ge],disabled:[2,"disabled","disabled",ge],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge]},outputs:{change:"change"},exportAs:["matButtonToggle"],ngContentSelectors:jOA,decls:7,vars:13,consts:[["button",""],["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"click","id","disabled"],[1,"mat-button-toggle-checkbox-wrapper"],[1,"mat-button-toggle-label-content"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"],["state","checked","aria-hidden","true","appearance","minimal",3,"disabled"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"button",1,0),mA("click",function(){return QA(o),uA(n._onButtonClick())}),FA(2,qOA,2,1,"div",2),S(3,"span",3),Ue(4),N()(),TA(5,"span",4)(6,"span",5)}if(i&2){let o=Cr(1);yA("id",n.buttonId)("disabled",n.disabled&&!n.disabledInteractive||null),Ke("role",n.isSingleSelector()?"radio":"button")("tabindex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("aria-pressed",n.isSingleSelector()?null:n.checked)("aria-checked",n.isSingleSelector()?n.checked:null)("name",n._getButtonName())("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),_(2),_A(n.buttonToggleGroup&&(!n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideSingleSelectionIndicator||n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideMultipleSelectionIndicator)?2:-1),_(4),yA("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)}},dependencies:[Xs,Lk],styles:[".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0);border-radius:var(--mat-legacy-button-toggle-shape)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}@media(forced-colors: active){.mat-button-toggle-standalone,.mat-button-toggle-group{outline:solid 1px}}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,.mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}@media(forced-colors: active){.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{outline:0}}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-legacy-button-toggle-text-color);font-family:var(--mat-legacy-button-toggle-label-text-font);font-size:var(--mat-legacy-button-toggle-label-text-size);line-height:var(--mat-legacy-button-toggle-label-text-line-height);font-weight:var(--mat-legacy-button-toggle-label-text-weight);letter-spacing:var(--mat-legacy-button-toggle-label-text-tracking);--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-legacy-button-toggle-selected-state-text-color)}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-legacy-button-toggle-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle-checkbox-wrapper{display:inline-block;justify-content:flex-start;align-items:center;width:0;height:18px;line-height:18px;overflow:hidden;box-sizing:border-box;position:absolute;top:50%;left:16px;transform:translate3d(0, -50%, 0)}[dir=rtl] .mat-button-toggle-checkbox-wrapper{left:auto;right:16px}.mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:12px}[dir=rtl] .mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:auto;right:12px}.mat-button-toggle-checked .mat-button-toggle-checkbox-wrapper{width:18px}.mat-button-toggle-animations-enabled .mat-button-toggle-checkbox-wrapper{transition:width 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-checkbox-wrapper{transition:none}.mat-button-toggle-checked{color:var(--mat-legacy-button-toggle-selected-state-text-color);background-color:var(--mat-legacy-button-toggle-selected-state-background-color)}.mat-button-toggle-disabled{pointer-events:none;color:var(--mat-legacy-button-toggle-disabled-state-text-color);background-color:var(--mat-legacy-button-toggle-disabled-state-background-color);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-legacy-button-toggle-disabled-state-text-color)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-legacy-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-disabled-interactive{pointer-events:auto}.mat-button-toggle-appearance-standard{color:var(--mat-standard-button-toggle-text-color, var(--mat-sys-on-surface));background-color:var(--mat-standard-button-toggle-background-color, transparent);font-family:var(--mat-standard-button-toggle-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-standard-button-toggle-label-text-size, var(--mat-sys-label-large-size));line-height:var(--mat-standard-button-toggle-label-text-line-height, var(--mat-sys-label-large-line-height));font-weight:var(--mat-standard-button-toggle-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mat-standard-button-toggle-label-text-tracking, var(--mat-sys-label-large-tracking))}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container));background-color:var(--mat-standard-button-toggle-selected-state-background-color, var(--mat-sys-secondary-container))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-standard-button-toggle-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-state-background-color, transparent)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-selected-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-standard-button-toggle-state-layer-color, var(--mat-sys-on-surface))}.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-button-toggle-appearance-standard.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}@media(hover: none){.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-legacy-button-toggle-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-standard-button-toggle-height, 40px)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-legacy-button-toggle-state-layer-color)}@media(forced-colors: active){.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-animations-enabled .mat-button-toggle-button{transition:padding 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-button{transition:none}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}.mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:30px}[dir=rtl] .mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:0;padding-right:30px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{--mat-focus-indicator-border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}"],encapsulation:2,changeDetection:0})}return t})();var WOA=["*"],XOA='.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item{display:flex;position:relative;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer;padding-left:16px;padding-right:16px;background-color:var(--mdc-list-list-item-container-color, transparent);border-radius:var(--mdc-list-list-item-container-shape, var(--mat-sys-corner-none))}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item:focus{outline:0}.mdc-list-item.mdc-list-item--disabled{cursor:auto}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mdc-list-list-item-one-line-container-height, 48px)}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mdc-list-list-item-two-line-container-height, 64px)}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height, 88px)}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--selected::before,.mdc-list-item.mdc-list-item--selected:focus::before,.mdc-list-item:not(.mdc-list-item--selected):focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;content:"";pointer-events:none}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color, var(--mat-sys-on-surface-variant));width:var(--mdc-list-list-item-leading-icon-size, 24px);height:var(--mdc-list-list-item-leading-icon-size, 24px);margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mdc-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size, 40px);height:var(--mdc-list-list-item-leading-avatar-size, 40px);margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item--with-leading-avatar .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font, var(--mat-sys-label-small-font));line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height, var(--mat-sys-label-small-line-height));font-size:var(--mdc-list-list-item-trailing-supporting-text-size, var(--mat-sys-label-small-size));font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight, var(--mat-sys-label-small-weight));letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking, var(--mat-sys-label-small-tracking))}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color, var(--mat-sys-on-surface-variant));width:var(--mdc-list-list-item-trailing-icon-size, 24px);height:var(--mdc-list-list-item-trailing-icon-size, 24px)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color, var(--mat-sys-on-surface-variant))}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color, var(--mat-sys-primary))}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:var(--mdc-list-list-item-label-text-color, var(--mat-sys-on-surface));font-family:var(--mdc-list-list-item-label-text-font, var(--mat-sys-body-large-font));line-height:var(--mdc-list-list-item-label-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mdc-list-list-item-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-list-list-item-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-list-list-item-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;color:var(--mdc-list-list-item-supporting-text-color, var(--mat-sys-on-surface-variant));font-family:var(--mdc-list-list-item-supporting-text-font, var(--mat-sys-body-medium-font));line-height:var(--mdc-list-list-item-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mdc-list-list-item-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mdc-list-list-item-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mdc-list-list-item-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:16px}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:16px;padding-right:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-trailing-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:0;padding-right:0}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-webkit-user-select:none;user-select:none;margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;line-height:normal;align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-left:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-right:0}.mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-group__subheader{margin:.75rem 16px}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text{opacity:var(--mdc-list-list-item-disabled-label-text-opacity, 0.3)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-disabled-leading-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-leading-icon-opacity, 0.38)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-disabled-trailing-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity, 0.38)}.mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing,[dir=rtl] .mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing{padding-left:0;padding-right:0}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mdc-list-list-item-disabled-label-text-opacity, 0.3)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mdc-list-list-item-leading-avatar-shape, var(--mat-sys-corner-full));background-color:var(--mdc-list-list-item-leading-avatar-color, var(--mat-sys-primary-container))}.mat-mdc-list-item-icon{font-size:var(--mdc-list-list-item-leading-icon-size, 24px)}@media(forced-colors: active){a.mdc-list-item--activated::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:"";opacity:0;pointer-events:none;border-radius:inherit}.mat-mdc-list-item>.mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-focus-indicator::before{content:""}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:start}mat-action-list button::-moz-focus-inner{border:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-inline-start:var(--mat-list-list-item-leading-icon-start-space, 16px);margin-inline-end:var(--mat-list-list-item-leading-icon-end-space, 16px)}.mat-mdc-nav-list .mat-mdc-list-item{border-radius:var(--mat-list-active-indicator-shape, var(--mat-sys-corner-full));--mat-focus-indicator-border-radius:var(--mat-list-active-indicator-shape, var(--mat-sys-corner-full))}.mat-mdc-nav-list .mat-mdc-list-item.mdc-list-item--activated{background-color:var(--mat-list-active-indicator-color, var(--mat-sys-secondary-container))}',$OA=["unscopedContent"],AzA=["text"],ezA=[[["","matListItemAvatar",""],["","matListItemIcon",""]],[["","matListItemTitle",""]],[["","matListItemLine",""]],"*",[["","matListItemMeta",""]],[["mat-divider"]]],tzA=["[matListItemAvatar],[matListItemIcon]","[matListItemTitle]","[matListItemLine]","*","[matListItemMeta]","mat-divider"];var izA=new eA("ListOption"),nzA=(()=>{class t{_elementRef=f(se);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matListItemTitle",""]],hostAttrs:[1,"mat-mdc-list-item-title","mdc-list-item__primary-text"]})}return t})(),ozA=(()=>{class t{_elementRef=f(se);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matListItemLine",""]],hostAttrs:[1,"mat-mdc-list-item-line","mdc-list-item__secondary-text"]})}return t})(),rzA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matListItemMeta",""]],hostAttrs:[1,"mat-mdc-list-item-meta","mdc-list-item__end"]})}return t})(),PcA=(()=>{class t{_listOption=f(izA,{optional:!0});constructor(){}_isAlignedAtStart(){return!this._listOption||this._listOption?._getTogglePosition()==="after"}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,hostVars:4,hostBindings:function(i,n){i&2&&he("mdc-list-item__start",n._isAlignedAtStart())("mdc-list-item__end",!n._isAlignedAtStart())}})}return t})(),szA=(()=>{class t extends PcA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matListItemAvatar",""]],hostAttrs:[1,"mat-mdc-list-item-avatar"],features:[lt]})}return t})(),azA=(()=>{class t extends PcA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matListItemIcon",""]],hostAttrs:[1,"mat-mdc-list-item-icon"],features:[lt]})}return t})(),czA=new eA("MAT_LIST_CONFIG"),tU=(()=>{class t{_isNonInteractive=!0;get disableRipple(){return this._disableRipple}set disableRipple(A){this._disableRipple=Ar(A)}_disableRipple=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=Ar(A)}_disabled=!1;_defaultOptions=f(czA,{optional:!0});static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,hostVars:1,hostBindings:function(i,n){i&2&&Ke("aria-disabled",n.disabled)},inputs:{disableRipple:"disableRipple",disabled:"disabled"}})}return t})(),gzA=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);_listBase=f(tU,{optional:!0});_platform=f(ni);_hostElement;_isButtonElement;_noopAnimations;_avatars;_icons;set lines(A){this._explicitLines=Zs(A,null),this._updateItemLines(!1)}_explicitLines=null;get disableRipple(){return this.disabled||this._disableRipple||this._noopAnimations||!!this._listBase?.disableRipple}set disableRipple(A){this._disableRipple=Ar(A)}_disableRipple=!1;get disabled(){return this._disabled||!!this._listBase?.disabled}set disabled(A){this._disabled=Ar(A)}_disabled=!1;_subscriptions=new Kt;_rippleRenderer=null;_hasUnscopedTextContent=!1;rippleConfig;get rippleDisabled(){return this.disableRipple||!!this.rippleConfig.disabled}constructor(){f(Pn).load(Yr);let A=f(ZI,{optional:!0}),i=f(_i,{optional:!0});this.rippleConfig=A||{},this._hostElement=this._elementRef.nativeElement,this._isButtonElement=this._hostElement.nodeName.toLowerCase()==="button",this._noopAnimations=i==="NoopAnimations",this._listBase&&!this._listBase._isNonInteractive&&this._initInteractiveListItem(),this._isButtonElement&&!this._hostElement.hasAttribute("type")&&this._hostElement.setAttribute("type","button")}ngAfterViewInit(){this._monitorProjectedLinesAndTitle(),this._updateItemLines(!0)}ngOnDestroy(){this._subscriptions.unsubscribe(),this._rippleRenderer!==null&&this._rippleRenderer._removeTriggerEvents()}_hasIconOrAvatar(){return!!(this._avatars.length||this._icons.length)}_initInteractiveListItem(){this._hostElement.classList.add("mat-mdc-list-item-interactive"),this._rippleRenderer=new EB(this,this._ngZone,this._hostElement,this._platform,f(Zt)),this._rippleRenderer.setupTriggerEvents(this._hostElement)}_monitorProjectedLinesAndTitle(){this._ngZone.runOutsideAngular(()=>{this._subscriptions.add(Hn(this._lines.changes,this._titles.changes).subscribe(()=>this._updateItemLines(!1)))})}_updateItemLines(A){if(!this._lines||!this._titles||!this._unscopedContent)return;A&&this._checkDomForUnscopedTextContent();let i=this._explicitLines??this._inferLinesFromContent(),n=this._unscopedContent.nativeElement;if(this._hostElement.classList.toggle("mat-mdc-list-item-single-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-one-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-two-lines",i===2),this._hostElement.classList.toggle("mdc-list-item--with-three-lines",i===3),this._hasUnscopedTextContent){let o=this._titles.length===0&&i===1;n.classList.toggle("mdc-list-item__primary-text",o),n.classList.toggle("mdc-list-item__secondary-text",!o)}else n.classList.remove("mdc-list-item__primary-text"),n.classList.remove("mdc-list-item__secondary-text")}_inferLinesFromContent(){let A=this._titles.length+this._lines.length;return this._hasUnscopedTextContent&&(A+=1),A}_checkDomForUnscopedTextContent(){this._hasUnscopedTextContent=Array.from(this._unscopedContent.nativeElement.childNodes).filter(A=>A.nodeType!==A.COMMENT_NODE).some(A=>!!(A.textContent&&A.textContent.trim()))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,contentQueries:function(i,n,o){if(i&1&&(gi(o,szA,4),gi(o,azA,4)),i&2){let r;de(r=Be())&&(n._avatars=r),de(r=Be())&&(n._icons=r)}},hostVars:4,hostBindings:function(i,n){i&2&&(Ke("aria-disabled",n.disabled)("disabled",n._isButtonElement&&n.disabled||null),he("mdc-list-item--disabled",n.disabled))},inputs:{lines:"lines",disableRipple:"disableRipple",disabled:"disabled"}})}return t})();var jcA=(()=>{class t extends tU{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-list"]],hostAttrs:[1,"mat-mdc-list","mat-mdc-list-base","mdc-list"],exportAs:["matList"],features:[ut([{provide:tU,useExisting:t}]),lt],ngContentSelectors:WOA,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},styles:[XOA],encapsulation:2,changeDetection:0})}return t})(),qcA=(()=>{class t extends gzA{_lines;_titles;_meta;_unscopedContent;_itemText;get activated(){return this._activated}set activated(A){this._activated=Ar(A)}_activated=!1;_getAriaCurrent(){return this._hostElement.nodeName==="A"&&this._activated?"page":null}_hasBothLeadingAndTrailing(){return this._meta.length!==0&&(this._avatars.length!==0||this._icons.length!==0)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-list-item"],["a","mat-list-item",""],["button","mat-list-item",""]],contentQueries:function(i,n,o){if(i&1&&(gi(o,ozA,5),gi(o,nzA,5),gi(o,rzA,5)),i&2){let r;de(r=Be())&&(n._lines=r),de(r=Be())&&(n._titles=r),de(r=Be())&&(n._meta=r)}},viewQuery:function(i,n){if(i&1&&(st($OA,5),st(AzA,5)),i&2){let o;de(o=Be())&&(n._unscopedContent=o.first),de(o=Be())&&(n._itemText=o.first)}},hostAttrs:[1,"mat-mdc-list-item","mdc-list-item"],hostVars:13,hostBindings:function(i,n){i&2&&(Ke("aria-current",n._getAriaCurrent()),he("mdc-list-item--activated",n.activated)("mdc-list-item--with-leading-avatar",n._avatars.length!==0)("mdc-list-item--with-leading-icon",n._icons.length!==0)("mdc-list-item--with-trailing-meta",n._meta.length!==0)("mat-mdc-list-item-both-leading-and-trailing",n._hasBothLeadingAndTrailing())("_mat-animation-noopable",n._noopAnimations))},inputs:{activated:"activated"},exportAs:["matListItem"],features:[lt],ngContentSelectors:tzA,decls:10,vars:0,consts:[["unscopedContent",""],[1,"mdc-list-item__content"],[1,"mat-mdc-list-item-unscoped-content",3,"cdkObserveContent"],[1,"mat-focus-indicator"]],template:function(i,n){if(i&1){let o=me();$t(ezA),Ue(0),S(1,"span",1),Ue(2,1),Ue(3,2),S(4,"span",2,0),mA("cdkObserveContent",function(){return QA(o),uA(n._updateItemLines(!0))}),Ue(6,3),N()(),Ue(7,4),Ue(8,5),TA(9,"div",3)}},dependencies:[e6],encapsulation:2,changeDetection:0})}return t})();var R7=class t{transform(e){if(e)return e.find(A=>A.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in A.attributes)?.attributes["gcp.vertex.agent.invocation_id"]}static \u0275fac=function(A){return new(A||t)};static \u0275pipe=$d({name:"invocId",type:t,pure:!0})};function lzA(t,e){t&1&&(S(0,"p"),AA(1,"Conversations"),N())}function IzA(t,e){t&1&&(S(0,"p"),AA(1,"Trace"),N())}function CzA(t,e){t&1&&(S(0,"mat-button-toggle",7),AA(1,"Trace"),N())}function dzA(t,e){if(t&1){let A=me();S(0,"mat-button-toggle-group",5),Xa("ngModelChange",function(n){QA(A);let o=Y(2);return Wa(o.view,n)||(o.view=n),uA(n)}),S(1,"mat-button-toggle",6),AA(2,"Events"),N(),FA(3,CzA,2,0,"mat-button-toggle",7),eo(4,"async"),N()}if(t&2){let A=Y(2);Za("ngModel",A.view),_(3),_A(Yo(4,2,A.isTraceEnabledObs)?3:-1)}}function BzA(t,e){if(t&1){let A=me();S(0,"mat-list-item",8),mA("click",function(){let n=QA(A).$implicit,o=Y(3);return uA(o.selectEvent(n.key))}),S(1,"span",9),AA(2),N(),S(3,"span",10),AA(4),N()()}if(t&2){let A=e.$implicit,i=e.$index;_(2),tt(i),_(2),tt(A.value.title)}}function EzA(t,e){if(t&1&&(S(0,"mat-list",4),dn(1,BzA,5,2,"mat-list-item",null,zn),eo(3,"keyvalue"),N()),t&2){let A=Y(2);_(),Bn(_u(3,0,A.eventsMap(),A.mapOrderPreservingSort))}}function QzA(t,e){if(t&1){let A=me();S(0,"mat-list-item",8),mA("click",function(){let n=QA(A).$implicit,o=Y(3);return uA(o.openDialog(n.key))}),S(1,"span",9),AA(2),N(),S(3,"span"),AA(4),eo(5,"invocId"),N()()}if(t&2){let A=e.$implicit,i=e.$index;_(2),tt(i),_(2),Bt("Invocation ",Yo(5,2,A.value),"")}}function uzA(t,e){if(t&1&&(S(0,"mat-list",4),dn(1,QzA,6,4,"mat-list-item",null,zn),eo(3,"keyvalue"),N()),t&2){let A=Y(2);_(),Bn(_u(3,0,A.spansByTraceId(),A.mapOrderPreservingSort))}}function hzA(t,e){if(t&1&&(S(0,"div",1)(1,"div",2),FA(2,lzA,2,0,"p")(3,IzA,2,0,"p")(4,dzA,5,4,"mat-button-toggle-group",3),N(),FA(5,EzA,4,3,"mat-list",4)(6,uzA,4,3,"mat-list",4),N()),t&2){let A=Y();_(2),_A(A.isTraceView()?-1:2),_(),_A(A.isTraceView()?3:-1),_(),_A(A.traceData().length>0?4:-1),_(),_A(A.isTraceView()?-1:5),_(),_A(A.isTraceView()?6:-1)}}function fzA(t,e){t&1&&(S(0,"div")(1,"p"),AA(2,"No conversations"),N()())}var TQ=class t{eventsMap=bs(new Map);traceData=bs([]);selectedEvent=new YA;dialog=f(Fc);featureFlagService=f(Gc);view=Ao("events");isTraceView=Mc(()=>this.view()==="trace");spansByTraceId=Mc(()=>!this.traceData()||this.traceData().length==0?new Map:this.traceData().reduce((e,A)=>{let i=A.trace_id,n=e.get(i);return n?(A.invoc_id=A.attributes?.["gcp.vertex.agent.invocation_id"],n.push(A),n.sort((o,r)=>o.start_time-r.start_time)):e.set(i,[A]),e},new Map));showJson=Array(this.eventsMap().size).fill(!1);isTraceEnabledObs=this.featureFlagService.isTraceEnabled();toggleJson(e){this.showJson[e]=!this.showJson[e]}selectEvent(e){this.selectedEvent.emit(e)}mapOrderPreservingSort=(e,A)=>0;findInvocId(e){return e.find(A=>A.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in A.attributes)?.attributes["gcp.vertex.agent.invocation_id"]}openDialog(e){let A=this.spansByTraceId().get(e);if(!A)return;let i=this.dialog.open(k7,{width:"auto",maxWidth:"90vw",data:{spans:A,invocId:this.findInvocId(A)}})}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-event-tab"]],inputs:{eventsMap:[1,"eventsMap"],traceData:[1,"traceData"]},outputs:{selectedEvent:"selectedEvent"},decls:3,vars:2,consts:[[1,"events-wrapper"],[1,"events-container"],[1,"event-header"],["name","fontStyle","aria-label","Font Style",2,"scale","0.8",3,"ngModel"],[1,"event-list"],["name","fontStyle","aria-label","Font Style",2,"scale","0.8",3,"ngModelChange","ngModel"],["value","events"],["value","trace"],[3,"click"],[1,"event-index"],[1,"event-title"]],template:function(A,i){A&1&&(S(0,"div",0),FA(1,hzA,7,5,"div",1)(2,fzA,3,0,"div"),N()),A&2&&(_(),_A(i.eventsMap().size>0?1:-1),_(),_A(i.eventsMap().size==0?2:-1))},dependencies:[AU,Mr,Ss,tc,eU,jcA,qcA,Ou,R7,Qg],styles:[".events-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;color:var(--event-tab-events-wrapper-color);font-size:14px;font-weight:700}.event-index[_ngcontent-%COMP%]{color:var(--event-tab-event-index-color);font-family:Roboto;font-size:14px;font-style:normal;font-weight:400;margin-right:10px}.event-title[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}.spacer[_ngcontent-%COMP%]{flex:1 1 auto}.events-container[_ngcontent-%COMP%]{margin-top:20px}.event-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;margin-top:20px}.function-event-button[_ngcontent-%COMP%]{margin-top:11px}.event-list[_ngcontent-%COMP%]{--mat-list-active-indicator-color: var(--event-tab-event-list-active-indicator-color)}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-container-color: var(--event-tab-event-list-list-item-container-color)}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-label-text-size: 14px}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-label-text-weight: 400}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-one-line-container-height: 52px}[_nghost-%COMP%] .mdc-list-item{border:1px solid var(--event-tab-mdc-list-item-border-color);cursor:pointer}[_nghost-%COMP%] .mdc-list-item:hover{background-color:var(--event-tab-mdc-list-item-hover-background-color)}.event-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"]})};function mzA(t,e){if(t&1){let A=me();S(0,"div",3),mA("click",function(){let n=QA(A).$implicit,o=Y();return uA(o.getSession(n.id))}),S(1,"div",4)(2,"div",5),AA(3),N(),S(4,"div",6),AA(5),N()()()}if(t&2){let A=e.$implicit,i=Y();yA("ngClass",A.id===i.sessionId?"session-item current":"session-item"),_(3),Bt(" ",A.id," "),_(2),tt(i.getDate(A))}}var HQ=class t{userId="";appName="";sessionId="";sessionSelected=new YA;sessionReloaded=new YA;sessionList=[];refreshSessionsSubject=new qA;changeDetectorRef=f(Et);sessionService=f(A1);constructor(){this.refreshSessionsSubject.pipe($n(()=>this.sessionService.listSessions(this.userId,this.appName))).subscribe(e=>{e=e.sort((A,i)=>Number(i.lastUpdateTime)-Number(A.lastUpdateTime)),this.sessionList=e,this.changeDetectorRef.detectChanges()})}ngOnInit(){setTimeout(()=>{this.refreshSessionsSubject.next()},500)}getSession(e){this.sessionService.getSession(this.userId,this.appName,e).subscribe(A=>{let i=this.fromApiResultToSession(A);this.sessionSelected.emit(i)})}getDate(e){let A=e.lastUpdateTime;return new Date(A*1e3).toLocaleString()}fromApiResultToSession(e){return{id:e?.id??"",appName:e?.appName??"",userId:e?.userId??"",state:e?.state??[],events:e?.events??[]}}reloadSession(e){this.sessionService.getSession(this.userId,this.appName,e).subscribe(A=>{let i=this.fromApiResultToSession(A);this.sessionReloaded.emit(i)})}refreshSession(e){if(this.refreshSessionsSubject.next(),!(this.sessionList.length<=1)){let A=this.sessionList.findIndex(i=>i.id==e);return A==this.sessionList.length-1&&(A=-1),this.sessionList[A+1]}}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-session-tab"]],inputs:{userId:"userId",appName:"appName",sessionId:"sessionId"},outputs:{sessionSelected:"sessionSelected",sessionReloaded:"sessionReloaded"},decls:4,vars:0,consts:[[1,"session-wrapper"],[1,"session-tab-container",2,"margin-top","16px"],[3,"ngClass"],[3,"click","ngClass"],[1,"session-info"],[1,"session-id"],[1,"session-date"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"div",1),dn(2,mzA,6,3,"div",2,zn),N()()),A&2&&(_(2),Bn(i.sessionList))},dependencies:[Vs],styles:[".session-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;color:var(--session-tab-session-wrapper-color);font-size:14px;font-weight:700}.session-item[_ngcontent-%COMP%]{display:flex;justify-content:space-between;border:none;background-color:var(--session-tab-session-item-background-color);border-radius:8px;margin-bottom:4px;cursor:pointer}.session-item[_ngcontent-%COMP%]:hover{background-color:var(--session-tab-session-item-hover-background-color)}.session-item.current[_ngcontent-%COMP%]{background-color:var(--session-tab-session-item-current-background-color)}.session-id[_ngcontent-%COMP%]{color:var(--session-tab-session-id-color);font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.session-date[_ngcontent-%COMP%]{color:var(--session-tab-session-date-color);font-family:Roboto;font-size:12px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.3px}.session-info[_ngcontent-%COMP%]{padding:11px}"]})};var L7=class t{sessionState={};constructor(){}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-state-tab"]],inputs:{sessionState:"sessionState"},decls:3,vars:1,consts:[[1,"state-wrapper"],[3,"json"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"div"),TA(2,"ngx-json-viewer",1),N()()),A&2&&(_(2),yA("json",i.sessionState))},dependencies:[Sl,X2],styles:[".state-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;margin-top:16px}"]})};var VcA=new eA("CdkAccordion");var ZcA=(()=>{class t{accordion=f(VcA,{optional:!0,skipSelf:!0});_changeDetectorRef=f(Et);_expansionDispatcher=f(b8);_openCloseAllSubscription=Kt.EMPTY;closed=new YA;opened=new YA;destroyed=new YA;expandedChange=new YA;id=f(an).getId("cdk-accordion-child-");get expanded(){return this._expanded}set expanded(A){if(this._expanded!==A){if(this._expanded=A,this.expandedChange.emit(A),A){this.opened.emit();let i=this.accordion?this.accordion.id:this.id;this._expansionDispatcher.notify(this.id,i)}else this.closed.emit();this._changeDetectorRef.markForCheck()}}_expanded=!1;disabled=!1;_removeUniqueSelectionListener=()=>{};constructor(){}ngOnInit(){this._removeUniqueSelectionListener=this._expansionDispatcher.listen((A,i)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===i&&this.id!==A&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(A=>{this.disabled||(this.expanded=A)})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[2,"expanded","expanded",ge],disabled:[2,"disabled","disabled",ge]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[ut([{provide:VcA,useValue:void 0}])]})}return t})();var pzA=["body"],DzA=["bodyWrapper"],wzA=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],yzA=["mat-expansion-panel-header","*","mat-action-row"];function vzA(t,e){}var MzA=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],bzA=["mat-panel-title","mat-panel-description","*"];function kzA(t,e){t&1&&(S(0,"span",1),ur(),S(1,"svg",2),TA(2,"path",3),N()())}var WcA=new eA("MAT_ACCORDION"),XcA=new eA("MAT_EXPANSION_PANEL"),SzA=(()=>{class t{_template=f(mn);_expansionPanel=f(XcA,{optional:!0});constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["ng-template","matExpansionPanelContent",""]]})}return t})(),$cA=new eA("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS"),iU=(()=>{class t extends ZcA{_viewContainerRef=f(Sn);_animationsDisabled=f(_i,{optional:!0})==="NoopAnimations";_document=f(at);_ngZone=f(ye);_elementRef=f(se);_renderer=f(qi);_cleanupTransitionEnd;get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(A){this._hideToggle=A}_hideToggle=!1;get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(A){this._togglePosition=A}_togglePosition;afterExpand=new YA;afterCollapse=new YA;_inputChanges=new qA;accordion=f(WcA,{optional:!0,skipSelf:!0});_lazyContent;_body;_bodyWrapper;_portal;_headerId=f(an).getId("mat-expansion-panel-header-");constructor(){super();let A=f($cA,{optional:!0});this._expansionDispatcher=f(b8),A&&(this.hideToggle=A.hideToggle)}_hasSpacing(){return this.accordion?this.expanded&&this.accordion.displayMode==="default":!1}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(On(null),Nt(()=>this.expanded&&!this._portal),Xn(1)).subscribe(()=>{this._portal=new Rs(this._lazyContent._template,this._viewContainerRef)}),this._setupAnimationEvents()}ngOnChanges(A){this._inputChanges.next(A)}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTransitionEnd?.(),this._inputChanges.complete()}_containsFocus(){if(this._body){let A=this._document.activeElement,i=this._body.nativeElement;return A===i||i.contains(A)}return!1}_transitionEndListener=({target:A,propertyName:i})=>{A===this._bodyWrapper?.nativeElement&&i==="grid-template-rows"&&this._ngZone.run(()=>{this.expanded?this.afterExpand.emit():this.afterCollapse.emit()})};_setupAnimationEvents(){this._ngZone.runOutsideAngular(()=>{this._animationsDisabled?(this.opened.subscribe(()=>this._ngZone.run(()=>this.afterExpand.emit())),this.closed.subscribe(()=>this._ngZone.run(()=>this.afterCollapse.emit()))):setTimeout(()=>{let A=this._elementRef.nativeElement;this._cleanupTransitionEnd=this._renderer.listen(A,"transitionend",this._transitionEndListener),A.classList.add("mat-expansion-panel-animations-enabled")},200)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-expansion-panel"]],contentQueries:function(i,n,o){if(i&1&&gi(o,SzA,5),i&2){let r;de(r=Be())&&(n._lazyContent=r.first)}},viewQuery:function(i,n){if(i&1&&(st(pzA,5),st(DzA,5)),i&2){let o;de(o=Be())&&(n._body=o.first),de(o=Be())&&(n._bodyWrapper=o.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:4,hostBindings:function(i,n){i&2&&he("mat-expanded",n.expanded)("mat-expansion-panel-spacing",n._hasSpacing())},inputs:{hideToggle:[2,"hideToggle","hideToggle",ge],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[ut([{provide:WcA,useValue:void 0},{provide:XcA,useExisting:t}]),lt,Xt],ngContentSelectors:yzA,decls:9,vars:4,consts:[["bodyWrapper",""],["body",""],[1,"mat-expansion-panel-content-wrapper"],["role","region",1,"mat-expansion-panel-content",3,"id"],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(i,n){i&1&&($t(wzA),Ue(0),S(1,"div",2,0)(3,"div",3,1)(5,"div",4),Ue(6,1),FA(7,vzA,0,0,"ng-template",5),N(),Ue(8,2),N()()),i&2&&(_(),Ke("inert",n.expanded?null:""),_(2),yA("id",n.id),Ke("aria-labelledby",n._headerId),_(4),yA("cdkPortalOutlet",n._portal))},dependencies:[wa],styles:[".mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden;position:relative;background:var(--mat-expansion-container-background-color, var(--mat-sys-surface));color:var(--mat-expansion-container-text-color, var(--mat-sys-on-surface));border-radius:var(--mat-expansion-container-shape, 12px)}.mat-expansion-panel.mat-expansion-panel-animations-enabled{transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape, 12px);border-top-left-radius:var(--mat-expansion-container-shape, 12px)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape, 12px);border-bottom-left-radius:var(--mat-expansion-container-shape, 12px)}@media(forced-colors: active){.mat-expansion-panel{outline:solid 1px}}.mat-expansion-panel-content-wrapper{display:grid;grid-template-rows:0fr;grid-template-columns:100%}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content-wrapper{transition:grid-template-rows 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{grid-template-rows:1fr}@supports not (grid-template-rows: 0fr){.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;min-height:0;visibility:hidden;font-family:var(--mat-expansion-container-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-expansion-container-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-expansion-container-text-weight, var(--mat-sys-body-large-weight));line-height:var(--mat-expansion-container-text-line-height, var(--mat-sys-body-large-line-height));letter-spacing:var(--mat-expansion-container-text-tracking, var(--mat-sys-body-large-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content{transition:visibility 190ms linear}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper>.mat-expansion-panel-content{visibility:visible}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color, var(--mat-sys-outline))}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}return t})();var AgA=(()=>{class t{panel=f(iU,{host:!0});_element=f(se);_focusMonitor=f(Jr);_changeDetectorRef=f(Et);_parentChangeSubscription=Kt.EMPTY;constructor(){f(Pn).load(Yr);let A=this.panel,i=f($cA,{optional:!0}),n=f(new Wr("tabindex"),{optional:!0}),o=A.accordion?A.accordion._stateChanges.pipe(Nt(r=>!!(r.hideToggle||r.togglePosition))):lr;this.tabIndex=parseInt(n||"")||0,this._parentChangeSubscription=Hn(A.opened,A.closed,o,A._inputChanges.pipe(Nt(r=>!!(r.hideToggle||r.disabled||r.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),A.closed.pipe(Nt(()=>A._containsFocus())).subscribe(()=>this._focusMonitor.focusVia(this._element,"program")),i&&(this.expandedHeight=i.expandedHeight,this.collapsedHeight=i.collapsedHeight)}expandedHeight;collapsedHeight;tabIndex=0;get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){let A=this._isExpanded();return A&&this.expandedHeight?this.expandedHeight:!A&&this.collapsedHeight?this.collapsedHeight:null}_keydown(A){switch(A.keyCode){case 32:case 13:sr(A)||(A.preventDefault(),this._toggle());break;default:this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(A);return}}focus(A,i){A?this._focusMonitor.focusVia(this._element,A,i):this._element.nativeElement.focus(i)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(A=>{A&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:13,hostBindings:function(i,n){i&1&&mA("click",function(){return n._toggle()})("keydown",function(r){return n._keydown(r)}),i&2&&(Ke("id",n.panel._headerId)("tabindex",n.disabled?-1:n.tabIndex)("aria-controls",n._getPanelId())("aria-expanded",n._isExpanded())("aria-disabled",n.panel.disabled),mo("height",n._getHeaderHeight()),he("mat-expanded",n._isExpanded())("mat-expansion-toggle-indicator-after",n._getTogglePosition()==="after")("mat-expansion-toggle-indicator-before",n._getTogglePosition()==="before"))},inputs:{expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight",tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:en(A)]},ngContentSelectors:bzA,decls:5,vars:3,consts:[[1,"mat-content"],[1,"mat-expansion-indicator"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 -960 960 960","aria-hidden","true","focusable","false"],["d","M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z"]],template:function(i,n){i&1&&($t(MzA),S(0,"span",0),Ue(1),Ue(2,1),Ue(3,2),N(),FA(4,kzA,3,0,"span",1)),i&2&&(he("mat-content-hide-toggle",!n._showToggle()),_(4),_A(n._showToggle()?4:-1))},styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;height:var(--mat-expansion-header-collapsed-state-height, 48px);font-family:var(--mat-expansion-header-text-font, var(--mat-sys-title-medium-font));font-size:var(--mat-expansion-header-text-size, var(--mat-sys-title-medium-size));font-weight:var(--mat-expansion-header-text-weight, var(--mat-sys-title-medium-weight));line-height:var(--mat-expansion-header-text-line-height, var(--mat-sys-title-medium-line-height));letter-spacing:var(--mat-expansion-header-text-tracking, var(--mat-sys-title-medium-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-header{transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header::before{border-radius:inherit}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height, 64px)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color, var(--mat-sys-surface))}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color, var(--mat-sys-on-surface))}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color, var(--mat-sys-on-surface-variant))}.mat-expansion-panel-animations-enabled .mat-expansion-indicator{transition:transform 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header.mat-expanded .mat-expansion-indicator{transform:rotate(180deg)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-legacy-header-indicator-display, none)}.mat-expansion-indicator svg{width:24px;height:24px;margin:0 -8px;vertical-align:middle;fill:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-header-indicator-display, inline-block)}@media(forced-colors: active){.mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}}'],encapsulation:2,changeDetection:0})}return t})();var egA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]})}return t})();function RzA(t,e){t&1&&TA(0,"div",8)}function LzA(t,e){if(t&1&&(S(0,"span",14),AA(1),N()),t&2){let A=Y().$implicit,i=Y();mo("left",i.getRelativeStart(A.span)+5,"%"),_(),Bt("",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms")}}function xzA(t,e){if(t&1){let A=me();S(0,"div",5),mA("click",function(){let n=QA(A).$implicit,o=Y();return uA(o.selectRow(n))})("mouseenter",function(){let n=QA(A).$implicit,o=Y();return uA(o.onHover(n))})("mouseleave",function(){QA(A);let n=Y();return uA(n.onHoverOut())}),S(1,"div",6)(2,"div",7),dn(3,RzA,1,0,"div",8,AB),N(),S(5,"span",9),AA(6),N(),S(7,"div",10),AA(8),N()(),S(9,"div",11)(10,"div",12),AA(11),N(),FA(12,LzA,2,3,"span",13),N()()}if(t&2){let A=e.$implicit,i=Y();he("selected",i.rowSelected(A)),_(3),Bn(i.getArray(A.level)),_(2),he("is-event-row",i.isEventRow(A)),_(),Bt(" ",i.getSpanIcon(A.span.name)," "),_(),mo("width",400-A.level*20,"px"),he("is-event-row",i.isEventRow(A)),_(),Bt(" ",A.span.name," "),_(2),mo("left",i.getRelativeStart(A.span),"%")("width",i.getRelativeWidth(A.span),"%"),_(),Bt(" ",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms "),_(),_A(i.getRelativeWidth(A.span)<10?12:-1)}}var x7=class t{spans=[];invocationId="";tree=[];eventData;baseStartTimeMs=0;totalDurationMs=1;flatTree=[];traceLabelIconMap=new Map([["Invocation","start"],["agent_run","directions_run"],["invoke_agent","directions_run"],["tool","build"],["call_llm","chat"]]);selectedRow=void 0;traceService=f(e1);constructor(){}ngOnInit(){this.tree=this.buildSpanTree(this.spans),this.flatTree=this.flattenTree(this.tree);let e=this.getGlobalTimes(this.spans);this.baseStartTimeMs=e.start,this.totalDurationMs=e.duration,this.traceService.selectedTraceRow$.subscribe(A=>this.selectedRow=A),this.traceService.eventData$.subscribe(A=>this.eventData=A)}buildSpanTree(e){let A=e.map(o=>sA({},o)),i=new Map,n=[];return A.forEach(o=>i.set(o.span_id,o)),A.forEach(o=>{if(o.parent_span_id&&i.has(o.parent_span_id)){let r=i.get(o.parent_span_id);r.children=r.children||[],r.children.push(o)}else n.push(o)}),n}getGlobalTimes(e){let A=Math.min(...e.map(n=>this.toMs(n.start_time))),i=Math.max(...e.map(n=>this.toMs(n.end_time)));return{start:A,duration:i-A}}toMs(e){return e/1e6}getRelativeStart(e){return(this.toMs(e.start_time)-this.baseStartTimeMs)/this.totalDurationMs*100}getRelativeWidth(e){return(this.toMs(e.end_time)-this.toMs(e.start_time))/this.totalDurationMs*100}flattenTree(e,A=0){return e.flatMap(n=>[{span:n,level:A},...n.children?this.flattenTree(n.children,A+1):[]])}getSpanIcon(e){for(let[A,i]of this.traceLabelIconMap.entries())if(e.startsWith(A))return i;return"start"}getArray(e){return Array.from({length:e})}selectRow(e){if(this.selectedRow&&this.selectedRow.span_id==e.span.span_id){this.traceService.selectedRow(void 0),this.traceService.setHoveredMessages(void 0,this.invocationId);return}this.traceService.selectedRow(e.span),this.traceService.setHoveredMessages(e.span,this.invocationId)}rowSelected(e){return this.selectedRow==e.span}isEventRow(e){if(!e.span.attributes)return!1;let A=e?.span.attributes["gcp.vertex.agent.event_id"];return!!(A&&this.eventData&&this.eventData.has(A))}onHover(e){this.traceService.setHoveredMessages(e.span,this.invocationId)}onHoverOut(){this.traceService.setHoveredMessages(void 0,this.invocationId),this.selectedRow&&this.traceService.setHoveredMessages(this.selectedRow,this.invocationId)}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-trace-tree"]],inputs:{spans:"spans",invocationId:"invocationId"},decls:8,vars:1,consts:[[2,"margin-top","15px"],[1,"invocation-id-container"],[1,"invocation-id"],[1,"trace-container"],[1,"trace-row",3,"selected"],[1,"trace-row",3,"click","mouseenter","mouseleave"],[1,"trace-row-left"],[1,"trace-indent"],[1,"indent-connector"],[1,"material-symbols-outlined",2,"margin-right","8px"],[1,"trace-label"],[1,"trace-bar-container"],[1,"trace-bar"],[1,"short-trace-bar-duration",3,"left"],[1,"short-trace-bar-duration"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"div",1),AA(2,"Invocation ID: "),S(3,"div",2),AA(4),N()(),S(5,"div",3),dn(6,xzA,13,16,"div",4,zn),N()()),A&2&&(_(4),tt(i.invocationId),_(2),Bn(i.flatTree))},styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-label[_ngcontent-%COMP%]{width:400px;color:var(--trace-tree-trace-label-color);font-family:Google Sans Mono,monospace;font-size:13px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.trace-bar-container[_ngcontent-%COMP%]{width:100%;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:var(--trace-tree-trace-bar-background-color);border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:var(--trace-tree-trace-bar-color);font-family:Google Sans}.short-trace-bar-duration[_ngcontent-%COMP%]{position:absolute;color:var(--trace-tree-short-trace-bar-duration-color)}.trace-duration[_ngcontent-%COMP%]{color:var(--trace-tree-trace-duration-color);font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px;align-items:center;cursor:pointer}.trace-row[_ngcontent-%COMP%]:hover{background-color:var(--trace-tree-trace-row-hover-background-color)}.trace-row.selected[_ngcontent-%COMP%]{background-color:var(--trace-tree-trace-row-selected-background-color)}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:var(--trace-tree-vertical-line-background-color)}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:var(--trace-tree-horizontal-line-background-color)}.trace-row-left[_ngcontent-%COMP%]{display:flex;width:50%}.invocation-id-container[_ngcontent-%COMP%]{color:var(--trace-tree-invocation-id-container-color);font-size:14px;font-style:normal;font-weight:700;line-height:20px;letter-spacing:0px;margin-bottom:5px}.invocation-id[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}.trace-row-left[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .trace-row-left[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{color:var(--trace-tree-trace-row-left-span-div-color)}.trace-row-left[_ngcontent-%COMP%] .is-event-row[_ngcontent-%COMP%]{color:var(--trace-tree-trace-row-left-is-event-row-color)}"]})};function NzA(t,e){if(t&1&&(S(0,"div",3)(1,"mat-expansion-panel")(2,"mat-expansion-panel-header")(3,"mat-panel-title"),AA(4),N()(),TA(5,"app-trace-tree",4),N()()),t&2){let A=e.$implicit,i=Y();_(4),Bt(" ",i.invocToUserMsg.get(A.key)," "),_(),yA("spans",A.value)("invocationId",i.findInvocIdFromTraceId(A.key))}}var N7=class t{traceData=[];invocTraces=new Map;invocToUserMsg=new Map;constructor(){}ngOnInit(){}ngOnChanges(e){"traceData"in e&&this.rebuildTrace()}rebuildTrace(){this.invocTraces=this.traceData.reduce((e,A)=>{let i=A.trace_id,n=e.get(i);return n?(n.push(A),n.sort((o,r)=>o.start_time-r.start_time)):e.set(i,[A]),e},new Map);for(let[e,A]of this.invocTraces)this.invocToUserMsg.set(e,this.findUserMsgFromInvocGroup(A))}getArray(e){return Array.from({length:e})}findUserMsgFromInvocGroup(e){let A=e?.find(o=>o.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in o.attributes);return A?JSON.parse(A.attributes["gcp.vertex.agent.llm_request"]).contents.filter(o=>o.role=="user").at(-1)?.parts[0]?.text??"[attachment]":"[no invocation id found]"}findInvocIdFromTraceId(e){return this.invocTraces.get(e)?.find(i=>i.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in i.attributes).attributes["gcp.vertex.agent.invocation_id"]}mapOrderPreservingSort=(e,A)=>0;static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-trace-tab"]],inputs:{traceData:"traceData"},features:[Xt],decls:7,vars:3,consts:[[2,"padding-left","25px","padding-right","25px"],["mat-dialog-title","",1,"trace-title"],[1,"trace-list-wrapper"],[1,"trace-item"],[3,"spans","invocationId"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2,"Invocations"),N(),S(3,"div",2),dn(4,NzA,6,3,"div",3,zn),eo(6,"keyvalue"),N()()),A&2&&(_(4),Bn(_u(6,0,i.invocTraces,i.mapOrderPreservingSort)))},dependencies:[Ls,iU,AgA,egA,x7,Ou],styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-title[_ngcontent-%COMP%]{color:var(--trace-tab-trace-title-color);font-size:14px;font-style:normal;font-weight:700;line-height:20px;letter-spacing:0px}.trace-label[_ngcontent-%COMP%]{width:400px;color:var(--trace-tab-trace-label-color);text-overflow:ellipsis;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px}.trace-bar-container[_ngcontent-%COMP%]{width:50vw;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:var(--trace-tab-trace-bar-background-color);border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:var(--trace-tab-trace-bar-color);font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:var(--trace-tab-trace-duration-color);font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:var(--trace-tab-vertical-line-background-color)}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:var(--trace-tab-horizontal-line-background-color)}.trace-item[_ngcontent-%COMP%]{margin-top:5px}.trace-item[_ngcontent-%COMP%]{--mat-expansion-container-background-color: var(--trace-tab-trace-item-container-background-color)}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-focus-state-layer-color: var(--trace-tab-trace-item-header-focus-state-layer-color)}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-description-color: var(--trace-tab-trace-item-header-description-color)}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-text-size: 15}.trace-item[_ngcontent-%COMP%] .mat-expansion-panel-header.mat-expanded:focus{background-color:var(--trace-tab-mat-expansion-panel-header-focus-background-color)}.trace-item[_ngcontent-%COMP%] .mat-expansion-panel-header.mat-expanded{background-color:var(--trace-tab-mat-expansion-panel-header-background-color)}.trace-item[_ngcontent-%COMP%] .mat-expansion-panel-header.mat-expanded:hover{background-color:var(--trace-tab-mat-expansion-panel-header-hover-background-color)} .mat-expansion-panel-header-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden} .mat-expansion-panel-header-description{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}"]})};var FzA={agentDevelopmentKitLabel:"Agent Development Kit",collapsePanelTooltip:"Collapse panel",traceTabLabel:"Trace",eventsTabLabel:"Events",stateTabLabel:"State",artifactsTabLabel:"Artifacts",sessionsTabLabel:"Sessions",evalTabLabel:"Eval",selectEventAriaLabel:"Select event",eventDetailsTabLabel:"Event",requestDetailsTabLabel:"Request",responseDetailsTabLabel:"Response"},tgA=new eA("Side Panel Messages",{factory:()=>FzA});function _zA(t,e){t&1&&rr(0)}function GzA(t,e){if(t&1&&(S(0,"div"),FA(1,_zA,1,0,"ng-container",9),S(2,"div",10),AA(3,"Powered by Agent Development Kit"),N()()),t&2){let A=Y(2);_(),yA("ngComponentOutlet",A.logoComponent)}}function KzA(t,e){if(t&1&&(TA(0,"img",11),AA(1)),t&2){let A=Y(2);_(),Bt(" ",A.i18n.agentDevelopmentKitLabel," ")}}function UzA(t,e){if(t&1&&(S(0,"mat-option",13),AA(1),N()),t&2){let A=e.$implicit;yA("value",A),_(),tt(A)}}function JzA(t,e){t&1&&dn(0,UzA,2,2,"mat-option",13,zn),t&2&&Bn(e)}function YzA(t,e){if(t&1&&(S(0,"mat-option",13),AA(1),N()),t&2){let A=Y(3);yA("value",A.selectedAppControl.value),_(),tt(A.selectedAppControl.value)}}function TzA(t,e){if(t&1){let A=me();S(0,"div",8)(1,"mat-select",12),mA("selectionChange",function(n){QA(A);let o=Y(2);return uA(o.appSelectionChange.emit(n))}),FA(2,JzA,2,0),eo(3,"async"),FA(4,YzA,2,2,"mat-option",13),N()()}if(t&2){let A,i=Y(2);_(),yA("placeholder",i.isLoadingApps()?"Loading...":"Select an agent")("formControl",i.selectedAppControl),_(),_A((A=Yo(3,4,i.apps$))?2:-1,A),_(2),_A(i.selectedAppControl.value&&i.isLoadingApps()?4:-1)}}function HzA(t,e){if(t&1){let A=me();S(0,"div",3)(1,"div",4)(2,"div",5)(3,"div",6),FA(4,GzA,4,1,"div")(5,KzA,2,1),N(),S(6,"span",7),mA("click",function(){QA(A);let n=Y();return uA(n.closePanel.emit())}),AA(7,"left_panel_close"),N()()()(),FA(8,TzA,5,6,"div",8),eo(9,"async")}if(t&2){let A=Y();_(4),_A(A.logoComponent?4:5),_(2),L2("matTooltip",A.i18n.collapsePanelTooltip),_(2),_A(Yo(9,3,A.isApplicationSelectorEnabledObs)?8:-1)}}function OzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(3);_(),tt(A.i18n.traceTabLabel)}}function zzA(t,e){if(t&1&&(S(0,"mat-tab",15),FA(1,OzA,2,1,"ng-template",16),TA(2,"app-trace-tab",20),N()),t&2){let A=Y(2);_(2),yA("traceData",A.traceData)}}function PzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(2);_(),tt(A.i18n.eventsTabLabel)}}function jzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(2);_(),tt(A.i18n.stateTabLabel)}}function qzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(3);_(),tt(A.i18n.artifactsTabLabel)}}function VzA(t,e){if(t&1&&(S(0,"mat-tab"),FA(1,qzA,2,1,"ng-template",16),TA(2,"app-artifact-tab",22),N()),t&2){let A=Y(2);_(2),yA("artifacts",A.artifacts)}}function ZzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(2);_(),tt(A.i18n.sessionsTabLabel)}}function WzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(3);_(),tt(A.i18n.evalTabLabel)}}function XzA(t,e){if(t&1){let A=me();S(0,"mat-tab"),FA(1,WzA,2,1,"ng-template",16),S(2,"app-eval-tab",23),mA("sessionSelected",function(n){QA(A);let o=Y(2);return uA(o.sessionSelected.emit(n))})("evalCaseSelected",function(n){QA(A);let o=Y(2);return uA(o.evalCaseSelected.emit(n))})("evalSetIdSelected",function(n){QA(A);let o=Y(2);return uA(o.evalSetIdSelected.emit(n))})("shouldReturnToSession",function(n){QA(A);let o=Y(2);return uA(o.returnToSession.emit(n))})("evalNotInstalledMsg",function(n){QA(A);let o=Y(2);return uA(o.evalNotInstalled.emit(n))}),N()()}if(t&2){let A=Y(2);_(2),yA("appName",A.appName)("userId",A.userId)("sessionId",A.sessionId)}}function $zA(t,e){if(t&1){let A=me();S(0,"div",0)(1,"mat-tab-group",14),mA("selectedTabChange",function(n){QA(A);let o=Y();return uA(o.tabChange.emit(n))}),FA(2,zzA,3,1,"mat-tab",15),eo(3,"async"),S(4,"mat-tab",15),FA(5,PzA,2,1,"ng-template",16),S(6,"app-event-tab",17),mA("selectedEvent",function(n){QA(A);let o=Y();return uA(o.eventSelected.emit(n))}),N()(),S(7,"mat-tab"),FA(8,jzA,2,1,"ng-template",16),TA(9,"app-state-tab",18),N(),FA(10,VzA,3,1,"mat-tab"),eo(11,"async"),S(12,"mat-tab"),FA(13,ZzA,2,1,"ng-template",16),S(14,"app-session-tab",19),mA("sessionSelected",function(n){QA(A);let o=Y();return uA(o.sessionSelected.emit(n))})("sessionReloaded",function(n){QA(A);let o=Y();return uA(o.sessionReloaded.emit(n))}),N()(),FA(15,XzA,3,3,"mat-tab"),eo(16,"async"),N()()}if(t&2){let A=Y();_(2),_A(Yo(3,9,A.isTraceEnabledObs)?2:-1),_(4),yA("eventsMap",A.eventData)("traceData",A.traceData),_(3),yA("sessionState",A.currentSessionState),_(),_A(Yo(11,11,A.isArtifactsTabEnabledObs)?10:-1),_(4),yA("userId",A.userId)("appName",A.appName)("sessionId",A.sessionId),_(),_A(Yo(16,13,A.isEvalEnabledObs)?15:-1)}}function APA(t,e){if(t&1){let A=me();S(0,"div",34),mA("click",function(){QA(A);let n=Y(2);return uA(n.openImageDialog.emit(n.rawSvgString))}),N()}if(t&2){let A=Y(2);yA("innerHtml",A.renderedEventGraph,b2)}}function ePA(t,e){if(t&1){let A=me();S(0,"div",1)(1,"div",24)(2,"div",25)(3,"mat-paginator",26),mA("page",function(n){QA(A);let o=Y();return uA(o.page.emit(n))}),N(),S(4,"button",27)(5,"mat-icon",28),mA("click",function(){QA(A);let n=Y();return uA(n.closeSelectedEvent.emit())}),AA(6,"close"),N()()()(),S(7,"div")(8,"mat-tab-group")(9,"mat-tab",29)(10,"div",30),FA(11,APA,1,1,"div",31),N(),S(12,"div",32),TA(13,"ngx-json-viewer",33),N()(),S(14,"mat-tab",29)(15,"div",32),TA(16,"ngx-json-viewer",33),N()(),S(17,"mat-tab",29)(18,"div",32),TA(19,"ngx-json-viewer",33),N()()()()()}if(t&2){let A=Y();_(3),yA("length",A.eventData.size)("pageSize",1)("pageIndex",A.selectedEventIndex),Ke("aria-label",A.i18n.selectEventAriaLabel),_(6),L2("label",A.i18n.eventDetailsTabLabel),_(2),_A(A.renderedEventGraph?11:-1),_(2),yA("json",A.selectedEvent),_(),L2("label",A.i18n.requestDetailsTabLabel),_(2),yA("json",A.llmRequest),_(),L2("label",A.i18n.responseDetailsTabLabel),_(2),yA("json",A.llmResponse)}}var OQ=class t{appName="";userId="";sessionId="";traceData=[];eventData=new Map;currentSessionState;artifacts=[];selectedEvent;selectedEventIndex;renderedEventGraph;rawSvgString=null;llmRequest;llmResponse;showSidePanel=!1;isApplicationSelectorEnabledObs=Ce(!1);apps$=Ce([]);isLoadingApps=Ao(!1);selectedAppControl=new y0("",{nonNullable:!0});closePanel=new YA;appSelectionChange=new YA;tabChange=new YA;eventSelected=new YA;sessionSelected=new YA;sessionReloaded=new YA;evalCaseSelected=new YA;evalSetIdSelected=new YA;returnToSession=new YA;evalNotInstalled=new YA;page=new YA;closeSelectedEvent=new YA;openImageDialog=new YA;eventTabComponent=qs(TQ);sessionTabComponent=qs(HQ);evalTabComponent=qs(g2);logoComponent=f(b7,{optional:!0});i18n=f(tgA);featureFlagService=f(Gc);isAlwaysOnSidePanelEnabledObs=this.featureFlagService.isAlwaysOnSidePanelEnabled();isTraceEnabledObs=this.featureFlagService.isTraceEnabled();isArtifactsTabEnabledObs=this.featureFlagService.isArtifactsTabEnabled();isEvalEnabledObs=this.featureFlagService.isEvalEnabled();isTokenStreamingEnabledObs=this.featureFlagService.isTokenStreamingEnabled();isMessageFileUploadEnabledObs=this.featureFlagService.isMessageFileUploadEnabled();isManualStateUpdateEnabledObs=this.featureFlagService.isManualStateUpdateEnabled();isBidiStreamingEnabledObs=this.featureFlagService.isBidiStreamingEnabled;static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-side-panel"]],viewQuery:function(A,i){A&1&&(ls(i.eventTabComponent,TQ,5),ls(i.sessionTabComponent,HQ,5),ls(i.evalTabComponent,g2,5)),A&2&&yc(3)},inputs:{appName:"appName",userId:"userId",sessionId:"sessionId",traceData:"traceData",eventData:"eventData",currentSessionState:"currentSessionState",artifacts:"artifacts",selectedEvent:"selectedEvent",selectedEventIndex:"selectedEventIndex",renderedEventGraph:"renderedEventGraph",rawSvgString:"rawSvgString",llmRequest:"llmRequest",llmResponse:"llmResponse",showSidePanel:"showSidePanel",isApplicationSelectorEnabledObs:"isApplicationSelectorEnabledObs",apps$:"apps$",isLoadingApps:"isLoadingApps",selectedAppControl:"selectedAppControl"},outputs:{closePanel:"closePanel",appSelectionChange:"appSelectionChange",tabChange:"tabChange",eventSelected:"eventSelected",sessionSelected:"sessionSelected",sessionReloaded:"sessionReloaded",evalCaseSelected:"evalCaseSelected",evalSetIdSelected:"evalSetIdSelected",returnToSession:"returnToSession",evalNotInstalled:"evalNotInstalled",page:"page",closeSelectedEvent:"closeSelectedEvent",openImageDialog:"openImageDialog"},decls:5,vars:5,consts:[[1,"tabs-container"],[1,"details-panel-container"],[1,"resize-handler"],[2,"margin-top","20px","margin-left","20px","display","flex"],[2,"width","100%"],[1,"drawer-header"],[1,"drawer-logo"],[1,"material-symbols-outlined",2,"color","#c4c7c5","cursor","pointer","margin-right","15px",3,"click","matTooltip"],[1,"app-select-container"],[4,"ngComponentOutlet"],[1,"powered-by-adk"],["src","assets/ADK-512-color.svg","width","32px","height","32px"],[1,"app-select",3,"selectionChange","placeholder","formControl"],[1,"app-name-option",3,"value"],[3,"selectedTabChange"],[1,"tabs-header"],["mat-tab-label",""],[3,"selectedEvent","eventsMap","traceData"],[3,"sessionState"],[3,"sessionSelected","sessionReloaded","userId","appName","sessionId"],[3,"traceData"],[1,"tab-label"],[3,"artifacts"],[3,"sessionSelected","evalCaseSelected","evalSetIdSelected","shouldReturnToSession","evalNotInstalledMsg","appName","userId","sessionId"],[1,"details-content"],[2,"display","flex","justify-content","flex-end","margin-top","10px"],[1,"event-paginator",3,"page","length","pageSize","pageIndex"],["mat-mini-fab",""],[3,"click"],[3,"label"],[1,"event-graph-container"],[3,"innerHtml"],[1,"json-viewer-container"],[3,"json"],[3,"click","innerHtml"]],template:function(A,i){A&1&&(FA(0,HzA,10,5),eo(1,"async"),FA(2,$zA,17,15,"div",0)(3,ePA,20,11,"div",1),TA(4,"div",2)),A&2&&(_A(Yo(1,3,i.isAlwaysOnSidePanelEnabledObs)===!1?0:-1),_(2),_A(i.appName!=""&&i.showSidePanel?2:-1),_(),_A(i.selectedEvent&&i.showSidePanel?3:-1))},dependencies:[Qg,Mr,Ss,Yu,kl,M7,vf,$K,N7,TQ,L7,z8,HQ,g2,Gq,u6,_c,Sl,X2,K2,YB,cB,ck],styles:[".drawer-header[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:space-between;align-items:center}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-container-color: var(--side-panel-button-filled-container-color)}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-label-text-color: var(--side-panel-button-filled-label-text-color)}.drawer-header[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{width:36px;height:36px;color:var(--side-panel-mat-icon-color);cursor:pointer;display:flex;align-items:center;justify-content:center}.tabs-container[_ngcontent-%COMP%]{width:100%;margin-top:20px}.tab-label[_ngcontent-%COMP%]{font-size:14px}.resize-handler[_ngcontent-%COMP%]{background:var(--side-panel-resize-handler-background-color);width:4px;border-radius:4px;position:absolute;display:block;height:20%;top:40%;right:0;z-index:9999;cursor:ew-resize}.json-viewer-container[_ngcontent-%COMP%]{margin:10px}.event-paginator[_ngcontent-%COMP%]{margin-top:-8px;margin-right:auto;background-color:inherit;display:flex;justify-content:center}[_nghost-%COMP%] .mat-mdc-paginator-page-size{display:none}.details-panel-container[_ngcontent-%COMP%]{position:absolute;width:100%;height:98%;left:0;right:0;bottom:0;background:var(--side-panel-details-panel-container-background-color);display:inline-block;justify-content:center;align-items:center;z-index:10}.details-content[_ngcontent-%COMP%]{color:var(--side-panel-details-content-color);font-size:14px}.event-graph-container[_ngcontent-%COMP%]{margin-top:16px;margin-bottom:16px;display:flex;justify-content:center;max-height:33%;cursor:pointer}.event-graph-container[_ngcontent-%COMP%] svg{width:100%;height:100%;display:block;object-fit:contain}.event-graph-container[_ngcontent-%COMP%] svg text{font-family:Google Sans Mono,monospace;font-size:11px}.drawer-logo[_ngcontent-%COMP%]{margin-left:9px;display:flex;align-items:center;font-size:16px;font-style:normal;font-weight:500;line-height:24px;letter-spacing:.1px}.drawer-logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{margin-right:9px}.powered-by-adk[_ngcontent-%COMP%]{font-size:10px;color:var(--side-panel-powered-by-adk-color);text-align:right;margin-top:-5px}.app-select[_ngcontent-%COMP%]{width:100%}.app-select-container[_ngcontent-%COMP%]{width:35%;margin-top:12px;background-color:var(--side-panel-app-select-container-background-color);margin-left:10px;height:30px;display:flex;justify-content:space-between;padding-left:20px;padding-right:20px;border-radius:10px;padding-top:5px}.app-select-container[_ngcontent-%COMP%]{--mat-select-placeholder-text-color: var(--side-panel-select-placeholder-text-color)}.app-select-container[_ngcontent-%COMP%]{--mat-select-enabled-trigger-text-color: var(--side-panel-select-enabled-trigger-text-color)}.app-select-container[_ngcontent-%COMP%]{--mat-select-enabled-arrow-color: var(--side-panel-select-enabled-arrow-color)}.app-name-option[_ngcontent-%COMP%], .app-select[_ngcontent-%COMP%]{color:var(--side-panel-app-name-option-color);font-family:Google Sans Mono,monospace;font-style:normal;font-weight:400;padding-left:unset}"]})};function tPA(t,e){if(t&1){let A=me();S(0,"div",11),mA("click",function(){QA(A);let n=Y();return uA(n.openViewImageDialog(n.rawSvgString))}),N()}if(t&2){let A=Y();yA("innerHtml",A.renderedEventGraph,b2)}}var F7=class t{userId="";sessionId="";appName="";panelClosed=new YA;renderedEventGraph;eventData;selectedRow=void 0;rawSvgString=null;llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";dialog=f(Fc);traceService=f(e1);eventService=f(zB);graphService=f(PB);sanitizer=f(oc);constructor(){}ngOnInit(){this.traceService.selectedTraceRow$.subscribe(e=>{this.selectedRow=e;let A=this.getEventIdFromSpan();if(A){let i=A;this.eventService.getEventTrace(i).subscribe(n=>{this.llmRequest=JSON.parse(n[this.llmRequestKey]),this.llmResponse=JSON.parse(n[this.llmResponseKey])}),this.getEventGraph(A)}}),this.traceService.eventData$.subscribe(e=>this.eventData=e)}openViewImageDialog(e){let A=this.dialog.open(t1,{maxWidth:"90vw",maxHeight:"90vh",data:{imageData:e}})}getEventDetails(){if(this.eventData&&this.selectedRow)return this.eventData.get(this.getEventIdFromSpan())}getEventIdFromSpan(){if(this.selectedRow)return this.selectedRow.attributes["gcp.vertex.agent.event_id"]}getEventGraph(e){this.eventService.getEvent(this.userId,this.appName,this.sessionId,e).subscribe(A=>Ni(this,null,function*(){if(!A.dotSrc){this.renderedEventGraph=void 0;return}let i=A.dotSrc,n=yield this.graphService.render(i);this.rawSvgString=n,this.renderedEventGraph=this.sanitizer.bypassSecurityTrustHtml(n)}))}closePanel(){this.panelClosed.emit(!0)}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-trace-event"]],inputs:{userId:"userId",sessionId:"sessionId",appName:"appName"},outputs:{panelClosed:"panelClosed"},decls:17,vars:4,consts:[[1,"wrapper"],["mat-stretch-tabs","false","mat-align-tabs","start"],["label","Event"],[1,"json-viewer-container"],[3,"json"],["label","Request"],["label","Response"],["label","Graph"],[1,"event-graph-container"],[3,"innerHtml"],["mat-icon-button","",1,"tab-header-action",3,"click"],[3,"click","innerHtml"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"mat-tab-group",1)(2,"mat-tab",2)(3,"div",3),TA(4,"ngx-json-viewer",4),N()(),S(5,"mat-tab",5)(6,"div",3),TA(7,"ngx-json-viewer",4),N()(),S(8,"mat-tab",6)(9,"div",3),TA(10,"ngx-json-viewer",4),N()(),S(11,"mat-tab",7)(12,"div",8),FA(13,tPA,1,1,"div",9),N()()(),S(14,"button",10),mA("click",function(){return i.closePanel()}),S(15,"mat-icon"),AA(16,"close"),N()()()),A&2&&(_(4),yA("json",i.getEventDetails()),_(3),yA("json",i.llmRequest),_(3),yA("json",i.llmResponse),_(3),_A(i.renderedEventGraph?13:-1))},dependencies:[M7,vf,Sl,X2,QB,_c],styles:[".json-viewer-container[_ngcontent-%COMP%]{padding-top:8px;padding-left:12px;padding-right:12px;background-color:var(--trace-event-json-viewer-container-background-color)}.event-graph-container[_ngcontent-%COMP%]{text-align:center;padding-top:20px}.event-graph-container[_ngcontent-%COMP%] svg text{font-family:Google Sans Mono,monospace;font-size:11px}.wrapper[_ngcontent-%COMP%]{position:relative}.tab-header-action[_ngcontent-%COMP%]{position:absolute;top:0;right:0;height:48px;z-index:2;margin-right:10px}"]})};var iPA=["sideDrawer"],nPA=["autoScroll"],oPA=["bottomPanel"],rPA=t=>({"edit-mode":t}),sPA=()=>[];function aPA(t,e){if(t&1){let A=me();S(0,"span",12),mA("click",function(){QA(A);let n=Y();return uA(n.toggleSidePanel())}),AA(1,"left_panel_open"),N()}}function cPA(t,e){if(t&1){let A=me();S(0,"span",14),mA("click",function(){QA(A);let n=Y(2);return uA(n.toggleSidePanel())}),AA(1,"left_panel_open"),N()}}function gPA(t,e){if(t&1){let A=me();S(0,"button",19),mA("click",function(){QA(A);let n=Y(3);return uA(n.cancelEditEvalCase())}),AA(1,"Cancel"),N(),S(2,"button",20),mA("click",function(){QA(A);let n=Y(3);return uA(n.saveEvalCase())}),AA(3," Save "),N()}if(t&2){let A=Y(3);_(2),yA("disabled",!A.hasEvalCaseChanged()||A.isEvalCaseEditing())}}function lPA(t,e){if(t&1){let A=me();S(0,"span",21),mA("click",function(){QA(A);let n=Y(3);return uA(n.editEvalCase())}),AA(1," edit "),N(),S(2,"span",22),mA("click",function(){QA(A);let n=Y(3);return uA(n.deleteEvalCase())}),AA(3," delete "),N()}}function IPA(t,e){if(t&1&&(S(0,"div",15)(1,"div",16),AA(2,"Eval Case ID"),N(),S(3,"div",17),AA(4),N()(),S(5,"div",18),FA(6,gPA,4,1)(7,lPA,4,0),N()),t&2){let A=Y(2);_(4),tt(A.evalCase.evalId),_(2),_A(A.isEvalEditMode()?6:7)}}function CPA(t,e){if(t&1){let A=me();S(0,"span",31),mA("click",function(){QA(A);let n=Y(3);return uA(n.exportSession())}),AA(1," download "),N()}}function dPA(t,e){if(t&1){let A=me();S(0,"span",32),mA("click",function(){QA(A);let n=Y(3);return uA(n.importSession())}),AA(1," upload "),N()}}function BPA(t,e){if(t&1){let A=me();S(0,"div",15)(1,"div",16),AA(2,"Session ID"),N(),S(3,"div",17),AA(4),N()(),S(5,"div",18)(6,"div",23)(7,"mat-slide-toggle",24),eo(8,"async"),mA("change",function(){QA(A);let n=Y(2);return uA(n.toggleSse())}),AA(9," Token Streaming "),N()(),TA(10,"mat-divider",25),S(11,"div",26)(12,"div",27),mA("click",function(){QA(A);let n=Y(2);return uA(n.onNewSessionClick())}),S(13,"mat-icon"),AA(14,"add"),N(),AA(15," New Session "),N(),S(16,"span",28),mA("click",function(){QA(A);let n=Y(2);return uA(n.deleteSession(n.sessionId))}),AA(17," delete "),N(),FA(18,CPA,2,0,"span",29),eo(19,"async"),FA(20,dPA,2,0,"span",30),eo(21,"async"),N()()}if(t&2){let A=Y(2);_(4),tt(A.sessionId),_(3),yA("checked",A.enableSseIndicator())("disabled",!Yo(8,6,A.isTokenStreamingEnabledObs)),_(3),yA("vertical",!0),_(8),_A(Yo(19,8,A.isExportSessionEnabledObs)?18:-1),_(2),_A(Yo(21,10,A.importSessionEnabledObs)?20:-1)}}function EPA(t,e){if(t&1&&(S(0,"div",7),FA(1,cPA,2,0,"span",13)(2,IPA,8,2)(3,BPA,22,12),N()),t&2){let A=Y();yA("ngClass",vc(3,rPA,A.isEvalEditMode())),_(),_A(A.showSidePanel?-1:1),_(),_A(A.evalCase?2:3)}}function QPA(t,e){t&1&&(S(0,"div",33)(1,"span"),AA(2,"Loading agents, please wait..."),N()())}function uPA(t,e){t&1&&(S(0,"span"),AA(1,"Welcome to ADK!"),TA(2,"br"),AA(3," Select an agent on the left to begin with."),N())}function hPA(t,e){if(t&1&&(AA(0," Error message: "),TA(1,"br"),S(2,"pre",35),AA(3),N()),t&2){let A=Y(4);_(3),tt(A.loadingError())}}function fPA(t,e){t&1&&(S(0,"pre",34),AA(1,"Warning: No agents found in current folder."),N())}function mPA(t,e){if(t&1&&(S(0,"div"),AA(1," Failed to load agents. To get started, run "),S(2,"pre"),AA(3,"adk web"),N(),AA(4," in the folder that contains the agents."),TA(5,"br"),FA(6,hPA,4,1)(7,fPA,2,0,"pre",34),N()),t&2){let A=Y(3);_(6),_A(A.loadingError()?6:7)}}function pPA(t,e){if(t&1&&(S(0,"div",33),FA(1,uPA,4,0,"span"),eo(2,"async"),FA(3,mPA,8,1,"div"),N()),t&2){let A=Y(2);_(),_A((Yo(2,1,A.apps$)||AO(3,sPA)).length>0?1:3)}}function DPA(t,e){if(t&1&&(FA(0,QPA,3,0,"div",33),eo(1,"async"),FA(2,pPA,4,4,"div",33)),t&2){let A=Y();_A(A.isLoadingApps()?0:Yo(1,1,A.isApplicationSelectorEnabledObs)?2:-1)}}function wPA(t,e){if(t&1){let A=me();S(0,"button",36),mA("click",function(){QA(A);let n=Y();return uA(n.openDialog())}),S(1,"mat-icon"),AA(2,"priority_high"),N()()}}function yPA(t,e){if(t&1){let A=me();S(0,"app-chat-panel",37),eo(1,"async"),Xa("userInputChange",function(n){QA(A);let o=Y();return Wa(o.userInput,n)||(o.userInput=n),uA(n)})("userEditEvalCaseMessageChange",function(n){QA(A);let o=Y();return Wa(o.userEditEvalCaseMessage,n)||(o.userEditEvalCaseMessage=n),uA(n)}),mA("clickEvent",function(n){QA(A);let o=Y();return uA(o.clickEvent(n))})("handleKeydown",function(n){QA(A);let o=Y();return uA(o.handleKeydown(n.event,n.message))})("cancelEditMessage",function(n){QA(A);let o=Y();return uA(o.cancelEditMessage(n))})("saveEditMessage",function(n){QA(A);let o=Y();return uA(o.saveEditMessage(n))})("openViewImageDialog",function(n){QA(A);let o=Y();return uA(o.openViewImageDialog(n))})("openBase64InNewTab",function(n){QA(A);let o=Y();return uA(o.openBase64InNewTab(n.data,n.mimeType))})("editEvalCaseMessage",function(n){QA(A);let o=Y();return uA(o.editEvalCaseMessage(n))})("deleteEvalCaseMessage",function(n){QA(A);let o=Y();return uA(o.deleteEvalCaseMessage(n.message,n.index))})("editFunctionArgs",function(n){QA(A);let o=Y();return uA(o.editFunctionArgs(n))})("fileSelect",function(n){QA(A);let o=Y();return uA(o.onFileSelect(n))})("removeFile",function(n){QA(A);let o=Y();return uA(o.removeFile(n))})("removeStateUpdate",function(){QA(A);let n=Y();return uA(n.removeStateUpdate())})("sendMessage",function(n){QA(A);let o=Y();return uA(o.sendMessage(n))})("updateState",function(){QA(A);let n=Y();return uA(n.updateState())})("toggleAudioRecording",function(){QA(A);let n=Y();return uA(n.toggleAudioRecording())})("toggleVideoRecording",function(){QA(A);let n=Y();return uA(n.toggleVideoRecording())}),N()}if(t&2){let A,i=Y();yA("appName",i.appName)("messages",i.messages())("isChatMode",i.isChatMode())("evalCase",i.evalCase)("isEvalEditMode",i.isEvalEditMode())("isEvalCaseEditing",i.isEvalCaseEditing())("isEditFunctionArgsEnabled",(A=Yo(1,15,i.isEditFunctionArgsEnabledObs))!==null&&A!==void 0?A:!1),Za("userInput",i.userInput)("userEditEvalCaseMessage",i.userEditEvalCaseMessage),yA("selectedFiles",i.selectedFiles)("updatedSessionState",i.updatedSessionState())("eventData",i.eventData)("isAudioRecording",i.isAudioRecording)("isVideoRecording",i.isVideoRecording)("hoveredEventMessageIndices",i.hoveredEventMessageIndices)}}function vPA(t,e){if(t&1){let A=me();S(0,"div",11,1),TA(2,"div",38),S(3,"app-trace-event",39),mA("panelClosed",function(){QA(A);let n=Y();return uA(n.closeTraceEventDetailPanel())}),N()()}if(t&2){let A=Y();_(3),yA("userId",A.userId)("appName",A.appName)("sessionId",A.sessionId)}}var MPA="root_agent";function bPA(t){for(t=t.replace(/-/g,"+").replace(/_/g,"/");t.length%4!==0;)t+="=";return t}var nU=class t extends _8{nextPageLabel="Next Event";previousPageLabel="Previous Event";firstPageLabel="First Event";lastPageLabel="Last Event";getRangeLabel=(e,A,i)=>i===0?`Event 0 of ${i}`:(i=Math.max(i,0),`Event ${e*A+1} of ${i}`);static \u0275fac=(()=>{let e;return function(i){return(e||(e=ci(t)))(i||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac})},igA="Restarting bidirectional streaming is not currently supported. Please refresh the page or start a new session.",_7=class t{_snackBar=f(Yq);activatedRoute=f(xc);agentService=f(HB);artifactService=f(U8);changeDetectorRef=f(Et);dialog=f(Fc);document=f(at);downloadService=f(OB);evalService=f(Rl);eventService=f(zB);featureFlagService=f(Gc);graphService=f(PB);localFileService=f(J8);location=f(ha);renderer=f(qi);router=f(vl);safeValuesService=f($2);sessionService=f(A1);streamChatService=f(T8);stringToColorService=f(jB);traceService=f(e1);chatPanel=qs.required(ZB);sideDrawer=qs.required("sideDrawer");sidePanel=qs.required(OQ);evalTab=qs(g2);scrollContainer=qs.required("autoScroll");bottomPanelRef=qs.required("bottomPanel");enableSseIndicator=Ao(!1);isChatMode=Ao(!0);isEvalCaseEditing=Ao(!1);hasEvalCaseChanged=Ao(!1);isEvalEditMode=Ao(!1);videoElement;currentMessage="";messages=Ao([]);lastTextChunk="";streamingTextMessage=null;latestThought="";artifacts=[];userInput="";userEditEvalCaseMessage="";userId="user";appName="";sessionId="";evalCase=null;updatedEvalCase=null;evalSetId="";isAudioRecording=!1;isVideoRecording=!1;longRunningEvents=[];functionCallEventId="";redirectUri=ds.getBaseUrlWithoutPath();showSidePanel=!0;useSse=!1;currentSessionState={};root_agent=MPA;updatedSessionState=Ao(null);isModelThinkingSubject=new Fi(!1);sessionHasUsedBidi=new Set;eventData=new Map;traceData=[];renderedEventGraph;rawSvgString=null;selectedEvent=void 0;selectedEventIndex=void 0;llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";getMediaTypeFromMimetype=P8;selectedFiles=[];MediaType=gC;selectedAppControl=new y0("",{nonNullable:!0});openBase64InNewTab=this.safeValuesService.openBase64InNewTab;isLoadingApps=Ao(!1);loadingError=Ao("");apps$=Ce([]).pipe(So(()=>{this.isLoadingApps.set(!0),this.selectedAppControl.disable()}),$n(()=>this.agentService.listApps().pipe(Gr(e=>(this.loadingError.set(e.message),Ce(void 0))))),Xn(1),So(e=>{this.isLoadingApps.set(!1),this.selectedAppControl.enable(),e?.length==1&&this.router.navigate([],{relativeTo:this.activatedRoute,queryParams:{app:e[0]}})}),h2());importSessionEnabledObs=this.featureFlagService.isImportSessionEnabled();isEditFunctionArgsEnabledObs=this.featureFlagService.isEditFunctionArgsEnabled();isSessionUrlEnabledObs=this.featureFlagService.isSessionUrlEnabled();isApplicationSelectorEnabledObs=this.featureFlagService.isApplicationSelectorEnabled();isTokenStreamingEnabledObs=this.featureFlagService.isTokenStreamingEnabled();isExportSessionEnabledObs=this.featureFlagService.isExportSessionEnabled();bottomPanelVisible=!1;hoveredEventMessageIndices=[];constructor(){}ngOnInit(){if(this.syncSelectedAppFromUrl(),this.updateSelectedAppUrl(),this.streamChatService.onStreamClose().subscribe(i=>{let n=`Please check server log for full details: +`+i;this.openSnackBar(n,"OK")}),new URL(window.location.href).searchParams.has("code")){let i=window.location.href;window.opener?.postMessage({authResponseUrl:i},window.origin),window.close()}this.agentService.getApp().subscribe(i=>{this.appName=i}),ga([this.agentService.getLoadingState(),this.isModelThinkingSubject]).subscribe(([i,n])=>{let o=this.messages()[this.messages().length-1];i?!o?.isLoading&&!this.streamingTextMessage&&this.messages.update(r=>[...r,{role:"bot",isLoading:!0}]):o?.isLoading&&!n&&(this.messages.update(r=>r.slice(0,-1)),this.changeDetectorRef.detectChanges())}),this.traceService.selectedTraceRow$.subscribe(i=>{let n=i?.attributes["gcp.vertex.agent.event_id"];n&&this.eventData.has(n)?this.bottomPanelVisible=!0:this.bottomPanelVisible=!1}),this.traceService.hoveredMessageIndices$.subscribe(i=>this.hoveredEventMessageIndices=i)}get sessionTab(){return this.sidePanel().sessionTabComponent()}ngAfterViewInit(){this.showSidePanel=!0,this.sideDrawer()?.open()}selectApp(e){e!=this.appName&&(this.agentService.setApp(e),this.loadSessionByUrlOrReset())}loadSessionByUrlOrReset(){this.isSessionUrlEnabledObs.subscribe(e=>{let A=this.activatedRoute.snapshot.queryParams.session;if(!e||!A){this.createSessionAndReset();return}A&&this.sessionService.getSession(this.userId,this.appName,A).pipe(Xn(1),Gr(i=>(this.openSnackBar("Cannot find specified session. Creating a new one.","OK"),this.createSessionAndReset(),Ce(null)))).subscribe(i=>{i&&this.updateWithSelectedSession(i)})})}createSessionAndReset(){this.createSession(),this.eventData=new Map,this.messages.set([]),this.artifacts=[],this.userInput="",this.longRunningEvents=[]}createSession(){this.sessionService.createSession(this.userId,this.appName).subscribe(e=>{this.currentSessionState=e.state,this.sessionId=e.id??"",this.sessionTab?.refreshSession(),this.isSessionUrlEnabledObs.subscribe(A=>{A&&this.updateSelectedSessionUrl()})})}sendMessage(e){return Ni(this,null,function*(){if(e.preventDefault(),!this.userInput.trim()&&this.selectedFiles.length<=0||e instanceof KeyboardEvent&&(e.isComposing||e.keyCode===229))return;if(this.userInput.trim()&&this.messages.update(i=>[...i,{role:"user",text:this.userInput}]),this.selectedFiles.length>0){let i=this.selectedFiles.map(n=>({file:n.file,url:n.url}));this.messages.update(n=>[...n,{role:"user",attachments:i}])}let A={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:yield this.getUserMessageParts()},streaming:this.useSse,stateDelta:this.updatedSessionState()};this.selectedFiles=[],this.streamingTextMessage=null,this.agentService.runSse(A).subscribe({next:i=>Ni(this,null,function*(){if(i.error){this.openSnackBar(i.error,"OK");return}if(i.content)for(let n of this.combineTextParts(i.content.parts))this.processPart(i,n),this.traceService.setEventData(this.eventData);else i.errorMessage?this.processErrorMessage(i):i.actions&&this.processActionArtifact(i);this.changeDetectorRef.detectChanges()}),error:i=>{console.error("Send message error:",i),this.openSnackBar(i,"OK")},complete:()=>{this.updatedSessionState()&&(this.currentSessionState=this.updatedSessionState(),this.updatedSessionState.set(null)),this.streamingTextMessage=null,this.sessionTab?.reloadSession(this.sessionId),this.eventService.getTrace(this.sessionId).pipe(Gr(i=>i.status===404?Ce(null):Ce([]))).subscribe(i=>{this.traceData=i,this.changeDetectorRef.detectChanges()}),this.traceService.setMessages(this.messages()),this.changeDetectorRef.detectChanges()}}),this.userInput="",this.changeDetectorRef.detectChanges()})}processErrorMessage(e){this.storeEvents(e,e),this.insertMessageBeforeLoadingMessage({text:e.errorMessage,role:"bot"})}processPart(e,A){let i=e.groundingMetadata?.searchEntryPoint?.renderedContent;if(A.text){this.isModelThinkingSubject.next(!1);let n=A.text;if(A.thought){if(n!==this.latestThought){this.storeEvents(A,e);let o={role:"bot",text:this.processThoughtText(n),thought:!0,eventId:e.id};this.insertMessageBeforeLoadingMessage(o)}this.latestThought=n}else if(this.streamingTextMessage){if(i&&(this.streamingTextMessage.renderedContent=e.groundingMetadata.searchEntryPoint.renderedContent),n==this.streamingTextMessage.text){this.storeEvents(A,e),this.streamingTextMessage=null;return}this.streamingTextMessage.text+=n}else if(this.streamingTextMessage={role:"bot",text:this.processThoughtText(n),thought:!!A.thought,eventId:e.id},i&&(this.streamingTextMessage.renderedContent=e.groundingMetadata.searchEntryPoint.renderedContent),this.insertMessageBeforeLoadingMessage(this.streamingTextMessage),!this.useSse){this.storeEvents(A,e),this.streamingTextMessage=null;return}}else A.thought?this.isModelThinkingSubject.next(!0):(this.isModelThinkingSubject.next(!1),this.storeEvents(A,e),this.storeMessage(A,e,e.author==="user"?"user":"bot"))}getUserMessageParts(){return Ni(this,null,function*(){let e=[];if(this.userInput.trim()&&e.push({text:`${this.userInput}`}),this.selectedFiles.length>0)for(let A of this.selectedFiles)e.push(yield this.localFileService.createMessagePartFromFile(A.file));return e})}processActionArtifact(e){e.actions&&e.actions.artifactDelta&&(this.storeEvents(null,e),this.storeMessage(null,e,"bot"))}combineTextParts(e){let A=[],i;for(let n of e)n.text?i?i.text+=n.text:(i={text:n.text},A.push(i)):(i=void 0,A.push(n));return A}updateRedirectUri(e,A){try{let i=new URL(e);return i.searchParams.set("redirect_uri",A),i.toString()}catch(i){return console.warn("Failed to update redirect URI: ",i),e}}storeMessage(e,A,i,n,o){if(A?.author&&this.createAgentIconColorClass(A.author),A?.longRunningToolIds&&A.longRunningToolIds.length>0){this.getAsyncFunctionsFromParts(A.longRunningToolIds,A.content.parts,A.invocationId);let s=this.longRunningEvents[0].function;if(s.args.authConfig&&s.args.authConfig.exchangedAuthCredential&&s.args.authConfig.exchangedAuthCredential.oauth2){let a=s.args.authConfig.exchangedAuthCredential.oauth2.authUri,c=this.updateRedirectUri(a,this.redirectUri);this.openOAuthPopup(c).then(g=>{this.functionCallEventId=A.id,this.sendOAuthResponse(s,g,this.redirectUri)}).catch(g=>{console.error("OAuth Error:",g)})}else this.functionCallEventId=A.id}if(A?.actions&&A.actions.artifactDelta)for(let s in A.actions.artifactDelta)A.actions.artifactDelta.hasOwnProperty(s)&&this.renderArtifact(s,A.actions.artifactDelta[s]);A?.evalStatus&&this.isChatMode.set(!1);let r={role:i,evalStatus:A?.evalStatus,failedMetric:A?.failedMetric,evalScore:A?.evalScore,evalThreshold:A?.evalThreshold,actualInvocationToolUses:A?.actualInvocationToolUses,expectedInvocationToolUses:A?.expectedInvocationToolUses,actualFinalResponse:A?.actualFinalResponse,expectedFinalResponse:A?.expectedFinalResponse,invocationIndex:n!==void 0?n:void 0,finalResponsePartIndex:o?.finalResponsePartIndex!==void 0?o.finalResponsePartIndex:void 0,toolUseIndex:o?.toolUseIndex!==void 0?o.toolUseIndex:void 0};if(e){if(e.inlineData){let s=this.formatBase64Data(e.inlineData.data,e.inlineData.mimeType);r.inlineData={displayName:e.inlineData.displayName,data:s,mimeType:e.inlineData.mimeType}}else if(e.text)r.text=e.text,r.thought=!!e.thought,A?.groundingMetadata&&A.groundingMetadata.searchEntryPoint&&A.groundingMetadata.searchEntryPoint.renderedContent&&(r.renderedContent=A.groundingMetadata.searchEntryPoint.renderedContent),r.eventId=A?.id;else if(e.functionCall)r.functionCall=e.functionCall,r.eventId=A?.id;else if(e.functionResponse)r.functionResponse=e.functionResponse,r.eventId=A?.id;else if(e.executableCode)r.executableCode=e.executableCode;else if(e.codeExecutionResult&&(r.codeExecutionResult=e.codeExecutionResult,A.actions&&A.actions.artifact_delta))for(let s in A.actions.artifact_delta)A.actions.artifact_delta.hasOwnProperty(s)&&this.renderArtifact(s,A.actions.artifact_delta[s])}e&&Object.keys(e).length>0&&this.insertMessageBeforeLoadingMessage(r)}insertMessageBeforeLoadingMessage(e){this.messages.update(A=>{let i=A[A.length-1];return i?.isLoading?[...A.slice(0,-1),e,i]:[...A,e]})}formatBase64Data(e,A){let i=bPA(e);return`data:${A};base64,${i}`}renderArtifact(e,A){let i={role:"bot",inlineData:{data:"",mimeType:"image/png"}};this.insertMessageBeforeLoadingMessage(i);let n=this.messages(),r=n[n.length-1]?.isLoading?n.length-2:n.length-1;this.artifactService.getArtifactVersion(this.userId,this.appName,this.sessionId,e,A).subscribe(s=>{let a=s.inlineData.mimeType,c=this.formatBase64Data(s.inlineData.data,a),g=P8(a),I={name:this.createDefaultArtifactName(a),data:c,mimeType:a,mediaType:g};this.messages.update(C=>{let d=[...C];return d[r]={role:"bot",inlineData:I},d}),this.artifacts=[...this.artifacts,{id:e,data:c,mimeType:a,versionId:A,mediaType:P8(a)}]})}storeEvents(e,A){let i="";e==null&&A.actions.artifactDelta?i+="eventAction: artifact":e&&(e.text?i+="text:"+e.text:e.functionCall?i+="functionCall:"+e.functionCall.name:e.functionResponse?i+="functionResponse:"+e.functionResponse.name:e.executableCode?i+="executableCode:"+e.executableCode.code.slice(0,10):e.codeExecutionResult?i+="codeExecutionResult:"+e.codeExecutionResult.outcome:e.errorMessage&&(i+="errorMessage:"+e.errorMessage)),A.title=i,this.eventData.set(A.id,A),this.eventData=new Map(this.eventData)}sendOAuthResponse(e,A,i){this.longRunningEvents.pop();let n={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:[]}};var o=structuredClone(e.args.authConfig);o.exchangedAuthCredential.oauth2.authResponseUri=A,o.exchangedAuthCredential.oauth2.redirectUri=i,n.functionCallEventId=this.functionCallEventId,n.newMessage.parts.push({function_response:{id:e.id,name:e.name,response:o}});let r=[];this.agentService.runSse(n).subscribe({next:s=>Ni(this,null,function*(){r.push(s)}),error:s=>console.error("SSE error:",s),complete:()=>{this.processRunSseResponse(r)}})}processRunSseResponse(e){for(let A of e)if(A.content)for(let i of A.content.parts)this.processPart(A,i)}openDialog(){this.dialog.open(v7,{width:"600px",data:{event:this.longRunningEvents[0].function,appName:this.appName,userId:this.userId,sessionId:this.sessionId,functionCallEventId:this.functionCallEventId,invocationId:this.longRunningEvents[0].invocationId}}).afterClosed().subscribe(A=>{A&&(this.removeFinishedLongRunningEvents(A.events),this.processRunSseResponse(A.response),this.changeDetectorRef.detectChanges())})}removeFinishedLongRunningEvents(e){let A=new Set(e.map(i=>i.id));this.longRunningEvents=this.longRunningEvents.filter(i=>!A.has(i.id))}createAgentIconColorClass(e){let A=this.stringToColorService.stc(e),i=`custom-icon-color-${A.replace("#","")}`;this.injectCustomIconColorStyle(i,A)}clickEvent(e){let A=this.messages()[e].eventId;this.sideDrawer()?.open(),this.showSidePanel=!0,this.selectedEvent=this.eventData.get(A),this.selectedEventIndex=this.getIndexOfKeyInMap(A);let i=A;this.eventService.getEventTrace(i).subscribe(n=>{n[this.llmRequestKey]&&(this.llmRequest=JSON.parse(n[this.llmRequestKey])),n[this.llmResponseKey]&&(this.llmResponse=JSON.parse(n[this.llmResponseKey]))}),this.eventService.getEvent(this.userId,this.appName,this.sessionId,this.selectedEvent.id).subscribe(n=>Ni(this,null,function*(){if(!n.dotSrc){this.renderedEventGraph=void 0;return}let o=n.dotSrc,r=yield this.graphService.render(o);this.rawSvgString=r,this.renderedEventGraph=this.safeValuesService.bypassSecurityTrustHtml(r)}))}ngOnDestroy(){this.streamChatService.closeStream()}onAppSelection(e){this.isAudioRecording&&(this.stopAudioRecording(),this.isAudioRecording=!1),this.isVideoRecording&&(this.stopVideoRecording(),this.isVideoRecording=!1),this.evalTab()?.resetEvalResults(),this.traceData=[],this.bottomPanelVisible=!1}toggleAudioRecording(){this.isAudioRecording?this.stopAudioRecording():this.startAudioRecording()}startAudioRecording(){if(this.sessionHasUsedBidi.has(this.sessionId)){this.openSnackBar(igA,"OK");return}this.isAudioRecording=!0,this.streamChatService.startAudioChat({appName:this.appName,userId:this.userId,sessionId:this.sessionId}),this.messages.update(e=>[...e,{role:"user",text:"Speaking..."},{role:"bot",text:"Speaking..."}]),this.sessionHasUsedBidi.add(this.sessionId)}stopAudioRecording(){this.streamChatService.stopAudioChat(),this.isAudioRecording=!1}toggleVideoRecording(){this.isVideoRecording?this.stopVideoRecording():this.startVideoRecording()}startVideoRecording(){if(this.sessionHasUsedBidi.has(this.sessionId)){this.openSnackBar(igA,"OK");return}let e=this.chatPanel()?.videoContainer;e&&(this.isVideoRecording=!0,this.streamChatService.startVideoChat({appName:this.appName,userId:this.userId,sessionId:this.sessionId,videoContainer:e}),this.messages.update(A=>[...A,{role:"user",text:"Speaking..."}]),this.sessionHasUsedBidi.add(this.sessionId))}stopVideoRecording(){let e=this.chatPanel()?.videoContainer;e&&(this.streamChatService.stopVideoChat(e),this.isVideoRecording=!1)}getAsyncFunctionsFromParts(e,A,i){for(let n of A)n.functionCall&&e.includes(n.functionCall.id)&&this.longRunningEvents.push({function:n.functionCall,invocationId:i})}openOAuthPopup(e){return new Promise((A,i)=>{if(!this.safeValuesService.windowOpen(window,e,"oauthPopup","width=600,height=700")){i("Popup blocked!");return}let o=r=>{if(r.origin!==window.location.origin)return;let{authResponseUrl:s}=r.data;s?(A(s),window.removeEventListener("message",o)):console.log("OAuth failed",r)};window.addEventListener("message",o)})}toggleSidePanel(){this.showSidePanel?this.sideDrawer()?.close():this.sideDrawer()?.open(),this.showSidePanel=!this.showSidePanel}handleTabChange(e){this.isChatMode()||(this.resetEditEvalCaseVars(),this.handleReturnToSession(!0))}handleReturnToSession(e){this.sessionTab?.getSession(this.sessionId),this.evalTab()?.resetEvalCase(),this.isChatMode.set(!0)}handleEvalNotInstalled(e){e&&this.openSnackBar(e,"OK")}resetEventsAndMessages(){this.eventData.clear(),this.messages.set([]),this.artifacts=[]}updateWithSelectedSession(e){!e||!e.id||!e.events||!e.state||(this.traceService.resetTraceService(),this.sessionId=e.id,this.currentSessionState=e.state,this.evalCase=null,this.isChatMode.set(!0),this.isSessionUrlEnabledObs.subscribe(A=>{A&&this.updateSelectedSessionUrl()}),this.resetEventsAndMessages(),e.events.forEach(A=>{A.content?.parts?.forEach(i=>{this.storeMessage(i,A,A.author==="user"?"user":"bot"),A.author&&A.author!=="user"&&this.storeEvents(i,A)})}),this.eventService.getTrace(this.sessionId).subscribe(A=>{this.traceData=A,this.traceService.setEventData(this.eventData),this.traceService.setMessages(this.messages())}),this.bottomPanelVisible=!1,this.changeDetectorRef.detectChanges())}updateWithSelectedEvalCase(e){this.evalCase=e,this.isChatMode.set(!1),this.resetEventsAndMessages();let A=0;for(let i of e.conversation){if(i.userContent?.parts)for(let n of i.userContent.parts)this.storeMessage(n,null,"user");if(i.intermediateData?.toolUses){let n=0;for(let o of i.intermediateData.toolUses){let r={functionCall:{name:o.name,args:o.args}};this.storeMessage(r,null,"bot",A,{toolUseIndex:n}),n++;let s={functionResponse:{name:o.name}};this.storeMessage(s,null,"bot")}}if(i.finalResponse?.parts){let n=0;for(let o of i.finalResponse.parts)this.storeMessage(o,null,"bot",A,{finalResponsePartIndex:n}),n++}A++}}updateSelectedEvalSetId(e){this.evalSetId=e}editEvalCaseMessage(e){this.isEvalCaseEditing.set(!0),this.userEditEvalCaseMessage=e.text,e.isEditing=!0,setTimeout(()=>{let A=this.chatPanel()?.textarea?.nativeElement;if(!A)return;A.focus();let i=A.value.length;e.text.charAt(i-1)===` +`&&i--,A.setSelectionRange(i,i)},0)}editFunctionArgs(e){this.isEvalCaseEditing.set(!0),this.dialog.open(mf,{maxWidth:"90vw",maxHeight:"90vh",data:{dialogHeader:"Edit function arguments",functionName:e.functionCall.name,jsonContent:e.functionCall.args}}).afterClosed().subscribe(i=>{this.isEvalCaseEditing.set(!1),i&&(this.hasEvalCaseChanged.set(!0),e.functionCall.args=i,this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[e.invocationIndex].intermediateData.toolUses[e.toolUseIndex].args=i)})}saveEvalCase(){this.evalService.updateEvalCase(this.appName,this.evalSetId,this.updatedEvalCase.evalId,this.updatedEvalCase).subscribe(e=>{this.openSnackBar("Eval case updated","OK"),this.resetEditEvalCaseVars()})}cancelEditEvalCase(){this.resetEditEvalCaseVars(),this.updateWithSelectedEvalCase(this.evalCase)}resetEditEvalCaseVars(){this.hasEvalCaseChanged.set(!1),this.isEvalCaseEditing.set(!1),this.isEvalEditMode.set(!1),this.updatedEvalCase=null}cancelEditMessage(e){e.isEditing=!1,this.isEvalCaseEditing.set(!1)}saveEditMessage(e){this.hasEvalCaseChanged.set(!0),this.isEvalCaseEditing.set(!1),e.isEditing=!1,e.text=this.userEditEvalCaseMessage?this.userEditEvalCaseMessage:" ",this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[e.invocationIndex].finalResponse.parts[e.finalResponsePartIndex]={text:this.userEditEvalCaseMessage},this.userEditEvalCaseMessage=""}handleKeydown(e,A){e.key==="Enter"&&!e.shiftKey?(e.preventDefault(),this.saveEditMessage(A)):e.key==="Escape"&&this.cancelEditMessage(A)}deleteEvalCaseMessage(e,A){this.hasEvalCaseChanged.set(!0),this.messages.update(i=>i.filter((n,o)=>o!==A)),this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[e.invocationIndex].finalResponse.parts.splice(e.finalResponsePartIndex,1)}editEvalCase(){this.isEvalEditMode.set(!0)}deleteEvalCase(){let e={title:"Confirm delete",message:`Are you sure you want to delete ${this.evalCase.evalId}?`,confirmButtonText:"Delete",cancelButtonText:"Cancel"};this.dialog.open(yf,{width:"600px",data:e}).afterClosed().subscribe(i=>{i&&(this.evalTab()?.deleteEvalCase(this.evalCase.evalId),this.openSnackBar("Eval case deleted","OK"))})}updateSessionState(e){this.currentSessionState=e.state}onNewSessionClick(){this.createSession(),this.eventData.clear(),this.messages.set([]),this.artifacts=[],this.traceData=[],this.bottomPanelVisible=!1,this.evalTab()?.showEvalHistory&&this.evalTab()?.toggleEvalHistoryButton()}onFileSelect(e){let A=e.target;if(A.files)for(let i=0;i{i[this.llmRequestKey]&&(this.llmRequest=JSON.parse(i[this.llmRequestKey])),i[this.llmResponseKey]&&(this.llmResponse=JSON.parse(i[this.llmResponseKey]))}),this.eventService.getEvent(this.userId,this.appName,this.sessionId,this.selectedEvent.id).subscribe(i=>Ni(this,null,function*(){if(!i.dotSrc){this.renderedEventGraph=void 0;return}let n=yield this.graphService.render(i.dotSrc);this.rawSvgString=n,this.renderedEventGraph=this.safeValuesService.bypassSecurityTrustHtml(n)}))}deleteSession(e){let A={title:"Confirm delete",message:`Are you sure you want to delete this session ${this.sessionId}?`,confirmButtonText:"Delete",cancelButtonText:"Cancel"};this.dialog.open(yf,{width:"600px",data:A}).afterClosed().subscribe(n=>{n&&this.sessionService.deleteSession(this.userId,this.appName,e).subscribe(o=>{let r=this.sessionTab?.refreshSession(e);r?this.sessionTab?.getSession(r.id):window.location.reload()})})}syncSelectedAppFromUrl(){ga([this.router.events.pipe(Nt(e=>e instanceof ac),je(()=>this.activatedRoute.snapshot.queryParams)),this.apps$]).subscribe(([e,A])=>{if(A&&A.length){let i=e.app;i&&A.includes(i)?this.selectedAppControl.setValue(i):i&&this.openSnackBar(`Agent '${i}' not found`,"OK")}})}updateSelectedAppUrl(){this.selectedAppControl.valueChanges.pipe(il(),Nt(Boolean)).subscribe(e=>{this.selectApp(e);let A=this.activatedRoute.snapshot.queryParams.app;e!==A&&this.router.navigate([],{queryParams:{app:e},queryParamsHandling:"merge"})})}updateSelectedSessionUrl(){let e=this.router.createUrlTree([],{queryParams:{session:this.sessionId},queryParamsHandling:"merge"}).toString();this.location.replaceState(e)}handlePageEvent(e){if(e.pageIndex>=0){let A=this.getKeyAtIndexInMap(e.pageIndex);A&&this.selectEvent(A)}}closeSelectedEvent(){this.selectedEvent=void 0,this.selectedEventIndex=void 0}getIndexOfKeyInMap(e){let A=0,i=(o,r)=>0,n=Array.from(this.eventData.keys()).sort(i);for(let o of n){if(o===e)return A;A++}}getKeyAtIndexInMap(e){let A=(n,o)=>0,i=Array.from(this.eventData.keys()).sort(A);if(e>=0&&e{console.log(e),this.downloadService.downloadObjectAsJson(e,`session-${this.sessionId}.json`)})}updateState(){this.dialog.open(mf,{maxWidth:"90vw",maxHeight:"90vh",data:{dialogHeader:"Update state",jsonContent:this.currentSessionState}}).afterClosed().subscribe(A=>{A&&this.updatedSessionState.set(A)})}removeStateUpdate(){this.updatedSessionState.set(null)}closeTraceEventDetailPanel(){this.bottomPanelVisible=!1,this.traceService.selectedRow(void 0),this.traceService.setHoveredMessages(void 0,"")}importSession(){let e=document.createElement("input");e.type="file",e.accept="application/json",e.onchange=()=>{if(!e.files||e.files.length===0)return;let A=e.files[0],i=new FileReader;i.onload=n=>{if(n.target?.result)try{let o=JSON.parse(n.target.result);if(!o.userId||!o.appName||!o.events){this.openSnackBar("Invalid session file format","OK");return}this.sessionService.importSession(o.userId,o.appName,o.events).subscribe(r=>{this.openSnackBar("Session imported","OK"),this.sessionTab?.refreshSession()})}catch{this.openSnackBar("Error parsing session file","OK")}},i.readAsText(A)},e.click()}injectCustomIconColorStyle(e,A){if(this.document.getElementById(e))return;let i=this.renderer.createElement("style");this.renderer.setAttribute(i,"id",e),this.renderer.setAttribute(i,"type","text/css");let n=` + .${e} { + background-color: ${A} !important; + } + `;this.renderer.appendChild(i,this.renderer.createText(n)),this.renderer.appendChild(this.document.head,i)}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-chat"]],viewQuery:function(A,i){A&1&&(ls(i.chatPanel,ZB,5),ls(i.sideDrawer,iPA,5),ls(i.sidePanel,OQ,5),ls(i.evalTab,g2,5),ls(i.scrollContainer,nPA,5),ls(i.bottomPanelRef,oPA,5)),A&2&&yc(6)},features:[ut([{provide:_8,useClass:nU}])],decls:12,vars:24,consts:[["sideDrawer",""],["bottomPanel",""],["autosize","",1,"drawer-container"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"position","absolute","width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","20px","z-index","9999"],["mode","side","appResizableDrawer","",1,"side-drawer"],[3,"closePanel","tabChange","eventSelected","sessionSelected","sessionReloaded","evalCaseSelected","evalSetIdSelected","returnToSession","evalNotInstalled","page","closeSelectedEvent","openImageDialog","appSelectionChange","isApplicationSelectorEnabledObs","apps$","isLoadingApps","selectedAppControl","showSidePanel","appName","userId","sessionId","traceData","eventData","currentSessionState","artifacts","selectedEvent","selectedEventIndex","renderedEventGraph","rawSvgString","llmRequest","llmResponse"],[1,"chat-container"],[1,"chat-toolbar",3,"ngClass"],[1,"chat-card"],["mat-fab","","color","primary",1,"fab-button"],[3,"appName","messages","isChatMode","evalCase","isEvalEditMode","isEvalCaseEditing","isEditFunctionArgsEnabled","userInput","userEditEvalCaseMessage","selectedFiles","updatedSessionState","eventData","isAudioRecording","isVideoRecording","hoveredEventMessageIndices"],["appResizableBottomPanel","",1,"trace-detail-container"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"position","absolute","width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","20px","z-index","9999",3,"click"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","-2px","z-index","9999"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","-2px","z-index","9999",3,"click"],[2,"display","flex"],[1,"toolbar-session-text"],[1,"toolbar-session-id"],[1,"toolbar-actions"],["mat-button","",2,"height","30px",3,"click"],["mat-flat-button","",2,"height","30px",3,"click","disabled"],["matTooltip","Edit current eval case",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Delete current eval case",1,"material-symbols-outlined","toolbar-icon",3,"click"],[1,"toolbar-sse-toggle"],[1,"example-margin",3,"change","checked","disabled"],[2,"margin-left","8px","margin-right","8px","height","22px",3,"vertical"],[2,"display","flex","align-items","center"],[1,"toolbar-new-sesison",3,"click"],["matTooltip","Delete current session",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Export current session",1,"material-symbols-outlined","toolbar-icon"],["matTooltip","Import session",1,"material-symbols-outlined","toolbar-icon"],["matTooltip","Export current session",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Import session",1,"material-symbols-outlined","toolbar-icon",3,"click"],[1,"empty-state-container"],[1,"warning"],[1,"error"],["mat-fab","","color","primary",1,"fab-button",3,"click"],[3,"userInputChange","userEditEvalCaseMessageChange","clickEvent","handleKeydown","cancelEditMessage","saveEditMessage","openViewImageDialog","openBase64InNewTab","editEvalCaseMessage","deleteEvalCaseMessage","editFunctionArgs","fileSelect","removeFile","removeStateUpdate","sendMessage","updateState","toggleAudioRecording","toggleVideoRecording","appName","messages","isChatMode","evalCase","isEvalEditMode","isEvalCaseEditing","isEditFunctionArgsEnabled","userInput","userEditEvalCaseMessage","selectedFiles","updatedSessionState","eventData","isAudioRecording","isVideoRecording","hoveredEventMessageIndices"],[1,"bottom-resize-handler"],[3,"panelClosed","userId","appName","sessionId"]],template:function(A,i){if(A&1){let n=me();S(0,"mat-drawer-container",2),FA(1,aPA,2,0,"span",3),S(2,"mat-drawer",4,0)(4,"app-side-panel",5),mA("closePanel",function(){return QA(n),uA(i.toggleSidePanel())})("tabChange",function(r){return QA(n),uA(i.handleTabChange(r))})("eventSelected",function(r){return QA(n),uA(i.selectEvent(r))})("sessionSelected",function(r){return QA(n),uA(i.updateWithSelectedSession(r))})("sessionReloaded",function(r){return QA(n),uA(i.updateSessionState(r))})("evalCaseSelected",function(r){return QA(n),uA(i.updateWithSelectedEvalCase(r))})("evalSetIdSelected",function(r){return QA(n),uA(i.updateSelectedEvalSetId(r))})("returnToSession",function(r){return QA(n),uA(i.handleReturnToSession(r))})("evalNotInstalled",function(r){return QA(n),uA(i.handleEvalNotInstalled(r))})("page",function(r){return QA(n),uA(i.handlePageEvent(r))})("closeSelectedEvent",function(){return QA(n),uA(i.closeSelectedEvent())})("openImageDialog",function(r){return QA(n),uA(i.openViewImageDialog(r))})("appSelectionChange",function(r){return QA(n),uA(i.onAppSelection(r))}),N()(),S(5,"div",6),FA(6,EPA,4,5,"div",7),S(7,"mat-card",8),FA(8,DPA,3,3)(9,wPA,3,0,"button",9)(10,yPA,2,17,"app-chat-panel",10),N(),FA(11,vPA,4,3,"div",11),N()()}A&2&&(_(),_A(!i.showSidePanel&&i.appName===""?1:-1),_(3),yA("isApplicationSelectorEnabledObs",i.isApplicationSelectorEnabledObs)("apps$",i.apps$)("isLoadingApps",i.isLoadingApps)("selectedAppControl",i.selectedAppControl)("showSidePanel",i.showSidePanel)("appName",i.appName)("userId",i.userId)("sessionId",i.sessionId)("traceData",i.traceData)("eventData",i.eventData)("currentSessionState",i.currentSessionState)("artifacts",i.artifacts)("selectedEvent",i.selectedEvent)("selectedEventIndex",i.selectedEventIndex)("renderedEventGraph",i.renderedEventGraph)("rawSvgString",i.rawSvgString)("llmRequest",i.llmRequest)("llmResponse",i.llmResponse),_(2),_A(i.appName!=""?6:-1),_(2),_A(i.selectedAppControl.value?-1:8),_(),_A(i.longRunningEvents.length>0?9:-1),_(),_A(i.appName!=""?10:-1),_(),_A(i.bottomPanelVisible?11:-1))},dependencies:[BR,kl,dR,O8,Mr,cB,_c,Sl,Vs,dr,ER,vq,y8,Jz,H8,F7,Qg,ZB,OQ],styles:[".expand-side-drawer[_ngcontent-%COMP%]{position:relative;top:4%;left:1%}.drawer-container[_ngcontent-%COMP%]{height:100%;background-color:var(--chat-drawer-container-background-color)}.chat-container[_ngcontent-%COMP%]{width:100%;height:100%;max-width:100%;margin:auto;display:flex;flex-direction:column;flex:1}.event-container[_ngcontent-%COMP%]{color:var(--chat-event-container-color)}.chat-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;overflow:hidden;flex:1;min-height:12%;box-shadow:none;background-color:var(--chat-card-background-color)}.function-event-button[_ngcontent-%COMP%] .mdc-button__label[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}.loading-bar[_ngcontent-%COMP%]{width:100px;margin:15px}.chat-messages[_ngcontent-%COMP%]{flex-grow:1;overflow-y:auto;padding:20px;margin-top:16px}.message-card[_ngcontent-%COMP%]{padding:5px 20px;margin:5px;border-radius:20px;max-width:80%;font-size:14px;font-weight:400;position:relative;display:inline-block}.function-event-button[_ngcontent-%COMP%]{background-color:var(--chat-function-event-button-background-color);margin:5px 5px 10px}.function-event-button-highlight[_ngcontent-%COMP%]{background-color:var(--chat-function-event-button-highlight-background-color);border-color:var(--chat-function-event-button-highlight-border-color)!important;color:var(--chat-function-event-button-highlight-color)!important}.user-message[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center}.user-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-user-message-message-card-background-color);align-self:flex-end;color:var(--chat-user-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]{display:flex;align-items:center}.bot-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-bot-message-message-card-background-color);align-self:flex-start;color:var(--chat-bot-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]:focus-within .message-card[_ngcontent-%COMP%]{background-color:var(--chat-bot-message-focus-within-message-card-background-color);border:1px solid var(--chat-bot-message-focus-within-message-card-border-color)}.message-textarea[_ngcontent-%COMP%]{background-color:var(--chat-message-textarea-background-color);max-width:100%;border:none;font-family:Google Sans,Helvetica Neue,sans-serif}.message-textarea[_ngcontent-%COMP%]:focus{background-color:var(--chat-message-textarea-focus-background-color);outline:none}.edit-message-buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%]{visibility:hidden;position:absolute;left:10px;z-index:10;background-color:var(--chat-eval-compare-container-background-color);overflow:hidden;border-radius:20px;padding:5px 20px;margin-bottom:10px;font-size:16px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .actual-result[_ngcontent-%COMP%]{border-right:2px solid var(--chat-actual-result-border-right-color);padding-right:8px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .expected-result[_ngcontent-%COMP%]{padding-left:12px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%]:hover .eval-compare-container[_ngcontent-%COMP%]{visibility:visible}.actual-expected-compare-container[_ngcontent-%COMP%]{display:flex}.score-threshold-container[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:10px;align-items:center;margin-top:15px;font-size:14px;font-weight:600}.eval-response-header[_ngcontent-%COMP%]{padding-bottom:5px;border-bottom:2px solid var(--chat-eval-response-header-border-bottom-color);font-style:italic;font-weight:700}.header-expected[_ngcontent-%COMP%]{color:var(--chat-header-expected-color)}.header-actual[_ngcontent-%COMP%]{color:var(--chat-header-actual-color)}.eval-case-edit-button[_ngcontent-%COMP%]{cursor:pointer;margin-left:4px;margin-right:4px}.eval-pass[_ngcontent-%COMP%]{display:flex;color:var(--chat-eval-pass-color)}.eval-fail[_ngcontent-%COMP%]{display:flex;color:var(--chat-eval-fail-color)}.navigation-button-sidepanel[_ngcontent-%COMP%]{margin-left:auto;margin-right:20px}.fab-button[_ngcontent-%COMP%]{position:fixed;bottom:200px;right:100px;z-index:1000}.sidepanel-toggle[_ngcontent-%COMP%]{position:relative;top:100px;z-index:1000}.side-drawer[_ngcontent-%COMP%]{background-color:var(--chat-side-drawer-background-color);color:var(--chat-side-drawer-color);border-radius:0}.file-preview[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px;margin-bottom:8px}.file-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:5px;background:var(--chat-file-item-background-color);padding:5px;border-radius:4px}button[_ngcontent-%COMP%]{margin-left:20px;margin-right:20px}.empty-state-container[_ngcontent-%COMP%]{color:var(--chat-empty-state-container-color);height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:Google Sans,sans-serif;font-weight:400;letter-spacing:normal;line-height:24px;font-size:18px}.empty-state-container[_ngcontent-%COMP%] pre.warning[_ngcontent-%COMP%]{color:var(--chat-warning-color)}.empty-state-container[_ngcontent-%COMP%] pre.error[_ngcontent-%COMP%]{color:var(--chat-error-color)}[_nghost-%COMP%] .mat-mdc-unelevated-button:not(:disabled){color:var(--chat-mat-mdc-unelevated-button-color);background-color:var(--chat-mat-mdc-unelevated-button-background-color)}[_nghost-%COMP%] .mdc-linear-progress__buffer-dots{background:var(--chat-mdc-linear-progress-buffer-dots-background-color)}[_nghost-%COMP%] .mat-mdc-select-arrow-wrapper{margin-left:4px}[_nghost-%COMP%] .mat-mdc-text-field-wrapper{border:1px solid var(--chat-mat-mdc-text-field-wrapper-border-color)}[_nghost-%COMP%] .mdc-notched-outline__leading, [_nghost-%COMP%] .mdc-notched-outline__notch, [_nghost-%COMP%] .mdc-notched-outline__trailing{border:none}[_nghost-%COMP%] .mat-mdc-form-field-icon-suffix{padding:0 10px 0 40px}[_nghost-%COMP%] .segment-key{color:var(--chat-segment-key-color)!important}.mat-mdc-select-placeholder[_ngcontent-%COMP%]{margin-left:20px}.bottom-resize-handler[_ngcontent-%COMP%]{background:var(--chat-bottom-resize-handler-background-color);height:5px;border-radius:4px;position:absolute;display:block;width:20%;left:40%;top:0;right:0;z-index:9999;cursor:ns-resize}.trace-detail-container[_ngcontent-%COMP%]{position:relative;background-color:var(--chat-trace-detail-container-background-color)}.trace-detail-container[_ngcontent-%COMP%] app-trace-event[_ngcontent-%COMP%]{padding-top:8px}.new-session-button[_ngcontent-%COMP%]{margin-top:0;margin-left:50px;width:130px;height:28px;font-size:14px}.adk-checkbox[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;right:0;margin-bottom:20px;margin-left:20px}.chat-toolbar[_ngcontent-%COMP%]{position:sticky;top:0;height:48px;background:var(--chat-toolbar-background-color);display:flex;align-items:center;z-index:10}.chat-toolbar.edit-mode[_ngcontent-%COMP%]{background:var(--chat-toolbar-edit-mode-background-color)}.toolbar-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center}.toolbar-session-text[_ngcontent-%COMP%]{color:var(--chat-toolbar-session-text-color);font-family:Roboto;font-size:12px;font-style:normal;font-weight:500;line-height:12px;letter-spacing:.8px;text-transform:uppercase;margin-left:20px;padding-top:4px}.toolbar-session-id[_ngcontent-%COMP%]{color:var(--chat-toolbar-session-id-color);font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px;margin-left:5px}.toolbar-icon[_ngcontent-%COMP%]{width:24px;height:24px;color:var(--chat-toolbar-icon-color);cursor:pointer;margin-right:16px}.toolbar-new-sesison[_ngcontent-%COMP%]{font-size:14px;margin-right:16px;color:var(--chat-toolbar-new-session-color);cursor:pointer;display:flex;align-items:center}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-label-text-size: 14px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-label-text-color: var(--chat-toolbar-sse-toggle-label-text-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-track-color: var(--chat-toolbar-sse-toggle-selected-track-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-focus-track-color: var(--chat-toolbar-sse-toggle-selected-track-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-hover-track-color: var(--chat-toolbar-sse-toggle-selected-track-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-handle-color: var(--chat-toolbar-sse-toggle-selected-handle-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-focus-handle-color: var(--chat-toolbar-sse-toggle-selected-handle-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-hover-handle-color: var(--chat-toolbar-sse-toggle-selected-handle-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-track-height: 24px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-track-width: 46px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-track-outline-color: var(--chat-toolbar-sse-toggle-track-outline-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-with-icon-handle-size: 20px} .mat-drawer-content{display:flex!important} .mat-drawer{border-right:1px solid var(--chat-mat-drawer-border-right-color)!important}"],changeDetection:0})};var zQ=class t{static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-root"]],decls:1,vars:0,template:function(A,i){A&1&&TA(0,"app-chat")},dependencies:[_7],encapsulation:2})};var kPA=[{path:"",component:zQ}],G7=class t{static \u0275fac=function(A){return new(A||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[w8.forRoot(kPA),w8]})};var K7=class{static getRuntimeConfig(){return window.runtimeConfig}};function SPA(t,e){if(t&1&&(S(0,"a",0),TA(1,"img",1),AA(2),N()),t&2){Y();let A=xb(0),i=xb(1);_(),L2("src",A,js),_(),Bt(" ",i," ")}}function RPA(t,e){t&1&&(S(0,"div"),AA(1," Invalid custom logo config. Make sure that your runtime config specifies both imgUrl and text in the logo field. "),N())}var U7=class t{logoConfig=K7.getRuntimeConfig().logo;static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-custom-logo"]],decls:4,vars:3,consts:[["href","/"],["width","32px","height","32px",1,"orcas-logo",3,"src"]],template:function(A,i){if(A&1&&(Rb(0)(1),FA(2,SPA,3,2,"a",0)(3,RPA,2,0,"div")),A&2){let n=Lb(i.logoConfig==null?null:i.logoConfig.imageUrl);_();let o=Lb(i.logoConfig==null?null:i.logoConfig.text);_(),_A(n&&o?2:3)}},styles:[`a[_ngcontent-%COMP%]{color:inherit;text-decoration:none;display:flex;align-items:center;gap:8px} + + + + + + + + + + + + + + + + +`]})};function aU(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var cd=aU();function cgA(t){cd=t}var kf={exec:()=>null};function Vn(t,e=""){let A=typeof t=="string"?t:t.source,i={replace:(n,o)=>{let r=typeof o=="string"?o:o.source;return r=r.replace(ra.caret,"$1"),A=A.replace(n,r),i},getRegex:()=>new RegExp(A,e)};return i}var ra={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i")},LPA=/^(?:[ \t]*(?:\n|$))+/,xPA=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,NPA=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Sf=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,FPA=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,cU=/(?:[*+-]|\d{1,9}[.)])/,ggA=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,lgA=Vn(ggA).replace(/bull/g,cU).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),_PA=Vn(ggA).replace(/bull/g,cU).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),gU=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,GPA=/^[^\n]+/,lU=/(?!\s*\])(?:\\.|[^\[\]\\])+/,KPA=Vn(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",lU).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),UPA=Vn(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,cU).getRegex(),O7="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",IU=/|$))/,JPA=Vn("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",IU).replace("tag",O7).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),IgA=Vn(gU).replace("hr",Sf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O7).getRegex(),YPA=Vn(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",IgA).getRegex(),CU={blockquote:YPA,code:xPA,def:KPA,fences:NPA,heading:FPA,hr:Sf,html:JPA,lheading:lgA,list:UPA,newline:LPA,paragraph:IgA,table:kf,text:GPA},ngA=Vn("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Sf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O7).getRegex(),TPA=Fe(sA({},CU),{lheading:_PA,table:ngA,paragraph:Vn(gU).replace("hr",Sf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",ngA).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O7).getRegex()}),HPA=Fe(sA({},CU),{html:Vn(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",IU).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:kf,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Vn(gU).replace("hr",Sf).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",lgA).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()}),OPA=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,zPA=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,CgA=/^( {2,}|\\)\n(?!\s*$)/,PPA=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,EgA=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,WPA=Vn(EgA,"u").replace(/punct/g,z7).getRegex(),XPA=Vn(EgA,"u").replace(/punct/g,BgA).getRegex(),QgA="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",$PA=Vn(QgA,"gu").replace(/notPunctSpace/g,dgA).replace(/punctSpace/g,dU).replace(/punct/g,z7).getRegex(),AjA=Vn(QgA,"gu").replace(/notPunctSpace/g,VPA).replace(/punctSpace/g,qPA).replace(/punct/g,BgA).getRegex(),ejA=Vn("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,dgA).replace(/punctSpace/g,dU).replace(/punct/g,z7).getRegex(),tjA=Vn(/\\(punct)/,"gu").replace(/punct/g,z7).getRegex(),ijA=Vn(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),njA=Vn(IU).replace("(?:-->|$)","-->").getRegex(),ojA=Vn("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",njA).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),T7=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,rjA=Vn(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",T7).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),ugA=Vn(/^!?\[(label)\]\[(ref)\]/).replace("label",T7).replace("ref",lU).getRegex(),hgA=Vn(/^!?\[(ref)\](?:\[\])?/).replace("ref",lU).getRegex(),sjA=Vn("reflink|nolink(?!\\()","g").replace("reflink",ugA).replace("nolink",hgA).getRegex(),BU={_backpedal:kf,anyPunctuation:tjA,autolink:ijA,blockSkip:ZPA,br:CgA,code:zPA,del:kf,emStrongLDelim:WPA,emStrongRDelimAst:$PA,emStrongRDelimUnd:ejA,escape:OPA,link:rjA,nolink:hgA,punctuation:jPA,reflink:ugA,reflinkSearch:sjA,tag:ojA,text:PPA,url:kf},ajA=Fe(sA({},BU),{link:Vn(/^!?\[(label)\]\((.*?)\)/).replace("label",T7).getRegex(),reflink:Vn(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",T7).getRegex()}),oU=Fe(sA({},BU),{emStrongRDelimAst:AjA,emStrongLDelim:XPA,url:Vn(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},ogA=t=>gjA[t];function c0(t,e){if(e){if(ra.escapeTest.test(t))return t.replace(ra.escapeReplace,ogA)}else if(ra.escapeTestNoEncode.test(t))return t.replace(ra.escapeReplaceNoEncode,ogA);return t}function rgA(t){try{t=encodeURI(t).replace(ra.percentDecode,"%")}catch{return null}return t}function sgA(t,e){let A=t.replace(ra.findPipe,(o,r,s)=>{let a=!1,c=r;for(;--c>=0&&s[c]==="\\";)a=!a;return a?"|":" |"}),i=A.split(ra.splitPipe),n=0;if(i[0].trim()||i.shift(),i.length>0&&!i.at(-1)?.trim()&&i.pop(),e)if(i.length>e)i.splice(e);else for(;i.length0?-2:-1}function agA(t,e,A,i,n){let o=e.href,r=e.title||null,s=t[1].replace(n.other.outputLinkReplace,"$1");i.state.inLink=!0;let a={type:t[0].charAt(0)==="!"?"image":"link",raw:A,href:o,title:r,text:s,tokens:i.inlineTokens(s)};return i.state.inLink=!1,a}function IjA(t,e,A){let i=t.match(A.other.indentCodeCompensation);if(i===null)return e;let n=i[1];return e.split(` +`).map(o=>{let r=o.match(A.other.beginningSpace);if(r===null)return o;let[s]=r;return s.length>=n.length?o.slice(n.length):o}).join(` +`)}var H7=class{options;rules;lexer;constructor(t){this.options=t||cd}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let A=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?A:bf(A,` +`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let A=e[0],i=IjA(A,e[3]||"",this.rules);return{type:"code",raw:A,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:i}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let A=e[2].trim();if(this.rules.other.endingHash.test(A)){let i=bf(A,"#");(this.options.pedantic||!i||this.rules.other.endingSpaceChar.test(i))&&(A=i.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:A,tokens:this.lexer.inline(A)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:bf(e[0],` +`)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let A=bf(e[0],` +`).split(` +`),i="",n="",o=[];for(;A.length>0;){let r=!1,s=[],a;for(a=0;a1,n={type:"list",raw:"",ordered:i,start:i?+A.slice(0,-1):"",loose:!1,items:[]};A=i?`\\d{1,9}\\${A.slice(-1)}`:`\\${A}`,this.options.pedantic&&(A=i?A:"[*+-]");let o=this.rules.other.listItemRegex(A),r=!1;for(;t;){let a=!1,c="",g="";if(!(e=o.exec(t))||this.rules.block.hr.test(t))break;c=e[0],t=t.substring(c.length);let I=e[2].split(` +`,1)[0].replace(this.rules.other.listReplaceTabs,h=>" ".repeat(3*h.length)),C=t.split(` +`,1)[0],d=!I.trim(),B=0;if(this.options.pedantic?(B=2,g=I.trimStart()):d?B=e[1].length+1:(B=e[2].search(this.rules.other.nonSpaceChar),B=B>4?1:B,g=I.slice(B),B+=e[1].length),d&&this.rules.other.blankLine.test(C)&&(c+=C+` +`,t=t.substring(C.length+1),a=!0),!a){let h=this.rules.other.nextBulletRegex(B),w=this.rules.other.hrRegex(B),x=this.rules.other.fencesBeginRegex(B),R=this.rules.other.headingBeginRegex(B),D=this.rules.other.htmlBeginRegex(B);for(;t;){let G=t.split(` +`,1)[0],J;if(C=G,this.options.pedantic?(C=C.replace(this.rules.other.listReplaceNesting," "),J=C):J=C.replace(this.rules.other.tabCharGlobal," "),x.test(C)||R.test(C)||D.test(C)||h.test(C)||w.test(C))break;if(J.search(this.rules.other.nonSpaceChar)>=B||!C.trim())g+=` +`+J.slice(B);else{if(d||I.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||x.test(I)||R.test(I)||w.test(I))break;g+=` +`+C}!d&&!C.trim()&&(d=!0),c+=G+` +`,t=t.substring(G.length+1),I=J.slice(B)}}n.loose||(r?n.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(r=!0));let E=null,u;this.options.gfm&&(E=this.rules.other.listIsTask.exec(g),E&&(u=E[0]!=="[ ] ",g=g.replace(this.rules.other.listReplaceTask,""))),n.items.push({type:"list_item",raw:c,task:!!E,checked:u,loose:!1,text:g,tokens:[]}),n.raw+=c}let s=n.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;n.raw=n.raw.trimEnd();for(let a=0;aI.type==="space"),g=c.length>0&&c.some(I=>this.rules.other.anyLine.test(I.raw));n.loose=g}if(n.loose)for(let a=0;a({text:s,tokens:this.lexer.inline(s),header:!1,align:o.align[a]})));return o}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let A=e[1].charAt(e[1].length-1)===` +`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:A,tokens:this.lexer.inline(A)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let A=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(A)){if(!this.rules.other.endAngleBracket.test(A))return;let o=bf(A.slice(0,-1),"\\");if((A.length-o.length)%2===0)return}else{let o=ljA(e[2],"()");if(o===-2)return;if(o>-1){let s=(e[0].indexOf("!")===0?5:4)+e[1].length+o;e[2]=e[2].substring(0,o),e[0]=e[0].substring(0,s).trim(),e[3]=""}}let i=e[2],n="";if(this.options.pedantic){let o=this.rules.other.pedanticHrefTitle.exec(i);o&&(i=o[1],n=o[3])}else n=e[3]?e[3].slice(1,-1):"";return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(A)?i=i.slice(1):i=i.slice(1,-1)),agA(e,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let A;if((A=this.rules.inline.reflink.exec(t))||(A=this.rules.inline.nolink.exec(t))){let i=(A[2]||A[1]).replace(this.rules.other.multipleSpaceGlobal," "),n=e[i.toLowerCase()];if(!n){let o=A[0].charAt(0);return{type:"text",raw:o,text:o}}return agA(A,n,A[0],this.lexer,this.rules)}}emStrong(t,e,A=""){let i=this.rules.inline.emStrongLDelim.exec(t);if(!i||i[3]&&A.match(this.rules.other.unicodeAlphaNumeric))return;if(!(i[1]||i[2]||"")||!A||this.rules.inline.punctuation.exec(A)){let o=[...i[0]].length-1,r,s,a=o,c=0,g=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(g.lastIndex=0,e=e.slice(-1*t.length+o);(i=g.exec(e))!=null;){if(r=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!r)continue;if(s=[...r].length,i[3]||i[4]){a+=s;continue}else if((i[5]||i[6])&&o%3&&!((o+s)%3)){c+=s;continue}if(a-=s,a>0)continue;s=Math.min(s,s+a+c);let I=[...i[0]][0].length,C=t.slice(0,o+i.index+I+s);if(Math.min(o,s)%2){let B=C.slice(1,-1);return{type:"em",raw:C,text:B,tokens:this.lexer.inlineTokens(B)}}let d=C.slice(2,-2);return{type:"strong",raw:C,text:d,tokens:this.lexer.inlineTokens(d)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let A=e[2].replace(this.rules.other.newLineCharGlobal," "),i=this.rules.other.nonSpaceChar.test(A),n=this.rules.other.startingSpaceChar.test(A)&&this.rules.other.endingSpaceChar.test(A);return i&&n&&(A=A.substring(1,A.length-1)),{type:"codespan",raw:e[0],text:A}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){let e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let A,i;return e[2]==="@"?(A=e[1],i="mailto:"+A):(A=e[1],i=A),{type:"link",raw:e[0],text:A,href:i,tokens:[{type:"text",raw:A,text:A}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let A,i;if(e[2]==="@")A=e[0],i="mailto:"+A;else{let n;do n=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(n!==e[0]);A=e[0],e[1]==="www."?i="http://"+e[0]:i=e[0]}return{type:"link",raw:e[0],text:A,href:i,tokens:[{type:"text",raw:A,text:A}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let A=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:A}}}},l2=class rU{tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||cd,this.options.tokenizer=this.options.tokenizer||new H7,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let A={other:ra,block:J7.normal,inline:Mf.normal};this.options.pedantic?(A.block=J7.pedantic,A.inline=Mf.pedantic):this.options.gfm&&(A.block=J7.gfm,this.options.breaks?A.inline=Mf.breaks:A.inline=Mf.gfm),this.tokenizer.rules=A}static get rules(){return{block:J7,inline:Mf}}static lex(e,A){return new rU(A).lex(e)}static lexInline(e,A){return new rU(A).inlineTokens(e)}lex(e){e=e.replace(ra.carriageReturn,` +`),this.blockTokens(e,this.tokens);for(let A=0;A(n=r.call({lexer:this},e,A))?(e=e.substring(n.raw.length),A.push(n),!0):!1))continue;if(n=this.tokenizer.space(e)){e=e.substring(n.raw.length);let r=A.at(-1);n.raw.length===1&&r!==void 0?r.raw+=` +`:A.push(n);continue}if(n=this.tokenizer.code(e)){e=e.substring(n.raw.length);let r=A.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=` +`+n.raw,r.text+=` +`+n.text,this.inlineQueue.at(-1).src=r.text):A.push(n);continue}if(n=this.tokenizer.fences(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.heading(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.hr(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.blockquote(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.list(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.html(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.def(e)){e=e.substring(n.raw.length);let r=A.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=` +`+n.raw,r.text+=` +`+n.raw,this.inlineQueue.at(-1).src=r.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title});continue}if(n=this.tokenizer.table(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.lheading(e)){e=e.substring(n.raw.length),A.push(n);continue}let o=e;if(this.options.extensions?.startBlock){let r=1/0,s=e.slice(1),a;this.options.extensions.startBlock.forEach(c=>{a=c.call({lexer:this},s),typeof a=="number"&&a>=0&&(r=Math.min(r,a))}),r<1/0&&r>=0&&(o=e.substring(0,r+1))}if(this.state.top&&(n=this.tokenizer.paragraph(o))){let r=A.at(-1);i&&r?.type==="paragraph"?(r.raw+=` +`+n.raw,r.text+=` +`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):A.push(n),i=o.length!==e.length,e=e.substring(n.raw.length);continue}if(n=this.tokenizer.text(e)){e=e.substring(n.raw.length);let r=A.at(-1);r?.type==="text"?(r.raw+=` +`+n.raw,r.text+=` +`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):A.push(n);continue}if(e){let r="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(r);break}else throw new Error(r)}}return this.state.top=!0,A}inline(e,A=[]){return this.inlineQueue.push({src:e,tokens:A}),A}inlineTokens(e,A=[]){let i=e,n=null;if(this.tokens.links){let s=Object.keys(this.tokens.links);if(s.length>0)for(;(n=this.tokenizer.rules.inline.reflinkSearch.exec(i))!=null;)s.includes(n[0].slice(n[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(n=this.tokenizer.rules.inline.anyPunctuation.exec(i))!=null;)i=i.slice(0,n.index)+"++"+i.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(n=this.tokenizer.rules.inline.blockSkip.exec(i))!=null;)i=i.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let o=!1,r="";for(;e;){o||(r=""),o=!1;let s;if(this.options.extensions?.inline?.some(c=>(s=c.call({lexer:this},e,A))?(e=e.substring(s.raw.length),A.push(s),!0):!1))continue;if(s=this.tokenizer.escape(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.tag(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.link(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(s.raw.length);let c=A.at(-1);s.type==="text"&&c?.type==="text"?(c.raw+=s.raw,c.text+=s.text):A.push(s);continue}if(s=this.tokenizer.emStrong(e,i,r)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.codespan(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.br(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.del(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.autolink(e)){e=e.substring(s.raw.length),A.push(s);continue}if(!this.state.inLink&&(s=this.tokenizer.url(e))){e=e.substring(s.raw.length),A.push(s);continue}let a=e;if(this.options.extensions?.startInline){let c=1/0,g=e.slice(1),I;this.options.extensions.startInline.forEach(C=>{I=C.call({lexer:this},g),typeof I=="number"&&I>=0&&(c=Math.min(c,I))}),c<1/0&&c>=0&&(a=e.substring(0,c+1))}if(s=this.tokenizer.inlineText(a)){e=e.substring(s.raw.length),s.raw.slice(-1)!=="_"&&(r=s.raw.slice(-1)),o=!0;let c=A.at(-1);c?.type==="text"?(c.raw+=s.raw,c.text+=s.text):A.push(s);continue}if(e){let c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return A}},CI=class{options;parser;constructor(t){this.options=t||cd}space(t){return""}code({text:t,lang:e,escaped:A}){let i=(e||"").match(ra.notSpaceStart)?.[0],n=t.replace(ra.endingNewline,"")+` +`;return i?'
      '+(A?n:c0(n,!0))+`
      +`:"
      "+(A?n:c0(n,!0))+`
      +`}blockquote({tokens:t}){return`
      +${this.parser.parse(t)}
      +`}html({text:t}){return t}heading({tokens:t,depth:e}){return`${this.parser.parseInline(t)} +`}hr(t){return`
      +`}list(t){let e=t.ordered,A=t.start,i="";for(let r=0;r +`+i+" +`}listitem(t){let e="";if(t.task){let A=this.checkbox({checked:!!t.checked});t.loose?t.tokens[0]?.type==="paragraph"?(t.tokens[0].text=A+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=A+" "+c0(t.tokens[0].tokens[0].text),t.tokens[0].tokens[0].escaped=!0)):t.tokens.unshift({type:"text",raw:A+" ",text:A+" ",escaped:!0}):e+=A+" "}return e+=this.parser.parse(t.tokens,!!t.loose),`
    • ${e}
    • +`}checkbox({checked:t}){return"'}paragraph({tokens:t}){return`

      ${this.parser.parseInline(t)}

      +`}table(t){let e="",A="";for(let n=0;n${i}`),` + +`+e+` +`+i+`
      +`}tablerow({text:t}){return` +${t} +`}tablecell(t){let e=this.parser.parseInline(t.tokens),A=t.header?"th":"td";return(t.align?`<${A} align="${t.align}">`:`<${A}>`)+e+` +`}strong({tokens:t}){return`${this.parser.parseInline(t)}`}em({tokens:t}){return`${this.parser.parseInline(t)}`}codespan({text:t}){return`${c0(t,!0)}`}br(t){return"
      "}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:e,tokens:A}){let i=this.parser.parseInline(A),n=rgA(t);if(n===null)return i;t=n;let o='
      ",o}image({href:t,title:e,text:A,tokens:i}){i&&(A=this.parser.parseInline(i,this.parser.textRenderer));let n=rgA(t);if(n===null)return c0(A);t=n;let o=`${A}{let r=n[o].flat(1/0);A=A.concat(this.walkTokens(r,e))}):n.tokens&&(A=A.concat(this.walkTokens(n.tokens,e)))}}return A}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(A=>{let i=sA({},A);if(i.async=this.defaults.async||i.async||!1,A.extensions&&(A.extensions.forEach(n=>{if(!n.name)throw new Error("extension name required");if("renderer"in n){let o=e.renderers[n.name];o?e.renderers[n.name]=function(...r){let s=n.renderer.apply(this,r);return s===!1&&(s=o.apply(this,r)),s}:e.renderers[n.name]=n.renderer}if("tokenizer"in n){if(!n.level||n.level!=="block"&&n.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let o=e[n.level];o?o.unshift(n.tokenizer):e[n.level]=[n.tokenizer],n.start&&(n.level==="block"?e.startBlock?e.startBlock.push(n.start):e.startBlock=[n.start]:n.level==="inline"&&(e.startInline?e.startInline.push(n.start):e.startInline=[n.start]))}"childTokens"in n&&n.childTokens&&(e.childTokens[n.name]=n.childTokens)}),i.extensions=e),A.renderer){let n=this.defaults.renderer||new CI(this.defaults);for(let o in A.renderer){if(!(o in n))throw new Error(`renderer '${o}' does not exist`);if(["options","parser"].includes(o))continue;let r=o,s=A.renderer[r],a=n[r];n[r]=(...c)=>{let g=s.apply(n,c);return g===!1&&(g=a.apply(n,c)),g||""}}i.renderer=n}if(A.tokenizer){let n=this.defaults.tokenizer||new H7(this.defaults);for(let o in A.tokenizer){if(!(o in n))throw new Error(`tokenizer '${o}' does not exist`);if(["options","rules","lexer"].includes(o))continue;let r=o,s=A.tokenizer[r],a=n[r];n[r]=(...c)=>{let g=s.apply(n,c);return g===!1&&(g=a.apply(n,c)),g}}i.tokenizer=n}if(A.hooks){let n=this.defaults.hooks||new Y7;for(let o in A.hooks){if(!(o in n))throw new Error(`hook '${o}' does not exist`);if(["options","block"].includes(o))continue;let r=o,s=A.hooks[r],a=n[r];Y7.passThroughHooks.has(o)?n[r]=c=>{if(this.defaults.async)return Promise.resolve(s.call(n,c)).then(I=>a.call(n,I));let g=s.call(n,c);return a.call(n,g)}:n[r]=(...c)=>{let g=s.apply(n,c);return g===!1&&(g=a.apply(n,c)),g}}i.hooks=n}if(A.walkTokens){let n=this.defaults.walkTokens,o=A.walkTokens;i.walkTokens=function(r){let s=[];return s.push(o.call(this,r)),n&&(s=s.concat(n.call(this,r))),s}}this.defaults=sA(sA({},this.defaults),i)}),this}setOptions(t){return this.defaults=sA(sA({},this.defaults),t),this}lexer(t,e){return l2.lex(t,e??this.defaults)}parser(t,e){return I2.parse(t,e??this.defaults)}parseMarkdown(t){return(A,i)=>{let n=sA({},i),o=sA(sA({},this.defaults),n),r=this.onError(!!o.silent,!!o.async);if(this.defaults.async===!0&&n.async===!1)return r(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof A>"u"||A===null)return r(new Error("marked(): input parameter is undefined or null"));if(typeof A!="string")return r(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(A)+", string expected"));o.hooks&&(o.hooks.options=o,o.hooks.block=t);let s=o.hooks?o.hooks.provideLexer():t?l2.lex:l2.lexInline,a=o.hooks?o.hooks.provideParser():t?I2.parse:I2.parseInline;if(o.async)return Promise.resolve(o.hooks?o.hooks.preprocess(A):A).then(c=>s(c,o)).then(c=>o.hooks?o.hooks.processAllTokens(c):c).then(c=>o.walkTokens?Promise.all(this.walkTokens(c,o.walkTokens)).then(()=>c):c).then(c=>a(c,o)).then(c=>o.hooks?o.hooks.postprocess(c):c).catch(r);try{o.hooks&&(A=o.hooks.preprocess(A));let c=s(A,o);o.hooks&&(c=o.hooks.processAllTokens(c)),o.walkTokens&&this.walkTokens(c,o.walkTokens);let g=a(c,o);return o.hooks&&(g=o.hooks.postprocess(g)),g}catch(c){return r(c)}}}onError(t,e){return A=>{if(A.message+=` +Please report this to https://github.com/markedjs/marked.`,t){let i="

      An error occurred:

      "+c0(A.message+"",!0)+"
      ";return e?Promise.resolve(i):i}if(e)return Promise.reject(A);throw A}}},ad=new CjA;function yn(t,e){return ad.parse(t,e)}yn.options=yn.setOptions=function(t){return ad.setOptions(t),yn.defaults=ad.defaults,cgA(yn.defaults),yn};yn.getDefaults=aU;yn.defaults=cd;yn.use=function(...t){return ad.use(...t),yn.defaults=ad.defaults,cgA(yn.defaults),yn};yn.walkTokens=function(t,e){return ad.walkTokens(t,e)};yn.parseInline=ad.parseInline;yn.Parser=I2;yn.parser=I2.parse;yn.Renderer=CI;yn.TextRenderer=EU;yn.Lexer=l2;yn.lexer=l2.lex;yn.Tokenizer=H7;yn.Hooks=Y7;yn.parse=yn;var iSe=yn.options,nSe=yn.setOptions,oSe=yn.use,rSe=yn.walkTokens,sSe=yn.parseInline;var aSe=I2.parse,cSe=l2.lex;var djA=["*"],BjA="Copy",EjA="Copied",QjA=(()=>{class t{constructor(){this._buttonClick$=new qA,this.copied$=this._buttonClick$.pipe($n(()=>Hn(Ce(!0),fI(3e3).pipe(wd(!1)))),il(),h2(1)),this.copiedText$=this.copied$.pipe(On(!1),je(A=>A?EjA:BjA))}onCopyToClipboardClick(){this._buttonClick$.next()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=jA({type:t,selectors:[["markdown-clipboard"]],decls:4,vars:7,consts:[[1,"markdown-clipboard-button",3,"click"]],template:function(i,n){i&1&&(S(0,"button",0),eo(1,"async"),mA("click",function(){return n.onCopyToClipboardClick()}),AA(2),eo(3,"async"),N()),i&2&&(he("copied",Yo(1,3,n.copied$)),_(2),tt(Yo(3,5,n.copiedText$)))},dependencies:[Qg],encapsulation:2,changeDetection:0})}}return t})(),ujA=new eA("CLIPBOARD_OPTIONS");var QU=function(t){return t.CommandLine="command-line",t.LineHighlight="line-highlight",t.LineNumbers="line-numbers",t}(QU||{}),fgA=new eA("MARKED_EXTENSIONS"),hjA=new eA("MARKED_OPTIONS"),fjA=new eA("MERMAID_OPTIONS"),mjA="[ngx-markdown] When using the `emoji` attribute you *have to* include Emoji-Toolkit files to `angular.json` or use imports. See README for more information",pjA="[ngx-markdown] When using the `katex` attribute you *have to* include KaTeX files to `angular.json` or use imports. See README for more information",DjA="[ngx-markdown] When using the `mermaid` attribute you *have to* include Mermaid files to `angular.json` or use imports. See README for more information",wjA="[ngx-markdown] When using the `clipboard` attribute you *have to* include Clipboard files to `angular.json` or use imports. See README for more information",yjA="[ngx-markdown] When using the `clipboard` attribute you *have to* provide the `viewContainerRef` parameter to `MarkdownService.render()` function",vjA="[ngx-markdown] When using the `src` attribute you *have to* pass the `HttpClient` as a parameter of the `forRoot` method. See README for more information",mgA=new eA("SECURITY_CONTEXT");var pgA=(()=>{class t{get options(){return this._options}set options(A){this._options=sA(sA({},this.DEFAULT_MARKED_OPTIONS),A)}get renderer(){return this.options.renderer}set renderer(A){this.options.renderer=A}constructor(A,i,n,o,r,s,a,c){this.clipboardOptions=A,this.extensions=i,this.mermaidOptions=o,this.platform=r,this.securityContext=s,this.http=a,this.sanitizer=c,this.DEFAULT_MARKED_OPTIONS={renderer:new CI},this.DEFAULT_KATEX_OPTIONS={delimiters:[{left:"$$",right:"$$",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}]},this.DEFAULT_MERMAID_OPTIONS={startOnLoad:!1},this.DEFAULT_CLIPBOARD_OPTIONS={buttonComponent:void 0},this.DEFAULT_PARSE_OPTIONS={decodeHtml:!1,inline:!1,emoji:!1,mermaid:!1,markedOptions:void 0,disableSanitizer:!1},this.DEFAULT_RENDER_OPTIONS={clipboard:!1,clipboardOptions:void 0,katex:!1,katexOptions:void 0,mermaid:!1,mermaidOptions:void 0},this._reload$=new qA,this.reload$=this._reload$.asObservable(),this.options=n}parse(A,i=this.DEFAULT_PARSE_OPTIONS){let{decodeHtml:n,inline:o,emoji:r,mermaid:s,disableSanitizer:a}=i,c=sA(sA({},this.options),i.markedOptions),g=c.renderer||this.renderer||new CI;this.extensions&&(this.renderer=this.extendsRendererForExtensions(g)),s&&(this.renderer=this.extendsRendererForMermaid(g));let I=this.trimIndentation(A),C=n?this.decodeHtml(I):I,d=r?this.parseEmoji(C):C,B=this.parseMarked(d,c,o);return(a?B:this.sanitizer.sanitize(this.securityContext,B))||""}render(A,i=this.DEFAULT_RENDER_OPTIONS,n){let{clipboard:o,clipboardOptions:r,katex:s,katexOptions:a,mermaid:c,mermaidOptions:g}=i;s&&this.renderKatex(A,sA(sA({},this.DEFAULT_KATEX_OPTIONS),a)),c&&this.renderMermaid(A,sA(sA(sA({},this.DEFAULT_MERMAID_OPTIONS),this.mermaidOptions),g)),o&&this.renderClipboard(A,n,sA(sA(sA({},this.DEFAULT_CLIPBOARD_OPTIONS),this.clipboardOptions),r)),this.highlight(A)}reload(){this._reload$.next()}getSource(A){if(!this.http)throw new Error(vjA);return this.http.get(A,{responseType:"text"}).pipe(je(i=>this.handleExtension(A,i)))}highlight(A){if(!ul(this.platform)||typeof Prism>"u"||typeof Prism.highlightAllUnder>"u")return;A||(A=document);let i=A.querySelectorAll('pre code:not([class*="language-"])');Array.prototype.forEach.call(i,n=>n.classList.add("language-none")),Prism.highlightAllUnder(A)}decodeHtml(A){if(!ul(this.platform))return A;let i=document.createElement("textarea");return i.innerHTML=A,i.value}extendsRendererForExtensions(A){let i=A;return i.\u0275NgxMarkdownRendererExtendedForExtensions===!0||(this.extensions?.length>0&&yn.use(...this.extensions),i.\u0275NgxMarkdownRendererExtendedForExtensions=!0),A}extendsRendererForMermaid(A){let i=A;if(i.\u0275NgxMarkdownRendererExtendedForMermaid===!0)return A;let n=A.code;return A.code=o=>o.lang==="mermaid"?`
      ${o.text}
      `:n(o),i.\u0275NgxMarkdownRendererExtendedForMermaid=!0,A}handleExtension(A,i){let n=A.lastIndexOf("://"),o=n>-1?A.substring(n+4):A,r=o.lastIndexOf("/"),s=r>-1?o.substring(r+1).split("?")[0]:"",a=s.lastIndexOf("."),c=a>-1?s.substring(a+1):"";return c&&c!=="md"?"```"+c+` +`+i+"\n```":i}parseMarked(A,i,n=!1){if(i.renderer){let o=sA({},i.renderer);delete o.\u0275NgxMarkdownRendererExtendedForExtensions,delete o.\u0275NgxMarkdownRendererExtendedForMermaid,delete i.renderer,yn.use({renderer:o})}return n?yn.parseInline(A,i):yn.parse(A,i)}parseEmoji(A){if(!ul(this.platform))return A;if(typeof joypixels>"u"||typeof joypixels.shortnameToUnicode>"u")throw new Error(mjA);return joypixels.shortnameToUnicode(A)}renderKatex(A,i){if(ul(this.platform)){if(typeof katex>"u"||typeof renderMathInElement>"u")throw new Error(pjA);renderMathInElement(A,i)}}renderClipboard(A,i,n){if(!ul(this.platform))return;if(typeof ClipboardJS>"u")throw new Error(wjA);if(!i)throw new Error(yjA);let{buttonComponent:o,buttonTemplate:r}=n,s=A.querySelectorAll("pre");for(let a=0;aI.classList.add("hover"),g.onmouseleave=()=>I.classList.remove("hover");let C;if(o){let B=i.createComponent(o);C=B.hostView,B.changeDetectorRef.markForCheck()}else if(r)C=i.createEmbeddedView(r);else{let B=i.createComponent(QjA);C=B.hostView,B.changeDetectorRef.markForCheck()}let d;C.rootNodes.forEach(B=>{I.appendChild(B),d=new ClipboardJS(B,{text:()=>c.innerText})}),C.onDestroy(()=>d.destroy())}}renderMermaid(A,i=this.DEFAULT_MERMAID_OPTIONS){if(!ul(this.platform))return;if(typeof mermaid>"u"||typeof mermaid.initialize>"u")throw new Error(DjA);let n=A.querySelectorAll(".mermaid");n.length!==0&&(mermaid.initialize(i),mermaid.run({nodes:n}))}trimIndentation(A){if(!A)return"";let i;return A.split(` +`).map(n=>{let o=i;return n.length>0&&(o=isNaN(o)?n.search(/\S|$/):Math.min(n.search(/\S|$/),o)),isNaN(i)&&(i=o),o?n.substring(o):n}).join(` +`)}static{this.\u0275fac=function(i){return new(i||t)(be(ujA,8),be(fgA,8),be(hjA,8),be(fjA,8),be(El),be(mgA),be(ks,8),be(oc))}}static{this.\u0275prov=bA({token:t,factory:t.\u0275fac})}}return t})(),DgA=(()=>{class t{get disableSanitizer(){return this._disableSanitizer}set disableSanitizer(A){this._disableSanitizer=this.coerceBooleanProperty(A)}get inline(){return this._inline}set inline(A){this._inline=this.coerceBooleanProperty(A)}get clipboard(){return this._clipboard}set clipboard(A){this._clipboard=this.coerceBooleanProperty(A)}get emoji(){return this._emoji}set emoji(A){this._emoji=this.coerceBooleanProperty(A)}get katex(){return this._katex}set katex(A){this._katex=this.coerceBooleanProperty(A)}get mermaid(){return this._mermaid}set mermaid(A){this._mermaid=this.coerceBooleanProperty(A)}get lineHighlight(){return this._lineHighlight}set lineHighlight(A){this._lineHighlight=this.coerceBooleanProperty(A)}get lineNumbers(){return this._lineNumbers}set lineNumbers(A){this._lineNumbers=this.coerceBooleanProperty(A)}get commandLine(){return this._commandLine}set commandLine(A){this._commandLine=this.coerceBooleanProperty(A)}constructor(A,i,n){this.element=A,this.markdownService=i,this.viewContainerRef=n,this.error=new YA,this.load=new YA,this.ready=new YA,this._clipboard=!1,this._commandLine=!1,this._disableSanitizer=!1,this._emoji=!1,this._inline=!1,this._katex=!1,this._lineHighlight=!1,this._lineNumbers=!1,this._mermaid=!1,this.destroyed$=new qA}ngOnChanges(){this.loadContent()}loadContent(){if(this.data!=null){this.handleData();return}if(this.src!=null){this.handleSrc();return}}ngAfterViewInit(){!this.data&&!this.src&&this.handleTransclusion(),this.markdownService.reload$.pipe(kt(this.destroyed$)).subscribe(()=>this.loadContent())}ngOnDestroy(){this.destroyed$.next(),this.destroyed$.complete()}render(A,i=!1){return Ni(this,null,function*(){let n={decodeHtml:i,inline:this.inline,emoji:this.emoji,mermaid:this.mermaid,disableSanitizer:this.disableSanitizer},o={clipboard:this.clipboard,clipboardOptions:this.getClipboardOptions(),katex:this.katex,katexOptions:this.katexOptions,mermaid:this.mermaid,mermaidOptions:this.mermaidOptions},r=yield this.markdownService.parse(A,n);this.element.nativeElement.innerHTML=r,this.handlePlugins(),this.markdownService.render(this.element.nativeElement,o,this.viewContainerRef),this.ready.emit()})}coerceBooleanProperty(A){return A!=null&&`${String(A)}`!="false"}getClipboardOptions(){if(this.clipboardButtonComponent||this.clipboardButtonTemplate)return{buttonComponent:this.clipboardButtonComponent,buttonTemplate:this.clipboardButtonTemplate}}handleData(){this.render(this.data)}handleSrc(){this.markdownService.getSource(this.src).subscribe({next:A=>{this.render(A).then(()=>{this.load.emit(A)})},error:A=>this.error.emit(A)})}handleTransclusion(){this.render(this.element.nativeElement.innerHTML,!0)}handlePlugins(){this.commandLine&&(this.setPluginClass(this.element.nativeElement,QU.CommandLine),this.setPluginOptions(this.element.nativeElement,{dataFilterOutput:this.filterOutput,dataHost:this.host,dataPrompt:this.prompt,dataOutput:this.output,dataUser:this.user})),this.lineHighlight&&this.setPluginOptions(this.element.nativeElement,{dataLine:this.line,dataLineOffset:this.lineOffset}),this.lineNumbers&&(this.setPluginClass(this.element.nativeElement,QU.LineNumbers),this.setPluginOptions(this.element.nativeElement,{dataStart:this.start}))}setPluginClass(A,i){let n=A.querySelectorAll("pre");for(let o=0;o{let s=i[r];if(s){let a=this.toLispCase(r);n.item(o).setAttribute(a,s.toString())}})}toLispCase(A){let i=A.match(/([A-Z])/g);if(!i)return A;let n=A.toString();for(let o=0,r=i.length;o{let i=MjA(A)?Fe(sA({},A),{multi:!0}):{provide:fgA,useValue:A,multi:!0};return[...e,i]},[])}var wgA=(()=>{class t{static forRoot(A){return{ngModule:t,providers:[uU(A)]}}static forChild(){return{ngModule:t}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Ze({type:t})}static{this.\u0275inj=Ve({imports:[ug]})}}return t})();var SjA=(t,e)=>({"font-style":t,color:e}),P7=class t{text=bs("");thought=bs(!1);static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-markdown"]],inputs:{text:[1,"text"],thought:[1,"thought"]},features:[ut([uU()])],decls:1,vars:5,consts:[[3,"data","ngStyle"]],template:function(A,i){A&1&&TA(0,"markdown",0),A&2&&yA("data",i.text())("ngStyle",Bg(2,SjA,i.thought()?"italic":"normal",i.thought()?"#9aa0a6":"white"))},dependencies:[ug,Yb,wgA,DgA],encapsulation:2})};var j7=class t{constructor(e,A){this.http=e;this.zone=A}apiServerDomain=ds.getApiServerBaseUrl();_currentApp=new Fi("");currentApp=this._currentApp.asObservable();isLoading=new Fi(!1);getApp(){return this.currentApp}setApp(e){this._currentApp.next(e)}getLoadingState(){return this.isLoading}runSse(e){let A=this.apiServerDomain+"/run_sse";return this.isLoading.next(!0),new gt(i=>{let n=this;fetch(A,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify(e)}).then(o=>{let r=o.body?.getReader(),s=new TextDecoder("utf-8"),a="",c=()=>{r?.read().then(({done:g,value:I})=>{if(this.isLoading.next(!0),g)return this.isLoading.next(!1),i.complete();let C=s.decode(I,{stream:!0});a+=C;try{a.split(/\r?\n/).filter(B=>B.startsWith("data:")).forEach(B=>{let E=B.replace(/^data:\s*/,""),u=JSON.parse(E);n.zone.run(()=>i.next(u))}),a=""}catch(d){d instanceof SyntaxError&&c()}c()}).catch(g=>{n.zone.run(()=>i.error(g))})};c()}).catch(o=>{n.zone.run(()=>i.error(o))})})}listApps(){if(this.apiServerDomain!=null){let e=this.apiServerDomain+"/list-apps?relative_path=./";return this.http.get(e)}return new gt}static \u0275fac=function(A){return new(A||t)(be(ks),be(ye))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var q7=class t{constructor(e){this.http=e}apiServerDomain=ds.getApiServerBaseUrl();getLatestArtifact(e,A,i,n){let o=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}/artifacts/${n}`;return this.http.get(o)}getArtifactVersion(e,A,i,n,o){let r=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}/artifacts/${n}/versions/${o}`;return this.http.get(r)}static \u0275fac=function(A){return new(A||t)(be(ks))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var V7=class t{audioContext=new AudioContext({sampleRate:22e3});lastAudioTime=0;playAudio(e){let A=this.combineAudioBuffer(e);A&&this.playPCM(A)}combineAudioBuffer(e){if(e.length===0)return;let A=e.reduce((o,r)=>o+r.length,0),i=new Uint8Array(A),n=0;for(let o of e)i.set(o,n),n+=o.length;return i}playPCM(e){let A=new Float32Array(e.length/2);for(let s=0;s=32768&&(a-=65536),A[s]=a/32768}let i=this.audioContext.createBuffer(1,A.length,22e3);i.copyToChannel(A,0);let n=this.audioContext.createBufferSource();n.buffer=i,n.connect(this.audioContext.destination);let o=this.audioContext.currentTime,r=Math.max(this.lastAudioTime,o);n.start(r),this.lastAudioTime=r+i.duration}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Z7=new eA("AudioRecordingService"),W7=new eA("AudioWorkletModulePath");var X7=class t{audioWorkletModulePath=f(W7);stream;audioContext;source;audioBuffer=[];startRecording(){return Ni(this,null,function*(){try{this.stream=yield navigator.mediaDevices.getUserMedia({audio:!0}),this.audioContext=new AudioContext,yield this.audioContext.audioWorklet.addModule(this.audioWorkletModulePath),this.source=this.audioContext.createMediaStreamSource(this.stream);let e=new AudioWorkletNode(this.audioContext,"audio-processor");e.port.onmessage=A=>{let i=A.data,n=this.float32ToPCM(i);this.audioBuffer.push(n)},this.source.connect(e),e.connect(this.audioContext.destination)}catch(e){console.error("Error accessing microphone:",e)}})}stopRecording(){this.source&&this.source.disconnect(),this.audioContext&&this.audioContext.close(),this.stream&&this.stream.getTracks().forEach(e=>e.stop())}getCombinedAudioBuffer(){if(this.audioBuffer.length===0)return;let e=this.audioBuffer.reduce((n,o)=>n+o.length,0),A=new Uint8Array(e),i=0;for(let n of this.audioBuffer)A.set(n,i),i+=n.length;return A}cleanAudioBuffer(){this.audioBuffer=[]}float32ToPCM(e){let A=new ArrayBuffer(e.length*2),i=new DataView(A);for(let n=0;ne[Tq]==="true"))}isEditFunctionArgsEnabled(){return this.route.queryParams.pipe(je(e=>e[Hq]==="true"))}isSessionUrlEnabled(){return Ce(!0)}isA2ACardEnabled(){return this.route.queryParams.pipe(je(e=>e[Oq]==="true"))}isApplicationSelectorEnabled(){return Ce(!0)}isAlwaysOnSidePanelEnabled(){return Ce(!1)}isTraceEnabled(){return Ce(!0)}isArtifactsTabEnabled(){return Ce(!0)}isEvalEnabled(){return Ce(!0)}isTokenStreamingEnabled(){return Ce(!0)}isMessageFileUploadEnabled(){return Ce(!0)}isManualStateUpdateEnabled(){return Ce(!0)}isBidiStreamingEnabled(){return Ce(!0)}isExportSessionEnabled(){return Ce(!0)}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var RjA=(()=>{var t=import.meta.url;return function(e={}){var A,i=e,n,o,r=new Promise((Q,m)=>{n=Q,o=m});i.agerrMessages=[],i.stderrMessages=[],B=Q=>i.stderrMessages.push(Q);var s=Object.assign({},i),a="./this.program",c=(Q,m)=>{throw m},g="",I,C;typeof document<"u"&&document.currentScript&&(g=document.currentScript.src),t&&(g=t),g.startsWith("blob:")?g="":g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1),I=Q=>fetch(Q,{credentials:"same-origin"}).then(m=>m.ok?m.arrayBuffer():Promise.reject(new Error(m.status+" : "+m.url)));var d=console.log.bind(console),B=console.error.bind(console);Object.assign(i,s),s=null;var E;function u(Q){for(var m=atob(Q),v=new Uint8Array(m.length),p=0;pQ.startsWith(Xe);function KA(){var Q="data:application/octet-stream;base64,AGFzbQEAAAABmQd0YAJ/fwF/YAF/AGABfwF/YAJ/fwBgA39/fwF/YAN/f38AYAR/f39/AX9gBH9/f38AYAV/f39/fwF/YAZ/f39/f38Bf2AFf39/f38AYAZ/f39/f38AYAAAYAABf2AIf39/f39/f38Bf2AHf39/f39/fwF/YAF8AXxgAn9/AXxgAX8BfGAHf39/f39/fwBgA39/fwF8YAd/f39/fHx/AGACf3wAYAR8fHx/AXxgAnx8AXxgA398fABgCX9/f39/f39/fwBgBX9+fn5+AGAEf39/fABgCn9/f39/f39/f38Bf2ADf35/AX5gBH9/fHwBf2ADfHx8AXxgA39/fgBgAAF8YAR/f39/AXxgAn9/AX5gA39/fABgBX9/f39+AX9gA39/fgF/YAR/fn5/AGAEf398fwBgAn9+AGACfH8BfGABfwF+YAR/f398AX9gAn9+AX9gAn98AX9gA3x8fwF8YAN/fH8AYAh/f39/f39/fwBgBX9/f398AX9gC39/f39/f39/f39/AX9gBX9/fn9/AGAEf398fwF/YAABfmAFf39/f3wAYAN/f3wBf2ACfX0BfWAGf3x8fHx8AXxgA39/fwF+YAx/f39/f39/f39/f38Bf2AFf398f38Bf2AHf39/fHx/fwBgBn9/f3x/fwBgBn9/f39+fwF/YA9/f39/f39/f39/f39/f38AYAp/f39/f39/f39/AGAEf39/fwF+YAZ/fH9/f38Bf2AHf39/f39+fgF/YAZ/f39/fn4Bf2AHf39/f35/fwF/YAZ/f39/f34Bf2ACfn8AYAR/fn9/AX9gBH9/fHwBfGAFf398f38AYAl/f39/f39/f38Bf2AGf39/fH9/AX9gBH9/fHwAYAR+fn5+AX9gAn99AX9gAn5/AX9gCH9/f398fHx/AGADf31/AGABfAF/YAJ+fgF9YAJ/fQBgBH9/f34BfmADf35/AX9gBn99f39/fwBgBH9/fX8AYAN/fHwBf2AFf39/fH8AYAZ/f398fH8AYAZ8fHx/f38AYAJ+fgF8YAJ8fwF/YAR/fHx8AGAGf39/f398AGAEf3x/fwBgBnx8f3x8fwBgB398fHx8fHwAYAF/AX1gA39/fwF9YAN+fn4Bf2AEf35+fgBgBH98f38Bf2AKf3x/f39/f39/fwBgBX9/fHx8AGAFf39/f38BfGADfHx8AX9gBX9/fX9/AGAHf39/f3x/fwF/YAR8fHx8AXwCkQEYAWEBYQAHAWEBYgAFAWEBYwAGAWEBZAAGAWEBZQACAWEBZgAEAWEBZwAiAWEBaAABAWEBaQAMAWEBagAEAWEBawACAWEBbAAGAWEBbQBIAWEBbgBJAWEBbwACAWEBcABKAWEBcQAHAWEBcgBLAWEBcwAAAWEBdAAAAWEBdQAGAWEBdgAAAWEBdwAAAWEBeAAGA+AU3hQBAAACAAUEBAIGGAICBQACDAAYAwAAAAIAEAUEAgYDAgIFAAACAxoAAwACBxADAgACAABMBgABBBgDAgQCAwICEAMDAAAAAwEIAgYCBgACAw0BAhsMBAEAAgAFBAIFAgICAgIDBBYBBAUFAwACAgQGBwQGAgMABAQiBAMMBQcEAAICBgIDAgoAGwYYAzYCTQICBQINABgBABQCAAIHAygbCgMDAQQCAQMCAwQFAgIKAggAAwIMAgIAAAMAAwMFNyIEIwABAwQDCAIDEQMEBAMAAwMEBQIBAQICKQUCAwMDAgIDAwMDBQQEAgQCAg8DBwIWBwUDAwUBACoCAwIFAQMWAQYFCAkBAQQEAAkAAwgIBgQCAAQCBRYEAhIQASMACgISCAICAwsFBgAZAQEFTgIADg4HAAACAAQUAwcAAAAABQQDAAYBTwIBAwQBAwIEUAIAAQA4FQIAAgIDAwMCAAIHAgUbACsEAgAHAxkRBwMFCgoBOQEABSwCAwADLRwcAAUABQgKAgECAQUCAAMDCQkAAAIDAihRAgQAAREALQAACwEAAwAABAICUgMCLgUAAgMCAgMDCA0DAA0DBRECAwIDAgUAAB0CHQICAwIABAYDAlMCAQICAQEIBAZUIg0AB1UDOQEFDgYCAgcDLwADAgQREQEKAQIDBQEAAAMEAAEBAgMLAQIAAQkEDQMCBAoICQEIBQAFAwcABAcEBQACVjAYEAkABQEFBgACBAcIAykCAQEBDAEHAgcABQIGNwABBAMCAAADBQQDAQEABQUBAwUCABoFAwMAAhkBAwgABwIDAAYGAQEGBQYGCQENAAcAAgEBBgECAAAAAAoKBwoBCgMCAgIAAgYBAAMCAgMCBAcADwAPAgUDAAIBBQAFAwIBAAMAV1gDAwZZAAAAAQMTA1oGAjoCAhAHDQUUAQAUAwcKAAMDHwIAHAEBER8FWwNcBwcSBwMRBwEABwUcAgI7OwcGAgMDBQQHBwETAAMDAwUFAAMAAAIDAwMCAwQAAgICAgAFAAgIAgUxAgQBMgExAQEFAQMEHAAIBAQNAQEDBQEBAQUEAAIAAgAFBwYBBAMHAANdAAEBAgYDBA4ABQYGBgYBBgIDAggCAgAhDwQGAQACAQIGBgIAAwUBAAVeAAcIAwQDAAkJBAVfAAcOBgYOBQsFBwAFAwUAAzwCAgIABAIAYAIACgMBAgIBBD0KBAA9CgICAgIABi8CACoDAmEABQgABAcAAQIACgQAAhAEB2IBEBAHBWMBBQUDAAEEPgYAAAUFEhIADQIBCgEBBA4BAAAAAAYBAwUCDwIAAAMFAgMFAQgJBQMFBQQDAwUDDAEDBggvCgICAwEGBxMjAgACAgEBAAACAAIDBRQGAwEAAwIBBBM/AQACAQEDDQABBQADAwMBASQBBgACBQIDAQEDBAMAAwcFBAMDAAMAAQEJAggAAgIDAAAMAAoFAAEDDC4BAwMDBwUFBwcCAWQcFAcHBAQEBQQIBAQABAQeAwMADRMFAQMBAwUGAwplBAACAwMCAgQFAw8EAAMYZiUFZxkDBAMCCwUFBgIAAQEDBQgFBQUSAgMAAAMDAAABAQICAgMBAgAEAwIDAwEGDwMDCSwCAwEHAw4AAgNoAgkJDwkFBgYdAAACBgABAQUIBAABBgYGCAQGBgYIAAQGBgYIBh0ENB0HAAIBAwQABQAAAAMBAgUIAyEFBQUFJwErAgICDQMEAAICAAABAwACAwAHBQUCAAIBBBJAABc/QAMFEgwUCwQEBAkJQQlBBgYFBQkFDwIGBw8OCwYLCQIFCAUCAQECBzIFBTICPAECAQICAwIDAQEFAgIFBAMFAgEAAAACAggODggODgIIAA4CAAEBAQMCAQEDAgQEQkMEBEJDAgIKAAM0AwICBQMNNAMDABYDCwoLCwoLCwIEEwETAQQTEwQJAwQHFGlEBgkGRAYABQIGAQIIAAICAgICAAAAAgMCBQcFBwEAAgUDBQMCAgMCAAIBAAICAgIAAQAbagAABCEEBwIPKwMQMAUkBxsoawAHAwIFAgQBDAQlAwMBAw06AgMCAhAQAQEBAwMDAQMRDQEBAQYEAQUlKQAFAAEEAwABAwAKAwMCAQADAwUABRMIABYFBAACAQwEbD42BQttGi0BAwEBAwASAAELAW4AMQUDAgcJAQQHBW8DAAMEAQMDGQEEBwcwBANwAwgFAAAFAQAECAEAAQwFAwICBgIBAAEADAwMAwIDBAcABAUFBAEABAcFIwAHcQYKBwZyBwUHBQoRBwcKCgUIChYBAQEKBgcECwoMAgQBAQEDBgcBAxEDAwMDAQIBEgEFAgIDBwIuAwUBEgMDAwEAAQEGBAICAAUHAgkDCAMBAAEUAwEEACoDAwEBAQAABQMCAwADACQGGQQCCwQGAgIBAQUHAgEAAwADAhkDAgEBAQEBAQEHAQEDAgIACgACAAAABAgTAgEBAwELBwsGAAMBAAAFAgEBAwAIBAcBAwEBCwEDAQUDAwEAAAUCAwUHAQMDACQABQMAAAAABAEBBAQBAQEALAwBBAIDAAMDAQMDAwcBBwMBAQEDAwABAgECAAYDBQQAAgEBBQIAAwYCAQMDBgMAAwoNCjhzBAgKEQQAAAAEBgYDBwgAAAEAAQACAQElBQUDAwYDARYCARQEBwEBCgMKCwcDBwMBBwMHAAUEBwMDAwcHBQUBCgEBAQEHAQEBCgMFBwcFBQoBAQEHAQEBCgABAQUHBwUAAwUBAQEBBQcHBQUBAQEBAQcgICAgAQUDBQMFBQABAgICAgICAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUDBQYGBgYGCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgGBwQABgAABgYGBgYGBggICAYHBAAGAAAGBgYGBgYGAAAAAAAAAAgICAgGBAAFBgAABgYGBgYGJwYEBgYhBAYIBgcICAAAAAAAAwMAAwADCAAABwEDAwMAAwAHAQEBAQEBAQEAAAAEFxUVFxUXFRUXFRcVFxUEAAANAgEBAQICAgsLCwAKCgoHBwcEAQECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIDAwMDAwMCAgEBAggCCA4OAQgIBAYEAAQAAQgEBgQABAAGBgYEAQsLCUYJRg8PDw8PDw4JCQkJCQ4JCQkJCQhHMyYIJggICEczJggmCAgJCQkJCQkJCQIJCQkJCQkJCQkJBAcIBAcIAQECBQcBNQAAAgICAQIEAgIEBzUEAQAEBANFHgQeBAIEDAMEAQ0BBQUFBQAEAAAAAAACBAINAQEBAQEBAQEAAQEAAAABAQEBAAEFBAEAAAEBAAUEAAAAHx8ABAEBAAEBAQEBAQAAAwUAAAAAAAAAAAEAAwAAAAQABAICAAAABAAFBQUAAAAAAQABAAAAAQcHBwEHBwcHAwUHBwUFAQEBAQUBAQEBAQcBAQEDBQcHBQUBAQEBBQcHBQUBAQEBAQEDBQQHAXABxgbGBgUHAQGEAoCAAgYIAX8BQZC4DwsHpQEhAXkCAAF6AOMIAUEA7BMBQgDrEwFDAOoTAUQAGAFFAEgBRgEAAUcA6RMBSADoEwFJAOcTAUoA5hMBSwDlEwFMAOQTAU0A4xMBTgDiEwFPAOETAVAA4BMBUQDfEwFSAN4TAVMA3RMBVADcEwFVANsTAVYA2hMBVwDZEwFYANgTAVkA1xMBWgDWEwFfANUTASQAyxMCYWEAoBICYmEAnxICY2EAnhIJ6wwBAEEBC8UGpBObEowS9xHuEe0R5RHiEd0RGNMRyRDIEL8Q+AiiEJsQ1RTCFMEUsxSyFK8UrRSdFJoUkA2HFP8TygeEFKQHngWeBakSohKdEpwSmhKZEpgSlxKWEpUSlBK8CpMSkhKREpASjxK8Co4SjRKLEooSiRKGEoUShBKDEoISiBKBEoAS/xGWCv4R/RH8EfkR+BH2EfUR9BGHEvMR8hHxEfsR+hHwEe8R7BHrEeoR6RHoEecR5hHkEeMR4RHgEd8R3hHcEdsR2hHZEdgR1xHWEdUR1BHSEdERhwrQEc8RzhHNEcwRyxHKEfwJyRHIEccRxhHFEbQRsxGyEbERsBGvEa4RrRGsEasRqhGpEagRpxGmEaURpBHEEcMRwhHBEcARvxG+Eb0RvBG7EboRuRG4EbcRthG1EaMRohGhEZYKnxGJEe8JnhGdEZwRmxGaEZkRmBGXEZYRlRGUEZMRkhGREZARjxGOEY0RhBGgEfwQ9hD1EIwRixGGEYoRiBGHEYURgxGCEYERgBH/EP4Q/RD7EPoQ+RD4EPcQ9BA6SPMQ2AaECuIG8hCCCuMG1gbxEIMKhgrwEO8QzQbOCe4Q7RDsEJ4F6xDqEOkQ6BDnEOYQ5RDkEOMQ4hDhEOAQ3xDeEN0Q3BDbENoQ2RDYENcQ1hDVENQQ0xDSENEQ0BDPEM4QzRDMEMsQyhDuBMcQxhDFEMQQwxDCEMEQwBC+EL0QvBC7ELoQuRC4ELcQthC1ELQQngU2nQcashCxELAQrxCuEK0QrBCrEKoQqRCoEKcQowamEKMGpRCjBqQQoxChEKAQnxCeEOcIpAedEJwQmhCZEJgQlxCWEJUQlBCTEKEG5QihBuUIoQaSEJEQkBCPEI4QjRCMEIsQpAeKEIkQiBCHEIkEhhCJBIUQiQSEEIkEgxCJBIIQgRCAEP8P/g/9D/UU9BT2D/MU8hThCPEU8BTvFO4U7RTsFOsU6hTpFOcI6BTnFOYU5RTkFOMU4hThFOAU3xTeFN0U3BTbFNoU2RTYFNcU1hTUFNMU0hTRFNAUzxTOFM0UzBTLFMYUyhTJFMgUxxTFFMQUsxDDFMAUvxSXBr4UvRS8FLsUpQGlAcMBuhS5FLgUtxS2FLUUlwa0FPYPlwaxFLAUrhTRBKwUqxSqFKkUqBSnFKYUpRSUDqQUoxSiFKEUoBSfFJ4UlwaZFOEKlRSWFOYNkxSYFJcUiwiUFJIU1g2RFJAU/Alu5Ar+Ao8UjhSyDYwUjRTbBYsUjg2IFIoUiRSlAaUBsg2GFIMUghTvDIAU/RP4E/cT9hPzE+EHhRT+E4EU/BP7E/oT+RP1E/QT7hPtE/IT8RPwE+8TDtIT0RPTE9QTrwOlAdATzxPOE80TzBOyB8oTsQfJE8gTxxOlAaUBxhPFE8QT+gvDE/oLrgf0C8ITwROqB7oTuxO5E74TvRO8E6kH5wu3E7YTqAe1E+4D7gPuA+4DkAvMEsoSyBLGEsQSwhLAEr4SvBK6ErgSthK0ErISlAvzEoQIjgvnEuYS5RLkEuMSjwviEuES4BKYC94S3RLcEtsS2hKlAdkS2BKDC9cS1RLUEtMS0RLPEoIL1hLAE78T0hLQEs4S/gJubvIS8RLwEu8S7hLtEuwS6xKPC+oS6RLoEm6NC40LqATuBO4E3xLuBG6JC4gLqASlAaUBhwubBW6JC4gLqASlAaUBhwubBW6GC4ULqASlAaUBhAubBW6GC4ULqASlAaUBhAubBf4CbrQTsxOyE/4CbrETsBOvE26uE60TrBOrE8wLzAuqE6kTqBOnE6YTbqUToxOiE6ETxAvEC6ATnxOeE50TnBNumxOaE5kTmBOXE5YTlROUE26TE5ITkROQE48TjhONE4wT/gJuuguLE4oTiROIE4cThhPNEskSxRK5ErUSwRK9Ev4CbroLhROEE4MTghOBE4ATyxLHEsMStxKzEr8SuxKSB/4K/xKSB/4K/hJuoQWhBfYB9gH2Aa8LpQHzAvMCbqEFoQX2AfYB9gGvC6UB8wLzAm6gBaAF9gH2AfYBrgulAfMC8wJuoAWgBfYB9gH2Aa4LpQHzAvMCbv0S/BJu+xL6Em75EvgSbvcS9hJumQv1ErEHbpkL9BKxB/4CsRKTAf4Cbu4D7gOwEqYSqhKvEm6nEqsSrhJuqBKsEq0SbqQSbqMSbqUS4grwCqES8AriCgqY/DPeFIAMAQd/AkAgAEUNACAAQQhrIgMgAEEEaygCACICQXhxIgBqIQUCQCACQQFxDQAgAkECcUUNASADIAMoAgAiBGsiA0HApAsoAgBJDQEgACAEaiEAAkACQAJAQcSkCygCACADRwRAIAMoAgwhASAEQf8BTQRAIAEgAygCCCICRw0CQbCkC0GwpAsoAgBBfiAEQQN2d3E2AgAMBQsgAygCGCEGIAEgA0cEQCADKAIIIgIgATYCDCABIAI2AggMBAsgAygCFCICBH8gA0EUagUgAygCECICRQ0DIANBEGoLIQQDQCAEIQcgAiIBQRRqIQQgASgCFCICDQAgAUEQaiEEIAEoAhAiAg0ACyAHQQA2AgAMAwsgBSgCBCICQQNxQQNHDQNBuKQLIAA2AgAgBSACQX5xNgIEIAMgAEEBcjYCBCAFIAA2AgAPCyACIAE2AgwgASACNgIIDAILQQAhAQsgBkUNAAJAIAMoAhwiBEECdEHgpgtqIgIoAgAgA0YEQCACIAE2AgAgAQ0BQbSkC0G0pAsoAgBBfiAEd3E2AgAMAgsCQCADIAYoAhBGBEAgBiABNgIQDAELIAYgATYCFAsgAUUNAQsgASAGNgIYIAMoAhAiAgRAIAEgAjYCECACIAE2AhgLIAMoAhQiAkUNACABIAI2AhQgAiABNgIYCyADIAVPDQAgBSgCBCIEQQFxRQ0AAkACQAJAAkAgBEECcUUEQEHIpAsoAgAgBUYEQEHIpAsgAzYCAEG8pAtBvKQLKAIAIABqIgA2AgAgAyAAQQFyNgIEIANBxKQLKAIARw0GQbikC0EANgIAQcSkC0EANgIADwtBxKQLKAIAIAVGBEBBxKQLIAM2AgBBuKQLQbikCygCACAAaiIANgIAIAMgAEEBcjYCBCAAIANqIAA2AgAPCyAEQXhxIABqIQAgBSgCDCEBIARB/wFNBEAgBSgCCCICIAFGBEBBsKQLQbCkCygCAEF+IARBA3Z3cTYCAAwFCyACIAE2AgwgASACNgIIDAQLIAUoAhghBiABIAVHBEAgBSgCCCICIAE2AgwgASACNgIIDAMLIAUoAhQiAgR/IAVBFGoFIAUoAhAiAkUNAiAFQRBqCyEEA0AgBCEHIAIiAUEUaiEEIAEoAhQiAg0AIAFBEGohBCABKAIQIgINAAsgB0EANgIADAILIAUgBEF+cTYCBCADIABBAXI2AgQgACADaiAANgIADAMLQQAhAQsgBkUNAAJAIAUoAhwiBEECdEHgpgtqIgIoAgAgBUYEQCACIAE2AgAgAQ0BQbSkC0G0pAsoAgBBfiAEd3E2AgAMAgsCQCAFIAYoAhBGBEAgBiABNgIQDAELIAYgATYCFAsgAUUNAQsgASAGNgIYIAUoAhAiAgRAIAEgAjYCECACIAE2AhgLIAUoAhQiAkUNACABIAI2AhQgAiABNgIYCyADIABBAXI2AgQgACADaiAANgIAIANBxKQLKAIARw0AQbikCyAANgIADwsgAEH/AU0EQCAAQXhxQdikC2ohAgJ/QbCkCygCACIEQQEgAEEDdnQiAHFFBEBBsKQLIAAgBHI2AgAgAgwBCyACKAIICyEAIAIgAzYCCCAAIAM2AgwgAyACNgIMIAMgADYCCA8LQR8hASAAQf///wdNBEAgAEEmIABBCHZnIgJrdkEBcSACQQF0a0E+aiEBCyADIAE2AhwgA0IANwIQIAFBAnRB4KYLaiEEAn8CQAJ/QbSkCygCACIHQQEgAXQiAnFFBEBBtKQLIAIgB3I2AgAgBCADNgIAQRghAUEIDAELIABBGSABQQF2a0EAIAFBH0cbdCEBIAQoAgAhBANAIAQiAigCBEF4cSAARg0CIAFBHXYhBCABQQF0IQEgAiAEQQRxaiIHKAIQIgQNAAsgByADNgIQQRghASACIQRBCAshACADIgIMAQsgAigCCCIEIAM2AgwgAiADNgIIQRghAEEIIQFBAAshByABIANqIAQ2AgAgAyACNgIMIAAgA2ogBzYCAEHQpAtB0KQLKAIAQQFrIgBBfyAAGzYCAAsLfgECfyMAQSBrIgIkAAJAIABBACAArSABrX5CIIinG0UEQEEAIAAgACABEEciAxsNASACQSBqJAAgAw8LIAIgATYCBCACIAA2AgBBuPwIKAIAQYT0AyACEB4aECgACyACIAAgAWw2AhBBuPwIKAIAQdPzAyACQRBqEB4aECgACxcAQQFBfyAAIAEgARA8IgAQqwIgAEYbCyUBAX8gACgCLCIAQQBBgAEgACgCABEEACIABH8gACgCEAVBAAsLNAEBfwJAIAAgARDnASIBRQ0AIAAoAiwiACABQQggACgCABEEACIARQ0AIAAoAhAhAgsgAgtuAQF/IwBBIGsiAyQAIANCADcDGCADQgA3AxAgAyACNgIMAkAgA0EQaiABIAIQwwsiAUEASARAIANB4I8LKAIAEHg2AgBBsokEIAMQNgwBCyAAIANBEGoiABCqBSABEKsCGiAAEF8LIANBIGokAAskAQF/IwBBEGsiAyQAIAMgAjYCDCAAIAEgAhCDDCADQRBqJAALMwEBfyACBEAgACEDA0AgAyABLQAAOgAAIANBAWohAyABQQFqIQEgAkEBayICDQALCyAAC6QBAQN/IwBBEGsiAiQAAkAgABAvIgMgACgCAEEDcSAAKQMIEJ0KIgEEfyABKAIYBUEACyIBDQAgAygCTCIBKAIAKAIMIgMEQCABKAIIIAAoAgBBA3EgACkDCCADEScAIgENAQtBACEBIAAoAgBBA3FBAkYNACACIAApAwg3AwggAkElNgIAQaDkCiEBQaDkCkEgQagYIAIQoQEaCyACQRBqJAAgAQsPACAAIAEgAiADQQAQ0QwLQwAgACAAIAGlIAG9Qv///////////wCDQoCAgICAgID4/wBWGyABIAC9Qv///////////wCDQoCAgICAgID4/wBYGwsVACAAEKgBBEAgACgCBA8LIAAQqQMLFAAgABAnBEAgAC0ADw8LIAAoAgQLVQACQCABBEAgAiABKAIITw0BIAAgASgCACABKAIEIAJqIAEoAgxwQcgAbGpByAAQHxoPC0GJ2gFB4oMBQT1BhyUQAAALQcK8A0HigwFBPUGHJRAAAAsmACAAIAEQ1QciAUUEQEEADwsgABDwASgCDCABKAIQQQJ0aigCAAsuACAALQAPIgBBAWpB/wFxQRFPBEBB38UDQcmEAUHJAEH+ngEQAAALIABB/wFHCwcAQQEQBwALFQAgACABQZEqQT1B4oMBQcgAEMgKC0MAIAAgACABpCABvUL///////////8Ag0KAgICAgICA+P8AVhsgASAAvUL///////////8Ag0KAgICAgICA+P8AWBsLCwAgACABQQAQhQcLPAEBf0EHIQICQAJAAkAgAEEoag4IAgICAgAAAAABC0EIDwsgAEF/RyABQX1NckUEQEEADwtBHSECCyACC0IBAX8gACABEOcBIgFFBEBBAA8LIAAoAjQgASgCIBDoASAAKAI0IgJBAEGAASACKAIAEQQAIAEgACgCNBDeAjYCIAtvAQJ/IAAtAAAiAgR/AkADQCABLQAAIgNFDQECQCACIANGDQAgAhCAAiABLQAAEIACRg0AIAAtAAAhAgwCCyABQQFqIQEgAC0AASECIABBAWohACACDQALQQAhAgsgAgVBAAsQgAIgAS0AABCAAmsLLAACQAJAAkAgACgCAEEDcUEBaw4DAQAAAgsgACgCKCEACyAAKAIYIQALIAALVQECfyAAIAFBMEEAIAEoAgBBA3FBA0cbaigCKBDnASIDBEAgACgCNCADKAIgEOgBIAAoAjQiAiABQQggAigCABEEACECIAMgACgCNBDeAjYCIAsgAgukAQMBfAF+AX8gAL0iAkI0iKdB/w9xIgNBsghNBHwgA0H9B00EQCAARAAAAAAAAAAAog8LAnwgAJkiAEQAAAAAAAAwQ6BEAAAAAAAAMMOgIAChIgFEAAAAAAAA4D9kBEAgACABoEQAAAAAAADwv6AMAQsgACABoCIAIAFEAAAAAAAA4L9lRQ0AGiAARAAAAAAAAPA/oAsiAJogACACQgBTGwUgAAsLKgEBfyMAQRBrIgMkACADIAI2AgwgACABIAJBgQRBABC2BxogA0EQaiQACykBAX8gAgRAIAAhAwNAIAMgAToAACADQQFqIQMgAkEBayICDQALCyAACxwBAX8gABCoAQRAIAAoAgAgABD4AhoQrwULIAALxwEBA38jAEEQayIFJAAgABAvIQYCQAJAIAAgAUEAEG0iBCACRXINACACQQEQRyIERQ0BIAQgBiABELIBNgIAAkAgACgCECICRQRAIAQgBDYCBAwBCyACIAIoAgQiBkYEQCACIAQ2AgQgBCACNgIEDAELIAQgBjYCBCACIAQ2AgQLIAAtAABBBHENACAAIARBABDzBwsgAwRAIAAgAUEBEG0aCyAFQRBqJAAgBA8LIAUgAjYCAEG4/AgoAgBB0/MDIAUQHhoQKAALCwAgACAB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uKgLQRgQ2AFFDQJBGBBIIgFFDQELIAEgAikCCDcCACABIAIpAhg3AhAgASACKQIQNwIIDAELQQAhAQsgAkEgaiQAQcSqC0EBOgAAQcCqCyABNgIAIAELIAAgAARAIAAoAhQQGCAAKAIYEBggACgCHBAYIAAQGAsLCQAgAEEAEPkGC78KAgV/D34jAEHgAGsiBSQAIARC////////P4MhDCACIASFQoCAgICAgICAgH+DIQogAkL///////8/gyINQiCIIQ4gBEIwiKdB//8BcSEHAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgB0H//wFrQYGAfksNAQsgAVAgAkL///////////8AgyILQoCAgICAgMD//wBUIAtCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhCgwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEKIAMhAQwCCyABIAtCgICAgICAwP//AIWEUARAIAIgA4RQBEBCgICAgICA4P//ACEKQgAhAQwDCyAKQoCAgICAgMD//wCEIQpCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEAgASALhEIAIQFQBEBCgICAgICA4P//ACEKDAMLIApCgICAgICAwP//AIQhCgwCCyABIAuEUARAQgAhAQwCCyACIAOEUARAQgAhAQwCCyALQv///////z9YBEAgBUHQAGogASANIAEgDSANUCIGG3kgBkEGdK18pyIGQQ9rELYBQRAgBmshBiAFKQNYIg1CIIghDiAFKQNQIQELIAJC////////P1YNACAFQUBrIAMgDCADIAwgDFAiCBt5IAhBBnStfKciCEEPaxC2ASAGIAhrQRBqIQYgBSkDSCEMIAUpA0AhAwsgA0IPhiILQoCA/v8PgyICIAFCIIgiBH4iECALQiCIIhMgAUL/////D4MiAX58Ig9CIIYiESABIAJ+fCILIBFUrSACIA1C/////w+DIg1+IhUgBCATfnwiESAMQg+GIhIgA0IxiIRC/////w+DIgMgAX58IhQgDyAQVK1CIIYgD0IgiIR8Ig8gAiAOQoCABIQiDH4iFiANIBN+fCIOIBJCIIhCgICAgAiEIgIgAX58IhAgAyAEfnwiEkIghnwiF3wh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AUpqIQIMAQsLIABBAEwgAEH/AE5yDQEgAiwAACAEKAIAQQFrSw0BCyADQQQ2AgALC4QBAQJ/IwBBEGsiAiQAIAAQqAEEQCAAKAIAIAAQ+AIaEK8FCyABECMaIAEQqAEhAyAAIAEoAgg2AgggACABKQIANwIAIAFBABDUASACQQA6AA8gASACQQ9qENMBAkAgACABRiIBIANyRQ0ACyAAEKgBIAFyRQRAIAAQqQMaCyACQRBqJAALUAEBfgJAIANBwABxBEAgASADQUBqrYYhAkIAIQEMAQsgA0UNACACIAOtIgSGIAFBwAAgA2utiIQhAiABIASGIQELIAAgATcDACAAIAI3AwgLzgkCBH8EfiMAQfAAayIGJAAgBEL///////////8AgyEJAkACQCABUCIFIAJC////////////AIMiCkKAgICAgIDA//8AfUKAgICAgIDAgIB/VCAKUBtFBEAgA0IAUiAJQoCAgICAgMD//wB9IgtCgICAgICAwICAf1YgC0KAgICAgIDAgIB/URsNAQsgBSAKQoCAgICAgMD//wBUIApCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhBCABIQMMAgsgA1AgCUKAgICAgIDA//8AVCAJQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQQMAgsgASAKQoCAgICAgMD//wCFhFAEQEKAgICAgIDg//8AIAIgASADhSACIASFQoCAgICAgICAgH+FhFAiBRshBEIAIAEgBRshAwwCCyADIAlCgICAgICAwP//AIWEUA0BIAEgCoRQBEAgAyAJhEIAUg0CIAEgA4MhAyACIASDIQQMAgsgAyAJhFBFDQAgASEDIAIhBAwBCyADIAEgASADVCAJIApWIAkgClEbIggbIQogBCACIAgbIgxC////////P4MhCSACIAQgCBsiC0IwiKdB//8BcSEHIAxCMIinQf//AXEiBUUEQCAGQeAAaiAKIAkgCiAJIAlQIgUbeSAFQQZ0rXynIgVBD2sQtgEgBikDaCEJIAYpA2AhCkEQIAVrIQULIAEgAyAIGyEDIAtC////////P4MhASAHBH4gAQUgBkHQAGogAyABIAMgASABUCIHG3kgB0EGdK18pyIHQQ9rELYBQRAgB2shByAGKQNQIQMgBikDWAtCA4YgA0I9iIRCgICAgICA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AxA8EKsCGiAAQZzYA0EBEKsCGiACIAErAwgQsQsgACACEKoFIgAgABA8EKsCGiACEF8gAkEQaiQAC18BAn8gAkUEQEEADwsgAC0AACIDBH8CQANAIAMgAS0AACIERyAERXINASACQQFrIgJFDQEgAUEBaiEBIAAtAAEhAyAAQQFqIQAgAw0AC0EAIQMLIAMFQQALIAEtAABrCzoBAX8CQCACRQ0AIAAQLyACEM8DIgMgAkcNACADEHZFDQAgACABIAJBARCSDA8LIAAgASACQQAQkgwLLgAQmQwgACkDAEGgkAsQD0HIkAtB2JALQdSQC0HAkAsoAgAbKAIANgIAQaCQCwsoAQF/IAAoAkQiAUEBRgRAIAAQngwgAEEANgJEDwsgACABQQFrNgJEC5kBAQR/AkACQEHckQsoAgAiBCAAKAJMIgNB/////3txRgRAQX8hAiAAKAJEIgFB/////wdGDQIgACABQQFqNgJEDAELIABBzABqIQFBfyECAkAgA0EASARAIAFBADYCAAwBCyADDQILIAEgASgCACIBIAQgARs2AgAgAQ0BIABBxJELEJwMC0EAIQILIAIEQCAAQcSRCxCcDAsLHgAgAEUEQEGJ2gFBjoIBQRVBuo8BEAAACyAAKAIICwwAIABBhaEFQQAQbQs9AQJ/IABBACAAQQBKGyEAA0AgACAERkUEQCADIARBA3QiBWogAiABIAVqKwMAojkDACAEQQFqIQQMAQsLCz0AIAEoAgggAk0EQEHCvANB4oMBQT1BhyUQAAALIAAgASgCACABKAIEIAJqIAEoAgxwQcgAbGpByAAQHxoLnQIBB38jAEEQayIGJAACQAJAIAAoAggiBSAAKAIMIgFHBEAgACgCACECIAAoAgQhAwwBCyAFQQF0QQEgBRsiAUHmzJkzSwRAQcQAIQAMAgsgACgCACABQShsEDoiAkUEQEEwIQAMAgsgAiAAKAIMIgRBKGxqQQAgASAEa0EobBAzGiAEIAAoAggiBSAAKAIEIgNqSQRAIANBKGwhByACIAEgBCADayIEayIDQShsaiACIAdqIARBKGwQUxogACADNgIECyAAIAE2AgwgACACNgIACyACIAMgBWogAXBBKGxqQQBBKBAzGiAAIAAoAggiAEEBajYCCCAGQRBqJAAgAA8LIAYgABB4NgIAQbj8CCgCAEHa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IAQQtgIgARB5IQEMAAsACyAAEBshAyABQQFHIQYDQCADRQ0BAkAgBkUEQCADIAIgBSAEEDUaDAELIAAgAxAtIQEDQCABRQ0BIAEgAiAFIAQQNRogACABEDAhAQwACwALIAAgAxAcIQMMAAsACwsRACAAQQRBEEGAgICAARCDBwsxAQF/IAAoAgQiASgCICsDECABKwMYoCAAKwMIoSAAKAIAIgAoAiArAxAgACsDGKChC1ABAX9BCCEFAkACQAJAAkAgA0EBaw4EAwACAQILQRAhBQwCC0EEIQUMAQtBACEFCyAAIAEgAyAFIAQQhg4hACACQQBKBEAgACACEIUOCyAACy4BAn8gABAbIQEDQCABBEAgACABQQBBARCgCCACaiECIAAgARAcIQEMAQsLIAILpAEBA39BwAAQjwYiAiACKAIAQXxxQQFyNgIAIAJBwAIQjwYiATYCECACIAAQNzYCGCABQoCAgICAgID4PzcDYCABQQE6AKwBIAFCgICAgICAgPg/NwNYIAFBATYC7AEgAUKAgICAgICA+D83A1AgAUEANgLEAUEFQQQQ1QIhAyABQQA2AswBIAEgAzYCwAEgAUEFQQQQ1QI2AsgBIAAgAhDECCACCxMAIAAgASgCABDvDiABQgA3AgAL/QMBB38gBUEYQRQgAC0AABtqKAIAIAAQvAMiBigCKCAAKAIoIAEoAigQmAYgBEEAIARBAEobQQFqIQxBASELA0AgCyAMRkUEQCAAIgQgAhC7AyEAIAEiByADELsDIQECfyAELQAARQRAIAUoAhggABC8AyEJIAcoAighByAEKAIoIQggBigCKCEGIAArAwggBCsDEGEEQCAEKAIgIAYgCCAHEL0DIQYgCSgCKCEEQQFGBEAgACABIAYbIQcgASAAIAYbIQggCQwDCyABIAAgBhshByAAIAEgBhshCCAJDAILIAQoAiQgBiAIIAcQvQMhBiAJKAIoIQRBAUYEQCABIAAgBhshByAAIAEgBhshCCAJDAILIAAgASAGGyEHIAEgACAGGyEIIAkMAQsgBSgCFCAAELwDIQkgBygCKCEHIAQoAighCCAGKAIoIQYCfyAAKwMIIAQrAxBhBEAgBCgCICAGIAggBxC9AyEGIAkoAighBEECRgRAIAAgASAGGyEIIAEgACAGGwwCCyABIAAgBhshCCAAIAEgBhsMAQsgBCgCJCAGIAggBxC9AyEGIAkoAighBEECRgRAIAEgACAGGyEIIAAgASAGGwwBCyAAIAEgBhshCCABIAAgBhsLIQcgCQshBiAEIAgoAiggBygCKBCYBiALQQFqIQsMAQsLC+wBAQJ/IAEtAARBAUYEQCAAEKIEIQALIAJBIhBnIAAhBANAAkACQAJAAkACQAJAAkACQAJAIAQtAAAiAw4OCAYGBgYGBgYBBQMGAgQACwJAIANB3ABHBEAgA0EvRg0BIANBIkcNByACQZvMAxAaGgwICyACQeTPARAaGgwHCyACQcGjAxAaGgwGCyACQa7JARAaGgwFCyACQcGNARAaGgwECyACQbzwABAaGgwDCyACQcDBABAaGgwCCyACQdMrEBoaDAELIAIgA8AQZwsgBEEBaiEEDAELCyACQSIQZyABLQAEQQFGBEAgABAYCwtFAQF/IAIQPEEBdEECahBIIgRFBEBBfw8LIAECfyADBEAgAiAEEMUDDAELIAIgBBCDCQsgACgCTCgCBCgCBBEAACAEEBgLQgEBfyAAIAEQ5wEiAUUEQEEADwsgACgCNCABKAIcEOgBIAAoAjQiAkEAQYABIAIoAgARBAAgASAAKAI0EN4CNgIcCy4BAX9BGBBUIgMgAjkDECADIAE5AwggACADQQEgACgCABEEACADRwRAIAMQGAsLRgAgACgCECgCkAEQGCAAEIgFIAAoAhAoAmAQvgEgACgCECgCbBC+ASAAKAIQKAJkEL4BIAAoAhAoAmgQvgEgAEG5KxDjAQuBDAIKfwl8AkAgABA4RQRAIAAoAhAoArQBRQ0BC0QAAMD////fQSEMRAAAwP///9/BIQ0gABAbIQNEAADA////38EhDkQAAMD////fQSEPA0ACQAJAAkAgA0UEQCAAKAIQIgAoArQBIgFBACABQQBKG0EBaiECQQEhAQwBCyADKAIQIgIrA2AhESACKwNYIQsgAigClAEiBSsDACESIAIoAnwhASANIAUrAwhEAAAAAAAAUkCiIg0gAisDUEQAAAAAAADgP6IiE6AQIiEQIA4gEkQAAAAAAABSQKIiEiALIBGgRAAAAAAAAOA/oiIRoBAiIQ4gDCANIBOhECohDCAPIBIgEaEQKiEPIAFFDQEgAS0AUUEBRw0BIAErA0AiDSABQRhBICAAKAIQLQB0QQFxIgIbaisDAEQAAAAAAADgP6IiEaEiCyAMIAsgDGMbIQwgASsDOCILIAFBIEEYIAIbaisDAEQAAAAAAADgP6IiEqAiEyAOIA4gE2MbIQ4gCyASoSILIA8gCyAPYxshDyANIBGgIg0gEGRFDQEMAgsDQCABIAJGRQRAIAAoArgBIAFBAnRqKAIAKAIQIgMrAxAhECADKwMYIREgAysDICELIA0gAysDKBAiIQ0gDiALECIhDiAMIBEQKiEMIA8gEBAqIQ8gAUEBaiEBDAELCwJAAkAgACgCDCIBRQ0AIAEtAFFBAUcNACABKwNAIhAgAUEYQSAgAC0AdEEBcSIDG2orAwBEAAAAAAAA4D+iIhGhIgsgDCALIAxjGyEMIAErAzgiCyABQSBBGCADG2orAwBEAAAAAAAA4D+iIhKgIhMgDiAOIBNjGyEOIAsgEqEiCyAPIAsgD2MbIQ8gECARoCIQIA1kDQELIA0hEAsgACAQOQMoIAAgDjkDICAAIAw5AxggACAPOQMQDAMLIBAhDQsgACADEC0hAgNAAkACQAJAIAIEQCACKAIQIgUoAggiBkUNAyAGKAIEIQdBACEEA0ACQAJAIAQgB0cEQCAGKAIAIARBMGxqIggoAgQhCUEAIQEMAQsgBSgCYCIBDQEMBAsDQCABIAlGRQRAIAgoAgAgAUEEdGoiCisDACEQIA0gCisDCCIRECIhDSAOIBAQIiEOIAwgERAqIQwgDyAQECohDyABQQFqIQEMAQsLIARBAWohBAwBCwsgAS0AUUEBRw0BIAErA0AiECABQRhBICAAKAIQLQB0QQFxIgQbaisDAEQAAAAAAADgP6IiEaEiCyAMIAsgDGMbIQwgASsDOCILIAFBIEEYIAQbaisDAEQAAAAAAADgP6IiEqAiEyAOIA4gE2MbIQ4gCyASoSILIA8gCyAPYxshDyAQIBGgIhAgDWRFDQEMAgsgACADEBwhAwwECyANIRALAkACQCAFKAJkIgFFDQAgAS0AUUEBRw0AIAErA0AiDSABQRhBICAAKAIQLQB0QQFxIgQbaisDAEQAAAAAAADgP6IiEaEiCyAMIAsgDGMbIQwgASsDOCILIAFBIEEYIAQbaisDAEQAAAAAAADgP6IiEqAiEyAOIA4gE2MbIQ4gCyASoSILIA8gCyAPYxshDyANIBGgIg0gEGQNAQsgECENCwJAAkAgBSgCaCIBRQ0AIAEtAFFBAUcNACABKwNAIhAgAUEYQSAgACgCEC0AdEEBcSIEG2orAwBEAAAAAAAA4D+iIhGhIgsgDCALIAxjGyEMIAErAzgiCyABQSBBGCAEG2orAwBEAAAAAAAA4D+iIhKgIhMgDiAOIBNjGyEOIAsgEqEiCyAPIAsgD2MbIQ8gECARoCIQIA1kDQELIA0hEAsCQCAFKAJsIgFFDQAgAS0AUUEBRw0AIAErA0AiDSABQRhBICAAKAIQLQB0QQFxIgUbaisDAEQAAAAAAADgP6IiEaEiCyAMIAsgDGMbIQwgASsDOCILIAFBIEEYIAUbaisDAEQAAAAAAADgP6IiEqAiEyAOIA4gE2MbIQ4gCyASoSILIA8gCyAPYxshDyANIBGgIg0gEGQNAQsgECENCyAAIAIQMCECDAALAAsACwvxAgEEfyMAQTBrIgMkACADIAI2AgwgAyACNgIsIAMgAjYCEAJAAkACQAJAAkBBAEEAIAEgAhBiIgVBAEgNAEEBIQIgBUEBaiEGAkAgBSAAEEYgABAkayIETwRAIAAQJ0EAIAYgBGsiBEEBRhsNASAAIAQQ0QMLQQAhAgsgA0IANwMYIANCADcDECAFQRBPQQAgAhsNASADQRBqIQQgBSACBH8gBAUgABB0CyAGIAEgAygCLBBiIgFHIAFBAE5xDQIgAUEATA0AIAAQJwRAIAFBgAJPDQQgAgRAIAAQdCADQRBqIAEQHxoLIAAgAC0ADyABajoADyAAECRBEEkNAUG8wANByYQBQdgBQekfEAAACyACDQQgACAAKAIEIAFqNgIECyADQTBqJAAPC0GfrwNByYQBQcsBQekfEAAAC0H4ogNByYQBQdABQekfEAAAC0Hf1AFByYQBQdMBQekfEAAAC0HjpAFByYQBQdoBQekfEAAAC0UAIAFBD0YEQCAIDwsCQCABIAdGBEAgBiECIAUhAwwBC0F/IQJBngEhAyABQRxHDQAgACgCEA0AQTsPCyAAIAM2AgAgAgsQACAAKAIEIAAoAgBrQQJ1Cz4AAkAgAARAIAFFDQEgACABIAEQPBDqAUUPC0HA2gFB+YMBQQxB/v0AEAAAC0HF2QFB+YMBQQ1B/v0AEAAAC7wDAQN/IwBBEGsiCCQAIAggAjYCCCAIIAE2AgwgCEEEaiIBIAMQUSABEM0BIQkgARBOIARBADYCAEEAIQECQANAIAYgB0YgAXINAQJAIAhBDGogCEEIahBbDQACQCAJIAYoAgAQ2gNBJUYEQCAGQQRqIAdGDQJBACECAn8CQCAJIAYoAgQQ2gMiAUHFAEYNAEEEIQogAUH/AXFBMEYNACABDAELIAZBCGogB0YNA0EIIQogASECIAkgBigCCBDaAwshASAIIAAgCCgCDCAIKAIIIAMgBCAFIAEgAiAAKAIAKAIkEQ4ANgIMIAYgCmpBBGohBgwBCyAJQQEgBigCABD+AQRAA0AgByAGQQRqIgZHBEAgCUEBIAYoAgAQ/gENAQsLA0AgCEEMaiIBIAhBCGoQWw0CIAlBASABEIQBEP4BRQ0CIAEQmAEaDAALAAsgCSAIQQxqIgEQhAEQnwEgCSAGKAIAEJ8BRgRAIAZBBGohBiABEJgBGgwBCyAEQQQ2AgALIAQoAgAhAQwBCwsgBEEENgIACyAIQQxqIAhBCGoQWwRAIAQgBCgCAEECcjYCAAsgCCgCDCAIQRBqJAALvAMBA38jAEEQayIIJAAgCCACNgIIIAggATYCDCAIQQRqIgEgAxBRIAEQzgEhCSABEE4gBEEANgIAQQAhAQJAA0AgBiAHRiABcg0BAkAgCEEMaiAIQQhqEFwNAAJAIAkgBiwAABDbA0ElRgRAIAZBAWogB0YNAkEAIQICfwJAIAkgBiwAARDbAyIBQcUARg0AQQEhCiABQf8BcUEwRg0AIAEMAQsgBkECaiAHRg0DQQIhCiABIQIgCSAGLAACENsDCyEBIAggACAIKAIMIAgoAgggAyAEIAUgASACIAAoAgAoAiQRDgA2AgwgBiAKakEBaiEGDAELIAlBASAGLAAAEP8BBEADQCAHIAZBAWoiBkcEQCAJQQEgBiwAABD/AQ0BCwsDQCAIQQxqIgEgCEEIahBcDQIgCUEBIAEQhQEQ/wFFDQIgARCZARoMAAsACyAJIAhBDGoiARCFARCoBSAJIAYsAAAQqAVGBEAgBkEBaiEGIAEQmQEaDAELIARBBDYCAAsgBCgCACEBDAELCyAEQQQ2AgALIAhBDGogCEEIahBcBEAgBCAEKAIAQQJyNgIACyAIKAIMIAhBEGokAAsWACAAIAEgAiADIAAoAgAoAjARBgAaCwcAIAAgAUYLLAEBfyAAIAEQkQwiAkEBahBIIgEEQCABIAAgAhAfGiABIAJqQQA6AAALIAELEAAgAEEgRiAAQQlrQQVJcgtBAQF/IAAoAgQiAiABTQRAQaK7A0HbgQFBwgBB3yMQAAALIAFBA3YgACAAKAIAIAJBIUkbai0AACABQQdxdkEBcQuUAQIDfAF/IAArAwAhAwJ/IAAoAhAiBigCBCAARgRAIAYoAgAMAQsgAEEYagsiBisDACEEAkAgAkUNACABKAIQIgIoAgQgAUYEQCACKAIAIQEMAQsgAUEYaiEBCyABKwMAIQUgAyAEYQRAIAMgBWIEQEEADwsgACsDCCABKwMIIAYrAwgQig1Bf0cPCyADIAUgBBCKDQtFAgJ/AXwgAEEAIABBAEobIQADQCAAIANGRQRAIAUgASADQQJ0IgRqKgIAIAIgBGoqAgCUu6AhBSADQQFqIQMMAQsLIAULXQIBfAJ/IAAhAyABIQQDQCADBEAgA0EBayEDIAIgBCsDAKAhAiAEQQhqIQQMAQsLIAIgALejIQIDQCAABEAgASABKwMAIAKhOQMAIABBAWshACABQQhqIQEMAQsLC3oBAn8gASAAIAMoAgARAAAhBSACIAEgAygCABEAACEEAkAgBUUEQCAERQRADwsgASACELkBIAEgACADKAIAEQAARQ0BIAAgARC5AQwBCyAEBEAgACACELkBDAELIAAgARC5ASACIAEgAygCABEAAEUNACABIAIQuQELC5MDAQt/IAEQPCECIwBBEGsiCiQAAkAgCkEIaiAAELYFIgwtAABBAUcNACAAIAAoAgBBDGsoAgBqIgUoAhghAyABIAJqIgsgASAFKAIEQbABcUEgRhshCSAFKAJMIgJBf0YEQCMAQRBrIgQkACAEQQxqIgcgBRBRIAdBgKwLEKoCIgJBICACKAIAKAIcEQAAIQIgBxBOIARBEGokACAFIAI2AkwLIALAIQdBACECIwBBEGsiCCQAAkAgA0UNACAFKAIMIQYgCSABayIEQQBKBEAgAyABIAQgAygCACgCMBEEACAERw0BCyAGIAsgAWsiAWtBACABIAZIGyIGQQBKBEAgCEEEaiIEIAYgBxDnCiADIAgoAgQgBCAILAAPQQBIGyAGIAMoAgAoAjARBAAgBBA0GiAGRw0BCyALIAlrIgFBAEoEQCADIAkgASADKAIAKAIwEQQAIAFHDQELIAVBADYCDCADIQILIAhBEGokACACDQAgACAAKAIAQQxrKAIAakEFEPYNCyAMELUFIApBEGokACAAC6ULAQ9/AkAgAEUNAAJAAkACQAJAAkACQAJAIAAoAiBFBEBBASEDIAAtACQiAkECcQ0HIAEEQCACQQFxDQgLIAAoAgAgACgCBEcNCEEAIQMgABCcCCINRQ0HQQAhAiAAKAIAIgRBACAEQQBKGyEPIA0oAhghDCANKAIUIQkgACgCGCEQIAAoAhQhCiAEQQQQSiEHA0AgAiAPRkUEQCAHIAJBAnRqQX82AgAgAkEBaiECDAELCwJAQQggACgCECABG0EBaw4IAAQHAwcHBwIHC0F/IAQgBEEASBtBAWohBCANKAIcIQ4gACgCHCELQQAhAgNAIAIgBEYEQANAIAUgD0YNByAKIAVBAnQiA2ooAgAiBCAKIAVBAWoiBUECdCIGaigCACICIAIgBEgbIQggBCECA0AgAiAIRkUEQCAHIBAgAkECdGooAgBBAnRqIAI2AgAgAkEBaiECDAELCyADIAlqKAIAIgMgBiAJaigCACICIAIgA0gbIQYgAyECA0AgAiAGRwRAIAJBAnQhCCACQQFqIQIgBCAHIAggDGooAgBBAnRqKAIATA0BDAoLCwNAIAMgBkYNASADQQN0IANBAnQhBCADQQFqIQMgDmorAwAgCyAHIAQgDGooAgBBAnRqKAIAQQN0aisDAKGZREivvJry13o+ZEUNAAsMCAsACyACQQJ0IQMgAkEBaiECIAMgCmooAgAgAyAJaigCAEYNAAsMBQtBh9cBQf+/AUGnAUHsvAEQAAALA0AgAyAPRg0DIAogA0ECdGooAgAiBSAKIANBAWoiBEECdGooAgAiAiACIAVIGyEGIAUhAgNAIAIgBkZFBEAgByAQIAJBAnRqKAIAQQJ0aiACNgIAIAJBAWohAgwBCwsgCSADQQJ0aigCACICIAkgBEECdGooAgAiAyACIANKGyEDA0AgAiADRgRAIAQhAwwCCyACQQJ0IQYgAkEBaiECIAUgByAGIAxqKAIAQQJ0aigCAEwNAAsLDAMLIA0oAhwhDiAAKAIcIQsDQCAFIA9GDQIgCiAFQQJ0IgNqKAIAIgQgCiAFQQFqIgVBAnQiBmooAgAiAiACIARIGyEIIAQhAgNAIAIgCEZFBEAgByAQIAJBAnRqKAIAQQJ0aiACNgIAIAJBAWohAgwBCwsgAyAJaigCACIDIAYgCWooAgAiAiACIANIGyEGIAMhAgNAIAIgBkcEQCACQQJ0IQggAkEBaiECIAQgByAIIAxqKAIAQQJ0aigCAEwNAQwFCwsDQCADIAZGDQEgA0ECdCECIANBAWohAyACIA5qKAIAIAsgByACIAxqKAIAQQJ0aigCAEECdGooAgBGDQALCwwCC0F/IAQgBEEASBtBAWohBCANKAIcIQYgACgCHCEOQQAhAgNAIAIgBEYEQANAIAUgD0YNAyAKIAVBAnQiBGooAgAiAyAKIAVBAWoiBUECdCILaigCACICIAIgA0gbIQggAyECA0AgAiAIRkUEQCAHIBAgAkECdGooAgBBAnRqIAI2AgAgAkEBaiECDAELCyAEIAlqKAIAIgQgCSALaigCACICIAIgBEgbIQsgBCECA0AgAiALRwRAIAJBAnQhCCACQQFqIQIgAyAHIAggDGooAgBBAnRqKAIATA0BDAYLCwNAIAQgC0YNAUEAIQMgBiAEQQR0aisDACAOIAcgDCAEQQJ0aigCAEECdGooAgAiAkEEdGorAwChmURIr7ya8td6PmQNBiAEQQF0IQggBEEBaiEEIAYgCEEDdGorAwggDiACQQR0aisDCKGZREivvJry13o+ZEUNAAsMBQsACyACQQJ0IQMgAkEBaiECIAMgCmooAgAgAyAJaigCAEYNAAsMAQtBASEDIAAgAC0AJCIAIABBAnIgARtBAXI6ACQMAQtBACEDCyAHEBggDRBpCyADDwtBAAs/AQJ/IwBBEGsiAiQAIAAgARBHIgNFBEAgAiAAIAFsNgIAQbj8CCgCAEHT8wMgAhAeGhAoAAsgAkEQaiQAIAMLCwAgACABQQEQ+QgLOwAgASgCCCACTQRAQcK8A0HLxwFBP0HMJRAAAAsgACABKAIAIAEoAgQgAmogASgCDHBBKGxqQSgQHxoLzQEBBH8jAEEQayIEJAACQCACIAAgAUEwQQAgASgCAEEDcUEDRxtqKAIoIAIQhgEiA3JFDQAgA0UgACABQVBBACABKAIAQQNxQQJHG2ooAiggAhCGASIGRXINACAEIAEpAwg3AwggBCABKQMANwMAAkAgACADIAYgBBDbAiIDIAJFckUEQCAAIAEQswYgASEDDAELIANFDQELIAMoAgBBA3EiACABKAIAQQNxRgRAIAMhBQwBCyADQVBBMCAAQQNGG2ohBQsgBEEQaiQAIAULSgIBfwF8IAAgASsDABCXAkGA6gooAgAiAkUEQEH02wFBlMEBQYcBQfQfEAAACyAAIAIrAzAgASsDCCIDoSADQejhCi0AABsQlwILPQEBf0H06AooAgAhAgNAIAJBAEwEQEEADwsgAkEBayECIAFB5YoFIAAoAkwoAgQoAgQRAABBf0cNAAtBfwt4AQJ/IwBBMGsiBCQAAkAgAUUgAkVyDQAgBCADKQMINwMIIAQgAykDADcDACAEIAE2AiggACACEOcBIgFFDQAgACgCOCABKAIUEOgBIAAoAjgiAiAEQQQgAigCABEEACEFIAEgACgCOBDeAjYCFAsgBEEwaiQAIAULaQEBf0Hk6AooAgAhAQJAIAAEQEHk6AogAUEBajYCACABDQFB4OgKQQAQvAcQZjYCAEHy4wEQvAcaDwsgAUEATA0AQeToCiABQQFrIgA2AgAgAA0AQeDoCigCABC8BxpB4OgKKAIAEBgLC9UwAhx/AXwjAEEwayIUJABBAUHYABAZIQoCfwJAAkACQCAAEJMCQQFrDgIBAgALIAAoAkghFSAAIR9BAAwCCyAAEC8QNyEVIAAhIEEADAELIABBUEEAIAAoAgBBA3FBAkcbaigCKBAvEDchFSAACyEYIAogAzkDECAKIAU2AgggCiAENgIEIAogFSgCEC0AcyIENgIMAkAgAkEEcQRAIAogARBmNgIAIAJBAnFFDQEgCkEBOgBSDAELAkACQAJAIAIOAwIBAAELIAEQZiEBIApBAToAUiAKIAE2AgAjAEGQAWsiCCQAIAggADYCcCAIAn8CQAJAAkAgABCTAkEBaw4CAQIACyAAKAJIDAILIAAQLwwBCyAAQVBBACAAKAIAQQNxQQJHG2ooAigQLwsiATYCdCABKAJIIRogCCAKKwMQOQNgIAggCigCBDYCUCAKKAIIIQEgCEEANgJoIAggATYCVCAKKAIAIQEjAEGgAWsiDSQAIA1CADcDmAEgDUIANwOQASANQQxqIgdBAEGEARAzGiANQfwAaiIhQQAQvAkgDSAIQUBrIgUoAjQoAhAoApABNgKMASANIA1BkAFqIgI2AnggB0IANwIQIAcgAjYCDCAHIAE2AgQgB0IANwIsIAdCADcCICAHQQE7ASggB0IANwIYIAdCADcCNCAFKAI0KAIQLQBzIQEjAEEQayICJAACfyABQQNPBEAgAiABNgIAQefNBCACEDZB2/cBDAELIAFBAnRBkP4HaigCAAshBCACQRBqJAAgBwJ/AkACQEHIBBBIIgFFDQAgAUHNATYCECABQc4BNgIMIAFBEDYClAMgAUEANgIgIAFBADYCCCABQQo2AhQgAUGAAhBIIgI2AqADIAJFDQEgAUGACCABKAIMEQIAIgY2AjggBkUEQCABKAKgAyABKAIUEQEAIAEgASgCFBEBAAwBCyABQQxqIQIgASAGQYAIajYCPAJAQQAiBkUEQEG8ASABKAIMEQIAIgZFDQEgBkIANwJQIAZCADcCaCAGIAI2AmQgBiACNgJ8IAZCADcCCCAGQQA6AAQgBkIANwIcIAZBADoAGCAGIAI2AhAgBkEANgIAIAZCADcCMCAGQQA6ACwgBiACNgIkIAZBADYCFCAGQQA2AmAgBkIANwJYIAZCADcCcCAGQQA2AnggBkIANwJEIAZBADoAQCAGIAI2AjggBkEANgIoIAZBADYCPCAGIAI2AkwgBkIANwKMASAGQQA6AIgBIAZCATcCgAEgBiACNgKUASAGQgA3ApgBIAZBADoAoAEgBkIANwKkASAGQgA3AqwBIAZCADcCtAELIAFBADYCkAMgASAGNgL8AiABQQA2AogDIAFBADYCyAIgAUEANgLAAiABQQA2ArgCIAFCADcD6AMgAUEhOgDwAyABQQA2AoACIAFBADYCiAEgAUEAOwH0ASABQgA3ArgDIAFBADYC8AEgAUIANwKkAyABIAI2AswDIAFCADcCwAMgAUEANgLIAyABQQA6AKwDIAFBADYC4AMgAUIANwLYAyABQgA3AtADIAEgAjYC5AMgAUHPATYCoAIgAUGbATYCiAIgAUEANgKcAiABQoCAgIAQNwKUAiAEBEBBACEGA0AgBCAGaiAGQQFqIQYtAAANAAsgBiABKAIMEQIAIgIEQCACIAQgBhAfGgsgASACNgLwAQsgAUEANgKAAyABQaABaiABQZwBakEAEOIGGiABQgA3AwAgAUFAa0EAQcAAEDMaIAFCADcCjAEgAUEANgKEASABQgA3ApQBIAFCADcDsAMgAUEANgI0IAFBAToAMCABQQA2AiwgAUIANwIkIAFBADYCxAIgAUEANgK8AiABQgA3AqQCIAFCADcCrAIgAUEANgK0AiABIAEoAggiAjYCHCABIAI2AhggASABNgKAASABQdQCakEAQSYQMxogAUEANgKYAyABQQA2AowDIAFBADYChAMgAUEANgLQAiABQQE6AMwCIAFBADYChAIgAUEAOgDABCABQgA3AvQDIAFCADcD+AEgAUIANwOQBCABQgA3AoQEIAFBADsBgAQgAUIANwOYBCABQgA3A6AEIAFCADcDqARBqN8BEN0GIQIgAUIANwOwBCABQoCAgAQ3A6gEIAFBgICglgQ2AqQEIAEgAjYCoAQgAUIANwO4BCABQYHfARDdBjYCvAQCQCAERQ0AIAEoAvABDQAgARDsCQwCCyABQZCPCDYC7AEgAQwDCyABQQA2AvwCIAEoAjggASgCFBEBACABKAKgAyABKAIUEQEADAELQQAMAQsgASABKAIUEQEAQQALIgE2AgAgByAFKAI0KAIQKAKQATYCPAJAIAFFDQAgASgCACABIAc2AgAgASgCBEcNACABIAc2AgQLIAcoAgAiAQRAIAFB3wE2AkQgAUHeATYCQAsgBygCACIBBEAgAUHgATYCSAsjAEGgCGsiESQAIBFBADYCnAggB0HwAGohHSAHQcQAaiELQcgBIRYgEUEwaiIGIRsgEUHQBmoiDiECQX4hCQJAAkACQAJAAkACQAJAA0ACQCAOIBM6AAAgDiACIBZqQQFrTwRAIBZBj84ASg0BQZDOACAWQQF0IgEgAUGQzgBOGyIWQQVsQQNqEEgiAUUNASABIAIgDiACayIFQQFqIgQQHyIBIBZBA2pBBG1BAnRqIBsgBEECdCIGEB8hGyARQdAGaiACRwRAIAIQGAsgBCAWTg0DIAEgBWohDiAGIBtqQQRrIQYgASECCyATQR9GDQMCfwJAAkACQAJAIBNBAXRBgL4Iai8BACIPQa7/A0YNAAJ/IAlBfkYEQAJ/QQAhBCMAQRBrIhIkACAHQQA2AgggByARQZwIajYCQCAHQRBqIQwCQAJAAkADQAJAQX8hAQJ/AkACQCAHLQApDgMAAQMBCyAHQQE6AClBseUBIQVBACEEQQYMAQsCQAJAAkACQAJAIAcoAgQiBS0AACIJQTxHBEAgBSEBIAkNASAHQQI6AClBuOUBIQVBBwwGC0EBIQlBBCEBIAVBAWoiBEGApQMQxwIEQANAIAkEQCABIAVqIQQgAUEBaiEBAkACQAJAIAQtAAAiBEE8aw4DAAQBAgsgCUEBaiEJDAMLIAlBAWshCQwCCyAEDQELCyABIAVqIglBAWsiBC0AAEUNAwJAIAFBB04EQCAJQQNrQYGlAxDHAg0BC0GO7ANBABArIAdBATYCIAsgBC0AACEBDAILA0AgBC0AACIBRSABQT5Gcg0CIARBAWohBAwACwALA0ACQAJ/AkAgCUEmRwRAIAlFIAlBPEZyDQMMAQsgAS0AAUEjRg0AIwBBEGsiBCQAIARBCGoiCSABQQFqIgFBOxDVASAMQSYQnAECQCAEKAIMIhAgBCgCCGotAABFIBBBCWtBeUlyDQAgCUGw7AdB/AFBCEE3EO8DIglFDQAgBCAJKAIENgIAIAxB4eYBIAQQxAIgASAEKAIMakEBaiEBCyAEQRBqJAAgAQwBCyAMIAnAENwBIAFBAWoLIgEtAAAhCQwBCwsgASEEDAMLIAFB/wFxQT5GDQELQaDsA0EAECsgB0EBNgIgDAELIARBAWohBAsgBCAFawshAQJAIAwQJEUNACAMEMoJIgkQPCIQRQ0DIAkgEGpBAWsiEC0AAEHdAEcEQCAMIAkQyQkMAQsgEEEAOgAAIAwgCRDJCSAMQfLmARD0AQsgByAHKQIsNwI0IAcgATYCMCAHIAU2AiwCQAJ/IAwQJCIJBEAgCUEASA0GIAcoAgAgDBDKCSAJQQAQ6gkMAQsgAUEASA0GIAcoAgAgBSABIAFFEOoJCw0AIAcoAiQNACAHKAIAIgEEfyABKAKkAgVBKQtBAWsiAUErTQR/IAFBAnRBzLQIaigCAAVBAAshASASIAcQzAY2AgQgEiABNgIAQeaGBSASEDYgBxDNCSAHQYwCNgIIIAdBATYCJAsgBARAIAcgBDYCBAsgBygCCCIBRQ0BCwsgEkEQaiQAIAEMAwtBwJwDQY7AAUGCB0HDyAEQAAALQZ7MA0GOwAFBzAhB2RMQAAALQZ/MA0GOwAFBzwhB2RMQAAALIQkLIAlBAEwEQEEAIQlBAAwBCyAJQYACRgRAQYECIQkMBQtBAiAJQacCSw0AGiAJQfC/CGosAAALIgQgD8FqIgFBjwJLDQAgBCABQaDCCGosAABHDQAgAUGwxAhqLAAAIhNBAEoEQCAGIBEoApwINgIEIBdBAWsiAUEAIAEgF00bIRdBfiEJIAZBBGoMBQtBACATayETDAELIBNBwMYIaiwAACITRQ0BCyAGQQEgE0HAxwhqLAAAIh5rQQJ0aigCACEBAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgE0ECaw5AAAERAicnAwQnJycnJycnJwUNBg0HDQgNCQ0KDQsNDA0OJicnDxAmExQVFhcnJyYmGBkaJiYbHB0eHyAhIiMkJicLIAsgBkEEaygCAEECEMcJNgIADCYLIAsgBkEEaygCAEEBEMcJNgIADCULIAsQxgkhAQwkCwJAIAcoAmwiBBAnBEAgBCAEECQiBRDMAiISDQEgESAFQQFqNgIAQbj8CCgCAEHT8wMgERAeGhAoAAsgBBDFCSAEKAIAIRILIARCADcCACAEQgA3AgggHRD1BCgCACEZAkAgBygCVCIMIAcoAlgiBUcEQCAHKAJMIQ8gBygCUCEEDAELIAxBAXRBASAMGyIFQaSSySRLBEBBxAAhDgwwCyAHKAJMIAVBOGwQOiIPRQRAQTAhDgwwCyAPIAcoAlgiEEE4bGpBACAFIBBrQThsEDMaIBAgBygCVCIMIAcoAlAiBGpJBEAgBEE4bCEcIA8gBSAQIARrIhBrIgRBOGxqIA8gHGogEEE4bBBTGiAHIAQ2AlALIAcgBTYCWCAHIA82AkwLIA8gBCAMaiAFcEE4bGoiBCAZNgIEIAQgEjYCACAEQQhqQQBBMBAzGiAHIAcoAlRBAWo2AlQMIwsgCyAGKAIAEMQJDCILIAsgBigCABDgAgwhCyALIAYoAgAQ4AIMIAsgCyAGKAIAEOACDB8LIAsgBigCABDgAgweCyALIAYoAgAQ4AIMHQsgCyAGKAIAEOACDBwLIAsgBigCABDgAgwbCyALIAYoAgAQ4AIMGgsgCygCNCIERQRAQYKcA0GlEkEmQb37ABAAAAsgC0EsaiIFIARBAWsQuwkgBSALKAI0QQFrEMkGGiALIAsoAjRBAWs2AjQMGQsgBkEEaygCACEBDBgLIAcoAmwQwwkQwglFDRUgB0HG5QEQ9gQMAQsgBygCbBDDCRDCCUUNASAHQfnlARD2BAsgCygCBCEBIAsoAgAiBARAIARBARDHBiALQQA2AgALA0AgAQRAIAEoAlAgARDACSEBDAELCyALQQhqEMsGIAtBGGoQygYgC0EsahC/CQwcCyAHIAcoAkgiASgCUDYCSAwUCyAGQQRrKAIAIQEMEwsgBkEEaygCACEBDBILIAZBBGsoAgAhAQwRCyAGQQRrKAIAIQEMEAsgBkEEaygCACEBDA8LIAZBCGsoAgBBAToAEAwNCyAHKAJIIQVBFBBUIRkgBS0AfEEBcQRAIBlBAToAEAsCQCAFKAJcIgwgBSgCYCIPRwRAIAUoAlQhBCAFKAJYIRIMAQsgDEEBdEEBIAwbIg9B/////wNLBEBBxAAhDgwZCyAFKAJUIA9BAnQQOiIERQRAQTAhDgwZCyAEIAUoAmAiEEECdGpBACAPIBBrQQJ0EDMaIBAgBSgCXCIMIAUoAlgiEmpJBEAgEkECdCEcIAQgDyAQIBJrIhBrIhJBAnRqIAQgHGogEEECdBBTGiAFIBI2AlgLIAUgDzYCYCAFIAQ2AlQLIAQgDCASaiAPcEECdGogGTYCACAFIAxBAWo2AlwMDQsgBygCSEHUAGoQwQkoAgAhAQwMCyAGQQhrKAIAIgEgAS0AZEEBcjoAZAwKCyALIAZBBGsoAgAgBigCAEEBEPQEDAoLIAZBDGsoAgAhAQwJCyALIAZBBGsoAgAgBigCAEECEPQEDAgLIAZBDGsoAgAhAQwHCyALIAZBBGsoAgAgBigCAEEDEPQEDAYLIAZBDGsoAgAhAQwFCyALIAYoAgAgCxDGCUECEPQEDAQLIAZBCGsoAgAhAQwDCyAGQQRrKAIAIQEMAgsgBigCACAHKAJINgJQIAYoAgAiAUIANwJUIAFCADcCXCAHIAYoAgA2AkggHRD1BCEBIAYoAgAgASgCADYCeAsgBigCACEBCyAGIB5BAnRrIgQgATYCBAJ/AkAgDiAeayIOLAAAIgUgE0GQyAhqLAAAQSlrIgZBAXRB4MgIai4BAGoiAUGPAksNACABQaDCCGotAAAgBUH/AXFHDQAgAUGwxAhqDAELIAZBsMkIagssAAAhEyAEQQRqDAILAkACQCAXDgQBAgIAAgsgCUEASgRAQX4hCQwCCyAJDQEMBgsgB0H9OxD2BAsDQCAPQf//A3FBCEcEQCACIA5GDQYgBkEEayEGIA5BAWsiDiwAAEEBdEGAvghqLwEAIQ8MAQsLIAYgESgCnAg2AgRBASETQQMhFyAGQQRqCyEGIA5BAWohDgwBCwsgB0HurwEQ9gQMAQsgASECDAELIAIgEUHQBmpGDQELIAIQGAsgEUGgCGokAAwCCyARIA4QeDYCIEG4/AgoAgBB2ooEIBFBIGoQHhoQKAALIBEgDhB4NgIQQbj8CCgCAEHaigQgEUEQahAeGhAoAAtBAyEBIAcoAiRFBEAgBygCICEBCyAHKAIAEOwJIActAB9B/wFGBEAgBygCEBAYCyANKAJQIQIgCCABNgKMASANQdgAahDLBiANKAJYEBggDUIANwJgIA1CADcCWCANQegAahDKBiANKAJoEBggDUIANwJwIA1CADcCaCAhEL8JIA0tAJ8BQf8BRgRAIA0oApABEBgLIA1BoAFqJAACQCACIgFFBEAgCCgCjAFBA0YEQCAKQQA6AFIgCiAKKAIAEGY2AgAMAgsgCEIANwMoIAhCADcDICAKQQA6AFICQCAIQSBqAn8CQAJAIAAQkwIOAwAAAQMLIAAQIAwBCyAIQSBqIgEgAEEwQQAgACgCAEEDcUEDRxtqKAIoECAQ9AEgASAAIABBMGsiASAAKAIAQQNxQQJGGygCKBAgEPQBQbHmAUGBpQMgACABIAAoAgBBA3FBAkYbKAIoEC8QgwIbCxD0AQsgCiAIQSBqEKwCEGYiATYCAAJ/IAooAgxBAUYEQCABEKIEDAELIAEgCCgCdBDzBgshASAKKAIAEBggCiABNgIAIBooAhAoApABIAoQpgkgCEEgahBfDAELAkAgASgCBEEBRgRAAkAgASgCACgCGA0AIAAQrAlFDQAgABCsCRBmIQIgASgCACACNgIYCyAIIBogASgCAEEAIAhBQGsQqwkgCCgCjAFyNgKMASABKAIAIgIrA0ghAyAIIAIrA0BEAAAAAAAA4D+iIiI5AzAgCCADRAAAAAAAAOA/oiIDOQM4IAggA5o5AyggCCAIKQMwNwMQIAggCCkDODcDGCAIIAgpAyg3AwggCCAimjkDICAIIAgpAyA3AwAgAiAIQQ8QqgkgCiAIKwMwIAgrAyChOQMYIAogCCsDOCAIKwMooTkDIAwBCyAaKAIQKAKQASABKAIAIAhBQGsQqQkgASgCACICIAIrAyhEAAAAAAAA4D+iIgM5AyggAiACKwMgRAAAAAAAAOA/oiIiOQMgIAIgA5o5AxggAiAimjkDECAKIAMgA6A5AyAgCiAiICKgOQMYCyAKIAE2AkggASgCBEEBRw0AIAooAgAQGCAKQfHlARBmNgIACyAIKAKMASAIQZABaiQARQ0CAkACQAJAIAAQkwIOAwABAgULIBQgHxAgNgIAQZCCBCAUEIIBDAQLIBQgIBAgNgIQQZmGBCAUQRBqEIIBDAMLIBhBMEEAIBgoAgBBA3FBA0cbaigCKBAgIQAgFRCDAiEBIBQgGEFQQQAgGCgCAEEDcUECRxtqKAIoECA2AiggFEGx5gFBgaUDIAEbNgIkIBQgADYCIEHM+wMgFEEgahCCAQwCC0GD4QFBuMIBQZ8BQZz2ABAAAAsgASAAQQAQpQkhAAJ/IARBAUYEQCAAEKIEDAELIAAgFRDzBgshASAAEBggCiABNgIAIBUoAhAoApABIAoQpgkLIBRBMGokACAKC44BAQN/AkAgACgCCCIBQQxxBEAgACgCDCECDAELAkAgAUEBcQRAIAAQswEhAiAAKAIQIgEgACgCFEECdGohAwNAIAEgA08NAiABQQA2AgAgAUEEaiEBDAALAAsgACgCECECIABBADYCEAwBCyAAKAIIIQELIABBADYCGCAAQQA2AgwgACABQf9fcTYCCCACCwgAIAAQmwEaC/IBAgN/AXwjAEEgayICJAAgAEEsaiIEEPUEKAIAIQMgAiABKQMYNwMYIAIgASkDEDcDECACIAEpAwg3AwggAiABKQMANwMAAkAgA0UNAAJAIAIoAgQNACADKAIEIgFFDQAgAiABNgIECwJAIAIrAxBEAAAAAAAAAABjRQ0AIAMrAxAiBUQAAAAAAAAAAGZFDQAgAiAFOQMQCwJAIAIoAgANACADKAIAIgFFDQAgAiABNgIACyADKAIYQf8AcSIBRQ0AIAIgAigCGCABcjYCGAsgBCAAKAI8KAKIASIAIAJBASAAKAIAEQQAELwJIAJBIGokAAtvAQF/IwBBIGsiAyQAIANCADcDGCADQgA3AwggA0KAgICAgICA+L9/NwMQIAMgAjYCGCADQgA3AwAgAQRAIAAgA0GwpApBAyABQaXlARCZBAsgACgCPCgCiAEiACADQQEgACgCABEEACADQSBqJAALCwAgAEH02AQQ3AkLEwAgACgCAEE0aiABIAEQPBDuCQtFAAJAIAAQJwRAIAAQJEEPRg0BCyAAQQAQzgMLAkAgABAnBEAgAEEAOgAPDAELIABBADYCBAsgABAnBH8gAAUgACgCAAsLWgECfyMAQRBrIgMkACADIAE2AgwgAyADQQtqIgQ2AgQgACADQQxqIgEgAiADQQRqIAEgACgCOBEIABogAygCBCEAIAMsAAshASADQRBqJABBfyABIAAgBEYbC6UCAgN/AX4jAEGAAWsiBCQAIAEoAgAiBhAvKAIQKAJ0IAQgAjkDOCAEIAM5AzBBA3EiBQRAIAQgBCkDODcDGCAEIAQpAzA3AxAgBEFAayAEQRBqIAVB2gBsEM8KIAQgBCkDSDcDOCAEIAQpA0A3AzALIARCADcDWCAEQgA3A1AgBCAEKQM4Igc3A2ggBCAHNwN4IAQgBCkDMCIHNwNgIARCADcDSCAEQgA3A0AgBCAHNwNwIAEgBigCECgCCCgCBCgCDCAEQUBrQQEQkgUgBQRAIAQgBCkDSDcDCCAEIAQpA0A3AwAgBEEgaiAEIAVB2gBsEKADIAQgBCkDKDcDSCAEIAQpAyA3A0ALIAAgBCkDQDcDACAAIAQpA0g3AwggBEGAAWokAAtEACAAKAIQKAIIIgBFBEBBAA8LIAAoAgQoAgAiAEE8RgRAQQEPCyAAQT1GBEBBAg8LIABBPkYEQEEDDwsgAEE/RkECdAsbACABQQAQjQUaQZDkCiAANgIAIAEQmwFBAEcLTAECfyAAKAIQKAKUARAYIAAoAhAiASgCCCICBH8gACACKAIEKAIEEQEAIAAoAhAFIAELKAJ4EL4BIAAoAhAoAnwQvgEgAEHGKxDjAQutAQEBfyAALQAJQRBxBEAgAEEAEOgBCwJAIAEEQCABLQAJQRBxBEAgAUEAEOgBCyABKAIgIAAoAiBHDQELIAEhAgNAIAIEQCAAIAJGDQIgAigCKCECDAELCyAAKAIoIgIEQCACIAIoAiRBAWs2AiQLIABCADcCKCABRQRAIAAgACgCICgCADYCACACDwsgAEEDNgIAIAAgATYCKCABIAEoAiRBAWo2AiQgAQ8LQQALrQQBCnwCQAJAIAErAwAiBSACKwMAIgZhBEAgASsDCCACKwMIYQ0BCyAGIAMrAwAiCGIEQCACKwMIIQcMAgsgAisDCCIHIAMrAwhiDQELIAAgAikDADcDACAAIAIpAwg3AwggACACKQMANwMQIAAgAikDCDcDGCAAIAIpAwA3AyAgACACKQMINwMoDwsgBiAFoSIFIAUgByABKwMIoSIJEFAiC6MiDBCyAiEFIAggBqEiCCAIIAMrAwggB6EiCBBQIg2jIg4QsgIiCiAKmiAIRAAAAAAAAAAAZBtEGC1EVPshCcCgIAUgBZogCUQAAAAAAAAAAGQboSIFRBgtRFT7IRlARAAAAAAAAAAAIAVEGC1EVPshCcBlG6AiCkQAAAAAAAAAAGYgCkQYLURU+yEJQGVxRQRAQaXKA0H1wQFB5QNBwp0BEAAACyAERAAAAAAAAOA/oiIEIAyiIAegIQUgBiAEIAkgC6MiC6KhIQkgBCAOoiAHoCEHIAYgBCAIIA2joqEhBkQAAAAAAADwPyAKRAAAAAAAAOA/oiIIEFijRAAAAAAAABBAZARAIAAgBzkDKCAAIAY5AyAgACAFOQMYIAAgCTkDECAAIAUgB6BEAAAAAAAA4D+iOQMIIAAgCSAGoEQAAAAAAADgP6I5AwAPCyAAIAc5AyggACAGOQMgIAAgBTkDGCAAIAk5AxAgACAEIAgQiQyjIgQgC6IgBaA5AwggACAEIAyiIAmgOQMAC9EDAwd/AnwBfiMAQUBqIgckACAAKAIQIgooAgwhCyAKIAE2AgwgACAAKAIAKALIAhDmASAAIAUQiAIgAyADKwMIIAIrAwihIg5ELUMc6+I2Gj9ELUMc6+I2Gr8gDkQAAAAAAAAAAGYboEQAAAAAAAAkQCADKwMAIAIrAwChIg8gDhBQRC1DHOviNho/oKMiDqI5AwggAyAPRC1DHOviNho/RC1DHOviNhq/IA9EAAAAAAAAAABmG6AgDqI5AwADQAJAIAhBBEYNACAGIAhBA3R2IgFB/wFxIgxFDQAgByADKQMINwM4IAcgAykDADcDMCAHIAIpAwg3AyggByACKQMANwMgIAFBD3EhDUEAIQECQANAIAFBCEYNASABQRhsIQkgAUEBaiEBIA0gCUHw6gdqIgkoAgBHDQALIAcgBCAJKwMIoiIOIAcrAziiOQM4IAcgBysDMCAOojkDMCAHIAIpAwg3AxggAikDACEQIAcgBykDODcDCCAHIBA3AxAgByAHKQMwNwMAIAdBIGogACAHQRBqIAcgBCAFIAwgCSgCEBEVAAsgAiAHKQMgNwMAIAIgBykDKDcDCCAIQQFqIQgMAQsLIAogCzYCDCAHQUBrJAALIwEBfyMAQRBrIgEkACABIAA2AgwgAUEMahCRByABQRBqJAALxQIBCH8jAEEgayICJAACQCAAIAJBHGoQmgUiAEUNACACKAIcIgVBAEwNAANAIAAtAAAiA0UNASADQS1HBEAgAEEBaiEADAELCyACQgA3AxAgAkIANwMIIABBAWohBkEAIQMDQCAEIAVIBEAgAyAGaiIHLAAAIggEQCACQQhqIAgQ+woCQCAHLQAAQdwARgRAIANFDQEgACADai0AAEHcAEcNAQsgBEEBaiEECyADQQFqIQMMAgUgAkEIahBfQQAhBAwDCwALCyABIwBBEGsiASQAAkAgAkEIaiIAECcEQCAAIAAQJCIFEMwCIgQNASABIAVBAWo2AgBBuPwIKAIAQdPzAyABEB4aECgACyAAQQAQ+wogACgCACEECyAAQgA3AgAgAEIANwIIIAFBEGokACAENgIAIAMgBmohBAsgAkEgaiQAIAQLVAEDfyMAQRBrIgEkAEHo5AooAgACQCAARQ0AIAAQqgEiAg0AIAEgABA8QQFqNgIAQbj8CCgCAEHT8wMgARAeGhAoAAtB6OQKIAI2AgAgAUEQaiQACw8AIAAgACgCACgCJBECAAsRACAAIAEgASgCACgCIBEDAAsRACAAIAEgASgCACgCLBEDAAsMACAAQYKGgCA2AAALEQAgABBCIAAQI0ECdGoQngcLDQAgACgCACABKAIARwsOACAAEEIgABAjahCeBwsWACAAIAEgAiADIAAoAgAoAiARBgAaCw4AIAAoAghB/////wdxC4ABAQJ/IwBBEGsiBCQAIwBBIGsiAyQAIANBGGogASABIAJBAnRqELIFIANBEGogAygCGCADKAIcIAAQ5AsgAyABIAMoAhAQsQU2AgwgAyAAIAMoAhQQqAM2AgggBEEIaiADQQxqIANBCGoQ/QEgA0EgaiQAIAQoAgwaIARBEGokAAtFAQF/IwBBEGsiBSQAIAUgASACIAMgBEKAgICAgICAgIB/hRC3ASAFKQMAIQEgACAFKQMINwMIIAAgATcDACAFQRBqJAALtQEBA38jAEEgayIDJAACQAJAIAEsAAAiAgRAIAEtAAENAQsgACACEMEFIQEMAQsgA0EAQSAQMxogAS0AACICBEADQCADIAJBA3ZBHHFqIgQgBCgCAEEBIAJ0cjYCACAB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IAJBBHRqIgMgAUEQayICQQhqKQMANwMIIAMgAikDADcDACAAIBEgEyAEEEMgERAYIA8gAikDCDcDKCAPIAIpAwA3AyAgDyABKQMYNwM4IA8gASkDEDcDMCAPIA8rAzAgDysDICABKwMAoaA5A0AgDyAPKwM4IA8rAyggASsDCKGgOQNIIAAgD0EwakECEDkgDyAPKQNINwM4IA8gDykDQDcDMCAAIA9BIGpBAhA5DBoFIBEgA0EEdCISaiIUIAEgEmoiEikDADcDACAUIBIpAwg3AwggA0EBaiEDDAELAAsACyACQQJqIgNBEBAZIgIgASkDCDcDCCACIAEpAwA3AwAgAiAQKQMgNwMQIAIgECkDKDcDGCACIBArAyAgECsDMCIGIBArA0ChRAAAAAAAAAhAoyIHoDkDICAQKwMoIQggECsDSCEJIBArAzghBSACIAYgB6A5AzAgAiAFIAUgCaFEAAAAAAAACECjIgWgOQM4IAIgCCAFoDkDKEEEIAMgA0EETRshESABQSBrIRNBBCEBA0AgASARRgRAIAAgAiADIAQQQyACEBggDyAQKQM4NwMoIA8gECkDMDcDICAPIBApAyg3AzggDyAQKQMgNwMwIAAgD0EgakECEDkMGQUgAiABQQR0IhJqIhQgEiATaiISKQMANwMAIBQgEikDCDcDCCABQQFqIQEMAQsACwALIAJBA2oiA0EQEBkiAiABQQhqKQMANwMIIAIgASkDADcDACACIAErAwAiBSAFIBArAxChIgZEAAAAAAAA0L+ioDkDECABKwMIIQggECsDSCEJIAIgECsDOCIHOQM4IAIgBSAGRAAAAAAAAALAoqA5AzAgAiAFIAYgBqChOQMgIAIgCCAHIAmhRAAAAAAAAAhAo6AiBTkDKCACIAU5AxggECsDMCEFIAIgBzkDSCACIAU5A0BBBCADIANBBE0bIREgAUEwayETQQQhAQNAIAEgEUYEQCAAIAIgAyAEEEMgAhAYDBgFIAIgAUEEdCISaiIUIBIgE2oiEikDADcDACAUIBIpAwg3AwggAUEBaiEBDAELAAsACyACQQRHDRtBBkEQEBkiAiABKQMINwMIIAIgASkDADcDACACIBApAyg3AxggAiAQKQMgNwMQIAIgECkDSDcDKCACIBApA0A3AyAgAiABKQMoNwM4IAIgASkDIDcDMCAC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AEcEQCACQbQBRg0BIAJBjgJGDQJBipYDQbDEAUGWAUHqiwEQAAALIAErAwghAyAAIAErAwA5AwggACADmjkDAA8LIAAgASsDADkDACAAIAErAwiaOQMIDwsgASsDCCEDIAAgASsDADkDCCAAIAM5AwAPCyAAIAEpAwA3AwAgACABKQMINwMICwoAIABBCGoQ2AMLDQAgACgCACABQQJ0agsZACAAEKgBBEAgACABEL8BDwsgACABENQBC2EBAX8jAEEQayICJAAgAiAANgIMAkAgACABRg0AA0AgAiABQQFrIgE2AgggACABTw0BIAIoAgwgAigCCBCyCyACIAIoAgxBAWoiADYCDCACKAIIIQEMAAsACyACQRBqJAALsQEBA38jAEEQayIHJAACQAJAIABFDQAgBCgCDCEGIAIgAWtBAnUiCEEASgRAIAAgASAIEOQDIAhHDQELIAYgAyABa0ECdSIBa0EAIAEgBkgbIgFBAEoEQCAAIAdBBGogASAFELsLIgUQQiABEOQDIQYgBRB3GiABIAZHDQELIAMgAmtBAnUiAUEASgRAIAAgAiABEOQDIAFHDQELIAQQvwsMAQtBACEACyAHQRBqJAAgAAuoAQEDfyMAQRBrIgckAAJAAkAgAEUNACAEKAIMIQYgAiABayIIQQBKBEAgACABIAgQ5AMgCEcNAQsgBiADIAFrIgFrQQAgASAGSBsiAUEASgRAIAAgB0EEaiABIAUQwAsiBRBCIAEQ5AMhBiAFEDQaIAEgBkcNAQsgAyACayIBQQBKBEAgACACIAEQ5AMgAUcNAQsgBBC/CwwBC0EAIQALIAdBEGokACAACw4AIAAgASgCADYCACAACwoAIAAgASAAa2oLCwAgAC0AC0H/AHEL6QEBBH8jAEEQayIEJAAgABBGIgMgAWoiASADQQF0QYAIIAMbIgIgASACSxshASAAECQhBQJAAkACQCAALQAPQf8BRgRAIANBf0YNAiAAKAIAIQIgAUUEQCACEBhBACECDAILIAIgARA6IgJFDQMgASADTQ0BIAIgA2pBACABIANrEDMaDAELIAFBARAZIgIgACAFEB8aIAAgBTYCBAsgAEH/AToADyAAIAE2AgggACACNgIAIARBEGokAA8LQd/JA0GYhQFBzQBB77oBEAAACyAEIAE2AgBBuPwIKAIAQdPzAyAEEB4aECgACwgAIABB/wFxC1ABAX4CQCADQcAAcQRAIAIgA0FAaq2IIQFCACECDAELIANFDQAgAkHAACADa62GIAEgA60iBIiEIQEgAiAEiCECCyAAIAE3AwAgACACNwMIC9sBAgF/An5BASEEAkAgAEIAUiABQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AURsNACACQgBSIANC////////////AIMiBkKAgICAgIDA//8AViAGQoCAgICAgMD//wBRGw0AIAAgAoQgBSAGhIRQBEBBAA8LIAEgA4NCAFkEQCAAIAJUIAEgA1MgASADURsEQEF/DwsgACAChSABIAOFhEIAUg8LIAAgAlYgASADVSABIANRGwRAQX8PCyAAIAKFIAEgA4WEQgBSIQQLIAQLFgAgAEUEQEEADwtB4I8LIAA2AgBBfwsLACAAIAEgAhEAAAtkAQJ/IwBBEGsiAyQAAkAgAEEAELUCIgBFDQACQAJAAkACQCABDgQAAQICAwsgACgCECECDAMLIAAoAgghAgwCCyAAKAIMIQIMAQsgAyABNgIAQeHOBCADEDYLIANBEGokACACC6QBAgN/AnwjAEEQayICJAAgABDDAiAAKAIQIgErAxhEAAAAAAAAUkCjIQQgASsDEEQAAAAAAABSQKMhBSAAEBshAQNAIAEEQCABKAIQKAKUASIDIAMrAwAgBaE5AwAgAyADKwMIIAShOQMIIAAgARAcIQEMAQsLIAIgACgCECIBKQMYNwMIIAIgASkDEDcDACAAIAIQgQ0gAEEBENgFIAJBEGokAAsPACABQQFqIAAgABCwAZ8LqAECBH8CfCABKAIAIQIgAEEEaiIDIQAgAyEBA0AgACgCACIABEAgACgCECIEKwMIIgYgAisDCCIHYwRAIABBBGohAAwCBSAAIAEgACACIARLIgQbIAYgB2QiBRshASAAIAAgBEECdGogBRshAAwCCwALCwJAAkAgASADRg0AIAIrAwgiBiABKAIQIgArAwgiB2MNACAAIAJNIAYgB2RyDQELIAMhAQsgAQtkAQF/IwBBEGsiBCQAIABBADsBHCAAQQA2AhggACADOQMIIAAgAjYCBCAAIAE2AgAgBCAANgIMIAFBNGogBEEMahDBASAAKAIEIAQgADYCCEEoaiAEQQhqEMEBIARB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BCgCECgClAEiBSsDADkDCCADIAUrAwg5AxAgA0EoaiAEIBYgFCAJER8ARQRAIANBATYCHCADIAc2AhggA0IANwNYIAMgBDYCACAHQQFqIQcgACAEEBwhBAwBCwtByIULKAIAEBhByIULQQA2AgAQmA0MAgtBACEHIAJBsANqQQBB0AAQMxogBQRAQciFCygCACEERP///////+9/IRRE////////7/8hGET////////v/yEbRP///////+9/IRkDQCAFIAdGBEBEmpmZmZmZqT8hFgJAIABBwOoAECYiAEUNACAALQAARQ0AIAAQsQIhFgtBkIYLIBsgGyAZoSAWoiIToCIXOQMAQZiGCyAZIBOhIhU5AwBBiIYLIBQgGCAUoSAWoiIToSIUOQMAQYCGCyAYIBOgIhM5AwAgAiAVOQPYAyACIBc5A+gDIAIgFTkDuAMgAiATOQPQAyACIBc5A8gDIAIgFDkD8AMgAiATOQPAAyACIBQ5A+ADIAEoAgAhAEEAEO8HIQkCQAJAIABBAkYEQCAJRQ0CIAJBsANqEJcNQQAhBQNAQciFCygCACEBQZSFCygCACEAQQAhBANAIAAgBEcEQCABIARB4ABsaiIJIAkrAwhEzczMzMzM8D+iOQMIIAkgCSsDEETNzMzMzMzwP6I5AxAgBEEBaiEEDAELCyAFQQFqIgUQ7wcNAAtBjOEKLQAARQ0BIAIgBTYCEEG4/AgoAgBByucDIAJBEGoQHhoMAQsgCUUNASACQbADahCXDUEAIQdBACEEA0AgAkGwA2oiASEAIAcEQCAAEJUNC0GohQtC/////////3c3AwBBoIULQv/////////3/wA3AwACQEGUhQsoAgAiAwRAIAAoAgAhCET////////vfyEURP///////+//IRZBACEAA0AgACADRg0CQaCFCyAUIAggAEECdGooAgAiBSsDABAqIhQ5AwBBqIULIBYgBSsDABAiIhY5AwAgAEEBaiEADAALAAtBlJsDQeDAAUHQAUHFmgEQAAALQbCFCyAIKAIAKwMIOQMAIAggA0ECdGpBBGsoAgArAwghE0HAhQsgFiAUoTkDAEG4hQsgEzkDAEQAAAAAAAAAACEVRAAAAAAAAAAAIRQjAEEwayINJAAQow0QpQ1BAUEQEBkiDEGYhQsoAgBBAnQiADYCBCAMIABBKBAZ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AUH/vwFB1QlBmTUQAAALQZrOAUH/vwFB6AlBmTUQAAALC3oBAX8jAEEQayIEJAAgAwRAIAMgACACIAIQ/AUiAjYCCEGM4QotAAAEQCAEIAI2AgBBuPwIKAIAQb3nAyAEEB4aCyADQQA2AhQgA0EAOgAMIAAgASADEKcIGiADKAIQIARBEGokAA8LQcbkAEGMxQFBhApB8eQAEAAACzwBAn8jAEEQayIBJABBASAAEEciAkUEQCABIAA2AgBBuPwIKAIAQdPzAyABEB4aECgACyABQRBqJAAgAgspAQF/A0AgACIBKAIQKAKwASIADQALA0AgASIAKAIQKAJ4IgENAAsgAAvgAQIIfAF/IAFBIEEYQcyECy0AACIMG2orAwAhBCACIAFBGEEgIAwbaisDACIFOQMYIAIgBDkDECACIAEpAzg3AwAgAiABQUBrKQMANwMIIAIgAisDACAERAAAAAAAAOA/oqEiBjkDACACIAIrAwggBUQAAAAAAADgP6KhIgc5AwggAysDACEIIAMrAwghCSADKwMQIQogACADKwMYIgsgBSAHoCIFIAUgC2MbOQMYIAAgCiAEIAagIgQgBCAKYxs5AxAgACAJIAcgByAJZBs5AwggACAIIAYgBiAIZBs5AwAL6QEBBH8jAEEQayIEJAAgABBGIgMgAWoiASADQQF0QYAIIAMbIgIgASACSxshASAAECQhBQJAAkACQCAALQAPQf8BRgRAIANBf0YNAiAAKAIAIQIgAUUEQCACEBhBACECDAILIAIgARA6IgJFDQMgASADTQ0BIAIgA2pBACABIANrEDMaDAELIAFBARBKIgIgACAFEB8aIAAgBTYCBAsgAEH/AToADyAAIAE2AgggACACNgIAIARBEGokAA8LQd/JA0GYhQFBzQBB77oBEAAACyAEIAE2AgBBuPwIKAIAQdPzAyAEEB4aECgAC3wBAXwgAEEATgRAIAFEAAAAAAAAAABjBEBBAA8LIAFEAAAAAAAA8D9kRSAAuCICRAAAwP///99BIAGjZEVyRQRAQf////8HDwsgASACoiIBmUQAAAAAAADgQWMEQCABqg8LQYCAgIB4DwtB3Z0DQZWEAUHKAEG83wAQAAALEgAgACABQa0kQS1BqsIBEMgBC7ECAQd/IwBBEGsiByQAAkACQCAAKAIIIgYgACgCDCICRwRA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ACADIAI2ArwBQaSECyABNgIAIANBADYCuAEgAQu5AQEDfyAAIABBMGoiAiAAKAIAQQNxQQNGGygCKCgCECIBKALgASABKALkASIBQQFqIAFBAmoQwgEhASAAIAIgACgCAEEDcUEDRhsoAigoAhAgATYC4AEgACACIAAoAgBBA3FBA0YbKAIoKAIQIgEgASgC5AEiA0EBajYC5AEgASgC4AEgA0ECdGogADYCACAAIAIgACgCAEEDcUEDRhsoAigoAhAiACgC4AEgACgC5AFBAnRqQQA2AgALIAAgACABIAIgAEGljwEQJiIABH8gABCRAgVBHgsQug8LTAAgASgCEEHAAWohAQNAIAEoAgAiAQRAIAEoAhAoApgCEBggASgCECgCoAIQGCABKAIQIgFBADYCsAEgAUG4AWohAQwBCwsgABCvDws/AQJ/IAAoAhAoAqgCIQADQCAAIgEoAgwiAEUgACABRnJFBEAgACgCDCICRQ0BIAEgAjYCDCACIQAMAQsLIAELCwAgACABQQEQww8LCwAgACABQQAQww8LugIBB38jAEEQayIHJAACQAJAIAAoAggiBiAAKAIMIgJHBEAgACgCACEDIAAoAgQhBAwBCyAGQQF0QQEgBhsiAkH///8/SwRAQcQAIQAMAgsgACgCACACQQV0EDoiA0UEQEEwIQAMAgsgAyAAKAIMIgVBBXRqQQAgAiAFa0EFdBAzGiAFIAAoAggiBiAAKAIEIgRqSQRAIARBBXQhCCADIAIgBSAEayIFayIEQQV0aiADIAhqIAVBBXQQUxogACAENgIECyAAIAI2AgwgACADNgIACyADIAQgBmogAnBBBXRqIgIgASkDADcDACACIAEpAxg3AxggAiABKQMQNwMQIAIgASkDCDcDCCAAIAAoAghBAWo2AgggB0EQaiQADwsgByAAEHg2AgBBuPwIKAIAQdqKBCAHEB4aECgAC1wAIAEoAgggAk0EQEHCvANB+YIBQQhBqSUQAAALIAAgASgCACABKAIEIAJqIAEoAgxwQQV0aiIBKQMANwMAIAAgASkDGDcDGCAAIAEpAxA3AxAgACABKQMINwMIC9oCAQV8IAEgAEE4bGoiACsAECEDAnwgACsAGCIEIAArAAgiBURIr7ya8td6PqBkRSAAKwAAIgYgA2NFIAQgBURIr7ya8td6vqBjcnFF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5DoQAAALIABBAnRB6M4IaigCAAsXACAAKAIAIgAgASgCACIBSiAAIAFIawu0AgEGfyMAQRBrIgckAAJAIAAgASACEL0DRQRAIAAoAgQgAUEYbGoiACEBAkAgACgCECIGIAAoAhQiAEcEQCABKAIIIQMgASgCDCEEDAELIAZBAXRBASAGGyIAQf////8DSwRAQcQAIQEMAwsgASgCCCAAQQJ0EDoiA0UEQEEwIQEMAwsgAyABKAIUIgVBAnRqQQAgACAFa0ECdBAzGiAFIAEoAhAiBiABKAIMIgRqSQRAIARBAnQhCCADIAAgBSAEayIFayIEQQJ0aiADIAhqIAVBAnQQUxogASAENgIMCyABIAA2AhQgASADNgIICyADIAQgBmogAHBBAnRqIAI2AgAgASABKAIQQQFqNgIQCyAHQRBqJAAPCyAHIAEQeDYCAEG4/AgoAgBB2ooEIAcQHhoQKAALFAAgACABQQJBmilBEUGuhAEQogILngECAn8BfgJAIAEgAkGABCABKAIAEQQAIgVFBEAgACgCECAAKAIAIgVBKGxqIgYgBTYCICAAIAVBAWo2AgAgBiEAIANFDQEgAyAAKAIgQQV0aiIFIAIpAwA3AwggAikDCCEHIAUgADYCACAFIAc3AxAgACAEOgAkIAEgBUEBIAEoAgARBAAaCyAFKAIADwtBgzJB5sUBQagCQdkcEAAAC8sDAgZ8A38jAEEQayIMJAADQAJAAkACQAJAAkAgBCACEDsiCygCAEEBaw4DAgEAAwsgCygCGCAMQRBqJAAPC0EkIQIgACsACCIFIAsrABAiB0RIr7ya8td6PqAiCGQNAiAFIAdESK+8mvLXer6gIgljRSAAKwAAIgogCysACCIGZHENAkEgIQIgBSAHoZlESK+8mvLXej5lRSAKIAahmURIr7ya8td6PmVFcg0CQSQhAiABKwAIIgUgCGQNAkEgQSRBICABKwAAIAZkGyAFIAljGyECDAILIAArAAAhBgJAAkAgACsACCIFIAMgCygCBCINQThsaiICKwAIoZlESK+8mvLXej5lBEAgBiACKwAAoZlESK+8mvLXej5lDQELIAUgAisAGKGZREivvJry13o+ZUUNASAGIAIrABChmURIr7ya8td6PmVFDQELIAUgASsDCKGZREivvJry13o+ZQRAQSBBJCABKwMAIAZj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FEEDdCIAaiAAIAdqKwMAIDWjOQMAIARBAWohFUEAIQBBACEDA0AgAyAURgRAA0AgACAERgRAQQAhAgNAIAIgEkYNBiAFIAJBA3QiAGogACANaisDADkDACACQQFqIQIMAAsABSAHIABBA3QiAmogAiAMaisDADkDACAAQQFqIQAMAQsACwALIA4gBCADayICQQJrIg9BA3QiF2oiESAHIBdqKwMAIjU5AwAgAkEBayECIAUgBCAPbEEDdGohFwNAIAIgBE8EQCARIDUgBSAPIBVsQQN0aisDAKM5AwAgA0EBaiEDDAIFIBEgNSAXIAJBA3QiGGorAwAgDiAYaisDAKKhIjU5AwAgAkEBaiECDAELAAsACwALQcTfCigCABoCQEGEtAFB+N4KEI0BQQBIDQACQEHI3wooAgBBCkYNAEGM3wooAgAiAEGI3wooAgBGDQBBjN8KIABBAWo2AgAgAEEKOgAADAELQfjeCkEKEMAHGgsLIA0QGCAMEBhBACEAA0BBzOEKLwEAIg4gAEsEQEHg4QorAwAhNRDXASE2IABBA3QiAiAKQaABamoiAyADKwMAIDUgNkQAAAAAAADwPyA1oSI1IDWgoqCiIjU5AwAgASgCECgClAEgAmoiAiA1IAIrAwCgOQMAIABBAWohAAwBCwsgCSgCECICIAIoApwBQQFqNgKcASACKAKYASISIAhqKAIAIQ1BACEAA0AgACAORgRAQQAhAwNAIAMgFkcEQAJAIAMgC0YNAEEAIQcgDSgCECgClAEgEiADQQJ0IgRqKAIAKAIQKAKUASAKQfABahCLDiE1A0AgByAORg0BIAdBA3QiACACKAKsASIMIAhqKAIAIARqKAIAaiIUIANBA3QiDyACKAKkASAIaigCAGorAwAgCkHwAWogAGorAwAiNiA2IAIoAqABIAhqKAIAIA9qKwMAoiA1o6GiIjY5AwAgAigCqAEiDyAIaigCACAAaiIRIDYgESsDAKA5AwAgBCAMaigCACAIaigCACAAaiIMKwMAITYgDCAUKwMAmiI3OQMAIAQgD2ooAgAgAGoiACA3IDahIAArAwCgOQMAIAdBAWohBwwACwALIANBAWohAwwBCwtBhOUKKAIABEBBACEAQczhCi8BACECRAAAAAAAAAAAITYDQCAAIAJHBEAgNiAKQaABaiAAQQN0aisDAJmg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IQEMAQsLIAYgAhD/BiEHIA0EQCAEKAJ8IQAgByAVOQMYIAcgEzkDECAHIAA2AggLIAwEQCAEKAJ4IQAgByAUOQMoIAcgFjkDICAHIAA2AgwLIAFBAWohAUEAIQADQCAAIAJHBEAgAEEEdCIPIAcoAgBqIhAgCyAPaiIPKQMANwMAIBAgDykDCDcDCCAAQQFqIQAMAQsLIAsQGCAODQALIAYoAhAiACgCYCIBBEAgBiABQePfABC7BCAGKAIQIQALIAAoAmwiAQRAIAYgAUHI3wAQuwQgBigCECEACyAAKAJkIgEEfyAGIAFB3t8AELsEIAYoAhAFIAALKAJoIgAEQCAGIABB1t8AELsECyAFQQFqIQULIAMgBhAwIQYMAQsLIAMgChAcIQoMAQsLIAVFBEBBACEHDAELQQJBASADELoCIAVGGyEHC0EAIQZBACECIAMoAhAoAggiACgCWCIMBEAgAEEANgJUQQEhAgsCQCAMDQBBmOEKKAIAQQFHDQAgAxDABEUNAEEBIQYgAygCECgCDCIARQ0AIABBADoAUQsgAxDDAiAMBEAgAygCECEKRAAAAAAAAAAAIRVEAAAAAAAAAAAhFkEAIQ1BACEOQQAhDyMAQUBqIgUkACADKAIQIgAoApABIRAgBEHYAGoiASAAKQMQNwMAIAEgACkDKDcDGCABIAApAyA3AxAgASAAKQMYNwMIAkAgACgCCCgCWCILRQ0AAkAgASsDACABKwMQYg0AIAErAwggASsDGGINACABQv////////93NwMYIAFC//////////f/ADcDACABQv/////////3/wA3AwggAUL/////////dzcDEAsgCygCCCEAA0AgDSALKAIATw0BIAVCADcDOCAFQgA3AzAgBUIANwMoIAVCADcDIAJAAkACQAJAAkACQAJAAkAgACgCAA4QAAABAQICAwQHBwUHBwcHBgcLIAAgACsDECIXIAArAyAiGKAiEzkDaCAAIAArAwgiGyAAKwMYIhygIhQ5A2AgACAXIBihIhc5A1ggACAbIByhIhg5A1AgASABKwMAIBgQKiAUECo5AwAgASABKwMYIBcQIiATECI5AxggASABKwMIIBcQKiATECo5AwggASABKwMQIBgQIiAUECI5AxAMBgsgBSAAKAIMIAAoAgggARDABiAAIAUpAxg3A2ggACAF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A0cbaigCKCgCECgClAEiBSsDCKJEAAAAAAAAUkCiIRAgFSAFKwMAokQAAAAAAABSQKIhESAUIANBUEEAIAJBAkcbaigCKCgCECgClAEiAisDCKJEAAAAAAAAUkCiIRIgFSACKwMAokQAAAAAAABSQKIhEyABKAIAIQIDQCAEIAhGBEACQCAHKAJgIgFFDQAgAS0AUUEBRw0AIAEgDyABKwM4ojkDOCABIA0gASsDQKI5A0ALAkAgBygCZCIBRQ0AIAEtAFFBAUcNACABIBMgASsDOKA5AzggASASIAErA0CgOQNACyAHKAJoIgFFDQMgAS0AUUEBRw0DIAEgESABKwM4oDkDOCABIBAgASsDQKA5A0AMAwsgAigCBCIKQQFrIQsgAigCACEBQQAhBSAEIAlHIQwDQCAFIApGBEAgAigCCARAIAIgESACKwMQoDkDECACIBAgAisDGKA5AxgLIAIoAgwEQCACIBMgAisDIKA5AyAgAiASIAIrAyigOQMoCyAEQQFqIQQgAkEwaiECDAIFIAECfCAEIAVyRQRAIAEgESABKwMAoDkDACAQIAErAwigDAELIAErAwAhDiAMIAUgC0dyRQRAIAEgEyAOoDkDACASIAErAwigDAELIAEgDyAOojkDACANIAErAwiiCzkDCCAFQQFqIQUgAUEQaiEBDAELAAsACwALIAAgBhAcIQYMAgsgACADEDAhAwwACwALAAsgABAbIQEDQCABBEAgASgCECgClAEiAiAPIAIrAwCiOQMAIAIgDSACKwMIojkDCCAAIAEQHCEBDAELCyAAIA8gDRCCDUEBIQMLIAAQGyEBA0AgAQRAIAEoAhAiAiACKAKUASIEKwMARAAAAAAAAFJAojkDECACIAQrAwhEAAAAAAAAUkCiOQMYIAAgARAcIQEMAQsLIAML7AIBBH8jAEGAAWsiByQAIAJBACACQQBKGyECAkADQCACIAhGBEAgBCADIAMgBEgbIQQDQCADIARGIgINAyAGIANBAnRqKAIAIQggByAAKQMINwM4IAcgACkDADcDMCAHIAEpAwg3AyggByABKQMANwMgIAcgBSADQQR0aiIJKQMINwMYIAcgCSkDADcDECAHIAUgCEEEdGoiCCkDCDcDCCAHIAgpAwA3AwAgA0EBaiEDIAdBMGogB0EgaiAHQRBqIAcQvgRFDQALDAILIAYgCEECdGooAgAhCSAHIAApAwg3A3ggByAAKQMANwNwIAcgASkDCDcDaCAHIAEpAwA3A2AgByAFIAhBBHRqIgopAwg3A1ggByAKKQMANwNQIAcgBSAJQQR0aiIJKQMINwNIIAcgCSkDADcDQCAIQQFqIQggB0HwAGogB0HgAGogB0HQAGogB0FAaxC+BEUNAAtBACECCyAHQYABaiQAIAIL/RECGn8MfCMAQTBrIgMkAEHIhQsoAgAhBUGUhQsoAgAhAgNAIAIgD0YEQANAIAJBAWsgC00EQEGM4QotAABBAUsEQCADIBA2AiQgAyAANgIgQbj8CCgCAEHl5wMgA0EgahAeGgsgA0EwaiQAIBAPC0HIhQsoAgAgC0HgAGxqIhNBKGohCSALQQFqIg8hCwNAIAIgC00EQCAPIQsMAgUgAyATKQMQNwMYIAMgEykDCDcDECADQciFCygCACALQeAAbGoiBykDEDcDCCADIAcpAwg3AwBBACECQQAhBiMAQbAEayIBJAAgASADKQMYNwOoAyABIAMpAxA3A6ADIAEgCSkDCDcDmAMgASAJKQMANwOQAyABQeADaiABQaADaiABQZADahDiBSABIAMpAxg3A4gDIAEgAykDEDcDgAMgASAJKQMYNwP4AiABIAkpAxA3A/ACIAFB0ANqIAFBgANqIAFB8AJqEOIFIAEgAykDCDcD6AIgASADKQMANwPgAiABIAcpAzA3A9gCIAEgBykDKDcD0AIgAUHAA2ogAUHgAmogAUHQAmoQ4gUgASADKQMINwPIAiABIAMpAwA3A8ACIAEgBykDQDcDuAIgASAHKQM4NwOwAiABQbADaiABQcACaiABQbACahDiBQJAIAErA+ADIAErA7ADZUUNACABKwPAAyABKwPQA2VFDQAgASsD6AMgASsDuANlRQ0AIAErA8gDIAErA9gDZUUNAEEBIQIgCSgCKCIFQQFxBEAgBy0AUEEBcQ0BCwJAIAVBAnFFDQAgBy0AUEECcUUNACADKwMQIAMrAwChIhsgG6IgAysDGCADKwMIoSIbIBuioCAJKwMQIAkrAwChIAcrAzigIAcrAyihIhsgG6JEAAAAAAAA0D+iZEUhAgwBC0HQhQsoAgAiBUUEQEHQhQtBzIULKAIAELcCNgIAQdSFC0HMhQsoAgAQtwI2AgBB0IULKAIAIQULIAkoAiAiDEEAIAxBAEobIQggAysDGCEbIAMrAxAhHCAJKAIkIQQgBSECA0AgBiAIRwRAIAIgHCAEKwMAoDkDACACIBsgBCsDCKA5AwggBkEBaiEGIAJBEGohAiAEQRBqIQQMAQsLQQAhBiAHKAJIIg1BACANQQBKGyEIIAMrAwghGyADKwMAIRwgBygCTCEEQdSFCygCACIUIQIDQCAGIAhHBEAgAiAcIAQrAwCgOQMAIAIgGyAEKwMIoDkDCCAGQQFqIQYgAkEQaiECIARBEGohBAwBCwsgDUEBdCEXIAxBAXQhGCANQQFrIRkgDEEBayEaQQAhAkEAIQRBACEGQQAhCAJAAkADQCABIAUgCEEEdGoiCikDCDcDqAIgASAKKQMANwOgAiABIAUgCCAaaiAMb0EEdGoiESkDCDcDmAIgASARKQMANwOQAiABQaAEaiABQaACaiABQZACahCtDSABIBQgBkEEdGoiDikDCDcDiAIgASAOKQMANwOAAiABIBQgBiAZaiANb0EEdGoiEikDCDcD+AEgASASKQMANwPwASABQZAEaiABQYACaiABQfABahCtDSABQgA3A/gDIAFCADcD6AEgASABKQOoBDcD2AEgASABKQOYBDcDyAEgAUIANwPwAyABQgA3A+ABIAEgASkDoAQ3A9ABIAEgASkDkAQ3A8ABIAErA+gBIAErA9gBIhuhIAErA8ABIAErA9ABIhyhoiABKwPIASAboSABKwPgASAcoaKhIR8gASARKQMINwO4ASABIBEpAwA3A7ABIAEgCikDCDcDqAEgASAKKQMANwOgASABIA4pAwg3A5gBIAEgDikDADcDkAEgAUGwAWogAUGgAWogAUGQAWoQrA0hFSABIBIpAwg3A4gBIAEgEikDADcDgAEgASAOKQMINwN4IAEgDikDADcDcCABIAopAwg3A2ggASAKKQMANwNgIAFBgAFqIAFB8ABqIAFB4ABqEKwNIRYgASARKQMINwNYIAEgESkDADcDUCABIAopAwg3A0ggASAKKQMANwNAIAEgEikDCDcDOCABIBIpAwA3AzAgASAOKQMINwMoIAEgDikDADcDICABKwMwIiAgASsDWCIbIAFBQGsiCisDCCIhoaIgASsDICIlICEgG6EiIqIgASsDUCIeIAErAygiHSABKwM4IhyhoiImIAor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JGoQ6gUgAhCxASECDAELAAsACyABKAIUIQIgASgCECIFBEAgBSgCBCIIKwMAIQ8gCCsDCCEQIAEoAgQiCCsDACERIAgrAwghEiAAQSAQiwEgBSgCACABKAIAIBIgEaEgECAPoaBEAAAAAAAA4D+iELQDNgIYIABBKGogAEEYahDBASAFIAEoAhQ2AhQLIAJFDQAgAigCBCIFKwMAIQ8gBSsDCCEQIAEoAgQiBSsDACERIAUrAwghEiAAQSAQiwEgASgCACACKAIAIBIgEaEgECAPoaBEAAAAAAAA4D+iELQDNgIYIABBKGogAEEYahDBASACIAEoAhA2AhALIABBOGogAEEkahDqBQwBCyAAQThqIABBJGoQswMiAiAAKAI4RwRAIAEgAhCKCCgCECICNgIQIAIgATYCFAsgAEE4aiAAQSRqELMDELEBIgIgC0YNACABIAIoAhAiAjYCFCACIAE2AhALIAZBGGohBgwACwAFIAIgBkECdGoiCSgCACAFIAZBBXQiC2oiBysDACIPIAcrAwggD6FEAAAAAAAA4D+ioCIPOQMIIAAgDzkDKCAAQThqIgUgCSAHIABBKGoiBxDdDSAAQQA2AhggACABKAIAIAtqKwMQOQMoIABBxABqIgkgAEEYaiIMIAUgBxDpBSAAQQE2AhggACABKAIAIAtqKwMYOQMoIAZBAWohBiAJIAwgBSAHEOkFIAUQ2wEMAQsACwALIA4QggIaIApBEGokAAUgCkEEaiABIAZBBXRqIgAgAEEQaiAAQQhqIABBGGoQzw0gBkEBaiEGDAELCwtSAQF/QcAAEIsBIgJCADcDKCACQQA6ACQgAkEANgIgIAJCADcDGCACIAE5AxAgAkQAAAAAAADwPzkDCCACIAA2AgAgAkIANwMwIAJCADcDOCACC1IAIAAgASACIAQQ0gICQCADIAIgBCgCABEAAEUNACACIAMQuQEgAiABIAQoAgARAABFDQAgASACELkBIAEgACAEKAIAEQAARQ0AIAAgARC5AQsLOwECfyAAKAIAIgEEQCABIQADQCAAIgEoAgQiAA0ACyABDwsDQCAAIAAoAggiASgCAEYgASEADQALIAALXQEEfyAAQaDYCjYCAEGIhQtBADYCACAAQQRqIgJBBGohBCACKAIAIQEDQCABIARHBEAgASgCECIDBEAgAxDrDRoL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RQ0BQcDlCigCACIBBH8gASAAQYAEIAEoAgARBAAFQQALDwtB16ABQdHGAUGsBUH2qwEQAAALQczPAUHRxgFBrQVB9qsBEAAACxUBAX8Q0AMhAEEPQbDlCigCACAAGwuZAgECfyABKAJEIQEDQCABLQAAIgIEQAJAAkAgAUHv3wFBBRCBAkUNACABQbPYAUEHEIECRQ0AIAFB4uIBQQUQgQJFDQAgAUGw1wFBCRCBAg0BCwJ/AkADQAJAAkACQCACQf8BcSICQQprDgQEAQECAAsgAkUNAwsgAS0AASECIAFBAWohAQwBCwtBASABLQABQQpHDQEaIAFBAmohAQwECyACQQBHCyECIAEgAmohAQwCCwJ/AkADQAJAAkACQCACQf8BcSIDQQprDgQEAQECAAsgA0UNAwsgACACwBBnIAEtAAEhAiABQQFqIQEMAQsLQQJBASABLQABQQpGGwwBCyADQQBHCyECIABBChBnIAEgAmohAQwBCwsLyAICAn8BfCMAQYACayIDJAAgAisDECEFIAMgACkDCDcDeCADIAApAwA3A3AgAyABKQMINwNoIAMgASkDADcDYCADQeABaiADQfAAaiADQeAAahDSAwJAIAUgAysD4AFmRQ0AIAMgACkDCDcDWCADIAApAwA3A1AgAyABKQMINwNIIAMgASkDADcDQCADQcABaiADQdAAaiADQUBrENIDIAMrA9ABIAIrAwBmRQ0AIAIrAxggAyAAKQMINwM4IAMgACkDADcDMCADIAEpAwg3AyggAyABKQMANwMgIANBoAFqIANBMGogA0EgahDSAyADKwOoAWZFDQAgAyAAKQMINwMYIAMgACkDADcDECADIAEpAwg3AwggAyABKQMANwMAIANBgAFqIANBEGogAxDSAyADKwOYASACKwMIZiEECyADQYACaiQAIAQLagICfAF/AkAgASsDECAAKwA4IgIgACsDGEQAAAAAAADgP6IiA6FmRQ0AIAErAwAgAyACoGVFDQAgASsDGCAAKwBAIgIgACsDIEQAAAAAAADgP6IiA6FmRQ0AIAErAwggAyACoGUhBAsgBAsoAQF/A38gAAR/IAAoAgQQpwogAWpBAWohASAAKAIAIQAMAQUgAQsLC/oCAQZ/IwBBEGsiBiQAAkACQAJAIAAoAgAiAy0AAEEjRgRAIAMtAAEiAkHf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AkACQAJAIAEoAgBBAmsODQAAAQECAwQEBgcIBQUJCyABKAIMEBgMCAsgASgCDBAYDAcLIAEoAgwQGAwGCyABKAIoEBgMBQsgASgCCBAYDAQLQQAhAgJAAkACQAJAIAEoAghBAWsOAgABAwsDQCABKAI0IQMgAiABKAIwTg0CIAMgAkEEdGooAggQGCACQQFqIQIMAAsACwNAIAEoAkQhAyACIAEoAkBODQEgAyACQQR0aigCCBAYIAJBAWohAgwACwALIAMQGAsMAwsgASgCEBAYDAILIAEoAggQGAwBCyABKAIoEBgLIARBAWohBAwBCwsgBRAYIAAQGAsJACAAQQA2AgALSQEBfyMAQRBrIgMkAAJAAkAgAkEeSw0AIAEtAHhBAXENACABQQE6AHgMAQsgAhD9CiEBCyADQRBqJAAgACACNgIEIAAgATYCAAtAAQF/IwBBEGsiASQAIAAQoQMaIAFB/////wM2AgwgAUH/////BzYCCCABQQxqIAFBCGoQ6AsoAgAgAUEQaiQACwsAIABBADYCACAACzcBAX8jAEEQayIDJAAgAyABEO0CNgIMIAMgAhDtAjYCCCAAIANBDGogA0EIahCwBSADQRBqJAALTgEBfyMAQRBrIgMkACADIAE2AgggAyAANgIMIAMgAjYCBEEAIQEgA0EEaiIAIANBDGoQrQVFBEAgACADQQhqEK0FIQELIANBEGokACABC98BAQN/IAAQJCAAEEZPBEAgABBGIgJBAWoiAyACQQF0QYAIIAIbIgQgAyAESxshAyAAECQhBAJAIAAtAA9B/wFGBEAgACgCACACIANBARCcBSECDAELIANBARBKIgIgACAEEB8aIAAgBDYCBAsgAEH/AToADyAAIAM2AgggACACNgIACyAAECQhAgJAIAAQJwRAIAAgAmogAToAACAAIAAtAA9BAWo6AA8gABAkQRBJDQFBvMADQcmEAUGdAkGUugEQAAALIAAoAgAgAmogAToAACAAIAAoAgRBAWo2AgQLCzQBAX8jAEEQayIDJAAgABAjGiAAIAIQowMgA0EAOgAPIAEgAmogA0EPahDTASADQRBqJAALHAAgAEH/////A0sEQBCTAQALIABBAnRBBBDdCwsJACAAEJIHEBgLngcBCn8jAEGgAWsiAiQAAkAgAEUNAEEBQRQQSiIDQdAAIAEg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ELILCyACIAEgASACKAIAEN4LIAZBDGogAyAAKAIAENYLIAFqNgIAIAZBEGokAAtCACABIAIgAyAEQQQQpQIhASADLQAAQQRxRQRAIAAgAUHQD2ogAUHsDmogASABQeQASRsgAUHFAEgbQewOazYCAAsLQAAgAiADIABBCGogACgCCCgCBBECACIAIABBoAJqIAUgBEEAEKcFIABrIgBBnwJMBEAgASAAQQxtQQxvNgIACwtAACACIAMgAEEIaiAAKAIIKAIAEQIAIgAgAEGoAWogBSAEQQAQpwUgAGsiAEGnAUwEQCABIABBDG1BB282AgALC0IAIAEgAiADIARBBBCmAiEBIAMtAABBBHFFBEAgACABQdAPaiABQewOaiABIAFB5ABJGyABQcUASBtB7A5rNgIACwtAACACIAMgAEEIaiAAKAIIKAIEEQIAIgAgAEGgAmogBSAEQQAQqQUgAGsiAEGfAkwEQCABIABBDG1BDG82AgALC0AAIAIgAyAAQQhqIAAoAggoAgARAgAiACAAQagBaiAFIARBABCpBSAAayIAQacBTARAIAEgAEEMbUEHbzYCAAsLBABBAgveAQEFfyMAQRBrIgckACMAQRBrIgMkACAAIQQCQCABQff///8DTQRAAkAgARCZBQRAIAQgARDUAQwBCyADQQhqIAEQ1gNBAWoQ1QMgAygCDBogBCADKAIIIgAQ/AEgBCADKAIMEPsBIAQgARC/AQsjAEEQayIFJAAgBSACNgIMIAAhAiABIQYDQCAGBEAgAiAFKAIMNgIAIAZBAWshBiACQQRqIQIMAQsLIAVBEGokACADQQA2AgQgACABQQJ0aiADQQRqEN4BIANBEGokAAwBCxDMAQALIAdBEGokACAEC8AFAQ5/IwBBEGsiCyQAIAYQzQEhCiALQQRqIAYQ3QMiDhDKASAFIAM2AgACQAJAIAAiBy0AACIGQStrDgMAAQABCyAKIAbAENIBIQYgBSAFKAIAIghBBGo2AgAgCCAGNgIAIABBAWohBwsCQAJAIAIgByIGa0EBTA0AIAYtAABBMEcNACAGLQABQSByQfgARw0AIApBMBDSASEIIAUgBSgCACIHQQRqNgIAIAcgCDYCACAKIAYsAAEQ0gEhCCAFIAUoAgAiB0EEajYCACAHIAg2AgAgBkECaiIHIQYDQCACIAZNDQIgBiwAABBoIRIQ2QtFDQIgBkEBaiEGDAALAAsDQCACIAZNDQEgBiwAABBoIRQQ2AtFDQEgBkEBaiEGDAALAAsCQCALQQRqEPgBBEAgCiAHIAYgBSgCABDKAiAFIAUoAgAgBiAHa0ECdGo2AgAMAQsgByAGEKQDIA4QywEhDyAHIQgDQCAGIAhNBEAgAyAHIABrQQJ0aiAFKAIAEKIFBQJAIAtBBGoiDSAMED8sAABBAEwNACAJIA0gDBA/LAAARw0AIAUgBSgCACIJQQRqNgIAIAkgDzYCACAMIAwgDRAjQQFrSWohDEEAIQkLIAogCCwAABDSASENIAUgBSgCACIQQQRqNgIAIBAgDTYCACAIQQFqIQggCUEBaiEJDAELCwsCQAJAA0AgAiAGTQ0BIAZBAWohCCAGLAAAIgZBLkcEQCAKIAYQ0gEhBiAFIAUoAgAiB0EEajYCACAHIAY2AgAgCCEGDAELCyAOEPcBIQYgBSAFKAIAIgdBBGoiCTYCACAHIAY2AgAMAQsgBSgCACEJIAYhCAsgCiAIIAIgCRDKAiAFIAUoAgAgAiAIa0ECdGoiBTYCACAEIAUgAyABIABrQQJ0aiABIAJGGzYCACALQQRqEDQaIAtBEGokAAuHAQEBfyAALQCZAUEEcUUEQAJAIAAoAkwiAUUNACABKAIIIgFFDQAgACABEQEADwsgABCdBxoCQCAAKAIgRQ0AIAAoAiQiAUHA/AgoAgBGDQAgAC0AkAENACABBEAgARDtAyAAQQA2AiQLIABBADYCIAsPC0Hx6ANBACAAKAIMKAIQEQMAECgAC+YDAQh/IwBBEGsiCyQAIAYQzQEhCiALQQRqIgcgBhDdAyIGEMoBAkAgBxD4AQRAIAogACACIAMQygIgBSADIAIgAGtBAnRqIgY2AgAMAQsgBSADNgIAAkACQCAAIgctAAAiCEEraw4DAAEAAQsgCiAIwBDSASEHIAUgBSgCACIIQQRqNgIAIAggBzYCACAAQQFqIQcLAkAgAiAHa0ECSA0AIActAABBMEcNACAHLQABQSByQfgARw0AIApBMBDSASEIIAUgBSgCACIJQQRqNgIAIAkgCDYCACAKIAcsAAEQ0gEhCCAFIAUoAgAiCUEEajYCACAJIAg2AgAgB0ECaiEHCyAHIAIQpANBACEJIAYQywEhDUEAIQggByEGA38gAiAGTQR/IAMgByAAa0ECdGogBSgCABCiBSAFKAIABQJAIAtBBGoiDCAIED8tAABFDQAgCSAMIAgQPywAAEcNACAFIAUoAgAiCUEEajYCACAJIA02AgAgCCAIIAwQI0EBa0lqIQhBACEJCyAKIAYsAAAQ0gEhDCAFIAUoAgAiDkEEajYCACAOIAw2AgAgBkEBaiEGIAlBAWohCQwBCwshBgsgBCAGIAMgASAAa0ECdGogASACRhs2AgAgC0EEahA0GiALQRBqJAALDwAgACgCDBogAEEANgIMCx8BAX8jAEEQayIDJAAgACABIAIQ5wogA0EQaiQAIAALsAUBDn8jAEEQayILJAAgBhDOASEJIAtBBGogBhDfAyIOEMoBIAUgAzYCAAJAAkAgACIHLQAAIgZBK2sOAwABAAELIAkgBsAQnwEhBiAFIAUoAgAiCEEBajYCACAIIAY6AAAgAEEBaiEHCwJAAkAgAiAHIgZrQQFMDQAgBi0AAEEwRw0AIAYtAAFBIHJB+ABHDQAgCUEwEJ8BIQggBSAFKAIAIgdBAWo2AgAgByAIOgAAIAkgBiwAARCfASEIIAUgBSgCACIHQQFqNgIAIAcgCDoAACAGQQJqIgchBgNAIAIgBk0NAiAGLAAAEGghEhDZC0UNAiAGQQFqIQYMAAsACwNAIAIgBk0NASAGLAAAEGghFBDYC0UNASAGQQFqIQYMAAsACwJAIAtBBGoQ+AEEQCAJIAcgBiAFKAIAEPcCIAUgBSgCACAGIAdrajYCAAwBCyAHIAYQpAMgDhDLASEPIAchCANAIAYgCE0EQCADIAcgAGtqIAUoAgAQpAMFAkAgC0EEaiINIAwQPywAAEEATA0AIAogDSAMED8sAABHDQAgBSAFKAIAIgpBAWo2AgAgCiAPOgAAIAwgDCANECNBAWtJaiEMQQAhCgsgCSAILAAAEJ8BIQ0gBSAFKAIAIhBBAWo2AgAgECANOgAAIAhBAWohCCAKQQFqIQoMAQsLCwNAAkACQCACIAZNBEAgBiEIDAELIAZBAWohCCAGLAAAIgZBLkcNASAOEPcBIQYgBSAFKAIAIgdBAWo2AgAgByAGOgAACyAJIAggAiAFKAIAEPcCIAUgBSgCACACIAhraiIFNgIAIAQgBSADIAEgAGtqIAEgAkYbNgIAIAtBBGoQNBogC0EQaiQADwsgCSAGEJ8BIQYgBSAFKAIAIgdBAWo2AgAgByAGOgAAIAghBgwACwAL3QMBCH8jAEEQayILJAAgBhDOASEKIAtBBGoiByAGEN8DIgYQygECQCAHEPgBBEAgCiAAIAIgAxD3AiAFIAMgAiAAa2oiBjYCAAwBCyAFIAM2AgACQAJAIAAiBy0AACIIQStrDgMAAQABCyAKIAjAEJ8BIQcgBSAFKAIAIghBAWo2AgAgCCAHOgAAIABBAWohBwsCQCACIAdrQQJIDQAgBy0AAEEwRw0AIActAAFBIHJB+ABHDQAgCkEwEJ8BIQggBSAFKAIAIglBAWo2AgAgCSAIOgAAIAogBywAARCfASEIIAUgBSgCACIJQQFqNgIAIAkgCDoAACAHQQJqIQcLIAcgAhCkA0EAIQkgBhDLASENQQAhCCAHIQYDfyACIAZNBH8gAyAHIABraiAFKAIAEKQDIAUoAgAFAkAgC0EEaiIMIAgQPy0AAEUNACAJIAwgCBA/LAAARw0AIAUgBSgCACIJQQFqNgIAIAkgDToAACAIIAggDBAjQQFrSWohCEEAIQkLIAogBiwAABCfASEMIAUgBSgCACIOQQFqNgIAIA4gDDoAACAGQQFqIQYgCUEBaiEJDAELCyEGCyAEIAYgAyABIABraiABIAJGGzYCACALQQRqEDQaIAtBEGokAAvrAgEEfyMAQSBrIgMkACADIAI2AhwgAyACNgIAAkACQAJAAkACQEEAQQAgASACEGIiAkEASARAIAIhAQwBC0EBIQQgAkEBaiEGAkAgAiAAEEYgABAkayIFTwRAIAAQJ0EAIAYgBWsiBUEBRhsNASAAIAUQ0QELQQAhBAsgA0IANwMIIANCADcDACAEIAJBEE9xDQEgAyEFIAIgBAR/IAUFIAAQdAsgBiABIAMoAhwQYiIBRyABQQBOcQ0CIAFBAEwNACAAECcEQCABQYACTw0EIAQEQCAAEHQgAyABEB8aCyAAIAAtAA8gAWo6AA8gABAkQRBJDQFBvMADQcmEAUHYAUHpHxAAAAsgBA0EIAAgACgCBCABajYCBAsgA0EgaiQAIAEPC0GfrwNByYQBQcsBQekfEAAAC0H4ogNByYQBQdABQekfEAAAC0Hf1AFByYQBQdMBQekfEAAAC0HjpAFByYQBQdoBQekfEAAAC5oDAQJ/IwBB0AJrIgAkACAAIAI2AsgCIAAgATYCzAIgAxCpAiEGIAMgAEHQAWoQqgQhByAAQcQBaiADIABBxAJqEKkEIABBuAFqEFIiASABEFYQPSAAIAFBABA/IgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqEFsNACAAKAK0ASABECMgAmpGBEAgARAjIQMgASABECNBAXQQPSABIAEQVhA9IAAgAyABQQAQPyICajYCtAELIABBzAJqIgMQhAEgBiACIABBtAFqIABBCGogACgCxAIgAEHEAWogAEEQaiAAQQxqIAcQ3AMNACADEJgBGgwBCwsCQCAAQcQBahAjRQ0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCtAEgBCAGEMsLNgIAIABBxAFqIABBEGogACgCDCAEELQBIABBzAJqIABByAJqEFsEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQNBogAEHEAWoQNBogAEHQAmokAAtnAQJ/IwBBEGsiAyQAA0ACQCABLQAAIgJB3ABHBEAgAgRAIALAIgJBAE4EQCAAIAIQZwwDCyADIAI2AgAgAEGj5QAgAxAdDAILIANBEGokAA8LIABB5M8BEBoaCyABQQFqIQEMAAsAC0QBAX8jAEEQayIDJAAgAyABNgIMIAMgAjYCCCADQQRqIANBDGoQjwIgAEHt4gAgAygCCBCBDCEAEI4CIANBEGokACAAC7ECAgR+BX8jAEEgayIIJAACQAJAAkAgASACRwRAQeCPCygCACEMQeCPC0EANgIAIwBBEGsiCSQAEGgaIwBBEGsiCiQAIwBBEGsiCyQAIAsgASAIQRxqQQIQuQcgCykDACEEIAogCykDCDcDCCAKIAQ3AwAgC0EQaiQAIAopAwAhBCAJIAopAwg3AwggCSAENwMAIApBEGokACAJKQMAIQQgCCAJKQMINwMQIAggBDcDCCAJQRBqJAAgCCkDECEEIAgpAwghBUHgjwsoAgAiAUUNASAIKAIcIAJHDQIgBSEGIAQhByABQcQARw0DDAILIANBBDYCAAwCC0HgjwsgDDYCACAIKAIcIAJGDQELIANBBDYCACAGIQUgByEECyAAIAU3AwAgACAENwMIIAhBIGokAAufAQICfwF8IwBBEGsiAyQAAkACQAJAIAAgAUcEQEHgjwsoAgAhBEHgjwtBADYCABBoGiAAIANBDGoQ4gEhBQJAQeCPCygCACIABEAgAygCDCABRg0BDAMLQeCPCyAENgIAIAMoAgwgAUcNAgwECyAAQcQARw0DDAILIAJBBDYCAAwCC0QAAAAAAAAAACEFCyACQQQ2AgALIANBEGokACAFC7wBAgN/AX0jAEEQayIDJAACQAJAAkAgACABRwRAQeCPCygCACEFQeCPC0EANgIAEGgaIwBBEGsiBCQAIAQgACADQQxqQQAQuQcgBCkDACAEKQMIELkFIQYgBEEQaiQAAkBB4I8LKAIAIgAEQCADKAIMIAFGDQEMAwtB4I8LIAU2AgAgAygCDCABRw0CDAQLIABBxABHDQMMAgsgAkEENgIADAILQwAAAAAhBgsgAkEENgIACyADQRBqJAAgBgvDAQIDfwF+IwBBEGsiBCQAAn4CQAJAIAAgAUcEQAJAAkAgAC0AACIFQS1HDQAgAEEBaiIAIAFHDQAMAQtB4I8LKAIAIQZB4I8LQQA2AgAQaBogACAEQQxqIAMQjwchBwJAQeCPCygCACIABEAgBCgCDCABRw0BIABBxABGDQQMBQtB4I8LIAY2AgAgBCgCDCABRg0ECwsLIAJBBDYCAEIADAILIAJBBDYCAEJ/DAELQgAgB30gByAFQS1GGwsgBEEQaiQAC9QBAgN/AX4jAEEQayIEJAACfwJAAkACQCAAIAFHBEACQAJAIAAtAAAiBUEtRw0AIABBAWoiACABRw0ADAELQeCPCygCACEGQeCPC0EANgIAEGgaIAAgBEEMaiADEI8HIQcCQEHgjwsoAgAiAARAIAQoAgwgAUcNASAAQcQARg0FDAQLQeCPCyAGNgIAIAQoAgwgAUYNAwsLCyACQQQ2AgBBAAwDCyAHQv////8PWA0BCyACQQQ2AgBBfwwBC0EAIAenIgBrIAAgBUEtRhsLIARBEGokAAuPAwEBfyMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIAMQqQIhBiAAQcQBaiADIABB9wFqEKsEIABBuAFqEFIiASABEFYQPSAAIAFBABA/IgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABB/AFqIABB+AFqEFwNACAAKAK0ASABECMgAmpGBEAgARAjIQMgASABECNBAXQQPSABIAEQVhA9IAAgAyABQQAQPyICajYCtAELIABB/AFqIgMQhQEgBiACIABBtAFqIABBCGogACwA9wEgAEHEAWogAEEQaiAAQQxqQfC3CRDeAw0AIAMQmQEaDAELCwJAIABBxAFqECNFDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAK0ASAEIAYQyws2AgAgAEHEAWogAEEQaiAAKAIMIAQQtAEgAEH8AWogAEH4AWoQXARAIAQgBCgCAEECcjYCAAsgACgC/AEgARA0GiAAQcQBahA0GiAAQYACaiQAC9kBAgN/AX4jAEEQayIEJAACfwJAAkACQCAAIAFHBEACQAJAIAAtAAAiBUEtRw0AIABBAWoiACABRw0ADAELQeCPCygCACEGQeCPC0EANgIAEGgaIAAgBEEMaiADEI8HIQcCQEHgjwsoAgAiAARAIAQoAgwgAUcNASAAQcQARg0FDAQLQeCPCyAGNgIAIAQoAgwgAUYNAwsLCyACQQQ2AgBBAAwDCyAHQv//A1gNAQsgAkEENgIAQf//AwwBC0EAIAenIgBrIAAgBUEtRhsLIARBEGokAEH//wNxC7cBAgF+An8jAEEQayIFJAACQAJAIAAgAUcEQEHgjwsoAgAhBkHgjwtBADYCABBoGiAAIAVBDGogAxDrCiEEAkBB4I8LKAIAIgAEQCAFKAIMIAFHDQEgAEHEAEYNAwwEC0HgjwsgBjYCACAFKAIMIAFGDQMLCyACQQQ2AgBCACEEDAELIAJBBDYCACAEQgBVBEBC////////////ACEEDAELQoCAgICAgICAgH8hBAsgBUEQaiQAIAQLwAECAn8BfiMAQRBrIgQkAAJ/AkACQCAAIAFHBEBB4I8LKAIAIQVB4I8LQQA2AgAQaBogACAEQQxqIAMQ6wohBgJAQeCPCygCACIABEAgBCgCDCABRw0BIABBxABGDQQMAwtB4I8LIAU2AgAgBCgCDCABRg0CCwsgAkEENgIAQQAMAgsgBkKAgICAeFMgBkL/////B1VyDQAgBqcMAQsgAkEENgIAQf////8HIAZCAFUNABpBgICAgHgLIARBEGokAAsKACABIABrQQxtC7ABAQN/AkAgASACEKQLIQQjAEEQayIDJAAgBEH3////A00EQAJAIAQQmQUEQCAAIAQQ1AEgACEFDAELIANBCGogBBDWA0EBahDVAyADKAIMGiAAIAMoAggiBRD8ASAAIAMoAgwQ+wEgACAEEL8BCwNAIAEgAkcEQCAFIAEQ3gEgBUEEaiEFIAFBBGohAQwBCwsgA0EANgIEIAUgA0EEahDeASADQRBqJAAMAQsQzAEACwsxAQF/QaSSCygCACEBIAAEQEGkkgtBiJALIAAgAEF/Rhs2AgALQX8gASABQYiQC0YbC58IAQV/IAEoAgAhBAJAAkACQAJAAkACQAJ/AkACQAJAAkAgA0UNACADKAIAIgZFDQAgAEUEQCACIQMMBAsgA0EANgIAIAIhAwwBCwJAQaSSCygCACgCAEUEQCAARQ0BIAJFDQsgAiEGA0AgBCwAACIDBEAgACADQf+/A3E2AgAgAEEEaiEAIARBAWohBCAGQQFrIgYNAQwNCwsgAEEANgIAIAFBADYCACACIAZrDwsgAiEDIABFDQJBASEFDAELIAQQPA8LA0ACQAJAAkACfwJAIAVFBEAgBC0AACIFQQN2IgdBEGsgByAGQRp1anJBB0sNCiAEQQFqIQcgBUGAAWsgBkEGdHIiBUEASA0BIAcMAgsgA0UNDgNAIAQtAAAiBUEBa0H+AEsEQCAFIQYMBgsgBEEDcSADQQVJckUEQAJAA0AgBCgCACIGQYGChAhrIAZyQYCBgoR4cQ0BIAAgBkH/AXE2AgAgACAELQABNgIEIAAgBC0AAjYCCCAAIAQtAAM2AgwgAEEQaiEAIARBBGohBCADQQRrIgNBBEsNAAsgBC0AACEGCyAGQf8BcSIFQQFrQf4ASw0GCyAAIAU2AgAgAEEEaiEAIARBAWohBCADQQFrIgMNAAsMDgsgBy0AAEGAAWsiB0E/Sw0BIAcgBUEGdCIIciEFIARBAmoiByAIQQBODQAaIActAABBgAFrIgdBP0sNASAHIAVBBnRyIQUgBEEDagshBCAAIAU2AgAgA0EBayEDIABBBGohAAwBC0HgjwtBGTYCACAEQQFrIQQMCQtBASEFDAELIAVBwgFrIgVBMksNBSAEQQFqIQQgBUECdEHQlQlqKAIAIQZBACEFDAALAAtBAQwBC0EACyEFA0AgBUUEQCAELQAAQQN2IgVBEGsgBkEadSAFanJBB0sNAgJ/IARBAWoiBSAGQYCAgBBxRQ0AGiAFLAAAQUBOBEAgBEEBayEEDAYLIARBAmoiBSAGQYCAIHFFDQAaIAUsAABBQE4EQCAEQQFrIQQMBgsgBEEDagshBCADQQFrIQNBASEFDAELA0ACQCAEQQNxIAQtAAAiBkEBa0H+AEtyDQAgBCgCACIGQYGChAhrIAZyQYCBgoR4cQ0AA0AgA0EEayEDIAQoAgQhBiAEQQRqIQQgBiAGQYGChAhrckGAgYKEeHFFDQALCyAGQf8BcSIFQQFrQf4ATQRAIANBAWshAyAEQQFqIQQMAQsLIAVBwgFrIgVBMksNAiAEQQFqIQQgBUECdEHQlQlqKAIAIQZBACEFDAALAAsgBEEBayEEIAYNASAELQAAIQYLIAZB/wFxDQAgAARAIABBADYCACABQQA2AgALIAIgA2sPC0HgjwtBGTYCACAARQ0BCyABIAQ2AgALQX8PCyABIAQ2AgAgAgsOACAAENoLBEAgABAYCws4ACAAQdAPayAAIABBk/H//wdKGyIAQQNxBEBBAA8LIABB7A5qIgBB5ABvBEBBAQ8LIABBkANvRQvvEgIPfwR+IwBBgAFrIggkACABBEACfwNAAkACfyACLQAAIgVBJUcEQCAJIAVFDQQaIAAgCWogBToAACAJQQFqDAELQQAhBUEBIQcCQAJAAkAgAi0AASIGQS1rDgQBAgIBAAsgBkHfAEcNAQsgBiEFIAItAAIhBkECIQcLQQAhDgJAAn8gAiAHaiAGQf8BcSISQStGaiINLAAAQTBrQQlNBEAgDSAIQQxqQQoQsQQhAiAIKAIMDAELIAggDTYCDEEAIQIgDQsiBy0AACIGQcMAayIKQRZLQQEgCnRBmYCAAnFFcg0AIAIiDg0AIAcgDUchDgsgBkHPAEYgBkHFAEZyBH8gBy0AASEGIAdBAWoFIAcLIQIgCEEQaiEHIAUhDUEAIQUjAEHQAGsiCiQAQcISIQxBMCEQQaiACCELAkAgCAJ/AkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJ+AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAGwCIGQSVrDlYhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tAQMEJy0HCAkKLS0tDS0tLS0QEhQWGBccHiAtLS0tLS0AAiYGBS0IAi0LLS0MDi0PLSURExUtGRsdHy0LIAMoAhgiBUEGTQ0iDCoLIAMoAhgiBUEGSw0pIAVBh4AIagwiCyADKAIQIgVBC0sNKCAFQY6ACGoMIQsgAygCECIFQQtLDScgBUGagAhqDCALIAM0AhRC7A58QuQAfyEUDCMLQd8AIRALIAM0AgwhFAwhC0GuuQEhDAwfCyADNAIUIhVC7A58IRQCQCADKAIcIgVBAkwEQCAUIBVC6w58IAMQpwdBAUYbIRQMAQsgBUHpAkkNACAVQu0OfCAUIAMQpwdBAUYbIRQLIAZB5wBGDRkMIAsgAzQCCCEUDB4LQQIhBSADKAIIIgZFBEBCDCEUDCALIAasIhRCDH0gFCAGQQxKGyEUDB8LIAMoAhxBAWqsIRRBAyEFDB4LIAMoAhBBAWqsIRQMGwsgAzQCBCEUDBoLIAhBATYCfEHjigUhBQweC0GngAhBpoAIIAMoAghBC0obDBQLQd/YASEMDBYLQQAhC0EAIREjAEEQayIPJAAgAzQCFCEUAn4gAygCECIMQQxPBEAgDCAMQQxtIgZBDGxrIgVBDGogBSAFQQBIGyEMIAYgBUEfdWqsIBR8IRQLIA9BDGohBiAUQgJ9QogBWARAIBSnIgtBxABrQQJ1IQUCQCAGAn8gC0EDcUUEQCAFQQFrIQUgBkUNAkEBDAELIAZFDQFBAAs2AgALIAtBgOeED2wgBUGAowVsakGA1q/jB2qsDAELIBRC5AB9IhQgFEKQA38iFkKQA359IhVCP4enIBanaiETAkACQAJAIBWnIgVBkANqIAUgFUIAUxsiBQR/An8gBUHIAU4EQCAFQawCTwRAQQMhCyAFQawCawwCC0ECIQsgBUHIAWsMAQsgBUHkAGsgBSAFQeMASiILGwsiBQ0BQQAFQQELIQUgBg0BDAILIAVBAnYhESAFQQNxRSEFIAZFDQELIAYgBTYCAAsgFEKA54QPfiARIAtBGGwgE0HhAGxqaiAFa6xCgKMFfnxCgKq6wwN8CyEUIAxBAnRBwJwJaigCACIFQYCjBWogBSAPKAIMGyAFIAxBAUobIQUgAygCDCEGIAM0AgghFSADNAIEIRYgAzQCACAPQRBqJAAgFCAFrHwgBkEBa6xCgKMFfnwgFUKQHH58IBZCPH58fCADNAIkfQwICyADNAIAIRQMFQsgCEEBNgJ8QeWKBSEFDBkLQd7WASEMDBILIAMoAhgiBUEHIAUbrAwECyADKAIcIAMoAhhrQQdqQQdurSEUDBELIAMoAhwgAygCGEEGakEHcGtBB2pBB26tIRQMEAsgAxCnB60hFAwPCyADNAIYCyEUQQEhBQwPC0GpgAghCwwKC0GqgAghCwwJCyADNAIUQuwOfELkAIEiFCAUQj+HIhSFIBR9IRQMCgsgAzQCFCIVQuwOfCEUIBVCpD9TDQogCiAUNwMwIAggB0HkAEHJrgEgCkEwahChATYCfCAHIQUMDgsgAygCIEEASARAIAhBADYCfEHmigUhBQwOCyAKIAMoAiQiBUGQHG0iBkHkAGwgBSAGQZAcbGvBQTxtwWo2AkAgCCAHQeQAQeKuASAKQUBrEKEBNgJ8IAchBQwNCyADKAIgQQBIBEAgCEEANgJ8QeaKBSEFDA0LIAMoAigQmQwMCwsgCEEBNgJ8QZG2AyEFDAsLIBRC5ACBIRQMBQsgBUGAgAhyCyAEENcLDAcLQauACCELCyALIAQQ1wshDAsgCCAHQeQAIAwgAyAEENYLIgU2AnwgB0EAIAUbIQUMBQtBAiEFDAELQQQhBQsCQCANIBAgDRsiBkHfAEcEQCAGQS1HDQEgCiAUNwMQIAggB0HkAEHKrgEgCkEQahChATYCfCAHIQUMBAsgCiAUNwMoIAogBTYCICAIIAdB5ABBw64BIApBIGoQoQE2AnwgByEFDAMLIAogFDcDCCAKIAU2AgAgCCAHQeQAQbyuASAKEKEBNgJ8IAchBQwCC0GCpQMLIgUQPDYCfAsgCkHQAGokACAFIgdFDQECQCAORQRAIAgoAnwhBQwBCwJ/AkACQCAHLQAAIgZBK2sOAwEAAQALIAgoAnwMAQsgBy0AASEGIAdBAWohByAIKAJ8QQFrCyEFAkAgBkH/AXFBMEcNAANAIAcsAAEiBkEwa0EJSw0BIAdBAWohByAFQQFrIQUgBkEwRg0ACwsgCCAFNgJ8QQAhBgNAIAYiDUEBaiEGIAcgDWosAABBMGtBCkkNAAsgDiAFIAUgDkkbIQYCQCAAIAlqIAMoAhRBlHFIBH9BLQUgEkErRw0BIAYgBWsgDWpBA0EFIAgoAgwtAABBwwBGG0kNAUErCzoAACAGQQFrIQYgCUEBaiEJCyABIAlNIAUgBk9yDQADQCAAIAlqQTA6AAAgCUEBaiEJIAZBAWsiBiAFTQ0BIAEgCUsNAAsLIAggBSABIAlrIgYgBSAGSRsiBTYCfCAAIAlqIAcgBRAfGiAIKAJ8IAlqCyEJIAJBAWohAiABIAlLDQELCyABQQFrIAkgASAJRhshCUEACyEGIAAgCWpBADoAAAsgCEGAAWokACAGC74BAQJ/IABBDkYEQEHb9wFBxd4BIAEoAgAbDwsgAEH//wNxIgJB//8DRyAAQRB1IgNBBUpyRQRAIAEgA0ECdGooAgAiAEEIakHy4wEgABsPC0HmigUhAAJAAn8CQAJAAkAgA0EBaw4FAAEEBAIECyACQQFLDQNB8JwJDAILIAJBMUsNAkGAnQkMAQsgAkEDSw0BQcCfCQshACACRQRAIAAPCwNAIAAtAAAgAEEBaiEADQAgAkEBayICDQALCyAACwoAIABBMGtBCkkLFwAgAEEwa0EKSSAAQSByQeEAa0EGSXILJwAgAEEARyAAQZj7CEdxIABBsPsIR3EgAEGgqAtHcSAAQbioC0dxCywBAX8gACgCACIBBEAgARDvC0F/EMsCRQRAIAAoAgBFDwsgAEEANgIAC0EBCywBAX8gACgCACIBBEAgARD3C0F/EMsCRQRAIAAoAgBFDwsgAEEANgIAC0EBC4kCAQR/IAEQ4AsEQEEEIAEgAUEETRshAUEBIAAgAEEBTRshAANAAkAgACAAIAFqQQFrQQAgAWtxIgIgACACSxshBUEAIQQjAEEQayIDJAACQCABQQNxDQAgBSABcA0AAn8CQEEwAn8gAUEIRgRAIAUQSAwBC0EcIQQgAUEDcSABQQRJcg0BIAFBAnYiAiACQQFrcQ0BQTBBQCABayAFSQ0CGkEQIAEgAUEQTRsgBRD/CwsiAkUNARogAyACNgIMQQAhBAsgBAshAkEAIAMoAgwgAhshBAsgA0EQaiQAIAQiAw0AQYy4CygCACICRQ0AIAIRDAAMAQsLIANFBEAQzAELIAMPCyAAEIsBCwcAIAEgAGsLCQAgACABEN4LCwcAIABBCEsLEwAgARDgCwRAIAAQGA8LIAAQGAsSACAAQgA3AgAgAEEANgIIIAALEwAgAgRAIAAgASACQQJ0EFMaCwtFAQF/IwBBEGsiBCQAIAQgAjYCDCADIAEgAiABayIBQQJ1EOMLIAQgASADajYCCCAAIARBDGogBEEIahD9ASAEQRBqJAALEAAgAgRAIAAgASACEFMaCwtCAQF/IwBBEGsiBCQAIAQgAjYCDCADIAEgAiABayIBEOULIAQgASADajYCCCAAIARBDGogBEEIahD9ASAEQRBqJAALCQAgABCpBxAYCyQBAn8jAEEQayICJAAgASAAEK0FIQMgAkEQaiQAIAEgACADGwsOAEEAIAAgAEF/EMsCGwuwAQEDfwJAIAEgAhDfCyEEIwBBEGsiAyQAIARB9////wdNBEACQCAEEK4FBEAgACAEENQBIAAhBQwBCyADQQhqIAQQ4gNBAWoQ4QMgAygCDBogACADKAIIIgUQ/AEgACADKAIMEPsBIAAgBBC/AQsDQCABIAJHBEAgBSABENMBIAVBAWohBSABQQFqIQEMAQsLIANBADoAByAFIANBB2oQ0wEgA0EQaiQADAELEMwBAAsLDwAgACAAKAIYIAFqNgIYCxcAIAAgAjYCHCAAIAE2AhQgACABNgIYC1cBAn8CQCAAKAIAIgJFDQACfyACKAIYIgMgAigCHEYEQCACIAEgAigCACgCNBEAAAwBCyACIANBBGo2AhggAyABNgIAIAELQX8QywJFDQAgAEEANgIACwsxAQF/IAAoAgwiASAAKAIQRgRAIAAgACgCACgCKBECAA8LIAAgAUEEajYCDCABKAIACycBAX8gACgCDCIBIAAoAhBGBEAgACAAKAIAKAIkEQIADwsgASgCAAsnAQF/AkAgACgCACICRQ0AIAIgARD1C0F/EMsCRQ0AIABBADYCAAsLUwEDfwJAQX8gACgCTBDLAkUEQCAAKAJMIQAMAQsgACMAQRBrIgEkACABQQxqIgIgABBRIAIQzgFBIBCfASEAIAIQTiABQRBqJAAgADYCTAsgAMALGgAgACABIAEoAgBBDGsoAgBqKAIYNgIAIAALCwAgAEHAqQsQqgILCQAgABCuBxAYCz0BAX8gACgCGCICIAAoAhxGBEAgACABEKsDIAAoAgAoAjQRAAAPCyAAIAJBAWo2AhggAiABOgAAIAEQqwMLNAEBfyAAKAIMIgEgACgCEEYEQCAAIAAoAgAoAigRAgAPCyAAIAFBAWo2AgwgASwAABCrAwsqAQF/IAAoAgwiASAAKAIQRgRAIAAgACgCACgCJBECAA8LIAEsAAAQqwMLDwAgACAAKAIAKAIYEQIACwgAIAAoAhBFCwQAQX8LCAAgABCoBxoLRAECfwJAIAAoAgAgASgCACAAKAIEIgAgASgCBCICIAAgAkkiAxsQ6gEiAQ0AQQEhASAAIAJLDQBBf0EAIAMbIQELIAELvg8CBX8PfiMAQdACayIFJAAgBEL///////8/gyEKIAJC////////P4MhCyACIASFQoCAgICAgICAgH+DIQwgBEIwiKdB//8BcSEIAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgCEH//wFrQYGAfksNAQsgAVAgAkL///////////8AgyINQoCAgICAgMD//wBUIA1CgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhDAwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEMIAMhAQwCCyABIA1CgICAgICAwP//AIWEUARAIAMgAkKAgICAgIDA//8AhYRQBEBCACEBQoCAgICAgOD//wAhDAwDCyAMQoCAgICAgMD//wCEIQxCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEBCACEBDAILIAEgDYRQBEBCgICAgICA4P//ACAMIAIgA4RQGyEMQgAhAQwCCyACIAOEUARAIAxCgICAgICAwP//AIQhDEIAIQEMAgsgDUL///////8/WARAIAVBwAJqIAEgCyABIAsgC1AiBht5IAZBBnStfKciBkEPaxC2AUEQIAZrIQYgBSkDyAIhCyAFKQPAAiEBCyACQv///////z9WDQAgBUGwAmogAyAKIAMgCiAKUCIHG3kgB0EGdK18pyIHQQ9rELYBIAYgB2pBEGshBiAFKQO4AiEKIAUpA7ACIQMLIAVBoAJqIApCgICAgICAwACEIhJCD4YgA0IxiIQiAkIAQoCAgICw5ryC9QAgAn0iBEIAEKABIAVBkAJqQgAgBSkDqAJ9QgAgBEIAEKABIAVBgAJqIAUpA5gCQgGGIAUpA5ACQj+IhCIEQgAgAkIAEKABIAVB8AFqIARCAEIAIAUpA4gCfUIAEKABIAVB4AFqIAUpA/gBQgGGIAUpA/ABQj+IhCIEQgAgAkIAEKABIAVB0AFqIARCAEIAIAUpA+gBfUIAEKABIAVBwAFqIAUpA9gBQgGGIAUpA9ABQj+IhCIEQgAgAkIAEKABIAVBsAFqIARCAEIAIAUpA8gBfUIAEKABIAVBoAFqIAJCACAFKQO4AUIBhiAFKQOwAUI/iIRCAX0iAkIAEKABIAVBkAFqIANCD4ZCACACQgAQoAEgBUHwAGogAkIAQgAgBSkDqAEgBSkDoAEiDSAFKQOYAXwiBCANVK18IARCAVatfH1CABCgASAFQYABakIBIAR9QgAgAkIAEKABIAYgCSAIa2ohBgJ/IAUpA3AiE0IBhiIOIAUpA4gBIg9CAYYgBSkDgAFCP4iEfCIQQufsAH0iFEIgiCICIAtCgICAgICAwACEIhVCAYYiFkIgiCIEfiIRIAFCAYYiDUIgiCIKIBAgFFatIA4gEFatIAUpA3hCAYYgE0I/iIQgD0I/iHx8fEIBfSITQiCIIhB+fCIOIBFUrSAOIA4gE0L/////D4MiEyABQj+IIhcgC0IBhoRC/////w+DIgt+fCIOVq18IAQgEH58IAQgE34iESALIBB+fCIPIBFUrUIghiAPQiCIhHwgDiAOIA9CIIZ8Ig5WrXwgDiAOIBRC/////w+DIhQgC34iESACIAp+fCIPIBFUrSAPIA8gEyANQv7///8PgyIRfnwiD1atfHwiDlatfCAOIAQgFH4iGCAQIBF+fCIEIAIgC358IgsgCiATfnwiEEIgiCALIBBWrSAEIBhUrSAEIAtWrXx8QiCGhHwiBCAOVK18IAQgDyACIBF+IgIgCiAUfnwiCkIgiCACIApWrUIghoR8IgIgD1StIAIgEEIghnwgAlStfHwiAiAEVK18IgRC/////////wBYBEAgFiAXhCEVIAVB0ABqIAIgBCADIBIQoAEgAUIxhiAFKQNYfSAFKQNQIgFCAFKtfSEKQgAgAX0hCyAGQf7/AGoMAQsgBUHgAGogBEI/hiACQgGIhCICIARCAYgiBCADIBIQoAEgAUIwhiAFKQNofSAFKQNgIg1CAFKtfSEKQgAgDX0hCyABIQ0gBkH//wBqCyIGQf//AU4EQCAMQoCAgICAgMD//wCEIQxCACEBDAELAn4gBkEASgRAIApCAYYgC0I/iIQhASAEQv///////z+DIAatQjCGhCEKIAtCAYYMAQsgBkGPf0wEQEIAIQEMAgsgBUFAayACIARBASAGaxCsAyAFQTBqIA0gFSAGQfAAahC2ASAFQSBqIAMgEiAFKQNAIgIgBSkDSCIKEKABIAUpAzggBSkDKEIBhiAFKQMgIgFCP4iEfSAFKQMwIgQgAUIBhiINVK19IQEgBCANfQshBCAFQRBqIAMgEkIDQgAQoAEgBSADIBJCBUIAEKABIAogAiACIAMgBCACQgGDIgR8IgNUIAEgAyAEVK18IgEgElYgASASURutfCICVq18IgQgAiACIARCgICAgICAwP//AFQgAyAFKQMQViABIAUpAxgiBFYgASAEURtxrXwiAlatfCIEIAIgBEKAgICAgIDA//8AVCADIAUpAwBWIAEgBSkDCCIDViABIANRG3GtfCIBIAJUrXwgDIQhDAsgACABNwMAIAAgDDcDCCAFQdACaiQAC8ABAgF/An5BfyEDAkAgAEIAUiABQv///////////wCDIgRCgICAgICAwP//AFYgBEKAgICAgIDA//8AURsNACACQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AUnENACAAIAQgBYSEUARAQQAPCyABIAKDQgBZBEAgASACUiABIAJTcQ0BIAAgASAChYRCAFIPCyAAQgBSIAEgAlUgASACURsNACAAIAEgAoWEQgBSIQMLIAMLnwMBBX9BECECAkBBECAAIABBEE0bIgMgA0EBa3FFBEAgAyEADAELA0AgAiIAQQF0IQIgACADSQ0ACwtBQCAAayABTQRAQeCPC0EwNgIAQQAPC0EQIAFBC2pBeHEgAUELSRsiAyAAakEMahBIIgJFBEBBAA8LIAJBCGshAQJAIABBAWsgAnFFBEAgASEADAELIAJBBGsiBSgCACIGQXhxIAAgAmpBAWtBACAAa3FBCGsiAiAAQQAgAiABa0EPTRtqIgAgAWsiAmshBCAGQQNxRQRAIAEoAgAhASAAIAQ2AgQgACABIAJqNgIADAELIAAgBCAAKAIEQQFxckECcjYCBCAAIARqIgQgBCgCBEEBcjYCBCAFIAIgBSgCAEEBcXJBAnI2AgAgASACaiIEIAQoAgRBAXI2AgQgASACELsFCwJAIAAoAgQiAUEDcUUNACABQXhxIgIgA0EQak0NACAAIAMgAUEBcXJBAnI2AgQgACADaiIBIAIgA2siA0EDcjYCBCAAIAJqIgIgAigCBEEBcjYCBCABIAMQuwULIABBCGoLEgAgAEUEQEEADwsgACABELQHC+UeAg9/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ACEHA0AgASENIAcgDkH/////B3NKDQIgByAOaiEOAkACQAJAAkAgASIHLQAAIgsEQANAAkACQCALQf8BcSIBRQRAIAchAQwBCyABQSVHDQEgByELA0AgCy0AAUElRwRAIAshAQwCCyAHQQFqIQcgCy0AAiALQQJqIgEhC0ElRg0ACwsgByANayIHIA5B/////wdzIhdKDQkgAARAIAAgDSAHEKkBCyAHDQcgCCABNgI8IAFBAWohB0F/IRACQCABLAABQTBrIgpBCUsNACABLQACQSRHDQAgAUEDaiEHQQEhEiAKIRALIAggBzYCPEEAIQwCQCAHLAAAIgtBIGsiAUEfSwRAIAchCgwBCyAHIQpBASABdCIBQYnRBHFFDQADQCAIIAdBAWoiCjYCPCABIAxyIQwgBywAASILQSBrIgFBIE8NASAKIQdBASABdCIBQYnRBHENAAsLAkAgC0EqRgRAAn8CQCAKLAABQTBrIgFBCUsNACAKLQACQSRHDQACfyAARQRAIAQgAUECdGpBCjYCAEEADAELIAMgAUEDdGooAgALIQ8gCkEDaiEBQQEMAQsgEg0GIApBAWohASAARQRAIAggATYCPEEAIRJBACEPDAMLIAIgAigCACIHQQRqNgIAIAcoAgAhD0EACyESIAggATYCPCAPQQBODQFBACAPayEPIAxBgMAAciEMDAELIAhBPGoQhQwiD0EASA0KIAgoAjwhAQtBACEHQX8hCQJ/QQAgAS0AAEEuRw0AGiABLQABQSpGBEACfwJAIAEsAAJBMGsiCkEJSw0AIAEtAANBJEcNACABQQRqIQECfyAARQRAIAQgCkECdGpBCjYCAEEADAELIAMgCkEDdGooAgALDAELIBINBiABQQJqIQFBACAARQ0AGiACIAIoAgAiCkEEajYCACAKKAIACyEJIAggATYCPCAJQQBODAELIAggAUEBajYCPCAIQTxqEIUMIQkgCCgCPCEBQQELIRMDQCAHIRRBHCEKIAEiGCwAACIHQfsAa0FGSQ0LIAFBAWohASAHIBRBOmxqQY+OCWotAAAiB0EBa0EISQ0ACyAIIAE2AjwCQCAHQRtHBEAgB0UNDCAQQQBOBEAgAEUEQCAEIBBBAnRqIAc2AgAMDAsgCCADIBBBA3RqKQMANwMwDAILIABFDQggCEEwaiAHIAIgBhCEDAwBCyAQQQBODQtBACEHIABFDQgLIAAtAABBIHENCyAMQf//e3EiCyAMIAxBgMAAcRshDEEAIRBBjBQhFSARIQoCQAJAAn8CQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIBgsAAAiB0FTcSAHIAdBD3FBA0YbIAcgFBsiB0HYAGsOIQQWFhYWFhYWFhAWCQYQEBAWBhYWFhYCBQMWFgoWARYWBAALAkAgB0HBAGsOBxAWCxYQEBAACyAHQdMARg0LDBULIAgpAzAhGkGMFAwFC0EAIQcCQAJAAkACQAJAAkACQCAUQf8BcQ4IAAECAwQcBQYcCyAIKAIwIA42AgAMGwsgCCgCMCAONgIADBoLIAgoAjAgDqw3AwAMGQsgCCgCMCAOOwEADBgLIAgoAjAgDjoAAAwXCyAIKAIwIA42AgAMFgsgCCgCMCAOrDcDAAwVC0EIIAkgCUEITRshCSAMQQhyIQxB+AAhBwsgESEBIAdBIHEhCyAIKQMwIhoiGVBFBEADQCABQQFrIgEgGadBD3FBoJIJai0AACALcjoAACAZQg9WIBlCBIghGQ0ACwsgASENIAxBCHFFIBpQcg0DIAdBBHZBjBRqIRVBAiEQDAMLIBEhASAIKQMwIhoiGVBFBEADQCABQQFrIgEgGadBB3FBMHI6AAAgGUIHViAZQgOIIRkNAAsLIAEhDSAMQQhxRQ0CIAkgESABayIBQQFqIAEgCUgbIQkMAgsgCCkDMCIaQgBTBEAgCEIAIBp9Iho3AzBBASEQQYwUDAELIAxBgBBxBEBBASEQQY0UDAELQY4UQYwUIAxBAXEiEBsLIRUgGiAREOgDIQ0LIBMgCUEASHENESAMQf//e3EgDCATGyEMIBpCAFIgCXJFBEAgESENQQAhCQwOCyAJIBpQIBEgDWtqIgEgASAJSBshCQwNCyAILQAwIQcMCwsgCCgCMCIBQbGtAyABGyINQf////8HIAkgCUH/////B08bEJEMIgEgDWohCiAJQQBOBEAgCyEMIAEhCQwMCyALIQwgASEJIAotAAANDwwLCyAIKQMwIhlQRQ0BQQAhBwwJCyAJBEAgCCgCMAwCC0EAIQcgAEEgIA9BACAMELgBDAILIAhBADYCDCAIIBk+AgggCCAIQQhqIgc2AjBBfyEJIAcLIQtBACEHA0ACQCALKAIAIg1FDQAgCEEEaiANEIAMIg1BAEgNDyANIAkgB2tLDQAgC0EEaiELIAcgDWoiByAJSQ0BCwtBPSEKIAdBAEgNDCAAQSAgDyAHIAwQuAEgB0UEQEEAIQcMAQtBACEKIAgoAjAhCwNAIAsoAgAiDUUNASAIQQRqIgkgDRCADCINIApqIgogB0sNASAAIAkgDRCpASALQQRqIQsgByAKSw0ACwsgAEEgIA8gByAMQYDAAHMQuAEgDyAHIAcgD0gbIQcMCAsgEyAJQQBIcQ0JQT0hCiAAIAgrAzAgDyAJIAwgByAFEUUAIgdBAE4NBwwKCyAHLQABIQsgB0EBaiEHDAALAAsgAA0JIBJFDQNBASEHA0AgBCAHQQJ0aigCACIABEAgAyAHQQN0aiAAIAIgBhCEDEEBIQ4gB0EBaiIHQQpHDQEMCwsLIAdBCk8EQEEBIQ4MCgsDQCAEIAdBAnRqKAIADQFBASEOIAdBAWoiB0EKRw0ACwwJC0EcIQoMBgsgCCAHOgAnQQEhCSAWIQ0gCyEMCyAJIAogDWsiCyAJIAtKGyIBIBBB/////wdzSg0DQT0hCiAPIAEgEGoiCSAJIA9IGyIHIBdKDQQgAEEgIAcgCSAMELgBIAAgFSAQEKkBIABBMCAHIAkgDEGAgARzELgBIABBMCABIAtBABC4ASAAIA0gCxCpASAAQSAgByAJIAxBgMAAcxC4ASAIKAI8IQEMAQsLC0EAIQ4MAwtBPSEKC0HgjwsgCjYCAAtBfyEOCyAIQUBrJAAgDgt/AgF/AX4gAL0iA0I0iKdB/w9xIgJB/w9HBHwgAkUEQCABIABEAAAAAAAAAABhBH9BAAUgAEQAAAAAAADwQ6IgARCHDCEAIAEoAgBBQGoLNgIAIAAPCyABIAJB/gdrNgIAIANC/////////4eAf4NCgICAgICAgPA/hL8FIAALC2sBAn8CQCAAQX9GDQAgASgCTEEASCEDAkACQCABKAIEIgJFBEAgARDLBRogASgCBCICRQ0BCyACIAEoAixBCGtLDQELIAMNAQ8LIAEgAkEBayICNgIEIAIgADoAACABIAEoAgBBb3E2AgALC4QBAQJ/IwBBEGsiASQAAkAgAL1CIIinQf////8HcSICQfvDpP8DTQRAIAJBgICA8gNJDQEgAEQAAAAAAAAAAEEAEIoMIQAMAQsgAkGAgMD/B08EQCAAIAChIQAMAQsgACABEMUHIQIgASsDACABKwMIIAJBAXEQigwhAAsgAUEQaiQAIAALnwMDAnwBfgJ/IAC9IgVCgICAgID/////AINCgYCAgPCE5fI/VCIGRQRARBgtRFT7Iek/IACZoUQHXBQzJqaBPCABIAGaIAVCAFkiBxuhoCEARAAAAAAAAAAAIQELIAAgACAAIACiIgSiIgNEY1VVVVVV1T+iIAQgAyAEIASiIgMgAyADIAMgA0RzU2Dby3XzvqJEppI3oIh+FD+gokQBZfLy2ERDP6CiRCgDVskibW0/oKJEN9YGhPRklj+gokR6/hARERHBP6AgBCADIAMgAyADIANE1Hq/dHAq+z6iROmn8DIPuBI/oKJEaBCNGvcmMD+gokQVg+D+yNtXP6CiRJOEbunjJoI/oKJE/kGzG7qhqz+goqCiIAGgoiABoKAiA6AhASAGRQRAQQEgAkEBdGu3IgQgACADIAEgAaIgASAEoKOhoCIAIACgoSIAIACaIAcbDwsgAgR8RAAAAAAAAPC/IAGjIgQgBL1CgICAgHCDvyIEIAMgAb1CgICAgHCDvyIBIAChoaIgBCABokQAAAAAAADwP6CgoiAEoAUgAQsLDQAgACABIAJBABDJBwuJBAIDfwF+AkACQAJ/AkACQAJ/IAAoAgQiAiAAKAJoRwRAIAAgAkEBajYCBCACLQAADAELIAAQVwsiAkEraw4DAAEAAQsgAkEtRiABRQJ/IAAoAgQiAyAAKAJoRwRAIAAgA0EBajYCBCADLQAADAELIAAQVwsiA0E6ayIBQXVLcg0BGiAAKQNwQgBTDQIgACAAKAIEQQFrNgIEDAILIAJBOmshASACIQNBAAshBCABQXZJDQACQCADQTBrQQpPDQBBACECA0AgAyACQQpsagJ/IAAoAgQiAiAAKAJoRwRAIAAgAkEBajYCBCACLQAADAELIAAQVwshA0EwayECIAJBzJmz5gBIIANBMGsiAUEJTXENAAsgAqwhBSABQQpPDQADQCADrSAFQgp+fCEFAn8gACgCBCIBIAAoAmhHBEAgACABQQFqNgIEIAEtAAAMAQsgABBXCyIDQTBrIgFBCU0gBUIwfSIFQq6PhdfHwuujAVNxDQALIAFBCk8NAANAAn8gACgCBCIBIAAoAmhHBEAgACABQQFqNgIEIAEtAAAMAQsgABBXC0Ewa0EKSQ0ACwsgACkDcEIAWQRAIAAgACgCBEEBazYCBAtCACAFfSAFIAQbIQUMAQtCgICAgICAgICAfyEFIAApA3BCAFMNACAAIAAoAgRBAWs2AgRCgICAgICAgICAfw8LIAULnTEDEX8HfgF8IwBBMGsiDiQAAkACQCACQQJLDQAgAkECdCICQbyOCWooAgAhESACQbCOCWooAgAhEANAAn8gASgCBCICIAEoAmhHBEAgASACQQFqNgIEIAItAAAMAQsgARBXCyICEM0CDQALQQEhCQJAAkAgAkEraw4DAAEAAQtBf0EBIAJBLUYbIQkgASgCBCICIAEoAmhHBEAgASACQQFqNgIEIAItAAAhAgwBCyABEFchAgsCQAJAIAJBX3FByQBGBEADQCAGQQdGDQICfyABKAIEIgIgASgCaEcEQCABIAJBAWo2AgQgAi0AAAwBCyABEFcLIQIgBkGrDGogBkEBaiEGLAAAIAJBIHJGDQALCyAGQQNHBEAgBkEIRiIHDQEgA0UgBkEESXINAiAHDQELIAEpA3AiFUIAWQRAIAEgASgCBEEBazYCBAsgA0UgBkEESXINACAVQgBTIQIDQCACRQRAIAEgASgCBEEBazYCBAsgBkEBayIGQQNLDQALCyAOIAmyQwAAgH+UELoFIA4pAwghFSAOKQMAIRYMAgsCQAJAAkACQAJAIAYNAEEAIQYgAkFfcUHOAEcNAANAIAZBAkYNAgJ/IAEoAgQiAiABKAJoRwRAIAEgAkEBajYCBCACLQAADAELIAEQVwshAiAGQbDvAGogBkEBaiEGLAAAIAJBIHJGDQALCyAGDgQDAQEAAQsCQAJ/IAEoAgQiAiABKAJoRwRAIAEgAkEBajYCBCACLQAADAELIAEQVwtBKEYEQEEBIQYMAQtCgICAgICA4P//ACEVIAEpA3BCAFMNBSABIAEoAgRBAWs2AgQMBQsDQAJ/IAEoAgQiAiABKAJoRwRAIAEgAkEBajYCBCACLQAADAELIAEQVwsiAkEwa0EKSSACQcEAa0EaSXIgAkHfAEZyRSACQeEAa0EaT3FFBEAgBkEBaiEGDAELC0KAgICAgIDg//8AIRUgAkEpRg0EIAEpA3AiGEIAWQRAIAEgASgCBEEBazYCBAsCQCADBEAgBg0BDAYLDAILA0AgGEIAWQRAIAEgASgCBEEBazYCBAsgBkEBayIGDQALDAQLIAEpA3BCAFkEQCABIAEoAgRBAWs2AgQLC0HgjwtBHDYCACABQgAQkAIMAQsCQCACQTBHDQACfyABKAIEIgcgASgCaEcEQCABIAdBAWo2AgQgBy0AAAwBCyABEFcLQV9xQdgARgRAIwBBsANrIgUkAAJ/IAEoAgQiAiABKAJoRwRAIAEgAkEBajYCBCACLQAADAELIAEQVwshAgJAAn8DQCACQTBHBEACQCACQS5HDQQgASgCBCICIAEoAmhGDQAgASACQQFqNgIEIAItAAAMAwsFIAEoAgQiAiABKAJoRwR/QQEhDyABIAJBAWo2AgQgAi0AAAVBASEPIAEQVwshAgwBCwsgARBXCyICQTBHBEBBASELDAELA0AgGEIBfSEYAn8gASgCBCICIAEoAmhHBEAgASACQQFqNgIEIAItAAAMAQsgARBXCyICQTBGDQALQQEhC0EBIQ8LQoCAgICAgMD/PyEWA0ACQCACIQYCQAJAIAJBMGsiDEEKSQ0AIAJBLkciByACQSByIgZB4QBrQQVLcQ0CIAcNACALDQJBASELIBUhGAwBCyAGQdcAayAMIAJBOUobIQICQCAVQgdXBEAgAiAIQQR0aiEIDAELIBVCHFgEQCAFQTBqIAIQ4QEgBUEgaiAaIBZCAEKAgICAgIDA/T8QayAFQRBqIAUpAzAgBSkDOCAFKQMgIhogBSkDKCIWEGsgBSAFKQMQIAUpAxggFyAZELcBIAUpAwghGSAFKQMAIRcMAQsgAkUgCnINACAFQdAAaiAaIBZCAEKAgICAgICA/z8QayAFQUBrIAUpA1AgBSkDWCAXIBkQtwEgBSkDSCEZQQEhCiAFKQNAIRcLIBVCAXwhFUEBIQ8LIAEoAgQiAiABKAJoRwR/IAEgAkEBajYCBCACLQAABSABEFcLIQIMAQsLAn4gD0UEQAJAAkAgASkDcEIAWQRAIAEgASgCBCICQQFrNgIEIANFDQEgASACQQJrNgIEIAtFDQIgASACQQNrNgIEDAILIAMNAQsgAUIAEJACCyAFQeAAakQAAAAAAAAAACAJt6YQrgIgBSkDYCEXIAUpA2gMAQsgFUIHVwRAIBUhFgNAIAhBBHQhCCAWQgF8IhZCCFINAAsLAkACQAJAIAJBX3FB0ABGBEAgASADEIwMIhZCgICAgICAgICAf1INAyADBEAgASkDcEIAWQ0CDAMLQgAhFyABQgAQkAJCAAwEC0IAIRYgASkDcEIAUw0CCyABIAEoAgRBAWs2AgQLQgAhFgsgCEUEQCAFQfAAakQAAAAAAAAAACAJt6YQrgIgBSkDcCEXIAUpA3gMAQsgGCAVIAsbQgKGIBZ8QiB9IhVBACARa61VBEBB4I8LQcQANgIAIAVBoAFqIAkQ4QEgBUGQAWogBSkDoAEgBSkDqAFCf0L///////+///8AEGsgBUGAAWogBSkDkAEgBSkDmAFCf0L///////+///8AEGsgBSkDgAEhFyAFKQOIAQwBCyARQeIBa6wgFVcEQCAIQQBOBEADQCAFQaADaiAXIBlCAEKAgICAgIDA/79/ELcBIBcgGUKAgICAgICA/z8Q/gshASAFQZADaiAXIBkgBSkDoAMgFyABQQBOIgIbIAUpA6gDIBkgAhsQtwEgAiAIQQF0IgFyIQggFUIBfSEVIAUpA5gDIRkgBSkDkAMhFyABQQBODQALCwJ+IBVBICARa618IhanIgFBACABQQBKGyAQIBYgEK1TGyIBQfEATwRAIAVBgANqIAkQ4QEgBSkDiAMhGCAFKQOAAyEaQgAMAQsgBUHgAmpEAAAAAAAA8D9BkAEgAWsQ/AIQrgIgBUHQAmogCRDhASAFKQPQAiEaIAVB8AJqIAUpA+ACIAUpA+gCIAUpA9gCIhgQkAwgBSkD+AIhGyAFKQPwAgshFiAFQcACaiAIIAhBAXFFIBcgGUIAQgAQrQNBAEcgAUEgSXFxIgFyEOYDIAVBsAJqIBogGCAFKQPAAiAFKQPIAhBrIAVBkAJqIAUpA7ACIAUpA7gCIBYgGxC3ASAFQaACaiAaIBhCACAXIAEbQgAgGSABGxBrIAVBgAJqIAUpA6ACIAUpA6gCIAUpA5ACIAUpA5gCELcBIAVB8AFqIAUpA4ACIAUpA4gCIBYgGxD6AiAFKQPwASIYIAUpA/gBIhZCAEIAEK0DRQRAQeCPC0HEADYCAAsgBUHgAWogGCAWIBWnEI8MIAUpA+ABIRcgBSkD6AEMAQtB4I8LQcQANgIAIAVB0AFqIAkQ4QEgBUHAAWogBSkD0AEgBSkD2AFCAEKAgICAgIDAABBrIAVBsAFqIAUpA8ABIAUpA8gBQgBCgICAgICAwAAQayAFKQOwASEXIAUpA7gBCyEVIA4gFzcDECAOIBU3AxggBUGwA2okACAOKQMYIRUgDikDECEWDAMLIAEpA3BCAFMNACABIAEoAgRBAWs2AgQLIAEhBiACIQcgCSEMIAMhCUEAIQMjAEGQxgBrIgQkAEEAIBFrIg8gEGshFAJAAn8DQAJAIAdBMEcEQCAHQS5HDQQgBigCBCIBIAYoAmhGDQEgBiABQQFqNgIEIAEtAAAMAwsgBigCBCIBIAYoAmhHBEAgBiABQQFqNgIEIAEtAAAhBwUgBhBXIQcLQQEhAwwBCwsgBhBXCyIHQTBGBEADQCAVQgF9IRUCfyAGKAIEIgEgBigCaEcEQCAGIAFBAWo2AgQgAS0AAAwBCyAGEFcLIgdBMEYNAAtBASEDC0EBIQsLIARBADYCkAYCfgJAAkACQAJAIAdBLkYiASAHQTBrIgJBCU1yBEADQAJAIAFBAXEEQCALRQRAIBYhFUEBIQsMAgsgA0UhAQwECyAWQgF8IRYgCEH8D0wEQCANIBanIAdBMEYbIQ0gBEGQBmogCEECdGoiASAKBH8gByABKAIAQQpsakEwawUgAgs2AgBBASEDQQAgCkEBaiIBIAFBCUYiARshCiABIAhqIQgMAQsgB0EwRg0AIAQgBCgCgEZBAXI2AoBGQdyPASENCwJ/IAYoAgQiASAGKAJoRwRAIAYgAUEBajYCBCABLQAADAELIAYQVwsiB0EuRiIBIAdBMGsiAkEKSXINAAsLIBUgFiALGyEVIANFIAdBX3FBxQBHckUEQAJAIAYgCRCMDCIXQoCAgICAgICAgH9SDQAgCUUNBEIAIRcgBikDcEIAUw0AIAYgBigCBEEBazYCBAsgFSAXfCEVDAQLIANFIQEgB0EASA0BCyAGKQNwQgBTDQAgBiAGKAIEQQFrNgIECyABRQ0BQeCPC0EcNgIACyAGQgAQkAJCACEVQgAMAQsgBCgCkAYiAUUEQCAERAAAAAAAAAAAIAy3phCuAiAEKQMIIRUgBCkDAAwBCyAVIBZSIBZCCVVyIBBBHk1BACABIBB2G3JFBEAgBEEwaiAMEOEBIARBIGogARDmAyAEQRBqIAQpAzAgBCkDOCAEKQMgIAQpAygQayAEKQMYIRUgBCkDEAwBCyAPQQF2rSAVUwRAQeCPC0HEADYCACAEQeAAaiAMEOEBIARB0ABqIAQpA2AgBCkDaEJ/Qv///////7///wAQayAEQUBrIAQpA1AgBCkDWEJ/Qv///////7///wAQayAEKQNIIRUgBCkDQAwBCyARQeIBa6wgFVUEQEHgjwtBxAA2AgAgBEGQAWogDBDhASAEQYABaiAEKQOQASAEKQOYAUIAQoCAgICAgMAAEGsgBEHwAGogBCkDgAEgBCkDiAFCAEKAgICAgIDAABBrIAQpA3ghFSAEKQNwDAELIAoEQCAKQQhMBEAgBEGQBmogCEECdGoiASgCACEGA0AgBkEKbCEGIApBAWoiCkEJRw0ACyABIAY2AgALIAhBAWohCAsCQCANQQlOIBVCEVVyIBWnIgogDUhyDQAgFUIJUQRAIARBwAFqIAwQ4QEgBEGwAWogBCgCkAYQ5gMgBEGgAWogBCkDwAEgBCkDyAEgBCkDsAEgBCkDuAEQayAEKQOoASEVIAQpA6ABDAILIBVCCFcEQCAEQZACaiAMEOEBIARBgAJqIAQoApAGEOYDIARB8AFqIAQpA5ACIAQpA5gCIAQpA4ACIAQpA4gCEGsgBEHgAWpBACAKa0ECdEGwjglqKAIAEOEBIARB0AFqIAQpA/ABIAQpA/gBIAQpA+ABIAQpA+gBEP0LIAQpA9gBIRUgBCkD0AEMAgsgECAKQX1sakEbaiICQR5MQQAgBCgCkAYiASACdhsNACAEQeACaiAMEOEBIARB0AJqIAEQ5gMgBEHAAmogBCkD4AIgBCkD6AIgBCkD0AIgBCkD2AIQayAEQbACaiAKQQJ0QeiNCWooAgAQ4QEgBEGgAmogBCkDwAIgBCkDyAIgBCkDsAIgBCkDuAIQayAEKQOoAiEVIAQpA6ACDAELA0AgBEGQBmogCCIBQQFrIghBAnRqKAIARQ0AC0EAIQ0CQCAKQQlvIgJFBEBBACECDAELIAJBCWogAiAVQgBTGyESAkAgAUUEQEEAIQJBACEBDAELQYCU69wDQQAgEmtBAnRBsI4JaigCACIFbSELQQAhB0EAIQZBACECA0AgBEGQBmoiDyAGQQJ0aiIDIAcgAygCACIIIAVuIglqIgM2AgAgAkEBakH/D3EgAiADRSACIAZGcSIDGyECIApBCWsgCiADGyEKIAsgCCAFIAlsa2whByAGQQFqIgYgAUcNAAsgB0UNACABQQJ0IA9qIAc2AgAgAUEBaiEBCyAKIBJrQQlqIQoLA0AgBEGQBmogAkECdGohDyAKQSRIIQYCQANAIAZFBEAgCkEkRw0CIA8oAgBB0en5BE8NAgsgAUH/D2ohCEEAIQMDQCABIQkgA60gBEGQBmogCEH/D3EiC0ECdGoiATUCAEIdhnwiFUKBlOvcA1QEf0EABSAVIBVCgJTr3AOAIhZCgJTr3AN+fSEVIBanCyEDIAEgFT4CACAJIAkgCyAJIBVQGyACIAtGGyALIAlBAWtB/w9xIgdHGyEBIAtBAWshCCACIAtHDQALIA1BHWshDSAJIQEgA0UNAAsgAkEBa0H/D3EiAiABRgRAIARBkAZqIgkgAUH+D2pB/w9xQQJ0aiIBIAEoAgAgB0ECdCAJaigCAHI2AgAgByEBCyAKQQlqIQogBEGQBmogAkECdGogAzYCAAwBCwsCQANAIAFBAWpB/w9xIQkgBEGQBmogAUEBa0H/D3FBAnRqIRIDQEEJQQEgCkEtShshEwJAA0AgAiEDQQAhBgJAA0ACQCADIAZqQf8PcSICIAFGDQAgBEGQBmogAkECdGooAgAiByAGQQJ0QYCOCWooAgAiAkkNACACIAdJDQIgBkEBaiIGQQRHDQELCyAKQSRHDQBCACEVQQAhBkIAIRYDQCABIAMgBmpB/w9xIgJGBEAgAUEBakH/D3EiAUECdCAEakEANgKMBgsgBEGABmogBEGQBmogAkECdGooAgAQ5gMgBEHwBWogFSAWQgBCgICAgOWat47AABBrIARB4AVqIAQpA/AFIAQpA/gFIAQpA4AGIAQpA4gGELcBIAQpA+gFIRYgBCkD4AUhFSAGQQFqIgZBBEcNAAsgBEHQBWogDBDhASAEQcAFaiAVIBYgBCkD0AUgBCkD2AUQayAEKQPIBSEWQgAhFSAEKQPABSEXIA1B8QBqIgcgEWsiCEEAIAhBAEobIBAgCCAQSCIJGyIGQfAATQ0CDAULIA0gE2ohDSABIQIgASADRg0AC0GAlOvcAyATdiEFQX8gE3RBf3MhC0EAIQYgAyECA0AgBEGQBmoiDyADQQJ0aiIHIAYgBygCACIIIBN2aiIHNgIAIAJBAWpB/w9xIAIgB0UgAiADRnEiBxshAiAKQQlrIAogBxshCiAIIAtxIAVsIQYgA0EBakH/D3EiAyABRw0ACyAGRQ0BIAIgCUcEQCABQQJ0IA9qIAY2AgAgCSEBDAMLIBIgEigCAEEBcjYCAAwBCwsLIARBkAVqRAAAAAAAAPA/QeEBIAZrEPwCEK4CIARBsAVqIAQpA5AFIAQpA5gFIBYQkAwgBCkDuAUhGiAEKQOwBSEZIARBgAVqRAAAAAAAAPA/QfEAIAZrEPwCEK4CIARBoAVqIBcgFiAEKQOABSAEKQOIBRCODCAEQfAEaiAXIBYgBCkDoAUiFSAEKQOoBSIYEPoCIARB4ARqIBkgGiAEKQPwBCAEKQP4BBC3ASAEKQPoBCEWIAQpA+AEIRcLAkAgA0EEakH/D3EiAiABRg0AAkAgBEGQBmogAkECdGooAgAiAkH/ybXuAU0EQCACRSADQQVqQf8PcSABRnENASAEQfADaiAMt0QAAAAAAADQP6IQrgIgBEHgA2ogFSAYIAQpA/ADIAQpA/gDELcBIAQpA+gDIRggBCkD4AMhFQwBCyACQYDKte4BRwRAIARB0ARqIAy3RAAAAAAAAOg/ohCuAiAEQcAEaiAVIBggBCkD0AQgBCkD2AQQtwEgBCkDyAQhGCAEKQPABCEVDAELIAy3IRwgASADQQVqQf8PcUYEQCAEQZAEaiAcRAAAAAAAAOA/ohCuAiAEQYAEaiAVIBggBCkDkAQgBCkDmAQQtwEgBCkDiAQhGCAEKQOABCEVDAELIARBsARqIBxEAAAAAAAA6D+iEK4CIARBoARqIBUgGCAEKQOwBCAEKQO4BBC3ASAEKQOoBCEYIAQpA6AEIRULIAZB7wBLDQAgBEHQA2ogFSAYQgBCgICAgICAwP8/EI4MIAQpA9ADIAQpA9gDQgBCABCtAw0AIARBwANqIBUgGEIAQoCAgICAgMD/PxC3ASAEKQPIAyEYIAQpA8ADIRULIARBsANqIBcgFiAVIBgQtwEgBEGgA2ogBCkDsAMgBCkDuAMgGSAaEPoCIAQpA6gDIRYgBCkDoAMhFwJAIBRBAmsgB0H/////B3FODQAgBCAWQv///////////wCDNwOYAyAEIBc3A5ADIARBgANqIBcgFkIAQoCAgICAgID/PxBrIAQpA5ADIAQpA5gDQoCAgICAgIC4wAAQ/gshAiAEKQOIAyAWIAJBAE4iARshFiAEKQOAAyAXIAEbIRcgCSAGIAhHIAJBAEhycSAVIBhCAEIAEK0DQQBHcUUgFCABIA1qIg1B7gBqTnENAEHgjwtBxAA2AgALIARB8AJqIBcgFiANEI8MIAQpA/gCIRUgBCkD8AILIRYgDiAVNwMoIA4gFjcDICAEQZDGAGokACAOKQMoIRUgDikDICEWDAELQgAhFQsgACAWNwMAIAAgFTcDCCAOQTBqJAALwwYCBH8DfiMAQYABayIFJAACQAJAAkAgAyAEQgBCABCtA0UNAAJ/IARC////////P4MhCgJ/IARCMIinQf//AXEiB0H//wFHBEBBBCAHDQEaQQJBAyADIAqEUBsMAgsgAyAKhFALC0UNACACQjCIpyIIQf//AXEiBkH//wFHDQELIAVBEGogASACIAMgBBBrIAUgBSkDECICIAUpAxgiASACIAEQ/QsgBSkDCCECIAUpAwAhBAwBCyABIAJC////////////AIMiCiADIARC////////////AIMiCRCtA0EATARAIAEgCiADIAkQrQMEQCABIQQMAgsgBUHwAGogASACQgBCABBrIAUpA3ghAiAFKQNwIQQMAQsgBEIwiKdB//8BcSEHIAYEfiABBSAFQeAAaiABIApCAEKAgICAgIDAu8AAEGsgBSkDaCIKQjCIp0H4AGshBiAFKQNgCyEEIAdFBEAgBUHQAGogAyAJQgBCgICAgICAwLvAABBrIAUpA1giCUIwiKdB+ABrIQcgBSkDUCEDCyAJQv///////z+DQoCAgICAgMAAhCELIApC////////P4NCgICAgICAwACEIQogBiAHSgRAA0ACfiAKIAt9IAMgBFatfSIJQgBZBEAgCSAEIAN9IgSEUARAIAVBIGogASACQgBCABBrIAUpAyghAiAFKQMgIQQMBQsgCUIBhiAEQj+IhAwBCyAKQgGGIARCP4iECyEKIARCAYYhBCAGQQFrIgYgB0oNAAsgByEGCwJAIAogC30gAyAEVq19IglCAFMEQCAKIQkMAQsgCSAEIAN9IgSEQgBSDQAgBUEwaiABIAJCAEIAEGsgBSkDOCECIAUpAzAhBAwBCyAJQv///////z9YBEADQCAEQj+IIAZBAWshBiAEQgGGIQQgCUIBhoQiCUKAgICAgIDAAFQNAAsLIAhBgIACcSEHIAZBAEwEQCAFQUBrIAQgCUL///////8/gyAGQfgAaiAHcq1CMIaEQgBCgICAgICAwMM/EGsgBSkDSCECIAUpA0AhBAwBCyAJQv///////z+DIAYgB3KtQjCGhCECCyAAIAQ3AwAgACACNwMIIAVBgAFqJAALvwIBAX8jAEHQAGsiBCQAAkAgA0GAgAFOBEAgBEEgaiABIAJCAEKAgICAgICA//8AEGsgBCkDKCECIAQpAyAhASADQf//AUkEQCADQf//AGshAwwCCyAEQRBqIAEgAkIAQoCAgICAgID//wAQa0H9/wIgAyADQf3/Ak8bQf7/AWshAyAEKQMYIQIgBCkDECEBDAELIANBgYB/Sg0AIARBQGsgASACQgBCgICAgICAgDkQayAEKQNIIQIgBCkDQCEBIANB9IB+SwRAIANBjf8AaiEDDAELIARBMGogASACQgBCgICAgICAgDkQa0HogX0gAyADQeiBfU0bQZr+AWohAyAEKQM4IQIgBCkDMCEBCyAEIAEgAkIAIANB//8Aaq1CMIYQayAAIAQpAwg3AwggACAEKQMANwMAIARB0ABqJAALPAAgACABNwMAIAAgAkL///////8/gyACQoCAgICAgMD//wCDQjCIpyADQjCIp0GAgAJxcq1CMIaENwMICxcBAX8gAEEAIAEQ/QIiAiAAayABIAIbCywAIAAgARDVByIBRQRADwsCQCADBEAgACABIAIQsgQMAQsgACABIAIQiwwLC6UBAQV/QdiSCygCACIDBEBB1JILKAIAIQUDQCAAIAUgAkECdGoiBCgCACIGRgRAIAQgATYCACAAEBgPCyAGIAFFckUEQCAEIAE2AgBBACEBCyACQQFqIgIgA0cNAAsLAkAgAUUNAEHUkgsoAgAgA0ECdEEEahA6IgBFDQBB1JILIAA2AgBB2JILQdiSCygCACICQQFqNgIAIAAgAkECdGogATYCAAsLCgAgAGhBACAAGwuYAQEFfyMAQYACayIFJAACQCACQQJIDQAgASACQQJ0aiIHIAU2AgAgAEUNAANAIAcoAgAgASgCAEGAAiAAIABBgAJPGyIEEB8aQQAhAwNAIAEgA0ECdGoiBigCACABIANBAWoiA0ECdGooAgAgBBAfGiAGIAYoAgAgBGo2AgAgAiADRw0ACyAAIARrIgANAAsLIAVBgAJqJAALKQEBfyAAKAIAQQFrEJQMIgEEfyABBSAAKAIEEJQMIgBBIHJBACAAGwsLWwEBfyMAQRBrIgMkACADAn4gAUHAAHFFBEBCACABQYCAhAJx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AgwBCwALAAUgCyACQQJ0aiAKIAJBBHRqNgIAIAJBAWohAgwBCwALAAUgCiACQQR0aiILIAI2AgwgBygCCCENIANCADcDaCADQgA3A2AgAyAIIAJBBXRqIgUpAwg3AzggA0FAayAFKQMQNwMAIAMgBSkDGDcDSCAFKQMAIRogA0IANwMoIAMgGjcDMCADQgA3AyAgA0EwaiALIAkgDSADQSBqQeaKBRCkDiACQQFqIQIMAQsACwALIAYgCCAHEKIOIQULIANB8ABqJAAgBSEKIAQoArgCEBhBuPwIKAIAIQdE////////7/8hEET////////vfyERRP///////+9/IRJE////////7/8hFkEAIQIDQCACIAZHBEAgCCACQQV0aiIFKwMAIRcgCiACQQR0aiILKwMAIRMgBSsDCCEVIAUrAxAhFCAAKAIQKAK0ASENIAwgAkECdGooAgAiCSgCECEDIBYgCysDCCIYIAUrAxigIg8QIiEWIBAgEyAUoCIUECIhECASIBggFaAiFRAqIRIgESATIBegIhMQKiERAkAgAiANSARAIAMgDzkDKCADIBQ5AyAgAyAVOQMYIAMgEzkDEEGM4QotAABBAkkNASABELMCIAkQICEDIAQgDzkD0AEgBCAUOQPIASAEIBU5A8ABIAQgEzkDuAEgBCADNgKwASAHQdy0BCAEQbABahAyDAELIAMgFSAPoEQAAAAAAADgP6I5AxggAyATIBSgRAAAAAAAAOA/ojkDEEGM4QotAABBAkkNACABELMCIAkQICEDIAkoAhAiBSsDECEPIAQgBSsDGDkD8AEgBCAPOQPoASAEIAM2AuABIAdB7rQEIARB4AFqEDILIAJBAWohAgwBCwsCQCAAKAIQIgIoAgwiA0UNACADKwMYIg8gBkUEQCADKwMgIRZEAAAAAAAAAAAhEUQAAAAAAAAAACESIA8hEAsgECARoaEiD0QAAAAAAAAAAGRFDQAgECAPRAAAAAAAAOA/oiIPoCEQIBEgD6EhEQsgECAEKAKoArhEAAAAAAAA4D+iRAAAAAAAAAAAIAFBAEobIg+gIRQgESAPoSEQIBYgAisDWCAPoKAhESASIAIrAzggD6ChIQ9BjOEKLQAAQQJPBEAgARCzAiAAECAhAiAEIBE5A6ABIAQgFDkDmAEgBCAPOQOQASAEIBA5A4gBIAQg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uPwIKAIAQai0BCACEDILIAJB8ABqJAALswYCCn8FfCMAQdABayIBJAACQCAAKAJAIgRFDQAgBEEEEOEEIQUgAEEwaiIHIQMDQCACIARGBEAgBSAEQQRB6AMQlQFBACECIARBCBDhBCEDA0AgAiAERgRAAn8gACsDCCIMIAArAwBhBEAgASAAKQMoNwOIASABIAApAyA3A4ABIAEgACkDGDcDeCABIAApAxA3A3AgBCADIAFB8ABqELYMDAELIAArAyAhCyAAKwMoIQ0gASAAKwMQOQOwASABIAArAxg5A7gBIAEgCyANIAugIA0gC6EiCyALoiAMRAAAAAAAABBAoqCfoUQAAAAAAADgP6IiC6E5A8ABIAEgDSALoTkDyAEgASABKQO4ATcDmAEgASABKQPAATcDoAEgASABKQPIATcDqAEgASABKQOwATcDkAEgBCADIAFBkAFqELYMCyEIQbj8CCgCACEJQYzhCi0AAARAIAArAxAhCyAAKwMYIQ0gACsDICEMIAEgACsDKDkDaCABIAw5A2AgASANOQNYIAEgCzkDUCAJQcu0BCABQdAAahAyCyABQUBrIQpBACECA0AgAiAERgRAIAUQGCADEBggCBAYQQAhAgNAIAIgBEYNByAHKAIAIgAoAjxFBEAgABC0DAsgAkEBaiECIABBNGohBwwACwALIAUgAkECdGooAgAiBiAIIAJBBXRqIgApAwA3AxAgBiAAKQMYNwMoIAYgACkDEDcDICAGIAApAwg3AxhBjOEKLQAABEAgAyACQQN0aisDACEPIAArAwAhCyAAKwMIIQ0gACsDECEMIAEgACsDGCIOOQNIIAogDDkDACABIA05AzggASALOQMwIAEgDCAOojkDKCABIA0gDkQAAAAAAADgP6IiDqA5AyAgASALIAxEAAAAAAAA4D+iIgygOQMYIAEgDSAOoTkDECABIAsgDKE5AwggASAPOQMAIAlB0/wEIAEQMgsgAkEBaiECDAALAAUgAyACQQN0aiAFIAJBAnRqKAIAKwMAOQMAIAJBAWohAgwBCwALAAUgBSACQQJ0aiADKAIAIgM2AgAgAkEBaiECIANBNGohAwwBCwALAAsgAUHQAWokAAvYAgIGfwJ8ELEMIgYgADYCOCAGQQA2AjxBASEEA0AgACgCECIFKAK0ASAETgRAIAUoArgBIARB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8ABqEB4aCyAAEBshAgNAIAIEQCACKAIQQQA2ArgBIAAgAhAcIQIMAQsLQYzhCi0AAEECTwRAIAEoAhAhAiAIIAAQIDYCZCAIIAI2AmBBuPwIKAIAQeuCBCAIQeAAahAeGgsgASABKAIQQQFqNgIQIAhB1PYJKAIANgJcQd+vASAIQdwAakEAEOQBIgpBrCtBmAJBARA1GkE4EFQhAiAKKAIQIAI2AowBIAAQNyECIAooAhAgAigCEC8BsAE7AbABIAAgCkHI4gAQ1wcgACAKQYbhABDXByAAIApBn94BENcHIAhBmAFqIQcgCEGQAWohBiAIQYgBaiEJQQEhDANAIAAoAhAiAigCtAEgDE4EQCACKAK4ASAMQQJ0aigCACIDEIEFIAogAxAgENYHIgQoAhAiAiALNgKIASACIAM2AugBAkACQCABKAIEIgVFBEBE////////738hG0T////////v/yEaDAELRP///////+9/IRtE////////7/8hGiADIAUQQSICLQAARQ0AIAEoAgAgA0cEQCACIAMoAkQgBRBBEElFDQELIAhBADoArAEgCCAJNgJEIAggBjYCSCAIIAc2AkwgCCAIQawBajYCUCAIIAhBgAFqNgJAIAJBhMgBIAhBQGsQT0EETgRAIAgrA5gBIRogCCsDkAEhHiAIKwOIASEbIAgrA4ABIRxBoOEKKwMAIh1EAAAAAAAAAABkBEAgHiAdoyEeIBsgHaMhGyAcIB2jIRwgGiAdoyEaCyAEKAIQQQNBAkEBIAgtAKwBIgJBP0YbIAJBIUYbOgCHAQwCCyADECAhBSAIIAI2AjQgCCAFNgIwQeX0AyAIQTBqECsLRP///////+//IR5E////////738hHAsgC0EBaiELIAMQGyECA0AgAgRAIAIoAhAgBDYCuAEgAyACEBwhAgwBCwsgBCgCECICLQCHAQRAIAIoApQBIgIgGiAboEQAAAAAAADgP6I5AwggAiAeIBygRAAAAAAAAOA/ojkDAAsgDEEBaiEMDAELCyAAEBshAgJ/AkADQCACBEACQCACKAIQIgMoArgBDQACQCADKALoASIERQ0AIAQgACgCECgCjAEoAjBGDQAgAhAgIQEgABAgIQAgCCACKAIQKALoARAgNgIoIAggADYCJCAIIAE2AiBB6YQFIAhBIGoQNgwECyADIAA2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AgAgACABQZSFCygCAEECdGo2AgQLQQAhAQNAQZSFCygCACICIAFNBEAgACgCACACQQRB1wMQlQEgACAAKAIANgJIBSAAKAIAIAFBAnRqQciFCygCACABQeAAbGoiAkEIajYCACACQQE2AhwgAkIANwNYIAFBAWohAQwBCwsLNwECfyMAQSBrIgMkACAAEDhBAk4EQCAAIAEgA0EIaiIBEJkNIAAgARD1AyECCyADQSBqJAAgAgvmAgIGfwR8IAAQlQ0gACgCBCEFIAAoAgAhAANAAkAgBSAAIgFLBEAgAEEEaiIAIAVPDQIgASgCACIDKwMAIgcgASgCBCICKwMAYg0CIAMrAwgiCCACKwMIYg0CIAFBCGohA0ECIQICQANAIAMgBU8NASADKAIAIgQrAwghCSAEKwMAIgogB2IgCCAJYnJFBEAgA0EEaiEDIAJBAWohAgwBCwsgCCAJYg0AIAogB6EgArijIQdBASEBA0AgACADTw0DIAAoAgAiAiABuCAHoiACKwMAoDkDACAAQQRqIQAgAUEBaiEBDAALAAtByIULKAIAIQIDQCAAIANPDQIgACgCACIEIAEoAgAiBisDACACIAYoAhBB4ABsaiIGKwM4IAYrAyihIAIgBCgCEEHgAGxqIgQrAzggBCsDKKGgRAAAAAAAAOA/oqA5AwAgAEEEaiEAIAFBBGohAQwACwALDwsgAyEADAALAAuPAQEBfwNAQZSFCygCACAATQRAQcyFC0EANgIAQdCFCygCABAYQdSFCygCABAYQdiFCygCABAYQdSFC0EANgIAQdCFC0EANgIAQdiFC0EANgIAQciFCygCACIABH8gACgCWBAYQciFCygCAAVBAAsQGAVByIULKAIAIABB4ABsaigCTBAYIABBAWohAAwBCwsLvQMCB38BfiMAQTBrIgUkAEHnnQEhCAJAAkAgAUUNACABLQAARQ0AQZzQCCEEA0ACQAJAIAQoAgQiA0UEQEHc0QghBAwBCyABIAMQLkUgBCgCACIGQRJGBH8gASADIAMQPBCBAgVBAQtFckUNASAEKAIIIgdFBEAgBSADNgIgQcXDBCAFQSBqECsgAkHP/AA2AgQgAkEBNgIAQZzQCCEEDAELIAIgBzYCBCACIAY2AgAgBkESRw0AIAQoAgQQPCABaiMAQRBrIgMkACADIANBDGo2AgBB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QYiFC0GIhQsoAgBBAWoiAjYCACAAIAI2AiwgABCXCANAAkAgABCVCCICRQ0AIAIQuAJEAAAAAAAAAABjRQ0AIABBMGoQywQgAigCACIBKAIgIgMoAjAgAygCNEYEQCADEJcIIAIoAgAhAQsgAisDCCEHIAErAxghCCACKAIEKwMYIQkgACgCACEBIAAoAgQhBCADKAIAIQUgAygCBCEGQYiFC0GIhQsoAgBBAWo2AgAgACADIAQgAWsgBiAFa0kiBBshASADIAAgBBsiACABIAIgCSAIoSAHoSIHmiAHIAQbEPEFIAAQlQgaIAEQlQgaIABBMGogAUEwahDxDSAAQYiFCygCADYCLCABQQE6ACgMAQsLC+wBAQN/IwBBEGsiAyQAIAMgATYCDCABQQE6ACQgASgCOCEEIAEoAjQhAQNAIAEgBEcEQCABKAIAKAIEIgUtACRFBEAgACAFIAIQ6g0LIAFBBGohAQwBCwsjAEEQayIAJAAgAEEBNgIIIABBDBCLATYCDCAAKAIMIgFBADYCBCABQQA2AgAgASADKAIMNgIIIAAoAgwhASAAQQA2AgwgACgCDCIEBEAgACgCCBogBBAYCyAAQRBqJAAgASACNgIAIAEgAigCBCIANgIEIAAgATYCACACIAE2AgQgAiACKAIIQQFqNgIIIANBEGokAAsZACAAQTxqEIICGiAAQTBqEIICGiAAEIICCxoAIABBgICAgARPBEAQgwgACyAAQQJ0EIsBC5EBAQN/IAEoAgQhAiAAKAIAIQQgACgCBCEDA0AgAyAERkUEQCACQQRrIgIgA0EEayIDKAIANgIADAELCyABIAI2AgQgACgCACEDIAAgAjYCACABIAM2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIAC34BAn8CQCADQQJIDQAgACADQQJrQQF2IgNBAnRqIgQoAgAgAUEEayIBKAIAIAIoAgARAABFDQAgASgCACEFA0ACQCABIAQiASgCADYCACADRQ0AIAAgA0EBa0EBdiIDQQJ0aiIEKAIAIAUgAigCABEAAA0BCwsgASAFNgIACwtEAQF/IwBBEGsiASQAIAFBADYCDCAAIAAoAgAoAgBBABDwBSAAIAAoAgAoAgBBACABQQxqEJEIGiABKAIMIAFBEGokAAtOAQJ/IwBB0ABrIgIkACAAKAJAIgNBABCNBUG49glHBEAgA0G49gkQjQUaCyACIAE3AwggACgCQCIAIAJBBCAAKAIAEQQAIAJB0ABqJAALyQQBCX8gACICKAIEIQYgASgCACIAIQMgASgCBCEBIwBBIGsiCSQAAkAgASAAa0ECdSIFQQBMDQAgAigCCCACKAIEIgBrQQJ1IAVOBEACQCAAIAZrIgRBAnUiCCAFTgRAIAMgBUECdGohBwwBCyABIAMgBGoiB2shBCABIAdHBEAgACAHIAQQUxoLIAIgACAEajYCBCAIQQBMDQILIAAhBCAGIAIoAgQiASAGIAVBAnRqIgprIghqIQUgASEAA0AgBCAFTQRAIAIgADYCBCABIApHBEAgASAIayAGIAgQUxoLBSAAIAUoAgA2AgAgAEEEaiEAIAVBBGohBQwBCwsgAyAHRg0BIAYgAyAHIANrEFMaDAELIAlBDGogAiAAIAIoAgBrQQJ1IAVqEO4FIAYgAigCAGtBAnUgAkEIahCOCCIBKAIIIgAgBUECdGohBANAIAAgBEcEQCAAIAMoAgA2AgAgA0EEaiEDIABBBGohAAwBCwsgASAENgIIIAIoAgAhBCAGIQAgASgCBCEDA0AgACAERwRAIANBBGsiAyAAQQRrIgAoAgA2AgAMAQsLIAEgAzYCBCACKAIEIgUgBmshACABKAIIIQQgBSAGRwRAIAQgBiAAEFMaIAEoAgQhAwsgASAAIARqNgIIIAIoAgAhACACIAM2AgAgASAANgIEIAIoAgQhACACIAEoAgg2AgQgASAANgIIIAIoAgghACACIAEoAgw2AgggASAANgIMIAEgASgCBDYCACABEI0ICyAJQSBqJAAgAhDzDQtjAgJ/AXwgAigCBCIDKwMYIAIoAgAiBCsDGKEgAisDCKEhBSADKAIgIQMgBCgCICEEIAAoAgQgACgCAGsgASgCBCABKAIAa0kEQCADIAQgAiAFEPEFDwsgBCADIAIgBZoQ8QUL4gIBCX8gACgCACEFIAAoAgQhACMAQRBrIgMkACADQb8DNgIMAkAgACAFa0ECdSIGQQJIDQAgBkECa0EBdiEIA0AgCEEASA0BIAUgCEECdGohBAJAIAZBAkgNACAGQQJrQQF2IgkgBCAFayIAQQJ1SA0AIAUgAEEBdSIBQQFyIgJBAnRqIQAgBiABQQJqIgFKBEAgASACIAAoAgAgACgCBCADKAIMEQAAIgEbIQIgAEEEaiAAIAEbIQALIAAoAgAgBCgCACADKAIMEQAADQAgBCgCACEBA0ACQCAEIAAiBCgCADYCACACIAlKDQAgBSACQQF0IgdBAXIiAkECdGohACAGIAdBAmoiB0oEQCAHIAIgACgCACAAKAIEIAMoAgwRAAAiBxshAiAAQQRqIAAgBxshAAsgACgCACABIAMoAgwRAABFDQELCyAEIAE2AgALIAhBAWshCAwACwALIANBEGokAAtGAgF8An8gACgCBCEDIAAoAgAhAAN8IAAgA0YEfCABBSAAKAIAIgIrAwggAisDGKEgAisDEKIgAaAhASAAQQRqIQAMAQsLC2wCAX8CfCMAQRBrIgIkACACIAE2AgwgASAANgIgIAAgAkEMahDBASAAIAIoAgwiASsDECIDIAArAxigIgQ5AxggACADIAErAwggASsDGKGiIAArAyCgIgM5AyAgACADIASjOQMQIAJBEGokAAsnACAAIAAoAhhFIAAoAhAgAXJyIgE2AhAgACgCFCABcQRAEJMBAAsLMAEDfyAAKAIEIgQgAUEEaiICayEDIAIgBEcEQCABIAIgAxBTGgsgACABIANqNgIEC34BA38gACgCACIBQTRqIAEoAjghAyABKAI0IQEDQAJAIAEgA0YNACABKAIAIABGDQAgAUEEaiEBDAELCyABEPcNIAAoAgQiAUEoaiABKAIsIQMgASgCKCEBA0ACQCABIANGDQAgASgCACAARg0AIAFBBGohAQwBCwsgARD3DQvqAQEIfyAAQay1AxDTAiECIAEoAgAhBiMAQRBrIgMkACADQQhqIgQgAhC2BRoCQCAELQAARQ0AIAIgAigCAEEMaygCAGoiBSgCBBogA0EEaiIEIAUQUSAEEPMLIQUgBBBOIAMgAhDyCyEHIAIgAigCAEEMaygCAGoiCBDxCyEJIAMgBSAHKAIAIAggCSAGIAUoAgAoAhARCAA2AgQgBBC0BUUNACACIAIoAgBBDGsoAgBqQQUQtwULIANBCGoQtQUgA0EQaiQAIAJBv+YBENMCIAEoAiArAxAgASsDGKAQrQdB5rQDENMCGiAACw4AIABBpwVBqMEBENAKCzgBAX8gABAbIQEDQCABBEAgASgC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BEAgBSAAKAIQIgAoAugBQcgAbGoiASABKwMYIgkgByAHIAljGzkDGCAFIAAoAuwBQcgAbGoiACAAKwMQIgcgCCAHIAhkGzkDEAsgAwtwAQJ/QQEhBANAIAQgACgCECIDKAK0AUpFBEAgAygCuAEgBEECdGooAgAgASACELQOIARBAWohBAwBCwsgAyABIAMrAxCiOQMQIAMgAiADKwMYojkDGCADIAEgAysDIKI5AyAgAyACIAMrAyiiOQMoC+UEAgh/BHxBASECA0AgAiAAKAIQIgMoArQBSkUEQCADKAK4ASACQQJ0aigCACABELUOIAJBAWohAgwBCwsgABBjIQIgACgCECEDAkAgACACRgRAIAMoAuwBIQVEAADA////38EhCkQAAMD////fQSELIAMoAugBIgghBANAIAQgBUoEQCADKAK0ASIAQQAgAEEAShtBAWohAEEBIQIDQCAAIAJGDQQgCiADKAK4ASACQQJ0aigCACgCECIEKwMgRAAAAAAAACBAoCIMIAogDGQbIQogCyAEKwMQRAAAAAAAACDAoCIMIAsgDGMbIQsgAkEBaiECDAALAAUCQCADKALEASAEQcgAbGoiACgCACIGRQ0AQQEhAiAAKAIEIgcoAgAiAEUNAANAIAAoAhAiAC0ArAEiCUUgAiAGTnJFBEAgByACQQJ0aigCACEAIAJBAWohAgwBCwsgCQ0AIAZBAmshAiAAKwMQIAArA1ihIQwgByAGQQJ0akEEayEAA0AgACgCACgCECIALQCsAQRAIAcgAkECdGohACACQQFrIQIMAQsLIAogACsDECAAKwNgoCINIAogDWQbIQogCyAMIAsgDGMbIQsLIARBAWohBAwBCwALAAsgAygC6AEhCCADKALsASEFIAMoAoQCKAIQKAL0AbchCiADKAKAAigCECgC9AG3IQsLIAEoAhAoAsQBIgAgBUHIAGxqKAIEKAIAKAIQKwMYIQwgACAIQcgAbGooAgQoAgAoAhArAxghDSADIAo5AyAgAyALOQMQIAMgDSADKwOAAaA5AyggAyAMIAMrA3ihOQMYC6IBAgJ8AX8CQAJ/Qf////8HIABBqiEQJiIDRQ0AGiAAEDghACADELECIQEgAEEASA0BQQAgAUQAAAAAAAAAAGMNABogALghAiABRAAAAAAAAPA/ZARAQf////8HRAAAwP///99BIAGjIAJjDQEaCyABIAKiIgGZRAAAAAAAAOBBYwRAIAGqDwtBgICAgHgLDwtB3Z0DQZWEAUHKAEG83wAQAAALiAICB38BfCMAQRBrIgQkACAAQfzhCigCAEEIQQAQZCAAEP8FtyEIIAAoAhAiASgC6AEhAyABKAKEAiEFIAEoAoACIQYDQCADIAEoAuwBSkUEQAJAIANByABsIgcgASgCxAFqIgIoAgBFDQAgAigCBCgCACICRQRAIAAQICEBIAQgAzYCBCAEIAE2AgBB1L0EIAQQNgwBCyAGIAIgAigCECsDWCAIoCABKwNgoEEAEKQBGiAAKAIQIgEoAsQBIAdqIgIoAgQgAigCAEECdGpBBGsoAgAiAiAFIAIoAhArA2AgCKAgASsDQKBBABCkARoLIANBAWohAyAAKAIQIQEMAQsLIARBEGokAAvbAgIKfwF8IABB/OEKKAIAQQhBABBkIQdBASEBA0AgACgCECIFKAK0ASIEIAFIBEAgB7chC0EBIQEDQCABIARKRQRAIAFBAnQhCSABQQFqIgchAQNAIAUoArgBIgIgCWooAgAhAyABIARKRQRAIAIgAUECdGooAgAiBiADIAMoAhAoAugBIAYoAhAoAugBSiICGyIIKAIQIgooAuwBIAMgBiACGyIDKAIQIgYoAugBIgJOBEAgCCADIAJByABsIgIgCigCxAFqKAIEKAIAKAIQKAL4ASAGKALEASACaigCBCgCACgCECgC+AFIIgIbKAIQKAKEAiADIAggAhsoAhAoAoACIAtBABCkARogACgCECIFKAK0ASEECyABQQFqIQEMAQsLIAMQuA4gACgCECIFKAK0ASEEIAchAQwBCwsFIAUoArgBIAFBAnRqKAIAEP8FIAFBAWohAQwBCwsLnAECA38BfCAAQfzhCigCAEEIQQAQZCAAEP8FtyEEQQEhAQNAIAEgACgCECICKAK0AUpFBEAgAigCuAEgAUECdGooAgAiAhD/BSAAKAIQIgMoAoACIAIoAhAoAoACIAMrA2AgBKBBABCkARogAigCECgChAIgACgCECIDKAKEAiADKwNAIASgQQAQpAEaIAIQuQ4gAUEBaiEBDAELCwulAwIHfwF8IABB/OEKKAIAQQhBABBktyEIIAAoAhAiASgC6AEhBEEBIQUDQCABKALsASAESARAA0AC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4EFjBEAgEaoMAQtBgICAgHgLIghBACAIQQBKIgcbIglBAWq4IAUoApwBEKQBGiADIAEgAUEwayIFIAEoAgBBA3FBAkYbKAIoQQBBACAIayAHGyIIQQFquCABKAIQKAKcARCkARogAygCECABIAYgASgCAEEDcSIDQQNGGygCKCgCECgC9AEgCUF/c2oiBiABIAUgA0ECRhsoAigoAhAoAvQBIAhBf3NqIgEgASAGShs2AvQBIAJBAWohAiAEKAIQIgUoApACIQEMAAsACyAFQbgBaiEBDAELCwJAIAAoAhAiASgCtAFBAEoEfyAAELsOIAAQug4gABC5DiAAELgOIAAoAhAFIAELKAIIIgEoAlRBA0cNACABKwNAIhEgASsDSCISokQAAAAAAADwP2UNACAAELcOIAAoAhAiASgCgAIgASgChAIgEiARIAEoAnRBAXEbIhFEAAAAAOD/70AgEUQAAAAA4P/vQGMbQegHEKQBGgsCQCAAQQIgABC2DhDWBEUNACAAKAIQIgIoAugBIQUDQAJAAkAgAigC7AEiCyAFTgRAQQAhByACKALEASAFQcgAbGoiCCgCACIJQQAgCUEAShshA0EAIQEDQCABIANGDQNBACEEAkAgCCgCBCABQQJ0aigCACIHKAIQIgooApACIgxFDQADQCAMIARBAnRqKAIAIgZFDQEgBkFQQQAgBigCAEEDcSINQQJHG2ooAigoAhAoAvQBIAVKDQQgBEEBaiEEIAZBMEEAIA1BA0cbaigCKCgCECgC9AEgBUwNAAsMAwtBACEEAkAgCigCiAIiCkUNAANAIAogBEECdGooAgAiBkUNASAGQTBBACAGKAIAQQNxIgxBA0cbaigCKCgCECgC9AEgBUoNBCAEQQFqIQQgBSAGQVBBACAMQQJHG2ooAigoAhAoAvQBTg0ACwwDCyABQQFqIQEMAAsACyAAQQIgABC2DhDWBEUNA0GWoANBhMQBQYsBQZ/oABAAAAsgASEDCwJAIAdFIAMgCUhyRQRAIAhBzABBvH8gBSALSBtqKAIAKAIAIgJFDQEgCCgCBCgCACEDIAAQuwIiASgCEEECOgCsASABIANEAAAAAAAAAABBABCkARogASACRAAAAAAAAAAAQQAQpAEaIAEoAhAgAygCECgC9AEiASACKAIQKAL0ASICIAEgAkgbNgL0ASAA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IAQgAisDADkDKCAEIAg3AyAgAEGr1gQgBEEgahAyIANBAWohAwwACwALAkAgBAJ8IAEoAhAgA0EobGoiBSgCFCICIAUoAhgiBkYEQCACKwMoIAIrAzigRAAAAAAAAOA/oiEHIAIrAzAgAisDQKBEAAAAAAAA4D+iDAELIAUgBiACIAItAABBAXEbIgIoAiQiBigCBEYEQCACKwMoIAIrAzigRAAAAAAAAOA/oiEHIAIrA0AMAQsgBSAGKAIMRgRAIAIrAyggAisDOKBEAAAAAAAA4D+iIQcgAisDMAwBCyAFIAYoAghGBEAgAisDKCEHIAIrAzAgAisDQKBEAAAAAAAA4D+iDAELIAYoAgAgBUcNASACKwM4IQcgAisDMCACKwNAoEQAAAAAAADgP6ILOQMQIAQgBzkDCCAEIAM2AgAgAEHD1gQgBBAyIANBAWohAwwBCwtBhp8EQQAQNhAoAAtB9OEDIAAQjQEaIARBMGokAAvmVAIafwp8IwBB0AJrIgckACAAELoCQQgQGSEYQbzhCi0AAEEBRgRAEM0DIRkLIABB7cgBECYhAkHggwtBADYCAAJAIAJFDQAgAi0AACIFRQ0AA0ACQEHggwsCfwJAAkACQAJAIAVB/wFxIghB7QBrDgcBBQUFBQIDAAtBCCAIQeMARg0DGiAIQekARwRAIAgNBQwHC0ESDAMLQQEMAgtBBAwBC0ECCyAGciIGNgIACyACQQFqIgItAAAhBQwACwALIAEEQEGL6QRBABArCwJ/IwBB4AJrIgMkAEEBQRwQGSEOAkAgACIIEDhBAE4EQCAOIAAQOCIKNgIEIA4gCkHIABAZIgY2AgxE////////738hHET////////v/yEfIAAQGyEFRP///////+//IR1E////////738hHiAGIQEDQCAFBEAgBSgCECIAKwMQISIgACsDYCEhIAArA1ghIyAAKwMYISAgACsDUCEkIAEgASgCAEEBcjYCACABICAgJEQAAAAAAADgP6JEAAAAAAAA8D8QIiIkoCIlOQNAIAEgICAkoSIgOQMwIAEgIiAjICGgRAAAAAAAAOA/okQAAAAAAADwPxAiIiGgIiM5AzggASAiICGhIiI5AyggACABNgKAASABQcgAaiEBIB8gJRAiIR8gHCAgECohHCAdICMQIiEdIB4gIhAqIR4gCCAFEBwh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Amo2AgBBJQ8LIAJBFUYNDwsgAyAANgIADBELIAMgAUEBajYCAEEVDwsgAyABQQFqNgIAQREPCyACIAFBAWoiAWsiBkEATA0MQQAhBQJAAkACQAJAAkACQCAHIAEtAABqLQAAIghBBWsOAwECAwALIAhBFmsOAwMEAwQLIAZBAUYNDiAAIAEgACgC4AIRAAANAyAAIAEgACgC1AIRAABFDQNBAiEEDAILIAZBA0kNDSAAIAEgACgC5AIRAAANAiAAIAEgACgC2AIRAABFDQJBAyEEDAELIAZBBEkNDCAAIAEgACgC6AIRAAANASAAIAEgACgC3AIRAABFDQFBBCEECyABIARqIQEDQCACIAFrIgZBAEwEQEFsDwtBASEEQRQhBQJAAkACQAJAAkAgByABLQAAai0AAEEFaw4gAAECBAYGBgQEBAQEBAQEBAYDBAMDAwMEBAYEBgQEBAYECyAGQQFGDRAgACABIAAoAuACEQAADQMgACABIAAoAsgCEQAARQ0DQQIhBAwCCyAGQQNJDQ8gACABIAAoAuQCEQAADQIgACABIAAoAswCEQAARQ0CQQMhBAwBCyAGQQRJDQ4gACABIAAoAugCEQAADQEgACABIAAoAtACEQAARQ0BQQQhBAsgASAEaiEBDAELC0EAIQULIAMgATYCACAFDwsgAiABa0ECSA0JIAAgASAAKALgAhEAAA0IQQIhBCAAIAEgACgC1AIRAAANAiAAIAEgACgCyAIRAABFDQgMBQsgAiABa0EDSA0IIAAgASAAKALkAhEAAA0HQQMhBCAAIAEgACgC2AIRAAANASAAIAEgACgCzAIRAABFDQcMBAsgAiABa0EESA0HIAAgASAAKALoAhEAAA0GQQQhBCAAIAEgACgC3AIRAABFDQELDAMLIAAgASAAKALQAhEAAEUNBAwBC0ETIQUMAQtBEyEFCyABIARqIQQCQAJAAkACQANAIAIgBCIBayIEQQBMDQQCQAJAAkACQAJAAkACQCAHIAEtAABqLQAAQQVrDiABAgMKBAQECgoKCQoKCgoEBAAFAAAAAAoKBAoECAYEBAoLIAFBAWohBAwGCyAEQQFGDQwgACABIAAoAuACEQAADQggACABIAAoAsgCEQAARQ0IIAFBAmohBAwFCyAEQQNJDQsgACABIAAoAuQCEQAADQcgACABIAAoAswC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AgAgAiEIA0AgAyAIRgRAIAMhCAwGCyAILQAARQ0FIAhBAWohCAwACwALIAQgAjYCAEEBDAILIAQoAgAhAgsgAiADRwsgEUEQaiQADwsgBygCACEFDAALAAumBQEMfyMAQRBrIg8kACACIQgDQAJAIAMgCEYEQCADIQgMAQsgCCgCAEUNACAIQQRqIQgMAQsLIAcgBTYCACAEIAI2AgACQANAAkACQCACIANGIAUgBkZyBH8gAgUgDyABKQIANwMIQQEhECAAKAIIIQkjAEEQayIOJAAgDiAJNgIMIA5BCGogDkEMahCPAiAFIQkgBiAFayEKQQAhDCMAQRBrIhEkAAJAIAQoAgAiC0UgCCACa0ECdSISRXINACAKQQAgBRshCgNAIBFBDGogCSAKQQRJGyALKAIAELQHIg1Bf0YEQEF/IQwMAgsgCQR/IApBA00EQCAKIA1JDQMgCSARQQxqIA0QHxoLIAogDWshCiAJIA1qBUEACyEJIAsoAgBFBEBBACELDAILIAwgDWohDCALQQRqIQsgEkEBayISDQALCyAJBEAgBCALNgIACyARQRBqJAAQjgIgDkEQaiQAAkACQAJAAkAgDEEBag4CAAgBCyAHIAU2AgADQCACIAQoAgBGDQIgBSACKAIAIAAoAggQlAciAUF/Rg0CIAcgBygCACABaiIFNgIAIAJBBGohAgwACwALIAcgBygCACAMaiIFNgIAIAUgBkYNASADIAhGBEAgBCgCACECIAMhCAwGCyAPQQRqIgJBACAAKAIIEJQHIghBf0YNBCAGIAcoAgBrIAhJDQYDQCAIBEAgAi0AACEFIAcgBygCACIJQQFqNgIAIAkgBToAACAIQQFrIQggAkEBaiECDAELCyAEIAQoAgBBBGoiAjYCACACIQgDQCADIAhGBEAgAyEIDAULIAgoAgBFDQQgCEEEaiEIDAALAAsgBCACNgIADAMLIAQoAgALIANHIRAMAwsgBygCACEFDAELC0ECIRALIA9BEGokACAQCwkAIAAQmAsQGAszACMAQRBrIgAkACAAIAQ2AgwgACADIAJrNgIIIABBDGogAEEIahDoCygCACAAQRBqJAALNAADQCABIAJGRQRAIAQgAyABLAAAIgAgAEEASBs6AAAgBEEBaiEEIAFBAWohAQwBCwsgAQsMACACIAEgAUEASBsLKgADQCABIAJGRQRAIAMgAS0AADoAACADQQFqIQMgAUEBaiEBDAELCyABCw8AIAAgASACQeCrCRDOCgseACABQQBOBH9B4KsJKAIAIAFBAnRqKAIABSABC8ALDwAgACABIAJB1J8JEM4KCx4AIAFBAE4Ef0HUnwkoAgAgAUECdGooAgAFIAELwAsJACAAEI4LEBgLNQADQCABIAJGRQRAIAQgASgCACIAIAMgAEGAAUkbOgAAIARBAWohBCABQQRqIQEMAQsLIAELDgAgASACIAFBgAFJG8ALKgADQCABIAJGRQRAIAMgASwAADYCACADQQRqIQMgAUEBaiEBDAELCyABCw8AIAAgASACQeCrCRDNCgseACABQf8ATQR/QeCrCSgCACABQQJ0aigCAAUgAQsLDwAgACABIAJB1J8JEM0KCx4AIAFB/wBNBH9B1J8JKAIAIAFBAnRqKAIABSABCws6AANAAkAgAiADRg0AIAIoAgAiAEH/AEsNACAAQQJ0QbC6CWooAgAgAXFFDQAgAkEEaiECDAELCyACCzoAA0ACQCACIANGDQAgAigCACIAQf8ATQRAIABBAnRBsLoJaigCACABcQ0BCyACQQRqIQIMAQsLIAILSQEBfwNAIAEgAkZFBEBBACEAIAMgASgCACIEQf8ATQR/IARBAnRBsLoJaigCAAVBAAs2AgAgA0EEaiEDIAFBBGohAQwBCwsgAQslAEEAIQAgAkH/AE0EfyACQQJ0QbC6CWooAgAgAXFBAEcFQQALCwkAIAAQlAsQGAvEAQAjAEEQayIDJAACQCAFEKgBRQRAIAAgBSgCCDYCCCAAIAUpAgA3AgAgABCpAxoMAQsgBSgCACECIAUoAgQhBSMAQRBrIgQkAAJAAkACQCAFEJkFBEAgACIBIAUQ1AEMAQsgBUH3////A0sNASAEQQhqIAUQ1gNBAWoQ1QMgBCgCDBogACAEKAIIIgEQ/AEgACAEKAIMEPsBIAAgBRC/AQsgASACIAVBAWoQ+QIgBEEQaiQADAELEMwBAAsLIANBEGokAAsJACAAIAUQmwcLhwMBCH8jAEHgA2siACQAIABB3ANqIgYgAxBRIAYQzQEhCiAFECMEQCAFQQAQpgUoAgAgCkEtENIBRiELCyACIAsgAEHcA2ogAEHYA2ogAEHUA2ogAEHQA2ogAEHEA2oQUiIMIABBuANqEFIiBiAAQawDahBSIgcgAEGoA2oQnAsgAEEKNgIQIABBCGpBACAAQRBqIgIQfyEIAkACfyAFECMgACgCqANKBEAgBRAjIQkgACgCqAMhDSAHECMgCSANa0EBdGogBhAjaiAAKAKoA2pBAWoMAQsgBxAjIAYQI2ogACgCqANqQQJqCyIJQeUASQ0AIAggCUECdBBIEJIBIAgoAgAiAg0AEJMBAAsgAiAAQQRqIAAgAygCBCAFEEIgBRBCIAUQI0ECdGogCiALIABB2ANqIAAoAtQDIAAoAtADIAwgBiAHIAAoAqgDEJsLIAEgAiAAKAIEIAAoAgAgAyAEEKUDIAgQfiAHEHcaIAYQdxogDBA0GiAAQdwDahBOIABB4ANqJAALxwQBC38jAEGgCGsiACQAIAAgBTcDECAAIAY3AxggACAAQbAHaiIHNgKsByAHQeQAQcSNASAAQRBqEKEBIQcgAEEKNgKQBCAAQYgEakEAIABBkARqIgkQfyEOIABBCjYCkAQgAEGABGpBACAJEH8hCgJAIAdB5ABPBEAQaCEHIAAgBTcDACAAIAY3AwggAEGsB2ogB0HEjQEgABCnAiIHQX9GDQEgDiAAKAKsBxCSASAKIAdBAnQQSBCSASAKELQFDQEgCigCACEJCyAAQfwDaiIIIAMQUSAIEM0BIhEgACgCrAciCCAHIAhqIAkQygIgB0EASgRAIAAoAqwHLQAAQS1GIQ8LIAIgDyAAQfwDaiAAQfgDaiAAQfQDaiAAQfADaiAAQeQDahBSIhAgAEHYA2oQUiIIIABBzANqEFIiCyAAQcgDahCcCyAAQQo2AjAgAEEoakEAIABBMGoiAhB/IQwCfyAAKALIAyINIAdIBEAgCxAjIAcgDWtBAXRqIAgQI2ogACgCyANqQQFqDAELIAsQIyAIECNqIAAoAsgDakECagsiDUHlAE8EQCAMIA1BAnQQSBCSASAMKAIAIgJFDQELIAIgAEEkaiAAQSBqIAMoAgQgCSAJIAdBAnRqIBEgDyAAQfgDaiAAKAL0AyAAKALwAyAQIAggCyAAKALIAxCbCyABIAIgACgCJCAAKAIgIAMgBBClAyAMEH4gCxB3GiAIEHcaIBAQNBogAEH8A2oQTiAKEH4gDhB+IABBoAhqJAAPCxCTAQAL/wIBCH8jAEGwAWsiACQAIABBrAFqIgYgAxBRIAYQzgEhCiAFECMEQCAFQQAQPy0AACAKQS0QnwFB/wFxRiELCyACIAsgAEGsAWogAEGoAWogAEGnAWogAEGmAWogAEGYAWoQUiIMIABBjAFqEFIiBiAAQYABahBSIgcgAEH8AGoQoAsgAEEKNgIQIABBCGpBACAAQRBqIgIQfyEIAkACfyAFECMgACgCfEoEQCAFECMhCSAAKAJ8IQ0gBxAjIAkgDWtBAXRqIAYQI2ogACgCfGpBAWoMAQsgBxAjIAYQI2ogACgCfGpBAmoLIglB5QBJDQAgCCAJEEgQkgEgCCgCACICDQAQkwEACyACIABBBGogACADKAIEIAUQQiAFEEIgBRAjaiAKIAsgAEGoAWogACwApwEgACwApgEgDCAGIAcgACgCfBCfCyABIAIgACgCBCAAKAIAIAMgBBCmAyAIEH4gBxA0GiAGEDQaIAwQNBogAEGsAWoQTiAAQbABaiQAC74EAQt/IwBBwANrIgAkACAAIAU3AxAgACAGNwMYIAAgAEHQAmoiBzYCzAIgB0HkAEHEjQEgAEEQahChASEHIABBCjYC4AEgAEHYAWpBACAAQeABaiIJEH8hDiAAQQo2AuABIABB0AFqQQAgCRB/IQoCQCAHQeQATwRAEGghByAAIAU3AwAgACAGNwMIIABBzAJqIAdBxI0BIAAQpwIiB0F/Rg0BIA4gACgCzAIQkgEgCiAHEEgQkgEgChC0BQ0BIAooAgAhCQsgAEHMAWoiCCADEFEgCBDOASIRIAAoAswCIgggByAIaiAJEPcCIAdBAEoEQCAAKALMAi0AAEEtRiEPCyACIA8gAEHMAWogAEHIAWogAEHHAWogAEHGAWogAEG4AWoQUiIQIABBrAFqEFIiCCAAQaABahBSIgsgAEGcAWoQoAsgAEEKNgIwIABBKGpBACAAQTBqIgIQfyEMAn8gACgCnAEiDSAHSARAIAsQIyAHIA1rQQF0aiAIECNqIAAoApwBakEBagwBCyALECMgCBAjaiAAKAKcAWpBAmoLIg1B5QBPBEAgDCANEEgQkgEgDCgCACICRQ0BCyACIABBJGogAEEgaiADKAIEIAkgByAJaiARIA8gAEHIAWogACwAxwEgACwAxgEgECAIIAsgACgCnAEQnwsgASACIAAoAiQgACgCICADIAQQpgMgDBB+IAsQNBogCBA0GiAQEDQaIABBzAFqEE4gChB+IA4QfiAAQcADaiQADwsQkwEAC7oFAQR/IwBBwANrIgAkACAAIAI2ArgDIAAgATYCvAMgAEGkBDYCFCAAQRhqIABBIGogAEEUaiIHEH8hCiAAQRBqIgEgBBBRIAEQzQEhCCAAQQA6AA8gAEG8A2ogAiADIAEgBCgCBCAFIABBD2ogCCAKIAcgAEGwA2oQpgsEQCMAQRBrIgEkACAGECMaAkAgBhCoAQRAIAYoAgAgAUEANgIMIAFBDGoQ3gEgBkEAEL8BDAELIAFBADYCCCAGIAFBCGoQ3gEgBkEAENQBCyABQRBqJAAgAC0AD0EBRgRAIAYgCEEtENIBEIsHCyAIQTAQ0gEhASAKKAIAIQIgACgCFCIDQQRrIQQDQAJAIAIgBE8NACACKAIAIAFHDQAgAkEEaiECDAELCyMAQRBrIggkACAGECMhASAGEJgHIQQCQCACIAMQpAsiB0UNACAGEEIgBhBCIAYQI0ECdGpBBGogAhD6CkUEQCAHIAQgAWtLBEAgBiAEIAEgBGsgB2ogASABEKMLCyAGEEIgAUECdGohBANAIAIgA0cEQCAEIAIQ3gEgAkEEaiECIARBBGohBAwBCwsgCEEANgIEIAQgCEEEahDeASAGIAEgB2oQowMMAQsjAEEQayIEJAAgCEEEaiIBIAIgAxDRCyAEQRBqJAAgARBCIQcgARAjIQIjAEEQayIEJAACQCACIAYQmAciCSAGECMiA2tNBEAgAkUNASAGEEIiCSADQQJ0aiAHIAIQ+QIgBiACIANqIgIQowMgBEEANgIMIAkgAkECdGogBEEMahDeAQwBCyAGIAkgAiAJayADaiADIANBACACIAcQ5goLIARBEGokACABEHcaCyAIQRBqJAALIABBvANqIABBuANqEFsEQCAFIAUoAgBBAnI2AgALIAAoArwDIABBEGoQTiAKEH4gAEHAA2okAAvaAwEDfyMAQfAEayIAJAAgACACNgLoBCAAIAE2AuwEIABBpAQ2AhAgAEHIAWogAEHQAWogAEEQaiIBEH8hByAAQcABaiIIIAQQUSAIEM0BIQkgAEEAOgC/AQJAIABB7ARqIAIgAyAIIAQoAgQgBSAAQb8BaiAJIAcgAEHEAWogAEHgBGoQpgtFDQAgAEG76QEoAAA2ALcBIABBtOkBKQAANwOwASAJIABBsAFqIABBugFqIABBgAFqEMoCIABBCjYCECAAQQhqQQAgARB/IQMgASEEAkAgACgCxAEgBygCAGsiAUGJA04EQCADIAFBAnVBAmoQSBCSASADKAIARQ0BIAMoAgAhBAsgAC0AvwFBAUYEQCAEQS06AAAgBEEBaiEECyAHKAIAIQIDQCAAKALEASACTQRAAkAgBEEAOgAAIAAgBjYCACAAQRBqQcqNASAAEE9BAUcNACADEH4MBAsFIAQgAEGwAWogAEGAAWoiASABQShqIAIQoAcgAWtBAnVqLQAAOgAAIARBAWohBCACQQRqIQIMAQsLEJMBAAsQkwEACyAAQewEaiAAQegEahBbBEAgBSAFKAIAQQJyNgIACyAAKALsBCAAQcABahBOIAcQfiAAQfAEaiQAC50FAQR/IwBBkAFrIgAkACAAIAI2AogBIAAgATYCjAEgAEGkBDYCFCAAQRhqIABBIGogAEEUaiIIEH8hCiAAQRBqIgEgBBBRIAEQzgEhByAAQQA6AA8gAEGMAWogAiADIAEgBCgCBCAFIABBD2ogByAKIAggAEGEAWoQrQsEQCMAQRBrIgEkACAGECMaAkAgBhCoAQRAIAYoAgAgAUEAOgAPIAFBD2oQ0wEgBkEAEL8BDAELIAFBADoADiAGIAFBDmoQ0wEgBkEAENQBCyABQRBqJAAgAC0AD0EBRgRAIAYgB0EtEJ8BEJYFCyAHQTAQnwEgCigCACECIAAoAhQiB0EBayEDQf8BcSEBA0ACQCACIANPDQAgAi0AACABRw0AIAJBAWohAgwBCwsjAEEQayIDJAAgBhAjIQEgBhBWIQQCQCACIAcQ3wsiCEUNACAGEEIgBhBCIAYQI2pBAWogAhD6CkUEQCAIIAQgAWtLBEAgBiAEIAEgBGsgCGogASABEJoHCyAGEEIgAWohBANAIAIgB0cEQCAEIAIQ0wEgAkEBaiECIARBAWohBAwBCwsgA0EAOgAPIAQgA0EPahDTASAGIAEgCGoQowMMAQsgAyACIAcgBhCsByIHEEIhCCAHECMhASMAQRBrIgQkAAJAIAEgBhBWIgkgBhAjIgJrTQRAIAFFDQEgBhBCIgkgAmogCCABEK0CIAYgASACaiIBEKMDIARBADoADyABIAlqIARBD2oQ0wEMAQsgBiAJIAEgCWsgAmogAiACQQAgASAIEOkKCyAEQRBqJAAgBxA0GgsgA0EQaiQACyAAQYwBaiAAQYgBahBcBEAgBSAFKAIAQQJyNgIACyAAKAKMASAAQRBqEE4gChB+IABBkAFqJAAL0AMBA38jAEGQAmsiACQAIAAgAjYCiAIgACABNgKMAiAAQaQENgIQIABBmAFqIABBoAFqIABBEGoiARB/IQcgAEGQAWoiCCAEEFEgCBDOASEJIABBADoAjwECQCAAQYwCaiACIAMgCCAEKAIEIAUgAEGPAWogCSAHIABBlAFqIABBhAJqEK0LRQ0AIABBu+kBKAAANgCHASAAQbTpASkAADcDgAEgCSAAQYABaiAAQYoBaiAAQfYAahD3AiAAQQo2AhAgAEEIakEAIAEQfyEDIAEhBAJAIAAoApQBIAcoAgBrIgFB4wBOBEAgAyABQQJqEEgQkgEgAygCAEUNASADKAIAIQQLIAAtAI8BQQFGBEAgBEEtOgAAIARBAWohBAsgBygCACECA0AgACgClAEgAk0EQAJAIARBADoAACAAIAY2AgAgAEEQakHKjQEgABBPQQFHDQAgAxB+DAQLBSAEIABB9gBqIgEgAUEKaiACEKMHIABrIABqLQAKOgAAIARBAWohBCACQQFqIQIMAQsLEJMBAAsQkwEACyAAQYwCaiAAQYgCahBcBEAgBSAFKAIAQQJyNgIACyAAKAKMAiAAQZABahBOIAcQfiAAQZACaiQAC5YDAQR/IwBBoANrIggkACAIIAhBoANqIgM2AgwjAEGQAWsiByQAIAcgB0GEAWo2AhwgAEEIaiAHQSBqIgIgB0EcaiAEIAUgBhCzCyAHQgA3AxAgByACNgIMIAhBEGoiAiAIKAIMELALIQUgACgCCCEAIwBBEGsiBCQAIAQgADYCDCAEQQhqIARBDGoQjwIgAiAHQQxqIAUgB0EQahDTCyEAEI4CIARBEGokACAAQX9GBEAQkwEACyAIIAIgAEECdGo2AgwgB0GQAWokACAIKAIMIQQjAEEQayIGJAAgBkEIaiMAQSBrIgAkACAAQRhqIAIgBBCyBSAAQQxqIABBEGogACgCGCEFIAAoAhwhCiMAQRBrIgQkACAEIAU2AgggBCABNgIMA0AgBSAKRwRAIARBDGogBSgCABDtCyAEIAVBBGoiBTYCCAwBCwsgBEEIaiAEQQxqEP0BIARBEGokACAAIAIgACgCEBCxBTYCDCAAIAAoAhQ2AgggAEEIahD9ASAAQSBqJAAgBigCDCAGQRBqJAAgAyQAC4ICAQR/IwBBgAFrIgIkACACIAJB9ABqNgIMIABBCGogAkEQaiIDIAJBDGogBCAFIAYQswsgAigCDCEEIwBBEGsiBiQAIAZBCGojAEEgayIAJAAgAEEYaiADIAQQsgUgAEEMaiAAQRBqIAAoAhghBSAAKAIcIQojAEEQayIEJAAgBCAFNgIIIAQgATYCDANAIAUgCkcEQCAEQQxqIAUsAAAQ8AsgBCAFQQFqIgU2AggMAQsLIARBCGogBEEMahD9ASAEQRBqJAAgACADIAAoAhAQsQU2AgwgACAAKAIUNgIIIABBCGoQ/QEgAEEgaiQAIAYoAgwgBkEQaiQAIAJBgAFqJAAL8QwBAX8jAEEwayIHJAAgByABNgIsIARBADYCACAHIAMQUSAHEM0BIQggBxBOAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAZBwQBrDjkAARcEFwUXBgcXFxcKFxcXFw4PEBcXFxMVFxcXFxcXFwABAgMDFxcBFwgXFwkLFwwXDRcLFxcREhQWCyAAIAVBGGogB0EsaiACIAQgCBC2CwwYCyAAIAVBEGogB0EsaiACIAQgCBC1CwwXCyAAQQhqIAAoAggoAgwRAgAhASAHIAAgBygCLCACIAMgBCAFIAEQQiABEEIgARAjQQJ0ahDIAjYCLAwWCyAHQSxqIAIgBCAIQQIQpQIhAAJAIAQoAgAiAUEEcSAAQQFrQR5LckUEQCAFIAA2AgwMAQsgBCABQQRyNgIACwwVCyAHQci4CSkDADcDGCAHQcC4CSkDADcDECAHQbi4CSkDADcDCCAHQbC4CSkDADcDACAHIAAgASACIAMgBCAFIAcgB0EgahDIAjYCLAwUCyAHQei4CSkDADcDGCAHQeC4CSkDADcDECAHQdi4CSkDADcDCCAHQdC4CSkDADcDACAHIAAgASACIAMgBCAFIAcgB0EgahDIAjYCLAwTCyAHQSxqIAIgBCAIQQIQpQIhAAJAIAQoAgAiAUEEcSAAQRdKckUEQCAFIAA2AggMAQsgBCABQQRyNgIACwwSCyAHQSxqIAIgBCAIQQIQpQIhAAJAIAQoAgAiAUEEcSAAQQFrQQtLckUEQCAFIAA2AggMAQsgBCABQQRyNgIACwwRCyAHQSxqIAIgBCAIQQMQpQIhAAJAIAQoAgAiAUEEcSAAQe0CSnJFBEAgBSAANgIcDAELIAQgAUEEcjYCAAsMEAsgB0EsaiACIAQgCEECEKUCIQACQCAEKAIAIgFBBHEgAEEBayIAQQtLckUEQCAFIAA2AhAMAQsgBCABQQRyNgIACwwPCyAHQSxqIAIgBCAIQQIQpQIhAAJAIAQoAgAiAUEEcSAAQTtKckUEQCAFIAA2AgQMAQsgBCABQQRyNgIACwwOCyAHQSxqIQAjAEEQayIBJAAgASACNgIMA0ACQCAAIAFBDGoQWw0AIAhBASAAEIQBEP4BRQ0AIAAQmAEaDAELCyAAIAFBDGoQWwRAIAQgBCgCAEECcjYCAAsgAUEQaiQADA0LIAdBLGohAQJAIABBCGogACgCCCgCCBECACIAECNBACAAQQxqECNrRgRAIAQgBCgCAEEEcjYCAAwBCyABIAIgACAAQRhqIAggBEEAEKcFIgIgAEcgBSgCCCIBQQxHckUEQCAFQQA2AggMAQsgAiAAa0EMRyABQQtKckUEQCAFIAFBDGo2AggLCwwMCyAHQfC4CUEsEB8iBiAAIAEgAiADIAQgBSAGIAZBLGoQyAI2AiwMCwsgB0GwuQkoAgA2AhAgB0GouQkpAwA3AwggB0GguQkpAwA3AwAgByAAIAEgAiADIAQgBSAHIAdBFGoQyAI2AiwMCgsgB0EsaiACIAQgCEECEKUCIQACQCAEKAIAIgFBBHEgAEE8SnJFBEAgBSAANgIADAELIAQgAUEEcjYCAAsMCQsgB0HYuQkpAwA3AxggB0HQuQkpAwA3AxAgB0HIuQkpAwA3AwggB0HAuQkpAwA3AwAgByAAIAEgAiADIAQgBSAHIAdBIGoQyAI2AiwMCAsgB0EsaiACIAQgCEEBEKUCIQACQCAEKAIAIgFBBHEgAEEGSnJFBEAgBSAANgIYDAELIAQgAUEEcjYCAAsMBwsgACABIAIgAyAEIAUgACgCACgCFBEJAAwHCyAAQQhqIAAoAggoAhgRAgAhASAHIAAgBygCLCACIAMgBCAFIAEQQiABEEIgARAjQQJ0ahDIAjYCLAwFCyAFQRRqIAdBLGogAiAEIAgQtAsMBAsgB0EsaiACIAQgCEEEEKUCIQAgBC0AAEEEcUUEQCAFIABB7A5rNgIUCwwDCyAGQSVGDQELIAQgBCgCAEEEcjYCAAwBCyMAQRBrIgAkACAAIAI2AgwCQCAEAn9BBiAHQSxqIgEgAEEMaiICEFsNABpBBCAIIAEQhAEQ2gNBJUcNABogARCYASACEFtFDQFBAgsgBCgCAHI2AgALIABBEGokAAsgBygCLAsgB0EwaiQAC0kBAn8jAEEQayIGJAAgBiABNgIMIAZBCGoiByADEFEgBxDNASEBIAcQTiAFQRRqIAZBDGogAiAEIAEQtAsgBigCDCAGQRBqJAALSwECfyMAQRBrIgYkACAGIAE2AgwgBkEIaiIHIAMQUSAHEM0BIQEgBxBOIAAgBUEQaiAGQQxqIAIgBCABELULIAYoAgwgBkEQaiQAC0sBAn8jAEEQayIGJAAgBiABNgIMIAZBCGoiByADEFEgBxDNASEBIAcQTiAAIAVBGGogBkEMaiACIAQgARC2CyAGKAIMIAZBEGokAAsxACAAIAEgAiADIAQgBSAAQQhqIAAoAggoAhQRAgAiABBCIAAQQiAAECNBAnRqEMgCC1kBAX8jAEEgayIGJAAgBkHYuQkpAwA3AxggBkHQuQkpAwA3AxAgBkHIuQkpAwA3AwggBkHAuQkpAwA3AwAgACABIAIgAyAEIAUgBiAGQSBqIgEQyAIgASQAC40MAQF/IwBBEGsiByQAIAcgATYCDCAEQQA2AgAgByADEFEgBxDOASEIIAcQTgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAGQcEAaw45AAEXBBcFFwYHFxcXChcXFxcODxAXFxcTFRcXFxcXFxcAAQIDAxcXARcIFxcJCxcMFw0XCxcXERIUFgsgACAFQRhqIAdBDGogAiAEIAgQuQsMGAsgACAFQRBqIAdBDGogAiAEIAgQuAsMFwsgAEEIaiAAKAIIKAIMEQIAIQEgByAAIAcoAgwgAiADIAQgBSABEEIgARBCIAEQI2oQyQI2AgwMFgsgB0EMaiACIAQgCEECEKYCIQACQCAEKAIAIgFBBHEgAEEBa0EeS3JFBEAgBSAANgIMDAELIAQgAUEEcjYCAAsMFQsgB0Kl2r2pwuzLkvkANwMAIAcgACABIAIgAyAEIAUgByAHQQhqEMkCNgIMDBQLIAdCpbK1qdKty5LkADcDACAHIAAgASACIAMgBCAFIAcgB0EIahDJAjYCDAwTCyAHQQxqIAIgBCAIQQIQpgIhAAJAIAQoAgAiAUEEcSAAQRdKckUEQCAFIAA2AggMAQsgBCABQQRyNgIACwwSCyAHQQxqIAIgBCAIQQIQpgIhAAJAIAQoAgAiAUEEcSAAQQFrQQtLckUEQCAFIAA2AggMAQsgBCABQQRyNgIACwwRCyAHQQxqIAIgBCAIQQMQpgIhAAJAIAQoAgAiAUEEcSAAQe0CSnJFBEAgBSAANgIcDAELIAQgAUEEcjYCAAsMEAsgB0EMaiACIAQgCEECEKYCIQACQCAEKAIAIgFBBHEgAEEBayIAQQtLckUEQCAFIAA2AhAMAQsgBCABQQRyNgIACwwPCyAHQQxqIAIgBCAIQQIQpgIhAAJAIAQoAgAiAUEEcSAAQTtKckUEQCAFIAA2AgQMAQsgBCABQQRyNgIACwwOCyAHQQxqIQAjAEEQayIBJAAgASACNgIMA0ACQCAAIAFBDGoQXA0AIAhBASAAEIUBEP8BRQ0AIAAQmQEaDAELCyAAIAFBDGoQXARAIAQgBCgCAEECcjYCAAsgAUEQaiQADA0LIAdBDGohAQJAIABBCGogACgCCCgCCBECACIAECNBACAAQQxqECNrRgRAIAQgBCgCAEEEcjYCAAwBCyABIAIgACAAQRhqIAggBEEAEKkFIgIgAEcgBSgCCCIBQQxHckUEQCAFQQA2AggMAQsgAiAAa0EMRyABQQtKckUEQCAFIAFBDGo2AggLCwwMCyAHQZi4CSgAADYAByAHQZG4CSkAADcDACAHIAAgASACIAMgBCAFIAcgB0ELahDJAjYCDAwLCyAHQaC4CS0AADoABCAHQZy4CSgAADYCACAHIAAgASACIAMgBCAFIAcgB0EFahDJAjYCDAwKCyAHQQxqIAIgBCAIQQIQpgIhAAJAIAQoAgAiAUEEcSAAQTxKckUEQCAFIAA2AgAMAQsgBCABQQRyNgIACwwJCyAHQqWQ6anSyc6S0wA3AwAgByAAIAEgAiADIAQgBSAHIAdBCGoQyQI2AgwMCAsgB0EMaiACIAQgCEEBEKYCIQACQCAEKAIAIgFBBHEgAEEGSnJFBEAgBSAANgIYDAELIAQgAUEEcjYCAAsMBwsgACABIAIgAyAEIAUgACgCACgCFBEJAAwHCyAAQQhqIAAoAggoAhgRAgAhASAHIAAgBygCDCACIAMgBCAFIAEQQiABEEIgARAjahDJAjYCDAwFCyAFQRRqIAdBDGogAiAEIAgQtwsMBAsgB0EMaiACIAQgCEEEEKYCIQAgBC0AAEEEcUUEQCAFIABB7A5rNgIUCwwDCyAGQSVGDQELIAQgBCgCAEEEcjYCAAwBCyMAQRBrIgAkACAAIAI2AgwCQCAEAn9BBiAHQQxqIgEgAEEMaiICEFwNABpBBCAIIAEQhQEQ2wNBJUcNABogARCZASACEFxFDQFBAgsgBCgCAHI2AgALIABBEGokAAsgBygCDAsgB0EQaiQAC0kBAn8jAEEQayIGJAAgBiABNgIMIAZBCGoiByADEFEgBxDOASEBIAcQTiAFQRRqIAZBDGogAiAEIAEQtwsgBigCDCAGQRBqJAALSwECfyMAQRBrIgYkACAGIAE2AgwgBkEIaiIHIAMQUSAHEM4BIQEgBxBOIAAgBUEQaiAGQQxqIAIgBCABELgLIAYoAgwgBkEQaiQAC0sBAn8jAEEQayIGJAAgBiABNgIMIAZBCGoiByADEFEgBxDOASEBIAcQTiAAIAVBGGogBkEMaiACIAQgARC5CyAGKAIMIAZBEGokAAsuACAAIAEgAiADIAQgBSAAQQhqIAAoAggoAhQRAgAiABBCIAAQQiAAECNqEMkCCzwBAX8jAEEQayIGJAAgBkKlkOmp0snOktMANwMIIAAgASACIAMgBCAFIAZBCGogBkEQaiIBEMkCIAEkAAuPAQEFfyMAQdABayIAJAAQaCEGIAAgBDYCACAAQbABaiIHIAcgB0EUIAZB7eIAIAAQ3wEiCGoiBCACEKgCIQYgAEEQaiIFIAIQUSAFEM0BIAUQTiAHIAQgBRDKAiABIAUgCEECdCAFaiIBIAYgAGtBAnQgAGpBsAVrIAQgBkYbIAEgAiADEKUDIABB0AFqJAALhAQBB38CfyMAQaADayIGJAAgBkIlNwOYAyAGQZgDaiIHQQFyQZzeASACKAIEEKQFIQggBiAGQfACaiIJNgLsAhBoIQACfyAIBEAgAigCCCEKIAZBQGsgBTcDACAGIAQ3AzggBiAKNgIwIAlBHiAAIAcgBkEwahDfAQwBCyAGIAQ3A1AgBiAFNwNYIAZB8AJqQR4gACAGQZgDaiAGQdAAahDfAQshACAGQQo2AoABIAZB5AJqQQAgBkGAAWoQfyEJIAZB8AJqIQcCQCAAQR5OBEAQaCEAAn8gCARAIAIoAgghByAGIAU3AxAgBiAENwMIIAYgBzYCACAGQewCaiAAIAZBmANqIAYQpwIMAQsgBiAENwMgIAYgBTcDKCAGQewCaiAAIAZBmANqIAZBIGoQpwILIgBBf0YNASAJIAYoAuwCEJIBIAYoAuwCIQcLIAcgACAHaiILIAIQqAIhDCAGQQo2AoABIAZB+ABqQQAgBkGAAWoiBxB/IQgCQCAGKALsAiIKIAZB8AJqRgRAIAchAAwBCyAAQQN0EEgiAEUNASAIIAAQkgEgBigC7AIhCgsgBkHsAGoiByACEFEgCiAMIAsgACAGQfQAaiAGQfAAaiAHELwLIAcQTiABIAAgBigCdCAGKAJwIAIgAxClAyAIEH4gCRB+IAZBoANqJAAMAQsQkwEACwvgAwEHfwJ/IwBB8AJrIgUkACAFQiU3A+gCIAVB6AJqIgZBAXJB5ooFIAIoAgQQpAUhByAFIAVBwAJqIgg2ArwCEGghAAJ/IAcEQCACKAIIIQkgBSAEOQMoIAUgCTYCICAIQR4gACAGIAVBIGoQ3wEMAQsgBSAEOQMwIAVBwAJqQR4gACAFQegCaiAFQTBqEN8BCyEAIAVBCjYCUCAFQbQCakEAIAVB0ABqEH8hCCAFQcACaiEGAkAgAEEeTgRAEGghAAJ/IAcEQCACKAIIIQYgBSAEOQMIIAUgBjYCACAFQbwCaiAAIAVB6AJqIAUQpwIMAQsgBSAEOQMQIAVBvAJqIAAgBUHoAmogBUEQahCnAgsiAEF/Rg0BIAggBSgCvAIQkgEgBSgCvAIhBgsgBiAAIAZqIgogAhCoAiELIAVBCjYCUCAFQcgAakEAIAVB0ABqIgYQfyEHAkAgBSgCvAIiCSAFQcACakYEQCAGIQAMAQsgAEEDdBBIIgBFDQEgByAAEJIBIAUoArwCIQkLIAVBPGoiBiACEFEgCSALIAogACAFQcQAaiAFQUBrIAYQvAsgBhBOIAEgACAFKAJEIAUoAkAgAiADEKUDIAcQfiAIEH4gBUHwAmokAAwBCxCTAQALCxEAIAAgASACIAMgBEEAEMoKCxEAIAAgASACIAMgBEEAEMkKCxEAIAAgASACIAMgBEEBEMoKCxEAIAAgASACIAMgBEEBEMkKC80BAQF/IwBBIGsiBSQAIAUgATYCHAJAIAIoAgRBAXFFBEAgACABIAIgAyAEIAAoAgAoAhgRCAAhAgwBCyAFQRBqIgAgAhBRIAAQ3QMhASAAEE4CQCAEBEAgACABEPoBDAELIAVBEGogARD5AQsgBSAFQRBqEOABNgIMA0AgBSAFQRBqIgAQ9AI2AgggBUEMaiIBIAVBCGoQ9QIEQCAFQRxqIAEiACgCACgCABDtCyAAEJwHDAEFIAUoAhwhAiAAEHcaCwsLIAVBIGokACACC4cBAQV/IwBB4ABrIgAkABBoIQYgACAENgIAIABBQGsiByAHIAdBFCAGQe3iACAAEN8BIghqIgQgAhCoAiEGIABBEGoiBSACEFEgBRDOASAFEE4gByAEIAUQ9wIgASAFIAUgCGoiASAGIABrIABqQTBrIAQgBkYbIAEgAiADEKYDIABB4ABqJAALhAQBB38CfyMAQYACayIGJAAgBkIlNwP4ASAGQfgBaiIHQQFyQZzeASACKAIEEKQFIQggBiAGQdABaiIJNgLMARBoIQACfyAIBEAgAigCCCEKIAZBQGsgBTcDACAGIAQ3AzggBiAKNgIwIAlBHiAAIAcgBkEwahDfAQwBCyAGIAQ3A1AgBiAFNwNYIAZB0AFqQR4gACAGQfgBaiAGQdAAahDfAQshACAGQQo2AoABIAZBxAFqQQAgBkGAAWoQfyEJIAZB0AFqIQcCQCAAQR5OBEAQaCEAAn8gCARAIAIoAgghByAGIAU3AxAgBiAENwMIIAYgBzYCACAGQcwBaiAAIAZB+AFqIAYQpwIMAQsgBiAENwMgIAYgBTcDKCAGQcwBaiAAIAZB+AFqIAZBIGoQpwILIgBBf0YNASAJIAYoAswBEJIBIAYoAswBIQcLIAcgACAHaiILIAIQqAIhDCAGQQo2AoABIAZB+ABqQQAgBkGAAWoiBxB/IQgCQCAGKALMASIKIAZB0AFqRgRAIAchAAwBCyAAQQF0EEgiAEUNASAIIAAQkgEgBigCzAEhCgsgBkHsAGoiByACEFEgCiAMIAsgACAGQfQAaiAGQfAAaiAHEMELIAcQTiABIAAgBigCdCAGKAJwIAIgAxCmAyAIEH4gCRB+IAZBgAJqJAAMAQsQkwEACwvgAwEHfwJ/IwBB0AFrIgUkACAFQiU3A8gBIAVByAFqIgZBAXJB5ooFIAIoAgQQpAUhByAFIAVBoAFqIgg2ApwBEGghAAJ/IAcEQCACKAIIIQkgBSAEOQMoIAUgCTYCICAIQR4gACAGIAVBIGoQ3wEMAQsgBSAEOQMwIAVBoAFqQR4gACAFQcgBaiAFQTBqEN8BCyEAIAVBCjYCUCAFQZQBakEAIAVB0ABqEH8hCCAFQaABaiEGAkAgAEEeTgRAEGghAAJ/IAcEQCACKAIIIQYgBSAEOQMIIAUgBjYCACAFQZwBaiAAIAVByAFqIAUQpwIMAQsgBSAEOQMQIAVBnAFqIAAgBUHIAWogBUEQahCnAgsiAEF/Rg0BIAggBSgCnAEQkgEgBSgCnAEhBgsgBiAAIAZqIgogAhCoAiELIAVBCjYCUCAFQcgAakEAIAVB0ABqIgYQfyEHAkAgBSgCnAEiCSAFQaABakYEQCAGIQAMAQsgAEEBdBBIIgBFDQEgByAAEJIBIAUoApwBIQkLIAVBPGoiBiACEFEgCSALIAogACAFQcQAaiAFQUBrIAYQwQsgBhBOIAEgACAFKAJEIAUoAkAgAiADEKYDIAcQfiAIEH4gBUHQAWokAAwBCxCTAQALCxEAIAAgASACIAMgBEEAEMwKCxEAIAAgASACIAMgBEEAEMsKCxEAIAAgASACIAMgBEEBEMwKCxEAIAAgASACIAMgBEEBEMsKC80BAQF/IwBBIGsiBSQAIAUgATYCHAJAIAIoAgRBAXFFBEAgACABIAIgAyAEIAAoAgAoAhgRCAAhAgwBCyAFQRBqIgAgAhBRIAAQ3wMhASAAEE4CQCAEBEAgACABEPoBDAELIAVBEGogARD5AQsgBSAFQRBqEOABNgIMA0AgBSAFQRBqIgAQ9gI2AgggBUEMaiIBIAVBCGoQ9QIEQCAFQRxqIAEiACgCACwAABDwCyAAEJ8HDAEFIAUoAhwhAiAAEDQaCwsLIAVBIGokACACC+cCAQF/IwBBwAJrIgAkACAAIAI2ArgCIAAgATYCvAIgAEHEAWoQUiEGIABBEGoiAiADEFEgAhDNAUHwtwlBirgJIABB0AFqEMoCIAIQTiAAQbgBahBSIgMgAxBWED0gACADQQAQPyIBNgK0ASAAIAI2AgwgAEEANgIIA0ACQCAAQbwCaiAAQbgCahBbDQAgACgCtAEgAxAjIAFqRgRAIAMQIyECIAMgAxAjQQF0ED0gAyADEFYQPSAAIAIgA0EAED8iAWo2ArQBCyAAQbwCaiICEIQBQRAgASAAQbQBaiAAQQhqQQAgBiAAQRBqIABBDGogAEHQAWoQ3AMNACACEJgBGgwBCwsgAyAAKAK0ASABaxA9IAMQQhBoIAAgBTYCACAAEMYLQQFHBEAgBEEENgIACyAAQbwCaiAAQbgCahBbBEAgBCAEKAIAQQJyNgIACyAAKAK8AiADEDQaIAYQNBogAEHAAmokAAvQAwEBfiMAQYADayIAJAAgACACNgL4AiAAIAE2AvwCIABB3AFqIAMgAEHwAWogAEHsAWogAEHoAWoQogcgAEHQAWoQUiIBIAEQVhA9IAAgAUEAED8iAjYCzAEgACAAQSBqNgIcIABBADYCGCAAQQE6ABcgAEHFADoAFgNAAkAgAEH8AmogAEH4AmoQWw0AIAAoAswBIAEQIyACakYEQCABECMhAyABIAEQI0EBdBA9IAEgARBWED0gACADIAFBABA/IgJqNgLMAQsgAEH8AmoiAxCEASAAQRdqIABBFmogAiAAQcwBaiAAKALsASAAKALoASAAQdwBaiAAQSBqIABBHGogAEEYaiAAQfABahChBw0AIAMQmAEaDAELCwJAIABB3AFqECNFDQAgAC0AF0EBRw0AIAAoAhwiAyAAQSBqa0GfAUoNACAAIANBBGo2AhwgAyAAKAIYNgIACyAAIAIgACgCzAEgBBDHCyAAKQMAIQYgBSAAKQMINwMIIAUgBjcDACAAQdwBaiAAQSBqIAAoAhwgBBC0ASAAQfwCaiAAQfgCahBbBEAgBCAEKAIAQQJyNgIACyAAKAL8AiABEDQaIABB3AFqEDQaIABBgANqJAALuQMAIwBB8AJrIgAkACAAIAI2AugCIAAgATYC7AIgAEHMAWogAyAAQeABaiAAQdwBaiAAQdgBahCiByAAQcABahBSIgEgARBWED0gACABQQAQPyICNgK8ASAAIABBEGo2AgwgAEEANgIIIABBAToAByAAQcUAOgAGA0ACQCAAQewCaiAAQegCahBbDQAgACgCvAEgARAjIAJqRgRAIAEQIyEDIAEgARAjQQF0ED0gASABEFYQPSAAIAMgAUEAED8iAmo2ArwBCyAAQewCaiIDEIQBIABBB2ogAEEGaiACIABBvAFqIAAoAtwBIAAoAtgBIABBzAFqIABBEGogAEEMaiAAQQhqIABB4AFqEKEHDQAgAxCYARoMAQsLAkAgAEHMAWoQI0UNACAALQAHQQFHDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAK8ASAEEMgLOQMAIABBzAFqIABBEGogACgCDCAEELQBIABB7AJqIABB6AJqEFsEQCAEIAQoAgBBAnI2AgALIAAoAuwCIAEQNBogAEHMAWoQNBogAEHwAmokAAu5AwAjAEHwAmsiACQAIAAgAjYC6AIgACABNgLsAiAAQcwBaiADIABB4AFqIABB3AFqIABB2AFqEKIHIABBwAFqEFIiASABEFYQPSAAIAFBABA/IgI2ArwBIAAgAEEQajYCDCAAQQA2AgggAEEBOgAHIABBxQA6AAYDQAJAIABB7AJqIABB6AJqEFsNACAAKAK8ASABECMgAmpGBEAgARAjIQMgASABECNBAXQQPSABIAEQVhA9IAAgAyABQQAQPyICajYCvAELIABB7AJqIgMQhAEgAEEHaiAAQQZqIAIgAEG8AWogACgC3AEgACgC2AEgAEHMAWogAEEQaiAAQQxqIABBCGogAEHgAWoQoQcNACADEJgBGgwBCwsCQCAAQcwBahAjRQ0AIAAtAAdBAUcNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArwBIAQQyQs4AgAgAEHMAWogAEEQaiAAKAIMIAQQtAEgAEHsAmogAEHoAmoQWwRAIAQgBCgCAEECcjYCAAsgACgC7AIgARA0GiAAQcwBahA0GiAAQfACaiQAC5oDAQJ/IwBB0AJrIgAkACAAIAI2AsgCIAAgATYCzAIgAxCpAiEGIAMgAEHQAWoQqgQhByAAQcQBaiADIABBxAJqEKkEIABBuAFqEFIiASABEFYQPSAAIAFBABA/IgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqEFsNACAAKAK0ASABECMgAmpGBEAgARAjIQMgASABECNBAXQQPSABIAEQVhA9IAAgAyABQQAQPyICajYCtAELIABBzAJqIgMQhAEgBiACIABBtAFqIABBCGogACgCxAIgAEHEAWogAEEQaiAAQQxqIAcQ3AMNACADEJgBGgwBCwsCQCAAQcQBahAjRQ0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCtAEgBCAGEMoLNwMAIABBxAFqIABBEGogACgCDCAEELQBIABBzAJqIABByAJqEFsEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQNBogAEHEAWoQNBogAEHQAmokAAuaAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQqQIhBiADIABB0AFqEKoEIQcgAEHEAWogAyAAQcQCahCpBCAAQbgBahBSIgEgARBWED0gACABQQAQPyICNgK0ASAAIABBEGo2AgwgAEEANgIIA0ACQCAAQcwCaiAAQcgCahBbDQAgACgCtAEgARAjIAJqRgRAIAEQIyEDIAEgARAjQQF0ED0gASABEFYQPSAAIAMgAUEAED8iAmo2ArQBCyAAQcwCaiIDEIQBIAYgAiAAQbQBaiAAQQhqIAAoAsQCIABBxAFqIABBEGogAEEMaiAHENwDDQAgAxCYARoMAQsLAkAgAEHEAWoQI0UNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArQBIAQgBhDNCzsBACAAQcQBaiAAQRBqIAAoAgwgBBC0ASAAQcwCaiAAQcgCahBbBEAgBCAEKAIAQQJyNgIACyAAKALMAiABEDQaIABBxAFqEDQaIABB0AJqJAALmgMBAn8jAEHQAmsiACQAIAAgAjYCyAIgACABNgLMAiADEKkCIQYgAyAAQdABahCqBCEHIABBxAFqIAMgAEHEAmoQqQQgAEG4AWoQUiIBIAEQVhA9IAAgAUEAED8iAjYCtAEgACAAQRBqNgIMIABBADYCCANAAkAgAEHMAmogAEHIAmoQWw0AIAAoArQBIAEQIyACakYEQCABECMhAyABIAEQI0EBdBA9IAEgARBWED0gACADIAFBABA/IgJqNgK0AQsgAEHMAmoiAxCEASAGIAIgAEG0AWogAEEIaiAAKALEAiAAQcQBaiAAQRBqIABBDGogBxDcAw0AIAMQmAEaDAELCwJAIABBxAFqECNFDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAK0ASAEIAYQzgs3AwAgAEHEAWogAEEQaiAAKAIMIAQQtAEgAEHMAmogAEHIAmoQWwRAIAQgBCgCAEECcjYCAAsgACgCzAIgARA0GiAAQcQBahA0GiAAQdACaiQAC5oDAQJ/IwBB0AJrIgAkACAAIAI2AsgCIAAgATYCzAIgAxCpAiEGIAMgAEHQAWoQqgQhByAAQcQBaiADIABBxAJqEKkEIABBuAFqEFIiASABEFYQPSAAIAFBABA/IgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqEFsNACAAKAK0ASABECMgAmpGBEAgARAjIQMgASABECNBAXQQPSABIAEQVhA9IAAgAyABQQAQPyICajYCtAELIABBzAJqIgMQhAEgBiACIABBtAFqIABBCGogACgCxAIgAEHEAWogAEEQaiAAQQxqIAcQ3AMNACADEJgBGgwBCwsCQCAAQcQBahAjRQ0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCtAEgBCAGEM8LNgIAIABBxAFqIABBEGogACgCDCAEELQBIABBzAJqIABByAJqEFsEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQNBogAEHEAWoQNBogAEHQAmokAAubAQEEfyMAQRBrIgIkAEG4/AgoAgAhBANAAkAgACwAACIBQf8BcSIDRQRAQQAhAQwBCwJAAkAgAUH/AEcgAUEgT3ENACADQQlrIgNBF01BAEEBIAN0QZ+AgARxGw0AIAIgATYCACAEQaLlACACEB4iAUEATg0BDAILIAEgBBCsASIBQQBIDQELIABBAWohAAwBCwsgAkEQaiQAIAEL7QEBAX8jAEEgayIGJAAgBiABNgIcAkAgAygCBEEBcUUEQCAGQX82AgAgACABIAIgAyAEIAYgACgCACgCEBEJACEBAkACQAJAIAYoAgAOAgABAgsgBUEAOgAADAMLIAVBAToAAAwCCyAFQQE6AAAgBEEENgIADAELIAYgAxBRIAYQzQEhASAGEE4gBiADEFEgBhDdAyEAIAYQTiAGIAAQ+gEgBkEMciAAEPkBIAUgBkEcaiACIAYgBkEYaiIDIAEgBEEBEKcFIAZGOgAAIAYoAhwhAQNAIANBDGsQdyIDIAZHDQALCyAGQSBqJAAgAQvnAgEBfyMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIABBxAFqEFIhBiAAQRBqIgIgAxBRIAIQzgFB8LcJQYq4CSAAQdABahD3AiACEE4gAEG4AWoQUiIDIAMQVhA9IAAgA0EAED8iATYCtAEgACACNgIMIABBADYCCANAAkAgAEH8AWogAEH4AWoQXA0AIAAoArQBIAMQIyABakYEQCADECMhAiADIAMQI0EBdBA9IAMgAxBWED0gACACIANBABA/IgFqNgK0AQsgAEH8AWoiAhCFAUEQIAEgAEG0AWogAEEIakEAIAYgAEEQaiAAQQxqIABB0AFqEN4DDQAgAhCZARoMAQsLIAMgACgCtAEgAWsQPSADEEIQaCAAIAU2AgAgABDGC0EBRwRAIARBBDYCAAsgAEH8AWogAEH4AWoQXARAIAQgBCgCAEECcjYCAAsgACgC/AEgAxA0GiAGEDQaIABBgAJqJAAL0AMBAX4jAEGQAmsiACQAIAAgAjYCiAIgACABNgKMAiAAQdABaiADIABB4AFqIABB3wFqIABB3gFqEKYHIABBxAFqEFIiASABEFYQPSAAIAFBABA/IgI2AsABIAAgAEEgajYCHCAAQQA2AhggAEEBOgAXIABBxQA6ABYDQAJAIABBjAJqIABBiAJqEFwNACAAKALAASABECMgAmpGBEAgARAjIQMgASABECNBAXQQPSABIAEQVhA9IAAgAyABQQAQPyICajYCwAELIABBjAJqIgMQhQEgAEEXaiAAQRZqIAIgAEHAAWogACwA3wEgACwA3gEgAEHQAWogAEEgaiAAQRxqIABBGGogAEHgAWoQpQcNACADEJkBGgwBCwsCQCAAQdABahAjRQ0AIAAtABdBAUcNACAAKAIcIgMgAEEgamtBnwFKDQAgACADQQRqNgIcIAMgACgCGDYCAAsgACACIAAoAsABIAQQxwsgACkDACEGIAUgACkDCDcDCCAFIAY3AwAgAEHQAWogAEEgaiAAKAIcIAQQtAEgAEGMAmogAEGIAmoQXARAIAQgBCgCAEECcjYCAAsgACgCjAIgARA0GiAAQdABahA0GiAAQZACaiQAC7kDACMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIABBwAFqIAMgAEHQAWogAEHPAWogAEHOAWoQpgcgAEG0AWoQUiIBIAEQVhA9IAAgAUEAED8iAjYCsAEgACAAQRBqNgIMIABBADYCCCAAQQE6AAcgAEHFADoABgNAAkAgAEH8AWogAEH4AWoQXA0AIAAoArABIAEQIyACakYEQCABECMhAyABIAEQI0EBdBA9IAEgARBWED0gACADIAFBABA/IgJqNgKwAQsgAEH8AWoiAxCFASAAQQdqIABBBmogAiAAQbABaiAALADPASAALADOASAAQcABaiAAQRBqIABBDGogAEEIaiAAQdABahClBw0AIAMQmQEaDAELCwJAIABBwAFqECNFDQAgAC0AB0EBRw0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCsAEgBBDICzkDACAAQcABaiAAQRBqIAAoAgwgBBC0ASAAQfwBaiAAQfgBahBcBEAgBCAEKAIAQQJyNgIACyAAKAL8ASABEDQaIABBwAFqEDQaIABBgAJqJAALuQMAIwBBgAJrIgAkACAAIAI2AvgBIAAgATYC/AEgAEHAAWogAyAAQdABaiAAQc8BaiAAQc4BahCmByAAQbQBahBSIgEgARBWED0gACABQQAQPyICNgKwASAAIABBEGo2AgwgAEEANgIIIABBAToAByAAQcUAOgAGA0ACQCAAQfwBaiAAQfgBahBcDQAgACgCsAEgARAjIAJqRgRAIAEQIyEDIAEgARAjQQF0ED0gASABEFYQPSAAIAMgAUEAED8iAmo2ArABCyAAQfwBaiIDEIUBIABBB2ogAEEGaiACIABBsAFqIAAsAM8BIAAsAM4BIABBwAFqIABBEGogAEEMaiAAQQhqIABB0AFqEKUHDQAgAxCZARoMAQsLAkAgAEHAAWoQI0UNACAALQAHQQFHDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAKwASAEEMkLOAIAIABBwAFqIABBEGogACgCDCAEELQBIABB/AFqIABB+AFqEFwEQCAEIAQoAgBBAnI2AgALIAAoAvwBIAEQNBogAEHAAWoQNBogAEGAAmokAAuPAwEBfyMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIAMQqQIhBiAAQcQBaiADIABB9wFqEKsEIABBuAFqEFIiASABEFYQ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8bic1j83A4gCAkAgAygCmAJBEkcgBEECR3JFBEAgAyADKAKgAjYC5AEgAyADKwOoAjkD8AEgA0GIAWogABCBA0EBIQUgAy0AmAFBAXFFDQEgAysDiAEhCCADIAMrA5ABRAAAAAAAAFJAozkDkAIgAyAIRAAAAAAAAFJAozkDiAIMAQsgA0F/NgLkASAEQQJHIQULQYzhCi0AAARAIANBKGoiASADQbABakHYABAfGiMAQeABayICJABBweIEQRtBAUG4/AgoAgAiBBBMGiACIAErAwA5A9ABIARBjK4EIAJB0AFqEDIgAS0ALCEGIAIgASgCKDYCxAEgAiAGQQFxNgLAASAEQfzOBCACQcABahAeGiABKwMIIQggAkKas+bMmbPm5D83A7gBIAIgCDkDsAEgBEGprgQgAkGwAWoQMiACIAEoAhA2AqABIARBiMsEIAJBoAFqEB4aIAIgASgCFDYClAEgAkEtNgKQASAEQfTLBCACQZABahAeGiACIAEoAhg2AoABIAJC/NPGl93JmKg/NwN4IAJCs+bMmbPmzPE/NwNwIARBocsEIAJB8ABqEDIgASsDICEIIAIgBkEBdkEBcTYCYCACIAg5A1ggAkLNmbPmzJmz9j83A1AgBEG5zQQgAkHQAGoQMiACIAErA0g5A0ggAkEANgJEIAIgBkECdkEBcTYCQCAEQdetBCACQUBrEDIgASgCMCEGIAEoAjQhByABKwNAIQggAiABLQA4NgIwIAIgCDkDKCACIAc2AiQgAiAGQQJ0QfDRCGooAgA2AiAgBEH4zAQgAkEgahAyIAIgASgCPEECdEGQ0ghqKAIANgIQIARBrIQEIAJBEGoQHhogAiABKAJQNgIAIARBxs4EIAIQHhogAkHgAWokAAsgACADQawBahCjCCEEAkAgAygCrAFBAUYEQCADIAMpA5ACNwMQIAMgAykDiAI3AwggACADQbABaiADQQhqEM8MIAVFBEAgACADQZgCahD1AxoLIAAQsQMMAQsgAEECQQggA0GIAWoQ/QMaIANBAToAlAFBACECA0AgAygCrAEiASACTQRAIAEgBCAAIANBiAFqEP0FDAILIAQgAkECdGooAgAiAUEAELYDGiADIAMpA5ACNwMgIAMgAykDiAI3AxggASADQbABaiADQRhqEM8MIAVFBEAgASADQZgCahD1AxoL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CBDUA0GMIBCNB0G48wlBwAMQAQALIAEoAggoAiAiAy0AKA0BIAMQ6Q0MAQsLAkAgBUEEaiICKAIIRQ0AIAIoAgQiACgCACIBIAIoAgAoAgQiAzYCBCADIAE2AgAgAkEANgIIA0AgACACRg0BIAAoAgQgABAYIQAMAAsACyAFQRBqJAALugECAn8CfET////////v/yEEAnxE////////7/8gASgCACgCICICKAIsIAEoAhhKDQAaRP///////+//IAIgASgCBCgCIEYNABogARC4AgshBQJAIAAoAgAoAiAiAigCLCAAKAIYSg0AIAIgACgCBCgCIEYNACAAELgCIQQLIAQgBWEEQCABKAIAKAIAIgIgACgCACgCACIDRgRAIAEoAgQoAgAgACgCBCgCAEgPCyACIANIDwsgBCAFZAsZAQJ+IAApAwgiAiABKQMIIgNWIAIgA1RrCzMAIAAQ5Q0gACABKAIANgIAIAAgASgCBDYCBCAAIAEoAgg2AgggAUEANgIIIAFCADcCAAvKAQEHfyMAQRBrIgUkACAAQQA2AgggAEIANwIAQShBNCACGyEHIAEoAgQhCCABKAIAIQQDQCAEIAhHBEAgBCgCACAHaiIDKAIEIQkgAygCACEDA0AgAyAJRgRAIARBBGohBAwDBSAFIAMoAgAiBjYCDCAGQYiFCygCADYCGAJAAkAgAgRAIAYoAgAoAiAgAUcNAQsgAg0BIAYoAgQoAiAgAUYNAQsgACAFQQxqEMEBCyADQQRqIQMMAQsACwALCyAAEPMNIAVBEGokAAsdACAAKAIAQQR2IgAgASgCAEEEdiIBSyAAIAFJaws+AQJ8An9BfyAAKwMAIgIgASsDACIDYw0AGkEBIAIgA2QNABpBfyAAKwMIIgIgASsDCCIDYw0AGiACIANkCwscACAAKAIMIAEoAgxqIAAoAgQgASgCBGprQQJtCxwAIAAoAgggASgCCGogACgCACABKAIAamtBAm0LjAEBB38CQCAAKAIgIgMgASgCKCIESg0AIAEoAiAiBSAAKAIoIgZKDQBBASECIAAoAiwiByABKAIkIghIDQAgACgCECABKAIQayAHIAEoAixqIAAoAiQgCGprQQJtaiAGIAMgBWprIARqQQJtIAEoAgwiASAAKAIMIgBrIAAgAWsgACABShtqTCECCyACC4wBAQd/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KAIAQQR2IgEgACgCAEEEdiIASQ0CIAAgAUkhAgwCC0EBIQIMAQtBfyECCyAEQeADaiQAIAILCQAgASAAEI0BCxYAIAEgAiAAEMMHRQRAQQAPCyABEDwLJQAgACgCACgCECgC+AEiACABKAIAKAIQKAL4ASIBSiAAIAFIawsSACABQcO/ASACKAIIQQEQNRoLEgAgAUHSvwEgAigCBEEBEDUaCxIAIAFBs78BIAIoAgBBARA1GgsZAEF/IAAoAgAiACABKAIAIgFLIAAgAUkbCyUAIAAoAgAoAhAoAvQBIgAgASgCACgCECgC9AEiAUogACABSGsLJQAgASgCACgCECgC9AEiASAAKAIAKAIQKAL0ASIASiAAIAFKawtAAgJ8AX8gACsDACICIAErAwAiA2QEQCAAKwMIIAErAwhlRQ8LIAIgA2MEf0EAQX8gACsDCCABKwMIZhsFQQALC9wBAQV/IAAoAighBQNAIAUoAgQhASAFKAIAIANLBEAgASADQRhsakEIaiEBQQAhAgNAIAEoAgggAksEQCABIAIQ2wgaIAEgAhCZBhogAkEBaiECDAELCyABQgA3AgQgASgCABAYIAFCADcCCCABQgA3AgAgA0EBaiEDDAELCyABEBggBRAYIABBGGohAiAAKAIgIQECQANAIAEgBE0NASACIAQQXRogBCAAKAIgIgFJIARBAWohBA0AC0HCvANBkoMBQTVBpikQAAALIABCADcCHCAAKAIYEBggABAYCyABAnxBAUF/QQAgACsDACICIAErAwAiA2MbIAIgA2QbCw8AIAAoAhAQmwEaIAAQGAtaAgF8AX9BfyAAKwMIIAErAwihIgJESK+8mvLXej5kIAJESK+8mvLXer5jGyIDBH8gAwVBfyAAKwMAIAErAwChIgJESK+8mvLXej5kIAJESK+8mvLXer5jGwsLWgIBfAF/QX8gACsDACABKwMAoSICREivvJry13o+ZCACREivvJry13q+YxsiAwR/IAMFQX8gACsDCCABKwMIoSICREivvJry13o+ZCACREivvJry13q+YxsLCyMAIAAoAhAoAgBBBHYiACABKAIQKAIAQQR2IgFLIAAgAUlrCxQAIAAoAhBBHGogAEcEQCAAEBgLC44BAgF/BHwjAEEwayIDJAAgAyABKAIIIgQ2AiQgAyAENgIgIABB6YMF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BEGk3AQgA0HgAWoQgQEgA0GUgwsoAgA2AtABIAMgBiAHIA2goiIGOQPAASADIAogCyAMoKIiBzkDyAEgBEHD3QQgA0HAAWoQgQEgAyABNgKwASAEQZ7YAyADQbABahCBASAAIAQQnAYQGhogARAYIAIEQCADQYgBaiIBIAAoAhBBOGpBKBAfGiABQwAAAAAQwAMhASADQgA3A4ABIANCADcDeCADQgA3A3AgAEHQ5gQgA0HwAGoQHSADQoCAgICAgID4PzcDYCADIAg5A1ggAyAFOQNQIABByNwEIANB0ABqEB0gA0FAayAAKALoArK7OQMAIANCADcDOCADQgA3AzAgAEGk3AQgA0EwahAdIANBlIMLKAIANgIgIAMgBjkDECADIAc5AxggAEHD3QQgA0EQahAdIAMgATYCACAAQZ7YAyADEB0gARAYCyADQeACahBfIANB8AJqJAAL7QMCA38GfCMAQdABayIDJAAgAigCACEEIAIoAgQiBSsDECEGIAMgBSgCADYCsAEgAyAGOQOoASADIAQ2AqABIABB7YcEIANBoAFqEB1BlIMLQZCDCygCAEEJazYCAAJ8IAErAwAiBiACLQAwIgRB7ABGDQAaIARB8gBGBEAgBiACKwMgoQwBCyAGIAIrAyBEAAAAAAAA4L+ioAshBiAAKwPwAyEHIAArA4AEIQggASsDCCEJIAArA+gDIQogACsD+AMhCyADQfgAaiIBIAAoAhBBEGpBKBAfGiABQwAAAAAQwAMhASADQgA3A8gBIANCADcDwAEgAigCBCgCACEEIAIoAgAhBSADQgA3A3AgA0KAgICAgICA6D83A2ggAyAFNgJkIAMgBDYCYCADQcABaiIEQfXlAyADQeAAahCBASADIAIoAgQrAxAgACsD6AOiOQNQIARB5a4EIANB0ABqEIEBIANBQGsgACgC6AKyuzkDACADQgA3AzggA0IANwMwIARBpNwEIANBMGoQgQEgA0GUgwsoAgA2AiAgAyAKIAYgC6CiOQMQIAMgByAJIAigojkDGCAEQcPdBCADQRBqEIEBIAMgATYCACAEQZ7YAyADEIEBIAAgBBCcBhAaGiAEEF8gARAYIANB0AFqJAALHAAgAEGCuwQQGhpBkIMLQZCDCygCAEEFajYCAAscACAAQfC6BBAaGkGQgwtBkIMLKAIAQQVrNgIA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NBDoBDYCOAJAIABBrCtBAEEBEDUEQCAAKAIQKAIIDQELIAEtAJsBQQRxDQBBk7kEQQAQNgwBCyABQQA2AiQgASABKAKYAUGAgIDAAHI2ApgBIAIgABC6BhogARCPBCACEJ0ECyADQRBqJAAgAhCdBCACEBgPCyAAKAIAKAKgARDvCAsLGwAgAEH41gMQGhogACABEIwBIABBgN4EEBoaC2gBAn8gAEG1ngEQGhogAEEAQQAQ4gQgAEGszQMQGhoDQCACIANHBEAgACABIANBBHRqIgQrAwAQfSAAQSwQZyAAIAQrAwiaEH0gA0EBaiIDIAJGDQEgAEEgEGcMAQsLIABB6d0EEBoaCwurmQqVAwBBgAgL5oIF/9j/AMXQ08YAfgB7JXN9ACAtdGFncyB7JWQlcyVwfQAgJS4wZn0AJXMgeyAlcyB9AHxlZGdlbGFiZWx8ACAtZm9udCB7AHF1YXJ0egBpZHggPT0gc3oAY250ID09IHN6AGxvegBncmFwaHZpegBndndyaXRlX25vX3oAcG9ydGhveHkAc2NhbGV4eQAvc3ZnL25hdnkAaW52ZW1wdHkAbm9kZV9zZXRfaXNfZW1wdHkAbm9kZXNfaXNfZW1wdHkAcmVmZXJlbmNlIHRvIGJpbmFyeSBlbnRpdHkAYXN5bmNocm9ub3VzIGVudGl0eQBpbmNvbXBsZXRlIG1hcmt1cCBpbiBwYXJhbWV0ZXIgZW50aXR5AGVudGl0eSBkZWNsYXJlZCBpbiBwYXJhbWV0ZXIgZW50aXR5AGNhbm5vdCBzdXNwZW5kIGluIGV4dGVybmFsIHBhcmFtZXRlciBlbnRpdHkAWE1MIG9yIHRleHQgZGVjbGFyYXRpb24gbm90IGF0IHN0YXJ0IG9mIGVudGl0eQB1bmRlZmluZWQgZW50aXR5AHBhcnNlci0+bV9vcGVuSW50ZXJuYWxFbnRpdGllcyA9PSBvcGVuRW50aXR5AHBhcnNlci0+bV9vcGVuVmFsdWVFbnRpdGllcyA9PSBvcGVuRW50aXR5AHBhcnNlci0+bV9vcGVuQXR0cmlidXRlRW50aXRpZXMgPT0gb3BlbkVudGl0eQBpbmZpbml0eQBsaXN0LT5zaXplIDwgbGlzdC0+Y2FwYWNpdHkAZmFudGFzeQBTcGFyc2VNYXRyaXhfY29vcmRpbmF0ZV9mb3JtX2FkZF9lbnRyeQAvc3ZnL2l2b3J5AG91dCBvZiBtZW1vcnkARmVicnVhcnkASmFudWFyeQBndnBsdWdpbl9kb3RfbGF5b3V0X0xUWF9saWJyYXJ5AGd2cGx1Z2luX25lYXRvX2xheW91dF9MVFhfbGlicmFyeQBndnBsdWdpbl9jb3JlX0xUWF9saWJyYXJ5AGdhdGhlcl90aW1lX2VudHJvcHkAbm9kZXNfY29weQBhbGJhbnkASnVseQBTcGFyc2VNYXRyaXhfbXVsdGlwbHkAZXF1YWxseQBhc3NlbWJseQBzdW1tZXJza3kAc2h5AHNhdGlzZnkAYmVhdXRpZnkAbm9qdXN0aWZ5AENsYXNzaWZ5AC9zdmcvbGlnaHRncmV5AC9zdmcvZGltZ3JleQAvc3ZnL2RhcmtncmV5AC9zdmcvbGlnaHRzbGF0ZWdyZXkAL3N2Zy9kYXJrc2xhdGVncmV5AC9zdmcvc2xhdGVncmV5AHdlYmdyZXkAeDExZ3JleQAvc3ZnL2dyZXkAbW92ZSB0byBmcm9udCBsb2NrIGluY29uc2lzdGVuY3kAZXh0cmFjdF9hZGphY2VuY3kAbWVyZ2Vfb25ld2F5AGFycmF5AGFsbG9jQXJyYXkAL3N2Zy9saWdodGdyYXkAL3N2Zy9kaW1ncmF5AC9zdmcvZGFya2dyYXkAL3N2Zy9saWdodHNsYXRlZ3JheQAvc3ZnL2RhcmtzbGF0ZWdyYXkAL3N2Zy9zbGF0ZWdyYXkAd2ViZ3JheQB4MTFncmF5AC9zdmcvZ3JheQBUaHVyc2RheQBUdWVzZGF5AFdlZG5lc2RheQBTYXR1cmRheQBTdW5kYXkATW9uZGF5AEZyaWRheQBNYXkALi4vLi4vbGliL2NncmFwaC9ncmFtbWFyLnkALi4vLi4vbGliL2NvbW1vbi9odG1scGFyc2UueQAlbS8lZC8leQBwb3J0aG95eABwb3J0aG9feXgAeHh4AGJveAB2aWV3Qm94AGNoa0JvdW5kQm94AC9NZWRpYUJveABnZXRfZWRnZV9sYWJlbF9tYXRyaXgAaWRlYWxfZGlzdGFuY2VfbWF0cml4AG11c3Qgbm90IHVuZGVjbGFyZSBwcmVmaXgAdW5ib3VuZCBwcmVmaXgAaHRtbGxleABtYXgAIyUwMnglMDJ4JTAyeAAjJTJ4JTJ4JTJ4JTJ4ACMlMXglMXglMXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweAByYXJyb3cAbGFycm93AEhlbHZldGljYS1OYXJyb3cAYXJyb3dfbGVuZ3RoX2Nyb3cAL3N2Zy9zbm93AHNwcmluZ19lbGVjdHJpY2FsX2VtYmVkZGluZ19zbG93AC9zdmcvbGlnaHR5ZWxsb3cAL3N2Zy9ncmVlbnllbGxvdwAvc3ZnL2xpZ2h0Z29sZGVucm9keWVsbG93AC9zdmcveWVsbG93AGZhdGFsIGVycm9yIC0gc2Nhbm5lciBpbnB1dCBidWZmZXIgb3ZlcmZsb3cAZmxleCBzY2FubmVyIHB1c2gtYmFjayBvdmVyZmxvdwBjb3VyaWVybmV3AFNwcmluZ1Ntb290aGVyX25ldwBUcmlhbmdsZVNtb290aGVyX25ldwBkaWFnX3ByZWNvbl9uZXcAUXVhZFRyZWVfbmV3AFN0cmVzc01ham9yaXphdGlvblNtb290aGVyMl9uZXcAbiAmJiBuZXcAc2tldwBzdHJ2aWV3AC9zdmcvaG9uZXlkZXcAIC1hbmNob3IgdwBzb3J0dgBwb3Y6cG92AE5vdgBpbnYAZXF1aXYAcGl2AG5vbmFtZS5ndgBHRF9yYW5rKGcpW3JdLmF2ID09IEdEX3JhbmsoZylbcl0udgBjYyVzXyV6dQBjYyVzKyV6dQAvc3ZnL3BlcnUAbnUAbXUAJWMlbGx1AFRodQB0YXUAVGF1AE51AE11AF9wb3J0XyVzXyglZClfKCVkKV8ldQBOdW1iZXIgb2YgaXRlcmF0aW9ucyA9ICV1AE51bWJlciBvZiBpbmNyZWFzZXMgPSAldQBwbGFpbnRleHQAc3RyZXNzd3QAaW5wdXQAdGV4dGxheW91dABkb3RfbGF5b3V0AG5lYXRvX2xheW91dABpbml0TGF5b3V0AGNsdXN0AG1hcENsdXN0AGxhYmVsanVzdABzY0FkanVzdABBdWd1c3QAZWRnZXNmaXJzdABub2Rlc2ZpcnN0AG1heGltYWxfaW5kZXBlbmRlbnRfZWRnZV9zZXRfaGVhdmVzdF9lZGdlX3Blcm5vZGVfc3VwZXJub2Rlc19maXJzdABleGlzdAByZWFsaWduTm9kZWxpc3QAYXBwZW5kTm9kZWxpc3QAZGVmYXVsdGRpc3QAbWluZGlzdABwb3dlcl9kaXN0AGdyYXBoX2Rpc3QAYXZnX2Rpc3QAZ2V0RWRnZUxpc3QAaXF1ZXN0AGxvd2FzdABzcHJpbmdfZWxlY3RyaWNhbF9lbWJlZGRpbmdfZmFzdABndl9zb3J0AHZpZXdwb3J0AHRhaWxwb3J0AHVuZXhwZWN0ZWQgcGFyc2VyIHN0YXRlIC0gcGxlYXNlIHNlbmQgYSBidWcgcmVwb3J0AGhlYWRwb3J0AGh0bWxfcG9ydABpbnNlcnQAUlRyZWVJbnNlcnQAZmluZFNWZXJ0AHN0YXJ0AHBhcnQAZXN0aW1hdGVfdGV4dF93aWR0aF8xcHQAcXVvdAB/cm9vdABub3QAbWFrZV92bl9zbG90AGVtaXRfeGRvdAB4ZG90Onhkb3QAZXBzOnhkb3QAc3ZnOnhkb3QAanBnOnhkb3QAcG5nOnhkb3QAanBlZzp4ZG90AGdpZjp4ZG90AGpwZTp4ZG90AHhkb3QxLjQ6eGRvdAB4ZG90MS4yOnhkb3QAc2RvdABtaWRkb3QAZ3Y6ZG90AHBsYWluLWV4dDpkb3QAZG90OmRvdABlcHM6ZG90AGNhbm9uOmRvdABwbGFpbjpkb3QAc3ZnOmRvdABqcGc6ZG90AHBuZzpkb3QAanBlZzpkb3QAZ2lmOmRvdABqcGU6ZG90AH9ib3QAZG9Eb3QAb2JqbGlzdF9mcm9udABwb2ludHNfZnJvbnQAY29sb3JzZWdzX2Zyb250AG5vZGVsaXN0X3BvcF9mcm9udABwYnNfc2l6ZV9mcm9udABzcGFuLT5mb250AHZhZ3hicHJpbnQAeGRvdF9wb2ludABkZWNpZGVfcG9pbnQAVW5zYXRpc2ZpZWQgY29uc3RyYWludAB0cmFuc3BhcmVudABjb21wb25lbnQAaW52YWxpZCBhcmd1bWVudABjb21tZW50AGp1bmsgYWZ0ZXIgZG9jdW1lbnQgZWxlbWVudABjZW50AGkgPT0gZWNudABhcmlhbG10AGx0AGNpcmN1aXQAcG9seV9pbml0AE11bHRpbGV2ZWxfaW5pdABuc2xpbWl0AG1jbGltaXQAUG9ydHJhaXQAbGlnaHQAdmlydHVhbF93ZWlnaHQAbGhlaWdodABLUF9SaWdodABCb29rbWFuLUxpZ2h0AGd0AEtQX0xlZnQAY2hhcnNldABpbnNldABiaXRhcnJheV9yZXNldABzdWJzZXQAYml0YXJyYXlfc2V0AG1hdHJpeF9zZXQAbm9kZWxpc3Rfc2V0AGVkZ2VfbGlzdF9zZXQAdHJhcHNfc2V0AG5vZGVzX3NldABzY2FybGV0AC9zdmcvZGFya3Zpb2xldAAvc3ZnL2JsdWV2aW9sZXQAL3N2Zy92aW9sZXQAVHJlYnVjaGV0AGFneGdldAB0YWlsdGFyZ2V0AGxhYmVsdGFyZ2V0AGVkZ2V0YXJnZXQAaGVhZHRhcmdldABiaXRhcnJheV9nZXQAZGVnbGlzdF9nZXQAbm9kZWxpc3RfZ2V0AGFkal9saXN0X2dldABzZWdfbGlzdF9nZXQAc2FtZV9saXN0X2dldABlZGdlX2xpc3RfZ2V0AG5vZGVfbGlzdF9nZXQAc2ZvbnRfZ2V0AGVkZ2Vfc2V0X2dldAByb3dzX2dldAB0c3RzX2dldABwb2ludHNfZ2V0AHBhaXJzX2dldAB0cmFwc19nZXQAY2VsbHNfZ2V0AGNvbG9yc2Vnc19nZXQAYm94ZXNfZ2V0AHRyaWFuZ2xlc19nZXQAY3ljbGVzX2dldABxbm9kZXNfZ2V0AGVzdGFja19nZXQAaW50X3N0YWNrX2dldABkZnNfc3RhY2tfZ2V0AG5vZGVfc3RhY2tfZ2V0AGJlemllcl9wYXRoX2dldABub2RlX3F1ZXVlX2dldABzdHlsZXNoZWV0AHN0cmljdABhZ2NvcHlkaWN0AGFnbWFrZWRhdGFkaWN0AHJlYy0+ZGljdCA9PSBkYXRhZGljdAB3cml0ZV9kaWN0AHNlY3QAZW5jb2Rpbmcgc3BlY2lmaWVkIGluIFhNTCBkZWNsYXJhdGlvbiBpcyBpbmNvcnJlY3QAYXNwZWN0AGxheWVyc2VsZWN0AEtQX1N1YnRyYWN0AFF1YWRUcmVlX3JlcHVsc2l2ZV9mb3JjZV9pbnRlcmFjdABjb21wYWN0AE9jdAByZXF1ZXN0ZWQgZmVhdHVyZSByZXF1aXJlcyBYTUxfRFREIHN1cHBvcnQgaW4gRXhwYXQAbGFiZWxmbG9hdABsYWJlbF9mbG9hdABTcGFyc2VNYXRyaXhfZnJvbV9jb29yZGluYXRlX2Zvcm1hdAAvc3ZnL3doZWF0AG9iamxpc3RfYXQAZGVnbGlzdF9hdABub2RlbGlzdF9hdABhZGpfbGlzdF9hdABzZWdfbGlzdF9hdABzYW1lX2xpc3RfYXQAZWRnZV9saXN0X2F0AG5vZGVfbGlzdF9hdABzZm9udF9hdABlZGdlX3NldF9hdAByb3dzX2F0AHRzdHNfYXQAcG9pbnRzX2F0AHBhaXJzX2F0AHRyYXBzX2F0AGh0ZXh0c3BhbnNfYXQAY2VsbHNfYXQAY29sb3JzZWdzX2F0AGJveGVzX2F0AHRyaWFuZ2xlc19hdABjeWNsZXNfYXQAcW5vZGVzX2F0AGVzdGFja19hdABpbnRfc3RhY2tfYXQAZGZzX3N0YWNrX2F0AG5vZGVfc3RhY2tfYXQAbm9kZV9xdWV1ZV9hdABTYXQAQWdyYXBoaW5mb190AEFnZWRnZWluZm9fdABBZ25vZGVpbmZvX3QAXHQAZmxhdGluZGV4KGFnaGVhZChlKSkgPCBNLT5ucm93cwBtaW51cwBvcGx1cwBoZWFydHMAc2FtcGxlcG9pbnRzAGRpcmVkZ2Vjb25zdHJhaW50cwBsZXZlbCBhc3NpZ25tZW50IGNvbnN0cmFpbnRzAHh5IHBzZXVkby1vcnRob2dvbmFsIGNvbnN0cmFpbnRzAHl4IHBzZXVkby1vcnRob2dvbmFsIGNvbnN0cmFpbnRzAHh5IG9ydGhvZ29uYWwgY29uc3RyYWludHMAeXggb3J0aG9nb25hbCBjb25zdHJhaW50cwBsaW5lIHNlZ21lbnRzAHNldF9jZWxsX2hlaWdodHMAcmVjdHMAYWNjb3VudGluZ1JlcG9ydFN0YXRzAGVudGl0eVRyYWNraW5nUmVwb3J0U3RhdHMAWmFwZkRpbmdiYXRzAHJlbWluY3Jvc3MAY29tcHJlc3MAZ3Z1c2Vyc2hhcGVfZmlsZV9hY2Nlc3MAYnJhc3MAY2xhc3MAYXBwbHlhdHRycwBhZ21ha2VhdHRycwBiaW5kYXR0cnMAcGFyc2VfbGF5ZXJzAG1rQ2x1c3RlcnMAcm91bmRfY29ybmVycwBtYWtlX2JhcnJpZXJzAGNkYXRhLm50b3BsZXZlbCA9PSBhZ25ub2RlcyhnKSAtIGNkYXRhLm52YXJzAGNhbm5vdCByZWFsbG9jIG9wcwBjYW5ub3QgcmVhbGxvYyBwbmxwcwBlcHMAY29yZV9sb2FkaW1hZ2VfcHMAZXBzOnBzAHBzMjpwcwAobGliKTpwcwBndl90cmltX3plcm9zAGFneGJ1Zl90cmltX3plcm9zAHRleGd5cmVoZXJvcwBpbWFnZXBvcwB0aW5vcwBzZXRFZGdlTGFiZWxQb3MAU2V0dGluZyBpbml0aWFsIHBvc2l0aW9ucwB4bGludGVyc2VjdGlvbnMAY29sdW1ucwBub2Rlc19jb250YWlucwBkZWphdnVzYW5zAG5pbWJ1c3NhbnMAbGliZXJhdGlvbnNhbnMAZnJlZXNhbnMAT3BlblNhbnMAb2Zmc2V0ID09IG5fdGVybXMAZGl0ZW1zAGRpYW1zAGZsYXRpbmRleChhZ3RhaWwoZSkpIDwgTS0+bmNvbHMAY2Fubm90IHJlYWxsb2MgZHEucG5scwBjYW5ub3QgcmVhbGxvYyBwbmxzAGxldmVscwBmb3JjZWxhYmVscwBkaWFnb25hbHMAbWVyZ2VfcmFua3MAc3BsaXRCbG9ja3MAaW52aXMAY2Fubm90IHJlYWxsb2MgdHJpcwBzZXRfY2VsbF93aWR0aHMAQ2FsY3VsYXRpbmcgc2hvcnRlc3QgcGF0aHMAeWVzAHNob3dib3hlcwBiZWF1dGlmeV9sZWF2ZXMAYXR0YWNoX2VkZ2VfbGFiZWxfY29vcmRpbmF0ZXMAcG9seWxpbmVzAHNwbGluZXMAb3J0aG9nb25hbCBsaW5lcwB0ZXhneXJldGVybWVzAG90aW1lcwBUaW1lcwBmb250bmFtZXMAcHJlZml4IG11c3Qgbm90IGJlIGJvdW5kIHRvIG9uZSBvZiB0aGUgcmVzZXJ2ZWQgbmFtZXNwYWNlIG5hbWVzAFNwYXJzZU1hdHJpeF9zdW1fcmVwZWF0X2VudHJpZXMAcGVyaXBoZXJpZXMAR2V0QnJhbmNoZXMAZiA8IGdyYXBoW2pdLm5lZGdlcwBtaW5tYXhfZWRnZXMAZXhjaGFuZ2VfdHJlZV9lZGdlcwBtYWtlU3RyYWlnaHRFZGdlcwB1bmRvQ2x1c3RlckVkZ2VzAGNvbXBvdW5kRWRnZXMAbWVyZ2VfdHJlZXMAX19jbHVzdGVybm9kZXMAYWdubm9kZXMATkRfaWQobnApID09IG5fbm9kZXMATG9hZE5vZGVzAHNpZGVzAHNwYWRlcwB2ZXJ0aWNlcwBjb29yZHMAc2V0Ym91bmRzAG1kcwBjZHMAbWFrZVNlbGZBcmNzAGVtaXRfZWRnZV9ncmFwaGljcwBjbHVicwBjb25zb2xhcwAlbGYlMnMAClN0cmluZyBzdGFydGluZzo8JS44MHMAClN0cmluZyBzdGFydGluZzoiJS44MHMAICUuKnMAJXMlcwBleHBhdDogQWNjb3VudGluZyglcCk6IERpcmVjdCAlMTBsbHUsIGluZGlyZWN0ICUxMGxsdSwgYW1wbGlmaWNhdGlvbiAlOC4yZiVzACUuKnMlYyVzACAlczolcwBfXyVkOiVzAC8lcy8lcwAlcy0lcwAsJXMAIGZvbnQtZmFtaWx5PSIlcwAiIHN0cm9rZS1kYXNoYXJyYXk9IiVzACIgY2xhc3M9IiVzAHBvbHkgJXMAKCglZiwlZiksKCVmLCVmKSkgJXMgJXMAY29sb3IgJXMAcm9vdCA9ICVzACBUaXRsZTogJXMAInN0cmljdCI6ICVzAGNvdXIAdXRyAGFwcGVuZGF0dHIAYWRkYXR0cgBiZWdpbnN0cgBmc3RyAHN0cnZpZXdfc3RyAHBvdl9jb2xvcl9hc19zdHIAdnBzYyE9bnVsbHB0cgBiZW5kVG9TdHIAdWFycgBjcmFycgBsYXJyAGhhcnIAZGFycgB1QXJyAHJBcnIAbEFycgBoQXJyAGRBcnIAQXByAFNwYXJzZU1hdHJpeF9tdWx0aXBseV92ZWN0b3IAdGVybWluYXRvcgBpbnN1bGF0b3IAaW50ZXJuYWxFbnRpdHlQcm9jZXNzb3IAdGV4Z3lyZWN1cnNvcgBzeW50YXggZXJyb3IAbW9uZXlfZ2V0IGVycm9yAEVycm9yAHJmbG9vcgBsZmxvb3IAbGFiZWxmb250Y29sb3IAcGVuY29sb3IAZmlsbGNvbG9yAGJnY29sb3IAcm93IG1ham9yAGNvbHVtbiBtYWpvcgBuZWlnaGJvcgBzdHlsZV9vcgBtcgByYW5rZGlyAHBhZ2VkaXIAbGF5ZXIAdXBwZXIgPj0gbG93ZXIATm9kZUNvdmVyAC9zdmcvc2lsdmVyAGNsdXN0ZXIAZXhwYW5kQ2x1c3RlcgBycHJvbW90ZXIAbHByb21vdGVyAGNlbnRlcgBtYXhpdGVyAHBhcnRpYWwgY2hhcmFjdGVyACEgcm9vdFBhcnNlci0+bV9wYXJlbnRQYXJzZXIAZGtncmVlbmNvcHBlcgBjb29sY29wcGVyAGd2X3NvcnRfY29tcGFyX3dyYXBwZXIAdGFwZXIAb3ZlcmxhcF9iZXppZXIAZmlnX2JlemllcgBjb3VyaWVyAENvdXJpZXIAaGllcgBkYWdnZXIARGFnZ2VyAG91dHB1dG9yZGVyAHBvc3RvcmRlcgBmbGF0X3Jlb3JkZXIAY2VsbGJvcmRlcgBmaXhMYWJlbE9yZGVyAGN5bGluZGVyAC9zdmcvbGF2ZW5kZXIAcmVuZGVyAGZvbGRlcgBjbHVzdGVyX2xlYWRlcgBORF9VRl9zaXplKG4pIDw9IDEgfHwgbiA9PSBsZWFkZXIAT2N0b2JlcgByZWZlcmVuY2UgdG8gaW52YWxpZCBjaGFyYWN0ZXIgbnVtYmVyAE5vdmVtYmVyAFNlcHRlbWJlcgBEZWNlbWJlcgBtYWNyAGJyAHN0YXIAZmVsZHNwYXIAcmVndWxhcgBodGV4dHNwYW5zX2NsZWFyAGlvc19iYXNlOjpjbGVhcgBicnZiYXIATWFyAFxyAE5EX3JhbmsodikgPT0gcgBzdHJlcQBzdHJ2aWV3X2VxAHN0cnZpZXdfc3RyX2VxAHN0cnZpZXdfY2FzZV9zdHJfZXEAc3Rydmlld19jYXNlX2VxAHZwACUlQmVnaW5Qcm9sb2cKL0RvdERpY3QgMjAwIGRpY3QgZGVmCkRvdERpY3QgYmVnaW4KCi9zZXR1cExhdGluMSB7Cm1hcmsKL0VuY29kaW5nVmVjdG9yIDI1NiBhcnJheSBkZWYKIEVuY29kaW5nVmVjdG9yIDAKCklTT0xhdGluMUVuY29kaW5nIDAgMjU1IGdldGludGVydmFsIHB1dGludGVydmFsCkVuY29kaW5nVmVjdG9yIDQ1IC9oeXBoZW4gcHV0CgolIFNldCB1cCBJU08gTGF0aW4gMSBjaGFyYWN0ZXIgZW5jb2RpbmcKL3N0YXJuZXRJU08gewogICAgICAgIGR1cCBkdXAgZmluZGZvbnQgZHVwIGxlbmd0aCBkaWN0IGJlZ2luCiAgICAgICAgeyAxIGluZGV4IC9GSUQgbmUgeyBkZWYgfXsgcG9wIHBvcCB9IGlmZWxzZQogICAgICAgIH0gZm9yYWxsCiAgICAgICAgL0VuY29kaW5nIEVuY29kaW5nVmVjdG9yIGRlZgogICAgICAgIGN1cnJlbnRkaWN0IGVuZCBkZWZpbmVmb250Cn0gZGVmCi9UaW1lcy1Sb21hbiBzdGFybmV0SVNPIGRlZgovVGltZXMtSXRhbGljIHN0YXJuZXRJU08gZGVmCi9UaW1lcy1Cb2xkIHN0YXJuZXRJU08gZGVmCi9UaW1lcy1Cb2xkSXRhbGljIHN0YXJuZXRJU08gZGVmCi9IZWx2ZXRpY2Egc3Rhcm5ldElTTyBkZWYKL0hlbHZldGljYS1PYmxpcXVlIHN0YXJuZXRJU08gZGVmCi9IZWx2ZXRpY2EtQm9sZCBzdGFybmV0SVNPIGRlZgovSGVsdmV0aWNhLUJvbGRPYmxpcXVlIHN0YXJuZXRJU08gZGVmCi9Db3VyaWVyIHN0YXJuZXRJU08gZGVmCi9Db3VyaWVyLU9ibGlxdWUgc3Rhcm5ldElTTyBkZWYKL0NvdXJpZXItQm9sZCBzdGFybmV0SVNPIGRlZgovQ291cmllci1Cb2xkT2JsaXF1ZSBzdGFybmV0SVNPIGRlZgpjbGVhcnRvbWFyawp9IGJpbmQgZGVmCgolJUJlZ2luUmVzb3VyY2U6IHByb2NzZXQgZ3JhcGh2aXogMCAwCi9jb29yZC1mb250LWZhbWlseSAvVGltZXMtUm9tYW4gZGVmCi9kZWZhdWx0LWZvbnQtZmFtaWx5IC9UaW1lcy1Sb21hbiBkZWYKL2Nvb3JkZm9udCBjb29yZC1mb250LWZhbWlseSBmaW5kZm9udCA4IHNjYWxlZm9udCBkZWYKCi9JbnZTY2FsZUZhY3RvciAxLjAgZGVmCi9zZXRfc2NhbGUgewogICAgICAgZHVwIDEgZXhjaCBkaXYgL0ludlNjYWxlRmFjdG9yIGV4Y2ggZGVmCiAgICAgICBzY2FsZQp9IGJpbmQgZGVmCgolIHN0eWxlcwovc29saWQgeyBbXSAwIHNldGRhc2ggfSBiaW5kIGRlZgovZGFzaGVkIHsgWzkgSW52U2NhbGVGYWN0b3IgbXVsIGR1cCBdIDAgc2V0ZGFzaCB9IGJpbmQgZGVmCi9kb3R0ZWQgeyBbMSBJbnZTY2FsZUZhY3RvciBtdWwgNiBJbnZTY2FsZUZhY3RvciBtdWxdIDAgc2V0ZGFzaCB9IGJpbmQgZGVmCi9pbnZpcyB7L2ZpbGwge25ld3BhdGh9IGRlZiAvc3Ryb2tlIHtuZXdwYXRofSBkZWYgL3Nob3cge3BvcCBuZXdwYXRofSBkZWZ9IGJpbmQgZGVmCi9ib2xkIHsgMiBzZXRsaW5ld2lkdGggfSBiaW5kIGRlZgovZmlsbGVkIHsgfSBiaW5kIGRlZgovdW5maWxsZWQgeyB9IGJpbmQgZGVmCi9yb3VuZGVkIHsgfSBiaW5kIGRlZgovZGlhZ29uYWxzIHsgfSBiaW5kIGRlZgovdGFwZXJlZCB7IH0gYmluZCBkZWYKCiUgaG9va3MgZm9yIHNldHRpbmcgY29sb3IgCi9ub2RlY29sb3IgeyBzZXRoc2Jjb2xvciB9IGJpbmQgZGVmCi9lZGdlY29sb3IgeyBzZXRoc2Jjb2xvciB9IGJpbmQgZGVmCi9ncmFwaGNvbG9yIHsgc2V0aHNiY29sb3IgfSBiaW5kIGRlZgovbm9wY29sb3Ige3BvcCBwb3AgcG9wfSBiaW5kIGRlZgoKL2JlZ2lucGFnZSB7CSUgaSBqIG5wYWdlcwoJL25wYWdlcyBleGNoIGRlZgoJL2ogZXhjaCBkZWYKCS9pIGV4Y2ggZGVmCgkvc3RyIDEwIHN0cmluZyBkZWYKCW5wYWdlcyAxIGd0IHsKCQlnc2F2ZQoJCQljb29yZGZvbnQgc2V0Zm9udAoJCQkwIDAgbW92ZXRvCgkJCShcKCkgc2hvdyBpIHN0ciBjdnMgc2hvdyAoLCkgc2hvdyBqIHN0ciBjdnMgc2hvdyAoXCkpIHNob3cKCQlncmVzdG9yZQoJfSBpZgp9IGJpbmQgZGVmCgovc2V0X2ZvbnQgewoJZmluZGZvbnQgZXhjaAoJc2NhbGVmb250IHNldGZvbnQKfSBkZWYKCiUgZHJhdyB0ZXh0IGZpdHRlZCB0byBpdHMgZXhwZWN0ZWQgd2lkdGgKL2FsaWduZWR0ZXh0IHsJCQklIHdpZHRoIHRleHQKCS90ZXh0IGV4Y2ggZGVmCgkvd2lkdGggZXhjaCBkZWYKCWdzYXZlCgkJd2lkdGggMCBndCB7CgkJCVtdIDAgc2V0ZGFzaAoJCQl0ZXh0IHN0cmluZ3dpZHRoIHBvcCB3aWR0aCBleGNoIHN1YiB0ZXh0IGxlbmd0aCBkaXYgMCB0ZXh0IGFzaG93CgkJfSBpZgoJZ3Jlc3RvcmUKfSBkZWYKCi9ib3hwcmltIHsJCQkJJSB4Y29ybmVyIHljb3JuZXIgeHNpemUgeXNpemUKCQk0IDIgcm9sbAoJCW1vdmV0bwoJCTIgY29weQoJCWV4Y2ggMCBybGluZXRvCgkJMCBleGNoIHJsaW5ldG8KCQlwb3AgbmVnIDAgcmxpbmV0bwoJCWNsb3NlcGF0aAp9IGJpbmQgZGVmCgovZWxsaXBzZV9wYXRoIHsKCS9yeSBleGNoIGRlZgoJL3J4IGV4Y2ggZGVmCgkveSBleGNoIGRlZgoJL3ggZXhjaCBkZWYKCW1hdHJpeCBjdXJyZW50bWF0cml4CgluZXdwYXRoCgl4IHkgdHJhbnNsYXRlCglyeCByeSBzY2FsZQoJMCAwIDEgMCAzNjAgYXJjCglzZXRtYXRyaXgKfSBiaW5kIGRlZgoKL2VuZHBhZ2UgeyBzaG93cGFnZSB9IGJpbmQgZGVmCi9zaG93cGFnZSB7IH0gZGVmCgovbGF5ZXJjb2xvcnNlcQoJWwklIGxheWVyIGNvbG9yIHNlcXVlbmNlIC0gZGFya2VzdCB0byBsaWdodGVzdAoJCVswIDAgMF0KCQlbLjIgLjggLjhdCgkJWy40IC44IC44XQoJCVsuNiAuOCAuOF0KCQlbLjggLjggLjhdCgldCmRlZgoKL2xheWVybGVuIGxheWVyY29sb3JzZXEgbGVuZ3RoIGRlZgoKL3NldGxheWVyIHsvbWF4bGF5ZXIgZXhjaCBkZWYgL2N1cmxheWVyIGV4Y2ggZGVmCglsYXllcmNvbG9yc2VxIGN1cmxheWVyIDEgc3ViIGxheWVybGVuIG1vZCBnZXQKCWFsb2FkIHBvcCBzZXRoc2Jjb2xvcgoJL25vZGVjb2xvciB7bm9wY29sb3J9IGRlZgoJL2VkZ2Vjb2xvciB7bm9wY29sb3J9IGRlZgoJL2dyYXBoY29sb3Ige25vcGNvbG9yfSBkZWYKfSBiaW5kIGRlZgoKL29ubGF5ZXIgeyBjdXJsYXllciBuZSB7aW52aXN9IGlmIH0gZGVmCgovb25sYXllcnMgewoJL215dXBwZXIgZXhjaCBkZWYKCS9teWxvd2VyIGV4Y2ggZGVmCgljdXJsYXllciBteWxvd2VyIGx0CgljdXJsYXllciBteXVwcGVyIGd0CglvcgoJe2ludmlzfSBpZgp9IGRlZgoKL2N1cmxheWVyIDAgZGVmCgolJUVuZFJlc291cmNlCiUlRW5kUHJvbG9nCiUlQmVnaW5TZXR1cAoxNCBkZWZhdWx0LWZvbnQtZmFtaWx5IHNldF9mb250CiUgL2Fycm93bGVuZ3RoIDEwIGRlZgolIC9hcnJvd3dpZHRoIDUgZGVmCgolIG1ha2Ugc3VyZSBwZGZtYXJrIGlzIGhhcm1sZXNzIGZvciBQUy1pbnRlcnByZXRlcnMgb3RoZXIgdGhhbiBEaXN0aWxsZXIKL3BkZm1hcmsgd2hlcmUge3BvcH0ge3VzZXJkaWN0IC9wZGZtYXJrIC9jbGVhcnRvbWFyayBsb2FkIHB1dH0gaWZlbHNlCiUgbWFrZSAnPDwnIGFuZCAnPj4nIHNhZmUgb24gUFMgTGV2ZWwgMSBkZXZpY2VzCi9sYW5ndWFnZWxldmVsIHdoZXJlIHtwb3AgbGFuZ3VhZ2VsZXZlbH17MX0gaWZlbHNlCjIgbHQgewogICAgdXNlcmRpY3QgKDw8KSBjdm4gKFspIGN2biBsb2FkIHB1dAogICAgdXNlcmRpY3QgKD4+KSBjdm4gKFspIGN2biBsb2FkIHB1dAp9IGlmCgolJUVuZFNldHVwAHN1cABncm91cABjdXAAdGhpbnNwAGVuc3AAZW1zcABuYnNwAHBlcnAAd2VpZXJwAGdlbmVyYXRlLWNvbnN0cmFpbnRzLmNwcABibG9jay5jcHAAY3NvbHZlX1ZQU0MuY3BwAH90b3AAcHJvcABhZ3hicG9wAG5vcABhc3ltcABjb21wAGZpbmRDQ29tcABibXAAc2NhbGVfY2xhbXAAeGxwAGxwICE9IGNscAB0YWlsX2xwAGhlYWRfbHAAdGFpbHRvb2x0aXAAbGFiZWx0b29sdGlwAGVkZ2V0b29sdGlwAGhlYWR0b29sdGlwAGhlbGxpcAB0YWlsY2xpcABoZWFkY2xpcAAvc3ZnL3BhcGF5YXdoaXAAaHAAdHJhbnNwb3NlX3N0ZXAAY29tcHV0ZVN0ZXAAbGF5ZXJsaXN0c2VwAGxheWVyc2VwAGlwc2VwAHJhbmtzZXAAbm9kZXNlcABzdWJncmFwaHMgbmVzdGVkIG1vcmUgdGhhbiAlZCBkZWVwAFNlcABzZmRwAGNwAHdlYnAAaWRtYXAAY2x1c3Rlcl9tYXAAY21hcHg6bWFwAGVwczptYXAAY21hcHhfbnA6bWFwAGltYXBfbnA6bWFwAGlzbWFwOm1hcABpbWFwOm1hcABjbWFwOm1hcABzdmc6bWFwAGpwZzptYXAAcG5nOm1hcABqcGVnOm1hcABnaWY6bWFwAGpwZTptYXAAb3ZlcmxhcABsZXZlbHNnYXAAY2FwAEtQX1VwACVJOiVNOiVTICVwAHN0YXJ0IDw9IHAAcnNxdW8AbHNxdW8AcmRxdW8AbGRxdW8AYmRxdW8Ac2JxdW8AcnNhcXVvAGxzYXF1bwByYXF1bwBsYXF1bwBhdXRvAE51bml0bwAvc3ZnL3RvbWF0bwBuZWF0bwBldXJvAC9zdmcvZ2FpbnNib3JvAE1ldGhvZFplcm8AbWljcm8AbmltYnVzbW9ubwBsaWJlcmF0aW9ubW9ubwBmcmVlbW9ubwBhcmltbwByYXRpbwBwb3J0aG8AcmhvAFJobwAvc3ZnL2luZGlnbwBwaW5mbwBjY2dyYXBoaW5mbwBjY2dub2RlaW5mbwBjbF9lZGdlX2luZm8AZ2V0UGFja0luZm8AbWFrZUluZm8AcGFyc2VQYWNrTW9kZUluZm8AY2lyY28AaWNvAFwlMDNvAC9zdmcvcm9zeWJyb3duAC9zdmcvc2FuZHlicm93bgB2ZXJ5ZGFya2Jyb3duAC9zdmcvc2FkZGxlYnJvd24AL3N2Zy9icm93bgBLUF9Eb3duAGNhbm5vdCBjaGFuZ2Ugc2V0dGluZyBvbmNlIHBhcnNpbmcgaGFzIGJlZ3VuAFN1bgBKdW4AdGhvcm4AL3N2Zy9jcmltc29uAHhkb3RfanNvbgB4ZG90X2pzb246anNvbgBqc29uMDpqc29uAG9taWNyb24AT21pY3JvbgBzY2Fyb24AU2Nhcm9uAHdlYm1hcm9vbgB4MTFtYXJvb24AL3N2Zy9tYXJvb24AL3N2Zy9saWdodHNhbG1vbgAvc3ZnL2RhcmtzYWxtb24AL3N2Zy9zYWxtb24AdXBzaWxvbgBlcHNpbG9uAFVwc2lsb24ARXBzaWxvbgByZXNvbHV0aW9uAGRpc3RvcnRpb24Ac3RkOjpleGNlcHRpb24AcGFydGl0aW9uAGRvdF9wb3NpdGlvbgBTZXR0aW5nIHVwIHN0cmVzcyBmdW5jdGlvbgB1bmNsb3NlZCBDREFUQSBzZWN0aW9uAHBvc3RhY3Rpb24Acm90YXRpb24Ab3JpZW50YXRpb24AYWJvbWluYXRpb24AYWNjb3VudGluZ0dldEN1cnJlbnRBbXBsaWZpY2F0aW9uAHhkb3R2ZXJzaW9uAFNUc2V0VW5pb24APHBvbHlnb24AaGV4YWdvbgBzZXB0YWdvbgBwZW50YWdvbgB0cmlwbGVvY3RhZ29uAGRvdWJsZW9jdGFnb24AL3N2Zy9sZW1vbmNoaWZmb24ATW9uAHBsdXNtbgBub3RpbgBpc2luAC9zdmcvbW9jY2FzaW4AcGluAG1pbgB2b3JvX21hcmdpbgBpbmZpbgBvbmVkX29wdGltaXplcl90cmFpbgBwbGFpbgBtYWtlX2NoYWluAG1lcmdlX2NoYWluAGRlbGV0ZU1pbgBmaW5kTWluAHZhbGlnbgBiYWxpZ24AeWVuAE11bHRpbGV2ZWxfY29hcnNlbgBjdXJyZW4AUG9ic29wZW4AZ3ZfZm9wZW4AZ3Z1c2Vyc2hhcGVfb3BlbgBlbnRpdHlUcmFja2luZ09uT3BlbgAvc3ZnL2xpbmVuAGRpbWVuAG1pbmxlbgBzdHlsZV90b2tlbgB1bmNsb3NlZCB0b2tlbgAvc3ZnL3llbGxvd2dyZWVuAG1lZGl1bWZvcmVzdGdyZWVuAC9zdmcvZm9yZXN0Z3JlZW4AL3N2Zy9saWdodGdyZWVuAGh1bnRlcnNncmVlbgAvc3ZnL2xhd25ncmVlbgAvc3ZnL2RhcmtncmVlbgAvc3ZnL21lZGl1bXNwcmluZ2dyZWVuAC9zdmcvc3ByaW5nZ3JlZW4AL3N2Zy9kYXJrb2xpdmVncmVlbgAvc3ZnL2xpbWVncmVlbgAvc3ZnL3BhbGVncmVlbgB3ZWJncmVlbgAvc3ZnL2xpZ2h0c2VhZ3JlZW4AL3N2Zy9tZWRpdW1zZWFncmVlbgAvc3ZnL2RhcmtzZWFncmVlbgAvc3ZnL3NlYWdyZWVuAHgxMWdyZWVuAC9zdmcvZ3JlZW4AR3JlZW4AL3N2Zy9saWdodGN5YW4AL3N2Zy9kYXJrY3lhbgAvc3ZnL2N5YW4AbmV3dGFuAGRhcmt0YW4AL3N2Zy90YW4Acm93c3BhbgBjb2xzcGFuAG5hbgB0aW1lc25ld3JvbWFuAG5pbWJ1c3JvbWFuAHRpbWVzcm9tYW4AVGltZXMtUm9tYW4AUGFsYXRpbm8tUm9tYW4ATmV3Q2VudHVyeVNjaGxiay1Sb21hbgBKYW4AR0RfcmFuayhnKVtyXS5uIDw9IEdEX3JhbmsoZylbcl0uYW4AYWd4YnB1dF9uAFxuAG5fbm9kZXMgPT0gZ3JhcGgtPm4AQS0+bSA9PSBBLT5uAGpvYi0+b2JqLT51Lm4AcywlbGYsJWxmJW4AIGUsJWxmLCVsZiVuACVkICUxWyJdJW4AdiA9PSBuAG56YyA9PSBuAGIgPT0gbgBuY2x1c3RlciA8PSBuAHBzeW0AYWxlZnN5bQB0aGV0YXN5bQBxdWFudHVtAHN1bQAvc3ZnL3BsdW0AaW52dHJhcGV6aXVtAG1lZGl1bQA5OnByaXNtAGxybQBjdXN0b20AYXB0ci0+dGFnID09IFRfYXRvbQAvZGV2L3VyYW5kb20AZ3ZfcmFuZG9tAHJsbQBzaW0ASU1EU19naXZlbl9kaW0Ab3JkbQBwYXJhbGxlbG9ncmFtAC9zdmcvbWludGNyZWFtAEp1bAB0bABmcmFzbABTeW1ib2wAZmluZENvbAA8P3htbAB5dW1sAHV1bWwAb3VtbABpdW1sAGV1bWwAYXVtbABZdW1sAFV1bWwAT3VtbABJdW1sAEV1bWwAQXVtbABjb3JlX2xvYWRpbWFnZV92cm1sAGpwZzp2cm1sAHBuZzp2cm1sAGpwZWc6dnJtbABnaWY6dnJtbABqcGU6dnJtbABidWxsAGZpbGwAL3N2Zy9zZWFzaGVsbABmb3JhbGwAQXByaWwAcGVybWlsAHJjZWlsAGxjZWlsAGNjZWRpbABDY2VkaWwAYXJyb3d0YWlsAGx0YWlsAHNhbWV0YWlsAGxldmVsID49IDAgJiYgbGV2ZWwgPD0gbi0+bGV2ZWwAc3RyZXNzX21ham9yaXphdGlvbl9rRF9ta2VybmVsAGlzX3BhcmFsbGVsAENhbGN1bGF0aW5nIGNpcmN1aXQgbW9kZWwAQ2FsY3VsYXRpbmcgc3Vic2V0IG1vZGVsAENhbGN1bGF0aW5nIE1EUyBtb2RlbAB4bGFiZWwAdGFpbGxhYmVsAGhlYWRsYWJlbABtYWtlX2xhYmVsAGdyYXBoIGxhYmVsAGlleGNsAG9ianAtPmxibABvdmFsAG1lcmdldmlydHVhbAAvc3ZnL2xpZ2h0Y29yYWwAL3N2Zy9jb3JhbABTcGFyc2VNYXRyaXhfZnJvbV9jb29yZGluYXRlX2FycmF5c19pbnRlcm5hbABNdWx0aWxldmVsX2NvYXJzZW5faW50ZXJuYWwAUXVhZFRyZWVfYWRkX2ludGVybmFsAGFycm93X2xlbmd0aF9ub3JtYWwAYXJpYWwAcmFkaWFsAC9zdmcvdGVhbAByZWFsAGxvY2FsAGVzdGltYXRlX2NoYXJhY3Rlcl93aWR0aF9jYW5vbmljYWwAZ2xvYmFsAHEtPmwALi4vLi4vbGliL2NncmFwaC9zY2FuLmwAdGs6dGsAZ2lmOnRrAHBhdGNod29yawB0b2sAYm9vawBBdmFudEdhcmRlLUJvb2sAc2luawBvdmVybGFwX3NocmluawBzcGljeXBpbmsAL3N2Zy9ob3RwaW5rAC9zdmcvbGlnaHRwaW5rAC9zdmcvZGVlcHBpbmsAbmVvbnBpbmsAL3N2Zy9waW5rAG5ld3JhbmsAY2x1c3RlcnJhbmsAX25ld19yYW5rAGluc3RhbGxfaW5fcmFuawByZW1vdmVfZnJvbV9yYW5rAC9zdmcvY29ybnNpbGsAb25lYmxvY2sAdi0+bGVmdC0+YmxvY2sgPT0gdi0+cmlnaHQtPmJsb2NrAC9zdmcvZmlyZWJyaWNrAFBRY2hlY2sAcGFjawAvc3ZnL2JsYWNrAEJsYWNrAHNmb250X2JhY2sAcm93c19iYWNrAHRzdHNfYmFjawBjb2xvcnNlZ3NfYmFjawBub2RlX2xpc3RfcG9wX2JhY2sAc2ZvbnRfcG9wX2JhY2sAdHN0c19wb3BfYmFjawBlc3RhY2tfcG9wX2JhY2sAZGZzX3N0YWNrX3BvcF9iYWNrAGRmc19zdGFja19iYWNrAHp3agB6d25qAGpvYi0+b2JqAGdldGludHJzeGkAcHNpAFBzaQBDYWxpYnJpAEZyaQB0d29waQBkcGkAdm9yb25vaQBWb3Jvbm9pAGNoYW5pAGRlbWkAQm9va21hbi1EZW1pAEF2YW50R2FyZGUtRGVtaQAvc3ZnL2RhcmtraGFraQAvc3ZnL2toYWtpAHBoaQBjaGkAUGhpAENoaQBkaQBYaQBQaQBORF9pZChucCkgPT0gaQBTdHJlc3NNYWpvcml6YXRpb25TbW9vdGhlcl9zbW9vdGgAU3ByaW5nU21vb3RoZXJfc21vb3RoAGJvdGgAc3RhcnRzd2l0aABsaW5lbGVuZ3RoAGJhZF9hcnJheV9uZXdfbGVuZ3RoAGF2ZXJhZ2VfZWRnZV9sZW5ndGgAZXRoAHBlbndpZHRoAGx3aWR0aABzZXRsaW5ld2lkdGgAc2hvcnRwYXRoAGZvbnRwYXRoAFBvYnNwYXRoAGJlZ2lucGF0aABpbWFnZXBhdGgAZW5kcGF0aABzdHJhaWdodF9wYXRoAG1hcF9wYXRoADxwYXRoAGNhbm5vdCBmaW5kIHRyaWFuZ2xlIHBhdGgAL3N2Zy9sYXZlbmRlcmJsdXNoAGZsZXNoAG9zbGFzaABPc2xhc2gAZHRzdHJoYXNoAHN0cmRpY3RfaGFzaABuZGFzaABtZGFzaABkaWdyYXBoAHN1YmdyYXBoAGNvbnN0cnVjdF9ncmFwaABjaGtTZ3JhcGgAY2xvc2VzdF9wYWlyczJncmFwaABhZ2RlbGV0ZSBvbiB3cm9uZyBncmFwaABjb25uZWN0R3JhcGgAdXBzaWgAJXNsaW5lLXRocm91Z2gAZmxhdF9zZWFyY2gAY2hhblNlYXJjaABSVHJlZVNlYXJjaABNYXJjaABEaXNjb25CcmFuY2gAUGlja0JyYW5jaABBZGRCcmFuY2gALi4vLi4vbGliL3V0aWwvYml0YXJyYXkuaAAuLi8uLi9saWIvdXRpbC9zdHJ2aWV3LmgALi4vLi4vbGliL2NpcmNvZ2VuL25vZGVsaXN0LmgALi4vLi4vbGliL3V0aWwvc29ydC5oAC4uLy4uL2xpYi9jZ3JhcGgvbm9kZV9zZXQuaAAuLi8uLi9saWIvY29tbW9uL2dsb2JhbHMuaAAuLi8uLi9saWIvY29tbW9uL2JveGVzLmgALi4vLi4vbGliL29ydGhvL3N0cnVjdHVyZXMuaAAuLi8uLi9saWIvZG90Z2VuL2RvdHByb2NzLmgALi4vLi4vbGliL3V0aWwvc3RyZXEuaAAuLi8uLi9saWIvb3J0aG8vdHJhcC5oAC4uLy4uL2xpYi91dGlsL3N0YXJ0c3dpdGguaAAuLi8uLi9saWIvdXRpbC9ndl9tYXRoLmgALi4vLi4vbGliL29ydGhvL3Jhd2dyYXBoLmgALi4vLi4vbGliL3V0aWwvYWd4YnVmLmgALi4vLi4vbGliL3V0aWwvdG9rZW5pemUuaAAuLi8uLi9saWIvY29tbW9uL2h0bWx0YWJsZS5oAC4uLy4uL2xpYi91dGlsL2FsbG9jLmgAYXV4ZwBjb3JlX2xvYWRpbWFnZV9zdmcAc3ZnOnN2ZwBqcGc6c3ZnAHBuZzpzdmcAanBlZzpzdmcAZ2lmOnN2ZwBqcGU6c3ZnAHN2Z19pbmxpbmU6c3ZnAEF1ZwBkb1Byb2xvZwBwb3dlcl9pdGVyYXRpb25fb3J0aG9nAHBuZwBpZGVhbF9kaXN0X3NjaGVtZSB2YWx1ZSB3cm9uZwB4ZG90IHZlcnNpb24gIiVzIiB0b28gbG9uZwBjb25nAGxibGVuY2xvc2luZwBiYXNpY19zdHJpbmcAZmFpbHVyZSBtYWxsb2MnaW5nIGZvciByZXN1bHQgc3RyaW5nAHNwcmluZwBvcmRlcmluZwBnZW5lcmF0ZVJhbmRvbU9yZGVyaW5nAGFyaW5nAEFyaW5nAERhbXBpbmcAV2FybmluZwBvdmVybGFwX3NjYWxpbmcAeCBhbmQgeSBzY2FsaW5nAG9sZCBzY2FsaW5nAHNtb290aGluZwB1bmtub3duIGVuY29kaW5nAG11bHRpbGV2ZWxfc3ByaW5nX2VsZWN0cmljYWxfZW1iZWRkaW5nAHNwcmluZ19lbGVjdHJpY2FsX3NwcmluZ19lbWJlZGRpbmcAY2VsbHBhZGRpbmcAY2VsbHNwYWNpbmcAcmFuZwBsYW5nAGZpdmVwb3ZlcmhhbmcAdGhyZWVwb3ZlcmhhbmcAbm92ZXJoYW5nAGVtaXRfaHRtbF9pbWcAbGcAb3JpZwBzemxpZwBvZWxpZwBhZWxpZwBPRWxpZwBBRWxpZwBjb3JlX2xvYWRpbWFnZV9maWcAanBnOmZpZwBwbmc6ZmlnAGZpZzpmaWcAanBlZzpmaWcAZ2lmOmZpZwBqcGU6ZmlnAGVnZwBuZXh0X3NlZwByZWcAanBlZwBpID09IGRlZwBkZwBjZwBjbG9zZXN1YmcAbWlzbWF0Y2hlZCB0YWcAYmV6LT5zZmxhZwBiZXotPmVmbGFnACEqZmxhZwAhZmxhZwA8ZwAlLjVnLCUuNWcsJS41ZywlLjVnACUuNWcgJS41ZwAlZyAlZwBib3hJbnRlcnNlY3RmAGVwc2YAYWdlZGdlc2VxY21wZgBjY3dyb3RhdGVwZgBmbm9mAGluZgBzZWxmAGhhbGYAJWxmJWxmJWxmJWxmACVsZiwlbGYsJWxmLCVsZiwlbGYAJSpmICUqZiAlbGYgJWxmAGxpYmVyYXRpb25zZXJpZgBmcmVlc2VyaWYAc2Fucy1TZXJpZgBnaWYAL3N2Zy9wZWFjaHB1ZmYAcmlmZgBhY2NvdW50aW5nUmVwb3J0RGlmZgB0YWlsaHJlZgBsYWJlbGhyZWYAZWRnZWhyZWYAaGVhZGhyZWYAb3JkZgBwZGYAc2lnbWFmAFxmACUuMExmACVMZgB1cy0+ZgAlLjAzZgAlcyB0cmFuc21pdCAlLjNmAHJnYjwlOS4zZiwgJTkuM2YsICU5LjNmPiB0cmFuc21pdCAlLjNmACUuMDJmACUuMmYAJS4wZiwlLjBmLCUuMGYsJS4wZgAgJS4wZiwlLjBmACUuMGYgJS4wZiAlLjBmICUuMGYAIiBmaWxsLW9wYWNpdHk9IiVmACIgc3Ryb2tlLW9wYWNpdHk9IiVmAApmaW5hbCBlID0gJWYAYnJvbnplAGFycm93c2l6ZQBsYWJlbGZvbnRzaXplAHNlYXJjaHNpemUAZml4ZWRzaXplAG5vZGVsaXN0X3NpemUAbm9kZV9zZXRfc2l6ZQB0cmFwc19zaXplAGNlbGxzX3NpemUAbm9kZXNfc2l6ZQB0ZXh0c3Bhbl9zaXplAHN2Z19zaXplAGNhcGFjaXR5ID4gZGljdC0+c2l6ZQBjYXBhY2l0eSA+IHNlbGYtPnNpemUAYnouc2l6ZQBwb2ludC1zaXplAG5vcm1hbGl6ZQBFTGluaXRpYWxpemUAbWtNYXplAGljdXJ2ZQBub2RlbGlzdF9yZW1vdmUAYWRqX2xpc3RfcmVtb3ZlAG5vZGVfc2V0X3JlbW92ZQBzdHJkaWN0X3JlbW92ZQBzb2x2ZQAhdi0+YWN0aXZlAC1hY3RpdmUAZm9udF9pbl9saXN0X3Blcm1pc3NpdmUAL3N2Zy9vbGl2ZQB1Z3JhdmUAb2dyYXZlAGlncmF2ZQBlZ3JhdmUAYWdyYXZlAFVncmF2ZQBPZ3JhdmUASWdyYXZlAEVncmF2ZQBBZ3JhdmUAdHJ1ZQAvc3ZnL2Jpc3F1ZQBvYmxpcXVlAEF2YW50R2FyZGUtQm9va09ibGlxdWUAQXZhbnRHYXJkZS1EZW1pT2JsaXF1ZQBIZWx2ZXRpY2EtTmFycm93LUJvbGRPYmxpcXVlAENvdXJpZXItQm9sZE9ibGlxdWUASGVsdmV0aWNhLUJvbGRPYmxpcXVlAEhlbHZldGljYS1OYXJyb3ctT2JsaXF1ZQBDb3VyaWVyLU9ibGlxdWUASGVsdmV0aWNhLU9ibGlxdWUAbmF2eWJsdWUAL3N2Zy9saWdodHNreWJsdWUAL3N2Zy9kZWVwc2t5Ymx1ZQAvc3ZnL3NreWJsdWUAbmV3bWlkbmlnaHRibHVlAC9zdmcvbWlkbmlnaHRibHVlAC9zdmcvbGlnaHRibHVlAC9zdmcvY2FkZXRibHVlAC9zdmcvY29ybmZsb3dlcmJsdWUAL3N2Zy9kb2RnZXJibHVlAC9zdmcvcG93ZGVyYmx1ZQBuZW9uYmx1ZQAvc3ZnL21lZGl1bWJsdWUAL3N2Zy9saWdodHN0ZWVsYmx1ZQAvc3ZnL3N0ZWVsYmx1ZQAvc3ZnL3JveWFsYmx1ZQAvc3ZnL2RhcmtibHVlAHJpY2hibHVlAGxpZ2h0c2xhdGVibHVlAC9zdmcvbWVkaXVtc2xhdGVibHVlAC9zdmcvZGFya3NsYXRlYmx1ZQAvc3ZnL3NsYXRlYmx1ZQAvc3ZnL2FsaWNlYmx1ZQAvc3ZnL2JsdWUAY2FsbFN0b3JlRW50aXR5VmFsdWUAc3RvcmVBdHRyaWJ1dGVWYWx1ZQBCbHVlAG5lYXRvX2VucXVldWUAVHVlAGNvbnZlcnRTUHRvUm91dGUAeWFjdXRlAHVhY3V0ZQBvYWN1dGUAaWFjdXRlAGVhY3V0ZQBhYWN1dGUAWWFjdXRlAFVhY3V0ZQBPYWN1dGUASWFjdXRlAEVhY3V0ZQBBYWN1dGUAcmVmZXJlbmNlIHRvIGV4dGVybmFsIGVudGl0eSBpbiBhdHRyaWJ1dGUAZHVwbGljYXRlIGF0dHJpYnV0ZQBub3RlAHByaW1lcnNpdGUAcmlib3NpdGUAcmVzdHJpY3Rpb25zaXRlAHByb3RlYXNlc2l0ZQAvc3ZnL2dob3N0d2hpdGUAL3N2Zy9uYXZham93aGl0ZQAvc3ZnL2Zsb3JhbHdoaXRlAC9zdmcvYW50aXF1ZXdoaXRlAC9zdmcvd2hpdGUAV2hpdGUAcG9wX29ial9zdGF0ZQBwY3Bfcm90YXRlAGNvbmNlbnRyYXRlAGRlY29yYXRlAFF1YWRUcmVlX3JlcHVsc2l2ZV9mb3JjZV9hY2N1bXVsYXRlAG5vdHJhbnNsYXRlAC9zdmcvY2hvY29sYXRlAGdlb21VcGRhdGUAaW52aG91c2UAL3N2Zy9jaGFydHJldXNlAG5vZGVsaXN0X3JldmVyc2UAWE1MX1BhcnNlADxlbGxpcHNlAGR1c3R5cm9zZQAvc3ZnL21pc3R5cm9zZQBTcGFyc2VNYXRyaXhfdHJhbnNwb3NlAGFnY2xvc2UAZW50aXR5VHJhY2tpbmdPbkNsb3NlAFNwYXJzZU1hdHJpeF9tdWx0aXBseV9kZW5zZQBmYWxzZQAvc3ZnL21lZGl1bXR1cnF1b2lzZQAvc3ZnL2Rhcmt0dXJxdW9pc2UAL3N2Zy9wYWxldHVycXVvaXNlAC9zdmcvdHVycXVvaXNlAHBoYXNlAC9zdmcvYXp1cmUAc2lnbmF0dXJlAGNvcmUATXNxdWFyZQBQYWxhdGlubyBMaW5vdHlwZQBBLT50eXBlID09IEItPnR5cGUAc3VwZQBlbGxpcHNlX3RhbmdlbnRfc2xvcGUAZ3ZyZW5kZXJfdXNlcnNoYXBlAG1pdGVyX3NoYXBlAGxhbmRzY2FwZQBMYW5kc2NhcGUASnVuZQBub25lAGRvY3VtZW50IGlzIG5vdCBzdGFuZGFsb25lAGNvdXNpbmUAL3N2Zy9tZWRpdW1hcXVhbWFyaW5lAC9zdmcvYXF1YW1hcmluZQA8cG9seWxpbmUAJXNvdmVybGluZQB1bmRlcmxpbmUAUHJvdXRlc3BsaW5lAGxpbmVhcl9zcGxpbmUAYl9zcGxpbmUAb2xpbmUAYWd4YnVmX2lzX2lubGluZQBzdmdfaW5saW5lAHJlZmluZQBwcmltZQBQcmltZQAvc3ZnL2xpbWUAY29sb3JzY2hlbWUAbGFiZWxfc2NoZW1lAHNhbWUAbGFiZWxmb250bmFtZQBVRl9zZXRuYW1lAGZvbnRfbmFtZQBmb250LT5uYW1lAHVzLT5uYW1lAHJlc2VydmVkIHByZWZpeCAoeG1sKSBtdXN0IG5vdCBiZSB1bmRlY2xhcmVkIG9yIGJvdW5kIHRvIGFub3RoZXIgbmFtZXNwYWNlIG5hbWUAc3R5bGUAL3N2Zy90aGlzdGxlAHRpdGxlAC9zdmcvbWVkaXVtcHVycGxlAGRhcmtwdXJwbGUAd2VicHVycGxlAHJlYmVjY2FwdXJwbGUAdmVyeV9saWdodF9wdXJwbGUAbWVkX3B1cnBsZQB4MTFwdXJwbGUAL3N2Zy9wdXJwbGUAc2hhcGVmaWxlAGdyYWRpZW50YW5nbGUAcmVjdGFuZ2xlAFJlY3RhbmdsZQBsYWJlbGFuZ2xlAGludnRyaWFuZ2xlAGRlc3RpbmF0aW9uIHBvaW50IG5vdCBpbiBhbnkgdHJpYW5nbGUAc291cmNlIHBvaW50IG5vdCBpbiBhbnkgdHJpYW5nbGUAZGZzQ3ljbGUAZG91YmxlY2lyY2xlAE1jaXJjbGUAaW52aXNpYmxlAHRob3JuZGFsZQBpbnB1dHNjYWxlAG9zY2FsZQBpbWFnZXNjYWxlAC9zdmcvd2hpdGVzbW9rZQBtYW5kYXJpbm9yYW5nZQAvc3ZnL2RhcmtvcmFuZ2UAL3N2Zy9vcmFuZ2UAL3N2Zy9iZWlnZQBuZXdlZGdlAGRlbGV0ZV9mYXN0X2VkZ2UAZGVsZXRlX2ZsYXRfZWRnZQBhZGRfdHJlZV9lZGdlAG1ha2VTdHJhaWdodEVkZ2UAbWFrZVNlbGZFZGdlAG1ha2VDb21wb3VuZEVkZ2UAIXVzZV9zdGFnZQBvc2FnZQBwYWdlAGd2bG9hZGltYWdlAHZlZQB0ZWUAUVVBRF9UUkVFX0hZQlJJRCwgc2l6ZSBsYXJnZXIgdGhhbiAlZCwgc3dpdGNoIHRvIGZhc3QgcXVhZHRyZWUAZmVhc2libGVfdHJlZQBTcGFyc2VNYXRyaXhfZGl2aWRlX3Jvd19ieV9kZWdyZWUAbm9kZWxpc3RfZnJlZQBzZm9udF9mcmVlAG5vZGVfc2V0X2ZyZWUAcm93c19mcmVlAGNlbGxzX2ZyZWUAbmV3bm9kZQBpbnN0YWxsbm9kZQBhZ25vZGUAZGVsZXRlX2Zhc3Rfbm9kZQBwYWNrbW9kZQBTcGxpdE5vZGUAb3RpbGRlAG50aWxkZQBhdGlsZGUAT3RpbGRlAE50aWxkZQBBdGlsZGUAZGl2aWRlAHRyYWRlAGdyYXBodml6X25vZGVfaW5kdWNlAHNvdXJjZQByZXB1bHNpdmVmb3JjZQBpbGxlZ2FsIHBhcmFtZXRlciBlbnRpdHkgcmVmZXJlbmNlAGVycm9yIGluIHByb2Nlc3NpbmcgZXh0ZXJuYWwgZW50aXR5IHJlZmVyZW5jZQByZWN1cnNpdmUgZW50aXR5IHJlZmVyZW5jZQBsYWJlbGRpc3RhbmNlAFRCX2JhbGFuY2UAVEJiYWxhbmNlAGRldmljZQBtb25vc3BhY2UAL3N2Zy9vbGRsYWNlAGZhY2UAc3ViZQAgLWFuY2hvciBlAHMxLT5jb21tX2Nvb3JkPT1zMi0+Y29tbV9jb29yZABNcmVjb3JkAGZvcndhcmQAcHJvZABsaWdodGdvbGRlbnJvZABtZWRpdW1nb2xkZW5yb2QAL3N2Zy9kYXJrZ29sZGVucm9kAC9zdmcvcGFsZWdvbGRlbnJvZAAvc3ZnL2dvbGRlbnJvZAAvc3ZnL2J1cmx5d29vZABsaWdodHdvb2QAbWVkaXVtd29vZABkYXJrd29vZABfYmFja2dyb3VuZABjb21wb3VuZABubyBlbGVtZW50IGZvdW5kAGZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0tbm8gYWN0aW9uIGZvdW5kAC9zdmcvYmxhbmNoZWRhbG1vbmQAYXJyb3dfbGVuZ3RoX2RpYW1vbmQATWRpYW1vbmQAbm9kZV9zZXRfZmluZABzdHJkaWN0X2ZpbmQAZ3Z1c2Vyc2hhcGVfZmluZABub2RlbGlzdF90cnlfYXBwZW5kAGVkZ2VfbGlzdF90cnlfYXBwZW5kAHNmb250X3RyeV9hcHBlbmQAdHJhcHNfdHJ5X2FwcGVuZABjZWxsc190cnlfYXBwZW5kAG5vZGVzX3RyeV9hcHBlbmQAbm9kZV9xdWV1ZV90cnlfYXBwZW5kAHNob3dfYm94ZXNfcHJlcGVuZABFTGxlZnRibmQAZXhwYW5kAGN1bWJlcmxhbmQAYnJpZ2h0Z29sZABvbGRnb2xkAC9zdmcvZ29sZABib2xkAEhlbHZldGljYS1OYXJyb3ctQm9sZABUaW1lcy1Cb2xkAENvdXJpZXItQm9sZABQYWxhdGluby1Cb2xkAE5ld0NlbnR1cnlTY2hsYmstQm9sZABIZWx2ZXRpY2EtQm9sZAAlMCpsbGQAJSpsbGQAKyVsbGQAbi0+YnJhbmNoW2ldLmNoaWxkACUrLjRsZAAlcyVsZABzb2xpZAAvc3ZnL21lZGl1bW9yY2hpZAAvc3ZnL2RhcmtvcmNoaWQAL3N2Zy9vcmNoaWQAaWxsZWdhbCBjaGFyYWN0ZXIocykgaW4gcHVibGljIGlkAGRpamtzdHJhX3NnZABmaXhlZABjdXJ2ZWQAZGVyaXZlZABkb3R0ZWQAbWVtb3J5IGV4aGF1c3RlZABsb2NhbGUgbm90IHN1cHBvcnRlZABwYXJzaW5nIGFib3J0ZWQAcGFyc2VyIG5vdCBzdGFydGVkAGF0dHJpYnV0ZSBtYWNyb3Mgbm90IGltcGxlbWVudGVkAGFjY291bnRpbmdEaWZmVG9sZXJhdGVkAGZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0tZW5kIG9mIGJ1ZmZlciBtaXNzZWQAY29uZGVuc2VkAC9zdmcvbWVkaXVtdmlvbGV0cmVkAC9zdmcvcGFsZXZpb2xldHJlZABJbXByb3BlciAlcyB2YWx1ZSAlcyAtIGlnbm9yZWQAJXMgdmFsdWUgJXMgPCAlZCAtIHRvbyBzbWFsbCAtIGlnbm9yZWQAJXMgdmFsdWUgJXMgPiAlZCAtIHRvbyBsYXJnZSAtIGlnbm9yZWQAL3N2Zy9pbmRpYW5yZWQAL3N2Zy9kYXJrcmVkAGEgc3VjY2Vzc2Z1bCBwcmlvciBjYWxsIHRvIGZ1bmN0aW9uIFhNTF9HZXRCdWZmZXIgaXMgcmVxdWlyZWQAdGFwZXJlZAAvc3ZnL29yYW5nZXJlZAByZXNlcnZlZCBwcmVmaXggKHhtbG5zKSBtdXN0IG5vdCBiZSBkZWNsYXJlZCBvciB1bmRlY2xhcmVkAC9zdmcvcmVkAHN0cmlwZWQAaWxsLWNvbmRpdGlvbmVkAHVuZGVmaW5lZABub3QgY29uc3RyYWluZWQAbGFiZWxhbGlnbmVkAHRleHQgZGVjbGFyYXRpb24gbm90IHdlbGwtZm9ybWVkAFhNTCBkZWNsYXJhdGlvbiBub3Qgd2VsbC1mb3JtZWQAdW5maWxsZWQAaW5wdXQgaW4gZmxleCBzY2FubmVyIGZhaWxlZAB0cmlhbmd1bGF0aW9uIGZhaWxlZABwYXJzaW5nIGZpbmlzaGVkAGRhc2hlZABsaW1pdCBvbiBpbnB1dCBhbXBsaWZpY2F0aW9uIGZhY3RvciAoZnJvbSBEVEQgYW5kIGVudGl0aWVzKSBicmVhY2hlZAB3ZWRnZWQAc2l6ZSA9PSBmcmVlZAByb3VuZGVkAHNwbGluZSBbJS4wM2YsICUuMDNmXSAtLSBbJS4wM2YsICUuMDNmXSBpcyBob3Jpem9udGFsOyB3aWxsIGJlIHRyaXZpYWxseSBib3VuZGVkAHNwbGluZSBbJS4wM2YsICUuMDNmXSAtLSBbJS4wM2YsICUuMDNmXSBpcyB2ZXJ0aWNhbDsgd2lsbCBiZSB0cml2aWFsbHkgYm91bmRlZABwYXJzZXIgbm90IHN1c3BlbmRlZABwYXJzZXIgc3VzcGVuZGVkAFdlZABSZWQAU3BhcnNlTWF0cml4X2FkZABub2RlX3NldF9hZGQAc3RyZGljdF9hZGQAZGQgIT0gcGFyZW50X2RkAEtQX0FkZABwYWQAeGxoZHhsb2FkAHhsaGR4dW5sb2FkAHJlYWQAYXJyb3doZWFkAGxoZWFkAHNhbWVoZWFkAGJveDNkACVzXyVkAF9zcGFuXyVkAF9ibG9ja18lZABfd2Vha18lZABfY2xvbmVfJWQALiVkACVZLSVtLSVkACVsZiwlZAAlcyBpbiBsaW5lICVkACUlJSVCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQAIl9zdWJncmFwaF9jbnQiOiAlZAAiX2d2aWQiOiAlZAAiaGVhZCI6ICVkAGFneGJwdXRjAHZwc2MAY3AtPnNyYwB1Y2lyYwBvY2lyYwBpY2lyYwBlY2lyYwBhY2lyYwBVY2lyYwBPY2lyYwBJY2lyYwBFY2lyYwBBY2lyYwBsYWJlbGxvYwBndl9yZWNhbGxvYwBzdGQ6OmJhZF9hbGxvYwBiYWtlcnNjaG9jAHNlbWlTd2VldENob2MAb2JqbGlzdF9zeW5jAGRlZ2xpc3Rfc3luYwBub2RlbGlzdF9zeW5jAGNsaXN0X3N5bmMAbm9kZV9saXN0X3N5bmMAZWRnZV9zZXRfc3luYwBwb2ludHNfc3luYwBzdHJzX3N5bmMAQWdyYXBoc19zeW5jAGJveGVzX3N5bmMAbGF5ZXJfbmFtZXNfc3luYwBzbm9kZXNfc3luYwB2YXJhcnJfc3luYwBiZXppZXJfcGF0aF9zeW5jAHBic19zaXplX3N5bmMAbWMAU3BhcnNlTWF0cml4X2lzX3N5bW1ldHJpYwBBLT5pc19wYXR0ZXJuX3N5bW1ldHJpYwBwaWM6cGljAGl0YWxpYwBCb29rbWFuLUxpZ2h0SXRhbGljAFphcGZDaGFuY2VyeS1NZWRpdW1JdGFsaWMAQm9va21hbi1EZW1pSXRhbGljAFRpbWVzLUJvbGRJdGFsaWMAUGFsYXRpbm8tQm9sZEl0YWxpYwBOZXdDZW50dXJ5U2NobGJrLUJvbGRJdGFsaWMAVGltZXMtSXRhbGljAFBhbGF0aW5vLUl0YWxpYwBOZXdDZW50dXJ5U2NobGJrLUl0YWxpYwByYWRpYwAjZmNmY2ZjAHJvdXRlc3BsaW5lczogJWQgZWRnZXMsICV6dSBib3hlcyAlLjJmIHNlYwA6ICUuMmYgc2VjAGxpc3RkZWxyZWMAbGV2ZWwgZ3JhcGggcmVjAGxldmVsIGVkZ2UgcmVjAGxldmVsIG5vZGUgcmVjAERlYwBfbmVhdG9fY2MAYmMAdmlzaWJpbGl0eS5jAFNwYXJzZU1hdHJpeC5jAGh0bWxsZXguYwBpbmRleC5jAHNtYXJ0X2luaV94LmMAZ3ZyZW5kZXJfY29yZV9wb3YuYwBjdnQuYwBsYXlvdXQuYwB0ZXh0c3Bhbl9sdXQuYwBhZGp1c3QuYwBub2RlbGlzdC5jAHNob3J0ZXN0LmMAY2xvc2VzdC5jAHNhbWVwb3J0LmMAZ3ZyZW5kZXJfY29yZV9kb3QuYwBjb25zdHJhaW50LmMAZG90aW5pdC5jAG5lYXRvaW5pdC5jAHBhdGNod29ya2luaXQuYwBvc2FnZWluaXQuYwBlbWl0LmMAZmxhdC5jAGFycm93cy5jAG1pbmNyb3NzLmMAc3RyZXNzLmMAcG9zdF9wcm9jZXNzLmMAY2NvbXBzLmMAbnMuYwB1dGlscy5jAHhsYWJlbHMuYwBzaGFwZXMuYwBkb3RzcGxpbmVzLmMAbmVhdG9zcGxpbmVzLmMAY2x1c3RlcmVkZ2VzLmMAaGVkZ2VzLmMAYXR0ci5jAHJlZnN0ci5jAGZhc3Rnci5jAGNsdXN0ZXIuYwB0YXBlci5jAGd2cmVuZGVyLmMAc3BsaXQucS5jAGRlY29tcC5jAGd2cmVuZGVyX2NvcmVfbWFwLmMAb3J0aG8uYwBndnJlbmRlcl9jb3JlX2pzb24uYwBwYXJ0aXRpb24uYwBwb3NpdGlvbi5jAGd2cGx1Z2luLmMAZ3ZfZm9wZW4uYwB0ZXh0c3Bhbi5jAGdlb20uYwByYW5kb20uYwByb3V0ZXNwbC5jAHhtbC5jAE11bHRpbGV2ZWwuYwBzcHJpbmdfZWxlY3RyaWNhbC5jAGd2cmVuZGVyX2NvcmVfdGsuYwByYW5rLmMAcGFjay5jAGJsb2NrcGF0aC5jAGR0c3RyaGFzaC5jAHJhd2dyYXBoLmMAZ3ZyZW5kZXJfY29yZV9zdmcuYwBndnJlbmRlcl9jb3JlX2ZpZy5jAHN0dWZmLmMAbWF6ZS5jAHF1YWRfcHJvZ19zb2x2ZS5jAHNwYXJzZV9zb2x2ZS5jAHJvdXRlLmMAd3JpdGUuYwBjb2x4bGF0ZS5jAHhtbHBhcnNlLmMAZWxsaXBzZS5jAGd2bG9hZGltYWdlX2NvcmUuYwBndnVzZXJzaGFwZS5jAGNpcmNsZS5jAGh0bWx0YWJsZS5jAGVkZ2UuYwBndmxvYWRpbWFnZS5jAGJsb2NrdHJlZS5jAFF1YWRUcmVlLmMAbm9kZS5jAG5vZGVfaW5kdWNlLmMAZ3ZkZXZpY2UuYwBjb21wb3VuZC5jAHRyYXBlem9pZC5jAHNnZC5jAGNvbmMuYwByZWMuYwBkaWprc3RyYS5jAGZQUS5jAGNsYXNzMi5jACVsZiwlbGYsJWxmLCVsZiVjACVsZiwlbGYsJWxmLCVbXixdJWMAXCVjACRjAHdiAG5zdWIAc2V0aHNiAHJiAHByb3RlY3RfcnNxYgBqb2IAY29yZV9sb2FkaW1hZ2VfcHNsaWIARmViAG9kYgBpbml0X3NwbGluZXNfYmIAYmV6aWVyX2JiAHByb3RlaW5zdGFiAHJuYXN0YWIAL3N2Zy9vbGl2ZWRyYWIAXGIAcndhAC9zdmcvYXF1YQBpb3RhAElvdGEAL3N2Zy9kYXJrbWFnZW50YQAvc3ZnL21hZ2VudGEAZGVsdGEARGVsdGEAemV0YQB0aGV0YQBUaGV0YQBiZXRhAFpldGEAQmV0YQBwcmV2ICE9IG9iai0+ZGF0YQBtYWtlR3JhcGhEYXRhAEV0YQBuaW1idXNzYW5zYQBwYXJhAGthcHBhAEthcHBhAC9zdmcvc2llbm5hAFZlcmRhbmEAZ2FtbWEAR2FtbWEAc2lnbWEAU2lnbWEAY29uc29sYQBuYWJsYQAvc3ZnL2Z1Y2hzaWEAR2VvcmdpYQBhbHBoYQBBbHBoYQBvbWVnYQBPbWVnYQBhcmVhAGxhbWJkYQBMYW1iZGEAaGVsdmV0aWNhAEhlbHZldGljYQBtaWNhAD48YQBgAF90ZHJhd18AX3RsZHJhd18AX2hsZHJhd18AX2xkcmF3XwBfaGRyYXdfAF9kcmF3XwBhZ3hzZXRfAGRvdF9zcGxpbmVzXwAlc18AcGFnZSVkLCVkXwBfY2NfACBpZD0iYV8AXgBTdGFydGluZyBwaGFzZSAyIFtkb3RfbWluY3Jvc3NdAFN0YXJ0aW5nIHBoYXNlIDMgW2RvdF9wb3NpdGlvbl0Abl9lZGdlcyA9PSBncmFwaC0+c291cmNlc1tncmFwaC0+bl0AU3RhcnRpbmcgcGhhc2UgMSBbZG90X3JhbmtdAGpkW21hc2tbamNba11dXSA9PSBqY1trXQBqY1ttYXNrW2piW2tdXV0gPT0gamJba10AbmVlZGxlW2ldICE9IG5lZWRsZVtqXQBqYVttYXNrW2phW2pdXV0gPT0gamFbal0AcS0+cXRzW2lpXQAhcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLnRha2VuW2ldAHIuYm91bmRhcnlbaV0gPD0gci5ib3VuZGFyeVtOVU1ESU1TICsgaV0AWyUuMDNmLCUuMDNmXQBbaW50ZXJuYWwgaGFyZC1jb2RlZF0AbnAtPmNlbGxzWzFdAG5wLT5jZWxsc1swXQB1cy0+bmFtZVswXQBjcC0+c3JjWzBdAFsuLl0AXFwAInBvaW50cyI6IFsAInN0b3BzIjogWwAJWwBaAGNvbXB1dGVTY2FsZVhZAHk8PVkAJWEgJWIgJWQgJUg6JU06JVMgJVkAUE9TSVgAeSA+PSBJTlRfTUlOICYmIHkgPD0gSU5UX01BWAB4ID49IElOVF9NSU4gJiYgeCA8PSBJTlRfTUFYAHcgPj0gMCAmJiB3IDw9IElOVF9NQVgAZV9jbnQgPD0gSU5UX01BWABwYWlyLnJpZ2h0IDw9IElOVF9NQVgAcGFpci5sZWZ0IDw9IElOVF9NQVgAdGFyZ2V0IDw9IElOVF9NQVgAbnNlZ3MgPD0gSU5UX01BWABuX2VkZ2VzIDw9IElOVF9NQVgAc3RwLm52ZXJ0aWNlcyA8PSBJTlRfTUFYAG9ic1twb2x5X2ldLT5wbiA8PSBJTlRfTUFYAGlucHV0X3JvdXRlLnBuIDw9IElOVF9NQVgAZ3JhcGgtPm4gPD0gSU5UX01BWABoID49IDAgJiYgaCA8PSBJTlRfTUFYAGVfY250IC0gMSA8PSBJTlRfTUFYAGNsaXN0X3NpemUoJmxpc3QpIC0gMSA8PSBJTlRfTUFYAGxheWVyX25hbWVzX3NpemUoJmxheWVySURzKSAtIDEgPD0gSU5UX01BWABzdHJsZW4oYXJncykgPD0gSU5UX01BWABvYmpsaXN0X3NpemUoJm9iamwpIDw9IElOVF9NQVgAZWRnZV9saXN0X3NpemUoJmN0eC0+VHJlZV9lZGdlKSA8PSBJTlRfTUFYAG5vZGVfc2V0X3NpemUoZy0+bl9pZCkgPD0gSU5UX01BWABpIDwgSU5UX01BWAByZXN1bHQgPD0gKGludClVQ0hBUl9NQVgAc3N6IDw9IFVDSEFSX01BWABjb2wgPj0gMCAmJiBjb2wgPD0gVUlOVDE2X01BWAB4PD1YAFcAVgBVAFxUAFRFWFQAU1RSRVNTX01BSk9SSVpBVElPTl9QT1dFUl9ESVNUAFNUUkVTU19NQUpPUklaQVRJT05fR1JBUEhfRElTVABTVFJFU1NfTUFKT1JJWkFUSU9OX0FWR19ESVNUAEZBU1QARk9OVABiID09IEJfUklHSFQASEVJR0hUAEJfTEVGVABfJWxsdV9TVVNQRUNUAEJUAFRyZWJ1Y2hldCBNUwBJTlZJUwAlSDolTTolUwBWUgBUUgBBLT5mb3JtYXQgPT0gQi0+Zm9ybWF0ICYmIEEtPmZvcm1hdCA9PSBGT1JNQVRfQ1NSAExSAERJUgBIUgBDRU5URVIAJSVUUkFJTEVSAEEtPnR5cGUgPT0gTUFUUklYX1RZUEVfUkVBTCB8fCBBLT50eXBlID09IE1BVFJJWF9UWVBFX0lOVEVHRVIAQ0VMTEJPUkRFUgBCUgAqUgBRAEVYUABCX1VQAFNVUABUT1AATwBtYXBOAFxOAEJfRE9XTgBUSE9STgAlJUJFR0lOAFJPV1NQQU4AQ09MU1BBTgBOQU4AUE0AQk9UVE9NAEJNAEFNACVIOiVNAFxMAHRhaWxVUkwAbGFiZWxVUkwAZWRnZVVSTABoZWFkVVJMAEhUTUwAeCE9TlVMTABFRF90b192aXJ0KG9yaWcpID09IE5VTEwARURfdG9fdmlydChlKSA9PSBOVUxMAHByZWZpeCAhPSBOVUxMAGR0ZC0+c2NhZmZJbmRleCAhPSBOVUxMAHNtLT5MdyAhPSBOVUxMAGlucHV0ICE9IE5VTEwAbGlzdCAhPSBOVUxMAHJlZmVyZW50ICE9IE5VTEwAZGljdCAhPSBOVUxMAGRpY3QtPmJ1Y2tldHMgIT0gTlVMTABhdHRyICE9IE5VTEwAbGVhZGVyICE9IE5VTEwAaXRlbSAhPSBOVUxMAGhheXN0YWNrICE9IE5VTEwAb3J0aG9nICE9IE5VTEwAc2VsZiAhPSBOVUxMAHZhbHVlICE9IE5VTEwAZmlsZW5hbWUgIT0gTlVMTABqb2ItPm91dHB1dF9maWxlICE9IE5VTEwAbW9kZSAhPSBOVUxMAHNvdXJjZSAhPSBOVUxMAHhkICE9IE5VTEwAc20tPkx3ZCAhPSBOVUxMAGpvYiAhPSBOVUxMAHNvdXJjZS5kYXRhICE9IE5VTEwAYi5kYXRhICE9IE5VTEwAYS5kYXRhICE9IE5VTEwAbGlzdCAmJiBsaXN0WzBdICE9IE5VTEwAQUYgIT0gTlVMTABzbS0+RCAhPSBOVUxMAEVEX3RvX3ZpcnQob3JpZykgIT0gTlVMTABMQ19BTEwAQkwAYmVzdGNvc3QgPCBIVUdFX1ZBTABOT1JNQUwAUkFESUFMAEEtPnR5cGUgPT0gTUFUUklYX1RZUEVfUkVBTABVUlcgQ2hhbmNlcnkgTABVUlcgQm9va21hbiBMAENlbnR1cnkgU2Nob29sYm9vayBMAFVSVyBHb3RoaWMgTABLSwBKAGkgPCBNQVhfSQBQLT5lbmQudGhldGEgPCAyICogTV9QSQBBU0NJSQBcSABFVEgAV0lEVEgARE9URk9OVFBBVEgAR0RGT05UUEFUSABta05Db25zdHJhaW50RwBcRwBFWFBBVF9FTlRJVFlfREVCVUcARVhQQVRfRU5UUk9QWV9ERUJVRwBFWFBBVF9BQ0NPVU5USU5HX0RFQlVHAFJORwBTUFJJTkcAQ0VMTFBBRERJTkcAQ0VMTFNQQUNJTkcATEFORwBJTUcAXHhGACUlRU9GAElORgBceEZGAFJJRkYAZGVsdGEgPD0gMHhGRkZGAFx4RUYAXHhERgBceENGAFx4QkYAXHhBRgBceDlGAFx4OEYAXHg3RgBceDFGAFx4RQBcRQBQT0lOVC1TSVpFAFRSVUUAQ0xPU0UARkFMU0UAa2V5ICE9IFRPTUJTVE9ORQByICE9IFRPTUJTVE9ORQBraW5kID09IExUX05PTkUAR1JBRElFTlRBTkdMRQBUUklBTkdMRQBNSURETEUASU5WSVNJQkxFAFRBQkxFAEFHVFlQRShvYmopID09IEFHSU5FREdFIHx8IEFHVFlQRShvYmopID09IEFHT1VURURHRQBceEZFAFx4RUUAXHhERQBCX05PREUAXHhDRQBceEJFAFx4QUUAXHg5RQBceDhFAFx4MUUAVEQAQS0+Zm9ybWF0ID09IEZPUk1BVF9DT09SRABuICYmIGkgPj0gMCAmJiBpIDwgTk9ERUNBUkQAJSVFTkQASFlCUklEAFNPTElEAFx4RkQAXHhFRABET1RURUQAREFTSEVEAFJPVU5ERUQAXHhERABceENEAFx4QkQAXHhBRABceDlEAFx4OEQAXHgxRABceEMAZGVsZXRlVlBTQwBceEZDAFx4RUMAXHhEQwBceENDAFx4QkMAXHhBQwBceDlDAFx4OEMAXHgxQwBceEIAU1VCAFx4RkIAXHhFQgBceERCAFx4Q0IAXHhCQgBceEFCAFx4OUIAXHg4QgBceDFCAEEgJiYgQgBceEZBAFx4RUEAXHhEQQBceENBAFx4QkEAXHhBQQBceDlBAFx4OEEAXHgxQQBAAD8APCVzPgA8bmlsPgA8L3RzcGFuPjwvdGV4dFBhdGg+AAogICAgPCU5LjNmLCAlOS4zZiwgJTkuM2Y+AD4KPHRpdGxlPgA8Rk9OVD4APEJSPgA8SFRNTD4APC9IVE1MPgA8SU1HPgBTeW50YXggZXJyb3I6IG5vbi1zcGFjZSBzdHJpbmcgdXNlZCBiZWZvcmUgPFRBQkxFPgBTeW50YXggZXJyb3I6IG5vbi1zcGFjZSBzdHJpbmcgdXNlZCBhZnRlciA8L1RBQkxFPgA8VEQ+AC0+ACI+AAlba2V5PQA8PQA8ACYjeCV4OwAmcXVvdDsAJmx0OwAmZ3Q7ACZhbXA7ACMlZDsAJiMzOTsAJiM0NTsAJiM5MzsAJiMxMzsAJiMxNjA7ACYjMTA7ADtzdG9wLW9wYWNpdHk6ACUlQm91bmRpbmdCb3g6AGNhbGN1bGF0aW5nIHNob3J0ZXN0IHBhdGhzIGFuZCBzZXR0aW5nIHVwIHN0cmVzcyB0ZXJtczoAPHN0b3Agb2Zmc2V0PSIlLjAzZiIgc3R5bGU9InN0b3AtY29sb3I6ADxzdG9wIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6ADxzdG9wIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6AHNvbHZpbmcgbW9kZWw6AC9cOgBncmV5OQBncmF5OQBceEY5AFx4RTkAXHhEOQBceEM5AFx4QjkAXHhBOQBncmV5OTkAZ3JheTk5AFx4OTkAZ3JleTg5AGdyYXk4OQBceDg5ADAxMjM0NTY3ODkAZ3JleTc5AGdyYXk3OQBncmV5NjkAZ3JheTY5AGdyZXk1OQBncmF5NTkAZ3JleTQ5AGdyYXk0OQBncmV5MzkAZ3JheTM5AGdyZXkyOQBncmF5MjkAZ3JleTE5AGdyYXkxOQBceDE5AC9yZGd5OS85AC9idXB1OS85AC9yZHB1OS85AC9wdWJ1OS85AC95bGduYnU5LzkAL2duYnU5LzkAL3JkeWxidTkvOQAvcmRidTkvOQAvZ3JleXM5LzkAL2dyZWVuczkvOQAvYmx1ZXM5LzkAL3B1cnBsZXM5LzkAL29yYW5nZXM5LzkAL3JlZHM5LzkAL3B1b3I5LzkAL3lsb3JicjkvOQAvcHVidWduOS85AC9idWduOS85AC9wcmduOS85AC9yZHlsZ245LzkAL3lsZ245LzkAL3NwZWN0cmFsOS85AC9waXlnOS85AC9icmJnOS85AC9wdXJkOS85AC95bG9ycmQ5LzkAL29ycmQ5LzkAL3BhaXJlZDkvOQAvc2V0MzkvOQAvc2V0MTkvOQAvcGFzdGVsMTkvOQAvcGFpcmVkMTIvOQAvc2V0MzEyLzkAL3JkZ3kxMS85AC9yZHlsYnUxMS85AC9yZGJ1MTEvOQAvcHVvcjExLzkAL3ByZ24xMS85AC9yZHlsZ24xMS85AC9zcGVjdHJhbDExLzkAL3BpeWcxMS85AC9icmJnMTEvOQAvcGFpcmVkMTEvOQAvc2V0MzExLzkAL3JkZ3kxMC85AC9yZHlsYnUxMC85AC9yZGJ1MTAvOQAvcHVvcjEwLzkAL3ByZ24xMC85AC9yZHlsZ24xMC85AC9zcGVjdHJhbDEwLzkAL3BpeWcxMC85AC9icmJnMTAvOQAvcGFpcmVkMTAvOQAvc2V0MzEwLzkAZ3JleTgAZ3JheTgAXHg4AHV0ZjgAI2Y4ZjhmOAAjZThlOGU4AFx4RjgAR0lGOABceEU4AFx4RDgAXHhDOABceEI4AFx4QTgAZ3JleTk4AGdyYXk5OABceDk4AGdyZXk4OABncmF5ODgAXHg4OABncmV5NzgAZ3JheTc4AGdyZXk2OABncmF5NjgAZ3JleTU4AGdyYXk1OABncmV5NDgAZ3JheTQ4AGdyZXkzOABncmF5MzgAZ3JleTI4AGdyYXkyOABncmV5MTgAZ3JheTE4AFx4MTgAL3JkZ3k5LzgAL2J1cHU5LzgAL3JkcHU5LzgAL3B1YnU5LzgAL3lsZ25idTkvOAAvZ25idTkvOAAvcmR5bGJ1OS84AC9yZGJ1OS84AC9ncmV5czkvOAAvZ3JlZW5zOS84AC9ibHVlczkvOAAvcHVycGxlczkvOAAvb3JhbmdlczkvOAAvcmVkczkvOAAvcHVvcjkvOAAveWxvcmJyOS84AC9wdWJ1Z245LzgAL2J1Z245LzgAL3ByZ245LzgAL3JkeWxnbjkvOAAveWxnbjkvOAAvc3BlY3RyYWw5LzgAL3BpeWc5LzgAL2JyYmc5LzgAL3B1cmQ5LzgAL3lsb3JyZDkvOAAvb3JyZDkvOAAvcGFpcmVkOS84AC9zZXQzOS84AC9zZXQxOS84AC9wYXN0ZWwxOS84AC9yZGd5OC84AC9idXB1OC84AC9yZHB1OC84AC9wdWJ1OC84AC95bGduYnU4LzgAL2duYnU4LzgAL3JkeWxidTgvOAAvcmRidTgvOAAvYWNjZW50OC84AC9ncmV5czgvOAAvZ3JlZW5zOC84AC9ibHVlczgvOAAvcHVycGxlczgvOAAvb3JhbmdlczgvOAAvcmVkczgvOAAvcHVvcjgvOAAveWxvcmJyOC84AC9wdWJ1Z244LzgAL2J1Z244LzgAL3ByZ244LzgAL3JkeWxnbjgvOAAveWxnbjgvOAAvc3BlY3RyYWw4LzgAL3BpeWc4LzgAL2JyYmc4LzgAL3B1cmQ4LzgAL3lsb3JyZDgvOAAvb3JyZDgvOAAvcGFpcmVkOC84AC9zZXQzOC84AC9zZXQyOC84AC9wYXN0ZWwyOC84AC9kYXJrMjgvOAAvc2V0MTgvOAAvcGFzdGVsMTgvOAAvcGFpcmVkMTIvOAAvc2V0MzEyLzgAL3JkZ3kxMS84AC9yZHlsYnUxMS84AC9yZGJ1MTEvOAAvcHVvcjExLzgAL3ByZ24xMS84AC9yZHlsZ24xMS84AC9zcGVjdHJhbDExLzgAL3BpeWcxMS84AC9icmJnMTEvOAAvcGFpcmVkMTEvOAAvc2V0MzExLzgAL3JkZ3kxMC84AC9yZHlsYnUxMC84AC9yZGJ1MTAvOAAvcHVvcjEwLzgAL3ByZ24xMC84AC9yZHlsZ24xMC84AC9zcGVjdHJhbDEwLzgAL3BpeWcxMC84AC9icmJnMTAvOAAvcGFpcmVkMTAvOAAvc2V0MzEwLzgAdXRmLTgAQy5VVEYtOABncmV5NwBncmF5NwBceDcAXHhGNwBceEU3AFx4RDcAXHhDNwBceEI3AFx4QTcAZ3JleTk3AGdyYXk5NwBceDk3AGdyZXk4NwBncmF5ODcAXHg4NwBncmV5NzcAZ3JheTc3AGdyZXk2NwBncmF5NjcAZ3JleTU3AGdyYXk1NwBncmV5NDcAZ3JheTQ3AGdyZXkzNwBncmF5MzcAZ3JleTI3AGdyYXkyNwBncmV5MTcAZ3JheTE3AFx4MTcAL3JkZ3k5LzcAL2J1cHU5LzcAL3JkcHU5LzcAL3B1YnU5LzcAL3lsZ25idTkvNwAvZ25idTkvNwAvcmR5bGJ1OS83AC9yZGJ1OS83AC9ncmV5czkvNwAvZ3JlZW5zOS83AC9ibHVlczkvNwAvcHVycGxlczkvNwAvb3JhbmdlczkvNwAvcmVkczkvNwAvcHVvcjkvNwAveWxvcmJyOS83AC9wdWJ1Z245LzcAL2J1Z245LzcAL3ByZ245LzcAL3JkeWxnbjkvNwAveWxnbjkvNwAvc3BlY3RyYWw5LzcAL3BpeWc5LzcAL2JyYmc5LzcAL3B1cmQ5LzcAL3lsb3JyZDkvNwAvb3JyZDkvNwAvcGFpcmVkOS83AC9zZXQzOS83AC9zZXQxOS83AC9wYXN0ZWwxOS83AC9yZGd5OC83AC9idXB1OC83AC9yZHB1OC83AC9wdWJ1OC83AC95bGduYnU4LzcAL2duYnU4LzcAL3JkeWxidTgvNwAvcmRidTgvNwAvYWNjZW50OC83AC9ncmV5czgvNwAvZ3JlZW5zOC83AC9ibHVlczgvNwAvcHVycGxlczgvNwAvb3JhbmdlczgvNwAvcmVkczgvNwAvcHVvcjgvNwAveWxvcmJyOC83AC9wdWJ1Z244LzcAL2J1Z244LzcAL3ByZ244LzcAL3JkeWxnbjgvNwAveWxnbjgvNwAvc3BlY3RyYWw4LzcAL3BpeWc4LzcAL2JyYmc4LzcAL3B1cmQ4LzcAL3lsb3JyZDgvNwAvb3JyZDgvNwAvcGFpcmVkOC83AC9zZXQzOC83AC9zZXQyOC83AC9wYXN0ZWwyOC83AC9kYXJrMjgvNwAvc2V0MTgvNwAvcGFzdGVsMTgvNwAvcmRneTcvNwAvYnVwdTcvNwAvcmRwdTcvNwAvcHVidTcvNwAveWxnbmJ1Ny83AC9nbmJ1Ny83AC9yZHlsYnU3LzcAL3JkYnU3LzcAL2FjY2VudDcvNwAvZ3JleXM3LzcAL2dyZWVuczcvNwAvYmx1ZXM3LzcAL3B1cnBsZXM3LzcAL29yYW5nZXM3LzcAL3JlZHM3LzcAL3B1b3I3LzcAL3lsb3JicjcvNwAvcHVidWduNy83AC9idWduNy83AC9wcmduNy83AC9yZHlsZ243LzcAL3lsZ243LzcAL3NwZWN0cmFsNy83AC9waXlnNy83AC9icmJnNy83AC9wdXJkNy83AC95bG9ycmQ3LzcAL29ycmQ3LzcAL3BhaXJlZDcvNwAvc2V0MzcvNwAvc2V0MjcvNwAvcGFzdGVsMjcvNwAvZGFyazI3LzcAL3NldDE3LzcAL3Bhc3RlbDE3LzcAL3BhaXJlZDEyLzcAL3NldDMxMi83AC9yZGd5MTEvNwAvcmR5bGJ1MTEvNwAvcmRidTExLzcAL3B1b3IxMS83AC9wcmduMTEvNwAvcmR5bGduMTEvNwAvc3BlY3RyYWwxMS83AC9waXlnMTEvNwAvYnJiZzExLzcAL3BhaXJlZDExLzcAL3NldDMxMS83AC9yZGd5MTAvNwAvcmR5bGJ1MTAvNwAvcmRidTEwLzcAL3B1b3IxMC83AC9wcmduMTAvNwAvcmR5bGduMTAvNwAvc3BlY3RyYWwxMC83AC9waXlnMTAvNwAvYnJiZzEwLzcAL3BhaXJlZDEwLzcAL3NldDMxMC83ADEuNwBncmV5NgBncmF5NgBceDYAXHhGNgBceEU2AFx4RDYAXHhDNgBceEI2AFx4QTYAZ3JleTk2AGdyYXk5NgBceDk2AGdyZXk4NgBncmF5ODYAXHg4NgBncmV5NzYAZ3JheTc2AGdyZXk2NgBncmF5NjYAZ3JleTU2AGdyYXk1NgBncmV5NDYAZ3JheTQ2AGdyZXkzNgBncmF5MzYAZ3JleTI2AGdyYXkyNgBncmV5MTYAZ3JheTE2AFx4MTYAL3JkZ3k5LzYAL2J1cHU5LzYAL3JkcHU5LzYAL3B1YnU5LzYAL3lsZ25idTkvNgAvZ25idTkvNgAvcmR5bGJ1OS82AC9yZGJ1OS82AC9ncmV5czkvNgAvZ3JlZW5zOS82AC9ibHVlczkvNgAvcHVycGxlczkvNgAvb3JhbmdlczkvNgAvcmVkczkvNgAvcHVvcjkvNgAveWxvcmJyOS82AC9wdWJ1Z245LzYAL2J1Z245LzYAL3ByZ245LzYAL3JkeWxnbjkvNgAveWxnbjkvNgAvc3BlY3RyYWw5LzYAL3BpeWc5LzYAL2JyYmc5LzYAL3B1cmQ5LzYAL3lsb3JyZDkvNgAvb3JyZDkvNgAvcGFpcmVkOS82AC9zZXQzOS82AC9zZXQxOS82AC9wYXN0ZWwxOS82AC9yZGd5OC82AC9idXB1OC82AC9yZHB1OC82AC9wdWJ1OC82AC95bGduYnU4LzYAL2duYnU4LzYAL3JkeWxidTgvNgAvcmRidTgvNgAvYWNjZW50OC82AC9ncmV5czgvNgAvZ3JlZW5zOC82AC9ibHVlczgvNgAvcHVycGxlczgvNgAvb3JhbmdlczgvNgAvcmVkczgvNgAvcHVvcjgvNgAveWxvcmJyOC82AC9wdWJ1Z244LzYAL2J1Z244LzYAL3ByZ244LzYAL3JkeWxnbjgvNgAveWxnbjgvNgAvc3BlY3RyYWw4LzYAL3BpeWc4LzYAL2JyYmc4LzYAL3B1cmQ4LzYAL3lsb3JyZDgvNgAvb3JyZDgvNgAvcGFpcmVkOC82AC9zZXQzOC82AC9zZXQyOC82AC9wYXN0ZWwyOC82AC9kYXJrMjgvNgAvc2V0MTgvNgAvcGFzdGVsMTgvNgAvcmRneTcvNgAvYnVwdTcvNgAvcmRwdTcvNgAvcHVidTcvNgAveWxnbmJ1Ny82AC9nbmJ1Ny82AC9yZHlsYnU3LzYAL3JkYnU3LzYAL2FjY2VudDcvNgAvZ3JleXM3LzYAL2dyZWVuczcvNgAvYmx1ZXM3LzYAL3B1cnBsZXM3LzYAL29yYW5nZXM3LzYAL3JlZHM3LzYAL3B1b3I3LzYAL3lsb3JicjcvNgAvcHVidWduNy82AC9idWduNy82AC9wcmduNy82AC9yZHlsZ243LzYAL3lsZ243LzYAL3NwZWN0cmFsNy82AC9waXlnNy82AC9icmJnNy82AC9wdXJkNy82AC95bG9ycmQ3LzYAL29ycmQ3LzYAL3BhaXJlZDcvNgAvc2V0MzcvNgAvc2V0MjcvNgAvcGFzdGVsMjcvNgAvZGFyazI3LzYAL3NldDE3LzYAL3Bhc3RlbDE3LzYAL3JkZ3k2LzYAL2J1cHU2LzYAL3JkcHU2LzYAL3B1YnU2LzYAL3lsZ25idTYvNgAvZ25idTYvNgAvcmR5bGJ1Ni82AC9yZGJ1Ni82AC9hY2NlbnQ2LzYAL2dyZXlzNi82AC9ncmVlbnM2LzYAL2JsdWVzNi82AC9wdXJwbGVzNi82AC9vcmFuZ2VzNi82AC9yZWRzNi82AC9wdW9yNi82AC95bG9yYnI2LzYAL3B1YnVnbjYvNgAvYnVnbjYvNgAvcHJnbjYvNgAvcmR5bGduNi82AC95bGduNi82AC9zcGVjdHJhbDYvNgAvcGl5ZzYvNgAvYnJiZzYvNgAvcHVyZDYvNgAveWxvcnJkNi82AC9vcnJkNi82AC9wYWlyZWQ2LzYAL3NldDM2LzYAL3NldDI2LzYAL3Bhc3RlbDI2LzYAL2RhcmsyNi82AC9zZXQxNi82AC9wYXN0ZWwxNi82AC9wYWlyZWQxMi82AC9zZXQzMTIvNgAvcmRneTExLzYAL3JkeWxidTExLzYAL3JkYnUxMS82AC9wdW9yMTEvNgAvcHJnbjExLzYAL3JkeWxnbjExLzYAL3NwZWN0cmFsMTEvNgAvcGl5ZzExLzYAL2JyYmcxMS82AC9wYWlyZWQxMS82AC9zZXQzMTEvNgAvcmRneTEwLzYAL3JkeWxidTEwLzYAL3JkYnUxMC82AC9wdW9yMTAvNgAvcHJnbjEwLzYAL3JkeWxnbjEwLzYAL3NwZWN0cmFsMTAvNgAvcGl5ZzEwLzYAL2JyYmcxMC82AC9wYWlyZWQxMC82AC9zZXQzMTAvNgBncmV5NQBncmF5NQBceDUAYmlnNQBceEY1AFx4RTUAXHhENQBceEM1AFx4QjUAXHhBNQBncmV5OTUAZ3JheTk1AFx4OTUAZ3JleTg1AGdyYXk4NQBceDg1AGdyZXk3NQBncmF5NzUAZ3JleTY1AGdyYXk2NQBncmV5NTUAZ3JheTU1AGdyZXk0NQBncmF5NDUAZ3JleTM1AGdyYXkzNQBncmV5MjUAZ3JheTI1AGdyZXkxNQBncmF5MTUAXHgxNQBncmF5MDUAL3JkZ3k5LzUAL2J1cHU5LzUAL3JkcHU5LzUAL3B1YnU5LzUAL3lsZ25idTkvNQAvZ25idTkvNQAvcmR5bGJ1OS81AC9yZGJ1OS81AC9ncmV5czkvNQAvZ3JlZW5zOS81AC9ibHVlczkvNQAvcHVycGxlczkvNQAvb3JhbmdlczkvNQAvcmVkczkvNQAvcHVvcjkvNQAveWxvcmJyOS81AC9wdWJ1Z245LzUAL2J1Z245LzUAL3ByZ245LzUAL3JkeWxnbjkvNQAveWxnbjkvNQAvc3BlY3RyYWw5LzUAL3BpeWc5LzUAL2JyYmc5LzUAL3B1cmQ5LzUAL3lsb3JyZDkvNQAvb3JyZDkvNQAvcGFpcmVkOS81AC9zZXQzOS81AC9zZXQxOS81AC9wYXN0ZWwxOS81AC9yZGd5OC81AC9idXB1OC81AC9yZHB1OC81AC9wdWJ1OC81AC95bGduYnU4LzUAL2duYnU4LzUAL3JkeWxidTgvNQAvcmRidTgvNQAvYWNjZW50OC81AC9ncmV5czgvNQAvZ3JlZW5zOC81AC9ibHVlczgvNQAvcHVycGxlczgvNQAvb3JhbmdlczgvNQAvcmVkczgvNQAvcHVvcjgvNQAveWxvcmJyOC81AC9wdWJ1Z244LzUAL2J1Z244LzUAL3ByZ244LzUAL3JkeWxnbjgvNQAveWxnbjgvNQAvc3BlY3RyYWw4LzUAL3BpeWc4LzUAL2JyYmc4LzUAL3B1cmQ4LzUAL3lsb3JyZDgvNQAvb3JyZDgvNQAvcGFpcmVkOC81AC9zZXQzOC81AC9zZXQyOC81AC9wYXN0ZWwyOC81AC9kYXJrMjgvNQAvc2V0MTgvNQAvcGFzdGVsMTgvNQAvcmRneTcvNQAvYnVwdTcvNQAvcmRwdTcvNQAvcHVidTcvNQAveWxnbmJ1Ny81AC9nbmJ1Ny81AC9yZHlsYnU3LzUAL3JkYnU3LzUAL2FjY2VudDcvNQAvZ3JleXM3LzUAL2dyZWVuczcvNQAvYmx1ZXM3LzUAL3B1cnBsZXM3LzUAL29yYW5nZXM3LzUAL3JlZHM3LzUAL3B1b3I3LzUAL3lsb3JicjcvNQAvcHVidWduNy81AC9idWduNy81AC9wcmduNy81AC9yZHlsZ243LzUAL3lsZ243LzUAL3NwZWN0cmFsNy81AC9waXlnNy81AC9icmJnNy81AC9wdXJkNy81AC95bG9ycmQ3LzUAL29ycmQ3LzUAL3BhaXJlZDcvNQAvc2V0MzcvNQAvc2V0MjcvNQAvcGFzdGVsMjcvNQAvZGFyazI3LzUAL3NldDE3LzUAL3Bhc3RlbDE3LzUAL3JkZ3k2LzUAL2J1cHU2LzUAL3JkcHU2LzUAL3B1YnU2LzUAL3lsZ25idTYvNQAvZ25idTYvNQAvcmR5bGJ1Ni81AC9yZGJ1Ni81AC9hY2NlbnQ2LzUAL2dyZXlzNi81AC9ncmVlbnM2LzUAL2JsdWVzNi81AC9wdXJwbGVzNi81AC9vcmFuZ2VzNi81AC9yZWRzNi81AC9wdW9yNi81AC95bG9yYnI2LzUAL3B1YnVnbjYvNQAvYnVnbjYvNQAvcHJnbjYvNQAvcmR5bGduNi81AC95bGduNi81AC9zcGVjdHJhbDYvNQAvcGl5ZzYvNQAvYnJiZzYvNQAvcHVyZDYvNQAveWxvcnJkNi81AC9vcnJkNi81AC9wYWlyZWQ2LzUAL3NldDM2LzUAL3NldDI2LzUAL3Bhc3RlbDI2LzUAL2RhcmsyNi81AC9zZXQxNi81AC9wYXN0ZWwxNi81AC9yZGd5NS81AC9idXB1NS81AC9yZHB1NS81AC9wdWJ1NS81AC95bGduYnU1LzUAL2duYnU1LzUAL3JkeWxidTUvNQAvcmRidTUvNQAvYWNjZW50NS81AC9ncmV5czUvNQAvZ3JlZW5zNS81AC9ibHVlczUvNQAvcHVycGxlczUvNQAvb3JhbmdlczUvNQAvcmVkczUvNQAvcHVvcjUvNQAveWxvcmJyNS81AC9wdWJ1Z241LzUAL2J1Z241LzUAL3ByZ241LzUAL3JkeWxnbjUvNQAveWxnbjUvNQAvc3BlY3RyYWw1LzUAL3BpeWc1LzUAL2JyYmc1LzUAL3B1cmQ1LzUAL3lsb3JyZDUvNQAvb3JyZDUvNQAvcGFpcmVkNS81AC9zZXQzNS81AC9zZXQyNS81AC9wYXN0ZWwyNS81AC9kYXJrMjUvNQAvc2V0MTUvNQAvcGFzdGVsMTUvNQAvcGFpcmVkMTIvNQAvc2V0MzEyLzUAL3JkZ3kxMS81AC9yZHlsYnUxMS81AC9yZGJ1MTEvNQAvcHVvcjExLzUAL3ByZ24xMS81AC9yZHlsZ24xMS81AC9zcGVjdHJhbDExLzUAL3BpeWcxMS81AC9icmJnMTEvNQAvcGFpcmVkMTEvNQAvc2V0MzExLzUAL3JkZ3kxMC81AC9yZHlsYnUxMC81AC9yZGJ1MTAvNQAvcHVvcjEwLzUAL3ByZ24xMC81AC9yZHlsZ24xMC81AC9zcGVjdHJhbDEwLzUAL3BpeWcxMC81AC9icmJnMTAvNQAvcGFpcmVkMTAvNQAvc2V0MzEwLzUAYmlnLTUAQklHLTUAIC1kYXNoIDUAaXZvcnk0AGdyZXk0AGRhcmtzbGF0ZWdyYXk0AFx4NABzbm93NABsaWdodHllbGxvdzQAaG9uZXlkZXc0AHdoZWF0NAB0b21hdG80AHJvc3licm93bjQAbWFyb29uNABsaWdodHNhbG1vbjQAbGVtb25jaGlmZm9uNABzcHJpbmdncmVlbjQAZGFya29saXZlZ3JlZW40AHBhbGVncmVlbjQAZGFya3NlYWdyZWVuNABsaWdodGN5YW40AHRhbjQAcGx1bTQAc2Vhc2hlbGw0AGNvcmFsNABob3RwaW5rNABsaWdodHBpbms0AGRlZXBwaW5rNABjb3Juc2lsazQAZmlyZWJyaWNrNABraGFraTQAbGF2ZW5kZXJibHVzaDQAcGVhY2hwdWZmNABiaXNxdWU0AGxpZ2h0c2t5Ymx1ZTQAZGVlcHNreWJsdWU0AGxpZ2h0Ymx1ZTQAY2FkZXRibHVlNABkb2RnZXJibHVlNABsaWdodHN0ZWVsYmx1ZTQAcm95YWxibHVlNABzbGF0ZWJsdWU0AG5hdmFqb3doaXRlNABhbnRpcXVld2hpdGU0AGNob2NvbGF0ZTQAY2hhcnRyZXVzZTQAbWlzdHlyb3NlNABwYWxldHVycXVvaXNlNABhenVyZTQAdGhlcmU0AGFxdWFtYXJpbmU0AHRoaXN0bGU0AG1lZGl1bXB1cnBsZTQAZGFya29yYW5nZTQAbGlnaHRnb2xkZW5yb2Q0AGRhcmtnb2xkZW5yb2Q0AGJ1cmx5d29vZDQAZ29sZDQAbWVkaXVtb3JjaGlkNABkYXJrb3JjaGlkNABwYWxldmlvbGV0cmVkNABpbmRpYW5yZWQ0AG9yYW5nZXJlZDQAb2xpdmVkcmFiNABtYWdlbnRhNABzaWVubmE0AFx4RjQAXHhFNABceEQ0AFx4QzQAXHhCNABceEE0AGdyZXk5NABncmF5OTQAXHg5NABncmV5ODQAZ3JheTg0AFx4ODQAZ3JleTc0AGdyYXk3NABncmV5NjQAZ3JheTY0AGdyZXk1NABncmF5NTQAZ3JleTQ0AGdyYXk0NABncmV5MzQAZ3JheTM0AGZyYWMzNABncmV5MjQAZ3JheTI0AGdyZXkxNABncmF5MTQAXHgxNABmcmFjMTQAL3JkZ3k5LzQAL2J1cHU5LzQAL3JkcHU5LzQAL3B1YnU5LzQAL3lsZ25idTkvNAAvZ25idTkvNAAvcmR5bGJ1OS80AC9yZGJ1OS80AC9ncmV5czkvNAAvZ3JlZW5zOS80AC9ibHVlczkvNAAvcHVycGxlczkvNAAvb3JhbmdlczkvNAAvcmVkczkvNAAvcHVvcjkvNAAveWxvcmJyOS80AC9wdWJ1Z245LzQAL2J1Z245LzQAL3ByZ245LzQAL3JkeWxnbjkvNAAveWxnbjkvNAAvc3BlY3RyYWw5LzQAL3BpeWc5LzQAL2JyYmc5LzQAL3B1cmQ5LzQAL3lsb3JyZDkvNAAvb3JyZDkvNAAvcGFpcmVkOS80AC9zZXQzOS80AC9zZXQxOS80AC9wYXN0ZWwxOS80AC9yZGd5OC80AC9idXB1OC80AC9yZHB1OC80AC9wdWJ1OC80AC95bGduYnU4LzQAL2duYnU4LzQAL3JkeWxidTgvNAAvcmRidTgvNAAvYWNjZW50OC80AC9ncmV5czgvNAAvZ3JlZW5zOC80AC9ibHVlczgvNAAvcHVycGxlczgvNAAvb3JhbmdlczgvNAAvcmVkczgvNAAvcHVvcjgvNAAveWxvcmJyOC80AC9wdWJ1Z244LzQAL2J1Z244LzQAL3ByZ244LzQAL3JkeWxnbjgvNAAveWxnbjgvNAAvc3BlY3RyYWw4LzQAL3BpeWc4LzQAL2JyYmc4LzQAL3B1cmQ4LzQAL3lsb3JyZDgvNAAvb3JyZDgvNAAvcGFpcmVkOC80AC9zZXQzOC80AC9zZXQyOC80AC9wYXN0ZWwyOC80AC9kYXJrMjgvNAAvc2V0MTgvNAAvcGFzdGVsMTgvNAAvcmRneTcvNAAvYnVwdTcvNAAvcmRwdTcvNAAvcHVidTcvNAAveWxnbmJ1Ny80AC9nbmJ1Ny80AC9yZHlsYnU3LzQAL3JkYnU3LzQAL2FjY2VudDcvNAAvZ3JleXM3LzQAL2dyZWVuczcvNAAvYmx1ZXM3LzQAL3B1cnBsZXM3LzQAL29yYW5nZXM3LzQAL3JlZHM3LzQAL3B1b3I3LzQAL3lsb3JicjcvNAAvcHVidWduNy80AC9idWduNy80AC9wcmduNy80AC9yZHlsZ243LzQAL3lsZ243LzQAL3NwZWN0cmFsNy80AC9waXlnNy80AC9icmJnNy80AC9wdXJkNy80AC95bG9ycmQ3LzQAL29ycmQ3LzQAL3BhaXJlZDcvNAAvc2V0MzcvNAAvc2V0MjcvNAAvcGFzdGVsMjcvNAAvZGFyazI3LzQAL3NldDE3LzQAL3Bhc3RlbDE3LzQAL3JkZ3k2LzQAL2J1cHU2LzQAL3JkcHU2LzQAL3B1YnU2LzQAL3lsZ25idTYvNAAvZ25idTYvNAAvcmR5bGJ1Ni80AC9yZGJ1Ni80AC9hY2NlbnQ2LzQAL2dyZXlzNi80AC9ncmVlbnM2LzQAL2JsdWVzNi80AC9wdXJwbGVzNi80AC9vcmFuZ2VzNi80AC9yZWRzNi80AC9wdW9yNi80AC95bG9yYnI2LzQAL3B1YnVnbjYvNAAvYnVnbjYvNAAvcHJnbjYvNAAvcmR5bGduNi80AC95bGduNi80AC9zcGVjdHJhbDYvNAAvcGl5ZzYvNAAvYnJiZzYvNAAvcHVyZDYvNAAveWxvcnJkNi80AC9vcnJkNi80AC9wYWlyZWQ2LzQAL3NldDM2LzQAL3NldDI2LzQAL3Bhc3RlbDI2LzQAL2RhcmsyNi80AC9zZXQxNi80AC9wYXN0ZWwxNi80AC9yZGd5NS80AC9idXB1NS80AC9yZHB1NS80AC9wdWJ1NS80AC95bGduYnU1LzQAL2duYnU1LzQAL3JkeWxidTUvNAAvcmRidTUvNAAvYWNjZW50NS80AC9ncmV5czUvNAAvZ3JlZW5zNS80AC9ibHVlczUvNAAvcHVycGxlczUvNAAvb3JhbmdlczUvNAAvcmVkczUvNAAvcHVvcjUvNAAveWxvcmJyNS80AC9wdWJ1Z241LzQAL2J1Z241LzQAL3ByZ241LzQAL3JkeWxnbjUvNAAveWxnbjUvNAAvc3BlY3RyYWw1LzQAL3BpeWc1LzQAL2JyYmc1LzQAL3B1cmQ1LzQAL3lsb3JyZDUvNAAvb3JyZDUvNAAvcGFpcmVkNS80AC9zZXQzNS80AC9zZXQyNS80AC9wYXN0ZWwyNS80AC9kYXJrMjUvNAAvc2V0MTUvNAAvcGFzdGVsMTUvNAAvcmRneTQvNAAvYnVwdTQvNAAvcmRwdTQvNAAvcHVidTQvNAAveWxnbmJ1NC80AC9nbmJ1NC80AC9yZHlsYnU0LzQAL3JkYnU0LzQAL2FjY2VudDQvNAAvZ3JleXM0LzQAL2dyZWVuczQvNAAvYmx1ZXM0LzQAL3B1cnBsZXM0LzQAL29yYW5nZXM0LzQAL3JlZHM0LzQAL3B1b3I0LzQAL3lsb3JicjQvNAAvcHVidWduNC80AC9idWduNC80AC9wcmduNC80AC9yZHlsZ240LzQAL3lsZ240LzQAL3NwZWN0cmFsNC80AC9waXlnNC80AC9icmJnNC80AC9wdXJkNC80AC95bG9ycmQ0LzQAL29ycmQ0LzQAL3BhaXJlZDQvNAAvc2V0MzQvNAAvc2V0MjQvNAAvcGFzdGVsMjQvNAAvZGFyazI0LzQAL3NldDE0LzQAL3Bhc3RlbDE0LzQAL3BhaXJlZDEyLzQAL3NldDMxMi80AC9yZGd5MTEvNAAvcmR5bGJ1MTEvNAAvcmRidTExLzQAL3B1b3IxMS80AC9wcmduMTEvNAAvcmR5bGduMTEvNAAvc3BlY3RyYWwxMS80AC9waXlnMTEvNAAvYnJiZzExLzQAL3BhaXJlZDExLzQAL3NldDMxMS80AC9yZGd5MTAvNAAvcmR5bGJ1MTAvNAAvcmRidTEwLzQAL3B1b3IxMC80AC9wcmduMTAvNAAvcmR5bGduMTAvNAAvc3BlY3RyYWwxMC80AC9waXlnMTAvNAAvYnJiZzEwLzQAL3BhaXJlZDEwLzQAL3NldDMxMC80ADEuNABuID49IDQAc2lkZXMgPT0gNABpdm9yeTMAU3BhcnNlTWF0cml4X211bHRpcGx5MwBncmV5MwBkYXJrc2xhdGVncmF5MwBceDMAc25vdzMAbGlnaHR5ZWxsb3czAGhvbmV5ZGV3MwB3aGVhdDMAc3VwMwB0b21hdG8zAHJvc3licm93bjMAbWFyb29uMwBsaWdodHNhbG1vbjMAbGVtb25jaGlmZm9uMwBzcHJpbmdncmVlbjMAZGFya29saXZlZ3JlZW4zAHBhbGVncmVlbjMAZGFya3NlYWdyZWVuMwBsaWdodGN5YW4zAHRhbjMAcGx1bTMAc2Vhc2hlbGwzAGNvcmFsMwBob3RwaW5rMwBsaWdodHBpbmszAGRlZXBwaW5rMwBjb3Juc2lsazMAZmlyZWJyaWNrMwBraGFraTMAbGF2ZW5kZXJibHVzaDMAcGVhY2hwdWZmMwBiaXNxdWUzAGxpZ2h0c2t5Ymx1ZTMAZGVlcHNreWJsdWUzAGxpZ2h0Ymx1ZTMAY2FkZXRibHVlMwBkb2RnZXJibHVlMwBsaWdodHN0ZWVsYmx1ZTMAcm95YWxibHVlMwBzbGF0ZWJsdWUzAG5hdmFqb3doaXRlMwBhbnRpcXVld2hpdGUzAGNob2NvbGF0ZTMAY2hhcnRyZXVzZTMAbWlzdHlyb3NlMwBwYWxldHVycXVvaXNlMwBhenVyZTMAYXF1YW1hcmluZTMAdGhpc3RsZTMAbWVkaXVtcHVycGxlMwBkYXJrb3JhbmdlMwBsaWdodGdvbGRlbnJvZDMAZGFya2dvbGRlbnJvZDMAYnVybHl3b29kMwBnb2xkMwBtZWRpdW1vcmNoaWQzAGRhcmtvcmNoaWQzAHBhbGV2aW9sZXRyZWQzAGluZGlhbnJlZDMAb3JhbmdlcmVkMwBvbGl2ZWRyYWIzAG1hZ2VudGEzAHNpZW5uYTMAXHhGMwBceEUzAFx4RDMAXHhDMwBceEIzAFx4QTMAZ3JleTkzAGdyYXk5MwBceDkzAGdyZXk4MwBncmF5ODMAXHg4MwBncmV5NzMAZ3JheTczAGdyZXk2MwBncmF5NjMAZ3JleTUzAGdyYXk1MwBncmV5NDMAZ3JheTQzAGdyZXkzMwBncmF5MzMAZ3JleTIzAGdyYXkyMwBncmV5MTMAZ3JheTEzAFx4MTMAL3JkZ3k5LzMAL2J1cHU5LzMAL3JkcHU5LzMAL3B1YnU5LzMAL3lsZ25idTkvMwAvZ25idTkvMwAvcmR5bGJ1OS8zAC9yZGJ1OS8zAC9ncmV5czkvMwAvZ3JlZW5zOS8zAC9ibHVlczkvMwAvcHVycGxlczkvMwAvb3JhbmdlczkvMwAvcmVkczkvMwAvcHVvcjkvMwAveWxvcmJyOS8zAC9wdWJ1Z245LzMAL2J1Z245LzMAL3ByZ245LzMAL3JkeWxnbjkvMwAveWxnbjkvMwAvc3BlY3RyYWw5LzMAL3BpeWc5LzMAL2JyYmc5LzMAL3B1cmQ5LzMAL3lsb3JyZDkvMwAvb3JyZDkvMwAvcGFpcmVkOS8zAC9zZXQzOS8zAC9zZXQxOS8zAC9wYXN0ZWwxOS8zAC9yZGd5OC8zAC9idXB1OC8zAC9yZHB1OC8zAC9wdWJ1OC8zAC95bGduYnU4LzMAL2duYnU4LzMAL3JkeWxidTgvMwAvcmRidTgvMwAvYWNjZW50OC8zAC9ncmV5czgvMwAvZ3JlZW5zOC8zAC9ibHVlczgvMwAvcHVycGxlczgvMwAvb3JhbmdlczgvMwAvcmVkczgvMwAvcHVvcjgvMwAveWxvcmJyOC8zAC9wdWJ1Z244LzMAL2J1Z244LzMAL3ByZ244LzMAL3JkeWxnbjgvMwAveWxnbjgvMwAvc3BlY3RyYWw4LzMAL3BpeWc4LzMAL2JyYmc4LzMAL3B1cmQ4LzMAL3lsb3JyZDgvMwAvb3JyZDgvMwAvcGFpcmVkOC8zAC9zZXQzOC8zAC9zZXQyOC8zAC9wYXN0ZWwyOC8zAC9kYXJrMjgvMwAvc2V0MTgvMwAvcGFzdGVsMTgvMwAvcmRneTcvMwAvYnVwdTcvMwAvcmRwdTcvMwAvcHVidTcvMwAveWxnbmJ1Ny8zAC9nbmJ1Ny8zAC9yZHlsYnU3LzMAL3JkYnU3LzMAL2FjY2VudDcvMwAvZ3JleXM3LzMAL2dyZWVuczcvMwAvYmx1ZXM3LzMAL3B1cnBsZXM3LzMAL29yYW5nZXM3LzMAL3JlZHM3LzMAL3B1b3I3LzMAL3lsb3JicjcvMwAvcHVidWduNy8zAC9idWduNy8zAC9wcmduNy8zAC9yZHlsZ243LzMAL3lsZ243LzMAL3NwZWN0cmFsNy8zAC9waXlnNy8zAC9icmJnNy8zAC9wdXJkNy8zAC95bG9ycmQ3LzMAL29ycmQ3LzMAL3BhaXJlZDcvMwAvc2V0MzcvMwAvc2V0MjcvMwAvcGFzdGVsMjcvMwAvZGFyazI3LzMAL3NldDE3LzMAL3Bhc3RlbDE3LzMAL3JkZ3k2LzMAL2J1cHU2LzMAL3JkcHU2LzMAL3B1YnU2LzMAL3lsZ25idTYvMwAvZ25idTYvMwAvcmR5bGJ1Ni8zAC9yZGJ1Ni8zAC9hY2NlbnQ2LzMAL2dyZXlzNi8zAC9ncmVlbnM2LzMAL2JsdWVzNi8zAC9wdXJwbGVzNi8zAC9vcmFuZ2VzNi8zAC9yZWRzNi8zAC9wdW9yNi8zAC95bG9yYnI2LzMAL3B1YnVnbjYvMwAvYnVnbjYvMwAvcHJnbjYvMwAvcmR5bGduNi8zAC95bGduNi8zAC9zcGVjdHJhbDYvMwAvcGl5ZzYvMwAvYnJiZzYvMwAvcHVyZDYvMwAveWxvcnJkNi8zAC9vcnJkNi8zAC9wYWlyZWQ2LzMAL3NldDM2LzMAL3NldDI2LzMAL3Bhc3RlbDI2LzMAL2RhcmsyNi8zAC9zZXQxNi8zAC9wYXN0ZWwxNi8zAC9yZGd5NS8zAC9idXB1NS8zAC9yZHB1NS8zAC9wdWJ1NS8zAC95bGduYnU1LzMAL2duYnU1LzMAL3JkeWxidTUvMwAvcmRidTUvMwAvYWNjZW50NS8zAC9ncmV5czUvMwAvZ3JlZW5zNS8zAC9ibHVlczUvMwAvcHVycGxlczUvMwAvb3JhbmdlczUvMwAvcmVkczUvMwAvcHVvcjUvMwAveWxvcmJyNS8zAC9wdWJ1Z241LzMAL2J1Z241LzMAL3ByZ241LzMAL3JkeWxnbjUvMwAveWxnbjUvMwAvc3BlY3RyYWw1LzMAL3BpeWc1LzMAL2JyYmc1LzMAL3B1cmQ1LzMAL3lsb3JyZDUvMwAvb3JyZDUvMwAvcGFpcmVkNS8zAC9zZXQzNS8zAC9zZXQyNS8zAC9wYXN0ZWwyNS8zAC9kYXJrMjUvMwAvc2V0MTUvMwAvcGFzdGVsMTUvMwAvcmRneTQvMwAvYnVwdTQvMwAvcmRwdTQvMwAvcHVidTQvMwAveWxnbmJ1NC8zAC9nbmJ1NC8zAC9yZHlsYnU0LzMAL3JkYnU0LzMAL2FjY2VudDQvMwAvZ3JleXM0LzMAL2dyZWVuczQvMwAvYmx1ZXM0LzMAL3B1cnBsZXM0LzMAL29yYW5nZXM0LzMAL3JlZHM0LzMAL3B1b3I0LzMAL3lsb3JicjQvMwAvcHVidWduNC8zAC9idWduNC8zAC9wcmduNC8zAC9yZHlsZ240LzMAL3lsZ240LzMAL3NwZWN0cmFsNC8zAC9waXlnNC8zAC9icmJnNC8zAC9wdXJkNC8zAC95bG9ycmQ0LzMAL29ycmQ0LzMAL3BhaXJlZDQvMwAvc2V0MzQvMwAvc2V0MjQvMwAvcGFzdGVsMjQvMwAvZGFyazI0LzMAL3NldDE0LzMAL3Bhc3RlbDE0LzMAL3JkZ3kzLzMAL2J1cHUzLzMAL3JkcHUzLzMAL3B1YnUzLzMAL3lsZ25idTMvMwAvZ25idTMvMwAvcmR5bGJ1My8zAC9yZGJ1My8zAC9hY2NlbnQzLzMAL2dyZXlzMy8zAC9ncmVlbnMzLzMAL2JsdWVzMy8zAC9wdXJwbGVzMy8zAC9vcmFuZ2VzMy8zAC9yZWRzMy8zAC9wdW9yMy8zAC95bG9yYnIzLzMAL3B1YnVnbjMvMwAvYnVnbjMvMwAvcHJnbjMvMwAvcmR5bGduMy8zAC95bGduMy8zAC9zcGVjdHJhbDMvMwAvcGl5ZzMvMwAvYnJiZzMvMwAvcHVyZDMvMwAveWxvcnJkMy8zAC9vcnJkMy8zAC9wYWlyZWQzLzMAL3NldDMzLzMAL3NldDIzLzMAL3Bhc3RlbDIzLzMAL2RhcmsyMy8zAC9zZXQxMy8zAC9wYXN0ZWwxMy8zAC9wYWlyZWQxMi8zAC9zZXQzMTIvMwAvcmRneTExLzMAL3JkeWxidTExLzMAL3JkYnUxMS8zAC9wdW9yMTEvMwAvcHJnbjExLzMAL3JkeWxnbjExLzMAL3NwZWN0cmFsMTEvMwAvcGl5ZzExLzMAL2JyYmcxMS8zAC9wYWlyZWQxMS8zAC9zZXQzMTEvMwAvcmRneTEwLzMAL3JkeWxidTEwLzMAL3JkYnUxMC8zAC9wdW9yMTAvMwAvcHJnbjEwLzMAL3JkeWxnbjEwLzMAL3NwZWN0cmFsMTAvMwAvcGl5ZzEwLzMAL2JyYmcxMC8zAC9wYWlyZWQxMC8zAC9zZXQzMTAvMwBpdm9yeTIAZ3JleTIAZGFya3NsYXRlZ3JheTIAXHgyAHNub3cyAGxpZ2h0eWVsbG93MgBob25leWRldzIAUlRyZWVJbnNlcnQyAHdoZWF0MgBzdXAyAG5vcDIAdG9tYXRvMgByb3N5YnJvd24yAG1hcm9vbjIAbGlnaHRzYWxtb24yAGxlbW9uY2hpZmZvbjIAc3ByaW5nZ3JlZW4yAGRhcmtvbGl2ZWdyZWVuMgBwYWxlZ3JlZW4yAGRhcmtzZWFncmVlbjIAbGlnaHRjeWFuMgB0YW4yAHBsdW0yAHNlYXNoZWxsMgBjb3JhbDIAaG90cGluazIAbGlnaHRwaW5rMgBkZWVwcGluazIAY29ybnNpbGsyAGZpcmVicmljazIAa2hha2kyAGxhdmVuZGVyYmx1c2gyAHBlYWNocHVmZjIAYnJvbnplMgBiaXNxdWUyAGxpZ2h0c2t5Ymx1ZTIAZGVlcHNreWJsdWUyAGxpZ2h0Ymx1ZTIAY2FkZXRibHVlMgBkb2RnZXJibHVlMgBsaWdodHN0ZWVsYmx1ZTIAcm95YWxibHVlMgBzbGF0ZWJsdWUyAG5hdmFqb3doaXRlMgBhbnRpcXVld2hpdGUyAGNob2NvbGF0ZTIAY2hhcnRyZXVzZTIAbWlzdHlyb3NlMgBwYWxldHVycXVvaXNlMgBhenVyZTIAYXF1YW1hcmluZTIAdGhpc3RsZTIAbWVkaXVtcHVycGxlMgBkYXJrb3JhbmdlMgBsaWdodGdvbGRlbnJvZDIAZGFya2dvbGRlbnJvZDIAYnVybHl3b29kMgBnb2xkMgBtZWRpdW1vcmNoaWQyAGRhcmtvcmNoaWQyAHBhbGV2aW9sZXRyZWQyAGluZGlhbnJlZDIAb3JhbmdlcmVkMgBvbGl2ZWRyYWIyAG1hZ2VudGEyAHNpZW5uYTIAXHhGMgBceEUyAFx4RDIAXHhDMgBceEIyAFx4QTIAZ3JleTkyAGdyYXk5MgBceDkyAGdyZXk4MgBncmF5ODIAXHg4MgBncmV5NzIAZ3JheTcyAGdyZXk2MgBncmF5NjIAZ3JleTUyAGdyYXk1MgBncmV5NDIAZ3JheTQyAGdyZXkzMgBncmF5MzIAZ3JleTIyAGdyYXkyMgBncmV5MTIAZ3JheTEyAFx4MTIAZnJhYzEyAC9wYWlyZWQxMi8xMgAvc2V0MzEyLzEyAC9yZGd5OS8yAC9idXB1OS8yAC9yZHB1OS8yAC9wdWJ1OS8yAC95bGduYnU5LzIAL2duYnU5LzIAL3JkeWxidTkvMgAvcmRidTkvMgAvZ3JleXM5LzIAL2dyZWVuczkvMgAvYmx1ZXM5LzIAL3B1cnBsZXM5LzIAL29yYW5nZXM5LzIAL3JlZHM5LzIAL3B1b3I5LzIAL3lsb3JicjkvMgAvcHVidWduOS8yAC9idWduOS8yAC9wcmduOS8yAC9yZHlsZ245LzIAL3lsZ245LzIAL3NwZWN0cmFsOS8yAC9waXlnOS8yAC9icmJnOS8yAC9wdXJkOS8yAC95bG9ycmQ5LzIAL29ycmQ5LzIAL3BhaXJlZDkvMgAvc2V0MzkvMgAvc2V0MTkvMgAvcGFzdGVsMTkvMgAvcmRneTgvMgAvYnVwdTgvMgAvcmRwdTgvMgAvcHVidTgvMgAveWxnbmJ1OC8yAC9nbmJ1OC8yAC9yZHlsYnU4LzIAL3JkYnU4LzIAL2FjY2VudDgvMgAvZ3JleXM4LzIAL2dyZWVuczgvMgAvYmx1ZXM4LzIAL3B1cnBsZXM4LzIAL29yYW5nZXM4LzIAL3JlZHM4LzIAL3B1b3I4LzIAL3lsb3JicjgvMgAvcHVidWduOC8yAC9idWduOC8yAC9wcmduOC8yAC9yZHlsZ244LzIAL3lsZ244LzIAL3NwZWN0cmFsOC8yAC9waXlnOC8yAC9icmJnOC8yAC9wdXJkOC8yAC95bG9ycmQ4LzIAL29ycmQ4LzIAL3BhaXJlZDgvMgAvc2V0MzgvMgAvc2V0MjgvMgAvcGFzdGVsMjgvMgAvZGFyazI4LzIAL3NldDE4LzIAL3Bhc3RlbDE4LzIAL3JkZ3k3LzIAL2J1cHU3LzIAL3JkcHU3LzIAL3B1YnU3LzIAL3lsZ25idTcvMgAvZ25idTcvMgAvcmR5bGJ1Ny8yAC9yZGJ1Ny8yAC9hY2NlbnQ3LzIAL2dyZXlzNy8yAC9ncmVlbnM3LzIAL2JsdWVzNy8yAC9wdXJwbGVzNy8yAC9vcmFuZ2VzNy8yAC9yZWRzNy8yAC9wdW9yNy8yAC95bG9yYnI3LzIAL3B1YnVnbjcvMgAvYnVnbjcvMgAvcHJnbjcvMgAvcmR5bGduNy8yAC95bGduNy8yAC9zcGVjdHJhbDcvMgAvcGl5ZzcvMgAvYnJiZzcvMgAvcHVyZDcvMgAveWxvcnJkNy8yAC9vcnJkNy8yAC9wYWlyZWQ3LzIAL3NldDM3LzIAL3NldDI3LzIAL3Bhc3RlbDI3LzIAL2RhcmsyNy8yAC9zZXQxNy8yAC9wYXN0ZWwxNy8yAC9yZGd5Ni8yAC9idXB1Ni8yAC9yZHB1Ni8yAC9wdWJ1Ni8yAC95bGduYnU2LzIAL2duYnU2LzIAL3JkeWxidTYvMgAvcmRidTYvMgAvYWNjZW50Ni8yAC9ncmV5czYvMgAvZ3JlZW5zNi8yAC9ibHVlczYvMgAvcHVycGxlczYvMgAvb3JhbmdlczYvMgAvcmVkczYvMgAvcHVvcjYvMgAveWxvcmJyNi8yAC9wdWJ1Z242LzIAL2J1Z242LzIAL3ByZ242LzIAL3JkeWxnbjYvMgAveWxnbjYvMgAvc3BlY3RyYWw2LzIAL3BpeWc2LzIAL2JyYmc2LzIAL3B1cmQ2LzIAL3lsb3JyZDYvMgAvb3JyZDYvMgAvcGFpcmVkNi8yAC9zZXQzNi8yAC9zZXQyNi8yAC9wYXN0ZWwyNi8yAC9kYXJrMjYvMgAvc2V0MTYvMgAvcGFzdGVsMTYvMgAvcmRneTUvMgAvYnVwdTUvMgAvcmRwdTUvMgAvcHVidTUvMgAveWxnbmJ1NS8yAC9nbmJ1NS8yAC9yZHlsYnU1LzIAL3JkYnU1LzIAL2FjY2VudDUvMgAvZ3JleXM1LzIAL2dyZWVuczUvMgAvYmx1ZXM1LzIAL3B1cnBsZXM1LzIAL29yYW5nZXM1LzIAL3JlZHM1LzIAL3B1b3I1LzIAL3lsb3JicjUvMgAvcHVidWduNS8yAC9idWduNS8yAC9wcmduNS8yAC9yZHlsZ241LzIAL3lsZ241LzIAL3NwZWN0cmFsNS8yAC9waXlnNS8yAC9icmJnNS8yAC9wdXJkNS8yAC95bG9ycmQ1LzIAL29ycmQ1LzIAL3BhaXJlZDUvMgAvc2V0MzUvMgAvc2V0MjUvMgAvcGFzdGVsMjUvMgAvZGFyazI1LzIAL3NldDE1LzIAL3Bhc3RlbDE1LzIAL3JkZ3k0LzIAL2J1cHU0LzIAL3JkcHU0LzIAL3B1YnU0LzIAL3lsZ25idTQvMgAvZ25idTQvMgAvcmR5bGJ1NC8yAC9yZGJ1NC8yAC9hY2NlbnQ0LzIAL2dyZXlzNC8yAC9ncmVlbnM0LzIAL2JsdWVzNC8yAC9wdXJwbGVzNC8yAC9vcmFuZ2VzNC8yAC9yZWRzNC8yAC9wdW9yNC8yAC95bG9yYnI0LzIAL3B1YnVnbjQvMgAvYnVnbjQvMgAvcHJnbjQvMgAvcmR5bGduNC8yAC95bGduNC8yAC9zcGVjdHJhbDQvMgAvcGl5ZzQvMgAvYnJiZzQvMgAvcHVyZDQvMgAveWxvcnJkNC8yAC9vcnJkNC8yAC9wYWlyZWQ0LzIAL3NldDM0LzIAL3NldDI0LzIAL3Bhc3RlbDI0LzIAL2RhcmsyNC8yAC9zZXQxNC8yAC9wYXN0ZWwxNC8yAC9yZGd5My8yAC9idXB1My8yAC9yZHB1My8yAC9wdWJ1My8yAC95bGduYnUzLzIAL2duYnUzLzIAL3JkeWxidTMvMgAvcmRidTMvMgAvYWNjZW50My8yAC9ncmV5czMvMgAvZ3JlZW5zMy8yAC9ibHVlczMvMgAvcHVycGxlczMvMgAvb3JhbmdlczMvMgAvcmVkczMvMgAvcHVvcjMvMgAveWxvcmJyMy8yAC9wdWJ1Z24zLzIAL2J1Z24zLzIAL3ByZ24zLzIAL3JkeWxnbjMvMgAveWxnbjMvMgAvc3BlY3RyYWwzLzIAL3BpeWczLzIAL2JyYmczLzIAL3B1cmQzLzIAL3lsb3JyZDMvMgAvb3JyZDMvMgAvcGFpcmVkMy8yAC9zZXQzMy8yAC9zZXQyMy8yAC9wYXN0ZWwyMy8yAC9kYXJrMjMvMgAvc2V0MTMvMgAvcGFzdGVsMTMvMgAvcGFpcmVkMTIvMgAvc2V0MzEyLzIAL3JkZ3kxMS8yAC9yZHlsYnUxMS8yAC9yZGJ1MTEvMgAvcHVvcjExLzIAL3ByZ24xMS8yAC9yZHlsZ24xMS8yAC9zcGVjdHJhbDExLzIAL3BpeWcxMS8yAC9icmJnMTEvMgAvcGFpcmVkMTEvMgAvc2V0MzExLzIAL3JkZ3kxMC8yAC9yZHlsYnUxMC8yAC9yZGJ1MTAvMgAvcHVvcjEwLzIAL3ByZ24xMC8yAC9yZHlsZ24xMC8yAC9zcGVjdHJhbDEwLzIAL3BpeWcxMC8yAC9icmJnMTAvMgAvcGFpcmVkMTAvMgAvc2V0MzEwLzIAMTMuMS4yACAtZGFzaCAyAHN6ID49IDIAbGVuID49IDIAZXhwID09IDEgfHwgZXhwID09IDIAZGltID09IDIATkRfb3V0KHYpLnNpemUgPT0gMgBpdm9yeTEAZ3JleTEAZGFya3NsYXRlZ3JheTEAXHgxAHNub3cxAGxpZ2h0eWVsbG93MQBob25leWRldzEAbnNsaW1pdDEAd2hlYXQxAHN1cDEAbm9wMQB0b21hdG8xAHJvc3licm93bjEAbWFyb29uMQBsaWdodHNhbG1vbjEAbGVtb25jaGlmZm9uMQBsYXRpbjEAYWdvcGVuMQBzcHJpbmdncmVlbjEAZGFya29saXZlZ3JlZW4xAHBhbGVncmVlbjEAZGFya3NlYWdyZWVuMQBsaWdodGN5YW4xAHRhbjEAcGx1bTEAc2Vhc2hlbGwxAGNvcmFsMQBob3RwaW5rMQBsaWdodHBpbmsxAGRlZXBwaW5rMQBjb3Juc2lsazEAZmlyZWJyaWNrMQBqMCA8PSBpMSAmJiBpMSA8PSBqMQBraGFraTEAbGF2ZW5kZXJibHVzaDEAcGVhY2hwdWZmMQBiaXNxdWUxAGxpZ2h0c2t5Ymx1ZTEAZGVlcHNreWJsdWUxAGxpZ2h0Ymx1ZTEAY2FkZXRibHVlMQBkb2RnZXJibHVlMQBsaWdodHN0ZWVsYmx1ZTEAcm95YWxibHVlMQBzbGF0ZWJsdWUxAG5hdmFqb3doaXRlMQBhbnRpcXVld2hpdGUxAGNob2NvbGF0ZTEAY2hhcnRyZXVzZTEAbWlzdHlyb3NlMQBwYWxldHVycXVvaXNlMQBhenVyZTEAYXF1YW1hcmluZTEAdGhpc3RsZTEAbWVkaXVtcHVycGxlMQBkYXJrb3JhbmdlMQBhcmdfZTAgJiYgYXJnX2UxAGxpZ2h0Z29sZGVucm9kMQBkYXJrZ29sZGVucm9kMQBidXJseXdvb2QxAGdvbGQxAG1lZGl1bW9yY2hpZDEAZGFya29yY2hpZDEAcGFsZXZpb2xldHJlZDEAaW5kaWFucmVkMQBvcmFuZ2VyZWQxAG9saXZlZHJhYjEAbWFnZW50YTEAc2llbm5hMQBceEYxAFx4RTEAXHhEMQBceEMxAFx4QjEAXHhBMQBncmV5OTEAZ3JheTkxAFx4OTEAZ3JleTgxAGdyYXk4MQBceDgxAGdyZXk3MQBncmF5NzEAZ3JleTYxAGdyYXk2MQBncmV5NTEAZ3JheTUxAGdyZXk0MQBncmF5NDEAZ3JleTMxAGdyYXkzMQBncmV5MjEAZ3JheTIxAGdyZXkxMQBncmF5MTEAXHgxMQAvcGFpcmVkMTIvMTEAL3NldDMxMi8xMQAvcmRneTExLzExAC9yZHlsYnUxMS8xMQAvcmRidTExLzExAC9wdW9yMTEvMTEAL3ByZ24xMS8xMQAvcmR5bGduMTEvMTEAL3NwZWN0cmFsMTEvMTEAL3BpeWcxMS8xMQAvYnJiZzExLzExAC9wYWlyZWQxMS8xMQAvc2V0MzExLzExAGNzW2ldLT5zbGFjaygpPi0wLjAwMDAwMDEAL3JkZ3k5LzEAL2J1cHU5LzEAL3JkcHU5LzEAL3B1YnU5LzEAL3lsZ25idTkvMQAvZ25idTkvMQAvcmR5bGJ1OS8xAC9yZGJ1OS8xAC9ncmV5czkvMQAvZ3JlZW5zOS8xAC9ibHVlczkvMQAvcHVycGxlczkvMQAvb3JhbmdlczkvMQAvcmVkczkvMQAvcHVvcjkvMQAveWxvcmJyOS8xAC9wdWJ1Z245LzEAL2J1Z245LzEAL3ByZ245LzEAL3JkeWxnbjkvMQAveWxnbjkvMQAvc3BlY3RyYWw5LzEAL3BpeWc5LzEAL2JyYmc5LzEAL3B1cmQ5LzEAL3lsb3JyZDkvMQAvb3JyZDkvMQAvcGFpcmVkOS8xAC9zZXQzOS8xAC9zZXQxOS8xAC9wYXN0ZWwxOS8xAC9yZGd5OC8xAC9idXB1OC8xAC9yZHB1OC8xAC9wdWJ1OC8xAC95bGduYnU4LzEAL2duYnU4LzEAL3JkeWxidTgvMQAvcmRidTgvMQAvYWNjZW50OC8xAC9ncmV5czgvMQAvZ3JlZW5zOC8xAC9ibHVlczgvMQAvcHVycGxlczgvMQAvb3JhbmdlczgvMQAvcmVkczgvMQAvcHVvcjgvMQAveWxvcmJyOC8xAC9wdWJ1Z244LzEAL2J1Z244LzEAL3ByZ244LzEAL3JkeWxnbjgvMQAveWxnbjgvMQAvc3BlY3RyYWw4LzEAL3BpeWc4LzEAL2JyYmc4LzEAL3B1cmQ4LzEAL3lsb3JyZDgvMQAvb3JyZDgvMQAvcGFpcmVkOC8xAC9zZXQzOC8xAC9zZXQyOC8xAC9wYXN0ZWwyOC8xAC9kYXJrMjgvMQAvc2V0MTgvMQAvcGFzdGVsMTgvMQAvcmRneTcvMQAvYnVwdTcvMQAvcmRwdTcvMQAvcHVidTcvMQAveWxnbmJ1Ny8xAC9nbmJ1Ny8xAC9yZHlsYnU3LzEAL3JkYnU3LzEAL2FjY2VudDcvMQAvZ3JleXM3LzEAL2dyZWVuczcvMQAvYmx1ZXM3LzEAL3B1cnBsZXM3LzEAL29yYW5nZXM3LzEAL3JlZHM3LzEAL3B1b3I3LzEAL3lsb3JicjcvMQAvcHVidWduNy8xAC9idWduNy8xAC9wcmduNy8xAC9yZHlsZ243LzEAL3lsZ243LzEAL3NwZWN0cmFsNy8xAC9waXlnNy8xAC9icmJnNy8xAC9wdXJkNy8xAC95bG9ycmQ3LzEAL29ycmQ3LzEAL3BhaXJlZDcvMQAvc2V0MzcvMQAvc2V0MjcvMQAvcGFzdGVsMjcvMQAvZGFyazI3LzEAL3NldDE3LzEAL3Bhc3RlbDE3LzEAL3JkZ3k2LzEAL2J1cHU2LzEAL3JkcHU2LzEAL3B1YnU2LzEAL3lsZ25idTYvMQAvZ25idTYvMQAvcmR5bGJ1Ni8xAC9yZGJ1Ni8xAC9hY2NlbnQ2LzEAL2dyZXlzNi8xAC9ncmVlbnM2LzEAL2JsdWVzNi8xAC9wdXJwbGVzNi8xAC9vcmFuZ2VzNi8xAC9yZWRzNi8xAC9wdW9yNi8xAC95bG9yYnI2LzEAL3B1YnVnbjYvMQAvYnVnbjYvMQAvcHJnbjYvMQAvcmR5bGduNi8xAC95bGduNi8xAC9zcGVjdHJhbDYvMQAvcGl5ZzYvMQAvYnJiZzYvMQAvcHVyZDYvMQAveWxvcnJkNi8xAC9vcnJkNi8xAC9wYWlyZWQ2LzEAL3NldDM2LzEAL3NldDI2LzEAL3Bhc3RlbDI2LzEAL2RhcmsyNi8xAC9zZXQxNi8xAC9wYXN0ZWwxNi8xAC9yZGd5NS8xAC9idXB1NS8xAC9yZHB1NS8xAC9wdWJ1NS8xAC95bGduYnU1LzEAL2duYnU1LzEAL3JkeWxidTUvMQAvcmRidTUvMQAvYWNjZW50NS8xAC9ncmV5czUvMQAvZ3JlZW5zNS8xAC9ibHVlczUvMQAvcHVycGxlczUvMQAvb3JhbmdlczUvMQAvcmVkczUvMQAvcHVvcjUvMQAveWxvcmJyNS8xAC9wdWJ1Z241LzEAL2J1Z241LzEAL3ByZ241LzEAL3JkeWxnbjUvMQAveWxnbjUvMQAvc3BlY3RyYWw1LzEAL3BpeWc1LzEAL2JyYmc1LzEAL3B1cmQ1LzEAL3lsb3JyZDUvMQAvb3JyZDUvMQAvcGFpcmVkNS8xAC9zZXQzNS8xAC9zZXQyNS8xAC9wYXN0ZWwyNS8xAC9kYXJrMjUvMQAvc2V0MTUvMQAvcGFzdGVsMTUvMQAvcmRneTQvMQAvYnVwdTQvMQAvcmRwdTQvMQAvcHVidTQvMQAveWxnbmJ1NC8xAC9nbmJ1NC8xAC9yZHlsYnU0LzEAL3JkYnU0LzEAL2FjY2VudDQvMQAvZ3JleXM0LzEAL2dyZWVuczQvMQAvYmx1ZXM0LzEAL3B1cnBsZXM0LzEAL29yYW5nZXM0LzEAL3JlZHM0LzEAL3B1b3I0LzEAL3lsb3JicjQvMQAvcHVidWduNC8xAC9idWduNC8xAC9wcmduNC8xAC9yZHlsZ240LzEAL3lsZ240LzEAL3NwZWN0cmFsNC8xAC9waXlnNC8xAC9icmJnNC8xAC9wdXJkNC8xAC95bG9ycmQ0LzEAL29ycmQ0LzEAL3BhaXJlZDQvMQAvc2V0MzQvMQAvc2V0MjQvMQAvcGFzdGVsMjQvMQAvZGFyazI0LzEAL3NldDE0LzEAL3Bhc3RlbDE0LzEAL3JkZ3kzLzEAL2J1cHUzLzEAL3JkcHUzLzEAL3B1YnUzLzEAL3lsZ25idTMvMQAvZ25idTMvMQAvcmR5bGJ1My8xAC9yZGJ1My8xAC9hY2NlbnQzLzEAL2dyZXlzMy8xAC9ncmVlbnMzLzEAL2JsdWVzMy8xAC9wdXJwbGVzMy8xAC9vcmFuZ2VzMy8xAC9yZWRzMy8xAC9wdW9yMy8xAC95bG9yYnIzLzEAL3B1YnVnbjMvMQAvYnVnbjMvMQAvcHJnbjMvMQAvcmR5bGduMy8xAC95bGduMy8xAC9zcGVjdHJhbDMvMQAvcGl5ZzMvMQAvYnJiZzMvMQAvcHVyZDMvMQAveWxvcnJkMy8xAC9vcnJkMy8xAC9wYWlyZWQzLzEAL3NldDMzLzEAL3NldDIzLzEAL3Bhc3RlbDIzLzEAL2RhcmsyMy8xAC9zZXQxMy8xAC9wYXN0ZWwxMy8xAC9wYWlyZWQxMi8xAC9zZXQzMTIvMQAvcmRneTExLzEAL3JkeWxidTExLzEAL3JkYnUxMS8xAC9wdW9yMTEvMQAvcHJnbjExLzEAL3JkeWxnbjExLzEAL3NwZWN0cmFsMTEvMQAvcGl5ZzExLzEAL2JyYmcxMS8xAC9wYWlyZWQxMS8xAC9zZXQzMTEvMQAvcmRneTEwLzEAL3JkeWxidTEwLzEAL3JkYnUxMC8xAC9wdW9yMTAvMQAvcHJnbjEwLzEAL3JkeWxnbjEwLzEAL3NwZWN0cmFsMTAvMQAvcGl5ZzEwLzEAL2JyYmcxMC8xAC9wYWlyZWQxMC8xAC9zZXQzMTAvMQBsYXRpbi0xAElTT184ODU5LTEASVNPODg1OS0xAElTTy04ODU5LTEAaSA+PSAxAHEtPm4gPT0gMQBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0ucGFydGl0aW9uW2ldID09IDAgfHwgcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLnBhcnRpdGlvbltpXSA9PSAxAGJ6LnNpemUgJSAzID09IDEAZWRnZV9saXN0X3NpemUoJmN0eC0+VHJlZV9lZGdlKSA9PSBjdHgtPk5fbm9kZXMgLSAxAG5vZGVfc2V0X3NpemUoZy0+bl9pZCkgPT0gb3NpemUgKyAxAG4tPmNvdW50ICsgKCpubiktPmNvdW50ID09IE5PREVDQVJEICsgMQBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0uY291bnRbMF0gKyBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0uY291bnRbMV0gPT0gTk9ERUNBUkQgKyAxAGdyZXkwAGdyYXkwAGpzb24wACNmMGYwZjAAI2UwZTBlMAB4Yi0+dS5zLmxvY2F0ZWQgPiBBR1hCVUZfSU5MSU5FX1NJWkVfMABcMABUMABceEYwAFx4RTAAXHhEMABceEMwAFx4QjAAXHhBMABncmV5OTAAZ3JheTkwAFx4OTAAZ3JleTgwAGdyYXk4MABceDgwACM4MDgwODAAZ3JleTcwAGdyYXk3MABjY3dyb3QgPT0gMCB8fCBjY3dyb3QgPT0gOTAgfHwgY2N3cm90ID09IDE4MCB8fCBjY3dyb3QgPT0gMjcwAGN3cm90ID09IDAgfHwgY3dyb3QgPT0gOTAgfHwgY3dyb3QgPT0gMTgwIHx8IGN3cm90ID09IDI3MABncmV5NjAAZ3JheTYwAGdyZXk1MABncmF5NTAAZ3JleTQwAGdyYXk0MAByLndpZHRoKCk8MWU0MABncmV5MzAAZ3JheTMwACMzMDMwMzAAZ3JleTIwAGdyYXkyMAAyMDI1MDgwOC4yMzIwAGdyZXkxMABncmF5MTAAXHgxMAAjMTAxMDEwAC9wYWlyZWQxMi8xMAAvc2V0MzEyLzEwAC9yZGd5MTEvMTAAL3JkeWxidTExLzEwAC9yZGJ1MTEvMTAAL3B1b3IxMS8xMAAvcHJnbjExLzEwAC9yZHlsZ24xMS8xMAAvc3BlY3RyYWwxMS8xMAAvcGl5ZzExLzEwAC9icmJnMTEvMTAAL3BhaXJlZDExLzEwAC9zZXQzMTEvMTAAL3JkZ3kxMC8xMAAvcmR5bGJ1MTAvMTAAL3JkYnUxMC8xMAAvcHVvcjEwLzEwAC9wcmduMTAvMTAAL3JkeWxnbjEwLzEwAC9zcGVjdHJhbDEwLzEwAC9waXlnMTAvMTAAL2JyYmcxMC8xMAAvcGFpcmVkMTAvMTAAL3NldDMxMC8xMAAxMjAwAGdyZXkxMDAAZ3JheTEwMABJU08tSVItMTAwADEwMDAwACUhUFMtQWRvYmUtMy4wAG56ID4gMABsaXN0LT5jYXBhY2l0eSA+IDAAZGlzdCA+IDAAcGF0aGNvdW50ID4gMAB3Z3QgPiAwAG5zaXRlcyA+IDAAc2lkZXMgPiAwAHJ2ID09IDAgfHwgKE5EX29yZGVyKHJ2KS1ORF9vcmRlcih2KSkqZGlyID4gMABsZW4gPiAwAHF0MS0+biA+IDAgJiYgcXQyLT5uID4gMAB3aWR0aCA+IDAAbGlzdC0+c2l6ZSA+IDAAZGljdC0+c2l6ZSA+IDAAc3BsLT5zaXplID4gMABzZWxmLT5zaXplID4gMABiei5zaXplID4gMABib3VuZCA+IDAAZ3JhcGgtPndlaWdodHNbeF0gPiAwAGdyYXBoLT53ZWlnaHRzW25fZWRnZXNdID4gMABtID4gMCAmJiBuID4gMCAmJiBueiA+PSAwAHQgPj0gMABubm9kZXMgPj0gMABuX29icyA+PSAwAG4gPj0gMABuLT5sZXZlbCA+PSAwAHRvdGFsID49IDAAb3JpZ2luYWwgPj0gMABNYXhyYW5rID49IDAAUGFjayA+PSAwAGlpIDwgMTw8ZGltICYmIGlpID49IDAAd2lkdGggPj0gMABqZGlhZyA+PSAwAGlkaWFnID49IDAAZCA+PSAwAHJ0cC0+c3BsaXQuUGFydGl0aW9uc1swXS5jb3VudFswXSA+PSAwICYmIHJ0cC0+c3BsaXQuUGFydGl0aW9uc1swXS5jb3VudFsxXSA+PSAwAFYgPj0gMABhZ25ub2RlcyhncmFwaCkgPj0gMABhZ25ub2RlcyhnKSA+PSAwAEVEX3RyZWVfaW5kZXgoZSkgPj0gMABFRF9jb3VudChlKSA+PSAwAG9ianAxLT5zei54ID09IDAgJiYgb2JqcDEtPnN6LnkgPT0gMABjX2NudCA9PSAwAHJhbmtfcmVzdWx0ID09IDAAZ2V0dGltZW9mZGF5X3JlcyA9PSAwAGogPT0gMABORF9pbihyaWdodCkuc2l6ZSArIE5EX291dChyaWdodCkuc2l6ZSA9PSAwAGEuc2hhcGUgPT0gMCB8fCBiLnNoYXBlID09IDAAZHRzaXplKGRlc3QpID09IDAAZHRzaXplKGctPm5fc2VxKSA9PSAwAGR0c2l6ZShnLT5nX3NlcSkgPT0gMABkdHNpemUoZy0+ZV9zZXEpID09IDAAR0RfbWlucmFuayhnKSA9PSAwAGR0c2l6ZShnLT5nX2lkKSA9PSAwAGR0c2l6ZShnLT5lX2lkKSA9PSAwAGNvc3ggIT0gMCB8fCBzaW54ICE9IDAAbWVtY21wKCZzdHlsZSwgJihncmFwaHZpel9wb2x5Z29uX3N0eWxlX3QpezB9LCBzaXplb2Yoc3R5bGUpKSAhPSAwAHJlc3VsdCA9PSAoaW50KShzaXplIC0gMSkgfHwgcmVzdWx0IDwgMABtYXNrW2lpXSA8IDAATkRfaGVhcGluZGV4KHYpIDwgMABcLwBYMTEvAGd2UmVuZGVySm9icyAlczogJS4yZiBzZWNzLgAlLipzLgBzcGVjaWZpZWQgcm9vdCBub2RlICIlcyIgd2FzIG5vdCBmb3VuZC4AR3JhcGggJXMgaGFzIGFycmF5IHBhY2tpbmcgd2l0aCB1c2VyIHZhbHVlcyBidXQgbm8gInNvcnR2IiBhdHRyaWJ1dGVzIGFyZSBkZWZpbmVkLgAxLgAtMC4AJSFQUy1BZG9iZS0AJVBERi0APCEtLQAgLAArACoAc3RyZXEoYXB0ci0+dS5uYW1lLEtleSkAIWlzX2V4YWN0bHlfZXF1YWwoUi54LCBRLngpIHx8ICFpc19leGFjdGx5X2VxdWFsKFIueSwgUS55KQBORF9vcmRlcih2KSA8IE5EX29yZGVyKHcpAHUgPT0gVUZfZmluZCh1KQAhcG9pbnRzX2lzX2VtcHR5KHBsaXN0KQAhb2JqbGlzdF9pc19lbXB0eShsaXN0KQAhc2ZvbnRfaXNfZW1wdHkobGlzdCkAIXJvd3NfaXNfZW1wdHkobGlzdCkAIXRzdHNfaXNfZW1wdHkobGlzdCkAIXBvaW50c19pc19lbXB0eShsaXN0KQAhY29sb3JzZWdzX2lzX2VtcHR5KGxpc3QpACFkZnNfc3RhY2tfaXNfZW1wdHkobGlzdCkAIXBic19zaXplX2lzX2VtcHR5KGxpc3QpAG9iamxpc3RfaXNfY29udGlndW91cyhsaXN0KQBkZWdsaXN0X2lzX2NvbnRpZ3VvdXMobGlzdCkAbm9kZWxpc3RfaXNfY29udGlndW91cyhsaXN0KQBjbGlzdF9pc19jb250aWd1b3VzKGxpc3QpAG5vZGVfbGlzdF9pc19jb250aWd1b3VzKGxpc3QpAGVkZ2Vfc2V0X2lzX2NvbnRpZ3VvdXMobGlzdCkAcG9pbnRzX2lzX2NvbnRpZ3VvdXMobGlzdCkAc3Ryc19pc19jb250aWd1b3VzKGxpc3QpAEFncmFwaHNfaXNfY29udGlndW91cyhsaXN0KQBib3hlc19pc19jb250aWd1b3VzKGxpc3QpAGxheWVyX25hbWVzX2lzX2NvbnRpZ3VvdXMobGlzdCkAc25vZGVzX2lzX2NvbnRpZ3VvdXMobGlzdCkAdmFyYXJyX2lzX2NvbnRpZ3VvdXMobGlzdCkAYmV6aWVyX3BhdGhfaXNfY29udGlndW91cyhsaXN0KQBwYnNfc2l6ZV9pc19jb250aWd1b3VzKGxpc3QpAG9uZSA8PSBub2RlbGlzdF9zaXplKGxpc3QpAG5wIDwgbm9kZWxpc3Rfc2l6ZShsaXN0KQBzdGQ6OmlzX2hlYXAoaGVhcC5iZWdpbigpLCBoZWFwLmVuZCgpLCBndCkAIShxLT5xdHMpACFpbnRzX2lzX2VtcHR5KCZsZWF2ZXMpAG9uX2hlYXAocikAbm9kZV9zZXRfc2l6ZShnLT5uX2lkKSA9PSAoc2l6ZV90KWR0c2l6ZShnLT5uX3NlcSkATkRfcmFuayhmcm9tKSA8IE5EX3JhbmsodG8pAG5vdCB3ZWxsLWZvcm1lZCAoaW52YWxpZCB0b2tlbikAYWdzdWJyZXAoZyxuKQBuICE9IE5EX25leHQobikAZmluZF9mYXN0X25vZGUoZywgbikAKG51bGwpACghamNuKSAmJiAoIXZhbCkAIShxLT5sKQBzeW0tPmlkID49IDAgJiYgc3ltLT5pZCA8IHRvcGRpY3RzaXplKG9iaikAbW92ZSB0byAoJS4wZiwgJS4wZikAOyBzcGxpbmUgdG8gKCUuMGYsICUuMGYpADsgbGluZSB0byAoJS4wZiwgJS4wZikAU3BhcnNlTWF0cml4X2lzX3N5bW1ldHJpYyhBLCB0cnVlKQB2YWx1ZSAmJiBzdHJsZW4odmFsdWUpAFNwYXJzZU1hdHJpeF9pc19zeW1tZXRyaWMoQSwgZmFsc2UpACF1c2Vfc3RhZ2UgfHwgc2l6ZSA8PSBzaXplb2Yoc3RhZ2UpAEVEX2xhYmVsKGZlKQAhVFJFRV9FREdFKGUpACFjb25zdHJhaW5pbmdfZmxhdF9lZGdlKGcsIGUpAG5vZGVfc2V0X2lzX2VtcHR5KGctPm5faWQpAHJfJWQpAGxfJWQpAChsaWIpACFTcGFyc2VNYXRyaXhfaGFzX2RpYWdvbmFsKEEpACBzY2FubmluZyBhIEhUTUwgc3RyaW5nIChtaXNzaW5nICc+Jz8gYmFkIG5lc3Rpbmc/IGxvbmdlciB0aGFuICVkPykAIHNjYW5uaW5nIGEgcXVvdGVkIHN0cmluZyAobWlzc2luZyBlbmRxdW90ZT8gbG9uZ2VyIHRoYW4gJWQ/KQAgc2Nhbm5pbmcgYSAvKi4uLiovIGNvbW1lbnQgKG1pc3NpbmcgJyovPyBsb25nZXIgdGhhbiAlZD8pAGZhbGxiYWNrKDQpAG9uX2hlYXAocjApIHx8IG9uX2hlYXAocjEpAGFndGFpbChlKSA9PSBVRl9maW5kKGFndGFpbChlKSkAYWdoZWFkKGUpID09IFVGX2ZpbmQoYWdoZWFkKGUpKQBvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXlfZ2V0X25leHRfYnVmZmVyKCkAb3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X2NyZWF0ZV9idWZmZXIoKQBvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXllbnN1cmVfYnVmZmVyX3N0YWNrKCkAc3RyZXEobW9kZSwgInIiKSB8fCBzdHJlcShtb2RlLCAicmIiKSB8fCBzdHJlcShtb2RlLCAidyIpIHx8IHN0cmVxKG1vZGUsICJ3YiIpAHBuYW1lICE9IE5VTEwgJiYgIXN0cmVxKHBuYW1lLCAiIikAc2V0bGluZXdpZHRoKAApIHJvdGF0ZSglZCkgdHJhbnNsYXRlKAAgdHJhbnNmb3JtPSJzY2FsZSgATk9UQVRJT04oACAoACBuZWFyICclcycAJWxmLCVsZiwlbGYsJyVbXiddJwBpc2RpZ2l0KChpbnQpZG90cFsxXSkgJiYgaXNkaWdpdCgoaW50KWRvdHBbMl0pICYmIGRvdHBbM10gPT0gJ1wwJwAmACUAJAB1cmwoIwA8dGV4dFBhdGggeGxpbms6aHJlZj0iIwA8YXJlYSBzaGFwZT0icG9seSIAIGZpbGw9IiMlMDJ4JTAyeCUwMngiAChzZXEgJiBTRVFfTUFTSykgPT0gc2VxICYmICJzZXF1ZW5jZSBJRCBvdmVyZmxvdyIAZ3Zfc29ydF9jb21wYXIgPT0gTlVMTCAmJiBndl9zb3J0X2FyZyA9PSBOVUxMICYmICJ1bnN1cHBvcnRlZCByZWN1cnNpdmUgY2FsbCB0byBndl9zb3J0IgBndl9zb3J0X2NvbXBhciAhPSBOVUxMICYmICJubyBjb21wYXJhdG9yIHNldCBpbiBndl9zb3J0IgBvcC0+b3AudS5wb2x5Z29uLmNudCA8PSBJTlRfTUFYICYmICJwb2x5Z29uIGNvdW50IGV4Y2VlZHMgZ3ZyZW5kZXJfcG9seWdvbiBzdXBwb3J0IgAgdGV4dC1hbmNob3I9InN0YXJ0IgBwLnggIT0gYSAmJiAiY2Fubm90IGhhbmRsZSBlbGxpcHNlIHRhbmdlbnQgc2xvcGUgaW4gaG9yaXpvbnRhbCBleHRyZW1lIHBvaW50IgBmdWxsX2xlbmd0aF93aXRob3V0X3NoYWZ0ID4gMCAmJiAibm9uLXBvc2l0aXZlIGZ1bGwgbGVuZ3RoIHdpdGhvdXQgc2hhZnQiADxhcmVhIHNoYXBlPSJyZWN0IgBzaXplID4gMCAmJiAiYXR0ZW1wdCB0byBhbGxvY2F0ZSBhcnJheSBvZiAwLXNpemVkIGVsZW1lbnRzIgBpbmRleCA8IHNlbGYtPnNpemVfYml0cyAmJiAib3V0IG9mIGJvdW5kcyBhY2Nlc3MiAGluZGV4IDwgc2VsZi5zaXplX2JpdHMgJiYgIm91dCBvZiBib3VuZHMgYWNjZXNzIgAqczEgIT0gKnMyICYmICJkdXBsaWNhdGUgc2VwYXJhdG9yIGNoYXJhY3RlcnMiAEdEX21pbnJhbmsoc3ViZykgPD0gR0RfbWF4cmFuayhzdWJnKSAmJiAiY29ycnVwdGVkIHJhbmsgYm91bmRzIgBpbmRleCA8IGxpc3QtPnNpemUgJiYgImluZGV4IG91dCBvZiBib3VuZHMiAGluZGV4IDwgbm9kZWxpc3Rfc2l6ZShsaXN0KSAmJiAiaW5kZXggb3V0IG9mIGJvdW5kcyIAaW5kZXggPCBlZGdlX2xpc3Rfc2l6ZShsaXN0KSAmJiAiaW5kZXggb3V0IG9mIGJvdW5kcyIAaW5kZXggPCB0cmFwc19zaXplKGxpc3QpICYmICJpbmRleCBvdXQgb2YgYm91bmRzIgBpbmRleCA8IG5vZGVzX3NpemUobGlzdCkgJiYgImluZGV4IG91dCBvZiBib3VuZHMiACh1aW50cHRyX3QpcyAlIDIgPT0gMCAmJiAiaGVhcCBwb2ludGVyIHdpdGggbG93IGJpdCBzZXQgd2lsbCBjb2xsaWRlIHdpdGggYW5vbnltb3VzIElEcyIAICgrJTZsZCBieXRlcyAlc3wldSwgeG1scGFyc2UuYzolZCkgJSpzIgAgZm9udC1mYW1pbHk9IiVzIgAgZm9udC13ZWlnaHQ9IiVzIgAgZmlsbD0iJXMiACBmb250LXN0cmV0Y2g9IiVzIgAgZm9udC1zdHlsZT0iJXMiAGJhZCBlZGdlIGxlbiAiJXMiACBiYXNlbGluZS1zaGlmdD0ic3VwZXIiAGFneGJsZW4oeGIpIDw9IHNpemVvZih4Yi0+dS5zdG9yZSkgJiYgImFneGJ1ZiBjb3JydXB0aW9uIgBjZWxsLnJvdyA8IHRhYmxlLT5yb3dfY291bnQgJiYgIm91dCBvZiByYW5nZSBjZWxsIgBjZWxsLmNvbCA8IHRhYmxlLT5jb2x1bW5fY291bnQgJiYgIm91dCBvZiByYW5nZSBjZWxsIgAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIAZnVsbF9sZW5ndGggPiAwICYmICJub24tcG9zaXRpdmUgZnVsbCBsZW5ndGgiAGZ1bGxfYmFzZV93aWR0aCA+IDAgJiYgIm5vbi1wb3NpdGl2ZSBmdWxsIGJhc2Ugd2lkdGgiAG5vbWluYWxfYmFzZV93aWR0aCA+IDAgJiYgIm5vbi1wb3NpdGl2ZSBub21pbmFsIGJhc2Ugd2lkdGgiACIgd2lkdGg9IiVncHgiIGhlaWdodD0iJWdweCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4gbWVldCIgeD0iJWciIHk9IiVnIgAiIHdpZHRoPSIlZ3B4IiBoZWlnaHQ9IiVncHgiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiIHg9IiVnIiB5PSIlZyIAIGZvbnQtc2l6ZT0iJS4yZiIAIGZpbGwtb3BhY2l0eT0iJWYiADx0ZXh0IHhtbDpzcGFjZT0icHJlc2VydmUiAGlzZmluaXRlKG0pICYmICJlbGxpcHNlIHRhbmdlbnQgc2xvcGUgaXMgaW5maW5pdGUiACh4Yi0+dS5zLmxvY2F0ZWQgPT0gQUdYQlVGX09OX0hFQVAgfHwgeGItPnUucy5sb2NhdGVkIDw9IHNpemVvZih4Yi0+dS5zdG9yZSkpICYmICJjb3JydXB0ZWQgYWd4YnVmIHR5cGUiACB0ZXh0LWFuY2hvcj0ibWlkZGxlIgA8YXJlYSBzaGFwZT0iY2lyY2xlIgBjZWxsLT5yb3cgKyBjZWxsLT5yb3dzcGFuIDw9IHRhYmxlLT5yb3dfY291bnQgJiYgImNlbGwgc3BhbnMgaGlnaGVyIHRoYW4gY29udGFpbmluZyB0YWJsZSIAY2VsbC5yb3cgKyBjZWxsLnJvd3NwYW4gPD0gdGFibGUtPnJvd19jb3VudCAmJiAiY2VsbCBzcGFucyBoaWdoZXIgdGhhbiBjb250YWluaW5nIHRhYmxlIgBjZWxsLT5jb2wgKyBjZWxsLT5jb2xzcGFuIDw9IHRhYmxlLT5jb2x1bW5fY291bnQgJiYgImNlbGwgc3BhbnMgd2lkZXIgdGhhbiBjb250YWluaW5nIHRhYmxlIgBjZWxsLmNvbCArIGNlbGwuY29sc3BhbiA8PSB0YWJsZS0+Y29sdW1uX2NvdW50ICYmICJjZWxsIHNwYW5zIHdpZGVyIHRoYW4gY29udGFpbmluZyB0YWJsZSIAb2xkX25tZW1iIDwgU0laRV9NQVggLyBzaXplICYmICJjbGFpbWVkIHByZXZpb3VzIGV4dGVudCBpcyB0b28gbGFyZ2UiAHRoZXRhID49IDAgJiYgdGhldGEgPD0gTV9QSSAmJiAidGhldGEgb3V0IG9mIHJhbmdlIgB0YWJsZS0+aGVpZ2h0cyA9PSBOVUxMICYmICJ0YWJsZSBoZWlnaHRzIGNvbXB1dGVkIHR3aWNlIgB0YWJsZS0+d2lkdGhzID09IE5VTEwgJiYgInRhYmxlIHdpZHRocyBjb21wdXRlZCB0d2ljZSIAIHRleHQtYW5jaG9yPSJlbmQiACBmb250LXdlaWdodD0iYm9sZCIAIGZvbnQtc3R5bGU9Iml0YWxpYyIAIGJhc2VsaW5lLXNoaWZ0PSJzdWIiAFwiAGxsZW4gPD0gSU5UX01BWCAmJiAiWE1MIHRva2VuIHRvbyBsb25nIGZvciBleHBhdCBBUEkiACIgcnk9IgBfcCIgc3RhcnRPZmZzZXQ9IjUwJSI+PHRzcGFuIHg9IjAiIGR5PSIAIiBjeT0iACIgeT0iACIgcng9IgAgY3g9IgAgeD0iACB0YXJnZXQ9IgAgcG9pbnRzPSIAIGNvb3Jkcz0iACB0ZXh0LWRlY29yYXRpb249IgAgZmlsbD0iACIgc3Ryb2tlLXdpZHRoPSIAPGltYWdlIHhsaW5rOmhyZWY9IgA8P3htbC1zdHlsZXNoZWV0IGhyZWY9IgAiIG5hbWU9IgAgeGxpbms6dGl0bGU9IgAgdGl0bGU9IgAiIHN0cm9rZT0iADxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9IgA8ZGVmcz4KPHJhZGlh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CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2NhbGUgPDEuMDAsIDEuMDAsIDEuNTA+ICogMi41MAogICAgICAgICAgICB0cmFuc2xhdGUgPDAuMDAsIDAuMDAsIDAuMDA+CiAgICAgICAgfQogICAgICAgIGZpbmlzaCB7IGFtYmllbnQgMSBkaWZmdXNlIDAgfQogICAgfQogICAgc2NhbGUgMTAwMDAKfQovL21pc3QKZm9nIHsgZm9nX3R5cGUgMgogICAgZGlzdGFuY2UgNTAKICAgIGNvbG9yIHJnYiA8MS4wMCwgMS4wMCwgMS4wMD4gKiAwLjc1CiAgICBmb2dfb2Zmc2V0IDAuMTAKICAgIGZvZ19hbHQgMS41MAogICAgdHVyYnVsZW5jZSAxLjc1Cn0KLy9nbmQKcGxhbmUgeyA8MC4wMCwgMS4wMCwgMC4wMD4sIDAKICAgIHRleHR1cmUgewogICAgICAgIHBpZ21lbnR7IGNvbG9yIHJnYiA8MC4yNSwgMC40NSwgMC4wMD4gfQogICAgICAgIG5vcm1hbCB7IGJ1bXBzIDAuNzUgc2NhbGUgMC4wMSB9CiAgICAgICAgZmluaXNoIHsgcGhvbmcgMC4xMCB9CiAgICB9Cn0KAGNhbWVyYSB7IGxvY2F0aW9uIDwlLjNmICwgJS4zZiAsIC01MDAuMDAwPgogICAgICAgICBsb29rX2F0ICA8JS4zZiAsICUuM2YgLCAwLjAwMD4KICAgICAgICAgcmlnaHQgeCAqIGltYWdlX3dpZHRoIC8gaW1hZ2VfaGVpZ2h0CiAgICAgICAgIGFuZ2xlICUuM2YKfQoAICAgIG1hdGVyaWFsIE1hdGVyaWFsIHsKAFNoYXBlIHsKACAgYXBwZWFyYW5jZSBBcHBlYXJhbmNlIHsKAC91c2VyX3NoYXBlXyVkIHsKAGdyYXBoIEcgewoAYXJyb3doZWFkID0gNyAlcyBub3QgdXNlZCBieSBncmFwaHZpegoAYm94cmFkID0gMCAlcyBubyByb3VuZGVkIGNvcm5lcnMgaW4gZ3JhcGh2aXoKAG91dCBvZiBtZW1vcnkKACVzOiBjb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5CgBHcmFwaHZpeiBidWlsdCB3aXRob3V0IGFueSB0cmlhbmd1bGF0aW9uIGxpYnJhcnkKAHJlbW92ZV9vdmVybGFwOiBHcmFwaHZpeiBub3QgYnVpbHQgd2l0aCB0cmlhbmd1bGF0aW9uIGxpYnJhcnkKACVzIGZpbGwgaGFzIG5vIG1lYW5pbmcgaW4gRFdCIDIsIGdwaWMgY2FuIHVzZSBmaWxsIG9yIGZpbGxlZCwgMTB0aCBFZGl0aW9uIHVzZXMgZmlsbCBvbmx5CgBib3hyYWQ9Mi4wICVzIHdpbGwgYmUgcmVzZXQgdG8gMC4wIGJ5IGdwaWMgb25seQoAJWQgJWQgIyUwMnglMDJ4JTAyeAoASGVhcCBvdmVyZmxvdwoAdGV4dCB7CiAgICB0dGYgIiVzIiwKICAgICIlcyIsICUuM2YsICUuM2YKICAgICAgICBub19zaGFkb3cKACVkICVkICVkICUuMGYgJWQgJWQgJWQgJWQgJWQgJS4xZiAlZCAlZCAlZCAlZCAlZCAlenUKAHRvdGFsIGFkZGVkIHNvIGZhciA9ICV6dQoAcm9vdCA9ICVzIG1heCBzdGVwcyB0byByb290ID0gJWxsdQoALnBzICUuMGYqXG4oU0Z1LyUuMGZ1CgAgIG1hcmdpbiAldQoATnVtYmVyIG9mIGl0ZXJhdGlvbnMgPSAldQoAb3ZlcmxhcCBbJXVdIDogJXUKACAlcyBhbGlnbmVkdGV4dAoAbGF5ZXJzIG5vdCBzdXBwb3J0ZWQgaW4gJXMgb3V0cHV0CgBhZGRfdHJlZV9lZGdlOiBlbXB0eSBvdXRlZGdlIGxpc3QKAGFkZF90cmVlX2VkZ2U6IGVtcHR5IGluZWRnZSBsaXN0CgBObyBsaWJ6IHN1cHBvcnQKACVzIC5QUyB3L28gYXJncyBjYXVzZXMgR05VIHBpYyB0byBzY2FsZSBkcmF3aW5nIHRvIGZpdCA4LjV4MTEgcGFwZXI7IERXQiBkb2VzIG5vdAoAJXMgR05VIHBpYyBzdXBwb3J0cyBhIGxpbmV0aGljayB2YXJpYWJsZSB0byBzZXQgbGluZSB0aGlja25lc3M7IERXQiBhbmQgMTB0aCBFZC4gZG8gbm90CgAlcyBHTlUgcGljIHN1cHBvcnRzIGEgYm94cmFkIHZhcmlhYmxlIHRvIGRyYXcgYm94ZXMgd2l0aCByb3VuZGVkIGNvcm5lcnM7IERXQiBhbmQgMTB0aCBFZC4gZG8gbm90CgAgLyVzIHNldF9mb250CgAlcyUuKnMgaXMgbm90IGEgdHJvZmYgZm9udAoAY2VsbCBzaXplIHRvbyBzbWFsbCBmb3IgY29udGVudAoAdGFibGUgc2l6ZSB0b28gc21hbGwgZm9yIGNvbnRlbnQKACUlRW5kRG9jdW1lbnQKAFVuY2xvc2VkIGNvbW1lbnQKAExhYmVsIGNsb3NlZCBiZWZvcmUgZW5kIG9mIEhUTUwgZWxlbWVudAoAUG9ydHJhaXQKAGZpeGVkIGNlbGwgc2l6ZSB3aXRoIHVuc3BlY2lmaWVkIHdpZHRoIG9yIGhlaWdodAoAZml4ZWQgdGFibGUgc2l6ZSB3aXRoIHVuc3BlY2lmaWVkIHdpZHRoIG9yIGhlaWdodAoAcG9zIGF0dHJpYnV0ZSBmb3IgZWRnZSAoJXMsJXMpIGRvZXNuJ3QgaGF2ZSAzbisxIHBvaW50cwoAICBnZW5lcmF0ZWQgJWQgY29uc3RyYWludHMKAHNwbGluZXMgYW5kIGNsdXN0ZXIgZWRnZXMgbm90IHN1cHBvcnRlZCAtIHVzaW5nIGxpbmUgc2VnbWVudHMKAG9iamVjdHMKAFdhcm5pbmc6IG5vZGUgJXMsIHBvc2l0aW9uICVzLCBleHBlY3RlZCB0d28gZmxvYXRzCgBmb250IG5hbWUgJXMgY29udGFpbnMgY2hhcmFjdGVycyB0aGF0IG1heSBub3QgYmUgYWNjZXB0ZWQgYnkgc29tZSBQUyB2aWV3ZXJzCgBmb250IG5hbWUgJXMgaXMgbG9uZ2VyIHRoYW4gMjkgY2hhcmFjdGVycyB3aGljaCBtYXkgYmUgcmVqZWN0ZWQgYnkgc29tZSBQUyB2aWV3ZXJzCgBjYW5ub3QgYWxsb2NhdGUgcHMKAHNjYWxlPTEuMCAlcyByZXF1aXJlZCBmb3IgY29tcGFyaXNvbnMKAFNldHRpbmcgaW5pdGlhbCBwb3NpdGlvbnMKACVzIERXQiAyIGNvbXBhdGliaWxpdHkgZGVmaW5pdGlvbnMKAGFycmF5IHBhY2tpbmc6ICVzICV6dSByb3dzICV6dSBjb2x1bW5zCgBzeW50YXggYW1iaWd1aXR5IC0gYmFkbHkgZGVsaW1pdGVkIG51bWJlciAnJXMnIGluIGxpbmUgJWQgb2YgJXMgc3BsaXRzIGludG8gdHdvIHRva2VucwoAZWRnZSBsYWJlbHMgd2l0aCBzcGxpbmVzPWN1cnZlZCBub3Qgc3VwcG9ydGVkIGluIGRvdCAtIHVzZSB4bGFiZWxzCgBmbGF0IGVkZ2UgYmV0d2VlbiBhZGphY2VudCBub2RlcyBvbmUgb2Ygd2hpY2ggaGFzIGEgcmVjb3JkIHNoYXBlIC0gcmVwbGFjZSByZWNvcmRzIHdpdGggSFRNTC1saWtlIGxhYmVscwoAb3V0IG9mIG1lbW9yeSB3aGVuIHRyeWluZyB0byBhbGxvY2F0ZSAlenUgYnl0ZXMKAGludGVnZXIgb3ZlcmZsb3cgd2hlbiB0cnlpbmcgdG8gYWxsb2NhdGUgJXp1ICogJXp1IGJ5dGVzCgB1cGRhdGU6IG1pc21hdGNoZWQgbGNhIGluIHRyZWV1cGRhdGVzCgBncmFwaCAlcywgY29vcmQgJXMsIGV4cGVjdGVkIGZvdXIgZG91YmxlcwoAbm9kZSAlcywgcG9zaXRpb24gJXMsIGV4cGVjdGVkIHR3byBkb3VibGVzCgBGb3VuZCAlZCBEaUctQ29MYSBib3VuZGFyaWVzCgBJbmNoZXMKACglNHp1KSAlN3p1IG5vZGVzICU3enUgZWRnZXMKAGNvbXBvdW5kRWRnZXM6IGNvdWxkIG5vdCBjb25zdHJ1Y3Qgb2JzdGFjbGVzIC0gZmFsbGluZyBiYWNrIHRvIHN0cmFpZ2h0IGxpbmUgZWRnZXMKAHRoZSBib3VuZGluZyBib3hlcyBvZiBzb21lIG5vZGVzIHRvdWNoIC0gZmFsbGluZyBiYWNrIHRvIHN0cmFpZ2h0IGxpbmUgZWRnZXMKAGNvbXBvdW5kRWRnZXM6IG5vZGVzIHRvdWNoIC0gZmFsbGluZyBiYWNrIHRvIHN0cmFpZ2h0IGxpbmUgZWRnZXMKAHNvbWUgbm9kZXMgd2l0aCBtYXJnaW4gKCUuMDJmLCUuMDJmKSB0b3VjaCAtIGZhbGxpbmcgYmFjayB0byBzdHJhaWdodCBsaW5lIGVkZ2VzCgBtZXJnZTI6IGdyYXBoICVzLCByYW5rICVkIGhhcyBvbmx5ICVkIDwgJWQgbm9kZXMKAFNjYW5uaW5nIGdyYXBoICVzLCAlZCBub2RlcwoAV2FybmluZzogbm8gaGFyZC1jb2RlZCBtZXRyaWNzIGZvciAnJXMnLiAgRmFsbGluZyBiYWNrIHRvICdUaW1lcycgbWV0cmljcwoAaW4gZWRnZSAlcyVzJXMKAFVzaW5nICVzOiAlczolcwoARm9ybWF0OiAiJXMiIG5vdCByZWNvZ25pemVkLiBVc2Ugb25lIG9mOiVzCgBMYXlvdXQgdHlwZTogIiVzIiBub3QgcmVjb2duaXplZC4gVXNlIG9uZSBvZjolcwoAbGF5b3V0ICVzCgAuZnQgJXMKAGJhZCBsYWJlbCBmb3JtYXQgJXMKAGluIHJvdXRlc3BsaW5lcywgZWRnZSBpcyBhIGxvb3AgYXQgJXMKACAgICAgICAlN2Qgbm9kZXMgJTdkIGVkZ2VzICU3enUgY29tcG9uZW50cyAlcwoAaW4gbGFiZWwgb2YgZWRnZSAlcyAlcyAlcwoAICBFZGdlICVzICVzICVzCgBvcnRobyAlcyAlcwoAcG9seWxpbmUgJXMgJXMKAHNwbGluZSAlcyAlcwoAcmVjdGFuZ2xlICglLjBmLCUuMGYpICglLjBmLCUuMGYpICVzICVzCgBpbiBjbHVzdGVyICVzCgAlcyB3YXMgYWxyZWFkeSBpbiBhIHJhbmtzZXQsIGRlbGV0ZWQgZnJvbSBjbHVzdGVyICVzCgAlcyAtPiAlczogdGFpbCBub3QgaW5zaWRlIHRhaWwgY2x1c3RlciAlcwoAJXMgLT4gJXM6IGhlYWQgaXMgaW5zaWRlIHRhaWwgY2x1c3RlciAlcwoAaGVhZCBjbHVzdGVyICVzIGluc2lkZSB0YWlsIGNsdXN0ZXIgJXMKAGhlYWQgbm9kZSAlcyBpbnNpZGUgdGFpbCBjbHVzdGVyICVzCgAlcyAtPiAlczogaGVhZCBub3QgaW5zaWRlIGhlYWQgY2x1c3RlciAlcwoAJXMgLT4gJXM6IHRhaWwgaXMgaW5zaWRlIGhlYWQgY2x1c3RlciAlcwoAdGFpbCBjbHVzdGVyICVzIGluc2lkZSBoZWFkIGNsdXN0ZXIgJXMKAHRhaWwgbm9kZSAlcyBpbnNpZGUgaGVhZCBjbHVzdGVyICVzCgBVbmhhbmRsZWQgYWRqdXN0IG9wdGlvbiAlcwoAcmVwb3NpdGlvbiAlcwoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCB4bGFiZWwgJXMKAG5vIHBvc2l0aW9uIGZvciBlZGdlIHdpdGggdGFpbCBsYWJlbCAlcwoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCBsYWJlbCAlcwoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCBoZWFkIGxhYmVsICVzCgAvLyoqKiBiZWdpbl9ncmFwaCAlcwoATWF4LiBpdGVyYXRpb25zICglZCkgcmVhY2hlZCBvbiBncmFwaCAlcwoAQ291bGQgbm90IHBhcnNlICJfYmFja2dyb3VuZCIgYXR0cmlidXRlIGluIGdyYXBoICVzCgBpbiBsYWJlbCBvZiBncmFwaCAlcwoAQ3JlYXRpbmcgZWRnZXMgdXNpbmcgJXMKAEFkanVzdGluZyAlcyB1c2luZyAlcwoAJXMgd2hpbGUgb3BlbmluZyAlcwoAZGVyaXZlIGdyYXBoIF9kZ18lZCBvZiAlcwoAIF0gICV6dSB0cnVlICVzCgBdICAlZCB0cnVlICVzCgAgXSAgJXp1IGZhbHNlICVzCgBdICAlZCBmYWxzZSAlcwoAbWFrZVBvbHk6IHVua25vd24gc2hhcGUgdHlwZSAlcwoAbWFrZUFkZFBvbHk6IHVua25vd24gc2hhcGUgdHlwZSAlcwoAdXNpbmcgJXMgZm9yIHVua25vd24gc2hhcGUgJXMKACAgb2N0cmVlIHNjaGVtZSAlcwoAY2FuJ3Qgb3BlbiBsaWJyYXJ5IGZpbGUgJXMKAGNhbid0IGZpbmQgbGlicmFyeSBmaWxlICVzCgBCb3VuZGluZ0JveCBub3QgZm91bmQgaW4gZXBzZiBmaWxlICVzCgBjb3VsZG4ndCBvcGVuIGVwc2YgZmlsZSAlcwoAY291bGRuJ3QgcmVhZCBmcm9tIGVwc2YgZmlsZSAlcwoAaW4gbm9kZSAlcwoAc2hhcGVmaWxlIG5vdCBzZXQgb3Igbm90IGZvdW5kIGZvciBlcHNmIG5vZGUgJXMKAGluIGxhYmVsIG9mIG5vZGUgJXMKAGVuZCAlcwoAcmFua2luZzogZmFpbHVyZSB0byBjcmVhdGUgc3Ryb25nIGNvbnN0cmFpbnQgZWRnZSBiZXR3ZWVuIG5vZGVzICVzIGFuZCAlcwoAb29wcywgaW50ZXJuYWwgZXJyb3I6IHVuaGFuZGxlZCBjb2xvciB0eXBlPSVkICVzCgAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlLjFmICVkICVkICVkICVkICVkICVkCiAlZCAlcwoALy8qKiogdGV4dHNwYW46ICVzLCBmb250c2l6ZSA9ICUuM2YsIGZvbnRuYW1lID0gJXMKAHRyaWVzID0gJWQsIG1vZGUgPSAlcwoALy8qKiogY29tbWVudDogJXMKAGZvbnRuYW1lOiAiJXMiIHJlc29sdmVkIHRvOiAlcwoAJSUlJVBhZ2VPcmllbnRhdGlvbjogJXMKAGRlbGF1bmF5X3RyaWFuZ3VsYXRpb246ICVzCgBkZWxhdW5heV90cmk6ICVzCgBndnByaW50ZjogJXMKAG5lc3Rpbmcgbm90IGFsbG93ZWQgaW4gc3R5bGU6ICVzCgB1bm1hdGNoZWQgJyknIGluIHN0eWxlOiAlcwoAdW5tYXRjaGVkICcoJyBpbiBzdHlsZTogJXMKACUlJSVUaXRsZTogJXMKACVzIFRpdGxlOiAlcwoAIyBUaXRsZTogJXMKAC8vKioqIGJlZ2luX25vZGU6ICVzCgByZWFsbG9jIGZhaWxlZDogJXMKAGxpYi9wYXRocGxhbi8lczolZDogJXMKAGdyaWQoJWQsJWQpOiAlcwoAQ291bGQgbm90IG9wZW4gIiVzIiBmb3Igd3JpdGluZyA6ICVzCgBzdGFydCBwb3J0OiAoJS41ZywgJS41ZyksIHRhbmdlbnQgYW5nbGU6ICUuNWcsICVzCgBlbmQgcG9ydDogKCUuNWcsICUuNWcpLCB0YW5nZW50IGFuZ2xlOiAlLjVnLCAlcwoAIFslenVdICVwIHNldCAlZCAoJS4wMmYsJS4wMmYpICglLjAyZiwlLjAyZikgJXMKACUlICVzCgAjICVzCgAgIG1vZGUgICAlcwoAY29uanVnYXRlX2dyYWRpZW50OiB1bmV4cGVjdGVkIGxlbmd0aCAwIHZlY3RvcgoAJXMgdG8gY2hhbmdlIGRyYXdpbmcgc2l6ZSwgbXVsdGlwbHkgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb24gdGhlIC5QUyBsaW5lIGFib3ZlIGFuZCB0aGUgbnVtYmVyIG9uIHRoZSB0d28gbGluZXMgYmVsb3cgKHJvdW5kZWQgdG8gdGhlIG5lYXJlc3QgaW50ZWdlcikgYnkgYSBzY2FsZSBmYWN0b3IKAGFkZF9zZWdtZW50OiBlcnJvcgoAJS41ZyAlLjVnICUuNWcgJXNjb2xvcgoAMCAwIDAgZWRnZWNvbG9yCgAwLjggMC44IDAuOCBzZXRyZ2Jjb2xvcgoAMCAwIDEgc2V0cmdiY29sb3IKADEgMCAwIHNldHJnYmNvbG9yCgAwIDAgMCBzZXRyZ2Jjb2xvcgoAJWQgJWQgc2V0bGF5ZXIKAC8vKioqIGVuZF9sYXllcgoAVVRGLTggaW5wdXQgdXNlcyBub24tTGF0aW4xIGNoYXJhY3RlcnMgd2hpY2ggY2Fubm90IGJlIGhhbmRsZWQgYnkgdGhpcyBQb3N0U2NyaXB0IGRyaXZlcgoATGV0dGVyCgAvLyoqKiBiZWdpbl9jbHVzdGVyCgAvLyoqKiBlbmRfY2x1c3RlcgoAcmVtb3ZpbmcgZW1wdHkgY2x1c3RlcgoAQ2VudGVyCgBXYXJuaW5nOiBubyB2YWx1ZSBmb3Igd2lkdGggb2Ygbm9uLUFTQ0lJIGNoYXJhY3RlciAldS4gRmFsbGluZyBiYWNrIHRvIHdpZHRoIG9mIHNwYWNlIGNoYXJhY3RlcgoAYmFzZSByZWZlcmVyCgAlJVBhZ2VUcmFpbGVyCgAlJVRyYWlsZXIKAC8vKioqIGJlemllcgoAIiVzIiB3YXMgbm90IGZvdW5kIGFzIGEgZmlsZSBvciBhcyBhIHNoYXBlIGxpYnJhcnkgbWVtYmVyCgBzdG9wCgAgY3VydmV0bwoAbmV3cGF0aCAlLjBmICUuMGYgbW92ZXRvCgAlLjBmICUuMGYgbGluZXRvCgAgbGF5b3V0PW5lYXRvCgBub2RlICVzIGluIGdyYXBoICVzIGhhcyBubyBwb3NpdGlvbgoAJXMgbWF4cHNodCBhbmQgbWF4cHN3aWQgaGF2ZSBubyBtZWFuaW5nIGluIERXQiAyLjAsIHNldCBwYWdlIGJvdW5kYXJpZXMgaW4gZ3BpYyBhbmQgaW4gMTB0aCBFZGl0aW9uCgAlcyBhcnJvd2hlYWQgaGFzIG5vIG1lYW5pbmcgaW4gRFdCIDIsIGFycm93aGVhZCA9IDcgbWFrZXMgZmlsbGVkIGFycm93aGVhZHMgaW4gZ3BpYyBhbmQgaW4gMTB0aCBFZGl0aW9uCgAlcyBhcnJvd2hlYWQgaXMgdW5kZWZpbmVkIGluIERXQiAyLCBpbml0aWFsbHkgMSBpbiBncGljLCAyIGluIDEwdGggRWRpdGlvbgoAbWFqb3JpemF0aW9uCgAvLyoqKiBwb2x5Z29uCgBvdmVyZmxvdyB3aGVuIGNvbXB1dGluZyBlZGdlIHdlaWdodCBzdW0KAHNmZHAgb25seSBzdXBwb3J0cyBzdGFydD1yYW5kb20KAG5vZGUgcG9zaXRpb25zIGFyZSBpZ25vcmVkIHVubGVzcyBzdGFydD1yYW5kb20KAGNsb3NlcGF0aCBmaWxsCgAgZWxsaXBzZV9wYXRoIGZpbGwKACAgJS4wZiAlLjBmIGNlbGwKACVmICVmICVmICVmIGNlbGwKAGdyYXBoICVzIGlzIGRpc2Nvbm5lY3RlZC4gSGVuY2UsIHRoZSBjaXJjdWl0IG1vZGVsCgBncmFwaCBpcyBkaXNjb25uZWN0ZWQuIEhlbmNlLCB0aGUgY2lyY3VpdCBtb2RlbAoAZWRnZXMgaW4gZ3JhcGggJXMgaGF2ZSBubyBsZW4gYXR0cmlidXRlLiBIZW5jZSwgdGhlIG1kcyBtb2RlbAoAY2lyY3VpdCBtb2RlbCBub3QgeWV0IHN1cHBvcnRlZCBpbiBHbW9kZT1zZ2QsIHJldmVydGluZyB0byBzaG9ydHBhdGggbW9kZWwKAG1kcyBtb2RlbCBub3QgeWV0IHN1cHBvcnRlZCBpbiBHbW9kZT1zZ2QsIHJldmVydGluZyB0byBzaG9ydHBhdGggbW9kZWwKAG5vZGUgJyVzJywgZ3JhcGggJyVzJyBzaXplIHRvbyBzbWFsbCBmb3IgbGFiZWwKACVzIERXQiAyIGRvZXNuJ3QgdXNlIGZpbGwgYW5kIGRvZXNuJ3QgZGVmaW5lIGZpbGx2YWwKAFsge0NhdGFsb2d9IDw8IC9VUkkgPDwgL0Jhc2UgJXMgPj4gPj4KL1BVVCBwZGZtYXJrCgBbIC9Dcm9wQm94IFslZCAlZCAlZCAlZF0gL1BBR0VTIHBkZm1hcmsKACAgL0JvcmRlciBbIDAgMCAwIF0KICAvQWN0aW9uIDw8IC9TdWJ0eXBlIC9VUkkgL1VSSSAlcyA+PgogIC9TdWJ0eXBlIC9MaW5rCi9BTk4gcGRmbWFyawoAdHJvdWJsZSBpbiBpbml0X3JhbmsKAGxpbmV0aGljayA9IDA7IG9sZGxpbmV0aGljayA9IGxpbmV0aGljawoAIHNldGxpbmV3aWR0aAoAZ3NhdmUKJWQgJWQgJWQgJWQgYm94cHJpbSBjbGlwIG5ld3BhdGgKAGdzYXZlICVnICVnIHRyYW5zbGF0ZSBuZXdwYXRoCgAvLyoqKiBlbmRfZ3JhcGgKAGxheW91dCBhdHRyaWJ1dGUgaXMgaW52YWxpZCBleGNlcHQgb24gdGhlIHJvb3QgZ3JhcGgKAGluIGNoZWNrcGF0aCwgYm94ZXMgJXp1IGFuZCAlenUgZG9uJ3QgdG91Y2gKAG1lcmdlX29uZXdheSBnbGl0Y2gKACVzIGRvbid0IGNoYW5nZSBhbnl0aGluZyBiZWxvdyB0aGlzIGxpbmUgaW4gdGhpcyBkcmF3aW5nCgBOb2RlIG5vdCBhZGphY2VudCB0byBjZWxsIC0tIEFib3J0aW5nCgBpbmNvbXBhcmFibGUgc2VnbWVudHMgISEgLS0gQWJvcnRpbmcKAEFsdGVybmF0aXZlbHksIGNvbnNpZGVyIHJ1bm5pbmcgbmVhdG8gdXNpbmcgLUdwYWNrPXRydWUgb3IgZGVjb21wb3NpbmcKAGxhYmVsX3NjaGVtZSA9ICVkID4gNCA6IGlnbm9yaW5nCgBndnJlbmRlcl9zZXRfc3R5bGU6IHVuc3VwcG9ydGVkIHN0eWxlICVzIC0gaWdub3JpbmcKAEFycm93IHR5cGUgIiVzIiB1bmtub3duIC0gaWdub3JpbmcKAGZkcCBkb2VzIG5vdCBzdXBwb3J0IHN0YXJ0PXNlbGYgLSBpZ25vcmluZwoAJXMgYXR0cmlidXRlIHZhbHVlIG11c3QgYmUgMSBvciAyIC0gaWdub3JpbmcKAE1vcmUgdGhhbiAyIGNvbG9ycyBzcGVjaWZpZWQgZm9yIGEgZ3JhZGllbnQgLSBpZ25vcmluZyByZW1haW5pbmcKAGFzIHJlcXVpcmVkIGJ5IHRoZSAtbiBmbGFnCgBiYlslc10gJS41ZyAlLjVnICUuNWcgJS41ZwoAL3BhdGhib3ggewogICAgL1kgZXhjaCAlLjVnIHN1YiBkZWYKICAgIC9YIGV4Y2ggJS41ZyBzdWIgZGVmCiAgICAveSBleGNoICUuNWcgc3ViIGRlZgogICAgL3ggZXhjaCAlLjVnIHN1YiBkZWYKICAgIG5ld3BhdGggeCB5IG1vdmV0bwogICAgWCB5IGxpbmV0bwogICAgWCBZIGxpbmV0bwogICAgeCBZIGxpbmV0bwogICAgY2xvc2VwYXRoIHN0cm9rZQogfSBkZWYKL2RiZ3N0YXJ0IHsgZ3NhdmUgJS41ZyAlLjVnIHRyYW5zbGF0ZSB9IGRlZgovYXJyb3dsZW5ndGggMTAgZGVmCi9hcnJvd3dpZHRoIGFycm93bGVuZ3RoIDIgZGl2IGRlZgovYXJyb3doZWFkIHsKICAgIGdzYXZlCiAgICByb3RhdGUKICAgIGN1cnJlbnRwb2ludAogICAgbmV3cGF0aAogICAgbW92ZXRvCiAgICBhcnJvd2xlbmd0aCBhcnJvd3dpZHRoIDIgZGl2IHJsaW5ldG8KICAgIDAgYXJyb3d3aWR0aCBuZWcgcmxpbmV0bwogICAgY2xvc2VwYXRoIGZpbGwKICAgIGdyZXN0b3JlCn0gYmluZCBkZWYKL21ha2VhcnJvdyB7CiAgICBjdXJyZW50cG9pbnQgZXhjaCBwb3Agc3ViIGV4Y2ggY3VycmVudHBvaW50IHBvcCBzdWIgYXRhbgogICAgYXJyb3doZWFkCn0gYmluZCBkZWYKL3BvaW50IHsgICAgbmV3cGF0aCAgICAyIDAgMzYwIGFyYyBmaWxsfSBkZWYvbWFrZXZlYyB7CiAgICAvWSBleGNoIGRlZgogICAgL1ggZXhjaCBkZWYKICAgIC95IGV4Y2ggZGVmCiAgICAveCBleGNoIGRlZgogICAgbmV3cGF0aCB4IHkgbW92ZXRvCiAgICBYIFkgbGluZXRvIHN0cm9rZQogICAgWCBZIG1vdmV0bwogICAgeCB5IG1ha2VhcnJvdwp9IGRlZgoAL3BhdGhib3ggewogICAgL1ggZXhjaCBuZWcgJS41ZyBzdWIgZGVmCiAgICAvWSBleGNoICUuNWcgc3ViIGRlZgogICAgL3ggZXhjaCBuZWcgJS41ZyBzdWIgZGVmCiAgICAveSBleGNoICUuNWcgc3ViIGRlZgogICAgbmV3cGF0aCB4IHkgbW92ZXRvCiAgICBYIHkgbGluZXRv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eSBhbGxvY2F0aW9uIGZhaWx1cmUKACVzOiB2c25wcmludGYgZmFpbHVyZQoAZW5kcGFnZQpzaG93cGFnZQpncmVzdG9yZQoAZW5kCnJlc3RvcmUKAGxheW91dCB3YXMgbm90IGRvbmUKAExheW91dCB3YXMgbm90IGRvbmUKAC8vKioqIHBvbHlsaW5lCgB0cnlpbmcgdG8gZGVsZXRlIGEgbm9uLWxpbmUKACMgZW5kIG9mIEZJRyBmaWxlCgBTaW5nbGUKAHJlbmRlcmVyIGZvciAlcyBpcyB1bmF2YWlsYWJsZQoAZHluYW1pYyBsb2FkaW5nIG5vdCBhdmFpbGFibGUKACUuMGYgJS4wZiBsaW5ldG8gc3Ryb2tlCgBjbG9zZXBhdGggc3Ryb2tlCgAgZWxsaXBzZV9wYXRoIHN0cm9rZQoALy8qKiogYmVnaW5fZWRnZQoALy8qKiogZW5kX2VkZ2UKAGxvc3QgJXMgJXMgZWRnZQoAb3ZlcmZsb3cgd2hlbiBjYWxjdWxhdGluZyB2aXJ0dWFsIHdlaWdodCBvZiBlZGdlCgBhZGRfdHJlZV9lZGdlOiBtaXNzaW5nIHRyZWUgZWRnZQoAaW4gcm91dGVzcGxpbmVzLCBjYW5ub3QgZmluZCBOT1JNQUwgZWRnZQoAc2hvd3BhZ2UKACVkICVkICVkIGJlZ2lucGFnZQoALy8qKiogYmVnaW5fcGFnZQoALy8qKiogZW5kX3BhZ2UKAEZpbGVuYW1lICIlcyIgaXMgdW5zYWZlCgBsYWJlbDogYXJlYSB0b28gbGFyZ2UgZm9yIHJ0cmVlCgAvLyoqKiBlbmRfbm9kZQoAVXNpbmcgZGVmYXVsdCBjYWxjdWxhdGlvbiBmb3Igcm9vdCBub2RlCgBjb250YWluX25vZGVzIGNsdXN0ICVzIHJhbmsgJWQgbWlzc2luZyBub2RlCgAlZiAlZiAlZiAlZiBub2RlCgA8PCAvUGFnZVNpemUgWyVkICVkXSA+PiBzZXRwYWdlZGV2aWNlCgBpbiBjaGVja3BhdGgsIGJveCAlenUgaGFzIExMIGNvb3JkID4gVVIgY29vcmQKAGluIGNoZWNrcGF0aCwgYm94IDAgaGFzIExMIGNvb3JkID4gVVIgY29vcmQKAGNsdXN0ZXIgbmFtZWQgJXMgbm90IGZvdW5kCgBpbnRlZ2VyIG92ZXJmbG93IGR1cmluZyBsaXN0IHByZXBlbmQKAG1pbmNyb3NzOiBwYXNzICVkIGl0ZXIgJWQgdHJ5aW5nICVkIGN1cl9jcm9zcyAlbGxkIGJlc3RfY3Jvc3MgJWxsZAoAbm9kZSAlcywgcG9ydCAlcyB1bnJlY29nbml6ZWQKACVzJXMgdW5zdXBwb3J0ZWQKAGNsdXN0ZXIgY3ljbGUgJXMgLS0gJXMgbm90IHN1cHBvcnRlZAoAJXMgLT4gJXM6IHNwbGluZSBzaXplID4gMSBub3Qgc3VwcG9ydGVkCgBsYXlvdXQgYWJvcnRlZAoAcGFnZWRpcj0lcyBpZ25vcmVkCgBUd28gY2x1c3RlcnMgbmFtZWQgJXMgLSB0aGUgc2Vjb25kIHdpbGwgYmUgaWdub3JlZAoASWxsZWdhbCBhdHRyaWJ1dGUgJXMgaW4gJXMgLSBpZ25vcmVkCgBVbmtub3duIHZhbHVlICVzIGZvciBhdHRyaWJ1dGUgIm1vZGVsIiBpbiBncmFwaCAlcyAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIGF0dHJpYnV0ZSAibW9kZSIgaW4gZ3JhcGggJXMgLSBpZ25vcmVkCgBzdGFydD0wIG5vdCBzdXBwb3J0ZWQgd2l0aCBtb2RlPXNlbGYgLSBpZ25vcmVkCgBPdmVybGFwIHZhbHVlICIlcyIgdW5zdXBwb3J0ZWQgLSBpZ25vcmVkCgBVbmtub3duIHZhbHVlICVzIGZvciBST1dTIC0gaWdub3JlZAoAVW5rbm93biB2YWx1ZSAlcyBmb3IgQ09MVU1OUyAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIFZBTElHTiAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIEFMSUdOIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlcyBmb3IgRklYRURTSVpFIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlLipzIGZvciBTVFlMRSAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIEJBTElHTiBpbiBURCAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIEFMSUdOIGluIFREIC0gaWdub3JlZAoAUk9XU1BBTiB2YWx1ZSBjYW5ub3QgYmUgMCAtIGlnbm9yZWQKAENPTFNQQU4gdmFsdWUgY2Fubm90IGJlIDAgLSBpZ25vcmVkCgBub2RlICVzLCBwb3J0ICVzLCB1bnJlY29nbml6ZWQgY29tcGFzcyBwb2ludCAnJXMnIC0gaWdub3JlZAoAVW5rbm93biAic3BsaW5lcyIgdmFsdWU6ICIlcyIgLSBpZ25vcmVkCgBpbiByb3V0ZXNwbGluZXMsIFBzaG9ydGVzdHBhdGggZmFpbGVkCgBpbiByb3V0ZXNwbGluZXMsIFByb3V0ZXNwbGluZSBmYWlsZWQKACMgcGx1Z2luIGxvYWRpbmcgb2YgZGVwZW5kZW5jeSAiJS4qcyIgZmFpbGVkCgBQYXJzaW5nIG9mICIlcyIgZmFpbGVkCgAlczolZDogY2xhaW1lZCB1bnJlYWNoYWJsZSBjb2RlIHdhcyByZWFjaGVkCgAjIHVuc3VjY2Vzc2Z1bCBwbHVnaW4gbG9hZAoAJS41ZyAlLjVnIHRyYW5zbGF0ZSBuZXdwYXRoIHVzZXJfc2hhcGVfJWQKAG5zaXplc2NhbGU9JWYsaXRlcmF0aW9ucz0lZAoAY3RybC0+b3ZlcmxhcD0lZAoAJXMgJWQgbm9kZXMgJWQgZWRnZXMgbWF4aXRlcj0lZCBiYWxhbmNlPSVkCgAvLyoqKiBiZWdpbl9sYXllcjogJXMsICVkLyVkCgBkZWdlbmVyYXRlIGNvbmNlbnRyYXRlZCByYW5rICVzLCVkCgAgIG1heCBsZXZlbHMgJWQKAAklcyAlZAoAICBCYXJuZXMtSHV0dCBjb25zdGFudCAlLjAzZiB0b2xlcmFuY2UgICUuMDNmIG1heGl0ZXIgJWQKAGd2d3JpdGVfbm9feiBwcm9ibGVtICVkCgAgIHF1YWR0cmVlIHNpemUgJWQgbWF4X2xldmVsICVkCgByZWJ1aWxkX3ZsaXN0czogbGVhZCBpcyBudWxsIGZvciByYW5rICVkCgByZWJ1aWxkX3ZsaXN0czogcmFuayBsZWFkICVzIG5vdCBpbiBvcmRlciAlZCBvZiByYW5rICVkCgAgIHNtb290aGluZyAlcyBvdmVybGFwICVkIGluaXRpYWxfc2NhbGluZyAlLjAzZiBkb19zaHJpbmtpbmcgJWQKACAgY29vbGluZyAlLjAzZiBzdGVwIHNpemUgICUuMDNmIGFkYXB0aXZlICVkCgBVbnN1cHBvcnRlZCBjaGFyc2V0IHZhbHVlICVkCgBpbiByb3V0ZXNwbGluZXMsIGlsbGVnYWwgdmFsdWVzIG9mIHByZXYgJWQgYW5kIG5leHQgJWQsIGxpbmUgJWQKACAgZWRnZV9sYWJlbGluZ19zY2hlbWUgJWQKAGFnZGljdG9mOiB1bmtub3duIGtpbmQgJWQKACAgcmFuZG9tIHN0YXJ0ICVkIHNlZWQgJWQKACVkICVkICVkICUuMGYgJWQgJWQgJWQgJWQgJWQgJS4xZiAlZCAlZCAlZCAlZAoAJSUlJVBhZ2VCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQKACUlJSVCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQKACUlJSVQYWdlOiAlZCAlZAoAJXMgbm8uIGNlbGxzICVkIFcgJWQgSCAlZAoATWF4cmFuayA9ICVkLCBtaW5yYW5rID0gJWQKAHN0ZXAgc2l6ZSA9ICVkCgAlJSUlUGFnZXM6ICVkCgAjIFBhZ2VzOiAlZAoAJSUlJUVuZFBhZ2U6ICVkCgAiZm9udGNoYXIiOiAlZAoAICBmbGFncyAgJWQKACAgc2l6ZSAgICVkCgAlcyBkYXNod2lkIGlzIDAuMSBpbiAxMHRoIEVkaXRpb24sIDAuMDUgaW4gRFdCIDIgYW5kIGluIGdwaWMKACVzIG1heHBzaHQgYW5kIG1heHBzd2lkIGFyZSBwcmVkZWZpbmVkIHRvIDExLjAgYW5kIDguNSBpbiBncGljCgAgJWQlcyBpdGVyYXRpb25zICUuMmYgc2VjCgAKZmluYWwgZSA9ICVmICVkIGl0ZXJhdGlvbnMgJS4yZiBzZWMKACVkIG5vZGVzICUuMmYgc2VjCgAlcyV6dSBub2RlcyAlenUgZWRnZXMgJWQgaXRlciAlLjJmIHNlYwoACmZpbmlzaGVkIGluICUuMmYgc2VjCgA6ICUuMmYgc2VjCgAgbm9kZVtzaGFwZT1wb2ludF0KACJyZWN0IjogWyUuMDNmLCUuMDNmLCUuMDNmLCUuMDNmXQoAaW5zdGFsbF9pbl9yYW5rLCBsaW5lICVkOiBORF9vcmRlciglcykgWyVkXSA+IEdEX3JhbmsoUm9vdClbJWRdLmFuIFslZF0KAGluc3RhbGxfaW5fcmFuaywgbGluZSAlZDogR0RfcmFuayhnKVslZF0udiArIE5EX29yZGVyKCVzKSBbJWRdID4gR0RfcmFuayhnKVslZF0uYXYgKyBHRF9yYW5rKFJvb3QpWyVkXS5hbiBbJWRdCgBpbnN0YWxsX2luX3JhbmssIGxpbmUgJWQ6IHJhbmsgJWQgbm90IGluIHJhbmsgcmFuZ2UgWyVkLCVkXQoAZmFpbGVkIGF0IG5vZGUgJWRbMV0KAGZhaWxlZCBhdCBub2RlICVkWzBdCgAgICVkIC0tICVkW2xhYmVsPSIlZiJdCgAgICVkIFtwb3M9IiUuMGYsJS4wZiEiXQoAIF0KAERvdDogWwoAIm9iamVjdHMiOiBbCgAic3ViZ3JhcGhzIjogWwoAImVkZ2VzIjogWwoAIm5vZGVzIjogWwoAWCBlbHNlIFoKCWRlZmluZSBzZXRmaWxsdmFsIFkgZmlsbHZhbCA9IFk7CglkZWZpbmUgYm9sZCBZIFk7CglkZWZpbmUgZmlsbGVkIFkgZmlsbCBZOwpaCgBpZiBib3hyYWQgPiAxLjAgJiYgZGFzaHdpZCA8IDAuMDc1IHRoZW4gWAoJZmlsbHZhbCA9IDE7CglkZWZpbmUgZmlsbCBZIFk7CglkZWZpbmUgc29saWQgWSBZOwoJZGVmaW5lIHJlc2V0IFkgc2NhbGU9MS4wIFk7ClgKACBBQk9SVElORwoAJSVFT0YKACVzIHJlc3RvcmUgcG9pbnQgc2l6ZSBhbmQgZm9udAoucHMgXG4oLlMKLmZ0IFxuKERGCgBdCi5QRQoAaW52YWxpZGF0ZV9wYXRoOiBza2lwcGVkIG92ZXIgTENBCgBJbnZhbGlkICVkLWJ5dGUgVVRGOCBmb3VuZCBpbiBpbnB1dCBvZiBncmFwaCAlcyAtIHRyZWF0ZWQgYXMgTGF0aW4tMS4gUGVyaGFwcyAiLUdjaGFyc2V0PWxhdGluMSIgaXMgbmVlZGVkPwoAVVRGOCBjb2RlcyA+IDQgYnl0ZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIChncmFwaCAlcykgLSB0cmVhdGVkIGFzIExhdGluLTEuIFBlcmhhcHMgIi1HY2hhcnNldD1sYXRpbjEiIGlzIG5lZWRlZD8KADwvdGV4dD4KADwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KADwvcmFkaWFsR3JhZGllbnQ+CjwvZGVmcz4KADwvbWFwPgoAPC9zdmc+CgA8L2E+CjwvZz4KACAgICByb3RhdGUgICA8JTkuM2YsICU5LjNmLCAlOS4zZj4KACAgICBzY2FsZSAgICA8JTkuM2YsICU5LjNmLCAlOS4zZj4KADwvdGl0bGU+CgAiIHR5cGU9InRleHQvY3NzIj8+CgA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KACAgICB0cmFuc2xhdGU8JTkuM2YsICU5LjNmLCAlZC4wMDA+CgA7Ii8+CgAgUGFnZXM6ICVkIC0tPgoAKQogLS0+CgAgLT4KADwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgoAKSI+CgByXyVkIiBjeD0iNTAlJSIgY3k9IjUwJSUiIHI9Ijc1JSUiIGZ4PSIlLjBmJSUiIGZ5PSIlLjBmJSUiPgoAIiA+CgAjZGVjbGFyZSAlcyA9ICVzOwoACSVzCXNvcnJ5LCB0aGUgZ3JvZmYgZm9sa3MgY2hhbmdlZCBncGljOyBzZW5kIGFueSBjb21wbGFpbnQgdG8gdGhlbTsKAAklcwlpbnN0YWxsIGEgbW9yZSByZWNlbnQgdmVyc2lvbiBvZiBncGljIG9yIHN3aXRjaCB0byBEV0Igb3IgMTB0aCBFZGl0aW9uIHBpYzsKAF07CgBpZiBmaWxsdmFsID4gMC40IHRoZW4gWAoJZGVmaW5lIHNldGZpbGx2YWwgWSBmaWxsdmFsID0gMSAtIFk7CglkZWZpbmUgYm9sZCBZIHRoaWNrbmVzcyAyIFk7CgAjdmVyc2lvbiAzLjY7CgBlbGxpcHNlIGF0dHJzMCAlc3dpZCAlLjVmIGh0ICUuNWYgYXQgKCUuNWYsJS41Zik7CgAiIGF0ICglLjVmLCUuNWYpOwoAJSVCZWdpbkRvY3VtZW50OgoAJXp1IGJveGVzOgoAcGFjayBpbmZvOgoAc3ByaW5nX2VsZWN0cmljYWxfY29udHJvbDoKAFVuc3VwcG9ydGVkIGNoYXJzZXQgIiVzIiAtIGFzc3VtaW5nIHV0Zi04CgAgICAgICBhbWJpZW50SW50ZW5zaXR5IDAuMzMKACNGSUcgMy4yCgAtMgoAJXMgbm9uLWZhdGFsIHJ1bi10aW1lIHBpYyB2ZXJzaW9uIGRldGVybWluYXRpb24sIHZlcnNpb24gMgoAJXMgZmlsbHZhbCBpcyAwLjMgaW4gMTB0aCBFZGl0aW9uIChmaWxsIDAgbWVhbnMgYmxhY2spLCAwLjUgaW4gZ3BpYyAoZmlsbCAwIG1lYW5zIHdoaXRlKSwgdW5kZWZpbmVkIGluIERXQiAyCgAlcyByZXNldCB3b3JrcyBpbiBncGljIGFuZCAxMHRoIGVkaXRpb24sIGJ1dCBpc24ndCBkZWZpbmVkIGluIERXQiAyCgBzZXR1cExhdGluMQoAXDAwMQoAJXMgICAgICAgIHRvbGVyYW5jZSAwLjAxCgAgICAgdG9sZXJhbmNlIDAuMQoAJSVQYWdlczogMQoAICAgICAgICBkaWZmdXNlQ29sb3IgMSAxIDEKADEwMC4wMAoAIEVQU0YtMy4wCgAlcyBib3hyYWQgaXMgbm93IDAuMCBpbiBncGljLCBlbHNlIGl0IHJlbWFpbnMgMi4wCgBzcGhlcmUgezwlOS4zZiwgJTkuM2YsICU5LjNmPiwgMS4wCgBXYXJuaW5nOiBubyB2YWx1ZSBmb3Igd2lkdGggb2YgQVNDSUkgY2hhcmFjdGVyICV1LiBGYWxsaW5nIGJhY2sgdG8gMAoAaW5zdGFsbF9pbl9yYW5rLCBsaW5lICVkOiAlcyAlcyByYW5rICVkIGkgPSAlZCBhbiA9IDAKAGNvbmNlbnRyYXRlPXRydWUgbWF5IG5vdCB3b3JrIGNvcnJlY3RseS4KAE5vIGxpYnogc3VwcG9ydC4KAHR3b3BpOiB1c2Ugb2Ygd2VpZ2h0PTAgY3JlYXRlcyBkaXNjb25uZWN0ZWQgY29tcG9uZW50LgoAdGhlIGdyYXBoIGludG8gY29ubmVjdGVkIGNvbXBvbmVudHMuCgBPcnRob2dvbmFsIGVkZ2VzIGRvIG5vdCBjdXJyZW50bHkgaGFuZGxlIGVkZ2UgbGFiZWxzLiBUcnkgdXNpbmcgeGxhYmVscy4KAG1pbmNyb3NzICVzOiAlbGxkIGNyb3NzaW5ncywgJS4yZiBzZWNzLgoAJXMgaXMgbm90IGEga25vd24gY29sb3IuCgBpcyBpbmFwcHJvcHJpYXRlLiBSZXZlcnRpbmcgdG8gdGhlIHNob3J0ZXN0IHBhdGggbW9kZWwuCgBpcyB1bmRlZmluZWQuIFJldmVydGluZyB0byB0aGUgc2hvcnRlc3QgcGF0aCBtb2RlbC4KAFVuYWJsZSB0byByZWNsYWltIGJveCBzcGFjZSBpbiBzcGxpbmUgcm91dGluZyBmb3IgZWRnZSAiJXMiIC0+ICIlcyIuIFNvbWV0aGluZyBpcyBwcm9iYWJseSBzZXJpb3VzbHkgd3JvbmcuCgBFcnJvciBkdXJpbmcgY29udmVyc2lvbiB0byAiVVRGLTgiLiBRdWl0aW5nLgoAb3JkZXJpbmcgJyVzJyBub3QgcmVjb2duaXplZC4KAGdyYWRpZW50IHBlbiBjb2xvcnMgbm90IHlldCBzdXBwb3J0ZWQuCgAgIGluaXRDTWFqVlBTQyBkb25lOiAlZCBnbG9iYWwgY29uc3RyYWludHMgZ2VuZXJhdGVkLgoAVGhlIGNoYXJhY3RlciAnJWMnIGFwcGVhcnMgaW4gYm90aCB0aGUgbGF5ZXJzZXAgYW5kIGxheWVybGlzdHNlcCBhdHRyaWJ1dGVzIC0gbGF5ZXJsaXN0c2VwIGlnbm9yZWQuCgB0aGUgYXNwZWN0IGF0dHJpYnV0ZSBoYXMgYmVlbiBkaXNhYmxlZCBkdWUgdG8gaW1wbGVtZW50YXRpb24gZmxhd3MgLSBhdHRyaWJ1dGUgaWdub3JlZC4KAFRoZSBsYXllcnNlbGVjdCBhdHRyaWJ1dGUgIiVzIiBkb2VzIG5vdCBtYXRjaCBhbnkgbGF5ZXIgc3BlY2lmZWQgYnkgdGhlIGxheWVycyBhdHRyaWJ1dGUgLSBpZ25vcmVkLgoAJXp1IG91dCBvZiAlenUgbGFiZWxzIHBvc2l0aW9uZWQuCgAlenUgb3V0IG9mICV6dSBleHRlcmlvciBsYWJlbHMgcG9zaXRpb25lZC4KACAgZ2VuZXJhdGUgZWRnZSBjb25zdHJhaW50cy4uLgoAR2VuZXJhdGluZyBOb24tb3ZlcmxhcCBD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MSkpCgBlcnJvciBpbiBjb2xvcnhsYXRlKCkKAHRydW5jYXRpbmcgc3R5bGUgJyVzJwoASWxsZWdhbCB2YWx1ZSBpbiAiJXMiIGNvbG9yIGF0dHJpYnV0ZTsgZmxvYXQgZXhwZWN0ZWQgYWZ0ZXIgJzsnCgBkZWZpbmUgYXR0cnMwICUlICUlOyBkZWZpbmUgdW5maWxsZWQgJSUgJSU7IGRlZmluZSByb3VuZGVkICUlICUlOyBkZWZpbmUgZGlhZ29uYWxzICUlICUlCgA8c3ZnIHdpZHRoPSIlZHB0IiBoZWlnaHQ9IiVkcHQiCgAjIGRlcGVuZGVuY2llcyAiJS4qcyIgZGlkIG5vdCBtYXRjaCAiJS4qcyIKACMgdHlwZSAiJS4qcyIgZGlkIG5vdCBtYXRjaCAiJS4qcyIKACRjIGNyZWF0ZSBpbWFnZSAlLjJmICUuMmYgLWltYWdlICJwaG90b18lcyIKAE5vIG9yIGltcHJvcGVyIGltYWdlIGZpbGU9IiVzIgoAZmlsZSBsb2FkaW5nIGlzIGRpc2FibGVkIGJlY2F1c2UgdGhlIGVudmlyb25tZW50IGNvbnRhaW5zIFNFUlZFUl9OQU1FPSIlcyIKAENvdWxkIG5vdCBwYXJzZSB4ZG90ICIlcyIKAE5vIGxvYWRpbWFnZSBwbHVnaW4gZm9yICIlcyIKACBbJXp1XSAoJS4wMmYsJS4wMmYpICglLjAyZiwlLjAyZikgJXAgIiVzIgoAZm9udG5hbWU6IHVuYWJsZSB0byByZXNvbHZlICIlcyIKAER1cGxpY2F0ZSBjbHVzdGVyIG5hbWUgIiVzIgoAdW5yZWNvZ25pemVkIGFwaSBuYW1lICIlcyIKAGltYWdlIGNyZWF0ZSBwaG90byAicGhvdG9fJXMiIC1maWxlICIlcyIKAE5vIG9yIGltcHJvcGVyIHNoYXBlZmlsZT0iJXMiIGZvciBub2RlICIlcyIKAE5vIG9yIGltcHJvcGVyIGltYWdlPSIlcyIgZm9yIG5vZGUgIiVzIgoAbm9kZSAiJXMiIGlzIGNvbnRhaW5lZCBpbiB0d28gbm9uLWNvbXBhcmFibGUgY2x1c3RlcnMgIiVzIiBhbmQgIiVzIgoARXJyb3I6IG5vZGUgIiVzIiBiZWxvbmdzIHRvIHR3byBub24tbmVzdGVkIGNsdXN0ZXJzICIlcyIgYW5kICIlcyIKACAgIiVzIgoAI2luY2x1ZGUgImNvbG9ycy5pbmMiCiNpbmNsdWRlICJ0ZXh0dXJlcy5pbmMiCiNpbmNsdWRlICJzaGFwZXMuaW5jIgoAVW5rbm93biBIVE1MIGVsZW1lbnQgPCVzPiBvbiBsaW5lICVsdSAKACVzIGluIGxpbmUgJWx1IAoAc2NhbGUgYnkgJWcsJWcgCgBjb21wcmVzcyAlZyAKAExheW91dCB3YXMgbm90IGRvbmUuICBNaXNzaW5nIGxheW91dCBwbHVnaW5zPyAKAIlQTkcNChoKACUlIVBTLUFkb2JlLTIuMAolJSUlQm91bmRpbmdCb3g6IChhdGVuZCkKL3BvaW50IHsKICAvWSBleGNoIGRlZgogIC9YIGV4Y2ggZGVmCiAgbmV3cGF0aAogIFggWSAzIDAgMzYwIGFyYyBmaWxsCn0gZGVmCi9jZWxsIHsKICAvWSBleGNoIGRlZgogIC9YIGV4Y2ggZGVmCiAgL3kgZXhjaCBkZWYKICAveCBleGNoIGRlZgogIG5ld3BhdGgKICB4IHkgbW92ZXRvCiAgeCBZIGxpbmV0bwogIFggWSBsaW5ldG8KICBYIHkgbGluZXRvCiAgY2xvc2VwYXRoIHN0cm9rZQp9IGRlZgovbm9kZSB7CiAvdSBleGNoIGRlZgogL3IgZXhjaCBkZWYKIC9kIGV4Y2ggZGVmCiAvbCBleGNoIGRlZgogbmV3cGF0aCBsIGQgbW92ZXRvCiByIGQgbGluZXRvIHIgdSBsaW5ldG8gbCB1IGxpbmV0bwogY2xvc2VwYXRoIGZpbGwKfSBkZWYKCgAJAEHxigULtgMBAQEBAQEBAQIDAQECAQEBAQEBAQEBAQEBAQEBAQEBAgEEBQEBAQEBAQYBAQcICQoKCgoKCgoKCgoBAQsBDAENDg8QERITFBUWExMTExcYGRMaGxwdExMTExMBHgEBEwEfICEiIxMkJSYTExMTJygpEyorLC0TExMTEwEBAQEBExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMuExMTLxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTMBMTExMTExMTExMTExMTExMAAAAAAAAEAAQAHAAcACEAIQAkACIACgACABYACQAiACIAIgAVAB0AAQAUABQAFAAUABQAFAAUAAgABAAFABwAGwAXABwAIQAgAB8AHgAJABMAAAAVABIAFQADAAcAFQAVABQAFAAUABQAFAAUABQAFAAIAAQABQAFAAYAHAAaABgAGQAhAAcAFQAUABQAFAAUABQAFAALABQADQAUAAwAFAAUABQADgAUABQAFAAQABQADwAUABEAQbKOBQuVBAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAMABAAHAAMABAAFAAUABgAGAAgABwAHABEAFgASABEAEgAIAAgADwAPABcADwAYAA8AGQAaABoAHgAWADQAHgAFADIABgAiACIAMwAXABgANQAZABoAGgAqADYAKgA0ADcAMgBFADsAPAAzADsAPABGADUARwBIAEwANgAiAEkASgA3AEUATgBQAGIAUQBSAFQARgBHAFUASABMAFYASQBKAFgAWgBOAEQAUABRAFIAVAA4AC8ALABVACkAVgAbABAAWABaAF0AXQBdAF0AXQBdAF0AXgBeAF4AXgBeAF4AXgBfAF8AXwBfAF8AXwBfAGAACQBgAGAAYABgAGAAYQBhAGMAAgBjAGMAYwBjAGMAZAAAAGQAAABkAGQAZABlAAAAZQBlAGUAZQBlAGYAAAAAAGYAZgBmAGYAZwAAAGcAZwBnAGcAaAAAAGgAaABoAGgAaABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAEHUkgULzQGuAC4ALwAzADUAMAA3AKoA2wDbANsA2wAAAD0AhwA3ADcA2wDbAAAAKAA1AC4AMgAvAGIAAAAAAEcAAADbANsAUQAAANsA2wDbAAAA2wCEAFUA2wCCANsAAACBANsAAAA+AEIAQQBIAEQAUgBbAAAAAABeAF8A2wAAANsA2wDbAAAAAAB7AEkAVwBSAFoAWgBdAAAAXwAAAF8AAABlAF0AXwAAAF0AbgBqAAAAaQAAAG4AAADbAJMAmgChAKgAqwBwALEAuAC/AMYAzQDTAEGylAULzwFcAAEAXQBdAF4AXgBfAF8AXABcAFwAXABcAGAAXABcAFwAYQBcAFwAYgBiAGIAYgBiAGIAYgBjAGQAZQBmAFwAXABcAGcAXABcAFwAYABcAFwAYQBcAGEAXABoAGEAXABiAGIAYgBiAGIAYgBiAGIAYwBkAGUAZQBcAGYAXABcAFwAZwBoAGEAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAAAAXABcAFwAXABcAFwAXABcAFwAXABcAFwAQZGWBQswAQECAwEEAQUBBgcHAQYGBgYGBgYGBgYGBgYGBgYDBgYGBgYGBgYGBgYGBgYGBgYGAEHSlgULowQKAAsADAANAA4ACgAPABAAEQASABMACgAUABUAFQAVABYAFwAVABgAFQAVABkAFQAVABUAGgAVABUACgAVABUAFQAWABcAGAAVABUAGQAVABUAFQAaABUAFQAVABUAGwAMAAwAJAAeAB4AIAAhACAAIQAkACUAJgAtADIALwAuACoAJQAmACgAKQAzACoANAArADUANgA3ADwAMgBHAD0AIgBFACIAPwBAAEYAMwA0AEgANQA2ADcALwBJACoARwBKAEUATABcADwARgBcAD0ATQBIAE4ATwBSAEkAQQBQAFEASgBMAFMAVAAxAFUAVgBXAE0ATgBYAE8AUgBZAFAAUQBaAFsAUwBEAFQAVQBWAFcASwBEACwAWAAsAFkAOAAsAFoAWwAdAB0AHQAdAB0AHQAdAB8AHwAfAB8AHwAfAB8AIwAjACMAIwAjACMAIwAnAFwAJwAnACcAJwAnADAAMAA5ABwAOQA5ADkAOQA5ADoAXAA6AFwAOgA6ADoAOwBcADsAOwA7ADsAOwA+AFwAXAA+AD4APgA+AEIAXABCAEIAQgBCAEMAXABDAEMAQwBDAEMACQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAMAAAADQAAAA4AAAAOAEGAmwUL0QUR7u4TCAPu/u7u7gHu7u4B7u4J/u4SFRfuEgHu7u7uCg3u7u7u7u7u7u4B7u4WCAEBGQ4Y7u4bGBru7h3u7u7uARX77u7u7hAe7u7uAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWEQICAgICAgICAgICAgISEAITAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIUAhUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4CDwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBAgMEBQYHCAkKCwwNAAAACwMEBQ8HAwwNBgwNDgwNGhUAAQADBw4GDwgMDRITCSoQERAWLzANMhETLjIUEhQSQRMsE0JAKkIZ//8sAAAAACIMDQ4jDwkQEQoQEcwQES1F/AEG9g8H9iQCEBEvMCg2SUomMTs8PTYqOTo+Py/YQEQwNyVHQzVIKwAAOAAAAAAAAwkAAAABDgILDAgjJCUzODoADRASGxYcEicvIhcwHjkGBzIFDxEUGCkAEykAAAAAADQVKB0eACEmMR8uOxksABsAIBoqKzcANTYtAAAAAAACAgEAAwMBAAEAAQEBAAIBAQACAgMBAQAABQABAwEDBQMBAQEBAgABAAQCAAIDAQADAgEAAQEAAQEBAwAAAAAAFxgYGBkaGxscHB0dHh4fHyAgISEiIyMlJiQkJycoKCgpKSoqKisrLCwtLi4vMDEzMjQ0NDU1NTY2NzcAAAAA7u787u7u7u7uHyDu+e/u7u4M7u7uBg/u7vLu7u7u7vXuAEHhoAULLwMIBCEFCxITJxQVFikyQRcYGRosMzRCRhscHS4eSx8ga2V5AF9BR19zdHJkYXRhAEGgoQULFe0fAAC/DAAAowwAAGhUAAB7UgAABgBBwKEFC+PrAc7GAABVXcl/yX//ALS3AAC7LdS+rtT/AKypAAAUd/39wIb/AG7FAABVXcl/yX//AFS2AAC7LdS+rtT/AEyoAAAUd/39wIb/ALCbAAAqZv///5n/AA7EAABVXcl/yX//APS0AAC7LdS+rtT/AOymAAAUd/39wIb/AFCaAAAqZv///5n/AByPAACXrbA4bLD/AK7CAABVXcl/yX//AJSzAAC7LdS+rtT/AIylAAAUd/39wIb/APCYAAAqZv///5n/ALyNAACXrbA4bLD/AJmGAADo/PDwAn//AE7BAABVXcl/yX//ADSyAAC7LdS+rtT/ACykAAAUd/39wIb/AJCXAAAqZv///5n/AFyMAACXrbA4bLD/ADmFAADo/PDwAn//AH5/AAAR4L+/Wxf/AO6/AABVXcl/yX//ANSwAAC7LdS+rtT/AMyiAAAUd/39wIb/ADCWAAAqZv///5n/APyKAACXrbA4bLD/ANmDAADo/PDwAn//AB5+AAAR4L+/Wxf/ALl5AAAAAGZmZmb/AO7GAACTGffe6/f/ANS3AACOS+GeyuH/AMypAACRvL0xgr3/AI7FAACfEP/v8///AHS2AACPLue91+f/AGyoAACPf9Zrrtb/ANCbAACT0LUhcbX/AC7EAACfEP/v8///ABS1AACPLue91+f/AAynAACPf9Zrrtb/AHCaAACRvL0xgr3/ADyPAACV8ZwIUZz/AM7CAACfEP/v8///ALSzAACUK+/G2+//AKylAACOS+GeyuH/ABCZAACPf9Zrrtb/ANyNAACRvL0xgr3/ALmGAACV8ZwIUZz/AG7BAACfEP/v8///AFSyAACUK+/G2+//AEykAACOS+GeyuH/ALCXAACPf9Zrrtb/AHyMAACQqcZCksb/AFmFAACT0LUhcbX/AJ5/AACX8ZQIRZT/AA7AAACUCP/3+///APSwAACTGffe6/f/AOyiAACUK+/G2+//AFCWAACOS+GeyuH/AByLAACPf9Zrrtb/APmDAACQqcZCksb/AD5+AACT0LUhcbX/ANl5AACX8ZQIRZT/AM2+AACUCP/3+///ALOvAACTGffe6/f/AKuhAACUK+/G2+//AA+VAACOS+GeyuH/ANuJAACPf9Zrrtb/ALiCAACQqcZCksb/AP18AACT0LUhcbX/AJh4AACV8ZwIUZz/AId1AACY62sIMGv/AMjIAAAX71RUMAX/AAPNAAB3/zwAPDD/AK65AAAX7IyMUQr/AKarAAAYwr+/gS3/AKqdAAAdcN/fwn3/ABaRAAAeNPb26MP/AJOIAAB5JurH6uX/AHiBAAB4X82AzcH/ALN7AAB8pZc1l4//AEJ3AAB8/GYBZl7/AFDIAAAX71RUMAX/AIDMAAB8/GYBZl7/AC++AAB3/zwAPDD/ADa5AAAX7IyMUQr/AC6rAAAYwr+/gS3/ADKdAAAdcN/fwn3/AJ6QAAAeNPb26MP/ABuIAAAAAPX19fX/AACBAAB5JurH6uX/ADt7AAB4X82AzcH/AMp2AAB8pZc1l4//AHTHAAAch9jYs2X/AFq4AAAAAPX19fX/AFKqAAB7f7RatKz/ABTGAAAV16amYRr/APq2AAAdcN/fwn3/APKoAAB4X82AzcH/AFacAAB5/YUBhXH/ALTEAAAV16amYRr/AJq1AAAdcN/fwn3/AJKnAAAAAPX19fX/APaaAAB4X82AzcH/AMKPAAB5/YUBhXH/AFTDAAAX7IyMUQr/ADq0AAAch9jYs2X/ADKmAAAeNPb26MP/AJaZAAB5JurH6uX/AGKOAAB7f7RatKz/AD+HAAB8/GYBZl7/APTBAAAX7IyMUQr/ANqyAAAch9jYs2X/ANKkAAAeNPb26MP/ADaYAAAAAPX19fX/AAKNAAB5JurH6uX/AN+FAAB7f7RatKz/ACSAAAB8/GYBZl7/AJTAAAAX7IyMUQr/AHqxAAAYwr+/gS3/AHKjAAAdcN/fwn3/ANaWAAAeNPb26MP/AKKLAAB5JurH6uX/AH+EAAB4X82AzcH/AMR+AAB8pZc1l4//AF96AAB8/GYBZl7/AFO/AAAX7IyMUQr/ADmwAAAYwr+/gS3/ADGiAAAdcN/fwn3/AJWVAAAeNPb26MP/AGGKAAAAAPX19fX/AD6DAAB5JurH6uX/AIN9AAB4X82AzcH/AB55AAB8pZc1l4//AA12AAB8/GYBZl7/ADjHAACHFPnl9fn/AB64AAB1StiZ2Mn/ABaqAABnuaIsol//ANjFAACIDvvt+Pv/AL62AAB/NuKy4uL/ALaoAABxeMJmwqT/ABqcAABivosji0X/AHjEAACIDvvt+Pv/AF61AAB/NuKy4uL/AFanAABxeMJmwqT/ALqaAABnuaIsol//AIaPAABm/20AbSz/ABjDAACIDvvt+Pv/AP6zAAB3IuzM7Ob/APalAAB1StiZ2Mn/AFqZAABxeMJmwqT/ACaOAABnuaIsol//AAOHAABm/20AbSz/ALjBAACIDvvt+Pv/AJ6yAAB3IuzM7Ob/AJakAAB1StiZ2Mn/APqXAABxeMJmwqT/AMaMAABpn65Brnb/AKOFAABivosji0X/AOh/AABm/1gAWCT/AFjAAACGBv33/P3/AD6xAACHFPnl9fn/ADajAAB3IuzM7Ob/AJqWAAB1StiZ2Mn/AGaLAABxeMJmwqT/AEOEAABpn65Brnb/AIh+AABivosji0X/ACN6AABm/1gAWCT/ABe/AACGBv33/P3/AP2vAACHFPnl9fn/APWhAAB3IuzM7Ob/AFmVAAB1StiZ2Mn/ACWKAABxeMJmwqT/AAKDAABpn65Brnb/AEd9AABivosji0X/AOJ4AABm/20AbSz/ANF1AABl/0QARBv/AIvGAACQFPTg7PT/AHG3AACURtqevNr/AGmpAADEe6eIVqf/ACvFAACIDvvt+Pv/ABG2AACSNeOzzeP/AAmoAACiSsaMlsb/AG2bAADKlZ2IQZ3/AMvDAACIDvvt+Pv/ALG0AACSNeOzzeP/AKmmAACiSsaMlsb/AA2aAADEe6eIVqf/ANmOAADW4YGBD3z/AGvCAACIDvvt+Pv/AFGzAACUK+a/0+b/AEmlAACURtqevNr/AK2YAACiSsaMlsb/AHmNAADEe6eIVqf/AFaGAADW4YGBD3z/AAvBAACIDvvt+Pv/APGxAACUK+a/0+b/AOmjAACURtqevNr/AE2XAACiSsaMlsb/ABmMAAC+ZLGMa7H/APaEAADKlZ2IQZ3/ADt/AADV/G5uAWv/AKu/AACGBv33/P3/AJGwAACQFPTg7PT/AImiAACUK+a/0+b/AO2VAACURtqevNr/ALmKAACiSsaMlsb/AJaDAAC+ZLGMa7H/ANt9AADKlZ2IQZ3/AHZ5AADV/G5uAWv/AHW+AACGBv33/P3/AFuvAACQFPTg7PT/AFOhAACUK+a/0+b/ALeUAACURtqevNr/AIOJAACiSsaMlsb/AGCCAAC+ZLGMa7H/AKV8AADKlZ2IQZ3/AEB4AADW4YGBD3z/AC91AADV/01NAEv/AMPHAABy054bnnf/AKm4AAAS/NnZXwL/AKGqAACtX7N1cLP/AGPGAABy054bnnf/AEm3AAAS/NnZXwL/AEGpAACtX7N1cLP/AKWcAADp0efnKYr/AAPFAABy054bnnf/AOm1AAAS/NnZXwL/AOGnAACtX7N1cLP/AEWbAADp0efnKYr/ABGQAAA+0KZmph7/AKPDAABy054bnnf/AIm0AAAS/NnZXwL/AIGmAACtX7N1cLP/AOWZAADp0efnKYr/ALGOAAA+0KZmph7/AI6HAAAf/ObmqwL/AEPCAABy054bnnf/ACmzAAAS/NnZXwL/ACGlAACtX7N1cLP/AIWYAADp0efnKYr/AFGNAAA+0KZmph7/AC6GAAAf/ObmqwL/AHOAAAAb0qamdh3/AOPAAABy054bnnf/AMmxAAAS/NnZXwL/AMGjAACtX7N1cLP/ACWXAADp0efnKYr/APGLAAA+0KZmph7/AM6EAAAf/ObmqwL/ABN/AAAb0qamdh3/AK56AAAAAGZmZmb/ALHGAABMGfPg89v/AJe3AABfPd2o3bX/AI+pAACMqspDosr/AFHFAABBEfnw+ej/ADe2AABXLuS65Lz/AC+oAAB7Zcx7zMT/AJObAACNxb4rjL7/APHDAABBEfnw+ej/ANe0AABXLuS65Lz/AM+mAAB7Zcx7zMT/ADOaAACMqspDosr/AP+OAACR86wIaKz/AJHCAABBEfnw+ej/AHezAABNKevM68X/AG+lAABfPd2o3bX/ANOYAAB7Zcx7zMT/AJ+NAACMqspDosr/AHyGAACR86wIaKz/ADHBAABBEfnw+ej/ABeyAABNKevM68X/AA+kAABfPd2o3bX/AHOXAAB7Zcx7zMT/AD+MAACJoNNOs9P/AByFAACNxb4rjL7/AGF/AACT8p4IWJ7/ANG/AAA8DPz3/PD/ALewAABMGfPg89v/AK+iAABNKevM68X/ABOWAABfPd2o3bX/AN+KAAB7Zcx7zMT/ALyDAACJoNNOs9P/AAF+AACNxb4rjL7/AJx5AACT8p4IWJ7/AJu+AAA8DPz3/PD/AIGvAABMGfPg89v/AHmhAABNKevM68X/AN2UAABfPd2o3bX/AKmJAAB7Zcx7zMT/AIaCAACJoNNOs9P/AMt8AACNxb4rjL7/AGZ4AACR86wIaKz/AFV1AACW74EIQIH/AOPGAABKFfXl9eD/AMm3AABQSNmh2Zv/AMGpAABisqMxo1T/AIPFAABJD/jt+On/AGm2AABONuS65LP/AGGoAABWaMR0xHb/AMWbAABivosji0X/ACPEAABJD/jt+On/AAm1AABONuS65LP/AAGnAABWaMR0xHb/AGWaAABisqMxo1T/ADGPAABm/20AbSz/AMPCAABJD/jt+On/AKmzAABNLOnH6cD/AKGlAABQSNmh2Zv/AAWZAABWaMR0xHb/ANGNAABisqMxo1T/AK6GAABm/20AbSz/AGPBAABJD/jt+On/AEmyAABNLOnH6cD/AEGkAABQSNmh2Zv/AKWXAABWaMR0xHb/AHGMAABgnqtBq13/AE6FAABivosji0X/AJN/AABs/1oAWjL/AAPAAABIB/z3/PX/AOmwAABKFfXl9eD/AOGiAABNLOnH6cD/AEWWAABQSNmh2Zv/ABGLAABWaMR0xHb/AO6DAABgnqtBq13/ADN+AABivosji0X/AM55AABs/1oAWjL/AMK+AABIB/z3/PX/AKivAABKFfXl9eD/AKChAABNLOnH6cD/AASVAABQSNmh2Zv/ANCJAABWaMR0xHb/AK2CAABgnqtBq13/APJ8AABivosji0X/AI14AABm/20AbSz/AHx1AABl/0QARBv/ANnGAAAAAPDw8PD/AL+3AAAAAL29vb3/ALepAAAAAGNjY2P/AHnFAAAAAPf39/f/AF+2AAAAAMzMzMz/AFeoAAAAAJaWlpb/ALubAAAAAFJSUlL/ABnEAAAAAPf39/f/AP+0AAAAAMzMzMz/APemAAAAAJaWlpb/AFuaAAAAAGNjY2P/ACePAAAAACUlJSX/ALnCAAAAAPf39/f/AJ+zAAAAANnZ2dn/AJelAAAAAL29vb3/APuYAAAAAJaWlpb/AMeNAAAAAGNjY2P/AKSGAAAAACUlJSX/AFnBAAAAAPf39/f/AD+yAAAAANnZ2dn/ADekAAAAAL29vb3/AJuXAAAAAJaWlpb/AGeMAAAAAHNzc3P/AESFAAAAAFJSUlL/AIl/AAAAACUlJSX/APm/AAAAAP//////AN+wAAAAAPDw8PD/ANeiAAAAANnZ2dn/ADuWAAAAAL29vb3/AAeLAAAAAJaWlpb/AOSDAAAAAHNzc3P/ACl+AAAAAFJSUlL/AMR5AAAAACUlJSX/ALi+AAAAAP//////AJ6vAAAAAPDw8PD/AJahAAAAANnZ2dn/APqUAAAAAL29vb3/AMaJAAAAAJaWlpb/AKOCAAAAAHNzc3P/AOh8AAAAAFJSUlL/AIN4AAAAACUlJSX/AHJ1AAAAAAAAAAD/AATHAAAVMP7+5s7/AOq3AAATk/39rmv/AOKpAAAO8ObmVQ3/AKTFAAATIP7+7d7/AIq2AAAUeP39voX/AIKoAAARwv39jTz/AOabAAAN/dnZRwH/AETEAAATIP7+7d7/ACq1AAAUeP39voX/ACKnAAARwv39jTz/AIaaAAAO8ObmVQ3/AFKPAAAN+qamNgP/AOTCAAATIP7+7d7/AMqzAAAVW/390KL/AMKlAAATk/39rmv/ACaZAAARwv39jTz/APKNAAAO8ObmVQ3/AM+GAAAN+qamNgP/AITBAAATIP7+7d7/AGqyAAAVW/390KL/AGKkAAATk/39rmv/AMaXAAARwv39jTz/AJKMAAAQ6vHxaRP/AG+FAAAN/dnZSAH/ALR/AAAM94yMLQT/ACTAAAAVFP//9ev/AAqxAAAVMP7+5s7/AAKjAAAVW/390KL/AGaWAAATk/39rmv/ADKLAAARwv39jTz/AA+EAAAQ6vHxaRP/AFR+AAAN/dnZSAH/AO95AAAM94yMLQT/AOO+AAAVFP//9ev/AMmvAAAVMP7+5s7/AMGhAAAVW/390KL/ACWVAAATk/39rmv/APGJAAARwv39jTz/AM6CAAAQ6vHxaRP/ABN9AAAN/dnZSAH/AK54AAAN+qamNgP/AJ11AAAM9n9/JwT/AJHHAAAZNv7+6Mj/AHe4AAATef39u4T/AG+qAAAFxePjSjP/ADHGAAAaJf7+8Nn/ABe3AAAYc/39zIr/AA+pAAANpPz8jVn/AHOcAAAD2tfXMB//ANHEAAAaJf7+8Nn/ALe1AAAYc/39zIr/AK+nAAANpPz8jVn/ABObAAAFxePjSjP/AN+PAAAA/7OzAAD/AHHDAAAaJf7+8Nn/AFe0AAAYX/391J7/AE+mAAATef39u4T/ALOZAAANpPz8jVn/AH+OAAAFxePjSjP/AFyHAAAA/7OzAAD/ABHCAAAaJf7+8Nn/APeyAAAYX/391J7/AO+kAAATef39u4T/AFOYAAANpPz8jVn/AB+NAAAHsu/vZUj/APyFAAAD2tfXMB//AEGAAAAA/5mZAAD/ALHAAAAYEv//9+z/AJexAAAZNv7+6Mj/AI+jAAAYX/391J7/APOWAAATef39u4T/AL+LAAANpPz8jVn/AJyEAAAHsu/vZUj/AOF+AAAD2tfXMB//AHx6AAAA/5mZAAD/AHC/AAAYEv//9+z/AFawAAAZNv7+6Mj/AE6iAAAYX/391J7/ALKVAAATef39u4T/AH6KAAANpPz8jVn/AFuDAAAHsu/vZUj/AKB9AAAD2tfXMB//ADt5AAAA/7OzAAD/ACp2AAAA/39/AAD/ANLIAACOROOmzuP/AA7NAAC+mZpqPZr/ALi5AACQ07QfeLT/ALCrAABBYd+y34r/ALSdAABSuKAzoCz/ACCRAAAAY/v7mpn/AJ2IAAD+4ePjGhz/AIKBAAAXj/39v2//AL17AAAV////fwD/AEx3AADGKtbKstb/AFrIAACOROOmzuP/AIvMAAC+mZpqPZr/ADq+AAAqZv///5n/AEC5AACQ07QfeLT/ADirAABBYd+y34r/ADydAABSuKAzoCz/AKiQAAAAY/v7mpn/ACWIAAD+4ePjGhz/AAqBAAAXj/39v2//AEV7AAAV////fwD/ANR2AADGKtbKstb/AOLHAACOROOmzuP/AAjMAAC+mZpqPZr/ALe9AAAqZv///5n/ADqvAAAPxbGxWSj/AMi4AACQ07QfeLT/AMCqAABBYd+y34r/AMScAABSuKAzoCz/ADCQAAAAY/v7mpn/AK2HAAD+4ePjGhz/AJKAAAAXj/39v2//AM16AAAV////fwD/AFx2AADGKtbKstb/AJrHAACOROOmzuP/AIC4AACQ07QfeLT/AHiqAABBYd+y34r/ADrGAACOROOmzuP/ACC3AACQ07QfeLT/ABipAABBYd+y34r/AHycAABSuKAzoCz/ANrEAACOROOmzuP/AMC1AACQ07QfeLT/ALinAABBYd+y34r/ABybAABSuKAzoCz/AOiPAAAAY/v7mpn/AHrDAACOROOmzuP/AGC0AACQ07QfeLT/AFimAABBYd+y34r/ALyZAABSuKAzoCz/AIiOAAAAY/v7mpn/AGWHAAD+4ePjGhz/ABrCAACOROOmzuP/AACzAACQ07QfeLT/APikAABBYd+y34r/AFyYAABSuKAzoCz/ACiNAAAAY/v7mpn/AAWGAAD+4ePjGhz/AEqAAAAXj/39v2//ALrAAACOROOmzuP/AKCxAACQ07QfeLT/AJijAABBYd+y34r/APyWAABSuKAzoCz/AMiLAAAAY/v7mpn/AKWEAAD+4ePjGhz/AOp+AAAXj/39v2//AIV6AAAV////fwD/AHm/AACOROOmzuP/AF+wAACQ07QfeLT/AFei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AADSFejn1Oj/AGWIAABMHvDZ8NP/AEqBAABQRNum26D/AIV7AABYe65armH/ABR3AABhxXgbeDf/ACLIAADO/0tAAEv/AE7MAABhxXgbeDf/AP29AABl/0QARBv/AAi5AADOrYN2KoP/AACrAADHV6uZcKv/AASdAADHM8/Cpc//AHCQAADSFejn1Oj/AO2HAAAAAPf39/f/ANKAAABMHvDZ8NP/AA17AABQRNum26D/AJx2AABYe65armH/AEHHAADERsOvjcP/ACe4AAAAAPf39/f/AB+qAABSWr9/v3v/AOHFAADJqJR7MpT/AMe2AADHM8/Cpc//AL+oAABQRNum26D/ACOcAABm/4gAiDf/AIHEAADJqJR7MpT/AGe1AADHM8/Cpc//AF+nAAAAAPf39/f/AMOaAABQRNum26D/AI+PAABm/4gAiDf/ACHDAADOrYN2KoP/AAe0AADERsOvjcP/AP+lAADSFejn1Oj/AGOZAABMHvDZ8NP/AC+OAABSWr9/v3v/AAyHAABhxXgbeDf/AMHBAADOrYN2KoP/AKeyAADERsOvjcP/AJ+kAADSFejn1Oj/AAOYAAAAAPf39/f/AM+MAABMHvDZ8NP/AKyFAABSWr9/v3v/APF/AABhxXgbeDf/AGHAAADOrYN2KoP/AEexAADHV6uZcKv/AD+jAADHM8/Cpc//AKOWAADSFejn1Oj/AG+LAABMHvDZ8NP/AEyEAABQRNum26D/AJF+AABYe65armH/ACx6AABhxXgbeDf/ACC/AADOrYN2KoP/AAawAADHV6uZcKv/AP6hAADHM8/Cpc//AGKVAADSFejn1Oj/AC6KAAAAAPf39/f/AAuDAABMHvDZ8NP/AFB9AABQRNum26D/AOt4AABYe65armH/ANp1AABhxXgbeDf/AJ3GAAC9C/Ls5/L/AIO3AACXPdumvdv/AHupAACNxb4rjL7/AD3FAAC5CPbx7vb/ACO2AACbKOG9yeH/ABuoAACRcM90qc//AH+bAACP97AFcLD/AN3DAAC5CPbx7vb/AMO0AACbKOG9yeH/ALumAACRcM90qc//AB+aAACNxb4rjL7/AOuOAACP940EWo3/AH3CAAC5CPbx7vb/AGOzAACoGObQ0eb/AFulAACXPdumvdv/AL+YAACRcM90qc//AIuNAACNxb4rjL7/AGiG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AAALm/z8jWL/AMynAACcTcuNoMv/ADCbAADkZufnisP/APyPAAA6m9im2FT/AI7DAAByeMJmwqX/AHS0AAALm/z8jWL/AGymAACcTcuNoMv/ANCZAADkZufnisP/AJyOAAA6m9im2FT/AHmHAAAi0P//2S//AC7CAAByeMJmwqX/ABSzAAALm/z8jWL/AAylAACcTcuNoMv/AHCYAADkZufnisP/ADyNAAA6m9im2FT/ABmGAAAi0P//2S//AF6AAAAZWuXlxJT/AM7AAAByeMJmwqX/ALSxAAALm/z8jWL/AKyjAACcTcuNoMv/ABCXAADkZufnisP/ANyLAAA6m9im2FT/ALmEAAAi0P//2S//AP5+AAAZWuXlxJT/AJl6AAAAALOzs7P/AN7IAAB4VNON08f/ABvNAADTUr28gL3/AMS5AAAqTP///7P/ALyrAACvJdq+utr/AMCdAAAEi/v7gHL/ACyRAACQZNOAsdP/AKmIAAAWnP39tGL/AI6BAAA6ht6z3mn/AMl7AADpL/z8zeX/AFh3AAAAANnZ2dn/AGbIAAB4VNON08f/AJjMAADTUr28gL3/AEe+AABNKevM68X/AEy5AAAqTP///7P/AESrAACvJdq+utr/AEidAAAEi/v7gHL/ALSQAACQZNOAsdP/ADGIAAAWnP39tGL/ABaBAAA6ht6z3mn/AFF7AADpL/z8zeX/AOB2AAAAANnZ2dn/AO7HAAB4VNON08f/ABXMAADTUr28gL3/AMS9AABNKevM68X/AEevAAAlkP//7W//ANS4AAAqTP///7P/AMyqAACvJdq+utr/ANCcAAAEi/v7gHL/ADyQAACQZNOAsdP/ALmHAAAWnP39tGL/AJ6AAAA6ht6z3mn/ANl6AADpL/z8zeX/AGh2AAAAANnZ2dn/AKXHAAB4VNON08f/AIu4AAAqTP///7P/AIOqAACvJdq+utr/AEXGAAB4VNON08f/ACu3AAAqTP///7P/ACOpAACvJdq+utr/AIecAAAEi/v7gHL/AOXEAAB4VNON08f/AMu1AAAqTP///7P/AMOnAACvJdq+utr/ACebAAAEi/v7gHL/APOPAACQZNOAsdP/AIXDAAB4VNON08f/AGu0AAAqTP///7P/AGOmAACvJdq+utr/AMeZAAAEi/v7gHL/AJOOAACQZNOAsdP/AHCHAAAWnP39tGL/ACXCAAB4VNON08f/AAuzAAAqTP///7P/AAOlAACvJdq+utr/AGeYAAAEi/v7gHL/ADONAACQZNOAsdP/ABCGAAAWnP39tGL/AFWAAAA6ht6z3mn/AMXAAAB4VNON08f/AKuxAAAqTP///7P/AKOjAACvJdq+utr/AAeXAAAEi/v7gHL/ANOLAACQZNOAsdP/ALCEAAAWnP39tGL/APV+AAA6ht6z3mn/AJB6AADpL/z8zeX/AIS/AAB4VNON08f/AGqwAAAqTP///7P/AGKiAACvJdq+utr/AMaVAAAEi/v7gHL/AJKKAACQZNOAsdP/AG+DAAAWnP39tGL/ALR9AAA6ht6z3mn/AE95AADpL/z8zeX/AD52AAAAANnZ2dn/ALDIAADt/Z6eAUL/AOnMAACxgqJeT6L/AJa5AAD6tNXVPk//AI6rAAAKuPT0bUP/AJKdAAAUnf39rmH/AP6QAAAfc/7+4Iv/AHuIAAAxYPXm9Zj/AGCBAABPQd2r3aT/AJt7AAByeMJmwqX/ACp3AACPu70yiL3/ADjIAADt/Z6eAUL/AGbMAACPu70yiL3/ABW+AACxgqJeT6L/AB65AAD6tNXVPk//ABarAAAKuPT0bUP/ABqdAAAUnf39rmH/AIaQAAAfc/7+4Iv/AAOIAAAqQP///7//AOiAAAAxYPXm9Zj/ACN7AABPQd2r3aT/ALJ2AAByeMJmwqX/AF7HAAANpPz8jVn/AES4AAAqQP///7//ADyqAABRTdWZ1ZT/AP7FAAD+4dfXGRz/AOS2AAAUnf39rmH/ANyoAABPQd2r3aT/AECcAACPxLorg7r/AJ7EAAD+4dfXGRz/AIS1AAAUnf39rmH/AHynAAAqQP///7//AOCaAABPQd2r3aT/AKyPAACPxLorg7r/AD7DAAD6tNXVPk//ACS0AAANpPz8jVn/ABymAAAfc/7+4Iv/AICZAAAxYPXm9Zj/AEyOAABRTdWZ1ZT/ACmHAACPu70yiL3/AN7BAAD6tNXVPk//AMSyAAANpPz8jVn/ALykAAAfc/7+4Iv/ACCYAAAqQP///7//AOyMAAAxYPXm9Zj/AMmFAABRTdWZ1ZT/AA6AAACPu70yiL3/AH7AAAD6tNXVPk//AGSxAAAKuPT0bUP/AFyjAAAUnf39rmH/AMCWAAAfc/7+4Iv/AIyLAAAxYPXm9Zj/AGmEAABPQd2r3aT/AK5+AAByeMJmwqX/AEl6AACPu70yiL3/AD2/AAD6tNXVPk//ACOwAAAKuPT0bUP/ABuiAAAUnf39rmH/AH+VAAAfc/7+4Iv/AEuKAAAqQP///7//ACiDAAAxYPXm9Zj/AG19AABPQd2r3aT/AAh5AAByeMJmwqX/APd1AACPu70yiL3/AFFLAACTD//w+P//ALVMAAAYI/r669f/ALVkAAB///8A////ACVPAABxgP9//9T/AE1OAAB/D//w////APFRAAAqGvX19dz/ADhJAAAXOv//5MT/AGs9AAAAAAAAAAD/AKlVAAAZMf//683/AGBLAACq//8AAP//AIURAADAzuKKK+L/AOYyAAAAvqWlKir/ACNVAAAXY97euIf/AGZKAACAZ6BfnqD/AFlNAAA///9//wD/ADZNAAAR2tLSaR7/AGU7AAALr///f1D/AHVKAACak+1kle3/ABY9AAAhIv//+Nz/ADQzAAD259zcFDz/AH03AAB///8A////APRKAACq/4sAAIv/AG83AAB//4sAi4v/AO5UAAAe77i4hgv/AG8IAAAAAKmpqan/AI02AABV/2QAZAD/AKQHAAAAAKmpqan/AH8+AAAnbr29t2v/AMlkAADU/4uLAIv/AMQ2AAA6jmtVay//ANVRAAAX////jAD/AIdXAADGwMyZMsz/AFZZAAAA/4uLAAD/ALQzAAAKeenplnr/ACY3AABVPbyPvI//AC9LAACvj4tIPYv/AJEIAAB/Z08vT0//AMYHAAB/Z08vT0//ABJOAACA/9EAztH/AHURAADH/9OUANP/ALY8AADo6///FJP/ABdKAACK//8Av///AGIIAAAAAGlpaWn/AJcHAAAAAGlpaWn/AIlKAACU4f8ekP//AE89AAAAzrKyIiL/AKRMAAAcD///+vD/AFA2AABVwIsiiyL/AI5lAADU////AP//ANwxAAAAANzc3Nz/AINMAACqB//4+P//AMxWAAAj////1wD/ABRVAAAe2drapSD/AMMIAAAAAICAgID/AE83AABV/4AAgAD/AJYKAAA70P+t/y//APgHAAAAAICAgID/AJ8LAABVD//w//D/AJo8AADplv//abT/AEdZAAAAjM3NXFz/ADoyAADC/4JLAIL/AH4GAAAqD/////D/AI4+AAAmavDw5oz/AN8fAACqFPrm5vr/AM0/AADwD///8PX/AH42AABA//x8/AD/AAI1AAAmMf//+s3/AFdKAACJP+at2Ob/AFU7AAAAd/DwgID/AGA3AAB/H//g////AKcKAAAqKPr6+tL/AFMIAAAAANPT09P/AGE2AABVZO6Q7pD/AIgHAAAAANPT09P/AKc8AAD4Sf//tsH/AKMzAAAMhP//oHr/AP82AAB90bIgsqr/AAVKAACPdfqHzvr/AH0IAACUOJl3iJn/ALIHAACUOJl3iJn/AMJKAACXNN6wxN7/AIUKAAAqH////+D/AK1PAABV//8A/wD/ANg2AABVwM0yzTL/APo1AAAVFPr68Ob/ANpkAADU////AP//AJczAAAA/4CAAAD/AA9PAABxgM1mzar/ALJKAACq/80AAM3/AHVXAADMmNO6VdP/AHVQAAC3fNuTcNv/ABI3AABnqbM8s3H/ABpLAACwj+57aO7/AJw2AABv//oA+pr/AP1NAAB9p9FI0cz/ALJYAADk5MfHFYX/AEVKAACqxnAZGXD/AF85AABqCf/1//r/AJdNAAAEHv//5OH/ACo1AAAaSf//5LX/AJNMAAAZUf//3q3/AIwEAACq/4AAAID/AHlUAAAbF/399eb/AOJIAAAq/4CAgAD/AJ9kAAA4wI5rjiP/AOVRAAAb////pQD/AKlZAAAL////RQD/AJdXAADWe9racNb/AAFVAAAmSO7u6Kr/AOc2AABVZPuY+5j/ACVOAAB/Q+6v7u7/AMdYAADxfNvbcJP/ADAwAAAaKf//79X/AGNGAAAURv//2rn/ABgMAAAUsM3NhT//AM08AAD3P///wMv/ANk4AADURt3doN3/AJlKAACEO+aw4Ob/ANFQAADU/4CAAID/APNZAAAA////AAD/AKgyAAAAPby8j4//AOVKAACfteFBaeH/ANUyAAAR3IuLRRP/AMQzAAAEivr6gHL/ALcyAAATmvT0pGD/ADg3AABnqosui1f/ABg6AAAREP//9e7/AFRlAAANt6CgUi3/ALMeAAAAAMDAwMD/AChKAACLbOuHzuv/AEJLAACvj81qWs3/AKQIAACUOJBwgJD/ANkHAACUOJBwgJD/AFoKAAAABf//+vr/ALM2AABq//8A/3//ANZKAACSm7RGgrT/AJY3AAAYVNLStIz/APA7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AAA///9//wD/AKGtAAA//+527gD/ALifAAA//81mzQD/AAeTAAA//4tFiwD/ADtNAAAR2tLSaR7/AAm8AAAR2///fyT/AJatAAAR2+7udiH/AK2fAAAR2s3NZh3/APySAAAR3IuLRRP/AGo7AAALr///f1D/ABO7AAAHqf//clb/AK2sAAAGqe7ualD/AMyeAAAGqc3NW0X/ABuSAAAGqIuLPi//AHpKAACak+1kle3/ABs9AAAhIv//+Nz/ADi7AAAhIv//+Nz/ANKsAAAiI+7u6M3/APGeAAAiIs3NyLH/AECSAAAjIouLiHj/ADkzAAD259zcFDz/AII3AAB///8A////APi6AAB///8A////AJKsAAB//+4A7u7/ALGeAAB//80Azc3/AACSAAB//4sAi4v/APlKAACq/4sAAIv/AHQ3AAB//4sAi4v/APNUAAAe77i4hgv/AJG8AAAe8P//uQ//AA2uAAAe8O7urQ7/ACSgAAAe8M3NlQz/AHqTAAAe8IuLZQj/AHQIAAAAAKmpqan/AJI2AABV/2QAZAD/AKkHAAAAAKmpqan/AIQ+AAAnbr29t2v/AM5kAADU/4uLAIv/AMk2AAA6jmtVay//AMq6AAA6j//K/3D/AGSsAAA6j+687mj/AIOeAAA6j82izVr/ANKRAAA6j4tuiz3/ANpRAAAX////jAD/AGS8AAAV////fwD/APGtAAAV/+7udgD/AAigAAAV/83NZgD/AF6TAAAV/4uLRQD/AIxXAADGwMyZMsz/AL+8AADGwf+/Pv//ADuuAADGwO6yOu7/AFKgAADGwM2aMs3/AKiTAADGwItoIov/AFtZAAAA/4uLAAD/ALkzAAAKeenplnr/ACs3AABVPbyPvI//AOW6AABVPv/B/8H/AH+sAABVPu607rT/AJ6eAABVPs2bzZv/AO2RAABVPotpi2n/ADRLAACvj4tIPYv/AJYIAAB/Z08vT0//AC66AAB/aP+X////ANOrAAB/Z+6N7u7/AASeAAB/aM15zc3/AFiRAAB/aItSi4v/AMsHAAB/Z08vT0//ABdOAACA/9EAztH/AHoRAADH/9OUANP/ALs8AADo6///FJP/AC67AADo6///FJP/AMisAADo6+7uEon/AOeeAADo683NEHb/ADaSAADn7IuLClD/ABxKAACK//8Av///AJm7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AACfts06X83/AMuSAACft4snQIv/ANoyAAAR3IuLRRP/AMkzAAAEivr6gHL/AJi6AAAJlv//jGn/AEGsAAAJlu7ugmL/AGCeAAAJls3NcFT/AK+RAAAJlouLTDn/ALwyAAATmvT0pGD/AD03AABnqosui1f/AOm6AABnq/9U/5//AIOsAABnq+5O7pT/AKKeAABnq81DzYD/APGRAABnqosui1f/AB06AAAREP//9e7/AAm7AAAREP//9e7/AKOsAAASEe7u5d7/AMKeAAASEc3Nxb//ABGSAAASEIuLhoL/AFllAAANt6CgUi3/AAS9AAANuP//gkf/AICuAAANuO7ueUL/AJegAAANuM3NaDn/AO2TAAANuYuLRyb/ALgeAAAAAMDAwMD/AC1KAACLbOuHzuv/AJ27AACQeP+Hzv//ACqtAACQeO5+wO7/AEGfAACQeM1sps3/AJCSAACRd4tKcIv/AEdLAACvj81qWs3/AOO7AACvkP+Db///AHCtAACvkO56Z+7/AIefAACvkM1pWc3/ANaSAACvkItHPIv/AKkIAACUOJBwgJD/ADK6AACVOP/G4v//ANerAACVOO650+7/AAieAACUOc2fts3/AFyRAACVOItse4v/AN4HAACUOJBwgJD/AF8KAAAABf//+vr/AEG6AAAABf//+vr/AOarAAAABe7u6en/ABeeAAAABM3Nycn/AGuRAAAAA4uLiYn/ALg2AABq//8A/3//AL26AABq//8A/3//AFesAABq/+4A7nb/AHaeAABq/80AzWb/AMWRAABq/4sAi0X/ANtKAACSm7RGgrT/AM27AACSnP9juP//AFqtAACSnO5crO7/AHGfAACSnM1PlM3/AMCSAACTm4s2ZIv/AJs3AAAYVNLStIz/AP66AAAUsP//pU//AJisAAAUsO7umkn/ALeeAAAUsM3NhT//AAaSAAAUsIuLWiv/APU7AAB//4AAgID/AGdQAADUHdjYv9j/AE28AADUHv//4f//ANqtAADUHu7u0u7/APGfAADUHc3Ntc3/AEeTAADUHYuLe4v/AMoxAAAGuP//Y0f/AHi6AAAGuP//Y0f/ACGsAAAGuO7uXEL/AECeAAAGuM3NTzn/AI+RAAAGuYuLNib/ACMQAAAqAP////4AAD1OAAB7tuBA4ND/AC+8AACB//8A9f//ALytAACB/+4A5e7/ANOfAACB/80Axc3/ACKTAACB/4sAhov/AJoRAADUc+7ugu7/ANBYAADj19DQIJD/AM+8AADrwf//Ppb/AEuuAADrwO7uOoz/AGKgAADrwM3NMnj/ALiTAADrwIuLIlL/ALMIAAAAAICAgID/APY2AABV/4AAgAD/AOgHAAAAAICAgID/AIMzAAAA/4CAAAD/AJJQAADU/4CAAID/AHIUAAAbRPX13rP/AGe6AAAbRf//57r/ABCsAAAbRO7u2K7/ADSeAAAbRM3Nupb/AIiRAAAbQ4uLfmb/AMxMAAAAAP//////ALtRAAAAAPX19fX/ALsIAAAAAL6+vr7/AEY3AABV//8A/wD/APAHAAAAAL6+vr7/AI0zAADvubCwMGD/AMdQAADE3fCgIPD/AMYKAAAq/////wD/AEy6AAAq/////wD/APGrAAAq/+7u7gD/ACKeAAAq/83NzQD/AHaRAAAq/4uLiwD/ADI2AAA4wM2azTL/AEGwjQcLA7R7AgBBvo0HC4UIoED/////////////////////////////////////////////////////////////////////////////////////AAKqAkQDAAQABKoGOQZxAaoCqgIABIMEAAKqAgACOQIABAAEAAQABAAEAAQABAAEAAQABDkCOQKDBIMEgwSNA14HxwVWBVYFxwXjBHMExwXHBaoCHQPHBeMEHQfHBccFcwTHBVYFcwTjBMcFxwWNB8cFxwXjBKoCOQKqAsEDAASqAo0DAASNAwAEjQOqAgAEAAQ5AjkCAAQ5AjkGAAQABAAEAASqAh0DOQIABAAExwUABAAEjQPXA5oB1wNUBP///////////////////////////////////////////////////////////////////////////////////////wACqgJxBAAEAAQACKoGOQKqAqoCAASPBAACqgIAAjkCAAQABAAEAAQABAAEAAQABAAEAASqAqoCjwSPBI8EAARxB8cFVgXHBccFVgXjBDkGOQYdAwAEOQZWBY0HxwU5BuMEOQbHBXMEVgXHBccFAAjHBccFVgWqAjkCqgKmBAAEqgIABHMEjQNzBI0DqgIABHMEOQKqAnMEOQKqBnMEAARzBHMEjQMdA6oCcwQABMcFAAQABI0DJwPDAScDKQT///////////////////////////////////////////////////////////////////////////////////////8AAqoCXAMABAAEqgY5BrYBqgKqAgAEZgUAAqoCAAI5AgAEAAQABAAEAAQABAAEAAQABAAEqgKqAmYFZgVmBQAEXAfjBOMEVgXHBeME4wTHBccFqgKNA1YFcwSqBlYFxwXjBMcF4wQABHMExwXjBKoG4wRzBHMEHQM5Ah0DYAMABKoCAAQABI0DAASNAzkCAAQABDkCOQKNAzkCxwUABAAEAAQABB0DHQM5AgAEjQNWBY0DjQMdAzMDMwIzA1QE////////////////////////////////////////////////////////////////////////////////////////AAIdA3EEAAQABKoGOQY5AqoCqgIABI8EAAKqAgACOQIABAAEAAQABAAEAAQABAAEAAQABKoCqgKPBI8EjwQABKgGVgVWBVYFxwVWBVYFxwU5Bh0DAARWBeMEHQfHBccF4wTHBVYFcwTjBMcFVgUdB1YF4wTjBKoCOQKqAo8EAASqAgAEAASNAwAEjQOqAgAEcwQ5AjkCAAQ5AjkGcwQABAAEAAQdAx0DOQJzBI0DVgUABI0DHQPJAsMByQKPBP//3HsCAEHOlQcLhQigQP////////////////////////////////////////////////////////////////////////////////////85AjkC1wJzBHMEHQdWBYcBqgKqAh0DrAQ5AqoCOQI5AnMEcwRzBHMEcwRzBHMEcwRzBHMEOQI5AqwErASsBHMEHwhWBVYFxwXHBVYF4wQ5BscFOQIABFYFcwSqBscFOQZWBTkGxwVWBeMExwVWBY0HVgVWBeMEOQI5AjkCwQNzBKoCcwRzBAAEcwRzBDkCcwRzBMcBxwEABMcBqgZzBHMEcwRzBKoCAAQ5AnMEAATHBQAEAAQABKwCFAKsAqwE////////////////////////////////////////////////////////////////////////////////////////OQKqAssDcwRzBB0HxwXnAaoCqgIdA6wEOQKqAjkCOQJzBHMEcwRzBHMEcwRzBHMEcwRzBKoCqgKsBKwErATjBM0HxwXHBccFxwVWBeMEOQbHBTkCcwTHBeMEqgbHBTkGVgU5BscFVgXjBMcFVgWNB1YFVgXjBKoCOQKqAqwEcwSqAnME4wRzBOMEcwSqAuME4wQ5AjkCcwQ5Ah0H4wTjBOME4wQdA3MEqgLjBHMEOQZzBHMEAAQdAz0CHQOsBP///////////////////////////////////////////////////////////////////////////////////////zkCOQLXAnMEcwQdB1YFhwGqAqoCHQOsBDkCqgI5AjkCcwRzBHMEcwRzBHMEcwRzBHMEcwQ5AjkCrASsBKwEcwQfCFYFVgXHBccFVgXjBDkGxwU5AgAEVgVzBKoGxwU5BlYFOQbHBVYF4wTHBVYFjQdWBVYF4wQ5AjkCOQLBA3MEqgJzBHMEAARzBHMEOQJzBHMExwHHAQAExwGqBnMEcwRzBHMEqgIABDkCcwQABMcFAAQABAAErAIUAqwCrAT///////////////////////////////////////////////////////////////////////////////////////85AqoCywNzBHMEHQfHBecBqgKqAh0DrAQ5AqoCOQI5AnMEcwRzBHMEcwRzBHMEcwRzBHMEqgKqAqwErASsBOMEzQfHBccFxwXHBVYF4wQ5BscFOQJzBMcF4wSqBscFOQZWBTkGxwVWBeMExwVWBY0HVgVWBeMEqgI5AqoCrARzBKoCcwTjBHME4wRzBKoC4wTjBDkCOQJzBDkCHQfjBOME4wTjBB0DcwSqAuMEcwQ5BnMEcwQABB0DPQIdA6wE//8QfAIAQd6dBwuFCKBA/////////////////////////////////////////////////////////////////////////////////////80EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQT////////////////////////////////////////////////////////////////////////////////////////NBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0E////////////////////////////////////////////////////////////////////////////////////////zQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBP///////////////////////////////////////////////////////////////////////////////////////80EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQT//zh8AgBB7aUHC4YIQI9AAAD///////////////////////////////8CAf///////////////////////////////////////////////wIB5ACIAVgCWAKiA7UC3QA9AT0BwgFYAuQAqAHkABsBWAJYAlgCWAJYAlgCWAJYAlgCWALkAOQAWAJYAlgCuwGyA9kCpAKhAuYCRwIkAtYC+QIBAUQBcQIfAlcD5AL/AnkC/wKdAmcCWgLYArECTQSKAlQCTQI7ARsBOwFYAvQB9AESAkcCzwFHAhQCTQFKAjgC6ADsAPQBKAFYAzgCLAJHAkcCZgHhAV4BMQIDAkkDDQICAs8BYAEJAWABWAL//wAA////////////////////////////////DwH///////////////////////////////////////////////8PAfgAwAFYAlgCsQPWAvMAZgFmAcUBWAL4ALIB+AA5AVgCWAJYAlgCWAJYAlgCWAJYAlgC+AD4AFgCWAJYAssBtgPoArACqAL6AlUCMgLgAgUDGgFiAZkCMgJkA+wCEQOMAhEDrgJ3Am0C4gLJAlkEoAJqAl0CYgE5AWIBWAL0AfQBIwJYAtgBWAIeAmwBXAJJAv8AAwEYAj8BbQNJAkACWAJYAogB6AGAAUMCDwJVAyICDgLaAYcBIAGHAVgC//8AAP///////////////////////////////wIB////////////////////////////////////////////////AgHkAIgBWAJYAqIDtQLdAD0BPQHCAVgC5ACoAeQAGwFYAlgCWAJYAlgCWAJYAlgCWAJYAuQA5ABYAlgCWAK7AbID2QKkAqEC5gJHAiQC1gL5AgEBRAFxAh8CWAPjAv8CeQL/Ap0CZwJaAtgCsAJNBIoCVAJNAjsBGwE7AVgC9AH0ARICRwLPAUcCFAJNAUoCOALoAOwA9AEoAVgDOAIsAkcCRwJmAeEBXgExAgMCSQMNAgICzwFgAQkBYAFYAv//AAD///////////////////////////////8PAf///////////////////////////////////////////////w8B+ADAAVgCWAKxA9YC8wBmAWYBxQFYAvgAsgH4ADkBWAJYAlgCWAJYAlgCWAJYAlgCWAL4APgAWAJYAlgCywG2A+gCsAKoAvoCVQIyAuACBQMaAWIBmAIyAmUD6wIRA4wCEQOuAncCbQLiAskCWQSgAmoCXQJiATkBYgFYAvQB9AEjAlgC2AFYAh4CbAFcAkkC/wADARgCPwFtA0kCQAJYAlgCiAHoAYABQwIPAlUDIgIOAtoBhwEgAYcBWAL//0B8AgBB/q0HC4UIoED/////////////////////////////////////////////////////////////////////////////////////iwI1A64DtAYXBZoHPQYzAh8DHwMABLQGiwLjAosCsgIXBRcFFwUXBRcFFwUXBRcFFwUXBbICsgK0BrQGtAY/BAAIeQV9BZYFKQYOBZoEMwYEBlwCXAI/BXUE5wb8BUwG0wRMBo8FFAXjBNsFeQXpB3sF4wR7BR8DsgIfA7QGAAQABOcEFAVmBBQF7ATRAhQFEgU5AjkCogQ5AssHEgXlBBQFFAVKAysEIwMSBbwEiwa8BLwEMwQXBbICFwW0Bv///////////////////////////////////////////////////////////////////////////////////////8kCpgMrBLQGkQUECPoGcwKoA6gDLwS0BgoDUgMKA+wCkQWRBZEFkQWRBZEFkQWRBZEFkQUzAzMDtAa0BrQGpAQACDEGGQbfBaQGdwV3BZEGsgb6AvoCMwYZBfYHsgbNBt0FzQYpBsMFdQV/BjEG0wgrBssFzQWoA+wCqAO0BgAEAARmBboFvgS6BW0FewO6BbIFvgK+AlIFvgJWCLIFfwW6BboF8gPDBNMDsgU3BWQHKQU3BagEsgXsArIFtAb///////////////////////////////////////////////////////////////////////////////////////+LAjUDrgO0BhcFmgc9BjMCHwMfAwAEtAaLAuMCiwKyAhcFFwUXBRcFFwUXBRcFFwUXBRcFsgKyArQGtAa0Bj8EAAh5BX0FlgUpBg4FmgQzBgQGXAJcAj8FdQTnBvwFTAbTBEwGjwUUBeME2wV5BekHewXjBHsFHwOyAh8DtAYABAAE5wQUBWYEFAXsBNECFAUSBTkCOQKiBDkCywcSBeUEFAUUBUoDKwQjAxIFvASLBrwEvAQzBBcFsgIXBbQG////////////////////////////////////////////////////////////////////////////////////////yQKmAysEkQWRBQQI+gZzAqgDqAMvBLQGCgNSAwoD7AKRBZEFkQWRBZEFkQWRBZEFkQWRBTMDMwO0BrQGtAakBAAIMQYZBt8FpAZ3BXcFkQayBvoC+gIzBhkF9geyBs0G3QXNBikGwwV1BX8GMQbTCCsGywXNBagD7AKoA7QGAAQABGYFugW+BLoFbQV7A7oFsgW+Ar4CUgW+AlYIsgV/BboFugXyA8ME0wOyBTcFZAcpBTcFqASyBewCsgW0Bv//SHwCAEGOtgcLhQigQGYE////////////////////////////////AAD///////////////////////////////////////////////9mBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYE//9mBP///////////////////////////////wAA////////////////////////////////////////////////ZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBP//ZgT///////////////////////////////8AAP///////////////////////////////////////////////2YEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgT///////////////////////////////////////////////////////////////////////////////////////9mBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYE//9UfAIAQZ6+BwuFCKBA/////////////////////////////////////////////////////////////////////////////////////2kC8AKZAjIEMgTNBKYFRwHwAvAC8AIyBPAC8ALwAjIEMgQyBDIEMgQyBDIEMgQyBDIEMgTwAvACMgQyBDIE8AIqBrgEhwTJBOgESQQzBGkFPAU6AtADmwQNBK0FGwVkBXYEaAWoBNkDpQQwBbME0QZ0BJAEZwTwAtgC8AIyBDIEMgQ0BHUE9gN1BF0E9QIEBF8ESALvAgkEXAKkBl8ESwR1BHUEHAM9AywDXwTrA/QFAgTyA8wD8AIyBPACMgT///////////////////////////////////////////////////////////////////////////////////////9pAvAC7wKwBLAEeQWmBdYB8ALwAnUDsATwAvAC8AIfA7AEsASwBLAEsASwBLAEsASwBLAE8ALwArAEsASwBIEDKgYRBcME5QQkBY0EqwRfBXgFOgJDBPAEbAT2BVcFoAWyBKwF4wQXBOUEbAX5BBIHzgToBHsENwPYAjcDsASwBLAEQwSnBBgEpQSZBPUCBAS+BGMC7wJiBFwC4Aa5BIcEqQSsBGsDcgMsA7oEOARFBmsERQQ6BHgDsAR4A7AE////////////////////////////////////////////////////////////////////////////////////////aQLwApkCMgTZA80EpgVHAfAC8ALwAjIE8ALwAvACMgQyBDIEMgQyBDIEMgQyBDIEMgQyBPAC8AIyBDIEMgTwAioG4wSHBMkE6ARJBDMEaQU8BToC0AObBA0EFwYbBWQFWQRkBagE2QOlBDAFswTRBnQEkARnBPAC2ALwAjIEMgQyBDQEdQSuA3UETAQ2AwQEdQR0Au8CCQSQAqQGXwRLBHUEdQRVAz0DXAN0BOsD9AUCBPIDzAPwAjIE8AIyBP///////////////////////////////////////////////////////////////////////////////////////2kC8AIgA7AEsATcBaYFaQLwAvACdQOwBPAC8ALwAi0DsASwBLAEsASwBLAEsASwBLAEsATwAvACsASwBLAELQMqBukEuATnBA8FvwSvBGkFbQU6Av0DMwU6BEoGSAWeBasEKAb9BAMEewVLBXcFaQdBBXgF5ATiA9ID4gOwBLAEsAS+BL8E8QO/BGoESANIBH8EnQIaA1EEjwKkBn8EjwTKBMoEkwOsA4EDdQRrBDAGmwSDBEME4gOwBOIDsAT//2B8AgBBrsYHC4UIoED/////////////////////////////////////////////////////////////////////////////////////0AImA6wDjAYWBZwI0AUmAqIDogMWBYwG6QKiA+kCogMWBRYFFgUWBRYFFgUWBRYFFgUWBaIDogOMBowGjAZdBAAIeAV8BZYFKgYPBZkENAYDBl4DowOLBXQEvgb8BUwG0wRMBpAFeAXuBNsFeAXpB3sF7AR7BaIDogOiA4wGFgUWBc4E/AQrBPwExATQAvwEEAUyAsECvAQyAsgHEAXbBPwE/ARqAysEJwMQBbwEjAa8BLwENAQUBaIDFAWMBv///////////////////////////////////////////////////////////////////////////////////////7wCOAOzBPAGsAUtCuYGqAJZBFkEsAXwBuQC1wPkAoQFsAWwBbAFsAWwBbAFsAWwBbAFsAU4AzgD8AbwBvAG7wS2BzYGGAbKBaQGdwU0BX0GswZeBHEEKwYZBZUHxgbNBt0FzQZCBq8FdAV/BhwGBwkcBuUFiQVZBIQFWQTwBrAFsAVYBZgFtQSYBVAFYQOYBbMFvAI5A14FvAJ3CLMFfgWYBZgF+gO/BKUDswUzBdYHWgU1BcYEsAVZBLAF8Ab////////////////////////////////////////////////////////////////////////////////////////QAiYDrAOMBhYFnAjQBSYCogOiAxYFjAbpAqID6QKiAxYFFgUWBRYFFgUWBRYFFgUWBRYFogOiA4wGjAaMBl0EAAh2BXwFlgUgBg8FmQQ0BgMGXgOjA4sFdAS+BvwFTAbTBEwGkAV4Be4E2wV2BewHewXsBHsFogOiA6IDjAYWBRYFzgT8BCsE/ATEBNAC+QQQBTICwQKyBDICyQcQBdsE/AT8BGoDKwQnAxAFugSMBrwEugQ0BBQFogMUBYwG////////////////////////////////////////////////////////////////////////////////////////vAI4A7ME8AawBS0K5gaoAlkEWQSwBfAG5ALXA+QChAWwBbAFsAWwBbAFsAWwBbAFsAWwBTgDOAPwBvAG8AbvBLYHNgYYBsoFpAZ3BTQFfQazBl4EcQQrBhkFlQfGBs0G3QXNBkIGrwV0BX8GHAYHCRwG5QWJBVkEhAVZBPAGsAWwBVgFmAW1BJgFUAVhA5gFswW8AjkDXgW8AncIswV8BZgFmAX6A78EpQOzBTEF1gdaBTUFxgSwBVkEsAXwBv//aHwCAEG+zgcLhQigQP////////////////////////////////////////////////////////////////////////////////////8UAiMCNQMrBZMElgbXBcUBXgJeAmoEkwT2AZMCIQLwApMEkwSTBJMEkwSTBJMEkwSTBJMEIQIhApMEkwSTBG8DMQcQBS8FDAXVBXMEIQTTBecFOwIjAukEJwQ5BwgGOwbRBDsG8gRkBG0E0wXDBGgHngR7BJEEogLwAqICVgSWA54EcwTnBM8D5wR9BLYCYgTpBAYCBgIzBAYCcQfpBNUE5wTnBEQD0QPTAukEAgQ5BjEECAS+AwgDaAQIA5ME////////////////////////////////////////////////////////////////////////////////////////FAJKAscDKwWRBDUHAAYhArYCtgJcBJEEUgKTAkgCTgORBJEEkQSRBJEEkQSRBJEEkQSRBEgCUgKRBJEEkQTRAy0HhQVgBRkF7AV7BGQEywUfBqYCpgJQBYUEiweBBl4GBgVeBkgFaASiBAwGMwW8B1YF/gSiBKYCTgOmAkIESgPbBNUEEAUdBBAFugQZA4UEQgVxAnEC9gRxAtsHQgX0BBAFEAWiA/oDeQNCBY0E2QagBI0E5wMnA2gEJwORBP///////////////////////////////////////////////////////////////////////////////////////xQCEgIXAysFaARYBlwFvAFIAkgCagRoBOwBfwIGAs0CaARoBGgEaARoBGgEaARoBGgEaAQGAgYCaARoBGgEagPHBnEEyQSuBFQFFwTHA2oFbQUvAiMCdQTLA7IGngXDBYcEwwWNBAQE/ANoBWIE0QYnBAYEPwRKAs0CSgIjBCcDbwSFBJ4EmgOeBPIDgQICBJ4ECAIIAucDCAL6Bp4EfQSeBJ4EKwNtA5gCngSyA7wF0wOyA40DywJoBMsCaAT///////////////////////////////////////////////////////////////////////////////////////8UAkoCoAMrBWgE2QaqBQoCtgK2AlwEaAQ5ApMCSAJeA2gEaARoBGgEaARoBGgEaARoBGgESAJIAmgEaARoBKwD2QYGBfYE5QRqBVYEPwSFBZoFkwKmAucEJQQKBwoG1wWkBNcF3wQ9BD8EhwW4BCcH2QSDBEoEpgJeA6YCOQQzA28EwQTDBN0DwQR1BPwCVATVBGACYAKLBGACPQfVBK4EwwTBBF4DyQNIA9UEGQROBj8EJwSkA9cCaATXAmgE//9wfAIAQc7WBwuFCKBA/////////////////////////////////////////////////////////////////////////////////////+4BpgJLAyUF4QSKBq8FuQEAAwADxwMlBSgC/gIoAsAD6QRwA3gEagSFBDoEhwQFBMUEhwSAAoACJQUlBSUF1ANuB14FOwUjBf4FOgXLBM0FhQYeAyQEjgXUBGsHIwb0BeEE9AWdBX0E8wQNBlUFzgevBewE0AQAA8ADAAMlBSUFAAQIBHsEogOYBN4DmgITBKgEWAJWAkkESgIMB7oEUASSBHoERwN1A8MCmgT5A+YFCgTwA40DcQMAA3EDJQX///////////////////////////////////////////////////////////////////////////////////////8IAgMDFASgBSAFCQdlBicCkwOTA9sDoAWgAggDoALGA5wF6wMDBf8EMgXLBC8FbwRpBS8F8ALwAqAFoAWgBWMEvAcRBg8GuQWsBsUFXwV1Bk4HkQPDBIkGfAUwCLcGjwacBY8GYQYxBXkFqwYZBgMJeAbbBYQFkwPGA5MDoAWgBQAExAQqBUAETgWTBCUDnQRwBdQCxQIOBcECIAiFBRYFQwUwBSkEGgQuA2oFiQToBrQEfwQ0BAAEGgMABKAF////////////////////////////////////////////////////////////////////////////////////////7gGmAksDJQXhBIoGrwW5AQADAAPHAyUFKAL+AigCwAPpBHADeARqBIUEOgSHBPkDxQSHBBIDEgMlBSUFJQXUA24HXgU7BSMF/gU6BcsEzQWFBh4DJASOBdQEawcjBtgF4QTYBZ0FfQTzBA0GVQXOB68F7ATQBAADwAMAAyUFJQUABJUEbgShA5oExgOhApUEgARhAlQCOQRIAgkHuARMBKAEcQSxA3MDxwKaBE4ElAYCBHoEjQNxAwADcQMlBf///////////////////////////////////////////////////////////////////////////////////////wgCAwMUBKAFIAUJB2UGJwKTA5MD2wOgBaACCAOgAsYDnAXrAwMF/wQyBcsELwWIBGkFLwXwAvACoAWgBaAFYwS8BxEGEwa5BawGxQVfBXUGTgebA8MEiQZ8BUQIowaPBqYFjwZhBjkFeQWrBhkGAwlrBtsFhAWTA8YDkwOgBaAFAARIBTEFSQRNBXUEDAMyBWcF7QLrAiEF1gIECIUFFgVNBTMFRQQjBFYDewXmBHgHqwRbBSMEAAQaAwAEoAX//3h8AgBB3t4HC8gKoED/////////////////////////////////////////////////////////////////////////////////////zwGbAjUD/AMOBLgFdQXEAW0CbQL8A/wD/wFzAgUCFwMOBA4EDgQOBA4EDgQOBA4EDgQOBCQCJAL8A/wD/AO1AycHoQRaBEQE7AToA60DDAX8BAQCjQIoBF0D1wYqBUwFIgRiBVgErQPmAyIFigQeBycE5gO/A3QCFwN0AvwD/ANUAtUDNARiAzQE+wNxAsQDNATWAeoBowPWAWQGNAQ4BDQENATKAiEDrgI0BJ0DuAV3A58DKQOEAq8DhAL8A///AAD///////////////////////////////8AAP///////////////////////////////////////////////88BmwKCA/wDDgTVBaMF3gF+An4C/AP8AxACcwIjAnADDgQOBA4EDgQOBA4EDgQOBA4EDgQ1AjUC/AP8A/wDtQMwB9kEfAQ8BAsF5wOsAxkFDAUiAqYCYARiA/4GRQVpBUIEfQWBBMgD9gM5BbsEQAdoBCgE0wOZAnADmQL8A/wDZwLzA0sEWQNLBAcEiALLA0sE9wELAtcD9wGCBksETQRLBEsE2AIxA8YCSwTJA/YFrQPKAy4DwALNA8AC/AP////////////////////////////////////////////////////////////////////////////////////////PAZsCNQP8Aw4EuAV1BcQBbQJtAvwD/AP/AXMCBQIaAw4EDgQOBA4EDgQOBA4EDgQOBA4EJAIkAvwD/AP8A7UDJwehBFoELgTsBOgDrQMMBfwEBAKNAigEXQPXBigFPAUiBFAFWASeA+YDIgWKBB8HJwTmA78DdAITA3QC/AP8A1QCHQQdBFQDHQTSA3ECHQQdBNYB6gGjA9YBVAYdBBsEHQQdBL4CHQOuAh0EkQO4BXcDlAMpA4QCrwOEAvwD////////////////////////////////////////////////////////////////////////////////////////zwGbAoID/AMOBNUFowXeAX4CfgL8A/wDEAJzAiMCeQMOBA4EDgQOBA4EDgQOBA4EDgQOBDUCNQL8A/wD/AO1AzAH2QR8BCYECwXnA6wDGQUMBSICpgJgBGID/gZABVkF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AABTLwAAGCEAACY+AAC+AwAAu0sAAP0AAACkNQAApQAAAJA5AAD/AAAA82QAALYDAAAMPgAADSAAABA+AAAMIAAAxkMBAAgAAAADAAAAK0MAAG3SAAALAAAABgAAACoYAABZbAAAAgAAAAEAAAC4LwAAjHcAAAQAAAACAAAAX0YAAAAEAAADAAAABAAAAFJFAAB50gAABQAAAAUAAAC2RgAABAQAAAQAAAAHAAAAABgAAIo5AAAFAAAACQAAAIw5AAD+bwAABAAAAAoAAAByRgAAsP4BAAQAAAAMAAAAnjIAAAAAAQAAAdDR0tPU1dbX2NkAQdb9BwsJ8L8AAAAAAAABAEHo/QcLDWludmlzAABmaWxsZWQAQYD+BwsaDR0AAJlUAAC1OAAAtgsAANt7AAAFyQAAPJEAQcD+Bwt5//////////////////////////////////////////8AAAAAAAAABP7//4f+//8HAAAAAAAAAAD//3////9///////////N//v3//////3///////////w/g/////zH8////AAAAAAAAAP//////////////AQD4AwBB0P8HC0FA1///+/////9/f1T9/w8A/t////////////7f/////wMA////////nxn////PPwMAAAAAAAD+////fwL+////fwBBmoAIC7MB////BwcAAAAAAP7//wf+BwAAAAD+//////////98/38vAGAAAADg////////IwAAAP8DAAAA4J/5///9xQMAAACwAwADAOCH+f///W0DAAAAXgAAHADgr/v///3tIwAAAAABAAAA4J/5///9zSMAAACwAwAAAODHPdYYx78DAAAAAAAAAADg3/3///3vAwAAAAADAAAA4N/9///97wMAAABAAwAAAODf/f///f8DAAAAAAMAQeCBCAsZ/v////9/DQA/AAAAAAAAAJYl8P6ubA0gHwBBiIIICwb//v///wMAQbSCCAty/////z8A/////38A7doHAAAAAFABUDGCq2IsAAAAAEAAyYD1BwAAAAAIAQL/////////////////////////D///////////////A///Pz//////Pz//qv///z/////////fX9wfzw//H9wfAAAAAEBMAEGwgwgLAQcAQcCDCAsmgAAAAP4DAAD+////////////HwD+/////////////wfg/////x8AQYCECAsV//////////////////////////8/AEGghAgLFf//////////////////////////DwBBxYQIC8kCYP8H/v//h/7//wcAAAAAAACAAP//f////3//////AAAAAAAAAP//////////////AQD4AwADAAAAAAD//////////z8AAAADAAAAwNf///v/////f39U/f8PAP7f///////////+3/////97AP///////58Z////zz8DAAAAAAAA/v///38C/v///38A/v/7//+7FgD///8HBwAAAAAA/v//B///BwD/A////////////3z/f+///z3/A+7////////z/z8e/8//AADun/n///3F0585gLDP/wMA5If5///9bdOHOQBewP8fAO6v+////e3zvzsAAMH/AADun/n///3N8485wLDD/wAA7Mc91hjHv8PHPYAAgP8AAO7f/f///e/D3z1gAMP/AADs3/3///3vw989YEDD/wAA7N/9///9/8PPPYAAw/8AQaCHCAs4/v////9//wf/f/8DAAAAAJYl8P6ubP87Xz//AwAAAAAAAAAD/wOgwv/+////A/7/3w+//v8//gIAQfqHCAtn/x8CAAAAoAAAAP7/PgD+////////////H2b+/////////////3dgAAAAYQAAAGIAAABjAAAAZAAAAGUAAABmAAAAZwAAAGgAAABpAAAAagAAAGsAAABsAAAAbQAAAG4AAABvAAAAAQBB8YgICwUVCgAACQBBiIkIC+ABFRAMExweAw0fICEiIxsaERkZGRkZGRkZGRkWEgIOCw8cGBgYGBgYFhYWFhYWFhYWFhYWFhYWFhYWFhYUHAQcFhwYGBgYGBgWFhYWFhYWFhYWFhYWFhYWFhYWFhwkHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcFhwcHBwcHBwcHBwWHBocHBYcHBwcHBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWHBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYcFhYWFhYWFhYAQZCLCAsSAgMEBQYHCAAACQoLDA0ODxARAEGuiwgLBBITABQAQcCLCAsCFRYAQd6LCAtSAQEBAQEBAQEBAQEBAQEBAQEBAQEB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ACdxAAA+cAAA6W8AAG1vAABJbwAAIW8AAB9vAAAcbwAAY2wAAE1sAAAcbAAAGmwAAAlsAAAHbAAAZWsAAElrAACwagAArmoAAKxqAACqagAAKmgAAAFoAAD/ZwAA5GcAAOJnAABPZgAATWYAAOtlAADpZQAAr2QAAC9kAAASXQAAmVQAAIRHAADHRQAArUIAAL8+AAAcPgAACj4AAEo8AABsOQAAtTgAAKYyAAB5MQAAFSEAANEgAAANHQAA1BUAAIgMAAAEDAAAtgsAACcKAABJCQAAeQQAAEQEAAA7BAAALwQAAAkEAAA2cAAAAAAAAAgArv/RAAoArv+u/wsArv+u/67/rv+u/67/rv+u/wUA0QCu/9EA0QDRANEA0QDRANEA0QCu//v/rv8OAOz/rv+u/67/rv/RANEA0QDRANEADQAlAAwAQgAQAFAAEwBtAHsAFACYAA8ApgDDAK7/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/xcArv93AK7/BwAuAK7/JgCu/xcAEQAjAK7/DQCu/67/rv+u/zoArv+u/zUArv+u/67/KACu/wcArv87AEUArv9IAK7/rv+u/67/rv8AQfG/CAvBBgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygAAAAAAAAAAAICAgICAhAMWQEAH1AIAwcSExRXFhcIC2kMHwoFDA4pESsPLRAvMCAyBjQ1GxwdHgsMISIjJCUmJygMGBkXBAobHBogKgohIiMkJSYnKAwKDlMKLFgxWFhYWFhYDBscDy5YMyEiIyQlJicoGxz/U///ISIj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cm1hdGlvbgBJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBNdWx0aWhvcCBhdHRlbXB0ZWQAUmVxdWlyZWQga2V5IG5vdCBhdmFpbGFibGUAS2V5IGhhcyBleHBpcmVkAEtleSBoYXMgYmVlbiByZXZva2VkAEtleSB3YXMgcmVqZWN0ZWQgYnkgc2VydmljZQAAAAAApQJbAPABtQWMBSUBgwYdA5QE/wDHAzEDCwa8AY8BfwPKBCsA2gavAEIDTgPcAQ4EFQChBg0BlAILAjgGZAK8Av8CXQPnBAsHzwLLBe8F2wXhAh4GRQKFAIICbANvBPEA8wMYBdkA2gNMBlQCewGdA70EAABRABUCuwCzA20A/wGFBC8F+QQ4AGUBRgGfALcGqAFzAlMBAEGIjQkLDCEEAAAAAAAAAAAvAgBBqI0JCwY1BEcEVgQAQb6NCQsCoAQAQdKNCQsiRgVgBW4FYQYAAM8BAAAAAAAAAADJBukG+QYeBzkHSQdeBwBBgI4JC5EB0XSeAFedvSqAcFIP//8+JwoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFGAAAADUAAABxAAAAa////877//+Sv///AAAAAAAAAAAZAAsAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkACgoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQBBoY8JCyEOAAAAAAAAAAAZAAsNGRkZAA0AAAIACQ4AAAAJAA4AAA4AQduPCQsBDABB548JCxUTAAAAABMAAAAACQwAAAAAAAwAAAwAQZWQCQsBEABBoZAJCxUPAAAABA8AAAAACRAAAAAAABAAABAAQc+QCQsBEgBB25AJCx4RAAAAABEAAAAACRIAAAAAABIAABIAABoAAAAaGhoAQZKRCQsOGgAAABoaGgAAAAAAAAkAQcORCQsBFABBz5EJCxUXAAAAABcAAAAACRQAAAAAABQAABQAQf2RCQsBFgBBiZIJCycVAAAAABUAAAAACRYAAAAAABYAABYAADAxMjM0NTY3ODlBQkNERUYAQdSSCQsCAwIAQfySCQsI//////////8AQcCTCQv1CP////////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAECBAcDBgUAAAAAAAAAAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADAFAAAwBUAAMAWAADAFwAAwBgAAMAZAADAGgAAwBsAAMAcAADAHQAAwB4AAMAfAADAAAAAswEAAMMCAADDAwAAwwQAAMMFAADDBgAAwwcAAMMIAADDCQAAwwoAAMMLAADDDAAAww0AANMOAADDDwAAwwAADLsBAAzDAgAMwwMADMMEAAzbAAAAAIRMAgAFAgAABgIAAAcCAAAIAgAACQIAAAoCAAALAgAADAIAAA0CAAAOAgAADwIAABACAAARAgAAEgIAAAQAAAAAAAAAwEwCABMCAAAUAgAA/P////z////ATAIAFQIAABYCAADoSwIA/EsCAAAAAAAITQIAFwIAABgCAAAHAgAACAIAABkCAAAaAgAACwIAAAwCAAANAgAAGwIAAA8CAAAcAgAAEQIAAB0CAAD4dwIAWEwCABxOAgBOU3QzX18yOWJhc2ljX2lvc0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQAAANB3AgCMTAIATlN0M19fMjE1YmFzaWNfc3RyZWFtYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAAAAAFR4AgDYTAIAAAAAAAEAAABMTAIAA/T//05TdDNfXzIxM2Jhc2ljX29zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUAAPh3AgAUTQIAhEwCAE5TdDNfXzIxNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAAAAOAAAAAAAAAC4TQIAHgIAAB8CAADI////yP///7hNAgAgAgAAIQIAAGRNAgCcTQIAsE0CAHhNAgA4AAAAAAAAAMBMAgATAgAAFAIAAMj////I////wEwCABUC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ABUAAABURgAAAAAAAKZeAADqSQAA2GUAQbz+CQseREkAABEAAABURgAAAAAAAKZeAAAXVwAA/G4AANZWAEHk/gkLOhoAAABORgAA1lYAAAAAAAATXwAA/G4AANZWAAAAAAAApl4AABsAAABORgAA1lYAAKZeAABMXwAA/G4AQaj/CQsepl4AABkAAABORgAAAAAAAKZeAADzNwAA/G4AANI3AEHQ/wkLBhgAAABORgBB4P8JCwoJVwAAb04AANZWAEH0/wkLOh4AAABORgAA1lYAAAAAAAD/XgAAb04AANZWAAAAAAAApl4AAB8AAABORgAA1lYAAKZeAAA8XwAAb04AQbiACgsepl4AAB0AAABORgAAAAAAAKZeAADkNwAAb04AANI3AEHggAoLBhwAAABORgBB8IAKCwZ7OQAAezkAQYSBCgsGIAAAAE8GAEGUgQoLCvFWAABJGgAA1lYAQaiBCgs6AgAAAE5GAADWVgAAAAAAAO5eAABJGgAA1lYAAAAAAACmXgAAAwAAAE5GAADWVgAApl4AAC9fAABJGgBB7IEKCxqmXgAAAQAAAE5GAAAAAAAApl4AANg3AABJGgBBmIIKCwJORgBBpIIKCyrBXgAA324AAPA4AAAAAAAApl4AACEAAABORgAAAAAAAKZeAAARFwAAFRcAQdyCCgsGIgAAAE8GAEHsggoLWQgAAAAEAAAAAAAAADgAAAAKAAAAOQAAAAgAAAD/////AAAAAAAAAAAKAAAAAAAAAAgAAAD/////AAAAAAAAAAA6AAAAAAAAAAgAAAD/////AAAAAAAAAAA7AEHYgwoLAQQAQYCECgu3CDwAAABAAAAAQQAAAEIAAABDAAAARAAAAD4AAABAAAAAQQAAAEUAAAAAAAAARgAAADwAAABAAAAAQQAAAEIAAABDAAAARAAAAD0AAABHAAAASAAAAEkAAABKAAAASwAAAD8AAABMAAAAQQAAAE0AAAAAAAAATgAAADwAAABAAAAAQQAAAE8AAABDAAAARAAAAGIJAAAAggIAgIYCAAAAAADENAAAAIICALCGAgAAAAAAhU0AAACCAgDghgIAAAAAAEM7AAAAggIA4IYCAAAAAAB+UQAAAIICABCHAgAAAAAABhAAABiCAgAQhwIAAAAAAEFFAAAAggIAUIcCAAAAAABeUQAAAIICAICHAgAA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";return Q}var tA;function OA(Q){if(Q==tA&&E)return new Uint8Array(E);var m=h(Q);if(m)return m;throw"both async and sync fetching of the wasm failed"}function gA(Q){return Promise.resolve().then(()=>OA(Q))}function zA(Q,m,v){return gA(Q).then(p=>WebAssembly.instantiate(p,m)).then(v,p=>{B(`failed to asynchronously prepare wasm: ${p}`),JA(p)})}function xA(Q,m,v,p){return zA(m,v,p)}function Me(){return{a:fn}}function LA(){var Q=Me();function m(p,F){return Te=p.exports,w=Te.y,j(),lA(Te.z),BA(),Te}UA();function v(p){m(p.instance)}return tA??=KA(),xA(E,tA,Q,v).catch(o),{}}function cA(Q){return i.agerrMessages.push(Se(Q)),0}function Gt(Q){this.name="ExitStatus",this.message=`Program terminated with exit(${Q})`,this.status=Q}var ct=Q=>{Q.forEach(m=>m(i))};function oe(Q,m="i8"){switch(m.endsWith("*")&&(m="*"),m){case"i1":return R[Q];case"i8":return R[Q];case"i16":return G[Q>>1];case"i32":return J[Q>>2];case"i64":return O[Q>>3];case"float":return K[Q>>2];case"double":return V[Q>>3];case"*":return z[Q>>2];default:JA(`invalid type for getValue: ${m}`)}}var Dt=Q=>mi(Q),_e=()=>Ko(),Re=typeof TextDecoder<"u"?new TextDecoder:void 0,St=(Q,m=0,v=NaN)=>{for(var p=m+v,F=m;Q[F]&&!(F>=p);)++F;if(F-m>16&&Q.buffer&&Re)return Re.decode(Q.subarray(m,F));for(var U="";m>10,56320|ee&1023)}}return U},Se=(Q,m)=>Q?St(D,Q,m):"",Wt=(Q,m,v,p)=>{JA(`Assertion failed: ${Se(Q)}, at: `+[m?Se(m):"unknown filename",v,p?Se(p):"unknown function"])};class L{constructor(m){this.excPtr=m,this.ptr=m-24}set_type(m){z[this.ptr+4>>2]=m}get_type(){return z[this.ptr+4>>2]}set_destructor(m){z[this.ptr+8>>2]=m}get_destructor(){return z[this.ptr+8>>2]}set_caught(m){m=m?1:0,R[this.ptr+12]=m}get_caught(){return R[this.ptr+12]!=0}set_rethrown(m){m=m?1:0,R[this.ptr+13]=m}get_rethrown(){return R[this.ptr+13]!=0}init(m,v){this.set_adjusted_ptr(0),this.set_type(m),this.set_destructor(v)}set_adjusted_ptr(m){z[this.ptr+16>>2]=m}get_adjusted_ptr(){return z[this.ptr+16>>2]}}var T=0,P=(Q,m,v)=>{var p=new L(Q);throw p.init(m,v),T=Q,T},X={isAbs:Q=>Q.charAt(0)==="/",splitPath:Q=>{var m=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return m.exec(Q).slice(1)},normalizeArray:(Q,m)=>{for(var v=0,p=Q.length-1;p>=0;p--){var F=Q[p];F==="."?Q.splice(p,1):F===".."?(Q.splice(p,1),v++):v&&(Q.splice(p,1),v--)}if(m)for(;v;v--)Q.unshift("..");return Q},normalize:Q=>{var m=X.isAbs(Q),v=Q.substr(-1)==="/";return Q=X.normalizeArray(Q.split("/").filter(p=>!!p),!m).join("/"),!Q&&!m&&(Q="."),Q&&v&&(Q+="/"),(m?"/":"")+Q},dirname:Q=>{var m=X.splitPath(Q),v=m[0],p=m[1];return!v&&!p?".":(p&&(p=p.substr(0,p.length-1)),v+p)},basename:Q=>{if(Q==="/")return"/";Q=X.normalize(Q),Q=Q.replace(/\/$/,"");var m=Q.lastIndexOf("/");return m===-1?Q:Q.substr(m+1)},join:(...Q)=>X.normalize(Q.join("/")),join2:(Q,m)=>X.normalize(Q+"/"+m)},kA=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return Q=>crypto.getRandomValues(Q);JA("initRandomDevice")},le=Q=>(le=kA())(Q),Ee={resolve:(...Q)=>{for(var m="",v=!1,p=Q.length-1;p>=-1&&!v;p--){var F=p>=0?Q[p]:b.cwd();if(typeof F!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!F)return"";m=F+"/"+m,v=X.isAbs(F)}return m=X.normalizeArray(m.split("/").filter(U=>!!U),!v).join("/"),(v?"/":"")+m||"."},relative:(Q,m)=>{Q=Ee.resolve(Q).substr(1),m=Ee.resolve(m).substr(1);function v(ee){for(var ne=0;ne=0&&ee[Pe]==="";Pe--);return ne>Pe?[]:ee.slice(ne,Pe-ne+1)}for(var p=v(Q.split("/")),F=v(m.split("/")),U=Math.min(p.length,F.length),q=U,Z=0;Z{for(var m=0,v=0;v=55296&&p<=57343?(m+=4,++v):m+=3}return m},Ct=(Q,m,v,p)=>{if(!(p>0))return 0;for(var F=v,U=v+p-1,q=0;q=55296&&Z<=57343){var RA=Q.charCodeAt(++q);Z=65536+((Z&1023)<<10)|RA&1023}if(Z<=127){if(v>=U)break;m[v++]=Z}else if(Z<=2047){if(v+1>=U)break;m[v++]=192|Z>>6,m[v++]=128|Z&63}else if(Z<=65535){if(v+2>=U)break;m[v++]=224|Z>>12,m[v++]=128|Z>>6&63,m[v++]=128|Z&63}else{if(v+3>=U)break;m[v++]=240|Z>>18,m[v++]=128|Z>>12&63,m[v++]=128|Z>>6&63,m[v++]=128|Z&63}}return m[v]=0,v-F};function $e(Q,m,v){var p=v>0?v:MA(Q)+1,F=new Array(p),U=Ct(Q,F,0,F.length);return m&&(F.length=U),F}var XA=()=>{if(!NA.length){var Q=null;if(typeof window<"u"&&typeof window.prompt=="function"&&(Q=window.prompt("Input: "),Q!==null&&(Q+=` +`)),!Q)return null;NA=$e(Q,!0)}return NA.shift()},ot={ttys:[],init(){},shutdown(){},register(Q,m){ot.ttys[Q]={input:[],output:[],ops:m},b.registerDevice(Q,ot.stream_ops)},stream_ops:{open(Q){var m=ot.ttys[Q.node.rdev];if(!m)throw new b.ErrnoError(43);Q.tty=m,Q.seekable=!1},close(Q){Q.tty.ops.fsync(Q.tty)},fsync(Q){Q.tty.ops.fsync(Q.tty)},read(Q,m,v,p,F){if(!Q.tty||!Q.tty.ops.get_char)throw new b.ErrnoError(60);for(var U=0,q=0;q0&&(d(St(Q.output)),Q.output=[])},ioctl_tcgets(Q){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(Q,m,v){return 0},ioctl_tiocgwinsz(Q){return[24,80]}},default_tty1_ops:{put_char(Q,m){m===null||m===10?(B(St(Q.output)),Q.output=[]):m!=0&&Q.output.push(m)},fsync(Q){Q.output&&Q.output.length>0&&(B(St(Q.output)),Q.output=[])}}},Si=(Q,m)=>{D.fill(0,Q,Q+m)},Zi=(Q,m)=>Math.ceil(Q/m)*m,Oi=Q=>{Q=Zi(Q,65536);var m=Qi(65536,Q);return m&&Si(m,Q),m},Le={ops_table:null,mount(Q){return Le.createNode(null,"/",16895,0)},createNode(Q,m,v,p){if(b.isBlkdev(v)||b.isFIFO(v))throw new b.ErrnoError(63);Le.ops_table||={dir:{node:{getattr:Le.node_ops.getattr,setattr:Le.node_ops.setattr,lookup:Le.node_ops.lookup,mknod:Le.node_ops.mknod,rename:Le.node_ops.rename,unlink:Le.node_ops.unlink,rmdir:Le.node_ops.rmdir,readdir:Le.node_ops.readdir,symlink:Le.node_ops.symlink},stream:{llseek:Le.stream_ops.llseek}},file:{node:{getattr:Le.node_ops.getattr,setattr:Le.node_ops.setattr},stream:{llseek:Le.stream_ops.llseek,read:Le.stream_ops.read,write:Le.stream_ops.write,allocate:Le.stream_ops.allocate,mmap:Le.stream_ops.mmap,msync:Le.stream_ops.msync}},link:{node:{getattr:Le.node_ops.getattr,setattr:Le.node_ops.setattr,readlink:Le.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Le.node_ops.getattr,setattr:Le.node_ops.setattr},stream:b.chrdev_stream_ops}};var F=b.createNode(Q,m,v,p);return b.isDir(F.mode)?(F.node_ops=Le.ops_table.dir.node,F.stream_ops=Le.ops_table.dir.stream,F.contents={}):b.isFile(F.mode)?(F.node_ops=Le.ops_table.file.node,F.stream_ops=Le.ops_table.file.stream,F.usedBytes=0,F.contents=null):b.isLink(F.mode)?(F.node_ops=Le.ops_table.link.node,F.stream_ops=Le.ops_table.link.stream):b.isChrdev(F.mode)&&(F.node_ops=Le.ops_table.chrdev.node,F.stream_ops=Le.ops_table.chrdev.stream),F.timestamp=Date.now(),Q&&(Q.contents[m]=F,Q.timestamp=F.timestamp),F},getFileDataAsTypedArray(Q){return Q.contents?Q.contents.subarray?Q.contents.subarray(0,Q.usedBytes):new Uint8Array(Q.contents):new Uint8Array(0)},expandFileStorage(Q,m){var v=Q.contents?Q.contents.length:0;if(!(v>=m)){var p=1024*1024;m=Math.max(m,v*(v>>0),v!=0&&(m=Math.max(m,256));var F=Q.contents;Q.contents=new Uint8Array(m),Q.usedBytes>0&&Q.contents.set(F.subarray(0,Q.usedBytes),0)}},resizeFileStorage(Q,m){if(Q.usedBytes!=m)if(m==0)Q.contents=null,Q.usedBytes=0;else{var v=Q.contents;Q.contents=new Uint8Array(m),v&&Q.contents.set(v.subarray(0,Math.min(m,Q.usedBytes))),Q.usedBytes=m}},node_ops:{getattr(Q){var m={};return m.dev=b.isChrdev(Q.mode)?Q.id:1,m.ino=Q.id,m.mode=Q.mode,m.nlink=1,m.uid=0,m.gid=0,m.rdev=Q.rdev,b.isDir(Q.mode)?m.size=4096:b.isFile(Q.mode)?m.size=Q.usedBytes:b.isLink(Q.mode)?m.size=Q.link.length:m.size=0,m.atime=new Date(Q.timestamp),m.mtime=new Date(Q.timestamp),m.ctime=new Date(Q.timestamp),m.blksize=4096,m.blocks=Math.ceil(m.size/m.blksize),m},setattr(Q,m){m.mode!==void 0&&(Q.mode=m.mode),m.timestamp!==void 0&&(Q.timestamp=m.timestamp),m.size!==void 0&&Le.resizeFileStorage(Q,m.size)},lookup(Q,m){throw b.genericErrors[44]},mknod(Q,m,v,p){return Le.createNode(Q,m,v,p)},rename(Q,m,v){if(b.isDir(Q.mode)){var p;try{p=b.lookupNode(m,v)}catch{}if(p)for(var F in p.contents)throw new b.ErrnoError(55)}delete Q.parent.contents[Q.name],Q.parent.timestamp=Date.now(),Q.name=v,m.contents[v]=Q,m.timestamp=Q.parent.timestamp},unlink(Q,m){delete Q.contents[m],Q.timestamp=Date.now()},rmdir(Q,m){var v=b.lookupNode(Q,m);for(var p in v.contents)throw new b.ErrnoError(55);delete Q.contents[m],Q.timestamp=Date.now()},readdir(Q){var m=[".",".."];for(var v of Object.keys(Q.contents))m.push(v);return m},symlink(Q,m,v){var p=Le.createNode(Q,m,41471,0);return p.link=v,p},readlink(Q){if(!b.isLink(Q.mode))throw new b.ErrnoError(28);return Q.link}},stream_ops:{read(Q,m,v,p,F){var U=Q.node.contents;if(F>=Q.node.usedBytes)return 0;var q=Math.min(Q.node.usedBytes-F,p);if(q>8&&U.subarray)m.set(U.subarray(F,F+q),v);else for(var Z=0;Z0||v+m{var F=p?"":`al ${Q}`;I(Q).then(U=>{m(new Uint8Array(U)),F&&BA()},U=>{if(v)v();else throw`Loading data file "${Q}" failed.`}),F&&UA()},fi=(Q,m,v,p,F,U)=>{b.createDataFile(Q,m,v,p,F,U)},Ht=[],Rt=(Q,m,v,p)=>{typeof Browser<"u"&&Browser.init();var F=!1;return Ht.forEach(U=>{F||U.canHandle(m)&&(U.handle(Q,m,v,p),F=!0)}),F},Bi=(Q,m,v,p,F,U,q,Z,RA,ee)=>{var ne=m?Ee.resolve(X.join2(Q,m)):Q;function Pe(Oe){function ve(Ne){ee?.(),Z||fi(Q,m,Ne,p,F,RA),U?.(),BA()}Rt(Oe,ne,ve,()=>{q?.(),BA()})||ve(Oe)}UA(),typeof v=="string"?zi(v,Pe,q):Pe(v)},Mi=Q=>{var m={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},v=m[Q];if(typeof v>"u")throw new Error(`Unknown file open mode: ${Q}`);return v},Jt=(Q,m)=>{var v=0;return Q&&(v|=365),m&&(v|=146),v},b={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class{constructor(Q){this.name="ErrnoError",this.errno=Q}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(Q){this.node=Q}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(Q){this.shared.flags=Q}get position(){return this.shared.position}set position(Q){this.shared.position=Q}},FSNode:class{constructor(Q,m,v,p){Q||(Q=this),this.parent=Q,this.mount=Q.mount,this.mounted=null,this.id=b.nextInode++,this.name=m,this.mode=v,this.node_ops={},this.stream_ops={},this.rdev=p,this.readMode=365,this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(Q){Q?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(Q){Q?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return b.isDir(this.mode)}get isDevice(){return b.isChrdev(this.mode)}},lookupPath(Q,m={}){if(Q=Ee.resolve(Q),!Q)return{path:"",node:null};var v={follow_mount:!0,recurse_count:0};if(m=Object.assign(v,m),m.recurse_count>8)throw new b.ErrnoError(32);for(var p=Q.split("/").filter(Pe=>!!Pe),F=b.root,U="/",q=0;q40)throw new b.ErrnoError(32)}}return{path:U,node:F}},getPath(Q){for(var m;;){if(b.isRoot(Q)){var v=Q.mount.mountpoint;return m?v[v.length-1]!=="/"?`${v}/${m}`:v+m:v}m=m?`${Q.name}/${m}`:Q.name,Q=Q.parent}},hashName(Q,m){for(var v=0,p=0;p>>0)%b.nameTable.length},hashAddNode(Q){var m=b.hashName(Q.parent.id,Q.name);Q.name_next=b.nameTable[m],b.nameTable[m]=Q},hashRemoveNode(Q){var m=b.hashName(Q.parent.id,Q.name);if(b.nameTable[m]===Q)b.nameTable[m]=Q.name_next;else for(var v=b.nameTable[m];v;){if(v.name_next===Q){v.name_next=Q.name_next;break}v=v.name_next}},lookupNode(Q,m){var v=b.mayLookup(Q);if(v)throw new b.ErrnoError(v);for(var p=b.hashName(Q.id,m),F=b.nameTable[p];F;F=F.name_next){var U=F.name;if(F.parent.id===Q.id&&U===m)return F}return b.lookup(Q,m)},createNode(Q,m,v,p){var F=new b.FSNode(Q,m,v,p);return b.hashAddNode(F),F},destroyNode(Q){b.hashRemoveNode(Q)},isRoot(Q){return Q===Q.parent},isMountpoint(Q){return!!Q.mounted},isFile(Q){return(Q&61440)===32768},isDir(Q){return(Q&61440)===16384},isLink(Q){return(Q&61440)===40960},isChrdev(Q){return(Q&61440)===8192},isBlkdev(Q){return(Q&61440)===24576},isFIFO(Q){return(Q&61440)===4096},isSocket(Q){return(Q&49152)===49152},flagsToPermissionString(Q){var m=["r","w","rw"][Q&3];return Q&512&&(m+="w"),m},nodePermissions(Q,m){return b.ignorePermissions?0:m.includes("r")&&!(Q.mode&292)||m.includes("w")&&!(Q.mode&146)||m.includes("x")&&!(Q.mode&73)?2:0},mayLookup(Q){if(!b.isDir(Q.mode))return 54;var m=b.nodePermissions(Q,"x");return m||(Q.node_ops.lookup?0:2)},mayCreate(Q,m){try{var v=b.lookupNode(Q,m);return 20}catch{}return b.nodePermissions(Q,"wx")},mayDelete(Q,m,v){var p;try{p=b.lookupNode(Q,m)}catch(U){return U.errno}var F=b.nodePermissions(Q,"wx");if(F)return F;if(v){if(!b.isDir(p.mode))return 54;if(b.isRoot(p)||b.getPath(p)===b.cwd())return 10}else if(b.isDir(p.mode))return 31;return 0},mayOpen(Q,m){return Q?b.isLink(Q.mode)?32:b.isDir(Q.mode)&&(b.flagsToPermissionString(m)!=="r"||m&512)?31:b.nodePermissions(Q,b.flagsToPermissionString(m)):44},MAX_OPEN_FDS:4096,nextfd(){for(var Q=0;Q<=b.MAX_OPEN_FDS;Q++)if(!b.streams[Q])return Q;throw new b.ErrnoError(33)},getStreamChecked(Q){var m=b.getStream(Q);if(!m)throw new b.ErrnoError(8);return m},getStream:Q=>b.streams[Q],createStream(Q,m=-1){return Q=Object.assign(new b.FSStream,Q),m==-1&&(m=b.nextfd()),Q.fd=m,b.streams[m]=Q,Q},closeStream(Q){b.streams[Q]=null},dupStream(Q,m=-1){var v=b.createStream(Q,m);return v.stream_ops?.dup?.(v),v},chrdev_stream_ops:{open(Q){var m=b.getDevice(Q.node.rdev);Q.stream_ops=m.stream_ops,Q.stream_ops.open?.(Q)},llseek(){throw new b.ErrnoError(70)}},major:Q=>Q>>8,minor:Q=>Q&255,makedev:(Q,m)=>Q<<8|m,registerDevice(Q,m){b.devices[Q]={stream_ops:m}},getDevice:Q=>b.devices[Q],getMounts(Q){for(var m=[],v=[Q];v.length;){var p=v.pop();m.push(p),v.push(...p.mounts)}return m},syncfs(Q,m){typeof Q=="function"&&(m=Q,Q=!1),b.syncFSRequests++,b.syncFSRequests>1&&B(`warning: ${b.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var v=b.getMounts(b.root.mount),p=0;function F(q){return b.syncFSRequests--,m(q)}function U(q){if(q)return U.errored?void 0:(U.errored=!0,F(q));++p>=v.length&&F(null)}v.forEach(q=>{if(!q.type.syncfs)return U(null);q.type.syncfs(q,Q,U)})},mount(Q,m,v){var p=v==="/",F=!v,U;if(p&&b.root)throw new b.ErrnoError(10);if(!p&&!F){var q=b.lookupPath(v,{follow_mount:!1});if(v=q.path,U=q.node,b.isMountpoint(U))throw new b.ErrnoError(10);if(!b.isDir(U.mode))throw new b.ErrnoError(54)}var Z={type:Q,opts:m,mountpoint:v,mounts:[]},RA=Q.mount(Z);return RA.mount=Z,Z.root=RA,p?b.root=RA:U&&(U.mounted=Z,U.mount&&U.mount.mounts.push(Z)),RA},unmount(Q){var m=b.lookupPath(Q,{follow_mount:!1});if(!b.isMountpoint(m.node))throw new b.ErrnoError(28);var v=m.node,p=v.mounted,F=b.getMounts(p);Object.keys(b.nameTable).forEach(q=>{for(var Z=b.nameTable[q];Z;){var RA=Z.name_next;F.includes(Z.mount)&&b.destroyNode(Z),Z=RA}}),v.mounted=null;var U=v.mount.mounts.indexOf(p);v.mount.mounts.splice(U,1)},lookup(Q,m){return Q.node_ops.lookup(Q,m)},mknod(Q,m,v){var p=b.lookupPath(Q,{parent:!0}),F=p.node,U=X.basename(Q);if(!U||U==="."||U==="..")throw new b.ErrnoError(28);var q=b.mayCreate(F,U);if(q)throw new b.ErrnoError(q);if(!F.node_ops.mknod)throw new b.ErrnoError(63);return F.node_ops.mknod(F,U,m,v)},create(Q,m){return m=m!==void 0?m:438,m&=4095,m|=32768,b.mknod(Q,m,0)},mkdir(Q,m){return m=m!==void 0?m:511,m&=1023,m|=16384,b.mknod(Q,m,0)},mkdirTree(Q,m){for(var v=Q.split("/"),p="",F=0;F"u"&&(v=m,m=438),m|=8192,b.mknod(Q,m,v)},symlink(Q,m){if(!Ee.resolve(Q))throw new b.ErrnoError(44);var v=b.lookupPath(m,{parent:!0}),p=v.node;if(!p)throw new b.ErrnoError(44);var F=X.basename(m),U=b.mayCreate(p,F);if(U)throw new b.ErrnoError(U);if(!p.node_ops.symlink)throw new b.ErrnoError(63);return p.node_ops.symlink(p,F,Q)},rename(Q,m){var v=X.dirname(Q),p=X.dirname(m),F=X.basename(Q),U=X.basename(m),q,Z,RA;if(q=b.lookupPath(Q,{parent:!0}),Z=q.node,q=b.lookupPath(m,{parent:!0}),RA=q.node,!Z||!RA)throw new b.ErrnoError(44);if(Z.mount!==RA.mount)throw new b.ErrnoError(75);var ee=b.lookupNode(Z,F),ne=Ee.relative(Q,p);if(ne.charAt(0)!==".")throw new b.ErrnoError(28);if(ne=Ee.relative(m,v),ne.charAt(0)!==".")throw new b.ErrnoError(55);var Pe;try{Pe=b.lookupNode(RA,U)}catch{}if(ee!==Pe){var Oe=b.isDir(ee.mode),ve=b.mayDelete(Z,F,Oe);if(ve)throw new b.ErrnoError(ve);if(ve=Pe?b.mayDelete(RA,U,Oe):b.mayCreate(RA,U),ve)throw new b.ErrnoError(ve);if(!Z.node_ops.rename)throw new b.ErrnoError(63);if(b.isMountpoint(ee)||Pe&&b.isMountpoint(Pe))throw new b.ErrnoError(10);if(RA!==Z&&(ve=b.nodePermissions(Z,"w"),ve))throw new b.ErrnoError(ve);b.hashRemoveNode(ee);try{Z.node_ops.rename(ee,RA,U),ee.parent=RA}catch(Ne){throw Ne}finally{b.hashAddNode(ee)}}},rmdir(Q){var m=b.lookupPath(Q,{parent:!0}),v=m.node,p=X.basename(Q),F=b.lookupNode(v,p),U=b.mayDelete(v,p,!0);if(U)throw new b.ErrnoError(U);if(!v.node_ops.rmdir)throw new b.ErrnoError(63);if(b.isMountpoint(F))throw new b.ErrnoError(10);v.node_ops.rmdir(v,p),b.destroyNode(F)},readdir(Q){var m=b.lookupPath(Q,{follow:!0}),v=m.node;if(!v.node_ops.readdir)throw new b.ErrnoError(54);return v.node_ops.readdir(v)},unlink(Q){var m=b.lookupPath(Q,{parent:!0}),v=m.node;if(!v)throw new b.ErrnoError(44);var p=X.basename(Q),F=b.lookupNode(v,p),U=b.mayDelete(v,p,!1);if(U)throw new b.ErrnoError(U);if(!v.node_ops.unlink)throw new b.ErrnoError(63);if(b.isMountpoint(F))throw new b.ErrnoError(10);v.node_ops.unlink(v,p),b.destroyNode(F)},readlink(Q){var m=b.lookupPath(Q),v=m.node;if(!v)throw new b.ErrnoError(44);if(!v.node_ops.readlink)throw new b.ErrnoError(28);return Ee.resolve(b.getPath(v.parent),v.node_ops.readlink(v))},stat(Q,m){var v=b.lookupPath(Q,{follow:!m}),p=v.node;if(!p)throw new b.ErrnoError(44);if(!p.node_ops.getattr)throw new b.ErrnoError(63);return p.node_ops.getattr(p)},lstat(Q){return b.stat(Q,!0)},chmod(Q,m,v){var p;if(typeof Q=="string"){var F=b.lookupPath(Q,{follow:!v});p=F.node}else p=Q;if(!p.node_ops.setattr)throw new b.ErrnoError(63);p.node_ops.setattr(p,{mode:m&4095|p.mode&-4096,timestamp:Date.now()})},lchmod(Q,m){b.chmod(Q,m,!0)},fchmod(Q,m){var v=b.getStreamChecked(Q);b.chmod(v.node,m)},chown(Q,m,v,p){var F;if(typeof Q=="string"){var U=b.lookupPath(Q,{follow:!p});F=U.node}else F=Q;if(!F.node_ops.setattr)throw new b.ErrnoError(63);F.node_ops.setattr(F,{timestamp:Date.now()})},lchown(Q,m,v){b.chown(Q,m,v,!0)},fchown(Q,m,v){var p=b.getStreamChecked(Q);b.chown(p.node,m,v)},truncate(Q,m){if(m<0)throw new b.ErrnoError(28);var v;if(typeof Q=="string"){var p=b.lookupPath(Q,{follow:!0});v=p.node}else v=Q;if(!v.node_ops.setattr)throw new b.ErrnoError(63);if(b.isDir(v.mode))throw new b.ErrnoError(31);if(!b.isFile(v.mode))throw new b.ErrnoError(28);var F=b.nodePermissions(v,"w");if(F)throw new b.ErrnoError(F);v.node_ops.setattr(v,{size:m,timestamp:Date.now()})},ftruncate(Q,m){var v=b.getStreamChecked(Q);if((v.flags&2097155)===0)throw new b.ErrnoError(28);b.truncate(v.node,m)},utime(Q,m,v){var p=b.lookupPath(Q,{follow:!0}),F=p.node;F.node_ops.setattr(F,{timestamp:Math.max(m,v)})},open(Q,m,v){if(Q==="")throw new b.ErrnoError(44);m=typeof m=="string"?Mi(m):m,m&64?(v=typeof v>"u"?438:v,v=v&4095|32768):v=0;var p;if(typeof Q=="object")p=Q;else{Q=X.normalize(Q);try{var F=b.lookupPath(Q,{follow:!(m&131072)});p=F.node}catch{}}var U=!1;if(m&64)if(p){if(m&128)throw new b.ErrnoError(20)}else p=b.mknod(Q,v,0),U=!0;if(!p)throw new b.ErrnoError(44);if(b.isChrdev(p.mode)&&(m&=-513),m&65536&&!b.isDir(p.mode))throw new b.ErrnoError(54);if(!U){var q=b.mayOpen(p,m);if(q)throw new b.ErrnoError(q)}m&512&&!U&&b.truncate(p,0),m&=-131713;var Z=b.createStream({node:p,path:b.getPath(p),flags:m,seekable:!0,position:0,stream_ops:p.stream_ops,ungotten:[],error:!1});return Z.stream_ops.open&&Z.stream_ops.open(Z),Z},close(Q){if(b.isClosed(Q))throw new b.ErrnoError(8);Q.getdents&&(Q.getdents=null);try{Q.stream_ops.close&&Q.stream_ops.close(Q)}catch(m){throw m}finally{b.closeStream(Q.fd)}Q.fd=null},isClosed(Q){return Q.fd===null},llseek(Q,m,v){if(b.isClosed(Q))throw new b.ErrnoError(8);if(!Q.seekable||!Q.stream_ops.llseek)throw new b.ErrnoError(70);if(v!=0&&v!=1&&v!=2)throw new b.ErrnoError(28);return Q.position=Q.stream_ops.llseek(Q,m,v),Q.ungotten=[],Q.position},read(Q,m,v,p,F){if(p<0||F<0)throw new b.ErrnoError(28);if(b.isClosed(Q))throw new b.ErrnoError(8);if((Q.flags&2097155)===1)throw new b.ErrnoError(8);if(b.isDir(Q.node.mode))throw new b.ErrnoError(31);if(!Q.stream_ops.read)throw new b.ErrnoError(28);var U=typeof F<"u";if(!U)F=Q.position;else if(!Q.seekable)throw new b.ErrnoError(70);var q=Q.stream_ops.read(Q,m,v,p,F);return U||(Q.position+=q),q},write(Q,m,v,p,F,U){if(p<0||F<0)throw new b.ErrnoError(28);if(b.isClosed(Q))throw new b.ErrnoError(8);if((Q.flags&2097155)===0)throw new b.ErrnoError(8);if(b.isDir(Q.node.mode))throw new b.ErrnoError(31);if(!Q.stream_ops.write)throw new b.ErrnoError(28);Q.seekable&&Q.flags&1024&&b.llseek(Q,0,2);var q=typeof F<"u";if(!q)F=Q.position;else if(!Q.seekable)throw new b.ErrnoError(70);var Z=Q.stream_ops.write(Q,m,v,p,F,U);return q||(Q.position+=Z),Z},allocate(Q,m,v){if(b.isClosed(Q))throw new b.ErrnoError(8);if(m<0||v<=0)throw new b.ErrnoError(28);if((Q.flags&2097155)===0)throw new b.ErrnoError(8);if(!b.isFile(Q.node.mode)&&!b.isDir(Q.node.mode))throw new b.ErrnoError(43);if(!Q.stream_ops.allocate)throw new b.ErrnoError(138);Q.stream_ops.allocate(Q,m,v)},mmap(Q,m,v,p,F){if((p&2)!==0&&(F&2)===0&&(Q.flags&2097155)!==2)throw new b.ErrnoError(2);if((Q.flags&2097155)===1)throw new b.ErrnoError(2);if(!Q.stream_ops.mmap)throw new b.ErrnoError(43);if(!m)throw new b.ErrnoError(28);return Q.stream_ops.mmap(Q,m,v,p,F)},msync(Q,m,v,p,F){return Q.stream_ops.msync?Q.stream_ops.msync(Q,m,v,p,F):0},ioctl(Q,m,v){if(!Q.stream_ops.ioctl)throw new b.ErrnoError(59);return Q.stream_ops.ioctl(Q,m,v)},readFile(Q,m={}){if(m.flags=m.flags||0,m.encoding=m.encoding||"binary",m.encoding!=="utf8"&&m.encoding!=="binary")throw new Error(`Invalid encoding type "${m.encoding}"`);var v,p=b.open(Q,m.flags),F=b.stat(Q),U=F.size,q=new Uint8Array(U);return b.read(p,q,0,U,0),m.encoding==="utf8"?v=St(q):m.encoding==="binary"&&(v=q),b.close(p),v},writeFile(Q,m,v={}){v.flags=v.flags||577;var p=b.open(Q,v.flags,v.mode);if(typeof m=="string"){var F=new Uint8Array(MA(m)+1),U=Ct(m,F,0,F.length);b.write(p,F,0,U,void 0,v.canOwn)}else if(ArrayBuffer.isView(m))b.write(p,m,0,m.byteLength,void 0,v.canOwn);else throw new Error("Unsupported data type");b.close(p)},cwd:()=>b.currentPath,chdir(Q){var m=b.lookupPath(Q,{follow:!0});if(m.node===null)throw new b.ErrnoError(44);if(!b.isDir(m.node.mode))throw new b.ErrnoError(54);var v=b.nodePermissions(m.node,"x");if(v)throw new b.ErrnoError(v);b.currentPath=m.path},createDefaultDirectories(){b.mkdir("/tmp"),b.mkdir("/home"),b.mkdir("/home/web_user")},createDefaultDevices(){b.mkdir("/dev"),b.registerDevice(b.makedev(1,3),{read:()=>0,write:(p,F,U,q,Z)=>q}),b.mkdev("/dev/null",b.makedev(1,3)),ot.register(b.makedev(5,0),ot.default_tty_ops),ot.register(b.makedev(6,0),ot.default_tty1_ops),b.mkdev("/dev/tty",b.makedev(5,0)),b.mkdev("/dev/tty1",b.makedev(6,0));var Q=new Uint8Array(1024),m=0,v=()=>(m===0&&(m=le(Q).byteLength),Q[--m]);b.createDevice("/dev","random",v),b.createDevice("/dev","urandom",v),b.mkdir("/dev/shm"),b.mkdir("/dev/shm/tmp")},createSpecialDirectories(){b.mkdir("/proc");var Q=b.mkdir("/proc/self");b.mkdir("/proc/self/fd"),b.mount({mount(){var m=b.createNode(Q,"fd",16895,73);return m.node_ops={lookup(v,p){var F=+p,U=b.getStreamChecked(F),q={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>U.path}};return q.parent=q,q}},m}},{},"/proc/self/fd")},createStandardStreams(Q,m,v){Q?b.createDevice("/dev","stdin",Q):b.symlink("/dev/tty","/dev/stdin"),m?b.createDevice("/dev","stdout",null,m):b.symlink("/dev/tty","/dev/stdout"),v?b.createDevice("/dev","stderr",null,v):b.symlink("/dev/tty1","/dev/stderr"),b.open("/dev/stdin",0),b.open("/dev/stdout",1),b.open("/dev/stderr",1)},staticInit(){[44].forEach(Q=>{b.genericErrors[Q]=new b.ErrnoError(Q),b.genericErrors[Q].stack=""}),b.nameTable=new Array(4096),b.mount(Le,{},"/"),b.createDefaultDirectories(),b.createDefaultDevices(),b.createSpecialDirectories(),b.filesystems={MEMFS:Le}},init(Q,m,v){b.initialized=!0,b.createStandardStreams(Q,m,v)},quit(){b.initialized=!1;for(var Q=0;Qthis.length-1||ve<0)){var Ne=ve%this.chunkSize,Yi=ve/this.chunkSize|0;return this.getter(Yi)[Ne]}}setDataGetter(ve){this.getter=ve}cacheLength(){var ve=new XMLHttpRequest;if(ve.open("HEAD",v,!1),ve.send(null),!(ve.status>=200&&ve.status<300||ve.status===304))throw new Error("Couldn't load "+v+". Status: "+ve.status);var Ne=Number(ve.getResponseHeader("Content-length")),Yi,H=(Yi=ve.getResponseHeader("Accept-Ranges"))&&Yi==="bytes",rA=(Yi=ve.getResponseHeader("Content-Encoding"))&&Yi==="gzip",HA=1024*1024;H||(HA=Ne);var De=(Ie,dt)=>{if(Ie>dt)throw new Error("invalid range ("+Ie+", "+dt+") or no bytes requested!");if(dt>Ne-1)throw new Error("only "+Ne+" bytes available! programmer error!");var At=new XMLHttpRequest;if(At.open("GET",v,!1),Ne!==HA&&At.setRequestHeader("Range","bytes="+Ie+"-"+dt),At.responseType="arraybuffer",At.overrideMimeType&&At.overrideMimeType("text/plain; charset=x-user-defined"),At.send(null),!(At.status>=200&&At.status<300||At.status===304))throw new Error("Couldn't load "+v+". Status: "+At.status);return At.response!==void 0?new Uint8Array(At.response||[]):$e(At.responseText||"",!0)},fe=this;fe.setDataGetter(Ie=>{var dt=Ie*HA,At=(Ie+1)*HA-1;if(At=Math.min(At,Ne-1),typeof fe.chunks[Ie]>"u"&&(fe.chunks[Ie]=De(dt,At)),typeof fe.chunks[Ie]>"u")throw new Error("doXHR failed!");return fe.chunks[Ie]}),(rA||!Ne)&&(HA=Ne=1,Ne=this.getter(0).length,HA=Ne,d("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=Ne,this._chunkSize=HA,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var q,Z}else var Z={isDevice:!1,url:v};var RA=b.createFile(Q,m,Z,p,F);Z.contents?RA.contents=Z.contents:Z.url&&(RA.contents=null,RA.url=Z.url),Object.defineProperties(RA,{usedBytes:{get:function(){return this.contents.length}}});var ee={},ne=Object.keys(RA.stream_ops);ne.forEach(Oe=>{var ve=RA.stream_ops[Oe];ee[Oe]=(...Ne)=>(b.forceLoadFile(RA),ve(...Ne))});function Pe(Oe,ve,Ne,Yi,H){var rA=Oe.node.contents;if(H>=rA.length)return 0;var HA=Math.min(rA.length-H,Yi);if(rA.slice)for(var De=0;De(b.forceLoadFile(RA),Pe(Oe,ve,Ne,Yi,H)),ee.mmap=(Oe,ve,Ne,Yi,H)=>{b.forceLoadFile(RA);var rA=Oi(ve);if(!rA)throw new b.ErrnoError(48);return Pe(Oe,R,rA,ve,Ne),{ptr:rA,allocated:!0}},RA.stream_ops=ee,RA}},et={DEFAULT_POLLMASK:5,calculateAt(Q,m,v){if(X.isAbs(m))return m;var p;if(Q===-100)p=b.cwd();else{var F=et.getStreamFromFD(Q);p=F.path}if(m.length==0){if(!v)throw new b.ErrnoError(44);return p}return X.join2(p,m)},doStat(Q,m,v){var p=Q(m);J[v>>2]=p.dev,J[v+4>>2]=p.mode,z[v+8>>2]=p.nlink,J[v+12>>2]=p.uid,J[v+16>>2]=p.gid,J[v+20>>2]=p.rdev,O[v+24>>3]=BigInt(p.size),J[v+32>>2]=4096,J[v+36>>2]=p.blocks;var F=p.atime.getTime(),U=p.mtime.getTime(),q=p.ctime.getTime();return O[v+40>>3]=BigInt(Math.floor(F/1e3)),z[v+48>>2]=F%1e3*1e3*1e3,O[v+56>>3]=BigInt(Math.floor(U/1e3)),z[v+64>>2]=U%1e3*1e3*1e3,O[v+72>>3]=BigInt(Math.floor(q/1e3)),z[v+80>>2]=q%1e3*1e3*1e3,O[v+88>>3]=BigInt(p.ino),0},doMsync(Q,m,v,p,F){if(!b.isFile(m.node.mode))throw new b.ErrnoError(43);if(p&2)return 0;var U=D.slice(Q,Q+v);b.msync(m,U,F,v,p)},getStreamFromFD(Q){var m=b.getStreamChecked(Q);return m},varargs:void 0,getStr(Q){var m=Se(Q);return m}};function ai(Q,m,v,p){try{if(m=et.getStr(m),m=et.calculateAt(Q,m),v&-8)return-28;var F=b.lookupPath(m,{follow:!0}),U=F.node;if(!U)return-44;var q="";return v&4&&(q+="r"),v&2&&(q+="w"),v&1&&(q+="x"),q&&b.nodePermissions(U,q)?-2:0}catch(Z){if(typeof b>"u"||Z.name!=="ErrnoError")throw Z;return-Z.errno}}function Wi(){var Q=J[+et.varargs>>2];return et.varargs+=4,Q}var Xi=Wi;function xn(Q,m,v){et.varargs=v;try{var p=et.getStreamFromFD(Q);switch(m){case 0:{var F=Wi();if(F<0)return-28;for(;b.streams[F];)F++;var U;return U=b.dupStream(p,F),U.fd}case 1:case 2:return 0;case 3:return p.flags;case 4:{var F=Wi();return p.flags|=F,0}case 12:{var F=Xi(),q=0;return G[F+q>>1]=2,0}case 13:case 14:return 0}return-28}catch(Z){if(typeof b>"u"||Z.name!=="ErrnoError")throw Z;return-Z.errno}}function Mo(Q,m){try{var v=et.getStreamFromFD(Q);return et.doStat(b.stat,v.path,m)}catch(p){if(typeof b>"u"||p.name!=="ErrnoError")throw p;return-p.errno}}function vn(Q,m,v){et.varargs=v;try{var p=et.getStreamFromFD(Q);switch(m){case 21509:return p.tty?0:-59;case 21505:{if(!p.tty)return-59;if(p.tty.ops.ioctl_tcgets){var F=p.tty.ops.ioctl_tcgets(p),U=Xi();J[U>>2]=F.c_iflag||0,J[U+4>>2]=F.c_oflag||0,J[U+8>>2]=F.c_cflag||0,J[U+12>>2]=F.c_lflag||0;for(var q=0;q<32;q++)R[U+q+17]=F.c_cc[q]||0;return 0}return 0}case 21510:case 21511:case 21512:return p.tty?0:-59;case 21506:case 21507:case 21508:{if(!p.tty)return-59;if(p.tty.ops.ioctl_tcsets){for(var U=Xi(),Z=J[U>>2],RA=J[U+4>>2],ee=J[U+8>>2],ne=J[U+12>>2],Pe=[],q=0;q<32;q++)Pe.push(R[U+q+17]);return p.tty.ops.ioctl_tcsets(p.tty,m,{c_iflag:Z,c_oflag:RA,c_cflag:ee,c_lflag:ne,c_cc:Pe})}return 0}case 21519:{if(!p.tty)return-59;var U=Xi();return J[U>>2]=0,0}case 21520:return p.tty?-28:-59;case 21531:{var U=Xi();return b.ioctl(p,m,U)}case 21523:{if(!p.tty)return-59;if(p.tty.ops.ioctl_tiocgwinsz){var Oe=p.tty.ops.ioctl_tiocgwinsz(p.tty),U=Xi();G[U>>1]=Oe[0],G[U+2>>1]=Oe[1]}return 0}case 21524:return p.tty?0:-59;case 21515:return p.tty?0:-59;default:return-28}}catch(ve){if(typeof b>"u"||ve.name!=="ErrnoError")throw ve;return-ve.errno}}function In(Q,m,v,p){try{m=et.getStr(m);var F=p&256,U=p&4096;return p=p&-6401,m=et.calculateAt(Q,m,U),et.doStat(F?b.lstat:b.stat,m,v)}catch(q){if(typeof b>"u"||q.name!=="ErrnoError")throw q;return-q.errno}}function qo(Q,m,v,p){et.varargs=p;try{m=et.getStr(m),m=et.calculateAt(Q,m);var F=p?Wi():0;return b.open(m,v,F).fd}catch(U){if(typeof b>"u"||U.name!=="ErrnoError")throw U;return-U.errno}}function Vo(Q,m){try{return Q=et.getStr(Q),et.doStat(b.stat,Q,m)}catch(v){if(typeof b>"u"||v.name!=="ErrnoError")throw v;return-v.errno}}var uo=()=>{JA("")},Qn=Q=>Q%4===0&&(Q%100!==0||Q%400===0),Kn=[0,31,60,91,121,152,182,213,244,274,305,335],$A=[0,31,59,90,120,151,181,212,243,273,304,334],Ei=Q=>{var m=Qn(Q.getFullYear()),v=m?Kn:$A,p=v[Q.getMonth()]+Q.getDate()-1;return p},Ri=9007199254740992,un=-9007199254740992,Un=Q=>QRi?NaN:Number(Q);function Zo(Q,m){Q=Un(Q);var v=new Date(Q*1e3);J[m>>2]=v.getSeconds(),J[m+4>>2]=v.getMinutes(),J[m+8>>2]=v.getHours(),J[m+12>>2]=v.getDate(),J[m+16>>2]=v.getMonth(),J[m+20>>2]=v.getFullYear()-1900,J[m+24>>2]=v.getDay();var p=Ei(v)|0;J[m+28>>2]=p,J[m+36>>2]=-(v.getTimezoneOffset()*60);var F=new Date(v.getFullYear(),0,1),U=new Date(v.getFullYear(),6,1).getTimezoneOffset(),q=F.getTimezoneOffset(),Z=(U!=q&&v.getTimezoneOffset()==Math.min(q,U))|0;J[m+32>>2]=Z}function Ci(Q,m,v,p,F,U,q){F=Un(F);try{if(isNaN(F))return 61;var Z=et.getStreamFromFD(p),RA=b.mmap(Z,Q,F,m,v),ee=RA.ptr;return J[U>>2]=RA.allocated,z[q>>2]=ee,0}catch(ne){if(typeof b>"u"||ne.name!=="ErrnoError")throw ne;return-ne.errno}}function io(Q,m,v,p,F,U){U=Un(U);try{var q=et.getStreamFromFD(F);v&2&&et.doMsync(Q,q,m,p,U)}catch(Z){if(typeof b>"u"||Z.name!=="ErrnoError")throw Z;return-Z.errno}}var Wo=(Q,m,v)=>Ct(Q,D,m,v),Xo=(Q,m,v,p)=>{var F=new Date().getFullYear(),U=new Date(F,0,1),q=new Date(F,6,1),Z=U.getTimezoneOffset(),RA=q.getTimezoneOffset(),ee=Math.max(Z,RA);z[Q>>2]=ee*60,J[m>>2]=+(Z!=RA);var ne=ve=>{var Ne=ve>=0?"-":"+",Yi=Math.abs(ve),H=String(Math.floor(Yi/60)).padStart(2,"0"),rA=String(Yi%60).padStart(2,"0");return`UTC${Ne}${H}${rA}`},Pe=ne(Z),Oe=ne(RA);RADate.now(),on=()=>2147483648,$i=Q=>{var m=w.buffer,v=(Q-m.byteLength+65535)/65536|0;try{return w.grow(v),j(),1}catch{}},yt=Q=>{var m=D.length;Q>>>=0;var v=on();if(Q>v)return!1;for(var p=1;p<=4;p*=2){var F=m*(1+.2/p);F=Math.min(F,Q+100663296);var U=Math.min(v,Zi(Math.max(Q,F),65536)),q=$i(U);if(q)return!0}return!1},hn={},hA=()=>a,Ae=()=>{if(!Ae.strings){var Q=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",m={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:Q,_:hA()};for(var v in hn)hn[v]===void 0?delete m[v]:m[v]=hn[v];var p=[];for(var v in m)p.push(`${v}=${m[v]}`);Ae.strings=p}return Ae.strings},re=(Q,m)=>{for(var v=0;v{var v=0;return Ae().forEach((p,F)=>{var U=m+v;z[Q+F*4>>2]=U,re(p,U),v+=p.length+1}),0},ue=(Q,m)=>{var v=Ae();z[Q>>2]=v.length;var p=0;return v.forEach(F=>p+=F.length+1),z[m>>2]=p,0},aA=Q=>{c(Q,new Gt(Q))},DA=(Q,m)=>{aA(Q)},PA=DA;function Je(Q){try{var m=et.getStreamFromFD(Q);return b.close(m),0}catch(v){if(typeof b>"u"||v.name!=="ErrnoError")throw v;return v.errno}}var vt=(Q,m,v,p)=>{for(var F=0,U=0;U>2],Z=z[m+4>>2];m+=8;var RA=b.read(Q,R,q,Z,p);if(RA<0)return-1;if(F+=RA,RA>2]=U,0}catch(q){if(typeof b>"u"||q.name!=="ErrnoError")throw q;return q.errno}}function rn(Q,m,v,p){m=Un(m);try{if(isNaN(m))return 61;var F=et.getStreamFromFD(Q);return b.llseek(F,m,v),O[p>>3]=BigInt(F.position),F.getdents&&m===0&&v===0&&(F.getdents=null),0}catch(U){if(typeof b>"u"||U.name!=="ErrnoError")throw U;return U.errno}}var no=(Q,m,v,p)=>{for(var F=0,U=0;U>2],Z=z[m+4>>2];m+=8;var RA=b.write(Q,R,q,Z,p);if(RA<0)return-1;if(F+=RA,RA>2]=U,0}catch(q){if(typeof b>"u"||q.name!=="ErrnoError")throw q;return q.errno}}var Ji=Q=>{var m=i["_"+Q];return m},bt=(Q,m)=>{R.set(Q,m)},Li=Q=>bn(Q),Mn=Q=>{var m=MA(Q)+1,v=Li(m);return Wo(Q,v,m),v},Qt=(Q,m,v,p,F)=>{var U={string:Ne=>{var Yi=0;return Ne!=null&&Ne!==0&&(Yi=Mn(Ne)),Yi},array:Ne=>{var Yi=Li(Ne.length);return bt(Ne,Yi),Yi}};function q(Ne){return m==="string"?Se(Ne):m==="boolean"?!!Ne:Ne}var Z=Ji(Q),RA=[],ee=0;if(p)for(var ne=0;ne(i._viz_set_y_invert=Te.A)(Q),i._viz_set_reduce=Q=>(i._viz_set_reduce=Te.B)(Q),i._viz_get_graphviz_version=()=>(i._viz_get_graphviz_version=Te.C)(),i._free=Q=>(i._free=Te.D)(Q),i._malloc=Q=>(i._malloc=Te.E)(Q),i._viz_get_plugin_list=Q=>(i._viz_get_plugin_list=Te.G)(Q),i._viz_create_graph=(Q,m,v)=>(i._viz_create_graph=Te.H)(Q,m,v),i._viz_read_one_graph=Q=>(i._viz_read_one_graph=Te.I)(Q),i._viz_string_dup=(Q,m)=>(i._viz_string_dup=Te.J)(Q,m),i._viz_string_dup_html=(Q,m)=>(i._viz_string_dup_html=Te.K)(Q,m),i._viz_string_free=(Q,m)=>(i._viz_string_free=Te.L)(Q,m),i._viz_string_free_html=(Q,m)=>(i._viz_string_free_html=Te.M)(Q,m),i._viz_add_node=(Q,m)=>(i._viz_add_node=Te.N)(Q,m),i._viz_add_edge=(Q,m,v)=>(i._viz_add_edge=Te.O)(Q,m,v),i._viz_add_subgraph=(Q,m)=>(i._viz_add_subgraph=Te.P)(Q,m),i._viz_set_default_graph_attribute=(Q,m,v)=>(i._viz_set_default_graph_attribute=Te.Q)(Q,m,v),i._viz_set_default_node_attribute=(Q,m,v)=>(i._viz_set_default_node_attribute=Te.R)(Q,m,v),i._viz_set_default_edge_attribute=(Q,m,v)=>(i._viz_set_default_edge_attribute=Te.S)(Q,m,v),i._viz_set_attribute=(Q,m,v)=>(i._viz_set_attribute=Te.T)(Q,m,v),i._viz_free_graph=Q=>(i._viz_free_graph=Te.U)(Q),i._viz_create_context=()=>(i._viz_create_context=Te.V)(),i._viz_free_context=Q=>(i._viz_free_context=Te.W)(Q),i._viz_layout=(Q,m,v)=>(i._viz_layout=Te.X)(Q,m,v),i._viz_free_layout=(Q,m)=>(i._viz_free_layout=Te.Y)(Q,m),i._viz_reset_errors=()=>(i._viz_reset_errors=Te.Z)(),i._viz_render=(Q,m,v)=>(i._viz_render=Te._)(Q,m,v);var Qi=(Q,m)=>(Qi=Te.$)(Q,m),mi=Q=>(mi=Te.aa)(Q),bn=Q=>(bn=Te.ba)(Q),Ko=()=>(Ko=Te.ca)();i.ccall=Qt,i.getValue=oe,i.PATH=X,i.UTF8ToString=Se,i.stringToUTF8=Wo,i.lengthBytesUTF8=MA,i.FS=b;var Ot,Nr;VA=function Q(){Ot||Jn(),Ot||(VA=Q)};function Jn(){if(wA>0||!Nr&&(Nr=1,IA(),wA>0))return;function Q(){Ot||(Ot=1,i.calledRun=1,!x&&(SA(),n(i),nA()))}Q()}return Jn(),A=r,A}})(),ygA=[[/^Error: (.*)/,"error"],[/^Warning: (.*)/,"warning"]];function LjA(t){return t.map(e=>{for(let A=0;A{if(typeof A.name!="string")throw new Error("image name must be a string");if(typeof A.width!="number"&&typeof A.width!="string")throw new Error("image width must be a number or string");if(typeof A.height!="number"&&typeof A.height!="string")throw new Error("image height must be a number or string");let i=t.PATH.join("/",A.name),n=` + +`;return t.FS.createPath("/",t.PATH.dirname(i)),t.FS.writeFile(i,n),i}):[]}function _jA(t,e){for(let A of e)t.FS.analyzePath(A).exists&&t.FS.unlink(A)}function GjA(t,e,A){let i;try{let n=t.lengthBytesUTF8(e);return i=t.ccall("malloc","number",["number"],[n+1]),t.stringToUTF8(e,i,n+1),t.ccall("viz_read_one_graph","number",["number"],[i])}finally{i&&t.ccall("free","number",["number"],[i])}}function KjA(t,e,A){let i=t.ccall("viz_create_graph","number",["string","number","number"],[e.name,typeof e.directed<"u"?e.directed:!0,typeof e.strict<"u"?e.strict:!1]);return kgA(t,i,e),i}function kgA(t,e,A){SgA(t,e,A),A.nodes&&A.nodes.forEach(i=>{let n=t.ccall("viz_add_node","number",["number","string"],[e,String(i.name)]);i.attributes&&bgA(t,e,n,i.attributes)}),A.edges&&A.edges.forEach(i=>{let n=t.ccall("viz_add_edge","number",["number","string","string"],[e,String(i.tail),String(i.head)]);i.attributes&&bgA(t,e,n,i.attributes)}),A.subgraphs&&A.subgraphs.forEach(i=>{let n=t.ccall("viz_add_subgraph","number",["number","string"],[e,String(i.name)]);kgA(t,n,i)})}function SgA(t,e,A){if(A.graphAttributes)for(let[i,n]of Object.entries(A.graphAttributes))iv(t,e,n,o=>{t.ccall("viz_set_default_graph_attribute","number",["number","string","number"],[e,i,o])});if(A.nodeAttributes)for(let[i,n]of Object.entries(A.nodeAttributes))iv(t,e,n,o=>{t.ccall("viz_set_default_node_attribute","number",["number","string","number"],[e,i,o])});if(A.edgeAttributes)for(let[i,n]of Object.entries(A.edgeAttributes))iv(t,e,n,o=>{t.ccall("viz_set_default_edge_attribute","number",["number","string","number"],[e,i,o])})}function bgA(t,e,A,i){for(let[n,o]of Object.entries(i))iv(t,e,o,r=>{t.ccall("viz_set_attribute","number",["number","string","number"],[A,n,r])})}function iv(t,e,A,i){let n;if(typeof A=="object"&&"html"in A?n=t.ccall("viz_string_dup_html","number",["number","string"],[e,String(A.html)]):n=t.ccall("viz_string_dup","number",["number","string"],[e,String(A)]),n==0)throw new Error("couldn't dup string");i(n),typeof A=="object"&&"html"in A?t.ccall("viz_string_free_html","number",["number","number"],[e,n]):t.ccall("viz_string_free","number",["number","number"],[e,n])}var hU=class{constructor(e){this.module=e}get graphvizVersion(){return NjA(this.module)}get formats(){return vgA(this.module,"device")}get engines(){return vgA(this.module,"layout")}renderFormats(e,A,i={}){return MgA(this.module,e,A,sA({engine:"dot"},i))}render(e,A={}){let i;A.format===void 0?i="dot":i=A.format;let n=MgA(this.module,e,[i],sA({engine:"dot"},A));return n.status==="success"&&(n.output=n.output[i]),n}renderString(e,A={}){let i=this.render(e,A);if(i.status!=="success")throw new Error(i.errors.find(n=>n.level=="error")?.message||"render failed");return i.output}renderSVGElement(e,A={}){let i=this.renderString(e,Fe(sA({},A),{format:"svg"}));return new DOMParser().parseFromString(i,"image/svg+xml").documentElement}renderJSON(e,A={}){let i=this.renderString(e,Fe(sA({},A),{format:"json"}));return JSON.parse(i)}};function RgA(){return RjA().then(t=>new hU(t))}var nv=class t{render(e){return Ni(this,null,function*(){let A={format:"svg",engine:"dot"};return(yield RgA()).renderString(e,A)})}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var ov=new eA("AudioPlayingService");var LgA=new eA("PendingEventService"),rv=class{};var sv=new eA("VideoService");var av=new eA("WebSocketService");var cv=class t{createMessagePartFromFile(e){return Ni(this,null,function*(){return{inlineData:{displayName:e.name,data:yield this.readFileAsBytes(e),mimeType:e.type}}})}readFileAsBytes(e){return new Promise((A,i)=>{let n=new FileReader;n.onload=o=>{let r=o.target.result.split(",")[1];A(r)},n.onerror=i,n.readAsDataURL(e)})}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var gv=class t extends rv{createFunctionResponse(e,A,i){return{function_response:{id:e,name:A,response:{response:i}}}}static \u0275fac=(()=>{let e;return function(i){return(e||(e=ci(t)))(i||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var lv=class t extends Y8{sanitizer=f(oc);windowOpen(e,A,i,n){return e.open(A,i,n)}createObjectUrl(e){return URL.createObjectURL(e)}openBlobUrl(e){let A=this.createObjectUrl(e);return this.windowOpen(window,A,"_blank")}setAnchorHref(e,A){e.href=A}bypassSecurityTrustHtml(e){return this.sanitizer.bypassSecurityTrustHtml(e)}static \u0275fac=(()=>{let e;return function(i){return(e||(e=ci(t)))(i||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Iv=class t{constructor(e){this.http=e}apiServerDomain=ds.getApiServerBaseUrl();createSession(e,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${A}/users/${e}/sessions`;return this.http.post(i,null)}return new gt}listSessions(e,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${A}/users/${e}/sessions`;return this.http.get(i)}return new gt}deleteSession(e,A,i){let n=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}`;return this.http.delete(n)}getSession(e,A,i){let n=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}`;return this.http.get(n)}importSession(e,A,i){if(this.apiServerDomain!=null){let n=this.apiServerDomain+`/apps/${A}/users/${e}/sessions`;return this.http.post(n,{appName:A,userId:e,events:i})}return new gt}static \u0275fac=function(A){return new(A||t)(be(ks))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Cv=class t{audioRecordingService=f(Z7);videoService=f(sv);webSocketService=f(av);audioIntervalId=void 0;videoIntervalId=void 0;constructor(){}startAudioChat(n){return Ni(this,arguments,function*({appName:e,userId:A,sessionId:i}){let o=window.location.protocol==="https:"?"wss":"ws";this.webSocketService.connect(`${o}://${ds.getWSServerUrl()}/run_live?app_name=${e}&user_id=${A}&session_id=${i}`),yield this.startAudioStreaming()})}stopAudioChat(){this.stopAudioStreaming(),this.webSocketService.closeConnection()}startAudioStreaming(){return Ni(this,null,function*(){try{yield this.audioRecordingService.startRecording(),this.audioIntervalId=setInterval(()=>this.sendBufferedAudio(),250)}catch(e){console.error("Error accessing microphone:",e)}})}stopAudioStreaming(){clearInterval(this.audioIntervalId),this.audioIntervalId=void 0,this.audioRecordingService.stopRecording()}sendBufferedAudio(){let e=this.audioRecordingService.getCombinedAudioBuffer();if(!e)return;let A={blob:{mime_type:"audio/pcm",data:e}};this.webSocketService.sendMessage(A),this.audioRecordingService.cleanAudioBuffer()}startVideoChat(o){return Ni(this,arguments,function*({appName:e,userId:A,sessionId:i,videoContainer:n}){let r=window.location.protocol==="https:"?"wss":"ws";this.webSocketService.connect(`${r}://${ds.getWSServerUrl()}/run_live?app_name=${e}&user_id=${A}&session_id=${i}`),yield this.startAudioStreaming(),yield this.startVideoStreaming(n)})}stopVideoChat(e){this.stopAudioStreaming(),this.stopVideoStreaming(e),this.webSocketService.closeConnection()}startVideoStreaming(e){return Ni(this,null,function*(){try{yield this.videoService.startRecording(e),this.videoIntervalId=setInterval(()=>Ni(this,null,function*(){return yield this.sendCapturedFrame()}),1e3)}catch(A){console.error("Error accessing camera:",A)}})}sendCapturedFrame(){return Ni(this,null,function*(){let e=yield this.videoService.getCapturedFrame();if(!e)return;let A={blob:{mime_type:"image/jpeg",data:e}};this.webSocketService.sendMessage(A)})}stopVideoStreaming(e){clearInterval(this.videoIntervalId),this.videoIntervalId=void 0,this.videoService.stopRecording(e)}onStreamClose(){return this.webSocketService.onCloseReason()}closeStream(){this.webSocketService.closeConnection()}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var VlA=$Q(qlA());var Bv=class t{stc(e){return(0,VlA.default)(e)}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Ev=class t{selectedTraceRowSource=new Fi(void 0);selectedTraceRow$=this.selectedTraceRowSource.asObservable();eventDataSource=new Fi(void 0);eventData$=this.eventDataSource.asObservable();hoveredMessageIndicesSource=new Fi([]);hoveredMessageIndices$=this.hoveredMessageIndicesSource.asObservable();messagesSource=new Fi([]);messages$=this.messagesSource.asObservable();selectedRow(e){this.selectedTraceRowSource.next(e)}setEventData(e){this.eventDataSource.next(e)}setMessages(e){this.messagesSource.next(e)}setHoveredMessages(e,A){if(!e){this.hoveredMessageIndicesSource.next([]);return}let i=e.attributes,n=i&&i["gcp.vertex.agent.event_id"],o=0,r=[];for(let s of this.messagesSource.value){if(s.role=="user"){o++;continue}if(this.eventDataSource.value?.get(s.eventId).invocationId!=A){o++;continue}if(n)if(i["gcp.vertex.agent.event_id"]==s.eventId){r.push(o),o++;continue}else{o++;continue}else{r.push(o),o++;continue}}this.hoveredMessageIndicesSource.next(r)}resetTraceService(){this.eventDataSource.next(void 0),this.messagesSource.next([]),this.hoveredMessageIndicesSource.next([])}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Qv=class t{mediaRecorder;stream;renderer;videoElement;videoBuffer=[];constructor(e){this.renderer=e.createRenderer(null,null)}createVideoElement(e){this.clearVideoElement(e),this.videoElement=this.renderer.createElement("video"),this.renderer.setAttribute(this.videoElement,"width","400"),this.renderer.setAttribute(this.videoElement,"height","300"),this.renderer.setAttribute(this.videoElement,"autoplay","true"),this.renderer.setAttribute(this.videoElement,"muted","true"),this.renderer.appendChild(e.nativeElement,this.videoElement)}startRecording(e){return Ni(this,null,function*(){this.createVideoElement(e);try{this.stream=yield navigator.mediaDevices.getUserMedia({video:!0}),this.videoElement.srcObject=this.stream,this.mediaRecorder=new MediaRecorder(this.stream,{mimeType:"video/webm"}),this.mediaRecorder.start(1e3)}catch(A){console.error("Error accessing camera/microphone:",A)}})}getCapturedFrame(){return Ni(this,null,function*(){try{let e=yield this.captureFrame();return this.blobToUint8Array(e)}catch(e){console.error("Error capturing frame:",e);return}})}blobToUint8Array(e){return Ni(this,null,function*(){let A=yield e.arrayBuffer();return new Uint8Array(A)})}captureFrame(){return Ni(this,null,function*(){return new Promise((e,A)=>{try{let i=document.createElement("canvas");i.width=this.videoElement.videoWidth,i.height=this.videoElement.videoHeight;let n=i.getContext("2d");if(!n){A(new Error("Canvas context not supported"));return}n.drawImage(this.videoElement,0,0,i.width,i.height),i.toBlob(o=>{o?e(o):A(new Error("Failed to create image blob"))},"image/png")}catch(i){A(i)}})})}stopRecording(e){this.mediaRecorder&&this.mediaRecorder.stop(),this.stream&&this.stream.getTracks().forEach(A=>A.stop()),this.clearVideoElement(e)}clearVideoElement(e){let A=e.nativeElement.querySelector("video");A&&this.renderer.removeChild(e.nativeElement,A)}static \u0275fac=function(A){return new(A||t)(be(Ms))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var HVA={url:"",deserializer:t=>JSON.parse(t.data),serializer:t=>JSON.stringify(t)},OVA="WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }",xf=class t extends hd{constructor(e,A){if(super(),this._socket=null,e instanceof gt)this.destination=A,this.source=e;else{let i=this._config=Object.assign({},HVA);if(this._output=new qA,typeof e=="string")i.url=e;else for(let n in e)e.hasOwnProperty(n)&&(i[n]=e[n]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new sg}}lift(e){let A=new t(this._config,this.destination);return A.operator=e,A.source=this,A}_resetState(){this._socket=null,this.source||(this.destination=new sg),this._output=new qA}multiplex(e,A,i){let n=this;return new gt(o=>{try{n.next(e())}catch(s){o.error(s)}let r=n.subscribe({next:s=>{try{i(s)&&o.next(s)}catch(a){o.error(a)}},error:s=>o.error(s),complete:()=>o.complete()});return()=>{try{n.next(A())}catch(s){o.error(s)}r.unsubscribe()}})}_connectSocket(){let{WebSocketCtor:e,protocol:A,url:i,binaryType:n}=this._config,o=this._output,r=null;try{r=A?new e(i,A):new e(i),this._socket=r,n&&(this._socket.binaryType=n)}catch(a){o.error(a);return}let s=new Kt(()=>{this._socket=null,r&&r.readyState===1&&r.close()});r.onopen=a=>{let{_socket:c}=this;if(!c){r.close(),this._resetState();return}let{openObserver:g}=this._config;g&&g.next(a);let I=this.destination;this.destination=C0.create(C=>{if(r.readyState===1)try{let{serializer:d}=this._config;r.send(d(C))}catch(d){this.destination.error(d)}},C=>{let{closingObserver:d}=this._config;d&&d.next(void 0),C&&C.code?r.close(C.code,C.reason):o.error(new TypeError(OVA)),this._resetState()},()=>{let{closingObserver:C}=this._config;C&&C.next(void 0),r.close(),this._resetState()}),I&&I instanceof sg&&s.add(I.subscribe(this.destination))},r.onerror=a=>{this._resetState(),o.error(a)},r.onclose=a=>{r===this._socket&&this._resetState();let{closeObserver:c}=this._config;c&&c.next(a),a.wasClean?o.complete():o.error(a)},r.onmessage=a=>{try{let{deserializer:c}=this._config;o.next(c(a))}catch(c){o.error(c)}}}_subscribe(e){let{source:A}=this;return A?A.subscribe(e):(this._socket||this._connectSocket(),this._output.subscribe(e),e.add(()=>{let{_socket:i}=this;this._output.observers.length===0&&(i&&(i.readyState===1||i.readyState===0)&&i.close(),this._resetState())}),e)}unsubscribe(){let{_socket:e}=this;e&&(e.readyState===1||e.readyState===0)&&e.close(),this._resetState(),super.unsubscribe()}};var uv=class t{audioPlayingService=f(ov);socket$;messages$=new Fi("");audioBuffer=[];audioIntervalId=null;closeReasonSubject=new qA;connect(e){this.socket$=new xf({url:e,serializer:A=>JSON.stringify(A),deserializer:A=>A.data,closeObserver:{next:A=>{this.emitWsCloseReason(A.reason)}}}),this.socket$.subscribe(A=>{this.handleIncomingAudio(A),this.messages$.next(A)},A=>{console.error("WebSocket error:",A)}),this.audioIntervalId=setInterval(()=>this.playIncomingAudio(),250)}playIncomingAudio(){this.audioPlayingService.playAudio(this.audioBuffer),this.audioBuffer=[]}sendMessage(e){if(e.blob.data=this.arrayBufferToBase64(e.blob.data.buffer),!this.socket$||this.socket$.closed){console.error("WebSocket is not open.");return}this.socket$.next(e)}closeConnection(){clearInterval(this.audioIntervalId),this.audioIntervalId=null,this.socket$&&this.socket$.complete()}getMessages(){return this.messages$.asObservable()}arrayBufferToBase64(e){let A="",i=new Uint8Array(e),n=i.byteLength;for(let o=0;ot.json()).then(t=>{window.runtimeConfig=t,Pk(zQ,{providers:[yM(jk,Mr,Vb,G7,D6,U2,uB),{provide:A1,useClass:Iv},{provide:HB,useClass:j7},{provide:av,useClass:uv},{provide:W7,useValue:"./assets/audio-processor.js"},{provide:Z7,useClass:X7},{provide:ov,useClass:V7},{provide:sv,useClass:Qv},{provide:T8,useClass:Cv},{provide:zB,useClass:ev},{provide:Rl,useClass:Av},{provide:U8,useClass:q7},{provide:OB,useClass:$7},{provide:e1,useClass:Ev},{provide:Gc,useClass:tv},{provide:PB,useClass:nv},{provide:jB,useClass:Bv},{provide:$2,useClass:lv},{provide:J8,useClass:cv},{provide:LgA,useClass:gv},{provide:q8,useValue:P7},...t.logo?[{provide:b7,useValue:U7}]:[],aj(),{provide:ZlA,useClass:ha}]}).catch(e=>console.error(e))}); diff --git a/src/google/adk/cli/browser/main-W7QZBYAR.js b/src/google/adk/cli/browser/main-W7QZBYAR.js deleted file mode 100644 index fa3ca0a5f8..0000000000 --- a/src/google/adk/cli/browser/main-W7QZBYAR.js +++ /dev/null @@ -1,3914 +0,0 @@ -/** - * Copyright 2025 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import{a as rA,b as Ye,c as J7,d as Je,e as jQ,f as Ao}from"./chunk-EQDQRRRY.js";var PP=Je((X0e,OP)=>{"use strict";OP.exports=[{value:"#B0171F",name:"indian red"},{value:"#DC143C",css:!0,name:"crimson"},{value:"#FFB6C1",css:!0,name:"lightpink"},{value:"#FFAEB9",name:"lightpink 1"},{value:"#EEA2AD",name:"lightpink 2"},{value:"#CD8C95",name:"lightpink 3"},{value:"#8B5F65",name:"lightpink 4"},{value:"#FFC0CB",css:!0,name:"pink"},{value:"#FFB5C5",name:"pink 1"},{value:"#EEA9B8",name:"pink 2"},{value:"#CD919E",name:"pink 3"},{value:"#8B636C",name:"pink 4"},{value:"#DB7093",css:!0,name:"palevioletred"},{value:"#FF82AB",name:"palevioletred 1"},{value:"#EE799F",name:"palevioletred 2"},{value:"#CD6889",name:"palevioletred 3"},{value:"#8B475D",name:"palevioletred 4"},{value:"#FFF0F5",name:"lavenderblush 1"},{value:"#FFF0F5",css:!0,name:"lavenderblush"},{value:"#EEE0E5",name:"lavenderblush 2"},{value:"#CDC1C5",name:"lavenderblush 3"},{value:"#8B8386",name:"lavenderblush 4"},{value:"#FF3E96",name:"violetred 1"},{value:"#EE3A8C",name:"violetred 2"},{value:"#CD3278",name:"violetred 3"},{value:"#8B2252",name:"violetred 4"},{value:"#FF69B4",css:!0,name:"hotpink"},{value:"#FF6EB4",name:"hotpink 1"},{value:"#EE6AA7",name:"hotpink 2"},{value:"#CD6090",name:"hotpink 3"},{value:"#8B3A62",name:"hotpink 4"},{value:"#872657",name:"raspberry"},{value:"#FF1493",name:"deeppink 1"},{value:"#FF1493",css:!0,name:"deeppink"},{value:"#EE1289",name:"deeppink 2"},{value:"#CD1076",name:"deeppink 3"},{value:"#8B0A50",name:"deeppink 4"},{value:"#FF34B3",name:"maroon 1"},{value:"#EE30A7",name:"maroon 2"},{value:"#CD2990",name:"maroon 3"},{value:"#8B1C62",name:"maroon 4"},{value:"#C71585",css:!0,name:"mediumvioletred"},{value:"#D02090",name:"violetred"},{value:"#DA70D6",css:!0,name:"orchid"},{value:"#FF83FA",name:"orchid 1"},{value:"#EE7AE9",name:"orchid 2"},{value:"#CD69C9",name:"orchid 3"},{value:"#8B4789",name:"orchid 4"},{value:"#D8BFD8",css:!0,name:"thistle"},{value:"#FFE1FF",name:"thistle 1"},{value:"#EED2EE",name:"thistle 2"},{value:"#CDB5CD",name:"thistle 3"},{value:"#8B7B8B",name:"thistle 4"},{value:"#FFBBFF",name:"plum 1"},{value:"#EEAEEE",name:"plum 2"},{value:"#CD96CD",name:"plum 3"},{value:"#8B668B",name:"plum 4"},{value:"#DDA0DD",css:!0,name:"plum"},{value:"#EE82EE",css:!0,name:"violet"},{value:"#FF00FF",vga:!0,name:"magenta"},{value:"#FF00FF",vga:!0,css:!0,name:"fuchsia"},{value:"#EE00EE",name:"magenta 2"},{value:"#CD00CD",name:"magenta 3"},{value:"#8B008B",name:"magenta 4"},{value:"#8B008B",css:!0,name:"darkmagenta"},{value:"#800080",vga:!0,css:!0,name:"purple"},{value:"#BA55D3",css:!0,name:"mediumorchid"},{value:"#E066FF",name:"mediumorchid 1"},{value:"#D15FEE",name:"mediumorchid 2"},{value:"#B452CD",name:"mediumorchid 3"},{value:"#7A378B",name:"mediumorchid 4"},{value:"#9400D3",css:!0,name:"darkviolet"},{value:"#9932CC",css:!0,name:"darkorchid"},{value:"#BF3EFF",name:"darkorchid 1"},{value:"#B23AEE",name:"darkorchid 2"},{value:"#9A32CD",name:"darkorchid 3"},{value:"#68228B",name:"darkorchid 4"},{value:"#4B0082",css:!0,name:"indigo"},{value:"#8A2BE2",css:!0,name:"blueviolet"},{value:"#9B30FF",name:"purple 1"},{value:"#912CEE",name:"purple 2"},{value:"#7D26CD",name:"purple 3"},{value:"#551A8B",name:"purple 4"},{value:"#9370DB",css:!0,name:"mediumpurple"},{value:"#AB82FF",name:"mediumpurple 1"},{value:"#9F79EE",name:"mediumpurple 2"},{value:"#8968CD",name:"mediumpurple 3"},{value:"#5D478B",name:"mediumpurple 4"},{value:"#483D8B",css:!0,name:"darkslateblue"},{value:"#8470FF",name:"lightslateblue"},{value:"#7B68EE",css:!0,name:"mediumslateblue"},{value:"#6A5ACD",css:!0,name:"slateblue"},{value:"#836FFF",name:"slateblue 1"},{value:"#7A67EE",name:"slateblue 2"},{value:"#6959CD",name:"slateblue 3"},{value:"#473C8B",name:"slateblue 4"},{value:"#F8F8FF",css:!0,name:"ghostwhite"},{value:"#E6E6FA",css:!0,name:"lavender"},{value:"#0000FF",vga:!0,css:!0,name:"blue"},{value:"#0000EE",name:"blue 2"},{value:"#0000CD",name:"blue 3"},{value:"#0000CD",css:!0,name:"mediumblue"},{value:"#00008B",name:"blue 4"},{value:"#00008B",css:!0,name:"darkblue"},{value:"#000080",vga:!0,css:!0,name:"navy"},{value:"#191970",css:!0,name:"midnightblue"},{value:"#3D59AB",name:"cobalt"},{value:"#4169E1",css:!0,name:"royalblue"},{value:"#4876FF",name:"royalblue 1"},{value:"#436EEE",name:"royalblue 2"},{value:"#3A5FCD",name:"royalblue 3"},{value:"#27408B",name:"royalblue 4"},{value:"#6495ED",css:!0,name:"cornflowerblue"},{value:"#B0C4DE",css:!0,name:"lightsteelblue"},{value:"#CAE1FF",name:"lightsteelblue 1"},{value:"#BCD2EE",name:"lightsteelblue 2"},{value:"#A2B5CD",name:"lightsteelblue 3"},{value:"#6E7B8B",name:"lightsteelblue 4"},{value:"#778899",css:!0,name:"lightslategray"},{value:"#708090",css:!0,name:"slategray"},{value:"#C6E2FF",name:"slategray 1"},{value:"#B9D3EE",name:"slategray 2"},{value:"#9FB6CD",name:"slategray 3"},{value:"#6C7B8B",name:"slategray 4"},{value:"#1E90FF",name:"dodgerblue 1"},{value:"#1E90FF",css:!0,name:"dodgerblue"},{value:"#1C86EE",name:"dodgerblue 2"},{value:"#1874CD",name:"dodgerblue 3"},{value:"#104E8B",name:"dodgerblue 4"},{value:"#F0F8FF",css:!0,name:"aliceblue"},{value:"#4682B4",css:!0,name:"steelblue"},{value:"#63B8FF",name:"steelblue 1"},{value:"#5CACEE",name:"steelblue 2"},{value:"#4F94CD",name:"steelblue 3"},{value:"#36648B",name:"steelblue 4"},{value:"#87CEFA",css:!0,name:"lightskyblue"},{value:"#B0E2FF",name:"lightskyblue 1"},{value:"#A4D3EE",name:"lightskyblue 2"},{value:"#8DB6CD",name:"lightskyblue 3"},{value:"#607B8B",name:"lightskyblue 4"},{value:"#87CEFF",name:"skyblue 1"},{value:"#7EC0EE",name:"skyblue 2"},{value:"#6CA6CD",name:"skyblue 3"},{value:"#4A708B",name:"skyblue 4"},{value:"#87CEEB",css:!0,name:"skyblue"},{value:"#00BFFF",name:"deepskyblue 1"},{value:"#00BFFF",css:!0,name:"deepskyblue"},{value:"#00B2EE",name:"deepskyblue 2"},{value:"#009ACD",name:"deepskyblue 3"},{value:"#00688B",name:"deepskyblue 4"},{value:"#33A1C9",name:"peacock"},{value:"#ADD8E6",css:!0,name:"lightblue"},{value:"#BFEFFF",name:"lightblue 1"},{value:"#B2DFEE",name:"lightblue 2"},{value:"#9AC0CD",name:"lightblue 3"},{value:"#68838B",name:"lightblue 4"},{value:"#B0E0E6",css:!0,name:"powderblue"},{value:"#98F5FF",name:"cadetblue 1"},{value:"#8EE5EE",name:"cadetblue 2"},{value:"#7AC5CD",name:"cadetblue 3"},{value:"#53868B",name:"cadetblue 4"},{value:"#00F5FF",name:"turquoise 1"},{value:"#00E5EE",name:"turquoise 2"},{value:"#00C5CD",name:"turquoise 3"},{value:"#00868B",name:"turquoise 4"},{value:"#5F9EA0",css:!0,name:"cadetblue"},{value:"#00CED1",css:!0,name:"darkturquoise"},{value:"#F0FFFF",name:"azure 1"},{value:"#F0FFFF",css:!0,name:"azure"},{value:"#E0EEEE",name:"azure 2"},{value:"#C1CDCD",name:"azure 3"},{value:"#838B8B",name:"azure 4"},{value:"#E0FFFF",name:"lightcyan 1"},{value:"#E0FFFF",css:!0,name:"lightcyan"},{value:"#D1EEEE",name:"lightcyan 2"},{value:"#B4CDCD",name:"lightcyan 3"},{value:"#7A8B8B",name:"lightcyan 4"},{value:"#BBFFFF",name:"paleturquoise 1"},{value:"#AEEEEE",name:"paleturquoise 2"},{value:"#AEEEEE",css:!0,name:"paleturquoise"},{value:"#96CDCD",name:"paleturquoise 3"},{value:"#668B8B",name:"paleturquoise 4"},{value:"#2F4F4F",css:!0,name:"darkslategray"},{value:"#97FFFF",name:"darkslategray 1"},{value:"#8DEEEE",name:"darkslategray 2"},{value:"#79CDCD",name:"darkslategray 3"},{value:"#528B8B",name:"darkslategray 4"},{value:"#00FFFF",name:"cyan"},{value:"#00FFFF",css:!0,name:"aqua"},{value:"#00EEEE",name:"cyan 2"},{value:"#00CDCD",name:"cyan 3"},{value:"#008B8B",name:"cyan 4"},{value:"#008B8B",css:!0,name:"darkcyan"},{value:"#008080",vga:!0,css:!0,name:"teal"},{value:"#48D1CC",css:!0,name:"mediumturquoise"},{value:"#20B2AA",css:!0,name:"lightseagreen"},{value:"#03A89E",name:"manganeseblue"},{value:"#40E0D0",css:!0,name:"turquoise"},{value:"#808A87",name:"coldgrey"},{value:"#00C78C",name:"turquoiseblue"},{value:"#7FFFD4",name:"aquamarine 1"},{value:"#7FFFD4",css:!0,name:"aquamarine"},{value:"#76EEC6",name:"aquamarine 2"},{value:"#66CDAA",name:"aquamarine 3"},{value:"#66CDAA",css:!0,name:"mediumaquamarine"},{value:"#458B74",name:"aquamarine 4"},{value:"#00FA9A",css:!0,name:"mediumspringgreen"},{value:"#F5FFFA",css:!0,name:"mintcream"},{value:"#00FF7F",css:!0,name:"springgreen"},{value:"#00EE76",name:"springgreen 1"},{value:"#00CD66",name:"springgreen 2"},{value:"#008B45",name:"springgreen 3"},{value:"#3CB371",css:!0,name:"mediumseagreen"},{value:"#54FF9F",name:"seagreen 1"},{value:"#4EEE94",name:"seagreen 2"},{value:"#43CD80",name:"seagreen 3"},{value:"#2E8B57",name:"seagreen 4"},{value:"#2E8B57",css:!0,name:"seagreen"},{value:"#00C957",name:"emeraldgreen"},{value:"#BDFCC9",name:"mint"},{value:"#3D9140",name:"cobaltgreen"},{value:"#F0FFF0",name:"honeydew 1"},{value:"#F0FFF0",css:!0,name:"honeydew"},{value:"#E0EEE0",name:"honeydew 2"},{value:"#C1CDC1",name:"honeydew 3"},{value:"#838B83",name:"honeydew 4"},{value:"#8FBC8F",css:!0,name:"darkseagreen"},{value:"#C1FFC1",name:"darkseagreen 1"},{value:"#B4EEB4",name:"darkseagreen 2"},{value:"#9BCD9B",name:"darkseagreen 3"},{value:"#698B69",name:"darkseagreen 4"},{value:"#98FB98",css:!0,name:"palegreen"},{value:"#9AFF9A",name:"palegreen 1"},{value:"#90EE90",name:"palegreen 2"},{value:"#90EE90",css:!0,name:"lightgreen"},{value:"#7CCD7C",name:"palegreen 3"},{value:"#548B54",name:"palegreen 4"},{value:"#32CD32",css:!0,name:"limegreen"},{value:"#228B22",css:!0,name:"forestgreen"},{value:"#00FF00",vga:!0,name:"green 1"},{value:"#00FF00",vga:!0,css:!0,name:"lime"},{value:"#00EE00",name:"green 2"},{value:"#00CD00",name:"green 3"},{value:"#008B00",name:"green 4"},{value:"#008000",vga:!0,css:!0,name:"green"},{value:"#006400",css:!0,name:"darkgreen"},{value:"#308014",name:"sapgreen"},{value:"#7CFC00",css:!0,name:"lawngreen"},{value:"#7FFF00",name:"chartreuse 1"},{value:"#7FFF00",css:!0,name:"chartreuse"},{value:"#76EE00",name:"chartreuse 2"},{value:"#66CD00",name:"chartreuse 3"},{value:"#458B00",name:"chartreuse 4"},{value:"#ADFF2F",css:!0,name:"greenyellow"},{value:"#CAFF70",name:"darkolivegreen 1"},{value:"#BCEE68",name:"darkolivegreen 2"},{value:"#A2CD5A",name:"darkolivegreen 3"},{value:"#6E8B3D",name:"darkolivegreen 4"},{value:"#556B2F",css:!0,name:"darkolivegreen"},{value:"#6B8E23",css:!0,name:"olivedrab"},{value:"#C0FF3E",name:"olivedrab 1"},{value:"#B3EE3A",name:"olivedrab 2"},{value:"#9ACD32",name:"olivedrab 3"},{value:"#9ACD32",css:!0,name:"yellowgreen"},{value:"#698B22",name:"olivedrab 4"},{value:"#FFFFF0",name:"ivory 1"},{value:"#FFFFF0",css:!0,name:"ivory"},{value:"#EEEEE0",name:"ivory 2"},{value:"#CDCDC1",name:"ivory 3"},{value:"#8B8B83",name:"ivory 4"},{value:"#F5F5DC",css:!0,name:"beige"},{value:"#FFFFE0",name:"lightyellow 1"},{value:"#FFFFE0",css:!0,name:"lightyellow"},{value:"#EEEED1",name:"lightyellow 2"},{value:"#CDCDB4",name:"lightyellow 3"},{value:"#8B8B7A",name:"lightyellow 4"},{value:"#FAFAD2",css:!0,name:"lightgoldenrodyellow"},{value:"#FFFF00",vga:!0,name:"yellow 1"},{value:"#FFFF00",vga:!0,css:!0,name:"yellow"},{value:"#EEEE00",name:"yellow 2"},{value:"#CDCD00",name:"yellow 3"},{value:"#8B8B00",name:"yellow 4"},{value:"#808069",name:"warmgrey"},{value:"#808000",vga:!0,css:!0,name:"olive"},{value:"#BDB76B",css:!0,name:"darkkhaki"},{value:"#FFF68F",name:"khaki 1"},{value:"#EEE685",name:"khaki 2"},{value:"#CDC673",name:"khaki 3"},{value:"#8B864E",name:"khaki 4"},{value:"#F0E68C",css:!0,name:"khaki"},{value:"#EEE8AA",css:!0,name:"palegoldenrod"},{value:"#FFFACD",name:"lemonchiffon 1"},{value:"#FFFACD",css:!0,name:"lemonchiffon"},{value:"#EEE9BF",name:"lemonchiffon 2"},{value:"#CDC9A5",name:"lemonchiffon 3"},{value:"#8B8970",name:"lemonchiffon 4"},{value:"#FFEC8B",name:"lightgoldenrod 1"},{value:"#EEDC82",name:"lightgoldenrod 2"},{value:"#CDBE70",name:"lightgoldenrod 3"},{value:"#8B814C",name:"lightgoldenrod 4"},{value:"#E3CF57",name:"banana"},{value:"#FFD700",name:"gold 1"},{value:"#FFD700",css:!0,name:"gold"},{value:"#EEC900",name:"gold 2"},{value:"#CDAD00",name:"gold 3"},{value:"#8B7500",name:"gold 4"},{value:"#FFF8DC",name:"cornsilk 1"},{value:"#FFF8DC",css:!0,name:"cornsilk"},{value:"#EEE8CD",name:"cornsilk 2"},{value:"#CDC8B1",name:"cornsilk 3"},{value:"#8B8878",name:"cornsilk 4"},{value:"#DAA520",css:!0,name:"goldenrod"},{value:"#FFC125",name:"goldenrod 1"},{value:"#EEB422",name:"goldenrod 2"},{value:"#CD9B1D",name:"goldenrod 3"},{value:"#8B6914",name:"goldenrod 4"},{value:"#B8860B",css:!0,name:"darkgoldenrod"},{value:"#FFB90F",name:"darkgoldenrod 1"},{value:"#EEAD0E",name:"darkgoldenrod 2"},{value:"#CD950C",name:"darkgoldenrod 3"},{value:"#8B6508",name:"darkgoldenrod 4"},{value:"#FFA500",name:"orange 1"},{value:"#FF8000",css:!0,name:"orange"},{value:"#EE9A00",name:"orange 2"},{value:"#CD8500",name:"orange 3"},{value:"#8B5A00",name:"orange 4"},{value:"#FFFAF0",css:!0,name:"floralwhite"},{value:"#FDF5E6",css:!0,name:"oldlace"},{value:"#F5DEB3",css:!0,name:"wheat"},{value:"#FFE7BA",name:"wheat 1"},{value:"#EED8AE",name:"wheat 2"},{value:"#CDBA96",name:"wheat 3"},{value:"#8B7E66",name:"wheat 4"},{value:"#FFE4B5",css:!0,name:"moccasin"},{value:"#FFEFD5",css:!0,name:"papayawhip"},{value:"#FFEBCD",css:!0,name:"blanchedalmond"},{value:"#FFDEAD",name:"navajowhite 1"},{value:"#FFDEAD",css:!0,name:"navajowhite"},{value:"#EECFA1",name:"navajowhite 2"},{value:"#CDB38B",name:"navajowhite 3"},{value:"#8B795E",name:"navajowhite 4"},{value:"#FCE6C9",name:"eggshell"},{value:"#D2B48C",css:!0,name:"tan"},{value:"#9C661F",name:"brick"},{value:"#FF9912",name:"cadmiumyellow"},{value:"#FAEBD7",css:!0,name:"antiquewhite"},{value:"#FFEFDB",name:"antiquewhite 1"},{value:"#EEDFCC",name:"antiquewhite 2"},{value:"#CDC0B0",name:"antiquewhite 3"},{value:"#8B8378",name:"antiquewhite 4"},{value:"#DEB887",css:!0,name:"burlywood"},{value:"#FFD39B",name:"burlywood 1"},{value:"#EEC591",name:"burlywood 2"},{value:"#CDAA7D",name:"burlywood 3"},{value:"#8B7355",name:"burlywood 4"},{value:"#FFE4C4",name:"bisque 1"},{value:"#FFE4C4",css:!0,name:"bisque"},{value:"#EED5B7",name:"bisque 2"},{value:"#CDB79E",name:"bisque 3"},{value:"#8B7D6B",name:"bisque 4"},{value:"#E3A869",name:"melon"},{value:"#ED9121",name:"carrot"},{value:"#FF8C00",css:!0,name:"darkorange"},{value:"#FF7F00",name:"darkorange 1"},{value:"#EE7600",name:"darkorange 2"},{value:"#CD6600",name:"darkorange 3"},{value:"#8B4500",name:"darkorange 4"},{value:"#FFA54F",name:"tan 1"},{value:"#EE9A49",name:"tan 2"},{value:"#CD853F",name:"tan 3"},{value:"#CD853F",css:!0,name:"peru"},{value:"#8B5A2B",name:"tan 4"},{value:"#FAF0E6",css:!0,name:"linen"},{value:"#FFDAB9",name:"peachpuff 1"},{value:"#FFDAB9",css:!0,name:"peachpuff"},{value:"#EECBAD",name:"peachpuff 2"},{value:"#CDAF95",name:"peachpuff 3"},{value:"#8B7765",name:"peachpuff 4"},{value:"#FFF5EE",name:"seashell 1"},{value:"#FFF5EE",css:!0,name:"seashell"},{value:"#EEE5DE",name:"seashell 2"},{value:"#CDC5BF",name:"seashell 3"},{value:"#8B8682",name:"seashell 4"},{value:"#F4A460",css:!0,name:"sandybrown"},{value:"#C76114",name:"rawsienna"},{value:"#D2691E",css:!0,name:"chocolate"},{value:"#FF7F24",name:"chocolate 1"},{value:"#EE7621",name:"chocolate 2"},{value:"#CD661D",name:"chocolate 3"},{value:"#8B4513",name:"chocolate 4"},{value:"#8B4513",css:!0,name:"saddlebrown"},{value:"#292421",name:"ivoryblack"},{value:"#FF7D40",name:"flesh"},{value:"#FF6103",name:"cadmiumorange"},{value:"#8A360F",name:"burntsienna"},{value:"#A0522D",css:!0,name:"sienna"},{value:"#FF8247",name:"sienna 1"},{value:"#EE7942",name:"sienna 2"},{value:"#CD6839",name:"sienna 3"},{value:"#8B4726",name:"sienna 4"},{value:"#FFA07A",name:"lightsalmon 1"},{value:"#FFA07A",css:!0,name:"lightsalmon"},{value:"#EE9572",name:"lightsalmon 2"},{value:"#CD8162",name:"lightsalmon 3"},{value:"#8B5742",name:"lightsalmon 4"},{value:"#FF7F50",css:!0,name:"coral"},{value:"#FF4500",name:"orangered 1"},{value:"#FF4500",css:!0,name:"orangered"},{value:"#EE4000",name:"orangered 2"},{value:"#CD3700",name:"orangered 3"},{value:"#8B2500",name:"orangered 4"},{value:"#5E2612",name:"sepia"},{value:"#E9967A",css:!0,name:"darksalmon"},{value:"#FF8C69",name:"salmon 1"},{value:"#EE8262",name:"salmon 2"},{value:"#CD7054",name:"salmon 3"},{value:"#8B4C39",name:"salmon 4"},{value:"#FF7256",name:"coral 1"},{value:"#EE6A50",name:"coral 2"},{value:"#CD5B45",name:"coral 3"},{value:"#8B3E2F",name:"coral 4"},{value:"#8A3324",name:"burntumber"},{value:"#FF6347",name:"tomato 1"},{value:"#FF6347",css:!0,name:"tomato"},{value:"#EE5C42",name:"tomato 2"},{value:"#CD4F39",name:"tomato 3"},{value:"#8B3626",name:"tomato 4"},{value:"#FA8072",css:!0,name:"salmon"},{value:"#FFE4E1",name:"mistyrose 1"},{value:"#FFE4E1",css:!0,name:"mistyrose"},{value:"#EED5D2",name:"mistyrose 2"},{value:"#CDB7B5",name:"mistyrose 3"},{value:"#8B7D7B",name:"mistyrose 4"},{value:"#FFFAFA",name:"snow 1"},{value:"#FFFAFA",css:!0,name:"snow"},{value:"#EEE9E9",name:"snow 2"},{value:"#CDC9C9",name:"snow 3"},{value:"#8B8989",name:"snow 4"},{value:"#BC8F8F",css:!0,name:"rosybrown"},{value:"#FFC1C1",name:"rosybrown 1"},{value:"#EEB4B4",name:"rosybrown 2"},{value:"#CD9B9B",name:"rosybrown 3"},{value:"#8B6969",name:"rosybrown 4"},{value:"#F08080",css:!0,name:"lightcoral"},{value:"#CD5C5C",css:!0,name:"indianred"},{value:"#FF6A6A",name:"indianred 1"},{value:"#EE6363",name:"indianred 2"},{value:"#8B3A3A",name:"indianred 4"},{value:"#CD5555",name:"indianred 3"},{value:"#A52A2A",css:!0,name:"brown"},{value:"#FF4040",name:"brown 1"},{value:"#EE3B3B",name:"brown 2"},{value:"#CD3333",name:"brown 3"},{value:"#8B2323",name:"brown 4"},{value:"#B22222",css:!0,name:"firebrick"},{value:"#FF3030",name:"firebrick 1"},{value:"#EE2C2C",name:"firebrick 2"},{value:"#CD2626",name:"firebrick 3"},{value:"#8B1A1A",name:"firebrick 4"},{value:"#FF0000",vga:!0,name:"red 1"},{value:"#FF0000",vga:!0,css:!0,name:"red"},{value:"#EE0000",name:"red 2"},{value:"#CD0000",name:"red 3"},{value:"#8B0000",name:"red 4"},{value:"#8B0000",css:!0,name:"darkred"},{value:"#800000",vga:!0,css:!0,name:"maroon"},{value:"#8E388E",name:"sgi beet"},{value:"#7171C6",name:"sgi slateblue"},{value:"#7D9EC0",name:"sgi lightblue"},{value:"#388E8E",name:"sgi teal"},{value:"#71C671",name:"sgi chartreuse"},{value:"#8E8E38",name:"sgi olivedrab"},{value:"#C5C1AA",name:"sgi brightgray"},{value:"#C67171",name:"sgi salmon"},{value:"#555555",name:"sgi darkgray"},{value:"#1E1E1E",name:"sgi gray 12"},{value:"#282828",name:"sgi gray 16"},{value:"#515151",name:"sgi gray 32"},{value:"#5B5B5B",name:"sgi gray 36"},{value:"#848484",name:"sgi gray 52"},{value:"#8E8E8E",name:"sgi gray 56"},{value:"#AAAAAA",name:"sgi lightgray"},{value:"#B7B7B7",name:"sgi gray 72"},{value:"#C1C1C1",name:"sgi gray 76"},{value:"#EAEAEA",name:"sgi gray 92"},{value:"#F4F4F4",name:"sgi gray 96"},{value:"#FFFFFF",vga:!0,css:!0,name:"white"},{value:"#F5F5F5",name:"white smoke"},{value:"#F5F5F5",name:"gray 96"},{value:"#DCDCDC",css:!0,name:"gainsboro"},{value:"#D3D3D3",css:!0,name:"lightgrey"},{value:"#C0C0C0",vga:!0,css:!0,name:"silver"},{value:"#A9A9A9",css:!0,name:"darkgray"},{value:"#808080",vga:!0,css:!0,name:"gray"},{value:"#696969",css:!0,name:"dimgray"},{value:"#696969",name:"gray 42"},{value:"#000000",vga:!0,css:!0,name:"black"},{value:"#FCFCFC",name:"gray 99"},{value:"#FAFAFA",name:"gray 98"},{value:"#F7F7F7",name:"gray 97"},{value:"#F2F2F2",name:"gray 95"},{value:"#F0F0F0",name:"gray 94"},{value:"#EDEDED",name:"gray 93"},{value:"#EBEBEB",name:"gray 92"},{value:"#E8E8E8",name:"gray 91"},{value:"#E5E5E5",name:"gray 90"},{value:"#E3E3E3",name:"gray 89"},{value:"#E0E0E0",name:"gray 88"},{value:"#DEDEDE",name:"gray 87"},{value:"#DBDBDB",name:"gray 86"},{value:"#D9D9D9",name:"gray 85"},{value:"#D6D6D6",name:"gray 84"},{value:"#D4D4D4",name:"gray 83"},{value:"#D1D1D1",name:"gray 82"},{value:"#CFCFCF",name:"gray 81"},{value:"#CCCCCC",name:"gray 80"},{value:"#C9C9C9",name:"gray 79"},{value:"#C7C7C7",name:"gray 78"},{value:"#C4C4C4",name:"gray 77"},{value:"#C2C2C2",name:"gray 76"},{value:"#BFBFBF",name:"gray 75"},{value:"#BDBDBD",name:"gray 74"},{value:"#BABABA",name:"gray 73"},{value:"#B8B8B8",name:"gray 72"},{value:"#B5B5B5",name:"gray 71"},{value:"#B3B3B3",name:"gray 70"},{value:"#B0B0B0",name:"gray 69"},{value:"#ADADAD",name:"gray 68"},{value:"#ABABAB",name:"gray 67"},{value:"#A8A8A8",name:"gray 66"},{value:"#A6A6A6",name:"gray 65"},{value:"#A3A3A3",name:"gray 64"},{value:"#A1A1A1",name:"gray 63"},{value:"#9E9E9E",name:"gray 62"},{value:"#9C9C9C",name:"gray 61"},{value:"#999999",name:"gray 60"},{value:"#969696",name:"gray 59"},{value:"#949494",name:"gray 58"},{value:"#919191",name:"gray 57"},{value:"#8F8F8F",name:"gray 56"},{value:"#8C8C8C",name:"gray 55"},{value:"#8A8A8A",name:"gray 54"},{value:"#878787",name:"gray 53"},{value:"#858585",name:"gray 52"},{value:"#828282",name:"gray 51"},{value:"#7F7F7F",name:"gray 50"},{value:"#7D7D7D",name:"gray 49"},{value:"#7A7A7A",name:"gray 48"},{value:"#787878",name:"gray 47"},{value:"#757575",name:"gray 46"},{value:"#737373",name:"gray 45"},{value:"#707070",name:"gray 44"},{value:"#6E6E6E",name:"gray 43"},{value:"#666666",name:"gray 40"},{value:"#636363",name:"gray 39"},{value:"#616161",name:"gray 38"},{value:"#5E5E5E",name:"gray 37"},{value:"#5C5C5C",name:"gray 36"},{value:"#595959",name:"gray 35"},{value:"#575757",name:"gray 34"},{value:"#545454",name:"gray 33"},{value:"#525252",name:"gray 32"},{value:"#4F4F4F",name:"gray 31"},{value:"#4D4D4D",name:"gray 30"},{value:"#4A4A4A",name:"gray 29"},{value:"#474747",name:"gray 28"},{value:"#454545",name:"gray 27"},{value:"#424242",name:"gray 26"},{value:"#404040",name:"gray 25"},{value:"#3D3D3D",name:"gray 24"},{value:"#3B3B3B",name:"gray 23"},{value:"#383838",name:"gray 22"},{value:"#363636",name:"gray 21"},{value:"#333333",name:"gray 20"},{value:"#303030",name:"gray 19"},{value:"#2E2E2E",name:"gray 18"},{value:"#2B2B2B",name:"gray 17"},{value:"#292929",name:"gray 16"},{value:"#262626",name:"gray 15"},{value:"#242424",name:"gray 14"},{value:"#212121",name:"gray 13"},{value:"#1F1F1F",name:"gray 12"},{value:"#1C1C1C",name:"gray 11"},{value:"#1A1A1A",name:"gray 10"},{value:"#171717",name:"gray 9"},{value:"#141414",name:"gray 8"},{value:"#121212",name:"gray 7"},{value:"#0F0F0F",name:"gray 6"},{value:"#0D0D0D",name:"gray 5"},{value:"#0A0A0A",name:"gray 4"},{value:"#080808",name:"gray 3"},{value:"#050505",name:"gray 2"},{value:"#030303",name:"gray 1"},{value:"#F5F5F5",css:!0,name:"whitesmoke"}]});var VP=Je(($0e,T2)=>{"use strict";var p8=PP(),jP=p8.filter(function(t){return!!t.css}),qP=p8.filter(function(t){return!!t.vga});T2.exports=function(t){var e=T2.exports.get(t);return e&&e.value};T2.exports.get=function(t){return t=t||"",t=t.trim().toLowerCase(),p8.filter(function(e){return e.name.toLowerCase()===t}).pop()};T2.exports.all=T2.exports.get.all=function(){return p8};T2.exports.get.css=function(t){return t?(t=t||"",t=t.trim().toLowerCase(),jP.filter(function(e){return e.name.toLowerCase()===t}).pop()):jP};T2.exports.get.vga=function(t){return t?(t=t||"",t=t.trim().toLowerCase(),qP.filter(function(e){return e.name.toLowerCase()===t}).pop()):qP}});var Qj=Je((A2e,Ej)=>{"use strict";var N3A=1/0,_3A="[object Symbol]",G3A=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ij="\\ud800-\\udfff",U3A="\\u0300-\\u036f\\ufe20-\\ufe23",K3A="\\u20d0-\\u20f0",nj="\\u2700-\\u27bf",oj="a-z\\xdf-\\xf6\\xf8-\\xff",Y3A="\\xac\\xb1\\xd7\\xf7",J3A="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",T3A="\\u2000-\\u206f",H3A=" \\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",rj="A-Z\\xc0-\\xd6\\xd8-\\xde",z3A="\\ufe0e\\ufe0f",sj=Y3A+J3A+T3A+H3A,aj="['\u2019]",ZP="["+sj+"]",O3A="["+U3A+K3A+"]",cj="\\d+",P3A="["+nj+"]",lj="["+oj+"]",gj="[^"+ij+sj+cj+nj+oj+rj+"]",j3A="\\ud83c[\\udffb-\\udfff]",q3A="(?:"+O3A+"|"+j3A+")",V3A="[^"+ij+"]",Ij="(?:\\ud83c[\\udde6-\\uddff]){2}",Cj="[\\ud800-\\udbff][\\udc00-\\udfff]",UB="["+rj+"]",Z3A="\\u200d",WP="(?:"+lj+"|"+gj+")",W3A="(?:"+UB+"|"+gj+")",XP="(?:"+aj+"(?:d|ll|m|re|s|t|ve))?",$P="(?:"+aj+"(?:D|LL|M|RE|S|T|VE))?",dj=q3A+"?",Bj="["+z3A+"]?",X3A="(?:"+Z3A+"(?:"+[V3A,Ij,Cj].join("|")+")"+Bj+dj+")*",$3A=Bj+dj+X3A,AfA="(?:"+[P3A,Ij,Cj].join("|")+")"+$3A,efA=RegExp([UB+"?"+lj+"+"+XP+"(?="+[ZP,UB,"$"].join("|")+")",W3A+"+"+$P+"(?="+[ZP,UB+WP,"$"].join("|")+")",UB+"?"+WP+"+"+XP,UB+"+"+$P,cj,AfA].join("|"),"g"),tfA=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,ifA=typeof global=="object"&&global&&global.Object===Object&&global,nfA=typeof self=="object"&&self&&self.Object===Object&&self,ofA=ifA||nfA||Function("return this")();function rfA(t){return t.match(G3A)||[]}function sfA(t){return tfA.test(t)}function afA(t){return t.match(efA)||[]}var cfA=Object.prototype,lfA=cfA.toString,Aj=ofA.Symbol,ej=Aj?Aj.prototype:void 0,tj=ej?ej.toString:void 0;function gfA(t){if(typeof t=="string")return t;if(CfA(t))return tj?tj.call(t):"";var e=t+"";return e=="0"&&1/t==-N3A?"-0":e}function IfA(t){return!!t&&typeof t=="object"}function CfA(t){return typeof t=="symbol"||IfA(t)&&lfA.call(t)==_3A}function dfA(t){return t==null?"":gfA(t)}function BfA(t,e,A){return t=dfA(t),e=A?void 0:e,e===void 0?sfA(t)?afA(t):rfA(t):t.match(e)||[]}Ej.exports=BfA});var Lj=Je((e2e,xj)=>{"use strict";var EfA=1/0,QfA="[object Symbol]",hfA=/^\s+/,Vk="\\ud800-\\udfff",pj="\\u0300-\\u036f\\ufe20-\\ufe23",wj="\\u20d0-\\u20f0",Dj="\\ufe0e\\ufe0f",ufA="["+Vk+"]",jk="["+pj+wj+"]",qk="\\ud83c[\\udffb-\\udfff]",ffA="(?:"+jk+"|"+qk+")",yj="[^"+Vk+"]",vj="(?:\\ud83c[\\udde6-\\uddff]){2}",bj="[\\ud800-\\udbff][\\udc00-\\udfff]",Mj="\\u200d",kj=ffA+"?",Sj="["+Dj+"]?",mfA="(?:"+Mj+"(?:"+[yj,vj,bj].join("|")+")"+Sj+kj+")*",pfA=Sj+kj+mfA,wfA="(?:"+[yj+jk+"?",jk,vj,bj,ufA].join("|")+")",DfA=RegExp(qk+"(?="+qk+")|"+wfA+pfA,"g"),yfA=RegExp("["+Mj+Vk+pj+wj+Dj+"]"),vfA=typeof global=="object"&&global&&global.Object===Object&&global,bfA=typeof self=="object"&&self&&self.Object===Object&&self,MfA=vfA||bfA||Function("return this")();function kfA(t){return t.split("")}function SfA(t,e,A,i){for(var n=t.length,o=A+(i?1:-1);i?o--:++o-1;);return A}function FfA(t){return yfA.test(t)}function hj(t){return FfA(t)?NfA(t):kfA(t)}function NfA(t){return t.match(DfA)||[]}var _fA=Object.prototype,GfA=_fA.toString,uj=MfA.Symbol,fj=uj?uj.prototype:void 0,mj=fj?fj.toString:void 0;function UfA(t,e,A){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),A=A>n?n:A,A<0&&(A+=n),n=e>A?0:A-e>>>0,e>>>=0;for(var o=Array(n);++i=i?t:UfA(t,e,A)}function YfA(t){return!!t&&typeof t=="object"}function JfA(t){return typeof t=="symbol"||YfA(t)&&GfA.call(t)==QfA}function TfA(t){return t==null?"":Rj(t)}function HfA(t,e,A){if(t=TfA(t),t&&(A||e===void 0))return t.replace(hfA,"");if(!t||!(e=Rj(e)))return t;var i=hj(t),n=LfA(i,hj(e));return KfA(i,n).join("")}xj.exports=HfA});var $j=Je((t2e,Xj)=>{"use strict";var Zk=1/0,zfA=9007199254740991,OfA=17976931348623157e292,Fj=NaN,PfA="[object Symbol]",jfA=/^\s+|\s+$/g,qfA=/^[-+]0x[0-9a-f]+$/i,VfA=/^0b[01]+$/i,ZfA=/^0o[0-7]+$/i,AS="\\ud800-\\udfff",Yj="\\u0300-\\u036f\\ufe20-\\ufe23",Jj="\\u20d0-\\u20f0",Tj="\\ufe0e\\ufe0f",WfA="["+AS+"]",Wk="["+Yj+Jj+"]",Xk="\\ud83c[\\udffb-\\udfff]",XfA="(?:"+Wk+"|"+Xk+")",Hj="[^"+AS+"]",zj="(?:\\ud83c[\\udde6-\\uddff]){2}",Oj="[\\ud800-\\udbff][\\udc00-\\udfff]",Pj="\\u200d",jj=XfA+"?",qj="["+Tj+"]?",$fA="(?:"+Pj+"(?:"+[Hj,zj,Oj].join("|")+")"+qj+jj+")*",AmA=qj+jj+$fA,emA="(?:"+[Hj+Wk+"?",Wk,zj,Oj,WfA].join("|")+")",$k=RegExp(Xk+"(?="+Xk+")|"+emA+AmA,"g"),tmA=RegExp("["+Pj+AS+Yj+Jj+Tj+"]"),imA=parseInt,nmA=typeof global=="object"&&global&&global.Object===Object&&global,omA=typeof self=="object"&&self&&self.Object===Object&&self,rmA=nmA||omA||Function("return this")(),smA=cmA("length");function amA(t){return t.split("")}function cmA(t){return function(e){return e?.[t]}}function eS(t){return tmA.test(t)}function Vj(t){return eS(t)?gmA(t):smA(t)}function lmA(t){return eS(t)?ImA(t):amA(t)}function gmA(t){for(var e=$k.lastIndex=0;$k.test(t);)e++;return e}function ImA(t){return t.match($k)||[]}var CmA=Object.prototype,dmA=CmA.toString,Nj=rmA.Symbol,BmA=Math.ceil,EmA=Math.floor,_j=Nj?Nj.prototype:void 0,Gj=_j?_j.toString:void 0;function Uj(t,e){var A="";if(!t||e<1||e>zfA)return A;do e%2&&(A+=t),e=EmA(e/2),e&&(t+=t);while(e);return A}function QmA(t,e,A){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),A=A>n?n:A,A<0&&(A+=n),n=e>A?0:A-e>>>0,e>>>=0;for(var o=Array(n);++i=i?t:QmA(t,e,A)}function umA(t,e){e=e===void 0?" ":Zj(e);var A=e.length;if(A<2)return A?Uj(e,t):e;var i=Uj(e,BmA(t/Vj(e)));return eS(e)?hmA(lmA(i),0,t).join(""):i.slice(0,t)}function Kj(t){var e=typeof t;return!!t&&(e=="object"||e=="function")}function fmA(t){return!!t&&typeof t=="object"}function Wj(t){return typeof t=="symbol"||fmA(t)&&dmA.call(t)==PfA}function mmA(t){if(!t)return t===0?t:0;if(t=wmA(t),t===Zk||t===-Zk){var e=t<0?-1:1;return e*OfA}return t===t?t:0}function pmA(t){var e=mmA(t),A=e%1;return e===e?A?e-A:e:0}function wmA(t){if(typeof t=="number")return t;if(Wj(t))return Fj;if(Kj(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Kj(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=t.replace(jfA,"");var A=VfA.test(t);return A||ZfA.test(t)?imA(t.slice(2),A?2:8):qfA.test(t)?Fj:+t}function DmA(t){return t==null?"":Zj(t)}function ymA(t,e,A){t=DmA(t),e=pmA(e);var i=e?Vj(t):0;return e&&i{"use strict";Aq.exports=(t,e,A,i)=>{let n=(t+(i||"")).toString().includes("%");if(typeof t=="string"?[t,e,A,i]=t.match(/(0?\.?\d{1,3})%?\b/g).map(Number):i!==void 0&&(i=parseFloat(i)),typeof t!="number"||typeof e!="number"||typeof A!="number"||t>255||e>255||A>255)throw new TypeError("Expected three numbers below 256");if(typeof i=="number"){if(!n&&i>=0&&i<=1)i=Math.round(255*i);else if(n&&i>=0&&i<=100)i=Math.round(255*i/100);else throw new TypeError(`Expected alpha value (${i}) as a fraction or percentage`);i=(i|256).toString(16).slice(1)}else i="";return(A|e<<8|t<<16|1<<24).toString(16).slice(1)+i}});var iq=Je((n2e,tq)=>{"use strict";var Ju="a-f\\d",vmA=`#?[${Ju}]{3}[${Ju}]?`,bmA=`#?[${Ju}]{6}([${Ju}]{2})?`,MmA=new RegExp(`[^#${Ju}]`,"gi"),kmA=new RegExp(`^${vmA}$|^${bmA}$`,"i");tq.exports=(t,e={})=>{if(typeof t!="string"||MmA.test(t)||!kmA.test(t))throw new TypeError("Expected a valid hex string");t=t.replace(/^#/,"");let A=1;t.length===8&&(A=Number.parseInt(t.slice(6,8),16)/255,t=t.slice(0,6)),t.length===4&&(A=Number.parseInt(t.slice(3,4).repeat(2),16)/255,t=t.slice(0,3)),t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let i=Number.parseInt(t,16),n=i>>16,o=i>>8&255,r=i&255,s=typeof e.alpha=="number"?e.alpha:A;if(e.format==="array")return[n,o,r,s];if(e.format==="css"){let a=s===1?"":` / ${Number((s*100).toFixed(2))}%`;return`rgb(${n} ${o} ${r}${a})`}return{red:n,green:o,blue:r,alpha:s}}});var rq=Je((o2e,oq)=>{"use strict";var SmA=VP(),RmA=Qj(),xmA=Lj(),LmA=$j(),FmA=eq(),nq=iq(),tS=.75,iS=.25,nS=16777215,NmA=49979693;oq.exports=function(t){return"#"+UmA(String(JSON.stringify(t)))};function _mA(t){var e=RmA(t),A=[];return e.forEach(function(i){var n=SmA(i);n&&A.push(nq(xmA(n,"#"),{format:"array"}))}),A}function GmA(t){var e=[0,0,0];return t.forEach(function(A){for(var i=0;i<3;i++)e[i]+=A[i]}),[e[0]/t.length,e[1]/t.length,e[2]/t.length]}function UmA(t){var e,A=_mA(t);A.length>0&&(e=GmA(A));var i=1,n=0,o=1;if(t.length>0)for(var r=0;rn&&(n=t[r].charCodeAt(0)),o=parseInt(nS/n),i=(i+t[r].charCodeAt(0)*o*NmA)%nS;var s=(i*t.length%nS).toString(16);s=LmA(s,6,s);var a=nq(s,{format:"array"});return e?FmA(iS*a[0]+tS*e[0],iS*a[1]+tS*e[1],iS*a[2]+tS*e[2]):s}});var xq=Je(QS=>{"use strict";var Rq={b:"\b",f:"\f",n:` -`,r:"\r",t:" ",'"':'"',"/":"/","\\":"\\"},NpA=97;QS.parse=function(t,e,A){var i={},n=0,o=0,r=0,s=A&&A.bigint&&typeof BigInt<"u";return{data:a("",!0),pointers:i};function a(U,H){c();var q;L(U,"value");var j=E();switch(j){case"t":B("rue"),q=!0;break;case"f":B("alse"),q=!1;break;case"n":B("ull"),q=null;break;case'"':q=l();break;case"[":q=C(U);break;case"{":q=d(U);break;default:h(),"-0123456789".indexOf(j)>=0?q=I():_()}return L(U,"valueEnd"),c(),H&&rNumber.MAX_SAFE_INTEGER||q="a"&&q<="f"?H+=q.charCodeAt()-NpA+10:q>="0"&&q<="9"?H+=+q:K()}return String.fromCharCode(H)}function D(){for(var U="";t[r]>="0"&&t[r]<="9";)U+=E();if(U.length)return U;z(),_()}function L(U,H){R(U,H,w())}function R(U,H,q){i[U]=i[U]||{},i[U][H]=q}function w(){return{line:n,column:o,pos:r}}function _(){throw new SyntaxError("Unexpected token "+t[r]+" in JSON at position "+r)}function K(){h(),_()}function z(){if(r>=t.length)throw new SyntaxError("Unexpected end of JSON input")}};QS.stringify=function(t,e,A){if(!x8(t))return;var i=0,n,o,r=typeof A=="object"?A.space:A;switch(typeof r){case"number":var s=r>10?10:r<0?0:Math.floor(r);r=s&&R(s," "),n=s,o=s;break;case"string":r=r.slice(0,10),n=0,o=0;for(var a=0;a=0}var GpA=/"|\\/g,UpA=/[\b]/g,KpA=/\f/g,YpA=/\n/g,JpA=/\r/g,TpA=/\t/g;function L8(t){return t=t.replace(GpA,"\\$&").replace(KpA,"\\f").replace(UpA,"\\b").replace(YpA,"\\n").replace(JpA,"\\r").replace(TpA,"\\t"),'"'+t+'"'}var HpA=/~/g,zpA=/\//g;function ES(t){return t.replace(HpA,"~0").replace(zpA,"~1")}});var XW=Je((zfe,WW)=>{"use strict";var ZW=function(t,e){var A,i,n=1,o=0,r=0,s=String.alphabet;function a(c,l,I){if(I){for(A=l;I=a(c,A),I<76&&I>65;)++A;return+c.slice(l-1,A)}return I=s&&s.indexOf(c.charAt(l)),I>-1?I+76:(I=c.charCodeAt(l)||0,I<45||I>127?I:I<46?65:I<48?I-1:I<58?I+18:I<65?I-11:I<91?I+11:I<97?I-37:I<123?I+5:I-63)}if((t+="")!=(e+="")){for(;n;)if(i=a(t,o++),n=a(e,r++),i<76&&n<76&&i>66&&n>66&&(i=a(t,o,o),n=a(e,r,o=A),r=A),i!=n)return i{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});vn.regexpCode=vn.getEsmExportName=vn.getProperty=vn.safeStringify=vn.stringify=vn.strConcat=vn.addCodeArg=vn.str=vn._=vn.nil=vn._Code=vn.Name=vn.IDENTIFIER=vn._CodeOrName=void 0;var C4=class{};vn._CodeOrName=C4;vn.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var IC=class extends C4{constructor(e){if(super(),!vn.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};vn.Name=IC;var Nc=class extends C4{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((A,i)=>`${A}${i}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((A,i)=>(i instanceof IC&&(A[i.str]=(A[i.str]||0)+1),A),{})}};vn._Code=Nc;vn.nil=new Nc("");function AX(t,...e){let A=[t[0]],i=0;for(;i{"use strict";Object.defineProperty(Ma,"__esModule",{value:!0});Ma.ValueScope=Ma.ValueScopeName=Ma.Scope=Ma.varKinds=Ma.UsedValueState=void 0;var ba=B4(),tR=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},f5=function(t){return t[t.Started=0]="Started",t[t.Completed=1]="Completed",t}(f5||(Ma.UsedValueState=f5={}));Ma.varKinds={const:new ba.Name("const"),let:new ba.Name("let"),var:new ba.Name("var")};var m5=class{constructor({prefixes:e,parent:A}={}){this._names={},this._prefixes=e,this._parent=A}toName(e){return e instanceof ba.Name?e:this.name(e)}name(e){return new ba.Name(this._newName(e))}_newName(e){let A=this._names[e]||this._nameGroup(e);return`${e}${A.index++}`}_nameGroup(e){var A,i;if(!((i=(A=this._parent)===null||A===void 0?void 0:A._prefixes)===null||i===void 0)&&i.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};Ma.Scope=m5;var p5=class extends ba.Name{constructor(e,A){super(A),this.prefix=e}setValue(e,{property:A,itemIndex:i}){this.value=e,this.scopePath=(0,ba._)`.${new ba.Name(A)}[${i}]`}};Ma.ValueScopeName=p5;var TvA=(0,ba._)`\n`,iR=class extends m5{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts=Ye(rA({},e),{_n:e.lines?TvA:ba.nil})}get(){return this._scope}name(e){return new p5(e,this._newName(e))}value(e,A){var i;if(A.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let n=this.toName(e),{prefix:o}=n,r=(i=A.key)!==null&&i!==void 0?i:A.ref,s=this._values[o];if(s){let l=s.get(r);if(l)return l}else s=this._values[o]=new Map;s.set(r,n);let a=this._scope[o]||(this._scope[o]=[]),c=a.length;return a[c]=A.ref,n.setValue(A,{property:o,itemIndex:c}),n}getValue(e,A){let i=this._values[e];if(i)return i.get(A)}scopeRefs(e,A=this._values){return this._reduceValues(A,i=>{if(i.scopePath===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return(0,ba._)`${e}${i.scopePath}`})}scopeCode(e=this._values,A,i){return this._reduceValues(e,n=>{if(n.value===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return n.value.code},A,i)}_reduceValues(e,A,i={},n){let o=ba.nil;for(let r in e){let s=e[r];if(!s)continue;let a=i[r]=i[r]||new Map;s.forEach(c=>{if(a.has(c))return;a.set(c,f5.Started);let l=A(c);if(l){let I=this.opts.es5?Ma.varKinds.var:Ma.varKinds.const;o=(0,ba._)`${o}${I} ${c} = ${l};${this.opts._n}`}else if(l=n?.(c))o=(0,ba._)`${o}${l}${this.opts._n}`;else throw new tR(c);a.set(c,f5.Completed)})}return o}};Ma.ValueScope=iR});var An=Je(Xi=>{"use strict";Object.defineProperty(Xi,"__esModule",{value:!0});Xi.or=Xi.and=Xi.not=Xi.CodeGen=Xi.operators=Xi.varKinds=Xi.ValueScopeName=Xi.ValueScope=Xi.Scope=Xi.Name=Xi.regexpCode=Xi.stringify=Xi.getProperty=Xi.nil=Xi.strConcat=Xi.str=Xi._=void 0;var Bn=B4(),ul=nR(),I1=B4();Object.defineProperty(Xi,"_",{enumerable:!0,get:function(){return I1._}});Object.defineProperty(Xi,"str",{enumerable:!0,get:function(){return I1.str}});Object.defineProperty(Xi,"strConcat",{enumerable:!0,get:function(){return I1.strConcat}});Object.defineProperty(Xi,"nil",{enumerable:!0,get:function(){return I1.nil}});Object.defineProperty(Xi,"getProperty",{enumerable:!0,get:function(){return I1.getProperty}});Object.defineProperty(Xi,"stringify",{enumerable:!0,get:function(){return I1.stringify}});Object.defineProperty(Xi,"regexpCode",{enumerable:!0,get:function(){return I1.regexpCode}});Object.defineProperty(Xi,"Name",{enumerable:!0,get:function(){return I1.Name}});var b5=nR();Object.defineProperty(Xi,"Scope",{enumerable:!0,get:function(){return b5.Scope}});Object.defineProperty(Xi,"ValueScope",{enumerable:!0,get:function(){return b5.ValueScope}});Object.defineProperty(Xi,"ValueScopeName",{enumerable:!0,get:function(){return b5.ValueScopeName}});Object.defineProperty(Xi,"varKinds",{enumerable:!0,get:function(){return b5.varKinds}});Xi.operators={GT:new Bn._Code(">"),GTE:new Bn._Code(">="),LT:new Bn._Code("<"),LTE:new Bn._Code("<="),EQ:new Bn._Code("==="),NEQ:new Bn._Code("!=="),NOT:new Bn._Code("!"),OR:new Bn._Code("||"),AND:new Bn._Code("&&"),ADD:new Bn._Code("+")};var N0=class{optimizeNodes(){return this}optimizeNames(e,A){return this}},oR=class extends N0{constructor(e,A,i){super(),this.varKind=e,this.name=A,this.rhs=i}render({es5:e,_n:A}){let i=e?ul.varKinds.var:this.varKind,n=this.rhs===void 0?"":` = ${this.rhs}`;return`${i} ${this.name}${n};`+A}optimizeNames(e,A){if(e[this.name.str])return this.rhs&&(this.rhs=cE(this.rhs,e,A)),this}get names(){return this.rhs instanceof Bn._CodeOrName?this.rhs.names:{}}},D5=class extends N0{constructor(e,A,i){super(),this.lhs=e,this.rhs=A,this.sideEffects=i}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,A){if(!(this.lhs instanceof Bn.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=cE(this.rhs,e,A),this}get names(){let e=this.lhs instanceof Bn.Name?{}:rA({},this.lhs.names);return v5(e,this.rhs)}},rR=class extends D5{constructor(e,A,i,n){super(e,i,n),this.op=A}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},sR=class extends N0{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},aR=class extends N0{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},cR=class extends N0{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},lR=class extends N0{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,A){return this.code=cE(this.code,e,A),this}get names(){return this.code instanceof Bn._CodeOrName?this.code.names:{}}},E4=class extends N0{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((A,i)=>A+i.render(e),"")}optimizeNodes(){let{nodes:e}=this,A=e.length;for(;A--;){let i=e[A].optimizeNodes();Array.isArray(i)?e.splice(A,1,...i):i?e[A]=i:e.splice(A,1)}return e.length>0?this:void 0}optimizeNames(e,A){let{nodes:i}=this,n=i.length;for(;n--;){let o=i[n];o.optimizeNames(e,A)||(HvA(e,o.names),i.splice(n,1))}return i.length>0?this:void 0}get names(){return this.nodes.reduce((e,A)=>CC(e,A.names),{})}},_0=class extends E4{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},gR=class extends E4{},IR=(()=>{class t extends _0{}return t.kind="else",t})(),w5=(()=>{class t extends _0{constructor(A,i){super(i),this.condition=A}render(A){let i=`if(${this.condition})`+super.render(A);return this.else&&(i+="else "+this.else.render(A)),i}optimizeNodes(){super.optimizeNodes();let A=this.condition;if(A===!0)return this.nodes;let i=this.else;if(i){let n=i.optimizeNodes();i=this.else=Array.isArray(n)?new IR(n):n}if(i)return A===!1?i instanceof t?i:i.nodes:this.nodes.length?this:new t(rX(A),i instanceof t?[i]:i.nodes);if(!(A===!1||!this.nodes.length))return this}optimizeNames(A,i){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(A,i),!!(super.optimizeNames(A,i)||this.else))return this.condition=cE(this.condition,A,i),this}get names(){let A=super.names;return v5(A,this.condition),this.else&&CC(A,this.else.names),A}}return t.kind="if",t})(),M5=(()=>{class t extends _0{}return t.kind="for",t})(),CR=class extends M5{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,A){if(super.optimizeNames(e,A))return this.iteration=cE(this.iteration,e,A),this}get names(){return CC(super.names,this.iteration.names)}},dR=class extends M5{constructor(e,A,i,n){super(),this.varKind=e,this.name=A,this.from=i,this.to=n}render(e){let A=e.es5?ul.varKinds.var:this.varKind,{name:i,from:n,to:o}=this;return`for(${A} ${i}=${n}; ${i}<${o}; ${i}++)`+super.render(e)}get names(){let e=v5(super.names,this.from);return v5(e,this.to)}},y5=class extends M5{constructor(e,A,i,n){super(),this.loop=e,this.varKind=A,this.name=i,this.iterable=n}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,A){if(super.optimizeNames(e,A))return this.iterable=cE(this.iterable,e,A),this}get names(){return CC(super.names,this.iterable.names)}},tX=(()=>{class t extends _0{constructor(A,i,n){super(),this.name=A,this.args=i,this.async=n}render(A){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(A)}}return t.kind="func",t})(),iX=(()=>{class t extends E4{render(A){return"return "+super.render(A)}}return t.kind="return",t})(),BR=class extends _0{render(e){let A="try"+super.render(e);return this.catch&&(A+=this.catch.render(e)),this.finally&&(A+=this.finally.render(e)),A}optimizeNodes(){var e,A;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(A=this.finally)===null||A===void 0||A.optimizeNodes(),this}optimizeNames(e,A){var i,n;return super.optimizeNames(e,A),(i=this.catch)===null||i===void 0||i.optimizeNames(e,A),(n=this.finally)===null||n===void 0||n.optimizeNames(e,A),this}get names(){let e=super.names;return this.catch&&CC(e,this.catch.names),this.finally&&CC(e,this.finally.names),e}},nX=(()=>{class t extends _0{constructor(A){super(),this.error=A}render(A){return`catch(${this.error})`+super.render(A)}}return t.kind="catch",t})(),oX=(()=>{class t extends _0{render(A){return"finally"+super.render(A)}}return t.kind="finally",t})(),ER=class{constructor(e,A={}){this._values={},this._blockStarts=[],this._constants={},this.opts=Ye(rA({},A),{_n:A.lines?` -`:""}),this._extScope=e,this._scope=new ul.Scope({parent:e}),this._nodes=[new gR]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,A){let i=this._extScope.value(e,A);return(this._values[i.prefix]||(this._values[i.prefix]=new Set)).add(i),i}getScopeValue(e,A){return this._extScope.getValue(e,A)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,A,i,n){let o=this._scope.toName(A);return i!==void 0&&n&&(this._constants[o.str]=i),this._leafNode(new oR(e,o,i)),o}const(e,A,i){return this._def(ul.varKinds.const,e,A,i)}let(e,A,i){return this._def(ul.varKinds.let,e,A,i)}var(e,A,i){return this._def(ul.varKinds.var,e,A,i)}assign(e,A,i){return this._leafNode(new D5(e,A,i))}add(e,A){return this._leafNode(new rR(e,Xi.operators.ADD,A))}code(e){return typeof e=="function"?e():e!==Bn.nil&&this._leafNode(new lR(e)),this}object(...e){let A=["{"];for(let[i,n]of e)A.length>1&&A.push(","),A.push(i),(i!==n||this.opts.es5)&&(A.push(":"),(0,Bn.addCodeArg)(A,n));return A.push("}"),new Bn._Code(A)}if(e,A,i){if(this._blockNode(new w5(e)),A&&i)this.code(A).else().code(i).endIf();else if(A)this.code(A).endIf();else if(i)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new w5(e))}else(){return this._elseNode(new IR)}endIf(){return this._endBlockNode(w5,IR)}_for(e,A){return this._blockNode(e),A&&this.code(A).endFor(),this}for(e,A){return this._for(new CR(e),A)}forRange(e,A,i,n,o=this.opts.es5?ul.varKinds.var:ul.varKinds.let){let r=this._scope.toName(e);return this._for(new dR(o,r,A,i),()=>n(r))}forOf(e,A,i,n=ul.varKinds.const){let o=this._scope.toName(e);if(this.opts.es5){let r=A instanceof Bn.Name?A:this.var("_arr",A);return this.forRange("_i",0,(0,Bn._)`${r}.length`,s=>{this.var(o,(0,Bn._)`${r}[${s}]`),i(o)})}return this._for(new y5("of",n,o,A),()=>i(o))}forIn(e,A,i,n=this.opts.es5?ul.varKinds.var:ul.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,Bn._)`Object.keys(${A})`,i);let o=this._scope.toName(e);return this._for(new y5("in",n,o,A),()=>i(o))}endFor(){return this._endBlockNode(M5)}label(e){return this._leafNode(new sR(e))}break(e){return this._leafNode(new aR(e))}return(e){let A=new iX;if(this._blockNode(A),this.code(e),A.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(iX)}try(e,A,i){if(!A&&!i)throw new Error('CodeGen: "try" without "catch" and "finally"');let n=new BR;if(this._blockNode(n),this.code(e),A){let o=this.name("e");this._currNode=n.catch=new nX(o),A(o)}return i&&(this._currNode=n.finally=new oX,this.code(i)),this._endBlockNode(nX,oX)}throw(e){return this._leafNode(new cR(e))}block(e,A){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(A),this}endBlock(e){let A=this._blockStarts.pop();if(A===void 0)throw new Error("CodeGen: not in self-balancing block");let i=this._nodes.length-A;if(i<0||e!==void 0&&i!==e)throw new Error(`CodeGen: wrong number of nodes: ${i} vs ${e} expected`);return this._nodes.length=A,this}func(e,A=Bn.nil,i,n){return this._blockNode(new tX(e,A,i)),n&&this.code(n).endFunc(),this}endFunc(){return this._endBlockNode(tX)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,A){let i=this._currNode;if(i instanceof e||A&&i instanceof A)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${A?`${e.kind}/${A.kind}`:e.kind}"`)}_elseNode(e){let A=this._currNode;if(!(A instanceof w5))throw new Error('CodeGen: "else" without "if"');return this._currNode=A.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let A=this._nodes;A[A.length-1]=e}};Xi.CodeGen=ER;function CC(t,e){for(let A in e)t[A]=(t[A]||0)+(e[A]||0);return t}function v5(t,e){return e instanceof Bn._CodeOrName?CC(t,e.names):t}function cE(t,e,A){if(t instanceof Bn.Name)return i(t);if(!n(t))return t;return new Bn._Code(t._items.reduce((o,r)=>(r instanceof Bn.Name&&(r=i(r)),r instanceof Bn._Code?o.push(...r._items):o.push(r),o),[]));function i(o){let r=A[o.str];return r===void 0||e[o.str]!==1?o:(delete e[o.str],r)}function n(o){return o instanceof Bn._Code&&o._items.some(r=>r instanceof Bn.Name&&e[r.str]===1&&A[r.str]!==void 0)}}function HvA(t,e){for(let A in e)t[A]=(t[A]||0)-(e[A]||0)}function rX(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,Bn._)`!${QR(t)}`}Xi.not=rX;var zvA=sX(Xi.operators.AND);function OvA(...t){return t.reduce(zvA)}Xi.and=OvA;var PvA=sX(Xi.operators.OR);function jvA(...t){return t.reduce(PvA)}Xi.or=jvA;function sX(t){return(e,A)=>e===Bn.nil?A:A===Bn.nil?e:(0,Bn._)`${QR(e)} ${t} ${QR(A)}`}function QR(t){return t instanceof Bn.Name?t:(0,Bn._)`(${t})`}});var bn=Je(en=>{"use strict";Object.defineProperty(en,"__esModule",{value:!0});en.checkStrictMode=en.getErrorPath=en.Type=en.useFunc=en.setEvaluated=en.evaluatedPropsToName=en.mergeEvaluated=en.eachItem=en.unescapeJsonPointer=en.escapeJsonPointer=en.escapeFragment=en.unescapeFragment=en.schemaRefOrVal=en.schemaHasRulesButRef=en.schemaHasRules=en.checkUnknownRules=en.alwaysValidSchema=en.toHash=void 0;var Do=An(),qvA=B4();function VvA(t){let e={};for(let A of t)e[A]=!0;return e}en.toHash=VvA;function ZvA(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(lX(t,e),!gX(e,t.self.RULES.all))}en.alwaysValidSchema=ZvA;function lX(t,e=t.schema){let{opts:A,self:i}=t;if(!A.strictSchema||typeof e=="boolean")return;let n=i.RULES.keywords;for(let o in e)n[o]||dX(t,`unknown keyword: "${o}"`)}en.checkUnknownRules=lX;function gX(t,e){if(typeof t=="boolean")return!t;for(let A in t)if(e[A])return!0;return!1}en.schemaHasRules=gX;function WvA(t,e){if(typeof t=="boolean")return!t;for(let A in t)if(A!=="$ref"&&e.all[A])return!0;return!1}en.schemaHasRulesButRef=WvA;function XvA({topSchemaRef:t,schemaPath:e},A,i,n){if(!n){if(typeof A=="number"||typeof A=="boolean")return A;if(typeof A=="string")return(0,Do._)`${A}`}return(0,Do._)`${t}${e}${(0,Do.getProperty)(i)}`}en.schemaRefOrVal=XvA;function $vA(t){return IX(decodeURIComponent(t))}en.unescapeFragment=$vA;function A9A(t){return encodeURIComponent(uR(t))}en.escapeFragment=A9A;function uR(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}en.escapeJsonPointer=uR;function IX(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}en.unescapeJsonPointer=IX;function e9A(t,e){if(Array.isArray(t))for(let A of t)e(A);else e(t)}en.eachItem=e9A;function aX({mergeNames:t,mergeToName:e,mergeValues:A,resultToName:i}){return(n,o,r,s)=>{let a=r===void 0?o:r instanceof Do.Name?(o instanceof Do.Name?t(n,o,r):e(n,o,r),r):o instanceof Do.Name?(e(n,r,o),o):A(o,r);return s===Do.Name&&!(a instanceof Do.Name)?i(n,a):a}}en.mergeEvaluated={props:aX({mergeNames:(t,e,A)=>t.if((0,Do._)`${A} !== true && ${e} !== undefined`,()=>{t.if((0,Do._)`${e} === true`,()=>t.assign(A,!0),()=>t.assign(A,(0,Do._)`${A} || {}`).code((0,Do._)`Object.assign(${A}, ${e})`))}),mergeToName:(t,e,A)=>t.if((0,Do._)`${A} !== true`,()=>{e===!0?t.assign(A,!0):(t.assign(A,(0,Do._)`${A} || {}`),fR(t,A,e))}),mergeValues:(t,e)=>t===!0?!0:rA(rA({},t),e),resultToName:CX}),items:aX({mergeNames:(t,e,A)=>t.if((0,Do._)`${A} !== true && ${e} !== undefined`,()=>t.assign(A,(0,Do._)`${e} === true ? true : ${A} > ${e} ? ${A} : ${e}`)),mergeToName:(t,e,A)=>t.if((0,Do._)`${A} !== true`,()=>t.assign(A,e===!0?!0:(0,Do._)`${A} > ${e} ? ${A} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function CX(t,e){if(e===!0)return t.var("props",!0);let A=t.var("props",(0,Do._)`{}`);return e!==void 0&&fR(t,A,e),A}en.evaluatedPropsToName=CX;function fR(t,e,A){Object.keys(A).forEach(i=>t.assign((0,Do._)`${e}${(0,Do.getProperty)(i)}`,!0))}en.setEvaluated=fR;var cX={};function t9A(t,e){return t.scopeValue("func",{ref:e,code:cX[e.code]||(cX[e.code]=new qvA._Code(e.code))})}en.useFunc=t9A;var hR=function(t){return t[t.Num=0]="Num",t[t.Str=1]="Str",t}(hR||(en.Type=hR={}));function i9A(t,e,A){if(t instanceof Do.Name){let i=e===hR.Num;return A?i?(0,Do._)`"[" + ${t} + "]"`:(0,Do._)`"['" + ${t} + "']"`:i?(0,Do._)`"/" + ${t}`:(0,Do._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return A?(0,Do.getProperty)(t).toString():"/"+uR(t)}en.getErrorPath=i9A;function dX(t,e,A=t.opts.strictSchema){if(A){if(e=`strict mode: ${e}`,A===!0)throw new Error(e);t.self.logger.warn(e)}}en.checkStrictMode=dX});var G0=Je(mR=>{"use strict";Object.defineProperty(mR,"__esModule",{value:!0});var Ss=An(),n9A={data:new Ss.Name("data"),valCxt:new Ss.Name("valCxt"),instancePath:new Ss.Name("instancePath"),parentData:new Ss.Name("parentData"),parentDataProperty:new Ss.Name("parentDataProperty"),rootData:new Ss.Name("rootData"),dynamicAnchors:new Ss.Name("dynamicAnchors"),vErrors:new Ss.Name("vErrors"),errors:new Ss.Name("errors"),this:new Ss.Name("this"),self:new Ss.Name("self"),scope:new Ss.Name("scope"),json:new Ss.Name("json"),jsonPos:new Ss.Name("jsonPos"),jsonLen:new Ss.Name("jsonLen"),jsonPart:new Ss.Name("jsonPart")};mR.default=n9A});var Q4=Je(Rs=>{"use strict";Object.defineProperty(Rs,"__esModule",{value:!0});Rs.extendErrors=Rs.resetErrorsCount=Rs.reportExtraError=Rs.reportError=Rs.keyword$DataError=Rs.keywordError=void 0;var fn=An(),k5=bn(),Zs=G0();Rs.keywordError={message:({keyword:t})=>(0,fn.str)`must pass "${t}" keyword validation`};Rs.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,fn.str)`"${t}" keyword must be ${e} ($data)`:(0,fn.str)`"${t}" keyword is invalid ($data)`};function o9A(t,e=Rs.keywordError,A,i){let{it:n}=t,{gen:o,compositeRule:r,allErrors:s}=n,a=QX(t,e,A);i??(r||s)?BX(o,a):EX(n,(0,fn._)`[${a}]`)}Rs.reportError=o9A;function r9A(t,e=Rs.keywordError,A){let{it:i}=t,{gen:n,compositeRule:o,allErrors:r}=i,s=QX(t,e,A);BX(n,s),o||r||EX(i,Zs.default.vErrors)}Rs.reportExtraError=r9A;function s9A(t,e){t.assign(Zs.default.errors,e),t.if((0,fn._)`${Zs.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,fn._)`${Zs.default.vErrors}.length`,e),()=>t.assign(Zs.default.vErrors,null)))}Rs.resetErrorsCount=s9A;function a9A({gen:t,keyword:e,schemaValue:A,data:i,errsCount:n,it:o}){if(n===void 0)throw new Error("ajv implementation error");let r=t.name("err");t.forRange("i",n,Zs.default.errors,s=>{t.const(r,(0,fn._)`${Zs.default.vErrors}[${s}]`),t.if((0,fn._)`${r}.instancePath === undefined`,()=>t.assign((0,fn._)`${r}.instancePath`,(0,fn.strConcat)(Zs.default.instancePath,o.errorPath))),t.assign((0,fn._)`${r}.schemaPath`,(0,fn.str)`${o.errSchemaPath}/${e}`),o.opts.verbose&&(t.assign((0,fn._)`${r}.schema`,A),t.assign((0,fn._)`${r}.data`,i))})}Rs.extendErrors=a9A;function BX(t,e){let A=t.const("err",e);t.if((0,fn._)`${Zs.default.vErrors} === null`,()=>t.assign(Zs.default.vErrors,(0,fn._)`[${A}]`),(0,fn._)`${Zs.default.vErrors}.push(${A})`),t.code((0,fn._)`${Zs.default.errors}++`)}function EX(t,e){let{gen:A,validateName:i,schemaEnv:n}=t;n.$async?A.throw((0,fn._)`new ${t.ValidationError}(${e})`):(A.assign((0,fn._)`${i}.errors`,e),A.return(!1))}var dC={keyword:new fn.Name("keyword"),schemaPath:new fn.Name("schemaPath"),params:new fn.Name("params"),propertyName:new fn.Name("propertyName"),message:new fn.Name("message"),schema:new fn.Name("schema"),parentSchema:new fn.Name("parentSchema")};function QX(t,e,A){let{createErrors:i}=t.it;return i===!1?(0,fn._)`{}`:c9A(t,e,A)}function c9A(t,e,A={}){let{gen:i,it:n}=t,o=[l9A(n,A),g9A(t,A)];return I9A(t,e,o),i.object(...o)}function l9A({errorPath:t},{instancePath:e}){let A=e?(0,fn.str)`${t}${(0,k5.getErrorPath)(e,k5.Type.Str)}`:t;return[Zs.default.instancePath,(0,fn.strConcat)(Zs.default.instancePath,A)]}function g9A({keyword:t,it:{errSchemaPath:e}},{schemaPath:A,parentSchema:i}){let n=i?e:(0,fn.str)`${e}/${t}`;return A&&(n=(0,fn.str)`${n}${(0,k5.getErrorPath)(A,k5.Type.Str)}`),[dC.schemaPath,n]}function I9A(t,{params:e,message:A},i){let{keyword:n,data:o,schemaValue:r,it:s}=t,{opts:a,propertyName:c,topSchemaRef:l,schemaPath:I}=s;i.push([dC.keyword,n],[dC.params,typeof e=="function"?e(t):e||(0,fn._)`{}`]),a.messages&&i.push([dC.message,typeof A=="function"?A(t):A]),a.verbose&&i.push([dC.schema,r],[dC.parentSchema,(0,fn._)`${l}${I}`],[Zs.default.data,o]),c&&i.push([dC.propertyName,c])}});var uX=Je(lE=>{"use strict";Object.defineProperty(lE,"__esModule",{value:!0});lE.boolOrEmptySchema=lE.topBoolOrEmptySchema=void 0;var C9A=Q4(),d9A=An(),B9A=G0(),E9A={message:"boolean schema is false"};function Q9A(t){let{gen:e,schema:A,validateName:i}=t;A===!1?hX(t,!1):typeof A=="object"&&A.$async===!0?e.return(B9A.default.data):(e.assign((0,d9A._)`${i}.errors`,null),e.return(!0))}lE.topBoolOrEmptySchema=Q9A;function h9A(t,e){let{gen:A,schema:i}=t;i===!1?(A.var(e,!1),hX(t)):A.var(e,!0)}lE.boolOrEmptySchema=h9A;function hX(t,e){let{gen:A,data:i}=t,n={gen:A,keyword:"false schema",data:i,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,C9A.reportError)(n,E9A,void 0,e)}});var pR=Je(gE=>{"use strict";Object.defineProperty(gE,"__esModule",{value:!0});gE.getRules=gE.isJSONType=void 0;var u9A=["string","number","integer","boolean","null","object","array"],f9A=new Set(u9A);function m9A(t){return typeof t=="string"&&f9A.has(t)}gE.isJSONType=m9A;function p9A(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:Ye(rA({},t),{integer:!0,boolean:!0,null:!0}),rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}gE.getRules=p9A});var wR=Je(C1=>{"use strict";Object.defineProperty(C1,"__esModule",{value:!0});C1.shouldUseRule=C1.shouldUseGroup=C1.schemaHasRulesForType=void 0;function w9A({schema:t,self:e},A){let i=e.RULES.types[A];return i&&i!==!0&&fX(t,i)}C1.schemaHasRulesForType=w9A;function fX(t,e){return e.rules.some(A=>mX(t,A))}C1.shouldUseGroup=fX;function mX(t,e){var A;return t[e.keyword]!==void 0||((A=e.definition.implements)===null||A===void 0?void 0:A.some(i=>t[i]!==void 0))}C1.shouldUseRule=mX});var h4=Je(xs=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});xs.reportTypeError=xs.checkDataTypes=xs.checkDataType=xs.coerceAndCheckDataType=xs.getJSONTypes=xs.getSchemaTypes=xs.DataType=void 0;var D9A=pR(),y9A=wR(),v9A=Q4(),Ui=An(),pX=bn(),IE=function(t){return t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong",t}(IE||(xs.DataType=IE={}));function b9A(t){let e=wX(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}xs.getSchemaTypes=b9A;function wX(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(D9A.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}xs.getJSONTypes=wX;function M9A(t,e){let{gen:A,data:i,opts:n}=t,o=k9A(e,n.coerceTypes),r=e.length>0&&!(o.length===0&&e.length===1&&(0,y9A.schemaHasRulesForType)(t,e[0]));if(r){let s=yR(e,i,n.strictNumbers,IE.Wrong);A.if(s,()=>{o.length?S9A(t,e,o):vR(t)})}return r}xs.coerceAndCheckDataType=M9A;var DX=new Set(["string","number","integer","boolean","null"]);function k9A(t,e){return e?t.filter(A=>DX.has(A)||e==="array"&&A==="array"):[]}function S9A(t,e,A){let{gen:i,data:n,opts:o}=t,r=i.let("dataType",(0,Ui._)`typeof ${n}`),s=i.let("coerced",(0,Ui._)`undefined`);o.coerceTypes==="array"&&i.if((0,Ui._)`${r} == 'object' && Array.isArray(${n}) && ${n}.length == 1`,()=>i.assign(n,(0,Ui._)`${n}[0]`).assign(r,(0,Ui._)`typeof ${n}`).if(yR(e,n,o.strictNumbers),()=>i.assign(s,n))),i.if((0,Ui._)`${s} !== undefined`);for(let c of A)(DX.has(c)||c==="array"&&o.coerceTypes==="array")&&a(c);i.else(),vR(t),i.endIf(),i.if((0,Ui._)`${s} !== undefined`,()=>{i.assign(n,s),R9A(t,s)});function a(c){switch(c){case"string":i.elseIf((0,Ui._)`${r} == "number" || ${r} == "boolean"`).assign(s,(0,Ui._)`"" + ${n}`).elseIf((0,Ui._)`${n} === null`).assign(s,(0,Ui._)`""`);return;case"number":i.elseIf((0,Ui._)`${r} == "boolean" || ${n} === null - || (${r} == "string" && ${n} && ${n} == +${n})`).assign(s,(0,Ui._)`+${n}`);return;case"integer":i.elseIf((0,Ui._)`${r} === "boolean" || ${n} === null - || (${r} === "string" && ${n} && ${n} == +${n} && !(${n} % 1))`).assign(s,(0,Ui._)`+${n}`);return;case"boolean":i.elseIf((0,Ui._)`${n} === "false" || ${n} === 0 || ${n} === null`).assign(s,!1).elseIf((0,Ui._)`${n} === "true" || ${n} === 1`).assign(s,!0);return;case"null":i.elseIf((0,Ui._)`${n} === "" || ${n} === 0 || ${n} === false`),i.assign(s,null);return;case"array":i.elseIf((0,Ui._)`${r} === "string" || ${r} === "number" - || ${r} === "boolean" || ${n} === null`).assign(s,(0,Ui._)`[${n}]`)}}}function R9A({gen:t,parentData:e,parentDataProperty:A},i){t.if((0,Ui._)`${e} !== undefined`,()=>t.assign((0,Ui._)`${e}[${A}]`,i))}function DR(t,e,A,i=IE.Correct){let n=i===IE.Correct?Ui.operators.EQ:Ui.operators.NEQ,o;switch(t){case"null":return(0,Ui._)`${e} ${n} null`;case"array":o=(0,Ui._)`Array.isArray(${e})`;break;case"object":o=(0,Ui._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":o=r((0,Ui._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":o=r();break;default:return(0,Ui._)`typeof ${e} ${n} ${t}`}return i===IE.Correct?o:(0,Ui.not)(o);function r(s=Ui.nil){return(0,Ui.and)((0,Ui._)`typeof ${e} == "number"`,s,A?(0,Ui._)`isFinite(${e})`:Ui.nil)}}xs.checkDataType=DR;function yR(t,e,A,i){if(t.length===1)return DR(t[0],e,A,i);let n,o=(0,pX.toHash)(t);if(o.array&&o.object){let r=(0,Ui._)`typeof ${e} != "object"`;n=o.null?r:(0,Ui._)`!${e} || ${r}`,delete o.null,delete o.array,delete o.object}else n=Ui.nil;o.number&&delete o.integer;for(let r in o)n=(0,Ui.and)(n,DR(r,e,A,i));return n}xs.checkDataTypes=yR;var x9A={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,Ui._)`{type: ${t}}`:(0,Ui._)`{type: ${e}}`};function vR(t){let e=L9A(t);(0,v9A.reportError)(e,x9A)}xs.reportTypeError=vR;function L9A(t){let{gen:e,data:A,schema:i}=t,n=(0,pX.schemaRefOrVal)(t,i,"type");return{gen:e,keyword:"type",data:A,schema:i.type,schemaCode:n,schemaValue:n,parentSchema:i,params:{},it:t}}});var vX=Je(S5=>{"use strict";Object.defineProperty(S5,"__esModule",{value:!0});S5.assignDefaults=void 0;var CE=An(),F9A=bn();function N9A(t,e){let{properties:A,items:i}=t.schema;if(e==="object"&&A)for(let n in A)yX(t,n,A[n].default);else e==="array"&&Array.isArray(i)&&i.forEach((n,o)=>yX(t,o,n.default))}S5.assignDefaults=N9A;function yX(t,e,A){let{gen:i,compositeRule:n,data:o,opts:r}=t;if(A===void 0)return;let s=(0,CE._)`${o}${(0,CE.getProperty)(e)}`;if(n){(0,F9A.checkStrictMode)(t,`default is ignored for: ${s}`);return}let a=(0,CE._)`${s} === undefined`;r.useDefaults==="empty"&&(a=(0,CE._)`${a} || ${s} === null || ${s} === ""`),i.if(a,(0,CE._)`${s} = ${(0,CE.stringify)(A)}`)}});var _c=Je(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.validateUnion=ro.validateArray=ro.usePattern=ro.callValidateCode=ro.schemaProperties=ro.allSchemaProperties=ro.noPropertyInData=ro.propertyInData=ro.isOwnProperty=ro.hasPropFunc=ro.reportMissingProp=ro.checkMissingProp=ro.checkReportMissingProp=void 0;var zo=An(),bR=bn(),d1=G0(),_9A=bn();function G9A(t,e){let{gen:A,data:i,it:n}=t;A.if(kR(A,i,e,n.opts.ownProperties),()=>{t.setParams({missingProperty:(0,zo._)`${e}`},!0),t.error()})}ro.checkReportMissingProp=G9A;function U9A({gen:t,data:e,it:{opts:A}},i,n){return(0,zo.or)(...i.map(o=>(0,zo.and)(kR(t,e,o,A.ownProperties),(0,zo._)`${n} = ${o}`)))}ro.checkMissingProp=U9A;function K9A(t,e){t.setParams({missingProperty:e},!0),t.error()}ro.reportMissingProp=K9A;function bX(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,zo._)`Object.prototype.hasOwnProperty`})}ro.hasPropFunc=bX;function MR(t,e,A){return(0,zo._)`${bX(t)}.call(${e}, ${A})`}ro.isOwnProperty=MR;function Y9A(t,e,A,i){let n=(0,zo._)`${e}${(0,zo.getProperty)(A)} !== undefined`;return i?(0,zo._)`${n} && ${MR(t,e,A)}`:n}ro.propertyInData=Y9A;function kR(t,e,A,i){let n=(0,zo._)`${e}${(0,zo.getProperty)(A)} === undefined`;return i?(0,zo.or)(n,(0,zo.not)(MR(t,e,A))):n}ro.noPropertyInData=kR;function MX(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}ro.allSchemaProperties=MX;function J9A(t,e){return MX(e).filter(A=>!(0,bR.alwaysValidSchema)(t,e[A]))}ro.schemaProperties=J9A;function T9A({schemaCode:t,data:e,it:{gen:A,topSchemaRef:i,schemaPath:n,errorPath:o},it:r},s,a,c){let l=c?(0,zo._)`${t}, ${e}, ${i}${n}`:e,I=[[d1.default.instancePath,(0,zo.strConcat)(d1.default.instancePath,o)],[d1.default.parentData,r.parentData],[d1.default.parentDataProperty,r.parentDataProperty],[d1.default.rootData,d1.default.rootData]];r.opts.dynamicRef&&I.push([d1.default.dynamicAnchors,d1.default.dynamicAnchors]);let C=(0,zo._)`${l}, ${A.object(...I)}`;return a!==zo.nil?(0,zo._)`${s}.call(${a}, ${C})`:(0,zo._)`${s}(${C})`}ro.callValidateCode=T9A;var H9A=(0,zo._)`new RegExp`;function z9A({gen:t,it:{opts:e}},A){let i=e.unicodeRegExp?"u":"",{regExp:n}=e.code,o=n(A,i);return t.scopeValue("pattern",{key:o.toString(),ref:o,code:(0,zo._)`${n.code==="new RegExp"?H9A:(0,_9A.useFunc)(t,n)}(${A}, ${i})`})}ro.usePattern=z9A;function O9A(t){let{gen:e,data:A,keyword:i,it:n}=t,o=e.name("valid");if(n.allErrors){let s=e.let("valid",!0);return r(()=>e.assign(s,!1)),s}return e.var(o,!0),r(()=>e.break()),o;function r(s){let a=e.const("len",(0,zo._)`${A}.length`);e.forRange("i",0,a,c=>{t.subschema({keyword:i,dataProp:c,dataPropType:bR.Type.Num},o),e.if((0,zo.not)(o),s)})}}ro.validateArray=O9A;function P9A(t){let{gen:e,schema:A,keyword:i,it:n}=t;if(!Array.isArray(A))throw new Error("ajv implementation error");if(A.some(a=>(0,bR.alwaysValidSchema)(n,a))&&!n.opts.unevaluated)return;let r=e.let("valid",!1),s=e.name("_valid");e.block(()=>A.forEach((a,c)=>{let l=t.subschema({keyword:i,schemaProp:c,compositeRule:!0},s);e.assign(r,(0,zo._)`${r} || ${s}`),t.mergeValidEvaluated(l,s)||e.if((0,zo.not)(r))})),t.result(r,()=>t.reset(),()=>t.error(!0))}ro.validateUnion=P9A});var RX=Je(pg=>{"use strict";Object.defineProperty(pg,"__esModule",{value:!0});pg.validateKeywordUsage=pg.validSchemaType=pg.funcKeywordCode=pg.macroKeywordCode=void 0;var Ws=An(),BC=G0(),j9A=_c(),q9A=Q4();function V9A(t,e){let{gen:A,keyword:i,schema:n,parentSchema:o,it:r}=t,s=e.macro.call(r.self,n,o,r),a=SX(A,i,s);r.opts.validateSchema!==!1&&r.self.validateSchema(s,!0);let c=A.name("valid");t.subschema({schema:s,schemaPath:Ws.nil,errSchemaPath:`${r.errSchemaPath}/${i}`,topSchemaRef:a,compositeRule:!0},c),t.pass(c,()=>t.error(!0))}pg.macroKeywordCode=V9A;function Z9A(t,e){var A;let{gen:i,keyword:n,schema:o,parentSchema:r,$data:s,it:a}=t;X9A(a,e);let c=!s&&e.compile?e.compile.call(a.self,o,r,a):e.validate,l=SX(i,n,c),I=i.let("valid");t.block$data(I,C),t.ok((A=e.valid)!==null&&A!==void 0?A:I);function C(){if(e.errors===!1)E(),e.modifying&&kX(t),h(()=>t.error());else{let u=e.async?d():B();e.modifying&&kX(t),h(()=>W9A(t,u))}}function d(){let u=i.let("ruleErrs",null);return i.try(()=>E((0,Ws._)`await `),D=>i.assign(I,!1).if((0,Ws._)`${D} instanceof ${a.ValidationError}`,()=>i.assign(u,(0,Ws._)`${D}.errors`),()=>i.throw(D))),u}function B(){let u=(0,Ws._)`${l}.errors`;return i.assign(u,null),E(Ws.nil),u}function E(u=e.async?(0,Ws._)`await `:Ws.nil){let D=a.opts.passContext?BC.default.this:BC.default.self,L=!("compile"in e&&!s||e.schema===!1);i.assign(I,(0,Ws._)`${u}${(0,j9A.callValidateCode)(t,l,D,L)}`,e.modifying)}function h(u){var D;i.if((0,Ws.not)((D=e.valid)!==null&&D!==void 0?D:I),u)}}pg.funcKeywordCode=Z9A;function kX(t){let{gen:e,data:A,it:i}=t;e.if(i.parentData,()=>e.assign(A,(0,Ws._)`${i.parentData}[${i.parentDataProperty}]`))}function W9A(t,e){let{gen:A}=t;A.if((0,Ws._)`Array.isArray(${e})`,()=>{A.assign(BC.default.vErrors,(0,Ws._)`${BC.default.vErrors} === null ? ${e} : ${BC.default.vErrors}.concat(${e})`).assign(BC.default.errors,(0,Ws._)`${BC.default.vErrors}.length`),(0,q9A.extendErrors)(t)},()=>t.error())}function X9A({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function SX(t,e,A){if(A===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof A=="function"?{ref:A}:{ref:A,code:(0,Ws.stringify)(A)})}function $9A(t,e,A=!1){return!e.length||e.some(i=>i==="array"?Array.isArray(t):i==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==i||A&&typeof t>"u")}pg.validSchemaType=$9A;function AbA({schema:t,opts:e,self:A,errSchemaPath:i},n,o){if(Array.isArray(n.keyword)?!n.keyword.includes(o):n.keyword!==o)throw new Error("ajv implementation error");let r=n.dependencies;if(r?.some(s=>!Object.prototype.hasOwnProperty.call(t,s)))throw new Error(`parent schema must have dependencies of ${o}: ${r.join(",")}`);if(n.validateSchema&&!n.validateSchema(t[o])){let a=`keyword "${o}" value is invalid at path "${i}": `+A.errorsText(n.validateSchema.errors);if(e.validateSchema==="log")A.logger.error(a);else throw new Error(a)}}pg.validateKeywordUsage=AbA});var LX=Je(B1=>{"use strict";Object.defineProperty(B1,"__esModule",{value:!0});B1.extendSubschemaMode=B1.extendSubschemaData=B1.getSubschema=void 0;var wg=An(),xX=bn();function ebA(t,{keyword:e,schemaProp:A,schema:i,schemaPath:n,errSchemaPath:o,topSchemaRef:r}){if(e!==void 0&&i!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let s=t.schema[e];return A===void 0?{schema:s,schemaPath:(0,wg._)`${t.schemaPath}${(0,wg.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:s[A],schemaPath:(0,wg._)`${t.schemaPath}${(0,wg.getProperty)(e)}${(0,wg.getProperty)(A)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,xX.escapeFragment)(A)}`}}if(i!==void 0){if(n===void 0||o===void 0||r===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:i,schemaPath:n,topSchemaRef:r,errSchemaPath:o}}throw new Error('either "keyword" or "schema" must be passed')}B1.getSubschema=ebA;function tbA(t,e,{dataProp:A,dataPropType:i,data:n,dataTypes:o,propertyName:r}){if(n!==void 0&&A!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=e;if(A!==void 0){let{errorPath:c,dataPathArr:l,opts:I}=e,C=s.let("data",(0,wg._)`${e.data}${(0,wg.getProperty)(A)}`,!0);a(C),t.errorPath=(0,wg.str)`${c}${(0,xX.getErrorPath)(A,i,I.jsPropertySyntax)}`,t.parentDataProperty=(0,wg._)`${A}`,t.dataPathArr=[...l,t.parentDataProperty]}if(n!==void 0){let c=n instanceof wg.Name?n:s.let("data",n,!0);a(c),r!==void 0&&(t.propertyName=r)}o&&(t.dataTypes=o);function a(c){t.data=c,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,c]}}B1.extendSubschemaData=tbA;function ibA(t,{jtdDiscriminator:e,jtdMetadata:A,compositeRule:i,createErrors:n,allErrors:o}){i!==void 0&&(t.compositeRule=i),n!==void 0&&(t.createErrors=n),o!==void 0&&(t.allErrors=o),t.jtdDiscriminator=e,t.jtdMetadata=A}B1.extendSubschemaMode=ibA});var SR=Je((lme,FX)=>{"use strict";FX.exports=function t(e,A){if(e===A)return!0;if(e&&A&&typeof e=="object"&&typeof A=="object"){if(e.constructor!==A.constructor)return!1;var i,n,o;if(Array.isArray(e)){if(i=e.length,i!=A.length)return!1;for(n=i;n--!==0;)if(!t(e[n],A[n]))return!1;return!0}if(e.constructor===RegExp)return e.source===A.source&&e.flags===A.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===A.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===A.toString();if(o=Object.keys(e),i=o.length,i!==Object.keys(A).length)return!1;for(n=i;n--!==0;)if(!Object.prototype.hasOwnProperty.call(A,o[n]))return!1;for(n=i;n--!==0;){var r=o[n];if(!t(e[r],A[r]))return!1}return!0}return e!==e&&A!==A}});var _X=Je((gme,NX)=>{"use strict";var E1=NX.exports=function(t,e,A){typeof e=="function"&&(A=e,e={}),A=e.cb||A;var i=typeof A=="function"?A:A.pre||function(){},n=A.post||function(){};R5(e,i,n,t,"",t)};E1.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};E1.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};E1.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};E1.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function R5(t,e,A,i,n,o,r,s,a,c){if(i&&typeof i=="object"&&!Array.isArray(i)){e(i,n,o,r,s,a,c);for(var l in i){var I=i[l];if(Array.isArray(I)){if(l in E1.arrayKeywords)for(var C=0;C{"use strict";Object.defineProperty(ka,"__esModule",{value:!0});ka.getSchemaRefs=ka.resolveUrl=ka.normalizeId=ka._getFullPath=ka.getFullPath=ka.inlineRef=void 0;var obA=bn(),rbA=SR(),sbA=_X(),abA=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function cbA(t,e=!0){return typeof t=="boolean"?!0:e===!0?!RR(t):e?GX(t)<=e:!1}ka.inlineRef=cbA;var lbA=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function RR(t){for(let e in t){if(lbA.has(e))return!0;let A=t[e];if(Array.isArray(A)&&A.some(RR)||typeof A=="object"&&RR(A))return!0}return!1}function GX(t){let e=0;for(let A in t){if(A==="$ref")return 1/0;if(e++,!abA.has(A)&&(typeof t[A]=="object"&&(0,obA.eachItem)(t[A],i=>e+=GX(i)),e===1/0))return 1/0}return e}function UX(t,e="",A){A!==!1&&(e=dE(e));let i=t.parse(e);return KX(t,i)}ka.getFullPath=UX;function KX(t,e){return t.serialize(e).split("#")[0]+"#"}ka._getFullPath=KX;var gbA=/#\/?$/;function dE(t){return t?t.replace(gbA,""):""}ka.normalizeId=dE;function IbA(t,e,A){return A=dE(A),t.resolve(e,A)}ka.resolveUrl=IbA;var CbA=/^[a-z_][-a-z0-9._]*$/i;function dbA(t,e){if(typeof t=="boolean")return{};let{schemaId:A,uriResolver:i}=this.opts,n=dE(t[A]||e),o={"":n},r=UX(i,n,!1),s={},a=new Set;return sbA(t,{allKeys:!0},(I,C,d,B)=>{if(B===void 0)return;let E=r+C,h=o[B];typeof I[A]=="string"&&(h=u.call(this,I[A])),D.call(this,I.$anchor),D.call(this,I.$dynamicAnchor),o[C]=h;function u(L){let R=this.opts.uriResolver.resolve;if(L=dE(h?R(h,L):L),a.has(L))throw l(L);a.add(L);let w=this.refs[L];return typeof w=="string"&&(w=this.refs[w]),typeof w=="object"?c(I,w.schema,L):L!==dE(E)&&(L[0]==="#"?(c(I,s[L],L),s[L]=I):this.refs[L]=E),L}function D(L){if(typeof L=="string"){if(!CbA.test(L))throw new Error(`invalid anchor "${L}"`);u.call(this,`#${L}`)}}}),s;function c(I,C,d){if(C!==void 0&&!rbA(I,C))throw l(d)}function l(I){return new Error(`reference "${I}" resolves to more than one schema`)}}ka.getSchemaRefs=dbA});var p4=Je(Q1=>{"use strict";Object.defineProperty(Q1,"__esModule",{value:!0});Q1.getData=Q1.KeywordCxt=Q1.validateFunctionCode=void 0;var zX=uX(),YX=h4(),LR=wR(),x5=h4(),BbA=vX(),m4=RX(),xR=LX(),yt=An(),Bi=G0(),EbA=u4(),U0=bn(),f4=Q4();function QbA(t){if(jX(t)&&(qX(t),PX(t))){fbA(t);return}OX(t,()=>(0,zX.topBoolOrEmptySchema)(t))}Q1.validateFunctionCode=QbA;function OX({gen:t,validateName:e,schema:A,schemaEnv:i,opts:n},o){n.code.es5?t.func(e,(0,yt._)`${Bi.default.data}, ${Bi.default.valCxt}`,i.$async,()=>{t.code((0,yt._)`"use strict"; ${JX(A,n)}`),ubA(t,n),t.code(o)}):t.func(e,(0,yt._)`${Bi.default.data}, ${hbA(n)}`,i.$async,()=>t.code(JX(A,n)).code(o))}function hbA(t){return(0,yt._)`{${Bi.default.instancePath}="", ${Bi.default.parentData}, ${Bi.default.parentDataProperty}, ${Bi.default.rootData}=${Bi.default.data}${t.dynamicRef?(0,yt._)`, ${Bi.default.dynamicAnchors}={}`:yt.nil}}={}`}function ubA(t,e){t.if(Bi.default.valCxt,()=>{t.var(Bi.default.instancePath,(0,yt._)`${Bi.default.valCxt}.${Bi.default.instancePath}`),t.var(Bi.default.parentData,(0,yt._)`${Bi.default.valCxt}.${Bi.default.parentData}`),t.var(Bi.default.parentDataProperty,(0,yt._)`${Bi.default.valCxt}.${Bi.default.parentDataProperty}`),t.var(Bi.default.rootData,(0,yt._)`${Bi.default.valCxt}.${Bi.default.rootData}`),e.dynamicRef&&t.var(Bi.default.dynamicAnchors,(0,yt._)`${Bi.default.valCxt}.${Bi.default.dynamicAnchors}`)},()=>{t.var(Bi.default.instancePath,(0,yt._)`""`),t.var(Bi.default.parentData,(0,yt._)`undefined`),t.var(Bi.default.parentDataProperty,(0,yt._)`undefined`),t.var(Bi.default.rootData,Bi.default.data),e.dynamicRef&&t.var(Bi.default.dynamicAnchors,(0,yt._)`{}`)})}function fbA(t){let{schema:e,opts:A,gen:i}=t;OX(t,()=>{A.$comment&&e.$comment&&ZX(t),ybA(t),i.let(Bi.default.vErrors,null),i.let(Bi.default.errors,0),A.unevaluated&&mbA(t),VX(t),MbA(t)})}function mbA(t){let{gen:e,validateName:A}=t;t.evaluated=e.const("evaluated",(0,yt._)`${A}.evaluated`),e.if((0,yt._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,yt._)`${t.evaluated}.props`,(0,yt._)`undefined`)),e.if((0,yt._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,yt._)`${t.evaluated}.items`,(0,yt._)`undefined`))}function JX(t,e){let A=typeof t=="object"&&t[e.schemaId];return A&&(e.code.source||e.code.process)?(0,yt._)`/*# sourceURL=${A} */`:yt.nil}function pbA(t,e){if(jX(t)&&(qX(t),PX(t))){wbA(t,e);return}(0,zX.boolOrEmptySchema)(t,e)}function PX({schema:t,self:e}){if(typeof t=="boolean")return!t;for(let A in t)if(e.RULES.all[A])return!0;return!1}function jX(t){return typeof t.schema!="boolean"}function wbA(t,e){let{schema:A,gen:i,opts:n}=t;n.$comment&&A.$comment&&ZX(t),vbA(t),bbA(t);let o=i.const("_errs",Bi.default.errors);VX(t,o),i.var(e,(0,yt._)`${o} === ${Bi.default.errors}`)}function qX(t){(0,U0.checkUnknownRules)(t),DbA(t)}function VX(t,e){if(t.opts.jtd)return TX(t,[],!1,e);let A=(0,YX.getSchemaTypes)(t.schema),i=(0,YX.coerceAndCheckDataType)(t,A);TX(t,A,!i,e)}function DbA(t){let{schema:e,errSchemaPath:A,opts:i,self:n}=t;e.$ref&&i.ignoreKeywordsWithRef&&(0,U0.schemaHasRulesButRef)(e,n.RULES)&&n.logger.warn(`$ref: keywords ignored in schema at path "${A}"`)}function ybA(t){let{schema:e,opts:A}=t;e.default!==void 0&&A.useDefaults&&A.strictSchema&&(0,U0.checkStrictMode)(t,"default is ignored in the schema root")}function vbA(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,EbA.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function bbA(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function ZX({gen:t,schemaEnv:e,schema:A,errSchemaPath:i,opts:n}){let o=A.$comment;if(n.$comment===!0)t.code((0,yt._)`${Bi.default.self}.logger.log(${o})`);else if(typeof n.$comment=="function"){let r=(0,yt.str)`${i}/$comment`,s=t.scopeValue("root",{ref:e.root});t.code((0,yt._)`${Bi.default.self}.opts.$comment(${o}, ${r}, ${s}.schema)`)}}function MbA(t){let{gen:e,schemaEnv:A,validateName:i,ValidationError:n,opts:o}=t;A.$async?e.if((0,yt._)`${Bi.default.errors} === 0`,()=>e.return(Bi.default.data),()=>e.throw((0,yt._)`new ${n}(${Bi.default.vErrors})`)):(e.assign((0,yt._)`${i}.errors`,Bi.default.vErrors),o.unevaluated&&kbA(t),e.return((0,yt._)`${Bi.default.errors} === 0`))}function kbA({gen:t,evaluated:e,props:A,items:i}){A instanceof yt.Name&&t.assign((0,yt._)`${e}.props`,A),i instanceof yt.Name&&t.assign((0,yt._)`${e}.items`,i)}function TX(t,e,A,i){let{gen:n,schema:o,data:r,allErrors:s,opts:a,self:c}=t,{RULES:l}=c;if(o.$ref&&(a.ignoreKeywordsWithRef||!(0,U0.schemaHasRulesButRef)(o,l))){n.block(()=>XX(t,"$ref",l.all.$ref.definition));return}a.jtd||SbA(t,e),n.block(()=>{for(let C of l.rules)I(C);I(l.post)});function I(C){(0,LR.shouldUseGroup)(o,C)&&(C.type?(n.if((0,x5.checkDataType)(C.type,r,a.strictNumbers)),HX(t,C),e.length===1&&e[0]===C.type&&A&&(n.else(),(0,x5.reportTypeError)(t)),n.endIf()):HX(t,C),s||n.if((0,yt._)`${Bi.default.errors} === ${i||0}`))}}function HX(t,e){let{gen:A,schema:i,opts:{useDefaults:n}}=t;n&&(0,BbA.assignDefaults)(t,e.type),A.block(()=>{for(let o of e.rules)(0,LR.shouldUseRule)(i,o)&&XX(t,o.keyword,o.definition,e.type)})}function SbA(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(RbA(t,e),t.opts.allowUnionTypes||xbA(t,e),LbA(t,t.dataTypes))}function RbA(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(A=>{WX(t.dataTypes,A)||FR(t,`type "${A}" not allowed by context "${t.dataTypes.join(",")}"`)}),NbA(t,e)}}function xbA(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&FR(t,"use allowUnionTypes to allow union type keyword")}function LbA(t,e){let A=t.self.RULES.all;for(let i in A){let n=A[i];if(typeof n=="object"&&(0,LR.shouldUseRule)(t.schema,n)){let{type:o}=n.definition;o.length&&!o.some(r=>FbA(e,r))&&FR(t,`missing type "${o.join(",")}" for keyword "${i}"`)}}}function FbA(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function WX(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function NbA(t,e){let A=[];for(let i of t.dataTypes)WX(e,i)?A.push(i):e.includes("integer")&&i==="number"&&A.push("integer");t.dataTypes=A}function FR(t,e){let A=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${A}" (strictTypes)`,(0,U0.checkStrictMode)(t,e,t.opts.strictTypes)}var L5=class{constructor(e,A,i){if((0,m4.validateKeywordUsage)(e,A,i),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=i,this.data=e.data,this.schema=e.schema[i],this.$data=A.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,U0.schemaRefOrVal)(e,this.schema,i,this.$data),this.schemaType=A.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=A,this.$data)this.schemaCode=e.gen.const("vSchema",$X(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,m4.validSchemaType)(this.schema,A.schemaType,A.allowUndefined))throw new Error(`${i} value must be ${JSON.stringify(A.schemaType)}`);("code"in A?A.trackErrors:A.errors!==!1)&&(this.errsCount=e.gen.const("_errs",Bi.default.errors))}result(e,A,i){this.failResult((0,yt.not)(e),A,i)}failResult(e,A,i){this.gen.if(e),i?i():this.error(),A?(this.gen.else(),A(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,A){this.failResult((0,yt.not)(e),void 0,A)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:A}=this;this.fail((0,yt._)`${A} !== undefined && (${(0,yt.or)(this.invalid$data(),e)})`)}error(e,A,i){if(A){this.setParams(A),this._error(e,i),this.setParams({});return}this._error(e,i)}_error(e,A){(e?f4.reportExtraError:f4.reportError)(this,this.def.error,A)}$dataError(){(0,f4.reportError)(this,this.def.$dataError||f4.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,f4.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,A){A?Object.assign(this.params,e):this.params=e}block$data(e,A,i=yt.nil){this.gen.block(()=>{this.check$data(e,i),A()})}check$data(e=yt.nil,A=yt.nil){if(!this.$data)return;let{gen:i,schemaCode:n,schemaType:o,def:r}=this;i.if((0,yt.or)((0,yt._)`${n} === undefined`,A)),e!==yt.nil&&i.assign(e,!0),(o.length||r.validateSchema)&&(i.elseIf(this.invalid$data()),this.$dataError(),e!==yt.nil&&i.assign(e,!1)),i.else()}invalid$data(){let{gen:e,schemaCode:A,schemaType:i,def:n,it:o}=this;return(0,yt.or)(r(),s());function r(){if(i.length){if(!(A instanceof yt.Name))throw new Error("ajv implementation error");let a=Array.isArray(i)?i:[i];return(0,yt._)`${(0,x5.checkDataTypes)(a,A,o.opts.strictNumbers,x5.DataType.Wrong)}`}return yt.nil}function s(){if(n.validateSchema){let a=e.scopeValue("validate$data",{ref:n.validateSchema});return(0,yt._)`!${a}(${A})`}return yt.nil}}subschema(e,A){let i=(0,xR.getSubschema)(this.it,e);(0,xR.extendSubschemaData)(i,this.it,e),(0,xR.extendSubschemaMode)(i,e);let n=Ye(rA(rA({},this.it),i),{items:void 0,props:void 0});return pbA(n,A),n}mergeEvaluated(e,A){let{it:i,gen:n}=this;i.opts.unevaluated&&(i.props!==!0&&e.props!==void 0&&(i.props=U0.mergeEvaluated.props(n,e.props,i.props,A)),i.items!==!0&&e.items!==void 0&&(i.items=U0.mergeEvaluated.items(n,e.items,i.items,A)))}mergeValidEvaluated(e,A){let{it:i,gen:n}=this;if(i.opts.unevaluated&&(i.props!==!0||i.items!==!0))return n.if(A,()=>this.mergeEvaluated(e,yt.Name)),!0}};Q1.KeywordCxt=L5;function XX(t,e,A,i){let n=new L5(t,A,e);"code"in A?A.code(n,i):n.$data&&A.validate?(0,m4.funcKeywordCode)(n,A):"macro"in A?(0,m4.macroKeywordCode)(n,A):(A.compile||A.validate)&&(0,m4.funcKeywordCode)(n,A)}var _bA=/^\/(?:[^~]|~0|~1)*$/,GbA=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function $X(t,{dataLevel:e,dataNames:A,dataPathArr:i}){let n,o;if(t==="")return Bi.default.rootData;if(t[0]==="/"){if(!_bA.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);n=t,o=Bi.default.rootData}else{let c=GbA.exec(t);if(!c)throw new Error(`Invalid JSON-pointer: ${t}`);let l=+c[1];if(n=c[2],n==="#"){if(l>=e)throw new Error(a("property/index",l));return i[e-l]}if(l>e)throw new Error(a("data",l));if(o=A[e-l],!n)return o}let r=o,s=n.split("/");for(let c of s)c&&(o=(0,yt._)`${o}${(0,yt.getProperty)((0,U0.unescapeJsonPointer)(c))}`,r=(0,yt._)`${r} && ${o}`);return r;function a(c,l){return`Cannot access ${c} ${l} levels up, current level is ${e}`}}Q1.getData=$X});var F5=Je(_R=>{"use strict";Object.defineProperty(_R,"__esModule",{value:!0});var NR=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};_R.default=NR});var w4=Je(KR=>{"use strict";Object.defineProperty(KR,"__esModule",{value:!0});var GR=u4(),UR=class extends Error{constructor(e,A,i,n){super(n||`can't resolve reference ${i} from id ${A}`),this.missingRef=(0,GR.resolveUrl)(e,A,i),this.missingSchema=(0,GR.normalizeId)((0,GR.getFullPath)(e,this.missingRef))}};KR.default=UR});var _5=Je(Gc=>{"use strict";Object.defineProperty(Gc,"__esModule",{value:!0});Gc.resolveSchema=Gc.getCompilingSchema=Gc.resolveRef=Gc.compileSchema=Gc.SchemaEnv=void 0;var fl=An(),UbA=F5(),EC=G0(),ml=u4(),A$=bn(),KbA=p4(),BE=class{constructor(e){var A;this.refs={},this.dynamicAnchors={};let i;typeof e.schema=="object"&&(i=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(A=e.baseId)!==null&&A!==void 0?A:(0,ml.normalizeId)(i?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=i?.$async,this.refs={}}};Gc.SchemaEnv=BE;function JR(t){let e=e$.call(this,t);if(e)return e;let A=(0,ml.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:i,lines:n}=this.opts.code,{ownProperties:o}=this.opts,r=new fl.CodeGen(this.scope,{es5:i,lines:n,ownProperties:o}),s;t.$async&&(s=r.scopeValue("Error",{ref:UbA.default,code:(0,fl._)`require("ajv/dist/runtime/validation_error").default`}));let a=r.scopeName("validate");t.validateName=a;let c={gen:r,allErrors:this.opts.allErrors,data:EC.default.data,parentData:EC.default.parentData,parentDataProperty:EC.default.parentDataProperty,dataNames:[EC.default.data],dataPathArr:[fl.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:r.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,fl.stringify)(t.schema)}:{ref:t.schema}),validateName:a,ValidationError:s,schema:t.schema,schemaEnv:t,rootId:A,baseId:t.baseId||A,schemaPath:fl.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,fl._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(t),(0,KbA.validateFunctionCode)(c),r.optimize(this.opts.code.optimize);let I=r.toString();l=`${r.scopeRefs(EC.default.scope)}return ${I}`,this.opts.code.process&&(l=this.opts.code.process(l,t));let d=new Function(`${EC.default.self}`,`${EC.default.scope}`,l)(this,this.scope.get());if(this.scope.value(a,{ref:d}),d.errors=null,d.schema=t.schema,d.schemaEnv=t,t.$async&&(d.$async=!0),this.opts.code.source===!0&&(d.source={validateName:a,validateCode:I,scopeValues:r._values}),this.opts.unevaluated){let{props:B,items:E}=c;d.evaluated={props:B instanceof fl.Name?void 0:B,items:E instanceof fl.Name?void 0:E,dynamicProps:B instanceof fl.Name,dynamicItems:E instanceof fl.Name},d.source&&(d.source.evaluated=(0,fl.stringify)(d.evaluated))}return t.validate=d,t}catch(I){throw delete t.validate,delete t.validateName,l&&this.logger.error("Error compiling schema, function code:",l),I}finally{this._compilations.delete(t)}}Gc.compileSchema=JR;function YbA(t,e,A){var i;A=(0,ml.resolveUrl)(this.opts.uriResolver,e,A);let n=t.refs[A];if(n)return n;let o=HbA.call(this,t,A);if(o===void 0){let r=(i=t.localRefs)===null||i===void 0?void 0:i[A],{schemaId:s}=this.opts;r&&(o=new BE({schema:r,schemaId:s,root:t,baseId:e}))}if(o!==void 0)return t.refs[A]=JbA.call(this,o)}Gc.resolveRef=YbA;function JbA(t){return(0,ml.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:JR.call(this,t)}function e$(t){for(let e of this._compilations)if(TbA(e,t))return e}Gc.getCompilingSchema=e$;function TbA(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function HbA(t,e){let A;for(;typeof(A=this.refs[e])=="string";)e=A;return A||this.schemas[e]||N5.call(this,t,e)}function N5(t,e){let A=this.opts.uriResolver.parse(e),i=(0,ml._getFullPath)(this.opts.uriResolver,A),n=(0,ml.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&i===n)return YR.call(this,A,t);let o=(0,ml.normalizeId)(i),r=this.refs[o]||this.schemas[o];if(typeof r=="string"){let s=N5.call(this,t,r);return typeof s?.schema!="object"?void 0:YR.call(this,A,s)}if(typeof r?.schema=="object"){if(r.validate||JR.call(this,r),o===(0,ml.normalizeId)(e)){let{schema:s}=r,{schemaId:a}=this.opts,c=s[a];return c&&(n=(0,ml.resolveUrl)(this.opts.uriResolver,n,c)),new BE({schema:s,schemaId:a,root:t,baseId:n})}return YR.call(this,A,r)}}Gc.resolveSchema=N5;var zbA=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function YR(t,{baseId:e,schema:A,root:i}){var n;if(((n=t.fragment)===null||n===void 0?void 0:n[0])!=="/")return;for(let s of t.fragment.slice(1).split("/")){if(typeof A=="boolean")return;let a=A[(0,A$.unescapeFragment)(s)];if(a===void 0)return;A=a;let c=typeof A=="object"&&A[this.opts.schemaId];!zbA.has(s)&&c&&(e=(0,ml.resolveUrl)(this.opts.uriResolver,e,c))}let o;if(typeof A!="boolean"&&A.$ref&&!(0,A$.schemaHasRulesButRef)(A,this.RULES)){let s=(0,ml.resolveUrl)(this.opts.uriResolver,e,A.$ref);o=N5.call(this,i,s)}let{schemaId:r}=this.opts;if(o=o||new BE({schema:A,schemaId:r,root:i,baseId:e}),o.schema!==o.root.schema)return o}});var t$=Je((hme,ObA)=>{ObA.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var n$=Je((ume,i$)=>{"use strict";var PbA={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};i$.exports={HEX:PbA}});var I$=Je((fme,g$)=>{"use strict";var{HEX:jbA}=n$(),qbA=/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u;function a$(t){if(l$(t,".")<3)return{host:t,isIPV4:!1};let e=t.match(qbA)||[],[A]=e;return A?{host:ZbA(A,"."),isIPV4:!0}:{host:t,isIPV4:!1}}function TR(t,e=!1){let A="",i=!0;for(let n of t){if(jbA[n]===void 0)return;n!=="0"&&i===!0&&(i=!1),i||(A+=n)}return e&&A.length===0&&(A="0"),A}function VbA(t){let e=0,A={error:!1,address:"",zone:""},i=[],n=[],o=!1,r=!1,s=!1;function a(){if(n.length){if(o===!1){let c=TR(n);if(c!==void 0)i.push(c);else return A.error=!0,!1}n.length=0}return!0}for(let c=0;c7){A.error=!0;break}c-1>=0&&t[c-1]===":"&&(r=!0);continue}else if(l==="%"){if(!a())break;o=!0}else{n.push(l);continue}}return n.length&&(o?A.zone=n.join(""):s?i.push(n.join("")):i.push(TR(n))),A.address=i.join(""),A}function c$(t){if(l$(t,":")<2)return{host:t,isIPV6:!1};let e=VbA(t);if(e.error)return{host:t,isIPV6:!1};{let A=e.address,i=e.address;return e.zone&&(A+="%"+e.zone,i+="%25"+e.zone),{host:A,escapedHost:i,isIPV6:!0}}}function ZbA(t,e){let A="",i=!0,n=t.length;for(let o=0;o{"use strict";var eMA=/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu,tMA=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function C$(t){return typeof t.secure=="boolean"?t.secure:String(t.scheme).toLowerCase()==="wss"}function d$(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function B$(t){let e=String(t.scheme).toLowerCase()==="https";return(t.port===(e?443:80)||t.port==="")&&(t.port=void 0),t.path||(t.path="/"),t}function iMA(t){return t.secure=C$(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function nMA(t){if((t.port===(C$(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[e,A]=t.resourceName.split("?");t.path=e&&e!=="/"?e:void 0,t.query=A,t.resourceName=void 0}return t.fragment=void 0,t}function oMA(t,e){if(!t.path)return t.error="URN can not be parsed",t;let A=t.path.match(tMA);if(A){let i=e.scheme||t.scheme||"urn";t.nid=A[1].toLowerCase(),t.nss=A[2];let n=`${i}:${e.nid||t.nid}`,o=HR[n];t.path=void 0,o&&(t=o.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function rMA(t,e){let A=e.scheme||t.scheme||"urn",i=t.nid.toLowerCase(),n=`${A}:${e.nid||i}`,o=HR[n];o&&(t=o.serialize(t,e));let r=t,s=t.nss;return r.path=`${i||e.nid}:${s}`,e.skipEscape=!0,r}function sMA(t,e){let A=t;return A.uuid=A.nss,A.nss=void 0,!e.tolerant&&(!A.uuid||!eMA.test(A.uuid))&&(A.error=A.error||"UUID is not valid."),A}function aMA(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var E$={scheme:"http",domainHost:!0,parse:d$,serialize:B$},cMA={scheme:"https",domainHost:E$.domainHost,parse:d$,serialize:B$},G5={scheme:"ws",domainHost:!0,parse:iMA,serialize:nMA},lMA={scheme:"wss",domainHost:G5.domainHost,parse:G5.parse,serialize:G5.serialize},gMA={scheme:"urn",parse:oMA,serialize:rMA,skipNormalize:!0},IMA={scheme:"urn:uuid",parse:sMA,serialize:aMA,skipNormalize:!0},HR={http:E$,https:cMA,ws:G5,wss:lMA,urn:gMA,"urn:uuid":IMA};Q$.exports=HR});var f$=Je((pme,K5)=>{"use strict";var{normalizeIPv6:CMA,normalizeIPv4:dMA,removeDotSegments:D4,recomposeAuthority:BMA,normalizeComponentEncoding:U5}=I$(),zR=h$();function EMA(t,e){return typeof t=="string"?t=Dg(K0(t,e),e):typeof t=="object"&&(t=K0(Dg(t,e),e)),t}function QMA(t,e,A){let i=Object.assign({scheme:"null"},A),n=u$(K0(t,i),K0(e,i),i,!0);return Dg(n,Ye(rA({},i),{skipEscape:!0}))}function u$(t,e,A,i){let n={};return i||(t=K0(Dg(t,A),A),e=K0(Dg(e,A),A)),A=A||{},!A.tolerant&&e.scheme?(n.scheme=e.scheme,n.userinfo=e.userinfo,n.host=e.host,n.port=e.port,n.path=D4(e.path||""),n.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(n.userinfo=e.userinfo,n.host=e.host,n.port=e.port,n.path=D4(e.path||""),n.query=e.query):(e.path?(e.path.charAt(0)==="/"?n.path=D4(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?n.path="/"+e.path:t.path?n.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:n.path=e.path,n.path=D4(n.path)),n.query=e.query):(n.path=t.path,e.query!==void 0?n.query=e.query:n.query=t.query),n.userinfo=t.userinfo,n.host=t.host,n.port=t.port),n.scheme=t.scheme),n.fragment=e.fragment,n}function hMA(t,e,A){return typeof t=="string"?(t=unescape(t),t=Dg(U5(K0(t,A),!0),Ye(rA({},A),{skipEscape:!0}))):typeof t=="object"&&(t=Dg(U5(t,!0),Ye(rA({},A),{skipEscape:!0}))),typeof e=="string"?(e=unescape(e),e=Dg(U5(K0(e,A),!0),Ye(rA({},A),{skipEscape:!0}))):typeof e=="object"&&(e=Dg(U5(e,!0),Ye(rA({},A),{skipEscape:!0}))),t.toLowerCase()===e.toLowerCase()}function Dg(t,e){let A={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},i=Object.assign({},e),n=[],o=zR[(i.scheme||A.scheme||"").toLowerCase()];o&&o.serialize&&o.serialize(A,i),A.path!==void 0&&(i.skipEscape?A.path=unescape(A.path):(A.path=escape(A.path),A.scheme!==void 0&&(A.path=A.path.split("%3A").join(":")))),i.reference!=="suffix"&&A.scheme&&n.push(A.scheme,":");let r=BMA(A);if(r!==void 0&&(i.reference!=="suffix"&&n.push("//"),n.push(r),A.path&&A.path.charAt(0)!=="/"&&n.push("/")),A.path!==void 0){let s=A.path;!i.absolutePath&&(!o||!o.absolutePath)&&(s=D4(s)),r===void 0&&(s=s.replace(/^\/\//u,"/%2F")),n.push(s)}return A.query!==void 0&&n.push("?",A.query),A.fragment!==void 0&&n.push("#",A.fragment),n.join("")}var uMA=Array.from({length:127},(t,e)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(e)));function fMA(t){let e=0;for(let A=0,i=t.length;A126||uMA[e])return!0;return!1}var mMA=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function K0(t,e){let A=Object.assign({},e),i={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},n=t.indexOf("%")!==-1,o=!1;A.reference==="suffix"&&(t=(A.scheme?A.scheme+":":"")+"//"+t);let r=t.match(mMA);if(r){if(i.scheme=r[1],i.userinfo=r[3],i.host=r[4],i.port=parseInt(r[5],10),i.path=r[6]||"",i.query=r[7],i.fragment=r[8],isNaN(i.port)&&(i.port=r[5]),i.host){let a=dMA(i.host);if(a.isIPV4===!1){let c=CMA(a.host);i.host=c.host.toLowerCase(),o=c.isIPV6}else i.host=a.host,o=!0}i.scheme===void 0&&i.userinfo===void 0&&i.host===void 0&&i.port===void 0&&i.query===void 0&&!i.path?i.reference="same-document":i.scheme===void 0?i.reference="relative":i.fragment===void 0?i.reference="absolute":i.reference="uri",A.reference&&A.reference!=="suffix"&&A.reference!==i.reference&&(i.error=i.error||"URI is not a "+A.reference+" reference.");let s=zR[(A.scheme||i.scheme||"").toLowerCase()];if(!A.unicodeSupport&&(!s||!s.unicodeSupport)&&i.host&&(A.domainHost||s&&s.domainHost)&&o===!1&&fMA(i.host))try{i.host=URL.domainToASCII(i.host.toLowerCase())}catch(a){i.error=i.error||"Host's domain name can not be converted to ASCII: "+a}(!s||s&&!s.skipNormalize)&&(n&&i.scheme!==void 0&&(i.scheme=unescape(i.scheme)),n&&i.host!==void 0&&(i.host=unescape(i.host)),i.path&&(i.path=escape(unescape(i.path))),i.fragment&&(i.fragment=encodeURI(decodeURIComponent(i.fragment)))),s&&s.parse&&s.parse(i,A)}else i.error=i.error||"URI can not be parsed.";return i}var OR={SCHEMES:zR,normalize:EMA,resolve:QMA,resolveComponents:u$,equal:hMA,serialize:Dg,parse:K0};K5.exports=OR;K5.exports.default=OR;K5.exports.fastUri=OR});var p$=Je(PR=>{"use strict";Object.defineProperty(PR,"__esModule",{value:!0});var m$=f$();m$.code='require("ajv/dist/runtime/uri").default';PR.default=m$});var S$=Je(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});ls.CodeGen=ls.Name=ls.nil=ls.stringify=ls.str=ls._=ls.KeywordCxt=void 0;var pMA=p4();Object.defineProperty(ls,"KeywordCxt",{enumerable:!0,get:function(){return pMA.KeywordCxt}});var EE=An();Object.defineProperty(ls,"_",{enumerable:!0,get:function(){return EE._}});Object.defineProperty(ls,"str",{enumerable:!0,get:function(){return EE.str}});Object.defineProperty(ls,"stringify",{enumerable:!0,get:function(){return EE.stringify}});Object.defineProperty(ls,"nil",{enumerable:!0,get:function(){return EE.nil}});Object.defineProperty(ls,"Name",{enumerable:!0,get:function(){return EE.Name}});Object.defineProperty(ls,"CodeGen",{enumerable:!0,get:function(){return EE.CodeGen}});var wMA=F5(),b$=w4(),DMA=pR(),y4=_5(),yMA=An(),v4=u4(),Y5=h4(),qR=bn(),w$=t$(),vMA=p$(),M$=(t,e)=>new RegExp(t,e);M$.code="new RegExp";var bMA=["removeAdditional","useDefaults","coerceTypes"],MMA=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),kMA={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},SMA={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},D$=200;function RMA(t){var e,A,i,n,o,r,s,a,c,l,I,C,d,B,E,h,u,D,L,R,w,_,K,z,U;let H=t.strict,q=(e=t.code)===null||e===void 0?void 0:e.optimize,j=q===!0||q===void 0?1:q||0,gA=(i=(A=t.code)===null||A===void 0?void 0:A.regExp)!==null&&i!==void 0?i:M$,QA=(n=t.uriResolver)!==null&&n!==void 0?n:vMA.default;return{strictSchema:(r=(o=t.strictSchema)!==null&&o!==void 0?o:H)!==null&&r!==void 0?r:!0,strictNumbers:(a=(s=t.strictNumbers)!==null&&s!==void 0?s:H)!==null&&a!==void 0?a:!0,strictTypes:(l=(c=t.strictTypes)!==null&&c!==void 0?c:H)!==null&&l!==void 0?l:"log",strictTuples:(C=(I=t.strictTuples)!==null&&I!==void 0?I:H)!==null&&C!==void 0?C:"log",strictRequired:(B=(d=t.strictRequired)!==null&&d!==void 0?d:H)!==null&&B!==void 0?B:!1,code:t.code?Ye(rA({},t.code),{optimize:j,regExp:gA}):{optimize:j,regExp:gA},loopRequired:(E=t.loopRequired)!==null&&E!==void 0?E:D$,loopEnum:(h=t.loopEnum)!==null&&h!==void 0?h:D$,meta:(u=t.meta)!==null&&u!==void 0?u:!0,messages:(D=t.messages)!==null&&D!==void 0?D:!0,inlineRefs:(L=t.inlineRefs)!==null&&L!==void 0?L:!0,schemaId:(R=t.schemaId)!==null&&R!==void 0?R:"$id",addUsedSchema:(w=t.addUsedSchema)!==null&&w!==void 0?w:!0,validateSchema:(_=t.validateSchema)!==null&&_!==void 0?_:!0,validateFormats:(K=t.validateFormats)!==null&&K!==void 0?K:!0,unicodeRegExp:(z=t.unicodeRegExp)!==null&&z!==void 0?z:!0,int32range:(U=t.int32range)!==null&&U!==void 0?U:!0,uriResolver:QA}}var b4=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts=rA(rA({},e),RMA(e));let{es5:A,lines:i}=this.opts.code;this.scope=new yMA.ValueScope({scope:{},prefixes:MMA,es5:A,lines:i}),this.logger=GMA(e.logger);let n=e.validateFormats;e.validateFormats=!1,this.RULES=(0,DMA.getRules)(),y$.call(this,kMA,e,"NOT SUPPORTED"),y$.call(this,SMA,e,"DEPRECATED","warn"),this._metaOpts=NMA.call(this),e.formats&&LMA.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&FMA.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),xMA.call(this),e.validateFormats=n}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:A,schemaId:i}=this.opts,n=w$;i==="id"&&(n=rA({},w$),n.id=n.$id,delete n.$id),A&&e&&this.addMetaSchema(n,n[i],!1)}defaultMeta(){let{meta:e,schemaId:A}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[A]||e:void 0}validate(e,A){let i;if(typeof e=="string"){if(i=this.getSchema(e),!i)throw new Error(`no schema with key or ref "${e}"`)}else i=this.compile(e);let n=i(A);return"$async"in i||(this.errors=i.errors),n}compile(e,A){let i=this._addSchema(e,A);return i.validate||this._compileSchemaEnv(i)}compileAsync(e,A){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:i}=this.opts;return n.call(this,e,A);function n(l,I){return Ao(this,null,function*(){yield o.call(this,l.$schema);let C=this._addSchema(l,I);return C.validate||r.call(this,C)})}function o(l){return Ao(this,null,function*(){l&&!this.getSchema(l)&&(yield n.call(this,{$ref:l},!0))})}function r(l){return Ao(this,null,function*(){try{return this._compileSchemaEnv(l)}catch(I){if(!(I instanceof b$.default))throw I;return s.call(this,I),yield a.call(this,I.missingSchema),r.call(this,l)}})}function s({missingSchema:l,missingRef:I}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${I} cannot be resolved`)}function a(l){return Ao(this,null,function*(){let I=yield c.call(this,l);this.refs[l]||(yield o.call(this,I.$schema)),this.refs[l]||this.addSchema(I,l,A)})}function c(l){return Ao(this,null,function*(){let I=this._loading[l];if(I)return I;try{return yield this._loading[l]=i(l)}finally{delete this._loading[l]}})}}addSchema(e,A,i,n=this.opts.validateSchema){if(Array.isArray(e)){for(let r of e)this.addSchema(r,void 0,i,n);return this}let o;if(typeof e=="object"){let{schemaId:r}=this.opts;if(o=e[r],o!==void 0&&typeof o!="string")throw new Error(`schema ${r} must be string`)}return A=(0,v4.normalizeId)(A||o),this._checkUnique(A),this.schemas[A]=this._addSchema(e,i,A,n,!0),this}addMetaSchema(e,A,i=this.opts.validateSchema){return this.addSchema(e,A,!0,i),this}validateSchema(e,A){if(typeof e=="boolean")return!0;let i;if(i=e.$schema,i!==void 0&&typeof i!="string")throw new Error("$schema must be a string");if(i=i||this.opts.defaultMeta||this.defaultMeta(),!i)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let n=this.validate(i,e);if(!n&&A){let o="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(o);else throw new Error(o)}return n}getSchema(e){let A;for(;typeof(A=v$.call(this,e))=="string";)e=A;if(A===void 0){let{schemaId:i}=this.opts,n=new y4.SchemaEnv({schema:{},schemaId:i});if(A=y4.resolveSchema.call(this,n,e),!A)return;this.refs[e]=A}return A.validate||this._compileSchemaEnv(A)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let A=v$.call(this,e);return typeof A=="object"&&this._cache.delete(A.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let A=e;this._cache.delete(A);let i=e[this.opts.schemaId];return i&&(i=(0,v4.normalizeId)(i),delete this.schemas[i],delete this.refs[i]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let A of e)this.addKeyword(A);return this}addKeyword(e,A){let i;if(typeof e=="string")i=e,typeof A=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),A.keyword=i);else if(typeof e=="object"&&A===void 0){if(A=e,i=A.keyword,Array.isArray(i)&&!i.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(KMA.call(this,i,A),!A)return(0,qR.eachItem)(i,o=>jR.call(this,o)),this;JMA.call(this,A);let n=Ye(rA({},A),{type:(0,Y5.getJSONTypes)(A.type),schemaType:(0,Y5.getJSONTypes)(A.schemaType)});return(0,qR.eachItem)(i,n.type.length===0?o=>jR.call(this,o,n):o=>n.type.forEach(r=>jR.call(this,o,n,r))),this}getKeyword(e){let A=this.RULES.all[e];return typeof A=="object"?A.definition:!!A}removeKeyword(e){let{RULES:A}=this;delete A.keywords[e],delete A.all[e];for(let i of A.rules){let n=i.rules.findIndex(o=>o.keyword===e);n>=0&&i.rules.splice(n,1)}return this}addFormat(e,A){return typeof A=="string"&&(A=new RegExp(A)),this.formats[e]=A,this}errorsText(e=this.errors,{separator:A=", ",dataVar:i="data"}={}){return!e||e.length===0?"No errors":e.map(n=>`${i}${n.instancePath} ${n.message}`).reduce((n,o)=>n+A+o)}$dataMetaSchema(e,A){let i=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let n of A){let o=n.split("/").slice(1),r=e;for(let s of o)r=r[s];for(let s in i){let a=i[s];if(typeof a!="object")continue;let{$data:c}=a.definition,l=r[s];c&&l&&(r[s]=k$(l))}}return e}_removeAllSchemas(e,A){for(let i in e){let n=e[i];(!A||A.test(i))&&(typeof n=="string"?delete e[i]:n&&!n.meta&&(this._cache.delete(n.schema),delete e[i]))}}_addSchema(e,A,i,n=this.opts.validateSchema,o=this.opts.addUsedSchema){let r,{schemaId:s}=this.opts;if(typeof e=="object")r=e[s];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let a=this._cache.get(e);if(a!==void 0)return a;i=(0,v4.normalizeId)(r||i);let c=v4.getSchemaRefs.call(this,e,i);return a=new y4.SchemaEnv({schema:e,schemaId:s,meta:A,baseId:i,localRefs:c}),this._cache.set(a.schema,a),o&&!i.startsWith("#")&&(i&&this._checkUnique(i),this.refs[i]=a),n&&this.validateSchema(e,!0),a}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):y4.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let A=this.opts;this.opts=this._metaOpts;try{y4.compileSchema.call(this,e)}finally{this.opts=A}}};b4.ValidationError=wMA.default;b4.MissingRefError=b$.default;ls.default=b4;function y$(t,e,A,i="error"){for(let n in t){let o=n;o in e&&this.logger[i](`${A}: option ${n}. ${t[o]}`)}}function v$(t){return t=(0,v4.normalizeId)(t),this.schemas[t]||this.refs[t]}function xMA(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function LMA(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function FMA(t){if(Array.isArray(t)){this.addVocabulary(t);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in t){let A=t[e];A.keyword||(A.keyword=e),this.addKeyword(A)}}function NMA(){let t=rA({},this.opts);for(let e of bMA)delete t[e];return t}var _MA={log(){},warn(){},error(){}};function GMA(t){if(t===!1)return _MA;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var UMA=/^[a-z_$][a-z0-9_$:-]*$/i;function KMA(t,e){let{RULES:A}=this;if((0,qR.eachItem)(t,i=>{if(A.keywords[i])throw new Error(`Keyword ${i} is already defined`);if(!UMA.test(i))throw new Error(`Keyword ${i} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function jR(t,e,A){var i;let n=e?.post;if(A&&n)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:o}=this,r=n?o.post:o.rules.find(({type:a})=>a===A);if(r||(r={type:A,rules:[]},o.rules.push(r)),o.keywords[t]=!0,!e)return;let s={keyword:t,definition:Ye(rA({},e),{type:(0,Y5.getJSONTypes)(e.type),schemaType:(0,Y5.getJSONTypes)(e.schemaType)})};e.before?YMA.call(this,r,s,e.before):r.rules.push(s),o.all[t]=s,(i=e.implements)===null||i===void 0||i.forEach(a=>this.addKeyword(a))}function YMA(t,e,A){let i=t.rules.findIndex(n=>n.keyword===A);i>=0?t.rules.splice(i,0,e):(t.rules.push(e),this.logger.warn(`rule ${A} is not defined`))}function JMA(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=k$(e)),t.validateSchema=this.compile(e,!0))}var TMA={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function k$(t){return{anyOf:[t,TMA]}}});var R$=Je(VR=>{"use strict";Object.defineProperty(VR,"__esModule",{value:!0});var HMA={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};VR.default=HMA});var N$=Je(QC=>{"use strict";Object.defineProperty(QC,"__esModule",{value:!0});QC.callRef=QC.getValidate=void 0;var zMA=w4(),x$=_c(),Sa=An(),QE=G0(),L$=_5(),J5=bn(),OMA={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:A,it:i}=t,{baseId:n,schemaEnv:o,validateName:r,opts:s,self:a}=i,{root:c}=o;if((A==="#"||A==="#/")&&n===c.baseId)return I();let l=L$.resolveRef.call(a,c,n,A);if(l===void 0)throw new zMA.default(i.opts.uriResolver,n,A);if(l instanceof L$.SchemaEnv)return C(l);return d(l);function I(){if(o===c)return T5(t,r,o,o.$async);let B=e.scopeValue("root",{ref:c});return T5(t,(0,Sa._)`${B}.validate`,c,c.$async)}function C(B){let E=F$(t,B);T5(t,E,B,B.$async)}function d(B){let E=e.scopeValue("schema",s.code.source===!0?{ref:B,code:(0,Sa.stringify)(B)}:{ref:B}),h=e.name("valid"),u=t.subschema({schema:B,dataTypes:[],schemaPath:Sa.nil,topSchemaRef:E,errSchemaPath:A},h);t.mergeEvaluated(u),t.ok(h)}}};function F$(t,e){let{gen:A}=t;return e.validate?A.scopeValue("validate",{ref:e.validate}):(0,Sa._)`${A.scopeValue("wrapper",{ref:e})}.validate`}QC.getValidate=F$;function T5(t,e,A,i){let{gen:n,it:o}=t,{allErrors:r,schemaEnv:s,opts:a}=o,c=a.passContext?QE.default.this:Sa.nil;i?l():I();function l(){if(!s.$async)throw new Error("async schema referenced by sync schema");let B=n.let("valid");n.try(()=>{n.code((0,Sa._)`await ${(0,x$.callValidateCode)(t,e,c)}`),d(e),r||n.assign(B,!0)},E=>{n.if((0,Sa._)`!(${E} instanceof ${o.ValidationError})`,()=>n.throw(E)),C(E),r||n.assign(B,!1)}),t.ok(B)}function I(){t.result((0,x$.callValidateCode)(t,e,c),()=>d(e),()=>C(e))}function C(B){let E=(0,Sa._)`${B}.errors`;n.assign(QE.default.vErrors,(0,Sa._)`${QE.default.vErrors} === null ? ${E} : ${QE.default.vErrors}.concat(${E})`),n.assign(QE.default.errors,(0,Sa._)`${QE.default.vErrors}.length`)}function d(B){var E;if(!o.opts.unevaluated)return;let h=(E=A?.validate)===null||E===void 0?void 0:E.evaluated;if(o.props!==!0)if(h&&!h.dynamicProps)h.props!==void 0&&(o.props=J5.mergeEvaluated.props(n,h.props,o.props));else{let u=n.var("props",(0,Sa._)`${B}.evaluated.props`);o.props=J5.mergeEvaluated.props(n,u,o.props,Sa.Name)}if(o.items!==!0)if(h&&!h.dynamicItems)h.items!==void 0&&(o.items=J5.mergeEvaluated.items(n,h.items,o.items));else{let u=n.var("items",(0,Sa._)`${B}.evaluated.items`);o.items=J5.mergeEvaluated.items(n,u,o.items,Sa.Name)}}}QC.callRef=T5;QC.default=OMA});var _$=Je(ZR=>{"use strict";Object.defineProperty(ZR,"__esModule",{value:!0});var PMA=R$(),jMA=N$(),qMA=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",PMA.default,jMA.default];ZR.default=qMA});var G$=Je(WR=>{"use strict";Object.defineProperty(WR,"__esModule",{value:!0});var H5=An(),h1=H5.operators,z5={maximum:{okStr:"<=",ok:h1.LTE,fail:h1.GT},minimum:{okStr:">=",ok:h1.GTE,fail:h1.LT},exclusiveMaximum:{okStr:"<",ok:h1.LT,fail:h1.GTE},exclusiveMinimum:{okStr:">",ok:h1.GT,fail:h1.LTE}},VMA={message:({keyword:t,schemaCode:e})=>(0,H5.str)`must be ${z5[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,H5._)`{comparison: ${z5[t].okStr}, limit: ${e}}`},ZMA={keyword:Object.keys(z5),type:"number",schemaType:"number",$data:!0,error:VMA,code(t){let{keyword:e,data:A,schemaCode:i}=t;t.fail$data((0,H5._)`${A} ${z5[e].fail} ${i} || isNaN(${A})`)}};WR.default=ZMA});var U$=Je(XR=>{"use strict";Object.defineProperty(XR,"__esModule",{value:!0});var M4=An(),WMA={message:({schemaCode:t})=>(0,M4.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,M4._)`{multipleOf: ${t}}`},XMA={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:WMA,code(t){let{gen:e,data:A,schemaCode:i,it:n}=t,o=n.opts.multipleOfPrecision,r=e.let("res"),s=o?(0,M4._)`Math.abs(Math.round(${r}) - ${r}) > 1e-${o}`:(0,M4._)`${r} !== parseInt(${r})`;t.fail$data((0,M4._)`(${i} === 0 || (${r} = ${A}/${i}, ${s}))`)}};XR.default=XMA});var Y$=Je($R=>{"use strict";Object.defineProperty($R,"__esModule",{value:!0});function K$(t){let e=t.length,A=0,i=0,n;for(;i=55296&&n<=56319&&i{"use strict";Object.defineProperty(Ax,"__esModule",{value:!0});var hC=An(),$MA=bn(),AkA=Y$(),ekA={message({keyword:t,schemaCode:e}){let A=t==="maxLength"?"more":"fewer";return(0,hC.str)`must NOT have ${A} than ${e} characters`},params:({schemaCode:t})=>(0,hC._)`{limit: ${t}}`},tkA={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:ekA,code(t){let{keyword:e,data:A,schemaCode:i,it:n}=t,o=e==="maxLength"?hC.operators.GT:hC.operators.LT,r=n.opts.unicode===!1?(0,hC._)`${A}.length`:(0,hC._)`${(0,$MA.useFunc)(t.gen,AkA.default)}(${A})`;t.fail$data((0,hC._)`${r} ${o} ${i}`)}};Ax.default=tkA});var T$=Je(ex=>{"use strict";Object.defineProperty(ex,"__esModule",{value:!0});var ikA=_c(),O5=An(),nkA={message:({schemaCode:t})=>(0,O5.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,O5._)`{pattern: ${t}}`},okA={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:nkA,code(t){let{data:e,$data:A,schema:i,schemaCode:n,it:o}=t,r=o.opts.unicodeRegExp?"u":"",s=A?(0,O5._)`(new RegExp(${n}, ${r}))`:(0,ikA.usePattern)(t,i);t.fail$data((0,O5._)`!${s}.test(${e})`)}};ex.default=okA});var H$=Je(tx=>{"use strict";Object.defineProperty(tx,"__esModule",{value:!0});var k4=An(),rkA={message({keyword:t,schemaCode:e}){let A=t==="maxProperties"?"more":"fewer";return(0,k4.str)`must NOT have ${A} than ${e} properties`},params:({schemaCode:t})=>(0,k4._)`{limit: ${t}}`},skA={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:rkA,code(t){let{keyword:e,data:A,schemaCode:i}=t,n=e==="maxProperties"?k4.operators.GT:k4.operators.LT;t.fail$data((0,k4._)`Object.keys(${A}).length ${n} ${i}`)}};tx.default=skA});var z$=Je(ix=>{"use strict";Object.defineProperty(ix,"__esModule",{value:!0});var S4=_c(),R4=An(),akA=bn(),ckA={message:({params:{missingProperty:t}})=>(0,R4.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,R4._)`{missingProperty: ${t}}`},lkA={keyword:"required",type:"object",schemaType:"array",$data:!0,error:ckA,code(t){let{gen:e,schema:A,schemaCode:i,data:n,$data:o,it:r}=t,{opts:s}=r;if(!o&&A.length===0)return;let a=A.length>=s.loopRequired;if(r.allErrors?c():l(),s.strictRequired){let d=t.parentSchema.properties,{definedProperties:B}=t.it;for(let E of A)if(d?.[E]===void 0&&!B.has(E)){let h=r.schemaEnv.baseId+r.errSchemaPath,u=`required property "${E}" is not defined at "${h}" (strictRequired)`;(0,akA.checkStrictMode)(r,u,r.opts.strictRequired)}}function c(){if(a||o)t.block$data(R4.nil,I);else for(let d of A)(0,S4.checkReportMissingProp)(t,d)}function l(){let d=e.let("missing");if(a||o){let B=e.let("valid",!0);t.block$data(B,()=>C(d,B)),t.ok(B)}else e.if((0,S4.checkMissingProp)(t,A,d)),(0,S4.reportMissingProp)(t,d),e.else()}function I(){e.forOf("prop",i,d=>{t.setParams({missingProperty:d}),e.if((0,S4.noPropertyInData)(e,n,d,s.ownProperties),()=>t.error())})}function C(d,B){t.setParams({missingProperty:d}),e.forOf(d,i,()=>{e.assign(B,(0,S4.propertyInData)(e,n,d,s.ownProperties)),e.if((0,R4.not)(B),()=>{t.error(),e.break()})},R4.nil)}}};ix.default=lkA});var O$=Je(nx=>{"use strict";Object.defineProperty(nx,"__esModule",{value:!0});var x4=An(),gkA={message({keyword:t,schemaCode:e}){let A=t==="maxItems"?"more":"fewer";return(0,x4.str)`must NOT have ${A} than ${e} items`},params:({schemaCode:t})=>(0,x4._)`{limit: ${t}}`},IkA={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:gkA,code(t){let{keyword:e,data:A,schemaCode:i}=t,n=e==="maxItems"?x4.operators.GT:x4.operators.LT;t.fail$data((0,x4._)`${A}.length ${n} ${i}`)}};nx.default=IkA});var P5=Je(ox=>{"use strict";Object.defineProperty(ox,"__esModule",{value:!0});var P$=SR();P$.code='require("ajv/dist/runtime/equal").default';ox.default=P$});var j$=Je(sx=>{"use strict";Object.defineProperty(sx,"__esModule",{value:!0});var rx=h4(),gs=An(),CkA=bn(),dkA=P5(),BkA={message:({params:{i:t,j:e}})=>(0,gs.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,gs._)`{i: ${t}, j: ${e}}`},EkA={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:BkA,code(t){let{gen:e,data:A,$data:i,schema:n,parentSchema:o,schemaCode:r,it:s}=t;if(!i&&!n)return;let a=e.let("valid"),c=o.items?(0,rx.getSchemaTypes)(o.items):[];t.block$data(a,l,(0,gs._)`${r} === false`),t.ok(a);function l(){let B=e.let("i",(0,gs._)`${A}.length`),E=e.let("j");t.setParams({i:B,j:E}),e.assign(a,!0),e.if((0,gs._)`${B} > 1`,()=>(I()?C:d)(B,E))}function I(){return c.length>0&&!c.some(B=>B==="object"||B==="array")}function C(B,E){let h=e.name("item"),u=(0,rx.checkDataTypes)(c,h,s.opts.strictNumbers,rx.DataType.Wrong),D=e.const("indices",(0,gs._)`{}`);e.for((0,gs._)`;${B}--;`,()=>{e.let(h,(0,gs._)`${A}[${B}]`),e.if(u,(0,gs._)`continue`),c.length>1&&e.if((0,gs._)`typeof ${h} == "string"`,(0,gs._)`${h} += "_"`),e.if((0,gs._)`typeof ${D}[${h}] == "number"`,()=>{e.assign(E,(0,gs._)`${D}[${h}]`),t.error(),e.assign(a,!1).break()}).code((0,gs._)`${D}[${h}] = ${B}`)})}function d(B,E){let h=(0,CkA.useFunc)(e,dkA.default),u=e.name("outer");e.label(u).for((0,gs._)`;${B}--;`,()=>e.for((0,gs._)`${E} = ${B}; ${E}--;`,()=>e.if((0,gs._)`${h}(${A}[${B}], ${A}[${E}])`,()=>{t.error(),e.assign(a,!1).break(u)})))}}};sx.default=EkA});var q$=Je(cx=>{"use strict";Object.defineProperty(cx,"__esModule",{value:!0});var ax=An(),QkA=bn(),hkA=P5(),ukA={message:"must be equal to constant",params:({schemaCode:t})=>(0,ax._)`{allowedValue: ${t}}`},fkA={keyword:"const",$data:!0,error:ukA,code(t){let{gen:e,data:A,$data:i,schemaCode:n,schema:o}=t;i||o&&typeof o=="object"?t.fail$data((0,ax._)`!${(0,QkA.useFunc)(e,hkA.default)}(${A}, ${n})`):t.fail((0,ax._)`${o} !== ${A}`)}};cx.default=fkA});var V$=Je(lx=>{"use strict";Object.defineProperty(lx,"__esModule",{value:!0});var L4=An(),mkA=bn(),pkA=P5(),wkA={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,L4._)`{allowedValues: ${t}}`},DkA={keyword:"enum",schemaType:"array",$data:!0,error:wkA,code(t){let{gen:e,data:A,$data:i,schema:n,schemaCode:o,it:r}=t;if(!i&&n.length===0)throw new Error("enum must have non-empty array");let s=n.length>=r.opts.loopEnum,a,c=()=>a??(a=(0,mkA.useFunc)(e,pkA.default)),l;if(s||i)l=e.let("valid"),t.block$data(l,I);else{if(!Array.isArray(n))throw new Error("ajv implementation error");let d=e.const("vSchema",o);l=(0,L4.or)(...n.map((B,E)=>C(d,E)))}t.pass(l);function I(){e.assign(l,!1),e.forOf("v",o,d=>e.if((0,L4._)`${c()}(${A}, ${d})`,()=>e.assign(l,!0).break()))}function C(d,B){let E=n[B];return typeof E=="object"&&E!==null?(0,L4._)`${c()}(${A}, ${d}[${B}])`:(0,L4._)`${A} === ${E}`}}};lx.default=DkA});var Z$=Je(gx=>{"use strict";Object.defineProperty(gx,"__esModule",{value:!0});var ykA=G$(),vkA=U$(),bkA=J$(),MkA=T$(),kkA=H$(),SkA=z$(),RkA=O$(),xkA=j$(),LkA=q$(),FkA=V$(),NkA=[ykA.default,vkA.default,bkA.default,MkA.default,kkA.default,SkA.default,RkA.default,xkA.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},LkA.default,FkA.default];gx.default=NkA});var Cx=Je(F4=>{"use strict";Object.defineProperty(F4,"__esModule",{value:!0});F4.validateAdditionalItems=void 0;var uC=An(),Ix=bn(),_kA={message:({params:{len:t}})=>(0,uC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,uC._)`{limit: ${t}}`},GkA={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:_kA,code(t){let{parentSchema:e,it:A}=t,{items:i}=e;if(!Array.isArray(i)){(0,Ix.checkStrictMode)(A,'"additionalItems" is ignored when "items" is not an array of schemas');return}W$(t,i)}};function W$(t,e){let{gen:A,schema:i,data:n,keyword:o,it:r}=t;r.items=!0;let s=A.const("len",(0,uC._)`${n}.length`);if(i===!1)t.setParams({len:e.length}),t.pass((0,uC._)`${s} <= ${e.length}`);else if(typeof i=="object"&&!(0,Ix.alwaysValidSchema)(r,i)){let c=A.var("valid",(0,uC._)`${s} <= ${e.length}`);A.if((0,uC.not)(c),()=>a(c)),t.ok(c)}function a(c){A.forRange("i",e.length,s,l=>{t.subschema({keyword:o,dataProp:l,dataPropType:Ix.Type.Num},c),r.allErrors||A.if((0,uC.not)(c),()=>A.break())})}}F4.validateAdditionalItems=W$;F4.default=GkA});var dx=Je(N4=>{"use strict";Object.defineProperty(N4,"__esModule",{value:!0});N4.validateTuple=void 0;var X$=An(),j5=bn(),UkA=_c(),KkA={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:A}=t;if(Array.isArray(e))return $$(t,"additionalItems",e);A.items=!0,!(0,j5.alwaysValidSchema)(A,e)&&t.ok((0,UkA.validateArray)(t))}};function $$(t,e,A=t.schema){let{gen:i,parentSchema:n,data:o,keyword:r,it:s}=t;l(n),s.opts.unevaluated&&A.length&&s.items!==!0&&(s.items=j5.mergeEvaluated.items(i,A.length,s.items));let a=i.name("valid"),c=i.const("len",(0,X$._)`${o}.length`);A.forEach((I,C)=>{(0,j5.alwaysValidSchema)(s,I)||(i.if((0,X$._)`${c} > ${C}`,()=>t.subschema({keyword:r,schemaProp:C,dataProp:C},a)),t.ok(a))});function l(I){let{opts:C,errSchemaPath:d}=s,B=A.length,E=B===I.minItems&&(B===I.maxItems||I[e]===!1);if(C.strictTuples&&!E){let h=`"${r}" is ${B}-tuple, but minItems or maxItems/${e} are not specified or different at path "${d}"`;(0,j5.checkStrictMode)(s,h,C.strictTuples)}}}N4.validateTuple=$$;N4.default=KkA});var AAA=Je(Bx=>{"use strict";Object.defineProperty(Bx,"__esModule",{value:!0});var YkA=dx(),JkA={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,YkA.validateTuple)(t,"items")};Bx.default=JkA});var tAA=Je(Ex=>{"use strict";Object.defineProperty(Ex,"__esModule",{value:!0});var eAA=An(),TkA=bn(),HkA=_c(),zkA=Cx(),OkA={message:({params:{len:t}})=>(0,eAA.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,eAA._)`{limit: ${t}}`},PkA={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:OkA,code(t){let{schema:e,parentSchema:A,it:i}=t,{prefixItems:n}=A;i.items=!0,!(0,TkA.alwaysValidSchema)(i,e)&&(n?(0,zkA.validateAdditionalItems)(t,n):t.ok((0,HkA.validateArray)(t)))}};Ex.default=PkA});var iAA=Je(Qx=>{"use strict";Object.defineProperty(Qx,"__esModule",{value:!0});var Uc=An(),q5=bn(),jkA={message:({params:{min:t,max:e}})=>e===void 0?(0,Uc.str)`must contain at least ${t} valid item(s)`:(0,Uc.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,Uc._)`{minContains: ${t}}`:(0,Uc._)`{minContains: ${t}, maxContains: ${e}}`},qkA={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:jkA,code(t){let{gen:e,schema:A,parentSchema:i,data:n,it:o}=t,r,s,{minContains:a,maxContains:c}=i;o.opts.next?(r=a===void 0?1:a,s=c):r=1;let l=e.const("len",(0,Uc._)`${n}.length`);if(t.setParams({min:r,max:s}),s===void 0&&r===0){(0,q5.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&r>s){(0,q5.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,q5.alwaysValidSchema)(o,A)){let E=(0,Uc._)`${l} >= ${r}`;s!==void 0&&(E=(0,Uc._)`${E} && ${l} <= ${s}`),t.pass(E);return}o.items=!0;let I=e.name("valid");s===void 0&&r===1?d(I,()=>e.if(I,()=>e.break())):r===0?(e.let(I,!0),s!==void 0&&e.if((0,Uc._)`${n}.length > 0`,C)):(e.let(I,!1),C()),t.result(I,()=>t.reset());function C(){let E=e.name("_valid"),h=e.let("count",0);d(E,()=>e.if(E,()=>B(h)))}function d(E,h){e.forRange("i",0,l,u=>{t.subschema({keyword:"contains",dataProp:u,dataPropType:q5.Type.Num,compositeRule:!0},E),h()})}function B(E){e.code((0,Uc._)`${E}++`),s===void 0?e.if((0,Uc._)`${E} >= ${r}`,()=>e.assign(I,!0).break()):(e.if((0,Uc._)`${E} > ${s}`,()=>e.assign(I,!1).break()),r===1?e.assign(I,!0):e.if((0,Uc._)`${E} >= ${r}`,()=>e.assign(I,!0)))}}};Qx.default=qkA});var rAA=Je(yg=>{"use strict";Object.defineProperty(yg,"__esModule",{value:!0});yg.validateSchemaDeps=yg.validatePropertyDeps=yg.error=void 0;var hx=An(),VkA=bn(),_4=_c();yg.error={message:({params:{property:t,depsCount:e,deps:A}})=>{let i=e===1?"property":"properties";return(0,hx.str)`must have ${i} ${A} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:A,missingProperty:i}})=>(0,hx._)`{property: ${t}, - missingProperty: ${i}, - depsCount: ${e}, - deps: ${A}}`};var ZkA={keyword:"dependencies",type:"object",schemaType:"object",error:yg.error,code(t){let[e,A]=WkA(t);nAA(t,e),oAA(t,A)}};function WkA({schema:t}){let e={},A={};for(let i in t){if(i==="__proto__")continue;let n=Array.isArray(t[i])?e:A;n[i]=t[i]}return[e,A]}function nAA(t,e=t.schema){let{gen:A,data:i,it:n}=t;if(Object.keys(e).length===0)return;let o=A.let("missing");for(let r in e){let s=e[r];if(s.length===0)continue;let a=(0,_4.propertyInData)(A,i,r,n.opts.ownProperties);t.setParams({property:r,depsCount:s.length,deps:s.join(", ")}),n.allErrors?A.if(a,()=>{for(let c of s)(0,_4.checkReportMissingProp)(t,c)}):(A.if((0,hx._)`${a} && (${(0,_4.checkMissingProp)(t,s,o)})`),(0,_4.reportMissingProp)(t,o),A.else())}}yg.validatePropertyDeps=nAA;function oAA(t,e=t.schema){let{gen:A,data:i,keyword:n,it:o}=t,r=A.name("valid");for(let s in e)(0,VkA.alwaysValidSchema)(o,e[s])||(A.if((0,_4.propertyInData)(A,i,s,o.opts.ownProperties),()=>{let a=t.subschema({keyword:n,schemaProp:s},r);t.mergeValidEvaluated(a,r)},()=>A.var(r,!0)),t.ok(r))}yg.validateSchemaDeps=oAA;yg.default=ZkA});var aAA=Je(ux=>{"use strict";Object.defineProperty(ux,"__esModule",{value:!0});var sAA=An(),XkA=bn(),$kA={message:"property name must be valid",params:({params:t})=>(0,sAA._)`{propertyName: ${t.propertyName}}`},ASA={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:$kA,code(t){let{gen:e,schema:A,data:i,it:n}=t;if((0,XkA.alwaysValidSchema)(n,A))return;let o=e.name("valid");e.forIn("key",i,r=>{t.setParams({propertyName:r}),t.subschema({keyword:"propertyNames",data:r,dataTypes:["string"],propertyName:r,compositeRule:!0},o),e.if((0,sAA.not)(o),()=>{t.error(!0),n.allErrors||e.break()})}),t.ok(o)}};ux.default=ASA});var mx=Je(fx=>{"use strict";Object.defineProperty(fx,"__esModule",{value:!0});var V5=_c(),pl=An(),eSA=G0(),Z5=bn(),tSA={message:"must NOT have additional properties",params:({params:t})=>(0,pl._)`{additionalProperty: ${t.additionalProperty}}`},iSA={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:tSA,code(t){let{gen:e,schema:A,parentSchema:i,data:n,errsCount:o,it:r}=t;if(!o)throw new Error("ajv implementation error");let{allErrors:s,opts:a}=r;if(r.props=!0,a.removeAdditional!=="all"&&(0,Z5.alwaysValidSchema)(r,A))return;let c=(0,V5.allSchemaProperties)(i.properties),l=(0,V5.allSchemaProperties)(i.patternProperties);I(),t.ok((0,pl._)`${o} === ${eSA.default.errors}`);function I(){e.forIn("key",n,h=>{!c.length&&!l.length?B(h):e.if(C(h),()=>B(h))})}function C(h){let u;if(c.length>8){let D=(0,Z5.schemaRefOrVal)(r,i.properties,"properties");u=(0,V5.isOwnProperty)(e,D,h)}else c.length?u=(0,pl.or)(...c.map(D=>(0,pl._)`${h} === ${D}`)):u=pl.nil;return l.length&&(u=(0,pl.or)(u,...l.map(D=>(0,pl._)`${(0,V5.usePattern)(t,D)}.test(${h})`))),(0,pl.not)(u)}function d(h){e.code((0,pl._)`delete ${n}[${h}]`)}function B(h){if(a.removeAdditional==="all"||a.removeAdditional&&A===!1){d(h);return}if(A===!1){t.setParams({additionalProperty:h}),t.error(),s||e.break();return}if(typeof A=="object"&&!(0,Z5.alwaysValidSchema)(r,A)){let u=e.name("valid");a.removeAdditional==="failing"?(E(h,u,!1),e.if((0,pl.not)(u),()=>{t.reset(),d(h)})):(E(h,u),s||e.if((0,pl.not)(u),()=>e.break()))}}function E(h,u,D){let L={keyword:"additionalProperties",dataProp:h,dataPropType:Z5.Type.Str};D===!1&&Object.assign(L,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(L,u)}}};fx.default=iSA});var gAA=Je(wx=>{"use strict";Object.defineProperty(wx,"__esModule",{value:!0});var nSA=p4(),cAA=_c(),px=bn(),lAA=mx(),oSA={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:A,parentSchema:i,data:n,it:o}=t;o.opts.removeAdditional==="all"&&i.additionalProperties===void 0&&lAA.default.code(new nSA.KeywordCxt(o,lAA.default,"additionalProperties"));let r=(0,cAA.allSchemaProperties)(A);for(let I of r)o.definedProperties.add(I);o.opts.unevaluated&&r.length&&o.props!==!0&&(o.props=px.mergeEvaluated.props(e,(0,px.toHash)(r),o.props));let s=r.filter(I=>!(0,px.alwaysValidSchema)(o,A[I]));if(s.length===0)return;let a=e.name("valid");for(let I of s)c(I)?l(I):(e.if((0,cAA.propertyInData)(e,n,I,o.opts.ownProperties)),l(I),o.allErrors||e.else().var(a,!0),e.endIf()),t.it.definedProperties.add(I),t.ok(a);function c(I){return o.opts.useDefaults&&!o.compositeRule&&A[I].default!==void 0}function l(I){t.subschema({keyword:"properties",schemaProp:I,dataProp:I},a)}}};wx.default=oSA});var BAA=Je(Dx=>{"use strict";Object.defineProperty(Dx,"__esModule",{value:!0});var IAA=_c(),W5=An(),CAA=bn(),dAA=bn(),rSA={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:A,data:i,parentSchema:n,it:o}=t,{opts:r}=o,s=(0,IAA.allSchemaProperties)(A),a=s.filter(E=>(0,CAA.alwaysValidSchema)(o,A[E]));if(s.length===0||a.length===s.length&&(!o.opts.unevaluated||o.props===!0))return;let c=r.strictSchema&&!r.allowMatchingProperties&&n.properties,l=e.name("valid");o.props!==!0&&!(o.props instanceof W5.Name)&&(o.props=(0,dAA.evaluatedPropsToName)(e,o.props));let{props:I}=o;C();function C(){for(let E of s)c&&d(E),o.allErrors?B(E):(e.var(l,!0),B(E),e.if(l))}function d(E){for(let h in c)new RegExp(E).test(h)&&(0,CAA.checkStrictMode)(o,`property ${h} matches pattern ${E} (use allowMatchingProperties)`)}function B(E){e.forIn("key",i,h=>{e.if((0,W5._)`${(0,IAA.usePattern)(t,E)}.test(${h})`,()=>{let u=a.includes(E);u||t.subschema({keyword:"patternProperties",schemaProp:E,dataProp:h,dataPropType:dAA.Type.Str},l),o.opts.unevaluated&&I!==!0?e.assign((0,W5._)`${I}[${h}]`,!0):!u&&!o.allErrors&&e.if((0,W5.not)(l),()=>e.break())})})}}};Dx.default=rSA});var EAA=Je(yx=>{"use strict";Object.defineProperty(yx,"__esModule",{value:!0});var sSA=bn(),aSA={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:A,it:i}=t;if((0,sSA.alwaysValidSchema)(i,A)){t.fail();return}let n=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},n),t.failResult(n,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};yx.default=aSA});var QAA=Je(vx=>{"use strict";Object.defineProperty(vx,"__esModule",{value:!0});var cSA=_c(),lSA={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:cSA.validateUnion,error:{message:"must match a schema in anyOf"}};vx.default=lSA});var hAA=Je(bx=>{"use strict";Object.defineProperty(bx,"__esModule",{value:!0});var X5=An(),gSA=bn(),ISA={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,X5._)`{passingSchemas: ${t.passing}}`},CSA={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:ISA,code(t){let{gen:e,schema:A,parentSchema:i,it:n}=t;if(!Array.isArray(A))throw new Error("ajv implementation error");if(n.opts.discriminator&&i.discriminator)return;let o=A,r=e.let("valid",!1),s=e.let("passing",null),a=e.name("_valid");t.setParams({passing:s}),e.block(c),t.result(r,()=>t.reset(),()=>t.error(!0));function c(){o.forEach((l,I)=>{let C;(0,gSA.alwaysValidSchema)(n,l)?e.var(a,!0):C=t.subschema({keyword:"oneOf",schemaProp:I,compositeRule:!0},a),I>0&&e.if((0,X5._)`${a} && ${r}`).assign(r,!1).assign(s,(0,X5._)`[${s}, ${I}]`).else(),e.if(a,()=>{e.assign(r,!0),e.assign(s,I),C&&t.mergeEvaluated(C,X5.Name)})})}}};bx.default=CSA});var uAA=Je(Mx=>{"use strict";Object.defineProperty(Mx,"__esModule",{value:!0});var dSA=bn(),BSA={keyword:"allOf",schemaType:"array",code(t){let{gen:e,schema:A,it:i}=t;if(!Array.isArray(A))throw new Error("ajv implementation error");let n=e.name("valid");A.forEach((o,r)=>{if((0,dSA.alwaysValidSchema)(i,o))return;let s=t.subschema({keyword:"allOf",schemaProp:r},n);t.ok(n),t.mergeEvaluated(s)})}};Mx.default=BSA});var pAA=Je(kx=>{"use strict";Object.defineProperty(kx,"__esModule",{value:!0});var $5=An(),mAA=bn(),ESA={message:({params:t})=>(0,$5.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,$5._)`{failingKeyword: ${t.ifClause}}`},QSA={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:ESA,code(t){let{gen:e,parentSchema:A,it:i}=t;A.then===void 0&&A.else===void 0&&(0,mAA.checkStrictMode)(i,'"if" without "then" and "else" is ignored');let n=fAA(i,"then"),o=fAA(i,"else");if(!n&&!o)return;let r=e.let("valid",!0),s=e.name("_valid");if(a(),t.reset(),n&&o){let l=e.let("ifClause");t.setParams({ifClause:l}),e.if(s,c("then",l),c("else",l))}else n?e.if(s,c("then")):e.if((0,$5.not)(s),c("else"));t.pass(r,()=>t.error(!0));function a(){let l=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);t.mergeEvaluated(l)}function c(l,I){return()=>{let C=t.subschema({keyword:l},s);e.assign(r,s),t.mergeValidEvaluated(C,r),I?e.assign(I,(0,$5._)`${l}`):t.setParams({ifClause:l})}}}};function fAA(t,e){let A=t.schema[e];return A!==void 0&&!(0,mAA.alwaysValidSchema)(t,A)}kx.default=QSA});var wAA=Je(Sx=>{"use strict";Object.defineProperty(Sx,"__esModule",{value:!0});var hSA=bn(),uSA={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:A}){e.if===void 0&&(0,hSA.checkStrictMode)(A,`"${t}" without "if" is ignored`)}};Sx.default=uSA});var DAA=Je(Rx=>{"use strict";Object.defineProperty(Rx,"__esModule",{value:!0});var fSA=Cx(),mSA=AAA(),pSA=dx(),wSA=tAA(),DSA=iAA(),ySA=rAA(),vSA=aAA(),bSA=mx(),MSA=gAA(),kSA=BAA(),SSA=EAA(),RSA=QAA(),xSA=hAA(),LSA=uAA(),FSA=pAA(),NSA=wAA();function _SA(t=!1){let e=[SSA.default,RSA.default,xSA.default,LSA.default,FSA.default,NSA.default,vSA.default,bSA.default,ySA.default,MSA.default,kSA.default];return t?e.push(mSA.default,wSA.default):e.push(fSA.default,pSA.default),e.push(DSA.default),e}Rx.default=_SA});var yAA=Je(xx=>{"use strict";Object.defineProperty(xx,"__esModule",{value:!0});var Qr=An(),GSA={message:({schemaCode:t})=>(0,Qr.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,Qr._)`{format: ${t}}`},USA={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:GSA,code(t,e){let{gen:A,data:i,$data:n,schema:o,schemaCode:r,it:s}=t,{opts:a,errSchemaPath:c,schemaEnv:l,self:I}=s;if(!a.validateFormats)return;n?C():d();function C(){let B=A.scopeValue("formats",{ref:I.formats,code:a.code.formats}),E=A.const("fDef",(0,Qr._)`${B}[${r}]`),h=A.let("fType"),u=A.let("format");A.if((0,Qr._)`typeof ${E} == "object" && !(${E} instanceof RegExp)`,()=>A.assign(h,(0,Qr._)`${E}.type || "string"`).assign(u,(0,Qr._)`${E}.validate`),()=>A.assign(h,(0,Qr._)`"string"`).assign(u,E)),t.fail$data((0,Qr.or)(D(),L()));function D(){return a.strictSchema===!1?Qr.nil:(0,Qr._)`${r} && !${u}`}function L(){let R=l.$async?(0,Qr._)`(${E}.async ? await ${u}(${i}) : ${u}(${i}))`:(0,Qr._)`${u}(${i})`,w=(0,Qr._)`(typeof ${u} == "function" ? ${R} : ${u}.test(${i}))`;return(0,Qr._)`${u} && ${u} !== true && ${h} === ${e} && !${w}`}}function d(){let B=I.formats[o];if(!B){D();return}if(B===!0)return;let[E,h,u]=L(B);E===e&&t.pass(R());function D(){if(a.strictSchema===!1){I.logger.warn(w());return}throw new Error(w());function w(){return`unknown format "${o}" ignored in schema at path "${c}"`}}function L(w){let _=w instanceof RegExp?(0,Qr.regexpCode)(w):a.code.formats?(0,Qr._)`${a.code.formats}${(0,Qr.getProperty)(o)}`:void 0,K=A.scopeValue("formats",{key:o,ref:w,code:_});return typeof w=="object"&&!(w instanceof RegExp)?[w.type||"string",w.validate,(0,Qr._)`${K}.validate`]:["string",w,K]}function R(){if(typeof B=="object"&&!(B instanceof RegExp)&&B.async){if(!l.$async)throw new Error("async format in sync schema");return(0,Qr._)`await ${u}(${i})`}return typeof h=="function"?(0,Qr._)`${u}(${i})`:(0,Qr._)`${u}.test(${i})`}}}};xx.default=USA});var vAA=Je(Lx=>{"use strict";Object.defineProperty(Lx,"__esModule",{value:!0});var KSA=yAA(),YSA=[KSA.default];Lx.default=YSA});var bAA=Je(hE=>{"use strict";Object.defineProperty(hE,"__esModule",{value:!0});hE.contentVocabulary=hE.metadataVocabulary=void 0;hE.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];hE.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var kAA=Je(Fx=>{"use strict";Object.defineProperty(Fx,"__esModule",{value:!0});var JSA=_$(),TSA=Z$(),HSA=DAA(),zSA=vAA(),MAA=bAA(),OSA=[JSA.default,TSA.default,(0,HSA.default)(),zSA.default,MAA.metadataVocabulary,MAA.contentVocabulary];Fx.default=OSA});var RAA=Je(Aw=>{"use strict";Object.defineProperty(Aw,"__esModule",{value:!0});Aw.DiscrError=void 0;var SAA=function(t){return t.Tag="tag",t.Mapping="mapping",t}(SAA||(Aw.DiscrError=SAA={}))});var LAA=Je(_x=>{"use strict";Object.defineProperty(_x,"__esModule",{value:!0});var uE=An(),Nx=RAA(),xAA=_5(),PSA=w4(),jSA=bn(),qSA={message:({params:{discrError:t,tagName:e}})=>t===Nx.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:A}})=>(0,uE._)`{error: ${t}, tag: ${A}, tagValue: ${e}}`},VSA={keyword:"discriminator",type:"object",schemaType:"object",error:qSA,code(t){let{gen:e,data:A,schema:i,parentSchema:n,it:o}=t,{oneOf:r}=n;if(!o.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=i.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(i.mapping)throw new Error("discriminator: mapping is not supported");if(!r)throw new Error("discriminator: requires oneOf keyword");let a=e.let("valid",!1),c=e.const("tag",(0,uE._)`${A}${(0,uE.getProperty)(s)}`);e.if((0,uE._)`typeof ${c} == "string"`,()=>l(),()=>t.error(!1,{discrError:Nx.DiscrError.Tag,tag:c,tagName:s})),t.ok(a);function l(){let d=C();e.if(!1);for(let B in d)e.elseIf((0,uE._)`${c} === ${B}`),e.assign(a,I(d[B]));e.else(),t.error(!1,{discrError:Nx.DiscrError.Mapping,tag:c,tagName:s}),e.endIf()}function I(d){let B=e.name("valid"),E=t.subschema({keyword:"oneOf",schemaProp:d},B);return t.mergeEvaluated(E,uE.Name),B}function C(){var d;let B={},E=u(n),h=!0;for(let R=0;R{ZSA.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var _AA=Je((Oo,Gx)=>{"use strict";Object.defineProperty(Oo,"__esModule",{value:!0});Oo.MissingRefError=Oo.ValidationError=Oo.CodeGen=Oo.Name=Oo.nil=Oo.stringify=Oo.str=Oo._=Oo.KeywordCxt=Oo.Ajv=void 0;var WSA=S$(),XSA=kAA(),$SA=LAA(),NAA=FAA(),ARA=["/properties"],ew="http://json-schema.org/draft-07/schema",fE=class extends WSA.default{_addVocabularies(){super._addVocabularies(),XSA.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword($SA.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(NAA,ARA):NAA;this.addMetaSchema(e,ew,!1),this.refs["http://json-schema.org/schema"]=ew}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(ew)?ew:void 0)}};Oo.Ajv=fE;Gx.exports=Oo=fE;Gx.exports.Ajv=fE;Object.defineProperty(Oo,"__esModule",{value:!0});Oo.default=fE;var eRA=p4();Object.defineProperty(Oo,"KeywordCxt",{enumerable:!0,get:function(){return eRA.KeywordCxt}});var mE=An();Object.defineProperty(Oo,"_",{enumerable:!0,get:function(){return mE._}});Object.defineProperty(Oo,"str",{enumerable:!0,get:function(){return mE.str}});Object.defineProperty(Oo,"stringify",{enumerable:!0,get:function(){return mE.stringify}});Object.defineProperty(Oo,"nil",{enumerable:!0,get:function(){return mE.nil}});Object.defineProperty(Oo,"Name",{enumerable:!0,get:function(){return mE.Name}});Object.defineProperty(Oo,"CodeGen",{enumerable:!0,get:function(){return mE.CodeGen}});var tRA=F5();Object.defineProperty(Oo,"ValidationError",{enumerable:!0,get:function(){return tRA.default}});var iRA=w4();Object.defineProperty(Oo,"MissingRefError",{enumerable:!0,get:function(){return iRA.default}})});var GAA=Je(tw=>{"use strict";(function(t){"use strict";function e(x){return x!==null?Object.prototype.toString.call(x)==="[object Array]":!1}function A(x){return x!==null?Object.prototype.toString.call(x)==="[object Object]":!1}function i(x,Y){if(x===Y)return!0;var P=Object.prototype.toString.call(x);if(P!==Object.prototype.toString.call(Y))return!1;if(e(x)===!0){if(x.length!==Y.length)return!1;for(var X=0;X",9:"Array"},L="EOF",R="UnquotedIdentifier",w="QuotedIdentifier",_="Rbracket",K="Rparen",z="Comma",U="Colon",H="Rbrace",q="Number",j="Current",gA="Expref",QA="Pipe",BA="Or",lA="And",vA="EQ",tA="GT",cA="LT",pA="GTE",VA="LTE",oe="NE",KA="Flatten",CA="Star",TA="Filter",Ze="Dot",He="Not",uA="Lbrace",eA="Lbracket",UA="Lparen",aA="Literal",le={".":Ze,"*":CA,",":z,":":U,"{":uA,"}":H,"]":_,"(":UA,")":K,"@":j},SA={"<":!0,">":!0,"=":!0,"!":!0},Ue={" ":!0," ":!0,"\n":!0};function mA(x){return x>="a"&&x<="z"||x>="A"&&x<="Z"||x==="_"}function sA(x){return x>="0"&&x<="9"||x==="-"}function xt(x){return x>="a"&&x<="z"||x>="A"&&x<="Z"||x>="0"&&x<="9"||x==="_"}function tt(){}tt.prototype={tokenize:function(x){var Y=[];this._current=0;for(var P,X,bA;this._current")return x[this._current]==="="?(this._current++,{type:pA,value:">=",start:Y}):{type:tA,value:">",start:Y};if(P==="="&&x[this._current]==="=")return this._current++,{type:vA,value:"==",start:Y}},_consumeLiteral:function(x){this._current++;for(var Y=this._current,P=x.length,X;x[this._current]!=="`"&&this._current=0)return!0;if(P.indexOf(x)>=0)return!0;if(X.indexOf(x[0])>=0)try{return JSON.parse(x),!0}catch{return!1}else return!1}};var de={};de[L]=0,de[R]=0,de[w]=0,de[_]=0,de[K]=0,de[z]=0,de[H]=0,de[q]=0,de[j]=0,de[gA]=0,de[QA]=1,de[BA]=2,de[lA]=3,de[vA]=5,de[tA]=5,de[cA]=5,de[pA]=5,de[VA]=5,de[oe]=5,de[KA]=9,de[CA]=20,de[TA]=21,de[Ze]=40,de[He]=45,de[uA]=50,de[eA]=55,de[UA]=60;function Dt(){}Dt.prototype={parse:function(x){this._loadTokens(x),this.index=0;var Y=this.expression(0);if(this._lookahead(0)!==L){var P=this._lookaheadToken(0),X=new Error("Unexpected token type: "+P.type+", value: "+P.value);throw X.name="ParserError",X}return Y},_loadTokens:function(x){var Y=new tt,P=Y.tokenize(x);P.push({type:L,value:"",start:x.length}),this.tokens=P},expression:function(x){var Y=this._lookaheadToken(0);this._advance();for(var P=this.nud(Y),X=this._lookahead(0);x=0)return this.expression(x);if(Y===eA)return this._match(eA),this._parseMultiselectList();if(Y===uA)return this._match(uA),this._parseMultiselectHash()},_parseProjectionRHS:function(x){var Y;if(de[this._lookahead(0)]<10)Y={type:"Identity"};else if(this._lookahead(0)===eA)Y=this.expression(x);else if(this._lookahead(0)===TA)Y=this.expression(x);else if(this._lookahead(0)===Ze)this._match(Ze),Y=this._parseDotRHS(x);else{var P=this._lookaheadToken(0),X=new Error("Sytanx error, unexpected token: "+P.value+"("+P.type+")");throw X.name="ParserError",X}return Y},_parseMultiselectList:function(){for(var x=[];this._lookahead(0)!==_;){var Y=this.expression(0);if(x.push(Y),this._lookahead(0)===z&&(this._match(z),this._lookahead(0)===_))throw new Error("Unexpected token Rbracket")}return this._match(_),{type:"MultiSelectList",children:x}},_parseMultiselectHash:function(){for(var x=[],Y=[R,w],P,X,bA,Be;;){if(P=this._lookaheadToken(0),Y.indexOf(P.type)<0)throw new Error("Expecting an identifier token, got: "+P.type);if(X=P.value,this._advance(),this._match(U),bA=this.expression(0),Be={type:"KeyValuePair",name:X,value:bA},x.push(Be),this._lookahead(0)===z)this._match(z);else if(this._lookahead(0)===H){this._match(H);break}}return{type:"MultiSelectHash",children:x}}};function _e(x){this.runtime=x}_e.prototype={search:function(x,Y){return this.visit(x,Y)},visit:function(x,Y){var P,X,bA,Be,Ee,kA,DA,gt,Ve,ZA;switch(x.type){case"Field":return Y!==null&&A(Y)?(kA=Y[x.name],kA===void 0?null:kA):null;case"Subexpression":for(bA=this.visit(x.children[0],Y),ZA=1;ZA0)for(ZA=qi;ZAxe;ZA+=nn)bA.push(Y[ZA]);return bA;case"Projection":var mi=this.visit(x.children[0],Y);if(!e(mi))return null;for(Ve=[],ZA=0;ZAEe;break;case pA:bA=Be>=Ee;break;case cA:bA=Be=x&&(Y=P<0?x-1:x),Y}};function Le(x){this._interpreter=x,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[a]}]},avg:{_func:this._functionAvg,_signature:[{types:[h]}]},ceil:{_func:this._functionCeil,_signature:[{types:[a]}]},contains:{_func:this._functionContains,_signature:[{types:[l,I]},{types:[c]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[l]},{types:[l]}]},floor:{_func:this._functionFloor,_signature:[{types:[a]}]},length:{_func:this._functionLength,_signature:[{types:[l,I,C]}]},map:{_func:this._functionMap,_signature:[{types:[B]},{types:[I]}]},max:{_func:this._functionMax,_signature:[{types:[h,u]}]},merge:{_func:this._functionMerge,_signature:[{types:[C],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[I]},{types:[B]}]},sum:{_func:this._functionSum,_signature:[{types:[h]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[l]},{types:[l]}]},min:{_func:this._functionMin,_signature:[{types:[h,u]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[I]},{types:[B]}]},type:{_func:this._functionType,_signature:[{types:[c]}]},keys:{_func:this._functionKeys,_signature:[{types:[C]}]},values:{_func:this._functionValues,_signature:[{types:[C]}]},sort:{_func:this._functionSort,_signature:[{types:[u,h]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[I]},{types:[B]}]},join:{_func:this._functionJoin,_signature:[{types:[l]},{types:[u]}]},reverse:{_func:this._functionReverse,_signature:[{types:[l,I]}]},to_array:{_func:this._functionToArray,_signature:[{types:[c]}]},to_string:{_func:this._functionToString,_signature:[{types:[c]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[c]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[c],variadic:!0}]}}}Le.prototype={callFunction:function(x,Y){var P=this.functionTable[x];if(P===void 0)throw new Error("Unknown function: "+x+"()");return this._validateArgs(x,Y,P._signature),P._func.call(this,Y)},_validateArgs:function(x,Y,P){var X;if(P[P.length-1].variadic){if(Y.length=0;bA--)X+=P[bA];return X}else{var Be=x[0].slice(0);return Be.reverse(),Be}},_functionAbs:function(x){return Math.abs(x[0])},_functionCeil:function(x){return Math.ceil(x[0])},_functionAvg:function(x){for(var Y=0,P=x[0],X=0;X=0},_functionFloor:function(x){return Math.floor(x[0])},_functionLength:function(x){return A(x[0])?Object.keys(x[0]).length:x[0].length},_functionMap:function(x){for(var Y=[],P=this._interpreter,X=x[0],bA=x[1],Be=0;Be0){var Y=this._getTypeName(x[0][0]);if(Y===a)return Math.max.apply(Math,x[0]);for(var P=x[0],X=P[0],bA=1;bA0){var Y=this._getTypeName(x[0][0]);if(Y===a)return Math.min.apply(Math,x[0]);for(var P=x[0],X=P[0],bA=1;bArt?1:ZAbA&&(bA=Ee,Be=P[kA]);return Be},_functionMinBy:function(x){for(var Y=x[1],P=x[0],X=this.createKeyFunction(Y,[a,l]),bA=1/0,Be,Ee,kA=0;kA"u"?tw.jmespath={}:tw)});function O7(t,e){return Object.is(t,e)}var Lr=null,zf=!1,P7=1,ia=Symbol("SIGNAL");function Ti(t){let e=Lr;return Lr=t,e}function j7(){return Lr}var Bd={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:"unknown",producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function VQ(t){if(zf)throw new Error("");if(Lr===null)return;Lr.consumerOnSignalRead(t);let e=Lr.nextProducerIndex++;if(Vf(Lr),et.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function jf(t){Vf(t);for(let e=0;e0}function Vf(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}function ZU(t){t.liveConsumerNode??=[],t.liveConsumerIndexOfThis??=[]}function WU(t){return t.producerNode!==void 0}function Zf(t,e){let A=Object.create(YgA);A.computation=t,e!==void 0&&(A.equal=e);let i=()=>{if(q7(A),VQ(A),A.value===Of)throw A.error;return A.value};return i[ia]=A,i}var T7=Symbol("UNSET"),H7=Symbol("COMPUTING"),Of=Symbol("ERRORED"),YgA=Ye(rA({},Bd),{value:T7,dirty:!0,error:null,equal:O7,kind:"computed",producerMustRecompute(t){return t.value===T7||t.value===H7},producerRecomputeValue(t){if(t.value===H7)throw new Error("Detected cycle in computations.");let e=t.value;t.value=H7;let A=ZQ(t),i,n=!1;try{i=t.computation(),Ti(null),n=e!==T7&&e!==Of&&i!==Of&&t.equal(e,i)}catch(o){i=Of,t.error=o}finally{Pf(t,A)}if(n){t.value=e;return}t.value=i,t.version++}});function JgA(){throw new Error}var XU=JgA;function $U(t){XU(t)}function W7(t){XU=t}var TgA=null;function X7(t,e){let A=Object.create(Wf);A.value=t,e!==void 0&&(A.equal=e);let i=()=>(VQ(A),A.value);return i[ia]=A,i}function XQ(t,e){Z7()||$U(t),t.equal(t.value,e)||(t.value=e,HgA(t))}function $7(t,e){Z7()||$U(t),XQ(t,e(t.value))}var Wf=Ye(rA({},Bd),{equal:O7,value:void 0,kind:"signal"});function HgA(t){t.version++,qU(),V7(t),TgA?.()}function Av(t){let e=Ti(null);try{return t()}finally{Ti(e)}}var ev;function $Q(){return ev}function n0(t){let e=ev;return ev=t,e}var Xf=Symbol("NotFound");function Xt(t){return typeof t=="function"}function Ed(t){let A=t(i=>{Error.call(i),i.stack=new Error().stack});return A.prototype=Object.create(Error.prototype),A.prototype.constructor=A,A}var $f=Ed(t=>function(A){t(this),this.message=A?`${A.length} errors occurred during unsubscription: -${A.map((i,n)=>`${n+1}) ${i.toString()}`).join(` - `)}`:"",this.name="UnsubscriptionError",this.errors=A});function cI(t,e){if(t){let A=t.indexOf(e);0<=A&&t.splice(A,1)}}var Kt=class t{constructor(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let e;if(!this.closed){this.closed=!0;let{_parentage:A}=this;if(A)if(this._parentage=null,Array.isArray(A))for(let o of A)o.remove(this);else A.remove(this);let{initialTeardown:i}=this;if(Xt(i))try{i()}catch(o){e=o instanceof $f?o.errors:[o]}let{_finalizers:n}=this;if(n){this._finalizers=null;for(let o of n)try{AK(o)}catch(r){e=e??[],r instanceof $f?e=[...e,...r.errors]:e.push(r)}}if(e)throw new $f(e)}}add(e){var A;if(e&&e!==this)if(this.closed)AK(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(A=this._finalizers)!==null&&A!==void 0?A:[]).push(e)}}_hasParent(e){let{_parentage:A}=this;return A===e||Array.isArray(A)&&A.includes(e)}_addParent(e){let{_parentage:A}=this;this._parentage=Array.isArray(A)?(A.push(e),A):A?[A,e]:e}_removeParent(e){let{_parentage:A}=this;A===e?this._parentage=null:Array.isArray(A)&&cI(A,e)}remove(e){let{_finalizers:A}=this;A&&cI(A,e),e instanceof t&&e._removeParent(this)}};Kt.EMPTY=(()=>{let t=new Kt;return t.closed=!0,t})();var tv=Kt.EMPTY;function Am(t){return t instanceof Kt||t&&"closed"in t&&Xt(t.remove)&&Xt(t.add)&&Xt(t.unsubscribe)}function AK(t){Xt(t)?t():t.unsubscribe()}var $c={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var Qd={setTimeout(t,e,...A){let{delegate:i}=Qd;return i?.setTimeout?i.setTimeout(t,e,...A):setTimeout(t,e,...A)},clearTimeout(t){let{delegate:e}=Qd;return(e?.clearTimeout||clearTimeout)(t)},delegate:void 0};function em(t){Qd.setTimeout(()=>{let{onUnhandledError:e}=$c;if(e)e(t);else throw t})}function Ah(){}var eK=iv("C",void 0,void 0);function tK(t){return iv("E",void 0,t)}function iK(t){return iv("N",t,void 0)}function iv(t,e,A){return{kind:t,value:e,error:A}}var lI=null;function hd(t){if($c.useDeprecatedSynchronousErrorHandling){let e=!lI;if(e&&(lI={errorThrown:!1,error:null}),t(),e){let{errorThrown:A,error:i}=lI;if(lI=null,A)throw i}}else t()}function nK(t){$c.useDeprecatedSynchronousErrorHandling&&lI&&(lI.errorThrown=!0,lI.error=t)}var o0=class extends Kt{constructor(e){super(),this.isStopped=!1,e?(this.destination=e,Am(e)&&e.add(this)):this.destination=VgA}static create(e,A,i){return new r0(e,A,i)}next(e){this.isStopped?ov(iK(e),this):this._next(e)}error(e){this.isStopped?ov(tK(e),this):(this.isStopped=!0,this._error(e))}complete(){this.isStopped?ov(eK,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(e){this.destination.next(e)}_error(e){try{this.destination.error(e)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},jgA=Function.prototype.bind;function nv(t,e){return jgA.call(t,e)}var rv=class{constructor(e){this.partialObserver=e}next(e){let{partialObserver:A}=this;if(A.next)try{A.next(e)}catch(i){tm(i)}}error(e){let{partialObserver:A}=this;if(A.error)try{A.error(e)}catch(i){tm(i)}else tm(e)}complete(){let{partialObserver:e}=this;if(e.complete)try{e.complete()}catch(A){tm(A)}}},r0=class extends o0{constructor(e,A,i){super();let n;if(Xt(e)||!e)n={next:e??void 0,error:A??void 0,complete:i??void 0};else{let o;this&&$c.useDeprecatedNextContext?(o=Object.create(e),o.unsubscribe=()=>this.unsubscribe(),n={next:e.next&&nv(e.next,o),error:e.error&&nv(e.error,o),complete:e.complete&&nv(e.complete,o)}):n=e}this.destination=new rv(n)}};function tm(t){$c.useDeprecatedSynchronousErrorHandling?nK(t):em(t)}function qgA(t){throw t}function ov(t,e){let{onStoppedNotification:A}=$c;A&&Qd.setTimeout(()=>A(t,e))}var VgA={closed:!0,next:Ah,error:qgA,complete:Ah};var ud=typeof Symbol=="function"&&Symbol.observable||"@@observable";function Ys(t){return t}function sv(...t){return av(t)}function av(t){return t.length===0?Ys:t.length===1?t[0]:function(A){return t.reduce((i,n)=>n(i),A)}}var ct=(()=>{class t{constructor(A){A&&(this._subscribe=A)}lift(A){let i=new t;return i.source=this,i.operator=A,i}subscribe(A,i,n){let o=WgA(A)?A:new r0(A,i,n);return hd(()=>{let{operator:r,source:s}=this;o.add(r?r.call(o,s):s?this._subscribe(o):this._trySubscribe(o))}),o}_trySubscribe(A){try{return this._subscribe(A)}catch(i){A.error(i)}}forEach(A,i){return i=oK(i),new i((n,o)=>{let r=new r0({next:s=>{try{A(s)}catch(a){o(a),r.unsubscribe()}},error:o,complete:n});this.subscribe(r)})}_subscribe(A){var i;return(i=this.source)===null||i===void 0?void 0:i.subscribe(A)}[ud](){return this}pipe(...A){return av(A)(this)}toPromise(A){return A=oK(A),new A((i,n)=>{let o;this.subscribe(r=>o=r,r=>n(r),()=>i(o))})}}return t.create=e=>new t(e),t})();function oK(t){var e;return(e=t??$c.Promise)!==null&&e!==void 0?e:Promise}function ZgA(t){return t&&Xt(t.next)&&Xt(t.error)&&Xt(t.complete)}function WgA(t){return t&&t instanceof o0||ZgA(t)&&Am(t)}function cv(t){return Xt(t?.lift)}function li(t){return e=>{if(cv(e))return e.lift(function(A){try{return t(A,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function ai(t,e,A,i,n){return new lv(t,e,A,i,n)}var lv=class extends o0{constructor(e,A,i,n,o,r){super(e),this.onFinalize=o,this.shouldUnsubscribe=r,this._next=A?function(s){try{A(s)}catch(a){e.error(a)}}:super._next,this._error=n?function(s){try{n(s)}catch(a){e.error(a)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(s){e.error(s)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var e;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){let{closed:A}=this;super.unsubscribe(),!A&&((e=this.onFinalize)===null||e===void 0||e.call(this))}}};function fd(){return li((t,e)=>{let A=null;t._refCount++;let i=ai(e,void 0,void 0,void 0,()=>{if(!t||t._refCount<=0||0<--t._refCount){A=null;return}let n=t._connection,o=A;A=null,n&&(!o||n===o)&&n.unsubscribe(),e.unsubscribe()});t.subscribe(i),i.closed||(A=t.connect())})}var l2=class extends ct{constructor(e,A){super(),this.source=e,this.subjectFactory=A,this._subject=null,this._refCount=0,this._connection=null,cv(e)&&(this.lift=e.lift)}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){let e=this._subject;return(!e||e.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;let{_connection:e}=this;this._subject=this._connection=null,e?.unsubscribe()}connect(){let e=this._connection;if(!e){e=this._connection=new Kt;let A=this.getSubject();e.add(this.source.subscribe(ai(A,void 0,()=>{this._teardown(),A.complete()},i=>{this._teardown(),A.error(i)},()=>this._teardown()))),e.closed&&(this._connection=null,e=Kt.EMPTY)}return e}refCount(){return fd()(this)}};var rK=Ed(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var OA=(()=>{class t extends ct{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(A){let i=new md(this,this);return i.operator=A,i}_throwIfClosed(){if(this.closed)throw new rK}next(A){hd(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let i of this.currentObservers)i.next(A)}})}error(A){hd(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=A;let{observers:i}=this;for(;i.length;)i.shift().error(A)}})}complete(){hd(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:A}=this;for(;A.length;)A.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var A;return((A=this.observers)===null||A===void 0?void 0:A.length)>0}_trySubscribe(A){return this._throwIfClosed(),super._trySubscribe(A)}_subscribe(A){return this._throwIfClosed(),this._checkFinalizedStatuses(A),this._innerSubscribe(A)}_innerSubscribe(A){let{hasError:i,isStopped:n,observers:o}=this;return i||n?tv:(this.currentObservers=null,o.push(A),new Kt(()=>{this.currentObservers=null,cI(o,A)}))}_checkFinalizedStatuses(A){let{hasError:i,thrownError:n,isStopped:o}=this;i?A.error(n):o&&A.complete()}asObservable(){let A=new ct;return A.source=this,A}}return t.create=(e,A)=>new md(e,A),t})(),md=class extends OA{constructor(e,A){super(),this.destination=e,this.source=A}next(e){var A,i;(i=(A=this.destination)===null||A===void 0?void 0:A.next)===null||i===void 0||i.call(A,e)}error(e){var A,i;(i=(A=this.destination)===null||A===void 0?void 0:A.error)===null||i===void 0||i.call(A,e)}complete(){var e,A;(A=(e=this.destination)===null||e===void 0?void 0:e.complete)===null||A===void 0||A.call(e)}_subscribe(e){var A,i;return(i=(A=this.source)===null||A===void 0?void 0:A.subscribe(e))!==null&&i!==void 0?i:tv}};var Mi=class extends OA{constructor(e){super(),this._value=e}get value(){return this.getValue()}_subscribe(e){let A=super._subscribe(e);return!A.closed&&e.next(this._value),A}getValue(){let{hasError:e,thrownError:A,_value:i}=this;if(e)throw A;return this._throwIfClosed(),i}next(e){super.next(this._value=e)}};var eh={now(){return(eh.delegate||Date).now()},delegate:void 0};var Al=class extends OA{constructor(e=1/0,A=1/0,i=eh){super(),this._bufferSize=e,this._windowTime=A,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=A===1/0,this._bufferSize=Math.max(1,e),this._windowTime=Math.max(1,A)}next(e){let{isStopped:A,_buffer:i,_infiniteTimeWindow:n,_timestampProvider:o,_windowTime:r}=this;A||(i.push(e),!n&&i.push(o.now()+r)),this._trimBuffer(),super.next(e)}_subscribe(e){this._throwIfClosed(),this._trimBuffer();let A=this._innerSubscribe(e),{_infiniteTimeWindow:i,_buffer:n}=this,o=n.slice();for(let r=0;rt.complete());function rm(t){return t&&Xt(t.schedule)}function gv(t){return t[t.length-1]}function sm(t){return Xt(gv(t))?t.pop():void 0}function Pl(t){return rm(gv(t))?t.pop():void 0}function aK(t,e){return typeof gv(t)=="number"?t.pop():e}function lK(t,e,A,i){function n(o){return o instanceof A?o:new A(function(r){r(o)})}return new(A||(A=Promise))(function(o,r){function s(l){try{c(i.next(l))}catch(I){r(I)}}function a(l){try{c(i.throw(l))}catch(I){r(I)}}function c(l){l.done?o(l.value):n(l.value).then(s,a)}c((i=i.apply(t,e||[])).next())})}function cK(t){var e=typeof Symbol=="function"&&Symbol.iterator,A=e&&t[e],i=0;if(A)return A.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function gI(t){return this instanceof gI?(this.v=t,this):new gI(t)}function gK(t,e,A){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=A.apply(t,e||[]),n,o=[];return n=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",r),n[Symbol.asyncIterator]=function(){return this},n;function r(d){return function(B){return Promise.resolve(B).then(d,I)}}function s(d,B){i[d]&&(n[d]=function(E){return new Promise(function(h,u){o.push([d,E,h,u])>1||a(d,E)})},B&&(n[d]=B(n[d])))}function a(d,B){try{c(i[d](B))}catch(E){C(o[0][3],E)}}function c(d){d.value instanceof gI?Promise.resolve(d.value.v).then(l,I):C(o[0][2],d)}function l(d){a("next",d)}function I(d){a("throw",d)}function C(d,B){d(B),o.shift(),o.length&&a(o[0][0],o[0][1])}}function IK(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],A;return e?e.call(t):(t=typeof cK=="function"?cK(t):t[Symbol.iterator](),A={},i("next"),i("throw"),i("return"),A[Symbol.asyncIterator]=function(){return this},A);function i(o){A[o]=t[o]&&function(r){return new Promise(function(s,a){r=t[o](r),n(s,a,r.done,r.value)})}}function n(o,r,s,a){Promise.resolve(a).then(function(c){o({value:c,done:s})},r)}}var wd=t=>t&&typeof t.length=="number"&&typeof t!="function";function am(t){return Xt(t?.then)}function cm(t){return Xt(t[ud])}function lm(t){return Symbol.asyncIterator&&Xt(t?.[Symbol.asyncIterator])}function gm(t){return new TypeError(`You provided ${t!==null&&typeof t=="object"?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}function XgA(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Im=XgA();function Cm(t){return Xt(t?.[Im])}function dm(t){return gK(this,arguments,function*(){let A=t.getReader();try{for(;;){let{value:i,done:n}=yield gI(A.read());if(n)return yield gI(void 0);yield yield gI(i)}}finally{A.releaseLock()}})}function Bm(t){return Xt(t?.getReader)}function eo(t){if(t instanceof ct)return t;if(t!=null){if(cm(t))return $gA(t);if(wd(t))return A0A(t);if(am(t))return e0A(t);if(lm(t))return CK(t);if(Cm(t))return t0A(t);if(Bm(t))return i0A(t)}throw gm(t)}function $gA(t){return new ct(e=>{let A=t[ud]();if(Xt(A.subscribe))return A.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function A0A(t){return new ct(e=>{for(let A=0;A{t.then(A=>{e.closed||(e.next(A),e.complete())},A=>e.error(A)).then(null,em)})}function t0A(t){return new ct(e=>{for(let A of t)if(e.next(A),e.closed)return;e.complete()})}function CK(t){return new ct(e=>{n0A(t,e).catch(A=>e.error(A))})}function i0A(t){return CK(dm(t))}function n0A(t,e){var A,i,n,o;return lK(this,void 0,void 0,function*(){try{for(A=IK(t);i=yield A.next(),!i.done;){let r=i.value;if(e.next(r),e.closed)return}}catch(r){n={error:r}}finally{try{i&&!i.done&&(o=A.return)&&(yield o.call(A))}finally{if(n)throw n.error}}e.complete()})}function na(t,e,A,i=0,n=!1){let o=e.schedule(function(){A(),n?t.add(this.schedule(null,i)):this.unsubscribe()},i);if(t.add(o),!n)return o}function Em(t,e=0){return li((A,i)=>{A.subscribe(ai(i,n=>na(i,t,()=>i.next(n),e),()=>na(i,t,()=>i.complete(),e),n=>na(i,t,()=>i.error(n),e)))})}function Qm(t,e=0){return li((A,i)=>{i.add(t.schedule(()=>A.subscribe(i),e))})}function dK(t,e){return eo(t).pipe(Qm(e),Em(e))}function BK(t,e){return eo(t).pipe(Qm(e),Em(e))}function EK(t,e){return new ct(A=>{let i=0;return e.schedule(function(){i===t.length?A.complete():(A.next(t[i++]),A.closed||this.schedule())})})}function QK(t,e){return new ct(A=>{let i;return na(A,e,()=>{i=t[Im](),na(A,e,()=>{let n,o;try{({value:n,done:o}=i.next())}catch(r){A.error(r);return}o?A.complete():A.next(n)},0,!0)}),()=>Xt(i?.return)&&i.return()})}function hm(t,e){if(!t)throw new Error("Iterable cannot be null");return new ct(A=>{na(A,e,()=>{let i=t[Symbol.asyncIterator]();na(A,e,()=>{i.next().then(n=>{n.done?A.complete():A.next(n.value)})},0,!0)})})}function hK(t,e){return hm(dm(t),e)}function uK(t,e){if(t!=null){if(cm(t))return dK(t,e);if(wd(t))return EK(t,e);if(am(t))return BK(t,e);if(lm(t))return hm(t,e);if(Cm(t))return QK(t,e);if(Bm(t))return hK(t,e)}throw gm(t)}function oo(t,e){return e?uK(t,e):eo(t)}function Me(...t){let e=Pl(t);return oo(t,e)}function g2(t,e){let A=Xt(t)?t:()=>t,i=n=>n.error(A());return new ct(e?n=>e.schedule(i,0,n):i)}function I2(t){return!!t&&(t instanceof ct||Xt(t.lift)&&Xt(t.subscribe))}var s0=Ed(t=>function(){t(this),this.name="EmptyError",this.message="no elements in sequence"});function fK(t){return t instanceof Date&&!isNaN(t)}function je(t,e){return li((A,i)=>{let n=0;A.subscribe(ai(i,o=>{i.next(t.call(e,o,n++))}))})}var{isArray:o0A}=Array;function r0A(t,e){return o0A(e)?t(...e):t(e)}function Dd(t){return je(e=>r0A(t,e))}var{isArray:s0A}=Array,{getPrototypeOf:a0A,prototype:c0A,keys:l0A}=Object;function um(t){if(t.length===1){let e=t[0];if(s0A(e))return{args:e,keys:null};if(g0A(e)){let A=l0A(e);return{args:A.map(i=>e[i]),keys:A}}}return{args:t,keys:null}}function g0A(t){return t&&typeof t=="object"&&a0A(t)===c0A}function fm(t,e){return t.reduce((A,i,n)=>(A[i]=e[n],A),{})}function Js(...t){let e=Pl(t),A=sm(t),{args:i,keys:n}=um(t);if(i.length===0)return oo([],e);let o=new ct(I0A(i,e,n?r=>fm(n,r):Ys));return A?o.pipe(Dd(A)):o}function I0A(t,e,A=Ys){return i=>{mK(e,()=>{let{length:n}=t,o=new Array(n),r=n,s=n;for(let a=0;a{let c=oo(t[a],e),l=!1;c.subscribe(ai(i,I=>{o[a]=I,l||(l=!0,s--),s||i.next(A(o.slice()))},()=>{--r||i.complete()}))},i)},i)}}function mK(t,e,A){t?na(A,t,e):e()}function pK(t,e,A,i,n,o,r,s){let a=[],c=0,l=0,I=!1,C=()=>{I&&!a.length&&!c&&e.complete()},d=E=>c{o&&e.next(E),c++;let h=!1;eo(A(E,l++)).subscribe(ai(e,u=>{n?.(u),o?d(u):e.next(u)},()=>{h=!0},void 0,()=>{if(h)try{for(c--;a.length&&cB(u)):B(u)}C()}catch(u){e.error(u)}}))};return t.subscribe(ai(e,d,()=>{I=!0,C()})),()=>{s?.()}}function tr(t,e,A=1/0){return Xt(e)?tr((i,n)=>je((o,r)=>e(i,o,n,r))(eo(t(i,n))),A):(typeof e=="number"&&(A=e),li((i,n)=>pK(i,n,t,A)))}function C2(t=1/0){return tr(Ys,t)}function wK(){return C2(1)}function d2(...t){return wK()(oo(t,Pl(t)))}function jl(t){return new ct(e=>{eo(t()).subscribe(e)})}function nh(...t){let e=sm(t),{args:A,keys:i}=um(t),n=new ct(o=>{let{length:r}=A;if(!r){o.complete();return}let s=new Array(r),a=r,c=r;for(let l=0;l{I||(I=!0,c--),s[l]=C},()=>a--,void 0,()=>{(!a||!I)&&(c||o.next(i?fm(i,s):s),o.complete())}))}});return e?n.pipe(Dd(e)):n}var C0A=["addListener","removeListener"],d0A=["addEventListener","removeEventListener"],B0A=["on","off"];function oh(t,e,A,i){if(Xt(A)&&(i=A,A=void 0),i)return oh(t,e,A).pipe(Dd(i));let[n,o]=h0A(t)?d0A.map(r=>s=>t[r](e,s,A)):E0A(t)?C0A.map(DK(t,e)):Q0A(t)?B0A.map(DK(t,e)):[];if(!n&&wd(t))return tr(r=>oh(r,e,A))(eo(t));if(!n)throw new TypeError("Invalid event target");return new ct(r=>{let s=(...a)=>r.next(1o(s)})}function DK(t,e){return A=>i=>t[A](e,i)}function E0A(t){return Xt(t.addListener)&&Xt(t.removeListener)}function Q0A(t){return Xt(t.on)&&Xt(t.off)}function h0A(t){return Xt(t.addEventListener)&&Xt(t.removeEventListener)}function II(t=0,e,A=sK){let i=-1;return e!=null&&(rm(e)?A=e:i=e),new ct(n=>{let o=fK(t)?+t-A.now():t;o<0&&(o=0);let r=0;return A.schedule(function(){n.closed||(n.next(r++),0<=i?this.schedule(void 0,i):n.complete())},o)})}function zn(...t){let e=Pl(t),A=aK(t,1/0),i=t;return i.length?i.length===1?eo(i[0]):C2(A)(oo(i,e)):sr}function kt(t,e){return li((A,i)=>{let n=0;A.subscribe(ai(i,o=>t.call(e,o,n++)&&i.next(o)))})}function yK(t){return li((e,A)=>{let i=!1,n=null,o=null,r=!1,s=()=>{if(o?.unsubscribe(),o=null,i){i=!1;let c=n;n=null,A.next(c)}r&&A.complete()},a=()=>{o=null,r&&A.complete()};e.subscribe(ai(A,c=>{i=!0,n=c,o||eo(t(c)).subscribe(o=ai(A,s,a))},()=>{r=!0,(!i||!o||o.closed)&&A.complete()}))})}function yd(t,e=ih){return yK(()=>II(t,e))}function mr(t){return li((e,A)=>{let i=null,n=!1,o;i=e.subscribe(ai(A,void 0,void 0,r=>{o=eo(t(r,mr(t)(e))),i?(i.unsubscribe(),i=null,o.subscribe(A)):n=!0})),n&&(i.unsubscribe(),i=null,o.subscribe(A))})}function vK(t,e,A,i,n){return(o,r)=>{let s=A,a=e,c=0;o.subscribe(ai(r,l=>{let I=c++;a=s?t(a,l,I):(s=!0,l),i&&r.next(a)},n&&(()=>{s&&r.next(a),r.complete()})))}}function ql(t,e){return Xt(e)?tr(t,e,1):tr(t,1)}function el(t,e=ih){return li((A,i)=>{let n=null,o=null,r=null,s=()=>{if(n){n.unsubscribe(),n=null;let c=o;o=null,i.next(c)}};function a(){let c=r+t,l=e.now();if(l{o=c,r=e.now(),n||(n=e.schedule(a,t),i.add(n))},()=>{s(),i.complete()},void 0,()=>{o=n=null}))})}function B2(t){return li((e,A)=>{let i=!1;e.subscribe(ai(A,n=>{i=!0,A.next(n)},()=>{i||A.next(t),A.complete()}))})}function On(t){return t<=0?()=>sr:li((e,A)=>{let i=0;e.subscribe(ai(A,n=>{++i<=t&&(A.next(n),t<=i&&A.complete())}))})}function vd(t){return je(()=>t)}function tl(t,e=Ys){return t=t??u0A,li((A,i)=>{let n,o=!0;A.subscribe(ai(i,r=>{let s=e(r);(o||!t(n,s))&&(o=!1,n=s,i.next(r))}))})}function u0A(t,e){return t===e}function mm(t=f0A){return li((e,A)=>{let i=!1;e.subscribe(ai(A,n=>{i=!0,A.next(n)},()=>i?A.complete():A.error(t())))})}function f0A(){return new s0}function Vl(t){return li((e,A)=>{try{e.subscribe(A)}finally{A.add(t)}})}function Zl(t,e){let A=arguments.length>=2;return i=>i.pipe(t?kt((n,o)=>t(n,o,i)):Ys,On(1),A?B2(e):mm(()=>new s0))}function bd(t){return t<=0?()=>sr:li((e,A)=>{let i=[];e.subscribe(ai(A,n=>{i.push(n),t{for(let n of i)A.next(n);A.complete()},void 0,()=>{i=null}))})}function Iv(t,e){let A=arguments.length>=2;return i=>i.pipe(t?kt((n,o)=>t(n,o,i)):Ys,bd(1),A?B2(e):mm(()=>new s0))}function pm(){return li((t,e)=>{let A,i=!1;t.subscribe(ai(e,n=>{let o=A;A=n,i&&e.next([o,n]),i=!0}))})}function Cv(t,e){return li(vK(t,e,arguments.length>=2,!0))}function rh(t={}){let{connector:e=()=>new OA,resetOnError:A=!0,resetOnComplete:i=!0,resetOnRefCountZero:n=!0}=t;return o=>{let r,s,a,c=0,l=!1,I=!1,C=()=>{s?.unsubscribe(),s=void 0},d=()=>{C(),r=a=void 0,l=I=!1},B=()=>{let E=r;d(),E?.unsubscribe()};return li((E,h)=>{c++,!I&&!l&&C();let u=a=a??e();h.add(()=>{c--,c===0&&!I&&!l&&(s=dv(B,n))}),u.subscribe(h),!r&&c>0&&(r=new r0({next:D=>u.next(D),error:D=>{I=!0,C(),s=dv(d,A,D),u.error(D)},complete:()=>{l=!0,C(),s=dv(d,i),u.complete()}}),eo(E).subscribe(r))})(o)}}function dv(t,e,...A){if(e===!0){t();return}if(e===!1)return;let i=new r0({next:()=>{i.unsubscribe(),t()}});return eo(e(...A)).subscribe(i)}function a0(t,e,A){let i,n=!1;return t&&typeof t=="object"?{bufferSize:i=1/0,windowTime:e=1/0,refCount:n=!1,scheduler:A}=t:i=t??1/0,rh({connector:()=>new Al(i,e,A),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:n})}function CI(t){return kt((e,A)=>t<=A)}function Pn(...t){let e=Pl(t);return li((A,i)=>{(e?d2(t,A,e):d2(t,A)).subscribe(i)})}function jn(t,e){return li((A,i)=>{let n=null,o=0,r=!1,s=()=>r&&!n&&i.complete();A.subscribe(ai(i,a=>{n?.unsubscribe();let c=0,l=o++;eo(t(a,l)).subscribe(n=ai(i,I=>i.next(e?e(a,I,l,c++):I),()=>{n=null,s()}))},()=>{r=!0,s()}))})}function St(t){return li((e,A)=>{eo(t).subscribe(ai(A,()=>A.complete(),Ah)),!A.closed&&e.subscribe(A)})}function Bv(t,e=!1){return li((A,i)=>{let n=0;A.subscribe(ai(i,o=>{let r=t(o,n++);(r||e)&&i.next(o),!r&&i.complete()}))})}function Qo(t,e,A){let i=Xt(t)||e||A?{next:t,error:e,complete:A}:t;return i?li((n,o)=>{var r;(r=i.subscribe)===null||r===void 0||r.call(i);let s=!0;n.subscribe(ai(o,a=>{var c;(c=i.next)===null||c===void 0||c.call(i,a),o.next(a)},()=>{var a;s=!1,(a=i.complete)===null||a===void 0||a.call(i),o.complete()},a=>{var c;s=!1,(c=i.error)===null||c===void 0||c.call(i,a),o.error(a)},()=>{var a,c;s&&((a=i.unsubscribe)===null||a===void 0||a.call(i)),(c=i.finalize)===null||c===void 0||c.call(i)}))}):Ys}var uY="https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss",Ae=class extends Error{code;constructor(e,A){super(K9(e,A)),this.code=e}};function m0A(t){return`NG0${Math.abs(t)}`}function K9(t,e){return`${m0A(t)}${e?": "+e:""}`}var fY=Symbol("InputSignalNode#UNSET"),p0A=Ye(rA({},Wf),{transformFn:void 0,applyValueToInputSignal(t,e){XQ(t,e)}});function mY(t,e){let A=Object.create(p0A);A.value=t,A.transformFn=e?.transform;function i(){if(VQ(A),A.value===fY){let n=null;throw new Ae(-950,n)}return A.value}return i[ia]=A,i}function uh(t){return{toString:t}.toString()}var wm="__parameters__";function w0A(t){return function(...A){if(t){let i=t(...A);for(let n in i)this[n]=i[n]}}}function pY(t,e,A){return uh(()=>{let i=w0A(e);function n(...o){if(this instanceof n)return i.apply(this,o),this;let r=new n(...o);return s.annotation=r,s;function s(a,c,l){let I=a.hasOwnProperty(wm)?a[wm]:Object.defineProperty(a,wm,{value:[]})[wm];for(;I.length<=l;)I.push(null);return(I[l]=I[l]||[]).push(r),a}}return n.prototype.ngMetadataName=t,n.annotationCls=n,n})}var sa=globalThis;function ho(t){for(let e in t)if(t[e]===ho)return e;throw Error("Could not find renamed property on target object.")}function D0A(t,e){for(let A in e)e.hasOwnProperty(A)&&!t.hasOwnProperty(A)&&(t[A]=e[A])}function ra(t){if(typeof t=="string")return t;if(Array.isArray(t))return`[${t.map(ra).join(", ")}]`;if(t==null)return""+t;let e=t.overriddenName||t.name;if(e)return`${e}`;let A=t.toString();if(A==null)return""+A;let i=A.indexOf(` -`);return i>=0?A.slice(0,i):A}function Sv(t,e){return t?e?`${t} ${e}`:t:e||""}var y0A=ho({__forward_ref__:ho});function Ir(t){return t.__forward_ref__=Ir,t.toString=function(){return ra(this())},t}function ns(t){return wY(t)?t():t}function wY(t){return typeof t=="function"&&t.hasOwnProperty(y0A)&&t.__forward_ref__===Ir}function NA(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function Ie(t){return{providers:t.providers||[],imports:t.imports||[]}}function lp(t){return bK(t,yY)||bK(t,vY)}function DY(t){return lp(t)!==null}function bK(t,e){return t.hasOwnProperty(e)?t[e]:null}function v0A(t){let e=t&&(t[yY]||t[vY]);return e||null}function MK(t){return t&&(t.hasOwnProperty(kK)||t.hasOwnProperty(b0A))?t[kK]:null}var yY=ho({\u0275prov:ho}),kK=ho({\u0275inj:ho}),vY=ho({ngInjectableDef:ho}),b0A=ho({ngInjectorDef:ho}),dA=class{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(e,A){this._desc=e,this.\u0275prov=void 0,typeof A=="number"?this.__NG_ELEMENT_ID__=A:A!==void 0&&(this.\u0275prov=NA({token:this,providedIn:A.providedIn||"root",factory:A.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}};function bY(t){return t&&!!t.\u0275providers}var M0A=ho({\u0275cmp:ho}),k0A=ho({\u0275dir:ho}),S0A=ho({\u0275pipe:ho}),R0A=ho({\u0275mod:ho}),Fm=ho({\u0275fac:ho}),lh=ho({__NG_ELEMENT_ID__:ho}),SK=ho({__NG_ENV_ID__:ho});function EI(t){return typeof t=="string"?t:t==null?"":String(t)}function x0A(t){return typeof t=="function"?t.name||t.toString():typeof t=="object"&&t!=null&&typeof t.type=="function"?t.type.name||t.type.toString():EI(t)}function MY(t,e){throw new Ae(-200,t)}function Y9(t,e){throw new Ae(-201,!1)}var Gi=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(Gi||{}),Rv;function kY(){return Rv}function oa(t){let e=Rv;return Rv=t,e}function SY(t,e,A){let i=lp(t);if(i&&i.providedIn=="root")return i.value===void 0?i.value=i.factory():i.value;if(A&Gi.Optional)return null;if(e!==void 0)return e;Y9(t,"Injector")}var L0A={},dI=L0A,xv="__NG_DI_FLAG__",Nm=class{injector;constructor(e){this.injector=e}retrieve(e,A){let i=A;return this.injector.get(e,i.optional?Xf:dI,i)}},_m="ngTempTokenPath",F0A="ngTokenPath",N0A=/\n/gm,_0A="\u0275",RK="__source";function G0A(t,e=Gi.Default){if($Q()===void 0)throw new Ae(-203,!1);if($Q()===null)return SY(t,void 0,e);{let A=$Q(),i;return A instanceof Nm?i=A.injector:i=A,i.get(t,e&Gi.Optional?null:void 0,e)}}function we(t,e=Gi.Default){return(kY()||G0A)(ns(t),e)}function f(t,e=Gi.Default){return we(t,gp(e))}function gp(t){return typeof t>"u"||typeof t=="number"?t:0|(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function Lv(t){let e=[];for(let A=0;A ");else if(typeof e=="object"){let o=[];for(let r in e)if(e.hasOwnProperty(r)){let s=e[r];o.push(r+":"+(typeof s=="string"?JSON.stringify(s):ra(s)))}n=`{${o.join(", ")}}`}return`${A}${i?"("+i+")":""}[${n}]: ${t.replace(N0A,` - `)}`}var MI=RY(pY("Optional"),8);var fh=RY(pY("SkipSelf"),4);function QI(t,e){let A=t.hasOwnProperty(Fm);return A?t[Fm]:null}function J0A(t,e,A){if(t.length!==e.length)return!1;for(let i=0;iArray.isArray(A)?J9(A,e):e(A))}function xY(t,e,A){e>=t.length?t.push(A):t.splice(e,0,A)}function Gm(t,e){return e>=t.length-1?t.pop():t.splice(e,1)[0]}function H0A(t,e){let A=[];for(let i=0;ie;){let o=n-2;t[n]=t[o],n--}t[e]=A,t[e+1]=i}}function Ip(t,e,A){let i=mh(t,e);return i>=0?t[i|1]=A:(i=~i,z0A(t,i,e,A)),i}function Ev(t,e){let A=mh(t,e);if(A>=0)return t[A|1]}function mh(t,e){return O0A(t,e,1)}function O0A(t,e,A){let i=0,n=t.length>>A;for(;n!==i;){let o=i+(n-i>>1),r=t[o<e?n=o:i=o+1}return~(n<{A.push(r)};return J9(e,r=>{let s=r;Fv(s,o,[],i)&&(n||=[],n.push(s))}),n!==void 0&&UY(n,o),A}function UY(t,e){for(let A=0;A{e(o,i)})}}function Fv(t,e,A,i){if(t=ns(t),!t)return!1;let n=null,o=MK(t),r=!o&&h2(t);if(!o&&!r){let a=t.ngModule;if(o=MK(a),o)n=a;else return!1}else{if(r&&!r.standalone)return!1;n=t}let s=i.has(n);if(r){if(s)return!1;if(i.add(n),r.dependencies){let a=typeof r.dependencies=="function"?r.dependencies():r.dependencies;for(let c of a)Fv(c,e,A,i)}}else if(o){if(o.imports!=null&&!s){i.add(n);let c;try{J9(o.imports,l=>{Fv(l,e,A,i)&&(c||=[],c.push(l))})}finally{}c!==void 0&&UY(c,e)}if(!s){let c=QI(n)||(()=>new n);e({provide:n,useFactory:c,deps:Ts},n),e({provide:FY,useValue:n,multi:!0},n),e({provide:Fd,useValue:()=>we(n),multi:!0},n)}let a=o.providers;if(a!=null&&!s){let c=t;T9(a,l=>{e(l,c)})}}else return!1;return n!==t&&t.providers!==void 0}function T9(t,e){for(let A of t)bY(A)&&(A=A.\u0275providers),Array.isArray(A)?T9(A,e):e(A)}var q0A=ho({provide:String,useValue:ho});function KY(t){return t!==null&&typeof t=="object"&&q0A in t}function V0A(t){return!!(t&&t.useExisting)}function Z0A(t){return!!(t&&t.useFactory)}function Nd(t){return typeof t=="function"}function W0A(t){return!!t.useClass}var Cp=new dA(""),km={},xK={},Qv;function dp(){return Qv===void 0&&(Qv=new Um),Qv}var pr=class{},Ih=class extends pr{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(e,A,i,n){super(),this.parent=A,this.source=i,this.scopes=n,_v(e,r=>this.processProvider(r)),this.records.set(LY,Md(void 0,this)),n.has("environment")&&this.records.set(pr,Md(void 0,this));let o=this.records.get(Cp);o!=null&&typeof o.value=="string"&&this.scopes.add(o.value),this.injectorDefTypes=new Set(this.get(FY,Ts,Gi.Self))}retrieve(e,A){let i=A;return this.get(e,i.optional?Xf:dI,i)}destroy(){ah(this),this._destroyed=!0;let e=Ti(null);try{for(let i of this._ngOnDestroyHooks)i.ngOnDestroy();let A=this._onDestroyHooks;this._onDestroyHooks=[];for(let i of A)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),Ti(e)}}onDestroy(e){return ah(this),this._onDestroyHooks.push(e),()=>this.removeOnDestroy(e)}runInContext(e){ah(this);let A=n0(this),i=oa(void 0),n;try{return e()}finally{n0(A),oa(i)}}get(e,A=dI,i=Gi.Default){if(ah(this),e.hasOwnProperty(SK))return e[SK](this);i=gp(i);let n,o=n0(this),r=oa(void 0);try{if(!(i&Gi.SkipSelf)){let a=this.records.get(e);if(a===void 0){let c=t2A(e)&&lp(e);c&&this.injectableDefInScope(c)?a=Md(Nv(e),km):a=null,this.records.set(e,a)}if(a!=null)return this.hydrate(e,a,i)}let s=i&Gi.Self?dp():this.parent;return A=i&Gi.Optional&&A===dI?null:A,s.get(e,A)}catch(s){if(s.name==="NullInjectorError"){if((s[_m]=s[_m]||[]).unshift(ra(e)),o)throw s;return K0A(s,e,"R3InjectorError",this.source)}else throw s}finally{oa(r),n0(o)}}resolveInjectorInitializers(){let e=Ti(null),A=n0(this),i=oa(void 0),n;try{let o=this.get(Fd,Ts,Gi.Self);for(let r of o)r()}finally{n0(A),oa(i),Ti(e)}}toString(){let e=[],A=this.records;for(let i of A.keys())e.push(ra(i));return`R3Injector[${e.join(", ")}]`}processProvider(e){e=ns(e);let A=Nd(e)?e:ns(e&&e.provide),i=$0A(e);if(!Nd(e)&&e.multi===!0){let n=this.records.get(A);n||(n=Md(void 0,km,!0),n.factory=()=>Lv(n.multi),this.records.set(A,n)),A=e,n.multi.push(e)}this.records.set(A,i)}hydrate(e,A,i){let n=Ti(null);try{return A.value===xK?MY(ra(e)):A.value===km&&(A.value=xK,A.value=A.factory(void 0,i)),typeof A.value=="object"&&A.value&&e2A(A.value)&&this._ngOnDestroyHooks.add(A.value),A.value}finally{Ti(n)}}injectableDefInScope(e){if(!e.providedIn)return!1;let A=ns(e.providedIn);return typeof A=="string"?A==="any"||this.scopes.has(A):this.injectorDefTypes.has(A)}removeOnDestroy(e){let A=this._onDestroyHooks.indexOf(e);A!==-1&&this._onDestroyHooks.splice(A,1)}};function Nv(t){let e=lp(t),A=e!==null?e.factory:QI(t);if(A!==null)return A;if(t instanceof dA)throw new Ae(204,!1);if(t instanceof Function)return X0A(t);throw new Ae(204,!1)}function X0A(t){if(t.length>0)throw new Ae(204,!1);let A=v0A(t);return A!==null?()=>A.factory(t):()=>new t}function $0A(t){if(KY(t))return Md(void 0,t.useValue);{let e=YY(t);return Md(e,km)}}function YY(t,e,A){let i;if(Nd(t)){let n=ns(t);return QI(n)||Nv(n)}else if(KY(t))i=()=>ns(t.useValue);else if(Z0A(t))i=()=>t.useFactory(...Lv(t.deps||[]));else if(V0A(t))i=(n,o)=>we(ns(t.useExisting),o!==void 0&&o&Gi.Optional?Gi.Optional:void 0);else{let n=ns(t&&(t.useClass||t.provide));if(A2A(t))i=()=>new n(...Lv(t.deps));else return QI(n)||Nv(n)}return i}function ah(t){if(t.destroyed)throw new Ae(205,!1)}function Md(t,e,A=!1){return{factory:t,value:e,multi:A?[]:void 0}}function A2A(t){return!!t.deps}function e2A(t){return t!==null&&typeof t=="object"&&typeof t.ngOnDestroy=="function"}function t2A(t){return typeof t=="function"||typeof t=="object"&&t instanceof dA}function _v(t,e){for(let A of t)Array.isArray(A)?_v(A,e):A&&bY(A)?_v(A.\u0275providers,e):e(A)}function ga(t,e){let A;t instanceof Ih?(ah(t),A=t):A=new Nm(t);let i,n=n0(A),o=oa(void 0);try{return e()}finally{n0(n),oa(o)}}function H9(){return kY()!==void 0||$Q()!=null}function z9(t){if(!H9())throw new Ae(-203,!1)}function i2A(t){let e=sa.ng;if(e&&e.\u0275compilerFacade)return e.\u0275compilerFacade;throw new Error("JIT compiler unavailable")}function n2A(t){return typeof t=="function"}var ig=0,ki=1,gi=2,ps=3,ol=4,Ia=5,_d=6,Km=7,Fr=8,Gd=9,c0=10,Wo=11,Ch=12,LK=13,Hd=14,Oa=15,hI=16,kd=17,l0=18,Bp=19,JY=20,E2=21,hv=22,uI=23,wc=24,xd=25,Nr=26,O9=1;var fI=7,Ym=8,Ud=9,ms=10;function Q2(t){return Array.isArray(t)&&typeof t[O9]=="object"}function C0(t){return Array.isArray(t)&&t[O9]===!0}function P9(t){return(t.flags&4)!==0}function zd(t){return t.componentOffset>-1}function Ep(t){return(t.flags&1)===1}function rl(t){return!!t.template}function Jm(t){return(t[gi]&512)!==0}function Od(t){return(t[gi]&256)===256}var Gv=class{previousValue;currentValue;firstChange;constructor(e,A,i){this.previousValue=e,this.currentValue=A,this.firstChange=i}isFirstChange(){return this.firstChange}};function TY(t,e,A,i){e!==null?e.applyValueToInputSignal(e,i):t[A]=i}var ti=(()=>{let t=()=>HY;return t.ngInherit=!0,t})();function HY(t){return t.type.prototype.ngOnChanges&&(t.setInput=r2A),o2A}function o2A(){let t=OY(this),e=t?.current;if(e){let A=t.previous;if(A===Xl)t.previous=e;else for(let i in e)A[i]=e[i];t.current=null,this.ngOnChanges(e)}}function r2A(t,e,A,i,n){let o=this.declaredInputs[i],r=OY(t)||s2A(t,{previous:Xl,current:null}),s=r.current||(r.current={}),a=r.previous,c=a[o];s[o]=new Gv(c&&c.currentValue,A,a===Xl),TY(t,e,n,A)}var zY="__ngSimpleChanges__";function OY(t){return t[zY]||null}function s2A(t,e){return t[zY]=e}var FK=null;var Ro=function(t,e=null,A){FK?.(t,e,A)},PY="svg",a2A="math";function $l(t){for(;Array.isArray(t);)t=t[ig];return t}function c2A(t){for(;Array.isArray(t);){if(typeof t[O9]=="object")return t;t=t[ig]}return null}function jY(t,e){return $l(e[t])}function ng(t,e){return $l(e[t.index])}function j9(t,e){return t.data[e]}function q9(t,e){return t[e]}function l2A(t,e,A,i){A>=t.data.length&&(t.data[A]=null,t.blueprint[A]=null),e[A]=i}function Ag(t,e){let A=e[t];return Q2(A)?A:A[ig]}function g2A(t){return(t[gi]&4)===4}function V9(t){return(t[gi]&128)===128}function I2A(t){return C0(t[ps])}function u2(t,e){return e==null?null:t[e]}function qY(t){t[kd]=0}function VY(t){t[gi]&1024||(t[gi]|=1024,V9(t)&&Pd(t))}function C2A(t,e){for(;t>0;)e=e[Hd],t--;return e}function Qp(t){return!!(t[gi]&9216||t[wc]?.dirty)}function Uv(t){t[c0].changeDetectionScheduler?.notify(8),t[gi]&64&&(t[gi]|=1024),Qp(t)&&Pd(t)}function Pd(t){t[c0].changeDetectionScheduler?.notify(0);let e=mI(t);for(;e!==null&&!(e[gi]&8192||(e[gi]|=8192,!V9(e)));)e=mI(e)}function ZY(t,e){if(Od(t))throw new Ae(911,!1);t[E2]===null&&(t[E2]=[]),t[E2].push(e)}function d2A(t,e){if(t[E2]===null)return;let A=t[E2].indexOf(e);A!==-1&&t[E2].splice(A,1)}function mI(t){let e=t[ps];return C0(e)?e[ps]:e}function Z9(t){return t[Km]??=[]}function W9(t){return t.cleanup??=[]}function B2A(t,e,A,i){let n=Z9(e);n.push(A),t.firstCreatePass&&W9(t).push(i,n.length-1)}var xi={lFrame:tJ(null),bindingsEnabled:!0,skipHydrationRootTNode:null};var Kv=!1;function E2A(){return xi.lFrame.elementDepthCount}function Q2A(){xi.lFrame.elementDepthCount++}function h2A(){xi.lFrame.elementDepthCount--}function X9(){return xi.bindingsEnabled}function WY(){return xi.skipHydrationRootTNode!==null}function u2A(t){return xi.skipHydrationRootTNode===t}function f2A(){xi.skipHydrationRootTNode=null}function ei(){return xi.lFrame.lView}function Yo(){return xi.lFrame.tView}function RA(t){return xi.lFrame.contextLView=t,t[Fr]}function xA(t){return xi.lFrame.contextLView=null,t}function os(){let t=XY();for(;t!==null&&t.type===64;)t=t.parent;return t}function XY(){return xi.lFrame.currentTNode}function m2A(){let t=xi.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}function kI(t,e){let A=xi.lFrame;A.currentTNode=t,A.isParent=e}function $9(){return xi.lFrame.isParent}function Ab(){xi.lFrame.isParent=!1}function p2A(){return xi.lFrame.contextLView}function $Y(){return Kv}function Tm(t){let e=Kv;return Kv=t,e}function wh(){let t=xi.lFrame,e=t.bindingRootIndex;return e===-1&&(e=t.bindingRootIndex=t.tView.bindingStartIndex),e}function w2A(){return xi.lFrame.bindingIndex}function D2A(t){return xi.lFrame.bindingIndex=t}function f2(){return xi.lFrame.bindingIndex++}function eb(t){let e=xi.lFrame,A=e.bindingIndex;return e.bindingIndex=e.bindingIndex+t,A}function y2A(){return xi.lFrame.inI18n}function v2A(t,e){let A=xi.lFrame;A.bindingIndex=A.bindingRootIndex=t,Yv(e)}function b2A(){return xi.lFrame.currentDirectiveIndex}function Yv(t){xi.lFrame.currentDirectiveIndex=t}function tb(t){let e=xi.lFrame.currentDirectiveIndex;return e===-1?null:t[e]}function ib(){return xi.lFrame.currentQueryIndex}function hp(t){xi.lFrame.currentQueryIndex=t}function M2A(t){let e=t[ki];return e.type===2?e.declTNode:e.type===1?t[Ia]:null}function AJ(t,e,A){if(A&Gi.SkipSelf){let n=e,o=t;for(;n=n.parent,n===null&&!(A&Gi.Host);)if(n=M2A(o),n===null||(o=o[Hd],n.type&10))break;if(n===null)return!1;e=n,t=o}let i=xi.lFrame=eJ();return i.currentTNode=e,i.lView=t,!0}function nb(t){let e=eJ(),A=t[ki];xi.lFrame=e,e.currentTNode=A.firstChild,e.lView=t,e.tView=A,e.contextLView=t,e.bindingIndex=A.bindingStartIndex,e.inI18n=!1}function eJ(){let t=xi.lFrame,e=t===null?null:t.child;return e===null?tJ(t):e}function tJ(t){let e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return t!==null&&(t.child=e),e}function iJ(){let t=xi.lFrame;return xi.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}var nJ=iJ;function ob(){let t=iJ();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function k2A(t){return(xi.lFrame.contextLView=C2A(t,xi.lFrame.contextLView))[Fr]}function d0(){return xi.lFrame.selectedIndex}function pI(t){xi.lFrame.selectedIndex=t}function Dh(){let t=xi.lFrame;return j9(t.tView,t.selectedIndex)}function ar(){xi.lFrame.currentNamespace=PY}function SI(){S2A()}function S2A(){xi.lFrame.currentNamespace=null}function R2A(){return xi.lFrame.currentNamespace}var oJ=!0;function up(){return oJ}function fp(t){oJ=t}function x2A(t,e,A){let{ngOnChanges:i,ngOnInit:n,ngDoCheck:o}=e.type.prototype;if(i){let r=HY(e);(A.preOrderHooks??=[]).push(t,r),(A.preOrderCheckHooks??=[]).push(t,r)}n&&(A.preOrderHooks??=[]).push(0-t,n),o&&((A.preOrderHooks??=[]).push(t,o),(A.preOrderCheckHooks??=[]).push(t,o))}function rb(t,e){for(let A=e.directiveStart,i=e.directiveEnd;A=i)break}else e[a]<0&&(t[kd]+=65536),(s>14>16&&(t[gi]&3)===e&&(t[gi]+=16384,NK(s,o)):NK(s,o)}var Ld=-1,wI=class{factory;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(e,A,i){this.factory=e,this.canSeeViewProviders=A,this.injectImpl=i}};function F2A(t){return(t.flags&8)!==0}function N2A(t){return(t.flags&16)!==0}function _2A(t,e,A){let i=0;for(;ie){r=o-1;break}}}for(;o>16}function zm(t,e){let A=U2A(t),i=e;for(;A>0;)i=i[Hd],A--;return i}var Jv=!0;function Om(t){let e=Jv;return Jv=t,e}var K2A=256,cJ=K2A-1,lJ=5,Y2A=0,Wl={};function J2A(t,e,A){let i;typeof A=="string"?i=A.charCodeAt(0)||0:A.hasOwnProperty(lh)&&(i=A[lh]),i==null&&(i=A[lh]=Y2A++);let n=i&cJ,o=1<>lJ)]|=o}function Pm(t,e){let A=gJ(t,e);if(A!==-1)return A;let i=e[ki];i.firstCreatePass&&(t.injectorIndex=e.length,fv(i.data,t),fv(e,null),fv(i.blueprint,null));let n=sb(t,e),o=t.injectorIndex;if(aJ(n)){let r=Hm(n),s=zm(n,e),a=s[ki].data;for(let c=0;c<8;c++)e[o+c]=s[r+c]|a[r+c]}return e[o+8]=n,o}function fv(t,e){t.push(0,0,0,0,0,0,0,0,e)}function gJ(t,e){return t.injectorIndex===-1||t.parent&&t.parent.injectorIndex===t.injectorIndex||e[t.injectorIndex+8]===null?-1:t.injectorIndex}function sb(t,e){if(t.parent&&t.parent.injectorIndex!==-1)return t.parent.injectorIndex;let A=0,i=null,n=e;for(;n!==null;){if(i=EJ(n),i===null)return Ld;if(A++,n=n[Hd],i.injectorIndex!==-1)return i.injectorIndex|A<<16}return Ld}function Tv(t,e,A){J2A(t,e,A)}function T2A(t,e){if(e==="class")return t.classes;if(e==="style")return t.styles;let A=t.attrs;if(A){let i=A.length,n=0;for(;n>20,I=i?s:s+l,C=n?s+l:c;for(let d=I;d=a&&B.type===A)return d}if(n){let d=r[a];if(d&&rl(d)&&d.type===A)return a}return null}function dh(t,e,A,i,n){let o=t[A],r=e.data;if(o instanceof wI){let s=o;s.resolving&&MY(x0A(r[A]));let a=Om(s.canSeeViewProviders);s.resolving=!0;let c,l=s.injectImpl?oa(s.injectImpl):null,I=AJ(t,i,Gi.Default);try{o=t[A]=s.factory(void 0,n,r,t,i),e.firstCreatePass&&A>=i.directiveStart&&x2A(A,r[A],e)}finally{l!==null&&oa(l),Om(a),s.resolving=!1,nJ()}}return o}function z2A(t){if(typeof t=="string")return t.charCodeAt(0)||0;let e=t.hasOwnProperty(lh)?t[lh]:void 0;return typeof e=="number"?e>=0?e&cJ:O2A:e}function GK(t,e,A){let i=1<>lJ)]&i)}function UK(t,e){return!(t&Gi.Self)&&!(t&Gi.Host&&e)}var BI=class{_tNode;_lView;constructor(e,A){this._tNode=e,this._lView=A}get(e,A,i){return dJ(this._tNode,this._lView,e,gp(i),A)}};function O2A(){return new BI(os(),ei())}function Hi(t){return uh(()=>{let e=t.prototype.constructor,A=e[Fm]||Hv(e),i=Object.prototype,n=Object.getPrototypeOf(t.prototype).constructor;for(;n&&n!==i;){let o=n[Fm]||Hv(n);if(o&&o!==A)return o;n=Object.getPrototypeOf(n)}return o=>new o})}function Hv(t){return wY(t)?()=>{let e=Hv(ns(t));return e&&e()}:QI(t)}function P2A(t,e,A,i,n){let o=t,r=e;for(;o!==null&&r!==null&&r[gi]&2048&&!Jm(r);){let s=BJ(o,r,A,i|Gi.Self,Wl);if(s!==Wl)return s;let a=o.parent;if(!a){let c=r[JY];if(c){let l=c.get(A,Wl,i);if(l!==Wl)return l}a=EJ(r),r=r[Hd]}o=a}return n}function EJ(t){let e=t[ki],A=e.type;return A===2?e.declTNode:A===1?t[Ia]:null}function ab(t){return T2A(os(),t)}function KK(t,e=null,A=null,i){let n=QJ(t,e,A,i);return n.resolveInjectorInitializers(),n}function QJ(t,e=null,A=null,i,n=new Set){let o=[A||Ts,j0A(t)];return i=i||(typeof t=="object"?void 0:ra(t)),new Ih(o,e||dp(),i||null,n)}var Rt=class t{static THROW_IF_NOT_FOUND=dI;static NULL=new Um;static create(e,A){if(Array.isArray(e))return KK({name:""},A,e,"");{let i=e.name??"";return KK({name:i},e.parent,e.providers,i)}}static \u0275prov=NA({token:t,providedIn:"any",factory:()=>we(LY)});static __NG_ELEMENT_ID__=-1};var wr=class{attributeName;constructor(e){this.attributeName=e}__NG_ELEMENT_ID__=()=>ab(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}},j2A=new dA("");j2A.__NG_ELEMENT_ID__=t=>{let e=os();if(e===null)throw new Ae(204,!1);if(e.type&2)return e.value;if(t&Gi.Optional)return null;throw new Ae(204,!1)};var hJ=!1,m2=(()=>{class t{static __NG_ELEMENT_ID__=q2A;static __NG_ENV_ID__=A=>A}return t})(),jm=class extends m2{_lView;constructor(e){super(),this._lView=e}onDestroy(e){let A=this._lView;return Od(A)?(e(),()=>{}):(ZY(A,e),()=>d2A(A,e))}};function q2A(){return new jm(ei())}var DI=class{},cb=new dA("",{providedIn:"root",factory:()=>!1});var uJ=new dA(""),fJ=new dA(""),B0=(()=>{class t{taskId=0;pendingTasks=new Set;get _hasPendingTasks(){return this.hasPendingTasks.value}hasPendingTasks=new Mi(!1);add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);let A=this.taskId++;return this.pendingTasks.add(A),A}has(A){return this.pendingTasks.has(A)}remove(A){this.pendingTasks.delete(A),this.pendingTasks.size===0&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static \u0275prov=NA({token:t,providedIn:"root",factory:()=>new t})}return t})();var zv=class extends OA{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(e=!1){super(),this.__isAsync=e,H9()&&(this.destroyRef=f(m2,{optional:!0})??void 0,this.pendingTasks=f(B0,{optional:!0})??void 0)}emit(e){let A=Ti(null);try{super.next(e)}finally{Ti(A)}}subscribe(e,A,i){let n=e,o=A||(()=>null),r=i;if(e&&typeof e=="object"){let a=e;n=a.next?.bind(a),o=a.error?.bind(a),r=a.complete?.bind(a)}this.__isAsync&&(o=this.wrapInTimeout(o),n&&(n=this.wrapInTimeout(n)),r&&(r=this.wrapInTimeout(r)));let s=super.subscribe({next:n,error:o,complete:r});return e instanceof Kt&&e.add(s),s}wrapInTimeout(e){return A=>{let i=this.pendingTasks?.add();setTimeout(()=>{try{e(A)}finally{i!==void 0&&this.pendingTasks?.remove(i)}})}}},WA=zv;function Bh(...t){}function mJ(t){let e,A;function i(){t=Bh;try{A!==void 0&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(A),e!==void 0&&clearTimeout(e)}catch{}}return e=setTimeout(()=>{t(),i()}),typeof requestAnimationFrame=="function"&&(A=requestAnimationFrame(()=>{t(),i()})),()=>i()}function YK(t){return queueMicrotask(()=>t()),()=>{t=Bh}}var lb="isAngularZone",qm=lb+"_ID",V2A=0,Qe=class t{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new WA(!1);onMicrotaskEmpty=new WA(!1);onStable=new WA(!1);onError=new WA(!1);constructor(e){let{enableLongStackTrace:A=!1,shouldCoalesceEventChangeDetection:i=!1,shouldCoalesceRunChangeDetection:n=!1,scheduleInRootZone:o=hJ}=e;if(typeof Zone>"u")throw new Ae(908,!1);Zone.assertZonePatched();let r=this;r._nesting=0,r._outer=r._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),A&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!n&&i,r.shouldCoalesceRunChangeDetection=n,r.callbackScheduled=!1,r.scheduleInRootZone=o,X2A(r)}static isInAngularZone(){return typeof Zone<"u"&&Zone.current.get(lb)===!0}static assertInAngularZone(){if(!t.isInAngularZone())throw new Ae(909,!1)}static assertNotInAngularZone(){if(t.isInAngularZone())throw new Ae(909,!1)}run(e,A,i){return this._inner.run(e,A,i)}runTask(e,A,i,n){let o=this._inner,r=o.scheduleEventTask("NgZoneEvent: "+n,e,Z2A,Bh,Bh);try{return o.runTask(r,A,i)}finally{o.cancelTask(r)}}runGuarded(e,A,i){return this._inner.runGuarded(e,A,i)}runOutsideAngular(e){return this._outer.run(e)}},Z2A={};function gb(t){if(t._nesting==0&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function W2A(t){if(t.isCheckStableRunning||t.callbackScheduled)return;t.callbackScheduled=!0;function e(){mJ(()=>{t.callbackScheduled=!1,Ov(t),t.isCheckStableRunning=!0,gb(t),t.isCheckStableRunning=!1})}t.scheduleInRootZone?Zone.root.run(()=>{e()}):t._outer.run(()=>{e()}),Ov(t)}function X2A(t){let e=()=>{W2A(t)},A=V2A++;t._inner=t._inner.fork({name:"angular",properties:{[lb]:!0,[qm]:A,[qm+A]:!0},onInvokeTask:(i,n,o,r,s,a)=>{if($2A(a))return i.invokeTask(o,r,s,a);try{return JK(t),i.invokeTask(o,r,s,a)}finally{(t.shouldCoalesceEventChangeDetection&&r.type==="eventTask"||t.shouldCoalesceRunChangeDetection)&&e(),TK(t)}},onInvoke:(i,n,o,r,s,a,c)=>{try{return JK(t),i.invoke(o,r,s,a,c)}finally{t.shouldCoalesceRunChangeDetection&&!t.callbackScheduled&&!A1A(a)&&e(),TK(t)}},onHasTask:(i,n,o,r)=>{i.hasTask(o,r),n===o&&(r.change=="microTask"?(t._hasPendingMicrotasks=r.microTask,Ov(t),gb(t)):r.change=="macroTask"&&(t.hasPendingMacrotasks=r.macroTask))},onHandleError:(i,n,o,r)=>(i.handleError(o,r),t.runOutsideAngular(()=>t.onError.emit(r)),!1)})}function Ov(t){t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&t.callbackScheduled===!0?t.hasPendingMicrotasks=!0:t.hasPendingMicrotasks=!1}function JK(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function TK(t){t._nesting--,gb(t)}var Vm=class{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new WA;onMicrotaskEmpty=new WA;onStable=new WA;onError=new WA;run(e,A,i){return e.apply(A,i)}runGuarded(e,A,i){return e.apply(A,i)}runOutsideAngular(e){return e()}runTask(e,A,i,n){return e.apply(A,i)}};function $2A(t){return pJ(t,"__ignore_ng_zone__")}function A1A(t){return pJ(t,"__scheduler_tick__")}function pJ(t,e){return!Array.isArray(t)||t.length!==1?!1:t[0]?.data?.[e]===!0}function e1A(t="zone.js",e){return t==="noop"?new Vm:t==="zone.js"?new Qe(e):t}var aa=class{_console=console;handleError(e){this._console.error("ERROR",e)}},t1A=new dA("",{providedIn:"root",factory:()=>{let t=f(Qe),e=f(aa);return A=>t.runOutsideAngular(()=>e.handleError(A))}});function HK(t,e){return mY(t,e)}function i1A(t){return mY(fY,t)}var wJ=(HK.required=i1A,HK);function n1A(){return jd(os(),ei())}function jd(t,e){return new ee(ng(t,e))}var ee=(()=>{class t{nativeElement;constructor(A){this.nativeElement=A}static __NG_ELEMENT_ID__=n1A}return t})();function DJ(t){return t instanceof ee?t.nativeElement:t}function p2(t){return typeof t=="function"&&t[ia]!==void 0}function Jo(t,e){let A=X7(t,e?.equal),i=A[ia];return A.set=n=>XQ(i,n),A.update=n=>$7(i,n),A.asReadonly=o1A.bind(A),A}function o1A(){let t=this[ia];if(t.readonlyFn===void 0){let e=()=>this();e[ia]=t,t.readonlyFn=e}return t.readonlyFn}function yJ(t){return p2(t)&&typeof t.set=="function"}function r1A(){return this._results[Symbol.iterator]()}var ca=class{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new OA}constructor(e=!1){this._emitDistinctChangesOnly=e}get(e){return this._results[e]}map(e){return this._results.map(e)}filter(e){return this._results.filter(e)}find(e){return this._results.find(e)}reduce(e,A){return this._results.reduce(e,A)}forEach(e){this._results.forEach(e)}some(e){return this._results.some(e)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(e,A){this.dirty=!1;let i=T0A(e);(this._changesDetected=!J0A(this._results,i,A))&&(this._results=i,this.length=i.length,this.last=i[this.length-1],this.first=i[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(e){this._onDirty=e}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}[Symbol.iterator]=r1A};function vJ(t){return(t.flags&128)===128}var bJ=function(t){return t[t.OnPush=0]="OnPush",t[t.Default=1]="Default",t}(bJ||{}),MJ=new Map,s1A=0;function a1A(){return s1A++}function c1A(t){MJ.set(t[Bp],t)}function Pv(t){MJ.delete(t[Bp])}var zK="__ngContext__";function qd(t,e){Q2(e)?(t[zK]=e[Bp],c1A(e)):t[zK]=e}function kJ(t){return RJ(t[Ch])}function SJ(t){return RJ(t[ol])}function RJ(t){for(;t!==null&&!C0(t);)t=t[ol];return t}var jv;function xJ(t){jv=t}function LJ(){if(jv!==void 0)return jv;if(typeof document<"u")return document;throw new Ae(210,!1)}var Vd=new dA("",{providedIn:"root",factory:()=>l1A}),l1A="ng",Ib=new dA(""),og=new dA("",{providedIn:"platform",factory:()=>"unknown"});var Si=new dA(""),yh=new dA("",{providedIn:"root",factory:()=>LJ().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});var g1A="h",I1A="b";var FJ=!1,C1A=new dA("",{providedIn:"root",factory:()=>FJ});var Cb=function(t){return t[t.CHANGE_DETECTION=0]="CHANGE_DETECTION",t[t.AFTER_NEXT_RENDER=1]="AFTER_NEXT_RENDER",t}(Cb||{}),Zd=new dA(""),OK=new Set;function E0(t){OK.has(t)||(OK.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}var db=(()=>{class t{view;node;constructor(A,i){this.view=A,this.node=i}static __NG_ELEMENT_ID__=d1A}return t})();function d1A(){return new db(ei(),os())}var Sd=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(Sd||{}),NJ=(()=>{class t{impl=null;execute(){this.impl?.execute()}static \u0275prov=NA({token:t,providedIn:"root",factory:()=>new t})}return t})(),B1A=[Sd.EarlyRead,Sd.Write,Sd.MixedReadWrite,Sd.Read],E1A=(()=>{class t{ngZone=f(Qe);scheduler=f(DI);errorHandler=f(aa,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){f(Zd,{optional:!0})}execute(){let A=this.sequences.size>0;A&&Ro(16),this.executing=!0;for(let i of B1A)for(let n of this.sequences)if(!(n.erroredOrDestroyed||!n.hooks[i]))try{n.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>{let o=n.hooks[i];return o(n.pipelinedValue)},n.snapshot))}catch(o){n.erroredOrDestroyed=!0,this.errorHandler?.handleError(o)}this.executing=!1;for(let i of this.sequences)i.afterRun(),i.once&&(this.sequences.delete(i),i.destroy());for(let i of this.deferredRegistrations)this.sequences.add(i);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),A&&Ro(17)}register(A){let{view:i}=A;i!==void 0?((i[xd]??=[]).push(A),Pd(i),i[gi]|=8192):this.executing?this.deferredRegistrations.add(A):this.addSequence(A)}addSequence(A){this.sequences.add(A),this.scheduler.notify(7)}unregister(A){this.executing&&this.sequences.has(A)?(A.erroredOrDestroyed=!0,A.pipelinedValue=void 0,A.once=!0):(this.sequences.delete(A),this.deferredRegistrations.delete(A))}maybeTrace(A,i){return i?i.run(Cb.AFTER_NEXT_RENDER,A):A()}static \u0275prov=NA({token:t,providedIn:"root",factory:()=>new t})}return t})(),qv=class{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(e,A,i,n,o,r=null){this.impl=e,this.hooks=A,this.view=i,this.once=n,this.snapshot=r,this.unregisterOnDestroy=o?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();let e=this.view?.[xd];e&&(this.view[xd]=e.filter(A=>A!==this))}};function vh(t,e){!e?.injector&&z9(vh);let A=e?.injector??f(Rt);return E0("NgAfterRender"),_J(t,A,e,!1)}function To(t,e){!e?.injector&&z9(To);let A=e?.injector??f(Rt);return E0("NgAfterNextRender"),_J(t,A,e,!0)}function Q1A(t,e){if(t instanceof Function){let A=[void 0,void 0,void 0,void 0];return A[e]=t,A}else return[t.earlyRead,t.write,t.mixedReadWrite,t.read]}function _J(t,e,A,i){let n=e.get(NJ);n.impl??=e.get(E1A);let o=e.get(Zd,null,{optional:!0}),r=A?.phase??Sd.MixedReadWrite,s=A?.manualCleanup!==!0?e.get(m2):null,a=e.get(db,null,{optional:!0}),c=new qv(n.impl,Q1A(t,r),a?.view,i,s,o?.snapshot(null));return n.impl.register(c),c}var h1A=(t,e,A,i)=>{};function u1A(t,e,A,i){h1A(t,e,A,i)}var f1A=()=>null;function GJ(t,e,A=!1){return f1A(t,e,A)}function UJ(t,e){let A=t.contentQueries;if(A!==null){let i=Ti(null);try{for(let n=0;nt,createScript:t=>t,createScriptURL:t=>t})}catch{}return Dm}function mp(t){return m1A()?.createHTML(t)||t}var ym;function p1A(){if(ym===void 0&&(ym=null,sa.trustedTypes))try{ym=sa.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return ym}function PK(t){return p1A()?.createHTML(t)||t}var g0=class{changingThisBreaksApplicationSecurity;constructor(e){this.changingThisBreaksApplicationSecurity=e}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${uY})`}},Zv=class extends g0{getTypeName(){return"HTML"}},Wv=class extends g0{getTypeName(){return"Style"}},Xv=class extends g0{getTypeName(){return"Script"}},$v=class extends g0{getTypeName(){return"URL"}},A9=class extends g0{getTypeName(){return"ResourceURL"}};function sl(t){return t instanceof g0?t.changingThisBreaksApplicationSecurity:t}function w2(t,e){let A=w1A(t);if(A!=null&&A!==e){if(A==="ResourceURL"&&e==="URL")return!0;throw new Error(`Required a safe ${e}, got a ${A} (see ${uY})`)}return A===e}function w1A(t){return t instanceof g0&&t.getTypeName()||null}function KJ(t){return new Zv(t)}function YJ(t){return new Wv(t)}function JJ(t){return new Xv(t)}function TJ(t){return new $v(t)}function HJ(t){return new A9(t)}function D1A(t){let e=new t9(t);return y1A()?new e9(e):e}var e9=class{inertDocumentHelper;constructor(e){this.inertDocumentHelper=e}getInertBodyElement(e){e=""+e;try{let A=new window.DOMParser().parseFromString(mp(e),"text/html").body;return A===null?this.inertDocumentHelper.getInertBodyElement(e):(A.firstChild?.remove(),A)}catch{return null}}},t9=class{defaultDoc;inertDocument;constructor(e){this.defaultDoc=e,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(e){let A=this.inertDocument.createElement("template");return A.innerHTML=mp(e),A}};function y1A(){try{return!!new window.DOMParser().parseFromString(mp(""),"text/html")}catch{return!1}}var v1A=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function pp(t){return t=String(t),t.match(v1A)?t:"unsafe:"+t}function Q0(t){let e={};for(let A of t.split(","))e[A]=!0;return e}function bh(...t){let e={};for(let A of t)for(let i in A)A.hasOwnProperty(i)&&(e[i]=!0);return e}var zJ=Q0("area,br,col,hr,img,wbr"),OJ=Q0("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),PJ=Q0("rp,rt"),b1A=bh(PJ,OJ),M1A=bh(OJ,Q0("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),k1A=bh(PJ,Q0("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),jK=bh(zJ,M1A,k1A,b1A),jJ=Q0("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),S1A=Q0("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),R1A=Q0("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"),x1A=bh(jJ,S1A,R1A),L1A=Q0("script,style,template"),i9=class{sanitizedSomething=!1;buf=[];sanitizeChildren(e){let A=e.firstChild,i=!0,n=[];for(;A;){if(A.nodeType===Node.ELEMENT_NODE?i=this.startElement(A):A.nodeType===Node.TEXT_NODE?this.chars(A.nodeValue):this.sanitizedSomething=!0,i&&A.firstChild){n.push(A),A=_1A(A);continue}for(;A;){A.nodeType===Node.ELEMENT_NODE&&this.endElement(A);let o=N1A(A);if(o){A=o;break}A=n.pop()}}return this.buf.join("")}startElement(e){let A=qK(e).toLowerCase();if(!jK.hasOwnProperty(A))return this.sanitizedSomething=!0,!L1A.hasOwnProperty(A);this.buf.push("<"),this.buf.push(A);let i=e.attributes;for(let n=0;n"),!0}endElement(e){let A=qK(e).toLowerCase();jK.hasOwnProperty(A)&&!zJ.hasOwnProperty(A)&&(this.buf.push(""))}chars(e){this.buf.push(VK(e))}};function F1A(t,e){return(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}function N1A(t){let e=t.nextSibling;if(e&&t!==e.previousSibling)throw qJ(e);return e}function _1A(t){let e=t.firstChild;if(e&&F1A(t,e))throw qJ(e);return e}function qK(t){let e=t.nodeName;return typeof e=="string"?e:"FORM"}function qJ(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}var G1A=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,U1A=/([^\#-~ |!])/g;function VK(t){return t.replace(/&/g,"&").replace(G1A,function(e){let A=e.charCodeAt(0),i=e.charCodeAt(1);return"&#"+((A-55296)*1024+(i-56320)+65536)+";"}).replace(U1A,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(//g,">")}var vm;function Eb(t,e){let A=null;try{vm=vm||D1A(t);let i=e?String(e):"";A=vm.getInertBodyElement(i);let n=5,o=i;do{if(n===0)throw new Error("Failed to sanitize html because the input is unstable");n--,i=o,o=A.innerHTML,A=vm.getInertBodyElement(i)}while(i!==o);let s=new i9().sanitizeChildren(ZK(A)||A);return mp(s)}finally{if(A){let i=ZK(A)||A;for(;i.firstChild;)i.firstChild.remove()}}}function ZK(t){return"content"in t&&K1A(t)?t.content:null}function K1A(t){return t.nodeType===Node.ELEMENT_NODE&&t.nodeName==="TEMPLATE"}var jr=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(jr||{});function RI(t){let e=VJ();return e?PK(e.sanitize(jr.HTML,t)||""):w2(t,"HTML")?PK(sl(t)):Eb(LJ(),EI(t))}function ja(t){let e=VJ();return e?e.sanitize(jr.URL,t)||"":w2(t,"URL")?sl(t):pp(EI(t))}function VJ(){let t=ei();return t&&t[c0].sanitizer}var Y1A=/^>|^->||--!>|)/g,T1A="\u200B$1\u200B";function H1A(t){return t.replace(Y1A,e=>e.replace(J1A,T1A))}function wp(t){return t.ownerDocument.defaultView}function Wd(t){return t.ownerDocument}function ZJ(t){return t instanceof Function?t():t}function z1A(t,e,A){let i=t.length;for(;;){let n=t.indexOf(e,A);if(n===-1)return n;if(n===0||t.charCodeAt(n-1)<=32){let o=e.length;if(n+o===i||t.charCodeAt(n+o)<=32)return n}A=n+1}}var WJ="ng-template";function O1A(t,e,A,i){let n=0;if(i){for(;n-1){let o;for(;++no?I="":I=n[l+1].toLowerCase(),i&2&&c!==I){if(il(i))return!1;r=!0}}}}return il(i)||r}function il(t){return(t&1)===0}function q1A(t,e,A,i){if(e===null)return-1;let n=0;if(i||!A){let o=!1;for(;n-1)for(A++;A0?'="'+s+'"':"")+"]"}else i&8?n+="."+r:i&4&&(n+=" "+r);else n!==""&&!il(r)&&(e+=WK(o,n),n=""),i=r,o=o||!il(i);A++}return n!==""&&(e+=WK(o,n)),e}function AIA(t){return t.map($1A).join(",")}function eIA(t){let e=[],A=[],i=1,n=2;for(;iNr&&nT(t,e,Nr,!1),Ro(r?2:0,n),A(i,n)}finally{pI(o),Ro(r?3:1,n)}}function yp(t,e,A){EIA(t,e,A),(A.flags&64)===64&&QIA(t,e,A)}function mb(t,e,A=ng){let i=e.localNames;if(i!==null){let n=e.index+1;for(let o=0;onull;function dIA(t){return t==="class"?"className":t==="for"?"htmlFor":t==="formaction"?"formAction":t==="innerHtml"?"innerHTML":t==="readonly"?"readOnly":t==="tabindex"?"tabIndex":t}function vp(t,e,A,i,n,o,r,s){if(!s&&wb(e,t,A,i,n)){zd(e)&&BIA(A,e.index);return}if(e.type&3){let a=ng(e,A);i=dIA(i),n=r!=null?r(n,e.value||"",i):n,o.setProperty(a,i,n)}else e.type&12}function BIA(t,e){let A=Ag(e,t);A[gi]&16||(A[gi]|=64)}function EIA(t,e,A){let i=A.directiveStart,n=A.directiveEnd;zd(A)&&lIA(e,A,t.data[i+A.componentOffset]),t.firstCreatePass||Pm(A,e);let o=A.initialInputs;for(let r=i;r=0?i[s]():i[-s].unsubscribe(),r+=2}else{let s=i[A[r+1]];A[r].call(s)}i!==null&&(e[Km]=null);let n=e[E2];if(n!==null){e[E2]=null;for(let r=0;r{Pd(t.lView)},consumerOnSignalRead(){this.lView[wc]=this}});function HIA(t){let e=t[wc]??Object.create(zIA);return e.lView=t,e}var zIA=Ye(rA({},Bd),{consumerIsAlwaysLive:!0,kind:"template",consumerMarkedDirty:t=>{let e=mI(t.lView);for(;e&&!dT(e[ki]);)e=mI(e);e&&VY(e)},consumerOnSignalRead(){this.lView[wc]=this}});function dT(t){return t.type!==2}function BT(t){if(t[uI]===null)return;let e=!0;for(;e;){let A=!1;for(let i of t[uI])i.dirty&&(A=!0,i.zone===null||Zone.current===i.zone?i.run():i.zone.run(()=>i.run()));e=A&&!!(t[gi]&8192)}}var OIA=100;function ET(t,e=!0,A=0){let n=t[c0].rendererFactory,o=!1;o||n.begin?.();try{PIA(t,A)}catch(r){throw e&&pIA(t,r),r}finally{o||n.end?.()}}function PIA(t,e){let A=$Y();try{Tm(!0),r9(t,e);let i=0;for(;Qp(t);){if(i===OIA)throw new Ae(103,!1);i++,r9(t,1)}}finally{Tm(A)}}function jIA(t,e,A,i){if(Od(e))return;let n=e[gi],o=!1,r=!1;nb(e);let s=!0,a=null,c=null;o||(dT(t)?(c=KIA(e),a=ZQ(c)):j7()===null?(s=!1,c=HIA(e),a=ZQ(c)):e[wc]&&(WQ(e[wc]),e[wc]=null));try{qY(e),D2A(t.bindingStartIndex),A!==null&&oT(t,e,A,2,i);let l=(n&3)===3;if(!o)if(l){let d=t.preOrderCheckHooks;d!==null&&Sm(e,d,null)}else{let d=t.preOrderHooks;d!==null&&Rm(e,d,0,null),uv(e,0)}if(r||qIA(e),BT(e),QT(e,0),t.contentQueries!==null&&UJ(t,e),!o)if(l){let d=t.contentCheckHooks;d!==null&&Sm(e,d)}else{let d=t.contentHooks;d!==null&&Rm(e,d,1),uv(e,1)}ZIA(t,e);let I=t.components;I!==null&&uT(e,I,0);let C=t.viewQuery;if(C!==null&&Vv(2,C,i),!o)if(l){let d=t.viewCheckHooks;d!==null&&Sm(e,d)}else{let d=t.viewHooks;d!==null&&Rm(e,d,2),uv(e,2)}if(t.firstUpdatePass===!0&&(t.firstUpdatePass=!1),e[hv]){for(let d of e[hv])d();e[hv]=null}o||(IT(e),e[gi]&=-73)}catch(l){throw o||Pd(e),l}finally{c!==null&&(Pf(c,a),s&&JIA(c)),ob()}}function QT(t,e){for(let A=kJ(t);A!==null;A=SJ(A))for(let i=ms;i0&&(t[A-1][ol]=i[ol]);let o=Gm(t,ms+e);bIA(i[ki],i);let r=o[l0];r!==null&&r.detachView(o[ki]),i[ps]=null,i[ol]=null,i[gi]&=-129}return i}function WIA(t,e,A,i){let n=ms+i,o=A.length;i>0&&(A[n-1][ol]=e),i-1&&(Eh(e,i),Gm(A,i))}this._attachedToViewContainer=!1}bp(this._lView[ki],this._lView)}onDestroy(e){ZY(this._lView,e)}markForCheck(){kb(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[gi]&=-129}reattach(){Uv(this._lView),this._lView[gi]|=128}detectChanges(){this._lView[gi]|=1024,ET(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new Ae(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;let e=Jm(this._lView),A=this._lView[hI];A!==null&&!e&&bb(A,this._lView),sT(this._lView[ki],this._lView)}attachToAppRef(e){if(this._attachedToViewContainer)throw new Ae(902,!1);this._appRef=e;let A=Jm(this._lView),i=this._lView[hI];i!==null&&!A&&wT(i,this._lView),Uv(this._lView)}};var wn=(()=>{class t{static __NG_ELEMENT_ID__=ACA}return t})(),XIA=wn,$IA=class extends XIA{_declarationLView;_declarationTContainer;elementRef;constructor(e,A,i){super(),this._declarationLView=e,this._declarationTContainer=A,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(e,A){return this.createEmbeddedViewImpl(e,A)}createEmbeddedViewImpl(e,A,i){let n=Mh(this._declarationLView,this._declarationTContainer,e,{embeddedViewInjector:A,dehydratedView:i});return new Qh(n)}};function ACA(){return Sp(os(),ei())}function Sp(t,e){return t.type&4?new $IA(e,t,jd(t,e)):null}function Sh(t,e,A,i,n){let o=t.data[e];if(o===null)o=eCA(t,e,A,i,n),y2A()&&(o.flags|=32);else if(o.type&64){o.type=A,o.value=i,o.attrs=n;let r=m2A();o.injectorIndex=r===null?-1:r.injectorIndex}return kI(o,!0),o}function eCA(t,e,A,i,n){let o=XY(),r=$9(),s=r?o:o&&o.parent,a=t.data[e]=iCA(t,s,A,e,i,n);return tCA(t,a,o,r),a}function tCA(t,e,A,i){t.firstChild===null&&(t.firstChild=e),A!==null&&(i?A.child==null&&e.parent!==null&&(A.child=e):A.next===null&&(A.next=e,e.prev=A))}function iCA(t,e,A,i,n,o){let r=e?e.injectorIndex:-1,s=0;return WY()&&(s|=128),{type:A,index:i,insertBeforeIndex:null,injectorIndex:r,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:s,providerIndexes:0,value:n,attrs:o,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}var qie=new RegExp(`^(\\d+)*(${I1A}|${g1A})*(.*)`);var nCA=()=>null;function Jd(t,e){return nCA(t,e)}var oCA=class{},DT=class{},s9=class{resolveComponentFactory(e){throw Error(`No component factory found for ${ra(e)}.`)}},Rp=class{static NULL=new s9},ws=class{},Wi=(()=>{class t{destroyNode=null;static __NG_ELEMENT_ID__=()=>rCA()}return t})();function rCA(){let t=ei(),e=os(),A=Ag(e.index,t);return(Q2(A)?A:t)[Wo]}var sCA=(()=>{class t{static \u0275prov=NA({token:t,providedIn:"root",factory:()=>null})}return t})();var pv={},a9=class{injector;parentInjector;constructor(e,A){this.injector=e,this.parentInjector=A}get(e,A,i){i=gp(i);let n=this.injector.get(e,pv,i);return n!==pv||A===pv?n:this.parentInjector.get(e,A,i)}};function c9(t,e,A){let i=A?t.styles:null,n=A?t.classes:null,o=0;if(e!==null)for(let r=0;r0&&(A.directiveToIndex=new Map);for(let C=0;C0;){let A=t[--e];if(typeof A=="number"&&A<0)return A}return 0}function QCA(t,e,A){if(A){if(e.exportAs)for(let i=0;i{let[A,i,n]=t[e],o={propName:A,templateName:e,isSignal:(i&Dp.SignalBased)!==0};return n&&(o.transform=n),o})}function fCA(t){return Object.keys(t).map(e=>({propName:t[e],templateName:e}))}function mCA(t,e,A){let i=e instanceof pr?e:e?.injector;return i&&t.getStandaloneInjector!==null&&(i=t.getStandaloneInjector(i)||i),i?new a9(A,i):A}function pCA(t){let e=t.get(ws,null);if(e===null)throw new Ae(407,!1);let A=t.get(sCA,null),i=t.get(DI,null);return{rendererFactory:e,sanitizer:A,changeDetectionScheduler:i}}function wCA(t,e){let A=(t.selectors[0][0]||"div").toLowerCase();return $J(e,A,A==="svg"?PY:A==="math"?a2A:null)}var yI=class extends DT{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=uCA(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=fCA(this.componentDef.outputs),this.cachedOutputs}constructor(e,A){super(),this.componentDef=e,this.ngModule=A,this.componentType=e.type,this.selector=AIA(e.selectors),this.ngContentSelectors=e.ngContentSelectors??[],this.isBoundToModule=!!A}create(e,A,i,n){Ro(22);let o=Ti(null);try{let r=this.componentDef,s=i?["ng-version","19.2.14"]:eIA(this.componentDef.selectors[0]),a=hb(0,null,null,1,0,null,null,null,null,[s],null),c=mCA(r,n||this.ngModule,e),l=pCA(c),I=l.rendererFactory.createRenderer(null,r),C=i?gIA(I,i,r.encapsulation,c):wCA(r,I),d=ub(null,a,null,512|tT(r),null,null,l,I,c,null,GJ(C,c,!0));d[Nr]=C,nb(d);let B=null;try{let E=bT(Nr,a,d,"#host",()=>[this.componentDef],!0,0);C&&(eT(I,C,E),qd(C,d)),yp(a,d,E),Bb(a,E,d),MT(a,E),A!==void 0&&DCA(E,this.ngContentSelectors,A),B=Ag(E.index,d),d[Fr]=B[Fr],Db(a,d,null)}catch(E){throw B!==null&&Pv(B),Pv(d),E}finally{Ro(23),ob()}return new l9(this.componentType,d)}finally{Ti(o)}}},l9=class extends oCA{_rootLView;instance;hostView;changeDetectorRef;componentType;location;previousInputValues=null;_tNode;constructor(e,A){super(),this._rootLView=A,this._tNode=j9(A[ki],Nr),this.location=jd(this._tNode,A),this.instance=Ag(this._tNode.index,A)[Fr],this.hostView=this.changeDetectorRef=new Qh(A,void 0,!1),this.componentType=e}setInput(e,A){let i=this._tNode;if(this.previousInputValues??=new Map,this.previousInputValues.has(e)&&Object.is(this.previousInputValues.get(e),A))return;let n=this._rootLView,o=wb(i,n[ki],n,e,A);this.previousInputValues.set(e,A);let r=Ag(i.index,n);kb(r,1)}get injector(){return new BI(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(e){this.hostView.onDestroy(e)}};function DCA(t,e,A){let i=t.projection=[];for(let n=0;n{class t{static __NG_ELEMENT_ID__=yCA}return t})();function yCA(){let t=os();return ST(t,ei())}var vCA=Nn,kT=class extends vCA{_lContainer;_hostTNode;_hostLView;constructor(e,A,i){super(),this._lContainer=e,this._hostTNode=A,this._hostLView=i}get element(){return jd(this._hostTNode,this._hostLView)}get injector(){return new BI(this._hostTNode,this._hostLView)}get parentInjector(){let e=sb(this._hostTNode,this._hostLView);if(aJ(e)){let A=zm(e,this._hostLView),i=Hm(e),n=A[ki].data[i+8];return new BI(n,A)}else return new BI(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(e){let A=iY(this._lContainer);return A!==null&&A[e]||null}get length(){return this._lContainer.length-ms}createEmbeddedView(e,A,i){let n,o;typeof i=="number"?n=i:i!=null&&(n=i.index,o=i.injector);let r=Jd(this._lContainer,e.ssrId),s=e.createEmbeddedViewImpl(A||{},o,r);return this.insertImpl(s,n,Yd(this._hostTNode,r)),s}createComponent(e,A,i,n,o){let r=e&&!n2A(e),s;if(r)s=A;else{let B=A||{};s=B.index,i=B.injector,n=B.projectableNodes,o=B.environmentInjector||B.ngModuleRef}let a=r?e:new yI(h2(e)),c=i||this.parentInjector;if(!o&&a.ngModule==null){let E=(r?c:this.parentInjector).get(pr,null);E&&(o=E)}let l=h2(a.componentType??{}),I=Jd(this._lContainer,l?.id??null),C=I?.firstChild??null,d=a.create(c,n,C,o);return this.insertImpl(d.hostView,s,Yd(this._hostTNode,I)),d}insert(e,A){return this.insertImpl(e,A,!0)}insertImpl(e,A,i){let n=e._lView;if(I2A(n)){let s=this.indexOf(e);if(s!==-1)this.detach(s);else{let a=n[ps],c=new kT(a,a[Ia],a[ps]);c.detach(c.indexOf(e))}}let o=this._adjustIndex(A),r=this._lContainer;return kh(r,n,o,i),e.attachToViewContainerRef(),xY(wv(r),o,e),e}move(e,A){return this.insert(e,A)}indexOf(e){let A=iY(this._lContainer);return A!==null?A.indexOf(e):-1}remove(e){let A=this._adjustIndex(e,-1),i=Eh(this._lContainer,A);i&&(Gm(wv(this._lContainer),A),bp(i[ki],i))}detach(e){let A=this._adjustIndex(e,-1),i=Eh(this._lContainer,A);return i&&Gm(wv(this._lContainer),A)!=null?new Qh(i):null}_adjustIndex(e,A=0){return e??this.length+A}};function iY(t){return t[Ym]}function wv(t){return t[Ym]||(t[Ym]=[])}function ST(t,e){let A,i=e[t.index];return C0(i)?A=i:(A=fT(i,e,null,t),e[t.index]=A,fb(e,A)),MCA(A,e,t,i),new kT(A,t,e)}function bCA(t,e){let A=t[Wo],i=A.createComment(""),n=ng(e,t),o=A.parentNode(n);return Zm(A,o,i,A.nextSibling(n),!1),i}var MCA=RCA,kCA=()=>!1;function SCA(t,e,A){return kCA(t,e,A)}function RCA(t,e,A,i){if(t[fI])return;let n;A.type&8?n=$l(i):n=bCA(e,A),t[fI]=n}var g9=class t{queryList;matches=null;constructor(e){this.queryList=e}clone(){return new t(this.queryList)}setDirty(){this.queryList.setDirty()}},I9=class t{queries;constructor(e=[]){this.queries=e}createEmbeddedView(e){let A=e.queries;if(A!==null){let i=e.contentQueries!==null?e.contentQueries[0]:A.length,n=[];for(let o=0;o0)i.push(r[s/2]);else{let c=o[s+1],l=e[-a];for(let I=ms;Ie.trim())}function FT(t,e,A){t.queries===null&&(t.queries=new C9),t.queries.track(new d9(e,A))}function UCA(t,e){let A=t.contentQueries||(t.contentQueries=[]),i=A.length?A[A.length-1]:-1;e!==i&&A.push(t.queries.length-1,e)}function xb(t,e){return t.queries.getByIndex(e)}function NT(t,e){let A=t[ki],i=xb(A,e);return i.crossesNgTemplate?B9(A,t,e,[]):RT(A,t,i,e)}function _T(t,e,A){let i,n=Zf(()=>{i._dirtyCounter();let o=TCA(i,t);if(e&&o===void 0)throw new Ae(-951,!1);return o});return i=n[ia],i._dirtyCounter=Jo(0),i._flatValue=void 0,n}function KCA(t){return _T(!0,!1,t)}function YCA(t){return _T(!0,!0,t)}function JCA(t,e){let A=t[ia];A._lView=ei(),A._queryIndex=e,A._queryList=Rb(A._lView,e),A._queryList.onDirty(()=>A._dirtyCounter.update(i=>i+1))}function TCA(t,e){let A=t._lView,i=t._queryIndex;if(A===void 0||i===void 0||A[gi]&4)return e?void 0:Ts;let n=Rb(A,i),o=NT(A,i);return n.reset(o,DJ),e?n.first:n._changesDetected||t._flatValue===void 0?t._flatValue=n.toArray():t._flatValue}function nY(t,e){return KCA(e)}function HCA(t,e){return YCA(e)}var GT=(nY.required=HCA,nY);function zCA(t){let e=[],A=new Map;function i(n){let o=A.get(n);if(!o){let r=t(n);A.set(n,o=r.then(qCA))}return o}return Ap.forEach((n,o)=>{let r=[];n.templateUrl&&r.push(i(n.templateUrl).then(c=>{n.template=c}));let s=typeof n.styles=="string"?[n.styles]:n.styles||[];if(n.styles=s,n.styleUrl&&n.styleUrls?.length)throw new Error("@Component cannot define both `styleUrl` and `styleUrls`. Use `styleUrl` if the component has one stylesheet, or `styleUrls` if it has multiple");if(n.styleUrls?.length){let c=n.styles.length,l=n.styleUrls;n.styleUrls.forEach((I,C)=>{s.push(""),r.push(i(I).then(d=>{s[c+C]=d,l.splice(l.indexOf(I),1),l.length==0&&(n.styleUrls=void 0)}))})}else n.styleUrl&&r.push(i(n.styleUrl).then(c=>{s.push(c),n.styleUrl=void 0}));let a=Promise.all(r).then(()=>VCA(o));e.push(a)}),PCA(),Promise.all(e).then(()=>{})}var Ap=new Map,OCA=new Set;function PCA(){let t=Ap;return Ap=new Map,t}function jCA(){return Ap.size===0}function qCA(t){return typeof t=="string"?t:t.text()}function VCA(t){OCA.delete(t)}var I0=class{},Lb=class{};var ep=class extends I0{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];componentFactoryResolver=new Xm(this);constructor(e,A,i,n=!0){super(),this.ngModuleType=e,this._parent=A;let o=NY(e);this._bootstrapComponents=ZJ(o.bootstrap),this._r3Injector=QJ(e,A,[{provide:I0,useValue:this},{provide:Rp,useValue:this.componentFactoryResolver},...i],ra(e),new Set(["environment"])),n&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}get injector(){return this._r3Injector}destroy(){let e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(A=>A()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}},tp=class extends Lb{moduleType;constructor(e){super(),this.moduleType=e}create(e){return new ep(this.moduleType,e,[])}};function ZCA(t,e,A){return new ep(t,e,A,!1)}var E9=class extends I0{injector;componentFactoryResolver=new Xm(this);instance=null;constructor(e){super();let A=new Ih([...e.providers,{provide:I0,useValue:this},{provide:Rp,useValue:this.componentFactoryResolver}],e.parent||dp(),e.debugName,new Set(["environment"]));this.injector=A,e.runEnvironmentInitializers&&A.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(e){this.injector.onDestroy(e)}};function Rh(t,e,A=null){return new E9({providers:t,parent:e,debugName:A,runEnvironmentInitializers:!0}).injector}var WCA=(()=>{class t{_injector;cachedInjectors=new Map;constructor(A){this._injector=A}getOrCreateStandaloneInjector(A){if(!A.standalone)return null;if(!this.cachedInjectors.has(A)){let i=GY(!1,A.type),n=i.length>0?Rh([i],this._injector,`Standalone[${A.type.name}]`):null;this.cachedInjectors.set(A,n)}return this.cachedInjectors.get(A)}ngOnDestroy(){try{for(let A of this.cachedInjectors.values())A!==null&&A.destroy()}finally{this.cachedInjectors.clear()}}static \u0275prov=NA({token:t,providedIn:"environment",factory:()=>new t(we(pr))})}return t})();function zA(t){return uh(()=>{let e=UT(t),A=Ye(rA({},e),{decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===bJ.OnPush,directiveDefs:null,pipeDefs:null,dependencies:e.standalone&&t.dependencies||null,getStandaloneInjector:e.standalone?n=>n.get(WCA).getOrCreateStandaloneInjector(A):null,getExternalStyles:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||eg.Emulated,styles:t.styles||Ts,_:null,schemas:t.schemas||null,tView:null,id:""});e.standalone&&E0("NgStandalone"),KT(A);let i=t.dependencies;return A.directiveDefs=oY(i,!1),A.pipeDefs=oY(i,!0),A.id=tdA(A),A})}function XCA(t){return h2(t)||_Y(t)}function $CA(t){return t!==null}function Ce(t){return uh(()=>({type:t.type,bootstrap:t.bootstrap||Ts,declarations:t.declarations||Ts,imports:t.imports||Ts,exports:t.exports||Ts,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function AdA(t,e){if(t==null)return Xl;let A={};for(let i in t)if(t.hasOwnProperty(i)){let n=t[i],o,r,s,a;Array.isArray(n)?(s=n[0],o=n[1],r=n[2]??o,a=n[3]||null):(o=n,r=n,s=Dp.None,a=null),A[o]=[i,s,a],e[o]=r}return A}function edA(t){if(t==null)return Xl;let e={};for(let A in t)t.hasOwnProperty(A)&&(e[t[A]]=A);return e}function jA(t){return uh(()=>{let e=UT(t);return KT(e),e})}function xp(t){return{type:t.type,name:t.name,factory:null,pure:t.pure!==!1,standalone:t.standalone??!0,onDestroy:t.type.prototype.ngOnDestroy||null}}function UT(t){let e={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:e,inputConfig:t.inputs||Xl,exportAs:t.exportAs||null,standalone:t.standalone??!0,signals:t.signals===!0,selectors:t.selectors||Ts,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:AdA(t.inputs,e),outputs:edA(t.outputs),debugInfo:null}}function KT(t){t.features?.forEach(e=>e(t))}function oY(t,e){if(!t)return null;let A=e?P0A:XCA;return()=>(typeof t=="function"?t():t).map(i=>A(i)).filter($CA)}function tdA(t){let e=0,A=typeof t.consts=="function"?"":t.consts,i=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,A,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery];for(let o of i.join("|"))e=Math.imul(31,e)+o.charCodeAt(0)<<0;return e+=2147483648,"c"+e}function idA(t){return Object.getPrototypeOf(t.prototype).constructor}function lt(t){let e=idA(t.type),A=!0,i=[t];for(;e;){let n;if(rl(t))n=e.\u0275cmp||e.\u0275dir;else{if(e.\u0275cmp)throw new Ae(903,!1);n=e.\u0275dir}if(n){if(A){i.push(n);let r=t;r.inputs=Dv(t.inputs),r.declaredInputs=Dv(t.declaredInputs),r.outputs=Dv(t.outputs);let s=n.hostBindings;s&&adA(t,s);let a=n.viewQuery,c=n.contentQueries;if(a&&rdA(t,a),c&&sdA(t,c),ndA(t,n),D0A(t.outputs,n.outputs),rl(n)&&n.data.animation){let l=t.data;l.animation=(l.animation||[]).concat(n.data.animation)}}let o=n.features;if(o)for(let r=0;r=0;i--){let n=t[i];n.hostVars=e+=n.hostVars,n.hostAttrs=Kd(n.hostAttrs,A=Kd(A,n.hostAttrs))}}function Dv(t){return t===Xl?{}:t===Ts?[]:t}function rdA(t,e){let A=t.viewQuery;A?t.viewQuery=(i,n)=>{e(i,n),A(i,n)}:t.viewQuery=e}function sdA(t,e){let A=t.contentQueries;A?t.contentQueries=(i,n,o)=>{e(i,n,o),A(i,n,o)}:t.contentQueries=e}function adA(t,e){let A=t.hostBindings;A?t.hostBindings=(i,n)=>{e(i,n),A(i,n)}:t.hostBindings=e}function YT(t){let e=A=>{let i=Array.isArray(t);A.hostDirectives===null?(A.findHostDirectiveDefs=JT,A.hostDirectives=i?t.map(Q9):[t]):i?A.hostDirectives.unshift(...t.map(Q9)):A.hostDirectives.unshift(t)};return e.ngInherit=!0,e}function JT(t,e,A){if(t.hostDirectives!==null)for(let i of t.hostDirectives)if(typeof i=="function"){let n=i();for(let o of n)rY(Q9(o),e,A)}else rY(i,e,A)}function rY(t,e,A){let i=_Y(t.directive);cdA(i.declaredInputs,t.inputs),JT(i,e,A),A.set(i,t),e.push(i)}function Q9(t){return typeof t=="function"?{directive:ns(t),inputs:Xl,outputs:Xl}:{directive:ns(t.directive),inputs:sY(t.inputs),outputs:sY(t.outputs)}}function sY(t){if(t===void 0||t.length===0)return Xl;let e={};for(let A=0;A{class t{log(A){console.log(A)}warn(A){console.warn(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();var Gb=new dA(""),xh=new dA(""),Lp=(()=>{class t{_ngZone;registry;_isZoneStable=!0;_callbacks=[];_taskTrackingZone=null;_destroyRef;constructor(A,i,n){this._ngZone=A,this.registry=i,H9()&&(this._destroyRef=f(m2,{optional:!0})??void 0),Ub||(BdA(n),n.addToWindow(i)),this._watchAngularEvents(),A.run(()=>{this._taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){let A=this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),i=this._ngZone.runOutsideAngular(()=>this._ngZone.onStable.subscribe({next:()=>{Qe.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}}));this._destroyRef?.onDestroy(()=>{A.unsubscribe(),i.unsubscribe()})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;this._callbacks.length!==0;){let A=this._callbacks.pop();clearTimeout(A.timeoutId),A.doneCb()}});else{let A=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>i.updateCb&&i.updateCb(A)?(clearTimeout(i.timeoutId),!1):!0)}}getPendingTasks(){return this._taskTrackingZone?this._taskTrackingZone.macroTasks.map(A=>({source:A.source,creationLocation:A.creationLocation,data:A.data})):[]}addCallback(A,i,n){let o=-1;i&&i>0&&(o=setTimeout(()=>{this._callbacks=this._callbacks.filter(r=>r.timeoutId!==o),A()},i)),this._callbacks.push({doneCb:A,timeoutId:o,updateCb:n})}whenStable(A,i,n){if(n&&!this._taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(A,i,n),this._runCallbacksIfReady()}registerApplication(A){this.registry.registerApplication(A,this)}unregisterApplication(A){this.registry.unregisterApplication(A)}findProviders(A,i,n){return[]}static \u0275fac=function(i){return new(i||t)(we(Qe),we(Fp),we(xh))};static \u0275prov=NA({token:t,factory:t.\u0275fac})}return t})(),Fp=(()=>{class t{_applications=new Map;registerApplication(A,i){this._applications.set(A,i)}unregisterApplication(A){this._applications.delete(A)}unregisterAllApplications(){this._applications.clear()}getTestability(A){return this._applications.get(A)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(A,i=!0){return Ub?.findTestabilityInTree(this,A,i)??null}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function BdA(t){Ub=t}var Ub,zT=(()=>{class t{static \u0275prov=NA({token:t,providedIn:"root",factory:()=>new h9})}return t})(),h9=class{queuedEffectCount=0;queues=new Map;schedule(e){this.enqueue(e)}remove(e){let A=e.zone,i=this.queues.get(A);i.has(e)&&(i.delete(e),this.queuedEffectCount--)}enqueue(e){let A=e.zone;this.queues.has(A)||this.queues.set(A,new Set);let i=this.queues.get(A);i.has(e)||(this.queuedEffectCount++,i.add(e))}flush(){for(;this.queuedEffectCount>0;)for(let[e,A]of this.queues)e===null?this.flushQueue(A):e.run(()=>this.flushQueue(A))}flushQueue(e){for(let A of e)e.delete(A),this.queuedEffectCount--,A.run()}};function D2(t){return!!t&&typeof t.then=="function"}function Kb(t){return!!t&&typeof t.subscribe=="function"}var OT=new dA("");function Yb(t){return ph([{provide:OT,multi:!0,useValue:t}])}var PT=(()=>{class t{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((A,i)=>{this.resolve=A,this.reject=i});appInits=f(OT,{optional:!0})??[];injector=f(Rt);constructor(){}runInitializers(){if(this.initialized)return;let A=[];for(let n of this.appInits){let o=ga(this.injector,n);if(D2(o))A.push(o);else if(Kb(o)){let r=new Promise((s,a)=>{o.subscribe({complete:s,error:a})});A.push(r)}}let i=()=>{this.done=!0,this.resolve()};Promise.all(A).then(()=>{i()}).catch(n=>{this.reject(n)}),A.length===0&&i(),this.initialized=!0}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Jb=new dA("");function EdA(){W7(()=>{throw new Ae(600,!1)})}function QdA(t){return t.isBoundToModule}var hdA=10;function jT(t,e){return Array.isArray(e)?e.reduce(jT,t):rA(rA({},t),e)}var la=(()=>{class t{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=f(t1A);afterRenderManager=f(NJ);zonelessEnabled=f(cb);rootEffectScheduler=f(zT);dirtyFlags=0;tracingSnapshot=null;externalTestViews=new Set;afterTick=new OA;get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];isStable=f(B0).hasPendingTasks.pipe(je(A=>!A));constructor(){f(Zd,{optional:!0})}whenStable(){let A;return new Promise(i=>{A=this.isStable.subscribe({next:n=>{n&&i()}})}).finally(()=>{A.unsubscribe()})}_injector=f(pr);_rendererFactory=null;get injector(){return this._injector}bootstrap(A,i){return this.bootstrapImpl(A,i)}bootstrapImpl(A,i,n=Rt.NULL){Ro(10);let o=A instanceof DT;if(!this._injector.get(PT).done){let d="";throw new Ae(405,d)}let s;o?s=A:s=this._injector.get(Rp).resolveComponentFactory(A),this.componentTypes.push(s.componentType);let a=QdA(s)?void 0:this._injector.get(I0),c=i||s.selector,l=s.create(n,[],c,a),I=l.location.nativeElement,C=l.injector.get(Gb,null);return C?.registerApplication(I),l.onDestroy(()=>{this.detachView(l.hostView),Lm(this.components,l),C?.unregisterApplication(I)}),this._loadComponent(l),Ro(11,l),l}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){Ro(12),this.tracingSnapshot!==null?this.tracingSnapshot.run(Cb.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw new Ae(101,!1);let A=Ti(null);try{this._runningTick=!0,this.synchronize()}catch(i){this.internalErrorHandler(i)}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,Ti(A),this.afterTick.next(),Ro(13)}};synchronize(){this._rendererFactory===null&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(ws,null,{optional:!0}));let A=0;for(;this.dirtyFlags!==0&&A++Qp(A))){this.dirtyFlags|=2;return}else this.dirtyFlags&=-8}attachView(A){let i=A;this._views.push(i),i.attachToAppRef(this)}detachView(A){let i=A;Lm(this._views,i),i.detachFromAppRef()}_loadComponent(A){this.attachView(A.hostView),this.tick(),this.components.push(A),this._injector.get(Jb,[]).forEach(n=>n(A))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(A=>A()),this._views.slice().forEach(A=>A.destroy())}finally{this._destroyed=!0,this._views=[],this._destroyListeners=[]}}onDestroy(A){return this._destroyListeners.push(A),()=>Lm(this._destroyListeners,A)}destroy(){if(this._destroyed)throw new Ae(406,!1);let A=this._injector;A.destroy&&!A.destroyed&&A.destroy()}get viewCount(){return this._views.length}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Lm(t,e){let A=t.indexOf(e);A>-1&&t.splice(A,1)}function udA(t,e,A,i){if(!A&&!Qp(t))return;ET(t,e,A&&!i?0:1)}function Ne(t,e,A,i){let n=ei(),o=f2();if(Pa(n,o,e)){let r=Yo(),s=Dh();uIA(s,n,t,e,A,i)}return Ne}function qT(t,e,A,i){return Pa(t,f2(),A)?e+EI(A)+i:qa}function fdA(t,e,A,i,n,o){let r=w2A(),s=HT(t,r,A,n);return eb(2),s?e+EI(A)+i+EI(n)+o:qa}function bm(t,e){return t<<17|e<<2}function vI(t){return t>>17&32767}function mdA(t){return(t&2)==2}function pdA(t,e){return t&131071|e<<17}function u9(t){return t|2}function Td(t){return(t&131068)>>2}function yv(t,e){return t&-131069|e<<2}function wdA(t){return(t&1)===1}function f9(t){return t|1}function DdA(t,e,A,i,n,o){let r=o?e.classBindings:e.styleBindings,s=vI(r),a=Td(r);t[i]=A;let c=!1,l;if(Array.isArray(A)){let I=A;l=I[1],(l===null||mh(I,l)>0)&&(c=!0)}else l=A;if(n)if(a!==0){let C=vI(t[s+1]);t[i+1]=bm(C,s),C!==0&&(t[C+1]=yv(t[C+1],i)),t[s+1]=pdA(t[s+1],i)}else t[i+1]=bm(s,0),s!==0&&(t[s+1]=yv(t[s+1],i)),s=i;else t[i+1]=bm(a,0),s===0?s=i:t[a+1]=yv(t[a+1],i),a=i;c&&(t[i+1]=u9(t[i+1])),aY(t,l,i,!0),aY(t,l,i,!1),ydA(e,l,t,i,o),r=bm(s,a),o?e.classBindings=r:e.styleBindings=r}function ydA(t,e,A,i,n){let o=n?t.residualClasses:t.residualStyles;o!=null&&typeof e=="string"&&mh(o,e)>=0&&(A[i+1]=f9(A[i+1]))}function aY(t,e,A,i){let n=t[A+1],o=e===null,r=i?vI(n):Td(n),s=!1;for(;r!==0&&(s===!1||o);){let a=t[r],c=t[r+1];vdA(a,e)&&(s=!0,t[r+1]=i?f9(c):u9(c)),r=i?vI(c):Td(c)}s&&(t[A+1]=i?u9(n):f9(n))}function vdA(t,e){return t===null||e==null||(Array.isArray(t)?t[1]:t)===e?!0:Array.isArray(t)&&typeof e=="string"?mh(t,e)>=0:!1}var nl={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function bdA(t){return t.substring(nl.key,nl.keyEnd)}function MdA(t){return kdA(t),VT(t,ZT(t,0,nl.textEnd))}function VT(t,e){let A=nl.textEnd;return A===e?-1:(e=nl.keyEnd=SdA(t,nl.key=e,A),ZT(t,e,A))}function kdA(t){nl.key=0,nl.keyEnd=0,nl.value=0,nl.valueEnd=0,nl.textEnd=t.length}function ZT(t,e,A){for(;e32;)e++;return e}function yA(t,e,A){let i=ei(),n=f2();if(Pa(i,n,e)){let o=Yo(),r=Dh();vp(o,r,i,t,e,i[Wo],A,!1)}return yA}function m9(t,e,A,i,n){wb(e,t,A,n?"class":"style",i)}function uo(t,e,A){return XT(t,e,A,!1),uo}function ue(t,e){return XT(t,e,null,!0),ue}function fo(t){$T(_dA,WT,t,!0)}function WT(t,e){for(let A=MdA(e);A>=0;A=VT(e,A))Ip(t,bdA(e),!0)}function XT(t,e,A,i){let n=ei(),o=Yo(),r=eb(2);if(o.firstUpdatePass&&eH(o,t,r,i),e!==qa&&Pa(n,r,e)){let s=o.data[d0()];tH(o,s,n,n[Wo],t,n[r+1]=UdA(e,A),i,r)}}function $T(t,e,A,i){let n=Yo(),o=eb(2);n.firstUpdatePass&&eH(n,null,o,i);let r=ei();if(A!==qa&&Pa(r,o,A)){let s=n.data[d0()];if(iH(s,i)&&!AH(n,o)){let a=i?s.classesWithoutHost:s.stylesWithoutHost;a!==null&&(A=Sv(a,A||"")),m9(n,s,r,A,i)}else GdA(n,s,r,r[Wo],r[o+1],r[o+1]=NdA(t,e,A),i,o)}}function AH(t,e){return e>=t.expandoStartIndex}function eH(t,e,A,i){let n=t.data;if(n[A+1]===null){let o=n[d0()],r=AH(t,A);iH(o,i)&&e===null&&!r&&(e=!1),e=RdA(n,o,e,i),DdA(n,o,e,A,r,i)}}function RdA(t,e,A,i){let n=tb(t),o=i?e.residualClasses:e.residualStyles;if(n===null)(i?e.classBindings:e.styleBindings)===0&&(A=vv(null,t,e,A,i),A=hh(A,e.attrs,i),o=null);else{let r=e.directiveStylingLast;if(r===-1||t[r]!==n)if(A=vv(n,t,e,A,i),o===null){let a=xdA(t,e,i);a!==void 0&&Array.isArray(a)&&(a=vv(null,t,e,a[1],i),a=hh(a,e.attrs,i),LdA(t,e,i,a))}else o=FdA(t,e,i)}return o!==void 0&&(i?e.residualClasses=o:e.residualStyles=o),A}function xdA(t,e,A){let i=A?e.classBindings:e.styleBindings;if(Td(i)!==0)return t[vI(i)]}function LdA(t,e,A,i){let n=A?e.classBindings:e.styleBindings;t[vI(n)]=i}function FdA(t,e,A){let i,n=e.directiveEnd;for(let o=1+e.directiveStylingLast;o0;){let a=t[n],c=Array.isArray(a),l=c?a[1]:a,I=l===null,C=A[n+1];C===qa&&(C=I?Ts:void 0);let d=I?Ev(C,i):l===i?C:void 0;if(c&&!np(d)&&(d=Ev(a,i)),np(d)&&(s=d,r))return s;let B=t[n+1];n=r?vI(B):Td(B)}if(e!==null){let a=o?e.residualClasses:e.residualStyles;a!=null&&(s=Ev(a,i))}return s}function np(t){return t!==void 0}function UdA(t,e){return t==null||t===""||(typeof e=="string"?t=t+e:typeof t=="object"&&(t=ra(sl(t)))),t}function iH(t,e){return(t.flags&(e?8:16))!==0}function nH(t,e,A){let i=ei(),n=qT(i,t,e,A);$T(Ip,WT,n,!0)}var p9=class{destroy(e){}updateValue(e,A){}swap(e,A){let i=Math.min(e,A),n=Math.max(e,A),o=this.detach(n);if(n-i>1){let r=this.detach(i);this.attach(i,o),this.attach(n,r)}else this.attach(i,o)}move(e,A){this.attach(A,this.detach(e))}};function bv(t,e,A,i,n){return t===A&&Object.is(e,i)?1:Object.is(n(t,e),n(A,i))?-1:0}function KdA(t,e,A){let i,n,o=0,r=t.length-1,s=void 0;if(Array.isArray(e)){let a=e.length-1;for(;o<=r&&o<=a;){let c=t.at(o),l=e[o],I=bv(o,c,o,l,A);if(I!==0){I<0&&t.updateValue(o,l),o++;continue}let C=t.at(r),d=e[a],B=bv(r,C,a,d,A);if(B!==0){B<0&&t.updateValue(r,d),r--,a--;continue}let E=A(o,c),h=A(r,C),u=A(o,l);if(Object.is(u,h)){let D=A(a,d);Object.is(D,E)?(t.swap(o,r),t.updateValue(r,d),a--,r--):t.move(r,o),t.updateValue(o,l),o++;continue}if(i??=new op,n??=gY(t,o,r,A),w9(t,i,o,u))t.updateValue(o,l),o++,r++;else if(n.has(u))i.set(E,t.detach(o)),r--;else{let D=t.create(o,e[o]);t.attach(o,D),o++,r++}}for(;o<=a;)lY(t,i,A,o,e[o]),o++}else if(e!=null){let a=e[Symbol.iterator](),c=a.next();for(;!c.done&&o<=r;){let l=t.at(o),I=c.value,C=bv(o,l,o,I,A);if(C!==0)C<0&&t.updateValue(o,I),o++,c=a.next();else{i??=new op,n??=gY(t,o,r,A);let d=A(o,I);if(w9(t,i,o,d))t.updateValue(o,I),o++,r++,c=a.next();else if(!n.has(d))t.attach(o,t.create(o,I)),o++,r++,c=a.next();else{let B=A(o,l);i.set(B,t.detach(o)),r--}}}for(;!c.done;)lY(t,i,A,t.length,c.value),c=a.next()}for(;o<=r;)t.destroy(t.detach(r--));i?.forEach(a=>{t.destroy(a)})}function w9(t,e,A,i){return e!==void 0&&e.has(i)?(t.attach(A,e.get(i)),e.delete(i),!0):!1}function lY(t,e,A,i,n){if(w9(t,e,i,A(i,n)))t.updateValue(i,n);else{let o=t.create(i,n);t.attach(i,o)}}function gY(t,e,A,i){let n=new Set;for(let o=e;o<=A;o++)n.add(i(o,t.at(o)));return n}var op=class{kvMap=new Map;_vMap=void 0;has(e){return this.kvMap.has(e)}delete(e){if(!this.has(e))return!1;let A=this.kvMap.get(e);return this._vMap!==void 0&&this._vMap.has(A)?(this.kvMap.set(e,this._vMap.get(A)),this._vMap.delete(A)):this.kvMap.delete(e),!0}get(e){return this.kvMap.get(e)}set(e,A){if(this.kvMap.has(e)){let i=this.kvMap.get(e);this._vMap===void 0&&(this._vMap=new Map);let n=this._vMap;for(;n.has(i);)i=n.get(i);n.set(i,A)}else this.kvMap.set(e,A)}forEach(e){for(let[A,i]of this.kvMap)if(e(i,A),this._vMap!==void 0){let n=this._vMap;for(;n.has(i);)i=n.get(i),e(i,A)}}};function GA(t,e){E0("NgControlFlow");let A=ei(),i=f2(),n=A[i]!==qa?A[i]:-1,o=n!==-1?rp(A,Nr+n):void 0,r=0;if(Pa(A,i,t)){let s=Ti(null);try{if(o!==void 0&&pT(o,r),t!==-1){let a=Nr+t,c=rp(A,a),l=b9(A[ki],a),I=Jd(c,l.tView.ssrId),C=Mh(A,l,e,{dehydratedView:I});kh(c,C,r,Yd(l,I))}}finally{Ti(s)}}else if(o!==void 0){let s=mT(o,r);s!==void 0&&(s[Fr]=e)}}var D9=class{lContainer;$implicit;$index;constructor(e,A,i){this.lContainer=e,this.$implicit=A,this.$index=i}get $count(){return this.lContainer.length-ms}};function Xd(t){return t}function to(t,e){return e}var y9=class{hasEmptyBlock;trackByFn;liveCollection;constructor(e,A,i){this.hasEmptyBlock=e,this.trackByFn=A,this.liveCollection=i}};function Dn(t,e,A,i,n,o,r,s,a,c,l,I,C){E0("NgControlFlow");let d=ei(),B=Yo(),E=a!==void 0,h=ei(),u=s?r.bind(h[Oa][Fr]):r,D=new y9(E,u);h[Nr+t]=D,ip(d,B,t+1,e,A,i,n,u2(B.consts,o)),E&&ip(d,B,t+2,a,c,l,I,u2(B.consts,C))}var v9=class extends p9{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(e,A,i){super(),this.lContainer=e,this.hostLView=A,this.templateTNode=i}get length(){return this.lContainer.length-ms}at(e){return this.getLView(e)[Fr].$implicit}attach(e,A){let i=A[_d];this.needsIndexUpdate||=e!==this.length,kh(this.lContainer,A,e,Yd(this.templateTNode,i))}detach(e){return this.needsIndexUpdate||=e!==this.length-1,YdA(this.lContainer,e)}create(e,A){let i=Jd(this.lContainer,this.templateTNode.tView.ssrId),n=Mh(this.hostLView,this.templateTNode,new D9(this.lContainer,A,e),{dehydratedView:i});return this.operationsCounter?.recordCreate(),n}destroy(e){bp(e[ki],e),this.operationsCounter?.recordDestroy()}updateValue(e,A){this.getLView(e)[Fr].$implicit=A}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let e=0;e(fp(!0),$J(i,n,R2A()));function HdA(t,e,A,i,n){let o=e.consts,r=u2(o,i),s=Sh(e,t,8,"ng-container",r);r!==null&&c9(s,r,!0);let a=u2(o,n);return X9()&&Sb(e,A,s,a,pb),s.mergedAttrs=Kd(s.mergedAttrs,s.attrs),e.queries!==null&&e.queries.elementStart(e,s),s}function y2(t,e,A){let i=ei(),n=Yo(),o=t+Nr,r=n.firstCreatePass?HdA(o,n,i,e,A):n.data[o];kI(r,!0);let s=zdA(n,i,r,t);return i[o]=s,up()&&Mp(n,i,s,r),qd(s,i),Ep(r)&&(yp(n,i,r),Bb(n,r,i)),A!=null&&mb(i,r),y2}function v2(){let t=os(),e=Yo();return $9()?Ab():(t=t.parent,kI(t,!1)),e.firstCreatePass&&(rb(e,t),P9(t)&&e.queries.elementEnd(t)),v2}function _r(t,e,A){return y2(t,e,A),v2(),_r}var zdA=(t,e,A,i)=>(fp(!0),nIA(e[Wo],""));function be(){return ei()}function Hs(t,e,A){let i=ei(),n=f2();if(Pa(i,n,e)){let o=Yo(),r=Dh();vp(o,r,i,t,e,i[Wo],A,!0)}return Hs}function Tb(t,e,A){let i=ei(),n=f2();if(Pa(i,n,e)){let o=Yo(),r=Dh(),s=tb(o.data),a=rT(s,r,i);vp(o,r,i,t,e,a,A,!0)}return Tb}var sp="en-US";var OdA=sp;function PdA(t){typeof t=="string"&&(OdA=t.toLowerCase().replace(/_/g,"-"))}function IY(t,e,A){return function i(n){if(n===Function)return A;let o=zd(t)?Ag(t.index,e):e;kb(o,5);let r=e[Fr],s=CY(e,r,A,n),a=i.__ngNextListenerFn__;for(;a;)s=CY(e,r,a,n)&&s,a=a.__ngNextListenerFn__;return s}}function CY(t,e,A,i){let n=Ti(null);try{return Ro(6,e,A),A(i)!==!1}catch(o){return jdA(t,o),!1}finally{Ro(7,e,A),Ti(n)}}function jdA(t,e){let A=t[Gd],i=A?A.get(aa,null):null;i&&i.handleError(e)}function dY(t,e,A,i,n,o){let r=e[A],s=e[ki],c=s.data[A].outputs[i],l=r[c],I=s.firstCreatePass?W9(s):null,C=Z9(e),d=l.subscribe(o),B=C.length;C.push(o,d),I&&I.push(n,t.index,B,-(B+1))}function hA(t,e,A,i){let n=ei(),o=Yo(),r=os();return zb(o,n,n[Wo],r,t,e,i),hA}function Hb(t,e){let A=os(),i=ei(),n=Yo(),o=tb(n.data),r=rT(o,A,i);return zb(n,i,r,A,t,e),Hb}function qdA(t,e,A,i){let n=t.cleanup;if(n!=null)for(let o=0;oa?s[a]:null}typeof r=="string"&&(o+=2)}return null}function zb(t,e,A,i,n,o,r){let s=Ep(i),c=t.firstCreatePass?W9(t):null,l=Z9(e),I=!0;if(i.type&3||r){let C=ng(i,e),d=r?r(C):C,B=l.length,E=r?u=>r($l(u[i.index])):i.index,h=null;if(!r&&s&&(h=qdA(t,e,n,i.index)),h!==null){let u=h.__ngLastListenerFn__||h;u.__ngNextListenerFn__=o,h.__ngLastListenerFn__=o,I=!1}else{o=IY(i,e,o),u1A(e,d,n,o);let u=A.listen(d,n,o);l.push(o,u),c&&c.push(n,E,B,B+1)}}else o=IY(i,e,o);if(I){let C=i.outputs?.[n],d=i.hostDirectiveOutputs?.[n];if(d&&d.length)for(let B=0;B(fp(!0),tIA(e[Wo],i));function Gt(t){return Et("",t,""),Gt}function Et(t,e,A){let i=ei(),n=qT(i,t,e,A);return n!==qa&&sH(i,d0(),n),Et}function Ob(t,e,A,i,n){let o=ei(),r=fdA(o,t,e,A,i,n);return r!==qa&&sH(o,d0(),r),Ob}function sH(t,e,A){let i=jY(e,t);iIA(t[Wo],i,A)}function Ca(t,e,A){yJ(e)&&(e=e());let i=ei(),n=f2();if(Pa(i,n,e)){let o=Yo(),r=Dh();vp(o,r,i,t,e,i[Wo],A,!1)}return Ca}function Va(t,e){let A=yJ(t);return A&&t.set(e),A}function da(t,e){let A=ei(),i=Yo(),n=os();return zb(i,A,A[Wo],n,t,e),da}function XdA(t,e,A){let i=Yo();if(i.firstCreatePass){let n=rl(t);M9(A,i.data,i.blueprint,n,!0),M9(e,i.data,i.blueprint,n,!1)}}function M9(t,e,A,i,n){if(t=ns(t),Array.isArray(t))for(let o=0;o>20;if(Nd(t)||!t.multi){let d=new wI(c,n,PA),B=kv(a,e,n?l:l+C,I);B===-1?(Tv(Pm(s,r),o,a),Mv(o,t,e.length),e.push(a),s.directiveStart++,s.directiveEnd++,n&&(s.providerIndexes+=1048576),A.push(d),r.push(d)):(A[B]=d,r[B]=d)}else{let d=kv(a,e,l+C,I),B=kv(a,e,l,l+C),E=d>=0&&A[d],h=B>=0&&A[B];if(n&&!h||!n&&!E){Tv(Pm(s,r),o,a);let u=eBA(n?ABA:$dA,A.length,n,i,c);!n&&h&&(A[B].providerFactory=u),Mv(o,t,e.length,0),e.push(a),s.directiveStart++,s.directiveEnd++,n&&(s.providerIndexes+=1048576),A.push(u),r.push(u)}else{let u=aH(A[n?B:d],c,!n&&i);Mv(o,t,d>-1?d:B,u)}!n&&i&&h&&A[B].componentProviders++}}}function Mv(t,e,A,i){let n=Nd(e),o=W0A(e);if(n||o){let a=(o?ns(e.useClass):e).prototype.ngOnDestroy;if(a){let c=t.destroyHooks||(t.destroyHooks=[]);if(!n&&e.multi){let l=c.indexOf(A);l===-1?c.push(A,[i,a]):c[l+1].push(i,a)}else c.push(A,a)}}}function aH(t,e,A){return A&&t.componentProviders++,t.multi.push(e)-1}function kv(t,e,A,i){for(let n=A;n{A.providersResolver=(i,n)=>XdA(i,n?n(t):t,e)}}function cH(t,e,A){let i=wh()+t,n=ei();return n[i]===qa?Nb(n,i,A?e.call(A):e()):gdA(n,i)}function qr(t,e,A,i){return gH(ei(),wh(),t,e,A,i)}function b2(t,e,A,i,n){return IH(ei(),wh(),t,e,A,i,n)}function lH(t,e){let A=t[e];return A===qa?void 0:A}function gH(t,e,A,i,n,o){let r=e+A;return Pa(t,r,n)?Nb(t,r+1,o?i.call(o,n):i(n)):lH(t,r+1)}function IH(t,e,A,i,n,o,r){let s=e+A;return HT(t,s,n,o)?Nb(t,s+2,r?i.call(r,n,o):i(n,o)):lH(t,s+2)}function Za(t,e){let A=Yo(),i,n=t+Nr;A.firstCreatePass?(i=tBA(e,A.pipeRegistry),A.data[n]=i,i.onDestroy&&(A.destroyHooks??=[]).push(n,i.onDestroy)):i=A.data[n];let o=i.factory||(i.factory=QI(i.type,!0)),r,s=oa(PA);try{let a=Om(!1),c=o();return Om(a),l2A(A,ei(),n,c),c}finally{oa(s)}}function tBA(t,e){if(e)for(let A=e.length-1;A>=0;A--){let i=e[A];if(t===i.name)return i}}function M2(t,e,A){let i=t+Nr,n=ei(),o=q9(n,i);return CH(n,i)?gH(n,wh(),e,o.transform,A,o):o.transform(A)}function Lh(t,e,A,i){let n=t+Nr,o=ei(),r=q9(o,n);return CH(o,n)?IH(o,wh(),e,r.transform,A,i,r):r.transform(A,i)}function CH(t,e){return t[ki].data[e].pure}function Fh(t,e){return Sp(t,e)}var Mm=null;function iBA(t){Mm!==null&&(t.defaultEncapsulation!==Mm.defaultEncapsulation||t.preserveWhitespaces!==Mm.preserveWhitespaces)||(Mm=t)}var bI=class{full;major;minor;patch;constructor(e){this.full=e;let A=e.split(".");this.major=A[0],this.minor=A[1],this.patch=A.slice(2).join(".")}},Pb=new bI("19.2.14"),S9=class{ngModuleFactory;componentFactories;constructor(e,A){this.ngModuleFactory=e,this.componentFactories=A}},dH=(()=>{class t{compileModuleSync(A){return new tp(A)}compileModuleAsync(A){return Promise.resolve(this.compileModuleSync(A))}compileModuleAndAllComponentsSync(A){let i=this.compileModuleSync(A),n=NY(A),o=ZJ(n.declarations).reduce((r,s)=>{let a=h2(s);return a&&r.push(new yI(a)),r},[]);return new S9(i,o)}compileModuleAndAllComponentsAsync(A){return Promise.resolve(this.compileModuleAndAllComponentsSync(A))}clearCache(){}clearCacheFor(A){}getModuleId(A){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),nBA=new dA("");function oBA(t,e,A){let i=new tp(A);return Promise.resolve(i)}function BY(t){for(let e=t.length-1;e>=0;e--)if(t[e]!==void 0)return t[e]}var rBA=(()=>{class t{zone=f(Qe);changeDetectionScheduler=f(DI);applicationRef=f(la);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function sBA({ngZoneFactory:t,ignoreChangesOutsideZone:e,scheduleInRootZone:A}){return t??=()=>new Qe(Ye(rA({},BH()),{scheduleInRootZone:A})),[{provide:Qe,useFactory:t},{provide:Fd,multi:!0,useFactory:()=>{let i=f(rBA,{optional:!0});return()=>i.initialize()}},{provide:Fd,multi:!0,useFactory:()=>{let i=f(aBA);return()=>{i.initialize()}}},e===!0?{provide:uJ,useValue:!0}:[],{provide:fJ,useValue:A??hJ}]}function BH(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}var aBA=(()=>{class t{subscription=new Kt;initialized=!1;zone=f(Qe);pendingTasks=f(B0);initialize(){if(this.initialized)return;this.initialized=!0;let A=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(A=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{Qe.assertNotInAngularZone(),queueMicrotask(()=>{A!==null&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(A),A=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{Qe.assertInAngularZone(),A??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var cBA=(()=>{class t{appRef=f(la);taskService=f(B0);ngZone=f(Qe);zonelessEnabled=f(cb);tracing=f(Zd,{optional:!0});disableScheduling=f(uJ,{optional:!0})??!1;zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new Kt;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(qm):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(f(fJ,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof Vm||!this.zoneIsDefined)}notify(A){if(!this.zonelessEnabled&&A===5)return;let i=!1;switch(A){case 0:{this.appRef.dirtyFlags|=2;break}case 3:case 2:case 4:case 5:case 1:{this.appRef.dirtyFlags|=4;break}case 6:{this.appRef.dirtyFlags|=2,i=!0;break}case 12:{this.appRef.dirtyFlags|=16,i=!0;break}case 13:{this.appRef.dirtyFlags|=2,i=!0;break}case 11:{i=!0;break}case 9:case 8:case 7:case 10:default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick(i))return;let n=this.useMicrotaskScheduler?YK:mJ;this.pendingRenderTaskId=this.taskService.add(),this.scheduleInRootZone?this.cancelScheduledCallback=Zone.root.run(()=>n(()=>this.tick())):this.cancelScheduledCallback=this.ngZone.runOutsideAngular(()=>n(()=>this.tick()))}shouldScheduleTick(A){return!(this.disableScheduling&&!A||this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(qm+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(this.appRef.dirtyFlags===0){this.cleanup();return}!this.zonelessEnabled&&this.appRef.dirtyFlags&7&&(this.appRef.dirtyFlags|=1);let A=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(i){throw this.taskService.remove(A),i}finally{this.cleanup()}this.useMicrotaskScheduler=!0,YK(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(A)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){let A=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(A)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function lBA(){return typeof $localize<"u"&&$localize.locale||sp}var Np=new dA("",{providedIn:"root",factory:()=>f(Np,Gi.Optional|Gi.SkipSelf)||lBA()});var ap=new dA(""),gBA=new dA("");function sh(t){return!t.moduleRef}function IBA(t){let e=sh(t)?t.r3Injector:t.moduleRef.injector,A=e.get(Qe);return A.run(()=>{sh(t)?t.r3Injector.resolveInjectorInitializers():t.moduleRef.resolveInjectorInitializers();let i=e.get(aa,null),n;if(A.runOutsideAngular(()=>{n=A.onError.subscribe({next:o=>{i.handleError(o)}})}),sh(t)){let o=()=>e.destroy(),r=t.platformInjector.get(ap);r.add(o),e.onDestroy(()=>{n.unsubscribe(),r.delete(o)})}else{let o=()=>t.moduleRef.destroy(),r=t.platformInjector.get(ap);r.add(o),t.moduleRef.onDestroy(()=>{Lm(t.allPlatformModules,t.moduleRef),n.unsubscribe(),r.delete(o)})}return dBA(i,A,()=>{let o=e.get(PT);return o.runInitializers(),o.donePromise.then(()=>{let r=e.get(Np,sp);if(PdA(r||sp),!e.get(gBA,!0))return sh(t)?e.get(la):(t.allPlatformModules.push(t.moduleRef),t.moduleRef);if(sh(t)){let a=e.get(la);return t.rootComponent!==void 0&&a.bootstrap(t.rootComponent),a}else return CBA(t.moduleRef,t.allPlatformModules),t.moduleRef})})})}function CBA(t,e){let A=t.injector.get(la);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(i=>A.bootstrap(i));else if(t.instance.ngDoBootstrap)t.instance.ngDoBootstrap(A);else throw new Ae(-403,!1);e.push(t)}function dBA(t,e,A){try{let i=A();return D2(i)?i.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):i}catch(i){throw e.runOutsideAngular(()=>t.handleError(i)),i}}var EH=(()=>{class t{_injector;_modules=[];_destroyListeners=[];_destroyed=!1;constructor(A){this._injector=A}bootstrapModuleFactory(A,i){let n=i?.scheduleInRootZone,o=()=>e1A(i?.ngZone,Ye(rA({},BH({eventCoalescing:i?.ngZoneEventCoalescing,runCoalescing:i?.ngZoneRunCoalescing})),{scheduleInRootZone:n})),r=i?.ignoreChangesOutsideZone,s=[sBA({ngZoneFactory:o,ignoreChangesOutsideZone:r}),{provide:DI,useExisting:cBA}],a=ZCA(A.moduleType,this.injector,s);return IBA({moduleRef:a,allPlatformModules:this._modules,platformInjector:this.injector})}bootstrapModule(A,i=[]){let n=jT({},i);return oBA(this.injector,n,A).then(o=>this.bootstrapModuleFactory(o,n))}onDestroy(A){this._destroyListeners.push(A)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Ae(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());let A=this._injector.get(ap,null);A&&(A.forEach(i=>i()),A.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static \u0275fac=function(i){return new(i||t)(we(Rt))};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),gh=null,QH=new dA("");function BBA(t){if(gh&&!gh.get(QH,!1))throw new Ae(400,!1);EdA(),gh=t;let e=t.get(EH);return hBA(t),e}function jb(t,e,A=[]){let i=`Platform: ${e}`,n=new dA(i);return(o=[])=>{let r=hH();if(!r||r.injector.get(QH,!1)){let s=[...A,...o,{provide:n,useValue:!0}];t?t(s):BBA(EBA(s,i))}return QBA(n)}}function EBA(t=[],e){return Rt.create({name:e,providers:[{provide:Cp,useValue:"platform"},{provide:ap,useValue:new Set([()=>gh=null])},...t]})}function QBA(t){let e=hH();if(!e)throw new Ae(401,!1);return e}function hH(){return gh?.get(EH)??null}function hBA(t){let e=t.get(Ib,null);ga(t,()=>{e?.forEach(A=>A())})}var It=(()=>{class t{static __NG_ELEMENT_ID__=uBA}return t})();function uBA(t){return fBA(os(),ei(),(t&16)===16)}function fBA(t,e,A){if(zd(t)&&!A){let i=Ag(t.index,e);return new Qh(i,i)}else if(t.type&175){let i=e[Oa];return new Qh(i,e)}return null}var R9=class{constructor(){}supports(e){return TT(e)}create(e){return new x9(e)}},mBA=(t,e)=>e,x9=class{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(e){this._trackByFn=e||mBA}forEachItem(e){let A;for(A=this._itHead;A!==null;A=A._next)e(A)}forEachOperation(e){let A=this._itHead,i=this._removalsHead,n=0,o=null;for(;A||i;){let r=!i||A&&A.currentIndex{r=this._trackByFn(n,s),A===null||!Object.is(A.trackById,r)?(A=this._mismatch(A,s,r,n),i=!0):(i&&(A=this._verifyReinsertion(A,s,r,n)),Object.is(A.item,s)||this._addIdentityChange(A,s)),A=A._next,n++}),this.length=n;return this._truncate(A),this.collection=e,this.isDirty}get isDirty(){return this._additionsHead!==null||this._movesHead!==null||this._removalsHead!==null||this._identityChangesHead!==null}_reset(){if(this.isDirty){let e;for(e=this._previousItHead=this._itHead;e!==null;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;e!==null;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;e!==null;e=e._nextMoved)e.previousIndex=e.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,A,i,n){let o;return e===null?o=this._itTail:(o=e._prev,this._remove(e)),e=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null),e!==null?(Object.is(e.item,A)||this._addIdentityChange(e,A),this._reinsertAfter(e,o,n)):(e=this._linkedRecords===null?null:this._linkedRecords.get(i,n),e!==null?(Object.is(e.item,A)||this._addIdentityChange(e,A),this._moveAfter(e,o,n)):e=this._addAfter(new L9(A,i),o,n)),e}_verifyReinsertion(e,A,i,n){let o=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null);return o!==null?e=this._reinsertAfter(o,e._prev,n):e.currentIndex!=n&&(e.currentIndex=n,this._addToMoves(e,n)),e}_truncate(e){for(;e!==null;){let A=e._next;this._addToRemovals(this._unlink(e)),e=A}this._unlinkedRecords!==null&&this._unlinkedRecords.clear(),this._additionsTail!==null&&(this._additionsTail._nextAdded=null),this._movesTail!==null&&(this._movesTail._nextMoved=null),this._itTail!==null&&(this._itTail._next=null),this._removalsTail!==null&&(this._removalsTail._nextRemoved=null),this._identityChangesTail!==null&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,A,i){this._unlinkedRecords!==null&&this._unlinkedRecords.remove(e);let n=e._prevRemoved,o=e._nextRemoved;return n===null?this._removalsHead=o:n._nextRemoved=o,o===null?this._removalsTail=n:o._prevRemoved=n,this._insertAfter(e,A,i),this._addToMoves(e,i),e}_moveAfter(e,A,i){return this._unlink(e),this._insertAfter(e,A,i),this._addToMoves(e,i),e}_addAfter(e,A,i){return this._insertAfter(e,A,i),this._additionsTail===null?this._additionsTail=this._additionsHead=e:this._additionsTail=this._additionsTail._nextAdded=e,e}_insertAfter(e,A,i){let n=A===null?this._itHead:A._next;return e._next=n,e._prev=A,n===null?this._itTail=e:n._prev=e,A===null?this._itHead=e:A._next=e,this._linkedRecords===null&&(this._linkedRecords=new cp),this._linkedRecords.put(e),e.currentIndex=i,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){this._linkedRecords!==null&&this._linkedRecords.remove(e);let A=e._prev,i=e._next;return A===null?this._itHead=i:A._next=i,i===null?this._itTail=A:i._prev=A,e}_addToMoves(e,A){return e.previousIndex===A||(this._movesTail===null?this._movesTail=this._movesHead=e:this._movesTail=this._movesTail._nextMoved=e),e}_addToRemovals(e){return this._unlinkedRecords===null&&(this._unlinkedRecords=new cp),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,this._removalsTail===null?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,A){return e.item=A,this._identityChangesTail===null?this._identityChangesTail=this._identityChangesHead=e:this._identityChangesTail=this._identityChangesTail._nextIdentityChange=e,e}},L9=class{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(e,A){this.item=e,this.trackById=A}},F9=class{_head=null;_tail=null;add(e){this._head===null?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,A){let i;for(i=this._head;i!==null;i=i._nextDup)if((A===null||A<=i.currentIndex)&&Object.is(i.trackById,e))return i;return null}remove(e){let A=e._prevDup,i=e._nextDup;return A===null?this._head=i:A._nextDup=i,i===null?this._tail=A:i._prevDup=A,this._head===null}},cp=class{map=new Map;put(e){let A=e.trackById,i=this.map.get(A);i||(i=new F9,this.map.set(A,i)),i.add(e)}get(e,A){let i=e,n=this.map.get(i);return n?n.get(e,A):null}remove(e){let A=e.trackById;return this.map.get(A).remove(e)&&this.map.delete(A),e}get isEmpty(){return this.map.size===0}clear(){this.map.clear()}};function EY(t,e,A){let i=t.previousIndex;if(i===null)return i;let n=0;return A&&i{if(A&&A.key===n)this._maybeAddToChanges(A,i),this._appendAfter=A,A=A._next;else{let o=this._getOrCreateRecordForKey(n,i);A=this._insertBeforeOrAppend(A,o)}}),A){A._prev&&(A._prev._next=null),this._removalsHead=A;for(let i=A;i!==null;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,A){if(e){let i=e._prev;return A._next=e,A._prev=i,e._prev=A,i&&(i._next=A),e===this._mapHead&&(this._mapHead=A),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=A,A._prev=this._appendAfter):this._mapHead=A,this._appendAfter=A,null}_getOrCreateRecordForKey(e,A){if(this._records.has(e)){let n=this._records.get(e);this._maybeAddToChanges(n,A);let o=n._prev,r=n._next;return o&&(o._next=r),r&&(r._prev=o),n._next=null,n._prev=null,n}let i=new G9(e);return this._records.set(e,i),i.currentValue=A,this._addToAdditions(i),i}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;e!==null;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;e!==null;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;e!=null;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,A){Object.is(A,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=A,this._addToChanges(e))}_addToAdditions(e){this._additionsHead===null?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){this._changesHead===null?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,A){e instanceof Map?e.forEach(A):Object.keys(e).forEach(i=>A(e[i],i))}},G9=class{key;previousValue=null;currentValue=null;_nextPrevious=null;_next=null;_prev=null;_nextAdded=null;_nextRemoved=null;_nextChanged=null;constructor(e){this.key=e}};function QY(){return new rg([new R9])}var rg=(()=>{class t{factories;static \u0275prov=NA({token:t,providedIn:"root",factory:QY});constructor(A){this.factories=A}static create(A,i){if(i!=null){let n=i.factories.slice();A=A.concat(n)}return new t(A)}static extend(A){return{provide:t,useFactory:i=>t.create(A,i||QY()),deps:[[t,new fh,new MI]]}}find(A){let i=this.factories.find(n=>n.supports(A));if(i!=null)return i;throw new Ae(901,!1)}}return t})();function hY(){return new _p([new N9])}var _p=(()=>{class t{static \u0275prov=NA({token:t,providedIn:"root",factory:hY});factories;constructor(A){this.factories=A}static create(A,i){if(i){let n=i.factories.slice();A=A.concat(n)}return new t(A)}static extend(A){return{provide:t,useFactory:i=>t.create(A,i||hY()),deps:[[t,new fh,new MI]]}}find(A){let i=this.factories.find(n=>n.supports(A));if(i)return i;throw new Ae(901,!1)}}return t})();var uH=jb(null,"core",[]),fH=(()=>{class t{constructor(A){}static \u0275fac=function(i){return new(i||t)(we(la))};static \u0275mod=Ce({type:t});static \u0275inj=Ie({})}return t})();function ie(t){return typeof t=="boolean"?t:t!=null&&t!=="false"}function zi(t,e=NaN){return!isNaN(parseFloat(t))&&!isNaN(Number(t))?Number(t):e}function Ba(t){return Av(t)}function h0(t,e){return Zf(t,e?.equal)}var U9=class{[ia];constructor(e){this[ia]=e}destroy(){this[ia].destroy()}};function Nh(t,e){!e?.injector&&z9(Nh);let A=e?.injector??f(Rt),i=e?.manualCleanup!==!0?A.get(m2):null,n,o=A.get(db,null,{optional:!0}),r=A.get(DI);return o!==null&&!e?.forceRoot?(n=DBA(o.view,r,t),i instanceof jm&&i._lView===o.view&&(i=null)):n=yBA(t,A.get(zT),r),n.injector=A,i!==null&&(n.onDestroyFn=i.onDestroy(()=>n.destroy())),new U9(n)}var mH=Ye(rA({},Bd),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,hasRun:!1,cleanupFns:void 0,zone:null,kind:"effect",onDestroyFn:Bh,run(){if(this.dirty=!1,this.hasRun&&!jf(this))return;this.hasRun=!0;let t=i=>(this.cleanupFns??=[]).push(i),e=ZQ(this),A=Tm(!1);try{this.maybeCleanup(),this.fn(t)}finally{Tm(A),Pf(this,e)}},maybeCleanup(){if(this.cleanupFns?.length)try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[]}}}),pBA=Ye(rA({},mH),{consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){WQ(this),this.onDestroyFn(),this.maybeCleanup(),this.scheduler.remove(this)}}),wBA=Ye(rA({},mH),{consumerMarkedDirty(){this.view[gi]|=8192,Pd(this.view),this.notifier.notify(13)},destroy(){WQ(this),this.onDestroyFn(),this.maybeCleanup(),this.view[uI]?.delete(this)}});function DBA(t,e,A){let i=Object.create(wBA);return i.view=t,i.zone=typeof Zone<"u"?Zone.current:null,i.notifier=e,i.fn=A,t[uI]??=new Set,t[uI].add(i),i.consumerMarkedDirty(i),i}function yBA(t,e,A){let i=Object.create(pBA);return i.fn=t,i.scheduler=e,i.notifier=A,i.zone=typeof Zone<"u"?Zone.current:null,i.scheduler.schedule(i),i.notifier.notify(12),i}function Gp(t,e){let A=h2(t),i=e.elementInjector||dp();return new yI(A).create(i,e.projectableNodes,e.hostElement,e.environmentInjector)}function pH(t){let e=h2(t);if(!e)return null;let A=new yI(e);return{get selector(){return A.selector},get type(){return A.componentType},get inputs(){return A.inputs},get outputs(){return A.outputs},get ngContentSelectors(){return A.ngContentSelectors},get isStandalone(){return e.standalone},get isSignal(){return e.signals}}}var at=new dA("");var yH=null;function Wa(){return yH}function qb(t){yH??=t}var _h=class{},Gh=(()=>{class t{historyGo(A){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:()=>f(vH),providedIn:"platform"})}return t})(),Vb=new dA(""),vH=(()=>{class t extends Gh{_location;_history;_doc=f(at);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Wa().getBaseHref(this._doc)}onPopState(A){let i=Wa().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",A,!1),()=>i.removeEventListener("popstate",A)}onHashChange(A){let i=Wa().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",A,!1),()=>i.removeEventListener("hashchange",A)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(A){this._location.pathname=A}pushState(A,i,n){this._history.pushState(A,i,n)}replaceState(A,i,n){this._history.replaceState(A,i,n)}forward(){this._history.forward()}back(){this._history.back()}historyGo(A=0){this._history.go(A)}getState(){return this._history.state}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function Up(t,e){return t?e?t.endsWith("/")?e.startsWith("/")?t+e.slice(1):t+e:e.startsWith("/")?t+e:`${t}/${e}`:t:e}function wH(t){let e=t.search(/#|\?|$/);return t[e-1]==="/"?t.slice(0,e-1)+t.slice(e):t}function al(t){return t&&t[0]!=="?"?`?${t}`:t}var u0=(()=>{class t{historyGo(A){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:()=>f(Yp),providedIn:"root"})}return t})(),Kp=new dA(""),Yp=(()=>{class t extends u0{_platformLocation;_baseHref;_removeListenerFns=[];constructor(A,i){super(),this._platformLocation=A,this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??f(at).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(A){this._removeListenerFns.push(this._platformLocation.onPopState(A),this._platformLocation.onHashChange(A))}getBaseHref(){return this._baseHref}prepareExternalUrl(A){return Up(this._baseHref,A)}path(A=!1){let i=this._platformLocation.pathname+al(this._platformLocation.search),n=this._platformLocation.hash;return n&&A?`${i}${n}`:i}pushState(A,i,n,o){let r=this.prepareExternalUrl(n+al(o));this._platformLocation.pushState(A,i,r)}replaceState(A,i,n,o){let r=this.prepareExternalUrl(n+al(o));this._platformLocation.replaceState(A,i,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(A=0){this._platformLocation.historyGo?.(A)}static \u0275fac=function(i){return new(i||t)(we(Gh),we(Kp,8))};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Dc=(()=>{class t{_subject=new OA;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(A){this._locationStrategy=A;let i=this._locationStrategy.getBaseHref();this._basePath=MBA(wH(DH(i))),this._locationStrategy.onPopState(n=>{this._subject.next({url:this.path(!0),pop:!0,state:n.state,type:n.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(A=!1){return this.normalize(this._locationStrategy.path(A))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(A,i=""){return this.path()==this.normalize(A+al(i))}normalize(A){return t.stripTrailingSlash(bBA(this._basePath,DH(A)))}prepareExternalUrl(A){return A&&A[0]!=="/"&&(A="/"+A),this._locationStrategy.prepareExternalUrl(A)}go(A,i="",n=null){this._locationStrategy.pushState(n,"",A,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(A+al(i)),n)}replaceState(A,i="",n=null){this._locationStrategy.replaceState(n,"",A,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(A+al(i)),n)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(A=0){this._locationStrategy.historyGo?.(A)}onUrlChange(A){return this._urlChangeListeners.push(A),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{let i=this._urlChangeListeners.indexOf(A);this._urlChangeListeners.splice(i,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(A="",i){this._urlChangeListeners.forEach(n=>n(A,i))}subscribe(A,i,n){return this._subject.subscribe({next:A,error:i??void 0,complete:n??void 0})}static normalizeQueryParams=al;static joinWithSlash=Up;static stripTrailingSlash=wH;static \u0275fac=function(i){return new(i||t)(we(u0))};static \u0275prov=NA({token:t,factory:()=>vBA(),providedIn:"root"})}return t})();function vBA(){return new Dc(we(u0))}function bBA(t,e){if(!t||!e.startsWith(t))return e;let A=e.substring(t.length);return A===""||["/",";","?","#"].includes(A[0])?A:e}function DH(t){return t.replace(/\/index.html$/,"")}function MBA(t){if(new RegExp("^(https?:)?//").test(t)){let[,A]=t.split(/\/\/[^\/]+/);return A}return t}var $b=(()=>{class t extends u0{_platformLocation;_baseHref="";_removeListenerFns=[];constructor(A,i){super(),this._platformLocation=A,i!=null&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(A){this._removeListenerFns.push(this._platformLocation.onPopState(A),this._platformLocation.onHashChange(A))}getBaseHref(){return this._baseHref}path(A=!1){let i=this._platformLocation.hash??"#";return i.length>0?i.substring(1):i}prepareExternalUrl(A){let i=Up(this._baseHref,A);return i.length>0?"#"+i:i}pushState(A,i,n,o){let r=this.prepareExternalUrl(n+al(o))||this._platformLocation.pathname;this._platformLocation.pushState(A,i,r)}replaceState(A,i,n,o){let r=this.prepareExternalUrl(n+al(o))||this._platformLocation.pathname;this._platformLocation.replaceState(A,i,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(A=0){this._platformLocation.historyGo?.(A)}static \u0275fac=function(i){return new(i||t)(we(Gh),we(Kp,8))};static \u0275prov=NA({token:t,factory:t.\u0275fac})}return t})();var Zb=/\s+/,bH=[],Xa=(()=>{class t{_ngEl;_renderer;initialClasses=bH;rawClass;stateMap=new Map;constructor(A,i){this._ngEl=A,this._renderer=i}set klass(A){this.initialClasses=A!=null?A.trim().split(Zb):bH}set ngClass(A){this.rawClass=typeof A=="string"?A.trim().split(Zb):A}ngDoCheck(){for(let i of this.initialClasses)this._updateState(i,!0);let A=this.rawClass;if(Array.isArray(A)||A instanceof Set)for(let i of A)this._updateState(i,!0);else if(A!=null)for(let i of Object.keys(A))this._updateState(i,!!A[i]);this._applyStateDiff()}_updateState(A,i){let n=this.stateMap.get(A);n!==void 0?(n.enabled!==i&&(n.changed=!0,n.enabled=i),n.touched=!0):this.stateMap.set(A,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(let A of this.stateMap){let i=A[0],n=A[1];n.changed?(this._toggleClass(i,n.enabled),n.changed=!1):n.touched||(n.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),n.touched=!1}}_toggleClass(A,i){A=A.trim(),A.length>0&&A.split(Zb).forEach(n=>{i?this._renderer.addClass(this._ngEl.nativeElement,n):this._renderer.removeClass(this._ngEl.nativeElement,n)})}static \u0275fac=function(i){return new(i||t)(PA(ee),PA(Wi))};static \u0275dir=jA({type:t,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return t})();var Jp=class{$implicit;ngForOf;index;count;constructor(e,A,i,n){this.$implicit=e,this.ngForOf=A,this.index=i,this.count=n}get first(){return this.index===0}get last(){return this.index===this.count-1}get even(){return this.index%2===0}get odd(){return!this.even}},Hp=(()=>{class t{_viewContainer;_template;_differs;set ngForOf(A){this._ngForOf=A,this._ngForOfDirty=!0}set ngForTrackBy(A){this._trackByFn=A}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(A,i,n){this._viewContainer=A,this._template=i,this._differs=n}set ngForTemplate(A){A&&(this._template=A)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;let A=this._ngForOf;!this._differ&&A&&(this._differ=this._differs.find(A).create(this.ngForTrackBy))}if(this._differ){let A=this._differ.diff(this._ngForOf);A&&this._applyChanges(A)}}_applyChanges(A){let i=this._viewContainer;A.forEachOperation((n,o,r)=>{if(n.previousIndex==null)i.createEmbeddedView(this._template,new Jp(n.item,this._ngForOf,-1,-1),r===null?void 0:r);else if(r==null)i.remove(o===null?void 0:o);else if(o!==null){let s=i.get(o);i.move(s,r),MH(s,n)}});for(let n=0,o=i.length;n{let o=i.get(n.currentIndex);MH(o,n)})}static ngTemplateContextGuard(A,i){return!0}static \u0275fac=function(i){return new(i||t)(PA(Nn),PA(wn),PA(rg))};static \u0275dir=jA({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return t})();function MH(t,e){t.context.$implicit=e.item}var Uh=(()=>{class t{_viewContainer;_context=new Tp;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(A,i){this._viewContainer=A,this._thenTemplateRef=i}set ngIf(A){this._context.$implicit=this._context.ngIf=A,this._updateView()}set ngIfThen(A){kH(A,!1),this._thenTemplateRef=A,this._thenViewRef=null,this._updateView()}set ngIfElse(A){kH(A,!1),this._elseTemplateRef=A,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(A,i){return!0}static \u0275fac=function(i){return new(i||t)(PA(Nn),PA(wn))};static \u0275dir=jA({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return t})(),Tp=class{$implicit=null;ngIf=null};function kH(t,e){if(t&&!t.createEmbeddedView)throw new Ae(2020,!1)}var Kh=(()=>{class t{_ngEl;_differs;_renderer;_ngStyle=null;_differ=null;constructor(A,i,n){this._ngEl=A,this._differs=i,this._renderer=n}set ngStyle(A){this._ngStyle=A,!this._differ&&A&&(this._differ=this._differs.find(A).create())}ngDoCheck(){if(this._differ){let A=this._differ.diff(this._ngStyle);A&&this._applyChanges(A)}}_setStyle(A,i){let[n,o]=A.split("."),r=n.indexOf("-")===-1?void 0:tg.DashCase;i!=null?this._renderer.setStyle(this._ngEl.nativeElement,n,o?`${i}${o}`:i,r):this._renderer.removeStyle(this._ngEl.nativeElement,n,r)}_applyChanges(A){A.forEachRemovedItem(i=>this._setStyle(i.key,null)),A.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),A.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static \u0275fac=function(i){return new(i||t)(PA(ee),PA(_p),PA(Wi))};static \u0275dir=jA({type:t,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}})}return t})(),Yh=(()=>{class t{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;constructor(A){this._viewContainerRef=A}ngOnChanges(A){if(this._shouldRecreateView(A)){let i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet){this._viewRef=null;return}let n=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,n,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(A){return!!A.ngTemplateOutlet||!!A.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(A,i,n)=>this.ngTemplateOutletContext?Reflect.set(this.ngTemplateOutletContext,i,n):!1,get:(A,i,n)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,n)}})}static \u0275fac=function(i){return new(i||t)(PA(Nn))};static \u0275dir=jA({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[ti]})}return t})();function kBA(t,e){return new Ae(2100,!1)}var Wb=class{createSubscription(e,A){return Ba(()=>e.subscribe({next:A,error:i=>{throw i}}))}dispose(e){Ba(()=>e.unsubscribe())}},Xb=class{createSubscription(e,A){return e.then(i=>A?.(i),i=>{throw i}),{unsubscribe:()=>{A=null}}}dispose(e){e.unsubscribe()}},SBA=new Xb,RBA=new Wb,Jh=(()=>{class t{_ref;_latestValue=null;markForCheckOnValueUpdate=!0;_subscription=null;_obj=null;_strategy=null;constructor(A){this._ref=A}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(A){if(!this._obj){if(A)try{this.markForCheckOnValueUpdate=!1,this._subscribe(A)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return A!==this._obj?(this._dispose(),this.transform(A)):this._latestValue}_subscribe(A){this._obj=A,this._strategy=this._selectStrategy(A),this._subscription=this._strategy.createSubscription(A,i=>this._updateLatestValue(A,i))}_selectStrategy(A){if(D2(A))return SBA;if(Kb(A))return RBA;throw kBA(t,A)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(A,i){A===this._obj&&(this._latestValue=i,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static \u0275fac=function(i){return new(i||t)(PA(It,16))};static \u0275pipe=xp({name:"async",type:t,pure:!1})}return t})();function xBA(t,e){return{key:t,value:e}}var Th=(()=>{class t{differs;constructor(A){this.differs=A}differ;keyValues=[];compareFn=SH;transform(A,i=SH){if(!A||!(A instanceof Map)&&typeof A!="object")return null;this.differ??=this.differs.find(A).create();let n=this.differ.diff(A),o=i!==this.compareFn;return n&&(this.keyValues=[],n.forEachItem(r=>{this.keyValues.push(xBA(r.key,r.currentValue))})),(n||o)&&(i&&this.keyValues.sort(i),this.compareFn=i),this.keyValues}static \u0275fac=function(i){return new(i||t)(PA(_p,16))};static \u0275pipe=xp({name:"keyvalue",type:t,pure:!1})}return t})();function SH(t,e){let A=t.key,i=e.key;if(A===i)return 0;if(A==null)return 1;if(i==null)return-1;if(typeof A=="string"&&typeof i=="string")return A{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({})}return t})();function Hh(t,e){e=encodeURIComponent(e);for(let A of t.split(";")){let i=A.indexOf("="),[n,o]=i==-1?[A,""]:[A.slice(0,i),A.slice(i+1)];if(n.trim()===e)return decodeURIComponent(o)}return null}var zp="browser",RH="server";function sg(t){return t===zp}function Op(t){return t===RH}var xI=class{};var xH=(()=>{class t{static \u0275prov=NA({token:t,providedIn:"root",factory:()=>new AM(f(at),window)})}return t})(),AM=class{document;window;offset=()=>[0,0];constructor(e,A){this.document=e,this.window=A}setOffset(e){Array.isArray(e)?this.offset=()=>e:this.offset=e}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(e){this.window.scrollTo(e[0],e[1])}scrollToAnchor(e){let A=LBA(this.document,e);A&&(this.scrollToElement(A),A.focus())}setHistoryScrollRestoration(e){this.window.history.scrollRestoration=e}scrollToElement(e){let A=e.getBoundingClientRect(),i=A.left+this.window.pageXOffset,n=A.top+this.window.pageYOffset,o=this.offset();this.window.scrollTo(i-o[0],n-o[1])}};function LBA(t,e){let A=t.getElementById(e)||t.getElementsByName(e)[0];if(A)return A;if(typeof t.createTreeWalker=="function"&&t.body&&typeof t.body.attachShadow=="function"){let i=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT),n=i.currentNode;for(;n;){let o=n.shadowRoot;if(o){let r=o.getElementById(e)||o.querySelector(`[name="${e}"]`);if(r)return r}n=i.nextNode()}}return null}var qp=new dA(""),nM=(()=>{class t{_zone;_plugins;_eventNameToPlugin=new Map;constructor(A,i){this._zone=i,A.forEach(n=>{n.manager=this}),this._plugins=A.slice().reverse()}addEventListener(A,i,n,o){return this._findPluginFor(i).addEventListener(A,i,n,o)}getZone(){return this._zone}_findPluginFor(A){let i=this._eventNameToPlugin.get(A);if(i)return i;if(i=this._plugins.find(o=>o.supports(A)),!i)throw new Ae(5101,!1);return this._eventNameToPlugin.set(A,i),i}static \u0275fac=function(i){return new(i||t)(we(qp),we(Qe))};static \u0275prov=NA({token:t,factory:t.\u0275fac})}return t})(),zh=class{_doc;constructor(e){this._doc=e}manager},Pp="ng-app-id";function LH(t){for(let e of t)e.remove()}function FH(t,e){let A=e.createElement("style");return A.textContent=t,A}function FBA(t,e,A,i){let n=t.head?.querySelectorAll(`style[${Pp}="${e}"],link[${Pp}="${e}"]`);if(n)for(let o of n)o.removeAttribute(Pp),o instanceof HTMLLinkElement?i.set(o.href.slice(o.href.lastIndexOf("/")+1),{usage:0,elements:[o]}):o.textContent&&A.set(o.textContent,{usage:0,elements:[o]})}function tM(t,e){let A=e.createElement("link");return A.setAttribute("rel","stylesheet"),A.setAttribute("href",t),A}var oM=(()=>{class t{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;isServer;constructor(A,i,n,o={}){this.doc=A,this.appId=i,this.nonce=n,this.isServer=Op(o),FBA(A,i,this.inline,this.external),this.hosts.add(A.head)}addStyles(A,i){for(let n of A)this.addUsage(n,this.inline,FH);i?.forEach(n=>this.addUsage(n,this.external,tM))}removeStyles(A,i){for(let n of A)this.removeUsage(n,this.inline);i?.forEach(n=>this.removeUsage(n,this.external))}addUsage(A,i,n){let o=i.get(A);o?o.usage++:i.set(A,{usage:1,elements:[...this.hosts].map(r=>this.addElement(r,n(A,this.doc)))})}removeUsage(A,i){let n=i.get(A);n&&(n.usage--,n.usage<=0&&(LH(n.elements),i.delete(A)))}ngOnDestroy(){for(let[,{elements:A}]of[...this.inline,...this.external])LH(A);this.hosts.clear()}addHost(A){this.hosts.add(A);for(let[i,{elements:n}]of this.inline)n.push(this.addElement(A,FH(i,this.doc)));for(let[i,{elements:n}]of this.external)n.push(this.addElement(A,tM(i,this.doc)))}removeHost(A){this.hosts.delete(A)}addElement(A,i){return this.nonce&&i.setAttribute("nonce",this.nonce),this.isServer&&i.setAttribute(Pp,this.appId),A.appendChild(i)}static \u0275fac=function(i){return new(i||t)(we(at),we(Vd),we(yh,8),we(og))};static \u0275prov=NA({token:t,factory:t.\u0275fac})}return t})(),eM={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},rM=/%COMP%/g;var _H="%COMP%",NBA=`_nghost-${_H}`,_BA=`_ngcontent-${_H}`,GBA=!0,UBA=new dA("",{providedIn:"root",factory:()=>GBA});function KBA(t){return _BA.replace(rM,t)}function YBA(t){return NBA.replace(rM,t)}function GH(t,e){return e.map(A=>A.replace(rM,t))}var jh=(()=>{class t{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;platformId;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;platformIsServer;constructor(A,i,n,o,r,s,a,c=null,l=null){this.eventManager=A,this.sharedStylesHost=i,this.appId=n,this.removeStylesOnCompDestroy=o,this.doc=r,this.platformId=s,this.ngZone=a,this.nonce=c,this.tracingService=l,this.platformIsServer=Op(s),this.defaultRenderer=new Oh(A,r,a,this.platformIsServer,this.tracingService)}createRenderer(A,i){if(!A||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===eg.ShadowDom&&(i=Ye(rA({},i),{encapsulation:eg.Emulated}));let n=this.getOrCreateRenderer(A,i);return n instanceof jp?n.applyToHost(A):n instanceof Ph&&n.applyStyles(),n}getOrCreateRenderer(A,i){let n=this.rendererByCompId,o=n.get(i.id);if(!o){let r=this.doc,s=this.ngZone,a=this.eventManager,c=this.sharedStylesHost,l=this.removeStylesOnCompDestroy,I=this.platformIsServer,C=this.tracingService;switch(i.encapsulation){case eg.Emulated:o=new jp(a,c,i,this.appId,l,r,s,I,C);break;case eg.ShadowDom:return new iM(a,c,A,i,r,s,this.nonce,I,C);default:o=new Ph(a,c,i,l,r,s,I,C);break}n.set(i.id,o)}return o}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(A){this.rendererByCompId.delete(A)}static \u0275fac=function(i){return new(i||t)(we(nM),we(oM),we(Vd),we(UBA),we(at),we(og),we(Qe),we(yh),we(Zd,8))};static \u0275prov=NA({token:t,factory:t.\u0275fac})}return t})(),Oh=class{eventManager;doc;ngZone;platformIsServer;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(e,A,i,n,o){this.eventManager=e,this.doc=A,this.ngZone=i,this.platformIsServer=n,this.tracingService=o}destroy(){}destroyNode=null;createElement(e,A){return A?this.doc.createElementNS(eM[A]||A,e):this.doc.createElement(e)}createComment(e){return this.doc.createComment(e)}createText(e){return this.doc.createTextNode(e)}appendChild(e,A){(NH(e)?e.content:e).appendChild(A)}insertBefore(e,A,i){e&&(NH(e)?e.content:e).insertBefore(A,i)}removeChild(e,A){A.remove()}selectRootElement(e,A){let i=typeof e=="string"?this.doc.querySelector(e):e;if(!i)throw new Ae(-5104,!1);return A||(i.textContent=""),i}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,A,i,n){if(n){A=n+":"+A;let o=eM[n];o?e.setAttributeNS(o,A,i):e.setAttribute(A,i)}else e.setAttribute(A,i)}removeAttribute(e,A,i){if(i){let n=eM[i];n?e.removeAttributeNS(n,A):e.removeAttribute(`${i}:${A}`)}else e.removeAttribute(A)}addClass(e,A){e.classList.add(A)}removeClass(e,A){e.classList.remove(A)}setStyle(e,A,i,n){n&(tg.DashCase|tg.Important)?e.style.setProperty(A,i,n&tg.Important?"important":""):e.style[A]=i}removeStyle(e,A,i){i&tg.DashCase?e.style.removeProperty(A):e.style[A]=""}setProperty(e,A,i){e!=null&&(e[A]=i)}setValue(e,A){e.nodeValue=A}listen(e,A,i,n){if(typeof e=="string"&&(e=Wa().getGlobalEventTarget(this.doc,e),!e))throw new Ae(5102,!1);let o=this.decoratePreventDefault(i);return this.tracingService?.wrapEventListener&&(o=this.tracingService.wrapEventListener(e,A,o)),this.eventManager.addEventListener(e,A,o,n)}decoratePreventDefault(e){return A=>{if(A==="__ngUnwrap__")return e;(this.platformIsServer?this.ngZone.runGuarded(()=>e(A)):e(A))===!1&&A.preventDefault()}}};function NH(t){return t.tagName==="TEMPLATE"&&t.content!==void 0}var iM=class extends Oh{sharedStylesHost;hostEl;shadowRoot;constructor(e,A,i,n,o,r,s,a,c){super(e,o,r,a,c),this.sharedStylesHost=A,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);let l=n.styles;l=GH(n.id,l);for(let C of l){let d=document.createElement("style");s&&d.setAttribute("nonce",s),d.textContent=C,this.shadowRoot.appendChild(d)}let I=n.getExternalStyles?.();if(I)for(let C of I){let d=tM(C,o);s&&d.setAttribute("nonce",s),this.shadowRoot.appendChild(d)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}appendChild(e,A){return super.appendChild(this.nodeOrShadowRoot(e),A)}insertBefore(e,A,i){return super.insertBefore(this.nodeOrShadowRoot(e),A,i)}removeChild(e,A){return super.removeChild(null,A)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}},Ph=class extends Oh{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(e,A,i,n,o,r,s,a,c){super(e,o,r,s,a),this.sharedStylesHost=A,this.removeStylesOnCompDestroy=n;let l=i.styles;this.styles=c?GH(c,l):l,this.styleUrls=i.getExternalStyles?.(c)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},jp=class extends Ph{contentAttr;hostAttr;constructor(e,A,i,n,o,r,s,a,c){let l=n+"-"+i.id;super(e,A,i,o,r,s,a,c,l),this.contentAttr=KBA(l),this.hostAttr=YBA(l)}applyToHost(e){this.applyStyles(),this.setAttribute(e,this.hostAttr,"")}createElement(e,A){let i=super.createElement(e,A);return super.setAttribute(i,this.contentAttr,""),i}};var Vp=class t extends _h{supportsDOMEvents=!0;static makeCurrent(){qb(new t)}onAndCancel(e,A,i,n){return e.addEventListener(A,i,n),()=>{e.removeEventListener(A,i,n)}}dispatchEvent(e,A){e.dispatchEvent(A)}remove(e){e.remove()}createElement(e,A){return A=A||this.getDefaultDocument(),A.createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,A){return A==="window"?window:A==="document"?e:A==="body"?e.body:null}getBaseHref(e){let A=JBA();return A==null?null:TBA(A)}resetBaseElement(){qh=null}getUserAgent(){return window.navigator.userAgent}getCookie(e){return Hh(document.cookie,e)}},qh=null;function JBA(){return qh=qh||document.head.querySelector("base"),qh?qh.getAttribute("href"):null}function TBA(t){return new URL(t,document.baseURI).pathname}var Zp=class{addToWindow(e){sa.getAngularTestability=(i,n=!0)=>{let o=e.findTestabilityInTree(i,n);if(o==null)throw new Ae(5103,!1);return o},sa.getAllAngularTestabilities=()=>e.getAllTestabilities(),sa.getAllAngularRootElements=()=>e.getAllRootElements();let A=i=>{let n=sa.getAllAngularTestabilities(),o=n.length,r=function(){o--,o==0&&i()};n.forEach(s=>{s.whenStable(r)})};sa.frameworkStabilizers||(sa.frameworkStabilizers=[]),sa.frameworkStabilizers.push(A)}findTestabilityInTree(e,A,i){if(A==null)return null;let n=e.getTestability(A);return n??(i?Wa().isShadowRoot(A)?this.findTestabilityInTree(e,A.host,!0):this.findTestabilityInTree(e,A.parentElement,!0):null)}},HBA=(()=>{class t{build(){return new XMLHttpRequest}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac})}return t})(),KH=(()=>{class t extends zh{constructor(A){super(A)}supports(A){return!0}addEventListener(A,i,n,o){return A.addEventListener(i,n,o),()=>this.removeEventListener(A,i,n,o)}removeEventListener(A,i,n,o){return A.removeEventListener(i,n,o)}static \u0275fac=function(i){return new(i||t)(we(at))};static \u0275prov=NA({token:t,factory:t.\u0275fac})}return t})(),UH=["alt","control","meta","shift"],zBA={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},OBA={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey},YH=(()=>{class t extends zh{constructor(A){super(A)}supports(A){return t.parseEventName(A)!=null}addEventListener(A,i,n,o){let r=t.parseEventName(i),s=t.eventCallback(r.fullKey,n,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Wa().onAndCancel(A,r.domEventName,s,o))}static parseEventName(A){let i=A.toLowerCase().split("."),n=i.shift();if(i.length===0||!(n==="keydown"||n==="keyup"))return null;let o=t._normalizeKey(i.pop()),r="",s=i.indexOf("code");if(s>-1&&(i.splice(s,1),r="code."),UH.forEach(c=>{let l=i.indexOf(c);l>-1&&(i.splice(l,1),r+=c+".")}),r+=o,i.length!=0||o.length===0)return null;let a={};return a.domEventName=n,a.fullKey=r,a}static matchEventFullKeyCode(A,i){let n=zBA[A.key]||A.key,o="";return i.indexOf("code.")>-1&&(n=A.code,o="code."),n==null||!n?!1:(n=n.toLowerCase(),n===" "?n="space":n==="."&&(n="dot"),UH.forEach(r=>{if(r!==n){let s=OBA[r];s(A)&&(o+=r+".")}}),o+=n,o===i)}static eventCallback(A,i,n){return o=>{t.matchEventFullKeyCode(o,A)&&n.runGuarded(()=>i(o))}}static _normalizeKey(A){return A==="esc"?"escape":A}static \u0275fac=function(i){return new(i||t)(we(at))};static \u0275prov=NA({token:t,factory:t.\u0275fac})}return t})();function PBA(){Vp.makeCurrent()}function jBA(){return new aa}function qBA(){return xJ(document),document}var VBA=[{provide:og,useValue:zp},{provide:Ib,useValue:PBA,multi:!0},{provide:at,useFactory:qBA}],Wp=jb(uH,"browser",VBA);var ZBA=[{provide:xh,useClass:Zp},{provide:Gb,useClass:Lp,deps:[Qe,Fp,xh]},{provide:Lp,useClass:Lp,deps:[Qe,Fp,xh]}],WBA=[{provide:Cp,useValue:"root"},{provide:aa,useFactory:jBA},{provide:qp,useClass:KH,multi:!0,deps:[at]},{provide:qp,useClass:YH,multi:!0,deps:[at]},jh,oM,nM,{provide:ws,useExisting:jh},{provide:xI,useClass:HBA},[]],Vh=(()=>{class t{constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({providers:[...WBA,...ZBA],imports:[f0,fH]})}return t})();var AB=class{},Zh=class{},S2=class t{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(e){e?typeof e=="string"?this.lazyInit=()=>{this.headers=new Map,e.split(` -`).forEach(A=>{let i=A.indexOf(":");if(i>0){let n=A.slice(0,i),o=A.slice(i+1).trim();this.addHeaderEntry(n,o)}})}:typeof Headers<"u"&&e instanceof Headers?(this.headers=new Map,e.forEach((A,i)=>{this.addHeaderEntry(i,A)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(e).forEach(([A,i])=>{this.setHeaderEntries(A,i)})}:this.headers=new Map}has(e){return this.init(),this.headers.has(e.toLowerCase())}get(e){this.init();let A=this.headers.get(e.toLowerCase());return A&&A.length>0?A[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(e){return this.init(),this.headers.get(e.toLowerCase())||null}append(e,A){return this.clone({name:e,value:A,op:"a"})}set(e,A){return this.clone({name:e,value:A,op:"s"})}delete(e,A){return this.clone({name:e,value:A,op:"d"})}maybeSetNormalizedName(e,A){this.normalizedNames.has(A)||this.normalizedNames.set(A,e)}init(){this.lazyInit&&(this.lazyInit instanceof t?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(e=>this.applyUpdate(e)),this.lazyUpdate=null))}copyFrom(e){e.init(),Array.from(e.headers.keys()).forEach(A=>{this.headers.set(A,e.headers.get(A)),this.normalizedNames.set(A,e.normalizedNames.get(A))})}clone(e){let A=new t;return A.lazyInit=this.lazyInit&&this.lazyInit instanceof t?this.lazyInit:this,A.lazyUpdate=(this.lazyUpdate||[]).concat([e]),A}applyUpdate(e){let A=e.name.toLowerCase();switch(e.op){case"a":case"s":let i=e.value;if(typeof i=="string"&&(i=[i]),i.length===0)return;this.maybeSetNormalizedName(e.name,A);let n=(e.op==="a"?this.headers.get(A):void 0)||[];n.push(...i),this.headers.set(A,n);break;case"d":let o=e.value;if(!o)this.headers.delete(A),this.normalizedNames.delete(A);else{let r=this.headers.get(A);if(!r)return;r=r.filter(s=>o.indexOf(s)===-1),r.length===0?(this.headers.delete(A),this.normalizedNames.delete(A)):this.headers.set(A,r)}break}}addHeaderEntry(e,A){let i=e.toLowerCase();this.maybeSetNormalizedName(e,i),this.headers.has(i)?this.headers.get(i).push(A):this.headers.set(i,[A])}setHeaderEntries(e,A){let i=(Array.isArray(A)?A:[A]).map(o=>o.toString()),n=e.toLowerCase();this.headers.set(n,i),this.maybeSetNormalizedName(e,n)}forEach(e){this.init(),Array.from(this.normalizedNames.keys()).forEach(A=>e(this.normalizedNames.get(A),this.headers.get(A)))}};var $p=class{encodeKey(e){return JH(e)}encodeValue(e){return JH(e)}decodeKey(e){return decodeURIComponent(e)}decodeValue(e){return decodeURIComponent(e)}};function XBA(t,e){let A=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(n=>{let o=n.indexOf("="),[r,s]=o==-1?[e.decodeKey(n),""]:[e.decodeKey(n.slice(0,o)),e.decodeValue(n.slice(o+1))],a=A.get(r)||[];a.push(s),A.set(r,a)}),A}var $BA=/%(\d[a-f0-9])/gi,AEA={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function JH(t){return encodeURIComponent(t).replace($BA,(e,A)=>AEA[A]??e)}function Xp(t){return`${t}`}var m0=class t{map;encoder;updates=null;cloneFrom=null;constructor(e={}){if(this.encoder=e.encoder||new $p,e.fromString){if(e.fromObject)throw new Ae(2805,!1);this.map=XBA(e.fromString,this.encoder)}else e.fromObject?(this.map=new Map,Object.keys(e.fromObject).forEach(A=>{let i=e.fromObject[A],n=Array.isArray(i)?i.map(Xp):[Xp(i)];this.map.set(A,n)})):this.map=null}has(e){return this.init(),this.map.has(e)}get(e){this.init();let A=this.map.get(e);return A?A[0]:null}getAll(e){return this.init(),this.map.get(e)||null}keys(){return this.init(),Array.from(this.map.keys())}append(e,A){return this.clone({param:e,value:A,op:"a"})}appendAll(e){let A=[];return Object.keys(e).forEach(i=>{let n=e[i];Array.isArray(n)?n.forEach(o=>{A.push({param:i,value:o,op:"a"})}):A.push({param:i,value:n,op:"a"})}),this.clone(A)}set(e,A){return this.clone({param:e,value:A,op:"s"})}delete(e,A){return this.clone({param:e,value:A,op:"d"})}toString(){return this.init(),this.keys().map(e=>{let A=this.encoder.encodeKey(e);return this.map.get(e).map(i=>A+"="+this.encoder.encodeValue(i)).join("&")}).filter(e=>e!=="").join("&")}clone(e){let A=new t({encoder:this.encoder});return A.cloneFrom=this.cloneFrom||this,A.updates=(this.updates||[]).concat(e),A}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(e=>this.map.set(e,this.cloneFrom.map.get(e))),this.updates.forEach(e=>{switch(e.op){case"a":case"s":let A=(e.op==="a"?this.map.get(e.param):void 0)||[];A.push(Xp(e.value)),this.map.set(e.param,A);break;case"d":if(e.value!==void 0){let i=this.map.get(e.param)||[],n=i.indexOf(Xp(e.value));n!==-1&&i.splice(n,1),i.length>0?this.map.set(e.param,i):this.map.delete(e.param)}else{this.map.delete(e.param);break}}}),this.cloneFrom=this.updates=null)}};var A6=class{map=new Map;set(e,A){return this.map.set(e,A),this}get(e){return this.map.has(e)||this.map.set(e,e.defaultValue()),this.map.get(e)}delete(e){return this.map.delete(e),this}has(e){return this.map.has(e)}keys(){return this.map.keys()}};function eEA(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function TH(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function HH(t){return typeof Blob<"u"&&t instanceof Blob}function zH(t){return typeof FormData<"u"&&t instanceof FormData}function tEA(t){return typeof URLSearchParams<"u"&&t instanceof URLSearchParams}var OH="Content-Type",PH="Accept",qH="X-Request-URL",VH="text/plain",ZH="application/json",iEA=`${ZH}, ${VH}, */*`,$d=class t{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;responseType="json";method;params;urlWithParams;transferCache;constructor(e,A,i,n){this.url=A,this.method=e.toUpperCase();let o;if(eEA(this.method)||n?(this.body=i!==void 0?i:null,o=n):o=i,o&&(this.reportProgress=!!o.reportProgress,this.withCredentials=!!o.withCredentials,o.responseType&&(this.responseType=o.responseType),o.headers&&(this.headers=o.headers),o.context&&(this.context=o.context),o.params&&(this.params=o.params),this.transferCache=o.transferCache),this.headers??=new S2,this.context??=new A6,!this.params)this.params=new m0,this.urlWithParams=A;else{let r=this.params.toString();if(r.length===0)this.urlWithParams=A;else{let s=A.indexOf("?"),a=s===-1?"?":sC.set(d,e.setHeaders[d]),c)),e.setParams&&(l=Object.keys(e.setParams).reduce((C,d)=>C.set(d,e.setParams[d]),l)),new t(A,i,r,{params:l,headers:c,context:I,reportProgress:a,responseType:n,withCredentials:s,transferCache:o})}},LI=function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t}(LI||{}),eB=class{headers;status;statusText;url;ok;type;constructor(e,A=200,i="OK"){this.headers=e.headers||new S2,this.status=e.status!==void 0?e.status:A,this.statusText=e.statusText||i,this.url=e.url||null,this.ok=this.status>=200&&this.status<300}},e6=class t extends eB{constructor(e={}){super(e)}type=LI.ResponseHeader;clone(e={}){return new t({headers:e.headers||this.headers,status:e.status!==void 0?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}},Wh=class t extends eB{body;constructor(e={}){super(e),this.body=e.body!==void 0?e.body:null}type=LI.Response;clone(e={}){return new t({body:e.body!==void 0?e.body:this.body,headers:e.headers||this.headers,status:e.status!==void 0?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}},Xh=class extends eB{name="HttpErrorResponse";message;error;ok=!1;constructor(e){super(e,0,"Unknown Error"),this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${e.url||"(unknown url)"}`:this.message=`Http failure response for ${e.url||"(unknown url)"}: ${e.status} ${e.statusText}`,this.error=e.error||null}},nEA=200,oEA=204;function sM(t,e){return{body:e,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials,transferCache:t.transferCache}}var Ds=(()=>{class t{handler;constructor(A){this.handler=A}request(A,i,n={}){let o;if(A instanceof $d)o=A;else{let a;n.headers instanceof S2?a=n.headers:a=new S2(n.headers);let c;n.params&&(n.params instanceof m0?c=n.params:c=new m0({fromObject:n.params})),o=new $d(A,i,n.body!==void 0?n.body:null,{headers:a,context:n.context,params:c,reportProgress:n.reportProgress,responseType:n.responseType||"json",withCredentials:n.withCredentials,transferCache:n.transferCache})}let r=Me(o).pipe(ql(a=>this.handler.handle(a)));if(A instanceof $d||n.observe==="events")return r;let s=r.pipe(kt(a=>a instanceof Wh));switch(n.observe||"body"){case"body":switch(o.responseType){case"arraybuffer":return s.pipe(je(a=>{if(a.body!==null&&!(a.body instanceof ArrayBuffer))throw new Ae(2806,!1);return a.body}));case"blob":return s.pipe(je(a=>{if(a.body!==null&&!(a.body instanceof Blob))throw new Ae(2807,!1);return a.body}));case"text":return s.pipe(je(a=>{if(a.body!==null&&typeof a.body!="string")throw new Ae(2808,!1);return a.body}));case"json":default:return s.pipe(je(a=>a.body))}case"response":return s;default:throw new Ae(2809,!1)}}delete(A,i={}){return this.request("DELETE",A,i)}get(A,i={}){return this.request("GET",A,i)}head(A,i={}){return this.request("HEAD",A,i)}jsonp(A,i){return this.request("JSONP",A,{params:new m0().append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(A,i={}){return this.request("OPTIONS",A,i)}patch(A,i,n={}){return this.request("PATCH",A,sM(n,i))}post(A,i,n={}){return this.request("POST",A,sM(n,i))}put(A,i,n={}){return this.request("PUT",A,sM(n,i))}static \u0275fac=function(i){return new(i||t)(we(AB))};static \u0275prov=NA({token:t,factory:t.\u0275fac})}return t})();var rEA=new dA("");function WH(t,e){return e(t)}function sEA(t,e){return(A,i)=>e.intercept(A,{handle:n=>t(n,i)})}function aEA(t,e,A){return(i,n)=>ga(A,()=>e(i,o=>t(o,n)))}var XH=new dA(""),cM=new dA(""),$H=new dA(""),lM=new dA("",{providedIn:"root",factory:()=>!0});function cEA(){let t=null;return(e,A)=>{t===null&&(t=(f(XH,{optional:!0})??[]).reduceRight(sEA,WH));let i=f(B0);if(f(lM)){let o=i.add();return t(e,A).pipe(Vl(()=>i.remove(o)))}else return t(e,A)}}var t6=(()=>{class t extends AB{backend;injector;chain=null;pendingTasks=f(B0);contributeToStability=f(lM);constructor(A,i){super(),this.backend=A,this.injector=i}handle(A){if(this.chain===null){let i=Array.from(new Set([...this.injector.get(cM),...this.injector.get($H,[])]));this.chain=i.reduceRight((n,o)=>aEA(n,o,this.injector),WH)}if(this.contributeToStability){let i=this.pendingTasks.add();return this.chain(A,n=>this.backend.handle(n)).pipe(Vl(()=>this.pendingTasks.remove(i)))}else return this.chain(A,i=>this.backend.handle(i))}static \u0275fac=function(i){return new(i||t)(we(Zh),we(pr))};static \u0275prov=NA({token:t,factory:t.\u0275fac})}return t})();var lEA=/^\)\]\}',?\n/,gEA=RegExp(`^${qH}:`,"m");function IEA(t){return"responseURL"in t&&t.responseURL?t.responseURL:gEA.test(t.getAllResponseHeaders())?t.getResponseHeader(qH):null}var aM=(()=>{class t{xhrFactory;constructor(A){this.xhrFactory=A}handle(A){if(A.method==="JSONP")throw new Ae(-2800,!1);let i=this.xhrFactory;return(i.\u0275loadImpl?oo(i.\u0275loadImpl()):Me(null)).pipe(jn(()=>new ct(o=>{let r=i.build();if(r.open(A.method,A.urlWithParams),A.withCredentials&&(r.withCredentials=!0),A.headers.forEach((E,h)=>r.setRequestHeader(E,h.join(","))),A.headers.has(PH)||r.setRequestHeader(PH,iEA),!A.headers.has(OH)){let E=A.detectContentTypeHeader();E!==null&&r.setRequestHeader(OH,E)}if(A.responseType){let E=A.responseType.toLowerCase();r.responseType=E!=="json"?E:"text"}let s=A.serializeBody(),a=null,c=()=>{if(a!==null)return a;let E=r.statusText||"OK",h=new S2(r.getAllResponseHeaders()),u=IEA(r)||A.url;return a=new e6({headers:h,status:r.status,statusText:E,url:u}),a},l=()=>{let{headers:E,status:h,statusText:u,url:D}=c(),L=null;h!==oEA&&(L=typeof r.response>"u"?r.responseText:r.response),h===0&&(h=L?nEA:0);let R=h>=200&&h<300;if(A.responseType==="json"&&typeof L=="string"){let w=L;L=L.replace(lEA,"");try{L=L!==""?JSON.parse(L):null}catch(_){L=w,R&&(R=!1,L={error:_,text:L})}}R?(o.next(new Wh({body:L,headers:E,status:h,statusText:u,url:D||void 0})),o.complete()):o.error(new Xh({error:L,headers:E,status:h,statusText:u,url:D||void 0}))},I=E=>{let{url:h}=c(),u=new Xh({error:E,status:r.status||0,statusText:r.statusText||"Unknown Error",url:h||void 0});o.error(u)},C=!1,d=E=>{C||(o.next(c()),C=!0);let h={type:LI.DownloadProgress,loaded:E.loaded};E.lengthComputable&&(h.total=E.total),A.responseType==="text"&&r.responseText&&(h.partialText=r.responseText),o.next(h)},B=E=>{let h={type:LI.UploadProgress,loaded:E.loaded};E.lengthComputable&&(h.total=E.total),o.next(h)};return r.addEventListener("load",l),r.addEventListener("error",I),r.addEventListener("timeout",I),r.addEventListener("abort",I),A.reportProgress&&(r.addEventListener("progress",d),s!==null&&r.upload&&r.upload.addEventListener("progress",B)),r.send(s),o.next({type:LI.Sent}),()=>{r.removeEventListener("error",I),r.removeEventListener("abort",I),r.removeEventListener("load",l),r.removeEventListener("timeout",I),A.reportProgress&&(r.removeEventListener("progress",d),s!==null&&r.upload&&r.upload.removeEventListener("progress",B)),r.readyState!==r.DONE&&r.abort()}})))}static \u0275fac=function(i){return new(i||t)(we(xI))};static \u0275prov=NA({token:t,factory:t.\u0275fac})}return t})(),Az=new dA(""),CEA="XSRF-TOKEN",dEA=new dA("",{providedIn:"root",factory:()=>CEA}),BEA="X-XSRF-TOKEN",EEA=new dA("",{providedIn:"root",factory:()=>BEA}),$h=class{},QEA=(()=>{class t{doc;cookieName;lastCookieString="";lastToken=null;parseCount=0;constructor(A,i){this.doc=A,this.cookieName=i}getToken(){let A=this.doc.cookie||"";return A!==this.lastCookieString&&(this.parseCount++,this.lastToken=Hh(A,this.cookieName),this.lastCookieString=A),this.lastToken}static \u0275fac=function(i){return new(i||t)(we(at),we(dEA))};static \u0275prov=NA({token:t,factory:t.\u0275fac})}return t})();function hEA(t,e){let A=t.url.toLowerCase();if(!f(Az)||t.method==="GET"||t.method==="HEAD"||A.startsWith("http://")||A.startsWith("https://"))return e(t);let i=f($h).getToken(),n=f(EEA);return i!=null&&!t.headers.has(n)&&(t=t.clone({headers:t.headers.set(n,i)})),e(t)}var gM=function(t){return t[t.Interceptors=0]="Interceptors",t[t.LegacyInterceptors=1]="LegacyInterceptors",t[t.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",t[t.NoXsrfProtection=3]="NoXsrfProtection",t[t.JsonpSupport=4]="JsonpSupport",t[t.RequestsMadeViaParent=5]="RequestsMadeViaParent",t[t.Fetch=6]="Fetch",t}(gM||{});function uEA(t,e){return{\u0275kind:t,\u0275providers:e}}function ez(...t){let e=[Ds,aM,t6,{provide:AB,useExisting:t6},{provide:Zh,useFactory:()=>f(rEA,{optional:!0})??f(aM)},{provide:cM,useValue:hEA,multi:!0},{provide:Az,useValue:!0},{provide:$h,useClass:QEA}];for(let A of t)e.push(...A.\u0275providers);return ph(e)}var jH=new dA("");function tz(){return uEA(gM.LegacyInterceptors,[{provide:jH,useFactory:cEA},{provide:cM,useExisting:jH,multi:!0}])}var IM=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({providers:[ez(tz())]})}return t})();var iz=(()=>{class t{_doc;constructor(A){this._doc=A}getTitle(){return this._doc.title}setTitle(A){this._doc.title=A||""}static \u0275fac=function(i){return new(i||t)(we(at))};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var cl=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:function(i){let n=null;return i?n=new(i||t):n=we(fEA),n},providedIn:"root"})}return t})(),fEA=(()=>{class t extends cl{_doc;constructor(A){super(),this._doc=A}sanitize(A,i){if(i==null)return null;switch(A){case jr.NONE:return i;case jr.HTML:return w2(i,"HTML")?sl(i):Eb(this._doc,String(i)).toString();case jr.STYLE:return w2(i,"Style")?sl(i):i;case jr.SCRIPT:if(w2(i,"Script"))return sl(i);throw new Ae(5200,!1);case jr.URL:return w2(i,"URL")?sl(i):pp(String(i));case jr.RESOURCE_URL:if(w2(i,"ResourceURL"))return sl(i);throw new Ae(5201,!1);default:throw new Ae(5202,!1)}}bypassSecurityTrustHtml(A){return KJ(A)}bypassSecurityTrustStyle(A){return YJ(A)}bypassSecurityTrustScript(A){return JJ(A)}bypassSecurityTrustUrl(A){return TJ(A)}bypassSecurityTrustResourceUrl(A){return HJ(A)}static \u0275fac=function(i){return new(i||t)(we(at))};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var gz=(()=>{class t{_renderer;_elementRef;onChange=A=>{};onTouched=()=>{};constructor(A,i){this._renderer=A,this._elementRef=i}setProperty(A,i){this._renderer.setProperty(this._elementRef.nativeElement,A,i)}registerOnTouched(A){this.onTouched=A}registerOnChange(A){this.onChange=A}setDisabledState(A){this.setProperty("disabled",A)}static \u0275fac=function(i){return new(i||t)(PA(Wi),PA(ee))};static \u0275dir=jA({type:t})}return t})(),mEA=(()=>{class t extends gz{static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275dir=jA({type:t,features:[lt]})}return t})(),yc=new dA("");var pEA={provide:yc,useExisting:Ir(()=>vc),multi:!0};function wEA(){let t=Wa()?Wa().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}var DEA=new dA(""),vc=(()=>{class t extends gz{_compositionMode;_composing=!1;constructor(A,i,n){super(A,i),this._compositionMode=n,this._compositionMode==null&&(this._compositionMode=!wEA())}writeValue(A){let i=A??"";this.setProperty("value",i)}_handleInput(A){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(A)}_compositionStart(){this._composing=!0}_compositionEnd(A){this._composing=!1,this._compositionMode&&this.onChange(A)}static \u0275fac=function(i){return new(i||t)(PA(Wi),PA(ee),PA(DEA,8))};static \u0275dir=jA({type:t,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,n){i&1&&hA("input",function(r){return n._handleInput(r.target.value)})("blur",function(){return n.onTouched()})("compositionstart",function(){return n._compositionStart()})("compositionend",function(r){return n._compositionEnd(r.target.value)})},standalone:!1,features:[ht([pEA]),lt]})}return t})();function EM(t){return t==null||QM(t)===0}function QM(t){return t==null?null:Array.isArray(t)||typeof t=="string"?t.length:t instanceof Set?t.size:null}var w0=new dA(""),ru=new dA(""),yEA=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,$a=class{static min(e){return vEA(e)}static max(e){return bEA(e)}static required(e){return MEA(e)}static requiredTrue(e){return kEA(e)}static email(e){return SEA(e)}static minLength(e){return REA(e)}static maxLength(e){return xEA(e)}static pattern(e){return LEA(e)}static nullValidator(e){return Iz()}static compose(e){return hz(e)}static composeAsync(e){return uz(e)}};function vEA(t){return e=>{if(e.value==null||t==null)return null;let A=parseFloat(e.value);return!isNaN(A)&&A{if(e.value==null||t==null)return null;let A=parseFloat(e.value);return!isNaN(A)&&A>t?{max:{max:t,actual:e.value}}:null}}function MEA(t){return EM(t.value)?{required:!0}:null}function kEA(t){return t.value===!0?null:{required:!0}}function SEA(t){return EM(t.value)||yEA.test(t.value)?null:{email:!0}}function REA(t){return e=>{let A=e.value?.length??QM(e.value);return A===null||A===0?null:A{let A=e.value?.length??QM(e.value);return A!==null&&A>t?{maxlength:{requiredLength:t,actualLength:A}}:null}}function LEA(t){if(!t)return Iz;let e,A;return typeof t=="string"?(A="",t.charAt(0)!=="^"&&(A+="^"),A+=t,t.charAt(t.length-1)!=="$"&&(A+="$"),e=new RegExp(A)):(A=t.toString(),e=t),i=>{if(EM(i.value))return null;let n=i.value;return e.test(n)?null:{pattern:{requiredPattern:A,actualValue:n}}}}function Iz(t){return null}function Cz(t){return t!=null}function dz(t){return D2(t)?oo(t):t}function Bz(t){let e={};return t.forEach(A=>{e=A!=null?rA(rA({},e),A):e}),Object.keys(e).length===0?null:e}function Ez(t,e){return e.map(A=>A(t))}function FEA(t){return!t.validate}function Qz(t){return t.map(e=>FEA(e)?e:A=>e.validate(A))}function hz(t){if(!t)return null;let e=t.filter(Cz);return e.length==0?null:function(A){return Bz(Ez(A,e))}}function hM(t){return t!=null?hz(Qz(t)):null}function uz(t){if(!t)return null;let e=t.filter(Cz);return e.length==0?null:function(A){let i=Ez(A,e).map(dz);return nh(i).pipe(je(Bz))}}function uM(t){return t!=null?uz(Qz(t)):null}function nz(t,e){return t===null?[e]:Array.isArray(t)?[...t,e]:[t,e]}function fz(t){return t._rawValidators}function mz(t){return t._rawAsyncValidators}function CM(t){return t?Array.isArray(t)?t:[t]:[]}function n6(t,e){return Array.isArray(t)?t.includes(e):t===e}function oz(t,e){let A=CM(e);return CM(t).forEach(n=>{n6(A,n)||A.push(n)}),A}function rz(t,e){return CM(e).filter(A=>!n6(t,A))}var o6=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(e){this._rawValidators=e||[],this._composedValidatorFn=hM(this._rawValidators)}_setAsyncValidators(e){this._rawAsyncValidators=e||[],this._composedAsyncValidatorFn=uM(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(e){this._onDestroyCallbacks.push(e)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(e=>e()),this._onDestroyCallbacks=[]}reset(e=void 0){this.control&&this.control.reset(e)}hasError(e,A){return this.control?this.control.hasError(e,A):!1}getError(e,A){return this.control?this.control.getError(e,A):null}},p0=class extends o6{name;get formDirective(){return null}get path(){return null}},Ac=class extends o6{_parent=null;name=null;valueAccessor=null},r6=class{_cd;constructor(e){this._cd=e}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}},NEA={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},Bse=Ye(rA({},NEA),{"[class.ng-submitted]":"isSubmitted"}),Ea=(()=>{class t extends r6{constructor(A){super(A)}static \u0275fac=function(i){return new(i||t)(PA(Ac,2))};static \u0275dir=jA({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,n){i&2&&ue("ng-untouched",n.isUntouched)("ng-touched",n.isTouched)("ng-pristine",n.isPristine)("ng-dirty",n.isDirty)("ng-valid",n.isValid)("ng-invalid",n.isInvalid)("ng-pending",n.isPending)},standalone:!1,features:[lt]})}return t})(),pz=(()=>{class t extends r6{constructor(A){super(A)}static \u0275fac=function(i){return new(i||t)(PA(p0,10))};static \u0275dir=jA({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,n){i&2&&ue("ng-untouched",n.isUntouched)("ng-touched",n.isTouched)("ng-pristine",n.isPristine)("ng-dirty",n.isDirty)("ng-valid",n.isValid)("ng-invalid",n.isInvalid)("ng-pending",n.isPending)("ng-submitted",n.isSubmitted)},standalone:!1,features:[lt]})}return t})();var Au="VALID",i6="INVALID",tB="PENDING",eu="DISABLED",R2=class{},s6=class extends R2{value;source;constructor(e,A){super(),this.value=e,this.source=A}},iu=class extends R2{pristine;source;constructor(e,A){super(),this.pristine=e,this.source=A}},nu=class extends R2{touched;source;constructor(e,A){super(),this.touched=e,this.source=A}},iB=class extends R2{status;source;constructor(e,A){super(),this.status=e,this.source=A}},a6=class extends R2{source;constructor(e){super(),this.source=e}},c6=class extends R2{source;constructor(e){super(),this.source=e}};function fM(t){return(C6(t)?t.validators:t)||null}function _EA(t){return Array.isArray(t)?hM(t):t||null}function mM(t,e){return(C6(e)?e.asyncValidators:t)||null}function GEA(t){return Array.isArray(t)?uM(t):t||null}function C6(t){return t!=null&&!Array.isArray(t)&&typeof t=="object"}function wz(t,e,A){let i=t.controls;if(!(e?Object.keys(i):i).length)throw new Ae(1e3,"");if(!i[A])throw new Ae(1001,"")}function Dz(t,e,A){t._forEachChild((i,n)=>{if(A[n]===void 0)throw new Ae(1002,"")})}var nB=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(e,A){this._assignValidators(e),this._assignAsyncValidators(A)}get validator(){return this._composedValidatorFn}set validator(e){this._rawValidators=this._composedValidatorFn=e}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(e){this._rawAsyncValidators=this._composedAsyncValidatorFn=e}get parent(){return this._parent}get status(){return Ba(this.statusReactive)}set status(e){Ba(()=>this.statusReactive.set(e))}_status=h0(()=>this.statusReactive());statusReactive=Jo(void 0);get valid(){return this.status===Au}get invalid(){return this.status===i6}get pending(){return this.status==tB}get disabled(){return this.status===eu}get enabled(){return this.status!==eu}errors;get pristine(){return Ba(this.pristineReactive)}set pristine(e){Ba(()=>this.pristineReactive.set(e))}_pristine=h0(()=>this.pristineReactive());pristineReactive=Jo(!0);get dirty(){return!this.pristine}get touched(){return Ba(this.touchedReactive)}set touched(e){Ba(()=>this.touchedReactive.set(e))}_touched=h0(()=>this.touchedReactive());touchedReactive=Jo(!1);get untouched(){return!this.touched}_events=new OA;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(e){this._assignValidators(e)}setAsyncValidators(e){this._assignAsyncValidators(e)}addValidators(e){this.setValidators(oz(e,this._rawValidators))}addAsyncValidators(e){this.setAsyncValidators(oz(e,this._rawAsyncValidators))}removeValidators(e){this.setValidators(rz(e,this._rawValidators))}removeAsyncValidators(e){this.setAsyncValidators(rz(e,this._rawAsyncValidators))}hasValidator(e){return n6(this._rawValidators,e)}hasAsyncValidator(e){return n6(this._rawAsyncValidators,e)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(e={}){let A=this.touched===!1;this.touched=!0;let i=e.sourceControl??this;this._parent&&!e.onlySelf&&this._parent.markAsTouched(Ye(rA({},e),{sourceControl:i})),A&&e.emitEvent!==!1&&this._events.next(new nu(!0,i))}markAllAsTouched(e={}){this.markAsTouched({onlySelf:!0,emitEvent:e.emitEvent,sourceControl:this}),this._forEachChild(A=>A.markAllAsTouched(e))}markAsUntouched(e={}){let A=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=e.sourceControl??this;this._forEachChild(n=>{n.markAsUntouched({onlySelf:!0,emitEvent:e.emitEvent,sourceControl:i})}),this._parent&&!e.onlySelf&&this._parent._updateTouched(e,i),A&&e.emitEvent!==!1&&this._events.next(new nu(!1,i))}markAsDirty(e={}){let A=this.pristine===!0;this.pristine=!1;let i=e.sourceControl??this;this._parent&&!e.onlySelf&&this._parent.markAsDirty(Ye(rA({},e),{sourceControl:i})),A&&e.emitEvent!==!1&&this._events.next(new iu(!1,i))}markAsPristine(e={}){let A=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=e.sourceControl??this;this._forEachChild(n=>{n.markAsPristine({onlySelf:!0,emitEvent:e.emitEvent})}),this._parent&&!e.onlySelf&&this._parent._updatePristine(e,i),A&&e.emitEvent!==!1&&this._events.next(new iu(!0,i))}markAsPending(e={}){this.status=tB;let A=e.sourceControl??this;e.emitEvent!==!1&&(this._events.next(new iB(this.status,A)),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.markAsPending(Ye(rA({},e),{sourceControl:A}))}disable(e={}){let A=this._parentMarkedDirty(e.onlySelf);this.status=eu,this.errors=null,this._forEachChild(n=>{n.disable(Ye(rA({},e),{onlySelf:!0}))}),this._updateValue();let i=e.sourceControl??this;e.emitEvent!==!1&&(this._events.next(new s6(this.value,i)),this._events.next(new iB(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Ye(rA({},e),{skipPristineCheck:A}),this),this._onDisabledChange.forEach(n=>n(!0))}enable(e={}){let A=this._parentMarkedDirty(e.onlySelf);this.status=Au,this._forEachChild(i=>{i.enable(Ye(rA({},e),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors(Ye(rA({},e),{skipPristineCheck:A}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(e,A){this._parent&&!e.onlySelf&&(this._parent.updateValueAndValidity(e),e.skipPristineCheck||this._parent._updatePristine({},A),this._parent._updateTouched({},A))}setParent(e){this._parent=e}getRawValue(){return this.value}updateValueAndValidity(e={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Au||this.status===tB)&&this._runAsyncValidator(i,e.emitEvent)}let A=e.sourceControl??this;e.emitEvent!==!1&&(this._events.next(new s6(this.value,A)),this._events.next(new iB(this.status,A)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(Ye(rA({},e),{sourceControl:A}))}_updateTreeValidity(e={emitEvent:!0}){this._forEachChild(A=>A._updateTreeValidity(e)),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?eu:Au}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(e,A){if(this.asyncValidator){this.status=tB,this._hasOwnPendingAsyncValidator={emitEvent:A!==!1};let i=dz(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(n=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(n,{emitEvent:A,shouldHaveEmitted:e})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let e=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,e}return!1}setErrors(e,A={}){this.errors=e,this._updateControlsErrors(A.emitEvent!==!1,this,A.shouldHaveEmitted)}get(e){let A=e;return A==null||(Array.isArray(A)||(A=A.split(".")),A.length===0)?null:A.reduce((i,n)=>i&&i._find(n),this)}getError(e,A){let i=A?this.get(A):this;return i&&i.errors?i.errors[e]:null}hasError(e,A){return!!this.getError(e,A)}get root(){let e=this;for(;e._parent;)e=e._parent;return e}_updateControlsErrors(e,A,i){this.status=this._calculateStatus(),e&&this.statusChanges.emit(this.status),(e||i)&&this._events.next(new iB(this.status,A)),this._parent&&this._parent._updateControlsErrors(e,A,i)}_initObservables(){this.valueChanges=new WA,this.statusChanges=new WA}_calculateStatus(){return this._allControlsDisabled()?eu:this.errors?i6:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(tB)?tB:this._anyControlsHaveStatus(i6)?i6:Au}_anyControlsHaveStatus(e){return this._anyControls(A=>A.status===e)}_anyControlsDirty(){return this._anyControls(e=>e.dirty)}_anyControlsTouched(){return this._anyControls(e=>e.touched)}_updatePristine(e,A){let i=!this._anyControlsDirty(),n=this.pristine!==i;this.pristine=i,this._parent&&!e.onlySelf&&this._parent._updatePristine(e,A),n&&this._events.next(new iu(this.pristine,A))}_updateTouched(e={},A){this.touched=this._anyControlsTouched(),this._events.next(new nu(this.touched,A)),this._parent&&!e.onlySelf&&this._parent._updateTouched(e,A)}_onDisabledChange=[];_registerOnCollectionChange(e){this._onCollectionChange=e}_setUpdateStrategy(e){C6(e)&&e.updateOn!=null&&(this._updateOn=e.updateOn)}_parentMarkedDirty(e){let A=this._parent&&this._parent.dirty;return!e&&!!A&&!this._parent._anyControlsDirty()}_find(e){return null}_assignValidators(e){this._rawValidators=Array.isArray(e)?e.slice():e,this._composedValidatorFn=_EA(this._rawValidators)}_assignAsyncValidators(e){this._rawAsyncValidators=Array.isArray(e)?e.slice():e,this._composedAsyncValidatorFn=GEA(this._rawAsyncValidators)}},oB=class extends nB{constructor(e,A,i){super(fM(A),mM(i,A)),this.controls=e,this._initObservables(),this._setUpdateStrategy(A),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(e,A){return this.controls[e]?this.controls[e]:(this.controls[e]=A,A.setParent(this),A._registerOnCollectionChange(this._onCollectionChange),A)}addControl(e,A,i={}){this.registerControl(e,A),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(e,A={}){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),delete this.controls[e],this.updateValueAndValidity({emitEvent:A.emitEvent}),this._onCollectionChange()}setControl(e,A,i={}){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),delete this.controls[e],A&&this.registerControl(e,A),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(e){return this.controls.hasOwnProperty(e)&&this.controls[e].enabled}setValue(e,A={}){Dz(this,!0,e),Object.keys(e).forEach(i=>{wz(this,!0,i),this.controls[i].setValue(e[i],{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A)}patchValue(e,A={}){e!=null&&(Object.keys(e).forEach(i=>{let n=this.controls[i];n&&n.patchValue(e[i],{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A))}reset(e={},A={}){this._forEachChild((i,n)=>{i.reset(e?e[n]:null,{onlySelf:!0,emitEvent:A.emitEvent})}),this._updatePristine(A,this),this._updateTouched(A,this),this.updateValueAndValidity(A)}getRawValue(){return this._reduceChildren({},(e,A,i)=>(e[i]=A.getRawValue(),e))}_syncPendingControls(){let e=this._reduceChildren(!1,(A,i)=>i._syncPendingControls()?!0:A);return e&&this.updateValueAndValidity({onlySelf:!0}),e}_forEachChild(e){Object.keys(this.controls).forEach(A=>{let i=this.controls[A];i&&e(i,A)})}_setUpControls(){this._forEachChild(e=>{e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(e){for(let[A,i]of Object.entries(this.controls))if(this.contains(A)&&e(i))return!0;return!1}_reduceValue(){let e={};return this._reduceChildren(e,(A,i,n)=>((i.enabled||this.disabled)&&(A[n]=i.value),A))}_reduceChildren(e,A){let i=e;return this._forEachChild((n,o)=>{i=A(i,n,o)}),i}_allControlsDisabled(){for(let e of Object.keys(this.controls))if(this.controls[e].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(e){return this.controls.hasOwnProperty(e)?this.controls[e]:null}};var dM=class extends oB{};var rB=new dA("",{providedIn:"root",factory:()=>d6}),d6="always";function yz(t,e){return[...e.path,t]}function ou(t,e,A=d6){pM(t,e),e.valueAccessor.writeValue(t.value),(t.disabled||A==="always")&&e.valueAccessor.setDisabledState?.(t.disabled),KEA(t,e),JEA(t,e),YEA(t,e),UEA(t,e)}function l6(t,e,A=!0){let i=()=>{};e.valueAccessor&&(e.valueAccessor.registerOnChange(i),e.valueAccessor.registerOnTouched(i)),I6(t,e),t&&(e._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function g6(t,e){t.forEach(A=>{A.registerOnValidatorChange&&A.registerOnValidatorChange(e)})}function UEA(t,e){if(e.valueAccessor.setDisabledState){let A=i=>{e.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(A),e._registerOnDestroy(()=>{t._unregisterOnDisabledChange(A)})}}function pM(t,e){let A=fz(t);e.validator!==null?t.setValidators(nz(A,e.validator)):typeof A=="function"&&t.setValidators([A]);let i=mz(t);e.asyncValidator!==null?t.setAsyncValidators(nz(i,e.asyncValidator)):typeof i=="function"&&t.setAsyncValidators([i]);let n=()=>t.updateValueAndValidity();g6(e._rawValidators,n),g6(e._rawAsyncValidators,n)}function I6(t,e){let A=!1;if(t!==null){if(e.validator!==null){let n=fz(t);if(Array.isArray(n)&&n.length>0){let o=n.filter(r=>r!==e.validator);o.length!==n.length&&(A=!0,t.setValidators(o))}}if(e.asyncValidator!==null){let n=mz(t);if(Array.isArray(n)&&n.length>0){let o=n.filter(r=>r!==e.asyncValidator);o.length!==n.length&&(A=!0,t.setAsyncValidators(o))}}}let i=()=>{};return g6(e._rawValidators,i),g6(e._rawAsyncValidators,i),A}function KEA(t,e){e.valueAccessor.registerOnChange(A=>{t._pendingValue=A,t._pendingChange=!0,t._pendingDirty=!0,t.updateOn==="change"&&vz(t,e)})}function YEA(t,e){e.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,t.updateOn==="blur"&&t._pendingChange&&vz(t,e),t.updateOn!=="submit"&&t.markAsTouched()})}function vz(t,e){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function JEA(t,e){let A=(i,n)=>{e.valueAccessor.writeValue(i),n&&e.viewToModelUpdate(i)};t.registerOnChange(A),e._registerOnDestroy(()=>{t._unregisterOnChange(A)})}function bz(t,e){t==null,pM(t,e)}function TEA(t,e){return I6(t,e)}function wM(t,e){if(!t.hasOwnProperty("model"))return!1;let A=t.model;return A.isFirstChange()?!0:!Object.is(e,A.currentValue)}function HEA(t){return Object.getPrototypeOf(t.constructor)===mEA}function Mz(t,e){t._syncPendingControls(),e.forEach(A=>{let i=A.control;i.updateOn==="submit"&&i._pendingChange&&(A.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function DM(t,e){if(!e)return null;Array.isArray(e);let A,i,n;return e.forEach(o=>{o.constructor===vc?A=o:HEA(o)?i=o:n=o}),n||i||A||null}function zEA(t,e){let A=t.indexOf(e);A>-1&&t.splice(A,1)}var OEA={provide:p0,useExisting:Ir(()=>su)},tu=Promise.resolve(),su=(()=>{class t extends p0{callSetDisabledState;get submitted(){return Ba(this.submittedReactive)}_submitted=h0(()=>this.submittedReactive());submittedReactive=Jo(!1);_directives=new Set;form;ngSubmit=new WA;options;constructor(A,i,n){super(),this.callSetDisabledState=n,this.form=new oB({},hM(A),uM(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(A){tu.then(()=>{let i=this._findContainer(A.path);A.control=i.registerControl(A.name,A.control),ou(A.control,A,this.callSetDisabledState),A.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(A)})}getControl(A){return this.form.get(A.path)}removeControl(A){tu.then(()=>{let i=this._findContainer(A.path);i&&i.removeControl(A.name),this._directives.delete(A)})}addFormGroup(A){tu.then(()=>{let i=this._findContainer(A.path),n=new oB({});bz(n,A),i.registerControl(A.name,n),n.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(A){tu.then(()=>{let i=this._findContainer(A.path);i&&i.removeControl(A.name)})}getFormGroup(A){return this.form.get(A.path)}updateModel(A,i){tu.then(()=>{this.form.get(A.path).setValue(i)})}setValue(A){this.control.setValue(A)}onSubmit(A){return this.submittedReactive.set(!0),Mz(this.form,this._directives),this.ngSubmit.emit(A),this.form._events.next(new a6(this.control)),A?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(A=void 0){this.form.reset(A),this.submittedReactive.set(!1),this.form._events.next(new c6(this.form))}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(A){return A.pop(),A.length?this.form.get(A):this.form}static \u0275fac=function(i){return new(i||t)(PA(w0,10),PA(ru,10),PA(rB,8))};static \u0275dir=jA({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,n){i&1&&hA("submit",function(r){return n.onSubmit(r)})("reset",function(){return n.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[ht([OEA]),lt]})}return t})();function sz(t,e){let A=t.indexOf(e);A>-1&&t.splice(A,1)}function az(t){return typeof t=="object"&&t!==null&&Object.keys(t).length===2&&"value"in t&&"disabled"in t}var _I=class extends nB{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(e=null,A,i){super(fM(A),mM(i,A)),this._applyFormState(e),this._setUpdateStrategy(A),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),C6(A)&&(A.nonNullable||A.initialValueIsDefault)&&(az(e)?this.defaultValue=e.value:this.defaultValue=e)}setValue(e,A={}){this.value=this._pendingValue=e,this._onChange.length&&A.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,A.emitViewToModelChange!==!1)),this.updateValueAndValidity(A)}patchValue(e,A={}){this.setValue(e,A)}reset(e=this.defaultValue,A={}){this._applyFormState(e),this.markAsPristine(A),this.markAsUntouched(A),this.setValue(this.value,A),this._pendingChange=!1}_updateValue(){}_anyControls(e){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(e){this._onChange.push(e)}_unregisterOnChange(e){sz(this._onChange,e)}registerOnDisabledChange(e){this._onDisabledChange.push(e)}_unregisterOnDisabledChange(e){sz(this._onDisabledChange,e)}_forEachChild(e){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(e){az(e)?(this.value=this._pendingValue=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=e}};var PEA=t=>t instanceof _I;var jEA={provide:Ac,useExisting:Ir(()=>ec)},cz=Promise.resolve(),ec=(()=>{class t extends Ac{_changeDetectorRef;callSetDisabledState;control=new _I;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new WA;constructor(A,i,n,o,r,s){super(),this._changeDetectorRef=r,this.callSetDisabledState=s,this._parent=A,this._setValidators(i),this._setAsyncValidators(n),this.valueAccessor=DM(this,o)}ngOnChanges(A){if(this._checkForErrors(),!this._registered||"name"in A){if(this._registered&&(this._checkName(),this.formDirective)){let i=A.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in A&&this._updateDisabled(A),wM(A,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){ou(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(A){cz.then(()=>{this.control.setValue(A,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(A){let i=A.isDisabled.currentValue,n=i!==0&&ie(i);cz.then(()=>{n&&!this.control.disabled?this.control.disable():!n&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(A){return this._parent?yz(A,this._parent):[A]}static \u0275fac=function(i){return new(i||t)(PA(p0,9),PA(w0,10),PA(ru,10),PA(yc,10),PA(It,8),PA(rB,8))};static \u0275dir=jA({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[ht([jEA]),lt,ti]})}return t})();var kz=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return t})();var yM=new dA(""),qEA={provide:Ac,useExisting:Ir(()=>vM)},vM=(()=>{class t extends Ac{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(A){}model;update=new WA;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(A,i,n,o,r){super(),this._ngModelWarningConfig=o,this.callSetDisabledState=r,this._setValidators(A),this._setAsyncValidators(i),this.valueAccessor=DM(this,n)}ngOnChanges(A){if(this._isControlChanged(A)){let i=A.form.previousValue;i&&l6(i,this,!1),ou(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}wM(A,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&l6(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}_isControlChanged(A){return A.hasOwnProperty("form")}static \u0275fac=function(i){return new(i||t)(PA(w0,10),PA(ru,10),PA(yc,10),PA(yM,8),PA(rB,8))};static \u0275dir=jA({type:t,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[ht([qEA]),lt,ti]})}return t})(),VEA={provide:p0,useExisting:Ir(()=>GI)},GI=(()=>{class t extends p0{callSetDisabledState;get submitted(){return Ba(this._submittedReactive)}set submitted(A){this._submittedReactive.set(A)}_submitted=h0(()=>this._submittedReactive());_submittedReactive=Jo(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];form=null;ngSubmit=new WA;constructor(A,i,n){super(),this.callSetDisabledState=n,this._setValidators(A),this._setAsyncValidators(i)}ngOnChanges(A){A.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(I6(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(A){let i=this.form.get(A.path);return ou(i,A,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(A),i}getControl(A){return this.form.get(A.path)}removeControl(A){l6(A.control||null,A,!1),zEA(this.directives,A)}addFormGroup(A){this._setUpFormContainer(A)}removeFormGroup(A){this._cleanUpFormContainer(A)}getFormGroup(A){return this.form.get(A.path)}addFormArray(A){this._setUpFormContainer(A)}removeFormArray(A){this._cleanUpFormContainer(A)}getFormArray(A){return this.form.get(A.path)}updateModel(A,i){this.form.get(A.path).setValue(i)}onSubmit(A){return this._submittedReactive.set(!0),Mz(this.form,this.directives),this.ngSubmit.emit(A),this.form._events.next(new a6(this.control)),A?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(A=void 0){this.form.reset(A),this._submittedReactive.set(!1),this.form._events.next(new c6(this.form))}_updateDomValue(){this.directives.forEach(A=>{let i=A.control,n=this.form.get(A.path);i!==n&&(l6(i||null,A),PEA(n)&&(ou(n,A,this.callSetDisabledState),A.control=n))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(A){let i=this.form.get(A.path);bz(i,A),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(A){if(this.form){let i=this.form.get(A.path);i&&TEA(i,A)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){pM(this.form,this),this._oldForm&&I6(this._oldForm,this)}static \u0275fac=function(i){return new(i||t)(PA(w0,10),PA(ru,10),PA(rB,8))};static \u0275dir=jA({type:t,selectors:[["","formGroup",""]],hostBindings:function(i,n){i&1&&hA("submit",function(r){return n.onSubmit(r)})("reset",function(){return n.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[ht([VEA]),lt,ti]})}return t})();var ZEA={provide:Ac,useExisting:Ir(()=>bM)},bM=(()=>{class t extends Ac{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(A){}model;update=new WA;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(A,i,n,o,r){super(),this._ngModelWarningConfig=r,this._parent=A,this._setValidators(i),this._setAsyncValidators(n),this.valueAccessor=DM(this,o)}ngOnChanges(A){this._added||this._setUpControl(),wM(A,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}get path(){return yz(this.name==null?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_setUpControl(){this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||t)(PA(p0,13),PA(w0,10),PA(ru,10),PA(yc,10),PA(yM,8))};static \u0275dir=jA({type:t,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[ht([ZEA]),lt,ti]})}return t})();var Sz=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({})}return t})(),BM=class extends nB{constructor(e,A,i){super(fM(A),mM(i,A)),this.controls=e,this._initObservables(),this._setUpdateStrategy(A),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(e){return this.controls[this._adjustIndex(e)]}push(e,A={}){this.controls.push(e),this._registerControl(e),this.updateValueAndValidity({emitEvent:A.emitEvent}),this._onCollectionChange()}insert(e,A,i={}){this.controls.splice(e,0,A),this._registerControl(A),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(e,A={}){let i=this._adjustIndex(e);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:A.emitEvent})}setControl(e,A,i={}){let n=this._adjustIndex(e);n<0&&(n=0),this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),this.controls.splice(n,1),A&&(this.controls.splice(n,0,A),this._registerControl(A)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(e,A={}){Dz(this,!1,e),e.forEach((i,n)=>{wz(this,!1,n),this.at(n).setValue(i,{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A)}patchValue(e,A={}){e!=null&&(e.forEach((i,n)=>{this.at(n)&&this.at(n).patchValue(i,{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A))}reset(e=[],A={}){this._forEachChild((i,n)=>{i.reset(e[n],{onlySelf:!0,emitEvent:A.emitEvent})}),this._updatePristine(A,this),this._updateTouched(A,this),this.updateValueAndValidity(A)}getRawValue(){return this.controls.map(e=>e.getRawValue())}clear(e={}){this.controls.length<1||(this._forEachChild(A=>A._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:e.emitEvent}))}_adjustIndex(e){return e<0?e+this.length:e}_syncPendingControls(){let e=this.controls.reduce((A,i)=>i._syncPendingControls()?!0:A,!1);return e&&this.updateValueAndValidity({onlySelf:!0}),e}_forEachChild(e){this.controls.forEach((A,i)=>{e(A,i)})}_updateValue(){this.value=this.controls.filter(e=>e.enabled||this.disabled).map(e=>e.value)}_anyControls(e){return this.controls.some(A=>A.enabled&&e(A))}_setUpControls(){this._forEachChild(e=>this._registerControl(e))}_allControlsDisabled(){for(let e of this.controls)if(e.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(e){e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)}_find(e){return this.at(e)??null}};function lz(t){return!!t&&(t.asyncValidators!==void 0||t.validators!==void 0||t.updateOn!==void 0)}var Rz=(()=>{class t{useNonNullable=!1;get nonNullable(){let A=new t;return A.useNonNullable=!0,A}group(A,i=null){let n=this._reduceControls(A),o={};return lz(i)?o=i:i!==null&&(o.validators=i.validator,o.asyncValidators=i.asyncValidator),new oB(n,o)}record(A,i=null){let n=this._reduceControls(A);return new dM(n,i)}control(A,i,n){let o={};return this.useNonNullable?(lz(i)?o=i:(o.validators=i,o.asyncValidators=n),new _I(A,Ye(rA({},o),{nonNullable:!0}))):new _I(A,i,n)}array(A,i,n){let o=A.map(r=>this._createControl(r));return new BM(o,i,n)}_reduceControls(A){let i={};return Object.keys(A).forEach(n=>{i[n]=this._createControl(A[n])}),i}_createControl(A){if(A instanceof _I)return A;if(A instanceof nB)return A;if(Array.isArray(A)){let i=A[0],n=A.length>1?A[1]:null,o=A.length>2?A[2]:null;return this.control(i,n,o)}else return this.control(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var B6=(()=>{class t{static withConfig(A){return{ngModule:t,providers:[{provide:rB,useValue:A.callSetDisabledState??d6}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[Sz]})}return t})(),xz=(()=>{class t{static withConfig(A){return{ngModule:t,providers:[{provide:yM,useValue:A.warnOnNgModelWithFormControl??"always"},{provide:rB,useValue:A.callSetDisabledState??d6}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[Sz]})}return t})();var Li="primary",fu=Symbol("RouteTitle"),xM=class{params;constructor(e){this.params=e||{}}has(e){return Object.prototype.hasOwnProperty.call(this.params,e)}get(e){if(this.has(e)){let A=this.params[e];return Array.isArray(A)?A[0]:A}return null}getAll(e){if(this.has(e)){let A=this.params[e];return Array.isArray(A)?A:[A]}return[]}get keys(){return Object.keys(this.params)}};function JI(t){return new xM(t)}function Yz(t,e,A){let i=A.path.split("/");if(i.length>t.length||A.pathMatch==="full"&&(e.hasChildren()||i.lengthi[o]===n)}else return t===e}function Tz(t){return t.length>0?t[t.length-1]:null}function N2(t){return I2(t)?t:D2(t)?oo(Promise.resolve(t)):Me(t)}var XEA={exact:zz,subset:Oz},Hz={exact:$EA,subset:AQA,ignored:()=>!0};function Lz(t,e,A){return XEA[A.paths](t.root,e.root,A.matrixParams)&&Hz[A.queryParams](t.queryParams,e.queryParams)&&!(A.fragment==="exact"&&t.fragment!==e.fragment)}function $EA(t,e){return ag(t,e)}function zz(t,e,A){if(!KI(t.segments,e.segments)||!h6(t.segments,e.segments,A)||t.numberOfChildren!==e.numberOfChildren)return!1;for(let i in e.children)if(!t.children[i]||!zz(t.children[i],e.children[i],A))return!1;return!0}function AQA(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(A=>Jz(t[A],e[A]))}function Oz(t,e,A){return Pz(t,e,e.segments,A)}function Pz(t,e,A,i){if(t.segments.length>A.length){let n=t.segments.slice(0,A.length);return!(!KI(n,A)||e.hasChildren()||!h6(n,A,i))}else if(t.segments.length===A.length){if(!KI(t.segments,A)||!h6(t.segments,A,i))return!1;for(let n in e.children)if(!t.children[n]||!Oz(t.children[n],e.children[n],i))return!1;return!0}else{let n=A.slice(0,t.segments.length),o=A.slice(t.segments.length);return!KI(t.segments,n)||!h6(t.segments,n,i)||!t.children[Li]?!1:Pz(t.children[Li],e,o,i)}}function h6(t,e,A){return e.every((i,n)=>Hz[A](t[n].parameters,i.parameters))}var lg=class{root;queryParams;fragment;_queryParamMap;constructor(e=new _n([],{}),A={},i=null){this.root=e,this.queryParams=A,this.fragment=i}get queryParamMap(){return this._queryParamMap??=JI(this.queryParams),this._queryParamMap}toString(){return iQA.serialize(this)}},_n=class{segments;children;parent=null;constructor(e,A){this.segments=e,this.children=A,Object.values(A).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return u6(this)}},x2=class{path;parameters;_parameterMap;constructor(e,A){this.path=e,this.parameters=A}get parameterMap(){return this._parameterMap??=JI(this.parameters),this._parameterMap}toString(){return qz(this)}};function eQA(t,e){return KI(t,e)&&t.every((A,i)=>ag(A.parameters,e[i].parameters))}function KI(t,e){return t.length!==e.length?!1:t.every((A,i)=>A.path===e[i].path)}function tQA(t,e){let A=[];return Object.entries(t.children).forEach(([i,n])=>{i===Li&&(A=A.concat(e(n,i)))}),Object.entries(t.children).forEach(([i,n])=>{i!==Li&&(A=A.concat(e(n,i)))}),A}var TI=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:()=>new L2,providedIn:"root"})}return t})(),L2=class{parse(e){let A=new NM(e);return new lg(A.parseRootSegment(),A.parseQueryParams(),A.parseFragment())}serialize(e){let A=`/${au(e.root,!0)}`,i=rQA(e.queryParams),n=typeof e.fragment=="string"?`#${nQA(e.fragment)}`:"";return`${A}${i}${n}`}},iQA=new L2;function u6(t){return t.segments.map(e=>qz(e)).join("/")}function au(t,e){if(!t.hasChildren())return u6(t);if(e){let A=t.children[Li]?au(t.children[Li],!1):"",i=[];return Object.entries(t.children).forEach(([n,o])=>{n!==Li&&i.push(`${n}:${au(o,!1)}`)}),i.length>0?`${A}(${i.join("//")})`:A}else{let A=tQA(t,(i,n)=>n===Li?[au(t.children[Li],!1)]:[`${n}:${au(i,!1)}`]);return Object.keys(t.children).length===1&&t.children[Li]!=null?`${u6(t)}/${A[0]}`:`${u6(t)}/(${A.join("//")})`}}function jz(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function E6(t){return jz(t).replace(/%3B/gi,";")}function nQA(t){return encodeURI(t)}function FM(t){return jz(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function f6(t){return decodeURIComponent(t)}function Fz(t){return f6(t.replace(/\+/g,"%20"))}function qz(t){return`${FM(t.path)}${oQA(t.parameters)}`}function oQA(t){return Object.entries(t).map(([e,A])=>`;${FM(e)}=${FM(A)}`).join("")}function rQA(t){let e=Object.entries(t).map(([A,i])=>Array.isArray(i)?i.map(n=>`${E6(A)}=${E6(n)}`).join("&"):`${E6(A)}=${E6(i)}`).filter(A=>A);return e.length?`?${e.join("&")}`:""}var sQA=/^[^\/()?;#]+/;function MM(t){let e=t.match(sQA);return e?e[0]:""}var aQA=/^[^\/()?;=#]+/;function cQA(t){let e=t.match(aQA);return e?e[0]:""}var lQA=/^[^=?&#]+/;function gQA(t){let e=t.match(lQA);return e?e[0]:""}var IQA=/^[^&#]+/;function CQA(t){let e=t.match(IQA);return e?e[0]:""}var NM=class{url;remaining;constructor(e){this.url=e,this.remaining=e}parseRootSegment(){return this.consumeOptional("/"),this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new _n([],{}):new _n([],this.parseChildren())}parseQueryParams(){let e={};if(this.consumeOptional("?"))do this.parseQueryParam(e);while(this.consumeOptional("&"));return e}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(this.remaining==="")return{};this.consumeOptional("/");let e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let A={};this.peekStartsWith("/(")&&(this.capture("/"),A=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(e.length>0||Object.keys(A).length>0)&&(i[Li]=new _n(e,A)),i}parseSegment(){let e=MM(this.remaining);if(e===""&&this.peekStartsWith(";"))throw new Ae(4009,!1);return this.capture(e),new x2(f6(e),this.parseMatrixParams())}parseMatrixParams(){let e={};for(;this.consumeOptional(";");)this.parseParam(e);return e}parseParam(e){let A=cQA(this.remaining);if(!A)return;this.capture(A);let i="";if(this.consumeOptional("=")){let n=MM(this.remaining);n&&(i=n,this.capture(i))}e[f6(A)]=f6(i)}parseQueryParam(e){let A=gQA(this.remaining);if(!A)return;this.capture(A);let i="";if(this.consumeOptional("=")){let r=CQA(this.remaining);r&&(i=r,this.capture(i))}let n=Fz(A),o=Fz(i);if(e.hasOwnProperty(n)){let r=e[n];Array.isArray(r)||(r=[r],e[n]=r),r.push(o)}else e[n]=o}parseParens(e){let A={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){let i=MM(this.remaining),n=this.remaining[i.length];if(n!=="/"&&n!==")"&&n!==";")throw new Ae(4010,!1);let o;i.indexOf(":")>-1?(o=i.slice(0,i.indexOf(":")),this.capture(o),this.capture(":")):e&&(o=Li);let r=this.parseChildren();A[o]=Object.keys(r).length===1?r[Li]:new _n([],r),this.consumeOptional("//")}return A}peekStartsWith(e){return this.remaining.startsWith(e)}consumeOptional(e){return this.peekStartsWith(e)?(this.remaining=this.remaining.substring(e.length),!0):!1}capture(e){if(!this.consumeOptional(e))throw new Ae(4011,!1)}};function Vz(t){return t.segments.length>0?new _n([],{[Li]:t}):t}function Zz(t){let e={};for(let[i,n]of Object.entries(t.children)){let o=Zz(n);if(i===Li&&o.segments.length===0&&o.hasChildren())for(let[r,s]of Object.entries(o.children))e[r]=s;else(o.segments.length>0||o.hasChildren())&&(e[i]=o)}let A=new _n(t.segments,e);return dQA(A)}function dQA(t){if(t.numberOfChildren===1&&t.children[Li]){let e=t.children[Li];return new _n(t.segments.concat(e.segments),e.children)}return t}function gB(t){return t instanceof lg}function Wz(t,e,A=null,i=null){let n=Xz(t);return $z(n,e,A,i)}function Xz(t){let e;function A(o){let r={};for(let a of o.children){let c=A(a);r[a.outlet]=c}let s=new _n(o.url,r);return o===t&&(e=s),s}let i=A(t.root),n=Vz(i);return e??n}function $z(t,e,A,i){let n=t;for(;n.parent;)n=n.parent;if(e.length===0)return kM(n,n,n,A,i);let o=BQA(e);if(o.toRoot())return kM(n,n,new _n([],{}),A,i);let r=EQA(o,n,t),s=r.processChildren?lu(r.segmentGroup,r.index,o.commands):eO(r.segmentGroup,r.index,o.commands);return kM(n,r.segmentGroup,s,A,i)}function p6(t){return typeof t=="object"&&t!=null&&!t.outlets&&!t.segmentPath}function Iu(t){return typeof t=="object"&&t!=null&&t.outlets}function kM(t,e,A,i,n){let o={};i&&Object.entries(i).forEach(([a,c])=>{o[a]=Array.isArray(c)?c.map(l=>`${l}`):`${c}`});let r;t===e?r=A:r=AO(t,e,A);let s=Vz(Zz(r));return new lg(s,o,n)}function AO(t,e,A){let i={};return Object.entries(t.children).forEach(([n,o])=>{o===e?i[n]=A:i[n]=AO(o,e,A)}),new _n(t.segments,i)}var w6=class{isAbsolute;numberOfDoubleDots;commands;constructor(e,A,i){if(this.isAbsolute=e,this.numberOfDoubleDots=A,this.commands=i,e&&i.length>0&&p6(i[0]))throw new Ae(4003,!1);let n=i.find(Iu);if(n&&n!==Tz(i))throw new Ae(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}};function BQA(t){if(typeof t[0]=="string"&&t.length===1&&t[0]==="/")return new w6(!0,0,t);let e=0,A=!1,i=t.reduce((n,o,r)=>{if(typeof o=="object"&&o!=null){if(o.outlets){let s={};return Object.entries(o.outlets).forEach(([a,c])=>{s[a]=typeof c=="string"?c.split("/"):c}),[...n,{outlets:s}]}if(o.segmentPath)return[...n,o.segmentPath]}return typeof o!="string"?[...n,o]:r===0?(o.split("/").forEach((s,a)=>{a==0&&s==="."||(a==0&&s===""?A=!0:s===".."?e++:s!=""&&n.push(s))}),n):[...n,o]},[]);return new w6(A,e,i)}var cB=class{segmentGroup;processChildren;index;constructor(e,A,i){this.segmentGroup=e,this.processChildren=A,this.index=i}};function EQA(t,e,A){if(t.isAbsolute)return new cB(e,!0,0);if(!A)return new cB(e,!1,NaN);if(A.parent===null)return new cB(A,!0,0);let i=p6(t.commands[0])?0:1,n=A.segments.length-1+i;return QQA(A,n,t.numberOfDoubleDots)}function QQA(t,e,A){let i=t,n=e,o=A;for(;o>n;){if(o-=n,i=i.parent,!i)throw new Ae(4005,!1);n=i.segments.length}return new cB(i,!1,n-o)}function hQA(t){return Iu(t[0])?t[0].outlets:{[Li]:t}}function eO(t,e,A){if(t??=new _n([],{}),t.segments.length===0&&t.hasChildren())return lu(t,e,A);let i=uQA(t,e,A),n=A.slice(i.commandIndex);if(i.match&&i.pathIndexo!==Li)&&t.children[Li]&&t.numberOfChildren===1&&t.children[Li].segments.length===0){let o=lu(t.children[Li],e,A);return new _n(t.segments,o.children)}return Object.entries(i).forEach(([o,r])=>{typeof r=="string"&&(r=[r]),r!==null&&(n[o]=eO(t.children[o],e,r))}),Object.entries(t.children).forEach(([o,r])=>{i[o]===void 0&&(n[o]=r)}),new _n(t.segments,n)}}function uQA(t,e,A){let i=0,n=e,o={match:!1,pathIndex:0,commandIndex:0};for(;n=A.length)return o;let r=t.segments[n],s=A[i];if(Iu(s))break;let a=`${s}`,c=i0&&a===void 0)break;if(a&&c&&typeof c=="object"&&c.outlets===void 0){if(!_z(a,c,r))return o;i+=2}else{if(!_z(a,{},r))return o;i++}n++}return{match:!0,pathIndex:n,commandIndex:i}}function _M(t,e,A){let i=t.segments.slice(0,e),n=0;for(;n{typeof i=="string"&&(i=[i]),i!==null&&(e[A]=_M(new _n([],{}),0,i))}),e}function Nz(t){let e={};return Object.entries(t).forEach(([A,i])=>e[A]=`${i}`),e}function _z(t,e,A){return t==A.path&&ag(e,A.parameters)}var m6="imperative",Gr=function(t){return t[t.NavigationStart=0]="NavigationStart",t[t.NavigationEnd=1]="NavigationEnd",t[t.NavigationCancel=2]="NavigationCancel",t[t.NavigationError=3]="NavigationError",t[t.RoutesRecognized=4]="RoutesRecognized",t[t.ResolveStart=5]="ResolveStart",t[t.ResolveEnd=6]="ResolveEnd",t[t.GuardsCheckStart=7]="GuardsCheckStart",t[t.GuardsCheckEnd=8]="GuardsCheckEnd",t[t.RouteConfigLoadStart=9]="RouteConfigLoadStart",t[t.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",t[t.ChildActivationStart=11]="ChildActivationStart",t[t.ChildActivationEnd=12]="ChildActivationEnd",t[t.ActivationStart=13]="ActivationStart",t[t.ActivationEnd=14]="ActivationEnd",t[t.Scroll=15]="Scroll",t[t.NavigationSkipped=16]="NavigationSkipped",t}(Gr||{}),ic=class{id;url;constructor(e,A){this.id=e,this.url=A}},F2=class extends ic{type=Gr.NavigationStart;navigationTrigger;restoredState;constructor(e,A,i="imperative",n=null){super(e,A),this.navigationTrigger=i,this.restoredState=n}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}},nc=class extends ic{urlAfterRedirects;type=Gr.NavigationEnd;constructor(e,A,i){super(e,A),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}},Qa=function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromResolver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t}(Qa||{}),IB=function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t}(IB||{}),cg=class extends ic{reason;code;type=Gr.NavigationCancel;constructor(e,A,i,n){super(e,A),this.reason=i,this.code=n}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}},gg=class extends ic{reason;code;type=Gr.NavigationSkipped;constructor(e,A,i,n){super(e,A),this.reason=i,this.code=n}},CB=class extends ic{error;target;type=Gr.NavigationError;constructor(e,A,i,n){super(e,A),this.error=i,this.target=n}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}},Cu=class extends ic{urlAfterRedirects;state;type=Gr.RoutesRecognized;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},D6=class extends ic{urlAfterRedirects;state;type=Gr.GuardsCheckStart;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},y6=class extends ic{urlAfterRedirects;state;shouldActivate;type=Gr.GuardsCheckEnd;constructor(e,A,i,n,o){super(e,A),this.urlAfterRedirects=i,this.state=n,this.shouldActivate=o}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}},v6=class extends ic{urlAfterRedirects;state;type=Gr.ResolveStart;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},b6=class extends ic{urlAfterRedirects;state;type=Gr.ResolveEnd;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},M6=class{route;type=Gr.RouteConfigLoadStart;constructor(e){this.route=e}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}},k6=class{route;type=Gr.RouteConfigLoadEnd;constructor(e){this.route=e}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}},S6=class{snapshot;type=Gr.ChildActivationStart;constructor(e){this.snapshot=e}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},R6=class{snapshot;type=Gr.ChildActivationEnd;constructor(e){this.snapshot=e}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},x6=class{snapshot;type=Gr.ActivationStart;constructor(e){this.snapshot=e}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},L6=class{snapshot;type=Gr.ActivationEnd;constructor(e){this.snapshot=e}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},dB=class{routerEvent;position;anchor;type=Gr.Scroll;constructor(e,A,i){this.routerEvent=e,this.position=A,this.anchor=i}toString(){let e=this.position?`${this.position[0]}, ${this.position[1]}`:null;return`Scroll(anchor: '${this.anchor}', position: '${e}')`}},du=class{},BB=class{url;navigationBehaviorOptions;constructor(e,A){this.url=e,this.navigationBehaviorOptions=A}};function mQA(t,e){return t.providers&&!t._injector&&(t._injector=Rh(t.providers,e,`Route: ${t.path}`)),t._injector??e}function ll(t){return t.outlet||Li}function pQA(t,e){let A=t.filter(i=>ll(i)===e);return A.push(...t.filter(i=>ll(i)!==e)),A}function mu(t){if(!t)return null;if(t.routeConfig?._injector)return t.routeConfig._injector;for(let e=t.parent;e;e=e.parent){let A=e.routeConfig;if(A?._loadedInjector)return A._loadedInjector;if(A?._injector)return A._injector}return null}var F6=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return mu(this.route?.snapshot)??this.rootInjector}constructor(e){this.rootInjector=e,this.children=new HI(this.rootInjector)}},HI=(()=>{class t{rootInjector;contexts=new Map;constructor(A){this.rootInjector=A}onChildOutletCreated(A,i){let n=this.getOrCreateContext(A);n.outlet=i,this.contexts.set(A,n)}onChildOutletDestroyed(A){let i=this.getContext(A);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){let A=this.contexts;return this.contexts=new Map,A}onOutletReAttached(A){this.contexts=A}getOrCreateContext(A){let i=this.getContext(A);return i||(i=new F6(this.rootInjector),this.contexts.set(A,i)),i}getContext(A){return this.contexts.get(A)||null}static \u0275fac=function(i){return new(i||t)(we(pr))};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),N6=class{_root;constructor(e){this._root=e}get root(){return this._root.value}parent(e){let A=this.pathFromRoot(e);return A.length>1?A[A.length-2]:null}children(e){let A=GM(e,this._root);return A?A.children.map(i=>i.value):[]}firstChild(e){let A=GM(e,this._root);return A&&A.children.length>0?A.children[0].value:null}siblings(e){let A=UM(e,this._root);return A.length<2?[]:A[A.length-2].children.map(n=>n.value).filter(n=>n!==e)}pathFromRoot(e){return UM(e,this._root).map(A=>A.value)}};function GM(t,e){if(t===e.value)return e;for(let A of e.children){let i=GM(t,A);if(i)return i}return null}function UM(t,e){if(t===e.value)return[e];for(let A of e.children){let i=UM(t,A);if(i.length)return i.unshift(e),i}return[]}var tc=class{value;children;constructor(e,A){this.value=e,this.children=A}toString(){return`TreeNode(${this.value})`}};function aB(t){let e={};return t&&t.children.forEach(A=>e[A.value.outlet]=A),e}var Bu=class extends N6{snapshot;constructor(e,A){super(e),this.snapshot=A,PM(this,e)}toString(){return this.snapshot.toString()}};function tO(t){let e=wQA(t),A=new Mi([new x2("",{})]),i=new Mi({}),n=new Mi({}),o=new Mi({}),r=new Mi(""),s=new ha(A,i,o,r,n,Li,t,e.root);return s.snapshot=e.root,new Bu(new tc(s,[]),e)}function wQA(t){let e={},A={},i={},n="",o=new YI([],e,i,n,A,Li,t,null,{});return new Eu("",new tc(o,[]))}var ha=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(e,A,i,n,o,r,s,a){this.urlSubject=e,this.paramsSubject=A,this.queryParamsSubject=i,this.fragmentSubject=n,this.dataSubject=o,this.outlet=r,this.component=s,this._futureSnapshot=a,this.title=this.dataSubject?.pipe(je(c=>c[fu]))??Me(void 0),this.url=e,this.params=A,this.queryParams=i,this.fragment=n,this.data=o}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(je(e=>JI(e))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(je(e=>JI(e))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}};function _6(t,e,A="emptyOnly"){let i,{routeConfig:n}=t;return e!==null&&(A==="always"||n?.path===""||!e.component&&!e.routeConfig?.loadComponent)?i={params:rA(rA({},e.params),t.params),data:rA(rA({},e.data),t.data),resolve:rA(rA(rA(rA({},t.data),e.data),n?.data),t._resolvedData)}:i={params:rA({},t.params),data:rA({},t.data),resolve:rA(rA({},t.data),t._resolvedData??{})},n&&nO(n)&&(i.resolve[fu]=n.title),i}var YI=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;get title(){return this.data?.[fu]}constructor(e,A,i,n,o,r,s,a,c){this.url=e,this.params=A,this.queryParams=i,this.fragment=n,this.data=o,this.outlet=r,this.component=s,this.routeConfig=a,this._resolve=c}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=JI(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=JI(this.queryParams),this._queryParamMap}toString(){let e=this.url.map(i=>i.toString()).join("/"),A=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${e}', path:'${A}')`}},Eu=class extends N6{url;constructor(e,A){super(A),this.url=e,PM(this,A)}toString(){return iO(this._root)}};function PM(t,e){e.value._routerState=t,e.children.forEach(A=>PM(t,A))}function iO(t){let e=t.children.length>0?` { ${t.children.map(iO).join(", ")} } `:"";return`${t.value}${e}`}function SM(t){if(t.snapshot){let e=t.snapshot,A=t._futureSnapshot;t.snapshot=A,ag(e.queryParams,A.queryParams)||t.queryParamsSubject.next(A.queryParams),e.fragment!==A.fragment&&t.fragmentSubject.next(A.fragment),ag(e.params,A.params)||t.paramsSubject.next(A.params),WEA(e.url,A.url)||t.urlSubject.next(A.url),ag(e.data,A.data)||t.dataSubject.next(A.data)}else t.snapshot=t._futureSnapshot,t.dataSubject.next(t._futureSnapshot.data)}function KM(t,e){let A=ag(t.params,e.params)&&eQA(t.url,e.url),i=!t.parent!=!e.parent;return A&&!i&&(!t.parent||KM(t.parent,e.parent))}function nO(t){return typeof t.title=="string"||t.title===null}var oO=new dA(""),jM=(()=>{class t{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=Li;activateEvents=new WA;deactivateEvents=new WA;attachEvents=new WA;detachEvents=new WA;routerOutletData=wJ(void 0);parentContexts=f(HI);location=f(Nn);changeDetector=f(It);inputBinder=f(pu,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(A){if(A.name){let{firstChange:i,previousValue:n}=A.name;if(i)return;this.isTrackedInParentContexts(n)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(n)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(A){return this.parentContexts.getContext(A)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let A=this.parentContexts.getContext(this.name);A?.route&&(A.attachRef?this.attach(A.attachRef,A.route):this.activateWith(A.route,A.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Ae(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Ae(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Ae(4012,!1);this.location.detach();let A=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(A.instance),A}attach(A,i){this.activated=A,this._activatedRoute=i,this.location.insert(A.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(A.instance)}deactivate(){if(this.activated){let A=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(A)}}activateWith(A,i){if(this.isActivated)throw new Ae(4013,!1);this._activatedRoute=A;let n=this.location,r=A.snapshot.component,s=this.parentContexts.getOrCreateContext(this.name).children,a=new YM(A,s,n.injector,this.routerOutletData);this.activated=n.createComponent(r,{index:n.length,injector:a,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[ti]})}return t})(),YM=class{route;childContexts;parent;outletData;constructor(e,A,i,n){this.route=e,this.childContexts=A,this.parent=i,this.outletData=n}get(e,A){return e===ha?this.route:e===HI?this.childContexts:e===oO?this.outletData:this.parent.get(e,A)}},pu=new dA(""),qM=(()=>{class t{outletDataSubscriptions=new Map;bindActivatedRouteToOutletComponent(A){this.unsubscribeFromRouteData(A),this.subscribeToRouteData(A)}unsubscribeFromRouteData(A){this.outletDataSubscriptions.get(A)?.unsubscribe(),this.outletDataSubscriptions.delete(A)}subscribeToRouteData(A){let{activatedRoute:i}=A,n=Js([i.queryParams,i.params,i.data]).pipe(jn(([o,r,s],a)=>(s=rA(rA(rA({},o),r),s),a===0?Me(s):Promise.resolve(s)))).subscribe(o=>{if(!A.isActivated||!A.activatedComponentRef||A.activatedRoute!==i||i.component===null){this.unsubscribeFromRouteData(A);return}let r=pH(i.component);if(!r){this.unsubscribeFromRouteData(A);return}for(let{templateName:s}of r.inputs)A.activatedComponentRef.setInput(s,o[s])});this.outletDataSubscriptions.set(A,n)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac})}return t})(),VM=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(i,n){i&1&&JA(0,"router-outlet")},dependencies:[jM],encapsulation:2})}return t})();function ZM(t){let e=t.children&&t.children.map(ZM),A=e?Ye(rA({},t),{children:e}):rA({},t);return!A.component&&!A.loadComponent&&(e||A.loadChildren)&&A.outlet&&A.outlet!==Li&&(A.component=VM),A}function DQA(t,e,A){let i=Qu(t,e._root,A?A._root:void 0);return new Bu(i,e)}function Qu(t,e,A){if(A&&t.shouldReuseRoute(e.value,A.value.snapshot)){let i=A.value;i._futureSnapshot=e.value;let n=yQA(t,e,A);return new tc(i,n)}else{if(t.shouldAttach(e.value)){let o=t.retrieve(e.value);if(o!==null){let r=o.route;return r.value._futureSnapshot=e.value,r.children=e.children.map(s=>Qu(t,s)),r}}let i=vQA(e.value),n=e.children.map(o=>Qu(t,o));return new tc(i,n)}}function yQA(t,e,A){return e.children.map(i=>{for(let n of A.children)if(t.shouldReuseRoute(i.value,n.value.snapshot))return Qu(t,i,n);return Qu(t,i)})}function vQA(t){return new ha(new Mi(t.url),new Mi(t.params),new Mi(t.queryParams),new Mi(t.fragment),new Mi(t.data),t.outlet,t.component,t)}var EB=class{redirectTo;navigationBehaviorOptions;constructor(e,A){this.redirectTo=e,this.navigationBehaviorOptions=A}},rO="ngNavigationCancelingError";function G6(t,e){let{redirectTo:A,navigationBehaviorOptions:i}=gB(e)?{redirectTo:e,navigationBehaviorOptions:void 0}:e,n=sO(!1,Qa.Redirect);return n.url=A,n.navigationBehaviorOptions=i,n}function sO(t,e){let A=new Error(`NavigationCancelingError: ${t||""}`);return A[rO]=!0,A.cancellationCode=e,A}function bQA(t){return aO(t)&&gB(t.url)}function aO(t){return!!t&&t[rO]}var MQA=(t,e,A,i)=>je(n=>(new JM(e,n.targetRouterState,n.currentRouterState,A,i).activate(t),n)),JM=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(e,A,i,n,o){this.routeReuseStrategy=e,this.futureState=A,this.currState=i,this.forwardEvent=n,this.inputBindingEnabled=o}activate(e){let A=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(A,i,e),SM(this.futureState.root),this.activateChildRoutes(A,i,e)}deactivateChildRoutes(e,A,i){let n=aB(A);e.children.forEach(o=>{let r=o.value.outlet;this.deactivateRoutes(o,n[r],i),delete n[r]}),Object.values(n).forEach(o=>{this.deactivateRouteAndItsChildren(o,i)})}deactivateRoutes(e,A,i){let n=e.value,o=A?A.value:null;if(n===o)if(n.component){let r=i.getContext(n.outlet);r&&this.deactivateChildRoutes(e,A,r.children)}else this.deactivateChildRoutes(e,A,i);else o&&this.deactivateRouteAndItsChildren(A,i)}deactivateRouteAndItsChildren(e,A){e.value.component&&this.routeReuseStrategy.shouldDetach(e.value.snapshot)?this.detachAndStoreRouteSubtree(e,A):this.deactivateRouteAndOutlet(e,A)}detachAndStoreRouteSubtree(e,A){let i=A.getContext(e.value.outlet),n=i&&e.value.component?i.children:A,o=aB(e);for(let r of Object.values(o))this.deactivateRouteAndItsChildren(r,n);if(i&&i.outlet){let r=i.outlet.detach(),s=i.children.onOutletDeactivated();this.routeReuseStrategy.store(e.value.snapshot,{componentRef:r,route:e,contexts:s})}}deactivateRouteAndOutlet(e,A){let i=A.getContext(e.value.outlet),n=i&&e.value.component?i.children:A,o=aB(e);for(let r of Object.values(o))this.deactivateRouteAndItsChildren(r,n);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(e,A,i){let n=aB(A);e.children.forEach(o=>{this.activateRoutes(o,n[o.value.outlet],i),this.forwardEvent(new L6(o.value.snapshot))}),e.children.length&&this.forwardEvent(new R6(e.value.snapshot))}activateRoutes(e,A,i){let n=e.value,o=A?A.value:null;if(SM(n),n===o)if(n.component){let r=i.getOrCreateContext(n.outlet);this.activateChildRoutes(e,A,r.children)}else this.activateChildRoutes(e,A,i);else if(n.component){let r=i.getOrCreateContext(n.outlet);if(this.routeReuseStrategy.shouldAttach(n.snapshot)){let s=this.routeReuseStrategy.retrieve(n.snapshot);this.routeReuseStrategy.store(n.snapshot,null),r.children.onOutletReAttached(s.contexts),r.attachRef=s.componentRef,r.route=s.route.value,r.outlet&&r.outlet.attach(s.componentRef,s.route.value),SM(s.route.value),this.activateChildRoutes(e,null,r.children)}else r.attachRef=null,r.route=n,r.outlet&&r.outlet.activateWith(n,r.injector),this.activateChildRoutes(e,null,r.children)}else this.activateChildRoutes(e,null,i)}},U6=class{path;route;constructor(e){this.path=e,this.route=this.path[this.path.length-1]}},lB=class{component;route;constructor(e,A){this.component=e,this.route=A}};function kQA(t,e,A){let i=t._root,n=e?e._root:null;return cu(i,n,A,[i.value])}function SQA(t){let e=t.routeConfig?t.routeConfig.canActivateChild:null;return!e||e.length===0?null:{node:t,guards:e}}function hB(t,e){let A=Symbol(),i=e.get(t,A);return i===A?typeof t=="function"&&!DY(t)?t:e.get(t):i}function cu(t,e,A,i,n={canDeactivateChecks:[],canActivateChecks:[]}){let o=aB(e);return t.children.forEach(r=>{RQA(r,o[r.value.outlet],A,i.concat([r.value]),n),delete o[r.value.outlet]}),Object.entries(o).forEach(([r,s])=>gu(s,A.getContext(r),n)),n}function RQA(t,e,A,i,n={canDeactivateChecks:[],canActivateChecks:[]}){let o=t.value,r=e?e.value:null,s=A?A.getContext(t.value.outlet):null;if(r&&o.routeConfig===r.routeConfig){let a=xQA(r,o,o.routeConfig.runGuardsAndResolvers);a?n.canActivateChecks.push(new U6(i)):(o.data=r.data,o._resolvedData=r._resolvedData),o.component?cu(t,e,s?s.children:null,i,n):cu(t,e,A,i,n),a&&s&&s.outlet&&s.outlet.isActivated&&n.canDeactivateChecks.push(new lB(s.outlet.component,r))}else r&&gu(e,s,n),n.canActivateChecks.push(new U6(i)),o.component?cu(t,null,s?s.children:null,i,n):cu(t,null,A,i,n);return n}function xQA(t,e,A){if(typeof A=="function")return A(t,e);switch(A){case"pathParamsChange":return!KI(t.url,e.url);case"pathParamsOrQueryParamsChange":return!KI(t.url,e.url)||!ag(t.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!KM(t,e)||!ag(t.queryParams,e.queryParams);case"paramsChange":default:return!KM(t,e)}}function gu(t,e,A){let i=aB(t),n=t.value;Object.entries(i).forEach(([o,r])=>{n.component?e?gu(r,e.children.getContext(o),A):gu(r,null,A):gu(r,e,A)}),n.component?e&&e.outlet&&e.outlet.isActivated?A.canDeactivateChecks.push(new lB(e.outlet.component,n)):A.canDeactivateChecks.push(new lB(null,n)):A.canDeactivateChecks.push(new lB(null,n))}function wu(t){return typeof t=="function"}function LQA(t){return typeof t=="boolean"}function FQA(t){return t&&wu(t.canLoad)}function NQA(t){return t&&wu(t.canActivate)}function _QA(t){return t&&wu(t.canActivateChild)}function GQA(t){return t&&wu(t.canDeactivate)}function UQA(t){return t&&wu(t.canMatch)}function cO(t){return t instanceof s0||t?.name==="EmptyError"}var Q6=Symbol("INITIAL_VALUE");function QB(){return jn(t=>Js(t.map(e=>e.pipe(On(1),Pn(Q6)))).pipe(je(e=>{for(let A of e)if(A!==!0){if(A===Q6)return Q6;if(A===!1||KQA(A))return A}return!0}),kt(e=>e!==Q6),On(1)))}function KQA(t){return gB(t)||t instanceof EB}function YQA(t,e){return tr(A=>{let{targetSnapshot:i,currentSnapshot:n,guards:{canActivateChecks:o,canDeactivateChecks:r}}=A;return r.length===0&&o.length===0?Me(Ye(rA({},A),{guardsResult:!0})):JQA(r,i,n,t).pipe(tr(s=>s&&LQA(s)?TQA(i,o,t,e):Me(s)),je(s=>Ye(rA({},A),{guardsResult:s})))})}function JQA(t,e,A,i){return oo(t).pipe(tr(n=>jQA(n.component,n.route,A,e,i)),Zl(n=>n!==!0,!0))}function TQA(t,e,A,i){return oo(e).pipe(ql(n=>d2(zQA(n.route.parent,i),HQA(n.route,i),PQA(t,n.path,A),OQA(t,n.route,A))),Zl(n=>n!==!0,!0))}function HQA(t,e){return t!==null&&e&&e(new x6(t)),Me(!0)}function zQA(t,e){return t!==null&&e&&e(new S6(t)),Me(!0)}function OQA(t,e,A){let i=e.routeConfig?e.routeConfig.canActivate:null;if(!i||i.length===0)return Me(!0);let n=i.map(o=>jl(()=>{let r=mu(e)??A,s=hB(o,r),a=NQA(s)?s.canActivate(e,t):ga(r,()=>s(e,t));return N2(a).pipe(Zl())}));return Me(n).pipe(QB())}function PQA(t,e,A){let i=e[e.length-1],o=e.slice(0,e.length-1).reverse().map(r=>SQA(r)).filter(r=>r!==null).map(r=>jl(()=>{let s=r.guards.map(a=>{let c=mu(r.node)??A,l=hB(a,c),I=_QA(l)?l.canActivateChild(i,t):ga(c,()=>l(i,t));return N2(I).pipe(Zl())});return Me(s).pipe(QB())}));return Me(o).pipe(QB())}function jQA(t,e,A,i,n){let o=e&&e.routeConfig?e.routeConfig.canDeactivate:null;if(!o||o.length===0)return Me(!0);let r=o.map(s=>{let a=mu(e)??n,c=hB(s,a),l=GQA(c)?c.canDeactivate(t,e,A,i):ga(a,()=>c(t,e,A,i));return N2(l).pipe(Zl())});return Me(r).pipe(QB())}function qQA(t,e,A,i){let n=e.canLoad;if(n===void 0||n.length===0)return Me(!0);let o=n.map(r=>{let s=hB(r,t),a=FQA(s)?s.canLoad(e,A):ga(t,()=>s(e,A));return N2(a)});return Me(o).pipe(QB(),lO(i))}function lO(t){return sv(Qo(e=>{if(typeof e!="boolean")throw G6(t,e)}),je(e=>e===!0))}function VQA(t,e,A,i){let n=e.canMatch;if(!n||n.length===0)return Me(!0);let o=n.map(r=>{let s=hB(r,t),a=UQA(s)?s.canMatch(e,A):ga(t,()=>s(e,A));return N2(a)});return Me(o).pipe(QB(),lO(i))}var hu=class{segmentGroup;constructor(e){this.segmentGroup=e||null}},uu=class extends Error{urlTree;constructor(e){super(),this.urlTree=e}};function sB(t){return g2(new hu(t))}function ZQA(t){return g2(new Ae(4e3,!1))}function WQA(t){return g2(sO(!1,Qa.GuardRejected))}var TM=class{urlSerializer;urlTree;constructor(e,A){this.urlSerializer=e,this.urlTree=A}lineralizeSegments(e,A){let i=[],n=A.root;for(;;){if(i=i.concat(n.segments),n.numberOfChildren===0)return Me(i);if(n.numberOfChildren>1||!n.children[Li])return ZQA(`${e.redirectTo}`);n=n.children[Li]}}applyRedirectCommands(e,A,i,n,o){if(typeof A!="string"){let s=A,{queryParams:a,fragment:c,routeConfig:l,url:I,outlet:C,params:d,data:B,title:E}=n,h=ga(o,()=>s({params:d,data:B,queryParams:a,fragment:c,routeConfig:l,url:I,outlet:C,title:E}));if(h instanceof lg)throw new uu(h);A=h}let r=this.applyRedirectCreateUrlTree(A,this.urlSerializer.parse(A),e,i);if(A[0]==="/")throw new uu(r);return r}applyRedirectCreateUrlTree(e,A,i,n){let o=this.createSegmentGroup(e,A.root,i,n);return new lg(o,this.createQueryParams(A.queryParams,this.urlTree.queryParams),A.fragment)}createQueryParams(e,A){let i={};return Object.entries(e).forEach(([n,o])=>{if(typeof o=="string"&&o[0]===":"){let s=o.substring(1);i[n]=A[s]}else i[n]=o}),i}createSegmentGroup(e,A,i,n){let o=this.createSegments(e,A.segments,i,n),r={};return Object.entries(A.children).forEach(([s,a])=>{r[s]=this.createSegmentGroup(e,a,i,n)}),new _n(o,r)}createSegments(e,A,i,n){return A.map(o=>o.path[0]===":"?this.findPosParam(e,o,n):this.findOrReturn(o,i))}findPosParam(e,A,i){let n=i[A.path.substring(1)];if(!n)throw new Ae(4001,!1);return n}findOrReturn(e,A){let i=0;for(let n of A){if(n.path===e.path)return A.splice(i),n;i++}return e}},HM={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function XQA(t,e,A,i,n){let o=gO(t,e,A);return o.matched?(i=mQA(e,i),VQA(i,e,A,n).pipe(je(r=>r===!0?o:rA({},HM)))):Me(o)}function gO(t,e,A){if(e.path==="**")return $QA(A);if(e.path==="")return e.pathMatch==="full"&&(t.hasChildren()||A.length>0)?rA({},HM):{matched:!0,consumedSegments:[],remainingSegments:A,parameters:{},positionalParamSegments:{}};let n=(e.matcher||Yz)(A,t,e);if(!n)return rA({},HM);let o={};Object.entries(n.posParams??{}).forEach(([s,a])=>{o[s]=a.path});let r=n.consumed.length>0?rA(rA({},o),n.consumed[n.consumed.length-1].parameters):o;return{matched:!0,consumedSegments:n.consumed,remainingSegments:A.slice(n.consumed.length),parameters:r,positionalParamSegments:n.posParams??{}}}function $QA(t){return{matched:!0,parameters:t.length>0?Tz(t).parameters:{},consumedSegments:t,remainingSegments:[],positionalParamSegments:{}}}function Gz(t,e,A,i){return A.length>0&&thA(t,A,i)?{segmentGroup:new _n(e,ehA(i,new _n(A,t.children))),slicedSegments:[]}:A.length===0&&ihA(t,A,i)?{segmentGroup:new _n(t.segments,AhA(t,A,i,t.children)),slicedSegments:A}:{segmentGroup:new _n(t.segments,t.children),slicedSegments:A}}function AhA(t,e,A,i){let n={};for(let o of A)if(Y6(t,e,o)&&!i[ll(o)]){let r=new _n([],{});n[ll(o)]=r}return rA(rA({},i),n)}function ehA(t,e){let A={};A[Li]=e;for(let i of t)if(i.path===""&&ll(i)!==Li){let n=new _n([],{});A[ll(i)]=n}return A}function thA(t,e,A){return A.some(i=>Y6(t,e,i)&&ll(i)!==Li)}function ihA(t,e,A){return A.some(i=>Y6(t,e,i))}function Y6(t,e,A){return(t.hasChildren()||e.length>0)&&A.pathMatch==="full"?!1:A.path===""}function nhA(t,e,A){return e.length===0&&!t.children[A]}var zM=class{};function ohA(t,e,A,i,n,o,r="emptyOnly"){return new OM(t,e,A,i,n,r,o).recognize()}var rhA=31,OM=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(e,A,i,n,o,r,s){this.injector=e,this.configLoader=A,this.rootComponentType=i,this.config=n,this.urlTree=o,this.paramsInheritanceStrategy=r,this.urlSerializer=s,this.applyRedirects=new TM(this.urlSerializer,this.urlTree)}noMatchError(e){return new Ae(4002,`'${e.segmentGroup}'`)}recognize(){let e=Gz(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(e).pipe(je(({children:A,rootSnapshot:i})=>{let n=new tc(i,A),o=new Eu("",n),r=Wz(i,[],this.urlTree.queryParams,this.urlTree.fragment);return r.queryParams=this.urlTree.queryParams,o.url=this.urlSerializer.serialize(r),{state:o,tree:r}}))}match(e){let A=new YI([],Object.freeze({}),Object.freeze(rA({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),Li,this.rootComponentType,null,{});return this.processSegmentGroup(this.injector,this.config,e,Li,A).pipe(je(i=>({children:i,rootSnapshot:A})),mr(i=>{if(i instanceof uu)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof hu?this.noMatchError(i):i}))}processSegmentGroup(e,A,i,n,o){return i.segments.length===0&&i.hasChildren()?this.processChildren(e,A,i,o):this.processSegment(e,A,i,i.segments,n,!0,o).pipe(je(r=>r instanceof tc?[r]:[]))}processChildren(e,A,i,n){let o=[];for(let r of Object.keys(i.children))r==="primary"?o.unshift(r):o.push(r);return oo(o).pipe(ql(r=>{let s=i.children[r],a=pQA(A,r);return this.processSegmentGroup(e,a,s,r,n)}),Cv((r,s)=>(r.push(...s),r)),B2(null),Iv(),tr(r=>{if(r===null)return sB(i);let s=IO(r);return shA(s),Me(s)}))}processSegment(e,A,i,n,o,r,s){return oo(A).pipe(ql(a=>this.processSegmentAgainstRoute(a._injector??e,A,a,i,n,o,r,s).pipe(mr(c=>{if(c instanceof hu)return Me(null);throw c}))),Zl(a=>!!a),mr(a=>{if(cO(a))return nhA(i,n,o)?Me(new zM):sB(i);throw a}))}processSegmentAgainstRoute(e,A,i,n,o,r,s,a){return ll(i)!==r&&(r===Li||!Y6(n,o,i))?sB(n):i.redirectTo===void 0?this.matchSegmentAgainstRoute(e,n,i,o,r,a):this.allowRedirects&&s?this.expandSegmentAgainstRouteUsingRedirect(e,n,A,i,o,r,a):sB(n)}expandSegmentAgainstRouteUsingRedirect(e,A,i,n,o,r,s){let{matched:a,parameters:c,consumedSegments:l,positionalParamSegments:I,remainingSegments:C}=gO(A,n,o);if(!a)return sB(A);typeof n.redirectTo=="string"&&n.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>rhA&&(this.allowRedirects=!1));let d=new YI(o,c,Object.freeze(rA({},this.urlTree.queryParams)),this.urlTree.fragment,Uz(n),ll(n),n.component??n._loadedComponent??null,n,Kz(n)),B=_6(d,s,this.paramsInheritanceStrategy);d.params=Object.freeze(B.params),d.data=Object.freeze(B.data);let E=this.applyRedirects.applyRedirectCommands(l,n.redirectTo,I,d,e);return this.applyRedirects.lineralizeSegments(n,E).pipe(tr(h=>this.processSegment(e,i,A,h.concat(C),r,!1,s)))}matchSegmentAgainstRoute(e,A,i,n,o,r){let s=XQA(A,i,n,e,this.urlSerializer);return i.path==="**"&&(A.children={}),s.pipe(jn(a=>a.matched?(e=i._injector??e,this.getChildConfig(e,i,n).pipe(jn(({routes:c})=>{let l=i._loadedInjector??e,{parameters:I,consumedSegments:C,remainingSegments:d}=a,B=new YI(C,I,Object.freeze(rA({},this.urlTree.queryParams)),this.urlTree.fragment,Uz(i),ll(i),i.component??i._loadedComponent??null,i,Kz(i)),E=_6(B,r,this.paramsInheritanceStrategy);B.params=Object.freeze(E.params),B.data=Object.freeze(E.data);let{segmentGroup:h,slicedSegments:u}=Gz(A,C,d,c);if(u.length===0&&h.hasChildren())return this.processChildren(l,c,h,B).pipe(je(L=>new tc(B,L)));if(c.length===0&&u.length===0)return Me(new tc(B,[]));let D=ll(i)===o;return this.processSegment(l,c,h,u,D?Li:o,!0,B).pipe(je(L=>new tc(B,L instanceof tc?[L]:[])))}))):sB(A)))}getChildConfig(e,A,i){return A.children?Me({routes:A.children,injector:e}):A.loadChildren?A._loadedRoutes!==void 0?Me({routes:A._loadedRoutes,injector:A._loadedInjector}):qQA(e,A,i,this.urlSerializer).pipe(tr(n=>n?this.configLoader.loadChildren(e,A).pipe(Qo(o=>{A._loadedRoutes=o.routes,A._loadedInjector=o.injector})):WQA(A))):Me({routes:[],injector:e})}};function shA(t){t.sort((e,A)=>e.value.outlet===Li?-1:A.value.outlet===Li?1:e.value.outlet.localeCompare(A.value.outlet))}function ahA(t){let e=t.value.routeConfig;return e&&e.path===""}function IO(t){let e=[],A=new Set;for(let i of t){if(!ahA(i)){e.push(i);continue}let n=e.find(o=>i.value.routeConfig===o.value.routeConfig);n!==void 0?(n.children.push(...i.children),A.add(n)):e.push(i)}for(let i of A){let n=IO(i.children);e.push(new tc(i.value,n))}return e.filter(i=>!A.has(i))}function Uz(t){return t.data||{}}function Kz(t){return t.resolve||{}}function chA(t,e,A,i,n,o){return tr(r=>ohA(t,e,A,i,r.extractedUrl,n,o).pipe(je(({state:s,tree:a})=>Ye(rA({},r),{targetSnapshot:s,urlAfterRedirects:a}))))}function lhA(t,e){return tr(A=>{let{targetSnapshot:i,guards:{canActivateChecks:n}}=A;if(!n.length)return Me(A);let o=new Set(n.map(a=>a.route)),r=new Set;for(let a of o)if(!r.has(a))for(let c of CO(a))r.add(c);let s=0;return oo(r).pipe(ql(a=>o.has(a)?ghA(a,i,t,e):(a.data=_6(a,a.parent,t).resolve,Me(void 0))),Qo(()=>s++),bd(1),tr(a=>s===r.size?Me(A):sr))})}function CO(t){let e=t.children.map(A=>CO(A)).flat();return[t,...e]}function ghA(t,e,A,i){let n=t.routeConfig,o=t._resolve;return n?.title!==void 0&&!nO(n)&&(o[fu]=n.title),IhA(o,t,e,i).pipe(je(r=>(t._resolvedData=r,t.data=_6(t,t.parent,A).resolve,null)))}function IhA(t,e,A,i){let n=LM(t);if(n.length===0)return Me({});let o={};return oo(n).pipe(tr(r=>ChA(t[r],e,A,i).pipe(Zl(),Qo(s=>{if(s instanceof EB)throw G6(new L2,s);o[r]=s}))),bd(1),je(()=>o),mr(r=>cO(r)?sr:g2(r)))}function ChA(t,e,A,i){let n=mu(e)??i,o=hB(t,n),r=o.resolve?o.resolve(e,A):ga(n,()=>o(e,A));return N2(r)}function RM(t){return jn(e=>{let A=t(e);return A?oo(A).pipe(je(()=>e)):Me(e)})}var WM=(()=>{class t{buildTitle(A){let i,n=A.root;for(;n!==void 0;)i=this.getResolvedTitleForRoute(n)??i,n=n.children.find(o=>o.outlet===Li);return i}getResolvedTitleForRoute(A){return A.data[fu]}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:()=>f(dO),providedIn:"root"})}return t})(),dO=(()=>{class t extends WM{title;constructor(A){super(),this.title=A}updateTitle(A){let i=this.buildTitle(A);i!==void 0&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||t)(we(iz))};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),zI=new dA("",{providedIn:"root",factory:()=>({})}),uB=new dA(""),J6=(()=>{class t{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=f(dH);loadComponent(A){if(this.componentLoaders.get(A))return this.componentLoaders.get(A);if(A._loadedComponent)return Me(A._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(A);let i=N2(A.loadComponent()).pipe(je(EO),Qo(o=>{this.onLoadEndListener&&this.onLoadEndListener(A),A._loadedComponent=o}),Vl(()=>{this.componentLoaders.delete(A)})),n=new l2(i,()=>new OA).pipe(fd());return this.componentLoaders.set(A,n),n}loadChildren(A,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return Me({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);let o=BO(i,this.compiler,A,this.onLoadEndListener).pipe(Vl(()=>{this.childrenLoaders.delete(i)})),r=new l2(o,()=>new OA).pipe(fd());return this.childrenLoaders.set(i,r),r}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function BO(t,e,A,i){return N2(t.loadChildren()).pipe(je(EO),tr(n=>n instanceof Lb||Array.isArray(n)?Me(n):oo(e.compileModuleAsync(n))),je(n=>{i&&i(t);let o,r,s=!1;return Array.isArray(n)?(r=n,s=!0):(o=n.create(A).injector,r=o.get(uB,[],{optional:!0,self:!0}).flat()),{routes:r.map(ZM),injector:o}}))}function dhA(t){return t&&typeof t=="object"&&"default"in t}function EO(t){return dhA(t)?t.default:t}var T6=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:()=>f(BhA),providedIn:"root"})}return t})(),BhA=(()=>{class t{shouldProcessUrl(A){return!0}extract(A){return A}merge(A,i){return A}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),XM=new dA(""),$M=new dA("");function QO(t,e,A){let i=t.get($M),n=t.get(at);return t.get(Qe).runOutsideAngular(()=>{if(!n.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,new Promise(c=>setTimeout(c));let o,r=new Promise(c=>{o=c}),s=n.startViewTransition(()=>(o(),EhA(t))),{onViewTransitionCreated:a}=i;return a&&ga(t,()=>a({transition:s,from:e,to:A})),r})}function EhA(t){return new Promise(e=>{To({read:()=>setTimeout(e)},{injector:t})})}var Ak=new dA(""),H6=(()=>{class t{currentNavigation=null;currentTransition=null;lastSuccessfulNavigation=null;events=new OA;transitionAbortSubject=new OA;configLoader=f(J6);environmentInjector=f(pr);destroyRef=f(m2);urlSerializer=f(TI);rootContexts=f(HI);location=f(Dc);inputBindingEnabled=f(pu,{optional:!0})!==null;titleStrategy=f(WM);options=f(zI,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=f(T6);createViewTransition=f(XM,{optional:!0});navigationErrorHandler=f(Ak,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>Me(void 0);rootComponentType=null;destroyed=!1;constructor(){let A=n=>this.events.next(new M6(n)),i=n=>this.events.next(new k6(n));this.configLoader.onLoadEndListener=i,this.configLoader.onLoadStartListener=A,this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(A){let i=++this.navigationId;this.transitions?.next(Ye(rA({},A),{extractedUrl:this.urlHandlingStrategy.extract(A.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:i}))}setupNavigations(A){return this.transitions=new Mi(null),this.transitions.pipe(kt(i=>i!==null),jn(i=>{let n=!1,o=!1;return Me(i).pipe(jn(r=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",Qa.SupersededByNewNavigation),sr;this.currentTransition=i,this.currentNavigation={id:r.id,initialUrl:r.rawUrl,extractedUrl:r.extractedUrl,targetBrowserUrl:typeof r.extras.browserUrl=="string"?this.urlSerializer.parse(r.extras.browserUrl):r.extras.browserUrl,trigger:r.source,extras:r.extras,previousNavigation:this.lastSuccessfulNavigation?Ye(rA({},this.lastSuccessfulNavigation),{previousNavigation:null}):null};let s=!A.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),a=r.extras.onSameUrlNavigation??A.onSameUrlNavigation;if(!s&&a!=="reload"){let c="";return this.events.next(new gg(r.id,this.urlSerializer.serialize(r.rawUrl),c,IB.IgnoredSameUrlNavigation)),r.resolve(!1),sr}if(this.urlHandlingStrategy.shouldProcessUrl(r.rawUrl))return Me(r).pipe(jn(c=>(this.events.next(new F2(c.id,this.urlSerializer.serialize(c.extractedUrl),c.source,c.restoredState)),c.id!==this.navigationId?sr:Promise.resolve(c))),chA(this.environmentInjector,this.configLoader,this.rootComponentType,A.config,this.urlSerializer,this.paramsInheritanceStrategy),Qo(c=>{i.targetSnapshot=c.targetSnapshot,i.urlAfterRedirects=c.urlAfterRedirects,this.currentNavigation=Ye(rA({},this.currentNavigation),{finalUrl:c.urlAfterRedirects});let l=new Cu(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(l)}));if(s&&this.urlHandlingStrategy.shouldProcessUrl(r.currentRawUrl)){let{id:c,extractedUrl:l,source:I,restoredState:C,extras:d}=r,B=new F2(c,this.urlSerializer.serialize(l),I,C);this.events.next(B);let E=tO(this.rootComponentType).snapshot;return this.currentTransition=i=Ye(rA({},r),{targetSnapshot:E,urlAfterRedirects:l,extras:Ye(rA({},d),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.finalUrl=l,Me(i)}else{let c="";return this.events.next(new gg(r.id,this.urlSerializer.serialize(r.extractedUrl),c,IB.IgnoredByUrlHandlingStrategy)),r.resolve(!1),sr}}),Qo(r=>{let s=new D6(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects),r.targetSnapshot);this.events.next(s)}),je(r=>(this.currentTransition=i=Ye(rA({},r),{guards:kQA(r.targetSnapshot,r.currentSnapshot,this.rootContexts)}),i)),YQA(this.environmentInjector,r=>this.events.next(r)),Qo(r=>{if(i.guardsResult=r.guardsResult,r.guardsResult&&typeof r.guardsResult!="boolean")throw G6(this.urlSerializer,r.guardsResult);let s=new y6(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects),r.targetSnapshot,!!r.guardsResult);this.events.next(s)}),kt(r=>r.guardsResult?!0:(this.cancelNavigationTransition(r,"",Qa.GuardRejected),!1)),RM(r=>{if(r.guards.canActivateChecks.length!==0)return Me(r).pipe(Qo(s=>{let a=new v6(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(a)}),jn(s=>{let a=!1;return Me(s).pipe(lhA(this.paramsInheritanceStrategy,this.environmentInjector),Qo({next:()=>a=!0,complete:()=>{a||this.cancelNavigationTransition(s,"",Qa.NoDataFromResolver)}}))}),Qo(s=>{let a=new b6(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(a)}))}),RM(r=>{let s=a=>{let c=[];a.routeConfig?.loadComponent&&!a.routeConfig._loadedComponent&&c.push(this.configLoader.loadComponent(a.routeConfig).pipe(Qo(l=>{a.component=l}),je(()=>{})));for(let l of a.children)c.push(...s(l));return c};return Js(s(r.targetSnapshot.root)).pipe(B2(null),On(1))}),RM(()=>this.afterPreactivation()),jn(()=>{let{currentSnapshot:r,targetSnapshot:s}=i,a=this.createViewTransition?.(this.environmentInjector,r.root,s.root);return a?oo(a).pipe(je(()=>i)):Me(i)}),je(r=>{let s=DQA(A.routeReuseStrategy,r.targetSnapshot,r.currentRouterState);return this.currentTransition=i=Ye(rA({},r),{targetRouterState:s}),this.currentNavigation.targetRouterState=s,i}),Qo(()=>{this.events.next(new du)}),MQA(this.rootContexts,A.routeReuseStrategy,r=>this.events.next(r),this.inputBindingEnabled),On(1),Qo({next:r=>{n=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new nc(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects))),this.titleStrategy?.updateTitle(r.targetRouterState.snapshot),r.resolve(!0)},complete:()=>{n=!0}}),St(this.transitionAbortSubject.pipe(Qo(r=>{throw r}))),Vl(()=>{!n&&!o&&this.cancelNavigationTransition(i,"",Qa.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation=null,this.currentTransition=null)}),mr(r=>{if(this.destroyed)return i.resolve(!1),sr;if(o=!0,aO(r))this.events.next(new cg(i.id,this.urlSerializer.serialize(i.extractedUrl),r.message,r.cancellationCode)),bQA(r)?this.events.next(new BB(r.url,r.navigationBehaviorOptions)):i.resolve(!1);else{let s=new CB(i.id,this.urlSerializer.serialize(i.extractedUrl),r,i.targetSnapshot??void 0);try{let a=ga(this.environmentInjector,()=>this.navigationErrorHandler?.(s));if(a instanceof EB){let{message:c,cancellationCode:l}=G6(this.urlSerializer,a);this.events.next(new cg(i.id,this.urlSerializer.serialize(i.extractedUrl),c,l)),this.events.next(new BB(a.redirectTo,a.navigationBehaviorOptions))}else throw this.events.next(s),r}catch(a){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(a)}}return sr}))}))}cancelNavigationTransition(A,i,n){let o=new cg(A.id,this.urlSerializer.serialize(A.extractedUrl),i,n);this.events.next(o),A.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let A=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=this.currentNavigation?.targetBrowserUrl??this.currentNavigation?.extractedUrl;return A.toString()!==i?.toString()&&!this.currentNavigation?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function QhA(t){return t!==m6}var hO=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:()=>f(hhA),providedIn:"root"})}return t})(),K6=class{shouldDetach(e){return!1}store(e,A){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,A){return e.routeConfig===A.routeConfig}},hhA=(()=>{class t extends K6{static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),uO=(()=>{class t{urlSerializer=f(TI);options=f(zI,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=f(Dc);urlHandlingStrategy=f(T6);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new lg;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:A,initialUrl:i,targetBrowserUrl:n}){let o=A!==void 0?this.urlHandlingStrategy.merge(A,i):i,r=n??o;return r instanceof lg?this.urlSerializer.serialize(r):r}commitTransition({targetRouterState:A,finalUrl:i,initialUrl:n}){i&&A?(this.currentUrlTree=i,this.rawUrlTree=this.urlHandlingStrategy.merge(i,n),this.routerState=A):this.rawUrlTree=n}routerState=tO(null);getRouterState(){return this.routerState}stateMemento=this.createStateMemento();updateStateMemento(){this.stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}resetInternalState({finalUrl:A}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,A??this.rawUrlTree)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:()=>f(uhA),providedIn:"root"})}return t})(),uhA=(()=>{class t extends uO{currentPageId=0;lastSuccessfulId=-1;restoredState(){return this.location.getState()}get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(A){return this.location.subscribe(i=>{i.type==="popstate"&&setTimeout(()=>{A(i.url,i.state,"popstate")})})}handleRouterEvent(A,i){A instanceof F2?this.updateStateMemento():A instanceof gg?this.commitTransition(i):A instanceof Cu?this.urlUpdateStrategy==="eager"&&(i.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(i),i)):A instanceof du?(this.commitTransition(i),this.urlUpdateStrategy==="deferred"&&!i.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(i),i)):A instanceof cg&&(A.code===Qa.GuardRejected||A.code===Qa.NoDataFromResolver)?this.restoreHistory(i):A instanceof CB?this.restoreHistory(i,!0):A instanceof nc&&(this.lastSuccessfulId=A.id,this.currentPageId=this.browserPageId)}setBrowserUrl(A,{extras:i,id:n}){let{replaceUrl:o,state:r}=i;if(this.location.isCurrentPathEqualTo(A)||o){let s=this.browserPageId,a=rA(rA({},r),this.generateNgRouterState(n,s));this.location.replaceState(A,"",a)}else{let s=rA(rA({},r),this.generateNgRouterState(n,this.browserPageId+1));this.location.go(A,"",s)}}restoreHistory(A,i=!1){if(this.canceledNavigationResolution==="computed"){let n=this.browserPageId,o=this.currentPageId-n;o!==0?this.location.historyGo(o):this.getCurrentUrlTree()===A.finalUrl&&o===0&&(this.resetInternalState(A),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(i&&this.resetInternalState(A),this.resetUrlToCurrentUrlTree())}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(A,i){return this.canceledNavigationResolution==="computed"?{navigationId:A,\u0275routerPageId:i}:{navigationId:A}}static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function z6(t,e){t.events.pipe(kt(A=>A instanceof nc||A instanceof cg||A instanceof CB||A instanceof gg),je(A=>A instanceof nc||A instanceof gg?0:(A instanceof cg?A.code===Qa.Redirect||A.code===Qa.SupersededByNewNavigation:!1)?2:1),kt(A=>A!==2),On(1)).subscribe(()=>{e()})}var fhA={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},mhA={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"},Ig=(()=>{class t{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=f(_b);stateManager=f(uO);options=f(zI,{optional:!0})||{};pendingTasks=f(B0);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=f(H6);urlSerializer=f(TI);location=f(Dc);urlHandlingStrategy=f(T6);_events=new OA;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=f(hO);onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=f(uB,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!f(pu,{optional:!0});constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:A=>{this.console.warn(A)}}),this.subscribeToNavigationEvents()}eventsSubscription=new Kt;subscribeToNavigationEvents(){let A=this.navigationTransitions.events.subscribe(i=>{try{let n=this.navigationTransitions.currentTransition,o=this.navigationTransitions.currentNavigation;if(n!==null&&o!==null){if(this.stateManager.handleRouterEvent(i,o),i instanceof cg&&i.code!==Qa.Redirect&&i.code!==Qa.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof nc)this.navigated=!0;else if(i instanceof BB){let r=i.navigationBehaviorOptions,s=this.urlHandlingStrategy.merge(i.url,n.currentRawUrl),a=rA({browserUrl:n.extras.browserUrl,info:n.extras.info,skipLocationChange:n.extras.skipLocationChange,replaceUrl:n.extras.replaceUrl||this.urlUpdateStrategy==="eager"||QhA(n.source)},r);this.scheduleNavigation(s,m6,null,a,{resolve:n.resolve,reject:n.reject,promise:n.promise})}}whA(i)&&this._events.next(i)}catch(n){this.navigationTransitions.transitionAbortSubject.next(n)}});this.eventsSubscription.add(A)}resetRootComponentType(A){this.routerState.root.component=A,this.navigationTransitions.rootComponentType=A}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),m6,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((A,i,n)=>{this.navigateToSyncWithBrowser(A,n,i)})}navigateToSyncWithBrowser(A,i,n){let o={replaceUrl:!0},r=n?.navigationId?n:null;if(n){let a=rA({},n);delete a.navigationId,delete a.\u0275routerPageId,Object.keys(a).length!==0&&(o.state=a)}let s=this.parseUrl(A);this.scheduleNavigation(s,i,r,o)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(A){this.config=A.map(ZM),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(A,i={}){let{relativeTo:n,queryParams:o,fragment:r,queryParamsHandling:s,preserveFragment:a}=i,c=a?this.currentUrlTree.fragment:r,l=null;switch(s??this.options.defaultQueryParamsHandling){case"merge":l=rA(rA({},this.currentUrlTree.queryParams),o);break;case"preserve":l=this.currentUrlTree.queryParams;break;default:l=o||null}l!==null&&(l=this.removeEmptyProps(l));let I;try{let C=n?n.snapshot:this.routerState.snapshot.root;I=Xz(C)}catch{(typeof A[0]!="string"||A[0][0]!=="/")&&(A=[]),I=this.currentUrlTree.root}return $z(I,A,l,c??null)}navigateByUrl(A,i={skipLocationChange:!1}){let n=gB(A)?A:this.parseUrl(A),o=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(o,m6,null,i)}navigate(A,i={skipLocationChange:!1}){return phA(A),this.navigateByUrl(this.createUrlTree(A,i),i)}serializeUrl(A){return this.urlSerializer.serialize(A)}parseUrl(A){try{return this.urlSerializer.parse(A)}catch{return this.urlSerializer.parse("/")}}isActive(A,i){let n;if(i===!0?n=rA({},fhA):i===!1?n=rA({},mhA):n=i,gB(A))return Lz(this.currentUrlTree,A,n);let o=this.parseUrl(A);return Lz(this.currentUrlTree,o,n)}removeEmptyProps(A){return Object.entries(A).reduce((i,[n,o])=>(o!=null&&(i[n]=o),i),{})}scheduleNavigation(A,i,n,o,r){if(this.disposed)return Promise.resolve(!1);let s,a,c;r?(s=r.resolve,a=r.reject,c=r.promise):c=new Promise((I,C)=>{s=I,a=C});let l=this.pendingTasks.add();return z6(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(l))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:n,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:A,extras:o,resolve:s,reject:a,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(I=>Promise.reject(I))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function phA(t){for(let e=0;e{class t{router;injector;preloadingStrategy;loader;subscription;constructor(A,i,n,o){this.router=A,this.injector=i,this.preloadingStrategy=n,this.loader=o}setUpPreloading(){this.subscription=this.router.events.pipe(kt(A=>A instanceof nc),ql(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(A,i){let n=[];for(let o of i){o.providers&&!o._injector&&(o._injector=Rh(o.providers,A,`Route: ${o.path}`));let r=o._injector??A,s=o._loadedInjector??r;(o.loadChildren&&!o._loadedRoutes&&o.canLoad===void 0||o.loadComponent&&!o._loadedComponent)&&n.push(this.preloadConfig(r,o)),(o.children||o._loadedRoutes)&&n.push(this.processRoutes(s,o.children??o._loadedRoutes))}return oo(n).pipe(C2())}preloadConfig(A,i){return this.preloadingStrategy.preload(i,()=>{let n;i.loadChildren&&i.canLoad===void 0?n=this.loader.loadChildren(A,i):n=Me(null);let o=n.pipe(tr(r=>r===null?Me(void 0):(i._loadedRoutes=r.routes,i._loadedInjector=r.injector,this.processRoutes(r.injector??A,r.routes))));if(i.loadComponent&&!i._loadedComponent){let r=this.loader.loadComponent(i);return oo([o,r]).pipe(C2())}else return o})}static \u0275fac=function(i){return new(i||t)(we(Ig),we(pr),we(Du),we(J6))};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),mO=new dA(""),DhA=(()=>{class t{urlSerializer;transitions;viewportScroller;zone;options;routerEventsSubscription;scrollEventsSubscription;lastId=0;lastSource="imperative";restoredId=0;store={};constructor(A,i,n,o,r={}){this.urlSerializer=A,this.transitions=i,this.viewportScroller=n,this.zone=o,this.options=r,r.scrollPositionRestoration||="disabled",r.anchorScrolling||="disabled"}init(){this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(A=>{A instanceof F2?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=A.navigationTrigger,this.restoredId=A.restoredState?A.restoredState.navigationId:0):A instanceof nc?(this.lastId=A.id,this.scheduleScrollEvent(A,this.urlSerializer.parse(A.urlAfterRedirects).fragment)):A instanceof gg&&A.code===IB.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(A,this.urlSerializer.parse(A.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(A=>{A instanceof dB&&(A.position?this.options.scrollPositionRestoration==="top"?this.viewportScroller.scrollToPosition([0,0]):this.options.scrollPositionRestoration==="enabled"&&this.viewportScroller.scrollToPosition(A.position):A.anchor&&this.options.anchorScrolling==="enabled"?this.viewportScroller.scrollToAnchor(A.anchor):this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(A,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new dB(A,this.lastSource==="popstate"?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static \u0275fac=function(i){yT()};static \u0275prov=NA({token:t,factory:t.\u0275fac})}return t})();function yhA(t){return t.routerState.root}function yu(t,e){return{\u0275kind:t,\u0275providers:e}}function vhA(){let t=f(Rt);return e=>{let A=t.get(la);if(e!==A.components[0])return;let i=t.get(Ig),n=t.get(pO);t.get(tk)===1&&i.initialNavigation(),t.get(yO,null,Gi.Optional)?.setUpPreloading(),t.get(mO,null,Gi.Optional)?.init(),i.resetRootComponentType(A.componentTypes[0]),n.closed||(n.next(),n.complete(),n.unsubscribe())}}var pO=new dA("",{factory:()=>new OA}),tk=new dA("",{providedIn:"root",factory:()=>1});function wO(){let t=[{provide:tk,useValue:0},Yb(()=>{let e=f(Rt);return e.get(Vb,Promise.resolve()).then(()=>new Promise(i=>{let n=e.get(Ig),o=e.get(pO);z6(n,()=>{i(!0)}),e.get(H6).afterPreactivation=()=>(i(!0),o.closed?Me(void 0):o),n.initialNavigation()}))})];return yu(2,t)}function DO(){let t=[Yb(()=>{f(Ig).setUpLocationChangeListener()}),{provide:tk,useValue:2}];return yu(3,t)}var yO=new dA("");function vO(t){return yu(0,[{provide:yO,useExisting:fO},{provide:Du,useExisting:t}])}function bO(){return yu(8,[qM,{provide:pu,useExisting:qM}])}function MO(t){E0("NgRouterViewTransitions");let e=[{provide:XM,useValue:QO},{provide:$M,useValue:rA({skipNextTransition:!!t?.skipInitialTransition},t)}];return yu(9,e)}var kO=[Dc,{provide:TI,useClass:L2},Ig,HI,{provide:ha,useFactory:yhA,deps:[Ig]},J6,[]],O6=(()=>{class t{constructor(){}static forRoot(A,i){return{ngModule:t,providers:[kO,[],{provide:uB,multi:!0,useValue:A},[],i?.errorHandler?{provide:Ak,useValue:i.errorHandler}:[],{provide:zI,useValue:i||{}},i?.useHash?MhA():khA(),bhA(),i?.preloadingStrategy?vO(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?ShA(i):[],i?.bindToComponentInputs?bO().\u0275providers:[],i?.enableViewTransitions?MO().\u0275providers:[],RhA()]}}static forChild(A){return{ngModule:t,providers:[{provide:uB,multi:!0,useValue:A}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({})}return t})();function bhA(){return{provide:mO,useFactory:()=>{let t=f(xH),e=f(Qe),A=f(zI),i=f(H6),n=f(TI);return A.scrollOffset&&t.setOffset(A.scrollOffset),new DhA(n,i,t,e,A)}}}function MhA(){return{provide:u0,useClass:$b}}function khA(){return{provide:u0,useClass:Yp}}function ShA(t){return[t.initialNavigation==="disabled"?DO().\u0275providers:[],t.initialNavigation==="enabledBlocking"?wO().\u0275providers:[]]}var ek=new dA("");function RhA(){return[{provide:ek,useFactory:vhA},{provide:Jb,multi:!0,useExisting:ek}]}var nk;try{nk=typeof Intl<"u"&&Intl.v8BreakIterator}catch{nk=!1}var Ii=(()=>{class t{_platformId=f(og);isBrowser=this._platformId?sg(this._platformId):typeof document=="object"&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!!(window.chrome||nk)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var fB,SO=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function ok(){if(fB)return fB;if(typeof document!="object"||!document)return fB=new Set(SO),fB;let t=document.createElement("input");return fB=new Set(SO.filter(e=>(t.setAttribute("type",e),t.type===e))),fB}var vu;function FhA(){if(vu==null&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>vu=!0}))}finally{vu=vu||!1}return vu}function bc(t){return FhA()?t:!!t.capture}var gl=function(t){return t[t.NORMAL=0]="NORMAL",t[t.NEGATED=1]="NEGATED",t[t.INVERTED=2]="INVERTED",t}(gl||{}),P6,OI;function j6(){if(OI==null){if(typeof document!="object"||!document||typeof Element!="function"||!Element)return OI=!1,OI;if("scrollBehavior"in document.documentElement.style)OI=!0;else{let t=Element.prototype.scrollTo;t?OI=!/\{\s*\[native code\]\s*\}/.test(t.toString()):OI=!1}}return OI}function mB(){if(typeof document!="object"||!document)return gl.NORMAL;if(P6==null){let t=document.createElement("div"),e=t.style;t.dir="rtl",e.width="1px",e.overflow="auto",e.visibility="hidden",e.pointerEvents="none",e.position="absolute";let A=document.createElement("div"),i=A.style;i.width="2px",i.height="1px",t.appendChild(A),document.body.appendChild(t),P6=gl.NORMAL,t.scrollLeft===0&&(t.scrollLeft=1,P6=t.scrollLeft===0?gl.NEGATED:gl.INVERTED),t.remove()}return P6}var ik;function NhA(){if(ik==null){let t=typeof document<"u"?document.head:null;ik=!!(t&&(t.createShadowRoot||t.attachShadow))}return ik}function RO(t){if(NhA()){let e=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&e instanceof ShadowRoot)return e}return null}function pB(){let t=typeof document<"u"&&document?document.activeElement:null;for(;t&&t.shadowRoot;){let e=t.shadowRoot.activeElement;if(e===t)break;t=e}return t}function oc(t){return t.composedPath?t.composedPath()[0]:t.target}function rk(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}function sk(t,e,A,i,n){let o=parseInt(Pb.major),r=parseInt(Pb.minor);return o>19||o===19&&r>0||o===0&&r===0?t.listen(e,A,i,n):(e.addEventListener(A,i,n),()=>{e.removeEventListener(A,i,n)})}var q6=new WeakMap,Rn=(()=>{class t{_appRef;_injector=f(Rt);_environmentInjector=f(pr);load(A){let i=this._appRef=this._appRef||this._injector.get(la),n=q6.get(i);n||(n={loaders:new Set,refs:[]},q6.set(i,n),i.onDestroy(()=>{q6.get(i)?.refs.forEach(o=>o.destroy()),q6.delete(i)})),n.loaders.has(A)||(n.loaders.add(A),n.refs.push(Gp(A,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),bu=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["ng-component"]],exportAs:["cdkVisuallyHidden"],decls:0,vars:0,template:function(i,n){},styles:[".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}"],encapsulation:2,changeDetection:0})}return t})();function ir(t,...e){return e.length?e.some(A=>t[A]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}function Xo(t){return t!=null&&`${t}`!="false"}function zs(t,e=0){return ak(t)?Number(t):arguments.length===2?e:0}function ak(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}function wB(t){return Array.isArray(t)?t:[t]}function Cr(t){return t==null?"":typeof t=="string"?t:`${t}px`}function ua(t){return t instanceof ee?t.nativeElement:t}function _hA(t){if(t.type==="characterData"&&t.target instanceof Comment)return!0;if(t.type==="childList"){for(let e=0;e{class t{create(A){return typeof MutationObserver>"u"?null:new MutationObserver(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),LO=(()=>{class t{_mutationObserverFactory=f(xO);_observedElements=new Map;_ngZone=f(Qe);constructor(){}ngOnDestroy(){this._observedElements.forEach((A,i)=>this._cleanupObserver(i))}observe(A){let i=ua(A);return new ct(n=>{let r=this._observeElement(i).pipe(je(s=>s.filter(a=>!_hA(a))),kt(s=>!!s.length)).subscribe(s=>{this._ngZone.run(()=>{n.next(s)})});return()=>{r.unsubscribe(),this._unobserveElement(i)}})}_observeElement(A){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(A))this._observedElements.get(A).count++;else{let i=new OA,n=this._mutationObserverFactory.create(o=>i.next(o));n&&n.observe(A,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(A,{observer:n,stream:i,count:1})}return this._observedElements.get(A).stream})}_unobserveElement(A){this._observedElements.has(A)&&(this._observedElements.get(A).count--,this._observedElements.get(A).count||this._cleanupObserver(A))}_cleanupObserver(A){if(this._observedElements.has(A)){let{observer:i,stream:n}=this._observedElements.get(A);i&&i.disconnect(),n.complete(),this._observedElements.delete(A)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),V6=(()=>{class t{_contentObserver=f(LO);_elementRef=f(ee);event=new WA;get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._disabled?this._unsubscribe():this._subscribe()}_disabled=!1;get debounce(){return this._debounce}set debounce(A){this._debounce=zs(A),this._subscribe()}_debounce;_currentSubscription=null;constructor(){}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();let A=this._contentObserver.observe(this._elementRef);this._currentSubscription=(this.debounce?A.pipe(el(this.debounce)):A).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",ie],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}return t})(),DB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({providers:[xO]})}return t})();var FO=new Set,PI,GhA=(()=>{class t{_platform=f(Ii);_nonce=f(yh,{optional:!0});_matchMedia;constructor(){this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):KhA}matchMedia(A){return(this._platform.WEBKIT||this._platform.BLINK)&&UhA(A,this._nonce),this._matchMedia(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function UhA(t,e){if(!FO.has(t))try{PI||(PI=document.createElement("style"),e&&PI.setAttribute("nonce",e),PI.setAttribute("type","text/css"),document.head.appendChild(PI)),PI.sheet&&(PI.sheet.insertRule(`@media ${t} {body{ }}`,0),FO.add(t))}catch(A){console.error(A)}}function KhA(t){return{matches:t==="all"||t==="",media:t,addListener:()=>{},removeListener:()=>{}}}var Z6=(()=>{class t{_mediaMatcher=f(GhA);_zone=f(Qe);_queries=new Map;_destroySubject=new OA;constructor(){}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(A){return NO(wB(A)).some(n=>this._registerQuery(n).mql.matches)}observe(A){let n=NO(wB(A)).map(r=>this._registerQuery(r).observable),o=Js(n);return o=d2(o.pipe(On(1)),o.pipe(CI(1),el(0))),o.pipe(je(r=>{let s={matches:!1,breakpoints:{}};return r.forEach(({matches:a,query:c})=>{s.matches=s.matches||a,s.breakpoints[c]=a}),s}))}_registerQuery(A){if(this._queries.has(A))return this._queries.get(A);let i=this._mediaMatcher.matchMedia(A),o={observable:new ct(r=>{let s=a=>this._zone.run(()=>r.next(a));return i.addListener(s),()=>{i.removeListener(s)}}).pipe(Pn(i),je(({matches:r})=>({query:A,matches:r})),St(this._destroySubject)),mql:i};return this._queries.set(A,o),o}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function NO(t){return t.map(e=>e.split(",")).reduce((e,A)=>e.concat(A)).map(e=>e.trim())}var _O={XSmall:"(max-width: 599.98px)",Small:"(min-width: 600px) and (max-width: 959.98px)",Medium:"(min-width: 960px) and (max-width: 1279.98px)",Large:"(min-width: 1280px) and (max-width: 1919.98px)",XLarge:"(min-width: 1920px)",Handset:"(max-width: 599.98px) and (orientation: portrait), (max-width: 959.98px) and (orientation: landscape)",Tablet:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), (min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",Web:"(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)",HandsetPortrait:"(max-width: 599.98px) and (orientation: portrait)",TabletPortrait:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)",WebPortrait:"(min-width: 840px) and (orientation: portrait)",HandsetLandscape:"(max-width: 959.98px) and (orientation: landscape)",TabletLandscape:"(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",WebLandscape:"(min-width: 1280px) and (orientation: landscape)"};var JO=" ";function Ek(t,e,A){let i=A8(t,e);A=A.trim(),!i.some(n=>n.trim()===A)&&(i.push(A),t.setAttribute(e,i.join(JO)))}function i8(t,e,A){let i=A8(t,e);A=A.trim();let n=i.filter(o=>o!==A);n.length?t.setAttribute(e,n.join(JO)):t.removeAttribute(e)}function A8(t,e){return t.getAttribute(e)?.match(/\S+/g)??[]}var TO="cdk-describedby-message",W6="cdk-describedby-host",Ik=0,HO=(()=>{class t{_platform=f(Ii);_document=f(at);_messageRegistry=new Map;_messagesContainer=null;_id=`${Ik++}`;constructor(){f(Rn).load(bu),this._id=f(Vd)+"-"+Ik++}describe(A,i,n){if(!this._canBeDescribed(A,i))return;let o=ck(i,n);typeof i!="string"?(GO(i,this._id),this._messageRegistry.set(o,{messageElement:i,referenceCount:0})):this._messageRegistry.has(o)||this._createMessageElement(i,n),this._isElementDescribedByMessage(A,o)||this._addMessageReference(A,o)}removeDescription(A,i,n){if(!i||!this._isElementNode(A))return;let o=ck(i,n);if(this._isElementDescribedByMessage(A,o)&&this._removeMessageReference(A,o),typeof i=="string"){let r=this._messageRegistry.get(o);r&&r.referenceCount===0&&this._deleteMessageElement(o)}this._messagesContainer?.childNodes.length===0&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){let A=this._document.querySelectorAll(`[${W6}="${this._id}"]`);for(let i=0;in.indexOf(TO)!=0);A.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(A,i){let n=this._messageRegistry.get(i);Ek(A,"aria-describedby",n.messageElement.id),A.setAttribute(W6,this._id),n.referenceCount++}_removeMessageReference(A,i){let n=this._messageRegistry.get(i);n.referenceCount--,i8(A,"aria-describedby",n.messageElement.id),A.removeAttribute(W6)}_isElementDescribedByMessage(A,i){let n=A8(A,"aria-describedby"),o=this._messageRegistry.get(i),r=o&&o.messageElement.id;return!!r&&n.indexOf(r)!=-1}_canBeDescribed(A,i){if(!this._isElementNode(A))return!1;if(i&&typeof i=="object")return!0;let n=i==null?"":`${i}`.trim(),o=A.getAttribute("aria-label");return n?!o||o.trim()!==n:!1}_isElementNode(A){return A.nodeType===this._document.ELEMENT_NODE}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function ck(t,e){return typeof t=="string"?`${e||""}/${t}`:t}function GO(t,e){t.id||(t.id=`${TO}-${e}-${Ik++}`)}var $hA=200,Ck=class{_letterKeyStream=new OA;_items=[];_selectedItemIndex=-1;_pressedLetters=[];_skipPredicateFn;_selectedItem=new OA;selectedItem=this._selectedItem;constructor(e,A){let i=typeof A?.debounceInterval=="number"?A.debounceInterval:$hA;A?.skipPredicate&&(this._skipPredicateFn=A.skipPredicate),this.setItems(e),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(e){this._selectedItemIndex=e}setItems(e){this._items=e}handleKey(e){let A=e.keyCode;e.key&&e.key.length===1?this._letterKeyStream.next(e.key.toLocaleUpperCase()):(A>=65&&A<=90||A>=48&&A<=57)&&this._letterKeyStream.next(String.fromCharCode(A))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(e){this._letterKeyStream.pipe(Qo(A=>this._pressedLetters.push(A)),el(e),kt(()=>this._pressedLetters.length>0),je(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(A=>{for(let i=1;ie.disabled;constructor(e,A){this._items=e,e instanceof ca?this._itemChangesSubscription=e.changes.subscribe(i=>this._itemsChanged(i.toArray())):p2(e)&&(this._effectRef=Nh(()=>this._itemsChanged(e()),{injector:A}))}tabOut=new OA;change=new OA;skipPredicate(e){return this._skipPredicateFn=e,this}withWrap(e=!0){return this._wrap=e,this}withVerticalOrientation(e=!0){return this._vertical=e,this}withHorizontalOrientation(e){return this._horizontal=e,this}withAllowedModifierKeys(e){return this._allowedModifierKeys=e,this}withTypeAhead(e=200){this._typeaheadSubscription.unsubscribe();let A=this._getItemsArray();return this._typeahead=new Ck(A,{debounceInterval:typeof e=="number"?e:void 0,skipPredicate:i=>this._skipPredicateFn(i)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(i=>{this.setActiveItem(i)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(e=!0){return this._homeAndEnd=e,this}withPageUpDown(e=!0,A=10){return this._pageUpAndDown={enabled:e,delta:A},this}setActiveItem(e){let A=this._activeItem();this.updateActiveItem(e),this._activeItem()!==A&&this.change.next(this._activeItemIndex)}onKeydown(e){let A=e.keyCode,n=["altKey","ctrlKey","metaKey","shiftKey"].every(o=>!e[o]||this._allowedModifierKeys.indexOf(o)>-1);switch(A){case 9:this.tabOut.next();return;case 40:if(this._vertical&&n){this.setNextItemActive();break}else return;case 38:if(this._vertical&&n){this.setPreviousItemActive();break}else return;case 39:if(this._horizontal&&n){this._horizontal==="rtl"?this.setPreviousItemActive():this.setNextItemActive();break}else return;case 37:if(this._horizontal&&n){this._horizontal==="rtl"?this.setNextItemActive():this.setPreviousItemActive();break}else return;case 36:if(this._homeAndEnd&&n){this.setFirstItemActive();break}else return;case 35:if(this._homeAndEnd&&n){this.setLastItemActive();break}else return;case 33:if(this._pageUpAndDown.enabled&&n){let o=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(o>0?o:0,1);break}else return;case 34:if(this._pageUpAndDown.enabled&&n){let o=this._activeItemIndex+this._pageUpAndDown.delta,r=this._getItemsArray().length;this._setActiveItemByIndex(o-1&&i!==this._activeItemIndex&&(this._activeItemIndex=i,this._typeahead?.setCurrentSelectedItemIndex(i))}}},t8=class extends e8{setActiveItem(e){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(e),this.activeItem&&this.activeItem.setActiveStyles()}},qI=class extends e8{_origin="program";setFocusOrigin(e){return this._origin=e,this}setActiveItem(e){super.setActiveItem(e),this.activeItem&&this.activeItem.focus(this._origin)}};var Mu=(()=>{class t{_platform=f(Ii);constructor(){}isDisabled(A){return A.hasAttribute("disabled")}isVisible(A){return euA(A)&&getComputedStyle(A).visibility==="visible"}isTabbable(A){if(!this._platform.isBrowser)return!1;let i=AuA(cuA(A));if(i&&(UO(i)===-1||!this.isVisible(i)))return!1;let n=A.nodeName.toLowerCase(),o=UO(A);return A.hasAttribute("contenteditable")?o!==-1:n==="iframe"||n==="object"||this._platform.WEBKIT&&this._platform.IOS&&!suA(A)?!1:n==="audio"?A.hasAttribute("controls")?o!==-1:!1:n==="video"?o===-1?!1:o!==null?!0:this._platform.FIREFOX||A.hasAttribute("controls"):A.tabIndex>=0}isFocusable(A,i){return auA(A)&&!this.isDisabled(A)&&(i?.ignoreVisibility||this.isVisible(A))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function AuA(t){try{return t.frameElement}catch{return null}}function euA(t){return!!(t.offsetWidth||t.offsetHeight||typeof t.getClientRects=="function"&&t.getClientRects().length)}function tuA(t){let e=t.nodeName.toLowerCase();return e==="input"||e==="select"||e==="button"||e==="textarea"}function iuA(t){return ouA(t)&&t.type=="hidden"}function nuA(t){return ruA(t)&&t.hasAttribute("href")}function ouA(t){return t.nodeName.toLowerCase()=="input"}function ruA(t){return t.nodeName.toLowerCase()=="a"}function zO(t){if(!t.hasAttribute("tabindex")||t.tabIndex===void 0)return!1;let e=t.getAttribute("tabindex");return!!(e&&!isNaN(parseInt(e,10)))}function UO(t){if(!zO(t))return null;let e=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(e)?-1:e}function suA(t){let e=t.nodeName.toLowerCase(),A=e==="input"&&t.type;return A==="text"||A==="password"||e==="select"||e==="textarea"}function auA(t){return iuA(t)?!1:tuA(t)||nuA(t)||t.hasAttribute("contenteditable")||zO(t)}function cuA(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}var dk=class{_element;_checker;_ngZone;_document;_injector;_startAnchor;_endAnchor;_hasAttached=!1;startAnchorListener=()=>this.focusLastTabbableElement();endAnchorListener=()=>this.focusFirstTabbableElement();get enabled(){return this._enabled}set enabled(e){this._enabled=e,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}_enabled=!0;constructor(e,A,i,n,o=!1,r){this._element=e,this._checker=A,this._ngZone=i,this._document=n,this._injector=r,o||this.attachAnchors()}destroy(){let e=this._startAnchor,A=this._endAnchor;e&&(e.removeEventListener("focus",this.startAnchorListener),e.remove()),A&&(A.removeEventListener("focus",this.endAnchorListener),A.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return this._hasAttached?!0:(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(e){return new Promise(A=>{this._executeOnStable(()=>A(this.focusInitialElement(e)))})}focusFirstTabbableElementWhenReady(e){return new Promise(A=>{this._executeOnStable(()=>A(this.focusFirstTabbableElement(e)))})}focusLastTabbableElementWhenReady(e){return new Promise(A=>{this._executeOnStable(()=>A(this.focusLastTabbableElement(e)))})}_getRegionBoundary(e){let A=this._element.querySelectorAll(`[cdk-focus-region-${e}], [cdkFocusRegion${e}], [cdk-focus-${e}]`);return e=="start"?A.length?A[0]:this._getFirstTabbableElement(this._element):A.length?A[A.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(e){let A=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(A){if(!this._checker.isFocusable(A)){let i=this._getFirstTabbableElement(A);return i?.focus(e),!!i}return A.focus(e),!0}return this.focusFirstTabbableElement(e)}focusFirstTabbableElement(e){let A=this._getRegionBoundary("start");return A&&A.focus(e),!!A}focusLastTabbableElement(e){let A=this._getRegionBoundary("end");return A&&A.focus(e),!!A}hasAttached(){return this._hasAttached}_getFirstTabbableElement(e){if(this._checker.isFocusable(e)&&this._checker.isTabbable(e))return e;let A=e.children;for(let i=0;i=0;i--){let n=A[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(A[i]):null;if(n)return n}return null}_createAnchor(){let e=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,e),e.classList.add("cdk-visually-hidden"),e.classList.add("cdk-focus-trap-anchor"),e.setAttribute("aria-hidden","true"),e}_toggleAnchorTabIndex(e,A){e?A.setAttribute("tabindex","0"):A.removeAttribute("tabindex")}toggleAnchors(e){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}_executeOnStable(e){this._injector?To(e,{injector:this._injector}):setTimeout(e)}},n8=(()=>{class t{_checker=f(Mu);_ngZone=f(Qe);_document=f(at);_injector=f(Rt);constructor(){f(Rn).load(bu)}create(A,i=!1){return new dk(A,this._checker,this._ngZone,this._document,i,this._injector)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function ku(t){return t.buttons===0||t.detail===0}function Su(t){let e=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!!e&&e.identifier===-1&&(e.radiusX==null||e.radiusX===1)&&(e.radiusY==null||e.radiusY===1)}var luA=new dA("cdk-input-modality-detector-options"),guA={ignoreKeys:[18,17,224,91,16]},OO=650,yB=bc({passive:!0,capture:!0}),IuA=(()=>{class t{_platform=f(Ii);modalityDetected;modalityChanged;get mostRecentModality(){return this._modality.value}_mostRecentTarget=null;_modality=new Mi(null);_options;_lastTouchMs=0;_onKeydown=A=>{this._options?.ignoreKeys?.some(i=>i===A.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=oc(A))};_onMousedown=A=>{Date.now()-this._lastTouchMs{if(Su(A)){this._modality.next("keyboard");return}this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=oc(A)};constructor(){let A=f(Qe),i=f(at),n=f(luA,{optional:!0});this._options=rA(rA({},guA),n),this.modalityDetected=this._modality.pipe(CI(1)),this.modalityChanged=this.modalityDetected.pipe(tl()),this._platform.isBrowser&&A.runOutsideAngular(()=>{i.addEventListener("keydown",this._onKeydown,yB),i.addEventListener("mousedown",this._onMousedown,yB),i.addEventListener("touchstart",this._onTouchstart,yB)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,yB),document.removeEventListener("mousedown",this._onMousedown,yB),document.removeEventListener("touchstart",this._onTouchstart,yB))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),CuA=new dA("liveAnnouncerElement",{providedIn:"root",factory:duA});function duA(){return null}var BuA=new dA("LIVE_ANNOUNCER_DEFAULT_OPTIONS"),EuA=0,o8=(()=>{class t{_ngZone=f(Qe);_defaultOptions=f(BuA,{optional:!0});_liveElement;_document=f(at);_previousTimeout;_currentPromise;_currentResolve;constructor(){let A=f(CuA,{optional:!0});this._liveElement=A||this._createLiveElement()}announce(A,...i){let n=this._defaultOptions,o,r;return i.length===1&&typeof i[0]=="number"?r=i[0]:[o,r]=i,this.clear(),clearTimeout(this._previousTimeout),o||(o=n&&n.politeness?n.politeness:"polite"),r==null&&n&&(r=n.duration),this._liveElement.setAttribute("aria-live",o),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(s=>this._currentResolve=s)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=A,typeof r=="number"&&(this._previousTimeout=setTimeout(()=>this.clear(),r)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){let A="cdk-live-announcer-element",i=this._document.getElementsByClassName(A),n=this._document.createElement("div");for(let o=0;o .cdk-overlay-container [aria-modal="true"]');for(let n=0;n{class t{_ngZone=f(Qe);_platform=f(Ii);_inputModalityDetector=f(IuA);_origin=null;_lastFocusOrigin;_windowFocused=!1;_windowFocusTimeoutId;_originTimeoutId;_originFromTouchInteraction=!1;_elementInfo=new Map;_monitoredElementCount=0;_rootNodeFocusListenerCount=new Map;_detectionMode;_windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)};_document=f(at,{optional:!0});_stopInputModalityDetector=new OA;constructor(){let A=f(QuA,{optional:!0});this._detectionMode=A?.detectionMode||$6.IMMEDIATE}_rootNodeFocusAndBlurListener=A=>{let i=oc(A);for(let n=i;n;n=n.parentElement)A.type==="focus"?this._onFocus(A,n):this._onBlur(A,n)};monitor(A,i=!1){let n=ua(A);if(!this._platform.isBrowser||n.nodeType!==1)return Me();let o=RO(n)||this._getDocument(),r=this._elementInfo.get(n);if(r)return i&&(r.checkChildren=!0),r.subject;let s={checkChildren:i,subject:new OA,rootNode:o};return this._elementInfo.set(n,s),this._registerGlobalListeners(s),s.subject}stopMonitoring(A){let i=ua(A),n=this._elementInfo.get(i);n&&(n.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(n))}focusVia(A,i,n){let o=ua(A),r=this._getDocument().activeElement;o===r?this._getClosestElementsInfo(o).forEach(([s,a])=>this._originChanged(s,i,a)):(this._setOrigin(i),typeof o.focus=="function"&&o.focus(n))}ngOnDestroy(){this._elementInfo.forEach((A,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(A){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(A)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:A&&this._isLastInteractionFromInputLabel(A)?"mouse":"program"}_shouldBeAttributedToTouch(A){return this._detectionMode===$6.EVENTUAL||!!A?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(A,i){A.classList.toggle("cdk-focused",!!i),A.classList.toggle("cdk-touch-focused",i==="touch"),A.classList.toggle("cdk-keyboard-focused",i==="keyboard"),A.classList.toggle("cdk-mouse-focused",i==="mouse"),A.classList.toggle("cdk-program-focused",i==="program")}_setOrigin(A,i=!1){this._ngZone.runOutsideAngular(()=>{if(this._origin=A,this._originFromTouchInteraction=A==="touch"&&i,this._detectionMode===$6.IMMEDIATE){clearTimeout(this._originTimeoutId);let n=this._originFromTouchInteraction?OO:1;this._originTimeoutId=setTimeout(()=>this._origin=null,n)}})}_onFocus(A,i){let n=this._elementInfo.get(i),o=oc(A);!n||!n.checkChildren&&i!==o||this._originChanged(i,this._getFocusOrigin(o),n)}_onBlur(A,i){let n=this._elementInfo.get(i);!n||n.checkChildren&&A.relatedTarget instanceof Node&&i.contains(A.relatedTarget)||(this._setClasses(i),this._emitOrigin(n,null))}_emitOrigin(A,i){A.subject.observers.length&&this._ngZone.run(()=>A.subject.next(i))}_registerGlobalListeners(A){if(!this._platform.isBrowser)return;let i=A.rootNode,n=this._rootNodeFocusListenerCount.get(i)||0;n||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,X6),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,X6)}),this._rootNodeFocusListenerCount.set(i,n+1),++this._monitoredElementCount===1&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(St(this._stopInputModalityDetector)).subscribe(o=>{this._setOrigin(o,!0)}))}_removeGlobalListeners(A){let i=A.rootNode;if(this._rootNodeFocusListenerCount.has(i)){let n=this._rootNodeFocusListenerCount.get(i);n>1?this._rootNodeFocusListenerCount.set(i,n-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,X6),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,X6),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(A,i,n){this._setClasses(A,i),this._emitOrigin(n,i),this._lastFocusOrigin=i}_getClosestElementsInfo(A){let i=[];return this._elementInfo.forEach((n,o)=>{(o===A||n.checkChildren&&o.contains(A))&&i.push([o,n])}),i}_isLastInteractionFromInputLabel(A){let{_mostRecentTarget:i,mostRecentModality:n}=this._inputModalityDetector;if(n!=="mouse"||!i||i===A||A.nodeName!=="INPUT"&&A.nodeName!=="TEXTAREA"||A.disabled)return!1;let o=A.labels;if(o){for(let r=0;r{class t{_elementRef=f(ee);_focusMonitor=f(dr);_monitorSubscription;_focusOrigin=null;cdkFocusChange=new WA;constructor(){}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){let A=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(A,A.nodeType===1&&A.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return t})(),jI=function(t){return t[t.NONE=0]="NONE",t[t.BLACK_ON_WHITE=1]="BLACK_ON_WHITE",t[t.WHITE_ON_BLACK=2]="WHITE_ON_BLACK",t}(jI||{}),KO="cdk-high-contrast-black-on-white",YO="cdk-high-contrast-white-on-black",lk="cdk-high-contrast-active",Qk=(()=>{class t{_platform=f(Ii);_hasCheckedHighContrastMode;_document=f(at);_breakpointSubscription;constructor(){this._breakpointSubscription=f(Z6).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return jI.NONE;let A=this._document.createElement("div");A.style.backgroundColor="rgb(1,2,3)",A.style.position="absolute",this._document.body.appendChild(A);let i=this._document.defaultView||window,n=i&&i.getComputedStyle?i.getComputedStyle(A):null,o=(n&&n.backgroundColor||"").replace(/ /g,"");switch(A.remove(),o){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return jI.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return jI.BLACK_ON_WHITE}return jI.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){let A=this._document.body.classList;A.remove(lk,KO,YO),this._hasCheckedHighContrastMode=!0;let i=this.getHighContrastMode();i===jI.BLACK_ON_WHITE?A.add(lk,KO):i===jI.WHITE_ON_BLACK&&A.add(lk,YO)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),r8=(()=>{class t{constructor(){f(Qk)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[DB]})}return t})(),gk={},sn=(()=>{class t{_appId=f(Vd);getId(A){return this._appId!=="ng"&&(A+=this._appId),gk.hasOwnProperty(A)||(gk[A]=0),`${A}${gk[A]++}`}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var huA=new dA("cdk-dir-doc",{providedIn:"root",factory:uuA});function uuA(){return f(at)}var fuA=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;function muA(t){let e=t?.toLowerCase()||"";return e==="auto"&&typeof navigator<"u"&&navigator?.language?fuA.test(navigator.language)?"rtl":"ltr":e==="rtl"?"rtl":"ltr"}var mo=(()=>{class t{value="ltr";change=new WA;constructor(){let A=f(huA,{optional:!0});if(A){let i=A.body?A.body.dir:null,n=A.documentElement?A.documentElement.dir:null;this.value=muA(i||n||"ltr")}}ngOnDestroy(){this.change.complete()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var _2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({})}return t})();var puA=["text"],wuA=[[["mat-icon"]],"*"],DuA=["mat-icon","*"];function yuA(t,e){if(t&1&&JA(0,"mat-pseudo-checkbox",1),t&2){let A=O();yA("disabled",A.disabled)("state",A.selected?"checked":"unchecked")}}function vuA(t,e){if(t&1&&JA(0,"mat-pseudo-checkbox",3),t&2){let A=O();yA("disabled",A.disabled)}}function buA(t,e){if(t&1&&(S(0,"span",4),AA(1),F()),t&2){let A=O();G(),Et("(",A.group.label,")")}}var MuA=["mat-internal-form-field",""],kuA=["*"];var it=(()=>{class t{constructor(){f(Qk)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[_2,_2]})}return t})(),$I=class{_defaultMatcher;ngControl;_parentFormGroup;_parentForm;_stateChanges;errorState=!1;matcher;constructor(e,A,i,n,o){this._defaultMatcher=e,this.ngControl=A,this._parentFormGroup=i,this._parentForm=n,this._stateChanges=o}updateErrorState(){let e=this.errorState,A=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,n=this.ngControl?this.ngControl.control:null,o=i?.isErrorState(n,A)??!1;o!==e&&(this.errorState=o,this._stateChanges.next())}};var bB=(()=>{class t{isErrorState(A,i){return!!(A&&A.invalid&&(A.touched||i&&i.submitted))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),lr=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["structural-styles"]],decls:0,vars:0,template:function(i,n){},styles:['.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}'],encapsulation:2,changeDetection:0})}return t})();var Os=function(t){return t[t.FADING_IN=0]="FADING_IN",t[t.VISIBLE=1]="VISIBLE",t[t.FADING_OUT=2]="FADING_OUT",t[t.HIDDEN=3]="HIDDEN",t}(Os||{}),fk=class{_renderer;element;config;_animationForciblyDisabledThroughCss;state=Os.HIDDEN;constructor(e,A,i,n=!1){this._renderer=e,this.element=A,this.config=i,this._animationForciblyDisabledThroughCss=n}fadeOut(){this._renderer.fadeOutRipple(this)}},jO=bc({passive:!0,capture:!0}),mk=class{_events=new Map;addHandler(e,A,i,n){let o=this._events.get(A);if(o){let r=o.get(i);r?r.add(n):o.set(i,new Set([n]))}else this._events.set(A,new Map([[i,new Set([n])]])),e.runOutsideAngular(()=>{document.addEventListener(A,this._delegateEventHandler,jO)})}removeHandler(e,A,i){let n=this._events.get(e);if(!n)return;let o=n.get(A);o&&(o.delete(i),o.size===0&&n.delete(A),n.size===0&&(this._events.delete(e),document.removeEventListener(e,this._delegateEventHandler,jO)))}_delegateEventHandler=e=>{let A=oc(e);A&&this._events.get(e.type)?.forEach((i,n)=>{(n===A||n.contains(A))&&i.forEach(o=>o.handleEvent(e))})}},a8={enterDuration:225,exitDuration:150},SuA=800,qO=bc({passive:!0,capture:!0}),VO=["mousedown","touchstart"],ZO=["mouseup","mouseleave","touchend","touchcancel"],RuA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["ng-component"]],hostAttrs:["mat-ripple-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:[".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}"],encapsulation:2,changeDetection:0})}return t})(),vB=class t{_target;_ngZone;_platform;_containerElement;_triggerElement;_isPointerDown=!1;_activeRipples=new Map;_mostRecentTransientRipple;_lastTouchStartEvent;_pointerUpEventsRegistered=!1;_containerRect;static _eventManager=new mk;constructor(e,A,i,n,o){this._target=e,this._ngZone=A,this._platform=n,n.isBrowser&&(this._containerElement=ua(i)),o&&o.get(Rn).load(RuA)}fadeInRipple(e,A,i={}){let n=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),o=rA(rA({},a8),i.animation);i.centered&&(e=n.left+n.width/2,A=n.top+n.height/2);let r=i.radius||xuA(e,A,n),s=e-n.left,a=A-n.top,c=o.enterDuration,l=document.createElement("div");l.classList.add("mat-ripple-element"),l.style.left=`${s-r}px`,l.style.top=`${a-r}px`,l.style.height=`${r*2}px`,l.style.width=`${r*2}px`,i.color!=null&&(l.style.backgroundColor=i.color),l.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(l);let I=window.getComputedStyle(l),C=I.transitionProperty,d=I.transitionDuration,B=C==="none"||d==="0s"||d==="0s, 0s"||n.width===0&&n.height===0,E=new fk(this,l,i,B);l.style.transform="scale3d(1, 1, 1)",E.state=Os.FADING_IN,i.persistent||(this._mostRecentTransientRipple=E);let h=null;return!B&&(c||o.exitDuration)&&this._ngZone.runOutsideAngular(()=>{let u=()=>{h&&(h.fallbackTimer=null),clearTimeout(L),this._finishRippleTransition(E)},D=()=>this._destroyRipple(E),L=setTimeout(D,c+100);l.addEventListener("transitionend",u),l.addEventListener("transitioncancel",D),h={onTransitionEnd:u,onTransitionCancel:D,fallbackTimer:L}}),this._activeRipples.set(E,h),(B||!c)&&this._finishRippleTransition(E),E}fadeOutRipple(e){if(e.state===Os.FADING_OUT||e.state===Os.HIDDEN)return;let A=e.element,i=rA(rA({},a8),e.config.animation);A.style.transitionDuration=`${i.exitDuration}ms`,A.style.opacity="0",e.state=Os.FADING_OUT,(e._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(e)}fadeOutAll(){this._getActiveRipples().forEach(e=>e.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(e=>{e.config.persistent||e.fadeOut()})}setupTriggerEvents(e){let A=ua(e);!this._platform.isBrowser||!A||A===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=A,VO.forEach(i=>{t._eventManager.addHandler(this._ngZone,i,A,this)}))}handleEvent(e){e.type==="mousedown"?this._onMousedown(e):e.type==="touchstart"?this._onTouchStart(e):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{ZO.forEach(A=>{this._triggerElement.addEventListener(A,this,qO)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(e){e.state===Os.FADING_IN?this._startFadeOutTransition(e):e.state===Os.FADING_OUT&&this._destroyRipple(e)}_startFadeOutTransition(e){let A=e===this._mostRecentTransientRipple,{persistent:i}=e.config;e.state=Os.VISIBLE,!i&&(!A||!this._isPointerDown)&&e.fadeOut()}_destroyRipple(e){let A=this._activeRipples.get(e)??null;this._activeRipples.delete(e),this._activeRipples.size||(this._containerRect=null),e===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),e.state=Os.HIDDEN,A!==null&&(e.element.removeEventListener("transitionend",A.onTransitionEnd),e.element.removeEventListener("transitioncancel",A.onTransitionCancel),A.fallbackTimer!==null&&clearTimeout(A.fallbackTimer)),e.element.remove()}_onMousedown(e){let A=ku(e),i=this._lastTouchStartEvent&&Date.now(){let A=e.state===Os.VISIBLE||e.config.terminateOnPointerUp&&e.state===Os.FADING_IN;!e.config.persistent&&A&&e.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){let e=this._triggerElement;e&&(VO.forEach(A=>t._eventManager.removeHandler(A,e,this)),this._pointerUpEventsRegistered&&(ZO.forEach(A=>e.removeEventListener(A,this,qO)),this._pointerUpEventsRegistered=!1))}};function xuA(t,e,A){let i=Math.max(Math.abs(t-A.left),Math.abs(t-A.right)),n=Math.max(Math.abs(e-A.top),Math.abs(e-A.bottom));return Math.sqrt(i*i+n*n)}var G2=new dA("mat-ripple-global-options"),rs=(()=>{class t{_elementRef=f(ee);_animationMode=f(Si,{optional:!0});color;unbounded;centered;radius=0;animation;get disabled(){return this._disabled}set disabled(A){A&&this.fadeOutAllNonPersistent(),this._disabled=A,this._setupTriggerEventsIfEnabled()}_disabled=!1;get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(A){this._trigger=A,this._setupTriggerEventsIfEnabled()}_trigger;_rippleRenderer;_globalOptions;_isInitialized=!1;constructor(){let A=f(Qe),i=f(Ii),n=f(G2,{optional:!0}),o=f(Rt);this._globalOptions=n||{},this._rippleRenderer=new vB(this,A,this._elementRef,i,o)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:rA(rA(rA({},this._globalOptions.animation),this._animationMode==="NoopAnimations"?{enterDuration:0,exitDuration:0}:{}),this.animation),terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(A,i=0,n){return typeof A=="number"?this._rippleRenderer.fadeInRipple(A,i,rA(rA({},this.rippleConfig),n)):this._rippleRenderer.fadeInRipple(0,0,rA(rA({},this.rippleConfig),A))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,n){i&2&&ue("mat-ripple-unbounded",n.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return t})(),Ps=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[it,it]})}return t})(),wk=(()=>{class t{_animationMode=f(Si,{optional:!0});state="unchecked";disabled=!1;appearance="full";constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,n){i&2&&ue("mat-pseudo-checkbox-indeterminate",n.state==="indeterminate")("mat-pseudo-checkbox-checked",n.state==="checked")("mat-pseudo-checkbox-disabled",n.disabled)("mat-pseudo-checkbox-minimal",n.appearance==="minimal")("mat-pseudo-checkbox-full",n.appearance==="full")("_mat-animation-noopable",n._animationMode==="NoopAnimations")},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(i,n){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-minimal-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-primary))}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full{border-color:var(--mat-full-pseudo-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-full-pseudo-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-full-pseudo-checkbox-selected-icon-color, var(--mat-sys-primary));border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-full-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-full-pseudo-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-full-pseudo-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}return t})(),Dk=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[it]})}return t})(),yk=new dA("MAT_OPTION_PARENT_COMPONENT"),vk=new dA("MatOptgroup");var pk=class{source;isUserInput;constructor(e,A=!1){this.source=e,this.isUserInput=A}},U2=(()=>{class t{_element=f(ee);_changeDetectorRef=f(It);_parent=f(yk,{optional:!0});group=f(vk,{optional:!0});_signalDisableRipple=!1;_selected=!1;_active=!1;_disabled=!1;_mostRecentViewValue="";get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}value;id=f(sn).getId("mat-option-");get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(A){this._disabled=A}get disableRipple(){return this._signalDisableRipple?this._parent.disableRipple():!!this._parent?.disableRipple}get hideSingleSelectionIndicator(){return!!(this._parent&&this._parent.hideSingleSelectionIndicator)}onSelectionChange=new WA;_text;_stateChanges=new OA;constructor(){let A=f(Rn);A.load(lr),A.load(bu),this._signalDisableRipple=!!this._parent&&p2(this._parent.disableRipple)}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(A=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),A&&this._emitSelectionChangeEvent())}deselect(A=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),A&&this._emitSelectionChangeEvent())}focus(A,i){let n=this._getHostElement();typeof n.focus=="function"&&n.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(A){(A.keyCode===13||A.keyCode===32)&&!ir(A)&&(this._selectViaInteraction(),A.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=this.multiple?!this._selected:!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){let A=this.viewValue;A!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=A)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(A=!1){this.onSelectionChange.emit(new pk(this,A))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-option"]],viewQuery:function(i,n){if(i&1&&Te(puA,7),i&2){let o;XA(o=$A())&&(n._text=o.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,n){i&1&&hA("click",function(){return n._selectViaInteraction()})("keydown",function(r){return n._handleKeydown(r)}),i&2&&(Hs("id",n.id),Ne("aria-selected",n.selected)("aria-disabled",n.disabled.toString()),ue("mdc-list-item--selected",n.selected)("mat-mdc-option-multiple",n.multiple)("mat-mdc-option-active",n.active)("mdc-list-item--disabled",n.disabled))},inputs:{value:"value",id:"id",disabled:[2,"disabled","disabled",ie]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],ngContentSelectors:DuA,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,n){i&1&&(jt(wuA),_A(0,yuA,1,2,"mat-pseudo-checkbox",1),Fe(1),S(2,"span",2,0),Fe(4,1),F(),_A(5,vuA,1,1,"mat-pseudo-checkbox",3)(6,buA,2,1,"span",4),JA(7,"div",5)),i&2&&(GA(n.multiple?0:-1),G(5),GA(!n.multiple&&n.selected&&!n.hideSingleSelectionIndicator?5:-1),G(),GA(n.group&&n.group._inert?6:-1),G(),yA("matRippleTrigger",n._getHostElement())("matRippleDisabled",n.disabled||n.disableRipple))},dependencies:[wk,rs],styles:['.mat-mdc-option{-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;min-height:48px;padding:0 16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-option-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-option-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-option-label-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-option-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-option-label-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));outline:0}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color, var(--mat-sys-secondary-container))}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}@media(forced-colors: active){.mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{right:auto;left:16px}}.mat-mdc-option-multiple{--mdc-list-list-item-selected-container-color:var(--mdc-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();function AP(t,e,A){if(A.length){let i=e.toArray(),n=A.toArray(),o=0;for(let r=0;rA+i?Math.max(0,t-i+e):A}var bk=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[Ps,it,Dk]})}return t})(),WO={capture:!0},XO=["focus","mousedown","mouseenter","touchstart"],hk="mat-ripple-loader-uninitialized",uk="mat-ripple-loader-class-name",$O="mat-ripple-loader-centered",s8="mat-ripple-loader-disabled",Mk=(()=>{class t{_document=f(at,{optional:!0});_animationMode=f(Si,{optional:!0});_globalRippleOptions=f(G2,{optional:!0});_platform=f(Ii);_ngZone=f(Qe);_injector=f(Rt);_hosts=new Map;constructor(){this._ngZone.runOutsideAngular(()=>{for(let A of XO)this._document?.addEventListener(A,this._onInteraction,WO)})}ngOnDestroy(){let A=this._hosts.keys();for(let i of A)this.destroyRipple(i);for(let i of XO)this._document?.removeEventListener(i,this._onInteraction,WO)}configureRipple(A,i){A.setAttribute(hk,this._globalRippleOptions?.namespace??""),(i.className||!A.hasAttribute(uk))&&A.setAttribute(uk,i.className||""),i.centered&&A.setAttribute($O,""),i.disabled&&A.setAttribute(s8,"")}setDisabled(A,i){let n=this._hosts.get(A);n?(n.target.rippleDisabled=i,!i&&!n.hasSetUpEvents&&(n.hasSetUpEvents=!0,n.renderer.setupTriggerEvents(A))):i?A.setAttribute(s8,""):A.removeAttribute(s8)}_onInteraction=A=>{let i=oc(A);if(i instanceof HTMLElement){let n=i.closest(`[${hk}="${this._globalRippleOptions?.namespace??""}"]`);n&&this._createRipple(n)}};_createRipple(A){if(!this._document||this._hosts.has(A))return;A.querySelector(".mat-ripple")?.remove();let i=this._document.createElement("span");i.classList.add("mat-ripple",A.getAttribute(uk)),A.append(i);let n=this._animationMode==="NoopAnimations",o=this._globalRippleOptions,r=n?0:o?.animation?.enterDuration??a8.enterDuration,s=n?0:o?.animation?.exitDuration??a8.exitDuration,a={rippleDisabled:n||o?.disabled||A.hasAttribute(s8),rippleConfig:{centered:A.hasAttribute($O),terminateOnPointerUp:o?.terminateOnPointerUp,animation:{enterDuration:r,exitDuration:s}}},c=new vB(a,this._ngZone,i,this._platform,this._injector),l=!a.rippleDisabled;l&&c.setupTriggerEvents(A),this._hosts.set(A,{target:a,renderer:c,hasSetUpEvents:l}),A.removeAttribute(hk)}destroyRipple(A){let i=this._hosts.get(A);i&&(i.renderer._removeTriggerEvents(),this._hosts.delete(A))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),MB=(()=>{class t{labelPosition;static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,n){i&2&&ue("mdc-form-field--align-end",n.labelPosition==="before")},inputs:{labelPosition:"labelPosition"},attrs:MuA,ngContentSelectors:kuA,decls:1,vars:0,template:function(i,n){i&1&&(jt(),Fe(0))},styles:[".mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0}"],encapsulation:2,changeDetection:0})}return t})();var LuA=["mat-button",""],kk=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],Sk=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"];var FuA="@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}",NuA=["mat-fab",""],_uA=["mat-mini-fab",""],GuA='.mat-mdc-fab-base{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus>.mat-focus-indicator::before{content:""}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-sys-corner-large));color:var(--mat-fab-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display, block)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-sys-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-small-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-mini-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;height:var(--mdc-extended-fab-container-height, 56px);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-sys-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-sys-label-large-tracking));box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}',UuA=["mat-icon-button",""],KuA=["*"];var YuA=new dA("MAT_BUTTON_CONFIG");var JuA=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],l8=(()=>{class t{_elementRef=f(ee);_ngZone=f(Qe);_animationMode=f(Si,{optional:!0});_focusMonitor=f(dr);_rippleLoader=f(Mk);_isFab=!1;color;get disableRipple(){return this._disableRipple}set disableRipple(A){this._disableRipple=A,this._updateRippleDisabled()}_disableRipple=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._updateRippleDisabled()}_disabled=!1;ariaDisabled;disabledInteractive;constructor(){f(Rn).load(lr);let A=f(YuA,{optional:!0}),i=this._elementRef.nativeElement,n=i.classList;this.disabledInteractive=A?.disabledInteractive??!1,this.color=A?.color??null,this._rippleLoader?.configureRipple(i,{className:"mat-mdc-button-ripple"});for(let{attribute:o,mdcClasses:r}of JuA)i.hasAttribute(o)&&n.add(...r)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(A="program",i){A?this._focusMonitor.focusVia(this._elementRef.nativeElement,A,i):this._elementRef.nativeElement.focus(i)}_getAriaDisabled(){return this.ariaDisabled!=null?this.ariaDisabled:this.disabled&&this.disabledInteractive?!0:null}_getDisabledAttribute(){return this.disabledInteractive||!this.disabled?null:!0}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",ie],disabled:[2,"disabled","disabled",ie],ariaDisabled:[2,"aria-disabled","ariaDisabled",ie],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ie]}})}return t})();var Dr=(()=>{class t extends l8{static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275cmp=zA({type:t,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(i,n){i&2&&(Ne("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),fo(n.color?"mat-"+n.color:""),ue("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[lt],attrs:LuA,ngContentSelectors:Sk,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&(jt(kk),JA(0,"span",0),Fe(1),S(2,"span",1),Fe(3,1),F(),Fe(4,2),JA(5,"span",2)(6,"span",3)),i&2&&ue("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:['.mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 12px);height:var(--mdc-text-button-container-height, 40px);font-family:var(--mdc-text-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-sys-label-large-weight))}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-sys-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 16px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display, block)}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-filled-button-container-height, 40px);font-family:var(--mdc-filled-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-filled-button-horizontal-padding, 24px)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color, var(--mat-sys-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-unelevated-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display, block)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-sys-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-sys-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-filled-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-sys-level1));height:var(--mdc-protected-button-container-height, 40px);font-family:var(--mdc-protected-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-protected-button-horizontal-padding, 24px)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-raised-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-raised-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display, block)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-sys-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-sys-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-sys-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-protected-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow, var(--mat-sys-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-outlined-button-container-height, 40px);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-sys-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-sys-corner-full));border-width:var(--mdc-outlined-button-outline-width, 1px);padding:0 var(--mat-outlined-button-horizontal-padding, 24px)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-outlined-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-outlined-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display, block)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-sys-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-sys-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:var(--mdc-outlined-button-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button .mdc-button__ripple{border-width:var(--mdc-outlined-button-outline-width, 1px);border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-focus-indicator,.mat-mdc-unelevated-button .mat-focus-indicator,.mat-mdc-raised-button .mat-focus-indicator,.mat-mdc-outlined-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus>.mat-focus-indicator::before,.mat-mdc-unelevated-button:focus>.mat-focus-indicator::before,.mat-mdc-raised-button:focus>.mat-focus-indicator::before,.mat-mdc-outlined-button:focus>.mat-focus-indicator::before{content:""}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-focus-indicator::before,.mat-mdc-raised-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}',"@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}"],encapsulation:2,changeDetection:0})}return t})();var iP=new dA("mat-mdc-fab-default-options",{providedIn:"root",factory:nP});function nP(){return{color:"accent"}}var c8=nP(),oP=(()=>{class t extends l8{_options=f(iP,{optional:!0});_isFab=!0;extended;constructor(){super(),this._options=this._options||c8,this.color=this._options.color||c8.color}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["button","mat-fab",""]],hostVars:18,hostBindings:function(i,n){i&2&&(Ne("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),fo(n.color?"mat-"+n.color:""),ue("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0)("mdc-fab--extended",n.extended)("mat-mdc-extended-fab",n.extended))},inputs:{extended:[2,"extended","extended",ie]},exportAs:["matButton"],features:[lt],attrs:NuA,ngContentSelectors:Sk,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&(jt(kk),JA(0,"span",0),Fe(1),S(2,"span",1),Fe(3,1),F(),Fe(4,2),JA(5,"span",2)(6,"span",3)),i&2&&ue("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:['.mat-mdc-fab-base{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus>.mat-focus-indicator::before{content:""}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-sys-corner-large));color:var(--mat-fab-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display, block)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-sys-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-small-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-mini-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;height:var(--mdc-extended-fab-container-height, 56px);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-sys-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-sys-label-large-tracking));box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}'],encapsulation:2,changeDetection:0})}return t})(),rP=(()=>{class t extends l8{_options=f(iP,{optional:!0});_isFab=!0;constructor(){super(),this._options=this._options||c8,this.color=this._options.color||c8.color}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["button","mat-mini-fab",""]],hostVars:14,hostBindings:function(i,n){i&2&&(Ne("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),fo(n.color?"mat-"+n.color:""),ue("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[lt],attrs:_uA,ngContentSelectors:Sk,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&(jt(kk),JA(0,"span",0),Fe(1),S(2,"span",1),Fe(3,1),F(),Fe(4,2),JA(5,"span",2)(6,"span",3)),i&2&&ue("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:[GuA],encapsulation:2,changeDetection:0})}return t})();var kB=(()=>{class t extends l8{constructor(){super(),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["button","mat-icon-button",""]],hostVars:14,hostBindings:function(i,n){i&2&&(Ne("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),fo(n.color?"mat-"+n.color:""),ue("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[lt],attrs:UuA,ngContentSelectors:KuA,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&(jt(),JA(0,"span",0),Fe(1),JA(2,"span",1)(3,"span",2))},styles:['.mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:50%;flex-shrink:0;text-align:center;width:var(--mdc-icon-button-state-layer-size, 40px);height:var(--mdc-icon-button-state-layer-size, 40px);padding:calc(calc(var(--mdc-icon-button-state-layer-size, 40px) - var(--mdc-icon-button-icon-size, 24px)) / 2);font-size:var(--mdc-icon-button-icon-size, 24px);color:var(--mdc-icon-button-icon-color, var(--mat-sys-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus>.mat-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-icon-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-icon-button-touch-target-display, block)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mdc-icon-button-icon-size, 24px);height:var(--mdc-icon-button-icon-size, 24px);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button[hidden]{display:none}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',FuA],encapsulation:2,changeDetection:0})}return t})();var AC=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[it,Ps,it]})}return t})();var g8=class{};function I8(t){return t&&typeof t.connect=="function"&&!(t instanceof l2)}var SB=function(t){return t[t.REPLACED=0]="REPLACED",t[t.INSERTED=1]="INSERTED",t[t.MOVED=2]="MOVED",t[t.REMOVED=3]="REMOVED",t}(SB||{}),Ru=new dA("_ViewRepeater"),RB=class{applyChanges(e,A,i,n,o){e.forEachOperation((r,s,a)=>{let c,l;if(r.previousIndex==null){let I=i(r,s,a);c=A.createEmbeddedView(I.templateRef,I.context,I.index),l=SB.INSERTED}else a==null?(A.remove(s),l=SB.REMOVED):(c=A.get(s),A.move(c,a),l=SB.MOVED);o&&o({context:c?.context,operation:l,record:r})})}detach(){}};var K2=class{_multiple;_emitChanges;compareWith;_selection=new Set;_deselectedToEmit=[];_selectedToEmit=[];_selected;get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}changed=new OA;constructor(e=!1,A,i=!0,n){this._multiple=e,this._emitChanges=i,this.compareWith=n,A&&A.length&&(e?A.forEach(o=>this._markSelected(o)):this._markSelected(A[0]),this._selectedToEmit.length=0)}select(...e){this._verifyValueAssignment(e),e.forEach(i=>this._markSelected(i));let A=this._hasQueuedChanges();return this._emitChangeEvent(),A}deselect(...e){this._verifyValueAssignment(e),e.forEach(i=>this._unmarkSelected(i));let A=this._hasQueuedChanges();return this._emitChangeEvent(),A}setSelection(...e){this._verifyValueAssignment(e);let A=this.selected,i=new Set(e);e.forEach(o=>this._markSelected(o)),A.filter(o=>!i.has(this._getConcreteValue(o,i))).forEach(o=>this._unmarkSelected(o));let n=this._hasQueuedChanges();return this._emitChangeEvent(),n}toggle(e){return this.isSelected(e)?this.deselect(e):this.select(e)}clear(e=!0){this._unmarkAll();let A=this._hasQueuedChanges();return e&&this._emitChangeEvent(),A}isSelected(e){return this._selection.has(this._getConcreteValue(e))}isEmpty(){return this._selection.size===0}hasValue(){return!this.isEmpty()}sort(e){this._multiple&&this.selected&&this._selected.sort(e)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(e){e=this._getConcreteValue(e),this.isSelected(e)||(this._multiple||this._unmarkAll(),this.isSelected(e)||this._selection.add(e),this._emitChanges&&this._selectedToEmit.push(e))}_unmarkSelected(e){e=this._getConcreteValue(e),this.isSelected(e)&&(this._selection.delete(e),this._emitChanges&&this._deselectedToEmit.push(e))}_unmarkAll(){this.isEmpty()||this._selection.forEach(e=>this._unmarkSelected(e))}_verifyValueAssignment(e){e.length>1&&this._multiple}_hasQueuedChanges(){return!!(this._deselectedToEmit.length||this._selectedToEmit.length)}_getConcreteValue(e,A){if(this.compareWith){A=A??this._selection;for(let i of A)if(this.compareWith(e,i))return i;return e}else return e}};var xB=(()=>{class t{_listeners=[];notify(A,i){for(let n of this._listeners)n(A,i)}listen(A){return this._listeners.push(A),()=>{this._listeners=this._listeners.filter(i=>A!==i)}}ngOnDestroy(){this._listeners=[]}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var TuA=20,Y2=(()=>{class t{_ngZone=f(Qe);_platform=f(Ii);_renderer=f(ws).createRenderer(null,null);_cleanupGlobalListener;constructor(){}_scrolled=new OA;_scrolledCount=0;scrollContainers=new Map;register(A){this.scrollContainers.has(A)||this.scrollContainers.set(A,A.elementScrolled().subscribe(()=>this._scrolled.next(A)))}deregister(A){let i=this.scrollContainers.get(A);i&&(i.unsubscribe(),this.scrollContainers.delete(A))}scrolled(A=TuA){return this._platform.isBrowser?new ct(i=>{this._cleanupGlobalListener||(this._cleanupGlobalListener=this._ngZone.runOutsideAngular(()=>this._renderer.listen("document","scroll",()=>this._scrolled.next())));let n=A>0?this._scrolled.pipe(yd(A)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{n.unsubscribe(),this._scrolledCount--,this._scrolledCount||(this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0)}}):Me()}ngOnDestroy(){this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0,this.scrollContainers.forEach((A,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(A,i){let n=this.getAncestorScrollContainers(A);return this.scrolled(i).pipe(kt(o=>!o||n.indexOf(o)>-1))}getAncestorScrollContainers(A){let i=[];return this.scrollContainers.forEach((n,o)=>{this._scrollableContainsElement(o,A)&&i.push(o)}),i}_scrollableContainsElement(A,i){let n=ua(i),o=A.getElementRef().nativeElement;do if(n==o)return!0;while(n=n.parentElement);return!1}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),D0=(()=>{class t{elementRef=f(ee);scrollDispatcher=f(Y2);ngZone=f(Qe);dir=f(mo,{optional:!0});_scrollElement=this.elementRef.nativeElement;_destroyed=new OA;_renderer=f(Wi);_cleanupScroll;_elementScrolled=new OA;constructor(){}ngOnInit(){this._cleanupScroll=this.ngZone.runOutsideAngular(()=>this._renderer.listen(this._scrollElement,"scroll",A=>this._elementScrolled.next(A))),this.scrollDispatcher.register(this)}ngOnDestroy(){this._cleanupScroll?.(),this._elementScrolled.complete(),this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(A){let i=this.elementRef.nativeElement,n=this.dir&&this.dir.value=="rtl";A.left==null&&(A.left=n?A.end:A.start),A.right==null&&(A.right=n?A.start:A.end),A.bottom!=null&&(A.top=i.scrollHeight-i.clientHeight-A.bottom),n&&mB()!=gl.NORMAL?(A.left!=null&&(A.right=i.scrollWidth-i.clientWidth-A.left),mB()==gl.INVERTED?A.left=A.right:mB()==gl.NEGATED&&(A.left=A.right?-A.right:A.right)):A.right!=null&&(A.left=i.scrollWidth-i.clientWidth-A.right),this._applyScrollToOptions(A)}_applyScrollToOptions(A){let i=this.elementRef.nativeElement;j6()?i.scrollTo(A):(A.top!=null&&(i.scrollTop=A.top),A.left!=null&&(i.scrollLeft=A.left))}measureScrollOffset(A){let i="left",n="right",o=this.elementRef.nativeElement;if(A=="top")return o.scrollTop;if(A=="bottom")return o.scrollHeight-o.clientHeight-o.scrollTop;let r=this.dir&&this.dir.value=="rtl";return A=="start"?A=r?n:i:A=="end"&&(A=r?i:n),r&&mB()==gl.INVERTED?A==i?o.scrollWidth-o.clientWidth-o.scrollLeft:o.scrollLeft:r&&mB()==gl.NEGATED?A==i?o.scrollLeft+o.scrollWidth-o.clientWidth:-o.scrollLeft:A==i?o.scrollLeft:o.scrollWidth-o.clientWidth-o.scrollLeft}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return t})(),HuA=20,Mc=(()=>{class t{_platform=f(Ii);_listeners;_viewportSize;_change=new OA;_document=f(at,{optional:!0});constructor(){let A=f(Qe),i=f(ws).createRenderer(null,null);A.runOutsideAngular(()=>{if(this._platform.isBrowser){let n=o=>this._change.next(o);this._listeners=[i.listen("window","resize",n),i.listen("window","orientationchange",n)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(A=>A()),this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();let A={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),A}getViewportRect(){let A=this.getViewportScrollPosition(),{width:i,height:n}=this.getViewportSize();return{top:A.top,left:A.left,bottom:A.top+n,right:A.left+i,height:n,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};let A=this._document,i=this._getWindow(),n=A.documentElement,o=n.getBoundingClientRect(),r=-o.top||A.body.scrollTop||i.scrollY||n.scrollTop||0,s=-o.left||A.body.scrollLeft||i.scrollX||n.scrollLeft||0;return{top:r,left:s}}change(A=HuA){return A>0?this._change.pipe(yd(A)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){let A=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:A.innerWidth,height:A.innerHeight}:{width:0,height:0}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Cl=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({})}return t})(),xu=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[_2,Cl,_2,Cl]})}return t})();var Lu=class{_attachedHost;attach(e){return this._attachedHost=e,e.attach(this)}detach(){let e=this._attachedHost;e!=null&&(this._attachedHost=null,e.detach())}get isAttached(){return this._attachedHost!=null}setAttachedHost(e){this._attachedHost=e}},dl=class extends Lu{component;viewContainerRef;injector;componentFactoryResolver;projectableNodes;constructor(e,A,i,n,o){super(),this.component=e,this.viewContainerRef=A,this.injector=i,this.projectableNodes=o}},ys=class extends Lu{templateRef;viewContainerRef;context;injector;constructor(e,A,i,n){super(),this.templateRef=e,this.viewContainerRef=A,this.context=i,this.injector=n}get origin(){return this.templateRef.elementRef}attach(e,A=this.context){return this.context=A,super.attach(e)}detach(){return this.context=void 0,super.detach()}},Rk=class extends Lu{element;constructor(e){super(),this.element=e instanceof ee?e.nativeElement:e}},J2=class{_attachedPortal;_disposeFn;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(e){if(e instanceof dl)return this._attachedPortal=e,this.attachComponentPortal(e);if(e instanceof ys)return this._attachedPortal=e,this.attachTemplatePortal(e);if(this.attachDomPortal&&e instanceof Rk)return this._attachedPortal=e,this.attachDomPortal(e)}attachDomPortal=null;detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(e){this._disposeFn=e}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}};var Fu=class extends J2{outletElement;_appRef;_defaultInjector;_document;constructor(e,A,i,n,o){super(),this.outletElement=e,this._appRef=i,this._defaultInjector=n,this._document=o}attachComponentPortal(e){let A;if(e.viewContainerRef){let i=e.injector||e.viewContainerRef.injector,n=i.get(I0,null,{optional:!0})||void 0;A=e.viewContainerRef.createComponent(e.component,{index:e.viewContainerRef.length,injector:i,ngModuleRef:n,projectableNodes:e.projectableNodes||void 0}),this.setDisposeFn(()=>A.destroy())}else A=Gp(e.component,{elementInjector:e.injector||this._defaultInjector||Rt.NULL,environmentInjector:this._appRef.injector,projectableNodes:e.projectableNodes||void 0}),this._appRef.attachView(A.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(A.hostView),A.destroy()});return this.outletElement.appendChild(this._getComponentRootNode(A)),this._attachedPortal=e,A}attachTemplatePortal(e){let A=e.viewContainerRef,i=A.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return i.rootNodes.forEach(n=>this.outletElement.appendChild(n)),i.detectChanges(),this.setDisposeFn(()=>{let n=A.indexOf(i);n!==-1&&A.remove(n)}),this._attachedPortal=e,i}attachDomPortal=e=>{let A=e.element;A.parentNode;let i=this._document.createComment("dom-portal");A.parentNode.insertBefore(i,A),this.outletElement.appendChild(A),this._attachedPortal=e,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(A,i)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(e){return e.hostView.rootNodes[0]}};var sP=(()=>{class t extends ys{constructor(){let A=f(wn),i=f(Nn);super(A,i)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[lt]})}return t})();var fa=(()=>{class t extends J2{_moduleRef=f(I0,{optional:!0});_document=f(at);_viewContainerRef=f(Nn);_isInitialized=!1;_attachedRef;constructor(){super()}get portal(){return this._attachedPortal}set portal(A){this.hasAttached()&&!A&&!this._isInitialized||(this.hasAttached()&&super.detach(),A&&super.attach(A),this._attachedPortal=A||null)}attached=new WA;get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(A){A.setAttachedHost(this);let i=A.viewContainerRef!=null?A.viewContainerRef:this._viewContainerRef,n=i.createComponent(A.component,{index:i.length,injector:A.injector||i.injector,projectableNodes:A.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0});return i!==this._viewContainerRef&&this._getRootNode().appendChild(n.hostView.rootNodes[0]),super.setDisposeFn(()=>n.destroy()),this._attachedPortal=A,this._attachedRef=n,this.attached.emit(n),n}attachTemplatePortal(A){A.setAttachedHost(this);let i=this._viewContainerRef.createEmbeddedView(A.templateRef,A.context,{injector:A.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=A,this._attachedRef=i,this.attached.emit(i),i}attachDomPortal=A=>{let i=A.element;i.parentNode;let n=this._document.createComment("dom-portal");A.setAttachedHost(this),i.parentNode.insertBefore(n,i),this._getRootNode().appendChild(i),this._attachedPortal=A,super.setDisposeFn(()=>{n.parentNode&&n.parentNode.replaceChild(i,n)})};_getRootNode(){let A=this._viewContainerRef.element.nativeElement;return A.nodeType===A.ELEMENT_NODE?A:A.parentNode}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[lt]})}return t})();var dg=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({})}return t})();var aP=j6(),xk=class{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(e,A){this._viewportRuler=e,this._document=A}attach(){}enable(){if(this._canBeEnabled()){let e=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=e.style.left||"",this._previousHTMLStyles.top=e.style.top||"",e.style.left=Cr(-this._previousScrollPosition.left),e.style.top=Cr(-this._previousScrollPosition.top),e.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){let e=this._document.documentElement,A=this._document.body,i=e.style,n=A.style,o=i.scrollBehavior||"",r=n.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,e.classList.remove("cdk-global-scrollblock"),aP&&(i.scrollBehavior=n.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),aP&&(i.scrollBehavior=o,n.scrollBehavior=r)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;let A=this._document.body,i=this._viewportRuler.getViewportSize();return A.scrollHeight>i.height||A.scrollWidth>i.width}};var Lk=class{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(e,A,i,n){this._scrollDispatcher=e,this._ngZone=A,this._viewportRuler=i,this._config=n}attach(e){this._overlayRef,this._overlayRef=e}enable(){if(this._scrollSubscription)return;let e=this._scrollDispatcher.scrolled(0).pipe(kt(A=>!A||!this._overlayRef.overlayElement.contains(A.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=e.subscribe(()=>{let A=this._viewportRuler.getViewportScrollPosition().top;Math.abs(A-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=e.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}},C8=class{enable(){}disable(){}attach(){}};function Fk(t,e){return e.some(A=>{let i=t.bottomA.bottom,o=t.rightA.right;return i||n||o||r})}function cP(t,e){return e.some(A=>{let i=t.topA.bottom,o=t.leftA.right;return i||n||o||r})}var Nk=class{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(e,A,i,n){this._scrollDispatcher=e,this._viewportRuler=A,this._ngZone=i,this._config=n}attach(e){this._overlayRef,this._overlayRef=e}enable(){if(!this._scrollSubscription){let e=this._config?this._config.scrollThrottle:0;this._scrollSubscription=this._scrollDispatcher.scrolled(e).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){let A=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:n}=this._viewportRuler.getViewportSize();Fk(A,[{width:i,height:n,bottom:n,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}})}}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}},OuA=(()=>{class t{_scrollDispatcher=f(Y2);_viewportRuler=f(Mc);_ngZone=f(Qe);_document=f(at);constructor(){}noop=()=>new C8;close=A=>new Lk(this._scrollDispatcher,this._ngZone,this._viewportRuler,A);block=()=>new xk(this._viewportRuler,this._document);reposition=A=>new Nk(this._scrollDispatcher,this._viewportRuler,this._ngZone,A);static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Bg=class{positionStrategy;scrollStrategy=new C8;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;constructor(e){if(e){let A=Object.keys(e);for(let i of A)e[i]!==void 0&&(this[i]=e[i])}}};var _k=class{connectionPair;scrollableViewProperties;constructor(e,A){this.connectionPair=e,this.scrollableViewProperties=A}};var BP=(()=>{class t{_attachedOverlays=[];_document=f(at);_isAttached;constructor(){}ngOnDestroy(){this.detach()}add(A){this.remove(A),this._attachedOverlays.push(A)}remove(A){let i=this._attachedOverlays.indexOf(A);i>-1&&this._attachedOverlays.splice(i,1),this._attachedOverlays.length===0&&this.detach()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),PuA=(()=>{class t extends BP{_ngZone=f(Qe);_renderer=f(ws).createRenderer(null,null);_cleanupKeydown;add(A){super.add(A),this._isAttached||(this._ngZone.runOutsideAngular(()=>{this._cleanupKeydown=this._renderer.listen("body","keydown",this._keydownListener)}),this._isAttached=!0)}detach(){this._isAttached&&(this._cleanupKeydown?.(),this._isAttached=!1)}_keydownListener=A=>{let i=this._attachedOverlays;for(let n=i.length-1;n>-1;n--)if(i[n]._keydownEvents.observers.length>0){this._ngZone.run(()=>i[n]._keydownEvents.next(A));break}};static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),juA=(()=>{class t extends BP{_platform=f(Ii);_ngZone=f(Qe,{optional:!0});_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget;add(A){if(super.add(A),!this._isAttached){let i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){let A=this._document.body;A.removeEventListener("pointerdown",this._pointerDownListener,!0),A.removeEventListener("click",this._clickListener,!0),A.removeEventListener("auxclick",this._clickListener,!0),A.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(A.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(A){A.addEventListener("pointerdown",this._pointerDownListener,!0),A.addEventListener("click",this._clickListener,!0),A.addEventListener("auxclick",this._clickListener,!0),A.addEventListener("contextmenu",this._clickListener,!0)}_pointerDownListener=A=>{this._pointerDownEventTarget=oc(A)};_clickListener=A=>{let i=oc(A),n=A.type==="click"&&this._pointerDownEventTarget?this._pointerDownEventTarget:i;this._pointerDownEventTarget=null;let o=this._attachedOverlays.slice();for(let r=o.length-1;r>-1;r--){let s=o[r];if(s._outsidePointerEvents.observers.length<1||!s.hasAttached())continue;if(lP(s.overlayElement,i)||lP(s.overlayElement,n))break;let a=s._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>a.next(A)):a.next(A)}};static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function lP(t,e){let A=typeof ShadowRoot<"u"&&ShadowRoot,i=e;for(;i;){if(i===t)return!0;i=A&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}var EP=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:[".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}"],encapsulation:2,changeDetection:0})}return t})(),d8=(()=>{class t{_platform=f(Ii);_containerElement;_document=f(at);_styleLoader=f(Rn);constructor(){}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let A="cdk-overlay-container";if(this._platform.isBrowser||rk()){let n=this._document.querySelectorAll(`.${A}[platform="server"], .${A}[platform="test"]`);for(let o=0;o{let e=this.element;clearTimeout(this._fallbackTimeout),this._cleanupTransitionEnd?.(),this._cleanupTransitionEnd=this._renderer.listen(e,"transitionend",this.dispose),this._fallbackTimeout=setTimeout(this.dispose,500),e.style.pointerEvents="none",e.classList.remove("cdk-overlay-backdrop-showing")})}dispose=()=>{clearTimeout(this._fallbackTimeout),this._cleanupClick?.(),this._cleanupTransitionEnd?.(),this._cleanupClick=this._cleanupTransitionEnd=this._fallbackTimeout=void 0,this.element.remove()}},LB=class{_portalOutlet;_host;_pane;_config;_ngZone;_keyboardDispatcher;_document;_location;_outsideClickDispatcher;_animationsDisabled;_injector;_renderer;_backdropClick=new OA;_attachments=new OA;_detachments=new OA;_positionStrategy;_scrollStrategy;_locationChanges=Kt.EMPTY;_backdropRef=null;_previousHostParent;_keydownEvents=new OA;_outsidePointerEvents=new OA;_renders=new OA;_afterRenderRef;_afterNextRenderRef;constructor(e,A,i,n,o,r,s,a,c,l=!1,I,C){this._portalOutlet=e,this._host=A,this._pane=i,this._config=n,this._ngZone=o,this._keyboardDispatcher=r,this._document=s,this._location=a,this._outsideClickDispatcher=c,this._animationsDisabled=l,this._injector=I,this._renderer=C,n.scrollStrategy&&(this._scrollStrategy=n.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=n.positionStrategy,this._afterRenderRef=Ba(()=>vh(()=>{this._renders.next()},{injector:this._injector}))}get overlayElement(){return this._pane}get backdropElement(){return this._backdropRef?.element||null}get hostElement(){return this._host}attach(e){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);let A=this._portalOutlet.attach(e);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=To(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),typeof A?.onDestroy=="function"&&A.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),A}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();let e=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),e}dispose(){let e=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._backdropRef?.dispose(),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=this._backdropRef=null,e&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(e){e!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=e,this.hasAttached()&&(e.attach(this),this.updatePosition()))}updateSize(e){this._config=rA(rA({},this._config),e),this._updateElementSize()}setDirection(e){this._config=Ye(rA({},this._config),{direction:e}),this._updateElementDirection()}addPanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!0)}removePanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!1)}getDirection(){let e=this._config.direction;return e?typeof e=="string"?e:e.value:"ltr"}updateScrollStrategy(e){e!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=e,this.hasAttached()&&(e.attach(this),e.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;let e=this._pane.style;e.width=Cr(this._config.width),e.height=Cr(this._config.height),e.minWidth=Cr(this._config.minWidth),e.minHeight=Cr(this._config.minHeight),e.maxWidth=Cr(this._config.maxWidth),e.maxHeight=Cr(this._config.maxHeight)}_togglePointerEvents(e){this._pane.style.pointerEvents=e?"":"none"}_attachBackdrop(){let e="cdk-overlay-backdrop-showing";this._backdropRef?.dispose(),this._backdropRef=new Gk(this._document,this._renderer,this._ngZone,A=>{this._backdropClick.next(A)}),this._animationsDisabled&&this._backdropRef.element.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropRef.element,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropRef.element,this._host),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this._backdropRef?.element.classList.add(e))}):this._backdropRef.element.classList.add(e)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){this._animationsDisabled?(this._backdropRef?.dispose(),this._backdropRef=null):this._backdropRef?.detach()}_toggleClasses(e,A,i){let n=wB(A||[]).filter(o=>!!o);n.length&&(i?e.classList.add(...n):e.classList.remove(...n))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{let e=this._renders.pipe(St(zn(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||this._pane.children.length===0)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),e.unsubscribe())})})}_disposeScrollStrategy(){let e=this._scrollStrategy;e?.disable(),e?.detach?.()}},gP="cdk-overlay-connected-position-bounding-box",quA=/([A-Za-z%]+)$/,Uk=class{_viewportRuler;_document;_platform;_overlayContainer;_overlayRef;_isInitialRender;_lastBoundingBoxSize={width:0,height:0};_isPushed=!1;_canPush=!0;_growAfterOpen=!1;_hasFlexibleDimensions=!0;_positionLocked=!1;_originRect;_overlayRect;_viewportRect;_containerRect;_viewportMargin=0;_scrollables=[];_preferredPositions=[];_origin;_pane;_isDisposed;_boundingBox;_lastPosition;_lastScrollVisibility;_positionChanges=new OA;_resizeSubscription=Kt.EMPTY;_offsetX=0;_offsetY=0;_transformOriginSelector;_appliedPanelClasses=[];_previousPushAmount;positionChanges=this._positionChanges;get positions(){return this._preferredPositions}constructor(e,A,i,n,o){this._viewportRuler=A,this._document=i,this._platform=n,this._overlayContainer=o,this.setOrigin(e)}attach(e){this._overlayRef&&this._overlayRef,this._validatePositions(),e.hostElement.classList.add(gP),this._overlayRef=e,this._boundingBox=e.hostElement,this._pane=e.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition){this.reapplyLastPosition();return}this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let e=this._originRect,A=this._overlayRect,i=this._viewportRect,n=this._containerRect,o=[],r;for(let s of this._preferredPositions){let a=this._getOriginPoint(e,n,s),c=this._getOverlayPoint(a,A,s),l=this._getOverlayFit(c,A,i,s);if(l.isCompletelyWithinViewport){this._isPushed=!1,this._applyPosition(s,a);return}if(this._canFitWithFlexibleDimensions(l,c,i)){o.push({position:s,origin:a,overlayRect:A,boundingBoxRect:this._calculateBoundingBoxRect(a,s)});continue}(!r||r.overlayFit.visibleAreaa&&(a=l,s=c)}this._isPushed=!1,this._applyPosition(s.position,s.origin);return}if(this._canPush){this._isPushed=!0,this._applyPosition(r.position,r.originPoint);return}this._applyPosition(r.position,r.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&eC(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(gP),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;let e=this._lastPosition;if(e){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let A=this._getOriginPoint(this._originRect,this._containerRect,e);this._applyPosition(e,A)}else this.apply()}withScrollableContainers(e){return this._scrollables=e,this}withPositions(e){return this._preferredPositions=e,e.indexOf(this._lastPosition)===-1&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(e){return this._viewportMargin=e,this}withFlexibleDimensions(e=!0){return this._hasFlexibleDimensions=e,this}withGrowAfterOpen(e=!0){return this._growAfterOpen=e,this}withPush(e=!0){return this._canPush=e,this}withLockedPosition(e=!0){return this._positionLocked=e,this}setOrigin(e){return this._origin=e,this}withDefaultOffsetX(e){return this._offsetX=e,this}withDefaultOffsetY(e){return this._offsetY=e,this}withTransformOriginOn(e){return this._transformOriginSelector=e,this}_getOriginPoint(e,A,i){let n;if(i.originX=="center")n=e.left+e.width/2;else{let r=this._isRtl()?e.right:e.left,s=this._isRtl()?e.left:e.right;n=i.originX=="start"?r:s}A.left<0&&(n-=A.left);let o;return i.originY=="center"?o=e.top+e.height/2:o=i.originY=="top"?e.top:e.bottom,A.top<0&&(o-=A.top),{x:n,y:o}}_getOverlayPoint(e,A,i){let n;i.overlayX=="center"?n=-A.width/2:i.overlayX==="start"?n=this._isRtl()?-A.width:0:n=this._isRtl()?0:-A.width;let o;return i.overlayY=="center"?o=-A.height/2:o=i.overlayY=="top"?0:-A.height,{x:e.x+n,y:e.y+o}}_getOverlayFit(e,A,i,n){let o=CP(A),{x:r,y:s}=e,a=this._getOffset(n,"x"),c=this._getOffset(n,"y");a&&(r+=a),c&&(s+=c);let l=0-r,I=r+o.width-i.width,C=0-s,d=s+o.height-i.height,B=this._subtractOverflows(o.width,l,I),E=this._subtractOverflows(o.height,C,d),h=B*E;return{visibleArea:h,isCompletelyWithinViewport:o.width*o.height===h,fitsInViewportVertically:E===o.height,fitsInViewportHorizontally:B==o.width}}_canFitWithFlexibleDimensions(e,A,i){if(this._hasFlexibleDimensions){let n=i.bottom-A.y,o=i.right-A.x,r=IP(this._overlayRef.getConfig().minHeight),s=IP(this._overlayRef.getConfig().minWidth),a=e.fitsInViewportVertically||r!=null&&r<=n,c=e.fitsInViewportHorizontally||s!=null&&s<=o;return a&&c}return!1}_pushOverlayOnScreen(e,A,i){if(this._previousPushAmount&&this._positionLocked)return{x:e.x+this._previousPushAmount.x,y:e.y+this._previousPushAmount.y};let n=CP(A),o=this._viewportRect,r=Math.max(e.x+n.width-o.width,0),s=Math.max(e.y+n.height-o.height,0),a=Math.max(o.top-i.top-e.y,0),c=Math.max(o.left-i.left-e.x,0),l=0,I=0;return n.width<=o.width?l=c||-r:l=e.xB&&!this._isInitialRender&&!this._growAfterOpen&&(r=e.y-B/2)}let a=A.overlayX==="start"&&!n||A.overlayX==="end"&&n,c=A.overlayX==="end"&&!n||A.overlayX==="start"&&n,l,I,C;if(c)C=i.width-e.x+this._viewportMargin*2,l=e.x-this._viewportMargin;else if(a)I=e.x,l=i.right-e.x;else{let d=Math.min(i.right-e.x+i.left,e.x),B=this._lastBoundingBoxSize.width;l=d*2,I=e.x-d,l>B&&!this._isInitialRender&&!this._growAfterOpen&&(I=e.x-B/2)}return{top:r,left:I,bottom:s,right:C,width:l,height:o}}_setBoundingBoxStyles(e,A){let i=this._calculateBoundingBoxRect(e,A);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));let n={};if(this._hasExactPosition())n.top=n.left="0",n.bottom=n.right=n.maxHeight=n.maxWidth="",n.width=n.height="100%";else{let o=this._overlayRef.getConfig().maxHeight,r=this._overlayRef.getConfig().maxWidth;n.height=Cr(i.height),n.top=Cr(i.top),n.bottom=Cr(i.bottom),n.width=Cr(i.width),n.left=Cr(i.left),n.right=Cr(i.right),A.overlayX==="center"?n.alignItems="center":n.alignItems=A.overlayX==="end"?"flex-end":"flex-start",A.overlayY==="center"?n.justifyContent="center":n.justifyContent=A.overlayY==="bottom"?"flex-end":"flex-start",o&&(n.maxHeight=Cr(o)),r&&(n.maxWidth=Cr(r))}this._lastBoundingBoxSize=i,eC(this._boundingBox.style,n)}_resetBoundingBoxStyles(){eC(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){eC(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(e,A){let i={},n=this._hasExactPosition(),o=this._hasFlexibleDimensions,r=this._overlayRef.getConfig();if(n){let l=this._viewportRuler.getViewportScrollPosition();eC(i,this._getExactOverlayY(A,e,l)),eC(i,this._getExactOverlayX(A,e,l))}else i.position="static";let s="",a=this._getOffset(A,"x"),c=this._getOffset(A,"y");a&&(s+=`translateX(${a}px) `),c&&(s+=`translateY(${c}px)`),i.transform=s.trim(),r.maxHeight&&(n?i.maxHeight=Cr(r.maxHeight):o&&(i.maxHeight="")),r.maxWidth&&(n?i.maxWidth=Cr(r.maxWidth):o&&(i.maxWidth="")),eC(this._pane.style,i)}_getExactOverlayY(e,A,i){let n={top:"",bottom:""},o=this._getOverlayPoint(A,this._overlayRect,e);if(this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i)),e.overlayY==="bottom"){let r=this._document.documentElement.clientHeight;n.bottom=`${r-(o.y+this._overlayRect.height)}px`}else n.top=Cr(o.y);return n}_getExactOverlayX(e,A,i){let n={left:"",right:""},o=this._getOverlayPoint(A,this._overlayRect,e);this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i));let r;if(this._isRtl()?r=e.overlayX==="end"?"left":"right":r=e.overlayX==="end"?"right":"left",r==="right"){let s=this._document.documentElement.clientWidth;n.right=`${s-(o.x+this._overlayRect.width)}px`}else n.left=Cr(o.x);return n}_getScrollVisibility(){let e=this._getOriginRect(),A=this._pane.getBoundingClientRect(),i=this._scrollables.map(n=>n.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:cP(e,i),isOriginOutsideView:Fk(e,i),isOverlayClipped:cP(A,i),isOverlayOutsideView:Fk(A,i)}}_subtractOverflows(e,...A){return A.reduce((i,n)=>i-Math.max(n,0),e)}_getNarrowedViewportRect(){let e=this._document.documentElement.clientWidth,A=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+e-this._viewportMargin,bottom:i.top+A-this._viewportMargin,width:e-2*this._viewportMargin,height:A-2*this._viewportMargin}}_isRtl(){return this._overlayRef.getDirection()==="rtl"}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(e,A){return A==="x"?e.offsetX==null?this._offsetX:e.offsetX:e.offsetY==null?this._offsetY:e.offsetY}_validatePositions(){}_addPanelClasses(e){this._pane&&wB(e).forEach(A=>{A!==""&&this._appliedPanelClasses.indexOf(A)===-1&&(this._appliedPanelClasses.push(A),this._pane.classList.add(A))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(e=>{this._pane.classList.remove(e)}),this._appliedPanelClasses=[])}_getOriginRect(){let e=this._origin;if(e instanceof ee)return e.nativeElement.getBoundingClientRect();if(e instanceof Element)return e.getBoundingClientRect();let A=e.width||0,i=e.height||0;return{top:e.y,bottom:e.y+i,left:e.x,right:e.x+A,height:i,width:A}}};function eC(t,e){for(let A in e)e.hasOwnProperty(A)&&(t[A]=e[A]);return t}function IP(t){if(typeof t!="number"&&t!=null){let[e,A]=t.split(quA);return!A||A==="px"?parseFloat(e):null}return t||null}function CP(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}function VuA(t,e){return t===e?!0:t.isOriginClipped===e.isOriginClipped&&t.isOriginOutsideView===e.isOriginOutsideView&&t.isOverlayClipped===e.isOverlayClipped&&t.isOverlayOutsideView===e.isOverlayOutsideView}var dP="cdk-global-overlay-wrapper",Kk=class{_overlayRef;_cssPosition="static";_topOffset="";_bottomOffset="";_alignItems="";_xPosition="";_xOffset="";_width="";_height="";_isDisposed=!1;attach(e){let A=e.getConfig();this._overlayRef=e,this._width&&!A.width&&e.updateSize({width:this._width}),this._height&&!A.height&&e.updateSize({height:this._height}),e.hostElement.classList.add(dP),this._isDisposed=!1}top(e=""){return this._bottomOffset="",this._topOffset=e,this._alignItems="flex-start",this}left(e=""){return this._xOffset=e,this._xPosition="left",this}bottom(e=""){return this._topOffset="",this._bottomOffset=e,this._alignItems="flex-end",this}right(e=""){return this._xOffset=e,this._xPosition="right",this}start(e=""){return this._xOffset=e,this._xPosition="start",this}end(e=""){return this._xOffset=e,this._xPosition="end",this}width(e=""){return this._overlayRef?this._overlayRef.updateSize({width:e}):this._width=e,this}height(e=""){return this._overlayRef?this._overlayRef.updateSize({height:e}):this._height=e,this}centerHorizontally(e=""){return this.left(e),this._xPosition="center",this}centerVertically(e=""){return this.top(e),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;let e=this._overlayRef.overlayElement.style,A=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:n,height:o,maxWidth:r,maxHeight:s}=i,a=(n==="100%"||n==="100vw")&&(!r||r==="100%"||r==="100vw"),c=(o==="100%"||o==="100vh")&&(!s||s==="100%"||s==="100vh"),l=this._xPosition,I=this._xOffset,C=this._overlayRef.getConfig().direction==="rtl",d="",B="",E="";a?E="flex-start":l==="center"?(E="center",C?B=I:d=I):C?l==="left"||l==="end"?(E="flex-end",d=I):(l==="right"||l==="start")&&(E="flex-start",B=I):l==="left"||l==="start"?(E="flex-start",d=I):(l==="right"||l==="end")&&(E="flex-end",B=I),e.position=this._cssPosition,e.marginLeft=a?"0":d,e.marginTop=c?"0":this._topOffset,e.marginBottom=this._bottomOffset,e.marginRight=a?"0":B,A.justifyContent=E,A.alignItems=c?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;let e=this._overlayRef.overlayElement.style,A=this._overlayRef.hostElement,i=A.style;A.classList.remove(dP),i.justifyContent=i.alignItems=e.marginTop=e.marginBottom=e.marginLeft=e.marginRight=e.position="",this._overlayRef=null,this._isDisposed=!0}},ZuA=(()=>{class t{_viewportRuler=f(Mc);_document=f(at);_platform=f(Ii);_overlayContainer=f(d8);constructor(){}global(){return new Kk}flexibleConnectedTo(A){return new Uk(A,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),nr=(()=>{class t{scrollStrategies=f(OuA);_overlayContainer=f(d8);_positionBuilder=f(ZuA);_keyboardDispatcher=f(PuA);_injector=f(Rt);_ngZone=f(Qe);_document=f(at);_directionality=f(mo);_location=f(Dc);_outsideClickDispatcher=f(juA);_animationsModuleType=f(Si,{optional:!0});_idGenerator=f(sn);_renderer=f(ws).createRenderer(null,null);_appRef;_styleLoader=f(Rn);constructor(){}create(A){this._styleLoader.load(EP);let i=this._createHostElement(),n=this._createPaneElement(i),o=this._createPortalOutlet(n),r=new Bg(A);return r.direction=r.direction||this._directionality.value,new LB(o,i,n,r,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,this._animationsModuleType==="NoopAnimations",this._injector.get(pr),this._renderer)}position(){return this._positionBuilder}_createPaneElement(A){let i=this._document.createElement("div");return i.id=this._idGenerator.getId("cdk-overlay-"),i.classList.add("cdk-overlay-pane"),A.appendChild(i),i}_createHostElement(){let A=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(A),A}_createPortalOutlet(A){return this._appRef||(this._appRef=this._injector.get(la)),new Fu(A,null,this._appRef,this._injector,this._document)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),WuA=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],QP=new dA("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(nr);return()=>t.scrollStrategies.reposition()}}),Nu=(()=>{class t{elementRef=f(ee);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]})}return t})(),Yk=(()=>{class t{_overlay=f(nr);_dir=f(mo,{optional:!0});_overlayRef;_templatePortal;_backdropSubscription=Kt.EMPTY;_attachSubscription=Kt.EMPTY;_detachSubscription=Kt.EMPTY;_positionSubscription=Kt.EMPTY;_offsetX;_offsetY;_position;_scrollStrategyFactory=f(QP);_disposeOnNavigation=!1;_ngZone=f(Qe);origin;positions;positionStrategy;get offsetX(){return this._offsetX}set offsetX(A){this._offsetX=A,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(A){this._offsetY=A,this._position&&this._updatePositionStrategy(this._position)}width;height;minWidth;minHeight;backdropClass;panelClass;viewportMargin=0;scrollStrategy;open=!1;disableClose=!1;transformOriginSelector;hasBackdrop=!1;lockPosition=!1;flexibleDimensions=!1;growAfterOpen=!1;push=!1;get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(A){this._disposeOnNavigation=A}backdropClick=new WA;positionChange=new WA;attach=new WA;detach=new WA;overlayKeydown=new WA;overlayOutsideClick=new WA;constructor(){let A=f(wn),i=f(Nn);this._templatePortal=new ys(A,i),this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(A){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),A.origin&&this.open&&this._position.apply()),A.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=WuA);let A=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=A.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=A.detachments().subscribe(()=>this.detach.emit()),A.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),i.keyCode===27&&!this.disableClose&&!ir(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{let n=this._getOriginElement(),o=oc(i);(!n||n!==o&&!n.contains(o))&&this.overlayOutsideClick.next(i)})}_buildConfig(){let A=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Bg({direction:this._dir||"ltr",positionStrategy:A,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||this.width===0)&&(i.width=this.width),(this.height||this.height===0)&&(i.height=this.height),(this.minWidth||this.minWidth===0)&&(i.minWidth=this.minWidth),(this.minHeight||this.minHeight===0)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(A){let i=this.positions.map(n=>({originX:n.originX,originY:n.originY,overlayX:n.overlayX,overlayY:n.overlayY,offsetX:n.offsetX||this.offsetX,offsetY:n.offsetY||this.offsetY,panelClass:n.panelClass||void 0}));return A.setOrigin(this._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){let A=this._overlay.position().flexibleConnectedTo(this._getOrigin());return this._updatePositionStrategy(A),A}_getOrigin(){return this.origin instanceof Nu?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof Nu?this.origin.elementRef.nativeElement:this.origin instanceof ee?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(A=>{this.backdropClick.emit(A)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(Bv(()=>this.positionChange.observers.length>0)).subscribe(A=>{this._ngZone.run(()=>this.positionChange.emit(A)),this.positionChange.observers.length===0&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",ie],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",ie],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",ie],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",ie],push:[2,"cdkConnectedOverlayPush","push",ie],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",ie]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[ti]})}return t})();function XuA(t){return()=>t.scrollStrategies.reposition()}var $uA={provide:QP,deps:[nr],useFactory:XuA},El=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({providers:[nr,$uA],imports:[_2,dg,xu,xu]})}return t})();var Jk=class{_box;_destroyed=new OA;_resizeSubject=new OA;_resizeObserver;_elementObservables=new Map;constructor(e){this._box=e,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(A=>this._resizeSubject.next(A)))}observe(e){return this._elementObservables.has(e)||this._elementObservables.set(e,new ct(A=>{let i=this._resizeSubject.subscribe(A);return this._resizeObserver?.observe(e,{box:this._box}),()=>{this._resizeObserver?.unobserve(e),i.unsubscribe(),this._elementObservables.delete(e)}}).pipe(kt(A=>A.some(i=>i.target===e)),a0({bufferSize:1,refCount:!0}),St(this._destroyed))),this._elementObservables.get(e)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}},B8=(()=>{class t{_cleanupErrorListener;_observers=new Map;_ngZone=f(Qe);constructor(){typeof ResizeObserver<"u"}ngOnDestroy(){for(let[,A]of this._observers)A.destroy();this._observers.clear(),this._cleanupErrorListener?.()}observe(A,i){let n=i?.box||"content-box";return this._observers.has(n)||this._observers.set(n,new Jk(n)),this._observers.get(n).observe(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Ci=function(t){return t[t.State=0]="State",t[t.Transition=1]="Transition",t[t.Sequence=2]="Sequence",t[t.Group=3]="Group",t[t.Animate=4]="Animate",t[t.Keyframes=5]="Keyframes",t[t.Style=6]="Style",t[t.Trigger=7]="Trigger",t[t.Reference=8]="Reference",t[t.AnimateChild=9]="AnimateChild",t[t.AnimateRef=10]="AnimateRef",t[t.Query=11]="Query",t[t.Stagger=12]="Stagger",t}(Ci||{}),kc="*";function sc(t,e){return{type:Ci.Trigger,name:t,definitions:e,options:{}}}function ss(t,e=null){return{type:Ci.Animate,styles:e,timings:t}}function hP(t,e=null){return{type:Ci.Sequence,steps:t,options:e}}function po(t){return{type:Ci.Style,styles:t,offset:null}}function js(t,e,A){return{type:Ci.State,name:t,styles:e,options:A}}function Vr(t,e,A=null){return{type:Ci.Transition,expr:t,animation:e,options:A}}function Tk(t=null){return{type:Ci.AnimateChild,options:t}}function Hk(t,e,A=null){return{type:Ci.Query,selector:t,animation:e,options:A}}var Eg=class{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(e=0,A=0){this.totalTime=e+A}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(e=>e()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(e){this._position=this.totalTime?e*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(e){let A=e=="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},tC=class{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(e){this.players=e;let A=0,i=0,n=0,o=this.players.length;o==0?queueMicrotask(()=>this._onFinish()):this.players.forEach(r=>{r.onDone(()=>{++A==o&&this._onFinish()}),r.onDestroy(()=>{++i==o&&this._onDestroy()}),r.onStart(()=>{++n==o&&this._onStart()})}),this.totalTime=this.players.reduce((r,s)=>Math.max(r,s.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this.players.forEach(e=>e.init())}onStart(e){this._onStartFns.push(e)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(e=>e()),this._onStartFns=[])}onDone(e){this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(e=>e.play())}pause(){this.players.forEach(e=>e.pause())}restart(){this.players.forEach(e=>e.restart())}finish(){this._onFinish(),this.players.forEach(e=>e.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(e=>e.destroy()),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this.players.forEach(e=>e.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(e){let A=e*this.totalTime;this.players.forEach(i=>{let n=i.totalTime?Math.min(1,A/i.totalTime):1;i.setPosition(n)})}getPosition(){let e=this.players.reduce((A,i)=>A===null||i.totalTime>A.totalTime?i:A,null);return e!=null?e.getPosition():0}beforeDestroy(){this.players.forEach(e=>{e.beforeDestroy&&e.beforeDestroy()})}triggerCallback(e){let A=e=="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},FB="!";var A4A=["notch"],e4A=["matFormFieldNotchedOutline",""],t4A=["*"],i4A=["textField"],n4A=["iconPrefixContainer"],o4A=["textPrefixContainer"],r4A=["iconSuffixContainer"],s4A=["textSuffixContainer"],a4A=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],c4A=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function l4A(t,e){t&1&&JA(0,"span",21)}function g4A(t,e){if(t&1&&(S(0,"label",20),Fe(1,1),_A(2,l4A,1,0,"span",21),F()),t&2){let A=O(2);yA("floating",A._shouldLabelFloat())("monitorResize",A._hasOutline())("id",A._labelId),Ne("for",A._control.disableAutomaticLabeling?null:A._control.id),G(2),GA(!A.hideRequiredMarker&&A._control.required?2:-1)}}function I4A(t,e){if(t&1&&_A(0,g4A,3,5,"label",20),t&2){let A=O();GA(A._hasFloatingLabel()?0:-1)}}function C4A(t,e){t&1&&JA(0,"div",7)}function d4A(t,e){}function B4A(t,e){if(t&1&&_A(0,d4A,0,0,"ng-template",13),t&2){O(2);let A=cr(1);yA("ngTemplateOutlet",A)}}function E4A(t,e){if(t&1&&(S(0,"div",9),_A(1,B4A,1,1,null,13),F()),t&2){let A=O();yA("matFormFieldNotchedOutlineOpen",A._shouldLabelFloat()),G(),GA(A._forceDisplayInfixLabel()?-1:1)}}function Q4A(t,e){t&1&&(S(0,"div",10,2),Fe(2,2),F())}function h4A(t,e){t&1&&(S(0,"div",11,3),Fe(2,3),F())}function u4A(t,e){}function f4A(t,e){if(t&1&&_A(0,u4A,0,0,"ng-template",13),t&2){O();let A=cr(1);yA("ngTemplateOutlet",A)}}function m4A(t,e){t&1&&(S(0,"div",14,4),Fe(2,4),F())}function p4A(t,e){t&1&&(S(0,"div",15,5),Fe(2,5),F())}function w4A(t,e){t&1&&JA(0,"div",16)}function D4A(t,e){if(t&1&&(S(0,"div",18),Fe(1,6),F()),t&2){let A=O();yA("@transitionMessages",A._subscriptAnimationState)}}function y4A(t,e){if(t&1&&(S(0,"mat-hint",22),AA(1),F()),t&2){let A=O(2);yA("id",A._hintLabelId),G(),Gt(A.hintLabel)}}function v4A(t,e){if(t&1&&(S(0,"div",19),_A(1,y4A,2,2,"mat-hint",22),Fe(2,7),JA(3,"div",23),Fe(4,8),F()),t&2){let A=O();yA("@transitionMessages",A._subscriptAnimationState),G(),GA(A.hintLabel?1:-1)}}var Q8=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["mat-label"]]})}return t})(),b4A=new dA("MatError");var uP=(()=>{class t{align="start";id=f(sn).getId("mat-mdc-hint-");static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,n){i&2&&(Hs("id",n.id),Ne("align",null),ue("mat-mdc-form-field-hint-end",n.align==="end"))},inputs:{align:"align",id:"id"}})}return t})(),M4A=new dA("MatPrefix");var vP=new dA("MatSuffix"),bP=(()=>{class t{set _isTextSelector(A){this._isText=!0}_isText=!1;static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","matSuffix",""],["","matIconSuffix",""],["","matTextSuffix",""]],inputs:{_isTextSelector:[0,"matTextSuffix","_isTextSelector"]},features:[ht([{provide:vP,useExisting:t}])]})}return t})(),MP=new dA("FloatingLabelParent"),fP=(()=>{class t{_elementRef=f(ee);get floating(){return this._floating}set floating(A){this._floating=A,this.monitorResize&&this._handleResize()}_floating=!1;get monitorResize(){return this._monitorResize}set monitorResize(A){this._monitorResize=A,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}_monitorResize=!1;_resizeObserver=f(B8);_ngZone=f(Qe);_parent=f(MP);_resizeSubscription=new Kt;constructor(){}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return k4A(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,n){i&2&&ue("mdc-floating-label--float-above",n.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return t})();function k4A(t){let e=t;if(e.offsetParent!==null)return e.scrollWidth;let A=e.cloneNode(!0);A.style.setProperty("position","absolute"),A.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(A);let i=A.scrollWidth;return A.remove(),i}var mP="mdc-line-ripple--active",E8="mdc-line-ripple--deactivating",pP=(()=>{class t{_elementRef=f(ee);_cleanupTransitionEnd;constructor(){let A=f(Qe),i=f(Wi);A.runOutsideAngular(()=>{this._cleanupTransitionEnd=i.listen(this._elementRef.nativeElement,"transitionend",this._handleTransitionEnd)})}activate(){let A=this._elementRef.nativeElement.classList;A.remove(E8),A.add(mP)}deactivate(){this._elementRef.nativeElement.classList.add(E8)}_handleTransitionEnd=A=>{let i=this._elementRef.nativeElement.classList,n=i.contains(E8);A.propertyName==="opacity"&&n&&i.remove(mP,E8)};ngOnDestroy(){this._cleanupTransitionEnd()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return t})(),wP=(()=>{class t{_elementRef=f(ee);_ngZone=f(Qe);open=!1;_notch;constructor(){}ngAfterViewInit(){let A=this._elementRef.nativeElement.querySelector(".mdc-floating-label");A?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),typeof requestAnimationFrame=="function"&&(A.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>A.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(A){!this.open||!A?this._notch.nativeElement.style.width="":this._notch.nativeElement.style.width=`calc(${A}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,n){if(i&1&&Te(A4A,5),i&2){let o;XA(o=$A())&&(n._notch=o.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,n){i&2&&ue("mdc-notched-outline--notched",n.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},attrs:e4A,ngContentSelectors:t4A,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,n){i&1&&(jt(),JA(0,"div",1),S(1,"div",2,0),Fe(3),F(),JA(4,"div",3))},encapsulation:2,changeDetection:0})}return t})(),S4A={transitionMessages:sc("transitionMessages",[js("enter",po({opacity:1,transform:"translateY(0%)"})),Vr("void => enter",[po({opacity:0,transform:"translateY(-5px)"}),ss("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},_u=(()=>{class t{value;stateChanges;id;placeholder;ngControl;focused;empty;shouldLabelFloat;required;disabled;errorState;controlType;autofilled;userAriaDescribedBy;disableAutomaticLabeling;static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t})}return t})();var Gu=new dA("MatFormField"),R4A=new dA("MAT_FORM_FIELD_DEFAULT_OPTIONS"),DP="fill",x4A="auto",yP="fixed",L4A="translateY(-50%)",Qg=(()=>{class t{_elementRef=f(ee);_changeDetectorRef=f(It);_dir=f(mo);_platform=f(Ii);_idGenerator=f(sn);_defaults=f(R4A,{optional:!0});_animationMode=f(Si,{optional:!0});_textField;_iconPrefixContainer;_textPrefixContainer;_iconSuffixContainer;_textSuffixContainer;_floatingLabel;_notchedOutline;_lineRipple;_formFieldControl;_prefixChildren;_suffixChildren;_errorChildren;_hintChildren;_labelChild=GT(Q8);get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(A){this._hideRequiredMarker=Xo(A)}_hideRequiredMarker=!1;color="primary";get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||x4A}set floatLabel(A){A!==this._floatLabel&&(this._floatLabel=A,this._changeDetectorRef.markForCheck())}_floatLabel;get appearance(){return this._appearance}set appearance(A){let i=this._appearance,n=A||this._defaults?.appearance||DP;this._appearance=n,this._appearance==="outline"&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdate=!0)}_appearance=DP;get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||yP}set subscriptSizing(A){this._subscriptSizing=A||this._defaults?.subscriptSizing||yP}_subscriptSizing=null;get hintLabel(){return this._hintLabel}set hintLabel(A){this._hintLabel=A,this._processHints()}_hintLabel="";_hasIconPrefix=!1;_hasTextPrefix=!1;_hasIconSuffix=!1;_hasTextSuffix=!1;_labelId=this._idGenerator.getId("mat-mdc-form-field-label-");_hintLabelId=this._idGenerator.getId("mat-mdc-hint-");_subscriptAnimationState="";get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(A){this._explicitFormFieldControl=A}_destroyed=new OA;_isFocused=null;_explicitFormFieldControl;_needsOutlineLabelOffsetUpdate=!1;_previousControl=null;_stateChanges;_valueChanges;_describedByChanges;_injector=f(Rt);constructor(){let A=this._defaults;A&&(A.appearance&&(this.appearance=A.appearance),this._hideRequiredMarker=!!A?.hideRequiredMarker,A.color&&(this.color=A.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._previousControl=this._control)}ngOnDestroy(){this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._describedByChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getLabelId=h0(()=>this._hasFloatingLabel()?this._labelId:null);getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(A){let i=this._control,n="mat-mdc-form-field-type-";A&&this._elementRef.nativeElement.classList.remove(n+A.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(n+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._changeDetectorRef.markForCheck()}),this._describedByChanges?.unsubscribe(),this._describedByChanges=i.stateChanges.pipe(Pn([void 0,void 0]),je(()=>[i.errorState,i.userAriaDescribedBy]),pm(),kt(([[o,r],[s,a]])=>o!==s||r!==a)).subscribe(()=>this._syncDescribedByIds()),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(St(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck()))}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(A=>!A._isText),this._hasTextPrefix=!!this._prefixChildren.find(A=>A._isText),this._hasIconSuffix=!!this._suffixChildren.find(A=>!A._isText),this._hasTextSuffix=!!this._suffixChildren.find(A=>A._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),zn(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){this._control}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||this._isFocused===null)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0),vh(()=>{this._needsOutlineLabelOffsetUpdate&&(this._needsOutlineLabelOffsetUpdate=!1,this._updateOutlineLabelOffset())},{injector:this._injector}),this._dir.change.pipe(St(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0)}_shouldAlwaysFloat(){return this.floatLabel==="always"}_hasOutline(){return this.appearance==="outline"}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel=h0(()=>!!this._labelChild());_shouldLabelFloat(){return this._hasFloatingLabel()?this._control.shouldLabelFloat||this._shouldAlwaysFloat():!1}_shouldForward(A){let i=this._control?this._control.ngControl:null;return i&&i[A]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){!this._hasOutline()||!this._floatingLabel||!this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(0):this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth())}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){this._hintChildren}_syncDescribedByIds(){if(this._control){let A=[];if(this._control.userAriaDescribedBy&&typeof this._control.userAriaDescribedBy=="string"&&A.push(...this._control.userAriaDescribedBy.split(" ")),this._getDisplayedMessages()==="hint"){let i=this._hintChildren?this._hintChildren.find(o=>o.align==="start"):null,n=this._hintChildren?this._hintChildren.find(o=>o.align==="end"):null;i?A.push(i.id):this._hintLabel&&A.push(this._hintLabelId),n&&A.push(n.id)}else this._errorChildren&&A.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(A)}}_updateOutlineLabelOffset(){if(!this._hasOutline()||!this._floatingLabel)return;let A=this._floatingLabel.element;if(!(this._iconPrefixContainer||this._textPrefixContainer)){A.style.transform="";return}if(!this._isAttachedToDom()){this._needsOutlineLabelOffsetUpdate=!0;return}let i=this._iconPrefixContainer?.nativeElement,n=this._textPrefixContainer?.nativeElement,o=this._iconSuffixContainer?.nativeElement,r=this._textSuffixContainer?.nativeElement,s=i?.getBoundingClientRect().width??0,a=n?.getBoundingClientRect().width??0,c=o?.getBoundingClientRect().width??0,l=r?.getBoundingClientRect().width??0,I=this._dir.value==="rtl"?"-1":"1",C=`${s+a}px`,B=`calc(${I} * (${C} + var(--mat-mdc-form-field-label-offset-x, 0px)))`;A.style.transform=`var( - --mat-mdc-form-field-label-transform, - ${L4A} translateX(${B}) - )`;let E=s+a+c+l;this._elementRef.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${E}px)`)}_isAttachedToDom(){let A=this._elementRef.nativeElement;if(A.getRootNode){let i=A.getRootNode();return i&&i!==A}return document.documentElement.contains(A)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-form-field"]],contentQueries:function(i,n,o){if(i&1&&(oH(o,n._labelChild,Q8,5),ci(o,_u,5),ci(o,M4A,5),ci(o,vP,5),ci(o,b4A,5),ci(o,uP,5)),i&2){rH();let r;XA(r=$A())&&(n._formFieldControl=r.first),XA(r=$A())&&(n._prefixChildren=r),XA(r=$A())&&(n._suffixChildren=r),XA(r=$A())&&(n._errorChildren=r),XA(r=$A())&&(n._hintChildren=r)}},viewQuery:function(i,n){if(i&1&&(Te(i4A,5),Te(n4A,5),Te(o4A,5),Te(r4A,5),Te(s4A,5),Te(fP,5),Te(wP,5),Te(pP,5)),i&2){let o;XA(o=$A())&&(n._textField=o.first),XA(o=$A())&&(n._iconPrefixContainer=o.first),XA(o=$A())&&(n._textPrefixContainer=o.first),XA(o=$A())&&(n._iconSuffixContainer=o.first),XA(o=$A())&&(n._textSuffixContainer=o.first),XA(o=$A())&&(n._floatingLabel=o.first),XA(o=$A())&&(n._notchedOutline=o.first),XA(o=$A())&&(n._lineRipple=o.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,n){i&2&&ue("mat-mdc-form-field-label-always-float",n._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",n._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",n._hasIconSuffix)("mat-form-field-invalid",n._control.errorState)("mat-form-field-disabled",n._control.disabled)("mat-form-field-autofilled",n._control.autofilled)("mat-form-field-no-animations",n._animationMode==="NoopAnimations")("mat-form-field-appearance-fill",n.appearance=="fill")("mat-form-field-appearance-outline",n.appearance=="outline")("mat-form-field-hide-placeholder",n._hasFloatingLabel()&&!n._shouldLabelFloat())("mat-focused",n._control.focused)("mat-primary",n.color!=="accent"&&n.color!=="warn")("mat-accent",n.color==="accent")("mat-warn",n.color==="warn")("ng-untouched",n._shouldForward("untouched"))("ng-touched",n._shouldForward("touched"))("ng-pristine",n._shouldForward("pristine"))("ng-dirty",n._shouldForward("dirty"))("ng-valid",n._shouldForward("valid"))("ng-invalid",n._shouldForward("invalid"))("ng-pending",n._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[ht([{provide:Gu,useExisting:t},{provide:MP,useExisting:t}])],ngContentSelectors:c4A,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,n){if(i&1){let o=be();jt(a4A),_A(0,I4A,1,1,"ng-template",null,0,Fh),S(2,"div",6,1),hA("click",function(s){return RA(o),xA(n._control.onContainerClick(s))}),_A(4,C4A,1,0,"div",7),S(5,"div",8),_A(6,E4A,2,2,"div",9)(7,Q4A,3,0,"div",10)(8,h4A,3,0,"div",11),S(9,"div",12),_A(10,f4A,1,1,null,13),Fe(11),F(),_A(12,m4A,3,0,"div",14)(13,p4A,3,0,"div",15),F(),_A(14,w4A,1,0,"div",16),F(),S(15,"div",17),_A(16,D4A,2,1,"div",18)(17,v4A,5,2,"div",19),F()}if(i&2){let o;G(2),ue("mdc-text-field--filled",!n._hasOutline())("mdc-text-field--outlined",n._hasOutline())("mdc-text-field--no-label",!n._hasFloatingLabel())("mdc-text-field--disabled",n._control.disabled)("mdc-text-field--invalid",n._control.errorState),G(2),GA(!n._hasOutline()&&!n._control.disabled?4:-1),G(2),GA(n._hasOutline()?6:-1),G(),GA(n._hasIconPrefix?7:-1),G(),GA(n._hasTextPrefix?8:-1),G(2),GA(!n._hasOutline()||n._forceDisplayInfixLabel()?10:-1),G(2),GA(n._hasTextSuffix?12:-1),G(),GA(n._hasIconSuffix?13:-1),G(),GA(n._hasOutline()?-1:14),G(),ue("mat-mdc-form-field-subscript-dynamic-size",n.subscriptSizing==="dynamic"),G(),GA((o=n._getDisplayedMessages())==="error"?16:o==="hint"?17:-1)}},dependencies:[fP,wP,Yh,pP,uP],styles:['.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-moz-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-webkit-input-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive:-ms-input-placeholder{opacity:0}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-filled-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-outlined-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color, var(--mat-sys-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 4%, transparent))}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)));padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px);padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}@media(forced-colors: active){.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-filled-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-filled-text-field-hover-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-filled-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-filled-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-filled-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-filled-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-filled-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-filled-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-outlined-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-outlined-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-outlined-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-outlined-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-outlined-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-outlined-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-outline-color, var(--mat-sys-outline));border-width:var(--mdc-outlined-text-field-outline-width, 1px)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-hover-outline-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-focus-outline-color, var(--mat-sys-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-hover-outline-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-focus-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mdc-outlined-text-field-focus-outline-width, 2px)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),100% - max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))*2)}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none;--mat-form-field-notch-max-width: 100%}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1;border-bottom-width:var(--mdc-filled-text-field-active-indicator-height, 1px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color, var(--mat-sys-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color, var(--mat-sys-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height, 2px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color, var(--mat-sys-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color, var(--mat-sys-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height, 56px);padding-top:var(--mat-form-field-filled-with-label-container-padding-top, 24px);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom, 8px)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding, 16px);padding-bottom:var(--mat-form-field-container-vertical-padding, 16px)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height, 56px)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height, 56px) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color, var(--mat-sys-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-sys-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-sys-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-sys-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity, 0)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color, var(--mat-sys-neutral10))}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color, color-mix(in srgb, var(--mat-sys-neutral10) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-sys-on-surface-variant))}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}@media(forced-colors: active){.mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}}@media(forced-colors: active){.mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-sys-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-sys-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-sys-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-sys-error))}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field-infix:has(textarea[cols]){width:auto}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[S4A.transitionMessages]},changeDetection:0})}return t})(),y0=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[it,DB,it]})}return t})();var F4A=["trigger"],N4A=["panel"],_4A=[[["mat-select-trigger"]],"*"],G4A=["mat-select-trigger","*"];function U4A(t,e){if(t&1&&(S(0,"span",4),AA(1),F()),t&2){let A=O();G(),Gt(A.placeholder)}}function K4A(t,e){t&1&&Fe(0)}function Y4A(t,e){if(t&1&&(S(0,"span",11),AA(1),F()),t&2){let A=O(2);G(),Gt(A.triggerValue)}}function J4A(t,e){if(t&1&&(S(0,"span",5),_A(1,K4A,1,0)(2,Y4A,2,1,"span",11),F()),t&2){let A=O();G(),GA(A.customTrigger?1:2)}}function T4A(t,e){if(t&1){let A=be();S(0,"div",12,1),hA("@transformPanel.done",function(n){RA(A);let o=O();return xA(o._panelDoneAnimatingStream.next(n.toState))})("keydown",function(n){RA(A);let o=O();return xA(o._handleKeydown(n))}),Fe(2,1),F()}if(t&2){let A=O();nH("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",A._getPanelTheme(),""),yA("ngClass",A.panelClass)("@transformPanel","showing"),Ne("id",A.id+"-panel")("aria-multiselectable",A.multiple)("aria-label",A.ariaLabel||null)("aria-labelledby",A._getPanelAriaLabelledby())}}var H4A={transformPanelWrap:sc("transformPanelWrap",[Vr("* => void",Hk("@transformPanel",[Tk()],{optional:!0}))]),transformPanel:sc("transformPanel",[js("void",po({opacity:0,transform:"scale(1, 0.8)"})),Vr("void => showing",ss("120ms cubic-bezier(0, 0, 0.2, 1)",po({opacity:1,transform:"scale(1, 1)"}))),Vr("* => void",ss("100ms linear",po({opacity:0})))])};var kP=new dA("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(nr);return()=>t.scrollStrategies.reposition()}});function z4A(t){return()=>t.scrollStrategies.reposition()}var O4A=new dA("MAT_SELECT_CONFIG"),P4A={provide:kP,deps:[nr],useFactory:z4A},j4A=new dA("MatSelectTrigger"),zk=class{source;value;constructor(e,A){this.source=e,this.value=A}},NB=(()=>{class t{_viewportRuler=f(Mc);_changeDetectorRef=f(It);_elementRef=f(ee);_dir=f(mo,{optional:!0});_idGenerator=f(sn);_parentFormField=f(Gu,{optional:!0});ngControl=f(Ac,{self:!0,optional:!0});_liveAnnouncer=f(o8);_defaultOptions=f(O4A,{optional:!0});_initialized=new OA;options;optionGroups;customTrigger;_positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}];_scrollOptionIntoView(A){let i=this.options.toArray()[A];if(i){let n=this.panel.nativeElement,o=AP(A,this.options,this.optionGroups),r=i._getHostElement();A===0&&o===1?n.scrollTop=0:n.scrollTop=eP(r.offsetTop,r.offsetHeight,n.scrollTop,n.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(A){return new zk(this,A)}_scrollStrategyFactory=f(kP);_panelOpen=!1;_compareWith=(A,i)=>A===i;_uid=this._idGenerator.getId("mat-select-");_triggerAriaLabelledBy=null;_previousControl;_destroy=new OA;_errorStateTracker;stateChanges=new OA;disableAutomaticLabeling=!0;userAriaDescribedBy;_selectionModel;_keyManager;_preferredOverlayOrigin;_overlayWidth;_onChange=()=>{};_onTouched=()=>{};_valueId=this._idGenerator.getId("mat-select-value-");_panelDoneAnimatingStream=new OA;_scrollStrategy;_overlayPanelClass=this._defaultOptions?.overlayPanelClass||"";get focused(){return this._focused||this._panelOpen}_focused=!1;controlType="mat-select";trigger;panel;_overlayDir;panelClass;disabled=!1;disableRipple=!1;tabIndex=0;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(A){this._hideSingleSelectionIndicator=A,this._syncParentProperties()}_hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1;get placeholder(){return this._placeholder}set placeholder(A){this._placeholder=A,this.stateChanges.next()}_placeholder;get required(){return this._required??this.ngControl?.control?.hasValidator($a.required)??!1}set required(A){this._required=A,this.stateChanges.next()}_required;get multiple(){return this._multiple}set multiple(A){this._selectionModel,this._multiple=A}_multiple=!1;disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1;get compareWith(){return this._compareWith}set compareWith(A){this._compareWith=A,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(A){this._assignValue(A)&&this._onChange(A)}_value;ariaLabel="";ariaLabelledby;get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(A){this._errorStateTracker.matcher=A}typeaheadDebounceInterval;sortComparator;get id(){return this._id}set id(A){this._id=A||this._uid,this.stateChanges.next()}_id;get errorState(){return this._errorStateTracker.errorState}set errorState(A){this._errorStateTracker.errorState=A}panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto";canSelectNullableOptions=this._defaultOptions?.canSelectNullableOptions??!1;optionSelectionChanges=jl(()=>{let A=this.options;return A?A.changes.pipe(Pn(A),jn(()=>zn(...A.map(i=>i.onSelectionChange)))):this._initialized.pipe(jn(()=>this.optionSelectionChanges))});openedChange=new WA;_openedStream=this.openedChange.pipe(kt(A=>A),je(()=>{}));_closedStream=this.openedChange.pipe(kt(A=>!A),je(()=>{}));selectionChange=new WA;valueChange=new WA;constructor(){let A=f(bB),i=f(su,{optional:!0}),n=f(GI,{optional:!0}),o=f(new wr("tabindex"),{optional:!0});this.ngControl&&(this.ngControl.valueAccessor=this),this._defaultOptions?.typeaheadDebounceInterval!=null&&(this.typeaheadDebounceInterval=this._defaultOptions.typeaheadDebounceInterval),this._errorStateTracker=new $I(A,this.ngControl,n,i,this.stateChanges),this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=o==null?0:parseInt(o)||0,this.id=this.id}ngOnInit(){this._selectionModel=new K2(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(tl(),St(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen)),this._viewportRuler.change().pipe(St(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(St(this._destroy)).subscribe(A=>{A.added.forEach(i=>i.select()),A.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(Pn(null),St(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){let A=this._getTriggerAriaLabelledby(),i=this.ngControl;if(A!==this._triggerAriaLabelledBy){let n=this._elementRef.nativeElement;this._triggerAriaLabelledBy=A,A?n.setAttribute("aria-labelledby",A):n.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(this._previousControl!==void 0&&i.disabled!==null&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(A){(A.disabled||A.userAriaDescribedBy)&&this.stateChanges.next(),A.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this.typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_trackedModal=null;_applyModalPanelOwnership(){let A=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!A)return;let i=`${this.id}-panel`;this._trackedModal&&i8(this._trackedModal,"aria-owns",i),Ek(A,"aria-owns",i),this._trackedModal=A}_clearFromModal(){if(!this._trackedModal)return;let A=`${this.id}-panel`;i8(this._trackedModal,"aria-owns",A),this._trackedModal=null}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next())}writeValue(A){this._assignValue(A)}registerOnChange(A){this._onChange=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){let A=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&A.reverse(),A.join(", ")}return this._selectionModel.selected[0].viewValue}updateErrorState(){this._errorStateTracker.updateErrorState()}_isRtl(){return this._dir?this._dir.value==="rtl":!1}_handleKeydown(A){this.disabled||(this.panelOpen?this._handleOpenKeydown(A):this._handleClosedKeydown(A))}_handleClosedKeydown(A){let i=A.keyCode,n=i===40||i===38||i===37||i===39,o=i===13||i===32,r=this._keyManager;if(!r.isTyping()&&o&&!ir(A)||(this.multiple||A.altKey)&&n)A.preventDefault(),this.open();else if(!this.multiple){let s=this.selected;r.onKeydown(A);let a=this.selected;a&&s!==a&&this._liveAnnouncer.announce(a.viewValue,1e4)}}_handleOpenKeydown(A){let i=this._keyManager,n=A.keyCode,o=n===40||n===38,r=i.isTyping();if(o&&A.altKey)A.preventDefault(),this.close();else if(!r&&(n===13||n===32)&&i.activeItem&&!ir(A))A.preventDefault(),i.activeItem._selectViaInteraction();else if(!r&&this._multiple&&n===65&&A.ctrlKey){A.preventDefault();let s=this.options.some(a=>!a.disabled&&!a.selected);this.options.forEach(a=>{a.disabled||(s?a.select():a.deselect())})}else{let s=i.activeItemIndex;i.onKeydown(A),this._multiple&&o&&A.shiftKey&&i.activeItem&&i.activeItemIndex!==s&&i.activeItem._selectViaInteraction()}}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(On(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(A){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&A)Array.isArray(A),A.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{let i=this._selectOptionByValue(A);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(A){let i=this.options.find(n=>{if(this._selectionModel.isSelected(n))return!1;try{return(n.value!=null||this.canSelectNullableOptions)&&this._compareWith(n.value,A)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(A){return A!==this._value||this._multiple&&Array.isArray(A)?(this.options&&this._setSelectionByValue(A),this._value=A,!0):!1}_skipPredicate=A=>this.panelOpen?!1:A.disabled;_getOverlayWidth(A){return this.panelWidth==="auto"?(A instanceof Nu?A.elementRef:A||this._elementRef).nativeElement.getBoundingClientRect().width:this.panelWidth===null?"":this.panelWidth}_syncParentProperties(){if(this.options)for(let A of this.options)A._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new t8(this.options).withTypeAhead(this.typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){let A=zn(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(St(A)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),zn(...this.options.map(i=>i._stateChanges)).pipe(St(A)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(A,i){let n=this._selectionModel.isSelected(A);!this.canSelectNullableOptions&&A.value==null&&!this._multiple?(A.deselect(),this._selectionModel.clear(),this.value!=null&&this._propagateChanges(A.value)):(n!==A.selected&&(A.selected?this._selectionModel.select(A):this._selectionModel.deselect(A)),i&&this._keyManager.setActiveItem(A),this.multiple&&(this._sortValues(),i&&this.focus())),n!==this._selectionModel.isSelected(A)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){let A=this.options.toArray();this._selectionModel.sort((i,n)=>this.sortComparator?this.sortComparator(i,n,A):A.indexOf(i)-A.indexOf(n)),this.stateChanges.next()}}_propagateChanges(A){let i;this.multiple?i=this.selected.map(n=>n.value):i=this.selected?this.selected.value:A,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let A=-1;for(let i=0;i0}focus(A){this._elementRef.nativeElement.focus(A)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;let A=this._parentFormField?.getLabelId()||null,i=A?A+" ":"";return this.ariaLabelledby?i+this.ariaLabelledby:A}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;let A=this._parentFormField?.getLabelId(),i=(A?A+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(A){this.openedChange.emit(A)}setDescribedByIds(A){A.length?this._elementRef.nativeElement.setAttribute("aria-describedby",A.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-select"]],contentQueries:function(i,n,o){if(i&1&&(ci(o,j4A,5),ci(o,U2,5),ci(o,vk,5)),i&2){let r;XA(r=$A())&&(n.customTrigger=r.first),XA(r=$A())&&(n.options=r),XA(r=$A())&&(n.optionGroups=r)}},viewQuery:function(i,n){if(i&1&&(Te(F4A,5),Te(N4A,5),Te(Yk,5)),i&2){let o;XA(o=$A())&&(n.trigger=o.first),XA(o=$A())&&(n.panel=o.first),XA(o=$A())&&(n._overlayDir=o.first)}},hostAttrs:["role","combobox","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,n){i&1&&hA("keydown",function(r){return n._handleKeydown(r)})("focus",function(){return n._onFocus()})("blur",function(){return n._onBlur()}),i&2&&(Ne("id",n.id)("tabindex",n.disabled?-1:n.tabIndex)("aria-controls",n.panelOpen?n.id+"-panel":null)("aria-expanded",n.panelOpen)("aria-label",n.ariaLabel||null)("aria-required",n.required.toString())("aria-disabled",n.disabled.toString())("aria-invalid",n.errorState)("aria-activedescendant",n._getAriaActiveDescendant()),ue("mat-mdc-select-disabled",n.disabled)("mat-mdc-select-invalid",n.errorState)("mat-mdc-select-required",n.required)("mat-mdc-select-empty",n.empty)("mat-mdc-select-multiple",n.multiple))},inputs:{userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[2,"disabled","disabled",ie],disableRipple:[2,"disableRipple","disableRipple",ie],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:zi(A)],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",ie],placeholder:"placeholder",required:[2,"required","required",ie],multiple:[2,"multiple","multiple",ie],disableOptionCentering:[2,"disableOptionCentering","disableOptionCentering",ie],compareWith:"compareWith",value:"value",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[2,"typeaheadDebounceInterval","typeaheadDebounceInterval",zi],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth",canSelectNullableOptions:[2,"canSelectNullableOptions","canSelectNullableOptions",ie]},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],features:[ht([{provide:_u,useExisting:t},{provide:yk,useExisting:t}]),ti],ngContentSelectors:G4A,decls:11,vars:8,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","attach","detach","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"keydown","ngClass"]],template:function(i,n){if(i&1){let o=be();jt(_4A),S(0,"div",2,0),hA("click",function(){return RA(o),xA(n.open())}),S(3,"div",3),_A(4,U4A,2,1,"span",4)(5,J4A,3,1,"span",5),F(),S(6,"div",6)(7,"div",7),ar(),S(8,"svg",8),JA(9,"path",9),F()()()(),_A(10,T4A,3,9,"ng-template",10),hA("backdropClick",function(){return RA(o),xA(n.close())})("attach",function(){return RA(o),xA(n._onAttached())})("detach",function(){return RA(o),xA(n.close())})}if(i&2){let o=cr(1);G(3),Ne("id",n._valueId),G(),GA(n.empty?4:5),G(6),yA("cdkConnectedOverlayPanelClass",n._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",n._scrollStrategy)("cdkConnectedOverlayOrigin",n._preferredOverlayOrigin||o)("cdkConnectedOverlayOpen",n.panelOpen)("cdkConnectedOverlayPositions",n._positions)("cdkConnectedOverlayWidth",n._overlayWidth)}},dependencies:[Nu,Yk,Xa],styles:['.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color, var(--mat-sys-on-surface));font-family:var(--mat-select-trigger-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-select-trigger-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-select-trigger-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-select-trigger-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-select-trigger-text-tracking, var(--mat-sys-body-large-tracking))}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-disabled .mat-mdc-select-placeholder{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color, var(--mat-sys-error))}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}@media(forced-colors: active){.mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .mat-mdc-select-arrow svg{fill:GrayText}}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color, var(--mat-sys-surface-container))}@media(forced-colors: active){div.mat-mdc-select-panel{outline:solid 1px}}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}div.mat-mdc-select-panel .mat-mdc-option{--mdc-list-list-item-container-color: var(--mat-select-panel-background-color)}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color, var(--mat-sys-on-surface-variant))}.mat-form-field-no-animations .mat-mdc-select-placeholder,._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform, translateY(-8px))}'],encapsulation:2,data:{animation:[H4A.transformPanel]},changeDetection:0})}return t})();var u8=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({providers:[P4A],imports:[El,bk,it,Cl,y0,bk,it]})}return t})();var q4A=["tooltip"],LP=20;var FP=new dA("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(nr);return()=>t.scrollStrategies.reposition({scrollThrottle:LP})}});function V4A(t){return()=>t.scrollStrategies.reposition({scrollThrottle:LP})}var Z4A={provide:FP,deps:[nr],useFactory:V4A};function W4A(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}var X4A=new dA("mat-tooltip-default-options",{providedIn:"root",factory:W4A});var RP="tooltip-panel",xP=bc({passive:!0}),$4A=8,A3A=8,e3A=24,t3A=200,_B=(()=>{class t{_elementRef=f(ee);_ngZone=f(Qe);_platform=f(Ii);_ariaDescriber=f(HO);_focusMonitor=f(dr);_dir=f(mo);_injector=f(Rt);_defaultOptions=f(X4A,{optional:!0});_overlayRef;_tooltipInstance;_portal;_position="below";_positionAtOrigin=!1;_disabled=!1;_tooltipClass;_viewInitialized=!1;_pointerExitEventsInitialized=!1;_tooltipComponent=i3A;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending;_dirSubscribed=!1;get position(){return this._position}set position(A){A!==this._position&&(this._position=A,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(A){this._positionAtOrigin=Xo(A),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(A){let i=Xo(A);this._disabled!==i&&(this._disabled=i,i?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(A){this._showDelay=zs(A)}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(A){this._hideDelay=zs(A),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}_hideDelay;touchGestures="auto";get message(){return this._message}set message(A){let i=this._message;this._message=A!=null?String(A).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(i)}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(A){this._tooltipClass=A,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}_passiveListeners=[];_touchstartTimeout=null;_destroyed=new OA;_isDestroyed=!1;constructor(){let A=this._defaultOptions;A&&(this._showDelay=A.showDelay,this._hideDelay=A.hideDelay,A.position&&(this.position=A.position),A.positionAtOrigin&&(this.positionAtOrigin=A.positionAtOrigin),A.touchGestures&&(this.touchGestures=A.touchGestures),A.tooltipClass&&(this.tooltipClass=A.tooltipClass)),this._viewportMargin=$4A}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(St(this._destroyed)).subscribe(A=>{A?A==="keyboard"&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){let A=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,n])=>{A.removeEventListener(i,n,xP)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._isDestroyed=!0,this._ariaDescriber.removeDescription(A,this.message,"tooltip"),this._focusMonitor.stopMonitoring(A)}show(A=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible()){this._tooltipInstance?._cancelPendingAnimations();return}let n=this._createOverlay(i);this._detach(),this._portal=this._portal||new dl(this._tooltipComponent,this._injector.get(Nn));let o=this._tooltipInstance=n.attach(this._portal).instance;o._triggerElement=this._elementRef.nativeElement,o._mouseLeaveHideDelay=this._hideDelay,o.afterHidden().pipe(St(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),o.show(A)}hide(A=this.hideDelay){let i=this._tooltipInstance;i&&(i.isVisible()?i.hide(A):(i._cancelPendingAnimations(),this._detach()))}toggle(A){this._isTooltipVisible()?this.hide():this.show(void 0,A)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(A){if(this._overlayRef){let r=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!A)&&r._origin instanceof ee)return this._overlayRef;this._detach()}let i=this._injector.get(Y2).getAncestorScrollContainers(this._elementRef),n=this._injector.get(nr),o=n.position().flexibleConnectedTo(this.positionAtOrigin?A||this._elementRef:this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return o.positionChanges.pipe(St(this._destroyed)).subscribe(r=>{this._updateCurrentPositionClass(r.connectionPair),this._tooltipInstance&&r.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=n.create({direction:this._dir,positionStrategy:o,panelClass:`${this._cssClassPrefix}-${RP}`,scrollStrategy:this._injector.get(FP)()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(St(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(St(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(St(this._destroyed)).subscribe(r=>{this._isTooltipVisible()&&r.keyCode===27&&!ir(r)&&(r.preventDefault(),r.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._dirSubscribed||(this._dirSubscribed=!0,this._dir.change.pipe(St(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(A){let i=A.getConfig().positionStrategy,n=this._getOrigin(),o=this._getOverlayPosition();i.withPositions([this._addOffset(rA(rA({},n.main),o.main)),this._addOffset(rA(rA({},n.fallback),o.fallback))])}_addOffset(A){let i=A3A,n=!this._dir||this._dir.value=="ltr";return A.originY==="top"?A.offsetY=-i:A.originY==="bottom"?A.offsetY=i:A.originX==="start"?A.offsetX=n?-i:i:A.originX==="end"&&(A.offsetX=n?i:-i),A}_getOrigin(){let A=!this._dir||this._dir.value=="ltr",i=this.position,n;i=="above"||i=="below"?n={originX:"center",originY:i=="above"?"top":"bottom"}:i=="before"||i=="left"&&A||i=="right"&&!A?n={originX:"start",originY:"center"}:(i=="after"||i=="right"&&A||i=="left"&&!A)&&(n={originX:"end",originY:"center"});let{x:o,y:r}=this._invertPosition(n.originX,n.originY);return{main:n,fallback:{originX:o,originY:r}}}_getOverlayPosition(){let A=!this._dir||this._dir.value=="ltr",i=this.position,n;i=="above"?n={overlayX:"center",overlayY:"bottom"}:i=="below"?n={overlayX:"center",overlayY:"top"}:i=="before"||i=="left"&&A||i=="right"&&!A?n={overlayX:"end",overlayY:"center"}:(i=="after"||i=="right"&&A||i=="left"&&!A)&&(n={overlayX:"start",overlayY:"center"});let{x:o,y:r}=this._invertPosition(n.overlayX,n.overlayY);return{main:n,fallback:{overlayX:o,overlayY:r}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),To(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(A){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=A,this._tooltipInstance._markForCheck())}_invertPosition(A,i){return this.position==="above"||this.position==="below"?i==="top"?i="bottom":i==="bottom"&&(i="top"):A==="end"?A="start":A==="start"&&(A="end"),{x:A,y:i}}_updateCurrentPositionClass(A){let{overlayY:i,originX:n,originY:o}=A,r;if(i==="center"?this._dir&&this._dir.value==="rtl"?r=n==="end"?"left":"right":r=n==="start"?"left":"right":r=i==="bottom"&&o==="top"?"above":"below",r!==this._currentPosition){let s=this._overlayRef;if(s){let a=`${this._cssClassPrefix}-${RP}-`;s.removePanelClass(a+this._currentPosition),s.addPanelClass(a+r)}this._currentPosition=r}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",A=>{this._setupPointerExitEventsIfNeeded();let i;A.x!==void 0&&A.y!==void 0&&(i=A),this.show(void 0,i)}]):this.touchGestures!=="off"&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",A=>{let i=A.targetTouches?.[0],n=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout);let o=500;this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,n)},this._defaultOptions?.touchLongPressShowDelay??o)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;let A=[];if(this._platformSupportsMouseEvents())A.push(["mouseleave",i=>{let n=i.relatedTarget;(!n||!this._overlayRef?.overlayElement.contains(n))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if(this.touchGestures!=="off"){this._disableNativeGesturesIfNecessary();let i=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay)};A.push(["touchend",i],["touchcancel",i])}this._addListeners(A),this._passiveListeners.push(...A)}_addListeners(A){A.forEach(([i,n])=>{this._elementRef.nativeElement.addEventListener(i,n,xP)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(A){if(this._isTooltipVisible()){let i=this._injector.get(at).elementFromPoint(A.clientX,A.clientY),n=this._elementRef.nativeElement;i!==n&&!n.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){let A=this.touchGestures;if(A!=="off"){let i=this._elementRef.nativeElement,n=i.style;(A==="on"||i.nodeName!=="INPUT"&&i.nodeName!=="TEXTAREA")&&(n.userSelect=n.msUserSelect=n.webkitUserSelect=n.MozUserSelect="none"),(A==="on"||!i.draggable)&&(n.webkitUserDrag="none"),n.touchAction="none",n.webkitTapHighlightColor="transparent"}}_syncAriaDescription(A){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,A,"tooltip"),this._isDestroyed||To({write:()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")}},{injector:this._injector}))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,n){i&2&&ue("mat-mdc-tooltip-disabled",n.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return t})(),i3A=(()=>{class t{_changeDetectorRef=f(It);_elementRef=f(ee);_isMultiline=!1;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled;_tooltip;_closeOnInteraction=!1;_isVisible=!1;_onHide=new OA;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";constructor(){let A=f(Si,{optional:!0});this._animationsDisabled=A==="NoopAnimations"}show(A){this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},A)}hide(A){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},A)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:A}){(!A||!this._triggerElement.contains(A))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){let A=this._elementRef.nativeElement.getBoundingClientRect();return A.height>e3A&&A.width>=t3A}_handleAnimationEnd({animationName:A}){(A===this._showAnimation||A===this._hideAnimation)&&this._finalizeAnimation(A===this._showAnimation)}_cancelPendingAnimations(){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(A){A?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(A){let i=this._tooltip.nativeElement,n=this._showAnimation,o=this._hideAnimation;if(i.classList.remove(A?o:n),i.classList.add(A?n:o),this._isVisible!==A&&(this._isVisible=A,this._changeDetectorRef.markForCheck()),A&&!this._animationsDisabled&&typeof getComputedStyle=="function"){let r=getComputedStyle(i);(r.getPropertyValue("animation-duration")==="0s"||r.getPropertyValue("animation-name")==="none")&&(this._animationsDisabled=!0)}A&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(A))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-tooltip-component"]],viewQuery:function(i,n){if(i&1&&Te(q4A,7),i&2){let o;XA(o=$A())&&(n._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(i,n){i&1&&hA("mouseleave",function(r){return n._handleMouseLeave(r)})},decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(i,n){if(i&1){let o=be();S(0,"div",1,0),hA("animationend",function(s){return RA(o),xA(n._handleAnimationEnd(s))}),S(2,"div",2),AA(3),F()()}i&2&&(ue("mdc-tooltip--multiline",n._isMultiline),yA("ngClass",n.tooltipClass),G(3),Gt(n.message))},dependencies:[Xa],styles:['.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mdc-plain-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mdc-plain-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-plain-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mdc-plain-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mdc-plain-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mdc-plain-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mdc-plain-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-mdc-tooltip-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel{line-height:normal}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}return t})();var f8=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({providers:[Z4A],imports:[r8,El,it,it,Cl]})}return t})();function n3A(t,e){if(t&1&&(S(0,"mat-option",17),AA(1),F()),t&2){let A=e.$implicit;yA("value",A),G(),Et(" ",A," ")}}function o3A(t,e){if(t&1){let A=be();S(0,"mat-form-field",14)(1,"mat-select",16,0),hA("selectionChange",function(n){RA(A);let o=O(2);return xA(o._changePageSize(n.value))}),Dn(3,n3A,2,2,"mat-option",17,to),F(),S(5,"div",18),hA("click",function(){RA(A);let n=cr(2);return xA(n.open())}),F()()}if(t&2){let A=O(2);yA("appearance",A._formFieldAppearance)("color",A.color),G(),yA("value",A.pageSize)("disabled",A.disabled)("aria-labelledby",A._pageSizeLabelId)("panelClass",A.selectConfig.panelClass||"")("disableOptionCentering",A.selectConfig.disableOptionCentering),G(2),yn(A._displayedPageSizeOptions)}}function r3A(t,e){if(t&1&&(S(0,"div",15),AA(1),F()),t&2){let A=O(2);G(),Gt(A.pageSize)}}function s3A(t,e){if(t&1&&(S(0,"div",3)(1,"div",13),AA(2),F(),_A(3,o3A,6,7,"mat-form-field",14)(4,r3A,2,1,"div",15),F()),t&2){let A=O();G(),Ne("id",A._pageSizeLabelId),G(),Et(" ",A._intl.itemsPerPageLabel," "),G(),GA(A._displayedPageSizeOptions.length>1?3:-1),G(),GA(A._displayedPageSizeOptions.length<=1?4:-1)}}function a3A(t,e){if(t&1){let A=be();S(0,"button",19),hA("click",function(){RA(A);let n=O();return xA(n._buttonClicked(0,n._previousButtonsDisabled()))}),ar(),S(1,"svg",8),JA(2,"path",20),F()()}if(t&2){let A=O();yA("matTooltip",A._intl.firstPageLabel)("matTooltipDisabled",A._previousButtonsDisabled())("disabled",A._previousButtonsDisabled()),Ne("aria-label",A._intl.firstPageLabel)}}function c3A(t,e){if(t&1){let A=be();S(0,"button",21),hA("click",function(){RA(A);let n=O();return xA(n._buttonClicked(n.getNumberOfPages()-1,n._nextButtonsDisabled()))}),ar(),S(1,"svg",8),JA(2,"path",22),F()()}if(t&2){let A=O();yA("matTooltip",A._intl.lastPageLabel)("matTooltipDisabled",A._nextButtonsDisabled())("disabled",A._nextButtonsDisabled()),Ne("aria-label",A._intl.lastPageLabel)}}var iC=(()=>{class t{changes=new OA;itemsPerPageLabel="Items per page:";nextPageLabel="Next page";previousPageLabel="Previous page";firstPageLabel="First page";lastPageLabel="Last page";getRangeLabel=(A,i,n)=>{if(n==0||i==0)return`0 of ${n}`;n=Math.max(n,0);let o=A*i,r=o{class t{_intl=f(iC);_changeDetectorRef=f(It);_formFieldAppearance;_pageSizeLabelId=f(sn).getId("mat-paginator-page-size-label-");_intlChanges;_isInitialized=!1;_initializedStream=new Al(1);color;get pageIndex(){return this._pageIndex}set pageIndex(A){this._pageIndex=Math.max(A||0,0),this._changeDetectorRef.markForCheck()}_pageIndex=0;get length(){return this._length}set length(A){this._length=A||0,this._changeDetectorRef.markForCheck()}_length=0;get pageSize(){return this._pageSize}set pageSize(A){this._pageSize=Math.max(A||0,0),this._updateDisplayedPageSizeOptions()}_pageSize;get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(A){this._pageSizeOptions=(A||[]).map(i=>zi(i,0)),this._updateDisplayedPageSizeOptions()}_pageSizeOptions=[];hidePageSize=!1;showFirstLastButtons=!1;selectConfig={};disabled=!1;page=new WA;_displayedPageSizeOptions;initialized=this._initializedStream;constructor(){let A=this._intl,i=f(C3A,{optional:!0});if(this._intlChanges=A.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),i){let{pageSize:n,pageSizeOptions:o,hidePageSize:r,showFirstLastButtons:s}=i;n!=null&&(this._pageSize=n),o!=null&&(this._pageSizeOptions=o),r!=null&&(this.hidePageSize=r),s!=null&&(this.showFirstLastButtons=s)}this._formFieldAppearance=i?.formFieldAppearance||"outline"}ngOnInit(){this._isInitialized=!0,this._updateDisplayedPageSizeOptions(),this._initializedStream.next()}ngOnDestroy(){this._initializedStream.complete(),this._intlChanges.unsubscribe()}nextPage(){this.hasNextPage()&&this._navigate(this.pageIndex+1)}previousPage(){this.hasPreviousPage()&&this._navigate(this.pageIndex-1)}firstPage(){this.hasPreviousPage()&&this._navigate(0)}lastPage(){this.hasNextPage()&&this._navigate(this.getNumberOfPages()-1)}hasPreviousPage(){return this.pageIndex>=1&&this.pageSize!=0}hasNextPage(){let A=this.getNumberOfPages()-1;return this.pageIndexA-i),this._changeDetectorRef.markForCheck())}_emitPageEvent(A){this.page.emit({previousPageIndex:A,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}_navigate(A){let i=this.pageIndex;A!==i&&(this.pageIndex=A,this._emitPageEvent(i))}_buttonClicked(A,i){i||this._navigate(A)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-mdc-paginator"],inputs:{color:"color",pageIndex:[2,"pageIndex","pageIndex",zi],length:[2,"length","length",zi],pageSize:[2,"pageSize","pageSize",zi],pageSizeOptions:"pageSizeOptions",hidePageSize:[2,"hidePageSize","hidePageSize",ie],showFirstLastButtons:[2,"showFirstLastButtons","showFirstLastButtons",ie],selectConfig:"selectConfig",disabled:[2,"disabled","disabled",ie]},outputs:{page:"page"},exportAs:["matPaginator"],decls:14,vars:12,consts:[["selectRef",""],[1,"mat-mdc-paginator-outer-container"],[1,"mat-mdc-paginator-container"],[1,"mat-mdc-paginator-page-size"],[1,"mat-mdc-paginator-range-actions"],["aria-live","polite",1,"mat-mdc-paginator-range-label"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","disabled"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-previous",3,"click","matTooltip","matTooltipDisabled","disabled"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true",1,"mat-mdc-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-next",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","disabled"],[1,"mat-mdc-paginator-page-size-label"],[1,"mat-mdc-paginator-page-size-select",3,"appearance","color"],[1,"mat-mdc-paginator-page-size-value"],["hideSingleSelectionIndicator","",3,"selectionChange","value","disabled","aria-labelledby","panelClass","disableOptionCentering"],[3,"value"],[1,"mat-mdc-paginator-touch-target",3,"click"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(i,n){i&1&&(S(0,"div",1)(1,"div",2),_A(2,s3A,5,4,"div",3),S(3,"div",4)(4,"div",5),AA(5),F(),_A(6,a3A,3,4,"button",6),S(7,"button",7),hA("click",function(){return n._buttonClicked(n.pageIndex-1,n._previousButtonsDisabled())}),ar(),S(8,"svg",8),JA(9,"path",9),F()(),SI(),S(10,"button",10),hA("click",function(){return n._buttonClicked(n.pageIndex+1,n._nextButtonsDisabled())}),ar(),S(11,"svg",8),JA(12,"path",11),F()(),_A(13,c3A,3,4,"button",12),F()()()),i&2&&(G(2),GA(n.hidePageSize?-1:2),G(3),Et(" ",n._intl.getRangeLabel(n.pageIndex,n.pageSize,n.length)," "),G(),GA(n.showFirstLastButtons?6:-1),G(),yA("matTooltip",n._intl.previousPageLabel)("matTooltipDisabled",n._previousButtonsDisabled())("disabled",n._previousButtonsDisabled()),Ne("aria-label",n._intl.previousPageLabel),G(3),yA("matTooltip",n._intl.nextPageLabel)("matTooltipDisabled",n._nextButtonsDisabled())("disabled",n._nextButtonsDisabled()),Ne("aria-label",n._intl.nextPageLabel),G(3),GA(n.showFirstLastButtons?13:-1))},dependencies:[Qg,NB,U2,kB,_B],styles:[".mat-mdc-paginator{display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-paginator-container-text-color, var(--mat-sys-on-surface));background-color:var(--mat-paginator-container-background-color, var(--mat-sys-surface));font-family:var(--mat-paginator-container-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-paginator-container-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-paginator-container-text-size, var(--mat-sys-body-small-size));font-weight:var(--mat-paginator-container-text-weight, var(--mat-sys-body-small-weight));letter-spacing:var(--mat-paginator-container-text-tracking, var(--mat-sys-body-small-tracking));--mat-form-field-container-height:var(--mat-paginator-form-field-container-height, 40px);--mat-form-field-container-vertical-padding:var(--mat-paginator-form-field-container-vertical-padding, 8px)}.mat-mdc-paginator .mat-mdc-select-value{font-size:var(--mat-paginator-select-trigger-text-size, var(--mat-sys-body-small-size))}.mat-mdc-paginator .mat-mdc-form-field-subscript-wrapper{display:none}.mat-mdc-paginator .mat-mdc-select{line-height:1.5}.mat-mdc-paginator-outer-container{display:flex}.mat-mdc-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap;width:100%;min-height:var(--mat-paginator-container-size, 56px)}.mat-mdc-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-mdc-paginator-page-size{margin-right:0;margin-left:8px}.mat-mdc-paginator-page-size-label{margin:0 4px}.mat-mdc-paginator-page-size-select{margin:0 4px;width:84px}.mat-mdc-paginator-range-label{margin:0 32px 0 24px}.mat-mdc-paginator-range-actions{display:flex;align-items:center}.mat-mdc-paginator-icon{display:inline-block;width:28px;fill:var(--mat-paginator-enabled-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button[aria-disabled] .mat-mdc-paginator-icon{fill:var(--mat-paginator-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}[dir=rtl] .mat-mdc-paginator-icon{transform:rotate(180deg)}@media(forced-colors: active){.mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon,.mat-mdc-paginator-icon{fill:currentColor;fill:CanvasText}.mat-mdc-paginator-range-actions .mat-mdc-icon-button{outline:solid 1px}}.mat-mdc-paginator-touch-target{display:var(--mat-paginator-touch-target-display, block);position:absolute;top:50%;left:50%;width:84px;height:48px;background-color:rgba(0,0,0,0);transform:translate(-50%, -50%);cursor:pointer}"],encapsulation:2,changeDetection:0})}return t})(),_P=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({providers:[g3A],imports:[AC,u8,f8,Ok]})}return t})();function B3A(t,e){if(t&1){let A=be();S(0,"div",1)(1,"button",2),hA("click",function(){RA(A);let n=O();return xA(n.action())}),AA(2),F()()}if(t&2){let A=O();G(2),Et(" ",A.data.action," ")}}var E3A=["label"];function Q3A(t,e){}var h3A=Math.pow(2,31)-1,Uu=class{_overlayRef;instance;containerInstance;_afterDismissed=new OA;_afterOpened=new OA;_onAction=new OA;_durationTimeoutId;_dismissedByAction=!1;constructor(e,A){this._overlayRef=A,this.containerInstance=e,e._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(e){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(e,h3A))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}},GP=new dA("MatSnackBarData"),GB=class{politeness="assertive";announcementMessage="";viewContainerRef;duration=0;panelClass;direction;data=null;horizontalPosition="center";verticalPosition="bottom"},u3A=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return t})(),f3A=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return t})(),m3A=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return t})(),p3A=(()=>{class t{snackBarRef=f(Uu);data=f(GP);constructor(){}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(i,n){i&1&&(S(0,"div",0),AA(1),F(),_A(2,B3A,3,1,"div",1)),i&2&&(G(),Et(" ",n.data.message,` -`),G(),GA(n.hasAction?2:-1))},dependencies:[Dr,u3A,f3A,m3A],styles:[".mat-mdc-simple-snack-bar{display:flex}"],encapsulation:2,changeDetection:0})}return t})(),w3A={snackBarState:sc("state",[js("void, hidden",po({transform:"scale(0.8)",opacity:0})),js("visible",po({transform:"scale(1)",opacity:1})),Vr("* => visible",ss("150ms cubic-bezier(0, 0, 0.2, 1)")),Vr("* => void, * => hidden",ss("75ms cubic-bezier(0.4, 0.0, 1, 1)",po({opacity:0})))])},D3A=(()=>{class t extends J2{_ngZone=f(Qe);_elementRef=f(ee);_changeDetectorRef=f(It);_platform=f(Ii);snackBarConfig=f(GB);_document=f(at);_trackedModals=new Set;_announceDelay=150;_announceTimeoutId;_destroyed=!1;_portalOutlet;_onAnnounce=new OA;_onExit=new OA;_onEnter=new OA;_animationState="void";_live;_label;_role;_liveElementId=f(sn).getId("mat-snack-bar-container-live-");constructor(){super();let A=this.snackBarConfig;A.politeness==="assertive"&&!A.announcementMessage?this._live="assertive":A.politeness==="off"?this._live="off":this._live="polite",this._platform.FIREFOX&&(this._live==="polite"&&(this._role="status"),this._live==="assertive"&&(this._role="alert"))}attachComponentPortal(A){this._assertNotAttached();let i=this._portalOutlet.attachComponentPortal(A);return this._afterPortalAttached(),i}attachTemplatePortal(A){this._assertNotAttached();let i=this._portalOutlet.attachTemplatePortal(A);return this._afterPortalAttached(),i}attachDomPortal=A=>{this._assertNotAttached();let i=this._portalOutlet.attachDomPortal(A);return this._afterPortalAttached(),i};onAnimationEnd(A){let{fromState:i,toState:n}=A;if((n==="void"&&i!=="void"||n==="hidden")&&this._completeExit(),n==="visible"){let o=this._onEnter;this._ngZone.run(()=>{o.next(),o.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.markForCheck(),this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._ngZone.run(()=>{this._animationState="hidden",this._changeDetectorRef.markForCheck(),this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId)}),this._onExit}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){queueMicrotask(()=>{this._onExit.next(),this._onExit.complete()})}_afterPortalAttached(){let A=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(r=>A.classList.add(r)):A.classList.add(i)),this._exposeToModals();let n=this._label.nativeElement,o="mdc-snackbar__label";n.classList.toggle(o,!n.querySelector(`.${o}`))}_exposeToModals(){let A=this._liveElementId,i=this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');for(let n=0;n{let i=A.getAttribute("aria-owns");if(i){let n=i.replace(this._liveElementId,"").trim();n.length>0?A.setAttribute("aria-owns",n):A.removeAttribute("aria-owns")}}),this._trackedModals.clear()}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{let A=this._elementRef.nativeElement.querySelector("[aria-hidden]"),i=this._elementRef.nativeElement.querySelector("[aria-live]");if(A&&i){let n=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&A.contains(document.activeElement)&&(n=document.activeElement),A.removeAttribute("aria-hidden"),i.appendChild(A),n?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-snack-bar-container"]],viewQuery:function(i,n){if(i&1&&(Te(fa,7),Te(E3A,7)),i&2){let o;XA(o=$A())&&(n._portalOutlet=o.first),XA(o=$A())&&(n._label=o.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container"],hostVars:1,hostBindings:function(i,n){i&1&&Hb("@state.done",function(r){return n.onAnimationEnd(r)}),i&2&&Tb("@state",n._animationState)},features:[lt],decls:6,vars:3,consts:[["label",""],[1,"mdc-snackbar__surface","mat-mdc-snackbar-surface"],[1,"mat-mdc-snack-bar-label"],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(i,n){i&1&&(S(0,"div",1)(1,"div",2,0)(3,"div",3),_A(4,Q3A,0,0,"ng-template",4),F(),JA(5,"div"),F()()),i&2&&(G(5),Ne("aria-live",n._live)("role",n._role)("id",n._liveElementId))},dependencies:[fa],styles:[".mat-mdc-snack-bar-container{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);margin:8px}.mat-mdc-snack-bar-handset .mat-mdc-snack-bar-container{width:100vw}.mat-mdc-snackbar-surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;padding-left:0;padding-right:8px}[dir=rtl] .mat-mdc-snackbar-surface{padding-right:0;padding-left:8px}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{min-width:344px;max-width:672px}.mat-mdc-snack-bar-handset .mat-mdc-snackbar-surface{width:100%;min-width:0}@media(forced-colors: active){.mat-mdc-snackbar-surface{outline:solid 1px}}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{color:var(--mdc-snackbar-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-snackbar-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mdc-snackbar-container-color, var(--mat-sys-inverse-surface))}.mdc-snackbar__label{width:100%;flex-grow:1;box-sizing:border-box;margin:0;padding:14px 8px 14px 16px}[dir=rtl] .mdc-snackbar__label{padding-left:8px;padding-right:16px}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-family:var(--mdc-snackbar-supporting-text-font, var(--mat-sys-body-medium-font));font-size:var(--mdc-snackbar-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mdc-snackbar-supporting-text-weight, var(--mat-sys-body-medium-weight));line-height:var(--mdc-snackbar-supporting-text-line-height, var(--mat-sys-body-medium-line-height))}.mat-mdc-snack-bar-actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled).mat-unthemed{color:var(--mat-snack-bar-button-color, var(--mat-sys-inverse-primary))}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){--mat-text-button-state-layer-color:currentColor;--mat-text-button-ripple-color:currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{opacity:.1}"],encapsulation:2,data:{animation:[w3A.snackBarState]}})}return t})();function y3A(){return new GB}var v3A=new dA("mat-snack-bar-default-options",{providedIn:"root",factory:y3A}),UP=(()=>{class t{_overlay=f(nr);_live=f(o8);_injector=f(Rt);_breakpointObserver=f(Z6);_parentSnackBar=f(t,{optional:!0,skipSelf:!0});_defaultConfig=f(v3A);_snackBarRefAtThisLevel=null;simpleSnackBarComponent=p3A;snackBarContainerComponent=D3A;handsetCssClass="mat-mdc-snack-bar-handset";get _openedSnackBarRef(){let A=this._parentSnackBar;return A?A._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(A){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=A:this._snackBarRefAtThisLevel=A}constructor(){}openFromComponent(A,i){return this._attach(A,i)}openFromTemplate(A,i){return this._attach(A,i)}open(A,i="",n){let o=rA(rA({},this._defaultConfig),n);return o.data={message:A,action:i},o.announcementMessage===A&&(o.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,o)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(A,i){let n=i&&i.viewContainerRef&&i.viewContainerRef.injector,o=Rt.create({parent:n||this._injector,providers:[{provide:GB,useValue:i}]}),r=new dl(this.snackBarContainerComponent,i.viewContainerRef,o),s=A.attach(r);return s.instance.snackBarConfig=i,s.instance}_attach(A,i){let n=rA(rA(rA({},new GB),this._defaultConfig),i),o=this._createOverlay(n),r=this._attachSnackBarContainer(o,n),s=new Uu(r,o);if(A instanceof wn){let a=new ys(A,null,{$implicit:n.data,snackBarRef:s});s.instance=r.attachTemplatePortal(a)}else{let a=this._createInjector(n,s),c=new dl(A,void 0,a),l=r.attachComponentPortal(c);s.instance=l.instance}return this._breakpointObserver.observe(_O.HandsetPortrait).pipe(St(o.detachments())).subscribe(a=>{o.overlayElement.classList.toggle(this.handsetCssClass,a.matches)}),n.announcementMessage&&r._onAnnounce.subscribe(()=>{this._live.announce(n.announcementMessage,n.politeness)}),this._animateSnackBar(s,n),this._openedSnackBarRef=s,this._openedSnackBarRef}_animateSnackBar(A,i){A.afterDismissed().subscribe(()=>{this._openedSnackBarRef==A&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{A.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):A.containerInstance.enter(),i.duration&&i.duration>0&&A.afterOpened().subscribe(()=>A._dismissAfter(i.duration))}_createOverlay(A){let i=new Bg;i.direction=A.direction;let n=this._overlay.position().global(),o=A.direction==="rtl",r=A.horizontalPosition==="left"||A.horizontalPosition==="start"&&!o||A.horizontalPosition==="end"&&o,s=!r&&A.horizontalPosition!=="center";return r?n.left("0"):s?n.right("0"):n.centerHorizontally(),A.verticalPosition==="top"?n.top("0"):n.bottom("0"),i.positionStrategy=n,this._overlay.create(i)}_createInjector(A,i){let n=A&&A.viewContainerRef&&A.viewContainerRef.injector;return Rt.create({parent:n||this._injector,providers:[{provide:Uu,useValue:i},{provide:GP,useValue:A.data}]})}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var b3A=(()=>{var t=import.meta.url;return function(e={}){var A,i=e,n,o,r=new Promise((Q,m)=>{n=Q,o=m});i.agerrMessages=[],i.stderrMessages=[],B=Q=>i.stderrMessages.push(Q);var s=Object.assign({},i),a="./this.program",c=(Q,m)=>{throw m},l="",I,C;typeof document<"u"&&document.currentScript&&(l=document.currentScript.src),t&&(l=t),l.startsWith("blob:")?l="":l=l.substr(0,l.replace(/[?#].*/,"").lastIndexOf("/")+1),I=Q=>fetch(Q,{credentials:"same-origin"}).then(m=>m.ok?m.arrayBuffer():Promise.reject(new Error(m.status+" : "+m.url)));var d=console.log.bind(console),B=console.error.bind(console);Object.assign(i,s),s=null;var E;function h(Q){for(var m=atob(Q),v=new Uint8Array(m.length),p=0;pQ.startsWith(Ze);function uA(){var Q="data:application/octet-stream;base64,AGFzbQEAAAABmQd0YAJ/fwF/YAF/AGABfwF/YAJ/fwBgA39/fwF/YAN/f38AYAR/f39/AX9gBX9/f39/AX9gBH9/f38AYAZ/f39/f38Bf2AFf39/f38AYAZ/f39/f38AYAAAYAABf2AIf39/f39/f38Bf2AHf39/f39/fwF/YAF8AXxgAn9/AXxgAX8BfGAHf39/f39/fwBgA39/fwF8YAd/f39/fHx/AGACf3wAYAR8fHx/AXxgAnx8AXxgA398fABgCX9/f39/f39/fwBgBX9+fn5+AGAEf39/fABgCn9/f39/f39/f38Bf2ADf35/AX5gBH9/fHwBf2ADfHx8AXxgA39/fgBgAAF8YAR/f39/AXxgA39/fABgAn9/AX5gBX9/f39+AX9gA39/fgF/YAR/fn5/AGAEf398fwBgAn9+AGACfH8BfGABfwF+YAR/f398AX9gAn9+AX9gAn98AX9gA3x8fwF8YAN/fH8AYAh/f39/f39/fwBgA39/fwF+YAV/f39/fAF/YAt/f39/f39/f39/fwF/YAV/f35/fwBgBH9/fH8Bf2AFf39/f3wAYAN/f3wBf2ACfX0BfWAGf3x8fHx8AXxgDH9/f39/f39/f39/fwF/YAV/f3x/fwF/YAd/f398fH9/AGAGf39/fH9/AGAGf39/f35/AX9gD39/f39/f39/f39/f39/fwBgCn9/f39/f39/f38AYAR/f39/AX5gBn98f39/fwF/YAd/f39/f35+AX9gBn9/f39+fgF/YAd/f39/fn9/AX9gBn9/f39/fgF/YAJ+fwBgBH9+f38Bf2AEf398fAF8YAV/f3x/fwBgCX9/f39/f39/fwF/YAZ/f398f38Bf2AEf398fABgBH5+fn4Bf2ACf30Bf2ACfn8Bf2AIf39/f3x8fH8AYAN/fX8AYAF8AX9gAn5+AX1gAn99AGAEf39/fgF+YAN/fn8Bf2AAAX5gBn99f39/fwBgBH9/fX8AYAN/fHwBf2AFf39/fH8AYAZ/f398fH8AYAZ8fHx/f38AYAJ+fgF8YAJ8fwF/YAR/fHx8AGAGf39/f398AGAEf3x/fwBgBnx8f3x8fwBgB398fHx8fHwAYAF/AX1gA39/fwF9YAN+fn4Bf2AEf35+fgBgBH98f38Bf2AKf3x/f39/f39/fwBgBX9/fHx8AGAFf39/f38BfGAD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JwALIAIgACABbDYCEEG4+AgoAgBBz+4DIAJBEGoQHhoQJwALFwBBAUF/IAAgASABEDsiABCjAiAARhsLJQEBfyAAKAIsIgBBAEGAASAAKAIAEQQAIgAEfyAAKAIQBUEACws0AQF/AkAgACABEOUBIgFFDQAgACgCLCIAIAFBCCAAKAIAEQQAIgBFDQAgACgCECECCyACC24BAX8jAEEgayIDJAAgA0IANwMYIANCADcDECADIAI2AgwCQCADQRBqIAEgAhC5CyIBQQBIBEAgA0GAjAsoAgAQczYCAEG5hAQgAxA2DAELIAAgA0EQaiIAEKQFIAEQowIaIAAQZQsgA0EgaiQACyQBAX8jAEEQayIDJAAgAyACNgIMIAAgASACEP0LIANBEGokAAszAQF/IAIEQCAAIQMDQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQQFrIgINAAsLIAALpAEBA38jAEEQayICJAACQCAAEC8iAyAAKAIAQQNxIAApAwgQmAoiAQR/IAEoAhgFQQALIgENACADKAJMIgEoAgAoAgwiAwRAIAEoAgggACgCAEEDcSAAKQMIIAMRJwAiAQ0BC0EAIQEgACgCAEEDcUECRg0AIAIgACkDCDcDCCACQSU2AgBBoOAKIQFBoOAKQSBBjBggAhChARoLIAJBEGokACABCw8AIAAgASACIANBABDEDAtDACAAIAAgAaUgAb1C////////////AINCgICAgICAgPj/AFYbIAEgAL1C////////////AINCgICAgICAgPj/AFgbCxUAIAAQpwEEQCAAKAIEDwsgABCjAwsUACAAECgEQCAALQAPDwsgACgCBAtVAAJAIAEEQCACIAEoAghPDQEgACABKAIAIAEoAgQgAmogASgCDHBByABsakHIABAfGg8LQfrUAUGzgQFBPUHmJBAAAAtBjbcDQbOBAUE9QeYkEAAACyYAIAAgARDMByIBRQRAQQAPCyAAEOsBKAIMIAEoAhBBAnRqKAIACwcAQQEQBwALLgAgAC0ADyIAQQFqQf8BcUERTwRAQdvAA0GaggFByQBBwpwBEAAACyAAQf8BRwtNAAJAIAAEQCABIAAoAghPDQEgACgCACAAKAIEIAFqIAAoAgxwQcgAbGoPC0H61AFBs4EBQT1BkSkQAAALQY23A0GzgQFBPUGRKRAA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AgALQcCkCyEBIAJBCGoiAEHApAtBGBDWAUUNAkHYpAshASAAQdikC0EYENYBRQ0CQRgQSCIBRQ0BCyABIAIpAgg3AgAgASACKQIYNwIQIAEgAikCEDcCCAwBC0EAIQELIAJBIGokAEHkpgtBAToAAEHgpgsgATYCACABCwUAEAgACyAAIAAEQCAAKAIUEBggACgCGBAYIAAoAhwQGCAAEBgLCwkAIABBABDxBgu/CgIFfw9+IwBB4ABrIgUkACAEQv///////z+DIQwgAiAEhUKAgICAgICAgIB/gyEKIAJC////////P4MiDUIgiCEOIARCMIinQf//AXEhBwJAAkAgAkIwiKdB//8BcSIJQf//AWtBgoB+TwRAIAdB//8Ba0GBgH5LDQELIAFQIAJC////////////AIMiC0KAgICAgIDA//8AVCALQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQoMAgsgA1AgBEL///////////8AgyICQoCAgICAgMD//wBUIAJCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhCiADIQEMAgsgASALQoCAgICAgMD//wCFhFAEQCACIAOEUARAQoCAgICAgOD//wAhCkIAIQEMAwsgCkKAgICAgIDA//8AhCEKQgAhAQwCCyADIAJCgICAgICAwP//AIWEUARAIAEgC4RCACEBUARAQoCAgICAgOD//wAhCgwDCyAKQoCAgICAgMD//wCEIQoMAgsgASALhFAEQEIAIQEMAgsgAiADhFAEQEIAIQEMAgsgC0L///////8/WARAIAVB0ABqIAEgDSABIA0gDVAiBht5IAZBBnStfKciBkEPaxC1AUEQIAZrIQYgBSkDWCINQiCIIQ4gBSkDUCEBCyACQv///////z9WDQAgBUFAayADIAwgAyAMIAxQIggbeSAIQQZ0rXynIghBD2sQtQEgBiAIa0EQaiEGIAUpA0ghDCAFKQNAIQMLIANCD4YiC0KAgP7/D4MiAiABQiCIIgR+IhAgC0IgiCITIAFC/////w+DIgF+fCIPQiCGIhEgASACfnwiCyARVK0gAiANQv////8PgyINfiIVIAQgE358IhEgDEIPhiISIANCMYiEQv////8PgyIDIAF+fCIUIA8gEFStQiCGIA9CIIiEfCIPIAIgDkKAgASEIgx+IhYg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AXJFBEAgABCjAxoLIAJBEGokAAtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAvOCQIEfwR+IwBB8ABrIgYkACAEQv///////////wCDIQkCQAJAIAFQIgUgAkL///////////8AgyIKQoCAgICAgMD//wB9QoCAgICAgMCAgH9UIApQG0UEQCADQgBSIAlCgICAgICAwP//AH0iC0KAgICAgIDAgIB/ViALQoCAgICAgMCAgH9RGw0BCyAFIApCgICAgICAwP//AFQgCkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEEIAEhAwwCCyADUCAJQoCAgICAgMD//wBUIAlCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhBAwCCyABIApCgICAgICAwP//AIWEUARAQoCAgICAgOD//wAgAiABIAOFIAIgBIVCgICAgICAgICAf4WEUCIFGyEEQgAgASAFGyEDDAILIAMgCUKAgICAgIDA//8AhYRQDQEgASAKhFAEQCADIAmEQgBSDQIgASADgyEDIAIgBIMhBAwCCyADIAmEUEUNACABIQMgAiEEDAELIAMgASABIANUIAkgClYgCSAKURsiCBshCiAEIAIgCBsiDEL///////8/gyEJIAIgBCAIGyILQjCIp0H//wFxIQcgDEIwiKdB//8BcSIFRQRAIAZB4ABqIAogCSAKIAkgCVAiBRt5IAVBBnStfKciBUEPaxC1ASAGKQNoIQkgBikDYCEKQRAgBWshBQsgASADIAgbIQMgC0L///////8/gyEBIAcEfiABBSAGQdAAaiADIAEgAyABIAFQIgcbeSAHQQZ0rXynIgdBD2sQtQFBECAHayEHIAYpA1AhAyAGKQNYC0IDhiADQj2IhEKAgICAgICABIQhASAJQgOGIApCPYiEIAIgBIUhBAJ+IANCA4YiAiAFIAdGDQAaIAUgB2siB0H/AEsEQEIAIQFCAQwBCyAGQUBrIAIgAUGAASAHaxC1ASAGQTBqIAIgASAHEKUDIAYpAzghASAGKQMwIAYpA0AgBikDSIRCAFKthAshCUKAgICAgICABIQhCyAKQgOGIQoCQCAEQgBTBEBCACEDQgAhBCAJIAqFIAEgC4WEUA0CIAogCX0hAiALIAF9IAkgClatfSIEQv////////8DVg0BIAZBIGogAiAEIAIgBCAEUCIHG3kgB0EGdK18p0EMayIHELUBIAUgB2shBSAGKQMoIQQgBikDICECDAELIAkgCnwiAiAJVK0gASALfHwiBEKAgICAgICACINQDQAgCUIBgyAEQj+GIAJCAYiEhCECIAVBAWohBSAEQgGIIQQLIAxCgICAgICAgICAf4MhAyAFQf//AU4EQCADQoCAgICAgMD//wCEIQRCACEDDAELQQAhBwJAIAVBAEoEQCAFIQcMAQsgBkEQaiACIAQgBUH/AGoQtQEgBiACIARBASAFaxClAyAGKQMAIAYpAxAgBikDGIRCAFKthCECIAYpAwghBAsgBEI9hiACQgOIhCEBIARCA4hC////////P4MgB61CMIaEIAOEIQQCQAJAIAKnQQdxIgVBBEcEQCAEIAEgASAFQQRLrXwiA1atfCEEDAELIAQgASABIAFCAYN8IgNWrXwhBAwBCyAFRQ0BCwsgACADNwMAIAAgBDcDCCAGQfAAaiQAC2sBAX8jAEGAAmsiBSQAIARBgMAEcSACIANMckUEQCAFIAEgAiADayIDQYACIANBgAJJIgEbEDMaIAFFBEADQCAAIAVBgAIQqAEgA0GAAmsiA0H/AUsNAAsLIAAgBSADEKgBCyAFQYACaiQAC1kBAX8CQAJAAkACQCABKAIAIgJBA3EEfyACBSAAIAEoAkRHDQQgASgCAAtBA3FBAWsOAwABAQILIAAgARDXBA8LIAAgARCgBg8LIAEQugEPC0G2/gBBABA2C14BAX8jAEEgayICJAAgAiAAKAIANgIIIAIgACgCBDYCDCACIAAoAgg2AhAgAEIANwIEIAIgACsDEDkDGCAAIAEQogEgASACQQhqIgAQogEgAEEEchDZASACQSBqJAALxQYBBH8gACgCRCEDIAAQeiEBA0AgAQRAIAEQeSABELoBIQEMAQsLIAAQGyEBA0AgAQRAIAAgARAcIAAgARDXBCEBDAELCyAAKAJMQSxqEI4KIAAoAkxBOGoQjgogACAAEPUHAkACQAJAAkACQAJAIAAoAjAiAQRAIAEQtwMNAQJAIABBMGoiAQRAIAEoAgAiAgR/IAIoAgAQGCABKAIABUEACxAYIAFBADYCAAwB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DAseACAARQRAQfrUAUH6/wBBFUGLjQEQAAALIAAoAggLDAAgAEGFnQVBABBtCz0BAn8gAEEAIABBAEobIQADQCAAIARGRQRAIAMgBEEDdCIFaiACIAEgBWorAwCiOQMAIARBAWohBAwBCwsLPQAgASgCCCACTQRAQY23A0GzgQFBPUHmJBAAAAsgACABKAIAIAEoAgQgAmogASgCDHBByABsakHIABAfGgs7AQJ/IwBB0ABrIgEkACABQShqIgJBAEEoEDMaIAAgASACQSgQHyIBEOEPIAAoAgggAUHQAGokAEEBawuhAQECfwJAAkAgARA7IgJFDQAgABBHIAAQJGsgAkkEQCAAIAIQ8QILIAAQJCEDIAAQKARAIAAgA2ogASACEB8aIAJBgAJPDQIgACAALQAPIAJqOgAPIAAQJEEQSQ0BQbi7A0GaggFBhQJBpe4AEAAACyAAKAIAIANqIAEgAhAfGiAAIAAoAgQgAmo2AgQLDwtB6c8BQZqCAUGDAkGl7gAQAAALZQEBfwJAIAErAwAgASsDEGNFDQAgASsDCCABKwMYY0UNACAAIAAoAlAiAkEBajYCUCAAKAJUIAJBBXRqIgAgASkDGDcDGCAAIAEpAxA3AxAgACABKQMINwMIIAAgASkDADcDAAsLBwAgABBRGgsPACAAIAAoAgAoAgwRAgALBwAgABAjRQsRACAAIAEgASgCACgCHBEDAAsRACAAIAEgASgCACgCGBEDAAsuACAAIAAoAghBgICAgHhxIAFB/////wdxcjYCCCAAIAAoAghBgICAgHhyNgIICwkAIAAgATYCAAsLACAAIAEgAhCrBQsTACAAIAEgAiAAKAIAKAIMEQQACyMBAX8gAkEATgR/IAAoAgggAkECdGooAgAgAXFBAEcFQQALCxMAIABBIHIgACAAQcEAa0EaSRsLggEBAn8gAkUEQEEADwsgAC0AACIDBH8CQANAIAEtAAAiBEUNASACQQFrIgJFDQECQCADIARGDQAgAxD7ASABLQAAEPsBRg0AIAAtAAAhAwwCCyABQQFqIQEgAC0AASEDIABBAWohACADDQALQQAhAwsgAwVBAAsQ+wEgAS0AABD7AWsLPQEDfyMAQRBrIgEkACABIAA2AgwgASgCDCICKAIAIgMEQCACIAM2AgQgAigCCBogAxAYCyABQRBqJAAg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A0AgAUUNAiABQQAgAiADIAQQrwIgARB5IQEMAAsACyAAEBshAyABQQFHIQYDQCADRQ0BAkAgBkUEQCADIAIgBSAEEDUaDAELIAAgAxAtIQEDQCABRQ0BIAEgAiAFIAQQNRogACABEDAhAQwACwALIAAgAxAcIQMMAAsACwsRACAAQQRBEEGAgICAARD7BgsxAQF/IAAoAgQiASgCICsDECABKwMYoCAAKwMIoSAAKAIAIgAoAiArAxAgACsDGKChC1ABAX9BCCEFAkACQAJAAkAgA0EBaw4EAwACAQILQRAhBQwCC0EEIQUMAQtBACEFCyAAIAEgAyAFIAQQgA4hACACQQBKBEAgACACEP8NCyAACy4BAn8gABAbIQEDQCABBEAgACABQQBBARCXCCACaiECIAAgARAcIQEMAQsLIAILpAEBA39BwAAQigYiAiACKAIAQXxxQQFyNgIAIAJBwAIQigYiATYCECACIAAQNzYCGCABQoCAgICAgID4PzcDYCABQQE6AKwBIAFCgICAgICAgPg/NwNYIAFBATYC7AEgAUKAgICAgICA+D83A1AgAUEANgLEAUEFQQQQzQIhAyABQQA2AswBIAEgAzYCwAEgAUEFQQQQzQI2AsgBIAAgAhDCCCACCxMAIAAgASgCABDiDiABQgA3AgAL/QMBB38gBUEYQRQgAC0AABtqKAIAIAAQtQMiBigCKCAAKAIoIAEoAigQkgYgBEEAIARBAEobQQFqIQxBASELA0AgCyAMRkUEQCAAIgQgAhC0AyEAIAEiByADELQDIQECfyAELQAARQRAIAUoAhggABC1AyEJIAcoAighByAEKAIoIQggBigCKCEGIAArAwggBCsDEGEEQCAEKAIgIAYgCCAHELYDIQYgCSgCKCEEQQFGBEAgACABIAYbIQcgASAAIAYbIQggCQwDCyABIAAgBhshByAAIAEgBhshCCAJDAILIAQoAiQgBiAIIAcQtgMhBiAJKAIoIQRBAUYEQCABIAAgBhshByAAIAEgBhshCCAJDAILIAAgASAGGyEHIAEgACAGGyEIIAkMAQsgBSgCFCAAELUDIQkgBygCKCEHIAQoAighCCAGKAIoIQYCfyAAKwMIIAQrAxBhBEAgBCgCICAGIAggBxC2AyEGIAkoAighBEECRgRAIAAgASAGGyEIIAEgACAGGwwC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BCsDAKAhAiAEQQhqIQQMAQsLIAIgALejIQIDQCAABEAgASABKwMAIAKhOQMAIABBAWshACABQQhqIQEMAQsLC3oBAn8gASAAIAMoAgARAAAhBSACIAEgAygCABEAACEEAkAgBUUEQCAERQRADwsgASACELkBIAEgACADKAIAEQAARQ0BIAAgARC5AQwBCyAEBEAgACACELkBDAELIAAgARC5ASACIAEgAygCABEAAEUNACABIAIQuQELC5MDAQt/IAEQOyECIwBBEGsiCiQAAkAgCkEIaiAAELEFIgwtAABBAUcNACAAIAAoAgBBDGsoAgBqIgUoAhghAyABIAJqIgsgASAFKAIEQbABcUEgRhshCSAFKAJMIgJBf0YEQCMAQRBrIgQkACAEQQxqIgcgBRBQIAdBoKgLEKUCIgJBICACKAIAKAIcEQAAIQIgBxBNIARBEGokACAFIAI2AkwLIALAIQdBACECIwBBEGsiCCQAAkAgA0UNACAFKAIMIQYgCSABayIEQQBKBEAgAyABIAQgAygCACgCMBEEACAERw0BCyAGIAsgAWsiAWtBACABIAZIGyIGQQBKBEAgCEEEaiIEIAYgBxDiCiADIAgoAgQgBCAILAAPQQBIGyAGIAMoAgAoAjARBAAgBBA0GiAGRw0BCyALIAlrIgFBAEoEQCADIAkgASADKAIAKAIwEQQAIAFHDQELIAVBADYCDCADIQILIAhBEGokACACDQAgACAAKAIAQQxrKAIAakEFEO8NCyAMELAFIApBEGokACAAC6ULAQ9/AkAgAEUNAAJAAkACQAJAAkACQAJAIAAoAiBFBEBBASEDIAAtACQiAkECcQ0HIAEEQCACQQFxDQgLIAAoAgAgACgCBEcNCEEAIQMgABCYCCINRQ0HQQAhAiAAKAIAIgRBACAEQQBKGyEPIA0oAhghDCANKAIUIQkgACgCGCEQIAAoAhQhCiAEQQQQSiEHA0AgAiAPRkUEQCAHIAJBAnRqQX82AgAgAkEBaiECDAELCwJAQQggACgCECABG0EBaw4IAAQHAwcHBwIHC0F/IAQgBEEASBtBAWohBCANKAIcIQ4gACgCHCELQQAhAgNAIAIgBEYEQANAIAUgD0YNByAKIAVBAnQiA2ooAgAiBCAKIAVBAWoiBUECdCIGaigCACICIAIgBEgbIQggBCECA0Ag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FCAGQQA2AmAgBkIANwJYIAZCADcCcCAGQQA2AnggBkIANwJEIAZBADoAQCAGIAI2AjggBkEANgIoIAZBADYCPCAGIAI2AkwgBkIANwKMASAGQQA6AIgBIAZCATcCgAEgBiACNgKUASAGQgA3ApgBIAZBADoAoAEgBkIANwKkASAGQgA3AqwBIAZCADcCtAELIAFBADYCkAMgASAGNgL8AiABQQA2AogDIAFBADYCyAIgAUEANgLAAiABQQA2ArgCIAFCADcD6AMgAUEhOgDwAyABQQA2AoACIAFBADYCiAEgAUEAOwH0ASABQgA3ArgDIAFBADYC8AEgAUIANwKkAyABIAI2AswDIAFCADcCwAMgAUEANgLIAyABQQA6AKwDIAFBADYC4AMgAUIANwLYAyABQgA3AtADIAEgAjYC5AMgAUHPATYCoAIgAUGbATYCiAIgAUEANgKcAiABQoCAgIAQNwKUAiAEBEBBACEGA0AgBCAGaiAGQQFqIQYtAAANAAsgBiABKAIMEQIAIgIEQCACIAQgBhAfGgsgASACNgLwAQsgAUEANgKAAyABQaABaiABQZwBakEAENoGGiABQgA3AwAgAUFAa0EAQcAAEDMaIAFCADcCjAEgAUEANgKEASABQgA3ApQBIAFCADcDsAMgAUEANgI0IAFBAToAMCABQQA2AiwgAUIANwIkIAFBADYCxAIgAUEANgK8AiABQgA3AqQCIAFCADcCrAIgAUEANgK0AiABIAEoAggiAjYCHCABIAI2AhggASABNgKAASABQdQCakEAQSYQMxogAUEANgKYAyABQQA2AowDIAFBADYChAMgAUEANgLQAiABQQE6AMwCIAFBADYChAIgAUEAOgDABCABQgA3AvQDIAFCADcD+AEgAUIANwOQBCABQgA3AoQEIAFBADsBgAQgAUIANwOYBCABQgA3A6AEIAFCADcDqARBqdoBENUGIQIgAUIANwOwBCABQoCAgAQ3A6gEIAFBgICglgQ2AqQEIAEgAjYCoAQgAUIANwO4BCABQYLaARDVBjYCvAQCQCAERQ0AIAEoAvABDQAgARDnCQwCCyABQZCLCDYC7AEgAQwDCyABQQA2AvwCIAEoAjggASgCFBEBACABKAKgAyABKAIUEQEADAELQQAMAQsgASABKAIUEQEAQQALIgE2AgAgByAFKAI0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ABCyASECIAAoAhAiASAAKAIUQQJ0aiEDA0AgASADTw0CIAFBADYCACABQQRqIQEMAAsACyAAKAIQIQIgAEEANgIQDAELIAAoAgghAQsgAEEANgIYIABBADYCDCAAIAFB/19xNgIIIAILCAAgABCbARoL8gECA38BfCMAQSBrIgIkACAAQSxqIgQQ7wQoAgAhAyACIAEpAxg3AxggAiABKQMQNwMQIAIgASkDCDcDCCACIAEpAwA3AwACQCADRQ0AAkAgAigCBA0AIAMoAgQiAUUNACACIAE2AgQLAkAgAisDEEQAAAAAAAAAAGNFDQAgAysDECIFRAAAAAAAAAAAZkUNACACIAU5AxALAkAgAigCAA0AIAMoAgAiAUUNACACIAE2AgALIAMoAhhB/wBxIgFFDQAgAiACKAIYIAFyNgIYCyAEIAAoAjwoAogBIgAgAkEBIAAoAgARBAAQuQkgAkEgaiQAC28BAX8jAEEgayIDJAAgA0IANwMYIANCADcDCCADQoCAgICAgID4v383AxAgAyACNgIYIANCADcDACABBEAgACADQbCgCkEDIAFBpuABEI8ECyAAKAI8KAKIASIAIANBASAAKAIAEQQAIANBIGokAAsLACAAQeDUBBDXCQsTACAAKAIAQTRqIAEgARA7EOkJC0UAAkAgABAoBEAgABAkQQ9GDQELIABBABDHAwsCQCAAECgEQCAAQQA6AA8MAQsgAEEANgIECyAAECgEfyAABSAAKAIACwtaAQJ/IwBBEGsiAyQAIAMgATYCDCADIANBC2oiBDYCBCAAIANBDGoiASACIANBBGogASAAKAI4EQcAGiADKAIEIQAgAywACyEBIANBEGokAEF/IAEgACAERhsLpQICA38BfiMAQYABayIEJAAgASgCACIGEC8oAhAoAnQgBCACOQM4IAQgAzkDMEEDcSIFBEAgBCAEKQM4NwMYIAQgBCkDMDcDECAEQUBrIARBEGogBUHaAGwQvwogBCAEKQNINwM4IAQgBCkDQDcDMAsgBEIANwNYIARCADcDUCAEIAQpAzgiBzcDaCAEIAc3A3ggBCAEKQMwIgc3A2AgBEIANwNIIARCADcDQCAEIAc3A3AgASAGKAIQKAIIKAIEKAIMIARBQGtBARCMBSAFBEAgBCAEKQNINwMIIAQgBCkDQDcDACAEQSBqIAQg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IwBBEGsiASQAQejgCigCAAJAIABFDQAgABCpASICDQAgASAAEDtBAWo2AgBBuPgIKAIAQc/uAyABEB4aECcAC0Ho4AogAjYCACABQRBqJAALDwAgACAAKAIAKAIkEQIACxEAIAAgASABKAIAKAIgEQMACxEAIAAgASABKAIAKAIsEQMACwwAIABBgoaAIDYAAAsRACAAEEIgABAjQQJ0ahCXBwsNACAAKAIAIAEoAgBHCw4AIAAQQiAAECNqEJcHCxYAIAAgASACIAMgACgCACgCIBEGABoLDgAgACgCCEH/////B3EL6QEBBH8jAEEQayIEJAAgABBHIgMgAWoiASADQQF0QYAIIAMbIgIgASACSxshASAAECQhBQJAAkACQCAALQAPQf8BRgRAIANBf0YNAiAAKAIAIQIgAUUEQCACEBhBACECDAILIAIgARA5IgJFDQMgASADTQ0BIAIgA2pBACABIANrEDMaDAELIAFBARAZIgIgACAFEB8aIAAgBTYCBAsgAEH/AToADyAAIAE2AgggACACNgIAIARBEGokAA8LQdvEA0HpggFBzQBB9LYBEAAACyAEIAE2AgBBuPgIKAIAQc/uAyAEEB4aECcAC4ABAQJ/IwBBEGsiBCQAIwBBIGsiAyQAIANBGGogASABIAJBAnRqEK0FIANBEGogAygCGCADKAIcIAAQ3gsgAyABIAMoAhAQrAU2AgwgAyAAIAMoAhQQogM2AgggBEEIaiADQQxqIANBCGoQ+AEgA0EgaiQAIAQoAgwaIARBEGokAAtFAQF/IwBBEGsiBSQAIAUgASACIAMgBEKAgICAgICAgIB/hRC2ASAFKQMAIQEgACAFKQMINwMIIAAgATcDACAFQRBqJAALtQEBA38jAEEgayIDJAACQAJAIAEsAAAiAgRAIAEtAAENAQsgACACELsFIQEMAQsgA0EAQSAQMxogAS0AACICBEADQCADIAJBA3ZBHHFqIgQgBCgCAEEBIAJ0cjYCACABLQABIQIgAUEBaiEBIAINAAsLIAAiAS0AACICRQ0AA0AgAyACQQN2QRxxaigCACACdkEBcQ0BIAEtAAEhAiABQQFqIQEgAg0ACwsgA0EgaiQAIAEgAGsLqAEAAkAgAUGACE4EQCAARAAAAAAAAOB/oiEAIAFB/w9JBEAgAUH/B2shAQwCCyAARAAA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AQsLIANBAWohAyABIARqIQQMAQsLIAULHAAgABDHDiAAKAIAEBggAEIANwIIIABCADcCAAtBAQF/AkAgACsDACABKwMQZA0AIAErAwAgACsDEGQNACAAKwMIIAErAxhkDQAgASsDCCAAKwMYZA0AQQEhAgsgAgvCAQEIfCABKwMAIgMgASsDECIEZARAIAAgAikDADcDACAAIAIpAxg3AxggACACKQMQNwMQIAAgAikDCDcDCA8LIAIrAwAiBSACKwMQIgZkBEAgACABKQMANwMAIAAgASkDGDcDGCAAIAEpAxA3AxAgACABKQMINwMIDwsgAisDCCEHIAErAwghCCACKwMYIQkgASsDGCEKIAAgBCAGECo5AxAgACADIAUQKjkDACAAIAogCRAqOQMYIAAgCCAHECo5AwgLrgEDAn4DfwF8IwBBEGsiBCQAAkACQCAAKwMAIAArAxBkDQBCASEBA0AgA0ECRg0CAn4gACADQQN0aiIFKwMQIAUrAwChIgZEAAAAAAAA8ENjIAZEAAAAAAAAAABmcQRAIAaxDAELQgALIgJQDQEgBCACQgAgAUIAEKABIAQpAwhQBEAgA0EBaiEDIAEgAn4hAQwBCwtBgbgEQQAQNhAnAAtCACEBCyAEQRBqJAAgAQsIAEEBIAAQSgvBAQEDfwJAAkAgACgCECICKAKwASIEIAFHBEAgACABKAIQIgMoArABRw0BC0G+mQRBABArDAELIARFBEAgAiABNgKwASACKAKsASIAIAMoAqwBSgRAIAMgADYCrAELA0AgAUUNAiABKAIQIgAgAC8BqAEgAi8BqAFqOwGoASAAIAAvAZoBIAIvAZoBajsBmgEgACAAKAKcASACKAKcAWo2ApwBIAAoArABIQEMAAsAC0Gg1AFB0L4BQaYCQZkQEAAACwsTACAAIAFBrCVB7gVBgsABEJwEC0QAQez/CigCACABSwRAIABB5P8KKAIAQej/CigCACABakHw/wooAgBwQShsakEoEB8aDwtBjbcDQb+8AUEwQZIlEAAAC4QBAQJ/IAAgACgCBCIEQQFqNgIEIAAoAhQgBEEYbGoiACABKAIgNgIMIAIoAiAhBSAAQQA2AgggACADOQMAIAAgBTYCECABKAIcIAEuARAiBUECdGogBDYCACABIAVBAWo7ARAgAigCHCACLgEQIgFBAnRq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3AMgAUcNAQsgBBC6CwwBC0EAIQALIAdBEGokACAAC6gBAQN/IwBBEGsiByQAAkACQCAARQ0AIAQoAgwhBiACIAFrIghBAEoEQCAAIAEgCBDcAyAIRw0BCyAGIAMgAWsiAWtBACABIAZIGyIBQQBKBEAgACAHQQRqIAEgBRC7CyIFEEIgARDcAyEGIAUQNBogASAGRw0BCyADIAJrIgFBAEoEQCAAIAIgARDcAyABRw0BCyAEELoLDAELQQAhAAsgB0EQaiQAIAALDgAgACABKAIANgIAIAALCgAgACABIABragsLACAALQALQf8AcQsIACAAQf8BcQtQAQF+AkAgA0HAAHEEQCACIANBQGqtiCEBQgAhAgwBCyADRQ0AIAJBwAAgA2uthiABIAOtIgSIhCEBIAIgBIghAgsgACABNwMAIAAgAjcDCAvbAQIBfwJ+QQEhBAJAIABCAFIgAUL///////////8AgyIFQoCAgICAgMD//wBWIAVCgICAgICAwP//AFEbDQAgAkIAUiADQv///////////wCDIgZCgICAgICAwP//AFYgBkKAgICAgIDA//8AURsNACAAIAKEIAUgBoSEUARAQQAPCyABIAODQgBZBEAgACACVCABIANTIAEgA1EbBEBBfw8LIAAgAoUgASADhYRCAFIPCyAAIAJWIAEgA1UgASADURsEQEF/DwsgACAChSABIAOFhEIAUiEECyAECxYAIABFBEBBAA8LQYCMCyAANgIAQX8LCwAgACABIAIRAAALZAECfyMAQRBrIgMkAAJAIABBABCuAiIARQ0AAkACQAJAAkAgAQ4EAAECAgMLIAAoAhAhAgwDCyAAKAIIIQIMAgsgACgCDCECDAELIAMgATYCAEHCyQQgAxA2CyADQRBqJAAgAgukAQIDfwJ8IwBBEGsiAiQAIAAQvAIgACgCECIBKwMYRAAAAAAAAFJAoyEEIAErAxBEAAAAAAAAUkCjIQUgABAbIQEDQCABBEAgASgCECgClAEiAyADKwMAIAWhOQMAIAMgAysDCCAEoTkDCCAAIAEQHCEBDAELCyACIAAoAhAiASkDGDcDCCACIAEpAxA3AwAgACACEP0MIABBARDSBSACQRBqJAALDwAgAUEBaiAAIAAQrwGfC6gBAgR/AnwgASgCACECIABBBGoiAyEAIAMhAQNAIAAo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EBggBxAYQQAhCAwBCyACIAEoAgQ2AgBB0foDIAIQKwsgCCANaiENDAELIAAQOEEATgRAQZSBCyAAEDg2AgBBmIELAn9BlIELKAIAQQRquJ8iE5lEAAAAAAAA4EFjBEAgE6oMAQtBgICAgHgLNgIAQciBC0GUgQsoAgBB4AAQGTYCACAAEBshAyACQbADaiAAEPoCIAIrA7ADIRQCfyACLQDAA0UEQCACKwO4AyETQdQDDAELIAIrA7gDRAAAAAAAAFJAoyETIBREAAAAAAAAUkCjIRRB1QMLIQcCQANAIAhBlIELKAIAIgRPDQFByIELKAIAIAhB4ABsaiIEIAMoAhAoApQBIgYrAwA5AwggBCAGKwMIOQMQIARBKGogAyAUIBMgBxEfAEUEQCAEQQE2AhwgBCAINgIYIARCADcDWCAEIAM2AgAgCEEBaiEIIAAgAxAcIQMMAQsLQciBCygCABAYQciBC0EANgIAEJQNDAILQQAhCCACQbADakEAQdAAEDMaIAQEQEHIgQsoAgAhB0T////////vfyETRP///////+//IRVE////////7/8hFkT////////vfyEXA0AgBCAIRgRARJqZmZmZmak/IRQCQCAAQbPoABAmIgBFDQAgAC0AAEUNACAAEKoCIRQLQZCCCyAWIBYgF6EgFKIiGaAiFjkDAEGYggsgFyAZoSIXOQMAQYiCCyATIBUgE6EgFKIiFKEiEzkDAEGAggsgFSAUoCIUOQMAIAIgFzkD2AMgAiAWOQPoAyACIBc5A7gDIAIgFDkD0AMgAiAWOQPIAyACIBM5A/ADIAIgFDkDwAMgAiATOQPgAyABKAIAIQBBABDoByEHAkACQCAAQQJGBEAgB0UNAiACQbADahCTDUEAIQQDQEHIgQsoAgAhAUGUgQsoAgAhB0EAIQMDQCADIAdHBEAgASADQeAAbGoiACAAKwMIRM3MzMzMzPA/ojkDCCAAIAArAxBEzczMzMzM8D+iOQMQIANBAWohAwwBCwsgBEEBaiIEEOgHDQALQYzdCi0AAEUNASACIAQ2AhBBuPgIKAIAQcbiAyACQRBqEB4aDAELIAdFDQEgAkGwA2oQkw1BACEIQQAhAwNAIAJBsANqIgEhACAIBEAgABCRDQtBqIELQv////////93NwMAQaCBC0L/////////9/8ANwMAAkBBlIELKAIAIgYEQCAAKAIAIQRE////////738hE0T////////v/yEUQQAhAANAIAAgBkYNAkGggQsgEyAEIABBAnRqKAIAIggrAwAQKiITOQMAQaiBCyAUIAgrAwAQIiIUOQMAIABBAWohAAwACwALQZmWA0GrvAFB0QFBiZgBEAAAC0GwgQsgBCgCACsDCDkDACAEIAZBAnRqQQRrKAIAKwMIIRVBwIELIBQgE6E5AwBBuIELIBU5AwBEAAAAAAAAAAAhE0QAAAAAAAAAACEUIwBBEGsiCCQAEKANEKENQQFBEBAZIgRBmIELKAIAQQJ0IgA2AgQgBCAAQSgQGTYCAEHsgQsgASIAENUFNgIAIwBBIGsiBiQAQaCCC0EoENsFQbCCC0GYgQsoAgAiCUEBdCIBNgIAAkACQAJAQayCCygCACIFRQRAIAFBgICAgARPDQFBACAJIAFBBBBDIgUbDQJBrIILIAU2AgALIAFBACABQQBKGyEJQQAhAQNAIAEgCUcEQCAFIAFBAnRqQQA2AgAgAUEBaiEBDAELC0G0ggtBAEEAELkENgIAQbiCC0EAQQAQuQQ2AgBBtIILKAIAQQA2AgBBtIILKAIAIgFBuIILKAIAIgU2AgQgBSABNgIAQbiCCygCAEEANgIEQayCCygCACIFIAE2AgAgBUGwggsoAgBBAnRqQQRrQbiCCygCADYCACAGQSBqJAAMAgsgBkEENgIEIAYgATYCAEG4+AgoAgBBgO8DIAYQHhoQJwALIAYgCUEDdDYCEEG4+AgoAgBBz+4DIAZBEGoQHhoQJwALIAAQ1QUhBgNAIAQQ7QdFBEAgBCgCDCEBIAQoAgAhCQNAIAkgAUEobGooAiAiBUUEQCAEIAFBAWoiATYCDAwBCwsgCCAFKAIUKwMAOQMAIAggBSsDGDkDCCAIKwMAIRQgCCsDCCETCwJAIAZFDQACQCAEEO0HDQAgBisDCCIVIBNjDQAgEyAVYg0BIAYrAwAgFGNFDQELAkACfyAGKwMAQaCBCysDAKFBwIELKwMAo0GwggsoAgAiAbeiIhWZRAAAAAAAAOBBYwRAIBWqDAELQYCAgIB4CyIFQQAgBUEAShsiBSABQQFrIAEgBUobIgUQ6gciAQ0AQQEhCQNAIAUgCWsQ6gciAQ0BIAUgCWogCUEBaiEJEOoHIgFFDQALC0G4ggsoAgAhCQJAAkBBtIILKAIAIgogAUcEQCABIAlGDQEgASAGEOwHRQ0BCwNAIAkgASgCBCIBRwRAIAEgBhDsBw0BCwsgASgCACEBDAELA0AgASgCACIBIApGDQEgASAGEOwHRQ0ACwsCQCAFQQBMDQAgBUGwggsoAgBBAWtODQBBrIILKAIAIAVBAnRqIgkoAgAiBQRAIAUgBSgCDEEBazYCDAsgCSABNgIAIAEgASgCDEEBajYCDAsgASgCBCEKIAEgARCaDSAGEJ8NIgxBABC5BCIFEOsHIAEgBRDWBSIJBEAgBCABEO4HIAQgASAJIAkgBhDaBRDXBQsgBSAMQQEQuQQiARDrByABIAoQ1gUiBQRAIAQgASAFIAUgBhDaBRDXBQsgABDVBSEGDAELIAQQ7QdFBEAgBCgCACAEKAIMQShsaiIBIAEoAiAiASgCIDYCICAEIAQoAghBAWs2AgggASgCACEJIAEoAgQiBSgCBCERIAEoAggiCgR/IApBJEEgIAEtABAbagVB7IELCygCACEMIAUQmg0hDiABKAIUIgpB6IELKAIAIg82AhBB6IELIA9BAWo2AgAgASgCCCABLAAQIAoQ7wcgBSgCCCAFLAAQIAoQ7wcgARCbDSAEIAUQ7gcgBRCbDSAJIA4gDCAMKwMIIA4rAwhkIgEbIg8gDCAOIAEbEJ8NIgwgARC5BCIFEOsHIAwgAUUgChDvByAKENkFIAkgBRDWBSIBBEAgBCAJEO4HIAQgCSABIAEgDxDaBRDXBQsgBSARENYFIgFFDQEgBCAFIAEgASAPENoFENcFDAELC0G0ggsoAgAhAANAIAAoAgQiAEG4ggsoAgBHBEAgACgCCBCeDQwBCwsgBARAIAQoAgAQGAsgBBAYIAhBEGokACACQciBCygCACIAKQMQNwP4AiACIAApAwg3A/ACIAIgAikD4AM3A+gCIAIgAikD2AM3A+ACIAJB8AJqIAJB4AJqEPwCIRQgAiAAKQMQNwPYAiACIAApAwg3A9ACIAIgAikDwAM3A8gCIAIgAikDuAM3A8ACIAJB0AJqIAJBwAJqEPwCIRMgAiAAKQMQNwO4AiACIAApAwg3A7ACIAIgAikD8AM3A6gCIAIgAikD6AM3A6ACIAJBsAJqIAJBoAJqEPwCIRcgAiAAKQMQNwOYAiACIAApAwg3A5ACIAIgAikD0AM3A4gCIAIgAikDyAM3A4ACQQEhCCACQZACaiACQYACahD8AiEVIAAiBCIFIQEDQEGUgQsoAgAgCEsEQCACQciBCygCACAIQeAAbGoiBikDEDcDmAEgAiAGKQMINwOQASACIAIpA+ADNwOIASACIAIpA9gDNwOAASACQZABaiACQYABahD8AiEWIAIgBikDEDcDeCACIAYpAwg3A3AgAiACKQPwAzcDaCACIAIpA+gDNwNgIAJB8ABqIAJB4ABqEPwCIRkgAiAGKQMQNwNYIAIgBikDCDcDUCACIAIpA8ADNwNIIAIgAikDuAM3A0AgAkHQAGogAkFAaxD8AiEYIAIgBikDEDcDOCACIAYpAwg3AzAgAiACKQPQAzcDKCACIAIpA8gDNwMgIAYgACAUIBZkIgkbIQAgBiAFIBcgGWQiChshBSAGIAQgEyAYZCIMGyEEIAYgASACQTBqIAJBIGoQ/AIiGiAVYyIGGyEBIBYgFCAJGyEUIBkgFyAKGyEXIBggEyAMGyETIBogFSAGGyEVIAhBAWohCAwBCwsgAEEIaiACKwPYAyACKwPgAxD7AiAFQQhqIAIrA+gDIAIrA/ADEPsCIARBCGogAisDuAMgAisDwAMQ+wIgAUEIaiACKwPIAyACKwPQAxD7AkEAIQFByIELKAIAIQVBlIELKAIAIQkgAyEEA0AgASAJRwRAIAUgAUHgAGxqIQYCQCAERQRAIAYtACBBAUcNAQtBAiAGKAJcIgAgAEECTRtBAWshCiAGKAJYIggrAwghEyAIKwMAIRdBASEDRAAAAAAAAAAAIRREAAAAAAAAAAAhFUQAAAAAAAAAACEWA0AgAyAKRwRAIBYgCCADQQFqIgBBBHRqIgwrAwAiGyATIAggA0EEdGoiAysDCCIZoaIgFyAZIAwrAwgiGKGiIAMrAwAiHCAYIBOhoqCgmUQAAAAAAADgP6IiGqAhFiAaIBMgGaAgGKBEAAAAAAAACECjoiAVoCEVIBogFyAcoCAboEQAAAAAAAAIQKOiIBSgIRQgACEDDAELCyAGIBUgFqM5AxAgBiAUIBajOQMICyABQQFqIQEMAQsLIAtBAWoiCxDoByIABEAgACAHSSEBQQEhCEEBIQMgACEHQQAgEkEBaiABGyISRQ0BQZiCC0GYggsrAwAiE0GQggsrAwAiFCAToUSamZmZmZmpP6IiFaEiEzkDAEGQggsgFCAVoCIUOQMAQYiCC0GIggsrAwAiFUGAggsrAwAiFiAVoUSamZmZmZmpP6IiF6EiFTkDAEGAggsgFiAXoCIWOQMAIAIgEzkD2AMgAiAUOQPoAyACIBM5A7gDIAIgFjkD0AMgAiAUOQPIAyACIBU5A/ADIAIgFjkDwAMgAiAVOQPgAyAQQQFqIRAMAQsLAkBBjN0KLQAARQ0AQbj4CCgCACIAEJ4MIAIQxQU3A4AEIAJBgARqIgMQkwwiASgCFCEEIAEoAhAhByABKAIMIQYgASgCCCEIIAIgASgCADYC+AEgAiAINgL0ASACIAY2AvABIAJB1wM2AuQBIAJBq7wBNgLgASACIAdBAWo2AuwBIAIgBEHsDmo2AugBIABBhdEDIAJB4AFqEB4aIAIgCzYC0AEgAEG7GCACQdABahAeGkEKIAAQ9wIaIAAQmAxBjN0KLQAARQ0AIAAQngwgAhDFBTcDgAQgAxCTDCIBKAIUIQMgASgCECEEIAEoAgwhByABKAIIIQYgAiABKAIANgLIASACIAY2AsQBIAIgBzYCwAEgAkHYAzYCtAEgAkGrvAE2ArABIAIgBEEBajYCvAEgAiADQewOajYCuAEgAEGF0QMgAkGwAWoQHhogAiAQNgKgASAAQdUYIAJBoAFqEB4aQQogABD3AhogABCYDAtBoIILQSgQ2wVBrIILKAIAEBhBrIILQQA2AgAQoQ0QoA0LQQAhA0HIgQsoAgAhAUGUgQsoAgAhBEEBIQUDQCADIARGDQEgASADQeAAbGoiACgCACgCECgClAEiByAAKwMIOQMAIAcgACsDEDkDCCADQQFqIQMMAAsACxCUDSACKAKwAxAYIAUgDWohDQwEBSAHIAhB4ABsaiIDKwMoIRkgAysDCCEUIAMrAzAhGCADKwM4IRogCEEBaiEIIBUgAysDECIbIAMrA0CgECIhFSAWIBQgGqAQIiEWIBMgGyAYoBAqIRMgFyAUIBmgECohFwwBCwALAAtBmZYDQau8AUHeAEHSEhAAAAtBnpoDQau8AUH9AEHw4gAQAAALIAJBoARqJAAgDQu6BQILfwF9IwBBEGsiCCQAIAJBACACQQBKGyENAkACQANAIAQgDUYEQAJAIAMgAEECdGpBADYCACMAQSBrIgQkAAJAAkAgAkGAgICABEkEQEEAIAIgAkEEEEMiBRsNASAIQgA3AgggCCACNgIEIAggBTYCACAEQSBqJAAMAgsgBEEENgIEIAQgAjYCAEG4+AgoAgBBgO8DIAQQHhoQJwALIAQgAkECdDYCEEG4+AgoAgBBz+4DIARBEGoQHhoQJwALIAgoAgAiBSAANgIAQf////8HIQBBASECIAgoAgQhDiABKAIIRQ0ADAMLBSADIARBAnRqQX82AgAgBEEBaiEEDAELCwNAIAIgBkwNAkEBIQRBASABIAUgBkECdGooAgAiAEEUbGoiCSgCACIHIAdBAU0bIQcgAyAAQQJ0aigCACIAQQFqIQoDQCAEIAdHBEACQCADIAkoAgQgBEECdGooAgAiC0ECdGoiDCgCAEEATg0AIAwgCjYCACACIA5ODQAgBSACQQJ0aiALNgIAIAJBAWohAgsgBEEBaiEEDAELCyAGQQFqIQYMAAsACwNAIAIgBkwNAUEBIQRBASABIAUgBkECdGooAgAiAEEUbGoiCSgCACIHIAdBAU0bIQcgAyAAQQJ0aigCACEAA0AgBCAHRwRAAkAgAyAEQQJ0IgogCSgCBGooAgAiC0ECdGoiDCgCAEEATg0AIAwCfyAJKAIIIApqKgIAIg+LQwAAAE9dBEAgD6gMAQtBgICAgHgLIABqNgIAIAIgDk4NACAFIAJBAnRqIAs2AgAgAkEBaiECCyAEQQFqIQQMAQsLIAZBAWohBgwACwALIABBCmohAEEAIQQDQCAEIA1HBEAgAyAEQQJ0aiIBKAIAQQBIBEAgASAANgIACyAEQQFqIQQMAQsLIAUQGCAIQRBqJAALMgEBfyAAQQAgAEEAShshAANAIAAgA0ZFBEAgAiADQQJ0aiABOAIAIANBAWohAwwBCwsLSAECfyAAQQAgAEEAShshAwNAIAIgA0YEQCABBEAgARAYCw8LIAEgAkECdGooAgAiAARAIAAQ8Q0LIAAQGCACQQFqIQIMAAsACxAAQSAQigEgACABIAIQrQMLCgAgACgCBBC/BAuEAgEGfyMAQRBrIgQkACMAQRBrIgMkACABIgdBBGohBQJAIAEoAgQiBkUEQCAFIQEMAQsgAigCACEIA0AgBiIBKAIQIgYgCEsEQCABIQUgASgCACIGDQEMAgsgBiAITw0BIAFBBGohBSABKAIEIgYNAAsLIAMgATYCDCAEIAUoAgAiAQR/QQAFQRQQigEhASADIAdBBGo2AgQgASACKAIANgIQIANBAToACCAHIAMoAgwgBSABEOcFIANBADYCACADKAIAIQIgA0EANgIAIAIEQCACEBgLQQELOgAMIAQgATYCCCADQRBqJAAgACAEKAIINgIAIAAgBC0ADDoABCAEQRBqJAAL8hYBB38CQAJAAkACQAJAAkAgAEEASCABQQBMciACQQBMckUEQCABIAIgACAGIAdBABD+DSIJBEAgAUEBaiEKIAkoAhghCyAJKAIUIQhBACEHA0AgByAKRwRAIAggB0ECdGpBADYCACAHQQFqIQcMAQsLAkAgBkEBaw4IBwYDBQMDAwQACyAGQRBHDQIgCEEEaiEKQQAhB0EAIQYCQANAAkAgACAGRgRAA0AgASAHRg0CIAdBAnQhAiAIIAdBAWoiB0ECdGoiBiAGKAIAIAIgCGooAgBqNgIADAALAAsgAyAGQQJ0IgxqKAIAIg0gAU8NAiAEIAxqKAIAIAJPDQIgCiANQQJ0aiIMIAwoAgBBAWo2AgAgBkEBaiEGDAELCyAJKAIcIAUgCSgCKCAAbBAfGkEAIQcDQCAAIAdGBEADQCABQQBMDQsgCCABQQJ0aiICIAJBBGsoAgA2AgAgAUEBayEBDAALAAUgBCAHQQJ0IgJqKAIAIQUgCCACIANqKAIAQQJ0aiICIAIoAgAiAkEBajYCACALIAJBAnRqIAU2AgAgB0EBaiEHDAELAAsAC0HEngNByrsBQZgFQeP0ABAAAAtB3N8BQcq7AUHFBEHj9AAQAAALQYqYA0HKuwFBwQRB4/QAEAAAC0HEngNByrsBQaYFQeP0ABAAAAsgCEEEaiEGQQAhB0EAIQUDQCAAIAVGBEADQCABIAdGBEBBACEHA0AgACAHRgRAA0AgAUEATA0KIAggAUECdGoiAiACQQRrKAIANgIAIAFBAWshAQwACwAFIAQgB0ECdCICaigCACEFIAggAiADaigCAEECdGoiAiACKAIAIgJBAWo2AgAgCyACQQJ0aiAFNgIAIAdBAWohBwwBCwALAAUgB0ECdCECIAggB0EBaiIHQQJ0aiIFIAUoAgAgAiAIaigCAGo2AgAMAQsACwALAkAgAyAFQQJ0IgpqKAIAIgwgAU8NACAEIApqKAIAIAJPDQAgBiAMQQJ0aiIKIAooAgBBAWo2AgAgBUEBaiEFDAELC0HEngNByrsBQYkFQeP0ABAAAAsgCEEEaiEKIAkoAhwhDEEAIQdBACEGA0AgACAGRgRAA0AgASAHRgRAQQAhBwNAIAAgB0YEQANAIAFBAEwNCSAIIAFBAnRqIgIgAkEEaygCADYCACABQQFrIQEMAAsABSAMIAggAyAHQQJ0IgJqIgYoAgBBAnRqKAIAQQJ0aiACIAVqKAIANgIAIAIgBGooAgAhAiAIIAYoAgBBAnRqIgYgBigCACIGQQFqNgIAIAsgBkECdGogAjYCACAHQQFqIQcMAQsACwAFIAdBAnQhAiAIIAdBAWoiB0ECdGoiBiAGKAIAIAIgCGooAgBqNgIADAELAAsACwJAIAMgBkECdCINaigCACIOIAFPDQAgBCANaigCACACTw0AIAogDkECdGoiDSANKAIAQQFqNgIAIAZBAWohBgwBCwtBxJ4DQcq7AUH5BEHj9AAQAAALIAhBBGohCiAJKAIcIQxBACEHQQAhBgNAIAAgBkYEQANAIAEgB0YEQEEAIQcDQCAAIAdGBEADQCABQQBMDQggCCABQQJ0aiICIAJBBGsoAgA2AgAgAUEBayEBDAALAAUgDCAIIAMgB0ECdCIGaigCAEECdGoiCigCACICQQR0aiINIAUrAwA5AwAgDSAFKwMIOQMIIAQgBmooAgAhBiAKIAJBAWo2AgAgCyACQQJ0aiAGNgIAIAdBAWohByAFQRBqIQUMAQsACwAFIAdBAnQhAiAIIAdBAWoiB0ECdGoiBiAGKAIAIAIgCGooAgBqNgIADAELAAsACwJAIAMgBkECdCINaigCACIOIAFPDQAgBCANaigCACACTw0AIAogDkECdGoiDSANKAIAQQFqNgIAIAZBAWohBgwBCwtBxJ4DQcq7AUHmBEHj9AAQAAALIAhBBGohCiAJKAIcIQxBACEHQQAhBgNAIAAgBkYEQANAIAEgB0YEQEEAIQcDQCAAIAdGBEADQCABQQBMDQcgCCABQQJ0aiICIAJBBGsoAgA2AgAgAUEBayEBDAALAAUgDCAIIAMgB0ECdCIGaigCAEECdGoiCigCACICQQN0aiAFIAdBA3RqKwMAOQMAIAQgBmooAgAhBiAKIAJBAWo2AgAgCyACQQJ0aiAGNgIAIAdBAWohBwwBCwALAAUgB0ECdCECIAggB0EBaiIHQQJ0aiIGIAYoAgAgAiAIaigCAGo2AgAMAQsACwALAkAgAyAGQQJ0Ig1qKAIAIg4gAU8NACAEIA1qKAIAIAJPDQAgCiAOQQJ0aiINIA0oAgBBAWo2AgAgBkEBaiEGDAELC0HEngNByrsBQdQEQeP0ABAAAAsgCEEANgIAIAkgADYCCAJ/QQAhA0EAIQQgCSIBKAIEIgBBACAAQQBKGyECIAEoAhAhCSABKAIYIQUgASgCFCEGIABBBBBKIQcDQCACIANHBEAgByADQQJ0akF/NgIAIANBAWohAwwBCwtBACEDAkACQAJAAkACQAJAAkACQAJAAkAgCUEBaw4IAAEFAgUFBQMFCyAGKAIAIQAgASgCHCEJA0AgBCABKAIATg0EIAYgBEECdGohCiAGIARBAWoiBEECdGohCANAIAgoAgAiAiAASgRAAkAgByAFIABBAnRqIgwoAgAiAkECdGooAgAiCyAKKAIASARAIAUgA0ECdGogAjYCACAJIANBA3RqIAkgAEEDdGorAwA5AwAgByAMKAIAQQJ0aiADNgIAIANBAWohAwwBCyAFIAtBAnRqKAIAIAJHDQkgCSALQQN0aiICIAkgAEEDdGorAwAgAisDAKA5AwALIABBAWohAAwBCwsgCCADNgIAIAIhAAwACwALIAYoAgAhACABKAIcIQkDQCAEIAEoAgBODQMgBiAEQQJ0aiEKIAYgBEEBaiIEQQJ0aiEIA0AgCCgCACICIABKBEACQCAHIAUgAEECdGoiDCgCACICQQJ0aigCACILIAooAgBIBEAgBSADQQJ0aiACNgIAIAkgA0EEdGoiAiAJIABBBHRqIgsrAwA5AwAgAiALKwMIOQMIIAcgDCgCAEECdGogAzYCACADQQFqIQMMAQsgBSALQQJ0aigCACACRw0JIAkgC0EEdGoiAiAJIABBBHRqIgsrAwAgAisDAKA5AwAgAiALKwMIIAIrAwigOQMICyAAQQFqIQAMAQsLIAggAzYCACACIQAMAAsACyAGKAIAIQAgASgCHCEJA0AgBCABKAIATg0CIAYgBEECdGohCiAGIARBAWoiBEECdGohCANAIAgoAgAiAiAASgRAAkAgByAFIABBAnQiAmoiDCgCACILQQJ0aigCACINIAooAgBIBEAgBSADQQJ0Ig1qIAs2AgAgCSANaiACIAlqKAIANgIAIAcgDCgCAEECdGogAzYCACADQQFqIQMMAQsgCyAFIA1BAnQiDGooAgBHDQkgCSAMaiILIAsoAgAgAiAJaigCAGo2AgALIABBAWohAAwBCwsgCCADNgIAIAIhAAwACwALIAYoAgAhAANAIAQgASgCAE4NASAGIARBAnRqIQggBiAEQQFqIgRBAnRqIQkDQCAJKAIAIgIgAEoEQAJAIAcgBSAAQQJ0aiILKAIAIgJBAnRqKAIAIgogCCgCAEgEQCAFIANBAnRqIAI2AgAgByALKAIAQQJ0aiADNgIAIANBAWohAwwBCyAFIApBAnRqKAIAIAJHDQkLIABBAWohAAwBCwsgCSADNgIAIAIhAAwACwALIAEgAzYCCCABIQMLIAcQGCADDAQLQenIAUHKuwFBqQlBrzMQAAALQenIAUHKuwFBvwlBrzMQAAALQenIAUHKuwFB1QlBrzMQAAALQenIAUHKuwFB6AlBrzMQAAALC3oBAX8jAEEQayIEJAAgAwRAIAMgACACIAIQ9wUiAjYCCEGM3QotAAAEQCAEIAI2AgBBuPgIKAIAQbniAyAEEB4aCyADQQA2AhQgA0EAOgAMIAAgASADEKIIGiADKAIQIARBEGokAA8LQbniAEHOwAFBhApB5OIAEAAACykBAX8DQCAAIgEoAhAoArABIgANAAsDQCABIgAoAhAoAngiAQ0ACyAAC+ABAgh8AX8gAUEgQRhBzIALLQAAIgwbaisDACEEIAIgAUEYQSAgDBtqKwMAIgU5AxggAiAEOQMQIAIgASkDODcDACACIAFBQGspAwA3AwggAiACKwMAIAREAAAAAAAA4D+ioSIGOQMAIAIgAisDCCAFRAAAAAAAAOA/oqEiBzkDCCADKwMAIQggAysDCCEJIAMrAxAhCiAAIAMrAxgiCyAFIAegIgUgBSALYxs5AxggACAKIAQgBqAiBCAEIApjGzkDECAAIAkgByAHIAlkGzkDCCAAIAggBiAGIAhkGzkDAAvpAQEEfyMAQRBrIgQkACAAEEciAyABaiIBIANBAXRBgAggAxsiAiABIAJLGyEBIAAQJCEFAkACQAJAIAAtAA9B/wFGBEAgA0F/Rg0CIAAoAgAhAiABRQRAIAIQGEEAIQIMAgsgAiABEDkiAkUNAyABIANNDQEgAiADakEAIAEgA2sQMxoMAQsgAUEBEEoiAiAAIAUQHxogACAFNgIECyAAQf8BOgAPIAAgATYCCCAAIAI2AgAgBEEQaiQADwtB28QDQemCAUHNAEH0tgEQAAALIAQgATYCAEG4+AgoAgBBz+4DIAQQHhoQJwALfAEBfCAAQQBOBEAgAUQAAAAAAAAAAGMEQEEADwsgAUQAAAAAAADwP2RFIAC4IgJEAADA////30EgAaNkRXJFBEBB/////wcPCyABIAKiIgGZRAAAAAAAAOBBYwRAIAGqDwtBgICAgHgPC0HimANB5oEBQcoAQa/dABAAAAsSACAAIAFBmiRBLEH1vQEQxgELsQIBB38jAEEQayIHJAACQAJAIAAoAggiBiAAKAIMIgJHBEAgACgCACEDIAAoAgQhBAwBCyAGQQF0QQEgBhsiAkHMmbPmAEsEQEHEACEADAILIAAoAgAgAkEUbBA5IgNFBEBBMCEADAILIAMgACgCDCIFQRRsakEAIAIgBWtBFGwQMxogBSAAKAIIIgYgACgCBCIEakkEQCAEQRRsIQggAyACIAUgBGsiBWsiBEEUbGogAyAIaiAFQRRsEFIaIAAgBDYCBAsgACACNgIMIAAgAzYCAAsgAyAEIAZqIAJwQRRsaiICIAEpAgA3AgAgAiABKAIQNgIQIAIgASkCCDcCCCAAIAAoAghBAWo2AgggB0EQaiQADwsgByAAEHM2AgBBuPgIKAIAQeGFBCAHEB4aECcAC1EBAnxBAkEBQQMgACsDCCABKwMIIgOhIAIrAwAgASsDACIEoaIgAisDCCADoSAAKwMAIAShoqEiA0QAAAAAAAAAAGMbIANEAAAAAAAAAABkGwtJAQF8IAEoAhQgABC1AyEBRAAAAAAAAPA/IAAoAiy3IAEoAiC4RAAAAAAAAPA/oKOhIAEoAiwiACsDQCAAKwMwIgKhoiACoBAyCz0BAXwgASgCGCAAELUDIQEgACgCLLcgASgCILhEAAAAAAAA8D+goyABKAIsIgArAzggACsDKCICoaIgAqALCwAgAEGK2AQQGhoLcQEBfyMAQRBrIgUkACAAQYLKAxAaGiAAIAEQiwEgAgRAIABB3wAQZiAAIAIQiwELIAUgAzYCACAAQck3IAUQHQJAIARB5iwQJiIBRQ0AIAEtAABFDQAgAEEgEGYgACABEIsBCyAAQSIQZiAFQRBqJAAL0gEBBn8jAEEgayICJAAgACgCECIBKAKoASEDIAAgASsDoAEQfCAAQfSXBBAaGgNAAkAgA0UNACADKAIAIgVFDQAgA0EEaiEDIAUiAUGx/AAQSUUNAQNAIAEiBEEBaiEBIAQtAAANAAsDQCAELQABBEAgAiAEQQFqIgE2AhAgAEGJzQMgAkEQahAdA0AgAS0AACABIgRBAWohAQ0ACwwBCwsgBUGmMRBJRQRAIAAoAhBCADcDoAELIAIgBTYCACAAQe+HBCACEB0MAQsLIAJBIGokAAsQAEEBIAAQO0EBdEECahBKCzEBAX8CQCABRQ0AIAEtAABFDQAgACgCPCICRQ0AIAIoAnAiAkUNACAAIAEgAhEDAAsLrQECAn8CfCMAQSBrIgMkAAJAIAAoAjwiBEUNACAEKAJgIgRFDQAgACgCECgCmAFFDQAgASsAGCEFIAErAAghBiADIAErABAgASsAAKBEAAAAAAAA4D+iOQMAIAMgBSAGoEQAAAAAAADgP6I5AwggAyABKQMYNwMYIAMgASkDEDcDECAALQCZAUEgcUUEQCAAIAMgA0ECEJQCGgsgACADIAIgBBEFAAsgA0EgaiQACzEBAX8CQCAAKAI8IgFFDQAgASgCBCIBRQ0AIAAgAREBAAsgACgCAEEANgIYIAAQtAsLrwEBA38CfyABEDciASgCEC0Ac0EBRgRAIAAQmAQMAQsgACABEOsGCyIAIgMhAQNAQQAhAgJAAkADQCABLQAAIgRFDQEgAUEBaiEBIAJBAXEEQEEKIQICQAJAAkAgBEHsAGsOBwIBAgEBAQABC0ENIQIMAQsgBCECCyADIAI6AAAMAwtBASECIARB3ABGDQALIAMgBDoAAAwBCyADQQA6AAAgAA8LIANBAWohAwwACwALGAAgACgCACAAKAKgASAAKAKcASABEIoJC8lOAhZ/DnwjAEGwEWsiAiQAIAJB+AlqIAApAJgCNwMAIAJB8AlqIAApAJACNwMAIAJB6AlqIAApAIgCNwMAIAIgACkAgAI3A+AJAkACQAJAIAEoAhAiBCgCCCIDRQ0AIAMrABggAisD4AlmRQ0AIAIrA/AJIAMrAAhmRQ0AIAMrACAgAisD6AlmRQ0AIAIrA/gJIAMrABBmDQELIAQoAmAiAwR/IAIgAkH4CWopAwA3A6gDIAIgAkHwCWopAwA3A6ADIAIgAkHoCWopAwA3A5gDIAIgAikD4Ak3A5ADIAMgAkGQA2oQoQoNASABKAIQBSAECygCbCIDRQ0BIAMtAFFBAUcNASACIAJB+AlqKQMANwOIAyACIAJB8AlqKQMANwOAAyACIAJB6AlqKQMANwP4AiACIAIpA+AJNwPwAiADIAJB8AJqEKEKRQ0BCwJAIAAoApwBQQJIDQAgACABQbDfCigCAEHvhgUQeyIDEIgEDQAgAy0AAA0BIAFBKGohBANAQTAhA0EDIQgCQAJAIAUOAwEABAALQVAhA0ECIQgLIAQgA0EAIAEoAgBBA3EgCEcbaigCAEHY3gooAgBB74YFEHsiAy0AAEUNASAFQQFqIQUgACADEIgERQ0ACwsgAkIANwO4AyACQgA3A7ADIAJBsANqIgQgAUEwQQAgASgCAEEDcUEDRxtqKAIoECAQwwMgBEGy4QFB6p8DIAEgAUEwayIDIAEoAgBBA3FBAkYbKAIoEC8Q/gEbEMMDIAQgASADIAEoAgBBA3FBAkYbKAIoECAQwwMgACAEEMIDEIQEIAQQZSABQbTfCigCAEHvhgUQeyIDLQAABEAgACADEIQECwJAIAFBnN8KKAIAQe+GBRB7IgMtAAAiE0UNACADEMEDGkHQ4gohDkHQ4gohBQNAIAUoAgAiA0UNASAFQQRqIQUgA0GmMRBMRQ0ACwwBCyAAKAKYASEUIAAQjQQiB0EJNgIMIAcgATYCCCAHQQM2AgQCQCABKAIQKAJgIgNFDQAgAy0AUg0AIAFB1bEBECYQa0UNACAHIAcvAYwCQYAEcjsBjAILAkAgE0UNACABKAIQKAIIRQ0AIAAgDhDkAQsCQEHo3wooAgAiA0UNACABIAMQQSIDRQ0AIAMtAABFDQAgACABQejfCigCAEQAAAAAAADwP0QAAAAAAAAAABBLEIMCCwJAIBRBgICACHFFDQAgASABQTBqIgMgASgCAEEDcUEDRhsoAigQLygCEC8BsgFBA08EQCAHAn8gASADIAEoAgBBA3FBA0YbKAIoKAIQKAKUASsDEEQAAAAAAABSQKIiGEQAAAAAAADgP0QAAAAAAADgvyAYRAAAAAAAAAAAZhugIhiZRAAAAAAAAOBBYwRAIBiqDAELQYCAgIB4C7c5A7gBIAcCfyABQVBBACABKAIAQQNxQQJHG2ooAigoAhAoApQBKwMQRAAAAAAAAFJAoiIYRAAAAAAAAOA/RAAAAAAAAOC/IBhEAAAAAAAAAABmG6AiGJlEAAAAAAAA4EFjBEAgGKoMAQtBgICAgHgLtzkDwAEMAQsgB0IANwO4ASAHQgA3A8ABCwJAIBRBgIACcUUNAAJAIAEoAhAiBCgCYCIDRQRAIAcoAsgBIQMMAQsgByADKAIAIgM2AsgBCyAHIAM2AtQBIAcgAzYCzAEgByADNgLQASAEKAJsIgMEQCAHIAMoAgA2AswBCyAEKAJoIgMEQCAHIAMoAgA2AtABCyAEKAJkIgNFDQAgByADKAIANgLUAQtBACEFQQAhAwJAIBRBgIAEcUUNACACQegJakIANwMAIAJCADcD4AkgByAAIAEgAkHgCWoiAxC8BiABEIMBNgLcASADEGUCQAJAIAFB/YoBECYiCARAIAgtAAANAQtBACEDIAFB9tMBECYiCEUNASAILQAARQ0BCyAIIAEQgwEhAwsCQCAHAn8CQAJAIAFB8IoBECYiCARAIAgtAAANAQsgAUHq0wEQJiIIRQ0BIAgtAABFDQELIAggARCDAQwBCyADRQ0BIAMQZAs2AtgBCwJAIAcCfwJAAkAgAUHmigEQJiIIBEAgCC0AAA0BCyABQeHTARAmIghFDQEgCC0AAEUNAQsgCCABEIMBDAELIANFDQEgAxBkCzYC4AELAkACQAJAIAFB3YoBECYiCARAIAgtAAANAQsgAUHZ0wEQJiIIRQ0BIAgtAABFDQELIAcgCCABEIMBNgLkASAHIAcvAYwCQYABcjsBjAIMAQsgA0UNACAHIAMQZDYC5AELAkACQCABQfmKARAmIggEQCAILQAADQELIAFB8tMBECYiCEUNASAILQAARQ0BCyAHIAggARCDATYC6AEgByAHLwGMAkGAAnI7AYwCDAELIANFDQAgByADEGQ2AugBCwJAIBRBgICABHFFDQACQCABQcUjECYiBEUNACAELQAARQ0AIAQgARCDASEFCwJAIAcCfwJAIAFBtiMQJiIERQ0AIAQtAABFDQAgByAHLwGMAkHAAHI7AYwCIAQgARCDAQwBCyAFRQ0BIAUQZAs2AvwBCwJAIAcCfwJAIAFBqiMQJiIERQ0AIAQtAABFDQAgBCABEIMBDAELIAVFDQEgBRBkCzYCgAILAkACQCABQZ8jECYiBEUNACAELQAARQ0AIAcgBCABEIMBNgKEAiAHIAcvAYwCQRByOwGMAgwBCyAFRQ0AIAcgBRBkNgKEAgsgBwJ/AkAgAUHBIxAmIgRFDQAgBC0AAEUNACAHIAcvAYwCQSByOwGMAiAEIAEQgwEMAQsgBUUEQEEAIQUMAgsgBRBkCzYCiAILAkAgFEGAgIACcUUNAAJAAkACQCABQYLeABAmIggEQCAILQAADQELIAFB8t0AECYiCEUNASAILQAARQ0BCyAHIAggARCHBCIEIAEQgwE2AuwBIAQQGCAHIAcvAYwCQQFyOwGMAgwBCyAHKALIASIERQ0AIAcgBBBkNgLsAQsCQAJAIAFB5d0AECYiBEUNACAELQAARQ0AIAcgBCABEIcEIgQgARCDATYC8AEgBBAYIAcgBy8BjAJBCHI7AYwCDAELIAcoAsgBIgRFDQAgByAEEGQ2AvABCwJAAkAgAUHZ3QAQJiIERQ0AIAQtAABFDQAgByAEIAEQhwQiBCABEIMBNgL0ASAEEBggByAHLwGMAkECcjsBjAIMAQsgBygC0AEiBEUNACAHIAQQZDYC9AELAkAgAUH+3QAQJiIERQ0AIAQtAABFDQAgByAEIAEQhwQiBCABEIMBNgL4ASAEEBggByAHLwGMAkEEcjsBjAIMAQsgBygC1AEiBEUNACAHIAQQZDYC+AELIAMQGCAFEBgCQAJAAkACQAJAAkACQAJAIBRBgICEAnFFDQAgASgCECgCCCIWRQ0AAkAgBygC2AFFBEAgBygC7AFFDQIgFEGAgCBxDQEMAgsgFEGAgCBxRQ0BCyAWKAIEIQkgACgCECsDoAEgAkGIEWpCADcDACACQgA3A4ARRAAAAAAAAOA/okQAAAAAAAAAQBAiIR9BACEIAkADQAJAIAkgFUYEQCAUQYDAAHENA0EAIQNBACEFDAELIBYoAgBBGBCIAyIEQQE2AhAgFUEwbGoiFygCBEEBa0EDbiELQQAhCiAEIQNBACEGA0AgBiALRgRAIAQhA0EAIQUCQANAIAMiBgRAIAVBBHQiAyACQcADamohDCACQeAJaiADaiEPIAYrAwghHiAGKwMAIRkgBigCECEDAkAgCgRAIAorAwghGCAKKwMAIR0gAwRAIAMrAwghGyADKwMAIRwMAgsgHiAeoCAYoSEbIBkgGaAgHaEhHAwBCyAeIB6gIAMrAwgiG6EhGCAZIBmgIAMrAwAiHKEhHQsgGyAeoSAcIBmhEKsBIRogDyAeIB8gGCAeoSAdIBmhEKsBIhggGiAYoSIYRBgtRFT7IRnAoCAYIBhEAAAAAAAAAABkG0QAAAAAAADgP6KgIhgQV6IiGqA5AwggDyAZIB8gGBBFoiIYoDkDACAMIB4gGqE5AwggDCAZIBihOQMAIAVBAWohBSADBEAgBiEKIAVBMkcNAgsCQCAIIBJHDQAgEkEBdEEBIBIbIghB/////wNLBEBBxAAhBQwECyARIAhBAnQQOSIRRQRAQTAhBQwECyARIBJBAnRqQQAgCCASa0ECdBAzGiAQIBJqIBJNDQAgEEECdCENIBEgCCASIBBrIgprIhBBAnRqIA0gEWogCkECdBBSGgsgESAQIBJqIAhwQQJ0aiAFQQF0NgIAQQAhCwNAIAUgC0YEQCACQcADaiAFQQR0aiENQQAhCwNAIAUgC0cEQCACIA0gC0F/c0EEdGoiCikDCDcD2AIgAiAKKQMANwPQAiALQQFqIQsgAkGAEWogAkHQAmoQlgEMAQsLIAIgDykDADcD4AkgAiAPKQMINwPoCSACIAwpAwA3A8ADIAIgDCkDCDcDyANBASEFIBJBAWohEiAGIQoMAwUgAiACQeAJaiALQQR0aiIKKQMINwPoAiACIAopAwA3A+ACIAtBAWohCyACQYARaiACQeACahCWAQwBCwALAAsLA0AgBARAIAQoAhAgBBAYIQQMAQsLIBVBAWohFQwECyACIAUQczYCwAJBuPgIKAIAQeGFBCACQcACahAeGhAnAAsgFygCACAGQTBsaiEMQQAhBQNAIAVBBEYEQCAGQQFqIQYgAkGAEGogAxC0BiEDDAIFIAVBBHQiDSACQYAQamoiDyAMIA1qIg0pAwA3AwAgDyANKQMINwMIIAVBAWohBQwBCwALAAsACwsDQCAFIBJHBEAgESAFIBBqIAhwQQJ0aigCACADaiEDIAVBAWohBQwBCwsgACACQYARaiIEELMGIAQQswYgAxCUAhoLIAJBgBFqELMGIQMgB0ECNgKQAiAHIAM2AqQCIAIoAoARIQ0gAigCjBEhAyACKAKEESEKA0AgCgRAIANFDQYgAkHoCWoiBCANKQMINwMAIAIgDSkDADcD4AkgAyEFA0AgBQRAIAIgDSAFQQFrIgVBBHRqIgYpAwg3A8gDIAIgBikDADcDwAMgBiAEKQMANwMIIAYgAikD4Ak3AwAgBCACKQPIAzcDACACIAIpA8ADNwPgCQwBBSAKQQFrIQoMAwsACwALCyACKAKIESADSw0DIAJBiBFqQgA3AwAgAkIANwOAESAHIA02ApgCIBJFDQIgESAQIAhwQQJ0aigCACEDIAcgEjYCnAIgByADNgKUAgNAIBAEQCARKAIAIQMgCCEFA0AgBQRAIBEgBUEBayIFQQJ0aiIGKAIAIAYgAzYCACEDDAEFIBBBAWshEAwDCwALAAsLIAggEkkNASAHIBE2AqACCwJAIAAoAjwiA0UNACADKAJAIgNFDQAgACADEQEACwJAIAcoAtgBIgNFBEAgBy0AjAJBAXFFDQELIAAgAyAHKALsASAHKAL8ASAHKALcARDEAQsgACgCECsDoAEhHyACQdAQakIANwMAIAJCADcDyBAgAUH7nAEQJhDnAiEXIAEoAhAoAghFDQZBACELIAFBqN8KKAIARAAAAAAAAPA/RAAAAAAAAAAAEEshICABQfzeCigCAEHvhgUQeyEGQQAhBAJAIBNFDQAgDiEFA0AgBSgCACIDQQBHIQQgA0UNASAFQQRqIQUgA0HIsAEQTEUNAAsLIAYhBUEAIQgCQANAAkACQAJAAkACQCAFLQAAIgNBOmsOAgECAAsgAw0CIAtFIAhFcg0LIAYgAkHwEGoQ5wQiBkECSQ0DIAEgAUEwaiIFIAEoAgBBA3FBA0YbKAIoEC8gASAFIAEoAgBBA3FBA0YbKAIoECAhBRD+ASEDIAIgAUFQQQAgASgCAEEDcUECRxtqKAIoECA2ArgCIAJB3c8DQfrRAyADGzYCtAIgAiAFNgKwAkHM9AMgAkGwAmoQggEgBkECRw0FDAoLIAhBAWohCAwBCyALQQFqIQsLIAVBAWohBQwBCwsgBkEBRg0FCyACQYAKaiEMIAJB8AlqIQ8gAigC+BAhDUEAIQNBACEGA0ACQAJAIAEoAhAoAggiBCgCBCAGSwRAIAJB4AlqIAQoAgAgBkEwbGpBMBAfGkEAIQVBASEIRAAAAAAAAPA/IRsgAyEEA0AgBSANRg0CIAJB2BBqIAJB8BBqIAUQlQIgAigC2BAiA0UNAiACKwPgECIYmUTxaOOItfjkPmNFBEAgACADEEYgGyAYoSEbAkACQAJAIAgEQCACQeAJaiAYIAJBgBBqIAJBgBFqEI0JQQAhCCAAIAIoAoAQIgQgAigChBBBABCEAiAEEBggG5lE8WjjiLX45D5jDQEMAwsgG5lE8WjjiLX45D5jBEAgACACKAKAESIFIAIoAoQRQQAQhAIMAgsgAkHAA2oiCiACQYARaiIEQTAQHxogCiAYIBggG6CjIAJBgBBqIAQQjQkgAigCwAMQGEEAIQggACACKAKAECIEIAIoAoQQQQAQhAIgBBAYDAILIAIoAoARIQULIAUQGAwFCyADIQQLIAVBAWohBQwACwALIAJB8BBqEIsEDAkLIAQhAwsgAigC6AkEQCAAIAJB8BBqIgQQvwMoAgAQRiAAIAQQvwMoAgAQXSACIA8pAwg3A6gCIAIgDykDADcDoAIgAiACKALgCSIEKQMINwOYAiACIAQpAwA3A5ACIABBAiACQaACaiACQZACaiAgIB8gAigC6AkQ5AILIAIoAuwJIgUEQCAAIAMQRiAAIAMQXSACIAwpAwg3A4gCIAIgDCkDADcDgAIgAiACKALgCSACKALkCUEEdGpBEGsiBCkDCDcD+AEgAiAEKQMANwPwASAAQQMgAkGAAmogAkHwAWogICAfIAUQ5AILAkAgE0UgASgCECgCCCgCBEECSXINACACKALoCSACKALsCXJFDQAgACAOEOQBCyAGQQFqIQYMAAsAC0GxpQNBsr0BQa0GQdG4ARAAAAtBrKIDQbK9AUGtBkGzHxAAAAtB0aMDQbK9AUGQBkHptwEQAAALQeeVA0GyvQFBkAZB6bcBEAAAC0Hj+AAhBgsCQAJAAn8gASgCEC0AdCIDQQFxBEBBgJEDIQtB4LoBDAELIANBAnEEQEHVkgMhC0GA6gEMAQsgA0EIcQRAQYeQAyELQf+PAwwBCyADQQRxRQ0BQf6SAyELQfjpAQshCiACQcgQaiALEMMDIAYhBQNAAkAgBS0AACIDQTpHBEAgAw0BIAJByBBqEMIDIgMgBkYNBCAAIAMQRgwECyACIAs2AuABIAJByBBqQYw3IAJB4AFqEIABCyAFQQFqIQUMAAsACyABQYDfCigCACAGEJABIQogBiEDCyAGIApHBEAgACAKEF0LAkACQCAEBEAgCi0AACENIAMtAAAhBCAAQYcgEEYgACADQeP4ACAEGyIPEF0gAkHgCWoiBCABKAIQKAIIKAIAQTAQHxogAkHAA2ohCwJ/AkBBmN8KKAIAIgNFDQAgASADEEEiAy0AAEUNAEGUAiADQYanARBMDQEaQZUCIANB5/kAEEwNARpBlgIgA0HZ+wAQTA0BGiADQaubARBMRQ0AQZcCDAELQZQCQZcCIAFBUEEAIAEoAgBBA3FBAkcbaigCKBAvEP4BGwshCEQAAAAAAAAAACEZIwBBsAFrIgkkACAJQgA3AyggCUIANwMgIAQoAgQhDiAJIAQoAgAiDCIBKQMINwMYIAkgDCkDADcDECAJQSBqIAlBEGpEAAAAAAAAAAAQngkgCSABKQMINwOoASAJIAwpAwA3A6ABQQAhAQNAIA4gAUEDaiIDSwRAIAkgCSkDoAE3A3AgCSAJKQOoATcDeCAMIAFBBHRqIQZBASEBA0AgAUEERgRAQQEhASAJKwN4IRsgCSsDcCEcA0AgAUEVRgRAIAMhAQwFBSAJQTBqIAlB8ABqIAG4RAAAAAAAADRAo0EAQQAQpQEgCSsDOCEaIAkrAzAhGCAJIAkpAzg3AwggCSAJKQMwNwMAIAlBIGogCSAZIBwgGKEgGyAaoRBPoCIZEJ4JIAFBAWohASAaIRsgGCEcDAELAAsABSABQQR0IgQgCUHwAGpqIgUgBCAGaiIEKQMANwMAIAUgBCkDCDcDCCABQQFqIQEMAQsACwALCyAJKAIgIQwgCSgCLCEDIAkoAiQhBCAJKAIoIQ4CQAJAA0AgBARAIANFDQIgCUHwAGogDEHAABAfGiADIQEDQCABBEAgCUEwaiIGIAwgAUEBayIBQQZ0aiIFQcAAEB8aIAUgCUHwAGoiBUHAABAfGiAFIAZBwAAQHxoMAQUgBEEBayEEDAMLAAsACwsgAyAOTwRAIAwgDkEBayIFQQZ0aisDECEjRAAAAAAAAAAAIRtEAAAAAAAAAAAhHEQAAAAAAAAAACEaQQAhBEQAAAAAAAAAACEYA0AgDiAEIgFGBEAgC0IANwIAQQAhAQNAAkAgASAORgRAIBhEGC1EVPshCUCgIhkQVyEYIAsgGRBFIBqiIBygIBggGqIgG6AQ6QQgDg0BQYOWA0HjvgFBoQJByjwQAAALIAwgAUEGdGoiBCsDKCEaIAQrAyAiGBBXIR0gBCsDCCEbIBgQRSEcIAQrAzghGSAELQAwIAsgHCAaoiAEKwMAIhygIBsgHSAaoqAQ6QRBAXEEQCAcIBpBASAYIBkgCxCdCQsgAUEBaiEBDAELCyAOQQJrIQEDQCABQX9HBEAgDCABQQZ0aiIEKwMoIR0gBCsDOEQYLURU+yEJQKAiGRBXIRsgBCsDCCEcIBkQRSEYIAQrAyAhGiAELQAwIAsgGCAdoiAEKwMAIhigIBwgGyAdoqAQ6QRBAXEEQCAYIB1BACAaRBgtRFT7IQlAoCAZIAsQnQkLIAFBAWshAQwBCwsgDBAYIAlBsAFqJAAMBAUgDCABQQFqIgRBACAEIA5HG0EGdGoiAysDCCAMIAFBBnRqIgYrAwgiG6EgAysDACAGKwMAIhyhEJwJIRggDCABQQFrIAUgARtBBnRqIgMrAwggG6EgAysDACAcoRCcCSEiIAYrAxAiHiAjIB8gCBEgACEaAkACfyABQQAgASAFRxtFBEAgIkQYLURU+yH5v6AgGEQYLURU+yH5P6AgARshGUEADAELIBhEGC1EVPsh+T+gIRlEAAAAAAAAAAAgGiAYICKhIhhEGC1EVPshGUCgIBggGEQAAAAAAAAAAGMbRAAAAAAAAOC/okQYLURU+yH5P6AiHRBFIhijIBhEAAAAAAAAAABhGyIYIBpEAAAAAAAAJECiZARAICJEGC1EVPsh+b+gIhhEAAAAAAAAAABjIBhEGC1EVPshGUBmcgRAIBggGEQYLURU+yEZQKOcRBgtRFT7IRlAoqEhGAtBASEBIBlEAAAAAAAAAABjIBlEGC1EVPshGUBmckUNAiAZIBlEGC1EVPshGUCjnEQYLURU+yEZQKKhIRkMAgsgGSAdoCEZIBghGkEACyEBIBkhGAsgBiAZOQM4IAYgAToAMCAGIBo5AyggBiAYOQMgIAZB7AA6ABggBiAeOQMQIAYgGzkDCCAGIBw5AwAMAQsACwALQfakA0HjvgFB3wBBtLgBEAAAC0HnlQNB474BQd8AQbS4ARAAAAsgAigCwAMiAUEASA0BIAAgAigCxAMgAUEBEEQgAigCxAMQGCAAIA8QRiAPIApB4/gAIA0bIgFHBEAgACABEF0LIAIoAugJIgMEQCACIAJB+AlqKQMANwNYIAIgAikD8Ak3A1AgAiACKALgCSIBKQMINwNIIAIgASkDADcDQCAAQQIgAkHQAGogAkFAayAgIB8gAxDkAgsgAigC7AkiA0UNAyACIAJBiApqKQMANwM4IAIgAikDgAo3AzAgAiACKALgCSACKALkCUEEdGpBEGsiASkDCDcDKCACIAEpAwA3AyAgAEEDIAJBMGogAkEgaiAgIB8gAxDkAgwDCyABKAIQIQQgCEUNASAIuEQAAAAAAAAAQKBEAAAAAAAA4L+iISFBACEKIAQoAggoAgQiE0EwEEohFSATQTAQSiEWA0AgCiATRgRAIAMQZCIPIQUgAyIEIQZBACERA0AgBUHj4wEQugUiBQRAAkAgBUHj+AAgBS0AABsiDiADRg0AIA4hAyABKAIQLQB0QQNxDQAgACADEEYgACADEF0LQQAhCgNAIAogE0YEQCAGIA4gERshBiAOIAQgEUECSRshBCARQQFqIRFBACEFDAMLIBYgCkEwbCIIaiIFKAIEIQsgCCAVaigCACENIAUoAgAhDEEAIQUDQCAFIAtGBEAgACAMIAtBABCEAiAKQQFqIQoMAgUgDCAFQQR0IghqIgkgCCANaiIIKwMAIAkrAwCgOQMAIAkgCCsDCCAJKwMIoDkDCCAFQQFqIQUMAQsACwALAAsLAkAgAigC6AkiBUUEQEEAIQQMAQsCQCAERQ0AIAEoAhAtAHRBA3ENACAAIAQQRiAAIAQQXSACKALoCSEFCyACIAJB+AlqKQMANwOYASACIAIpA/AJNwOQASACIAIoAuAJIgMpAwg3A4gBIAIgAykDADcDgAEgAEECIAJBkAFqIAJBgAFqICAgHyAFEOQCCyACKALsCSIFBEACQCAEIAZGDQAgASgCEC0AdEEDcQ0AIAAgBhBGIAAgBhBdIAIoAuwJIQULIAIgAkGICmopAwA3A3ggAiACKQOACjcDcCACIAIoAuAJIAIoAuQJQQR0akEQayIBKQMINwNoIAIgASkDADcDYCAAQQMgAkHwAGogAkHgAGogICAfIAUQ5AILIA8QGEEAIQUDQCAFIBNGBEAgFRAYIBYQGAwGBSAVIAVBMGwiAWooAgAQGCABIBZqKAIAEBggBUEBaiEFDAELAAsABSACQeAJaiAKQTBsIgQgASgCECgCCCgCAGpBMBAfGiAEIBVqIgUgAigC5AkiBjYCBCAEIBZqIgQgBjYCBCAFIAZBEBBKIhA2AgAgBCACKALkCUEQEEoiCTYCACACKALkCUEBayEOIAIoAuAJIgsrAwghGyALKwMAIRxBACEFA0AgBSAOSQRAIAsgBUEBakEEdCINaiIEKwMIISQgBCsDACElAkAgBUUEQCAQRAAAAAAAAABAIBwgJaEiGSAZoiAbICShIhogGqKgRC1DHOviNho/oJ+jIhggGZqiOQMIIBAgGiAYojkDAAwBCyAQIAVBBHRqIgREAAAAAAAAAEAgIiAloSIZIBmiICMgJKEiGiAaoqBELUMc6+I2Gj+gn6MiGCAZmqI5AwggBCAaIBiiOQMACyALIAVBA2oiBEEEdGoiBisDCCEaIAYrAwAhGCAQIAVBAmpBBHQiCGoiDEQAAAAAAAAAQCAlIAggC2oiBisDACIioSIdICQgBisDCCIjoSIeEE8iGUQtQxzr4jYaP2MEfCAcIBihIh0gHaIgGyAaoSIeIB6ioEQtQxzr4jYaP6CfBSAZC6MiGSAdmqIiHTkDCCAMIBkgHqIiGTkDACANIBBqIg8gDCkDCDcDCCAPIAwpAwA3AwAgCSAFQQR0IgVqIgYgISAFIBBqIgUrAwCiIBygOQMAIAYgISAFKwMIoiAboDkDCCAJIA1qIgUgISAPKwMAoiAloDkDACAFICEgDysDCKIgJKA5AwggCCAJaiIFICEgHaIgI6A5AwggBSAhIBmiICKgOQMAIBghHCAaIRsgBCEFDAELCyAQIAVBBHQiBWoiBEQAAAAAAAAAQCAiIByhIhogGqIgIyAboSIZIBmioEQtQxzr4jYaP6CfoyIYIBqaoiIaOQMIIAQgGSAYoiIYOQMAIAUgCWoiBCAhIBqiIBugOQMIIAQgISAYoiAcoDkDACAKQQFqIQoMAQsACwALQcTMAUGyvQFBthFBzDUQAAALIAQtAHRBA3FFBEACQCADLQAABEAgACADEEYMAQsgAEHj+AAQRiAKQeP4ACAKLQAAGyEKCyAAIAoQXQsgAkGACmohCiACQfAJaiEGQQAhBQNAIAUgASgCECgCCCIDKAIETw0BIAJB4AlqIAMoAgAgBUEwbGpBMBAfGiAAIAIoAuAJIAIoAuQJQQAQhAIgAigC6AkiBARAIAIgBikDCDcD2AEgAiAGKQMANwPQASACIAIoAuAJIgMpAwg3A8gBIAIgAykDADcDwAEgAEECIAJB0AFqIAJBwAFqICAgHyAEEOQCCyACKALsCSIEBEAgAiAKKQMINwO4ASACIAopAwA3A7ABIAIgAigC4AkgAigC5AlBBHRqQRBrIgMpAwg3A6gBIAIgAykDADcDoAEgAEEDIAJBsAFqIAJBoAFqICAgHyAEEOQCCwJAIBNFIAEoAhAoAggoAgRBAklyDQAgAigC6AkgAigC7AlyRQ0AIAAgDhDkAQsgBUEBaiEFDAALAAsgFxDnAhAYIBcQGCACQcgQahBlIAAoAhAiBigCCCEFAkAgBigC2AFFBEAgBi0AjAJBAXFFDQELIAAQkwIgBigCnAIiC0UNACAGKAKgAiIEKAIAIQhBASEDA0AgAyALTw0BIAYgBCADQQJ0IgFqKAIANgKUAiAGIAYoAqQCIAhBBHRqNgKYAiAAIAYoAtgBIAYoAuwBIAYoAvwBIAYoAtwBEMQBIAAQkwIgA0EBaiEDIAEgBigCoAIiBGooAgAgCGohCCAGKAKcAiELDAALAAsgBkIANwKUAiAAIAUoAhAiAygCCCIBBH8gBigC5AEhAyAGLwGMAiEEIAIgASgCACIBQRBqIAEoAgAgASgCCBsiASkDCDcDGCACIAEpAwA3AxAgACACQRBqIARBgAFxQQd2IAMgBEECcUEBdhCMCSAGKALoASEDIAYvAYwCIQQgAiAFKAIQKAIIIgEoAgAgASgCBEEwbGoiASABQTBrKAIAIAFBLGsoAgBBBHRqIAFBJGsoAgAbQRBrIgEpAwg3AwggAiABKQMANwMAIAAgAiAEQYACcUEIdiADIARBBHFBAnYQjAkgBSgCEAUgAwsoAmBBCyAGLwGMAkEDdkEBcSAGKALgASAGKALwASAGKAKAAiAGKALcASAFQaDfCigCAEG7mQEQexBrBH8gBSgCECgCCAVBAAsQ4wQgACAFKAIQKAJsQQsgBi8BjAJBA3ZBAXEgBigC4AEgBigC8AEgBigCgAIgBigC3AEgBUGg3wooAgBBu5kBEHsQawR/IAUoAhAoAggFQQALEOMEIAAgBSgCECgCZEEHIAYvAYwCQQJ2QQFxIAYoAugBIAYoAvgBIAYoAogCIAYoAtwBQQAQ4wQgACAFKAIQKAJoQQYgBi8BjAJBAXZBAXEgBigC5AEgBigC9AEgBigChAIgBigC3AFBABDjBAJAIAAoAjwiAUUNACABKAJEIgFFDQAgACABEQEACyAAEIwECyACQbARaiQAC5kCAQN/IwBB8ABrIgMkACADQgA3A2ggA0IANwNgIAFCADcCAAJAIAAgA0HgAGoiBRDnBA0AIAMoAmgiAEECSQ0AIAUQvwMoAgBFDQAgAEECRwRAQfecBEEAECsLIAEgA0HgAGoiABC/AygCABBkNgIAIANByABqIABBARCVAiADKAJIBEAgA0EwaiAAQQEQlQIgASADKAIwEGQ2AgQLIAICfCADQeAAaiIAEL8DLQAQQQFGBEAgABC/AysDCAwBCyADQRhqIANB4ABqIgBBARCVAkQAAAAAAAAAACADLQAoQQFHDQAaIAMgAEEBEJUCRAAAAAAAAPA/IAMrAwihCzkDAEEBIQQLIANB4ABqEIsEIANB8ABqJAAgBAtbAQJ/IwBBIGsiAiQAA0AgASAAKAIIT0UEQCACQQhqIAAgARCVAiACKAIIEBggAUEBaiEBDAELCyAAQgA3AgQgACgCABAYIABCADcCCCAAQgA3AgAgAkEgaiQAC68BAQF/IAAoAhAiAUUEQEH6+QBBsr0BQf8AQZyXARAAAAsgASgC3AEQGCABKALYARAYIAEoAuABEBggASgC5AEQGCABKALoARAYIAEoAuwBEBggASgC8AEQGCABKAL0ARAYIAEoAvgBEBggASgC/AEQGCABKAKAAhAYIAEoAoQCEBggASgCiAIQGCABKAKYAhAYIAEoAqQCEBggASgCoAIQGCAAIAEoAgA2AhAgARAYC54BAQJ/QbgCEIgDIgEgACgCECICNgIAIAAgATYCECACBEAgAUEQaiACQRBqQSgQHxogAUE4aiACQThqQSgQHxogASACKAKYATYCmAEgASACKAKcATYCnAEgASACKwOgATkDoAEgASACKAKIATYCiAEgAUHgAGogAkHgAGpBKBAfGiABDwsgAUKAgICAgICA+D83A6ABIAFCAzcDmAEgAQvjAwIIfwJ+IwBBIGsiBiQAQaziCigCACEDAkACQAJAIAAoAgQiBUEDbEECayIHQajiCigCACIESwRAIARB/////wBPDQEgB0GAgICAAU8NAiADIAdBBHQiAhA5IgNFDQMgBEEEdCIEIAJJBEAgAyAEakEAIAIgBGsQMxoLQajiCiAHNgIAQaziCiADNgIACyADIAAoAgAiACkDADcDACADIAApAwg3AwggACkDACEKIAMgACkDCDcDGCADIAo3AxBBAiEEQQIgBSAFQQJNG0EBayEJQQEhBQNAIAUgCUZFBEAgAyAEQQR0aiICIAAg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IABB4LADEBoaIAQoAtwBIgEEQCAAIAEQiwEgAEHfABBmCyADIAI2AnAgAEHoqgMgA0HwAGoQHQwDCyAAQeCwAxAaGiAEKALcASIBBEAgACABEIsBIABB3wAQZgsgAyACNgKAASAAQeKqAyADQYABahAdDAILIANByABqIgEgBEE4akEoEB8aIAAgARDhCCAEKAJYQQFHDQEgBC0AOyIBRSABQf8BRnINASADIAG4RAAAAAAA4G9AozkDQCAAQaGMASADQUBrEB0MAQsgAEG8xwgQGhoLIABBtckDEBoaIANBGGoiASAEQRBqQSgQHxogACABEOEIIAQrA6ABRAAAAAAAAPC/oJlEexSuR+F6dD9jRQRAIABB18gDEBoaIAAgBCsDoAEQfAtBwccIIQECQAJAAkAgBCgCmAFBAWsOAgEAAgtBxccIIQELIAMgATYCECAAQbI3IANBEGoQHQsCQCAEKAIwQQFHDQAgBC0AEyIBRSABQf8BRnINACADIAG4RAAAAAAA4G9AozkDACAAQbSMASADEB0LIABBIhBmIANBkAFqJAALJQAgACABKAIAEOYBIAAgAkEBIAAoAgARBAAaIAEgABDWAjYCAAsTACAAQbfPAyAAKAIQQRBqEOkIC3MBAX8gABAkIAAQR08EQCAAQQEQ+QMLIAAQJCECAkAgABAoBEAgACACaiABOgAAIAAgAC0AD0EBajoADyAAECRBEEkNAUG4uwNBmoIBQZ0CQZm2ARAAAAsgACgCACACaiABOgAAIAAgACgCBEEBajYCBAsLOQAgACABKAIAEOYBIAAgAkECIAAoAgARBABFBEBBixRBtsIBQaABQfDzABAAAAsgASAAENYCNgIACy8BAX8gAMAiAUEASCABQV9xQcEAa0EaSSABQTBrQQpJciAAQS1rQf8BcUECSXJyC8sBAQV/IAAoAgAiAkEDIAFBABDdAxogAigCYCIBBEAgACABKAIQIgMoAgwiBTYCTCAAIAMoAhAiBDYCVCAAIAMoAgAiAzYCUCAAIAEoAgQ2AlggACAAKAKYASAEKAIAciIENgKYASACKAJUIgEEQCAAIAEoAhAiAigCDDYCPCAAIAIoAhAiBjYCRCAAIAEoAgQ2AkggACAGKAIAIARyNgKYASAFBEAgACACKAIANgJAQawCDwsgACADNgJAQawCDwsgAEEA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IgFFDQEgAiABELoIGgwACwALIAILSwEDfyAAKAIQIgIgAigCtAEiBEEBaiIDNgK0ASACKAK4ASADIARBAmoQzwEhAiAAKAIQIAI2ArgBIAIgA0ECdGogATYCACABEPsEC4YDAQN/IAEgAUEwaiIDIAEoAgBBA3FBA0YbKAIoKAIQIgIoAtABIAIoAtQBIgJBAWogAkECahDPASECIAEgAyABKAIAQQNxQQNGGygCKCgCECACNgLQASABIAMgASgCAEEDcUEDRhsoAigoAhAiAiACKALUASIEQQFqNgLUASACKALQASAEQQJ0aiABNgIAIAEgAyABKAIAQQNxQQNGGygCKCgCECIDKALQASADKALUAUECdGpBADYCACABIAFBMGsiAyABKAIAQQNxQQJGGygCKCgCECICKALYASACKALcASICQQFqIAJBAmoQzwEhAiABIAMgASgCAEEDcUECRhsoAigoAhAgAjYC2AEgASADIAEoAgBBA3FBAkYbKAIoKAIQIgIgAigC3AEiBEEBajYC3AEgAigC2AEgBEECdGogATYCACABIAMgASgCAEEDcUECRhsoAigoAhAiASgC2AEgASgC3AFBAnRqQQA2AgAgACgCEEEBOgDwASAAEGEoAhBBAToA8AELgAEBAn9BwAEhAyAAIQIDQCACKAIQIANqKAIAIgIEQEG4ASEDIAEgAkcNAQsLIAIEQCABKAIQIgIoArwBIQEgAigCuAEiAgRAIAIoAhAgATYCvAELIAEgACABGygCEEG4AUHAASABG2ogAjYCAA8LQeenA0HQvgFBvgFBl6QBEAAACwkAQQEgABDNAgsgAQF/QRAQiAMiAyACNgIIIAMgATYCBCADIAA2AgAgAwthAQR/IAAoAgQhBAJAA0AgAiAERg0BIAJBAnQgAkEBaiECIAAoAgAiBWoiAygCACABRw0ACyAAIARBAWsiATYCBCADIAUgAUECdCIBaigCADYCACAAKAIAIAFqQQA2AgALCzsBAX8gACgCCCIBRQRAQZKiA0H1vQFBkAlB3fkAEAAACyAAKAIAIAEgACgCBGpBAWsgACgCDHBBFGxqCzsBAX8gACgCCCIBRQRAQcyhA0H1vQFByQJBhPkAEAAACyAAKAIAIAEgACgCBGpBAWsgACgCDHBBBHRqCx8AIABFBEBB+tQBQYLAAUHuBUG9jQEQAAALIAAoAggLKAAgAEEFTwRAQZDRAUGdvwFB/wNB5jgQAAALIABBAnRB6MoIaigCAAsXACAAKAIAIgAgASgCACIBSiAAIAFIawu0AgEGfyMAQRBrIgckAAJAIAAgASACELYDRQRAIAAoAgQgAUEYbGoiACEBAkAgACgCECIGIAAoAhQiAEcEQCABKAIIIQMgASgCDCEEDAELIAZBAXRBASAGGyIAQf////8DSwRAQcQAIQEMAwsgASgCCCAAQQJ0EDkiA0UEQEEwIQEMAwsgAyABKAIUIgVBAnRqQQAgACAFa0ECdBAzGiAFIAEoAhAiBiABKAIMIgRqSQRAIARBAnQhCCADIAAgBSAEayIFayIEQQJ0aiADIAhqIAVBAnQQUhogASAENgIMCyABIAA2AhQgASADNgIICyADIAQgBmogAHBBAnRqIAI2AgAgASABKAIQQQFqNgIQCyAHQRBqJAAPCyAHIAEQczYCAEG4+AgoAgBB4YUEIAcQHhoQJwALngECAn8BfgJAIAEgAkGABCABKAIAEQQAIgVFBEAgACgCECAAKAIAIgVBKGxqIgYgBTYCICAAIAVBAWo2AgAgBiEAIANFDQEgAyAAKAIgQQV0aiIFIAIpAwA3AwggAikDCCEHIAUgADYCACAFIAc3AxAgACAEOgAkIAEgBUEBIAEoAgARBAAaCyAFKAIADwtBmTBBqMEBQakCQb0cEAAAC8sDAgZ8A38jAEEQayIMJAADQAJAAkACQAJAAkAgBCACEDwiCygCAEEBaw4DAgEAAwsgCygCGCAMQRBqJAAPC0EkIQIgACsACCIFIAsrABAiB0RIr7ya8td6PqAiCGQNAiAFIAdESK+8mvLXer6gIgljRSAAKwAAIgogCysACCIGZHENAkEgIQIgBSAHoZlESK+8mvLXej5lRSAKIAahmURIr7ya8td6PmVFcg0CQSQhAiABKwAIIgUgCGQNAkEgQSRBICABKwAAIAZkGyAFIAljGyECDAILIAArAAAhBgJAAkAgACsACCIFIAMgCygCBCINQThsaiICKwAIoZlESK+8mvLXej5lBEAgBiACKwAAoZlESK+8mvLXej5lDQELIAUgAisAGKGZREivvJry13o+ZUUNASAGIAIrABChmURIr7ya8td6PmVFDQELIAUgASsDCKGZREivvJry13o+ZQRA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AEGAlwkoAgAiATYCACAAIAFBDGsoAgBqQYyXCSgCADYCACAAQQRqEKQHGiAAQThqEPYLIAALGAAgAEGUlAk2AgAgAEEgahA0GiAAEKsHCx0AIwBBEGsiAyQAIAAgASACEOQLIANBEGokACAAC64BAQZ/IwBBEGsiAiQAIAJBCGoiAyAAELEFGgJAIAMtAABFDQAgAkEEaiIDIAAgACgCAEEMaygCAGoQUCADEO0LIQQgAxBNIAIgABDsCyEFIAAgACgCAEEMaygCAGoiBhDrCyEHIAIgBCAFKAIAIAYgByABIAQoAgAoAiARNAA2AgQgAxCvBUUNACAAIAAoAgBBDGsoAgBqQQUQswULIAJBCGoQsAUgAkEQaiQAIAALDAAgAEEEahD2CyAACygBAn8jAEEQayICJAAgASgCACAAKAIASCEDIAJBEGokACABIAAgAxsLEAAgACABNwMIIABCADcDAAsCAAsUACAAQaSTCTYCACAAQQRqEE0gAAvzAwICfgV/IwBBIGsiBSQAIAFC////////P4MhAgJ+IAFCMIhC//8BgyIDpyIEQYH4AGtB/Q9NBEAgAkIEhiAAQjyIhCECIARBgPgAa60hAwJAIABC//////////8PgyIAQoGAgICAgICACFoEQCACQgF8IQIMAQsgAEKAgICAgICAgAhSDQAgAkIBgyACfCECC0IAIAIgAkL/////////B1YiBBshACAErSADfAwBCyAAIAKEUCADQv//AVJyRQRAIAJCBIYgAEI8iIRCgICAgICAgASEIQBC/w8MAQsgBEH+hwFLBEBCACEAQv8PDAELQYD4AEGB+AAgA1AiBxsiCCAEayIGQfAASgRAQgAhAEIADAELIAVBEGogACACIAJCgICAgICAwACEIAcbIgJBgAEgBmsQtQEgBSAAIAIgBhClAyAFKQMIQgSGIAUpAwAiAkI8iIQhAAJAIAQgCEcgBSkDECAFKQMYhEIAUnGtIAJC//////////8Pg4QiAkKBgICAgICAgAhaBEAgAEIBfCEADAELIAJCgICAgICAgIAIUg0AIABCAYMgAHwhAAsgAEKAgICAgICACIUgACAAQv////////8HViIEGyEAIAStCyECIAVBIGokACABQoCAgICAgICAgH+DIAJCNIaEIACEvwuZAQECfwJAIAAQLyIEIAAoAgBB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IAIoApwBQQFqNgKcASACKAKYASISIAhqKAIAIQ1BACEAA0AgACAORgRAQQAhAwNAIAMgFkcEQAJAIAMgC0YNAEEAIQcgDSgCECgClAEgEiADQQJ0IgRqKAIAKAIQKAKUASAKQfABahCEDiE1A0AgByAORg0BIAdBA3QiACACKAKsASIMIAhqKAIAIARqKAIAaiIUIANBA3QiDyACKAKkASAIaigCAGorAwAgCkHwAWogAGorAwAiNiA2IAIoAqABIAhqKAIAIA9qKwMAoiA1o6GiIjY5AwAgAigCqAEiDyAIaigCACAAaiIRIBErAwAgNqA5AwAgBCAMaigCACAIaigCACAAaiIMKwMAITYgDCAUKwMAmiI3OQMAIAQgD2ooAgAgAGoiACA3IDahIAArAwCgOQMAIAdBAWohBwwACwALIANBAWohAwwBCwtBhOEKKAIABEBBACEAQczdCi8BACECRAAAAAAAAAAAITYDQCAAIAJHBEAgNiAKQaABaiAAQQN0aisDAJmgITYgAEEBaiEADAELCyABECAhACAKIDafOQM4IAogADYCMCATQcepBCAKQTBqEDELIAUQGAwFBSACKAKoASAIaigCACAAQQN0akIANwMAIABBAWohAAwBCwALAAsgA0EBaiEDDAALAAsLQQAhAEGM3QotAAAEQEEBIAYgBkEBTBtBAWshBUHM3QovAQAhB0QAAAAAAAAAACE1A0AgACAFRwRAIAkoAhAiAigCmAEiCCAAQQJ0IgRqKAIAIRYgAEEBaiIBIQMDQCADIAZGBEAgASEADAMFIAggA0ECdGooAgAhC0EAIQBEAAAAAAAAAAAhNgNAIAAgB0cEQCAAQQN0Ig4gFigCECgClAFqKwMAIAsoAhAoApQBIA5qKwMAoSI3IDeiIDagITYgAEEBaiEADAELCyADQQN0IgAgAigCpAEgBGooAgBqKwMAIAIoAqABIARqKAIAIABqKwMAIjdEAAAAAAAAAMCiIDafoiA3IDeiIDagoKIgNaAhNSADQQFqIQMMAQsACwALCyAKIDU5AyAgE0HJjAEgCkEgahAxQcjdCigCACEBIAkoAhAoApwBIQAgChCPATkDGCAKIAA2AhAgCkGHzANB74YFIAAgAUYbNgIUIBNBlM0EIApBEGoQMQsgCSgCECgCnAEiAEHI3QooAgBGBEAgCiAJ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ACkDKDcDGCABIAApAyA3AxAgASAAKQMYNwMIAkAgACgCCCgCWCILRQ0AAkAgASsDACABKwMQYg0AIAErAwggASsDGGINACABQv////////93NwMYIAFC//////////f/ADcDACABQv/////////3/wA3AwggAUL/////////dzcDEAsgCygCCCEAA0AgDSALKAIATw0BIAVCADcDOCAFQgA3AzAgBUIANwMoIAVCADcDIAJAAkACQAJAAkACQAJAAkAgACgCAA4QAAABAQICAwQHBwUHBwcHBgcLIAAgACsDECIXIAArAyAiGKAiEzkDaCAAIAArAwgiGyAAKwMYIhygIhQ5A2AgACAXIBihIhc5A1ggACAbIByhIhg5A1AgASABKwMAIBgQKiAUECo5AwAgASABKwMYIBcQIiATECI5AxggASABKwMIIBcQKiATECo5AwggASABKwMQIBgQIiAUECI5AxAMBgsgBSAAKAIMIAAoAgggARC4BiAAIAUpAxg3A2ggACAFKQMQNwNgIAAgBSkDCDcDWCAAIAUpAwA3A1AMBQsgBSAAKAIMIAAoAgggARC4BiAAIAUpAxg3A2ggACAFKQMQNwNgIAAgBSkDCDcDWCAAIAUpAwA3A1AMBAsgBSAAKAIMIAAoAgggARC4BiAAIAUpAxg3A2ggACAFKQMQNwNgIAAgBSkDCDcDWCAAIAUpAwA3A1AMAwsgAEE4EIgDNgJwIAAoAigQZCEJIAAoAnAiESAJNgIAIBEgACgCGEH0xQhqLQAAOgAwIAUgGTkDMCAFIA42AiAgBSAFKAI4QYB/cSAPQf8AcXI2AjggECgCiAEiCSAFQSBqQQEgCSgCABEEACEJIAAoAnAiESAJNgIEIAUgECAREIAHIAArAwghEyAAKAJwIgkrAyghFyAJKwMgIRQCQAJAAkACQCAJLQAwQewAaw4HAAMBAwMDAgMLIBMgFKAhFiATIRUMAgsgEyAURAAAAAAAAOA/oiIVoCEWIBMgFaEhFQwBCyATIBShIRUgEyEWCyAAKwMQIRMgCSsDECEUIAAgFjkDYCAAIBU5A1AgACATIBSgIhM5A2ggACATIBehIhQ5A1ggASABKwMQIBUQIiAWECI5AxAgASABKwMYIBQQIiATECI5AxggASABKwMAIBUQKiAWECo5AwAgASABKwMIIBQQKiAT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ASAKKQMINwOoASABIAopAwA3A6ABIAEgDikDCDcDmAEgASAOKQMANwOQASABQbABaiABQaABaiABQZABahClDSEVIAEgEikDCDcDiAEgASASKQMANwOAASABIA4pAwg3A3ggASAOKQMANwNwIAEgCikDCDcDaCABIAopAwA3A2AgAUGAAWogAUHwAGogAUHgAGoQpQ0hFiABIBEpAwg3A1ggASARKQMANwNQIAEgCikDCDcDSCABIAopAwA3A0AgASASKQMINwM4IAEgEikDADcDMCABIA4pAwg3AyggASAOKQMANwMgIAErAzAiICABKwNYIhsgAUFAayIKKwMIIiGhoiABKwMgIiUgISAboSIioiABKwNQIh4gASsDKCIdIAErAzgiHKGiIiYgCisDACIjIBwgHaGioKCgIiREAAAAAAAAAABiBH8gASAlIBwgG6GiICYgICAbIB2hoqCgICSjIh0gIqIgG6A5A4gEIAEgHSAjIB6hoiAeoDkDgAQgHUQAAAAAAADwP2UgHUQAAAAAAAAAAGZxICAgIqIgHiAcICGhoiAjIBsgHKGioKCaICSjIhtEAAAAAAAAAABmIBtEAAAAAAAA8D9lcXEFQQALDQECQCAWIB9EAAAAAAAAAABiIBVyckUEQCAEQQFqIQQgCEEBaiAMbyEIDAELIB9EAAAAAAAAAABmBEAgFQRAIARBAWohBCAIQQFqIAxvIQgMAgsgAkEBaiECIAZBAWogDW8hBgwBCyAWBEAgAkEBaiECIAZBAWogDW8hBgwBCyAEQQFqIQQgCEEBaiAMbyEICyAEIAxIIAIgDUhyRSAEIBhOckUgAiAXSHENAAsCQEHQgQsoAgAiAisAACIbIAErA7ADZUUNACAbIAErA8ADZkUNACACKwAIIhsgASsDuANlRQ0AIBsgASsDyANmRQ0AIAcoAkghBSABIAIpAwg3AxggASACKQMANwMQQQEhAkHUgQsoAgAgBSABQRBqEKINDQMLQdSBCygCACIFKwAAIhsgASsD0ANlRQ0BIBsgASsD4ANmRQ0BIAUrAAgiGyABKwPYA2VFDQFBACECIBsgASsD6ANmRQ0CIAkoAiAhAiABIAUpAwg3AwggASAFKQMANwMAQdCBCygCACACIAEQog0hAgwCC0EBIQIMAQtBACECCyABQbAEaiQAIAIEQCATQQE6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aiAEIAVqKAIANgIAIAFBAWohAQsgAkEBaiECDAELCyAHIAE2AgAgBCECIAghAwwACwALA0AgAyAAKAIATg0BIAkgA0EBaiIIQQJ0aiEFA0AgAiAFKAIAIgRORQRAIAMgBiACQQJ0aigCACIERwRAIAYgAUECdGogBDYCACABQQFqIQELIAJBAWohAgwBCwsgBSABNgIAIAQhAiAIIQMMAAsACyAAIAE2AgggACEBCyABC+MMARN/AkACQCAARSABRXJFBEAgASgCICAAKAIgcg0BIAAoAhAiAiABKAIQRw0CAkAgACgCACIEIAEoAgBHDQAgACgCBCIDIAEoAgRHDQAgASgCGCETIAEoAhQhDiAAKAIYIRQgACgCFCEPIAQgAyABKAIIIAAoAghqIAJBABCyAiINBEBBACECIANBACADQQBKGyEIIA0oAhghECANKAIUIQsgA0EEEEohCQNAIAIgCEZFBEAgCSACQQJ0akF/NgIAIAJBAWohAgwBCwtBACECIAtBADYCAAJAAkACQAJAAkAgACgCEEEBaw4IAAEEAgQEBAMECyAEQQAgBEEAShshDCANKAIcIQQgASgCHCEDIAAoAhwhEUEAIQADQCAAIAxGDQQgDyAAQQFqIgFBAnQiCGohCiAPIABBAnQiBWooAgAhAANAIAAgCigCAE5FBEAgCSAUIABBAnRqKAIAIgdBAnRqIAI2AgAgECACQQJ0aiAHNgIAIAQgAkEDdGogESAAQQN0aisDADkDACAAQQFqIQAgAkEBaiECDAELCyAFIAtqIQogCCAOaiEHIAUgDmooAgAhAANAIAAgBygCAE5FBEACQCAJIBMgAEECdGooAgAiBUECdGooAgAiBiAKKAIASARAIBAgAkECdGogBTYCACAEIAJBA3RqIAMgAEEDdGorAwA5AwAgAkEBaiECDAELIAQgBkEDdGoiBSADIABBA3RqKwMAIAUrAwCgOQMACyAAQQFqIQAMAQsLIAggC2ogAjYCACABIQAMAAsACyAEQQAgBEEAShshDCANKAIcIQQgASgCHCEIIAAoAhwhEUEAIQADQCAAIAxGDQMgDyAAQQFqIgFBAnQiBWohCiAPIABBAnQiA2ooAgAhAANAIAAgCigCAE5FBEAgCSAUIABBAnRqKAIAIgdBAnRqIAI2AgAgECACQQJ0aiAHNgIAIAQg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ACEDIAEhAANAIAFBAXQiAkECaiEEIAUgAkEBciICSwRAIAIgASADIAJBAnRqKAIAKAIEIAMgAUECdGooAgAoAgRIGyEACyAEIAVJBEAgBCAAIAMgBEECdGooAgAoAgQgAyAAQQJ0aigCACgCBEgbIQALIAAgAUcEQCADIAFBAnRqIgQoAgAhAiAEIAMgAEECdGoiBigCADYCACAGIAI2AgAgBCgCACABNgIIIAIgADYCCCAAIQEgACAFSQ0BCwsLegEBfyABKAIIIgJFBEBBh5cDQfW9AUHJAkGs+QAQAAALIAJBAWsiAiABKAIITwRAQY23A0H1vQFByQJByCQQAAALIAAgASgCACABKAIEIAJqIAEoAgxwQQR0aiICKQIANwIAIAAgAikCCDcCCCABIAEoAghBAWs2AggL7gUBB38jAEEQayIHJAACQAJAAkACf0HctgQgASgCECIEKAKkAUEATg0AGiAAKAIUIgJBAEgNAiAEIAI2AqQBAkAgACgCGCIEIAJHBEAgACgCDCEDIAAoAhAhBQwBCyACQQF0QQEgAhsiBEH/////A0sEQEHEACEBDAULIAAoAgwgBEECdBA5IgNFBEBBMCEBDAULIAMgACgCGCIGQQJ0akEAIAQgBmtBAnQQMxogBiAAKAIUIgIgACgCECIFakkEQCAFQQJ0IQggAyAEIAYgBWsiBmsiBUECdGogAyAIaiAGQQJ0EFIaIAAgBTYCEAsgACAENgIYIAAgAzYCDAsgAyACIAVqIARwQQJ0aiABNgIAIAAgAkEBajYCFCABIAFBMGoiBCABKAIAQQNxIgJBA0YbKAIoIgMoAhAoArABRQRAIAAgACgCCCICQQFqNgIIIAAoAgQgAkECdGogAzYCACABKAIAQQNxIQILIAEgBCABIAFBMGsiBCACQQJGGygCKCIDKAIQKAKwAQR/IAIFIAAgACgCCCICQQFqNgIIIAAoAgQgAkECdGogAzYCACABKAIAQQNxC0EDRhsoAigiAigCECIAQQE2ArABIAAgACgCpAIiA0EBajYCpAIgACgCoAIgA0ECdGogATYCAEEAIQAgAigCECIDKAKgAiADKAKkAkECdGpBADYCAEGo4wMgAigCECICKALIASACKAKkAkECdGpBBGsoAgBFDQAaIAEgBCABKAIAQQNxQQJGGygCKCIEKAIQIgJB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AygCBCIFNgIAIANBBGohAyAFDQALIARBBHIhBAwBCyAGQYQxEEwEQANAIAMgAygCBCIFNgIAIANBBGohAyAFDQALIARBCHIhBAwBCyAGQaYxEEwEQCACQQRqIQIgBEEgciEEDAELIAZB3PUAEEwEQANAIAMgAygCBCIFNgIAIANBBGohAyAFDQALIARBA3IhBAwBCwJAIAZBo7EBEExFDQAgACgCECgCCCgCCCIFRQ0AIAUoAghBBEcNACAFKwMQELsHmUQAAAAAAADgP2NFDQAgBSkDGEIAUg0AIAUpAyBCAFINAANAIAMgAygCBCIFNgIAIANBBGohAyAFDQALIARBwAByIQQMAQsCQCAGQbuzARBMRQ0AIAAoAhAoAggoAggiBUUNACAFKAIIQQJLDQADQCADIAMoAgQiBTYCACADQQRqIQMgBQ0ACyAEQYAEciEEDAELIAJBBGohAgwACwALIAEgACgCECgCCCgCCCIABH8gBEGA4B9xRSAAKAAoIgBBgOAfcUVyRQRAQfWbA0GMvgFBvANB+joQAAALIAAgBHIiAkGA4B9xIABBAXEgBEEBcXJyIAJBAnFyIAJBBHFyIAJBCHFyIAJBEHFyIAJBIHFyIAJBwABxciACQYABcXIgAkGAAnFyIAJBgARxciACQYAIcXIgAkGAEHFyBSAECzYCACAHC6YBAgF/BHwjAEEgayICJAAgASgCECIBKwAQIQMgASsDYCEFIAIgASsDUEQAAAAAAADoP6JEAAAAAAAA4D+iIgQgASsAGKAiBjkDGCACIAY5AwggAiADIAVEfGEyVTAq5T+iIgOgIgU5AwAgAiAFIAMgA6ChOQMQIAAgAkECEDogAiACKwMIIAQgBKChIgQ5AxggAiAEOQMIIAAgAkECEDogAkEgaiQACzcBA38DQCABQQNHBEAgACABQQJ0aiICKAIAIgMEQCADEJsBGiACQQA2AgALIAFBAWohAQwBCwsLDAAgAEE6EM0BQQBHC2AAIABBADYCACACIAAQjAoiAARAIAEgABDkAQsCQEHs3gooAgAiAEUNACACIAAQQSIARQ0AIAAtAABFDQAgASACQezeCigCAEQAAAAAAADwP0QAAAAAAAAAABBLEIMCCwsEAEEACzABAX8jAEEQayICJAAgABAgIQAgAiABNgIEIAIgADYCAEH9ugQgAhAr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cSIDQQprDgQEAQECAAsgA0UNAwsgACACwBBmIAEtAAEhAiABQQFqIQEMAQsLQQJBASABLQABQQpGGwwBCyADQQBHCyECIABBChBmIAEgAmohAQwBCwsLyAICAn8BfCMAQYACayIDJAAgAisDECEFIAMgACkDCDcDeCADIAApAwA3A3AgAyABKQMINwNoIAMgASkDADcDYCADQeABaiADQfAAaiADQeAAahDKAwJAIAUgAysD4AFmRQ0AIAMgACkDCDcDWCADIAApAwA3A1AgAyABKQMINwNIIAMgASkDADcDQCADQcABaiADQdAAaiADQUBrEMoDIAMrA9ABIAIrAwBmRQ0AIAIrAxggAyAAKQMINwM4IAMgACkDADcDMCADIAEpAwg3AyggAyABKQMANwMgIANBoAFqIANBMGogA0EgahDKAyADKwOoAWZFDQAgAyAAKQMINwMYIAMgACkDADcDECADIAEpAwg3AwggAyABKQMANwMAIANBgAFqIANBEGogAxDKAyADKwOYASACKwMIZiEECyADQYACaiQAIAQLagICfAF/AkAgASsDECAAKwA4IgIgACsDGEQAAAAAAADgP6IiA6FmRQ0AIAErAwAgAyACoGVFDQAgASsDGCAAKwBAIgIgACsDIEQAAAAAAADgP6IiA6FmRQ0AIAErAwggAyACoGUhBAsgBAsoAQF/A38gAAR/IAAoAgQQogogAWpBAWohASAAKAIAIQAMAQUgAQsLC/oCAQZ/IwBBEGsiBiQAAkACQAJAIAAoAgAiAy0AAEEjRgRAIAMtAAEiAkHfAXFB2ABGBEBBAiEBA0AgAUEIRg0DAkAgASADai0AACICQcEAa0H/AXFBBkkEQEFJIQUMAQsgAkHhAGtB/wFxQQZJBEBBqX8hBQwBC0FQIQUgAkEwa0H/AXFBCUsNBQsgAiAFaiICIARBBHRqIQQgAUEBaiEBDAALAAtBASEBA0AgAUEIRg0CIAEgA2otAAAiAkEwa0H/AXFBCUsNAyABQQFqIQEgBEEKbCACakEwayEEDAALAAsgBiADNgIIA0AgBiABNgIMIAFBCEYNAyABIANqIgUtAAAiAkUEQCACIQQMBAsgAkE7RgRAIAZBCGpBsOgHQfwBQQhBNxDpAyICRQ0EIAVBAWohAyACKAIEIQQMBAUgAUEBaiEBDAELAAsAC0EI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QRBrIgMkACADIAI6AA8DQCABBEAgACADLQAPOgAAIAFBAWshASAAQQFqIQAMAQsLIANBEGokAAuLAgEDfyMAQRBrIggkACABQX9zQff///8HaiACTwRAIAAQQiEJIAhBBGoiCiABQfP///8DSQR/IAggAUEBdDYCDCAIIAEgAmo2AgQgCiAIQQxqENsDKAIAENoDQQFqBUH3////BwsQ2QMgCCgCBCECIAgoAggaIAQEQCACIAkgBBCnAgsgBgRAIAIgBGogByAGEKcCCyADIAQgBWoiCmshByADIApHBEAgAiAEaiAGaiAEIAlqIAVqIAcQpwILIAFBCkcEQCAJEKoFCyAAIAIQ9wEgACAIKAIIEPYBIAAgBCAGaiAHaiIAEL4BIAhBADoADCAAIAJqIAhBDGoQ0gEgCEEQaiQADwsQygEAC78CAQZ/IAAoAgghBSAAKAIMIQYDQCAAKAIAIARLBEAgBSAAKAIEIARsaiEBIAYEQCABIAYRAQALAkACQAJAAkACQAJAAkACQAJAAkAgASgCAEECaw4NAAABAQIDBAQGBwgFBQkLIAEoAgwQGAwICyABKAIMEBgMBwsgASgCDBAYDAYLIAEoAigQGAwFCyABKAIIEBgMBAtBACECAkACQAJAAkAgASgCCEEBaw4CAAEDCwNAIAEoAjQhAyACIAEoAjBODQIgAyACQQR0aigCCBAYIAJBAWohAgwACwALA0AgASgCRCEDIAIgASgCQE4NASADIAJBBHRqKAIIEBggAkEBaiECDAALAAsgAxAYCwwDCyABKAIQEBgMAgsgASgCCBAYDAELIAEoAigQGAsgBEEBaiEEDAELCyAFEBggABAYCxYAIAAgASACQoCAgICAgICAgH8QuQULCQAgABBoNgIACyMBAn8gACEBA0AgASICQQRqIQEgAigCAA0ACyACIABrQQJ1Cw8AIAAgACgCAEEEazYCAAsKACAAKAIAQQRrC98BAQN/IAAQJCAAEEdPBEAgABBHIgJBAWoiAyACQQF0QYAIIAIbIgQgAyAESxshAyAAECQhBAJAIAAtAA9B/wFGBEAgACgCACACIANBARCXBSECDAELIANBARBKIgIgACAEEB8aIAAgBDYCBAsgAEH/AToADyAAIAM2AgggACACNgIACyAAECQhAgJAIAAQKARAIAAgAmogAToAACAA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CyADQQA6AAcgBSADQQdqENIBIANBEGokAAwBCxDKAQALCw8AIAAgACgCGCABajYCGAsXACAAIAI2AhwgACABNgIUIAAgATYCGAtXAQJ/AkAgACgCACICRQ0AAn8gAigCGCIDIAIoAhxGBEAgAiABIAIoAgAoAjQRAAAMAQsgAiADQQRqNgIYIAMgATYCACABC0F/EMMCRQ0AIABBADYCAAsLMQEBfyAAKAIMIgEgACgCEEYEQCAAIAAoAgAoAigRAgAPCyAAIAFBBGo2AgwgASgCAAsnAQF/IAAoAgwiASAAKAIQRgRAIAAgACgCACgCJBECAA8LIAEoAgALJwEBfwJAIAAoAgAiAkUNACACIAEQ7wtBfxDDAkUNACAAQQA2AgALC1MBA38CQEF/IAAoAkwQwwJFBEAgACgCTCEADAELIAAjAEEQayIBJAAgAUEMaiICIAAQUCACEMwBQSAQnwEhACACEE0gAUEQaiQAIAA2AkwLIADACxoAIAAgASABKAIAQQxrKAIAaigCGDYCACAACwsAIABB4KULEKUCCwkAIAAQpwcQGAs9AQF/IAAoAhgiAiAAKAIcRgRAIAAgARCkAyAAKAIAKAI0EQAADwsgACACQQFqNgIYIAIgAToAACABEKQDCzQBAX8gACgCDCIBIAAoAhBGBEAgACAAKAIAKAIoEQIADwsgACABQQFqNgIMIAEsAAAQpAMLKgEBfyAAKAIMIgEgACgCEEYEQCAAIAAoAgAoAiQRAgAPCyABLAAAEKQDCw8AIAAgACgCACgCGBECAAsIACAAKAIQRQsEAEF/C0QBAn8CQCAAKAIAIAEoAgAgACgCBCIAIAEoAgQiAiAAIAJJIgMbEOgBIgENAEEBIQEgACACSw0AQX9BACADGyEBCyABCwgAIAAQoQcaC74PAgV/D34jAEHQAmsiBSQAIARC////////P4MhCiACQv///////z+DIQsgAiAEhUKAgICAgICAgIB/gyEMIARCMIinQf//AXEhCAJAAkAgAkIwiKdB//8BcSIJQf//AWtBgoB+TwRAIAhB//8Ba0GBgH5LDQELIAFQIAJC////////////AIMiDUKAgICAgIDA//8AVCANQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQwMAgsgA1AgBEL///////////8AgyICQoCAgICAgMD//wBUIAJCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhDCADIQEMAgsgASANQoCAgICAgMD//wCFhFAEQCADIAJCgICAgICAwP//AIWEUARAQgAhAUKAgICAgIDg//8AIQwMAwsgDEKAgICAgIDA//8AhCEMQgAhAQwCCyADIAJCgICAgICAwP//AIWEUARAQgAhAQwCCyABIA2EUARAQoCAgICAgOD//wAgDCACIAOEUBshDEIAIQEMAgsgAiADhFAEQCAMQoCAgICAgMD//wCEIQxCACEBDAILIA1C////////P1gEQCAFQcACaiABIAsgASALIAtQIgYbeSAGQQZ0rXynIgZBD2sQtQFBECAGayEGIAUpA8gCIQsgBSkDwAIhAQsgAkL///////8/Vg0AIAVBsAJqIAMgCiADIAogClAiBxt5IAdBBnStfKciB0EPaxC1ASAGIAdqQRBrIQYgBSkDuAIhCiAFKQOwAiEDCyAFQaACaiAKQoCAgICAgMAAhCISQg+GIANCMYiEIgJCAEKAgICAsOa8gvUAIAJ9IgRCABCgASAFQZACakIAIAUpA6gCfUIAIARCABCgASAFQYACaiAFKQOYAkIBhiAFKQOQAkI/iIQiBEIAIAJCABCgASAFQfABaiAEQgBCACAFKQOIAn1CABCgASAFQeABaiAFKQP4AUIBhiAFKQPwAUI/iIQiBEIAIAJCABCgASAFQdABaiAEQgBCACAFKQPoAX1CABCgASAFQcABaiAFKQPYAUIBhiAFKQPQAUI/iIQiBEIAIAJCABCgASAFQbABaiAEQgBCACAFKQPIAX1CABCgASAFQaABaiACQgAgBSkDuAFCAYYgBSkDsAFCP4iEQgF9IgJCABCgASAFQZABaiADQg+GQgAgAkIAEKABIAVB8ABqIAJCAEIAIAUpA6gBIAUpA6ABIg0gBSkDmAF8IgQgDVStfCAEQgFWrXx9QgAQoAEgBUGAAWpCASAEfUIAIAJCABCgASAGIAkgCGtqIQYCfyAFKQNwIhNCAYYiDiAFKQOIASIPQgGGIAUpA4ABQj+IhHwiEELn7AB9IhRCIIgiAiALQoCAgICAgMAAhCIVQgGGIhZCIIgiBH4iESABQgGGIg1CIIgiCiAQIBRWrSAOIBBWrSAFKQN4QgGGIBNCP4iEIA9CP4h8fHxCAX0iE0IgiCIQfnwiDiARVK0gDiAOIBNC/////w+DIhMgAUI/iCIXIAtCAYaEQv////8PgyILfnwiDlatfCAEIBB+fCAEIBN+IhEgCyAQfnwiDyARVK1CIIYgD0IgiIR8IA4gDiAPQiCGfCIOVq18IA4gDiAUQv////8PgyIUIAt+IhEgAiAKfnwiDyARVK0gDyAPIBMgDUL+////D4MiEX58Ig9WrXx8Ig5WrXwgDiAEIBR+IhggECARfnwiBCACIAt+fCILIAogE358IhBCIIggCyAQVq0gBCAYVK0gBCALVq18fEIghoR8IgQgDlStfCAEIA8gAiARfiICIAogFH58IgpCIIggAiAKVq1CIIaEfCICIA9UrSACIBBCIIZ8IAJUrXx8IgIgBFStfCIEQv////////8AWARAIBYgF4QhFSAFQdAAaiACIAQgAyASEKABIAFCMYYgBSkDWH0gBSkDUCIBQgBSrX0hCkIAIAF9IQsgBkH+/wBqDAELIAVB4ABqIARCP4YgAkIBiIQiAiAEQgGIIgQgAyASEKABIAFCMIYgBSkDaH0gBSkDYCINQgBSrX0hCkIAIA19IQsgASENIAZB//8AagsiBkH//wFOBEAgDEKAgICAgIDA//8AhCEMQgAhAQwBCwJ+IAZBAEoEQCAKQgGGIAtCP4iEIQEgBEL///////8/gyAGrUIwhoQhCiALQgGGDAELIAZBj39MBEBCACEBDAILIAVBQGsgAiAEQQEgBmsQpQMgBUEwaiANIBUgBkHwAGoQtQEgBUEgaiADIBIgBSkDQCICIAUpA0giChCgASAFKQM4IAUpAyhCAYYgBSkDICIBQj+IhH0gBSkDMCIEIAFCAYYiDVStfSEBIAQgDX0LIQQgBUEQaiADIBJCA0IAEKABIAUgAyASQgVCABCgASAKIAIgAiADIAQgAkIBgyIEfCIDVCABIAMgBFStfCIBIBJWIAEgElEbrXwiAlatfCIEIAIgAiAEQoCAgICAgMD//wBUIAMgBSkDEFYgASAFKQMYIgRWIAEgBFEbca18IgJWrXwiBCACIARCgICAgICAwP//AFQgAyAFKQMAViABIAUpAwgiA1YgASADURtxrXwiASACVK18IAyEIQwLIAAgATcDACAAIAw3AwggBUHQAmokAAvAAQIBfwJ+QX8hAwJAIABCAFIgAUL/////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QX8gDhshDgsgBUUNASAMEBggABAYDAELQX8hDgsgBkGwAmokACADQZABaiQAIA4LQwACQCAARQ0AAkACQAJAAkAgAUECag4GAAECAgQDBAsgACACPAAADwsgACACPQEADwsgACACPgIADwsgACACNwMACwsPACAAIAEgAkEAQQAQrwcLDQAgACABIAJBABDCBwu8AgACQAJAAkACQAJAAkACQAJAAkACQAJAIAFBCWsOEgAICQoICQECAwQKCQoKCAkFBgcLIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAiADEQMACw8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAAtvAQV/IAAoAgAiAywAAEEwayIBQQlLBEBBAA8LA0BBfyEEIAJBzJmz5gBNBEBBfyABIAJBCmwiBWogASAFQf////8Hc0sbIQQLIAAgA0EBaiIFNgIAIAMsAAEgBCECIAUhA0EwayIBQQpJDQALIAIL9RICEn8CfiMAQUBqIggkACAIIAE2AjwgCEEnaiEWIAhBKGohEQJAAkACQAJAA0BBACEHA0AgASENIAcgDkH/////B3NKDQIgByAOaiEOAkACQAJAAkAgASIHLQAAIgsEQANAAkACQCALQf8BcSIBRQRAIAchAQwBCyABQSVHDQEgByELA0AgCy0AAUElRwRAIAshAQwCCyAHQQFqIQcgCy0AAiALQQJqIgEhC0ElRg0ACwsgByANayIHIA5B/////wdzIhdKDQkgAARAIAAgDSAHEKgBCyAHDQcgCCABNgI8IAFBAWohB0F/IRACQCABLAABQTBrIgpBCUsNACABLQACQSRHDQAgAUEDaiEHQQEhEiAKIRALIAggBzYCPEEAIQwCQCAHLAAAIgtBIGsiAUEfSwRAIAchCgwBCyAHIQpBASAB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8ABqIAEgAkIAQgAQbCAFKQN4IQIgBSkDcCEEDAELIARCMIinQf//AXEhByAGBH4gAQUgBUHgAGogASAKQgBCgICAgICAwLvAABBsIAUpA2giCkIwiKdB+ABrIQYgBSkDYAshBCAHRQRAIAVB0ABqIAMgCUIAQoCAgICAgMC7wAAQbCAFKQNYIglCMIinQfgAayEHIAUpA1AhAwsgCUL///////8/g0KAgICAgIDAAIQhCyAKQv///////z+DQoCAgICAgMAAhCEKIAYgB0oEQANAAn4gCiALfSADIARWrX0iCUIAWQRAIAkgBCADfSIEhFAEQCAFQSBqIAEgAkIAQgAQbCAFKQMoIQIgBSkDICEEDAULIAlCAYYgBEI/iIQMAQsgCkIBhiAEQj+IhAshCiAEQgGGIQQgBkEBayIGIAdKDQALIAchBgsCQCAKIAt9IAMgBFatfSIJQgBTBEAgCiEJDAELIAkgBCADfSIEhEIAUg0AIAVBMGogASACQgBCABBsIAUpAzghAiAFKQMwIQQMAQsgCUL///////8/WARAA0AgBEI/iCAGQQFrIQYgBEIBhiEEIAlCAYaEIglCgICAgICAwABUDQALCyAIQYCAAnEhByAGQQBMBEAgBUFAayAEIAlC////////P4MgBkH4AGogB3KtQjCGhEIAQoCAgICAgMDDPxBsIAUpA0ghAiAFKQNAIQQMAQsgCUL///////8/gyAGIAdyrUIwhoQhAgsgACAENwMAIAAgAjcDCCAFQYABaiQAC78CAQF/IwBB0ABrIgQkAAJAIANBgIABTgRAIARBIGogASACQgBCgICAgICAgP//ABBsIAQpAyghAiAEKQMgIQEgA0H//wFJBEAgA0H//wBrIQMMAgsgBEEQaiABIAJCAEKAgICAgICA//8AEGxB/f8CIAMgA0H9/wJPG0H+/wFrIQMgBCkDGCECIAQpAxAhAQwBCyADQYGAf0oNACAEQUBrIAEgAkIAQoCAgICAgIA5EGwgBCkDSCECIAQpA0AhASADQfSAfksEQCADQY3/AGohAwwBCyAEQTBqIAEgAkIAQoCAgICAgIA5EGxB6IF9IAMgA0HogX1NG0Ga/gFqIQMgBCkDOCECIAQpAzAhAQsgBCABIAJCACADQf//AGqtQjCGEGwgACAEKQMINwMIIAAgBCkDADcDACAE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IAIgAzYC6AECQAJAIAEoAgQiBUUEQET////////vfyEbRP///////+//IRoMAQtE////////738hG0T////////v/yEaIAMgBRBBIgItAABFDQAgASgCACADRwRAIAIgAygCRCAFEEEQSUUNAQsgCEEAOgCsASAIIAk2AkQgCCAGNgJIIAggBzYCTCAIIAhBrAFqNgJQIAggCEGAAWo2AkAgAkHGwwEgCEFAaxBOQQROBEAgCCsDmAEhGiAIKwOQASEeIAgrA4gBIRsgCCsDgAEhHEGg3QorAwAiHUQAAAAAAAAAAGQEQCAeIB2jIR4gGyAdoyEbIBwgHaMhHCAaIB2jIRoLIAQoAhBBA0ECQQEgCC0ArAEiAkE/RhsgAkEhRhs6AIcBDAILIAMQICEFIAggAjYCNCAIIAU2AjBB4e8DIAhBMGoQKwtE////////7/8hHkT////////vfyEcCyALQQFqIQsgAxAbIQIDQCACBEAgAigCECAENgK4ASADIAIQHCECDAELCyAEKAIQIgItAIcBBEAgAigClAEiAiAaIBugRAAAAAAAAOA/ojkDCCACIB4gHKBEAAAAAAAA4D+iOQMACyAMQQFqIQwMAQsLIAAQGyECAn8CQANAIAIEQAJAIAIoAhAiAygCuAENAAJAIAMoAugBIgRFDQAgBCAAKAIQKAKMASgCMEYNACACECAhASAAECAhACAIIAIoAhAoAugBECA2AiggCCAANgIkIAggATYCIEHygAUgCEEgahA2DAQLIAMgADYC6AEgAy0AhgENACAKIAIQIBDPByEDIAIoAhAiBCADNgK4ASADKAIQIgMgCzYCiAEgAyAEKwMgOQMgIAMgBCsDKDkDKCADIAQrA1g5A1ggAyAEKwNgOQNgIAMgBCsDUDkDUCADIAQoAgg2AgggAyAEKAIMNgIMIAQtAIcBIgUEQCADKAKUASIHIAQoApQBIgQrAwA5AwAgByAEKwMIOQMIIAMgBToAhwELIAtBAWohCyADKAKAASACNgIICyAAIAIQHCECDAELCyAAEBshDgNAIA4EQCAOKAIQKAK4ASEDIAAgDhAtIQIDQCACBEAgAyACQVBBACACKAIAQQNxQQJHG2ooAigoAhAoArgBIgRHBEACfyADIARJBEAgCiADIARBAEEBEF4MAQsgCiAEIANBAEEBEF4LIgdB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ABC8AkEAIQULIAAgASgCAEYhDCAIKAJ8IgJFDQAgCygCACgCECIBKwMoIR8gASsDICEeIAErAxghIyABKwMQIRpBACACQQFGDQEaIB8gBSsDCCIboCEfIB4gBSsDACIcoCEeICMgG6AhIyAaIBygIRogCyEEIAUhAgNAIAQoAgQiAQRAIARBBGohBCACKwMQIRsgASgCECIBKwMQIRwgASsDGCEdIAErAyAhICAfIAErAyggAisDGCIhoBAiIR8gHiAgIBugECIhHiAjIB0gIaAQKiEjIBogHCAboBAqIRogAkEQaiECDAEFQQAMAwsACwALIAEoAgwhAiAAIAEoAghBNkEDEGK3IR4gACACQSRBAxBityEfRAAAAAAAAAAAIRpBAQshASAAKAIQIgIoAgwiAwR/IB4gAysDGBAyIB4gGqGhIhtEAAAAAAAA4D+iIhygIB4gG0QAAAAAAAAAAGQiAxshHiAaIByhIBogAxshGkEABSABCyAMckUEQCAAQfzdCigCAEEIQQAQYrchJCAAKAIQIQILICQgGqEhHCAkICOhIAIrAzigIR0gAisDWCEgAkAgAQ0AIAshDCAFIQIDQCAMKAIAIgRFDQECfyACRQRAIB0hGyAcIRpBAAwBCyAdIAIrAwigIRsgHCACKwMAoCEaIAJBEGoLIQEgDEEEaiEMIBtEAAAAAAAAUkCjIRsgGkQAAAAAAABSQKMhGiAEEBshAgNAIAIEQCACKAIQKAKUASIDIBogAysDAKA5AwAgAyAbIAMrAwigOQMIIAQgAhAcIQIMAQUgASECDAILAAsACwALIAooAhAoAowBIgFCADcDCCABQgA3AxAgASAeICQgHKCgRAAAAAAAAFJAozkDGCABIB8gICAkIB2goKBEAAAAAAAAUkCjOQMgIAUQGCAKEBshAgNAIAIEQAJAIAIoAhAiASgC6AEiAwRAIAMoAhAoAowBIgMgASgClAEiBCsDACABKwMgIhtEAAAAAAAA4D+ioSIcOQMIIAQrAwghHSABKwMoIRogAyAbIBygOQMYIAMgHSAaRAAAAAAAAOA/oqEiGzkDECADIBogG6A5AyAMAQsgASgCgAEoAggiA0UNACADKAIQKAKUASIDIAEoApQBIgErAwA5AwAgAyABKwMIOQMICyAKIAIQHCECDAELCyAAKAIQKAKMASIBIAoo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DaEgCCALoaMgCSALoaIgDaAhBQwFCyACIAogCiANoSAIIAuhoyIMIAiioSIOIAUgBSAGoSAJIAehoyIGIAmioSIFoSAGIAyhIgejOQMAIAYgDqIgBSAMoqEgB6MhBQwECyAAIAFBABDHAkF/RgRAIAEgAEEBEMcCQX9HBEAgByEMIAYhDgwDCyANIAogASAAQQAQxwJBf0YiABshDiALIAggABshDAwCCyAJIQwgBSEOIAAgAUEBEMcCQX9GDQJBACEPIAshDCANIQ4gCCEHIAohBiABIABBABDHAkF/Rw0EDAILIAggC6EgBSAKoaIgCiANoSAJIAihomEEQCACIAk5AwAMAwsgAiAHOQMAIAYhBQwCCyAJIQcgBSEGCyACIAwgB6BEAAAAAAAA4D+iOQMAIA4gBqBEAAAAAAAA4D+iIQULIAMgBTkDAEEBIQ8LIA8L9gECCHwBfyAAKwMIIQMgACsDACEEIAErAwghBSABKwMAIQYCfyAAKAIQIgsoAgQgAEYEQCALKAIADAELIABBGGoLIgsrAwghCCALKwMAIQcCfyABKAIQIgAoAgQgAUYEQCAAKAIADAELIAFBGGoLIgArAwghCSAAKwMAIQogAkF/IAcgBKEiByAFIAOhoiAIIAOhIgUgBiAEoaKhIgZEAAAAAAAAAABkIAZEAAAAAAAAAABjGyIANgIAIAJBfyAHIAkgA6GiIAUgCiAEoaKhIgNEAAAAAAAAAABkIANEAAAAAAAAAABjGyIBNgIEIAIgACABbDYCCAtNAQJ8An9BASAAKAIAIgArAwAiAiABKAIAIgErAwAiA2QNABpBfyACIANjDQAaQQEgACsDCCICIAErAwgiA2QNABpBf0EAIAIgA2MbCwvgDgMUfwp8AX4jAEHwAGsiAyQAIAFBACABQQBKGyESIAFBKBAZIQ8DQCACIBJGRQRAIAAgAkECdGooAgAoAgQgDGohDCACQQFqIQIMAQsLIAxBGBAZIhBBGGshBQNAIAggEkcEQCAPIAhBKGxqIgQgECAGQRhsajYCACAAIAhBAnRqKAIAIg0oAgQhCkEAIQJE////////738hFkT////////v/yEXRP///////+//IRlE////////738hGANAIAIgCkYEQCAEIBc5AyAgBCAZOQMYIAQgFjkDECAEIBg5AwggBCAFIAZBGGxq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BCsDGKEgAisDCKEhBSADKAIgIQMgBCgCICEEIAAoAgQgACgCAGsgASgCBCABKAIAa0kEQCADIAQgAiAFEOwFDwsgBCADIAIgBZoQ7AUL4gIBCX8gACgCACEFIAAoAgQhACMAQRBrIgMkACADQb8DNgIMAkAgACAFa0ECdSIGQQJIDQAgBkECa0EBdiEIA0AgCEEASA0BIAUgCEECdGohBAJAIAZBAkgNACAGQQJrQQF2IgkgBCAFayIAQQJ1SA0AIAUgAEEBdSIBQQFyIgJBAnRqIQAgBiABQQJqIgFKBEAgASACIAAoAgAgACgCBCADKAIMEQAAIgEbIQIgAEEEaiAAIAEbIQALIAAoAgAgBCgCACADKAIMEQAADQAgBCgCACEBA0ACQCAEIAAiBCgCADYCACACIAlKDQAgBSACQQF0IgdBAXIiAkECdGohACAGIAdBAmoiB0oEQCAHIAIgACgCACAAKAIEIAMoAgwRAAAiBxshAiAAQQRqIAAgBxshAAsgACgCACABIAMoAgwRAABFDQELCyAEIAE2AgALIAhBAWshCAwACwALIANBEGokAAtGAgF8An8gACgCBCEDIAAoAgAhAAN8IAAgA0YEfCABBSAAKAIAIgIrAwggAisDGKEgAisDEKIgAaAhASAAQQRqIQAMAQsLC2wCAX8CfCMAQRBrIgIkACACIAE2AgwgASAANgIgIAAgAkEMahDAASAAIAIoAgwiASsDECIDIAArAxigIgQ5AxggACADIAErAwggASsDGKGiIAArAyCgIgM5AyAgACADIASjOQMQIAJBEGokAAsnACAAIAAoAhhFIAAoAhAgAXJyIgE2AhAgACgCFCABcQRAEJMBAAsLMAEDfyAAKAIEIgQgAUEEaiICayEDIAIgBEcEQCABIAIgAxBSGgsgACABIANqNgIEC34BA38gACgCACIBQTRqIAEoAjghAyABKAI0IQEDQAJAIAEgA0YNACABKAIAIABGDQAgAUEEaiEBDAELCyABEPANIAAoAgQiAUEoaiABKAIsIQMgASgCKCEBA0ACQCABIANGDQAgASgCACAARg0AIAFBBGohAQwBCwsgARDwDQvqAQEIfyAAQfevAxDLAiECIAEoAgAhBiMAQRBrIgMkACADQQhqIgQgAhCxBRoCQCAELQAARQ0AIAIgAigCAEEMaygCAGoi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oCEMIANBAWohAyAAIAIQHCECDAALAAtB2N0KAnwCQCAAQdwaECYiA0UNACADLQAARQ0AQcDdCisDACADEKoCECIMAQsgDEEBIAcgB0EBTBu4oyAEt5+iRAAAAAAAAPA/oAsiDDkDAEGY3QooAgAgAXJFBEAgBCAEIAwQgwMhASAAKAIQIAE2AqABIAQgBEQAAAAAAADwPxCDAyEBIAAoAhAgATYCpAEgBEHM3QovAQBEAAAAAAAA8D8QgwMhASAAKAIQIAE2AqgBIARBACAEQQBKGyEBQczdCi8BACEIIARBAWoiCkEEEBkhB0EAIQMDQCABIANGRQRAIAcgA0ECdGogCkEEEBkiCTYCAEEAIQYDQCABIAZGRQRAIAkgBkECdGogCEEIEBkiCzYCAEEAIQIDQCACIAhGRQRAIAsgAkEDdGpCADcDACACQQFqIQIMAQsLIAZBAWohBgwBCwsgCSABQQJ0akEANgIAIANBAWohAwwBCwsgByABQQJ0akEANgIAIAAoAhAgBzYCrAELIAVBEGokACAECykBAX8jAEEQayICJAAgAiABNwMAIABBKUHxqwEgAhChARogAkEQaiQAC0sAIAAQNyAARwRAIABBwilBmAJBARA1GgsgACABRgRAIAAQNygCECABNgK8AQsgABB6IQADQCAABEAgACABEIoOIAAQeSEADAELCwuRAgEEfyABQcIpQZgCQQEQNRogASgCECICIAAoAhAiAykDEDcDECACIAMpAyg3AyggAiADKQMgNwMgIAIgAykDGDcDGCABKAIQIgIgACgCECIDLQCTAjoAkwIgAkEwaiADQTBqQcAAEB8aIAEoAhAgACgCECgCtAEiAjYCtAEgAkEBakEEEBkhAyABKAIQIAM2ArgBIAJBACACQQBKG0EBaiEFQQEhAgNAIAAoAhAhAyACIAVGRQRAIAJBAnQiBCADKAK4AWooAgAQkw4hAyABKAIQKAK4ASAEaiADNgIAIAAoAhAoArgBIARqKAIAIAMQiw4gAkEBaiECDAELCyABKAIQIAMoAgw2AgwgA0EANgIMC3MBAX8gACgCECgCwAEQGCAAKAIQKALIARAYIAAoAhAoAtABEBggACgCECgC2AEQGCAAKAIQKALgARAYIAAoAhAoAngQvQEgACgCECgCfBC9ASAAKAIQKAIIIgEEQCAAIAEo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ACACCzUBAX8CfwJAQazfCigCACIBRQ0AIAAgARBBIgFFDQAgAS0AAEUNAEEBIAEQa0UNARoLQQALCzsBAn8CQCAAKAIQIgIoAugBIgFFDQAgASgCECIBLQCQAg0AIAEoAowCIAIoAvQBQQJ0aigCACEACyAAC/IBAQZ/QQEhAQNAIAEgACgCECICKAK0AUpFBEAgAigCuAEgAUECdGooAgAQoQ4gAUEBaiEBDAELCyAAEBshAgNAIAIEQCACKAIQIgEoAugBRQRAIAEgADYC6AELIAAgAhAtIQMDQCADBEACQCADKAIQKAKwASIBRQ0AA0AgASABQTBrIgUgASgCAEEDcSIGQQJGGygCKCgCECIELQCsAUEBRw0BIAEgBSAEKALoAQR/IAYFIAQgADYC6AEgASgCAEEDcQtBAkYbKAIoKAIQKALIASgCACIBDQALCyAAIAMQMCEDDAELCyAAIAIQHCECDAELCwu1AwEIfyMAQRBrIgQkACAAEBshAQN/IAEEfyABKAIQIgYtALUBQQdGBH8gARCyCiABKAIQBSAGC0EANgLoASAAIAEQHCEBDAEFQQELCyEFA0ACQCAAKAIQIgEoArQBIAVOBEAgASgCuAEgBUECdGooAgAiAxAbIQEDQCABRQ0CIAMgARAcAkAgASgCEC0AtQEEQCABECAhAiAEIAAQIDYCBCAEIAI2AgBB1/cDIAQQKyADIAEQuAEMAQsgAygCECgCiAIhAiABEKYBIAFHBEBB4aADQfq9AUGTAUGnnQEQAAALIAEoAhAiByACNgLwASACKAIQIgIgAigC7AEgBygC7AFqNgLsASABKAIQIgJBBzoAtQEgAiADNgLoASADIAEQLSECA0AgAkUNAQJAIAIoAhAoArABIgFFDQADQCABIAFBMGsiByABKAIAQQNxQQJGGygCKCgCECIILQCsAUEBRw0BIAggAzYC6AEgASAHIAEoAgBBA3FBAkYbKAIoKAIQKALIASgCACIBDQALCyADIAIQMCECDAALAAshAQwACwALIARBEGokAA8LIAVBAWohBQwACwAL9wYBCX8gABCgDiEEIAEQoA4iBSgCECgC9AEiByAEKAIQKAL0ASIGSgRAAkAgBCACKAIQIggoArABIgNBMEEAIAMoAgBBA3EiCUEDRxtqKAIoRgRAIANBUEEAIAlBAkcbaigC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BCsDeKAiCiAIIApkGyEICyAEKALoASABKALoAUYEQCAHIAkgBCsDgAGgIgogByAKZBshBwsgAyAGciEDIAJBAWohAgwBCwsgABBhIQIgACgCECEBAkAgACACRg0AIAEoAgxFDQAgABA3QQEhAyAAKAIQIQEoAhAtAHRBAXENACAHIAErA1igIQcgCCABKwM4oCEICyABIAc5A4ABIAEgCDkDeCAAEGEgAEcEQCAFIAAoAhAiACgC6AFByABsaiIBIAErAxgiCSAHIAcgCWMbOQMYIAUgACgC7AFByABsaiIAIAArAxAiByAIIAcgCGQbOQMQCyADC3ABAn9BASEEA0AgBCAAKAIQIgMoArQBSkUEQCADKAK4ASAEQQJ0aigCACABIAIQrA4gBEEBaiEEDAELCyADIAEgAysDEKI5AxAgAyACIAMrAxiiOQMYIAMgASADKwMgojkDICADIAIgAysDKKI5AygL5QQCCH8EfEEBIQIDQCACIAAoAhAiAygCtAFKRQRAIAMoArgBIAJBAnRqKAIAIAEQrQ4gAkEBaiECDAELCyAAEGEhAiAAKAIQIQMCQCAAIAJGBEAgAygC7AEhBUQAAMD////fwSEKRAAAwP///99BIQsgAygC6AEiCCEEA0AgBCAFSgRAIAMoArQBIgBBACAAQQBKG0EBaiEAQQEhAgNAIAAgAkYNBCAKIAMoArgBIAJBAnRqKAIAKAIQIgQrAyBEAAAAAAAAIECgIgwgCiAMZBshCiALIAQrAxBEAAAAAAAAIMCgIgwgCyAMYxshCyACQQFqIQIMAAsABQJAIAMoAsQBIARByABsaiIAKAIAIgZFDQBBASECIAAoAgQiBygCACIARQ0AA0AgACgCECIALQCsASIJRSACIAZOckUEQCAHIAJBAnRqKAIAIQAgAkEBaiECDAELCyAJDQAgBkECayECIAArAxAgACsDWKEhDCAHIAZBAnRqQQRrIQADQCAAKAIAKAIQIgAtAKwBBEAgByACQQJ0aiEAIAJBAWshAgwBCwsgCiAAKwMQIAArA2CgIg0gCiANZBshCiALIAwgCyAMYxshCwsgBEEBaiEEDAELAAsACyADKALoASEIIAMoAuwBIQUgAygChAIoAhAoAvQBtyEKIAMoAoACKAIQKAL0AbchCwsgASgCECgCxAEiACAFQcgAbGooAgQoAgAoAhArAxghDCAAIAhByABsaigCBCgCACgCECsDGCENIAMgCjkDICADIAs5AxAgAyANIAMrA4ABoDkDKCADIAwgAysDeKE5AxgLogECAnwBfwJAAn9B/////wcgAEGOIRAmIgNFDQAaIAAQOCEAIAMQqgIhASAAQQBIDQFBACABRAAAAAAAAAAAYw0AGiAAuCECIAFEAAAAAAAA8D9kBEBB/////wdEAADA////30EgAaMgAmMNARoLIAEgAqIiAZlEAAAAAAAA4EFjBEAgAaoPC0GAgICAeAsPC0HimANB5oEBQcoAQa/dABAAAAuIAgIHfwF8IwBBEGsiBCQAIABB/N0KKAIAQQhBABBiIAAQ+wW3IQggACgCECIBKALoASEDIAEoAoQCIQUgASgCgAIhBgNAIAMgASgC7AFKRQRAAkAgA0HIAGwiByABKALEAWoiAigCAEUNACACKAIEKAIAIgJFBEAgABAgIQEgBCADNgIEIAQgATYCAEHbuAQgBBA2DAELIAYgAiACKAIQKwNYIAigIAErA2CgQQAQowEaIAAoAhAiASgCxAEgB2oiAigCBCACKAIAQQJ0akEEaygCACICIAUgAigCECsDYCAIoCABKwNAoEEAEKMBGgsgA0EBaiEDIAAoAhAhAQwBCwsgBEEQaiQAC9sCAgp/AXwgAEH83QooAgBBCEEAEGIhB0EBIQEDQCAAKAIQIgUoArQBIgQgAUgEQCAHtyELQQEhAQNAIAEgBEpFBEAgAUECdCEJIAFBAWoiByEBA0AgBSgCuAEiAiAJaigCACEDIAEgBEpFBEAgAiABQQJ0aigCACIGIAMgAygCECgC6AEgBigCECgC6AFKIgIbIggoAhAiCigC7AEgAyAGIAIbIgMoAhAiBigC6AEiAk4EQCAIIAMgAkHIAGwiAiAKKALEAWooAgQoAgAoAhAoAvgBIAYoAsQBIAJqKAIEKAIAKAIQKAL4AUgiAhsoAhAoAoQCIAMgCCACGygCECgCgAIgC0EAEKMBGiAAKAIQIgUoArQBIQQLIAFBAWohAQwBCwsgAxCwDiAAKAIQIgUoArQBIQQgByEBDAELCwUgBSgCuAEgAUECdGooAgAQ+wUgAUEBaiEBDAELCwucAQIDfwF8IABB/N0KKAIAQQhBABBiIAAQ+wW3IQRBASEBA0AgASAAKAIQIgIoArQBSkUEQCACKAK4ASABQQJ0aigCACICEPsFIAAoAhAiAygCgAIgAigCECgCgAIgAysDYCAEoEEAEKMBGiACKAIQKAKEAiAAKAIQIgMoAoQCIAMrA0AgBKBBABCjARogAhCxDiABQQFqIQEMAQsLC3UBAX8jAEEgayICJABBmPIJQYzyCSkCADcCACACIAE2AhQgARA7IQEgAkEANgIcIAIgATYCGCACQZTyCTYCECACQfjwCTYCDAJ/IAAEQCAAIAJBFGogAkEMahD1DgwBCyACQRRqIAJBDGoQsAgLIAJBIGokAAulAwIHfwF8IABB/N0KKAIAQQhBABBityEIIAAoAhAiASgC6AEhBEEBIQUDQCABKALsASAESARAA0ACQCAFIAEoArQBSg0AIAEoArgBIAVBAnRqKAIAELMOIAVBAWohBSAAKAIQIQEMAQsLBQJAIARByABsIgYgASgCxAFqIgEoAgBFDQAgASgCBCgCACIHRQ0AIAcoAhAoAvgBIQECQAJAA0AgAUEATA0CIAAQYSgCECgCxAEgBmooAgQgAUEBayIBQQJ0aigCACICKAIQIgMtAKwBRQ0BIAAgAhCpDkUNAAsgAigCECEDCyACIAAoAhAoAoACIAMrA2AgCKBBABCjARoLIAAoAhAoAsQBIAZqKAIAIAcoAhAoAvgBaiEBAkADQCABIAAQYSgCECgCxAEgBmooAgBODQIgABBhKAIQKALEASAGaigCBCABQQJ0aigCACICKAIQIgMtAKwBRQ0BIAFBAWohASAAIAIQqQ5FDQALIAIoAhAhAwsgACgCECgChAIgAiADKwNYIAigQQAQowEaCyAEQQFqIQQgACgCECEBDAELCwuaAQECfwJAIAAQYSAARg0AIAAQrw4gACgCECIBKAKAAiABKAKEAhCyAyIBBEAgASgCECIBIAEoApwBQYABajYCnAEMAQsgACgCECIBKAKAAiABKAKEAkQAAAAAAADwP0GAARCjARoLQQEhAQNAIAEgACgCECICKAK0AUpFBEAgAigCuAEgAUECdGooAgAQtA4gAUEBaiEBDAELCwvFBwIKfwN8IAAoAhAiASgC6AEhCSABKALEASEEA0AgCSABKALsAUpFBEAgBCAJQcgAbGohBUEAIQIDQCAFKAIAIAJKBEAgBSgCBCACQQJ0aigCACIKKAIQIgYr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G6AiEZlEAAAAAAAA4EFjBEAgEaoMAQtBgICAgHgLt6AiESARIBRjGyIRmUQAAAAAAADgQWMEQCARqgwBC0GAgICAeAsiByAHIAlIGzYCrAEgAyADKAKcASIDIAEoApwBIgEgASADSBs2ApwBDAELIAEoAhAiASgCYA0AIAkgAyAHtyABKAKcARCjARoLIAVBAWohBQwACwALAAsLIAFBwAFqIQEDQCABKAIAIgQEQEEAIQMCQCAEKAIQIgUoApACIgFFDQADQCABIANBAnRqKAIAIgFFDQEgABC0AiICKAIQQQI6AKwBIAIgASABQTBqIgYgASgCAEEDcUEDRhsoAigCfyABKAIQIgUrAzggBSsDEKEiEZlEAAAAAAAA4EFjBEAgEaoMAQtBgICAgHgLIghBACAIQQBKIgcbIglBAWq4IAUoApwBEKMBGiACIAEgAUEwayIFIAEoAgBBA3FBAkYbKAIoQQBBACAIayAHGyIIQQFquCABKAIQKAKcARCjARogAigCECABIAYgASgCAEEDcSICQQNGGygCKCgCECgC9AEgCUF/c2oiBiABIAUgAkECRhsoAigoAhAoAvQBIAhBf3NqIgEgASAGShs2AvQBIANBAWohAyAEKAIQIgUoApACIQEMAAsACyAFQbgBaiEBDAELCwJAIAAoAhAiASgCtAFBAEoEfyAAELQOIAAQsw4gABCxDiAAELAOIAAoAhAFIAELKAIIIgEoAlRBA0cNACABKwNAIhEgASsDSCISokQAAAAAAADwP2UNACAAEK8OIAAoAhAiASgCgAIgASgChAIgEiARIAEoAnRBAXEbIhFEAAAAAOD/70AgEUQAAAAA4P/vQGMbQegHEKMBGgsCQCAAQQIgABCuDhDOBEUNACAAKAIQIgMoAugBIQUDQAJAAkAgAygC7AEiCyAFTgRAQQAhByADKALEASAFQcgAbGoiCCgCACIJQQAgCUEAShshAkEAIQEDQCABIAJGDQNBACEEAkAgCCgCBCABQQJ0aigCACIHKAIQIgooApACIgxFDQADQCAMIARBAnRqKAIAIgZFDQEgBkFQQQAgBigCAEEDcSINQQJHG2ooAigoAhAoAvQBIAVKDQQgBEEBaiEEIAZBMEEAIA1BA0cbaigCKCgCECgC9AEgBUwNAAsMAwtBACEEAkAgCigCiAIiCkUNAANA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CigCACEmQcTeCigCACEgQbjeCigCACFAQbTeCigCACFBQbzeCigCACFCQbDeCigCACFDQaTeCigCACFEQaDeCigCACFFQZzeCigCACFGQZjeCigCACFHQZTeCigCACFIQazeCigCACFJQYjeCigCACFKQYTeCigCACFLQYDeCigCACFMQZTfCigCACFNQcjfCigCACFOQeDfCigCACFPQczfCigCACFQQdDfCigCACFRQdTfCigCACFSQbjfCigCACFTQZDfCigCACFUQcTfCigCACFVQeTfCigCACFWQYTfCigCACFXQYjfCigCACFYQYzfCigCACFZQfjeCigCACFaQfTeCigCACFbQcDfCigCACFcQbzfCigCACFdQZjfCigCACFeQazfCigCACFfQazfCkEANgIAQZjfCiAHQQJBkjtBABAhNgIAQbzfCiAHQQJB9LQBQQAQITYCAEHA3wogB0ECQdfyAEEAECE2AgBB9N4KIAdBAkG1IUEAECEiAzYCACADRQRAQfTeCiAHQQJBtSFB74YFECE2AgALQQAhBkGM3wpBADYCAEH43gpBADYCAEGI3wogB0ECQZ6dAUEAECE2AgBBhN8KIAdBAkHtjAFBABAhNgIAQeTfCiAHQQJBmt4AQQAQITYCAEHE3wpBADYCAEGQ3wogB0ECQaD0AEEAECE2AgBBuN8KIAdBAkGcKEEAECE2AgBB1N8KQQA2AgBB0N8KIAdBAkGZnQFBABAhNgIAQczfCiAHQQJB6IwBQQAQITYCAEHg3wogB0ECQZHeAEEAECE2AgBByN8KQQA2AgBBlN8KQQA2AgBBgN4KIAdBAUG9IUEAECE2AgBBhN4KIAdBAUG4/ABBABAhNgIAQYjeCiAHQQFBjJsBQQAQITYCAEGs3gpBADYCAEGU3gogB0EBQe2MAUEAECE2AgBBmN4KIAdBAUGenQFBABAhNgIAQZzeCkEANgIAQaDeCiAHQQFBoPQAQQAQITYCAEGk3gpBADYCAEGw3gpBADYCAEG83gogB0EBQYSFAUEAECE2AgBBtN4KIAdBAUGQNUEAECE2AgBBuN4KIAdBAUHPM0EAECE2AgBBxN4KIAdBAUH2FkEAECE2AgBBwN4KIAdBAUHl5gBBABAhNgIAQcjeCiAHQQFB7uUAQQAQITYCAEHM3gogB0EBQfmsAUEAECE2AgBBqN4KQQA2AgBB3N4KQQA2AgBB7N0KIAdBAEGEhQFBABAhNgIAIAdBwhJBARCVASIDQcIpQZgCQQEQNRogA0GE+ABBh6UBEOkBIAQoAhArAxAhYiAIKAIQKwMQIWQgAyAIIAQgACgCECgCdEEBcSIDGyINEM8OIQkgByAEIAggAxsiChDPDiEIQQAhBANAIAQgDEYEQCAGRQRAIAcgCSAIQQBBARBeIQYLIAZB9N4KKAIAQcSVAxByIAAoAhAoApABIQMgBygCECIEIAc2ArwBIAQgAzYCkAEgByATEIYCIAcQjg4gBxCXDwJAIAcQiA8iAw0AIAcQtg4gBygCEEHAAWohAyAJKAIQKwMQIAgoAhArAxCgRAAAAAAAAOA/oiFhIA0oAhAiBCsDECAEKwNgoSAKKAIQIgQrAxCgIAQrA1igRAAAAAAAAOA/oiFjA0AgAygCACIDBEACQCADIAlGBEAgAygCECIFIGE5AxAgBSBkOQMYDAELIAMoAhAhBSADIAhGBEAgBSBhOQMQIAUgYjkDGAwBCyAFIGM5AxgLIAVBuAFqIQMMAQsLIAcQ6A4gB0EAENIOIgMNACAHELEDIAkoAhAhAyANKAIQIgQrAxghYSAEKwMQAn8gACgCEC0AdEEBcQRAIGEgAysDEKAhYSADQRhqDAELIGEgAysDGKEhYSADQRBqCysDAKEhYkEAIREDQCAMIBFGBEBBmN8KIF42AgBBrN8KIF82AgBBvN8KIF02AgBBwN8KIFw2AgBB9N4KIFs2AgBB+N4KIFo2AgBBjN8KIFk2AgBBiN8KIFg2AgBBhN8KIFc2AgBB5N8KIFY2AgBBxN8KIFU2AgBBkN8KIFQ2AgBBuN8KIFM2AgBB1N8KIFI2AgBB0N8KIFE2AgBBzN8KIFA2AgBB4N8KIE82AgBByN8KIE42AgBBlN8KIE02AgBBgN4KIEw2AgBBhN4KIEs2AgBBiN4KIEo2AgBBrN4KIEk2AgBBlN4KIEg2AgBBmN4KIEc2AgBBnN4KIEY2AgBBoN4KIEU2AgBBpN4KIEQ2AgBBsN4KIEM2AgBBvN4KIEI2AgBBtN4KIEE2AgBBuN4KIEA2AgBBxN4KICA2AgBBwN4KICY2AgBByN4KICU2AgBBzN4KICQ2AgBBqN4KIB82AgBB3N4KIB42AgBB7N0KIBg2AgBB0N0KIBk2AgAgBxCNDiAHELoBDAsFIBIgEUECdGohAwNAIAMoAgAiCSgCECIEQfgAaiEDIAQtAHANAAsgBCgCfCINKAIQIQMCQCAGIA1GBEAgAygCfEUNAQsgCSADKAIIKAIAIgMoAgQQ9wYiBCADKAIINgIIIAQgYSADKwAQImSaIAMrABgiYyAAKAIQKAJ0QQFxIgUboDkDGCAEIGIgYyBkIAUboDkDECAEIAMoAgw2AgwgBCBiIAMrACgiZCADKwAgImMgBRugOQMgIAQgYSBjmiBkIAUboDkDKEEAIQoDQAJAIAogAygCBE8NACAKQQR0Ig4gBCgCAGoiCCBiIAMoAgAgDmoiBSsACCJkIAUrAAAiYyAAKAIQImAoAnRBAXEiBRugOQMAIAggYSBjmiBkIAUboDkDCCACIAgpAwA3A9AjIAIgCCkDCDcD2CMgCkEBaiIIIAMoAgRPDQAgCEEEdCInIAQoAgBqIgggYiADKAIAICdqIicrAAgiZCAnKwAAImMgBRugOQMAIAggYSBjmiBkIAUboDkDCCAUIAgpAwA3AwAgFCAIKQMINwMIIA5BIGoiDiAEKAIAaiIIIGIgAygCACAOaiIOKwAIImQgDisAACJjIAUboDkDACAIIGEgY5ogZCAFG6A5AwggGyAIKQMANwMAIBsgCCkDCDcDCCACIGIgAygCACAKQQNqIgpBBHRqIggrAAgiZCAIKwAAImMgBRugOQOAJCACIGEgY5ogZCAFG6A5A4gkIGBBEGogAkHQI2oQ5QQMAQsLIAkoAhAoAmAiA0UNACANKAIQKAJgIgQrAEAhZCAEKwA4IWMgACgCECgCdCEEIANBAToAUSADIGIgZCBjIARBAXEiBBugOQM4IAMgYSBjmiBkIAQboDkDQCAAIAMQhwILIBFBAWohEQwBCwALAAsgAigCiAkQGAwNBSASIARBAnRqIQMDQCADKAIAIgUoAhAiDkH4AGohAyAOLQBwDQALAn8gDSAFQTBBACAFKAIAQQNxQQNHG2ooAihGBEAgByAJIAggBRDODgwBCyAHIAggCSAFEM4OCyEDIAUoAhAiDiADNgJ8AkAgBg0AQQAhBiAOLQAsDQAgDi0AVA0AIAMoAhAgBTYCfCADIQYLIARBAWohBAwBCwALAAsgBUUEQCAEIAggDyAHIAwgExDNDgwGCyASKAIAIQZBACEDIAxBBBAZIQcDQCADIAxGBEAgByAMQQRBqwMQlAEgBCgCECIJKwAQIWIgBigCECIEKwAQIWQgAkGgHmoiAyAEKwAYIAkrABigImE5AwAgAiBkIGKgImI5A5geIAQrADghZCAIKAIQIggrABAhYyACQagdaiIGIAQrAEAgCCsAGKA5AwAgAiBkIGOgImM5A6AdIAkrA2AhZCAIKwNYIWUgBygCACEEIAIgAykDACJyNwPYIyACIAIpA5geInM3A9AjIBQgczcDACAUIHI3AwggGyAGKQMANwMIIBsgAikDoB03AwAgFSAGKQMANwMIIBUgAikDoB03AwAgBCAEQVBBACAEKAIAQQNxQQJHG2ooAiggAkHQI2pBBEGE0woQngEgBCgCECgCYCIEIGIgZKAiZCBjIGWhImegRAAAAAAAAOA/oiJiOQM4QQEhCiAEQQE6AFEgBCBhIAQrAyAiY0QAAAAAAAAYQKBEAAAAAAAA4D+ioDkDQCBiIAQrAxhEAAAAAAAA4D+iImWgIWggYiBloSFrIGMgYUQAAAAAAAAIQKAiaqAhYUQAAAAAAAAAACFlRAAAAAAAAAAAIWYCQANAAkAgBSAKRgRAIAUgDCAFIAxLGyEJIGcgZ6AgZKBEAAAAAAAACECjIXAgZCBkoCBnoEQAAAAAAAAIQKMhcQwBCyAHIApBAnRqKAIAIQQCQCAKQQFxBEAgBCgCECgCYCEIIApBAUYEQCBiIAgrAxhEAAAAAAAA4D+iImOgIWYgYiBjoSFlCyAIKwMgIWMgAiACKQOYHjcD0CMgAiACKwOYHjkD4CMgAiACKwOgHTkD8CMgAiADKQMANwPYIyACIGogY0QAAAAAAAAYQKChImpEAAAAAAAAGMCgImM5A+gjIAIgYzkD+CMgFSAGKQMANwMIIBUgAikDoB03AwAgAiBmOQOQJCACIGU5A8AkIAIgajkDuCQgAiBlOQOwJCACIGo5A6gkIAIgZjkDoCQgAiAGKwMAOQOYJCACIAMrAwA5A8gkIGogBCgCECgCYCsDIEQAAAAAAADgP6KgIWMMAQsgAiACKQOYHjcD0CMgAiBrOQPgIyACIGg5A5AkIAIgYTkDiCQgAiBoOQOAJCACIGE5A/gjIAIgazkD8CMgAiACKwOoHSJjOQOYJCACIAIrA6AdImk5A7AkIAIgYzkDqCQgAiBpOQOgJCACIGFEAAAAAAAAGECgImM5A7gkIAIgAykDADcD2CMgAiADKwMAOQPoIyACIGM5A8gkIAIgAisDmB45A8AkIGEgBCgCECgCYCsDICJpRAAAAAAAAOA/oqBEAAAAAAAAGECgIWMgYSBpRAAAAAAAABhAoKAhYQsgAkEINgLEHCACIAMpAwA3A+gEIAIgBikDADcD2AQgAiACKQOYHjcD4AQgAiACKQOgHTcD0AQgAiACQdAjajYCwBwgAiACKQLAHDcDyAQCQCACQeAEaiACQdAEaiACQcgEaiACQcgZaiAoELUPIggEQCACKALIGSINDQELIAgQGAwDCyAEKAIQKAJgIglBAToAUSAJIGM5A0AgCSBiOQM4IAQgBEFQQQAgBCgCAEEDcUECRxtqKAIoIAggDUGE0woQngEgCBAYIApBAWohCgwBCwsDQCAFIAlGDQEgByAFQQJ0agJAIAVBAXEEQCACIAIpA5geNwPQIyACIAIrA5geOQPgIyACIAIrA6AdOQPwIyACIAMpAwA3A9gjIAIgakQAAAAAAAAYwKAiY0QAAAAAAAAYwKAiaTkD6CMgFSAGKQMANwMIIBUgAikDoB03AwAgAysDACFsIAYrAwAhbSBwIGYgBUEBRiIIGyJiIW4gcSBlIAgbImchbyBnIWUgYiFmIGMiZCFqDAELIAIgAikDmB43A9AjIAIgazkD4CMgAiBoOQOAJCACIGs5A/AjIAIgAykDADcD2CMgAiADKwMAOQPoIyACIGE5A4gkIAIrA5geIW8gaCFiIAIrA6gdIm0hYyACKwOgHSJuIWcgYSJpRAAAAAAAABhAoCJkIWwgZCFhCygCACEEIAJBCDYCxBwgAiADKQMANwPABCACIAYpAwA3A7AEIAIgbDkDyCQgAiBvOQPAJCACIGQ5A7gkIAIgZzkDsCQgAiBjOQOoJCACIG45A6AkIAIgbTkDmCQgAiBiOQOQJCACIGk5A/gjIAIgAikDmB43A7gEIAIgAikDoB03A6gEIAIgAkHQI2o2AsAcIAIgAikCwBw3A6AEAkAgAkG4BGogAkGoBGogAkGgBGogAkHIGWogKBC1DyIIRQ0AIAIoAsgZIg1FDQAgBCAEQVBBACAEKAIAQQNxQQJHG2ooAiggCCANQYTTChCeASAIEBggBUEBaiEFDAELCyAIEBgLIAcQGAwHBSAHIANBAnQiCWogCSASaigCADYCACADQQFqIQMMAQsACwAFIBIgA0ECdGooAgAoAhAiCSgCYEEARyENAkAgCS0ALEUEQCAJLQBUQQFHDQELQQEhBgsgBSANaiEFIANBAWohAwwBCwALAAsgACgCEEHAAWohCwNAIAsoAgAiBgRAAkAgBigCECIDLQCsAUEBRw0AIAMoAnhFDQAgBhCqCCAAIAYoAhAoAngQhwIgBigCECEDCyADQbgBaiELDAELCyABRQ0GIAAQGyEHA0AgB0UNByAAIAcQLSEDA0ACQCADBEAgA0GE0wooAgARAgBFDQEgAygCECgCCCIERQ0BIAQoAgQiCEEBdiEBQQAhBkEAIQsDQCABIAtHBEAgAkHQI2oiBSAEKAIAIgkgC0EwbGoiEEEwEB8aIBAgCSAIIAtBf3NqQTBsIhBqQTAQHxogBCgCACAQaiAFQTAQHxogC0EBaiELDAELCwNAIAYgCEYNAiAEKAIAIAZBMGxqIgEoAgQiCUEBdiEQQQAhCwNAIAsgEEcEQCACIAEoAgAiDSALQQR0aiIFKQMANwPQIyACIAUpAwg3A9gjIAUgDSAJIAtBf3NqQQR0IgxqIg0pAwA3AwAgBSANKQMINwMIIAEoAgAgDGoiBSACKQPQIzcDACAFIAIpA9gjNwMIIAtBAWohCwwBCwsgASABKQMIQiCJNwMIIAIgASkDGDcD2CMgAiABKQMQNwPQIyABIAEpAyA3AxAgASABKQMoNwMYIAEgAikD0CM3AyAgASACKQPYIzcDKCAGQQFqIQYMAAsACyAAIAcQHCEHDAILIAAgAxAwIQMMAAsACwALIAJBgBpqQgA3AwAgAkIANwP4GSACQfAZakIANwMAIAJCADcD6BkgAiACQYgTaiIHNgKwHSACIAJB0A1qIgU2AtAcIAIgAkHoGmo2ApgaIBIoAgAiCSgCECEGAkACQCAJIAlBMGoiAyAJKAIAIgpBA3EiCEEDRhsoAigoAhAoAvQBIAkgCUEwayIEIAhBAkYbKAIoKAIQKAL0AWsiCCAIQR91IghzIAhrIiRBAk8EQCAHIAZBuAEQHxogAkGgHWoiCCAJQTAQHxogIyADQTAQHxogAiAHNgKwHSAJKAIQIgYoAqQBIQcgBSAGQbgBEB8aIAJBwBxqIg0gCUEwEB8aIAIgBTYC0BwgCSgCAEEDcSEGAkAgB0EgcQRAQShB2AAgAigCwBxBA3EiB0EDRhsgDWogCSAEIAZBAkYbKAIoNgIAIDAgLyAHQQJGGyAJIAMgBkEDRhsoAig2AgAgPCAJKAIQQThqQSgQHxogIiAJKAIQQRBqQSgQHxogAiAJNgLIDiACQQE6AMAOQShB2AAgAigCoB0iCkEDcUEDRhsgCGogCSAEIAkoAgBBA3FBAkYbKAIoNgIAIDEgCSgCEEE4akEoEB8aDAELIAJBoB1qQShB2AAgAigCoB0iCkEDcUEDRhtqIAkgAyAGQQNGGygCKDYCACA7IANBMBAfGgsgCRD3AyEDA0AgAyIGKAIQKAKwASIDDQALIDMgMiAKQQNxQQJGGyAGQVBBACAGKAIAQQNxQQJHG2ooAig2AgAgAkEBOgD4EyACQQA6ANwTIBxCADcDCCAcQgA3AwAMAQsgBi0ApAFBIHFFDQEgAkGIE2oiByAGQbgBEB8aIAJBoB1qIgYgCUEwEB8aIAIgBzYCsB0gBkEoQdgAIAIoAqAdIgpBA3EiB0EDRhtqIAkgBCAJKAIAQQNxQQJGGygCKDYCACAzIDIgB0ECRhsgCSADIAkoAgBBA3FBA0YbKAIoNgIAIDEgCSgCEEE4akEoEB8aIBwgCSgCEEEQakEoEB8aIAJBAToA+BMLIAIgCTYCgBQgAkGgHWohCQsCQAJAIBoNACAJIQMDQCADKAIQIgQtAHAEQCAEKAJ4IQMMAQsLAkACQCADQShBeCADKAIAQQNxIgZBAkYbaigCACIHKAIQIgUoAvQBIANBKEHYACAGQQNGG2ooAgAiCCgCECINKAL0AWsiBkEfdSIOQX9zIAYgDnNqDgICAAELIAAoAkgoAhAtAHFBAXENAQsgBSANIAlBKEHYACAKQQNxQQNGG2ooAgAgCEYiBhsiDisAECFkIARBOEEQIAYbaisAACFjIA4rABghZSAEQcAAQRggBhtqKwAAIWYgDSAFIAYbIgUrABAhYiAEQRBBOCAGG2orAAAhaCACIARBGEHAACAGG2orAAAgBSsAGKAiYTkD0BkgAiBoIGKgImI5A8gZIAIgZiBloCJlOQO4HCACIGMgZKAiZjkDsBwgByAIIAYbIQYgAiAEKAJgIgQEfyAEKwMgIWQgBCsDGCFjIAcQLygCECgCdCEHIAJBqBxqIgQgAygCECgCYCIDQUBrKQMANwMAIAMpAzghciACIAJB0BlqIgUpAwA3A/gFIAIgcjcDoBwgBCAEKwMAImggYyBkIAdBAXEiAxtEAAAAAAAA4D+iImeaIGcgZSBhoSACKwOgHCJlIGKhoiBoIGGhIGYgYqGioUQAAAAAAAAAAGQiBxugOQMAIAIgAikDyBk3A/AFIAIgZSBkIGMgAxtEAAAAAAAA4D+iImEgYZogBxugOQOgHCACQfgZaiIDIAJB8AVqEJYBIAIgBSkDADcD6AUgAiACKQPIGTcD4AUgAyACQeAFahCWASACIAQpAwA3A9gFIAIgAikDoBw3A9AFIAMgAkHQBWoQlgEgAkGgHGoFIAJByBlqCyIDKQMINwPIBSACIAMpAwA3A8AFIAJB+BlqIgQgAkHABWoQlgEgAiADKQMINwO4BSACIAMpAwA3A7AFIAQgAkGwBWoQlgEgAiACQbgcaiIDKQMANwOoBSACIAIpA7AcNwOgBSAEIAJBoAVqEJYBIAIgAykDADcDmAUgAiACKQOwHDcDkAUgBCACQZAFahCWAQwBCyACQagcakIANwMAIAJCADcDoBwgCUEoQXggCkEDcSIDQQJGG2ooAgAhCCAJQShB2AAgA0EDRhtqKAIAIQUgAkHACGoiAyACQegIakEoEB8aIAJByBlqIAAgAyAFQQAgCRCwAyACQegjaiIlIAJB4BlqIh4pAwA3AwAgFCACQdgZaiIfKQMANwMAIAJB2CNqIiYgAkHQGWoiGCkDADcDACACIAIpA8gZNwPQIyAUKwMAIWEgAisD0CMhYiACQZAJaiAJQQEgAkHQI2ogBRDJBBCLBQJAIGEgYmRFDQAgBSgCECIDKwMYIAAoAhAoAsQBIAMoAvQBQcgAbGorAxChImQgGyACKAKEJCIDQQV0IgZqKwMAImNjRQ0AIAIgA0EBajYChCQgBiAXaiIDIGM5AxggAyBhOQMQIAMgZDkDCCADIGI5AwALQQAhDkF/IRlBACEKIAkiByENA0AgCCEEIAchBiANIQMDQAJAAn8CQAJAIAQoAhAtAKwBQQFHDQAgBEGI0wooAgARAgANACACQagZaiACQegIaiAAIAUoAhAoAvQBEMwOIAJBuAhqIAJBwBlqKQMANwMAIAJBsAhqIAJBuBlqKQMANwMAIAJBqAhqIAJBsBlqKQMANwMAIAIgAikDqBk3A6AIIAJBoBxqIAJBoAhqENQEAkACQCAKQQFxRQRAQQAhDiAEKAIQIhEhBQNAAkAgBSgCyAEoAgAiB0FQQQAgBygCAEEDcUECRxtqKAIoKAIQIgUtAKwBQQFHDQAgBSgCzAFBAUcNACAFKALEAUEBRw0AIAUrAxAgESsDEGINACAOQQFqIQ4MAQsLQQAhCkEFQQMgACgCSCgCEC0AcUEBcRsgDksEQCAEIQggBiEHDAILIA5BAmshDkEBIQogBCEIIAYhB0EBIRkMAQsgGUEATA0BIAQoAhAhEUEBIQogDSEDCyARKALIASgCACEGIAJB+AdqIgUgAkHoCGpBKBAfGiACQYgZaiAAIAUgCCADIAYQsAMgAiACQaAZaikDADcD8AcgAiACQZgZaikDADcD6AcgAiACQZAZaikDADcD4AcgAiACKQOIGTcD2AcgGUEBayEZIAJBoBxqIAJB2AdqENQEIAQoAhAoAsgBKAIAIg1BUEEAIA0oAgBBA3EiA0ECRxtqKAIoIQggDUEwQQAgA0EDRxtqKAIoIQUMBgsgBCgCECgCyAEoAgAhBSACQbAHaiIKIAJB6AhqQSgQHxogAkHIGWogACAKIAQgAyAFELADIAJBsB5qIB4pAwA3AwAgAkGoHmogHykDADcDACACQaAeaiAYKQMANwMAIAIgAikDyBk3A5geIAJBkAlqIANBASACQZgeaiADQShBeCADKAIAQQNxQQJGG2ooAgAQyQQQigUCQCACKALMHiIRQQV0IBZqIgVBIGsiCisDACJhIAorAxAiYmNFDQAgCisDGCJkIAQoAhAiCisDGCAAKAIQKALEASAKKAL0AUHIAGxqKwMYoCJjY0UNACACIBFBAWo2AsweIAUgYzkDGCAFIGI5AxAgBSBkOQMIIAUgYTkDAAsgAkEBOgDVCSACQpjakKK1v8j8PzcDyAkgAkGQCWoiBSAGIAMgAkHQI2ogAkGYHmogAkGgHGoQyw4gAkEANgKEGSAdRQRAIAUgAkGEGWoQ0gQhCiACKAKEGSEDDAILIAJBkAlqIAJBhBlqENEEIQogGiACKAKEGSIDQQVJcg0BIAogCikDADcDECAKIAopAwg3AxggCiAKIANBBHRqQRBrIgMpAwA3AyAgCiADKQMINwMoIAMpAwAhciAKIAMpAwg3AzggCiByNwMwIAJBBDYChBlBBAwCCyACQeAYaiACQegIaiIHIAAgBSgCECgC9AEQzA4gAiACQfgYaikDADcD0AYgAiACQfAYaikDADcDyAYgAiACQegYaikDADcDwAYgAiACKQPgGDcDuAYgAkGgHGogAkG4BmoQ1AQgAkGQBmoiBSAHQSgQHxogAkHIGWogACAFIAQgA0EAELADIAJBsB5qIB4pAwA3AwAgAkGoHmoiByAfKQMANwMAIAJBoB5qIBgpAwA3AwAgAiACKQPIGTcDmB4gBysDACFhIAIrA5geIWIgAkGQCWogAkHAHGogAyAkQQFLIggbQQEgAkGYHmogA0EoaiINIANBCGsiDiADKAIAQQNxQQJGGygCABDJBBCKBQJAIGEgYmRFDQAgOiACKALMHiIHQQV0IgVqKwMAImQgBCgCECIEKwMYIAAoAhAoAsQBIAQoAvQBQcgAbGorAxigImNjRQ0AIAIgB0EBajYCzB4gBSAWaiIEIGM5AxggBCBhOQMQIAQgZDkDCCAEIGI5AwALIAJBkAlqIgQgBiADIAJB0CNqIAJBmB5qIAJBoBxqIgcQyw4gBxDKDiACQQA2AsgZAkACfwJAIB1FBEAgBCACQcgZahDSBCEEIAIoAsgZIQUMAQsgAkGQCWogAkHIGWoQ0QQhBCAaIAIoAsgZIgVBBUlyDQAgBCAEKQMANwMQIAQgBCkDCDcDGCAEIAQgBUEEdGpBEGsiBykDADcDICAEIAcpAwg3AyggBykDACFyIAQgBykDCDcDOCAEIHI3AzAgAkEENgLIGUEEDAELIAVFDQEgBQshCkEAIQUDQCAFIApPBEAgBBAYIAYgAkGQCWoQyQ4CfyAIBEAgMCAvIAIoAsAcQQNxQQJGGwwBCyANIA4gAygCAEEDcUECRhsLKAIAIQYMCAUgAiAEIAVBBHRqIgcpAwg3A4gGIAIgBykDADcDgAYgBUEBaiEFIAJB+BlqIAJBgAZqEJYBIAIoAsgZIQoMAQsACwALIAQQGCACQfgZahCEAyACQegZahCEAwwHCyADRQ0BIAMLIQVBACEDA0AgAyAFTwRAIAoQGCAEKAIQKALIASgCACEDIA4hBQNAIAUEQCAFQQFrIQUgA0FQQQAgAygCAEEDcUECRxtqKAIoKAIQKALIASgCACEDDAELCyACKAKAGiIFBEAgAkHIGWoiCiACQfgZaiIEIAVBAWsQyAQgAiAYKQMANwOoByACIAIpA8gZNwOgByAEIAJBoAdqEJYBIAJBsBxqIAQgAigCgBpBAWsQyAQgAiACQbgcaikDADcDmAcgAiACKQOwHDcDkAcgBCACQZAHahCWASAGIAJBkAlqIgYQyQ4gA0FQQQAgAygCAEEDcSIFQQJHG2ooAighBCADQTBBACAFQQNHG2ooAighBSACQaAcahDIDiAFKAIQKALAASgCACERIAJB6AZqIiAgAkHoCGpBKBAfGiAKIAAgICAFIBEgAxCwAyAlIB4pAwA3AwAgFCAfKQMANwMAICYgGCkDADcDACACIAIpA8gZNwPQIyAGIANBASACQdAjaiAFEMkEEIsFAkAgAigChCQiEUEFdCAXaiIGQSBrIgorAwAiYSAKKwMQImJjRQ0AIAUoAhAiICsDGCAAKAIQKALEASAgKAL0AUHIAGxqKwMQoSJkIAorAwgiY2NFDQAgAiARQQFqNgKEJCAGIGM5AxggBiBiOQMQIAYgZDkDCCAGIGE5AwALIAJBAToArQkgAkKY2pCitb/I/L9/NwOgCUEAIQogAyEGDAQLQfGgA0GVvgFBvxBB9vwAEAAABSACIAogA0EEdGoiBSkDCDcD4AYgAiAFKQMANwPYBiADQQFqIQMgAkH4GWogAkHYBmoQlgEgAigChBkhBQwBCwALAAsLCyAKEBggAkGgHGoQyg4gAkH4GWoQhAMgAkHoGWoQhAMMAgsgDEEBRgRAIAJB+BlqIgMQqQggCSAGIAMQqAggAigCgBpBhNMKEJ4BIAMQhAMgAkHoGWoQhAMMAgtBAiACKAKAGiIEIARBAk0bQQFrIQcgAisDgAkiYSAMQQFruKJEAAAAAAAA4D+iIWJBASEDA0AgAyAHRgRAQQAhAwNAIAMgBEYEQCACQegZaiIDEKkIIAkgBiADEKgIIAIoAvAZQYTTChCeAUEBIQZBASAMIAxBAU0bIQgDQCAGIAhGBEAgAkH4GWoQhAMgAkHoGWoQhAMMBwsgEiAGQQJ0aigCACIMKAIQIgMtAKQBQSBxBEAgAigCmBogA0G4ARAfIQUgAkGIGmoiAyAMQTAQHxogAiAFNgKYGkEoQdgAIAIoAogaQQNxIglBA0YbIANqIAxBUEEAIAwoAgBBA3FBAkcbaigCKDYCACAuIC0gCUECRhsgDEEwQQAgDCgCAEEDcUEDRxtqKAIoNgIAIAVBEGogDCgCEEE4akEoEB8aIAIoApgaIgVBOGogDCgCEEEQakEoEB8aIAUgDDYCeCAFQQE6AHAgAyEMC0EBIQMDQCADIAdGBEAgAkHoGWoQxw5BACEDA0AgAyAERgRAIAJB6BlqIgMQqQggDCAMQShBeCAMKAIAQQNxQQJGG2ooAgAgAxCoCCACKALwGUGE0woQngEgBkEBaiEGDAQFIAJBwBhqIAJB+BlqIAMQyAQgAiACQcgYaikDADcD+AQgAiACKQPAGDcD8AQgA0EBaiEDIAJB6BlqIAJB8ARqEJYBDAELAAsABSACQfgZaiADEKcIIgUgYSAFKwMAoDkDACADQQFqIQMMAQsACwALAAUgAkHQGGogAkH4GWogAxDIBCACIAJB2BhqKQMANwOIBSACIAIpA9AYNwOABSADQQFqIQMgAkHoGWogAkGABWoQlgEMAQsACwAFIAJB+BlqIAMQpwgiBSAFKwMAIGKhOQMAIANBAWohAwwBCwALAAsgBigCYCIFBEAgBEEoaiIJIARBCGsiDSAEKAIAQQNxIgNBAkYbKAIAIQggBEEoQdgAIANBA0YbaigCACEHIAYoArABIQMDQCADIgYoAhAoArABIgMNAAsgBSAGQTBBACAGKAIAQQNxQQNHG2ooAigiDCgCECIDKQMQNwM4IAVBQGsgAykDGDcDACAEKAIQIgMoAmAiBkEBOgBRAkACQCAaRQRAIAMrADghYSAIKAIQIgUrABAhYiADKwBAIWQgBSsAGCFjIAYrAzghZSAGKwNAIWYgBisDICFoIAMrABAhZyAHKAIQIgYrABAhaSACIAMrABggBisAGKA5A6gdICwgAikDqB03AwggAiBnIGmgOQOgHSAsIAIpA6AdNwMAIAIgZiBoRAAAAAAAAOC/oqA5A+gdIAIgZTkD4B0gIyAhKQMANwMAICMgISkDCDcDCCArICEpAwA3AwAgKyAhKQMINwMIIAIgZCBjoDkDiB4gAiBhIGKgOQOAHiAqICkpAwg3AwggKiApKQMANwMAQQchBSACQQc2AsgZIAJBoB1qIQMMAQsgACgCECgCxAEgBygCECIGKAL0AUHIAGxqIgMrAxghZCADKwMQIWMgDCgCECIDKwNgIWUgAysDUCFmIAYrAxghaCADKwMYIWEgAysDWCFnIAMrAxAhYiACQegDaiIDIAJB6AhqIgZBKBAfGiAAIAMgAkGQCWoiBSAHIAQgAkHQI2pBARD8BSACQcADaiIHIAZBKBAfGkEAIQMgACAHIAUgCCAEIAJBmB5qQQAQ/AUgAiACKAKEJCIKQQV0IgYgF2pBIGsrAwAiaTkDwBwgAiAGIBVqKwMAOQPIHCACIGIgZ6E5A9AcIAIgYSBmRAAAAAAAAOA/oqAiZkQAAAAAAAAUQCBkIGEgY6EgaKGgRAAAAAAAABhAoyJhIGFEAAAAAAAAFEBjG6EiYTkD2BwgAiBpOQPgHCACIGE5A+gcIAIgFiACKALMHkEFdGoiBkEQaysDACJkOQPwHCACIGIgZaA5A4AdIAIgZjkD+BwgAiAGQQhrKwMAOQOIHSACIGE5A5gdIAIgZDkDkB1BACEFA0AgBSAKSARAIAIgFyAFQQV0aiIGKQMYNwP4AiACIAYpAxA3A/ACIAIgBikDCDcD6AIgAiAGKQMANwPgAiAFQQFqIQUgAkGQCWogAkHgAmoQ8AEgAigChCQhCgwBCwsDQCADQQNHBEAgAiACQcAcaiADQQV0aiIGKQMINwOoAyACIAYpAxg3A7gDIAIgBikDEDcDsAMgAiAGKQMANwOgAyADQQFqIQMgAkGQCWogAkGgA2oQ8AEMAQsLIAIoAsweIQUDQCAFQQBKBEAgAiAWIAVBAWsiBUEFdGoiAykDGDcDmAMgAiADKQMQNwOQAyACIAMpAwg3A4gDIAIgAykDADcDgAMgAkGQCWogAkGAA2oQ8AEMAQsLAn8gHUUEQCACQZAJaiACQcgZahDSBAwBCyACQZAJaiACQcgZahDRBAshAyACKALIGSIFRQ0BCyAEIAkgDSAEKAIAQQNxQQJGGygCACADIAVBhNMKEJ4BIBNBAkYNAgsgAxAYDAELIBpFBEAgBEEoQdgAIAQoAgBBA3EiA0EDRhtqKAIAIARBKEF4IANBAkYbaigCACAPIAcgDEECEM0ODAELAkACQCAGLQBZIgNBBEYgBi0AMSIGQQFHckUEQCAEKAIAIQUMAQsgBCgCACEFIAZBBEYgA0EBR3INAQsgBEEoQXggBUEDcSIDQQJGG2ooAgAhBwJ8IARBKEHYACADQQNGG2ooAgAiBigCECIFKAL0ASIIIAAoAhAiAygC7AFIBEAgBSsDGCADKALEASAIQcgAbGoiAysDIKEgAygCTCgCACgCECsDGCADKwNwoKEMAQsgAygC/AG3CyACKwOACSFkIAJBiAFqIgMgAkHoCGoiBUEoEB8aIAAgAyACQZAJaiIDIAYgBCACQdAjakEBEMYOIAJB4ABqIgggBUEoEB8aQQAhBiAAIAggAyAHIAQgAkGYHmpBABDGDiAMQQFquCJhoyFiIGQgYaMhZANAIAYgDEYNAiASIAZBAnRqKAIAIQQgAigChCQiCkEFdCAXakEgayIDKwMQIWMgAysDACFhIAIgAysDCCJlOQO4HSACIGE5A6AdIAIgYTkDwB0gAiBjIAZBAWoiBrgiYSBkoiJjoDkDsB0gAiBlIGEgYqKhImE5A9gdIAIgYTkDqB0gAiA2IAIoAsweQQV0IgNqKwMAImU5A9AdIAIgYSBioTkDyB0gAyAWakEgayIDKwMAIWYgAiADKwMIOQP4HSACIGE5A+gdIAIgZTkD8B0gAiBmIGOhOQPgHUEAIQNBACEFA0AgBSAKSARAIAIgFyAFQQV0aiIHKQMYNwMYIAIgBykDEDcDECACIAcpAwg3AwggAiAHKQMANwMAIAVBAWohBSACQZAJaiACEPABIAIoAoQkIQoMAQsLA0AgA0EDRwRAIAIgAkGgHWogA0EFdGoiBykDCDcDSCACIAcpAxg3A1ggAiAHKQMQNwNQIAIgBykDADcDQCADQQFqIQMgAkGQCWogAkFAaxDwAQwBCwsgAigCzB4hBQNAIAVBAEoEQCACIBYgBUEBayIFQQV0aiIDKQMYNwM4IAIgAykDEDcDMCACIAMpAwg3AyggAiADKQMANwMgIAJBkAlqIAJBIGoQ8AEMAQsLIAJBADYCwBwCfyAdRQRAIAJBkAlqIAJBwBxqENIEDAELIAJBkAlqIAJBwBxqENEECyEDIAIoAsAcIgcEQCAEIARBUEEAIAQoAgBBA3FBAkcbaigCKCADIAdBhNMKEJ4BIAMQGCACQQA2AuAJDAEFIAMQGAwDCwALAAsgBEEoQXggBUEDcSIDQQJGG2ooAgAhBwJ8IARBKEHYACADQQNGG2ooAgAiAygCECIGKAL0ASIFQQBKBEAgACgCECgCxAEgBUHIAGxqIgVB8H5BuH8gACgCSCgCEC0AcUEBcRtqIggoAgQoAgAoAhArAxggCCsDEKEgBisDGKEgBSsDGKEMAQsgACgCECgC/AG3CyACQbgCaiIGIAJB6AhqIgVBKBAfGiAAIAYgAkGQCWoiCCADIAQgAkGIE2pBARD8BSACQZACaiIDIAVBKBAfGkEAIQYgACADIAggByAEIAJB0A1qQQAQ/AUgDEEBargiZKMhYiBhIGSjIWQDQCAGIAxGDQEgEiAGQQJ0aigCACEEIAIoArwTIgpBBXQgHGpBIGsiAysDECFjIAMrAxghYSACIAMrAwAiZTkD8CMgAiBhOQPYIyACIGU5A9AjIAIgYSAGQQFqIga4ImUgYqKgImE5A/gjIAIgYTkD6CMgAiBjIGUgZKIiY6A5A+AjIAIgNyACKAKEDkEFdCIDaisDACJlOQOAJCACIGIgYaA5A4gkIAMgImpBIGsiAysDACFmIAIgAysDGDkDmCQgAiBhOQOoJCACIGU5A6AkIAIgZiBjoTkDkCRBACEDQQAhBQNAIAUgCkgEQCACIBwgBUEFdGoiBykDGDcDyAEgAiAHKQMQNwPAASACIAcpAwg3A7gBIAIgBykDADcDsAEgBUEBaiEFIAJBkAlqIAJBsAFqEPABIAIoArwTIQoMAQsLA0AgA0EDRwRAIAIgAkHQI2ogA0EFdGoiBykDCDcD+AEgAiAHKQMYNwOIAiACIAcpAxA3A4ACIAIgBykDADcD8AEgA0EBaiEDIAJBkAlqIAJB8AFqEPABDAELCyACKAKEDiEFA0AgBUEASgRAIAIgIiAFQQFrIgVBBXRqIgMpAxg3A+gBIAIgAykDEDcD4AEgAiADKQMINwPYASACIAMpAwA3A9ABIAJBkAlqIAJB0AFqEPABDAELCyACQQA2ApgeAn8gHUUEQCACQZAJaiACQZgeahDSBAwBCyACQZAJaiACQZgeahDRBAshAyACKAKYHiIHBEAgBCAEQVBBACAEKAIAQQNxQQJHG2ooAiggAyAHQYTTChCeASADEBggAkEANgLgCQwBBSADEBgMAgsACwALAAtBjqoDQZW+AUGrAkHoxwEQAAALIAZBAWohBgwACwALAkBBxN8KKAIAQcjfCigCAHJFDQBB3N8KKAIAQdjfCigCAHJFDQAgABAbIQoDQCAKRQ0BAkBBxN8KKAIARQ0AIAAgChC5AiELA0AgC0UNASALIAtBMGsiASALKAIAQQNxQQJGGyIDKAIQKAJkBEAgA0EBEIgFGiAAIAsgASALKAIAQQNxQQJGGygCECgCZBCHAgsgACALEI8DIQsMAAsACwJAQcjfCigCAEUNACAAIAoQLSELA0AgC0UNAQJAIAsoAhAoAmhFDQAgC0EAEIgFRQ0AIAAgCygCECgCaBCHAgsgACALEDAhCwwACwALIAAgChAcIQoMAAsACwJAAkAgE0EEaw4FAQAAAAEACyMAQRBrIgAkAEGQgAtBkIALKAIAIgFBAWs2AgACQCABQQFKDQBBjN0KLQAARQ0AQZSACygCACEBQZiACygCACEDIAAQjwE5AwggACADNgIEIAAgATYCAEG4+AgoAgBB1c0EIAAQMQsgAEEQaiQACyACKAKICRAYIA8QGCACKALkCRAYQQAhA0HU3QpBATYCAEHQ3QpBATYCAAsgAkGQKWokACADC1gCAnwBfwJAAn8gAC0AHCIEIAEtABxFDQAaIARFDQEgACsDACICIAErAwAiA2MNAUEBIAIgA2QNABpBfyAAKwMIIgIgASsDCCIDYw0AGiACIANkCw8LQX8LiwIBBX8jAEHwAGsiAyQAQQEhBANAIAQgASgCECIFKAK0AUpFBEAgBSgCuAEgBEECdGooAgAhBSADQSBqIgYgAkEoEB8aIANByABqIgcgBSAGENQOIAIgB0EoEB8aIARBAWohBAwBCwsCQCABEDcgAUYNACABKAIQKAIMIgFFDQAgAS0AUUEBRw0AIAIoAiAhBCADIAIpAwg3AwggAyACKQMQNwMQIAMgAikDGDcDGCADIAIpAwA3AwAgA0HIAGogASAEIAMQ+AMgAiADKQNgNwMYIAIgAykDWDcDECACIAMpA1A3AwggAiADKQNINwMAIAIgBEEoajYCIAsgACACQSgQHxogA0HwAGokAAs+ACAAKAIAIQAgAwRAIAEgACgCECgCAEECIAJBABAhIgEEfyABBSAAKAIQKAIAQQIgAkHvhgUQIQsgAxByCwtfAQN/AkAgABA3IABGDQAgACgCECgCDCIBRQ0AIAEtAFEhAgtBASEBA38gACgCECIDKAK0ASABSAR/IAIFIAMoArgBIAFBAnRqKAIAENYOIAJqIQIgAUEBaiEBDAELCwuTAgIDfwN8AkAgABA3IABGDQAgACgCECIBKAIMIgJFDQAgAi0AUQ0AAn8gAS0AkwIiA0EBcQRAIAErAyggASsDWEQAAAAAAADgv6KgIQUgAUHQAGoMAQsgASsDGCABKwM4RAAAAAAAAOA/oqAhBSABQTBqCysDACEEAnwgA0EEcQRAIAErAyAgBEQAAAAAAADgv6KgDAELIAErAxAhBiAERAAAAAAAAOA/oiAGoCADQQJxDQAaIAYgASsDIKBEAAAAAAAA4D+iCyEEIAJBAToAUSACIAU5A0AgAiAEOQM4C0EBIQEDQCABIAAoAhAiAigCtAFKRQRAIAIoArgBIAFBAnRqKAIAENcOIAFBAWohAQwBCwsLlQICA38CfAJAIAAQNyAARg0AIAAoAhAiASgCDCICRQ0AIAItAFENAAJ/IAEtAJMCIgNBAXEEQCABKwMgIAErA0BEAAAAAAAA4L+ioCEFIAFByABqDAELIAErAxAgASsDYEQAAAAAAADgP6KgIQUgAUHoAGoLKwMAIQQCfCADQQRxBEAgBEQAAAAAAADgP6IgASsDGKAMAQsgA0ECcQRAIAErAyggBEQAAAAAAADgv6KgDAELIAErAxggASsDKKBEAAAAAAAA4D+iCyEEIAJBAToAUSACIAQ5A0AgAiAFOQM4C0EBIQEDQCABIAAoAhAiAigCtAFKRQRAIAIoArgBIAFBAnRqKAIAENgOIAFBAWohAQwBCwsL9QICBH8EfCMAQaABayICJAAgACgCECIDKwMgIQYgAysDECEHIAJB8ABqIAJB0ABqIAFBAWtBAkkiBBsiBUEIaiADKwMoIgggAysDGCIJIAQbOQMAIAUgBzkDACACIAUpAwg3AyggAiAFKQMANwMgIAJBgAFqIAJBIGoQgAIgAkHgAGogAkFAayAEGyIDQQhqIAkgCCAEGzkDACADIAY5AwAgAiADKQMINwMYIAIgAykDADcDECACQZABaiACQRBqEIACIAAoAhAiAyACKQOAATcDECADIAIpA5gBNwMoIAMgAikDkAE3AyAgAyACKQOIATcDGCAAKAIQKAIMIgMEQCACIANBQGsiBCkDADcDCCACIAMpAzg3AwAgAkEwaiACEIACIAQgAikDODcDACADIAIpAzA3AzgLQQEhAwNAIAMgACgCECIEKAK0AUpFBEAgBCgCuAEgA0ECdGooAgAgARDZDiADQQFqIQMMAQsLIAJBoAFqJAAL5gECBHwDfyAAKAIgIgcgASgCICIIRwRAQX8hBgJAIActACRFDQAgCC0AJEUNACAAKwMAIgJEAAAAAAAAAABhBEAgACsDCEQAAAAAAAAAAGENAQsgASsDACIDRAAAAAAAAAAAYSABKwMIIgREAAAAAAAAAABhcQ0AIAArAwgiBSAEZARAIAIgA2QEQEEADwtBAkEBIAIgA2MbDwsgBCAFZARAIAIgA2QEQEEGDwtBCEEHIAIgA2MbDwsgAiADZARAQQMPC0EFQX8gAiADYxshBgsgBg8LQb/dAEGCvgFB2gFB/vkAEAAAC3oBAX8gACgCACIGKAIQKAIAIAEgAyAFQQEQXiIDBEAgACADQdsbIAQgAiADQTBBACADKAIAQQNxIgVBA0cbaigCKCADQVBBACAFQQJHG2ooAigiBUcgASAFRnEiARsQ1Q4gACADQZccIAIgBCABGxDVDiAGIAMQqg8LC54HAgd/BH4jAEHQAWsiBiQAIAZBADYCpAECQCADBEAgAygCBCIFQQBIDQECfyAFBEAgBiABKQMYNwN4IAYgASkDEDcDcCAGIAEpAwg3A2ggBiABKQMANwNgIwBBwAFrIgUkAAJAIAMEQCADQQhqIQsDQCAIQcAARg0CIAsgCEEobGoiBygCIARAIAUgBykDGDcDuAEgBSAHKQMQNwOwASAFIAcpAwg3A6gBIAUgBykDADcDoAEgBSAHKQMINwNoIAUgBykDEDcDcCAFIAcpAxg3A3ggBSAHKQMANwNgIAVB4ABqEIcDIQ0gBSAGKQNoNwNIIAUgBikDcDcDUCAFIAYpA3g3A1ggBikDYCEOIAUgBSkDqAE3AyggBSAFKQOwATcDMCAFIAUpA7gBNwM4IAUgDjcDQCAFIAUpA6ABNwMgIAVBgAFqIAVBQGsgBUEgahCGAyAFIAUpA5gBNwMYIAUgBSkDkAE3AxAgBSAFKQOIATcDCCAFIAUpA4ABNwMAAn8gBRCHAyANfSIOIA9aIAlxRQRAIA0hDCAOIQ8gCAwBCyANIAwgDiAPUSAMIA1WcSIHGyEMIAggCiAHGwshCkEBIQkLIAhBAWohCAwACwALQajvAEHiwgFB7gBBsv8AEAAACyAFQcABaiQAIAMgCkEobGoiBSgCKCEHIAYgASkDGDcDWCAGIAEpAxA3A1AgBiABKQMINwNIIAYgASkDADcDQCAAIAZBQGsgAiAHIAZBpAFqENwORQRAIAYgASkDCDcDKCAGIAEpAxA3AzAgBiABKQMYNwM4IAYgASkDADcDICAGIAUpAxA3AwggBiAFKQMYNwMQIAYgBSkDIDcDGCAGIAUpAwg3AwAgBkGoAWogBkEgaiAGEIYDIAUgBikDwAE3AyAgBSAGKQO4ATcDGCAFIAYpA7ABNwMQIAUgBikDqAE3AwhBAAwCCyAGQYABaiAFKAIoEP8FIAUgBikDmAE3AyAgBSAGKQOQATcDGCAFIAYpA4gBNwMQIAUgBikDgAE3AwggBiAGKAKkASIBNgLIASAGQagBaiICIAEQ/wUgACACIAMgBBDKBAwBCyAGIAEpAxg3A8ABIAYgASkDEDcDuAEgBiABKQMINwOwASAGIAEpAwA3A6gBIAYgAjYCyAEgACAGQagBaiADIAQQygQLIAZB0AFqJAAPC0HtFkHjuwFB3AFBktMCEAAAC0Hg8gBB47sBQd0BQZLTAhAAAAuCBAEGfyMAQaABayIDJAACQAJAAkAgAQRAIAEoAgQiBEEASA0BIAFBCGohBiAEDQJBACEBA0AgAUHAAEYEQCAFIQQMBQUCQCAGIAFBKGxqIgQoAiBFDQAgAyACKQMYNwM4IAMgAikDEDcDMCADIAIpAwg3AyggAyACKQMANwMgIAMgBCkDCDcDCCADIAQpAxA3AxAgAyAEKQMYNwMYIAMgBCkDADcDACADQSBqIAMQhQNFDQBBAUEIEEMiAARAIAAgBDYCBAsgACAFNgIAIAAhBQsgAUEBaiEBDAELAAsAC0Go7wBB47sBQY8BQZP/ABAAAAtByZgDQeO7AUGQAUGT/wAQAAALQQAhBANAIAVBwABGDQECQCAGIAVBKGxqIgEoAiBFDQAgAyACKQMYNwOYASADIAIpAxA3A5ABIAMgAikDCDcDiAEgAyACKQMANwOAASADIAEpAwg3A2ggAyABKQMQNwNwIAMgASkDGDcDeCADIAEpAwA3A2AgA0GAAWogA0HgAGoQhQNFDQAgASgCICEBIAMgAikDGDcDWCADIAIpAxA3A1AgAyACKQMINwNIIAMgAikDADcDQCAAIAEgA0FAaxDdDiEHIAQiAUUEQCAHIQQMAQsDQCABIggoAgAiAQ0ACyAIIAc2AgALIAVBAWohBQwACwALIANBoAFqJAAgBAt9AQR/IABBKGohAgJAIAAoAgRBAEoEQANAIAFBwABGDQIgAiABQShsaiIDKAIAIgQEQCAEEN4OIAMoAgAQGCAAIAEQ3w4LIAFBAWohAQwACwALA0AgAUHAAEYNASACIAFBKGxqKAIABEAgACABEN8OCyABQQFqIQEMAAsACwtdAAJAIABFIAFBwABPckUEQCAAIAFBKGxqIgEoAihFDQEgAUEIahDgDiAAIAAoAgBBAWs2AgAPC0HH3QFB4sIBQa0BQaX/ABAAAAtB9qsBQeLCAUGuAUGl/wAQAAALDgAgABDjDiAAQQA2AiALOgEBfyAAQoCAgIBwNwMAIABBCGohAUEAIQADQCAAQcAARwRAIAEgAEEobGoQ4A4gAEEBaiEADAELCwtUAQJ/A0AgAQRAIAEoAgwgASgCACICQYkCRgR/IAAgASgCBBDiDiABKAIABSACC0GLAkYEQCAAIAEoAggiAiACEHdBAEcQjQEaCyABEBghAQwBCwsLJQEBfwNAIAFBBEcEQCAAIAFBA3RqQgA3AwAgAUEBaiEBDAELCwsTACAAIAFB36kBQRdB1LwBEJsECxwAIAAQrwggACgCABAYIABCADcCCCAAQgA3AgAL7QMBBX8jAEHQAGsiAyQAAkACQAJAAkACQANAIAQgACgCCE8NASADQSRqIAAgBBCBBiADKAIkIgVFDQMgAkUNBCAFIAIQSQRAIARBAWohBAwBCwsgACAEEK4IQQRqIAEQ5A4MAQsgA0IANwIcIANCADcCFCADIAI2AhAgA0EUaiABEOQOIAMgAygCIDYCSCADQUBrIAMpAhg3AwAgAyADKQIQNwM4AkAgACgCCCICIAAoAgwiBEcEQCAAKAIAIQUgACgCBCEBDAELIAJBAXRBASACGyIEQcyZs+YASwRAQcQAIQQMBQsgACgCACAEQRRsEDkiBUUEQEEwIQQMBQsgBSAAKAIMIgZBFGxqQQAgBCAGa0EUbBAzGiAGIAAoAggiAiAAKAIEIgFqSQRAIAFBFGwhByAFIAQgBiABayIGayIBQRRsaiAFIAdqIAZBFGwQUhogACABNgIECyAAIAQ2AgwgACAFNgIACyAFIAEgAmogBHBBFGxqIgEgAykDODcCACABIAMoAkg2AhAgASADQUBrKQMANwIIIAAgACgCCEEBajYCCAsgA0HQAGokAA8LQcTXAUGcgQFBDEHGPxAAAAtBktcBQZyBAUENQcY/EAAACyADIAQQczYCAEG4+AgoAgBB4YUEIAMQHhoQJwALmQoCB38KfCMAQUBqIgUkAAN8IAEoAgggAk0EfCALIAwQTyENIAAoAhAiAisDUCEOIAIrA2AhDyACKwNYIRAgAisDECEKIAIrAxghCSAAEC8gACgCECIEKwMQIREgBCsDGCESKAIQKAL8ASECIAUgCTkDCCAFIAo5AwAgBSASIAwgDaMgECAPoCAOIAK3oBAiIg6ioCIMOQM4IAUgCSAJoCAMoEQAAAAAAAAIQKM5AxggBSARIA4gCyANo6KgIgs5AzAgBSAKIAqgIAugRAAAAAAAAAhAozkDECAFIAkgDCAMoKBEAAAAAAAACECjOQMoIAUgCiALIAugoEQAAAAAAAAIQKM5AyAjAEHwAGsiAiQAAkAgACgCECIEKAIIIgNFDQAgAygCBCgCDCIGRQ0AIAJBGGoiA0EAQcgAEDMaIAIgADYCGCAEKwNgIQogAiAFKwMAIAQrAxChOQNgIAIgBSsDCCAEKwMYoTkDaCACIAIpA2g3AxAgAiACKQNgNwMIIAMgAkEIaiAGEQAAIQQgACgCECAKOQNgIAMgACAFIAQQ+AYLIAJB8ABqJAAgACgCECICKwMYIQsgBSsDCCACKwNgIQkCfyACKwNYIg0gBSsDACACKwMQoRAyIgqgRAAAAAAAAHBAoiANIAmgoyIJRAAAAAAAAPBBYyAJRAAAAAAAAAAAZnEEQCAJqwwBC0EACyEGIAuhEDIFIAwgACABIAIQrQgiBEFQQQAgBCgCAEEDcSIDQQJHG2ooAigiBkYEfyAEQTBBACADQQNHG2ooAigFIAYLKAIQIgQrAxggACgCECIDKwMYoSIKIAQrAxAgAysDEKEiCSAKEE8iCqOgIQwgCyAJIAqjoCELIAJBAWohAgwBCwshCQNAAkAgASgCCCAHSwRAIAEgBxCtCCEEA0AgBCICRQ0CA0ACQCACIgNFBEAgBCECA0AgAiIDRQ0CIAAgAiACQTBqIgggACADQVBBACACKAIAQQNxIgJBAkcbaigCKEYEfyADKAIQIgJBADYCXCACQQA7AVogAkEAOgBZIAIgBjoAWCACQoCAgIAQNwNQIAJCADcDSCACIAk5A0AgAiAKOQM4IAMoAgBBA3EFIAILQQNGGygCKEYEQCADKAIQIgJBADYCNCACQQA7ATIgAkEAOgAxIAIgBjoAMCACQoCAgIAQNwMoIAJCADcDICACIAk5AxggAiAKOQMQC0EAIQIgAygCEC0AcEEBRw0AIAMgCCADKAIAQQNxQQNGGygCKCgCECIDLQCsAUEBRw0AIAMoAsQBQQFHDQAgAygCwAEoAgAhAgwACwALIAAgA0EwQQAgACADIANBMGsiCCADKAIAQQNxIgJBAkYbKAIoRgR/IAMoAhAiAkEANgJcIAJBADsBWiACQQA6AFkgAiAGOgBYIAJCgICAgBA3A1AgAkIANwNIIAIgCTkDQCACIAo5AzggAygCAEEDcQUgAgtBA0cbaigCKEYEQCADKAIQIgJBADYCNCACQQA7ATIgAkEAOgAxIAIgBjoAMCACQoCAgIAQNwMoIAJCADcDICACIAk5AxggAiAKOQMQC0EAIQIgAygCEC0AcEEBRw0BIAMgCCADKAIAQQNxQQJGGygCKCgCECIDLQCsAUEBRw0BIAMoAswBQQFHDQEgAygCyAEoAgAhAgwBCwsgBCgCECgCsAEhBAwACwALIAAoAhBBAToAoQEgBUFAayQADwsgB0EBaiEHDAALAAu6BAEIfyMAQfAAayICJAAgAkIANwNoIAJCADcDYCACQgA3A1ggAkIANwNQQbzfCiAAQQJB9LQBQQAQITYCAEHA3wogAEECQdfyAEEAECEiATYCACABQbzfCigCAHIEQCACQSxqIQYgAkFAayEHIAAQGyEEA0AgBARAIAAgBBBvIQEDQCABBEACQCABQVBBACABKAIAQQNxIgNBAkcbaigCKCIFIAEgAUEwaiIIIANBA0YbKAIoRg0AAkACQCAEIAVHDQBBvN8KKAIAIgVFDQAgASAFEEEiAy0AAA0BIAEoAgBBA3EhAwsgASAIIANBA0YbKAIoIARHDQFBwN8KKAIAIgNFDQEgASADEEEiAy0AAEUNASACQdAAaiABIAMQ5g4MAQsgAkHgAGogASADEOYOCyAAIAEgBBB0IQEMAQVBACEBIAIoAmghAwNAIAEgA0YEQCACQeAAahCvCEEAIQEgAigCWCEDA0AgASADRgRAIAJB0ABqEK8IIAAgBBAcIQQMBwsgAkHQAGoiBSABEK4IKAIMQQJPBEAgAkEoaiAFIAEQgQYgAiAGKQIINwMQIAIgBikCADcDCCAEIAJBCGoQ5w4LIAFBAWohAQwACwALIAJB4ABqIgUgARCuCCgCDEECTwRAIAJBPGogBSABEIEGIAIgBykCCDcDICACIAcpAgA3AxggBCACQRhqEOcOCyABQQFqIQEMAAsACwALAAsLIAJB4ABqEOUOIAJB0ABqEOUOCyACQfAAaiQACxwBAX9BASECIAAgARD6DgR/QQEFIAAgARD5DgsLdwECfyAABEAgACgCCCEDIAAoAgQgAWwgAmoiAkEDdiIBIAAoAgwiBE8EQCADIAQgAUEBaiIEQQEQkQEhAyAAIAQ2AgwgACADNgIICyABIANqIgAgAC0AAEEBIAJBB3F0cjoAAA8LQbXWAUHJvQFBxABBlyIQAAALTAEBfwNAIAAiASgCECgCeCIADQALIAFBMEEAIAEoAgBBA3EiAEEDRxtqKAIoKAIQKALoASABQVBBACAAQQJHG2ooAigoAhAoAugBRwuXAwEGfwJAIAFBUEEAIAEoAgBBA3EiBEECRxtqKAIoIgUoAhAoAtABIgZFDQAgAUEwQQAgBEEDRxtqIQcDQCAGIANBAnRqKAIAIgJFDQEgA0EBaiEDIAJBUEEAIAIoAgBBA3FBAkcbaigCKCAHKAIoRw0ACyABIAIQiQMCQCACKAIQIgAtAHBBBEcNACAAKAJ4DQAgACABNgJ4CyABIAFBMGoiACABKAIAQQNxQQNGGygCKCgCECICKALgASACKALkASICQQFqIAJBAmpBBBCRASECIAEgACABKAIAQQNxQQNGGygCKCgCECACNgLgASABIAAgASgCAEEDcUEDRhsoAigoAhAiAiACKALkASIDQQFqNgLkASACKALgASADQQJ0aiABNgIAIAEgACABKAIAQQNxQQNGGygCKCgCECIAKALgASAAKALkAUECdGpBADYCAA8LIAUgAUEwQQAgBEEDRxtqKAIoIAEQwwgiAigCECIDQQRBAyABKAIQIgEtAHBBBEYbOgBwIAMgASgCYDYCYCAAIAIQiAYLOgAgACgCCCABTQRAQYe5A0HJvQFB5QpB0CIQAAALIAAoAgAgACgCBCABaiAAKAIMcEECdGogAjYCAAugAQEDfyABKAIQIgRBATYCsAECQCAEKALUAUUNAANAIAQoAtABIAVBAnRqKAIAIgZFDQECQCAAIAYQgwZFDQAgBkFQQQAgBigCAEEDcUECRxtqKAIoIgQoAhAoArABDQAgACAEIAIgAxDuDgsgBUEBaiEFIAEoAhAhBAwACwALIAMgBCgC9AFHBEBBtj9Byb0BQfYKQZk9EAAACyACIAEQZwsrAQF/A0AgACgCCCABTQRAIABCADcCBAUgACABEIIGGiABQQFqIQEMAQsLC48EAQl/IAAoAhAoAsQBIAEoAhAiAigC9AFByABsaigCQCEGIAJBAToAtAEgAkEBNgKwASAAEGEhAwJAAkACQAJAAkAgASgCECIEKALQASICRQ0AIAMoAhAoArQBQQBMIQhBACEDA0AgAiADQQJ0aigCACICRQ0BAkAgCEUEQCAAIAJBMEEAIAIoAgBBA3FBA0cbaigCKBCuAUUNASAAIAJBUEEAIAIoAgBBA3FBAkcbaigCKBCuAUUNAQsgAigCECgCnAFFDQAgAiACQTBrIgkgAigCAEEDcSIFQQJGGygCKCgCECIKKAKsAiEEIAYoAgAhByAKLQC0AQRAIAQgB08NBCACQTBBACAFQQNHG2ooAigoAhAoAqwCIgUgBigCBE8NBSAGIAQgBRDqDiADQQFrIQMgAhDBCCACKAIQLQBwQQRGDQEgACACEOwODAELIAQgB08NBSACQTBBACAFQQNHG2ooAigoAhAoAqwCIgUgBigCBE8NBiAGIAUgBBDqDiACIAkgAigCAEEDcUECRhsoAigiAigCECgCsAENACAAIAIQ8A4LIANBAWohAyABKAIQIgQoAtABIQIMAAsACyAEQQA6ALQBDwtB7ClByb0BQfsIQfz+ABAAAAtBpjBByb0BQfwIQfz+ABAAAAtB7ClByb0BQYQJQfz+ABAAAAtBpjBByb0BQYUJQfz+ABAAAAslAQF/IAAQGyECA0AgAgRAIAAgAiABELEIIAAgAhAcIQIMAQsLC9ABAQd/IAEoAhAoAsgBIQIDQCACKAIAIgEEQCABQVBBACABKAIAQQNxQQJHG2ooAigoAhAoAvgBIQUgACgCECgCyAEhBCABKAIQIgYuAZoBIQcDQCAEKAIAIgEEQAJAAkAgBSABQVBBACABKAIAQQNxQQJHG2ooAigoAhAoAvgBIghIBEAgASgCECEBDAELIAUgCEcNASABKAIQIgErAzggBisDOGRFDQELIAEuAZoBIAdsIANqIQMLIARBBGohBAwBCwsgAkEEaiECDAELCyADC9IBAgV/An4gASgCECgCwAEhAgNAIAIoAgAiAQRAIAFBMEEAIAEoAgBBA3FBA0cbaigCKCgCECgC+AEhBCAAKAIQKALAASEDIAEoAhAiBTIBmgEhCANAIAMoAgAiAQRAAkACQCAEIAFBMEEAIAEoAgBBA3FBA0cbaigCKCgCECgC+AEiBkgEQCABKAIQIQEMAQsgBCAGRw0BIAEoAhAiASsDECAFKwMQZEUNAQsgATIBmgEgCH4gB3whBwsgA0EEaiEDDAELCyACQQRqIQIMAQsLIAcL4AIBCH8gACgCACEFIAFBAEwhCUEAIQEDQCAFIAFBAnRqKAIAIgQEQCAEQShqIQggASEAAkAgCUUEQANAIAUgAEEBaiIAQQJ0aigCACICRQ0CIAIoAhAiBisDECAEKAIQIgcrAxChIAJBUEEAIAIoAgBBA3FBAkcbaigCKCgCECgC+AEgCEFQQQAgBCgCAEEDcUECRxtqKAIAKAIQKAL4AWu3okQAAAAAAAAAAGNFDQAgBi4BmgEgBy4BmgFsIANqIQMMAAsACwNAIAUgAEEBaiIAQQJ0aigCACICRQ0BIAIoAhAiBisDOCAEKAIQIgcrAzihIAJBMEEAIAIoAgBBA3FBA0cbaigCKCgCECgC+AEgCEEwQQAgBCgCAEEDcUEDRxtqKAIAKAIQKAL4AWu3okQAAAAAAAAAAGNFDQAgBi4BmgEgBy4BmgFsIANqIQMMAAsACyABQQFqIQEMAQsLIAML8jgBGH8jAEHQAGsiCiQAQQBBAUGg9ABBABAhRQRAQQBBAUGg9ABBlNMBECEaCyAKQQA2AkwgCkEANgIkIApCATcCHCAKQgA3AhQgCiAANgIQIAogATYCDCAKIAJB4PIJIAIbNgIIIApBKGpBAEEkEDMhFwJ/IApBtH9GBEBBgIwLQRw2AgBBAQwBCyAKQQFB4AAQQyIANgJMIABFBEBBgIwLQTA2AgBBAQwBCyAAIApBCGo2AgBBAAtFBEAgCigCTCABNgIEIAooAkwhAyMAQZAQayIMJAAgDEEANgKMCCAMQZAIakEBciEVQcgBIRIgDEHABmoiAiEOIAxBIGoiFCEHQX4hAQJAAkACQAJAAkADQAJAIA4gDToAACAOIAIgEmpBAWtPBEAgEkGPzgBKDQFBkM4AIBJBAXQiACAAQZDOAE4bIhJBBWxBA2oQSCIARQ0BIAAgAiAOIAJrIgRBAWoiBRAfIgAgEkEDakEEbUECdGogFCAFQQJ0IgYQHyEUIAxBwAZqIAJHBEAgAhAYCyAFIBJODQMgACAEaiEOIAYgFGpBBGshByAAIQILIA1BBkYNBAJ/AkACQAJAAkAgDUGAlwVqLQAAIglB7gFGDQACfyABQX5GBEACfyMAQTBrIgskACADIAxBjAhqNgJcIAMoAihFBEAgA0EBNgIoIAMoAixFBEAgA0EBNgIsCyADKAIERQRAIANBvPgIKAIANgIECyADKAIIRQRAIANBwPgIKAIANgIICwJAIAMoAhQiAARAIAAgAygCDEECdGooAgANAQsgAxDtCSADKAIEIAMQ7AkhACADKAIUIAMoAgxBAnRqIAA2AgALIAMQ9QQLIANBxABqIRggA0EkaiEPA0AgAygCJCIIIAMtABg6AAAgAygCFCADKAIMQQJ0aigCACgCHCADKAIsaiEAIAghBQNAIAUtAABB8IYFai0AACEBIABBAXRB8IgFai8BAARAIAMgBTYCRCADIAA2AkALA0AgAUH/AXEhAQJAA0AgACAAQQF0IgRB0I4Fai4BACABakEBdCIGQbCKBWouAQBGDQEgBEGwkAVqLgEAIgBB3QBIDQALIAFBkJIFai0AACEBDAELCyAFQQFqIQUgBkHQkgVqLgEAIgBBAXRB0I4Fai8BAEHbAUcNACAAIQEDQCABQQF0QfCIBWovAQAiAEUEQCADKAJEIQUgAygCQEEBdEHwiAVqLwEAIQALIAMgCDYCUCADIAUgCGs2AiAgAyAFLQAAOgAYIAVBADoAACADIAU2AiQgAMEhAAJ/A0ACQEEAIQECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAA4pAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCcnJyclCyAFIAMtABg6AAAgAygCQCEBIBgMLgsgAygCICIAQQBKDSRBfyEBDCULIAMoAiAiAEEASgRAIAMoAhQgAygCDEECdGooAgAgAygCUCAAakEBay0AAEEKRjYCHAsgAygCACIAIAAoAhRBAWo2AhQMLwsgAygCICIAQQBKBEAgAygCFCADKAIMQQJ0aigCACADKAJQIABqQQFrLQAAQQpGNgIcCyADQQM2AiwMLgsgAygCICIAQQBMDS0gAygCFCADKAIMQQJ0aigCACADKAJQIABqQQFrLQAAQQpGNgIcDC0LIAMoAiAiAEEATA0sIAMoAhQgAygCDEECdGooAgAgAygCUCAAakEBay0AAEEKRjYCHAwsCyADKAIgIgBBAEoEQCADKAIUIAMoAgxBAnRqKAIAIAMoAlAgAGpBAWstAABBCkY2AhwLIANBATYCLAwrCyADKAIgIgBBAEwNKiADKAIUIAMoAgxBAnRqKAIAIAMoAlAgAGpBAWstAABBCkY2AhwMKgsgAygCUCEAIAMoAiAiAUEASgRAIAMoAhQgAygCDEECdGooAgAgACABakEBay0AAEEKRjYCHAsgAEEBaiIBQdmcAUEEEOgBIQUgCyALQSxqNgIIIAsgC0EmajYCBCALIAtBKGo2AgAgASAAQQVqIAUbIgBB+u4AIAsQTiIBQQBMDSkgCygCKCIFQQBMDSkgAygCACAFQQFrNgIUIAFBAUYNKSAAIAsoAixqIgEhAANAIAAtAAAiBUUgBUEiRnJFBEAgAEEBaiEADAELCyAAIAFGIAVBIkdyDSkgAEEAOgAAIAMoAgAiBUEgaiIEIAEgACABaxDpCSAFIAQQ3AI2AhwMKQsgAygCICIAQQBMDSggAygCFCADKAIMQQJ0aigCACADKAJQIABqQQFrLQAAQQpGNgIcDCgLIAMoAiAiAEEATA0nIAMoAhQgAygCDEECdGooAgAgAygCUCAAakEBay0AAEEKRjYCHAwnCyADKAIgIgBBAEwNJiADKAIUIAMoAgxBAnRqKAIAIAMoAlAgAGpBAWstAABBCkY2AhwMJgtBgwIhASADKAIgIgBBAEwNGiADKAIUIAMoAgxBAnRqKAIAIAMoAlAgAGpBAWstAABBCkY2AhwMGgtBhAIhASADKAIgIgBBAEwNGSADKAIUIAMoAgxBAnRqKAIAIAMoAlAgAGpBAWstAABBCkY2AhwMGQsgAygCICIAQQBKBEAgAygCFCADKAIMQQJ0aigCACADKAJQIABqQQFrLQAAQQpGNgIcCyADKAIAIgAoAjAEQEGCAiEBDBkLQYICIQEgAEGCAjYCMAwYCyADKAIgIgBBAEoEQCADKAIUIAMoAgxBAnRqKAIAIAMoAlAgAGpBAWstAABBCkY2AhwLIAMoAgAiACgCMARAQYUCIQEMGAtBhQIhASAAQYUCNgIwDBcLQYcCIQEgAygCICIAQQBMDRYgAygCFCADKAIMQQJ0aigCACADKAJQIABqQQFrLQAAQQpGNgIcDBYLQYYCIQEgAygCICIAQQBMDRUgAygCFCADKAIMQQJ0aigCACADKAJQIABqQQFrLQAAQQpGNgIcDBULIAMoAiAiAEEASgRAIAMoAhQgAygCDEECdGooAgAgAygCUCAAakEBay0AAEEKRjYCHAtBiAJBLSADKAIAKAIwQYUCRhshAQwUCyADKAIgIgBBAEoEQCADKAIUIAMoAgxBAnRqKAIAIAMoAlAgAGpBAWstAABBCkY2AhwLQYgCQS0gAygCACgCMEGCAkYbIQEMEwsgAygCUCEAIAMoAiAiAUEASgRAIAMoAhQgAygCDEECdGooAgAgACABakEBay0AAEEKRjYCHAsgAygCACgCCCAAELEBIQAgAygCXCAANgIAQYsCIQEMEgsgAygCUCEAIAMoAiAiAUEASgRAIAMoAhQgAygCDEECdGooAgAgACABakEBay0AAEEKRjYCHAsCQCAAIAFqQQFrIgQtAAAiAUEuRyABwEEwa0EJS3FFBEAgAUEuRw0BIABBLhDNASIBRSABIARGcg0BCyADKAIAIgQoAhwhASALIAQoAhQ2AhQgCyAANgIQIAsgAUGBGSABGzYCGEHJ7AMgC0EQahArIAMoAiAhACAFIAMtABg6AAAgAyAINgJQIAMgAEEBayIANgIgIAMgACAIaiIANgIkIAMgAC0AADoAGCAAQQA6AAAgAyAANgIkIAMoAlAhAAsgAygCACgCCCAAELEBIQAgAygCXCAANgIAQYsCIQEMEQsgAygCICIAQQBKBEAgAygCFCADKAIMQQJ0aigCACADKAJQIABqQQFrLQAAQQpGNgIcCyADQQU2AiwgAxDoCQwbCyADKAIgIgBBAEoEQCADKAIUIAMoAgxBAnRqKAIAIAMoAlAgAGpBAWstAABBCkY2AhwLIANBATYCLCADKAIAIgAoAgggAEE0ahDcAhCxASEAIAMoAlwgADYCAEGMAiEBDA8LIAMoAiAiAEEASgRAIAMoAhQgAygCDEECdGooAgAgAygCUCAAakEBay0AAEEKRjYCHAsgA0HcywMQ2wIMGQsgAygCICIAQQBKBEAgAygCFCADKAIMQQJ0aigCACADKAJQIABqQQFrLQAAQQpGNgIcCyADQbPKARDbAgwYCyADKAIgIgBBAEoEQCADKAIUIAMoAgxBAnRqKAIAIAMoAlAgAGpBAWstAABBCkY2AhwLIAMoAgAiACAAKAIUQQFqNgIUDBcLIAMoAiAiAEEASgRAIAMoAhQgAygCDEECdGooAgAgAygCUCAAakEBay0AAEEKRjYCHAsgA0HshgUQ2wIgAygCACIAIAAoAhRBAWo2AhQMFgsgAygCUCEAIAMoAiAiAUEASgRAIAMoAhQgAygCDEECdGooAgAgACABakEBay0AAEEKRjYCHAsgAyAAENsCDBULIAMoAiAiAEEASgRAIAMoAhQgAygCDEECdGooAgAgAygCUCAAakEBay0AAEEKRjYCHAsgA0EHNgIsIAMoAgBBATYCGCADEOgJDBQLIAMoAiAiAEEASgRAIAMoAhQgAygCDEECdGooAgAgAygCUCAAakEBay0AAEEKRjYCHAsgAygCACIAIAAoAhhBAWsiATYCGCABBEAgAyADKAJQENsCDBQLIANBATYCLCAAKAIIIABBNGoQ3AIQzgIhACADKAJcIAA2AgBBjAIhAQwICyADKAJQIQAgAygCICIBQQBKBEAgAygCFCADKAIMQQJ0aigCACAAIAFqQQFrLQAAQQpGNgIcCyADKAIAIgEgASgCGEEBajYCGCADIAAQ2wIMEgsgAygCUCEAIAMoAiAiAUEASgRAIAMoAhQgAygCDEECdGooAgAgACABakEBay0AAEEKRjYCHAsgAyAAENsCIAMoAgAiACAAKAIUQQFqNgIUDBELIAMoAlAhACADKAIgIgFBAEoEQCADKAIUIAMoAgxBAnRqKAIAIAAgAWpBAWstAABBCkY2AhwLIAMgABDbAgwQCyADKAJQIQAgAygCICIBQQBKBEAgAygCFCADKAIMQQJ0aigCACAAIAFqQQFrLQAAQQpGNgIcCyAALAAAIQEMBAsgAygCUCEAIAMoAiAiAUEASgRAIAMoAhQgAygCDEECdGooAgAgACABakEBay0AAEEKRjYCHAsgACABQQEgAygCCBBTGgwOCyADKAJQIRYgBSADLQAYOgAAAkAgAygCFCADKAIMQQJ0aiIBKAIAIgAoAiwEQCADKAIcIQQMAQsgAyAAKAIQIgQ2AhwgACADKAIENgIAIAEoAgAiAEEBNgIsCyAPKAIAIhAgACgCBCIBIARqIgZNBEAgAyADKAJQIBZBf3NqIAVqNgIkIAMQ0wYiAUEBdEHwiAVqLwEABEAgAyABNgJAIAMgAygCJDYCRAsgASEAA0AgACAAQQF0IgVB0I4Fai4BAEEBaiIEQQF0IgZBsIoFai4BAEcEQCAFQbCQBWouAQAhAAwBCwsgAygCUCEIIARFDQkgBkHQkgVqLgEAIgBB3ABGDQkgDyAPKAIAQQFqIgU2AgAMDQsgECAGQQFqSw0DIAMoAlAhBgJAIAAoAihFBEAgECAGa0EBRw0BDAkLQQAhACAGQX9zIBBqIhFBACARQQBKGyEZIAYhBANAIAAgGUcEQCABIAQtAAA6AAAgAEEBaiEAIAFBAWohASAEQQFqIQQMAQsLAn8CQCADKAIUIAMoAgxBAnRqKAIAIgAoAixBAkYEQCADQQA2AhwgAEEANgIQDAELIAYgEGshEANAAkAgACgCBCEEIAAoAgwiASAQaiIGQQBKDQAgACgCFEUEQCAAQQA2AgQMDAsgDygCACEGIAAgAUEAIAFrQQN2ayABQQF0IAFBAEwbIgE2AgwgACAEIAFBAmoQOSIANgIEIABFDQsgAyAAIAYgBGtqNgIkIAMoAhQgAygCDEECdGooAgAhAAwBCwsgAyADKAIAIgAoAgQgBCARakGAwAAgBiAGQYDAAE8bIAAoAgAoAgQoAgARBAAiATYCHCABQQBIDQcgAygCFCADKAIMQQJ0aigCACIAIAE2AhBBACABDQEaCyARRQRAIAMoAgQhAQJ/AkAgAygCFCIABEAgACADKAIMIgZBAnRqKAIADQELIAMQ7QkgAygCBCADEOwJIQAgAygCFCADKAIMIgZBAnRqIAA2AgAgAygCFCIADQBBAAwBCyAAIAZBAnRqKAIACyABIAMQ3gkgAxD1BCADKAIUIAMoAgxBAnRqKAIAIQAgAygCHCEBQQEMAQsgAEECNgIsQQAhAUECCyEQAkAgASARaiIEIAAoAgxMBEAgACgCBCEADAELIAAoAgQgBCABQQF1aiIBEDkhACADKAIUIAMoAgxBAnRqIgQoAgAgADYCBCAEKAIAIgQoAgQiAEUNByAEIAFBAms2AgwgAygCHCARaiEECyADIAQ2AhwgACAEakEAOgAAIAMoAhQgAygCDEECdGooAgAoAgQgAygCHGpBADoAASADIAMoAhQgAygCDEECdGoiACgCACgCBCIGNgJQAkACQCAQQQFrDgIKAQALIAMgBiAWQX9zaiAFajYCJCADENMGIQAgAygCUCEIIAMoAiQhBQwOCyADKAIcIQQgACgCACgCBCEBCyADIAEgBGo2AiQgAxDTBiEBIAMoAlAhCAwIC0G6qAEQmAIAC0F/IQEgAygCFCADKAIMQQJ0aigCACADKAJQIABqQQFrLQAAQQpGNgIcCyALQTBqJAAgAQwLC0GXrgEQmAIAC0GssgEQmAIAC0G2rQMQmAIAC0GxFRCYAgALIAMgBjYCJCADQQA2AjAgAygCLEEBa0ECbUElaiEADAELCyAPCygCACEFDAALAAsACwALIQELIAFBAEwEQEEAIQFBAAwBCyABQYACRgRAQYECIQEMBQtBAiABQYwCSw0AGiABQdCXBWosAAALIgUgCcBqIgBBO0sNACAFIABB4JkFaiwAAEcNACAAQaCaBWosAAAhDUIBIACthkKAoMiEgICQgAaDUARAIAcgDCgCjAg2AgQgE0EBayIAQQAgACATTRshE0F+IQEgB0EEagwFC0EAIA1rIQsMAQsgDUHgmgVqLAAAIgtFDQELIAdBASALQbCbBWosAAAiD2tBAnRqKAIAIQUCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCALQQJrDjoAARUVAhMSBRISBRUVFRUVFRUVAxUVBAQFEhUVBgcICQoLDA0OEhUVFRUVFQ8VEBETEhIVFRUTExMUFQsgAxDODyADEMUPDBQLIAMoAgAiACgCCEUNEyADEM4PIAMQxQ8gACgCCBC6ASAAQQA2AggMEwsgB0EIaygCACEIIAdBBGsoAgAhCSAHKAIAIQYgAygCACIAKAIIIgRFBEAgAEEANgIMIAwgCEEAR0EBdCAJQQBHckEIcjoAkAggFUEAOgACIBVBADsAACAAKAIAIQQgDCAMKAKQCDYCDCAAIAYgDEEMaiAEEOIBIgQ2AggLIAAgACgCECAEEMEPNgIQQQAgBkEAEI0BGgwSCyADKAIAIgAoAgghBiAHQQRrKAIABEAgAEECENcIIAAoAhBBGGohCUEAIQQDQCAJKAIAIggEQAJAIAgoAgBBiwJHDQAgCCgCBBDVCEUNACAIKAIIIQQLIAhBDGohCQwBCwsgACgCEEEQaiENA0AgDSgCACIIKAIMBEAgCEEMaiENIAhBBGohCSAIKAIAQYYCRgRAIAgoAgQiERAbIQkDQCAJRQ0DIAMgACgCECgCACAJQQAQhgFBACAIKAIMIAQQsg8gESAJEBwhCQwACwALA0AgCSgCACIJRQ0CIAMgCSgCBCAJKAIIIAgoAgwgBBCyDyAJQQxqIQkMAAsACwsgBiAAKAIQQQhqELUCIAYgACgCEEEQahC1AiAGIAAoAhBBGGoQtQIgACgCEEEANgIEDBILIAAoAhAhBCAAQQEQ1wggBEEIaiINIQkDQCAJKAIAIggEQCAAIAgoAgQQqg8gCEEMaiEJDAELCyAGIA0QtQIgBiAEQRhqELUCIAYgBEEQahC1AiAEQQA2AgQMEQsCQCADKAIAKAIQIgAoAggiBARAQYkCIARBABCLBiEEIABCADcCCAwBC0EAIQQgACgCBCIGBEBBhgIgBkEAEIsGIQQLIABBADYCBAsgBARAIABBEGogBBC/CAsMEAtBASEFDA8LIAMgBygCAEEAQQAQxggMDgsgAyAHQQhrKAIAIAcoAgBBABDGCAwNCyADIAdBEGsoAgAgB0EIaygCACAHKAIAEMYIDAwLIAMgB0EIaygCACAHQQRrKAIAEKEPDAsLIANBggJBABChDwwKC0GCAiEFDAkLQYMCIQUMCAtBhAIhBQwHCyAHQQRrKAIAIQUMBgsgB0EIaygCACEAIAMoAgAgBygCACIGRQ0MQYsCIAAgBhCLBiEAKAIQQRhqIAAQvwgMBQsgBygCACEEIAMoAgAiACAAKAIMIgZBAWo2AgwgBkGHJ04EQCAMQZDOADYCEEH93gAgDEEQahA2CyAAIAAoAhAiBiAGKAIAIARBARCVARDBDzYCECAAKAIIIARBABCNARoMBAsgAygCACIAKAIQIgYoAgAhBCAAIAAoAgxBAWs2AgwgACAGEJQPIgA2AhAgACAENgIEIAQNA0G8iAFB7hFB5ARBt4gBEAAAC0EAIQUMAgsgBygCACEFDAELIAcoAgAhBCAMQZAIaiEAIAMoAgAoAggiBiAHQQhrKAIAIggQOyAEEDtqQQFqIgVBgQhPBH8gBRCIAwUgAAsgCBCzByIAEDsgAGogBBCzBxogABCxASEFIAYgCEEAEI0BGiAGIARBABCNARogACAMQZAIakYNACAAEBgLIAcgD0ECdGsiBCAFNgIEAn8CQCAOIA9rIg4sAAAiBSALQfCbBWosAAAiBkGZnAVqLAAAaiIAQTtLDQAgAEHgmQVqLQAAIAVB/wFxRw0AIABBoJoFagwBCyAGQcmcBWoLLAAAIQ0gBEEEagwCCwJAAkAgEw4EAQICAAILIAFBAEoEQEF+IQEMAgsgAQ0BDAcLIANB/zkQxwkLA0AgCUH/AXFBEUcEQCACIA5GDQcgB0EEayEHIA5BAWsiDiwAAEGAlwVqLQAAIQkMAQsLIAcgDCgCjAg2AgRBASENQQMhEyAHQQRqCyEHIA5BAWohDgwBCwsgA0GVrQEQxwkMAgsgACECDAILQaHWAUHuEUGuAkGfOBAAAAsgAiAMQcAGakYNAQsgAhAYCyAMQZAQaiQAIAooAhBFBEAgCigCTCIAKAIUIgEEfyABIAAoAgxBAnRqKAIABUEACyAAENMJCyAKKAJMIQADQAJAIAAoAhQiAUUNACABIAAoAgxBAnRqKAIAIgJFDQAgAiAAEMsJIAAoAhQgACgCDEECdGpBADYCAAJAIAAoAhQiAUUNACABIAAoAgxBAnRqKAIAIgFFDQAgASAAEMsJQQAhASAAKAIUIAAoAgwiAkECdGpBADYCACACBEAgACACQQFrIgE2AgwLIAAoAhQiAkUNACACIAFBAnRqKAIARQ0AIAAQ9QQgAEEBNgIwCwwBCwsgARAYIABBADYCFCAAKAI8EBggABAYIBcQZSAKQTxqEGUgCigCECEFCyAKQdAAaiQAIAUL7wEBA38CQCACRQRAA0AgAyABKAIQIgIoAswBTw0CIAIoAsgBIANBAnRqKAIAIgIgAkEwayIEIAIoAgBBA3FBAkYbKAIoKAIQIgUoArABRQRAIAVBATYCsAEgACACIAQgAigCAEEDcUECRhsoAigQsggLIANBAWohAwwACwALA0AgAyABKAIQIgIoAsQBTw0BIAIoAsABIANBAnRqKAIAIgIgAkEwaiIEIAIoAgBBA3FBA0YbKAIoKAIQIgUoArABRQRAIAVBATYCsAEgACACIAQgAigCAEEDcUEDRhsoAigQsggLIANBAWohAwwACwALCxIAIAAgAUH8JUEWQYCBARDGAQufBAEGfyMAQfAAayICJAAgASgCECgC9AEiA0HIAGwiBSAAKAIQKALEAWoiBCgCACEGAkACfwJAIAQoAghBAEwEQCAAECAhACABECAhASACIAY2AhAgAiADNgIMIAIgATYCCCACIAA2AgQgAkHQCTYCAEGm4wQgAhA2DAELIAQoAgQgBkECdGogATYCACABKAIQIAY2AvgBIAAoAhAiBCgCxAEgBWoiACAAKAIAIgVBAWo2AgAgBSAAKAIITg0CIANByABsIgVBsIALKAIAKAIQKALEAWooAggiByAGSARAIAEQICEAIAEoAhAoAvgBIQEgAkGwgAsoAgAoAhAoAsQBIAVqKAIINgIwIAJB5Ak2AiAgAiAANgIkIAIgATYCKCACIAM2AixB9c8EIAJBIGoQNgwBCyAEKALsASEFIAQoAugBIgQgA0wgAyAFTHFFBEAgAiAFNgJMIAIgBDYCSCACIAM2AkQgAkHpCTYCQEGu0QQgAkFAaxA2DAELQQAgACgCBCAGQQJ0aiAAKAIMIAdBAnRqTQ0BGiABECAhAEGwgAsoAgAoAhAoAsQBIANByABsaigCCCEGIAEoAhAoAvgBIQEgAiADNgJgIAIgAzYCZCACIAY2AmggAkHvCTYCUCACIAM2AlQgAiAANgJYIAIgATYCXEG+0AQgAkHQAGoQNgtBfwsgAkHwAGokAA8LQYHuAEHJvQFB1wlB6PcAEAAAC2IBAn8CfwJAIAEoAhAiAS0ArAFBAUcNACABKALEAUEBRw0AIAEoAswBQQFHDQAgASgCyAEhAQNAIAEoAgAiAigCECIDQfgAaiEBIAMtAHANAAtBASAAIAIQrgENARoLQQALCx0BAX8gASgCEC0ArAEEf0EABSAAIAEQrgFBAEcLC9wBAQN/IAJBAE4hBSABIQMDQCABIQQCQAJAAn8gBUUEQCADKAIQIgMoAvgBIgFBAEwNAkGwgAsoAgAoAhAoAsQBIAMoAvQBQcgAbGooAgQgAUECdGpBBGsMAQtBsIALKAIAKAIQKALEASADKAIQIgEoAvQBQcgAbGooAgQgASgC+AEiAUECdGpBBGoLKAIAIgNFDQAgAygCECgC+AEgAWsgAmxBAEoNAUGulgNByb0BQaoHQfE6EAAACyAEDwsgAyEBIAAgAxD6Dg0AIAMgBCAAIAMQ+Q4bIQEMAAsACz0BAn8gABD9DkEBIQEDQCABIAAoAhAiAigCtAFKRQRAIAIoArgBIAFBAnRqKAIAEPwOIAFBAWohAQwBCwsLXgECfwJAIAAoAhAiASgCjAJFDQAgASgC6AEhAgNAIAIgASgC7AFKDQEgASgCjAIgAkECdGogASgCxAEgAkHIAGxqKAIEKAIANgIAIAJBAWohAiAAKAIQIQEMAAsACwsrAQF/A0AgACgCCCABTQRAIABCADcCBAUgACABEIQGGiABQQFqIQEMAQsLCwoAQd6tAUEAECsL9AEBBH8gAigCECIGKALoASEDIAEoAhAiBCgC6AEhBQJAAkACQEGsgAstAABFBEAgBUUgA0VyIAMgBUZyDQEgBC0AtQFBB0YEQCAELQCsAUEBRg0ECyAGLQC1AUEHRw0CIAYtAKwBQQFGDQMMAgsgAyAFRw0BC0EAIQMCQCAAKAIQIgUoAsQBIAQoAvQBQcgAbGooAkAiAEUNACAAKAIEIAIgASAFLQB0QQFxIgQbKAIQKAKsAmwgASACIAQbKAIQKAKsAmoiAUEDdiICIAAoAgxPDQAgACgCCCACai0AACABQQdxdkEBcSEDCyADDwtBAQ8LQQALgQICCX8BfCAAKAIQIgEoAuwBIQUgASgC6AEiAyECA0AgAiAFSgRAA0ACQCADIAVKDQAgA0HIAGwiAkGwgAsoAgAoAhAoAsQBakEAOgAxIAEoAsQBIAJqIgEoAgQgASgCAEEEQacDEJQBIANBAWohAyAAKAIQIgEoAuwBIQUMAQsLBUEAIQQgASgCxAEgAkHIAGxqIgcoAgAiBkEAIAZBAEobIQgDQCAEIAhGRQRAAn8gBygCBCAEQQJ0aigCACgCECIJKwMQIgqZRAAAAAAAAOBBYwRAIAqqDAELQYCAgIB4CyEGIAkgBjYC+AEgBEEBaiEEDAELCyACQQFqIQIMAQsLC7QHAQt/IwBBEGsiBCQAIARCADcDCCAEQgA3AwACQCAAKAIQIgMtAPABQQFHDQAgAygC6AEhCQNAAkACQAJAIAMoAuwBIAlOBEAgCUHIAGwiCCADKALEAWoiBigCACICRQ0CQQAhASACQQAgAkEAShshAiAGKAIEIgMoAgAoAhAoAvgBIQsDQCABIAJGRQRAIAMgAUECdGooAgAoAhBBADYCsAEgAUEBaiEBDAELCyAEEO8OQQAhBgNAIAYgACgCECIDKALEASAIaiIBKAIAIgJODQIgASgCBCIBIAZBAnRqIAEgAkECdGogBkF/c0ECdGogAy0AdEEBcRsoAgAhA0EAIQdBACEFQQAhAgNAIAMoAhAiASgC3AEgAk0EQEEAIQIDQCABKALUASACTQRAAkAgBSAHckUEQCAEIAMQZwwBCyABKAKwASAFcg0AIAAgAyAEIAkQ7g4LIAZBAWohBgwEBSAAIAEoAtABIAJBAnRqKAIAEIMGIAdqIQcgAygCECEBIAJBAWohAgwBCwALAAUgACABKALYASACQQJ0aigCABCDBiAFaiEFIAJBAWohAgwBCwALAAsACyAEEO8OIAQoAgAQGAwECwJAIAQoAggiAkUNAAJAIAMtAHRBAXENACACQQF2IQNBACEBA0AgASADRg0BIAQgARCCBiEGIAQgASAEIAIgAUF/c2oiBRCCBhDtDiAEIAUgBhDtDiABQQFqIQEMAAsAC0EAIQpBACEBA0AgASAAKAIQIgMoAsQBIgcgCGooAgAiBU5FBEAgBCABEIIGIQIgACgCECgCxAEgCGooAgQgAUECdGogAjYCACACKAIQIAEgC2o2AvgBIAFBAWohAQwBCwsDQCAFIApMDQFBACECIAcgCGooAgQgCkECdGooAgAiCygCECgC0AEiBgRAA0ACQCAAKAIQIQMgBiACQQJ0aigCACIBRQ0AIAFBMEEAIAEoAgBBA3EiB0EDRxtqKAIoKAIQKAL4ASEFIAFBUEEAIAdBAkcbaigCKCgCECgC+AEhBwJAAkAgAy0AdEEBcUUEQCAFIAdKDQEMAgsgBSAHTg0BCyAAIAEQgwYNByABEMEIIAAgARDsDiACQQFrIQIgCygCECgC0AEhBgsgAkEBaiECDAELCyADKALEASIHIAhqKAIAIQULIApBAWohCgwACwALQbCACygCACgCECgCxAEgCGpBADoAMQsgCUEBaiEJDAELC0GpqgNByb0BQbELQaM9EAAACyAEQRBqJAALpgIBB38gACgCECIEKALoASEFA0BBACEBQQAhAyAFIAQoAuwBSkUEQANAIAEgBUHIAGwiBiAEKALEAWoiAigCACIHTkUEQCACKAIEIAFBAnRqKAIAKAIQIgIgATYCrAIgAkEAOgC0ASACQQA2ArABAn8gAigC1AEiAkUgA3JBAXEEQCACQQBHIANyDAELQQFBEBAZIgIgBzYCBCACIAc2AgAgACgCECIEKALEASAGaiACNgJAQQELIQMgAUEBaiEBDAELC0EAIQECQCADQQFxRQ0AA0AgASAEKALEASAGaiIDKAIATg0BIAMoAgQgAUECdGooAgAiAygCECgCsAFFBEAgACADEPAOIAAoAhAhBAsgAUEBaiEBDAALAAsgBUEBaiEFDAELCwvOBgEJfyMAQRBrIgQkACAEQgA3AwggBEIANwMAIAAoAhAiBkHAAWohAwNAIAMoAgAiBQRAIAUoAhAiBUEANgKwASAFQbgBaiEDDAELCyAGKALsASEFIAYoAugBIQMDQCADIAVMBEAgBigCxAEgA0HIAGxqQQA2AgAgA0EBaiEDDAELCyAAEDchBSAAKAIQKALAASEDAkAgACAFRiIGBEAgAyEFDAELA0AgAyIFKAIQKAK4ASIDDQALC0HIAUHAASABGyEJQbgBQbwBIAYbIQoCQANAIAUEQAJAIAUoAhAiAyAJaigCACgCAA0AIAMoArABDQAgA0EBNgKwASAEIAUQsggDQCAEKAIIRQ0BIARBABD3DiEDIAQgBCgCCEEBazYCCCAEIAQoAgRBAWogBCgCDHA2AgQgAygCEC0AtQFBB0cEQCAAIAMQ+A4EQEF/IQMMBgsgBCADIAEQ9g4MAQtBACEHAkAgAUEBaiIGIAMoAhAoAugBIgsoAhAiAywAkQJGDQAgAygC6AEhCANAIAsoAhAiBygC7AEiAyAITgRAIAhBAnQhAyAIQQFqIQggACADIAcoAowCaigCABD4DiIHRQ0BDAILCyAHKALoASEIA0AgAyAITgRAIAQgBygCjAIgCEECdGooAgAgARD2DiAIQQFqIQggCygCECIHKALsASEDDAELCyAHIAY6AJECQQAhBwsgByIDRQ0ACwwDCyAFKAIQIApqKAIAIQUMAQsLQbCACygCACEKIAAoAhAiAygC6AEhCQNAIAMoAuwBIAlOBEAgCUHIAGwiASAKKAIQKALEAWpBADoAMQJAIAMtAHRBAXFFDQAgAygCxAEgAWoiBigCACIBQQBMDQAgAUEBayIFQQF2QQFqIQEgBigCBCEGQQAhAwNAIAEgA0cEQCAGIANBAnRqKAIAIAYgBSADa0ECdGooAgAQtAggA0EBaiEDDAELCyAAKAIQIQMLIAlBAWohCQwBCwtBACEDIAAQYSAARw0AIAIQywRCAFcNACAAQQAQswgLQQAhAANAIAQoAgggAEsEQCAEIAAQ9w4aIABBAWohAAwBCwsgBEIANwIEIAQoAgAQGCAEQgA3AgggBEIANwIAIARBEGokACADC48JAgt/An5CfyENAkACfyMAQRBrIgokACAAIgMQpg4gACgCECIAQQE2AtwBIAAoAtgBIAAoAsABNgIAIAMQhg8gCkIANwMIIApCADcDACADQQAgChCEDyEEIApCADcCBCAKKAIAEBggCkIANwMIIApCADcDAAJAAkAgBA0AIAMoAhAiACgC6AEgACgC7AFKDQEgAxBhIQUgAygCECIEKALoASICQQBKBEAgBSgCECgCxAEgAkHIAGxqQRdrQQA6AAALA0AgBCgC7AEgAk4EQCAFIAIgBCgCjAIgAkECdGooAgAoAhAoAvgBIgAgAkHIAGwiCSAEKALEAWooAgAQpA5BACEHIAAhBgNAIAMoAhAiBCgCxAEgCWoiCCgCACAHSgRAIAUoAhAoAsQBIAlqKAIEIAZBAnRqIAgoAgQgB0ECdGooAgAiBDYCACAEKAIQIgggBjYC+AEgCC0ArAFBAUYEQCAEIAUQNzYCGAsgBkEBaiEGIAMgBBCJBiAFIAQQwgggB0EBaiEHDAELCyAIIAUoAhAoAsQBIAlqIgYoAgQgAEECdGo2AgQgBkEAOgAxIAJBAWohAgwBCwsgBSgCECIAKALsASACSgRAIAAoAsQBIAJByABsakEAOgAxCyAEQQE6AJACIAMQYSEEIAMQGyEGA0AgBgRAQQAhAiAEIAYQbyEHA0AgByIARQRAIAMgBhAcIQYMAwsgBCAAIAYQdCEHIAMgABCuAQ0AIAIgAEFQQQAgACgCAEEDcUECRxtqIgAQpw4gAEFQQQAgACgCAEEDcSIIQQJHG2ooAigiBSgCECgC9AEhCSAAQTBBACAIQQNHG2ooAigiCCgCECgC9AEhCwRAIAAoAhAiBSACQQAgCSALRhs2ArABIAIoAhAiCSgCsAFFDQEgBUEANgKwASADIAAgCSgCsAFBABDGBCAAEJwPDAELIAkgC0YEQCAIIAUQng8iBUUEQCAAIgIoAhAoArABDQIgBCAAEIgGDAILIAAgBUYNASAAEJwPIAAoAhAoArABDQEgACAFEIkDDAELIAkgC0oEQCAIIAUgABCjDgUgBSAIIAAQow4LIAAhAgwACwALCyADKAIQIgIoAugBIQZBACEEA0AgBiACKALsAUoNASAGQQJ0IgUgAigCjAJqKAIAIQADQCAAKAIQIgcoAsgBKAIAIgIEQCACEJACIAIoAhAQGCACEBgMAQsLA0AgBygCwAEoAgAiAgRAIAIQkAIgAhAYIAAoAhAhBwwBCwsgAxBhIAAQiQYgACgCECgCwAEQGCAAKAIQKALIARAYIAAoAhAQGCAAEBggAygCECgCjAIgBWpBADYCACAGQQFqIQYgAygCECECDAALAAsgCkEQaiQAIAQMAQtBzbYDQdm+AUHhAUGOMRAAAAsNACADELgIIAMQgw8gAxCCDyADQQIgARC3CCINQgBTDQBBASEAA0AgAygCECICKAK0ASAATgRAIAIoArgBIABBAnRqKAIAIAEQhQ8iDkIAUwRAIA4PBSAAQQFqIQAgDSAOfCENDAILAAsLIAMQ/Q4LIA0L7AIBBn8gACgCECgC7AFBAmpBBBAZIQYgABAbIQIDQCACBEAgBiACKAIQKAL0AUECdGoiASABKAIAQQFqNgIAIAAgAhAtIQEDQCABBEAgAUEwQQAgASgCAEEDcSIDQQNHG2ooAigoAhAoAvQBIgQgAUFQQQAgA0ECRxtqKAIoKAIQKAL0ASIFIAQgBUgbIQMgBCAFIAQgBUobIQQDQCADQQFqIgMgBE5FBEAgBiADQQJ0aiIFIAUoAgBBAWo2AgAMAQsLIAAgARAwIQEMAQsLIAAgAhAcIQIMAQsLIAAoAhAoAuwBQQJqQcgAEBkhASAAKAIQIgIgATYCxAEgAigC6AEhAwNAIAMgAigC7AFKRQRAIAEgA0HIAGwiAmoiBCAGIANBAnRqKAIAQQFqIgE2AgggBCABNgIAIAFBBBAZIQQgAiAAKAIQIgIoAsQBIgFqIgUgBDYCDCAFIAQ2AgQgA0EBaiEDDAELCyAGEBgL2AMBA39BASEEA0AgBCAAKAIQIgUoArQBSkUEQCAFKAK4ASAEQQJ0aigCACABIAIgAxCHDyEDIARBAWohBAwBCwsCQCAAEGEgAEYNACABQQAgAkECdBAzIQUgABAbIQIDQCACBEAgBSACKAIQKAL0AUECdGpBATYCACAAIAIQLSEBA0AgAQRAIAFBKGohBiACKAIQKAL0ASEEA0AgBCAGQVBBACABKAIAQQNxQQJHG2ooAgAoAhAoAvQBTkUEQCAFIARBAWoiBEECdGpBATYCAAwBCwsgACABEDAhAQwBCwsgACACEBwhAgwBCwsgACgCECIBKALoASEEA0AgBCABKALsAUoNASAFIARBAnRqKAIARQRAIANFBEAgABBhQd73AEEBEJUBIQMLIANBAEEBEI4BIgJB3ClBwAJBARA1GiACKAIQIgFCgICAgICAgPA/NwNgIAEgBDYC9AEgAUKAgICAgICA8D83A1ggAUEBNgLsASABQoCAgICAgID4PzcDUCABQQA2AsQBQQVBBBAZIQEgAigCECIGQQA2AswBIAYgATYCwAFBBUEEEBkhASACKAIQIAE2AsgBIAAgAkEBEIYBGiAAKAIQIQELIARBAWohBAwACwALIAMLyQwDCn8CfgF8IwBBQGoiBSQAQQEhAgNAIAJBAnQhBgJAA0AgAiAAKAIQIgEoArQBSw0BIAEoArgBIAZqKAIAEBtFBEBBhowEQQAQKyAAKAIQIgcoArgBIAZqIgEgAUEEaiAHKAK0ASACa0ECdBBSGiAAKAIQIgEgASgCtAFBAWs2ArQBDAELCyACQQFqIQIMAQsLQYzdCi0AAARAQbDiChCsAQtBsIALIAA2AgBBrIALQQA6AABBtIALIAAQYRCzAkEBaiIBQQQQGTYCACABQQQQGSEBQbiAC0EINgIAQbyACyABNgIAQcjdCkEYNgIAAkAgAEGWIRAmIgFFDQAgARCqAiINRAAAAAAAAAAAZEUNAEG4gAtBuIALKAIAIA0Q+gNBAEoEf0G4gAsoAgAgDRD6AwVBAQs2AgBByN0KQcjdCigCACANEPoDQQBKBH9ByN0KKAIAIA0Q+gMFQQELNgIACyAAKAIQIgEtAIgBQRBxBEAgACABKALsAUECaiICQQQQGSIBIAJBABCHDxogARAYCyAAEKYOIABBARC+CCAAEIYPIAAQuAhBwIALIAAoAhAiAygC6AE2AgBBxIALIAMoAuwBNgIAIAVCADcDOCAFQgA3AzACQANAIAMoAtwBIgYgBEsEQCADIAMoAtgBIARBAnRqKAIANgLAAQJAIARFDQAgAygC7AEhByADKALoASECA0AgAiAHSg0BIAMoAsQBIAJByABsaiIGKAIAIQEgBkEANgIAIAYgBigCBCABQQJ0ajYCBCACQQFqIQIMAAsACyAAQQAgBUEwaiIBELcIIgxCAFMEQCABEIUGQX8hAgwDBSAEQQFqIQQgCyAMfCELIAAoAhAhAwwCCwALCwJAIAZBAU0EQCADKALoASEEDAELIAMoAtgBIQdBACEBA0AgBiAIRgRAIANBATYC3AEgAyAHKAIANgLAASADQcCACygCACIENgLoASADQcSACygCADYC7AEMAgsgByAIQQJ0aigCACECIAEEQCABKAIQIAI2ArgBCyACKAIQIAE2ArwBA0AgAiIBKAIQKAK4ASICDQALIAhBAWohCAwACwALQbj4CCgCACEKQQEhCQJAA0ACQCADKALsASAESARAA0AgCSADKAK0ASIBSg0CIAMoArgBIAlBAnRqKAIAIAVBMGoQhQ8iDEIAUw0EIAlBAWohCSALIAx8IQsgACgCECEDDAALAAsgBEHIAGwiCCADKALEAWoiAiACKAIIIgE2AgAgAiACKAIMIgY2AgRBACECIAFBACABQQBKGyEHA0ACQCACIAdHBEAgBiACQQJ0aigCACIBDQFBjN0KLQAABEAgABAgIQEgBSAAKAIQKALEASAIaigCADYCLCAFIAI2AiggBSAENgIkIAUgATYCICAKQbLzAyAFQSBqEB4aIAAoAhAhAwsgAygCxAEgCGogAjYCAAsgBEEBaiEEDAMLIAEoAhAgAjYC+AEgAkEBaiECDAALAAsLAkAgAUEATA0AIABBtCwQJiIBBEAgARBrRQ0BCyAAEKUIQayAC0EBOgAAIABBAiAFQTBqIgEQtwgiC0IAWQ0AIAEQhQZBfyECDAILIAVBMGoQhQZBvIALKAIAIgEEQCABEBhBvIALQQA2AgALQbSACygCACIBBEAgARAYQbSAC0EANgIAC0EBIQIDQCAAKAIQIgQoArQBIAJOBEAgBCgCuAEgAkECdGooAgAQtgggAkEBaiECDAELCyAEKALoASEJA0BBACEGIAQoAuwBIAlOBEADQCAEKALEASAJQcgAbGoiASgCACAGSgRAIAEoAgQgBkECdGooAgAiBygCECIBIAY2AvgBQQAhAiABKALQASIIBEADQCAIIAJBAnRqKAIAIgEEQCABKAIQLQBwQQRGBH8gARDBCCABKAIQEBggARAYIAcoAhAoAtABIQggAkEBawUgAgtBAWohAgwBCwsgACgCECEECyAGQQFqIQYMAQsLIAEoAkAi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ASACQTBBACACKAIAQQNxQQNHG2ooAigiARCmASABRgRAIAIQwAggAygCECEBDAELC0H2rANBx8ABQYUDQfszEAAACyAAQQAQvghBACEBA0AgACgCECICKALcASABSwRAIAIgAigC2AEgAUECdGooAgAiAjYCwAEgAiEDA0AgAwRAIAMoAhAiA0EANgKwASADKAK4ASEDDAELCwNAIAIEQCACEJsPIAIoAhAoArgBIQIMAQsLIAFBAWohAQwBCwsCQCAAKAIQIgIoAuQBRQRAIAIoAuABRQ0BCyAAEBshAUEAIQMDQCABBEACQCABEKYBIAFHDQACQCABKAIQIgIoAswBDQAgACgCECgC5AEiBEUgASAERnINACABIARBABDjASIDKAIQIgJBADYCnAEgAiAKNgKsASABKAIQIQILIAIoAsQBDQAgACgCECgC4AEiAkUgASACRnINACACIAFBABDjASIDKAIQIgJBADYCnAEgAiAFNgKsAQsgACABEBwhAQwBCwsgA0UNACAAQQAQvggLIAAiBEHq7wIQJiIABH8gBBA4IAAQqgIQ+gMFQf////8HCyEDQQAhAANAIAAgBCgCECICKALcAUkEQCACIAIoAtgBIABBAnRqKAIANgLAASAEIAIoArQBRSADEM4EGiAAQQFqIQAMAQsLIAQQGyEBIAQoAhAhAAJAIAEEQCAAQv////93NwPoAQNAIAEEQAJAIAEgARCmASIARgRAIAEoAhAiAygC9AEhAgwBCyABKAIQIgMgAygC9AEgACgCECgC9AFqIgI2AvQBCyACIAQoAhAiACgC7AFKBEAgACACNgLsAQsgAiAAKALoAUgEQCAAIAI2AugBCyADLQC1ASIARSAAQQZGckUEQCABELIKCyAEIAEQHCEBDAELCyAEEGEgBEcNAUG43QooAgBB5ABGBEBBASEBA0AgASAEKAIQIgAoArQBSg0DIAAoArgBIAFBAnRqKAIAEI0PIAFBAWohAQwACwALIAQQYRB6IQEDQCABRQ0CIAEoAhAtAJICQQdGBEAgBCABEIwPCyABEHkhAQwACwALIABCADcD6AELIAZCADcDCCAGQgA3AwBBACECA38gBCgCECIAKALcASACTQR/IAQQGwUgACAAKALYASACQQJ0aigCACIBNgLAAQNAIAEEQCABKAIQQcABakEAEIsPIAEoAhBByAFqIAYQiw8gASgCECIAQQA2ArABIAAoArgBIQEMAQsLIAJBAWohAgwBCwshAwNAAkAgAwRAIAQgAxAtIQEDQCABRQ0CAkAgASgCECIAKAKwASICRQ0AIAEgAigCECgCeEYNACAAQQA2ArABCyAEIAEQMCEBDAALAAsgBBAbIQUDQCAFBEAgBCAFEC0hAQNAIAEEQAJAIAEoAhAoArABIgBFDQAgACgCECgCeCABRw0AIAYgABBnIAEoAhBBADYCsAELIAQgARAwIQEMAQsLIAQgBRAcIQUMAQsLIAYoAgwhAyAGKAIEIQoCQAJAA0AgCgRAIANFDQIgBigCACgCACECIAMhAQNAIAEEQCAGKAIAIAFBAWsiAUECdGoiBSgCACAFIAI2AgAhAgwBBSAKQQFrIQoMAwsACwALCyAGQQA2AgQgBigCCCIAIANLDQEgAARAIAYoAgAgAEEEQaIDEJQBC0EAIQFBACEDQQAhAgNAAkAgBigCCCIFIAJNBEADQCABIAVPDQIgBiABEIoPGiABQQFqIQEgBigCCCEFDAALAAsgAyAGIAIQig8iAEcEQCAAKAIQEBggABAYCyACQQFqIQIgACEDDAELCyAGQgA3AgQgBigCABAYIAZCADcDCCAGQgA3AwAgBCgCECgC2AEQGCAEKAIQQgA3A9gBIAZBEGokAA8LQeeVA0HHwAFBJkHbtwEQAAALQbSjA0HHwAFBJkHbtwEQAAALIAQgAxAcIQMMAAsAC6kBAQJ/IwBBEGsiBCQAAkACQAJAIAAgASACQQBBABBeIgUNACAAIAIgAUEAQQAQXiIFDQAgACABIAJBAEEBEF4iBUUNAQsgAygCECICKAKsASEBIAUoAhAiACAAKAKcASACKAKcAWo2ApwBIAAgACgCrAEiACABIAAgAUobNgKsAQwBCyABECAhACAEIAIQIDYCBCAEIAA2AgBBsoEEIAQQNgsgBEEQaiQACw0BAX8gACgCICAAEBgLmgMBAn8CQCAAEBtFDQAgABDFAQRAAkAgAQRAIAEoAhAoAswBIQIgACgCECIDIAE2AsgBIAMgAkEBajYCzAEgASAAEIcGIAEgABCJDwwBCyAAKAIQQQA2AswBCyAAIQELIAAQeiECA0AgAgRAIAIgARCVDyACEHkhAgwBCwsCQCAAEMUBRQ0AIAAQGyECA0AgAkUNASACKAIQIgMoAugBRQRAIAMgADYC6AELIAAgAhAcIQIMAAsACwJAIABBhPgAECYiAkUNACACLQAARQ0AAkACQCACQa/oABBJRQ0AIAJBh6UBEElFDQAgAkHFExBJRQ0BIAJB7/YAEElFDQEgAkGUnQEQSQ0CIAAQhgYaDAILIAAQhgYgAUUNASABKAIQKALQARC6CCECIAEoAhAgAjYC0AEMAQsgABCGBiABRQ0AIAEoAhAoAtQBELoIIQIgASgCECACNgLUAQsgABDFAUUNACAAKAIQIgEoAtABIgJFDQAgAiABKALUAUcNACAAEIYGIQEgACgCECIAIAE2AtQBIAAgATYC0AELC28BA38gACgCEC0AcUEBcQRAIAAQGyEBA0AgAQRAIAAgARAtIQIDQCACBEAgAigCECIDIAMoAqwBQQF0NgKsASAAIAIQMCECDAELCyAAIAEQHCEBDAELCyAAKAIQIgAgACgC/AFBAWpBAm02AvwBCwvxEQEQfyMAQZABayIKJAACQAJAIABByvcAECYQawRAIAAoAhAiAiACLwGIAUEQcjsBiAFBpIALQQA2AgAgCkHU8gkoAgA2AhxBvyogCkEcakEAEOIBIgNB/roBQZgCQQEQNRojAEEQayIFJABBAUEMEEMiAUUEQCAFQQw2AgBBuPgIKAIAQc/uAyAFEB4aECcACyABQfzRCjYCBCABQcjSCjYCACABIAMoAkwiAigCKDYCCCACIAE2AiggBUEQaiQAIAAQlg8gAEHq7wIQJiICBH8gABA4IAIQqgIQ+gMFQf////8HCyEQIABBABCVD0GkgAtBADYCACAAEBshAQNAIAEEQCABEIICIAFGBEAgAyABECAQzAQhAiABKAIQIAI2AqQBCyAAIAEQHCEBDAELCyAAEBshAQNAIAEEQCABKAIQKAKkAUUEQCABEIICIQIgASgCECACKAIQKAKkATYCpAELIAAgARAcIQEMAQsLIAAQGyELA0AgC0UNAiALKAIQKAKkASEFIAAgCxAtIQYDQAJAAkACQCAGBEACQEGs3wooAgAiAkUNACAGIAIQQSICRQ0AIAItAABFDQAgAhBrRQ0ECyAFIAYgBkEwayIOIAYoAgBBA3FBAkYbKAIoEIICKAIQKAKkASICRg0DIAYgDiAGKAIAQQNxIgRBAkYiARsoAigoAhAoAugBIQ0gBkEwQQAgBEEDRxtqKAIoIgcoAhAoAugBIgwhCCAGQQBBUCABG2ooAigoAhAoAugBIg8hAQJAAkAgDCAPRg0AA0AgASAIRwRAIAgoAhAiCSgCzAEgASgCECIEKALMAU4EQCAJKALIASEIBSAEKALIASEBCwwBCwsgCCAMRg0AIAggD0cNAQsCQCAMBEAgBxCCAiAMKAIQKALUAUYNAQsgDUUNAyAGIA4gBigCAEEDcUECRhsoAigQggIgDSgCECgC0AFHDQMLIAUhASACIQUMAwsCQCAMEL0IRQRAIA0QvQhFDQELIAMgBRC5AiEBA0AgAQRAIAMgAUEwQQAgASgCAEEDcUEDRxtqKAIoEC0iBARAIARBUEEAIAQoAgBBA3FBAkcbaigCKCACRg0HCyADIAEQjwMhAQwBCwtBqIALQaiACygCACIBQQFqNgIAIAogATYCECAKQSBqIgFB5ABBnLUBIApBEGoQoQEaIAMgAyABEMwEIgEgBUEAQQEQXiADIAEgAkEAQQEQXiEBKAIQIgQgBCgCrAEiAkEAIAJBAEobNgKsASAEIAQoApwBIAYoAhAiBCgCnAFB6AdsajYCnAEgASgCECIJIAkoAqwBIgEgBCgCrAEiAiABIAJKGzYCrAEgCSAJKAKcASAEKAKcAWo2ApwBDAQLIAMgBSACIAYQkw8MAwsgACALEBwhCwwECyACIQELIAMgBSABIAYQkw8LIAAgBhAwIQYMAAsACwALIAAQkg8MAQsgACADQQBBABCRDyADEBshAQNAIAEEQCABKAIQIgJBADoAtAEgAkEANgKwASADIAEQHCEBDAELCyADEBshAQNAIAEEQCADIAEQkA8gAyABEBwhAQwBCwsgAxAbIQEDQCABBEAgASgCEEEANgKQASADIAEQHCEBDAELC0EAIQkgAxAbIQEDQCABBEAgASgCECgCkAFFBEAgAyABIAlBAWoiCRC8CAsgAyABEBwhAQwBCwsCQCAJQQJIDQAgA0HvHBDMBCECIAMQGyEBQQEhCANAIAFFDQEgCCABKAIQKAKQAUYEQCADIAIgAUEAQQEQXhogCEEBaiEICyADIAEQHCEBDAALAAsgAxAbIQcDQCAHBEAgAyAHEC0hAQNAIAEEQCAHKAIQIgIoAsgBIAIoAswBIgJBAWogAkECahDPASEFIAcoAhAiAiAFNgLIASACIAIoAswBIgJBAWo2AswBIAUgAkECdGogATYCACAHKAIQIgIoAsgBIAIoAswBQQJ0akEANgIAIAEgAUEwayIEIAEoAgBBA3FBAkYbKAIoKAIQIgIoAsABIAIoAsQBIgJBAWogAkECahDPASECIAEgBCABKAIAQQNxQQJGGygCKCgCECACNgLAASABIAQgASgCAEEDcUECRhsoAigoAhAiBSAFKALEASICQQFqNgLEASAFKALAASACQQJ0aiABNgIAIAEgBCABKAIAQQNxQQJGGygCKCgCECICKALAASACKALEAUECdGpBADYCACADIAEQMCEBDAELCyADIAcQHCEHDAELCyADQQEgECAAQfaMARAmIgIEfyACEIwCBUF/CxCrDxogACgCEEL/////dzcD6AFBACEHAkAgCUECSA0AIAlBAWoiAhC7CCEHQQEhAQNAIAEgAkYNASAHIAFBAnRqQf////8HNgIAIAFBAWohAQwACwALIAAQGyEIA0AgCARAIAgQggIhAiAIKAIQIgUgAigCECgCpAEoAhAiAigC9AEiBDYC9AEgBCAAKAIQIgEoAuwBSgRAIAEgBDYC7AELIAQgASgC6AFIBEAgASAENgLoAQsgBwRAIAUgAigCkAEiAjYCkAEgByACQQJ0aiICIAIoAgAiAiAEIAIgBEgbNgIACyAAIAgQHCEIDAELCwJAIAcEQCAAEBshAQNAIAEEQCABKAIQIgIgAigC9AEgByACKAKQAUECdGooAgBrNgL0ASAAIAEQHCEBDAEFQQEhBgwDCwALAAtBACEGIAAoAhAoAugBIgVBAEwNACAAEBshAQNAIAEEQCABKAIQIgIgAigC9AEgBWs2AvQBIAAgARAcIQEMAQsLIAAoAhAiAiACKALoASAFazYC6AEgAiACKALsASAFazYC7AELIAAgBhCPDyADEBshAQNAIAEEQCABKAIQKALAARAYIAEoAhAoAsgBEBggAyABEBwhAQwBCwsgABAbKAIQKAKAARAYIAAQGyEBA0AgAQRAIAEoAhBBADYCgAEgACABEBwhAQwBCwsgBxAYIAMQugELQYzdCi0AAARAIAogACgCECkD6AFCIIk3AwBBuPgIKAIAQZPLBCAKEB4aCyAKQZABaiQAC44BAQR/IAAoAhBC/////3c3A+gBIAAQGyEDA0ACQCAAKAIQIQEgA0UNACADKAIQKAL0ASIEIAEoAuwBSgRAIAEgBDYC7AELIAQgASgC6AFIBEAgASAENgLoAQsgAyEBIAIEQCABIAIgBCACKAIQKAL0AUgbIQELIAAgAxAcIQMgASECDAELCyABIAI2AogCC6gCAQd/IwBBEGsiByQAIAEoAhBBnIALKAIAQQFqNgKwAQJAAkAgACgCCCIFIAAoAgwiAkcEQCAAKAIAIQMgACgCBCEEDAELIAVBAXRBASAFGyICQf////8DSwRAQcQAIQAMAgsgACgCACACQQJ0EDkiA0UEQEEwIQAMAgsgAyAAKAIMIgZBAnRqQQAgAiAGa0ECdBAzGiAGIAAoAggiBSAAKAIEIgRqSQRAIARBAnQhCCADIAIgBiAEayIGayIEQQJ0aiADIAhqIAZBAnQQUhogACAENgIECyAAIAI2AgwgACADNgIACyADIAQgBWogAnBBAnRqIAE2AgAgACAFQQFqNgIIIAdBEGokAA8LIAcgABBzNgIAQbj4CCgCAEHhhQQgBxAeGhAnAAsSACAAIAFB3SVBO0GAvwEQxgELlAEBBH8gACgCECIBKAKwAUUEQCABQQE6ALQBIAFBATYCsAEDQCABKALIASACQQJ0aigCACIDBEACQCADQVBBACADKAIAQQNxQQJHG2ooAigiASgCECIELQC0AQRAIAMQwAggAkEBayECDAELIAQoArABDQAgARCbDwsgAkEBaiECIAAoAhAhAQwBCwsgAUEAOgC0AQsLnAEBBX8gAEEwQQAgACgCAEEDcUEDRxtqKAIoKAIQIgIoAuABIQQgAigC5AEhAwJAA0AgASADRwRAIAFBAnQhBSABQQFqIQEgACAEIAVqKAIARw0BDAILCyACIAQgA0EBaiADQQJqEM8BIgE2AuABIAIgAigC5AEiAkEBaiIDNgLkASABIAJBAnRqIAA2AgAgASADQQJ0akEANgIACwvwAgEDfyAAIABBMGoiAiAAKAIAQQNxQQNGGygCKCgCECIBKALIASABKALMASIBQQFqIAFBAmoQzwEhASAAIAIgACgCAEEDcUEDRhsoAigoAhAgATYCyAEgACACIAAoAgBBA3FBA0YbKAIoKAIQIgEgASgCzAEiA0EBajYCzAEgASgCyAEgA0ECdGogADYCACAAIAIgACgCAEEDcUEDRhsoAigoAhAiAigCyAEgAigCzAFBAnRqQQA2AgAgACAAQTBrIgIgACgCAEEDcUECRhsoAigoAhAiASgCwAEgASgCxAEiAUEBaiABQQJqEM8BIQEgACACIAAoAgBBA3FBAkYbKAIoKAIQIAE2AsABIAAgAiAAKAIAQQNxQQJGGygCKCgCECIBIAEoAsQBIgNBAWo2AsQBIAEoAsABIANBAnRqIAA2AgAgACACIAAoAgBBA3FBAkYbKAIoKAIQIgIoAsABIAIoAsQBQQJ0akEANgIAIAALQgECfyMAQRBrIgIkACABKAIQIQMgAiAAKAIQKQLQATcDCCACIAMpAtgBNwMAIAAgAkEIaiABIAIQnw8gAkEQaiQAC60BAQN/AkACQCABKAIEIgVFDQAgAygCBCIGRQ0AIAUgBk8EQCADKAIAIQJBACEBA0AgAiABQQJ0aigCACIERQ0DIAFBAWohASAEQTBBACAEKAIAQQNxQQNHG2ooAiggAEcNAAsMAQsgASgCACEAQQAhAQNAIAAgAUECdGooAgAiBEUNAiABQQFqIQEgBEFQQQAgBCgCAEEDcUECRxtqKAIoIAJHDQALCyAEDwtBAAsVACAAIAEgAkHPJUGQCUH1vQEQ0woLqgIBB38jAEEQayIEJAAgACgCACIDKAIQIQUgAygCCCEGIAIEQBD/DgsgBUEYaiICIQADQCAAKAIAIgAEQCAAKAIIRQRAEP8OCyAAQQxqIQAMAQsLIAFBggJrIgFBA0kEQCADIAEQ1wggAiEAA0AgACgCACIABEACQCAAKAIAQYsCRg0AAkAgACgCBCIDLQAVBEAgBSgCACAGRg0BCyAAKAIIEHcgACgCCCEDIAUoAgAhByAAKAIEKAIIIQgEQCAHIAEgCCADEOoDIQMMAQsgByABIAggAxAhIQMLIAUoAgAgBkcNACADQQE6ABYLIABBDGohAAwBCwsgBiACELUCIARBEGokAA8LIARB9gI2AgQgBEHuETYCAEG4+AgoAgBB2MMEIAQQHhoQaQAL2QEBBH8gAEEwQQAgACgCAEEDcSIFQQNHG2ooAigiBiEDAn8CQCABIAZGBH8gAEFQQQAgBUECRxtqKAIoBSADCygCECgCsAIiAyABKAIQIgQoAqwCTgRAIAMgBCgCsAJMDQELIAAoAhAoApwBIQNBAAwBC0EAIQMgACgCECIEKAKkAUEATgR/IAQoAqABBUEACyAEKAKcAWshA0EBCyEEQQAgA2sgA0EBQX8gAkEATAR/IAEgBkYFIABBUEEAIAVBAkcbaigCKCABRgsbIgBBACAAayAEG0EASBsLVQECfyAAKAIEEBggAEIANwIEIABBDGohAgNAIAEgACgCFE9FBEAgAiABEPsDGiABQQFqIQEMAQsLIABCADcCECAAKAIMEBggAkIANwIIIAJCADcCAAucAQEEf0GAgICAeCECQf////8HIQEgACgCACgCEEHAAWoiAyEAA0AgACgCACIABEAgACgCECIELQCsAUUEQCACIAQoAvQBIgAgACACSBshAiABIAAgACABShshAQsgBEG4AWohAAwBBQNAAkAgAygCACIARQ0AIAAoAhAiACAAKAL0ASABazYC9AEgAEG4AWohAwwBCwsLCyACIAFrC5cBAQJ/A0ACQAJAIAEoAhAiAigCrAJBf0YNACACQX82AqwCIAIoAqgCIgNFDQAgAigCsAIgACgCECgCsAJIDQEgACABRg0AQa3VBEEAEDYLDwsgA0EwQQAgAygCAEEDcSIBQQNHG2ooAigiAiADQVBBACABQQJHG2ooAigiASACKAIQKAKwAiABKAIQKAKwAkobIQEMAAsAC7YBAQN/QQAgAmshBiABKAIQKAKwAiEFA0ACQCAFIAAoAhAiASgCrAJOBEAgBSABKAKwAkwNAQsgASgCqAIiASgCECIEIAQoAqABIAYgAiADIAAgASABQTBqIgQgASgCAEEDcUEDRhsoAihHRhtqNgKgASABIAQgASgCAEEDcSIAQQNGGygCKCIEIAFBUEEAIABBAkcbaigCKCIAIAQoAhAoArACIAAoAhAoArACShshAAwBCwsgAAuXAQEDfyABQVBBACABKAIAQQNxIgJBAkcbaigCKCIEKAIQKAKwAiEDIAFBMEEAIAJBA0cbaigCKCIBKAIQKAKwAiECIABB/////wc2AjggAEEANgIsIAAgASAEIAIgA0giAhsoAhAiAygCrAI2AjAgACADKAKwAjYCNAJAIAJFBEAgACAEEMUIDAELIAAgARDECAsgACgCLAtUAQJ/IwBBIGsiAiQAA0AgASAAKAIIT0UEQCACQQxqIAAgARCgDyABQQFqIQEMAQsLIABCADcCBCAAKAIAEBggAEIANwII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ogI2AggPCyABQdbRARAuRQRAIABBAEEgENkCIQEgACgCQCABNgIAIABBpwI2AggPCyABQaHQARAuRQRAIABBAEEEENkCIQEgACgCQCABNgIAIABBowI2AggPCyABQY3TARAuRQRAIABBAEHAABDZAiEBIAAoAkAgATYCACAAQaQCNgIIDwsgAUHK2QEQLkUEQCAAQQBBAhDZAiEBIAAoAkAgATYCACAAQaECNgIIDwsgAUGF0wEQLkUEQCAAQQBBCBDZAiEBIAAoAkAgATYCACAAQaUCNgIIDwsgAUH53gEQLkUEQCAAQQBBEBDZAiEBIAAoAkAgATYCACAAQaYCNgIIDwsgAUH00gEQLkUEQCAAKAJAQQA2AgAgACAAKAJAQcigCkEBIAJBreABEI8EIABBmwI2AggPCyABQZfSARAuRQRAIABBlQI2AggPCyABQdjRARAuRQRAIABBmAI2AggPCyABQejaARAuRQRAIABBKBBUIgFB0KAKQQIgAkHB4AEQjwQgACgCQCABNgIAIABBnQI2AggPCyABQfrTARAuRQRAIABBhgI2AggPCyAAIAEQxgkLhgEBAn8jAEEQayIEJAAgBCABNgIMAkAgACAAKAKcASAEQQxqIAIgAyAALQD8A0VBABDKCSIBDQBBACEBIAQoAgwiBUUNACAAKAL0AwRAIABB3QE2AqACIAAgBSACIAMQyQkhAQwBCyAAQdYBNgKgAiAAIAUgAiADEM4GIQELIARBEGokACABC44DAQN/IwBBEGsiAiQAAkACQCAAKAK0AiIERQRAQRchAwwBCyAEKAIMIgEtACEEQCABKAIIIAIgASgCBCIGIAEoAgxqIgM2AgwgBmohBQJ/IAEtACIEQCAAKALsASIEIAMgBSACQQxqIgYgBCgCABEGACEEIAAgACgC7AEgAyAFIAQgAigCDCAGQQBBAEEBEOEJDAELIAAgBCgCECAAKALsASADIAUgAkEMakEAQQEQyAYLIgMNAQJAIAUgAigCDCIDRg0AAkACQCAAKAL4A0EBaw4DAAIBAgsgAC0AwARFDQELIAEgAyABKAIEazYCDEEAIQMMAgtBACEDIAFBADoAISAAQQE6AMAEDAELIAAgAUHQLxCSAyAAKAK0AiAERw0BQQAhAyABQQA6ACAgACAAKAK0AigCCDYCtAIgBCAAKAK4AjYCCCAAIAQ2ArgCIAAoArQCRQRAIABB0AFB1gEgAS0AIhs2AqACCyAAQQE6AMAECyACQRBqJAAgAw8LQaULQevBAUHWL0HZORAAAAtmAQF/IwBBEGsiBCQAIAQgATYCDAJAIAAgACgCnAEgBEEMaiACIAMgAC0A/ANFENoJIgENACAEKAIMIgFFBEBBACEBDAELIABB0AE2AqACIAAgASACIAMQ0AYhAQsgBEEQaiQAIAELCAAgACgCpAILZQEEfyAAQaABaiEFIABBnAFqIQYgACgC8AEhByAALQD0AQR/IAUgBiAHEP8JBSAFIAYgBxDaBgsEf0EABSAAIAAoAvABEOIJCyIEBH8gBAUgAEHQATYCoAIgACABIAIgAxDQBgsLbABBESECAkACQAJAAkAgAUEPaw4DAwIBAAsgAUEbRw0BIABBETYCCCAAQbMBNgIAQRMPCyAAQaEBQbUBIAAoAhAbNgIAQRQPCwJAIAFBHEcNACAAKAIQDQBBOw8LIABBngE2AgBBfyECCyACCxgAIAAgASACIAMgBEHMAUEVQRtBERC9AgtFACABQQ9GBEBBEQ8LIAFBG0YEQCAAQRE2AgggAEGzATYCAEETDwsCQCABQRxHDQAgACgCEA0AQTsPCyAAQZ4BNgIAQX8LWwACf0EnIAFBD0YNABoCQCABQRVHBEAgAUEkRw0BIABBJzYCCCAAQbMBNgIAQS4PCyAAQcoBNgIAQScPCyABQRxGBEBBOyAAKAIQRQ0BGgsgAEGeATYCAEF/CwsWACAAIAEgAiADIARBJ0HLAUEzEPwGC6QBAAJAAkACQAJAAkACQAJAAkACQCABQRdrDgoBBgYGBgYGAgMEAAtBJyECIAFBD2sOBAYFBQcECyAAIAAoAgRBAWo2AgRBLA8LIABBxwE2AgBBNQ8LIABBxwE2AgBBNA8LIABBxwE2AgBBNg8LIAFBKUYNAgsCQCABQRxHDQAgACgCEA0AQTsPCyAAQZ4BNgIAQX8hAgsgAg8LIABBxwE2AgBBMwuAAQBBJyECAkACQAJAAkACQCABQRVrDgQBAgIEAAsgAUEPRg0CIAFBJEcNASAAQSc2AgggAEGzATYCAEEuDwsgAEHKATYCAEEnDwsgAUEcRgRAQTshAiAAKAIQRQ0BCyAAQZ4BNgIAQX8hAgsgAg8LIABBJzYCCCAAQbMBNgIAQS0LlgIAAn8CQAJAAkACQAJAAkACQCABQSNrDgQCAQMEAAsCQAJAIAFBFWsOBAYHBwEACyABQQ9HDQZBJw8LIAAgACgCBEEBayICNgIEQS0gAg0GGiAAQSc2AgggAEGzATYCAEEtDwsgACAAKAIEQQFrIgI2AgRBLiACDQUaIABBJzYCCCAAQbMBNgIAQS4PCyAAIAAoAgRBAWsiAjYCBEEvIAINBBogAEEnNgIIIABBswE2AgBBLw8LIAAgACgCBEEBayICNgIEQTAgAg0DGiAAQSc2AgggAEGzATYCAEEwDwsgAEHJATYCAEEyDwsgAEHJATYCAEExDwsCQCABQRxHDQAgACgCEA0AQTsPCyAAQZ4BNgIAQX8LC70BAQJ/QTMhBUHHASEGAkACQAJAAkACQAJAAkACQAJAIAFBEmsODwgHAQcHAgcHBwcHBwMEBQALIAFBD0cNBUEnDwsgBCACIAQoAkBqIANBga8IIAQoAhgRBgBFDQVBKyEFQcgBIQYMBgsgAEECNgIEQSwhBUHJASEGDAULQTUhBQwEC0E0IQUMAwtBNiEFDAILIAFBKUYNAQtBfyEFQZ4BIQYgAUEcRw0AIAAoAhANAEE7DwsgACAGNgIAIAULEgAgACABIAIgAyAEQcQBENYKCxIAIAAgASACIAMgBEHCARDWCgsWACAAIAEgAiADIARBIUHGAUEgENIKCxgAIAAgASACIAMgBEGtAUEmQRtBIRC9AgtWAEEfIQJBxQEhBEEhIQMCQAJAAkACQCABQQ9rDgUDAQECAgALIAFBKUYNAQtBfyECQZ4BIQQgAUEcRw0AIAAoAhANAEE7DwsgACAENgIAIAIhAwsgAwtHAEEhIQIgAUEPRgRAQSEPC0HEASEDAn8CQCABQRdGDQBBfyECQZ4BIQMgAUEcRw0AQTsgACgCEEUNARoLIAAgAzYCACACCwu6AQEBfyABQQ9GBEBBIQ8LQa0BIQUCQCABQRtGBEBBJSEEDAELAkAgAUEURw0AIAQgAiAEKAJAaiADQeCuCCAEKAIYEQYABEBBIyEEDAILIAQgAiAEKAJAaiADQeiuCCAEKAIYEQYABEBBJCEEDAILIAQgAiAEKAJAaiADQfGuCCAEKAIYEQYARQ0AQSEhBEHDASEFDAELQX8hBEGeASEFIAFBHEcNACAAKAIQDQBBOw8LIAAgBTYCACAEC78BAQJ/QSEhBQJAAkACQAJAAkAgAUEPaw4EAwICAAELQQAhBQJAA0AgBCgCGCEGIAVBCEYNASAEIAIgAyAFQQJ0QZCuCGooAgAgBhEGAEUEQCAFQQFqIQUMAQsLIABBwAE2AgAgBUEXag8LIAQgAiADQe2tCCAGEQYARQ0BIABBwQE2AgBBIQ8LIAFBF0YNAgsgAUEcRgRAQTshBSAAKAIQRQ0BCyAAQZ4BNgIAQX8hBQsgBQ8LIABBwgE2AgBBIQtPAEELIQICQAJAAkAgAUEPaw4EAgEBAAELIABBCzYCCCAAQbMBNgIAQRAPCwJAIAFBHEcNACAAKAIQDQBBOw8LIABBngE2AgBBfyECCyACC3QBAX9BCyEFAkACQAJAAkACQCABQQ9rDgQEAQIAAQsgBCACIANBha4IIAQoAhgRBgBFDQBBvwEhBAwCC0F/IQVBngEhBCABQRxHDQEgACgCEA0BQTsPC0GhAUG1ASAAKAIQGyEEQQ8hBQsgACAENgIACyAFCxgAIAAgASACIAMgBEG1AUE6QRlBABC9AgtMAAJ/QQAgAUEPRg0AGiABQRlGBEAgAEG1ATYCACAAIAAoAgxBAWo2AgxBAA8LIAFBHEYEQEE7IAAoAhBFDQEaCyAAQZ4BNgIAQX8LC3sBAX8CQAJAAkACQCABQQ9rDgQCAQEAAQsgBCACIANB9q0IIAQoAhgRBgAEQEG9ASEEDAMLIAQgAiADQf6tCCAEKAIYEQYARQ0AQb4BIQQMAgtBfyEFQZ4BIQQgAUEcRw0BIAAoAhANAUE7IQULIAUPCyAAIAQ2AgAgBQtSAEELIQICQAJAAkACQCABQQ9rDgMDAAEAC0F/IQJBngEhAyABQRxHDQEgACgCEA0BQTsPC0GhAUG1ASAAKAIQGyEDQQ8hAgsgACADNgIACyACCxgAIAAgASACIAMgBEG5AUEOQRtBCxC9AgsYACAAIAEgAiADIARBvAFBDUEbQQsQvQILTQACQAJAAkAgAUEPaw4DAQIAAgsgAEGhAUG1ASAAKAIQGzYCAAsgACgCCA8LAn8gAUEcRgRAQTsgACgCEEUNARoLIABBngE2AgBBfwsLGAAgACABIAIgAyAEQbEBQQ5BG0ELEL0CCxgAIAAgASACIAMgBEG7AUENQRtBCxC9AgsVACAAIAEgAiADIARBugFBuQEQ0QoLfwEBf0ERIQUCQAJAAkACQCABQQ9rDgQCAQEAAQsgBCACIANByK0IIAQoAhgRBgAEQEG3ASEEDAMLIAQgAiADQc+tCCAEKAIYEQYARQ0AQbgBIQQMAgtBfyEFQZ4BIQQgAUEcRw0BIAAoAhANAUE7IQULIAUPCyAAIAQ2AgAgBQusAQEBf0EnIQUCQAJAAkACQAJAIAFBD2sOBAMCAgABCyAEIAIgA0H3rgggBCgCGBEGAARAIABBJzYCCCAAQbMBNgIAQSoPCyAEIAIgA0H9rgggBCgCGBEGAEUNASAAQSc2AgggAEGzATYCAEEpDwsgAUEXRg0CCwJAIAFBHEcNACAAKAIQDQBBOw8LIABBngE2AgBBfyEFCyAFDwsgAEEBNgIEIABBtgE2AgBBLAtsAEEWIQJBtAEhBEEhIQMCQAJAAkACQAJAIAFBD2sOBAQCAAMBC0GhAUG1ASAAKAIQGyEEQSEhAgwCCyABQSlGDQELQX8hAkGeASEEIAFBHEcNACAAKAIQDQBBOw8LIAAgBDYCACACIQMLIAMLFQAgACABIAIgAyAEQbIBQbEBENEKCxYAIAAgASACIAMgBEELQbABQQoQ0goLXgBBAyECAkACQAJAAkACQCABQQ9rDgMEAQIACyABQRlHDQBBByECQaEBIQMMAgtBfyECQZ4BIQMgAUEcRw0BIAAoAhANAUE7DwtBCCECQaQBIQMLIAAgAzYCAAsgAgtKAEEIIQJBpAEhBEEDIQMCQAJAAkAgAUEPaw4DAgABAAtBfyECQZ4BIQQgAUEcRw0AIAAoAhANAEE7DwsgACAENgIAIAIhAwsgAwtHAEGvASEDQREhAgJAAkACQCABQQ9rDgQCAAABAAsgAUEcR0F/IQFBngEhAw0AIAAoAhANAEE7DwsgACADNgIAIAEhAgsgAgsWACAAIAEgAiADIARBJ0GuAUEoEPwGCxYAIAAgASACIAMgBEEhQa0BQSIQ/AYLYABBqwEhBEELIQICfwJAAkACQAJAIAFBEmsOBQACAgIDAQtBCSECQawBIQQMAgtBCyABQQ9GDQIaC0F/IQJBngEhBCABQRxHDQBBOyAAKAIQRQ0BGgsgACAENgIAIAILC10AQQAhAgJAAkACQAJAAkAgAUELa0Efdw4KAAEEAwMDAwMDAgMLQTcPC0E4DwsgAEGeATYCAEECDwsCQCABQRxHDQAgACgCEA0AQTsPCyAAQZ4BNgIAQX8hAgsgAgsYACAAIAEgAiADIARBogFBBkEbQQMQvQILGAAgACABIAIgAyAEQaoBQQVBG0EDEL0CC5wBAQF/QQMhBQJAAkACQAJAAkACQCABQQ9rDgQFAgMBAAsgAUEZRw0BQQchBUGhASEEDAMLIAQgAiADQcitCCAEKAIYEQYABEBBogEhBAwDCyAEIAIgA0HPrQggBCgCGBEGAEUNAEGjASEEDAILQX8hBUGeASEEIAFBHEcNASAAKAIQDQFBOw8LQQghBUGkASEECyAAIAQ2AgALIAULewEBfwJAAkACQAJAAkACQCABQSFrDgIBAgALIAFBfEYNAiABQQ9GDQQgAUEaRg0DIAAgASACIAMgBBDqCQ8LIABBoAE2AgBBAA8LIAAoAgwiAUUNASAAIAFBAWs2AgxBAA8LIAAoAgxFDQELIABBngE2AgBBfyEFCyAFC1UAQQMhAkEEIQNBnwEhBAJAAkACQAJAIAFBD2sOBAMBAQIACyABQSlGDQELQX8hA0GeASEEIAFBHEcNACAAKAIQDQBBOw8LIAAgBDYCACADIQILIAILigEBAX8CQAJAAkACQAJAAkACQCABQQtrDgYABAEFBQIDC0E3DwtBOA8LIAQgAiAEKAJAQQF0aiADQcCtCCAEKAIYEQYARQ0BIABBnQE2AgBBAw8LIAFBHUYNAgsCQCABQRxHDQAgACgCEA0AQTsPCyAAQZ4BNgIAQX8hBQsgBQ8LIABBngE2AgBBAguoAQEDf0GcASEGAkACQAJAAkACQAJAAkACQAJAIAFBC2sOBgEAAggHAwQLQQEhBQwGC0E3IQUMBQtBOCEFDAQLIAQgAiAEKAJAQQF0aiADQcCtCCAEKAIYEQYARQ0BQQMhBUGdASEGDAMLIAFBHUYNAQtBfyEFQZ4BIQYgAUEcRw0BQTshByAAKAIQRQ0CDAELQQIhBUGeASEGCyAAIAY2AgAgBSEHCyAHC5oBAQJ/IAEoAgAiACACIABrQX5xIgVqIQIgBCADKAIAayAFSARAIAJBAmsiBiACIAYtAABB+AFxQdgBRiIGGyECCwJAA0AgACACTw0BIAQgAygCACIFSwRAIAAvAAAhACADIAVBAmo2AgAgBSAAQQh0IABBCHZyOwEAIAEgASgCAEECaiIANgIADAELCyAEIAVHDQBBAiEGCyAGC6YEAQR/IAEoAgAiACACIABrQX5xaiEIAn8DQEEAIAAgCE8NARogAC0AASIGwCECAkACQAJAAkACQCAALQAAIgUOCAABAQEBAQEBAgsgAkEASA0AIAMoAgAiBSAERg0DIAMgBUEBajYCACAFIAI6AAAMAgtBAiAEIAMoAgAiB2tBAkgNBBogAyAHQQFqNgIAIAcgAkEGdkEDcSAFQQJ0ckHAAXI6AAAgAyADKAIAIgVBAWo2AgAgBSACQT9xQYABcjoAAAwBCyAFQdgBa0EETwRAIAQgAygCACIGa0EDSA0CIAMgBkEBajYCACAGIAVBBHZB4AFyOgAAIAMgAygCACIGQQFqNgIAIAYgBUECdEE8cSACQcABcUEGdnJBgAFyOgAAIAMgAygCACIFQQFqNgIAIAUgAkE/cUGAAXI6AAAMAQsgBCADKAIAIgdrQQRIDQFBASAIIABrQQRIDQMaIAMgB0EBajYCACAHIAVBAnRBDHEgBkEGdnJBAWoiBUECdkHwAXI6AAAgAyADKAIAIgdBAWo2AgAgByAFQQR0QTBxIAZBAnZBD3FyQYABcjoAACAALQACIQYgAC0AAyEFIAMgAygCACIHQQFqNgIAIAcgBkECdEEMcSACQQR0QTBxIAVBBnZyckGAAXI6AAAgAyADKAIAIgJBAWo2AgAgAiAFQT9xQYABcjoAACAAQQJqIQALIABBAmohAAwBCwtBAgsgASAANgIAC8wBAQd/IABByABqIQggAkECayEJQQEhBgJAA0AgCSABQQJqIgBrQQJIDQEgAS0AAyIEwCEFAkACQAJAAn8gASwAAiICRQRAIAQgCGotAAAMAQsgAiAFECwLQf8BcUEJayIHQRpLDQAgACEBQQEgB3QiCkHzj5c/cQ0DIApBgMAIcUUEQCAHQQxHDQEgBUEJRyACcg0EDAMLIAINAiAFQQBODQMMAQsgAg0BCyAAIQEgBEEkRiAEQcAARnINAQsLIAMgADYCAEEAIQYLIAYLtwIBAn8gAEHIAGohBQNAIAIgAWtBAk4EQCABLQABIQACQAJAAkACQAJAAkACfyABLAAAIgRFBEAgACAFai0AAAwBCyAEIADAECwLQf8BcUEFaw4GAAECBQQDBQsgAyADKAIEQQFqNgIEIAFBAmohAQwGCyADIAMoAgRBAWo2AgQgAUEDaiEBDAULIAMgAygCBEEBajYCBCABQQRqIQEMBAsgA0EANgIEIAMgAygCAEEBajYCACABQQJqIQEMAwsgAyADKAIAQQFqNgIAAn8gAiABQQJqIgBrQQJIBEAgAAwBCyABLQADIQQgAUEEaiAAAn8gASwAAiIARQRAIAQgBWotAAAMAQsgACAEwBAsC0EKRhsLIQEgA0EANgIEDAILIAMgAygCBEEBajYCBCABQQJqIQEMAQsLC5wCAAJAAkACQAJAIAIgAWtBAm1BAmsOAwABAgMLIAEtAAINAiABLQADQfQARw0CIAEtAAANAkE8QT5BACABLQABIgBB5wBGGyAAQewARhsPCyABLQAADQEgAS0AAUHhAEcNASABLQACDQEgAS0AA0HtAEcNASABLQAEDQEgAS0ABUHwAEcNAUEmDwsgAS0AAA0AIAEtAAEiAEHhAEcEQCAAQfEARw0BIAEtAAINASABLQADQfUARw0BIAEtAAQNASABLQAFQe8ARw0BIAEtAAYNASABLQAHQfQARw0BQSIPCyABLQACDQAgAS0AA0HwAEcNACABLQAEDQAgAS0ABUHvAEcNACABLQAGDQAgAS0AB0HzAEcNAEEnDwtBAAudAgECfwJAAkACQCABLQAEDQAgAS0ABUH4AEcNACABQQZqIQFBACEAA0ACQCABLQAADQAgASwAASICQf8BcSIDQTtGDQQCfwJAAkACQCADQTBrDjcAAAAAAAAAAAAABAQEBAQEBAEBAQEBAQQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgICAgICBAsgAkEwayAAQQR0cgwCCyAAQQR0IAJqQTdrDAELIABBBHQgAmpB1wBrCyIAQf//wwBKDQMLIAFBAmohAQwACwALIAFBBGohAUEAIQADQEFPIQIgAS0AAEUEQCABLAABIgJBO0YNAyACQTBrIQILIAFBAmohASACIABBCmxqIgBBgIDEAEgNAAsLQX8PCyAAEJEEC9AFAQh/IABByABqIQpBASEAA0AgACEFIAEiBi0AAyIAwCEIAn8gBiwAAiIJRQRAIAAgCmotAAAMAQsgCSAIECwLIQsgBkECaiEBIAUhAAJAAkACQAJAAkACQAJAAkACQAJAAkAgC0H/AXFBA2sOGwYLAAECCwgICQQFCwsLCQsLCwcDCwMLCwsLAwsLIAUNCkEBIQAgAiAETA0KIAMgBEEEdGoiBUEBOgAMIAUgATYCAAwKCwJAIAUNAEEBIQAgAiAETA0AIAMgBEEEdGoiBUEBOgAMIAUgATYCAAsgBkEDaiEBDAkLAkAgBQ0AQQEhACACIARMDQAgAyAEQQR0aiIFQQE6AAwgBSABNgIACyAGQQRqIQEMCAsgBQ0HQQEhACACIARMDQcgAyAEQQR0aiIFQQE6AAwgBSABNgIADAcLIAVBAkcEQEEMIQdBAiEAIAIgBEwNByADIARBBHRqIAZBBGo2AgQMBwtBAiEAIAdBDEcNBiACIARKBEAgAyAEQQR0aiABNgIICyAEQQFqIQRBDCEHQQAhAAwGCyAFQQJHBEBBDSEHQQIhACACIARMDQYgAyAEQQR0aiAGQQRqNgIEDAYLQQIhACAHQQ1HDQUgAiAESgRAIAMgBEEEdGogATYCCAsgBEEBaiEEQQ0hB0EAIQAMBQsgAiAETA0EIAMgBEEEdGpBADoADAwDC0EAIQACQCAFQQFrDgIEAAMLQQIhACACIARMDQMgAyAEQQR0aiIFLQAMRQ0DAkAgCQ0AIAEgBSgCBEYgCEEgR3INACAGLQAFIgnAIQgCfyAGLAAEIgZFBEAgCEEgRg0CIAkgCmotAAAMAQsgBiAIECwLIAdHDQQLIAVBADoADAwDC0EAIQACQCAFQQFrDgIDAAILQQIhACACIARMDQIgAyAEQQR0akEAOgAMDAILQQIhACAFQQJGDQEgBA8LIAUhAAwACwALWgECfyAAQcgAaiECA0AgAS0AASEAAn8gASwAACIDRQRAIAAgAmotAAAMAQsgAyAAwBAsC0H/AXEiAEEVS0EBIAB0QYCMgAFxRXJFBEAgAUECaiEBDAELCyABC28BA38gAEHIAGohAyABIQADQCAALQABIQICfyAALAAAIgRFBEAgAiADai0AAAwBCyAEIALAECwLQQVrQf8BcSICQRlPQYeA+AsgAnZBAXFFckUEQCAAIAJBAnRB3KwIaigCAGohAAwBCwsgACABawtMAQF/AkADQCADLQAAIgQEQEEAIQAgAiABa0ECSA0CIAEtAAANAiABLQABIARHDQIgA0EBaiEDIAFBAmohAQwBCwsgASACRiEACyAAC9UCAQR/IAEgAk8EQEF8DwsgAiABa0ECSARAQX8PCyAAQcgAaiEHIAEhBAJAA0AgAiAEa0ECSA0BIAQtAAEhBQJ/IAQsAAAiBkUEQCAFIAdqLQAADAELIAYgBcAQLAshBkECIQUCQAJAAkACQAJAAkACQAJAIAZB/wFxIgZBA2sOCAIGBgABBgQDBQtBAyEFDAULQQQhBQwECyABIARHDQYgACABQQJqIAIgAxD2BA8LIAEgBEcNBSADIAFBAmo2AgBBBw8LIAEgBEcNBCACIAFBAmoiAmtBAkgEQEF9DwsgAS0AAyEAIAMgAUEEaiACAn8gASwAAiIERQRAIAAgB2otAAAMAQsgBCAAwBAsC0EKRhs2AgBBBw8LIAZBHkYNAQsgBCAFaiEEDAELCyABIARHDQAgACABQQJqIAIgAxDuCSIAQQAgAEEWRxsPCyADIAQ2AgBBBgvXAgEEfyABIAJPBEBBfA8LIAIgAWtBAkgEQEF/DwsgAEHIAGohByABIQQCQANAIAIgBGtBAkgNASAELQABIQUCfyAELAAAIgZFBEAgBSAHai0AAAwBCyAGIAXAECwLIQZBAiEFAkACQAJAAkACQAJAAkACQAJAIAZB/wFxIgZBAmsOCQMCBwcAAQcFBAYLQQMhBQwGC0EEIQUMBQsgASAERw0HIAAgAUECaiACIAMQ9gQPCyADIAQ2AgBBAA8LIAEgBEcNBSADIAFBAmo2AgBBBw8LIAEgBEcNBCACIAFBAmoiAmtBAkgEQEF9DwsgAS0AAyEAIAMgAUEEaiACAn8gASwAAiIERQRAIAAgB2otAAAMAQsgBCAAwBAsC0EKRhs2AgBBBw8LIAZBFUYNAQsgBCAFaiEEDAELCyABIARHDQAgAyABQQJqNgIAQScPCyADIAQ2AgBBBgvzAgEEfyABIAIgAWsiBEF+cWogAiAEQQFxGyEEIABByABqIQcCQANAIAQgASICayIGQQJIDQEgAi0AASEAAn8gAiwAACIBRQRAIAAgB2otAAAMAQsgASAAwBAsCyEBQQAhAAJAAkACQAJAAkACQAJAAkAgAUH/AXEOCQQEAgYDBgABBAYLIAZBAkYNBiACQQNqIQEMBwsgBkEESQ0FIAJBBGohAQwGCyAEIAJBAmoiAWtBAkgNBiABLQAADQUgAi0AA0EhRw0FIAQgAkEEaiIBa0ECSA0GIAEtAAANBSACLQAFQdsARw0FIAJBBmohASAFQQFqIQUMBQsgBCACQQJqIgFrQQJIDQUgAS0AAA0EIAItAANB3QBHDQQgBCACQQRqIgFrQQJIDQUgAS0AAA0EIAItAAVBPkcNBCACQQZqIQEgBQ0BQSohACABIQILIAMgAjYCACAADwsgBUEBayEFDAILIAJBAmohAQwBCwtBfg8LQX8LmAQBBH8gASACTwRAQXwPCwJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAIAIgAWsiBEEBcQRAIARBfnEiAkUNASABIAJqIQILAkACQAJ/IAEsAAAiBEUEQCAAIAEtAAFqLQBIDAELIAQgASwAARAsC0H/AXEOCwwMBwcABAUGDAEJBwtBfyEFIAIgAUECaiIEa0ECSA0MIAQtAAANByABLQADQd0ARw0HIAIgAUEEamtBAkgNDCABLQAEDQcgAS0ABUE+Rw0HIAFBBmohAUEoIQUMCwsgAiABQQJqIgRrQQJODQELQX8PCyABQQRqIAQCfyAELAAAIgJFBEAgACABLQADai0ASAwBCyACIAEsAAMQLAtBCkYbDAYLIAIgAWtBAkgNCSABQQJqIQQMAwsgAiABa0EDSA0IIAFBA2ohBAwCCyACIAFrQQRIDQcgAUEEaiEEDAELIAFBAmohBAsgAEHIAGohB0EGIQUDQCACIARrIgZBAkgNAyAELQABIQACfyAELAAAIgFFBEAgACAHai0AAAwBCyABIADAECwLIQFBAiEAAkAgAUH/AXEiAUEKSw0AAkAgAUEGRwRAIAFBB0YNAUEBIAF0QZMOcQ0GDAILQQMhACAGQQJGDQUMAQtBBCEAIAZBBEkNBAsgACAEaiEEDAALAAsgAUECagshAUEHIQUMAQsgBCEBCyADIAE2AgALIAUPC0F+C80aAQp/IwBBEGsiDCQAAkAgASACTwRAQXwhBwwBCwJAAkACQAJAAkACQAJAAkAgAiABayIFQQFxBEAgBUF+cSICRQ0BIAEgAmohAgsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfyABLAAAIgVFBEAgACABLQABai0ASAwBCyAFIAEsAAEQLAtB/wFxDgsICAABBAUGBwgCAwkLQX8hByACIAFBAmoiCWsiBUECSA0OAkACQAJAAkACQAJAAkACfyABLQACIgRFBEAgACABLQADIgZqLQBIDAELIATAIAEsAAMiBhAsC0H/AXEiCEEFaw4UHAECHBwcHBwcHAQDBRwcHBwGHAYACyAIQR1HDRsgBkEDdkEccSAEQZCHCGotAABBBXRyQaD6B2ooAgAgBnZBAXENBQwbCyAFQQJHDRoMGQsgBUEETw0ZDBgLIAIgAUEEaiIFa0ECSA0ZAkACfyABLAAEIgRFBEAgACABLQAFai0ASAwBCyAEIAEsAAUQLAtB/wFxIgRBFEcEQCAEQRtHDQEgACABQQZqIAIgAxDwCSEHDBsLIAIgAUEGaiIEa0EMSA0aIAFBEmohAkEAIQEDQCABQQZGBEBBCCEHDBkLQQAhByAELQAADRcgBC0AASABQbCXCGotAABHDRcgBEECaiEEIAFBAWohAQwACwALIAMgBTYCAEEAIQcMGQsgACABQQRqIAIgAxDvCSEHDBgLIAIgAUEEaiIEayIGQQJIDQ9BACEHAkACfyAELQAAIghFBEAgACABLQAFIgVqLQBIDAELIAjAIAEsAAUiBRAsC0H/AXEiAUEGaw4CEhEACwJAAkAgAUEWaw4DARQBAAsgAUEdRw0TIAVBA3ZBHHEgCEGQhwhqLQAAQQV0ckGg+gdqKAIAIAV2QQFxRQ0TCyAAQcgAaiEGAn8CQAJAAkADQCACIAQiAEECaiIEayIIQQJIDRQgAC0AAyEBAkACQAJ/IAAtAAIiCUUEQCABIAZqLQAADAELIAnAIAHAECwLQf8BcUEGaw4YAQMZBAQFGRkZGRkZGRkZBAICAgICAhkAGQsgAUEDdkEccSAJQZCJCGotAABBBXRyQaD6B2ooAgAgAXZBAXENAQwYCwsgCEECRg0ZDBYLIAhBBEkNGAwVCwNAIAIgBCIBQQJqIgRrQQJIDRIgAS0AAyEAAkACQAJ/IAEsAAIiBUUEQCAAIAZqLQAADAELIAUgAMAQLAtB/wFxIgBBCWsOAwICAQALIABBFUYNAQwWCwsgAUEEagwBCyAAQQRqCyEEQQUhBwwSCyAAQcgAaiEJIAFBBGohAUEAIQYDQCACIAFrIgtBAkgNFyABLQABIQRBAiEFAkACQAJAAkACQAJAAkACQAJ/IAEtAAAiCkUEQCAEIAlqLQAADAELIArAIATAECwLQf8BcUEGaw4YAQIWBAQFFhYWFhYGFhYWBAcDBwcHBxYAFgsgBEEDdkEccSAKQZCJCGotAABBBXRyQaD6B2ooAgAgBHZBAXENBgwVCyALQQJGDRsMFAsgC0EESQ0aDBMLIAYNEiACIAFBAmoiDWsiC0ECSA0bIAEtAAMhBEEBIQZBBCEFAkACfyABLQACIgpFBEAgBCAJai0AAAwBCyAKwCAEwBAsC0H/AXEiCEEWaw4DBBIEAAsCQAJAIAhBHUcEQCAIQQZrDgIBAhQLIARBA3ZBHHEgCkGQhwhqLQAAQQV0ckGg+gdqKAIAIAR2QQFxDQUMEwsgC0ECRg0aDBILIAtBBEkNGQwRCwJAAkACQANAIAIgASIEQQJqIgFrIgZBAkgNHiAELQADIQUCQAJ/IAQtAAIiC0UEQCAFIAlqLQAADAELIAvAIAXAECwLQf8BcUEGaw4YAwQWAQEFFhYWFhYGFhYWAQIWAhYWFhYAFgsLIAVBA3ZBHHEgC0GQhwhqLQAAQQV0ckGg+gdqKAIAIAV2QQFxRQ0UC0EAIQsCQAJAAkADQCAEQQRqIQQCQAJAAkACQAJAAkADQCAMIAQ2AgxBfyEHIAIgBGsiCkECSA0nIAQtAAEhASAEIQVBACEGAkACQAJAAn8gBC0AACINRQRAIAEgCWotAAAMAQsgDcAgAcAQLAtB/wFxQQZrDhgCBB8ICB8fHwkfHx8fHx8IAQUBAQEBHwAfCyABQQN2QRxxIA1BkIkIai0AAEEFdHJBoPoHaigCACABdkEBcUUNBQsgBEECaiEEDAELCyAKQQJGDSQMGwsgCkEESQ0jDBoLIAtFDQELIAQhBQwXCyAMIARBAmoiBTYCDCACIAVrIghBAkgNIiAELQADIQFBASELAkACfyAELQACIgpFBEAgASAJai0AAAwBCyAKwCABwBAsC0H/AXEiB0EWaw4DAxgDAAsCQAJAIAdBHUcEQCAHQQZrDgIBAhoLIAFBA3ZBHHEgCkGQhwhqLQAAQQV0ckGg+gdqKAIAIAF2QQFxDQQMGQsgCEECRg0hDBgLIAhBBEkNIAwXCwNAIAIgBEECaiIFa0ECSA0iIAQtAAMhAQJ/IAQsAAIiBEUEQCABIAlqLQAADAELIAQgAcAQLAsiAUEORwRAIAFB/wFxIgFBFUsNFyAFIQRBASABdEGAjIABcUUNFwwBCwsgDCAFNgIMIAUhBAsDQCACIARBAmoiBWtBAkgNISAELQADIQECfyAELAACIgZFBEAgASAJai0AAAwBCyAGIAHAECwLIgFB/gFxQQxHBEAgAUH/AXEiAUEVSw0WIAUhBEEBIAF0QYCMgAFxRQ0WDAELCyAEQQRqIQUDQCAMIAU2AgwCQAJAA0AgAiAFayIIQQJIDSQgBS0AASEEAn8gBSwAACIGRQRAIAQgCWotAAAMAQsgBiAEwBAsCyIEIAFGDQJBACEGAkACQAJAIARB/wFxDgkcHBwCBAQAARwECyAIQQJGDSQgBUEDaiEFDAULIAhBBEkNIyAFQQRqIQUMBAsgACAFQQJqIAIgDEEMahD2BCIFQQBKBEAgDCgCDCEFDAELCyAFIgcNIyAMKAIMIQUMFwsgBUECaiEFDAELCyAMIAVBAmoiATYCDCACIAFrQQJIDSAgBS0AAyEEAn8gBSwAAiIGRQRAIAQgCWotAAAMAQsgBiAEwBAsCyEIIAUhBCABIQVBACEGAkACQCAIQf8BcSIBQQlrDgkBAQQXFxcXFwUACyABQRVGDQAMFQsCQANAIAIgBSIEQQJqIgVrIghBAkgNIiAELQADIQFBACELAkACfyAELQACIgpFBEAgASAJai0AAAwBCyAKwCABwBAsC0H/AXFBBmsOGAIEGAEBBRgYGBgYBhgYGAEDGAMYGBgYABgLCyAMIAU2AgwgBC0AAyIBQQN2QRxxIApBkIcIai0AAEEFdHJBoPoHaigCACABdkEBcQ0BDBYLCyAIQQJGDR0MFAsgCEEESQ0cDBMLIARBBGohBUEBIQYMEgsgDCAFQQJqIgA2AgwgAiAAa0ECSA0cIAAtAAAEQCAAIQUMEQsgBUEEaiAAIAUtAANBPkYiABshBUEDQQAgABshBgwRCyAGQQJGDRkMEgsgBkEESQ0YDBELQQIhByADIAFBAmo2AgAMGQsgAiABQQJqIgBrQQJIDRgCQCABLQACRQRAIAEtAANBPkYNAQsgAyAANgIAQQAhBwwZC0EEIQcgAyABQQRqNgIADBgLIAEgBWohAQwACwALIAAgAUECaiACIAMQ9gQhBwwVCyACIAFBAmoiBWtBAkgEQEF9IQcMFQsgAyABQQRqIAUCfyAFLAAAIgJFBEAgACABLQADai0ASAwBCyACIAEsAAMQLAtBCkYbNgIAQQchBwwUCyADIAFBAmo2AgBBByEHDBMLQXshByACIAFBAmoiBGtBAkgNEiAELQAADQUgAS0AA0HdAEcNBSACIAFBBGoiBWtBAkgNEiABLQAEDQUgAS0ABUE+Rw0FIAMgBTYCAEEAIQcMEgsgAiABa0ECSA0PIAFBAmohBAwECyACIAFrQQNIDQ4gAUEDaiEEDAMLIAIgAWtBBEgNDSABQQRqIQQMAgsgAyABNgIADA4LIAFBAmohBAsgAEHIAGohBwNAAkAgAiAEIgBrIgFBAkgNACAELQABIQUCQAJAAkACQAJ/IAQsAAAiBEUEQCAFIAdqLQAADAELIAQgBcAQLAtB/wFxDgsEBAQEAgMAAQQEBAMLIAFBAkYNAyAAQQNqIQQMBAsgAUEDTQ0CIABBBGohBAwDCyABQQRJDQEgAEECaiEEIAAtAAINAiAALQADQd0ARw0CIAFBBkkNASAALQAEDQIgAC0ABUE+Rw0CIAMgAEEEajYCAEEAIQcMDwsgAEECaiEEDAELCyADIAA2AgBBBiEHDAwLQQAhBgsgAyAFNgIAIAYhBwwKCyADIA02AgBBACEHDAkLIAMgATYCAEEAIQcMCAtBfyEHDAcLIAZBBEkNBAwBCyAGQQJGDQMLIAMgBDYCAAwECyAEIQILIAMgAjYCAAwCC0F+IQcMAQsgAyAJNgIAQQAhBwsgDEEQaiQAIAcLshEBBn8gASACTwRAQXwPCwJAAkACQAJAAkACQAJAAkACQAJAIAIgAWsiBEEBcQRAIARBfnEiAkUNASABIAJqIQILQX4hBkESIQUCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/IAEtAAAiCEUEQCAAIAEtAAEiB2otAEgMAQsgCMAgASwAASIHECwLQf8BcUECaw4jAhgIDg8QGAMEDAABGBgYGBgNBwQTEhMSEhIYEQUJChgYBgsYC0EMIAAgAUECaiACIAMQ8QkPC0ENIAAgAUECaiACIAMQ8QkPC0F/IQYgAiABQQJqIgVrQQJIDRECQAJAAkACQAJAAn8gASwAAiIERQRAIAAgAS0AA2otAEgMAQsgBCABLAADECwLQf8BcSIEQQ9rDgoDAgQEBAQEAQQBAAsgBEEFa0EDSQ0AIARBHUcNAwsgAyABNgIAQR0PCyACIAFBBGoiBGtBAkgNEwJAAkACQAJAAn8gBCwAACIFRQRAIAAgAS0ABWotAEgMAQsgBSABLAAFECwLQf8BcUEUaw4IAQMCAwIDAwADCyAAIAFBBmogAiADEPAJDwsgAyABQQZqNgIAQSEPCyAAQcgAaiEFAkADQCACIAQiAUECaiIEayIHQQJIDRYgAS0AAyEAAkACfyABLAACIghFBEAgACAFai0AAAwBCyAIIADAECwLQf8BcSIAQRVrDgohAQMBAwMDAwMAAgsLIAdBBEkNFSABLQAFIQACfyABLAAEIgFFBEAgACAFai0AAAwBCyABIADAECwLQf8BcSIAQR5LDR9BASAAdEGAjICBBHENAQwfCyAAQQlrQQJJDR4LIAMgBDYCAAweCyAAIAFBBGogAiADEO8JDwsgAyAFNgIADBwLIAFBAmogAkcNACADIAI2AgBBcQ8LIABByABqIQUDQAJAIAIgASIAQQJqIgFrQQJIDQAgAC0AAyEEAkACQAJ/IAAsAAIiBkUEQCAEIAVqLQAADAELIAYgBMAQLAtB/wFxIgRBCWsOAgEDAAsgBEEVRg0CDAELIABBBGogAkcNAQsLIAMgATYCAEEPDwsgACABQQJqIAIgAxDuCQ8LIAMgAUECajYCAEEmDwsgAyABQQJqNgIAQRkPCyACIAFBAmoiAGsiAkECSARAQWYPCwJAIAEtAAINACABLQADQd0ARw0AIAJBBEkNDiABLQAEDQAgAS0ABUE+Rw0AIAMgAUEGajYCAEEiDwsgAyAANgIAQRoPCyADIAFBAmo2AgBBFw8LIAIgAUECaiIEa0ECSARAQWgPCwJAAkACQAJAAkACQAJ/IAEsAAIiAkUEQCAAIAEtAANqLQBIDAELIAIgASwAAxAsC0H/AXEiAEEgaw4FGAEDGBgACyAAQQlrDgcXFxcEBAQBAwsgAyABQQRqNgIAQSQPCyADIAFBBGo2AgBBIw8LIAMgAUEEajYCAEElDwsgAEEVRg0TCyADIAQ2AgAMFAsgAyABQQJqNgIAQRUPCyADIAFBAmo2AgBBEQ8LIAIgAUECaiIEayIFQQJIDQgCQAJ/IAQtAAAiCEUEQCAAIAEtAAMiB2otAEgMAQsgCMAgASwAAyIHECwLQf8BcSIBQQZrDgINDAALQQAhBgJAAkACQCABQRZrDgMBEQEACyABQR1HDQEgB0EDdkEccSAIQZCHCGotAABBBXRyQaD6B2ooAgAgB3ZBAXFFDQELIABByABqIQgDQCACIAQiAEECaiIEayIHQQJIBEBBbA8LIAAtAAMhBUEUIQYCQAJAAkACfyAALQACIgBFBEAgBSAIai0AAAwBCyAAwCAFwBAsC0H/AXFBBmsOHwABBBMTEwQEBAQEBAQEBBMDBAMDAwMEAhMEEwQEBBMEC0EAIQYgB0ECRg0RDBILQQAhBiAHQQRJDRAMEQsgBUEDdkEccSAAQZCJCGotAABBBXRyQaD6B2ooAgAgBXZBAXENAAsLQQAhBgwOCyACIAFrQQJIDQUMCQsgAiABa0EDTg0IDAQLIAIgAWtBBE4NBwwDC0EBIAd0IgQgB0HgAXFBBXZBAnQiBiAIQZCHCGotAABBBXRyQaD6B2ooAgBxDQFBEyEFIAhBkIkIai0AAEEFdCAGckGg+gdqKAIAIARxRQ0GDAELQRMhBQsgAEHIAGohBiABQQJqIQACQAJAAkACQAJAA0AgBUEpRiEJIAVBEkchBANAIAIgACIBayIHQQJIDQYgAS0AASEAAkACQAJAAkACQAJAAn8gAS0AACIIRQRAIAAgBmotAAAMAQsgCMAgAMAQLAtB/wFxQQZrDh8CAxAEBAQQEBALEBAQEAQEAQUBAQEBEAAEEAQKCQQEEAsgAEEDdkEccSAIQZCJCGotAABBBXRyQaD6B2ooAgAgAHZBAXFFDQ8LIAFBAmohAAwECyAHQQJGDREMDQsgB0EESQ0QDAwLIAMgATYCACAFDwsgAUECaiEAIAkEQEETIQUMAgsgBA0ACyACIABrIghBAkgNCCABLQADIQRBEyEFAkACQAJAAkACfyABLQACIglFBEAgBCAGai0AAAwBCyAJwCAEwBAsC0H/AXEiB0EWaw4IAgQCAgICBAEACyAHQQVrDgMKAgQDCyAEQQN2QRxxIAlBkIkIai0AAEEFdHJBoPoHaigCACAEdkEBcUUNCQsgAUEEaiEAQSkhBQwBCwsgCEECRg0MDAYLIAhBBEkNCwwFCyAFQRNGDQYgAyABQQJqNgIAQSAPCyAFQRNGDQUgAyABQQJqNgIAQR8PCyAFQRNGDQQgAyABQQJqNgIAQR4PC0EAIAVrIQYLIAYPCyADIAA2AgAMCQtBfw8LIAMgATYCAAwHCyADIAE2AgAMBgtBACEGIAVBBEkNAQwCC0EAIQYgBUECRw0BC0F+DwsgAyAENgIAIAYPCyADIAQ2AgBBGA8LIAMgBDYCAEEQDwtBAAtYAQF/AkADQCABKAIAIgAgAk8NASAEIAMoAgAiBUsEQCABIABBAWo2AgAgAC0AACEAIAMgAygCACIFQQFqNgIAIAUgADoAAAwBCwsgBCAFRw0AQQIPC0EAC5IBAQJ/IAEoAgAiACACIABrQX5xIgVqIQIgBCADKAIAayAFSARAIAJBfkEAIAJBAWstAABB+AFxQdgBRiIGG2ohAgsCQANAIAAgAk8NASAEIAMoAgAiBUsEQCAALwAAIQAgAyAFQQJqNgIAIAUgADsBACABIAEoAgBBAmoiADYCAAwBCwsgBCAFRw0AQQIhBgsgBgumBAEEfyABKAIAIgAgAiAAa0F+cWohCAJ/A0BBACAAIAhPDQEaIAAtAAAiBsAhAgJAAkACQAJAAkAgAC0AASIFDggAAQEBAQEBAQILIAJBAEgNACADKAIAIgUgBEYNAyADIAVBAWo2AgAgBSACOgAADAILQQIgBCADKAIAIgdrQQJIDQQaIAMgB0EBajYCACAHIAJBBnZBA3EgBUECdHJBwAFyOgAAIAMgAygCACIFQQFqNgIAIAUgAkE/cUGAAXI6AAAMAQsgBUHYAWtBBE8EQCAEIAMoAgAiBmtBA0gNAiADIAZBAWo2AgAgBiAFQQR2QeABcjoAACADIAMoAgAiBkEBajYCACAGIAVBAnRBPHEgAkHAAXFBBnZyQYABcjoAACADIAMoAgAiBUEBajYCACAFIAJBP3FBgAFyOgAADAELIAQgAygCACIHa0EESA0BQQEgCCAAa0EESA0DGiADIAdBAWo2AgAgByAFQQJ0QQxxIAZBBnZyQQFqIgVBAnZB8AFyOgAAIAMgAygCACIHQQFqNgIAIAcgBUEEdEEwcSAGQQJ2QQ9xckGAAXI6AAAgAC0AAyEGIAAtAAIhBSADIAMoAgAiB0EBajYCACAHIAZBAnRBDHEgAkEEdEEwcSAFQQZ2cnJBgAFyOgAAIAMgAygCACICQQFqNgIAIAIgBUE/cUGAAXI6AAAgAEECaiEACyAAQQJqIQAMAQsLQQILIAEgADYCAAvMAQEHfyAAQcgAaiEIIAJBAmshCUEBIQYCQANAIAkgAUECaiIAa0ECSA0BIAEtAAIiBMAhBQJAAkACQAJ/IAEsAAMiAkUEQCAEIAhqLQAADAELIAIgBRAsC0H/AXFBCWsiB0EaSw0AIAAhAUEBIAd0IgpB84+XP3ENAyAKQYDACHFFBEAgB0EMRw0BIAVBCUcgAnINBAwDCyACDQIgBUEATg0DDAELIAINAQsgACEBIARBJEYgBEHAAEZyDQELCyADIAA2AgBBACEGCyAGC7cCAQJ/IABByABqIQUDQCACIAFrQQJOBEAgAS0AACEAAkACQAJAAkACQAJAAn8gASwAASIERQRAIAAgBWotAAAMAQsgBCAAwBAsC0H/AXFBBWsOBgABAgUEAwULIAMgAygCBEEBajYCBCABQQJqIQEMBgsgAyADKAIEQQFqNgIEIAFBA2ohAQwFCyADIAMoAgRBAWo2AgQgAUEEaiEBDAQLIANBADYCBCADIAMoAgBBAWo2AgAgAUECaiEBDAMLIAMgAygCAEEBajYCAAJ/IAIgAUECaiIAa0ECSARAIAAMAQsgAS0AAiEEIAFBBGogAAJ/IAEsAAMiAEUEQCAEIAVqLQAADAELIAAgBMAQLAtBCkYbCyEBIANBADYCBAwCCyADIAMoAgRBAWo2AgQgAUECaiEBDAELCwucAgACQAJAAkACQCACIAFrQQJtQQJrDgMAAQIDCyABLQADDQIgAS0AAkH0AEcNAiABLQABDQJBPEE+QQAgAS0AACIAQecARhsgAEHsAEYbDwsgAS0AAQ0BIAEtAABB4QBHDQEgAS0AAw0BIAEtAAJB7QBHDQEgAS0ABQ0BIAEtAARB8ABHDQFBJg8LIAEtAAENACABLQAAIgBB4QBHBEAgAEHxAEcNASABLQADDQEgAS0AAkH1AEcNASABLQAFDQEgAS0ABEHvAEcNASABLQAHDQEgAS0ABkH0AEcNAUEiDwsgAS0AAw0AIAEtAAJB8ABHDQAgAS0ABQ0AIAEtAARB7wBHDQAgAS0ABw0AIAEtAAZB8wBHDQBBJw8LQQALnQIBAn8gAUEEaiEAAkACQAJAIAEtAAUNACAALQAAQfgARw0AIAFBBmohAEEAIQEDQAJAIAAtAAENACAALAAAIgJB/wFxIgNBO0YNBAJ/AkACQAJAIANBMGsONwAAAAAAAAAAAAAEBAQEBAQEAQEBAQEBBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQCAgICAgIECyACQTBrIAFBBHRyDAILIAFBBHQgAmpBN2sMAQsgAUEEdCACakHXAGsLIgFB///DAEoNAwsgAEECaiEADAALAAtBACEBA0BBTyECIAAtAAFFBEAgACwAACICQTtGDQMgAkEwayECCyAAQQJqIQAgAiABQQpsaiIBQYCAxABIDQALC0F/DwsgARCRBAvUBQEJfyAAQcgAaiEKQQEhBQNAIAUhBiABIgctAAIiAMAhCQJ/IAcsAAMiC0UEQCAAIApqLQAADAELIAsgCRAsCyEMIAdBAmoiACEBAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAxB/wFxQQNrDhsGDAABAgwICAkEBQwMDAkMDAwHAwwDDAwMDAMMCyAGDQtBASEFIAIgBEwNCyADIARBBHRqIgBBAToADCAAIAE2AgAMCwsgB0EDaiEBIAYNCkEBIQUgAiAETA0KIAMgBEEEdGoiBkEBOgAMIAYgADYCAAwKCwJAIAYNAEEBIQUgAiAETA0AIAMgBEEEdGoiAUEBOgAMIAEgADYCAAsgB0EEaiEBDAkLIAYNCEEBIQUgAiAETA0IIAMgBEEEdGoiAEEBOgAMIAAgATYCAAwICyAGQQJHBEBBDCEIQQIhBSACIARMDQggAyAEQQR0aiAHQQRqNgIEDAgLQQIhBSAIQQxHDQcgAiAESgRAIAMgBEEEdGogADYCCAsgBEEBaiEEQQwhCAwGCyAGQQJHBEBBDSEIQQIhBSACIARMDQcgAyAEQQR0aiAHQQRqNgIEDAcLQQIhBSAIQQ1HDQYgAiAESgRAIAMgBEEEdGogADYCCAsgBEEBaiEEQQ0hCAwFCyACIARMDQUgAyAEQQR0akEAOgAMDAMLQQAhBQJAIAZBAWsOAgUAAwtBAiEFIAIgBEwNBCADIARBBHRqIgYtAAxFDQQCQCALDQAgACAGKAIERiAJQSBHcg0AIActAAQiCcAhAQJ/IAcsAAUiB0UEQCABQSBGDQIgCSAKai0AAAwBCyAHIAEQLAsgACEBIAhHDQULIAZBADoADCAAIQEMBAtBACEFAkAgBkEBaw4CBAACC0ECIQUgAiAETA0DIAMgBEEEdGpBADoADAwDC0ECIQUgBkECRg0CIAQPCyAGIQUMAQtBACEFDAALAAtaAQJ/IABByABqIQIDQCABLQAAIQACfyABLAABIgNFBEAgACACai0AAAwBCyADIADAECwLQf8BcSIAQRVLQQEgAHRBgIyAAXFFckUEQCABQQJqIQEMAQsLIAELbwEDfyAAQcgAaiEDIAEhAANAIAAtAAAhAgJ/IAAsAAEiBEUEQCACIANqLQAADAELIAQgAsAQLAtBBWtB/wFxIgJBGU9Bh4D4CyACdkEBcUVyRQRAIAAgAkECdEHcrAhqKAIAaiEADAELCyAAIAFrC0wBAX8CQANAIAMtAAAiBARAQQAhACACIAFrQQJIDQIgAS0AAQ0CIAEtAAAgBEcNAiADQQFqIQMgAUECaiEBDAELCyABIAJGIQALIAAL1QIBBH8gASACTwRAQXwPCyACIAFrQQJIBEBBfw8LIABByABqIQcgASEEAkADQCACIARrQQJIDQEgBC0AACEFAn8gBCwAASIGRQRAIAUgB2otAAAMAQsgBiAFwBAsCyEGQQIhBQJAAkACQAJAAkACQAJAAkAgBkH/AXEiBkEDaw4IAgYGAAEGBAMFC0EDIQUMBQtBBCEFDAQLIAEgBEcNBiAAIAFBAmogAiADEPgEDwsgASAERw0FIAMgAUECajYCAEEHDwsgASAERw0EIAIgAUECaiICa0ECSARAQX0PCyABLQACIQAgAyABQQRqIAICfyABLAADIgRFBEAgACAHai0AAAwBCyAEIADAECwLQQpGGzYCAEEHDwsgBkEeRg0BCyAEIAVqIQQMAQsLIAEgBEcNACAAIAFBAmogAiADEPMJIgBBACAAQRZHGw8LIAMgBDYCAEEGC9cCAQR/IAEgAk8EQEF8DwsgAiABa0ECSARAQX8PCyAAQcgAaiEHIAEhBAJAA0AgAiAEa0ECSA0BIAQtAAAhBQJ/IAQsAAEiBkUEQCAFIAdqLQAADAELIAYgBcAQLAshBkECIQUCQAJAAkACQAJAAkACQAJAAkAgBkH/AXEiBkECaw4JAwIHBwABBwUEBgtBAyEFDAYLQQQhBQwFCyABIARHDQcgACABQQJqIAIgAxD4BA8LIAMgBDYCAEEADwsgASAERw0FIAMgAUECajYCAEEHDwsgASAERw0EIAIgAUECaiICa0ECSARAQX0PCyABLQACIQAgAyABQQRqIAICfyABLAADIgRFBEAgACAHai0AAAwBCyAEIADAECwLQQpGGzYCAEEHDwsgBkEVRg0BCyAEIAVqIQQMAQsLIAEgBEcNACADIAFBAmo2AgBBJw8LIAMgBDYCAEEGC/MCAQR/IAEgAiABayIEQX5xaiACIARBAXEbIQQgAEHIAGohBwJAA0AgBCABIgJrIgZBAkgNASACLQAAIQACfyACLAABIgFFBEAgACAHai0AAAwBCyABIADAECwLIQFBACEAAkACQAJAAkACQAJAAkACQCABQf8BcQ4JBAQCBgMGAAEEBgsgBkECRg0GIAJBA2ohAQwHCyAGQQRJDQUgAkEEaiEBDAYLIAQgAkECaiIBa0ECSA0GIAItAAMNBSABLQAAQSFHDQUgBCACQQRqIgFrQQJIDQYgAi0ABQ0FIAEtAABB2wBHDQUgAkEGaiEBIAVBAWohBQwFCyAEIAJBAmoiAWtBAkgNBSACLQADDQQgAS0AAEHdAEcNBCAEIAJBBGoiAWtBAkgNBSACLQAFDQQgAS0AAEE+Rw0EIAJBBmohASAFDQFBKiEAIAEhAgsgAyACNgIAIAAPCyAFQQFrIQUMAgsgAkECaiEBDAELC0F+DwtBfwuYBAEEfyABIAJPBEBBfA8LAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkAgAiABayIEQQFxBEAgBEF+cSICRQ0BIAEgAmohAgsCQAJAAn8gASwAASIERQRAIAAgAS0AAGotAEgMAQsgBCABLAAAECwLQf8BcQ4LDAwHBwAEBQYMAQkHC0F/IQUgAiABQQJqIgRrQQJIDQwgAS0AAw0HIAQtAABB3QBHDQcgAiABQQRqa0ECSA0MIAEtAAUNByABLQAEQT5HDQcgAUEGaiEBQSghBQwLCyACIAFBAmoiBGtBAk4NAQtBfw8LIAFBBGogBAJ/IAEsAAMiAkUEQCAAIAQtAABqLQBIDAELIAIgBCwAABAsC0EKRhsMBgsgAiABa0ECSA0JIAFBAmohBAwDCyACIAFrQQNIDQggAUEDaiEEDAILIAIgAWtBBEgNByABQQRqIQQMAQsgAUECaiEECyAAQcgAaiEHQQYhBQNAIAIgBGsiBkECSA0DIAQtAAAhAAJ/IAQsAAEiAUUEQCAAIAdqLQAADAELIAEgAMAQLAshAUECIQACQCABQf8BcSIBQQpLDQACQCABQQZHBEAgAUEHRg0BQQEgAXRBkw5xDQYMAgtBAyEAIAZBAkYNBQwBC0EEIQAgBkEESQ0ECyAAIARqIQQMAAsACyABQQJqCyEBQQchBQwBCyAEIQELIAMgATYCAAsgBQ8LQX4L1xoBCn8jAEEQayILJAACQCABIAJPBEBBfCEHDAELAkACQAJAAkACQAJAAkACQCACIAFrIgVBAXEEQCAFQX5xIgJFDQEgASACaiECCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/IAEsAAEiBUUEQCAAIAEtAABqLQBIDAELIAUgASwAABAsC0H/AXEOCwgIAAEEBQYHCAIDCQtBfyEHIAIgAUECaiIJayIFQQJIDQ4CQAJAAkACQAJAAkACQAJ/IAEtAAMiBEUEQCAAIAEtAAIiBmotAEgMAQsgBMAgASwAAiIGECwLQf8BcSIIQQVrDhQcAQIcHBwcHBwcBAMFHBwcHAYcBgALIAhBHUcNGyAGQQN2QRxxIARBkIcIai0AAEEFdHJBoPoHaigCACAGdkEBcQ0FDBsLIAVBAkcNGgwZCyAFQQRPDRkMGAsgAiABQQRqIgVrQQJIDRkCQAJ/IAEsAAUiBEUEQCAAIAEtAARqLQBIDAELIAQgASwABBAsC0H/AXEiBEEURwRAIARBG0cNASAAIAFBBmogAiADEPUJIQcMGwsgAiABQQZqIgRrQQxIDRogAUESaiECQQAhAQNAIAFBBkYEQEEIIQcMGQtBACEHIAQtAAENFyAELQAAIAFBsJcIai0AAEcNFyAEQQJqIQQgAUEBaiEBDAALAAsgAyAFNgIAQQAhBwwZCyAAIAFBBGogAiADEPQJIQcMGAsgAiABQQRqIgRrIgZBAkgND0EAIQcCQAJ/IAEtAAUiCEUEQCAAIAQtAAAiBWotAEgMAQsgCMAgBCwAACIFECwLQf8BcSIBQQZrDgISEQALAkACQCABQRZrDgMBFAEACyABQR1HDRMgBUEDdkEccSAIQZCHCGotAABBBXRyQaD6B2ooAgAgBXZBAXFFDRMLIABByABqIQYCfwJAAkACQANAIAIgBCIAQQJqIgRrIghBAkgNFCAALQACIQECQAJAAn8gAC0AAyIJRQRAIAEgBmotAAAMAQsgCcAgAcAQLAtB/wFxQQZrDhgBAxkEBAUZGRkZGRkZGRkEAgICAgICGQAZCyABQQN2QRxxIAlBkIkIai0AAEEFdHJBoPoHaigCACABdkEBcQ0BDBgLCyAIQQJGDRkMFgsgCEEESQ0YDBULA0AgAiAEIgFBAmoiBGtBAkgNEiABLQACIQACQAJAAn8gASwAAyIFRQRAIAAgBmotAAAMAQsgBSAAwBAsC0H/AXEiAEEJaw4DAgIBAAsgAEEVRg0BDBYLCyABQQRqDAELIABBBGoLIQRBBSEHDBILIABByABqIQkgAUEEaiEBQQAhBgNAIAIgAWsiCkECSA0XIAEtAAAhBEECIQUCQAJAAkACQAJAAkACQAJAAn8gAS0AASIMRQRAIAQgCWotAAAMAQsgDMAgBMAQLAtB/wFxQQZrDhgBAhYEBAUWFhYWFgYWFhYEBwMHBwcHFgAWCyAEQQN2QRxxIAxBkIkIai0AAEEFdHJBoPoHaigCACAEdkEBcQ0GDBULIApBAkYNGwwUCyAKQQRJDRoMEwsgBg0SIAIgAUECaiINayIKQQJIDRsgAS0AAiEEQQEhBkEEIQUCQAJ/IAEtAAMiDEUEQCAEIAlqLQAADAELIAzAIATAECwLQf8BcSIIQRZrDgMEEgQACwJAAkAgCEEdRwRAIAhBBmsOAgECFAsgBEEDdkEccSAMQZCHCGotAABBBXRyQaD6B2ooAgAgBHZBAXENBQwTCyAKQQJGDRoMEgsgCkEESQ0ZDBELAkACQAJAA0AgAiABIgRBAmoiAWsiBkECSA0eIAQtAAIhBQJAAn8gBC0AAyIKRQRAIAUgCWotAAAMAQsgCsAgBcAQLAtB/wFxQQZrDhgDBBYBAQUWFhYWFgYWFhYBAhYCFhYWFgAWCwsgBUEDdkEccSAKQZCHCGotAABBBXRyQaD6B2ooAgAgBXZBAXFFDRQLQQAhCgJAAkACQANAIARBBGohBAJAAkACQAJAAkACQANAIAsgBDYCDEF/IQcgAiAEayIMQQJIDScgBC0AACEBIAQhBUEAIQYCQAJAAkACfyAELQABIg1FBEAgASAJai0AAAwBCyANwCABwBAsC0H/AXFBBmsOGAIEHwgIHx8fCR8fHx8fHwgBBQEBAQEfAB8LIAFBA3ZBHHEgDUGQiQhqLQAAQQV0ckGg+gdqKAIAIAF2QQFxRQ0FCyAEQQJqIQQMAQsLIAxBAkYNJAwbCyAMQQRJDSMMGgsgCkUNAQsgBCEFDBcLIAsgBEECaiIFNgIMIAIgBWsiCEECSA0iIAQtAAIhAUEBIQoCQAJ/IAQtAAMiDEUEQCABIAlqLQAADAELIAzAIAHAECwLQf8BcSIHQRZrDgMDGAMACwJAAkAgB0EdRwRAIAdBBmsOAgECGgsgAUEDdkEccSAMQZCHCGotAABBBXRyQaD6B2ooAgAgAXZBAXENBAwZCyAIQQJGDSEMGAsgCEEESQ0gDBcLA0AgAiAEQQJqIgVrQQJIDSIgBC0AAiEBAn8gBCwAAyIERQRAIAEgCWotAAAMAQsgBCABwBAsCyIBQQ5HBEAgAUH/AXEiAUEVSw0XIAUhBEEBIAF0QYCMgAFxRQ0XDAELCyALIAU2AgwgBSEECwNAIAIgBEECaiIFa0ECSA0hIAQtAAIhAQJ/IAQsAAMiBkUEQCABIAlqLQAADAELIAYgAcAQLAsiAUH+AXFBDEcEQCABQf8BcSIBQRVLDRYgBSEEQQEgAXRBgIyAAXFFDRYMAQsLIARBBGohBQNAIAsgBTYCDAJAAkADQCACIAVrIghBAkgNJCAFLQAAIQQCfyAFLAABIgZFBEAgBCAJai0AAAwBCyAGIATAECwLIgQgAUYNAkEAIQYCQAJAAkAgBEH/AXEOCRwcHAIEBAABHAQLIAhBAkYNJCAFQQNqIQUMBQsgCEEESQ0jIAVBBGohBQwECyAAIAVBAmogAiALQQxqEPgEIgVBAEoEQCALKAIMIQUMAQsLIAUiBw0jIAsoAgwhBQwXCyAFQQJqIQUMAQsLIAsgBUECaiIBNgIMIAIgAWtBAkgNICAFLQACIQQCfyAFLAADIgZFBEAgBCAJai0AAAwBCyAGIATAECwLIQggBSEEIAEhBUEAIQYCQAJAIAhB/wFxIgFBCWsOCQEBBBcXFxcXBQALIAFBFUYNAAwVCwJAA0AgAiAFIgRBAmoiBWsiCEECSA0iIAQtAAIhAQJ/IAQsAAMiBkUEQCABIAlqLQAADAELIAYgAcAQLAshAUEAIQpBACEGAkAgAUH/AXFBBmsOGAIEGAEBBRgYGBgYBhgYGAEDGAMYGBgYABgLCyALIAU2AgwgBC0AAiIBQQN2QRxxIAQtAANBkIcIai0AAEEFdHJBoPoHaigCACABdkEBcQ0BDBYLCyAIQQJGDR0MFAsgCEEESQ0cDBMLIARBBGohBUEBIQYMEgsgCyAFQQJqIgA2AgwgAiAAa0ECSA0cIAUtAAMEQCAAIQUMEQsgBUEEaiAAIAUtAAJBPkYiABshBUEDQQAgABshBgwRCyAGQQJGDRkMEgsgBkEESQ0YDBELQQIhByADIAFBAmo2AgAMGQsgAiABQQJqIgBrQQJIDRgCQCABLQADRQRAIAEtAAJBPkYNAQsgAyAANgIAQQAhBwwZC0EEIQcgAyABQQRqNgIADBgLIAEgBWohAQwACwALIAAgAUECaiACIAMQ+AQhBwwVCyACIAFBAmoiBWtBAkgEQEF9IQcMFQsgAyABQQRqIAUCfyABLAADIgJFBEAgACAFLQAAai0ASAwBCyACIAUsAAAQLAtBCkYbNgIAQQchBwwUCyADIAFBAmo2AgBBByEHDBMLQXshByACIAFBAmoiBGtBAkgNEiABLQADDQUgBC0AAEHdAEcNBSACIAFBBGoiBWtBAkgNEiABLQAFDQUgAS0ABEE+Rw0FIAMgBTYCAEEAIQcMEgsgAiABa0ECSA0PIAFBAmohBAwECyACIAFrQQNIDQ4gAUEDaiEEDAMLIAIgAWtBBEgNDSABQQRqIQQMAgsgAyABNgIADA4LIAFBAmohBAsgAEHIAGohBwNAAkAgAiAEIgBrIgFBAkgNACAELQAAIQUCQAJAAkACQAJ/IAQsAAEiBEUEQCAFIAdqLQAADAELIAQgBcAQLAtB/wFxDgsEBAQEAgMAAQQEBAMLIAFBAkYNAyAAQQNqIQQMBAsgAUEDTQ0CIABBBGohBAwDCyABQQRJDQEgAEECaiEEIAAtAAMNAiAELQAAQd0ARw0CIAFBBkkNASAALQAFDQIgAC0ABEE+Rw0CIAMgAEEEajYCAEEAIQcMDwsgAEECaiEEDAELCyADIAA2AgBBBiEHDAwLQQAhBgsgAyAFNgIAIAYhBwwKCyADIA02AgBBACEHDAkLIAMgATYCAEEAIQcMCAtBfyEHDAcLIAZBBEkNBAwBCyAGQQJGDQMLIAMgBDYCAAwECyAEIQILIAMgAjYCAAwCC0F+IQcMAQsgAyAJNgIAQQAhBwsgC0EQaiQAIAcLshEBBn8gASACTwRAQXwPCwJAAkACQAJAAkACQAJAAkACQAJAIAIgAWsiBEEBcQRAIARBfnEiAkUNASABIAJqIQILQX4hBkESIQUCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/IAEtAAEiCEUEQCAAIAEtAAAiB2otAEgMAQsgCMAgASwAACIHECwLQf8BcUECaw4jAhgIDg8QGAMEDAABGBgYGBgNBwQTEhMSEhIYEQUJChgYBgsYC0EMIAAgAUECaiACIAMQ9gkPC0ENIAAgAUECaiACIAMQ9gkPC0F/IQYgAiABQQJqIgVrQQJIDRECQAJAAkACQAJAAn8gASwAAyIERQRAIAAgAS0AAmotAEgMAQsgBCABLAACECwLQf8BcSIEQQ9rDgoDAgQEBAQEAQQBAAsgBEEFa0EDSQ0AIARBHUcNAwsgAyABNgIAQR0PCyACIAFBBGoiBGtBAkgNEwJAAkACQAJAAn8gASwABSIFRQRAIAAgBC0AAGotAEgMAQsgBSAELAAAECwLQf8BcUEUaw4IAQMCAwIDAwADCyAAIAFBBmogAiADEPUJDwsgAyABQQZqNgIAQSEPCyAAQcgAaiEFAkADQCACIAQiAUECaiIEayIHQQJIDRYgAS0AAiEAAkACfyABLAADIghFBEAgACAFai0AAAwBCyAIIADAECwLQf8BcSIAQRVrDgohAQMBAwMDAwMAAgsLIAdBBEkNFSABLQAEIQACfyABLAAFIgFFBEAgACAFai0AAAwBCyABIADAECwLQf8BcSIAQR5LDR9BASAAdEGAjICBBHENAQwfCyAAQQlrQQJJDR4LIAMgBDYCAAweCyAAIAFBBGogAiADEPQJDwsgAyAFNgIADBwLIAFBAmogAkcNACADIAI2AgBBcQ8LIABByABqIQUDQAJAIAIgASIAQQJqIgFrQQJIDQAgAC0AAiEEAkACQAJ/IAAsAAMiBkUEQCAEIAVqLQAADAELIAYgBMAQLAtB/wFxIgRBCWsOAgEDAAsgBEEVRg0CDAELIABBBGogAkcNAQsLIAMgATYCAEEPDwsgACABQQJqIAIgAxDzCQ8LIAMgAUECajYCAEEmDwsgAyABQQJqNgIAQRkPCyACIAFBAmoiAGsiAkECSARAQWYPCwJAIAEtAAMNACABLQACQd0ARw0AIAJBBEkNDiABLQAFDQAgAS0ABEE+Rw0AIAMgAUEGajYCAEEiDwsgAyAANgIAQRoPCyADIAFBAmo2AgBBFw8LIAIgAUECaiIEa0ECSARAQWgPCwJAAkACQAJAAkACQAJ/IAEsAAMiAkUEQCAAIAEtAAJqLQBIDAELIAIgASwAAhAsC0H/AXEiAEEgaw4FGAEDGBgACyAAQQlrDgcXFxcEBAQBAwsgAyABQQRqNgIAQSQPCyADIAFBBGo2AgBBIw8LIAMgAUEEajYCAEElDwsgAEEVRg0TCyADIAQ2AgAMFAsgAyABQQJqNgIAQRUPCyADIAFBAmo2AgBBEQ8LIAIgAUECaiIEayIFQQJIDQgCQAJ/IAEtAAMiCEUEQCAAIAQtAAAiB2otAEgMAQsgCMAgBCwAACIHECwLQf8BcSIBQQZrDgINDAALQQAhBgJAAkACQCABQRZrDgMBEQEACyABQR1HDQEgB0EDdkEccSAIQZCHCGotAABBBXRyQaD6B2ooAgAgB3ZBAXFFDQELIABByABqIQgDQCACIAQiAEECaiIEayIHQQJIBEBBbA8LIAAtAAIhBUEUIQYCQAJAAkACfyAALQADIgBFBEAgBSAIai0AAAwBCyAAwCAFwBAsC0H/AXFBBmsOHwABBBMTEwQEBAQEBAQEBBMDBAMDAwMEAhMEEwQEBBMEC0EAIQYgB0ECRg0RDBILQQAhBiAHQQRJDRAMEQsgBUEDdkEccSAAQZCJCGotAABBBXRyQaD6B2ooAgAgBXZBAXENAAsLQQAhBgwOCyACIAFrQQJIDQUMCQsgAiABa0EDTg0IDAQLIAIgAWtBBE4NBwwDC0EBIAd0IgQgB0HgAXFBBXZBAnQiBiAIQZCHCGotAABBBXRyQaD6B2ooAgBxDQFBEyEFIAhBkIkIai0AAEEFdCAGckGg+gdqKAIAIARxRQ0GDAELQRMhBQsgAEHIAGohBiABQQJqIQACQAJAAkACQAJAA0AgBUEpRiEJIAVBEkchBANAIAIgACIBayIHQQJIDQYgAS0AACEAAkACQAJAAkACQAJAAn8gAS0AASIIRQRAIAAgBmotAAAMAQsgCMAgAMAQLAtB/wFxQQZrDh8CAxAEBAQQEBALEBAQEAQEAQUBAQEBEAAEEAQKCQQEEAsgAEEDdkEccSAIQZCJCGotAABBBXRyQaD6B2ooAgAgAHZBAXFFDQ8LIAFBAmohAAwECyAHQQJGDREMDQsgB0EESQ0QDAwLIAMgATYCACAFDwsgAUECaiEAIAkEQEETIQUMAgsgBA0ACyACIABrIghBAkgNCCABLQACIQRBEyEFAkACQAJAAkACfyABLQADIglFBEAgBCAGai0AAAwBCyAJwCAEwBAsC0H/AXEiB0EWaw4IAgQCAgICBAEACyAHQQVrDgMKAgQDCyAEQQN2QRxxIAlBkIkIai0AAEEFdHJBoPoHaigCACAEdkEBcUUNCQsgAUEEaiEAQSkhBQwBCwsgCEECRg0MDAYLIAhBBEkNCwwFCyAFQRNGDQYgAyABQQJqNgIAQSAPCyAFQRNGDQUgAyABQQJqNgIAQR8PCyAFQRNGDQQgAyABQQJqNgIAQR4PC0EAIAVrIQYLIAYPCyADIAA2AgAMCQtBfw8LIAMgATYCAAwHCyADIAE2AgAMBgtBACEGIAVBBEkNAQwCC0EAIQYgBUECRw0BC0F+DwsgAyAENgIAIAYPCyADIAQ2AgBBGA8LIAMgBDYCAEEQDwtBAAtgAQF/QQEhAAJAIAEsAANBv39KDQAgASwAAkG/f0oNACABLQABIQIgAS0AACIBQfABRgRAIAJBQGtB/wFxQdABSQ8LIALAQQBODQAgAkGPAUG/ASABQfQBRhtLIQALIAALmwEBA39BASECAkAgASwAAiIDQQBODQACQAJAAkAgAS0AACIEQe8BRgRAQb8BIQAgAS0AASIBQb8BRw0BIANBvX9NDQMMBAsgA0G/f0sNAyABLQABIQAgBEHgAUcNASAAQUBrQf8BcUHgAUkPCyABIQAgA0G/f0sNAgsgAMBBAE4NAQsgAEH/AXFBnwFBvwEgBEHtAUYbSyECCyACCyoAQQEhAAJAIAEtAABBwgFJDQAgASwAASIBQQBODQAgAUG/f0shAAsgAAsNACAAIAFBkIcIEMEKCw0AIAAgAUGQhwgQwgoLDQAgACABQZCJCBDBCgsNACAAIAFBkIkIEMIKC+QCAQV/IABByABqIQcgASgCACEAIAMoAgAhBQJ/AkADQCAEIAVNIAAgAk9yRQRAAkACQAJAAkAgByAALQAAIgZqLQAAQQVrDgMAAQIDCyACIABrQQJIDQUgBSAALQABQT9xIAZBH3FBBnRyOwEAIABBAmohACAFQQJqIQUMBAsgAiAAa0EDSA0EIAUgAC0AAkE/cSAALQABQT9xQQZ0IAZBDHRycjsBACAAQQNqIQAgBUECaiEFDAMLQQIgBCAFa0EDSA0EGiACIABrQQRIDQMgAC0AASEIIAUgAC0AAkE/cUEGdCIJIAAtAANBP3FyQYC4A3I7AQIgBSAGQQdxQRJ0IAhBP3FBDHRyIAlyQYCA/AdqQQp2QYCwA3I7AQAgAEEEaiEAIAVBBGohBQwCCyAFIAbAOwEAIAVBAmohBSAAQQFqIQAMAQsLIAAgAklBAXQMAQtBAQsgASAANgIAIAMgBTYCAAutAgEHfyMAQRBrIgAkACAAIAI2AgwgAiABKAIAIgZrIgogBCADKAIAIgtrIglKBEAgACAGIAlqIgI2AgwLIAYhBCAAKAIMIQYDQAJAAkACQAJAIAYiBSAETQ0AAkAgBUEBayIGLQAAIghB+AFxQfABRgRAIAdBA2tBe00NAQwDCyAIQfABcUHgAUYEQCAHQQJrQXxLDQMgBUECaiEFDAILIAhB4AFxQcABRgRAIAdBAWtBfUsNAyAFQQFqIQUMAgsgCMBBAE4NAQwDCyAFQQNqIQULIAAgBTYCDAwCC0EAIQcLIAdBAWohBwwBCwsgCyAEIAAoAgwiBiAEayIEEB8aIAEgASgCACAEajYCACADIAMoAgAgBGo2AgAgAEEQaiQAQQIgAiAGSyAJIApIGwtYAQF/AkADQCABKAIAIgAgAk8NASAEIAMoAgAiBUsEQCABIABBAWo2AgAgAC0AACEAIAMgAygCACIFQQJqNgIAIAUgADsBAAwBCwsgBCAFRw0AQQIPC0EAC7QBAQJ/A0AgAiABKAIAIgVGBEBBAA8LIAMoAgAhAAJAAkAgBSwAACIGQQBIBEAgBCAAa0ECSA0BIAMgAEEBajYCACAAIAZBwAFxQQZ2QcABcjoAACADIAMoAgAiAEEBajYCACAAIAZBvwFxOgAAIAEgASgCAEEBajYCAAwDCyAAIARHDQELQQIPCyABIAVBAWo2AgAgBS0AACEAIAMgAygCACIFQQFqNgIAIAUgADoAAAwACwALmgEBBX8gAEHIAGohBiACQQFrIQdBASECAkADQCAHIAFBAWoiAWtBAEwNAQJAAkAgBiABLQAAIgBqLQAAQQlrIgRBGksNAEEBIAR0IghB84+XP3ENAiAAwCEFIAhBgMAIcUUEQCAEQQxHDQEgBUEJRw0DDAILIAVBAE4NAgsgAEEkRiAAQcAARnINAQsLIAMgATYCAEEAIQILIAILxQEAAkACQAJAAkAgAiABa0ECaw4DAAECAwsgAS0AAUH0AEcNAkE8QT5BACABLQAAIgBB5wBGGyAAQewARhsPCyABLQAAQeEARw0BIAEtAAFB7QBHDQEgAS0AAkHwAEcNAUEmDwsgAS0AACIAQeEARwRAIABB8QBHDQEgAS0AAUH1AEcNASABLQACQe8ARw0BIAEtAANB9ABHDQFBIg8LIAEtAAFB8ABHDQAgAS0AAkHvAEcNACABLQADQfMARw0AQScPC0EAC4ACAQJ/AkACQCABLQACIgBB+ABHBEAgAUECaiECQQAhAQNAIABB/wFxQTtGDQIgAMAgAUEKbGpBMGsiAUH//8MASg0DIAItAAEhACACQQFqIQIMAAsACyABQQNqIQBBACEBA0AgAC0AACIDwCECAkACfwJAAkACQCADQTBrDjcAAAAAAAAAAAAABAYEBAQEBAEBAQEBAQQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgICAgICBAsgAkEwayABQQR0cgwCCyABQQR0IAJqQTdrDAELIAFBBHQgAmpB1wBrCyIBQf//wwBKDQMLIABBAWohAAwACwALIAEQkQQPC0F/CwIAC5UFAQZ/IABByABqIQhBASEAA0AgACEFIAEiBkEBaiEBAkACQAJAAkACQAJAAkACQAJAAkACQCAIIAYtAAEiCWotAABBA2sOGwYLAAECCwgICQQFCwsLCQsLCwcDCwMLCwsLAwsLAkAgBQ0AQQEhACACIARMDQAgAyAEQQR0aiIFQQE6AAwgBSABNgIACyAGQQJqIQEMCgsCQCAFDQBBASEAIAIgBEwNACADIARBBHRqIgVBAToADCAFIAE2AgALIAZBA2ohAQwJCwJAIAUNAEEBIQAgAiAETA0AIAMgBEEEdGoiBUEBOgAMIAUgATYCAAsgBkEEaiEBDAgLIAUNB0EBIQAgAiAETA0HIAMgBEEEdGoiBUEBOgAMIAUgATYCAAwHCyAFQQJHBEBBDCEHQQIhACACIARMDQcgAyAEQQR0aiAGQQJqNgIEDAcLQQIhACAHQQxHDQYgAiAESgRAIAMgBEEEdGogATYCCAsgBEEBaiEEQQwhB0EAIQAMBgsgBUECRwRAQQ0hB0ECIQAgAiAETA0GIAMgBEEEdGogBkECajYCBAwGC0ECIQAgB0ENRw0FIAIgBEoEQCADIARBBHRqIAE2AggLIARBAWohBEENIQdBACEADAULIAIgBEwNBCADIARBBHRqQQA6AAwMAwtBACEAAkAgBUEBaw4CBAADC0ECIQAgAiAETA0DIAMgBEEEdGoiBS0ADEUNAwJAIAlBIEcNACABIAUoAgRGDQAgBi0AAiIGQSBGDQAgByAGIAhqLQAARw0ECyAFQQA6AAwMAwtBACEAAkAgBUEBaw4CAwACC0ECIQAgAiAETA0CIAMgBEEEdGpBADoADAwCC0ECIQAgBUECRg0BIAQPCyAFIQAMAAsACzsBAX8gAEHIAGohAANAIAAgAS0AAGotAAAiAkEVS0EBIAJ0QYCMgAFxRXJFBEAgAUEBaiEBDAELCyABC1QBAn8gAEHIAGohAyABIQADQCADIAAtAABqLQAAQQVrQf8BcSICQRlPQYeA+AsgAnZBAXFFckUEQCAAIAJBAnRB+KsIaigCAGohAAwBCwsgACABawtFAQF/AkADQCADLQAAIgQEQEEAIQAgAiABa0EATA0CIAEtAAAgBEcNAiADQQFqIQMgAUEBaiEBDAELCyABIAJGIQALIAALngIBBH8gASACTwRAQXwPCyACIAFrQQBMBEBBfw8LIABByABqIQYgASEEAkADQCACIARrQQBMDQFBAiEFAkACQAJAAkACQAJAAkACQAJAIAYgBC0AAGotAAAiB0EDaw4IAgYHAAEGBAMFC0EDIQUMBgtBBCEFDAULIAEgBEcNByAAIAFBAWogAiADEPkEDwsgASAERw0GIAMgAUEBajYCAEEHDwsgASAERw0FIAIgAUEBaiIAa0EATARAQX0PCyADIAFBAmogACAGIAEtAAFqLQAAQQpGGzYCAEEHDwsgB0EeRg0CC0EBIQULIAQgBWohBAwBCwsgASAERw0AIAAgAUEBaiACIAMQ+QkiAEEAIABBFkcbDwsgAyAENgIAQQYLnwIBA38gASACTwRAQXwPCyACIAFrQQBMBEBBfw8LIABByABqIQYgASEEA0ACQCACIARrQQBMDQBBAiEFAkACQAJAAkACQAJAAkACQAJAIAYgBC0AAGotAABBAmsOFAMCBwgAAQcFBAcHBwcHBwcHBwcGBwtBAyEFDAcLQQQhBQwGCyABIARHDQYgACABQQFqIAIgAxD5BA8LIAMgBDYCAEEADwsgASAERw0EIAMgAUEBajYCAEEHDwsgASAERw0DIAIgAUEBaiIAa0EATARAQX0PCyADIAFBAmogACAGIAEtAAFqLQAAQQpGGzYCAEEHDwsgASAERw0CIAMgAUEBajYCAEEnDwtBASEFCyAEIAVqIQQMAQsLIAMgBDYCAEEGC9kCAQR/IABByABqIQcCQANAIAIgASIEayIBQQBMDQECQAJAAkACQAJAAkACQAJAAkAgByAELQAAai0AAA4JBQUDBwQAAQIFBwsgAUEBRg0HIAAgBCAAKALgAhEAAA0EIARBAmohAQwICyABQQNJDQYgACAEIAAoAuQCEQAADQMgBEEDaiEBDAcLIAFBBEkNBSAAIAQgACgC6AIRAAANAiAEQQRqIQEMBgsgAiAEQQFqIgFrQQBMDQYgAS0AAEEhRw0FIAIgBEECaiIBa0EATA0GIAEtAABB2wBHDQUgBEEDaiEBIAVBAWohBQwFCyACIARBAWoiAWtBAEwNBSABLQAAQd0ARw0EIAIgBEECaiIBa0EATA0FIAEtAABBPkcNBCAEQQNqIQEgBQ0BQSohBiABIQQLIAMgBDYCACAGDwsgBUEBayEFDAILIARBAWohAQwBCwtBfg8LQX8L4QMBBH8gASACTwRAQXwPCwJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAIABByABqIgcgAS0AAGotAAAOCwoKBgYAAwQFCgECBgtBfyEFIAIgAUEBaiIEa0EATA0KIAQtAABB3QBHDQYgAiABQQJqa0EATA0KIAEtAAJBPkcNBiABQQNqIQFBKCEFDAkLIAIgAUEBaiIAa0EASg0GQX8PCyABQQFqDAYLIAIgAWtBAkgNCCAAIAEgACgC4AIRAAANBiABQQJqIQQMAwsgAiABa0EDSA0HIAAgASAAKALkAhEAAA0FIAFBA2ohBAwCCyACIAFrQQRIDQYgACABIAAoAugCEQAADQQgAUEEaiEEDAELIAFBAWohBAsgBCEBA0BBBiEFIAIgAWsiBkEATA0DQQEhBAJAAkACQAJAIAcgAS0AAGotAAAOCwcHAwMHAAECBwcHAwsgBkEBRg0GIAAgASAAKALgAhEAAA0GQQIhBAwCCyAGQQNJDQUgACABIAAoAuQCEQAADQVBAyEEDAELIAZBBEkNBCAAIAEgACgC6AIRAAANBEEEIQQLIAEgBGohAQwACwALIAFBAmogACAHIAEtAAFqLQAAQQpGGwshAUEHIQULIAMgATYCAAsgBQ8LQX4LjhwBB38jAEEQayIJJAACQCABIAJPBEBBfCEGDAELAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEHIAGoiCCABLQAAai0AAA4LBQUACwcEAwIFCgkBC0EBIQdBfyEGIAIgAUEBaiIEayIFQQBMDRECQAJAAkACQCAIIAQtAABqLQAAQQVrDhQAAQIUFBQUFBQUEAMPFBQUFBIUEhQLIAVBAUYNEiAAIAQgACgC4AIRAAANEyAAIAQgACgC1AIRAABFDRNBAiEHDBELIAVBA0kNESAAIAQgACgC5AIRAAANEiAAIAQgACgC2AIRAABFDRJBAyEHDBALIAVBBEkNECAAIAQgACgC6AIRAAANESAAIAQgACgC3AIRAABFDRFBBCEHDA8LIAIgAUECaiIEa0EATA0SIAggAS0AAmotAAAiBkEURwRAIAZBG0cNDiAAIAFBA2ogAiADEPsJIQYMEwtBfyEGIAIgAUEDaiIAa0EGSA0SIAFBCWohAkEAIQEDQAJAIAFBBkYEf0EIBSAALQAAIAFBsJcIai0AAEYNASAAIQJBAAshBiADIAI2AgAMFAsgAEEBaiEAIAFBAWohAQwACwALIAFBAWohBAwGCyACIAFrQQRIDQ0gACABIAAoAugCEQAADQIgAUEEaiEEDAULIAIgAWtBA0gNDCAAIAEgACgC5AIRAAANASABQQNqIQQMBAsgAiABa0ECSA0LIAAgASAAKALgAhEAAEUNAQsgAyABNgIADA0LIAFBAmohBAwBC0F7IQYgAiABQQFqIgRrQQBMDQsgBC0AAEHdAEcNACACIAFBAmoiB2tBAEwNCyABLQACQT5HDQAgAyAHNgIAQQAhBgwLCwNAAkAgAiAEIgFrIgZBAEwNAAJAAkACQAJAAkAgCCABLQAAai0AAA4LBQUFBQMAAQIFBQUECyAGQQFGDQQgACABIAAoAuACEQAADQQgAUECaiEEDAULIAZBA0kNAyAAIAEgACgC5AIRAAANAyABQQNqIQQMBAsgBkEESQ0CIAAgASAAKALoAhEAAA0CIAFBBGohBAwDCyAGQQFGDQEgAUEBaiEEIAEtAAFB3QBHDQIgBkEDSQ0BIAEtAAJBPkcNAiADIAFBAmo2AgBBACEGDA0LIAFBAWohBAwBCwsgAyABNgIAQQYhBgwKCyADIAFBAWo2AgBBByEGDAkLIAIgAUEBaiIAa0EATARAQX0hBgwJCyADIAFBAmogACAIIAEtAAFqLQAAQQpGGzYCAEEHIQYMCAsgACABQQFqIAIgAxD5BCEGDAcLQQEhBCACIAFBAmoiAWsiB0EATA0FQQAhBgJAAkACQAJAAkACQCAIIAEtAABqLQAAIgVBBWsOAwECAwALIAVBFmsOAwMEAwQLIAdBAUYNByAAIAEgACgC4AIRAAANAyAAIAEgACgC1AIRAABFDQNBAiEEDAILIAdBA0kNBiAAIAEgACgC5AIRAAANAiAAIAEgACgC2AIRAABFDQJBAyEEDAELIAdBBEkNBSAAIAEgACgC6AIRAAANASAAIAEgACgC3AIRAABFDQFBBCEECyABIARqIQEDQCACIAFrIgdBAEwNB0EBIQQCQAJ/AkACQAJAAkACQAJAIAggAS0AAGotAABBBWsOFwABAgkDAwQJCQkJCQkJCQkDBwcHBwcHCQsgB0EBRg0MIAAgASAAKALgAhEAAA0IIAAgASAAKALIAhEAAEUNCEECIQQMBgsgB0EDSQ0LIAAgASAAKALkAhEAAA0HIAAgASAAKALMAhEAAEUNB0EDIQQMBQsgB0EESQ0KIAAgASAAKALoAhEAAA0GIAAgASAAKALQAhEAAEUNBkEEIQQMBAsDQCACIAEiAEEBaiIBa0EATA0MAkAgCCABLQAAai0AACIEQQlrDgMBAQMACyAEQRVGDQALDAULIAFBAWoMAQsgAEECagshAUEFIQYMAgsgASAEaiEBDAALAAsgAyABNgIADAYLIAAgAUECaiACIAMQ+gkhBgwFCyADIAQ2AgBBACEGDAQLIAQgB2ohAUEAIQcDQCACIAFrIgVBAEwNBEEBIQQCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCCABLQAAai0AAEEFaw4XAAECBwQEBQcHBwcHBgcHBwQLAwsLCwsHCyAFQQFGDQwgACABIAAoAuACEQAADQYgACABIAAoAsgCEQAARQ0GQQIhBAwKCyAFQQNJDQsgACABIAAoAuQCEQAADQUgACABIAAoAswCEQAARQ0FDAgLIAVBBEkNCiAAIAEgACgC6AIRAAANBCAAIAEgACgC0AIRAABFDQQMBgsgBw0DIAIgAUEBaiIFayIEQQBMDQxBASEHAkACQAJAAkAgCCAFLQAAai0AACIKQQVrDgMBAgMAC0ECIQQCQCAKQRZrDgMLCAsACwwHCyAEQQFGDQsgACAFIAAoAuACEQAADQYgACAFIAAoAtQCEQAADQgMBgsgBEEDSQ0KIAAgBSAAKALkAhEAAA0FIAAgBSAAKALYAhEAAA0GDAULIARBBEkNCSAAIAUgACgC6AIRAAANBCAAIAUgACgC3AIRAABFDQRBBSEEDAcLAkACQAJAA0AgAiABIgRBAWoiAWsiBUEATA0PQQIhBwJAIAggAS0AAGotAABBBWsOFAACAwcBAQUHBwcHBwYHBwcBBAcEBwsLIAVBAUYNCyAAIAEgACgC4AIRAAANBSAAIAEgACgC1AIRAABFDQVBAyEHDAILIAVBA0kNCiAAIAEgACgC5AIRAAANBCAAIAEgACgC2AIRAABFDQRBBCEHDAELIAVBBEkNCSAAIAEgACgC6AIRAAANAyAAIAEgACgC3AIRAABFDQNBBSEHCyAEIAdqIQRBACEFAkACQANAIAkgBDYCDEF/IQYgAiAEayIKQQBMDQ5BACEHAkACQAJAAkACQAJAAkACQAJAIAggBCIBLQAAai0AAEEFaw4XAQIDCwcHCwsLCAsLCwsLCwcABAAAAAALCyAEQQFqIQQMCAsgCkEBRg0SIAAgBCAAKALgAhEAAA0DIAAgBCAAKALIAhEAAEUNAyAEQQJqIQQMBwsgCkEDSQ0RIAAgBCAAKALkAhEAAA0CIAAgBCAAKALMAhEAAEUNAiAEQQNqIQQMBgsgCkEESQ0QIAAgBCAAKALoAhEAAA0BIAAgBCAAKALQAhEAAEUNASAEQQRqIQQMBQsgBUUNAQsMBQsgCSAEQQFqIgE2AgwgAiABayIFQQBMDRACQAJAAkACQCAIIAEtAABqLQAAIgZBBWsOAwECAwALAkAgBkEWaw4DAAgACAsgBEECaiEEQQEhBQwFCyAFQQFGDQ8gACABIAAoAuACEQAADQYgACABIAAoAtQCEQAARQ0GIARBA2ohBEEBIQUMBAsgBUEDSQ0OIAAgASAAKALkAhEAAA0FIAAgASAAKALYAhEAAEUNBSAEQQRqIQRBASEFDAMLIAVBBEkNDSAAIAEgACgC6AIRAAANBCAAIAEgACgC3AIRAABFDQQgBEEFaiEEQQEhBQwCCwNAIAIgAUEBaiIBa0EATA0QAkACQCAIIAEtAABqLQAAIgRBCWsOBgICBgYGAQALIARBFUYNAQwFCwsgCSABNgIMIAEhBAsDQCACIARBAWoiAWtBAEwNDyAIIAEtAABqLQAAIgVB/gFxQQxHBEAgBUEVSw0EIAEhBEEBIAV0QYCMgAFxDQEMBAsLIARBAmohAQNAIAkgATYCDAJAAkADQCACIAFrIgRBAEwNEiAIIAEtAABqLQAAIgogBUYNAgJAAkACQAJAIAoOCQoKCgMFAAECCgULIARBAUYNEiAAIAEgACgC4AIRAAANCSABQQJqIQEMBgsgBEEDSQ0RIAAgASAAKALkAhEAAA0IIAFBA2ohAQwFCyAEQQRJDRAgACABIAAoAugCEQAADQcgAUEEaiEBDAQLIAAgAUEBaiACIAlBDGoQ+QQiAUEASgRAIAkoAgwhAQwBCwsgASIGDREgCSgCDCEBDAULIAFBAWohAQwBCwsgCSABQQFqIgU2AgwgAiAFa0EATA0OIAEhBAJAAkACQCAIIAUiAS0AAGotAAAiBUEJaw4JAQECBQUFBQUEAAsgBUEVRg0ADAQLAkACQAJAA0AgAiABIgRBAWoiAWsiBUEATA0TAkAgCCABLQAAai0AAEEFaw4UAgMECAEBBQgICAgIBwgICAEACAAICwsgBEECaiEEQQAhBQwECyAFQQFGDQ4gACABIAAoAuACEQAADQUgACABIAAoAtQCEQAARQ0FIARBA2ohBEEAIQUMAwsgBUEDSQ0NIAAgASAAKALkAhEAAA0EIAAgASAAKALYAhEAAEUNBCAEQQRqIQRBACEFDAILIAVBBEkNDCAAIAEgACgC6AIRAAANAyAAIAEgACgC3AIRAABFDQMgBEEFaiEEQQAhBQwBCwsgBEECaiEBQQEhBwwBCyAJIAFBAWoiADYCDCACIABrQQBMDQwgAUECaiAAIAEtAAFBPkYiABshAUEDQQAgABshBwsgAyABNgIAIAchBgwLCyADIAFBAWo2AgBBAiEGDAoLIAIgAUEBaiIAa0EATA0JIAEtAAFBPkcEQCADIAA2AgBBACEGDAoLIAMgAUECajYCAEEEIQYMCQsgAyABNgIAQQAhBgwICyADIAU2AgBBACEGDAcLQQQhBAwBC0EDIQQLIAEgBGohAQwACwALQX4hBgwCCyADIAQ2AgBBACEGDAELQX8hBgsgCUEQaiQAIAYLDgAgAqdBACACQgGDUBsLoREBBX8gASACTwRAQXwPC0EBIQRBEiEFAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAQcgAaiIHIAEtAABqLQAAQQJrDiMCFwgODxAXAwQMAAEXFxcXFw0HBBUTFRMTExcXBQkKFxcGCxcLQQwgACABQQFqIAIgAxD8CQ8LQQ0gACABQQFqIAIgAxD8CQ8LQX8hBSACIAFBAWoiBmtBAEwNEwJAAkACQAJAAkAgByABLQABai0AACIEQQ9rDgoDAgQEBAQEAQQBAAsgBEEFa0EDSQ0AIARBHUcNAwsgAyABNgIAQR0PCyACIAFBAmoiBGtBAEwNFQJAAkACQAJAIAcgBC0AAGotAABBFGsOCAEDAgMCAwMAAwsgACABQQNqIAIgAxD7CQ8LIAMgAUEDajYCAEEhDwsCQANAIAIgBCIAQQFqIgRrIgFBAEwNGAJAIAcgBC0AAGotAAAiBkEVaw4KHgEDAQMDAwMDAAILCyABQQFGDRcgByAALQACai0AACIAQR5LDRxBASAAdEGAjICBBHENAQwcCyAGQQlrQQJJDRsLIAMgBDYCAAwbCyAAIAFBAmogAiADEPoJDwsgAyAGNgIADBkLIAFBAWogAkcNACADIAI2AgBBcQ8LA0ACQCACIAEiAEEBaiIBa0EATA0AAkACQCAHIAEtAABqLQAAIgRBCWsOAgEDAAsgBEEVRg0CDAELIABBAmogAkcNAQsLIAMgATYCAEEPDwsgACABQQFqIAIgAxD5CQ8LIAMgAUEBajYCAEEmDwsgAyABQQFqNgIAQRkPCyACIAFBAWoiAGsiAkEATARAQWYPCwJAIAEtAAFB3QBHDQAgAkEBRg0SIAEtAAJBPkcNACADIAFBA2o2AgBBIg8LIAMgADYCAEEaDwsgAyABQQFqNgIAQRcPCyACIAFBAWoiAGtBAEwEQEFoDwsCQAJAAkACQAJAAkAgByABLQABai0AACICQSBrDgUUAQMUFAALIAJBCWsOBxMTEwQEBAEDCyADIAFBAmo2AgBBJA8LIAMgAUECajYCAEEjDwsgAyABQQJqNgIAQSUPCyACQRVGDQ8LIAMgADYCAAwRCyADIAFBAWo2AgBBFQ8LIAMgAUEBajYCAEERDwsgAiABQQFqIgFrIgZBAEwNDEEAIQUCQAJAAkACQAJAAkAgByABLQAAai0AACIIQQVrDgMBAgMACyAIQRZrDgMDBAMECyAGQQFGDQ4gACABIAAoAuACEQAADQMgACABIAAoAtQCEQAARQ0DQQIhBAwCCyAGQQNJDQ0gACABIAAoAuQCEQAADQIgACABIAAoAtgCEQAARQ0CQQMhBAwBCyAGQQRJDQwgACABIAAoAugCEQAADQEgACABIAAoAtwCEQAARQ0BQQQhBAsgASAEaiEBA0AgAiABayIGQQBMBEBBbA8LQQEhBEEUIQUCQAJAAkACQAJAIAcgAS0AAGotAABBBWsOIAABAgQGBgYEBAQEBAQEBAQGAwQDAwMDBAQGBAYEBAQGBAsgBkEBRg0QIAAgASAAKALgAhEAAA0DIAAgASAAKALIAhEAAEUNA0ECIQQMAgsgBkEDSQ0PIAAgASAAKALkAhEAAA0CIAAgASAAKALMAhEAAEUNAkEDIQQMAQsgBkEESQ0OIAAgASAAKALoAhEAAA0BIAAgASAAKALQAhEAAEUNAUEEIQQLIAEgBGohAQwBCwtBACEFCyADIAE2AgAgBQ8LIAIgAWtBAkgNCSAAIAEgACgC4AIRAAANCEECIQQgACABIAAoAtQCEQAADQIgACABIAAoAsgCEQAARQ0IDAULIAIgAWtBA0gNCCAAIAEgACgC5AIRAAANB0EDIQQgACABIAAoAtgCEQAADQEgACABIAAoAswCEQAARQ0HDAQLIAIgAWtBBEgNByAAIAEgACgC6AIRAAANBkEEIQQgACABIAAoAtwCEQAARQ0BCwwDCyAAIAEgACgC0AIRAABFDQQMAQtBEyEFDAELQRMhBQsgASAEaiEEAkACQAJAAkADQCACIAQiAWsiBEEATA0EAkACQAJAAkACQAJAAkAgByABLQAAai0AAEEFaw4gAQIDCgQEBAoKCgkKCgoKBAQABQAAAAAKCgQKBAgGBAQKCyABQQFqIQQMBgsgBEEBRg0MIAAgASAAKALgAhEAAA0IIAAgASAAKALIAhEAAEUNCCABQQJqIQQMBQsgBEEDSQ0LIAAgASAAKALkAhEAAA0HIAAgASAAKALMAhEAAEUNByABQQNqIQQMBAsgBEEESQ0KIAAgASAAKALoAhEAAA0GIAAgASAAKALQAhEAAEUNBiABQQRqIQQMAwsgAyABNgIAIAUPCyABQQFqIQQgBUEpRwRAIAVBEkcNAiACIARrIgZBAEwNC0ETIQUCQAJAAkACQAJAAkACQCAHIAQtAABqLQAAIghBFmsOCAEJAQEBAQkFAAsgCEEFaw4DAQIDCAsgAUECaiEEQSkhBQwHCyAGQQFGDQ0gACAEIAAoAuACEQAADQIgACAEIAAoAsgCEQAARQ0CIAFBA2ohBEEpIQUMBgsgBkEDSQ0MIAAgBCAAKALkAhEAAA0BIAAgBCAAKALMAhEAAEUNASABQQRqIQRBKSEFDAULIAZBBEkNCyAAIAQgACgC6AIRAAANACAAIAQgACgC0AIRAAANAQsgAyAENgIADA4LIAFBBWohBEEpIQUMAgtBEyEFDAELCyAFQRNGDQIgAyABQQFqNgIAQSAPCyAFQRNGDQEgAyABQQFqNgIAQR8PCyAFQRNGDQAgAyABQQFqNgIAQR4PCyADIAE2AgAMBwtBACAFayEFCyAFDwsgAyABNgIADAQLQX4PCyADIAA2AgBBGA8LQX8PCyADIAQ2AgBBEA8LQQALDwAgACABIAJBwJ0IEM8KCxMAQcCdCCAAQQAgASACIAMQ+gQLEwBBwJ0IIABBASABIAIgAxD6BAsbACACpyIBQQFxRQRAIAAoAgggAUEAEI0BGgsLDwAgACABIAJB0I4IEM8KCxMAQdCOCCAAQQAgASACIAMQ+gQLbgACQAJAIAIEQCAAKAIIIQACfyAEBEAgACACELEBDAELIAAgAhC2CgsiAEEBcQ0CIAMgAK03AwAMAQsgAyAAKQMAQgGGQgGENwMAIAAgACkDAEIBfDcDAAtBAQ8LQbm5A0GUwwFBOUGx3wAQAAALEwBB0I4IIABBASABIAIgAxD6BAsPAEHYkQggASACIAMQggoL0AEBBn8jAEEQayIIJAAgAEHIAGohCSAAQfQGaiEKAn8DQEEAIAIgASgCACIFRg0BGgJAIAECfyAKIAUtAABBAnRqIgYsAAAiB0UEQCAAKALwAiAFIAAoAuwCEQAAIAhBDGoiBhCSBCIHIAQgAygCAGtKDQIgASgCACIFIAkgBS0AAGotAABqQQNrDAELIAQgAygCAGsgB0gNASAGQQFqIQYgBUEBags2AgAgAygCACAGIAcQHxogAyADKAIAIAdqNgIADAELC0ECCyAIQRBqJAALowEBBH8gAEHIAGohByAAQfQCaiEIAkADQCABKAIAIgUgAk8NASAEIAMoAgAiBksEQCABAn8gCCAFLQAAQQF0ai8BACIGRQRAIAAoAvACIAUgACgC7AIRAAAhBiABKAIAIgUgByAFLQAAai0AAGpBA2sMAQsgBUEBags2AgAgAyADKAIAIgVBAmo2AgAgBSAGOwEADAELCyAEIAZHDQBBAg8LQQALDQAgACABQZCJCBDDCgsNACAAIAFBkIcIEMMKCy4BAX9BASECIAAoAvACIAEgACgC7AIRAAAiAEH//wNNBH8gABCRBEEfdgVBAQsLQwEBfyMAQRBrIgEkAEEBQRAQQyICRQRAIAFBEDYCAEG4+AgoAgBBz+4DIAEQHhoQJwALIAIgADYCCCABQRBqJAAgAgsZAQJ+IAApAxAiAiABKQMQIgNWIAIgA1RrC6ACAgd8An8CQCABKwMIIgQgASsDACIDoyICRABVRBMOb+4/ZARAIAREAFVEEw5v7j+jIQMMAQsgAkQAVUQTDm/uP2NFDQAgA0QAVUQTDm/uP6IhBAsgA0T/VEQTDm/+P6MiBURgLaCRIXLIP6JEAAAAAAAA4L+iIQYgBUT/VEQTDm/uP6JEUOkvN+/G0z+iRK/X3IsYn+g/oyEHRODwnHYvG9Q/IQIDQCAJQQlLRQRAIAAgCUEEdGoiCiAFIAIQRaI5AwAgCiAHIAJE4PCcdi8b5D+gIggQRaI5AxAgCiAFIAIQV6IgBqA5AwggCiAHIAgQV6IgBqA5AxggCUECaiEJIAhE4PCcdi8b5D+gIQIMAQsLIAEgBDkDCCABIAM5AwALZwEBfCAAIAErAwBE/1REEw5v/j+jIAErAwhEqPSXm3fj8T+jECJE/1REEw5v7j+iRKj0l5t34+k/okReWnUEI8/SP6MiAkRU+svNu/H8P6I5AwggACACIAKgRP9URBMOb+4/ojkDAAv4AwIIfwZ8IwBBIGsiAyQAAkAgAEUNACAAKAIEIQIgACgCACIFEC8oAhAoAnQhBiADIAEpAwg3AwggAyABKQMANwMAIANBEGogAyAGQQNxQdoAbBCaAyADKwMYIQsgAysDECEMIAIEQCACKwMAIAxlRQ0BIAwgAisDEGVFDQEgAisDCCALZSALIAIrAxhlcSEEDAELAkAgACgCCCAFRwRAIAAgBSgCECgCDCIBNgIYIAEoAgghAiABKAIsIQZBACEBIAVB7N4KKAIARAAAAAAAAPA/RAAAAAAAAAAAEEshCgJAIAAoAhgoAgQiBEUgCkQAAAAAAAAAAGRFckUEQCACIARsIQEMAQsgBEUNACAEQQFrIAJsIQELIAAgBTYCCCAAIAE2AiAMAQsgACgCGCIBKAIIIQIgASgCLCEGC0EAIQVBACEBA0AgASACTyIEDQEgACgCICIHIAFqIQggAUEEaiEJIAFBAmohASAFIAsgBiAJIAJwIAdqQQR0aiIHKwMAIAYgCEEEdGoiCCsDACINoSIKoiAHKwMIIAgrAwgiD6EiDiAMoqEgDyAKoiAOIA2ioSINoUQAAAAAAAAAAGYgCkQAAAAAAAAAAKIgDkQAAAAAAAAAAKKhIA2hRAAAAAAAAAAAZnNqIgVBAkcNAAsLIANBIGokACAEC6wCAgZ/BHwjAEEgayIEJAAgASgCECIFKAIMIQICQAJAAkAgACgCECIDKALYASIGRQRAIAJFDQMgAy0AjAJBAXENAQwCCyACRQ0CC0EBIQcgAC0AmAFBBHENACAAIAYgAygC7AEgAygC/AEgAygC3AEQxAEgASgCECEFCyAAKAIkIAIrAwghCCAFKwMQIQkgAisDECEKIAUrAxghCyAEIAIoAgA2AhAgBCALIAqgOQMIIAQgCSAIoDkDAEGhxAQgBBAxIAEoAhAiAigCeCIFIAIpAxA3AzggBUFAayACKQMYNwMAIABBCiABKAIQKAJ4EJADIAdFDQAgAC0AmAFBBHEEQCAAIAMoAtgBIAMoAuwBIAMoAvwBIAMoAtwBEMQBCyAAEJMCCyAEQSBqJAALmwECAn8CfCMAQSBrIgIkACAAKAIAIgAQLygCECgCdCEDIAIgASkDCDcDCCACIAEpAwA3AwAgAkEQaiACIANBA3FB2gBsEJoDQQAhAQJAIAIrAxgiBCAAKAIQIgArA1BEAAAAAAAA4D+iIgWaZkUgBCAFZUVyDQAgAisDECIEIAArA1iaZkUNACAEIAArA2BlIQELIAJBIGokACABC40FAgZ/AnwjAEGgAWsiAiQAQQEhBiAAKAIQIgQoAtgBIgVFBEAgBC0AjAJBAXEhBgsgAiABKAIQIgMoAgwiBykDKDcDmAEgAiAHKQMgNwOQASACIAcpAxg3A4gBIAIgBykDEDcDgAEgAiADKwMQIgggAisDgAGgOQOAASACIAMrAxgiCSACKwOIAaA5A4gBIAIgCCACKwOQAaA5A5ABIAIgCSACKwOYAaA5A5gBAkAgBkUNACAALQCYAUEEcQ0AIAAgBSAEKALsASAEKAL8ASAEKALcARDEAQsgAkE8aiAAIAEQkAogACABEP0EGiACQgA3AzACf0EAIAIoAjwiBUEBcUUNABogARDeBiIDIAJBMGogAkFAaxCKBARAIAAgAigCMBBdIAAgAigCNCIDQeP4ACADGyABQfDeCigCAEEAQQAQYiACKwNAEI4DQQNBAiAFQQJxGwwBCyAAIAMQXUEBCyEDIAEoAhAoAggoAgBB/qYBEEwEQCACIAVBBHIiBTYCPAsCQCAFQYzgH3EEQCACIAIpA4ABNwNAIAIgAikDiAE3A0ggAiACKQOYATcDaCACIAIpA5ABNwNgIAIgAisDSDkDWCACIAIrA0A5A3AgAiACKAI8NgIsIAIgAisDYDkDUCACIAIrA2g5A3ggACACQUBrQQQgAkEsaiADEJQDDAELIAIgAikDmAE3AyAgAiACKQOQATcDGCACIAIpA4gBNwMQIAIgAikDgAE3AwggACACQQhqIAMQhQILIAAgASAHEIkKIAIoAjAQGCACKAI0EBggBgRAIAAtAJgBQQRxBEAgACAEKALYASAEKALsASAEKAL8ASAEKALcARDEAQsgABCTAgsgAkGgAWokAAvyAwIEfwV8IwBB0ABrIgUkACABLQAcQQFGBEAgASsDACEJIAAoAhAoAgwhBkEAIQEDQAJAIAEgBigCME4NACAAEC8hBwJAIAYoAjggAUECdGooAgAiCEEYQRAgBygCEC0AdEEBcSIHG2orAwAiCiAJZUUNACAJIAhBKEEgIAcbaisDACILZUUNAAJAIAAQLygCEC0AdEEBcQRAIAAoAhAhByAFIAYoAjggAUECdGooAgAiASkDKDcDKCAFIAEpAyA3AyAgBSABKQMYNwMYIAUgASkDEDcDECAFIAcpAxg3AwggBSAHKQMQNwMAIAUrAxAhCiAFKwMgIQsgBSsDKCEMIAUgBSsDGCAFKwMAIg2gOQMwIAUrAwghCSAFIAwgDaA5A0AgBSALIAmgOQNIIAUgCiAJoDkDOCADIAUpA0g3AxggAyAFQUBrKQMANwMQIAMgBSkDODcDCCADIAUpAzA3AwAgACgCECIAKwNQRAAAAAAAAOA/oiEKIAArAxghCQwBCyADIAogACgCECIAKwMQIgqgOQMAIAArAxghCSAAKwNQIQwgAyALIAqgOQMQIAMgCSAMRAAAAAAAAOA/oiIKoTkDCAsgAyAJIAqgOQMYIARBATYCAAwBCyABQQFqIQEMAQsLIAIhBgsgBUHQAGokACAGC6YCAgV/BXwjAEEgayIDJAAgACgCBCECIAAoAgAiBBAvKAIQKAJ0IQAgAyABKQMINwMIIAMgASkDADcDACADQRBqIAMgAEEDcUHaAGwQmgMgASADKQMYNwMIIAEgAykDEDcDAAJAIAJFBEAgBCgCECgCDCICQShqIQAgAkEgaiEFIAJBGGohBiACQRBqIQIMAQsgAkEYaiEAIAJBEGohBSACQQhqIQYLIAYrAwAhCSAAKwMAIQogBSsDACEHQQAhACACKwMAIARB7N4KKAIARAAAAAAAAPA/RAAAAAAAAAAAEEtEAAAAAAAA4D+iIgihIAErAwAiC2VFIAsgByAIoGVFckUEQCABKwMIIgcgCSAIoWYgByAKIAigZXEhAAsgA0EgaiQAIAALHgBBAUF/QQAgACgCGCIAIAEoAhgiAUkbIAAgAUsbC7gBAQN/IwBBQGoiBCQAAkAgAi0AAEUEQCAAQcD5B0EoEB8aDAELAkAgASgCECgCDCIGIAIQigoiBQRAIAEgBUEQaiAEQRhqIANBj8gBIAMbIgMgBS0AQUEAEJQERQ0BIAEQICEBIAQgAzYCCCAEIAI2AgQgBCABNgIAQd/BBCAEECsMAQsgASAGQRBqIARBGGogAkEPQQAQlARFDQAgASACEJIKCyAAIARBGGpBKBAfGgsgBEFAayQACw0AIAAoAhAoAgwQ3wYLrQMBCHwgASsDCCEDIAAgASsDAEQAAAAAAADgP6IiApoiBTkDYCAAIANEAAAAAAAA4D+iIgQgA0QAAAAAAAAmQKMiA6EiBjkDaCAAQgA3AzAgACAEOQNIIAAgBDkDOCAAIAQ5AyggACACOQMQIAAgAjkDACAAIAU5A1AgACACRBSYTus2qOG/oiIIOQNAIAAgAkQUmE7rNqjhP6IiCTkDICAAIAY5AwggACADRNjPYimSr9y/oiAEoCIHOQNYIAAgBzkDGCAAIAApA2A3A3AgACAAKQNoNwN4IAAgBTkDgAEgACADIAShOQOIASAAIAApA4ABNwOQASAAIAApA4gBNwOYASAAIAI5A/ABIAAgB5oiAzkD6AEgACACOQPgASAAIASaIgI5A9gBIAAgCTkD0AEgACACOQPIASAAQgA3A8ABIAAgAjkDuAEgACAIOQOwASAAIAM5A6gBIAAgBTkDoAEgACAGmjkD+AEgACAAKQPwATcDgAIgACAAKQP4ATcDiAIgACAAKQMINwOYAiAAIAApAwA3A5ACIAAgACkDCDcDqAIgACAAKQMANwOgAgsqACABIAErAwhEAAAAAAAA9j+iOQMIIAAgASkDADcDACAAIAEpAwg3AwgL5AQCDH8BfCMAQTBrIgMkAAJAIAAoAhAiBCgC2AEiAkUEQCAELQCMAkEBcUUNAQtBASEJIAAtAJgBQQRxDQAgACACIAQoAuwBIAQoAvwBIAQoAtwBEMQBCyABKAIQKAIMIgIoAgQhBiACKAIIIQogAigCLCEMIANBADYCLCABIANBLGoQjAoaIABBwIoKQcSKCiADKAIsQSBxGxDkAUHs3gooAgAiAgRAIAAgASACRAAAAAAAAPA/RAAAAAAAAAAAEEsQgwILAkAgASgCEC0AhQEiAkEBcQRAIABBgJEDEEZB4LoBIQIgAEHgugEQXQwBCyACQQJxBEAgAEHVkgMQRkGA6gEhAiAAQYDqARBdDAELIAJBCHEEQCAAQYeQAxBGQf+PAyECIABB/48DEF0MAQsgAkEEcQRAIABB/pIDEEZB+OkBIQIgAEH46QEQXQwBCyAAIAFB4/gAEIsKIgIQXSAAIAEQ/QQaCwJAIAYNAEEBIQYgAi0AAEUNACAAIAIQRgtBASELA0AgBSAGRgRAIAkEQCAALQCYAUEEcQRAIAAgBCgC2AEgBCgC7AEgBCgC/AEgBCgC3AEQxAELIAAQkwILIANBMGokAA8LIANCADcDGCADQgA3AxAgA0IANwMIIANCADcDACAMIAUgCmxBBHRqIQ1BACECA0AgAiAKRgRAIAAgAyALEIUEIAVBAWohBUEAIQsMAgsgAkEBTQRAIA0gAkEEdCIHaiIIKwMIIQ4gAyAHaiIHIAgrAwAgASgCECIIKwMQoDkDACAHIA4gCCsDGKA5AwgLIAJBAWohAgwACwALAAuXAgIFfwN8IwBBIGsiAiQAAkAgAEUNACAAKAIAIgQQLygCECgCdCEDIAIgASkDCDcDCCACIAEpAwA3AwAgAkEQaiACIANBA3FB2gBsEJoDIAIrAxghCCACKwMQIQkCQCAAKAIIIARGBEAgACsDECEHDAELIAQoAhAoAgwhBkEAIQEgBEHs3gooAgBEAAAAAAAA8D9EAAAAAAAAAAAQSyEHAkAgBigCBCIDRSAHRAAAAAAAAAAAZEVyRQRAIANBAXQhAQwBCyADRQ0AIANBAXRBAmshAQsgBigCLCABQQR0aisDECEHIAAgBDYCCCAAIAc5AxALIAmZIAdkIAiZIAdkcg0AIAkgCBBPIAdlIQULIAJBIGokACAFC5YMAhJ/BXwjAEHQAGsiAyQAAkAgACgCECIJKALYASICRQRAIAktAIwCQQFxRQ0BC0EBIRAgAC0AmAFBBHENACAAIAIgCSgC7AEgCSgC/AEgCSgC3AEQxAELIAEoAhAoAgwiAigCBCEKIAIoAiwhESACKAIIIgdBBWpBEBAZIQYgASgCECICKAJ4IgUgAikDEDcDOCAFQUBrIAIpAxg3AwAgASgCECICKwNQIAIrAyggAisDWCACKwNgIAIrAyAgA0HMAGogACABEJAKIANCADcDQEEBIQICfyABKAIQLQCFASIFQQFxBEAgAEGAkQMQRiAAQeC6ARBdQQAhBUGAkQMMAQsgBUECcQRAIABB1ZIDEEYgAEGA6gEQXUEAIQVB1ZIDDAELIAVBCHEEQCAAQYeQAxBGIABB/48DEF1BACEFQYeQAwwBCyAFQQRxBEAgAEH+kgMQRiAAQfjpARBdQQAhBUH+kgMMAQsCfyADKAJMIgJBAXEEQCABEN4GIgUgA0FAayADQThqEIoEBEAgACADKAJAEF0gACADKAJEIgRB4/gAIAQbIAFB8N4KKAIAQQBBABBiIAMrAzgQjgNBA0ECIAJBAnEbDAILIAAgBRBdQQEMAQsgAkHABHFFBEBBACEFQQAMAQsgARDeBiEFQQELIQIgACABEP0ECyELRAAAAAAAAFJAoiEYoCEURAAAAAAAAFJAoiABKAIQKAIIIgQtAAxBAUYEQCAEKAIAQfbvABBMQQFzIQ0LIA0gCiACRXJyRQRAIABBhyAQRkEBIQoLIBQgGKMhFqMhFSAGQSBqIQwgB0EDSSESA0AgCCAKRwRAIBEgByAIbEEEdGohE0EAIQQDQCAEIAdGBEAgAygCTCEEAkAgEgRAAkAgCCAEQYAEcUVyDQAgBRCPCkUNAEEAIQIgACAGIAUQlQlBAkgNACADIAEQIDYCIEHYgAQgA0EgahCCAQsgACAGIAIQhQQgAy0ATEEIcUUNASAAIAEQjQoMAQsgBEHAAHEEQAJAIAgNACAAIAYgBUEBELkGQQJIDQAgAyABECA2AjBB2IAEIANBMGoQggELIAAgBiAHQQAQRAwBCyAEQYAIcQRAIABBhyAQRiAAIAYgByACEEQgACALEEYgACAMQQIQOgwBCyAEQYzgH3EEQCADIAMoAkw2AiwgACAGIAcgA0EsaiACEJQDDAELIAAgBiAHIAIQRAsgCEEBaiEIQQAhAgwDBSATIARBBHQiDmoiDysDCCEUIAYgDmoiDiAPKwMAIBaiIAEoAhAiDysDEKA5AwAgDiAUIBWiIA8rAxigOQMIIARBAWohBAwBCwALAAsLAkACQCABKAIQKAIIIgQtAAxBAUYEQCAEKAIAIghB9u8AEExFDQEgAUGhnwEQJiIIRQ0CIAgtAAANAQwCCyABQcOiARAmIghFDQEgCC0AAEUNAQtBACEEAkADQCAEIAdGBEACQCACRSANckEBcUUNACACQQBHIQIMAwsFIBEgBEEEdCILaiIMKwMIIRQgBiALaiILIAwrAwAgFqIgASgCECIMKwMQoDkDACALIBQgFaIgDCsDGKA5AwggBEEBaiEEDAELCyADKAJMIQQgB0ECTQRAAkAgCiAEQYAEcUVyDQAgBRCPCkUNAEEAIQIgACAGIAUQlQlBAkgNACADIAEQIDYCAEHYgAQgAxCCAQsgACAGIAIQhQQgAy0ATEEIcUUNASAAIAEQjQoMAQsgBEHAAHEEQEEBIQIgACAGIAVBARC5BkECTgRAIAMgARAgNgIQQdiABCADQRBqEIIBCyAAIAYgB0EAEEQMAQsCQCAEQQxxBEAgAyADKAJMNgIMIAAgBiAHIANBDGogAhCUAwwBCyAAIAYgByACEEQLQQEhAgsgACAIIAYgByACQQBHIAFB0N4KKAIAQbuZARB7IAFB1N4KKAIAQd+4ARB7EIMJCyAGEBggAygCQBAYIAMoAkQQGCAAQQogASgCECgCeBCQAyAQBEAgAC0AmAFBBHEEQCAAIAkoAtgBIAkoAuwBIAkoAvwBIAkoAtwBEMQBCyAAEJMCCyADQdAAaiQAC8MJAgp/CXwjAEEwayIFJAACQCAARQ0AIAAoAgQhAiAAKAIAIgQQLygCECgCdCEDIAUgASkDCDcDCCAFIAEpAwA3AwAgBUEQaiAFIANBA3FB2gBsEJoDIAUrAxghECAFKwMQIRIgAgRAIAIrAwAgEmVFDQEgEiACKwMQZUUNASACKwMIIBBlIBAgAisDGGVxIQYMAQsCQCAAKAIIIARHBEAgACAEKAIQKAIMIgI2AhggAigCCCEBIAIoAiwhBwJ8IAItAClBCHEEQCAFQRBqIAIQqgogBSsDICAFKwMQoSIMIAUrAyggBSsDGKEiDSAEEC8oAhAoAnRBAXEiAhshESANIAwgAhshEyANIQ4gDAwBCyAEEC8hAyAEKAIQIgIrA1ggAisDYKAiDCACKwNQIg0gAygCEC0AdEEBcSIDGyERIA0gDCADGyETIAIrA3BEAAAAAAAAUkCiIQ4gAisDKEQAAAAAAABSQKIhDSACKwMgRAAAAAAAAFJAoiEMIAIrA2hEAAAAAAAAUkCiCyEPIAAgDkQAAAAAAADgP6I5A0AgACAPRAAAAAAAAOA/ojkDOCAAIA0gDSARoyARvVAbOQMwIAAgDCAMIBOjIBO9UBs5AyhBACECIARB7N4KKAIARAAAAAAAAPA/RAAAAAAAAAAAEEshDAJAIAAoAhgoAgQiA0UgDEQAAAAAAAAAAGRFckUEQCABIANsIQIMAQsgA0UNACADQQFrIAFsIQILIAAgBDYCCCAAIAI2AiAMAQsgACgCGCICKAIIIQEgAigCLCEHCyAAKwM4Ig8gEiAAKwMooiIMmWMNACAAKwNAIg4gECAAKwMwoiINmWMNACABQQJNBEAgDCAPoyANIA6jEE9EAAAAAAAA8D9jIQYMAQsgDSAHIAAoAhwgAXAiBEEBaiICQQAgASACRxsiAiAAKAIgIghqQQR0aiIDKwMAIhAgByAEIAhqQQR0aiIJKwMAIg+hIhGiIAMrAwgiEiAJKwMIIg6hIhMgDKKhIA4gEaIgEyAPoqEiFKFEAAAAAAAAAABmIBFEAAAAAAAAAACiIBNEAAAAAAAAAACioSAUoUQAAAAAAAAAAGZzDQAgDUQAAAAAAAAAACAQoSIRokQAAAAAAAAAACASoSITIAyioSASIBGiIBMgEKKhIhShRAAAAAAAAAAAZiAOIBGiIBMgD6KhIBShRAAAAAAAAAAAZnMiCUUEQEEBIQYgDSAPoiAOIAyioSAPRAAAAAAAAAAAoiAORAAAAAAAAAAAoqEiEaFEAAAAAAAAAABmIA8gEqIgDiAQoqEgEaFEAAAAAAAAAABmRg0BCyABQQFrIQpBASEGAkADQCABIAZGDQEgBkEBaiEGIA0gByAIAn8gCUUEQCACIgNBAWogAXAMAQsgBCAKaiABcCEDIAQLIgJqQQR0aiILKwAAIAcgCCADIgRqQQR0aiIDKwAAIhChIg+iIAsrAAggAysACCISoSIOIAyioSASIA+iIA4gEKKhIhChRAAAAAAAAAAAZiAPRAAAAAAAAAAAoiAORAAAAAAAAAAAoqEgEKFEAAAAAAAAAABmRg0ACyAAIAQ2AhxBACEGDAELIAAgBDYCHEEBIQYLIAVBMGokACAGC+QCAQN/IwBBkAFrIgQkAAJAIAItAABFBEAgAEHA+QdBKBAfGgwBCyAEQQ86AGcCQAJAIAEoAhAiBSgCeC0AUkEBRgRAAn8CQCACRQ0AIAItAABFDQACQCABKAIQKAJ4KAJIIgUoAgRBAkYNACAFKAIAIAIQqwkiBUUNACAEIAUtACM6AGcgBUEwaiEGCyAGDAELQZCvA0GqwgFBkwdBoBwQAAALIgYNASABKAIQIQULIARBGGoiBkEAQcgAEDMaQQAhAyAFKAIIKAIIQYCJCkcEQCAEIAE2AhggBiEDCyABQQAgBEHoAGogAiAELQBnIAMQlARFDQEgASACEJIKDAELIAEgBiAEQegAaiADQY/IASADGyIDIAQtAGdBABCUBEUNACABECAhASAEIAM2AgggBCACNgIEIAQgATYCAEHfwQQgBBArCyAEQQA2AowBIAAgBEHoAGpBKBAfGgsgBEGQAWokAAsaACAAKAIQKAIMIgAEQCAAKAIsEBggABAYCwupBQIEfAh/QTAQVCEGIAAoAhAoAggoAggoAgQhCgJ8IABBhN4KKAIARP///////+9/RHsUrkfheoQ/EEsgAEGA3gooAgBE////////739EexSuR+F6lD8QSyIBECoiAr1C//////////f/AFIgAb1C//////////f/AFJyRQRAIAAoAhAiBUKas+bMmbPm1D83AyAgBUKas+bMmbPm1D83AyhEzczMzMzMDEAMAQsgAkRhMlUwKqkzPxAiIQEgACgCECIFIAEgAiACRAAAAAAAAAAAZBsiATkDICAFIAE5AyggAUQAAAAAAABSQKILIQNBASELQQEgAEG43gooAgAgCkEAEGIiByAH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aiIDJAAgA0FAayQAQQAgByABGyEDDAELIAMhBSMAQUBqIgMkACABIAdOBEAgA0IANwIcIANCADcCJCADQgA3AiwgA0IANwIUIANBADYCECADQZjrCTYCDCADIAU2AgQgA0EANgI8IANCgYCAgICAgIABNwI0IAMgATYCCCAFIANBBGogByAHQQFBACAFKAIAKAIUEQsAIAFBACADKAIcGyEICyADQUBrJAAgCCIDDQAjAEFAaiIDJAAgA0EANgIQIANB6OoJNgIMIAMgATYCCCADQZjrCTYCBEEAIQEgA0EUakEAQScQMxogA0EANgI8IANBAToAOyAFIANBBGogB0EBQQAgBSgCACgCGBEKAAJAAkACQCADKAIoDgIAAQILIAMoAhhBACADKAIkQQFGG0EAIAMoAiBBAUYbQQAgAygCLEEBRhshAQwBCyADKAIcQQFHBEAgAygCLA0BIAMoAiBBAUcNASADKAIkQQFHDQELIAMoAhQhAQsgA0FAayQAIAEhAwsgBkEQaiQAQQAgA0UNABogBEEIakEAQTgQMxogBEEBOgA7IARBfzYCECAEIAA2AgwgBCADNgIEIARBATYCNCADIARBBGogAigCAEEBIAMoAgAoAhwRCAAgBCgCHCIAQQFGBEAgAiAEKAIUNgIACyAAQQFGCyAEQUBrJAALAwAACwkAQeipCxB4GgslAEH0qQstAABFBEBB6KkLQfjACRDPA0H0qQtBAToAAAtB6KkLCwkAQdipCxA0GgslAEHkqQstAABFBEBB2KkLQdfgABCjBEHkqQtBAToAAAtB2KkLCwkAQcipCxB4GgslAEHUqQstAABFBEBByKkLQaTACRDPA0HUqQtBAToAAAtByKkLCwkAQbipCxA0GgslAEHEqQstAABFBEBBuKkLQebKARCjBEHEqQtBAToAAAtBuKkLCwkAQaipCxB4GgslAEG0qQstAABFBEBBqKkLQYDACRDPA0G0qQtBAToAAAtBqKkLCwkAQZzcChA0GgsaAEGlqQstAABFBEBBpakLQQE6AAALQZzcCgsJAEGYqQsQeBoLJQBBpKkLLQAARQRAQZipC0HcvwkQzwNBpKkLQQE6AAALQZipCwsJAEGQ3AoQNBoLGgBBlakLLQAARQRAQZWpC0EBOgAAC0GQ3AoLGwBB+LELIQADQCAAQQxrEHgiAEHg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AQsLIAcgBTYCACAEIAI2AgACQANAAkACQCACIANGIAUgBkZyBH8gAgUgDyABKQIANwMIQQEhECAAKAIIIQkjAEEQayIOJAAgDiAJNgIMIA5BCGogDkEMahCKAiAFIQkgBiAFayEKQQAhDCMAQRBrIhEkAAJAIAQoAgAiC0UgCCACa0ECdSISRXINACAKQQAgBRshCgNAIBFBDGogCSAKQQRJGyALKAIAEK4HIg1Bf0YEQEF/IQwMAgsgCQR/IApBA00EQCAKIA1JDQMgCSARQQxqIA0QHxoLIAogDWshCiAJIA1qBUEACyEJIAsoAgBFBEBBACELDAILIAwgDWohDCALQQRqIQsgEkEBayISDQALCyAJBEAgBCALNgIACyARQRBqJAAQiQIgDkEQaiQAAkACQAJAAkAgDEEBag4CAAgBCyAHIAU2AgADQCACIAQoAgBGDQIgBSACKAIAIAAoAggQjQciAUF/Rg0CIAcgBygCACABaiIFNgIAIAJBBGohAgwACwALIAcgBygCACAMaiIFNgIAIAUgBkYNASADIAhGBEAgBCgCACECIAMhCAwGCyAPQQRqIgJBACAAKAIIEI0HIghBf0YNBCAGIAcoAgBrIAhJDQYDQCAIBEAgAi0AACEFIAcgBygCACIJQQFqNgIAIAkgBToAACAIQQFrIQggAkEBaiECDAELCyAEIAQoAgBBBGoiAjYCACACIQgDQCADIAhGBEAgAyEIDAULIAgoAgBFDQQgCEEEaiEIDAALAAsgBCACNgIADAMLIAQoAgALIANHIRAMAwsgBygCACEFDAELC0ECIRALIA9BEGokACAQCwkAIAAQkwsQGAszACMAQRBrIgAkACAAIAQ2AgwgACADIAJrNgIIIABBDGogAEEIahDiCygCACAAQRBqJAALNAADQCABIAJGRQRAIAQgAyABLAAAIgAgAEEASBs6AAAgBEEBaiEEIAFBAWohAQwBCwsgAQsMACACIAEgAUEASBsLKgADQCABIAJGRQRAIAMgAS0AADoAACADQQFqIQMgAUEBaiEBDAELCyABCw8AIAAgASACQeCnCRDJCgseACABQQBOBH9B4KcJKAIAIAFBAnRqKAIABSABC8ALDwAgACABIAJB1JsJEMkKCx4AIAFBAE4Ef0HUmwkoAgAgAUECdGooAgAFIAELwAsJACAAEIgL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AQsgAEHsAmoiAxCEASAAQQdqIABBBmogAiAAQbwBaiAAKALcASAAKALYASAAQcwBaiAAQRBqIABBDGogAEEIaiAAQeABahCaBw0AIAMQmAEaDAELCwJAIABBzAFqECNFDQAgAC0AB0EBRw0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCvAEgBBDCCzkDACAAQcwBaiAAQRBqIAAoAgwgBBCzASAAQewCaiAAQegCahBaBEAgBCAEKAIAQQJyNgIACyAAKALsAiABEDQaIABBzAFqEDQaIABB8AJqJAALuQMAIwBB8AJrIgAkACAAIAI2AugCIAAgATYC7AIgAEHMAWogAyAAQeABaiAAQdwBaiAAQdgBahCbByAAQcABahBRIgEgARBVED0gACABQQAQPyICNgK8ASAAIABBEGo2AgwgAEEANgIIIABBAToAByAAQcUAOgAGA0ACQCAAQewCaiAAQegCahBaDQAgACgCvAEgARAjIAJqRgRAIAEQIyEDIAEgARAjQQF0ED0gASABEFUQPSAAIAMgAUEAED8iAmo2ArwBCyAAQewCaiIDEIQBIABBB2ogAEEGaiACIABBvAFqIAAoAtwBIAAoAtgBIABBzAFqIABBEGogAEEMaiAAQQhqIABB4AFqEJoHDQAgAxCYARoMAQsLAkAgAEHMAWoQI0UNACAALQAHQQFHDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAK8ASAEEMMLOAIAIABBzAFqIABBEGogACgCDCAEELMBIABB7AJqIABB6AJqEFoEQCAEIAQoAgBBAnI2AgALIAAoAuwCIAEQNBogAEHMAWoQNBogAEHwAmokAAuaAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQpAIhBiADIABB0AFqEKAEIQcgAEHEAWogAyAAQcQCahCfBCAAQbgBahBRIgEgARBVED0gACABQQAQPyICNgK0ASAAIABBEGo2AgwgAEEANgIIA0ACQCAAQcwCaiAAQcgCahBaDQAgACgCtAEgARAjIAJqRgRAIAEQIyEDIAEgARAjQQF0ED0gASABEFUQPSAAIAMgAUEAED8iAmo2ArQBCyAAQcwCaiIDEIQBIAYgAiAA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AkAgAEH8AWogAEH4AWoQWw0AIAAoArQBIAMQIyABakYEQCADECMhAiADIAMQI0EBdBA9IAMgAxBVED0gACACIANBABA/IgFqNgK0AQsgAEH8AWoiAhCFAUEQIAEgAEG0AWogAEEIakEAIAYgAEEQaiAAQQxqIABB0AFqENYDDQAgAhCZARoMAQsLIAMgACgCtAEgAWsQPSADEEIQaCAAIAU2AgAgABDAC0EBRwRAIARBBDYCAAsgAEH8AWogAEH4AWoQWwRAIAQgBCgCAEECcjYCAAsgACgC/AEgAxA0GiAGEDQaIABBgAJqJAAL0AMBAX4jAEGQAmsiACQAIAAgAjYCiAIgACABNgKMAiAAQdABaiADIABB4AFqIABB3wFqIABB3gFqEJ8HIABBxAFqEFEiASABEFUQPSAAIAFBABA/IgI2AsABIAAgAEEgajYCHCAAQQA2AhggAEEBOgAXIABBxQA6ABYDQAJAIABBjAJqIABBiAJqEFsNACAAKALAASABECMgAmpGBEAgARAjIQMgASABECNBAXQQPSABIAEQVRA9IAAgAyABQQAQPyICajYCwAELIABBjAJqIgMQhQEgAEEXaiAAQRZqIAIgAEHAAWogACwA3wEgACwA3gEgAEHQAWogAEEgaiAAQRxqIABBGGogAEHgAWoQngcNACADEJkBGgwBCwsCQCAAQdABahAjRQ0AIAAtABdBAUcNACAAKAIcIgMgAEEgamtBnwFKDQAgACADQQRqNgIcIAMgACgCGDYCAAsgACACIAAoAsABIAQQwQsgACkDACEGIAUgACkDCDcDCCAFIAY3AwAgAEHQAWogAEEgaiAAKAIcIAQQswEgAEGMAmogAEGIAmoQWwRAIAQgBCgCAEECcjYCAAsgACgCjAIgARA0GiAAQdABahA0GiAAQZACaiQAC7kDACMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIABBwAFqIAMgAEHQAWogAEHPAWogAEHOAWoQnwcgAEG0AWoQUSIBIAEQVRA9IAAgAUEAED8iAjYCsAEgACAAQRBqNgIMIABBADYCCCAAQQE6AAcgAEHFADoABgNAAkAgAEH8AWogAEH4AWoQWw0AIAAoArABIAEQIyACakYEQCABECMhAyABIAEQI0EBdBA9IAEgARBVED0gACADIAFBABA/IgJqNgKwAQsgAEH8AWoiAxCFASAAQQdqIABBBmogAiAAQbABaiAALADPASAALADOASAAQcABaiAAQRBqIABBDGogAEEIaiAAQdABahCeBw0AIAMQmQEaDAELCwJAIABBwAFqECNFDQAgAC0AB0EBRw0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCsAEgBBDCCzkDACAAQcABaiAAQRBqIAAoAgwgBBCzASAAQfwBaiAAQfgBahBbBEAgBCAEKAIAQQJyNgIACyAAKAL8ASABEDQaIABBwAFqEDQaIABBgAJqJAALuQMAIwBBgAJrIgAkACAAIAI2AvgBIAAgATYC/AEgAEHAAWogAyAAQdABaiAAQc8BaiAAQc4BahCfByAAQbQBahBRIgEgARBVED0gACABQQAQPyICNgKwASAAIABBEGo2AgwgAEEANgIIIABBAToAByAAQcUAOgAGA0ACQCAAQfwBaiAAQfgBahBbDQAgACgCsAEgARAjIAJqRgRAIAEQIyEDIAEgARAjQQF0ED0gASABEFUQPSAAIAMgAUEAED8iAmo2ArABCyAAQfwBaiIDEIUBIABBB2ogAEEGaiACIABBsAFqIAAsAM8BIAAsAM4BIABBwAFqIABBEGogAEEMaiAAQQhqIABB0AFqEJ4HDQAgAxCZARoMAQsLAkAgAEHAAWoQI0UNACAALQAHQQFHDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAKwASAEEMMLOAIAIABBwAFqIABBEGogACgCDCAEELMBIABB/AFqIABB+AFqEFsEQCAEIAQoAgBBAnI2AgALIAAoAvwBIAEQNBogAEHAAWoQNBogAEGAAmokAAuPAwEBfyMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIAMQpAIhBiAAQcQBaiADIABB9wFqEKEEIABBuAFqEFEiASABEFUQPSAAIAFBABA/IgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABB/AFqIABB+AFqEFsNACAAKAK0ASABECMgAmpGBEAgARAjIQMgASABECNBAXQQPSABIAEQVRA9IAAgAyABQQAQPyICajYCtAELIABB/AFqIgMQhQEgBiACIABBtAFqIABBCGogACwA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QQJHIQULQYzdCi0AAARAIANBKGoiASADQbABakHYABAfGiMAQeABayICJABBrd4EQRtBAUG4+AgoAgAiBBBTGiACIAErAwA5A9ABIARBk6kEIAJB0AFqEDEgAS0ALCEGIAIgASgCKDYCxAEgAiAGQQFxNgLAASAEQd3JBCACQcABahAeGiABKwMIIQggAkKas+bMmbPm5D83A7gBIAIgCDkDsAEgBEGwqQQgAkGwAWoQMSACIAEoAhA2AqABIARB6cUEIAJBoAFqEB4aIAIgASgCFDYClAEgAkEtNgKQASAEQdXGBCACQZABahAeGiACIAEoAhg2AoABIAJC/NPGl93JmKg/NwN4IAJCs+bMmbPmzPE/NwNwIARBgsYEIAJB8ABqEDEgASsDICEIIAIgBkEBdkEBcTYCYCACIAg5A1ggAkLNmbPmzJmz9j83A1AgBEGayAQgAkHQAGoQMSACIAErA0g5A0ggAkEANgJEIAIgBkECdkEBcTYCQCAEQd6oBCACQUBrEDEgASgCMCEGIAEoAjQhByABKwNAIQggAiABLQA4NgIwIAIgCDkDKCACIAc2AiQgAiAGQQJ0QfDNCGooAgA2AiAgBEHZxwQgAkEgahAxIAIgASgCPEECdEGQzghqKAIANgIQIARBqP8DIAJBEGoQHhogAiABKAJQNgIAIARBp8kEIAIQHhogAkHgAWokAAsgACADQawBahCeCCEEAkAgAygCrAFBAUYEQCADIAMpA5ACNwMQIAMgAykDiAI3AwggACADQbABaiADQQhqEMwMIAVFBEAgACADQZgCahDuAxoLIAAQqgMMAQsgAEECQQggA0GIAWoQ9gMaIANBAToAlAFBACECA0AgAygCrAEiASACTQRAIAEgBCAAIANBiAFqEPgFDAILIAQgAkECdGooAgAiAUEAEK8DGiADIAMpA5ACNwMgIAMgAykDiAI3AxggASADQbABaiADQRhqEMwMIAVFBEAgASADQZgCahDuAxoLIAFBAhCGAiABEKoDIAJBAWohAgwACwALQQAhAQNAIAMoAqwBIAFLBEAgACAEIAFBAnRqKAIAELgBIAFBAWohAQwBCwsgBBAYCyAAELEDIANBsAJqJAALQwECfAJ/QQEgACsDCCICIAErAwgiA2QNABpBfyACIANjDQAaQQEgACsDECICIAErAxAiA2QN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AUlrC7oBAgJ/AnxE////////7/8hBAJ8RP///////+//IAEoAgAoAiAiAigCLCABKAIYSg0AGkT////////v/yACIAEoAgQoAiBGDQAaIAEQsQILIQUCQCAAKAIAKAIgIgIoAiwgACgCGEoNACACIAAoAgQoAiBGDQAgABCxAiEECyAEIAVhBEAgASgCACgCACICIAAoAgAoAgAiA0YEQCABKAIEKAIAIAAoAgQoAgBIDwsgAiADSA8LIAQgBWQLMwAgABDeDSAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCABQQA2AgggAUIANwIAC8oBAQd/IwBBEGsiBSQAIABBADYCCCAAQgA3AgBBKEE0IAIbIQcgASgCBCEIIAEoAgAhBANAIAQgCEcEQCAEKAIAIAdqIgMoAgQhCSADKAIAIQMDQCADIAlGBEAgBEEEaiEEDAMFIAUgAygCACIGNgIMIAZBiIELKAIANgIYAkACQCACBEAgBigCACgCICABRw0BCyACDQEgBigCBCgCICABRg0BCyAAIAVBDGoQwAELIANBBGohAwwBCwALAAsLIAAQ7A0gBUEQaiQACz4BAnwCf0F/IAArAwAiAiABKwMAIgNjDQAaQQEgAiADZA0AGkF/IAArAwgiAiABKwMIIgNjDQAaIAIgA2QLCxwAIAAoAgwgASgCDGogACgCBCABKAIEamtBAm0LHAAgACgCCCABKAIIaiAAKAIAIAEoAgBqa0ECbQuMAQEHfwJAIAAoAiAiAyABKAIoIgRKDQAgASgCICIFIAAoAigiBkoNAEEBIQIgACgCLCIHIAEoAiQiCEgNACAAKAIQIAEoAhBrIAcgASgCLGogACgCJCAIamtBAm1qIAYgAyAFamsgBGpBAm0gASgCDCIBIAAoAgwiAGsgACABayAAIAFKG2pMIQILIAILjAEBB38CQCAAKAIkIgMgASgCLCIESg0AIAEoAiQiBSAAKAIsIgZKDQBBASECIAAoAigiByABKAIgIghIDQAgACgCDCABKAIMayABKAIoIAcgCCAAKAIgamtqQQJtaiAEIAZqIAMgBWprQQJtIAEoAhAiASAAKAIQIgBrIAAgAWsgACABShtqTCECCyACCyABAX8gACgCICABKAIoTAR/IAEoAiAgACgCKEwFQQALCyABAX8gACgCJCABKAIs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fyAAKAIAIgAgASgCACIBSyAAIAFJGwslACAAKAIAKAIQKAL0ASIAIAEoAgAoAhAoAvQBIgFKIAAgAUhrCyUAIAEoAgAoAhAoAvQBIgEgACgCACgCECgC9AEiAEogACABSmsLQAICfAF/IAArAwAiAiABKwMAIgNkBEAgACsDCCABKwMIZUUPCyACIANjBH9BAEF/IAArAwggASsDCGYbBUEACwu0AQEFfyAAKAIoIQQDQCAEKAIEIQEgBCgCACACSwRAIAEgAkEYbGpBCGohAUEAIQMDQCABKAIIIANLBEAgASADENkIGiADQQFqIQMMAQsLIAFCADcCBCABKAIAEBggAUIANwIIIAFCADcCACACQQFqIQIMAQsLIAEQGCAEEBggAEEYaiEBA0AgACgCICAFSwRAIAEgBRBcGiAFQQFqIQUMAQsLIABCADcCHCAAKAIYEBggABAYCyABAnxBAUF/QQAgACsDACICIAErAwAiA2MbIAIgA2QbCw8AIAAoAhAQmwEaIAAQGAtaAgF8AX9BfyAAKwMIIAErAwihIgJESK+8mvLXej5kIAJESK+8mvLXer5jGyIDBH8gAwVBfyAAKwMAIAErAwChIgJESK+8mvLXej5kIAJESK+8mvLXer5jGwsLWgIBfAF/QX8gACsDACABKwMAoSICREivvJry13o+ZCACREivvJry13q+YxsiAwR/IAMFQX8gACsDCCABKwMIoSICREivvJry13o+ZCACREivvJry13q+YxsLCyMAIAAoAhAoAgBBBHYiACABKAIQKAIAQQR2IgFLIAAgAUlrCxQAIAAoAhBBHGogAEcEQCAAEBgLC44BAgF/BHwjAEEwayIDJAAgAyABKAIIIgQ2AiQgAyAENgIgIABB8v8EIANBIGoQHSACKwMAIQUgAisDECEGIAIrAwghByACKwMYIQggAyABKAIINgIQIAMgCCAHoEQAAAAAAADgP6I5AwggAyAGIAWgRAAAAAAAAOA/ojkDACAAQZn9BCADEB0gA0EwaiQACwIAC90DAgF/AnwjAEGgAWsiBCQAAkACQCAABEAgAUUNASABKAIIRQ0CIAEoAkQEQCAEIAIpAwA3A2AgBCACKQMINwNoIAQgAikDGDcDiAEgBCACKQMQNwOAASAEIAQrA2giBTkDmAEgBCAEKwNgIgY5A3AgBCAEKwOA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ID09IHN6AGNudCA9PSBzegBsb3oAZ3JhcGh2aXoAZ3Z3cml0ZV9ub196AHBvcnRob3h5AHNjYWxleHkAL3N2Zy9uYXZ5AGludmVtcHR5AG5vZGVfc2V0X2lzX2VtcHR5AG5vZGVzX2lzX2VtcHR5AHJlZmVyZW5jZSB0byBiaW5hcnkgZW50aXR5AGFzeW5jaHJvbm91cyBlbnRpdHkAaW5jb21wbGV0ZSBtYXJrdXAgaW4gcGFyYW1ldGVyIGVudGl0eQBlbnRpdHkgZGVjbGFyZWQgaW4gcGFyYW1ldGVyIGVudGl0eQBjYW5ub3Qgc3VzcGVuZCBpbiBleHRlcm5hbCBwYXJhbWV0ZXIgZW50aXR5AFhNTCBvciB0ZXh0IGRlY2xhcmF0aW9uIG5vdCBhdCBzdGFydCBvZiBlbnRpdHkAdW5kZWZpbmVkIGVudGl0eQBwYXJzZXItPm1fb3BlbkludGVybmFsRW50aXRpZXMgPT0gb3BlbkVudGl0eQBwYXJzZXItPm1fb3BlblZhbHVlRW50aXRpZXMgPT0gb3BlbkVudGl0eQBwYXJzZXItPm1fb3BlbkF0dHJpYnV0ZUVudGl0aWVzID09IG9wZW5FbnRpdHkAaW5maW5pdHkAZmFudGFzeQBTcGFyc2VNYXRyaXhfY29vcmRpbmF0ZV9mb3JtX2FkZF9lbnRyeQAvc3ZnL2l2b3J5AG91dCBvZiBtZW1vcnkARmVicnVhcnkASmFudWFyeQBndnBsdWdpbl9kb3RfbGF5b3V0X0xUWF9saWJyYXJ5AGd2cGx1Z2luX25lYXRvX2xheW91dF9MVFhfbGlicmFyeQBndnBsdWdpbl9jb3JlX0xUWF9saWJyYXJ5AGdhdGhlcl90aW1lX2VudHJvcHkAbm9kZXNfY29weQBhbGJhbnkASnVseQBTcGFyc2VNYXRyaXhfbXVsdGlwbHkAZXF1YWxseQBhc3NlbWJseQBzdW1tZXJza3kAc2h5AHNhdGlzZnkAYmVhdXRpZnkAbm9qdXN0aWZ5AENsYXNzaWZ5AC9zdmcvbGlnaHRncmV5AC9zdmcvZGltZ3JleQAvc3ZnL2RhcmtncmV5AC9zdmcvbGlnaHRzbGF0ZWdyZXkAL3N2Zy9kYXJrc2xhdGVncmV5AC9zdmcvc2xhdGVncmV5AHdlYmdyZXkAeDExZ3JleQAvc3ZnL2dyZXkAbW92ZSB0byBmcm9udCBsb2NrIGluY29uc2lzdGVuY3kAZXh0cmFjdF9hZGphY2VuY3kAbWVyZ2Vfb25ld2F5AGFycmF5AGFsbG9jQXJyYXkAL3N2Zy9saWdodGdyYXkAL3N2Zy9kaW1ncmF5AC9zdmcvZGFya2dyYXkAL3N2Zy9saWdodHNsYXRlZ3JheQAvc3ZnL2RhcmtzbGF0ZWdyYXkAL3N2Zy9zbGF0ZWdyYXkAd2ViZ3JheQB4MTFncmF5AC9zdmcvZ3JheQBUaHVyc2RheQBUdWVzZGF5AFdlZG5lc2RheQBTYXR1cmRheQBTdW5kYXkATW9uZGF5AEZyaWRheQBNYXkALi4vLi4vbGliL2NncmFwaC9ncmFtbWFyLnkALi4vLi4vbGliL2NvbW1vbi9odG1scGFyc2UueQAlbS8lZC8leQBwb3J0aG95eABwb3J0aG9feXgAeHh4AGJveAB2aWV3Qm94AGNoa0JvdW5kQm94AC9NZWRpYUJveABnZXRfZWRnZV9sYWJlbF9tYXRyaXgAaWRlYWxfZGlzdGFuY2VfbWF0cml4AG11c3Qgbm90IHVuZGVjbGFyZSBwcmVmaXgAdW5ib3VuZCBwcmVmaXgAaHRtbGxleABtYXgAIyUwMnglMDJ4JTAyeAAjJTJ4JTJ4JTJ4JTJ4ACMlMXglMXglMXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweAByYXJyb3cAbGFycm93AEhlbHZldGljYS1OYXJyb3cAYXJyb3dfbGVuZ3RoX2Nyb3cAL3N2Zy9zbm93AHNwcmluZ19lbGVjdHJpY2FsX2VtYmVkZGluZ19zbG93AC9zdmcvbGlnaHR5ZWxsb3cAL3N2Zy9ncmVlbnllbGxvdwAvc3ZnL2xpZ2h0Z29sZGVucm9keWVsbG93AC9zdmcveWVsbG93AGZhdGFsIGVycm9yIC0gc2Nhbm5lciBpbnB1dCBidWZmZXIgb3ZlcmZsb3cAZmxleCBzY2FubmVyIHB1c2gtYmFjayBvdmVyZmxvdwBjb3VyaWVybmV3AFNwcmluZ1Ntb290aGVyX25ldwBUcmlhbmdsZVNtb290aGVyX25ldwBkaWFnX3ByZWNvbl9uZXcAUXVhZFRyZWVfbmV3AFN0cmVzc01ham9yaXphdGlvblNtb290aGVyMl9uZXcAbiAmJiBuZXcAc2tldwBzdHJ2aWV3AC9zdmcvaG9uZXlkZXcAIC1hbmNob3IgdwBzb3J0dgBwb3Y6cG92AE5vdgBpbnYAZXF1aXYAcGl2AG5vbmFtZS5ndgBHRF9yYW5rKGcpW3JdLmF2ID09IEdEX3JhbmsoZylbcl0udgBjYyVzXyV6dQBjYyVzKyV6dQAvc3ZnL3BlcnUAbnUAbXUAJWMlbGx1AFRodQB0YXUAVGF1AE51AE11AF9wb3J0XyVzXyglZClfKCVkKV8ldQBOdW1iZXIgb2YgaXRlcmF0aW9ucyA9ICV1AE51bWJlciBvZiBpbmNyZWFzZXMgPSAldQBwbGFpbnRleHQAc3RyZXNzd3QAaW5wdXQAdGV4dGxheW91dABkb3RfbGF5b3V0AG5lYXRvX2xheW91dABpbml0TGF5b3V0AGNsdXN0AG1hcENsdXN0AGxhYmVsanVzdABzY0FkanVzdABBdWd1c3QAZWRnZXNmaXJzdABub2Rlc2ZpcnN0AG1heGltYWxfaW5kZXBlbmRlbnRfZWRnZV9zZXRfaGVhdmVzdF9lZGdlX3Blcm5vZGVfc3VwZXJub2Rlc19maXJzdABleGlzdAByZWFsaWduTm9kZWxpc3QAYXBwZW5kTm9kZWxpc3QAZGVmYXVsdGRpc3QAbWluZGlzdABwb3dlcl9kaXN0AGdyYXBoX2Rpc3QAYXZnX2Rpc3QAZ2V0RWRnZUxpc3QAaXF1ZXN0AGxvd2FzdABzcHJpbmdfZWxlY3RyaWNhbF9lbWJlZGRpbmdfZmFzdABndl9zb3J0AHZpZXdwb3J0AHRhaWxwb3J0AHVuZXhwZWN0ZWQgcGFyc2VyIHN0YXRlIC0gcGxlYXNlIHNlbmQgYSBidWcgcmVwb3J0AGhlYWRwb3J0AGh0bWxfcG9ydABpbnNlcnQAUlRyZWVJbnNlcnQAZmluZFNWZXJ0AHN0YXJ0AHBhcnQAZXN0aW1hdGVfdGV4dF93aWR0aF8xcHQAcXVvdAB/cm9vdABub3QAbWFrZV92bl9zbG90AGVtaXRfeGRvdAB4ZG90Onhkb3QAZXBzOnhkb3QAc3ZnOnhkb3QAanBnOnhkb3QAcG5nOnhkb3QAanBlZzp4ZG90AGdpZjp4ZG90AGpwZTp4ZG90AHhkb3QxLjQ6eGRvdAB4ZG90MS4yOnhkb3QAc2RvdABtaWRkb3QAZ3Y6ZG90AHBsYWluLWV4dDpkb3QAZG90OmRvdABlcHM6ZG90AGNhbm9uOmRvdABwbGFpbjpkb3QAc3ZnOmRvdABqcGc6ZG90AHBuZzpkb3QAanBlZzpkb3QAZ2lmOmRvdABqcGU6ZG90AH9ib3QAZG9Eb3QAb2JqbGlzdF9mcm9udABwb2ludHNfZnJvbnQAY29sb3JzZWdzX2Zyb250AG5vZGVsaXN0X3BvcF9mcm9udABwYnNfc2l6ZV9mcm9udABzcGFuLT5mb250AHZhZ3hicHJpbnQAeGRvdF9wb2ludABkZWNpZGVfcG9pbnQAVW5zYXRpc2ZpZWQgY29uc3RyYWludAB0cmFuc3BhcmVudABjb21wb25lbnQAaW52YWxpZCBhcmd1bWVudABjb21tZW50AGp1bmsgYWZ0ZXIgZG9jdW1lbnQgZWxlbWVudABjZW50AGkgPT0gZWNudABhcmlhbG10AGx0AGNpcmN1aXQAcG9seV9pbml0AE11bHRpbGV2ZWxfaW5pdABuc2xpbWl0AG1jbGltaXQAUG9ydHJhaXQAbGlnaHQAdmlydHVhbF93ZWlnaHQAbGhlaWdodABLUF9SaWdodABCb29rbWFuLUxpZ2h0AGd0AEtQX0xlZnQAY2hhcnNldABpbnNldABiaXRhcnJheV9yZXNldABzdWJzZXQAYml0YXJyYXlfc2V0AG1hdHJpeF9zZXQAbm9kZWxpc3Rfc2V0AGVkZ2VfbGlzdF9zZXQAaW50c19zZXQAdHJhcHNfc2V0AG5vZGVzX3NldABzY2FybGV0AC9zdmcvZGFya3Zpb2xldAAvc3ZnL2JsdWV2aW9sZXQAL3N2Zy92aW9sZXQAVHJlYnVjaGV0AGFneGdldAB0YWlsdGFyZ2V0AGxhYmVsdGFyZ2V0AGVkZ2V0YXJnZXQAaGVhZHRhcmdldABiaXRhcnJheV9nZXQAZGVnbGlzdF9nZXQAbm9kZWxpc3RfZ2V0AGFkal9saXN0X2dldABzZWdfbGlzdF9nZXQAc2FtZV9saXN0X2dldABlZGdlX2xpc3RfZ2V0AHNmb250X2dldABlZGdlX3NldF9nZXQAcm93c19nZXQAdHN0c19nZXQAcG9pbnRzX2dldABwYWlyc19nZXQAdHJhcHNfZ2V0AGNlbGxzX2dldABjb2xvcnNlZ3NfZ2V0AGJveGVzX2dldAB0cmlhbmdsZXNfZ2V0AGN5Y2xlc19nZXQAcW5vZGVzX2dldABlc3RhY2tfZ2V0AGludF9zdGFja19nZXQAZGZzX3N0YWNrX2dldABub2RlX3N0YWNrX2dldABiZXppZXJfcGF0aF9nZXQAbm9kZV9xdWV1ZV9nZXQAc3R5bGVzaGVldABzdHJpY3QAYWdjb3B5ZGljdABhZ21ha2VkYXRhZGljdAByZWMtPmRpY3QgPT0gZGF0YWRpY3QAd3JpdGVfZGljdABzZWN0AGVuY29kaW5nIHNwZWNpZmllZCBpbiBYTUwgZGVjbGFyYXRpb24gaXMgaW5jb3JyZWN0AGFzcGVjdABsYXllcnNlbGVjdABLUF9TdWJ0cmFjdABRdWFkVHJlZV9yZXB1bHNpdmVfZm9yY2VfaW50ZXJhY3QAY29tcGFjdABPY3QAcmVxdWVzdGVkIGZlYXR1cmUgcmVxdWlyZXMgWE1MX0RURCBzdXBwb3J0IGluIEV4cGF0AGxhYmVsZmxvYXQAbGFiZWxfZmxvYXQAU3BhcnNlTWF0cml4X2Zyb21fY29vcmRpbmF0ZV9mb3JtYXQAL3N2Zy93aGVhdABkZWdsaXN0X2F0AG5vZGVsaXN0X2F0AGFkal9saXN0X2F0AHNhbWVfbGlzdF9hdABwb2ludHNfYXQAdHJhcHNfYXQAY29sb3JzZWdzX2F0AHRyaWFuZ2xlc19hdABxbm9kZXNfYXQAU2F0AEFncmFwaGluZm9fdABBZ2VkZ2VpbmZvX3QAQWdub2RlaW5mb190AFx0AGZsYXRpbmRleChhZ2hlYWQoZSkpIDwgTS0+bnJvd3MAbWludXMAb3BsdXMAaGVhcnRzAHNhbXBsZXBvaW50cwBkaXJlZGdlY29uc3RyYWludHMAbGV2ZWwgYXNzaWdubWVudCBjb25zdHJhaW50cwB4eSBwc2V1ZG8tb3J0aG9nb25hbCBjb25zdHJhaW50cwB5eCBwc2V1ZG8tb3J0aG9nb25hbCBjb25zdHJhaW50cwB4eSBvcnRob2dvbmFsIGNvbnN0cmFpbnRzAHl4IG9ydGhvZ29uYWwgY29uc3RyYWludHMAbGluZSBzZWdtZW50cwBzZXRfY2VsbF9oZWlnaHRzAHJlY3RzAGFjY291bnRpbmdSZXBvcnRTdGF0cwBlbnRpdHlUcmFja2luZ1JlcG9ydFN0YXRzAFphcGZEaW5nYmF0cwByZW1pbmNyb3NzAGNvbXByZXNzAGd2dXNlcnNoYXBlX2ZpbGVfYWNjZXNzAGJyYXNzAGNsYXNzAGFwcGx5YXR0cnMAYWdtYWtlYXR0cnMAYmluZGF0dHJzAHBhcnNlX2xheWVycwBta0NsdXN0ZXJzAHJvdW5kX2Nvcm5lcnMAbWFrZV9iYXJyaWVycwBjZGF0YS5udG9wbGV2ZWwgPT0gYWdubm9kZXMoZykgLSBjZGF0YS5udmFycwBjYW5ub3QgcmVhbGxvYyBvcHMAY2Fubm90IHJlYWxsb2MgcG5scHMAZXBzAGNvcmVfbG9hZGltYWdlX3BzAGVwczpwcwBwczI6cHMAKGxpYik6cHMAZ3ZfdHJpbV96ZXJvcwBhZ3hidWZfdHJpbV96ZXJvcwB0ZXhneXJlaGVyb3MAaW1hZ2Vwb3MAdGlub3MAc2V0RWRnZUxhYmVsUG9zAFNldHRpbmcgaW5pdGlhbCBwb3NpdGlvbnMAeGxpbnRlcnNlY3Rpb25zAGNvbHVtbnMAbm9kZXNfY29udGFpbnMAZGVqYXZ1c2FucwBuaW1idXNzYW5zAGxpYmVyYXRpb25zYW5zAGZyZWVzYW5zAE9wZW5TYW5zAG9mZnNldCA9PSBuX3Rlcm1zAGRpdGVtcwBkaWFtcwBmbGF0aW5kZXgoYWd0YWlsKGUpKSA8IE0tPm5jb2xzAGNhbm5vdCByZWFsbG9jIGRxLnBubHMAY2Fubm90IHJlYWxsb2MgcG5scwBsZXZlbHMAZm9yY2VsYWJlbHMAZGlhZ29uYWxzAG1lcmdlX3JhbmtzAHNwbGl0QmxvY2tzAGludmlzAGNhbm5vdCByZWFsbG9jIHRyaXMAc2V0X2NlbGxfd2lkdGhzAENhbGN1bGF0aW5nIHNob3J0ZXN0IHBhdGhzAHllcwBzaG93Ym94ZXMAYmVhdXRpZnlfbGVhdmVzAGF0dGFjaF9lZGdlX2xhYmVsX2Nvb3JkaW5hdGVzAHBvbHlsaW5lcwBzcGxpbmVzAG9ydGhvZ29uYWwgbGluZXMAdGV4Z3lyZXRlcm1lcwBvdGltZXMAVGltZXMAZm9udG5hbWVzAHByZWZpeCBtdXN0IG5vdCBiZSBib3VuZCB0byBvbmUgb2YgdGhlIHJlc2VydmVkIG5hbWVzcGFjZSBuYW1lcwBTcGFyc2VNYXRyaXhfc3VtX3JlcGVhdF9lbnRyaWVzAHBlcmlwaGVyaWVzAEdldEJyYW5jaGVzAGYgPCBncmFwaFtqXS5uZWRnZXMAbWlubWF4X2VkZ2VzAGV4Y2hhbmdlX3RyZWVfZWRnZXMAbWFrZVN0cmFpZ2h0RWRnZXMAdW5kb0NsdXN0ZXJFZGdlcwBjb21wb3VuZEVkZ2VzAG1lcmdlX3RyZWVzAF9fY2x1c3Rlcm5vZGVzAGFnbm5vZGVzAE5EX2lkKG5wKSA9PSBuX25vZGVzAExvYWROb2RlcwBzaWRlcwBzcGFkZXMAdmVydGljZXMAY29vcmRzAHNldGJvdW5kcwBtZHMAY2RzAG1ha2VTZWxmQXJjcwBlbWl0X2VkZ2VfZ3JhcGhpY3MAY2x1YnMAY29uc29sYXMAJWxmJTJzAApTdHJpbmcgc3RhcnRpbmc6PCUuODBzAApTdHJpbmcgc3RhcnRpbmc6IiUuODBzACAlLipzACUuKnMlcyVzAGV4cGF0OiBBY2NvdW50aW5nKCVwKTogRGlyZWN0ICUxMGxsdSwgaW5kaXJlY3QgJTEwbGx1LCBhbXBsaWZpY2F0aW9uICU4LjJmJXMAICVzOiVzAF9fJWQ6JXMALyVzLyVzACVzLSVzACwlcwAgZm9udC1mYW1pbHk9IiVzACIgc3Ryb2tlLWRhc2hhcnJheT0iJXMAIiBjbGFzcz0iJXMAcG9seSAlcwAoKCVmLCVmKSwoJWYsJWYpKSAlcyAlcwBjb2xvciAlcwAgVGl0bGU6ICVzACJzdHJpY3QiOiAlcwBjb3VyAHV0cgBhcHBlbmRhdHRyAGFkZGF0dHIAYmVnaW5zdHIAc3Rydmlld19zdHIAcG92X2NvbG9yX2FzX3N0cgB2cHNjIT1udWxscHRyAGJlbmRUb1N0cgB1YXJyAGNyYXJyAGxhcnIAaGFycgBkYXJyAHVBcnIAckFycgBsQXJyAGhBcnIAZEFycgBBcHIAU3BhcnNlTWF0cml4X211bHRpcGx5X3ZlY3RvcgB0ZXJtaW5hdG9yAGluc3VsYXRvcgBpbnRlcm5hbEVudGl0eVByb2Nlc3NvcgB0ZXhneXJlY3Vyc29yAHN5bnRheCBlcnJvcgBtb25leV9nZXQgZXJyb3IARXJyb3IAcmZsb29yAGxmbG9vcgBsYWJlbGZvbnRjb2xvcgBwZW5jb2xvcgBmaWxsY29sb3IAYmdjb2xvcgByb3cgbWFqb3IAY29sdW1uIG1ham9yAG5laWdoYm9yAHN0eWxlX29yAG1yAHJhbmtkaXIAcGFnZWRpcgBsYXllcgBOb2RlQ292ZXIAL3N2Zy9zaWx2ZXIAY2x1c3RlcgBleHBhbmRDbHVzdGVyAHJwcm9tb3RlcgBscHJvbW90ZXIAY2VudGVyAG1heGl0ZXIAcGFydGlhbCBjaGFyYWN0ZXIAISByb290UGFyc2VyLT5tX3BhcmVudFBhcnNlcgBka2dyZWVuY29wcGVyAGNvb2xjb3BwZXIAZ3Zfc29ydF9jb21wYXJfd3JhcHBlcgB0YXBlcgBvdmVybGFwX2JlemllcgBmaWdfYmV6aWVyAGNvdXJpZXIAQ291cmllcgBoaWVyAGRhZ2dlcgBEYWdnZXIAb3V0cHV0b3JkZXIAcG9zdG9yZGVyAGZsYXRfcmVvcmRlcgBjZWxsYm9yZGVyAGZpeExhYmVsT3JkZXIAY3lsaW5kZXIAL3N2Zy9sYXZlbmRlcgByZW5kZXIAZm9sZGVyAGNsdXN0ZXJfbGVhZGVyAE5EX1VGX3NpemUobikgPD0gMSB8fCBuID09IGxlYWRlcgBPY3RvYmVyAHJlZmVyZW5jZSB0byBpbnZhbGlkIGNoYXJhY3RlciBudW1iZXIATm92ZW1iZXIAU2VwdGVtYmVyAERlY2VtYmVyAG1hY3IAYnIAc3RhcgBmZWxkc3BhcgByZWd1bGFyAGh0ZXh0c3BhbnNfY2xlYXIAaW9zX2Jhc2U6OmNsZWFyAGJydmJhcgBNYXIAXHIATkRfcmFuayh2KSA9PSByAHN0cmVxAHN0cnZpZXdfZXEAc3Rydmlld19zdHJfZXEAc3Rydmlld19jYXNlX3N0cl9lcQBzdHJ2aWV3X2Nhc2VfZXEAdnAAJSVCZWdpblByb2xvZwovRG90RGljdCAyMDAgZGljdCBkZWYKRG90RGljdCBiZWdpbgoKL3NldHVwTGF0aW4xIHsKbWFyawovRW5jb2RpbmdWZWN0b3IgMjU2IGFycmF5IGRlZgogRW5jb2RpbmdWZWN0b3IgMAoKSVNPTGF0aW4xRW5jb2RpbmcgMCAyNTUgZ2V0aW50ZXJ2YWwgcHV0aW50ZXJ2YWwKRW5jb2RpbmdWZWN0b3IgNDUgL2h5cGhlbiBwdXQKCiUgU2V0IHVwIElTTyBMYXRpbiAxIGNoYXJhY3RlciBlbmNvZGluZwovc3Rhcm5ldElTTyB7CiAgICAgICAgZHVwIGR1cCBmaW5kZm9udCBkdXAgbGVuZ3RoIGRpY3QgYmVnaW4KICAgICAgICB7IDEgaW5kZXggL0ZJRCBuZSB7IGRlZiB9eyBwb3AgcG9wIH0gaWZlbHNlCiAgICAgICAgfSBmb3JhbGwKICAgICAgICAvRW5jb2RpbmcgRW5jb2RpbmdWZWN0b3IgZGVmCiAgICAgICAgY3VycmVudGRpY3QgZW5kIGRlZmluZWZvbnQKfSBkZWYKL1RpbWVzLVJvbWFuIHN0YXJuZXRJU08gZGVmCi9UaW1lcy1JdGFsaWMgc3Rhcm5ldElTTyBkZWYKL1RpbWVzLUJvbGQgc3Rhcm5ldElTTyBkZWYKL1RpbWVzLUJvbGRJdGFsaWMgc3Rhcm5ldElTTyBkZWYKL0hlbHZldGljYSBzdGFybmV0SVNPIGRlZgovSGVsdmV0aWNhLU9ibGlxdWUgc3Rhcm5ldElTTyBkZWYKL0hlbHZldGljYS1Cb2xkIHN0YXJuZXRJU08gZGVmCi9IZWx2ZXRpY2EtQm9sZE9ibGlxdWUgc3Rhcm5ldElTTyBkZWYKL0NvdXJpZXIgc3Rhcm5ldElTTyBkZWYKL0NvdXJpZXItT2JsaXF1ZSBzdGFybmV0SVNPIGRlZgovQ291cmllci1Cb2xkIHN0YXJuZXRJU08gZGVmCi9Db3VyaWVyLUJvbGRPYmxpcXVlIHN0YXJuZXRJU08gZGVmCmNsZWFydG9tYXJrCn0gYmluZCBkZWYKCiUlQmVnaW5SZXNvdXJjZTogcHJvY3NldCBncmFwaHZpeiAwIDAKL2Nvb3JkLWZvbnQtZmFtaWx5IC9UaW1lcy1Sb21hbiBkZWYKL2RlZmF1bHQtZm9udC1mYW1pbHkgL1RpbWVzLVJvbWFuIGRlZgovY29vcmRmb250IGNvb3JkLWZvbnQtZmFtaWx5IGZpbmRmb250IDggc2NhbGVmb250IGRlZgoKL0ludlNjYWxlRmFjdG9yIDEuMCBkZWYKL3NldF9zY2FsZSB7CiAgICAgICBkdXAgMSBleGNoIGRpdiAvSW52U2NhbGVGYWN0b3IgZXhjaCBkZWYKICAgICAgIHNjYWxlCn0gYmluZCBkZWYKCiUgc3R5bGVzCi9zb2xpZCB7IFtdIDAgc2V0ZGFzaCB9IGJpbmQgZGVmCi9kYXNoZWQgeyBbOSBJbnZTY2FsZUZhY3RvciBtdWwgZHVwIF0gMCBzZXRkYXNoIH0gYmluZCBkZWYKL2RvdHRlZCB7IFsxIEludlNjYWxlRmFjdG9yIG11bCA2IEludlNjYWxlRmFjdG9yIG11bF0gMCBzZXRkYXNoIH0gYmluZCBkZWYKL2ludmlzIHsvZmlsbCB7bmV3cGF0aH0gZGVmIC9zdHJva2Uge25ld3BhdGh9IGRlZiAvc2hvdyB7cG9wIG5ld3BhdGh9IGRlZn0gYmluZCBkZWYKL2JvbGQgeyAyIHNldGxpbmV3aWR0aCB9IGJpbmQgZGVmCi9maWxsZWQgeyB9IGJpbmQgZGVmCi91bmZpbGxlZCB7IH0gYmluZCBkZWYKL3JvdW5kZWQgeyB9IGJpbmQgZGVmCi9kaWFnb25hbHMgeyB9IGJpbmQgZGVmCi90YXBlcmVkIHsgfSBiaW5kIGRlZgoKJSBob29rcyBmb3Igc2V0dGluZyBjb2xvciAKL25vZGVjb2xvciB7IHNldGhzYmNvbG9yIH0gYmluZCBkZWYKL2VkZ2Vjb2xvciB7IHNldGhzYmNvbG9yIH0gYmluZCBkZWYKL2dyYXBoY29sb3IgeyBzZXRoc2Jjb2xvciB9IGJpbmQgZGVmCi9ub3Bjb2xvciB7cG9wIHBvcCBwb3B9IGJpbmQgZGVmCgovYmVnaW5wYWdlIHsJJSBpIGogbnBhZ2VzCgkvbnBhZ2VzIGV4Y2ggZGVmCgkvaiBleGNoIGRlZgoJL2kgZXhjaCBkZWYKCS9zdHIgMTAgc3RyaW5nIGRlZgoJbnBhZ2VzIDEgZ3QgewoJCWdzYXZlCgkJCWNvb3JkZm9udCBzZXRmb250CgkJCTAgMCBtb3ZldG8KCQkJKFwoKSBzaG93IGkgc3RyIGN2cyBzaG93ICgsKSBzaG93IGogc3RyIGN2cyBzaG93IChcKSkgc2hvdwoJCWdyZXN0b3JlCgl9IGlmCn0gYmluZCBkZWYKCi9zZXRfZm9udCB7CglmaW5kZm9udCBleGNoCglzY2FsZWZvbnQgc2V0Zm9udAp9IGRlZgoKJSBkcmF3IHRleHQgZml0dGVkIHRvIGl0cyBleHBlY3RlZCB3aWR0aAovYWxpZ25lZHRleHQgewkJCSUgd2lkdGggdGV4dAoJL3RleHQgZXhjaCBkZWYKCS93aWR0aCBleGNoIGRlZgoJZ3NhdmUKCQl3aWR0aCAwIGd0IHsKCQkJW10gMCBzZXRkYXNoCgkJCXRleHQgc3RyaW5nd2lkdGggcG9wIHdpZHRoIGV4Y2ggc3ViIHRleHQgbGVuZ3RoIGRpdiAwIHRleHQgYXNob3cKCQl9IGlmCglncmVzdG9yZQp9IGRlZgoKL2JveHByaW0gewkJCQklIHhjb3JuZXIgeWNvcm5lciB4c2l6ZSB5c2l6ZQoJCTQgMiByb2xsCgkJbW92ZXRvCgkJMiBjb3B5CgkJZXhjaCAwIHJsaW5ldG8KCQkwIGV4Y2ggcmxpbmV0bwoJCXBvcCBuZWcgMCBybGluZXRvCgkJY2xvc2VwYXRoCn0gYmluZCBkZWYKCi9lbGxpcHNlX3BhdGggewoJL3J5IGV4Y2ggZGVmCgkvcnggZXhjaCBkZWYKCS95IGV4Y2ggZGVmCgkveCBleGNoIGRlZgoJbWF0cml4IGN1cnJlbnRtYXRyaXgKCW5ld3BhdGgKCXggeSB0cmFuc2xhdGUKCXJ4IHJ5IHNjYWxlCgkwIDAgMSAwIDM2MCBhcmMKCXNldG1hdHJpeAp9IGJpbmQgZGVmCgovZW5kcGFnZSB7IHNob3dwYWdlIH0gYmluZCBkZWYKL3Nob3dwYWdlIHsgfSBkZWYKCi9sYXllcmNvbG9yc2VxCglbCSUgbGF5ZXIgY29sb3Igc2VxdWVuY2UgLSBkYXJrZXN0IHRvIGxpZ2h0ZXN0CgkJWzAgMCAwXQoJCVsuMiAuOCAuOF0KCQlbLjQgLjggLjhdCgkJWy42IC44IC44XQoJCVsuOCAuOCAuOF0KCV0KZGVmCgovbGF5ZXJsZW4gbGF5ZXJjb2xvcnNlcSBsZW5ndGggZGVmCgovc2V0bGF5ZXIgey9tYXhsYXllciBleGNoIGRlZiAvY3VybGF5ZXIgZXhjaCBkZWYKCWxheWVyY29sb3JzZXEgY3VybGF5ZXIgMSBzdWIgbGF5ZXJsZW4gbW9kIGdldAoJYWxvYWQgcG9wIHNldGhzYmNvbG9yCgkvbm9kZWNvbG9yIHtub3Bjb2xvcn0gZGVmCgkvZWRnZWNvbG9yIHtub3Bjb2xvcn0gZGVmCgkvZ3JhcGhjb2xvciB7bm9wY29sb3J9IGRlZgp9IGJpbmQgZGVmCgovb25sYXllciB7IGN1cmxheWVyIG5lIHtpbnZpc30gaWYgfSBkZWYKCi9vbmxheWVycyB7CgkvbXl1cHBlciBleGNoIGRlZgoJL215bG93ZXIgZXhjaCBkZWYKCWN1cmxheWVyIG15bG93ZXIgbHQKCWN1cmxheWVyIG15dXBwZXIgZ3QKCW9yCgl7aW52aXN9IGlmCn0gZGVmCgovY3VybGF5ZXIgMCBkZWYKCiUlRW5kUmVzb3VyY2UKJSVFbmRQcm9sb2cKJSVCZWdpblNldHVwCjE0IGRlZmF1bHQtZm9udC1mYW1pbHkgc2V0X2ZvbnQKJSAvYXJyb3dsZW5ndGggMTAgZGVmCiUgL2Fycm93d2lkdGggNSBkZWYKCiUgbWFrZSBzdXJlIHBkZm1hcmsgaXMgaGFybWxlc3MgZm9yIFBTLWludGVycHJldGVycyBvdGhlciB0aGFuIERpc3RpbGxlcgovcGRmbWFyayB3aGVyZSB7cG9wfSB7dXNlcmRpY3QgL3BkZm1hcmsgL2NsZWFydG9tYXJrIGxvYWQgcHV0fSBpZmVsc2UKJSBtYWtlICc8PCcgYW5kICc+Picgc2FmZSBvbiBQUyBMZXZlbCAxIGRldmljZXMKL2xhbmd1YWdlbGV2ZWwgd2hlcmUge3BvcCBsYW5ndWFnZWxldmVsfXsxfSBpZmVsc2UKMiBsdCB7CiAgICB1c2VyZGljdCAoPDwpIGN2biAoWykgY3ZuIGxvYWQgcHV0CiAgICB1c2VyZGljdCAoPj4pIGN2biAoWykgY3ZuIGxvYWQgcHV0Cn0gaWYKCiUlRW5kU2V0dXAAc3VwAGdyb3VwAGN1cAB0aGluc3AAZW5zcABlbXNwAG5ic3AAcGVycAB3ZWllcnAAZ2VuZXJhdGUtY29uc3RyYWludHMuY3BwAGJsb2NrLmNwcABjc29sdmVfVlBTQy5jcHAAf3RvcABwcm9wAGFneGJwb3AAbm9wAGFzeW1wAGNvbXAAZmluZENDb21wAGJtcABzY2FsZV9jbGFtcAB4bHAAbHAgIT0gY2xwAHRhaWxfbHAAaGVhZF9scAB0YWlsdG9vbHRpcABsYWJlbHRvb2x0aXAAZWRnZXRvb2x0aXAAaGVhZHRvb2x0aXAAaGVsbGlwAHRhaWxjbGlwAGhlYWRjbGlwAC9zdmcvcGFwYXlhd2hpcABocAB0cmFuc3Bvc2Vfc3RlcABjb21wdXRlU3RlcABsYXllcmxpc3RzZXAAbGF5ZXJzZXAAaXBzZXAAcmFua3NlcABub2Rlc2VwAHN1YmdyYXBocyBuZXN0ZWQgbW9yZSB0aGFuICVkIGRlZXAAU2VwAHNmZHAAY3AAd2VicABpZG1hcABjbHVzdGVyX21hcABjbWFweDptYXAAZXBzOm1hcABjbWFweF9ucDptYXAAaW1hcF9ucDptYXAAaXNtYXA6bWFwAGltYXA6bWFwAGNtYXA6bWFwAHN2ZzptYXAAanBnOm1hcABwbmc6bWFwAGpwZWc6bWFwAGdpZjptYXAAanBlOm1hcABvdmVybGFwAGxldmVsc2dhcABjYXAAS1BfVXAAJUk6JU06JVMgJXAAc3RhcnQgPD0gcAByc3F1bwBsc3F1bwByZHF1bwBsZHF1bwBiZHF1bwBzYnF1bwByc2FxdW8AbHNhcXVvAHJhcXVvAGxhcXVvAGF1dG8ATnVuaXRvAC9zdmcvdG9tYXRvAG5lYXRvAGV1cm8AL3N2Zy9nYWluc2Jvcm8ATWV0aG9kWmVybwBtaWNybwBuaW1idXNtb25vAGxpYmVyYXRpb25tb25vAGZyZWVtb25vAGFyaW1vAHJhdGlvAHBvcnRobwByaG8AUmhvAC9zdmcvaW5kaWdvAHBpbmZvAGNjZ3JhcGhpbmZvAGNjZ25vZGVpbmZvAGNsX2VkZ2VfaW5mbwBnZXRQYWNrSW5mbwBtYWtlSW5mbwBwYXJzZVBhY2tNb2RlSW5mbwBjaXJjbwBpY28AXCUwM28AL3N2Zy9yb3N5YnJvd24AL3N2Zy9zYW5keWJyb3duAHZlcnlkYXJrYnJvd24AL3N2Zy9zYWRkbGVicm93bgAvc3ZnL2Jyb3duAEtQX0Rvd24AY2Fubm90IGNoYW5nZSBzZXR0aW5nIG9uY2UgcGFyc2luZyBoYXMgYmVndW4AU3VuAEp1bgB0aG9ybgAvc3ZnL2NyaW1zb24AeGRvdF9qc29uAHhkb3RfanNvbjpqc29uAGpzb24wOmpzb24Ab21pY3JvbgBPbWljcm9uAHNjYXJvbgBTY2Fyb24Ad2VibWFyb29uAHgxMW1hcm9vbgAvc3ZnL21hcm9vbgAvc3ZnL2xpZ2h0c2FsbW9uAC9zdmcvZGFya3NhbG1vbgAvc3ZnL3NhbG1vbgB1cHNpbG9uAGVwc2lsb24AVXBzaWxvbgBFcHNpbG9uAHJlc29sdXRpb24AZGlzdG9ydGlvbgBzdGQ6OmV4Y2VwdGlvbgBwYXJ0aXRpb24AZG90X3Bvc2l0aW9uAFNldHRpbmcgdXAgc3RyZXNzIGZ1bmN0aW9uAHVuY2xvc2VkIENEQVRBIHNlY3Rpb24AcG9zdGFjdGlvbgByb3RhdGlvbgBvcmllbnRhdGlvbgBhYm9taW5hdGlvbgBhY2NvdW50aW5nR2V0Q3VycmVudEFtcGxpZmljYXRpb24AeGRvdHZlcnNpb24AU1RzZXRVbmlvbgA8cG9seWdvbgBoZXhhZ29uAHNlcHRhZ29uAHBlbnRhZ29uAHRyaXBsZW9jdGFnb24AZG91Ymxlb2N0YWdvbgAvc3ZnL2xlbW9uY2hpZmZvbgBNb24AcGx1c21uAG5vdGluAGlzaW4AL3N2Zy9tb2NjYXNpbgBwaW4AbWluAHZvcm9fbWFyZ2luAGluZmluAG9uZWRfb3B0aW1pemVyX3RyYWluAHBsYWluAG1ha2VfY2hhaW4AbWVyZ2VfY2hhaW4AZGVsZXRlTWluAGZpbmRNaW4AdmFsaWduAGJhbGlnbgB5ZW4ATXVsdGlsZXZlbF9jb2Fyc2VuAGN1cnJlbgBQb2Jzb3BlbgBndl9mb3BlbgBndnVzZXJzaGFwZV9vcGVuAGVudGl0eVRyYWNraW5nT25PcGVuAC9zdmcvbGluZW4AZGltZW4AbWlubGVuAHN0eWxlX3Rva2VuAHVuY2xvc2VkIHRva2VuAC9zdmcveWVsbG93Z3JlZW4AbWVkaXVtZm9yZXN0Z3JlZW4AL3N2Zy9mb3Jlc3RncmVlbgAvc3ZnL2xpZ2h0Z3JlZW4AaHVudGVyc2dyZWVuAC9zdmcvbGF3bmdyZWVuAC9zdmcvZGFya2dyZWVuAC9zdmcvbWVkaXVtc3ByaW5nZ3JlZW4AL3N2Zy9zcHJpbmdncmVlbgAvc3ZnL2RhcmtvbGl2ZWdyZWVuAC9zdmcvbGltZWdyZWVuAC9zdmcvcGFsZWdyZWVuAHdlYmdyZWVuAC9zdmcvbGlnaHRzZWFncmVlbgAvc3ZnL21lZGl1bXNlYWdyZWVuAC9zdmcvZGFya3NlYWdyZWVuAC9zdmcvc2VhZ3JlZW4AeDExZ3JlZW4AL3N2Zy9ncmVlbgBHcmVlbgAvc3ZnL2xpZ2h0Y3lhbgAvc3ZnL2RhcmtjeWFuAC9zdmcvY3lhbgBuZXd0YW4AZGFya3RhbgAvc3ZnL3RhbgByb3dzcGFuAGNvbHNwYW4AbmFuAHRpbWVzbmV3cm9tYW4AbmltYnVzcm9tYW4AdGltZXNyb21hbgBUaW1lcy1Sb21hbgBQYWxhdGluby1Sb21hbgBOZXdDZW50dXJ5U2NobGJrLVJvbWFuAEphbgBHRF9yYW5rKGcpW3JdLm4gPD0gR0RfcmFuayhnKVtyXS5hbgBhZ3hicHV0X24AXG4Abl9ub2RlcyA9PSBncmFwaC0+bgBBLT5tID09IEEtPm4Aam9iLT5vYmotPnUubgBzLCVsZiwlbGYlbgAgZSwlbGYsJWxmJW4AJWQgJTFbIl0lbgB2ID09IG4AbnpjID09IG4AYiA9PSBuAG5jbHVzdGVyIDw9IG4AcHN5bQBhbGVmc3ltAHRoZXRhc3ltAHF1YW50dW0Ac3VtAC9zdmcvcGx1bQBpbnZ0cmFwZXppdW0AbWVkaXVtADk6cHJpc20AbHJtAGN1c3RvbQBhcHRyLT50YWcgPT0gVF9hdG9tAC9kZXYvdXJhbmRvbQBndl9yYW5kb20AcmxtAHNpbQBJTURTX2dpdmVuX2RpbQBvcmRtAHBhcmFsbGVsb2dyYW0AL3N2Zy9taW50Y3JlYW0ASnVsAHRsAGZyYXNsAFN5bWJvbABmaW5kQ29sADw/eG1sAHl1bWwAdXVtbABvdW1sAGl1bWwAZXVtbABhdW1sAFl1bWwAVXVtbABPdW1sAEl1bWwARXVtbABBdW1sAGNvcmVfbG9hZGltYWdlX3ZybWwAanBnOnZybWwAcG5nOnZybWwAanBlZzp2cm1sAGdpZjp2cm1sAGpwZTp2cm1sAGJ1bGwAZmlsbAAvc3ZnL3NlYXNoZWxsAGZvcmFsbABBcHJpbABwZXJtaWwAcmNlaWwAbGNlaWwAY2NlZGlsAENjZWRpbABhcnJvd3RhaWwAbHRhaWwAc2FtZXRhaWwAbGV2ZWwgPj0gMCAmJiBsZXZlbCA8PSBuLT5sZXZlbABzdHJlc3NfbWFqb3JpemF0aW9uX2tEX21rZXJuZWwAaXNfcGFyYWxsZWwAQ2FsY3VsYXRpbmcgY2lyY3VpdCBtb2RlbABDYWxjdWxhdGluZyBzdWJzZXQgbW9kZWwAQ2FsY3VsYXRpbmcgTURTIG1vZGVsAHhsYWJlbAB0YWlsbGFiZWwAaGVhZGxhYmVsAG1ha2VfbGFiZWwAZ3JhcGggbGFiZWwAaWV4Y2wAb2JqcC0+bGJsAG92YWwAbWVyZ2V2aXJ0dWFsAC9zdmcvbGlnaHRjb3JhbAAvc3ZnL2NvcmFsAFNwYXJzZU1hdHJpeF9mcm9tX2Nvb3JkaW5hdGVfYXJyYXlzX2ludGVybmFsAE11bHRpbGV2ZWxfY29hcnNlbl9pbnRlcm5hbABRdWFkVHJlZV9hZGRfaW50ZXJuYWwAYXJyb3dfbGVuZ3RoX25vcm1hbABhcmlhbAByYWRpYWwAL3N2Zy90ZWFsAHJlYWwAbG9jYWwAZXN0aW1hdGVfY2hhcmFjdGVyX3dpZHRoX2Nhbm9uaWNhbABnbG9iYWwAcS0+bAAuLi8uLi9saWIvY2dyYXBoL3NjYW4ubAB0azp0awBnaWY6dGsAcGF0Y2h3b3JrAHRvawBib29rAEF2YW50R2FyZGUtQm9vawBzaW5rAG92ZXJsYXBfc2hyaW5rAHNwaWN5cGluawAvc3ZnL2hvdHBpbmsAL3N2Zy9saWdodHBpbmsAL3N2Zy9kZWVwcGluawBuZW9ucGluawAvc3ZnL3BpbmsAbmV3cmFuawBjbHVzdGVycmFuawBfbmV3X3JhbmsAaW5zdGFsbF9pbl9yYW5rAHJlbW92ZV9mcm9tX3JhbmsAL3N2Zy9jb3Juc2lsawBvbmVibG9jawB2LT5sZWZ0LT5ibG9jayA9PSB2LT5yaWdodC0+YmxvY2sAL3N2Zy9maXJlYnJpY2sAUFFjaGVjawBwYWNrAC9zdmcvYmxhY2sAQmxhY2sAc2ZvbnRfYmFjawByb3dzX2JhY2sAdHN0c19iYWNrAGNvbG9yc2Vnc19iYWNrAHNmb250X3BvcF9iYWNrAHRzdHNfcG9wX2JhY2sAZXN0YWNrX3BvcF9iYWNrAGRmc19zdGFja19wb3BfYmFjawBkZnNfc3RhY2tfYmFjawB6d2oAenduagBqb2ItPm9iagBnZXRpbnRyc3hpAHBzaQBQc2kAQ2FsaWJyaQBGcmkAdHdvcGkAZHBpAHZvcm9ub2kAVm9yb25vaQBjaGFuaQBkZW1pAEJvb2ttYW4tRGVtaQBBdmFudEdhcmRlLURlbWkAL3N2Zy9kYXJra2hha2kAL3N2Zy9raGFraQBwaGkAY2hpAFBoaQBDaGkAZGkAWGkAUGkATkRfaWQobnApID09IGkAU3RyZXNzTWFqb3JpemF0aW9uU21vb3RoZXJfc21vb3RoAFNwcmluZ1Ntb290aGVyX3Ntb290aABib3RoAHN0YXJ0c3dpdGgAbGluZWxlbmd0aABiYWRfYXJyYXlfbmV3X2xlbmd0aABhdmVyYWdlX2VkZ2VfbGVuZ3RoAGV0aABwZW53aWR0aABsd2lkdGgAc2V0bGluZXdpZHRoAHNob3J0cGF0aABmb250cGF0aABQb2JzcGF0aABiZWdpbnBhdGgAaW1hZ2VwYXRoAGVuZHBhdGgAc3RyYWlnaHRfcGF0aABtYXBfcGF0aAA8cGF0aABjYW5ub3QgZmluZCB0cmlhbmdsZSBwYXRoAC9zdmcvbGF2ZW5kZXJibHVzaABmbGVzaABvc2xhc2gAT3NsYXNoAGR0c3RyaGFzaABzdHJkaWN0X2hhc2gAbmRhc2gAbWRhc2gAZGlncmFwaABzdWJncmFwaABjb25zdHJ1Y3RfZ3JhcGgAY2hrU2dyYXBoAGNsb3Nlc3RfcGFpcnMyZ3JhcGgAYWdkZWxldGUgb24gd3JvbmcgZ3JhcGgAY29ubmVjdEdyYXBoAG1rTWF6ZUdyYXBoAHVwc2loACVzbGluZS10aHJvdWdoAGZsYXRfc2VhcmNoAGNoYW5TZWFyY2gAUlRyZWVTZWFyY2gATWFyY2gARGlzY29uQnJhbmNoAFBpY2tCcmFuY2gAQWRkQnJhbmNoAC4uLy4uL2xpYi91dGlsL2JpdGFycmF5LmgALi4vLi4vbGliL3V0aWwvc3Rydmlldy5oAC4uLy4uL2xpYi9jaXJjb2dlbi9ub2RlbGlzdC5oAC4uLy4uL2xpYi91dGlsL3NvcnQuaAAuLi8uLi9saWIvY2dyYXBoL25vZGVfc2V0LmgALi4vLi4vbGliL2NvbW1vbi9ib3hlcy5oAC4uLy4uL2xpYi9vcnRoby9zdHJ1Y3R1cmVzLmgALi4vLi4vbGliL2RvdGdlbi9kb3Rwcm9jcy5oAC4uLy4uL2xpYi91dGlsL3N0cmVxLmgALi4vLi4vbGliL29ydGhvL3RyYXAuaAAuLi8uLi9saWIvdXRpbC9zdGFydHN3aXRoLmgALi4vLi4vbGliL3V0aWwvZ3ZfbWF0aC5oAC4uLy4uL2xpYi9vcnRoby9yYXdncmFwaC5oAC4uLy4uL2xpYi91dGlsL2FneGJ1Zi5oAC4uLy4uL2xpYi91dGlsL3Rva2VuaXplLmgALi4vLi4vbGliL2NvbW1vbi9odG1sdGFibGUuaAAuLi8uLi9saWIvdXRpbC9hbGxvYy5oAGF1eGcAY29yZV9sb2FkaW1hZ2Vfc3ZnAHN2ZzpzdmcAanBnOnN2ZwBwbmc6c3ZnAGpwZWc6c3ZnAGdpZjpzdmcAanBlOnN2ZwBzdmdfaW5saW5lOnN2ZwBBdWcAZG9Qcm9sb2cAcG93ZXJfaXRlcmF0aW9uX29ydGhvZwBwbmcAaWRlYWxfZGlzdF9zY2hlbWUgdmFsdWUgd3JvbmcAeGRvdCB2ZXJzaW9uICIlcyIgdG9vIGxvbmcAY29uZwBsYmxlbmNsb3NpbmcAYmFzaWNfc3RyaW5nAGZhaWx1cmUgbWFsbG9jJ2luZyBmb3IgcmVzdWx0IHN0cmluZwBzcHJpbmcAb3JkZXJpbmcAZ2VuZXJhdGVSYW5kb21PcmRlcmluZwBhcmluZwBBcmluZwBEYW1waW5nAFdhcm5pbmcAb3ZlcmxhcF9zY2FsaW5nAHggYW5kIHkgc2NhbGluZwBvbGQgc2NhbGluZwBzbW9vdGhpbmcAdW5rbm93biBlbmNvZGluZwBtdWx0aWxldmVsX3NwcmluZ19lbGVjdHJpY2FsX2VtYmVkZGluZwBzcHJpbmdfZWxlY3RyaWNhbF9zcHJpbmdfZW1iZWRkaW5nAGNlbGxwYWRkaW5nAGNlbGxzcGFjaW5nAHJhbmcAbGFuZwBmaXZlcG92ZXJoYW5nAHRocmVlcG92ZXJoYW5nAG5vdmVyaGFuZwBlbWl0X2h0bWxfaW1nAGxnAG9yaWcAc3psaWcAb2VsaWcAYWVsaWcAT0VsaWcAQUVsaWcAY29yZV9sb2FkaW1hZ2VfZmlnAGpwZzpmaWcAcG5nOmZpZwBmaWc6ZmlnAGpwZWc6ZmlnAGdpZjpmaWcAanBlOmZpZwBlZ2cAbmV4dF9zZWcAcmVnAGpwZWcAaSA9PSBkZWcAZGcAY2cAY2xvc2VzdWJnAG1pc21hdGNoZWQgdGFnAGJlei0+c2ZsYWcAYmV6LT5lZmxhZwAhKmZsYWcAIWZsYWcAPGcAJS41ZywlLjVnLCUuNWcsJS41ZwAlLjVnICUuNWcAJWcgJWcAYm94SW50ZXJzZWN0ZgBlcHNmAGFnZWRnZXNlcWNtcGYAY2N3cm90YXRlcGYAZm5vZgBpbmYAc2VsZgBoYWxmACVsZiVsZiVsZiVsZgAlbGYsJWxmLCVsZiwlbGYsJWxmACUqZiAlKmYgJWxmICVsZgBsaWJlcmF0aW9uc2VyaWYAZnJlZXNlcmlmAHNhbnMtU2VyaWYAZ2lmAC9zdmcvcGVhY2hwdWZmAHJpZmYAYWNjb3VudGluZ1JlcG9ydERpZmYAdGFpbGhyZWYAbGFiZWxocmVmAGVkZ2VocmVmAGhlYWRocmVmAG9yZGYAcGRmAHNpZ21hZgBcZgAlLjBMZgAlTGYAdXMtPmYAJS4wM2YAJXMgdHJhbnNtaXQgJS4zZgByZ2I8JTkuM2YsICU5LjNmLCAlOS4zZj4gdHJhbnNtaXQgJS4zZgAlLjAyZgAlLjJmACUuMGYsJS4wZiwlLjBmLCUuMGYAICUuMGYsJS4wZgAlLjBmICUuMGYgJS4wZiAlLjBmACIgZmlsbC1vcGFjaXR5PSIlZgAiIHN0cm9rZS1vcGFjaXR5PSIlZgAKZmluYWwgZSA9ICVmAGJyb256ZQBhcnJvd3NpemUAbGFiZWxmb250c2l6ZQBzZWFyY2hzaXplAGZpeGVkc2l6ZQBub2RlbGlzdF9zaXplAG5vZGVfc2V0X3NpemUAdHJhcHNfc2l6ZQBjZWxsc19zaXplAG5vZGVzX3NpemUAdGV4dHNwYW5fc2l6ZQBzdmdfc2l6ZQBjYXBhY2l0eSA+IGRpY3QtPnNpemUAY2FwYWNpdHkgPiBzZWxmLT5zaXplAGJ6LnNpemUAcG9pbnQtc2l6ZQBub3JtYWxpemUAbWtNYXplAGljdXJ2ZQBub2RlbGlzdF9yZW1vdmUAYWRqX2xpc3RfcmVtb3ZlAG5vZGVfc2V0X3JlbW92ZQBzdHJkaWN0X3JlbW92ZQBzb2x2ZQAhdi0+YWN0aXZlAC1hY3RpdmUAZm9udF9pbl9saXN0X3Blcm1pc3NpdmUAL3N2Zy9vbGl2ZQB1Z3JhdmUAb2dyYXZlAGlncmF2ZQBlZ3JhdmUAYWdyYXZlAFVncmF2ZQBPZ3JhdmUASWdyYXZlAEVncmF2ZQBBZ3JhdmUAdHJ1ZQAvc3ZnL2Jpc3F1ZQBvYmxpcXVlAEF2YW50R2FyZGUtQm9va09ibGlxdWUAQXZhbnRHYXJkZS1EZW1pT2JsaXF1ZQBIZWx2ZXRpY2EtTmFycm93LUJvbGRPYmxpcXVlAENvdXJpZXItQm9sZE9ibGlxdWUASGVsdmV0aWNhLUJvbGRPYmxpcXVlAEhlbHZldGljYS1OYXJyb3ctT2JsaXF1ZQBDb3VyaWVyLU9ibGlxdWUASGVsdmV0aWNhLU9ibGlxdWUAbmF2eWJsdWUAL3N2Zy9saWdodHNreWJsdWUAL3N2Zy9kZWVwc2t5Ymx1ZQAvc3ZnL3NreWJsdWUAbmV3bWlkbmlnaHRibHVlAC9zdmcvbWlkbmlnaHRibHVlAC9zdmcvbGlnaHRibHVlAC9zdmcvY2FkZXRibHVlAC9zdmcvY29ybmZsb3dlcmJsdWUAL3N2Zy9kb2RnZXJibHVlAC9zdmcvcG93ZGVyYmx1ZQBuZW9uYmx1ZQAvc3ZnL21lZGl1bWJsdWUAL3N2Zy9saWdodHN0ZWVsYmx1ZQAvc3ZnL3N0ZWVsYmx1ZQAvc3ZnL3JveWFsYmx1ZQAvc3ZnL2RhcmtibHVlAHJpY2hibHVlAGxpZ2h0c2xhdGVibHVlAC9zdmcvbWVkaXVtc2xhdGVibHVlAC9zdmcvZGFya3NsYXRlYmx1ZQAvc3ZnL3NsYXRlYmx1ZQAvc3ZnL2FsaWNlYmx1ZQAvc3ZnL2JsdWUAY2FsbFN0b3JlRW50aXR5VmFsdWUAc3RvcmVBdHRyaWJ1dGVWYWx1ZQBCbHVlAG5lYXRvX2VucXVldWUAVHVlAGNvbnZlcnRTUHRvUm91dGUAeWFjdXRlAHVhY3V0ZQBvYWN1dGUAaWFjdXRlAGVhY3V0ZQBhYWN1dGUAWWFjdXRlAFVhY3V0ZQBPYWN1dGUASWFjdXRlAEVhY3V0ZQBBYWN1dGUAcmVmZXJlbmNlIHRvIGV4dGVybmFsIGVudGl0eSBpbiBhdHRyaWJ1dGUAZHVwbGljYXRlIGF0dHJpYnV0ZQBub3RlAHByaW1lcnNpdGUAcmlib3NpdGUAcmVzdHJpY3Rpb25zaXRlAHByb3RlYXNlc2l0ZQAvc3ZnL2dob3N0d2hpdGUAL3N2Zy9uYXZham93aGl0ZQAvc3ZnL2Zsb3JhbHdoaXRlAC9zdmcvYW50aXF1ZXdoaXRlAC9zdmcvd2hpdGUAV2hpdGUAcG9wX29ial9zdGF0ZQBwY3Bfcm90YXRlAGNvbmNlbnRyYXRlAGRlY29yYXRlAFF1YWRUcmVlX3JlcHVsc2l2ZV9mb3JjZV9hY2N1bXVsYXRlAG5vdHJhbnNsYXRlAC9zdmcvY2hvY29sYXRlAGdlb21VcGRhdGUAaW52aG91c2UAL3N2Zy9jaGFydHJldXNlAG5vZGVsaXN0X3JldmVyc2UAWE1MX1BhcnNlADxlbGxpcHNlAGR1c3R5cm9zZQAvc3ZnL21pc3R5cm9zZQBTcGFyc2VNYXRyaXhfdHJhbnNwb3NlAGFnY2xvc2UAZW50aXR5VHJhY2tpbmdPbkNsb3NlAFNwYXJzZU1hdHJpeF9tdWx0aXBseV9kZW5zZQBmYWxzZQAvc3ZnL21lZGl1bXR1cnF1b2lzZQAvc3ZnL2Rhcmt0dXJxdW9pc2UAL3N2Zy9wYWxldHVycXVvaXNlAC9zdmcvdHVycXVvaXNlAHBoYXNlAC9zdmcvYXp1cmUAc2lnbmF0dXJlAGNvcmUATXNxdWFyZQBQYWxhdGlubyBMaW5vdHlwZQBBLT50eXBlID09IEItPnR5cGUAc3VwZQBlbGxpcHNlX3RhbmdlbnRfc2xvcGUAZ3ZyZW5kZXJfdXNlcnNoYXBlAG1pdGVyX3NoYXBlAGxhbmRzY2FwZQBMYW5kc2NhcGUASnVuZQBub25lAGRvY3VtZW50IGlzIG5vdCBzdGFuZGFsb25lAGNvdXNpbmUAL3N2Zy9tZWRpdW1hcXVhbWFyaW5lAC9zdmcvYXF1YW1hcmluZQA8cG9seWxpbmUAJXNvdmVybGluZQB1bmRlcmxpbmUAUHJvdXRlc3BsaW5lAGxpbmVhcl9zcGxpbmUAYl9zcGxpbmUAb2xpbmUAYWd4YnVmX2lzX2lubGluZQBzdmdfaW5saW5lAHJlZmluZQBwcmltZQBQcmltZQAvc3ZnL2xpbWUAY29sb3JzY2hlbWUAbGFiZWxfc2NoZW1lAHNhbWUAbGFiZWxmb250bmFtZQBVRl9zZXRuYW1lAGZvbnRfbmFtZQBmb250LT5uYW1lAHVzLT5uYW1lAHJlc2VydmVkIHByZWZpeCAoeG1sKSBtdXN0IG5vdCBiZSB1bmRlY2xhcmVkIG9yIGJvdW5kIHRvIGFub3RoZXIgbmFtZXNwYWNlIG5hbWUAc3R5bGUAL3N2Zy90aGlzdGxlAHRpdGxlAC9zdmcvbWVkaXVtcHVycGxlAGRhcmtwdXJwbGUAd2VicHVycGxlAHJlYmVjY2FwdXJwbGUAdmVyeV9saWdodF9wdXJwbGUAbWVkX3B1cnBsZQB4MTFwdXJwbGUAL3N2Zy9wdXJwbGUAc2hhcGVmaWxlAGdyYWRpZW50YW5nbGUAcmVjdGFuZ2xlAFJlY3RhbmdsZQBsYWJlbGFuZ2xlAGludnRyaWFuZ2xlAGRlc3RpbmF0aW9uIHBvaW50IG5vdCBpbiBhbnkgdHJpYW5nbGUAc291cmNlIHBvaW50IG5vdCBpbiBhbnkgdHJpYW5nbGUAZGZzQ3ljbGUAZG91YmxlY2lyY2xlAE1jaXJjbGUAaW52aXNpYmxlAHRob3JuZGFsZQBpbnB1dHNjYWxlAG9zY2FsZQBpbWFnZXNjYWxlAC9zdmcvd2hpdGVzbW9rZQBtYW5kYXJpbm9yYW5nZQAvc3ZnL2RhcmtvcmFuZ2UAL3N2Zy9vcmFuZ2UAL3N2Zy9iZWlnZQBuZXdlZGdlAGRlbGV0ZV9mYXN0X2VkZ2UAZGVsZXRlX2ZsYXRfZWRnZQBhZGRfdHJlZV9lZGdlAG1ha2VTdHJhaWdodEVkZ2UAbWFrZVNlbGZFZGdlAG1ha2VDb21wb3VuZEVkZ2UAIXVzZV9zdGFnZQBvc2FnZQBwYWdlAGd2bG9hZGltYWdlAHZlZQB0ZWUAUVVBRF9UUkVFX0hZQlJJRCwgc2l6ZSBsYXJnZXIgdGhhbiAlZCwgc3dpdGNoIHRvIGZhc3QgcXVhZHRyZWUAZmVhc2libGVfdHJlZQBTcGFyc2VNYXRyaXhfZGl2aWRlX3Jvd19ieV9kZWdyZWUAbm9kZWxpc3RfZnJlZQBzZm9udF9mcmVlAG5vZGVfc2V0X2ZyZWUAcm93c19mcmVlAGNlbGxzX2ZyZWUAbmV3bm9kZQBpbnN0YWxsbm9kZQBhZ25vZGUAZGVsZXRlX2Zhc3Rfbm9kZQBwYWNrbW9kZQBTcGxpdE5vZGUAb3RpbGRlAG50aWxkZQBhdGlsZGUAT3RpbGRlAE50aWxkZQBBdGlsZGUAZGl2aWRlAHRyYWRlAGdyYXBodml6X25vZGVfaW5kdWNlAHNvdXJjZQByZXB1bHNpdmVmb3JjZQBpbGxlZ2FsIHBhcmFtZXRlciBlbnRpdHkgcmVmZXJlbmNlAGVycm9yIGluIHByb2Nlc3NpbmcgZXh0ZXJuYWwgZW50aXR5IHJlZmVyZW5jZQByZWN1cnNpdmUgZW50aXR5IHJlZmVyZW5jZQBsYWJlbGRpc3RhbmNlAFRCX2JhbGFuY2UAVEJiYWxhbmNlAGRldmljZQBtb25vc3BhY2UAL3N2Zy9vbGRsYWNlAGZhY2UAc3ViZQAgLWFuY2hvciBlAHMxLT5jb21tX2Nvb3JkPT1zMi0+Y29tbV9jb29yZABNcmVjb3JkAGZvcndhcmQAcHJvZABsaWdodGdvbGRlbnJvZABtZWRpdW1nb2xkZW5yb2QAL3N2Zy9kYXJrZ29sZGVucm9kAC9zdmcvcGFsZWdvbGRlbnJvZAAvc3ZnL2dvbGRlbnJvZAAvc3ZnL2J1cmx5d29vZABsaWdodHdvb2QAbWVkaXVtd29vZABkYXJrd29vZABfYmFja2dyb3VuZABjb21wb3VuZABubyBlbGVtZW50IGZvdW5kAGZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0tbm8gYWN0aW9uIGZvdW5kAC9zdmcvYmxhbmNoZWRhbG1vbmQAYXJyb3dfbGVuZ3RoX2RpYW1vbmQATWRpYW1vbmQAbm9kZV9zZXRfZmluZABzdHJkaWN0X2ZpbmQAZ3Z1c2Vyc2hhcGVfZmluZABub2RlbGlzdF90cnlfYXBwZW5kAGVkZ2VfbGlzdF90cnlfYXBwZW5kAHNmb250X3RyeV9hcHBlbmQAdHJhcHNfdHJ5X2FwcGVuZABjZWxsc190cnlfYXBwZW5kAG5vZGVzX3RyeV9hcHBlbmQAbm9kZV9xdWV1ZV90cnlfYXBwZW5kAGV4cGFuZABjdW1iZXJsYW5kAGJyaWdodGdvbGQAb2xkZ29sZAAvc3ZnL2dvbGQAYm9sZABIZWx2ZXRpY2EtTmFycm93LUJvbGQAVGltZXMtQm9sZABDb3VyaWVyLUJvbGQAUGFsYXRpbm8tQm9sZABOZXdDZW50dXJ5U2NobGJrLUJvbGQASGVsdmV0aWNhLUJvbGQAJTAqbGxkACUqbGxkACslbGxkAG4tPmJyYW5jaFtpXS5jaGlsZAAlKy40bGQAJXMlbGQAc29saWQAL3N2Zy9tZWRpdW1vcmNoaWQAL3N2Zy9kYXJrb3JjaGlkAC9zdmcvb3JjaGlkAGlsbGVnYWwgY2hhcmFjdGVyKHMpIGluIHB1YmxpYyBpZABkaWprc3RyYV9zZ2QAZml4ZWQAY3VydmVkAGRlcml2ZWQAZG90dGVkAG1lbW9yeSBleGhhdXN0ZWQAbG9jYWxlIG5vdCBzdXBwb3J0ZWQAcGFyc2luZyBhYm9ydGVkAHBhcnNlciBub3Qgc3RhcnRlZABhdHRyaWJ1dGUgbWFjcm9zIG5vdCBpbXBsZW1lbnRlZABhY2NvdW50aW5nRGlmZlRvbGVyYXRlZABmYXRhbCBmbGV4IHNjYW5uZXIgaW50ZXJuYWwgZXJyb3ItLWVuZCBvZiBidWZmZXIgbWlzc2VkAGNvbmRlbnNlZAAvc3ZnL21lZGl1bXZpb2xldHJlZAAvc3ZnL3BhbGV2aW9sZXRyZWQASW1wcm9wZXIgJXMgdmFsdWUgJXMgLSBpZ25vcmVkACVzIHZhbHVlICVzIDwgJWQgLSB0b28gc21hbGwgLSBpZ25vcmVkACVzIHZhbHVlICVzID4gJWQgLSB0b28gbGFyZ2UgLSBpZ25vcmVkAC9zdmcvaW5kaWFucmVkAC9zdmcvZGFya3JlZABhIHN1Y2Nlc3NmdWwgcHJpb3IgY2FsbCB0byBmdW5jdGlvbiBYTUxfR2V0QnVmZmVyIGlzIHJlcXVpcmVkAHRhcGVyZWQAL3N2Zy9vcmFuZ2VyZWQAcmVzZXJ2ZWQgcHJlZml4ICh4bWxucykgbXVzdCBub3QgYmUgZGVjbGFyZWQgb3IgdW5kZWNsYXJlZAAvc3ZnL3JlZABzdHJpcGVkAGlsbC1jb25kaXRpb25lZAB1bmRlZmluZWQAbm90IGNvbnN0cmFpbmVkAGxhYmVsYWxpZ25lZAB0ZXh0IGRlY2xhcmF0aW9uIG5vdCB3ZWxsLWZvcm1lZABYTUwgZGVjbGFyYXRpb24gbm90IHdlbGwtZm9ybWVkAHVuZmlsbGVkAGlucHV0IGluIGZsZXggc2Nhbm5lciBmYWlsZWQAdHJpYW5ndWxhdGlvbiBmYWlsZWQAcGFyc2luZyBmaW5pc2hlZABkYXNoZWQAbGltaXQgb24gaW5wdXQgYW1wbGlmaWNhdGlvbiBmYWN0b3IgKGZyb20gRFREIGFuZCBlbnRpdGllcykgYnJlYWNoZWQAd2VkZ2VkAHNpemU9PWZyZWVkAHJvdW5kZWQAcGFyc2VyIG5vdCBzdXNwZW5kZWQAcGFyc2VyIHN1c3BlbmRlZABXZWQAUmVkAFNwYXJzZU1hdHJpeF9hZGQAbm9kZV9zZXRfYWRkAHN0cmRpY3RfYWRkAGRkICE9IHBhcmVudF9kZABLUF9BZGQAcGFkAHhsaGR4bG9hZAB4bGhkeHVubG9hZAByZWFkAGFycm93aGVhZABsaGVhZABzYW1laGVhZABib3gzZAAlc18lZABfc3Bhbl8lZABfYmxvY2tfJWQAX3dlYWtfJWQAX2Nsb25lXyVkAC4lZAAlWS0lbS0lZAAlbGYsJWQAJXMgaW4gbGluZSAlZAAlJSUlQm91bmRpbmdCb3g6ICVkICVkICVkICVkACJfc3ViZ3JhcGhfY250IjogJWQAIl9ndmlkIjogJWQAImhlYWQiOiAlZABhZ3hicHV0YwB2cHNjAGNwLT5zcmMAdWNpcmMAb2NpcmMAaWNpcmMAZWNpcmMAYWNpcmMAVWNpcmMAT2NpcmMASWNpcmMARWNpcmMAQWNpcmMAbGFiZWxsb2MAZ3ZfcmVjYWxsb2MAc3RkOjpiYWRfYWxsb2MAYmFrZXJzY2hvYwBzZW1pU3dlZXRDaG9jAG9iamxpc3Rfc3luYwBkZWdsaXN0X3N5bmMAbm9kZWxpc3Rfc3luYwBjbGlzdF9zeW5jAGVkZ2Vfc2V0X3N5bmMAcG9pbnRzX3N5bmMAc3Ryc19zeW5jAEFncmFwaHNfc3luYwBib3hlc19zeW5jAGxheWVyX25hbWVzX3N5bmMAc25vZGVzX3N5bmMAdmFyYXJyX3N5bmMAYmV6aWVyX3BhdGhfc3luYwBwYnNfc2l6ZV9zeW5jAG1jAFNwYXJzZU1hdHJpeF9pc19zeW1tZXRyaWMAQS0+aXNfcGF0dGVybl9zeW1tZXRyaWMAcGljOnBpYwBpdGFsaWMAQm9va21hbi1MaWdodEl0YWxpYwBaYXBmQ2hhbmNlcnktTWVkaXVtSXRhbGljAEJvb2ttYW4tRGVtaUl0YWxpYwBUaW1lcy1Cb2xkSXRhbGljAFBhbGF0aW5vLUJvbGRJdGFsaWMATmV3Q2VudHVyeVNjaGxiay1Cb2xkSXRhbGljAFRpbWVzLUl0YWxpYwBQYWxhdGluby1JdGFsaWMATmV3Q2VudHVyeVNjaGxiay1JdGFsaWMAcmFkaWMAI2ZjZmNmYwA6ICUuMmYgc2VjAGxpc3RkZWxyZWMAbGV2ZWwgZ3JhcGggcmVjAGxldmVsIGVkZ2UgcmVjAGxldmVsIG5vZGUgcmVjAERlYwBfbmVhdG9fY2MAYmMAdmlzaWJpbGl0eS5jAFNwYXJzZU1hdHJpeC5jAGh0bWxsZXguYwBpbmRleC5jAHNtYXJ0X2luaV94LmMAZ3ZyZW5kZXJfY29yZV9wb3YuYwBjdnQuYwBsYXlvdXQuYwB0ZXh0c3Bhbl9sdXQuYwBhZGp1c3QuYwBub2RlbGlzdC5jAHNob3J0ZXN0LmMAY2xvc2VzdC5jAHNhbWVwb3J0LmMAZ3ZyZW5kZXJfY29yZV9kb3QuYwBjb25zdHJhaW50LmMAZG90aW5pdC5jAG5lYXRvaW5pdC5jAHBhdGNod29ya2luaXQuYwBvc2FnZWluaXQuYwBlbWl0LmMAZmxhdC5jAGFycm93cy5jAG1pbmNyb3NzLmMAc3RyZXNzLmMAcG9zdF9wcm9jZXNzLmMAY2NvbXBzLmMAbnMuYwB1dGlscy5jAHhsYWJlbHMuYwBzaGFwZXMuYwBkb3RzcGxpbmVzLmMAbmVhdG9zcGxpbmVzLmMAY2x1c3RlcmVkZ2VzLmMAYXR0ci5jAHJlZnN0ci5jAGZhc3Rnci5jAGNsdXN0ZXIuYwB0YXBlci5jAGd2cmVuZGVyLmMAc3BsaXQucS5jAGRlY29tcC5jAGd2cmVuZGVyX2NvcmVfbWFwLmMAb3J0aG8uYwBndnJlbmRlcl9jb3JlX2pzb24uYwBwYXJ0aXRpb24uYwBwb3NpdGlvbi5jAGd2cGx1Z2luLmMAZ3ZfZm9wZW4uYwB0ZXh0c3Bhbi5jAGdlb20uYwByYW5kb20uYwByb3V0ZXNwbC5jAHhtbC5jAE11bHRpbGV2ZWwuYwBzcHJpbmdfZWxlY3RyaWNhbC5jAGd2cmVuZGVyX2NvcmVfdGsuYwByYW5rLmMAcGFjay5jAGJsb2NrcGF0aC5jAGR0c3RyaGFzaC5jAHJhd2dyYXBoLmMAZ3ZyZW5kZXJfY29yZV9zdmcuYwBndnJlbmRlcl9jb3JlX2ZpZy5jAHN0dWZmLmMAbWF6ZS5jAHF1YWRfcHJvZ19zb2x2ZS5jAHNwYXJzZV9zb2x2ZS5jAHJvdXRlLmMAd3JpdGUuYwBjb2x4bGF0ZS5jAHhtbHBhcnNlLmMAZWxsaXBzZS5jAGd2bG9hZGltYWdlX2NvcmUuYwBndnVzZXJzaGFwZS5jAGNpcmNsZS5jAGh0bWx0YWJsZS5jAGVkZ2UuYwBndmxvYWRpbWFnZS5jAGJsb2NrdHJlZS5jAFF1YWRUcmVlLmMAbm9kZS5jAG5vZGVfaW5kdWNlLmMAZ3ZkZXZpY2UuYwBjb21wb3VuZC5jAHRyYXBlem9pZC5jAHNnZC5jAGNvbmMuYwByZWMuYwBkaWprc3RyYS5jAGZQUS5jAGNsYXNzMi5jACVsZiwlbGYsJWxmLCVsZiVjACVsZiwlbGYsJWxmLCVbXixdJWMAXCVjACRjAHdiAG5zdWIAc2V0aHNiAHJiAHByb3RlY3RfcnNxYgBqb2IAY29yZV9sb2FkaW1hZ2VfcHNsaWIARmViAG9kYgBpbml0X3NwbGluZXNfYmIAYmV6aWVyX2JiAHByb3RlaW5zdGFiAHJuYXN0YWIAL3N2Zy9vbGl2ZWRyYWIAXGIAcndhAC9zdmcvYXF1YQBpb3RhAElvdGEAL3N2Zy9kYXJrbWFnZW50YQAvc3ZnL21hZ2VudGEAZGVsdGEARGVsdGEAemV0YQB0aGV0YQBUaGV0YQBiZXRhAFpldGEAQmV0YQBwcmV2ICE9IG9iai0+ZGF0YQBtYWtlR3JhcGhEYXRhAEV0YQBuaW1idXNzYW5zYQBwYXJhAGthcHBhAEthcHBhAC9zdmcvc2llbm5hAFZlcmRhbmEAZ2FtbWEAR2FtbWEAc2lnbWEAU2lnbWEAY29uc29sYQBuYWJsYQAvc3ZnL2Z1Y2hzaWEAR2VvcmdpYQBhbHBoYQBBbHBoYQBvbWVnYQBPbWVnYQBhcmVhAGxhbWJkYQBMYW1iZGEAaGVsdmV0aWNhAEhlbHZldGljYQBtaWNhAD48YQBgAF90ZHJhd18AX3RsZHJhd18AX2hsZHJhd18AX2xkcmF3XwBfaGRyYXdfAF9kcmF3XwBhZ3hzZXRfAGRvdF9zcGxpbmVzXwAlc18AcGFnZSVkLCVkXwBfY2NfACBpZD0iYV8AXgBuX2VkZ2VzID09IGdyYXBoLT5zb3VyY2VzW2dyYXBoLT5uXQBqZFttYXNrW2pjW2tdXV0gPT0gamNba10AamNbbWFza1tqYltrXV1dID09IGpiW2tdAGphW21hc2tbamFbal1dXSA9PSBqYVtqXQBxLT5xdHNbaWldACFydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0udGFrZW5baV0Aci5ib3VuZGFyeVtpXSA8PSByLmJvdW5kYXJ5W05VTURJTVMgKyBpXQBbJS4wM2YsJS4wM2ZdAFtpbnRlcm5hbCBoYXJkLWNvZGVkXQBucC0+Y2VsbHNbMV0AbnAtPmNlbGxzWzBdAHVzLT5uYW1lWzBdAGNwLT5zcmNbMF0AWy4uXQBcXAAicG9pbnRzIjogWwAic3RvcHMiOiBbAAlbAFoAY29tcHV0ZVNjYWxlWFkAeTw9WQAlYSAlYiAlZCAlSDolTTolUyAlWQBQT1NJWAB5ID49IElOVF9NSU4gJiYgeSA8PSBJTlRfTUFYAHggPj0gSU5UX01JTiAmJiB4IDw9IElOVF9NQVgAdyA+PSAwICYmIHcgPD0gSU5UX01BWABlX2NudCA8PSBJTlRfTUFYAHBhaXIucmlnaHQgPD0gSU5UX01BWABwYWlyLmxlZnQgPD0gSU5UX01BWAB0YXJnZXQgPD0gSU5UX01BWABuc2VncyA8PSBJTlRfTUFYAG5fZWRnZXMgPD0gSU5UX01BWABzdHAubnZlcnRpY2VzIDw9IElOVF9NQVgAb2JzW3BvbHlfaV0tPnBuIDw9IElOVF9NQVgAaW5wdXRfcm91dGUucG4gPD0gSU5UX01BWABncmFwaC0+biA8PSBJTlRfTUFYAGggPj0gMCAmJiBoIDw9IElOVF9NQVgAZV9jbnQgLSAxIDw9IElOVF9NQVgAY2xpc3Rfc2l6ZSgmbGlzdCkgLSAxIDw9IElOVF9NQVgAbGF5ZXJfbmFtZXNfc2l6ZSgmbGF5ZXJJRHMpIC0gMSA8PSBJTlRfTUFYAHN0cmxlbihhcmdzKSA8PSBJTlRfTUFYAHNub2Rlc19zaXplKCZjcF9zaWRlcykgPD0gSU5UX01BWABvYmpsaXN0X3NpemUoJm9iamwpIDw9IElOVF9NQVgAZWRnZV9saXN0X3NpemUoJmN0eC0+VHJlZV9lZGdlKSA8PSBJTlRfTUFYAG5vZGVfc2V0X3NpemUoZy0+bl9pZCkgPD0gSU5UX01BWABpIDwgSU5UX01BWAByZXN1bHQgPD0gKGludClVQ0hBUl9NQVgAc3N6IDw9IFVDSEFSX01BWABjb2wgPj0gMCAmJiBjb2wgPD0gVUlOVDE2X01BWAB4PD1YAFcAVgBVAFxUAFRFWFQAU1RSRVNTX01BSk9SSVpBVElPTl9QT1dFUl9ESVNUAFNUUkVTU19NQUpPUklaQVRJT05fR1JBUEhfRElTVABTVFJFU1NfTUFKT1JJWkFUSU9OX0FWR19ESVNUAEZBU1QARk9OVABiID09IEJfUklHSFQASEVJR0hUAEJfTEVGVABfJWxsdV9TVVNQRUNUAEJUAFRyZWJ1Y2hldCBNUwBJTlZJUwAlSDolTTolUwBWUgBUUgBBLT5mb3JtYXQgPT0gQi0+Zm9ybWF0ICYmIEEtPmZvcm1hdCA9PSBGT1JNQVRfQ1NSAExSAERJUgBIUgBDRU5URVIAJSVUUkFJTEVSAEEtPnR5cGUgPT0gTUFUUklYX1RZUEVfUkVBTCB8fCBBLT50eXBlID09IE1BVFJJWF9UWVBFX0lOVEVHRVIAQ0VMTEJPUkRFUgBCUgAqUgBRAEVYUABCX1VQAFNVUABUT1AATwBtYXBOAFxOAEJfRE9XTgBUSE9STgAlJUJFR0lOAFJPV1NQQU4AQ09MU1BBTgBOQU4AUE0AQk9UVE9NAEJNAEFNACVIOiVNAFxMAHRhaWxVUkwAbGFiZWxVUkwAZWRnZVVSTABoZWFkVVJMAEhUTUwAeCE9TlVMTABFRF90b192aXJ0KG9yaWcpID09IE5VTEwARURfdG9fdmlydChlKSA9PSBOVUxMAHByZWZpeCAhPSBOVUxMAGR0ZC0+c2NhZmZJbmRleCAhPSBOVUxMAHNtLT5MdyAhPSBOVUxMAGlucHV0ICE9IE5VTEwAbGlzdCAhPSBOVUxMAHJlZmVyZW50ICE9IE5VTEwAZGljdCAhPSBOVUxMAGRpY3QtPmJ1Y2tldHMgIT0gTlVMTABhdHRyICE9IE5VTEwAbGVhZGVyICE9IE5VTEwAaXRlbSAhPSBOVUxMAGhheXN0YWNrICE9IE5VTEwAc2NyYXRjaCAhPSBOVUxMAG9ydGhvZyAhPSBOVUxMAHNlbGYgIT0gTlVMTAB2YWx1ZSAhPSBOVUxMAGZpbGVuYW1lICE9IE5VTEwAam9iLT5vdXRwdXRfZmlsZSAhPSBOVUxMAG1vZGUgIT0gTlVMTABzb3VyY2UgIT0gTlVMTAB4ZCAhPSBOVUxMAHNtLT5Md2QgIT0gTlVMTABqb2IgIT0gTlVMTABzb3VyY2UuZGF0YSAhPSBOVUxMAGIuZGF0YSAhPSBOVUxMAGEuZGF0YSAhPSBOVUxMAGxpc3QgJiYgbGlzdFswXSAhPSBOVUxMAEFGICE9IE5VTEwAc20tPkQgIT0gTlVMTABFRF90b192aXJ0KG9yaWcpICE9IE5VTEwATENfQUxMAEJMAGJlc3Rjb3N0IDwgSFVHRV9WQUwATk9STUFMAFJBRElBTABBLT50eXBlID09IE1BVFJJWF9UWVBFX1JFQUwAVVJXIENoYW5jZXJ5IEwAVVJXIEJvb2ttYW4gTABDZW50dXJ5IFNjaG9vbGJvb2sgTABVUlcgR290aGljIEwAS0sASgBpIDwgTUFYX0kAUC0+ZW5kLnRoZXRhIDwgMiAqIE1fUEkAQVNDSUkAXEgARVRIAFdJRFRIAERPVEZPTlRQQVRIAEdERk9OVFBBVEgAbWtOQ29uc3RyYWludEcAXEcARVhQQVRfRU5USVRZX0RFQlVHAEVYUEFUX0VOVFJPUFlfREVCVUcARVhQQVRfQUNDT1VOVElOR19ERUJVRwBSTkcAU1BSSU5HAENFTExQQURESU5HAENFTExTUEFDSU5HAExBTkcASU1HAFx4RgAlJUVPRgBJTkYAXHhGRgBSSUZGAGRlbHRhIDw9IDB4RkZGRgBceEVGAFx4REYAXHhDRgBceEJGAFx4QUYAXHg5RgBceDhGAFx4N0YAXHgxRgBceEUAXEUAUE9JTlQtU0laRQBUUlVFAENMT1NFAEZBTFNFAGtleSAhPSBUT01CU1RPTkUAciAhPSBUT01CU1RPTkUAa2luZCA9PSBMVF9OT05FAEdSQURJRU5UQU5HTEUAVFJJQU5HTEUATUlERExFAElOVklTSUJMRQBUQUJMRQBBR1RZUEUob2JqKSA9PSBBR0lORURHRSB8fCBBR1RZUEUob2JqKSA9PSBBR09VVEVER0UAXHhGRQBceEVFAFx4REUAQl9OT0RFAFx4Q0UAXHhCRQBceEFFAFx4OUUAXHg4RQBceDFFAFREAEEtPmZvcm1hdCA9PSBGT1JNQVRfQ09PUkQAbiAmJiBpID49IDAgJiYgaSA8IE5PREVDQVJEACUlRU5EAEhZQlJJRABTT0xJRABceEZEAFx4RUQARE9UVEVEAERBU0hFRABST1VOREVEAFx4REQAXHhDRABceEJEAFx4QUQAXHg5RABceDhEAFx4MUQAXHhDAGRlbGV0ZVZQU0MAXHhGQwBceEVDAFx4REMAXHhDQwBceEJDAFx4QUMAXHg5QwBceDhDAFx4MUMAXHhCAFNVQgBceEZCAFx4RUIAXHhEQgBceENCAFx4QkIAXHhBQgBceDlCAFx4OEIAXHgxQgBBICYmIEIAXHhGQQBceEVBAFx4REEAXHhDQQBceEJBAFx4QUEAXHg5QQBceDhBAFx4MUEAQAA/ADwlcz4APG5pbD4APC90c3Bhbj48L3RleHRQYXRoPgAKICAgIDwlOS4zZiwgJTkuM2YsICU5LjNmPgA+Cjx0aXRsZT4APEZPTlQ+ADxCUj4APEhUTUw+ADwvSFRNTD4APElNRz4AU3ludGF4IGVycm9yOiBub24tc3BhY2Ugc3RyaW5nIHVzZWQgYmVmb3JlIDxUQUJMRT4AU3ludGF4IGVycm9yOiBub24tc3BhY2Ugc3RyaW5nIHVzZWQgYWZ0ZXIgPC9UQUJMRT4APFREPgAtPgAiPgAJW2tleT0APD0APAAmI3gleDsAJnF1b3Q7ACZsdDsAJmd0OwAmYW1wOwAjJWQ7ACYjMzk7ACYjNDU7ACYjOTM7ACYjMTM7ACYjMTYwOwAmIzEwOwA7c3RvcC1vcGFjaXR5OgAlJUJvdW5kaW5nQm94OgBjYWxjdWxhdGluZyBzaG9ydGVzdCBwYXRocyBhbmQgc2V0dGluZyB1cCBzdHJlc3MgdGVybXM6ADxzdG9wIG9mZnNldD0iJS4wM2YiIHN0eWxlPSJzdG9wLWNvbG9yOgA8c3RvcCBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOgA8c3RvcCBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOgBzb2x2aW5nIG1vZGVsOgAvXDoAZ3JleTkAZ3JheTkAXHhGOQBceEU5AFx4RDkAXHhDOQBceEI5AFx4QTkAZ3JleTk5AGdyYXk5OQBceDk5AGdyZXk4OQBncmF5ODkAXHg4OQAwMTIzNDU2Nzg5AGdyZXk3OQBncmF5NzkAZ3JleTY5AGdyYXk2OQBncmV5NTkAZ3JheTU5AGdyZXk0OQBncmF5NDkAZ3JleTM5AGdyYXkzOQBncmV5MjkAZ3JheTI5AGdyZXkxOQBncmF5MTkAXHgxOQAvcmRneTkvOQAvYnVwdTkvOQAvcmRwdTkvOQAvcHVidTkvOQAveWxnbmJ1OS85AC9nbmJ1OS85AC9yZHlsYnU5LzkAL3JkYnU5LzkAL2dyZXlzOS85AC9ncmVlbnM5LzkAL2JsdWVzOS85AC9wdXJwbGVzOS85AC9vcmFuZ2VzOS85AC9yZWRzOS85AC9wdW9yOS85AC95bG9yYnI5LzkAL3B1YnVnbjkvOQAvYnVnbjkvOQAvcHJnbjkvOQAvcmR5bGduOS85AC95bGduOS85AC9zcGVjdHJhbDkvOQAvcGl5ZzkvOQAvYnJiZzkvOQAvcHVyZDkvOQAveWxvcnJkOS85AC9vcnJkOS85AC9wYWlyZWQ5LzkAL3NldDM5LzkAL3NldDE5LzkAL3Bhc3RlbDE5LzkAL3BhaXJlZDEyLzkAL3NldDMxMi85AC9yZGd5MTEvOQAvcmR5bGJ1MTEvOQAvcmRidTExLzkAL3B1b3IxMS85AC9wcmduMTEvOQAvcmR5bGduMTEvOQAvc3BlY3RyYWwxMS85AC9waXlnMTEvOQAvYnJiZzExLzkAL3BhaXJlZDExLzkAL3NldDMxMS85AC9yZGd5MTAvOQAvcmR5bGJ1MTAvOQAvcmRidTEwLzkAL3B1b3IxMC85AC9wcmduMTAvOQAvcmR5bGduMTAvOQAvc3BlY3RyYWwxMC85AC9waXlnMTAvOQAvYnJiZzEwLzkAL3BhaXJlZDEwLzkAL3NldDMxMC85AGdyZXk4AGdyYXk4AFx4OAB1dGY4ACNmOGY4ZjgAI2U4ZThlOABceEY4AEdJRjgAXHhFOABceEQ4AFx4QzgAXHhCOABceEE4AGdyZXk5OABncmF5OTgAXHg5OABncmV5ODgAZ3JheTg4AFx4ODgAZ3JleTc4AGdyYXk3OABncmV5NjgAZ3JheTY4AGdyZXk1OABncmF5NTgAZ3JleTQ4AGdyYXk0OABncmV5MzgAZ3JheTM4AGdyZXkyOABncmF5MjgAZ3JleTE4AGdyYXkxOABceDE4AC9yZGd5OS84AC9idXB1OS84AC9yZHB1OS84AC9wdWJ1OS84AC95bGduYnU5LzgAL2duYnU5LzgAL3JkeWxidTkvOAAvcmRidTkvOAAvZ3JleXM5LzgAL2dyZWVuczkvOAAvYmx1ZXM5LzgAL3B1cnBsZXM5LzgAL29yYW5nZXM5LzgAL3JlZHM5LzgAL3B1b3I5LzgAL3lsb3JicjkvOAAvcHVidWduOS84AC9idWduOS84AC9wcmduOS84AC9yZHlsZ245LzgAL3lsZ245LzgAL3NwZWN0cmFsOS84AC9waXlnOS84AC9icmJnOS84AC9wdXJkOS84AC95bG9ycmQ5LzgAL29ycmQ5LzgAL3BhaXJlZDkvOAAvc2V0MzkvOAAvc2V0MTkvOAAvcGFzdGVsMTkvOAAvcmRneTgvOAAvYnVwdTgvOAAvcmRwdTgvOAAvcHVidTgvOAAveWxnbmJ1OC84AC9nbmJ1OC84AC9yZHlsYnU4LzgAL3JkYnU4LzgAL2FjY2VudDgvOAAvZ3JleXM4LzgAL2dyZWVuczgvOAAvYmx1ZXM4LzgAL3B1cnBsZXM4LzgAL29yYW5nZXM4LzgAL3JlZHM4LzgAL3B1b3I4LzgAL3lsb3JicjgvOAAvcHVidWduOC84AC9idWduOC84AC9wcmduOC84AC9yZHlsZ244LzgAL3lsZ244LzgAL3NwZWN0cmFsOC84AC9waXlnOC84AC9icmJnOC84AC9wdXJkOC84AC95bG9ycmQ4LzgAL29ycmQ4LzgAL3BhaXJlZDgvOAAvc2V0MzgvOAAvc2V0MjgvOAAvcGFzdGVsMjgvOAAvZGFyazI4LzgAL3NldDE4LzgAL3Bhc3RlbDE4LzgAL3BhaXJlZDEyLzgAL3NldDMxMi84AC9yZGd5MTEvOAAvcmR5bGJ1MTEvOAAvcmRidTExLzgAL3B1b3IxMS84AC9wcmduMTEvOAAvcmR5bGduMTEvOAAvc3BlY3RyYWwxMS84AC9waXlnMTEvOAAvYnJiZzExLzgAL3BhaXJlZDExLzgAL3NldDMxMS84AC9yZGd5MTAvOAAvcmR5bGJ1MTAvOAAvcmRidTEwLzgAL3B1b3IxMC84AC9wcmduMTAvOAAvcmR5bGduMTAvOAAvc3BlY3RyYWwxMC84AC9waXlnMTAvOAAvYnJiZzEwLzgAL3BhaXJlZDEwLzgAL3NldDMxMC84AHV0Zi04AEMuVVRGLTgAZ3JleTcAZ3JheTcAXHg3AFx4RjcAXHhFNwBceEQ3AFx4QzcAXHhCNwBceEE3AGdyZXk5NwBncmF5OTcAXHg5NwBncmV5ODcAZ3JheTg3AFx4ODcAZ3JleTc3AGdyYXk3NwBncmV5NjcAZ3JheTY3AGdyZXk1NwBncmF5NTcAZ3JleTQ3AGdyYXk0NwBncmV5MzcAZ3JheTM3AGdyZXkyNwBncmF5MjcAZ3JleTE3AGdyYXkxNwBceDE3AC9yZGd5OS83AC9idXB1OS83AC9yZHB1OS83AC9wdWJ1OS83AC95bGduYnU5LzcAL2duYnU5LzcAL3JkeWxidTkvNwAvcmRidTkvNwAvZ3JleXM5LzcAL2dyZWVuczkvNwAvYmx1ZXM5LzcAL3B1cnBsZXM5LzcAL29yYW5nZXM5LzcAL3JlZHM5LzcAL3B1b3I5LzcAL3lsb3JicjkvNwAvcHVidWduOS83AC9idWduOS83AC9wcmduOS83AC9yZHlsZ245LzcAL3lsZ245LzcAL3NwZWN0cmFsOS83AC9waXlnOS83AC9icmJnOS83AC9wdXJkOS83AC95bG9ycmQ5LzcAL29ycmQ5LzcAL3BhaXJlZDkvNwAvc2V0MzkvNwAvc2V0MTkvNwAvcGFzdGVsMTkvNwAvcmRneTgvNwAvYnVwdTgvNwAvcmRwdTgvNwAvcHVidTgvNwAveWxnbmJ1OC83AC9nbmJ1OC83AC9yZHlsYnU4LzcAL3JkYnU4LzcAL2FjY2VudDgvNwAvZ3JleXM4LzcAL2dyZWVuczgvNwAvYmx1ZXM4LzcAL3B1cnBsZXM4LzcAL29yYW5nZXM4LzcAL3JlZHM4LzcAL3B1b3I4LzcAL3lsb3JicjgvNwAvcHVidWduOC83AC9idWduOC83AC9wcmduOC83AC9yZHlsZ244LzcAL3lsZ244LzcAL3NwZWN0cmFsOC83AC9waXlnOC83AC9icmJnOC83AC9wdXJkOC83AC95bG9ycmQ4LzcAL29ycmQ4LzcAL3BhaXJlZDgvNwAvc2V0MzgvNwAvc2V0MjgvNwAvcGFzdGVsMjgvNwAvZGFyazI4LzcAL3NldDE4LzcAL3Bhc3RlbDE4LzcAL3JkZ3k3LzcAL2J1cHU3LzcAL3JkcHU3LzcAL3B1YnU3LzcAL3lsZ25idTcvNwAvZ25idTcvNwAvcmR5bGJ1Ny83AC9yZGJ1Ny83AC9hY2NlbnQ3LzcAL2dyZXlzNy83AC9ncmVlbnM3LzcAL2JsdWVzNy83AC9wdXJwbGVzNy83AC9vcmFuZ2VzNy83AC9yZWRzNy83AC9wdW9yNy83AC95bG9yYnI3LzcAL3B1YnVnbjcvNwAvYnVnbjcvNwAvcHJnbjcvNwAvcmR5bGduNy83AC95bGduNy83AC9zcGVjdHJhbDcvNwAvcGl5ZzcvNwAvYnJiZzcvNwAvcHVyZDcvNwAveWxvcnJkNy83AC9vcnJkNy83AC9wYWlyZWQ3LzcAL3NldDM3LzcAL3NldDI3LzcAL3Bhc3RlbDI3LzcAL2RhcmsyNy83AC9zZXQxNy83AC9wYXN0ZWwxNy83AC9wYWlyZWQxMi83AC9zZXQzMTIvNwAvcmRneTExLzcAL3JkeWxidTExLzcAL3JkYnUxMS83AC9wdW9yMTEvNwAvcHJnbjExLzcAL3JkeWxnbjExLzcAL3NwZWN0cmFsMTEvNwAvcGl5ZzExLzcAL2JyYmcxMS83AC9wYWlyZWQxMS83AC9zZXQzMTEvNwAvcmRneTEwLzcAL3JkeWxidTEwLzcAL3JkYnUxMC83AC9wdW9yMTAvNwAvcHJnbjEwLzcAL3JkeWxnbjEwLzcAL3NwZWN0cmFsMTAvNwAvcGl5ZzEwLzcAL2JyYmcxMC83AC9wYWlyZWQxMC83AC9zZXQzMTAvNwAxLjcAZ3JleTYAZ3JheTYAXHg2AFx4RjYAXHhFNgBceEQ2AFx4QzYAXHhCNgBceEE2AGdyZXk5NgBncmF5OTYAXHg5NgBncmV5ODYAZ3JheTg2AFx4ODYAZ3JleTc2AGdyYXk3NgBncmV5NjYAZ3JheTY2AGdyZXk1NgBncmF5NTYAZ3JleTQ2AGdyYXk0NgBncmV5MzYAZ3JheTM2AGdyZXkyNgBncmF5MjYAZ3JleTE2AGdyYXkxNgBceDE2AC9yZGd5OS82AC9idXB1OS82AC9yZHB1OS82AC9wdWJ1OS82AC95bGduYnU5LzYAL2duYnU5LzYAL3JkeWxidTkvNgAvcmRidTkvNgAvZ3JleXM5LzYAL2dyZWVuczkvNgAvYmx1ZXM5LzYAL3B1cnBsZXM5LzYAL29yYW5nZXM5LzYAL3JlZHM5LzYAL3B1b3I5LzYAL3lsb3JicjkvNgAvcHVidWduOS82AC9idWduOS82AC9wcmduOS82AC9yZHlsZ245LzYAL3lsZ245LzYAL3NwZWN0cmFsOS82AC9waXlnOS82AC9icmJnOS82AC9wdXJkOS82AC95bG9ycmQ5LzYAL29ycmQ5LzYAL3BhaXJlZDkvNgAvc2V0MzkvNgAvc2V0MTkvNgAvcGFzdGVsMTkvNgAvcmRneTgvNgAvYnVwdTgvNgAvcmRwdTgvNgAvcHVidTgvNgAveWxnbmJ1OC82AC9nbmJ1OC82AC9yZHlsYnU4LzYAL3JkYnU4LzYAL2FjY2VudDgvNgAvZ3JleXM4LzYAL2dyZWVuczgvNgAvYmx1ZXM4LzYAL3B1cnBsZXM4LzYAL29yYW5nZXM4LzYAL3JlZHM4LzYAL3B1b3I4LzYAL3lsb3JicjgvNgAvcHVidWduOC82AC9idWduOC82AC9wcmduOC82AC9yZHlsZ244LzYAL3lsZ244LzYAL3NwZWN0cmFsOC82AC9waXlnOC82AC9icmJnOC82AC9wdXJkOC82AC95bG9ycmQ4LzYAL29ycmQ4LzYAL3BhaXJlZDgvNgAvc2V0MzgvNgAvc2V0MjgvNgAvcGFzdGVsMjgvNgAvZGFyazI4LzYAL3NldDE4LzYAL3Bhc3RlbDE4LzYAL3JkZ3k3LzYAL2J1cHU3LzYAL3JkcHU3LzYAL3B1YnU3LzYAL3lsZ25idTcvNgAvZ25idTcvNgAvcmR5bGJ1Ny82AC9yZGJ1Ny82AC9hY2NlbnQ3LzYAL2dyZXlzNy82AC9ncmVlbnM3LzYAL2JsdWVzNy82AC9wdXJwbGVzNy82AC9vcmFuZ2VzNy82AC9yZWRzNy82AC9wdW9yNy82AC95bG9yYnI3LzYAL3B1YnVnbjcvNgAvYnVnbjcvNgAvcHJnbjcvNgAvcmR5bGduNy82AC95bGduNy82AC9zcGVjdHJhbDcvNgAvcGl5ZzcvNgAvYnJiZzcvNgAvcHVyZDcvNgAveWxvcnJkNy82AC9vcnJkNy82AC9wYWlyZWQ3LzYAL3NldDM3LzYAL3NldDI3LzYAL3Bhc3RlbDI3LzYAL2RhcmsyNy82AC9zZXQxNy82AC9wYXN0ZWwxNy82AC9yZGd5Ni82AC9idXB1Ni82AC9yZHB1Ni82AC9wdWJ1Ni82AC95bGduYnU2LzYAL2duYnU2LzYAL3JkeWxidTYvNgAvcmRidTYvNgAvYWNjZW50Ni82AC9ncmV5czYvNgAvZ3JlZW5zNi82AC9ibHVlczYvNgAvcHVycGxlczYvNgAvb3JhbmdlczYvNgAvcmVkczYvNgAvcHVvcjYvNgAveWxvcmJyNi82AC9wdWJ1Z242LzYAL2J1Z242LzYAL3ByZ242LzYAL3JkeWxnbjYvNgAveWxnbjYvNgAvc3BlY3RyYWw2LzYAL3BpeWc2LzYAL2JyYmc2LzYAL3B1cmQ2LzYAL3lsb3JyZDYvNgAvb3JyZDYvNgAvcGFpcmVkNi82AC9zZXQzNi82AC9zZXQyNi82AC9wYXN0ZWwyNi82AC9kYXJrMjYvNgAvc2V0MTYvNgAvcGFzdGVsMTYvNgAvcGFpcmVkMTIvNgAvc2V0MzEyLzYAL3JkZ3kxMS82AC9yZHlsYnUxMS82AC9yZGJ1MTEvNgAvcHVvcjExLzYAL3ByZ24xMS82AC9yZHlsZ24xMS82AC9zcGVjdHJhbDExLzYAL3BpeWcxMS82AC9icmJnMTEvNgAvcGFpcmVkMTEvNgAvc2V0MzExLzYAL3JkZ3kxMC82AC9yZHlsYnUxMC82AC9yZGJ1MTAvNgAvcHVvcjEwLzYAL3ByZ24xMC82AC9yZHlsZ24xMC82AC9zcGVjdHJhbDEwLzYAL3BpeWcxMC82AC9icmJnMTAvNgAvcGFpcmVkMTAvNgAvc2V0MzEwLzYAZ3JleTUAZ3JheTUAXHg1AGJpZzUAXHhGNQBceEU1AFx4RDUAXHhDNQBceEI1AFx4QTUAZ3JleTk1AGdyYXk5NQBceDk1AGdyZXk4NQBncmF5ODUAXHg4NQBncmV5NzUAZ3JheTc1AGdyZXk2NQBncmF5NjUAZ3JleTU1AGdyYXk1NQAyMDI1MDcwMS4wOTU1AGdyZXk0NQBncmF5NDUAZ3JleTM1AGdyYXkzNQBncmV5MjUAZ3JheTI1AGdyZXkxNQBncmF5MTUAXHgxNQBncmF5MDUAL3JkZ3k5LzUAL2J1cHU5LzUAL3JkcHU5LzUAL3B1YnU5LzUAL3lsZ25idTkvNQAvZ25idTkvNQAvcmR5bGJ1OS81AC9yZGJ1OS81AC9ncmV5czkvNQAvZ3JlZW5zOS81AC9ibHVlczkvNQAvcHVycGxlczkvNQAvb3JhbmdlczkvNQAvcmVkczkvNQAvcHVvcjkvNQAveWxvcmJyOS81AC9wdWJ1Z245LzUAL2J1Z245LzUAL3ByZ245LzUAL3JkeWxnbjkvNQAveWxnbjkvNQAvc3BlY3RyYWw5LzUAL3BpeWc5LzUAL2JyYmc5LzUAL3B1cmQ5LzUAL3lsb3JyZDkvNQAvb3JyZDkvNQAvcGFpcmVkOS81AC9zZXQzOS81AC9zZXQxOS81AC9wYXN0ZWwxOS81AC9yZGd5OC81AC9idXB1OC81AC9yZHB1OC81AC9wdWJ1OC81AC95bGduYnU4LzUAL2duYnU4LzUAL3JkeWxidTgvNQAvcmRidTgvNQAvYWNjZW50OC81AC9ncmV5czgvNQAvZ3JlZW5zOC81AC9ibHVlczgvNQAvcHVycGxlczgvNQAvb3JhbmdlczgvNQAvcmVkczgvNQAvcHVvcjgvNQAveWxvcmJyOC81AC9wdWJ1Z244LzUAL2J1Z244LzUAL3ByZ244LzUAL3JkeWxnbjgvNQAveWxnbjgvNQAvc3BlY3RyYWw4LzUAL3BpeWc4LzUAL2JyYmc4LzUAL3B1cmQ4LzUAL3lsb3JyZDgvNQAvb3JyZDgvNQAvcGFpcmVkOC81AC9zZXQzOC81AC9zZXQyOC81AC9wYXN0ZWwyOC81AC9kYXJrMjgvNQAvc2V0MTgvNQAvcGFzdGVsMTgvNQAvcmRneTcvNQAvYnVwdTcvNQAvcmRwdTcvNQAvcHVidTcvNQAveWxnbmJ1Ny81AC9nbmJ1Ny81AC9yZHlsYnU3LzUAL3JkYnU3LzUAL2FjY2VudDcvNQAvZ3JleXM3LzUAL2dyZWVuczcvNQAvYmx1ZXM3LzUAL3B1cnBsZXM3LzUAL29yYW5nZXM3LzUAL3JlZHM3LzUAL3B1b3I3LzUAL3lsb3JicjcvNQAvcHVidWduNy81AC9idWduNy81AC9wcmduNy81AC9yZHlsZ243LzUAL3lsZ243LzUAL3NwZWN0cmFsNy81AC9waXlnNy81AC9icmJnNy81AC9wdXJkNy81AC95bG9ycmQ3LzUAL29ycmQ3LzUAL3BhaXJlZDcvNQAvc2V0MzcvNQAvc2V0MjcvNQAvcGFzdGVsMjcvNQAvZGFyazI3LzUAL3NldDE3LzUAL3Bhc3RlbDE3LzUAL3JkZ3k2LzUAL2J1cHU2LzUAL3JkcHU2LzUAL3B1YnU2LzUAL3lsZ25idTYvNQAvZ25idTYvNQAvcmR5bGJ1Ni81AC9yZGJ1Ni81AC9hY2NlbnQ2LzUAL2dyZXlzNi81AC9ncmVlbnM2LzUAL2JsdWVzNi81AC9wdXJwbGVzNi81AC9vcmFuZ2VzNi81AC9yZWRzNi81AC9wdW9yNi81AC95bG9yYnI2LzUAL3B1YnVnbjYvNQAvYnVnbjYvNQAvcHJnbjYvNQAvcmR5bGduNi81AC95bGduNi81AC9zcGVjdHJhbDYvNQAvcGl5ZzYvNQAvYnJiZzYvNQAvcHVyZDYvNQAveWxvcnJkNi81AC9vcnJkNi81AC9wYWlyZWQ2LzUAL3NldDM2LzUAL3NldDI2LzUAL3Bhc3RlbDI2LzUAL2RhcmsyNi81AC9zZXQxNi81AC9wYXN0ZWwxNi81AC9yZGd5NS81AC9idXB1NS81AC9yZHB1NS81AC9wdWJ1NS81AC95bGduYnU1LzUAL2duYnU1LzUAL3JkeWxidTUvNQAvcmRidTUvNQAvYWNjZW50NS81AC9ncmV5czUvNQAvZ3JlZW5zNS81AC9ibHVlczUvNQAvcHVycGxlczUvNQAvb3JhbmdlczUvNQAvcmVkczUvNQAvcHVvcjUvNQAveWxvcmJyNS81AC9wdWJ1Z241LzUAL2J1Z241LzUAL3ByZ241LzUAL3JkeWxnbjUvNQAveWxnbjUvNQAvc3BlY3RyYWw1LzUAL3BpeWc1LzUAL2JyYmc1LzUAL3B1cmQ1LzUAL3lsb3JyZDUvNQAvb3JyZDUvNQAvcGFpcmVkNS81AC9zZXQzNS81AC9zZXQyNS81AC9wYXN0ZWwyNS81AC9kYXJrMjUvNQAvc2V0MTUvNQAvcGFzdGVsMTUvNQAvcGFpcmVkMTIvNQAvc2V0MzEyLzUAL3JkZ3kxMS81AC9yZHlsYnUxMS81AC9yZGJ1MTEvNQAvcHVvcjExLzUAL3ByZ24xMS81AC9yZHlsZ24xMS81AC9zcGVjdHJhbDExLzUAL3BpeWcxMS81AC9icmJnMTEvNQAvcGFpcmVkMTEvNQAvc2V0MzExLzUAL3JkZ3kxMC81AC9yZHlsYnUxMC81AC9yZGJ1MTAvNQAvcHVvcjEwLzUAL3ByZ24xMC81AC9yZHlsZ24xMC81AC9zcGVjdHJhbDEwLzUAL3BpeWcxMC81AC9icmJnMTAvNQAvcGFpcmVkMTAvNQAvc2V0MzEwLzUAYmlnLTUAQklHLTUAIC1kYXNoIDUAaXZvcnk0AGdyZXk0AGRhcmtzbGF0ZWdyYXk0AFx4NABzbm93NABsaWdodHllbGxvdzQAaG9uZXlkZXc0AHdoZWF0NAB0b21hdG80AHJvc3licm93bjQAbWFyb29uNABsaWdodHNhbG1vbjQAbGVtb25jaGlmZm9uNABzcHJpbmdncmVlbjQAZGFya29saXZlZ3JlZW40AHBhbGVncmVlbjQAZGFya3NlYWdyZWVuNABsaWdodGN5YW40AHRhbjQAcGx1bTQAc2Vhc2hlbGw0AGNvcmFsNABob3RwaW5rNABsaWdodHBpbms0AGRlZXBwaW5rNABjb3Juc2lsazQAZmlyZWJyaWNrNABraGFraTQAbGF2ZW5kZXJibHVzaDQAcGVhY2hwdWZmNABiaXNxdWU0AGxpZ2h0c2t5Ymx1ZTQAZGVlcHNreWJsdWU0AGxpZ2h0Ymx1ZTQAY2FkZXRibHVlNABkb2RnZXJibHVlNABsaWdodHN0ZWVsYmx1ZTQAcm95YWxibHVlNABzbGF0ZWJsdWU0AG5hdmFqb3doaXRlNABhbnRpcXVld2hpdGU0AGNob2NvbGF0ZTQAY2hhcnRyZXVzZTQAbWlzdHlyb3NlNABwYWxldHVycXVvaXNlNABhenVyZTQAdGhlcmU0AGFxdWFtYXJpbmU0AHRoaXN0bGU0AG1lZGl1bXB1cnBsZTQAZGFya29yYW5nZTQAbGlnaHRnb2xkZW5yb2Q0AGRhcmtnb2xkZW5yb2Q0AGJ1cmx5d29vZDQAZ29sZDQAbWVkaXVtb3JjaGlkNABkYXJrb3JjaGlkNABwYWxldmlvbGV0cmVkNABpbmRpYW5yZWQ0AG9yYW5nZXJlZDQAb2xpdmVkcmFiNABtYWdlbnRhNABzaWVubmE0AFx4RjQAXHhFNABceEQ0AFx4QzQAXHhCNABceEE0AGdyZXk5NABncmF5OTQAXHg5NABncmV5ODQAZ3JheTg0AFx4ODQAZ3JleTc0AGdyYXk3NABncmV5NjQAZ3JheTY0AGdyZXk1NABncmF5NTQAZ3JleTQ0AGdyYXk0NABncmV5MzQAZ3JheTM0AGZyYWMzNABncmV5MjQAZ3JheTI0AGdyZXkxNABncmF5MTQAXHgxNABmcmFjMTQAL3JkZ3k5LzQAL2J1cHU5LzQAL3JkcHU5LzQAL3B1YnU5LzQAL3lsZ25idTkvNAAvZ25idTkvNAAvcmR5bGJ1OS80AC9yZGJ1OS80AC9ncmV5czkvNAAvZ3JlZW5zOS80AC9ibHVlczkvNAAvcHVycGxlczkvNAAvb3JhbmdlczkvNAAvcmVkczkvNAAvcHVvcjkvNAAveWxvcmJyOS80AC9wdWJ1Z245LzQAL2J1Z245LzQAL3ByZ245LzQAL3JkeWxnbjkvNAAveWxnbjkvNAAvc3BlY3RyYWw5LzQAL3BpeWc5LzQAL2JyYmc5LzQAL3B1cmQ5LzQAL3lsb3JyZDkvNAAvb3JyZDkvNAAvcGFpcmVkOS80AC9zZXQzOS80AC9zZXQxOS80AC9wYXN0ZWwxOS80AC9yZGd5OC80AC9idXB1OC80AC9yZHB1OC80AC9wdWJ1OC80AC95bGduYnU4LzQAL2duYnU4LzQAL3JkeWxidTgvNAAvcmRidTgvNAAvYWNjZW50OC80AC9ncmV5czgvNAAvZ3JlZW5zOC80AC9ibHVlczgvNAAvcHVycGxlczgvNAAvb3JhbmdlczgvNAAvcmVkczgvNAAvcHVvcjgvNAAveWxvcmJyOC80AC9wdWJ1Z244LzQAL2J1Z244LzQAL3ByZ244LzQAL3JkeWxnbjgvNAAveWxnbjgvNAAvc3BlY3RyYWw4LzQAL3BpeWc4LzQAL2JyYmc4LzQAL3B1cmQ4LzQAL3lsb3JyZDgvNAAvb3JyZDgvNAAvcGFpcmVkOC80AC9zZXQzOC80AC9zZXQyOC80AC9wYXN0ZWwyOC80AC9kYXJrMjgvNAAvc2V0MTgvNAAvcGFzdGVsMTgvNAAvcmRneTcvNAAvYnVwdTcvNAAvcmRwdTcvNAAvcHVidTcvNAAveWxnbmJ1Ny80AC9nbmJ1Ny80AC9yZHlsYnU3LzQAL3JkYnU3LzQAL2FjY2VudDcvNAAvZ3JleXM3LzQAL2dyZWVuczcvNAAvYmx1ZXM3LzQAL3B1cnBsZXM3LzQAL29yYW5nZXM3LzQAL3JlZHM3LzQAL3B1b3I3LzQAL3lsb3JicjcvNAAvcHVidWduNy80AC9idWduNy80AC9wcmduNy80AC9yZHlsZ243LzQAL3lsZ243LzQAL3NwZWN0cmFsNy80AC9waXlnNy80AC9icmJnNy80AC9wdXJkNy80AC95bG9ycmQ3LzQAL29ycmQ3LzQAL3BhaXJlZDcvNAAvc2V0MzcvNAAvc2V0MjcvNAAvcGFzdGVsMjcvNAAvZGFyazI3LzQAL3NldDE3LzQAL3Bhc3RlbDE3LzQAL3JkZ3k2LzQAL2J1cHU2LzQAL3JkcHU2LzQAL3B1YnU2LzQAL3lsZ25idTYvNAAvZ25idTYvNAAvcmR5bGJ1Ni80AC9yZGJ1Ni80AC9hY2NlbnQ2LzQAL2dyZXlzNi80AC9ncmVlbnM2LzQAL2JsdWVzNi80AC9wdXJwbGVzNi80AC9vcmFuZ2VzNi80AC9yZWRzNi80AC9wdW9yNi80AC95bG9yYnI2LzQAL3B1YnVnbjYvNAAvYnVnbjYvNAAvcHJnbjYvNAAvcmR5bGduNi80AC95bGduNi80AC9zcGVjdHJhbDYvNAAvcGl5ZzYvNAAvYnJiZzYvNAAvcHVyZDYvNAAveWxvcnJkNi80AC9vcnJkNi80AC9wYWlyZWQ2LzQAL3NldDM2LzQAL3NldDI2LzQAL3Bhc3RlbDI2LzQAL2RhcmsyNi80AC9zZXQxNi80AC9wYXN0ZWwxNi80AC9yZGd5NS80AC9idXB1NS80AC9yZHB1NS80AC9wdWJ1NS80AC95bGduYnU1LzQAL2duYnU1LzQAL3JkeWxidTUvNAAvcmRidTUvNAAvYWNjZW50NS80AC9ncmV5czUvNAAvZ3JlZW5zNS80AC9ibHVlczUvNAAvcHVycGxlczUvNAAvb3JhbmdlczUvNAAvcmVkczUvNAAvcHVvcjUvNAAveWxvcmJyNS80AC9wdWJ1Z241LzQAL2J1Z241LzQAL3ByZ241LzQAL3JkeWxnbjUvNAAveWxnbjUvNAAvc3BlY3RyYWw1LzQAL3BpeWc1LzQAL2JyYmc1LzQAL3B1cmQ1LzQAL3lsb3JyZDUvNAAvb3JyZDUvNAAvcGFpcmVkNS80AC9zZXQzNS80AC9zZXQyNS80AC9wYXN0ZWwyNS80AC9kYXJrMjUvNAAvc2V0MTUvNAAvcGFzdGVsMTUvNAAvcmRneTQvNAAvYnVwdTQvNAAvcmRwdTQvNAAvcHVidTQvNAAveWxnbmJ1NC80AC9nbmJ1NC80AC9yZHlsYnU0LzQAL3JkYnU0LzQAL2FjY2VudDQvNAAvZ3JleXM0LzQAL2dyZWVuczQvNAAvYmx1ZXM0LzQAL3B1cnBsZXM0LzQAL29yYW5nZXM0LzQAL3JlZHM0LzQAL3B1b3I0LzQAL3lsb3JicjQvNAAvcHVidWduNC80AC9idWduNC80AC9wcmduNC80AC9yZHlsZ240LzQAL3lsZ240LzQAL3NwZWN0cmFsNC80AC9waXlnNC80AC9icmJnNC80AC9wdXJkNC80AC95bG9ycmQ0LzQAL29ycmQ0LzQAL3BhaXJlZDQvNAAvc2V0MzQvNAAvc2V0MjQvNAAvcGFzdGVsMjQvNAAvZGFyazI0LzQAL3NldDE0LzQAL3Bhc3RlbDE0LzQAL3BhaXJlZDEyLzQAL3NldDMxMi80AC9yZGd5MTEvNAAvcmR5bGJ1MTEvNAAvcmRidTExLzQAL3B1b3IxMS80AC9wcmduMTEvNAAvcmR5bGduMTEvNAAvc3BlY3RyYWwxMS80AC9waXlnMTEvNAAvYnJiZzExLzQAL3BhaXJlZDExLzQAL3NldDMxMS80AC9yZGd5MTAvNAAvcmR5bGJ1MTAvNAAvcmRidTEwLzQAL3B1b3IxMC80AC9wcmduMTAvNAAvcmR5bGduMTAvNAAvc3BlY3RyYWwxMC80AC9waXlnMTAvNAAvYnJiZzEwLzQAL3BhaXJlZDEwLzQAL3NldDMxMC80ADEuNABuID49IDQAc2lkZXMgPT0gNABpdm9yeTMAU3BhcnNlTWF0cml4X211bHRpcGx5MwBncmV5MwBkYXJrc2xhdGVncmF5MwBceDMAc25vdzMAbGlnaHR5ZWxsb3czAGhvbmV5ZGV3MwB3aGVhdDMAc3VwMwB0b21hdG8zAHJvc3licm93bjMAbWFyb29uMwBsaWdodHNhbG1vbjMAbGVtb25jaGlmZm9uMwBzcHJpbmdncmVlbjMAZGFya29saXZlZ3JlZW4zAHBhbGVncmVlbjMAZGFya3NlYWdyZWVuMwBsaWdodGN5YW4zAHRhbjMAcGx1bTMAc2Vhc2hlbGwzAGNvcmFsMwBob3RwaW5rMwBsaWdodHBpbmszAGRlZXBwaW5rMwBjb3Juc2lsazMAZmlyZWJyaWNrMwBraGFraTMAbGF2ZW5kZXJibHVzaDMAcGVhY2hwdWZmMwBiaXNxdWUzAGxpZ2h0c2t5Ymx1ZTMAZGVlcHNreWJsdWUzAGxpZ2h0Ymx1ZTMAY2FkZXRibHVlMwBkb2RnZXJibHVlMwBsaWdodHN0ZWVsYmx1ZTMAcm95YWxibHVlMwBzbGF0ZWJsdWUzAG5hdmFqb3doaXRlMwBhbnRpcXVld2hpdGUzAGNob2NvbGF0ZTMAY2hhcnRyZXVzZTMAbWlzdHlyb3NlMwBwYWxldHVycXVvaXNlMwBhenVyZTMAYXF1YW1hcmluZTMAdGhpc3RsZTMAbWVkaXVtcHVycGxlMwBkYXJrb3JhbmdlMwBsaWdodGdvbGRlbnJvZDMAZGFya2dvbGRlbnJvZDMAYnVybHl3b29kMwBnb2xkMwBtZWRpdW1vcmNoaWQzAGRhcmtvcmNoaWQzAHBhbGV2aW9sZXRyZWQzAGluZGlhbnJlZDMAb3JhbmdlcmVkMwBvbGl2ZWRyYWIzAG1hZ2VudGEzAHNpZW5uYTMAXHhGMwBceEUzAFx4RDMAXHhDMwBceEIzAFx4QTMAZ3JleTkzAGdyYXk5MwBceDkzAGdyZXk4MwBncmF5ODMAXHg4MwBncmV5NzMAZ3JheTczAGdyZXk2MwBncmF5NjMAZ3JleTUzAGdyYXk1MwBncmV5NDMAZ3JheTQzAGdyZXkzMwBncmF5MzMAZ3JleTIzAGdyYXkyMwBncmV5MTMAZ3JheTEzAFx4MTMAL3JkZ3k5LzMAL2J1cHU5LzMAL3JkcHU5LzMAL3B1YnU5LzMAL3lsZ25idTkvMwAvZ25idTkvMwAvcmR5bGJ1OS8zAC9yZGJ1OS8zAC9ncmV5czkvMwAvZ3JlZW5zOS8zAC9ibHVlczkvMwAvcHVycGxlczkvMwAvb3JhbmdlczkvMwAvcmVkczkvMwAvcHVvcjkvMwAveWxvcmJyOS8zAC9wdWJ1Z245LzMAL2J1Z245LzMAL3ByZ245LzMAL3JkeWxnbjkvMwAveWxnbjkvMwAvc3BlY3RyYWw5LzMAL3BpeWc5LzMAL2JyYmc5LzMAL3B1cmQ5LzMAL3lsb3JyZDkvMwAvb3JyZDkvMwAvcGFpcmVkOS8zAC9zZXQzOS8zAC9zZXQxOS8zAC9wYXN0ZWwxOS8zAC9yZGd5OC8zAC9idXB1OC8zAC9yZHB1OC8zAC9wdWJ1OC8zAC95bGduYnU4LzMAL2duYnU4LzMAL3JkeWxidTgvMwAvcmRidTgvMwAvYWNjZW50OC8zAC9ncmV5czgvMwAvZ3JlZW5zOC8zAC9ibHVlczgvMwAvcHVycGxlczgvMwAvb3JhbmdlczgvMwAvcmVkczgvMwAvcHVvcjgvMwAveWxvcmJyOC8zAC9wdWJ1Z244LzMAL2J1Z244LzMAL3ByZ244LzMAL3JkeWxnbjgvMwAveWxnbjgvMwAvc3BlY3RyYWw4LzMAL3BpeWc4LzMAL2JyYmc4LzMAL3B1cmQ4LzMAL3lsb3JyZDgvMwAvb3JyZDgvMwAvcGFpcmVkOC8zAC9zZXQzOC8zAC9zZXQyOC8zAC9wYXN0ZWwyOC8zAC9kYXJrMjgvMwAvc2V0MTgvMwAvcGFzdGVsMTgvMwAvcmRneTcvMwAvYnVwdTcvMwAvcmRwdTcvMwAvcHVidTcvMwAveWxnbmJ1Ny8zAC9nbmJ1Ny8zAC9yZHlsYnU3LzMAL3JkYnU3LzMAL2FjY2VudDcvMwAvZ3JleXM3LzMAL2dyZWVuczcvMwAvYmx1ZXM3LzMAL3B1cnBsZXM3LzMAL29yYW5nZXM3LzMAL3JlZHM3LzMAL3B1b3I3LzMAL3lsb3JicjcvMwAvcHVidWduNy8zAC9idWduNy8zAC9wcmduNy8zAC9yZHlsZ243LzMAL3lsZ243LzMAL3NwZWN0cmFsNy8zAC9waXlnNy8zAC9icmJnNy8zAC9wdXJkNy8zAC95bG9ycmQ3LzMAL29ycmQ3LzMAL3BhaXJlZDcvMwAvc2V0MzcvMwAvc2V0MjcvMwAvcGFzdGVsMjcvMwAvZGFyazI3LzMAL3NldDE3LzMAL3Bhc3RlbDE3LzMAL3JkZ3k2LzMAL2J1cHU2LzMAL3JkcHU2LzMAL3B1YnU2LzMAL3lsZ25idTYvMwAvZ25idTYvMwAvcmR5bGJ1Ni8zAC9yZGJ1Ni8zAC9hY2NlbnQ2LzMAL2dyZXlzNi8zAC9ncmVlbnM2LzMAL2JsdWVzNi8zAC9wdXJwbGVzNi8zAC9vcmFuZ2VzNi8zAC9yZWRzNi8zAC9wdW9yNi8zAC95bG9yYnI2LzMAL3B1YnVnbjYvMwAvYnVnbjYvMwAvcHJnbjYvMwAvcmR5bGduNi8zAC95bGduNi8zAC9zcGVjdHJhbDYvMwAvcGl5ZzYvMwAvYnJiZzYvMwAvcHVyZDYvMwAveWxvcnJkNi8zAC9vcnJkNi8zAC9wYWlyZWQ2LzMAL3NldDM2LzMAL3NldDI2LzMAL3Bhc3RlbDI2LzMAL2RhcmsyNi8zAC9zZXQxNi8zAC9wYXN0ZWwxNi8zAC9yZGd5NS8zAC9idXB1NS8zAC9yZHB1NS8zAC9wdWJ1NS8zAC95bGduYnU1LzMAL2duYnU1LzMAL3JkeWxidTUvMwAvcmRidTUvMwAvYWNjZW50NS8zAC9ncmV5czUvMwAvZ3JlZW5zNS8zAC9ibHVlczUvMwAvcHVycGxlczUvMwAvb3JhbmdlczUvMwAvcmVkczUvMwAvcHVvcjUvMwAveWxvcmJyNS8zAC9wdWJ1Z241LzMAL2J1Z241LzMAL3ByZ241LzMAL3JkeWxnbjUvMwAveWxnbjUvMwAvc3BlY3RyYWw1LzMAL3BpeWc1LzMAL2JyYmc1LzMAL3B1cmQ1LzMAL3lsb3JyZDUvMwAvb3JyZDUvMwAvcGFpcmVkNS8zAC9zZXQzNS8zAC9zZXQyNS8zAC9wYXN0ZWwyNS8zAC9kYXJrMjUvMwAvc2V0MTUvMwAvcGFzdGVsMTUvMwAvcmRneTQvMwAvYnVwdTQvMwAvcmRwdTQvMwAvcHVidTQvMwAveWxnbmJ1NC8zAC9nbmJ1NC8zAC9yZHlsYnU0LzMAL3JkYnU0LzMAL2FjY2VudDQvMwAvZ3JleXM0LzMAL2dyZWVuczQvMwAvYmx1ZXM0LzMAL3B1cnBsZXM0LzMAL29yYW5nZXM0LzMAL3JlZHM0LzMAL3B1b3I0LzMAL3lsb3JicjQvMwAvcHVidWduNC8zAC9idWduNC8zAC9wcmduNC8zAC9yZHlsZ240LzMAL3lsZ240LzMAL3NwZWN0cmFsNC8zAC9waXlnNC8zAC9icmJnNC8zAC9wdXJkNC8zAC95bG9ycmQ0LzMAL29ycmQ0LzMAL3BhaXJlZDQvMwAvc2V0MzQvMwAvc2V0MjQvMwAvcGFzdGVsMjQvMwAvZGFyazI0LzMAL3NldDE0LzMAL3Bhc3RlbDE0LzMAL3JkZ3kzLzMAL2J1cHUzLzMAL3JkcHUzLzMAL3B1YnUzLzMAL3lsZ25idTMvMwAvZ25idTMvMwAvcmR5bGJ1My8zAC9yZGJ1My8zAC9hY2NlbnQzLzMAL2dyZXlzMy8zAC9ncmVlbnMzLzMAL2JsdWVzMy8zAC9wdXJwbGVzMy8zAC9vcmFuZ2VzMy8zAC9yZWRzMy8zAC9wdW9yMy8zAC95bG9yYnIzLzMAL3B1YnVnbjMvMwAvYnVnbjMvMwAvcHJnbjMvMwAvcmR5bGduMy8zAC95bGduMy8zAC9zcGVjdHJhbDMvMwAvcGl5ZzMvMwAvYnJiZzMvMwAvcHVyZDMvMwAveWxvcnJkMy8zAC9vcnJkMy8zAC9wYWlyZWQzLzMAL3NldDMzLzMAL3NldDIzLzMAL3Bhc3RlbDIzLzMAL2RhcmsyMy8zAC9zZXQxMy8zAC9wYXN0ZWwxMy8zAC9wYWlyZWQxMi8zAC9zZXQzMTIvMwAvcmRneTExLzMAL3JkeWxidTExLzMAL3JkYnUxMS8zAC9wdW9yMTEvMwAvcHJnbjExLzMAL3JkeWxnbjExLzMAL3NwZWN0cmFsMTEvMwAvcGl5ZzExLzMAL2JyYmcxMS8zAC9wYWlyZWQxMS8zAC9zZXQzMTEvMwAvcmRneTEwLzMAL3JkeWxidTEwLzMAL3JkYnUxMC8zAC9wdW9yMTAvMwAvcHJnbjEwLzMAL3JkeWxnbjEwLzMAL3NwZWN0cmFsMTAvMwAvcGl5ZzEwLzMAL2JyYmcxMC8zAC9wYWlyZWQxMC8zAC9zZXQzMTAvMwBpdm9yeTIAZ3JleTIAZGFya3NsYXRlZ3JheTIAXHgyAHNub3cyAGxpZ2h0eWVsbG93MgBob25leWRldzIAUlRyZWVJbnNlcnQyAHdoZWF0MgBzdXAyAG5vcDIAdG9tYXRvMgByb3N5YnJvd24yAG1hcm9vbjIAbGlnaHRzYWxtb24yAGxlbW9uY2hpZmZvbjIAc3ByaW5nZ3JlZW4yAGRhcmtvbGl2ZWdyZWVuMgBwYWxlZ3JlZW4yAGRhcmtzZWFncmVlbjIAbGlnaHRjeWFuMgB0YW4yAHBsdW0yAHNlYXNoZWxsMgBjb3JhbDIAaG90cGluazIAbGlnaHRwaW5rMgBkZWVwcGluazIAY29ybnNpbGsyAGZpcmVicmljazIAa2hha2kyAGxhdmVuZGVyYmx1c2gyAHBlYWNocHVmZjIAYnJvbnplMgBiaXNxdWUyAGxpZ2h0c2t5Ymx1ZTIAZGVlcHNreWJsdWUyAGxpZ2h0Ymx1ZTIAY2FkZXRibHVlMgBkb2RnZXJibHVlMgBsaWdodHN0ZWVsYmx1ZTIAcm95YWxibHVlMgBzbGF0ZWJsdWUyAG5hdmFqb3doaXRlMgBhbnRpcXVld2hpdGUyAGNob2NvbGF0ZTIAY2hhcnRyZXVzZTIAbWlzdHlyb3NlMgBwYWxldHVycXVvaXNlMgBhenVyZTIAYXF1YW1hcmluZTIAdGhpc3RsZTIAbWVkaXVtcHVycGxlMgBkYXJrb3JhbmdlMgBsaWdodGdvbGRlbnJvZDIAZGFya2dvbGRlbnJvZDIAYnVybHl3b29kMgBnb2xkMgBtZWRpdW1vcmNoaWQyAGRhcmtvcmNoaWQyAHBhbGV2aW9sZXRyZWQyAGluZGlhbnJlZDIAb3JhbmdlcmVkMgBvbGl2ZWRyYWIyAG1hZ2VudGEyAHNpZW5uYTIAXHhGMgBceEUyAFx4RDIAXHhDMgBceEIyAFx4QTIAZ3JleTkyAGdyYXk5MgBceDkyAGdyZXk4MgBncmF5ODIAXHg4MgBncmV5NzIAZ3JheTcyAGdyZXk2MgBncmF5NjIAZ3JleTUyAGdyYXk1MgBncmV5NDIAZ3JheTQyAGdyZXkzMgBncmF5MzIAZ3JleTIyAGdyYXkyMgBncmV5MTIAZ3JheTEyAFx4MTIAZnJhYzEyAC9wYWlyZWQxMi8xMgAvc2V0MzEyLzEyAC9yZGd5OS8yAC9idXB1OS8yAC9yZHB1OS8yAC9wdWJ1OS8yAC95bGduYnU5LzIAL2duYnU5LzIAL3JkeWxidTkvMgAvcmRidTkvMgAvZ3JleXM5LzIAL2dyZWVuczkvMgAvYmx1ZXM5LzIAL3B1cnBsZXM5LzIAL29yYW5nZXM5LzIAL3JlZHM5LzIAL3B1b3I5LzIAL3lsb3JicjkvMgAvcHVidWduOS8yAC9idWduOS8yAC9wcmduOS8yAC9yZHlsZ245LzIAL3lsZ245LzIAL3NwZWN0cmFsOS8yAC9waXlnOS8yAC9icmJnOS8yAC9wdXJkOS8yAC95bG9ycmQ5LzIAL29ycmQ5LzIAL3BhaXJlZDkvMgAvc2V0MzkvMgAvc2V0MTkvMgAvcGFzdGVsMTkvMgAvcmRneTgvMgAvYnVwdTgvMgAvcmRwdTgvMgAvcHVidTgvMgAveWxnbmJ1OC8yAC9nbmJ1OC8yAC9yZHlsYnU4LzIAL3JkYnU4LzIAL2FjY2VudDgvMgAvZ3JleXM4LzIAL2dyZWVuczgvMgAvYmx1ZXM4LzIAL3B1cnBsZXM4LzIAL29yYW5nZXM4LzIAL3JlZHM4LzIAL3B1b3I4LzIAL3lsb3JicjgvMgAvcHVidWduOC8yAC9idWduOC8yAC9wcmduOC8yAC9yZHlsZ244LzIAL3lsZ244LzIAL3NwZWN0cmFsOC8yAC9waXlnOC8yAC9icmJnOC8yAC9wdXJkOC8yAC95bG9ycmQ4LzIAL29ycmQ4LzIAL3BhaXJlZDgvMgAvc2V0MzgvMgAvc2V0MjgvMgAvcGFzdGVsMjgvMgAvZGFyazI4LzIAL3NldDE4LzIAL3Bhc3RlbDE4LzIAL3JkZ3k3LzIAL2J1cHU3LzIAL3JkcHU3LzIAL3B1YnU3LzIAL3lsZ25idTcvMgAvZ25idTcvMgAvcmR5bGJ1Ny8yAC9yZGJ1Ny8yAC9hY2NlbnQ3LzIAL2dyZXlzNy8yAC9ncmVlbnM3LzIAL2JsdWVzNy8yAC9wdXJwbGVzNy8yAC9vcmFuZ2VzNy8yAC9yZWRzNy8yAC9wdW9yNy8yAC95bG9yYnI3LzIAL3B1YnVnbjcvMgAvYnVnbjcvMgAvcHJnbjcvMgAvcmR5bGduNy8yAC95bGduNy8yAC9zcGVjdHJhbDcvMgAvcGl5ZzcvMgAvYnJiZzcvMgAvcHVyZDcvMgAveWxvcnJkNy8yAC9vcnJkNy8yAC9wYWlyZWQ3LzIAL3NldDM3LzIAL3NldDI3LzIAL3Bhc3RlbDI3LzIAL2RhcmsyNy8yAC9zZXQxNy8yAC9wYXN0ZWwxNy8yAC9yZGd5Ni8yAC9idXB1Ni8yAC9yZHB1Ni8yAC9wdWJ1Ni8yAC95bGduYnU2LzIAL2duYnU2LzIAL3JkeWxidTYvMgAvcmRidTYvMgAvYWNjZW50Ni8yAC9ncmV5czYvMgAvZ3JlZW5zNi8yAC9ibHVlczYvMgAvcHVycGxlczYvMgAvb3JhbmdlczYvMgAvcmVkczYvMgAvcHVvcjYvMgAveWxvcmJyNi8yAC9wdWJ1Z242LzIAL2J1Z242LzIAL3ByZ242LzIAL3JkeWxnbjYvMgAveWxnbjYvMgAvc3BlY3RyYWw2LzIAL3BpeWc2LzIAL2JyYmc2LzIAL3B1cmQ2LzIAL3lsb3JyZDYvMgAvb3JyZDYvMgAvcGFpcmVkNi8yAC9zZXQzNi8yAC9zZXQyNi8yAC9wYXN0ZWwyNi8yAC9kYXJrMjYvMgAvc2V0MTYvMgAvcGFzdGVsMTYvMgAvcmRneTUvMgAvYnVwdTUvMgAvcmRwdTUvMgAvcHVidTUvMgAveWxnbmJ1NS8yAC9nbmJ1NS8yAC9yZHlsYnU1LzIAL3JkYnU1LzIAL2FjY2VudDUvMgAvZ3JleXM1LzIAL2dyZWVuczUvMgAvYmx1ZXM1LzIAL3B1cnBsZXM1LzIAL29yYW5nZXM1LzIAL3JlZHM1LzIAL3B1b3I1LzIAL3lsb3JicjUvMgAvcHVidWduNS8yAC9idWduNS8yAC9wcmduNS8yAC9yZHlsZ241LzIAL3lsZ241LzIAL3NwZWN0cmFsNS8yAC9waXlnNS8yAC9icmJnNS8yAC9wdXJkNS8yAC95bG9ycmQ1LzIAL29ycmQ1LzIAL3BhaXJlZDUvMgAvc2V0MzUvMgAvc2V0MjUvMgAvcGFzdGVsMjUvMgAvZGFyazI1LzIAL3NldDE1LzIAL3Bhc3RlbDE1LzIAL3JkZ3k0LzIAL2J1cHU0LzIAL3JkcHU0LzIAL3B1YnU0LzIAL3lsZ25idTQvMgAvZ25idTQvMgAvcmR5bGJ1NC8yAC9yZGJ1NC8yAC9hY2NlbnQ0LzIAL2dyZXlzNC8yAC9ncmVlbnM0LzIAL2JsdWVzNC8yAC9wdXJwbGVzNC8yAC9vcmFuZ2VzNC8yAC9yZWRzNC8yAC9wdW9yNC8yAC95bG9yYnI0LzIAL3B1YnVnbjQvMgAvYnVnbjQvMgAvcHJnbjQvMgAvcmR5bGduNC8yAC95bGduNC8yAC9zcGVjdHJhbDQvMgAvcGl5ZzQvMgAvYnJiZzQvMgAvcHVyZDQvMgAveWxvcnJkNC8yAC9vcnJkNC8yAC9wYWlyZWQ0LzIAL3NldDM0LzIAL3NldDI0LzIAL3Bhc3RlbDI0LzIAL2RhcmsyNC8yAC9zZXQxNC8yAC9wYXN0ZWwxNC8yAC9yZGd5My8yAC9idXB1My8yAC9yZHB1My8yAC9wdWJ1My8yAC95bGduYnUzLzIAL2duYnUzLzIAL3JkeWxidTMvMgAvcmRidTMvMgAvYWNjZW50My8yAC9ncmV5czMvMgAvZ3JlZW5zMy8yAC9ibHVlczMvMgAvcHVycGxlczMvMgAvb3JhbmdlczMvMgAvcmVkczMvMgAvcHVvcjMvMgAveWxvcmJyMy8yAC9wdWJ1Z24zLzIAL2J1Z24zLzIAL3ByZ24zLzIAL3JkeWxnbjMvMgAveWxnbjMvMgAvc3BlY3RyYWwzLzIAL3BpeWczLzIAL2JyYmczLzIAL3B1cmQzLzIAL3lsb3JyZDMvMgAvb3JyZDMvMgAvcGFpcmVkMy8yAC9zZXQzMy8yAC9zZXQyMy8yAC9wYXN0ZWwyMy8yAC9kYXJrMjMvMgAvc2V0MTMvMgAvcGFzdGVsMTMvMgAvcGFpcmVkMTIvMgAvc2V0MzEyLzIAL3JkZ3kxMS8yAC9yZHlsYnUxMS8yAC9yZGJ1MTEvMgAvcHVvcjExLzIAL3ByZ24xMS8yAC9yZHlsZ24xMS8yAC9zcGVjdHJhbDExLzIAL3BpeWcxMS8yAC9icmJnMTEvMgAvcGFpcmVkMTEvMgAvc2V0MzExLzIAL3JkZ3kxMC8yAC9yZHlsYnUxMC8yAC9yZGJ1MTAvMgAvcHVvcjEwLzIAL3ByZ24xMC8yAC9yZHlsZ24xMC8yAC9zcGVjdHJhbDEwLzIAL3BpeWcxMC8yAC9icmJnMTAvMgAvcGFpcmVkMTAvMgAvc2V0MzEwLzIAMS4yACAtZGFzaCAyAHN6ID49IDIAbGVuID49IDIAZXhwID09IDEgfHwgZXhwID09IDIAZGltID09IDIATkRfb3V0KHYpLnNpemUgPT0gMgBpdm9yeTEAZ3JleTEAZGFya3NsYXRlZ3JheTEAXHgxAHNub3cxAGxpZ2h0eWVsbG93MQBob25leWRldzEAbnNsaW1pdDEAd2hlYXQxAHN1cDEAbm9wMQB0b21hdG8xAHJvc3licm93bjEAbWFyb29uMQBsaWdodHNhbG1vbjEAbGVtb25jaGlmZm9uMQBsYXRpbjEAYWdvcGVuMQBzcHJpbmdncmVlbjEAZGFya29saXZlZ3JlZW4xAHBhbGVncmVlbjEAZGFya3NlYWdyZWVuMQBsaWdodGN5YW4xAHRhbjEAcGx1bTEAc2Vhc2hlbGwxAGNvcmFsMQBob3RwaW5rMQBsaWdodHBpbmsxAGRlZXBwaW5rMQBjb3Juc2lsazEAZmlyZWJyaWNrMQBqMCA8PSBpMSAmJiBpMSA8PSBqMQBraGFraTEAbGF2ZW5kZXJibHVzaDEAcGVhY2hwdWZmMQBiaXNxdWUxAGxpZ2h0c2t5Ymx1ZTEAZGVlcHNreWJsdWUxAGxpZ2h0Ymx1ZTEAY2FkZXRibHVlMQBkb2RnZXJibHVlMQBsaWdodHN0ZWVsYmx1ZTEAcm95YWxibHVlMQBzbGF0ZWJsdWUxAG5hdmFqb3doaXRlMQBhbnRpcXVld2hpdGUxAGNob2NvbGF0ZTEAY2hhcnRyZXVzZTEAbWlzdHlyb3NlMQBwYWxldHVycXVvaXNlMQBhenVyZTEAYXF1YW1hcmluZTEAdGhpc3RsZTEAbWVkaXVtcHVycGxlMQBkYXJrb3JhbmdlMQBhcmdfZTAgJiYgYXJnX2UxAGxpZ2h0Z29sZGVucm9kMQBkYXJrZ29sZGVucm9kMQBidXJseXdvb2QxAGdvbGQxAG1lZGl1bW9yY2hpZDEAZGFya29yY2hpZDEAcGFsZXZpb2xldHJlZDEAaW5kaWFucmVkMQBvcmFuZ2VyZWQxAG9saXZlZHJhYjEAbWFnZW50YTEAc2llbm5hMQBceEYxAFx4RTEAXHhEMQBceEMxAFx4QjEAXHhBMQBncmV5OTEAZ3JheTkxAFx4OTEAZ3JleTgxAGdyYXk4MQBceDgxAGdyZXk3MQBncmF5NzEAZ3JleTYxAGdyYXk2MQBncmV5NTEAZ3JheTUxAGdyZXk0MQBncmF5NDEAZ3JleTMxAGdyYXkzMQBncmV5MjEAZ3JheTIxAGdyZXkxMQBncmF5MTEAXHgxMQAvcGFpcmVkMTIvMTEAL3NldDMxMi8xMQAvcmRneTExLzExAC9yZHlsYnUxMS8xMQAvcmRidTExLzExAC9wdW9yMTEvMTEAL3ByZ24xMS8xMQAvcmR5bGduMTEvMTEAL3NwZWN0cmFsMTEvMTEAL3BpeWcxMS8xMQAvYnJiZzExLzExAC9wYWlyZWQxMS8xMQAvc2V0MzExLzExAGNzW2ldLT5zbGFjaygpPi0wLjAwMDAwMDEAL3JkZ3k5LzEAL2J1cHU5LzEAL3JkcHU5LzEAL3B1YnU5LzEAL3lsZ25idTkvMQAvZ25idTkvMQAvcmR5bGJ1OS8xAC9yZGJ1OS8xAC9ncmV5czkvMQAvZ3JlZW5zOS8xAC9ibHVlczkvMQAvcHVycGxlczkvMQAvb3JhbmdlczkvMQAvcmVkczkvMQAvcHVvcjkvMQAveWxvcmJyOS8xAC9wdWJ1Z245LzEAL2J1Z245LzEAL3ByZ245LzEAL3JkeWxnbjkvMQAveWxnbjkvMQAvc3BlY3RyYWw5LzEAL3BpeWc5LzEAL2JyYmc5LzEAL3B1cmQ5LzEAL3lsb3JyZDkvMQAvb3JyZDkvMQAvcGFpcmVkOS8xAC9zZXQzOS8xAC9zZXQxOS8xAC9wYXN0ZWwxOS8xAC9yZGd5OC8xAC9idXB1OC8xAC9yZHB1OC8xAC9wdWJ1OC8xAC95bGduYnU4LzEAL2duYnU4LzEAL3JkeWxidTgvMQAvcmRidTgvMQAvYWNjZW50OC8xAC9ncmV5czgvMQAvZ3JlZW5zOC8xAC9ibHVlczgvMQAvcHVycGxlczgvMQAvb3JhbmdlczgvMQAvcmVkczgvMQAvcHVvcjgvMQAveWxvcmJyOC8xAC9wdWJ1Z244LzEAL2J1Z244LzEAL3ByZ244LzEAL3JkeWxnbjgvMQAveWxnbjgvMQAvc3BlY3RyYWw4LzEAL3BpeWc4LzEAL2JyYmc4LzEAL3B1cmQ4LzEAL3lsb3JyZDgvMQAvb3JyZDgvMQAvcGFpcmVkOC8xAC9zZXQzOC8xAC9zZXQyOC8xAC9wYXN0ZWwyOC8xAC9kYXJrMjgvMQAvc2V0MTgvMQAvcGFzdGVsMTgvMQAvcmRneTcvMQAvYnVwdTcvMQAvcmRwdTcvMQAvcHVidTcvMQAveWxnbmJ1Ny8xAC9nbmJ1Ny8xAC9yZHlsYnU3LzEAL3JkYnU3LzEAL2FjY2VudDcvMQAvZ3JleXM3LzEAL2dyZWVuczcvMQAvYmx1ZXM3LzEAL3B1cnBsZXM3LzEAL29yYW5nZXM3LzEAL3JlZHM3LzEAL3B1b3I3LzEAL3lsb3JicjcvMQAvcHVidWduNy8xAC9idWduNy8xAC9wcmduNy8xAC9yZHlsZ243LzEAL3lsZ243LzEAL3NwZWN0cmFsNy8xAC9waXlnNy8xAC9icmJnNy8xAC9wdXJkNy8xAC95bG9ycmQ3LzEAL29ycmQ3LzEAL3BhaXJlZDcvMQAvc2V0MzcvMQAvc2V0MjcvMQAvcGFzdGVsMjcvMQAvZGFyazI3LzEAL3NldDE3LzEAL3Bhc3RlbDE3LzEAL3JkZ3k2LzEAL2J1cHU2LzEAL3JkcHU2LzEAL3B1YnU2LzEAL3lsZ25idTYvMQAvZ25idTYvMQAvcmR5bGJ1Ni8xAC9yZGJ1Ni8xAC9hY2NlbnQ2LzEAL2dyZXlzNi8xAC9ncmVlbnM2LzEAL2JsdWVzNi8xAC9wdXJwbGVzNi8xAC9vcmFuZ2VzNi8xAC9yZWRzNi8xAC9wdW9yNi8xAC95bG9yYnI2LzEAL3B1YnVnbjYvMQAvYnVnbjYvMQAvcHJnbjYvMQAvcmR5bGduNi8xAC95bGduNi8xAC9zcGVjdHJhbDYvMQAvcGl5ZzYvMQAvYnJiZzYvMQAvcHVyZDYvMQAveWxvcnJkNi8xAC9vcnJkNi8xAC9wYWlyZWQ2LzEAL3NldDM2LzEAL3NldDI2LzEAL3Bhc3RlbDI2LzEAL2RhcmsyNi8xAC9zZXQxNi8xAC9wYXN0ZWwxNi8xAC9yZGd5NS8xAC9idXB1NS8xAC9yZHB1NS8xAC9wdWJ1NS8xAC95bGduYnU1LzEAL2duYnU1LzEAL3JkeWxidTUvMQAvcmRidTUvMQAvYWNjZW50NS8xAC9ncmV5czUvMQAvZ3JlZW5zNS8xAC9ibHVlczUvMQAvcHVycGxlczUvMQAvb3JhbmdlczUvMQAvcmVkczUvMQAvcHVvcjUvMQAveWxvcmJyNS8xAC9wdWJ1Z241LzEAL2J1Z241LzEAL3ByZ241LzEAL3JkeWxnbjUvMQAveWxnbjUvMQAvc3BlY3RyYWw1LzEAL3BpeWc1LzEAL2JyYmc1LzEAL3B1cmQ1LzEAL3lsb3JyZDUvMQAvb3JyZDUvMQAvcGFpcmVkNS8xAC9zZXQzNS8xAC9zZXQyNS8xAC9wYXN0ZWwyNS8xAC9kYXJrMjUvMQAvc2V0MTUvMQAvcGFzdGVsMTUvMQAvcmRneTQvMQAvYnVwdTQvMQAvcmRwdTQvMQAvcHVidTQvMQAveWxnbmJ1NC8xAC9nbmJ1NC8xAC9yZHlsYnU0LzEAL3JkYnU0LzEAL2FjY2VudDQvMQAvZ3JleXM0LzEAL2dyZWVuczQvMQAvYmx1ZXM0LzEAL3B1cnBsZXM0LzEAL29yYW5nZXM0LzEAL3JlZHM0LzEAL3B1b3I0LzEAL3lsb3JicjQvMQAvcHVidWduNC8xAC9idWduNC8xAC9wcmduNC8xAC9yZHlsZ240LzEAL3lsZ240LzEAL3NwZWN0cmFsNC8xAC9waXlnNC8xAC9icmJnNC8xAC9wdXJkNC8xAC95bG9ycmQ0LzEAL29ycmQ0LzEAL3BhaXJlZDQvMQAvc2V0MzQvMQAvc2V0MjQvMQAvcGFzdGVsMjQvMQAvZGFyazI0LzEAL3NldDE0LzEAL3Bhc3RlbDE0LzEAL3JkZ3kzLzEAL2J1cHUzLzEAL3JkcHUzLzEAL3B1YnUzLzEAL3lsZ25idTMvMQAvZ25idTMvMQAvcmR5bGJ1My8xAC9yZGJ1My8xAC9hY2NlbnQzLzEAL2dyZXlzMy8xAC9ncmVlbnMzLzEAL2JsdWVzMy8xAC9wdXJwbGVzMy8xAC9vcmFuZ2VzMy8xAC9yZWRzMy8xAC9wdW9yMy8xAC95bG9yYnIzLzEAL3B1YnVnbjMvMQAvYnVnbjMvMQAvcHJnbjMvMQAvcmR5bGduMy8xAC95bGduMy8xAC9zcGVjdHJhbDMvMQAvcGl5ZzMvMQAvYnJiZzMvMQAvcHVyZDMvMQAveWxvcnJkMy8xAC9vcnJkMy8xAC9wYWlyZWQzLzEAL3NldDMzLzEAL3NldDIzLzEAL3Bhc3RlbDIzLzEAL2RhcmsyMy8xAC9zZXQxMy8xAC9wYXN0ZWwxMy8xAC9wYWlyZWQxMi8xAC9zZXQzMTIvMQAvcmRneTExLzEAL3JkeWxidTExLzEAL3JkYnUxMS8xAC9wdW9yMTEvMQAvcHJnbjExLzEAL3JkeWxnbjExLzEAL3NwZWN0cmFsMTEvMQAvcGl5ZzExLzEAL2JyYmcxMS8xAC9wYWlyZWQxMS8xAC9zZXQzMTEvMQAvcmRneTEwLzEAL3JkeWxidTEwLzEAL3JkYnUxMC8xAC9wdW9yMTAvMQAvcHJnbjEwLzEAL3JkeWxnbjEwLzEAL3NwZWN0cmFsMTAvMQAvcGl5ZzEwLzEAL2JyYmcxMC8xAC9wYWlyZWQxMC8xAC9zZXQzMTAvMQBsYXRpbi0xAElTT184ODU5LTEASVNPODg1OS0xAElTTy04ODU5LTEAaSA+PSAxAHEtPm4gPT0gMQBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0ucGFydGl0aW9uW2ldID09IDAgfHwgcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLnBhcnRpdGlvbltpXSA9PSAxAGJ6LnNpemUgJSAzID09IDEAZWRnZV9saXN0X3NpemUoJmN0eC0+VHJlZV9lZGdlKSA9PSBjdHgtPk5fbm9kZXMgLSAxAG5vZGVfc2V0X3NpemUoZy0+bl9pZCkgPT0gb3NpemUgKyAxAG4tPmNvdW50ICsgKCpubiktPmNvdW50ID09IE5PREVDQVJEICsgMQBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0uY291bnRbMF0gKyBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0uY291bnRbMV0gPT0gTk9ERUNBUkQgKyAxAGdyZXkwAGdyYXkwAGpzb24wACNmMGYwZjAAI2UwZTBlMAB4Yi0+dS5zLmxvY2F0ZWQgPiBBR1hCVUZfSU5MSU5FX1NJWkVfMABcMABUMABceEYwAFx4RTAAXHhEMABceEMwAFx4QjAAXHhBMABncmV5OTAAZ3JheTkwAFx4OTAAZ3JleTgwAGdyYXk4MABceDgwACM4MDgwODAAZ3JleTcwAGdyYXk3MABjY3dyb3QgPT0gMCB8fCBjY3dyb3QgPT0gOTAgfHwgY2N3cm90ID09IDE4MCB8fCBjY3dyb3QgPT0gMjcwAGN3cm90ID09IDAgfHwgY3dyb3QgPT0gOTAgfHwgY3dyb3QgPT0gMTgwIHx8IGN3cm90ID09IDI3MABncmV5NjAAZ3JheTYwAGdyZXk1MABncmF5NTAAZ3JleTQwAGdyYXk0MAByLndpZHRoKCk8MWU0MABncmV5MzAAZ3JheTMwACMzMDMwMzAAZ3JleTIwAGdyYXkyMABncmV5MTAAZ3JheTEwAFx4MTAAIzEwMTAxMAAvcGFpcmVkMTIvMTAAL3NldDMxMi8xMAAvcmRneTExLzEwAC9yZHlsYnUxMS8xMAAvcmRidTExLzEwAC9wdW9yMTEvMTAAL3ByZ24xMS8xMAAvcmR5bGduMTEvMTAAL3NwZWN0cmFsMTEvMTAAL3BpeWcxMS8xMAAvYnJiZzExLzEwAC9wYWlyZWQxMS8xMAAvc2V0MzExLzEwAC9yZGd5MTAvMTAAL3JkeWxidTEwLzEwAC9yZGJ1MTAvMTAAL3B1b3IxMC8xMAAvcHJnbjEwLzEwAC9yZHlsZ24xMC8xMAAvc3BlY3RyYWwxMC8xMAAvcGl5ZzEwLzEwAC9icmJnMTAvMTAAL3BhaXJlZDEwLzEwAC9zZXQzMTAvMTAAMTIwMABncmV5MTAwAGdyYXkxMDAASVNPLUlSLTEwMAAxMDAwMAAlIVBTLUFkb2JlLTMuMAAxMy4xLjAAbnogPiAwAGxpc3QtPmNhcGFjaXR5ID4gMABkaXN0ID4gMABwYXRoY291bnQgPiAwAHdndCA+IDAAbnNpdGVzID4gMABzaWRlcyA+IDAAcnYgPT0gMCB8fCAoTkRfb3JkZXIocnYpLU5EX29yZGVyKHYpKSpkaXIgPiAwAGxlbiA+IDAAcXQxLT5uID4gMCAmJiBxdDItPm4gPiAwAHdpZHRoID4gMABsaXN0LT5zaXplID4gMABkaWN0LT5zaXplID4gMABzcGwtPnNpemUgPiAwAHNlbGYtPnNpemUgPiAwAGJ6LnNpemUgPiAwAGJvdW5kID4gMABncmFwaC0+d2VpZ2h0c1t4XSA+IDAAZ3JhcGgtPndlaWdodHNbbl9lZGdlc10gPiAwAG0gPiAwICYmIG4gPiAwICYmIG56ID49IDAAdCA+PSAwAG5ub2RlcyA+PSAwAG5fb2JzID49IDAAbiA+PSAwAG4tPmxldmVsID49IDAAdG90YWwgPj0gMABvcmlnaW5hbCA+PSAwAE1heHJhbmsgPj0gMABQYWNrID49IDAAaWkgPCAxPDxkaW0gJiYgaWkgPj0gMAB3aWR0aCA+PSAwAGpkaWFnID49IDAAaWRpYWcgPj0gMABkID49IDAAcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLmNvdW50WzBdID49IDAgJiYgcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLmNvdW50WzFdID49IDAAViA+PSAwAGFnbm5vZGVzKGdyYXBoKSA+PSAwAGFnbm5vZGVzKGcpID49IDAARURfdHJlZV9pbmRleChlKSA+PSAwAEVEX2NvdW50KGUpID49IDAAb2JqcDEtPnN6LnggPT0gMCAmJiBvYmpwMS0+c3oueSA9PSAwAGNfY250ID09IDAAcmFua19yZXN1bHQgPT0gMABnZXR0aW1lb2ZkYXlfcmVzID09IDAAaiA9PSAwAE5EX2luKHJpZ2h0KS5zaXplICsgTkRfb3V0KHJpZ2h0KS5zaXplID09IDAAYS5zaGFwZSA9PSAwIHx8IGIuc2hhcGUgPT0gMABkdHNpemUoZGVzdCkgPT0gMABkdHNpemUoZy0+bl9zZXEpID09IDAAZHRzaXplKGctPmdfc2VxKSA9PSAwAGR0c2l6ZShnLT5lX3NlcSkgPT0gMABHRF9taW5yYW5rKGcpID09IDAAZHRzaXplKGctPmdfaWQpID09IDAAZHRzaXplKGctPmVfaWQpID09IDAAY29zeCAhPSAwIHx8IHNpbnggIT0gMABtZW1jbXAoJnN0eWxlLCAmKGdyYXBodml6X3BvbHlnb25fc3R5bGVfdCl7MH0sIHNpemVvZihzdHlsZSkpICE9IDAAcmVzdWx0ID09IChpbnQpKHNpemUgLSAxKSB8fCByZXN1bHQgPCAwAG1hc2tbaWldIDwgMABORF9oZWFwaW5kZXgodikgPCAwAFwvAFgxMS8AJS4qcy4Ac3BlY2lmaWVkIHJvb3Qgbm9kZSAiJXMiIHdhcyBub3QgZm91bmQuAEdyYXBoICVzIGhhcyBhcnJheSBwYWNraW5nIHdpdGggdXNlciB2YWx1ZXMgYnV0IG5vICJzb3J0diIgYXR0cmlidXRlcyBhcmUgZGVmaW5lZC4AMS4ALTAuACUhUFMtQWRvYmUtACVQREYtADwhLS0AICwAKwAqAHN0cmVxKGFwdHItPnUubmFtZSxLZXkpACFpc19leGFjdGx5X2VxdWFsKFIueCwgUS54KSB8fCAhaXNfZXhhY3RseV9lcXVhbChSLnksIFEueSkATkRfb3JkZXIodikgPCBORF9vcmRlcih3KQB1ID09IFVGX2ZpbmQodSkAIXBvaW50c19pc19lbXB0eShwbGlzdCkAIW9iamxpc3RfaXNfZW1wdHkobGlzdCkAIXNmb250X2lzX2VtcHR5KGxpc3QpACFyb3dzX2lzX2VtcHR5KGxpc3QpACF0c3RzX2lzX2VtcHR5KGxpc3QpACFwb2ludHNfaXNfZW1wdHkobGlzdCkAIWNvbG9yc2Vnc19pc19lbXB0eShsaXN0KQAhZGZzX3N0YWNrX2lzX2VtcHR5KGxpc3QpACFwYnNfc2l6ZV9pc19lbXB0eShsaXN0KQBvYmpsaXN0X2lzX2NvbnRpZ3VvdXMobGlzdCkAZGVnbGlzdF9pc19jb250aWd1b3VzKGxpc3QpAG5vZGVsaXN0X2lzX2NvbnRpZ3VvdXMobGlzdCkAY2xpc3RfaXNfY29udGlndW91cyhsaXN0KQBlZGdlX3NldF9pc19jb250aWd1b3VzKGxpc3QpAHBvaW50c19pc19jb250aWd1b3VzKGxpc3QpAHN0cnNfaXNfY29udGlndW91cyhsaXN0KQBBZ3JhcGhzX2lzX2NvbnRpZ3VvdXMobGlzdCkAYm94ZXNfaXNfY29udGlndW91cyhsaXN0KQBsYXllcl9uYW1lc19pc19jb250aWd1b3VzKGxpc3QpAHNub2Rlc19pc19jb250aWd1b3VzKGxpc3QpAHZhcmFycl9pc19jb250aWd1b3VzKGxpc3QpAGJlemllcl9wYXRoX2lzX2NvbnRpZ3VvdXMobGlzdCkAcGJzX3NpemVfaXNfY29udGlndW91cyhsaXN0KQBvbmUgPD0gbm9kZWxpc3Rfc2l6ZShsaXN0KQBucCA8IG5vZGVsaXN0X3NpemUobGlzdCkAc3RkOjppc19oZWFwKGhlYXAuYmVnaW4oKSwgaGVhcC5lbmQoKSwgZ3QpACEocS0+cXRzKQAhaW50c19pc19lbXB0eSgmbGVhdmVzKQBvbl9oZWFwKHIpAG5vZGVfc2V0X3NpemUoZy0+bl9pZCkgPT0gKHNpemVfdClkdHNpemUoZy0+bl9zZXEpAE5EX3JhbmsoZnJvbSkgPCBORF9yYW5rKHRvKQBub3Qgd2VsbC1mb3JtZWQgKGludmFsaWQgdG9rZW4pAGFnc3VicmVwKGcsbikAbiAhPSBORF9uZXh0KG4pAGZpbmRfZmFzdF9ub2RlKGcsIG4pAChudWxsKQAoIWpjbikgJiYgKCF2YWwpACEocS0+bCkAc3ltLT5pZCA+PSAwICYmIHN5bS0+aWQgPCB0b3BkaWN0c2l6ZShvYmopAG1vdmUgdG8gKCUuMGYsICUuMGYpADsgc3BsaW5lIHRvICglLjBmLCAlLjBmKQA7IGxpbmUgdG8gKCUuMGYsICUuMGYpAFNwYXJzZU1hdHJpeF9pc19zeW1tZXRyaWMoQSwgdHJ1ZSkAdmFsdWUgJiYgc3RybGVuKHZhbHVlKQBTcGFyc2VNYXRyaXhfaXNfc3ltbWV0cmljKEEsIGZhbHNlKQAhdXNlX3N0YWdlIHx8IHNpemUgPD0gc2l6ZW9mKHN0YWdlKQBFRF9sYWJlbChmZSkAIVRSRUVfRURHRShlKQAhY29uc3RyYWluaW5nX2ZsYXRfZWRnZShnLCBlKQBub2RlX3NldF9pc19lbXB0eShnLT5uX2lkKQByXyVkKQBsXyVkKQAobGliKQAhU3BhcnNlTWF0cml4X2hhc19kaWFnb25hbChBKQAgc2Nhbm5pbmcgYSBIVE1MIHN0cmluZyAobWlzc2luZyAnPic/IGJhZCBuZXN0aW5nPyBsb25nZXIgdGhhbiAlZD8pACBzY2FubmluZyBhIHF1b3RlZCBzdHJpbmcgKG1pc3NpbmcgZW5kcXVvdGU/IGxvbmdlciB0aGFuICVkPykAIHNjYW5uaW5nIGEgLyouLi4qLyBjb21tZW50IChtaXNzaW5nICcqLz8gbG9uZ2VyIHRoYW4gJWQ/KQBmYWxsYmFjayg0KQBvbl9oZWFwKHIwKSB8fCBvbl9oZWFwKHIxKQBhZ3RhaWwoZSkgPT0gVUZfZmluZChhZ3RhaWwoZSkpAGFnaGVhZChlKSA9PSBVRl9maW5kKGFnaGVhZChlKSkAb3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X2dldF9uZXh0X2J1ZmZlcigpAG91dCBvZiBkeW5hbWljIG1lbW9yeSBpbiB5eV9jcmVhdGVfYnVmZmVyKCkAb3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5ZW5zdXJlX2J1ZmZlcl9zdGFjaygpAHN0cmVxKG1vZGUsICJyIikgfHwgc3RyZXEobW9kZSwgInJiIikgfHwgc3RyZXEobW9kZSwgInciKSB8fCBzdHJlcShtb2RlLCAid2IiKQBwbmFtZSAhPSBOVUxMICYmICFzdHJlcShwbmFtZSwgIiIpAHNldGxpbmV3aWR0aCgAKSByb3RhdGUoJWQpIHRyYW5zbGF0ZSgAIHRyYW5zZm9ybT0ic2NhbGUoAE5PVEFUSU9OKAAgKAAgbmVhciAnJXMnACVsZiwlbGYsJWxmLCclW14nXScAaXNkaWdpdCgoaW50KWRvdHBbMV0pICYmIGlzZGlnaXQoKGludClkb3RwWzJdKSAmJiBkb3RwWzNdID09ICdcMCcAJgAlACQAdXJsKCMAPHRleHRQYXRoIHhsaW5rOmhyZWY9IiMAPGFyZWEgc2hhcGU9InBvbHkiACBmaWxsPSIjJTAyeCUwMnglMDJ4IgAoc2VxICYgU0VRX01BU0spID09IHNlcSAmJiAic2VxdWVuY2UgSUQgb3ZlcmZsb3ciAGd2X3NvcnRfY29tcGFyID09IE5VTEwgJiYgZ3Zfc29ydF9hcmcgPT0gTlVMTCAmJiAidW5zdXBwb3J0ZWQgcmVjdXJzaXZlIGNhbGwgdG8gZ3Zfc29ydCIAZ3Zfc29ydF9jb21wYXIgIT0gTlVMTCAmJiAibm8gY29tcGFyYXRvciBzZXQgaW4gZ3Zfc29ydCIAb3AtPm9wLnUucG9seWdvbi5jbnQgPD0gSU5UX01BWCAmJiAicG9seWdvbiBjb3VudCBleGNlZWRzIGd2cmVuZGVyX3BvbHlnb24gc3VwcG9ydCIAIHRleHQtYW5jaG9yPSJzdGFydCIAcC54ICE9IGEgJiYgImNhbm5vdCBoYW5kbGUgZWxsaXBzZSB0YW5nZW50IHNsb3BlIGluIGhvcml6b250YWwgZXh0cmVtZSBwb2ludCIAZnVsbF9sZW5ndGhfd2l0aG91dF9zaGFmdCA+IDAgJiYgIm5vbi1wb3NpdGl2ZSBmdWxsIGxlbmd0aCB3aXRob3V0IHNoYWZ0IgA8YXJlYSBzaGFwZT0icmVjdCIAc2l6ZSA+IDAgJiYgImF0dGVtcHQgdG8gYWxsb2NhdGUgYXJyYXkgb2YgMC1zaXplZCBlbGVtZW50cyIAaW5kZXggPCBzZWxmLT5zaXplX2JpdHMgJiYgIm91dCBvZiBib3VuZHMgYWNjZXNzIgBpbmRleCA8IHNlbGYuc2l6ZV9iaXRzICYmICJvdXQgb2YgYm91bmRzIGFjY2VzcyIAKnMxICE9ICpzMiAmJiAiZHVwbGljYXRlIHNlcGFyYXRvciBjaGFyYWN0ZXJzIgBHRF9taW5yYW5rKHN1YmcpIDw9IEdEX21heHJhbmsoc3ViZykgJiYgImNvcnJ1cHRlZCByYW5rIGJvdW5kcyIAaW5kZXggPCBsaXN0LT5zaXplICYmICJpbmRleCBvdXQgb2YgYm91bmRzIgBpbmRleCA8IG5vZGVsaXN0X3NpemUobGlzdCkgJiYgImluZGV4IG91dCBvZiBib3VuZHMiAGluZGV4IDwgZWRnZV9saXN0X3NpemUobGlzdCkgJiYgImluZGV4IG91dCBvZiBib3VuZHMiAGluZGV4IDwgaW50c19zaXplKGxpc3QpICYmICJpbmRleCBvdXQgb2YgYm91bmRzIgBpbmRleCA8IHRyYXBzX3NpemUobGlzdCkgJiYgImluZGV4IG91dCBvZiBib3VuZHMiAGluZGV4IDwgbm9kZXNfc2l6ZShsaXN0KSAmJiAiaW5kZXggb3V0IG9mIGJvdW5kcyIAKHVpbnRwdHJfdClzICUgMiA9PSAwICYmICJoZWFwIHBvaW50ZXIgd2l0aCBsb3cgYml0IHNldCB3aWxsIGNvbGxpZGUgd2l0aCBhbm9ueW1vdXMgSURzIgAgKCslNmxkIGJ5dGVzICVzfCV1LCB4bWxwYXJzZS5jOiVkKSAlKnMiACBmb250LWZhbWlseT0iJXMiACBmb250LXdlaWdodD0iJXMiACBmaWxsPSIlcyIAIGZvbnQtc3RyZXRjaD0iJXMiACBmb250LXN0eWxlPSIlcyIAYmFkIGVkZ2UgbGVuICIlcyIAIGJhc2VsaW5lLXNoaWZ0PSJzdXBlciIAYWd4Ymxlbih4YikgPD0gc2l6ZW9mKHhiLT51LnN0b3JlKSAmJiAiYWd4YnVmIGNvcnJ1cHRpb24iAGNlbGwucm93IDwgdGFibGUtPnJvd19jb3VudCAmJiAib3V0IG9mIHJhbmdlIGNlbGwiAGNlbGwuY29sIDwgdGFibGUtPmNvbHVtbl9jb3VudCAmJiAib3V0IG9mIHJhbmdlIGNlbGwiACB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgBmdWxsX2xlbmd0aCA+IDAgJiYgIm5vbi1wb3NpdGl2ZSBmdWxsIGxlbmd0aCIAZnVsbF9iYXNlX3dpZHRoID4gMCAmJiAibm9uLXBvc2l0aXZlIGZ1bGwgYmFzZSB3aWR0aCIAbm9taW5hbF9iYXNlX3dpZHRoID4gMCAmJiAibm9uLXBvc2l0aXZlIG5vbWluYWwgYmFzZSB3aWR0aCIAIiB3aWR0aD0iJWdweCIgaGVpZ2h0PSIlZ3B4IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0IiB4PSIlZyIgeT0iJWciACIgd2lkdGg9IiVncHgiIGhlaWdodD0iJWdweCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgeD0iJWciIHk9IiVnIgAgZm9udC1zaXplPSIlLjJmIgAgZmlsbC1vcGFjaXR5PSIlZiIAPHRleHQgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIAaXNmaW5pdGUobSkgJiYgImVsbGlwc2UgdGFuZ2VudCBzbG9wZSBpcyBpbmZpbml0ZSIAKHhiLT51LnMubG9jYXRlZCA9PSBBR1hCVUZfT05fSEVBUCB8fCB4Yi0+dS5zLmxvY2F0ZWQgPD0gc2l6ZW9mKHhiLT51LnN0b3JlKSkgJiYgImNvcnJ1cHRlZCBhZ3hidWYgdHlwZSIAIHRleHQtYW5jaG9yPSJtaWRkbGUiADxhcmVhIHNoYXBlPSJjaXJjbGUiAGNlbGwtPnJvdyArIGNlbGwtPnJvd3NwYW4gPD0gdGFibGUtPnJvd19jb3VudCAmJiAiY2VsbCBzcGFucyBoaWdoZXIgdGhhbiBjb250YWluaW5nIHRhYmxlIgBjZWxsLnJvdyArIGNlbGwucm93c3BhbiA8PSB0YWJsZS0+cm93X2NvdW50ICYmICJjZWxsIHNwYW5zIGhpZ2hlciB0aGFuIGNvbnRhaW5pbmcgdGFibGUiAGNlbGwtPmNvbCArIGNlbGwtPmNvbHNwYW4gPD0gdGFibGUtPmNvbHVtbl9jb3VudCAmJiAiY2VsbCBzcGFucyB3aWRlciB0aGFuIGNvbnRhaW5pbmcgdGFibGUiAGNlbGwuY29sICsgY2VsbC5jb2xzcGFuIDw9IHRhYmxlLT5jb2x1bW5fY291bnQgJiYgImNlbGwgc3BhbnMgd2lkZXIgdGhhbiBjb250YWluaW5nIHRhYmxlIgBvbGRfbm1lbWIgPCBTSVpFX01BWCAvIHNpemUgJiYgImNsYWltZWQgcHJldmlvdXMgZXh0ZW50IGlzIHRvbyBsYXJnZSIAdGhldGEgPj0gMCAmJiB0aGV0YSA8PSBNX1BJICYmICJ0aGV0YSBvdXQgb2YgcmFuZ2UiAHRhYmxlLT5oZWlnaHRzID09IE5VTEwgJiYgInRhYmxlIGhlaWdodHMgY29tcHV0ZWQgdHdpY2UiAHRhYmxlLT53aWR0aHMgPT0gTlVMTCAmJiAidGFibGUgd2lkdGhzIGNvbXB1dGVkIHR3aWNlIgAgdGV4dC1hbmNob3I9ImVuZCIAIGZvbnQtd2VpZ2h0PSJib2xkIgAgZm9udC1zdHlsZT0iaXRhbGljIgAgYmFzZWxpbmUtc2hpZnQ9InN1YiIAXCIAbGxlbiA8PSBJTlRfTUFYICYmICJYTUwgdG9rZW4gdG9vIGxvbmcgZm9yIGV4cGF0IEFQSSIAIiByeT0iAF9wIiBzdGFydE9mZnNldD0iNTAlIj48dHNwYW4geD0iMCIgZHk9IgAiIGN5PSIAIiB5PSIAIiByeD0iACBjeD0iACB4PSIAIHRhcmdldD0iACBwb2ludHM9IgAgY29vcmRzPSIAIHRleHQtZGVjb3JhdGlvbj0iACBmaWxsPSIAIiBzdHJva2Utd2lkdGg9IgA8aW1hZ2UgeGxpbms6aHJlZj0iADw/eG1sLXN0eWxlc2hlZXQgaHJlZj0iACIgbmFtZT0iACB4bGluazp0aXRsZT0iACB0aXRsZT0iACIgc3Ryb2tlPSIAPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0iADxkZWZzPgo8cmFkaWFsR3JhZGllbnQgaWQ9IgA8bWFwIGlkPSIAPGcgaWQ9IgAgZD0iACIgeTI9IgAiIHgyPSIAIiB5MT0iAHgxPSIAIHZpZXdCb3g9IiVkLjAwICVkLjAwICVkLjAwICVkLjAwIgAgdHJhbnNmb3JtPSJyb3RhdGUoJWQgJWcgJWcpIgBhZ3hibGVuKCZjdHgtPlNidWYpID09IDAgJiYgInBlbmRpbmcgc3RyaW5nIGRhdGEgdGhhdCB3YXMgbm90IGNvbnN1bWVkIChtaXNzaW5nICIgImVuZHN0cigpL2VuZGh0bWxzdHIoKT8pIgAgYWx0PSIiAEN5Y2xlIEVycm9yIQBQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQA8IS0tIEdlbmVyYXRlZCBieSAAJXMlenUgLSMlMDJ4JTAyeCUwMnglMDJ4IAAlcyV6dSAtIyUwMnglMDJ4JTAyeCAAJWMgJXp1IAB0ICV1IAAgY3JlYXRlIHRleHQgAHhMYXlvdXQgAGRlZmF1bHQgAHN0cmljdCAAJXMlenUgLSVzIAAgLXNtb290aCBiZXppZXIgACBtb3ZldG8gACB2ZXJzaW9uIAAgY3JlYXRlIHBvbHlnb24gACAtdGV4dCB7JXN9IC1maWxsIAAgY3JlYXRlIG92YWwgACAtd2lkdGggAG5ld3BhdGggAGdyYXBoIABzLCUuNWcsJS41ZyAAJS41ZywlLjVnLCUuNWcsJS41ZyAAZSwlLjVnLCUuNWcgACVnICVnIAAlLjAzbGYgACUuM2YgACVkICVkICVkICVkICVkICVkICUuMWYgJS40ZiAlZCAlLjFmICUuMWYgJS4wZiAlLjBmIAAgLW91dGxpbmUgACBjcmVhdGUgbGluZSAAbm9kZSAAJWQgAFRvdGFsIHNpemUgPiAxIGluICIlcyIgY29sb3Igc3BlYyAAWyAvUmVjdCBbIABUIABTIABPUEVOIABJIABGIABFIABDIAAgLT4gAFJhbmsgc2VwYXJhdGlvbiA9IABuZXR3b3JrIHNpbXBsZXg6IABVbnNhdGlzZmllZCBjb25zdHJhaW50OiAAQ2FsY3VsYXRpbmcgc2hvcnRlc3QgcGF0aHM6IAAlczogAFNvbHZpbmcgbW9kZWw6IABTZXR0aW5nIHVwIHNwcmluZyBtb2RlbDogAGNvbnZlcnQgZ3JhcGg6IAAgVGl0bGU6IABbR3JhcGh2aXpdICVzOiVkOiAlMDRkLSUwMmQtJTAyZCAlMDJkOiUwMmQ6IAAidGV4dCI6IAB7ImZyYWMiOiAlLjAzZiwgImNvbG9yIjogACJuYW1lIjogACJzdHlsZSI6IAAiZmFjZSI6IAAyIAA8IS0tIAAgLS0gACUgAF9wIiAAbF8lZCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIAANICAgICAgICAgICAgICAgIGl0ZXIgPSAlZCwgc3RlcCA9ICVmIEZub3JtID0gJWYgbnogPSAlZCAgSyA9ICVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAKICAgIAA6CSAAICAgICVzfQoAdHJ5aW5nIHRvIGFkZCB0byByZWN0IHslZiArLy0gJWYsICVmICsvLSAlZn0KACNkZWZhdWx0IHsgZmluaXNoIHsgYW1iaWVudCAwLjEgZGlmZnVzZSAwLjkgfSB9CgBwaWdtZW50IHsgY29sb3IgJXMgfQoAbGlnaHRfc291cmNlIHsgPDE1MDAsMzAwMCwtMjUwMD4gY29sb3IgV2hpdGUgfQoAZ2xvYmFsX3NldHRpbmdzIHsgYXNzdW1lZF9nYW1tYSAxLjAgfQoAICAgIHRleHR1cmUgSW1hZ2VUZXh0dXJlIHsgdXJsICIlcyIgfQoAICAgIH0KAC8vc2t5CnBsYW5lIHsgPDAsIDEsIDA+LCAxIGhvbGxvdwogICAgdGV4dHVyZSB7CiAgICAgICAgcGlnbWVudCB7IGJvem8gdHVyYnVsZW5jZSAwLjk1CiAgICAgICAgICAgIGNvbG9yX21hcCB7CiAgICAgICAgICAgICAgICBbMC4wMCByZ2IgPDAuMDUsIDAuMjAsIDAuNTA+XQogICAgICAgICAgICAgICAgWzAuNTAgcmdiIDwwLjA1LCAwLjIwLCAwLjUwPl0KICAgICAgICAgICAgICAgIFswLjc1IHJnYiA8MS4wMCwgMS4wMCwgMS4wMD5dCiAgICAgICAgICAgICAgICBbMC43NSByZ2IgPDAuMjUsIDAuMjUsIDAuMjU+XQogICAgICAgICAgICAgICAgWzEuMDAgcmdiIDwwLjUwLCAwLjUwLCAwLjUwPl0KICAgICAgICAgICAgfQogICAgICAgICAgICBzY2FsZSA8MS4wMCwgMS4wMCwgMS41MD4gKiAyLjUwCiAgICAgICAgICAgIHRyYW5zbGF0ZSA8MC4wMCwgMC4wMCwgMC4wMD4KICAgICAgICB9CiAgICAgICAgZmluaXNoIHsgYW1iaWVudCAxIGRpZmZ1c2UgMCB9CiAgICB9CiAgICBzY2FsZSAxMDAwMAp9Ci8vbWlzdApmb2cgeyBmb2dfdHlwZSAyCiAgICBkaXN0YW5jZSA1MAogICAgY29sb3IgcmdiIDwxLjAwLCAxLjAwLCAxLjAwPiAqIDAuNzUKICAgIGZvZ19vZmZzZXQgMC4xMAogICAgZm9nX2FsdCAxLjUwCiAgICB0dXJidWxlbmNlIDEuNzUKfQovL2duZApwbGFuZSB7IDwwLjAwLCAxLjAwLCAwLjAwPiwgMAogICAgdGV4dHVyZSB7CiAgICAgICAgcGlnbWVudHsgY29sb3IgcmdiIDwwLjI1LCAwLjQ1LCAwLjAwPiB9CiAgICAgICAgbm9ybWFsIHsgYnVtcHMgMC43NSBzY2FsZSAwLjAxIH0KICAgICAgICBmaW5pc2ggeyBwaG9uZyAwLjEwIH0KICAgIH0KfQoAY2FtZXJhIHsgbG9jYXRpb24gPCUuM2YgLCAlLjNmICwgLTUwMC4wMDA+CiAgICAgICAgIGxvb2tfYXQgIDwlLjNmICwgJS4zZiAsIDAuMDAwPgogICAgICAgICByaWdodCB4ICogaW1hZ2Vfd2lkdGggLyBpbWFnZV9oZWlnaHQKICAgICAgICAgYW5nbGUgJS4zZgp9CgAgICAgbWF0ZXJpYWwgTWF0ZXJpYWwgewoAU2hhcGUgewoAICBhcHBlYXJhbmNlIEFwcGVhcmFuY2UgewoAL3VzZXJfc2hhcGVfJWQgewoAZ3JhcGggRyB7CgBhcnJvd2hlYWQgPSA3ICVzIG5vdCB1c2VkIGJ5IGdyYXBodml6CgBib3hyYWQgPSAwICVzIG5vIHJvdW5kZWQgY29ybmVycyBpbiBncmFwaHZpegoAb3V0IG9mIG1lbW9yeQoAJXM6IGNvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkKAEdyYXBodml6IGJ1aWx0IHdpdGhvdXQgYW55IHRyaWFuZ3VsYXRpb24gbGlicmFyeQoAcmVtb3ZlX292ZXJsYXA6IEdyYXBodml6IG5vdCBidWlsdCB3aXRoIHRyaWFuZ3VsYXRpb24gbGlicmFyeQoAJXMgZmlsbCBoYXMgbm8gbWVhbmluZyBpbiBEV0IgMiwgZ3BpYyBjYW4gdXNlIGZpbGwgb3IgZmlsbGVkLCAxMHRoIEVkaXRpb24gdXNlcyBmaWxsIG9ubHkKAGJveHJhZD0yLjAgJXMgd2lsbCBiZSByZXNldCB0byAwLjAgYnkgZ3BpYyBvbmx5CgAlZCAlZCAjJTAyeCUwMnglMDJ4CgBIZWFwIG92ZXJmbG93CgB0ZXh0IHsKICAgIHR0ZiAiJXMiLAogICAgIiVzIiwgJS4zZiwgJS4zZgogICAgICAgIG5vX3NoYWRvdwoAJWQgJWQgJWQgJS4wZiAlZCAlZCAlZCAlZCAlZCAlLjFmICVkICVkICVkICVkICVkICV6dQoAdG90YWwgYWRkZWQgc28gZmFyID0gJXp1CgByb290ID0gJXMgbWF4IHN0ZXBzIHRvIHJvb3QgPSAlbGx1CgAucHMgJS4wZipcbihTRnUvJS4wZnUKACAgbWFyZ2luICV1CgBOdW1iZXIgb2YgaXRlcmF0aW9ucyA9ICV1CgBvdmVybGFwIFsldV0gOiAldQoAICVzIGFsaWduZWR0ZXh0CgBsYXllcnMgbm90IHN1cHBvcnRlZCBpbiAlcyBvdXRwdXQKAGFkZF90cmVlX2VkZ2U6IGVtcHR5IG91dGVkZ2UgbGlzdAoAYWRkX3RyZWVfZWRnZTogZW1wdHkgaW5lZGdlIGxpc3QKAE5vIGxpYnogc3VwcG9ydAoAJXMgLlBTIHcvbyBhcmdzIGNhdXNlcyBHTlUgcGljIHRvIHNjYWxlIGRyYXdpbmcgdG8gZml0IDguNXgxMSBwYXBlcjsgRFdCIGRvZXMgbm90CgAlcyBHTlUgcGljIHN1cHBvcnRzIGEgbGluZXRoaWNrIHZhcmlhYmxlIHRvIHNldCBsaW5lIHRoaWNrbmVzczsgRFdCIGFuZCAxMHRoIEVkLiBkbyBub3QKACVzIEdOVSBwaWMgc3VwcG9ydHMgYSBib3hyYWQgdmFyaWFibGUgdG8gZHJhdyBib3hlcyB3aXRoIHJvdW5kZWQgY29ybmVyczsgRFdCIGFuZCAxMHRoIEVkLiBkbyBub3QKACAvJXMgc2V0X2ZvbnQKACVzJS4qcyBpcyBub3QgYSB0cm9mZiBmb250CgBjZWxsIHNpemUgdG9vIHNtYWxsIGZvciBjb250ZW50CgB0YWJsZSBzaXplIHRvbyBzbWFsbCBmb3IgY29udGVudAoAJSVFbmREb2N1bWVudAoAVW5jbG9zZWQgY29tbWVudAoATGFiZWwgY2xvc2VkIGJlZm9yZSBlbmQgb2YgSFRNTCBlbGVtZW50CgBQb3J0cmFpdAoAZml4ZWQgY2VsbCBzaXplIHdpdGggdW5zcGVjaWZpZWQgd2lkdGggb3IgaGVpZ2h0CgBmaXhlZCB0YWJsZSBzaXplIHdpdGggdW5zcGVjaWZpZWQgd2lkdGggb3IgaGVpZ2h0CgBwb3MgYXR0cmlidXRlIGZvciBlZGdlICglcywlcykgZG9lc24ndCBoYXZlIDNuKzEgcG9pbnRzCgAgIGdlbmVyYXRlZCAlZCBjb25zdHJhaW50cwoAc3BsaW5lcyBhbmQgY2x1c3RlciBlZGdlcyBub3Qgc3VwcG9ydGVkIC0gdXNpbmcgbGluZSBzZWdtZW50cwoAb2JqZWN0cwoAV2FybmluZzogbm9kZSAlcywgcG9zaXRpb24gJXMsIGV4cGVjdGVkIHR3byBmbG9hdHMKAGZvbnQgbmFtZSAlcyBjb250YWlucyBjaGFyYWN0ZXJzIHRoYXQgbWF5IG5vdCBiZSBhY2NlcHRlZCBieSBzb21lIFBTIHZpZXdlcnMKAGZvbnQgbmFtZSAlcyBpcyBsb25nZXIgdGhhbiAyOSBjaGFyYWN0ZXJzIHdoaWNoIG1heSBiZSByZWplY3RlZCBieSBzb21lIFBTIHZpZXdlcnMKAGNhbm5vdCBhbGxvY2F0ZSBwcwoAc2NhbGU9MS4wICVzIHJlcXVpcmVkIGZvciBjb21wYXJpc29ucwoAU2V0dGluZyBpbml0aWFsIHBvc2l0aW9ucwoAJXMgRFdCIDIgY29tcGF0aWJpbGl0eSBkZWZpbml0aW9ucwoAYXJyYXkgcGFja2luZzogJXMgJXp1IHJvd3MgJXp1IGNvbHVtbnMKAHN5bnRheCBhbWJpZ3VpdHkgLSBiYWRseSBkZWxpbWl0ZWQgbnVtYmVyICclcycgaW4gbGluZSAlZCBvZiAlcyBzcGxpdHMgaW50byB0d28gdG9rZW5zCgBlZGdlIGxhYmVscyB3aXRoIHNwbGluZXM9Y3VydmVkIG5vdCBzdXBwb3J0ZWQgaW4gZG90IC0gdXNlIHhsYWJlbHMKAGZsYXQgZWRnZSBiZXR3ZWVuIGFkamFjZW50IG5vZGVzIG9uZSBvZiB3aGljaCBoYXMgYSByZWNvcmQgc2hhcGUgLSByZXBsYWNlIHJlY29yZHMgd2l0aCBIVE1MLWxpa2UgbGFiZWxzCgBvdXQgb2YgbWVtb3J5IHdoZW4gdHJ5aW5nIHRvIGFsbG9jYXRlICV6dSBieXRlcwoAaW50ZWdlciBvdmVyZmxvdyB3aGVuIHRyeWluZyB0byBhbGxvY2F0ZSAlenUgKiAlenUgYnl0ZXMKAHVwZGF0ZTogbWlzbWF0Y2hlZCBsY2EgaW4gdHJlZXVwZGF0ZXMKAGdyYXBoICVzLCBjb29yZCAlcywgZXhwZWN0ZWQgZm91ciBkb3VibGVzCgBub2RlICVzLCBwb3NpdGlvbiAlcywgZXhwZWN0ZWQgdHdvIGRvdWJsZXMKAEZvdW5kICVkIERpRy1Db0xhIGJvdW5kYXJpZXMKAEluY2hlcwoAKCU0enUpICU3enUgbm9kZXMgJTd6dSBlZGdlcwoAY29tcG91bmRFZGdlczogY291bGQgbm90IGNvbnN0cnVjdCBvYnN0YWNsZXMgLSBmYWxsaW5nIGJhY2sgdG8gc3RyYWlnaHQgbGluZSBlZGdlcwoAdGhlIGJvdW5kaW5nIGJveGVzIG9mIHNvbWUgbm9kZXMgdG91Y2ggLSBmYWxsaW5nIGJhY2sgdG8gc3RyYWlnaHQgbGluZSBlZGdlcwoAY29tcG91bmRFZGdlczogbm9kZXMgdG91Y2ggLSBmYWxsaW5nIGJhY2sgdG8gc3RyYWlnaHQgbGluZSBlZGdlcwoAc29tZSBub2RlcyB3aXRoIG1hcmdpbiAoJS4wMmYsJS4wMmYpIHRvdWNoIC0gZmFsbGluZyBiYWNrIHRvIHN0cmFpZ2h0IGxpbmUgZWRnZXMKAG1lcmdlMjogZ3JhcGggJXMsIHJhbmsgJWQgaGFzIG9ubHkgJWQgPCAlZCBub2RlcwoAU2Nhbm5pbmcgZ3JhcGggJXMsICVkIG5vZGVzCgBXYXJuaW5nOiBubyBoYXJkLWNvZGVkIG1ldHJpY3MgZm9yICclcycuICBGYWxsaW5nIGJhY2sgdG8gJ1RpbWVzJyBtZXRyaWNzCgBpbiBlZGdlICVzJXMlcwoAVXNpbmcgJXM6ICVzOiVzCgBGb3JtYXQ6ICIlcyIgbm90IHJlY29nbml6ZWQuIFVzZSBvbmUgb2Y6JXMKAExheW91dCB0eXBlOiAiJXMiIG5vdCByZWNvZ25pemVkLiBVc2Ugb25lIG9mOiVzCgBsYXlvdXQgJXMKAC5mdCAlcwoAYmFkIGxhYmVsIGZvcm1hdCAlcwoAaW4gcm91dGVzcGxpbmVzLCBlZGdlIGlzIGEgbG9vcCBhdCAlcwoAICAgICAgICU3ZCBub2RlcyAlN2QgZWRnZXMgJTd6dSBjb21wb25lbnRzICVzCgBpbiBsYWJlbCBvZiBlZGdlICVzICVzICVzCgAgIEVkZ2UgJXMgJXMgJXMKAG9ydGhvICVzICVzCgBwb2x5bGluZSAlcyAlcwoAc3BsaW5lICVzICVzCgByZWN0YW5nbGUgKCUuMGYsJS4wZikgKCUuMGYsJS4wZikgJXMgJXMKAGluIGNsdXN0ZXIgJXMKACVzIHdhcyBhbHJlYWR5IGluIGEgcmFua3NldCwgZGVsZXRlZCBmcm9tIGNsdXN0ZXIgJXMKACVzIC0+ICVzOiB0YWlsIG5vdCBpbnNpZGUgdGFpbCBjbHVzdGVyICVzCgAlcyAtPiAlczogaGVhZCBpcyBpbnNpZGUgdGFpbCBjbHVzdGVyICVzCgBoZWFkIGNsdXN0ZXIgJXMgaW5zaWRlIHRhaWwgY2x1c3RlciAlcwoAaGVhZCBub2RlICVzIGluc2lkZSB0YWlsIGNsdXN0ZXIgJXMKACVzIC0+ICVzOiBoZWFkIG5vdCBpbnNpZGUgaGVhZCBjbHVzdGVyICVzCgAlcyAtPiAlczogdGFpbCBpcyBpbnNpZGUgaGVhZCBjbHVzdGVyICVzCgB0YWlsIGNsdXN0ZXIgJXMgaW5zaWRlIGhlYWQgY2x1c3RlciAlcwoAdGFpbCBub2RlICVzIGluc2lkZSBoZWFkIGNsdXN0ZXIgJXMKAFVuaGFuZGxlZCBhZGp1c3Qgb3B0aW9uICVzCgByZXBvc2l0aW9uICVzCgBubyBwb3NpdGlvbiBmb3IgZWRnZSB3aXRoIHhsYWJlbCAlcwoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCB0YWlsIGxhYmVsICVzCgBubyBwb3NpdGlvbiBmb3IgZWRnZSB3aXRoIGxhYmVsICVzCgBubyBwb3NpdGlvbiBmb3IgZWRnZSB3aXRoIGhlYWQgbGFiZWwgJXMKAC8vKioqIGJlZ2luX2dyYXBoICVzCgBNYXguIGl0ZXJhdGlvbnMgKCVkKSByZWFjaGVkIG9uIGdyYXBoICVzCgBDb3VsZCBub3QgcGFyc2UgIl9iYWNrZ3JvdW5kIiBhdHRyaWJ1dGUgaW4gZ3JhcGggJXMKAGluIGxhYmVsIG9mIGdyYXBoICVzCgBDcmVhdGluZyBlZGdlcyB1c2luZyAlcwoAQWRqdXN0aW5nICVzIHVzaW5nICVzCgAlcyB3aGlsZSBvcGVuaW5nICVzCgBkZXJpdmUgZ3JhcGggX2RnXyVkIG9mICVzCgAgXSAgJXp1IHRydWUgJXMKAF0gICVkIHRydWUgJXMKACBdICAlenUgZmFsc2UgJXMKAF0gICVkIGZhbHNlICVzCgBtYWtlUG9seTogdW5rbm93biBzaGFwZSB0eXBlICVzCgBtYWtlQWRkUG9seTogdW5rbm93biBzaGFwZSB0eXBlICVzCgB1c2luZyAlcyBmb3IgdW5rbm93biBzaGFwZSAlcwoAICBvY3RyZWUgc2NoZW1lICVzCgBjYW4ndCBvcGVuIGxpYnJhcnkgZmlsZSAlcwoAY2FuJ3QgZmluZCBsaWJyYXJ5IGZpbGUgJXMKAEJvdW5kaW5nQm94IG5vdCBmb3VuZCBpbiBlcHNmIGZpbGUgJXMKAGNvdWxkbid0IG9wZW4gZXBzZiBmaWxlICVzCgBjb3VsZG4ndCByZWFkIGZyb20gZXBzZiBmaWxlICVzCgBpbiBub2RlICVzCgBzaGFwZWZpbGUgbm90IHNldCBvciBub3QgZm91bmQgZm9yIGVwc2Ygbm9kZSAlcwoAaW4gbGFiZWwgb2Ygbm9kZSAlcwoAZW5kICVzCgByYW5raW5nOiBmYWlsdXJlIHRvIGNyZWF0ZSBzdHJvbmcgY29uc3RyYWludCBlZGdlIGJldHdlZW4gbm9kZXMgJXMgYW5kICVzCgBvb3BzLCBpbnRlcm5hbCBlcnJvcjogdW5oYW5kbGVkIGNvbG9yIHR5cGU9JWQgJXMKACVkICVkICVkICVkICVkICVkICVkICVkICVkICUuMWYgJWQgJWQgJWQgJWQgJWQgJWQKICVkICVzCgByb290ID0gJXMKAC8vKioqIHRleHRzcGFuOiAlcywgZm9udHNpemUgPSAlLjNmLCBmb250bmFtZSA9ICVzCgB0cmllcyA9ICVkLCBtb2RlID0gJXMKAC8vKioqIGNvbW1lbnQ6ICVzCgBmb250bmFtZTogIiVzIiByZXNvbHZlZCB0bzogJXMKACUlJSVQYWdlT3JpZW50YXRpb246ICVzCgBkZWxhdW5heV90cmlhbmd1bGF0aW9uOiAlcwoAZGVsYXVuYXlfdHJpOiAlcwoAZ3ZwcmludGY6ICVzCgBuZXN0aW5nIG5vdCBhbGxvd2VkIGluIHN0eWxlOiAlcwoAdW5tYXRjaGVkICcpJyBpbiBzdHlsZTogJXMKAHVubWF0Y2hlZCAnKCcgaW4gc3R5bGU6ICVzCgAlJSUlVGl0bGU6ICVzCgAlcyBUaXRsZTogJXMKACMgVGl0bGU6ICVzCgAvLyoqKiBiZWdpbl9ub2RlOiAlcwoAcmVhbGxvYyBmYWlsZWQ6ICVzCgBsaWIvcGF0aHBsYW4vJXM6JWQ6ICVzCgBncmlkKCVkLCVkKTogJXMKAENvdWxkIG5vdCBvcGVuICIlcyIgZm9yIHdyaXRpbmcgOiAlcwoAc3RhcnQgcG9ydDogKCUuNWcsICUuNWcpLCB0YW5nZW50IGFuZ2xlOiAlLjVnLCAlcwoAZW5kIHBvcnQ6ICglLjVnLCAlLjVnKSwgdGFuZ2VudCBhbmdsZTogJS41ZywgJXMKACBbJXp1XSAlcCBzZXQgJWQgKCUuMDJmLCUuMDJmKSAoJS4wMmYsJS4wMmYpICVzCgAlJSAlcwoAIyAlcwoAICBtb2RlICAgJXMKAGNvbmp1Z2F0ZV9ncmFkaWVudDogdW5leHBlY3RlZCBsZW5ndGggMCB2ZWN0b3IKACVzIHRvIGNoYW5nZSBkcmF3aW5nIHNpemUsIG11bHRpcGx5IHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9uIHRoZSAuUFMgbGluZSBhYm92ZSBhbmQgdGhlIG51bWJlciBvbiB0aGUgdHdvIGxpbmVzIGJlbG93IChyb3VuZGVkIHRvIHRoZSBuZWFyZXN0IGludGVnZXIpIGJ5IGEgc2NhbGUgZmFjdG9yCgBhZGRfc2VnbWVudDogZXJyb3IKACUuNWcgJS41ZyAlLjVnICVzY29sb3IKADAgMCAwIGVkZ2Vjb2xvcgoAMC44IDAuOCAwLjggc2V0cmdiY29sb3IKADAgMCAxIHNldHJnYmNvbG9yCgAxIDAgMCBzZXRyZ2Jjb2xvcgoAMCAwIDAgc2V0cmdiY29sb3IKACVkICVkIHNldGxheWVyCgAvLyoqKiBlbmRfbGF5ZXIKAFVURi04IGlucHV0IHVzZXMgbm9uLUxhdGluMSBjaGFyYWN0ZXJzIHdoaWNoIGNhbm5vdCBiZSBoYW5kbGVkIGJ5IHRoaXMgUG9zdFNjcmlwdCBkcml2ZXIKAExldHRlcgoALy8qKiogYmVnaW5fY2x1c3RlcgoALy8qKiogZW5kX2NsdXN0ZXIKAHJlbW92aW5nIGVtcHR5IGNsdXN0ZXIKAENlbnRlcgoAV2FybmluZzogbm8gdmFsdWUgZm9yIHdpZHRoIG9mIG5vbi1BU0NJSSBjaGFyYWN0ZXIgJXUuIEZhbGxpbmcgYmFjayB0byB3aWR0aCBvZiBzcGFjZSBjaGFyYWN0ZXIKAGJhc2UgcmVmZXJlcgoAJSVQYWdlVHJhaWxlcgoAJSVUcmFpbGVyCgAvLyoqKiBiZXppZXIKACIlcyIgd2FzIG5vdCBmb3VuZCBhcyBhIGZpbGUgb3IgYXMgYSBzaGFwZSBsaWJyYXJ5IG1lbWJlcgoAc3RvcAoAIGN1cnZldG8KAG5ld3BhdGggJS4wZiAlLjBmIG1vdmV0bwoAJS4wZiAlLjBmIGxpbmV0bwoAIGxheW91dD1uZWF0bwoAbm9kZSAlcyBpbiBncmFwaCAlcyBoYXMgbm8gcG9zaXRpb24KACVzIG1heHBzaHQgYW5kIG1heHBzd2lkIGhhdmUgbm8gbWVhbmluZyBpbiBEV0IgMi4wLCBzZXQgcGFnZSBib3VuZGFyaWVzIGluIGdwaWMgYW5kIGluIDEwdGggRWRpdGlvbgoAJXMgYXJyb3doZWFkIGhhcyBubyBtZWFuaW5nIGluIERXQiAyLCBhcnJvd2hlYWQgPSA3IG1ha2VzIGZpbGxlZCBhcnJvd2hlYWRzIGluIGdwaWMgYW5kIGluIDEwdGggRWRpdGlvbgoAJXMgYXJyb3doZWFkIGlzIHVuZGVmaW5lZCBpbiBEV0IgMiwgaW5pdGlhbGx5IDEgaW4gZ3BpYywgMiBpbiAxMHRoIEVkaXRpb24KAG1ham9yaXphdGlvbgoALy8qKiogcG9seWdvbgoAb3ZlcmZsb3cgd2hlbiBjb21wdXRpbmcgZWRnZSB3ZWlnaHQgc3VtCgBzZmRwIG9ubHkgc3VwcG9ydHMgc3RhcnQ9cmFuZG9tCgBub2RlIHBvc2l0aW9ucyBhcmUgaWdub3JlZCB1bmxlc3Mgc3RhcnQ9cmFuZG9tCgBjbG9zZXBhdGggZmlsbAoAIGVsbGlwc2VfcGF0aCBmaWxsCgAgICUuMGYgJS4wZiBjZWxsCgAlZiAlZiAlZiAlZiBjZWxsCgBncmFwaCAlcyBpcyBkaXNjb25uZWN0ZWQuIEhlbmNlLCB0aGUgY2lyY3VpdCBtb2RlbAoAZ3JhcGggaXMgZGlzY29ubmVjdGVkLiBIZW5jZSwgdGhlIGNpcmN1aXQgbW9kZWwKAGVkZ2VzIGluIGdyYXBoICVzIGhhdmUgbm8gbGVuIGF0dHJpYnV0ZS4gSGVuY2UsIHRoZSBtZHMgbW9kZWwKAGNpcmN1aXQgbW9kZWwgbm90IHlldCBzdXBwb3J0ZWQgaW4gR21vZGU9c2dkLCByZXZlcnRpbmcgdG8gc2hvcnRwYXRoIG1vZGVsCgBtZHMgbW9kZWwgbm90IHlldCBzdXBwb3J0ZWQgaW4gR21vZGU9c2dkLCByZXZlcnRpbmcgdG8gc2hvcnRwYXRoIG1vZGVsCgBub2RlICclcycsIGdyYXBoICclcycgc2l6ZSB0b28gc21hbGwgZm9yIGxhYmVsCgAlcyBEV0IgMiBkb2Vzbid0IHVzZSBmaWxsIGFuZCBkb2Vzbid0IGRlZmluZSBmaWxsdmFsCgBbIHtDYXRhbG9nfSA8PCAvVVJJIDw8IC9CYXNlICVzID4+ID4+Ci9QVVQgcGRmbWFyawoAWyAvQ3JvcEJveCBbJWQgJWQgJWQgJWRdIC9QQUdFUyBwZGZtYXJrCgAgIC9Cb3JkZXIgWyAwIDAgMCBdCiAgL0FjdGlvbiA8PCAvU3VidHlwZSAvVVJJIC9VUkkgJXMgPj4KICAvU3VidHlwZSAvTGluawovQU5OIHBkZm1hcmsKAHRyb3VibGUgaW4gaW5pdF9yYW5rCgBsaW5ldGhpY2sgPSAwOyBvbGRsaW5ldGhpY2sgPSBsaW5ldGhpY2sKACBzZXRsaW5ld2lkdGgKAGdzYXZlCiVkICVkICVkICVkIGJveHByaW0gY2xpcCBuZXdwYXRoCgBnc2F2ZSAlZyAlZyB0cmFuc2xhdGUgbmV3cGF0aAoALy8qKiogZW5kX2dyYXBoCgBsYXlvdXQgYXR0cmlidXRlIGlzIGludmFsaWQgZXhjZXB0IG9uIHRoZSByb290IGdyYXBoCgBpbiBjaGVja3BhdGgsIGJveGVzICV6dSBhbmQgJXp1IGRvbid0IHRvdWNoCgBtZXJnZV9vbmV3YXkgZ2xpdGNoCgAlcyBkb24ndCBjaGFuZ2UgYW55dGhpbmcgYmVsb3cgdGhpcyBsaW5lIGluIHRoaXMgZHJhd2luZwoATm9kZSBub3QgYWRqYWNlbnQgdG8gY2VsbCAtLSBBYm9ydGluZwoAaW5jb21wYXJhYmxlIHNlZ21lbnRzICEhIC0tIEFib3J0aW5nCgBBbHRlcm5hdGl2ZWx5LCBjb25zaWRlciBydW5uaW5nIG5lYXRvIHVzaW5nIC1HcGFjaz10cnVlIG9yIGRlY29tcG9zaW5nCgBsYWJlbF9zY2hlbWUgPSAlZCA+IDQgOiBpZ25vcmluZwoAZ3ZyZW5kZXJfc2V0X3N0eWxlOiB1bnN1cHBvcnRlZCBzdHlsZSAlcyAtIGlnbm9yaW5nCgBBcnJvdyB0eXBlICIlcyIgdW5rbm93biAtIGlnbm9yaW5nCgBmZHAgZG9lcyBub3Qgc3VwcG9ydCBzdGFydD1zZWxmIC0gaWdub3JpbmcKACVzIGF0dHJpYnV0ZSB2YWx1ZSBtdXN0IGJlIDEgb3IgMiAtIGlnbm9yaW5nCgBNb3JlIHRoYW4gMiBjb2xvcnMgc3BlY2lmaWVkIGZvciBhIGdyYWRpZW50IC0gaWdub3JpbmcgcmVtYWluaW5nCgBhcyByZXF1aXJlZCBieSB0aGUgLW4gZmxhZwoAYmJbJXNdICUuNWcgJS41ZyAlLjVnICUuNWcKAC9wYXRoYm94IHsKICAgIC9ZIGV4Y2ggJS41ZyBzdWIgZGVmCiAgICAvWCBleGNoICUuNWcgc3ViIGRlZgogICAgL3kgZXhjaCAlLjVnIHN1YiBkZWYKICAgIC94IGV4Y2ggJS41ZyBzdWIgZGVmCiAgICBuZXdwYXRoIHggeSBtb3ZldG8KICAgIFggeSBsaW5ldG8KICAgIFggWSBsaW5ldG8KICAgIHggWSBsaW5ldG8KICAgIGNsb3NlcGF0aCBzdHJva2UKIH0gZGVmCi9kYmdzdGFydCB7IGdzYXZlICUuNWcgJS41ZyB0cmFuc2xhdGUgfSBkZWYKL2Fycm93bGVuZ3RoIDEwIGRlZgovYXJyb3d3aWR0aCBhcnJvd2xlbmd0aCAyIGRpdiBkZWYKL2Fycm93aGVhZCB7CiAgICBnc2F2ZQogICAgcm90YXRlCiAgICBjdXJyZW50cG9pbnQKICAgIG5ld3BhdGgKICAgIG1vdmV0bwogICAgYXJyb3dsZW5ndGggYXJyb3d3aWR0aCAyIGRpdiBybGluZXRvCiAgICAwIGFycm93d2lkdGggbmVnIHJsaW5ldG8KICAgIGNsb3NlcGF0aCBmaWxsCiAgICBncmVzdG9yZQp9IGJpbmQgZGVmCi9tYWtlYXJyb3cgewogICAgY3VycmVudHBvaW50IGV4Y2ggcG9wIHN1YiBleGNoIGN1cnJlbnRwb2ludCBwb3Agc3ViIGF0YW4KICAgIGFycm93aGVhZAp9IGJpbmQgZGVmCi9wb2ludCB7ICAgIG5ld3BhdGggICAgMiAwIDM2MCBhcmMgZmlsbH0gZGVmL21ha2V2ZWMgewogICAgL1kgZXhjaCBkZWYKICAgIC9YIGV4Y2ggZGVmCiAgICAveSBleGNoIGRlZgogICAgL3ggZXhjaCBkZWYKICAgIG5ld3BhdGggeCB5IG1vdmV0bwogICAgWCBZIGxpbmV0byBzdHJva2UKICAgIFggWSBtb3ZldG8KICAgIHggeSBtYWtlYXJyb3cKfSBkZWYKAC9wYXRoYm94IHsKICAgIC9YIGV4Y2ggbmVnICUuNWcgc3ViIGRlZgogICAgL1kgZXhjaCAlLjVnIHN1YiBkZWYKICAgIC94IGV4Y2ggbmVnICUuNWcgc3ViIGRlZgogICAgL3kgZXhjaCAlLjVnIHN1YiBkZWYKICAgIG5ld3BhdGggeCB5IG1vdmV0bwogICAgWCB5IGxpbmV0bwogICAgWCBZIGxpbmV0bwogICAgeCBZIGxpbmV0bwogICAgY2xvc2VwYXRoIHN0cm9rZQp9IGRlZgoAJSFQUy1BZG9iZS0yLjAKL25vZGUgewogIC9ZIGV4Y2ggZGVmCiAgL1ggZXhjaCBkZWYKICAveSBleGNoIGRlZgogIC94IGV4Y2ggZGVmCiAgbmV3cGF0aAogIHggeSBtb3ZldG8KICB4IFkgbGluZXRvCiAgWCBZIGxpbmV0bwogIFggeSBsaW5ldG8KICBjbG9zZXBhdGggZmlsbAp9IGRlZgovY2VsbCB7CiAgL1kgZXhjaCBkZWYKICAvWCBleGNoIGRlZgogIC95IGV4Y2ggZGVmCiAgL3ggZXhjaCBkZWYKICBuZXdwYXRoCiAgeCB5IG1vdmV0bwogIHggWSBsaW5ldG8KICBYIFkgbGluZXRvCiAgWCB5IGxpbmV0bwogIGNsb3NlcGF0aCBzdHJva2UKfSBkZWYKAH0gYmluZCBkZWYKAC5QUyAlLjVmICUuNWYKAG92ZXJsYXA6ICVzIHZhbHVlICVkIHNjYWxpbmcgJS4wNGYKACAgYmVhdXRpZnlfbGVhdmVzICVkIG5vZGUgd2VpZ2h0cyAlZCByb3RhdGlvbiAlLjAzZgoAICByZXB1bHNpdmUgZXhwb25lbnQ6ICUuMDNmCgAgIEsgOiAlLjAzZiBDIDogJS4wM2YKACVzICUuM2YKAAppbnRlcnNlY3Rpb24gYXQgJS4zZiAlLjNmCgAgICAgc2NhbGUgJS4zZgoAdG9ydXMgeyAlLjNmLCAlLjNmCgAgICAgPCU5LjNmLCAlOS4zZiwgJTkuM2Y+LCAlLjNmCgAgaW4gJXMgLSBzZXR0aW5nIHRvICUuMDJmCgBjaXJjbGUgJXMgJS4wZiwlLjBmLCUuMGYKAHJlY3QgJXMgJS4wZiwlLjBmICUuMGYsJS4wZgoAJWQgJWQgJWQgJS4wZiAlZCAlZCAlZCAlZCAlZCAlLjNmICVkICUuNGYgJS4wZiAlLjBmICUuMGYgJS4wZiAlLjBmICUuMGYgJS4wZiAlLjBmCgAgJS4wZiAlLjBmICUuMGYgJS4wZiAlLjBmICUuMGYgJS4wZiAlLjBmICUuMGYgJS4wZgoAJSUlJVBhZ2U6IDEgMQolJSUlUGFnZUJvdW5kaW5nQm94OiAlLjBmICUuMGYgJS4wZiAlLjBmCgBwb3NbJXp1XSAlLjBmICUuMGYKAC5uciBTRiAlLjBmCnNjYWxldGhpY2tuZXNzID0gJS4wZgoAJXMgc2F2ZSBwb2ludCBzaXplIGFuZCBmb250Ci5uciAuUyBcbigucwoubnIgREYgXG4oLmYKAHNob3dwYWdlCiUlJSVUcmFpbGVyCiUlJSVCb3VuZGluZ0JveDogJS5mICUuZiAlLmYgJS5mCgBhZGRpbmcgJXp1IGl0ZW1zLCB0b3RhbCBhcmVhID0gJWYsIHcgPSAlZiwgYXJlYS93PSVmCgBnYXA9JWYsJWYKACAgYXNwZWN0ICVmCgBhICVmIGIgJWYgYyAlZiBkICVmIHIgJWYKAG1vZGVsICVkIHNtYXJ0X2luaXQgJWQgc3RyZXNzd3QgJWQgaXRlcmF0aW9ucyAlZCB0b2wgJWYKAFNvbHZpbmcgbW9kZWwgJWQgaXRlcmF0aW9ucyAlZCB0b2wgJWYKACVzIGNvb3JkICUuNWcgJS41ZyBodCAlZiB3aWR0aCAlZgoAcmVjICVmICVmICVmICVmCgAlcyA6ICVmICVmICVmICVmCgAlcyA6ICVmICVmCgBtYXhwc2h0ID0gJWYKbWF4cHN3aWQgPSAlZgoAbWRzTW9kZWw6IGRlbHRhID0gJWYKACByMSAlZiByMiAlZgoAUGFja2luZzogY29tcHV0ZSBncmlkIHNpemUKAGdzYXZlCgAlJUVuZENvbW1lbnRzCnNhdmUKAFVucmVjb2duaXplZCBjaGFyYWN0ZXIgJyVjJyAoJWQpIGluIHNpZGVzIGF0dHJpYnV0ZQoASW1hZ2VzIHVuc3VwcG9ydGVkIGluICJiYWNrZ3JvdW5kIiBhdHRyaWJ1dGUKACVzIEdOVSBwaWMgdnMuIDEwdGggRWRpdGlvbiBkXChlJ3RlbnRlCgByZXNldCAlcyBzZXQgdG8ga25vd24gc3RhdGUKACVnICVnIHNldF9zY2FsZSAlZCByb3RhdGUgJWcgJWcgdHJhbnNsYXRlCgAlZiAlZiB0cmFuc2xhdGUKACVkICVkIHRyYW5zbGF0ZQoALy8qKiogZWxsaXBzZQoAVW5yZWNvZ25pemVkIG92ZXJsYXAgdmFsdWUgIiVzIiAtIHVzaW5nIGZhbHNlCgBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlCgAlczogdnNucHJpbnRmIGZhaWx1cmUKAGVuZHBhZ2UKc2hvd3BhZ2UKZ3Jlc3RvcmUKAGVuZApyZXN0b3JlCgBsYXlvdXQgd2FzIG5vdCBkb25lCgBMYXlvdXQgd2FzIG5vdCBkb25lCgAvLyoqKiBwb2x5bGluZQoAdHJ5aW5nIHRvIGRlbGV0ZSBhIG5vbi1saW5lCgAjIGVuZCBvZiBGSUcgZmlsZQoAU2luZ2xlCgByZW5kZXJlciBmb3IgJXMgaXMgdW5hdmFpbGFibGUKAGR5bmFtaWMgbG9hZGluZyBub3QgYXZhaWxhYmxlCgAlLjBmICUuMGYgbGluZXRvIHN0cm9rZQoAY2xvc2VwYXRoIHN0cm9rZQoAIGVsbGlwc2VfcGF0aCBzdHJva2UKAC8vKioqIGJlZ2luX2VkZ2UKAC8vKioqIGVuZF9lZGdlCgBsb3N0ICVzICVzIGVkZ2UKAG92ZXJmbG93IHdoZW4gY2FsY3VsYXRpbmcgdmlydHVhbCB3ZWlnaHQgb2YgZWRnZQoAYWRkX3RyZWVfZWRnZTogbWlzc2luZyB0cmVlIGVkZ2UKAGluIHJvdXRlc3BsaW5lcywgY2Fubm90IGZpbmQgTk9STUFMIGVkZ2UKAHNob3dwYWdlCgAlZCAlZCAlZCBiZWdpbnBhZ2UKAC8vKioqIGJlZ2luX3BhZ2UKAC8vKioqIGVuZF9wYWdlCgBGaWxlbmFtZSAiJXMiIGlzIHVuc2FmZQoAbGFiZWw6IGFyZWEgdG9vIGxhcmdlIGZvciBydHJlZQoALy8qKiogZW5kX25vZGUKAFVzaW5nIGRlZmF1bHQgY2FsY3VsYXRpb24gZm9yIHJvb3Qgbm9kZQoAY29udGFpbl9ub2RlcyBjbHVzdCAlcyByYW5rICVkIG1pc3Npbmcgbm9kZQoAJWYgJWYgJWYgJWYgbm9kZQoAPDwgL1BhZ2VTaXplIFslZCAlZF0gPj4gc2V0cGFnZWRldmljZQoAaW4gY2hlY2twYXRoLCBib3ggJXp1IGhhcyBMTCBjb29yZCA+IFVSIGNvb3JkCgBpbiBjaGVja3BhdGgsIGJveCAwIGhhcyBMTCBjb29yZCA+IFVSIGNvb3JkCgBjbHVzdGVyIG5hbWVkICVzIG5vdCBmb3VuZAoAbWluY3Jvc3M6IHBhc3MgJWQgaXRlciAlZCB0cnlpbmcgJWQgY3VyX2Nyb3NzICVsbGQgYmVzdF9jcm9zcyAlbGxkCgBub2RlICVzLCBwb3J0ICVzIHVucmVjb2duaXplZAoAJXMlcyB1bnN1cHBvcnRlZAoAY2x1c3RlciBjeWNsZSAlcyAtLSAlcyBub3Qgc3VwcG9ydGVkCgAlcyAtPiAlczogc3BsaW5lIHNpemUgPiAxIG5vdCBzdXBwb3J0ZWQKAGxheW91dCBhYm9ydGVkCgBwYWdlZGlyPSVzIGlnbm9yZWQKAFR3byBjbHVzdGVycyBuYW1lZCAlcyAtIHRoZSBzZWNvbmQgd2lsbCBiZSBpZ25vcmVkCgBJbGxlZ2FsIGF0dHJpYnV0ZSAlcyBpbiAlcyAtIGlnbm9yZWQKAFVua25vd24gdmFsdWUgJXMgZm9yIGF0dHJpYnV0ZSAibW9kZWwiIGluIGdyYXBoICVzIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlcyBmb3IgYXR0cmlidXRlICJtb2RlIiBpbiBncmFwaCAlcyAtIGlnbm9yZWQKAHN0YXJ0PTAgbm90IHN1cHBvcnRlZCB3aXRoIG1vZGU9c2VsZiAtIGlnbm9yZWQKAE92ZXJsYXAgdmFsdWUgIiVzIiB1bnN1cHBvcnRlZCAtIGlnbm9yZWQKAFVua25vd24gdmFsdWUgJXMgZm9yIFJPV1MgLSBpZ25vcmVkCgBVbmtub3duIHZhbHVlICVzIGZvciBDT0xVTU5TIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlcyBmb3IgVkFMSUdOIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlcyBmb3IgQUxJR04gLSBpZ25vcmVkCgBJbGxlZ2FsIHZhbHVlICVzIGZvciBGSVhFRFNJWkUgLSBpZ25vcmVkCgBJbGxlZ2FsIHZhbHVlICUuKnMgZm9yIFNUWUxFIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlcyBmb3IgQkFMSUdOIGluIFREIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlcyBmb3IgQUxJR04gaW4gVEQgLSBpZ25vcmVkCgBST1dTUEFOIHZhbHVlIGNhbm5vdCBiZSAwIC0gaWdub3JlZAoAQ09MU1BBTiB2YWx1ZSBjYW5ub3QgYmUgMCAtIGlnbm9yZWQKAG5vZGUgJXMsIHBvcnQgJXMsIHVucmVjb2duaXplZCBjb21wYXNzIHBvaW50ICclcycgLSBpZ25vcmVkCgBVbmtub3duICJzcGxpbmVzIiB2YWx1ZTogIiVzIiAtIGlnbm9yZWQKAGluIHJvdXRlc3BsaW5lcywgUHNob3J0ZXN0cGF0aCBmYWlsZWQKAGluIHJvdXRlc3BsaW5lcywgUHJvdXRlc3BsaW5lIGZhaWxlZAoAIyBwbHVnaW4gbG9hZGluZyBvZiBkZXBlbmRlbmN5ICIlLipzIiBmYWlsZWQKAFBhcnNpbmcgb2YgIiVzIiBmYWlsZWQKACVzOiVkOiBjbGFpbWVkIHVucmVhY2hhYmxlIGNvZGUgd2FzIHJlYWNoZWQKACMgdW5zdWNjZXNzZnVsIHBsdWdpbiBsb2FkCgAlLjVnICUuNWcgdHJhbnNsYXRlIG5ld3BhdGggdXNlcl9zaGFwZV8lZAoAbnNpemVzY2FsZT0lZixpdGVyYXRpb25zPSVkCgBjdHJsLT5vdmVybGFwPSVkCgAlcyAlZCBub2RlcyAlZCBlZGdlcyBtYXhpdGVyPSVkIGJhbGFuY2U9JWQKAC8vKioqIGJlZ2luX2xheWVyOiAlcywgJWQvJWQKAGRlZ2VuZXJhdGUgY29uY2VudHJhdGVkIHJhbmsgJXMsJWQKACAgbWF4IGxldmVscyAlZAoACSVzICVkCgAgIEJhcm5lcy1IdXR0IGNvbnN0YW50ICUuMDNmIHRvbGVyYW5jZSAgJS4wM2YgbWF4aXRlciAlZAoAZ3Z3cml0ZV9ub196IHByb2JsZW0gJWQKACAgcXVhZHRyZWUgc2l6ZSAlZCBtYXhfbGV2ZWwgJWQKAHJlYnVpbGRfdmxpc3RzOiBsZWFkIGlzIG51bGwgZm9yIHJhbmsgJWQKAHJlYnVpbGRfdmxpc3RzOiByYW5rIGxlYWQgJXMgbm90IGluIG9yZGVyICVkIG9mIHJhbmsgJWQKACAgc21vb3RoaW5nICVzIG92ZXJsYXAgJWQgaW5pdGlhbF9zY2FsaW5nICUuMDNmIGRvX3Nocmlua2luZyAlZAoAICBjb29saW5nICUuMDNmIHN0ZXAgc2l6ZSAgJS4wM2YgYWRhcHRpdmUgJWQKAFVuc3VwcG9ydGVkIGNoYXJzZXQgdmFsdWUgJWQKAGluIHJvdXRlc3BsaW5lcywgaWxsZWdhbCB2YWx1ZXMgb2YgcHJldiAlZCBhbmQgbmV4dCAlZCwgbGluZSAlZAoAICBlZGdlX2xhYmVsaW5nX3NjaGVtZSAlZAoAYWdkaWN0b2Y6IHVua25vd24ga2luZCAlZAoAICByYW5kb20gc3RhcnQgJWQgc2VlZCAlZAoAJWQgJWQgJWQgJS4wZiAlZCAlZCAlZCAlZCAlZCAlLjFmICVkICVkICVkICVkCgAlJSUlUGFnZUJvdW5kaW5nQm94OiAlZCAlZCAlZCAlZAoAJSUlJUJvdW5kaW5nQm94OiAlZCAlZCAlZCAlZAoAJSUlJVBhZ2U6ICVkICVkCgAlcyBuby4gY2VsbHMgJWQgVyAlZCBIICVkCgBNYXhyYW5rID0gJWQsIG1pbnJhbmsgPSAlZAoAc3RlcCBzaXplID0gJWQKACUlJSVQYWdlczogJWQKACMgUGFnZXM6ICVkCgAlJSUlRW5kUGFnZTogJWQKACJmb250Y2hhciI6ICVkCgAgIGZsYWdzICAlZAoAICBzaXplICAgJWQKACVzIGRhc2h3aWQgaXMgMC4xIGluIDEwdGggRWRpdGlvbiwgMC4wNSBpbiBEV0IgMiBhbmQgaW4gZ3BpYwoAJXMgbWF4cHNodCBhbmQgbWF4cHN3aWQgYXJlIHByZWRlZmluZWQgdG8gMTEuMCBhbmQgOC41IGluIGdwaWMKACAlZCVzIGl0ZXJhdGlvbnMgJS4yZiBzZWMKAApmaW5hbCBlID0gJWYgJWQgaXRlcmF0aW9ucyAlLjJmIHNlYwoAcm91dGVzcGxpbmVzOiAlZCBlZGdlcywgJXp1IGJveGVzICUuMmYgc2VjCgAlZCBub2RlcyAlLjJmIHNlYwoAJXMlenUgbm9kZXMgJXp1IGVkZ2VzICVkIGl0ZXIgJS4yZiBzZWMKAApmaW5pc2hlZCBpbiAlLjJmIHNlYwoAOiAlLjJmIHNlYwoAIG5vZGVbc2hhcGU9cG9pbnRdCgBTdGFydGluZyBwaGFzZSAyIFtkb3RfbWluY3Jvc3NdCgBTdGFydGluZyBwaGFzZSAzIFtkb3RfcG9zaXRpb25dCgBTdGFydGluZyBwaGFzZSAxIFtkb3RfcmFua10KACJyZWN0IjogWyUuMDNmLCUuMDNmLCUuMDNmLCUuMDNmXQoAaW5zdGFsbF9pbl9yYW5rLCBsaW5lICVkOiBORF9vcmRlciglcykgWyVkXSA+IEdEX3JhbmsoUm9vdClbJWRdLmFuIFslZF0KAGluc3RhbGxfaW5fcmFuaywgbGluZSAlZDogR0RfcmFuayhnKVslZF0udiArIE5EX29yZGVyKCVzKSBbJWRdID4gR0RfcmFuayhnKVslZF0uYXYgKyBHRF9yYW5rKFJvb3QpWyVkXS5hbiBbJWRdCgBpbnN0YWxsX2luX3JhbmssIGxpbmUgJWQ6IHJhbmsgJWQgbm90IGluIHJhbmsgcmFuZ2UgWyVkLCVkXQoAZmFpbGVkIGF0IG5vZGUgJWRbMV0KAGZhaWxlZCBhdCBub2RlICVkWzBdCgAgICVkIC0tICVkW2xhYmVsPSIlZiJdCgAgICVkIFtwb3M9IiUuMGYsJS4wZiEiXQoAIF0KAERvdDogWwoAIm9iamVjdHMiOiBbCgAic3ViZ3JhcGhzIjogWwoAImVkZ2VzIjogWwoAIm5vZGVzIjogWwoAWCBlbHNlIFoKCWRlZmluZSBzZXRmaWxsdmFsIFkgZmlsbHZhbCA9IFk7CglkZWZpbmUgYm9sZCBZIFk7CglkZWZpbmUgZmlsbGVkIFkgZmlsbCBZOwpaCgBpZiBib3hyYWQgPiAxLjAgJiYgZGFzaHdpZCA8IDAuMDc1IHRoZW4gWAoJZmlsbHZhbCA9IDE7CglkZWZpbmUgZmlsbCBZIFk7CglkZWZpbmUgc29saWQgWSBZOwoJZGVmaW5lIHJlc2V0IFkgc2NhbGU9MS4wIFk7ClgKACBBQk9SVElORwoAJSVFT0YKACVzIHJlc3RvcmUgcG9pbnQgc2l6ZSBhbmQgZm9udAoucHMgXG4oLlMKLmZ0IFxuKERGCgBdCi5QRQoAaW52YWxpZGF0ZV9wYXRoOiBza2lwcGVkIG92ZXIgTENBCgBJbnZhbGlkICVkLWJ5dGUgVVRGOCBmb3VuZCBpbiBpbnB1dCBvZiBncmFwaCAlcyAtIHRyZWF0ZWQgYXMgTGF0aW4tMS4gUGVyaGFwcyAiLUdjaGFyc2V0PWxhdGluMSIgaXMgbmVlZGVkPwoAVVRGOCBjb2RlcyA+IDQgYnl0ZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIChncmFwaCAlcykgLSB0cmVhdGVkIGFzIExhdGluLTEuIFBlcmhhcHMgIi1HY2hhcnNldD1sYXRpbjEiIGlzIG5lZWRlZD8KADwvdGV4dD4KADwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KADwvcmFkaWFsR3JhZGllbnQ+CjwvZGVmcz4KADwvbWFwPgoAPC9zdmc+CgA8L2E+CjwvZz4KACAgICByb3RhdGUgICA8JTkuM2YsICU5LjNmLCAlOS4zZj4KACAgICBzY2FsZSAgICA8JTkuM2YsICU5LjNmLCAlOS4zZj4KADwvdGl0bGU+CgAiIHR5cGU9InRleHQvY3NzIj8+CgA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KACAgICB0cmFuc2xhdGU8JTkuM2YsICU5LjNmLCAlZC4wMDA+CgA7Ii8+CgAgUGFnZXM6ICVkIC0tPgoAKQogLS0+CgAgLT4KADwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgoAKSI+CgByXyVkIiBjeD0iNTAlJSIgY3k9IjUwJSUiIHI9Ijc1JSUiIGZ4PSIlLjBmJSUiIGZ5PSIlLjBmJSUiPgoAIiA+CgAjZGVjbGFyZSAlcyA9ICVzOwoACSVzCXNvcnJ5LCB0aGUgZ3JvZmYgZm9sa3MgY2hhbmdlZCBncGljOyBzZW5kIGFueSBjb21wbGFpbnQgdG8gdGhlbTsKAAklcwlpbnN0YWxsIGEgbW9yZSByZWNlbnQgdmVyc2lvbiBvZiBncGljIG9yIHN3aXRjaCB0byBEV0Igb3IgMTB0aCBFZGl0aW9uIHBpYzsKAF07CgBpZiBmaWxsdmFsID4gMC40IHRoZW4gWAoJZGVmaW5lIHNldGZpbGx2YWwgWSBmaWxsdmFsID0gMSAtIFk7CglkZWZpbmUgYm9sZCBZIHRoaWNrbmVzcyAyIFk7CgAjdmVyc2lvbiAzLjY7CgBlbGxpcHNlIGF0dHJzMCAlc3dpZCAlLjVmIGh0ICUuNWYgYXQgKCUuNWYsJS41Zik7CgAiIGF0ICglLjVmLCUuNWYpOwoAJSVCZWdpbkRvY3VtZW50OgoAJXp1IGJveGVzOgoAcGFjayBpbmZvOgoAc3ByaW5nX2VsZWN0cmljYWxfY29udHJvbDoKAFVuc3VwcG9ydGVkIGNoYXJzZXQgIiVzIiAtIGFzc3VtaW5nIHV0Zi04CgAgICAgICBhbWJpZW50SW50ZW5zaXR5IDAuMzMKACNGSUcgMy4yCgAtMgoAJXMgbm9uLWZhdGFsIHJ1bi10aW1lIHBpYyB2ZXJzaW9uIGRldGVybWluYXRpb24sIHZlcnNpb24gMgoAJXMgZmlsbHZhbCBpcyAwLjMgaW4gMTB0aCBFZGl0aW9uIChmaWxsIDAgbWVhbnMgYmxhY2spLCAwLjUgaW4gZ3BpYyAoZmlsbCAwIG1lYW5zIHdoaXRlKSwgdW5kZWZpbmVkIGluIERXQiAyCgAlcyByZXNldCB3b3JrcyBpbiBncGljIGFuZCAxMHRoIGVkaXRpb24sIGJ1dCBpc24ndCBkZWZpbmVkIGluIERXQiAyCgBzZXR1cExhdGluMQoAXDAwMQoAJXMgICAgICAgIHRvbGVyYW5jZSAwLjAxCgAgICAgdG9sZXJhbmNlIDAuMQoAJSVQYWdlczogMQoAICAgICAgICBkaWZmdXNlQ29sb3IgMSAxIDEKADEwMC4wMAoAIEVQU0YtMy4wCgAlcyBib3hyYWQgaXMgbm93IDAuMCBpbiBncGljLCBlbHNlIGl0IHJlbWFpbnMgMi4wCgBzcGhlcmUgezwlOS4zZiwgJTkuM2YsICU5LjNmPiwgMS4wCgBXYXJuaW5nOiBubyB2YWx1ZSBmb3Igd2lkdGggb2YgQVNDSUkgY2hhcmFjdGVyICV1LiBGYWxsaW5nIGJhY2sgdG8gMAoAaW5zdGFsbF9pbl9yYW5rLCBsaW5lICVkOiAlcyAlcyByYW5rICVkIGkgPSAlZCBhbiA9IDAKAGNvbmNlbnRyYXRlPXRydWUgbWF5IG5vdCB3b3JrIGNvcnJlY3RseS4KAE5vIGxpYnogc3VwcG9ydC4KAHR3b3BpOiB1c2Ugb2Ygd2VpZ2h0PTAgY3JlYXRlcyBkaXNjb25uZWN0ZWQgY29tcG9uZW50LgoAdGhlIGdyYXBoIGludG8gY29ubmVjdGVkIGNvbXBvbmVudHMuCgBPcnRob2dvbmFsIGVkZ2VzIGRvIG5vdCBjdXJyZW50bHkgaGFuZGxlIGVkZ2UgbGFiZWxzLiBUcnkgdXNpbmcgeGxhYmVscy4KAGd2UmVuZGVySm9icyAlczogJS4yZiBzZWNzLgoAbWluY3Jvc3MgJXM6ICVsbGQgY3Jvc3NpbmdzLCAlLjJmIHNlY3MuCgAlcyBpcyBub3QgYSBrbm93biBjb2xvci4KAGlzIGluYXBwcm9wcmlhdGUuIFJldmVydGluZyB0byB0aGUgc2hvcnRlc3QgcGF0aCBtb2RlbC4KAGlzIHVuZGVmaW5lZC4gUmV2ZXJ0aW5nIHRvIHRoZSBzaG9ydGVzdCBwYXRoIG1vZGVsLgoAVW5hYmxlIHRvIHJlY2xhaW0gYm94IHNwYWNlIGluIHNwbGluZSByb3V0aW5nIGZvciBlZGdlICIlcyIgLT4gIiVzIi4gU29tZXRoaW5nIGlzIHByb2JhYmx5IHNlcmlvdXNseSB3cm9uZy4KAEVycm9yIGR1cmluZyBjb252ZXJzaW9uIHRvICJVVEYtOCIuIFF1aXRpbmcuCgBvcmRlcmluZyAnJXMnIG5vdCByZWNvZ25pemVkLgoAZ3JhZGllbnQgcGVuIGNvbG9ycyBub3QgeWV0IHN1cHBvcnRlZC4KACAgaW5pdENNYWpWUFNDIGRvbmU6ICVkIGdsb2JhbCBjb25zdHJhaW50cyBnZW5lcmF0ZWQuCgBUaGUgY2hhcmFjdGVyICclYycgYXBwZWFycyBpbiBib3RoIHRoZSBsYXllcnNlcCBhbmQgbGF5ZXJsaXN0c2VwIGF0dHJpYnV0ZXMgLSBsYXllcmxpc3RzZXAgaWdub3JlZC4KAHRoZSBhc3BlY3QgYXR0cmlidXRlIGhhcyBiZWVuIGRpc2FibGVkIGR1ZSB0byBpbXBsZW1lbnRhdGlvbiBmbGF3cyAtIGF0dHJpYnV0ZSBpZ25vcmVkLgoAVGhlIGxheWVyc2VsZWN0IGF0dHJpYnV0ZSAiJXMiIGRvZXMgbm90IG1hdGNoIGFueSBsYXllciBzcGVjaWZlZCBieSB0aGUgbGF5ZXJzIGF0dHJpYnV0ZSAtIGlnbm9yZWQuCgAlenUgb3V0IG9mICV6dSBsYWJlbHMgcG9zaXRpb25lZC4KACV6dSBvdXQgb2YgJXp1IGV4dGVyaW9yIGxhYmVscyBwb3NpdGlvbmVkLgoAICBnZW5lcmF0ZSBlZGdlIGNv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IHNldHRpbmcgYSBib3VuZGluZyBib3ggc2l6ZSwgc2VlIGRvdCgxKSkKAGVycm9yIGluIGNvbG9yeGxhdGUoKQoAdHJ1bmNhdGluZyBzdHlsZSAnJXMnCgBJbGxlZ2FsIHZhbHVlIGluICIlcyIgY29sb3IgYXR0cmlidXRlOyBmbG9hdCBleHBlY3RlZCBhZnRlciAnOycKAGRlZmluZSBhdHRyczAgJSUgJSU7IGRlZmluZSB1bmZpbGxlZCAlJSAlJTsgZGVmaW5lIHJvdW5kZWQgJSUgJSU7IGRlZmluZSBkaWFnb25hbHMgJSUgJSUKADxzdmcgd2lkdGg9IiVkcHQiIGhlaWdodD0iJWRwdCIKACMgZGVwZW5kZW5jaWVzICIlLipzIiBkaWQgbm90IG1hdGNoICIlLipzIgoAIyB0eXBlICIlLipzIiBkaWQgbm90IG1hdGNoICIlLipzIgoAJGMgY3JlYXRlIGltYWdlICUuMmYgJS4yZiAtaW1hZ2UgInBob3RvXyVzIgoATm8gb3IgaW1wcm9wZXIgaW1hZ2UgZmlsZT0iJXMiCgBmaWxlIGxvYWRpbmcgaXMgZGlzYWJsZWQgYmVjYXVzZSB0aGUgZW52aXJvbm1lbnQgY29udGFpbnMgU0VSVkVSX05BTUU9IiVzIgoAQ291bGQgbm90IHBhcnNlIHhkb3QgIiVzIgoATm8gbG9hZGltYWdlIHBsdWdpbiBmb3IgIiVzIgoAIFslenVdICglLjAyZiwlLjAyZikgKCUuMDJmLCUuMDJmKSAlcCAiJXMiCgBmb250bmFtZTogdW5hYmxlIHRvIHJlc29sdmUgIiVzIgoARHVwbGljYXRlIGNsdXN0ZXIgbmFtZSAiJXMiCgB1bnJlY29nbml6ZWQgYXBpIG5hbWUgIiVzIgoAaW1hZ2UgY3JlYXRlIHBob3RvICJwaG90b18lcyIgLWZpbGUgIiVzIgoATm8gb3IgaW1wcm9wZXIgc2hhcGVmaWxlPSIlcyIgZm9yIG5vZGUgIiVzIgoATm8gb3IgaW1wcm9wZXIgaW1hZ2U9IiVzIiBmb3Igbm9kZSAiJXMiCgBub2RlICIlcyIgaXMgY29udGFpbmVkIGluIHR3byBub24tY29tcGFyYWJsZSBjbHVzdGVycyAiJXMiIGFuZCAiJXMiCgBFcnJvcjogbm9kZSAiJXMiIGJlbG9uZ3MgdG8gdHdvIG5vbi1uZXN0ZWQgY2x1c3RlcnMgIiVzIiBhbmQgIiVzIgoAICAiJXMiCgAjaW5jbHVkZSAiY29sb3JzLmluYyIKI2luY2x1ZGUgInRleHR1cmVzLmluYyIKI2luY2x1ZGUgInNoYXBlcy5pbmMiCgBVbmtub3duIEhUTUwgZWxlbWVudCA8JXM+IG9uIGxpbmUgJWx1IAoAJXMgaW4gbGluZSAlbHUgCgBzY2FsZSBieSAlZywlZyAKAGNvbXByZXNzICVnIAoATGF5b3V0IHdhcyBub3QgZG9uZS4gIE1pc3NpbmcgbGF5b3V0IHBsdWdpbnM/IAoAiVBORw0KGgoAJSUhUFMtQWRvYmUtMi4wCiUlJSVCb3VuZGluZ0JveDogKGF0ZW5kKQovcG9pbnQgewogIC9ZIGV4Y2ggZGVmCiAgL1ggZXhjaCBkZWYKICBuZXdwYXRoCiAgWCBZIDMgMCAzNjAgYXJjIGZpbGwKfSBkZWYKL2NlbGwgewogIC9ZIGV4Y2ggZGVmCiAgL1ggZXhjaCBkZWYKICAveSBleGNoIGRlZgogIC94IGV4Y2ggZGVmCiAgbmV3cGF0aAogIHggeSBtb3ZldG8KICB4IFkgbGluZXRvCiAgWCBZIGxpbmV0bwogIFggeSBsaW5ldG8KICBjbG9zZXBhdGggc3Ryb2tlCn0gZGVmCi9ub2RlIHsKIC91IGV4Y2ggZGVmCiAvciBleGNoIGRlZgogL2QgZXhjaCBkZWYKIC9sIGV4Y2ggZGVmCiBuZXdwYXRoIGwgZCBtb3ZldG8KIHIgZCBsaW5ldG8gciB1IGxpbmV0byBsIHUgbGluZXRvCiBjbG9zZXBhdGggZmlsbAp9IGRlZgoKAAkAAAEBAQEBAQEBAgMBAQIBAQEBAQEBAQEBAQEBAQEBAQECAQQFAQEBAQEBBgEBBwgJCgoKCgoKCgoKCgEBCwEMAQ0ODxAREhMUFRYTExMTFxgZExobHB0TExMTEwEeAQETAR8gISIjEyQlJhMTExMnKCkTKissLRMTExMTAQEBAQETExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEy4TExMvExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMwExMTExMTExMTExMTExMTEwAAAAAAAAQABAAcABwAIQAhACQAIgAKAAIAFgAJACIAIgAiABUAHQABABQAFAAUABQAFAAUABQACAAEAAUAHAAbABcAHAAhACAAHwAeAAkAEwAAABUAEgAVAAMABwAVABUAFAAUABQAFAAUABQAFAAUAAgABAAFAAUABgAcABoAGAAZACEABwAVABQAFAAUABQAFAAUAAsAFAANABQADAAUABQAFAAOABQAFAAUABAAFAAPABQAEQBBsooFC5UEAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAwAEAAcAAwAEAAUABQAGAAYACAAHAAcAEQAWABIAEQASAAgACAAPAA8AFwAPABgADwAZABoAGgAeABYANAAeAAUAMgAGACIAIgAzABcAGAA1ABkAGgAaACoANgAqADQANwAyAEUAOwA8ADMAOwA8AEYANQBHAEgATAA2ACIASQBKADcARQBOAFAAYgBRAFIAVABGAEcAVQBIAEwAVgBJAEoAWABaAE4ARABQAFEAUgBUADgALwAsAFUAKQBWABsAEABYAFoAXQBdAF0AXQBdAF0AXQBeAF4AXgBeAF4AXgBeAF8AXwBfAF8AXwBfAF8AYAAJAGAAYABgAGAAYABhAGEAYwACAGMAYwBjAGMAYwBkAAAAZAAAAGQAZABkAGUAAABlAGUAZQBlAGUAZgAAAAAAZgBmAGYAZgBnAAAAZwBnAGcAZwBoAAAAaABoAGgAaABoAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAQdSOBQvNAa4ALgAvADMANQAwADcAqgDbANsA2wDbAAAAPQCHADcANwDbANsAAAAoADUALgAyAC8AYgAAAAAARwAAANsA2wBRAAAA2wDbANsAAADbAIQAVQDbAIIA2wAAAIEA2wAAAD4AQgBBAEgARABSAFsAAAAAAF4AXwDbAAAA2wDbANsAAAAAAHsASQBXAFIAWgBaAF0AAABfAAAAXwAAAGUAXQBfAAAAXQBuAGoAAABpAAAAbgAAANsAkwCaAKEAqACrAHAAsQC4AL8AxgDNANMAQbKQBQvPAVwAAQBdAF0AXgBeAF8AXwBcAFwAXABcAFwAYABcAFwAXABhAFwAXABiAGIAYgBiAGIAYgBiAGMAZABlAGYAXABcAFwAZwBcAFwAXABgAFwAXABhAFwAYQBcAGgAYQBcAGIAYgBiAGIAYgBiAGIAYgBjAGQAZQBlAFwAZgBcAFwAXABnAGgAYQBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAAABcAFwAXABcAFwAXABcAFwAXABcAFwAXABBkZIFCzABAQIDAQQBBQEGBwcBBgYGBgYGBgYGBgYGBgYGBgMGBgYGBgYGBgYGBgYGBgYGBgYAQdKSBQujBAoACwAMAA0ADgAKAA8AEAARABIAEwAKABQAFQAVABUAFgAXABUAGAAVABUAGQAVABUAFQAaABUAFQAKABUAFQAVABYAFwAYABUAFQAZABUAFQAVABoAFQAVABUAFQAbAAwADAAkAB4AHgAgACEAIAAhACQAJQAmAC0AMgAvAC4AKgAlACYAKAApADMAKgA0ACsANQA2ADcAPAAyAEcAPQAiAEUAIgA/AEAARgAzADQASAA1ADYANwAvAEkAKgBHAEoARQBMAFwAPABGAFwAPQBNAEgATgBPAFIASQBBAFAAUQBKAEwAUwBUADEAVQBWAFcATQBOAFgATwBSAFkAUABRAFoAWwBTAEQAVABVAFYAVwBLAEQALABYACwAWQA4ACwAWgBbAB0AHQAdAB0AHQAdAB0AHwAfAB8AHwAfAB8AHwAjACMAIwAjACMAIwAjACcAXAAnACcAJwAnACcAMAAwADkAHAA5ADkAOQA5ADkAOgBcADoAXAA6ADoAOgA7AFwAOwA7ADsAOwA7AD4AXABcAD4APgA+AD4AQgBcAEIAQgBCAEIAQwBcAEMAQwBDAEMAQwAJAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAAwAAAANAAAADgAAAA4AQYCXBQvRBRHu7hMIA+7+7u7uAe7u7gHu7gn+7hIVF+4SAe7u7u4KDe7u7u7u7u7u7gHu7hYIAQEZDhju7hsYGu7uHe7u7u4BFfvu7u7uEB7u7u4AAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhYRAgICAgICAgICAgICAhIQAhMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAhQCFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICDgIPAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgECAwQFBgcICQoLDA0AAAALAwQFDwcDDA0GDA0ODA0aFQABAAMHDgYPCAwNEhMJKhAREBYvMA0yERMuMhQSFBJBEywTQkAqQhn//ywAAAAAIgwNDiMPCRARChARzBARLUX8AQb2Dwf2JAIQES8wKDZJSiYxOzw9Nio5Oj4/L9hARDA3JUdDNUgrAAA4AAAAAAADCQAAAAEOAgsMCCMkJTM4OgANEBIbFhwSJy8iFzAeOQYHMgUPERQYKQATKQAAAAAANBUoHR4AISYxHy47GSwAGwAgGiorNwA1Ni0AAAAAAAICAQADAwEAAQABAQEAAgEBAAICAwEBAAAFAAEDAQMFAwEBAQECAAEABAIAAgMBAAMCAQABAQABAQEDAAAAAAAXGBgYGRobGxwcHR0eHh8fICAhISIjIyUmJCQnJygoKCkpKioqKyssLC0uLi8wMTMyNDQ0NTU1NjY3NwAAAADu7vzu7u7u7u4fIO757+7u7gzu7u4GD+7u8u7u7u7u9e4AQeGcBQsvAwgEIQULEhMnFBUWKTJBFxgZGiwzNEJGGxwdLh5LHyBrZXkAX0FHX3N0cmRhdGEAQaCdBQsV4B4AAKMMAACHDAAALFMAAD9RAAAGAEHAnQUL4+sBWsQAAFVdyX/Jf/8AQ7UAALst1L6u1P8AO6cAABR3/f3Ahv8A+sIAAFVdyX/Jf/8A47MAALst1L6u1P8A26UAABR3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/////gAAAU0AAHu24EDg0P8Au7kAAIH//wD1//8AS6sAAIH/7gDl7v8AYp0AAIH/zQDFzf8AsZAAAIH/iwCGi/8AhxEAANRz7u6C7v8Ad1cAAOPX0NAgkP8AW7oAAOvB//8+lv8A2qsAAOvA7u46jP8A8Z0AAOvAzc0yeP8AR5EAAOvAi4siUv8AlwgAAAAAgICAgP8A6TUAAFX/gACAAP8AzAcAAAAAgICAgP8AdjIAAAD/gIAAAP8AVk8AANT/gIAAgP8AURQAABtE9fXes/8A87cAABtF///nuv8An6kAABtE7u7Yrv8Aw5sAABtEzc26lv8AF48AABtDi4t+Zv8AkEsAAAAA//////8Af1AAAAAA9fX19f8AnwgAAAAAvr6+vv8AOTYAAFX//wD/AP8A1AcAAAAAvr6+vv8AgDIAAO+5sLAwYP8Ai08AAMTd8KAg8P8AqgoAACr/////AP8A2LcAACr/////AP8AgKkAACr/7u7uAP8AsZsAACr/zc3NAP8ABY8AACr/i4uLAP8AJTUAADjAzZrNMv8AQbCJBwsDtHkCAEG+iQcLhQigQP////////////////////////////////////////////////////////////////////////////////////8AAqoCRAMABAAEqgY5BnEBqgKqAgAEgwQAAqoCAAI5AgAEAAQABAAEAAQABAAEAAQABAAEOQI5AoMEgwSDBI0DXgfHBVYFVgXHBeMEcwTHBccFqgIdA8cF4wQdB8cFxwVzBMcFVgVzBOMExwXHBY0HxwXHBeMEqgI5AqoCwQMABKoCjQMABI0DAASNA6oCAAQABDkCOQIABDkCOQYABAAEAAQABKoCHQM5AgAEAATHBQAEAASNA9cDmgHXA1QE////////////////////////////////////////////////////////////////////////////////////////AAKqAnEEAAQABAAIqgY5AqoCqgIABI8EAAKqAgACOQIABAAEAAQABAAEAAQABAAEAAQABKoCqgKPBI8EjwQABHEHxwVWBccFxwVWBeMEOQY5Bh0DAAQ5BlYFjQfHBTkG4wQ5BscFcwRWBccFxwUACMcFxwVWBaoCOQKqAqYEAASqAgAEcwSNA3MEjQOqAgAEcwQ5AqoCcwQ5AqoGcwQABHMEcwSNAx0DqgJzBAAExwUABAAEjQMnA8MBJwMpBP///////////////////////////////////////////////////////////////////////////////////////wACqgJcAwAEAASqBjkGtgGqAqoCAARmBQACqgIAAjkCAAQABAAEAAQABAAEAAQABAAEAASqAqoCZgVmBWYFAARcB+ME4wRWBccF4wTjBMcFxwWqAo0DVgVzBKoGVgXHBeMExwXjBAAEcwTHBeMEqgbjBHMEcwQdAzkCHQNgAwAEqgIABAAEjQMABI0DOQIABAAEOQI5Ao0DOQLHBQAEAAQABAAEHQMdAzkCAASNA1YFjQONAx0DMwMzAjMDVAT///////////////////////////////////////////////////////////////////////////////////////8AAh0DcQQABAAEqgY5BjkCqgKqAgAEjwQAAqoCAAI5AgAEAAQABAAEAAQABAAEAAQABAAEqgKqAo8EjwSPBAAEqAZWBVYFVgXHBVYFVgXHBTkGHQMABFYF4wQdB8cFxwXjBMcFVgVzBOMExwVWBR0HVgXjBOMEqgI5AqoCjwQABKoCAAQABI0DAASNA6oCAARzBDkCOQIABDkCOQZzBAAEAAQABB0DHQM5AnMEjQNWBQAEjQMdA8kCwwHJAo8E///ceQIAQc6RBwuFCKBA/////////////////////////////////////////////////////////////////////////////////////zkCOQLXAnMEcwQdB1YFhwGqAqoCHQOsBDkCqgI5AjkCcwRzBHMEcwRzBHMEcwRzBHMEcwQ5AjkCrASsBKwEcwQfCFYFVgXHBccFVgXjBDkGxwU5AgAEVgVzBKoGxwU5BlYFOQbHBVYF4wTHBVYFjQdWBVYF4wQ5AjkCOQLBA3MEqgJzBHMEAARzBHMEOQJzBHMExwHHAQAExwGqBnMEcwRzBHMEqgIABDkCcwQABMcFAAQABAAErAIUAqwCrAT///////////////////////////////////////////////////////////////////////////////////////85AqoCywNzBHMEHQfHBecBqgKqAh0DrAQ5AqoCOQI5AnMEcwRzBHMEcwRzBHMEcwRzBHMEqgKqAqwErASsBOMEzQfHBccFxwXHBVYF4wQ5BscFOQJzBMcF4wSqBscFOQZWBTkGxwVWBeMExwVWBY0HVgVWBeMEqgI5AqoCrARzBKoCcwTjBHME4wRzBKoC4wTjBDkCOQJzBDkCHQfjBOME4wTjBB0DcwSqAuMEcwQ5BnMEcwQABB0DPQIdA6wE////////////////////////////////////////////////////////////////////////////////////////OQI5AtcCcwRzBB0HVgWHAaoCqgIdA6wEOQKqAjkCOQJzBHMEcwRzBHMEcwRzBHMEcwRzBDkCOQKsBKwErARzBB8IVgVWBccFxwVWBeMEOQbHBTkCAARWBXMEqgbHBTkGVgU5BscFVgXjBMcFVgWNB1YFVgXjBDkCOQI5AsEDcwSqAnMEcwQABHMEcwQ5AnMEcwTHAccBAATHAaoGcwRzBHMEcwSqAgAEOQJzBAAExwUABAAEAASsAhQCrAKsBP///////////////////////////////////////////////////////////////////////////////////////zkCqgLLA3MEcwQdB8cF5wGqAqoCHQOsBDkCqgI5AjkCcwRzBHMEcwRzBHMEcwRzBHMEcwSqAqoCrASsBKwE4wTNB8cFxwXHBccFVgXjBDkGxwU5AnMExwXjBKoGxwU5BlYFOQbHBVYF4wTHBVYFjQdWBVYF4wSqAjkCqgKsBHMEqgJzBOMEcwTjBHMEqgLjBOMEOQI5AnMEOQIdB+ME4wTjBOMEHQNzBKoC4wRzBDkGcwRzBAAEHQM9Ah0DrAT//xB6AgBB3pkHC4UIoED/////////////////////////////////////////////////////////////////////////////////////zQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBP///////////////////////////////////////////////////////////////////////////////////////80EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQT////////////////////////////////////////////////////////////////////////////////////////NBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0E////////////////////////////////////////////////////////////////////////////////////////zQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBP//OHoCAEHtoQcLhghAj0AAAP///////////////////////////////wIB////////////////////////////////////////////////AgHkAIgBWAJYAqIDtQLdAD0BPQHCAVgC5ACoAeQAGwFYAlgCWAJYAlgCWAJYAlgCWAJYAuQA5ABYAlgCWAK7AbID2QKkAqEC5gJHAiQC1gL5AgEBRAFxAh8CVwPkAv8CeQL/Ap0CZwJaAtgCsQJNBIoCVAJNAjsBGwE7AVgC9AH0ARICRwLPAUcCFAJNAUoCOALoAOwA9AEoAVgDOAIsAkcCRwJmAeEBXgExAgMCSQMNAgICzwFgAQkBYAFYAv//AAD///////////////////////////////8PAf///////////////////////////////////////////////w8B+ADAAVgCWAKxA9YC8wBmAWYBxQFYAvgAsgH4ADkBWAJYAlgCWAJYAlgCWAJYAlgCWAL4APgAWAJYAlgCywG2A+gCsAKoAvoCVQIyAuACBQMaAWIBmQIyAmQD7AIRA4wCEQOuAncCbQLiAskCWQSgAmoCXQJiATkBYgFYAvQB9AEjAlgC2AFYAh4CbAFcAkkC/wADARgCPwFtA0kCQAJYAlgCiAHoAYABQwIPAlUDIgIOAtoBhwEgAYcBWAL//wAA////////////////////////////////AgH///////////////////////////////////////////////8CAeQAiAFYAlgCogO1At0APQE9AcIBWALkAKgB5AAbAVgCWAJYAlgCWAJYAlgCWAJYAlgC5ADkAFgCWAJYArsBsgPZAqQCoQLmAkcCJALWAvkCAQFEAXECHwJYA+MC/wJ5Av8CnQJnAloC2AKwAk0EigJUAk0COwEbATsBWAL0AfQBEgJHAs8BRwIUAk0BSgI4AugA7AD0ASgBWAM4AiwCRwJHAmYB4QFeATECAwJJAw0CAgLPAWABCQFgAVgC//8AAP///////////////////////////////w8B////////////////////////////////////////////////DwH4AMABWAJYArED1gLzAGYBZgHFAVgC+ACyAfgAOQFYAlgCWAJYAlgCWAJYAlgCWAJYAvgA+ABYAlgCWALLAbYD6AKwAqgC+gJVAjIC4AIFAxoBYgGYAjICZQPrAhEDjAIRA64CdwJtAuICyQJZBKACagJdAmIBOQFiAVgC9AH0ASMCWALYAVgCHgJsAVwCSQL/AAMBGAI/AW0DSQJAAlgCWAKIAegBgAFDAg8CVQMiAg4C2gGHASABhwFYAv//QHoCAEH+qQcLhQigQP////////////////////////////////////////////////////////////////////////////////////+LAjUDrgO0BhcFmgc9BjMCHwMfAwAEtAaLAuMCiwKyAhcFFwUXBRcFFwUXBRcFFwUXBRcFsgKyArQGtAa0Bj8EAAh5BX0FlgUpBg4FmgQzBgQGXAJcAj8FdQTnBvwFTAbTBEwGjwUUBeME2wV5BekHewXjBHsFHwOyAh8DtAYABAAE5wQUBWYEFAXsBNECFAUSBTkCOQKiBDkCywcSBeUEFAUUBUoDKwQjAxIFvASLBrwEvAQzBBcFsgIXBbQG////////////////////////////////////////////////////////////////////////////////////////yQKmAysEtAaRBQQI+gZzAqgDqAMvBLQGCgNSAwoD7AKRBZEFkQWRBZEFkQWRBZEFkQWRBTMDMwO0BrQGtAakBAAIMQYZBt8FpAZ3BXcFkQayBvoC+gIzBhkF9geyBs0G3QXNBikGwwV1BX8GMQbTCCsGywXNBagD7AKoA7QGAAQABGYFugW+BLoFbQV7A7oFsgW+Ar4CUgW+AlYIsgV/BboFugXyA8ME0wOyBTcFZAcpBTcFqASyBewCsgW0Bv///////////////////////////////////////////////////////////////////////////////////////4sCNQOuA7QGFwWaBz0GMwIfAx8DAAS0BosC4wKLArICFwUXBRcFFwUXBRcFFwUXBRcFFwWyArICtAa0BrQGPwQACHkFfQWWBSkGDgWaBDMGBAZcAlwCPwV1BOcG/AVMBtMETAaPBRQF4wTbBXkF6Qd7BeMEewUfA7ICHwO0BgAEAATnBBQFZgQUBewE0QIUBRIFOQI5AqIEOQLLBxIF5QQUBRQFSgMrBCMDEgW8BIsGvAS8BDMEFwWyAhcFtAb////////////////////////////////////////////////////////////////////////////////////////JAqYDKwSRBZEFBAj6BnMCqAOoAy8EtAYKA1IDCgPsApEFkQWRBZEFkQWRBZEFkQWRBZEFMwMzA7QGtAa0BqQEAAgxBhkG3wWkBncFdwWRBrIG+gL6AjMGGQX2B7IGzQbdBc0GKQbDBXUFfwYxBtMIKwbLBc0FqAPsAqgDtAYABAAEZgW6Bb4EugVtBXsDugWyBb4CvgJSBb4CVgiyBX8FugW6BfIDwwTTA7IFNwVkBykFNwWoBLIF7AKyBbQG//9IegIAQY6yBwuFCKBAZgT///////////////////////////////8AAP///////////////////////////////////////////////2YEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgT//2YE////////////////////////////////AAD///////////////////////////////////////////////9mBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYE//9mBP///////////////////////////////wAA////////////////////////////////////////////////ZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBP///////////////////////////////////////////////////////////////////////////////////////2YEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgT//1R6AgBBnroHC4UIoED/////////////////////////////////////////////////////////////////////////////////////aQLwApkCMgQyBM0EpgVHAfAC8ALwAjIE8ALwAvACMgQyBDIEMgQyBDIEMgQyBDIEMgQyBPAC8AIyBDIEMgTwAioGuASHBMkE6ARJBDMEaQU8BToC0AObBA0ErQUbBWQFdgRoBagE2QOlBDAFswTRBnQEkARnBPAC2ALwAjIEMgQyBDQEdQT2A3UEXQT1AgQEXwRIAu8CCQRcAqQGXwRLBHUEdQQcAz0DLANfBOsD9AUCBPIDzAPwAjIE8AIyBP///////////////////////////////////////////////////////////////////////////////////////2kC8ALvArAEsAR5BaYF1gHwAvACdQOwBPAC8ALwAh8DsASwBLAEsASwBLAEsASwBLAEsATwAvACsASwBLAEgQMqBhEFwwTlBCQFjQSrBF8FeAU6AkME8ARsBPYFVwWgBbIErAXjBBcE5QRsBfkEEgfOBOgEewQ3A9gCNwOwBLAEsARDBKcEGASlBJkE9QIEBL4EYwLvAmIEXALgBrkEhwSpBKwEawNyAywDugQ4BEUGawRFBDoEeAOwBHgDsAT///////////////////////////////////////////////////////////////////////////////////////9pAvACmQIyBNkDzQSmBUcB8ALwAvACMgTwAvAC8AIyBDIEMgQyBDIEMgQyBDIEMgQyBDIE8ALwAjIEMgQyBPACKgbjBIcEyQToBEkEMwRpBTwFOgLQA5sEDQQXBhsFZAVZBGQFqATZA6UEMAWzBNEGdASQBGcE8ALYAvACMgQyBDIENAR1BK4DdQRMBDYDBAR1BHQC7wIJBJACpAZfBEsEdQR1BFUDPQNcA3QE6wP0BQIE8gPMA/ACMgTwAjIE////////////////////////////////////////////////////////////////////////////////////////aQLwAiADsASwBNwFpgVpAvAC8AJ1A7AE8ALwAvACLQOwBLAEsASwBLAEsASwBLAEsASwBPAC8AKwBLAEsAQtAyoG6QS4BOcEDwW/BK8EaQVtBToC/QMzBToESgZIBZ4FqwQoBv0EAwR7BUsFdwVpB0EFeAXkBOID0gPiA7AEsASwBL4EvwTxA78EagRIA0gEfwSdAhoDUQSPAqQGfwSPBMoEygSTA6wDgQN1BGsEMAabBIMEQwTiA7AE4gOwBP//YHoCAEGuwgcLhQigQP/////////////////////////////////////////////////////////////////////////////////////QAiYDrAOMBhYFnAjQBSYCogOiAxYFjAbpAqID6QKiAxYFFgUWBRYFFgUWBRYFFgUWBRYFogOiA4wGjAaMBl0EAAh4BXwFlgUqBg8FmQQ0BgMGXgOjA4sFdAS+BvwFTAbTBEwGkAV4Be4E2wV4BekHewXsBHsFogOiA6IDjAYWBRYFzgT8BCsE/ATEBNAC/AQQBTICwQK8BDICyAcQBdsE/AT8BGoDKwQnAxAFvASMBrwEvAQ0BBQFogMUBYwG////////////////////////////////////////////////////////////////////////////////////////vAI4A7ME8AawBS0K5gaoAlkEWQSwBfAG5ALXA+QChAWwBbAFsAWwBbAFsAWwBbAFsAWwBTgDOAPwBvAG8AbvBLYHNgYYBsoFpAZ3BTQFfQazBl4EcQQrBhkFlQfGBs0G3QXNBkIGrwV0BX8GHAYHCRwG5QWJBVkEhAVZBPAGsAWwBVgFmAW1BJgFUAVhA5gFswW8AjkDXgW8AncIswV+BZgFmAX6A78EpQOzBTMF1gdaBTUFxgSwBVkEsAXwBv///////////////////////////////////////////////////////////////////////////////////////9ACJgOsA4wGFgWcCNAFJgKiA6IDFgWMBukCogPpAqIDFgUWBRYFFgUWBRYFFgUWBRYFFgWiA6IDjAaMBowGXQQACHYFfAWWBSAGDwWZBDQGAwZeA6MDiwV0BL4G/AVMBtMETAaQBXgF7gTbBXYF7Ad7BewEewWiA6IDogOMBhYFFgXOBPwEKwT8BMQE0AL5BBAFMgLBArIEMgLJBxAF2wT8BPwEagMrBCcDEAW6BIwGvAS6BDQEFAWiAxQFjAb///////////////////////////////////////////////////////////////////////////////////////+8AjgDswTwBrAFLQrmBqgCWQRZBLAF8AbkAtcD5AKEBbAFsAWwBbAFsAWwBbAFsAWwBbAFOAM4A/AG8AbwBu8Etgc2BhgGygWkBncFNAV9BrMGXgRxBCsGGQWVB8YGzQbdBc0GQgavBXQFfwYcBgcJHAblBYkFWQSEBVkE8AawBbAFWAWYBbUEmAVQBWEDmAWzBbwCOQNeBbwCdwizBXwFmAWYBfoDvwSlA7MFMQXWB1oFNQXGBLAFWQSwBfAG//9oegIAQb7KBwuFCKBA/////////////////////////////////////////////////////////////////////////////////////xQCIwI1AysFkwSWBtcFxQFeAl4CagSTBPYBkwIhAvACkwSTBJMEkwSTBJMEkwSTBJMEkwQhAiECkwSTBJMEbwMxBxAFLwUMBdUFcwQhBNMF5wU7AiMC6QQnBDkHCAY7BtEEOwbyBGQEbQTTBcMEaAeeBHsEkQSiAvACogJWBJYDngRzBOcEzwPnBH0EtgJiBOkEBgIGAjMEBgJxB+kE1QTnBOcERAPRA9MC6QQCBDkGMQQIBL4DCANoBAgDkwT///////////////////////////////////////////////////////////////////////////////////////8UAkoCxwMrBZEENQcABiECtgK2AlwEkQRSApMCSAJOA5EEkQSRBJEEkQSRBJEEkQSRBJEESAJSApEEkQSRBNEDLQeFBWAFGQXsBXsEZATLBR8GpgKmAlAFhQSLB4EGXgYGBV4GSAVoBKIEDAYzBbwHVgX+BKIEpgJOA6YCQgRKA9sE1QQQBR0EEAW6BBkDhQRCBXECcQL2BHEC2wdCBfQEEAUQBaID+gN5A0IFjQTZBqAEjQTnAycDaAQnA5EE////////////////////////////////////////////////////////////////////////////////////////FAISAhcDKwVoBFgGXAW8AUgCSAJqBGgE7AF/AgYCzQJoBGgEaARoBGgEaARoBGgEaARoBAYCBgJoBGgEaARqA8cGcQTJBK4EVAUXBMcDagVtBS8CIwJ1BMsDsgaeBcMFhwTDBY0EBAT8A2gFYgTRBicEBgQ/BEoCzQJKAiMEJwNvBIUEngSaA54E8gOBAgIEngQIAggC5wMIAvoGngR9BJ4EngQrA20DmAKeBLIDvAXTA7IDjQPLAmgEywJoBP///////////////////////////////////////////////////////////////////////////////////////xQCSgKgAysFaATZBqoFCgK2ArYCXARoBDkCkwJIAl4DaARoBGgEaARoBGgEaARoBGgEaARIAkgCaARoBGgErAPZBgYF9gTlBGoFVgQ/BIUFmgWTAqYC5wQlBAoHCgbXBaQE1wXfBD0EPwSHBbgEJwfZBIMESgSmAl4DpgI5BDMDbwTBBMME3QPBBHUE/AJUBNUEYAJgAosEYAI9B9UErgTDBMEEXgPJA0gD1QQZBE4GPwQnBKQD1wJoBNcCaAT//3B6AgBBztIHC4UIoED/////////////////////////////////////////////////////////////////////////////////////7gGmAksDJQXhBIoGrwW5AQADAAPHAyUFKAL+AigCwAPpBHADeARqBIUEOgSHBAUExQSHBIACgAIlBSUFJQXUA24HXgU7BSMF/gU6BcsEzQWFBh4DJASOBdQEawcjBvQF4QT0BZ0FfQTzBA0GVQXOB68F7ATQBAADwAMAAyUFJQUABAgEewSiA5gE3gOaAhMEqARYAlYCSQRKAgwHugRQBJIEegRHA3UDwwKaBPkD5gUKBPADjQNxAwADcQMlBf///////////////////////////////////////////////////////////////////////////////////////wgCAwMUBKAFIAUJB2UGJwKTA5MD2wOgBaACCAOgAsYDnAXrAwMF/wQyBcsELwVvBGkFLwXwAvACoAWgBaAFYwS8BxEGDwa5BawGxQVfBXUGTgeRA8MEiQZ8BTAItwaPBpwFjwZhBjEFeQWrBhkGAwl4BtsFhAWTA8YDkwOgBaAFAATEBCoFQAROBZMEJQOdBHAF1ALFAg4FwQIgCIUFFgVDBTAFKQQaBC4DagWJBOgGtAR/BDQEAAQaAwAEoAX////////////////////////////////////////////////////////////////////////////////////////uAaYCSwMlBeEEigavBbkBAAMAA8cDJQUoAv4CKALAA+kEcAN4BGoEhQQ6BIcE+QPFBIcEEgMSAyUFJQUlBdQDbgdeBTsFIwX+BToFywTNBYUGHgMkBI4F1ARrByMG2AXhBNgFnQV9BPMEDQZVBc4HrwXsBNAEAAPAAwADJQUlBQAElQRuBKEDmgTGA6EClQSABGECVAI5BEgCCQe4BEwEoARxBLEDcwPHApoETgSUBgIEegSNA3EDAANxAyUF////////////////////////////////////////////////////////////////////////////////////////CAIDAxQEoAUgBQkHZQYnApMDkwPbA6AFoAIIA6ACxgOcBesDAwX/BDIFywQvBYgEaQUvBfAC8AKgBaAFoAVjBLwHEQYTBrkFrAbFBV8FdQZOB5sDwwSJBnwFRAijBo8GpgWPBmEGOQV5BasGGQYDCWsG2wWEBZMDxgOTA6AFoAUABEgFMQVJBE0FdQQMAzIFZwXtAusCIQXWAgQIhQUWBU0FMwVFBCMEVgN7BeYEeAerBFsFIwQABBoDAASgBf//eHoCAEHe2gcLyAqgQP/////////////////////////////////////////////////////////////////////////////////////PAZsCNQP8Aw4EuAV1BcQBbQJtAvwD/AP/AXMCBQIXAw4EDgQOBA4EDgQOBA4EDgQOBA4EJAIkAvwD/AP8A7UDJwehBFoERATsBOgDrQMMBfwEBAKNAigEXQPXBioFTAUiBGIFWAStA+YDIgWKBB4HJwTmA78DdAIXA3QC/AP8A1QC1QM0BGIDNAT7A3ECxAM0BNYB6gGjA9YBZAY0BDgENAQ0BMoCIQOuAjQEnQO4BXcDnwMpA4QCrwOEAvwD//8AAP///////////////////////////////wAA////////////////////////////////////////////////zwGbAoID/AMOBNUFowXeAX4CfgL8A/wDEAJzAiMCcAMOBA4EDgQOBA4EDgQOBA4EDgQOBDUCNQL8A/wD/AO1AzAH2QR8BDwECwXnA6wDGQUMBSICpgJgBGID/gZFBWkFQgR9BYEEyAP2AzkFuwRAB2gEKATTA5kCcAOZAvwD/ANnAvMDSwRZA0sEBwSIAssDSwT3AQsC1wP3AYIGSwRNBEsESwTYAjEDxgJLBMkD9gWtA8oDLgPAAs0DwAL8A////////////////////////////////////////////////////////////////////////////////////////88BmwI1A/wDDgS4BXUFxAFtAm0C/AP8A/8BcwIFAhoDDgQOBA4EDgQOBA4EDgQOBA4EDgQkAiQC/AP8A/wDtQMnB6EEWgQuBOwE6AOtAwwF/AQEAo0CKARdA9cGKAU8BSIEUAVYBJ4D5gMiBYoEHwcnBOYDvwN0AhMDdAL8A/wDVAIdBB0EVAMdBNIDcQIdBB0E1gHqAaMD1gFUBh0EGwQdBB0EvgIdA64CHQSRA7gFdwOUAykDhAKvA4QC/AP////////////////////////////////////////////////////////////////////////////////////////PAZsCggP8Aw4E1QWjBd4BfgJ+AvwD/AMQAnMCIwJ5Aw4EDgQOBA4EDgQOBA4EDgQOBA4ENQI1AvwD/AP8A7UD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AAC7OAAAqAAAAGc/AADSAwAAwzIAAMUDAACIOAAA/AAAAEYuAAAYIQAABj0AAL4DAAB/SgAA/QAAAJc0AAClAAAAgzgAAP8AAAC1YgAAtgMAAOw8AAANIAAA8DwAAAwgAADPQQEACAAAAAMAAAD8QQAA1s8AAAsAAAAGAAAAQBcAAMppAAACAAAAAQAAAKsuAAANdQAABAAAAAIAAAAwRQAAAAQAAAMAAAAEAAAAI0QAAOLPAAAFAAAABQAAAIdFAAAEBAAABAAAAAcAAAAWFwAAfTgAAAUAAAAJAAAAfzgAAH9tAAAEAAAACgAAAENFAACw/AEABAAAAAwAAACRMQAAAAABAAAB0NHS09TV1tfY2QBB1vkHCwnwvwAAAAAAAAEAQej5BwsNaW52aXMAAGZpbGxlZABBgPoHCxoUHAAAXVMAAKg3AACaCwAAXHkAAJHGAADLjgBBwPoHC3n//////////////////////////////////////////wAAAAAAAAAE/v//h/7//wcAAAAAAAAAAP//f////3//////////83/+/f//////f///////////D+D/////Mfz///8AAAAAAAAA//////////////8BAPgDAEHQ+wcLQUDX///7/////39/VP3/DwD+3////////////t//////AwD///////+fGf///88/AwAAAAAAAP7///9/Av7///9/AEGa/AcLswH///8HBwAAAAAA/v//B/4HAAAAAP7//////////3z/fy8AYAAAAOD///////8jAAAA/wMAAADgn/n///3FAwAAALADAAMA4If5///9bQMAAABeAAAcAOCv+////e0jAAAAAAEAAADgn/n///3NIwAAALADAAAA4Mc91hjHvwMAAAAAAAAAAODf/f///e8DAAAAAAMAAADg3/3///3vAwAAAEADAAAA4N/9///9/wMAAAAAAwBB4P0HCxn+/////38NAD8AAAAAAAAAliXw/q5sDSAfAEGI/gcLBv/+////AwBBtP4HC3L/////PwD/////fwDt2gcAAAAAUAFQMYKrYiwAAAAAQADJgPUHAAAAAAgBAv////////////////////////8P//////////////8D//8/P/////8/P/+q////P////////99f3B/PD/8f3B8AAAAAQEwAQbD/BwsBBwBBwP8HCyaAAAAA/gMAAP7///////////8fAP7/////////////B+D/////HwBBgIAICxX//////////////////////////z8AQaCACAsV//////////////////////////8PAEHFgAgLyQJg/wf+//+H/v//BwAAAAAAAIAA//9/////f/////8AAAAAAAAA//////////////8BAPgDAAMAAAAAAP//////////PwAAAAMAAADA1///+/////9/f1T9/w8A/t////////////7f/////3sA////////nxn////PPwMAAAAAAAD+////fwL+////fwD+//v//7sWAP///wcHAAAAAAD+//8H//8HAP8D////////////fP9/7///Pf8D7v////////P/Px7/z/8AAO6f+f///cXTnzmAsM//AwDkh/n///1t04c5AF7A/x8A7q/7///97fO/OwAAwf8AAO6f+f///c3zjznAsMP/AADsxz3WGMe/w8c9gACA/wAA7t/9///978PfPWAAw/8AAOzf/f///e/D3z1gQMP/AADs3/3///3/w889gADD/wBBoIMICzj+/////3//B/9//wMAAAAAliXw/q5s/ztfP/8DAAAAAAAAAAP/A6DC//7///8D/v/fD7/+/z/+AgBB+oMIC2f/HwIAAACgAAAA/v8+AP7///////////8fZv7/////////////d2AAAABhAAAAYgAAAGMAAABkAAAAZQAAAGYAAABnAAAAaAAAAGkAAABqAAAAawAAAGwAAABtAAAAbgAAAG8AAAABAEHxhAgLBRUKAAAJAEGIhQgL4AEVEAwTHB4DDR8gISIjGxoRGRkZGRkZGRkZGRYSAg4LDxwYGBgYGBgWFhYWFhYWFhYWFhYWFhYWFhYWFhQcBBwWHBgYGBgYGBYWFhYWFhYWFhYWFhYWFhYWFhYWHCQcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwWHBwcHBwcHBwcHBYcGhwcFhwcHBwcFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYcFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhwWFhYWFhYWFgBBkIcICxICAwQFBgcIAAAJCgsMDQ4PEBEAQa6HCAsEEhMAFABBwIcI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ADYQAACdUgAAlAUAAO5SAADbBAAAJx8AAMAEAADTSgAAZQUAAPZCAABdEwAAOjMAAMBSAACwTQAA5A0AABUFAADdEwAA7DEAAK4JAACUCQAA7wQAAANZAADiWAAASlYAAOtZAADWWQAAu1YAAF5ZAAA5BQAA0E4AAF9YAABvGQAAHRAAAApYAAB2WQAAy1YAAHvIAADXugAAVqwAAG2eAADDkQAAiIYAAGx/AACxeQAATHUAADByAADUbwAAoG8AAGtvAAAvbwAAoG4AALJtAABoyAAAxLoAAEOsAABangAAsJEAAHWGAABZfwAAnnkAADl1AAAdcgAAz28AAJtvAABmbwAAKm8AAJtuAACtbQAAVcgAALG6AAAwrAAAR54AAJ2RAABihgAARn8AAIt5AAAmdQAACnIAAMpvAACWbwAAYW8AACVvAACWbgAAqG0AAFDIAACsugAAK6wAAEKeAACYkQAAXYYAAEF/AACGeQAAIXUAAAVyAADFbwAAkW8AAFxvAAAgbwAAkW4AAKNtAABLyAAAp7oAACasAAA9ngAAk5EAAFiGAAA8fwAAgXkAABx1AAAAcgAAwG8AAIxvAABXbwAAG28AAIxuAACebQAARsgAAKK6AAAhrAAAOJ4AAI6RAABThgAAN38AAHx5AAAXdQAA+3EAALtvAACHbwAAUm8AABZvAACAbgAAmW0AAEHIAACdugAAHKwAADOeAACJkQAAToYAADJ/AAB3eQAAEnUAAPZxAAC2bwAAgm8AAE1vAAD7bgAAe24AAJRtAAA8yAAAmLoAABesAAAungAAhJEAAEmGAAAtfwAAcnkAAAh1AADxcQAAsW8AAH1vAABIbwAA9m4AAHZuAAB6bQAANsgAAMm3AABxqQAAopsAAPaOAABAhgAAKX8AAG55AADvdAAA6RQAAC83AAB1bwAAOW8AALMfAADBbQAAbG0AAHnJAAA+uwAAvawAANSeAAAxkgAA/YYAANN/AAAYegAAs3UAAKJyAADZbwAApW8AAHBvAAA0bwAApW4AALxtAACY6QAAB+YAAJfjAACIFwIAXtgAAFzYAABa2AAAWNgAAPfXAACx1wAA8s8AAPDPAADuzwAA688AANTPAABMzwAARM8AAOvHAACrtwAAU6kAAG2bAADYjgAAMoYAABt/AABgeQAA4XQAAONxAAAKcQAAwnAAAMBwAAC2cAAA4G8AAN5vAADcbwAAr28AAHNvAAA3bwAAqG4AAL9tAABqbQAA7mwAAMpsAACibAAAoGwAAJ1sAADUaQAAvmkAAI1pAACLaQAAemkAAHhpAADWaAAAumgAACFoAAAfaAAAHWgAABtoAAB5ZQAAUGUAAE5lAAAzZQAAMWUAABFkAAAPZAAArWMAAKtjAABxYgAA8WEAABdbAABdUwAAVUYAAJhEAAB+QQAAnz0AAPw8AADqPAAAPTsAAF84AACoNwAAmTEAAGwwAAAIIAAAxB8AABQcAADqFAAAbAwAAOgLAACaCwAACwoAAC0JAAB5BAAARAQAADsEAAAvBAAACQQAALdtAAAAAAAACACu/9EACgCu/67/CwCu/67/rv+u/67/rv+u/67/BQDRAK7/0QDRANEA0QDRANEA0QDRAK7/+/+u/w4A7P+u/67/rv+u/9EA0QDRANEA0QANACUADABCABAAUAATAG0AewAUAJgADwCmAMMArv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/FwCu/3cArv8HAC4Arv8mAK7/FwARACMArv8NAK7/rv+u/67/OgCu/67/NQCu/67/rv8oAK7/BwCu/zsARQCu/0gArv+u/67/rv+u/wBB8bsIC8EGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKAAAAAAAAAAAAgICAgICEAxZAQAfUAgDBxITFFcWFwgLaQwfCgUMDikRKw8tEC8wIDIGNDUbHB0eCwwhIiMkJSYnKAwYGRcEChscGiAqCiEiIyQlJicoDAoOUwosWDFYWFhYWFgMGxwPLlgzISIjJCUmJygbHP9T//8hIiMkJSYnKAz//wX///8JFP//////DBsc/xAVFiEiIyQlJicoGxz/////ISIjJCUmJygM/xITFBEWF////////wwbHP///xIhIiMkJSYnKBsc/////yEiIyQlJicoDP///////xP///////8MGxz/////ISIjJCUmJygbHP////8hIiMkJSYnKBITFBUWFxgZ////////////IyQlJicbEhMUFhciNmgBHzhWISACGxsbXhsbNzlwNtLCTwQ8IkciPyJEIiJYImUiIgUGX2A5BAcICQoLDA0OBGZnXWptBQZvWDtxBwgJCgsMDQ4Ecjxbcz5hRhsSExQWFwQFBj9BYkkHCAkKCwwNDgUGAFwAAAcICQoLDA0OBAAATwAAAFNCAAAAAAAEBQYARFRVBwgJCgsMDQ4FBgAAAAAHCAkKCwwNDgQAKiwuRzEzAAAAAAAABAUGAAAASgcICQoLDA0OBQYAAAAABwgJCgsMDQ4EAAAAAAAATAAAAAAAAAQFBgAAAAAHCAkKCwwNDgUGAAAAAAcICQoLDA0OKSstLzAyNDUAQbvCCAsuKSstMDIABC8AJCMAEhQWGhweIBgABQcvLy8ALy8AAAkIKAAAASICBgAAAAAACABB9sIICz4lAyYTCikVCyoXDi0ZERsMKx0NLB8PIRAAMwAwAC9DADEALwA1LidCMkEAOjgAPDRFADYAQAAAPwBENzs5PQBBwcMIC0UCAwMBAQIBAQEDAwMDAwMDAwEBAQEBAQEBAQEBAQEBAQECAQECAAYBAwMDAwMBAAECAwAEAQIDAAQABAAEAAMCAQIBAgEAQZHECAtFKSoqKissLC0tLS0tLS0tLS0uLzAxMjM0NTY3ODk6Ozw9Pj4/P0FAQkJCQkJCQ0NERERGRUdHR0lISkhLSExITU1OTk9PAEHgxAgLxgGu/67//P/oAPb///8aAAAAJwABADIArv+u/wIAJAADAC8Arv+u/67/rv+u//7/lACu/wkAGwCu/7z/rv+u/6//rv+u/67/rv+u/67/rv8AAAADDxARIzokPSVAFUMmRSdIGEsZTRooHE4dHlBRUllabGtuY2RXaQBIAAAAKAAAABgAAAA4AAAAGAAAAAgAAAAOAAAAbG5yc29saWQAAHNldGxpbmV3aWR0aAAxAAAAACNSAADzUAAAFhMAAEg/AAD3PgAA/z4AQbDGCAvlAYCyAgCQsgIAoLICALCyAgDAsgIA0LICAOCyAgDwsgIAkLICAJCyAgDQsgIA0LICAB8AAAA/AAAAfwAAAAAAAABjPAAAKUoAAEc2AAB1NgAAn1gAAKFiAACqCgAAkEsAAAAAAABs2gAA2uAAAH7YAABIPwAASD8AACNSAADzUAAAYmxhY2sAAAAHAAAAbm9uZQA1LDIAMSw1AHRyYW5zcGFyZW50AAAAAEg/AABIPwAA81AAAPNQAAAaOgAASD8AAPNQAADzUAAAI1IAAPNQAAAjUgAA81AAAAEAAAABAAAAAQAAAAEAQajICAsFAQAAAAEAQbjICAsYLlwiIAAjIABkb3QgcGljIHBsdWdpbjogAEHgyAgL9gRBQgAATz0AAEFJAAAQSAAAQVIAAF87AABBWAAAJ0gAAEIgAACYVQAAQkkAAORcAABDQgAAo1UAAENPAAByHgAAQ1gAAFtIAABIIAAAmmMAAEhCAADUVQAASEkAAK5IAABIWAAAb0gAAEhiAACCVQAASGkAAIVIAABIcgAAGwoAAEh4AAA+SAAASSAAACVdAABLQgAAQj0AAEtJAACjXAAAS1IAAM0QAABLWAAA0VwAAE5CAAC+VQAATkkAAEJdAABOUgAA5jYAAE5YAAAJXQAAUEEAANc2AABQQgAAsFUAAFBJAAAyXQAAUFgAAPVcAABSIAAAyzYAAFMgAABuOAAAWkQAACcWAACFbgAAgGkAAKRoAACXaQAAlWgAAAAAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAgAAAAQAAACyHQAAI1IAAEg/AAAmCAAAkBMAADRWUFNDADdJbmNWUFNDAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU4xMl9HTE9CQUxfX05fMTROb2RlRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQAAAAAAb0MBAKtNAAABAAAAJz0AAC89AAADAAAAdFAAAORCAAAPAAAAPxYAAD8WAAAQAAAAIlsAACJbAAARAAAAZy8AAGcvAAACAAAAaFAAAOBCAAAEAAAAhAQAANBCAAAHAAAAHzEAALsVAAAIAAAAOQkAALsVAAAJAAAAfAQAAJ4VAAAKAAAAMAkAALgVAAALAAAAHjEAAIAVAAAMAAAAOAkAAIAVAAANAAAAewQAAFwVAAAOAAAALwkAAH0VAAASAAAA7DcAQfDNCAtQD24AAEpoAABpaAAAK2gAAERtAAAibgAAQG0AAAAAAAAPbgAANmwAAIZoAADpbgAAAAAAAAAA8D8AAAAAAAD4PwAAAAAAAAAABtDPQ+v9TD4AQcvOCAtlQAO44j9Pu2EFZ6zdPxgtRFT7Iek/m/aB0gtz7z8YLURU+yH5P+JlLyJ/K3o8B1wUMyamgTy9y/B6iAdwPAdcFDMmppE8GC1EVPsh6T8YLURU+yHpv9IhM3982QJA0iEzf3zZAsAAQb/PCAvoFYAYLURU+yEJQBgtRFT7IQnAAwAAAAQAAAAEAAAABgAAAIP5ogBETm4A/CkVANFXJwDdNPUAYtvAADyZlQBBkEMAY1H+ALveqwC3YcUAOm4kANJNQgBJBuAACeouAByS0QDrHf4AKbEcAOg+pwD1NYIARLsuAJzphAC0JnAAQX5fANaROQBTgzkAnPQ5AItfhAAo+b0A+B87AN7/lwAPmAUAES/vAApaiwBtH20Az342AAnLJwBGT7cAnmY/AC3qXwC6J3UA5evHAD178QD3OQcAklKKAPtr6gAfsV8ACF2NADADVgB7/EYA8KtrACC8zwA29JoA46kdAF5hkQAIG+YAhZllAKAUXwCNQGgAgNj/ACdzTQAGBjEAylYVAMmocwB74mAAa4zAABnERwDNZ8MACejcAFmDKgCLdsQAphyWAESv3QAZV9EApT4FAAUH/wAzfj8AwjLoAJhP3gC7fTIAJj3DAB5r7wCf+F4ANR86AH/yygDxhx0AfJAhAGokfADVbvoAMC13ABU7QwC1FMYAwxmdAK3EwgAsTUEADABdAIZ9RgDjcS0Am8aaADNiAAC00nwAtKeXADdV1QDXPvYAoxAYAE12/ABknSoAcNerAGN8+AB6sFcAFxXnAMBJVgA71tkAp4Q4ACQjywDWincAWlQjAAAfuQDxChsAGc7fAJ8x/wBmHmoAmVdhAKz7RwB+f9gAImW3ADLoiQDmv2AA78TNAGw2CQBdP9QAFt7XAFg73gDem5IA0iIoACiG6ADiWE0AxsoyAAjjFgDgfcsAF8BQAPMdpwAY4FsALhM0AIMSYgCDSAEA9Y5bAK2wfwAe6fIASEpDABBn0wCq3dgArl9CAGphzgAKKKQA05m0AAam8gBcd38Ao8KDAGE8iACKc3gAr4xaAG/XvQAtpmMA9L/LAI2B7wAmwWcAVcpFAMrZNgAoqNIAwmGNABLJdwAEJhQAEkabAMRZxADIxUQATbKRAAAX8wDUQ60AKUnlAP3VEAAAvvwAHpTMAHDO7gATPvUA7PGAALPnwwDH+CgAkwWUAMFxPgAuCbMAC0XzAIgSnACrIHsALrWfAEeSwgB7Mi8ADFVtAHKnkABr5x8AMcuWAHkWSgBBeeIA9N+JAOiUlwDi5oQAmTGXAIjtawBfXzYAu/0OAEiatABnpGwAcXJCAI1dMgCfFbgAvOUJAI0xJQD3dDkAMAUcAA0MAQBLCGgALO5YAEeqkAB05wIAvdYkAPd9pgBuSHIAnxbvAI6UpgC0kfYA0VNRAM8K8gAgmDMA9Ut+ALJjaADdPl8AQF0DAIWJfwBVUikAN2TAAG3YEAAySDIAW0x1AE5x1ABFVG4ACwnBACr1aQAUZtUAJwedAF0EUAC0O9sA6nbFAIf5FwBJa30AHSe6AJZpKQDGzKwArRRUAJDiagCI2YkALHJQAASkvgB3B5QA8zBwAAD8JwDqcagAZsJJAGTgPQCX3YMAoz+XAEOU/QANhowAMUHeAJI5nQDdcIwAF7fnAAjfOwAVNysAXICgAFqAkwAQEZIAD+jYAGyArwDb/0sAOJAPAFkYdgBipRUAYcu7AMeJuQAQQL0A0vIEAEl1JwDrtvYA2yK7AAoUqgCJJi8AZIN2AAk7MwAOlBoAUTqqAB2jwgCv7a4AXCYSAG3CTQAtepwAwFaXAAM/gwAJ8PYAK0CMAG0xmQA5tAcADCAVANjDWwD1ksQAxq1LAE7KpQCnN80A5qk2AKuSlADdQmgAGWPeAHaM7wBoi1IA/Ns3AK6hqwDfFTEAAK6hAAz72gBkTWYA7QW3ACllMABXVr8AR/86AGr5uQB1vvMAKJPfAKuAMABmjPYABMsVAPoiBgDZ5B0APbOkAFcbjwA2zQkATkLpABO+pAAzI7UA8KoaAE9lqADSwaUACz8PAFt4zQAj+XYAe4sEAIkXcgDGplMAb27iAO/rAACbSlgAxNq3AKpmugB2z88A0QIdALHxLQCMmcEAw613AIZI2gD3XaAAxoD0AKzwLwDd7JoAP1y8ANDebQCQxx8AKtu2AKMlOgAAr5oArVOTALZXBAApLbQAS4B+ANoHpwB2qg4Ae1mhABYSKgDcty0A+uX9AInb/gCJvv0A5HZsAAap/AA+gHAAhW4VAP2H/wAoPgcAYWczACoYhgBNveoAs+evAI9tbgCVZzkAMb9bAITXSAAw3xYAxy1DACVhNQDJcM4AMMu4AL9s/QCkAKIABWzkAFrdoAAhb0cAYhLSALlchABwYUkAa1bgAJlSAQBQVTcAHtW3ADPxxAATbl8AXTDkAIUuqQAdssMAoTI2AAi3pADqsdQAFvchAI9p5AAn/3cADAOAAI1ALQBPzaAAIKWZALOi0wAvXQoAtPlCABHaywB9vtAAm9vBAKsXvQDKooEACGpcAC5VFwAnAFUAfxTwAOEHhgAUC2QAlkGNAIe+3gDa/SoAayW2AHuJNAAF8/4Aub+eAGhqTwBKKqgAT8RaAC34vADXWpgA9MeVAA1NjQAgOqYApFdfABQ/sQCAOJUAzCABAHHdhgDJ3rYAv2D1AE1lEQABB2sAjLCsALLA0ABRVUgAHvsOAJVywwCjBjsAwEA1AAbcewDgRcwATin6ANbKyADo80EAfGTeAJtk2ADZvjEApJfDAHdY1ABp48UA8NoTALo6PABGGEYAVXVfANK99QBuksYArC5dAA5E7QAcPkIAYcSHACn96QDn1vMAInzKAG+RNQAI4MUA/9eNAG5q4gCw/cYAkwjBAHxddABrrbIAzW6dAD5yewDGEWoA98+pAClz3wC1yboAtwBRAOKyDQB0uiQA5X1gAHTYigANFSwAgRgMAH5mlAABKRYAn3p2AP39vgBWRe8A2X42AOzZEwCLurkAxJf8ADGoJwDxbsMAlMU2ANioVgC0qLUAz8wOABKJLQBvVzQALFaJAJnO4wDWILkAa16qAD4qnAARX8wA/QtKAOH0+wCOO20A4oYsAOnUhAD8tKkA7+7RAC41yQAvOWEAOCFEABvZyACB/AoA+0pqAC8c2ABTtIQATpmMAFQizAAqVdwAwMbWAAsZlgAacLgAaZVkACZaYAA/Uu4AfxEPAPS1EQD8y/UANLwtADS87gDoXcwA3V5gAGeOmwCSM+8AyRe4AGFYmwDhV7wAUYPGANg+EADdcUgALRzdAK8YoQAhLEYAWfPXANl6mACeVMAAT4b6AFYG/ADlea4AiSI2ADitIgBnk9wAVeiqAIImOADK55sAUQ2kAJkzsQCp1w4AaQVIAGWy8AB/iKcAiEyXAPnRNgAhkrMAe4JKAJjPIQBAn9wA3EdVAOF0OgBn60IA/p3fAF7UXwB7Z6QAuqx6AFX2ogAriCMAQbpVAFluCAAhKoYAOUeDAInj5gDlntQASftAAP9W6QAcD8oAxVmKAJT6KwDTwcUAD8XPANtargBHxYYAhUNiACGGOwAseZQAEGGHACpMewCALBoAQ78SAIgmkAB4PIkAqMTkAOXbewDEOsIAJvTqAPdnigANkr8AZaMrAD2TsQC9fAsApFHcACfdYwBp4d0AmpQZAKgplQBozigACe20AESfIABOmMoAcIJjAH58IwAPuTIAp/WOABRW5wAh8QgAtZ0qAG9+TQClGVEAtfmrAILf1gCW3WEAFjYCAMQ6nwCDoqEAcu1tADmNegCCuKkAazJcAEYnWwAANO0A0gB3APz0VQABWU0A4HGAAEGz5QgLrQFA+yH5PwAAAAAtRHQ+AAAAgJhG+DwAAABgUcx4OwAAAICDG/A5AAAAQCAlejgAAACAIoLjNgAAAAAd82k1/oIrZUcVZ0AAAAAAAAA4QwAA+v5CLna/OjuevJr3DL29/f/////fPzxUVVVVVcU/kSsXz1VVpT8X0KRnERGBPwAAAAAAAMhC7zn6/kIu5j8kxIL/vb/OP7X0DNcIa6w/zFBG0quygz+EOk6b4NdVPwBB7uYIC5UQ8D9uv4gaTzubPDUz+6k99u8/XdzYnBNgcbxhgHc+muzvP9FmhxB6XpC8hX9u6BXj7z8T9mc1UtKMPHSFFdOw2e8/+o75I4DOi7ze9t0pa9DvP2HI5mFO92A8yJt1GEXH7z+Z0zNb5KOQPIPzxso+vu8/bXuDXaaalzwPiflsWLXvP/zv/ZIatY4890dyK5Ks7z/RnC9wPb4+PKLR0zLso+8/C26QiTQDarwb0/6vZpvvPw69LypSVpW8UVsS0AGT7z9V6k6M74BQvMwxbMC9iu8/FvTVuSPJkbzgLamumoLvP69VXOnj04A8UY6lyJh67z9Ik6XqFRuAvHtRfTy4cu8/PTLeVfAfj7zqjYw4+WrvP79TEz+MiYs8dctv61tj7z8m6xF2nNmWvNRcBITgW+8/YC86PvfsmjyquWgxh1TvP504hsuC54+8Hdn8IlBN7z+Nw6ZEQW+KPNaMYog7Ru8/fQTksAV6gDyW3H2RST/vP5SoqOP9jpY8OGJ1bno47z99SHTyGF6HPD+msk/OMe8/8ucfmCtHgDzdfOJlRSvvP14IcT97uJa8gWP14d8k7z8xqwlt4feCPOHeH/WdHu8/+r9vGpshPbyQ2drQfxjvP7QKDHKCN4s8CwPkpoUS7z+Py86JkhRuPFYvPqmvDO8/tquwTXVNgzwVtzEK/gbvP0x0rOIBQoY8MdhM/HAB7z9K+NNdOd2PPP8WZLII/O4/BFuOO4Cjhrzxn5JfxfbuP2hQS8ztSpK8y6k6N6fx7j+OLVEb+AeZvGbYBW2u7O4/0jaUPujRcbz3n+U02+fuPxUbzrMZGZm85agTwy3j7j9tTCqnSJ+FPCI0Ekym3u4/imkoemASk7wcgKwERdruP1uJF0iPp1i8Ki73IQrW7j8bmklnmyx8vJeoUNn10e4/EazCYO1jQzwtiWFgCM7uP+9kBjsJZpY8VwAd7UHK7j95A6Ha4cxuPNA8wbWixu4/MBIPP47/kzze09fwKsPuP7CvervOkHY8Jyo21dq/7j934FTrvR2TPA3d/ZmyvO4/jqNxADSUj7ynLJ12srnuP0mjk9zM3oe8QmbPotq27j9fOA+9xt54vIJPnVYrtO4/9lx77EYShrwPkl3KpLHuP47X/RgFNZM82ie1Nkev7j8Fm4ovt5h7PP3Hl9QSre4/CVQc4uFjkDwpVEjdB6vuP+rGGVCFxzQ8t0ZZiiap7j81wGQr5jKUPEghrRVvp+4/n3aZYUrkjLwJ3Ha54aXuP6hN7zvFM4y8hVU6sH6k7j+u6SuJeFOEvCDDzDRGo+4/WFhWeN3Ok7wlIlWCOKLuP2QZfoCqEFc8c6lM1FWh7j8oIl6/77OTvM07f2aeoO4/grk0h60Sary/2gt1EqDuP+6pbbjvZ2O8LxplPLKf7j9RiOBUPdyAvISUUfl9n+4/zz5afmQfeLx0X+zodZ/uP7B9i8BK7oa8dIGlSJqf7j+K5lUeMhmGvMlnQlbrn+4/09QJXsuckDw/Xd5PaaDuPx2lTbncMnu8hwHrcxSh7j9rwGdU/eyUPDLBMAHtoe4/VWzWq+HrZTxiTs8286LuP0LPsy/FoYi8Eho+VCek7j80NzvxtmmTvBPOTJmJpe4/Hv8ZOoRegLytxyNGGqfuP25XcthQ1JS87ZJEm9mo7j8Aig5bZ62QPJlmitnHqu4/tOrwwS+3jTzboCpC5azuP//nxZxgtmW8jES1FjKv7j9EX/NZg/Z7PDZ3FZmuse4/gz0epx8Jk7zG/5ELW7TuPykebIu4qV285cXNsDe37j9ZuZB8+SNsvA9SyMtEuu4/qvn0IkNDkrxQTt6fgr3uP0uOZtdsyoW8ugfKcPHA7j8nzpEr/K9xPJDwo4KRxO4/u3MK4TXSbTwjI+MZY8juP2MiYiIExYe8ZeVde2bM7j/VMeLjhhyLPDMtSuyb0O4/Fbu809G7kbxdJT6yA9XuP9Ix7pwxzJA8WLMwE57Z7j+zWnNuhGmEPL/9eVVr3u4/tJ2Ol83fgrx689O/a+PuP4czy5J3Gow8rdNamZ/o7j/62dFKj3uQvGa2jSkH7u4/uq7cVtnDVbz7FU+4ovPuP0D2pj0OpJC8OlnljXL57j80k6049NZovEde+/J2/+4/NYpYa+LukbxKBqEwsAXvP83dXwrX/3Q80sFLkB4M7z+smJL6+72RvAke11vCEu8/swyvMK5uczycUoXdmxnvP5T9n1wy4448etD/X6sg7z+sWQnRj+CEPEvRVy7xJ+8/ZxpOOK/NYzy15waUbS/vP2gZkmwsa2c8aZDv3CA37z/StcyDGIqAvPrDXVULP+8/b/r/P12tj7x8iQdKLUfvP0mpdTiuDZC88okNCIdP7z+nBz2mhaN0PIek+9wYWO8/DyJAIJ6RgryYg8kW42DvP6ySwdVQWo48hTLbA+Zp7z9LawGsWTqEPGC0AfMhc+8/Hz60ByHVgrxfm3szl3zvP8kNRzu5Kom8KaH1FEaG7z/TiDpgBLZ0PPY/i+cukO8/cXKdUezFgzyDTMf7UZrvP/CR048S94+82pCkoq+k7z99dCPimK6NvPFnji1Ir+8/CCCqQbzDjjwnWmHuG7rvPzLrqcOUK4Q8l7prNyvF7z/uhdExqWSKPEBFblt20O8/7eM75Lo3jrwUvpyt/dvvP53NkU07iXc82JCegcHn7z+JzGBBwQVTPPFxjyvC8+8/3hIElQAAAAD///////////////9gOwIAFAAAAEMuVVRGLTgAQbD3CAsDdDsCAEHQ9wgLR0xDX0NUWVBFAAAAAExDX05VTUVSSUMAAExDX1RJTUUAAAAAAExDX0NPTExBVEUAAExDX01PTkVUQVJZAExDX01FU1NBR0VTAEGg+AgLB0MuVVRGLTgAQbj4CAugEFCsAgDorAIAeK0CAE5vIGVycm9yIGluZm9ybWF0aW9uAElsbGVnYWwgYnl0ZSBzZXF1ZW5jZQBEb21haW4gZXJyb3IAUmVzdWx0IG5vdCByZXByZXNlbnRhYmxlAE5vdCBhIHR0eQBQZXJtaXNzaW9uIGRlbmllZABPcGVyYXRpb24gbm90IHBlcm1pdHRlZABObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5AE5vIHN1Y2ggcHJvY2VzcwBGaWxlIGV4aXN0cwBWYWx1ZSB0b28gbGFyZ2UgZm9yIGRhdGEgdHlwZQBObyBzcGFjZSBsZWZ0IG9uIGRldmljZQBPdXQgb2YgbWVtb3J5AFJlc291cmNlIGJ1c3kASW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwAUmVzb3VyY2UgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUASW52YWxpZCBzZWVrAENyb3NzLWRldmljZSBsaW5rAFJlYWQtb25seSBmaWxlIHN5c3RlbQBEaXJlY3Rvcnkgbm90IGVtcHR5AENvbm5lY3Rpb24gcmVzZXQgYnkgcGVlcgBPcGVyYXRpb24gdGltZWQgb3V0AENvbm5lY3Rpb24gcmVmdXNlZABIb3N0IGlzIGRvd24ASG9zdCBpcyB1bnJlYWNoYWJsZQBBZGRyZXNzIGluIHVzZQBCcm9rZW4gcGlwZQBJL08gZXJyb3IATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwBCbG9jayBkZXZpY2UgcmVxdWlyZWQATm8gc3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABEZXZpY2Ugbm90IGEgc3RyZWFtAE5vIGRhdGEgYXZhaWxhYmxlAERldmljZSB0aW1lb3V0AE91dCBvZiBzdHJlYW1zIHJlc291cmNlcwBMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UARmlsZSBkZXNjcmlwdG9yIGluIGJhZCBzdGF0ZQBOb3QgYSBzb2NrZXQARGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZABNZXNzYWdlIHRvbyBsYXJnZQBQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQATm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sAEFkZHJlc3Mgbm90IGF2YWlsYWJsZQBOZXR3b3JrIGlzIGRvd24ATmV0d29yayB1bnJlYWNoYWJsZQBDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsAQ29ubmVjdGlvbiBhYm9ydGVkAE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUAU29ja2V0IGlzIGNvbm5lY3RlZABTb2NrZXQgbm90IGNvbm5lY3RlZABDYW5ub3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24AT3BlcmF0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAFN0YWxlIGZpbGUgaGFuZGxlAFJlbW90ZSBJL08gZXJyb3IAUXVvdGEgZXhjZWVkZWQATm8gbWVkaXVtIGZvdW5kAFdyb25nIG1lZGl1bSB0eXBlAE11bHRpaG9wIGF0dGVtcHRlZABSZXF1aXJlZCBrZXkgbm90IGF2YWlsYWJsZQBLZXkgaGFzIGV4cGlyZWQAS2V5IGhhcyBiZWVuIHJldm9rZWQAS2V5IHdhcyByZWplY3RlZCBieSBzZXJ2aWNlAAAAAAClAlsA8AG1BYwFJQGDBh0DlAT/AMcDMQMLBrwBjwF/A8oEKwDaBq8AQgNOA9wBDgQVAKEGDQGUAgsCOAZkArwC/wJdA+cECwfPAssF7wXbBeECHgZFAoUAggJsA28E8QDzAxgF2QDaA0wGVAJ7AZ0DvQQAAFEAFQK7ALMDbQD/AYUELwX5BDgAZQFGAZ8AtwaoAXMCUwEAQYiJCQsMIQQAAAAAAAAAAC8CAEGoiQkLBjUERwRWBABBvokJCwKgBABB0okJCyJGBWAFbgVhBgAAzwEAAAAAAAAAAMkG6Qb5Bh4HOQdJB14HAEGAigkLkQHRdJ4AV529KoBwUg///z4nCgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUYAAAANQAAAHEAAABr////zvv//5K///8AAAAAAAAAABkACwAZGRkAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAGQAKChkZGQMKBwABAAkLGAAACQYLAAALAAYZAAAAGRkZAEGhiwkLIQ4AAAAAAAAAABkACw0ZGRkADQAAAgAJDgAAAAkADgAADgBB24sJCwEMAEHniwkLFRMAAAAAEwAAAAAJDAAAAAAADAAADABBlYwJCwEQAEGhjAkLFQ8AAAAEDwAAAAAJEAAAAAAAEAAAEABBz4wJCwESAEHbjAkLHhEAAAAAEQAAAAAJEgAAAAAAEgAAEgAAGgAAABoaGgBBko0JCw4aAAAAGhoaAAAAAAAACQBBw40JCwEUAEHPjQkLFRcAAAAAFwAAAAAJFAAAAAAAFAAAFABB/Y0JCwEWAEGJjgkLJxUAAAAAFQAAAAAJFgAAAAAAFgAAFgAAMDEyMzQ1Njc4OUFCQ0RFRgBB1I4JCwIDAgBB/I4JCwj//////////wBBwI8JC/UI/////////////////////////////////////////////////////////////////wABAgMEBQYHCAn/////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP///////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAQIEBwMGBQAAAAAAAAACAADAAwAAwAQAAMAFAADABgAAwAcAAMAIAADACQAAwAoAAMALAADADAAAwA0AAMAOAADADwAAwBAAAMARAADAEgAAwBMAAMAUAADAFQAAwBYAAMAXAADAGAAAwBkAAMAaAADAGwAAwBwAAMAdAADAHgAAwB8AAMAAAACzAQAAwwIAAMMDAADDBAAAwwUAAMMGAADDBwAAwwgAAMMJAADDCgAAwwsAAMMMAADDDQAA0w4AAMMPAADDAAAMuwEADMMCAAzDAwAMwwQADNsAAAAAhEoCAAUCAAAGAgAABwIAAAgCAAAJAgAACgIAAAsCAAAMAgAADQIAAA4CAAAPAgAAEAIAABECAAASAgAABAAAAAAAAADASgIAEwIAABQCAAD8/////P///8BKAgAVAgAAFgIAAOhJAgD8SQIAAAAAAAhLAgAXAgAAGAIAAAcCAAAIAgAAGQIAABoCAAALAgAADAIAAA0CAAAbAgAADwIAABwCAAARAgAAHQIAAPh1AgBYSgIAHEwCAE5TdDNfXzI5YmFzaWNfaW9zSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAAAA0HUCAIxKAgBOU3QzX18yMTViYXNpY19zdHJlYW1idWZJY05TXzExY2hhcl90cmFpdHNJY0VFRUUAAAAAVHYCANhKAgAAAAAAAQAAAExKAgAD9P//TlN0M19fMjEzYmFzaWNfb3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQAA+HUCABRLAgCESgIATlN0M19fMjE1YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAAAA4AAAAAAAAALhLAgAeAgAAHwIAAMj////I////uEsCACACAAAhAgAAZEsCAJxLAgCwSwIAeEsCADgA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";return Q}var eA;function UA(Q){if(Q==eA&&E)return new Uint8Array(E);var m=u(Q);if(m)return m;throw"both async and sync fetching of the wasm failed"}function aA(Q){return Promise.resolve().then(()=>UA(Q))}function le(Q,m,v){return aA(Q).then(p=>WebAssembly.instantiate(p,m)).then(v,p=>{B(`failed to asynchronously prepare wasm: ${p}`),TA(p)})}function SA(Q,m,v,p){return le(m,v,p)}function Ue(){return{a:Xn}}function mA(){var Q=Ue();function m(p,N){return se=p.exports,D=se.y,j(),cA(se.z),CA(),se}KA();function v(p){m(p.instance)}return eA??=uA(),SA(E,eA,Q,v).catch(o),{}}function sA(Q){return i.agerrMessages.push(Re(Q)),0}function xt(Q){this.name="ExitStatus",this.message=`Program terminated with exit(${Q})`,this.status=Q}var tt=Q=>{Q.forEach(m=>m(i))};function de(Q,m="i8"){switch(m.endsWith("*")&&(m="*"),m){case"i1":return R[Q];case"i8":return R[Q];case"i16":return _[Q>>1];case"i32":return K[Q>>2];case"i64":return H[Q>>3];case"float":return U[Q>>2];case"double":return q[Q>>3];case"*":return z[Q>>2];default:TA(`invalid type for getValue: ${m}`)}}var Dt=Q=>Yi(Q),_e=()=>Hr(),Le=typeof TextDecoder<"u"?new TextDecoder:void 0,bt=(Q,m=0,v=NaN)=>{for(var p=m+v,N=m;Q[N]&&!(N>=p);)++N;if(N-m>16&&Q.buffer&&Le)return Le.decode(Q.subarray(m,N));for(var J="";m>10,56320|te&1023)}}return J},Re=(Q,m)=>Q?bt(w,Q,m):"",$t=(Q,m,v,p)=>{TA(`Assertion failed: ${Re(Q)}, at: `+[m?Re(m):"unknown filename",v,p?Re(p):"unknown function"])};class x{constructor(m){this.excPtr=m,this.ptr=m-24}set_type(m){z[this.ptr+4>>2]=m}get_type(){return z[this.ptr+4>>2]}set_destructor(m){z[this.ptr+8>>2]=m}get_destructor(){return z[this.ptr+8>>2]}set_caught(m){m=m?1:0,R[this.ptr+12]=m}get_caught(){return R[this.ptr+12]!=0}set_rethrown(m){m=m?1:0,R[this.ptr+13]=m}get_rethrown(){return R[this.ptr+13]!=0}init(m,v){this.set_adjusted_ptr(0),this.set_type(m),this.set_destructor(v)}set_adjusted_ptr(m){z[this.ptr+16>>2]=m}get_adjusted_ptr(){return z[this.ptr+16>>2]}}var Y=0,P=(Q,m,v)=>{var p=new x(Q);throw p.init(m,v),Y=Q,Y},X={isAbs:Q=>Q.charAt(0)==="/",splitPath:Q=>{var m=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return m.exec(Q).slice(1)},normalizeArray:(Q,m)=>{for(var v=0,p=Q.length-1;p>=0;p--){var N=Q[p];N==="."?Q.splice(p,1):N===".."?(Q.splice(p,1),v++):v&&(Q.splice(p,1),v--)}if(m)for(;v;v--)Q.unshift("..");return Q},normalize:Q=>{var m=X.isAbs(Q),v=Q.substr(-1)==="/";return Q=X.normalizeArray(Q.split("/").filter(p=>!!p),!m).join("/"),!Q&&!m&&(Q="."),Q&&v&&(Q+="/"),(m?"/":"")+Q},dirname:Q=>{var m=X.splitPath(Q),v=m[0],p=m[1];return!v&&!p?".":(p&&(p=p.substr(0,p.length-1)),v+p)},basename:Q=>{if(Q==="/")return"/";Q=X.normalize(Q),Q=Q.replace(/\/$/,"");var m=Q.lastIndexOf("/");return m===-1?Q:Q.substr(m+1)},join:(...Q)=>X.normalize(Q.join("/")),join2:(Q,m)=>X.normalize(Q+"/"+m)},bA=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return Q=>crypto.getRandomValues(Q);TA("initRandomDevice")},Be=Q=>(Be=bA())(Q),Ee={resolve:(...Q)=>{for(var m="",v=!1,p=Q.length-1;p>=-1&&!v;p--){var N=p>=0?Q[p]:M.cwd();if(typeof N!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!N)return"";m=N+"/"+m,v=X.isAbs(N)}return m=X.normalizeArray(m.split("/").filter(J=>!!J),!v).join("/"),(v?"/":"")+m||"."},relative:(Q,m)=>{Q=Ee.resolve(Q).substr(1),m=Ee.resolve(m).substr(1);function v(te){for(var re=0;re=0&&te[Pe]==="";Pe--);return re>Pe?[]:te.slice(re,Pe-re+1)}for(var p=v(Q.split("/")),N=v(m.split("/")),J=Math.min(p.length,N.length),V=J,Z=0;Z{for(var m=0,v=0;v=55296&&p<=57343?(m+=4,++v):m+=3}return m},gt=(Q,m,v,p)=>{if(!(p>0))return 0;for(var N=v,J=v+p-1,V=0;V=55296&&Z<=57343){var FA=Q.charCodeAt(++V);Z=65536+((Z&1023)<<10)|FA&1023}if(Z<=127){if(v>=J)break;m[v++]=Z}else if(Z<=2047){if(v+1>=J)break;m[v++]=192|Z>>6,m[v++]=128|Z&63}else if(Z<=65535){if(v+2>=J)break;m[v++]=224|Z>>12,m[v++]=128|Z>>6&63,m[v++]=128|Z&63}else{if(v+3>=J)break;m[v++]=240|Z>>18,m[v++]=128|Z>>12&63,m[v++]=128|Z>>6&63,m[v++]=128|Z&63}}return m[v]=0,v-N};function Ve(Q,m,v){var p=v>0?v:DA(Q)+1,N=new Array(p),J=gt(Q,N,0,N.length);return m&&(N.length=J),N}var ZA=()=>{if(!kA.length){var Q=null;if(typeof window<"u"&&typeof window.prompt=="function"&&(Q=window.prompt("Input: "),Q!==null&&(Q+=` -`)),!Q)return null;kA=Ve(Q,!0)}return kA.shift()},rt={ttys:[],init(){},shutdown(){},register(Q,m){rt.ttys[Q]={input:[],output:[],ops:m},M.registerDevice(Q,rt.stream_ops)},stream_ops:{open(Q){var m=rt.ttys[Q.node.rdev];if(!m)throw new M.ErrnoError(43);Q.tty=m,Q.seekable=!1},close(Q){Q.tty.ops.fsync(Q.tty)},fsync(Q){Q.tty.ops.fsync(Q.tty)},read(Q,m,v,p,N){if(!Q.tty||!Q.tty.ops.get_char)throw new M.ErrnoError(60);for(var J=0,V=0;V0&&(d(bt(Q.output)),Q.output=[])},ioctl_tcgets(Q){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(Q,m,v){return 0},ioctl_tiocgwinsz(Q){return[24,80]}},default_tty1_ops:{put_char(Q,m){m===null||m===10?(B(bt(Q.output)),Q.output=[]):m!=0&&Q.output.push(m)},fsync(Q){Q.output&&Q.output.length>0&&(B(bt(Q.output)),Q.output=[])}}},Ei=(Q,m)=>{w.fill(0,Q,Q+m)},tn=(Q,m)=>Math.ceil(Q/m)*m,qi=Q=>{Q=tn(Q,65536);var m=vi(65536,Q);return m&&Ei(m,Q),m},xe={ops_table:null,mount(Q){return xe.createNode(null,"/",16895,0)},createNode(Q,m,v,p){if(M.isBlkdev(v)||M.isFIFO(v))throw new M.ErrnoError(63);xe.ops_table||={dir:{node:{getattr:xe.node_ops.getattr,setattr:xe.node_ops.setattr,lookup:xe.node_ops.lookup,mknod:xe.node_ops.mknod,rename:xe.node_ops.rename,unlink:xe.node_ops.unlink,rmdir:xe.node_ops.rmdir,readdir:xe.node_ops.readdir,symlink:xe.node_ops.symlink},stream:{llseek:xe.stream_ops.llseek}},file:{node:{getattr:xe.node_ops.getattr,setattr:xe.node_ops.setattr},stream:{llseek:xe.stream_ops.llseek,read:xe.stream_ops.read,write:xe.stream_ops.write,allocate:xe.stream_ops.allocate,mmap:xe.stream_ops.mmap,msync:xe.stream_ops.msync}},link:{node:{getattr:xe.node_ops.getattr,setattr:xe.node_ops.setattr,readlink:xe.node_ops.readlink},stream:{}},chrdev:{node:{getattr:xe.node_ops.getattr,setattr:xe.node_ops.setattr},stream:M.chrdev_stream_ops}};var N=M.createNode(Q,m,v,p);return M.isDir(N.mode)?(N.node_ops=xe.ops_table.dir.node,N.stream_ops=xe.ops_table.dir.stream,N.contents={}):M.isFile(N.mode)?(N.node_ops=xe.ops_table.file.node,N.stream_ops=xe.ops_table.file.stream,N.usedBytes=0,N.contents=null):M.isLink(N.mode)?(N.node_ops=xe.ops_table.link.node,N.stream_ops=xe.ops_table.link.stream):M.isChrdev(N.mode)&&(N.node_ops=xe.ops_table.chrdev.node,N.stream_ops=xe.ops_table.chrdev.stream),N.timestamp=Date.now(),Q&&(Q.contents[m]=N,Q.timestamp=N.timestamp),N},getFileDataAsTypedArray(Q){return Q.contents?Q.contents.subarray?Q.contents.subarray(0,Q.usedBytes):new Uint8Array(Q.contents):new Uint8Array(0)},expandFileStorage(Q,m){var v=Q.contents?Q.contents.length:0;if(!(v>=m)){var p=1024*1024;m=Math.max(m,v*(v>>0),v!=0&&(m=Math.max(m,256));var N=Q.contents;Q.contents=new Uint8Array(m),Q.usedBytes>0&&Q.contents.set(N.subarray(0,Q.usedBytes),0)}},resizeFileStorage(Q,m){if(Q.usedBytes!=m)if(m==0)Q.contents=null,Q.usedBytes=0;else{var v=Q.contents;Q.contents=new Uint8Array(m),v&&Q.contents.set(v.subarray(0,Math.min(m,Q.usedBytes))),Q.usedBytes=m}},node_ops:{getattr(Q){var m={};return m.dev=M.isChrdev(Q.mode)?Q.id:1,m.ino=Q.id,m.mode=Q.mode,m.nlink=1,m.uid=0,m.gid=0,m.rdev=Q.rdev,M.isDir(Q.mode)?m.size=4096:M.isFile(Q.mode)?m.size=Q.usedBytes:M.isLink(Q.mode)?m.size=Q.link.length:m.size=0,m.atime=new Date(Q.timestamp),m.mtime=new Date(Q.timestamp),m.ctime=new Date(Q.timestamp),m.blksize=4096,m.blocks=Math.ceil(m.size/m.blksize),m},setattr(Q,m){m.mode!==void 0&&(Q.mode=m.mode),m.timestamp!==void 0&&(Q.timestamp=m.timestamp),m.size!==void 0&&xe.resizeFileStorage(Q,m.size)},lookup(Q,m){throw M.genericErrors[44]},mknod(Q,m,v,p){return xe.createNode(Q,m,v,p)},rename(Q,m,v){if(M.isDir(Q.mode)){var p;try{p=M.lookupNode(m,v)}catch{}if(p)for(var N in p.contents)throw new M.ErrnoError(55)}delete Q.parent.contents[Q.name],Q.parent.timestamp=Date.now(),Q.name=v,m.contents[v]=Q,m.timestamp=Q.parent.timestamp},unlink(Q,m){delete Q.contents[m],Q.timestamp=Date.now()},rmdir(Q,m){var v=M.lookupNode(Q,m);for(var p in v.contents)throw new M.ErrnoError(55);delete Q.contents[m],Q.timestamp=Date.now()},readdir(Q){var m=[".",".."];for(var v of Object.keys(Q.contents))m.push(v);return m},symlink(Q,m,v){var p=xe.createNode(Q,m,41471,0);return p.link=v,p},readlink(Q){if(!M.isLink(Q.mode))throw new M.ErrnoError(28);return Q.link}},stream_ops:{read(Q,m,v,p,N){var J=Q.node.contents;if(N>=Q.node.usedBytes)return 0;var V=Math.min(Q.node.usedBytes-N,p);if(V>8&&J.subarray)m.set(J.subarray(N,N+V),v);else for(var Z=0;Z0||v+m{var N=p?"":`al ${Q}`;I(Q).then(J=>{m(new Uint8Array(J)),N&&CA()},J=>{if(v)v();else throw`Loading data file "${Q}" failed.`}),N&&KA()},mi=(Q,m,v,p,N,J)=>{M.createDataFile(Q,m,v,p,N,J)},Ot=[],Lt=(Q,m,v,p)=>{typeof Browser<"u"&&Browser.init();var N=!1;return Ot.forEach(J=>{N||J.canHandle(m)&&(J.handle(Q,m,v,p),N=!0)}),N},ii=(Q,m,v,p,N,J,V,Z,FA,te)=>{var re=m?Ee.resolve(X.join2(Q,m)):Q;function Pe(ze){function ye(Ge){te?.(),Z||mi(Q,m,Ge,p,N,FA),J?.(),CA()}Lt(ze,re,ye,()=>{V?.(),CA()})||ye(ze)}KA(),typeof v=="string"?nn(v,Pe,V):Pe(v)},_i=Q=>{var m={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},v=m[Q];if(typeof v>"u")throw new Error(`Unknown file open mode: ${Q}`);return v},Tt=(Q,m)=>{var v=0;return Q&&(v|=365),m&&(v|=146),v},M={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class{constructor(Q){this.name="ErrnoError",this.errno=Q}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(Q){this.node=Q}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(Q){this.shared.flags=Q}get position(){return this.shared.position}set position(Q){this.shared.position=Q}},FSNode:class{constructor(Q,m,v,p){Q||(Q=this),this.parent=Q,this.mount=Q.mount,this.mounted=null,this.id=M.nextInode++,this.name=m,this.mode=v,this.node_ops={},this.stream_ops={},this.rdev=p,this.readMode=365,this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(Q){Q?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(Q){Q?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return M.isDir(this.mode)}get isDevice(){return M.isChrdev(this.mode)}},lookupPath(Q,m={}){if(Q=Ee.resolve(Q),!Q)return{path:"",node:null};var v={follow_mount:!0,recurse_count:0};if(m=Object.assign(v,m),m.recurse_count>8)throw new M.ErrnoError(32);for(var p=Q.split("/").filter(Pe=>!!Pe),N=M.root,J="/",V=0;V40)throw new M.ErrnoError(32)}}return{path:J,node:N}},getPath(Q){for(var m;;){if(M.isRoot(Q)){var v=Q.mount.mountpoint;return m?v[v.length-1]!=="/"?`${v}/${m}`:v+m:v}m=m?`${Q.name}/${m}`:Q.name,Q=Q.parent}},hashName(Q,m){for(var v=0,p=0;p>>0)%M.nameTable.length},hashAddNode(Q){var m=M.hashName(Q.parent.id,Q.name);Q.name_next=M.nameTable[m],M.nameTable[m]=Q},hashRemoveNode(Q){var m=M.hashName(Q.parent.id,Q.name);if(M.nameTable[m]===Q)M.nameTable[m]=Q.name_next;else for(var v=M.nameTable[m];v;){if(v.name_next===Q){v.name_next=Q.name_next;break}v=v.name_next}},lookupNode(Q,m){var v=M.mayLookup(Q);if(v)throw new M.ErrnoError(v);for(var p=M.hashName(Q.id,m),N=M.nameTable[p];N;N=N.name_next){var J=N.name;if(N.parent.id===Q.id&&J===m)return N}return M.lookup(Q,m)},createNode(Q,m,v,p){var N=new M.FSNode(Q,m,v,p);return M.hashAddNode(N),N},destroyNode(Q){M.hashRemoveNode(Q)},isRoot(Q){return Q===Q.parent},isMountpoint(Q){return!!Q.mounted},isFile(Q){return(Q&61440)===32768},isDir(Q){return(Q&61440)===16384},isLink(Q){return(Q&61440)===40960},isChrdev(Q){return(Q&61440)===8192},isBlkdev(Q){return(Q&61440)===24576},isFIFO(Q){return(Q&61440)===4096},isSocket(Q){return(Q&49152)===49152},flagsToPermissionString(Q){var m=["r","w","rw"][Q&3];return Q&512&&(m+="w"),m},nodePermissions(Q,m){return M.ignorePermissions?0:m.includes("r")&&!(Q.mode&292)||m.includes("w")&&!(Q.mode&146)||m.includes("x")&&!(Q.mode&73)?2:0},mayLookup(Q){if(!M.isDir(Q.mode))return 54;var m=M.nodePermissions(Q,"x");return m||(Q.node_ops.lookup?0:2)},mayCreate(Q,m){try{var v=M.lookupNode(Q,m);return 20}catch{}return M.nodePermissions(Q,"wx")},mayDelete(Q,m,v){var p;try{p=M.lookupNode(Q,m)}catch(J){return J.errno}var N=M.nodePermissions(Q,"wx");if(N)return N;if(v){if(!M.isDir(p.mode))return 54;if(M.isRoot(p)||M.getPath(p)===M.cwd())return 10}else if(M.isDir(p.mode))return 31;return 0},mayOpen(Q,m){return Q?M.isLink(Q.mode)?32:M.isDir(Q.mode)&&(M.flagsToPermissionString(m)!=="r"||m&512)?31:M.nodePermissions(Q,M.flagsToPermissionString(m)):44},MAX_OPEN_FDS:4096,nextfd(){for(var Q=0;Q<=M.MAX_OPEN_FDS;Q++)if(!M.streams[Q])return Q;throw new M.ErrnoError(33)},getStreamChecked(Q){var m=M.getStream(Q);if(!m)throw new M.ErrnoError(8);return m},getStream:Q=>M.streams[Q],createStream(Q,m=-1){return Q=Object.assign(new M.FSStream,Q),m==-1&&(m=M.nextfd()),Q.fd=m,M.streams[m]=Q,Q},closeStream(Q){M.streams[Q]=null},dupStream(Q,m=-1){var v=M.createStream(Q,m);return v.stream_ops?.dup?.(v),v},chrdev_stream_ops:{open(Q){var m=M.getDevice(Q.node.rdev);Q.stream_ops=m.stream_ops,Q.stream_ops.open?.(Q)},llseek(){throw new M.ErrnoError(70)}},major:Q=>Q>>8,minor:Q=>Q&255,makedev:(Q,m)=>Q<<8|m,registerDevice(Q,m){M.devices[Q]={stream_ops:m}},getDevice:Q=>M.devices[Q],getMounts(Q){for(var m=[],v=[Q];v.length;){var p=v.pop();m.push(p),v.push(...p.mounts)}return m},syncfs(Q,m){typeof Q=="function"&&(m=Q,Q=!1),M.syncFSRequests++,M.syncFSRequests>1&&B(`warning: ${M.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var v=M.getMounts(M.root.mount),p=0;function N(V){return M.syncFSRequests--,m(V)}function J(V){if(V)return J.errored?void 0:(J.errored=!0,N(V));++p>=v.length&&N(null)}v.forEach(V=>{if(!V.type.syncfs)return J(null);V.type.syncfs(V,Q,J)})},mount(Q,m,v){var p=v==="/",N=!v,J;if(p&&M.root)throw new M.ErrnoError(10);if(!p&&!N){var V=M.lookupPath(v,{follow_mount:!1});if(v=V.path,J=V.node,M.isMountpoint(J))throw new M.ErrnoError(10);if(!M.isDir(J.mode))throw new M.ErrnoError(54)}var Z={type:Q,opts:m,mountpoint:v,mounts:[]},FA=Q.mount(Z);return FA.mount=Z,Z.root=FA,p?M.root=FA:J&&(J.mounted=Z,J.mount&&J.mount.mounts.push(Z)),FA},unmount(Q){var m=M.lookupPath(Q,{follow_mount:!1});if(!M.isMountpoint(m.node))throw new M.ErrnoError(28);var v=m.node,p=v.mounted,N=M.getMounts(p);Object.keys(M.nameTable).forEach(V=>{for(var Z=M.nameTable[V];Z;){var FA=Z.name_next;N.includes(Z.mount)&&M.destroyNode(Z),Z=FA}}),v.mounted=null;var J=v.mount.mounts.indexOf(p);v.mount.mounts.splice(J,1)},lookup(Q,m){return Q.node_ops.lookup(Q,m)},mknod(Q,m,v){var p=M.lookupPath(Q,{parent:!0}),N=p.node,J=X.basename(Q);if(!J||J==="."||J==="..")throw new M.ErrnoError(28);var V=M.mayCreate(N,J);if(V)throw new M.ErrnoError(V);if(!N.node_ops.mknod)throw new M.ErrnoError(63);return N.node_ops.mknod(N,J,m,v)},create(Q,m){return m=m!==void 0?m:438,m&=4095,m|=32768,M.mknod(Q,m,0)},mkdir(Q,m){return m=m!==void 0?m:511,m&=1023,m|=16384,M.mknod(Q,m,0)},mkdirTree(Q,m){for(var v=Q.split("/"),p="",N=0;N"u"&&(v=m,m=438),m|=8192,M.mknod(Q,m,v)},symlink(Q,m){if(!Ee.resolve(Q))throw new M.ErrnoError(44);var v=M.lookupPath(m,{parent:!0}),p=v.node;if(!p)throw new M.ErrnoError(44);var N=X.basename(m),J=M.mayCreate(p,N);if(J)throw new M.ErrnoError(J);if(!p.node_ops.symlink)throw new M.ErrnoError(63);return p.node_ops.symlink(p,N,Q)},rename(Q,m){var v=X.dirname(Q),p=X.dirname(m),N=X.basename(Q),J=X.basename(m),V,Z,FA;if(V=M.lookupPath(Q,{parent:!0}),Z=V.node,V=M.lookupPath(m,{parent:!0}),FA=V.node,!Z||!FA)throw new M.ErrnoError(44);if(Z.mount!==FA.mount)throw new M.ErrnoError(75);var te=M.lookupNode(Z,N),re=Ee.relative(Q,p);if(re.charAt(0)!==".")throw new M.ErrnoError(28);if(re=Ee.relative(m,v),re.charAt(0)!==".")throw new M.ErrnoError(55);var Pe;try{Pe=M.lookupNode(FA,J)}catch{}if(te!==Pe){var ze=M.isDir(te.mode),ye=M.mayDelete(Z,N,ze);if(ye)throw new M.ErrnoError(ye);if(ye=Pe?M.mayDelete(FA,J,ze):M.mayCreate(FA,J),ye)throw new M.ErrnoError(ye);if(!Z.node_ops.rename)throw new M.ErrnoError(63);if(M.isMountpoint(te)||Pe&&M.isMountpoint(Pe))throw new M.ErrnoError(10);if(FA!==Z&&(ye=M.nodePermissions(Z,"w"),ye))throw new M.ErrnoError(ye);M.hashRemoveNode(te);try{Z.node_ops.rename(te,FA,J),te.parent=FA}catch(Ge){throw Ge}finally{M.hashAddNode(te)}}},rmdir(Q){var m=M.lookupPath(Q,{parent:!0}),v=m.node,p=X.basename(Q),N=M.lookupNode(v,p),J=M.mayDelete(v,p,!0);if(J)throw new M.ErrnoError(J);if(!v.node_ops.rmdir)throw new M.ErrnoError(63);if(M.isMountpoint(N))throw new M.ErrnoError(10);v.node_ops.rmdir(v,p),M.destroyNode(N)},readdir(Q){var m=M.lookupPath(Q,{follow:!0}),v=m.node;if(!v.node_ops.readdir)throw new M.ErrnoError(54);return v.node_ops.readdir(v)},unlink(Q){var m=M.lookupPath(Q,{parent:!0}),v=m.node;if(!v)throw new M.ErrnoError(44);var p=X.basename(Q),N=M.lookupNode(v,p),J=M.mayDelete(v,p,!1);if(J)throw new M.ErrnoError(J);if(!v.node_ops.unlink)throw new M.ErrnoError(63);if(M.isMountpoint(N))throw new M.ErrnoError(10);v.node_ops.unlink(v,p),M.destroyNode(N)},readlink(Q){var m=M.lookupPath(Q),v=m.node;if(!v)throw new M.ErrnoError(44);if(!v.node_ops.readlink)throw new M.ErrnoError(28);return Ee.resolve(M.getPath(v.parent),v.node_ops.readlink(v))},stat(Q,m){var v=M.lookupPath(Q,{follow:!m}),p=v.node;if(!p)throw new M.ErrnoError(44);if(!p.node_ops.getattr)throw new M.ErrnoError(63);return p.node_ops.getattr(p)},lstat(Q){return M.stat(Q,!0)},chmod(Q,m,v){var p;if(typeof Q=="string"){var N=M.lookupPath(Q,{follow:!v});p=N.node}else p=Q;if(!p.node_ops.setattr)throw new M.ErrnoError(63);p.node_ops.setattr(p,{mode:m&4095|p.mode&-4096,timestamp:Date.now()})},lchmod(Q,m){M.chmod(Q,m,!0)},fchmod(Q,m){var v=M.getStreamChecked(Q);M.chmod(v.node,m)},chown(Q,m,v,p){var N;if(typeof Q=="string"){var J=M.lookupPath(Q,{follow:!p});N=J.node}else N=Q;if(!N.node_ops.setattr)throw new M.ErrnoError(63);N.node_ops.setattr(N,{timestamp:Date.now()})},lchown(Q,m,v){M.chown(Q,m,v,!0)},fchown(Q,m,v){var p=M.getStreamChecked(Q);M.chown(p.node,m,v)},truncate(Q,m){if(m<0)throw new M.ErrnoError(28);var v;if(typeof Q=="string"){var p=M.lookupPath(Q,{follow:!0});v=p.node}else v=Q;if(!v.node_ops.setattr)throw new M.ErrnoError(63);if(M.isDir(v.mode))throw new M.ErrnoError(31);if(!M.isFile(v.mode))throw new M.ErrnoError(28);var N=M.nodePermissions(v,"w");if(N)throw new M.ErrnoError(N);v.node_ops.setattr(v,{size:m,timestamp:Date.now()})},ftruncate(Q,m){var v=M.getStreamChecked(Q);if((v.flags&2097155)===0)throw new M.ErrnoError(28);M.truncate(v.node,m)},utime(Q,m,v){var p=M.lookupPath(Q,{follow:!0}),N=p.node;N.node_ops.setattr(N,{timestamp:Math.max(m,v)})},open(Q,m,v){if(Q==="")throw new M.ErrnoError(44);m=typeof m=="string"?_i(m):m,m&64?(v=typeof v>"u"?438:v,v=v&4095|32768):v=0;var p;if(typeof Q=="object")p=Q;else{Q=X.normalize(Q);try{var N=M.lookupPath(Q,{follow:!(m&131072)});p=N.node}catch{}}var J=!1;if(m&64)if(p){if(m&128)throw new M.ErrnoError(20)}else p=M.mknod(Q,v,0),J=!0;if(!p)throw new M.ErrnoError(44);if(M.isChrdev(p.mode)&&(m&=-513),m&65536&&!M.isDir(p.mode))throw new M.ErrnoError(54);if(!J){var V=M.mayOpen(p,m);if(V)throw new M.ErrnoError(V)}m&512&&!J&&M.truncate(p,0),m&=-131713;var Z=M.createStream({node:p,path:M.getPath(p),flags:m,seekable:!0,position:0,stream_ops:p.stream_ops,ungotten:[],error:!1});return Z.stream_ops.open&&Z.stream_ops.open(Z),Z},close(Q){if(M.isClosed(Q))throw new M.ErrnoError(8);Q.getdents&&(Q.getdents=null);try{Q.stream_ops.close&&Q.stream_ops.close(Q)}catch(m){throw m}finally{M.closeStream(Q.fd)}Q.fd=null},isClosed(Q){return Q.fd===null},llseek(Q,m,v){if(M.isClosed(Q))throw new M.ErrnoError(8);if(!Q.seekable||!Q.stream_ops.llseek)throw new M.ErrnoError(70);if(v!=0&&v!=1&&v!=2)throw new M.ErrnoError(28);return Q.position=Q.stream_ops.llseek(Q,m,v),Q.ungotten=[],Q.position},read(Q,m,v,p,N){if(p<0||N<0)throw new M.ErrnoError(28);if(M.isClosed(Q))throw new M.ErrnoError(8);if((Q.flags&2097155)===1)throw new M.ErrnoError(8);if(M.isDir(Q.node.mode))throw new M.ErrnoError(31);if(!Q.stream_ops.read)throw new M.ErrnoError(28);var J=typeof N<"u";if(!J)N=Q.position;else if(!Q.seekable)throw new M.ErrnoError(70);var V=Q.stream_ops.read(Q,m,v,p,N);return J||(Q.position+=V),V},write(Q,m,v,p,N,J){if(p<0||N<0)throw new M.ErrnoError(28);if(M.isClosed(Q))throw new M.ErrnoError(8);if((Q.flags&2097155)===0)throw new M.ErrnoError(8);if(M.isDir(Q.node.mode))throw new M.ErrnoError(31);if(!Q.stream_ops.write)throw new M.ErrnoError(28);Q.seekable&&Q.flags&1024&&M.llseek(Q,0,2);var V=typeof N<"u";if(!V)N=Q.position;else if(!Q.seekable)throw new M.ErrnoError(70);var Z=Q.stream_ops.write(Q,m,v,p,N,J);return V||(Q.position+=Z),Z},allocate(Q,m,v){if(M.isClosed(Q))throw new M.ErrnoError(8);if(m<0||v<=0)throw new M.ErrnoError(28);if((Q.flags&2097155)===0)throw new M.ErrnoError(8);if(!M.isFile(Q.node.mode)&&!M.isDir(Q.node.mode))throw new M.ErrnoError(43);if(!Q.stream_ops.allocate)throw new M.ErrnoError(138);Q.stream_ops.allocate(Q,m,v)},mmap(Q,m,v,p,N){if((p&2)!==0&&(N&2)===0&&(Q.flags&2097155)!==2)throw new M.ErrnoError(2);if((Q.flags&2097155)===1)throw new M.ErrnoError(2);if(!Q.stream_ops.mmap)throw new M.ErrnoError(43);if(!m)throw new M.ErrnoError(28);return Q.stream_ops.mmap(Q,m,v,p,N)},msync(Q,m,v,p,N){return Q.stream_ops.msync?Q.stream_ops.msync(Q,m,v,p,N):0},ioctl(Q,m,v){if(!Q.stream_ops.ioctl)throw new M.ErrnoError(59);return Q.stream_ops.ioctl(Q,m,v)},readFile(Q,m={}){if(m.flags=m.flags||0,m.encoding=m.encoding||"binary",m.encoding!=="utf8"&&m.encoding!=="binary")throw new Error(`Invalid encoding type "${m.encoding}"`);var v,p=M.open(Q,m.flags),N=M.stat(Q),J=N.size,V=new Uint8Array(J);return M.read(p,V,0,J,0),m.encoding==="utf8"?v=bt(V):m.encoding==="binary"&&(v=V),M.close(p),v},writeFile(Q,m,v={}){v.flags=v.flags||577;var p=M.open(Q,v.flags,v.mode);if(typeof m=="string"){var N=new Uint8Array(DA(m)+1),J=gt(m,N,0,N.length);M.write(p,N,0,J,void 0,v.canOwn)}else if(ArrayBuffer.isView(m))M.write(p,m,0,m.byteLength,void 0,v.canOwn);else throw new Error("Unsupported data type");M.close(p)},cwd:()=>M.currentPath,chdir(Q){var m=M.lookupPath(Q,{follow:!0});if(m.node===null)throw new M.ErrnoError(44);if(!M.isDir(m.node.mode))throw new M.ErrnoError(54);var v=M.nodePermissions(m.node,"x");if(v)throw new M.ErrnoError(v);M.currentPath=m.path},createDefaultDirectories(){M.mkdir("/tmp"),M.mkdir("/home"),M.mkdir("/home/web_user")},createDefaultDevices(){M.mkdir("/dev"),M.registerDevice(M.makedev(1,3),{read:()=>0,write:(p,N,J,V,Z)=>V}),M.mkdev("/dev/null",M.makedev(1,3)),rt.register(M.makedev(5,0),rt.default_tty_ops),rt.register(M.makedev(6,0),rt.default_tty1_ops),M.mkdev("/dev/tty",M.makedev(5,0)),M.mkdev("/dev/tty1",M.makedev(6,0));var Q=new Uint8Array(1024),m=0,v=()=>(m===0&&(m=Be(Q).byteLength),Q[--m]);M.createDevice("/dev","random",v),M.createDevice("/dev","urandom",v),M.mkdir("/dev/shm"),M.mkdir("/dev/shm/tmp")},createSpecialDirectories(){M.mkdir("/proc");var Q=M.mkdir("/proc/self");M.mkdir("/proc/self/fd"),M.mount({mount(){var m=M.createNode(Q,"fd",16895,73);return m.node_ops={lookup(v,p){var N=+p,J=M.getStreamChecked(N),V={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>J.path}};return V.parent=V,V}},m}},{},"/proc/self/fd")},createStandardStreams(Q,m,v){Q?M.createDevice("/dev","stdin",Q):M.symlink("/dev/tty","/dev/stdin"),m?M.createDevice("/dev","stdout",null,m):M.symlink("/dev/tty","/dev/stdout"),v?M.createDevice("/dev","stderr",null,v):M.symlink("/dev/tty1","/dev/stderr"),M.open("/dev/stdin",0),M.open("/dev/stdout",1),M.open("/dev/stderr",1)},staticInit(){[44].forEach(Q=>{M.genericErrors[Q]=new M.ErrnoError(Q),M.genericErrors[Q].stack=""}),M.nameTable=new Array(4096),M.mount(xe,{},"/"),M.createDefaultDirectories(),M.createDefaultDevices(),M.createSpecialDirectories(),M.filesystems={MEMFS:xe}},init(Q,m,v){M.initialized=!0,M.createStandardStreams(Q,m,v)},quit(){M.initialized=!1;for(var Q=0;Qthis.length-1||ye<0)){var Ge=ye%this.chunkSize,Vi=ye/this.chunkSize|0;return this.getter(Vi)[Ge]}}setDataGetter(ye){this.getter=ye}cacheLength(){var ye=new XMLHttpRequest;if(ye.open("HEAD",v,!1),ye.send(null),!(ye.status>=200&&ye.status<300||ye.status===304))throw new Error("Couldn't load "+v+". Status: "+ye.status);var Ge=Number(ye.getResponseHeader("Content-length")),Vi,T=(Vi=ye.getResponseHeader("Accept-Ranges"))&&Vi==="bytes",oA=(Vi=ye.getResponseHeader("Content-Encoding"))&&Vi==="gzip",YA=1024*1024;T||(YA=Ge);var pe=(ge,Bt)=>{if(ge>Bt)throw new Error("invalid range ("+ge+", "+Bt+") or no bytes requested!");if(Bt>Ge-1)throw new Error("only "+Ge+" bytes available! programmer error!");var $e=new XMLHttpRequest;if($e.open("GET",v,!1),Ge!==YA&&$e.setRequestHeader("Range","bytes="+ge+"-"+Bt),$e.responseType="arraybuffer",$e.overrideMimeType&&$e.overrideMimeType("text/plain; charset=x-user-defined"),$e.send(null),!($e.status>=200&&$e.status<300||$e.status===304))throw new Error("Couldn't load "+v+". Status: "+$e.status);return $e.response!==void 0?new Uint8Array($e.response||[]):Ve($e.responseText||"",!0)},he=this;he.setDataGetter(ge=>{var Bt=ge*YA,$e=(ge+1)*YA-1;if($e=Math.min($e,Ge-1),typeof he.chunks[ge]>"u"&&(he.chunks[ge]=pe(Bt,$e)),typeof he.chunks[ge]>"u")throw new Error("doXHR failed!");return he.chunks[ge]}),(oA||!Ge)&&(YA=Ge=1,Ge=this.getter(0).length,YA=Ge,d("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=Ge,this._chunkSize=YA,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var V,Z}else var Z={isDevice:!1,url:v};var FA=M.createFile(Q,m,Z,p,N);Z.contents?FA.contents=Z.contents:Z.url&&(FA.contents=null,FA.url=Z.url),Object.defineProperties(FA,{usedBytes:{get:function(){return this.contents.length}}});var te={},re=Object.keys(FA.stream_ops);re.forEach(ze=>{var ye=FA.stream_ops[ze];te[ze]=(...Ge)=>(M.forceLoadFile(FA),ye(...Ge))});function Pe(ze,ye,Ge,Vi,T){var oA=ze.node.contents;if(T>=oA.length)return 0;var YA=Math.min(oA.length-T,Vi);if(oA.slice)for(var pe=0;pe(M.forceLoadFile(FA),Pe(ze,ye,Ge,Vi,T)),te.mmap=(ze,ye,Ge,Vi,T)=>{M.forceLoadFile(FA);var oA=qi(ye);if(!oA)throw new M.ErrnoError(48);return Pe(ze,R,oA,ye,Ge),{ptr:oA,allocated:!0}},FA.stream_ops=te,FA}},We={DEFAULT_POLLMASK:5,calculateAt(Q,m,v){if(X.isAbs(m))return m;var p;if(Q===-100)p=M.cwd();else{var N=We.getStreamFromFD(Q);p=N.path}if(m.length==0){if(!v)throw new M.ErrnoError(44);return p}return X.join2(p,m)},doStat(Q,m,v){var p=Q(m);K[v>>2]=p.dev,K[v+4>>2]=p.mode,z[v+8>>2]=p.nlink,K[v+12>>2]=p.uid,K[v+16>>2]=p.gid,K[v+20>>2]=p.rdev,H[v+24>>3]=BigInt(p.size),K[v+32>>2]=4096,K[v+36>>2]=p.blocks;var N=p.atime.getTime(),J=p.mtime.getTime(),V=p.ctime.getTime();return H[v+40>>3]=BigInt(Math.floor(N/1e3)),z[v+48>>2]=N%1e3*1e3*1e3,H[v+56>>3]=BigInt(Math.floor(J/1e3)),z[v+64>>2]=J%1e3*1e3*1e3,H[v+72>>3]=BigInt(Math.floor(V/1e3)),z[v+80>>2]=V%1e3*1e3*1e3,H[v+88>>3]=BigInt(p.ino),0},doMsync(Q,m,v,p,N){if(!M.isFile(m.node.mode))throw new M.ErrnoError(43);if(p&2)return 0;var J=w.slice(Q,Q+v);M.msync(m,J,N,v,p)},getStreamFromFD(Q){var m=M.getStreamChecked(Q);return m},varargs:void 0,getStr(Q){var m=Re(Q);return m}};function ni(Q,m,v,p){try{if(m=We.getStr(m),m=We.calculateAt(Q,m),v&-8)return-28;var N=M.lookupPath(m,{follow:!0}),J=N.node;if(!J)return-44;var V="";return v&4&&(V+="r"),v&2&&(V+="w"),v&1&&(V+="x"),V&&M.nodePermissions(J,V)?-2:0}catch(Z){if(typeof M>"u"||Z.name!=="ErrnoError")throw Z;return-Z.errno}}function pi(){var Q=K[+We.varargs>>2];return We.varargs+=4,Q}var dn=pi;function mn(Q,m,v){We.varargs=v;try{var p=We.getStreamFromFD(Q);switch(m){case 0:{var N=pi();if(N<0)return-28;for(;M.streams[N];)N++;var J;return J=M.dupStream(p,N),J.fd}case 1:case 2:return 0;case 3:return p.flags;case 4:{var N=pi();return p.flags|=N,0}case 12:{var N=dn(),V=0;return _[N+V>>1]=2,0}case 13:case 14:return 0}return-28}catch(Z){if(typeof M>"u"||Z.name!=="ErrnoError")throw Z;return-Z.errno}}function Uo(Q,m){try{var v=We.getStreamFromFD(Q);return We.doStat(M.stat,v.path,m)}catch(p){if(typeof M>"u"||p.name!=="ErrnoError")throw p;return-p.errno}}function kn(Q,m,v){We.varargs=v;try{var p=We.getStreamFromFD(Q);switch(m){case 21509:return p.tty?0:-59;case 21505:{if(!p.tty)return-59;if(p.tty.ops.ioctl_tcgets){var N=p.tty.ops.ioctl_tcgets(p),J=dn();K[J>>2]=N.c_iflag||0,K[J+4>>2]=N.c_oflag||0,K[J+8>>2]=N.c_cflag||0,K[J+12>>2]=N.c_lflag||0;for(var V=0;V<32;V++)R[J+V+17]=N.c_cc[V]||0;return 0}return 0}case 21510:case 21511:case 21512:return p.tty?0:-59;case 21506:case 21507:case 21508:{if(!p.tty)return-59;if(p.tty.ops.ioctl_tcsets){for(var J=dn(),Z=K[J>>2],FA=K[J+4>>2],te=K[J+8>>2],re=K[J+12>>2],Pe=[],V=0;V<32;V++)Pe.push(R[J+V+17]);return p.tty.ops.ioctl_tcsets(p.tty,m,{c_iflag:Z,c_oflag:FA,c_cflag:te,c_lflag:re,c_cc:Pe})}return 0}case 21519:{if(!p.tty)return-59;var J=dn();return K[J>>2]=0,0}case 21520:return p.tty?-28:-59;case 21531:{var J=dn();return M.ioctl(p,m,J)}case 21523:{if(!p.tty)return-59;if(p.tty.ops.ioctl_tiocgwinsz){var ze=p.tty.ops.ioctl_tiocgwinsz(p.tty),J=dn();_[J>>1]=ze[0],_[J+2>>1]=ze[1]}return 0}case 21524:return p.tty?0:-59;case 21515:return p.tty?0:-59;default:return-28}}catch(ye){if(typeof M>"u"||ye.name!=="ErrnoError")throw ye;return-ye.errno}}function Wn(Q,m,v,p){try{m=We.getStr(m);var N=p&256,J=p&4096;return p=p&-6401,m=We.calculateAt(Q,m,J),We.doStat(N?M.lstat:M.stat,m,v)}catch(V){if(typeof M>"u"||V.name!=="ErrnoError")throw V;return-V.errno}}function Vo(Q,m,v,p){We.varargs=p;try{m=We.getStr(m),m=We.calculateAt(Q,m);var N=p?pi():0;return M.open(m,v,N).fd}catch(J){if(typeof M>"u"||J.name!=="ErrnoError")throw J;return-J.errno}}function vo(Q,m){try{return Q=We.getStr(Q),We.doStat(M.stat,Q,m)}catch(v){if(typeof M>"u"||v.name!=="ErrnoError")throw v;return-v.errno}}var bo=()=>{TA("")},Yn=Q=>Q%4===0&&(Q%100!==0||Q%400===0),Mo=[0,31,60,91,121,152,182,213,244,274,305,335],ne=[0,31,59,90,120,151,181,212,243,273,304,334],wi=Q=>{var m=Yn(Q.getFullYear()),v=m?Mo:ne,p=v[Q.getMonth()]+Q.getDate()-1;return p},MA=9007199254740992,me=-9007199254740992,nt=Q=>QMA?NaN:Number(Q);function Wt(Q,m){Q=nt(Q);var v=new Date(Q*1e3);K[m>>2]=v.getSeconds(),K[m+4>>2]=v.getMinutes(),K[m+8>>2]=v.getHours(),K[m+12>>2]=v.getDate(),K[m+16>>2]=v.getMonth(),K[m+20>>2]=v.getFullYear()-1900,K[m+24>>2]=v.getDay();var p=wi(v)|0;K[m+28>>2]=p,K[m+36>>2]=-(v.getTimezoneOffset()*60);var N=new Date(v.getFullYear(),0,1),J=new Date(v.getFullYear(),6,1).getTimezoneOffset(),V=N.getTimezoneOffset(),Z=(J!=V&&v.getTimezoneOffset()==Math.min(V,J))|0;K[m+32>>2]=Z}function Xe(Q,m,v,p,N,J,V){N=nt(N);try{if(isNaN(N))return 61;var Z=We.getStreamFromFD(p),FA=M.mmap(Z,Q,N,m,v),te=FA.ptr;return K[J>>2]=FA.allocated,z[V>>2]=te,0}catch(re){if(typeof M>"u"||re.name!=="ErrnoError")throw re;return-re.errno}}function oi(Q,m,v,p,N,J){J=nt(J);try{var V=We.getStreamFromFD(N);v&2&&We.doMsync(Q,V,m,p,J)}catch(Z){if(typeof M>"u"||Z.name!=="ErrnoError")throw Z;return-Z.errno}}var Di=(Q,m,v)=>gt(Q,w,m,v),Ut=(Q,m,v,p)=>{var N=new Date().getFullYear(),J=new Date(N,0,1),V=new Date(N,6,1),Z=J.getTimezoneOffset(),FA=V.getTimezoneOffset(),te=Math.max(Z,FA);z[Q>>2]=te*60,K[m>>2]=+(Z!=FA);var re=ye=>{var Ge=ye>=0?"-":"+",Vi=Math.abs(ye),T=String(Math.floor(Vi/60)).padStart(2,"0"),oA=String(Vi%60).padStart(2,"0");return`UTC${Ge}${T}${oA}`},Pe=re(Z),ze=re(FA);FADate.now(),ft=()=>2147483648,Qi=Q=>{var m=D.buffer,v=(Q-m.byteLength+65535)/65536|0;try{return D.grow(v),j(),1}catch{}},ot=Q=>{var m=w.length;Q>>>=0;var v=ft();if(Q>v)return!1;for(var p=1;p<=4;p*=2){var N=m*(1+.2/p);N=Math.min(N,Q+100663296);var J=Math.min(v,tn(Math.max(Q,N),65536)),V=Qi(J);if(V)return!0}return!1},Mt={},on=()=>a,hn=()=>{if(!hn.strings){var Q=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",m={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:Q,_:on()};for(var v in Mt)Mt[v]===void 0?delete m[v]:m[v]=Mt[v];var p=[];for(var v in m)p.push(`${v}=${m[v]}`);hn.strings=p}return hn.strings},Ai=(Q,m)=>{for(var v=0;v{var v=0;return hn().forEach((p,N)=>{var J=m+v;z[Q+N*4>>2]=J,Ai(p,J),v+=p.length+1}),0},dt=(Q,m)=>{var v=hn();z[Q>>2]=v.length;var p=0;return v.forEach(N=>p+=N.length+1),z[m>>2]=p,0},EA=Q=>{c(Q,new xt(Q))},HA=(Q,m)=>{EA(Q)},ve=HA;function Qt(Q){try{var m=We.getStreamFromFD(Q);return M.close(m),0}catch(v){if(typeof M>"u"||v.name!=="ErrnoError")throw v;return v.errno}}var yi=(Q,m,v,p)=>{for(var N=0,J=0;J>2],Z=z[m+4>>2];m+=8;var FA=M.read(Q,R,V,Z,p);if(FA<0)return-1;if(N+=FA,FA>2]=J,0}catch(V){if(typeof M>"u"||V.name!=="ErrnoError")throw V;return V.errno}}function pn(Q,m,v,p){m=nt(m);try{if(isNaN(m))return 61;var N=We.getStreamFromFD(Q);return M.llseek(N,m,v),H[p>>3]=BigInt(N.position),N.getdents&&m===0&&v===0&&(N.getdents=null),0}catch(J){if(typeof M>"u"||J.name!=="ErrnoError")throw J;return J.errno}}var Fn=(Q,m,v,p)=>{for(var N=0,J=0;J>2],Z=z[m+4>>2];m+=8;var FA=M.write(Q,R,V,Z,p);if(FA<0)return-1;if(N+=FA,FA>2]=J,0}catch(V){if(typeof M>"u"||V.name!=="ErrnoError")throw V;return V.errno}}var ln=Q=>{var m=i["_"+Q];return m},Pt=(Q,m)=>{R.set(Q,m)},$i=Q=>rn(Q),Rr=Q=>{var m=DA(Q)+1,v=$i(m);return Di(Q,v,m),v},Ft=(Q,m,v,p,N)=>{var J={string:Ge=>{var Vi=0;return Ge!=null&&Ge!==0&&(Vi=Rr(Ge)),Vi},array:Ge=>{var Vi=$i(Ge.length);return Pt(Ge,Vi),Vi}};function V(Ge){return m==="string"?Re(Ge):m==="boolean"?!!Ge:Ge}var Z=ln(Q),FA=[],te=0;if(p)for(var re=0;re(i._viz_set_y_invert=se.A)(Q),i._viz_set_reduce=Q=>(i._viz_set_reduce=se.B)(Q),i._viz_get_graphviz_version=()=>(i._viz_get_graphviz_version=se.C)(),i._free=Q=>(i._free=se.D)(Q),i._malloc=Q=>(i._malloc=se.E)(Q),i._viz_get_plugin_list=Q=>(i._viz_get_plugin_list=se.G)(Q),i._viz_create_graph=(Q,m,v)=>(i._viz_create_graph=se.H)(Q,m,v),i._viz_read_one_graph=Q=>(i._viz_read_one_graph=se.I)(Q),i._viz_string_dup=(Q,m)=>(i._viz_string_dup=se.J)(Q,m),i._viz_string_dup_html=(Q,m)=>(i._viz_string_dup_html=se.K)(Q,m),i._viz_string_free=(Q,m)=>(i._viz_string_free=se.L)(Q,m),i._viz_string_free_html=(Q,m)=>(i._viz_string_free_html=se.M)(Q,m),i._viz_add_node=(Q,m)=>(i._viz_add_node=se.N)(Q,m),i._viz_add_edge=(Q,m,v)=>(i._viz_add_edge=se.O)(Q,m,v),i._viz_add_subgraph=(Q,m)=>(i._viz_add_subgraph=se.P)(Q,m),i._viz_set_default_graph_attribute=(Q,m,v)=>(i._viz_set_default_graph_attribute=se.Q)(Q,m,v),i._viz_set_default_node_attribute=(Q,m,v)=>(i._viz_set_default_node_attribute=se.R)(Q,m,v),i._viz_set_default_edge_attribute=(Q,m,v)=>(i._viz_set_default_edge_attribute=se.S)(Q,m,v),i._viz_set_attribute=(Q,m,v)=>(i._viz_set_attribute=se.T)(Q,m,v),i._viz_free_graph=Q=>(i._viz_free_graph=se.U)(Q),i._viz_create_context=()=>(i._viz_create_context=se.V)(),i._viz_free_context=Q=>(i._viz_free_context=se.W)(Q),i._viz_layout=(Q,m,v)=>(i._viz_layout=se.X)(Q,m,v),i._viz_free_layout=(Q,m)=>(i._viz_free_layout=se.Y)(Q,m),i._viz_reset_errors=()=>(i._viz_reset_errors=se.Z)(),i._viz_render=(Q,m,v)=>(i._viz_render=se._)(Q,m,v);var vi=(Q,m)=>(vi=se.$)(Q,m),Yi=Q=>(Yi=se.aa)(Q),rn=Q=>(rn=se.ba)(Q),Hr=()=>(Hr=se.ca)();i.ccall=Ft,i.getValue=de,i.PATH=X,i.UTF8ToString=Re,i.stringToUTF8=Di,i.lengthBytesUTF8=DA,i.FS=M;var Ri,fs;VA=function Q(){Ri||Bo(),Ri||(VA=Q)};function Bo(){if(pA>0||!fs&&(fs=1,lA(),pA>0))return;function Q(){Ri||(Ri=1,i.calledRun=1,!L&&(vA(),n(i),tA()))}Q()}return Bo(),A=r,A}})(),KP=[[/^Error: (.*)/,"error"],[/^Warning: (.*)/,"warning"]];function M3A(t){return t.map(e=>{for(let A=0;A{if(typeof A.name!="string")throw new Error("image name must be a string");if(typeof A.width!="number"&&typeof A.width!="string")throw new Error("image width must be a number or string");if(typeof A.height!="number"&&typeof A.height!="string")throw new Error("image height must be a number or string");let i=t.PATH.join("/",A.name),n=` - -`;return t.FS.createPath("/",t.PATH.dirname(i)),t.FS.writeFile(i,n),i}):[]}function x3A(t,e){for(let A of e)t.FS.analyzePath(A).exists&&t.FS.unlink(A)}function L3A(t,e,A){let i;try{let n=t.lengthBytesUTF8(e);return i=t.ccall("malloc","number",["number"],[n+1]),t.stringToUTF8(e,i,n+1),t.ccall("viz_read_one_graph","number",["number"],[i])}finally{i&&t.ccall("free","number",["number"],[i])}}function F3A(t,e,A){let i=t.ccall("viz_create_graph","number",["string","number","number"],[e.name,typeof e.directed<"u"?e.directed:!0,typeof e.strict<"u"?e.strict:!1]);return HP(t,i,e),i}function HP(t,e,A){zP(t,e,A),A.nodes&&A.nodes.forEach(i=>{let n=t.ccall("viz_add_node","number",["number","string"],[e,String(i.name)]);i.attributes&&TP(t,e,n,i.attributes)}),A.edges&&A.edges.forEach(i=>{let n=t.ccall("viz_add_edge","number",["number","string","string"],[e,String(i.tail),String(i.head)]);i.attributes&&TP(t,e,n,i.attributes)}),A.subgraphs&&A.subgraphs.forEach(i=>{let n=t.ccall("viz_add_subgraph","number",["number","string"],[e,String(i.name)]);HP(t,n,i)})}function zP(t,e,A){if(A.graphAttributes)for(let[i,n]of Object.entries(A.graphAttributes))m8(t,e,n,o=>{t.ccall("viz_set_default_graph_attribute","number",["number","string","number"],[e,i,o])});if(A.nodeAttributes)for(let[i,n]of Object.entries(A.nodeAttributes))m8(t,e,n,o=>{t.ccall("viz_set_default_node_attribute","number",["number","string","number"],[e,i,o])});if(A.edgeAttributes)for(let[i,n]of Object.entries(A.edgeAttributes))m8(t,e,n,o=>{t.ccall("viz_set_default_edge_attribute","number",["number","string","number"],[e,i,o])})}function TP(t,e,A,i){for(let[n,o]of Object.entries(i))m8(t,e,o,r=>{t.ccall("viz_set_attribute","number",["number","string","number"],[A,n,r])})}function m8(t,e,A,i){let n;if(typeof A=="object"&&"html"in A?n=t.ccall("viz_string_dup_html","number",["number","string"],[e,String(A.html)]):n=t.ccall("viz_string_dup","number",["number","string"],[e,String(A)]),n==0)throw new Error("couldn't dup string");i(n),typeof A=="object"&&"html"in A?t.ccall("viz_string_free_html","number",["number","number"],[e,n]):t.ccall("viz_string_free","number",["number","number"],[e,n])}var Pk=class{constructor(e){this.module=e}get graphvizVersion(){return S3A(this.module)}get formats(){return YP(this.module,"device")}get engines(){return YP(this.module,"layout")}renderFormats(e,A,i={}){return JP(this.module,e,A,rA({engine:"dot"},i))}render(e,A={}){let i;A.format===void 0?i="dot":i=A.format;let n=JP(this.module,e,[i],rA({engine:"dot"},A));return n.status==="success"&&(n.output=n.output[i]),n}renderString(e,A={}){let i=this.render(e,A);if(i.status!=="success")throw new Error(i.errors.find(n=>n.level=="error")?.message||"render failed");return i.output}renderSVGElement(e,A={}){let i=this.renderString(e,Ye(rA({},A),{format:"svg"}));return new DOMParser().parseFromString(i,"image/svg+xml").documentElement}renderJSON(e,A={}){let i=this.renderString(e,Ye(rA({},A),{format:"json"}));return JSON.parse(i)}};function Yu(){return b3A().then(t=>new Pk(t))}var gU=jQ(rq());var vs=class{static getBaseUrlWithoutPath(){let e=window.location.href;return new URL(e).origin+"/dev-ui/"}static getApiServerBaseUrl(){return window.runtimeConfig?.backendUrl}static getWSServerUrl(){let e=this.getApiServerBaseUrl();return!e||e==""?window.location.host:e.startsWith("http://")?e.slice(7):e.startsWith("https://")?e.slice(8):e}};var H2=class t{constructor(e,A){this.http=e;this.zone=A}apiServerDomain=vs.getApiServerBaseUrl();_currentApp=new Mi("");currentApp=this._currentApp.asObservable();isLoading=new Mi(!1);getApp(){return this.currentApp}setApp(e){this._currentApp.next(e)}getLoadingState(){return this.isLoading}runSse(e){let A=this.apiServerDomain+"/run_sse";return this.isLoading.next(!0),new ct(i=>{let n=this;fetch(A,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify(e)}).then(o=>{let r=o.body?.getReader(),s=new TextDecoder("utf-8"),a="",c=()=>{r?.read().then(({done:l,value:I})=>{if(this.isLoading.next(!0),l)return this.isLoading.next(!1),i.complete();let C=s.decode(I,{stream:!0});a+=C;try{a.split(/\r?\n/).filter(B=>B.startsWith("data:")).forEach(B=>{let E=B.replace(/^data:\s*/,"");JSON.parse(E),n.zone.run(()=>i.next(E))}),a=""}catch(d){d instanceof SyntaxError&&c()}c()}).catch(l=>{n.zone.run(()=>i.error(l))})};c()}).catch(o=>{n.zone.run(()=>i.error(o))})})}listApps(){if(this.apiServerDomain!=null){let e=this.apiServerDomain+"/list-apps?relative_path=./";return this.http.get(e)}return new ct}static \u0275fac=function(A){return new(A||t)(we(Ds),we(Qe))};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})};var YmA="import_session",JmA="edit_function_args";var TmA="a2a_card",KB=class t{route=f(ha);constructor(){}isImportSessionEnabled(){return this.route.queryParams.pipe(je(e=>e[YmA]==="true"))}isEditFunctionArgsEnabled(){return this.route.queryParams.pipe(je(e=>e[JmA]==="true"))}isSessionUrlEnabled(){return Me(!0)}isA2ACardEnabled(){return this.route.queryParams.pipe(je(e=>e[TmA]==="true"))}static \u0275fac=function(A){return new(A||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})};function HmA(t,e){}var z2=class{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;width="";height="";minWidth;minHeight;maxWidth;maxHeight;positionStrategy;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;scrollStrategy;closeOnNavigation=!0;closeOnDestroy=!0;closeOnOverlayDetachments=!0;componentFactoryResolver;providers;container;templateContext};var rS=(()=>{class t extends J2{_elementRef=f(ee);_focusTrapFactory=f(n8);_config;_interactivityChecker=f(Mu);_ngZone=f(Qe);_overlayRef=f(LB);_focusMonitor=f(dr);_renderer=f(Wi);_platform=f(Ii);_document=f(at,{optional:!0});_portalOutlet;_focusTrap=null;_elementFocusedBeforeDialogWasOpened=null;_closeInteractionType=null;_ariaLabelledByQueue=[];_changeDetectorRef=f(It);_injector=f(Rt);_isDestroyed=!1;constructor(){super(),this._config=f(z2,{optional:!0})||new z2,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(A){this._ariaLabelledByQueue.push(A),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(A){let i=this._ariaLabelledByQueue.indexOf(A);i>-1&&(this._ariaLabelledByQueue.splice(i,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._isDestroyed=!0,this._restoreFocus()}attachComponentPortal(A){this._portalOutlet.hasAttached();let i=this._portalOutlet.attachComponentPortal(A);return this._contentAttached(),i}attachTemplatePortal(A){this._portalOutlet.hasAttached();let i=this._portalOutlet.attachTemplatePortal(A);return this._contentAttached(),i}attachDomPortal=A=>{this._portalOutlet.hasAttached();let i=this._portalOutlet.attachDomPortal(A);return this._contentAttached(),i};_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(A,i){this._interactivityChecker.isFocusable(A)||(A.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let n=()=>{o(),r(),A.removeAttribute("tabindex")},o=this._renderer.listen(A,"blur",n),r=this._renderer.listen(A,"mousedown",n)})),A.focus(i)}_focusByCssSelector(A,i){let n=this._elementRef.nativeElement.querySelector(A);n&&this._forceFocus(n,i)}_trapFocus(){this._isDestroyed||To(()=>{let A=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||A.focus();break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElement()||this._focusDialogContainer();break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus);break}},{injector:this._injector})}_restoreFocus(){let A=this._config.restoreFocus,i=null;if(typeof A=="string"?i=this._document.querySelector(A):typeof A=="boolean"?i=A?this._elementFocusedBeforeDialogWasOpened:null:A&&(i=A),this._config.restoreFocus&&i&&typeof i.focus=="function"){let n=pB(),o=this._elementRef.nativeElement;(!n||n===this._document.body||n===o||o.contains(n))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){let A=this._elementRef.nativeElement,i=pB();return A===i||A.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=pB()))}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["cdk-dialog-container"]],viewQuery:function(i,n){if(i&1&&Te(fa,7),i&2){let o;XA(o=$A())&&(n._portalOutlet=o.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,n){i&2&&Ne("id",n._config.id||null)("role",n._config.role)("aria-modal",n._config.ariaModal)("aria-labelledby",n._config.ariaLabel?null:n._ariaLabelledByQueue[0])("aria-label",n._config.ariaLabel)("aria-describedby",n._config.ariaDescribedBy||null)},features:[lt],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,n){i&1&&_A(0,HmA,0,0,"ng-template",0)},dependencies:[fa],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}return t})(),Tu=class{overlayRef;config;componentInstance;componentRef;containerInstance;disableClose;closed=new OA;backdropClick;keydownEvents;outsidePointerEvents;id;_detachSubscription;constructor(e,A){this.overlayRef=e,this.config=A,this.disableClose=A.disableClose,this.backdropClick=e.backdropClick(),this.keydownEvents=e.keydownEvents(),this.outsidePointerEvents=e.outsidePointerEvents(),this.id=A.id,this.keydownEvents.subscribe(i=>{i.keyCode===27&&!this.disableClose&&!ir(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=e.detachments().subscribe(()=>{A.closeOnOverlayDetachments!==!1&&this.close()})}close(e,A){if(this.containerInstance){let i=this.closed;this.containerInstance._closeInteractionType=A?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(e),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(e="",A=""){return this.overlayRef.updateSize({width:e,height:A}),this}addPanelClass(e){return this.overlayRef.addPanelClass(e),this}removePanelClass(e){return this.overlayRef.removePanelClass(e),this}},zmA=new dA("DialogScrollStrategy",{providedIn:"root",factory:()=>{let t=f(nr);return()=>t.scrollStrategies.block()}}),OmA=new dA("DialogData"),PmA=new dA("DefaultDialogConfig");var sS=(()=>{class t{_overlay=f(nr);_injector=f(Rt);_defaultOptions=f(PmA,{optional:!0});_parentDialog=f(t,{optional:!0,skipSelf:!0});_overlayContainer=f(d8);_idGenerator=f(sn);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new OA;_afterOpenedAtThisLevel=new OA;_ariaHiddenElements=new Map;_scrollStrategy=f(zmA);get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}afterAllClosed=jl(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(Pn(void 0)));constructor(){}open(A,i){let n=this._defaultOptions||new z2;i=rA(rA({},n),i),i.id=i.id||this._idGenerator.getId("cdk-dialog-"),i.id&&this.getDialogById(i.id);let o=this._getOverlayConfig(i),r=this._overlay.create(o),s=new Tu(r,i),a=this._attachContainer(r,s,i);return s.containerInstance=a,this._attachDialogContent(A,s,a,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(s),s.closed.subscribe(()=>this._removeOpenDialog(s,!0)),this.afterOpened.next(s),s}closeAll(){oS(this.openDialogs,A=>A.close())}getDialogById(A){return this.openDialogs.find(i=>i.id===A)}ngOnDestroy(){oS(this._openDialogsAtThisLevel,A=>{A.config.closeOnDestroy===!1&&this._removeOpenDialog(A,!1)}),oS(this._openDialogsAtThisLevel,A=>A.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(A){let i=new Bg({positionStrategy:A.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:A.scrollStrategy||this._scrollStrategy(),panelClass:A.panelClass,hasBackdrop:A.hasBackdrop,direction:A.direction,minWidth:A.minWidth,minHeight:A.minHeight,maxWidth:A.maxWidth,maxHeight:A.maxHeight,width:A.width,height:A.height,disposeOnNavigation:A.closeOnNavigation});return A.backdropClass&&(i.backdropClass=A.backdropClass),i}_attachContainer(A,i,n){let o=n.injector||n.viewContainerRef?.injector,r=[{provide:z2,useValue:n},{provide:Tu,useValue:i},{provide:LB,useValue:A}],s;n.container?typeof n.container=="function"?s=n.container:(s=n.container.type,r.push(...n.container.providers(n))):s=rS;let a=new dl(s,n.viewContainerRef,Rt.create({parent:o||this._injector,providers:r}));return A.attach(a).instance}_attachDialogContent(A,i,n,o){if(A instanceof wn){let r=this._createInjector(o,i,n,void 0),s={$implicit:o.data,dialogRef:i};o.templateContext&&(s=rA(rA({},s),typeof o.templateContext=="function"?o.templateContext():o.templateContext)),n.attachTemplatePortal(new ys(A,null,s,r))}else{let r=this._createInjector(o,i,n,this._injector),s=n.attachComponentPortal(new dl(A,o.viewContainerRef,r));i.componentRef=s,i.componentInstance=s.instance}}_createInjector(A,i,n,o){let r=A.injector||A.viewContainerRef?.injector,s=[{provide:OmA,useValue:A.data},{provide:Tu,useValue:i}];return A.providers&&(typeof A.providers=="function"?s.push(...A.providers(i,A,n)):s.push(...A.providers)),A.direction&&(!r||!r.get(mo,null,{optional:!0}))&&s.push({provide:mo,useValue:{value:A.direction,change:Me()}}),Rt.create({parent:r||o,providers:s})}_removeOpenDialog(A,i){let n=this.openDialogs.indexOf(A);n>-1&&(this.openDialogs.splice(n,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((o,r)=>{o?r.setAttribute("aria-hidden",o):r.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){let A=this._overlayContainer.getContainerElement();if(A.parentElement){let i=A.parentElement.children;for(let n=i.length-1;n>-1;n--){let o=i[n];o!==A&&o.nodeName!=="SCRIPT"&&o.nodeName!=="STYLE"&&!o.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(o,o.getAttribute("aria-hidden")),o.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){let A=this._parentDialog;return A?A._getAfterAllClosed():this._afterAllClosedAtThisLevel}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function oS(t,e){let A=t.length;for(;A--;)e(t[A])}var sq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({providers:[sS],imports:[El,dg,r8,dg]})}return t})();function jmA(t,e){}var D8=class{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;width="";height="";minWidth;minHeight;maxWidth;maxHeight;position;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;delayFocusTrap=!0;scrollStrategy;closeOnNavigation=!0;componentFactoryResolver;enterAnimationDuration;exitAnimationDuration},aS="mdc-dialog--open",aq="mdc-dialog--opening",cq="mdc-dialog--closing",qmA=150,VmA=75,ZmA=(()=>{class t extends rS{_animationMode=f(Si,{optional:!0});_animationStateChanged=new WA;_animationsEnabled=this._animationMode!=="NoopAnimations";_actionSectionCount=0;_hostElement=this._elementRef.nativeElement;_enterAnimationDuration=this._animationsEnabled?gq(this._config.enterAnimationDuration)??qmA:0;_exitAnimationDuration=this._animationsEnabled?gq(this._config.exitAnimationDuration)??VmA:0;_animationTimer=null;_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(lq,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(aq,aS)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(aS),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(aS),this._animationsEnabled?(this._hostElement.style.setProperty(lq,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(cq)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(A){this._actionSectionCount+=A,this._changeDetectorRef.markForCheck()}_finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)};_finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})};_clearAnimationClasses(){this._hostElement.classList.remove(aq,cq)}_waitForAnimationToComplete(A,i){this._animationTimer!==null&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,A)}_requestAnimationFrame(A){this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(A):A()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(A){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:A})}ngOnDestroy(){super.ngOnDestroy(),this._animationTimer!==null&&clearTimeout(this._animationTimer)}attachComponentPortal(A){let i=super.attachComponentPortal(A);return i.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),i}static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275cmp=zA({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,n){i&2&&(Hs("id",n._config.id),Ne("aria-modal",n._config.ariaModal)("role",n._config.role)("aria-labelledby",n._config.ariaLabel?null:n._ariaLabelledByQueue[0])("aria-label",n._config.ariaLabel)("aria-describedby",n._config.ariaDescribedBy||null),ue("_mat-animation-noopable",!n._animationsEnabled)("mat-mdc-dialog-container-with-actions",n._actionSectionCount>0))},features:[lt],decls:3,vars:0,consts:[[1,"mat-mdc-dialog-inner-container","mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,n){i&1&&(S(0,"div",0)(1,"div",1),_A(2,jmA,0,0,"ng-template",2),F()())},dependencies:[fa],styles:['.mat-mdc-dialog-container{width:100%;height:100%;display:block;box-sizing:border-box;max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;outline:0}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 560px);min-width:var(--mat-dialog-container-min-width, 280px)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, calc(100vw - 32px))}}.mat-mdc-dialog-inner-container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;transition:opacity linear var(--mat-dialog-transition-duration, 0ms);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mdc-dialog--closing .mat-mdc-dialog-inner-container{transition:opacity 75ms linear;transform:none}.mdc-dialog--open .mat-mdc-dialog-inner-container{opacity:1}._mat-animation-noopable .mat-mdc-dialog-inner-container{transition:none}.mat-mdc-dialog-surface{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;width:100%;height:100%;position:relative;overflow-y:auto;outline:0;transform:scale(0.8);transition:transform var(--mat-dialog-transition-duration, 0ms) cubic-bezier(0, 0, 0.2, 1);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;box-shadow:var(--mat-dialog-container-elevation-shadow, none);border-radius:var(--mdc-dialog-container-shape, var(--mat-sys-corner-extra-large, 4px));background-color:var(--mdc-dialog-container-color, var(--mat-sys-surface, white))}[dir=rtl] .mat-mdc-dialog-surface{text-align:right}.mdc-dialog--open .mat-mdc-dialog-surface,.mdc-dialog--closing .mat-mdc-dialog-surface{transform:none}._mat-animation-noopable .mat-mdc-dialog-surface{transition:none}.mat-mdc-dialog-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-dialog-title{display:block;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:var(--mat-dialog-headline-padding, 6px 24px 13px)}.mat-mdc-dialog-title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mat-mdc-dialog-title{text-align:right}.mat-mdc-dialog-container .mat-mdc-dialog-title{color:var(--mdc-dialog-subhead-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mdc-dialog-subhead-font, var(--mat-sys-headline-small-font, inherit));line-height:var(--mdc-dialog-subhead-line-height, var(--mat-sys-headline-small-line-height, 1.5rem));font-size:var(--mdc-dialog-subhead-size, var(--mat-sys-headline-small-size, 1rem));font-weight:var(--mdc-dialog-subhead-weight, var(--mat-sys-headline-small-weight, 400));letter-spacing:var(--mdc-dialog-subhead-tracking, var(--mat-sys-headline-small-tracking, 0.03125em))}.mat-mdc-dialog-content{display:block;flex-grow:1;box-sizing:border-box;margin:0;overflow:auto;max-height:65vh}.mat-mdc-dialog-content>:first-child{margin-top:0}.mat-mdc-dialog-content>:last-child{margin-bottom:0}.mat-mdc-dialog-container .mat-mdc-dialog-content{color:var(--mdc-dialog-supporting-text-color, var(--mat-sys-on-surface-variant, rgba(0, 0, 0, 0.6)));font-family:var(--mdc-dialog-supporting-text-font, var(--mat-sys-body-medium-font, inherit));line-height:var(--mdc-dialog-supporting-text-line-height, var(--mat-sys-body-medium-line-height, 1.5rem));font-size:var(--mdc-dialog-supporting-text-size, var(--mat-sys-body-medium-size, 1rem));font-weight:var(--mdc-dialog-supporting-text-weight, var(--mat-sys-body-medium-weight, 400));letter-spacing:var(--mdc-dialog-supporting-text-tracking, var(--mat-sys-body-medium-tracking, 0.03125em))}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px 0)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0);padding:var(--mat-dialog-actions-padding, 16px 24px);justify-content:var(--mat-dialog-actions-alignment, flex-end)}@media(forced-colors: active){.mat-mdc-dialog-actions{border-top-color:CanvasText}}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}.mat-mdc-dialog-component-host{display:contents}'],encapsulation:2})}return t})(),lq="--mat-dialog-transition-duration";function gq(t){return t==null?null:typeof t=="number"?t:t.endsWith("ms")?zs(t.substring(0,t.length-2)):t.endsWith("s")?zs(t.substring(0,t.length-1))*1e3:t==="0"?0:null}var w8=function(t){return t[t.OPEN=0]="OPEN",t[t.CLOSING=1]="CLOSING",t[t.CLOSED=2]="CLOSED",t}(w8||{}),Br=class{_ref;_containerInstance;componentInstance;componentRef;disableClose;id;_afterOpened=new OA;_beforeClosed=new OA;_result;_closeFallbackTimeout;_state=w8.OPEN;_closeInteractionType;constructor(e,A,i){this._ref=e,this._containerInstance=i,this.disableClose=A.disableClose,this.id=e.id,e.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(kt(n=>n.state==="opened"),On(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(kt(n=>n.state==="closed"),On(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),e.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),zn(this.backdropClick(),this.keydownEvents().pipe(kt(n=>n.keyCode===27&&!this.disableClose&&!ir(n)))).subscribe(n=>{this.disableClose||(n.preventDefault(),Iq(this,n.type==="keydown"?"keyboard":"mouse"))})}close(e){this._result=e,this._containerInstance._animationStateChanged.pipe(kt(A=>A.state==="closing"),On(1)).subscribe(A=>{this._beforeClosed.next(e),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),A.totalTime+100)}),this._state=w8.CLOSING,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(e){let A=this._ref.config.positionStrategy;return e&&(e.left||e.right)?e.left?A.left(e.left):A.right(e.right):A.centerHorizontally(),e&&(e.top||e.bottom)?e.top?A.top(e.top):A.bottom(e.bottom):A.centerVertically(),this._ref.updatePosition(),this}updateSize(e="",A=""){return this._ref.updateSize(e,A),this}addPanelClass(e){return this._ref.addPanelClass(e),this}removePanelClass(e){return this._ref.removePanelClass(e),this}getState(){return this._state}_finishDialogClose(){this._state=w8.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}};function Iq(t,e,A){return t._closeInteractionType=e,t.close(A)}var as=new dA("MatMdcDialogData"),WmA=new dA("mat-mdc-dialog-default-options"),XmA=new dA("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(nr);return()=>t.scrollStrategies.block()}});var qs=(()=>{class t{_overlay=f(nr);_defaultOptions=f(WmA,{optional:!0});_scrollStrategy=f(XmA);_parentDialog=f(t,{optional:!0,skipSelf:!0});_idGenerator=f(sn);_dialog=f(sS);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new OA;_afterOpenedAtThisLevel=new OA;dialogConfigClass=D8;_dialogRefConstructor;_dialogContainerType;_dialogDataToken;get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){let A=this._parentDialog;return A?A._getAfterAllClosed():this._afterAllClosedAtThisLevel}afterAllClosed=jl(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(Pn(void 0)));constructor(){this._dialogRefConstructor=Br,this._dialogContainerType=ZmA,this._dialogDataToken=as}open(A,i){let n;i=rA(rA({},this._defaultOptions||new D8),i),i.id=i.id||this._idGenerator.getId("mat-mdc-dialog-"),i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();let o=this._dialog.open(A,Ye(rA({},i),{positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:z2,useValue:i}]},templateContext:()=>({dialogRef:n}),providers:(r,s,a)=>(n=new this._dialogRefConstructor(r,i,a),n.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:a},{provide:this._dialogDataToken,useValue:s.data},{provide:this._dialogRefConstructor,useValue:n}])}));return n.componentRef=o.componentRef,n.componentInstance=o.componentInstance,this.openDialogs.push(n),this.afterOpened.next(n),n.afterClosed().subscribe(()=>{let r=this.openDialogs.indexOf(n);r>-1&&(this.openDialogs.splice(r,1),this.openDialogs.length||this._getAfterAllClosed().next())}),n}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(A){return this.openDialogs.find(i=>i.id===A)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(A){let i=A.length;for(;i--;)A[i].close()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),hg=(()=>{class t{dialogRef=f(Br,{optional:!0});_elementRef=f(ee);_dialog=f(qs);ariaLabel;type="button";dialogResult;_matDialogClose;constructor(){}ngOnInit(){this.dialogRef||(this.dialogRef=dq(this._elementRef,this._dialog.openDialogs))}ngOnChanges(A){let i=A._matDialogClose||A._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(A){Iq(this.dialogRef,A.screenX===0&&A.screenY===0?"keyboard":"mouse",this.dialogResult)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,n){i&1&&hA("click",function(r){return n._onButtonClick(r)}),i&2&&Ne("aria-label",n.ariaLabel||null)("type",n.type)},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],type:"type",dialogResult:[0,"mat-dialog-close","dialogResult"],_matDialogClose:[0,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[ti]})}return t})(),Cq=(()=>{class t{_dialogRef=f(Br,{optional:!0});_elementRef=f(ee);_dialog=f(qs);constructor(){}ngOnInit(){this._dialogRef||(this._dialogRef=dq(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._onAdd()})}ngOnDestroy(){this._dialogRef?._containerInstance&&Promise.resolve().then(()=>{this._onRemove()})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t})}return t})(),bs=(()=>{class t extends Cq{id=f(sn).getId("mat-mdc-dialog-title-");_onAdd(){this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id)}_onRemove(){this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275dir=jA({type:t,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,n){i&2&&Hs("id",n.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],features:[lt]})}return t})(),ma=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],features:[YT([D0])]})}return t})(),pa=(()=>{class t extends Cq{align;_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275dir=jA({type:t,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:6,hostBindings:function(i,n){i&2&&ue("mat-mdc-dialog-actions-align-start",n.align==="start")("mat-mdc-dialog-actions-align-center",n.align==="center")("mat-mdc-dialog-actions-align-end",n.align==="end")},inputs:{align:"align"},features:[lt]})}return t})();function dq(t,e){let A=t.nativeElement.parentElement;for(;A&&!A.classList.contains("mat-mdc-dialog-container");)A=A.parentElement;return A?e.find(i=>i.id===A.id):null}var Bq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({providers:[qs],imports:[sq,El,dg,it,it]})}return t})();function $mA(t,e){if(t&1&&JA(0,"img",5),t&2){let A=O(2);yA("src",A.displayContent,ja)}}function ApA(t,e){t&1&&(S(0,"div",6),AA(1," No image data provided. "),F())}function epA(t,e){if(t&1&&(S(0,"div",3),_A(1,$mA,1,1,"img",5)(2,ApA,2,0,"div",6),F()),t&2){let A=O();G(),GA(A.displayContent?1:-1),G(),GA(A.displayContent?-1:2)}}function tpA(t,e){if(t&1&&JA(0,"div",4),t&2){let A=O();yA("innerHTML",A.displayContent,RI)}}var v0=class t{constructor(e,A,i){this.dialogRef=e;this.data=A;this.sanitizer=i}displayContent=null;isSvgContent=!1;ngOnInit(){this.processImageData()}processImageData(){let e=this.data.imageData;if(!e){this.displayContent=null,this.isSvgContent=!1;return}if(e.trim().includes("e}))}return y8}function Hu(t){return npA()?.createHTML(t)||t}function Qq(t){return Error(`Unable to find icon with the name "${t}"`)}function opA(){return Error("Could not find HttpClient for use with Angular Material icons. Please add provideHttpClient() to your providers.")}function hq(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function uq(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}var b0=class{url;svgText;options;svgElement;constructor(e,A,i){this.url=e,this.svgText=A,this.options=i}},rpA=(()=>{class t{_httpClient;_sanitizer;_errorHandler;_document;_svgIconConfigs=new Map;_iconSetConfigs=new Map;_cachedIconsByUrl=new Map;_inProgressUrlFetches=new Map;_fontCssClassesByAlias=new Map;_resolvers=[];_defaultFontSetClass=["material-icons","mat-ligature-font"];constructor(A,i,n,o){this._httpClient=A,this._sanitizer=i,this._errorHandler=o,this._document=n}addSvgIcon(A,i,n){return this.addSvgIconInNamespace("",A,i,n)}addSvgIconLiteral(A,i,n){return this.addSvgIconLiteralInNamespace("",A,i,n)}addSvgIconInNamespace(A,i,n,o){return this._addSvgIconConfig(A,i,new b0(n,null,o))}addSvgIconResolver(A){return this._resolvers.push(A),this}addSvgIconLiteralInNamespace(A,i,n,o){let r=this._sanitizer.sanitize(jr.HTML,n);if(!r)throw uq(n);let s=Hu(r);return this._addSvgIconConfig(A,i,new b0("",s,o))}addSvgIconSet(A,i){return this.addSvgIconSetInNamespace("",A,i)}addSvgIconSetLiteral(A,i){return this.addSvgIconSetLiteralInNamespace("",A,i)}addSvgIconSetInNamespace(A,i,n){return this._addSvgIconSetConfig(A,new b0(i,null,n))}addSvgIconSetLiteralInNamespace(A,i,n){let o=this._sanitizer.sanitize(jr.HTML,i);if(!o)throw uq(i);let r=Hu(o);return this._addSvgIconSetConfig(A,new b0("",r,n))}registerFontClassAlias(A,i=A){return this._fontCssClassesByAlias.set(A,i),this}classNameForFontAlias(A){return this._fontCssClassesByAlias.get(A)||A}setDefaultFontSetClass(...A){return this._defaultFontSetClass=A,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(A){let i=this._sanitizer.sanitize(jr.RESOURCE_URL,A);if(!i)throw hq(A);let n=this._cachedIconsByUrl.get(i);return n?Me(v8(n)):this._loadSvgIconFromConfig(new b0(A,null)).pipe(Qo(o=>this._cachedIconsByUrl.set(i,o)),je(o=>v8(o)))}getNamedSvgIcon(A,i=""){let n=fq(i,A),o=this._svgIconConfigs.get(n);if(o)return this._getSvgFromConfig(o);if(o=this._getIconConfigFromResolvers(i,A),o)return this._svgIconConfigs.set(n,o),this._getSvgFromConfig(o);let r=this._iconSetConfigs.get(i);return r?this._getSvgFromIconSetConfigs(A,r):g2(Qq(n))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(A){return A.svgText?Me(v8(this._svgElementFromConfig(A))):this._loadSvgIconFromConfig(A).pipe(je(i=>v8(i)))}_getSvgFromIconSetConfigs(A,i){let n=this._extractIconWithNameFromAnySet(A,i);if(n)return Me(n);let o=i.filter(r=>!r.svgText).map(r=>this._loadSvgIconSetFromConfig(r).pipe(mr(s=>{let c=`Loading icon set URL: ${this._sanitizer.sanitize(jr.RESOURCE_URL,r.url)} failed: ${s.message}`;return this._errorHandler.handleError(new Error(c)),Me(null)})));return nh(o).pipe(je(()=>{let r=this._extractIconWithNameFromAnySet(A,i);if(!r)throw Qq(A);return r}))}_extractIconWithNameFromAnySet(A,i){for(let n=i.length-1;n>=0;n--){let o=i[n];if(o.svgText&&o.svgText.toString().indexOf(A)>-1){let r=this._svgElementFromConfig(o),s=this._extractSvgIconFromSet(r,A,o.options);if(s)return s}}return null}_loadSvgIconFromConfig(A){return this._fetchIcon(A).pipe(Qo(i=>A.svgText=i),je(()=>this._svgElementFromConfig(A)))}_loadSvgIconSetFromConfig(A){return A.svgText?Me(null):this._fetchIcon(A).pipe(Qo(i=>A.svgText=i))}_extractSvgIconFromSet(A,i,n){let o=A.querySelector(`[id="${i}"]`);if(!o)return null;let r=o.cloneNode(!0);if(r.removeAttribute("id"),r.nodeName.toLowerCase()==="svg")return this._setSvgAttributes(r,n);if(r.nodeName.toLowerCase()==="symbol")return this._setSvgAttributes(this._toSvgElement(r),n);let s=this._svgElementFromString(Hu(""));return s.appendChild(r),this._setSvgAttributes(s,n)}_svgElementFromString(A){let i=this._document.createElement("DIV");i.innerHTML=A;let n=i.querySelector("svg");if(!n)throw Error(" tag not found");return n}_toSvgElement(A){let i=this._svgElementFromString(Hu("")),n=A.attributes;for(let o=0;oHu(c)),Vl(()=>this._inProgressUrlFetches.delete(r)),rh());return this._inProgressUrlFetches.set(r,a),a}_addSvgIconConfig(A,i,n){return this._svgIconConfigs.set(fq(A,i),n),this}_addSvgIconSetConfig(A,i){let n=this._iconSetConfigs.get(A);return n?n.push(i):this._iconSetConfigs.set(A,[i]),this}_svgElementFromConfig(A){if(!A.svgElement){let i=this._svgElementFromString(A.svgText);this._setSvgAttributes(i,A.options),A.svgElement=i}return A.svgElement}_getIconConfigFromResolvers(A,i){for(let n=0;ne?e.pathname+e.search:""}}var mq=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],gpA=mq.map(t=>`[${t}]`).join(", "),IpA=/^url\(['"]?#(.*?)['"]?\)$/,P2=(()=>{class t{_elementRef=f(ee);_iconRegistry=f(rpA);_location=f(cpA);_errorHandler=f(aa);_defaultColor;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;inline=!1;get svgIcon(){return this._svgIcon}set svgIcon(A){A!==this._svgIcon&&(A?this._updateSvgIcon(A):this._svgIcon&&this._clearSvgElement(),this._svgIcon=A)}_svgIcon;get fontSet(){return this._fontSet}set fontSet(A){let i=this._cleanupFontValue(A);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}_fontSet;get fontIcon(){return this._fontIcon}set fontIcon(A){let i=this._cleanupFontValue(A);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_fontIcon;_previousFontSetClass=[];_previousFontIconClass;_svgName;_svgNamespace;_previousPath;_elementsWithExternalReferences;_currentIconFetch=Kt.EMPTY;constructor(){let A=f(new wr("aria-hidden"),{optional:!0}),i=f(apA,{optional:!0});i&&(i.color&&(this.color=this._defaultColor=i.color),i.fontSet&&(this.fontSet=i.fontSet)),A||this._elementRef.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(A){if(!A)return["",""];let i=A.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${A}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){let A=this._elementsWithExternalReferences;if(A&&A.size){let i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(A){this._clearSvgElement();let i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(A),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(A)}_clearSvgElement(){let A=this._elementRef.nativeElement,i=A.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){let n=A.childNodes[i];(n.nodeType!==1||n.nodeName.toLowerCase()==="svg")&&n.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;let A=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(n=>n.length>0);this._previousFontSetClass.forEach(n=>A.classList.remove(n)),i.forEach(n=>A.classList.add(n)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&A.classList.remove(this._previousFontIconClass),this.fontIcon&&A.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(A){return typeof A=="string"?A.trim().split(" ")[0]:A}_prependPathToReferences(A){let i=this._elementsWithExternalReferences;i&&i.forEach((n,o)=>{n.forEach(r=>{o.setAttribute(r.name,`url('${A}#${r.value}')`)})})}_cacheChildrenWithExternalReferences(A){let i=A.querySelectorAll(gpA),n=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let o=0;o{let s=i[o],a=s.getAttribute(r),c=a?a.match(IpA):null;if(c){let l=n.get(s);l||(l=[],n.set(s,l)),l.push({name:r,value:c[1]})}})}_updateSvgIcon(A){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),A){let[i,n]=this._splitIconName(A);i&&(this._svgNamespace=i),n&&(this._svgName=n),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(n,i).pipe(On(1)).subscribe(o=>this._setSvgElement(o),o=>{let r=`Error retrieving icon ${i}:${n}! ${o.message}`;this._errorHandler.handleError(new Error(r))})}}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(i,n){i&2&&(Ne("data-mat-icon-type",n._usingFontIcon()?"font":"svg")("data-mat-icon-name",n._svgName||n.fontIcon)("data-mat-icon-namespace",n._svgNamespace||n.fontSet)("fontIcon",n._usingFontIcon()?n.fontIcon:null),fo(n.color?"mat-"+n.color:""),ue("mat-icon-inline",n.inline)("mat-icon-no-color",n.color!=="primary"&&n.color!=="accent"&&n.color!=="warn"))},inputs:{color:"color",inline:[2,"inline","inline",ie],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],ngContentSelectors:ipA,decls:1,vars:0,template:function(i,n){i&1&&(jt(),Fe(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color, inherit)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0})}return t})(),pq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[it,it]})}return t})();var CpA=["audioPlayer"],nC=class t{base64data="";audioPlayerRef;audioSrc="";constructor(){}ngOnChanges(e){e.base64data&&this.base64data&&this.setAudioSource(this.base64data)}setAudioSource(e){e.startsWith("data:")?this.audioSrc=e:this.audioSrc=`data:audio/mpeg;base64,${e}`,this.audioPlayerRef&&this.audioPlayerRef.nativeElement&&this.audioPlayerRef.nativeElement.load()}play(){this.audioPlayerRef&&this.audioPlayerRef.nativeElement&&this.audioPlayerRef.nativeElement.play()}pause(){this.audioPlayerRef&&this.audioPlayerRef.nativeElement&&this.audioPlayerRef.nativeElement.pause()}stop(){this.audioPlayerRef&&this.audioPlayerRef.nativeElement&&(this.audioPlayerRef.nativeElement.pause(),this.audioPlayerRef.nativeElement.currentTime=0)}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=zA({type:t,selectors:[["app-audio-player"]],viewQuery:function(A,i){if(A&1&&Te(CpA,5),A&2){let n;XA(n=$A())&&(i.audioPlayerRef=n.first)}},inputs:{base64data:"base64data"},standalone:!1,features:[ti],decls:3,vars:1,consts:[["audioPlayer",""],["controls","",3,"src"]],template:function(A,i){A&1&&(S(0,"div"),JA(1,"audio",1,0),F()),A&2&&(G(),yA("src",i.audioSrc,ja))},styles:[".audio-player-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;padding:15px;background-color:#f0f0f0;border-radius:8px;box-shadow:0 2px 5px #0000001a;margin:20px auto;max-width:350px}audio[_ngcontent-%COMP%]{outline:none;border-radius:5px;width:350px}.custom-controls[_ngcontent-%COMP%]{margin-top:10px;display:flex;gap:10px}.custom-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:8px 15px;border:none;border-radius:5px;background-color:#007bff;color:#fff;cursor:pointer;font-size:14px;transition:background-color .2s ease}.custom-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background-color:#0056b3}"]})};function dpA(t,e){t&1&&JA(0,"hr",2)}function BpA(t,e){if(t&1&&(S(0,"mat-option",7),AA(1),F()),t&2){let A=e.$implicit;yA("value",A),G(),Gt(A.versionId)}}function EpA(t,e){if(t&1){let A=be();S(0,"div")(1,"img",9),hA("click",function(){RA(A);let n=O().$index,o=O();return xA(o.openViewImageDialog(o.selectedArtifacts[n].data))}),F()()}if(t&2){let A,i=O().$index,n=O();G(),yA("src",(A=n.selectedArtifacts[i].data)!==null&&A!==void 0?A:"",ja)}}function QpA(t,e){if(t&1&&(S(0,"div"),JA(1,"app-audio-player",10),F()),t&2){let A=O().$index,i=O();G(),yA("base64data",i.selectedArtifacts[A].data)}}function hpA(t,e){if(t&1){let A=be();S(0,"div",1),_A(1,dpA,1,0,"hr",2),S(2,"div",3)(3,"button",4),hA("click",function(){let n=RA(A).$index,o=O();return xA(o.openArtifact(o.selectedArtifacts[n].data,o.selectedArtifacts[n].mimeType))}),AA(4),F()(),S(5,"div",3)(6,"span"),AA(7," Version: "),F(),S(8,"div",5)(9,"mat-select",6),da("ngModelChange",function(n){let o=RA(A).$index,r=O();return Va(r.selectedArtifacts[o],n)||(r.selectedArtifacts[o]=n),xA(n)}),hA("selectionChange",function(n){let o=RA(A).$index,r=O();return xA(r.onArtifactVersionChange(n,o))}),Dn(10,BpA,2,2,"mat-option",7,to),F()(),S(12,"button",8),hA("click",function(){let n=RA(A).$index,o=O();return xA(o.downloadArtifact(o.selectedArtifacts[n]))}),S(13,"mat-icon"),AA(14,"file_download"),F(),AA(15," Download "),F()(),S(16,"div"),_A(17,EpA,2,1,"div")(18,QpA,2,1,"div"),F()()}if(t&2){let A,i=e.$implicit,n=e.$index,o=O();G(),GA(n>0?1:-1),G(3),Et(" ",o.getArtifactName(i)," "),G(5),Ca("ngModel",o.selectedArtifacts[n]),G(),yn(o.getSortedArtifactsFromId(i)),G(7),GA((A=o.selectedArtifacts[n].mediaType)===o.MediaType.IMAGE?17:A===o.MediaType.AUDIO?18:-1)}}var upA="default_artifact_name",Ou=(n=>(n.IMAGE="image",n.AUDIO="audio",n.TEXT="text",n.UNSPECIFIED="unspecified",n))(Ou||{});function M8(t){let e=t.toLowerCase();for(let A of Object.values(Ou))if(A!=="unspecified"&&e.startsWith(A+"/"))return A;return"unspecified"}function fpA(t){return t?t.startsWith("image/"):!1}function mpA(t){return t?t.startsWith("audio/"):!1}function cS(t,e){try{if(!t)return;let A=t;if(t.startsWith("data:")&&t.includes(";base64,")&&(A=A.substring(A.indexOf(";base64,")+8)),!e||!A)return;let i=atob(A),n=new Array(i.length);for(let c=0;ce.id))]}getSortedArtifactsFromId(e){return this.artifacts.filter(A=>A.id===e).sort((A,i)=>i.versionId-A.versionId)}onArtifactVersionChange(e,A){this.selectedArtifacts[A]=e.value}openViewImageDialog(e){if(!e||!e.startsWith("data:")||e.indexOf(";base64,")===-1)return;let A=this.dialog.open(v0,{maxWidth:"90vw",maxHeight:"90vh",data:{imageData:e}})}openArtifact(e,A){if(this.isArtifactImage(A)){this.openViewImageDialog(e);return}this.openBase64InNewTab(e,A)}static \u0275fac=function(A){return new(A||t)(PA(O2),PA(qs))};static \u0275cmp=zA({type:t,selectors:[["app-artifact-tab"]],inputs:{artifacts:"artifacts"},standalone:!1,features:[ti],decls:3,vars:0,consts:[[1,"artifact-container"],[1,"artifact-box"],[1,"white-separator"],[1,"artifact-metadata"],[1,"link-style-button",3,"click"],[1,"version-select-container"],[3,"ngModelChange","selectionChange","ngModel"],[3,"value"],["mat-flat-button","",1,"download-button",3,"click"],["alt","artifact.id",1,"generated-image",3,"click","src"],[3,"base64data"]],template:function(A,i){A&1&&(S(0,"div",0),Dn(1,hpA,19,4,"div",1,to),F()),A&2&&(G(),yn(i.getDistinctArtifactIds()))},dependencies:[Ea,ec,P2,Dr,NB,U2,nC],styles:[".artifact-container[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.artifact-box[_ngcontent-%COMP%]{padding:10px;max-width:100%;margin-left:26px;display:flex;flex-direction:column}.artifact-metadata[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:15px;flex-wrap:wrap;gap:5px}.download-button[_ngcontent-%COMP%]{background-color:#8ab4f8!important;margin-left:35px;width:130px;height:28px;font-size:14px}.generated-image[_ngcontent-%COMP%]{max-width:60%;border-radius:8px;cursor:pointer}hr.white-separator[_ngcontent-%COMP%]{border:none;border-top:1px solid white;margin-bottom:1.2em;margin-right:15px}.version-select-container[_ngcontent-%COMP%]{background-color:#212123;width:80px;margin-left:15px}.link-style-button[_ngcontent-%COMP%]{background:none;border:none;padding:0;font:inherit;color:#007bff!important;text-decoration:underline;cursor:pointer;outline:none}.link-style-button[_ngcontent-%COMP%]:hover{color:#0056b3;text-decoration:underline}.link-style-button[_ngcontent-%COMP%]:focus{outline:1px dotted #007bff}.link-style-button[_ngcontent-%COMP%]:active{color:#004085}.link-style-button[_ngcontent-%COMP%]:disabled{color:#6c757d;text-decoration:none;cursor:not-allowed}"]})};function wo(t){return Array.isArray(t)}function xo(t){return t!==null&&typeof t=="object"&&(t.constructor===void 0||t.constructor.name==="Object")}function lS(t){return t&&typeof t=="object"?t.op==="add":!1}function gS(t){return t&&typeof t=="object"?t.op==="remove":!1}function k8(t){return t&&typeof t=="object"?t.op==="replace":!1}function S8(t){return t&&typeof t=="object"?t.op==="copy":!1}function j2(t){return t&&typeof t=="object"?t.op==="move":!1}function Dq(t,e){return JSON.stringify(t)===JSON.stringify(e)}function wpA(t,e){return t===e}function IS(t){return t.slice(0,t.length-1)}function yq(t){return t[t.length-1]}function vq(t,e){let A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:wpA;if(t.length{e[A]=t[A]}),e}else if(xo(t)){let e=rA({},t);return Object.getOwnPropertySymbols(t).forEach(A=>{e[A]=t[A]}),e}else return t}function BS(t,e,A){if(t[e]===A)return t;{let i=dS(t);return i[e]=A,i}}function Ke(t,e){let A=t,i=0;for(;i3&&arguments[3]!==void 0?arguments[3]:!1;if(e.length===0)return A;let n=e[0],o=cs(t?t[n]:void 0,e.slice(1),A,i);if(xo(t)||wo(t))return BS(t,n,o);if(i){let r=DpA.test(n)?[]:{};return r[n]=o,r}else throw new Error("Path does not exist")}var DpA=/^\d+$/;function Pu(t,e,A){if(e.length===0)return A(t);if(!CS(t))throw new Error("Path doesn't exist");let i=e[0],n=Pu(t[i],e.slice(1),A);return BS(t,i,n)}function oC(t,e){if(e.length===0)return t;if(!CS(t))throw new Error("Path does not exist");if(e.length===1){let n=e[0];if(n in t){let o=dS(t);return wo(o)&&o.splice(parseInt(n),1),xo(o)&&delete o[n],o}else return t}let A=e[0],i=oC(t[A],e.slice(1));return BS(t,A,i)}function ju(t,e,A){let i=e.slice(0,e.length-1),n=e[e.length-1];return Pu(t,i,o=>{if(!Array.isArray(o))throw new TypeError("Array expected at path "+JSON.stringify(i));let r=dS(o);return r.splice(parseInt(n),0,A),r})}function Ms(t,e){return t===void 0?!1:e.length===0?!0:t===null?!1:Ms(t[e[0]],e.slice(1))}function ks(t){let e=t.split("/");return e.shift(),e.map(A=>A.replace(/~1/g,"/").replace(/~0/g,"~"))}function Ct(t){return t.map(bq).join("")}function bq(t){return"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1")}function qu(t,e){return t+bq(e)}function Da(t,e,A){let i=t;for(let n=0;n{let s,a=ya(o,r.path);if(r.op==="add")s=Sq(o,a);else if(r.op==="remove")s=kq(o,a);else if(r.op==="replace")s=Mq(o,a);else if(r.op==="copy")s=LpA(o,a);else if(r.op==="move")s=FpA(o,a,Vu(r.from));else if(r.op==="test")s=[];else throw new Error("Unknown JSONPatch operation "+JSON.stringify(r));let c;if(A&&A.before){let l=A.before(o,r,s);if(l&&l.revertOperations&&(s=l.revertOperations),l&&l.document&&(c=l.document),l&&l.json)throw new Error('Deprecation warning: returned object property ".json" has been renamed to ".document"')}if(i=s.concat(i),c!==void 0)return{document:c}}}),i}function Mq(t,e){return[{op:"replace",path:Ct(e),value:Ke(t,e)}]}function kq(t,e){return[{op:"add",path:Ct(e),value:Ke(t,e)}]}function Sq(t,e){return YB(t,e)||!Ms(t,e)?[{op:"remove",path:Ct(e)}]:Mq(t,e)}function LpA(t,e){return Sq(t,e)}function FpA(t,e,A){if(e.length="0"&&t<="9"}function Fq(t){return t>=" "}function Zu(t){return`,:[]/{}() -+`.includes(t)}function hS(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="_"||t==="$"}function uS(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="_"||t==="$"||t>="0"&&t<="9"}var fS=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,mS=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function pS(t){return`,[]/{} -+`.includes(t)}function wS(t){return Wu(t)||OpA.test(t)}var OpA=/^[[{\w-]$/;function Nq(t){return t===` -`||t==="\r"||t===" "||t==="\b"||t==="\f"}function q2(t,e){let A=t.charCodeAt(e);return A===32||A===10||A===9||A===13}function _q(t,e){let A=t.charCodeAt(e);return A===32||A===9||A===13}function Gq(t,e){let A=t.charCodeAt(e);return A===160||A>=8192&&A<=8202||A===8239||A===8287||A===12288}function Wu(t){return DS(t)||F8(t)}function DS(t){return t==='"'||t==="\u201C"||t==="\u201D"}function yS(t){return t==='"'}function F8(t){return t==="'"||t==="\u2018"||t==="\u2019"||t==="`"||t==="\xB4"}function vS(t){return t==="'"}function JB(t,e){let A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=t.lastIndexOf(e);return i!==-1?t.substring(0,i)+(A?"":t.substring(i+1)):t}function Sc(t,e){let A=t.length;if(!q2(t,A-1))return t+e;for(;q2(t,A-1);)A--;return t.substring(0,A)+e+t.substring(A)}function Uq(t,e,A){return t.substring(0,e)+t.substring(e+A)}function Kq(t){return/[,\n][ \t\r]*$/.test(t)}var PpA={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},jpA={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` -`,r:"\r",t:" "};function Rc(t){let e=0,A="";c(["```","[```","{```"]),o()||QA(),c(["```","```]","```}"]);let n=I(",");for(n&&r(),wS(t[e])&&Kq(A)?(n||(A=Sc(A,",")),u()):n&&(A=JB(A,","));t[e]==="}"||t[e]==="]";)e++,r();if(e>=t.length)return A;gA();function o(){r();let tA=E()||h()||D()||R()||w()||K(!1)||z();return r(),tA}function r(){let tA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,cA=e,pA=s(tA);do pA=a(),pA&&(pA=s(tA));while(pA);return e>cA}function s(tA){let cA=tA?q2:_q,pA="";for(;;)if(cA(t,e))pA+=t[e],e++;else if(Gq(t,e))pA+=" ",e++;else break;return pA.length>0?(A+=pA,!0):!1}function a(){if(t[e]==="/"&&t[e+1]==="*"){for(;e=t.length;VA||(wS(t[e])||oe?A=Sc(A,":"):lA()),o()||(VA||oe?A+="null":lA())}return t[e]==="}"?(A+="}",e++):A=Sc(A,"}"),!0}return!1}function h(){if(t[e]==="["){A+="[",e++,r(),C(",")&&r();let tA=!0;for(;e0&&arguments[0]!==void 0?arguments[0]:!1,cA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,pA=t[e]==="\\";if(pA&&(e++,pA=!0),Wu(t[e])){let VA=yS(t[e])?yS:vS(t[e])?vS:F8(t[e])?F8:DS,oe=e,KA=A.length,CA='"';for(e++;;){if(e>=t.length){let TA=U(e-1);return!tA&&Zu(t.charAt(TA))?(e=oe,A=A.substring(0,KA),D(!0)):(CA=Sc(CA,'"'),A+=CA,!0)}if(e===cA)return CA=Sc(CA,'"'),A+=CA,!0;if(VA(t[e])){let TA=e,Ze=CA.length;if(CA+='"',e++,A+=CA,r(!1),tA||e>=t.length||Zu(t[e])||Wu(t[e])||V2(t[e]))return L(),!0;let He=U(TA-1),uA=t.charAt(He);if(uA===",")return e=oe,A=A.substring(0,KA),D(!1,He);if(Zu(uA))return e=oe,A=A.substring(0,KA),D(!0);A=A.substring(0,KA),e=TA+1,CA=`${CA.substring(0,Ze)}\\${CA.substring(Ze)}`}else if(tA&&pS(t[e])){if(t[e-1]===":"&&fS.test(t.substring(oe+1,e+2)))for(;e=t.length?e=t.length:vA()}else CA+=TA,e+=2}else{let TA=t.charAt(e);TA==='"'&&t[e-1]!=="\\"?(CA+=`\\${TA}`,e++):Nq(TA)?(CA+=PpA[TA],e++):(Fq(TA)||j(TA),CA+=TA,e++)}pA&&d()}}return!1}function L(){let tA=!1;for(r();t[e]==="+";){tA=!0,e++,r(),A=JB(A,'"',!0);let cA=A.length;D()?A=Uq(A,cA,1):A=Sc(A,'"')}return tA}function R(){let tA=e;if(t[e]==="-"){if(e++,H())return q(tA),!0;if(!V2(t[e]))return e=tA,!1}for(;V2(t[e]);)e++;if(t[e]==="."){if(e++,H())return q(tA),!0;if(!V2(t[e]))return e=tA,!1;for(;V2(t[e]);)e++}if(t[e]==="e"||t[e]==="E"){if(e++,(t[e]==="-"||t[e]==="+")&&e++,H())return q(tA),!0;if(!V2(t[e]))return e=tA,!1;for(;V2(t[e]);)e++}if(!H())return e=tA,!1;if(e>tA){let cA=t.slice(tA,e),pA=/^0\d/.test(cA);return A+=pA?`"${cA}"`:cA,!0}return!1}function w(){return _("true","true")||_("false","false")||_("null","null")||_("True","true")||_("False","false")||_("None","null")}function _(tA,cA){return t.slice(e,e+tA.length)===tA?(A+=cA,e+=tA.length,!0):!1}function K(tA){let cA=e;if(hS(t[e])){for(;ecA){for(;q2(t,e-1)&&e>0;)e--;let pA=t.slice(cA,e);return A+=pA==="undefined"?"null":JSON.stringify(pA),t[e]==='"'&&e++,!0}}function z(){if(t[e]==="/"){let tA=e;for(e++;e0&&q2(t,cA);)cA--;return cA}function H(){return e>=t.length||Zu(t[e])||q2(t,e)}function q(tA){A+=`${t.slice(tA,e)}0`}function j(tA){throw new M0(`Invalid character ${JSON.stringify(tA)}`,e)}function gA(){throw new M0(`Unexpected character ${JSON.stringify(t[e])}`,e)}function QA(){throw new M0("Unexpected end of json string",t.length)}function BA(){throw new M0("Object key expected",e)}function lA(){throw new M0("Colon expected",e)}function vA(){let tA=t.slice(e,e+6);throw new M0(`Invalid unicode character "${tA}"`,e)}}function qpA(t,e){return t[e]==="*"&&t[e+1]==="/"}var VpA=typeof global=="object"&&global&&global.Object===Object&&global,N8=VpA;var ZpA=typeof self=="object"&&self&&self.Object===Object&&self,WpA=N8||ZpA||Function("return this")(),gr=WpA;var XpA=gr.Symbol,Zr=XpA;var Yq=Object.prototype,$pA=Yq.hasOwnProperty,A6A=Yq.toString,Xu=Zr?Zr.toStringTag:void 0;function e6A(t){var e=$pA.call(t,Xu),A=t[Xu];try{t[Xu]=void 0;var i=!0}catch{}var n=A6A.call(t);return i&&(e?t[Xu]=A:delete t[Xu]),n}var Jq=e6A;var t6A=Object.prototype,i6A=t6A.toString;function n6A(t){return i6A.call(t)}var Tq=n6A;var o6A="[object Null]",r6A="[object Undefined]",Hq=Zr?Zr.toStringTag:void 0;function s6A(t){return t==null?t===void 0?r6A:o6A:Hq&&Hq in Object(t)?Jq(t):Tq(t)}var Ql=s6A;function a6A(t){return t!=null&&typeof t=="object"}var Vs=a6A;var c6A="[object Symbol]";function l6A(t){return typeof t=="symbol"||Vs(t)&&Ql(t)==c6A}var ac=l6A;function g6A(t,e){for(var A=-1,i=t==null?0:t.length,n=Array(i);++A0){if(++e>=$6A)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var sV=t8A;function i8A(t){return function(){return t}}var aV=i8A;var n8A=function(){try{var t=va(Object,"defineProperty");return t({},"",{}),t}catch{}}(),HB=n8A;var o8A=HB?function(t,e){return HB(t,"toString",{configurable:!0,enumerable:!1,value:aV(e),writable:!0})}:ug,cV=o8A;var r8A=sV(cV),lV=r8A;function s8A(t,e){for(var A=-1,i=t==null?0:t.length;++A-1&&t%1==0&&t-1&&t%1==0&&t<=u8A}var OB=f8A;function m8A(t){return t!=null&&OB(t.length)&&!_8(t)}var xc=m8A;function p8A(t,e,A){if(!Kr(A))return!1;var i=typeof e;return(i=="number"?xc(A)&&zB(e,A.length):i=="string"&&e in A)?X2(A[e],t):!1}var A4=p8A;var w8A=Object.prototype;function D8A(t){var e=t&&t.constructor,A=typeof e=="function"&&e.prototype||w8A;return t===A}var A1=D8A;function y8A(t,e){for(var A=-1,i=Array(t);++A-1}var FV=O5A;function P5A(t,e){var A=this.__data__,i=i1(A,t);return i<0?(++this.size,A.push([t,e])):A[i][1]=e,this}var NV=P5A;function ZB(t){var e=-1,A=t==null?0:t.length;for(this.clear();++e0&&A(s)?e>1?qV(s,e-1,A,i,n):$B(n,s):i||(n[n.length]=s)}return n}var VV=qV;var BwA=T8(Object.getPrototypeOf,Object),P8=BwA;function EwA(t,e,A){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),A=A>n?n:A,A<0&&(A+=n),n=e>A?0:A-e>>>0,e>>>=0;for(var o=Array(n);++is))return!1;var c=o.get(t),l=o.get(e);if(c&&l)return c==e&&l==t;var I=-1,C=!0,d=A&ByA?new KZ:void 0;for(o.set(t,e),o.set(e,t);++I=e||K<0||I&&z>=o}function u(){var _=g5();if(h(_))return D(_);s=setTimeout(u,E(_))}function D(_){return s=void 0,C&&i?d(_):(i=n=void 0,r)}function L(){s!==void 0&&clearTimeout(s),c=0,i=a=n=s=void 0}function R(){return s===void 0?r:D(g5())}function w(){var _=g5(),K=h(_);if(i=arguments,n=this,a=_,K){if(s===void 0)return B(a);if(I)return clearTimeout(s),s=setTimeout(u,e),d(a)}return s===void 0&&(s=setTimeout(u,e)),r}return w.cancel=L,w.flush=R,w}var oE=B7A;function E7A(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var hi=E7A;function Q7A(t){return typeof t=="function"?t:ug}var I5=Q7A;function h7A(t,e){for(var A=t==null?0:t.length;A--&&e(t[A],A,t)!==!1;);return t}var gW=h7A;var u7A=r5(!0),IW=u7A;function f7A(t,e){return t&&IW(t,e,Lc)}var CW=f7A;var m7A=a5(CW,!0),dW=m7A;function p7A(t,e){var A=Gn(t)?gW:dW;return A(t,I5(e))}var LS=p7A;function w7A(t){return t&&t.length?t[0]:void 0}var Fc=w7A;function D7A(t,e){var A=-1,i=xc(t)?Array(t.length):[];return c5(t,function(n,o,r){i[++A]=e(n,o,r)}),i}var C5=D7A;function y7A(t,e){var A=Gn(t)?Z2:C5;return A(t,fg(e,3))}var FS=y7A;var v7A=Object.prototype,b7A=v7A.hasOwnProperty,M7A=l5(function(t,e,A){b7A.call(t,A)?t[A].push(e):W2(t,A,[e])}),NS=M7A;function k7A(t){var e=t==null?0:t.length;return e?ZV(t,0,-1):[]}var Fi=k7A;var S7A="[object Map]",R7A="[object Set]",x7A=Object.prototype,L7A=x7A.hasOwnProperty;function F7A(t){if(t==null)return!0;if(xc(t)&&(Gn(t)||typeof t=="string"||typeof t.splice=="function"||S0(t)||PB(t)||e1(t)))return!t.length;var e=hl(t);if(e==S7A||e==R7A)return!t.size;if(A1(t))return!H8(t).length;for(var A in t)if(L7A.call(t,A))return!1;return!0}var Oi=F7A;function N7A(t,e){return nE(t,e)}var di=N7A;function _7A(t,e){return te||o&&r&&a&&!s&&!c||i&&r&&a||!A&&a||!n)return 1;if(!i&&!o&&!c&&t=s)return a;var c=A[i];return a*(c=="desc"?-1:1)}}return t.index-e.index}var uW=T7A;function H7A(t,e,A){e.length?e=Z2(e,function(o){return Gn(o)?function(r){return XB(r,o.length===1?o[0]:o)}:o}):e=[ug];var i=-1;e=Z2(e,t1(fg));var n=C5(t,function(o,r,s){var a=Z2(e,function(c){return c(o)});return{criteria:a,index:++i,value:o}});return QW(n,function(o,r){return uW(o,r,A)})}var fW=H7A;var z7A=l5(function(t,e,A){t[A?0:1].push(e)},function(){return[[],[]]}),GS=z7A;var O7A=Math.ceil,P7A=Math.max;function j7A(t,e,A,i){for(var n=-1,o=P7A(O7A((e-t)/(A||1)),0),r=Array(o);o--;)r[i?o:++n]=t,t+=A;return r}var mW=j7A;function q7A(t){return function(e,A,i){return i&&typeof i!="number"&&A4(e,A,i)&&(A=i=void 0),e=TB(e),A===void 0?(A=e,e=0):A=TB(A),i=i===void 0?e1&&A4(t,e[0],e[1])?e=[]:A>2&&A4(e[0],e[1],e[2])&&(e=[e[0]]),fW(t,VV(e,1),[])}),US=Z7A;var W7A=9007199254740991,KS=4294967295,X7A=Math.min;function $7A(t,e){if(t=Xq(t),t<1||t>W7A)return[];var A=KS,i=X7A(t,KS);e=I5(e),t-=KS;for(var n=Y8(i,e);++AArray.isArray(t),tvA=t=>t!==null&&typeof t=="object"&&!l1(t),ivA=t=>typeof t=="string",aC=(t,e)=>t===e?!0:t!==null&&e!==null&&typeof t=="object"&&typeof e=="object"&&Object.keys(t).length===Object.keys(e).length&&Object.entries(t).every(([A,i])=>aC(i,e[A]));function Er(t){return(...e)=>{let A=e.map(o=>Yr(o)),i=A[0],n=A[1];return A.length===1?o=>t(i(o)):A.length===2?o=>t(i(o),n(o)):o=>t(...A.map(r=>r(o)))}}var r4={boolean:0,number:1,string:2},wW=3,yW=(t,e)=>typeof t==typeof e&&typeof t in r4?t>e:!1,nvA=(t,e)=>aC(t,e)||yW(t,e),vW=(t,e)=>typeof t==typeof e&&typeof t in r4?taC(t,e)||vW(t,e),o4={pipe:(...t)=>{let e=t.map(A=>Yr(A));return A=>e.reduce((i,n)=>n(i),A)},object:t=>{let e=Object.keys(t).map(A=>[A,Yr(t[A])]);return A=>{let i={};for(let[n,o]of e)i[n]=o(A);return i}},array:(...t)=>{let e=t.map(A=>Yr(A));return A=>e.map(i=>i(A))},get:(...t)=>{if(t.length===0)return e=>e??null;if(t.length===1){let e=t[0];return A=>A?.[e]??null}return e=>{let A=e;for(let i of t)A=A?.[i];return A??null}},map:t=>{let e=Yr(t);return A=>A.map(e)},mapObject:t=>{let e=Yr(t);return A=>{let i={};for(let n of Object.keys(A)){let o=e({key:n,value:A[n]});i[o.key]=o.value}return i}},mapKeys:t=>{let e=Yr(t);return A=>{let i={};for(let n of Object.keys(A)){let o=e(n);i[o]=A[n]}return i}},mapValues:t=>{let e=Yr(t);return A=>{let i={};for(let n of Object.keys(A))i[n]=e(A[n]);return i}},filter:t=>{let e=Yr(t);return A=>A.filter(i=>DW(e(i)))},sort:(t=["get"],e)=>{let A=Yr(t),i=e==="desc"?-1:1;function n(o,r){let s=A(o),a=A(r);if(typeof s!=typeof a){let c=r4[typeof s]??wW,l=r4[typeof a]??wW;return c>l?i:ca?i:so.slice().sort(n)},reverse:()=>t=>t.toReversed(),pick:(...t)=>{let e=t.map(([i,...n])=>[n[n.length-1],o4.get(...n)]),A=(i,n)=>{let o={};for(let[r,s]of n)o[r]=s(i);return o};return i=>l1(i)?i.map(n=>A(n,e)):A(i,e)},groupBy:t=>{let e=Yr(t);return A=>{let i={};for(let n of A){let o=e(n);i[o]?i[o].push(n):i[o]=[n]}return i}},keyBy:t=>{let e=Yr(t);return A=>{let i={};for(let n of A){let o=e(n);o in i||(i[o]=n)}return i}},flatten:()=>t=>t.flat(),join:(t="")=>e=>e.join(t),split:Er((t,e)=>e!==void 0?t.split(e):t.trim().split(/\s+/)),substring:Er((t,e,A)=>t.slice(Math.max(e,0),A)),uniq:()=>t=>{let e=[];for(let A of t)e.findIndex(i=>aC(i,A))===-1&&e.push(A);return e},uniqBy:t=>e=>Object.values(o4.keyBy(t)(e)),limit:t=>e=>e.slice(0,Math.max(t,0)),size:()=>t=>t.length,keys:()=>Object.keys,values:()=>Object.values,prod:()=>t=>n4(t,(e,A)=>e*A),sum:()=>t=>l1(t)?t.reduce((e,A)=>e+A,0):JS(),average:()=>t=>l1(t)?t.length>0?t.reduce((e,A)=>e+A)/t.length:null:JS(),min:()=>t=>n4(t,(e,A)=>Math.min(e,A)),max:()=>t=>n4(t,(e,A)=>Math.max(e,A)),and:Er((...t)=>n4(t,(e,A)=>!!(e&&A))),or:Er((...t)=>n4(t,(e,A)=>!!(e||A))),not:Er(t=>!t),exists:t=>{let e=t.slice(1),A=e.pop(),i=o4.get(...e);return n=>{let o=i(n);return!!o&&Object.hasOwnProperty.call(o,A)}},if:(t,e,A)=>{let i=Yr(t),n=Yr(e),o=Yr(A);return r=>DW(i(r))?n(r):o(r)},in:(t,e)=>{let A=Yr(t),i=Yr(e);return n=>{let o=A(n);return i(n).findIndex(r=>aC(r,o))!==-1}},"not in":(t,e)=>{let A=o4.in(t,e);return i=>!A(i)},regex:(t,e,A)=>{let i=new RegExp(e,A),n=Yr(t);return o=>i.test(n(o))},eq:Er(aC),gt:Er(yW),gte:Er(nvA),lt:Er(vW),lte:Er(ovA),ne:Er((t,e)=>!aC(t,e)),add:Er((t,e)=>t+e),subtract:Er((t,e)=>t-e),multiply:Er((t,e)=>t*e),divide:Er((t,e)=>t/e),mod:Er((t,e)=>t%e),pow:Er((t,e)=>t**e),abs:Er(Math.abs),round:Er((t,e=0)=>+`${Math.round(+`${t}e${e}`)}e${-e}`),number:Er(t=>{let e=Number(t);return Number.isNaN(Number(t))?null:e}),string:Er(String)},DW=t=>t!==null&&t!==0&&t!==!1,n4=(t,e)=>(l1(t)||JS(),t.length===0?null:t.reduce(e)),JS=()=>{TS("Array expected")},TS=t=>{throw new TypeError(t)},B5=[];function Yr(t,e){B5.unshift(rA(rA(rA({},o4),B5[0]),e?.functions));try{let A=l1(t)?rvA(t,B5[0]):tvA(t)?TS(`Function notation ["object", {...}] expected but got ${JSON.stringify(t)}`):()=>t;return i=>{try{return A(i)}catch(n){throw n.jsonquery=[{data:i,query:t},...n.jsonquery??[]],n}}}finally{B5.shift()}}function rvA(t,e){let[A,...i]=t,n=e[A];return n||TS(`Unknown function '${A}'`),n(...i)}var bW=[{pow:"^"},{multiply:"*",divide:"/",mod:"%"},{add:"+",subtract:"-"},{gt:">",gte:">=",lt:"<",lte:"<=",in:"in","not in":"not in"},{eq:"==",ne:"!="},{and:"and"},{or:"or"},{pipe:"|"}],svA=["|","and","or"],MW=["|","and","or","*","/","%","+","-"];function kW(t,e){if(!l1(e))throw new Error("Invalid custom operators");return e.reduce(avA,t)}function avA(t,{name:e,op:A,at:i,after:n,before:o}){if(i)return t.map(a=>Object.values(a).includes(i)?Ye(rA({},a),{[e]:A}):a);let r=n??o,s=t.findIndex(a=>Object.values(a).includes(r));if(s!==-1)return t.toSpliced(s+(n?1:0),0,{[e]:A});throw new Error("Invalid custom operator")}var cvA=/^[a-zA-Z_$][a-zA-Z\d_$]*$/,lvA=/^[a-zA-Z_$][a-zA-Z\d_$]*/,gvA=/^"(?:[^"\\]|\\.)*"/,IvA=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/,CvA=/^(0|[1-9][0-9]*)/,dvA=/^(true|false|null)/,BvA=/^[ \n\t\r]+/;function HS(t,e){let A=e?.operators??[],i=kW(bW,A),n=Object.assign({},...i),o=svA.concat(A.filter(H=>H.vararg).map(H=>H.op)),r=MW.concat(A.filter(H=>H.leftAssociative).map(H=>H.op)),s=(H=i.length-1)=>{let q=i[H];if(!q)return c();let j=t[z]==="(",gA=s(H-1);for(;;){w();let QA=z,BA=a(q);if(!BA)break;let lA=s(H-1),vA=gA[0],tA=BA===vA&&!j;if(tA&&!r.includes(n[BA])){z=QA;break}gA=tA&&o.includes(n[BA])?[...gA,lA]:[BA,gA,lA]}return gA},a=H=>{let q=Object.keys(H).sort((j,gA)=>gA.length-j.length);for(let j of q){let gA=H[j];if(t.substring(z,z+gA.length)===gA)return z+=gA.length,w(),j}},c=()=>{if(w(),t[z]==="("){z++;let H=s();return _(")"),H}return l()},l=()=>{if(t[z]==="."){let H=[];for(;t[z]===".";)z++,H.push(B()??E()??u()??K("Property expected"));return["get",...H]}return I()},I=()=>{let H=z,q=E();if(w(),!q||t[z]!=="(")return z=H,C();z++,w();let j=t[z]!==")"?[s()]:[];for(;z{if(t[z]==="{"){z++,w();let H={},q=!0;for(;z{if(t[z]==="["){z++,w();let H=[],q=!0;for(;zR(gvA,JSON.parse),E=()=>R(lvA,H=>H),h=()=>R(IvA,JSON.parse),u=()=>R(CvA,JSON.parse),D=()=>{let H=R(dvA,JSON.parse);if(H!==void 0)return H;K("Value expected")},L=()=>{w(),z{let j=t.substring(z).match(H);if(j)return z+=j[0].length,q(j[0])},w=()=>R(BvA,H=>H),_=H=>{t[z]!==H&&K(`Character '${H}' expected`),z++},K=(H,q=z)=>{throw new SyntaxError(`${H} (pos: ${q})`)},z=0,U=s();return L(),U}var EvA=40,QvA=" ",SW=(t,e)=>{let A=e?.indentation??QvA,i=e?.operators??[],n=kW(bW,i),o=Object.assign({},...n),r=MW.concat(i.filter(d=>d.leftAssociative).map(d=>d.op)),s=(d,B,E=!1)=>l1(d)?a(d,B,E):JSON.stringify(d),a=(d,B,E)=>{let[h,...u]=d;if(h==="get"&&u.length>0)return l(u);if(h==="object")return c(u[0],B);if(h==="array"){let w=u.map(_=>s(_,B));return C(w,["[",", ","]"],[`[ -${B+A}`,`, -${B+A}`,` -${B}]`])}let D=o[h];if(D){let w=E?"(":"",_=E?")":"",K=u.map((z,U)=>{let H=z?.[0],q=n.findIndex(QA=>h in QA),j=n.findIndex(QA=>H in QA),gA=q0||h===H&&!r.includes(D);return s(z,B+A,gA)});return C(K,[w,` ${D} `,_],[w,` -${B+A}${D} `,_])}let L=u.length===1?B:B+A,R=u.map(w=>s(w,L));return C(R,[`${h}(`,", ",")"],u.length===1?[`${h}(`,`, -${B}`,")"]:[`${h}( -${L}`,`, -${L}`,` -${B})`])},c=(d,B)=>{let E=B+A,h=Object.entries(d).map(([u,D])=>`${I(u)}: ${s(D,E)}`);return C(h,["{ ",", "," }"],[`{ -${E}`,`, -${E}`,` -${B}}`])},l=d=>d.map(B=>`.${I(B)}`).join(""),I=d=>cvA.test(d)?d:JSON.stringify(d),C=(d,[B,E,h],[u,D,L])=>B.length+d.reduce((R,w)=>R+w.length+E.length,0)-E.length+h.length<=(e?.maxLineLength??EvA)?B+d.join(E)+h:u+d.join(D)+L;return s(t,"")};function RW(t,e,A){return Yr(ivA(e)?HS(e,A):e,A)(t)}var xW={prefix:"far",iconName:"lightbulb",icon:[384,512,[128161],"f0eb","M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7c0 0 0 0 0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5L109 384c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8c0 0 0 0 0 0s0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4c0 0 0 0 0 0s0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5l-48.6 0c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80l0-16 160 0 0 16c0 44.2-35.8 80-80 80z"]};var hvA={prefix:"far",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},zS=hvA;var OS={prefix:"far",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"]};var LW={prefix:"far",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]};var E5={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z"]};var FW={prefix:"fas",iconName:"down-left-and-up-right-to-center",icon:[512,512,["compress-alt"],"f422","M439 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39L439 7zM72 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39L73 505c-9.4 9.4-24.6 9.4-33.9 0L7 473c-9.4-9.4-9.4-24.6 0-33.9l87-87L55 313c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8z"]};var sE={prefix:"fas",iconName:"caret-right",icon:[256,512,[],"f0da","M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z"]};var PS={prefix:"fas",iconName:"paste",icon:[512,512,["file-clipboard"],"f0ea","M160 0c-23.7 0-44.4 12.9-55.4 32L48 32C21.5 32 0 53.5 0 80L0 400c0 26.5 21.5 48 48 48l144 0 0-272c0-44.2 35.8-80 80-80l48 0 0-16c0-26.5-21.5-48-48-48l-56.6 0C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48l0 272 0 16c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-220.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L320 128l-48 0zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]};var NW={prefix:"fas",iconName:"circle-notch",icon:[512,512,[],"f1ce","M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z"]};var uvA={prefix:"fas",iconName:"scissors",icon:[512,512,[9984,9986,9988,"cut"],"f0c4","M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},cC=uvA;var fvA={prefix:"fas",iconName:"square-caret-down",icon:[448,512,["caret-square-down"],"f150","M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"]},_W=fvA;var GW={prefix:"fas",iconName:"caret-left",icon:[256,512,[],"f0d9","M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z"]};var mvA={prefix:"fas",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},jS=mvA;var pvA={prefix:"fas",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z"]},UW=pvA;var KW={prefix:"fas",iconName:"chevron-up",icon:[512,512,[],"f077","M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"]};var qS={prefix:"fas",iconName:"angle-right",icon:[320,512,[8250],"f105","M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"]};var wvA={prefix:"fas",iconName:"square-caret-up",icon:[448,512,["caret-square-up"],"f151","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"]},YW=wvA;var VS={prefix:"fas",iconName:"caret-up",icon:[320,512,[],"f0d8","M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"]};var ZS={prefix:"fas",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"]};var s4={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.9 54.9C10.5 40.9 24.5 32 40 32l432 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9 320 448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z"]};var a4={prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"]};var L0={prefix:"fas",iconName:"wrench",icon:[512,512,[128295],"f0ad","M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7L336 192c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]};var JW={prefix:"fas",iconName:"eye",icon:[576,512,[128065],"f06e","M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"]};var lC={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z"]};var DvA={prefix:"fas",iconName:"arrow-rotate-right",icon:[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M386.3 160L336 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z"]};var Q5=DvA;var yvA={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z"]};var h5=yvA;var vvA={prefix:"fas",iconName:"crop-simple",icon:[512,512,["crop-alt"],"f565","M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-224 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64L160 64l0 64 224 0 0 352z"]},TW=vvA;var bvA={prefix:"fas",iconName:"gear",icon:[512,512,[9881,"cog"],"f013","M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"]},HW=bvA;var mg={prefix:"fas",iconName:"caret-down",icon:[320,512,[],"f0d7","M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"]};var MvA={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"]},WS=MvA;var c4={prefix:"fas",iconName:"arrow-right-arrow-left",icon:[448,512,[8644,"exchange"],"f0ec","M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z"]};var kvA={prefix:"fas",iconName:"arrow-down-short-wide",icon:[576,512,["sort-amount-desc","sort-amount-down-alt"],"f884","M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]};var l4=kvA;var zW={prefix:"fas",iconName:"angle-down",icon:[448,512,[8964],"f107","M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]};var XS={prefix:"fas",iconName:"arrow-down",icon:[384,512,[8595],"f063","M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]};var SvA={prefix:"fas",iconName:"magnifying-glass",icon:[512,512,[128269,"search"],"f002","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"]},g4=SvA;var OW={prefix:"fas",iconName:"chevron-down",icon:[512,512,[],"f078","M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"]};var F0={prefix:"fas",iconName:"copy",icon:[448,512,[],"f0c5","M208 0L332.1 0c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9L448 336c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48zM48 128l80 0 0 64-64 0 0 256 192 0 0-32 64 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48z"]};var gC={prefix:"fas",iconName:"plus",icon:[448,512,[10133,61543,"add"],"2b","M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z"]};var PW={prefix:"fas",iconName:"xmark",icon:[384,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"]},jW=PW;var I4=PW;var qW={prefix:"fas",iconName:"rotate",icon:[512,512,[128260,"sync-alt"],"f2f1","M142.9 142.9c-17.5 17.5-30.1 38-37.8 59.8c-5.9 16.7-24.2 25.4-40.8 19.5s-25.4-24.2-19.5-40.8C55.6 150.7 73.2 122 97.6 97.6c87.2-87.2 228.3-87.5 315.8-1L455 55c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 128c0 13.3-10.7 24-24 24l-8.4 0c0 0 0 0 0 0L344 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l41.1-41.1c-62.6-61.5-163.1-61.2-225.3 1zM16 312c0-13.3 10.7-24 24-24l7.6 0 .7 0L168 288c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-41.1 41.1c62.6 61.5 163.1 61.2 225.3-1c17.5-17.5 30.1-38 37.8-59.8c5.9-16.7 24.2-25.4 40.8-19.5s25.4 24.2 19.5 40.8c-10.8 30.6-28.4 59.3-52.9 83.8c-87.2 87.2-228.3 87.5-315.8 1L57 457c-6.9 6.9-17.2 8.9-26.2 5.2S16 449.7 16 440l0-119.6 0-.7 0-7.6z"]};var VW={prefix:"fas",iconName:"up-right-and-down-left-from-center",icon:[512,512,["expand-alt"],"f424","M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z"]};var $S={prefix:"fas",iconName:"clone",icon:[512,512,[],"f24d","M288 448L64 448l0-224 64 0 0-64-64 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-64-64 0 0 64zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z"]};var u5={prefix:"fas",iconName:"check",icon:[448,512,[10003,10004],"f00c","M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"]};var RvA={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},g1=RvA;var OrA=jQ(XW(),1);var $W=Number.isNaN||function(e){return typeof e=="number"&&e!==e};function xvA(t,e){return!!(t===e||$W(t)&&$W(e))}function LvA(t,e){if(t.length!==e.length)return!1;for(var A=0;A{if(typeof n!="object"||!n.name||!n.init)throw new Error("Invalid JSEP plugin format");this.registered[n.name]||(n.init(this.jsep),this.registered[n.name]=n)})}},Ra=class t{static get version(){return"1.4.0"}static toString(){return"JavaScript Expression Parser (JSEP) v"+t.version}static addUnaryOp(e){return t.max_unop_len=Math.max(e.length,t.max_unop_len),t.unary_ops[e]=1,t}static addBinaryOp(e,A,i){return t.max_binop_len=Math.max(e.length,t.max_binop_len),t.binary_ops[e]=A,i?t.right_associative.add(e):t.right_associative.delete(e),t}static addIdentifierChar(e){return t.additional_identifier_chars.add(e),t}static addLiteral(e,A){return t.literals[e]=A,t}static removeUnaryOp(e){return delete t.unary_ops[e],e.length===t.max_unop_len&&(t.max_unop_len=t.getMaxKeyLen(t.unary_ops)),t}static removeAllUnaryOps(){return t.unary_ops={},t.max_unop_len=0,t}static removeIdentifierChar(e){return t.additional_identifier_chars.delete(e),t}static removeBinaryOp(e){return delete t.binary_ops[e],e.length===t.max_binop_len&&(t.max_binop_len=t.getMaxKeyLen(t.binary_ops)),t.right_associative.delete(e),t}static removeAllBinaryOps(){return t.binary_ops={},t.max_binop_len=0,t}static removeLiteral(e){return delete t.literals[e],t}static removeAllLiterals(){return t.literals={},t}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(e){this.expr=e,this.index=0}static parse(e){return new t(e).parse()}static getMaxKeyLen(e){return Math.max(0,...Object.keys(e).map(A=>A.length))}static isDecimalDigit(e){return e>=48&&e<=57}static binaryPrecedence(e){return t.binary_ops[e]||0}static isIdentifierStart(e){return e>=65&&e<=90||e>=97&&e<=122||e>=128&&!t.binary_ops[String.fromCharCode(e)]||t.additional_identifier_chars.has(String.fromCharCode(e))}static isIdentifierPart(e){return t.isIdentifierStart(e)||t.isDecimalDigit(e)}throwError(e){let A=new Error(e+" at character "+this.index);throw A.index=this.index,A.description=e,A}runHook(e,A){if(t.hooks[e]){let i={context:this,node:A};return t.hooks.run(e,i),i.node}return A}searchHook(e){if(t.hooks[e]){let A={context:this};return t.hooks[e].find(function(i){return i.call(A.context,A),A.node}),A.node}}gobbleSpaces(){let e=this.code;for(;e===t.SPACE_CODE||e===t.TAB_CODE||e===t.LF_CODE||e===t.CR_CODE;)e=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");let e=this.gobbleExpressions(),A=e.length===1?e[0]:{type:t.COMPOUND,body:e};return this.runHook("after-all",A)}gobbleExpressions(e){let A=[],i,n;for(;this.index0;){if(t.binary_ops.hasOwnProperty(e)&&(!t.isIdentifierStart(this.code)||this.index+e.lengtho.right_a&&I.right_a?i>I.prec:i<=I.prec;for(;n.length>2&&l(n[n.length-2]);)s=n.pop(),A=n.pop().value,r=n.pop(),e={type:t.BINARY_EXP,operator:A,left:r,right:s},n.push(e);e=this.gobbleToken(),e||this.throwError("Expected expression after "+c),n.push(o,e)}for(a=n.length-1,e=n[a];a>1;)e={type:t.BINARY_EXP,operator:n[a-1].value,left:n[a-2],right:e},a-=2;return e}gobbleToken(){let e,A,i,n;if(this.gobbleSpaces(),n=this.searchHook("gobble-token"),n)return this.runHook("after-token",n);if(e=this.code,t.isDecimalDigit(e)||e===t.PERIOD_CODE)return this.gobbleNumericLiteral();if(e===t.SQUOTE_CODE||e===t.DQUOTE_CODE)n=this.gobbleStringLiteral();else if(e===t.OBRACK_CODE)n=this.gobbleArray();else{for(A=this.expr.substr(this.index,t.max_unop_len),i=A.length;i>0;){if(t.unary_ops.hasOwnProperty(A)&&(!t.isIdentifierStart(this.code)||this.index+A.length=A.length&&this.throwError("Unexpected token "+String.fromCharCode(e));break}else if(o===t.COMMA_CODE){if(this.index++,n++,n!==A.length){if(e===t.CPAREN_CODE)this.throwError("Unexpected token ,");else if(e===t.CBRACK_CODE)for(let r=A.length;r":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10,"**":11},right_associative:new Set(["**"]),additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"});Ra.max_unop_len=Ra.getMaxKeyLen(Ra.unary_ops);Ra.max_binop_len=Ra.getMaxKeyLen(Ra.binary_ops);var Y0=t=>new Ra(t).parse(),oRA=Object.getOwnPropertyNames(class{});Object.getOwnPropertyNames(Ra).filter(t=>!oRA.includes(t)&&Y0[t]===void 0).forEach(t=>{Y0[t]=Ra[t]});Y0.Jsep=Ra;var rRA="ConditionalExpression",sRA={name:"ternary",init(t){t.hooks.add("after-expression",function(A){if(A.node&&this.code===t.QUMARK_CODE){this.index++;let i=A.node,n=this.gobbleExpression();if(n||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===t.COLON_CODE){this.index++;let o=this.gobbleExpression();if(o||this.throwError("Expected expression"),A.node={type:rRA,test:i,consequent:n,alternate:o},i.operator&&t.binary_ops[i.operator]<=.9){let r=i;for(;r.right.operator&&t.binary_ops[r.right.operator]<=.9;)r=r.right;A.node.test=r.right,r.right=A.node,A.node=i}}else this.throwError("Expected :")}})}};Y0.plugins.register(sRA);var UAA=47,aRA=92,cRA={name:"regex",init(t){t.hooks.add("gobble-token",function(A){if(this.code===UAA){let i=++this.index,n=!1;for(;this.index=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57)r+=this.char;else break}let s;try{s=new RegExp(o,r)}catch(a){this.throwError(a.message)}return A.node={type:t.LITERAL,value:s,raw:this.expr.slice(i-1,this.index)},A.node=this.gobbleTokenProperty(A.node),A.node}this.code===t.OBRACK_CODE?n=!0:n&&this.code===t.CBRACK_CODE&&(n=!1),this.index+=this.code===aRA?2:1}this.throwError("Unclosed Regex")}})}},Ux=43,lRA=45,pE={name:"assignment",assignmentOperators:new Set(["=","*=","**=","/=","%=","+=","-=","<<=",">>=",">>>=","&=","^=","|=","||=","&&=","??="]),updateOperators:[Ux,lRA],assignmentPrecedence:.9,init(t){let e=[t.IDENTIFIER,t.MEMBER_EXP];pE.assignmentOperators.forEach(i=>t.addBinaryOp(i,pE.assignmentPrecedence,!0)),t.hooks.add("gobble-token",function(n){let o=this.code;pE.updateOperators.some(r=>r===o&&r===this.expr.charCodeAt(this.index+1))&&(this.index+=2,n.node={type:"UpdateExpression",operator:o===Ux?"++":"--",argument:this.gobbleTokenProperty(this.gobbleIdentifier()),prefix:!0},(!n.node.argument||!e.includes(n.node.argument.type))&&this.throwError(`Unexpected ${n.node.operator}`))}),t.hooks.add("after-token",function(n){if(n.node){let o=this.code;pE.updateOperators.some(r=>r===o&&r===this.expr.charCodeAt(this.index+1))&&(e.includes(n.node.type)||this.throwError(`Unexpected ${n.node.operator}`),this.index+=2,n.node={type:"UpdateExpression",operator:o===Ux?"++":"--",argument:n.node,prefix:!1})}}),t.hooks.add("after-expression",function(n){n.node&&A(n.node)});function A(i){pE.assignmentOperators.has(i.operator)?(i.type="AssignmentExpression",A(i.left),A(i.right)):i.operator||Object.values(i).forEach(n=>{n&&typeof n=="object"&&A(n)})}}};Y0.plugins.register(cRA,pE);Y0.addUnaryOp("typeof");Y0.addLiteral("null",null);Y0.addLiteral("undefined",void 0);var gRA=new Set(["constructor","__proto__","__defineGetter__","__defineSetter__"]),so={evalAst(t,e){switch(t.type){case"BinaryExpression":case"LogicalExpression":return so.evalBinaryExpression(t,e);case"Compound":return so.evalCompound(t,e);case"ConditionalExpression":return so.evalConditionalExpression(t,e);case"Identifier":return so.evalIdentifier(t,e);case"Literal":return so.evalLiteral(t,e);case"MemberExpression":return so.evalMemberExpression(t,e);case"UnaryExpression":return so.evalUnaryExpression(t,e);case"ArrayExpression":return so.evalArrayExpression(t,e);case"CallExpression":return so.evalCallExpression(t,e);case"AssignmentExpression":return so.evalAssignmentExpression(t,e);default:throw SyntaxError("Unexpected expression",t)}},evalBinaryExpression(t,e){return{"||":(i,n)=>i||n(),"&&":(i,n)=>i&&n(),"|":(i,n)=>i|n(),"^":(i,n)=>i^n(),"&":(i,n)=>i&n(),"==":(i,n)=>i==n(),"!=":(i,n)=>i!=n(),"===":(i,n)=>i===n(),"!==":(i,n)=>i!==n(),"<":(i,n)=>i":(i,n)=>i>n(),"<=":(i,n)=>i<=n(),">=":(i,n)=>i>=n(),"<<":(i,n)=>i<>":(i,n)=>i>>n(),">>>":(i,n)=>i>>>n(),"+":(i,n)=>i+n(),"-":(i,n)=>i-n(),"*":(i,n)=>i*n(),"/":(i,n)=>i/n(),"%":(i,n)=>i%n()}[t.operator](so.evalAst(t.left,e),()=>so.evalAst(t.right,e))},evalCompound(t,e){let A;for(let i=0;i-so.evalAst(i,e),"!":i=>!so.evalAst(i,e),"~":i=>~so.evalAst(i,e),"+":i=>+so.evalAst(i,e),typeof:i=>typeof so.evalAst(i,e)}[t.operator](t.argument)},evalArrayExpression(t,e){return t.elements.map(A=>so.evalAst(A,e))},evalCallExpression(t,e){let A=t.arguments.map(n=>so.evalAst(n,e));return so.evalAst(t.callee,e)(...A)},evalAssignmentExpression(t,e){if(t.left.type!=="Identifier")throw SyntaxError("Invalid left-hand side in assignment");let A=t.left.name,i=so.evalAst(t.right,e);return e[A]=i,e[A]}},Jx=class{constructor(e){this.code=e,this.ast=Y0(this.code)}runInNewContext(e){let A=Object.assign(Object.create(null),e);return so.evalAst(this.ast,A)}};function u1(t,e){return t=t.slice(),t.push(e),t}function Tx(t,e){return e=e.slice(),e.unshift(t),e}var Hx=class extends Error{constructor(e){super('JSONPath should not be called with "new" (it prevents return of (unwrapped) scalar values)'),this.avoidNew=!0,this.value=e,this.name="NewError"}};function xn(t,e,A,i,n){if(!(this instanceof xn))try{return new xn(t,e,A,i,n)}catch(r){if(!r.avoidNew)throw r;return r.value}typeof t=="string"&&(n=i,i=A,A=e,e=t,t=null);let o=t&&typeof t=="object";if(t=t||{},this.json=t.json||A,this.path=t.path||e,this.resultType=t.resultType||"value",this.flatten=t.flatten||!1,this.wrap=Object.hasOwn(t,"wrap")?t.wrap:!0,this.sandbox=t.sandbox||{},this.eval=t.eval===void 0?"safe":t.eval,this.ignoreEvalErrors=typeof t.ignoreEvalErrors>"u"?!1:t.ignoreEvalErrors,this.parent=t.parent||null,this.parentProperty=t.parentProperty||null,this.callback=t.callback||i||null,this.otherTypeCallback=t.otherTypeCallback||n||function(){throw new TypeError("You must supply an otherTypeCallback callback option with the @other() operator.")},t.autostart!==!1){let r={path:o?t.path:e};o?"json"in t&&(r.json=t.json):r.json=A;let s=this.evaluate(r);if(!s||typeof s!="object")throw new Hx(s);return s}}xn.prototype.evaluate=function(t,e,A,i){let n=this.parent,o=this.parentProperty,{flatten:r,wrap:s}=this;if(this.currResultType=this.resultType,this.currEval=this.eval,this.currSandbox=this.sandbox,A=A||this.callback,this.currOtherTypeCallback=i||this.otherTypeCallback,e=e||this.json,t=t||this.path,t&&typeof t=="object"&&!Array.isArray(t)){if(!t.path&&t.path!=="")throw new TypeError('You must supply a "path" property when providing an object argument to JSONPath.evaluate().');if(!Object.hasOwn(t,"json"))throw new TypeError('You must supply a "json" property when providing an object argument to JSONPath.evaluate().');({json:e}=t),r=Object.hasOwn(t,"flatten")?t.flatten:r,this.currResultType=Object.hasOwn(t,"resultType")?t.resultType:this.currResultType,this.currSandbox=Object.hasOwn(t,"sandbox")?t.sandbox:this.currSandbox,s=Object.hasOwn(t,"wrap")?t.wrap:s,this.currEval=Object.hasOwn(t,"eval")?t.eval:this.currEval,A=Object.hasOwn(t,"callback")?t.callback:A,this.currOtherTypeCallback=Object.hasOwn(t,"otherTypeCallback")?t.otherTypeCallback:this.currOtherTypeCallback,n=Object.hasOwn(t,"parent")?t.parent:n,o=Object.hasOwn(t,"parentProperty")?t.parentProperty:o,t=t.path}if(n=n||null,o=o||null,Array.isArray(t)&&(t=xn.toPathString(t)),!t&&t!==""||!e)return;let a=xn.toPathArray(t);a[0]==="$"&&a.length>1&&a.shift(),this._hasParentSelector=null;let c=this._trace(a,e,["$"],n,o,A).filter(function(l){return l&&!l.isParentSelector});return c.length?!s&&c.length===1&&!c[0].hasArrExpr?this._getPreferredOutput(c[0]):c.reduce((l,I)=>{let C=this._getPreferredOutput(I);return r&&Array.isArray(C)?l=l.concat(C):l.push(C),l},[]):s?[]:void 0};xn.prototype._getPreferredOutput=function(t){let e=this.currResultType;switch(e){case"all":{let A=Array.isArray(t.path)?t.path:xn.toPathArray(t.path);return t.pointer=xn.toPointer(A),t.path=typeof t.path=="string"?t.path:xn.toPathString(t.path),t}case"value":case"parent":case"parentProperty":return t[e];case"path":return xn.toPathString(t[e]);case"pointer":return xn.toPointer(t.path);default:throw new TypeError("Unknown result type")}};xn.prototype._handleCallback=function(t,e,A){if(e){let i=this._getPreferredOutput(t);t.path=typeof t.path=="string"?t.path:xn.toPathString(t.path),e(i,A,t)}};xn.prototype._trace=function(t,e,A,i,n,o,r,s){let a;if(!t.length)return a={path:A,value:e,parent:i,parentProperty:n,hasArrExpr:r},this._handleCallback(a,o,"value"),a;let c=t[0],l=t.slice(1),I=[];function C(d){Array.isArray(d)?d.forEach(B=>{I.push(B)}):I.push(d)}if((typeof c!="string"||s)&&e&&Object.hasOwn(e,c))C(this._trace(l,e[c],u1(A,c),e,c,o,r));else if(c==="*")this._walk(e,d=>{C(this._trace(l,e[d],u1(A,d),e,d,o,!0,!0))});else if(c==="..")C(this._trace(l,e,A,i,n,o,r)),this._walk(e,d=>{typeof e[d]=="object"&&C(this._trace(t.slice(),e[d],u1(A,d),e,d,o,!0))});else{if(c==="^")return this._hasParentSelector=!0,{path:A.slice(0,-1),expr:l,isParentSelector:!0};if(c==="~")return a={path:u1(A,c),value:n,parent:i,parentProperty:null},this._handleCallback(a,o,"property"),a;if(c==="$")C(this._trace(l,e,A,null,null,o,r));else if(/^(-?\d*):(-?\d*):?(\d*)$/u.test(c))C(this._slice(c,l,e,A,i,n,o));else if(c.indexOf("?(")===0){if(this.currEval===!1)throw new Error("Eval [?(expr)] prevented in JSONPath expression.");let d=c.replace(/^\?\((.*?)\)$/u,"$1"),B=/@.?([^?]*)[['](\??\(.*?\))(?!.\)\])[\]']/gu.exec(d);B?this._walk(e,E=>{let h=[B[2]],u=B[1]?e[E][B[1]]:e[E];this._trace(h,u,A,i,n,o,!0).length>0&&C(this._trace(l,e[E],u1(A,E),e,E,o,!0))}):this._walk(e,E=>{this._eval(d,e[E],E,A,i,n)&&C(this._trace(l,e[E],u1(A,E),e,E,o,!0))})}else if(c[0]==="("){if(this.currEval===!1)throw new Error("Eval [(expr)] prevented in JSONPath expression.");C(this._trace(Tx(this._eval(c,e,A.at(-1),A.slice(0,-1),i,n),l),e,A,i,n,o,r))}else if(c[0]==="@"){let d=!1,B=c.slice(1,-2);switch(B){case"scalar":(!e||!["object","function"].includes(typeof e))&&(d=!0);break;case"boolean":case"string":case"undefined":case"function":typeof e===B&&(d=!0);break;case"integer":Number.isFinite(e)&&!(e%1)&&(d=!0);break;case"number":Number.isFinite(e)&&(d=!0);break;case"nonFinite":typeof e=="number"&&!Number.isFinite(e)&&(d=!0);break;case"object":e&&typeof e===B&&(d=!0);break;case"array":Array.isArray(e)&&(d=!0);break;case"other":d=this.currOtherTypeCallback(e,A,i,n);break;case"null":e===null&&(d=!0);break;default:throw new TypeError("Unknown value type "+B)}if(d)return a={path:A,value:e,parent:i,parentProperty:n},this._handleCallback(a,o,"value"),a}else if(c[0]==="`"&&e&&Object.hasOwn(e,c.slice(1))){let d=c.slice(1);C(this._trace(l,e[d],u1(A,d),e,d,o,r,!0))}else if(c.includes(",")){let d=c.split(",");for(let B of d)C(this._trace(Tx(B,l),e,A,i,n,o,!0))}else!s&&e&&Object.hasOwn(e,c)&&C(this._trace(l,e[c],u1(A,c),e,c,o,r,!0))}if(this._hasParentSelector)for(let d=0;d{e(A)})};xn.prototype._slice=function(t,e,A,i,n,o,r){if(!Array.isArray(A))return;let s=A.length,a=t.split(":"),c=a[2]&&Number.parseInt(a[2])||1,l=a[0]&&Number.parseInt(a[0])||0,I=a[1]&&Number.parseInt(a[1])||s;l=l<0?Math.max(0,l+s):Math.min(s,l),I=I<0?Math.max(0,I+s):Math.min(s,I);let C=[];for(let d=l;d{C.push(E)});return C};xn.prototype._eval=function(t,e,A,i,n,o){this.currSandbox._$_parentProperty=o,this.currSandbox._$_parent=n,this.currSandbox._$_property=A,this.currSandbox._$_root=this.json,this.currSandbox._$_v=e;let r=t.includes("@path");r&&(this.currSandbox._$_path=xn.toPathString(i.concat([A])));let s=this.currEval+"Script:"+t;if(!xn.cache[s]){let a=t.replaceAll("@parentProperty","_$_parentProperty").replaceAll("@parent","_$_parent").replaceAll("@property","_$_property").replaceAll("@root","_$_root").replaceAll(/@([.\s)[])/gu,"_$_v$1");if(r&&(a=a.replaceAll("@path","_$_path")),this.currEval==="safe"||this.currEval===!0||this.currEval===void 0)xn.cache[s]=new this.safeVm.Script(a);else if(this.currEval==="native")xn.cache[s]=new this.vm.Script(a);else if(typeof this.currEval=="function"&&this.currEval.prototype&&Object.hasOwn(this.currEval.prototype,"runInNewContext")){let c=this.currEval;xn.cache[s]=new c(a)}else if(typeof this.currEval=="function")xn.cache[s]={runInNewContext:c=>this.currEval(a,c)};else throw new TypeError(`Unknown "eval" property "${this.currEval}"`)}try{return xn.cache[s].runInNewContext(this.currSandbox)}catch(a){if(this.ignoreEvalErrors)return!1;throw new Error("jsonPath: "+a.message+": "+t)}};xn.cache={};xn.toPathString=function(t){let e=t,A=e.length,i="$";for(let n=1;ntypeof e[c]=="function");let o=i.map(c=>e[c]);A=n.reduce((c,l)=>{let I=e[l].toString();return/function/u.test(I)||(I="function "+I),"var "+l+"="+I+";"+c},"")+A,!/(['"])use strict\1/u.test(A)&&!i.includes("arguments")&&(A="var arguments = undefined;"+A),A=A.replace(/;\s*$/u,"");let s=A.lastIndexOf(";"),a=s!==-1?A.slice(0,s+1)+" return "+A.slice(s+1):" return "+A;return new Function(...i,a)(...o)}};xn.prototype.vm={Script:zx};var Px=[],TAA=[];(()=>{let t="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,A=0;e>1;if(t=TAA[i])e=i+1;else return!0;if(e==A)return!1}}function KAA(t){return t>=127462&&t<=127487}var YAA=8205;function HAA(t,e,A=!0,i=!0){return(A?zAA:dRA)(t,e,i)}function zAA(t,e,A){if(e==t.length)return e;e&&OAA(t.charCodeAt(e))&&PAA(t.charCodeAt(e-1))&&e--;let i=Ox(t,e);for(e+=JAA(i);e=0&&KAA(Ox(t,r));)o++,r-=2;if(o%2==0)break;e+=2}else break}return e}function dRA(t,e,A){for(;e>0;){let i=zAA(t,e-2,A);if(i=56320&&t<57344}function PAA(t){return t>=55296&&t<56320}function JAA(t){return t<65536?1:2}var In=class t{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,A,i){[e,A]=bE(this,e,A);let n=[];return this.decompose(0,e,n,2),i.length&&i.decompose(0,i.length,n,3),this.decompose(A,this.length,n,1),DE.from(n,this.length-(A-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,A=this.length){[e,A]=bE(this,e,A);let i=[];return this.decompose(e,A,i,0),DE.from(i,A-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let A=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),n=new pC(this),o=new pC(e);for(let r=A,s=A;;){if(n.next(r),o.next(r),r=0,n.lineBreak!=o.lineBreak||n.done!=o.done||n.value!=o.value)return!1;if(s+=n.value.length,n.done||s>=i)return!0}}iter(e=1){return new pC(this,e)}iterRange(e,A=this.length){return new sw(this,e,A)}iterLines(e,A){let i;if(e==null)i=this.iter();else{A==null&&(A=this.lines+1);let n=this.line(e).from;i=this.iterRange(n,Math.max(n,A==this.lines+1?this.length:A<=1?0:this.line(A-1).to))}return new aw(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?t.empty:e.length<=32?new cc(e):DE.from(cc.split(e,[]))}},cc=class t extends In{constructor(e,A=BRA(e)){super(),this.text=e,this.length=A}get lines(){return this.text.length}get children(){return null}lineInner(e,A,i,n){for(let o=0;;o++){let r=this.text[o],s=n+r.length;if((A?i:s)>=e)return new Vx(n,s,i,r);n=s+1,i++}}decompose(e,A,i,n){let o=e<=0&&A>=this.length?this:new t(jAA(this.text,e,A),Math.min(A,this.length)-Math.max(0,e));if(n&1){let r=i.pop(),s=rw(o.text,r.text.slice(),0,o.length);if(s.length<=32)i.push(new t(s,r.length+o.length));else{let a=s.length>>1;i.push(new t(s.slice(0,a)),new t(s.slice(a)))}}else i.push(o)}replace(e,A,i){if(!(i instanceof t))return super.replace(e,A,i);[e,A]=bE(this,e,A);let n=rw(this.text,rw(i.text,jAA(this.text,0,e)),A),o=this.length+i.length-(A-e);return n.length<=32?new t(n,o):DE.from(t.split(n,[]),o)}sliceString(e,A=this.length,i=` -`){[e,A]=bE(this,e,A);let n="";for(let o=0,r=0;o<=A&&re&&r&&(n+=i),eo&&(n+=s.slice(Math.max(0,e-o),A-o)),o=a+1}return n}flatten(e){for(let A of this.text)e.push(A)}scanIdentical(){return 0}static split(e,A){let i=[],n=-1;for(let o of e)i.push(o),n+=o.length+1,i.length==32&&(A.push(new t(i,n)),i=[],n=-1);return n>-1&&A.push(new t(i,n)),A}},DE=class t extends In{constructor(e,A){super(),this.children=e,this.length=A,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,A,i,n){for(let o=0;;o++){let r=this.children[o],s=n+r.length,a=i+r.lines-1;if((A?a:s)>=e)return r.lineInner(e,A,i,n);n=s+1,i=a+1}}decompose(e,A,i,n){for(let o=0,r=0;r<=A&&o=r){let c=n&((r<=e?1:0)|(a>=A?2:0));r>=e&&a<=A&&!c?i.push(s):s.decompose(e-r,A-r,i,c)}r=a+1}}replace(e,A,i){if([e,A]=bE(this,e,A),i.lines=o&&A<=s){let a=r.replace(e-o,A-o,i),c=this.lines-r.lines+a.lines;if(a.lines>4&&a.lines>c>>6){let l=this.children.slice();return l[n]=a,new t(l,this.length-(A-e)+i.length)}return super.replace(o,s,a)}o=s+1}return super.replace(e,A,i)}sliceString(e,A=this.length,i=` -`){[e,A]=bE(this,e,A);let n="";for(let o=0,r=0;oe&&o&&(n+=i),er&&(n+=s.sliceString(e-r,A-r,i)),r=a+1}return n}flatten(e){for(let A of this.children)A.flatten(e)}scanIdentical(e,A){if(!(e instanceof t))return 0;let i=0,[n,o,r,s]=A>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;n+=A,o+=A){if(n==r||o==s)return i;let a=this.children[n],c=e.children[o];if(a!=c)return i+a.scanIdentical(c,A);i+=a.length+1}}static from(e,A=e.reduce((i,n)=>i+n.length+1,-1)){let i=0;for(let d of e)i+=d.lines;if(i<32){let d=[];for(let B of e)B.flatten(d);return new cc(d,A)}let n=Math.max(32,i>>5),o=n<<1,r=n>>1,s=[],a=0,c=-1,l=[];function I(d){let B;if(d.lines>o&&d instanceof t)for(let E of d.children)I(E);else d.lines>r&&(a>r||!a)?(C(),s.push(d)):d instanceof cc&&a&&(B=l[l.length-1])instanceof cc&&d.lines+B.lines<=32?(a+=d.lines,c+=d.length+1,l[l.length-1]=new cc(B.text.concat(d.text),B.length+1+d.length)):(a+d.lines>n&&C(),a+=d.lines,c+=d.length+1,l.push(d))}function C(){a!=0&&(s.push(l.length==1?l[0]:t.from(l,c)),c=-1,a=l.length=0)}for(let d of e)I(d);return C(),s.length==1?s[0]:new t(s,A)}};In.empty=new cc([""],0);function BRA(t){let e=-1;for(let A of t)e+=A.length+1;return e}function rw(t,e,A=0,i=1e9){for(let n=0,o=0,r=!0;o=A&&(a>i&&(s=s.slice(0,i-n)),n0?1:(e instanceof cc?e.text.length:e.children.length)<<1]}nextInner(e,A){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,n=this.nodes[i],o=this.offsets[i],r=o>>1,s=n instanceof cc?n.text.length:n.children.length;if(r==(A>0?s:0)){if(i==0)return this.done=!0,this.value="",this;A>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((o&1)==(A>0?0:1)){if(this.offsets[i]+=A,e==0)return this.lineBreak=!0,this.value=` -`,this;e--}else if(n instanceof cc){let a=n.text[r+(A<0?-1:0)];if(this.offsets[i]+=A,a.length>Math.max(0,e))return this.value=e==0?a:A>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=n.children[r+(A<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=A):(A<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(A>0?1:(a instanceof cc?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},sw=class{constructor(e,A,i){this.value="",this.done=!1,this.cursor=new pC(e,A>i?-1:1),this.pos=A>i?e.length:0,this.from=Math.min(A,i),this.to=Math.max(A,i)}nextInner(e,A){if(A<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,A<0?this.pos-this.to:this.from-this.pos);let i=A<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:n}=this.cursor.next(e);return this.pos+=(n.length+e)*A,this.value=n.length<=i?n:A<0?n.slice(n.length-i):n.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},aw=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:A,lineBreak:i,value:n}=this.inner.next(e);return A&&this.afterBreak?(this.value="",this.afterBreak=!1):A?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(In.prototype[Symbol.iterator]=function(){return this.iter()},pC.prototype[Symbol.iterator]=sw.prototype[Symbol.iterator]=aw.prototype[Symbol.iterator]=function(){return this});var Vx=class{constructor(e,A,i,n){this.from=e,this.to=A,this.number=i,this.text=n}get length(){return this.to-this.from}};function bE(t,e,A){return e=Math.max(0,Math.min(t.length,e)),[e,Math.max(e,Math.min(t.length,A))]}function yr(t,e,A=!0,i=!0){return HAA(t,e,A,i)}function ERA(t){return t>=56320&&t<57344}function QRA(t){return t>=55296&&t<56320}function Bs(t,e){let A=t.charCodeAt(e);if(!QRA(A)||e+1==t.length)return A;let i=t.charCodeAt(e+1);return ERA(i)?(A-55296<<10)+(i-56320)+65536:A}function T4(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10)+55296,(t&1023)+56320))}function lc(t){return t<65536?1:2}var Zx=/\r\n?|\n/,Is=function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t}(Is||(Is={})),m1=class t{constructor(e){this.sections=e}get length(){let e=0;for(let A=0;Ae)return o+(e-n);o+=s}else{if(i!=Is.Simple&&c>=e&&(i==Is.TrackDel&&ne||i==Is.TrackBefore&&ne))return null;if(c>e||c==e&&A<0&&!s)return e==n||A<0?o:o+a;o+=a}n=c}if(e>n)throw new RangeError(`Position ${e} is out of range for changeset of length ${n}`);return o}touchesRange(e,A=e){for(let i=0,n=0;i=0&&n<=A&&s>=e)return nA?"cover":!0;n=s}return!1}toString(){let e="";for(let A=0;A=0?":"+n:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(A=>typeof A!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new t(e)}static create(e){return new t(e)}},Cs=class t extends m1{constructor(e,A){super(e),this.inserted=A}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Wx(this,(A,i,n,o,r)=>e=e.replace(n,n+(i-A),r),!1),e}mapDesc(e,A=!1){return Xx(this,e,A,!0)}invert(e){let A=this.sections.slice(),i=[];for(let n=0,o=0;n=0){A[n]=s,A[n+1]=r;let a=n>>1;for(;i.length0&&f1(i,A,o.text),o.forward(l),s+=l}let c=e[r++];for(;s>1].toJSON()))}return e}static of(e,A,i){let n=[],o=[],r=0,s=null;function a(l=!1){if(!l&&!n.length)return;rC||I<0||C>A)throw new RangeError(`Invalid change range ${I} to ${C} (in doc of length ${A})`);let B=d?typeof d=="string"?In.of(d.split(i||Zx)):d:In.empty,E=B.length;if(I==C&&E==0)return;Ir&&Ls(n,I-r,-1),Ls(n,C-I,E),f1(o,n,B),r=C}}return c(e),a(!s),s}static empty(e){return new t(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let A=[],i=[];for(let n=0;ns&&typeof r!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(o.length==1)A.push(o[0],0);else{for(;i.length=0&&A<=0&&A==t[n+1]?t[n]+=e:n>=0&&e==0&&t[n]==0?t[n+1]+=A:i?(t[n]+=e,t[n+1]+=A):t.push(e,A)}function f1(t,e,A){if(A.length==0)return;let i=e.length-2>>1;if(i>1])),!(A||r==t.sections.length||t.sections[r+1]<0);)s=t.sections[r++],a=t.sections[r++];e(n,c,o,l,I),n=c,o=l}}}function Xx(t,e,A,i=!1){let n=[],o=i?[]:null,r=new wC(t),s=new wC(e);for(let a=-1;;){if(r.done&&s.len||s.done&&r.len)throw new Error("Mismatched change set lengths");if(r.ins==-1&&s.ins==-1){let c=Math.min(r.len,s.len);Ls(n,c,-1),r.forward(c),s.forward(c)}else if(s.ins>=0&&(r.ins<0||a==r.i||r.off==0&&(s.len=0&&a=0){let c=0,l=r.len;for(;l;)if(s.ins==-1){let I=Math.min(l,s.len);c+=I,l-=I,s.forward(I)}else if(s.ins==0&&s.lena||r.ins>=0&&r.len>a)&&(s||i.length>c),o.forward2(a),r.forward(a)}}}}var wC=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return A>=e.length?In.empty:e[A]}textBit(e){let{inserted:A}=this.set,i=this.i-2>>1;return i>=A.length&&!e?In.empty:A[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},wE=class t{constructor(e,A,i){this.from=e,this.to=A,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,A=-1){let i,n;return this.empty?i=n=e.mapPos(this.from,A):(i=e.mapPos(this.from,1),n=e.mapPos(this.to,-1)),i==this.from&&n==this.to?this:new t(i,n,this.flags)}extend(e,A=e){if(e<=this.anchor&&A>=this.anchor)return ae.range(e,A);let i=Math.abs(e-this.anchor)>Math.abs(A-this.anchor)?e:A;return ae.range(this.anchor,i)}eq(e,A=!1){return this.anchor==e.anchor&&this.head==e.head&&(!A||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return ae.range(e.anchor,e.head)}static create(e,A,i){return new t(e,A,i)}},ae=class t{constructor(e,A){this.ranges=e,this.mainIndex=A}map(e,A=-1){return e.empty?this:t.create(this.ranges.map(i=>i.map(e,A)),this.mainIndex)}eq(e,A=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;ie.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new t(e.ranges.map(A=>wE.fromJSON(A)),e.main)}static single(e,A=e){return new t([t.range(e,A)],0)}static create(e,A=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,n=0;ne?8:0)|o)}static normalized(e,A=0){let i=e[A];e.sort((n,o)=>n.from-o.from),A=e.indexOf(i);for(let n=1;no.head?t.range(a,s):t.range(s,a))}}return new t(e,A)}};function eeA(t,e){for(let A of t.ranges)if(A.to>e)throw new RangeError("Selection points outside of document")}var sL=0,qe=class t{constructor(e,A,i,n,o){this.combine=e,this.compareInput=A,this.compare=i,this.isStatic=n,this.id=sL++,this.default=e([]),this.extensions=typeof o=="function"?o(this):o}get reader(){return this}static define(e={}){return new t(e.combine||(A=>A),e.compareInput||((A,i)=>A===i),e.compare||(e.combine?(A,i)=>A===i:aL),!!e.static,e.enables)}of(e){return new yE([],this,0,e)}compute(e,A){if(this.isStatic)throw new Error("Can't compute a static facet");return new yE(e,this,1,A)}computeN(e,A){if(this.isStatic)throw new Error("Can't compute a static facet");return new yE(e,this,2,A)}from(e,A){return A||(A=i=>i),this.compute([e],i=>A(i.field(e)))}};function aL(t,e){return t==e||t.length==e.length&&t.every((A,i)=>A===e[i])}var yE=class{constructor(e,A,i,n){this.dependencies=e,this.facet=A,this.type=i,this.value=n,this.id=sL++}dynamicSlot(e){var A;let i=this.value,n=this.facet.compareInput,o=this.id,r=e[o]>>1,s=this.type==2,a=!1,c=!1,l=[];for(let I of this.dependencies)I=="doc"?a=!0:I=="selection"?c=!0:(((A=e[I.id])!==null&&A!==void 0?A:1)&1)==0&&l.push(e[I.id]);return{create(I){return I.values[r]=i(I),1},update(I,C){if(a&&C.docChanged||c&&(C.docChanged||C.selection)||$x(I,l)){let d=i(I);if(s?!qAA(d,I.values[r],n):!n(d,I.values[r]))return I.values[r]=d,1}return 0},reconfigure:(I,C)=>{let d,B=C.config.address[o];if(B!=null){let E=gw(C,B);if(this.dependencies.every(h=>h instanceof qe?C.facet(h)===I.facet(h):h instanceof Ar?C.field(h,!1)==I.field(h,!1):!0)||(s?qAA(d=i(I),E,n):n(d=i(I),E)))return I.values[r]=E,0}else d=i(I);return I.values[r]=d,1}}}};function qAA(t,e,A){if(t.length!=e.length)return!1;for(let i=0;it[a.id]),n=A.map(a=>a.type),o=i.filter(a=>!(a&1)),r=t[e.id]>>1;function s(a){let c=[];for(let l=0;li===n),e);return e.provide&&(A.provides=e.provide(A)),A}create(e){let A=e.facet(iw).find(i=>i.field==this);return(A?.create||this.createF)(e)}slot(e){let A=e[this.id]>>1;return{create:i=>(i.values[A]=this.create(i),1),update:(i,n)=>{let o=i.values[A],r=this.updateF(o,n);return this.compareF(o,r)?0:(i.values[A]=r,1)},reconfigure:(i,n)=>{let o=i.facet(iw),r=n.facet(iw),s;return(s=o.find(a=>a.field==this))&&s!=r.find(a=>a.field==this)?(i.values[A]=s.create(i),1):n.config.address[this.id]!=null?(i.values[A]=n.field(this),0):(i.values[A]=this.create(i),1)}}}init(e){return[this,iw.of({field:this,create:e})]}get extension(){return this}},fC={lowest:4,low:3,default:2,high:1,highest:0};function G4(t){return e=>new cw(e,t)}var Dl={highest:G4(fC.highest),high:G4(fC.high),default:G4(fC.default),low:G4(fC.low),lowest:G4(fC.lowest)},cw=class{constructor(e,A){this.inner=e,this.prec=A}},bg=class t{of(e){return new K4(this,e)}reconfigure(e){return t.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},K4=class{constructor(e,A){this.compartment=e,this.inner=A}},lw=class t{constructor(e,A,i,n,o,r){for(this.base=e,this.compartments=A,this.dynamicSlots=i,this.address=n,this.staticValues=o,this.facets=r,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,A,i){let n=[],o=Object.create(null),r=new Map;for(let C of uRA(e,A,r))C instanceof Ar?n.push(C):(o[C.facet.id]||(o[C.facet.id]=[])).push(C);let s=Object.create(null),a=[],c=[];for(let C of n)s[C.id]=c.length<<1,c.push(d=>C.slot(d));let l=i?.config.facets;for(let C in o){let d=o[C],B=d[0].facet,E=l&&l[C]||[];if(d.every(h=>h.type==0))if(s[B.id]=a.length<<1|1,aL(E,d))a.push(i.facet(B));else{let h=B.combine(d.map(u=>u.value));a.push(i&&B.compare(h,i.facet(B))?i.facet(B):h)}else{for(let h of d)h.type==0?(s[h.id]=a.length<<1|1,a.push(h.value)):(s[h.id]=c.length<<1,c.push(u=>h.dynamicSlot(u)));s[B.id]=c.length<<1,c.push(h=>hRA(h,B,d))}}let I=c.map(C=>C(s));return new t(e,r,I,s,a,o)}};function uRA(t,e,A){let i=[[],[],[],[],[]],n=new Map;function o(r,s){let a=n.get(r);if(a!=null){if(a<=s)return;let c=i[a].indexOf(r);c>-1&&i[a].splice(c,1),r instanceof K4&&A.delete(r.compartment)}if(n.set(r,s),Array.isArray(r))for(let c of r)o(c,s);else if(r instanceof K4){if(A.has(r.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(r.compartment)||r.inner;A.set(r.compartment,c),o(c,s)}else if(r instanceof cw)o(r.inner,r.prec);else if(r instanceof Ar)i[s].push(r),r.provides&&o(r.provides,s);else if(r instanceof yE)i[s].push(r),r.facet.extensions&&o(r.facet.extensions,fC.default);else{let c=r.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${r}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);o(c,s)}}return o(t,fC.default),i.reduce((r,s)=>r.concat(s))}function U4(t,e){if(e&1)return 2;let A=e>>1,i=t.status[A];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;t.status[A]=4;let n=t.computeSlot(t,t.config.dynamicSlots[A]);return t.status[A]=2|n}function gw(t,e){return e&1?t.config.staticValues[e>>1]:t.values[e>>1]}var VAA=qe.define(),jx=qe.define({combine:t=>t.some(e=>e),static:!0}),teA=qe.define({combine:t=>t.length?t[0]:void 0,static:!0}),ieA=qe.define(),neA=qe.define(),oeA=qe.define(),ZAA=qe.define({combine:t=>t.length?t[0]:!1}),xa=class{constructor(e,A){this.type=e,this.value=A}static define(){return new AL}},AL=class{of(e){return new xa(this,e)}},eL=class{constructor(e){this.map=e}of(e){return new Pi(this,e)}},Pi=(()=>{class t{constructor(A,i){this.type=A,this.value=i}map(A){let i=this.type.map(this.value,A);return i===void 0?void 0:i==this.value?this:new t(this.type,i)}is(A){return this.type==A}static define(A={}){return new eL(A.map||(i=>i))}static mapEffects(A,i){if(!A.length)return A;let n=[];for(let o of A){let r=o.map(i);r&&n.push(r)}return n}}return t.reconfigure=t.define(),t.appendConfig=t.define(),t})(),vg=(()=>{class t{constructor(A,i,n,o,r,s){this.startState=A,this.changes=i,this.selection=n,this.effects=o,this.annotations=r,this.scrollIntoView=s,this._doc=null,this._state=null,n&&eeA(n,i.newLength),r.some(a=>a.type==t.time)||(this.annotations=r.concat(t.time.of(Date.now())))}static create(A,i,n,o,r,s){return new t(A,i,n,o,r,s)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(A){for(let i of this.annotations)if(i.type==A)return i.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(A){let i=this.annotation(t.userEvent);return!!(i&&(i==A||i.length>A.length&&i.slice(0,A.length)==A&&i[A.length]=="."))}}return t.time=xa.define(),t.userEvent=xa.define(),t.addToHistory=xa.define(),t.remote=xa.define(),t})();function fRA(t,e){let A=[];for(let i=0,n=0;;){let o,r;if(i=t[i]))o=t[i++],r=t[i++];else if(n=0;n--){let o=i[n](t);o instanceof vg?t=o:Array.isArray(o)&&o.length==1&&o[0]instanceof vg?t=o[0]:t=seA(e,vE(o),!1)}return t}function pRA(t){let e=t.startState,A=e.facet(oeA),i=t;for(let n=A.length-1;n>=0;n--){let o=A[n](t);o&&Object.keys(o).length&&(i=reA(i,tL(e,o,t.changes.newLength),!0))}return i==t?t:vg.create(e,t.changes,t.selection,i.effects,i.annotations,i.scrollIntoView)}var wRA=[];function vE(t){return t==null?wRA:Array.isArray(t)?t:[t]}var ao=function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t}(ao||(ao={})),DRA=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,iL;try{iL=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function yRA(t){if(iL)return iL.test(t);for(let e=0;e"\x80"&&(A.toUpperCase()!=A.toLowerCase()||DRA.test(A)))return!0}return!1}function vRA(t){return e=>{if(!/\S/.test(e))return ao.Space;if(yRA(e))return ao.Word;for(let A=0;A-1)return ao.Word;return ao.Other}}var hr=(()=>{class t{constructor(A,i,n,o,r,s){this.config=A,this.doc=i,this.selection=n,this.values=o,this.status=A.statusTemplate.slice(),this.computeSlot=r,s&&(s._state=this);for(let a=0;ao.set(l,c)),i=null),o.set(a.value.compartment,a.value.extension)):a.is(Pi.reconfigure)?(i=null,n=a.value):a.is(Pi.appendConfig)&&(i=null,n=vE(n).concat(a.value));let r;i?r=A.startState.values.slice():(i=lw.resolve(n,o,this),r=new t(i,this.doc,this.selection,i.dynamicSlots.map(()=>null),(c,l)=>l.reconfigure(c,this),null).values);let s=A.startState.facet(jx)?A.newSelection:A.newSelection.asSingle();new t(i,A.newDoc,s,r,(a,c)=>c.update(a,A),A)}replaceSelection(A){return typeof A=="string"&&(A=this.toText(A)),this.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:A},range:ae.cursor(i.from+A.length)}))}changeByRange(A){let i=this.selection,n=A(i.ranges[0]),o=this.changes(n.changes),r=[n.range],s=vE(n.effects);for(let a=1;as.spec.fromJSON(a,c)))}}return t.create({doc:A.doc,selection:ae.fromJSON(A.selection),extensions:i.extensions?o.concat([i.extensions]):o})}static create(A={}){let i=lw.resolve(A.extensions||[],new Map),n=A.doc instanceof In?A.doc:In.of((A.doc||"").split(i.staticFacet(t.lineSeparator)||Zx)),o=A.selection?A.selection instanceof ae?A.selection:ae.single(A.selection.anchor,A.selection.head):ae.single(0);return eeA(o,n.length),i.staticFacet(jx)||(o=o.asSingle()),new t(i,n,o,i.dynamicSlots.map(()=>null),(r,s)=>s.create(r),null)}get tabSize(){return this.facet(t.tabSize)}get lineBreak(){return this.facet(t.lineSeparator)||` -`}get readOnly(){return this.facet(ZAA)}phrase(A,...i){for(let n of this.facet(t.phrases))if(Object.prototype.hasOwnProperty.call(n,A)){A=n[A];break}return i.length&&(A=A.replace(/\$(\$|\d*)/g,(n,o)=>{if(o=="$")return"$";let r=+(o||1);return!r||r>i.length?n:i[r-1]})),A}languageDataAt(A,i,n=-1){let o=[];for(let r of this.facet(VAA))for(let s of r(this,i,n))Object.prototype.hasOwnProperty.call(s,A)&&o.push(s[A]);return o}charCategorizer(A){return vRA(this.languageDataAt("wordChars",A).join(""))}wordAt(A){let{text:i,from:n,length:o}=this.doc.lineAt(A),r=this.charCategorizer(A),s=A-n,a=A-n;for(;s>0;){let c=yr(i,s,!1);if(r(i.slice(c,s))!=ao.Word)break;s=c}for(;ae.length?e[0]:4}),t.lineSeparator=teA,t.readOnly=ZAA,t.phrases=qe.define({compare(e,A){let i=Object.keys(e),n=Object.keys(A);return i.length==n.length&&i.every(o=>e[o]==A[o])}}),t.languageData=VAA,t.changeFilter=ieA,t.transactionFilter=neA,t.transactionExtender=oeA,t})();bg.reconfigure=Pi.define();function Wr(t,e,A={}){let i={};for(let n of t)for(let o of Object.keys(n)){let r=n[o],s=i[o];if(s===void 0)i[o]=r;else if(!(s===r||r===void 0))if(Object.hasOwnProperty.call(A,o))i[o]=A[o](s,r);else throw new Error("Config merge conflict for field "+o)}for(let n in e)i[n]===void 0&&(i[n]=e[n]);return i}var wl=class{eq(e){return this==e}range(e,A=e){return Y4.create(e,A,this)}};wl.prototype.startSide=wl.prototype.endSide=0;wl.prototype.point=!1;wl.prototype.mapMode=Is.TrackDel;var Y4=class t{constructor(e,A,i){this.from=e,this.to=A,this.value=i}static create(e,A,i){return new t(e,A,i)}};function nL(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}var oL=class t{constructor(e,A,i,n){this.from=e,this.to=A,this.value=i,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(e,A,i,n=0){let o=i?this.to:this.from;for(let r=n,s=o.length;;){if(r==s)return r;let a=r+s>>1,c=o[a]-e||(i?this.value[a].endSide:this.value[a].startSide)-A;if(a==r)return c>=0?r:s;c>=0?s=a:r=a+1}}between(e,A,i,n){for(let o=this.findIndex(A,-1e9,!0),r=this.findIndex(i,1e9,!1,o);od||C==d&&c.startSide>0&&c.endSide<=0)continue;(d-C||c.endSide-c.startSide)<0||(r<0&&(r=C),c.point&&(s=Math.max(s,d-C)),i.push(c),n.push(C-r),o.push(d-r))}return{mapped:i.length?new t(n,o,i,s):null,pos:r}}},co=(()=>{class t{constructor(A,i,n,o){this.chunkPos=A,this.chunk=i,this.nextLayer=n,this.maxPoint=o}static create(A,i,n,o){return new t(A,i,n,o)}get length(){let A=this.chunk.length-1;return A<0?0:Math.max(this.chunkEnd(A),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let A=this.nextLayer.size;for(let i of this.chunk)A+=i.value.length;return A}chunkEnd(A){return this.chunkPos[A]+this.chunk[A].length}update(A){let{add:i=[],sort:n=!1,filterFrom:o=0,filterTo:r=this.length}=A,s=A.filter;if(i.length==0&&!s)return this;if(n&&(i=i.slice().sort(nL)),this.isEmpty)return i.length?t.of(i):this;let a=new Iw(this,null,-1).goto(0),c=0,l=[],I=new ds;for(;a.value||c=0){let C=i[c++];I.addInner(C.from,C.to,C.value)||l.push(C)}else a.rangeIndex==1&&a.chunkIndexthis.chunkEnd(a.chunkIndex)||ra.to||r=r&&A<=r+s.length&&s.between(r,A-r,i-r,n)===!1)return}this.nextLayer.between(A,i,n)}}iter(A=0){return J4.from([this]).goto(A)}get isEmpty(){return this.nextLayer==this}static iter(A,i=0){return J4.from(A).goto(i)}static compare(A,i,n,o,r=-1){let s=A.filter(C=>C.maxPoint>0||!C.isEmpty&&C.maxPoint>=r),a=i.filter(C=>C.maxPoint>0||!C.isEmpty&&C.maxPoint>=r),c=WAA(s,a,n),l=new mC(s,c,r),I=new mC(a,c,r);n.iterGaps((C,d,B)=>XAA(l,C,I,d,B,o)),n.empty&&n.length==0&&XAA(l,0,I,0,0,o)}static eq(A,i,n=0,o){o==null&&(o=999999999);let r=A.filter(I=>!I.isEmpty&&i.indexOf(I)<0),s=i.filter(I=>!I.isEmpty&&A.indexOf(I)<0);if(r.length!=s.length)return!1;if(!r.length)return!0;let a=WAA(r,s),c=new mC(r,a,0).goto(n),l=new mC(s,a,0).goto(n);for(;;){if(c.to!=l.to||!rL(c.active,l.active)||c.point&&(!l.point||!c.point.eq(l.point)))return!1;if(c.to>o)return!0;c.next(),l.next()}}static spans(A,i,n,o,r=-1){let s=new mC(A,null,r).goto(i),a=i,c=s.openStart;for(;;){let l=Math.min(s.to,n);if(s.point){let I=s.activeForPoint(s.to),C=s.pointFroma&&(o.span(a,l,s.active,c),c=s.openEnd(l));if(s.to>n)return c+(s.point&&s.to>n?1:0);a=s.to,s.next()}}static of(A,i=!1){let n=new ds;for(let o of A instanceof Y4?[A]:i?bRA(A):A)n.add(o.from,o.to,o.value);return n.finish()}static join(A){if(!A.length)return t.empty;let i=A[A.length-1];for(let n=A.length-2;n>=0;n--)for(let o=A[n];o!=t.empty;o=o.nextLayer)i=new t(o.chunkPos,o.chunk,i,Math.max(o.maxPoint,i.maxPoint));return i}}return t.empty=new t([],[],null,-1),t})();function bRA(t){if(t.length>1)for(let e=t[0],A=1;A0)return t.slice().sort(nL);e=i}return t}co.empty.nextLayer=co.empty;var ds=class t{finishChunk(e){this.chunks.push(new oL(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,A,i){this.addInner(e,A,i)||(this.nextLayer||(this.nextLayer=new t)).add(e,A,i)}addInner(e,A,i){let n=e-this.lastTo||i.startSide-this.last.endSide;if(n<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return n<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(A-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=A,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,A-e)),!0)}addChunk(e,A){if((e-this.lastTo||A.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,A.maxPoint),this.chunks.push(A),this.chunkPos.push(e);let i=A.value.length-1;return this.last=A.value[i],this.lastFrom=A.from[i]+e,this.lastTo=A.to[i]+e,!0}finish(){return this.finishInner(co.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let A=co.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,A}};function WAA(t,e,A){let i=new Map;for(let o of t)for(let r=0;r=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&n.push(new Iw(r,A,i,o));return n.length==1?n[0]:new t(n)}get startSide(){return this.value?this.value.startSide:0}goto(e,A=-1e9){for(let i of this.heap)i.goto(e,A);for(let i=this.heap.length>>1;i>=0;i--)qx(this.heap,i);return this.next(),this}forward(e,A){for(let i of this.heap)i.forward(e,A);for(let i=this.heap.length>>1;i>=0;i--)qx(this.heap,i);(this.to-e||this.value.endSide-A)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),qx(this.heap,0)}}};function qx(t,e){for(let A=t[e];;){let i=(e<<1)+1;if(i>=t.length)break;let n=t[i];if(i+1=0&&(n=t[i+1],i++),A.compare(n)<0)break;t[i]=A,t[e]=n,e=i}}var mC=class{constructor(e,A,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=J4.from(e,A,i)}goto(e,A=-1e9){return this.cursor.goto(e,A),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=A,this.openStart=-1,this.next(),this}forward(e,A){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-A)<0;)this.removeActive(this.minActive);this.cursor.forward(e,A)}removeActive(e){nw(this.active,e),nw(this.activeTo,e),nw(this.activeRank,e),this.minActive=$AA(this.active,this.activeTo)}addActive(e){let A=0,{value:i,to:n,rank:o}=this.cursor;for(;A0;)A++;ow(this.active,A,i),ow(this.activeTo,A,n),ow(this.activeRank,A,o),e&&ow(e,A,this.cursor.from),this.minActive=$AA(this.active,this.activeTo)}next(){let e=this.to,A=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let n=this.minActive;if(n>-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>e){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),i&&nw(i,n)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let o=this.cursor.value;if(!o.point)this.addActive(i),this.cursor.next();else if(A&&this.cursor.to==this.to&&this.cursor.from=0&&i[n]=0&&!(this.activeRank[i]e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&A.push(this.active[i]);return A.reverse()}openEnd(e){let A=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)A++;return A}};function XAA(t,e,A,i,n,o){t.goto(e),A.goto(i);let r=i+n,s=i,a=i-e;for(;;){let c=t.to+a-A.to,l=c||t.endSide-A.endSide,I=l<0?t.to+a:A.to,C=Math.min(I,r);if(t.point||A.point?t.point&&A.point&&(t.point==A.point||t.point.eq(A.point))&&rL(t.activeForPoint(t.to),A.activeForPoint(A.to))||o.comparePoint(s,C,t.point,A.point):C>s&&!rL(t.active,A.active)&&o.compareRange(s,C,t.active,A.active),I>r)break;(c||t.openEnd!=A.openEnd)&&o.boundChange&&o.boundChange(I),s=I,l<=0&&t.next(),l>=0&&A.next()}}function rL(t,e){if(t.length!=e.length)return!1;for(let A=0;A=e;i--)t[i+1]=t[i];t[e]=A}function $AA(t,e){let A=-1,i=1e9;for(let n=0;n=e)return n;if(n==t.length)break;o+=t.charCodeAt(n)==9?A-o%A:1,n=yr(t,n)}return i===!0?-1:t.length}var cL="\u037C",aeA=typeof Symbol>"u"?"__"+cL:Symbol.for(cL),lL=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),ceA=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},Kc=class{constructor(e,A){this.rules=[];let{finish:i}=A||{};function n(r){return/^@/.test(r)?[r]:r.split(/,\s*/)}function o(r,s,a,c){let l=[],I=/^@(\w+)\b/.exec(r[0]),C=I&&I[1]=="keyframes";if(I&&s==null)return a.push(r[0]+";");for(let d in s){let B=s[d];if(/&/.test(d))o(d.split(/,\s*/).map(E=>r.map(h=>E.replace(/&/,h))).reduce((E,h)=>E.concat(h)),B,a);else if(B&&typeof B=="object"){if(!I)throw new RangeError("The value of a property ("+d+") should be a primitive value.");o(n(d),B,l,C)}else B!=null&&l.push(d.replace(/_.*/,"").replace(/[A-Z]/g,E=>"-"+E.toLowerCase())+": "+B+";")}(l.length||C)&&a.push((i&&!I&&!c?r.map(i):r).join(", ")+" {"+l.join(" ")+"}")}for(let r in e)o(n(r),e[r],this.rules)}getRules(){return this.rules.join(` -`)}static newName(){let e=ceA[aeA]||1;return ceA[aeA]=e+1,cL+e.toString(36)}static mount(e,A,i){let n=e[lL],o=i&&i.nonce;n?o&&n.setNonce(o):n=new gL(e,o),n.mount(Array.isArray(A)?A:[A],e)}},leA=new Map,gL=class{constructor(e,A){let i=e.ownerDocument||e,n=i.defaultView;if(!e.head&&e.adoptedStyleSheets&&n.CSSStyleSheet){let o=leA.get(i);if(o)return e[lL]=o;this.sheet=new n.CSSStyleSheet,leA.set(i,this)}else this.styleTag=i.createElement("style"),A&&this.styleTag.setAttribute("nonce",A);this.modules=[],e[lL]=this}mount(e,A){let i=this.sheet,n=0,o=0;for(let r=0;r-1&&(this.modules.splice(a,1),o--,a=-1),a==-1){if(this.modules.splice(o++,0,s),i)for(let c=0;c",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},MRA=typeof navigator<"u"&&/Mac/.test(navigator.platform),kRA=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(vr=0;vr<10;vr++)T0[48+vr]=T0[96+vr]=String(vr);var vr;for(vr=1;vr<=24;vr++)T0[vr+111]="F"+vr;var vr;for(vr=65;vr<=90;vr++)T0[vr]=String.fromCharCode(vr+32),ME[vr]=String.fromCharCode(vr);var vr;for(dw in T0)ME.hasOwnProperty(dw)||(ME[dw]=T0[dw]);var dw;function geA(t){var e=MRA&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||kRA&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",A=!e&&t.key||(t.shiftKey?ME:T0)[t.keyCode]||t.key||"Unidentified";return A=="Esc"&&(A="Escape"),A=="Del"&&(A="Delete"),A=="Left"&&(A="ArrowLeft"),A=="Up"&&(A="ArrowUp"),A=="Right"&&(A="ArrowRight"),A=="Down"&&(A="ArrowDown"),A}function Un(){var t=arguments[0];typeof t=="string"&&(t=document.createElement(t));var e=1,A=arguments[1];if(A&&typeof A=="object"&&A.nodeType==null&&!Array.isArray(A)){for(var i in A)if(Object.prototype.hasOwnProperty.call(A,i)){var n=A[i];typeof n=="string"?t.setAttribute(i,n):n!=null&&(t[i]=n)}e++}for(;e.995&&A<1.005||!isFinite(A)||Math.abs(e.width-t.offsetWidth)<1)&&(A=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(e.height-t.offsetHeight)<1)&&(i=1),{scaleX:A,scaleY:i}}function RRA(t,e,A,i,n,o,r,s){let a=t.ownerDocument,c=a.defaultView||window;for(let l=t,I=!1;l&&!I;)if(l.nodeType==1){let C,d=l==a.body,B=1,E=1;if(d)C=SRA(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(l).position)&&(I=!0),l.scrollHeight<=l.clientHeight&&l.scrollWidth<=l.clientWidth){l=l.assignedSlot||l.parentNode;continue}let D=l.getBoundingClientRect();({scaleX:B,scaleY:E}=ntA(l,D)),C={left:D.left,right:D.left+l.clientWidth*B,top:D.top,bottom:D.top+l.clientHeight*E}}let h=0,u=0;if(n=="nearest")e.top0&&e.bottom>C.bottom+u&&(u=e.bottom-C.bottom+r)):e.bottom>C.bottom&&(u=e.bottom-C.bottom+r,A<0&&e.top-u0&&e.right>C.right+h&&(h=e.right-C.right+o)):e.right>C.right&&(h=e.right-C.right+o,A<0&&e.leftC.bottom||e.leftC.right)&&(e={left:Math.max(e.left,C.left),right:Math.min(e.right,C.right),top:Math.max(e.top,C.top),bottom:Math.min(e.bottom,C.bottom)}),l=l.assignedSlot||l.parentNode}else if(l.nodeType==11)l=l.host;else break}function xRA(t){let e=t.ownerDocument,A,i;for(let n=t.parentNode;n&&!(n==e.body||A&&i);)if(n.nodeType==1)!i&&n.scrollHeight>n.clientHeight&&(i=n),!A&&n.scrollWidth>n.clientWidth&&(A=n),n=n.assignedSlot||n.parentNode;else if(n.nodeType==11)n=n.host;else break;return{x:A,y:i}}var pL=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:A,focusNode:i}=e;this.set(A,Math.min(e.anchorOffset,A?xg(A):0),i,Math.min(e.focusOffset,i?xg(i):0))}set(e,A,i,n){this.anchorNode=e,this.anchorOffset=A,this.focusNode=i,this.focusOffset=n}},kE=null;function otA(t){if(t.setActive)return t.setActive();if(kE)return t.focus(kE);let e=[];for(let A=t;A&&(e.push(A,A.scrollTop,A.scrollLeft),A!=A.ownerDocument);A=A.parentNode);if(t.focus(kE==null?{get preventScroll(){return kE={preventScroll:!0},!0}}:void 0),!kE){kE=!1;for(let A=0;AMath.max(1,t.scrollHeight-t.clientHeight-4)}function atA(t,e){for(let A=t,i=e;;){if(A.nodeType==3&&i>0)return{node:A,offset:i};if(A.nodeType==1&&i>0){if(A.contentEditable=="false")return null;A=A.childNodes[i-1],i=xg(A)}else if(A.parentNode&&!Rw(A))i=yC(A),A=A.parentNode;else return null}}function ctA(t,e){for(let A=t,i=e;;){if(A.nodeType==3&&iA)return I.domBoundsAround(e,A,c);if(C>=e&&n==-1&&(n=a,o=c),c>A&&I.dom.parentNode==this.dom){r=a,s=l;break}l=C,c=C+I.breakAfter}return{from:o,to:s<0?i+this.length:s,startDOM:(n?this.children[n-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:r=0?this.children[r].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let A=this.parent;A;A=A.parent){if(e&&(A.flags|=2),A.flags&1)return;A.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.flags&7&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let A=e.parent;if(!A)return e;e=A}}replaceChildren(e,A,i=sF){this.markDirty();for(let n=e;nthis.pos||e==this.pos&&(A>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}};function ltA(t,e,A,i,n,o,r,s,a){let{children:c}=t,l=c.length?c[e]:null,I=o.length?o[o.length-1]:null,C=I?I.breakAfter:r;if(!(e==i&&l&&!r&&!C&&o.length<2&&l.merge(A,n,o.length?I:null,A==0,s,a))){if(i0&&(!r&&o.length&&l.merge(A,l.length,o[0],!1,s,0)?l.breakAfter=o.shift().breakAfter:(A2),At={mac:heA||/Mac/.test(La.platform),windows:/Win/.test(La.platform),linux:/Linux|X11/.test(La.platform),ie:jw,ie_version:ItA?wL.documentMode||6:yL?+yL[1]:DL?+DL[1]:0,gecko:EeA,gecko_version:EeA?+(/Firefox\/(\d+)/.exec(La.userAgent)||[0,0])[1]:0,chrome:!!IL,chrome_version:IL?+IL[1]:0,ios:heA,android:/Android\b/.test(La.userAgent),webkit:QeA,safari:CtA,webkit_version:QeA?+(/\bAppleWebKit\/(\d+)/.exec(La.userAgent)||[0,0])[1]:0,tabSize:wL.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"},NRA=256,Lg=class t extends Fo{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,A){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(A&&A.node==this.dom&&(A.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,A,i){return this.flags&8||i&&(!(i instanceof t)||this.length-(A-e)+i.length>NRA||i.flags&8)?!1:(this.text=this.text.slice(0,e)+(i?i.text:"")+this.text.slice(A),this.markDirty(),!0)}split(e){let A=new t(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),A.flags|=this.flags&8,A}localPosFromDOM(e,A){return e==this.dom?A:A?this.text.length:0}domAtPos(e){return new Xs(this.dom,e)}domBoundsAround(e,A,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,A){return _RA(this.dom,e,A)}},D1=class t extends Fo{constructor(e,A=[],i=0){super(),this.mark=e,this.children=A,this.length=i;for(let n of A)n.setParent(this)}setAttrs(e){if(rtA(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let A in this.mark.attrs)e.setAttribute(A,this.mark.attrs[A]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!((this.flags|e.flags)&8)}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,A){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,A)}merge(e,A,i,n,o,r){return i&&(!(i instanceof t&&i.mark.eq(this.mark))||e&&o<=0||Ae&&A.push(i=e&&(n=o),i=a,o++}let r=this.length-e;return this.length=e,n>-1&&(this.children.length=n,this.markDirty()),new t(this.mark,A,r)}domAtPos(e){return dtA(this,e)}coordsAt(e,A){return EtA(this,e,A)}};function _RA(t,e,A){let i=t.nodeValue.length;e>i&&(e=i);let n=e,o=e,r=0;e==0&&A<0||e==i&&A>=0?At.chrome||At.gecko||(e?(n--,r=1):o=0)?0:s.length-1];return At.safari&&!r&&a.width==0&&(a=Array.prototype.find.call(s,c=>c.width)||a),r?Pw(a,r<0):a||null}var i3=class t extends Fo{static create(e,A,i){return new t(e,A,i)}constructor(e,A,i){super(),this.widget=e,this.length=A,this.side=i,this.prevWidget=null}split(e){let A=t.create(this.widget,this.length-e,this.side);return this.length-=e,A}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(e,A,i,n,o,r){return i&&(!(i instanceof t)||!this.widget.compare(i.widget)||e>0&&o<=0||A0)?Xs.before(this.dom):Xs.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,A){let i=this.widget.coordsAt(this.dom,e,A);if(i)return i;let n=this.dom.getClientRects(),o=null;if(!n.length)return null;let r=this.side?this.side<0:e>0;for(let s=r?n.length-1:0;o=n[s],!(e>0?s==0:s==n.length-1||o.top0?Xs.before(this.dom):Xs.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return In.empty}get isHidden(){return!0}};Lg.prototype.children=i3.prototype.children=n3.prototype.children=sF;function dtA(t,e){let A=t.dom,{children:i}=t,n=0;for(let o=0;no&&e0;o--){let r=i[o-1];if(r.dom.parentNode==A)return r.domAtPos(r.length)}for(let o=n;o0&&e instanceof D1&&n.length&&(i=n[n.length-1])instanceof D1&&i.mark.eq(e.mark)?BtA(i,e.children[0],A-1):(n.push(e),e.setParent(t)),t.length+=e.length}function EtA(t,e,A){let i=null,n=-1,o=null,r=-1;function s(c,l){for(let I=0,C=0;I=l&&(d.children.length?s(d,l-C):(!o||o.isHidden&&(A>0||URA(o,d)))&&(B>l||C==B&&d.getSide()>0)?(o=d,r=l-C):(C-1?1:0)!=n.length-(A&&n.indexOf(A)>-1?1:0))return!1;for(let o of i)if(o!=A&&(n.indexOf(o)==-1||t[o]!==e[o]))return!1;return!0}function bL(t,e,A){let i=!1;if(e)for(let n in e)A&&n in A||(i=!0,n=="style"?t.style.cssText="":t.removeAttribute(n));if(A)for(let n in A)e&&e[n]==A[n]||(i=!0,n=="style"?t.style.cssText=A[n]:t.setAttribute(n,A[n]));return i}function KRA(t){let e=Object.create(null);for(let A=0;A0?3e8:-4e8:A>0?1e8:-1e8,new y1(e,A,A,i,e.widget||null,!1)}static replace(e){let A=!!e.block,i,n;if(e.isBlockGap)i=-5e8,n=4e8;else{let{start:o,end:r}=QtA(e,A);i=(o?A?-3e8:-1:5e8)-1,n=(r?A?2e8:1:-6e8)+1}return new y1(e,i,n,A,e.widget||null,!0)}static line(e){return new r3(e)}static set(e,A=!1){return co.of(e,A)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};ut.none=co.empty;var o3=class t extends ut{constructor(e){let{start:A,end:i}=QtA(e);super(A?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var A,i;return this==e||e instanceof t&&this.tagName==e.tagName&&(this.class||((A=this.attrs)===null||A===void 0?void 0:A.class))==(e.class||((i=e.attrs)===null||i===void 0?void 0:i.class))&&Lw(this.attrs,e.attrs,"class")}range(e,A=e){if(e>=A)throw new RangeError("Mark decorations may not be empty");return super.range(e,A)}};o3.prototype.point=!1;var r3=class t extends ut{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof t&&this.spec.class==e.spec.class&&Lw(this.spec.attributes,e.spec.attributes)}range(e,A=e){if(A!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,A)}};r3.prototype.mapMode=Is.TrackBefore;r3.prototype.point=!0;var y1=class t extends ut{constructor(e,A,i,n,o,r){super(A,i,o,e),this.block=n,this.isReplace=r,this.mapMode=n?A<=0?Is.TrackBefore:Is.TrackAfter:Is.TrackDel}get type(){return this.startSide!=this.endSide?$s.WidgetRange:this.startSide<=0?$s.WidgetBefore:$s.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof t&&YRA(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,A=e){if(this.isReplace&&(e>A||e==A&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&A!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,A)}};y1.prototype.point=!0;function QtA(t,e=!1){let{inclusiveStart:A,inclusiveEnd:i}=t;return A==null&&(A=t.inclusive),i==null&&(i=t.inclusive),{start:A??e,end:i??e}}function YRA(t,e){return t==e||!!(t&&e&&t.compare(e))}function yw(t,e,A,i=0){let n=A.length-1;n>=0&&A[n]+i>=t?A[n]=Math.max(A[n],e):A.push(t,e)}var Es=class t extends Fo{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,A,i,n,o,r){if(i){if(!(i instanceof t))return!1;this.dom||i.transferDOM(this)}return n&&this.setDeco(i?i.attrs:null),gtA(this,e,A,i?i.children.slice():[],o,r),!0}split(e){let A=new t;if(A.breakAfter=this.breakAfter,this.length==0)return A;let{i,off:n}=this.childPos(e);n&&(A.append(this.children[i].split(n),0),this.children[i].merge(n,this.children[i].length,null,!1,0,0),i++);for(let o=i;o0&&this.children[i-1].length==0;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=e,A}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){Lw(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,A){BtA(this,e,A)}addLineDeco(e){let A=e.spec.attributes,i=e.spec.class;A&&(this.attrs=vL(A,this.attrs||{})),i&&(this.attrs=vL({class:i},this.attrs||{}))}domAtPos(e){return dtA(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.flags|=6)}sync(e,A){var i;this.dom?this.flags&4&&(rtA(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(bL(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,A);let n=this.dom.lastChild;for(;n&&Fo.get(n)instanceof D1;)n=n.lastChild;if(!n||!this.length||n.nodeName!="BR"&&((i=Fo.get(n))===null||i===void 0?void 0:i.isEditable)==!1&&(!At.ios||!this.children.some(o=>o instanceof Lg))){let o=document.createElement("BR");o.cmIgnore=!0,this.dom.appendChild(o)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,A;for(let i of this.children){if(!(i instanceof Lg)||/[^ -~]/.test(i.text))return null;let n=t3(i.dom);if(n.length!=1)return null;e+=n[0].width,A=n[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:A}:null}coordsAt(e,A){let i=EtA(this,e,A);if(!this.children.length&&i&&this.parent){let{heightOracle:n}=this.parent.view.viewState,o=i.bottom-i.top;if(Math.abs(o-n.lineHeight)<2&&n.textHeight=A){if(o instanceof t)return o;if(r>A)break}n=r+o.breakAfter}return null}},DC=class t extends Fo{constructor(e,A,i){super(),this.widget=e,this.length=A,this.deco=i,this.breakAfter=0,this.prevWidget=null}merge(e,A,i,n,o,r){return i&&(!(i instanceof t)||!this.widget.compare(i.widget)||e>0&&o<=0||A0}},s3=class extends Ic{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}},V4=class t{constructor(e,A,i,n){this.doc=e,this.pos=A,this.end=i,this.disallowBlockEffectsFor=n,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=A}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof DC&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new Es),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(Bw(new n3(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,!this.posCovered()&&!(e&&this.content.length&&this.content[this.content.length-1]instanceof DC)&&this.getLine()}buildText(e,A,i){for(;e>0;){if(this.textOff==this.text.length){let{value:o,lineBreak:r,done:s}=this.cursor.next(this.skip);if(this.skip=0,s)throw new Error("Ran out of text content when drawing inline views");if(r){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=o,this.textOff=0}let n=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(A.slice(A.length-i)),this.getLine().append(Bw(new Lg(this.text.slice(this.textOff,this.textOff+n)),A),i),this.atCursorPos=!0,this.textOff+=n,e-=n,i=0}}span(e,A,i,n){this.buildText(A-e,i,n),this.pos=A,this.openStart<0&&(this.openStart=n)}point(e,A,i,n,o,r){if(this.disallowBlockEffectsFor[r]&&i instanceof y1){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(A>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let s=A-e;if(i instanceof y1)if(i.block)i.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new DC(i.widget||feA.block,s,i));else{let a=i3.create(i.widget||feA.inline,s,s?0:i.startSide),c=this.atCursorPos&&!a.isEditable&&o<=n.length&&(e0),l=!a.isEditable&&(en.length||i.startSide<=0),I=this.getLine();this.pendingBuffer==2&&!c&&!a.isEditable&&(this.pendingBuffer=0),this.flushBuffer(n),c&&(I.append(Bw(new n3(1),n),o),o=n.length+Math.max(0,o-n.length)),I.append(Bw(a,n),o),this.atCursorPos=l,this.pendingBuffer=l?en.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=n.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);s&&(this.textOff+s<=this.text.length?this.textOff+=s:(this.skip+=s-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=A),this.openStart<0&&(this.openStart=o)}static build(e,A,i,n,o){let r=new t(e,A,i,o);return r.openEnd=co.spans(n,A,i,r),r.openStart<0&&(r.openStart=r.openEnd),r.finish(r.openEnd),r}};function Bw(t,e){for(let A of e)t=new D1(A,[t],t.length);return t}var feA=(()=>{class t extends Ic{constructor(A){super(),this.tag=A}eq(A){return A.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(A){return A.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}return t.inline=new t("span"),t.block=new t("div"),t})(),lo=function(t){return t[t.LTR=0]="LTR",t[t.RTL=1]="RTL",t}(lo||(lo={})),bC=lo.LTR,aF=lo.RTL;function htA(t){let e=[];for(let A=0;A=A){if(s.level==i)return r;(o<0||(n!=0?n<0?s.fromA:e[o].level>s.level))&&(o=r)}}if(o<0)throw new RangeError("Index out of range");return o}};function ftA(t,e){if(t.length!=e.length)return!1;for(let A=0;A=0;E-=3)if(Mg[E+1]==-d){let h=Mg[E+2],u=h&2?n:h&4?h&1?o:n:0;u&&(yo[I]=yo[Mg[E]]=u),s=E;break}}else{if(Mg.length==189)break;Mg[s++]=I,Mg[s++]=C,Mg[s++]=a}else if((B=yo[I])==2||B==1){let E=B==n;a=E?0:1;for(let h=s-3;h>=0;h-=3){let u=Mg[h+2];if(u&2)break;if(E)Mg[h+2]|=2;else{if(u&4)break;Mg[h+2]|=4}}}}}function PRA(t,e,A,i){for(let n=0,o=i;n<=A.length;n++){let r=n?A[n-1].to:t,s=na;)B==h&&(B=A[--E].from,h=E?A[E-1].to:t),yo[--B]=d;a=l}else o=c,a++}}}function kL(t,e,A,i,n,o,r){let s=i%2?2:1;if(i%2==n%2)for(let a=e,c=0;aa&&r.push(new Sg(a,E.from,d));let h=E.direction==bC!=!(d%2);SL(t,h?i+1:i,n,E.inner,E.from,E.to,r),a=E.to}B=E.to}else{if(B==A||(l?yo[B]!=s:yo[B]==s))break;B++}C?kL(t,a,B,i+1,n,C,r):ae;){let l=!0,I=!1;if(!c||a>o[c-1].to){let E=yo[a-1];E!=s&&(l=!1,I=E==16)}let C=!l&&s==1?[]:null,d=l?i:i+1,B=a;A:for(;;)if(c&&B==o[c-1].to){if(I)break A;let E=o[--c];if(!l)for(let h=E.from,u=c;;){if(h==e)break A;if(u&&o[u-1].to==h)h=o[--u].from;else{if(yo[h-1]==s)break A;break}}if(C)C.push(E);else{E.toyo.length;)yo[yo.length]=256;let i=[],n=e==bC?0:1;return SL(t,n,n,A,0,t.length,i),i}function mtA(t){return[new Sg(0,t,0)]}var ptA="";function qRA(t,e,A,i,n){var o;let r=i.head-t.from,s=Sg.find(e,r,(o=i.bidiLevel)!==null&&o!==void 0?o:-1,i.assoc),a=e[s],c=a.side(n,A);if(r==c){let C=s+=n?1:-1;if(C<0||C>=e.length)return null;a=e[s=C],r=a.side(!n,A),c=a.side(n,A)}let l=yr(t.text,r,a.forward(n,A));(la.to)&&(l=c),ptA=t.text.slice(Math.min(r,l),Math.max(r,l));let I=s==(n?e.length-1:0)?null:e[s+(n?1:-1)];return I&&l==c&&I.level+(n?0:1)t.some(e=>e)}),ktA=qe.define({combine:t=>t.some(e=>e)}),StA=qe.define(),Z4=class t{constructor(e,A="nearest",i="nearest",n=5,o=5,r=!1){this.range=e,this.y=A,this.x=i,this.yMargin=n,this.xMargin=o,this.isSnapshot=r}map(e){return e.empty?this:new t(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new t(ae.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},Ew=Pi.define({map:(t,e)=>t.map(e)}),RtA=Pi.define();function Xr(t,e,A){let i=t.facet(vtA);i.length?i[0](e):window.onerror&&window.onerror(String(e),A,void 0,void 0,e)||(A?console.error(A+":",e):console.error(e))}var H0=qe.define({combine:t=>t.length?t[0]:!0}),ZRA=0,SE=qe.define({combine(t){return t.filter((e,A)=>{for(let i=0;i{let a=[];return r&&a.push(a3.of(c=>{let l=c.plugin(s);return l?r(l):ut.none})),o&&a.push(o(s)),a})}static fromClass(e,A){return t.define((i,n)=>new e(i,n),A)}},W4=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let A=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(A)}catch(i){if(Xr(A.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(A){Xr(e.state,A,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var A;if(!((A=this.value)===null||A===void 0)&&A.destroy)try{this.value.destroy()}catch(i){Xr(e.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},peA=qe.define(),RL=qe.define(),a3=qe.define(),xtA=qe.define(),gF=qe.define(),LtA=qe.define();function weA(t,e){let A=t.state.facet(LtA);if(!A.length)return A;let i=A.map(o=>o instanceof Function?o(t):o),n=[];return co.spans(i,e.from,e.to,{point(){},span(o,r,s,a){let c=o-e.from,l=r-e.from,I=n;for(let C=s.length-1;C>=0;C--,a--){let d=s[C].spec.bidiIsolate,B;if(d==null&&(d=VRA(e.text,c,l)),a>0&&I.length&&(B=I[I.length-1]).to==c&&B.direction==d)B.to=l,I=B.inner;else{let E={from:c,to:l,direction:d,inner:[]};I.push(E),I=E.inner}}}}),n}var FtA=qe.define();function IF(t){let e=0,A=0,i=0,n=0;for(let o of t.state.facet(FtA)){let r=o(t);r&&(r.left!=null&&(e=Math.max(e,r.left)),r.right!=null&&(A=Math.max(A,r.right)),r.top!=null&&(i=Math.max(i,r.top)),r.bottom!=null&&(n=Math.max(n,r.bottom)))}return{left:e,right:A,top:i,bottom:n}}var H4=qe.define(),Rg=class t{constructor(e,A,i,n){this.fromA=e,this.toA=A,this.fromB=i,this.toB=n}join(e){return new t(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let A=e.length,i=this;for(;A>0;A--){let n=e[A-1];if(!(n.fromA>i.toA)){if(n.toAl)break;o+=2}if(!a)return i;new t(a.fromA,a.toA,a.fromB,a.toB).addToSet(i),r=a.toA,s=a.toB}}},Fw=class t{constructor(e,A,i){this.view=e,this.state=A,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=Cs.empty(this.startState.doc.length);for(let o of i)this.changes=this.changes.compose(o.changes);let n=[];this.changes.iterChangedRanges((o,r,s,a)=>n.push(new Rg(o,r,s,a))),this.changedRanges=n}static create(e,A,i){return new t(e,A,i)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},Nw=class extends Fo{get length(){return this.view.state.doc.length}constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.editContextFormatting=ut.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new Es],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new Rg(0,0,0,e.state.doc.length)],0,null)}update(e){var A;let i=e.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:c,toA:l})=>lthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let n=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((A=this.domChanged)===null||A===void 0)&&A.newSel?n=this.domChanged.newSel.head:!ixA(e.changes,this.hasComposition)&&!e.selectionSet&&(n=e.state.selection.main.head));let o=n>-1?XRA(this.view,e.changes,n):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:c,to:l}=this.hasComposition;i=new Rg(c,l,e.changes.mapPos(c,-1),e.changes.mapPos(l,1)).addToSet(i.slice())}this.hasComposition=o?{from:o.range.fromB,to:o.range.toB}:null,(At.ie||At.chrome)&&!o&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let r=this.decorations,s=this.updateDeco(),a=exA(r,s,e.changes);return i=Rg.extendWithRanges(i,a),!(this.flags&7)&&i.length==0?!1:(this.updateInner(i,e.startState.doc.length,o),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,A,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,A,i);let{observer:n}=this.view;n.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let r=At.chrome||At.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,r),this.flags&=-8,r&&(r.written||n.selectionRange.focusNode!=r.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(r=>r.flags&=-9);let o=[];if(this.view.viewport.from||this.view.viewport.to=0?n[r]:null;if(!s)break;let{fromA:a,toA:c,fromB:l,toB:I}=s,C,d,B,E;if(i&&i.range.fromBl){let R=V4.build(this.view.state.doc,l,i.range.fromB,this.decorations,this.dynamicDecorationMap),w=V4.build(this.view.state.doc,i.range.toB,I,this.decorations,this.dynamicDecorationMap);d=R.breakAtStart,B=R.openStart,E=w.openEnd;let _=this.compositionView(i);w.breakAtStart?_.breakAfter=1:w.content.length&&_.merge(_.length,_.length,w.content[0],!1,w.openStart,0)&&(_.breakAfter=w.content[0].breakAfter,w.content.shift()),R.content.length&&_.merge(0,0,R.content[R.content.length-1],!0,0,R.openEnd)&&R.content.pop(),C=R.content.concat(_).concat(w.content)}else({content:C,breakAtStart:d,openStart:B,openEnd:E}=V4.build(this.view.state.doc,l,I,this.decorations,this.dynamicDecorationMap));let{i:h,off:u}=o.findPos(c,1),{i:D,off:L}=o.findPos(a,-1);ltA(this,D,L,h,u,C,d,B,E)}i&&this.fixCompositionDOM(i)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let A of e.transactions)for(let i of A.effects)i.is(RtA)&&(this.editContextFormatting=i.value)}compositionView(e){let A=new Lg(e.text.nodeValue);A.flags|=8;for(let{deco:n}of e.marks)A=new D1(n,[A],A.length);let i=new Es;return i.append(A,0),i}fixCompositionDOM(e){let A=(o,r)=>{r.flags|=8|(r.children.some(a=>a.flags&7)?1:0),this.markedForComposition.add(r);let s=Fo.get(o);s&&s!=r&&(s.dom=null),r.setDOM(o)},i=this.childPos(e.range.fromB,1),n=this.children[i.i];A(e.line,n);for(let o=e.marks.length-1;o>=-1;o--)i=n.childPos(i.off,1),n=n.children[i.i],A(o>=0?e.marks[o].node:e.text,n)}updateSelection(e=!1,A=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let i=this.view.root.activeElement,n=i==this.dom,o=!n&&!(this.view.state.facet(H0)||this.dom.tabIndex>-1)&&Dw(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(n||A||o))return;let r=this.forceSelection;this.forceSelection=!1;let s=this.view.state.selection.main,a=this.moveToLine(this.domAtPos(s.anchor)),c=s.empty?a:this.moveToLine(this.domAtPos(s.head));if(At.gecko&&s.empty&&!this.hasComposition&&WRA(a)){let I=document.createTextNode("");this.view.observer.ignore(()=>a.node.insertBefore(I,a.node.childNodes[a.offset]||null)),a=c=new Xs(I,0),r=!0}let l=this.view.observer.selectionRange;(r||!l.focusNode||(!q4(a.node,a.offset,l.anchorNode,l.anchorOffset)||!q4(c.node,c.offset,l.focusNode,l.focusOffset))&&!this.suppressWidgetCursorChange(l,s))&&(this.view.observer.ignore(()=>{At.android&&At.chrome&&this.dom.contains(l.focusNode)&&txA(l.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let I=e3(this.view.root);if(I)if(s.empty){if(At.gecko){let C=$RA(a.node,a.offset);if(C&&C!=3){let d=(C==1?atA:ctA)(a.node,a.offset);d&&(a=new Xs(d.node,d.offset))}}I.collapse(a.node,a.offset),s.bidiLevel!=null&&I.caretBidiLevel!==void 0&&(I.caretBidiLevel=s.bidiLevel)}else if(I.extend){I.collapse(a.node,a.offset);try{I.extend(c.node,c.offset)}catch{}}else{let C=document.createRange();s.anchor>s.head&&([a,c]=[c,a]),C.setEnd(c.node,c.offset),C.setStart(a.node,a.offset),I.removeAllRanges(),I.addRange(C)}o&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())}),this.view.observer.setSelectionRange(a,c)),this.impreciseAnchor=a.precise?null:new Xs(l.anchorNode,l.anchorOffset),this.impreciseHead=c.precise?null:new Xs(l.focusNode,l.focusOffset)}suppressWidgetCursorChange(e,A){return this.hasComposition&&A.empty&&q4(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==A.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,A=e.state.selection.main,i=e3(e.root),{anchorNode:n,anchorOffset:o}=e.observer.selectionRange;if(!i||!A.empty||!A.assoc||!i.modify)return;let r=Es.find(this,A.head);if(!r)return;let s=r.posAtStart;if(A.head==s||A.head==s+r.length)return;let a=this.coordsAt(A.head,-1),c=this.coordsAt(A.head,1);if(!a||!c||a.bottom>c.top)return;let l=this.domAtPos(A.head+A.assoc);i.collapse(l.node,l.offset),i.modify("move",A.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let I=e.observer.selectionRange;e.docView.posFromDOM(I.anchorNode,I.anchorOffset)!=A.from&&i.collapse(n,o)}moveToLine(e){let A=this.dom,i;if(e.node!=A)return e;for(let n=e.offset;!i&&n=0;n--){let o=Fo.get(A.childNodes[n]);o instanceof Es&&(i=o.domAtPos(o.length))}return i?new Xs(i.node,i.offset,!0):e}nearest(e){for(let A=e;A;){let i=Fo.get(A);if(i&&i.rootView==this)return i;A=A.parentNode}return null}posFromDOM(e,A){let i=this.nearest(e);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(e,A)+i.posAtStart}domAtPos(e){let{i:A,off:i}=this.childCursor().findPos(e,-1);for(;A=0;r--){let s=this.children[r],a=o-s.breakAfter,c=a-s.length;if(ae||s.covers(1))&&(!i||s instanceof Es&&!(i instanceof Es&&A>=0)))i=s,n=c;else if(i&&c==e&&a==e&&s instanceof DC&&Math.abs(A)<2){if(s.deco.startSide<0)break;r&&(i=null)}o=c}return i?i.coordsAt(e-n,A):null}coordsForChar(e){let{i:A,off:i}=this.childPos(e,1),n=this.children[A];if(!(n instanceof Es))return null;for(;n.children.length;){let{i:s,off:a}=n.childPos(i,1);for(;;s++){if(s==n.children.length)return null;if((n=n.children[s]).length)break}i=a}if(!(n instanceof Lg))return null;let o=yr(n.text,i);if(o==i)return null;let r=vC(n.dom,i,o).getClientRects();for(let s=0;sMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,s=-1,a=this.view.textDirection==lo.LTR;for(let c=0,l=0;ln)break;if(c>=i){let d=I.dom.getBoundingClientRect();if(A.push(d.height),r){let B=I.dom.lastChild,E=B?t3(B):[];if(E.length){let h=E[E.length-1],u=a?h.right-d.left:d.right-h.left;u>s&&(s=u,this.minWidth=o,this.minWidthFrom=c,this.minWidthTo=C)}}}c=C+I.breakAfter}return A}textDirectionAt(e){let{i:A}=this.childPos(e,1);return getComputedStyle(this.children[A].dom).direction=="rtl"?lo.RTL:lo.LTR}measureTextSize(){for(let o of this.children)if(o instanceof Es){let r=o.measureTextSize();if(r)return r}let e=document.createElement("div"),A,i,n;return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let o=t3(e.firstChild)[0];A=e.getBoundingClientRect().height,i=o?o.width/27:7,n=o?o.height:A,e.remove()}),{lineHeight:A,charWidth:i,textHeight:n}}childCursor(e=this.length){let A=this.children.length;return A&&(e-=this.children[--A].length),new xw(this.children,e,A)}computeBlockGapDeco(){let e=[],A=this.view.viewState;for(let i=0,n=0;;n++){let o=n==A.viewports.length?null:A.viewports[n],r=o?o.from-1:this.length;if(r>i){let s=(A.lineBlockAt(r).bottom-A.lineBlockAt(i).top)/this.view.scaleY;e.push(ut.replace({widget:new s3(s),block:!0,inclusive:!0,isBlockGap:!0}).range(i,r))}if(!o)break;i=o.to+1}return ut.set(e)}updateDeco(){let e=1,A=this.view.state.facet(a3).map(o=>(this.dynamicDecorationMap[e++]=typeof o=="function")?o(this.view):o),i=!1,n=this.view.state.facet(xtA).map((o,r)=>{let s=typeof o=="function";return s&&(i=!0),s?o(this.view):o});for(n.length&&(this.dynamicDecorationMap[e++]=i,A.push(co.join(n))),this.decorations=[this.editContextFormatting,...A,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];eA.anchor?-1:1),n;if(!i)return;!A.empty&&(n=this.coordsAt(A.anchor,A.anchor>A.head?-1:1))&&(i={left:Math.min(i.left,n.left),top:Math.min(i.top,n.top),right:Math.max(i.right,n.right),bottom:Math.max(i.bottom,n.bottom)});let o=IF(this.view),r={left:i.left-o.left,top:i.top-o.top,right:i.right+o.right,bottom:i.bottom+o.bottom},{offsetWidth:s,offsetHeight:a}=this.view.scrollDOM;RRA(this.view.scrollDOM,r,A.head{ie.from&&(A=!0)}),A}function nxA(t,e,A=1){let i=t.charCategorizer(e),n=t.doc.lineAt(e),o=e-n.from;if(n.length==0)return ae.cursor(e);o==0?A=1:o==n.length&&(A=-1);let r=o,s=o;A<0?r=yr(n.text,o,!1):s=yr(n.text,o);let a=i(n.text.slice(r,s));for(;r>0;){let c=yr(n.text,r,!1);if(i(n.text.slice(c,r))!=a)break;r=c}for(;st?e.left-t:Math.max(0,t-e.right)}function rxA(t,e){return e.top>t?e.top-t:Math.max(0,t-e.bottom)}function dL(t,e){return t.tope.top+1}function DeA(t,e){return et.bottom?{top:t.top,left:t.left,right:t.right,bottom:e}:t}function xL(t,e,A){let i,n,o,r,s=!1,a,c,l,I;for(let B=t.firstChild;B;B=B.nextSibling){let E=t3(B);for(let h=0;hL||r==L&&o>D)&&(i=B,n=u,o=D,r=L,s=D?e0:hu.bottom&&(!l||l.bottomu.top)&&(c=B,I=u):l&&dL(l,u)?l=yeA(l,u.bottom):I&&dL(I,u)&&(I=DeA(I,u.top))}}if(l&&l.bottom>=A?(i=a,n=l):I&&I.top<=A&&(i=c,n=I),!i)return{node:t,offset:0};let C=Math.max(n.left,Math.min(n.right,e));if(i.nodeType==3)return veA(i,C,A);if(s&&i.contentEditable!="false")return xL(i,C,A);let d=Array.prototype.indexOf.call(t.childNodes,i)+(e>=(n.left+n.right)/2?1:0);return{node:t,offset:d}}function veA(t,e,A){let i=t.nodeValue.length,n=-1,o=1e9,r=0;for(let s=0;sA?l.top-A:A-l.bottom)-1;if(l.left-1<=e&&l.right+1>=e&&I=(l.left+l.right)/2,d=C;if((At.chrome||At.gecko)&&vC(t,s).getBoundingClientRect().left==l.right&&(d=!C),I<=0)return{node:t,offset:s+(d?1:0)};n=s+(d?1:0),o=I}}}return{node:t,offset:n>-1?n:r>0?t.nodeValue.length:0}}function _tA(t,e,A,i=-1){var n,o;let r=t.contentDOM.getBoundingClientRect(),s=r.top+t.viewState.paddingTop,a,{docHeight:c}=t.viewState,{x:l,y:I}=e,C=I-s;if(C<0)return 0;if(C>c)return t.state.doc.length;for(let R=t.viewState.heightOracle.textHeight/2,w=!1;a=t.elementAtHeight(C),a.type!=$s.Text;)for(;C=i>0?a.bottom+R:a.top-R,!(C>=0&&C<=c);){if(w)return A?null:0;w=!0,i=-i}I=s+C;let d=a.from;if(dt.viewport.to)return t.viewport.to==t.state.doc.length?t.state.doc.length:A?null:beA(t,r,a,l,I);let B=t.dom.ownerDocument,E=t.root.elementFromPoint?t.root:B,h=E.elementFromPoint(l,I);h&&!t.contentDOM.contains(h)&&(h=null),h||(l=Math.max(r.left+1,Math.min(r.right-1,l)),h=E.elementFromPoint(l,I),h&&!t.contentDOM.contains(h)&&(h=null));let u,D=-1;if(h&&((n=t.docView.nearest(h))===null||n===void 0?void 0:n.isEditable)!=!1){if(B.caretPositionFromPoint){let R=B.caretPositionFromPoint(l,I);R&&({offsetNode:u,offset:D}=R)}else if(B.caretRangeFromPoint){let R=B.caretRangeFromPoint(l,I);R&&({startContainer:u,startOffset:D}=R,(!t.contentDOM.contains(u)||At.safari&&sxA(u,D,l)||At.chrome&&axA(u,D,l))&&(u=void 0))}u&&(D=Math.min(xg(u),D))}if(!u||!t.docView.dom.contains(u)){let R=Es.find(t.docView,d);if(!R)return C>a.top+a.height/2?a.to:a.from;({node:u,offset:D}=xL(R.dom,l,I))}let L=t.docView.nearest(u);if(!L)return null;if(L.isWidget&&((o=L.dom)===null||o===void 0?void 0:o.nodeType)==1){let R=L.dom.getBoundingClientRect();return e.yt.defaultLineHeight*1.5){let s=t.viewState.heightOracle.textHeight,a=Math.floor((n-A.top-(t.defaultLineHeight-s)*.5)/s);o+=a*t.viewState.heightOracle.lineLength}let r=t.state.sliceDoc(A.from,A.to);return A.from+Cw(r,o,t.state.tabSize)}function sxA(t,e,A){let i,n=t;if(t.nodeType!=3||e!=(i=t.nodeValue.length))return!1;for(;;){let o=n.nextSibling;if(o){if(o.nodeName=="BR")break;return!1}else{let r=n.parentNode;if(!r||r.nodeName=="DIV")break;n=r}}return vC(t,i-1,i).getBoundingClientRect().right>A}function axA(t,e,A){if(e!=0)return!1;for(let n=t;;){let o=n.parentNode;if(!o||o.nodeType!=1||o.firstChild!=n)return!1;if(o.classList.contains("cm-line"))break;n=o}let i=t.nodeType==1?t.getBoundingClientRect():vC(t,0,Math.max(t.nodeValue.length,1)).getBoundingClientRect();return A-i.left>5}function LL(t,e,A){let i=t.lineBlockAt(e);if(Array.isArray(i.type)){let n;for(let o of i.type){if(o.from>e)break;if(!(o.toe)return o;(!n||o.type==$s.Text&&(n.type!=o.type||(A<0?o.frome)))&&(n=o)}}return n||i}return i}function cxA(t,e,A,i){let n=LL(t,e.head,e.assoc||-1),o=!i||n.type!=$s.Text||!(t.lineWrapping||n.widgetLineBreaks)?null:t.coordsAtPos(e.assoc<0&&e.head>n.from?e.head-1:e.head);if(o){let r=t.dom.getBoundingClientRect(),s=t.textDirectionAt(n.from),a=t.posAtCoords({x:A==(s==lo.LTR)?r.right-1:r.left+1,y:(o.top+o.bottom)/2});if(a!=null)return ae.cursor(a,A?-1:1)}return ae.cursor(A?n.to:n.from,A?-1:1)}function MeA(t,e,A,i){let n=t.state.doc.lineAt(e.head),o=t.bidiSpans(n),r=t.textDirectionAt(n.from);for(let s=e,a=null;;){let c=qRA(n,o,r,s,A),l=ptA;if(!c){if(n.number==(A?t.state.doc.lines:1))return s;l=` -`,n=t.state.doc.line(n.number+(A?1:-1)),o=t.bidiSpans(n),c=t.visualLineSide(n,!A)}if(a){if(!a(l))return s}else{if(!i)return c;a=i(l)}s=c}}function lxA(t,e,A){let i=t.state.charCategorizer(e),n=i(A);return o=>{let r=i(o);return n==ao.Space&&(n=r),n==r}}function gxA(t,e,A,i){let n=e.head,o=A?1:-1;if(n==(A?t.state.doc.length:0))return ae.cursor(n,e.assoc);let r=e.goalColumn,s,a=t.contentDOM.getBoundingClientRect(),c=t.coordsAtPos(n,e.assoc||-1),l=t.documentTop;if(c)r==null&&(r=c.left-a.left),s=o<0?c.top:c.bottom;else{let d=t.viewState.lineBlockAt(n);r==null&&(r=Math.min(a.right-a.left,t.defaultCharacterWidth*(n-d.from))),s=(o<0?d.top:d.bottom)+l}let I=a.left+r,C=i??t.viewState.heightOracle.textHeight>>1;for(let d=0;;d+=10){let B=s+(C+d)*o,E=_tA(t,{x:I,y:B},!1,o);if(Ba.bottom||(o<0?En)){let h=t.docView.coordsForChar(E),u=!h||B{if(e>o&&en(t)),A.from,e.head>A.from?-1:1);return i==A.from?A:ae.cursor(i,io)&&this.lineBreak(),n=r}return this.findPointBefore(i,A),this}readTextNode(e){let A=e.nodeValue;for(let i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,A.length));for(let i=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let o=-1,r=1,s;if(this.lineSeparator?(o=A.indexOf(this.lineSeparator,i),r=this.lineSeparator.length):(s=n.exec(A))&&(o=s.index,r=s[0].length),this.append(A.slice(i,o<0?A.length:o)),o<0)break;if(this.lineBreak(),r>1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=r-1);i=o+r}}readNode(e){if(e.cmIgnore)return;let A=Fo.get(e),i=A&&A.overrideDOMText;if(i!=null){this.findPointInside(e,i.length);for(let n=i.iter();!n.next().done;)n.lineBreak?this.lineBreak():this.append(n.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,A){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==A&&(i.pos=this.text.length)}findPointInside(e,A){for(let i of this.points)(e.nodeType==3?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+(IxA(e,i.node,i.offset)?A:0))}};function IxA(t,e,A){for(;;){if(!e||A-1;let{impreciseHead:o,impreciseAnchor:r}=e.docView;if(e.state.readOnly&&A>-1)this.newSel=null;else if(A>-1&&(this.bounds=e.docView.domBoundsAround(A,i,0))){let s=o||r?[]:BxA(e),a=new FL(s,e.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=ExA(s,this.bounds.from)}else{let s=e.observer.selectionRange,a=o&&o.node==s.focusNode&&o.offset==s.focusOffset||!mL(e.contentDOM,s.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(s.focusNode,s.focusOffset),c=r&&r.node==s.anchorNode&&r.offset==s.anchorOffset||!mL(e.contentDOM,s.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(s.anchorNode,s.anchorOffset),l=e.viewport;if((At.ios||At.chrome)&&e.state.selection.main.empty&&a!=c&&(l.from>0||l.toDate.now()-100?t.inputState.lastKeyCode:-1;if(e.bounds){let{from:r,to:s}=e.bounds,a=n.from,c=null;(o===8||At.android&&e.text.length=n.from&&A.to<=n.to&&(A.from!=n.from||A.to!=n.to)&&n.to-n.from-(A.to-A.from)<=4?A={from:n.from,to:n.to,insert:t.state.doc.slice(n.from,A.from).append(A.insert).append(t.state.doc.slice(A.to,n.to))}:At.chrome&&A&&A.from==A.to&&A.from==n.head&&A.insert.toString()==` - `&&t.lineWrapping&&(i&&(i=ae.single(i.main.anchor-1,i.main.head-1)),A={from:n.from,to:n.to,insert:In.of([" "])}),A)return CF(t,A,i,o);if(i&&!i.main.eq(n)){let r=!1,s="select";return t.inputState.lastSelectionTime>Date.now()-50&&(t.inputState.lastSelectionOrigin=="select"&&(r=!0),s=t.inputState.lastSelectionOrigin),t.dispatch({selection:i,scrollIntoView:r,userEvent:s}),!0}else return!1}function CF(t,e,A,i=-1){if(At.ios&&t.inputState.flushIOSKey(e))return!0;let n=t.state.selection.main;if(At.android&&(e.to==n.to&&(e.from==n.from||e.from==n.from-1&&t.state.sliceDoc(e.from,n.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&FE(t.contentDOM,"Enter",13)||(e.from==n.from-1&&e.to==n.to&&e.insert.length==0||i==8&&e.insert.lengthn.head)&&FE(t.contentDOM,"Backspace",8)||e.from==n.from&&e.to==n.to+1&&e.insert.length==0&&FE(t.contentDOM,"Delete",46)))return!0;let o=e.insert.toString();t.inputState.composing>=0&&t.inputState.composing++;let r,s=()=>r||(r=CxA(t,e,A));return t.state.facet(btA).some(a=>a(t,e.from,e.to,o,s))||t.dispatch(s()),!0}function CxA(t,e,A){let i,n=t.state,o=n.selection.main;if(e.from>=o.from&&e.to<=o.to&&e.to-e.from>=(o.to-o.from)/3&&(!A||A.main.empty&&A.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let s=o.frome.to?n.sliceDoc(e.to,o.to):"";i=n.replaceSelection(t.state.toText(s+e.insert.sliceString(0,void 0,t.state.lineBreak)+a))}else{let s=n.changes(e),a=A&&A.main.to<=s.newLength?A.main:void 0;if(n.selection.ranges.length>1&&t.inputState.composing>=0&&e.to<=o.to&&e.to>=o.to-10){let c=t.state.sliceDoc(e.from,e.to),l,I=A&&NtA(t,A.main.head);if(I){let B=e.insert.length-(e.to-e.from);l={from:I.from,to:I.to-B}}else l=t.state.doc.lineAt(o.head);let C=o.to-e.to,d=o.to-o.from;i=n.changeByRange(B=>{if(B.from==o.from&&B.to==o.to)return{changes:s,range:a||B.map(s)};let E=B.to-C,h=E-c.length;if(B.to-B.from!=d||t.state.sliceDoc(h,E)!=c||B.to>=l.from&&B.from<=l.to)return{range:B};let u=n.changes({from:h,to:E,insert:e.insert}),D=B.to-o.to;return{changes:u,range:a?ae.range(Math.max(0,a.anchor+D),Math.max(0,a.head+D)):B.map(u)}})}else i={changes:s,selection:a&&n.selection.replaceRange(a)}}let r="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,r+=".compose",t.inputState.compositionFirstChange&&(r+=".start",t.inputState.compositionFirstChange=!1)),n.update(i,{userEvent:r,scrollIntoView:!0})}function dxA(t,e,A,i){let n=Math.min(t.length,e.length),o=0;for(;o0&&s>0&&t.charCodeAt(r-1)==e.charCodeAt(s-1);)r--,s--;if(i=="end"){let a=Math.max(0,o-Math.min(r,s));A-=r+a-o}if(r=r?o-A:0;o-=a,s=o+(s-r),r=o}else if(s=s?o-A:0;o-=a,r=o+(r-s),s=o}return{from:o,toA:r,toB:s}}function BxA(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:A,anchorOffset:i,focusNode:n,focusOffset:o}=t.observer.selectionRange;return A&&(e.push(new _w(A,i)),(n!=A||o!=i)&&e.push(new _w(n,o))),e}function ExA(t,e){if(t.length==0)return null;let A=t[0].pos,i=t.length==2?t[1].pos:A;return A>-1&&i>-1?ae.single(A+e,i+e):null}var _L=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,At.safari&&e.contentDOM.addEventListener("input",()=>null),At.gecko&&RxA(e.contentDOM.ownerDocument)}handleEvent(e){!wxA(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,A){let i=this.handlers[e];if(i){for(let n of i.observers)n(this.view,A);for(let n of i.handlers){if(A.defaultPrevented)break;if(n(this.view,A)){A.preventDefault();break}}}}ensureHandlers(e){let A=QxA(e),i=this.handlers,n=this.view.contentDOM;for(let o in A)if(o!="scroll"){let r=!A[o].handlers.length,s=i[o];s&&r!=!s.handlers.length&&(n.removeEventListener(o,this.handleEvent),s=null),s||n.addEventListener(o,this.handleEvent,{passive:r})}for(let o in i)o!="scroll"&&!A[o]&&n.removeEventListener(o,this.handleEvent);this.handlers=A}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&KtA.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),At.android&&At.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let A;return At.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((A=UtA.find(i=>i.keyCode==e.keyCode))&&!e.ctrlKey||hxA.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=A||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let A=this.pendingIOSKey;return!A||A.key=="Enter"&&e&&e.from0?!0:At.safari&&!At.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function keA(t,e){return(A,i)=>{try{return e.call(t,i,A)}catch(n){Xr(A.state,n)}}}function QxA(t){let e=Object.create(null);function A(i){return e[i]||(e[i]={observers:[],handlers:[]})}for(let i of t){let n=i.spec,o=n&&n.plugin.domEventHandlers,r=n&&n.plugin.domEventObservers;if(o)for(let s in o){let a=o[s];a&&A(s).handlers.push(keA(i.value,a))}if(r)for(let s in r){let a=r[s];a&&A(s).observers.push(keA(i.value,a))}}for(let i in yl)A(i).handlers.push(yl[i]);for(let i in Jc)A(i).observers.push(Jc[i]);return e}var UtA=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],hxA="dthko",KtA=[16,17,18,20,91,92,224,225],Qw=6;function hw(t){return Math.max(0,t)*.7+8}function uxA(t,e){return Math.max(Math.abs(t.clientX-e.clientX),Math.abs(t.clientY-e.clientY))}var GL=class{constructor(e,A,i,n){this.view=e,this.startEvent=A,this.style=i,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=A,this.scrollParents=xRA(e.contentDOM),this.atoms=e.state.facet(gF).map(r=>r(e));let o=e.contentDOM.ownerDocument;o.addEventListener("mousemove",this.move=this.move.bind(this)),o.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=A.shiftKey,this.multiple=e.state.facet(hr.allowMultipleSelections)&&fxA(e,A),this.dragging=pxA(e,A)&&TtA(A)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&uxA(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let A=0,i=0,n=0,o=0,r=this.view.win.innerWidth,s=this.view.win.innerHeight;this.scrollParents.x&&({left:n,right:r}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:o,bottom:s}=this.scrollParents.y.getBoundingClientRect());let a=IF(this.view);e.clientX-a.left<=n+Qw?A=-hw(n-e.clientX):e.clientX+a.right>=r-Qw&&(A=hw(e.clientX-r)),e.clientY-a.top<=o+Qw?i=-hw(o-e.clientY):e.clientY+a.bottom>=s-Qw&&(i=hw(e.clientY-s)),this.setScrollSpeed(A,i)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,A){this.scrollSpeed={x:e,y:A},e||A?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:A}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),A&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=A,A=0),(e||A)&&this.view.win.scrollBy(e,A),this.dragging===!1&&this.select(this.lastEvent)}skipAtoms(e){let A=null;for(let i=0;iA.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function fxA(t,e){let A=t.state.facet(wtA);return A.length?A[0](e):At.mac?e.metaKey:e.ctrlKey}function mxA(t,e){let A=t.state.facet(DtA);return A.length?A[0](e):At.mac?!e.altKey:!e.ctrlKey}function pxA(t,e){let{main:A}=t.state.selection;if(A.empty)return!1;let i=e3(t.root);if(!i||i.rangeCount==0)return!0;let n=i.getRangeAt(0).getClientRects();for(let o=0;o=e.clientX&&r.top<=e.clientY&&r.bottom>=e.clientY)return!0}return!1}function wxA(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let A=e.target,i;A!=t.contentDOM;A=A.parentNode)if(!A||A.nodeType==11||(i=Fo.get(A))&&i.ignoreEvent(e))return!1;return!0}var yl=Object.create(null),Jc=Object.create(null),YtA=At.ie&&At.ie_version<15||At.ios&&At.webkit_version<604;function DxA(t){let e=t.dom.parentNode;if(!e)return;let A=e.appendChild(document.createElement("textarea"));A.style.cssText="position: fixed; left: -10000px; top: 10px",A.focus(),setTimeout(()=>{t.focus(),A.remove(),JtA(t,A.value)},50)}function qw(t,e,A){for(let i of t.facet(e))A=i(A,t);return A}function JtA(t,e){e=qw(t.state,cF,e);let{state:A}=t,i,n=1,o=A.toText(e),r=o.lines==A.selection.ranges.length;if(UL!=null&&A.selection.ranges.every(a=>a.empty)&&UL==o.toString()){let a=-1;i=A.changeByRange(c=>{let l=A.doc.lineAt(c.from);if(l.from==a)return{range:c};a=l.from;let I=A.toText((r?o.line(n++).text:e)+A.lineBreak);return{changes:{from:l.from,insert:I},range:ae.cursor(c.from+I.length)}})}else r?i=A.changeByRange(a=>{let c=o.line(n++);return{changes:{from:a.from,to:a.to,insert:c.text},range:ae.cursor(a.from+c.length)}}):i=A.replaceSelection(o);t.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}Jc.scroll=t=>{t.inputState.lastScrollTop=t.scrollDOM.scrollTop,t.inputState.lastScrollLeft=t.scrollDOM.scrollLeft};yl.keydown=(t,e)=>(t.inputState.setSelectionOrigin("select"),e.keyCode==27&&t.inputState.tabFocusMode!=0&&(t.inputState.tabFocusMode=Date.now()+2e3),!1);Jc.touchstart=(t,e)=>{t.inputState.lastTouchTime=Date.now(),t.inputState.setSelectionOrigin("select.pointer")};Jc.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")};yl.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return!1;let A=null;for(let i of t.state.facet(ytA))if(A=i(t,e),A)break;if(!A&&e.button==0&&(A=bxA(t,e)),A){let i=!t.hasFocus;t.inputState.startMouseSelection(new GL(t,e,A,i)),i&&t.observer.ignore(()=>{otA(t.contentDOM);let o=t.root.activeElement;o&&!o.contains(t.contentDOM)&&o.blur()});let n=t.inputState.mouseSelection;if(n)return n.start(e),n.dragging===!1}return!1};function SeA(t,e,A,i){if(i==1)return ae.cursor(e,A);if(i==2)return nxA(t.state,e,A);{let n=Es.find(t.docView,e),o=t.state.doc.lineAt(n?n.posAtEnd:e),r=n?n.posAtStart:o.from,s=n?n.posAtEnd:o.to;return se>=A.top&&e<=A.bottom&&t>=A.left&&t<=A.right;function yxA(t,e,A,i){let n=Es.find(t.docView,e);if(!n)return 1;let o=e-n.posAtStart;if(o==0)return 1;if(o==n.length)return-1;let r=n.coordsAt(o,-1);if(r&&ReA(A,i,r))return-1;let s=n.coordsAt(o,1);return s&&ReA(A,i,s)?1:r&&r.bottom>=i?-1:1}function xeA(t,e){let A=t.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:A,bias:yxA(t,A,e.clientX,e.clientY)}}var vxA=At.ie&&At.ie_version<=11,LeA=null,FeA=0,NeA=0;function TtA(t){if(!vxA)return t.detail;let e=LeA,A=NeA;return LeA=t,NeA=Date.now(),FeA=!e||A>Date.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(FeA+1)%3:1}function bxA(t,e){let A=xeA(t,e),i=TtA(e),n=t.state.selection;return{update(o){o.docChanged&&(A.pos=o.changes.mapPos(A.pos),n=n.map(o.changes))},get(o,r,s){let a=xeA(t,o),c,l=SeA(t,a.pos,a.bias,i);if(A.pos!=a.pos&&!r){let I=SeA(t,A.pos,A.bias,i),C=Math.min(I.from,l.from),d=Math.max(I.to,l.to);l=C1&&(c=MxA(n,a.pos))?c:s?n.addRange(l):ae.create([l])}}}function MxA(t,e){for(let A=0;A=e)return ae.create(t.ranges.slice(0,A).concat(t.ranges.slice(A+1)),t.mainIndex==A?0:t.mainIndex-(t.mainIndex>A?1:0))}return null}yl.dragstart=(t,e)=>{let{selection:{main:A}}=t.state;if(e.target.draggable){let n=t.docView.nearest(e.target);if(n&&n.isWidget){let o=n.posAtStart,r=o+n.length;(o>=A.to||r<=A.from)&&(A=ae.range(o,r))}}let{inputState:i}=t;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=A,e.dataTransfer&&(e.dataTransfer.setData("Text",qw(t.state,lF,t.state.sliceDoc(A.from,A.to))),e.dataTransfer.effectAllowed="copyMove"),!1};yl.dragend=t=>(t.inputState.draggedContent=null,!1);function _eA(t,e,A,i){if(A=qw(t.state,cF,A),!A)return;let n=t.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:o}=t.inputState,r=i&&o&&mxA(t,e)?{from:o.from,to:o.to}:null,s={from:n,insert:A},a=t.state.changes(r?[r,s]:s);t.focus(),t.dispatch({changes:a,selection:{anchor:a.mapPos(n,-1),head:a.mapPos(n,1)},userEvent:r?"move.drop":"input.drop"}),t.inputState.draggedContent=null}yl.drop=(t,e)=>{if(!e.dataTransfer)return!1;if(t.state.readOnly)return!0;let A=e.dataTransfer.files;if(A&&A.length){let i=Array(A.length),n=0,o=()=>{++n==A.length&&_eA(t,e,i.filter(r=>r!=null).join(t.state.lineBreak),!1)};for(let r=0;r{/[\x00-\x08\x0e-\x1f]{2}/.test(s.result)||(i[r]=s.result),o()},s.readAsText(A[r])}return!0}else{let i=e.dataTransfer.getData("Text");if(i)return _eA(t,e,i,!0),!0}return!1};yl.paste=(t,e)=>{if(t.state.readOnly)return!0;t.observer.flush();let A=YtA?null:e.clipboardData;return A?(JtA(t,A.getData("text/plain")||A.getData("text/uri-list")),!0):(DxA(t),!1)};function kxA(t,e){let A=t.dom.parentNode;if(!A)return;let i=A.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=e,i.focus(),i.selectionEnd=e.length,i.selectionStart=0,setTimeout(()=>{i.remove(),t.focus()},50)}function SxA(t){let e=[],A=[],i=!1;for(let n of t.selection.ranges)n.empty||(e.push(t.sliceDoc(n.from,n.to)),A.push(n));if(!e.length){let n=-1;for(let{from:o}of t.selection.ranges){let r=t.doc.lineAt(o);r.number>n&&(e.push(r.text),A.push({from:r.from,to:Math.min(t.doc.length,r.to+1)})),n=r.number}i=!0}return{text:qw(t,lF,e.join(t.lineBreak)),ranges:A,linewise:i}}var UL=null;yl.copy=yl.cut=(t,e)=>{let{text:A,ranges:i,linewise:n}=SxA(t.state);if(!A&&!n)return!1;UL=n?A:null,e.type=="cut"&&!t.state.readOnly&&t.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let o=YtA?null:e.clipboardData;return o?(o.clearData(),o.setData("text/plain",A),!0):(kxA(t,A),!1)};var HtA=xa.define();function ztA(t,e){let A=[];for(let i of t.facet(MtA)){let n=i(t,e);n&&A.push(n)}return A.length?t.update({effects:A,annotations:HtA.of(!0)}):null}function OtA(t){setTimeout(()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let A=ztA(t.state,e);A?t.dispatch(A):t.update([])}},10)}Jc.focus=t=>{t.inputState.lastFocusTime=Date.now(),!t.scrollDOM.scrollTop&&(t.inputState.lastScrollTop||t.inputState.lastScrollLeft)&&(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),OtA(t)};Jc.blur=t=>{t.observer.clearSelectionRange(),OtA(t)};Jc.compositionstart=Jc.compositionupdate=t=>{t.observer.editContext||(t.inputState.compositionFirstChange==null&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0))};Jc.compositionend=t=>{t.observer.editContext||(t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,At.chrome&&At.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then(()=>t.observer.flush()):setTimeout(()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])},50))};Jc.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()};yl.beforeinput=(t,e)=>{var A,i;if(e.inputType=="insertReplacementText"&&t.observer.editContext){let o=(A=e.dataTransfer)===null||A===void 0?void 0:A.getData("text/plain"),r=e.getTargetRanges();if(o&&r.length){let s=r[0],a=t.posAtDOM(s.startContainer,s.startOffset),c=t.posAtDOM(s.endContainer,s.endOffset);return CF(t,{from:a,to:c,insert:t.state.toText(o)},null),!0}}let n;if(At.chrome&&At.android&&(n=UtA.find(o=>o.inputType==e.inputType))&&(t.observer.delayAndroidKey(n.key,n.keyCode),n.key=="Backspace"||n.key=="Delete")){let o=((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0;setTimeout(()=>{var r;(((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0)>o+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())},100)}return At.ios&&e.inputType=="deleteContentForward"&&t.observer.flushSoon(),At.safari&&e.inputType=="insertText"&&t.inputState.composing>=0&&setTimeout(()=>Jc.compositionend(t,e),20),!1};var GeA=new Set;function RxA(t){GeA.has(t)||(GeA.add(t),t.addEventListener("copy",()=>{}),t.addEventListener("cut",()=>{}))}var UeA=["pre-wrap","normal","pre-line","break-spaces"],NE=!1;function KeA(){NE=!1}var KL=class{constructor(e){this.lineWrapping=e,this.doc=In.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,A){let i=this.doc.lineAt(A).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((A-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return UeA.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let A=!1;for(let i=0;i-1,a=Math.round(A)!=Math.round(this.lineHeight)||this.lineWrapping!=s;if(this.lineWrapping=s,this.lineHeight=A,this.charWidth=i,this.textHeight=n,this.lineLength=o,a){this.heightSamples={};for(let c=0;c0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>bw&&(NE=!0),this.height=e)}replace(e,A,i){return t.of(i)}decomposeLeft(e,A){A.push(this)}decomposeRight(e,A){A.push(this)}applyChanges(e,A,i,n){let o=this,r=i.doc;for(let s=n.length-1;s>=0;s--){let{fromA:a,toA:c,fromB:l,toB:I}=n[s],C=o.lineAt(a,Po.ByPosNoHeight,i.setDoc(A),0,0),d=C.to>=c?C:o.lineAt(c,Po.ByPosNoHeight,i,0,0);for(I+=d.to-c,c=d.to;s>0&&C.from<=n[s-1].toA;)a=n[s-1].fromA,l=n[s-1].fromB,s--,ao*2){let s=e[A-1];s.break?e.splice(--A,1,s.left,null,s.right):e.splice(--A,1,s.left,s.right),i+=1+s.break,n-=s.size}else if(o>n*2){let s=e[i];s.break?e.splice(i,1,s.left,null,s.right):e.splice(i,1,s.left,s.right),i+=2+s.break,o-=s.size}else break;else if(n=o&&r(this.blockAt(0,i,n,o))}updateHeight(e,A=0,i=!1,n){return n&&n.from<=A&&n.more&&this.setHeight(n.heights[n.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}},Yc=class t extends Uw{constructor(e,A){super(e,A,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,A,i,n){return new kg(n,this.length,i,this.height,this.breaks)}replace(e,A,i){let n=i[0];return i.length==1&&(n instanceof t||n instanceof w1&&n.flags&4)&&Math.abs(this.length-n.length)<10?(n instanceof w1?n=new t(n.length,this.height):n.height=this.height,this.outdated||(n.outdated=!1),n):gc.of(i)}updateHeight(e,A=0,i=!1,n){return n&&n.from<=A&&n.more?this.setHeight(n.heights[n.index++]):(i||this.outdated)&&this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},w1=class t extends gc{constructor(e){super(e,0)}heightMetrics(e,A){let i=e.doc.lineAt(A).number,n=e.doc.lineAt(A+this.length).number,o=n-i+1,r,s=0;if(e.lineWrapping){let a=Math.min(this.height,e.lineHeight*o);r=a/o,this.length>o+1&&(s=(this.height-a)/(this.length-o-1))}else r=this.height/o;return{firstLine:i,lastLine:n,perLine:r,perChar:s}}blockAt(e,A,i,n){let{firstLine:o,lastLine:r,perLine:s,perChar:a}=this.heightMetrics(A,n);if(A.lineWrapping){let c=n+(e0){let o=i[i.length-1];o instanceof t?i[i.length-1]=new t(o.length+n):i.push(null,new t(n-1))}if(e>0){let o=i[0];o instanceof t?i[0]=new t(e+o.length):i.unshift(new t(e-1),null)}return gc.of(i)}decomposeLeft(e,A){A.push(new t(e-1),null)}decomposeRight(e,A){A.push(null,new t(this.length-e-1))}updateHeight(e,A=0,i=!1,n){let o=A+this.length;if(n&&n.from<=A+this.length&&n.more){let r=[],s=Math.max(A,n.from),a=-1;for(n.from>A&&r.push(new t(n.from-A-1).updateHeight(e,A));s<=o&&n.more;){let l=e.doc.lineAt(s).length;r.length&&r.push(null);let I=n.heights[n.index++];a==-1?a=I:Math.abs(I-a)>=bw&&(a=-2);let C=new Yc(l,I);C.outdated=!1,r.push(C),s+=l+1}s<=o&&r.push(null,new t(o-s).updateHeight(e,s));let c=gc.of(r);return(a<0||Math.abs(c.height-this.height)>=bw||Math.abs(a-this.heightMetrics(e,A).perLine)>=bw)&&(NE=!0),Gw(this,c)}else(i||this.outdated)&&(this.setHeight(e.heightForGap(A,A+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},JL=class extends gc{constructor(e,A,i){super(e.length+A+i.length,e.height+i.height,A|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return this.flags&1}blockAt(e,A,i,n){let o=i+this.left.height;return es))return c;let l=A==Po.ByPosNoHeight?Po.ByPosNoHeight:Po.ByPos;return a?c.join(this.right.lineAt(s,l,i,r,s)):this.left.lineAt(s,l,i,n,o).join(c)}forEachLine(e,A,i,n,o,r){let s=n+this.left.height,a=o+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,A,i,s,a,r);else{let c=this.lineAt(a,Po.ByPos,i,n,o);e=e&&c.from<=A&&r(c),A>c.to&&this.right.forEachLine(c.to+1,A,i,s,a,r)}}replace(e,A,i){let n=this.left.length+this.break;if(Athis.left.length)return this.balanced(this.left,this.right.replace(e-n,A-n,i));let o=[];e>0&&this.decomposeLeft(e,o);let r=o.length;for(let s of i)o.push(s);if(e>0&&YeA(o,r-1),A=i&&A.push(null)),e>i&&this.right.decomposeLeft(e-i,A)}decomposeRight(e,A){let i=this.left.length,n=i+this.break;if(e>=n)return this.right.decomposeRight(e-n,A);e2*A.size||A.size>2*e.size?gc.of(this.break?[e,null,A]:[e,A]):(this.left=Gw(this.left,e),this.right=Gw(this.right,A),this.setHeight(e.height+A.height),this.outdated=e.outdated||A.outdated,this.size=e.size+A.size,this.length=e.length+this.break+A.length,this)}updateHeight(e,A=0,i=!1,n){let{left:o,right:r}=this,s=A+o.length+this.break,a=null;return n&&n.from<=A+o.length&&n.more?a=o=o.updateHeight(e,A,i,n):o.updateHeight(e,A,i),n&&n.from<=s+r.length&&n.more?a=r=r.updateHeight(e,s,i,n):r.updateHeight(e,s,i),a?this.balanced(o,r):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function YeA(t,e){let A,i;t[e]==null&&(A=t[e-1])instanceof w1&&(i=t[e+1])instanceof w1&&t.splice(e-1,3,new w1(A.length+1+i.length))}var xxA=5,TL=class t{constructor(e,A){this.pos=e,this.oracle=A,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,A){if(this.lineStart>-1){let i=Math.min(A,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof Yc?n.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new Yc(i-this.pos,-1)),this.writtenTo=i,A>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=A}point(e,A,i){if(e=xxA)&&this.addLineDeco(n,o,r)}else A>e&&this.span(e,A);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:A}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=A,this.writtenToe&&this.nodes.push(new Yc(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,A){let i=new w1(A-e);return this.oracle.doc.lineAt(e).to==A&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof Yc)return e;let A=new Yc(0,-1);return this.nodes.push(A),A}addBlock(e){this.enterLine();let A=e.deco;A&&A.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,A&&A.endSide>0&&(this.covering=e)}addLineDeco(e,A,i){let n=this.ensureLine();n.length+=i,n.collapsed+=i,n.widgetHeight=Math.max(n.widgetHeight,e),n.breaks+=A,this.writtenTo=this.pos=this.pos+i}finish(e){let A=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(A instanceof Yc)&&!this.isCovered?this.nodes.push(new Yc(0,-1)):(this.writtenTol.clientHeight||l.scrollWidth>l.clientWidth)&&I.overflow!="visible"){let C=l.getBoundingClientRect();o=Math.max(o,C.left),r=Math.min(r,C.right),s=Math.max(s,C.top),a=Math.min(c==t.parentNode?n.innerHeight:a,C.bottom)}c=I.position=="absolute"||I.position=="fixed"?l.offsetParent:l.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:o-A.left,right:Math.max(o,r)-A.left,top:s-(A.top+e),bottom:Math.max(s,a)-(A.top+e)}}function NxA(t){let e=t.getBoundingClientRect(),A=t.ownerDocument.defaultView||window;return e.left0&&e.top0}function _xA(t,e){let A=t.getBoundingClientRect();return{left:0,right:A.right-A.left,top:e,bottom:A.bottom-(A.top+e)}}var X4=class{constructor(e,A,i,n){this.from=e,this.to=A,this.size=i,this.displaySize=n}static same(e,A){if(e.length!=A.length)return!1;for(let i=0;itypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new KL(A),this.stateDeco=e.facet(a3).filter(i=>typeof i!="function"),this.heightMap=gc.empty().applyChanges(this.stateDeco,In.empty,this.heightOracle.setDoc(e.doc),[new Rg(0,0,0,e.doc.length)]);for(let i=0;i<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());i++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=ut.set(this.lineGaps.map(i=>i.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:A}=this.state.selection;for(let i=0;i<=1;i++){let n=i?A.head:A.anchor;if(!e.some(({from:o,to:r})=>n>=o&&n<=r)){let{from:o,to:r}=this.lineBlockAt(n);e.push(new RE(o,r))}}return this.viewports=e.sort((i,n)=>i.from-n.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?JeA:new OL(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(P4(e,this.scaler))})}update(e,A=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=this.state.facet(a3).filter(l=>typeof l!="function");let n=e.changedRanges,o=Rg.extendWithRanges(n,LxA(i,this.stateDeco,e?e.changes:Cs.empty(this.state.doc.length))),r=this.heightMap.height,s=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);KeA(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),o),(this.heightMap.height!=r||NE)&&(e.flags|=2),s?(this.scrollAnchorPos=e.changes.mapPos(s.from,-1),this.scrollAnchorHeight=s.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=r);let a=o.length?this.mapViewport(this.viewport,e.changes):this.viewport;(A&&(A.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,A));let c=a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),A&&(this.scrollTarget=A),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(ktA)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let A=e.contentDOM,i=window.getComputedStyle(A),n=this.heightOracle,o=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?lo.RTL:lo.LTR;let r=this.heightOracle.mustRefreshForWrapping(o),s=A.getBoundingClientRect(),a=r||this.mustMeasureContent||this.contentDOMHeight!=s.height;this.contentDOMHeight=s.height,this.mustMeasureContent=!1;let c=0,l=0;if(s.width&&s.height){let{scaleX:R,scaleY:w}=ntA(A,s);(R>.005&&Math.abs(this.scaleX-R)>.005||w>.005&&Math.abs(this.scaleY-w)>.005)&&(this.scaleX=R,this.scaleY=w,c|=16,r=a=!0)}let I=(parseInt(i.paddingTop)||0)*this.scaleY,C=(parseInt(i.paddingBottom)||0)*this.scaleY;(this.paddingTop!=I||this.paddingBottom!=C)&&(this.paddingTop=I,this.paddingBottom=C,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(n.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let d=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=d&&(this.scrollAnchorHeight=-1,this.scrollTop=d),this.scrolledToBottom=stA(e.scrollDOM);let B=(this.printing?_xA:FxA)(A,this.paddingTop),E=B.top-this.pixelViewport.top,h=B.bottom-this.pixelViewport.bottom;this.pixelViewport=B;let u=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(u!=this.inView&&(this.inView=u,u&&(a=!0)),!this.inView&&!this.scrollTarget&&!NxA(e.dom))return 0;let D=s.width;if((this.contentDOMWidth!=D||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=s.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),a){let R=e.docView.measureVisibleLineHeights(this.viewport);if(n.mustRefreshForHeights(R)&&(r=!0),r||n.lineWrapping&&Math.abs(D-this.contentDOMWidth)>n.charWidth){let{lineHeight:w,charWidth:_,textHeight:K}=e.docView.measureTextSize();r=w>0&&n.refresh(o,w,_,K,Math.max(5,D/_),R),r&&(e.docView.minWidth=0,c|=16)}E>0&&h>0?l=Math.max(E,h):E<0&&h<0&&(l=Math.min(E,h)),KeA();for(let w of this.viewports){let _=w.from==this.viewport.from?R:e.docView.measureVisibleLineHeights(w);this.heightMap=(r?gc.empty().applyChanges(this.stateDeco,In.empty,this.heightOracle,[new Rg(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(n,0,r,new YL(w.from,_))}NE&&(c|=2)}let L=!this.viewportIsAppropriate(this.viewport,l)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return L&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(l,this.scrollTarget),c|=this.updateForViewport()),(c&2||L)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(r?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,A){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),n=this.heightMap,o=this.heightOracle,{visibleTop:r,visibleBottom:s}=this,a=new RE(n.lineAt(r-i*1e3,Po.ByHeight,o,0,0).from,n.lineAt(s+(1-i)*1e3,Po.ByHeight,o,0,0).to);if(A){let{head:c}=A.range;if(ca.to){let l=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),I=n.lineAt(c,Po.ByPos,o,0,0),C;A.y=="center"?C=(I.top+I.bottom)/2-l/2:A.y=="start"||A.y=="nearest"&&c=s+Math.max(10,Math.min(i,250)))&&n>r-2*1e3&&o>1,r=n<<1;if(this.defaultTextDirection!=lo.LTR&&!i)return[];let s=[],a=(l,I,C,d)=>{if(I-ll&&uu.from>=C.from&&u.to<=C.to&&Math.abs(u.from-l)u.fromD));if(!h){if(IL.from<=I&&L.to>=I)){let L=A.moveToLineBoundary(ae.cursor(I),!1,!0).head;L>l&&(I=L)}let u=this.gapSize(C,l,I,d),D=i||u<2e6?u:2e6;h=new X4(l,I,u,D)}s.push(h)},c=l=>{if(l.length2e6)for(let _ of e)_.from>=l.from&&_.froml.from&&a(l.from,d,l,I),BA.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let A=this.stateDeco;this.lineGaps.length&&(A=A.concat(this.lineGapDeco));let i=[];co.spans(A,this.viewport.from,this.viewport.to,{span(o,r){i.push({from:o,to:r})},point(){}},20);let n=0;if(i.length!=this.visibleRanges.length)n=12;else for(let o=0;o=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(A=>A.from<=e&&A.to>=e)||P4(this.heightMap.lineAt(e,Po.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(A=>A.top<=e&&A.bottom>=e)||P4(this.heightMap.lineAt(this.scaler.fromDOM(e),Po.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let A=this.lineBlockAtHeight(e+8);return A.from>=this.viewport.from||this.viewportLines[0].top-e>200?A:this.viewportLines[0]}elementAtHeight(e){return P4(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},RE=class{constructor(e,A){this.from=e,this.to=A}};function GxA(t,e,A){let i=[],n=t,o=0;return co.spans(A,t,e,{span(){},point(r,s){r>n&&(i.push({from:n,to:r}),o+=r-n),n=s}},20),n=1)return e[e.length-1].to;let i=Math.floor(t*A);for(let n=0;;n++){let{from:o,to:r}=e[n],s=r-o;if(i<=s)return o+i;i-=s}}function fw(t,e){let A=0;for(let{from:i,to:n}of t.ranges){if(e<=n){A+=e-i;break}A+=n-i}return A/t.total}function UxA(t,e){for(let A of t)if(e(A))return A}var JeA={toDOM(t){return t},fromDOM(t){return t},scale:1,eq(t){return t==this}},OL=class t{constructor(e,A,i){let n=0,o=0,r=0;this.viewports=i.map(({from:s,to:a})=>{let c=A.lineAt(s,Po.ByPos,e,0,0).top,l=A.lineAt(a,Po.ByPos,e,0,0).bottom;return n+=l-c,{from:s,to:a,top:c,bottom:l,domTop:0,domBottom:0}}),this.scale=(7e6-n)/(A.height-n);for(let s of this.viewports)s.domTop=r+(s.top-o)*this.scale,r=s.domBottom=s.domTop+(s.bottom-s.top),o=s.bottom}toDOM(e){for(let A=0,i=0,n=0;;A++){let o=AA.from==e.viewports[i].from&&A.to==e.viewports[i].to):!1}};function P4(t,e){if(e.scale==1)return t;let A=e.toDOM(t.top),i=e.toDOM(t.bottom);return new kg(t.from,t.length,A,i-A,Array.isArray(t._content)?t._content.map(n=>P4(n,e)):t._content)}var mw=qe.define({combine:t=>t.join(" ")}),EL=qe.define({combine:t=>t.indexOf(!0)>-1}),PL=Kc.newName(),PtA=Kc.newName(),jtA=Kc.newName(),qtA={"&light":"."+PtA,"&dark":"."+jtA};function jL(t,e,A){return new Kc(e,{finish(i){return/&/.test(i)?i.replace(/&\w*/,n=>{if(n=="&")return t;if(!A||!A[n])throw new RangeError(`Unsupported selector: ${n}`);return A[n]}):t+" "+i}})}var KxA=jL("."+PL,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},qtA),YxA={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},QL=At.ie&&At.ie_version<=11,qL=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new pL,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(A=>{for(let i of A)this.queue.push(i);(At.ie&&At.ie_version<=11||At.ios&&e.composing)&&A.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&At.android&&e.constructor.EDIT_CONTEXT!==!1&&!(At.chrome&&At.chrome_version<126)&&(this.editContext=new VL(e),e.state.facet(H0)&&(e.contentDOM.editContext=this.editContext.editContext)),QL&&(this.onCharData=A=>{this.queue.push({target:A.target,type:"characterData",oldValue:A.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var A;((A=this.view.docView)===null||A===void 0?void 0:A.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),A.length>0&&A[A.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(A=>{A.length>0&&A[A.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((A,i)=>A!=e[i]))){this.gapIntersection.disconnect();for(let A of e)this.gapIntersection.observe(A);this.gaps=e}}onSelectionChange(e){let A=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,n=this.selectionRange;if(i.state.facet(H0)?i.root.activeElement!=this.dom:!Dw(this.dom,n))return;let o=n.anchorNode&&i.docView.nearest(n.anchorNode);if(o&&o.ignoreEvent(e)){A||(this.selectionChanged=!1);return}(At.ie&&At.ie_version<=11||At.android&&At.chrome)&&!i.state.selection.main.empty&&n.focusNode&&q4(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,A=e3(e.root);if(!A)return!1;let i=At.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&JxA(this.view,A)||A;if(!i||this.selectionRange.eq(i))return!1;let n=Dw(this.dom,i);return n&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let o=this.delayedAndroidKey;o&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=o.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&o.force&&FE(this.dom,o.key,o.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(n)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:A,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let A=-1,i=-1,n=!1;for(let o of e){let r=this.readMutation(o);r&&(r.typeOver&&(n=!0),A==-1?{from:A,to:i}=r:(A=Math.min(r.from,A),i=Math.max(r.to,i)))}return{from:A,to:i,typeOver:n}}readChange(){let{from:e,to:A,typeOver:i}=this.processRecords(),n=this.selectionChanged&&Dw(this.dom,this.selectionRange);if(e<0&&!n)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let o=new NL(this.view,e,A,i);return this.view.docView.domChanged={newSel:o.newSel?o.newSel.main:null},o}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let A=this.readChange();if(!A)return this.view.requestMeasure(),!1;let i=this.view.state,n=GtA(this.view,A);return this.view.state==i&&(A.domChanged||A.newSel&&!A.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),n}readMutation(e){let A=this.view.docView.nearest(e.target);if(!A||A.ignoreMutation(e))return null;if(A.markDirty(e.type=="attributes"),e.type=="attributes"&&(A.flags|=4),e.type=="childList"){let i=TeA(A,e.previousSibling||e.target.previousSibling,-1),n=TeA(A,e.nextSibling||e.target.nextSibling,1);return{from:i?A.posAfter(i):A.posAtStart,to:n?A.posBefore(n):A.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:A.posAtStart,to:A.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(H0)!=e.state.facet(H0)&&(e.view.contentDOM.editContext=e.state.facet(H0)?this.editContext.editContext:null))}destroy(){var e,A,i;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(A=this.gapIntersection)===null||A===void 0||A.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect();for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function TeA(t,e,A){for(;e;){let i=Fo.get(e);if(i&&i.parent==t)return i;let n=e.parentNode;e=n!=t.dom?n:A>0?e.nextSibling:e.previousSibling}return null}function HeA(t,e){let A=e.startContainer,i=e.startOffset,n=e.endContainer,o=e.endOffset,r=t.docView.domAtPos(t.state.selection.main.anchor);return q4(r.node,r.offset,n,o)&&([A,i,n,o]=[n,o,A,i]),{anchorNode:A,anchorOffset:i,focusNode:n,focusOffset:o}}function JxA(t,e){if(e.getComposedRanges){let n=e.getComposedRanges(t.root)[0];if(n)return HeA(t,n)}let A=null;function i(n){n.preventDefault(),n.stopImmediatePropagation(),A=n.getTargetRanges()[0]}return t.contentDOM.addEventListener("beforeinput",i,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",i,!0),A?HeA(t,A):null}var VL=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let A=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=i=>{let n=e.state.selection.main,{anchor:o,head:r}=n,s=this.toEditorPos(i.updateRangeStart),a=this.toEditorPos(i.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:i.updateRangeStart,editorBase:s,drifted:!1});let c={from:s,to:a,insert:In.of(i.text.split(` -`))};if(c.from==this.from&&othis.to&&(c.to=o),c.from==c.to&&!c.insert.length){let l=ae.single(this.toEditorPos(i.selectionStart),this.toEditorPos(i.selectionEnd));l.main.eq(n)||e.dispatch({selection:l,userEvent:"select"});return}if((At.mac||At.android)&&c.from==r-1&&/^\. ?$/.test(i.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(c={from:s,to:a,insert:In.of([i.text.replace("."," ")])}),this.pendingContextChange=c,!e.state.readOnly){let l=this.to-this.from+(c.to-c.from+c.insert.length);CF(e,c,ae.single(this.toEditorPos(i.selectionStart,l),this.toEditorPos(i.selectionEnd,l)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state))},this.handlers.characterboundsupdate=i=>{let n=[],o=null;for(let r=this.toEditorPos(i.rangeStart),s=this.toEditorPos(i.rangeEnd);r{let n=[];for(let o of i.getTextFormats()){let r=o.underlineStyle,s=o.underlineThickness;if(r!="None"&&s!="None"){let a=this.toEditorPos(o.rangeStart),c=this.toEditorPos(o.rangeEnd);if(a{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:i}=this.composing;this.composing=null,i&&this.reset(e.state)}};for(let i in this.handlers)A.addEventListener(i,this.handlers[i]);this.measureReq={read:i=>{this.editContext.updateControlBounds(i.contentDOM.getBoundingClientRect());let n=e3(i.root);n&&n.rangeCount&&this.editContext.updateSelectionBounds(n.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let A=0,i=!1,n=this.pendingContextChange;return e.changes.iterChanges((o,r,s,a,c)=>{if(i)return;let l=c.length-(r-o);if(n&&r>=n.to)if(n.from==o&&n.to==r&&n.insert.eq(c)){n=this.pendingContextChange=null,A+=l,this.to+=l;return}else n=null,this.revertPending(e.state);if(o+=A,r+=A,r<=this.from)this.from+=l,this.to+=l;else if(othis.to||this.to-this.from+c.length>3e4){i=!0;return}this.editContext.updateText(this.toContextPos(o),this.toContextPos(r),c.toString()),this.to+=l}A+=l}),n&&!i&&this.revertPending(e.state),!i}update(e){let A=this.pendingContextChange,i=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(i.from,i.to)&&e.transactions.some(n=>!n.isUserEvent("input.type")&&n.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||A)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:A}=e.selection.main;this.from=Math.max(0,A-1e4),this.to=Math.min(e.doc.length,A+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let A=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(A.from),this.toContextPos(A.from+A.insert.length),e.doc.sliceString(A.from,A.to))}setSelection(e){let{main:A}=e.selection,i=this.toContextPos(Math.max(this.from,Math.min(this.to,A.anchor))),n=this.toContextPos(A.head);(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=n)&&this.editContext.updateSelection(i,n)}rangeIsValid(e){let{head:A}=e.selection.main;return!(this.from>0&&A-this.from<500||this.to1e4*3)}toEditorPos(e,A=this.to-this.from){e=Math.min(e,A);let i=this.composing;return i&&i.drifted?i.editorBase+(e-i.contextBase):e+this.from}toContextPos(e){let A=this.composing;return A&&A.drifted?A.contextBase+(e-A.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},qt=(()=>{class t{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(A={}){var i;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),A.parent&&A.parent.appendChild(this.dom);let{dispatch:n}=A;this.dispatchTransactions=A.dispatchTransactions||n&&(o=>o.forEach(r=>n(r,this)))||(o=>this.update(o)),this.dispatch=this.dispatch.bind(this),this._root=A.root||LRA(A.parent)||document,this.viewState=new Kw(A.state||hr.create(A)),A.scrollTo&&A.scrollTo.is(Ew)&&(this.viewState.scrollTarget=A.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(SE).map(o=>new W4(o));for(let o of this.plugins)o.update(this);this.observer=new qL(this),this.inputState=new _L(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Nw(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((i=document.fonts)===null||i===void 0)&&i.ready&&document.fonts.ready.then(()=>this.requestMeasure())}dispatch(...A){let i=A.length==1&&A[0]instanceof vg?A:A.length==1&&Array.isArray(A[0])?A[0]:[this.state.update(...A)];this.dispatchTransactions(i,this)}update(A){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let i=!1,n=!1,o,r=this.state;for(let d of A){if(d.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=d.state}if(this.destroyed){this.viewState.state=r;return}let s=this.hasFocus,a=0,c=null;A.some(d=>d.annotation(HtA))?(this.inputState.notifiedFocused=s,a=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,c=ztA(r,s),c||(a=1));let l=this.observer.delayedAndroidKey,I=null;if(l?(this.observer.clearDelayedAndroidKey(),I=this.observer.readChange(),(I&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(I=null)):this.observer.clear(),r.facet(hr.phrases)!=this.state.facet(hr.phrases))return this.setState(r);o=Fw.create(this,r,A),o.flags|=a;let C=this.viewState.scrollTarget;try{this.updateState=2;for(let d of A){if(C&&(C=C.map(d.changes)),d.scrollIntoView){let{main:B}=d.state.selection;C=new Z4(B.empty?B:ae.cursor(B.head,B.head>B.anchor?-1:1))}for(let B of d.effects)B.is(Ew)&&(C=B.value.clip(this.state))}this.viewState.update(o,C),this.bidiCache=Yw.update(this.bidiCache,o.changes),o.empty||(this.updatePlugins(o),this.inputState.update(o)),i=this.docView.update(o),this.state.facet(H4)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(A),this.docView.updateSelection(i,A.some(d=>d.isUserEvent("select.pointer")))}finally{this.updateState=0}if(o.startState.facet(mw)!=o.state.facet(mw)&&(this.viewState.mustMeasureContent=!0),(i||n||C||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),i&&this.docViewUpdate(),!o.empty)for(let d of this.state.facet(CL))try{d(o)}catch(B){Xr(this.state,B,"update listener")}(c||I)&&Promise.resolve().then(()=>{c&&this.state==c.startState&&this.dispatch(c),I&&!GtA(this,I)&&l.force&&FE(this.contentDOM,l.key,l.keyCode)})}setState(A){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=A;return}this.updateState=2;let i=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new Kw(A),this.plugins=A.facet(SE).map(n=>new W4(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView.destroy(),this.docView=new Nw(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}i&&this.focus(),this.requestMeasure()}updatePlugins(A){let i=A.startState.facet(SE),n=A.state.facet(SE);if(i!=n){let o=[];for(let r of n){let s=i.indexOf(r);if(s<0)o.push(new W4(r));else{let a=this.plugins[s];a.mustUpdate=A,o.push(a)}}for(let r of this.plugins)r.mustUpdate!=A&&r.destroy(this);this.plugins=o,this.pluginMap.clear()}else for(let o of this.plugins)o.mustUpdate=A;for(let o=0;o-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,A&&this.observer.forceFlush();let i=null,n=this.scrollDOM,o=n.scrollTop*this.scaleY,{scrollAnchorPos:r,scrollAnchorHeight:s}=this.viewState;Math.abs(o-this.viewState.scrollTop)>1&&(s=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(s<0)if(stA(n))r=-1,s=this.viewState.heightMap.height;else{let B=this.viewState.scrollAnchorAt(o);r=B.from,s=B.top}this.updateState=1;let c=this.viewState.measure(this);if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let l=[];c&4||([this.measureRequests,l]=[l,this.measureRequests]);let I=l.map(B=>{try{return B.read(this)}catch(E){return Xr(this.state,E),zeA}}),C=Fw.create(this,this.state,[]),d=!1;C.flags|=c,i?i.flags|=c:i=C,this.updateState=2,C.empty||(this.updatePlugins(C),this.inputState.update(C),this.updateAttrs(),d=this.docView.update(C),d&&this.docViewUpdate());for(let B=0;B1||E<-1){o=o+E,n.scrollTop=o/this.scaleY,s=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(i&&!i.empty)for(let a of this.state.facet(CL))a(i)}get themeClasses(){return PL+" "+(this.state.facet(EL)?jtA:PtA)+" "+this.state.facet(mw)}updateAttrs(){let A=OeA(this,peA,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),i={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(H0)?"true":"false",class:"cm-content",style:`${At.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(i["aria-readonly"]="true"),OeA(this,RL,i);let n=this.observer.ignore(()=>{let o=bL(this.contentDOM,this.contentAttrs,i),r=bL(this.dom,this.editorAttrs,A);return o||r});return this.editorAttrs=A,this.contentAttrs=i,n}showAnnouncements(A){let i=!0;for(let n of A)for(let o of n.effects)if(o.is(t.announce)){i&&(this.announceDOM.textContent=""),i=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=o.value}}mountStyles(){this.styleModules=this.state.facet(H4);let A=this.state.facet(t.cspNonce);Kc.mount(this.root,this.styleModules.concat(KxA).reverse(),A?{nonce:A}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(A){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),A){if(this.measureRequests.indexOf(A)>-1)return;if(A.key!=null){for(let i=0;in.plugin==A)||null),i&&i.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(A){return this.readMeasured(),this.viewState.elementAtHeight(A)}lineBlockAtHeight(A){return this.readMeasured(),this.viewState.lineBlockAtHeight(A)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(A){return this.viewState.lineBlockAt(A)}get contentHeight(){return this.viewState.contentHeight}moveByChar(A,i,n){return BL(this,A,MeA(this,A,i,n))}moveByGroup(A,i){return BL(this,A,MeA(this,A,i,n=>lxA(this,A.head,n)))}visualLineSide(A,i){let n=this.bidiSpans(A),o=this.textDirectionAt(A.from),r=n[i?n.length-1:0];return ae.cursor(r.side(i,o)+A.from,r.forward(!i,o)?1:-1)}moveToLineBoundary(A,i,n=!0){return cxA(this,A,i,n)}moveVertically(A,i,n){return BL(this,A,gxA(this,A,i,n))}domAtPos(A){return this.docView.domAtPos(A)}posAtDOM(A,i=0){return this.docView.posFromDOM(A,i)}posAtCoords(A,i=!0){return this.readMeasured(),_tA(this,A,i)}coordsAtPos(A,i=1){this.readMeasured();let n=this.docView.coordsAt(A,i);if(!n||n.left==n.right)return n;let o=this.state.doc.lineAt(A),r=this.bidiSpans(o),s=r[Sg.find(r,A-o.from,-1,i)];return Pw(n,s.dir==lo.LTR==i>0)}coordsForChar(A){return this.readMeasured(),this.docView.coordsForChar(A)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(A){return!this.state.facet(meA)||Athis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(A))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(A){if(A.length>TxA)return mtA(A.length);let i=this.textDirectionAt(A.from),n;for(let r of this.bidiCache)if(r.from==A.from&&r.dir==i&&(r.fresh||ftA(r.isolates,n=weA(this,A))))return r.order;n||(n=weA(this,A));let o=jRA(A.text,i,n);return this.bidiCache.push(new Yw(A.from,A.to,i,n,!0,o)),o}get hasFocus(){var A;return(this.dom.ownerDocument.hasFocus()||At.safari&&((A=this.inputState)===null||A===void 0?void 0:A.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{otA(this.contentDOM),this.docView.updateSelection()})}setRoot(A){this._root!=A&&(this._root=A,this.observer.setWindow((A.nodeType==9?A:A.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let A of this.plugins)A.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(A,i={}){return Ew.of(new Z4(typeof A=="number"?ae.cursor(A):A,i.y,i.x,i.yMargin,i.xMargin))}scrollSnapshot(){let{scrollTop:A,scrollLeft:i}=this.scrollDOM,n=this.viewState.scrollAnchorAt(A);return Ew.of(new Z4(ae.cursor(n.from),"start","start",n.top-A,i,!0))}setTabFocusMode(A){A==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof A=="boolean"?this.inputState.tabFocusMode=A?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+A)}static domEventHandlers(A){return go.define(()=>({}),{eventHandlers:A})}static domEventObservers(A){return go.define(()=>({}),{eventObservers:A})}static theme(A,i){let n=Kc.newName(),o=[mw.of(n),H4.of(jL(`.${n}`,A))];return i&&i.dark&&o.push(EL.of(!0)),o}static baseTheme(A){return Dl.lowest(H4.of(jL("."+PL,A,qtA)))}static findFromDOM(A){var i;let n=A.querySelector(".cm-content"),o=n&&Fo.get(n)||Fo.get(A);return((i=o?.rootView)===null||i===void 0?void 0:i.view)||null}}return t.styleModule=H4,t.inputHandler=btA,t.clipboardInputFilter=cF,t.clipboardOutputFilter=lF,t.scrollHandler=StA,t.focusChangeEffect=MtA,t.perLineTextDirection=meA,t.exceptionSink=vtA,t.updateListener=CL,t.editable=H0,t.mouseSelectionStyle=ytA,t.dragMovesSelection=DtA,t.clickAddsSelectionRange=wtA,t.decorations=a3,t.outerDecorations=xtA,t.atomicRanges=gF,t.bidiIsolatedRanges=LtA,t.scrollMargins=FtA,t.darkTheme=EL,t.cspNonce=qe.define({combine:e=>e.length?e[0]:""}),t.contentAttributes=RL,t.editorAttributes=peA,t.lineWrapping=t.contentAttributes.of({class:"cm-lineWrapping"}),t.announce=Pi.define(),t})(),TxA=4096,zeA={},Yw=class t{constructor(e,A,i,n,o,r){this.from=e,this.to=A,this.dir=i,this.isolates=n,this.fresh=o,this.order=r}static update(e,A){if(A.empty&&!e.some(o=>o.fresh))return e;let i=[],n=e.length?e[e.length-1].dir:lo.LTR;for(let o=Math.max(0,e.length-10);o=0;n--){let o=i[n],r=typeof o=="function"?o(t):o;r&&vL(r,A)}return A}var HxA=At.mac?"mac":At.windows?"win":At.linux?"linux":"key";function zxA(t,e){let A=t.split(/-(?!$)/),i=A[A.length-1];i=="Space"&&(i=" ");let n,o,r,s;for(let a=0;ai.concat(n),[]))),A}function ZtA(t,e,A){return WtA(VtA(t.state),e,t,A)}var p1=null,PxA=4e3;function jxA(t,e=HxA){let A=Object.create(null),i=Object.create(null),n=(r,s)=>{let a=i[r];if(a==null)i[r]=s;else if(a!=s)throw new Error("Key binding "+r+" is used both as a regular binding and as a multi-stroke prefix")},o=(r,s,a,c,l)=>{var I,C;let d=A[r]||(A[r]=Object.create(null)),B=s.split(/ (?!$)/).map(u=>zxA(u,e));for(let u=1;u{let R=p1={view:L,prefix:D,scope:r};return setTimeout(()=>{p1==R&&(p1=null)},PxA),!0}]})}let E=B.join(" ");n(E,!1);let h=d[E]||(d[E]={preventDefault:!1,stopPropagation:!1,run:((C=(I=d._any)===null||I===void 0?void 0:I.run)===null||C===void 0?void 0:C.slice())||[]});a&&h.run.push(a),c&&(h.preventDefault=!0),l&&(h.stopPropagation=!0)};for(let r of t){let s=r.scope?r.scope.split(" "):["editor"];if(r.any)for(let c of s){let l=A[c]||(A[c]=Object.create(null));l._any||(l._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:I}=r;for(let C in l)l[C].run.push(d=>I(d,ZL))}let a=r[e]||r.key;if(a)for(let c of s)o(c,a,r.run,r.preventDefault,r.stopPropagation),r.shift&&o(c,"Shift-"+a,r.shift,r.preventDefault,r.stopPropagation)}return A}var ZL=null;function WtA(t,e,A,i){ZL=e;let n=geA(e),o=Bs(n,0),r=lc(o)==n.length&&n!=" ",s="",a=!1,c=!1,l=!1;p1&&p1.view==A&&p1.scope==i&&(s=p1.prefix+" ",KtA.indexOf(e.keyCode)<0&&(c=!0,p1=null));let I=new Set,C=h=>{if(h){for(let u of h.run)if(!I.has(u)&&(I.add(u),u(A)))return h.stopPropagation&&(l=!0),!0;h.preventDefault&&(h.stopPropagation&&(l=!0),c=!0)}return!1},d=t[i],B,E;return d&&(C(d[s+pw(n,e,!r)])?a=!0:r&&(e.altKey||e.metaKey||e.ctrlKey)&&!(At.windows&&e.ctrlKey&&e.altKey)&&!(At.mac&&e.altKey&&!e.ctrlKey)&&(B=T0[e.keyCode])&&B!=n?(C(d[s+pw(B,e,!0)])||e.shiftKey&&(E=ME[e.keyCode])!=n&&E!=B&&C(d[s+pw(E,e,!1)]))&&(a=!0):r&&e.shiftKey&&C(d[s+pw(n,e,!0)])&&(a=!0),!a&&C(d._any)&&(a=!0)),c&&(a=!0),a&&l&&e.stopPropagation(),ZL=null,a}var c3=class t{constructor(e,A,i,n,o){this.className=e,this.left=A,this.top=i,this.width=n,this.height=o}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,A){return A.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,A,i){if(i.empty){let n=e.coordsAtPos(i.head,i.assoc||1);if(!n)return[];let o=XtA(e);return[new t(A,n.left-o.left,n.top-o.top,null,n.bottom-n.top)]}else return qxA(e,A,i)}};function XtA(t){let e=t.scrollDOM.getBoundingClientRect();return{left:(t.textDirection==lo.LTR?e.left:e.right-t.scrollDOM.clientWidth*t.scaleX)-t.scrollDOM.scrollLeft*t.scaleX,top:e.top-t.scrollDOM.scrollTop*t.scaleY}}function jeA(t,e,A,i){let n=t.coordsAtPos(e,A*2);if(!n)return i;let o=t.dom.getBoundingClientRect(),r=(n.top+n.bottom)/2,s=t.posAtCoords({x:o.left+1,y:r}),a=t.posAtCoords({x:o.right-1,y:r});return s==null||a==null?i:{from:Math.max(i.from,Math.min(s,a)),to:Math.min(i.to,Math.max(s,a))}}function qxA(t,e,A){if(A.to<=t.viewport.from||A.from>=t.viewport.to)return[];let i=Math.max(A.from,t.viewport.from),n=Math.min(A.to,t.viewport.to),o=t.textDirection==lo.LTR,r=t.contentDOM,s=r.getBoundingClientRect(),a=XtA(t),c=r.querySelector(".cm-line"),l=c&&window.getComputedStyle(c),I=s.left+(l?parseInt(l.paddingLeft)+Math.min(0,parseInt(l.textIndent)):0),C=s.right-(l?parseInt(l.paddingRight):0),d=LL(t,i,1),B=LL(t,n,-1),E=d.type==$s.Text?d:null,h=B.type==$s.Text?B:null;if(E&&(t.lineWrapping||d.widgetLineBreaks)&&(E=jeA(t,i,1,E)),h&&(t.lineWrapping||B.widgetLineBreaks)&&(h=jeA(t,n,-1,h)),E&&h&&E.from==h.from&&E.to==h.to)return D(L(A.from,A.to,E));{let w=E?L(A.from,null,E):R(d,!1),_=h?L(null,A.to,h):R(B,!0),K=[];return(E||d).to<(h||B).from-(E&&h?1:0)||d.widgetLineBreaks>1&&w.bottom+t.defaultLineHeight/2<_.top?K.push(u(I,w.bottom,C,_.top)):w.bottom<_.top&&t.elementAtHeight((w.bottom+_.top)/2).type==$s.Text&&(w.bottom=_.top=(w.bottom+_.top)/2),D(w).concat(K).concat(D(_))}function u(w,_,K,z){return new c3(e,w-a.left,_-a.top,K-w,z-_)}function D({top:w,bottom:_,horizontal:K}){let z=[];for(let U=0;Uj&&QA.from=lA)break;pA>BA&&q(Math.max(cA,BA),w==null&&cA<=j,Math.min(pA,lA),_==null&&pA>=gA,tA.dir)}if(BA=vA.to+1,BA>=lA)break}return H.length==0&&q(j,w==null,gA,_==null,t.textDirection),{top:z,bottom:U,horizontal:H}}function R(w,_){let K=s.top+(_?w.top:w.bottom);return{top:K,bottom:K,horizontal:[]}}}function VxA(t,e){return t.constructor==e.constructor&&t.eq(e)}var WL=class{constructor(e,A){this.view=e,this.layer=A,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),A.above&&this.dom.classList.add("cm-layer-above"),A.class&&this.dom.classList.add(A.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),A.mount&&A.mount(this.dom,e)}update(e){e.startState.facet(Mw)!=e.state.facet(Mw)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let A=0,i=e.facet(Mw);for(;A!VxA(A,this.drawn[i]))){let A=this.dom.firstChild,i=0;for(let n of e)n.update&&A&&n.constructor&&this.drawn[i].constructor&&n.update(A,this.drawn[i])?(A=A.nextSibling,i++):this.dom.insertBefore(n.draw(),A);for(;A;){let n=A.nextSibling;A.remove(),A=n}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},Mw=qe.define();function $tA(t){return[go.define(e=>new WL(e,t)),Mw.of(t)]}var l3=qe.define({combine(t){return Wr(t,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,A)=>Math.min(e,A),drawRangeCursor:(e,A)=>e||A})}});function AiA(t={}){return[l3.of(t),ZxA,WxA,XxA,ktA.of(!0)]}function eiA(t){return t.startState.facet(l3)!=t.state.facet(l3)}var ZxA=$tA({above:!0,markers(t){let{state:e}=t,A=e.facet(l3),i=[];for(let n of e.selection.ranges){let o=n==e.selection.main;if(n.empty||A.drawRangeCursor){let r=o?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",s=n.empty?n:ae.cursor(n.head,n.head>n.anchor?-1:1);for(let a of c3.forRange(t,r,s))i.push(a)}}return i},update(t,e){t.transactions.some(i=>i.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let A=eiA(t);return A&&qeA(t.state,e),t.docChanged||t.selectionSet||A},mount(t,e){qeA(e.state,t)},class:"cm-cursorLayer"});function qeA(t,e){e.style.animationDuration=t.facet(l3).cursorBlinkRate+"ms"}var WxA=$tA({above:!1,markers(t){return t.state.selection.ranges.map(e=>e.empty?[]:c3.forRange(t,"cm-selectionBackground",e)).reduce((e,A)=>e.concat(A))},update(t,e){return t.docChanged||t.selectionSet||t.viewportChanged||eiA(t)},class:"cm-selectionLayer"}),XxA=Dl.highest(qt.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),tiA=Pi.define({map(t,e){return t==null?null:e.mapPos(t)}}),j4=Ar.define({create(){return null},update(t,e){return t!=null&&(t=e.changes.mapPos(t)),e.effects.reduce((A,i)=>i.is(tiA)?i.value:A,t)}}),$xA=go.fromClass(class{constructor(t){this.view=t,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(t){var e;let A=t.state.field(j4);A==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(t.startState.field(j4)!=A||t.docChanged||t.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:t}=this,e=t.state.field(j4),A=e!=null&&t.coordsAtPos(e);if(!A)return null;let i=t.scrollDOM.getBoundingClientRect();return{left:A.left-i.left+t.scrollDOM.scrollLeft*t.scaleX,top:A.top-i.top+t.scrollDOM.scrollTop*t.scaleY,height:A.bottom-A.top}}drawCursor(t){if(this.cursor){let{scaleX:e,scaleY:A}=this.view;t?(this.cursor.style.left=t.left/e+"px",this.cursor.style.top=t.top/A+"px",this.cursor.style.height=t.height/A+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(t){this.view.state.field(j4)!=t&&this.view.dispatch({effects:tiA.of(t)})}},{eventObservers:{dragover(t){this.setDropPos(this.view.posAtCoords({x:t.clientX,y:t.clientY}))},dragleave(t){(t.target==this.view.contentDOM||!this.view.contentDOM.contains(t.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function iiA(){return[j4,$xA]}function VeA(t,e,A,i,n){e.lastIndex=0;for(let o=t.iterRange(A,i),r=A,s;!o.next().done;r+=o.value.length)if(!o.lineBreak)for(;s=e.exec(o.value);)n(r+s.index,s)}function ALA(t,e){let A=t.visibleRanges;if(A.length==1&&A[0].from==t.viewport.from&&A[0].to==t.viewport.to)return A;let i=[];for(let{from:n,to:o}of A)n=Math.max(t.state.doc.lineAt(n).from,n-e),o=Math.min(t.state.doc.lineAt(o).to,o+e),i.length&&i[i.length-1].to>=n?i[i.length-1].to=o:i.push({from:n,to:o});return i}var XL=class{constructor(e){let{regexp:A,decoration:i,decorate:n,boundary:o,maxLength:r=1e3}=e;if(!A.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=A,n)this.addMatch=(s,a,c,l)=>n(l,c,c+s[0].length,s,a);else if(typeof i=="function")this.addMatch=(s,a,c,l)=>{let I=i(s,a,c);I&&l(c,c+s[0].length,I)};else if(i)this.addMatch=(s,a,c,l)=>l(c,c+s[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=o,this.maxLength=r}createDeco(e){let A=new ds,i=A.add.bind(A);for(let{from:n,to:o}of ALA(e,this.maxLength))VeA(e.state.doc,this.regexp,n,o,(r,s)=>this.addMatch(s,e,r,i));return A.finish()}updateDeco(e,A){let i=1e9,n=-1;return e.docChanged&&e.changes.iterChanges((o,r,s,a)=>{a>=e.view.viewport.from&&s<=e.view.viewport.to&&(i=Math.min(s,i),n=Math.max(a,n))}),e.viewportMoved||n-i>1e3?this.createDeco(e.view):n>-1?this.updateRange(e.view,A.map(e.changes),i,n):A}updateRange(e,A,i,n){for(let o of e.visibleRanges){let r=Math.max(o.from,i),s=Math.min(o.to,n);if(s>=r){let a=e.state.doc.lineAt(r),c=a.toa.from;r--)if(this.boundary.test(a.text[r-1-a.from])){l=r;break}for(;sC.push(u.range(E,h));if(a==c)for(this.regexp.lastIndex=l-a.from;(d=this.regexp.exec(a.text))&&d.indexthis.addMatch(h,e,E,B));A=A.update({filterFrom:l,filterTo:I,filter:(E,h)=>EI,add:C})}}return A}},$L=/x/.unicode!=null?"gu":"g",eLA=new RegExp(`[\0-\b --\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,$L),tLA={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},hL=null;function iLA(){var t;if(hL==null&&typeof document<"u"&&document.body){let e=document.body.style;hL=((t=e.tabSize)!==null&&t!==void 0?t:e.MozTabSize)!=null}return hL||!1}var kw=qe.define({combine(t){let e=Wr(t,{render:null,specialChars:eLA,addSpecialChars:null});return(e.replaceTabs=!iLA())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,$L)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,$L)),e}});function niA(t={}){return[kw.of(t),nLA()]}var ZeA=null;function nLA(){return ZeA||(ZeA=go.fromClass(class{constructor(t){this.view=t,this.decorations=ut.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(t.state.facet(kw)),this.decorations=this.decorator.createDeco(t)}makeDecorator(t){return new XL({regexp:t.specialChars,decoration:(e,A,i)=>{let{doc:n}=A.state,o=Bs(e[0],0);if(o==9){let r=n.lineAt(i),s=A.state.tabSize,a=J0(r.text,s,i-r.from);return ut.replace({widget:new eF((s-a%s)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[o]||(this.decorationCache[o]=ut.replace({widget:new AF(t,o)}))},boundary:t.replaceTabs?void 0:/[^]/})}update(t){let e=t.state.facet(kw);t.startState.facet(kw)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(t.view)):this.decorations=this.decorator.updateDeco(t,this.decorations)}},{decorations:t=>t.decorations}))}var oLA="\u2022";function rLA(t){return t>=32?oLA:t==10?"\u2424":String.fromCharCode(9216+t)}var AF=class extends Ic{constructor(e,A){super(),this.options=e,this.code=A}eq(e){return e.code==this.code}toDOM(e){let A=rLA(this.code),i=e.state.phrase("Control character")+" "+(tLA[this.code]||"0x"+this.code.toString(16)),n=this.options.render&&this.options.render(this.code,i,A);if(n)return n;let o=document.createElement("span");return o.textContent=A,o.title=i,o.setAttribute("aria-label",i),o.className="cm-specialChar",o}ignoreEvent(){return!1}},eF=class extends Ic{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};function oiA(){return aLA}var sLA=ut.line({class:"cm-activeLine"}),aLA=go.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.docChanged||t.selectionSet)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=-1,A=[];for(let i of t.state.selection.ranges){let n=t.lineBlockAt(i.head);n.from>e&&(A.push(sLA.range(n.from)),e=n.from)}return ut.set(A)}},{decorations:t=>t.decorations});var tF=2e3;function cLA(t,e,A){let i=Math.min(e.line,A.line),n=Math.max(e.line,A.line),o=[];if(e.off>tF||A.off>tF||e.col<0||A.col<0){let r=Math.min(e.off,A.off),s=Math.max(e.off,A.off);for(let a=i;a<=n;a++){let c=t.doc.line(a);c.length<=s&&o.push(ae.range(c.from+r,c.to+s))}}else{let r=Math.min(e.col,A.col),s=Math.max(e.col,A.col);for(let a=i;a<=n;a++){let c=t.doc.line(a),l=Cw(c.text,r,t.tabSize,!0);if(l<0)o.push(ae.cursor(c.to));else{let I=Cw(c.text,s,t.tabSize);o.push(ae.range(c.from+l,c.from+I))}}}return o}function lLA(t,e){let A=t.coordsAtPos(t.viewport.from);return A?Math.round(Math.abs((A.left-e)/t.defaultCharacterWidth)):-1}function WeA(t,e){let A=t.posAtCoords({x:e.clientX,y:e.clientY},!1),i=t.state.doc.lineAt(A),n=A-i.from,o=n>tF?-1:n==i.length?lLA(t,e.clientX):J0(i.text,t.state.tabSize,A-i.from);return{line:i.number,col:o,off:n}}function gLA(t,e){let A=WeA(t,e),i=t.state.selection;return A?{update(n){if(n.docChanged){let o=n.changes.mapPos(n.startState.doc.line(A.line).from),r=n.state.doc.lineAt(o);A={line:r.number,col:A.col,off:Math.min(A.off,r.length)},i=i.map(n.changes)}},get(n,o,r){let s=WeA(t,n);if(!s)return i;let a=cLA(t.state,A,s);return a.length?r?ae.create(a.concat(i.ranges)):ae.create(a):i}}:null}function riA(t){let e=t?.eventFilter||(A=>A.altKey&&A.button==0);return qt.mouseSelectionStyle.of((A,i)=>e(i)?gLA(A,i):null)}var ILA={Alt:[18,t=>!!t.altKey],Control:[17,t=>!!t.ctrlKey],Shift:[16,t=>!!t.shiftKey],Meta:[91,t=>!!t.metaKey]},CLA={style:"cursor: crosshair"};function siA(t={}){let[e,A]=ILA[t.key||"Alt"],i=go.fromClass(class{constructor(n){this.view=n,this.isDown=!1}set(n){this.isDown!=n&&(this.isDown=n,this.view.update([]))}},{eventObservers:{keydown(n){this.set(n.keyCode==e||A(n))},keyup(n){(n.keyCode==e||!A(n))&&this.set(!1)},mousemove(n){this.set(A(n))}}});return[i,qt.contentAttributes.of(n=>{var o;return!((o=n.plugin(i))===null||o===void 0)&&o.isDown?CLA:null})]}var z4="-10000px",Jw=class{constructor(e,A,i,n){this.facet=A,this.createTooltipView=i,this.removeTooltipView=n,this.input=e.state.facet(A),this.tooltips=this.input.filter(r=>r);let o=null;this.tooltipViews=this.tooltips.map(r=>o=i(r,o))}update(e,A){var i;let n=e.state.facet(this.facet),o=n.filter(a=>a);if(n===this.input){for(let a of this.tooltipViews)a.update&&a.update(e);return!1}let r=[],s=A?[]:null;for(let a=0;aA[c]=a),A.length=s.length),this.input=n,this.tooltips=o,this.tooltipViews=r,!0}};function dLA(t){let e=t.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}var uL=qe.define({combine:t=>{var e,A,i;return{position:At.ios?"absolute":((e=t.find(n=>n.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((A=t.find(n=>n.parent))===null||A===void 0?void 0:A.parent)||null,tooltipSpace:((i=t.find(n=>n.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||dLA}}}),XeA=new WeakMap,dF=go.fromClass(class{constructor(t){this.view=t,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=t.state.facet(uL);this.position=e.position,this.parent=e.parent,this.classes=t.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new Jw(t,GE,(A,i)=>this.createTooltip(A,i),A=>{this.resizeObserver&&this.resizeObserver.unobserve(A.dom),A.dom.remove()}),this.above=this.manager.tooltips.map(A=>!!A.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(A=>{Date.now()>this.lastTransaction-50&&A.length>0&&A[A.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),t.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let t of this.manager.tooltipViews)this.intersectionObserver.observe(t.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(t){t.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(t,this.above);e&&this.observeIntersection();let A=e||t.geometryChanged,i=t.state.facet(uL);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let n of this.manager.tooltipViews)n.dom.style.position=this.position;A=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let n of this.manager.tooltipViews)this.container.appendChild(n.dom);A=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);A&&this.maybeMeasure()}createTooltip(t,e){let A=t.create(this.view),i=e?e.dom:null;if(A.dom.classList.add("cm-tooltip"),t.arrow&&!A.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let n=document.createElement("div");n.className="cm-tooltip-arrow",A.dom.appendChild(n)}return A.dom.style.position=this.position,A.dom.style.top=z4,A.dom.style.left="0px",this.container.insertBefore(A.dom,i),A.mount&&A.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(A.dom),A}destroy(){var t,e,A;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),(t=i.destroy)===null||t===void 0||t.call(i);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(A=this.intersectionObserver)===null||A===void 0||A.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let t=1,e=1,A=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:o}=this.manager.tooltipViews[0];if(At.gecko)A=o.offsetParent!=this.container.ownerDocument.body;else if(o.style.top==z4&&o.style.left=="0px"){let r=o.getBoundingClientRect();A=Math.abs(r.top+1e4)>1||Math.abs(r.left)>1}}if(A||this.position=="absolute")if(this.parent){let o=this.parent.getBoundingClientRect();o.width&&o.height&&(t=o.width/this.parent.offsetWidth,e=o.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:e}=this.view.viewState);let i=this.view.scrollDOM.getBoundingClientRect(),n=IF(this.view);return{visible:{left:i.left+n.left,top:i.top+n.top,right:i.right-n.right,bottom:i.bottom-n.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((o,r)=>{let s=this.manager.tooltipViews[r];return s.getCoords?s.getCoords(o.pos):this.view.coordsAtPos(o.pos)}),size:this.manager.tooltipViews.map(({dom:o})=>o.getBoundingClientRect()),space:this.view.state.facet(uL).tooltipSpace(this.view),scaleX:t,scaleY:e,makeAbsolute:A}}writeMeasure(t){var e;if(t.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let s of this.manager.tooltipViews)s.dom.style.position="absolute"}let{visible:A,space:i,scaleX:n,scaleY:o}=t,r=[];for(let s=0;s=Math.min(A.bottom,i.bottom)||I.rightMath.min(A.right,i.right)+.1)){l.style.top=z4;continue}let d=a.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,B=d?7:0,E=C.right-C.left,h=(e=XeA.get(c))!==null&&e!==void 0?e:C.bottom-C.top,u=c.offset||ELA,D=this.view.textDirection==lo.LTR,L=C.width>i.right-i.left?D?i.left:i.right-C.width:D?Math.max(i.left,Math.min(I.left-(d?14:0)+u.x,i.right-E)):Math.min(Math.max(i.left,I.left-E+(d?14:0)-u.x),i.right-E),R=this.above[s];!a.strictSide&&(R?I.top-h-B-u.yi.bottom)&&R==i.bottom-I.bottom>I.top-i.top&&(R=this.above[s]=!R);let w=(R?I.top-i.top:i.bottom-I.bottom)-B;if(wL&&z.top<_+h&&z.bottom>_&&(_=R?z.top-h-2-B:z.bottom+B+2);if(this.position=="absolute"?(l.style.top=(_-t.parent.top)/o+"px",$eA(l,(L-t.parent.left)/n)):(l.style.top=_/o+"px",$eA(l,L/n)),d){let z=I.left+(D?u.x:-u.x)-(L+14-7);d.style.left=z/n+"px"}c.overlap!==!0&&r.push({left:L,top:_,right:K,bottom:_+h}),l.classList.toggle("cm-tooltip-above",R),l.classList.toggle("cm-tooltip-below",!R),c.positioned&&c.positioned(t.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let t of this.manager.tooltipViews)t.dom.style.top=z4}},{eventObservers:{scroll(){this.maybeMeasure()}}});function $eA(t,e){let A=parseInt(t.style.left,10);(isNaN(A)||Math.abs(e-A)>1)&&(t.style.left=e+"px")}var BLA=qt.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),ELA={x:0,y:0},GE=qe.define({enables:[dF,BLA]}),Tw=qe.define({combine:t=>t.reduce((e,A)=>e.concat(A),[])}),Hw=class t{static create(e){return new t(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Jw(e,Tw,(A,i)=>this.createHostedView(A,i),A=>A.dom.remove())}createHostedView(e,A){let i=e.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(i.dom,A?A.dom.nextSibling:this.dom.firstChild),this.mounted&&i.mount&&i.mount(this.view),i}mount(e){for(let A of this.manager.tooltipViews)A.mount&&A.mount(e);this.mounted=!0}positioned(e){for(let A of this.manager.tooltipViews)A.positioned&&A.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let A of this.manager.tooltipViews)(e=A.destroy)===null||e===void 0||e.call(A)}passProp(e){let A;for(let i of this.manager.tooltipViews){let n=i[e];if(n!==void 0){if(A===void 0)A=n;else if(A!==n)return}}return A}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}},QLA=GE.compute([Tw],t=>{let e=t.facet(Tw);return e.length===0?null:{pos:Math.min(...e.map(A=>A.pos)),end:Math.max(...e.map(A=>{var i;return(i=A.end)!==null&&i!==void 0?i:A.pos})),create:Hw.create,above:e[0].above,arrow:e.some(A=>A.arrow)}}),iF=class{constructor(e,A,i,n,o){this.view=e,this.source=A,this.field=i,this.setHover=n,this.hoverTime=o,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;es.bottom||A.xs.right+e.defaultCharacterWidth)return;let a=e.bidiSpans(e.state.doc.lineAt(n)).find(l=>l.from<=n&&l.to>=n),c=a&&a.dir==lo.RTL?-1:1;o=A.x{this.pending==s&&(this.pending=null,a&&!(Array.isArray(a)&&!a.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(a)?a:[a])}))},a=>Xr(e.state,a,"hover tooltip"))}else r&&!(Array.isArray(r)&&!r.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(r)?r:[r])})}get tooltip(){let e=this.view.plugin(dF),A=e?e.manager.tooltips.findIndex(i=>i.create==Hw.create):-1;return A>-1?e.manager.tooltipViews[A]:null}mousemove(e){var A,i;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:n,tooltip:o}=this;if(n.length&&o&&!hLA(o.dom,e)||this.pending){let{pos:r}=n[0]||this.pending,s=(i=(A=n[0])===null||A===void 0?void 0:A.end)!==null&&i!==void 0?i:r;(r==s?this.view.posAtCoords(this.lastMove)!=r:!uLA(this.view,r,s,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:A}=this;if(A.length){let{tooltip:i}=this;i&&i.dom.contains(e.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let A=i=>{e.removeEventListener("mouseleave",A),this.active.length&&!this.view.dom.contains(i.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",A)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}},ww=4;function hLA(t,e){let{left:A,right:i,top:n,bottom:o}=t.getBoundingClientRect(),r;if(r=t.querySelector(".cm-tooltip-arrow")){let s=r.getBoundingClientRect();n=Math.min(s.top,n),o=Math.max(s.bottom,o)}return e.clientX>=A-ww&&e.clientX<=i+ww&&e.clientY>=n-ww&&e.clientY<=o+ww}function uLA(t,e,A,i,n,o){let r=t.scrollDOM.getBoundingClientRect(),s=t.documentTop+t.documentPadding.top+t.contentHeight;if(r.left>i||r.rightn||Math.min(r.bottom,s)=e&&a<=A}function aiA(t,e={}){let A=Pi.define(),i=Ar.define({create(){return[]},update(n,o){if(n.length&&(e.hideOnChange&&(o.docChanged||o.selection)?n=[]:e.hideOn&&(n=n.filter(r=>!e.hideOn(o,r))),o.docChanged)){let r=[];for(let s of n){let a=o.changes.mapPos(s.pos,-1,Is.TrackDel);if(a!=null){let c=Object.assign(Object.create(null),s);c.pos=a,c.end!=null&&(c.end=o.changes.mapPos(c.end)),r.push(c)}}n=r}for(let r of o.effects)r.is(A)&&(n=r.value),r.is(fLA)&&(n=[]);return n},provide:n=>Tw.from(n)});return{active:i,extension:[i,go.define(n=>new iF(n,t,i,A,e.hoverTime||300)),QLA]}}function BF(t,e){let A=t.plugin(dF);if(!A)return null;let i=A.manager.tooltips.indexOf(e);return i<0?null:A.manager.tooltipViews[i]}var fLA=Pi.define();var AtA=qe.define({combine(t){let e,A;for(let i of t)e=e||i.topContainer,A=A||i.bottomContainer;return{topContainer:e,bottomContainer:A}}});function kC(t,e){let A=t.plugin(ciA),i=A?A.specs.indexOf(e):-1;return i>-1?A.panels[i]:null}var ciA=go.fromClass(class{constructor(t){this.input=t.state.facet(MC),this.specs=this.input.filter(A=>A),this.panels=this.specs.map(A=>A(t));let e=t.state.facet(AtA);this.top=new xE(t,!0,e.topContainer),this.bottom=new xE(t,!1,e.bottomContainer),this.top.sync(this.panels.filter(A=>A.top)),this.bottom.sync(this.panels.filter(A=>!A.top));for(let A of this.panels)A.dom.classList.add("cm-panel"),A.mount&&A.mount()}update(t){let e=t.state.facet(AtA);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new xE(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new xE(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let A=t.state.facet(MC);if(A!=this.input){let i=A.filter(a=>a),n=[],o=[],r=[],s=[];for(let a of i){let c=this.specs.indexOf(a),l;c<0?(l=a(t.view),s.push(l)):(l=this.panels[c],l.update&&l.update(t)),n.push(l),(l.top?o:r).push(l)}this.specs=i,this.panels=n,this.top.sync(o),this.bottom.sync(r);for(let a of s)a.dom.classList.add("cm-panel"),a.mount&&a.mount()}else for(let i of this.panels)i.update&&i.update(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>qt.scrollMargins.of(e=>{let A=e.plugin(t);return A&&{top:A.top.scrollMargin(),bottom:A.bottom.scrollMargin()}})}),xE=class{constructor(e,A,i){this.view=e,this.top=A,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let A of this.panels)A.destroy&&e.indexOf(A)<0&&A.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let A=this.container||this.view.dom;A.insertBefore(this.dom,this.top?A.firstChild:null)}let e=this.dom.firstChild;for(let A of this.panels)if(A.dom.parentNode==this.dom){for(;e!=A.dom;)e=etA(e);e=e.nextSibling}else this.dom.insertBefore(A.dom,e);for(;e;)e=etA(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}};function etA(t){let e=t.nextSibling;return t.remove(),e}var MC=qe.define({enables:ciA});var Fa=class extends wl{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};Fa.prototype.elementClass="";Fa.prototype.toDOM=void 0;Fa.prototype.mapMode=Is.TrackBefore;Fa.prototype.startSide=Fa.prototype.endSide=-1;Fa.prototype.point=!0;var Sw=qe.define(),mLA=qe.define(),pLA={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>co.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},$4=qe.define();function Vw(t){return[liA(),$4.of(rA(rA({},pLA),t))]}var nF=qe.define({combine:t=>t.some(e=>e)});function liA(t){let e=[wLA];return t&&t.fixed===!1&&e.push(nF.of(!0)),e}var wLA=go.fromClass(class{constructor(t){this.view=t,this.domAfter=null,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet($4).map(e=>new zw(t,e)),this.fixed=!t.state.facet(nF);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(t){if(this.updateGutters(t)){let e=this.prevViewport,A=t.view.viewport,i=Math.min(e.to,A.to)-Math.max(e.from,A.from);this.syncGutters(i<(A.to-A.from)*.8)}if(t.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(nF)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let A=co.iter(this.view.state.facet(Sw),this.view.viewport.from),i=[],n=this.gutters.map(o=>new rF(o,this.view.viewport,-this.view.documentPadding.top));for(let o of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(o.type)){let r=!0;for(let s of o.type)if(s.type==$s.Text&&r){oF(A,i,s.from);for(let a of n)a.line(this.view,s,i);r=!1}else if(s.widget)for(let a of n)a.widget(this.view,s)}else if(o.type==$s.Text){oF(A,i,o.from);for(let r of n)r.line(this.view,o,i)}else if(o.widget)for(let r of n)r.widget(this.view,o);for(let o of n)o.finish();t&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(t){let e=t.startState.facet($4),A=t.state.facet($4),i=t.docChanged||t.heightChanged||t.viewportChanged||!co.eq(t.startState.facet(Sw),t.state.facet(Sw),t.view.viewport.from,t.view.viewport.to);if(e==A)for(let n of this.gutters)n.update(t)&&(i=!0);else{i=!0;let n=[];for(let o of A){let r=e.indexOf(o);r<0?n.push(new zw(this.view,o)):(this.gutters[r].update(t),n.push(this.gutters[r]))}for(let o of this.gutters)o.dom.remove(),n.indexOf(o)<0&&o.destroy();for(let o of n)o.config.side=="after"?this.getDOMAfter().appendChild(o.dom):this.dom.appendChild(o.dom);this.gutters=n}return i}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:t=>qt.scrollMargins.of(e=>{let A=e.plugin(t);if(!A||A.gutters.length==0||!A.fixed)return null;let i=A.dom.offsetWidth*e.scaleX,n=A.domAfter?A.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==lo.LTR?{left:i,right:n}:{right:i,left:n}})});function ttA(t){return Array.isArray(t)?t:[t]}function oF(t,e,A){for(;t.value&&t.from<=A;)t.from==A&&e.push(t.value),t.next()}var rF=class{constructor(e,A,i){this.gutter=e,this.height=i,this.i=0,this.cursor=co.iter(e.markers,A.from)}addElement(e,A,i){let{gutter:n}=this,o=(A.top-this.height)/e.scaleY,r=A.height/e.scaleY;if(this.i==n.elements.length){let s=new Ow(e,r,o,i);n.elements.push(s),n.dom.appendChild(s.dom)}else n.elements[this.i].update(e,r,o,i);this.height=A.bottom,this.i++}line(e,A,i){let n=[];oF(this.cursor,n,A.from),i.length&&(n=n.concat(i));let o=this.gutter.config.lineMarker(e,A,n);o&&n.unshift(o);let r=this.gutter;n.length==0&&!r.config.renderEmptyElements||this.addElement(e,A,n)}widget(e,A){let i=this.gutter.config.widgetMarker(e,A.widget,A),n=i?[i]:null;for(let o of e.state.facet(mLA)){let r=o(e,A.widget,A);r&&(n||(n=[])).push(r)}n&&this.addElement(e,A,n)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let A=e.elements.pop();e.dom.removeChild(A.dom),A.destroy()}}},zw=class{constructor(e,A){this.view=e,this.config=A,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in A.domEventHandlers)this.dom.addEventListener(i,n=>{let o=n.target,r;if(o!=this.dom&&this.dom.contains(o)){for(;o.parentNode!=this.dom;)o=o.parentNode;let a=o.getBoundingClientRect();r=(a.top+a.bottom)/2}else r=n.clientY;let s=e.lineBlockAtHeight(r-e.documentTop);A.domEventHandlers[i](e,s,n)&&n.preventDefault()});this.markers=ttA(A.markers(e)),A.initialSpacer&&(this.spacer=new Ow(e,0,0,[A.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let A=this.markers;if(this.markers=ttA(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let n=this.config.updateSpacer(this.spacer.markers[0],e);n!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[n])}let i=e.view.viewport;return!co.eq(this.markers,A,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}},Ow=class{constructor(e,A,i,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,A,i,n)}update(e,A,i,n){this.height!=A&&(this.height=A,this.dom.style.height=A+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),DLA(this.markers,n)||this.setMarkers(e,n)}setMarkers(e,A){let i="cm-gutterElement",n=this.dom.firstChild;for(let o=0,r=0;;){let s=r,a=oo(s,a,c)||r(s,a,c):r}return i}})}}),A3=class extends Fa{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}};function fL(t,e){return t.state.facet(LE).formatNumber(e,t.state)}var bLA=$4.compute([LE],t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(yLA)},lineMarker(e,A,i){return i.some(n=>n.toDOM)?null:new A3(fL(e,e.state.doc.lineAt(A.from).number))},widgetMarker:(e,A,i)=>{for(let n of e.state.facet(vLA)){let o=n(e,A,i);if(o)return o}return null},lineMarkerChange:e=>e.startState.facet(LE)!=e.state.facet(LE),initialSpacer(e){return new A3(fL(e,itA(e.state.doc.lines)))},updateSpacer(e,A){let i=fL(A.view,itA(A.view.state.doc.lines));return i==e.number?e:new A3(i)},domEventHandlers:t.facet(LE).domEventHandlers,side:"before"}));function giA(t={}){return[LE.of(t),liA(),bLA]}function itA(t){let e=9;for(;e{let e=[],A=-1;for(let i of t.selection.ranges){let n=t.doc.lineAt(i.head).from;n>A&&(A=n,e.push(MLA.range(n)))}return co.of(e)});function IiA(){return kLA}var SLA=0,g3=class{constructor(e,A){this.from=e,this.to=A}},fi=class{constructor(e={}){this.id=SLA++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=Fs.match(e)),A=>{let i=e(A);return i===void 0?null:[this,i]}}};fi.closedBy=new fi({deserialize:t=>t.split(" ")});fi.openedBy=new fi({deserialize:t=>t.split(" ")});fi.group=new fi({deserialize:t=>t.split(" ")});fi.isolate=new fi({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}});fi.contextHash=new fi({perNode:!0});fi.lookAhead=new fi({perNode:!0});fi.mounted=new fi({perNode:!0});var UE=class{constructor(e,A,i){this.tree=e,this.overlay=A,this.parser=i}static get(e){return e&&e.props&&e.props[fi.mounted.id]}},RLA=Object.create(null),Fs=class t{constructor(e,A,i,n=0){this.name=e,this.props=A,this.id=i,this.flags=n}static define(e){let A=e.props&&e.props.length?Object.create(null):RLA,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),n=new t(e.name||"",A,e.id,i);if(e.props){for(let o of e.props)if(Array.isArray(o)||(o=o(n)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");A[o[0].id]=o[1]}}return n}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let A=this.prop(fi.group);return A?A.indexOf(e)>-1:!1}return this.id==e}static match(e){let A=Object.create(null);for(let i in e)for(let n of i.split(" "))A[n]=e[i];return i=>{for(let n=i.prop(fi.group),o=-1;o<(n?n.length:0);o++){let r=A[o<0?i.name:n[o]];if(r)return r}}}};Fs.none=new Fs("",Object.create(null),0,8);var I3=class t{constructor(e){this.types=e;for(let A=0;A0;for(let a=this.cursor(r|Jr.IncludeAnonymous);;){let c=!1;if(a.from<=o&&a.to>=n&&(!s&&a.type.isAnonymous||A(a)!==!1)){if(a.firstChild())continue;c=!0}for(;c&&i&&(s||!a.type.isAnonymous)&&i(a),!a.nextSibling();){if(!a.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let A in this.props)e.push([+A,this.props[A]]);return e}balance(e={}){return this.children.length<=8?this:pF(Fs.none,this.children,this.positions,0,this.children.length,0,this.length,(A,i,n)=>new t(this.type,A,i,n,this.propValues),e.makeTree||((A,i,n)=>new t(Fs.none,A,i,n)))}static build(e){return LLA(e)}};ur.empty=new ur(Fs.none,[],[],0);var EF=class t{constructor(e,A){this.buffer=e,this.index=A}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new t(this.buffer,this.index)}},v1=class t{constructor(e,A,i){this.buffer=e,this.length=A,this.set=i}get type(){return Fs.none}toString(){let e=[];for(let A=0;A0));a=r[a+3]);return s}slice(e,A,i){let n=this.buffer,o=new Uint16Array(A-e),r=0;for(let s=e,a=0;s=e&&Ae;case 1:return A<=e&&i>e;case 2:return i>e;case 4:return!0}}function C3(t,e,A,i){for(var n;t.from==t.to||(A<1?t.from>=e:t.from>e)||(A>-1?t.to<=e:t.to0?s.length:-1;e!=c;e+=A){let l=s[e],I=a[e]+r.from;if(EiA(n,i,I,I+l.length)){if(l instanceof v1){if(o&Jr.ExcludeBuffers)continue;let C=l.findChild(0,l.buffer.length,A,i-I,n);if(C>-1)return new d3(new hF(r,l,e,I),null,C)}else if(o&Jr.IncludeAnonymous||!l.type.isAnonymous||mF(l)){let C;if(!(o&Jr.IgnoreMounts)&&(C=UE.get(l))&&!C.overlay)return new t(C.tree,I,e,r);let d=new t(l,I,e,r);return o&Jr.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(A<0?l.children.length-1:0,A,i,n)}}}if(o&Jr.IncludeAnonymous||!r.type.isAnonymous||(r.index>=0?e=r.index+A:e=A<0?-1:r._parent._tree.children.length,r=r._parent,!r))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,A,i=0){let n;if(!(i&Jr.IgnoreOverlays)&&(n=UE.get(this._tree))&&n.overlay){let o=e-this.from;for(let{from:r,to:s}of n.overlay)if((A>0?r<=o:r=o:s>o))return new t(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,A,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function diA(t,e,A,i){let n=t.cursor(),o=[];if(!n.firstChild())return o;if(A!=null){for(let r=!1;!r;)if(r=n.type.is(A),!n.nextSibling())return o}for(;;){if(i!=null&&n.type.is(i))return o;if(n.type.is(e)&&o.push(n.node),!n.nextSibling())return i==null?o:[]}}function QF(t,e,A=e.length-1){for(let i=t;A>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[A]&&e[A]!=i.name)return!1;A--}}return!0}var hF=class{constructor(e,A,i,n){this.parent=e,this.buffer=A,this.index=i,this.start=n}},d3=class t extends Xw{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,A,i){super(),this.context=e,this._parent=A,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,A,i){let{buffer:n}=this.context,o=n.findChild(this.index+4,n.buffer[this.index+3],e,A-this.context.start,i);return o<0?null:new t(this.context,this,o)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,A,i=0){if(i&Jr.ExcludeBuffers)return null;let{buffer:n}=this.context,o=n.findChild(this.index+4,n.buffer[this.index+3],A>0?1:-1,e-this.context.start,A);return o<0?null:new t(this.context,this,o)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,A=e.buffer[this.index+3];return A<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new t(this.context,this._parent,A):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,A=this._parent?this._parent.index+4:0;return this.index==A?this.externalSibling(-1):new t(this.context,this._parent,e.findChild(A,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],A=[],{buffer:i}=this.context,n=this.index+4,o=i.buffer[this.index+3];if(o>n){let r=i.buffer[this.index+1];e.push(i.slice(n,o,r)),A.push(0)}return new ur(this.type,e,A,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function QiA(t){if(!t.length)return null;let e=0,A=t[0];for(let o=1;oA.from||r.to=e){let s=new Fg(r.tree,r.overlay[0].from+o.from,-1,o);(n||(n=[i])).push(C3(s,e,A,!1))}}return n?QiA(n):i}var B3=class{get name(){return this.type.name}constructor(e,A=0){if(this.mode=A,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof Fg)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,A){this.index=e;let{start:i,buffer:n}=this.buffer;return this.type=A||n.set.types[n.buffer[e]],this.from=i+n.buffer[e+1],this.to=i+n.buffer[e+2],!0}yield(e){return e?e instanceof Fg?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,A,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,A,i,this.mode));let{buffer:n}=this.buffer,o=n.findChild(this.index+4,n.buffer[this.index+3],e,A-this.buffer.start,i);return o<0?!1:(this.stack.push(this.index),this.yieldBuf(o))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,A,i=this.mode){return this.buffer?i&Jr.ExcludeBuffers?!1:this.enterChild(1,e,A):this.yield(this._tree.enter(e,A,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Jr.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Jr.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:A}=this.buffer,i=this.stack.length-1;if(e<0){let n=i<0?0:this.stack[i]+4;if(this.index!=n)return this.yieldBuf(A.findChild(n,this.index,-1,0,4))}else{let n=A.buffer[this.index+3];if(n<(i<0?A.buffer.length:A.buffer[this.stack[i]+3]))return this.yieldBuf(n)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let A,i,{buffer:n}=this;if(n){if(e>0){if(this.index-1)for(let o=A+e,r=e<0?-1:i._tree.children.length;o!=r;o+=e){let s=i._tree.children[o];if(this.mode&Jr.IncludeAnonymous||s instanceof v1||!s.type.isAnonymous||mF(s))return!1}return!0}move(e,A){if(A&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,A=0){for(;(this.from==this.to||(A<1?this.from>=e:this.from>e)||(A>-1?this.to<=e:this.to=0;){for(let r=e;r;r=r._parent)if(r.index==n){if(n==this.index)return r;A=r,i=o+1;break A}n=this.stack[--o]}for(let n=i;n=0;o--){if(o<0)return QF(this._tree,e,n);let r=i[A.buffer[this.stack[o]]];if(!r.isAnonymous){if(e[n]&&e[n]!=r.name)return!1;n--}}return!0}};function mF(t){return t.children.some(e=>e instanceof v1||!e.type.isAnonymous||mF(e))}function LLA(t){var e;let{buffer:A,nodeSet:i,maxBufferLength:n=1024,reused:o=[],minRepeatType:r=i.types.length}=t,s=Array.isArray(A)?new EF(A,A.length):A,a=i.types,c=0,l=0;function I(w,_,K,z,U,H){let{id:q,start:j,end:gA,size:QA}=s,BA=l,lA=c;for(;QA<0;)if(s.next(),QA==-1){let VA=o[q];K.push(VA),z.push(j-w);return}else if(QA==-3){c=q;return}else if(QA==-4){l=q;return}else throw new RangeError(`Unrecognized record size: ${QA}`);let vA=a[q],tA,cA,pA=j-w;if(gA-j<=n&&(cA=h(s.pos-_,U))){let VA=new Uint16Array(cA.size-cA.skip),oe=s.pos-cA.size,KA=VA.length;for(;s.pos>oe;)KA=u(cA.start,VA,KA);tA=new v1(VA,gA-cA.start,i),pA=cA.start-w}else{let VA=s.pos-QA;s.next();let oe=[],KA=[],CA=q>=r?q:-1,TA=0,Ze=gA;for(;s.pos>VA;)CA>=0&&s.id==CA&&s.size>=0?(s.end<=Ze-n&&(B(oe,KA,j,TA,s.end,Ze,CA,BA,lA),TA=oe.length,Ze=s.end),s.next()):H>2500?C(j,VA,oe,KA):I(j,VA,oe,KA,CA,H+1);if(CA>=0&&TA>0&&TA-1&&TA>0){let He=d(vA,lA);tA=pF(vA,oe,KA,0,oe.length,0,gA-j,He,He)}else tA=E(vA,oe,KA,gA-j,BA-gA,lA)}K.push(tA),z.push(pA)}function C(w,_,K,z){let U=[],H=0,q=-1;for(;s.pos>_;){let{id:j,start:gA,end:QA,size:BA}=s;if(BA>4)s.next();else{if(q>-1&&gA=0;QA-=3)j[BA++]=U[QA],j[BA++]=U[QA+1]-gA,j[BA++]=U[QA+2]-gA,j[BA++]=BA;K.push(new v1(j,U[2]-gA,i)),z.push(gA-w)}}function d(w,_){return(K,z,U)=>{let H=0,q=K.length-1,j,gA;if(q>=0&&(j=K[q])instanceof ur){if(!q&&j.type==w&&j.length==U)return j;(gA=j.prop(fi.lookAhead))&&(H=z[q]+j.length+gA)}return E(w,K,z,U,H,_)}}function B(w,_,K,z,U,H,q,j,gA){let QA=[],BA=[];for(;w.length>z;)QA.push(w.pop()),BA.push(_.pop()+K-U);w.push(E(i.types[q],QA,BA,H-U,j-H,gA)),_.push(U-K)}function E(w,_,K,z,U,H,q){if(H){let j=[fi.contextHash,H];q=q?[j].concat(q):[j]}if(U>25){let j=[fi.lookAhead,U];q=q?[j].concat(q):[j]}return new ur(w,_,K,z,q)}function h(w,_){let K=s.fork(),z=0,U=0,H=0,q=K.end-n,j={size:0,start:0,skip:0};A:for(let gA=K.pos-w;K.pos>gA;){let QA=K.size;if(K.id==_&&QA>=0){j.size=z,j.start=U,j.skip=H,H+=4,z+=4,K.next();continue}let BA=K.pos-QA;if(QA<0||BA=r?4:0,vA=K.start;for(K.next();K.pos>BA;){if(K.size<0)if(K.size==-3)lA+=4;else break A;else K.id>=r&&(lA+=4);K.next()}U=vA,z+=QA,H+=lA}return(_<0||z==w)&&(j.size=z,j.start=U,j.skip=H),j.size>4?j:void 0}function u(w,_,K){let{id:z,start:U,end:H,size:q}=s;if(s.next(),q>=0&&z4){let gA=s.pos-(q-4);for(;s.pos>gA;)K=u(w,_,K)}_[--K]=j,_[--K]=H-w,_[--K]=U-w,_[--K]=z}else q==-3?c=z:q==-4&&(l=z);return K}let D=[],L=[];for(;s.pos>0;)I(t.start||0,t.bufferStart||0,D,L,-1,0);let R=(e=t.length)!==null&&e!==void 0?e:D.length?L[0]+D[0].length:0;return new ur(a[t.topID],D.reverse(),L.reverse(),R)}var BiA=new WeakMap;function Ww(t,e){if(!t.isAnonymous||e instanceof v1||e.type!=t)return 1;let A=BiA.get(e);if(A==null){A=1;for(let i of e.children){if(i.type!=t||!(i instanceof ur)){A=1;break}A+=Ww(t,i)}BiA.set(e,A)}return A}function pF(t,e,A,i,n,o,r,s,a){let c=0;for(let B=i;B=l)break;_+=K}if(L==R+1){if(_>l){let K=B[R];d(K.children,K.positions,0,K.children.length,E[R]+D);continue}I.push(B[R])}else{let K=E[L-1]+B[L-1].length-w;I.push(pF(t,B,E,R,L,w,K,null,a))}C.push(w+D-o)}}return d(e,A,i,n,0),(s||a)(I,C,r)}var SC=class t{constructor(e,A,i,n,o=!1,r=!1){this.from=e,this.to=A,this.tree=i,this.offset=n,this.open=(o?1:0)|(r?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,A=[],i=!1){let n=[new t(0,e.length,e,0,!1,i)];for(let o of A)o.to>e.length&&n.push(o);return n}static applyChanges(e,A,i=128){if(!A.length)return e;let n=[],o=1,r=e.length?e[0]:null;for(let s=0,a=0,c=0;;s++){let l=s=i)for(;r&&r.from=C.from||I<=C.to||c){let d=Math.max(C.from,a)-c,B=Math.min(C.to,I)-c;C=d>=B?null:new t(d,B,C.tree,C.offset+c,s>0,!!l)}if(C&&n.push(C),r.to>I)break;r=onew g3(n.from,n.to)):[new g3(0,0)]:[new g3(0,e.length)],this.createParse(e,A||[],i)}parse(e,A,i){let n=this.startParse(e,A,i);for(;;){let o=n.advance();if(o)return o}}},fF=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,A){return this.string.slice(e,A)}};var Gpe=new fi({perNode:!0});var FLA=0,vl=class t{constructor(e,A,i,n){this.name=e,this.set=A,this.base=i,this.modified=n,this.id=FLA++}toString(){let{name:e}=this;for(let A of this.modified)A.name&&(e=`${A.name}(${e})`);return e}static define(e,A){let i=typeof e=="string"?e:"?";if(e instanceof t&&(A=e),A?.base)throw new Error("Can not derive from a modified tag");let n=new t(i,[],null,[]);if(n.set.push(n),A)for(let o of A.set)n.set.push(o);return n}static defineModifier(e){let A=new tD(e);return i=>i.modified.indexOf(A)>-1?i:tD.get(i.base||i,i.modified.concat(A).sort((n,o)=>n.id-o.id))}},NLA=0,tD=class t{constructor(e){this.name=e,this.instances=[],this.id=NLA++}static get(e,A){if(!A.length)return e;let i=A[0].instances.find(s=>s.base==e&&_LA(A,s.modified));if(i)return i;let n=[],o=new vl(e.name,n,e,A);for(let s of A)s.instances.push(o);let r=GLA(A);for(let s of e.set)if(!s.modified.length)for(let a of r)n.push(t.get(s,a));return o}};function _LA(t,e){return t.length==e.length&&t.every((A,i)=>A==e[i])}function GLA(t){let e=[[]];for(let A=0;Ai.length-A.length)}function iD(t){let e=Object.create(null);for(let A in t){let i=t[A];Array.isArray(i)||(i=[i]);for(let n of A.split(" "))if(n){let o=[],r=2,s=n;for(let I=0;;){if(s=="..."&&I>0&&I+3==n.length){r=1;break}let C=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(s);if(!C)throw new RangeError("Invalid path: "+n);if(o.push(C[0]=="*"?"":C[0][0]=='"'?JSON.parse(C[0]):C[0]),I+=C[0].length,I==n.length)break;let d=n[I++];if(I==n.length&&d=="!"){r=0;break}if(d!="/")throw new RangeError("Invalid path: "+n);s=n.slice(I)}let a=o.length-1,c=o[a];if(!c)throw new RangeError("Invalid path: "+n);let l=new YE(i,r,a>0?o.slice(0,a):null);e[c]=l.sort(e[c])}}return fiA.add(e)}var fiA=new fi,YE=class{constructor(e,A,i,n){this.tags=e,this.mode=A,this.context=i,this.next=n}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let r=n;for(let s of o)for(let a of s.set){let c=A[a.id];if(c){r=r?r+" "+c:c;break}}return r},scope:i}}function ULA(t,e){let A=null;for(let i of t){let n=i.style(e);n&&(A=A?A+" "+n:n)}return A}function miA(t,e,A,i=0,n=t.length){let o=new DF(i,Array.isArray(e)?e:[e],A);o.highlightRange(t.cursor(),i,n,"",o.highlighters),o.flush(n)}var DF=class{constructor(e,A,i){this.at=e,this.highlighters=A,this.span=i,this.class=""}startSpan(e,A){A!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=A)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,A,i,n,o){let{type:r,from:s,to:a}=e;if(s>=i||a<=A)return;r.isTop&&(o=this.highlighters.filter(d=>!d.scope||d.scope(r)));let c=n,l=KLA(e)||YE.empty,I=ULA(o,l.tags);if(I&&(c&&(c+=" "),c+=I,l.mode==1&&(n+=(n?" ":"")+I)),this.startSpan(Math.max(A,s),c),l.opaque)return;let C=e.tree&&e.tree.prop(fi.mounted);if(C&&C.overlay){let d=e.node.enter(C.overlay[0].from+s,1),B=this.highlighters.filter(h=>!h.scope||h.scope(C.tree.type)),E=e.firstChild();for(let h=0,u=s;;h++){let D=h=L||!e.nextSibling())););if(!D||L>i)break;u=D.to+s,u>A&&(this.highlightRange(d.cursor(),Math.max(A,D.from+s),Math.min(i,u),"",B),this.startSpan(Math.min(i,u),c))}E&&e.parent()}else if(e.firstChild()){C&&(n="");do if(!(e.to<=A)){if(e.from>=i)break;this.highlightRange(e,A,i,n,o),this.startSpan(Math.min(i,e.to),c)}while(e.nextSibling());e.parent()}}};function KLA(t){let e=t.type.prop(fiA);for(;e&&e.context&&!t.matchContext(e.context);)e=e.next;return e||null}var Oe=vl.define,$w=Oe(),b1=Oe(),hiA=Oe(b1),uiA=Oe(b1),M1=Oe(),AD=Oe(M1),wF=Oe(M1),Gg=Oe(),RC=Oe(Gg),Ng=Oe(),_g=Oe(),yF=Oe(),E3=Oe(yF),eD=Oe(),Se={comment:$w,lineComment:Oe($w),blockComment:Oe($w),docComment:Oe($w),name:b1,variableName:Oe(b1),typeName:hiA,tagName:Oe(hiA),propertyName:uiA,attributeName:Oe(uiA),className:Oe(b1),labelName:Oe(b1),namespace:Oe(b1),macroName:Oe(b1),literal:M1,string:AD,docString:Oe(AD),character:Oe(AD),attributeValue:Oe(AD),number:wF,integer:Oe(wF),float:Oe(wF),bool:Oe(M1),regexp:Oe(M1),escape:Oe(M1),color:Oe(M1),url:Oe(M1),keyword:Ng,self:Oe(Ng),null:Oe(Ng),atom:Oe(Ng),unit:Oe(Ng),modifier:Oe(Ng),operatorKeyword:Oe(Ng),controlKeyword:Oe(Ng),definitionKeyword:Oe(Ng),moduleKeyword:Oe(Ng),operator:_g,derefOperator:Oe(_g),arithmeticOperator:Oe(_g),logicOperator:Oe(_g),bitwiseOperator:Oe(_g),compareOperator:Oe(_g),updateOperator:Oe(_g),definitionOperator:Oe(_g),typeOperator:Oe(_g),controlOperator:Oe(_g),punctuation:yF,separator:Oe(yF),bracket:E3,angleBracket:Oe(E3),squareBracket:Oe(E3),paren:Oe(E3),brace:Oe(E3),content:Gg,heading:RC,heading1:Oe(RC),heading2:Oe(RC),heading3:Oe(RC),heading4:Oe(RC),heading5:Oe(RC),heading6:Oe(RC),contentSeparator:Oe(Gg),list:Oe(Gg),quote:Oe(Gg),emphasis:Oe(Gg),strong:Oe(Gg),link:Oe(Gg),monospace:Oe(Gg),strikethrough:Oe(Gg),inserted:Oe(),deleted:Oe(),changed:Oe(),invalid:Oe(),meta:eD,documentMeta:Oe(eD),annotation:Oe(eD),processingInstruction:Oe(eD),definition:vl.defineModifier("definition"),constant:vl.defineModifier("constant"),function:vl.defineModifier("function"),standard:vl.defineModifier("standard"),local:vl.defineModifier("local"),special:vl.defineModifier("special")};for(let t in Se){let e=Se[t];e instanceof vl&&(e.name=t)}var Ype=vF([{tag:Se.link,class:"tok-link"},{tag:Se.heading,class:"tok-heading"},{tag:Se.emphasis,class:"tok-emphasis"},{tag:Se.strong,class:"tok-strong"},{tag:Se.keyword,class:"tok-keyword"},{tag:Se.atom,class:"tok-atom"},{tag:Se.bool,class:"tok-bool"},{tag:Se.url,class:"tok-url"},{tag:Se.labelName,class:"tok-labelName"},{tag:Se.inserted,class:"tok-inserted"},{tag:Se.deleted,class:"tok-deleted"},{tag:Se.literal,class:"tok-literal"},{tag:Se.string,class:"tok-string"},{tag:Se.number,class:"tok-number"},{tag:[Se.regexp,Se.escape,Se.special(Se.string)],class:"tok-string2"},{tag:Se.variableName,class:"tok-variableName"},{tag:Se.local(Se.variableName),class:"tok-variableName tok-local"},{tag:Se.definition(Se.variableName),class:"tok-variableName tok-definition"},{tag:Se.special(Se.variableName),class:"tok-variableName2"},{tag:Se.definition(Se.propertyName),class:"tok-propertyName tok-definition"},{tag:Se.typeName,class:"tok-typeName"},{tag:Se.namespace,class:"tok-namespace"},{tag:Se.className,class:"tok-className"},{tag:Se.macroName,class:"tok-macroName"},{tag:Se.propertyName,class:"tok-propertyName"},{tag:Se.operator,class:"tok-operator"},{tag:Se.comment,class:"tok-comment"},{tag:Se.meta,class:"tok-meta"},{tag:Se.invalid,class:"tok-invalid"},{tag:Se.punctuation,class:"tok-punctuation"}]);var bF,JE=new fi;function YLA(t){return qe.define({combine:t?e=>e.concat(t):void 0})}var JLA=new fi,Ug=(()=>{class t{constructor(A,i,n=[],o=""){this.data=A,this.name=o,hr.prototype.hasOwnProperty("tree")||Object.defineProperty(hr.prototype,"tree",{get(){return $r(this)}}),this.parser=i,this.extension=[k1.of(this),hr.languageData.of((r,s,a)=>{let c=piA(r,s,a),l=c.type.prop(JE);if(!l)return[];let I=r.facet(l),C=c.type.prop(JLA);if(C){let d=c.resolve(s-c.from,a);for(let B of C)if(B.test(d,r)){let E=r.facet(B.facet);return B.type=="replace"?E:E.concat(I)}}return I})].concat(n)}isActiveAt(A,i,n=-1){return piA(A,i,n).type.prop(JE)==this.data}findRegions(A){let i=A.facet(k1);if(i?.data==this.data)return[{from:0,to:A.doc.length}];if(!i||!i.allowsNesting)return[];let n=[],o=(r,s)=>{if(r.prop(JE)==this.data){n.push({from:s,to:s+r.length});return}let a=r.prop(fi.mounted);if(a){if(a.tree.prop(JE)==this.data){if(a.overlay)for(let c of a.overlay)n.push({from:c.from+s,to:c.to+s});else n.push({from:s,to:s+r.length});return}else if(a.overlay){let c=n.length;if(o(a.tree,a.overlay[0].from+s),n.length>c)return}}for(let c=0;ci.isTop?A:void 0)]}),e.name)}configure(e,A){return new t(this.data,this.parser.configure(e),A||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function $r(t){let e=t.field(Ug.state,!1);return e?e.tree:ur.empty}var RF=class{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,A){let i=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,A):this.string.slice(e-i,A-i)}},Q3=null,xF=class t{constructor(e,A,i=[],n,o,r,s,a){this.parser=e,this.state=A,this.fragments=i,this.tree=n,this.treeLen=o,this.viewport=r,this.skipped=s,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,A,i){return new t(e,A,[],ur.empty,0,i,[],null)}startParse(){return this.parser.startParse(new RF(this.state.doc),this.fragments)}work(e,A){return A!=null&&A>=this.state.doc.length&&(A=void 0),this.tree!=ur.empty&&this.isDone(A??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let n=Date.now()+e;e=()=>Date.now()>n}for(this.parse||(this.parse=this.startParse()),A!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>A)&&A=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(A=this.parse.advance()););}),this.treeLen=e,this.tree=A,this.fragments=this.withoutTempSkipped(SC.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let A=Q3;Q3=this;try{return e()}finally{Q3=A}}withoutTempSkipped(e){for(let A;A=this.tempSkipped.pop();)e=wiA(e,A.from,A.to);return e}changes(e,A){let{fragments:i,tree:n,treeLen:o,viewport:r,skipped:s}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((c,l,I,C)=>a.push({fromA:c,toA:l,fromB:I,toB:C})),i=SC.applyChanges(i,a),n=ur.empty,o=0,r={from:e.mapPos(r.from,-1),to:e.mapPos(r.to,1)},this.skipped.length){s=[];for(let c of this.skipped){let l=e.mapPos(c.from,1),I=e.mapPos(c.to,-1);le.from&&(this.fragments=wiA(this.fragments,n,o),this.skipped.splice(i--,1))}return this.skipped.length>=A?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,A){this.skipped.push({from:e,to:A})}static getSkippingParser(e){return new class extends KE{createParse(A,i,n){let o=n[0].from,r=n[n.length-1].to;return{parsedPos:o,advance(){let a=Q3;if(a){for(let c of n)a.tempSkipped.push(c);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=r,new ur(Fs.none,[],[],r-o)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let A=this.fragments;return this.treeLen>=e&&A.length&&A[0].from==0&&A[0].to>=e}static get(){return Q3}};function wiA(t,e,A){return SC.applyChanges(t,[{fromA:e,toA:A,fromB:e,toB:A}])}var u3=class t{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let A=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),A.viewport.to);return A.work(20,i)||A.takeTree(),new t(A)}static init(e){let A=Math.min(3e3,e.doc.length),i=xF.create(e.facet(k1).parser,e,{from:0,to:A});return i.work(20,A)||i.takeTree(),new t(i)}};Ug.state=Ar.define({create:u3.init,update(t,e){for(let A of e.effects)if(A.is(Ug.setState))return A.value;return e.startState.facet(k1)!=e.state.facet(k1)?u3.init(e.state):t.apply(e)}});var kiA=t=>{let e=setTimeout(()=>t(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(kiA=t=>{let e=-1,A=setTimeout(()=>{e=requestIdleCallback(t,{timeout:400})},100);return()=>e<0?clearTimeout(A):cancelIdleCallback(e)});var MF=typeof navigator<"u"&&(!((bF=navigator.scheduling)===null||bF===void 0)&&bF.isInputPending)?()=>navigator.scheduling.isInputPending():null,TLA=go.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let A=this.view.state.field(Ug.state).context;(A.updateViewport(e.view.viewport)||this.view.viewport.to>A.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(A)}scheduleWork(){if(this.working)return;let{state:e}=this.view,A=e.field(Ug.state);(A.tree!=A.context.tree||!A.context.isDone(e.doc.length))&&(this.working=kiA(this.work))}work(e){this.working=null;let A=Date.now();if(this.chunkEndn+1e3,a=o.context.work(()=>MF&&MF()||Date.now()>r,n+(s?0:1e5));this.chunkBudget-=Date.now()-A,(a||this.chunkBudget<=0)&&(o.context.takeTree(),this.view.dispatch({effects:Ug.setState.of(new u3(o.context))})),this.chunkBudget>0&&!(a&&!s)&&this.scheduleWork(),this.checkAsyncSchedule(o.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(A=>Xr(this.view.state,A)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),k1=qe.define({combine(t){return t.length?t[0]:null},enables:t=>[Ug.state,TLA,qt.contentAttributes.compute([t],e=>{let A=e.facet(t);return A&&A.name?{"data-language":A.name}:{}})]}),oD=class{constructor(e,A=[]){this.language=e,this.support=A,this.extension=[e,A]}};var HLA=qe.define(),FC=qe.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some(A=>A!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function Ml(t){let e=t.facet(FC);return e.charCodeAt(0)==9?t.tabSize*e.length:e.length}function HE(t,e){let A="",i=t.tabSize,n=t.facet(FC)[0];if(n==" "){for(;e>=i;)A+=" ",e-=i;n=" "}for(let o=0;o=e?zLA(t,A,e):null}var xC=class{constructor(e,A={}){this.state=e,this.options=A,this.unit=Ml(e)}lineAt(e,A=1){let i=this.state.doc.lineAt(e),{simulateBreak:n,simulateDoubleBreak:o}=this.options;return n!=null&&n>=i.from&&n<=i.to?o&&n==e?{text:"",from:e}:(A<0?n-1&&(o+=r-this.countColumn(i,i.search(/\S|$/))),o}countColumn(e,A=e.length){return J0(e,this.state.tabSize,A)}lineIndent(e,A=1){let{text:i,from:n}=this.lineAt(e,A),o=this.options.overrideIndentation;if(o){let r=o(n);if(r>-1)return r}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},KF=new fi;function zLA(t,e,A){let i=e.resolveStack(A),n=e.resolveInner(A,-1).resolve(A,0).enterUnfinishedNodesBefore(A);if(n!=i.node){let o=[];for(let r=n;r&&!(r.fromi.node.to||r.from==i.node.from&&r.type==i.node.type);r=r.parent)o.push(r);for(let r=o.length-1;r>=0;r--)i={node:o[r],next:i}}return SiA(i,t,A)}function SiA(t,e,A){for(let i=t;i;i=i.next){let n=PLA(i.node);if(n)return n(LF.create(e,A,i))}return 0}function OLA(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}function PLA(t){let e=t.type.prop(KF);if(e)return e;let A=t.firstChild,i;if(A&&(i=A.type.prop(fi.closedBy))){let n=t.lastChild,o=n&&i.indexOf(n.name)>-1;return r=>ZLA(r,!0,1,void 0,o&&!OLA(r)?n.from:void 0)}return t.parent==null?jLA:null}function jLA(){return 0}var LF=class t extends xC{constructor(e,A,i){super(e.state,e.options),this.base=e,this.pos=A,this.context=i}get node(){return this.context.node}static create(e,A,i){return new t(e,A,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let A=this.state.doc.lineAt(e.from);for(;;){let i=e.resolve(A.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(qLA(i,e))break;A=this.state.doc.lineAt(i.from)}return this.lineIndent(A.from)}continue(){return SiA(this.context.next,this.base,this.pos)}};function qLA(t,e){for(let A=e;A;A=A.parent)if(t==A)return!0;return!1}function VLA(t){let e=t.node,A=e.childAfter(e.from),i=e.lastChild;if(!A)return null;let n=t.options.simulateBreak,o=t.state.doc.lineAt(A.from),r=n==null||n<=o.from?o.to:Math.min(o.to,n);for(let s=A.to;;){let a=e.childAfter(s);if(!a||a==i)return null;if(!a.type.isSkipped){if(a.from>=r)return null;let c=/^ */.exec(o.text.slice(A.to-o.from))[0].length;return{from:A.from,to:A.to+c}}s=a.to}}function ZLA(t,e,A,i,n){let o=t.textAfter,r=o.match(/^\s*/)[0].length,s=i&&o.slice(r,r+i.length)==i||n==t.pos+r,a=e?VLA(t):null;return a?s?t.column(a.from):t.column(a.to):t.baseIndent+(s?0:t.unit*A)}function YF({except:t,units:e=1}={}){return A=>{let i=t&&t.test(A.textAfter);return A.baseIndent+(i?0:e*A.unit)}}var WLA=200;function RiA(){return hr.transactionFilter.of(t=>{if(!t.docChanged||!t.isUserEvent("input.type")&&!t.isUserEvent("input.complete"))return t;let e=t.startState.languageDataAt("indentOnInput",t.startState.selection.main.head);if(!e.length)return t;let A=t.newDoc,{head:i}=t.newSelection.main,n=A.lineAt(i);if(i>n.from+WLA)return t;let o=A.sliceString(n.from,i);if(!e.some(c=>c.test(o)))return t;let{state:r}=t,s=-1,a=[];for(let{head:c}of r.selection.ranges){let l=r.doc.lineAt(c);if(l.from==s)continue;s=l.from;let I=aD(r,l.from);if(I==null)continue;let C=/^\s*/.exec(l.text)[0],d=HE(r,I);C!=d&&a.push({from:l.from,to:l.from+C.length,insert:d})}return a.length?[t,{changes:a,sequential:!0}]:t})}var XLA=qe.define(),JF=new fi;function xiA(t){let e=t.firstChild,A=t.lastChild;return e&&e.toA)continue;if(o&&s.from=e&&c.to>A&&(o=c)}}return o}function AFA(t){let e=t.lastChild;return e&&e.to==t.to&&e.type.isError}function rD(t,e,A){for(let i of t.facet(XLA)){let n=i(t,e,A);if(n)return n}return $LA(t,e,A)}function LiA(t,e){let A=e.mapPos(t.from,1),i=e.mapPos(t.to,-1);return A>=i?void 0:{from:A,to:i}}var cD=Pi.define({map:LiA}),f3=Pi.define({map:LiA});function FiA(t){let e=[];for(let{head:A}of t.state.selection.ranges)e.some(i=>i.from<=A&&i.to>=A)||e.push(t.lineBlockAt(A));return e}var LC=Ar.define({create(){return ut.none},update(t,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((A,i)=>t=DiA(t,A,i)),t=t.map(e.changes);for(let A of e.effects)if(A.is(cD)&&!eFA(t,A.value.from,A.value.to)){let{preparePlaceholder:i}=e.state.facet(TF),n=i?ut.replace({widget:new FF(i(e.state,A.value))}):yiA;t=t.update({add:[n.range(A.value.from,A.value.to)]})}else A.is(f3)&&(t=t.update({filter:(i,n)=>A.value.from!=i||A.value.to!=n,filterFrom:A.value.from,filterTo:A.value.to}));return e.selection&&(t=DiA(t,e.selection.main.head)),t},provide:t=>qt.decorations.from(t),toJSON(t,e){let A=[];return t.between(0,e.doc.length,(i,n)=>{A.push(i,n)}),A},fromJSON(t){if(!Array.isArray(t)||t.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let A=0;A{ne&&(i=!0)}),i?t.update({filterFrom:e,filterTo:A,filter:(n,o)=>n>=A||o<=e}):t}function sD(t,e,A){var i;let n=null;return(i=t.field(LC,!1))===null||i===void 0||i.between(e,A,(o,r)=>{(!n||n.from>o)&&(n={from:o,to:r})}),n}function eFA(t,e,A){let i=!1;return t.between(e,e,(n,o)=>{n==e&&o==A&&(i=!0)}),i}function NiA(t,e){return t.field(LC,!1)?e:e.concat(Pi.appendConfig.of(UiA()))}var tFA=t=>{for(let e of FiA(t)){let A=rD(t.state,e.from,e.to);if(A)return t.dispatch({effects:NiA(t.state,[cD.of(A),_iA(t,A)])}),!0}return!1},iFA=t=>{if(!t.state.field(LC,!1))return!1;let e=[];for(let A of FiA(t)){let i=sD(t.state,A.from,A.to);i&&e.push(f3.of(i),_iA(t,i,!1))}return e.length&&t.dispatch({effects:e}),e.length>0};function _iA(t,e,A=!0){let i=t.state.doc.lineAt(e.from).number,n=t.state.doc.lineAt(e.to).number;return qt.announce.of(`${t.state.phrase(A?"Folded lines":"Unfolded lines")} ${i} ${t.state.phrase("to")} ${n}.`)}var nFA=t=>{let{state:e}=t,A=[];for(let i=0;i{let e=t.state.field(LC,!1);if(!e||!e.size)return!1;let A=[];return e.between(0,t.state.doc.length,(i,n)=>{A.push(f3.of({from:i,to:n}))}),t.dispatch({effects:A}),!0};var GiA=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:tFA},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:iFA},{key:"Ctrl-Alt-[",run:nFA},{key:"Ctrl-Alt-]",run:oFA}],rFA={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},TF=qe.define({combine(t){return Wr(t,rFA)}});function UiA(t){let e=[LC,aFA];return t&&e.push(TF.of(t)),e}function KiA(t,e){let{state:A}=t,i=A.facet(TF),n=r=>{let s=t.lineBlockAt(t.posAtDOM(r.target)),a=sD(t.state,s.from,s.to);a&&t.dispatch({effects:f3.of(a)}),r.preventDefault()};if(i.placeholderDOM)return i.placeholderDOM(t,n,e);let o=document.createElement("span");return o.textContent=i.placeholderText,o.setAttribute("aria-label",A.phrase("folded code")),o.title=A.phrase("unfold"),o.className="cm-foldPlaceholder",o.onclick=n,o}var yiA=ut.replace({widget:new class extends Ic{toDOM(t){return KiA(t,null)}}}),FF=class extends Ic{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return KiA(e,this.value)}},sFA={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1},h3=class extends Fa{constructor(e,A){super(),this.config=e,this.open=A}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let A=document.createElement("span");return A.textContent=this.open?this.config.openText:this.config.closedText,A.title=e.state.phrase(this.open?"Fold line":"Unfold line"),A}};function YiA(t={}){let e=rA(rA({},sFA),t),A=new h3(e,!0),i=new h3(e,!1),n=go.fromClass(class{constructor(r){this.from=r.viewport.from,this.markers=this.buildMarkers(r)}update(r){(r.docChanged||r.viewportChanged||r.startState.facet(k1)!=r.state.facet(k1)||r.startState.field(LC,!1)!=r.state.field(LC,!1)||$r(r.startState)!=$r(r.state)||e.foldingChanged(r))&&(this.markers=this.buildMarkers(r.view))}buildMarkers(r){let s=new ds;for(let a of r.viewportLineBlocks){let c=sD(r.state,a.from,a.to)?i:rD(r.state,a.from,a.to)?A:null;c&&s.add(a.from,a.from,c)}return s.finish()}}),{domEventHandlers:o}=e;return[n,Vw({class:"cm-foldGutter",markers(r){var s;return((s=r.plugin(n))===null||s===void 0?void 0:s.markers)||co.empty},initialSpacer(){return new h3(e,!1)},domEventHandlers:Ye(rA({},o),{click:(r,s,a)=>{if(o.click&&o.click(r,s,a))return!0;let c=sD(r.state,s.from,s.to);if(c)return r.dispatch({effects:f3.of(c)}),!0;let l=rD(r.state,s.from,s.to);return l?(r.dispatch({effects:cD.of(l)}),!0):!1}})}),UiA()]}var aFA=qt.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),TE=class t{constructor(e,A){this.specs=e;let i;function n(s){let a=Kc.newName();return(i||(i=Object.create(null)))["."+a]=s,a}let o=typeof A.all=="string"?A.all:A.all?n(A.all):void 0,r=A.scope;this.scope=r instanceof Ug?s=>s.prop(JE)==r.data:r?s=>s==r:void 0,this.style=vF(e.map(s=>({tag:s.tag,class:s.class||n(Object.assign({},s,{tag:null}))})),{all:o}).style,this.module=i?new Kc(i):null,this.themeType=A.themeType}static define(e,A){return new t(e,A||{})}},NF=qe.define(),JiA=qe.define({combine(t){return t.length?[t[0]]:null}});function kF(t){let e=t.facet(NF);return e.length?e:t.facet(JiA)}function HF(t,e){let A=[cFA],i;return t instanceof TE&&(t.module&&A.push(qt.styleModule.of(t.module)),i=t.themeType),e?.fallback?A.push(JiA.of(t)):i?A.push(NF.computeN([qt.darkTheme],n=>n.facet(qt.darkTheme)==(i=="dark")?[t]:[])):A.push(NF.of(t)),A}var _F=class{constructor(e){this.markCache=Object.create(null),this.tree=$r(e.state),this.decorations=this.buildDeco(e,kF(e.state)),this.decoratedTo=e.viewport.to}update(e){let A=$r(e.state),i=kF(e.state),n=i!=kF(e.startState),{viewport:o}=e.view,r=e.changes.mapPos(this.decoratedTo,1);A.length=o.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=r):(A!=this.tree||e.viewportChanged||n)&&(this.tree=A,this.decorations=this.buildDeco(e.view,i),this.decoratedTo=o.to)}buildDeco(e,A){if(!A||!this.tree.length)return ut.none;let i=new ds;for(let{from:n,to:o}of e.visibleRanges)miA(this.tree,A,(r,s,a)=>{i.add(r,s,this.markCache[a]||(this.markCache[a]=ut.mark({class:a})))},n,o);return i.finish()}},cFA=Dl.high(go.fromClass(_F,{decorations:t=>t.decorations})),TiA=TE.define([{tag:Se.meta,color:"#404740"},{tag:Se.link,textDecoration:"underline"},{tag:Se.heading,textDecoration:"underline",fontWeight:"bold"},{tag:Se.emphasis,fontStyle:"italic"},{tag:Se.strong,fontWeight:"bold"},{tag:Se.strikethrough,textDecoration:"line-through"},{tag:Se.keyword,color:"#708"},{tag:[Se.atom,Se.bool,Se.url,Se.contentSeparator,Se.labelName],color:"#219"},{tag:[Se.literal,Se.inserted],color:"#164"},{tag:[Se.string,Se.deleted],color:"#a11"},{tag:[Se.regexp,Se.escape,Se.special(Se.string)],color:"#e40"},{tag:Se.definition(Se.variableName),color:"#00f"},{tag:Se.local(Se.variableName),color:"#30a"},{tag:[Se.typeName,Se.namespace],color:"#085"},{tag:Se.className,color:"#167"},{tag:[Se.special(Se.variableName),Se.macroName],color:"#256"},{tag:Se.definition(Se.propertyName),color:"#00c"},{tag:Se.comment,color:"#940"},{tag:Se.invalid,color:"#f00"}]),lFA=qt.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),HiA=1e4,ziA="()[]{}",OiA=qe.define({combine(t){return Wr(t,{afterCursor:!0,brackets:ziA,maxScanDistance:HiA,renderMatch:CFA})}}),gFA=ut.mark({class:"cm-matchingBracket"}),IFA=ut.mark({class:"cm-nonmatchingBracket"});function CFA(t){let e=[],A=t.matched?gFA:IFA;return e.push(A.range(t.start.from,t.start.to)),t.end&&e.push(A.range(t.end.from,t.end.to)),e}var dFA=Ar.define({create(){return ut.none},update(t,e){if(!e.docChanged&&!e.selection)return t;let A=[],i=e.state.facet(OiA);for(let n of e.state.selection.ranges){if(!n.empty)continue;let o=bl(e.state,n.head,-1,i)||n.head>0&&bl(e.state,n.head-1,1,i)||i.afterCursor&&(bl(e.state,n.head,1,i)||n.headqt.decorations.from(t)}),BFA=[dFA,lFA];function PiA(t={}){return[OiA.of(t),BFA]}var EFA=new fi;function GF(t,e,A){let i=t.prop(e<0?fi.openedBy:fi.closedBy);if(i)return i;if(t.name.length==1){let n=A.indexOf(t.name);if(n>-1&&n%2==(e<0?1:0))return[A[n+e]]}return null}function UF(t){let e=t.type.prop(EFA);return e?e(t.node):t}function bl(t,e,A,i={}){let n=i.maxScanDistance||HiA,o=i.brackets||ziA,r=$r(t),s=r.resolveInner(e,A);for(let a=s;a;a=a.parent){let c=GF(a.type,A,o);if(c&&a.from0?e>=l.from&&el.from&&e<=l.to))return QFA(t,e,A,a,l,c,o)}}return hFA(t,e,A,r,s.type,n,o)}function QFA(t,e,A,i,n,o,r){let s=i.parent,a={from:n.from,to:n.to},c=0,l=s?.cursor();if(l&&(A<0?l.childBefore(i.from):l.childAfter(i.to)))do if(A<0?l.to<=i.from:l.from>=i.to){if(c==0&&o.indexOf(l.type.name)>-1&&l.from0)return null;let c={from:A<0?e-1:e,to:A>0?e+1:e},l=t.doc.iterRange(e,A>0?t.doc.length:0),I=0;for(let C=0;!l.next().done&&C<=o;){let d=l.value;A<0&&(C+=d.length);let B=e+C*A;for(let E=A>0?0:d.length-1,h=A>0?d.length:-1;E!=h;E+=A){let u=r.indexOf(d[E]);if(!(u<0||i.resolveInner(B+E,1).type!=n))if(u%2==0==A>0)I++;else{if(I==1)return{start:c,end:{from:B+E,to:B+E+1},matched:u>>1==a>>1};I--}}A>0&&(C+=d.length)}return l.done?{start:c,matched:!1}:null}var uFA=Object.create(null),viA=[Fs.none];var biA=[],MiA=Object.create(null),fFA=Object.create(null);for(let[t,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])fFA[t]=mFA(uFA,e);function SF(t,e){biA.indexOf(t)>-1||(biA.push(t),console.warn(e))}function mFA(t,e){let A=[];for(let s of e.split(" ")){let a=[];for(let c of s.split(".")){let l=t[c]||Se[c];l?typeof l=="function"?a.length?a=a.map(l):SF(c,`Modifier ${c} used at start of tag`):a.length?SF(c,`Tag ${c} used as modifier`):a=Array.isArray(l)?l:[l]:SF(c,`Unknown highlighting tag ${c}`)}for(let c of a)A.push(c)}if(!A.length)return 0;let i=e.replace(/ /g,"_"),n=i+" "+A.map(s=>s.id),o=MiA[n];if(o)return o.id;let r=MiA[n]=Fs.define({id:viA.length,name:i,props:[iD({[i]:A})]});return viA.push(r),r.id}var qpe={rtl:ut.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:lo.RTL}),ltr:ut.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:lo.LTR}),auto:ut.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var pFA=t=>{let{state:e}=t,A=e.doc.lineAt(e.selection.main.from),i=jF(t.state,A.from);return i.line?wFA(t):i.block?yFA(t):!1};function PF(t,e){return({state:A,dispatch:i})=>{if(A.readOnly)return!1;let n=t(e,A);return n?(i(A.update(n)),!0):!1}}var wFA=PF(MFA,0);var DFA=PF(enA,0);var yFA=PF((t,e)=>enA(t,e,bFA(e)),0);function jF(t,e){let A=t.languageDataAt("commentTokens",e,1);return A.length?A[0]:{}}var m3=50;function vFA(t,{open:e,close:A},i,n){let o=t.sliceDoc(i-m3,i),r=t.sliceDoc(n,n+m3),s=/\s*$/.exec(o)[0].length,a=/^\s*/.exec(r)[0].length,c=o.length-s;if(o.slice(c-e.length,c)==e&&r.slice(a,a+A.length)==A)return{open:{pos:i-s,margin:s&&1},close:{pos:n+a,margin:a&&1}};let l,I;n-i<=2*m3?l=I=t.sliceDoc(i,n):(l=t.sliceDoc(i,i+m3),I=t.sliceDoc(n-m3,n));let C=/^\s*/.exec(l)[0].length,d=/\s*$/.exec(I)[0].length,B=I.length-d-A.length;return l.slice(C,C+e.length)==e&&I.slice(B,B+A.length)==A?{open:{pos:i+C+e.length,margin:/\s/.test(l.charAt(C+e.length))?1:0},close:{pos:n-d-A.length,margin:/\s/.test(I.charAt(B-1))?1:0}}:null}function bFA(t){let e=[];for(let A of t.selection.ranges){let i=t.doc.lineAt(A.from),n=A.to<=i.to?i:t.doc.lineAt(A.to);n.from>i.from&&n.from==A.to&&(n=A.to==i.to+1?i:t.doc.lineAt(A.to-1));let o=e.length-1;o>=0&&e[o].to>i.from?e[o].to=n.to:e.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:n.to})}return e}function enA(t,e,A=e.selection.ranges){let i=A.map(o=>jF(e,o.from).block);if(!i.every(o=>o))return null;let n=A.map((o,r)=>vFA(e,i[r],o.from,o.to));if(t!=2&&!n.every(o=>o))return{changes:e.changes(A.map((o,r)=>n[r]?[]:[{from:o.from,insert:i[r].open+" "},{from:o.to,insert:" "+i[r].close}]))};if(t!=1&&n.some(o=>o)){let o=[];for(let r=0,s;rn&&(o==r||r>I.from)){n=I.from;let C=/^\s*/.exec(I.text)[0].length,d=C==I.length,B=I.text.slice(C,C+c.length)==c?C:-1;Co.comment<0&&(!o.empty||o.single))){let o=[];for(let{line:s,token:a,indent:c,empty:l,single:I}of i)(I||!l)&&o.push({from:s.from+c,insert:a+" "});let r=e.changes(o);return{changes:r,selection:e.selection.map(r,1)}}else if(t!=1&&i.some(o=>o.comment>=0)){let o=[];for(let{line:r,comment:s,token:a}of i)if(s>=0){let c=r.from+s,l=c+a.length;r.text[l-r.from]==" "&&l++,o.push({from:c,to:l})}return{changes:o}}return null}function zE(t,e){return ae.create(t.ranges.map(e),t.mainIndex)}function Kg(t,e){return t.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function kl({state:t,dispatch:e},A){let i=zE(t.selection,A);return i.eq(t.selection,!0)?!1:(e(Kg(t,i)),!0)}function gD(t,e){return ae.cursor(e?t.to:t.from)}function tnA(t,e){return kl(t,A=>A.empty?t.moveByChar(A,e):gD(A,e))}function Ns(t){return t.textDirectionAt(t.state.selection.main.head)==lo.LTR}var inA=t=>tnA(t,!Ns(t)),nnA=t=>tnA(t,Ns(t));function onA(t,e){return kl(t,A=>A.empty?t.moveByGroup(A,e):gD(A,e))}var kFA=t=>onA(t,!Ns(t)),SFA=t=>onA(t,Ns(t));var n6e=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function RFA(t,e,A){if(e.type.prop(A))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function ID(t,e,A){let i=$r(t).resolveInner(e.head),n=A?fi.closedBy:fi.openedBy;for(let a=e.head;;){let c=A?i.childAfter(a):i.childBefore(a);if(!c)break;RFA(t,c,n)?i=c:a=A?c.to:c.from}let o=i.type.prop(n),r,s;return o&&(r=A?bl(t,i.from,1):bl(t,i.to,-1))&&r.matched?s=A?r.end.to:r.end.from:s=A?i.to:i.from,ae.cursor(s,A?-1:1)}var xFA=t=>kl(t,e=>ID(t.state,e,!Ns(t))),LFA=t=>kl(t,e=>ID(t.state,e,Ns(t)));function rnA(t,e){return kl(t,A=>{if(!A.empty)return gD(A,e);let i=t.moveVertically(A,e);return i.head!=A.head?i:t.moveToLineBoundary(A,e)})}var snA=t=>rnA(t,!1),anA=t=>rnA(t,!0);function cnA(t){let e=t.scrollDOM.clientHeightr.empty?t.moveVertically(r,e,A.height):gD(r,e));if(n.eq(i.selection))return!1;let o;if(A.selfScroll){let r=t.coordsAtPos(i.selection.main.head),s=t.scrollDOM.getBoundingClientRect(),a=s.top+A.marginTop,c=s.bottom-A.marginBottom;r&&r.top>a&&r.bottomlnA(t,!1),zF=t=>lnA(t,!0);function S1(t,e,A){let i=t.lineBlockAt(e.head),n=t.moveToLineBoundary(e,A);if(n.head==e.head&&n.head!=(A?i.to:i.from)&&(n=t.moveToLineBoundary(e,A,!1)),!A&&n.head==i.from&&i.length){let o=/^\s*/.exec(t.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;o&&e.head!=i.from+o&&(n=ae.cursor(i.from+o))}return n}var FFA=t=>kl(t,e=>S1(t,e,!0)),NFA=t=>kl(t,e=>S1(t,e,!1)),_FA=t=>kl(t,e=>S1(t,e,!Ns(t))),GFA=t=>kl(t,e=>S1(t,e,Ns(t))),UFA=t=>kl(t,e=>ae.cursor(t.lineBlockAt(e.head).from,1)),KFA=t=>kl(t,e=>ae.cursor(t.lineBlockAt(e.head).to,-1));function YFA(t,e,A){let i=!1,n=zE(t.selection,o=>{let r=bl(t,o.head,-1)||bl(t,o.head,1)||o.head>0&&bl(t,o.head-1,1)||o.headYFA(t,e,!1);function Tc(t,e){let A=zE(t.state.selection,i=>{let n=e(i);return ae.range(i.anchor,n.head,n.goalColumn,n.bidiLevel||void 0)});return A.eq(t.state.selection)?!1:(t.dispatch(Kg(t.state,A)),!0)}function gnA(t,e){return Tc(t,A=>t.moveByChar(A,e))}var InA=t=>gnA(t,!Ns(t)),CnA=t=>gnA(t,Ns(t));function dnA(t,e){return Tc(t,A=>t.moveByGroup(A,e))}var TFA=t=>dnA(t,!Ns(t)),HFA=t=>dnA(t,Ns(t));var zFA=t=>Tc(t,e=>ID(t.state,e,!Ns(t))),OFA=t=>Tc(t,e=>ID(t.state,e,Ns(t)));function BnA(t,e){return Tc(t,A=>t.moveVertically(A,e))}var EnA=t=>BnA(t,!1),QnA=t=>BnA(t,!0);function hnA(t,e){return Tc(t,A=>t.moveVertically(A,e,cnA(t).height))}var qiA=t=>hnA(t,!1),ViA=t=>hnA(t,!0),PFA=t=>Tc(t,e=>S1(t,e,!0)),jFA=t=>Tc(t,e=>S1(t,e,!1)),qFA=t=>Tc(t,e=>S1(t,e,!Ns(t))),VFA=t=>Tc(t,e=>S1(t,e,Ns(t))),ZFA=t=>Tc(t,e=>ae.cursor(t.lineBlockAt(e.head).from)),WFA=t=>Tc(t,e=>ae.cursor(t.lineBlockAt(e.head).to)),ZiA=({state:t,dispatch:e})=>(e(Kg(t,{anchor:0})),!0),WiA=({state:t,dispatch:e})=>(e(Kg(t,{anchor:t.doc.length})),!0),XiA=({state:t,dispatch:e})=>(e(Kg(t,{anchor:t.selection.main.anchor,head:0})),!0),$iA=({state:t,dispatch:e})=>(e(Kg(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0),XFA=({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0),$FA=({state:t,dispatch:e})=>{let A=CD(t).map(({from:i,to:n})=>ae.range(i,Math.min(n+1,t.doc.length)));return e(t.update({selection:ae.create(A),userEvent:"select"})),!0},ANA=({state:t,dispatch:e})=>{let A=zE(t.selection,i=>{let n=$r(t),o=n.resolveStack(i.from,1);if(i.empty){let r=n.resolveStack(i.from,-1);r.node.from>=o.node.from&&r.node.to<=o.node.to&&(o=r)}for(let r=o;r;r=r.next){let{node:s}=r;if((s.from=i.to||s.to>i.to&&s.from<=i.from)&&r.next)return ae.range(s.to,s.from)}return i});return A.eq(t.selection)?!1:(e(Kg(t,A)),!0)},eNA=({state:t,dispatch:e})=>{let A=t.selection,i=null;return A.ranges.length>1?i=ae.create([A.main]):A.main.empty||(i=ae.create([ae.cursor(A.main.head)])),i?(e(Kg(t,i)),!0):!1};function p3(t,e){if(t.state.readOnly)return!1;let A="delete.selection",{state:i}=t,n=i.changeByRange(o=>{let{from:r,to:s}=o;if(r==s){let a=e(o);ar&&(A="delete.forward",a=lD(t,a,!0)),r=Math.min(r,a),s=Math.max(s,a)}else r=lD(t,r,!1),s=lD(t,s,!0);return r==s?{range:o}:{changes:{from:r,to:s},range:ae.cursor(r,rn(t)))i.between(e,e,(n,o)=>{ne&&(e=A?o:n)});return e}var unA=(t,e,A)=>p3(t,i=>{let n=i.from,{state:o}=t,r=o.doc.lineAt(n),s,a;if(A&&!e&&n>r.from&&nunA(t,!1,!0);var fnA=t=>unA(t,!0,!1),mnA=(t,e)=>p3(t,A=>{let i=A.head,{state:n}=t,o=n.doc.lineAt(i),r=n.charCategorizer(i);for(let s=null;;){if(i==(e?o.to:o.from)){i==A.head&&o.number!=(e?n.doc.lines:1)&&(i+=e?1:-1);break}let a=yr(o.text,i-o.from,e)+o.from,c=o.text.slice(Math.min(i,a)-o.from,Math.max(i,a)-o.from),l=r(c);if(s!=null&&l!=s)break;(c!=" "||i!=A.head)&&(s=l),i=a}return i}),pnA=t=>mnA(t,!1),tNA=t=>mnA(t,!0),iNA=t=>p3(t,e=>{let A=t.lineBlockAt(e.head).to;return e.headp3(t,e=>{let A=t.moveToLineBoundary(e,!1).head;return e.head>A?A:Math.max(0,e.head-1)}),oNA=t=>p3(t,e=>{let A=t.moveToLineBoundary(e,!0).head;return e.head{if(t.readOnly)return!1;let A=t.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:In.of(["",""])},range:ae.cursor(i.from)}));return e(t.update(A,{scrollIntoView:!0,userEvent:"input"})),!0},sNA=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let A=t.changeByRange(i=>{if(!i.empty||i.from==0||i.from==t.doc.length)return{range:i};let n=i.from,o=t.doc.lineAt(n),r=n==o.from?n-1:yr(o.text,n-o.from,!1)+o.from,s=n==o.to?n+1:yr(o.text,n-o.from,!0)+o.from;return{changes:{from:r,to:s,insert:t.doc.slice(n,s).append(t.doc.slice(r,n))},range:ae.cursor(s)}});return A.changes.empty?!1:(e(t.update(A,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function CD(t){let e=[],A=-1;for(let i of t.selection.ranges){let n=t.doc.lineAt(i.from),o=t.doc.lineAt(i.to);if(!i.empty&&i.to==o.from&&(o=t.doc.lineAt(i.to-1)),A>=n.number){let r=e[e.length-1];r.to=o.to,r.ranges.push(i)}else e.push({from:n.from,to:o.to,ranges:[i]});A=o.number+1}return e}function wnA(t,e,A){if(t.readOnly)return!1;let i=[],n=[];for(let o of CD(t)){if(A?o.to==t.doc.length:o.from==0)continue;let r=t.doc.lineAt(A?o.to+1:o.from-1),s=r.length+1;if(A){i.push({from:o.to,to:r.to},{from:o.from,insert:r.text+t.lineBreak});for(let a of o.ranges)n.push(ae.range(Math.min(t.doc.length,a.anchor+s),Math.min(t.doc.length,a.head+s)))}else{i.push({from:r.from,to:o.from},{from:o.to,insert:t.lineBreak+r.text});for(let a of o.ranges)n.push(ae.range(a.anchor-s,a.head-s))}}return i.length?(e(t.update({changes:i,scrollIntoView:!0,selection:ae.create(n,t.selection.mainIndex),userEvent:"move.line"})),!0):!1}var aNA=({state:t,dispatch:e})=>wnA(t,e,!1),cNA=({state:t,dispatch:e})=>wnA(t,e,!0);function DnA(t,e,A){if(t.readOnly)return!1;let i=[];for(let n of CD(t))A?i.push({from:n.from,insert:t.doc.slice(n.from,n.to)+t.lineBreak}):i.push({from:n.to,insert:t.lineBreak+t.doc.slice(n.from,n.to)});return e(t.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}var lNA=({state:t,dispatch:e})=>DnA(t,e,!1),gNA=({state:t,dispatch:e})=>DnA(t,e,!0),INA=t=>{if(t.state.readOnly)return!1;let{state:e}=t,A=e.changes(CD(e).map(({from:n,to:o})=>(n>0?n--:o{let o;if(t.lineWrapping){let r=t.lineBlockAt(n.head),s=t.coordsAtPos(n.head,n.assoc||1);s&&(o=r.bottom+t.documentTop-s.bottom+t.defaultLineHeight/2)}return t.moveVertically(n,!0,o)}).map(A);return t.dispatch({changes:A,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function CNA(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let A=$r(t).resolveInner(e),i=A.childBefore(e),n=A.childAfter(e),o;return i&&n&&i.to<=e&&n.from>=e&&(o=i.type.prop(fi.closedBy))&&o.indexOf(n.name)>-1&&t.doc.lineAt(i.to).from==t.doc.lineAt(n.from).from&&!/\S/.test(t.sliceDoc(i.to,n.from))?{from:i.to,to:n.from}:null}var AnA=ynA(!1),dNA=ynA(!0);function ynA(t){return({state:e,dispatch:A})=>{if(e.readOnly)return!1;let i=e.changeByRange(n=>{let{from:o,to:r}=n,s=e.doc.lineAt(o),a=!t&&o==r&&CNA(e,o);t&&(o=r=(r<=s.to?s:e.doc.lineAt(r)).to);let c=new xC(e,{simulateBreak:o,simulateDoubleBreak:!!a}),l=aD(c,o);for(l==null&&(l=J0(/^\s*/.exec(e.doc.lineAt(o).text)[0],e.tabSize));rs.from&&o{let n=[];for(let r=i.from;r<=i.to;){let s=t.doc.lineAt(r);s.number>A&&(i.empty||i.to>s.from)&&(e(s,n,i),A=s.number),r=s.to+1}let o=t.changes(n);return{changes:n,range:ae.range(o.mapPos(i.anchor,1),o.mapPos(i.head,1))}})}var BNA=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let A=Object.create(null),i=new xC(t,{overrideIndentation:o=>{let r=A[o];return r??-1}}),n=qF(t,(o,r,s)=>{let a=aD(i,o.from);if(a==null)return;/\S/.test(o.text)||(a=0);let c=/^\s*/.exec(o.text)[0],l=HE(t,a);(c!=l||s.fromt.readOnly?!1:(e(t.update(qF(t,(A,i)=>{i.push({from:A.from,insert:t.facet(FC)})}),{userEvent:"input.indent"})),!0),bnA=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(qF(t,(A,i)=>{let n=/^\s*/.exec(A.text)[0];if(!n)return;let o=J0(n,t.tabSize),r=0,s=HE(t,Math.max(0,o-Ml(t)));for(;r(t.setTabFocusMode(),!0);var QNA=[{key:"Ctrl-b",run:inA,shift:InA,preventDefault:!0},{key:"Ctrl-f",run:nnA,shift:CnA},{key:"Ctrl-p",run:snA,shift:EnA},{key:"Ctrl-n",run:anA,shift:QnA},{key:"Ctrl-a",run:UFA,shift:ZFA},{key:"Ctrl-e",run:KFA,shift:WFA},{key:"Ctrl-d",run:fnA},{key:"Ctrl-h",run:OF},{key:"Ctrl-k",run:iNA},{key:"Ctrl-Alt-h",run:pnA},{key:"Ctrl-o",run:rNA},{key:"Ctrl-t",run:sNA},{key:"Ctrl-v",run:zF}],hNA=[{key:"ArrowLeft",run:inA,shift:InA,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:kFA,shift:TFA,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:_FA,shift:qFA,preventDefault:!0},{key:"ArrowRight",run:nnA,shift:CnA,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:SFA,shift:HFA,preventDefault:!0},{mac:"Cmd-ArrowRight",run:GFA,shift:VFA,preventDefault:!0},{key:"ArrowUp",run:snA,shift:EnA,preventDefault:!0},{mac:"Cmd-ArrowUp",run:ZiA,shift:XiA},{mac:"Ctrl-ArrowUp",run:jiA,shift:qiA},{key:"ArrowDown",run:anA,shift:QnA,preventDefault:!0},{mac:"Cmd-ArrowDown",run:WiA,shift:$iA},{mac:"Ctrl-ArrowDown",run:zF,shift:ViA},{key:"PageUp",run:jiA,shift:qiA},{key:"PageDown",run:zF,shift:ViA},{key:"Home",run:NFA,shift:jFA,preventDefault:!0},{key:"Mod-Home",run:ZiA,shift:XiA},{key:"End",run:FFA,shift:PFA,preventDefault:!0},{key:"Mod-End",run:WiA,shift:$iA},{key:"Enter",run:AnA,shift:AnA},{key:"Mod-a",run:XFA},{key:"Backspace",run:OF,shift:OF},{key:"Delete",run:fnA},{key:"Mod-Backspace",mac:"Alt-Backspace",run:pnA},{key:"Mod-Delete",mac:"Alt-Delete",run:tNA},{mac:"Mod-Backspace",run:nNA},{mac:"Mod-Delete",run:oNA}].concat(QNA.map(t=>({mac:t.key,run:t.run,shift:t.shift}))),MnA=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:xFA,shift:zFA},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:LFA,shift:OFA},{key:"Alt-ArrowUp",run:aNA},{key:"Shift-Alt-ArrowUp",run:lNA},{key:"Alt-ArrowDown",run:cNA},{key:"Shift-Alt-ArrowDown",run:gNA},{key:"Escape",run:eNA},{key:"Mod-Enter",run:dNA},{key:"Alt-l",mac:"Ctrl-l",run:$FA},{key:"Mod-i",run:ANA,preventDefault:!0},{key:"Mod-[",run:bnA},{key:"Mod-]",run:vnA},{key:"Mod-Alt-\\",run:BNA},{key:"Shift-Mod-k",run:INA},{key:"Shift-Mod-\\",run:JFA},{key:"Mod-/",run:pFA},{key:"Alt-A",run:DFA},{key:"Ctrl-m",mac:"Shift-Alt-m",run:ENA}].concat(hNA),knA={key:"Tab",run:vnA,shift:bnA};var ED=class{constructor(e,A,i){this.from=e,this.to=A,this.diagnostic=i}},NC=class t{constructor(e,A,i){this.diagnostics=e,this.panel=A,this.selected=i}static init(e,A,i){let n=i.facet(Yg).markerFilter;n&&(e=n(e,i));let o=e.slice().sort((l,I)=>l.from-I.from||l.to-I.to),r=new ds,s=[],a=0;for(let l=0;;){let I=l==o.length?null:o[l];if(!I&&!s.length)break;let C,d;for(s.length?(C=a,d=s.reduce((E,h)=>Math.min(E,h.to),I&&I.from>C?I.from:1e8)):(C=I.from,d=I.to,s.push(I),l++);lE.from||E.to==C))s.push(E),l++,d=Math.min(E.to,d);else{d=Math.min(E.from,d);break}}let B=KnA(s);if(s.some(E=>E.from==E.to||E.from==E.to-1&&i.doc.lineAt(E.from).to==E.from))r.add(C,C,ut.widget({widget:new VF(B),diagnostics:s.slice()}));else{let E=s.reduce((h,u)=>u.markClass?h+" "+u.markClass:h,"");r.add(C,d,ut.mark({class:"cm-lintRange cm-lintRange-"+B+E,diagnostics:s.slice(),inclusiveEnd:s.some(h=>h.to>d)}))}a=d;for(let E=0;E{if(!(e&&r.diagnostics.indexOf(e)<0))if(!i)i=new ED(n,o,e||r.diagnostics[0]);else{if(r.diagnostics.indexOf(i.diagnostic)<0)return!1;i=new ED(i.from,o,i.diagnostic)}}),i}function RnA(t,e){let A=e.pos,i=e.end||A,n=t.state.facet(Yg).hideOn(t,A,i);if(n!=null)return n;let o=t.startState.doc.lineAt(e.pos);return!!(t.effects.some(r=>r.is(uD))||t.changes.touchesRange(o.from,Math.max(o.to,i)))}function xnA(t,e){return t.field(Cc,!1)?e:e.concat(Pi.appendConfig.of(JnA))}function uNA(t,e){return{effects:xnA(t,[uD.of(e)])}}var uD=Pi.define(),WF=Pi.define(),LnA=Pi.define(),Cc=Ar.define({create(){return new NC(ut.none,null,null)},update(t,e){if(e.docChanged&&t.diagnostics.size){let A=t.diagnostics.map(e.changes),i=null,n=t.panel;if(t.selected){let o=e.changes.mapPos(t.selected.from,1);i=OE(A,t.selected.diagnostic,o)||OE(A,null,o)}!A.size&&n&&e.state.facet(Yg).autoPanel&&(n=null),t=new NC(A,n,i)}for(let A of e.effects)if(A.is(uD)){let i=e.state.facet(Yg).autoPanel?A.value.length?w3.open:null:t.panel;t=NC.init(A.value,i,e.state)}else A.is(WF)?t=new NC(t.diagnostics,A.value?w3.open:null,t.selected):A.is(LnA)&&(t=new NC(t.diagnostics,t.panel,A.value));return t},provide:t=>[MC.from(t,e=>e.panel),qt.decorations.from(t,e=>e.diagnostics)]});var fNA=ut.mark({class:"cm-lintRange cm-lintRange-active"});function mNA(t,e,A){let{diagnostics:i}=t.state.field(Cc),n,o=-1,r=-1;i.between(e-(A<0?1:0),e+(A>0?1:0),(a,c,{spec:l})=>{if(e>=a&&e<=c&&(a==c||(e>a||A>0)&&(eUnA(t,A,!1)))}var pNA=t=>{let e=t.state.field(Cc,!1);(!e||!e.panel)&&t.dispatch({effects:xnA(t.state,[WF.of(!0)])});let A=kC(t,w3.open);return A&&A.dom.querySelector(".cm-panel-lint ul").focus(),!0},SnA=t=>{let e=t.state.field(Cc,!1);return!e||!e.panel?!1:(t.dispatch({effects:WF.of(!1)}),!0)},wNA=t=>{let e=t.state.field(Cc,!1);if(!e)return!1;let A=t.state.selection.main,i=e.diagnostics.iter(A.to+1);return!i.value&&(i=e.diagnostics.iter(0),!i.value||i.from==A.from&&i.to==A.to)?!1:(t.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)};var NnA=[{key:"Mod-Shift-m",run:pNA,preventDefault:!0},{key:"F8",run:wNA}],DNA=go.fromClass(class{constructor(t){this.view=t,this.timeout=-1,this.set=!0;let{delay:e}=t.state.facet(Yg);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){clearTimeout(this.timeout);let t=Date.now();if(tPromise.resolve(i(this.view))),i=>{this.view.state.doc==e.doc&&this.view.dispatch(uNA(this.view.state,i.reduce((n,o)=>n.concat(o))))},i=>{Xr(this.view.state,i)})}}update(t){let e=t.state.facet(Yg);(t.docChanged||e!=t.startState.facet(Yg)||e.needsRefresh&&e.needsRefresh(t))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}});function yNA(t,e,A){let i=[],n=-1;for(let o of t)o.then(r=>{i.push(r),clearTimeout(n),i.length==t.length?e(i):n=setTimeout(()=>e(i),200)},A)}var Yg=qe.define({combine(t){return Object.assign({sources:t.map(e=>e.source).filter(e=>e!=null)},Wr(t.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{needsRefresh:(e,A)=>e?A?i=>e(i)||A(i):e:A}))}});function _nA(t,e={}){return[Yg.of({source:t,config:e}),DNA,JnA]}function GnA(t){let e=[];if(t)A:for(let{name:A}of t){for(let i=0;io.toLowerCase()==n.toLowerCase())){e.push(n);continue A}}e.push("")}return e}function UnA(t,e,A){var i;let n=A?GnA(e.actions):[];return Un("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},Un("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(t):e.message),(i=e.actions)===null||i===void 0?void 0:i.map((o,r)=>{let s=!1,a=C=>{if(C.preventDefault(),s)return;s=!0;let d=OE(t.state.field(Cc).diagnostics,e);d&&o.apply(t,d.from,d.to)},{name:c}=o,l=n[r]?c.indexOf(n[r]):-1,I=l<0?c:[c.slice(0,l),Un("u",c.slice(l,l+1)),c.slice(l+1)];return Un("button",{type:"button",class:"cm-diagnosticAction",onclick:a,onmousedown:a,"aria-label":` Action: ${c}${l<0?"":` (access key "${n[r]})"`}.`},I)}),e.source&&Un("div",{class:"cm-diagnosticSource"},e.source))}var VF=class extends Ic{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return Un("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}},QD=class{constructor(e,A){this.diagnostic=A,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=UnA(e,A,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}},w3=class t{constructor(e){this.view=e,this.items=[];let A=n=>{if(n.keyCode==27)SnA(this.view),this.view.focus();else if(n.keyCode==38||n.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(n.keyCode==40||n.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(n.keyCode==36)this.moveSelection(0);else if(n.keyCode==35)this.moveSelection(this.items.length-1);else if(n.keyCode==13)this.view.focus();else if(n.keyCode>=65&&n.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:o}=this.items[this.selectedIndex],r=GnA(o.actions);for(let s=0;s{for(let o=0;oSnA(this.view)},"\xD7")),this.update()}get selectedIndex(){let e=this.view.state.field(Cc).selected;if(!e)return-1;for(let A=0;A{for(let l of c.diagnostics){if(r.has(l))continue;r.add(l);let I=-1,C;for(let d=i;di&&(this.items.splice(i,I-i),n=!0)),A&&C.diagnostic==A.diagnostic?C.dom.hasAttribute("aria-selected")||(C.dom.setAttribute("aria-selected","true"),o=C):C.dom.hasAttribute("aria-selected")&&C.dom.removeAttribute("aria-selected"),i++}});i({sel:o.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:s,panel:a})=>{let c=a.height/this.list.offsetHeight;s.topa.bottom&&(this.list.scrollTop+=(s.bottom-a.bottom)/c)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),n&&this.sync()}sync(){let e=this.list.firstChild;function A(){let i=e;e=i.nextSibling,i.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)A();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)A()}moveSelection(e){if(this.selectedIndex<0)return;let A=this.view.state.field(Cc),i=OE(A.diagnostics,this.items[e].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:LnA.of(i)})}static open(e){return new t(e)}};function BD(t,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(t)}')`}function dD(t){return BD(``,'width="6" height="3"')}var vNA=qt.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:dD("#d11")},".cm-lintRange-warning":{backgroundImage:dD("orange")},".cm-lintRange-info":{backgroundImage:dD("#999")},".cm-lintRange-hint":{backgroundImage:dD("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function bNA(t){return t=="error"?4:t=="warning"?3:t=="info"?2:1}function KnA(t){let e="hint",A=1;for(let i of t){let n=bNA(i.severity);n>A&&(A=n,e=i.severity)}return e}var hD=class extends Fa{constructor(e){super(),this.diagnostics=e,this.severity=KnA(e)}toDOM(e){let A=document.createElement("div");A.className="cm-lint-marker cm-lint-marker-"+this.severity;let i=this.diagnostics,n=e.state.facet(fD).tooltipFilter;return n&&(i=n(i,e.state)),i.length&&(A.onmouseover=()=>kNA(e,A,i)),A}};function MNA(t,e){let A=i=>{let n=e.getBoundingClientRect();if(!(i.clientX>n.left-10&&i.clientXn.top-10&&i.clientYe.getBoundingClientRect()}}})}),e.onmouseout=e.onmousemove=null,MNA(t,e)}let{hoverTime:n}=t.state.facet(fD),o=setTimeout(i,n);e.onmouseout=()=>{clearTimeout(o),e.onmouseout=e.onmousemove=null},e.onmousemove=()=>{clearTimeout(o),o=setTimeout(i,n)}}function SNA(t,e){let A=Object.create(null);for(let n of e){let o=t.lineAt(n.from);(A[o.from]||(A[o.from]=[])).push(n)}let i=[];for(let n in A)i.push(new hD(A[n]).range(+n));return co.of(i,!0)}var RNA=Vw({class:"cm-gutter-lint",markers:t=>t.state.field(ZF),widgetMarker:(t,e,A)=>{let i=[];return t.state.field(ZF).between(A.from,A.to,(n,o,r)=>{n>A.from&&ni.is(XF)?i.value:A,t)},provide:t=>GE.from(t)}),xNA=qt.baseTheme({".cm-gutter-lint":{width:"1.4em","& .cm-gutterElement":{padding:".2em"}},".cm-lint-marker":{width:"1em",height:"1em"},".cm-lint-marker-info":{content:BD('')},".cm-lint-marker-warning":{content:BD('')},".cm-lint-marker-error":{content:BD('')}}),JnA=[Cc,qt.decorations.compute([Cc],t=>{let{selected:e,panel:A}=t.field(Cc);return!e||!A||e.from==e.to?ut.none:ut.set([fNA.range(e.from,e.to)])}),aiA(mNA,{hideOn:RnA}),vNA],fD=qe.define({combine(t){return Wr(t,{hoverTime:300,markerFilter:null,tooltipFilter:null})}});function TnA(t={}){return[fD.of(t),ZF,RNA,xNA,YnA]}var AN=class t{constructor(e,A,i,n,o,r,s,a,c,l=0,I){this.p=e,this.stack=A,this.state=i,this.reducePos=n,this.pos=o,this.score=r,this.buffer=s,this.bufferBase=a,this.curContext=c,this.lookAhead=l,this.parent=I}toString(){return`[${this.stack.filter((e,A)=>A%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,A,i=0){let n=e.parser.context;return new t(e,[],A,i,i,0,[],0,n?new mD(n,n.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,A){this.stack.push(this.state,A,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var A;let i=e>>19,n=e&65535,{parser:o}=this.p,r=this.reducePos=2e3&&!(!((A=this.p.parser.nodeSet.types[n])===null||A===void 0)&&A.isAnonymous)&&(c==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=l):this.p.lastBigReductionSizea;)this.stack.pop();this.reduceContext(n,c)}storeNode(e,A,i,n=4,o=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&r.buffer[s-4]==0&&r.buffer[s-1]>-1){if(A==i)return;if(r.buffer[s-2]>=A){r.buffer[s-2]=i;return}}}if(!o||this.pos==i)this.buffer.push(e,A,i,n);else{let r=this.buffer.length;if(r>0&&this.buffer[r-4]!=0){let s=!1;for(let a=r;a>0&&this.buffer[a-2]>i;a-=4)if(this.buffer[a-1]>=0){s=!0;break}if(s)for(;r>0&&this.buffer[r-2]>i;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,n>4&&(n-=4)}this.buffer[r]=e,this.buffer[r+1]=A,this.buffer[r+2]=i,this.buffer[r+3]=n}}shift(e,A,i,n){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let o=e,{parser:r}=this.p;(n>this.pos||A<=r.maxNode)&&(this.pos=n,r.stateFlag(o,1)||(this.reducePos=n)),this.pushState(o,i),this.shiftContext(A,i),A<=r.maxNode&&this.buffer.push(A,i,n,4)}else this.pos=n,this.shiftContext(A,i),A<=this.p.parser.maxNode&&this.buffer.push(A,i,n,4)}apply(e,A,i,n){e&65536?this.reduce(e):this.shift(e,A,i,n)}useNode(e,A){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);let n=this.pos;this.reducePos=this.pos=n+e.length,this.pushState(A,n),this.buffer.push(i,n,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,A=e.buffer.length;for(;A>0&&e.buffer[A-2]>e.reducePos;)A-=4;let i=e.buffer.slice(A),n=e.bufferBase+A;for(;e&&n==e.bufferBase;)e=e.parent;return new t(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,n,this.curContext,this.lookAhead,e)}recoverByDelete(e,A){let i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,A,4),this.storeNode(0,this.pos,A,i?8:4),this.pos=this.reducePos=A,this.score-=190}canShift(e){for(let A=new eN(this);;){let i=this.p.parser.stateSlot(A.state,4)||this.p.parser.hasAction(A.state,e);if(i==0)return!1;if((i&65536)==0)return!0;A.reduce(i)}}recoverByInsert(e){if(this.stack.length>=300)return[];let A=this.p.parser.nextStates(this.state);if(A.length>8||this.stack.length>=120){let n=[];for(let o=0,r;oa&1&&s==r)||n.push(A[o],r)}A=n}let i=[];for(let n=0;n>19,n=A&65535,o=this.stack.length-i*3;if(o<0||e.getGoto(this.stack[o],n,!1)<0){let r=this.findForcedReduction();if(r==null)return!1;A=r}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(A),!0}findForcedReduction(){let{parser:e}=this.p,A=[],i=(n,o)=>{if(!A.includes(n))return A.push(n),e.allActions(n,r=>{if(!(r&393216))if(r&65536){let s=(r>>19)-o;if(s>1){let a=r&65535,c=this.stack.length-s*3;if(c>=0&&e.getGoto(this.stack[c],a,!1)>=0)return s<<19|65536|a}}else{let s=i(r,o+1);if(s!=null)return s}})};return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let A=0;Athis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},mD=class{constructor(e,A){this.tracker=e,this.context=A,this.hash=e.strict?e.hash(A):0}},eN=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let A=e&65535,i=e>>19;i==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(i-1)*3;let n=this.start.p.parser.getGoto(this.stack[this.base-3],A,!0);this.state=n}},tN=class t{constructor(e,A,i){this.stack=e,this.pos=A,this.index=i,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,A=e.bufferBase+e.buffer.length){return new t(e,A,A-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new t(this.stack,this.pos,this.index)}};function D3(t,e=Uint16Array){if(typeof t!="string")return t;let A=null;for(let i=0,n=0;i=92&&r--,r>=34&&r--;let a=r-32;if(a>=46&&(a-=46,s=!0),o+=a,s)break;o*=46}A?A[n++]=o:A=new e(o)}return A}var PE=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},HnA=new PE,iN=class{constructor(e,A){this.input=e,this.ranges=A,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=HnA,this.rangeIndex=0,this.pos=this.chunkPos=A[0].from,this.range=A[0],this.end=A[A.length-1].to,this.readNext()}resolveOffset(e,A){let i=this.range,n=this.rangeIndex,o=this.pos+e;for(;oi.to:o>=i.to;){if(n==this.ranges.length-1)return null;let r=this.ranges[++n];o+=r.from-i.to,i=r}return o}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,A.from);return this.end}peek(e){let A=this.chunkOff+e,i,n;if(A>=0&&A=this.chunk2Pos&&is.to&&(this.chunk2=this.chunk2.slice(0,s.to-i)),n=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),n}acceptToken(e,A=0){let i=A?this.resolveOffset(A,-1):this.pos;if(i==null||i=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,A){if(A?(this.token=A,A.start=e,A.lookAhead=e+1,A.value=A.extended=-1):this.token=HnA,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&A<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,A-this.chunkPos);if(e>=this.chunk2Pos&&A<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,A-this.chunk2Pos);if(e>=this.range.from&&A<=this.range.to)return this.input.read(e,A);let i="";for(let n of this.ranges){if(n.from>=A)break;n.to>e&&(i+=this.input.read(Math.max(n.from,e),Math.min(n.to,A)))}return i}},R1=class{constructor(e,A){this.data=e,this.id=A}token(e,A){let{parser:i}=A.p;qnA(this.data,e,A,this.id,i.data,i.tokenPrecTable)}};R1.prototype.contextual=R1.prototype.fallback=R1.prototype.extend=!1;var nN=class{constructor(e,A,i){this.precTable=A,this.elseToken=i,this.data=typeof e=="string"?D3(e):e}token(e,A){let i=e.pos,n=0;for(;;){let o=e.next<0,r=e.resolveOffset(1,1);if(qnA(this.data,e,A,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(o||n++,r==null)break;e.reset(r,e.token)}n&&(e.reset(i,e.token),e.acceptToken(this.elseToken,n))}};nN.prototype.contextual=R1.prototype.fallback=R1.prototype.extend=!1;function qnA(t,e,A,i,n,o){let r=0,s=1<0){let B=t[d];if(a.allows(B)&&(e.token.value==-1||e.token.value==B||FNA(B,e.token.value,n,o))){e.acceptToken(B);break}}let l=e.next,I=0,C=t[r+2];if(e.next<0&&C>I&&t[c+C*3-3]==65535){r=t[c+C*3-1];continue A}for(;I>1,B=c+d+(d<<1),E=t[B],h=t[B+1]||65536;if(l=h)I=d+1;else{r=t[B+2],e.advance();continue A}}break}}function znA(t,e,A){for(let i=e,n;(n=t[i])!=65535;i++)if(n==A)return i-e;return-1}function FNA(t,e,A,i){let n=znA(A,i,e);return n<0||znA(A,i,t)e)&&!i.type.isError)return A<0?Math.max(0,Math.min(i.to-1,e-25)):Math.min(t.length,Math.max(i.from+1,e+25));if(A<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return A<0?0:t.length}}var oN=class{constructor(e,A){this.fragments=e,this.nodeSet=A,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?OnA(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?OnA(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=r,null;if(o instanceof ur){if(r==e){if(r=Math.max(this.safeFrom,e)&&(this.trees.push(o),this.start.push(r),this.index.push(0))}else this.index[A]++,this.nextStart=r+o.length}}},rN=class{constructor(e,A){this.stream=A,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(i=>new PE)}getActions(e){let A=0,i=null,{parser:n}=e.p,{tokenizers:o}=n,r=n.stateSlot(e.state,3),s=e.curContext?e.curContext.hash:0,a=0;for(let c=0;cI.end+25&&(a=Math.max(I.lookAhead,a)),I.value!=0)){let C=A;if(I.extended>-1&&(A=this.addActions(e,I.extended,I.end,A)),A=this.addActions(e,I.value,I.end,A),!l.extend&&(i=I,A>C))break}}for(;this.actions.length>A;)this.actions.pop();return a&&e.setLookAhead(a),!i&&e.pos==this.stream.end&&(i=new PE,i.value=e.p.parser.eofTerm,i.start=i.end=e.pos,A=this.addActions(e,i.value,i.end,A)),this.mainToken=i,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let A=new PE,{pos:i,p:n}=e;return A.start=i,A.end=Math.min(i+1,n.stream.end),A.value=i==n.stream.end?n.parser.eofTerm:0,A}updateCachedToken(e,A,i){let n=this.stream.clipPos(i.pos);if(A.token(this.stream.reset(n,e),i),e.value>-1){let{parser:o}=i.p;for(let r=0;r=0&&i.p.parser.dialect.allows(s>>1)){(s&1)==0?e.value=s>>1:e.extended=s>>1;break}}}else e.value=0,e.end=this.stream.clipPos(n+1)}putAction(e,A,i,n){for(let o=0;oe.bufferLength*4?new oN(i,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,A=this.minStackPos,i=this.stacks=[],n,o;if(this.bigReductionCount>300&&e.length==1){let[r]=e;for(;r.forceReduce()&&r.stack.length&&r.stack[r.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let r=0;rA)i.push(s);else{if(this.advanceStack(s,i,e))continue;{n||(n=[],o=[]),n.push(s);let a=this.tokens.getMainToken(s);o.push(a.value,a.end)}}break}}if(!i.length){let r=n&&NNA(n);if(r)return dc&&console.log("Finish with "+this.stackID(r)),this.stackToTree(r);if(this.parser.strict)throw dc&&n&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+A);this.recovering||(this.recovering=5)}if(this.recovering&&n){let r=this.stoppedAt!=null&&n[0].pos>this.stoppedAt?n[0]:this.runRecovery(n,o,i);if(r)return dc&&console.log("Force-finish "+this.stackID(r)),this.stackToTree(r.forceAll())}if(this.recovering){let r=this.recovering==1?1:this.recovering*3;if(i.length>r)for(i.sort((s,a)=>a.score-s.score);i.length>r;)i.pop();i.some(s=>s.reducePos>A)&&this.recovering--}else if(i.length>1){A:for(let r=0;r500&&c.buffer.length>500)if((s.score-c.score||s.buffer.length-c.buffer.length)>0)i.splice(a--,1);else{i.splice(r--,1);continue A}}}i.length>12&&i.splice(12,i.length-12)}this.minStackPos=i[0].pos;for(let r=1;r ":"";if(this.stoppedAt!=null&&n>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,l=c?e.curContext.hash:0;for(let I=this.fragments.nodeAt(n);I;){let C=this.parser.nodeSet.types[I.type.id]==I.type?o.getGoto(e.state,I.type.id):-1;if(C>-1&&I.length&&(!c||(I.prop(fi.contextHash)||0)==l))return e.useNode(I,C),dc&&console.log(r+this.stackID(e)+` (via reuse of ${o.getName(I.type.id)})`),!0;if(!(I instanceof ur)||I.children.length==0||I.positions[0]>0)break;let d=I.children[0];if(d instanceof ur&&I.positions[0]==0)I=d;else break}}let s=o.stateSlot(e.state,4);if(s>0)return e.reduce(s),dc&&console.log(r+this.stackID(e)+` (via always-reduce ${o.getName(s&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let c=0;cn?A.push(B):i.push(B)}return!1}advanceFully(e,A){let i=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return PnA(e,A),!0}}runRecovery(e,A,i){let n=null,o=!1;for(let r=0;r ":"";if(s.deadEnd&&(o||(o=!0,s.restart(),dc&&console.log(l+this.stackID(s)+" (restarted)"),this.advanceFully(s,i))))continue;let I=s.split(),C=l;for(let d=0;I.forceReduce()&&d<10&&(dc&&console.log(C+this.stackID(I)+" (via force-reduce)"),!this.advanceFully(I,i));d++)dc&&(C=this.stackID(I)+" -> ");for(let d of s.recoverByInsert(a))dc&&console.log(l+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,i);this.stream.end>s.pos?(c==s.pos&&(c++,a=0),s.recoverByDelete(a,c),dc&&console.log(l+this.stackID(s)+` (via recover-delete ${this.parser.getName(a)})`),PnA(s,i)):(!n||n.scoree.topRules[s][1]),n=[];for(let s=0;s=0)o(l,a,s[c++]);else{let I=s[c+-l];for(let C=-l;C>0;C--)o(s[c++],a,I);c++}}}this.nodeSet=new I3(A.map((s,a)=>Fs.define({name:a>=this.minRepeatTerm?void 0:s,id:a,props:n[a],top:i.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let r=D3(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let s=0;stypeof s=="number"?new R1(r,s):s),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,A,i){let n=new sN(this,e,A,i);for(let o of this.wrappers)n=o(n,e,A,i);return n}getGoto(e,A,i=!1){let n=this.goto;if(A>=n[0])return-1;for(let o=n[A+1];;){let r=n[o++],s=r&1,a=n[o++];if(s&&i)return a;for(let c=o+(r>>1);o0}validAction(e,A){return!!this.allActions(e,i=>i==A?!0:null)}allActions(e,A){let i=this.stateSlot(e,4),n=i?A(i):void 0;for(let o=this.stateSlot(e,1);n==null;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=z0(this.data,o+2);else break;n=A(z0(this.data,o+1))}return n}nextStates(e){let A=[];for(let i=this.stateSlot(e,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=z0(this.data,i+2);else break;if((this.data[i+2]&1)==0){let n=this.data[i+1];A.some((o,r)=>r&1&&o==n)||A.push(this.data[i],n)}}return A}configure(e){let A=Object.assign(Object.create(t.prototype),this);if(e.props&&(A.nodeSet=this.nodeSet.extend(...e.props)),e.top){let i=this.topRules[e.top];if(!i)throw new RangeError(`Invalid top rule name ${e.top}`);A.top=i}return e.tokenizers&&(A.tokenizers=this.tokenizers.map(i=>{let n=e.tokenizers.find(o=>o.from==i);return n?n.to:i})),e.specializers&&(A.specializers=this.specializers.slice(),A.specializerSpecs=this.specializerSpecs.map((i,n)=>{let o=e.specializers.find(s=>s.from==i.external);if(!o)return i;let r=Object.assign(Object.assign({},i),{external:o.to});return A.specializers[n]=jnA(r),r})),e.contextTracker&&(A.context=e.contextTracker),e.dialect&&(A.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(A.strict=e.strict),e.wrap&&(A.wrappers=A.wrappers.concat(e.wrap)),e.bufferLength!=null&&(A.bufferLength=e.bufferLength),A}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let A=this.dynamicPrecedences;return A==null?0:A[e]||0}parseDialect(e){let A=Object.keys(this.dialects),i=A.map(()=>!1);if(e)for(let o of e.split(" ")){let r=A.indexOf(o);r>=0&&(i[r]=!0)}let n=null;for(let o=0;oi)&&A.p.parser.stateFlag(A.state,2)&&(!e||e.scoret.external(A,i)<<1|e}return t.get}var _NA=iD({String:Se.string,Number:Se.number,"True False":Se.bool,PropertyName:Se.propertyName,Null:Se.null,", :":Se.separator,"[ ]":Se.squareBracket,"{ }":Se.brace}),VnA=pD.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"\u26A0 JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[_NA],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0});var GNA=nD.define({name:"json",parser:VnA.configure({props:[KF.add({Object:YF({except:/^\s*\}/}),Array:YF({except:/^\s*\]/})}),JF.add({"Object Array":xiA})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function ZnA(){return new oD(GNA)}var WnA=typeof String.prototype.normalize=="function"?t=>t.normalize("NFKD"):t=>t,L1=class{constructor(e,A,i=0,n=e.length,o,r){this.test=r,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,n),this.bufferStart=i,this.normalize=o?s=>o(WnA(s)):WnA,this.query=this.normalize(A)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Bs(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let A=T4(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=lc(e);let n=this.normalize(A);if(n.length)for(let o=0,r=i;;o++){let s=n.charCodeAt(o),a=this.match(s,r,this.bufferPos+this.bufferStart);if(o==n.length-1){if(a)return this.value=a,this;break}r==i&&othis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let A=this.matchPos<=this.to&&this.re.exec(this.curLine);if(A){let i=this.curLineStart+A.index,n=i+A[0].length;if(this.matchPos=MD(this.text,n+(i==n?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,n,A)))return this.value={from:i,to:n,match:A},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=i||n.to<=A){let s=new t(A,e.sliceString(A,i));return cN.set(e,s),s}if(n.from==A&&n.to==i)return n;let{text:o,from:r}=n;return r>A&&(o=e.sliceString(A,r)+o,r=A),n.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,A=this.re.exec(this.flat.text);if(A&&!A[0]&&A.index==e&&(this.re.lastIndex=e+1,A=this.re.exec(this.flat.text)),A){let i=this.flat.from+A.index,n=i+A[0].length;if((this.flat.to>=this.to||A.index+A[0].length<=this.flat.text.length-10)&&(!this.test||this.test(i,n,A)))return this.value={from:i,to:n,match:A},this.matchPos=MD(this.text,n+(i==n?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=vD.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}};typeof Symbol<"u"&&(yD.prototype[Symbol.iterator]=bD.prototype[Symbol.iterator]=function(){return this});function UNA(t){try{return new RegExp(t,EN),!0}catch{return!1}}function MD(t,e){if(e>=t.length)return e;let A=t.lineAt(e),i;for(;e=56320&&i<57344;)e++;return e}function lN(t){let e=String(t.state.doc.lineAt(t.state.selection.main.head).number),A=Un("input",{class:"cm-textfield",name:"line",value:e}),i=Un("form",{class:"cm-gotoLine",onkeydown:o=>{o.keyCode==27?(o.preventDefault(),t.dispatch({effects:y3.of(!1)}),t.focus()):o.keyCode==13&&(o.preventDefault(),n())},onsubmit:o=>{o.preventDefault(),n()}},Un("label",t.state.phrase("Go to line"),": ",A)," ",Un("button",{class:"cm-button",type:"submit"},t.state.phrase("go")),Un("button",{name:"close",onclick:()=>{t.dispatch({effects:y3.of(!1)}),t.focus()},"aria-label":t.state.phrase("close"),type:"button"},["\xD7"]));function n(){let o=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(A.value);if(!o)return;let{state:r}=t,s=r.doc.lineAt(r.selection.main.head),[,a,c,l,I]=o,C=l?+l.slice(1):0,d=c?+c:s.number;if(c&&I){let h=d/100;a&&(h=h*(a=="-"?-1:1)+s.number/r.doc.lines),d=Math.round(r.doc.lines*h)}else c&&a&&(d=d*(a=="-"?-1:1)+s.number);let B=r.doc.line(Math.max(1,Math.min(r.doc.lines,d))),E=ae.cursor(B.from+Math.max(0,Math.min(C,B.length)));t.dispatch({effects:[y3.of(!1),qt.scrollIntoView(E.from,{y:"center"})],selection:E}),t.focus()}return{dom:i}}var y3=Pi.define(),XnA=Ar.define({create(){return!0},update(t,e){for(let A of e.effects)A.is(y3)&&(t=A.value);return t},provide:t=>MC.from(t,e=>e?lN:null)}),KNA=t=>{let e=kC(t,lN);if(!e){let A=[y3.of(!0)];t.state.field(XnA,!1)==null&&A.push(Pi.appendConfig.of([XnA,YNA])),t.dispatch({effects:A}),e=kC(t,lN)}return e&&e.dom.querySelector("input").select(),!0},YNA=qt.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px",position:"relative","& label":{fontSize:"80%"},"& [name=close]":{position:"absolute",top:"0",bottom:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:"0"}}}),JNA={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},toA=qe.define({combine(t){return Wr(t,JNA,{highlightWordAroundCursor:(e,A)=>e||A,minSelectionLength:Math.min,maxMatches:Math.min})}});function ioA(t){let e=[PNA,ONA];return t&&e.push(toA.of(t)),e}var TNA=ut.mark({class:"cm-selectionMatch"}),HNA=ut.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function $nA(t,e,A,i){return(A==0||t(e.sliceDoc(A-1,A))!=ao.Word)&&(i==e.doc.length||t(e.sliceDoc(i,i+1))!=ao.Word)}function zNA(t,e,A,i){return t(e.sliceDoc(A,A+1))==ao.Word&&t(e.sliceDoc(i-1,i))==ao.Word}var ONA=go.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.selectionSet||t.docChanged||t.viewportChanged)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=t.state.facet(toA),{state:A}=t,i=A.selection;if(i.ranges.length>1)return ut.none;let n=i.main,o,r=null;if(n.empty){if(!e.highlightWordAroundCursor)return ut.none;let a=A.wordAt(n.head);if(!a)return ut.none;r=A.charCategorizer(n.head),o=A.sliceDoc(a.from,a.to)}else{let a=n.to-n.from;if(a200)return ut.none;if(e.wholeWords){if(o=A.sliceDoc(n.from,n.to),r=A.charCategorizer(n.head),!($nA(r,A,n.from,n.to)&&zNA(r,A,n.from,n.to)))return ut.none}else if(o=A.sliceDoc(n.from,n.to),!o)return ut.none}let s=[];for(let a of t.visibleRanges){let c=new L1(A.doc,o,a.from,a.to);for(;!c.next().done;){let{from:l,to:I}=c.value;if((!r||$nA(r,A,l,I))&&(n.empty&&l<=n.from&&I>=n.to?s.push(HNA.range(l,I)):(l>=n.to||I<=n.from)&&s.push(TNA.range(l,I)),s.length>e.maxMatches))return ut.none}}return ut.set(s)}},{decorations:t=>t.decorations}),PNA=qt.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),jNA=({state:t,dispatch:e})=>{let{selection:A}=t,i=ae.create(A.ranges.map(n=>t.wordAt(n.head)||ae.cursor(n.head)),A.mainIndex);return i.eq(A)?!1:(e(t.update({selection:i})),!0)};function qNA(t,e){let{main:A,ranges:i}=t.selection,n=t.wordAt(A.head),o=n&&n.from==A.from&&n.to==A.to;for(let r=!1,s=new L1(t.doc,e,i[i.length-1].to);;)if(s.next(),s.done){if(r)return null;s=new L1(t.doc,e,0,Math.max(0,i[i.length-1].from-1)),r=!0}else{if(r&&i.some(a=>a.from==s.value.from))continue;if(o){let a=t.wordAt(s.value.from);if(!a||a.from!=s.value.from||a.to!=s.value.to)continue}return s.value}}var VNA=({state:t,dispatch:e})=>{let{ranges:A}=t.selection;if(A.some(o=>o.from===o.to))return jNA({state:t,dispatch:e});let i=t.sliceDoc(A[0].from,A[0].to);if(t.selection.ranges.some(o=>t.sliceDoc(o.from,o.to)!=i))return!1;let n=qNA(t,i);return n?(e(t.update({selection:t.selection.addRange(ae.range(n.from,n.to),!1),effects:qt.scrollIntoView(n.to)})),!0):!1},_C=qe.define({combine(t){return Wr(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new dN(e),scrollToMatch:e=>qt.scrollIntoView(e)})}});function noA(t){return t?[_C.of(t),BN]:BN}var kD=class{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||UNA(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(A,i)=>i=="n"?` -`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new IN(this):new gN(this)}getCursor(e,A=0,i){let n=e.doc?e:hr.create({doc:e});return i==null&&(i=n.doc.length),this.regexp?qE(this,n,A,i):jE(this,n,A,i)}},SD=class{constructor(e){this.spec=e}};function jE(t,e,A,i){return new L1(e.doc,t.unquoted,A,i,t.caseSensitive?void 0:n=>n.toLowerCase(),t.wholeWord?ZNA(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function ZNA(t,e){return(A,i,n,o)=>((o>A||o+n.length=A)return null;n.push(i.value)}return n}highlight(e,A,i,n){let o=jE(this.spec,e,Math.max(0,A-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!o.next().done;)n(o.value.from,o.value.to)}};function qE(t,e,A,i){return new yD(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:t.wholeWord?WNA(e.charCategorizer(e.selection.main.head)):void 0},A,i)}function RD(t,e){return t.slice(yr(t,e,!1),e)}function xD(t,e){return t.slice(e,yr(t,e))}function WNA(t){return(e,A,i)=>!i[0].length||(t(RD(i.input,i.index))!=ao.Word||t(xD(i.input,i.index))!=ao.Word)&&(t(xD(i.input,i.index+i[0].length))!=ao.Word||t(RD(i.input,i.index+i[0].length))!=ao.Word)}var IN=class extends SD{nextMatch(e,A,i){let n=qE(this.spec,e,i,e.doc.length).next();return n.done&&(n=qE(this.spec,e,0,A).next()),n.done?null:n.value}prevMatchInRange(e,A,i){for(let n=1;;n++){let o=Math.max(A,i-n*1e4),r=qE(this.spec,e,o,i),s=null;for(;!r.next().done;)s=r.value;if(s&&(o==A||s.from>o+10))return s;if(o==A)return null}}prevMatch(e,A,i){return this.prevMatchInRange(e,0,A)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(A,i)=>{if(i=="&")return e.match[0];if(i=="$")return"$";for(let n=i.length;n>0;n--){let o=+i.slice(0,n);if(o>0&&o=A)return null;n.push(i.value)}return n}highlight(e,A,i,n){let o=qE(this.spec,e,Math.max(0,A-250),Math.min(i+250,e.doc.length));for(;!o.next().done;)n(o.value.from,o.value.to)}},b3=Pi.define(),QN=Pi.define(),x1=Ar.define({create(t){return new v3(CN(t).create(),null)},update(t,e){for(let A of e.effects)A.is(b3)?t=new v3(A.value.create(),t.panel):A.is(QN)&&(t=new v3(t.query,A.value?hN:null));return t},provide:t=>MC.from(t,e=>e.panel)});var v3=class{constructor(e,A){this.query=e,this.panel=A}},XNA=ut.mark({class:"cm-searchMatch"}),$NA=ut.mark({class:"cm-searchMatch cm-searchMatch-selected"}),A_A=go.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(x1))}update(t){let e=t.state.field(x1);(e!=t.startState.field(x1)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return ut.none;let{view:A}=this,i=new ds;for(let n=0,o=A.visibleRanges,r=o.length;no[n+1].from-2*250;)a=o[++n].to;t.highlight(A.state,s,a,(c,l)=>{let I=A.state.selection.ranges.some(C=>C.from==c&&C.to==l);i.add(c,l,I?$NA:XNA)})}return i.finish()}},{decorations:t=>t.decorations});function M3(t){return e=>{let A=e.state.field(x1,!1);return A&&A.query.spec.valid?t(e,A):ND(e)}}var LD=M3((t,{query:e})=>{let{to:A}=t.state.selection.main,i=e.nextMatch(t.state,A,A);if(!i)return!1;let n=ae.single(i.from,i.to),o=t.state.facet(_C);return t.dispatch({selection:n,effects:[uN(t,i),o.scrollToMatch(n.main,t)],userEvent:"select.search"}),roA(t),!0}),FD=M3((t,{query:e})=>{let{state:A}=t,{from:i}=A.selection.main,n=e.prevMatch(A,i,i);if(!n)return!1;let o=ae.single(n.from,n.to),r=t.state.facet(_C);return t.dispatch({selection:o,effects:[uN(t,n),r.scrollToMatch(o.main,t)],userEvent:"select.search"}),roA(t),!0}),e_A=M3((t,{query:e})=>{let A=e.matchAll(t.state,1e3);return!A||!A.length?!1:(t.dispatch({selection:ae.create(A.map(i=>ae.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),t_A=({state:t,dispatch:e})=>{let A=t.selection;if(A.ranges.length>1||A.main.empty)return!1;let{from:i,to:n}=A.main,o=[],r=0;for(let s=new L1(t.doc,t.sliceDoc(i,n));!s.next().done;){if(o.length>1e3)return!1;s.value.from==i&&(r=o.length),o.push(ae.range(s.value.from,s.value.to))}return e(t.update({selection:ae.create(o,r),userEvent:"select.search.matches"})),!0},AoA=M3((t,{query:e})=>{let{state:A}=t,{from:i,to:n}=A.selection.main;if(A.readOnly)return!1;let o=e.nextMatch(A,i,i);if(!o)return!1;let r=o,s=[],a,c,l=[];r.from==i&&r.to==n&&(c=A.toText(e.getReplacement(r)),s.push({from:r.from,to:r.to,insert:c}),r=e.nextMatch(A,r.from,r.to),l.push(qt.announce.of(A.phrase("replaced match on line $",A.doc.lineAt(i).number)+".")));let I=t.state.changes(s);return r&&(a=ae.single(r.from,r.to).map(I),l.push(uN(t,r)),l.push(A.facet(_C).scrollToMatch(a.main,t))),t.dispatch({changes:I,selection:a,effects:l,userEvent:"input.replace"}),!0}),i_A=M3((t,{query:e})=>{if(t.state.readOnly)return!1;let A=e.matchAll(t.state,1e9).map(n=>{let{from:o,to:r}=n;return{from:o,to:r,insert:e.getReplacement(n)}});if(!A.length)return!1;let i=t.state.phrase("replaced $ matches",A.length)+".";return t.dispatch({changes:A,effects:qt.announce.of(i),userEvent:"input.replace.all"}),!0});function hN(t){return t.state.facet(_C).createPanel(t)}function CN(t,e){var A,i,n,o,r;let s=t.selection.main,a=s.empty||s.to>s.from+100?"":t.sliceDoc(s.from,s.to);if(e&&!a)return e;let c=t.facet(_C);return new kD({search:((A=e?.literal)!==null&&A!==void 0?A:c.literal)?a:a.replace(/\n/g,"\\n"),caseSensitive:(i=e?.caseSensitive)!==null&&i!==void 0?i:c.caseSensitive,literal:(n=e?.literal)!==null&&n!==void 0?n:c.literal,regexp:(o=e?.regexp)!==null&&o!==void 0?o:c.regexp,wholeWord:(r=e?.wholeWord)!==null&&r!==void 0?r:c.wholeWord})}function ooA(t){let e=kC(t,hN);return e&&e.dom.querySelector("[main-field]")}function roA(t){let e=ooA(t);e&&e==t.root.activeElement&&e.select()}var ND=t=>{let e=t.state.field(x1,!1);if(e&&e.panel){let A=ooA(t);if(A&&A!=t.root.activeElement){let i=CN(t.state,e.query.spec);i.valid&&t.dispatch({effects:b3.of(i)}),A.focus(),A.select()}}else t.dispatch({effects:[QN.of(!0),e?b3.of(CN(t.state,e.query.spec)):Pi.appendConfig.of(BN)]});return!0},_D=t=>{let e=t.state.field(x1,!1);if(!e||!e.panel)return!1;let A=kC(t,hN);return A&&A.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:QN.of(!1)}),!0},soA=[{key:"Mod-f",run:ND,scope:"editor search-panel"},{key:"F3",run:LD,shift:FD,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:LD,shift:FD,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:_D,scope:"editor search-panel"},{key:"Mod-Shift-l",run:t_A},{key:"Mod-Alt-g",run:KNA},{key:"Mod-d",run:VNA,preventDefault:!0}],dN=class{constructor(e){this.view=e;let A=this.query=e.state.field(x1).query.spec;this.commit=this.commit.bind(this),this.searchField=Un("input",{value:A.search,placeholder:Bc(e,"Find"),"aria-label":Bc(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Un("input",{value:A.replace,placeholder:Bc(e,"Replace"),"aria-label":Bc(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Un("input",{type:"checkbox",name:"case",form:"",checked:A.caseSensitive,onchange:this.commit}),this.reField=Un("input",{type:"checkbox",name:"re",form:"",checked:A.regexp,onchange:this.commit}),this.wordField=Un("input",{type:"checkbox",name:"word",form:"",checked:A.wholeWord,onchange:this.commit});function i(n,o,r){return Un("button",{class:"cm-button",name:n,onclick:o,type:"button"},r)}this.dom=Un("div",{onkeydown:n=>this.keydown(n),class:"cm-search"},[this.searchField,i("next",()=>LD(e),[Bc(e,"next")]),i("prev",()=>FD(e),[Bc(e,"previous")]),i("select",()=>e_A(e),[Bc(e,"all")]),Un("label",null,[this.caseField,Bc(e,"match case")]),Un("label",null,[this.reField,Bc(e,"regexp")]),Un("label",null,[this.wordField,Bc(e,"by word")]),...e.state.readOnly?[]:[Un("br"),this.replaceField,i("replace",()=>AoA(e),[Bc(e,"replace")]),i("replaceAll",()=>i_A(e),[Bc(e,"replace all")])],Un("button",{name:"close",onclick:()=>_D(e),"aria-label":Bc(e,"close"),type:"button"},["\xD7"])])}commit(){let e=new kD({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:b3.of(e)}))}keydown(e){ZtA(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?FD:LD)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),AoA(this.view))}update(e){for(let A of e.transactions)for(let i of A.effects)i.is(b3)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(_C).top}};function Bc(t,e){return t.state.phrase(e)}var wD=30,DD=/[\s\.,:;?!]/;function uN(t,{from:e,to:A}){let i=t.state.doc.lineAt(e),n=t.state.doc.lineAt(A).to,o=Math.max(i.from,e-wD),r=Math.min(n,A+wD),s=t.state.sliceDoc(o,r);if(o!=i.from){for(let a=0;as.length-wD;a--)if(!DD.test(s[a-1])&&DD.test(s[a])){s=s.slice(0,a);break}}return qt.announce.of(`${t.state.phrase("current match")}. ${s} ${t.state.phrase("on line")} ${i.number}.`)}var n_A=qt.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),BN=[x1,Dl.low(A_A),n_A];var UD=class{constructor(e,A,i,n){this.state=e,this.pos=A,this.explicit=i,this.view=n,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let A=$r(this.state).resolveInner(this.pos,-1);for(;A&&e.indexOf(A.name)<0;)A=A.parent;return A?{from:A.from,to:this.pos,text:this.state.sliceDoc(A.from,this.pos),type:A.type}:null}matchBefore(e){let A=this.state.doc.lineAt(this.pos),i=Math.max(A.from,this.pos-250),n=A.text.slice(i-A.from,this.pos-A.from),o=n.search(EoA(e,!1));return o<0?null:{from:i+o,to:this.pos,text:n.slice(o)}}get aborted(){return this.abortListeners==null}addEventListener(e,A,i){e=="abort"&&this.abortListeners&&(this.abortListeners.push(A),i&&i.onDocChange&&(this.abortOnDocChange=!0))}};function aoA(t){let e=Object.keys(t).join(""),A=/\w/.test(e);return A&&(e=e.replace(/\w/g,"")),`[${A?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function o_A(t){let e=Object.create(null),A=Object.create(null);for(let{label:n}of t){e[n[0]]=!0;for(let o=1;otypeof n=="string"?{label:n}:n),[A,i]=e.every(n=>/^\w+$/.test(n.label))?[/\w*$/,/\w+$/]:o_A(e);return n=>{let o=n.matchBefore(i);return o||n.explicit?{from:o?o.from:n.pos,options:e,validFor:A}:null}}var KD=class{constructor(e,A,i,n){this.completion=e,this.source=A,this.match=i,this.score=n}};function UC(t){return t.selection.main.from}function EoA(t,e){var A;let{source:i}=t,n=e&&i[0]!="^",o=i[i.length-1]!="$";return!n&&!o?t:new RegExp(`${n?"^":""}(?:${i})${o?"$":""}`,(A=t.flags)!==null&&A!==void 0?A:t.ignoreCase?"i":"")}var QoA=xa.define();function s_A(t,e,A,i){let{main:n}=t.selection,o=A-n.from,r=i-n.from;return Object.assign(Object.assign({},t.changeByRange(s=>{if(s!=n&&A!=i&&t.sliceDoc(s.from+o,s.from+r)!=t.sliceDoc(A,i))return{range:s};let a=t.toText(e);return{changes:{from:s.from+o,to:i==n.from?s.to:s.from+r,insert:a},range:ae.cursor(s.from+o+a.length)}})),{scrollIntoView:!0,userEvent:"input.complete"})}var coA=new WeakMap;function a_A(t){if(!Array.isArray(t))return t;let e=coA.get(t);return e||coA.set(t,e=r_A(t)),e}var YD=Pi.define(),k3=Pi.define(),pN=class{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let A=0;A=48&&w<=57||w>=97&&w<=122?2:w>=65&&w<=90?1:0:(_=T4(w))!=_.toLowerCase()?1:_!=_.toUpperCase()?2:0;(!D||K==1&&h||R==0&&K!=0)&&(A[I]==w||i[I]==w&&(C=!0)?r[I++]=D:r.length&&(u=!1)),R=K,D+=lc(w)}return I==a&&r[0]==0&&u?this.result(-100+(C?-200:0),r,e):d==a&&B==0?this.ret(-200-e.length+(E==e.length?0:-100),[0,E]):s>-1?this.ret(-700-e.length,[s,s+this.pattern.length]):d==a?this.ret(-900-e.length,[B,E]):I==a?this.result(-100+(C?-200:0)+-700+(u?0:-1100),r,e):A.length==2?null:this.result((n[0]?-700:0)+-200+-1100,n,e)}result(e,A,i){let n=[],o=0;for(let r of A){let s=r+(this.astral?lc(Bs(i,r)):1);o&&n[o-1]==r?n[o-1]=s:(n[o++]=r,n[o++]=s)}return this.ret(e-i.length,n)}},wN=class{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:c_A,filterStrict:!1,compareCompletions:(e,A)=>e.label.localeCompare(A.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,A)=>e&&A,closeOnBlur:(e,A)=>e&&A,icons:(e,A)=>e&&A,tooltipClass:(e,A)=>i=>loA(e(i),A(i)),optionClass:(e,A)=>i=>loA(e(i),A(i)),addToOptions:(e,A)=>e.concat(A),filterStrict:(e,A)=>e||A})}});function loA(t,e){return t?e?t+" "+e:t:e}function c_A(t,e,A,i,n,o){let r=t.textDirection==lo.RTL,s=r,a=!1,c="top",l,I,C=e.left-n.left,d=n.right-e.right,B=i.right-i.left,E=i.bottom-i.top;if(s&&C=E||D>e.top?l=A.bottom-e.top:(c="bottom",l=e.bottom-A.top)}let h=(e.bottom-e.top)/o.offsetHeight,u=(e.right-e.left)/o.offsetWidth;return{style:`${c}: ${l/h}px; max-width: ${I/u}px`,class:"cm-completionInfo-"+(a?r?"left-narrow":"right-narrow":s?"left":"right")}}function l_A(t){let e=t.addToOptions.slice();return t.icons&&e.push({render(A){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),A.type&&i.classList.add(...A.type.split(/\s+/g).map(n=>"cm-completionIcon-"+n)),i.setAttribute("aria-hidden","true"),i},position:20}),e.push({render(A,i,n,o){let r=document.createElement("span");r.className="cm-completionLabel";let s=A.displayLabel||A.label,a=0;for(let c=0;ca&&r.appendChild(document.createTextNode(s.slice(a,l)));let C=r.appendChild(document.createElement("span"));C.appendChild(document.createTextNode(s.slice(l,I))),C.className="cm-completionMatchedText",a=I}return aA.position-i.position).map(A=>A.render)}function fN(t,e,A){if(t<=A)return{from:0,to:t};if(e<0&&(e=0),e<=t>>1){let n=Math.floor(e/A);return{from:n*A,to:(n+1)*A}}let i=Math.floor((t-e)/A);return{from:t-(i+1)*A,to:t-i*A}}var DN=class{constructor(e,A,i){this.view=e,this.stateField=A,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:a=>this.placeInfo(a),key:this},this.space=null,this.currentClass="";let n=e.state.field(A),{options:o,selected:r}=n.open,s=e.state.facet(As);this.optionContent=l_A(s),this.optionClass=s.optionClass,this.tooltipClass=s.tooltipClass,this.range=fN(o.length,r,s.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",a=>{let{options:c}=e.state.field(A).open;for(let l=a.target,I;l&&l!=this.dom;l=l.parentNode)if(l.nodeName=="LI"&&(I=/-(\d+)$/.exec(l.id))&&+I[1]{let c=e.state.field(this.stateField,!1);c&&c.tooltip&&e.state.facet(As).closeOnBlur&&a.relatedTarget!=e.contentDOM&&e.dispatch({effects:k3.of(null)})}),this.showOptions(o,n.id)}mount(){this.updateSel()}showOptions(e,A){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,A,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var A;let i=e.state.field(this.stateField),n=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),i!=n){let{options:o,selected:r,disabled:s}=i.open;(!n.open||n.open.options!=o)&&(this.range=fN(o.length,r,e.state.facet(As).maxRenderedOptions),this.showOptions(o,i.id)),this.updateSel(),s!=((A=n.open)===null||A===void 0?void 0:A.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!s)}}updateTooltipClass(e){let A=this.tooltipClass(e);if(A!=this.currentClass){for(let i of this.currentClass.split(" "))i&&this.dom.classList.remove(i);for(let i of A.split(" "))i&&this.dom.classList.add(i);this.currentClass=A}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),A=e.open;if((A.selected>-1&&A.selected=this.range.to)&&(this.range=fN(A.options.length,A.selected,this.view.state.facet(As).maxRenderedOptions),this.showOptions(A.options,e.id)),this.updateSelectedOption(A.selected)){this.destroyInfo();let{completion:i}=A.options[A.selected],{info:n}=i;if(!n)return;let o=typeof n=="string"?document.createTextNode(n):n(i);if(!o)return;"then"in o?o.then(r=>{r&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(r,i)}).catch(r=>Xr(this.view.state,r,"completion info")):this.addInfoPane(o,i)}}addInfoPane(e,A){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",e.nodeType!=null)i.appendChild(e),this.infoDestroy=null;else{let{dom:n,destroy:o}=e;i.appendChild(n),this.infoDestroy=o||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let A=null;for(let i=this.list.firstChild,n=this.range.from;i;i=i.nextSibling,n++)i.nodeName!="LI"||!i.id?n--:n==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),A=i):i.hasAttribute("aria-selected")&&i.removeAttribute("aria-selected");return A&&I_A(this.list,A),A}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let A=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),n=e.getBoundingClientRect(),o=this.space;if(!o){let r=this.dom.ownerDocument.documentElement;o={left:0,top:0,right:r.clientWidth,bottom:r.clientHeight}}return n.top>Math.min(o.bottom,A.bottom)-10||n.bottom{r.target==n&&r.preventDefault()});let o=null;for(let r=i.from;ri.from||i.from==0))if(o=C,typeof c!="string"&&c.header)n.appendChild(c.header(c));else{let d=n.appendChild(document.createElement("completion-section"));d.textContent=C}}let l=n.appendChild(document.createElement("li"));l.id=A+"-"+r,l.setAttribute("role","option");let I=this.optionClass(s);I&&(l.className=I);for(let C of this.optionContent){let d=C(s,this.view.state,this.view,a);d&&l.appendChild(d)}}return i.from&&n.classList.add("cm-completionListIncompleteTop"),i.tonew DN(A,t,e)}function I_A(t,e){let A=t.getBoundingClientRect(),i=e.getBoundingClientRect(),n=A.height/t.offsetHeight;i.topA.bottom&&(t.scrollTop+=(i.bottom-A.bottom)/n)}function goA(t){return(t.boost||0)*100+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}function C_A(t,e){let A=[],i=null,n=c=>{A.push(c);let{section:l}=c.completion;if(l){i||(i=[]);let I=typeof l=="string"?l:l.name;i.some(C=>C.name==I)||i.push(typeof l=="string"?{name:I}:l)}},o=e.facet(As);for(let c of t)if(c.hasResult()){let l=c.result.getMatch;if(c.result.filter===!1)for(let I of c.result.options)n(new KD(I,c.source,l?l(I):[],1e9-A.length));else{let I=e.sliceDoc(c.from,c.to),C,d=o.filterStrict?new wN(I):new pN(I);for(let B of c.result.options)if(C=d.match(B.label)){let E=B.displayLabel?l?l(B,C.matched):[]:C.matched;n(new KD(B,c.source,E,C.score+(B.boost||0)))}}}if(i){let c=Object.create(null),l=0,I=(C,d)=>{var B,E;return((B=C.rank)!==null&&B!==void 0?B:1e9)-((E=d.rank)!==null&&E!==void 0?E:1e9)||(C.nameI.score-l.score||a(l.completion,I.completion))){let l=c.completion;!s||s.label!=l.label||s.detail!=l.detail||s.type!=null&&l.type!=null&&s.type!=l.type||s.apply!=l.apply||s.boost!=l.boost?r.push(c):goA(c.completion)>goA(s)&&(r[r.length-1]=c),s=c.completion}return r}var yN=class t{constructor(e,A,i,n,o,r){this.options=e,this.attrs=A,this.tooltip=i,this.timestamp=n,this.selected=o,this.disabled=r}setSelected(e,A){return e==this.selected||e>=this.options.length?this:new t(this.options,IoA(A,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,A,i,n,o,r){if(n&&!r&&e.some(c=>c.isPending))return n.setDisabled();let s=C_A(e,A);if(!s.length)return n&&e.some(c=>c.isPending)?n.setDisabled():null;let a=A.facet(As).selectOnOpen?0:-1;if(n&&n.selected!=a&&n.selected!=-1){let c=n.options[n.selected].completion;for(let l=0;ll.hasResult()?Math.min(c,l.from):c,1e8),create:u_A,above:o.aboveCursor},n?n.timestamp:Date.now(),a,!1)}map(e){return new t(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}setDisabled(){return new t(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}},vN=class t{constructor(e,A,i){this.active=e,this.id=A,this.open=i}static start(){return new t(Q_A,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:A}=e,i=A.facet(As),o=(i.override||A.languageDataAt("autocomplete",UC(A)).map(a_A)).map(a=>(this.active.find(l=>l.source==a)||new O0(a,this.active.some(l=>l.state!=0)?1:0)).update(e,i));o.length==this.active.length&&o.every((a,c)=>a==this.active[c])&&(o=this.active);let r=this.open,s=e.effects.some(a=>a.is(MN));r&&e.docChanged&&(r=r.map(e.changes)),e.selection||o.some(a=>a.hasResult()&&e.changes.touchesRange(a.from,a.to))||!d_A(o,this.active)||s?r=yN.build(o,A,this.id,r,i,s):r&&r.disabled&&!o.some(a=>a.isPending)&&(r=null),!r&&o.every(a=>!a.isPending)&&o.some(a=>a.hasResult())&&(o=o.map(a=>a.hasResult()?new O0(a.source,0):a));for(let a of e.effects)a.is(uoA)&&(r=r&&r.setSelected(a.value,this.id));return o==this.active&&r==this.open?this:new t(o,this.id,r)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?B_A:E_A}};function d_A(t,e){if(t==e)return!0;for(let A=0,i=0;;){for(;A-1&&(A["aria-activedescendant"]=t+"-"+e),A}var Q_A=[];function hoA(t,e){if(t.isUserEvent("input.complete")){let i=t.annotation(QoA);if(i&&e.activateOnCompletion(i))return 12}let A=t.isUserEvent("input.type");return A&&e.activateOnTyping?5:A?1:t.isUserEvent("delete.backward")?2:t.selection?8:t.docChanged?16:0}var O0=class t{constructor(e,A,i=!1){this.source=e,this.state=A,this.explicit=i}hasResult(){return!1}get isPending(){return this.state==1}update(e,A){let i=hoA(e,A),n=this;(i&8||i&16&&this.touches(e))&&(n=new t(n.source,0)),i&4&&n.state==0&&(n=new t(this.source,1)),n=n.updateFor(e,i);for(let o of e.effects)if(o.is(YD))n=new t(n.source,1,o.value);else if(o.is(k3))n=new t(n.source,0);else if(o.is(MN))for(let r of o.value)r.source==n.source&&(n=r);return n}updateFor(e,A){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(UC(e.state))}},JD=class t extends O0{constructor(e,A,i,n,o,r){super(e,3,A),this.limit=i,this.result=n,this.from=o,this.to=r}hasResult(){return!0}updateFor(e,A){var i;if(!(A&3))return this.map(e.changes);let n=this.result;n.map&&!e.changes.empty&&(n=n.map(n,e.changes));let o=e.changes.mapPos(this.from),r=e.changes.mapPos(this.to,1),s=UC(e.state);if(s>r||!n||A&2&&(UC(e.startState)==this.from||sA.map(e))}}),uoA=Pi.define(),Na=Ar.define({create(){return vN.start()},update(t,e){return t.update(e)},provide:t=>[GE.from(t,e=>e.tooltip),qt.contentAttributes.from(t,e=>e.attrs)]});function kN(t,e){let A=e.completion.apply||e.completion.label,i=t.state.field(Na).active.find(n=>n.source==e.source);return i instanceof JD?(typeof A=="string"?t.dispatch(Object.assign(Object.assign({},s_A(t.state,A,i.from,i.to)),{annotations:QoA.of(e.completion)})):A(t,e.completion,i.from,i.to),!0):!1}var u_A=g_A(Na,kN);function GD(t,e="option"){return A=>{let i=A.state.field(Na,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp-1?i.open.selected+n*(t?1:-1):t?0:r-1;return s<0?s=e=="page"?0:r-1:s>=r&&(s=e=="page"?r-1:0),A.dispatch({effects:uoA.of(s)}),!0}}var f_A=t=>{let e=t.state.field(Na,!1);return t.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampt.state.field(Na,!1)?(t.dispatch({effects:YD.of(!0)}),!0):!1,m_A=t=>{let e=t.state.field(Na,!1);return!e||!e.active.some(A=>A.state!=0)?!1:(t.dispatch({effects:k3.of(null)}),!0)},bN=class{constructor(e,A){this.active=e,this.context=A,this.time=Date.now(),this.updates=[],this.done=void 0}},p_A=50,w_A=1e3,D_A=go.fromClass(class{constructor(t){this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of t.state.field(Na).active)e.isPending&&this.startQuery(e)}update(t){let e=t.state.field(Na),A=t.state.facet(As);if(!t.selectionSet&&!t.docChanged&&t.startState.field(Na)==e)return;let i=t.transactions.some(o=>{let r=hoA(o,A);return r&8||(o.selection||o.docChanged)&&!(r&3)});for(let o=0;op_A&&Date.now()-r.time>w_A){for(let s of r.context.abortListeners)try{s()}catch(a){Xr(this.view.state,a)}r.context.abortListeners=null,this.running.splice(o--,1)}else r.updates.push(...t.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),t.transactions.some(o=>o.effects.some(r=>r.is(YD)))&&(this.pendingStart=!0);let n=this.pendingStart?50:A.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(o=>o.isPending&&!this.running.some(r=>r.active.source==o.source))?setTimeout(()=>this.startUpdate(),n):-1,this.composing!=0)for(let o of t.transactions)o.isUserEvent("input.type")?this.composing=2:this.composing==2&&o.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:t}=this.view,e=t.field(Na);for(let A of e.active)A.isPending&&!this.running.some(i=>i.active.source==A.source)&&this.startQuery(A);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(As).updateSyncTime))}startQuery(t){let{state:e}=this.view,A=UC(e),i=new UD(e,A,t.explicit,this.view),n=new bN(t,i);this.running.push(n),Promise.resolve(t.source(i)).then(o=>{n.context.aborted||(n.done=o||null,this.scheduleAccept())},o=>{this.view.dispatch({effects:k3.of(null)}),Xr(this.view.state,o)})}scheduleAccept(){this.running.every(t=>t.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(As).updateSyncTime))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],A=this.view.state.facet(As),i=this.view.state.field(Na);for(let n=0;ns.source==o.active.source);if(r&&r.isPending)if(o.done==null){let s=new O0(o.active.source,0);for(let a of o.updates)s=s.update(a,A);s.isPending||e.push(s)}else this.startQuery(r)}(e.length||i.open&&i.open.disabled)&&this.view.dispatch({effects:MN.of(e)})}},{eventHandlers:{blur(t){let e=this.view.state.field(Na,!1);if(e&&e.tooltip&&this.view.state.facet(As).closeOnBlur){let A=e.open&&BF(this.view,e.open.tooltip);(!A||!A.dom.contains(t.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:k3.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:YD.of(!1)}),20),this.composing=0}}}),y_A=typeof navigator=="object"&&/Win/.test(navigator.platform),v_A=Dl.highest(qt.domEventHandlers({keydown(t,e){let A=e.state.field(Na,!1);if(!A||!A.open||A.open.disabled||A.open.selected<0||t.key.length>1||t.ctrlKey&&!(y_A&&t.altKey)||t.metaKey)return!1;let i=A.open.options[A.open.selected],n=A.active.find(r=>r.source==i.source),o=i.completion.commitCharacters||n.result.commitCharacters;return o&&o.indexOf(t.key)>-1&&kN(e,i),!1}})),b_A=qt.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});var S3={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},GC=Pi.define({map(t,e){let A=e.mapPos(t,-1,Is.TrackAfter);return A??void 0}}),SN=new class extends wl{};SN.startSide=1;SN.endSide=-1;var foA=Ar.define({create(){return co.empty},update(t,e){if(t=t.map(e.changes),e.selection){let A=e.state.doc.lineAt(e.selection.main.head);t=t.update({filter:i=>i>=A.from&&i<=A.to})}for(let A of e.effects)A.is(GC)&&(t=t.update({add:[SN.range(A.value,A.value+1)]}));return t}});function moA(){return[k_A,foA]}var mN="()[]{}<>\xAB\xBB\xBB\xAB\uFF3B\uFF3D\uFF5B\uFF5D";function poA(t){for(let e=0;e{if((M_A?t.composing:t.compositionStarted)||t.state.readOnly)return!1;let n=t.state.selection.main;if(i.length>2||i.length==2&&lc(Bs(i,0))==1||e!=n.from||A!=n.to)return!1;let o=R_A(t.state,i);return o?(t.dispatch(o),!0):!1}),S_A=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=woA(t,t.selection.main.head).brackets||S3.brackets,n=null,o=t.changeByRange(r=>{if(r.empty){let s=x_A(t.doc,r.head);for(let a of i)if(a==s&&TD(t.doc,r.head)==poA(Bs(a,0)))return{changes:{from:r.head-a.length,to:r.head+a.length},range:ae.cursor(r.head-a.length)}}return{range:n=r}});return n||e(t.update(o,{scrollIntoView:!0,userEvent:"delete.backward"})),!n},DoA=[{key:"Backspace",run:S_A}];function R_A(t,e){let A=woA(t,t.selection.main.head),i=A.brackets||S3.brackets;for(let n of i){let o=poA(Bs(n,0));if(e==n)return o==n?N_A(t,n,i.indexOf(n+n+n)>-1,A):L_A(t,n,o,A.before||S3.before);if(e==o&&yoA(t,t.selection.main.from))return F_A(t,n,o)}return null}function yoA(t,e){let A=!1;return t.field(foA).between(0,t.doc.length,i=>{i==e&&(A=!0)}),A}function TD(t,e){let A=t.sliceString(e,e+2);return A.slice(0,lc(Bs(A,0)))}function x_A(t,e){let A=t.sliceString(e-2,e);return lc(Bs(A,0))==A.length?A:A.slice(1)}function L_A(t,e,A,i){let n=null,o=t.changeByRange(r=>{if(!r.empty)return{changes:[{insert:e,from:r.from},{insert:A,from:r.to}],effects:GC.of(r.to+e.length),range:ae.range(r.anchor+e.length,r.head+e.length)};let s=TD(t.doc,r.head);return!s||/\s/.test(s)||i.indexOf(s)>-1?{changes:{insert:e+A,from:r.head},effects:GC.of(r.head+e.length),range:ae.cursor(r.head+e.length)}:{range:n=r}});return n?null:t.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function F_A(t,e,A){let i=null,n=t.changeByRange(o=>o.empty&&TD(t.doc,o.head)==A?{changes:{from:o.head,to:o.head+A.length,insert:A},range:ae.cursor(o.head+A.length)}:i={range:o});return i?null:t.update(n,{scrollIntoView:!0,userEvent:"input.type"})}function N_A(t,e,A,i){let n=i.stringPrefixes||S3.stringPrefixes,o=null,r=t.changeByRange(s=>{if(!s.empty)return{changes:[{insert:e,from:s.from},{insert:e,from:s.to}],effects:GC.of(s.to+e.length),range:ae.range(s.anchor+e.length,s.head+e.length)};let a=s.head,c=TD(t.doc,a),l;if(c==e){if(doA(t,a))return{changes:{insert:e+e,from:a},effects:GC.of(a+e.length),range:ae.cursor(a+e.length)};if(yoA(t,a)){let C=A&&t.sliceDoc(a,a+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:a,to:a+C.length,insert:C},range:ae.cursor(a+C.length)}}}else{if(A&&t.sliceDoc(a-2*e.length,a)==e+e&&(l=BoA(t,a-2*e.length,n))>-1&&doA(t,l))return{changes:{insert:e+e+e+e,from:a},effects:GC.of(a+e.length),range:ae.cursor(a+e.length)};if(t.charCategorizer(a)(c)!=ao.Word&&BoA(t,a,n)>-1&&!__A(t,a,e,n))return{changes:{insert:e+e,from:a},effects:GC.of(a+e.length),range:ae.cursor(a+e.length)}}return{range:o=s}});return o?null:t.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function doA(t,e){let A=$r(t).resolveInner(e+1);return A.parent&&A.from==e}function __A(t,e,A,i){let n=$r(t).resolveInner(e,-1),o=i.reduce((r,s)=>Math.max(r,s.length),0);for(let r=0;r<5;r++){let s=t.sliceDoc(n.from,Math.min(n.to,n.from+A.length+o)),a=s.indexOf(A);if(!a||a>-1&&i.indexOf(s.slice(0,a))>-1){let l=n.firstChild;for(;l&&l.from==n.from&&l.to-l.from>A.length+a;){if(t.sliceDoc(l.to-A.length,l.to)==A)return!1;l=l.firstChild}return!0}let c=n.to==e&&n.parent;if(!c)break;n=c}return!1}function BoA(t,e,A){let i=t.charCategorizer(e);if(i(t.sliceDoc(e-1,e))!=ao.Word)return e;for(let n of A){let o=e-n.length;if(t.sliceDoc(o,e)==n&&i(t.sliceDoc(o-1,o))!=ao.Word)return o}return-1}function voA(t={}){return[v_A,Na,As.of(t),D_A,G_A,b_A]}var RN=[{key:"Ctrl-Space",run:CoA},{mac:"Alt-`",run:CoA},{key:"Escape",run:m_A},{key:"ArrowDown",run:GD(!0)},{key:"ArrowUp",run:GD(!1)},{key:"PageDown",run:GD(!0,"page")},{key:"PageUp",run:GD(!1,"page")},{key:"Enter",run:f_A}],G_A=Dl.highest(_E.computeN([As],t=>t.facet(As).defaultKeymap?[RN]:[]));function U_A(t,e=t.state){let A=new Set;for(let{from:i,to:n}of t.visibleRanges){let o=i;for(;o<=n;){let r=e.doc.lineAt(o);A.has(r)||A.add(r),o=r.to+1}}return A}function xN(t){let e=t.selection.main.head;return t.doc.lineAt(e)}function boA(t,e){let A=0;A:for(let i=0;i=o.level&&this.markerType!=="codeOnly"?this.set(e,0,n.level):n.empty&&n.level===0&&o.level!==0?this.set(e,0,0):o.level>n.level?this.set(e,0,n.level+1):this.set(e,0,o.level)}let A=boA(e.text,this.state.tabSize),i=Math.floor(A/this.unitWidth);return this.set(e,A,i)}closestNonEmpty(e,A){let i=e.number+A;for(;A===-1?i>=1:i<=this.state.doc.lines;){if(this.has(i)){let r=this.get(i);if(!r.empty)return r}let o=this.state.doc.line(i);if(o.text.trim().length){let r=boA(o.text,this.state.tabSize),s=Math.floor(r/this.unitWidth);return this.set(o,r,s)}i+=A}let n=this.state.doc.line(A===-1?1:this.state.doc.lines);return this.set(n,0,0)}findAndSetActiveLines(){let e=xN(this.state);if(!this.has(e))return;let A=this.get(e);if(this.has(A.line.number+1)){let o=this.get(A.line.number+1);o.level>A.level&&(A=o)}if(this.has(A.line.number-1)){let o=this.get(A.line.number-1);o.level>A.level&&(A=o)}if(A.level===0)return;A.active=A.level;let i,n;for(i=A.line.number;i>1;i--){if(!this.has(i-1))continue;let o=this.get(i-1);if(o.level0&&a.push(HD("--indent-marker-bg-color",i,e,s,c)),a.push(HD("--indent-marker-active-bg-color",n,e,r-1,1)),r!==o&&a.push(HD("--indent-marker-bg-color",i,e,r,o-r))}else a.push(HD("--indent-marker-bg-color",i,e,s,o-s));return a.join(",")}var FN=class{constructor(e){this.view=e,this.unitWidth=Ml(e.state),this.currentLineNumber=xN(e.state).number,this.generate(e.state)}update(e){let A=Ml(e.state),i=A!==this.unitWidth;i&&(this.unitWidth=A);let n=xN(e.state).number,o=n!==this.currentLineNumber;this.currentLineNumber=n;let r=e.state.facet(zD).highlightActiveBlock&&o;(e.docChanged||e.viewportChanged||i||r)&&this.generate(e.state)}generate(e){let A=new ds,i=U_A(this.view,e),{hideFirstIndent:n,markerType:o,thickness:r,activeThickness:s}=e.facet(zD),a=new LN(i,e,this.unitWidth,o);for(let c of i){let l=a.get(c.number);if(!l?.level)continue;let I=Y_A(l,this.unitWidth,n,r,s);A.add(c.from,c.from,ut.line({class:"cm-indent-markers",attributes:{style:`--indent-markers: ${I}`}}))}this.decorations=A.finish()}};function MoA(t={}){return[zD.of(t),K_A(t.colors),go.fromClass(FN,{decorations:e=>e.decorations})]}var J_A=["mainAxis","crossAxis","fallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment"],T_A=["mainAxis","crossAxis","limiter"];function zrA(t,e){if(t==null)return{};var A,i,n=function(r,s){if(r==null)return{};var a={};for(var c in r)if({}.hasOwnProperty.call(r,c)){if(s.indexOf(c)!==-1)continue;a[c]=r[c]}return a}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(i=0;i{};function V_A(t){return t()}function gy(t){for(var e=0;e1&&arguments[1]!==void 0&&arguments[1])&&(qn.l={s:null,u:null,r1:[],r2:jC(!1)})}function pt(t){var e=qn,A=e.e;if(A!==null)for(var i of(e.e=null,A))rsA(i);return t!==void 0&&(e.x=t),qn=e.p,t??{}}function pQ(){return!fQ||qn!==null&&qn.l===null}function XrA(t){var e,A;return qn===null&&ef(),(A=(e=qn).c)!==null&&A!==void 0?A:e.c=new Map(function(i){for(var n=i.p;n!==null;){var o=n.c;if(o!==null)return o;n=n.p}return null}(qn)||void 0)}function iQ(t){if(typeof t!="object"||t===null||Og in t)return t;var e=K_(t);if(e!==j_A&&e!==q_A)return t;var A=new Map,i=mQ(t),n=P0(0),o=zC,r=s=>{if(zC===o)return s();var a=Go,c=zC;q1(null),KoA(o);var l=s();return q1(a),KoA(c),l};return i&&A.set("length",P0(t.length)),new Proxy(t,{defineProperty(s,a,c){"value"in c&&c.configurable!==!1&&c.enumerable!==!1&&c.writable!==!1||function(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}();var l=A.get(a);return l===void 0?l=r(()=>{var I=P0(c.value);return A.set(a,I),I}):y(l,c.value,!0),!0},deleteProperty(s,a){var c=A.get(a);if(c===void 0){if(a in s){var l=r(()=>P0(Qs));A.set(a,l),GN(n)}}else{if(i&&typeof a=="string"){var I=A.get("length"),C=Number(a);Number.isInteger(C)&&CP0(iQ(C?s[a]:Qs))),A.set(a,I)),I!==void 0){var d=g(I);return d===Qs?void 0:d}return Reflect.get(s,a,c)},getOwnPropertyDescriptor(s,a){var c=Reflect.getOwnPropertyDescriptor(s,a);if(c&&"value"in c){var l=A.get(a);l&&(c.value=g(l))}else if(c===void 0){var I=A.get(a),C=I?.v;if(I!==void 0&&C!==Qs)return{enumerable:!0,configurable:!0,value:C,writable:!0}}return c},has(s,a){var c;if(a===Og)return!0;var l=A.get(a),I=l!==void 0&&l.v!==Qs||Reflect.has(s,a);return(l!==void 0||Vn!==null&&(!I||(c=$0(s,a))!==null&&c!==void 0&&c.writable))&&(l===void 0&&(l=r(()=>P0(I?iQ(s[a]):Qs)),A.set(a,l)),g(l)===Qs)?!1:I},set(s,a,c,l){var I,C=A.get(a),d=a in s;if(i&&a==="length")for(var B=c;BP0(Qs)),A.set(B+"",E))}C===void 0?(!d||(I=$0(s,a))!==null&&I!==void 0&&I.writable)&&(y(C=r(()=>P0(void 0)),iQ(c)),A.set(a,C)):(d=C.v!==Qs,y(C,r(()=>iQ(c))));var h=Reflect.getOwnPropertyDescriptor(s,a);if(h!=null&&h.set&&h.set.call(l,c),!d){if(i&&typeof a=="string"){var u=A.get("length"),D=Number(a);Number.isInteger(D)&&D>=u.v&&y(u,D+1)}GN(n)}return!0},ownKeys(s){g(n);var a=Reflect.ownKeys(s).filter(I=>{var C=A.get(I);return C===void 0||C.v!==Qs});for(var[c,l]of A)l.v===Qs||c in s||a.push(c);return a},setPrototypeOf(){(function(){throw new Error("https://svelte.dev/e/state_prototype_fixed")})()}})}function _oA(t){try{if(t!==null&&typeof t=="object"&&Og in t)return t[Og]}catch{}return t}function eGA(t,e){return Object.is(_oA(t),_oA(e))}function wQ(t){var e=2050,A=Go!==null&&2&Go.f?Go:null;return Vn===null||A!==null&&(A.f&xl)!==0?e|=xl:Vn.f|=W_A,{ctx:qn,deps:null,effects:null,equals:ZrA,f:e,fn:t,reactions:null,rv:0,v:Qs,wv:0,parent:A??Vn,ac:null}}function Ga(t){var e=wQ(t);return BsA(e),e}function qA(t){var e=wQ(t);return e.equals=WrA,e}function $rA(t){var e=t.effects;if(e!==null){t.effects=null;for(var A=0;A1&&arguments[1]!==void 0&&arguments[1],n=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],o=jC(t);return i||(o.equals=WrA),fQ&&n&&qn!==null&&qn.l!==null&&((A=(e=qn.l).s)!==null&&A!==void 0?A:e.s=[]).push(o),o}function hc(t,e){return y(t,nA(()=>g(t))),e}function y(t,e){var A,i=arguments.length>2&&arguments[2]!==void 0&&arguments[2];return Go===null||Tg&&(Go.f&Z_A)===0||!pQ()||!(131090&Go.f)||(A=e2)!==null&&A!==void 0&&A.includes(t)||function(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}(),g_(t,i?iQ(e):e)}function g_(t,e){if(!t.equals(e)){var A=t.v;j1?TC.set(t,e):TC.set(t,A),t.v=e,2&t.f&&((t.f&IQ)!==0&&T_(t),Ul(t,(t.f&xl)===0?pc:Ad)),t.wv=EsA(),esA(t,IQ),!pQ()||Vn===null||(Vn.f&pc)===0||96&Vn.f||(Hc===null?function(i){Hc=i}([t]):Hc.push(t))}return e}function GoA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,A=g(t),i=e===1?A++:A--;return y(t,A),i}function GN(t){y(t,t.v+1)}function esA(t,e){var A=t.reactions;if(A!==null)for(var i=pQ(),n=A.length,o=0;o0&&arguments[0]!==void 0?arguments[0]:"";return document.createTextNode(t)}function uc(t){return isA.call(t)}function Ly(t){return nsA.call(t)}function W(t,e){return uc(t)}function vt(t,e){var A=uc(t);return A instanceof Comment&&A.data===""?Ly(A):A}function IA(t){for(var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,A=t;e--;)A=Ly(A);return A}function osA(t){Vn===null&&Go===null&&function(){throw new Error("https://svelte.dev/e/effect_orphan")}(),Go!==null&&(Go.f&xl)!==0&&Vn===null&&function(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}(),j1&&function(){throw new Error("https://svelte.dev/e/effect_in_teardown")}()}function AI(t,e,A){var i=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3],n=Vn,o={ctx:qn,deps:null,nodes_start:null,nodes_end:null,f:t|IQ,first:null,fn:e,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,transitions:null,wv:0,ac:null};if(A)try{Ny(o),o.f|=32768}catch(a){throw jc(o),a}else e!==null&&_y(o);if(!(A&&o.deps===null&&o.first===null&&o.nodes_start===null&&o.teardown===null&&!(524416&o.f))&&i&&(n!==null&&function(a,c){var l=c.last;l===null?c.last=c.first=a:(l.next=a,a.prev=l,c.last=a)}(o,n),Go!==null&&2&Go.f)){var r,s=Go;((r=s.effects)!==null&&r!==void 0?r:s.effects=[]).push(o)}return o}function H_(t){var e=AI(8,null,!1);return Ul(e,pc),e.teardown=t,e}function I_(t){if(osA(),Go||!Vn||(Vn.f&Ry)===0)return rsA(t);var e,A=qn;((e=A.e)!==null&&e!==void 0?e:A.e=[]).push(t)}function rsA(t){return AI(2097156,t,!1)}function es(t){return AI(4,t,!1)}function fA(t,e){var A=qn,i={effect:null,ran:!1};A.l.r1.push(i),i.effect=tf(()=>{t(),i.ran||(i.ran=!0,y(A.l.r2,!0),nA(e))})}function Qn(){var t=qn;tf(()=>{if(g(t.l.r2)){for(var e of t.l.r1){var A=e.effect;(A.f&pc)!==0&&Ul(A,Ad),nf(A)&&Ny(A),e.ran=!1}t.l.r2.v=!1}})}function tf(t){return AI(8,t,!0)}function De(t){var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:wQ,A=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:[]).map(e);return eI(()=>t(...A.map(g)))}function eI(t){return AI(24|(arguments.length>1&&arguments[1]!==void 0?arguments[1]:0),t,!0)}function Vg(t){return AI(40,t,!0,!(arguments.length>1&&arguments[1]!==void 0)||arguments[1])}function ssA(t){var e=t.teardown;if(e!==null){var A=j1,i=Go;UoA(!0),q1(null);try{e.call(null)}finally{UoA(A),q1(i)}}}function asA(t){var e=arguments.length>1&&arguments[1]!==void 0&&arguments[1],A=t.first;for(t.first=t.last=null;A!==null;){var i;(i=A.ac)===null||i===void 0||i.abort(VrA);var n=A.next;(A.f&jrA)!==0?A.parent=null:jc(A,e),A=n}}function jc(t){var e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],A=!1;(e||262144&t.f)&&t.nodes_start!==null&&t.nodes_end!==null&&(csA(t.nodes_start,t.nodes_end),A=!0),asA(t,e&&!A),dy(t,0),Ul(t,Y_);var i=t.transitions;if(i!==null)for(var n of i)n.stop();ssA(t);var o=t.parent;o!==null&&o.first!==null&&lsA(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes_start=t.nodes_end=t.ac=null}function csA(t,e){for(;t!==null;){var A=t===e?null:Ly(t);t.remove(),t=A}}function lsA(t){var e=t.parent,A=t.prev,i=t.next;A!==null&&(A.next=i),i!==null&&(i.prev=A),e!==null&&(e.first===t&&(e.first=i),e.last===t&&(e.last=A))}function CQ(t,e){var A=[];z_(t,A,!0),gsA(A,()=>{jc(t),e&&e()})}function gsA(t,e){var A=t.length;if(A>0){var i=()=>--A||e();for(var n of t)n.out(i)}else e()}function z_(t,e,A){if((t.f&H1)===0){if(t.f^=H1,t.transitions!==null)for(var i of t.transitions)(i.is_global||A)&&e.push(i);for(var n=t.first;n!==null;){var o=n.next;z_(n,e,((n.f&Af)!==0||(n.f&Ry)!==0)&&A),n=o}}}function Iy(t){IsA(t,!0)}function IsA(t,e){if((t.f&H1)!==0){t.f^=H1;for(var A=t.first;A!==null;){var i=A.next;IsA(A,((A.f&Af)!==0||(A.f&Ry)!==0)&&e),A=i}if(t.transitions!==null)for(var n of t.transitions)(n.is_global||e)&&n.in()}}var K3=[],UN=[];function CsA(){var t=K3;K3=[],gy(t)}function Fy(t){K3.length===0&&queueMicrotask(CsA),K3.push(t)}function tGA(){var t;K3.length>0&&CsA(),UN.length>0&&(t=UN,UN=[],gy(t))}function dsA(t,e){for(;e!==null;){if(128&e.f)try{return void e.b.error(t)}catch{}e=e.parent}throw t}var Y3=!1,J3=null,HC=!1,j1=!1;function UoA(t){j1=t}var U3=[],Go=null,Tg=!1;function q1(t){Go=t}var Vn=null;function V1(t){Vn=t}var e2=null;function BsA(t){Go!==null&&Go.f&l_&&(e2===null?e2=[t]:e2.push(t))}var Aa=null,Ec=0,Hc=null,Cy=1,T3=0,zC=T3;function KoA(t){zC=t}var K1=!1,YoA=null;function EsA(){return++Cy}function nf(t){var e=t.f;if((e&IQ)!==0)return!0;if((e&Ad)!==0){var A=t.deps,i=(e&xl)!==0;if(A!==null){var n,o,r=(e&c_)!==0,s=i&&Vn!==null&&!K1,a=A.length;if(r||s){var c=t,l=c.parent;for(n=0;nt.wv)return!0}i&&(Vn===null||K1)||Ul(t,pc)}return!1}function QsA(t,e){var A,i=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],n=t.reactions;if(n!==null&&((A=e2)===null||A===void 0||!A.includes(t)))for(var o=0;o0)for(C.length=Ec+Aa.length,d=0;d0;){e++>1e3&&nGA();var A=U3,i=A.length;U3=[];for(var n=0;nn&&(i.f&X_A)!==0)break}}for(;A1&&arguments[1]!==void 0?arguments[1]:new Set;if(!(typeof t!="object"||t===null||t instanceof EventTarget||e.has(t))){for(var A in e.add(t),t instanceof Date&&t.getTime(),t)try{C_(t[A],e)}catch{}var i=K_(t);if(i!==Object.prototype&&i!==Array.prototype&&i!==Map.prototype&&i!==Set.prototype&&i!==Date.prototype){var n=PrA(i);for(var o in n){var r=n[o].get;if(r)try{r.call(t)}catch{}}}}}var JoA=!1;function psA(t){var e=Go,A=Vn;q1(null),V1(null);try{return t()}finally{q1(e),V1(A)}}function aGA(t,e,A){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:A;t.addEventListener(e,()=>psA(A));var n=t.__on_r;t.__on_r=n?()=>{n(),i(!0)}:()=>i(!0),JoA||(JoA=!0,document.addEventListener("reset",o=>{Promise.resolve().then(()=>{if(!o.defaultPrevented)for(var r of o.target.elements){var s;(s=r.__on_r)===null||s===void 0||s.call(r)}})},{capture:!0}))}var wsA=new Set,d_=new Set;function DsA(t,e,A){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};function n(o){if(i.capture||F3.call(e,o),!o.cancelBubble)return psA(()=>A?.call(this,o))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?Fy(()=>{e.addEventListener(t,n,i)}):e.addEventListener(t,n,i),n}function ce(t,e,A,i,n){var o={capture:i,passive:n},r=DsA(t,e,A,o);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&H_(()=>{e.removeEventListener(t,r,o)})}function of(t){for(var e=0;er||i});var I=Go,C=Vn;q1(null),V1(null);try{for(var d,B=[];r!==null;){var E=r.assignedSlot||r.parentNode||r.host||null;try{var h=r["__"+n];if(h!=null&&(!r.disabled||t.target===r))if(mQ(h)){var[u,...D]=h;u.apply(r,[t,...D])}else h.call(r,t)}catch(w){d?B.push(w):d=w}if(t.cancelBubble||E===A||E===null)break;r=E}if(d){var L=function(w){queueMicrotask(()=>{throw w})};for(var R of B)L(R);throw d}}finally{t.__root=A,delete t.currentTarget,q1(I),V1(C)}}}function O_(t){var e=document.createElement("template");return e.innerHTML=t.replaceAll("",""),e.content}function qC(t,e){var A=Vn;A.nodes_start===null&&(A.nodes_start=t,A.nodes_end=e)}function wA(t,e){var A,i=!!(1&e),n=!!(2&e),o=!t.startsWith("");return()=>{A===void 0&&(A=O_(o?t:""+t),i||(A=uc(A)));var r=n||tsA?document.importNode(A,!0):A.cloneNode(!0);return i?qC(uc(r),r.lastChild):qC(r,r),r}}function tI(t,e){return function(A,i){var n,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"svg",r=!A.startsWith(""),s=!!(1&i),a="<".concat(o,">").concat(r?A:""+A,"");return()=>{if(!n){var c=uc(O_(a));if(s)for(n=document.createDocumentFragment();uc(c);)n.appendChild(uc(c));else n=uc(c)}var l=n.cloneNode(!0);return s?qC(uc(l),l.lastChild):qC(l,l),l}}(t,e,"svg")}function Tr(){var t=xy((arguments.length>0&&arguments[0]!==void 0?arguments[0]:"")+"");return qC(t,t),t}function _o(){var t=document.createDocumentFragment(),e=document.createComment(""),A=xy();return t.append(e,A),qC(e,A),t}function iA(t,e){t!==null&&t.before(e)}var cGA=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"],lGA={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly",defaultvalue:"defaultValue",defaultchecked:"defaultChecked",srcobject:"srcObject",novalidate:"noValidate",allowfullscreen:"allowFullscreen",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback"},gGA=["touchstart","touchmove"];function IGA(t){return gGA.includes(t)}function wt(t,e){var A,i=e==null?"":typeof e=="object"?e+"":e;i!==((A=t.__t)!==null&&A!==void 0?A:t.__t=t.nodeValue)&&(t.__t=i,t.nodeValue=i+"")}function CGA(t,e){return function(A,i){var{target:n,anchor:o,props:r={},events:s,context:a,intro:c=!0}=i;(function(){if(A2===void 0){A2=window,tsA=/Firefox/.test(navigator.userAgent);var B=Element.prototype,E=Node.prototype,h=Text.prototype;isA=$0(E,"firstChild").get,nsA=$0(E,"nextSibling").get,LoA(B)&&(B.__click=void 0,B.__className=void 0,B.__attributes=null,B.__style=void 0,B.__e=void 0),LoA(h)&&(h.__t=void 0)}})();var l=new Set,I=B=>{for(var E=0;E0&&arguments[0]!==void 0?arguments[0]:{};return new Promise(u=>{h.outro?CQ(E,()=>{jc(E),u(void 0)}):(jc(E),u(void 0))})}}(()=>{var B=o??n.appendChild(xy());return Vg(()=>{a&&(mt({}),qn.c=a),s&&(r.$$events=s),C=A(B,r)||{},a&&pt()}),()=>{for(var E of l){n.removeEventListener(E,F3);var h=VE.get(E);--h===0?(document.removeEventListener(E,F3),VE.delete(E)):VE.set(E,h)}var u;d_.delete(I),B!==o&&((u=B.parentNode)===null||u===void 0||u.removeChild(B))}});return B_.set(C,d),C}(t,e)}var VE=new Map,B_=new WeakMap;function hs(t){qn===null&&ef(),fQ&&qn.l!==null?ysA(qn).m.push(t):I_(()=>{var e=nA(t);if(typeof e=="function")return e})}function qc(t){qn===null&&ef(),hs(()=>()=>nA(t))}function dGA(){var t=qn;return t===null&&ef(),(e,A,i)=>{var n,o=(n=t.s.$$events)===null||n===void 0?void 0:n[e];if(o){var r=mQ(o)?o.slice():[o],s=function(c,l){var{bubbles:I=!1,cancelable:C=!1}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return new CustomEvent(c,{detail:l,bubbles:I,cancelable:C})}(e,A,i);for(var a of r)a.call(t.x,s);return!s.defaultPrevented}return!0}}function BGA(t){qn===null&&ef(),qn.l===null&&function(){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}(),ysA(qn).b.push(t)}function ysA(t){var e,A=t.l;return(e=A.u)!==null&&e!==void 0?e:A.u={a:[],b:[],m:[]}}function LA(t,e){var[A,i]=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[0,0],n=t,o=null,r=null,s=Qs,a=!1,c=function(I){a=!0,l(!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],I)},l=(I,C)=>{s!==(s=I)&&(s?(o?Iy(o):C&&(o=Vg(()=>C(n))),r&&CQ(r,()=>{r=null})):(r?Iy(r):C&&(r=Vg(()=>C(n,[A+1,i]))),o&&CQ(o,()=>{o=null})))};eI(()=>{a=!1,e(c),a||l(null,null)},A>0?Af:0)}function vsA(t,e,A){var i,n=t,o=Qs,r=pQ()?AGA:J_;eI(()=>{r(o,o=e())&&(i&&CQ(i),i=Vg(()=>A(n)))})}function or(t,e){return e}function qo(t,e,A,i,n){var o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null,r=t,s={flags:e,items:new Map,first:null};!(4&e)||(r=t.appendChild(xy()));var a=null,c=!1,l=qA(()=>{var I=A();return mQ(I)?I:I==null?[]:a_(I)});eI(()=>{var I=g(l),C=I.length;c&&C===0||(c=C===0,function(d,B,E,h,u,D,L){var R,w,_,K,z,U,H=!!(8&u),q=!!(3&u),j=d.length,gA=B.items,QA=B.first,BA=QA,lA=null,vA=[],tA=[];if(H)for(U=0;U0){var He=4&u&&j===0?E:null;if(H){for(U=0;U0&&Ue.length===0&&le!==null;if(xt){var tt=le.parentNode;tt.textContent="",tt.append(le),SA.clear(),F1(UA,aA[0].prev,aA[mA-1].next)}gsA(Ue,()=>{for(var de=0;de{if(w!==void 0)for(z of w){var UA;(UA=z.a)===null||UA===void 0||UA.apply()}}),Vn.first=B.first&&B.first.e,Vn.last=lA&&lA.e}(I,s,r,n,e,i,A),o!==null&&(C===0?a?Iy(a):a=Vg(()=>o(r)):a!==null&&CQ(a,()=>{a=null})),g(l))})}function EGA(t,e,A,i){1&i&&g_(t.v,e),2&i?g_(t.i,A):t.i=A}function QGA(t,e,A,i,n,o,r,s,a,c){var l=1&a?16&a?jC(n):$(n,!1,!1):n,I=2&a?jC(r):r,C={i:I,v:l,k:o,a:null,e:null,prev:A,next:i};try{return C.e=Vg(()=>s(t,l,I,c),!1),C.e.prev=A&&A.e,C.e.next=i&&i.e,A===null?e.first=C:(A.next=C,A.e.next=C.e),i!==null&&(i.prev=C,i.e.prev=C.e),C}finally{}}function ToA(t,e,A){for(var i=t.next?t.next.e.nodes_start:A,n=e?e.e.nodes_start:A,o=t.e.nodes_start;o!==i;){var r=Ly(o);n.before(o),o=r}}function F1(t,e,A){e===null?t.first=A:(e.next=A,e.e.next=A&&A.e),A!==null&&(A.prev=e,A.e.prev=e&&e.e)}function bsA(t,e){var A=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=arguments.length>3&&arguments[3]!==void 0&&arguments[3],n=t,o="";De(()=>{var r,s=Vn;if(o!==(o=(r=e())!==null&&r!==void 0?r:"")&&(s.nodes_start!==null&&(csA(s.nodes_start,s.nodes_end),s.nodes_start=s.nodes_end=null),o!=="")){var a=o+"";A?a="".concat(a,""):i&&(a="".concat(a,""));var c=O_(a);if((A||i)&&(c=uc(c)),qC(uc(c),c.lastChild),A||i)for(;uc(c);)n.before(uc(c));else n.before(c)}})}function jo(t,e,A,i,n){var o,r=(o=e.$$slots)===null||o===void 0?void 0:o[A],s=!1;r===!0&&(r=e[A==="default"?"children":A],s=!0),r===void 0?n!==null&&n(t):r(t,s?()=>i:i)}function MsA(t,e,A){var i,n,o=t;eI(()=>{i!==(i=e())&&(n&&(CQ(n),n=null),i&&(n=Vg(()=>A(o,i))))},Af)}function Us(t,e,A){es(()=>{var i=nA(()=>e(t,A?.())||{});if(A&&i!=null&&i.update){var n=!1,o={};tf(()=>{var r=A();k(r),n&&J_(o,r)&&(o=r,i.update(r))}),n=!0}if(i!=null&&i.destroy)return()=>i.destroy()})}function hGA(t,e){var A,i=void 0;eI(()=>{i!==(i=e())&&(A&&(jc(A),A=null),i&&(A=Vg(()=>{es(()=>i(t))})))})}function ksA(t){var e,A,i="";if(typeof t=="string"||typeof t=="number")i+=t;else if(typeof t=="object")if(Array.isArray(t)){var n=t.length;for(e=0;e1&&arguments[1]!==void 0&&arguments[1]?" !important;":";",A="";for(var i in t){var n=t[i];n!=null&&n!==""&&(A+=" "+i+": "+n+e)}return A}function KN(t){return t[0]!=="-"||t[1]!=="-"?t.toLowerCase():t}function Vt(t,e,A,i,n,o){var r=t.__className;if(r!==A||r===void 0){var s=function(l,I,C){var d=l==null?"":""+l;if(I&&(d=d?d+" "+I:I),C){for(var B in C)if(C[B])d=d?d+" "+B:B;else if(d.length)for(var E=B.length,h=0;(h=d.indexOf(B,h))>=0;){var u=h+E;h!==0&&!HoA.includes(d[h-1])||u!==d.length&&!HoA.includes(d[u])?h=u:d=(h===0?"":d.substring(0,h))+d.substring(u+1)}}return d===""?null:d}(A,i,o);s==null?t.removeAttribute("class"):e?t.className=s:t.setAttribute("class",s),t.__className=A}else if(o&&n!==o)for(var a in o){var c=!!o[a];n!=null&&c===!!n[a]||t.classList.toggle(a,c)}return o}function YN(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},A=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;for(var n in A){var o=A[n];e[n]!==o&&(A[n]==null?t.style.removeProperty(n):t.style.setProperty(n,o,i))}}function Ll(t,e,A,i){if(t.__style!==e){var n=function(o,r){if(r){var s,a,c="";if(Array.isArray(r)?(s=r[0],a=r[1]):s=r,o){o=String(o).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var l=!1,I=0,C=!1,d=[];s&&d.push(...Object.keys(s).map(KN)),a&&d.push(...Object.keys(a).map(KN));for(var B=0,E=-1,h=o.length,u=0;u2&&arguments[2]!==void 0&&arguments[2];if(t.multiple){if(e==null)return;if(!mQ(e))return void console.warn("https://svelte.dev/e/select_multiple_invalid_value");for(var i of t.options)i.selected=e.includes(OoA(i))}else{for(i of t.options)if(eGA(OoA(i),e))return void(i.selected=!0);A&&e===void 0||(t.selectedIndex=-1)}}function uGA(t){var e=new MutationObserver(()=>{E_(t,t.__value)});e.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),H_(()=>{e.disconnect()})}function OoA(t){return"__value"in t?t.__value:t.value}var eQ=Symbol("class"),x3=Symbol("style"),SsA=Symbol("is custom element"),RsA=Symbol("is html");function VC(t,e){var A=P_(t);A.value!==(A.value=e??void 0)&&(t.value!==e||e===0&&t.nodeName==="PROGRESS")&&(t.value=e??"")}function En(t,e,A,i){var n=P_(t);n[e]!==(n[e]=A)&&(e==="loading"&&(t[$_A]=A),A==null?t.removeAttribute(e):typeof A!="string"&&xsA(t).includes(e)?t[e]=A:t.setAttribute(e,A))}function fGA(t,e,A,i){var n,o=P_(t),r=o[SsA],s=!o[RsA],a=e||{},c=t.tagName==="OPTION";for(var l in e)l in A||(A[l]=null);A.class?A.class=Z1(A.class):(i||A[eQ])&&(A.class=null),A[x3]&&((n=A.style)!==null&&n!==void 0||(A.style=null));var I,C,d,B,E,h,u=xsA(t),D=function(R){var w=A[R];if(c&&R==="value"&&w==null)return t.value=t.__value="",a[R]=w,0;if(R==="class")return I=t.namespaceURI==="http://www.w3.org/1999/xhtml",Vt(t,I,w,i,e?.[eQ],A[eQ]),a[R]=w,a[eQ]=A[eQ],0;if(R==="style")return Ll(t,w,e?.[x3],A[x3]),a[R]=w,a[x3]=A[x3],0;if(w===(C=a[R])&&(w!==void 0||!t.hasAttribute(R))||(a[R]=w,(d=R[0]+R[1])==="$$"))return 0;if(d==="on"){var _={},K="$$"+R,z=R.slice(2);if(B=function(QA){return cGA.includes(QA)}(z),function(QA){return QA.endsWith("capture")&&QA!=="gotpointercapture"&&QA!=="lostpointercapture"}(z)&&(z=z.slice(0,-7),_.capture=!0),!B&&C){if(w!=null)return 0;t.removeEventListener(z,a[K],_),a[K]=null}if(w!=null)if(B)t["__".concat(z)]=w,of([z]);else{let QA=function(BA){a[R].call(this,BA)};var gA=QA;a[K]=DsA(z,t,QA,_)}else B&&(t["__".concat(z)]=void 0)}else if(R==="style")En(t,R,w);else if(R==="autofocus")(function(QA,BA){if(BA){var lA=document.body;QA.autofocus=!0,Fy(()=>{document.activeElement===lA&&QA.focus()})}})(t,!!w);else if(r||R!=="__value"&&(R!=="value"||w==null))if(R==="selected"&&c)(function(QA,BA){BA?QA.hasAttribute("selected")||QA.setAttribute("selected",""):QA.removeAttribute("selected")})(t,w);else if(E=R,s||(E=function(QA){var BA;return QA=QA.toLowerCase(),(BA=lGA[QA])!==null&&BA!==void 0?BA:QA}(E)),h=E==="defaultValue"||E==="defaultChecked",w!=null||r||h)h||u.includes(E)&&(r||typeof w!="string")?t[E]=w:typeof w!="function"&&En(t,E,w);else if(o[R]=null,E==="value"||E==="checked"){var U=t,H=e===void 0;if(E==="value"){var q=U.defaultValue;U.removeAttribute(E),U.defaultValue=q,U.value=U.__value=H?q:null}else{var j=U.defaultChecked;U.removeAttribute(E),U.defaultChecked=j,U.checked=!!H&&j}}else t.removeAttribute(R);else t.value=t.__value=w};for(var L in A)D(L);return a}function ry(t,e){var A=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&arguments[4]!==void 0&&arguments[4],n=arguments.length>5&&arguments[5]!==void 0?arguments[5]:wQ,o=(arguments.length>2&&arguments[2]!==void 0?arguments[2]:[]).map(n),r=void 0,s={},a=t.nodeName==="SELECT",c=!1;if(eI(()=>{var I=e(...o.map(g)),C=fGA(t,r,I,A,i);for(var d of(c&&a&&"value"in I&&E_(t,I.value),Object.getOwnPropertySymbols(s)))I[d]||jc(s[d]);for(var B of Object.getOwnPropertySymbols(I)){var E=I[B];B.description!=="@attach"||r&&E===r[B]||(s[B]&&jc(s[B]),s[B]=Vg(()=>hGA(t,()=>E))),C[B]=E}r=C}),a){var l=t;es(()=>{E_(l,r.value,!0),uGA(l)})}c=!0}function P_(t){var e;return(e=t.__attributes)!==null&&e!==void 0?e:t.__attributes={[SsA]:t.nodeName.includes("-"),[RsA]:t.namespaceURI==="http://www.w3.org/1999/xhtml"}}var PoA=new Map;function xsA(t){var e,A=PoA.get(t.nodeName);if(A)return A;PoA.set(t.nodeName,A=[]);for(var i=t,n=Element.prototype;n!==i;){for(var o in e=PrA(i))e[o].set&&A.push(o);i=K_(i)}return A}function By(t,e){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e,i=pQ();aGA(t,"input",n=>{var o=n?t.defaultValue:t.value;if(o=JN(t)?TN(o):o,A(o),i&&o!==(o=e())){var r=t.selectionStart,s=t.selectionEnd;t.value=o??"",s!==null&&(t.selectionStart=r,t.selectionEnd=Math.min(s,t.value.length))}}),nA(e)==null&&t.value&&A(JN(t)?TN(t.value):t.value),tf(()=>{var n=e();JN(t)&&n===TN(t.value)||(t.type!=="date"||n||t.value)&&n!==t.value&&(t.value=n??"")})}function JN(t){var e=t.type;return e==="number"||e==="range"}function TN(t){return t===""?null:+t}function zt(t,e,A){var i=$0(t,e);i&&i.set&&(t[e]=A,H_(()=>{t[e]=null}))}function joA(t,e){return t===e||t?.[Og]===e}function Co(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,A=arguments.length>2?arguments[2]:void 0;return es(()=>{var i,n;return tf(()=>{i=n,n=[],nA(()=>{t!==A(...n)&&(e(t,...n),i&&joA(A(...i),t)&&e(null,...i))})}),()=>{Fy(()=>{n&&joA(A(...n),t)&&e(null,...n)})}}),t}function j0(t){return function(){for(var e=arguments.length,A=new Array(e),i=0;i0&&arguments[0]!==void 0&&arguments[0],e=qn,A=e.l.u;if(A){var i,n=()=>k(e.s);if(t){var o=0,r={},s=wQ(()=>{var a=!1,c=e.s;for(var l in c)c[l]!==r[l]&&(r[l]=c[l],a=!0);return a&&o++,o});n=()=>g(s)}A.b.length&&(i=()=>{qoA(e,n),gy(A.b)},osA(),AI(2097160,i,!0)),I_(()=>{var a=nA(()=>A.m.map(V_A));return()=>{for(var c of a)typeof c=="function"&&c()}}),A.a.length&&I_(()=>{qoA(e,n),gy(A.a)})}}function qoA(t,e){if(t.l.s)for(var A of t.l.s)g(A);e()}function Gy(t){var e=jC(0);return function(){return arguments.length===1?(y(e,g(e)+1),arguments[0]):(g(e),t())}}function N3(t,e){var A,i=(A=t.$$events)===null||A===void 0?void 0:A[e.type],n=mQ(i)?i.slice():i==null?[]:[i];for(var o of n)o.call(this,e)}var OD=!1,mGA={get(t,e){if(!t.exclude.includes(e))return g(t.version),e in t.special?t.special[e]():t.props[e]},set(t,e,A){if(!(e in t.special)){var i=Vn;try{V1(t.parent_effect),t.special[e]=b({get[e](){return t.props[e]}},e,4)}finally{V1(i)}}return t.special[e](A),GoA(t.version),!0},getOwnPropertyDescriptor(t,e){if(!t.exclude.includes(e))return e in t.props?{enumerable:!0,configurable:!0,value:t.props[e]}:void 0},deleteProperty:(t,e)=>(t.exclude.includes(e)||(t.exclude.push(e),GoA(t.version)),!0),has:(t,e)=>!t.exclude.includes(e)&&e in t.props,ownKeys:t=>Reflect.ownKeys(t.props).filter(e=>!t.exclude.includes(e))};function PD(t,e){return new Proxy({props:t,exclude:e,special:{},version:jC(0),parent_effect:Vn},mGA)}var pGA={get(t,e){for(var A=t.props.length;A--;){var i=t.props[A];if(R3(i)&&(i=i()),typeof i=="object"&&i!==null&&e in i)return i[e]}},set(t,e,A){for(var i=t.props.length;i--;){var n=t.props[i];R3(n)&&(n=n());var o=$0(n,e);if(o&&o.set)return o.set(A),!0}return!1},getOwnPropertyDescriptor(t,e){for(var A=t.props.length;A--;){var i=t.props[A];if(R3(i)&&(i=i()),typeof i=="object"&&i!==null&&e in i){var n=$0(i,e);return n&&!n.configurable&&(n.configurable=!0),n}}},has(t,e){if(e===Og||e===qrA)return!1;for(var A of t.props)if(R3(A)&&(A=A()),A!=null&&e in A)return!0;return!1},ownKeys(t){var e=[];for(var A of t.props)if(R3(A)&&(A=A()),A){for(var i in A)e.includes(i)||e.push(i);for(var n of Object.getOwnPropertySymbols(A))e.includes(n)||e.push(n)}return e}};function z1(){for(var t=arguments.length,e=new Array(t),A=0;A(l&&(l=!1,c=a?nA(i):i),c);if(s){var C,d,B=Og in t||qrA in t;n=(C=(d=$0(t,e))===null||d===void 0?void 0:d.set)!==null&&C!==void 0?C:B&&e in t?w=>t[e]=w:void 0}var E,h=!1;if(s?[o,h]=function(w){var _=OD;try{return OD=!1,[w(),OD]}finally{OD=_}}(()=>t[e]):o=t[e],o===void 0&&i!==void 0&&(o=I(),n&&(r&&function(){throw new Error("https://svelte.dev/e/props_invalid_value")}(),n(o))),E=r?()=>{var w=t[e];return w===void 0?I():(l=!0,w)}:()=>{var w=t[e];return w!==void 0&&(c=void 0),w===void 0?c:w},r&&!(4&A))return E;if(n){var u=t.$$legacy;return function(w,_){return arguments.length>0?(r&&_&&!u&&!h||n(_?E():w),w):E()}}var D=!1,L=(1&A?wQ:qA)(()=>(D=!1,E()));s&&g(L);var R=Vn;return function(w,_){if(arguments.length>0){var K=_?g(L):r&&s?iQ(w):w;return y(L,K),D=!0,c!==void 0&&(c=K),w}return j1&&D||(R.f&Y_)!==0?L.v:g(L)}}function Sr(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(i){var n=function(o){try{if(typeof window<"u"&&window.localStorage!==void 0)return window.localStorage[o]}catch{}}("debug");return n!=null&&n.endsWith("*")?i.startsWith(n.slice(0,-1)):i===n}(t);if(!e)return wGA;var A=function(i){for(var n=0,o=0;o9466848e5&&isFinite(t)&&Math.floor(t)===t&&!isNaN(new Date(t).valueOf());if(typeof t=="bigint")return Q_(Number(t));try{var e=t&&t.valueOf();if(e!==t)return Q_(e)}catch{return!1}return!1}function LsA(t){(jD=jD||window.document.createElement("div")).style.color="",jD.style.color=t;var e=jD.style.color;return e!==""?e.replace(/\s+/g,"").toLowerCase():void 0}var jD=void 0;function bGA(t){return typeof t=="string"&&t.length<99&&!!LsA(t)}function q_(t,e){if(typeof t=="number"||typeof t=="string"||typeof t=="boolean"||t===void 0)return typeof t;if(typeof t=="bigint")return"number";if(t===null)return"null";if(Array.isArray(t))return"array";if(Cn(t))return"object";var A=e.stringify(t);return A&&j_(A)?"number":A==="true"||A==="false"?"boolean":A==="null"?"null":"unknown"}var MGA=/^https?:\/\/\S+$/;function Uy(t){return typeof t=="string"&&MGA.test(t)}function DQ(t,e){if(t==="")return"";var A=t.trim();return A==="null"?null:A==="true"||A!=="false"&&(j_(A)?e.parse(A):t)}var kGA=[];function ZoA(t,e){if(t.length!==e.length)return!1;for(var A=0;A1&&arguments[1]!==void 0&&arguments[1],A={};if(!Array.isArray(t))throw new TypeError("Array expected");function i(r,s){(!Array.isArray(r)&&!Cn(r)||e&&s.length>0)&&(A[Ct(s)]=!0),Cn(r)&&Object.keys(r).forEach(a=>{i(r[a],s.concat(a))})}for(var n=Math.min(t.length,1e4),o=0;oe?t.slice(0,e):t}function WoA(t){return fe({},t)}function XoA(t){return Object.values(t)}function $oA(t,e,A,i){var n=t.slice(0),o=n.splice(e,A);return n.splice.apply(n,[e+i,0,...o]),n}function SGA(t,e,A){return t.slice(0,e).concat(A).concat(t.slice(e))}function rf(t,e){try{return e.parse(t)}catch{return e.parse(Rc(t))}}function NsA(t,e){try{return rf(t,e)}catch{return}}function sf(t,e){t=t.replace(GsA,"");try{return e(t)}catch{}try{return e("{"+t+"}")}catch{}try{return e("["+t+"]")}catch{}throw new Error("Failed to parse partial JSON")}function _sA(t){t=t.replace(GsA,"");try{return Rc(t)}catch{}try{var e=Rc("["+t+"]");return e.substring(1,e.length-1)}catch{}try{var A=Rc("{"+t+"}");return A.substring(1,A.length-1)}catch{}throw new Error("Failed to repair partial JSON")}var GsA=/,\s*$/;function dQ(t,e){var A=erA.exec(e);if(A){var i=ts(A[2]),n=function(d,B){for(var E=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:d.length,u=0,D=E;D"line ".concat(n+1," column ").concat(o+1))}}var r=FGA.exec(e),s=r?ts(r[1]):void 0,a=s!==void 0?s-1:void 0,c=NGA.exec(e),l=c?ts(c[1]):void 0,I=l!==void 0?l-1:void 0,C=a!==void 0&&I!==void 0?function(d,B,E){for(var h=d.indexOf(` -`),u=1;u1&&arguments[1]!==void 0?arguments[1]:void 0,A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:JSON;return H3(t)?t:{text:A.stringify(t.json,null,e)}}function ArA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:JSON;return z3(t)?t:{json:e.parse(t.text)}}function u_(t,e,A){return RGA(t,e,A).text}function xGA(t,e){return LGA(t,e)>e}function LGA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1/0;if(H3(t))return t.text.length;var A=t.json,i=0;return function n(o){if(Array.isArray(o)){if((i+=o.length-1+2)>e)return;for(var r=0;re)return}else if(Cn(o)){var s=Object.keys(o);i+=2+s.length+(s.length-1);for(var a=0;aKsA(TsA(String(t))),unescapeValue:t=>HsA(YsA(t))},UGA={escapeValue:t=>TsA(String(t)),unescapeValue:t=>HsA(t)},KGA={escapeValue:t=>KsA(String(t)),unescapeValue:t=>YsA(t)},YGA={escapeValue:t=>String(t),unescapeValue:t=>t};function KsA(t){return t.replace(/[^\x20-\x7F]/g,e=>{var A;return e==="\b"||e==="\f"||e===` -`||e==="\r"||e===" "?e:"\\u"+("000"+((A=e.codePointAt(0))===null||A===void 0?void 0:A.toString(16))).slice(-4)})}function YsA(t){return t.replace(/\\u[a-fA-F0-9]{4}/g,e=>{try{var A=JSON.parse('"'+e+'"');return JsA[A]||A}catch{return e}})}var JsA={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},JGA={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":` -`,"\\r":"\r","\\t":" "};function TsA(t){return t.replace(/["\b\f\n\r\t\\]/g,e=>JsA[e]||e)}function HsA(t){return t.replace(/\\["bfnrt\\]/g,e=>JGA[e]||e)}function BQ(t){return typeof t!="string"?String(t):t.endsWith(` -`)?t+` -`:t}function zsA(t,e){return yQ(t,A=>A.nodeName.toUpperCase()===e.toUpperCase())}function Y1(t,e,A){return yQ(t,i=>function(n,o,r){return typeof n.getAttribute=="function"&&n.getAttribute(o)===r}(i,e,A))}function yQ(t,e){return!!Z_(t,e)}function Z_(t,e){for(var A=t;A&&!e(A);)A=A.parentNode;return A}function af(t){var e,A;return(e=t==null||(A=t.ownerDocument)===null||A===void 0?void 0:A.defaultView)!==null&&e!==void 0?e:void 0}function W_(t){var e=af(t),A=e?.document.activeElement;return!!A&&yQ(A,i=>i===t)}function OsA(t,e){return Z_(t,A=>A.nodeName===e)}function zN(t){return Y1(t,"data-type","selectable-key")?Ln.key:Y1(t,"data-type","selectable-value")?Ln.value:Y1(t,"data-type","insert-selection-area-inside")?Ln.inside:Y1(t,"data-type","insert-selection-area-after")?Ln.after:Ln.multi}function sy(t){return encodeURIComponent(Ct(t))}function PsA(t){var e,A=Z_(t,n=>!(n==null||!n.hasAttribute)&&n.hasAttribute("data-path")),i=(e=A?.getAttribute("data-path"))!==null&&e!==void 0?e:void 0;return i?ks(decodeURIComponent(i)):void 0}function TGA(t){var{allElements:e,currentElement:A,direction:i,hasPrio:n=()=>!0,margin:o=10}=t,r=FS(e.filter(function(u){var D=u.getBoundingClientRect();return D.width>0&&D.height>0}),a),s=a(A);function a(u){var D=u.getBoundingClientRect();return{x:D.left+D.width/2,y:D.top+D.height/2,rect:D,element:u}}function c(u,D){var L=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,R=u.x-D.x,w=(u.y-D.y)*L;return Math.sqrt(R*R+w*w)}var l=u=>c(u,s);if(i==="Left"||i==="Right"){var I=i==="Left"?r.filter(u=>{return D=s,u.rect.left+o{return D=s,u.rect.right>D.rect.right+o;var D}),C=I.filter(u=>{return D=u,L=s,Math.abs(D.y-L.y)c(u,s,10));return d?.element}if(i==="Up"||i==="Down"){var B=i==="Up"?r.filter(u=>{return D=s,u.y+o{return D=s,u.y>D.y+o;var D}),E=B.filter(u=>n(u.element)),h=rE(E,l)||rE(B,l);return h?.element}}function X_(){var t,e,A,i;return typeof navigator<"u"&&(t=(e=(A=navigator)===null||A===void 0||(A=A.platform)===null||A===void 0?void 0:A.toUpperCase().includes("MAC"))!==null&&e!==void 0?e:(i=navigator)===null||i===void 0||(i=i.userAgentData)===null||i===void 0||(i=i.platform)===null||i===void 0?void 0:i.toUpperCase().includes("MAC"))!==null&&t!==void 0&&t}function n2(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"+",A=[];$_(t,arguments.length>2&&arguments[2]!==void 0?arguments[2]:X_)&&A.push("Ctrl"),t.altKey&&A.push("Alt"),t.shiftKey&&A.push("Shift");var i=t.key.length===1?t.key.toUpperCase():t.key;return i in HGA||A.push(i),A.join(e)}function $_(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:X_;return t.ctrlKey||t.metaKey&&e()}var HGA={Ctrl:!0,Command:!0,Control:!0,Alt:!0,Option:!0,Shift:!0};function Jt(t,e){e===void 0&&(e={});var A=e.insertAt;if(t&&typeof document<"u"){var i=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",A==="top"&&i.firstChild?i.insertBefore(n,i.firstChild):i.appendChild(n),n.styleSheet?n.styleSheet.cssText=t:n.appendChild(document.createTextNode(t))}}Jt(`.jse-absolute-popup.svelte-1r8q3m8 { - position: relative; - left: 0; - top: 0; - width: 0; - height: 0; - z-index: 1001; -} -.jse-absolute-popup.svelte-1r8q3m8 .jse-hidden-input:where(.svelte-1r8q3m8) { - position: fixed; - left: 0; - top: 0; - width: 0; - height: 0; - padding: 0; - margin: 0; - border: none; - outline: none; - overflow: hidden; -} -.jse-absolute-popup.svelte-1r8q3m8 .jse-absolute-popup-content:where(.svelte-1r8q3m8) { - position: absolute; -}`);var zGA=wA('
      '),OGA=wA('
      ');function PGA(t,e){mt(e,!1);var A=b(e,"popup",8),i=b(e,"closeAbsolutePopup",8),n=$(),o=$();function r(I){A().options&&A().options.closeOnOuterClick&&!yQ(I.target,C=>C===g(n))&&i()(A().id)}function s(I){n2(I)==="Escape"&&(I.preventDefault(),I.stopPropagation(),i()(A().id))}hs(function(){g(o)&&g(o).focus()}),Zt();var a=OGA();ce("mousedown",A2,function(I){r(I)},!0),ce("keydown",A2,s,!0),ce("wheel",A2,function(I){r(I)},!0);var c=W(a),l=I=>{var C=zGA(),d=W(C);Co(d,B=>y(o,B),()=>g(o)),MsA(IA(d,2),()=>A().component,(B,E)=>{E(B,z1(()=>A().props))}),De(B=>Ll(C,B),[()=>(g(n),k(A()),nA(()=>function(B,E){var h=B.getBoundingClientRect(),{left:u,top:D,positionAbove:L,positionLeft:R}=function(){if(E.anchor){var{anchor:w,width:_=0,height:K=0,offsetTop:z=0,offsetLeft:U=0,position:H}=E,{left:q,top:j,bottom:gA,right:QA}=w.getBoundingClientRect(),BA=H==="top"||j+K>window.innerHeight&&j>K,lA=H==="left"||q+_>window.innerWidth&&q>_;return{left:lA?QA-U:q+U,top:BA?j-z:gA+z,positionAbove:BA,positionLeft:lA}}if(typeof E.left=="number"&&typeof E.top=="number"){var{left:vA,top:tA,width:cA=0,height:pA=0}=E;return{left:vA,top:tA,positionAbove:tA+pA>window.innerHeight&&tA>pA,positionLeft:vA+cA>window.innerWidth&&vA>cA}}throw new Error('Invalid config: pass either "left" and "top", or pass "anchor"')}();return(L?"bottom: ".concat(h.top-D,"px;"):"top: ".concat(D-h.top,"px;"))+(R?"right: ".concat(h.left-u,"px;"):"left: ".concat(u-h.left,"px;"))}(g(n),A().options)))],qA),iA(I,C)};LA(c,I=>{g(n)&&I(l)}),Co(a,I=>y(n,I),()=>g(n)),ce("mousedown",a,function(I){I.stopPropagation()}),ce("keydown",a,s),iA(t,a),pt()}var jGA=wA(" ",1);function f_(t,e){mt(e,!1);var A,i,n=Sr("jsoneditor:AbsolutePopup"),o=$([],!0);function r(c){var l=g(o).findIndex(C=>C.id===c);if(l!==-1){var I=g(o)[l];I.options.onClose&&I.options.onClose(),y(o,g(o).filter(C=>C.id!==c))}}A="absolute-popup",i={openAbsolutePopup:function(c,l,I){n("open...",l,I);var C={id:nQ(),component:c,props:l||{},options:I||{}};return y(o,[...g(o),C]),C.id},closeAbsolutePopup:r},XrA().set(A,i),fA(()=>g(o),()=>{n("popups",g(o))}),Qn(),Zt(!0);var s=jGA(),a=vt(s);qo(a,1,()=>g(o),or,(c,l)=>{PGA(c,{get popup(){return g(l)},closeAbsolutePopup:r})}),jo(IA(a,2),e,"default",{},null),iA(t,s),pt()}function cf(t,e){for(var A=new Set(e),i=t.replace(/ \(copy( \d+)?\)$/,""),n=t,o=1;A.has(n);){var r="copy"+(o>1?" "+o:"");n="".concat(i," (").concat(r,")"),o++}return n}function V0(t,e){var A=e-3;return t.length>e?t.substring(0,A)+"...":t}function qGA(t){if(t==="")return"";var e=t.toLowerCase();if(e==="null")return null;if(e==="true")return!0;if(e==="false")return!1;if(e!=="undefined"){var A=Number(t),i=parseFloat(t);return isNaN(A)||isNaN(i)?t:A}}var VGA={id:"jsonquery",name:"JSONQuery",description:` -

      - Enter a JSON Query function to filter, sort, or transform the data. - You can use functions like get, filter, - sort, pick, groupBy, uniq, etcetera. - Example query: filter(.age >= 18) -

      -`,createQuery:function(t,e){var{filter:A,sort:i,projection:n}=e,o=[];A&&A.path&&A.relation&&A.value&&o.push(["filter",[(r=A.relation,HS("1 ".concat(r," 1"))[0]),qD(A.path),qGA(A.value)]]);var r;return i&&i.path&&i.direction&&o.push(["sort",qD(i.path),i.direction==="desc"?"desc":"asc"]),n&&n.paths&&(n.paths.length>1?o.push(["pick",...n.paths.map(qD)]):o.push(["map",qD(n.paths[0])])),SW(["pipe",...o])},executeQuery:function(t,e,A){var i=UsA(A,JSON)?t:function(n){var o=A.stringify(n);return o!==void 0?JSON.parse(o):void 0}(t);return e.trim()!==""?RW(i,e):i}};function qD(t){return["get",...t]}var ZGA=tI("");function WGA(t,e){mt(e,!1);var A=870711,i=$(""),n=b(e,"data",8);function o(s){if(!s||!s.raw)return"";var a=s.raw,c={};return a=a.replace(/\s(?:xml:)?id=["']?([^"')\s]+)/g,(l,I)=>{var C="fa-".concat((A+=1).toString(16));return c[I]=C,' id="'.concat(C,'"')}),a=a.replace(/#(?:([^'")\s]+)|xpointer\(id\((['"]?)([^')]+)\2\)\))/g,(l,I,C,d)=>{var B=I||d;return B&&c[B]?"#".concat(c[B]):l}),a}fA(()=>k(n()),()=>{y(i,o(n()))}),Qn();var r=ZGA();bsA(W(r),()=>g(i),!0),iA(t,r),pt()}Jt(` - .fa-icon.svelte-1mc5hvj { - display: inline-block; - fill: currentColor; - } - .fa-flip-horizontal.svelte-1mc5hvj { - transform: scale(-1, 1); - } - .fa-flip-vertical.svelte-1mc5hvj { - transform: scale(1, -1); - } - .fa-spin.svelte-1mc5hvj { - animation: svelte-1mc5hvj-fa-spin 1s 0s infinite linear; - } - .fa-inverse.svelte-1mc5hvj { - color: #fff; - } - .fa-pulse.svelte-1mc5hvj { - animation: svelte-1mc5hvj-fa-spin 1s infinite steps(8); - } - @keyframes svelte-1mc5hvj-fa-spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } - } -`);var XGA=tI(""),$GA=tI(""),AUA=tI(""),eUA=tI("",1);function ji(t,e){var A=PD(e,["children","$$slots","$$events","$$legacy"]),i=PD(A,["class","data","scale","spin","inverse","pulse","flip","label","style"]);mt(e,!1);var n=b(e,"class",8,""),o=b(e,"data",8),r=$(),s=b(e,"scale",8,1),a=b(e,"spin",8,!1),c=b(e,"inverse",8,!1),l=b(e,"pulse",8,!1),I=b(e,"flip",8,void 0),C=b(e,"label",8,""),d=b(e,"style",8,""),B=$(10),E=$(10),h=$(),u=$();function D(){var R=1;return s()!==void 0&&(R=Number(s())),isNaN(R)||R<=0?(console.warn('Invalid prop: prop "scale" should be a number over 0.'),1):1*R}function L(){return g(r)?Math.max(g(r).width,g(r).height)/16:1}fA(()=>(k(o()),k(d()),k(s())),()=>{y(r,function(R){var w;if(R){if(!("definition"in R)){if("iconName"in R&&"icon"in R){R.iconName;var[_,K,,,z]=R.icon;w={width:_,height:K,paths:(Array.isArray(z)?z:[z]).map(U=>({d:U}))}}else w=R[Object.keys(R)[0]];return w}console.error("`import faIconName from '@fortawesome/package-name/faIconName` not supported - Please use `import { faIconName } from '@fortawesome/package-name/faIconName'` instead")}}(o())),d(),s(),y(B,g(r)?g(r).width/L()*D():0),y(E,g(r)?g(r).height/L()*D():0),y(h,function(){var R="";d()!==null&&(R+=d());var w=D();return w===1?R.length===0?"":R:(R===""||R.endsWith(";")||(R+="; "),"".concat(R,"font-size: ").concat(w,"em"))}()),y(u,g(r)?"0 0 ".concat(g(r).width," ").concat(g(r).height):"0 0 ".concat(g(B)," ").concat(g(E)))}),Qn(),Zt(),function(R,w){var _=PD(w,["children","$$slots","$$events","$$legacy"]),K=PD(_,["class","width","height","box","spin","inverse","pulse","flip","style","label"]),z=b(w,"class",8,""),U=b(w,"width",8),H=b(w,"height",8),q=b(w,"box",8,"0 0 0 0"),j=b(w,"spin",8,!1),gA=b(w,"inverse",8,!1),QA=b(w,"pulse",8,!1),BA=b(w,"flip",8,"none"),lA=b(w,"style",8,""),vA=b(w,"label",8,""),tA=XGA();ry(tA,cA=>{var pA;return fe(fe({version:"1.1",class:"fa-icon ".concat((pA=z())!==null&&pA!==void 0?pA:""),width:U(),height:H(),"aria-label":vA(),role:vA()?"img":"presentation",viewBox:q(),style:lA()},K),{},{[eQ]:cA})},[()=>({"fa-spin":j(),"fa-pulse":QA(),"fa-inverse":gA(),"fa-flip-horizontal":BA()==="horizontal","fa-flip-vertical":BA()==="vertical"})],"svelte-1mc5hvj"),jo(W(tA),w,"default",{},null),iA(R,tA)}(t,z1({get label(){return C()},get width(){return g(B)},get height(){return g(E)},get box(){return g(u)},get style(){return g(h)},get spin(){return a()},get flip(){return I()},get inverse(){return c()},get pulse(){return l()},get class(){return n()}},()=>i,{children:(R,w)=>{var _=_o();jo(vt(_),e,"default",{},K=>{var z=eUA(),U=vt(z);qo(U,1,()=>(g(r),nA(()=>{var gA;return((gA=g(r))===null||gA===void 0?void 0:gA.paths)||[]})),or,(gA,QA)=>{var BA=$GA();ry(BA,()=>fe({},g(QA))),iA(gA,BA)});var H=IA(U);qo(H,1,()=>(g(r),nA(()=>{var gA;return((gA=g(r))===null||gA===void 0?void 0:gA.polygons)||[]})),or,(gA,QA)=>{var BA=AUA();ry(BA,()=>fe({},g(QA))),iA(gA,BA)});var q=IA(H),j=gA=>{WGA(gA,{get data(){return g(r)},set data(QA){y(r,QA)},$$legacy:!0})};LA(q,gA=>{g(r),nA(()=>{var QA;return(QA=g(r))===null||QA===void 0?void 0:QA.raw})&&gA(j)}),iA(K,z)}),iA(R,_)},$$slots:{default:!0}})),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-boolean-toggle.svelte-1ryp01u { - padding: 0; - margin: 1px 0 0; - vertical-align: top; - display: inline-flex; - color: var(--jse-value-color-boolean, #ff8c00); -} - -.jse-boolean-toggle.svelte-1ryp01u:not(.jse-readonly) { - cursor: pointer; -}`);var tUA=wA('
      ');function iUA(t,e){mt(e,!1);var A=b(e,"path",9),i=b(e,"value",9),n=b(e,"readOnly",9),o=b(e,"onPatch",9),r=b(e,"focus",9);Zt(!0);var s,a=tUA(),c=W(a),l=qA(()=>i()===!0?zS:OS);ji(c,{get data(){return g(l)}}),De(I=>{En(a,"aria-checked",i()===!0),s=Vt(a,1,"jse-boolean-toggle svelte-1ryp01u",null,s,I),En(a,"title",n()?"Boolean value ".concat(i()):"Click to toggle this boolean value")},[()=>({"jse-readonly":n()})],qA),ce("mousedown",a,function(I){I.stopPropagation(),n()||(o()([{op:"replace",path:Ct(A()),value:!i()}]),r()())}),iA(t,a),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-color-picker-popup.svelte-s1wu8v .picker_wrapper.popup, -.jse-color-picker-popup.svelte-s1wu8v .picker_wrapper.popup .picker_arrow::before, -.jse-color-picker-popup.svelte-s1wu8v .picker_wrapper.popup .picker_arrow::after { - background: var(--jse-color-picker-background, var(--jse-panel-background, #ebebeb)); - line-height: normal; -} -.jse-color-picker-popup.svelte-s1wu8v .picker_slider, -.jse-color-picker-popup.svelte-s1wu8v .picker_sl, -.jse-color-picker-popup.svelte-s1wu8v .picker_editor input, -.jse-color-picker-popup.svelte-s1wu8v .picker_sample, -.jse-color-picker-popup.svelte-s1wu8v .picker_done button { - box-shadow: var(--jse-color-picker-border-box-shadow, #cbcbcb 0 0 0 1px); -} -.jse-color-picker-popup.svelte-s1wu8v .picker_editor input { - background: var(--jse-background-color, #fff); - color: var(--jse-text-color, #4d4d4d); -} -.jse-color-picker-popup.svelte-s1wu8v .picker_done button { - background: var(--jse-button-background, #e0e0e0); - color: var(--jse-button-color, var(--jse-text-color, #4d4d4d)); -} -.jse-color-picker-popup.svelte-s1wu8v .picker_done button:hover { - background: var(--jse-button-background-highlight, #e7e7e7); -}`);var nUA=wA('
      ');function oUA(t,e){mt(e,!1);var A=b(e,"color",8),i=b(e,"onChange",8),n=b(e,"showOnTop",8),o=$(),r=()=>{};hs(Yt(function*(){var a,c=new((a=yield import("./chunk-TXJFAAIW.js"))===null||a===void 0?void 0:a.default)({parent:g(o),color:A(),popup:n()?"top":"bottom",onDone(l){var I=l.rgba[3]===1?l.hex.substring(0,7):l.hex;i()(I)}});c.show(),r=()=>{c.destroy()}})),qc(()=>{r()}),Zt();var s=nUA();Co(s,a=>y(o,a),()=>g(o)),iA(t,s),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-color-picker-button.svelte-xeg9n6 { - font-size: var(--jse-font-size-mono, 14px); - width: var(--jse-color-picker-button-size, 1em); - height: var(--jse-color-picker-button-size, 1em); - box-sizing: border-box; - padding: 0; - margin: 2px 0 0 calc(0.5 * var(--jse-padding, 10px)); - display: inline-flex; - vertical-align: top; - border: 1px solid var(--jse-text-color, #4d4d4d); - border-radius: 2px; - background: inherit; - outline: none; -} - -.jse-color-picker-button.svelte-xeg9n6:not(.jse-readonly) { - cursor: pointer; -}`);var rUA=wA('');function sUA(t,e){mt(e,!1);var A=$(void 0,!0),i=$(void 0,!0),{openAbsolutePopup:n}=$1("absolute-popup"),o=b(e,"path",9),r=b(e,"value",9),s=b(e,"readOnly",9),a=b(e,"onPatch",9),c=b(e,"focus",9);function l(B){a()([{op:"replace",path:Ct(o()),value:B}]),I()}function I(){c()()}fA(()=>k(r()),()=>{y(A,LsA(r()))}),fA(()=>(k(s()),k(r())),()=>{y(i,s()?"Color ".concat(r()):"Click to open a color picker")}),Qn(),Zt(!0);var C,d=rUA();De(B=>{var E;C=Vt(d,1,"jse-color-picker-button svelte-xeg9n6",null,C,B),Ll(d,"background: ".concat((E=g(A))!==null&&E!==void 0?E:"")),En(d,"title",g(i)),En(d,"aria-label",g(i))},[()=>({"jse-readonly":s()})],qA),ce("click",d,function(B){var E,h;if(!s()){var u=B.target,D=u.getBoundingClientRect().top,L=((E=(h=af(u))===null||h===void 0?void 0:h.innerHeight)!==null&&E!==void 0?E:0)-D<300&&D>300,R={color:r(),onChange:l,showOnTop:L};n(oUA,R,{anchor:u,closeOnOuterClick:!0,onClose:I,offsetTop:18,offsetLeft:-8,height:300})}}),iA(t,d),pt()}var ON=1e3,O3=100,VD=100,Qy=2e4,aQ=[{start:0,end:O3}],aUA=1048576,cUA=1048576,PN=10485760,jN="Insert or paste contents, enter [ insert a new array, enter { to insert a new object, or start typing to insert a new value",AG="Open context menu (Click here, right click on the selection, or use the context menu button or Ctrl+Q)",KC="hover-insert-inside",ZD="hover-insert-after",irA="hover-collection",qN="valid",nrA="repairable",Z0=336,W0=260,_3=100,orA={[Pc.asc]:"ascending",[Pc.desc]:"descending"};function jsA(t){for(var e=US(t,s=>s.start),A=[e[0]],i=0;i0&&arguments[0]!==void 0?arguments[0]:{expanded:!1};return{type:"array",expanded:t,visibleSections:aQ,items:[]}}function iG(){var{expanded:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{expanded:!1};return{type:"object",expanded:t,properties:{}}}var nG={createObjectDocumentState:iG,createArrayDocumentState:tG,createValueDocumentState:function(){return{type:"value"}}};function VsA(t,e,A,i){var{createObjectDocumentState:n,createArrayDocumentState:o,createValueDocumentState:r}=i;return function s(a,c,l){if(Array.isArray(a)){var I=Mr(c)?c:o();if(l.length===0)return I;var C=ts(l[0]),d=s(a[C],I.items[C],l.slice(1));return cs(I,["items",l[0]],d)}if(Cn(a)){var B=_a(c)?c:n();if(l.length===0)return B;var E=l[0],h=s(a[E],B.properties[E],l.slice(1));return cs(B,["properties",E],h)}return eG(c)?c:r()}(t,e,A)}function Qc(t,e){return P3(t,e,arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],(A,i)=>{if(A!==void 0&&i!==void 0)return Array.isArray(A)?Mr(i)?i:tG({expanded:!!ZC(i)&&i.expanded}):Cn(A)?_a(i)?i:iG({expanded:!!ZC(i)&&i.expanded}):eG(i)?i:void 0},()=>!0)}function P3(t,e,A,i,n){var o=i(t,e,A);if(Array.isArray(t)&&Mr(o)&&n(o)){var r=[];return oG(t,o.visibleSections,a=>{var c=A.concat(String(a)),l=P3(t[a],o.items[a],c,i,n);l!==void 0&&(r[a]=l)}),ZoA(r,o.items)?o:fe(fe({},o),{},{items:r})}if(Cn(t)&&_a(o)&&n(o)){var s={};return Object.keys(t).forEach(a=>{var c=A.concat(a),l=P3(t[a],o.properties[a],c,i,n);l!==void 0&&(s[a]=l)}),ZoA(Object.values(s),Object.values(o.properties))?o:fe(fe({},o),{},{properties:s})}return o}function oG(t,e,A){e.forEach(i=>{var{start:n,end:o}=i;FsA(n,Math.min(t.length,o),A)})}function j3(t,e){for(var A=t,i=[],n=0;n{var I=ZC(l)&&!l.expanded?fe(fe({},l),{},{expanded:!0}):l;return Mr(I)?function(C,d){if(function(h,u){return h.some(D=>u>=D.start&&ufunction(c,l,I,C){return P3(c,l,I,(d,B,E)=>Array.isArray(d)&&C(E)?Mr(B)?B.expanded?B:fe(fe({},B),{},{expanded:!0}):tG({expanded:!0}):Cn(d)&&C(E)?_a(B)?B.expanded?B:fe(fe({},B),{},{expanded:!0}):iG({expanded:!0}):B,d=>ZC(d)&&d.expanded)}(s,a,[],i))}function IrA(t,e,A,i){return EQ(t,e,A,(n,o)=>i?function(r,s,a){return P3(r,s,a,(c,l)=>CrA(l),()=>!0)}(n,o,A):CrA(o))}function CrA(t){return Mr(t)&&t.expanded?fe(fe({},t),{},{expanded:!1,visibleSections:aQ}):_a(t)&&t.expanded?fe(fe({},t),{},{expanded:!1}):t}function ZsA(t,e,A){var i={json:t,documentState:e},n=A.reduce((o,r)=>({json:Da(o.json,[r]),documentState:dUA(o.json,o.documentState,r)}),i);return{json:n.json,documentState:Qc(n.json,n.documentState)}}function dUA(t,e,A){if(lS(A))return drA(t,e,A,void 0);if(gS(A))return BrA(t,e,A);if(k8(A)){var i=ya(t,A.path),n=zg(t,e,i);return n?Ky(t,e,i,{type:"value",enforceString:n}):e}return S8(A)||j2(A)?function(o,r,s){if(j2(s)&&s.from===s.path)return r;var a=r,c=ya(o,s.from),l=Jg(o,a,c);return j2(s)&&(a=BrA(o,a,{path:s.from})),a=drA(o,a,{path:s.path},l),a}(t,e,A):e}function Jg(t,e,A){try{return Ke(e,j3(t,A))}catch{return}}function rG(t,e,A,i,n){var o=VsA(t,e,A,n);return Pu(o,j3(t,A),r=>{var s=Ke(t,A);return i(s,r)})}function Ky(t,e,A,i){return function(n,o,r,s,a){var c=VsA(n,o,r,a);return cs(c,j3(n,r),s)}(t,e,A,i,nG)}function EQ(t,e,A,i){return rG(t,e,A,i,nG)}function drA(t,e,A,i){var n=ya(t,A.path),o=e;return o=EQ(t,o,Fi(n),(r,s)=>{if(!Mr(s))return s;var a=ts(hi(n)),{items:c,visibleSections:l}=s;return fe(fe({},s),{},{items:a{if(!Mr(s))return s;var a=ts(hi(i)),{items:c,visibleSections:l}=s;return fe(fe({},s),{},{items:c.slice(0,a).concat(c.slice(a+1)),visibleSections:WsA(l,a,-1)})}):function(r,s,a){var c=j3(r,a);return Ms(s,c)?oC(s,j3(r,a)):s}(t,e,i)}function WsA(t,e,A){return function(i){for(var n=i.slice(0),o=1;o({start:i.start>e?i.start+A:i.start,end:i.end>e?i.end+A:i.end})))}function zg(t,e,A){var i,n=Ke(t,A),o=Jg(t,e,A),r=eG(o)?o.enforceString:void 0;return typeof r=="boolean"?r:typeof(i=n)=="string"&&typeof DQ(i,JSON)!="string"}function lf(t,e){var A=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=t.indexOf(e);return i!==-1?A?t.slice(i):t.slice(i+1):[]}function sG(t,e){var A=[];return function i(n,o,r){A.push(r),wo(n)&&Mr(o)&&o.expanded&&oG(n,o.visibleSections,s=>{i(n[s],o.items[s],r.concat(String(s)))}),xo(n)&&_a(o)&&o.expanded&&Object.keys(n).forEach(s=>{i(n[s],o.properties[s],r.concat(s))})}(t,e,[]),A}function XsA(t,e){var A=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],i=[];return function n(o,r){i.push({path:r,type:Rl.value});var s=Jg(t,e,r);if(o&&ZC(s)&&s.expanded){if(A&&i.push({path:r,type:Rl.inside}),wo(o)){var a=Mr(s)?s.visibleSections:aQ;oG(o,a,c=>{var l=r.concat(String(c));n(o[c],l),A&&i.push({path:l,type:Rl.after})})}xo(o)&&Object.keys(o).forEach(c=>{var l=r.concat(c);i.push({path:l,type:Rl.key}),n(o[c],l),A&&i.push({path:l,type:Rl.after})})}}(t,[]),i}function VN(t,e,A){var i=sG(t,e),n=i.map(Ct).indexOf(Ct(A));if(n!==-1&&n3&&arguments[3]!==void 0?arguments[3]:10240;return Sl(t,e,A,xGA({json:Ke(t,A)},i)?G3:aG)}function ZN(t,e,A){var i=Jg(t,e,A);return ZC(i)&&i.expanded?e:WC(t,e,A)}function G3(t){return t.length===0||t.length===1&&t[0]==="0"}function ErA(t){return t.length===0}function aG(){return!0}function ay(){return!1}function Ua(t){return t&&t.type===Ln.after||!1}function fr(t){return t&&t.type===Ln.inside||!1}function kr(t){return t&&t.type===Ln.key||!1}function an(t){return t&&t.type===Ln.value||!1}function Kn(t){return t&&t.type===Ln.multi||!1}function Yy(t){return Kn(t)&&di(t.focusPath,t.anchorPath)}function q3(t){return Kn(t)||Ua(t)||fr(t)||kr(t)||an(t)}function WN(t){return t&&t.type===Ln.text||!1}function W1(t,e){var A=[];return function(i,n,o){if(n){var r=OC(n),s=et(n);if(di(r,s))return o(r);if(i!==void 0){var a=AaA(r,s);if(r.length===a.length||s.length===a.length)return o(a);var c=_s(r,s),l=X0(i,c),I=P1(i,c),C=i2(i,c,l),d=i2(i,c,I);if(!(C===-1||d===-1)){var B=Ke(i,a);if(xo(B)){for(var E=Object.keys(B),h=C;h<=d;h++){var u=o(a.concat(E[h]));if(u!==void 0)return u}return}if(wo(B)){for(var D=C;D<=d;D++){var L=o(a.concat(String(D)));if(L!==void 0)return L}return}throw new Error("Failed to create selection")}}}}(t,e,i=>{A.push(i)}),A}function $sA(t){return fr(t)?t.path:Fi(et(t))}function X0(t,e){if(!Kn(e))return e.path;var A=i2(t,e,e.anchorPath);return i2(t,e,e.focusPath)A?e.focusPath:e.anchorPath}function QrA(t,e,A){var i=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(A){var n=i?et(A):X0(t,A),o=function(a,c,l){var I=sG(a,c),C=I.map(Ct),d=Ct(l),B=C.indexOf(d);if(B!==-1&&B>0)return I[B-1]}(t,e,n);if(i)return fr(A)||Ua(A)?o!==void 0?_s(n,n):void 0:o!==void 0?_s(OC(A),o):void 0;if(Ua(A)||fr(A))return Ni(n);if(kr(A)){if(o===void 0||o.length===0)return;var r=Fi(o),s=Ke(t,r);return Array.isArray(s)||Oi(o)?Ni(o):o2(o)}return an(A),o!==void 0?Ni(o):void 0}}function hrA(t,e,A,i){if(!A)return{caret:void 0,previous:void 0,next:void 0};var n=XsA(t,e,i),o=n.findIndex(r=>di(r.path,et(A))&&String(r.type)===String(A.type));return{caret:o!==-1?n[o]:void 0,previous:o!==-1&&o>0?n[o-1]:void 0,next:o!==-1&&oA[i].length;)i++;var n=A[i];return n===void 0||n.length===0||Array.isArray(Ke(t,Fi(n)))?Ni(n):o2(n)}function QQ(t,e){if(e.length===1){var A=Fc(e);if(A.op==="replace")return Ni(ya(t,A.path))}if(!Oi(e)&&e.every(r=>r.op==="move")){var i=Fc(e),n=e.slice(1);if((S8(i)||j2(i))&&i.from!==i.path&&n.every(r=>(S8(r)||j2(r))&&r.from===r.path))return o2(ya(t,i.path))}var o=e.filter(r=>r.op!=="test"&&r.op!=="remove"&&(r.op!=="move"||r.from!==r.path)&&typeof r.path=="string").map(r=>ya(t,r.path));if(!Oi(o))return{type:Ln.multi,anchorPath:Fc(o),focusPath:hi(o)}}function AaA(t,e){for(var A=0;AA.length&&e.length>A.length;return{type:Ln.multi,anchorPath:i?A.concat(t[A.length]):A,focusPath:i?A.concat(e[A.length]):A}}function eaA(t,e,A,i){if(kr(e))return String(hi(e.path));if(an(e)){var n=Ke(t,e.path);return typeof n=="string"?n:i.stringify(n,null,A)}if(Kn(e)){if(Oi(e.focusPath))return i.stringify(t,null,A);var o=$sA(e),r=Ke(t,o);if(Array.isArray(r)){if(Yy(e)){var s=Ke(t,e.focusPath);return i.stringify(s,null,A)}return W1(t,e).map(a=>{var c=Ke(t,a);return"".concat(i.stringify(c,null,A),",")}).join(` -`)}return W1(t,e).map(a=>{var c=hi(a),l=Ke(t,a);return"".concat(i.stringify(c),": ").concat(i.stringify(l,null,A),",")}).join(` -`)}}function br(t){return(kr(t)||an(t))&&t.edit===!0}function oQ(t){return kr(t)||an(t)||Kn(t)}function WD(t){return kr(t)||an(t)||Yy(t)}function D_(t){switch(t.type){case Rl.key:return o2(t.path);case Rl.value:return Ni(t.path);case Rl.after:return t2(t.path);case Rl.inside:return r2(t.path)}}function frA(t,e){switch(t){case Ln.key:return o2(e);case Ln.value:return Ni(e);case Ln.after:return t2(e);case Ln.inside:return r2(e);case Ln.multi:case Ln.text:return _s(e,e)}}function XD(t,e,A){if(e)return V3(t,e,A)||Pg(Kn(e)?Fi(e.focusPath):e.path,A)?e:void 0}function V3(t,e,A){if(t===void 0||!e)return!1;if(kr(e)||fr(e)||Ua(e))return di(e.path,A);if(an(e))return Pg(A,e.path);if(Kn(e)){var i=X0(t,e),n=P1(t,e),o=Fi(e.focusPath);if(!Pg(A,o)||A.length<=o.length)return!1;var r=i2(t,e,i),s=i2(t,e,n),a=i2(t,e,A);return a!==-1&&a>=r&&a<=s}return!1}function i2(t,e,A){var i=Fi(e.focusPath);if(!Pg(A,i)||A.length<=i.length)return-1;var n=A[i.length],o=Ke(t,i);if(xo(o))return Object.keys(o).indexOf(n);if(wo(o)){var r=ts(n);if(r');function iaA(t,e){mt(e,!1);var A=Sr("jsoneditor:EditableDiv"),i=b(e,"value",9),n=b(e,"initialValue",9),o=b(e,"shortText",9,!1),r=b(e,"label",9),s=b(e,"onChange",9),a=b(e,"onCancel",9),c=b(e,"onFind",9),l=b(e,"onPaste",9,$o),I=b(e,"onValueClass",9,()=>""),C=$(void 0,!0),d=$(void 0,!0),B=!1;function E(){return g(C)?function(D){return D.replace(/\n$/,"")}(g(C).innerText):""}function h(D){g(C)&&hc(C,g(C).innerText=BQ(D))}hs(()=>{A("onMount",{value:i(),initialValue:n()}),h(n()!==void 0?n():i()),g(C)&&function(D){if(D.firstChild!=null){var L=document.createRange(),R=window.getSelection();L.setStart(D,1),L.collapse(!0),R?.removeAllRanges(),R?.addRange(L)}else D.focus()}(g(C))}),qc(()=>{var D=E();A("onDestroy",{closed:B,value:i(),newValue:D}),B||D===i()||s()(D,O1.no)}),fA(()=>(k(I()),k(i())),()=>{y(d,I()(i()))}),Qn(),Zt(!0);var u=BUA();Co(u,D=>y(C,D),()=>g(C)),De(D=>{En(u,"aria-label",r()),Vt(u,1,D,"svelte-f9kmxj")},[()=>Z1((k(Kl),g(d),k(o()),nA(()=>Kl("jse-editable-div",g(d),{"jse-short-text":o()}))))],qA),ce("input",u,function(){var D=E();D===""&&h(""),y(d,I()(D))}),ce("keydown",u,function(D){D.stopPropagation();var L=n2(D);if(L==="Escape"&&(D.preventDefault(),B=!0,a()()),L==="Enter"||L==="Tab"){D.preventDefault(),B=!0;var R=E();s()(R,O1.nextInside)}L==="Ctrl+F"&&(D.preventDefault(),c()(!1)),L==="Ctrl+H"&&(D.preventDefault(),c()(!0))}),ce("paste",u,function(D){if(D.stopPropagation(),l()&&D.clipboardData){var L=D.clipboardData.getData("text/plain");l()(L)}}),ce("blur",u,function(){var D=document.hasFocus(),L=E();A("handleBlur",{hasFocus:D,closed:B,value:i(),newValue:L}),document.hasFocus()&&!B&&(B=!0,L!==i()&&s()(L,O1.self))}),iA(t,u),pt()}function EUA(t,e){mt(e,!1);var A=b(e,"path",9),i=b(e,"value",9),n=b(e,"selection",9),o=b(e,"mode",9),r=b(e,"parser",9),s=b(e,"normalization",9),a=b(e,"enforceString",9),c=b(e,"onPatch",9),l=b(e,"onPasteJson",9),I=b(e,"onSelect",9),C=b(e,"onFind",9),d=b(e,"focus",9),B=b(e,"findNextInside",9);function E(L){return a()?L:DQ(L,r())}function h(){I()(Ni(A())),d()()}Zt(!0);var u=qA(()=>(k(s()),k(i()),nA(()=>s().escapeValue(i())))),D=qA(()=>(k(br),k(n()),nA(()=>br(n())?n().initialValue:void 0)));iaA(t,{get value(){return g(u)},get initialValue(){return g(D)},label:"Edit value",onChange:function(L,R){c()([{op:"replace",path:Ct(A()),value:E(s().unescapeValue(L))}],(w,_,K)=>{if(!K||di(A(),et(K)))return{state:_,selection:R===O1.nextInside?B()(A()):Ni(A())}}),d()()},onCancel:h,onPaste:function(L){try{var R=r().parse(L);No(R)&&l()({path:A(),contents:R,onPasteAsJson:()=>{h();var w=[{op:"replace",path:Ct(A()),value:R}];c()(w,(_,K)=>({state:WC(_,K,A())}))}})}catch{}},get onFind(){return C()},onValueClass:function(L){return taA(E(s().unescapeValue(L)),o(),r())}}),pt()}function rQ(t,e,A){var i=Fi(e),n=Ke(t,i);if(wo(n)){var o=ts(hi(e));return A.map((c,l)=>({op:"add",path:Ct(i.concat(String(o+l))),value:c.value}))}if(xo(n)){var r=hi(e),s=Object.keys(n),a=r!==void 0?lf(s,r,!0):[];return[...A.map(c=>{var l=cf(c.key,s);return{op:"add",path:Ct(i.concat(l)),value:c.value}}),...a.map(c=>X1(i,c))]}throw new Error("Cannot create insert operations: parent must be an Object or Array")}function y_(t,e,A){var i=Ke(t,e);if(Array.isArray(i)){var n=i.length;return A.map((o,r)=>({op:"add",path:Ct(e.concat(String(n+r))),value:o.value}))}return A.map(o=>{var r=cf(o.key,Object.keys(i));return{op:"add",path:Ct(e.concat(r)),value:o.value}})}function gf(t,e,A,i){var n=cf(i,e.filter(r=>r!==A)),o=lf(e,A,!1);return[{op:"move",from:Ct(t.concat(A)),path:Ct(t.concat(n))},...o.map(r=>X1(t,r))]}function naA(t,e){var A=hi(e);if(Oi(A))throw new Error("Cannot duplicate root object");var i=Fi(A),n=hi(A),o=Ke(t,i);if(wo(o)){var r=hi(e),s=r?ts(hi(r))+1:0;return[...e.map((l,I)=>({op:"copy",from:Ct(l),path:Ct(i.concat(String(I+s)))}))]}if(xo(o)){var a=Object.keys(o),c=n!==void 0?lf(a,n,!1):[];return[...e.map(l=>{var I=cf(hi(l),a);return{op:"copy",from:Ct(l),path:Ct(i.concat(I))}}),...c.map(l=>X1(i,l))]}throw new Error("Cannot create duplicate operations: parent must be an Object or Array")}function oaA(t,e){if(an(e))return[{op:"move",from:Ct(e.path),path:""}];if(!Kn(e))throw new Error("Cannot create extract operations: parent must be an Object or Array");var A=Fi(e.focusPath),i=Ke(t,A);if(wo(i)){var n=W1(t,e).map(r=>{var s=ts(hi(r));return i[s]});return[{op:"replace",path:"",value:n}]}if(xo(i)){var o={};return W1(t,e).forEach(r=>{var s=String(hi(r));o[s]=i[s]}),[{op:"replace",path:"",value:o}]}throw new Error("Cannot extract: unsupported type of selection "+JSON.stringify(e))}function raA(t,e,A,i){if(kr(e)){var n=NsA(A,i),o=Fi(e.path),r=Ke(t,o);return gf(o,Object.keys(r),hi(e.path),typeof n=="string"?n:A)}if(an(e)||Kn(e)&&Oi(e.focusPath))try{return[{op:"replace",path:Ct(et(e)),value:sf(A,_=>rf(_,i))}]}catch{return[{op:"replace",path:Ct(et(e)),value:A}]}if(Kn(e)){var s=XN(A,i);return function(_,K,z){var U=Fc(K),H=Fi(U),q=Ke(_,H);if(wo(q)){var j=Fc(K),gA=j?ts(hi(j)):0;return[...py(K),...z.map((VA,oe)=>({op:"add",path:Ct(H.concat(String(oe+gA))),value:VA.value}))]}if(xo(q)){var QA=hi(K),BA=Fi(QA),lA=hi(QA),vA=Object.keys(q),tA=lA!==void 0?lf(vA,lA,!1):[],cA=new Set(K.map(VA=>hi(VA))),pA=vA.filter(VA=>!cA.has(VA));return[...py(K),...z.map(VA=>{var oe=cf(VA.key,pA);return{op:"add",path:Ct(BA.concat(oe)),value:VA.value}}),...tA.map(VA=>X1(BA,VA))]}throw new Error("Cannot create replace operations: parent must be an Object or Array")}(t,W1(t,e),s)}if(Ua(e)){var a=XN(A,i),c=e.path,l=Fi(c),I=Ke(t,l);if(wo(I)){var C=ts(hi(c));return rQ(t,l.concat(String(C+1)),a)}if(xo(I)){var d=String(hi(c)),B=Object.keys(I);if(Oi(B)||hi(B)===d)return y_(t,l,a);var E=B.indexOf(d),h=B[E+1];return rQ(t,l.concat(h),a)}throw new Error("Cannot create insert operations: parent must be an Object or Array")}if(fr(e)){var u=XN(A,i),D=e.path,L=Ke(t,D);if(wo(L))return rQ(t,D.concat("0"),u);if(xo(L)){var R=Object.keys(L);if(Oi(R))return y_(t,D,u);var w=Fc(R);return rQ(t,D.concat(w),u)}throw new Error("Cannot create insert operations: parent must be an Object or Array")}throw new Error("Cannot insert: unsupported type of selection "+JSON.stringify(e))}function py(t){return t.map(e=>({op:"remove",path:Ct(e)})).reverse()}function X1(t,e){return{op:"move",from:Ct(t.concat(e)),path:Ct(t.concat(e))}}function XN(t,e){var A=/^\s*{/.test(t),i=/^\s*\[/.test(t),n=NsA(t,e),o=n!==void 0?n:sf(t,r=>rf(r,e));return A&&Cn(o)||i&&Array.isArray(o)?[{key:"New item",value:o}]:Array.isArray(o)?o.map((r,s)=>({key:"New item "+s,value:r})):Cn(o)?Object.keys(o).map(r=>({key:r,value:o[r]})):[{key:"New item",value:o}]}function saA(t,e){if(kr(e)){var A=Fi(e.path),i=Ke(t,A),n=gf(A,Object.keys(i),hi(e.path),"");return{operations:n,newSelection:QQ(t,n)}}if(an(e))return{operations:[{op:"replace",path:Ct(e.path),value:""}],newSelection:e};if(Kn(e)){var o=W1(t,e),r=py(o),s=hi(o);if(Oi(s))return{operations:[{op:"replace",path:"",value:""}],newSelection:Ni([])};var a=Fi(s),c=Ke(t,a);if(wo(c)){var l=Fc(o),I=ts(hi(l));return{operations:r,newSelection:I===0?r2(a):t2(a.concat(String(I-1)))}}if(xo(c)){var C=Object.keys(c),d=Fc(o),B=hi(d),E=C.indexOf(B),h=C[E-1];return{operations:r,newSelection:E===0?r2(a):t2(a.concat(h))}}throw new Error("Cannot create remove operations: parent must be an Object or Array")}throw new Error("Cannot remove: unsupported type of selection "+JSON.stringify(e))}function aaA(t,e){var A=function(i,n){if(Oi(n)||!n.every(j2))return n;var o=[];for(var r of n){var s=mrA(ks(r.from)),a=mrA(ks(r.path));if(!s||!a)return n;o.push({from:s,path:a,operation:r})}var c=o[0].path.parent,l=Ke(i,c);if(!xo(l)||!o.every(B=>function(E,h){return di(E.from.parent,h)&&di(E.path.parent,h)}(B,c)))return n;var I=function(B,E){var h=Object.keys(E),u=h.slice();for(var D of B){var L=u.indexOf(D.from.key);L!==-1&&(u.splice(L,1),u.push(D.path.key))}for(var R=0;RB.operation,d=o.filter(B=>B.operation.from!==B.operation.path);return d.some(B=>B.path.key===I)?d.map(C):[X1(c,I),...d.map(C)]}(t,e);return R8(t,A,{before:(i,n,o)=>{if(gS(n)){var r=ks(n.path);return{revertOperations:[...o,...$N(i,r)]}}if(j2(n)){var s=ks(n.from);return{revertOperations:n.from===n.path?[n,...$N(i,s)]:[...o,...$N(i,s)]}}return{document:i}}})}function mrA(t){return t.length>0?{parent:Fi(t),key:hi(t)}:void 0}function $N(t,e){var A=Fi(e),i=hi(e),n=Ke(t,A);return xo(n)?lf(Object.keys(n),i,!1).map(o=>X1(A,o)):[]}function prA(t){var e=t.activeIndex0?0:-1,A=t.items[e],i=t.items.map((n,o)=>fe(fe({},n),{},{active:o===e}));return fe(fe({},t),{},{items:i,activeItem:A,activeIndex:e})}function wrA(t,e){var A,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=t.toLowerCase(),o=(A=i?.maxResults)!==null&&A!==void 0?A:1/0,r=i?.columns,s=[],a=[];function c(h){s.length>=o||s.push(h)}function l(h,u){if(wo(u)){var D=a.length;a.push("0");for(var L=0;L=o)return;a.pop()}else if(xo(u)){var R=Object.keys(u),w=a.length;for(var _ of(a.push(""),R))if(a[w]=_,DrA(_,h,a,Nl.key,c),l(h,u[_]),s.length>=o)return;a.pop()}else DrA(String(u),h,a,Nl.value,c)}if(t==="")return[];if(r){if(!Array.isArray(e))throw new Error("json must be an Array when option columns is defined");for(var I=0;IB.length+1;)a.pop();l(n,Ke(C,B))}if(s.length>=o)break}return s}return l(n,e),s}function DrA(t,e,A,i,n){var o=t.toLowerCase(),r=0,s=-1,a=-1;do(a=o.indexOf(e,s))!==-1&&(s=a+e.length,n({path:A.slice(0),field:i,fieldIndex:r,start:a,end:s}),r++);while(a!==-1)}function v_(t,e,A,i){return t.substring(0,A)+e+t.substring(i)}function yrA(t,e,A){var i=t;return LS(A,n=>{i=v_(i,e,n.start,n.end)}),i}function QUA(t,e,A,i,n){var{field:o,path:r,start:s,end:a}=i;if(o===Nl.key){var c=Fi(r),l=Ke(t,c),I=hi(r),C=gf(c,Object.keys(l),I,v_(I,A,s,a));return{newSelection:QQ(t,C),operations:C}}if(o===Nl.value){var d=Ke(t,r);if(d===void 0)throw new Error("Cannot replace: path not found ".concat(Ct(r)));var B=typeof d=="string"?d:String(d),E=zg(t,e,r),h=v_(B,A,s,a),u=[{op:"replace",path:Ct(r),value:E?h:DQ(h,n)}];return{newSelection:QQ(t,u),operations:u}}throw new Error("Cannot replace: unknown type of search result field ".concat(o))}function vrA(t){return t.path.concat(t.field,String(t.fieldIndex))}function brA(t){var e=qsA(t)?t.searchResults.filter(A=>A.field===Nl.key):void 0;return e&&e.length>0?e:void 0}function MrA(t){var e=qsA(t)?t.searchResults.filter(A=>A.field===Nl.value):void 0;return e&&e.length>0?e:void 0}var hUA={createObjectDocumentState:()=>({type:"object",properties:{}}),createArrayDocumentState:()=>({type:"array",items:[]}),createValueDocumentState:()=>({type:"value"})};function caA(t,e){return e.reduce((A,i)=>function(n,o,r,s){return rG(n,o,r,s,hUA)}(t,A,i.path,(n,o)=>fe(fe({},o),{},{searchResults:o.searchResults?o.searchResults.concat(i):[i]})),void 0)}function wy(t){var e,A=(e=t?.searchResults)!==null&&e!==void 0?e:[],i=_a(t)?Object.values(t.properties).flatMap(wy):Mr(t)?t.items.flatMap(wy):[];return A.concat(i)}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-highlight.svelte-5fb7bl { - background-color: var(--jse-search-match-color, #ffe665); - outline: var(--jse-search-match-outline, none); -} -.jse-highlight.jse-active.svelte-5fb7bl { - background-color: var(--jse-search-match-active-color, var(--jse-search-match-color, #ffe665)); - outline: var(--jse-search-match-outline, 2px solid #e0be00); -}`);var uUA=wA(" ");function laA(t,e){mt(e,!1);var A=$(),i=b(e,"text",8),n=b(e,"searchResultItems",8);fA(()=>(k(i()),k(n())),()=>{y(A,function(r,s){var a=[],c=0;for(var l of s){var I=r.slice(c,l.start);I!==""&&a.push({resultIndex:void 0,type:"normal",text:I,active:!1});var C=r.slice(l.start,l.end);a.push({resultIndex:l.resultIndex,type:"highlight",text:C,active:l.active}),c=l.end}var d=hi(s);return d&&d.endg(A),or,(r,s)=>{var a=_o(),c=vt(a),l=C=>{var d=Tr();De(()=>wt(d,(g(s),nA(()=>g(s).text)))),iA(C,d)},I=C=>{var d,B=uUA(),E=W(B);De((h,u,D)=>{d=Vt(B,1,"jse-highlight svelte-5fb7bl",null,d,h),En(B,"data-search-result-index",u),wt(E,D)},[()=>({"jse-active":g(s).active}),()=>(g(s),nA(()=>String(g(s).resultIndex))),()=>(k(BQ),g(s),nA(()=>BQ(g(s).text)))],qA),iA(C,B)};LA(c,C=>{g(s),nA(()=>g(s).type==="normal")?C(l):C(I,!1)}),iA(r,a)}),iA(t,o),pt()}function cy(t){var e=1e3;if(t<900)return t.toFixed()+" B";var A=t/e;if(A<900)return A.toFixed(1)+" KB";var i=A/e;if(i<900)return i.toFixed(1)+" MB";var n=i/e;return n<900?n.toFixed(1)+" GB":(n/e).toFixed(1)+" TB"}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-tag.svelte-jlw0fj { - border: none; - font-size: 80%; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - color: var(--jse-tag-color, var(--jse-text-color-inverse, #fff)); - background: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); - border-radius: 2px; - cursor: pointer; - display: inline-block; - padding: 0 4px; - line-height: normal; - margin: 1px 0; -} -.jse-tag.svelte-jlw0fj:hover { - opacity: 0.8; -} -.jse-tag.disabled.svelte-jlw0fj { - opacity: 0.7; - cursor: inherit; -}`);var fUA=wA('');function ly(t,e){mt(e,!0);var A,i=Ga(()=>e.onclick?o=>{o.preventDefault(),o.stopPropagation(),e.onclick()}:void 0),n=fUA();n.__click=function(){for(var o,r=arguments.length,s=new Array(r),a=0;a2?s-2:0),c=2;c{C!==(C=r())&&(l&&(jc(l),l=null),l=Vg(()=>C(I,...a)))},Af)}(W(n),()=>{var o;return(o=e.children)!==null&&o!==void 0?o:FoA}),De(o=>A=Vt(n,1,"jse-tag svelte-jlw0fj",null,A,o),[()=>({disabled:!e.onclick})]),iA(t,n),pt()}of(["click"]);function mUA(t,e,A){typeof e.value=="string"&&g(A)&&$_(t)&&(t.preventDefault(),t.stopPropagation(),window.open(e.value,"_blank"))}function pUA(t,e){e.readOnly||(t.preventDefault(),e.onSelect(my(e.path)))}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-value.jse-string.svelte-c0g9qz { - color: var(--jse-value-color-string, #008000); -} -.jse-value.jse-object.svelte-c0g9qz, .jse-value.jse-array.svelte-c0g9qz { - min-width: 16px; - color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); -} -.jse-value.jse-number.svelte-c0g9qz { - color: var(--jse-value-color-number, #ee422e); -} -.jse-value.jse-boolean.svelte-c0g9qz { - color: var(--jse-value-color-boolean, #ff8c00); -} -.jse-value.jse-null.svelte-c0g9qz { - color: var(--jse-value-color-null, #004ed0); -} -.jse-value.jse-invalid.svelte-c0g9qz { - color: var(--jse-text-color, #4d4d4d); -} -.jse-value.jse-url.svelte-c0g9qz { - color: var(--jse-value-color-url, #008000); - text-decoration: underline; -} - -.jse-value.svelte-c0g9qz { - display: inline-block; - min-width: 2em; - padding: 0 5px; - box-sizing: border-box; - outline: none; - border-radius: 1px; - vertical-align: top; - word-break: normal; - overflow-wrap: anywhere; - white-space: pre-wrap; -} -.jse-value.jse-table-cell.svelte-c0g9qz { - overflow-wrap: normal; - white-space: nowrap; -} -.jse-value.jse-empty.svelte-c0g9qz { - min-width: 4em; - outline: 1px dotted var(--jse-tag-background, rgba(0, 0, 0, 0.2)); - -moz-outline-radius: 2px; -} -.jse-value.jse-empty.svelte-c0g9qz::after { - pointer-events: none; - color: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); - content: "value"; -}`);var wUA=wA('
      ');function DUA(t,e){mt(e,!0);var A=P0(!0),i=Ga(()=>g(A)&&typeof e.value=="string"&&e.value.length>e.truncateTextSize&&(!e.searchResultItems||!e.searchResultItems.some(d=>d.active&&d.end>e.truncateTextSize))),n=Ga(()=>g(i)&&typeof e.value=="string"?e.value.substring(0,e.truncateTextSize).trim():e.value),o=Ga(()=>Uy(e.value));function r(){y(A,!1)}var s=wUA();s.__click=[mUA,e,o],s.__dblclick=[pUA,e];var a=W(s),c=d=>{var B=Ga(()=>e.normalization.escapeValue(g(n)));laA(d,{get text(){return g(B)},get searchResultItems(){return e.searchResultItems}})},l=d=>{var B=Tr();De(E=>wt(B,E),[()=>BQ(e.normalization.escapeValue(g(n)))]),iA(d,B)};LA(a,d=>{e.searchResultItems?d(c):d(l,!1)});var I=IA(a,2),C=d=>{ly(d,{onclick:r,children:(B,E)=>{var h=Tr();De(u=>wt(h,"Show more (".concat(u??"",")")),[()=>cy(e.value.length)]),iA(B,h)},$$slots:{default:!0}})};LA(I,d=>{g(i)&&typeof e.value=="string"&&d(C)}),De(d=>{Vt(s,1,d,"svelte-c0g9qz"),En(s,"title",g(o)?"Ctrl+Click or Ctrl+Enter to open url in new window":void 0)},[()=>Z1(taA(e.value,e.mode,e.parser))]),iA(t,s),pt()}of(["click","dblclick"]);Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-tooltip.svelte-14y3y8t { - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - line-height: normal; - padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); - border-radius: 3px; - background: var(--jse-context-menu-background, #656565); - color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); - white-space: nowrap; - box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); -}`);var yUA=wA('
      ');function vUA(t,e){var A=b(e,"text",8),i=yUA(),n=W(i);De(()=>wt(n,A())),iA(t,i)}function hQ(t,e){var A,{text:i,openAbsolutePopup:n,closeAbsolutePopup:o}=e;function r(){A=n(vUA,{text:i},{position:"top",width:10*i.length,offsetTop:3,anchor:t,closeOnOuterClick:!0})}function s(){o(A)}return t.addEventListener("mouseenter",r),t.addEventListener("mouseleave",s),{destroy(){t.removeEventListener("mouseenter",r),t.removeEventListener("mouseleave",s)}}}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-timestamp.svelte-1jla5ec { - padding: 0; - margin: 0; - vertical-align: middle; - display: inline-flex; - color: var(--jse-value-color-number, #ee422e); -}`);var bUA=wA('
      ');function MUA(t,e){mt(e,!1);var A=$(void 0,!0),i=$1("absolute-popup"),n=b(e,"value",9);fA(()=>k(n()),()=>{y(A,"Time: ".concat(new Date(n()).toString()))}),Qn(),Zt(!0);var o=bUA();ji(W(o),{get data(){return LW}}),Us(o,(r,s)=>hQ?.(r,s),()=>fe({text:g(A)},i)),iA(t,o),pt()}function kUA(t){var e=[];return!t.isEditing&&vGA(t.value)&&e.push({component:iUA,props:t}),!t.isEditing&&bGA(t.value)&&e.push({component:sUA,props:t}),t.isEditing&&e.push({component:EUA,props:t}),t.isEditing||e.push({component:DUA,props:t}),!t.isEditing&&Q_(t.value)&&e.push({component:MUA,props:t}),e}function Ka(t){return t.map((e,A)=>RUA.test(e)?"["+e+"]":/[.[\]]/.test(e)||e===""?'["'+function(i){return i.replace(/"/g,'\\"')}(e)+'"]':(A>0?".":"")+e).join("")}function SUA(t){for(var e=[],A=0;Ao==='"',!0)),n('"')):e.push(i(o=>o==="]")),n("]")):e.push(i(o=>o==="."||o==="["));function i(o){for(var r=arguments.length>1&&arguments[1]!==void 0&&arguments[1],s="";A({x:t,y:t}),FUA={left:"right",right:"left",bottom:"top",top:"bottom"},NUA={start:"end",end:"start"};function krA(t,e,A){return PC(t,Dy(e,A))}function Jy(t,e){return typeof t=="function"?t(e):t}function XC(t){return t.split("-")[0]}function Ty(t){return t.split("-")[1]}function gaA(t){return t==="x"?"y":"x"}function IaA(t){return t==="y"?"height":"width"}var _UA=new Set(["top","bottom"]);function J1(t){return _UA.has(XC(t))?"y":"x"}function CaA(t){return gaA(J1(t))}function b_(t){return t.replace(/start|end/g,e=>NUA[e])}var SrA=["left","right"],RrA=["right","left"],GUA=["top","bottom"],UUA=["bottom","top"];function KUA(t,e,A,i){var n=Ty(t),o=function(r,s,a){switch(r){case"top":case"bottom":return a?s?RrA:SrA:s?SrA:RrA;case"left":case"right":return s?GUA:UUA;default:return[]}}(XC(t),A==="start",i);return n&&(o=o.map(r=>r+"-"+n),e&&(o=o.concat(o.map(b_)))),o}function Ay(t){return t.replace(/left|right|bottom|top/g,e=>FUA[e])}function YUA(t){return typeof t!="number"?function(e){return fe({top:0,right:0,bottom:0,left:0},e)}(t):{top:t,right:t,bottom:t,left:t}}function vy(t){var{x:e,y:A,width:i,height:n}=t;return{width:i,height:n,top:A,left:e,right:e+i,bottom:A+n,x:e,y:A}}function xrA(t,e,A){var i,{reference:n,floating:o}=t,r=J1(e),s=CaA(e),a=IaA(s),c=XC(e),l=r==="y",I=n.x+n.width/2-o.width/2,C=n.y+n.height/2-o.height/2,d=n[a]/2-o[a]/2;switch(c){case"top":i={x:I,y:n.y-o.height};break;case"bottom":i={x:I,y:n.y+n.height};break;case"right":i={x:n.x+n.width,y:C};break;case"left":i={x:n.x-o.width,y:C};break;default:i={x:n.x,y:n.y}}switch(Ty(e)){case"start":i[s]-=d*(A&&l?-1:1);break;case"end":i[s]+=d*(A&&l?-1:1)}return i}var JUA=function(){var t=Yt(function*(e,A,i){for(var{placement:n="bottom",strategy:o="absolute",middleware:r=[],platform:s}=i,a=r.filter(Boolean),c=yield s.isRTL==null?void 0:s.isRTL(A),l=yield s.getElementRects({reference:e,floating:A,strategy:o}),{x:I,y:C}=xrA(l,n,c),d=n,B={},E=0,h=0;h"u")&&(t instanceof ShadowRoot||t instanceof fc(t).ShadowRoot)}var HUA=new Set(["inline","contents"]);function Z3(t){var{overflow:e,overflowX:A,overflowY:i,display:n}=Gl(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+A)&&!HUA.has(n)}var zUA=new Set(["table","td","th"]);function OUA(t){return zUA.has(uQ(t))}var PUA=[":popover-open",":modal"];function by(t){return PUA.some(e=>{try{return t.matches(e)}catch{return!1}})}var jUA=["transform","translate","scale","rotate","perspective"],qUA=["transform","translate","scale","rotate","perspective","filter"],VUA=["paint","layout","strict","content"];function S_(t){var e=lG(),A=_l(t)?Gl(t):t;return jUA.some(i=>!!A[i]&&A[i]!=="none")||!!A.containerType&&A.containerType!=="normal"||!e&&!!A.backdropFilter&&A.backdropFilter!=="none"||!e&&!!A.filter&&A.filter!=="none"||qUA.some(i=>(A.willChange||"").includes(i))||VUA.some(i=>(A.contain||"").includes(i))}function lG(){return!(typeof CSS>"u"||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}var ZUA=new Set(["html","body","#document"]);function cQ(t){return ZUA.has(uQ(t))}function Gl(t){return fc(t).getComputedStyle(t)}function zy(t){return _l(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function T1(t){if(uQ(t)==="html")return t;var e=t.assignedSlot||t.parentNode||LrA(t)&&t.host||qg(t);return LrA(e)?e.host:e}function EaA(t){var e=T1(t);return cQ(e)?t.ownerDocument?t.ownerDocument.body:t.body:Zg(e)&&Z3(e)?e:EaA(e)}function W3(t,e,A){var i;e===void 0&&(e=[]),A===void 0&&(A=!0);var n=EaA(t),o=n===((i=t.ownerDocument)==null?void 0:i.body),r=fc(n);if(o){var s=R_(r);return e.concat(r,r.visualViewport||[],Z3(n)?n:[],s&&A?W3(s):[])}return e.concat(n,W3(n,[],A))}function R_(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function QaA(t){var e=Gl(t),A=parseFloat(e.width)||0,i=parseFloat(e.height)||0,n=Zg(t),o=n?t.offsetWidth:A,r=n?t.offsetHeight:i,s=yy(A)!==o||yy(i)!==r;return s&&(A=o,i=r),{width:A,height:i,$:s}}function gG(t){return _l(t)?t:t.contextElement}function lQ(t){var e=gG(t);if(!Zg(e))return jg(1);var A=e.getBoundingClientRect(),{width:i,height:n,$:o}=QaA(e),r=(o?yy(A.width):A.width)/i,s=(o?yy(A.height):A.height)/n;return r&&Number.isFinite(r)||(r=1),s&&Number.isFinite(s)||(s=1),{x:r,y:s}}var WUA=jg(0);function haA(t){var e=fc(t);return lG()&&e.visualViewport?{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}:WUA}function $C(t,e,A,i){e===void 0&&(e=!1),A===void 0&&(A=!1);var n=t.getBoundingClientRect(),o=gG(t),r=jg(1);e&&(i?_l(i)&&(r=lQ(i)):r=lQ(t));var s=function(w,_,K){return _===void 0&&(_=!1),!(!K||_&&K!==fc(w))&&_}(o,A,i)?haA(o):jg(0),a=(n.left+s.x)/r.x,c=(n.top+s.y)/r.y,l=n.width/r.x,I=n.height/r.y;if(o)for(var C=fc(o),d=i&&_l(i)?fc(i):i,B=C,E=R_(B);E&&i&&d!==B;){var h=lQ(E),u=E.getBoundingClientRect(),D=Gl(E),L=u.left+(E.clientLeft+parseFloat(D.paddingLeft))*h.x,R=u.top+(E.clientTop+parseFloat(D.paddingTop))*h.y;a*=h.x,c*=h.y,l*=h.x,I*=h.y,a+=L,c+=R,E=R_(B=fc(E))}return vy({width:l,height:I,x:a,y:c})}function IG(t,e){var A=zy(t).scrollLeft;return e?e.left+A:$C(qg(t)).left+A}function uaA(t,e,A){A===void 0&&(A=!1);var i=t.getBoundingClientRect();return{x:i.left+e.scrollLeft-(A?0:IG(t,i)),y:i.top+e.scrollTop}}var XUA=new Set(["absolute","fixed"]);function FrA(t,e,A){var i;if(e==="viewport")i=function(o,r){var s=fc(o),a=qg(o),c=s.visualViewport,l=a.clientWidth,I=a.clientHeight,C=0,d=0;if(c){l=c.width,I=c.height;var B=lG();(!B||B&&r==="fixed")&&(C=c.offsetLeft,d=c.offsetTop)}return{width:l,height:I,x:C,y:d}}(t,A);else if(e==="document")i=function(o){var r=qg(o),s=zy(o),a=o.ownerDocument.body,c=PC(r.scrollWidth,r.clientWidth,a.scrollWidth,a.clientWidth),l=PC(r.scrollHeight,r.clientHeight,a.scrollHeight,a.clientHeight),I=-s.scrollLeft+IG(o),C=-s.scrollTop;return Gl(a).direction==="rtl"&&(I+=PC(r.clientWidth,a.clientWidth)-c),{width:c,height:l,x:I,y:C}}(qg(t));else if(_l(e))i=function(o,r){var s=$C(o,!0,r==="fixed"),a=s.top+o.clientTop,c=s.left+o.clientLeft,l=Zg(o)?lQ(o):jg(1);return{width:o.clientWidth*l.x,height:o.clientHeight*l.y,x:c*l.x,y:a*l.y}}(e,A);else{var n=haA(t);i={x:e.x-n.x,y:e.y-n.y,width:e.width,height:e.height}}return vy(i)}function faA(t,e){var A=T1(t);return!(A===e||!_l(A)||cQ(A))&&(Gl(A).position==="fixed"||faA(A,e))}function $UA(t,e,A){var i=Zg(e),n=qg(e),o=A==="fixed",r=$C(t,!0,o,e),s={scrollLeft:0,scrollTop:0},a=jg(0);function c(){a.x=IG(n)}if(i||!i&&!o)if((uQ(e)!=="body"||Z3(n))&&(s=zy(e)),i){var l=$C(e,!0,o,e);a.x=l.x+e.clientLeft,a.y=l.y+e.clientTop}else n&&c();o&&!i&&n&&c();var I=!n||i||o?jg(0):uaA(n,s);return{x:r.left+s.scrollLeft-a.x-I.x,y:r.top+s.scrollTop-a.y-I.y,width:r.width,height:r.height}}function A_(t){return Gl(t).position==="static"}function NrA(t,e){if(!Zg(t)||Gl(t).position==="fixed")return null;if(e)return e(t);var A=t.offsetParent;return qg(t)===A&&(A=A.ownerDocument.body),A}function _rA(t,e){var A=fc(t);if(by(t))return A;if(!Zg(t)){for(var i=T1(t);i&&!cQ(i);){if(_l(i)&&!A_(i))return i;i=T1(i)}return A}for(var n=NrA(t,e);n&&OUA(n)&&A_(n);)n=NrA(n,e);return n&&cQ(n)&&A_(n)&&!S_(n)?A:n||function(o){for(var r=T1(o);Zg(r)&&!cQ(r);){if(S_(r))return r;if(by(r))return null;r=T1(r)}return null}(t)||A}var AKA={convertOffsetParentRelativeRectToViewportRelativeRect:function(t){var{elements:e,rect:A,offsetParent:i,strategy:n}=t,o=n==="fixed",r=qg(i),s=!!e&&by(e.floating);if(i===r||s&&o)return A;var a={scrollLeft:0,scrollTop:0},c=jg(1),l=jg(0),I=Zg(i);if((I||!I&&!o)&&((uQ(i)!=="body"||Z3(r))&&(a=zy(i)),Zg(i))){var C=$C(i);c=lQ(i),l.x=C.x+i.clientLeft,l.y=C.y+i.clientTop}var d=!r||I||o?jg(0):uaA(r,a,!0);return{width:A.width*c.x,height:A.height*c.y,x:A.x*c.x-a.scrollLeft*c.x+l.x+d.x,y:A.y*c.y-a.scrollTop*c.y+l.y+d.y}},getDocumentElement:qg,getClippingRect:function(t){var{element:e,boundary:A,rootBoundary:i,strategy:n}=t,o=[...A==="clippingAncestors"?by(e)?[]:function(a,c){var l=c.get(a);if(l)return l;for(var I=W3(a,[],!1).filter(u=>_l(u)&&uQ(u)!=="body"),C=null,d=Gl(a).position==="fixed",B=d?T1(a):a;_l(B)&&!cQ(B);){var E=Gl(B),h=S_(B);h||E.position!=="fixed"||(C=null),(d?!h&&!C:!h&&E.position==="static"&&C&&XUA.has(C.position)||Z3(B)&&!h&&faA(a,B))?I=I.filter(u=>u!==B):C=E,B=T1(B)}return c.set(a,I),I}(e,this._c):[].concat(A),i],r=o[0],s=o.reduce((a,c)=>{var l=FrA(e,c,n);return a.top=PC(l.top,a.top),a.right=Dy(l.right,a.right),a.bottom=Dy(l.bottom,a.bottom),a.left=PC(l.left,a.left),a},FrA(e,r,n));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},getOffsetParent:_rA,getElementRects:function(){var t=Yt(function*(e){var A=this.getOffsetParent||_rA,i=this.getDimensions,n=yield i(e.floating);return{reference:$UA(e.reference,yield A(e.floating),e.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}});return function(e){return t.apply(this,arguments)}}(),getClientRects:function(t){return Array.from(t.getClientRects())},getDimensions:function(t){var{width:e,height:A}=QaA(t);return{width:e,height:A}},getScale:lQ,isElement:_l,isRTL:function(t){return Gl(t).direction==="rtl"}};function GrA(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}function eKA(t,e,A,i){i===void 0&&(i={});var{ancestorScroll:n=!0,ancestorResize:o=!0,elementResize:r=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:a=!1}=i,c=gG(t),l=n||o?[...c?W3(c):[],...W3(e)]:[];l.forEach(h=>{n&&h.addEventListener("scroll",A,{passive:!0}),o&&h.addEventListener("resize",A)});var I,C=c&&s?function(h,u){var D,L=null,R=qg(h);function w(){var _;clearTimeout(D),(_=L)==null||_.disconnect(),L=null}return function _(K,z){K===void 0&&(K=!1),z===void 0&&(z=1),w();var U=h.getBoundingClientRect(),{left:H,top:q,width:j,height:gA}=U;if(K||u(),j&&gA){var QA={rootMargin:-$D(q)+"px "+-$D(R.clientWidth-(H+j))+"px "+-$D(R.clientHeight-(q+gA))+"px "+-$D(H)+"px",threshold:PC(0,Dy(1,z))||1},BA=!0;try{L=new IntersectionObserver(lA,fe(fe({},QA),{},{root:R.ownerDocument}))}catch{L=new IntersectionObserver(lA,QA)}L.observe(h)}function lA(vA){var tA=vA[0].intersectionRatio;if(tA!==z){if(!BA)return _();tA?_(!1,tA):D=setTimeout(()=>{_(!1,1e-7)},1e3)}tA!==1||GrA(U,h.getBoundingClientRect())||_(),BA=!1}}(!0),w}(c,A):null,d=-1,B=null;r&&(B=new ResizeObserver(h=>{var[u]=h;u&&u.target===c&&B&&(B.unobserve(e),cancelAnimationFrame(d),d=requestAnimationFrame(()=>{var D;(D=B)==null||D.observe(e)})),A()}),c&&!a&&B.observe(c),B.observe(e));var E=a?$C(t):null;return a&&function h(){var u=$C(t);E&&!GrA(E,u)&&A(),E=u,I=requestAnimationFrame(h)}(),A(),()=>{var h;l.forEach(u=>{n&&u.removeEventListener("scroll",A),o&&u.removeEventListener("resize",A)}),C?.(),(h=B)==null||h.disconnect(),B=null,a&&cancelAnimationFrame(I)}}var tKA=function(t){return t===void 0&&(t=0),{name:"offset",options:t,fn:e=>Yt(function*(){var A,i,{x:n,y:o,placement:r,middlewareData:s}=e,a=yield function(c,l){return k_.apply(this,arguments)}(e,t);return r===((A=s.offset)==null?void 0:A.placement)&&(i=s.arrow)!=null&&i.alignmentOffset?{}:{x:n+a.x,y:o+a.y,data:fe(fe({},a),{},{placement:r})}})()}},iKA=function(t){return t===void 0&&(t={}),{name:"shift",options:t,fn:e=>Yt(function*(){var{x:A,y:i,placement:n}=e,o=Jy(t,e),{mainAxis:r=!0,crossAxis:s=!1,limiter:a={fn:L=>{var{x:R,y:w}=L;return{x:R,y:w}}}}=o,c=zrA(o,T_A),l={x:A,y:i},I=yield daA(e,c),C=J1(XC(n)),d=gaA(C),B=l[d],E=l[C];if(r){var h=d==="y"?"bottom":"right";B=krA(B+I[d==="y"?"top":"left"],B,B-I[h])}if(s){var u=C==="y"?"bottom":"right";E=krA(E+I[C==="y"?"top":"left"],E,E-I[u])}var D=a.fn(fe(fe({},e),{},{[d]:B,[C]:E}));return fe(fe({},D),{},{data:{x:D.x-A,y:D.y-i,enabled:{[d]:r,[C]:s}}})})()}},nKA=function(t){return t===void 0&&(t={}),{name:"flip",options:t,fn:e=>Yt(function*(){var A,i,{placement:n,middlewareData:o,rects:r,initialPlacement:s,platform:a,elements:c}=e,l=Jy(t,e),{mainAxis:I=!0,crossAxis:C=!0,fallbackPlacements:d,fallbackStrategy:B="bestFit",fallbackAxisSideDirection:E="none",flipAlignment:h=!0}=l,u=zrA(l,J_A);if((A=o.arrow)!=null&&A.alignmentOffset)return{};var D=XC(n),L=J1(s),R=XC(s)===s,w=yield a.isRTL==null?void 0:a.isRTL(c.floating),_=d||(R||!h?[Ay(s)]:function(pA){var VA=Ay(pA);return[b_(pA),VA,b_(VA)]}(s)),K=E!=="none";!d&&K&&_.push(...KUA(s,h,E,w));var z=[s,..._],U=yield daA(e,u),H=[],q=((i=o.flip)==null?void 0:i.overflows)||[];if(I&&H.push(U[D]),C){var j=function(pA,VA,oe){oe===void 0&&(oe=!1);var KA=Ty(pA),CA=CaA(pA),TA=IaA(CA),Ze=CA==="x"?KA===(oe?"end":"start")?"right":"left":KA==="start"?"bottom":"top";return VA.reference[TA]>VA.floating[TA]&&(Ze=Ay(Ze)),[Ze,Ay(Ze)]}(n,r,w);H.push(U[j[0]],U[j[1]])}if(q=[...q,{placement:n,overflows:H}],!H.every(pA=>pA<=0)){var gA,QA,BA=(((gA=o.flip)==null?void 0:gA.index)||0)+1,lA=z[BA];if(lA&&(!(C==="alignment"&&L!==J1(lA))||q.every(pA=>pA.overflows[0]>0&&J1(pA.placement)===L)))return{data:{index:BA,overflows:q},reset:{placement:lA}};var vA=(QA=q.filter(pA=>pA.overflows[0]<=0).sort((pA,VA)=>pA.overflows[1]-VA.overflows[1])[0])==null?void 0:QA.placement;if(!vA)switch(B){case"bestFit":var tA,cA=(tA=q.filter(pA=>{if(K){var VA=J1(pA.placement);return VA===L||VA==="y"}return!0}).map(pA=>[pA.placement,pA.overflows.filter(VA=>VA>0).reduce((VA,oe)=>VA+oe,0)]).sort((pA,VA)=>pA[1]-VA[1])[0])==null?void 0:tA[0];cA&&(vA=cA);break;case"initialPlacement":vA=s}if(n!==vA)return{reset:{placement:vA}}}return{}})()}};function oKA(t){var e,A,i={autoUpdate:!0},n=t,o=a=>fe(fe(fe({},i),t||{}),a||{}),r=a=>{e&&A&&(n=o(a),((c,l,I)=>{var C=new Map,d=fe({platform:AKA},I),B=fe(fe({},d.platform),{},{_c:C});return JUA(c,l,fe(fe({},d),{},{platform:B}))})(e,A,n).then(c=>{var l;Object.assign(A.style,{position:c.strategy,left:"".concat(c.x,"px"),top:"".concat(c.y,"px")}),!((l=n)===null||l===void 0)&&l.onComputed&&n.onComputed(c)}))},s=a=>{qc(a.subscribe(c=>{e===void 0?(e=c,r()):(Object.assign(e,c),r())}))};return[a=>{if("subscribe"in a)return s(a),{};e=a,r()},(a,c)=>{var l;A=a,n=o(c),setTimeout(()=>r(c),0),r(c);var I=()=>{l&&(l(),l=void 0)},C=function(){var{autoUpdate:d}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:n||{};I(),d!==!1&&function(){return fsA.apply(this,arguments)}().then(()=>eKA(e,A,()=>r(n),d===!0?{}:d))};return l=C(),{update(d){r(d),l=C(d)},destroy(){I()}}},r]}function rKA(t){var{loadOptions:e,filterText:A,items:i,multiple:n,value:o,itemId:r,groupBy:s,filterSelectedItems:a,itemFilter:c,convertStringItemsToObjects:l,filterGroupedItems:I,label:C}=t;if(i&&e)return i;if(!i)return[];i&&i.length>0&&typeof i[0]!="object"&&(i=l(i));var d=i.filter(B=>{var E=c(B[C],A,B);return E&&n&&o!=null&&o.length&&(E=!o.some(h=>!!a&&h[r]===B[r])),E});return s&&(d=I(d)),d}function sKA(t){return maA.apply(this,arguments)}function maA(){return(maA=Yt(function*(t){var{dispatch:e,loadOptions:A,convertStringItemsToObjects:i,filterText:n}=t,o=yield A(n).catch(r=>{console.warn("svelte-select loadOptions error :>> ",r),e("error",{type:"loadOptions",details:r})});if(o&&!o.cancelled)return o?(o&&o.length>0&&typeof o[0]!="object"&&(o=i(o)),e("loaded",{items:o})):o=[],{filteredItems:o,loading:!1,focused:!0,listOpen:!0}})).apply(this,arguments)}Jt(` - svg.svelte-qbd276 { - width: var(--chevron-icon-width, 20px); - height: var(--chevron-icon-width, 20px); - color: var(--chevron-icon-colour, currentColor); - } -`);var aKA=tI(``);Jt(` - svg.svelte-whdbu1 { - width: var(--clear-icon-width, 20px); - height: var(--clear-icon-width, 20px); - color: var(--clear-icon-color, currentColor); - } -`);var cKA=tI(``);function e_(t){iA(t,cKA())}Jt(` - .loading.svelte-1p3nqvd { - width: var(--spinner-width, 20px); - height: var(--spinner-height, 20px); - color: var(--spinner-color, var(--icons-color)); - animation: svelte-1p3nqvd-rotate 0.75s linear infinite; - transform-origin: center center; - transform: none; - } - - .circle_path.svelte-1p3nqvd { - stroke-dasharray: 90; - stroke-linecap: round; - } - - @keyframes svelte-1p3nqvd-rotate { - 100% { - transform: rotate(360deg); - } - } -`);var lKA=tI('');Jt(` - .svelte-select.svelte-82qwg8 { - /* deprecating camelCase custom props in favour of kebab-case for v5 */ - --borderRadius: var(--border-radius); - --clearSelectColor: var(--clear-select-color); - --clearSelectWidth: var(--clear-select-width); - --disabledBackground: var(--disabled-background); - --disabledBorderColor: var(--disabled-border-color); - --disabledColor: var(--disabled-color); - --disabledPlaceholderColor: var(--disabled-placeholder-color); - --disabledPlaceholderOpacity: var(--disabled-placeholder-opacity); - --errorBackground: var(--error-background); - --errorBorder: var(--error-border); - --groupItemPaddingLeft: var(--group-item-padding-left); - --groupTitleColor: var(--group-title-color); - --groupTitleFontSize: var(--group-title-font-size); - --groupTitleFontWeight: var(--group-title-font-weight); - --groupTitlePadding: var(--group-title-padding); - --groupTitleTextTransform: var(--group-title-text-transform); - --groupTitleBorderColor: var(--group-title-border-color); - --groupTitleBorderWidth: var(--group-title-border-width); - --groupTitleBorderStyle: var(--group-title-border-style); - --indicatorColor: var(--chevron-color); - --indicatorHeight: var(--chevron-height); - --indicatorWidth: var(--chevron-width); - --inputColor: var(--input-color); - --inputLeft: var(--input-left); - --inputLetterSpacing: var(--input-letter-spacing); - --inputMargin: var(--input-margin); - --inputPadding: var(--input-padding); - --itemActiveBackground: var(--item-active-background); - --itemColor: var(--item-color); - --itemFirstBorderRadius: var(--item-first-border-radius); - --itemHoverBG: var(--item-hover-bg); - --itemHoverColor: var(--item-hover-color); - --itemIsActiveBG: var(--item-is-active-bg); - --itemIsActiveColor: var(--item-is-active-color); - --itemIsNotSelectableColor: var(--item-is-not-selectable-color); - --itemPadding: var(--item-padding); - --listBackground: var(--list-background); - --listBorder: var(--list-border); - --listBorderRadius: var(--list-border-radius); - --listEmptyColor: var(--list-empty-color); - --listEmptyPadding: var(--list-empty-padding); - --listEmptyTextAlign: var(--list-empty-text-align); - --listMaxHeight: var(--list-max-height); - --listPosition: var(--list-position); - --listShadow: var(--list-shadow); - --listZIndex: var(--list-z-index); - --multiItemBG: var(--multi-item-bg); - --multiItemBorderRadius: var(--multi-item-border-radius); - --multiItemDisabledHoverBg: var(--multi-item-disabled-hover-bg); - --multiItemDisabledHoverColor: var(--multi-item-disabled-hover-color); - --multiItemHeight: var(--multi-item-height); - --multiItemMargin: var(--multi-item-margin); - --multiItemPadding: var(--multi-item-padding); - --multiSelectInputMargin: var(--multi-select-input-margin); - --multiSelectInputPadding: var(--multi-select-input-padding); - --multiSelectPadding: var(--multi-select-padding); - --placeholderColor: var(--placeholder-color); - --placeholderOpacity: var(--placeholder-opacity); - --selectedItemPadding: var(--selected-item-padding); - --spinnerColor: var(--spinner-color); - --spinnerHeight: var(--spinner-height); - --spinnerWidth: var(--spinner-width); - - --internal-padding: 0 0 0 16px; - - border: var(--border, 1px solid #d8dbdf); - border-radius: var(--border-radius, 6px); - min-height: var(--height, 42px); - position: relative; - display: flex; - align-items: stretch; - padding: var(--padding, var(--internal-padding)); - background: var(--background, #fff); - margin: var(--margin, 0); - width: var(--width, 100%); - font-size: var(--font-size, 16px); - max-height: var(--max-height); - } - - .svelte-82qwg8 { - box-sizing: var(--box-sizing, border-box); - } - - .svelte-select.svelte-82qwg8:hover { - border: var(--border-hover, 1px solid #b2b8bf); - } - - .value-container.svelte-82qwg8 { - display: flex; - flex: 1 1 0%; - flex-wrap: wrap; - align-items: center; - gap: 5px 10px; - padding: var(--value-container-padding, 5px 0); - position: relative; - overflow: var(--value-container-overflow, hidden); - align-self: stretch; - } - - .prepend.svelte-82qwg8, - .indicators.svelte-82qwg8 { - display: flex; - flex-shrink: 0; - align-items: center; - } - - .indicators.svelte-82qwg8 { - position: var(--indicators-position); - top: var(--indicators-top); - right: var(--indicators-right); - bottom: var(--indicators-bottom); - } - - input.svelte-82qwg8 { - position: absolute; - cursor: default; - border: none; - color: var(--input-color, var(--item-color)); - padding: var(--input-padding, 0); - letter-spacing: var(--input-letter-spacing, inherit); - margin: var(--input-margin, 0); - min-width: 10px; - top: 0; - right: 0; - bottom: 0; - left: 0; - background: transparent; - font-size: var(--font-size, 16px); - } - - .svelte-82qwg8:not(.multi) > .value-container:where(.svelte-82qwg8) > input:where(.svelte-82qwg8) { - width: 100%; - height: 100%; - } - - input.svelte-82qwg8::placeholder { - color: var(--placeholder-color, #78848f); - opacity: var(--placeholder-opacity, 1); - } - - input.svelte-82qwg8:focus { - outline: none; - } - - .svelte-select.focused.svelte-82qwg8 { - border: var(--border-focused, 1px solid #006fe8); - border-radius: var(--border-radius-focused, var(--border-radius, 6px)); - } - - .disabled.svelte-82qwg8 { - background: var(--disabled-background, #ebedef); - border-color: var(--disabled-border-color, #ebedef); - color: var(--disabled-color, #c1c6cc); - } - - .disabled.svelte-82qwg8 input:where(.svelte-82qwg8)::placeholder { - color: var(--disabled-placeholder-color, #c1c6cc); - opacity: var(--disabled-placeholder-opacity, 1); - } - - .selected-item.svelte-82qwg8 { - position: relative; - overflow: var(--selected-item-overflow, hidden); - padding: var(--selected-item-padding, 0 20px 0 0); - text-overflow: ellipsis; - white-space: nowrap; - color: var(--selected-item-color, inherit); - font-size: var(--font-size, 16px); - } - - .multi.svelte-82qwg8 .selected-item:where(.svelte-82qwg8) { - position: absolute; - line-height: var(--height, 42px); - height: var(--height, 42px); - } - - .selected-item.svelte-82qwg8:focus { - outline: none; - } - - .hide-selected-item.svelte-82qwg8 { - opacity: 0; - } - - .icon.svelte-82qwg8 { - display: flex; - align-items: center; - justify-content: center; - } - - .clear-select.svelte-82qwg8 { - all: unset; - display: flex; - align-items: center; - justify-content: center; - width: var(--clear-select-width, 40px); - height: var(--clear-select-height, 100%); - color: var(--clear-select-color, var(--icons-color)); - margin: var(--clear-select-margin, 0); - pointer-events: all; - flex-shrink: 0; - } - - .clear-select.svelte-82qwg8:focus { - outline: var(--clear-select-focus-outline, 1px solid #006fe8); - } - - .loading.svelte-82qwg8 { - width: var(--loading-width, 40px); - height: var(--loading-height); - color: var(--loading-color, var(--icons-color)); - margin: var(--loading--margin, 0); - flex-shrink: 0; - } - - .chevron.svelte-82qwg8 { - width: var(--chevron-width, 40px); - height: var(--chevron-height, 40px); - background: var(--chevron-background, transparent); - pointer-events: var(--chevron-pointer-events, none); - color: var(--chevron-color, var(--icons-color)); - border: var(--chevron-border, 0 0 0 1px solid #d8dbdf); - flex-shrink: 0; - } - - .multi.svelte-82qwg8 { - padding: var(--multi-select-padding, var(--internal-padding)); - } - - .multi.svelte-82qwg8 input:where(.svelte-82qwg8) { - padding: var(--multi-select-input-padding, 0); - position: relative; - margin: var(--multi-select-input-margin, 5px 0); - flex: 1 1 40px; - } - - .svelte-select.error.svelte-82qwg8 { - border: var(--error-border, 1px solid #ff2d55); - background: var(--error-background, #fff); - } - - .a11y-text.svelte-82qwg8 { - z-index: 9999; - border: 0px; - clip: rect(1px, 1px, 1px, 1px); - height: 1px; - width: 1px; - position: absolute; - overflow: hidden; - padding: 0px; - white-space: nowrap; - } - - .multi-item.svelte-82qwg8 { - background: var(--multi-item-bg, #ebedef); - margin: var(--multi-item-margin, 0); - outline: var(--multi-item-outline, 1px solid #ddd); - border-radius: var(--multi-item-border-radius, 4px); - height: var(--multi-item-height, 25px); - line-height: var(--multi-item-height, 25px); - display: flex; - cursor: default; - padding: var(--multi-item-padding, 0 5px); - overflow: hidden; - gap: var(--multi-item-gap, 4px); - outline-offset: -1px; - max-width: var(--multi-max-width, none); - color: var(--multi-item-color, var(--item-color)); - } - - .multi-item.disabled.svelte-82qwg8:hover { - background: var(--multi-item-disabled-hover-bg, #ebedef); - color: var(--multi-item-disabled-hover-color, #c1c6cc); - } - - .multi-item-text.svelte-82qwg8 { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - - .multi-item-clear.svelte-82qwg8 { - display: flex; - align-items: center; - justify-content: center; - --clear-icon-color: var(--multi-item-clear-icon-color, #000); - } - - .multi-item.active.svelte-82qwg8 { - outline: var(--multi-item-active-outline, 1px solid #006fe8); - } - - .svelte-select-list.svelte-82qwg8 { - box-shadow: var(--list-shadow, 0 2px 3px 0 rgba(44, 62, 80, 0.24)); - border-radius: var(--list-border-radius, 4px); - max-height: var(--list-max-height, 252px); - overflow-y: auto; - background: var(--list-background, #fff); - position: var(--list-position, absolute); - z-index: var(--list-z-index, 2); - border: var(--list-border); - } - - .prefloat.svelte-82qwg8 { - opacity: 0; - pointer-events: none; - } - - .list-group-title.svelte-82qwg8 { - color: var(--group-title-color, #8f8f8f); - cursor: default; - font-size: var(--group-title-font-size, 16px); - font-weight: var(--group-title-font-weight, 600); - height: var(--height, 42px); - line-height: var(--height, 42px); - padding: var(--group-title-padding, 0 20px); - text-overflow: ellipsis; - overflow-x: hidden; - white-space: nowrap; - text-transform: var(--group-title-text-transform, uppercase); - border-width: var(--group-title-border-width, medium); - border-style: var(--group-title-border-style, none); - border-color: var(--group-title-border-color, color); - } - - .empty.svelte-82qwg8 { - text-align: var(--list-empty-text-align, center); - padding: var(--list-empty-padding, 20px 0); - color: var(--list-empty-color, #78848f); - } - - .item.svelte-82qwg8 { - cursor: default; - height: var(--item-height, var(--height, 42px)); - line-height: var(--item-line-height, var(--height, 42px)); - padding: var(--item-padding, 0 20px); - color: var(--item-color, inherit); - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - transition: var(--item-transition, all 0.2s); - align-items: center; - width: 100%; - } - - .item.group-item.svelte-82qwg8 { - padding-left: var(--group-item-padding-left, 40px); - } - - .item.svelte-82qwg8:active { - background: var(--item-active-background, #b9daff); - } - - .item.active.svelte-82qwg8 { - background: var(--item-is-active-bg, #007aff); - color: var(--item-is-active-color, #fff); - } - - .item.first.svelte-82qwg8 { - border-radius: var(--item-first-border-radius, 4px 4px 0 0); - } - - .item.hover.svelte-82qwg8:not(.active) { - background: var(--item-hover-bg, #e7f2ff); - color: var(--item-hover-color, inherit); - } - - .item.not-selectable.svelte-82qwg8, - .item.hover.item.not-selectable.svelte-82qwg8, - .item.active.item.not-selectable.svelte-82qwg8, - .item.not-selectable.svelte-82qwg8:active { - color: var(--item-is-not-selectable-color, #999); - background: transparent; - } - - .required.svelte-82qwg8 { - opacity: 0; - z-index: -1; - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - } -`);var gKA=wA('
      '),IKA=wA('
      No options
      '),CKA=wA('
      '),dKA=wA(' ',1),BKA=wA('
      '),EKA=wA('
      '),QKA=wA("
      "),hKA=wA(''),uKA=wA(''),fKA=wA(''),mKA=wA(''),pKA=wA(''),wKA=wA('
      ');function JC(t,e){var A=function(EA){var HA={};for(var ve in EA.children&&(HA.default=!0),EA.$$slots)HA[ve]=!0;return HA}(e);mt(e,!1);var i,n=$(),o=$(),r=$(),s=$(),a=$(),c=$(),l=$(),I=$(),C=$(),d=dGA(),B=b(e,"justValue",12,null),E=b(e,"filter",8,rKA),h=b(e,"getItems",8,sKA),u=b(e,"id",8,null),D=b(e,"name",8,null),L=b(e,"container",12,void 0),R=b(e,"input",12,void 0),w=b(e,"multiple",8,!1),_=b(e,"multiFullItemClearable",8,!1),K=b(e,"disabled",8,!1),z=b(e,"focused",12,!1),U=b(e,"value",12,null),H=b(e,"filterText",12,""),q=b(e,"placeholder",8,"Please select"),j=b(e,"placeholderAlwaysShow",8,!1),gA=b(e,"items",12,null),QA=b(e,"label",8,"label"),BA=b(e,"itemFilter",8,(EA,HA,ve)=>"".concat(EA).toLowerCase().includes(HA.toLowerCase())),lA=b(e,"groupBy",8,void 0),vA=b(e,"groupFilter",8,EA=>EA),tA=b(e,"groupHeaderSelectable",8,!1),cA=b(e,"itemId",8,"value"),pA=b(e,"loadOptions",8,void 0),VA=b(e,"containerStyles",8,""),oe=b(e,"hasError",8,!1),KA=b(e,"filterSelectedItems",8,!0),CA=b(e,"required",8,!1),TA=b(e,"closeListOnChange",8,!0),Ze=b(e,"clearFilterTextOnBlur",8,!0),He=b(e,"createGroupHeaderItem",8,(EA,HA)=>({value:EA,[QA()]:EA})),uA=()=>g(l),eA=b(e,"searchable",8,!0),UA=b(e,"inputStyles",8,""),aA=b(e,"clearable",8,!0),le=b(e,"loading",12,!1),SA=b(e,"listOpen",12,!1),Ue=b(e,"debounce",8,function(EA){var HA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;clearTimeout(i),i=setTimeout(EA,HA)}),mA=b(e,"debounceWait",8,300),sA=b(e,"hideEmptyState",8,!1),xt=b(e,"inputAttributes",24,()=>({})),tt=b(e,"listAutoWidth",8,!0),de=b(e,"showChevron",8,!1),Dt=b(e,"listOffset",8,5),_e=b(e,"hoverItemIndex",12,0),Le=b(e,"floatingConfig",24,()=>({})),bt=b(e,"class",8,""),Re=$(),$t=$(),x=$(),Y=$(),P=$();function X(EA){return EA.map((HA,ve)=>({index:ve,value:HA,label:"".concat(HA)}))}function bA(EA){var HA=[],ve={};EA.forEach(yi=>{var ri=lA()(yi);HA.includes(ri)||(HA.push(ri),ve[ri]=[],ri&&ve[ri].push(Object.assign(He()(ri,yi),{id:ri,groupHeader:!0,selectable:tA()}))),ve[ri].push(Object.assign({groupItem:!!ri},yi))});var Qt=[];return vA()(HA).forEach(yi=>{ve[yi]&&Qt.push(...ve[yi])}),Qt}function Be(){var EA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,HA=arguments.length>1?arguments[1]:void 0;_e(EA<0?0:EA),!HA&&lA()&&g(l)[_e()]&&!g(l)[_e()].selectable&&ni(1)}function Ee(){var EA=!0;if(U()){var HA=[],ve=[];U().forEach(Qt=>{HA.includes(Qt[cA()])?EA=!1:(HA.push(Qt[cA()]),ve.push(Qt))}),EA||U(ve)}return EA}function kA(EA){var HA=EA?EA[cA()]:U()[cA()];return gA().find(ve=>ve[cA()]===HA)}function DA(EA){return gt.apply(this,arguments)}function gt(){return(gt=Yt(function*(EA){var HA=U()[EA];U().length===1?U(void 0):U(U().filter(ve=>ve!==HA)),d("clear",HA)})).apply(this,arguments)}function Ve(EA){if(z())switch(EA.stopPropagation(),EA.key){case"Escape":EA.preventDefault(),xe();break;case"Enter":if(EA.preventDefault(),SA()){if(g(l).length===0)break;var HA=g(l)[_e()];if(U()&&!w()&&U()[cA()]===HA[cA()]){xe();break}M(g(l)[_e()])}break;case"ArrowDown":EA.preventDefault(),SA()?ni(1):(SA(!0),y(Re,void 0));break;case"ArrowUp":EA.preventDefault(),SA()?ni(-1):(SA(!0),y(Re,void 0));break;case"Tab":if(SA()&&z()){if(g(l).length===0||U()&&U()[cA()]===g(l)[_e()][cA()])return xe();EA.preventDefault(),M(g(l)[_e()]),xe()}break;case"Backspace":if(!w()||H().length>0)return;if(w()&&U()&&U().length>0){if(DA(g(Re)!==void 0?g(Re):U().length-1),g(Re)===0||g(Re)===void 0)break;y(Re,U().length>g(Re)?g(Re)-1:void 0)}break;case"ArrowLeft":if(!U()||!w()||H().length>0)return;g(Re)===void 0?y(Re,U().length-1):U().length>g(Re)&&g(Re)!==0&&y(Re,g(Re)-1);break;case"ArrowRight":if(!U()||!w()||H().length>0||g(Re)===void 0)return;g(Re)===U().length-1?y(Re,void 0):g(Re)0?SA(!0):void SA(!SA())}function qi(){d("clear",U()),U(void 0),xe(),ZA()}function xe(){Ze()&&H(""),SA(!1)}BGA(Yt(function*(){y($t,U()),y(x,H()),y(Y,w())})),hs(()=>{SA()&&z(!0),z()&&R()&&R().focus()});var nn=b(e,"ariaValues",8,EA=>"Option ".concat(EA,", selected.")),mi=b(e,"ariaListOpen",8,(EA,HA)=>"You are currently focused on option ".concat(EA,". There are ").concat(HA," results available.")),Ot=b(e,"ariaFocused",8,()=>"Select is focused, type to refine list, press down to open the menu."),Lt,ii=$(null);function _i(){clearTimeout(Lt),Lt=setTimeout(()=>{Tt=!1},100)}qc(()=>{var EA;(EA=g(ii))===null||EA===void 0||EA.remove()});var Tt=!1;function M(EA){EA&&EA.selectable!==!1&&function(HA){if(HA){H("");var ve=Object.assign({},HA);if(ve.groupHeader&&!ve.selectable)return;U(w()?U()?U().concat([ve]):[ve]:U(ve)),setTimeout(()=>{TA()&&xe(),y(Re,void 0),d("change",U()),d("select",HA)})}}(EA)}function We(EA){Tt||_e(EA)}function ni(EA){if(g(l).filter(ve=>!Object.hasOwn(ve,"selectable")||ve.selectable===!0).length===0)return _e(0);EA>0&&_e()===g(l).length-1?_e(0):EA<0&&_e()===0?_e(g(l).length-1):_e(_e()+EA);var HA=g(l)[_e()];HA&&HA.selectable===!1&&(EA!==1&&EA!==-1||ni(EA))}function pi(EA,HA,ve){if(!w())return HA&&HA[ve]===EA[ve]}var dn=Uo,mn=Uo;function Uo(EA){return{update(HA){HA.scroll&&(_i(),EA.scrollIntoView({behavior:"auto",block:"nearest"}))}}}var kn=$({strategy:"absolute",placement:"bottom-start",middleware:[tKA(Dt()),nKA(),iKA()],autoUpdate:!1}),[Wn,Vo,vo]=oKA(g(kn)),bo=$(!0);fA(()=>(k(gA()),k(U())),()=>{gA(),U()&&function(){if(typeof U()=="string"){var EA=(gA()||[]).find(HA=>HA[cA()]===U());U(EA||{[cA()]:U(),label:U()})}else w()&&Array.isArray(U())&&U().length>0&&U(U().map(HA=>typeof HA=="string"?{value:HA,label:HA}:HA))}()}),fA(()=>(k(xt()),k(eA())),()=>{!xt()&&eA()||(y(P,Object.assign({autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:!1,tabindex:0,type:"text","aria-autocomplete":"list"},xt())),u()&&hc(P,g(P).id=u()),eA()||hc(P,g(P).readonly=!0))}),fA(()=>k(w()),()=>{w()&&U()&&(Array.isArray(U())?U([...U()]):U([U()]))}),fA(()=>(g(Y),k(w())),()=>{g(Y)&&!w()&&U()&&U(null)}),fA(()=>(k(w()),k(U())),()=>{w()&&U()&&U().length>1&&Ee()}),fA(()=>k(U()),()=>{U()&&(w()?JSON.stringify(U())!==JSON.stringify(g($t))&&Ee()&&d("input",U()):g($t)&&JSON.stringify(U()[cA()])===JSON.stringify(g($t)[cA()])||d("input",U()))}),fA(()=>(k(U()),k(w()),g($t)),()=>{!U()&&w()&&g($t)&&d("input",U())}),fA(()=>(k(z()),k(R())),()=>{!z()&&R()&&xe()}),fA(()=>(k(H()),g(x)),()=>{H()!==g(x)&&(pA()||H().length!==0)&&(pA()?Ue()(Yt(function*(){le(!0);var EA=yield h()({dispatch:d,loadOptions:pA(),convertStringItemsToObjects:X,filterText:H()});EA?(le(EA.loading),SA(SA()?EA.listOpen:H().length>0),z(SA()&&EA.focused),gA(lA()?bA(EA.filteredItems):EA.filteredItems)):(le(!1),z(!0),SA(!0))}),mA()):(SA(!0),w()&&y(Re,void 0)))}),fA(()=>(k(E()),k(pA()),k(H()),k(gA()),k(w()),k(U()),k(cA()),k(lA()),k(QA()),k(KA()),k(BA())),()=>{y(l,E()({loadOptions:pA(),filterText:H(),items:gA(),multiple:w(),value:U(),itemId:cA(),groupBy:lA(),label:QA(),filterSelectedItems:KA(),itemFilter:BA(),convertStringItemsToObjects:X,filterGroupedItems:bA}))}),fA(()=>(k(w()),k(SA()),k(U()),g(l)),()=>{!w()&&SA()&&U()&&g(l)&&Be(g(l).findIndex(EA=>EA[cA()]===U()[cA()]),!0)}),fA(()=>(k(SA()),k(w())),()=>{SA()&&w()&&_e(0)}),fA(()=>k(H()),()=>{H()&&_e(0)}),fA(()=>k(_e()),()=>{var EA;EA=_e(),d("hoverItem",EA)}),fA(()=>(k(w()),k(U())),()=>{y(n,w()?U()&&U().length>0:U())}),fA(()=>(g(n),k(H())),()=>{y(o,g(n)&&H().length>0)}),fA(()=>(g(n),k(aA()),k(K()),k(le())),()=>{y(r,g(n)&&aA()&&!K()&&!le())}),fA(()=>(k(j()),k(w()),k(q()),k(U())),()=>{var EA;y(s,j()&&w()||w()&&((EA=U())===null||EA===void 0?void 0:EA.length)===0?q():U()?"":q())}),fA(()=>(k(U()),k(w())),()=>{var EA,HA;y(a,U()?(EA=w(),HA=void 0,HA=EA&&U().length>0?U().map(ve=>ve[QA()]).join(", "):U()[QA()],nn()(HA)):"")}),fA(()=>(g(l),k(_e()),k(z()),k(SA())),()=>{y(c,function(){if(!g(l)||g(l).length===0)return"";var EA=g(l)[_e()];if(SA()&&EA){var HA=g(l)?g(l).length:0;return mi()(EA[QA()],HA)}return Ot()()}((g(l),_e(),z(),SA())))}),fA(()=>k(gA()),()=>{(function(EA){EA&&EA.length!==0&&!EA.some(HA=>typeof HA!="object")&&U()&&(w()?!U().some(HA=>!HA||!HA[cA()]):U()[cA()])&&(Array.isArray(U())?U(U().map(HA=>kA(HA)||HA)):U(kA()||U()))})(gA())}),fA(()=>(k(w()),k(U()),k(cA())),()=>{B((w(),U(),cA(),w()?U()?U().map(EA=>EA[cA()]):null:U()?U()[cA()]:U()))}),fA(()=>(k(w()),g($t),k(U())),()=>{w()||!g($t)||U()||d("input",U())}),fA(()=>(k(SA()),g(l),k(w()),k(U())),()=>{SA()&&g(l)&&!w()&&!U()&&Be()}),fA(()=>g(l),()=>{(function(EA){SA()&&d("filter",EA)})(g(l))}),fA(()=>(k(L()),k(Le()),g(kn)),()=>{L()&&Le()&&vo(Object.assign(g(kn),Le()))}),fA(()=>g(ii),()=>{y(I,!!g(ii))}),fA(()=>(g(ii),k(SA())),()=>{(function(EA,HA){if(!EA||!HA)return y(bo,!0);setTimeout(()=>{y(bo,!1)},0)})(g(ii),SA())}),fA(()=>(k(SA()),k(L()),g(ii)),()=>{SA()&&L()&&g(ii)&&function(){var{width:EA}=L().getBoundingClientRect();hc(ii,g(ii).style.width=tt()?EA+"px":"auto")}()}),fA(()=>k(_e()),()=>{y(C,_e())}),fA(()=>(k(R()),k(SA()),k(z())),()=>{R()&&SA()&&!z()&&ZA()}),fA(()=>(k(L()),k(Le())),()=>{var EA;L()&&((EA=Le())===null||EA===void 0?void 0:EA.autoUpdate)===void 0&&hc(kn,g(kn).autoUpdate=!0)}),Qn(),Zt();var Yn,Mo=wKA();ce("click",A2,function(EA){var HA;SA()||z()||!L()||L().contains(EA.target)||(HA=g(ii))!==null&&HA!==void 0&&HA.contains(EA.target)||rt()}),ce("keydown",A2,Ve);var ne=W(Mo),wi=EA=>{var HA,ve=CKA(),Qt=W(ve),yi=Pt=>{var $i=_o();jo(vt($i),e,"list-prepend",{},null),iA(Pt,$i)};LA(Qt,Pt=>{nA(()=>A["list-prepend"])&&Pt(yi)});var ri=IA(Qt,2),pn=Pt=>{var $i=_o();jo(vt($i),e,"list",{get filteredItems(){return g(l)}},null),iA(Pt,$i)},Fn=(Pt,$i)=>{var Rr=Xn=>{var se=_o();qo(vt(se),1,()=>g(l),or,(vi,Yi,rn)=>{var Hr,Ri=gKA(),fs=W(Ri);jo(W(fs),e,"item",{get item(){return g(Yi)},index:rn},Bo=>{var Q=Tr();De(()=>wt(Q,(g(Yi),k(QA()),nA(()=>{var m;return(m=g(Yi))===null||m===void 0?void 0:m[QA()]})))),iA(Bo,Q)}),Us(fs,(Bo,Q)=>dn?.(Bo),()=>({scroll:pi(g(Yi),U(),cA()),listDom:g(I)})),Us(fs,(Bo,Q)=>mn?.(Bo),()=>({scroll:g(C)===rn,listDom:g(I)})),De(Bo=>Hr=Vt(fs,1,"item svelte-82qwg8",null,Hr,Bo),[()=>{var Bo,Q;return{"list-group-title":g(Yi).groupHeader,active:pi(g(Yi),U(),cA()),first:(Q=rn,Q===0),hover:_e()===rn,"group-item":g(Yi).groupItem,"not-selectable":((Bo=g(Yi))===null||Bo===void 0?void 0:Bo.selectable)===!1}}],qA),ce("mouseover",Ri,()=>We(rn)),ce("focus",Ri,()=>We(rn)),ce("click",Ri,j0(()=>function(Bo){var{item:Q,i:m}=Bo;if(Q?.selectable!==!1)return U()&&!w()&&U()[cA()]===Q[cA()]?xe():void(function(v){return v.groupHeader&&v.selectable||v.selectable||!v.hasOwnProperty("selectable")}(Q)&&(_e(m),M(Q)))}({item:g(Yi),i:rn}))),ce("keydown",Ri,N1(j0(function(Bo){N3.call(this,e,Bo)}))),iA(vi,Ri)}),iA(Xn,se)},Ft=(Xn,se)=>{var vi=Yi=>{var rn=_o();jo(vt(rn),e,"empty",{},Hr=>{iA(Hr,IKA())}),iA(Yi,rn)};LA(Xn,Yi=>{sA()||Yi(vi)},se)};LA(Pt,Xn=>{g(l),nA(()=>g(l).length>0)?Xn(Rr):Xn(Ft,!1)},$i)};LA(ri,Pt=>{nA(()=>A.list)?Pt(pn):Pt(Fn,!1)});var Jn=IA(ri,2),ln=Pt=>{var $i=_o();jo(vt($i),e,"list-append",{},null),iA(Pt,$i)};LA(Jn,Pt=>{nA(()=>A["list-append"])&&Pt(ln)}),Us(ve,Pt=>Vo?.(Pt)),Co(ve,Pt=>y(ii,Pt),()=>g(ii)),es(()=>ce("scroll",ve,_i)),es(()=>ce("pointerup",ve,N1(j0(function(Pt){N3.call(this,e,Pt)})))),es(()=>ce("mousedown",ve,N1(j0(function(Pt){N3.call(this,e,Pt)})))),De(Pt=>HA=Vt(ve,1,"svelte-select-list svelte-82qwg8",null,HA,Pt),[()=>({prefloat:g(bo)})],qA),iA(EA,ve)};LA(ne,EA=>{SA()&&EA(wi)});var MA=IA(ne,2),me=W(MA),nt=EA=>{var HA=dKA(),ve=vt(HA),Qt=W(ve),yi=W(IA(ve,2));De(()=>{wt(Qt,g(a)),wt(yi,g(c))}),iA(EA,HA)};LA(me,EA=>{z()&&EA(nt)});var Wt=IA(MA,2);jo(W(Wt),e,"prepend",{},null);var Xe=IA(Wt,2),oi=W(Xe),Di=EA=>{var HA=_o(),ve=vt(HA),Qt=ri=>{var pn=_o();qo(vt(pn),1,U,or,(Fn,Jn,ln)=>{var Pt,$i=EKA(),Rr=W($i);jo(W(Rr),e,"selection",{get selection(){return g(Jn)},index:ln},se=>{var vi=Tr();De(()=>wt(vi,(g(Jn),k(QA()),nA(()=>g(Jn)[QA()])))),iA(se,vi)});var Ft=IA(Rr,2),Xn=se=>{var vi=BKA();jo(W(vi),e,"multi-clear-icon",{},Yi=>{e_(Yi)}),ce("pointerup",vi,N1(j0(()=>DA(ln)))),iA(se,vi)};LA(Ft,se=>{K()||_()||!e_||se(Xn)}),De(se=>Pt=Vt($i,1,"multi-item svelte-82qwg8",null,Pt,se),[()=>({active:g(Re)===ln,disabled:K()})],qA),ce("click",$i,N1(()=>_()?DA(ln):{})),ce("keydown",$i,N1(j0(function(se){N3.call(this,e,se)}))),iA(Fn,$i)}),iA(ri,pn)},yi=ri=>{var pn,Fn=QKA();jo(W(Fn),e,"selection",{get selection(){return U()}},Jn=>{var ln=Tr();De(()=>wt(ln,(k(U()),k(QA()),nA(()=>U()[QA()])))),iA(Jn,ln)}),De(Jn=>pn=Vt(Fn,1,"selected-item svelte-82qwg8",null,pn,Jn),[()=>({"hide-selected-item":g(o)})],qA),iA(ri,Fn)};LA(ve,ri=>{w()?ri(Qt):ri(yi,!1)}),iA(EA,HA)};LA(oi,EA=>{g(n)&&EA(Di)});var Ut=IA(oi,2);ry(Ut,()=>fe(fe({readOnly:!eA()},g(P)),{},{placeholder:g(s),style:UA(),disabled:K()}),void 0,"svelte-82qwg8"),Co(Ut,EA=>R(EA),()=>R());var cn=IA(Xe,2),ft=W(cn),Qi=EA=>{var HA=hKA();jo(W(HA),e,"loading-icon",{},ve=>{(function(Qt){iA(Qt,lKA())})(ve)}),iA(EA,HA)};LA(ft,EA=>{le()&&EA(Qi)});var ot=IA(ft,2),Mt=EA=>{var HA=uKA();jo(W(HA),e,"clear-icon",{},ve=>{e_(ve)}),ce("click",HA,qi),iA(EA,HA)};LA(ot,EA=>{g(r)&&EA(Mt)});var on=IA(ot,2),hn=EA=>{var HA=fKA();jo(W(HA),e,"chevron-icon",{get listOpen(){return SA()}},ve=>{(function(Qt){iA(Qt,aKA())})(ve)}),iA(EA,HA)};LA(on,EA=>{de()&&EA(hn)});var Ai=IA(cn,2);jo(Ai,e,"input-hidden",{get value(){return U()}},EA=>{var HA=mKA();De(ve=>{En(HA,"name",D()),VC(HA,ve)},[()=>(k(U()),nA(()=>U()?JSON.stringify(U()):null))],qA),iA(EA,HA)});var Ki=IA(Ai,2),dt=EA=>{var HA=_o();jo(vt(HA),e,"required",{get value(){return U()}},ve=>{iA(ve,pKA())}),iA(EA,HA)};return LA(Ki,EA=>{k(CA()),k(U()),nA(()=>CA()&&(!U()||U().length===0))&&EA(dt)}),es(()=>ce("pointerup",Mo,N1(tn))),Co(Mo,EA=>L(EA),()=>L()),Us(Mo,EA=>Wn?.(EA)),De(EA=>{var HA;Yn=Vt(Mo,1,"svelte-select ".concat((HA=bt())!==null&&HA!==void 0?HA:""),"svelte-82qwg8",Yn,EA),Ll(Mo,VA())},[()=>({multi:w(),disabled:K(),focused:z(),"list-open":SA(),"show-chevron":de(),error:oe()})],qA),ce("keydown",Ut,Ve),ce("blur",Ut,rt),ce("focus",Ut,ZA),By(Ut,H),iA(t,Mo),zt(e,"getFilteredItems",uA),zt(e,"handleClear",qi),pt({getFilteredItems:uA,handleClear:qi})}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -table.jse-transform-wizard.svelte-qbze6z { - border-collapse: collapse; - border-spacing: 0; - width: 100%; -} -table.jse-transform-wizard.svelte-qbze6z input:where(.svelte-qbze6z) { - font-family: inherit; - font-size: inherit; -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) th:where(.svelte-qbze6z) { - font-weight: normal; - text-align: left; - width: 60px; -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) { - width: 100%; - display: flex; - flex-direction: row; - margin-bottom: calc(0.5 * var(--jse-padding, 10px)); -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select .multi-item { - align-items: center; -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select .value-container { - gap: 0 !important; -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-filter-path { - flex: 4; - margin-right: calc(0.5 * var(--jse-padding, 10px)); -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-filter-relation { - flex: 1.5; - margin-right: calc(0.5 * var(--jse-padding, 10px)); -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-sort-path { - flex: 3; - margin-right: calc(0.5 * var(--jse-padding, 10px)); -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-sort-direction { - flex: 1; -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-projection-paths { - flex: 1; -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select input { - box-sizing: border-box; -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .jse-filter-value:where(.svelte-qbze6z) { - flex: 4; - padding: 4px 8px; - border: var(--jse-input-border, 1px solid #d8dbdf); - border-radius: var(--jse-input-radius, 3px); - outline: none; - background: var(--jse-input-background, var(--jse-background-color, #fff)); - color: inherit; -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .jse-filter-value:where(.svelte-qbze6z):focus { - border: var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa))); -}`);var DKA=wA('
      Filter
      Sort
      Pick
      ');function yKA(t,e){var A,i,n,o,r;mt(e,!1);var s=$(void 0,!0),a=$(void 0,!0),c=$(void 0,!0),l=$(void 0,!0),I=$(void 0,!0),C=$(void 0,!0),d=Sr("jsoneditor:TransformWizard"),B=b(e,"json",9),E=b(e,"queryOptions",29,()=>({})),h=b(e,"onChange",9),u=["==","!=","<","<=",">",">="].map(KA=>({value:KA,label:KA})),D=[{value:"asc",label:"ascending"},{value:"desc",label:"descending"}],L=$((A=E())!==null&&A!==void 0&&(A=A.filter)!==null&&A!==void 0&&A.path?U1(E().filter.path):void 0,!0),R=$((i=u.find(KA=>{var CA;return KA.value===((CA=E().filter)===null||CA===void 0?void 0:CA.relation)}))!==null&&i!==void 0?i:u[0],!0),w=$(((n=E())===null||n===void 0||(n=n.filter)===null||n===void 0?void 0:n.value)||"",!0),_=$((o=E())!==null&&o!==void 0&&(o=o.sort)!==null&&o!==void 0&&o.path?U1(E().sort.path):void 0,!0),K=$((r=D.find(KA=>{var CA;return KA.value===((CA=E().sort)===null||CA===void 0?void 0:CA.direction)}))!==null&&r!==void 0?r:D[0],!0);fA(()=>k(B()),()=>{y(s,Array.isArray(B()))}),fA(()=>(g(s),k(B())),()=>{y(a,g(s)?h_(B()):[])}),fA(()=>(g(s),k(B())),()=>{y(c,g(s)?h_(B(),!0):[])}),fA(()=>(g(a),U1),()=>{y(l,g(a).map(U1))}),fA(()=>(g(c),U1),()=>{y(I,g(c)?g(c).map(U1):[])}),fA(()=>(k(E()),g(I),di),()=>{var KA;y(C,(KA=E())!==null&&KA!==void 0&&(KA=KA.projection)!==null&&KA!==void 0&&KA.paths&&g(I)?E().projection.paths.map(CA=>g(I).find(TA=>di(TA.value,CA))).filter(CA=>!!CA):void 0)}),fA(()=>g(L),()=>{var KA,CA,TA;CA=(KA=g(L))===null||KA===void 0?void 0:KA.value,di((TA=E())===null||TA===void 0||(TA=TA.filter)===null||TA===void 0?void 0:TA.path,CA)||(d("changeFilterPath",CA),E(cs(E(),["filter","path"],CA,!0)),h()(E()))}),fA(()=>g(R),()=>{var KA,CA,TA;CA=(KA=g(R))===null||KA===void 0?void 0:KA.value,di((TA=E())===null||TA===void 0||(TA=TA.filter)===null||TA===void 0?void 0:TA.relation,CA)||(d("changeFilterRelation",CA),E(cs(E(),["filter","relation"],CA,!0)),h()(E()))}),fA(()=>g(w),()=>{var KA,CA;KA=g(w),di((CA=E())===null||CA===void 0||(CA=CA.filter)===null||CA===void 0?void 0:CA.value,KA)||(d("changeFilterValue",KA),E(cs(E(),["filter","value"],KA,!0)),h()(E()))}),fA(()=>g(_),()=>{var KA,CA,TA;CA=(KA=g(_))===null||KA===void 0?void 0:KA.value,di((TA=E())===null||TA===void 0||(TA=TA.sort)===null||TA===void 0?void 0:TA.path,CA)||(d("changeSortPath",CA),E(cs(E(),["sort","path"],CA,!0)),h()(E()))}),fA(()=>g(K),()=>{var KA,CA,TA;CA=(KA=g(K))===null||KA===void 0?void 0:KA.value,di((TA=E())===null||TA===void 0||(TA=TA.sort)===null||TA===void 0?void 0:TA.direction,CA)||(d("changeSortDirection",CA),E(cs(E(),["sort","direction"],CA,!0)),h()(E()))}),fA(()=>g(C),()=>{(function(KA){var CA;di((CA=E())===null||CA===void 0||(CA=CA.projection)===null||CA===void 0?void 0:CA.paths,KA)||(d("changeProjectionPaths",KA),E(cs(E(),["projection","paths"],KA,!0)),h()(E()))})(g(C)?g(C).map(KA=>KA.value):void 0)}),Qn(),Zt(!0);var z=DKA(),U=W(z),H=W(U),q=IA(W(H)),j=W(q),gA=W(j);JC(gA,{class:"jse-filter-path",showChevron:!0,get items(){return g(l)},get value(){return g(L)},set value(KA){y(L,KA)},$$legacy:!0});var QA=IA(gA,2);JC(QA,{class:"jse-filter-relation",showChevron:!0,clearable:!1,get items(){return u},get value(){return g(R)},set value(KA){y(R,KA)},$$legacy:!0});var BA=IA(QA,2),lA=IA(H),vA=IA(W(lA)),tA=W(vA),cA=W(tA);JC(cA,{class:"jse-sort-path",showChevron:!0,get items(){return g(l)},get value(){return g(_)},set value(KA){y(_,KA)},$$legacy:!0}),JC(IA(cA,2),{class:"jse-sort-direction",showChevron:!0,clearable:!1,get items(){return D},get value(){return g(K)},set value(KA){y(K,KA)},$$legacy:!0});var pA=IA(lA),VA=IA(W(pA)),oe=W(VA);JC(W(oe),{class:"jse-projection-paths",multiple:!0,showChevron:!0,get items(){return g(I)},get value(){return g(C)},set value(KA){y(C,KA)},$$legacy:!0}),By(BA,()=>g(w),KA=>y(w,KA)),iA(t,z),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-select-query-language.svelte-atm4um { - position: relative; - width: 32px; -} -.jse-select-query-language.svelte-atm4um .jse-select-query-language-container:where(.svelte-atm4um) { - position: absolute; - top: 0; - right: 0; - display: flex; - flex-direction: column; - box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); -} -.jse-select-query-language.svelte-atm4um .jse-select-query-language-container:where(.svelte-atm4um) .jse-query-language:where(.svelte-atm4um) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - text-align: left; - padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); - white-space: nowrap; - color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); - background: var(--jse-context-menu-background, #656565); -} -.jse-select-query-language.svelte-atm4um .jse-select-query-language-container:where(.svelte-atm4um) .jse-query-language:where(.svelte-atm4um):hover { - background: var(--jse-context-menu-background-highlight, #7a7a7a); -}`);var vKA=wA(''),bKA=wA('
      ');function MKA(t,e){mt(e,!1);var A=b(e,"queryLanguages",8),i=b(e,"queryLanguageId",12),n=b(e,"onChangeQueryLanguage",8);Zt();var o=bKA();qo(W(o),5,A,or,(r,s)=>{var a,c=vKA(),l=W(c),I=B=>{ji(B,{get data(){return zS}})},C=B=>{ji(B,{get data(){return OS}})};LA(l,B=>{g(s),k(i()),nA(()=>g(s).id===i())?B(I):B(C,!1)});var d=IA(l);De(B=>{var E;a=Vt(c,1,"jse-query-language svelte-atm4um",null,a,B),En(c,"title",(g(s),nA(()=>"Select ".concat(g(s).name," as query language")))),wt(d," ".concat((g(s),(E=nA(()=>g(s).name))!==null&&E!==void 0?E:"")))},[()=>({selected:g(s).id===i()})],qA),ce("click",c,()=>{return B=g(s).id,i(B),void n()(B);var B}),iA(r,c)}),iA(t,o),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-header.svelte-1y24war { - display: flex; - background: var(--jse-theme-color, #3883fa); - color: var(--jse-menu-color, var(--jse-text-color-inverse, #fff)); -} -.jse-header.svelte-1y24war .jse-title:where(.svelte-1y24war) { - flex: 1; - padding: 5px; - vertical-align: middle; -} -.jse-header.svelte-1y24war button:where(.svelte-1y24war) { - border: none; - background: transparent; - min-width: 32px; - color: inherit; - cursor: pointer; -} -.jse-header.svelte-1y24war button:where(.svelte-1y24war):hover { - background: rgba(255, 255, 255, 0.1); -}`);var kKA=wA(''),SKA=wA('
      ');function My(t,e){mt(e,!1);var A=b(e,"title",9,"Modal"),i=b(e,"fullScreenButton",9,!1),n=b(e,"fullscreen",13,!1),o=b(e,"onClose",9,void 0);Zt(!0);var r=SKA(),s=W(r),a=W(s),c=IA(s,2);jo(c,e,"actions",{},null);var l=IA(c,2),I=d=>{var B=kKA(),E=W(B),h=qA(()=>n()?FW:VW);ji(E,{get data(){return g(h)}}),ce("click",B,()=>n(!n())),iA(d,B)};LA(l,d=>{i()&&d(I)});var C=IA(l,2);ji(W(C),{get data(){return I4}}),De(()=>wt(a,A())),ce("click",C,()=>{var d;return(d=o())===null||d===void 0?void 0:d()}),iA(t,r),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-config.svelte-1kpylsp { - border: none; - background: transparent; - min-width: 32px; - color: inherit; - cursor: pointer; -} -.jse-config.svelte-1kpylsp:hover { - background: rgba(255, 255, 255, 0.1); -} -.jse-config.hide.svelte-1kpylsp { - display: none; -}`);var RKA=wA(''),t_=Sr("jsoneditor:AutoScrollHandler");function UrA(t){var e,A;function i(s){return s<20?200:s<50?400:1200}function n(){if(t){var s=.05*(e||0);t.scrollTop+=s}}function o(s){A&&s===e||(r(),t_("startAutoScroll",s),e=s,A=setInterval(n,50))}function r(){A&&(t_("stopAutoScroll"),clearInterval(A),A=void 0,e=void 0)}return t_("createAutoScrollHandler",t),{onDrag:function(s){if(t){var a=s.clientY,{top:c,bottom:l}=t.getBoundingClientRect();al?o(i(a-l)):r()}},onDragEnd:function(){r()}}}var xKA=(t,e,A,i)=>(t/=i/2)<1?A/2*t*t+e:-A/2*(--t*(t-2)-1)+e,paA=()=>{var t,e,A,i,n,o,r,s,a,c,l,I,C;function d(h){return h.getBoundingClientRect().top-(t.getBoundingClientRect?t.getBoundingClientRect().top:0)+A}function B(h){t.scrollTo?t.scrollTo(t.scrollLeft,h):t.scrollTop=h}function E(h){c||(c=h),B(o(l=h-c,A,s,a)),C=!0,l1&&arguments[1]!==void 0?arguments[1]:{};switch(a=1e3,n=u.offset||0,I=u.callback,o=u.easing||xKA,r=u.a11y||!1,typeof u.container){case"object":t=u.container;break;case"string":t=document.querySelector(u.container);break;default:t=window.document.documentElement}switch(A=t.scrollTop,typeof h){case"number":e=void 0,r=!1,i=A+h;break;case"object":i=d(e=h);break;case"string":e=document.querySelector(h),i=d(e)}switch(s=i-A+n,typeof u.duration){case"number":a=u.duration;break;case"function":a=u.duration(s)}C?c=0:requestAnimationFrame(E)}};function sQ(t,e){var A=Date.now(),i=t();return e(Date.now()-A),i}var tQ=Sr("validation"),LKA={createObjectDocumentState:()=>({type:"object",properties:{}}),createArrayDocumentState:()=>({type:"array",items:[]}),createValueDocumentState:()=>({type:"value"})};function KrA(t,e,A,i){return rG(t,e,A,i,LKA)}function waA(t,e,A,i){if(tQ("validateJSON"),!e)return[];if(A!==i){var n=A.stringify(t);return e(n!==void 0?i.parse(n):void 0)}return e(t)}function FKA(t,e,A,i){if(tQ("validateText"),t.length>104857600)return{validationErrors:[{path:[],message:"Validation turned off: the document is too large",severity:Fl.info}]};if(t.length!==0)try{var n=sQ(()=>A.parse(t),a=>tQ("validate: parsed json in ".concat(a," ms")));if(!e)return;var o=A===i?n:sQ(()=>i.parse(t),a=>tQ("validate: parsed json with the validationParser in ".concat(a," ms"))),r=sQ(()=>e(o),a=>tQ("validate: validated json in ".concat(a," ms")));return Oi(r)?void 0:{validationErrors:r}}catch(a){var s=sQ(()=>function(c,l){if(c.length>aUA)return!1;try{return l.parse(Rc(c)),!0}catch{return!1}}(t,A),c=>tQ("validate: checked whether repairable in ".concat(c," ms")));return{parseError:dQ(t,a.message||a.toString()),isRepairable:s}}}var ey=Sr("jsoneditor:FocusTracker");function CG(t){var e,{onMount:A,onDestroy:i,getWindow:n,hasFocus:o,onFocus:r,onBlur:s}=t,a=!1;function c(){var I=o();I&&(clearTimeout(e),a||(ey("focus"),r(),a=I))}function l(){a&&(clearTimeout(e),e=setTimeout(()=>{o()||(ey("blur"),a=!1,s())}))}A(()=>{ey("mount FocusTracker");var I=n();I&&(I.addEventListener("focusin",c,!0),I.addEventListener("focusout",l,!0))}),i(()=>{ey("destroy FocusTracker");var I=n();I&&(I.removeEventListener("focusin",c,!0),I.removeEventListener("focusout",l,!0))})}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-message.svelte-czprfx { - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - padding: var(--jse-padding, 10px); - display: flex; - gap: var(--jse-padding, 10px); - flex-wrap: wrap; - align-items: stretch; -} -.jse-message.jse-success.svelte-czprfx { - background: var(--message-success-background, #9ac45d); - color: var(--jse-message-success-color, #fff); -} -.jse-message.svelte-czprfx .jse-text:where(.svelte-czprfx) { - display: flex; - flex: 1; - min-width: 60%; - align-items: center; -} -.jse-message.svelte-czprfx .jse-text.jse-clickable:where(.svelte-czprfx) { - cursor: pointer; -} -.jse-message.svelte-czprfx .jse-text.jse-clickable:where(.svelte-czprfx):hover { - background-color: rgba(255, 255, 255, 0.1); -} -.jse-message.jse-error.svelte-czprfx { - background: var(--jse-message-error-background, var(--jse-error-color, #ee5341)); - color: var(--jse-message-error-color, #fff); -} -.jse-message.jse-warning.svelte-czprfx { - background: var(--jse-message-warning-background, #ffde5c); - color: var(--jse-message-warning-color, #4d4d4d); -} -.jse-message.jse-info.svelte-czprfx { - background: var(--jse-message-info-background, #4f91ff); - color: var(--jse-message-info-color, #fff); -} -.jse-message.svelte-czprfx .jse-actions:where(.svelte-czprfx) { - display: flex; - gap: var(--jse-padding, 10px); -} -.jse-message.svelte-czprfx .jse-actions:where(.svelte-czprfx) button.jse-action:where(.svelte-czprfx) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - background: var(--jse-message-action-background, rgba(255, 255, 255, 0.2)); - color: inherit; - padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); -} -.jse-message.svelte-czprfx .jse-actions:where(.svelte-czprfx) button.jse-action:where(.svelte-czprfx):hover { - background: var(--jse-message-action-background-highlight, rgba(255, 255, 255, 0.3)); -}`);var NKA=wA(''),_KA=wA('
      ');function mc(t,e){mt(e,!1);var A=b(e,"type",9,"success"),i=b(e,"icon",9,void 0),n=b(e,"message",9,void 0),o=b(e,"actions",25,()=>[]),r=b(e,"onClick",9,void 0),s=b(e,"onClose",9,void 0);s()&&qc(s()),Zt(!0);var a,c=_KA(),l=W(c),I=W(l),C=W(I),d=E=>{ji(E,{get data(){return i()}})};LA(C,E=>{i()&&E(d)});var B=IA(C);qo(IA(l,2),5,o,or,(E,h)=>{var u=NKA(),D=W(u),L=w=>{ji(w,{get data(){return g(h),nA(()=>g(h).icon)}})};LA(D,w=>{g(h),nA(()=>g(h).icon)&&w(L)});var R=IA(D);De(()=>{var w;En(u,"title",(g(h),nA(()=>g(h).title))),u.disabled=(g(h),nA(()=>g(h).disabled)),wt(R," ".concat((g(h),(w=nA(()=>g(h).text))!==null&&w!==void 0?w:"")))}),ce("click",u,()=>{g(h).onClick&&g(h).onClick()}),ce("mousedown",u,()=>{g(h).onMouseDown&&g(h).onMouseDown()}),iA(E,u)}),De(E=>{var h,u;Vt(c,1,"jse-message jse-".concat((h=A())!==null&&h!==void 0?h:""),"svelte-czprfx"),a=Vt(l,1,"jse-text svelte-czprfx",null,a,E),wt(B," ".concat((u=n())!==null&&u!==void 0?u:""))},[()=>({"jse-clickable":!!r()})],qA),ce("click",l,function(){r()&&r()()}),iA(t,c),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-validation-errors-overview.svelte-1uindol { - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - overflow: auto; - max-height: 25%; -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) { - border-collapse: collapse; - width: 100%; -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) { - cursor: pointer; -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-error:where(.svelte-1uindol) { - background: var(--jse-message-error-background, var(--jse-error-color, #ee5341)); - color: var(--jse-message-error-color, #fff); -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-warning:where(.svelte-1uindol) { - background: var(--jse-message-warning-background, #ffde5c); - color: var(--jse-message-warning-color, #4d4d4d); -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-warning:where(.svelte-1uindol):hover { - filter: brightness(105%); -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-info:where(.svelte-1uindol) { - background: var(--jse-message-info-background, #4f91ff); - color: var(--jse-message-info-color, #fff); -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol):hover { - filter: brightness(110%); -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td:where(.svelte-1uindol) { - padding: 4px var(--jse-padding, 10px); - vertical-align: middle; -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-icon:where(.svelte-1uindol) { - width: 36px; - box-sizing: border-box; -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-action:where(.svelte-1uindol) { - width: 36px; - box-sizing: border-box; - padding: 0; -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-action:where(.svelte-1uindol) button.jse-validation-errors-collapse:where(.svelte-1uindol) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - width: 36px; - height: 26px; - cursor: pointer; -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-action:where(.svelte-1uindol) button.jse-validation-errors-collapse:where(.svelte-1uindol):hover { - background-color: rgba(255, 255, 255, 0.2); -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td:where(.svelte-1uindol) div.jse-validation-errors-expand:where(.svelte-1uindol) { - display: inline-block; - position: relative; - top: 3px; -}`);var GKA=wA(''),UKA=wA(' '),KKA=wA(' '),YKA=wA('
      '),JKA=wA('
      '),TKA=wA('
      ');function dG(t,e){mt(e,!1);var A=$(void 0,!0),i=b(e,"validationErrors",9),n=b(e,"selectError",9),o=$(!0,!0);function r(){y(o,!1)}function s(){y(o,!0)}fA(()=>k(i()),()=>{y(A,i().length)}),Qn(),Zt(!0);var a=_o(),c=vt(a),l=I=>{var C=TKA(),d=W(C),B=h=>{var u=YKA(),D=W(u),L=W(D);qo(L,1,()=>(k(Ey),k(i()),k(VD),nA(()=>Ey(i(),VD))),or,(_,K,z)=>{var U=UKA(),H=W(U);ji(W(H),{get data(){return g1}});var q=IA(H),j=W(q),gA=IA(q),QA=W(gA),BA=W(IA(gA)),lA=vA=>{var tA=GKA();ji(W(tA),{get data(){return zW}}),ce("click",tA,j0(r)),iA(vA,tA)};LA(BA,vA=>{k(i()),nA(()=>z===0&&i().length>1)&&vA(lA)}),De(vA=>{var tA;Vt(U,1,"jse-validation-".concat((g(K),(tA=nA(()=>g(K).severity))!==null&&tA!==void 0?tA:"")),"svelte-1uindol"),wt(j,vA),wt(QA,(g(K),nA(()=>g(K).message)))},[()=>(k(Ka),g(K),nA(()=>Ka(g(K).path)))],qA),ce("click",U,()=>{setTimeout(()=>n()(g(K)))}),iA(_,U)});var R=IA(L),w=_=>{var K=KKA(),z=IA(W(K),2),U=W(z);De(()=>wt(U,"(and ".concat(g(A)-VD," more errors)"))),iA(_,K)};LA(R,_=>{g(A)>VD&&_(w)}),iA(h,u)},E=h=>{var u=JKA(),D=W(u),L=W(D),R=W(L);ji(W(R),{get data(){return g1}});var w=W(IA(R));ji(W(IA(w)),{get data(){return qS}}),De(_=>{var K;Vt(L,1,"jse-validation-".concat(_??""),"svelte-1uindol"),wt(w,"".concat((K=g(A))!==null&&K!==void 0?K:""," validation errors "))},[()=>(k(i()),nA(()=>{return _=i(),[Fl.error,Fl.warning,Fl.info].find(K=>_.some(z=>z.severity===K));var _}))],qA),ce("click",L,s),iA(h,u)};LA(d,h=>{g(o)||g(A)===1?h(B):h(E,!1)}),iA(I,C)};LA(c,I=>{k(Oi),k(i()),nA(()=>!Oi(i()))&&I(l)}),iA(t,a),pt()}function ky(t,e){if(t)return t.addEventListener("keydown",A),{destroy(){t.removeEventListener("keydown",A)}};function A(i){i.key==="Escape"&&(i.preventDefault(),i.stopPropagation(),e())}}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -dialog.jse-modal.svelte-1s9c2ql { - border-radius: 3px; - font-size: var(--jse-padding, 10px); - border: none; - padding: 0; - display: flex; - min-width: 0; - margin: auto; - overflow: visible; - transition: width 0.1s ease-in-out, height 0.1s ease-in-out; -} -dialog.jse-modal.jse-sort-modal.svelte-1s9c2ql { - width: 400px; -} -dialog.jse-modal.jse-repair-modal.svelte-1s9c2ql { - width: 600px; - height: 500px; -} -dialog.jse-modal.jse-jsoneditor-modal.svelte-1s9c2ql { - width: 800px; - height: 600px; -} -dialog.jse-modal.jse-transform-modal.svelte-1s9c2ql { - width: 1200px; - height: 800px; -} -dialog.jse-modal.jse-fullscreen.svelte-1s9c2ql { - width: 100%; - height: 100%; -} -dialog.jse-modal.svelte-1s9c2ql::backdrop { - background: var(--jse-overlay-background, rgba(0, 0, 0, 0.3)); -} -dialog.jse-modal[open].svelte-1s9c2ql { - animation: svelte-1s9c2ql-zoom 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); -} -dialog.jse-modal[open].svelte-1s9c2ql::backdrop { - animation: svelte-1s9c2ql-fade 0.2s ease-out; -} -dialog.jse-modal.svelte-1s9c2ql .jse-modal-inner:where(.svelte-1s9c2ql) { - flex: 1; - display: flex; - flex-direction: column; - min-width: 0; - min-height: 0; - padding: 0; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - line-height: normal; - background: var(--jse-modal-background, #f5f5f5); - color: var(--jse-text-color, #4d4d4d); -} -@keyframes svelte-1s9c2ql-zoom { - from { - transform: scale(0.95); - } - to { - transform: scale(1); - } -} -@keyframes svelte-1s9c2ql-fade { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -dialog.jse-modal.svelte-1s9c2ql .svelte-select { - --border: var(--jse-svelte-select-border, 1px solid #d8dbdf); - --item-is-active-bg: var(--jse-item-is-active-bg, #3883fa); - --border-radius: var(--jse-svelte-select-border-radius, 3px); - --background: var(--jse-svelte-select-background, #fff); - --padding: var(--jse-svelte-select-padding, 0 10px); - --multi-select-padding: var(--jse-svelte-select-multi-select-padding, 0 10px); - --font-size: var(--jse-svelte-select-font-size, var(--jse-font-size, 16px)); - --height: 36px; - --multi-item-height: 28px; - --multi-item-margin: 2px; - --multi-item-padding: 2px 8px; - --multi-item-border-radius: 6px; - --indicator-top: 8px; -}`);var HKA=wA('
      ');function X3(t,e){mt(e,!1);var A=b(e,"className",8,void 0),i=b(e,"fullscreen",8,!1),n=b(e,"onClose",8),o=$();function r(){n()()}hs(()=>g(o).showModal()),qc(()=>g(o).close()),Zt();var s,a=HKA(),c=W(a);jo(W(c),e,"default",{},null),Co(a,l=>y(o,l),()=>g(o)),es(()=>ce("close",a,r)),es(()=>{return ce("pointerdown",a,(l=r,function(){for(var I=arguments.length,C=new Array(I),d=0;dce("cancel",a,N1(function(l){N3.call(this,e,l)}))),Us(a,(l,I)=>ky?.(l,I),()=>r),De((l,I)=>s=Vt(a,1,l,"svelte-1s9c2ql",s,I),[()=>Z1((k(Kl),k(A()),nA(()=>Kl("jse-modal",A())))),()=>({"jse-fullscreen":i()})],qA),iA(t,a),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-modal-contents.svelte-189qksl { - flex: 1; - display: flex; - flex-direction: column; - padding: 20px; - overflow: auto; - min-width: 0; - min-height: 0; -} -.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) { - display: flex; - flex-direction: row; - justify-content: flex-end; - padding-top: var(--jse-padding, 10px); -} -.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) button.jse-primary:where(.svelte-189qksl) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); - color: var(--jse-button-primary-color, #fff); - padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); - border-radius: 3px; -} -.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) button.jse-primary:where(.svelte-189qksl):hover { - background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); -} -.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) button.jse-primary:where(.svelte-189qksl):disabled { - background: var(--jse-button-primary-background-disabled, #9d9d9d); -} - -.jse-shortcuts.svelte-189qksl { - display: flex; - flex-wrap: wrap; - justify-content: space-around; - margin: calc(2 * var(--jse-padding, 10px)) 0; -} -.jse-shortcuts.svelte-189qksl .jse-shortcut:where(.svelte-189qksl) .jse-key:where(.svelte-189qksl) { - font-size: 200%; - color: var(--jse-theme-color, #3883fa); -}`);var zKA=wA('
      Clipboard permission is disabled by your browser. You can use:
      for copy
      for cut
      for paste
      ',1);function DaA(t,e){mt(e,!1);var A=b(e,"onClose",9),i=X_()?"\u2318":"Ctrl";Zt(!0),X3(t,{get onClose(){return A()},className:"jse-copy-paste",children:(n,o)=>{var r=zKA(),s=vt(r);My(s,{title:"Copying and pasting",get onClose(){return A()}});var a=IA(s,2),c=IA(W(a),2),l=W(c),I=W(l),C=W(I),d=IA(l,2),B=W(d),E=W(B),h=W(IA(d,2)),u=W(h),D=W(IA(c,2));De(()=>{wt(C,"".concat(i,"+C")),wt(E,"".concat(i,"+X")),wt(u,"".concat(i,"+V"))}),ce("click",D,function(){for(var L,R=arguments.length,w=new Array(R),_=0;_'),PKA=wA('
      '),jKA=wA(''),qKA=wA('
      ');function Oy(t,e){mt(e,!1);var A=b(e,"items",25,()=>[]);Zt(!0);var i=qKA(),n=W(i);jo(n,e,"left",{},null);var o=IA(n,2);qo(o,1,A,or,(r,s)=>{var a=_o(),c=vt(a),l=C=>{iA(C,OKA())},I=(C,d)=>{var B=h=>{iA(h,PKA())},E=(h,u)=>{var D=R=>{var w=jKA(),_=W(w),K=H=>{ji(H,{get data(){return g(s),nA(()=>g(s).icon)}})};LA(_,H=>{g(s),nA(()=>g(s).icon)&&H(K)});var z=IA(_,2),U=H=>{var q=Tr();De(()=>wt(q,(g(s),nA(()=>g(s).text)))),iA(H,q)};LA(z,H=>{g(s),nA(()=>g(s).text)&&H(U)}),De(()=>{var H;Vt(w,1,"jse-button ".concat((g(s),(H=nA(()=>g(s).className))!==null&&H!==void 0?H:"")),"svelte-pf7s2l"),En(w,"title",(g(s),nA(()=>g(s).title))),w.disabled=(g(s),nA(()=>g(s).disabled||!1))}),ce("click",w,function(){for(var H,q=arguments.length,j=new Array(q),gA=0;gA{var w=Tr();De(_=>wt(w,_),[()=>(g(s),nA(()=>function(_){return console.error("Unknown type of menu item",_),"???"}(g(s))))],qA),iA(R,w)};LA(h,R=>{k(q0),g(s),nA(()=>q0(g(s)))?R(D):R(L,!1)},u)};LA(C,h=>{k(p_),g(s),nA(()=>p_(g(s)))?h(B):h(E,!1)},d)};LA(c,C=>{k(G1),g(s),nA(()=>G1(g(s)))?C(l):C(I,!1)}),iA(r,a)}),jo(IA(o,2),e,"right",{},null),iA(t,i),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-json-repair-component.svelte-3golau { - flex: 1; - display: flex; - flex-direction: column; - background: var(--jse-background-color, #fff); - color: var(--jse-text-color, #4d4d4d); -} -.jse-json-repair-component.svelte-3golau .jse-info:where(.svelte-3golau) { - padding: calc(0.5 * var(--jse-padding, 10px)); - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - vertical-align: center; -} -.jse-json-repair-component.svelte-3golau .jse-json-text:where(.svelte-3golau) { - flex: 1; - border: none; - padding: 2px; - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - background: var(--jse-input-background, var(--jse-background-color, #fff)); - color: var(--jse-text-color, #4d4d4d); - resize: none; - outline: none; -}`);var VKA=wA('
      Repair invalid JSON, then click apply
      '),ZKA=wA('
      ');function WKA(t,e){mt(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=$(void 0,!0),r=$(void 0,!0),s=$(void 0,!0),a=b(e,"text",13,""),c=b(e,"readOnly",9,!1),l=b(e,"onParse",9),I=b(e,"onRepair",9),C=b(e,"onChange",9,void 0),d=b(e,"onApply",9),B=b(e,"onCancel",9),E=Sr("jsoneditor:JSONRepair"),h=$(void 0,!0);function u(){if(g(h)&&g(A)){var q=g(A).position!==void 0?g(A).position:0;g(h).setSelectionRange(q,q),g(h).focus()}}function D(){d()(a())}function L(){try{a(I()(a())),C()&&C()(a())}catch{}}var R=$(void 0,!0);fA(()=>k(a()),()=>{y(A,function(q){try{return void l()(q)}catch(j){return dQ(q,j.message)}}(a()))}),fA(()=>k(a()),()=>{y(i,function(q){try{return I()(q),!0}catch{return!1}}(a()))}),fA(()=>g(A),()=>{E("error",g(A))}),fA(()=>k(B()),()=>{y(R,[{type:"space"},{type:"button",icon:I4,title:"Cancel repair",className:"jse-cancel",onClick:B()}])}),fA(()=>XS,()=>{y(n,{icon:XS,text:"Show me",title:"Scroll to the error location",onClick:u})}),fA(()=>L0,()=>{y(o,{icon:L0,text:"Auto repair",title:"Automatically repair JSON",onClick:L})}),fA(()=>(g(i),g(n),g(o)),()=>{y(r,g(i)?[g(n),g(o)]:[g(n)])}),fA(()=>k(c()),()=>{y(s,[{icon:u5,text:"Apply",title:"Apply fixed JSON",disabled:c(),onClick:D}])}),Qn(),Zt(!0);var w=ZKA(),_=W(w);Oy(_,{get items(){return g(R)},$$slots:{left:(q,j)=>{iA(q,VKA())}}});var K=IA(_,2),z=q=>{var j=qA(()=>(g(A),nA(()=>"Cannot parse JSON: ".concat(g(A).message))));mc(q,{type:"error",get icon(){return g1},get message(){return g(j)},get actions(){return g(r)}})},U=q=>{mc(q,{type:"success",message:"JSON is valid now and can be parsed.",get actions(){return g(s)}})};LA(K,q=>{g(A)?q(z):q(U,!1)});var H=IA(K,2);Co(H,q=>y(h,q),()=>g(h)),De(()=>{H.readOnly=c(),VC(H,a())}),ce("input",H,function(q){E("handleChange");var j=q.target.value;a()!==j&&(a(j),C()&&C()(a()))}),iA(t,w),pt()}function yaA(t,e){mt(e,!1);var A=b(e,"text",13),i=b(e,"onParse",9),n=b(e,"onRepair",9),o=b(e,"onApply",9),r=b(e,"onClose",9);function s(c){o()(c),r()()}function a(){r()()}Zt(!0),X3(t,{get onClose(){return r()},className:"jse-repair-modal",children:(c,l)=>{WKA(c,{get onParse(){return i()},get onRepair(){return n()},onApply:s,onCancel:a,get text(){return A()},set text(I){A(I)},$$legacy:!0})},$$slots:{default:!0}}),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -div.jse-collapsed-items.svelte-1h6hzoq { - margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - color: var(--jse-collapsed-items-link-color, rgba(0, 0, 0, 0.38)); - padding: calc(0.5 * var(--jse-padding, 10px)); - border: 8px solid transparent; - border-width: 8px 0; - background-color: var(--jse-contents-background-color, transparent); - background-image: linear-gradient(var(--jse-collapsed-items-background-color, #f5f5f5), var(--jse-collapsed-items-background-color, #f5f5f5)), linear-gradient(to bottom right, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%), linear-gradient(to bottom left, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%), linear-gradient(to top right, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%), linear-gradient(to top left, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%); - background-repeat: repeat, repeat-x, repeat-x, repeat-x, repeat-x; - background-position: 0 0, 8px 0, 8px 0, 8px 100%, 8px 100%; - background-size: auto auto, 16px 16px, 16px 16px, 16px 16px, 16px 16px; - background-clip: padding-box, border-box, border-box, border-box, border-box; - background-origin: padding-box, border-box, border-box, border-box, border-box; - display: flex; -} -div.jse-collapsed-items.jse-selected.svelte-1h6hzoq { - background-color: var(--jse-selection-background-color, #d3d3d3); - --jse-collapsed-items-background-color: var(--jse-collapsed-items-selected-background-color, #c2c2c2); -} -div.jse-collapsed-items.svelte-1h6hzoq div.jse-text:where(.svelte-1h6hzoq), -div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq) { - margin: 0 calc(0.5 * var(--jse-padding, 10px)); -} -div.jse-collapsed-items.svelte-1h6hzoq div.jse-text:where(.svelte-1h6hzoq) { - display: inline; -} -div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq) { - font-family: inherit; - font-size: inherit; - color: var(--jse-collapsed-items-link-color, rgba(0, 0, 0, 0.38)); - background: none; - border: none; - padding: 0; - text-decoration: underline; - cursor: pointer; -} -div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq):hover, div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq):focus { - color: var(--jse-collapsed-items-link-color-highlight, #ee5341); -}`);var XKA=wA(''),$KA=wA('
      ');function AYA(t,e){mt(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=$(void 0,!0),r=$(void 0,!0),s=b(e,"visibleSections",9),a=b(e,"sectionIndex",9),c=b(e,"total",9),l=b(e,"path",9),I=b(e,"selection",9),C=b(e,"onExpandSection",9),d=b(e,"context",9);fA(()=>(k(s()),k(a())),()=>{y(A,s()[a()])}),fA(()=>g(A),()=>{y(i,g(A).end)}),fA(()=>(k(s()),k(a()),k(c())),()=>{y(n,s()[a()+1]?s()[a()+1].start:c())}),fA(()=>(k(d()),k(I()),k(l()),g(i)),()=>{y(o,V3(d().getJson(),I(),l().concat(String(g(i)))))}),fA(()=>(g(i),g(n)),()=>{y(r,function(R,w){var _={start:R,end:Math.min(m_(R),w)},K=Math.max(hy((R+w)/2),R),z={start:K,end:Math.min(m_(K),w)},U=hy(w),H=U===w?U-O3:U,q={start:Math.max(H,R),end:w},j=[_],gA=z.start>=_.end&&z.end<=q.start;return gA&&j.push(z),q.start>=(gA?z.end:_.end)&&j.push(q),j}(g(i),g(n)))}),Qn(),Zt(!0);var B,E,h=$KA(),u=W(h),D=W(u),L=W(D);qo(IA(D,2),1,()=>g(r),or,(R,w)=>{var _=XKA(),K=W(_);De(()=>{var z,U;return wt(K,"show ".concat((g(w),(z=nA(()=>g(w).start))!==null&&z!==void 0?z:""),"-").concat((g(w),(U=nA(()=>g(w).end))!==null&&U!==void 0?U:"")))}),ce("click",_,()=>C()(l(),g(w))),iA(R,_)}),De((R,w)=>{var _,K;B=Vt(h,1,"jse-collapsed-items svelte-1h6hzoq",null,B,R),E=Ll(h,"",E,w),wt(L,"Items ".concat((_=g(i))!==null&&_!==void 0?_:"","-").concat((K=g(n))!==null&&K!==void 0?K:""))},[()=>({"jse-selected":g(o)}),()=>({"--level":(k(l()),nA(()=>l().length+2))})],qA),ce("mousemove",h,function(R){R.stopPropagation()}),iA(t,h),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-context-menu-pointer.svelte-137iwnw { - position: absolute; - top: calc(-0.5 * var(--jse-context-menu-pointer-size, calc(1em + 4px))); - right: calc(-0.5 * var(--jse-context-menu-pointer-size, calc(1em + 4px))); - width: var(--jse-context-menu-pointer-size, calc(1em + 4px)); - height: var(--jse-context-menu-pointer-size, calc(1em + 4px)); - padding: 0; - margin: 0; - cursor: pointer; - background: transparent; - border-radius: 2px; - background: var(--jse-context-menu-pointer-hover-background, #b2b2b2); - color: var(--jse-context-menu-pointer-color, var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff))); - border: none; - box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); -} -.jse-context-menu-pointer.jse-root.svelte-137iwnw { - top: 0; - right: calc(-2px - var(--jse-context-menu-pointer-size, calc(1em + 4px))); -} -.jse-context-menu-pointer.jse-insert.svelte-137iwnw { - right: -1px; -} -.jse-context-menu-pointer.svelte-137iwnw:hover { - background: var(--jse-context-menu-pointer-background-highlight, var(--jse-context-menu-background-highlight, #7a7a7a)); -} -.jse-context-menu-pointer.jse-selected.svelte-137iwnw { - background: var(--jse-context-menu-pointer-background, var(--jse-context-menu-background, #656565)); -} -.jse-context-menu-pointer.jse-selected.svelte-137iwnw:hover { - background: var(--jse-context-menu-pointer-background-highlight, var(--jse-context-menu-background-highlight, #7a7a7a)); -}`);var eYA=wA('');function _1(t,e){mt(e,!1);var A=b(e,"root",9,!1),i=b(e,"insert",9,!1),n=b(e,"selected",9),o=b(e,"onContextMenu",9);Zt(!0);var r,s=eYA();ji(W(s),{get data(){return mg}}),De(a=>{r=Vt(s,1,"jse-context-menu-pointer svelte-137iwnw",null,r,a),En(s,"title",AG)},[()=>({"jse-root":A(),"jse-insert":i(),"jse-selected":n()})],qA),ce("click",s,function(a){for(var c=a.target;c&&c.nodeName!=="BUTTON";)c=c.parentNode;c&&o()({anchor:c,left:0,top:0,width:W0,height:Z0,offsetTop:2,offsetLeft:0,showTip:!0})}),iA(t,s),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-key.svelte-2iqnqn { - display: inline-block; - min-width: 2em; - padding: 0 5px; - box-sizing: border-box; - outline: none; - border-radius: 1px; - vertical-align: top; - color: var(--jse-key-color, #1a1a1a); - word-break: normal; - overflow-wrap: normal; - white-space: pre-wrap; -} -.jse-key.jse-empty.svelte-2iqnqn { - min-width: 3em; - outline: 1px dotted var(--jse-tag-background, rgba(0, 0, 0, 0.2)); - -moz-outline-radius: 2px; -} -.jse-key.jse-empty.svelte-2iqnqn::after { - pointer-events: none; - color: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); - content: "key"; -}`);var tYA=wA('
      '),iYA=wA(" ",1),nYA=wA('
      ');function vaA(t,e){mt(e,!0);var A=Ga(()=>an(e.selection)&&br(e.selection)),i=Ga(()=>e.context.onRenderValue({path:e.path,value:e.value,mode:e.context.mode,truncateTextSize:e.context.truncateTextSize,readOnly:e.context.readOnly,enforceString:e.enforceString,isEditing:g(A),parser:e.context.parser,normalization:e.context.normalization,selection:e.selection,searchResultItems:e.searchResultItems,onPatch:e.context.onPatch,onPasteJson:e.context.onPasteJson,onSelect:e.context.onSelect,onFind:e.context.onFind,findNextInside:e.context.findNextInside,focus:e.context.focus})),n=_o();qo(vt(n),17,()=>g(i),or,(o,r)=>{var s=_o(),a=vt(s),c=I=>{var C=nYA(),d=Ga(()=>g(r).action);Us(C,(B,E)=>{var h;return(h=g(d))===null||h===void 0?void 0:h(B,E)},()=>g(r).props),iA(I,C)},l=I=>{var C=_o(),d=Ga(()=>g(r).component);MsA(vt(C),()=>g(d),(B,E)=>{E(B,z1(()=>g(r).props))}),iA(I,C)};LA(a,I=>{CUA(g(r))?I(c):I(l,!1)}),iA(o,s)}),iA(t,n),pt()}var oYA={selecting:!1,selectionAnchor:void 0,selectionAnchorType:void 0,selectionFocus:void 0,dragging:!1};function i_(t){var{json:e,selection:A,deltaY:i,items:n}=t;if(!A)return{operations:void 0,updatedSelection:void 0,offset:0};var o=i<0?function(l){for(var{json:I,items:C,selection:d,deltaY:B}=l,E=X0(I,d),h=C.findIndex(_=>di(_.path,E)),u=()=>{var _;return(_=C[D-1])===null||_===void 0?void 0:_.height},D=h,L=0;u()!==void 0&&Math.abs(B)>L+u()/2;)L+=u(),D-=1;var R=C[D].path,w=D-h;return D!==h&&C[D]!==void 0?{beforePath:R,offset:w}:void 0}({json:e,selection:A,deltaY:i,items:n}):function(l){for(var I,{json:C,items:d,selection:B,deltaY:E}=l,h=P1(C,B),u=d.findIndex(H=>di(H.path,h)),D=0,L=u,R=()=>{var H;return(H=d[L+1])===null||H===void 0?void 0:H.height};R()!==void 0&&Math.abs(E)>D+R()/2;)D+=R(),L+=1;var w=Fi(h),_=Ke(C,w),K=Array.isArray(_)?L:L+1,z=(I=d[K])===null||I===void 0?void 0:I.path,U=L-u;return z?{beforePath:z,offset:U}:{append:!0,offset:U}}({json:e,selection:A,deltaY:i,items:n});if(!o||o.offset===0)return{operations:void 0,updatedSelection:void 0,offset:0};var r=function(l,I,C){if(!I)return[];var d="beforePath"in C?C.beforePath:void 0,B="append"in C?C.append:void 0,E=Fi(et(I)),h=Ke(l,E);if(!(B||d&&Pg(d,E)&&d.length>E.length))return[];var u=X0(l,I),D=P1(l,I),L=hi(u),R=hi(D),w=d?d[E.length]:void 0;if(!xo(h)){if(wo(h)){var _=ts(L),K=ts(R),z=w!==void 0?ts(w):h.length;return YS(K-_+1,z<_?gA=>({op:"move",from:Ct(E.concat(String(_+gA))),path:Ct(E.concat(String(z+gA)))}):()=>({op:"move",from:Ct(E.concat(String(_))),path:Ct(E.concat(String(z)))}))}throw new Error("Cannot create move operations: parent must be an Object or Array")}var U=Object.keys(h),H=U.indexOf(L),q=U.indexOf(R),j=B?U.length:w!==void 0?U.indexOf(w):-1;return H!==-1&&q!==-1&&j!==-1?j>H?[...U.slice(H,q+1),...U.slice(j,U.length)].map(gA=>X1(E,gA)):[...U.slice(j,H),...U.slice(q+1,U.length)].map(gA=>X1(E,gA)):[]}(e,A,o),s=Fi(X0(e,A)),a=Ke(e,s);if(Array.isArray(a)){var c=function(l){var I,C,{items:d,json:B,selection:E,offset:h}=l,u=X0(B,E),D=P1(B,E),L=d.findIndex(K=>di(K.path,u)),R=d.findIndex(K=>di(K.path,D)),w=(I=d[L+h])===null||I===void 0?void 0:I.path,_=(C=d[R+h])===null||C===void 0?void 0:C.path;return _s(w,_)}({items:n,json:e,selection:A,offset:o.offset});return{operations:r,updatedSelection:c,offset:o.offset}}return{operations:r,updatedSelection:void 0,offset:o.offset}}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -button.jse-validation-error.svelte-1a8aobl { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - padding: 0; - margin: 0; - vertical-align: top; - display: inline-flex; - color: var(--jse-error-color, #ee5341); -} - -button.jse-validation-info.svelte-1a8aobl { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - padding: 0; - margin: 0; - vertical-align: top; - display: inline-flex; - color: var(--jse-info-color, #4f91ff); -} - -button.jse-validation-warning.svelte-1a8aobl { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - padding: 0; - margin: 0; - vertical-align: top; - display: inline-flex; - color: var(--jse-warning-color, #fdc539); -}`);var rYA=wA('');function gQ(t,e){mt(e,!1);var A=$(),i=$1("absolute-popup"),n=b(e,"validationError",8),o=b(e,"onExpand",8);fA(()=>k(n()),()=>{y(A,IUA(n())&&n().isChildError?"Contains invalid data":n().message)}),Qn(),Zt();var r=rYA();ji(W(r),{get data(){return g1}}),es(()=>ce("click",r,function(){for(var s,a=arguments.length,c=new Array(a),l=0;lhQ?.(s,a),()=>fe({text:g(A)},i)),De(()=>{var s;return Vt(r,1,"jse-validation-".concat((k(n()),(s=nA(()=>n().severity))!==null&&s!==void 0?s:"")),"svelte-1a8aobl")}),iA(t,r),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-expand.svelte-oawf7x { - width: var(--jse-indent-size, calc(1em + 4px)); - padding: 0; - margin: 0; - border: none; - cursor: pointer; - background: transparent; - color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); - font-size: var(--jse-font-size-mono, 14px); - height: var(--jse-line-height, calc(1em + 4px)); -} -.jse-expand.svelte-oawf7x:hover { - opacity: 0.8; -} - -.jse-meta.svelte-oawf7x, -.jse-separator.svelte-oawf7x, -.jse-index.svelte-oawf7x, -.jse-bracket.svelte-oawf7x { - vertical-align: top; - color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); -} - -.jse-index.svelte-oawf7x { - padding: 0 calc(0.5 * var(--jse-padding, 10px)); -} - -.jse-bracket.svelte-oawf7x { - padding: 0 2px; -} -.jse-bracket.jse-expanded.svelte-oawf7x { - padding-right: var(--jse-padding, 10px); -} - -.jse-identifier.svelte-oawf7x { - vertical-align: top; - position: relative; -} - -.jse-json-node.svelte-oawf7x { - position: relative; - color: var(--jse-text-color, #4d4d4d); -} -.jse-json-node.jse-root.svelte-oawf7x { - min-height: 100%; - padding-bottom: 2px; - box-sizing: border-box; -} -.jse-json-node.jse-root.svelte-oawf7x > .jse-contents-outer:where(.svelte-oawf7x) > .jse-contents:where(.svelte-oawf7x) { - padding-left: 0; -} -.jse-json-node.svelte-oawf7x .jse-props:where(.svelte-oawf7x), -.jse-json-node.svelte-oawf7x .jse-items:where(.svelte-oawf7x) { - position: relative; -} -.jse-json-node.svelte-oawf7x .jse-header-outer:where(.svelte-oawf7x), -.jse-json-node.svelte-oawf7x .jse-footer-outer:where(.svelte-oawf7x) { - display: flex; - margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); -} -.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x) { - position: relative; -} -.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x) .jse-meta:where(.svelte-oawf7x) > .jse-meta-inner:where(.svelte-oawf7x) { - display: flex; - justify-content: center; -} -.jse-json-node.svelte-oawf7x .jse-contents-outer:where(.svelte-oawf7x) { - display: flex; - margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); -} -.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x), -.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x) { - display: flex; - flex-direction: row; - align-items: flex-start; -} -.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x) { - padding-left: var(--jse-indent-size, calc(1em + 4px)); - cursor: var(--jse-contents-cursor, pointer); -} -.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x) .jse-value-outer:where(.svelte-oawf7x) { - display: inline-flex; -} -.jse-json-node.svelte-oawf7x .jse-footer:where(.svelte-oawf7x) { - display: inline-flex; - padding-left: calc(var(--jse-indent-size, calc(1em + 4px)) + 5px); -} -.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x), -.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x), -.jse-json-node.svelte-oawf7x .jse-footer:where(.svelte-oawf7x) { - background: var(--jse-contents-background-color, transparent); -} -.jse-json-node.svelte-oawf7x .jse-insert-selection-area:where(.svelte-oawf7x) { - padding: 0 calc(0.5 * var(--jse-padding, 10px)); - flex: 1; -} -.jse-json-node.svelte-oawf7x .jse-insert-selection-area.jse-inside:where(.svelte-oawf7x) { - display: inline-flex; - align-items: center; -} -.jse-json-node.svelte-oawf7x .jse-insert-selection-area.jse-after:where(.svelte-oawf7x) { - display: flex; - align-items: flex-end; -} -.jse-json-node.svelte-oawf7x .jse-context-menu-pointer-anchor:where(.svelte-oawf7x) { - position: relative; -} -.jse-json-node.svelte-oawf7x .jse-insert-area:where(.svelte-oawf7x) { - display: flex; - position: relative; - z-index: 1; - margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); - max-width: 250px; - min-width: 100px; - height: 0; - margin-right: calc(0.5 * var(--jse-padding, 10px)); - outline: 1px solid; -} -.jse-json-node.svelte-oawf7x .jse-insert-area.jse-hovered:where(.svelte-oawf7x) { - outline-color: var(--jse-context-menu-pointer-hover-background, #b2b2b2); -} -.jse-json-node.svelte-oawf7x .jse-key-outer:where(.svelte-oawf7x) { - position: relative; -} -.jse-json-node.svelte-oawf7x .jse-key-outer:where(.svelte-oawf7x):hover, -.jse-json-node.svelte-oawf7x .jse-value-outer:where(.svelte-oawf7x):hover, -.jse-json-node.svelte-oawf7x .jse-meta:where(.svelte-oawf7x):hover, -.jse-json-node.svelte-oawf7x .jse-footer:where(.svelte-oawf7x):hover { - background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); - cursor: var(--jse-contents-cursor, pointer); -} -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-value-outer, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-meta, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-header, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-contents, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-header, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-contents, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-footer { - background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); - cursor: var(--jse-contents-cursor, pointer); -} -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-value-outer .jse-value-outer, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-value-outer .jse-meta, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-meta .jse-value-outer, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-meta .jse-meta, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-header .jse-value-outer, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-header .jse-meta, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-contents .jse-value-outer, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-contents .jse-meta, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-header .jse-value-outer, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-header .jse-meta, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-contents .jse-value-outer, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-contents .jse-meta, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-footer .jse-value-outer, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-footer .jse-meta { - background: none; -} -.jse-json-node.jse-selected.svelte-oawf7x .jse-header:where(.svelte-oawf7x), -.jse-json-node.jse-selected.svelte-oawf7x .jse-contents:where(.svelte-oawf7x), -.jse-json-node.jse-selected.svelte-oawf7x .jse-footer:where(.svelte-oawf7x) { - background: var(--jse-selection-background-color, #d3d3d3); - cursor: var(--jse-contents-selected-cursor, grab); -} -.jse-json-node.jse-selected.svelte-oawf7x .jse-key-outer:where(.svelte-oawf7x):hover, -.jse-json-node.jse-selected.svelte-oawf7x .jse-value-outer:where(.svelte-oawf7x):hover, -.jse-json-node.jse-selected.svelte-oawf7x .jse-meta:where(.svelte-oawf7x):hover, -.jse-json-node.jse-selected.svelte-oawf7x .jse-footer:where(.svelte-oawf7x):hover { - background: inherit; - cursor: inherit; -} -.jse-json-node.svelte-oawf7x .jse-key-outer.jse-selected-key:where(.svelte-oawf7x) { - background: var(--jse-selection-background-color, #d3d3d3); - cursor: var(--jse-contents-selected-cursor, grab); -} -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-value-outer, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-meta, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-header, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-contents, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-header, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-contents, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-footer { - background: var(--jse-selection-background-color, #d3d3d3); - cursor: var(--jse-contents-selected-cursor, grab); -} -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-value-outer .jse-key-outer:hover, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-meta .jse-key-outer:hover, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-header .jse-key-outer:hover, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-contents .jse-key-outer:hover, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-header .jse-key-outer:hover, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-contents .jse-key-outer:hover, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-footer .jse-key-outer:hover { - background: inherit; - cursor: inherit; -} -.jse-json-node.jse-readonly.svelte-oawf7x { - --jse-contents-selected-cursor: pointer; -} -.jse-json-node.svelte-oawf7x .jse-insert-area.jse-selected:where(.svelte-oawf7x) { - outline-color: var(--jse-context-menu-pointer-background, var(--jse-context-menu-background, #656565)); -}`);var Io=Gy(()=>oYA),sYA=wA('
      :
      '),aYA=wA('
      [
       ',1),cYA=wA('
      [
      ]
      ',1),lYA=wA('
      '),gYA=wA('
      '),IYA=wA('
      '),CYA=wA('
      '),dYA=wA('
      '),BYA=wA(" ",1),EYA=wA('
      '),QYA=wA('
      ',1),hYA=wA('
      ',1),uYA=wA('
      :
      '),fYA=wA('
      {
      '),mYA=wA('
      {
      }
      ',1),pYA=wA('
      '),wYA=wA('
      '),DYA=wA('
      '),yYA=wA('
      '),vYA=wA('
      '),bYA=wA('
      '),MYA=wA('
      ',1),kYA=wA('
      ',1),SYA=wA('
      :
      '),RYA=wA('
      '),xYA=wA('
      '),LYA=wA('
      '),FYA=wA('
      '),NYA=wA('
      ');function x_(t,e){mt(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=b(e,"pointer",9),o=b(e,"value",9),r=b(e,"state",9),s=b(e,"validationErrors",9),a=b(e,"searchResults",9),c=b(e,"selection",9),l=b(e,"context",9),I=b(e,"onDragSelectionStart",9),C=Sr("jsoneditor:JSONNode"),d=$(void 0,!0),B=void 0,E=$(void 0,!0),h=$(void 0,!0),u=$(void 0,!0),D=$(void 0,!0),L=$(void 0,!0),R=$(void 0,!0),w=$(void 0,!0);function _(uA){uA.stopPropagation();var eA=$_(uA);l().onExpand(g(h),!g(u),eA)}function K(){l().onExpand(g(h),!0)}function z(uA,eA){var UA=gf(g(h),Object.keys(o()),uA,eA);return l().onPatch(UA),hi(ks(UA[0].path))}function U(uA){l().onDrag(uA)}function H(uA){Io().selecting&&(Io(Io().selecting=!1),uA.stopPropagation()),l().onDragEnd(),document.removeEventListener("mousemove",U,!0),document.removeEventListener("mouseup",H)}function q(){var uA;return((uA=l().findElement([]))===null||uA===void 0||(uA=uA.getBoundingClientRect())===null||uA===void 0?void 0:uA.top)||0}function j(uA,eA){var UA=q()-uA.initialContentTop;return eA.clientY-uA.initialClientY-UA}function gA(uA){if(!l().readOnly&&c()){var eA=Fi(et(c()));if(di(g(h),eA)){var UA=function(mA,sA){var xt=[];function tt(Y){var P=g(h).concat(Y),X=l().findElement(P);X!==void 0&&xt.push({path:P,height:X.clientHeight})}if(Array.isArray(o())){var de=l().getJson();if(de===void 0)return;var Dt=X0(de,mA),_e=P1(de,mA),Le=parseInt(hi(Dt),10),bt=parseInt(hi(_e),10),Re=sA.find(Y=>Le>=Y.start&&bt<=Y.end);if(!Re)return;var{start:$t,end:x}=Re;FsA($t,Math.min(o().length,x),Y=>tt(String(Y)))}else Object.keys(o()).forEach(tt);return xt}(c(),g(L)||aQ);if(C("dragSelectionStart",{selection:c(),items:UA}),UA){var aA=l().getJson();if(aA!==void 0){var le=X0(aA,c()),SA=UA.findIndex(mA=>di(mA.path,le)),{offset:Ue}=i_({json:aA,selection:l().getSelection(),deltaY:0,items:UA});y(E,{initialTarget:uA.target,initialClientY:uA.clientY,initialContentTop:q(),selectionStartIndex:SA,selectionItemsCount:W1(aA,c()).length,items:UA,offset:Ue,didMoveItems:!1}),Io(Io().dragging=!0),document.addEventListener("mousemove",QA,!0),document.addEventListener("mouseup",BA)}}else C("Cannot drag the current selection (probably spread over multiple sections)")}else I()(uA)}}function QA(uA){if(g(E)){var eA=l().getJson();if(eA===void 0)return;var UA=j(g(E),uA),{offset:aA}=i_({json:eA,selection:l().getSelection(),deltaY:UA,items:g(E).items});aA!==g(E).offset&&(C("drag selection",aA,UA),y(E,fe(fe({},g(E)),{},{offset:aA,didMoveItems:!0})))}}function BA(uA){if(g(E)){var eA=l().getJson();if(eA===void 0)return;var UA=j(g(E),uA),{operations:aA,updatedSelection:le}=i_({json:eA,selection:l().getSelection(),deltaY:UA,items:g(E).items});if(aA)l().onPatch(aA,(mA,sA)=>({state:sA,selection:le??c()}));else if(uA.target===g(E).initialTarget&&!g(E).didMoveItems){var SA=zN(uA.target),Ue=PsA(uA.target);Ue&&l().onSelect(frA(SA,Ue))}y(E,void 0),Io(Io().dragging=!1),document.removeEventListener("mousemove",QA,!0),document.removeEventListener("mouseup",BA)}}function lA(uA){uA.shiftKey||(uA.stopPropagation(),uA.preventDefault(),l().onSelect(r2(g(h))))}function vA(uA){uA.shiftKey||(uA.stopPropagation(),uA.preventDefault(),l().onSelect(t2(g(h))))}function tA(uA){l().onSelect(r2(g(h))),io(),l().onContextMenu(uA)}function cA(uA){l().onSelect(t2(g(h))),io(),l().onContextMenu(uA)}fA(()=>k(n()),()=>{y(h,ks(n()))}),fA(()=>k(n()),()=>{y(A,encodeURIComponent(n()))}),fA(()=>k(r()),()=>{y(u,!!ZC(r())&&r().expanded)}),fA(()=>(k(o()),k(r())),()=>{y(D,zg(o(),r(),[]))}),fA(()=>k(r()),()=>{y(L,Mr(r())?r().visibleSections:void 0)}),fA(()=>k(s()),()=>{var uA;y(R,(uA=s())===null||uA===void 0?void 0:uA.validationError)}),fA(()=>(k(l()),k(c()),g(h)),()=>{y(w,V3(l().getJson(),c(),g(h)))}),fA(()=>g(h),()=>{y(i,g(h).length===0)}),Qn(),Zt(!0);var pA,VA,oe=NYA(),KA=W(oe),CA=uA=>{var eA=hYA(),UA=vt(eA),aA=W(UA),le=W(aA),SA=W(le),Ue=kA=>{ji(kA,{get data(){return mg}})},mA=kA=>{ji(kA,{get data(){return sE}})};LA(SA,kA=>{g(u)?kA(Ue):kA(mA,!1)});var sA=IA(le,2);jo(sA,e,"identifier",{},null);var xt=IA(sA,2),tt=kA=>{iA(kA,sYA())};LA(xt,kA=>{g(i)||kA(tt)});var de=IA(xt,2),Dt=W(de),_e=W(Dt),Le=kA=>{var DA=aYA();ly(IA(vt(DA),2),{children:(gt,Ve)=>{var ZA=Tr();De(()=>{var rt,Ei;return wt(ZA,"".concat((k(o()),(rt=nA(()=>o().length))!==null&&rt!==void 0?rt:""),` - `).concat((k(o()),(Ei=nA(()=>o().length===1?"item":"items"))!==null&&Ei!==void 0?Ei:"")))}),iA(gt,ZA)},$$slots:{default:!0}}),iA(kA,DA)},bt=kA=>{var DA=cYA();ly(IA(vt(DA),2),{onclick:K,children:(gt,Ve)=>{var ZA=Tr();De(()=>{var rt,Ei;return wt(ZA,"".concat((k(o()),(rt=nA(()=>o().length))!==null&&rt!==void 0?rt:""),` - `).concat((k(o()),(Ei=nA(()=>o().length===1?"item":"items"))!==null&&Ei!==void 0?Ei:"")))}),iA(gt,ZA)},$$slots:{default:!0}}),iA(kA,DA)};LA(_e,kA=>{g(u)?kA(Le):kA(bt,!1)});var Re=IA(de,2),$t=kA=>{var DA=lYA();_1(W(DA),{get root(){return g(i)},selected:!0,get onContextMenu(){return k(l()),nA(()=>l().onContextMenu)}}),iA(kA,DA)};LA(Re,kA=>{k(l()),g(w),k(c()),k(an),k(Kn),k(br),k(di),k(et),g(h),nA(()=>!l().readOnly&&g(w)&&c()&&(an(c())||Kn(c()))&&!br(c())&&di(et(c()),g(h)))&&kA($t)});var x=IA(aA,2),Y=kA=>{gQ(kA,{get validationError(){return g(R)},onExpand:K})};LA(x,kA=>{g(R),g(u),nA(()=>g(R)&&(!g(u)||!g(R).isChildError))&&kA(Y)});var P=IA(x,2),X=kA=>{var DA=gYA();ce("click",DA,lA),iA(kA,DA)},bA=kA=>{var DA=IYA();ce("click",DA,vA),iA(kA,DA)};LA(P,kA=>{g(u)?kA(X):kA(bA,!1)});var Be=IA(UA,2),Ee=kA=>{var DA=QYA(),gt=vt(DA),Ve=W(gt),ZA=qi=>{var xe,nn,mi=CYA(),Ot=W(mi),Lt=qA(()=>(g(w),k(fr),k(c()),nA(()=>g(w)&&fr(c()))));_1(Ot,{insert:!0,get selected(){return g(Lt)},onContextMenu:tA}),De((ii,_i)=>{xe=Vt(mi,1,"jse-insert-area jse-inside svelte-oawf7x",null,xe,ii),En(mi,"title",jN),nn=Ll(mi,"",nn,_i)},[()=>({"jse-hovered":g(d)===KC,"jse-selected":g(w)&&fr(c())}),()=>({"--level":(g(h),nA(()=>g(h).length+1))})],qA),iA(qi,mi)};LA(Ve,qi=>{k(l()),g(d),k(KC),g(w),k(fr),k(c()),nA(()=>!l().readOnly&&(g(d)===KC||g(w)&&fr(c())))&&qi(ZA)}),qo(IA(Ve,2),1,()=>g(L)||aQ,or,(qi,xe,nn)=>{var mi=BYA(),Ot=vt(mi);qo(Ot,1,()=>(k(o()),g(xe),g(E),nA(()=>function(_i,Tt,M){var We=Tt.start,ni=Math.min(Tt.end,_i.length),pi=d5(We,ni);return M&&M.offset!==0?$oA(pi,M.selectionStartIndex,M.selectionItemsCount,M.offset).map((dn,mn)=>({index:dn,gutterIndex:mn})):pi.map(dn=>({index:dn,gutterIndex:dn}))}(o(),g(xe),g(E)))),_i=>_i.index,(_i,Tt)=>{var M=_o(),We=qA(()=>(k(Mr),k(s()),g(Tt),nA(()=>Mr(s())?s().items[g(Tt).index]:void 0))),ni=qA(()=>(k(XD),k(l()),k(c()),g(h),g(Tt),nA(()=>XD(l().getJson(),c(),g(h).concat(String(g(Tt).index)))))),pi=vt(M),dn=qA(()=>(k(qu),k(n()),g(Tt),nA(()=>qu(n(),g(Tt).index)))),mn=qA(()=>(k(Mr),k(r()),g(Tt),nA(()=>Mr(r())?r().items[g(Tt).index]:void 0))),Uo=qA(()=>(k(Mr),k(a()),g(Tt),nA(()=>Mr(a())?a().items[g(Tt).index]:void 0)));x_(pi,{get value(){return k(o()),g(Tt),nA(()=>o()[g(Tt).index])},get pointer(){return g(dn)},get state(){return g(mn)},get validationErrors(){return g(We)},get searchResults(){return g(Uo)},get selection(){return g(ni)},get context(){return l()},onDragSelectionStart:gA,$$slots:{identifier:(kn,Wn)=>{var Vo=dYA(),vo=W(Vo),bo=W(vo);De(()=>wt(bo,(g(Tt),nA(()=>g(Tt).gutterIndex)))),iA(kn,Vo)}}}),iA(_i,M)});var Lt=IA(Ot,2),ii=_i=>{var Tt=qA(()=>g(L)||aQ);AYA(_i,{get visibleSections(){return g(Tt)},sectionIndex:nn,get total(){return k(o()),nA(()=>o().length)},get path(){return g(h)},get onExpandSection(){return k(l()),nA(()=>l().onExpandSection)},get selection(){return c()},get context(){return l()}})};LA(Lt,_i=>{g(xe),k(o()),nA(()=>g(xe).end{var xe=EYA();ce("click",xe,vA),iA(qi,xe)};LA(Ei,qi=>{g(i)||qi(tn)}),iA(kA,DA)};LA(Be,kA=>{g(u)&&kA(Ee)}),ce("click",le,_),iA(uA,eA)},TA=(uA,eA)=>{var UA=le=>{var SA=kYA(),Ue=vt(SA),mA=W(Ue),sA=W(mA),xt=W(sA),tt=ZA=>{ji(ZA,{get data(){return mg}})},de=ZA=>{ji(ZA,{get data(){return sE}})};LA(xt,ZA=>{g(u)?ZA(tt):ZA(de,!1)});var Dt=IA(sA,2);jo(Dt,e,"identifier",{},null);var _e=IA(Dt,2),Le=ZA=>{iA(ZA,uYA())};LA(_e,ZA=>{g(i)||ZA(Le)});var bt=IA(_e,2),Re=W(bt),$t=W(Re),x=ZA=>{iA(ZA,fYA())},Y=ZA=>{var rt=mYA();ly(IA(vt(rt),2),{onclick:K,children:(Ei,tn)=>{var qi=Tr();De((xe,nn)=>wt(qi,"".concat(xe??"",` - `).concat(nn??"")),[()=>(k(o()),nA(()=>Object.keys(o()).length)),()=>(k(o()),nA(()=>Object.keys(o()).length===1?"prop":"props"))],qA),iA(Ei,qi)},$$slots:{default:!0}}),iA(ZA,rt)};LA($t,ZA=>{g(u)?ZA(x):ZA(Y,!1)});var P=IA(bt,2),X=ZA=>{var rt=pYA();_1(W(rt),{get root(){return g(i)},selected:!0,get onContextMenu(){return k(l()),nA(()=>l().onContextMenu)}}),iA(ZA,rt)};LA(P,ZA=>{k(l()),g(w),k(c()),k(an),k(Kn),k(br),k(di),k(et),g(h),nA(()=>!l().readOnly&&g(w)&&c()&&(an(c())||Kn(c()))&&!br(c())&&di(et(c()),g(h)))&&ZA(X)});var bA=IA(mA,2),Be=ZA=>{gQ(ZA,{get validationError(){return g(R)},onExpand:K})};LA(bA,ZA=>{g(R),g(u),nA(()=>g(R)&&(!g(u)||!g(R).isChildError))&&ZA(Be)});var Ee=IA(bA,2),kA=ZA=>{var rt=wYA();ce("click",rt,lA),iA(ZA,rt)},DA=(ZA,rt)=>{var Ei=tn=>{var qi=DYA();ce("click",qi,vA),iA(tn,qi)};LA(ZA,tn=>{g(i)||tn(Ei)},rt)};LA(Ee,ZA=>{g(u)?ZA(kA):ZA(DA,!1)});var gt=IA(Ue,2),Ve=ZA=>{var rt=MYA(),Ei=vt(rt),tn=W(Ei),qi=Ot=>{var Lt,ii,_i=yYA(),Tt=W(_i),M=qA(()=>(g(w),k(fr),k(c()),nA(()=>g(w)&&fr(c()))));_1(Tt,{insert:!0,get selected(){return g(M)},onContextMenu:tA}),De((We,ni)=>{Lt=Vt(_i,1,"jse-insert-area jse-inside svelte-oawf7x",null,Lt,We),En(_i,"title",jN),ii=Ll(_i,"",ii,ni)},[()=>({"jse-hovered":g(d)===KC,"jse-selected":g(w)&&fr(c())}),()=>({"--level":(g(h),nA(()=>g(h).length+1))})],qA),iA(Ot,_i)};LA(tn,Ot=>{k(l()),g(d),k(KC),g(w),k(fr),k(c()),nA(()=>!l().readOnly&&(g(d)===KC||g(w)&&fr(c())))&&Ot(qi)}),qo(IA(tn,2),1,()=>(k(o()),g(E),nA(()=>function(Ot,Lt){var ii=Object.keys(Ot);return Lt&&Lt.offset!==0?$oA(ii,Lt.selectionStartIndex,Lt.selectionItemsCount,Lt.offset):ii}(o(),g(E)))),or,(Ot,Lt)=>{var ii=_o(),_i=qA(()=>(k(qu),k(n()),g(Lt),nA(()=>qu(n(),g(Lt))))),Tt=qA(()=>(k(_a),k(a()),g(Lt),nA(()=>_a(a())?a().properties[g(Lt)]:void 0))),M=qA(()=>(k(_a),k(s()),g(Lt),nA(()=>_a(s())?s().properties[g(Lt)]:void 0))),We=qA(()=>(g(h),g(Lt),nA(()=>g(h).concat(g(Lt))))),ni=qA(()=>(k(XD),k(l()),k(c()),k(g(We)),nA(()=>XD(l().getJson(),c(),g(We))))),pi=vt(ii),dn=qA(()=>(k(_a),k(r()),g(Lt),nA(()=>_a(r())?r().properties[g(Lt)]:void 0)));x_(pi,{get value(){return k(o()),g(Lt),nA(()=>o()[g(Lt)])},get pointer(){return g(_i)},get state(){return g(dn)},get validationErrors(){return g(M)},get searchResults(){return g(Tt)},get selection(){return g(ni)},get context(){return l()},onDragSelectionStart:gA,$$slots:{identifier:(mn,Uo)=>{var kn,Wn=vYA(),Vo=W(Wn),vo=qA(()=>(k(brA),k(g(Tt)),nA(()=>brA(g(Tt)))));(function(bo,Yn){mt(Yn,!1);var Mo=$(void 0,!0),ne=$(void 0,!0),wi=b(Yn,"pointer",9),MA=b(Yn,"key",9),me=b(Yn,"selection",9),nt=b(Yn,"searchResultItems",9),Wt=b(Yn,"onUpdateKey",9),Xe=b(Yn,"context",9),oi=$(void 0,!0);function Di(Ai){g(ne)||Xe().readOnly||(Ai.preventDefault(),Xe().onSelect(cG(g(oi))))}function Ut(Ai,Ki){var dt=Wt()(MA(),Xe().normalization.unescapeValue(Ai)),EA=Fi(g(oi)).concat(dt);Xe().onSelect(Ki===O1.nextInside?Ni(EA):o2(EA)),Ki!==O1.self&&Xe().focus()}function cn(){Xe().onSelect(o2(g(oi))),Xe().focus()}fA(()=>k(wi()),()=>{y(oi,ks(wi()))}),fA(()=>(k(me()),g(oi)),()=>{y(Mo,kr(me())&&di(me().path,g(oi)))}),fA(()=>(g(Mo),k(me())),()=>{y(ne,g(Mo)&&br(me()))}),Qn(),Zt(!0);var ft=iYA(),Qi=vt(ft),ot=Ai=>{var Ki=qA(()=>(k(Xe()),k(MA()),nA(()=>Xe().normalization.escapeValue(MA())))),dt=qA(()=>(k(br),k(me()),nA(()=>br(me())?me().initialValue:void 0)));iaA(Ai,{get value(){return g(Ki)},get initialValue(){return g(dt)},label:"Edit key",shortText:!0,onChange:Ut,onCancel:cn,get onFind(){return k(Xe()),nA(()=>Xe().onFind)}})},Mt=Ai=>{var Ki,dt=tYA(),EA=W(dt),HA=Qt=>{var yi=qA(()=>(k(Xe()),k(MA()),nA(()=>Xe().normalization.escapeValue(MA()))));laA(Qt,{get text(){return g(yi)},get searchResultItems(){return nt()}})},ve=Qt=>{var yi=Tr();De(ri=>wt(yi,ri),[()=>(k(BQ),k(Xe()),k(MA()),nA(()=>BQ(Xe().normalization.escapeValue(MA()))))],qA),iA(Qt,yi)};LA(EA,Qt=>{nt()?Qt(HA):Qt(ve,!1)}),De(Qt=>Ki=Vt(dt,1,"jse-key svelte-2iqnqn",null,Ki,Qt),[()=>({"jse-empty":MA()===""})],qA),ce("dblclick",dt,Di),iA(Ai,dt)};LA(Qi,Ai=>{k(Xe()),g(ne),nA(()=>!Xe().readOnly&&g(ne))?Ai(ot):Ai(Mt,!1)});var on=IA(Qi,2),hn=Ai=>{_1(Ai,{selected:!0,get onContextMenu(){return k(Xe()),nA(()=>Xe().onContextMenu)}})};LA(on,Ai=>{k(Xe()),g(Mo),g(ne),nA(()=>!Xe().readOnly&&g(Mo)&&!g(ne))&&Ai(hn)}),iA(bo,ft),pt()})(Vo,{get pointer(){return g(_i)},get key(){return g(Lt)},get selection(){return g(ni)},get searchResultItems(){return g(vo)},get context(){return l()},onUpdateKey:z}),De(bo=>kn=Vt(Wn,1,"jse-key-outer svelte-oawf7x",null,kn,bo),[()=>({"jse-selected-key":kr(g(ni))&&di(g(ni).path,g(We))})],qA),iA(mn,Wn)}}}),iA(Ot,ii)});var xe=IA(Ei,2),nn=IA(W(xe),2),mi=Ot=>{var Lt=bYA();ce("click",Lt,vA),iA(Ot,Lt)};LA(nn,Ot=>{g(i)||Ot(mi)}),iA(ZA,rt)};LA(gt,ZA=>{g(u)&&ZA(Ve)}),ce("click",sA,_),iA(le,SA)},aA=le=>{var SA=LYA(),Ue=W(SA),mA=W(Ue);jo(mA,e,"identifier",{},null);var sA=IA(mA,2),xt=P=>{iA(P,SYA())};LA(sA,P=>{g(i)||P(xt)});var tt=IA(sA,2),de=W(tt),Dt=qA(()=>g(w)?c():void 0),_e=qA(()=>(k(MrA),k(a()),nA(()=>MrA(a()))));vaA(de,{get path(){return g(h)},get value(){return o()},get enforceString(){return g(D)},get selection(){return g(Dt)},get searchResultItems(){return g(_e)},get context(){return l()}});var Le=IA(tt,2),bt=P=>{var X=RYA();_1(W(X),{get root(){return g(i)},selected:!0,get onContextMenu(){return k(l()),nA(()=>l().onContextMenu)}}),iA(P,X)};LA(Le,P=>{k(l()),g(w),k(c()),k(an),k(Kn),k(br),k(di),k(et),g(h),nA(()=>!l().readOnly&&g(w)&&c()&&(an(c())||Kn(c()))&&!br(c())&&di(et(c()),g(h)))&&P(bt)});var Re=IA(Ue,2),$t=P=>{gQ(P,{get validationError(){return g(R)},onExpand:K})};LA(Re,P=>{g(R)&&P($t)});var x=IA(Re,2),Y=P=>{var X=xYA();ce("click",X,vA),iA(P,X)};LA(x,P=>{g(i)||P(Y)}),iA(le,SA)};LA(uA,le=>{k(Cn),k(o()),nA(()=>Cn(o()))?le(UA):le(aA,!1)},eA)};LA(KA,uA=>{k(o()),nA(()=>Array.isArray(o()))?uA(CA):uA(TA,!1)});var Ze=IA(KA,2),He=uA=>{var eA,UA=FYA(),aA=W(UA),le=qA(()=>(g(w),k(Ua),k(c()),nA(()=>g(w)&&Ua(c()))));_1(aA,{insert:!0,get selected(){return g(le)},onContextMenu:cA}),De(SA=>{eA=Vt(UA,1,"jse-insert-area jse-after svelte-oawf7x",null,eA,SA),En(UA,"title",jN)},[()=>({"jse-hovered":g(d)===ZD,"jse-selected":g(w)&&Ua(c())})],qA),iA(uA,UA)};LA(Ze,uA=>{k(l()),g(d),k(ZD),g(w),k(Ua),k(c()),nA(()=>!l().readOnly&&(g(d)===ZD||g(w)&&Ua(c())))&&uA(He)}),De((uA,eA,UA)=>{pA=Vt(oe,1,uA,"svelte-oawf7x",pA,eA),En(oe,"data-path",g(A)),En(oe,"aria-selected",g(w)),VA=Ll(oe,"",VA,UA)},[()=>Z1((k(Kl),g(u),k(l()),g(h),k(o()),nA(()=>Kl("jse-json-node",{"jse-expanded":g(u)},l().onClassName(g(h),o()))))),()=>({"jse-root":g(i),"jse-selected":g(w)&&Kn(c()),"jse-selected-value":g(w)&&an(c()),"jse-readonly":l().readOnly,"jse-hovered":g(d)===irA}),()=>({"--level":(g(h),nA(()=>g(h).length))})],qA),ce("mousedown",oe,function(uA){if((uA.buttons===1||uA.buttons===2)&&!((eA=uA.target).nodeName==="DIV"&&eA.contentEditable==="true"||uA.buttons===1&&zsA(uA.target,"BUTTON"))){var eA;uA.stopPropagation(),uA.preventDefault(),l().focus(),document.addEventListener("mousemove",U,!0),document.addEventListener("mouseup",H);var UA=zN(uA.target),aA=l().getJson(),le=l().getDocumentState();if(!c()||UA===Ln.after||UA===Ln.inside||c().type!==UA&&c().type!==Ln.multi||!V3(aA,c(),g(h)))if(Io(Io().selecting=!0),Io(Io().selectionAnchor=g(h)),Io(Io().selectionAnchorType=UA),Io(Io().selectionFocus=g(h)),uA.shiftKey){var SA=l().getSelection();SA&&l().onSelect(_s(OC(SA),g(h)))}else if(UA===Ln.multi)if(g(i)&&uA.target.hasAttribute("data-path")){var Ue=hi(XsA(o(),le));l().onSelect(D_(Ue))}else l().onSelect(_s(g(h),g(h)));else aA!==void 0&&l().onSelect(frA(UA,g(h)));else uA.button===0&&I()(uA)}}),ce("mousemove",oe,function(uA){if(Io().selecting){uA.preventDefault(),uA.stopPropagation(),Io().selectionFocus===void 0&&window.getSelection&&window.getSelection().empty();var eA=zN(uA.target);di(g(h),Io().selectionFocus)&&eA===Io().selectionAnchorType||(Io(Io().selectionFocus=g(h)),Io(Io().selectionAnchorType=eA),l().onSelect(_s(Io().selectionAnchor||Io().selectionFocus,Io().selectionFocus)))}}),ce("mouseover",oe,function(uA){Io().selecting||Io().dragging||(uA.stopPropagation(),Y1(uA.target,"data-type","selectable-value")?y(d,irA):Y1(uA.target,"data-type","selectable-key")?y(d,void 0):Y1(uA.target,"data-type","insert-selection-area-inside")?y(d,KC):Y1(uA.target,"data-type","insert-selection-area-after")&&y(d,ZD),clearTimeout(B))}),ce("mouseout",oe,function(uA){uA.stopPropagation(),B=window.setTimeout(()=>y(d,void 0))}),iA(t,oe),pt()}var _YA={prefix:"fas",iconName:"jsoneditor-expand",icon:[512,512,[],"","M 0,448 V 512 h 512 v -64 z M 0,0 V 64 H 512 V 0 Z M 256,96 128,224 h 256 z M 256,416 384,288 H 128 Z"]},GYA={prefix:"fas",iconName:"jsoneditor-collapse",icon:[512,512,[],"","m 0,224 v 64 h 512 v -64 z M 256,192 384,64 H 128 Z M 256,320 128,448 h 256 z"]},YrA={prefix:"fas",iconName:"jsoneditor-format",icon:[512,512,[],"","M 0,32 v 64 h 416 v -64 z M 160,160 v 64 h 352 v -64 z M 160,288 v 64 h 288 v -64 z M 0,416 v 64 h 320 v -64 z"]},UYA={prefix:"fas",iconName:"jsoneditor-compact",icon:[512,512,[],"","M 0,32 v 64 h 512 v -64 z M 0,160 v 64 h 512 v -64 z M 0,288 v 64 h 352 v -64 z"]};function KYA(t,e){t.stopPropagation(),e.onCreateObject()}function YYA(t,e){t.stopPropagation(),e.onCreateArray()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-welcome.svelte-1eamlhk { - flex: 1; - overflow: auto; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - display: flex; - flex-direction: column; - align-items: center; - border-left: var(--jse-main-border, 1px solid #d7d7d7); - border-right: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-welcome.svelte-1eamlhk:last-child { - border-bottom: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-welcome.svelte-1eamlhk .jse-space.jse-before:where(.svelte-1eamlhk) { - flex: 1; -} -.jse-welcome.svelte-1eamlhk .jse-space.jse-after:where(.svelte-1eamlhk) { - flex: 2; -} -.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) { - display: flex; - flex-direction: column; - max-width: 300px; - margin: 2em var(--jse-padding, 10px); - gap: var(--jse-padding, 10px); -} -.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) .jse-welcome-info:where(.svelte-1eamlhk) { - color: var(--jse-panel-color-readonly, #b2b2b2); -} -.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) button:where(.svelte-1eamlhk) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); - color: var(--jse-button-primary-color, #fff); - padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); - border-radius: 3px; -} -.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) button:where(.svelte-1eamlhk):hover { - background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); -} -.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) button:where(.svelte-1eamlhk):disabled { - background: var(--jse-button-primary-background-disabled, #9d9d9d); -}`);var JYA=(t,e)=>e.onClick(),TYA=wA('
      You can paste clipboard data using Ctrl+V, or use the following options:
      ',1),HYA=wA('
      Empty document
      ');function L_(t,e){var A=typeof t=="string"?t.toLowerCase():t,i=typeof e=="string"?e.toLowerCase():e;return(0,OrA.default)(A,i)}function baA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,n=Ke(t,e);if(wo(n)){if(A===void 0)throw new Error("Cannot sort: no property selected by which to sort the array");return function(o){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,c=function(I,C){var d={boolean:0,number:1,string:2,undefined:4},B=3;return function(E,h){var u=Ke(E,I),D=Ke(h,I);if(typeof u!=typeof D){var L,R,w=(L=d[typeof u])!==null&&L!==void 0?L:B,_=(R=d[typeof D])!==null&&R!==void 0?R:B;return w>_?C:w<_?-C:0}return typeof u=="number"||typeof u=="boolean"?u>D?C:u1&&arguments[1]!==void 0?arguments[1]:[],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,a=Ke(o,r),c=Object.keys(a).slice();c.sort((I,C)=>s*L_(I,C));var l={};return c.forEach(I=>l[I]=a[I]),[{op:"replace",path:Ct(r),value:l}]}(t,e,i);throw new Error("Cannot sort: no array or object")}of(["click"]);Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-navigation-bar-dropdown.svelte-2nnd2m { - position: absolute; - top: 100%; - left: 0; - z-index: 3; - background: var(--jse-navigation-bar-background, var(--jse-background-color, #fff)); - color: var(--jse-navigation-bar-dropdown-color, #656565); - box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); - display: flex; - flex-direction: column; - max-height: 300px; - overflow: auto; - min-width: 80px; -} -.jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item:where(.svelte-2nnd2m) { - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - border: none; - background: transparent; - color: inherit; - cursor: pointer; - outline: none; - text-align: left; - white-space: nowrap; - box-sizing: border-box; - padding: calc(0.5 * var(--jse-padding, 10px)) 36px; -} -.jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item:where(.svelte-2nnd2m):focus, .jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item:where(.svelte-2nnd2m):hover { - background: var(--jse-navigation-bar-background-highlight, #e5e5e5); -} -.jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item.jse-selected:where(.svelte-2nnd2m) { - background: var(--jse-navigation-bar-dropdown-color, #656565); - color: var(--jse-navigation-bar-background, var(--jse-background-color, #fff)); -}`);var zYA=wA(''),OYA=wA(''),PYA=wA('
      ');function jYA(t,e){mt(e,!1);var A=b(e,"items",9),i=b(e,"selectedItem",9),n=b(e,"onSelect",9);Zt(!0);var o=PYA(),r=W(o);qo(r,1,()=>(k(Ey),k(A()),nA(()=>Ey(A(),100))),c=>c,(c,l)=>{var I,C=zYA(),d=W(C);De((B,E,h)=>{I=Vt(C,1,"jse-navigation-bar-dropdown-item svelte-2nnd2m",null,I,B),En(C,"title",E),wt(d,h)},[()=>({"jse-selected":g(l)===i()}),()=>(g(l),nA(()=>g(l).toString())),()=>(k(V0),g(l),nA(()=>V0(g(l).toString(),30)))],qA),ce("click",C,j0(()=>n()(g(l)))),iA(c,C)});var s=IA(r,2),a=c=>{var l=OYA();En(l,"title","Limited to 100 items"),iA(c,l)};LA(s,c=>{k(A()),nA(()=>A().length>100)&&c(a)}),iA(t,o),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-navigation-bar-item.svelte-752ro1 { - position: relative; - display: flex; -} -.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button:where(.svelte-752ro1) { - font-family: inherit; - font-size: inherit; - padding: calc(0.5 * var(--jse-padding, 10px)) 2px; - border: none; - background: transparent; - color: inherit; - cursor: pointer; - outline: none; - min-width: 2em; - white-space: nowrap; -} -.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button:where(.svelte-752ro1):focus, .jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button:where(.svelte-752ro1):hover { - background: var(--jse-panel-button-background-highlight, #e0e0e0); - color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); -} -.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button.jse-navigation-bar-arrow:where(.svelte-752ro1) { - padding: 2px var(--jse-padding, 10px) 0; -} -.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button.jse-navigation-bar-arrow.jse-open:where(.svelte-752ro1) { - background: var(--jse-navigation-bar-background, var(--jse-background-color, #fff)); - color: var(--jse-navigation-bar-dropdown-color, #656565); -} -.jse-navigation-bar-item.svelte-752ro1:last-child { - padding-right: var(--jse-padding, 10px); -}`);var qYA=wA(''),VYA=wA('
      ');function JrA(t,e){mt(e,!1);var A,i=$(void 0,!0),n=$(void 0,!0),{openAbsolutePopup:o,closeAbsolutePopup:r}=$1("absolute-popup"),s=b(e,"path",9),a=b(e,"index",9),c=b(e,"onSelect",9),l=b(e,"getItems",9),I=$(void 0,!0),C=$(!1,!0);function d(L){r(A),c()(g(i).concat(L))}fA(()=>(k(s()),k(a())),()=>{y(i,s().slice(0,a()))}),fA(()=>(k(s()),k(a())),()=>{y(n,s()[a()])}),Qn(),Zt(!0);var B,E=VYA(),h=W(E);ji(W(h),{get data(){return qS}});var u=IA(h,2),D=L=>{var R=qYA(),w=W(R);De(()=>wt(w,g(n))),ce("click",R,()=>d(g(n))),iA(L,R)};LA(u,L=>{g(n)!==void 0&&L(D)}),Co(E,L=>y(I,L),()=>g(I)),De(L=>B=Vt(h,1,"jse-navigation-bar-button jse-navigation-bar-arrow svelte-752ro1",null,B,L),[()=>({"jse-open":g(C)})],qA),ce("click",h,function(){if(g(I)){y(C,!0);var L={items:l()(g(i)),selectedItem:g(n),onSelect:d};A=o(jYA,L,{anchor:g(I),closeOnOuterClick:!0,onClose:()=>{y(C,!1)}})}}),iA(t,E),pt()}function BG(t){var e,A;if(navigator.clipboard)return navigator.clipboard.writeText(t);if((e=(A=document).queryCommandSupported)!==null&&e!==void 0&&e.call(A,"copy")){var i=document.createElement("textarea");i.value=t,i.style.position="fixed",i.style.opacity="0",document.body.appendChild(i),i.select();try{document.execCommand("copy")}catch(n){console.error(n)}finally{document.body.removeChild(i)}return Promise.resolve()}return console.error("Copy failed."),Promise.resolve()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-navigation-bar-path-editor.svelte-zc2wx7 { - flex: 1; - display: flex; - border: var(--jse-edit-outline, 2px solid #656565); - background: var(--jse-background-color, #fff); -} -.jse-navigation-bar-path-editor.svelte-zc2wx7 input.jse-navigation-bar-text:where(.svelte-zc2wx7) { - flex: 1; - font-family: inherit; - font-size: inherit; - padding: 0 5px 1px; - background: var(--jse-background-color, #fff); - color: var(--jse-text-color, #4d4d4d); - border: none; - outline: none; -} -.jse-navigation-bar-path-editor.svelte-zc2wx7 button:where(.svelte-zc2wx7) { - border: none; - background: var(--jse-background-color, #fff); - cursor: pointer; - font-family: inherit; - font-size: 80%; - color: inherit; -} -.jse-navigation-bar-path-editor.svelte-zc2wx7 button.jse-navigation-bar-copy.copied:where(.svelte-zc2wx7) { - color: var(--message-success-background, #9ac45d); -} -.jse-navigation-bar-path-editor.svelte-zc2wx7 button.jse-navigation-bar-validation-error:where(.svelte-zc2wx7) { - color: var(--jse-error-color, #ee5341); -} -.jse-navigation-bar-path-editor.error.svelte-zc2wx7 { - border-color: var(--jse-error-color, #ee5341); -} -.jse-navigation-bar-path-editor.error.svelte-zc2wx7 input.jse-navigation-bar-text:where(.svelte-zc2wx7) { - color: var(--jse-error-color, #ee5341); -} -.jse-navigation-bar-path-editor.svelte-zc2wx7 .jse-copied-text:where(.svelte-zc2wx7) { - background: var(--message-success-background, #9ac45d); - color: var(--jse-message-success-color, #fff); - position: relative; - margin: 2px; - padding: 0 5px; - border-radius: 3px; -}`);var ZYA=wA(''),WYA=wA('
      Copied!
      '),XYA=wA('
      ');function $YA(t,e){mt(e,!1);var A=$(),i=$1("absolute-popup"),n=b(e,"path",8),o=b(e,"pathParser",8),r=b(e,"onChange",8),s=b(e,"onClose",8),a=b(e,"onError",8),c=b(e,"pathExists",8),l=$(),I=$(),C=$(!1),d=void 0,B=$(!1);function E(){g(l).focus()}function h(H){try{var q=o().parse(H);return function(j){if(!c()(j))throw new Error("Path does not exist in current document")}(q),{path:q,error:void 0}}catch(j){return{path:void 0,error:j}}}hs(()=>{E()}),qc(()=>{clearTimeout(d)}),fA(()=>(k(o()),k(n())),()=>{y(I,o().stringify(n()))}),fA(()=>(g(C),g(I)),()=>{y(A,g(C)?h(g(I)).error:void 0)}),Qn(),Zt();var u,D=XYA(),L=W(D);Co(L,H=>y(l,H),()=>g(l));var R=IA(L,2),w=H=>{var q=ZYA();ji(W(q),{get data(){return g1}}),Us(q,(j,gA)=>hQ?.(j,gA),()=>fe({text:String(g(A)||"")},i)),iA(H,q)};LA(R,H=>{g(A)&&H(w)});var _=IA(R,2),K=H=>{iA(H,WYA())};LA(_,H=>{g(B)&&H(K)});var z,U=IA(_,2);ji(W(U),{get data(){return F0}}),De((H,q)=>{u=Vt(D,1,"jse-navigation-bar-path-editor svelte-zc2wx7",null,u,H),VC(L,g(I)),z=Vt(U,1,"jse-navigation-bar-copy svelte-zc2wx7",null,z,q)},[()=>({error:g(A)}),()=>({copied:g(B)})],qA),ce("keydown",L,j0(function(H){var q=n2(H);if(q==="Escape"&&(H.preventDefault(),s()()),q==="Enter"){H.preventDefault(),y(C,!0);var j=h(g(I));j.path!==void 0?r()(j.path):a()(j.error)}})),ce("input",L,function(H){y(I,H.currentTarget.value)}),ce("click",U,function(){BG(g(I)),y(B,!0),d=window.setTimeout(()=>y(B,!1),1e3),E()}),iA(t,D),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-navigation-bar.svelte-xs03gj { - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - background: var(--jse-panel-background, #ebebeb); - color: var(--jse-panel-button-color, inherit); - padding: 0; - margin: 0; - display: flex; - overflow: auto; - border-left: var(--jse-main-border, 1px solid #d7d7d7); - border-right: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj) { - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); - color: var(--jse-panel-color-readonly, #b2b2b2); - background: transparent; - border: none; - display: flex; - cursor: pointer; - outline: none; - align-items: center; -} -.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit.flex:where(.svelte-xs03gj) { - flex: 1; -} -.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj):focus, .jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj):hover, .jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit.editing:where(.svelte-xs03gj) { - background: var(--jse-panel-button-background-highlight, #e0e0e0); - color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); - transition: color 0.2s ease-in, background 0.2s ease-in; -} -.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj) .jse-navigation-bar-space:where(.svelte-xs03gj) { - flex: 1; - text-align: left; -}`);var AJA=wA(" ",1),eJA=wA('
      ');function tJA(t,e){mt(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=Sr("jsoneditor:NavigationBar"),o=b(e,"json",9),r=b(e,"selection",9),s=b(e,"onSelect",9),a=b(e,"onError",9),c=b(e,"pathParser",9),l=$(void 0,!0),I=$(!1,!0);function C(q){n("get items for path",q);var j=Ke(o(),q);if(Array.isArray(j))return d5(0,j.length).map(String);if(Cn(j)){var gA=Object.keys(j).slice(0);return gA.sort(L_),gA}return[]}function d(q){return Ms(o(),q)}function B(q){n("select path",JSON.stringify(q)),s()(_s(q,q))}function E(){y(I,!1)}function h(q){E(),B(q)}fA(()=>(k(r()),et),()=>{y(A,r()?et(r()):[])}),fA(()=>(k(o()),g(A)),()=>{y(i,No(Ke(o(),g(A))))}),fA(()=>g(A),()=>{g(A),setTimeout(()=>{if(g(l)&&g(l).scrollTo){var q=g(l).scrollWidth-g(l).clientWidth;q>0&&(n("scrollTo ",q),g(l).scrollTo({left:q,behavior:"smooth"}))}})}),Qn(),Zt(!0);var u=eJA(),D=W(u),L=q=>{var j=AJA(),gA=vt(j);qo(gA,1,()=>g(A),or,(lA,vA,tA)=>{JrA(lA,{getItems:C,get path(){return g(A)},index:tA,onSelect:B})});var QA=IA(gA,2),BA=lA=>{JrA(lA,{getItems:C,get path(){return g(A)},get index(){return g(A),nA(()=>g(A).length)},onSelect:B})};LA(QA,lA=>{g(i)&&lA(BA)}),iA(q,j)},R=q=>{$YA(q,{get path(){return g(A)},onClose:E,onChange:h,get onError(){return a()},pathExists:d,get pathParser(){return c()}})};LA(D,q=>{g(I)?q(R,!1):q(L)});var w,_=IA(D,2),K=W(_),z=W(K),U=IA(K,2),H=qA(()=>g(I)?jW:UW);ji(U,{get data(){return g(H)}}),Co(u,q=>y(l,q),()=>g(l)),De((q,j)=>{w=Vt(_,1,"jse-navigation-bar-edit svelte-xs03gj",null,w,q),En(_,"title",g(I)?"Cancel editing the selected path":"Edit the selected path"),wt(z,j)},[()=>({flex:!g(I),editing:g(I)}),()=>(k(No),k(o()),g(I),nA(()=>No(o())||g(I)?"\xA0":"Navigation bar"))],qA),ce("click",_,function(){y(I,!g(I))}),iA(t,u),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-search-box.svelte-1mxl2uo { - border: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); - border-radius: 3px; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - background: var(--jse-panel-background, #ebebeb); - color: var(--jse-panel-color-readonly, #b2b2b2); - box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); - display: inline-block; - width: 400px; - max-width: 100%; - overflow: auto; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) { - display: flex; - align-items: stretch; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo), -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) input:where(.svelte-1mxl2uo) { - font-family: inherit; - font-size: inherit; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo) { - display: block; - text-align: center; - border: none; - padding: 0 5px; - margin: 0; - cursor: pointer; - color: var(--jse-panel-button-color, inherit); - background: var(--jse-panel-button-background, transparent); -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo):hover { - color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); - background: var(--jse-panel-button-background-highlight, #e0e0e0); -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) input:where(.svelte-1mxl2uo) { - color: var(--jse-panel-color, var(--jse-text-color, #4d4d4d)); - border: var(--jse-input-border, 1px solid #d8dbdf); - border-radius: 3px; - background: var(--jse-input-background, var(--jse-background-color, #fff)); - height: 28px; - padding: 0 5px; - margin: 0; - flex: 1; - width: 0; - min-width: 50px; - outline: none; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-replace-toggle:where(.svelte-1mxl2uo) { - padding: var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)); - min-width: 20px; - background: var(--jse-panel-button-background-highlight, #e0e0e0); -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) { - flex: 1; - display: flex; - flex-direction: column; - padding: calc(0.5 * var(--jse-padding, 10px)); - gap: calc(0.5 * var(--jse-padding, 10px)); -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) { - flex: 1; - display: flex; - align-items: center; - position: relative; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) .jse-search-icon:where(.svelte-1mxl2uo) { - color: inherit; - cursor: inherit; - background: inherit; - width: 32px; - text-align: center; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) label.jse-search-input-label:where(.svelte-1mxl2uo) { - flex: 1; - display: flex; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) .jse-search-count:where(.svelte-1mxl2uo) { - color: inherit; - font-size: 80%; - visibility: hidden; - padding: 0 5px; - min-width: 36px; - text-align: center; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) .jse-search-count.jse-visible:where(.svelte-1mxl2uo) { - visibility: visible; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-replace-section:where(.svelte-1mxl2uo) { - flex: 1; - display: flex; - padding-left: 32px; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-replace-section:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo) { - width: auto; -}`);var iJA=wA(''),nJA=wA('
      '),oJA=wA('');function MaA(t,e){mt(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=Sr("jsoneditor:SearchBox"),r=b(e,"json",9),s=b(e,"documentState",9),a=b(e,"parser",9),c=b(e,"showSearch",9),l=b(e,"showReplace",13),I=b(e,"readOnly",9),C=b(e,"columns",9),d=b(e,"onSearch",9),B=b(e,"onFocus",9),E=b(e,"onPatch",9),h=b(e,"onClose",9),u=$("",!0),D="",L=$("",!0),R=$(!1,!0),w=$(void 0,!0),_=oE(function(SA){return TA.apply(this,arguments)},300),K=oE(function(SA){return Ze.apply(this,arguments)},300);function z(){l(!l()&&!I())}function U(SA){SA.stopPropagation();var Ue=n2(SA);Ue==="Enter"&&(SA.preventDefault(),g(u)!==D?_.flush():tA()),Ue==="Shift+Enter"&&(SA.preventDefault(),pA()),Ue==="Ctrl+Enter"&&(SA.preventDefault(),l()?gA():tA()),Ue==="Ctrl+H"&&(SA.preventDefault(),z()),Ue==="Escape"&&(SA.preventDefault(),eA())}function H(SA){n2(SA)==="Enter"&&(SA.preventDefault(),SA.stopPropagation(),gA())}function q(){return j.apply(this,arguments)}function j(){return(j=Yt(function*(){io(),yield _.flush()})).apply(this,arguments)}function gA(){return QA.apply(this,arguments)}function QA(){return(QA=Yt(function*(){var SA;if(!I()){var Ue=(SA=g(w))===null||SA===void 0?void 0:SA.activeItem;if(o("handleReplace",{replaceText:g(L),activeItem:Ue}),g(w)&&Ue&&r()!==void 0){y(w,fe(fe({},prA(g(w))),{},{activeIndex:g(i)}));var{operations:mA,newSelection:sA}=QUA(r(),s(),g(L),Ue,a());E()(mA,(xt,tt)=>({state:tt,selection:sA})),io(),yield K.flush(),yield oe()}}})).apply(this,arguments)}function BA(){return lA.apply(this,arguments)}function lA(){return(lA=Yt(function*(){if(!I()){o("handleReplaceAll",{text:g(u),replaceText:g(L)});var{operations:SA,newSelection:Ue}=function(mA,sA,xt,tt,de){for(var Dt=wrA(xt,mA,{maxResults:1/0}),_e=[],Le=0;LeY.field!==P.field?Y.field===Nl.key?1:-1:P.path.length-Y.path.length);var $t,x=[];return _e.forEach(Y=>{var{field:P,path:X,items:bA}=Y;if(P===Nl.key){var Be=Fi(X),Ee=Ke(mA,Be),kA=hi(X),DA=gf(Be,Object.keys(Ee),kA,yrA(kA,tt,bA));x=x.concat(DA),$t=QQ(mA,DA)}else{if(P!==Nl.value)throw new Error("Cannot replace: unknown type of search result field ".concat(P));var gt=Ke(mA,X);if(gt===void 0)throw new Error("Cannot replace: path not found ".concat(Ct(X)));var Ve=typeof gt=="string"?gt:String(gt),ZA=zg(mA,sA,X),rt=yrA(Ve,tt,bA),Ei=[{op:"replace",path:Ct(X),value:ZA?rt:DQ(rt,de)}];x=x.concat(Ei),$t=QQ(mA,Ei)}}),{operations:x,newSelection:$t}}(r(),s(),g(u),g(L),a());E()(SA,(mA,sA)=>({state:sA,selection:Ue})),yield oe()}})).apply(this,arguments)}function vA(SA){SA.select()}function tA(){return cA.apply(this,arguments)}function cA(){return(cA=Yt(function*(){y(w,g(w)?prA(g(w)):void 0),yield oe()})).apply(this,arguments)}function pA(){return VA.apply(this,arguments)}function VA(){return VA=Yt(function*(){y(w,g(w)?function(SA){var Ue=SA.activeIndex>0?SA.activeIndex-1:SA.items.length-1,mA=SA.items[Ue],sA=SA.items.map((xt,tt)=>fe(fe({},xt),{},{active:tt===Ue}));return fe(fe({},SA),{},{items:sA,activeItem:mA,activeIndex:Ue})}(g(w)):void 0),yield oe()}),VA.apply(this,arguments)}function oe(){return KA.apply(this,arguments)}function KA(){return(KA=Yt(function*(){var SA;o("handleFocus",g(w));var Ue=(SA=g(w))===null||SA===void 0?void 0:SA.activeItem;Ue&&r()!==void 0&&(yield B()(Ue.path,Ue.resultIndex))})).apply(this,arguments)}function CA(){return CA=Yt(function*(SA){yield He(SA,g(u),r())}),CA.apply(this,arguments)}function TA(){return TA=Yt(function*(SA){yield He(c(),SA,r()),yield oe()}),TA.apply(this,arguments)}function Ze(){return Ze=Yt(function*(SA){yield He(c(),g(u),SA)}),Ze.apply(this,arguments)}function He(SA,Ue,mA){return uA.apply(this,arguments)}function uA(){return uA=Yt(function*(SA,Ue,mA){return SA?(o("applySearch",{showSearch:SA,text:Ue}),Ue===""?(o("clearing search result"),g(w)!==void 0&&y(w,void 0),Promise.resolve()):(D=Ue,y(R,!0),new Promise(sA=>{setTimeout(()=>{var xt=wrA(Ue,mA,{maxResults:ON,columns:C()});y(w,function(tt,de){var Dt=de!=null&&de.activeItem?vrA(de.activeItem):void 0,_e=tt.findIndex(Re=>di(Dt,vrA(Re))),Le=_e!==-1?_e:de?.activeIndex!==void 0&&de?.activeIndex0?0:-1,bt=tt.map((Re,$t)=>fe(fe({resultIndex:$t},Re),{},{active:$t===Le}));return{items:bt,activeItem:bt[Le],activeIndex:Le}}(xt,g(w))),y(R,!1),sA()})}))):(g(w)&&y(w,void 0),Promise.resolve())}),uA.apply(this,arguments)}function eA(){o("handleClose"),_.cancel(),K.cancel(),He(!1,g(u),r()),h()()}fA(()=>g(w),()=>{var SA;y(A,((SA=g(w))===null||SA===void 0||(SA=SA.items)===null||SA===void 0?void 0:SA.length)||0)}),fA(()=>g(w),()=>{var SA;y(i,((SA=g(w))===null||SA===void 0?void 0:SA.activeIndex)||0)}),fA(()=>(g(A),ON),()=>{y(n,g(A)>=ON?"".concat(999,"+"):String(g(A)))}),fA(()=>(k(d()),g(w)),()=>{d()(g(w))}),fA(()=>k(c()),()=>{(function(SA){CA.apply(this,arguments)})(c())}),fA(()=>g(u),()=>{_(g(u))}),fA(()=>k(r()),()=>{K(r())}),Qn(),Zt(!0);var UA=_o(),aA=vt(UA),le=SA=>{var Ue=oJA(),mA=W(Ue),sA=W(mA),xt=kA=>{var DA=iJA(),gt=W(DA),Ve=qA(()=>l()?mg:sE);ji(gt,{get data(){return g(Ve)}}),ce("click",DA,z),iA(kA,DA)};LA(sA,kA=>{I()||kA(xt)});var tt=W(IA(sA,2)),de=W(tt),Dt=W(de),_e=kA=>{ji(kA,{get data(){return NW},spin:!0})},Le=kA=>{ji(kA,{get data(){return g4}})};LA(Dt,kA=>{g(R)?kA(_e):kA(Le,!1)});var bt=IA(de,2),Re=W(bt);es(()=>By(Re,()=>g(u),kA=>y(u,kA))),Us(Re,kA=>vA?.(kA)),es(()=>ce("paste",Re,q));var $t,x=IA(bt,2),Y=W(x),P=IA(x,2);ji(W(P),{get data(){return OW}});var X=IA(P,2);ji(W(X),{get data(){return KW}});var bA=IA(X,2);ji(W(bA),{get data(){return I4}});var Be=IA(tt,2),Ee=kA=>{var DA=nJA(),gt=W(DA),Ve=IA(gt,2),ZA=IA(Ve,2);By(gt,()=>g(L),rt=>y(L,rt)),ce("keydown",gt,H),ce("click",Ve,gA),ce("click",ZA,BA),iA(kA,DA)};LA(Be,kA=>{l()&&!I()&&kA(Ee)}),De(kA=>{var DA;$t=Vt(x,1,"jse-search-count svelte-1mxl2uo",null,$t,kA),wt(Y,"".concat(g(i)!==-1&&g(i)({"jse-visible":g(u)!==""})],qA),ce("click",P,tA),ce("click",X,pA),ce("click",bA,eA),ce("keydown",mA,U),iA(SA,Ue)};LA(aA,SA=>{c()&&SA(le)}),iA(t,UA),pt()}var $3=Symbol("path");function rJA(t,e){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1/0,i={};Array.isArray(t)&&function(o,r,s){if(o.length1?(o.length-1)/(r-1):o.length,c=0;c{Cn(o)?kaA(o,i,e):i[$3]=!0});var n=[];return $3 in i&&n.push([]),SaA(i,[],n,e),n}function kaA(t,e,A){for(var i in t){var n=t[i],o=e[i]||(e[i]={});Cn(n)&&A?kaA(n,o,A):o[$3]===void 0&&(o[$3]=!0)}}function SaA(t,e,A,i){for(var n in t){var o=e.concat(n),r=t[n];r&&r[$3]===!0&&A.push(o),xo(r)&&i&&SaA(r,o,A,i)}}function sJA(t,e,A,i,n,o){for(var r=arguments.length>6&&arguments[6]!==void 0?arguments[6]:80,s=wo(A)?A.length:0,a=function(D,L){var R=Object.values(D);if(Oi(R))return L;var w=(_,K)=>_+K;return R.reduce(w)/R.length}(i,n),c=t-r,l=e+2*r,I=D=>i[D]||n,C=0,d=o;d0&&(d-=I(--C));for(var B=C,E=0;EPg(i,o))}}function YC(t,e){var{rowIndex:A,columnIndex:i}=t;return[String(A),...e[i]]}function aJA(t,e){var[A,i]=GS(t,r=>j_(r.path[0])),n=NS(A,cJA),o=_S(n,r=>{var s={row:[],columns:{}};return r.forEach(a=>{var c=function(l,I){var C=zc(l.path,I);return C.columnIndex!==-1?C.columnIndex:-1}(a,e);c!==-1?(s.columns[c]===void 0&&(s.columns[c]=[]),s.columns[c].push(a)):s.row.push(a)}),s});return{root:i,rows:o}}function XE(t,e){if(e&&e.length!==0)return e.length===1?e[0]:{path:t,message:"Multiple validation issues: "+e.map(A=>Ka(A.path)+" "+A.message).join(", "),severity:Fl.warning}}function cJA(t){return parseInt(t.path[0],10)}function lJA(t,e,A){var i=e.some(n=>function(o,r,s){if(!o)return!1;if(r.op==="replace"){var a=ks(r.path),{rowIndex:c,columnIndex:l}=zc(a,s),I=s.findIndex(C=>di(C,o.path));if(c!==-1&&l!==-1&&l!==I)return!1}return!0}(t,n,A));return i?void 0:t}var Gs=Sr("jsoneditor:actions");function RaA(t){return F_.apply(this,arguments)}function F_(){return F_=Yt(function*(t){var{json:e,selection:A,indentation:i,readOnly:n,parser:o,onPatch:r}=t;if(!n&&e!==void 0&&A&&oQ(A)){var s=eaA(e,A,i,o);if(s!==void 0){Gs("cut",{selection:A,clipboard:s,indentation:i}),yield BG(s);var{operations:a,newSelection:c}=saA(e,A);r(a,(l,I)=>({state:I,selection:c}))}}}),F_.apply(this,arguments)}function xaA(t){return N_.apply(this,arguments)}function N_(){return N_=Yt(function*(t){var{json:e,selection:A,indentation:i,parser:n}=t,o=eaA(e,A,i,n);o!==void 0&&(Gs("copy",{clipboard:o,indentation:i}),yield BG(o))}),N_.apply(this,arguments)}function LaA(t){var{clipboardText:e,json:A,selection:i,readOnly:n,parser:o,onPatch:r,onChangeText:s,onPasteMultilineText:a,openRepairModal:c}=t;if(!n)try{l(e)}catch{c(e,C=>{Gs("repaired pasted text: ",C),l(C)})}function l(I){if(A!==void 0){var C=i||Ni([]),d=raA(A,C,I,o),B=function(E,h,u){var D=arguments.length>3&&arguments[3]!==void 0?arguments[3]:cUA;if(E.length>D)return!1;var L=/\n/.test(E);if(!L)return!1;var R=h.some(_=>_.op==="replace"&&Array.isArray(_.value)),w=h.filter(_=>_.op==="add").length>1;if(!R&&!w)return!1;try{return sf(E,u.parse),!1}catch{return!0}}(e,d,o);Gs("paste",{pastedText:I,operations:d,ensureSelection:C,pasteMultilineText:B}),r(d,(E,h)=>{var u=h;return d.filter(D=>(lS(D)||k8(D))&&No(D.value)).forEach(D=>{var L=ya(A,D.path);u=WC(E,u,L)}),{state:u}}),B&&a(I)}else Gs("paste text",{pastedText:I}),s(e,(E,h)=>{if(E)return{state:WC(E,h,[])}})}}function FaA(t){var{json:e,text:A,selection:i,keepSelection:n,readOnly:o,onChange:r,onPatch:s}=t;if(!o&&i){var a=e!==void 0&&(kr(i)||an(i))?_s(i.path,i.path):i;if(Oi(et(i)))Gs("remove root",{selection:i}),r&&r({text:"",json:void 0},e!==void 0?{text:void 0,json:e}:{text:A||"",json:e},{contentErrors:void 0,patchResult:void 0});else if(e!==void 0){var{operations:c,newSelection:l}=saA(e,a);Gs("remove",{operations:c,selection:i,newSelection:l}),s(c,(I,C)=>({state:C,selection:n?i:l}))}}}function Sy(t){var{insertType:e,selectInside:A,initialValue:i,json:n,selection:o,readOnly:r,parser:s,onPatch:a,onReplaceJson:c}=t;if(!r){var l=function(E,h,u){if(u==="object")return{};if(u==="array")return[];if(u==="structure"&&E!==void 0){var D=h?$sA(h):[],L=Ke(E,D);if(Array.isArray(L)&&!Oi(L)){var R=Fc(L);return No(R)?RS(R,w=>Array.isArray(w)?[]:Cn(w)?void 0:""):""}}return""}(n,o,e);if(n!==void 0){var I=s.stringify(l),C=raA(n,o,I,s);Gs("onInsert",{insertType:e,operations:C,newValue:l,data:I});var d=hi(C.filter(E=>E.op==="add"||E.op==="replace"));a(C,(E,h,u)=>{if(d){var D=ya(E,d.path);if(No(l))return{state:Sl(E,h,D,aG),selection:A?r2(D):u};if(l===""){var L=Oi(D)?void 0:Ke(E,Fi(D));return{state:Sl(E,h,D,ay),selection:Cn(L)?cG(D,i):my(D,i)}}}}),Gs("after patch")}else{Gs("onInsert",{insertType:e,newValue:l});var B=[];c(l,(E,h)=>({state:WC(E,h,B),selection:No(l)?r2(B):my(B)}))}}}function NaA(t){return __.apply(this,arguments)}function __(){return __=Yt(function*(t){var{char:e,selectInside:A,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a,onSelect:c}=t;o||(kr(n)?c(fe(fe({},n),{},{edit:!0,initialValue:e})):e==="{"?Sy({insertType:"object",selectInside:A,initialValue:void 0,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a}):e==="["?Sy({insertType:"array",selectInside:A,initialValue:void 0,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a}):an(n)&&i!==void 0?No(Ke(i,n.path))||c(fe(fe({},n),{},{edit:!0,initialValue:e})):(Gs("onInsertValueWithCharacter",{char:e}),yield function(l){return G_.apply(this,arguments)}({char:e,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a})))}),__.apply(this,arguments)}function G_(){return G_=Yt(function*(t){var{char:e,json:A,selection:i,readOnly:n,parser:o,onPatch:r,onReplaceJson:s}=t;n||Sy({insertType:"value",selectInside:!1,initialValue:e,json:A,selection:i,readOnly:n,parser:o,onPatch:r,onReplaceJson:s})}),G_.apply(this,arguments)}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-json-preview.svelte-1vjn89h { - flex: 1; - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - color: var(--jse-panel-color-readonly, #b2b2b2); - overflow: auto; - white-space: pre-wrap; - padding: 2px; - border-left: var(--jse-main-border, 1px solid #d7d7d7); - border-right: var(--jse-main-border, 1px solid #d7d7d7); - border-bottom: var(--jse-main-border, 1px solid #d7d7d7); -}`);var gJA=wA('
      ');function _aA(t,e){mt(e,!1);var A=$(),i=$(),n=b(e,"text",8),o=b(e,"json",8),r=b(e,"indentation",8),s=b(e,"parser",8);fA(()=>(k(o()),k(n())),()=>{y(A,o()!==void 0?{json:o()}:{text:n()||""})}),fA(()=>(g(A),k(r()),k(s()),Qy),()=>{y(i,V0(u_(g(A),r(),s()),Qy))}),Qn(),Zt();var a=gJA(),c=W(a);De(()=>wt(c,g(i))),iA(t,a),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -button.jse-context-menu-button.svelte-1idfykj { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - flex: 1; - white-space: nowrap; - padding: var(--jse-padding, 10px); - color: inherit; -} -button.jse-context-menu-button.svelte-1idfykj:hover { - background: var(--jse-context-menu-background-highlight, #7a7a7a); -} -button.jse-context-menu-button.svelte-1idfykj:focus { - background: var(--jse-context-menu-background-highlight, #7a7a7a); - z-index: 1; -} -button.jse-context-menu-button.svelte-1idfykj:disabled { - color: var(--jse-context-menu-color-disabled, #9d9d9d); - background: unset; -} -button.jse-context-menu-button.left.svelte-1idfykj { - text-align: left; -} -button.jse-context-menu-button.svelte-1idfykj svg { - width: 16px; -}`);var IJA=wA('');function n_(t,e){mt(e,!1);var A=b(e,"item",8),i=b(e,"className",8,void 0),n=b(e,"onRequestClose",8);Zt();var o=IJA(),r=W(o),s=l=>{ji(l,{get data(){return k(A()),nA(()=>A().icon)}})};LA(r,l=>{k(A()),nA(()=>A().icon)&&l(s)});var a=IA(r,2),c=l=>{var I=Tr();De(()=>wt(I,(k(A()),nA(()=>A().text)))),iA(l,I)};LA(a,l=>{k(A()),nA(()=>A().text)&&l(c)}),De(l=>{Vt(o,1,l,"svelte-1idfykj"),En(o,"title",(k(A()),nA(()=>A().title))),o.disabled=(k(A()),nA(()=>A().disabled||!1))},[()=>Z1((k(Kl),k(i()),k(A()),nA(()=>Kl("jse-context-menu-button",i(),A().className))))],qA),ce("click",o,l=>{n()(),A().onClick(l)}),iA(t,o),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-dropdown-button.svelte-11rxb2m { - flex: 1; - line-height: normal; - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - position: relative; - padding: 0; - display: flex; -} -.jse-dropdown-button.svelte-11rxb2m ul:where(.svelte-11rxb2m) { - margin: 0; - padding: 0; -} -.jse-dropdown-button.svelte-11rxb2m ul:where(.svelte-11rxb2m) li:where(.svelte-11rxb2m) { - margin: 0; - padding: 0; - list-style-type: none; -} -.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - width: 2em; - background: var(--jse-context-menu-background, #656565); - color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); - border-radius: 0; -} -.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown.jse-visible:where(.svelte-11rxb2m) { - background: var(--jse-context-menu-background, #656565); -} -.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m):hover { - background: var(--jse-context-menu-background-highlight, #7a7a7a); -} -.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m):focus { - z-index: 1; -} -.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m):disabled { - color: var(--jse-context-menu-color-disabled, #9d9d9d); - background: unset; -} -.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) { - display: none; - position: absolute; - top: 100%; - left: 0; - z-index: 1; - background: var(--jse-context-menu-background, #656565); - color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); - box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); -} -.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items.jse-visible:where(.svelte-11rxb2m) { - display: block; -} -.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) button:where(.svelte-11rxb2m) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - width: 100%; - text-align: left; - padding: var(--jse-padding, 10px); - margin: 0; -} -.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) button:where(.svelte-11rxb2m):hover { - background: var(--jse-context-menu-background-highlight, #7a7a7a); -} -.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) button:where(.svelte-11rxb2m):disabled { - color: var(--jse-context-menu-color-disabled, #9d9d9d); - background: unset; -}`);var CJA=wA('
    • '),dJA=wA('
        ');Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -button.jse-context-menu-button.svelte-1idfykj { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - flex: 1; - white-space: nowrap; - padding: var(--jse-padding, 10px); - color: inherit; -} -button.jse-context-menu-button.svelte-1idfykj:hover { - background: var(--jse-context-menu-background-highlight, #7a7a7a); -} -button.jse-context-menu-button.svelte-1idfykj:focus { - background: var(--jse-context-menu-background-highlight, #7a7a7a); - z-index: 1; -} -button.jse-context-menu-button.svelte-1idfykj:disabled { - color: var(--jse-context-menu-color-disabled, #9d9d9d); - background: unset; -} -button.jse-context-menu-button.left.svelte-1idfykj { - text-align: left; -} -button.jse-context-menu-button.svelte-1idfykj svg { - width: 16px; -}`);var BJA=wA('');function o_(t,e){mt(e,!1);var A=$(),i=b(e,"item",8),n=b(e,"className",8,void 0),o=b(e,"onRequestClose",8);fA(()=>(k(i()),k(o())),()=>{y(A,i().items.map(r=>fe(fe({},r),{},{onClick:s=>{o()(),r.onClick(s)}})))}),Qn(),Zt(),function(r,s){mt(s,!1);var a=$(void 0,!0),c=b(s,"items",25,()=>[]),l=b(s,"title",9,void 0),I=b(s,"width",9,"120px"),C=$(!1,!0);function d(){y(C,!1)}function B(w){n2(w)==="Escape"&&(w.preventDefault(),y(C,!1))}hs(()=>{document.addEventListener("click",d),document.addEventListener("keydown",B)}),qc(()=>{document.removeEventListener("click",d),document.removeEventListener("keydown",B)}),fA(()=>k(c()),()=>{y(a,c().every(w=>w.disabled===!0))}),Qn(),Zt(!0);var E=dJA(),h=W(E);jo(h,s,"defaultItem",{},null);var u,D=IA(h,2);ji(W(D),{get data(){return mg}});var L,R=IA(D,2);qo(W(R),5,c,or,(w,_)=>{var K=CJA(),z=W(K),U=W(z),H=j=>{ji(j,{get data(){return g(_),nA(()=>g(_).icon)}})};LA(U,j=>{g(_),nA(()=>g(_).icon)&&j(H)});var q=IA(U);De(()=>{var j;En(z,"title",(g(_),nA(()=>g(_).title))),z.disabled=(g(_),nA(()=>g(_).disabled)),Vt(z,1,Z1((g(_),nA(()=>g(_).className))),"svelte-11rxb2m"),wt(q," ".concat((g(_),(j=nA(()=>g(_).text))!==null&&j!==void 0?j:"")))}),ce("click",z,j=>g(_).onClick(j)),iA(w,K)}),De((w,_)=>{var K;En(E,"title",l()),u=Vt(D,1,"jse-open-dropdown svelte-11rxb2m",null,u,w),D.disabled=g(a),L=Vt(R,1,"jse-dropdown-items svelte-11rxb2m",null,L,_),Ll(R,"width: ".concat((K=I())!==null&&K!==void 0?K:"",";"))},[()=>({"jse-visible":g(C)}),()=>({"jse-visible":g(C)})],qA),ce("click",D,function(){var w=g(C);setTimeout(()=>y(C,!w))}),ce("click",E,d),iA(r,E),pt()}(t,{get width(){return k(i()),nA(()=>i().width)},get items(){return g(A)},$$slots:{defaultItem:(r,s)=>{var a=BJA(),c=W(a),l=C=>{ji(C,{get data(){return k(i()),nA(()=>i().main.icon)}})};LA(c,C=>{k(i()),nA(()=>i().main.icon)&&C(l)});var I=IA(c);De(C=>{var d;Vt(a,1,C,"svelte-1idfykj"),En(a,"title",(k(i()),nA(()=>i().main.title))),a.disabled=(k(i()),nA(()=>i().main.disabled||!1)),wt(I," ".concat((k(i()),(d=nA(()=>i().main.text))!==null&&d!==void 0?d:"")))},[()=>Z1((k(Kl),k(n()),k(i()),nA(()=>Kl("jse-context-menu-button",n(),i().main.className))))],qA),ce("click",a,C=>{o()(),i().main.onClick(C)}),iA(r,a)}}}),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-contextmenu.svelte-12z7bz1 { - box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - background: var(--jse-context-menu-background, #656565); - color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); -} -.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) { - display: flex; - flex-direction: row; - align-items: flex-start; - justify-content: stretch; -} -.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) div.jse-label:where(.svelte-12z7bz1) { - flex: 1; - white-space: nowrap; - padding: var(--jse-padding, 10px); - color: var(--jse-context-menu-color-disabled, #9d9d9d); - line-height: normal; -} -.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) div.jse-tip:where(.svelte-12z7bz1) { - flex: 1; - background: var(--jse-context-menu-tip-background, rgba(255, 255, 255, 0.2)); - color: var(--context-menu-tip-color, inherit); - margin: calc(0.5 * var(--jse-padding, 10px)); - padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); - font-size: 80%; - line-height: 1.3em; - display: flex; - flex-direction: row; - align-items: flex-start; - gap: var(--jse-padding, 10px); - border-radius: 3px; -} -.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) div.jse-tip:where(.svelte-12z7bz1) div.jse-tip-icon:where(.svelte-12z7bz1) { - padding-top: calc(0.5 * var(--jse-padding, 10px)); -} -.jse-contextmenu.svelte-12z7bz1 .jse-column:where(.svelte-12z7bz1) { - flex: 1; - display: flex; - flex-direction: column; - align-items: stretch; -} -.jse-contextmenu.svelte-12z7bz1 .jse-column:where(.svelte-12z7bz1):not(:last-child) { - border-right: 1px solid var(--jse-context-menu-separator-color, #7a7a7a); -} -.jse-contextmenu.svelte-12z7bz1 .jse-separator:where(.svelte-12z7bz1) { - width: 100%; - height: 1px; - background: var(--jse-context-menu-separator-color, #7a7a7a); -}`);var EJA=wA('
        '),QJA=wA('
        '),hJA=wA('
        '),uJA=wA('
        '),fJA=wA('
        '),mJA=wA('
        '),pJA=wA('
        '),wJA=wA('');function GaA(t,e){mt(e,!1);var A=b(e,"items",9),i=b(e,"onRequestClose",9),n=b(e,"tip",9),o=$(void 0,!0);hs(()=>{var C=Array.from(g(o).querySelectorAll("button")).find(d=>!d.disabled);C&&C.focus()});var r={ArrowUp:"Up",ArrowDown:"Down",ArrowLeft:"Left",ArrowRight:"Right"};function s(C){return console.error("Unknown type of context menu item",C),"???"}Zt(!0);var a=wJA(),c=W(a);qo(c,1,A,or,(C,d)=>{var B=_o(),E=vt(B),h=D=>{n_(D,{get item(){return g(d)},get onRequestClose(){return i()}})},u=(D,L)=>{var R=_=>{o_(_,{get item(){return g(d)},get onRequestClose(){return i()}})},w=(_,K)=>{var z=H=>{var q=fJA();qo(q,5,()=>(g(d),nA(()=>g(d).items)),or,(j,gA)=>{var QA=_o(),BA=vt(QA),lA=tA=>{n_(tA,{get item(){return g(gA)},get onRequestClose(){return i()}})},vA=(tA,cA)=>{var pA=oe=>{o_(oe,{get item(){return g(gA)},get onRequestClose(){return i()}})},VA=(oe,KA)=>{var CA=Ze=>{var He=hJA();qo(He,5,()=>(g(gA),nA(()=>g(gA).items)),or,(uA,eA)=>{var UA=_o(),aA=vt(UA),le=Ue=>{n_(Ue,{className:"left",get item(){return g(eA)},get onRequestClose(){return i()}})},SA=(Ue,mA)=>{var sA=tt=>{o_(tt,{className:"left",get item(){return g(eA)},get onRequestClose(){return i()}})},xt=(tt,de)=>{var Dt=Le=>{iA(Le,EJA())},_e=(Le,bt)=>{var Re=x=>{var Y=QJA(),P=W(Y);De(()=>wt(P,(g(eA),nA(()=>g(eA).text)))),iA(x,Y)},$t=x=>{var Y=Tr();De(P=>wt(Y,P),[()=>(g(eA),nA(()=>s(g(eA))))],qA),iA(x,Y)};LA(Le,x=>{k(rrA),g(eA),nA(()=>rrA(g(eA)))?x(Re):x($t,!1)},bt)};LA(tt,Le=>{k(G1),g(eA),nA(()=>G1(g(eA)))?Le(Dt):Le(_e,!1)},de)};LA(Ue,tt=>{k(ZE),g(eA),nA(()=>ZE(g(eA)))?tt(sA):tt(xt,!1)},mA)};LA(aA,Ue=>{k(q0),g(eA),nA(()=>q0(g(eA)))?Ue(le):Ue(SA,!1)}),iA(uA,UA)}),iA(Ze,He)},TA=(Ze,He)=>{var uA=UA=>{iA(UA,uJA())},eA=UA=>{var aA=Tr();De(le=>wt(aA,le),[()=>(g(gA),nA(()=>s(g(gA))))],qA),iA(UA,aA)};LA(Ze,UA=>{k(G1),g(gA),nA(()=>G1(g(gA)))?UA(uA):UA(eA,!1)},He)};LA(oe,Ze=>{k(arA),g(gA),nA(()=>arA(g(gA)))?Ze(CA):Ze(TA,!1)},KA)};LA(tA,oe=>{k(ZE),g(gA),nA(()=>ZE(g(gA)))?oe(pA):oe(VA,!1)},cA)};LA(BA,tA=>{k(q0),g(gA),nA(()=>q0(g(gA)))?tA(lA):tA(vA,!1)}),iA(j,QA)}),iA(H,q)},U=(H,q)=>{var j=QA=>{iA(QA,mJA())},gA=QA=>{var BA=Tr();De(lA=>wt(BA,lA),[()=>(g(d),nA(()=>s(g(d))))],qA),iA(QA,BA)};LA(H,QA=>{k(G1),g(d),nA(()=>G1(g(d)))?QA(j):QA(gA,!1)},q)};LA(_,H=>{k(srA),g(d),nA(()=>srA(g(d)))?H(z):H(U,!1)},K)};LA(D,_=>{k(ZE),g(d),nA(()=>ZE(g(d)))?_(R):_(w,!1)},L)};LA(E,D=>{k(q0),g(d),nA(()=>q0(g(d)))?D(h):D(u,!1)}),iA(C,B)});var l=IA(c,2),I=C=>{var d=pJA(),B=W(d),E=W(B);ji(W(E),{get data(){return xW}});var h=W(IA(E,2));De(()=>wt(h,n())),iA(C,d)};LA(l,C=>{n()&&C(I)}),Co(a,C=>y(o,C),()=>g(o)),ce("keydown",a,function(C){var d=n2(C),B=r[d];if(B&&C.target){C.preventDefault();var E=TGA({allElements:Array.from(g(o).querySelectorAll("button:not([disabled])")),currentElement:C.target,direction:B,hasPrio:h=>h.getAttribute("data-type")!=="jse-open-dropdown"});E&&E.focus()}}),iA(t,a),pt()}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-value.jse-string.svelte-6ttr41 { - color: var(--jse-value-color-string, #008000); -} -.jse-value.jse-object.svelte-6ttr41, .jse-value.jse-array.svelte-6ttr41 { - min-width: 16px; - color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); -} -.jse-value.jse-number.svelte-6ttr41 { - color: var(--jse-value-color-number, #ee422e); -} -.jse-value.jse-boolean.svelte-6ttr41 { - color: var(--jse-value-color-boolean, #ff8c00); -} -.jse-value.jse-null.svelte-6ttr41 { - color: var(--jse-value-color-null, #004ed0); -} -.jse-value.jse-invalid.svelte-6ttr41 { - color: var(--jse-text-color, #4d4d4d); -} -.jse-value.jse-url.svelte-6ttr41 { - color: var(--jse-value-color-url, #008000); - text-decoration: underline; -} - -.jse-enum-value.svelte-6ttr41 { - background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); - border: none; - padding: 0; - font-family: inherit; - font-size: inherit; - cursor: pointer; - outline: none; -} -.jse-enum-value.jse-selected.svelte-6ttr41 { - background: var(--jse-selection-background-color, #d3d3d3); - color: inherit; -} -.jse-enum-value.jse-value.svelte-6ttr41:focus { - color: var(--jse-text-color, #4d4d4d); -}`);var $6e=wA(""),A8e=wA("");var ty,iy;function ny(t,e){return ty||(iy=new WeakMap,ty=new ResizeObserver(A=>{for(var i of A){var n=iy.get(i.target);n&&n(i.target)}})),iy.set(t,e),ty.observe(t),{destroy:()=>{iy.delete(t),ty.unobserve(t)}}}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-tree-mode.svelte-vrx1dr { - flex: 1; - display: flex; - flex-direction: column; - position: relative; - background: var(--jse-background-color, #fff); - min-width: 0; - min-height: 0; - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - color: var(--jse-text-color, #4d4d4d); - line-height: var(--jse-line-height, calc(1em + 4px)); -} -.jse-tree-mode.svelte-vrx1dr .jse-hidden-input-label:where(.svelte-vrx1dr) .jse-hidden-input:where(.svelte-vrx1dr) { - position: fixed; - top: -10px; - left: -10px; - width: 1px; - height: 1px; - padding: 0; - border: 0; - outline: none; -} -.jse-tree-mode.no-main-menu.svelte-vrx1dr { - border-top: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-tree-mode.svelte-vrx1dr .jse-search-box-container:where(.svelte-vrx1dr) { - position: relative; - height: 0; - top: var(--jse-padding, 10px); - margin-right: calc(var(--jse-padding, 10px) + 20px); - margin-left: var(--jse-padding, 10px); - text-align: right; - z-index: 3; -} -.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) { - flex: 1; - overflow: auto; - position: relative; - padding: 2px; - display: flex; - flex-direction: column; - border-left: var(--jse-main-border, 1px solid #d7d7d7); - border-right: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr):last-child { - border-bottom: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) .jse-loading-space:where(.svelte-vrx1dr) { - flex: 1; -} -.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) .jse-loading:where(.svelte-vrx1dr) { - flex: 2; - text-align: center; - color: var(--jse-panel-color-readonly, #b2b2b2); - box-sizing: border-box; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); -} -.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) .jse-search-box-background:where(.svelte-vrx1dr) { - border: 50px solid var(--jse-modal-background, #f5f5f5); - margin: -2px; - margin-bottom: 2px; - display: inline-block; -}`);var DJA=wA(" ",1),yJA=wA('
        '),vJA=wA('
        ',1),bJA=wA(' ',1),MJA=wA('
        loading...
        '),kJA=wA('
        ',1);function U_(t,e){mt(e,!1);var A=$(void 0,!0),i=Sr("jsoneditor:TreeMode"),n=typeof window>"u";i("isSSR:",n);var o=c1(),r=c1(),{openAbsolutePopup:s,closeAbsolutePopup:a}=$1("absolute-popup"),c=$(void 0,!0),l=$(void 0,!0),I=$(void 0,!0),C=!1,d=paA(),B=b(e,"readOnly",9),E=b(e,"externalContent",9),h=b(e,"externalSelection",9),u=b(e,"history",9),D=b(e,"truncateTextSize",9),L=b(e,"mainMenuBar",9),R=b(e,"navigationBar",9),w=b(e,"escapeControlCharacters",9),_=b(e,"escapeUnicodeCharacters",9),K=b(e,"parser",9),z=b(e,"parseMemoizeOne",9),U=b(e,"validator",9),H=b(e,"validationParser",9),q=b(e,"pathParser",9),j=b(e,"indentation",9),gA=b(e,"onError",9),QA=b(e,"onChange",9),BA=b(e,"onChangeMode",9),lA=b(e,"onSelect",9),vA=b(e,"onUndo",9),tA=b(e,"onRedo",9),cA=b(e,"onRenderValue",9),pA=b(e,"onRenderMenu",9),VA=b(e,"onRenderContextMenu",9),oe=b(e,"onClassName",9),KA=b(e,"onFocus",9),CA=b(e,"onBlur",9),TA=b(e,"onSortModal",9),Ze=b(e,"onTransformModal",9),He=b(e,"onJSONEditorModal",9),uA=!1,eA=$(!1,!0),UA=$(void 0,!0);CG({onMount:hs,onDestroy:qc,getWindow:()=>af(g(I)),hasFocus:()=>uA&&document.hasFocus()||W_(g(I)),onFocus:()=>{C=!0,KA()&&KA()()},onBlur:()=>{C=!1,CA()&&CA()()}});var aA=$(void 0,!0),le=$(void 0,!0),SA=void 0,Ue=!1,mA=$(w_({json:g(aA)}),!0),sA=$(q3(h())?h():void 0,!0);function xt(T){y(sA,T)}hs(()=>{if(g(sA)){var T=et(g(sA));y(mA,Sl(g(aA),g(mA),T,ay)),setTimeout(()=>Ai(T))}});var tt,de=$(void 0,!0),Dt=$(void 0,!0),_e=$(void 0,!0),Le=$(void 0,!0),bt=$(!1,!0),Re=$(!1,!0);function $t(T){y(Le,(tt=T)?caA(g(aA),tt.items):void 0)}function x(T,oA){return Y.apply(this,arguments)}function Y(){return(Y=Yt(function*(T,oA){y(mA,Sl(g(aA),g(mA),T,ay));var YA=hn(oA);yield ot(T,{element:YA})})).apply(this,arguments)}function P(){y(bt,!1),y(Re,!1),Ri()}function X(T){i("select validation error",T),y(sA,Ni(T.path)),ot(T.path)}function bA(T){var oA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ErA;i("expand"),y(mA,Sl(g(aA),g(mA),T,oA))}function Be(T,oA){y(mA,IrA(g(aA),g(mA),T,oA)),g(sA)&&function(YA,pe){return Pg(et(YA),pe)&&(et(YA).length>pe.length||fr(YA))}(g(sA),T)&&y(sA,void 0)}var Ee=$(!1,!0),kA=$([],!0),DA=$(void 0,!0),gt=aE(waA);function Ve(T,oA,YA,pe){sQ(()=>{var he;try{he=gt(T,oA,YA,pe)}catch(ge){he=[{path:[],message:"Failed to validate: "+ge.message,severity:Fl.warning}]}di(he,g(kA))||(i("validationErrors changed:",he),y(kA,he),y(DA,function(ge,Bt){var $e;return Bt.forEach(bi=>{$e=KrA(ge,$e,bi.path,(un,Ji)=>fe(fe({},Ji),{},{validationError:bi}))}),Bt.forEach(bi=>{for(var un=bi.path;un.length>0;)un=Fi(un),$e=KrA(ge,$e,un,(Ji,Tn)=>Tn.validationError?Tn:fe(fe({},Tn),{},{validationError:{isChildError:!0,path:un,message:"Contains invalid data",severity:Fl.warning}}))}),$e}(T,g(kA))))},he=>i("validationErrors updated in ".concat(he," ms")))}function ZA(){return i("validate"),SA?{parseError:SA,isRepairable:!1}:(Ve(g(aA),U(),K(),H()),Oi(g(kA))?void 0:{validationErrors:g(kA)})}function rt(){return g(aA)}function Ei(){return g(mA)}function tn(){return g(sA)}function qi(T){i("applyExternalContent",{updatedContent:T}),z3(T)?function(oA){if(oA!==void 0){var YA=!di(g(aA),oA);if(i("update external json",{isChanged:YA,currentlyText:g(aA)===void 0}),!!YA){var pe={documentState:g(mA),selection:g(sA),json:g(aA),text:g(le),textIsRepaired:g(Ee)};y(aA,oA),y(mA,Qc(oA,g(mA))),xe(g(aA)),y(le,void 0),y(Ee,!1),SA=void 0,nn(g(aA)),mi(pe)}}}(T.json):H3(T)&&function(oA){if(!(oA===void 0||z3(E()))){var YA=oA!==g(le);if(i("update external text",{isChanged:YA}),!!YA){var pe={documentState:g(mA),selection:g(sA),json:g(aA),text:g(le),textIsRepaired:g(Ee)};try{y(aA,z()(oA)),y(mA,Qc(g(aA),g(mA))),xe(g(aA)),y(le,oA),y(Ee,!1),SA=void 0}catch(he){try{y(aA,z()(Rc(oA))),y(mA,Qc(g(aA),g(mA))),xe(g(aA)),y(le,oA),y(Ee,!0),SA=void 0,nn(g(aA))}catch{y(aA,void 0),y(mA,void 0),y(le,E().text),y(Ee,!1),SA=g(le)!==void 0&&g(le)!==""?dQ(g(le),he.message||String(he)):void 0}}nn(g(aA)),mi(pe)}}}(T.text)}function xe(T){Ue||(Ue=!0,y(mA,WC(T,g(mA),[])))}function nn(T){g(sA)&&(Ms(T,OC(g(sA)))&&Ms(T,et(g(sA)))||(i("clearing selection: path does not exist anymore",g(sA)),y(sA,WE(T,g(mA)))))}function mi(T){if(T.json!==void 0||T.text!==void 0){var oA=g(aA)!==void 0&&T.json!==void 0;u().add({type:"tree",undo:{patch:oA?[{op:"replace",path:"",value:T.json}]:void 0,json:T.json,text:T.text,documentState:T.documentState,textIsRepaired:T.textIsRepaired,selection:Hg(T.selection),sortedColumn:void 0},redo:{patch:oA?[{op:"replace",path:"",value:g(aA)}]:void 0,json:g(aA),text:g(le),documentState:g(mA),textIsRepaired:g(Ee),selection:Hg(g(sA)),sortedColumn:void 0}})}}function Ot(T,oA){var YA;if(i("patch",T,oA),g(aA)===void 0)throw new Error("Cannot apply patch: no JSON");var pe=g(aA),he={json:void 0,text:g(le),documentState:g(mA),selection:Hg(g(sA)),textIsRepaired:g(Ee),sortedColumn:void 0},ge=aaA(g(aA),T),Bt=ZsA(g(aA),g(mA),T),$e=(YA=QQ(g(aA),T))!==null&&YA!==void 0?YA:g(sA),bi=typeof oA=="function"?oA(Bt.json,Bt.documentState,$e):void 0;return y(aA,bi?.json!==void 0?bi.json:Bt.json),y(mA,bi?.state!==void 0?bi.state:Bt.documentState),y(sA,bi?.selection!==void 0?bi.selection:$e),y(le,void 0),y(Ee,!1),y(Dt,void 0),y(_e,void 0),SA=void 0,nn(g(aA)),u().add({type:"tree",undo:fe({patch:ge},he),redo:{patch:T,json:void 0,text:g(le),documentState:g(mA),selection:Hg(g(sA)),sortedColumn:void 0,textIsRepaired:g(Ee)}}),{json:g(aA),previousJson:pe,undo:ge,redo:T}}function Lt(){!B()&&g(sA)&&y(sA,cG(et(g(sA))))}function ii(){if(!B()&&g(sA)){var T=et(g(sA)),oA=Ke(g(aA),T);No(oA)?function(YA,pe){i("openJSONEditorModal",{path:YA,value:pe}),uA=!0,He()({content:{json:pe},path:YA,onPatch:g(m).onPatch,onClose:()=>{uA=!1,setTimeout(Ri)}})}(T,oA):y(sA,my(T))}}function _i(){if(!B()&&an(g(sA))){var T=et(g(sA)),oA=Ct(T),YA=Ke(g(aA),T),pe=!zg(g(aA),g(mA),T),he=pe?String(YA):DQ(String(YA),K());i("handleToggleEnforceString",{enforceString:pe,value:YA,updatedValue:he}),dt([{op:"replace",path:oA,value:he}],(ge,Bt)=>({state:Ky(g(aA),Bt,T,{type:"value",enforceString:pe})}))}}function Tt(){return g(Ee)&&g(aA)!==void 0&&EA(g(aA)),g(aA)!==void 0?{json:g(aA)}:{text:g(le)||""}}function M(){return We.apply(this,arguments)}function We(){return We=Yt(function*(){var T=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];yield RaA({json:g(aA),selection:g(sA),indentation:T?j():void 0,readOnly:B(),parser:K(),onPatch:dt})}),We.apply(this,arguments)}function ni(){return pi.apply(this,arguments)}function pi(){return pi=Yt(function*(){var T=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];g(aA)!==void 0&&(yield xaA({json:g(aA),selection:g(sA),indentation:T?j():void 0,parser:K()}))}),pi.apply(this,arguments)}function dn(T){var oA;T.preventDefault(),kn((oA=T.clipboardData)===null||oA===void 0?void 0:oA.getData("text/plain"))}function mn(){return Uo.apply(this,arguments)}function Uo(){return(Uo=Yt(function*(){try{kn(yield navigator.clipboard.readText())}catch(T){console.error(T),y(eA,!0)}})).apply(this,arguments)}function kn(T){T!==void 0&&LaA({clipboardText:T,json:g(aA),selection:g(sA),readOnly:B(),parser:K(),onPatch:dt,onChangeText:HA,onPasteMultilineText:Jn,openRepairModal:Wn})}function Wn(T,oA){y(UA,{text:T,onParse:YA=>sf(YA,pe=>rf(pe,K())),onRepair:_sA,onApply:oA,onClose:Ri})}function Vo(){FaA({json:g(aA),text:g(le),selection:g(sA),keepSelection:!1,readOnly:B(),onChange:QA(),onPatch:dt})}function vo(){!B()&&g(aA)!==void 0&&g(sA)&&oQ&&!Oi(et(g(sA)))&&(i("duplicate",{selection:g(sA)}),dt(naA(g(aA),W1(g(aA),g(sA)))))}function bo(){B()||!g(sA)||!Kn(g(sA))&&!an(g(sA))||Oi(et(g(sA)))||(i("extract",{selection:g(sA)}),dt(oaA(g(aA),g(sA)),(T,oA)=>{if(No(T))return{state:ZN(T,oA,[])}}))}function Yn(T){Sy({insertType:T,selectInside:!0,initialValue:void 0,json:g(aA),selection:g(sA),readOnly:B(),parser:K(),onPatch:dt,onReplaceJson:EA})}function Mo(T){kr(g(sA))&&y(sA,Ni(g(sA).path)),g(sA)||y(sA,WE(g(aA),g(mA))),Yn(T)}function ne(T){if(!B()&&g(sA))if(WD(g(sA)))try{var oA=OC(g(sA)),YA=Ke(g(aA),oA),pe=function(ge,Bt,$e){if(Bt==="array"){if(Array.isArray(ge))return ge;if(Cn(ge))return XoA(ge);if(typeof ge=="string")try{var bi=$e.parse(ge);if(Array.isArray(bi))return bi;if(Cn(bi))return XoA(bi)}catch{return[ge]}return[ge]}if(Bt==="object"){if(Array.isArray(ge))return WoA(ge);if(Cn(ge))return ge;if(typeof ge=="string")try{var un=$e.parse(ge);if(Cn(un))return un;if(Array.isArray(un))return WoA(un)}catch{return{value:ge}}return{value:ge}}if(Bt==="value")return No(ge)?$e.stringify(ge):ge;throw new Error("Cannot convert ".concat(q_(ge,$e)," to ").concat(Bt))}(YA,T,K());if(pe===YA)return;var he=[{op:"replace",path:Ct(oA),value:pe}];i("handleConvert",{selection:g(sA),path:oA,type:T,operations:he}),dt(he,(ge,Bt)=>({state:g(sA)?WC(ge,Bt,et(g(sA))):g(mA)}))}catch(ge){gA()(ge)}else gA()(new Error("Cannot convert current selection to ".concat(T)))}function wi(){if(g(sA)){var T=QrA(g(aA),g(mA),g(sA),!1),oA=Fi(et(g(sA)));T&&!Oi(et(T))&&di(oA,Fi(et(T)))?y(sA,t2(et(T))):y(sA,r2(oA)),i("insert before",{selection:g(sA),selectionBefore:T,parentPath:oA}),io(),Pt()}}function MA(){if(g(sA)){var T=P1(g(aA),g(sA));i("insert after",T),y(sA,t2(T)),io(),Pt()}}function me(T){return nt.apply(this,arguments)}function nt(){return(nt=Yt(function*(T){yield NaA({char:T,selectInside:!0,json:g(aA),selection:g(sA),readOnly:B(),parser:K(),onPatch:dt,onReplaceJson:EA,onSelect:xt})})).apply(this,arguments)}function Wt(){if(!B()&&u().canUndo){var T=u().undo();if(uy(T)){var oA={json:g(aA),text:g(le)};y(aA,T.undo.patch?Da(g(aA),T.undo.patch):T.undo.json),y(mA,T.undo.documentState),y(sA,T.undo.selection),y(le,T.undo.text),y(Ee,T.undo.textIsRepaired),SA=void 0,i("undo",{item:T,json:g(aA),documentState:g(mA),selection:g(sA)}),Ki(oA,T.undo.patch&&T.redo.patch?{json:g(aA),previousJson:oA.json,redo:T.undo.patch,undo:T.redo.patch}:void 0),Ri(),g(sA)&&ot(et(g(sA)),{scrollToWhenVisible:!1})}else vA()(T)}}function Xe(){if(!B()&&u().canRedo){var T=u().redo();if(uy(T)){var oA={json:g(aA),text:g(le)};y(aA,T.redo.patch?Da(g(aA),T.redo.patch):T.redo.json),y(mA,T.redo.documentState),y(sA,T.redo.selection),y(le,T.redo.text),y(Ee,T.redo.textIsRepaired),SA=void 0,i("redo",{item:T,json:g(aA),documentState:g(mA),selection:g(sA)}),Ki(oA,T.undo.patch&&T.redo.patch?{json:g(aA),previousJson:oA.json,redo:T.redo.patch,undo:T.undo.patch}:void 0),Ri(),g(sA)&&ot(et(g(sA)),{scrollToWhenVisible:!1})}else tA()(T)}}function oi(T){var oA;B()||g(aA)===void 0||(uA=!0,TA()({id:o,json:g(aA),rootPath:T,onSort:(oA=Yt(function*(YA){var{operations:pe}=YA;i("onSort",T,pe),dt(pe,(he,ge)=>({state:ZN(he,ge,T),selection:Ni(T)}))}),function(YA){return oA.apply(this,arguments)}),onClose:()=>{uA=!1,setTimeout(Ri)}}))}function Di(){g(sA)&&oi(urA(g(aA),g(sA)))}function Ut(){oi([])}function cn(T){if(g(aA)!==void 0){var{id:oA,onTransform:YA,onClose:pe}=T,he=T.rootPath||[];uA=!0,Ze()({id:oA||r,json:g(aA),rootPath:he,onTransform:ge=>{YA?YA({operations:ge,json:g(aA),transformedJson:Da(g(aA),ge)}):(i("onTransform",he,ge),dt(ge,(Bt,$e)=>({state:ZN(Bt,$e,he),selection:Ni(he)})))},onClose:()=>{uA=!1,setTimeout(Ri),pe&&pe()}})}}function ft(){g(sA)&&cn({rootPath:urA(g(aA),g(sA))})}function Qi(){cn({rootPath:[]})}function ot(T){return Mt.apply(this,arguments)}function Mt(){return Mt=Yt(function*(T){var{scrollToWhenVisible:oA=!0,element:YA}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};y(mA,Sl(g(aA),g(mA),T,ay));var pe=YA??on(T);if(i("scrollTo",{path:T,elem:pe,refContents:g(c)}),!pe||!g(c))return Promise.resolve();var he=g(c).getBoundingClientRect(),ge=pe.getBoundingClientRect();if(!oA&&ge.bottom>he.top&&ge.top{d(pe,{container:g(c),offset:Bt,duration:300,callback:()=>$e()})})}),Mt.apply(this,arguments)}function on(T){var oA,YA;return io(),(oA=(YA=g(c))===null||YA===void 0?void 0:YA.querySelector('div[data-path="'.concat(sy(T),'"]')))!==null&&oA!==void 0?oA:void 0}function hn(T){var oA,YA;return io(),(oA=(YA=g(c))===null||YA===void 0?void 0:YA.querySelector('span[data-search-result-index="'.concat(T,'"]')))!==null&&oA!==void 0?oA:void 0}function Ai(T){var oA=on(T);if(oA&&g(c)){var YA=g(c).getBoundingClientRect(),pe=oA.getBoundingClientRect(),he=No(Ke(g(aA),T))?20:pe.height;pe.topYA.bottom-20&&d(oA,{container:g(c),offset:-(YA.height-he-20),duration:0})}}function Ki(T,oA){if(T.json!==void 0||T?.text!==void 0){if(g(le)!==void 0){var YA,pe={text:g(le),json:void 0};(YA=QA())===null||YA===void 0||YA(pe,T,{contentErrors:ZA(),patchResult:oA})}else if(g(aA)!==void 0){var he,ge={text:void 0,json:g(aA)};(he=QA())===null||he===void 0||he(ge,T,{contentErrors:ZA(),patchResult:oA})}}}function dt(T,oA){i("handlePatch",T,oA);var YA={json:g(aA),text:g(le)},pe=Ot(T,oA);return Ki(YA,pe),pe}function EA(T,oA){var YA={json:g(aA),text:g(le)},pe={documentState:g(mA),selection:g(sA),json:g(aA),text:g(le),textIsRepaired:g(Ee)},he=Sl(g(aA),Qc(T,g(mA)),[],G3),ge=typeof oA=="function"?oA(T,he,g(sA)):void 0;y(aA,ge?.json!==void 0?ge.json:T),y(mA,ge?.state!==void 0?ge.state:he),y(sA,ge?.selection!==void 0?ge.selection:g(sA)),y(le,void 0),y(Ee,!1),SA=void 0,nn(g(aA)),mi(pe),Ki(YA,void 0)}function HA(T,oA){i("handleChangeText");var YA={json:g(aA),text:g(le)},pe={documentState:g(mA),selection:g(sA),json:g(aA),text:g(le),textIsRepaired:g(Ee)};try{y(aA,z()(T)),y(mA,Sl(g(aA),Qc(g(aA),g(mA)),[],G3)),y(le,void 0),y(Ee,!1),SA=void 0}catch(ge){try{y(aA,z()(Rc(T))),y(mA,Sl(g(aA),Qc(g(aA),g(mA)),[],G3)),y(le,T),y(Ee,!0),SA=void 0}catch{y(aA,void 0),y(mA,w_({json:g(aA),expand:G3})),y(le,T),y(Ee,!1),SA=g(le)!==""?dQ(g(le),ge.message||String(ge)):void 0}}if(typeof oA=="function"){var he=oA(g(aA),g(mA),g(sA));y(aA,he?.json!==void 0?he.json:g(aA)),y(mA,he?.state!==void 0?he.state:g(mA)),y(sA,he?.selection!==void 0?he.selection:g(sA))}nn(g(aA)),mi(pe),Ki(YA,void 0)}function ve(T,oA){var YA=arguments.length>2&&arguments[2]!==void 0&&arguments[2];i("handleExpand",{path:T,expanded:oA,recursive:YA}),oA?bA(T,YA?aG:ErA):Be(T,YA),Ri()}function Qt(){ve([],!0,!0)}function yi(){ve([],!1,!0)}function ri(T){i("openFind",{findAndReplace:T}),y(bt,!1),y(Re,!1),io(),y(bt,!0),y(Re,T)}function pn(T,oA){i("handleExpandSection",T,oA),y(mA,function(YA,pe,he,ge){return EQ(YA,pe,he,(Bt,$e)=>{if(!Mr($e))return $e;var bi=jsA($e.visibleSections.concat(ge));return fe(fe({},$e),{},{visibleSections:bi})})}(g(aA),g(mA),T,oA))}function Fn(T){i("pasted json as text",T),y(Dt,T)}function Jn(T){i("pasted multiline text",{pastedText:T}),y(_e,T)}function ln(T){var oA,{anchor:YA,left:pe,top:he,width:ge,height:Bt,offsetTop:$e,offsetLeft:bi,showTip:un}=T,Ji=function(Sn){var{json:no,documentState:gn,selection:Nt,readOnly:Zi,onEditKey:_t,onEditValue:st,onToggleEnforceString:si,onCut:Eo,onCopy:xr,onPaste:Hn,onRemove:So,onDuplicate:zr,onExtract:t0,onInsertBefore:Ta,onInsert:Wc,onConvert:Hl,onInsertAfter:Xc,onSort:Or,onTransform:Pr}=Sn,Ha=no!==void 0,i0=!!Nt,za=!!Nt&&Oi(et(Nt)),Ko=Nt?Ke(no,et(Nt)):void 0,$n=Array.isArray(Ko)?"Edit array":Cn(Ko)?"Edit object":"Edit value",Zo=Ha&&(Kn(Nt)||kr(Nt)||an(Nt)),zl=Nt&&!za?Ke(no,Fi(et(Nt))):void 0,Id=!Zi&&Ha&&fy(Nt)&&!za&&!Array.isArray(zl),Cd=!Zi&&Ha&&Nt!==void 0&&fy(Nt),JQ=Cd&&!No(Ko),dd=!Zi&&Zo,TQ=Zo,U7=!Zi&&i0,K7=!Zi&&Ha&&Zo&&!za,Y7=!Zi&&Ha&&Nt!==void 0&&(Kn(Nt)||an(Nt))&&!za,Ol=Zo,sI=Ol?"Convert to:":"Insert:",rr=!Zi&&(fr(Nt)&&Array.isArray(Ko)||Ua(Nt)&&Array.isArray(zl)),ta=!Zi&&(Ol?WD(Nt)&&!Cn(Ko):i0),HQ=!Zi&&(Ol?WD(Nt)&&!Array.isArray(Ko):i0),zQ=!Zi&&(Ol?WD(Nt)&&No(Ko):i0),aI=Nt!==void 0&&zg(no,gn,et(Nt));function is(OQ){Zo?OQ!=="structure"&&Hl(OQ):Wc(OQ)}return[{type:"row",items:[{type:"button",onClick:()=>_t(),icon:lC,text:"Edit key",title:"Edit the key (Double-click on the key)",disabled:!Id},{type:"dropdown-button",main:{type:"button",onClick:()=>st(),icon:lC,text:$n,title:"Edit the value (Double-click on the value)",disabled:!Cd},width:"11em",items:[{type:"button",icon:lC,text:$n,title:"Edit the value (Double-click on the value)",onClick:()=>st(),disabled:!Cd},{type:"button",icon:aI?jS:ZS,text:"Enforce string",title:"Enforce keeping the value as string when it contains a numeric value",onClick:()=>si(),disabled:!JQ}]}]},{type:"separator"},{type:"row",items:[{type:"dropdown-button",main:{type:"button",onClick:()=>Eo(!0),icon:cC,text:"Cut",title:"Cut selected contents, formatted with indentation (Ctrl+X)",disabled:!dd},width:"10em",items:[{type:"button",icon:cC,text:"Cut formatted",title:"Cut selected contents, formatted with indentation (Ctrl+X)",onClick:()=>Eo(!0),disabled:!dd},{type:"button",icon:cC,text:"Cut compacted",title:"Cut selected contents, without indentation (Ctrl+Shift+X)",onClick:()=>Eo(!1),disabled:!dd}]},{type:"dropdown-button",main:{type:"button",onClick:()=>xr(!0),icon:F0,text:"Copy",title:"Copy selected contents, formatted with indentation (Ctrl+C)",disabled:!TQ},width:"12em",items:[{type:"button",icon:F0,text:"Copy formatted",title:"Copy selected contents, formatted with indentation (Ctrl+C)",onClick:()=>xr(!0),disabled:!TQ},{type:"button",icon:F0,text:"Copy compacted",title:"Copy selected contents, without indentation (Ctrl+Shift+C)",onClick:()=>xr(!1),disabled:!TQ}]},{type:"button",onClick:()=>Hn(),icon:PS,text:"Paste",title:"Paste clipboard contents (Ctrl+V)",disabled:!U7}]},{type:"separator"},{type:"row",items:[{type:"column",items:[{type:"button",onClick:()=>zr(),icon:$S,text:"Duplicate",title:"Duplicate selected contents (Ctrl+D)",disabled:!K7},{type:"button",onClick:()=>t0(),icon:TW,text:"Extract",title:"Extract selected contents",disabled:!Y7},{type:"button",onClick:()=>Or(),icon:l4,text:"Sort",title:"Sort array or object contents",disabled:Zi||!Zo},{type:"button",onClick:()=>Pr(),icon:s4,text:"Transform",title:"Transform array or object contents (filter, sort, project)",disabled:Zi||!Zo},{type:"button",onClick:()=>So(),icon:E5,text:"Remove",title:"Remove selected contents (Delete)",disabled:Zi||!Zo}]},{type:"column",items:[{type:"label",text:sI},{type:"button",onClick:()=>is("structure"),icon:Ol?c4:gC,text:"Structure",title:sI+" structure like the first item in the array",disabled:!rr},{type:"button",onClick:()=>is("object"),icon:Ol?c4:gC,text:"Object",title:sI+" object",disabled:!ta},{type:"button",onClick:()=>is("array"),icon:Ol?c4:gC,text:"Array",title:sI+" array",disabled:!HQ},{type:"button",onClick:()=>is("value"),icon:Ol?c4:gC,text:"Value",title:sI+" value",disabled:!zQ}]}]},{type:"separator"},{type:"row",items:[{type:"button",onClick:()=>Ta(),icon:YW,text:"Insert before",title:"Select area before current entry to insert or paste contents",disabled:Zi||!Zo||za},{type:"button",onClick:()=>Xc(),icon:_W,text:"Insert after",title:"Select area after current entry to insert or paste contents",disabled:Zi||!Zo||za}]}]}({json:g(aA),documentState:g(mA),selection:g(sA),readOnly:B(),onEditKey:Lt,onEditValue:ii,onToggleEnforceString:_i,onCut:M,onCopy:ni,onPaste:mn,onRemove:Vo,onDuplicate:vo,onExtract:bo,onInsertBefore:wi,onInsert:Mo,onInsertAfter:MA,onConvert:ne,onSort:Di,onTransform:ft}),Tn=(oA=VA()(Ji))!==null&&oA!==void 0?oA:Ji;if(Tn!==!1){var Ht={left:pe,top:he,offsetTop:$e,offsetLeft:bi,width:ge,height:Bt,anchor:YA,closeOnOuterClick:!0,onClose:()=>{uA=!1,Ri()}};uA=!0;var ko=s(GaA,{tip:un?"Tip: you can open this context menu via right-click or with Ctrl+Q":void 0,items:Tn,onRequestClose:()=>a(ko)},Ht)}}function Pt(T){if(!br(g(sA)))if(T&&(T.stopPropagation(),T.preventDefault()),T&&T.type==="contextmenu"&&T.target!==g(l))ln({left:T.clientX,top:T.clientY,width:W0,height:Z0,showTip:!1});else{var oA,YA=(oA=g(c))===null||oA===void 0?void 0:oA.querySelector(".jse-context-menu-pointer.jse-selected");if(YA)ln({anchor:YA,offsetTop:2,width:W0,height:Z0,showTip:!1});else{var pe,he=(pe=g(c))===null||pe===void 0?void 0:pe.getBoundingClientRect();he&&ln({top:he.top+2,left:he.left+2,width:W0,height:Z0,showTip:!1})}}}function $i(T){ln({anchor:OsA(T.target,"BUTTON"),offsetTop:0,width:W0,height:Z0,showTip:!0})}function Rr(){return Ft.apply(this,arguments)}function Ft(){return(Ft=Yt(function*(){if(i("apply pasted json",g(Dt)),g(Dt)){var{onPasteAsJson:T}=g(Dt);y(Dt,void 0),T(),setTimeout(Ri)}})).apply(this,arguments)}function Xn(){return se.apply(this,arguments)}function se(){return(se=Yt(function*(){i("apply pasted multiline text",g(_e)),g(_e)&&(kn(JSON.stringify(g(_e))),setTimeout(Ri))})).apply(this,arguments)}function vi(){i("clear pasted json"),y(Dt,void 0),Ri()}function Yi(){i("clear pasted multiline text"),y(_e,void 0),Ri()}function rn(){BA()(er.text)}function Hr(T){y(sA,T),Ri(),ot(et(T))}function Ri(){i("focus"),g(l)&&(g(l).focus(),g(l).select())}function fs(T){return function(oA,YA,pe){var he=Fi(pe),ge=[hi(pe)],Bt=Ke(oA,he),$e=Bt?VN(Bt,YA,ge):void 0;return $e?Ni(he.concat($e)):t2(pe)}(g(aA),g(mA),T)}function Bo(T){g(A)&&g(A).onDrag(T)}function Q(){g(A)&&g(A).onDragEnd()}var m=$(void 0,!0);fA(()=>g(sA),()=>{var T;T=g(sA),di(T,h())||(i("onSelect",T),lA()(T))}),fA(()=>(k(w()),k(_())),()=>{y(de,V_({escapeControlCharacters:w(),escapeUnicodeCharacters:_()}))}),fA(()=>g(bt),()=>{(function(T){g(c)&&T&&g(c).scrollTop===0&&(hc(c,g(c).style.overflowAnchor="none"),hc(c,g(c).scrollTop+=_3),setTimeout(()=>{g(c)&&hc(c,g(c).style.overflowAnchor="")}))})(g(bt))}),fA(()=>k(E()),()=>{qi(E())}),fA(()=>k(h()),()=>{(function(T){di(g(sA),T)||(i("applyExternalSelection",{selection:g(sA),externalSelection:T}),q3(T)&&y(sA,T))})(h())}),fA(()=>(g(aA),k(U()),k(K()),k(H())),()=>{Ve(g(aA),U(),K(),H())}),fA(()=>(g(c),UrA),()=>{y(A,g(c)?UrA(g(c)):void 0)}),fA(()=>(k(B()),k(D()),k(K()),g(de),k(cA()),k(oe())),()=>{y(m,{mode:er.tree,readOnly:B(),truncateTextSize:D(),parser:K(),normalization:g(de),getJson:rt,getDocumentState:Ei,getSelection:tn,findElement:on,findNextInside:fs,focus:Ri,onPatch:dt,onInsert:Yn,onExpand:ve,onSelect:xt,onFind:ri,onExpandSection:pn,onPasteJson:Fn,onRenderValue:cA(),onContextMenu:ln,onClassName:oe()||(()=>{}),onDrag:Bo,onDragEnd:Q})}),fA(()=>g(m),()=>{i("context changed",g(m))}),Qn(),Zt(!0);var v=kJA();ce("mousedown",A2,function(T){!yQ(T.target,oA=>oA===g(I))&&br(g(sA))&&(i("click outside the editor, exit edit mode"),y(sA,Hg(g(sA))),C&&g(l)&&(g(l).focus(),g(l).blur()),i("blur (outside editor)"),g(l)&&g(l).blur())});var p,N=vt(v),J=W(N),V=T=>{(function(oA,YA){mt(YA,!1);var pe=$(void 0,!0),he=$(void 0,!0),ge=$(void 0,!0),Bt=b(YA,"json",9),$e=b(YA,"selection",9),bi=b(YA,"readOnly",9),un=b(YA,"showSearch",13,!1),Ji=b(YA,"history",9),Tn=b(YA,"onExpandAll",9),Ht=b(YA,"onCollapseAll",9),ko=b(YA,"onUndo",9),Sn=b(YA,"onRedo",9),no=b(YA,"onSort",9),gn=b(YA,"onTransform",9),Nt=b(YA,"onContextMenu",9),Zi=b(YA,"onCopy",9),_t=b(YA,"onRenderMenu",9);function st(){un(!un())}var si=$(void 0,!0),Eo=$(void 0,!0),xr=$(void 0,!0),Hn=$(void 0,!0);fA(()=>k(Bt()),()=>{y(pe,Bt()!==void 0)}),fA(()=>(g(pe),k($e()),an),()=>{y(he,g(pe)&&(Kn($e())||kr($e())||an($e())))}),fA(()=>(k(Tn()),k(Bt())),()=>{y(si,{type:"button",icon:_YA,title:"Expand all",className:"jse-expand-all",onClick:Tn(),disabled:!No(Bt())})}),fA(()=>(k(Ht()),k(Bt())),()=>{y(Eo,{type:"button",icon:GYA,title:"Collapse all",className:"jse-collapse-all",onClick:Ht(),disabled:!No(Bt())})}),fA(()=>k(Bt()),()=>{y(xr,{type:"button",icon:g4,title:"Search (Ctrl+F)",className:"jse-search",onClick:st,disabled:Bt()===void 0})}),fA(()=>(k(bi()),g(si),g(Eo),k(no()),k(Bt()),k(gn()),g(xr),k(Nt()),k(ko()),k(Ji()),k(Sn()),k(Zi()),g(he)),()=>{y(Hn,bi()?[g(si),g(Eo),{type:"separator"},{type:"button",icon:F0,title:"Copy (Ctrl+C)",className:"jse-copy",onClick:Zi(),disabled:!g(he)},{type:"separator"},g(xr),{type:"space"}]:[g(si),g(Eo),{type:"separator"},{type:"button",icon:l4,title:"Sort",className:"jse-sort",onClick:no(),disabled:bi()||Bt()===void 0},{type:"button",icon:s4,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:gn(),disabled:bi()||Bt()===void 0},g(xr),{type:"button",icon:WS,title:AG,className:"jse-contextmenu",onClick:Nt()},{type:"separator"},{type:"button",icon:h5,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:ko(),disabled:!Ji().canUndo},{type:"button",icon:Q5,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:Sn(),disabled:!Ji().canRedo},{type:"space"}])}),fA(()=>(k(_t()),g(Hn)),()=>{y(ge,_t()(g(Hn))||g(Hn))}),Qn(),Zt(!0),Oy(oA,{get items(){return g(ge)}}),pt()})(T,{get json(){return g(aA)},get selection(){return g(sA)},get readOnly(){return B()},get history(){return u()},onExpandAll:Qt,onCollapseAll:yi,onUndo:Wt,onRedo:Xe,onSort:Ut,onTransform:Qi,onContextMenu:$i,onCopy:ni,get onRenderMenu(){return pA()},get showSearch(){return g(bt)},set showSearch(oA){y(bt,oA)},$$legacy:!0})};LA(J,T=>{L()&&T(V)});var Z=IA(J,2),FA=T=>{tJA(T,{get json(){return g(aA)},get selection(){return g(sA)},onSelect:Hr,get onError(){return gA()},get pathParser(){return q()}})};LA(Z,T=>{R()&&T(FA)});var te=IA(Z,2),re=T=>{var oA=bJA(),YA=vt(oA),pe=W(YA);pe.readOnly=!0,Co(pe,$e=>y(l,$e),()=>g(l));var he=IA(YA,2),ge=$e=>{var bi=_o(),un=vt(bi),Ji=Ht=>{(function(ko,Sn){mt(Sn,!0);var no=HYA();no.__click=[JYA,Sn];var gn=IA(W(no),2),Nt=IA(W(gn),2),Zi=_t=>{var st=TYA(),si=IA(vt(st),2);En(si,"title","Create an empty JSON object (press '{')"),si.__click=[KYA,Sn];var Eo=IA(si,2);En(Eo,"title","Create an empty JSON array (press '[')"),Eo.__click=[YYA,Sn],iA(_t,st)};LA(Nt,_t=>{Sn.readOnly||_t(Zi)}),iA(ko,no),pt()})(Ht,{get readOnly(){return B()},onCreateObject:()=>{Ri(),me("{")},onCreateArray:()=>{Ri(),me("[")},onClick:()=>{Ri()}})},Tn=Ht=>{var ko=DJA(),Sn=vt(ko),no=qA(()=>B()?[]:[{icon:a4,text:"Repair manually",title:'Open the document in "code" mode and repair it manually',onClick:rn}]);mc(Sn,{type:"error",message:"The loaded JSON document is invalid and could not be repaired automatically.",get actions(){return g(no)}}),_aA(IA(Sn,2),{get text(){return g(le)},get json(){return g(aA)},get indentation(){return j()},get parser(){return K()}}),iA(Ht,ko)};LA(un,Ht=>{g(le)===""||g(le)===void 0?Ht(Ji):Ht(Tn,!1)}),iA($e,bi)},Bt=$e=>{var bi=vJA(),un=vt(bi);MaA(W(un),{get json(){return g(aA)},get documentState(){return g(mA)},get parser(){return K()},get showSearch(){return g(bt)},get showReplace(){return g(Re)},get readOnly(){return B()},columns:void 0,onSearch:$t,onFocus:x,onPatch:dt,onClose:P});var Ji=IA(un,2);En(Ji,"data-jsoneditor-scrollable-contents",!0);var Tn=W(Ji),Ht=_t=>{iA(_t,yJA())};LA(Tn,_t=>{g(bt)&&_t(Ht)}),x_(IA(Tn,2),{get value(){return g(aA)},pointer:"",get state(){return g(mA)},get validationErrors(){return g(DA)},get searchResults(){return g(Le)},get selection(){return g(sA)},get context(){return g(m)},get onDragSelectionStart(){return $o}}),Co(Ji,_t=>y(c,_t),()=>g(c));var ko=IA(Ji,2),Sn=_t=>{var st=qA(()=>(g(Dt),nA(()=>"You pasted a JSON ".concat(Array.isArray(g(Dt).contents)?"array":"object"," as text")))),si=qA(()=>[{icon:L0,text:"Paste as JSON instead",title:"Replace the value with the pasted JSON",onMouseDown:Rr},{text:"Leave as is",title:"Keep the JSON embedded in the value",onClick:vi}]);mc(_t,{type:"info",get message(){return g(st)},get actions(){return g(si)}})};LA(ko,_t=>{g(Dt)&&_t(Sn)});var no=IA(ko,2),gn=_t=>{var st=qA(()=>[{icon:L0,text:"Paste as string instead",title:"Paste the clipboard data as a single string value instead of an array",onClick:Xn},{text:"Leave as is",title:"Keep the pasted array",onClick:Yi}]);mc(_t,{type:"info",message:"Multiline text was pasted as array",get actions(){return g(st)}})};LA(no,_t=>{g(_e)&&_t(gn)});var Nt=IA(no,2),Zi=_t=>{var st=qA(()=>B()?[]:[{icon:u5,text:"Ok",title:"Accept the repaired document",onClick:Tt},{icon:a4,text:"Repair manually instead",title:"Leave the document unchanged and repair it manually instead",onClick:rn}]);mc(_t,{type:"success",message:"The loaded JSON document was invalid but is successfully repaired.",get actions(){return g(st)},onClose:Ri})};LA(Nt,_t=>{g(Ee)&&_t(Zi)}),dG(IA(Nt,2),{get validationErrors(){return g(kA)},selectError:X}),iA($e,bi)};LA(he,$e=>{g(aA)===void 0?$e(ge):$e(Bt,!1)}),ce("paste",pe,dn),iA(T,oA)},Pe=T=>{iA(T,MJA())};LA(te,T=>{n?T(Pe,!1):T(re)}),Co(N,T=>y(I,T),()=>g(I));var ze=IA(N,2),ye=T=>{DaA(T,{onClose:()=>y(eA,!1)})};LA(ze,T=>{g(eA)&&T(ye)});var Ge=IA(ze,2),Vi=T=>{yaA(T,z1(()=>g(UA),{onClose:()=>{var oA;(oA=g(UA))===null||oA===void 0||oA.onClose(),y(UA,void 0)}}))};return LA(Ge,T=>{g(UA)&&T(Vi)}),De(T=>p=Vt(N,1,"jse-tree-mode svelte-vrx1dr",null,p,T),[()=>({"no-main-menu":!L()})],qA),ce("keydown",N,function(T){var oA=n2(T),YA=T.shiftKey;if(i("keydown",{combo:oA,key:T.key}),oA==="Ctrl+X"&&(T.preventDefault(),M(!0)),oA==="Ctrl+Shift+X"&&(T.preventDefault(),M(!1)),oA==="Ctrl+C"&&(T.preventDefault(),ni(!0)),oA==="Ctrl+Shift+C"&&(T.preventDefault(),ni(!1)),oA==="Ctrl+D"&&(T.preventDefault(),vo()),oA!=="Delete"&&oA!=="Backspace"||(T.preventDefault(),Vo()),oA==="Insert"&&(T.preventDefault(),Yn("structure")),oA==="Ctrl+A"&&(T.preventDefault(),y(sA,Ni([]))),oA==="Ctrl+Q"&&Pt(T),oA==="ArrowUp"||oA==="Shift+ArrowUp"){T.preventDefault();var pe=g(sA)?QrA(g(aA),g(mA),g(sA),YA)||g(sA):WE(g(aA),g(mA));y(sA,pe),Ai(et(pe))}if(oA==="ArrowDown"||oA==="Shift+ArrowDown"){T.preventDefault();var he=g(sA)?function(Ji,Tn,Ht){var ko=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(Ht){var Sn=ko?et(Ht):P1(Ji,Ht),no=No(Ke(Ji,Sn))?IrA(Ji,Tn,Sn,!0):Tn,gn=VN(Ji,Tn,Sn),Nt=VN(Ji,no,Sn);if(ko)return fr(Ht)?gn!==void 0?_s(gn,gn):void 0:Ua(Ht)?Nt!==void 0?_s(Nt,Nt):void 0:Nt!==void 0?_s(OC(Ht),Nt):void 0;if(Ua(Ht))return Nt!==void 0?Ni(Nt):void 0;if(fr(Ht)||an(Ht))return gn!==void 0?Ni(gn):void 0;if(kr(Ht)){if(gn===void 0||gn.length===0)return;var Zi=Fi(gn),_t=Ke(Ji,Zi);return Array.isArray(_t)?Ni(gn):o2(gn)}return Kn(Ht)?Nt!==void 0?Ni(Nt):gn!==void 0?Ni(gn):void 0:void 0}}(g(aA),g(mA),g(sA),YA)||g(sA):WE(g(aA),g(mA));y(sA,he),Ai(et(he))}if(oA==="ArrowLeft"||oA==="Shift+ArrowLeft"){T.preventDefault();var ge=g(sA)?function(Ji,Tn,Ht){var ko=arguments.length>3&&arguments[3]!==void 0&&arguments[3],Sn=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(Ht){var{caret:no,previous:gn}=hrA(Ji,Tn,Ht,Sn);if(ko)return Kn(Ht)?void 0:_s(Ht.path,Ht.path);if(no&&gn)return D_(gn);var Nt=Fi(et(Ht)),Zi=Ke(Ji,Nt);return an(Ht)&&Array.isArray(Zi)?_s(Ht.path,Ht.path):Kn(Ht)&&!Array.isArray(Zi)?o2(Ht.focusPath):void 0}}(g(aA),g(mA),g(sA),YA,!B())||g(sA):WE(g(aA),g(mA));y(sA,ge),Ai(et(ge))}if(oA==="ArrowRight"||oA==="Shift+ArrowRight"){T.preventDefault();var Bt=g(sA)&&g(aA)!==void 0?function(Ji,Tn,Ht){var ko=arguments.length>3&&arguments[3]!==void 0&&arguments[3],Sn=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(Ht){var{caret:no,next:gn}=hrA(Ji,Tn,Ht,Sn);return ko?Kn(Ht)?void 0:_s(Ht.path,Ht.path):no&&gn?D_(gn):Kn(Ht)?Ni(Ht.focusPath):void 0}}(g(aA),g(mA),g(sA),YA,!B())||g(sA):WE(g(aA),g(mA));y(sA,Bt),Ai(et(Bt))}if(oA==="Enter"&&g(sA)){if(Yy(g(sA))){var $e=g(sA).focusPath,bi=Ke(g(aA),Fi($e));Array.isArray(bi)&&(T.preventDefault(),y(sA,Ni($e)))}kr(g(sA))&&(T.preventDefault(),y(sA,fe(fe({},g(sA)),{},{edit:!0}))),an(g(sA))&&(T.preventDefault(),No(Ke(g(aA),g(sA).path))?ve(g(sA).path,!0):y(sA,fe(fe({},g(sA)),{},{edit:!0})))}if(oA.replace(/^Shift\+/,"").length===1&&g(sA))return T.preventDefault(),void me(T.key);if(oA==="Enter"&&(Ua(g(sA))||fr(g(sA))))return T.preventDefault(),void me("");if(oA==="Ctrl+Enter"&&an(g(sA))){var un=Ke(g(aA),g(sA).path);Uy(un)&&window.open(String(un),"_blank")}oA==="Escape"&&g(sA)&&(T.preventDefault(),y(sA,void 0)),oA==="Ctrl+F"&&(T.preventDefault(),ri(!1)),oA==="Ctrl+H"&&(T.preventDefault(),ri(!0)),oA==="Ctrl+Z"&&(T.preventDefault(),Wt()),oA==="Ctrl+Shift+Z"&&(T.preventDefault(),Xe())}),ce("mousedown",N,function(T){i("handleMouseDown",T);var oA=T.target;zsA(oA,"BUTTON")||oA.isContentEditable||(Ri(),g(sA)||g(aA)!==void 0||g(le)!==""&&g(le)!==void 0||(i("createDefaultSelection"),y(sA,Ni([]))))}),ce("contextmenu",N,Pt),iA(t,v),zt(e,"expand",bA),zt(e,"collapse",Be),zt(e,"validate",ZA),zt(e,"getJson",rt),zt(e,"patch",Ot),zt(e,"acceptAutoRepair",Tt),zt(e,"openTransformModal",cn),zt(e,"scrollTo",ot),zt(e,"findElement",on),zt(e,"findSearchResult",hn),zt(e,"focus",Ri),pt({expand:bA,collapse:Be,validate:ZA,getJson:rt,patch:Ot,acceptAutoRepair:Tt,openTransformModal:cn,scrollTo:ot,findElement:on,findSearchResult:hn,focus:Ri})}function UaA(t){return typeof(e=t)!="object"||e===null?t:new Proxy(t,{get:(A,i,n)=>UaA(Reflect.get(A,i,n)),set:()=>!1,deleteProperty:()=>!1});var e}var oy=Sr("jsoneditor:History");function KaA(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=t.maxItems||1e3,A=[],i=0;function n(){return i0}function r(){return{canUndo:n(),canRedo:o(),items:()=>A.slice().reverse(),add:a,undo:l,redo:I,clear:c}}function s(){t.onChange&&t.onChange(r())}function a(C){oy("add",C),A=[C].concat(A.slice(i)).slice(0,e),i=0,s()}function c(){oy("clear"),A=[],i=0,s()}function l(){if(n()){var C=A[i];return i+=1,oy("undo",C),s(),C}}function I(){if(o())return oy("redo",A[i-=1]),s(),A[i]}return{get:r}}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-transform-modal-inner.svelte-rrrjnb { - flex: 1; - display: flex; - flex-direction: column; - min-width: 0; - min-height: 0; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) { - color: inherit; - flex: 1; - display: flex; - flex-direction: column; - padding: 0; - overflow: auto; - min-width: 0; - min-height: 0; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) { - display: flex; - flex-direction: row; - justify-content: flex-end; - padding-top: var(--jse-padding, 10px); -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) button.jse-primary:where(.svelte-rrrjnb) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); - color: var(--jse-button-primary-color, #fff); - padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); - border-radius: 3px; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) button.jse-primary:where(.svelte-rrrjnb):hover { - background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) button.jse-primary:where(.svelte-rrrjnb):disabled { - background: var(--jse-button-primary-background-disabled, #9d9d9d); -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) { - flex: 1; - display: flex; - gap: calc(2 * var(--jse-padding, 10px)); - min-height: 0; - box-sizing: border-box; - padding: 0 calc(2 * var(--jse-padding, 10px)) var(--jse-padding, 10px); -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) { - flex: 1; - display: flex; - flex-direction: column; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) p { - margin: var(--jse-padding, 10px) 0; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) p:first-child { - margin-top: 0; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) p:last-child { - margin-bottom: 0; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) code { - background: var(--jse-modal-code-background, rgba(0, 0, 0, 0.05)); - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .query-error:where(.svelte-rrrjnb) { - color: var(--jse-error-color, #ee5341); -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) textarea.jse-query:where(.svelte-rrrjnb) { - flex: 1; - outline: none; - resize: vertical; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) { - flex: 1; - display: flex; - flex-direction: column; - gap: calc(2 * var(--jse-padding, 10px)); -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-original-data:where(.svelte-rrrjnb) { - flex: 1; - display: flex; - flex-direction: column; - min-height: 0; - box-sizing: border-box; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-original-data.jse-hide:where(.svelte-rrrjnb) { - flex: none; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-preview-data:where(.svelte-rrrjnb) { - flex: 1; - display: flex; - flex-direction: column; - min-height: 0; - box-sizing: border-box; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents.jse-hide-original-data:where(.svelte-rrrjnb) { - flex-direction: column; - gap: 0; - margin-bottom: 0; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) { - padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)) calc(2 * var(--jse-padding, 10px)); -} -@media screen and (max-width: 1200px) { - .jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) { - flex-direction: column; - overflow: auto; - } - .jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) textarea.jse-query:where(.svelte-rrrjnb) { - min-height: 150px; - flex: none; - } - .jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-tree-mode { - height: 300px; - flex: none; - } -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-label:where(.svelte-rrrjnb) { - font-weight: bold; - display: block; - box-sizing: border-box; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-label:where(.svelte-rrrjnb) .jse-label-inner:where(.svelte-rrrjnb) { - margin-top: calc(2 * var(--jse-padding, 10px)); - margin-bottom: calc(0.5 * var(--jse-padding, 10px)); - box-sizing: border-box; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-label:where(.svelte-rrrjnb) .jse-label-inner:where(.svelte-rrrjnb) button:where(.svelte-rrrjnb) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - font-weight: bold; - padding: 0; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-tree-mode { - flex: 1; - background: var(--jse-input-background-readonly, transparent); - box-shadow: none; - box-sizing: border-box; - --jse-main-border: var(--jse-input-border, 1px solid #d8dbdf); -} -.jse-transform-modal-inner.svelte-rrrjnb input:where(.svelte-rrrjnb), -.jse-transform-modal-inner.svelte-rrrjnb textarea:where(.svelte-rrrjnb) { - border: var(--jse-input-border, 1px solid #d8dbdf); - outline: none; - box-sizing: border-box; - padding: calc(0.5 * var(--jse-padding, 10px)); - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - color: inherit; - background: var(--jse-input-background, var(--jse-background-color, #fff)); -} -.jse-transform-modal-inner.svelte-rrrjnb input:where(.svelte-rrrjnb):focus, -.jse-transform-modal-inner.svelte-rrrjnb textarea:where(.svelte-rrrjnb):focus { - border: var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa))); -} -.jse-transform-modal-inner.svelte-rrrjnb input:where(.svelte-rrrjnb):read-only, -.jse-transform-modal-inner.svelte-rrrjnb textarea:where(.svelte-rrrjnb):read-only { - background: var(--jse-input-background-readonly, transparent); -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-preview.jse-error:where(.svelte-rrrjnb) { - flex: 1; - background: var(--jse-input-background-readonly, transparent); - border: var(--jse-input-border, 1px solid #d8dbdf); - color: var(--jse-error-color, #ee5341); - padding: calc(0.5 * var(--jse-padding, 10px)); -} -.jse-transform-modal-inner.svelte-rrrjnb a { - color: var(--jse-a-color, #156fc5); -} -.jse-transform-modal-inner.svelte-rrrjnb a:hover { - color: var(--jse-a-color-highlight, #0f508d); -}`);var L3=Gy(()=>xUA),$E=Gy(()=>LUA),SJA=wA('
        '),RJA=wA(" ",1),xJA=wA('
        '),LJA=wA('
        Language
        Path
        Query
        Preview
        ',1),FJA=wA('
        ');function NJA(t,e){var A,i,n;mt(e,!1);var o=Sr("jsoneditor:TransformModal"),r=b(e,"id",25,()=>"transform-modal-"+nQ()),s=b(e,"json",9),a=b(e,"rootPath",25,()=>[]),c=b(e,"indentation",9),l=b(e,"truncateTextSize",9),I=b(e,"escapeControlCharacters",9),C=b(e,"escapeUnicodeCharacters",9),d=b(e,"parser",9),B=b(e,"parseMemoizeOne",9),E=b(e,"validationParser",9),h=b(e,"pathParser",9),u=b(e,"queryLanguages",9),D=b(e,"queryLanguageId",13),L=b(e,"onChangeQueryLanguage",9),R=b(e,"onRenderValue",9),w=b(e,"onRenderMenu",9),_=b(e,"onRenderContextMenu",9),K=b(e,"onClassName",9),z=b(e,"onTransform",9),U=b(e,"onClose",9),H=$(void 0,!0),q=$(KaA({onChange:mA=>y(q,mA)}).get(),!0),j=$(void 0,!0),gA=$(void 0,!0),QA=$(!1,!0),BA="".concat(r(),":").concat(Ct(a())),lA=(A=L3()[BA])!==null&&A!==void 0?A:{},vA=$($E().showWizard!==!1,!0),tA=$($E().showOriginal!==!1,!0),cA=$((i=lA.queryOptions)!==null&&i!==void 0?i:{},!0),pA=$(D()===lA.queryLanguageId&&lA.query?lA.query:"",!0),VA=$((n=lA.isManual)!==null&&n!==void 0&&n,!0),oe=$(void 0,!0),KA=$(void 0,!0),CA=$({text:""},!0);function TA(mA){var sA;return(sA=u().find(xt=>xt.id===mA))!==null&&sA!==void 0?sA:u()[0]}function Ze(mA){try{y(cA,mA),y(pA,TA(D()).createQuery(g(j),mA)),y(oe,void 0),y(VA,!1),o("updateQueryByWizard",{queryOptions:g(cA),query:g(pA),isManual:g(VA)})}catch(sA){y(oe,String(sA))}}function He(mA){y(pA,mA.target.value),y(VA,!0),o("handleChangeQuery",{query:g(pA),isManual:g(VA)})}g(VA)||Ze(g(cA)),hs(()=>{var mA;(mA=g(H))===null||mA===void 0||mA.focus()});var uA=oE(function(mA,sA){if(mA===void 0)return y(CA,{text:""}),void y(KA,"Error: No JSON");if(sA.trim()!=="")try{o("previewTransform",{query:sA});var xt=TA(D()).executeQuery(mA,sA,d());y(CA,{json:xt}),y(KA,void 0)}catch(tt){y(CA,{text:""}),y(KA,String(tt))}else y(CA,{json:mA})},300);function eA(){if(g(j)===void 0)return y(CA,{text:""}),void y(KA,"Error: No JSON");try{o("handleTransform",{query:g(pA)});var mA=TA(D()).executeQuery(g(j),g(pA),d());z()([{op:"replace",path:Ct(a()),value:mA}]),U()()}catch(sA){console.error(sA),y(CA,{text:""}),y(KA,String(sA))}}function UA(){y(vA,!g(vA)),$E($E().showWizard=g(vA))}function aA(){y(tA,!g(tA)),$E($E().showOriginal=g(tA))}function le(mA){mA.focus()}function SA(mA){o("handleChangeQueryLanguage",mA),D(mA),L()(mA),Ze(g(cA))}function Ue(){g(QA)?y(QA,!g(QA)):U()()}fA(()=>(k(s()),k(a())),()=>{y(j,UaA(Ke(s(),a())))}),fA(()=>g(j),()=>{y(gA,g(j)?{json:g(j)}:{text:""})}),fA(()=>(g(j),g(pA)),()=>{uA(g(j),g(pA))}),fA(()=>(L3(),g(cA),g(pA),k(D()),g(VA)),()=>{L3(L3()[BA]={queryOptions:g(cA),query:g(pA),queryLanguageId:D(),isManual:g(VA)}),o("store state in memory",BA,L3()[BA])}),Qn(),Zt(!0),X3(t,{get onClose(){return U()},className:"jse-transform-modal",get fullscreen(){return g(QA)},children:(mA,sA)=>{var xt=FJA();f_(W(xt),{children:(tt,de)=>{var Dt=LJA(),_e=vt(Dt);(function(M,We){mt(We,!1);var ni,pi=b(We,"queryLanguages",9),dn=b(We,"queryLanguageId",9),mn=b(We,"fullscreen",13),Uo=b(We,"onChangeQueryLanguage",9),kn=b(We,"onClose",9),Wn=$(void 0,!0),{openAbsolutePopup:Vo,closeAbsolutePopup:vo}=$1("absolute-popup");function bo(){var Yn={queryLanguages:pi(),queryLanguageId:dn(),onChangeQueryLanguage:Mo=>{vo(ni),Uo()(Mo)}};ni=Vo(MKA,Yn,{offsetTop:-2,offsetLeft:0,anchor:g(Wn),closeOnOuterClick:!0})}Zt(!0),My(M,{title:"Transform",fullScreenButton:!0,get onClose(){return kn()},get fullscreen(){return mn()},set fullscreen(Yn){mn(Yn)},$$slots:{actions:(Yn,Mo)=>{var ne,wi=RKA();ji(W(wi),{get data(){return HW}}),Co(wi,MA=>y(Wn,MA),()=>g(Wn)),De(MA=>ne=Vt(wi,1,"jse-config svelte-1kpylsp",null,ne,MA),[()=>({hide:pi().length<=1})],qA),ce("click",wi,bo),iA(Yn,wi)}},$$legacy:!0}),pt()})(_e,{get queryLanguages(){return u()},get queryLanguageId(){return D()},onChangeQueryLanguage:SA,get onClose(){return U()},get fullscreen(){return g(QA)},set fullscreen(M){y(QA,M)},$$legacy:!0});var Le=W(IA(_e,2)),bt=W(Le),Re=IA(W(bt),2);bsA(W(Re),()=>(k(D()),nA(()=>TA(D()).description)));var $t=IA(Re,4),x=IA($t,2),Y=W(x),P=W(Y),X=W(P),bA=qA(()=>g(vA)?mg:sE);ji(X,{get data(){return g(bA)}});var Be=IA(x,2),Ee=M=>{var We=_o(),ni=vt(We),pi=mn=>{var Uo=RJA(),kn=vt(Uo);yKA(kn,{get queryOptions(){return g(cA)},get json(){return g(j)},onChange:Ze});var Wn=IA(kn,2),Vo=vo=>{var bo=SJA(),Yn=W(bo);De(()=>wt(Yn,g(oe))),iA(vo,bo)};LA(Wn,vo=>{g(oe)&&vo(Vo)}),iA(mn,Uo)},dn=mn=>{iA(mn,Tr("(Only available for arrays, not for objects)"))};LA(ni,mn=>{g(j),nA(()=>Array.isArray(g(j)))?mn(pi):mn(dn,!1)}),iA(M,We)};LA(Be,M=>{g(vA)&&M(Ee)});var kA=IA(Be,4);Co(kA,M=>y(H,M),()=>g(H));var DA,gt,Ve=IA(bt,2),ZA=W(Ve),rt=W(ZA),Ei=W(rt),tn=W(Ei),qi=W(tn),xe=qA(()=>g(tA)?mg:sE);ji(qi,{get data(){return g(xe)}});var nn=IA(rt,2),mi=M=>{U_(M,{get externalContent(){return g(gA)},externalSelection:void 0,get history(){return g(q)},readOnly:!0,get truncateTextSize(){return l()},mainMenuBar:!1,navigationBar:!1,get indentation(){return c()},get escapeControlCharacters(){return I()},get escapeUnicodeCharacters(){return C()},get parser(){return d()},get parseMemoizeOne(){return B()},get onRenderValue(){return R()},get onRenderMenu(){return w()},get onRenderContextMenu(){return _()},onError:nA(()=>console.error),get onChange(){return $o},get onChangeMode(){return $o},get onSelect(){return $o},get onUndo(){return $o},get onRedo(){return $o},get onFocus(){return $o},get onBlur(){return $o},get onSortModal(){return $o},get onTransformModal(){return $o},get onJSONEditorModal(){return $o},get onClassName(){return K()},validator:void 0,get validationParser(){return E()},get pathParser(){return h()}})};LA(nn,M=>{g(tA)&&M(mi)});var Ot=IA(ZA,2),Lt=IA(W(Ot),2),ii=M=>{U_(M,{get externalContent(){return g(CA)},externalSelection:void 0,get history(){return g(q)},readOnly:!0,get truncateTextSize(){return l()},mainMenuBar:!1,navigationBar:!1,get indentation(){return c()},get escapeControlCharacters(){return I()},get escapeUnicodeCharacters(){return C()},get parser(){return d()},get parseMemoizeOne(){return B()},get onRenderValue(){return R()},get onRenderMenu(){return w()},get onRenderContextMenu(){return _()},onError:nA(()=>console.error),get onChange(){return $o},get onChangeMode(){return $o},get onSelect(){return $o},get onUndo(){return $o},get onRedo(){return $o},get onFocus(){return $o},get onBlur(){return $o},get onSortModal(){return $o},get onTransformModal(){return $o},get onJSONEditorModal(){return $o},get onClassName(){return K()},validator:void 0,get validationParser(){return E()},get pathParser(){return h()}})},_i=M=>{var We=xJA(),ni=W(We);De(()=>wt(ni,g(KA))),iA(M,We)};LA(Lt,M=>{g(KA)?M(_i,!1):M(ii)});var Tt=W(IA(Le,2));es(()=>ce("click",Tt,eA)),Us(Tt,M=>le?.(M)),De((M,We,ni)=>{VC($t,M),VC(kA,g(pA)),DA=Vt(Ve,1,"jse-data-contents svelte-rrrjnb",null,DA,We),gt=Vt(ZA,1,"jse-original-data svelte-rrrjnb",null,gt,ni),Tt.disabled=!!g(KA)},[()=>(k(Oi),k(a()),k(Ka),nA(()=>Oi(a())?"(document root)":Ka(a()))),()=>({"jse-hide-original-data":!g(tA)}),()=>({"jse-hide":!g(tA)})],qA),ce("click",P,UA),ce("input",kA,He),ce("click",tn,aA),iA(tt,Dt)},$$slots:{default:!0}}),Us(xt,(tt,de)=>ky?.(tt,de),()=>Ue),iA(mA,xt)},$$slots:{default:!0}}),pt()}function Oc(){}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-status-bar.svelte-1ulj7zd { - background: var(--jse-panel-background, #ebebeb); - color: var(--jse-panel-color-readonly, #b2b2b2); - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - margin: 0; - border-top: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); - border-left: var(--jse-main-border, 1px solid #d7d7d7); - border-right: var(--jse-main-border, 1px solid #d7d7d7); - display: flex; - gap: var(--jse-padding, 10px); -} -.jse-status-bar.svelte-1ulj7zd:last-child { - border-bottom: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-status-bar.svelte-1ulj7zd .jse-status-bar-info:where(.svelte-1ulj7zd) { - padding: 2px; -}`);var _JA=wA('
        '),GJA=wA('
        '),UJA=wA('
        '),KJA=wA('
        '),EG=TE.define([{tag:Se.propertyName,color:"var(--internal-key-color)"},{tag:Se.number,color:"var(--internal-value-color-number)"},{tag:Se.bool,color:"var(--internal-value-color-boolean)"},{tag:Se.string,color:"var(--internal-value-color-string)"},{tag:Se.keyword,color:"var(--internal-value-color-null)"}]),YJA=HF(EG),JJA=EG.style;EG.style=t=>JJA(t||[]);var TJA=[go.fromClass(class{constructor(t){this.view=t,this.indentUnit=Ml(t.state),this.initialPaddingLeft=null,this.isChrome=window?.navigator.userAgent.includes("Chrome"),this.generate(t.state)}update(t){var e=Ml(t.state);(e!==this.indentUnit||t.docChanged||t.viewportChanged)&&(this.indentUnit=e,this.generate(t.state))}generate(t){var e=new ds;this.initialPaddingLeft?this.addStyleToBuilder(e,t,this.initialPaddingLeft):this.view.requestMeasure({read:A=>{var i=A.contentDOM.querySelector(".cm-line");i&&(this.initialPaddingLeft=window.getComputedStyle(i).getPropertyValue("padding-left"),this.addStyleToBuilder(e,A.state,this.initialPaddingLeft)),this.decorations=e.finish()}}),this.decorations=e.finish()}addStyleToBuilder(t,e,A){var i=this.getVisibleLines(e);for(var n of i){var{numColumns:o,containsTab:r}=this.numColumns(n.text,e.tabSize),s="calc(".concat(o+this.indentUnit,"ch + ").concat(A,")"),a=this.isChrome?"calc(-".concat(o+this.indentUnit,"ch - ").concat(r?1:0,"px)"):"-".concat(o+this.indentUnit,"ch");t.add(n.from,n.from,ut.line({attributes:{style:"padding-left: ".concat(s,"; text-indent: ").concat(a,";")}}))}}getVisibleLines(t){var e=new Set,A=null;for(var{from:i,to:n}of this.view.visibleRanges)for(var o=i;o<=n;){var r=t.doc.lineAt(o);A!==r&&(e.add(r),A=r),o=r.to+1}return e}numColumns(t,e){var A=0,i=!1;A:for(var n=0;nt.decorations})];Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-text-mode.svelte-xt61xw { - --internal-key-color: var(--jse-key-color, #1a1a1a); - --internal-value-color-number: var(--jse-value-color-number, #ee422e); - --internal-value-color-boolean: var(--jse-value-color-boolean, #ff8c00); - --internal-value-color-string: var(--jse-value-color-string, #008000); - --internal-value-color-null: var(--jse-value-color-null, #004ed0); - flex: 1; - box-sizing: border-box; - display: flex; - flex-direction: column; - background: var(--jse-background-color, #fff); -} -.jse-text-mode.no-main-menu.svelte-xt61xw { - border-top: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) { - flex: 1; - display: flex; - position: relative; - flex-direction: column; - overflow: hidden; - min-width: 0; - min-height: 0; - border-left: var(--jse-main-border, 1px solid #d7d7d7); - border-right: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw):last-child { - border-bottom: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-text-mode.svelte-xt61xw .jse-contents.jse-hidden:where(.svelte-xt61xw) { - visibility: hidden; - position: absolute; - top: 0; - left: 0; -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor { - flex: 1; - overflow: hidden; -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-scroller { - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - line-height: var(--jse-line-height, calc(1em + 4px)); - color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-gutters { - background: var(--jse-panel-background, #ebebeb); - color: var(--jse-panel-color-readonly, #b2b2b2); - border-right: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-activeLine, -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-activeLineGutter { - background: var(--jse-active-line-background-color, rgba(0, 0, 0, 0.06)); -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-selectionBackground { - background: var(--jse-selection-background-color, #d3d3d3); -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-searchMatch { - background-color: var(--jse-search-match-color, #ffe665); - outline: var(--jse-search-match-outline, none); -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-searchMatch.cm-searchMatch-selected { - background-color: var(--jse-search-match-active-color, var(--jse-search-match-color, #ffe665)); - outline: var(--jse-search-match-outline, 2px solid #e0be00); -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-selectionMatch { - background-color: var(--jse-search-match-background-color, rgba(153, 255, 119, 0.5019607843)); -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-foldPlaceholder { - background: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); - color: var(--jse-tag-color, var(--jse-text-color-inverse, #fff)); - border: none; - padding: 0 var(--jse-padding, 10px); -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-tooltip { - font-size: var(--jse-font-size, 16px); - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - color: var(--jse-tooltip-color, var(--jse-text-color, #4d4d4d)); - background: var(--jse-tooltip-background, var(--jse-modal-background, #f5f5f5)); - border: var(--jse-tooltip-border, var(--jse-main-border, 1px solid #d7d7d7)); -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-diagnosticAction { - background: var(--jse-tooltip-action-button-color, var(--jse-text-color-inverse, #fff)); - background: var(--jse-tooltip-action-button-background, #4d4d4d); -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-panels { - border-bottom: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-search { - background: var(--jse-panel-background, #ebebeb); - color: var(--jse-panel-color, var(--jse-text-color, #4d4d4d)); - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-search input { - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size-text-mode-search, 80%); - color: var(--jse-input-color, var(--jse-text-color, #4d4d4d)); - border: var(--jse-input-border, 1px solid #d8dbdf); - background: var(--jse-input-background, var(--jse-background-color, #fff)); - margin-right: 2px; -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-search button { - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size-text-mode-search, 80%); - color: var(--jse-panel-button-color, inherit); - background: var(--jse-panel-button-background, transparent); - border: none; - cursor: pointer; - text-transform: capitalize; - padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); - margin: 0; -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-search button:hover { - color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); - background: var(--jse-panel-button-background-highlight, #e0e0e0); -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-search label { - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size-text-mode-search, 80%); - padding-left: var(--jse-padding, 10px); -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-search label input { - margin-right: 2px; -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-search button[name="close"] { - width: 32px; - height: 32px; - font-size: 24px; - line-height: 24px; - padding: 0; - right: 0; - top: -4px; -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .cm-editor .cm-cursor-primary { - border-color: var(--jse-text-color, #4d4d4d); -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .jse-loading-space:where(.svelte-xt61xw) { - flex: 1; -} -.jse-text-mode.svelte-xt61xw .jse-contents:where(.svelte-xt61xw) .jse-loading:where(.svelte-xt61xw) { - flex: 2; - text-align: center; - color: var(--jse-panel-color-readonly, #b2b2b2); - box-sizing: border-box; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); -} -.jse-text-mode.svelte-xt61xw .jse-contents.jse-preview:where(.svelte-xt61xw) { - flex: 1; - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - color: var(--jse-panel-color-readonly, #b2b2b2); - overflow: auto; - white-space: pre-wrap; - word-break: break-word; - padding: 2px; -}`);var HJA=wA('
        ',1),zJA=wA(" ",1),OJA=wA("
        ",1),PJA=wA('
        loading...
        '),jJA=wA("
        ");function qJA(t,e){mt(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=b(e,"readOnly",9),o=b(e,"mainMenuBar",9),r=b(e,"statusBar",9),s=b(e,"askToFormat",9),a=b(e,"externalContent",9),c=b(e,"externalSelection",9),l=b(e,"history",9),I=b(e,"indentation",9),C=b(e,"tabSize",9),d=b(e,"escapeUnicodeCharacters",9),B=b(e,"parser",9),E=b(e,"validator",9),h=b(e,"validationParser",9),u=b(e,"onChange",9),D=b(e,"onChangeMode",9),L=b(e,"onSelect",9),R=b(e,"onUndo",9),w=b(e,"onRedo",9),_=b(e,"onError",9),K=b(e,"onFocus",9),z=b(e,"onBlur",9),U=b(e,"onRenderMenu",9),H=b(e,"onSortModal",9),q=b(e,"onTransformModal",9),j=Sr("jsoneditor:TextMode"),gA={key:"Mod-i",run:de,shift:Dt,preventDefault:!0},QA=typeof window>"u";j("isSSR:",QA);var BA,lA=$(void 0,!0),vA=$(void 0,!0),tA=$(void 0,!0),cA=$(!1,!0),pA=$(s(),!0),VA=$([],!0),oe=new bg,KA=new bg,CA=new bg,TA=new bg,Ze=new bg,He=a(),uA=$(u_(He,I(),B()),!0),eA=xa.define(),UA=null;function aA(){if(!UA||UA.length===0)return!1;var MA=UA[0].startState,me=UA[UA.length-1].state,nt=UA.map(Xe=>Xe.changes).reduce((Xe,oi)=>Xe.compose(oi)),Wt={type:"text",undo:{changes:nt.invert(MA.doc).toJSON(),selection:M(MA.selection)},redo:{changes:nt.toJSON(),selection:M(me.selection)}};return j("add history item",Wt),l().add(Wt),UA=null,!0}var le=$(d(),!0);hs(Yt(function*(){if(!QA)try{BA=function(MA){var{target:me,initialText:nt,readOnly:Wt,indentation:Xe}=MA;j("Create CodeMirror editor",{readOnly:Wt,indentation:Xe});var oi=function(Ut,cn){return WN(Ut)?Ut.ranges.every(ft=>ft.anchor{y(tA,Ut.state),Ut.docChanged&&(Ut.transactions.some(cn=>!!cn.annotation(eA))||(UA=[...UA??[],Ut]),Lt()),Ut.selectionSet&&Tt()}),ZnA(),noA({top:!0}),qt.lineWrapping,KA.of(hr.readOnly.of(Wt)),TA.of(hr.tabSize.of(C())),CA.of(Ot(Xe)),Ze.of(qt.theme({},{dark:gt()}))]});return BA=new qt({state:Di,parent:me}),oi&&BA.dispatch(BA.state.update({selection:oi.main,scrollIntoView:!0})),BA}({target:g(lA),initialText:We(g(uA),g(cA))?"":g(A).escapeValue(g(uA)),readOnly:n(),indentation:I()})}catch(MA){console.error(MA)}})),qc(()=>{ii(),BA&&(j("Destroy CodeMirror editor"),BA.destroy())});var SA=c1(),Ue=c1();function mA(){BA&&(j("focus"),BA.focus())}var sA=!1;function xt(MA){return tt(MA,!1)}function tt(MA,me){j("handlePatch",MA,me);var nt=B().parse(g(uA)),Wt=Da(nt,MA),Xe=R8(nt,MA);return Ei({text:B().stringify(Wt,null,I())},me,!1),{json:Wt,previousJson:nt,undo:Xe,redo:MA}}function de(){if(j("format"),n())return!1;try{var MA=B().parse(g(uA));return Ei({text:B().stringify(MA,null,I())},!0,!1),y(pA,s()),!0}catch(me){_()(me)}return!1}function Dt(){if(j("compact"),n())return!1;try{var MA=B().parse(g(uA));return Ei({text:B().stringify(MA)},!0,!1),y(pA,!1),!0}catch(me){_()(me)}return!1}function _e(){if(j("repair"),!n())try{Ei({text:Rc(g(uA))},!0,!1),y(ni,qN),y(pi,void 0)}catch(MA){_()(MA)}}function Le(){var MA;if(!n())try{var me=B().parse(g(uA));sA=!0,H()({id:SA,json:me,rootPath:[],onSort:(MA=Yt(function*(nt){var{operations:Wt}=nt;j("onSort",Wt),tt(Wt,!0)}),function(nt){return MA.apply(this,arguments)}),onClose:()=>{sA=!1,mA()}})}catch(nt){_()(nt)}}function bt(MA){var{id:me,rootPath:nt,onTransform:Wt,onClose:Xe}=MA;try{var oi=B().parse(g(uA));sA=!0,q()({id:me||Ue,json:oi,rootPath:nt||[],onTransform:Di=>{Wt?Wt({operations:Di,json:oi,transformedJson:Da(oi,Di)}):(j("onTransform",Di),tt(Di,!0))},onClose:()=>{sA=!1,mA(),Xe&&Xe()}})}catch(Di){_()(Di)}}function Re(){n()||bt({rootPath:[]})}function $t(){BA&&(g(lA)&&g(lA).querySelector(".cm-search")?_D(BA):ND(BA))}function x(){if(n())return!1;ii();var MA=l().undo();return j("undo",MA),lrA(MA)?(BA.dispatch({annotations:eA.of("undo"),changes:Cs.fromJSON(MA.undo.changes),selection:ae.fromJSON(MA.undo.selection),scrollIntoView:!0}),!0):(R()(MA),!1)}function Y(){if(n())return!1;ii();var MA=l().redo();return j("redo",MA),lrA(MA)?(BA.dispatch({annotations:eA.of("redo"),changes:Cs.fromJSON(MA.redo.changes),selection:ae.fromJSON(MA.redo.selection),scrollIntoView:!0}),!0):(w()(MA),!1)}function P(){y(cA,!0),Ei(a(),!0,!0)}function X(){D()(er.tree)}function bA(){nn()}function Be(MA){j("select validation error",MA);var{from:me,to:nt}=Ve(MA);me!==void 0&&nt!==void 0&&(Ee(me,nt),mA())}function Ee(MA,me){j("setSelection",{anchor:MA,head:me}),BA&&BA.dispatch(BA.state.update({selection:{anchor:MA,head:me},scrollIntoView:!0}))}function kA(MA,me){if(me.state.selection.ranges.length===1){var nt=me.state.selection.ranges[0],Wt=g(uA).slice(nt.from,nt.to);if(Wt==="{"||Wt==="["){var Xe=s_.default.parse(g(uA)),oi=Object.keys(Xe.pointers).find(Ut=>{var cn;return((cn=Xe.pointers[Ut].value)===null||cn===void 0?void 0:cn.pos)===nt.from}),Di=Xe.pointers[oi];oi&&Di&&Di.value&&Di.valueEnd&&(j("pointer found, selecting inner contents of path:",oi,Di),Ee(Di.value.pos+1,Di.valueEnd.pos-1))}}}function DA(){return _nA(dn,{delay:300})}function gt(){return!!g(lA)&&getComputedStyle(g(lA)).getPropertyValue("--jse-theme").includes("dark")}function Ve(MA){var{path:me,message:nt,severity:Wt}=MA,{line:Xe,column:oi,from:Di,to:Ut}=function(cn,ft){try{var Qi=s_.default.parse(cn),ot=Ct(ft),Mt=Qi.pointers[ot];if(Mt)return{path:ft,line:Mt.key?Mt.key.line:Mt.value?Mt.value.line:0,column:Mt.key?Mt.key.column:Mt.value?Mt.value.column:0,from:Mt.key?Mt.key.pos:Mt.value?Mt.value.pos:0,to:Mt.keyEnd?Mt.keyEnd.pos:Mt.valueEnd?Mt.valueEnd.pos:0}}catch(on){console.error(on)}return{path:ft,line:0,column:0,from:0,to:0}}(g(A).escapeValue(g(uA)),me);return{path:me,line:Xe,column:oi,from:Di,to:Ut,message:nt,severity:Wt,actions:[]}}function ZA(MA,me){var{line:nt,column:Wt,position:Xe,message:oi}=MA;return{path:[],line:nt,column:Wt,from:Xe,to:Xe,severity:Fl.error,message:oi,actions:me&&!n()?[{name:"Auto repair",apply:()=>_e()}]:void 0}}function rt(MA){return{from:MA.from||0,to:MA.to||0,message:MA.message||"",actions:MA.actions,severity:MA.severity}}function Ei(MA,me,nt){var Wt=u_(MA,I(),B()),Xe=!di(MA,He),oi=He;j("setCodeMirrorContent",{isChanged:Xe,emitChange:me,forceUpdate:nt}),BA&&(Xe||nt)&&(He=MA,y(uA,Wt),We(g(uA),g(cA))||BA.dispatch({changes:{from:0,to:BA.state.doc.length,insert:g(A).escapeValue(g(uA))}}),aA(),Xe&&me&&_i(He,oi))}function tn(MA){return WN(MA)?ae.fromJSON(MA):void 0}function qi(){return xe.apply(this,arguments)}function xe(){return xe=Yt(function*(){j("refresh"),yield function(){return mi.apply(this,arguments)}()}),xe.apply(this,arguments)}function nn(){if(BA){var MA=BA?g(A).unescapeValue(BA.state.doc.toString()):"",me=MA!==g(uA);if(j("onChangeCodeMirrorValue",{isChanged:me}),me){var nt=He;y(uA,MA),He={text:g(uA)},aA(),_i(He,nt),io(),Tt()}}}function mi(){return(mi=Yt(function*(){if(io(),BA){var MA=gt();return j("updateTheme",{dark:MA}),BA.dispatch({effects:[Ze.reconfigure(qt.theme({},{dark:MA}))]}),new Promise(me=>setTimeout(me))}return Promise.resolve()})).apply(this,arguments)}function Ot(MA){var me=FC.of(typeof MA=="number"?" ".repeat(MA):MA);return MA===" "?[me]:[me,TJA]}CG({onMount:hs,onDestroy:qc,getWindow:()=>af(g(vA)),hasFocus:()=>sA&&document.hasFocus()||W_(g(vA)),onFocus:K(),onBlur:()=>{ii(),z()()}});var Lt=oE(nn,300);function ii(){Lt.flush()}function _i(MA,me){u()&&u()(MA,me,{contentErrors:mn(),patchResult:void 0})}function Tt(){L()(M(g(tA).selection))}function M(MA){return fe({type:Ln.text},MA.toJSON())}function We(MA,me){return!!MA&&MA.length>PN&&!me}var ni=$(qN,!0),pi=$(void 0,!0);function dn(){if(We(g(uA),g(cA)))return[];var MA=mn();if(crA(MA)){var{parseError:me,isRepairable:nt}=MA;return[rt(ZA(me,nt))]}return lUA(MA)?MA.validationErrors.map(Ve).map(rt):[]}function mn(){j("validate:start"),ii();var MA=Uo(g(A).escapeValue(g(uA)),E(),B(),h());return crA(MA)?(y(ni,MA.isRepairable?nrA:"invalid"),y(pi,MA.parseError),y(VA,[])):(y(ni,qN),y(pi,void 0),y(VA,MA?.validationErrors||[])),j("validate:end"),MA}var Uo=aE(FKA);function kn(){g(pi)&&function(MA){j("select parse error",MA);var me=ZA(MA,!1);Ee(me.from!=null?me.from:0,me.to!=null?me.to:0),mA()}(g(pi))}var Wn={icon:JW,text:"Show me",title:"Move to the parse error location",onClick:kn};fA(()=>k(d()),()=>{y(A,V_({escapeControlCharacters:!1,escapeUnicodeCharacters:d()}))}),fA(()=>k(a()),()=>{Ei(a(),!1,!1)}),fA(()=>k(c()),()=>{(function(MA){if(WN(MA)){var me=tn(MA);!BA||!me||g(tA)&&g(tA).selection.eq(me)||(j("applyExternalSelection",me),BA.dispatch({selection:me}))}})(c())}),fA(()=>k(E()),()=>{(function(MA){j("updateLinter",MA),BA&&BA.dispatch({effects:oe.reconfigure(DA())})})(E())}),fA(()=>k(I()),()=>{(function(MA){BA&&(j("updateIndentation",MA),BA.dispatch({effects:CA.reconfigure(Ot(MA))}))})(I())}),fA(()=>k(C()),()=>{(function(MA){BA&&(j("updateTabSize",MA),BA.dispatch({effects:TA.reconfigure(hr.tabSize.of(MA))}))})(C())}),fA(()=>k(n()),()=>{(function(MA){BA&&(j("updateReadOnly",MA),BA.dispatch({effects:[KA.reconfigure(hr.readOnly.of(MA))]}))})(n())}),fA(()=>(g(le),k(d())),()=>{g(le)!==d()&&(y(le,d()),j("forceUpdateText",{escapeUnicodeCharacters:d()}),BA&&BA.dispatch({changes:{from:0,to:BA.state.doc.length,insert:g(A).escapeValue(g(uA))}}))}),fA(()=>(g(ni),k(n()),L0),()=>{y(i,g(ni)!==nrA||n()?[Wn]:[{icon:L0,text:"Auto repair",title:"Automatically repair JSON",onClick:_e},Wn])}),Qn(),Zt(!0);var Vo,vo=jJA(),bo=W(vo),Yn=MA=>{var me=qA(()=>(g(uA),nA(()=>g(uA).length===0))),nt=qA(()=>!g(me)),Wt=qA(()=>!g(me)),Xe=qA(()=>!g(me)),oi=qA(()=>!g(me));(function(Di,Ut){mt(Ut,!1);var cn=$(void 0,!0),ft=b(Ut,"readOnly",9,!1),Qi=b(Ut,"onFormat",9),ot=b(Ut,"onCompact",9),Mt=b(Ut,"onSort",9),on=b(Ut,"onTransform",9),hn=b(Ut,"onToggleSearch",9),Ai=b(Ut,"onUndo",9),Ki=b(Ut,"onRedo",9),dt=b(Ut,"canUndo",9),EA=b(Ut,"canRedo",9),HA=b(Ut,"canFormat",9),ve=b(Ut,"canCompact",9),Qt=b(Ut,"canSort",9),yi=b(Ut,"canTransform",9),ri=b(Ut,"onRenderMenu",9),pn={type:"button",icon:g4,title:"Search (Ctrl+F)",className:"jse-search",onClick:hn()},Fn=$(void 0,!0);fA(()=>(k(ft()),k(Qi()),k(HA()),k(ot()),k(ve()),k(Mt()),k(Qt()),k(on()),k(yi()),k(Ai()),k(dt()),k(Ki()),k(EA())),()=>{y(Fn,ft()?[pn,{type:"space"}]:[{type:"button",icon:YrA,title:"Format JSON: add proper indentation and new lines (Ctrl+I)",className:"jse-format",onClick:Qi(),disabled:ft()||!HA()},{type:"button",icon:UYA,title:"Compact JSON: remove all white spacing and new lines (Ctrl+Shift+I)",className:"jse-compact",onClick:ot(),disabled:ft()||!ve()},{type:"separator"},{type:"button",icon:l4,title:"Sort",className:"jse-sort",onClick:Mt(),disabled:ft()||!Qt()},{type:"button",icon:s4,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:on(),disabled:ft()||!yi()},pn,{type:"separator"},{type:"button",icon:h5,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:Ai(),disabled:!dt()},{type:"button",icon:Q5,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:Ki(),disabled:!EA()},{type:"space"}])}),fA(()=>(k(ri()),g(Fn)),()=>{y(cn,ri()(g(Fn))||g(Fn))}),Qn(),Zt(!0),Oy(Di,{get items(){return g(cn)}}),pt()})(MA,{get readOnly(){return n()},onFormat:de,onCompact:Dt,onSort:Le,onTransform:Re,onToggleSearch:$t,onUndo:x,onRedo:Y,get canFormat(){return g(nt)},get canCompact(){return g(Wt)},get canSort(){return g(Xe)},get canTransform(){return g(oi)},get canUndo(){return k(l()),nA(()=>l().canUndo)},get canRedo(){return k(l()),nA(()=>l().canRedo)},get onRenderMenu(){return U()}})};LA(bo,MA=>{o()&&MA(Yn)});var Mo=IA(bo,2),ne=MA=>{var me,nt=OJA(),Wt=qA(()=>(g(uA),g(cA),nA(()=>We(g(uA),g(cA))))),Xe=vt(nt);Co(Xe,ft=>y(lA,ft),()=>g(lA));var oi=IA(Xe,2),Di=ft=>{var Qi=HJA(),ot=vt(Qi),Mt=qA(()=>(k(cy),k(PN),g(uA),nA(()=>"The JSON document is larger than ".concat(cy(PN),", ")+"and may crash your browser when loading it in text mode. Actual size: ".concat(cy(g(uA).length),"."))));mc(ot,{get icon(){return g1},type:"error",get message(){return g(Mt)},actions:[{text:"Open anyway",title:"Open the document in text mode. This may freeze or crash your browser.",onClick:P},{text:"Open in tree mode",title:"Open the document in tree mode. Tree mode can handle large documents.",onClick:X},{text:"Cancel",title:"Cancel opening this large document.",onClick:bA}],onClose:mA});var on=W(IA(ot,2));De(hn=>wt(on,hn),[()=>(k(V0),g(uA),k(Qy),nA(()=>V0(g(uA)||"",Qy)))],qA),iA(ft,Qi)};LA(oi,ft=>{g(Wt)&&ft(Di)});var Ut=IA(oi,2),cn=ft=>{var Qi=zJA(),ot=vt(Qi),Mt=dt=>{(function(EA,HA){mt(HA,!1);var ve=b(HA,"editorState",8),Qt=$(),yi=$(),ri=$(),pn=$(),Fn=$();fA(()=>k(ve()),()=>{var se;y(Qt,(se=ve())===null||se===void 0||(se=se.selection)===null||se===void 0||(se=se.main)===null||se===void 0?void 0:se.head)}),fA(()=>(g(Qt),k(ve())),()=>{var se;y(yi,g(Qt)!==void 0?(se=ve())===null||se===void 0||(se=se.doc)===null||se===void 0?void 0:se.lineAt(g(Qt)):void 0)}),fA(()=>g(yi),()=>{y(ri,g(yi)!==void 0?g(yi).number:void 0)}),fA(()=>(g(yi),g(Qt)),()=>{y(pn,g(yi)!==void 0&&g(Qt)!==void 0?g(Qt)-g(yi).from+1:void 0)}),fA(()=>k(ve()),()=>{var se;y(Fn,(se=ve())===null||se===void 0||(se=se.selection)===null||se===void 0||(se=se.ranges)===null||se===void 0?void 0:se.reduce((vi,Yi)=>vi+Yi.to-Yi.from,0))}),Qn(),Zt();var Jn=KJA(),ln=W(Jn),Pt=se=>{var vi=_JA(),Yi=W(vi);De(()=>{var rn;return wt(Yi,"Line: ".concat((rn=g(ri))!==null&&rn!==void 0?rn:""))}),iA(se,vi)};LA(ln,se=>{g(ri)!==void 0&&se(Pt)});var $i=IA(ln,2),Rr=se=>{var vi=GJA(),Yi=W(vi);De(()=>{var rn;return wt(Yi,"Column: ".concat((rn=g(pn))!==null&&rn!==void 0?rn:""))}),iA(se,vi)};LA($i,se=>{g(pn)!==void 0&&se(Rr)});var Ft=IA($i,2),Xn=se=>{var vi=UJA(),Yi=W(vi);De(()=>{var rn;return wt(Yi,"Selection: ".concat((rn=g(Fn))!==null&&rn!==void 0?rn:""," characters"))}),iA(se,vi)};LA(Ft,se=>{g(Fn)!==void 0&&g(Fn)>0&&se(Xn)}),iA(EA,Jn),pt()})(dt,{get editorState(){return g(tA)}})};LA(ot,dt=>{r()&&dt(Mt)});var on=IA(ot,2),hn=dt=>{mc(dt,{type:"error",get icon(){return g1},get message(){return g(pi),nA(()=>g(pi).message)},get actions(){return g(i)},onClick:kn,onClose:mA})};LA(on,dt=>{g(pi)&&dt(hn)});var Ai=IA(on,2),Ki=dt=>{var EA=qA(()=>[{icon:YrA,text:"Format",title:"Format JSON: add proper indentation and new lines (Ctrl+I)",onClick:de},{icon:I4,text:"No thanks",title:"Close this message",onClick:()=>y(pA,!1)}]);mc(dt,{type:"success",message:"Do you want to format the JSON?",get actions(){return g(EA)},onClose:mA})};LA(Ai,dt=>{g(pi),g(pA),k(trA),g(uA),nA(()=>!g(pi)&&g(pA)&&trA(g(uA)))&&dt(Ki)}),dG(IA(Ai,2),{get validationErrors(){return g(VA)},selectError:Be}),iA(ft,Qi)};LA(Ut,ft=>{g(Wt)||ft(cn)}),De(ft=>me=Vt(Xe,1,"jse-contents svelte-xt61xw",null,me,ft),[()=>({"jse-hidden":g(Wt)})],qA),iA(MA,nt)},wi=MA=>{iA(MA,PJA())};return LA(Mo,MA=>{QA?MA(wi,!1):MA(ne)}),Co(vo,MA=>y(vA,MA),()=>g(vA)),De(MA=>Vo=Vt(vo,1,"jse-text-mode svelte-xt61xw",null,Vo,MA),[()=>({"no-main-menu":!o()})],qA),iA(t,vo),zt(e,"focus",mA),zt(e,"patch",xt),zt(e,"handlePatch",tt),zt(e,"openTransformModal",bt),zt(e,"refresh",qi),zt(e,"flush",ii),zt(e,"validate",mn),pt({focus:mA,patch:xt,handlePatch:tt,openTransformModal:bt,refresh:qi,flush:ii,validate:mn})}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-inline-value.svelte-h57m0p { - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - line-height: var(--jse-line-height, calc(1em + 4px)); - border: none; - padding: 0 calc(0.5 * var(--jse-padding, 10px)); - background: transparent; - color: inherit; - cursor: inherit; -} -.jse-inline-value.jse-highlight.svelte-h57m0p { - background-color: var(--jse-search-match-color, #ffe665); - outline: var(--jse-search-match-outline, none); -} -.jse-inline-value.jse-highlight.jse-active.svelte-h57m0p { - background-color: var(--jse-search-match-active-color, var(--jse-search-match-color, #ffe665)); - outline: var(--jse-search-match-outline, 2px solid #e0be00); -}`);var VJA=wA('');Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-column-header.svelte-2i3vdx { - background: none; - border: none; - font-family: inherit; - font-size: inherit; - color: inherit; - display: flex; - gap: var(--jse-padding, 10px); - padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)) calc(0.5 * var(--jse-padding, 10px)); - width: 100%; -} -.jse-column-header.svelte-2i3vdx:hover { - background: var(--jse-table-header-background-highlight, #e8e8e8); -} -.jse-column-header.svelte-2i3vdx:not(.jse-column-header.jse-readonly) { - cursor: pointer; -} -.jse-column-header.svelte-2i3vdx span.jse-column-sort-icon:where(.svelte-2i3vdx) { - height: 1em; -}`);var ZJA=wA(''),WJA=wA('');Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-table-mode-welcome.svelte-17xl1jx { - flex: 1; - display: flex; - flex-direction: column; - overflow: auto; - align-items: center; - border-left: var(--jse-main-border, 1px solid #d7d7d7); - border-right: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-table-mode-welcome.svelte-17xl1jx:last-child { - border-bottom: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-space.jse-before:where(.svelte-17xl1jx) { - flex: 1; -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) { - display: flex; - flex-direction: column; - gap: var(--jse-padding, 10px); - max-width: 400px; - margin: 2em var(--jse-padding, 10px); - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-arrays-info:where(.svelte-17xl1jx) { - color: var(--jse-panel-color-readonly, #b2b2b2); -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-property:where(.svelte-17xl1jx) { - display: flex; - align-items: center; - gap: var(--jse-padding, 10px); -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-property:where(.svelte-17xl1jx) .jse-nested-property-path:where(.svelte-17xl1jx) { - flex: 1; -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-property:where(.svelte-17xl1jx) .jse-nested-property-path:where(.svelte-17xl1jx) .jse-nested-property-count:where(.svelte-17xl1jx) { - opacity: 0.5; - white-space: nowrap; -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) button.jse-nested-array-action:where(.svelte-17xl1jx) { - text-align: left; - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); - color: var(--jse-button-primary-color, #fff); - padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); - border-radius: 3px; -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) button.jse-nested-array-action:where(.svelte-17xl1jx):hover { - background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) button.jse-nested-array-action:where(.svelte-17xl1jx):disabled { - background: var(--jse-button-primary-background-disabled, #9d9d9d); -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-space.jse-after:where(.svelte-17xl1jx) { - flex: 2; -}`);var XJA=(t,e)=>e.onClick(),$JA=wA(`An empty document cannot be opened in table mode. You can go to tree mode instead, or paste - a JSON Array using Ctrl+V.`,1),ATA=(t,e,A)=>e.openJSONEditorModal(g(A)),eTA=(t,e,A)=>e.extractPath(g(A)),tTA=wA(''),iTA=wA('
        '),nTA=(t,e)=>e.onChangeMode(er.tree),oTA=wA('
        ');function rTA(t,e){mt(e,!0);var A=Ga(()=>e.json?function(E){var h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2,u=[];return function D(L,R){xo(L)&&R.length{D(L[w],R.concat(w))}),wo(L)&&u.push(R)}(E,[]),u}(e.json).slice(0,99).filter(E=>E.length>0):[]),i=Ga(()=>!Oi(g(A))),n=Ga(()=>e.json===void 0&&(e.text===""||e.text===void 0)),o=Ga(()=>g(i)?"Object with nested arrays":g(n)?"An empty document":xo(e.json)?"An object":wo(e.json)?"An empty array":"A ".concat(q_(e.json,e.parser))),r=oTA();r.__click=[XJA,e];var s=IA(W(r),2),a=W(s),c=W(a),l=IA(a,2),I=W(l),C=E=>{iA(E,Tr(`An object cannot be opened in table mode. You can open a nested array instead, or open the - document in tree mode.`))},d=(E,h)=>{var u=L=>{iA(L,$JA())},D=L=>{var R=Tr();De(()=>{var w;return wt(R,"".concat((w=g(o))!==null&&w!==void 0?w:""," cannot be opened in table mode. You can open the document in tree mode instead."))}),iA(L,R)};LA(E,L=>{g(n)&&!e.readOnly?L(u):L(D,!1)},h)};LA(I,E=>{g(i)?E(C):E(d,!1)});var B=IA(l,2);qo(B,17,()=>g(A),or,(E,h)=>{var u=iTA(),D=Ga(()=>function(H){return Ke(e.json,H).length}(g(h))),L=W(u),R=W(L),w=W(IA(R)),_=IA(L,2);_.__click=[ATA,e,h];var K=W(_),z=IA(_,2),U=H=>{var q=tTA();q.__click=[eTA,e,h],iA(H,q)};LA(z,H=>{e.readOnly||H(U)}),De(H=>{var q;wt(R,'"'.concat(H??"",'" ')),wt(w,"(".concat((q=g(D))!==null&&q!==void 0?q:""," ").concat(g(D)!==1?"items":"item",")")),wt(K,e.readOnly?"View":"Edit")},[()=>Ka(g(h))]),iA(E,u)}),IA(B,2).__click=[nTA,e],De(()=>wt(c,g(o))),iA(t,r),pt()}of(["click"]);Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-column-header.svelte-fzj761 { - background: none; - border: none; - font-family: inherit; - font-size: inherit; - color: inherit; - display: flex; - gap: var(--jse-padding, 10px); - padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)) calc(0.5 * var(--jse-padding, 10px)); - width: 100%; -} -.jse-column-header.svelte-fzj761:hover { - background: var(--jse-table-header-background-highlight, #e8e8e8); -} -.jse-column-header.svelte-fzj761:not(.jse-column-header.jse-readonly) { - cursor: pointer; -}`);var sTA=wA('');Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-table-mode.svelte-u14cgx { - flex: 1; - display: flex; - flex-direction: column; - position: relative; - background: var(--jse-background-color, #fff); - min-width: 0; - min-height: 0; - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - color: var(--jse-text-color, #4d4d4d); - line-height: var(--jse-line-height, calc(1em + 4px)); -} -.jse-table-mode.no-main-menu.svelte-u14cgx { - border-top: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-table-mode.svelte-u14cgx .jse-search-box-container:where(.svelte-u14cgx) { - position: relative; - height: 0; - top: calc(var(--jse-line-height, calc(1em + 4px)) + 2 * var(--jse-padding, 10px)); - margin-right: calc(var(--jse-padding, 10px) + 20px); - margin-left: var(--jse-padding, 10px); - text-align: right; - z-index: 3; -} -.jse-table-mode.svelte-u14cgx .jse-hidden-input-label:where(.svelte-u14cgx) { - position: fixed; - right: 0; - top: 0; - width: 0; - height: 0; -} -.jse-table-mode.svelte-u14cgx .jse-hidden-input-label:where(.svelte-u14cgx) .jse-hidden-input:where(.svelte-u14cgx) { - width: 0; - height: 0; - padding: 0; - border: 0; - outline: none; -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) { - flex: 1; - align-items: flex-start; - flex-direction: column; - display: flex; - overflow: auto; - overflow-anchor: none; - scrollbar-gutter: stable; - border-left: var(--jse-main-border, 1px solid #d7d7d7); - border-right: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx):last-child { - border-bottom: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) { - border-collapse: collapse; - border-spacing: 0; -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-invisible-start-section:where(.svelte-u14cgx) td:where(.svelte-u14cgx), -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-invisible-end-section:where(.svelte-u14cgx) td:where(.svelte-u14cgx) { - margin: 0; - padding: 0; -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-search-box-background:where(.svelte-u14cgx) { - background: var(--jse-table-header-background, #f5f5f5); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-invisible-end-section:where(.svelte-u14cgx) td:where(.svelte-u14cgx) { - padding-bottom: var(--jse-padding, 10px); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx):hover { - background-color: var(--jse-table-row-odd-background, rgba(0, 0, 0, 0.05)); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) { - padding: 0 var(--jse-padding, 10px) 0 0; - vertical-align: top; - white-space: nowrap; - height: var(--jse-line-height, calc(1em + 4px)); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-header:where(.svelte-u14cgx), .jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-gutter:where(.svelte-u14cgx) { - font-weight: normal; - text-align: left; - color: var(--jse-text-readonly, #8d8d8d); - background: var(--jse-table-header-background, #f5f5f5); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-header:where(.svelte-u14cgx) { - padding: 0; - position: sticky; - top: 0; -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-header:where(.svelte-u14cgx) .jse-table-root-error:where(.svelte-u14cgx) { - padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)) calc(0.5 * var(--jse-padding, 10px)); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-gutter:where(.svelte-u14cgx) { - padding: 0 var(--jse-padding, 10px) 0 calc(0.5 * var(--jse-padding, 10px)); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-value-outer:where(.svelte-u14cgx) { - display: inline-block; - cursor: var(--jse-contents-cursor, pointer); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-value-outer:where(.svelte-u14cgx):hover { - background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-value-outer.jse-selected-value:where(.svelte-u14cgx) { - background: var(--jse-selection-background-color, #d3d3d3); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-context-menu-anchor:where(.svelte-u14cgx) { - display: inline-flex; - position: relative; - vertical-align: top; -} -.jse-table-mode.svelte-u14cgx .jse-contents.jse-contents-loading:where(.svelte-u14cgx) { - align-items: unset; -} -.jse-table-mode.svelte-u14cgx .jse-contents.jse-contents-loading:where(.svelte-u14cgx) .jse-loading-space:where(.svelte-u14cgx) { - flex: 1; -} -.jse-table-mode.svelte-u14cgx .jse-contents.jse-contents-loading:where(.svelte-u14cgx) .jse-loading:where(.svelte-u14cgx) { - flex: 2; - text-align: center; - color: var(--jse-panel-color-readonly, #b2b2b2); - box-sizing: border-box; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); -}`);var aTA=wA('
        '),cTA=wA(''),lTA=wA(''),gTA=wA(' '),ITA=wA('
        '),CTA=wA('
        '),dTA=wA(''),BTA=wA(''),ETA=wA('
        ',1),QTA=wA(" ",1),hTA=wA(' ',1),uTA=wA('
        loading...
        '),fTA=wA('
        ',1);function mTA(t,e){mt(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=Sr("jsoneditor:TableMode"),{openAbsolutePopup:r,closeAbsolutePopup:s}=$1("absolute-popup"),a=paA(),c=c1(),l=c1(),I=typeof window>"u";o("isSSR:",I);var C=b(e,"readOnly",9),d=b(e,"externalContent",9),B=b(e,"externalSelection",9),E=b(e,"history",9),h=b(e,"truncateTextSize",9),u=b(e,"mainMenuBar",9),D=b(e,"escapeControlCharacters",9),L=b(e,"escapeUnicodeCharacters",9),R=b(e,"flattenColumns",9),w=b(e,"parser",9),_=b(e,"parseMemoizeOne",9),K=b(e,"validator",9),z=b(e,"validationParser",9),U=b(e,"indentation",9),H=b(e,"onChange",9),q=b(e,"onChangeMode",9),j=b(e,"onSelect",9),gA=b(e,"onUndo",9),QA=b(e,"onRedo",9),BA=b(e,"onRenderValue",9),lA=b(e,"onRenderMenu",9),vA=b(e,"onRenderContextMenu",9),tA=b(e,"onFocus",9),cA=b(e,"onBlur",9),pA=b(e,"onSortModal",9),VA=b(e,"onTransformModal",9),oe=b(e,"onJSONEditorModal",9),KA=$(void 0,!0),CA=$(void 0,!0),TA=$(void 0,!0),Ze=$(void 0,!0),He=$(void 0,!0);CG({onMount:hs,onDestroy:qc,getWindow:()=>af(g(CA)),hasFocus:()=>Re&&document.hasFocus()||W_(g(CA)),onFocus:()=>{$t=!0,tA()&&tA()()},onBlur:()=>{$t=!1,cA()&&cA()()}});var uA,eA=$(void 0,!0),UA=$(void 0,!0),aA=$(void 0,!0),le=$(void 0,!0),SA=$(void 0,!0),Ue=$(void 0,!0),mA=$(!1,!0),sA=$(!1,!0);function xt(p){y(Ue,(uA=p)?caA(g(eA),uA.items):void 0)}function tt(p){return de.apply(this,arguments)}function de(){return(de=Yt(function*(p){y(DA,void 0),yield dn(p)})).apply(this,arguments)}function Dt(){y(mA,!1),y(sA,!1),M()}var _e=$(1e4,!0),Le=$([],!0),bt=$(void 0,!0),Re=!1,$t=!1,x=$(!1,!0),Y=$({},!0),P=$(600,!0),X=$(0,!0),bA=18;function Be(p){y(DA,p)}function Ee(p){g(DA)&&p!==void 0&&(Ms(p,OC(g(DA)))&&Ms(p,et(g(DA)))||(o("clearing selection: path does not exist anymore",g(DA)),y(DA,void 0)))}var kA=$(g(eA)!==void 0?w_({json:g(eA)}):void 0,!0),DA=$(q3(B())?B():void 0,!0),gt=$(void 0,!0),Ve=$(!1,!0);function ZA(p){if(!C()){o("onSortByHeader",p);var N=p.sortDirection===Pc.desc?-1:1;Ot(baA(g(eA),[],p.path,N),(J,V)=>({state:V,sortedColumn:p}))}}hs(()=>{g(DA)&&Uo(et(g(DA)))});var rt=$(void 0,!0);function Ei(p){if(p.json!==void 0||p.text!==void 0){var N=g(eA)!==void 0&&p.json!==void 0;E().add({type:"tree",undo:{patch:N?[{op:"replace",path:"",value:p.json}]:void 0,json:p.json,text:p.text,documentState:p.documentState,textIsRepaired:p.textIsRepaired,selection:Hg(p.selection),sortedColumn:p.sortedColumn},redo:{patch:N?[{op:"replace",path:"",value:g(eA)}]:void 0,json:g(eA),text:g(UA),documentState:g(kA),textIsRepaired:g(Ve),selection:Hg(g(DA)),sortedColumn:g(gt)}})}}var tn=$([],!0),qi=aE(waA);function xe(p,N,J,V){sQ(()=>{var Z;try{Z=qi(p,N,J,V)}catch(FA){Z=[{path:[],message:"Failed to validate: "+FA.message,severity:Fl.warning}]}di(Z,g(tn))||(o("validationErrors changed:",Z),y(tn,Z))},Z=>o("validationErrors updated in ".concat(Z," ms")))}function nn(){return o("validate"),g(aA)?{parseError:g(aA),isRepairable:!1}:(xe(g(eA),K(),w(),z()),Oi(g(tn))?void 0:{validationErrors:g(tn)})}function mi(p,N){if(o("patch",p,N),g(eA)===void 0)throw new Error("Cannot apply patch: no JSON");var J=g(eA),V={json:void 0,text:g(UA),documentState:g(kA),selection:Hg(g(DA)),sortedColumn:g(gt),textIsRepaired:g(Ve)},Z=aaA(g(eA),p),FA=ZsA(g(eA),g(kA),p),te=lJA(g(gt),p,g(Le)),re=typeof N=="function"?N(FA.json,FA.documentState,g(DA)):void 0;return y(eA,re?.json!==void 0?re.json:FA.json),y(kA,re?.state!==void 0?re.state:FA.documentState),y(DA,re?.selection!==void 0?re.selection:g(DA)),y(gt,re?.sortedColumn!==void 0?re.sortedColumn:te),y(UA,void 0),y(Ve,!1),y(le,void 0),y(SA,void 0),y(aA,void 0),E().add({type:"tree",undo:fe({patch:Z},V),redo:{patch:p,json:void 0,text:void 0,documentState:g(kA),selection:Hg(g(DA)),sortedColumn:g(gt),textIsRepaired:g(Ve)}}),{json:g(eA),previousJson:J,undo:Z,redo:p}}function Ot(p,N){o("handlePatch",p,N);var J={json:g(eA),text:g(UA)},V=mi(p,N);return Lt(J,V),V}function Lt(p,N){if((p.json!==void 0||p?.text!==void 0)&&H()){if(g(UA)!==void 0){var J={text:g(UA),json:void 0};H()(J,p,{contentErrors:nn(),patchResult:N})}else if(g(eA)!==void 0){var V={text:void 0,json:g(eA)};H()(V,p,{contentErrors:nn(),patchResult:N})}}}function ii(p){o("pasted json as text",p),y(le,p)}function _i(p){o("pasted multiline text",{pastedText:p}),y(SA,p)}function Tt(p){var N=parseInt(p[0],10),J=[String(N+1),...p.slice(1)];return Ms(g(eA),J)?Ni(J):Ni(p)}function M(){o("focus"),g(Ze)&&(g(Ze).focus(),g(Ze).select())}function We(p){y(X,p.target.scrollTop)}function ni(){g(DA)||y(DA,function(){if(wo(g(eA))&&!Oi(g(eA))&&!Oi(g(Le)))return Ni(["0",...g(Le)[0]])}())}function pi(){if(g(Ve)&&g(eA)!==void 0){var p={json:g(eA),text:g(UA)},N={json:g(eA),documentState:g(kA),selection:g(DA),sortedColumn:g(gt),text:g(UA),textIsRepaired:g(Ve)};y(UA,void 0),y(Ve,!1),Ee(g(eA)),Ei(N),Lt(p,void 0)}return{json:g(eA),text:g(UA)}}function dn(p){var{scrollToWhenVisible:N=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},J=g(mA)?_3:0,V=TrA(p,g(Le),Y,bA),Z=V-g(X)+J+bA,FA=kn(p);if(o("scrollTo",{path:p,top:V,scrollTop:g(X),elem:FA}),!g(TA))return Promise.resolve();var te=g(TA).getBoundingClientRect();if(FA&&!N){var re=FA.getBoundingClientRect();if(re.bottom>te.top&&re.top{a(FA,{container:g(TA),offset:Pe,duration:300,callback:()=>{mn(p),ze()}})}:ze=>{a(Z,{container:g(TA),offset:Pe,duration:300,callback:()=>{io(),mn(p),ze()}})})}function mn(p){var N=kn(p);if(N&&g(TA)){var J=g(TA).getBoundingClientRect(),V=N.getBoundingClientRect();if(V.right>J.right){var Z=V.right-J.right;hc(TA,g(TA).scrollLeft+=Z)}if(V.leftPe){var ze=Z-Pe;hc(TA,g(TA).scrollTop+=ze)}if(VPg(p.slice(1),FA)),Z=V?p.slice(0,1).concat(V):p;return(N=(J=g(TA))===null||J===void 0?void 0:J.querySelector('td[data-path="'.concat(sy(Z),'"]')))!==null&&N!==void 0?N:void 0}function Wn(p){var N,{anchor:J,left:V,top:Z,width:FA,height:te,offsetTop:re,offsetLeft:Pe,showTip:ze}=p,ye=function(oA){var{json:YA,documentState:pe,selection:he,readOnly:ge,onEditValue:Bt,onEditRow:$e,onToggleEnforceString:bi,onCut:un,onCopy:Ji,onPaste:Tn,onRemove:Ht,onDuplicateRow:ko,onInsertBeforeRow:Sn,onInsertAfterRow:no,onRemoveRow:gn}=oA,Nt=YA!==void 0,Zi=!!he,_t=YA!==void 0&&he?Ke(YA,et(he)):void 0,st=Nt&&(Kn(he)||kr(he)||an(he)),si=!ge&&Nt&&he!==void 0&&fy(he),Eo=si&&!No(_t),xr=!ge&&st,Hn=he!==void 0&&zg(YA,pe,et(he));return[{type:"separator"},{type:"row",items:[{type:"column",items:[{type:"label",text:"Table cell:"},{type:"dropdown-button",main:{type:"button",onClick:()=>Bt(),icon:lC,text:"Edit",title:"Edit the value (Double-click on the value)",disabled:!si},width:"11em",items:[{type:"button",icon:lC,text:"Edit",title:"Edit the value (Double-click on the value)",onClick:()=>Bt(),disabled:!si},{type:"button",icon:Hn?jS:ZS,text:"Enforce string",title:"Enforce keeping the value as string when it contains a numeric value",onClick:()=>bi(),disabled:!Eo}]},{type:"dropdown-button",main:{type:"button",onClick:()=>un(!0),icon:cC,text:"Cut",title:"Cut selected contents, formatted with indentation (Ctrl+X)",disabled:!xr},width:"10em",items:[{type:"button",icon:cC,text:"Cut formatted",title:"Cut selected contents, formatted with indentation (Ctrl+X)",onClick:()=>un(!0),disabled:ge||!st},{type:"button",icon:cC,text:"Cut compacted",title:"Cut selected contents, without indentation (Ctrl+Shift+X)",onClick:()=>un(!1),disabled:ge||!st}]},{type:"dropdown-button",main:{type:"button",onClick:()=>Ji(!0),icon:F0,text:"Copy",title:"Copy selected contents, formatted with indentation (Ctrl+C)",disabled:!st},width:"12em",items:[{type:"button",icon:F0,text:"Copy formatted",title:"Copy selected contents, formatted with indentation (Ctrl+C)",onClick:()=>Ji(!1),disabled:!st},{type:"button",icon:F0,text:"Copy compacted",title:"Copy selected contents, without indentation (Ctrl+Shift+C)",onClick:()=>Ji(!1),disabled:!st}]},{type:"button",onClick:()=>Tn(),icon:PS,text:"Paste",title:"Paste clipboard contents (Ctrl+V)",disabled:ge||!Zi},{type:"button",onClick:()=>Ht(),icon:E5,text:"Remove",title:"Remove selected contents (Delete)",disabled:ge||!st}]},{type:"column",items:[{type:"label",text:"Table row:"},{type:"button",onClick:()=>$e(),icon:lC,text:"Edit row",title:"Edit the current row",disabled:ge||!Zi||!Nt},{type:"button",onClick:()=>ko(),icon:$S,text:"Duplicate row",title:"Duplicate the current row (Ctrl+D)",disabled:ge||!Zi||!Nt},{type:"button",onClick:()=>Sn(),icon:gC,text:"Insert before",title:"Insert a row before the current row",disabled:ge||!Zi||!Nt},{type:"button",onClick:()=>no(),icon:gC,text:"Insert after",title:"Insert a row after the current row",disabled:ge||!Zi||!Nt},{type:"button",onClick:()=>gn(),icon:E5,text:"Remove row",title:"Remove current row",disabled:ge||!Zi||!Nt}]}]}]}({json:g(eA),documentState:g(kA),selection:g(DA),readOnly:C(),onEditValue:bo,onEditRow:Yn,onToggleEnforceString:Mo,onCut:Ut,onCopy:ft,onPaste:MA,onRemove:ot,onDuplicateRow:on,onInsertBeforeRow:hn,onInsertAfterRow:Ai,onRemoveRow:Ki}),Ge=(N=vA()(ye))!==null&&N!==void 0?N:ye;if(Ge!==!1){var Vi={left:V,top:Z,offsetTop:re,offsetLeft:Pe,width:FA,height:te,anchor:J,closeOnOuterClick:!0,onClose:()=>{Re=!1,M()}};Re=!0;var T=r(GaA,{tip:ze?"Tip: you can open this context menu via right-click or with Ctrl+Q":void 0,items:Ge,onRequestClose(){s(T),M()}},Vi)}}function Vo(p){if(!br(g(DA)))if(p&&(p.stopPropagation(),p.preventDefault()),p&&p.type==="contextmenu"&&p.target!==g(Ze))Wn({left:p.clientX,top:p.clientY,width:W0,height:Z0,showTip:!1});else{var N,J=(N=g(TA))===null||N===void 0?void 0:N.querySelector(".jse-table-cell.jse-selected-value");if(J)Wn({anchor:J,offsetTop:2,width:W0,height:Z0,showTip:!1});else{var V,Z=(V=g(TA))===null||V===void 0?void 0:V.getBoundingClientRect();Z&&Wn({top:Z.top+2,left:Z.left+2,width:W0,height:Z0,showTip:!1})}}}function vo(p){Wn({anchor:OsA(p.target,"BUTTON"),offsetTop:0,width:W0,height:Z0,showTip:!0})}function bo(){if(!C()&&g(DA)){var p=et(g(DA));No(Ke(g(eA),p))?pn(p):y(DA,Ni(p))}}function Yn(){!C()&&g(DA)&&pn(et(g(DA)).slice(0,1))}function Mo(){if(!C()&&an(g(DA))){var p=g(DA).path,N=Ct(p),J=Ke(g(eA),p),V=!zg(g(eA),g(kA),p),Z=V?String(J):DQ(String(J),w());o("handleToggleEnforceString",{enforceString:V,value:J,updatedValue:Z}),Ot([{op:"replace",path:N,value:Z}],(FA,te)=>({state:Ky(g(eA),te,p,{type:"value",enforceString:V})}))}}function ne(){return wi.apply(this,arguments)}function wi(){return(wi=Yt(function*(){if(o("apply pasted json",g(le)),g(le)){var{onPasteAsJson:p}=g(le);p(),setTimeout(M)}})).apply(this,arguments)}function MA(){return me.apply(this,arguments)}function me(){return(me=Yt(function*(){try{HA(yield navigator.clipboard.readText())}catch(p){console.error(p),y(x,!0)}})).apply(this,arguments)}function nt(){return Wt.apply(this,arguments)}function Wt(){return(Wt=Yt(function*(){o("apply pasted multiline text",g(SA)),g(SA)&&(HA(JSON.stringify(g(SA))),setTimeout(M))})).apply(this,arguments)}function Xe(){o("clear pasted json"),y(le,void 0),M()}function oi(){o("clear pasted multiline text"),y(SA,void 0),M()}function Di(){q()(er.text)}function Ut(p){return cn.apply(this,arguments)}function cn(){return(cn=Yt(function*(p){yield RaA({json:g(eA),selection:g(DA),indentation:p?U():void 0,readOnly:C(),parser:w(),onPatch:Ot})})).apply(this,arguments)}function ft(){return Qi.apply(this,arguments)}function Qi(){return Qi=Yt(function*(){var p=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];g(eA)!==void 0&&(yield xaA({json:g(eA),selection:g(DA),indentation:p?U():void 0,parser:w()}))}),Qi.apply(this,arguments)}function ot(){FaA({json:g(eA),text:g(UA),selection:g(DA),keepSelection:!0,readOnly:C(),onChange:H(),onPatch:Ot})}function Mt(p){C()||(o("extract",{path:p}),Ot(oaA(g(eA),Ni(p))))}function on(){(function(p){var{json:N,selection:J,columns:V,readOnly:Z,onPatch:FA}=p;if(!Z&&N!==void 0&&J&&oQ(J)){var{rowIndex:te,columnIndex:re}=zc(et(J),V);Gs("duplicate row",{rowIndex:te});var Pe=[String(te)];FA(naA(N,[Pe]),(ze,ye)=>({state:ye,selection:Ni(YC({rowIndex:te({state:Vi,selection:Ni(YC({rowIndex:Pe,columnIndex:re},V))}))}})({json:g(eA),selection:g(DA),columns:g(Le),readOnly:C(),onPatch:Ot})}function Ki(){(function(p){var{json:N,selection:J,columns:V,readOnly:Z,onPatch:FA}=p;if(!Z&&N!==void 0&&J&&oQ(J)){var{rowIndex:te,columnIndex:re}=zc(et(J),V);Gs("remove row",{rowIndex:te}),FA(py([[String(te)]]),(Pe,ze)=>{var ye=te0?te-1:void 0,Ge=ye!==void 0?Ni(YC({rowIndex:ye,columnIndex:re},V)):void 0;return Gs("remove row new selection",{rowIndex:te,newRowIndex:ye,newSelection:Ge}),{state:ze,selection:Ge}})}})({json:g(eA),selection:g(DA),columns:g(Le),readOnly:C(),onPatch:Ot})}function dt(){return(dt=Yt(function*(p){yield NaA({char:p,selectInside:!1,json:g(eA),selection:g(DA),readOnly:C(),parser:w(),onPatch:Ot,onReplaceJson:ve,onSelect:Be})})).apply(this,arguments)}function EA(p){var N;p.preventDefault(),HA((N=p.clipboardData)===null||N===void 0?void 0:N.getData("text/plain"))}function HA(p){p!==void 0&&LaA({clipboardText:p,json:g(eA),selection:g(DA),readOnly:C(),parser:w(),onPatch:Ot,onChangeText:Qt,onPasteMultilineText:_i,openRepairModal:Fn})}function ve(p,N){var J={json:g(eA),text:g(UA)},V={json:g(eA),documentState:g(kA),selection:g(DA),sortedColumn:g(gt),text:g(UA),textIsRepaired:g(Ve)},Z=Qc(p,g(kA)),FA=typeof N=="function"?N(p,Z,g(DA)):void 0;y(eA,FA?.json!==void 0?FA.json:p),y(kA,FA?.state!==void 0?FA.state:Z),y(DA,FA?.selection!==void 0?FA.selection:g(DA)),y(gt,void 0),y(UA,void 0),y(Ve,!1),y(aA,void 0),Ee(g(eA)),Ei(V),Lt(J,void 0)}function Qt(p,N){o("handleChangeText");var J={json:g(eA),text:g(UA)},V={json:g(eA),documentState:g(kA),selection:g(DA),sortedColumn:g(gt),text:g(UA),textIsRepaired:g(Ve)};try{y(eA,_()(p)),y(kA,Qc(g(eA),g(kA))),y(UA,void 0),y(Ve,!1),y(aA,void 0)}catch(FA){try{y(eA,_()(Rc(p))),y(kA,Qc(g(eA),g(kA))),y(UA,p),y(Ve,!0),y(aA,void 0)}catch{y(eA,void 0),y(kA,void 0),y(UA,p),y(Ve,!1),y(aA,g(UA)!==""?dQ(g(UA),FA.message||String(FA)):void 0)}}if(typeof N=="function"){var Z=N(g(eA),g(kA),g(DA));y(eA,Z?.json!==void 0?Z.json:g(eA)),y(kA,Z?.state!==void 0?Z.state:g(kA)),y(DA,Z?.selection!==void 0?Z.selection:g(DA))}Ee(g(eA)),Ei(V),Lt(J,void 0)}function yi(p){o("select validation error",p),y(DA,Ni(p.path)),dn(p.path)}function ri(p){if(g(eA)!==void 0){var{id:N,onTransform:J,onClose:V}=p,Z=p.rootPath||[];Re=!0,VA()({id:N||l,json:g(eA),rootPath:Z||[],onTransform:FA=>{J?J({operations:FA,json:g(eA),transformedJson:Da(g(eA),FA)}):(o("onTransform",Z,FA),Ot(FA))},onClose:()=>{Re=!1,setTimeout(M),V&&V()}})}}function pn(p){o("openJSONEditorModal",{path:p}),Re=!0,oe()({content:{json:Ke(g(eA),p)},path:p,onPatch:Ot,onClose:()=>{Re=!1,setTimeout(M)}})}function Fn(p,N){y(He,{text:p,onParse:J=>sf(J,V=>rf(V,w())),onRepair:_sA,onApply:N,onClose:M})}function Jn(){(function(p){C()||g(eA)===void 0||(Re=!0,pA()({id:c,json:g(eA),rootPath:p,onSort:N=>{var{operations:J,itemPath:V,direction:Z}=N;o("onSort",J,p,V,Z),Ot(J,(FA,te)=>({state:te,sortedColumn:{path:V,sortDirection:Z===-1?Pc.desc:Pc.asc}}))},onClose:()=>{Re=!1,setTimeout(M)}}))})([])}function ln(){ri({rootPath:[]})}function Pt(p){o("openFind",{findAndReplace:p}),y(mA,!1),y(sA,!1),io(),y(mA,!0),y(sA,p)}function $i(){if(!C()&&E().canUndo){var p=E().undo();if(uy(p)){var N={json:g(eA),text:g(UA)};y(eA,p.undo.patch?Da(g(eA),p.undo.patch):p.undo.json),y(kA,p.undo.documentState),y(DA,p.undo.selection),y(gt,p.undo.sortedColumn),y(UA,p.undo.text),y(Ve,p.undo.textIsRepaired),y(aA,void 0),o("undo",{item:p,json:g(eA)}),Lt(N,p.undo.patch&&p.redo.patch?{json:g(eA),previousJson:N.json,redo:p.undo.patch,undo:p.redo.patch}:void 0),M(),g(DA)&&dn(et(g(DA)),{scrollToWhenVisible:!1})}else gA()(p)}}function Rr(){if(!C()&&E().canRedo){var p=E().redo();if(uy(p)){var N={json:g(eA),text:g(UA)};y(eA,p.redo.patch?Da(g(eA),p.redo.patch):p.redo.json),y(kA,p.redo.documentState),y(DA,p.redo.selection),y(gt,p.redo.sortedColumn),y(UA,p.redo.text),y(Ve,p.redo.textIsRepaired),y(aA,void 0),o("redo",{item:p,json:g(eA)}),Lt(N,p.undo.patch&&p.redo.patch?{json:g(eA),previousJson:N.json,redo:p.redo.patch,undo:p.undo.patch}:void 0),M(),g(DA)&&dn(et(g(DA)),{scrollToWhenVisible:!1})}else QA()(p)}}function Ft(p){y(P,p.getBoundingClientRect().height)}fA(()=>(k(D()),k(L())),()=>{y(KA,V_({escapeControlCharacters:D(),escapeUnicodeCharacters:L()}))}),fA(()=>g(mA),()=>{(function(p){if(g(TA)){var N=p?_3:-100;g(TA).scrollTo({top:hc(TA,g(TA).scrollTop+=N),left:g(TA).scrollLeft})}})(g(mA))}),fA(()=>k(d()),()=>{(function(p){var N={json:g(eA)},J=H3(p)?p.text!==g(UA):!di(N.json,p.json);if(o("update external content",{isChanged:J}),J){var V={json:g(eA),documentState:g(kA),selection:g(DA),sortedColumn:g(gt),text:g(UA),textIsRepaired:g(Ve)};if(H3(p))try{y(eA,_()(p.text)),y(kA,Qc(g(eA),g(kA))),y(UA,p.text),y(Ve,!1),y(aA,void 0)}catch(Z){try{y(eA,_()(Rc(p.text))),y(kA,Qc(g(eA),g(kA))),y(UA,p.text),y(Ve,!0),y(aA,void 0)}catch{y(eA,void 0),y(kA,void 0),y(UA,p.text),y(Ve,!1),y(aA,g(UA)!==""?dQ(g(UA),Z.message||String(Z)):void 0)}}else y(eA,p.json),y(kA,Qc(g(eA),g(kA))),y(UA,void 0),y(Ve,!1),y(aA,void 0);Ee(g(eA)),y(gt,void 0),Ei(V)}})(d())}),fA(()=>k(B()),()=>{(function(p){di(g(DA),p)||(o("applyExternalSelection",{selection:g(DA),externalSelection:p}),q3(p)&&y(DA,p))})(B())}),fA(()=>(g(Le),g(eA),k(R()),g(_e)),()=>{y(Le,wo(g(eA))?function(p,N){var J=new Set(N.map(Ct)),V=new Set(p.map(Ct));for(var Z of J)V.has(Z)||J.delete(Z);for(var FA of V)J.has(FA)||J.add(FA);return[...J].map(ks)}(rJA(g(eA),R(),g(_e)),g(Le)):[])}),fA(()=>(g(eA),g(Le)),()=>{y(bt,!(!g(eA)||Oi(g(Le))))}),fA(()=>(g(eA),g(_e)),()=>{y(A,Array.isArray(g(eA))&&g(eA).length>g(_e))}),fA(()=>(g(X),g(P),g(eA),g(mA),_3),()=>{y(i,sJA(g(X),g(P),g(eA),Y,bA,g(mA)?_3:0))}),fA(()=>g(eA),()=>{g(eA),g(TA)&&g(TA).scrollTo({top:g(TA).scrollTop,left:g(TA).scrollLeft})}),fA(()=>g(DA),()=>{var p;p=g(DA),di(p,B())||(o("onSelect",p),j()(p))}),fA(()=>(k(C()),k(h()),k(w()),g(KA),g(eA),g(kA),k(BA())),()=>{y(rt,{mode:er.table,readOnly:C(),truncateTextSize:h(),parser:w(),normalization:g(KA),getJson:()=>g(eA),getDocumentState:()=>g(kA),findElement:kn,findNextInside:Tt,focus:M,onPatch:(p,N)=>Ot(function(J,V){return J.flatMap(Z=>{if(k8(Z)){var FA=ks(Z.path);if(FA.length>0){for(var te=[Z],re=Fi(FA);re.length>0&&!Ms(V,re);)te.unshift({op:"add",path:Ct(re),value:{}}),re=Fi(re);return te}}return Z})}(p,g(eA)),N),onSelect:Be,onFind:Pt,onPasteJson:ii,onRenderValue:BA()})}),fA(()=>(g(eA),k(K()),k(w()),k(z())),()=>{xe(g(eA),K(),w(),z())}),fA(()=>(g(tn),g(Le)),()=>{y(n,aJA(g(tn),g(Le)))}),Qn(),Zt(!0);var Xn=fTA();ce("mousedown",A2,function(p){!yQ(p.target,N=>N===g(CA))&&br(g(DA))&&(o("click outside the editor, exit edit mode"),y(DA,Hg(g(DA))),$t&&g(Ze)&&(g(Ze).focus(),g(Ze).blur()),o("blur (outside editor)"),g(Ze)&&g(Ze).blur())});var se,vi=vt(Xn),Yi=W(vi),rn=p=>{(function(N,J){mt(J,!1);var V=b(J,"containsValidArray",9),Z=b(J,"readOnly",9),FA=b(J,"showSearch",13,!1),te=b(J,"history",9),re=b(J,"onSort",9),Pe=b(J,"onTransform",9),ze=b(J,"onContextMenu",9),ye=b(J,"onUndo",9),Ge=b(J,"onRedo",9),Vi=b(J,"onRenderMenu",9);function T(){FA(!FA())}var oA=$(void 0,!0),YA=$(void 0,!0);fA(()=>(k(Z()),k(re()),k(V()),k(Pe()),k(ze()),k(ye()),k(te()),k(Ge())),()=>{y(oA,Z()?[{type:"space"}]:[{type:"button",icon:l4,title:"Sort",className:"jse-sort",onClick:re(),disabled:Z()||!V()},{type:"button",icon:s4,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:Pe(),disabled:Z()||!V()},{type:"button",icon:g4,title:"Search (Ctrl+F)",className:"jse-search",onClick:T,disabled:!V()},{type:"button",icon:WS,title:AG,className:"jse-contextmenu",onClick:ze()},{type:"separator"},{type:"button",icon:h5,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:ye(),disabled:!te().canUndo},{type:"button",icon:Q5,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:Ge(),disabled:!te().canRedo},{type:"space"}])}),fA(()=>(k(Vi()),g(oA)),()=>{y(YA,Vi()(g(oA))||g(oA))}),Qn(),Zt(!0),Oy(N,{get items(){return g(YA)}}),pt()})(p,{get containsValidArray(){return g(bt)},get readOnly(){return C()},get history(){return E()},onSort:Jn,onTransform:ln,onUndo:$i,onRedo:Rr,onContextMenu:vo,get onRenderMenu(){return lA()},get showSearch(){return g(mA)},set showSearch(N){y(mA,N)},$$legacy:!0})};LA(Yi,p=>{u()&&p(rn)});var Hr=IA(Yi,2),Ri=p=>{var N=hTA(),J=vt(N),V=W(J);V.readOnly=!0,Co(V,re=>y(Ze,re),()=>g(Ze));var Z=IA(J,2),FA=re=>{var Pe=ETA(),ze=vt(Pe);MaA(W(ze),{get json(){return g(eA)},get documentState(){return g(kA)},get parser(){return w()},get showSearch(){return g(mA)},get showReplace(){return g(sA)},get readOnly(){return C()},get columns(){return g(Le)},onSearch:xt,onFocus:tt,onPatch:Ot,onClose:Dt});var ye=IA(ze,2),Ge=W(ye),Vi=W(Ge),T=W(Vi),oA=W(T),YA=W(oA),pe=st=>{var si=_o(),Eo=qA(()=>(k(XE),g(n),nA(()=>{var So;return XE([],(So=g(n))===null||So===void 0?void 0:So.root)}))),xr=vt(si),Hn=So=>{var zr=aTA();gQ(W(zr),{get validationError(){return g(Eo)},get onExpand(){return Oc}}),iA(So,zr)};LA(xr,So=>{g(Eo)&&So(Hn)}),iA(st,si)};LA(YA,st=>{k(Oi),g(n),nA(()=>{var si;return!Oi((si=g(n))===null||si===void 0?void 0:si.root)})&&st(pe)});var he=IA(oA);qo(he,1,()=>g(Le),or,(st,si)=>{var Eo=cTA();(function(xr,Hn){mt(Hn,!1);var So=$(void 0,!0),zr=$(void 0,!0),t0=$(void 0,!0),Ta=b(Hn,"path",9),Wc=b(Hn,"sortedColumn",9),Hl=b(Hn,"readOnly",9),Xc=b(Hn,"onSort",9);fA(()=>(k(Ta()),Ka),()=>{y(So,Oi(Ta())?"values":Ka(Ta()))}),fA(()=>(k(Wc()),k(Ta())),()=>{var $n;y(zr,Wc()&&di(Ta(),($n=Wc())===null||$n===void 0?void 0:$n.path)?Wc().sortDirection:void 0)}),fA(()=>(g(zr),orA),()=>{y(t0,g(zr)?orA[g(zr)]:void 0)}),Qn(),Zt(!0);var Or,Pr=WJA(),Ha=W(Pr),i0=W(Ha),za=IA(Ha,2),Ko=$n=>{var Zo=ZJA(),zl=W(Zo),Id=qA(()=>(g(zr),k(Pc),k(mg),k(VS),nA(()=>g(zr)===Pc.asc?mg:VS)));ji(zl,{get data(){return g(Id)}}),De(()=>En(Zo,"title","Currently sorted in ".concat(g(t0)," order"))),iA($n,Zo)};LA(za,$n=>{g(zr)!==void 0&&$n(Ko)}),De(($n,Zo)=>{Or=Vt(Pr,1,"jse-column-header svelte-2i3vdx",null,Or,$n),En(Pr,"title",Hl()?g(So):g(So)+" (Click to sort the data by this column)"),wt(i0,Zo)},[()=>({"jse-readonly":Hl()}),()=>(k(V0),g(So),k(50),nA(()=>V0(g(So),50)))],qA),ce("click",Pr,function(){Hl()||Xc()({path:Ta(),sortDirection:g(zr)===Pc.asc?Pc.desc:Pc.asc})}),iA(xr,Pr),pt()})(W(Eo),{get path(){return g(si)},get sortedColumn(){return g(gt)},get readOnly(){return C()},onSort:ZA}),iA(st,Eo)});var ge=IA(he),Bt=st=>{var si=lTA(),Eo=W(si),xr=qA(()=>(g(eA),nA(()=>Array.isArray(g(eA))?g(eA).length:0)));(function(Hn,So){mt(So,!1);var zr=b(So,"count",9),t0=b(So,"maxSampleCount",9),Ta=b(So,"readOnly",9),Wc=b(So,"onRefresh",9);Zt(!0);var Hl,Xc=sTA();ji(W(Xc),{get data(){return qW}}),De(Or=>{Hl=Vt(Xc,1,"jse-column-header svelte-fzj761",null,Hl,Or),En(Xc,"title","The Columns are created by sampling ".concat(t0()," items out of ").concat(zr(),". ")+"If you're missing a column, click here to sample all of the items instead of a subset. This is slower.")},[()=>({"jse-readonly":Ta()})],qA),ce("click",Xc,()=>Wc()()),iA(Hn,Xc),pt()})(Eo,{get count(){return g(xr)},get maxSampleCount(){return g(_e)},get readOnly(){return C()},onRefresh:()=>y(_e,1/0)}),iA(st,si)};LA(ge,st=>{g(A)&&st(Bt)});var $e,bi,un=IA(T),Ji=W(un),Tn=IA(un);qo(Tn,1,()=>(g(i),nA(()=>g(i).visibleItems)),or,(st,si,Eo)=>{var xr=BTA(),Hn=qA(()=>(g(i),nA(()=>g(i).startIndex+Eo))),So=qA(()=>(g(n),k(g(Hn)),nA(()=>g(n).rows[g(Hn)]))),zr=qA(()=>(k(XE),k(g(Hn)),k(g(So)),nA(()=>{var Or;return XE([String(g(Hn))],(Or=g(So))===null||Or===void 0?void 0:Or.row)}))),t0=qA(()=>(k(Jg),g(eA),g(Ue),k(g(Hn)),nA(()=>Jg(g(eA),g(Ue),[String(g(Hn))])))),Ta=W(xr);vsA(Ta,()=>g(Hn),Or=>{var Pr=gTA(),Ha=W(Pr),i0=IA(Ha),za=Ko=>{gQ(Ko,{get validationError(){return g(zr)},get onExpand(){return Oc}})};LA(i0,Ko=>{g(zr)&&Ko(za)}),Us(Pr,(Ko,$n)=>ny?.(Ko,$n),()=>Ko=>function($n,Zo){Y[Zo]=$n.getBoundingClientRect().height}(Ko,g(Hn))),De(()=>{var Ko;return wt(Ha,"".concat((Ko=g(Hn))!==null&&Ko!==void 0?Ko:""," "))}),iA(Or,Pr)});var Wc=IA(Ta);qo(Wc,1,()=>g(Le),or,(Or,Pr,Ha,i0)=>{var za,Ko=CTA(),$n=qA(()=>(k(g(Hn)),g(Pr),nA(()=>[String(g(Hn))].concat(g(Pr))))),Zo=qA(()=>(k(Ke),g(si),g(Pr),nA(()=>Ke(g(si),g(Pr))))),zl=qA(()=>(k(an),g(DA),k(Pg),k(g($n)),nA(()=>an(g(DA))&&Pg(g(DA).path,g($n))))),Id=qA(()=>(k(g(So)),nA(()=>{var rr;return(rr=g(So))===null||rr===void 0?void 0:rr.columns[Ha]}))),Cd=qA(()=>(k(XE),k(g($n)),k(g(Id)),nA(()=>XE(g($n),g(Id))))),JQ=W(Ko),dd=W(JQ),TQ=rr=>{var ta=qA(()=>(k(wy),k(Jg),g(si),k(g(t0)),g(Pr),nA(()=>wy(Jg(g(si),g(t0),g(Pr)))))),HQ=qA(()=>(k(g(ta)),nA(()=>!!g(ta)&&g(ta).some(aI=>aI.active)))),zQ=qA(()=>(k(Oi),k(g(ta)),nA(()=>!Oi(g(ta)))));(function(aI,is){mt(is,!1);var OQ=b(is,"path",9),OU=b(is,"value",9),PU=b(is,"parser",9),LgA=b(is,"isSelected",9),FgA=b(is,"containsSearchResult",9),NgA=b(is,"containsActiveSearchResult",9),_gA=b(is,"onEdit",9);Zt(!0);var jU,Hf=VJA(),GgA=W(Hf);De((PQ,UgA)=>{jU=Vt(Hf,1,"jse-inline-value svelte-h57m0p",null,jU,PQ),wt(GgA,UgA)},[()=>({"jse-selected":LgA(),"jse-highlight":FgA(),"jse-active":NgA()}),()=>(k(V0),k(PU()),k(OU()),k(50),nA(()=>{var PQ;return V0((PQ=PU().stringify(OU()))!==null&&PQ!==void 0?PQ:"",50)}))],qA),ce("dblclick",Hf,()=>_gA()(OQ())),iA(aI,Hf),pt()})(rr,{get path(){return g($n)},get value(){return g(Zo)},get parser(){return w()},get isSelected(){return g(zl)},get containsSearchResult(){return g(zQ)},get containsActiveSearchResult(){return g(HQ)},onEdit:pn})},U7=rr=>{var ta=qA(()=>(k(Jg),g(eA),g(Ue),k(g($n)),nA(()=>{var is;return(is=Jg(g(eA),g(Ue),g($n)))===null||is===void 0?void 0:is.searchResults}))),HQ=qA(()=>g(Zo)!==void 0?g(Zo):""),zQ=qA(()=>(k(zg),g(eA),g(kA),k(g($n)),nA(()=>zg(g(eA),g(kA),g($n))))),aI=qA(()=>g(zl)?g(DA):void 0);vaA(rr,{get path(){return g($n)},get value(){return g(HQ)},get enforceString(){return g(zQ)},get selection(){return g(aI)},get searchResultItems(){return g(ta)},get context(){return g(rt)}})};LA(dd,rr=>{k(No),k(g(Zo)),nA(()=>No(g(Zo)))?rr(TQ):rr(U7,!1)});var K7=IA(dd),Y7=rr=>{var ta=ITA();_1(W(ta),{selected:!0,onContextMenu:Wn}),iA(rr,ta)};LA(K7,rr=>{k(C()),k(g(zl)),k(br),g(DA),nA(()=>!C()&&g(zl)&&!br(g(DA)))&&rr(Y7)});var Ol=IA(JQ,2),sI=rr=>{gQ(rr,{get validationError(){return g(Cd)},get onExpand(){return Oc}})};LA(Ol,rr=>{g(Cd)&&rr(sI)}),De((rr,ta)=>{En(Ko,"data-path",rr),za=Vt(JQ,1,"jse-value-outer svelte-u14cgx",null,za,ta)},[()=>(k(sy),k(g($n)),nA(()=>sy(g($n)))),()=>({"jse-selected-value":g(zl)})],qA),iA(Or,Ko)});var Hl=IA(Wc),Xc=Or=>{iA(Or,dTA())};LA(Hl,Or=>{g(A)&&Or(Xc)}),iA(st,xr)});var Ht,ko=W(IA(Tn));Co(ye,st=>y(TA,st),()=>g(TA)),Us(ye,(st,si)=>ny?.(st,si),()=>Ft),es(()=>ce("scroll",ye,We));var Sn=IA(ye,2),no=st=>{var si=qA(()=>(g(le),nA(()=>"You pasted a JSON ".concat(Array.isArray(g(le).contents)?"array":"object"," as text")))),Eo=qA(()=>[{icon:L0,text:"Paste as JSON instead",title:"Paste the text as JSON instead of a single value",onMouseDown:ne},{text:"Leave as is",title:"Keep the pasted content as a single value",onClick:Xe}]);mc(st,{type:"info",get message(){return g(si)},get actions(){return g(Eo)}})};LA(Sn,st=>{g(le)&&st(no)});var gn=IA(Sn,2),Nt=st=>{var si=qA(()=>[{icon:L0,text:"Paste as string instead",title:"Paste the clipboard data as a single string value instead of an array",onClick:nt},{text:"Leave as is",title:"Keep the pasted array",onClick:oi}]);mc(st,{type:"info",message:"Multiline text was pasted as array",get actions(){return g(si)}})};LA(gn,st=>{g(SA)&&st(Nt)});var Zi=IA(gn,2),_t=st=>{var si=qA(()=>C()?[]:[{icon:u5,text:"Ok",title:"Accept the repaired document",onClick:pi},{icon:a4,text:"Repair manually instead",title:"Leave the document unchanged and repair it manually instead",onClick:Di}]);mc(st,{type:"success",message:"The loaded JSON document was invalid but is successfully repaired.",get actions(){return g(si)},onClose:M})};LA(Zi,st=>{g(Ve)&&st(_t)}),dG(IA(Zi,2),{get validationErrors(){return g(tn)},selectError:yi}),De((st,si,Eo)=>{$e=Vt(un,1,"jse-table-invisible-start-section svelte-u14cgx",null,$e,st),En(Ji,"colspan",(g(Le),nA(()=>g(Le).length))),bi=Ll(Ji,"",bi,si),En(ko,"colspan",(g(Le),nA(()=>g(Le).length))),Ht=Ll(ko,"",Ht,Eo)},[()=>({"jse-search-box-background":g(mA)}),()=>({height:(g(i),nA(()=>g(i).startHeight+"px"))}),()=>({height:(g(i),nA(()=>g(i).endHeight+"px"))})],qA),iA(re,Pe)},te=(re,Pe)=>{var ze=Ge=>{var Vi=QTA(),T=vt(Vi),oA=qA(()=>C()?[]:[{icon:a4,text:"Repair manually",title:'Open the document in "code" mode and repair it manually',onClick:Di}]);mc(T,{type:"error",message:"The loaded JSON document is invalid and could not be repaired automatically.",get actions(){return g(oA)}}),_aA(IA(T,2),{get text(){return g(UA)},get json(){return g(eA)},get indentation(){return U()},get parser(){return w()}}),iA(Ge,Vi)},ye=Ge=>{rTA(Ge,{get text(){return g(UA)},get json(){return g(eA)},get readOnly(){return C()},get parser(){return w()},openJSONEditorModal:pn,extractPath:Mt,get onChangeMode(){return q()},onClick:()=>{M()}})};LA(re,Ge=>{g(aA)&&g(UA)!==void 0&&g(UA)!==""?Ge(ze):Ge(ye,!1)},Pe)};LA(Z,re=>{g(bt)?re(FA):re(te,!1)}),ce("paste",V,EA),iA(p,N)},fs=p=>{iA(p,uTA())};LA(Hr,p=>{I?p(fs,!1):p(Ri)}),Co(vi,p=>y(CA,p),()=>g(CA));var Bo=IA(vi,2),Q=p=>{DaA(p,{onClose:()=>y(x,!1)})};LA(Bo,p=>{g(x)&&p(Q)});var m=IA(Bo,2),v=p=>{yaA(p,z1(()=>g(He),{onClose:()=>{var N;(N=g(He))===null||N===void 0||N.onClose(),y(He,void 0)}}))};return LA(m,p=>{g(He)&&p(v)}),De(p=>se=Vt(vi,1,"jse-table-mode svelte-u14cgx",null,se,p),[()=>({"no-main-menu":!u()})],qA),ce("mousedown",vi,function(p){if(p.buttons===1||p.buttons===2){var N=p.target;N.isContentEditable||M();var J=PsA(N);if(J){if(br(g(DA))&&V3(g(eA),g(DA),J))return;y(DA,Ni(J)),p.preventDefault()}}}),ce("keydown",vi,function(p){var N=n2(p);if(o("keydown",{combo:N,key:p.key}),N==="Ctrl+X"&&(p.preventDefault(),Ut(!0)),N==="Ctrl+Shift+X"&&(p.preventDefault(),Ut(!1)),N==="Ctrl+C"&&(p.preventDefault(),ft(!0)),N==="Ctrl+Shift+C"&&(p.preventDefault(),ft(!1)),N==="Ctrl+D"&&(p.preventDefault(),on()),N!=="Delete"&&N!=="Backspace"||(p.preventDefault(),ot()),N==="Insert"&&p.preventDefault(),N==="Ctrl+A"&&p.preventDefault(),N==="Ctrl+Q"&&Vo(p),N==="ArrowLeft"&&(p.preventDefault(),ni(),g(DA))){var J=function(Pe,ze){var{rowIndex:ye,columnIndex:Ge}=zc(et(ze),Pe);return Ge>0?Ni(YC({rowIndex:ye,columnIndex:Ge-1},Pe)):ze}(g(Le),g(DA));y(DA,J),Uo(et(J))}if(N==="ArrowRight"&&(p.preventDefault(),ni(),g(DA))){var V=function(Pe,ze){var{rowIndex:ye,columnIndex:Ge}=zc(et(ze),Pe);return Ge0?Ni(YC({rowIndex:ye-1,columnIndex:Ge},Pe)):ze}(g(Le),g(DA));y(DA,Z),Uo(et(Z))}if(N==="ArrowDown"&&(p.preventDefault(),ni(),g(DA))){var FA=function(Pe,ze,ye){var{rowIndex:Ge,columnIndex:Vi}=zc(et(ye),ze);return Gey(KA,x)}).get()),CA=$(a());function TA(x){if(grA(x)){y(CA,x.undo.mode);var Y=g(KA).items(),P=Y.findIndex(bA=>bA===x),X=P!==-1?Y[P-1]:void 0;oe("handleUndo",{index:P,item:x,items:Y,prevItem:X}),X&&i(X.redo.selection),K()(g(CA))}}function Ze(x){if(grA(x)){y(CA,x.redo.mode);var Y=g(KA).items(),P=Y.findIndex(bA=>bA===x),X=P!==-1?Y[P+1]:void 0;oe("handleRedo",{index:P,item:x,items:Y,nextItem:X}),X&&i(X.undo.selection),K()(g(CA))}}var He=$(),uA={type:"separator"},eA=$(),UA=$();function aA(x){if(g(cA))return g(cA).patch(x);if(g(pA))return g(pA).patch(x);if(g(VA))return g(VA).patch(x);throw new Error('Method patch is not available in mode "'.concat(g(CA),'"'))}function le(x,Y){if(g(cA))return g(cA).expand(x,Y);throw new Error('Method expand is not available in mode "'.concat(g(CA),'"'))}function SA(x,Y){if(g(cA))return g(cA).collapse(x,Y);throw new Error('Method collapse is not available in mode "'.concat(g(CA),'"'))}function Ue(x){if(g(VA))g(VA).openTransformModal(x);else if(g(cA))g(cA).openTransformModal(x);else{if(!g(pA))throw new Error('Method transform is not available in mode "'.concat(g(CA),'"'));g(pA).openTransformModal(x)}}function mA(){if(g(VA))return g(VA).validate();if(g(cA))return g(cA).validate();if(g(pA))return g(pA).validate();throw new Error('Method validate is not available in mode "'.concat(g(CA),'"'))}function sA(){return g(cA)?g(cA).acceptAutoRepair():A()}function xt(x){if(g(cA))return g(cA).scrollTo(x);if(g(pA))return g(pA).scrollTo(x);throw new Error('Method scrollTo is not available in mode "'.concat(g(CA),'"'))}function tt(x){if(g(cA))return g(cA).findElement(x);if(g(pA))return g(pA).findElement(x);throw new Error('Method findElement is not available in mode "'.concat(g(CA),'"'))}function de(){g(VA)?g(VA).focus():g(cA)?g(cA).focus():g(pA)&&g(pA).focus()}function Dt(){return _e.apply(this,arguments)}function _e(){return(_e=Yt(function*(){g(VA)&&(yield g(VA).refresh())})).apply(this,arguments)}fA(()=>k(a()),()=>{(function(x){if(x!==g(CA)){var Y={type:"mode",undo:{mode:g(CA),selection:void 0},redo:{mode:x,selection:void 0}};g(CA)==="text"&&g(VA)&&g(VA).flush(),oe("add history item",Y),g(KA).add(Y),y(CA,x)}})(a())}),fA(()=>(g(CA),k(K())),()=>{y(He,[{type:"button",text:"text",title:"Switch to text mode (current mode: ".concat(g(CA),")"),className:"jse-group-button jse-first"+(g(CA)===er.text?" jse-selected":""),onClick:()=>K()(er.text)},{type:"button",text:"tree",title:"Switch to tree mode (current mode: ".concat(g(CA),")"),className:"jse-group-button "+(g(CA)===er.tree?" jse-selected":""),onClick:()=>K()(er.tree)},{type:"button",text:"table",title:"Switch to table mode (current mode: ".concat(g(CA),")"),className:"jse-group-button jse-last"+(g(CA)===er.table?" jse-selected":""),onClick:()=>K()(er.table)}])}),fA(()=>(g(He),k(q()),g(CA),k(w()),k(n())),()=>{y(eA,x=>{var Y=p_(x[0])?g(He).concat(x):g(He).concat(uA,x),P=i4(Y);return q()(Y,{mode:g(CA),modal:w(),readOnly:n()})||P})}),fA(()=>(k(j()),g(CA),k(w()),k(n()),k(i())),()=>{y(UA,x=>{var Y,P=i4(x);return(Y=j()(x,{mode:g(CA),modal:w(),readOnly:n(),selection:i()}))!==null&&Y!==void 0?Y:!n()&&P})}),Qn(),Zt();var Le=_o(),bt=vt(Le),Re=x=>{Co(qJA(x,{get externalContent(){return A()},get externalSelection(){return i()},get history(){return g(KA)},get readOnly(){return n()},get indentation(){return o()},get tabSize(){return r()},get mainMenuBar(){return c()},get statusBar(){return I()},get askToFormat(){return C()},get escapeUnicodeCharacters(){return B()},get parser(){return h()},get validator(){return D()},get validationParser(){return L()},get onChange(){return _()},get onChangeMode(){return K()},get onSelect(){return z()},onUndo:TA,onRedo:Ze,get onError(){return gA()},get onFocus(){return QA()},get onBlur(){return BA()},get onRenderMenu(){return g(eA)},get onSortModal(){return lA()},get onTransformModal(){return vA()},$$legacy:!0}),Y=>y(VA,Y),()=>g(VA))},$t=(x,Y)=>{var P=bA=>{Co(mTA(bA,{get externalContent(){return A()},get externalSelection(){return i()},get history(){return g(KA)},get readOnly(){return n()},get truncateTextSize(){return s()},get mainMenuBar(){return c()},get escapeControlCharacters(){return d()},get escapeUnicodeCharacters(){return B()},get flattenColumns(){return E()},get parser(){return h()},get parseMemoizeOne(){return u()},get validator(){return D()},get validationParser(){return L()},get indentation(){return o()},get onChange(){return _()},get onChangeMode(){return K()},get onSelect(){return z()},onUndo:TA,onRedo:Ze,get onRenderValue(){return U()},get onFocus(){return QA()},get onBlur(){return BA()},get onRenderMenu(){return g(eA)},get onRenderContextMenu(){return g(UA)},get onSortModal(){return lA()},get onTransformModal(){return vA()},get onJSONEditorModal(){return tA()},$$legacy:!0}),Be=>y(pA,Be),()=>g(pA))},X=bA=>{Co(U_(bA,{get externalContent(){return A()},get externalSelection(){return i()},get history(){return g(KA)},get readOnly(){return n()},get indentation(){return o()},get truncateTextSize(){return s()},get mainMenuBar(){return c()},get navigationBar(){return l()},get escapeControlCharacters(){return d()},get escapeUnicodeCharacters(){return B()},get parser(){return h()},get parseMemoizeOne(){return u()},get validator(){return D()},get validationParser(){return L()},get pathParser(){return R()},get onError(){return gA()},get onChange(){return _()},get onChangeMode(){return K()},get onSelect(){return z()},onUndo:TA,onRedo:Ze,get onRenderValue(){return U()},get onClassName(){return H()},get onFocus(){return QA()},get onBlur(){return BA()},get onRenderMenu(){return g(eA)},get onRenderContextMenu(){return g(UA)},get onSortModal(){return lA()},get onTransformModal(){return vA()},get onJSONEditorModal(){return tA()},$$legacy:!0}),Be=>y(cA,Be),()=>g(cA))};LA(x,bA=>{g(CA),k(er),nA(()=>g(CA)===er.table)?bA(P):bA(X,!1)},Y)};return LA(bt,x=>{g(CA),k(er),nA(()=>g(CA)===er.text||String(g(CA))==="code")?x(Re):x($t,!1)}),iA(t,Le),zt(e,"patch",aA),zt(e,"expand",le),zt(e,"collapse",SA),zt(e,"transform",Ue),zt(e,"validate",mA),zt(e,"acceptAutoRepair",sA),zt(e,"scrollTo",xt),zt(e,"findElement",tt),zt(e,"focus",de),zt(e,"refresh",Dt),pt({patch:aA,expand:le,collapse:SA,transform:Ue,validate:mA,acceptAutoRepair:sA,scrollTo:xt,findElement:tt,focus:de,refresh:Dt})}Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-modal-wrapper.svelte-v0el4e { - flex: 1; - display: flex; - min-width: 0; - min-height: 0; - flex-direction: column; -} -.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) { - flex: 1; - display: flex; - flex-direction: column; - padding: 20px; - overflow: auto; - min-width: 0; - min-height: 0; -} -.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) { - display: flex; - flex-direction: row; - justify-content: flex-end; - padding-top: var(--jse-padding, 10px); -} -.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) button.jse-primary:where(.svelte-v0el4e) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); - color: var(--jse-button-primary-color, #fff); - padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); - border-radius: 3px; -} -.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) button.jse-primary:where(.svelte-v0el4e):hover { - background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); -} -.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) button.jse-primary:where(.svelte-v0el4e):disabled { - background: var(--jse-button-primary-background-disabled, #9d9d9d); -} -.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-label:where(.svelte-v0el4e) { - font-weight: bold; - display: block; - box-sizing: border-box; -} -.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-label:where(.svelte-v0el4e) .jse-label-inner:where(.svelte-v0el4e) { - margin-top: calc(2 * var(--jse-padding, 10px)); - margin-bottom: calc(0.5 * var(--jse-padding, 10px)); - box-sizing: border-box; -} -.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-modal-inline-editor:where(.svelte-v0el4e) { - flex: 1; - min-height: 150px; - min-width: 0; - max-width: 100%; - display: flex; - --jse-theme-color: var(--jse-modal-editor-theme-color, #707070); - --jse-theme-color-highlight: var(--jse-modal-editor-theme-color-highlight, #646464); -} -.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) { - gap: var(--jse-padding, 10px); - align-items: center; -} -.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) .jse-error:where(.svelte-v0el4e) { - flex: 1; - color: var(--jse-error-color, #ee5341); -} -.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) button.jse-secondary:where(.svelte-v0el4e) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - background: var(--jse-button-secondary-background, #d3d3d3); - color: var(--jse-button-secondary-color, var(--jse-text-color, #4d4d4d)); - padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); - border-radius: 3px; -} -.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) button.jse-secondary:where(.svelte-v0el4e):hover { - background: var(--jse-button-secondary-background-highlight, #e1e1e1); -} -.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) button.jse-secondary:where(.svelte-v0el4e):disabled { - background: var(--jse-button-secondary-background-disabled, #9d9d9d); -} -.jse-modal-wrapper.svelte-v0el4e input:where(.svelte-v0el4e) { - border: var(--jse-input-border, 1px solid #d8dbdf); - outline: none; - box-sizing: border-box; - padding: calc(0.5 * var(--jse-padding, 10px)); - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - color: inherit; - background: var(--jse-input-background, var(--jse-background-color, #fff)); -} -.jse-modal-wrapper.svelte-v0el4e input:where(.svelte-v0el4e):focus { - border: var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa))); -} -.jse-modal-wrapper.svelte-v0el4e input:where(.svelte-v0el4e):read-only { - background: var(--jse-input-background-readonly, transparent); -}`);var pTA=wA('
        '),wTA=wA(''),DTA=wA(''),yTA=wA(''),vTA=wA('
        Path
        Contents
        ',1),bTA=wA('
        '),MTA={};Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-modal-contents.svelte-1v9c92j { - flex: 1; - display: flex; - flex-direction: column; - padding: 20px; - overflow: auto; - min-width: 0; - min-height: 0; -} -.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) { - display: flex; - flex-direction: row; - justify-content: flex-end; - padding-top: var(--jse-padding, 10px); -} -.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) button.jse-primary:where(.svelte-1v9c92j) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); - color: var(--jse-button-primary-color, #fff); - padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); - border-radius: 3px; -} -.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) button.jse-primary:where(.svelte-1v9c92j):hover { - background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); -} -.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) button.jse-primary:where(.svelte-1v9c92j):disabled { - background: var(--jse-button-primary-background-disabled, #9d9d9d); -} -.jse-modal-contents.svelte-1v9c92j table:where(.svelte-1v9c92j) { - width: 100%; - border-collapse: collapse; - border-spacing: 0; -} -.jse-modal-contents.svelte-1v9c92j table:where(.svelte-1v9c92j) th:where(.svelte-1v9c92j), -.jse-modal-contents.svelte-1v9c92j table:where(.svelte-1v9c92j) td:where(.svelte-1v9c92j) { - text-align: left; - vertical-align: middle; - font-weight: normal; - padding-bottom: var(--jse-padding, 10px); -} -.jse-modal-contents.svelte-1v9c92j input.jse-path:where(.svelte-1v9c92j) { - width: 100%; - box-sizing: border-box; - padding: 5px 10px; - border: var(--jse-input-border, 1px solid #d8dbdf); - border-radius: var(--jse-input-radius, 3px); - font-family: inherit; - font-size: inherit; - background: inherit; - background: var(--jse-input-background-readonly, transparent); - color: inherit; - outline: none; -} -.jse-modal-contents.svelte-1v9c92j .svelte-select input { - box-sizing: border-box; -} -.jse-modal-contents.svelte-1v9c92j .jse-space:where(.svelte-1v9c92j) { - height: 200px; -} -.jse-modal-contents.svelte-1v9c92j .jse-space:where(.svelte-1v9c92j) .jse-error:where(.svelte-1v9c92j) { - color: var(--jse-error-color, #ee5341); -}`);var AQ=Gy(()=>MTA),kTA=wA('Property'),STA=wA('
        '),RTA=wA('
        Path
        Direction
        ',1);Jt(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-main.svelte-57bmz4 { - width: 100%; - height: 100%; - min-width: 0; - min-height: 150px; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - line-height: normal; - position: relative; - display: flex; - flex-direction: row; -} -.jse-main.svelte-57bmz4:not(.jse-focus) { - --jse-selection-background-color: var(--jse-selection-background-inactive-color, #e8e8e8); - --jse-context-menu-pointer-background: var(--jse-context-menu-pointer-hover-background, #b2b2b2); -}`);var xTA=wA('
        ',1);function LTA(t,e){mt(e,!1);var A=$(void 0,!0),i=Sr("jsoneditor:JSONEditor"),n={text:""},o=void 0,r=!1,s=er.tree,a=!0,c=!0,l=!0,I=!0,C=!1,d=!1,B=!0,E=JSON,h=void 0,u=JSON,D={parse:SUA,stringify:Ka},L=[VGA],R=L[0].id,w=Oc,_=void 0,K=void 0,z=kUA,U=Oc,H=Oc,q=Oc,j=Oc,gA=ne=>{console.error(ne),alert(ne.toString())},QA=Oc,BA=Oc,lA=b(e,"content",13,n),vA=b(e,"selection",13,o),tA=b(e,"readOnly",13,r),cA=b(e,"indentation",13,2),pA=b(e,"tabSize",13,4),VA=b(e,"truncateTextSize",13,1e3),oe=b(e,"mode",13,s),KA=b(e,"mainMenuBar",13,a),CA=b(e,"navigationBar",13,c),TA=b(e,"statusBar",13,l),Ze=b(e,"askToFormat",13,I),He=b(e,"escapeControlCharacters",13,C),uA=b(e,"escapeUnicodeCharacters",13,d),eA=b(e,"flattenColumns",13,B),UA=b(e,"parser",13,E),aA=b(e,"validator",13,h),le=b(e,"validationParser",13,u),SA=b(e,"pathParser",13,D),Ue=b(e,"queryLanguages",13,L),mA=b(e,"queryLanguageId",13,R),sA=b(e,"onChangeQueryLanguage",13,w),xt=b(e,"onChange",13,_),tt=b(e,"onSelect",13,K),de=b(e,"onRenderValue",13,z),Dt=b(e,"onClassName",13,U),_e=b(e,"onRenderMenu",13,H),Le=b(e,"onRenderContextMenu",13,q),bt=b(e,"onChangeMode",13,j),Re=b(e,"onError",13,gA),$t=b(e,"onFocus",13,QA),x=b(e,"onBlur",13,BA),Y=$(nQ(),!0),P=$(!1,!0),X=$(void 0,!0),bA=$(void 0,!0),Be=$(void 0,!0),Ee=$(void 0,!0),kA=$(UA(),!0);function DA(){return lA()}function gt(ne){i("set");var wi=HN(ne);if(wi)throw new Error(wi);y(Y,nQ()),lA(ne),io()}function Ve(ne){i("update");var wi=HN(ne);if(wi)throw new Error(wi);lA(ne),io()}function ZA(ne){var wi=g(X).patch(ne);return io(),wi}function rt(ne){vA(ne),io()}function Ei(ne,wi){g(X).expand(ne,wi),io()}function tn(ne){var wi=arguments.length>1&&arguments[1]!==void 0&&arguments[1];g(X).collapse(ne,wi),io()}function qi(){var ne=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};g(X).transform(ne),io()}function xe(){return g(X).validate()}function nn(){var ne=g(X).acceptAutoRepair();return io(),ne}function mi(ne){return Ot.apply(this,arguments)}function Ot(){return(Ot=Yt(function*(ne){yield g(X).scrollTo(ne)})).apply(this,arguments)}function Lt(ne){return g(X).findElement(ne)}function ii(){g(X).focus(),io()}function _i(){return Tt.apply(this,arguments)}function Tt(){return(Tt=Yt(function*(){yield g(X).refresh()})).apply(this,arguments)}function M(ne){var wi,MA,me,nt,Wt,Xe,oi,Di,Ut,cn,ft,Qi,ot,Mt,on,hn,Ai,Ki,dt,EA,HA,ve,Qt,yi,ri,pn,Fn,Jn,ln,Pt,$i,Rr=Object.keys(ne);for(var Ft of Rr)switch(Ft){case"content":lA((wi=ne[Ft])!==null&&wi!==void 0?wi:n);break;case"selection":vA((MA=ne[Ft])!==null&&MA!==void 0?MA:o);break;case"readOnly":tA((me=ne[Ft])!==null&&me!==void 0?me:r);break;case"indentation":cA((nt=ne[Ft])!==null&&nt!==void 0?nt:2);break;case"tabSize":pA((Wt=ne[Ft])!==null&&Wt!==void 0?Wt:4);break;case"truncateTextSize":VA((Xe=ne[Ft])!==null&&Xe!==void 0?Xe:1e3);break;case"mode":oe((oi=ne[Ft])!==null&&oi!==void 0?oi:s);break;case"mainMenuBar":KA((Di=ne[Ft])!==null&&Di!==void 0?Di:a);break;case"navigationBar":CA((Ut=ne[Ft])!==null&&Ut!==void 0?Ut:c);break;case"statusBar":TA((cn=ne[Ft])!==null&&cn!==void 0?cn:l);break;case"askToFormat":Ze((ft=ne[Ft])!==null&&ft!==void 0?ft:I);break;case"escapeControlCharacters":He((Qi=ne[Ft])!==null&&Qi!==void 0?Qi:C);break;case"escapeUnicodeCharacters":uA((ot=ne[Ft])!==null&&ot!==void 0?ot:d);break;case"flattenColumns":eA((Mt=ne[Ft])!==null&&Mt!==void 0?Mt:B);break;case"parser":UA((on=ne[Ft])!==null&&on!==void 0?on:E);break;case"validator":aA((hn=ne[Ft])!==null&&hn!==void 0?hn:h);break;case"validationParser":le((Ai=ne[Ft])!==null&&Ai!==void 0?Ai:u);break;case"pathParser":SA((Ki=ne[Ft])!==null&&Ki!==void 0?Ki:D);break;case"queryLanguages":Ue((dt=ne[Ft])!==null&&dt!==void 0?dt:L);break;case"queryLanguageId":mA((EA=ne[Ft])!==null&&EA!==void 0?EA:R);break;case"onChangeQueryLanguage":sA((HA=ne[Ft])!==null&&HA!==void 0?HA:w);break;case"onChange":xt((ve=ne[Ft])!==null&&ve!==void 0?ve:_);break;case"onRenderValue":de((Qt=ne[Ft])!==null&&Qt!==void 0?Qt:z);break;case"onClassName":Dt((yi=ne[Ft])!==null&&yi!==void 0?yi:U);break;case"onRenderMenu":_e((ri=ne[Ft])!==null&&ri!==void 0?ri:H);break;case"onRenderContextMenu":Le((pn=ne[Ft])!==null&&pn!==void 0?pn:q);break;case"onChangeMode":bt((Fn=ne[Ft])!==null&&Fn!==void 0?Fn:j);break;case"onSelect":tt((Jn=ne[Ft])!==null&&Jn!==void 0?Jn:K);break;case"onError":Re((ln=ne[Ft])!==null&&ln!==void 0?ln:gA);break;case"onFocus":$t((Pt=ne[Ft])!==null&&Pt!==void 0?Pt:QA);break;case"onBlur":x(($i=ne[Ft])!==null&&$i!==void 0?$i:BA);break;default:Xn(Ft)}function Xn(se){i('Unknown property "'.concat(se,'"'))}Ue().some(se=>se.id===mA())||mA(Ue()[0].id),io()}function We(){return ni.apply(this,arguments)}function ni(){return(ni=Yt(function*(){throw new Error("class method destroy() is deprecated. It is replaced with a method destroy() in the vanilla library.")})).apply(this,arguments)}function pi(ne,wi,MA){lA(ne),xt()&&xt()(ne,wi,MA)}function dn(ne){vA(ne),tt()&&tt()(i4(ne))}function mn(){y(P,!0),$t()&&$t()()}function Uo(){y(P,!1),x()&&x()()}function kn(ne){return Wn.apply(this,arguments)}function Wn(){return(Wn=Yt(function*(ne){oe()!==ne&&(oe(ne),io(),ii(),bt()(ne))})).apply(this,arguments)}function Vo(ne){i("handleChangeQueryLanguage",ne),mA(ne),sA()(ne)}function vo(ne){var{id:wi,json:MA,rootPath:me,onTransform:nt,onClose:Wt}=ne;tA()||y(Ee,{id:wi,json:MA,rootPath:me,indentation:cA(),truncateTextSize:VA(),escapeControlCharacters:He(),escapeUnicodeCharacters:uA(),parser:UA(),parseMemoizeOne:g(A),validationParser:le(),pathParser:SA(),queryLanguages:Ue(),queryLanguageId:mA(),onChangeQueryLanguage:Vo,onRenderValue:de(),onRenderMenu:Xe=>_e()(Xe,{mode:oe(),modal:!0,readOnly:tA()}),onRenderContextMenu:Xe=>Le()(Xe,{mode:oe(),modal:!0,readOnly:tA(),selection:vA()}),onClassName:Dt(),onTransform:nt,onClose:Wt})}function bo(ne){tA()||y(Be,ne)}function Yn(ne){var{content:wi,path:MA,onPatch:me,onClose:nt}=ne;i("onJSONEditorModal",{content:wi,path:MA}),y(bA,{content:wi,path:MA,onPatch:me,readOnly:tA(),indentation:cA(),tabSize:pA(),truncateTextSize:VA(),mainMenuBar:KA(),navigationBar:CA(),statusBar:TA(),askToFormat:Ze(),escapeControlCharacters:He(),escapeUnicodeCharacters:uA(),flattenColumns:eA(),parser:UA(),validator:void 0,validationParser:le(),pathParser:SA(),onRenderValue:de(),onClassName:Dt(),onRenderMenu:_e(),onRenderContextMenu:Le(),onSortModal:bo,onTransformModal:vo,onClose:nt})}function Mo(ne){ne.stopPropagation()}return fA(()=>(k(UA()),g(kA),k(lA()),nQ),()=>{if(!UsA(UA(),g(kA))){if(i("parser changed, recreate editor"),z3(lA())){var ne=g(kA).stringify(lA().json);lA({json:ne!==void 0?UA().parse(ne):void 0})}y(kA,UA()),y(Y,nQ())}}),fA(()=>k(lA()),()=>{var ne=HN(lA());ne&&console.error("Error: "+ne)}),fA(()=>k(vA()),()=>{vA()===null&&console.warn("selection is invalid: it is null but should be undefined")}),fA(()=>k(UA()),()=>{y(A,aE(UA().parse))}),fA(()=>k(oe()),()=>{i("mode changed to",oe())}),Qn(),Zt(!0),f_(t,{children:(ne,wi)=>{var MA,me=xTA(),nt=vt(me);vsA(W(nt),()=>g(Y),ft=>{Co(HrA(ft,{get externalMode(){return oe()},get content(){return lA()},get selection(){return vA()},get readOnly(){return tA()},get indentation(){return cA()},get tabSize(){return pA()},get truncateTextSize(){return VA()},get statusBar(){return TA()},get askToFormat(){return Ze()},get mainMenuBar(){return KA()},get navigationBar(){return CA()},get escapeControlCharacters(){return He()},get escapeUnicodeCharacters(){return uA()},get flattenColumns(){return eA()},get parser(){return UA()},get parseMemoizeOne(){return g(A)},get validator(){return aA()},get validationParser(){return le()},get pathParser(){return SA()},insideModal:!1,get onError(){return Re()},onChange:pi,onChangeMode:kn,onSelect:dn,get onRenderValue(){return de()},get onClassName(){return Dt()},onFocus:mn,onBlur:Uo,get onRenderMenu(){return _e()},get onRenderContextMenu(){return Le()},onSortModal:bo,onTransformModal:vo,onJSONEditorModal:Yn,$$legacy:!0}),Qi=>y(X,Qi),()=>g(X))});var Wt=IA(nt,2),Xe=ft=>{(function(Qi,ot){var Mt,on;mt(ot,!1);var hn=$(void 0,!0),Ai=$(void 0,!0),Ki=$(void 0,!0),dt=$(void 0,!0),EA=Sr("jsoneditor:SortModal"),HA=b(ot,"id",9),ve=b(ot,"json",9),Qt=b(ot,"rootPath",9),yi=b(ot,"onSort",9),ri=b(ot,"onClose",9),pn={value:1,label:"ascending"},Fn=[pn,{value:-1,label:"descending"}],Jn="".concat(HA(),":").concat(Ct(Qt())),ln=$((Mt=AQ()[Jn])===null||Mt===void 0?void 0:Mt.selectedProperty,!0),Pt=$(((on=AQ()[Jn])===null||on===void 0?void 0:on.selectedDirection)||pn,!0),$i=$(void 0,!0);function Rr(){try{var Xn,se,vi;y($i,void 0);var Yi=((Xn=g(ln))===null||Xn===void 0?void 0:Xn.value)||((se=g(dt))===null||se===void 0||(se=se[0])===null||se===void 0?void 0:se.value)||[],rn=(vi=g(Pt))===null||vi===void 0?void 0:vi.value,Hr=baA(ve(),Qt(),Yi,rn);yi()!==void 0&&Qt()!==void 0&&yi()({operations:Hr,rootPath:Qt(),itemPath:Yi,direction:rn}),ri()()}catch(Ri){y($i,String(Ri))}}function Ft(Xn){Xn.focus()}fA(()=>(k(ve()),k(Qt())),()=>{y(hn,Ke(ve(),Qt()))}),fA(()=>g(hn),()=>{y(Ai,Array.isArray(g(hn)))}),fA(()=>(g(Ai),g(hn)),()=>{y(Ki,g(Ai)?h_(g(hn)):void 0)}),fA(()=>(g(Ki),U1),()=>{y(dt,g(Ki)?g(Ki).map(U1):void 0)}),fA(()=>(AQ(),g(ln),g(Pt)),()=>{AQ(AQ()[Jn]={selectedProperty:g(ln),selectedDirection:g(Pt)}),EA("store state in memory",Jn,AQ()[Jn])}),Qn(),Zt(!0),X3(Qi,{get onClose(){return ri()},className:"jse-sort-modal",children:(Xn,se)=>{var vi=RTA(),Yi=vt(vi),rn=qA(()=>g(Ai)?"Sort array items":"Sort object keys");My(Yi,{get title(){return g(rn)},get onClose(){return ri()}});var Hr=W(IA(Yi,2)),Ri=IA(W(Hr)),fs=W(Ri),Bo=IA(W(fs)),Q=W(Bo),m=IA(fs),v=te=>{var re=kTA(),Pe=IA(W(re));JC(W(Pe),{showChevron:!0,get items(){return g(dt)},get value(){return g(ln)},set value(ze){y(ln,ze)},$$legacy:!0}),iA(te,re)};LA(m,te=>{g(Ai),g(dt),nA(()=>{var re;return g(Ai)&&g(dt)&&((re=g(dt))===null||re===void 0?void 0:re.length)>1})&&te(v)});var p=IA(m),N=IA(W(p));JC(W(N),{showChevron:!0,clearable:!1,get items(){return Fn},get value(){return g(Pt)},set value(te){y(Pt,te)},$$legacy:!0});var J=IA(Hr,2),V=W(J),Z=te=>{var re=STA(),Pe=W(re);De(()=>wt(Pe,g($i))),iA(te,re)};LA(V,te=>{g($i)&&te(Z)});var FA=W(IA(J,2));es(()=>ce("click",FA,Rr)),Us(FA,te=>Ft?.(te)),De(te=>{VC(Q,te),FA.disabled=(g(Ai),g(dt),g(ln),nA(()=>{var re;return!!(g(Ai)&&g(dt)&&((re=g(dt))===null||re===void 0?void 0:re.length)>1)&&!g(ln)}))},[()=>(k(Qt()),k(Oi),k(Ka),nA(()=>Qt()&&!Oi(Qt())?Ka(Qt()):"(document root)"))],qA),iA(Xn,vi)},$$slots:{default:!0}}),pt()})(ft,z1(()=>g(Be),{onClose:()=>{var Qi;(Qi=g(Be))===null||Qi===void 0||Qi.onClose(),y(Be,void 0)}}))};LA(Wt,ft=>{g(Be)&&ft(Xe)});var oi=IA(Wt,2),Di=ft=>{NJA(ft,z1(()=>g(Ee),{onClose:()=>{var Qi;(Qi=g(Ee))===null||Qi===void 0||Qi.onClose(),y(Ee,void 0)}}))};LA(oi,ft=>{g(Ee)&&ft(Di)});var Ut=IA(oi,2),cn=ft=>{(function(Qi,ot){mt(ot,!1);var Mt=$(void 0,!0),on=$(void 0,!0),hn=$(void 0,!0),Ai=$(void 0,!0),Ki=Sr("jsoneditor:JSONEditorModal"),dt=b(ot,"content",9),EA=b(ot,"path",9),HA=b(ot,"onPatch",9),ve=b(ot,"readOnly",9),Qt=b(ot,"indentation",9),yi=b(ot,"tabSize",9),ri=b(ot,"truncateTextSize",9),pn=b(ot,"mainMenuBar",9),Fn=b(ot,"navigationBar",9),Jn=b(ot,"statusBar",9),ln=b(ot,"askToFormat",9),Pt=b(ot,"escapeControlCharacters",9),$i=b(ot,"escapeUnicodeCharacters",9),Rr=b(ot,"flattenColumns",9),Ft=b(ot,"parser",9),Xn=b(ot,"validator",9),se=b(ot,"validationParser",9),vi=b(ot,"pathParser",9),Yi=b(ot,"onRenderValue",9),rn=b(ot,"onClassName",9),Hr=b(ot,"onRenderMenu",9),Ri=b(ot,"onRenderContextMenu",9),fs=b(ot,"onSortModal",9),Bo=b(ot,"onTransformModal",9),Q=b(ot,"onClose",9),m=$(void 0,!0),v=$(void 0,!0),p={mode:V(dt()),content:dt(),selection:void 0,relativePath:EA()},N=$([p],!0),J=$(void 0,!0);function V(oA){return z3(oA)&&wo(oA.json)?er.table:er.tree}function Z(){var oA,YA=(oA=hi(g(N)))===null||oA===void 0?void 0:oA.selection;q3(YA)&&g(m).scrollTo(et(YA))}function FA(){if(Ki("handleApply"),!ve())try{y(J,void 0);var oA=g(Mt).relativePath,YA=g(Mt).content,pe=[{op:"replace",path:Ct(oA),value:ArA(YA,Ft()).json}];if(g(N).length>1){var he=ArA(g(N)[g(N).length-2].content,Ft()).json,ge={json:Da(he,pe)},Bt=fe(fe({},g(N)[g(N).length-2]||p),{},{content:ge});y(N,[...g(N).slice(0,g(N).length-2),Bt]),io(),Z()}else HA()(pe),Q()()}catch($e){y(J,String($e))}}function te(){if(Ki("handleClose"),g(v))y(v,!1);else if(g(N).length>1){var oA;y(N,Fi(g(N))),io(),(oA=g(m))===null||oA===void 0||oA.focus(),Z(),y(J,void 0)}else Q()()}function re(oA){Ki("handleChange",oA),ye(YA=>fe(fe({},YA),{},{content:oA}))}function Pe(oA){Ki("handleChangeSelection",oA),ye(YA=>fe(fe({},YA),{},{selection:oA}))}function ze(oA){Ki("handleChangeMode",oA),ye(YA=>fe(fe({},YA),{},{mode:oA}))}function ye(oA){var YA=oA(hi(g(N)));y(N,[...Fi(g(N)),YA])}function Ge(oA){y(J,oA.toString()),console.error(oA)}function Vi(oA){var YA,{content:pe,path:he}=oA;Ki("handleJSONEditorModal",{content:pe,path:he});var ge={mode:V(pe),content:pe,selection:void 0,relativePath:he};y(N,[...g(N),ge]),io(),(YA=g(m))===null||YA===void 0||YA.focus()}function T(oA){oA.focus()}hs(()=>{var oA;(oA=g(m))===null||oA===void 0||oA.focus()}),fA(()=>g(N),()=>{y(Mt,hi(g(N))||p)}),fA(()=>g(N),()=>{y(on,g(N).flatMap(oA=>oA.relativePath))}),fA(()=>(g(on),Ka),()=>{y(hn,Oi(g(on))?"(document root)":Ka(g(on)))}),fA(()=>k(Ft()),()=>{y(Ai,aE(Ft().parse))}),Qn(),Zt(!0),X3(Qi,{onClose:te,className:"jse-jsoneditor-modal",get fullscreen(){return g(v)},children:(oA,YA)=>{var pe=bTA();f_(W(pe),{children:(he,ge)=>{var Bt=vTA(),$e=vt(Bt),bi=qA(()=>(g(N),nA(()=>g(N).length>1?" (".concat(g(N).length,")"):"")));My($e,{get title(){var _t;return"Edit nested content ".concat((_t=g(bi))!==null&&_t!==void 0?_t:"")},fullScreenButton:!0,onClose:te,get fullscreen(){return g(v)},set fullscreen(_t){y(v,_t)},$$legacy:!0});var un=IA($e,2),Ji=IA(W(un),2),Tn=IA(Ji,4);Co(HrA(W(Tn),{get externalMode(){return g(Mt),nA(()=>g(Mt).mode)},get content(){return g(Mt),nA(()=>g(Mt).content)},get selection(){return g(Mt),nA(()=>g(Mt).selection)},get readOnly(){return ve()},get indentation(){return Qt()},get tabSize(){return yi()},get truncateTextSize(){return ri()},get statusBar(){return Jn()},get askToFormat(){return ln()},get mainMenuBar(){return pn()},get navigationBar(){return Fn()},get escapeControlCharacters(){return Pt()},get escapeUnicodeCharacters(){return $i()},get flattenColumns(){return Rr()},get parser(){return Ft()},get parseMemoizeOne(){return g(Ai)},get validator(){return Xn()},get validationParser(){return se()},get pathParser(){return vi()},insideModal:!0,onError:Ge,onChange:re,onChangeMode:ze,onSelect:Pe,get onRenderValue(){return Yi()},get onClassName(){return rn()},get onFocus(){return Oc},get onBlur(){return Oc},get onRenderMenu(){return Hr()},get onRenderContextMenu(){return Ri()},get onSortModal(){return fs()},get onTransformModal(){return Bo()},onJSONEditorModal:Vi,$$legacy:!0}),_t=>y(m,_t),()=>g(m));var Ht=W(IA(Tn,2)),ko=_t=>{var st=pTA(),si=W(st);De(()=>wt(si,g(J))),iA(_t,st)};LA(Ht,_t=>{g(J)&&_t(ko)});var Sn=IA(Ht,2),no=_t=>{var st=wTA();ji(W(st),{get data(){return GW}}),ce("click",st,te),iA(_t,st)};LA(Sn,_t=>{g(N),nA(()=>g(N).length>1)&&_t(no)});var gn=IA(Sn,2),Nt=_t=>{var st=DTA();es(()=>ce("click",st,FA)),Us(st,si=>T?.(si)),iA(_t,st)},Zi=_t=>{var st=yTA();ce("click",st,te),iA(_t,st)};LA(gn,_t=>{ve()?_t(Zi,!1):_t(Nt)}),De(()=>VC(Ji,g(hn))),iA(he,Bt)},$$slots:{default:!0}}),iA(oA,pe)},$$slots:{default:!0}}),pt()})(ft,z1(()=>g(bA),{onClose:()=>{var Qi;(Qi=g(bA))===null||Qi===void 0||Qi.onClose(),y(bA,void 0)}}))};LA(Ut,ft=>{g(bA)&&ft(cn)}),De(ft=>MA=Vt(nt,1,"jse-main svelte-57bmz4",null,MA,ft),[()=>({"jse-focus":g(P)})],qA),ce("keydown",nt,Mo),iA(ne,me)},$$slots:{default:!0}}),zt(e,"get",DA),zt(e,"set",gt),zt(e,"update",Ve),zt(e,"patch",ZA),zt(e,"select",rt),zt(e,"expand",Ei),zt(e,"collapse",tn),zt(e,"transform",qi),zt(e,"validate",xe),zt(e,"acceptAutoRepair",nn),zt(e,"scrollTo",mi),zt(e,"findElement",Lt),zt(e,"focus",ii),zt(e,"refresh",_i),zt(e,"updateProps",M),zt(e,"destroy",We),pt({get:DA,set:gt,update:Ve,patch:ZA,select:rt,expand:Ei,collapse:tn,transform:qi,validate:xe,acceptAutoRepair:nn,scrollTo:mi,findElement:Lt,focus:ii,refresh:_i,updateProps:M,destroy:We})}function YaA(t){var{target:e,props:A}=t,i=CGA(LTA,{target:e,props:A});return i.destroy=Yt(function*(){return function(n,o){var r=B_.get(n);return r?(B_.delete(n),r(o)):Promise.resolve()}(i)}),io(),i}var ed=class t{constructor(e){this.el=e}jsonString;editor=null;ngAfterViewInit(){let e={text:this.jsonString};this.editor=YaA({target:document.getElementById("json-editor"),props:{content:e,mode:er.text,mainMenuBar:!1}})}getJsonString(){return this.editor?.get().text}static \u0275fac=function(A){return new(A||t)(PA(ee))};static \u0275cmp=zA({type:t,selectors:[["app-json-editor"]],inputs:{jsonString:"jsonString"},standalone:!1,decls:1,vars:0,consts:[["id","json-editor",1,"json-editor-container","jse-theme-dark"]],template:function(A,i){A&1&&JA(0,"div",0)},styles:[".jse-theme-dark[_ngcontent-%COMP%]{--jse-theme: dark;--jse-theme-color: #2f6dd0;--jse-theme-color-highlight: #467cd2;--jse-background-color: #1e1e1e;--jse-text-color: #d4d4d4;--jse-text-color-inverse: #4d4d4d;--jse-main-border: 1px solid #4f4f4f;--jse-menu-color: #fff;--jse-modal-background: #2f2f2f;--jse-modal-overlay-background: rgba(0, 0, 0, .5);--jse-modal-code-background: #2f2f2f;--jse-tooltip-color: var(--jse-text-color);--jse-tooltip-background: #4b4b4b;--jse-tooltip-border: 1px solid #737373;--jse-tooltip-action-button-color: inherit;--jse-tooltip-action-button-background: #737373;--jse-panel-background: #333333;--jse-panel-background-border: 1px solid #464646;--jse-panel-color: var(--jse-text-color);--jse-panel-color-readonly: #737373;--jse-panel-border: 1px solid #3c3c3c;--jse-panel-button-color-highlight: #e5e5e5;--jse-panel-button-background-highlight: #464646;--jse-navigation-bar-background: #656565;--jse-navigation-bar-background-highlight: #7e7e7e;--jse-navigation-bar-dropdown-color: var(--jse-text-color);--jse-context-menu-background: #4b4b4b;--jse-context-menu-background-highlight: #595959;--jse-context-menu-separator-color: #595959;--jse-context-menu-color: var(--jse-text-color);--jse-context-menu-pointer-background: #737373;--jse-context-menu-pointer-background-highlight: #818181;--jse-context-menu-pointer-color: var(--jse-context-menu-color);--jse-key-color: #9cdcfe;--jse-value-color: var(--jse-text-color);--jse-value-color-number: #b5cea8;--jse-value-color-boolean: #569cd6;--jse-value-color-null: #569cd6;--jse-value-color-string: #ce9178;--jse-value-color-url: #ce9178;--jse-delimiter-color: #949494;--jse-edit-outline: 2px solid var(--jse-text-color);--jse-selection-background-color: #464646;--jse-selection-background-inactive-color: #333333;--jse-hover-background-color: #343434;--jse-active-line-background-color: rgba(255, 255, 255, .06);--jse-search-match-background-color: #343434;--jse-collapsed-items-background-color: #333333;--jse-collapsed-items-selected-background-color: #565656;--jse-collapsed-items-link-color: #b2b2b2;--jse-collapsed-items-link-color-highlight: #ec8477;--jse-search-match-color: #724c27;--jse-search-match-outline: 1px solid #966535;--jse-search-match-active-color: #9f6c39;--jse-search-match-active-outline: 1px solid #bb7f43;--jse-tag-background: #444444;--jse-tag-color: #bdbdbd;--jse-table-header-background: #333333;--jse-table-header-background-highlight: #424242;--jse-table-row-odd-background: rgba(255, 255, 255, .1);--jse-input-background: #3d3d3d;--jse-input-border: var(--jse-main-border);--jse-button-background: #808080;--jse-button-background-highlight: #7a7a7a;--jse-button-color: #e0e0e0;--jse-button-secondary-background: #494949;--jse-button-secondary-background-highlight: #5d5d5d;--jse-button-secondary-background-disabled: #9d9d9d;--jse-button-secondary-color: var(--jse-text-color);--jse-a-color: #55abff;--jse-a-color-highlight: #4387c9;--jse-svelte-select-background: #3d3d3d;--jse-svelte-select-border: 1px solid #4f4f4f;--list-background: #3d3d3d;--item-hover-bg: #505050;--multi-item-bg: #5b5b5b;--input-color: #d4d4d4;--multi-clear-bg: #8a8a8a;--multi-item-clear-icon-color: #d4d4d4;--multi-item-outline: 1px solid #696969;--list-shadow: 0 2px 8px 0 rgba(0, 0, 0, .4);--jse-color-picker-background: #656565;--jse-color-picker-border-box-shadow: #8c8c8c 0 0 0 1px}.json-editor-container[_ngcontent-%COMP%]{height:300px;max-height:300px}"]})};var vQ=class t{constructor(e,A){this.dialogRef=e;this.data=A;this.jsonString=JSON.stringify(A.jsonContent,null,2),this.functionName=A.functionName||""}jsonEditorComponent;jsonString="";functionName="";ngOnInit(){}onSave(){try{this.jsonString=this.jsonEditorComponent.getJsonString();let e=JSON.parse(this.jsonString);this.dialogRef.close(e)}catch(e){alert("Invalid JSON: "+e)}}onCancel(){this.dialogRef.close(null)}static \u0275fac=function(A){return new(A||t)(PA(Br),PA(as))};static \u0275cmp=zA({type:t,selectors:[["app-edit-json-dialog"]],viewQuery:function(A,i){if(A&1&&Te(ed,5),A&2){let n;XA(n=$A())&&(i.jsonEditorComponent=n.first)}},standalone:!1,decls:11,vars:3,consts:[[1,"dialog-container"],["mat-dialog-title",""],[3,"jsonString"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2),F(),S(3,"mat-dialog-content"),AA(4),JA(5,"app-json-editor",2),F(),S(6,"mat-dialog-actions",3)(7,"button",4),AA(8,"Cancel"),F(),S(9,"button",5),hA("click",function(){return i.onSave()}),AA(10,"Save"),F()()()),A&2&&(G(2),Gt(i.data.dialogHeader),G(2),Et(" ",i.functionName," "),G(),yA("jsonString",i.jsonString))},dependencies:[Dr,bs,ma,pa,hg,ed],styles:[".dialog-container[_ngcontent-%COMP%]{border-radius:12px;padding:18px;width:500px;box-shadow:0 8px 16px #0006}.editor[_ngcontent-%COMP%]{padding-top:12px}"]})};var _TA=["input"],GTA=["label"],UTA=["*"],KTA=new dA("mat-checkbox-default-options",{providedIn:"root",factory:TaA});function TaA(){return{color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1}}var Ks=function(t){return t[t.Init=0]="Init",t[t.Checked=1]="Checked",t[t.Unchecked=2]="Unchecked",t[t.Indeterminate=3]="Indeterminate",t}(Ks||{}),YTA={provide:yc,useExisting:Ir(()=>bQ),multi:!0},QG=class{source;checked},JaA=TaA(),bQ=(()=>{class t{_elementRef=f(ee);_changeDetectorRef=f(It);_ngZone=f(Qe);_animationMode=f(Si,{optional:!0});_options=f(KTA,{optional:!0});focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(A){let i=new QG;return i.source=this,i.checked=A,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return`${this.id||this._uniqueId}-input`}required;labelPosition="after";name=null;change=new WA;indeterminateChange=new WA;value;disableRipple;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=Ks.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){f(Rn).load(lr);let A=f(new wr("tabindex"),{optional:!0});this._options=this._options||JaA,this.color=this._options.color||JaA.color,this.tabIndex=A==null?0:parseInt(A)||0,this.id=this._uniqueId=f(sn).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??!1}ngOnChanges(A){A.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(A){A!=this.checked&&(this._checked=A,this._changeDetectorRef.markForCheck())}_checked=!1;get disabled(){return this._disabled}set disabled(A){A!==this.disabled&&(this._disabled=A,this._changeDetectorRef.markForCheck())}_disabled=!1;get indeterminate(){return this._indeterminate}set indeterminate(A){let i=A!=this._indeterminate;this._indeterminate=A,i&&(this._indeterminate?this._transitionCheckState(Ks.Indeterminate):this._transitionCheckState(this.checked?Ks.Checked:Ks.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_indeterminate=!1;_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(A){this.checked=!!A}registerOnChange(A){this._controlValueAccessorChangeFn=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A}validate(A){return this.required&&A.value!==!0?{required:!0}:null}registerOnValidatorChange(A){this._validatorChangeFn=A}_transitionCheckState(A){let i=this._currentCheckState,n=this._getAnimationTargetElement();if(!(i===A||!n)&&(this._currentAnimationClass&&n.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,A),this._currentCheckState=A,this._currentAnimationClass.length>0)){n.classList.add(this._currentAnimationClass);let o=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{n.classList.remove(o)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){let A=this._options?.clickAction;!this.disabled&&A!=="noop"?(this.indeterminate&&A!=="check"&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Ks.Checked:Ks.Unchecked),this._emitChangeEvent()):(this.disabled&&this.disabledInteractive||!this.disabled&&A==="noop")&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate)}_onInteractionEvent(A){A.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(A,i){if(this._animationMode==="NoopAnimations")return"";switch(A){case Ks.Init:if(i===Ks.Checked)return this._animationClasses.uncheckedToChecked;if(i==Ks.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Ks.Unchecked:return i===Ks.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Ks.Checked:return i===Ks.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Ks.Indeterminate:return i===Ks.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(A){let i=this._inputElement;i&&(i.nativeElement.indeterminate=A)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(A){A.target&&this._labelElement.nativeElement.contains(A.target)&&A.stopPropagation()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-checkbox"]],viewQuery:function(i,n){if(i&1&&(Te(_TA,5),Te(GTA,5)),i&2){let o;XA(o=$A())&&(n._inputElement=o.first),XA(o=$A())&&(n._labelElement=o.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,n){i&2&&(Hs("id",n.id),Ne("tabindex",null)("aria-label",null)("aria-labelledby",null),fo(n.color?"mat-"+n.color:"mat-accent"),ue("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mdc-checkbox--disabled",n.disabled)("mat-mdc-checkbox-disabled",n.disabled)("mat-mdc-checkbox-checked",n.checked)("mat-mdc-checkbox-disabled-interactive",n.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",ie],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",ie],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",ie],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?void 0:zi(A)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",ie],checked:[2,"checked","checked",ie],disabled:[2,"disabled","disabled",ie],indeterminate:[2,"indeterminate","indeterminate",ie]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[ht([YTA,{provide:w0,useExisting:t,multi:!0}]),ti],ngContentSelectors:UTA,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,n){if(i&1){let o=be();jt(),S(0,"div",3),hA("click",function(s){return RA(o),xA(n._preventBubblingFromLabel(s))}),S(1,"div",4,0)(3,"div",5),hA("click",function(){return RA(o),xA(n._onTouchTargetClick())}),F(),S(4,"input",6,1),hA("blur",function(){return RA(o),xA(n._onBlur())})("click",function(){return RA(o),xA(n._onInputClick())})("change",function(s){return RA(o),xA(n._onInteractionEvent(s))}),F(),JA(6,"div",7),S(7,"div",8),ar(),S(8,"svg",9),JA(9,"path",10),F(),SI(),JA(10,"div",11),F(),JA(11,"div",12),F(),S(12,"label",13,2),Fe(14),F()()}if(i&2){let o=cr(2);yA("labelPosition",n.labelPosition),G(4),ue("mdc-checkbox--selected",n.checked),yA("checked",n.checked)("indeterminate",n.indeterminate)("disabled",n.disabled&&!n.disabledInteractive)("id",n.inputId)("required",n.required)("tabIndex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex),Ne("aria-label",n.ariaLabel||null)("aria-labelledby",n.ariaLabelledby)("aria-describedby",n.ariaDescribedby)("aria-checked",n.indeterminate?"mixed":null)("aria-controls",n.ariaControls)("aria-disabled",n.disabled&&n.disabledInteractive?!0:null)("aria-expanded",n.ariaExpanded)("aria-owns",n.ariaOwns)("name",n.name)("value",n.value),G(7),yA("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)("matRippleCentered",!0),G(),yA("for",n.inputId)}},dependencies:[rs,MB],styles:['.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom;padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover>.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:hover>.mat-mdc-checkbox-ripple>.mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control+.mdc-checkbox__ripple{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox--disabled{cursor:default;pointer-events:none}@media(forced-colors: active){.mdc-checkbox--disabled{opacity:.5}}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mdc-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-touch-target,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__native-control,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__ripple,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-ripple::before,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__mixedmark{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox .mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox .mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display, block)}.mat-mdc-checkbox .mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();var HaA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[bQ,it,it]})}return t})();var HTA=[[["caption"]],[["colgroup"],["col"]],"*"],zTA=["caption","colgroup, col","*"];function OTA(t,e){t&1&&Fe(0,2)}function PTA(t,e){t&1&&(S(0,"thead",0),_r(1,1),F(),S(2,"tbody",0),_r(3,2)(4,3),F(),S(5,"tfoot",0),_r(6,4),F())}function jTA(t,e){t&1&&_r(0,1)(1,2)(2,3)(3,4)}var Yl=new dA("CDK_TABLE");var Wy=(()=>{class t{template=f(wn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","cdkCellDef",""]]})}return t})(),Xy=(()=>{class t{template=f(wn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","cdkHeaderCellDef",""]]})}return t})(),PaA=(()=>{class t{template=f(wn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","cdkFooterCellDef",""]]})}return t})(),MQ=(()=>{class t{_table=f(Yl,{optional:!0});_hasStickyChanged=!1;get name(){return this._name}set name(A){this._setNameInput(A)}_name;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;get stickyEnd(){return this._stickyEnd}set stickyEnd(A){A!==this._stickyEnd&&(this._stickyEnd=A,this._hasStickyChanged=!0)}_stickyEnd=!1;cell;headerCell;footerCell;cssClassFriendlyName;_columnCssClassName;constructor(){}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}_updateColumnCssClassName(){this._columnCssClassName=[`cdk-column-${this.cssClassFriendlyName}`]}_setNameInput(A){A&&(this._name=A,this.cssClassFriendlyName=A.replace(/[^a-z0-9_-]/gi,"-"),this._updateColumnCssClassName())}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","cdkColumnDef",""]],contentQueries:function(i,n,o){if(i&1&&(ci(o,Wy,5),ci(o,Xy,5),ci(o,PaA,5)),i&2){let r;XA(r=$A())&&(n.cell=r.first),XA(r=$A())&&(n.headerCell=r.first),XA(r=$A())&&(n.footerCell=r.first)}},inputs:{name:[0,"cdkColumnDef","name"],sticky:[2,"sticky","sticky",ie],stickyEnd:[2,"stickyEnd","stickyEnd",ie]},features:[ht([{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}])]})}return t})(),jy=class{constructor(e,A){A.nativeElement.classList.add(...e._columnCssClassName)}},jaA=(()=>{class t extends jy{constructor(){super(f(MQ),f(ee))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["cdk-header-cell"],["th","cdk-header-cell",""]],hostAttrs:["role","columnheader",1,"cdk-header-cell"],features:[lt]})}return t})();var qaA=(()=>{class t extends jy{constructor(){let A=f(MQ),i=f(ee);super(A,i);let n=A._table?._getCellRole();n&&i.nativeElement.setAttribute("role",n)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["cdk-cell"],["td","cdk-cell",""]],hostAttrs:[1,"cdk-cell"],features:[lt]})}return t})(),qy=class{tasks=[];endTasks=[]},Vy=new dA("_COALESCED_STYLE_SCHEDULER"),uG=(()=>{class t{_currentSchedule=null;_ngZone=f(Qe);constructor(){}schedule(A){this._createScheduleIfNeeded(),this._currentSchedule.tasks.push(A)}scheduleEnd(A){this._createScheduleIfNeeded(),this._currentSchedule.endTasks.push(A)}_createScheduleIfNeeded(){this._currentSchedule||(this._currentSchedule=new qy,this._ngZone.runOutsideAngular(()=>queueMicrotask(()=>{for(;this._currentSchedule.tasks.length||this._currentSchedule.endTasks.length;){let A=this._currentSchedule;this._currentSchedule=new qy;for(let i of A.tasks)i();for(let i of A.endTasks)i()}this._currentSchedule=null})))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac})}return t})();var fG=(()=>{class t{template=f(wn);_differs=f(rg);columns;_columnsDiffer;constructor(){}ngOnChanges(A){if(!this._columnsDiffer){let i=A.columns&&A.columns.currentValue||[];this._columnsDiffer=this._differs.find(i).create(),this._columnsDiffer.diff(i)}}getColumnsDiff(){return this._columnsDiffer.diff(this.columns)}extractCellTemplate(A){return this instanceof If?A.headerCell.template:this instanceof mG?A.footerCell.template:A.cell.template}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,features:[ti]})}return t})(),If=(()=>{class t extends fG{_table=f(Yl,{optional:!0});_hasStickyChanged=!1;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;constructor(){super(f(wn),f(rg))}ngOnChanges(A){super.ngOnChanges(A)}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","cdkHeaderRowDef",""]],inputs:{columns:[0,"cdkHeaderRowDef","columns"],sticky:[2,"cdkHeaderRowDefSticky","sticky",ie]},features:[lt,ti]})}return t})(),mG=(()=>{class t extends fG{_table=f(Yl,{optional:!0});_hasStickyChanged=!1;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;constructor(){super(f(wn),f(rg))}ngOnChanges(A){super.ngOnChanges(A)}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","cdkFooterRowDef",""]],inputs:{columns:[0,"cdkFooterRowDef","columns"],sticky:[2,"cdkFooterRowDefSticky","sticky",ie]},features:[lt,ti]})}return t})(),$y=(()=>{class t extends fG{_table=f(Yl,{optional:!0});when;constructor(){super(f(wn),f(rg))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","cdkRowDef",""]],inputs:{columns:[0,"cdkRowDefColumns","columns"],when:[0,"cdkRowDefWhen","when"]},features:[lt]})}return t})(),td=(()=>{class t{_viewContainer=f(Nn);cells;context;static mostRecentCellOutlet=null;constructor(){t.mostRecentCellOutlet=this}ngOnDestroy(){t.mostRecentCellOutlet===this&&(t.mostRecentCellOutlet=null)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","cdkCellOutlet",""]]})}return t})(),pG=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["cdk-header-row"],["tr","cdk-header-row",""]],hostAttrs:["role","row",1,"cdk-header-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&_r(0,0)},dependencies:[td],encapsulation:2})}return t})();var wG=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["cdk-row"],["tr","cdk-row",""]],hostAttrs:["role","row",1,"cdk-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&_r(0,0)},dependencies:[td],encapsulation:2})}return t})(),VaA=(()=>{class t{templateRef=f(wn);_contentClassName="cdk-no-data-row";constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["ng-template","cdkNoDataRow",""]]})}return t})(),zaA=["top","bottom","left","right"],hG=class{_isNativeHtmlTable;_stickCellCss;direction;_coalescedStyleScheduler;_isBrowser;_needsPositionStickyOnElement;_positionListener;_tableInjector;_elemSizeCache=new WeakMap;_resizeObserver=globalThis?.ResizeObserver?new globalThis.ResizeObserver(e=>this._updateCachedSizes(e)):null;_updatedStickyColumnsParamsToReplay=[];_stickyColumnsReplayTimeout=null;_cachedCellWidths=[];_borderCellCss;_destroyed=!1;constructor(e,A,i,n,o=!0,r=!0,s,a){this._isNativeHtmlTable=e,this._stickCellCss=A,this.direction=i,this._coalescedStyleScheduler=n,this._isBrowser=o,this._needsPositionStickyOnElement=r,this._positionListener=s,this._tableInjector=a,this._borderCellCss={top:`${A}-border-elem-top`,bottom:`${A}-border-elem-bottom`,left:`${A}-border-elem-left`,right:`${A}-border-elem-right`}}clearStickyPositioning(e,A){(A.includes("left")||A.includes("right"))&&this._removeFromStickyColumnReplayQueue(e);let i=[];for(let n of e)n.nodeType===n.ELEMENT_NODE&&i.push(n,...Array.from(n.children));this._afterNextRender({write:()=>{for(let n of i)this._removeStickyStyle(n,A)}})}updateStickyColumns(e,A,i,n=!0,o=!0){if(!e.length||!this._isBrowser||!(A.some(h=>h)||i.some(h=>h))){this._positionListener?.stickyColumnsUpdated({sizes:[]}),this._positionListener?.stickyEndColumnsUpdated({sizes:[]});return}let r=e[0],s=r.children.length,a=this.direction==="rtl",c=a?"right":"left",l=a?"left":"right",I=A.lastIndexOf(!0),C=i.indexOf(!0),d,B,E;o&&this._updateStickyColumnReplayQueue({rows:[...e],stickyStartStates:[...A],stickyEndStates:[...i]}),this._afterNextRender({earlyRead:()=>{d=this._getCellWidths(r,n),B=this._getStickyStartColumnPositions(d,A),E=this._getStickyEndColumnPositions(d,i)},write:()=>{for(let h of e)for(let u=0;u!!h)&&(this._positionListener.stickyColumnsUpdated({sizes:I===-1?[]:d.slice(0,I+1).map((h,u)=>A[u]?h:null)}),this._positionListener.stickyEndColumnsUpdated({sizes:C===-1?[]:d.slice(C).map((h,u)=>i[u+C]?h:null).reverse()}))}})}stickRows(e,A,i){if(!this._isBrowser)return;let n=i==="bottom"?e.slice().reverse():e,o=i==="bottom"?A.slice().reverse():A,r=[],s=[],a=[];this._afterNextRender({earlyRead:()=>{for(let c=0,l=0;c{let c=o.lastIndexOf(!0);for(let l=0;l{let i=e.querySelector("tfoot");i&&(A.some(n=>!n)?this._removeStickyStyle(i,["bottom"]):this._addStickyStyle(i,"bottom",0,!1))}})}destroy(){this._stickyColumnsReplayTimeout&&clearTimeout(this._stickyColumnsReplayTimeout),this._resizeObserver?.disconnect(),this._destroyed=!0}_removeStickyStyle(e,A){for(let n of A)e.style[n]="",e.classList.remove(this._borderCellCss[n]);zaA.some(n=>A.indexOf(n)===-1&&e.style[n])?e.style.zIndex=this._getCalculatedZIndex(e):(e.style.zIndex="",this._needsPositionStickyOnElement&&(e.style.position=""),e.classList.remove(this._stickCellCss))}_addStickyStyle(e,A,i,n){e.classList.add(this._stickCellCss),n&&e.classList.add(this._borderCellCss[A]),e.style[A]=`${i}px`,e.style.zIndex=this._getCalculatedZIndex(e),this._needsPositionStickyOnElement&&(e.style.cssText+="position: -webkit-sticky; position: sticky; ")}_getCalculatedZIndex(e){let A={top:100,bottom:10,left:1,right:1},i=0;for(let n of zaA)e.style[n]&&(i+=A[n]);return i?`${i}`:""}_getCellWidths(e,A=!0){if(!A&&this._cachedCellWidths.length)return this._cachedCellWidths;let i=[],n=e.children;for(let o=0;o0;o--)A[o]&&(i[o]=n,n+=e[o]);return i}_retrieveElementSize(e){let A=this._elemSizeCache.get(e);if(A)return A;let i=e.getBoundingClientRect(),n={width:i.width,height:i.height};return this._resizeObserver&&(this._elemSizeCache.set(e,n),this._resizeObserver.observe(e,{box:"border-box"})),n}_updateStickyColumnReplayQueue(e){this._removeFromStickyColumnReplayQueue(e.rows),this._stickyColumnsReplayTimeout||this._updatedStickyColumnsParamsToReplay.push(e)}_removeFromStickyColumnReplayQueue(e){let A=new Set(e);for(let i of this._updatedStickyColumnsParamsToReplay)i.rows=i.rows.filter(n=>!A.has(n));this._updatedStickyColumnsParamsToReplay=this._updatedStickyColumnsParamsToReplay.filter(i=>!!i.rows.length)}_updateCachedSizes(e){let A=!1;for(let i of e){let n=i.borderBoxSize?.length?{width:i.borderBoxSize[0].inlineSize,height:i.borderBoxSize[0].blockSize}:{width:i.contentRect.width,height:i.contentRect.height};n.width!==this._elemSizeCache.get(i.target)?.width&&qTA(i.target)&&(A=!0),this._elemSizeCache.set(i.target,n)}A&&this._updatedStickyColumnsParamsToReplay.length&&(this._stickyColumnsReplayTimeout&&clearTimeout(this._stickyColumnsReplayTimeout),this._stickyColumnsReplayTimeout=setTimeout(()=>{if(!this._destroyed){for(let i of this._updatedStickyColumnsParamsToReplay)this.updateStickyColumns(i.rows,i.stickyStartStates,i.stickyEndStates,!0,!1);this._updatedStickyColumnsParamsToReplay=[],this._stickyColumnsReplayTimeout=null}},0))}_afterNextRender(e){this._tableInjector?To(e,{injector:this._tableInjector}):this._coalescedStyleScheduler.schedule(()=>{e.earlyRead?.(),e.write()})}};function qTA(t){return["cdk-cell","cdk-header-cell","cdk-footer-cell"].some(e=>t.classList.contains(e))}var Zy=new dA("CDK_SPL");var DG=(()=>{class t{viewContainer=f(Nn);elementRef=f(ee);constructor(){let A=f(Yl);A._rowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","rowOutlet",""]]})}return t})(),yG=(()=>{class t{viewContainer=f(Nn);elementRef=f(ee);constructor(){let A=f(Yl);A._headerRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","headerRowOutlet",""]]})}return t})(),vG=(()=>{class t{viewContainer=f(Nn);elementRef=f(ee);constructor(){let A=f(Yl);A._footerRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","footerRowOutlet",""]]})}return t})(),bG=(()=>{class t{viewContainer=f(Nn);elementRef=f(ee);constructor(){let A=f(Yl);A._noDataRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","noDataRowOutlet",""]]})}return t})();var MG=(()=>{class t{_differs=f(rg);_changeDetectorRef=f(It);_elementRef=f(ee);_dir=f(mo,{optional:!0});_platform=f(Ii);_viewRepeater=f(Ru);_coalescedStyleScheduler=f(Vy);_viewportRuler=f(Mc);_stickyPositioningListener=f(Zy,{optional:!0,skipSelf:!0});_document=f(at);_data;_onDestroy=new OA;_renderRows;_renderChangeSubscription;_columnDefsByName=new Map;_rowDefs;_headerRowDefs;_footerRowDefs;_dataDiffer;_defaultRowDef;_customColumnDefs=new Set;_customRowDefs=new Set;_customHeaderRowDefs=new Set;_customFooterRowDefs=new Set;_customNoDataRow;_headerRowDefChanged=!0;_footerRowDefChanged=!0;_stickyColumnStylesNeedReset=!0;_forceRecalculateCellWidths=!0;_cachedRenderRowsMap=new Map;_isNativeHtmlTable;_stickyStyler;stickyCssClass="cdk-table-sticky";needsPositionStickyOnElement=!0;_isServer;_isShowingNoDataRow=!1;_hasAllOutlets=!1;_hasInitialized=!1;_getCellRole(){if(this._cellRoleInternal===void 0){let A=this._elementRef.nativeElement.getAttribute("role");return A==="grid"||A==="treegrid"?"gridcell":"cell"}return this._cellRoleInternal}_cellRoleInternal=void 0;get trackBy(){return this._trackByFn}set trackBy(A){this._trackByFn=A}_trackByFn;get dataSource(){return this._dataSource}set dataSource(A){this._dataSource!==A&&this._switchDataSource(A)}_dataSource;get multiTemplateDataRows(){return this._multiTemplateDataRows}set multiTemplateDataRows(A){this._multiTemplateDataRows=A,this._rowOutlet&&this._rowOutlet.viewContainer.length&&(this._forceRenderDataRows(),this.updateStickyColumnStyles())}_multiTemplateDataRows=!1;get fixedLayout(){return this._fixedLayout}set fixedLayout(A){this._fixedLayout=A,this._forceRecalculateCellWidths=!0,this._stickyColumnStylesNeedReset=!0}_fixedLayout=!1;contentChanged=new WA;viewChange=new Mi({start:0,end:Number.MAX_VALUE});_rowOutlet;_headerRowOutlet;_footerRowOutlet;_noDataRowOutlet;_contentColumnDefs;_contentRowDefs;_contentHeaderRowDefs;_contentFooterRowDefs;_noDataRow;_injector=f(Rt);constructor(){f(new wr("role"),{optional:!0})||this._elementRef.nativeElement.setAttribute("role","table"),this._isServer=!this._platform.isBrowser,this._isNativeHtmlTable=this._elementRef.nativeElement.nodeName==="TABLE"}ngOnInit(){this._setupStickyStyler(),this._dataDiffer=this._differs.find([]).create((A,i)=>this.trackBy?this.trackBy(i.dataIndex,i.data):i),this._viewportRuler.change().pipe(St(this._onDestroy)).subscribe(()=>{this._forceRecalculateCellWidths=!0})}ngAfterContentInit(){this._hasInitialized=!0}ngAfterContentChecked(){this._canRender()&&this._render()}ngOnDestroy(){this._stickyStyler?.destroy(),[this._rowOutlet?.viewContainer,this._headerRowOutlet?.viewContainer,this._footerRowOutlet?.viewContainer,this._cachedRenderRowsMap,this._customColumnDefs,this._customRowDefs,this._customHeaderRowDefs,this._customFooterRowDefs,this._columnDefsByName].forEach(A=>{A?.clear()}),this._headerRowDefs=[],this._footerRowDefs=[],this._defaultRowDef=null,this._onDestroy.next(),this._onDestroy.complete(),I8(this.dataSource)&&this.dataSource.disconnect(this)}renderRows(){this._renderRows=this._getAllRenderRows();let A=this._dataDiffer.diff(this._renderRows);if(!A){this._updateNoDataRow(),this.contentChanged.next();return}let i=this._rowOutlet.viewContainer;this._viewRepeater.applyChanges(A,i,(n,o,r)=>this._getEmbeddedViewArgs(n.item,r),n=>n.item.data,n=>{n.operation===SB.INSERTED&&n.context&&this._renderCellTemplateForItem(n.record.item.rowDef,n.context)}),this._updateRowIndexContext(),A.forEachIdentityChange(n=>{let o=i.get(n.currentIndex);o.context.$implicit=n.item.data}),this._updateNoDataRow(),this.contentChanged.next(),this.updateStickyColumnStyles()}addColumnDef(A){this._customColumnDefs.add(A)}removeColumnDef(A){this._customColumnDefs.delete(A)}addRowDef(A){this._customRowDefs.add(A)}removeRowDef(A){this._customRowDefs.delete(A)}addHeaderRowDef(A){this._customHeaderRowDefs.add(A),this._headerRowDefChanged=!0}removeHeaderRowDef(A){this._customHeaderRowDefs.delete(A),this._headerRowDefChanged=!0}addFooterRowDef(A){this._customFooterRowDefs.add(A),this._footerRowDefChanged=!0}removeFooterRowDef(A){this._customFooterRowDefs.delete(A),this._footerRowDefChanged=!0}setNoDataRow(A){this._customNoDataRow=A}updateStickyHeaderRowStyles(){let A=this._getRenderedRows(this._headerRowOutlet);if(this._isNativeHtmlTable){let n=OaA(this._headerRowOutlet,"thead");n&&(n.style.display=A.length?"":"none")}let i=this._headerRowDefs.map(n=>n.sticky);this._stickyStyler.clearStickyPositioning(A,["top"]),this._stickyStyler.stickRows(A,i,"top"),this._headerRowDefs.forEach(n=>n.resetStickyChanged())}updateStickyFooterRowStyles(){let A=this._getRenderedRows(this._footerRowOutlet);if(this._isNativeHtmlTable){let n=OaA(this._footerRowOutlet,"tfoot");n&&(n.style.display=A.length?"":"none")}let i=this._footerRowDefs.map(n=>n.sticky);this._stickyStyler.clearStickyPositioning(A,["bottom"]),this._stickyStyler.stickRows(A,i,"bottom"),this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement,i),this._footerRowDefs.forEach(n=>n.resetStickyChanged())}updateStickyColumnStyles(){let A=this._getRenderedRows(this._headerRowOutlet),i=this._getRenderedRows(this._rowOutlet),n=this._getRenderedRows(this._footerRowOutlet);(this._isNativeHtmlTable&&!this._fixedLayout||this._stickyColumnStylesNeedReset)&&(this._stickyStyler.clearStickyPositioning([...A,...i,...n],["left","right"]),this._stickyColumnStylesNeedReset=!1),A.forEach((o,r)=>{this._addStickyColumnStyles([o],this._headerRowDefs[r])}),this._rowDefs.forEach(o=>{let r=[];for(let s=0;s{this._addStickyColumnStyles([o],this._footerRowDefs[r])}),Array.from(this._columnDefsByName.values()).forEach(o=>o.resetStickyChanged())}_outletAssigned(){!this._hasAllOutlets&&this._rowOutlet&&this._headerRowOutlet&&this._footerRowOutlet&&this._noDataRowOutlet&&(this._hasAllOutlets=!0,this._canRender()&&this._render())}_canRender(){return this._hasAllOutlets&&this._hasInitialized}_render(){this._cacheRowDefs(),this._cacheColumnDefs(),!this._headerRowDefs.length&&!this._footerRowDefs.length&&this._rowDefs.length;let i=this._renderUpdatedColumns()||this._headerRowDefChanged||this._footerRowDefChanged;this._stickyColumnStylesNeedReset=this._stickyColumnStylesNeedReset||i,this._forceRecalculateCellWidths=i,this._headerRowDefChanged&&(this._forceRenderHeaderRows(),this._headerRowDefChanged=!1),this._footerRowDefChanged&&(this._forceRenderFooterRows(),this._footerRowDefChanged=!1),this.dataSource&&this._rowDefs.length>0&&!this._renderChangeSubscription?this._observeRenderChanges():this._stickyColumnStylesNeedReset&&this.updateStickyColumnStyles(),this._checkStickyStates()}_getAllRenderRows(){let A=[],i=this._cachedRenderRowsMap;this._cachedRenderRowsMap=new Map;for(let n=0;n{let s=n&&n.has(r)?n.get(r):[];if(s.length){let a=s.shift();return a.dataIndex=i,a}else return{data:A,rowDef:r,dataIndex:i}})}_cacheColumnDefs(){this._columnDefsByName.clear(),Py(this._getOwnDefs(this._contentColumnDefs),this._customColumnDefs).forEach(i=>{this._columnDefsByName.has(i.name),this._columnDefsByName.set(i.name,i)})}_cacheRowDefs(){this._headerRowDefs=Py(this._getOwnDefs(this._contentHeaderRowDefs),this._customHeaderRowDefs),this._footerRowDefs=Py(this._getOwnDefs(this._contentFooterRowDefs),this._customFooterRowDefs),this._rowDefs=Py(this._getOwnDefs(this._contentRowDefs),this._customRowDefs);let A=this._rowDefs.filter(i=>!i.when);!this.multiTemplateDataRows&&A.length>1,this._defaultRowDef=A[0]}_renderUpdatedColumns(){let A=(r,s)=>{let a=!!s.getColumnsDiff();return r||a},i=this._rowDefs.reduce(A,!1);i&&this._forceRenderDataRows();let n=this._headerRowDefs.reduce(A,!1);n&&this._forceRenderHeaderRows();let o=this._footerRowDefs.reduce(A,!1);return o&&this._forceRenderFooterRows(),i||n||o}_switchDataSource(A){this._data=[],I8(this.dataSource)&&this.dataSource.disconnect(this),this._renderChangeSubscription&&(this._renderChangeSubscription.unsubscribe(),this._renderChangeSubscription=null),A||(this._dataDiffer&&this._dataDiffer.diff([]),this._rowOutlet&&this._rowOutlet.viewContainer.clear()),this._dataSource=A}_observeRenderChanges(){if(!this.dataSource)return;let A;I8(this.dataSource)?A=this.dataSource.connect(this):I2(this.dataSource)?A=this.dataSource:Array.isArray(this.dataSource)&&(A=Me(this.dataSource)),this._renderChangeSubscription=A.pipe(St(this._onDestroy)).subscribe(i=>{this._data=i||[],this.renderRows()})}_forceRenderHeaderRows(){this._headerRowOutlet.viewContainer.length>0&&this._headerRowOutlet.viewContainer.clear(),this._headerRowDefs.forEach((A,i)=>this._renderRow(this._headerRowOutlet,A,i)),this.updateStickyHeaderRowStyles()}_forceRenderFooterRows(){this._footerRowOutlet.viewContainer.length>0&&this._footerRowOutlet.viewContainer.clear(),this._footerRowDefs.forEach((A,i)=>this._renderRow(this._footerRowOutlet,A,i)),this.updateStickyFooterRowStyles()}_addStickyColumnStyles(A,i){let n=Array.from(i?.columns||[]).map(s=>{let a=this._columnDefsByName.get(s);return a}),o=n.map(s=>s.sticky),r=n.map(s=>s.stickyEnd);this._stickyStyler.updateStickyColumns(A,o,r,!this._fixedLayout||this._forceRecalculateCellWidths)}_getRenderedRows(A){let i=[];for(let n=0;n!o.when||o.when(i,A));else{let o=this._rowDefs.find(r=>r.when&&r.when(i,A))||this._defaultRowDef;o&&n.push(o)}return n.length,n}_getEmbeddedViewArgs(A,i){let n=A.rowDef,o={$implicit:A.data};return{templateRef:n.template,context:o,index:i}}_renderRow(A,i,n,o={}){let r=A.viewContainer.createEmbeddedView(i.template,o,n);return this._renderCellTemplateForItem(i,o),r}_renderCellTemplateForItem(A,i){for(let n of this._getCellTemplates(A))td.mostRecentCellOutlet&&td.mostRecentCellOutlet._viewContainer.createEmbeddedView(n,i);this._changeDetectorRef.markForCheck()}_updateRowIndexContext(){let A=this._rowOutlet.viewContainer;for(let i=0,n=A.length;i{let n=this._columnDefsByName.get(i);return A.extractCellTemplate(n)})}_forceRenderDataRows(){this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear(),this.renderRows()}_checkStickyStates(){let A=(i,n)=>i||n.hasStickyChanged();this._headerRowDefs.reduce(A,!1)&&this.updateStickyHeaderRowStyles(),this._footerRowDefs.reduce(A,!1)&&this.updateStickyFooterRowStyles(),Array.from(this._columnDefsByName.values()).reduce(A,!1)&&(this._stickyColumnStylesNeedReset=!0,this.updateStickyColumnStyles())}_setupStickyStyler(){let A=this._dir?this._dir.value:"ltr";this._stickyStyler=new hG(this._isNativeHtmlTable,this.stickyCssClass,A,this._coalescedStyleScheduler,this._platform.isBrowser,this.needsPositionStickyOnElement,this._stickyPositioningListener,this._injector),(this._dir?this._dir.change:Me()).pipe(St(this._onDestroy)).subscribe(i=>{this._stickyStyler.direction=i,this.updateStickyColumnStyles()})}_getOwnDefs(A){return A.filter(i=>!i._table||i._table===this)}_updateNoDataRow(){let A=this._customNoDataRow||this._noDataRow;if(!A)return;let i=this._rowOutlet.viewContainer.length===0;if(i===this._isShowingNoDataRow)return;let n=this._noDataRowOutlet.viewContainer;if(i){let o=n.createEmbeddedView(A.templateRef),r=o.rootNodes[0];o.rootNodes.length===1&&r?.nodeType===this._document.ELEMENT_NODE&&(r.setAttribute("role","row"),r.classList.add(A._contentClassName))}else n.clear();this._isShowingNoDataRow=i,this._changeDetectorRef.markForCheck()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["cdk-table"],["table","cdk-table",""]],contentQueries:function(i,n,o){if(i&1&&(ci(o,VaA,5),ci(o,MQ,5),ci(o,$y,5),ci(o,If,5),ci(o,mG,5)),i&2){let r;XA(r=$A())&&(n._noDataRow=r.first),XA(r=$A())&&(n._contentColumnDefs=r),XA(r=$A())&&(n._contentRowDefs=r),XA(r=$A())&&(n._contentHeaderRowDefs=r),XA(r=$A())&&(n._contentFooterRowDefs=r)}},hostAttrs:[1,"cdk-table"],hostVars:2,hostBindings:function(i,n){i&2&&ue("cdk-table-fixed-layout",n.fixedLayout)},inputs:{trackBy:"trackBy",dataSource:"dataSource",multiTemplateDataRows:[2,"multiTemplateDataRows","multiTemplateDataRows",ie],fixedLayout:[2,"fixedLayout","fixedLayout",ie]},outputs:{contentChanged:"contentChanged"},exportAs:["cdkTable"],features:[ht([{provide:Yl,useExisting:t},{provide:Ru,useClass:RB},{provide:Vy,useClass:uG},{provide:Zy,useValue:null}])],ngContentSelectors:zTA,decls:5,vars:2,consts:[["role","rowgroup"],["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,n){i&1&&(jt(HTA),Fe(0),Fe(1,1),_A(2,OTA,1,0)(3,PTA,7,0)(4,jTA,4,0)),i&2&&(G(2),GA(n._isServer?2:-1),G(),GA(n._isNativeHtmlTable?3:4))},dependencies:[yG,DG,bG,vG],styles:[".cdk-table-fixed-layout{table-layout:fixed}"],encapsulation:2})}return t})();function Py(t,e){return t.concat(Array.from(e))}function OaA(t,e){let A=e.toUpperCase(),i=t.viewContainer.element.nativeElement;for(;i;){let n=i.nodeType===1?i.nodeName:null;if(n===A)return i;if(n==="TABLE")break;i=i.parentNode}return null}var ZaA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[xu]})}return t})();var VTA=[[["caption"]],[["colgroup"],["col"]],"*"],ZTA=["caption","colgroup, col","*"];function WTA(t,e){t&1&&Fe(0,2)}function XTA(t,e){t&1&&(S(0,"thead",0),_r(1,1),F(),S(2,"tbody",2),_r(3,3)(4,4),F(),S(5,"tfoot",0),_r(6,5),F())}function $TA(t,e){t&1&&_r(0,1)(1,3)(2,4)(3,5)}var WaA=(()=>{class t extends MG{stickyCssClass="mat-mdc-table-sticky";needsPositionStickyOnElement=!1;static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275cmp=zA({type:t,selectors:[["mat-table"],["table","mat-table",""]],hostAttrs:[1,"mat-mdc-table","mdc-data-table__table"],hostVars:2,hostBindings:function(i,n){i&2&&ue("mdc-table-fixed-layout",n.fixedLayout)},exportAs:["matTable"],features:[ht([{provide:MG,useExisting:t},{provide:Yl,useExisting:t},{provide:Vy,useClass:uG},{provide:Ru,useClass:RB},{provide:Zy,useValue:null}]),lt],ngContentSelectors:ZTA,decls:5,vars:2,consts:[["role","rowgroup"],["headerRowOutlet",""],["role","rowgroup",1,"mdc-data-table__content"],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,n){i&1&&(jt(VTA),Fe(0),Fe(1,1),_A(2,WTA,1,0)(3,XTA,7,0)(4,$TA,4,0)),i&2&&(G(2),GA(n._isServer?2:-1),G(),GA(n._isNativeHtmlTable?3:4))},dependencies:[yG,DG,bG,vG],styles:[".mat-mdc-table-sticky{position:sticky !important}mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{min-width:100%;border:0;border-spacing:0;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color, var(--mat-sys-surface))}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell{text-align:right}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-header-headline-font, var(--mat-sys-title-small-font, Roboto, sans-serif));line-height:var(--mat-table-header-headline-line-height, var(--mat-sys-title-small-line-height));font-size:var(--mat-table-header-headline-size, var(--mat-sys-title-small-size, 14px));font-weight:var(--mat-table-header-headline-weight, var(--mat-sys-title-small-weight, 500))}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-row-item-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-row-item-label-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-row-item-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-footer-supporting-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-footer-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-footer-supporting-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-footer-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mat-table-footer-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking, var(--mat-sys-title-small-tracking));font-weight:inherit;line-height:inherit;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mat-mdc-header-cell{text-align:right}.mdc-data-table__row:last-child>.mat-mdc-header-cell{border-bottom:none}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking));line-height:inherit}.mdc-data-table__row:last-child>.mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking))}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}"],encapsulation:2})}return t})(),XaA=(()=>{class t extends Wy{static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275dir=jA({type:t,selectors:[["","matCellDef",""]],features:[ht([{provide:Wy,useExisting:t}]),lt]})}return t})(),$aA=(()=>{class t extends Xy{static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275dir=jA({type:t,selectors:[["","matHeaderCellDef",""]],features:[ht([{provide:Xy,useExisting:t}]),lt]})}return t})();var AcA=(()=>{class t extends MQ{get name(){return this._name}set name(A){this._setNameInput(A)}_updateColumnCssClassName(){super._updateColumnCssClassName(),this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275dir=jA({type:t,selectors:[["","matColumnDef",""]],inputs:{name:[0,"matColumnDef","name"]},features:[ht([{provide:MQ,useExisting:t},{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}]),lt]})}return t})(),ecA=(()=>{class t extends jaA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275dir=jA({type:t,selectors:[["mat-header-cell"],["th","mat-header-cell",""]],hostAttrs:["role","columnheader",1,"mat-mdc-header-cell","mdc-data-table__header-cell"],features:[lt]})}return t})();var tcA=(()=>{class t extends qaA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275dir=jA({type:t,selectors:[["mat-cell"],["td","mat-cell",""]],hostAttrs:[1,"mat-mdc-cell","mdc-data-table__cell"],features:[lt]})}return t})();var icA=(()=>{class t extends If{static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275dir=jA({type:t,selectors:[["","matHeaderRowDef",""]],inputs:{columns:[0,"matHeaderRowDef","columns"],sticky:[2,"matHeaderRowDefSticky","sticky",ie]},features:[ht([{provide:If,useExisting:t}]),lt]})}return t})();var ncA=(()=>{class t extends $y{static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275dir=jA({type:t,selectors:[["","matRowDef",""]],inputs:{columns:[0,"matRowDefColumns","columns"],when:[0,"matRowDefWhen","when"]},features:[ht([{provide:$y,useExisting:t}]),lt]})}return t})(),ocA=(()=>{class t extends pG{static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275cmp=zA({type:t,selectors:[["mat-header-row"],["tr","mat-header-row",""]],hostAttrs:["role","row",1,"mat-mdc-header-row","mdc-data-table__header-row"],exportAs:["matHeaderRow"],features:[ht([{provide:pG,useExisting:t}]),lt],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&_r(0,0)},dependencies:[td],encapsulation:2})}return t})();var rcA=(()=>{class t extends wG{static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275cmp=zA({type:t,selectors:[["mat-row"],["tr","mat-row",""]],hostAttrs:["role","row",1,"mat-mdc-row","mdc-data-table__row"],exportAs:["matRow"],features:[ht([{provide:wG,useExisting:t}]),lt],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&_r(0,0)},dependencies:[td],encapsulation:2})}return t})();var scA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[it,ZaA,it]})}return t})(),AHA=9007199254740991,Cf=class extends g8{_data;_renderData=new Mi([]);_filter=new Mi("");_internalPageChanges=new OA;_renderChangesSubscription=null;filteredData;get data(){return this._data.value}set data(e){e=Array.isArray(e)?e:[],this._data.next(e),this._renderChangesSubscription||this._filterData(e)}get filter(){return this._filter.value}set filter(e){this._filter.next(e),this._renderChangesSubscription||this._filterData(this.data)}get sort(){return this._sort}set sort(e){this._sort=e,this._updateChangeSubscription()}_sort;get paginator(){return this._paginator}set paginator(e){this._paginator=e,this._updateChangeSubscription()}_paginator;sortingDataAccessor=(e,A)=>{let i=e[A];if(ak(i)){let n=Number(i);return n{let i=A.active,n=A.direction;return!i||n==""?e:e.sort((o,r)=>{let s=this.sortingDataAccessor(o,i),a=this.sortingDataAccessor(r,i),c=typeof s,l=typeof a;c!==l&&(c==="number"&&(s+=""),l==="number"&&(a+=""));let I=0;return s!=null&&a!=null?s>a?I=1:s{let i=A.trim().toLowerCase();return Object.values(e).some(n=>`${n}`.toLowerCase().includes(i))};constructor(e=[]){super(),this._data=new Mi(e),this._updateChangeSubscription()}_updateChangeSubscription(){let e=this._sort?zn(this._sort.sortChange,this._sort.initialized):Me(null),A=this._paginator?zn(this._paginator.page,this._internalPageChanges,this._paginator.initialized):Me(null),i=this._data,n=Js([i,this._filter]).pipe(je(([s])=>this._filterData(s))),o=Js([n,e]).pipe(je(([s])=>this._orderData(s))),r=Js([o,A]).pipe(je(([s])=>this._pageData(s)));this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=r.subscribe(s=>this._renderData.next(s))}_filterData(e){return this.filteredData=this.filter==null||this.filter===""?e:e.filter(A=>this.filterPredicate(A,this.filter)),this.paginator&&this._updatePaginator(this.filteredData.length),this.filteredData}_orderData(e){return this.sort?this.sortData(e.slice(),this.sort):e}_pageData(e){if(!this.paginator)return e;let A=this.paginator.pageIndex*this.paginator.pageSize;return e.slice(A,A+this.paginator.pageSize)}_updatePaginator(e){Promise.resolve().then(()=>{let A=this.paginator;if(A&&(A.length=e,A.pageIndex>0)){let i=Math.ceil(A.length/A.pageSize)-1||0,n=Math.min(A.pageIndex,i);n!==A.pageIndex&&(A.pageIndex=n,this._internalPageChanges.next())}})}connect(){return this._renderChangesSubscription||this._updateChangeSubscription(),this._renderData}disconnect(){this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=null}};var acA=[{metricName:"tool_trajectory_avg_score",threshold:1},{metricName:"response_match_score",threshold:.7}];var us=[];for(let t=0;t<256;++t)us.push((t+256).toString(16).slice(1));function ccA(t,e=0){return(us[t[e+0]]+us[t[e+1]]+us[t[e+2]]+us[t[e+3]]+"-"+us[t[e+4]]+us[t[e+5]]+"-"+us[t[e+6]]+us[t[e+7]]+"-"+us[t[e+8]]+us[t[e+9]]+"-"+us[t[e+10]]+us[t[e+11]]+us[t[e+12]]+us[t[e+13]]+us[t[e+14]]+us[t[e+15]]).toLowerCase()}var kG,tHA=new Uint8Array(16);function SG(){if(!kG){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");kG=crypto.getRandomValues.bind(crypto)}return kG(tHA)}var iHA=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),RG={randomUUID:iHA};function nHA(t,e,A){if(RG.randomUUID&&!e&&!t)return RG.randomUUID();t=t||{};let i=t.random??t.rng?.()??SG();if(i.length<16)throw new Error("Random bytes length must be >= 16");if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){if(A=A||0,A<0||A+16>e.length)throw new RangeError(`UUID byte range ${A}:${A+15} is out of buffer bounds`);for(let n=0;n<16;++n)e[A+n]=i[n];return e}return ccA(i)}var df=nHA;var Vc=class t{constructor(e){this.http=e}apiServerDomain=vs.getApiServerBaseUrl();getEvalSets(e){if(this.apiServerDomain!=null){let A=this.apiServerDomain+`/apps/${e}/eval_sets`;return this.http.get(A)}return new ct}createNewEvalSet(e,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${e}/eval_sets/${A}`;return this.http.post(i,{})}return new ct}listEvalCases(e,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${e}/eval_sets/${A}/evals`;return this.http.get(i,{})}return new ct}addCurrentSession(e,A,i,n,o){let r=this.apiServerDomain+`/apps/${e}/eval_sets/${A}/add_session`;return this.http.post(r,{evalId:i,sessionId:n,userId:o})}runEval(e,A,i,n){let o=this.apiServerDomain+`/apps/${e}/eval_sets/${A}/run_eval`;return this.http.post(o,{evalIds:i,evalMetrics:n})}listEvalResults(e){if(this.apiServerDomain!=null){let A=this.apiServerDomain+`/apps/${e}/eval_results`;return this.http.get(A,{})}return new ct}getEvalResult(e,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${e}/eval_results/${A}`;return this.http.get(i,{})}return new ct}getEvalCase(e,A,i){if(this.apiServerDomain!=null){let n=this.apiServerDomain+`/apps/${e}/eval_sets/${A}/evals/${i}`;return this.http.get(n,{})}return new ct}updateEvalCase(e,A,i,n){let o=this.apiServerDomain+`/apps/${e}/eval_sets/${A}/evals/${i}`;return this.http.put(o,{evalId:i,conversation:n.conversation,sessionInput:n.sessionInput,creationTimestamp:n.creationTimestamp})}deleteEvalCase(e,A,i){let n=this.apiServerDomain+`/apps/${e}/eval_sets/${A}/evals/${i}`;return this.http.delete(n,{})}static \u0275fac=function(A){return new(A||t)(we(Ds))};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})};var gcA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-text-field-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:["textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}"],encapsulation:2,changeDetection:0})}return t})(),lcA=bc({passive:!0}),IcA=(()=>{class t{_platform=f(Ii);_ngZone=f(Qe);_styleLoader=f(Rn);_monitoredElements=new Map;constructor(){}monitor(A){if(!this._platform.isBrowser)return sr;this._styleLoader.load(gcA);let i=ua(A),n=this._monitoredElements.get(i);if(n)return n.subject;let o=new OA,r="cdk-text-field-autofilled",s=a=>{a.animationName==="cdk-text-field-autofill-start"&&!i.classList.contains(r)?(i.classList.add(r),this._ngZone.run(()=>o.next({target:a.target,isAutofilled:!0}))):a.animationName==="cdk-text-field-autofill-end"&&i.classList.contains(r)&&(i.classList.remove(r),this._ngZone.run(()=>o.next({target:a.target,isAutofilled:!1})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",s,lcA),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:o,unlisten:()=>{i.removeEventListener("animationstart",s,lcA)}}),o}stopMonitoring(A){let i=ua(A),n=this._monitoredElements.get(i);n&&(n.unlisten(),n.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((A,i)=>this.stopMonitoring(i))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var CcA=(()=>{class t{_elementRef=f(ee);_platform=f(Ii);_ngZone=f(Qe);_renderer=f(Wi);_resizeEvents=new OA;_previousValue;_initialHeight;_destroyed=new OA;_listenerCleanups;_minRows;_maxRows;_enabled=!0;_previousMinRows=-1;_textareaElement;get minRows(){return this._minRows}set minRows(A){this._minRows=zs(A),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(A){this._maxRows=zs(A),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(A){this._enabled!==A&&((this._enabled=A)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(A){this._cachedPlaceholderHeight=void 0,A?this._textareaElement.setAttribute("placeholder",A):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}_cachedLineHeight;_cachedPlaceholderHeight;_document=f(at,{optional:!0});_hasFocus;_isViewInited=!1;constructor(){f(Rn).load(gcA),this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){let A=this.minRows&&this._cachedLineHeight?`${this.minRows*this._cachedLineHeight}px`:null;A&&(this._textareaElement.style.minHeight=A)}_setMaxHeight(){let A=this.maxRows&&this._cachedLineHeight?`${this.maxRows*this._cachedLineHeight}px`:null;A&&(this._textareaElement.style.maxHeight=A)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{this._listenerCleanups=[this._renderer.listen("window","resize",()=>this._resizeEvents.next()),this._renderer.listen(this._textareaElement,"focus",this._handleFocusEvent),this._renderer.listen(this._textareaElement,"blur",this._handleFocusEvent)],this._resizeEvents.pipe(yd(16)).subscribe(()=>{this._cachedLineHeight=this._cachedPlaceholderHeight=void 0,this.resizeToFitContent(!0)})}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._listenerCleanups?.forEach(A=>A()),this._resizeEvents.complete(),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let A=this._textareaElement.cloneNode(!1),i=A.style;A.rows=1,i.position="absolute",i.visibility="hidden",i.border="none",i.padding="0",i.height="",i.minHeight="",i.maxHeight="",i.top=i.bottom=i.left=i.right="auto",i.overflow="hidden",this._textareaElement.parentNode.appendChild(A),this._cachedLineHeight=A.clientHeight,A.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){let A=this._textareaElement,i=A.style.marginBottom||"",n=this._platform.FIREFOX,o=n&&this._hasFocus,r=n?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";o&&(A.style.marginBottom=`${A.clientHeight}px`),A.classList.add(r);let s=A.scrollHeight-4;return A.classList.remove(r),o&&(A.style.marginBottom=i),s}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||this._cachedPlaceholderHeight!=null)return;if(!this.placeholder){this._cachedPlaceholderHeight=0;return}let A=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=A}_handleFocusEvent=A=>{this._hasFocus=A.type==="focus"};ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(A=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight))return;let i=this._elementRef.nativeElement,n=i.value;if(!A&&this._minRows===this._previousMinRows&&n===this._previousValue)return;let o=this._measureScrollHeight(),r=Math.max(o,this._cachedPlaceholderHeight||0);i.style.height=`${r}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=n,this._previousMinRows=this._minRows}reset(){this._initialHeight!==void 0&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_scrollToCaretPosition(A){let{selectionStart:i,selectionEnd:n}=A;!this._destroyed.isStopped&&this._hasFocus&&A.setSelectionRange(i,n)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,n){i&1&&hA("input",function(){return n._noopInputHandler()})},inputs:{minRows:[0,"cdkAutosizeMinRows","minRows"],maxRows:[0,"cdkAutosizeMaxRows","maxRows"],enabled:[2,"cdkTextareaAutosize","enabled",ie],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"]})}return t})(),dcA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({})}return t})();var rHA=new dA("MAT_INPUT_VALUE_ACCESSOR"),sHA=["button","checkbox","file","hidden","image","radio","range","reset","submit"],aHA=new dA("MAT_INPUT_CONFIG"),iI=(()=>{class t{_elementRef=f(ee);_platform=f(Ii);ngControl=f(Ac,{optional:!0,self:!0});_autofillMonitor=f(IcA);_ngZone=f(Qe);_formField=f(Gu,{optional:!0});_renderer=f(Wi);_uid=f(sn).getId("mat-input-");_previousNativeValue;_inputValueAccessor;_signalBasedValueAccessor;_previousPlaceholder;_errorStateTracker;_config=f(aHA,{optional:!0});_cleanupIosKeyup;_cleanupWebkitWheel;_formFieldDescribedBy;_isServer;_isNativeSelect;_isTextarea;_isInFormField;focused=!1;stateChanges=new OA;controlType="mat-input";autofilled=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=Xo(A),this.focused&&(this.focused=!1,this.stateChanges.next())}_disabled=!1;get id(){return this._id}set id(A){this._id=A||this._uid}_id;placeholder;name;get required(){return this._required??this.ngControl?.control?.hasValidator($a.required)??!1}set required(A){this._required=Xo(A)}_required;get type(){return this._type}set type(A){let i=this._type;this._type=A||"text",this._validateType(),!this._isTextarea&&ok().has(this._type)&&(this._elementRef.nativeElement.type=this._type),this._type!==i&&this._ensureWheelDefaultBehavior()}_type="text";get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(A){this._errorStateTracker.matcher=A}userAriaDescribedBy;get value(){return this._signalBasedValueAccessor?this._signalBasedValueAccessor.value():this._inputValueAccessor.value}set value(A){A!==this.value&&(this._signalBasedValueAccessor?this._signalBasedValueAccessor.value.set(A):this._inputValueAccessor.value=A,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(A){this._readonly=Xo(A)}_readonly=!1;disabledInteractive;get errorState(){return this._errorStateTracker.errorState}set errorState(A){this._errorStateTracker.errorState=A}_neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(A=>ok().has(A));constructor(){let A=f(su,{optional:!0}),i=f(GI,{optional:!0}),n=f(bB),o=f(rHA,{optional:!0,self:!0}),r=this._elementRef.nativeElement,s=r.nodeName.toLowerCase();o?p2(o.value)?this._signalBasedValueAccessor=o:this._inputValueAccessor=o:this._inputValueAccessor=r,this._previousNativeValue=this.value,this.id=this.id,this._platform.IOS&&this._ngZone.runOutsideAngular(()=>{this._cleanupIosKeyup=this._renderer.listen(r,"keyup",this._iOSKeyupListener)}),this._errorStateTracker=new $I(n,this.ngControl,i,A,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect=s==="select",this._isTextarea=s==="textarea",this._isInFormField=!!this._formField,this.disabledInteractive=this._config?.disabledInteractive||!1,this._isNativeSelect&&(this.controlType=r.multiple?"mat-native-select-multiple":"mat-native-select"),this._signalBasedValueAccessor&&Nh(()=>{this._signalBasedValueAccessor.value(),this.stateChanges.next()})}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(A=>{this.autofilled=A.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._cleanupIosKeyup?.(),this._cleanupWebkitWheel?.()}ngDoCheck(){this.ngControl&&(this.updateErrorState(),this.ngControl.disabled!==null&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(A){this._elementRef.nativeElement.focus(A)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(A){if(A!==this.focused){if(!this._isNativeSelect&&A&&this.disabled&&this.disabledInteractive){let i=this._elementRef.nativeElement;i.type==="number"?(i.type="text",i.setSelectionRange(0,0),i.type="number"):i.setSelectionRange(0,0)}this.focused=A,this.stateChanges.next()}}_onInput(){}_dirtyCheckNativeValue(){let A=this._elementRef.nativeElement.value;this._previousNativeValue!==A&&(this._previousNativeValue=A,this.stateChanges.next())}_dirtyCheckPlaceholder(){let A=this._getPlaceholder();if(A!==this._previousPlaceholder){let i=this._elementRef.nativeElement;this._previousPlaceholder=A,A?i.setAttribute("placeholder",A):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){sHA.indexOf(this._type)>-1}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let A=this._elementRef.nativeElement.validity;return A&&A.badInput}get empty(){return!this._isNeverEmpty()&&!this._elementRef.nativeElement.value&&!this._isBadInput()&&!this.autofilled}get shouldLabelFloat(){if(this._isNativeSelect){let A=this._elementRef.nativeElement,i=A.options[0];return this.focused||A.multiple||!this.empty||!!(A.selectedIndex>-1&&i&&i.label)}else return this.focused&&!this.disabled||!this.empty}setDescribedByIds(A){let i=this._elementRef.nativeElement,n=i.getAttribute("aria-describedby"),o;if(n){let r=this._formFieldDescribedBy||A;o=A.concat(n.split(" ").filter(s=>s&&!r.includes(s)))}else o=A;this._formFieldDescribedBy=A,o.length?i.setAttribute("aria-describedby",o.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){let A=this._elementRef.nativeElement;return this._isNativeSelect&&(A.multiple||A.size>1)}_iOSKeyupListener=A=>{let i=A.target;!i.value&&i.selectionStart===0&&i.selectionEnd===0&&(i.setSelectionRange(1,1),i.setSelectionRange(0,0))};_webkitBlinkWheelListener=()=>{};_ensureWheelDefaultBehavior(){this._cleanupWebkitWheel?.(),this._type==="number"&&(this._platform.BLINK||this._platform.WEBKIT)&&(this._cleanupWebkitWheel=this._renderer.listen(this._elementRef.nativeElement,"wheel",this._webkitBlinkWheelListener))}_getReadonlyAttribute(){return this._isNativeSelect?null:this.readonly||this.disabled&&this.disabledInteractive?"true":null}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:21,hostBindings:function(i,n){i&1&&hA("focus",function(){return n._focusChanged(!0)})("blur",function(){return n._focusChanged(!1)})("input",function(){return n._onInput()}),i&2&&(Hs("id",n.id)("disabled",n.disabled&&!n.disabledInteractive)("required",n.required),Ne("name",n.name||null)("readonly",n._getReadonlyAttribute())("aria-disabled",n.disabled&&n.disabledInteractive?"true":null)("aria-invalid",n.empty&&n.required?null:n.errorState)("aria-required",n.required)("id",n.id),ue("mat-input-server",n._isServer)("mat-mdc-form-field-textarea-control",n._isInFormField&&n._isTextarea)("mat-mdc-form-field-input-control",n._isInFormField)("mat-mdc-input-disabled-interactive",n.disabledInteractive)("mdc-text-field__input",n._isInFormField)("mat-mdc-native-select-inline",n._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly",disabledInteractive:[2,"disabledInteractive","disabledInteractive",ie]},exportAs:["matInput"],features:[ht([{provide:_u,useExisting:t}]),ti]})}return t})(),e7=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[it,y0,y0,dcA,it]})}return t})();var Bf=class t{constructor(e,A,i){this.evalService=e;this.data=A;this.dialogRef=i}newCaseId="case"+df().slice(0,6);createNewEvalCase(){!this.newCaseId||this.newCaseId==""?alert("Cannot create eval set with empty id!"):this.evalService.addCurrentSession(this.data.appName,this.data.evalSetId,this.newCaseId,this.data.sessionId,this.data.userId).subscribe(e=>{this.dialogRef.close(!0)})}static \u0275fac=function(A){return new(A||t)(PA(Vc),PA(as),PA(Br))};static \u0275cmp=zA({type:t,selectors:[["app-add-eval-session-dialog"]],standalone:!1,decls:11,vars:1,consts:[["mat-dialog-title",""],[2,"padding-left","20px","padding-right","24px"],["matInput","",3,"ngModelChange","keydown.enter","ngModel"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"h2",0),AA(1,"Add Current Session To Eval Set"),F(),S(2,"mat-dialog-content"),AA(3,` Please enter the eval case name -`),F(),S(4,"mat-form-field",1)(5,"input",2),da("ngModelChange",function(o){return Va(i.newCaseId,o)||(i.newCaseId=o),o}),hA("keydown.enter",function(){return i.createNewEvalCase()}),F()(),S(6,"mat-dialog-actions",3)(7,"button",4),AA(8,"Cancel"),F(),S(9,"button",5),hA("click",function(){return i.createNewEvalCase()}),AA(10,"Create"),F()()),A&2&&(G(5),Ca("ngModel",i.newCaseId))},dependencies:[vc,Ea,ec,Qg,iI,Dr,bs,ma,pa,hg],encapsulation:2})};var Ef=class t{constructor(e,A,i){this.evalService=e;this.data=A;this.dialogRef=i}newSetId="evalset"+df().slice(0,6);createNewEvalSet(){!this.newSetId||this.newSetId==""?alert("Cannot create eval set with empty id!"):this.evalService.createNewEvalSet(this.data.appName,this.newSetId).subscribe(e=>{this.dialogRef.close(!0)})}static \u0275fac=function(A){return new(A||t)(PA(Vc),PA(as),PA(Br))};static \u0275cmp=zA({type:t,selectors:[["app-new-eval-set-dialog-component"]],standalone:!1,decls:11,vars:1,consts:[["mat-dialog-title",""],[2,"padding-left","20px","padding-right","24px"],["matInput","",3,"ngModelChange","keydown.enter","ngModel"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"h2",0),AA(1,"Create New Eval Set"),F(),S(2,"mat-dialog-content"),AA(3,` Please enter the eval set name -`),F(),S(4,"mat-form-field",1)(5,"input",2),da("ngModelChange",function(o){return Va(i.newSetId,o)||(i.newSetId=o),o}),hA("keydown.enter",function(){return i.createNewEvalSet()}),F()(),S(6,"mat-dialog-actions",3)(7,"button",4),AA(8,"Cancel"),F(),S(9,"button",5),hA("click",function(){return i.createNewEvalSet()}),AA(10,"Create"),F()()),A&2&&(G(5),Ca("ngModel",i.newSetId))},dependencies:[vc,Ea,ec,Qg,iI,Dr,bs,ma,pa,hg],encapsulation:2})};var cHA=["knob"],lHA=["valueIndicatorContainer"];function gHA(t,e){if(t&1&&(S(0,"div",2,1)(2,"div",5)(3,"span",6),AA(4),F()()()),t&2){let A=O();G(4),Gt(A.valueIndicatorText)}}var IHA=["trackActive"],CHA=["*"];function dHA(t,e){if(t&1&&JA(0,"div"),t&2){let A=e.$implicit,i=e.$index,n=O(3);fo(A===0?"mdc-slider__tick-mark--active":"mdc-slider__tick-mark--inactive"),uo("transform",n._calcTickMarkTransform(i))}}function BHA(t,e){if(t&1&&Dn(0,dHA,1,4,"div",8,Xd),t&2){let A=O(2);yn(A._tickMarks)}}function EHA(t,e){if(t&1&&(S(0,"div",6,1),_A(2,BHA,2,0),F()),t&2){let A=O();G(2),GA(A._cachedWidth?2:-1)}}function QHA(t,e){if(t&1&&JA(0,"mat-slider-visual-thumb",7),t&2){let A=O();yA("discrete",A.discrete)("thumbPosition",1)("valueIndicatorText",A.startValueIndicatorText)}}var ui=function(t){return t[t.START=1]="START",t[t.END=2]="END",t}(ui||{}),kQ=function(t){return t[t.ACTIVE=0]="ACTIVE",t[t.INACTIVE=1]="INACTIVE",t}(kQ||{}),xG=new dA("_MatSlider"),BcA=new dA("_MatSliderThumb"),hHA=new dA("_MatSliderRangeThumb"),EcA=new dA("_MatSliderVisualThumb");var uHA=(()=>{class t{_cdr=f(It);_ngZone=f(Qe);_slider=f(xG);_renderer=f(Wi);_listenerCleanups;discrete;thumbPosition;valueIndicatorText;_ripple;_knob;_valueIndicatorContainer;_sliderInput;_sliderInputEl;_hoverRippleRef;_focusRippleRef;_activeRippleRef;_isHovered=!1;_isActive=!1;_isValueIndicatorVisible=!1;_hostElement=f(ee).nativeElement;_platform=f(Ii);constructor(){}ngAfterViewInit(){let A=this._slider._getInput(this.thumbPosition);A&&(this._ripple.radius=24,this._sliderInput=A,this._sliderInputEl=this._sliderInput._hostElement,this._ngZone.runOutsideAngular(()=>{let i=this._sliderInputEl,n=this._renderer;this._listenerCleanups=[n.listen(i,"pointermove",this._onPointerMove),n.listen(i,"pointerdown",this._onDragStart),n.listen(i,"pointerup",this._onDragEnd),n.listen(i,"pointerleave",this._onMouseLeave),n.listen(i,"focus",this._onFocus),n.listen(i,"blur",this._onBlur)]}))}ngOnDestroy(){this._listenerCleanups?.forEach(A=>A())}_onPointerMove=A=>{if(this._sliderInput._isFocused)return;let i=this._hostElement.getBoundingClientRect(),n=this._slider._isCursorOnSliderThumb(A,i);this._isHovered=n,n?this._showHoverRipple():this._hideRipple(this._hoverRippleRef)};_onMouseLeave=()=>{this._isHovered=!1,this._hideRipple(this._hoverRippleRef)};_onFocus=()=>{this._hideRipple(this._hoverRippleRef),this._showFocusRipple(),this._hostElement.classList.add("mdc-slider__thumb--focused")};_onBlur=()=>{this._isActive||this._hideRipple(this._focusRippleRef),this._isHovered&&this._showHoverRipple(),this._hostElement.classList.remove("mdc-slider__thumb--focused")};_onDragStart=A=>{A.button===0&&(this._isActive=!0,this._showActiveRipple())};_onDragEnd=()=>{this._isActive=!1,this._hideRipple(this._activeRippleRef),this._sliderInput._isFocused||this._hideRipple(this._focusRippleRef),this._platform.SAFARI&&this._showHoverRipple()};_showHoverRipple(){this._isShowingRipple(this._hoverRippleRef)||(this._hoverRippleRef=this._showRipple({enterDuration:0,exitDuration:0}),this._hoverRippleRef?.element.classList.add("mat-mdc-slider-hover-ripple"))}_showFocusRipple(){this._isShowingRipple(this._focusRippleRef)||(this._focusRippleRef=this._showRipple({enterDuration:0,exitDuration:0},!0),this._focusRippleRef?.element.classList.add("mat-mdc-slider-focus-ripple"))}_showActiveRipple(){this._isShowingRipple(this._activeRippleRef)||(this._activeRippleRef=this._showRipple({enterDuration:225,exitDuration:400}),this._activeRippleRef?.element.classList.add("mat-mdc-slider-active-ripple"))}_isShowingRipple(A){return A?.state===Os.FADING_IN||A?.state===Os.VISIBLE}_showRipple(A,i){if(!this._slider.disabled&&(this._showValueIndicator(),this._slider._isRange&&this._slider._getThumb(this.thumbPosition===ui.START?ui.END:ui.START)._showValueIndicator(),!(this._slider._globalRippleOptions?.disabled&&!i)))return this._ripple.launch({animation:this._slider._noopAnimations?{enterDuration:0,exitDuration:0}:A,centered:!0,persistent:!0})}_hideRipple(A){if(A?.fadeOut(),this._isShowingAnyRipple())return;this._slider._isRange||this._hideValueIndicator();let i=this._getSibling();i._isShowingAnyRipple()||(this._hideValueIndicator(),i._hideValueIndicator())}_showValueIndicator(){this._hostElement.classList.add("mdc-slider__thumb--with-indicator")}_hideValueIndicator(){this._hostElement.classList.remove("mdc-slider__thumb--with-indicator")}_getSibling(){return this._slider._getThumb(this.thumbPosition===ui.START?ui.END:ui.START)}_getValueIndicatorContainer(){return this._valueIndicatorContainer?.nativeElement}_getKnob(){return this._knob.nativeElement}_isShowingAnyRipple(){return this._isShowingRipple(this._hoverRippleRef)||this._isShowingRipple(this._focusRippleRef)||this._isShowingRipple(this._activeRippleRef)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-slider-visual-thumb"]],viewQuery:function(i,n){if(i&1&&(Te(rs,5),Te(cHA,5),Te(lHA,5)),i&2){let o;XA(o=$A())&&(n._ripple=o.first),XA(o=$A())&&(n._knob=o.first),XA(o=$A())&&(n._valueIndicatorContainer=o.first)}},hostAttrs:[1,"mdc-slider__thumb","mat-mdc-slider-visual-thumb"],inputs:{discrete:"discrete",thumbPosition:"thumbPosition",valueIndicatorText:"valueIndicatorText"},features:[ht([{provide:EcA,useExisting:t}])],decls:4,vars:2,consts:[["knob",""],["valueIndicatorContainer",""],[1,"mdc-slider__value-indicator-container"],[1,"mdc-slider__thumb-knob"],["matRipple","",1,"mat-focus-indicator",3,"matRippleDisabled"],[1,"mdc-slider__value-indicator"],[1,"mdc-slider__value-indicator-text"]],template:function(i,n){i&1&&(_A(0,gHA,5,1,"div",2),JA(1,"div",3,0)(3,"div",4)),i&2&&(GA(n.discrete?0:-1),G(3),yA("matRippleDisabled",!0))},dependencies:[rs],styles:[".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}"],encapsulation:2,changeDetection:0})}return t})(),QcA=(()=>{class t{_ngZone=f(Qe);_cdr=f(It);_elementRef=f(ee);_dir=f(mo,{optional:!0});_globalRippleOptions=f(G2,{optional:!0});_trackActive;_thumbs;_input;_inputs;get disabled(){return this._disabled}set disabled(A){this._disabled=A;let i=this._getInput(ui.END),n=this._getInput(ui.START);i&&(i.disabled=this._disabled),n&&(n.disabled=this._disabled)}_disabled=!1;get discrete(){return this._discrete}set discrete(A){this._discrete=A,this._updateValueIndicatorUIs()}_discrete=!1;showTickMarks=!1;get min(){return this._min}set min(A){let i=isNaN(A)?this._min:A;this._min!==i&&this._updateMin(i)}_min=0;color;disableRipple=!1;_updateMin(A){let i=this._min;this._min=A,this._isRange?this._updateMinRange({old:i,new:A}):this._updateMinNonRange(A),this._onMinMaxOrStepChange()}_updateMinRange(A){let i=this._getInput(ui.END),n=this._getInput(ui.START),o=i.value,r=n.value;n.min=A.new,i.min=Math.max(A.new,n.value),n.max=Math.min(i.max,i.value),n._updateWidthInactive(),i._updateWidthInactive(),A.newA.old?this._onTranslateXChangeBySideEffect(n,i):this._onTranslateXChangeBySideEffect(i,n),o!==i.value&&this._onValueChange(i),r!==n.value&&this._onValueChange(n)}_updateMaxNonRange(A){let i=this._getInput(ui.END);if(i){let n=i.value;i.max=A,i._updateThumbUIByValue(),this._updateTrackUI(i),n!==i.value&&this._onValueChange(i)}}get step(){return this._step}set step(A){let i=isNaN(A)?this._step:A;this._step!==i&&this._updateStep(i)}_step=1;_updateStep(A){this._step=A,this._isRange?this._updateStepRange():this._updateStepNonRange(),this._onMinMaxOrStepChange()}_updateStepRange(){let A=this._getInput(ui.END),i=this._getInput(ui.START),n=A.value,o=i.value,r=i.value;A.min=this._min,i.max=this._max,A.step=this._step,i.step=this._step,this._platform.SAFARI&&(A.value=A.value,i.value=i.value),A.min=Math.max(this._min,i.value),i.max=Math.min(this._max,A.value),i._updateWidthInactive(),A._updateWidthInactive(),A.value`${A}`;_tickMarks;_noopAnimations;_dirChangeSubscription;_resizeObserver;_cachedWidth;_cachedLeft;_rippleRadius=24;startValueIndicatorText="";endValueIndicatorText="";_endThumbTransform;_startThumbTransform;_isRange=!1;_isRtl=!1;_hasViewInitialized=!1;_tickMarkTrackWidth=0;_hasAnimation=!1;_resizeTimer=null;_platform=f(Ii);constructor(){f(Rn).load(lr);let A=f(Si,{optional:!0});this._noopAnimations=A==="NoopAnimations",this._dir&&(this._dirChangeSubscription=this._dir.change.subscribe(()=>this._onDirChange()),this._isRtl=this._dir.value==="rtl")}_knobRadius=8;_inputPadding;ngAfterViewInit(){this._platform.isBrowser&&this._updateDimensions();let A=this._getInput(ui.END),i=this._getInput(ui.START);this._isRange=!!A&&!!i,this._cdr.detectChanges();let n=this._getThumb(ui.END);this._rippleRadius=n._ripple.radius,this._inputPadding=this._rippleRadius-this._knobRadius,this._isRange?this._initUIRange(A,i):this._initUINonRange(A),this._updateTrackUI(A),this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._observeHostResize(),this._cdr.detectChanges()}_initUINonRange(A){A.initProps(),A.initUI(),this._updateValueIndicatorUI(A),this._hasViewInitialized=!0,A._updateThumbUIByValue()}_initUIRange(A,i){A.initProps(),A.initUI(),i.initProps(),i.initUI(),A._updateMinMax(),i._updateMinMax(),A._updateStaticStyles(),i._updateStaticStyles(),this._updateValueIndicatorUIs(),this._hasViewInitialized=!0,A._updateThumbUIByValue(),i._updateThumbUIByValue()}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._resizeObserver?.disconnect(),this._resizeObserver=null}_onDirChange(){this._isRtl=this._dir?.value==="rtl",this._isRange?this._onDirChangeRange():this._onDirChangeNonRange(),this._updateTickMarkUI()}_onDirChangeRange(){let A=this._getInput(ui.END),i=this._getInput(ui.START);A._setIsLeftThumb(),i._setIsLeftThumb(),A.translateX=A._calcTranslateXByValue(),i.translateX=i._calcTranslateXByValue(),A._updateStaticStyles(),i._updateStaticStyles(),A._updateWidthInactive(),i._updateWidthInactive(),A._updateThumbUIByValue(),i._updateThumbUIByValue()}_onDirChangeNonRange(){this._getInput(ui.END)._updateThumbUIByValue()}_observeHostResize(){typeof ResizeObserver>"u"||!ResizeObserver||this._ngZone.runOutsideAngular(()=>{this._resizeObserver=new ResizeObserver(()=>{this._isActive()||(this._resizeTimer&&clearTimeout(this._resizeTimer),this._onResize())}),this._resizeObserver.observe(this._elementRef.nativeElement)})}_isActive(){return this._getThumb(ui.START)._isActive||this._getThumb(ui.END)._isActive}_getValue(A=ui.END){let i=this._getInput(A);return i?i.value:this.min}_skipUpdate(){return!!(this._getInput(ui.START)?._skipUIUpdate||this._getInput(ui.END)?._skipUIUpdate)}_updateDimensions(){this._cachedWidth=this._elementRef.nativeElement.offsetWidth,this._cachedLeft=this._elementRef.nativeElement.getBoundingClientRect().left}_setTrackActiveStyles(A){let i=this._trackActive.nativeElement.style;i.left=A.left,i.right=A.right,i.transformOrigin=A.transformOrigin,i.transform=A.transform}_calcTickMarkTransform(A){let i=A*(this._tickMarkTrackWidth/(this._tickMarks.length-1));return`translateX(${this._isRtl?this._cachedWidth-6-i:i}px`}_onTranslateXChange(A){this._hasViewInitialized&&(this._updateThumbUI(A),this._updateTrackUI(A),this._updateOverlappingThumbUI(A))}_onTranslateXChangeBySideEffect(A,i){this._hasViewInitialized&&(A._updateThumbUIByValue(),i._updateThumbUIByValue())}_onValueChange(A){this._hasViewInitialized&&(this._updateValueIndicatorUI(A),this._updateTickMarkUI(),this._cdr.detectChanges())}_onMinMaxOrStepChange(){this._hasViewInitialized&&(this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.markForCheck())}_onResize(){if(this._hasViewInitialized){if(this._updateDimensions(),this._isRange){let A=this._getInput(ui.END),i=this._getInput(ui.START);A._updateThumbUIByValue(),i._updateThumbUIByValue(),A._updateStaticStyles(),i._updateStaticStyles(),A._updateMinMax(),i._updateMinMax(),A._updateWidthInactive(),i._updateWidthInactive()}else{let A=this._getInput(ui.END);A&&A._updateThumbUIByValue()}this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.detectChanges()}}_thumbsOverlap=!1;_areThumbsOverlapping(){let A=this._getInput(ui.START),i=this._getInput(ui.END);return!A||!i?!1:i.translateX-A.translateX<20}_updateOverlappingThumbClassNames(A){let i=A.getSibling(),n=this._getThumb(A.thumbPosition);this._getThumb(i.thumbPosition)._hostElement.classList.remove("mdc-slider__thumb--top"),n._hostElement.classList.toggle("mdc-slider__thumb--top",this._thumbsOverlap)}_updateOverlappingThumbUI(A){!this._isRange||this._skipUpdate()||this._thumbsOverlap!==this._areThumbsOverlapping()&&(this._thumbsOverlap=!this._thumbsOverlap,this._updateOverlappingThumbClassNames(A))}_updateThumbUI(A){if(this._skipUpdate())return;let i=this._getThumb(A.thumbPosition===ui.END?ui.END:ui.START);i._hostElement.style.transform=`translateX(${A.translateX}px)`}_updateValueIndicatorUI(A){if(this._skipUpdate())return;let i=this.displayWith(A.value);if(this._hasViewInitialized?A._valuetext.set(i):A._hostElement.setAttribute("aria-valuetext",i),this.discrete){A.thumbPosition===ui.START?this.startValueIndicatorText=i:this.endValueIndicatorText=i;let n=this._getThumb(A.thumbPosition);i.length<3?n._hostElement.classList.add("mdc-slider__thumb--short-value"):n._hostElement.classList.remove("mdc-slider__thumb--short-value")}}_updateValueIndicatorUIs(){let A=this._getInput(ui.END),i=this._getInput(ui.START);A&&this._updateValueIndicatorUI(A),i&&this._updateValueIndicatorUI(i)}_updateTickMarkTrackUI(){if(!this.showTickMarks||this._skipUpdate())return;let A=this._step&&this._step>0?this._step:1,n=(Math.floor(this.max/A)*A-this.min)/(this.max-this.min);this._tickMarkTrackWidth=(this._cachedWidth-6)*n}_updateTrackUI(A){this._skipUpdate()||(this._isRange?this._updateTrackUIRange(A):this._updateTrackUINonRange(A))}_updateTrackUIRange(A){let i=A.getSibling();if(!i||!this._cachedWidth)return;let n=Math.abs(i.translateX-A.translateX)/this._cachedWidth;A._isLeftThumb&&this._cachedWidth?this._setTrackActiveStyles({left:"auto",right:`${this._cachedWidth-i.translateX}px`,transformOrigin:"right",transform:`scaleX(${n})`}):this._setTrackActiveStyles({left:`${i.translateX}px`,right:"auto",transformOrigin:"left",transform:`scaleX(${n})`})}_updateTrackUINonRange(A){this._isRtl?this._setTrackActiveStyles({left:"auto",right:"0px",transformOrigin:"right",transform:`scaleX(${1-A.fillPercentage})`}):this._setTrackActiveStyles({left:"0px",right:"auto",transformOrigin:"left",transform:`scaleX(${A.fillPercentage})`})}_updateTickMarkUI(){if(!this.showTickMarks||this.step===void 0||this.min===void 0||this.max===void 0)return;let A=this.step>0?this.step:1;this._isRange?this._updateTickMarkUIRange(A):this._updateTickMarkUINonRange(A)}_updateTickMarkUINonRange(A){let i=this._getValue(),n=Math.max(Math.round((i-this.min)/A),0)+1,o=Math.max(Math.round((this.max-i)/A),0)-1;this._isRtl?n++:o++,this._tickMarks=Array(n).fill(kQ.ACTIVE).concat(Array(o).fill(kQ.INACTIVE))}_updateTickMarkUIRange(A){let i=this._getValue(),n=this._getValue(ui.START),o=Math.max(Math.round((n-this.min)/A),0),r=Math.max(Math.round((i-n)/A)+1,0),s=Math.max(Math.round((this.max-i)/A),0);this._tickMarks=Array(o).fill(kQ.INACTIVE).concat(Array(r).fill(kQ.ACTIVE),Array(s).fill(kQ.INACTIVE))}_getInput(A){if(A===ui.END&&this._input)return this._input;if(this._inputs?.length)return A===ui.START?this._inputs.first:this._inputs.last}_getThumb(A){return A===ui.END?this._thumbs?.last:this._thumbs?.first}_setTransition(A){this._hasAnimation=!this._platform.IOS&&A&&!this._noopAnimations,this._elementRef.nativeElement.classList.toggle("mat-mdc-slider-with-animation",this._hasAnimation)}_isCursorOnSliderThumb(A,i){let n=i.width/2,o=i.x+n,r=i.y+n,s=A.clientX-o,a=A.clientY-r;return Math.pow(s,2)+Math.pow(a,2)LG),multi:!0};var LG=(()=>{class t{_ngZone=f(Qe);_elementRef=f(ee);_cdr=f(It);_slider=f(xG);_platform=f(Ii);_listenerCleanups;get value(){return zi(this._hostElement.value,0)}set value(A){A=isNaN(A)?0:A;let i=A+"";if(!this._hasSetInitialValue){this._initialValue=i;return}this._isActive||this._setValue(i)}_setValue(A){this._hostElement.value=A,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges(),this._slider._cdr.markForCheck()}valueChange=new WA;dragStart=new WA;dragEnd=new WA;get translateX(){return this._slider.min>=this._slider.max?(this._translateX=this._tickMarkOffset,this._translateX):(this._translateX===void 0&&(this._translateX=this._calcTranslateXByValue()),this._translateX)}set translateX(A){this._translateX=A}_translateX;thumbPosition=ui.END;get min(){return zi(this._hostElement.min,0)}set min(A){this._hostElement.min=A+"",this._cdr.detectChanges()}get max(){return zi(this._hostElement.max,0)}set max(A){this._hostElement.max=A+"",this._cdr.detectChanges()}get step(){return zi(this._hostElement.step,0)}set step(A){this._hostElement.step=A+"",this._cdr.detectChanges()}get disabled(){return ie(this._hostElement.disabled)}set disabled(A){this._hostElement.disabled=A,this._cdr.detectChanges(),this._slider.disabled!==this.disabled&&(this._slider.disabled=this.disabled)}get percentage(){return this._slider.min>=this._slider.max?this._slider._isRtl?1:0:(this.value-this._slider.min)/(this._slider.max-this._slider.min)}get fillPercentage(){return this._slider._cachedWidth?this._translateX===0?0:this.translateX/this._slider._cachedWidth:this._slider._isRtl?1:0}_hostElement=this._elementRef.nativeElement;_valuetext=Jo("");_knobRadius=8;_tickMarkOffset=3;_isActive=!1;_isFocused=!1;_setIsFocused(A){this._isFocused=A}_hasSetInitialValue=!1;_initialValue;_formControl;_destroyed=new OA;_skipUIUpdate=!1;_onChangeFn;_onTouchedFn=()=>{};_isControlInitialized=!1;constructor(){let A=f(Wi);this._ngZone.runOutsideAngular(()=>{this._listenerCleanups=[A.listen(this._hostElement,"pointerdown",this._onPointerDown.bind(this)),A.listen(this._hostElement,"pointermove",this._onPointerMove.bind(this)),A.listen(this._hostElement,"pointerup",this._onPointerUp.bind(this))]})}ngOnDestroy(){this._listenerCleanups.forEach(A=>A()),this._destroyed.next(),this._destroyed.complete(),this.dragStart.complete(),this.dragEnd.complete()}initProps(){this._updateWidthInactive(),this.disabled!==this._slider.disabled&&(this._slider.disabled=!0),this.step=this._slider.step,this.min=this._slider.min,this.max=this._slider.max,this._initValue()}initUI(){this._updateThumbUIByValue()}_initValue(){this._hasSetInitialValue=!0,this._initialValue===void 0?this.value=this._getDefaultValue():(this._hostElement.value=this._initialValue,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges())}_getDefaultValue(){return this.min}_onBlur(){this._setIsFocused(!1),this._onTouchedFn()}_onFocus(){this._slider._setTransition(!1),this._slider._updateTrackUI(this),this._setIsFocused(!0)}_onChange(){this.valueChange.emit(this.value),this._isActive&&this._updateThumbUIByValue({withAnimation:!0})}_onInput(){this._onChangeFn?.(this.value),(this._slider.step||!this._isActive)&&this._updateThumbUIByValue({withAnimation:!0}),this._slider._onValueChange(this)}_onNgControlValueChange(){(!this._isActive||!this._isFocused)&&(this._slider._onValueChange(this),this._updateThumbUIByValue()),this._slider.disabled=this._formControl.disabled}_onPointerDown(A){if(!(this.disabled||A.button!==0)){if(this._platform.IOS){let i=this._slider._isCursorOnSliderThumb(A,this._slider._getThumb(this.thumbPosition)._hostElement.getBoundingClientRect());this._isActive=i,this._updateWidthActive(),this._slider._updateDimensions();return}this._isActive=!0,this._setIsFocused(!0),this._updateWidthActive(),this._slider._updateDimensions(),this._slider.step||this._updateThumbUIByPointerEvent(A,{withAnimation:!0}),this.disabled||(this._handleValueCorrection(A),this.dragStart.emit({source:this,parent:this._slider,value:this.value}))}}_handleValueCorrection(A){this._skipUIUpdate=!0,setTimeout(()=>{this._skipUIUpdate=!1,this._fixValue(A)},0)}_fixValue(A){let i=A.clientX-this._slider._cachedLeft,n=this._slider._cachedWidth,o=this._slider.step===0?1:this._slider.step,r=Math.floor((this._slider.max-this._slider.min)/o),s=this._slider._isRtl?1-i/n:i/n,c=Math.round(s*r)/r*(this._slider.max-this._slider.min)+this._slider.min,l=Math.round(c/o)*o,I=this.value;if(l===I){this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(A,{withAnimation:this._slider._hasAnimation});return}this.value=l,this.valueChange.emit(this.value),this._onChangeFn?.(this.value),this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(A,{withAnimation:this._slider._hasAnimation})}_onPointerMove(A){!this._slider.step&&this._isActive&&this._updateThumbUIByPointerEvent(A)}_onPointerUp(){this._isActive&&(this._isActive=!1,this._platform.SAFARI&&this._setIsFocused(!1),this.dragEnd.emit({source:this,parent:this._slider,value:this.value}),setTimeout(()=>this._updateWidthInactive(),this._platform.IOS?10:0))}_clamp(A){let i=this._tickMarkOffset,n=this._slider._cachedWidth-this._tickMarkOffset;return Math.max(Math.min(A,n),i)}_calcTranslateXByValue(){return this._slider._isRtl?(1-this.percentage)*(this._slider._cachedWidth-this._tickMarkOffset*2)+this._tickMarkOffset:this.percentage*(this._slider._cachedWidth-this._tickMarkOffset*2)+this._tickMarkOffset}_calcTranslateXByPointerEvent(A){return A.clientX-this._slider._cachedLeft}_updateWidthActive(){}_updateWidthInactive(){this._hostElement.style.padding=`0 ${this._slider._inputPadding}px`,this._hostElement.style.width=`calc(100% + ${this._slider._inputPadding-this._tickMarkOffset*2}px)`,this._hostElement.style.left=`-${this._slider._rippleRadius-this._tickMarkOffset}px`}_updateThumbUIByValue(A){this.translateX=this._clamp(this._calcTranslateXByValue()),this._updateThumbUI(A)}_updateThumbUIByPointerEvent(A,i){this.translateX=this._clamp(this._calcTranslateXByPointerEvent(A)),this._updateThumbUI(i)}_updateThumbUI(A){this._slider._setTransition(!!A?.withAnimation),this._slider._onTranslateXChange(this)}writeValue(A){(this._isControlInitialized||A!==null)&&(this.value=A)}registerOnChange(A){this._onChangeFn=A,this._isControlInitialized=!0}registerOnTouched(A){this._onTouchedFn=A}setDisabledState(A){this.disabled=A}focus(){this._hostElement.focus()}blur(){this._hostElement.blur()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["input","matSliderThumb",""]],hostAttrs:["type","range",1,"mdc-slider__input"],hostVars:1,hostBindings:function(i,n){i&1&&hA("change",function(){return n._onChange()})("input",function(){return n._onInput()})("blur",function(){return n._onBlur()})("focus",function(){return n._onFocus()}),i&2&&Ne("aria-valuetext",n._valuetext())},inputs:{value:[2,"value","value",zi]},outputs:{valueChange:"valueChange",dragStart:"dragStart",dragEnd:"dragEnd"},exportAs:["matSliderThumb"],features:[ht([fHA,{provide:BcA,useExisting:t}])]})}return t})();var hcA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[it,Ps]})}return t})();var Qf=class t{constructor(e,A,i){this.dialogRef=e;this.fb=A;this.data=i;this.evalMetrics=this.data.evalMetrics,this.evalForm=this.fb.group({tool_trajectory_avg_score_threshold:[this.getEvalMetricThresholdFromData("tool_trajectory_avg_score"),[$a.required,$a.min(0),$a.max(1)]],response_match_score_threshold:[this.getEvalMetricThresholdFromData("response_match_score"),[$a.required,$a.min(0),$a.max(1)]]})}evalForm;evalMetrics=[];getEvalMetricThresholdFromData(e){return this.evalMetrics.find(A=>A.metricName===e)?.threshold??0}onStart(){if(this.evalForm.valid){let{tool_trajectory_avg_score_threshold:e,response_match_score_threshold:A}=this.evalForm.value;for(let i of this.evalMetrics)i.metricName==="tool_trajectory_avg_score"?i.threshold=e:i.metricName==="response_match_score"&&(i.threshold=A);this.dialogRef.close(this.evalMetrics)}}onCancel(){this.dialogRef.close(null)}static \u0275fac=function(A){return new(A||t)(PA(Br),PA(Rz),PA(as))};static \u0275cmp=zA({type:t,selectors:[["app-run-eval-config-dialog"]],standalone:!1,decls:26,vars:3,consts:[[1,"dialog-container"],["mat-dialog-title","",1,"dialog-title"],[1,"eval-form",3,"formGroup"],[1,"metric-row"],[1,"metric-name"],[1,"flex-1","pl-4"],["min","0","max","1","step","0.1","thumbLabel","",1,"threshold-slider"],["matSliderThumb","","formControlName","tool_trajectory_avg_score_threshold"],[1,"threshold-value"],["matSliderThumb","","formControlName","response_match_score_threshold"],["align","end",1,"dialog-actions"],["mat-button","",1,"cancel-button",3,"click"],["mat-button","",1,"save-button",3,"click"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2,"EVALUATION METRIC"),F(),S(3,"mat-dialog-content")(4,"form",2)(5,"div",3)(6,"div",4),AA(7,"Tool trajectory avg score: "),F(),S(8,"div",5)(9,"mat-slider",6),JA(10,"input",7),F(),S(11,"span",8),AA(12),F()()(),S(13,"div",3)(14,"div",4),AA(15,"Response match score: "),F(),S(16,"div",5)(17,"mat-slider",6),JA(18,"input",9),F(),S(19,"span",8),AA(20),F()()()()(),S(21,"mat-dialog-actions",10)(22,"button",11),hA("click",function(){return i.onCancel()}),AA(23,"Cancel"),F(),S(24,"button",12),hA("click",function(){return i.onStart()}),AA(25,"Start"),F()()()),A&2&&(G(4),yA("formGroup",i.evalForm),G(8),Et(" ",i.evalForm.controls.tool_trajectory_avg_score_threshold.value," "),G(8),Et(" ",i.evalForm.controls.response_match_score_threshold.value," "))},dependencies:[kz,vc,Ea,pz,Dr,bs,ma,pa,QcA,LG,GI,bM],styles:[".dialog-container[_ngcontent-%COMP%]{border-radius:12px;padding:18px;width:500px;box-shadow:0 8px 16px #0006}.threshold-slider[_ngcontent-%COMP%]{--mdc-slider-active-track-color: #4285f4;--mdc-slider-inactive-track-color: #616161;--mdc-slider-handle-color: #4285f4;--mdc-slider-ripple-color: #4285f4;width:100px}.metric-row[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center}.metric-name[_ngcontent-%COMP%]{width:250px}.threshold-value[_ngcontent-%COMP%]{margin-left:20px}.mdc-slider__thumb--with-indicator[_ngcontent-%COMP%]{background-color:var(--mdc-slider-handle-color, black);border:none!important;box-shadow:none!important}"]})};var Wg=class t{constructor(e){this.http=e}apiServerDomain=vs.getApiServerBaseUrl();createSession(e,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${A}/users/${e}/sessions`;return this.http.post(i,null)}return new ct}listSessions(e,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${A}/users/${e}/sessions`;return this.http.get(i)}return new ct}deleteSession(e,A,i){let n=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}`;return this.http.delete(n)}getSession(e,A,i){let n=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}`;return this.http.get(n)}importSession(e,A,i){if(this.apiServerDomain!=null){let n=this.apiServerDomain+`/apps/${A}/users/${e}/sessions`;return this.http.post(n,{appName:A,userId:e,events:i})}return new ct}static \u0275fac=function(A){return new(A||t)(we(Ds))};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})};var pHA=["determinateSpinner"];function wHA(t,e){if(t&1&&(ar(),S(0,"svg",11),JA(1,"circle",12),F()),t&2){let A=O();Ne("viewBox",A._viewBox()),G(),uo("stroke-dasharray",A._strokeCircumference(),"px")("stroke-dashoffset",A._strokeCircumference()/2,"px")("stroke-width",A._circleStrokeWidth(),"%"),Ne("r",A._circleRadius())}}var DHA=new dA("mat-progress-spinner-default-options",{providedIn:"root",factory:yHA});function yHA(){return{diameter:ucA}}var ucA=100,vHA=10,fcA=(()=>{class t{_elementRef=f(ee);_noopAnimations;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;_defaultColor="primary";_determinateCircle;constructor(){let A=f(Si,{optional:!0}),i=f(DHA);this._noopAnimations=A==="NoopAnimations"&&!!i&&!i._forceAnimations,this.mode=this._elementRef.nativeElement.nodeName.toLowerCase()==="mat-spinner"?"indeterminate":"determinate",i&&(i.color&&(this.color=this._defaultColor=i.color),i.diameter&&(this.diameter=i.diameter),i.strokeWidth&&(this.strokeWidth=i.strokeWidth))}mode;get value(){return this.mode==="determinate"?this._value:0}set value(A){this._value=Math.max(0,Math.min(100,A||0))}_value=0;get diameter(){return this._diameter}set diameter(A){this._diameter=A||0}_diameter=ucA;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(A){this._strokeWidth=A||0}_strokeWidth;_circleRadius(){return(this.diameter-vHA)/2}_viewBox(){let A=this._circleRadius()*2+this.strokeWidth;return`0 0 ${A} ${A}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return this.mode==="determinate"?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,n){if(i&1&&Te(pHA,5),i&2){let o;XA(o=$A())&&(n._determinateCircle=o.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,n){i&2&&(Ne("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow",n.mode==="determinate"?n.value:null)("mode",n.mode),fo("mat-"+n.color),uo("width",n.diameter,"px")("height",n.diameter,"px")("--mdc-circular-progress-size",n.diameter+"px")("--mdc-circular-progress-active-indicator-width",n.diameter+"px"),ue("_mat-animation-noopable",n._noopAnimations)("mdc-circular-progress--indeterminate",n.mode==="indeterminate"))},inputs:{color:"color",mode:"mode",value:[2,"value","value",zi],diameter:[2,"diameter","diameter",zi],strokeWidth:[2,"strokeWidth","strokeWidth",zi]},exportAs:["matProgressSpinner"],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,n){if(i&1&&(_A(0,wHA,2,8,"ng-template",null,0,Fh),S(2,"div",2,1),ar(),S(4,"svg",3),JA(5,"circle",4),F()(),SI(),S(6,"div",5)(7,"div",6)(8,"div",7),_r(9,8),F(),S(10,"div",9),_r(11,8),F(),S(12,"div",10),_r(13,8),F()()()),i&2){let o=cr(1);G(4),Ne("viewBox",n._viewBox()),G(),uo("stroke-dasharray",n._strokeCircumference(),"px")("stroke-dashoffset",n._strokeDashOffset(),"px")("stroke-width",n._circleStrokeWidth(),"%"),Ne("r",n._circleRadius()),G(4),yA("ngTemplateOutlet",o),G(2),yA("ngTemplateOutlet",o),G(2),yA("ngTemplateOutlet",o)}},dependencies:[Yh],styles:[".mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}"],encapsulation:2,changeDetection:0})}return t})();var mcA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[it]})}return t})();function MHA(t,e){if(t&1){let A=be();S(0,"div",1)(1,"div"),AA(2,"All eval sets"),F(),S(3,"mat-icon",2),hA("click",function(){RA(A);let n=O();return xA(n.openNewEvalSetDialog())}),AA(4,"add"),F()()}}function kHA(t,e){if(t&1){let A=be();S(0,"div")(1,"div",3)(2,"div",4),AA(3," Create New Evaluation Set "),F(),S(4,"div",5),AA(5," An evaluation set is a curated collection of evaluation cases, where each case includes input-output examples for assessing agent performance. "),F(),S(6,"div",6),hA("click",function(){RA(A);let n=O();return xA(n.openNewEvalSetDialog())}),AA(7," Create Evaluation Set "),F()()()}}function SHA(t,e){if(t&1){let A=be();S(0,"div",8),hA("click",function(){let n=RA(A).$implicit,o=O(2);return xA(o.selectEvalSet(n))}),S(1,"div",9)(2,"span",10),AA(3,"folder"),F(),S(4,"div",11),AA(5),F()(),S(6,"div")(7,"mat-icon",12),AA(8,"chevron_right"),F()()()}if(t&2){let A=e.$implicit;G(5),Gt(A)}}function RHA(t,e){if(t&1&&(S(0,"div"),Dn(1,SHA,9,1,"div",7,to),F()),t&2){let A=O();G(),yn(A.evalsets)}}function xHA(t,e){if(t&1){let A=be();S(0,"th",29)(1,"mat-checkbox",30),hA("change",function(n){RA(A);let o=O(4);return xA(n?o.toggleAllRows():null)}),F()()}if(t&2){let A=O(4);G(),yA("checked",A.selection.hasValue()&&A.isAllSelected())("indeterminate",A.selection.hasValue()&&!A.isAllSelected())}}function LHA(t,e){if(t&1){let A=be();S(0,"td",31)(1,"mat-checkbox",32),hA("click",function(n){return RA(A),xA(n.stopPropagation())})("change",function(n){let o=RA(A).$implicit,r=O(4);return xA(n?r.selection.toggle(o):null)}),F()()}if(t&2){let A=e.$implicit,i=O(4);G(),yA("checked",i.selection.isSelected(A))}}function FHA(t,e){t&1&&(S(0,"th",29),AA(1," Case ID "),F())}function NHA(t,e){if(t&1){let A=be();S(0,"td",33),hA("click",function(){let n=RA(A).$implicit,o=O(4);return xA(o.getEvalCase(n))}),AA(1),F()}if(t&2){let A,i=e.$implicit,n=O(4);ue("selected-eval-case",i===((A=n.selectedEvalCase())==null?null:A.evalId)),G(),Et(" ",i," ")}}function _HA(t,e){t&1&&(S(0,"th",29),AA(1," Result "),F())}function GHA(t,e){if(t&1){let A=be();S(0,"button",35),hA("click",function(){RA(A);let n=O().$implicit,o=O(4);return xA(o.getSession(n))}),S(1,"span",36),AA(2),F(),S(3,"div",37),AA(4),F()()}if(t&2){let A=O().$implicit,i=O(4);yA("ngClass",i.getEvalResultForCase(A)==1?"result-btn pass":"result-btn fail"),G(2),Et(" ",i.getEvalResultForCase(A)==1?"check":"close"," "),G(2),Et("",i.getEvalResultForCase(A)==1?"Pass":"Fail"," ")}}function UHA(t,e){if(t&1&&(S(0,"td",31),_A(1,GHA,5,3,"button",34),F()),t&2){let A=e.$implicit,i=O(4);G(),GA(i.getEvalResultForCase(A)?1:-1)}}function KHA(t,e){t&1&&JA(0,"tr",38)}function YHA(t,e){t&1&&JA(0,"tr",39)}function JHA(t,e){if(t&1){let A=be();S(0,"div")(1,"div",16)(2,"button",17),hA("click",function(){RA(A);let n=O(3);return xA(n.openEvalConfigDialog())}),AA(3,"Run Evaluation"),F(),S(4,"mat-icon",18),hA("click",function(){RA(A);let n=O(3);return xA(n.toggleEvalHistoryButton())}),AA(5,"history"),F()(),S(6,"div",19)(7,"table",20),y2(8,21),_A(9,xHA,2,2,"th",22)(10,LHA,2,1,"td",23),v2(),y2(11,24),_A(12,FHA,2,0,"th",22)(13,NHA,2,3,"td",25),v2(),y2(14,26),_A(15,_HA,2,0,"th",22)(16,UHA,2,1,"td",23),v2(),_A(17,KHA,1,0,"tr",27)(18,YHA,1,0,"tr",28),F()()()}if(t&2){let A=O(3);G(7),yA("dataSource",A.dataSource),G(10),yA("matHeaderRowDef",A.displayedColumns),G(),yA("matRowDefColumns",A.displayedColumns)}}function THA(t,e){if(t&1&&(S(0,"div")(1,"span",50),AA(2,"|"),F(),S(3,"span",51),AA(4),F()()),t&2){let A=O().$implicit,i=O(4);G(4),Et("",i.getFailCountForCurrentResult(A.evaluationResults.evaluationResults)," Failed")}}function HHA(t,e){if(t&1&&(S(0,"span",52),AA(1),F()),t&2){let A=e.$implicit;G(),Ob(" ",A.metricName,": ",A.threshold," ")}}function zHA(t,e){if(t&1&&(S(0,"div",46),Dn(1,HHA,2,2,"span",52,to),F()),t&2){let A=O().$implicit,i=O(4);G(),yn(i.getEvalMetrics(A))}}function OHA(t,e){if(t&1){let A=be();S(0,"div")(1,"div",53)(2,"span"),AA(3),F(),S(4,"button",54),hA("click",function(){let n=RA(A).$implicit,o=O(6);return xA(o.getHistorySession(n))}),S(5,"span",36),AA(6),F(),S(7,"div",37),AA(8),F()()()()}if(t&2){let A=e.$implicit;G(3),Et(" ",A.evalId," "),G(),yA("ngClass",A.finalEvalStatus==1?"result-btn pass":"result-btn fail"),G(2),Et(" ",A.finalEvalStatus==1?"check":"close"," "),G(2),Et("",A.finalEvalStatus==1?"PASS":"FAIL"," ")}}function PHA(t,e){if(t&1&&(S(0,"div",49),Dn(1,OHA,9,4,"div",null,to),F()),t&2){let A=O().$implicit,i=O(4);G(),yn(i.generateHistoryEvaluationDatasource(A.timestamp))}}function jHA(t,e){if(t&1){let A=be();S(0,"div")(1,"div",40)(2,"div",41)(3,"div",42)(4,"div",43),AA(5),F(),S(6,"div",44)(7,"span",45),AA(8),F(),_A(9,THA,5,1,"div"),F(),_A(10,zHA,3,0,"div",46),F(),S(11,"div",47)(12,"mat-icon",48),hA("click",function(){let n=RA(A).$implicit,o=O(4);return xA(o.toggleHistoryStatusCard(n.timestamp))}),AA(13),F()()(),_A(14,PHA,3,0,"div",49),F()()}if(t&2){let A=e.$implicit,i=O(4);G(5),Gt(i.formatTimestamp(A.timestamp)),G(3),Et("",i.getPassCountForCurrentResult(A.evaluationResults.evaluationResults)," Passed"),G(),GA(i.getFailCountForCurrentResult(A.evaluationResults.evaluationResults)>0?9:-1),G(),GA(i.getEvalMetrics(A)?10:-1),G(3),Gt(i.getEvaluationStatusCardActionButtonIcon(A.timestamp)),G(),GA(i.isEvaluationStatusCardToggled(A.timestamp)?14:-1)}}function qHA(t,e){if(t&1&&(S(0,"div"),Dn(1,jHA,15,6,"div",null,to),F()),t&2){let A=O(3);G(),yn(A.getEvalHistoryOfCurrentSetSorted())}}function VHA(t,e){if(t&1&&(S(0,"div"),_A(1,JHA,19,3,"div")(2,qHA,3,0,"div"),F()),t&2){let A=O(2);G(),GA(A.showEvalHistory()?-1:1),G(),GA(A.showEvalHistory()?2:-1)}}function ZHA(t,e){if(t&1){let A=be();S(0,"button",55),hA("click",function(){RA(A);let n=O(2);return xA(n.openNewEvalCaseDialog())}),S(1,"div",56)(2,"mat-icon"),AA(3,"add"),F(),S(4,"div",57),AA(5),F()()()}if(t&2){let A=O(2);G(5),Et(" Add current session to ",A.selectedEvalSet," ")}}function WHA(t,e){t&1&&(S(0,"div"),JA(1,"mat-spinner",58),F()),t&2&&(G(),yA("diameter",28)("strokeWidth",3))}function XHA(t,e){if(t&1){let A=be();S(0,"div")(1,"div",9)(2,"mat-icon",13),hA("click",function(){RA(A);let n=O();return xA(n.clearSelectedEvalSet())}),AA(3,"chevron_left"),F(),S(4,"div",14),hA("click",function(){RA(A);let n=O();return xA(n.clearSelectedEvalSet())}),AA(5),F()(),_A(6,VHA,3,2,"div")(7,ZHA,6,1,"button",15)(8,WHA,2,2,"div"),F()}if(t&2){let A=O();G(5),Et(" ",A.selectedEvalSet," "),G(),GA(A.evalCases.length>0&&!A.evalRunning()?6:-1),G(),GA(!A.evalRunning()&&!A.showEvalHistory()?7:-1),G(),GA(A.evalRunning()?8:-1)}}var id=class t{constructor(e,A){this.evalService=e;this.sessionService=A;this.evalCasesSubject.subscribe(i=>{!this.selectedEvalCase()&&this.deletedEvalCaseIndex>=0&&i.length>0?(this.selectNewEvalCase(i),this.deletedEvalCaseIndex=-1):i.length===0&&this.shouldReturnToSession.emit(!0)})}checkboxes;appName="";userId="";sessionId="";sessionSelected=new WA;shouldShowTab=new WA;evalNotInstalledMsg=new WA;evalCaseSelected=new WA;evalSetIdSelected=new WA;shouldReturnToSession=new WA;evalCasesSubject=new Mi([]);changeDetectorRef=f(It);flagService=f(KB);displayedColumns=["select","evalId","finalEvalStatus"];evalsets=[];selectedEvalSet="";evalCases=[];selectedEvalCase=Jo(null);deletedEvalCaseIndex=-1;dataSource=new Cf(this.evalCases);selection=new K2(!0,[]);showEvalHistory=Jo(!1);evalRunning=Jo(!1);evalMetrics=acA;currentEvalResultBySet=new Map;dialog=f(qs);appEvaluationResults={};ngOnChanges(e){e.appName&&(this.selectedEvalSet="",this.evalCases=[],this.getEvalSet(),this.getEvaluationResult())}ngOnInit(){}selectNewEvalCase(e){let A=this.deletedEvalCaseIndex;this.deletedEvalCaseIndex===e.length&&(A=0),this.getEvalCase(e[A])}getEvalSet(){this.appName!=""&&this.evalService.getEvalSets(this.appName).pipe(mr(e=>e.status===404&&e.statusText==="Not Found"?(this.shouldShowTab.emit(!1),Me(null)):Me([]))).subscribe(e=>{e!==null&&(this.shouldShowTab.emit(!0),this.evalsets=e)})}openNewEvalSetDialog(){this.dialog.open(Ef,{width:"600px",data:{appName:this.appName}}).afterClosed().subscribe(A=>{A&&this.getEvalSet()})}openNewEvalCaseDialog(){this.dialog.open(Bf,{width:"600px",data:{appName:this.appName,userId:this.userId,sessionId:this.sessionId,evalSetId:this.selectedEvalSet}}).afterClosed().subscribe(A=>{A&&this.listEvalCases()})}listEvalCases(){this.evalCases=[],this.evalService.listEvalCases(this.appName,this.selectedEvalSet).subscribe(e=>{this.evalCases=e,this.dataSource=new Cf(this.evalCases),this.evalCasesSubject.next(this.evalCases),this.changeDetectorRef.detectChanges()})}runEval(){if(this.evalRunning.set(!0),this.selection.selected.length==0){alert("No case selected!"),this.evalRunning.set(!1);return}this.evalService.runEval(this.appName,this.selectedEvalSet,this.selection.selected,this.evalMetrics).pipe(mr(e=>(e.error?.detail?.includes("not installed")&&this.evalNotInstalledMsg.emit(e.error.detail),Me([])))).subscribe(e=>{this.evalRunning.set(!1),this.currentEvalResultBySet.set(this.selectedEvalSet,e),this.getEvaluationResult()})}selectEvalSet(e){this.selectedEvalSet=e,this.listEvalCases()}clearSelectedEvalSet(){if(this.showEvalHistory()){this.toggleEvalHistoryButton();return}this.selectedEvalSet=""}isAllSelected(){let e=this.selection.selected.length,A=this.dataSource.data.length;return e===A}toggleAllRows(){if(this.isAllSelected()){this.selection.clear();return}this.selection.select(...this.dataSource.data)}getEvalResultForCase(e){let A=this.currentEvalResultBySet.get(this.selectedEvalSet)?.filter(i=>i.evalId==e);if(!(!A||A.length==0))return A[0].finalEvalStatus}formatToolUses(e){let A=[];for(let i of e)A.push({name:i.name,args:i.args});return A}addEvalCaseResultToEvents(e,A){let i=A.evalMetricResultPerInvocation,n=-1;if(i)for(let o=0;on.evalId==e)[0],i=A.sessionId;this.sessionService.getSession(this.userId,this.appName,i).subscribe(n=>{this.addEvalCaseResultToEvents(n,A);let o=this.fromApiResultToSession(n);this.sessionSelected.emit(o)})}toggleEvalHistoryButton(){this.showEvalHistory.set(!this.showEvalHistory())}getEvalHistoryOfCurrentSet(){return this.appEvaluationResults[this.appName][this.selectedEvalSet]}getEvalHistoryOfCurrentSetSorted(){let e=this.getEvalHistoryOfCurrentSet();return Object.keys(e).sort((n,o)=>o.localeCompare(n)).map(n=>({timestamp:n,evaluationResults:e[n]}))}getPassCountForCurrentResult(e){return e.filter(A=>A.finalEvalStatus==1).length}getFailCountForCurrentResult(e){return e.filter(A=>A.finalEvalStatus==2).length}formatTimestamp(e){let A=Number(e);if(isNaN(A))return"Invalid timestamp provided";let i=new Date(A*1e3);if(isNaN(i.getTime()))return"Invalid date created from timestamp";let n={month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0};return new Intl.DateTimeFormat("en-US",n).format(i)}getEvaluationStatusCardActionButtonIcon(e){return this.getEvalHistoryOfCurrentSet()[e].isToggled?"keyboard_arrow_up":"keyboard_arrow_down"}toggleHistoryStatusCard(e){this.getEvalHistoryOfCurrentSet()[e].isToggled=!this.getEvalHistoryOfCurrentSet()[e].isToggled}isEvaluationStatusCardToggled(e){return this.getEvalHistoryOfCurrentSet()[e].isToggled}generateHistoryEvaluationDatasource(e){return this.getEvalHistoryOfCurrentSet()[e].evaluationResults}getHistorySession(e){this.addEvalCaseResultToEvents(e.sessionDetails,e);let A=this.fromApiResultToSession(e.sessionDetails);this.sessionSelected.emit(A)}getEvalCase(e){this.evalService.getEvalCase(this.appName,this.selectedEvalSet,e).subscribe(A=>{this.selectedEvalCase.set(A),this.evalCaseSelected.emit(A),this.evalSetIdSelected.emit(this.selectedEvalSet)})}resetEvalCase(){this.selectedEvalCase.set(null)}resetEvalResults(){this.currentEvalResultBySet.clear()}deleteEvalCase(e){this.evalService.deleteEvalCase(this.appName,this.selectedEvalSet,e).subscribe(A=>{this.deletedEvalCaseIndex=this.evalCases.indexOf(e),this.selectedEvalCase.set(null),this.listEvalCases()})}getEvaluationResult(){this.evalService.listEvalResults(this.appName).pipe(mr(e=>e.status===404&&e.statusText==="Not Found"?(this.shouldShowTab.emit(!1),Me(null)):Me([]))).subscribe(e=>{for(let A of e)this.evalService.getEvalResult(this.appName,A).subscribe(i=>{this.appEvaluationResults[this.appName]||(this.appEvaluationResults[this.appName]={}),this.appEvaluationResults[this.appName][i.evalSetId]||(this.appEvaluationResults[this.appName][i.evalSetId]={});let n=i.creationTimestamp;this.appEvaluationResults[this.appName][i.evalSetId][n]||(this.appEvaluationResults[this.appName][i.evalSetId][n]={isToggled:!1,evaluationResults:[]});let o={isToggled:!1,evaluationResults:i.evalCaseResults.map(r=>({setId:r.id,evalId:r.evalId,finalEvalStatus:r.finalEvalStatus,evalMetricResults:r.evalMetricResults,evalMetricResultPerInvocation:r.evalMetricResultPerInvocation,sessionId:r.sessionId,sessionDetails:r.sessionDetails,overallEvalMetricResults:r.overallEvalMetricResults??[]}))};this.appEvaluationResults[this.appName][i.evalSetId][n]=o})})}openEvalConfigDialog(){if(this.selection.selected.length==0){alert("No case selected!");return}this.dialog.open(Qf,{maxWidth:"90vw",maxHeight:"90vh",data:{evalMetrics:this.evalMetrics}}).afterClosed().subscribe(A=>{A&&(this.evalMetrics=A,this.runEval())})}getEvalMetrics(e){if(!e||!e.evaluationResults||!e.evaluationResults.evaluationResults)return this.evalMetrics;let A=e.evaluationResults.evaluationResults;return A.length===0?this.evalMetrics:typeof A[0].overallEvalMetricResults>"u"||!A[0].overallEvalMetricResults||A[0].overallEvalMetricResults.length===0?this.evalMetrics:A[0].overallEvalMetricResults.map(n=>({metricName:n.metricName,threshold:n.threshold}))}static \u0275fac=function(A){return new(A||t)(PA(Vc),PA(Wg))};static \u0275cmp=zA({type:t,selectors:[["app-eval-tab"]],viewQuery:function(A,i){if(A&1&&Te(bQ,5),A&2){let n;XA(n=$A())&&(i.checkboxes=n)}},inputs:{appName:"appName",userId:"userId",sessionId:"sessionId"},outputs:{sessionSelected:"sessionSelected",shouldShowTab:"shouldShowTab",evalNotInstalledMsg:"evalNotInstalledMsg",evalCaseSelected:"evalCaseSelected",evalSetIdSelected:"evalSetIdSelected",shouldReturnToSession:"shouldReturnToSession"},standalone:!1,features:[ti],decls:5,vars:4,consts:[[1,"eval-container"],[1,"eval-set-actions"],["matTooltip","Create new evaluation set",2,"cursor","pointer",3,"click"],[1,"empty-eval-info"],[1,"info-title"],[1,"info-detail"],[1,"info-create",3,"click"],[1,"eval-set-row"],[1,"eval-set-row",3,"click"],[2,"display","flex"],[1,"material-symbols-outlined",2,"margin-right","10px","padding-top","16px"],[2,"font-family","Roboto","font-size","14px","padding","16px","padding-top","20px"],[2,"padding-top","20px","color","#9AA0A6"],[2,"color","white","cursor","pointer",3,"click"],[2,"color","#9AA0A6","padding-top","2px","cursor","pointer",3,"click"],[1,"save-session-btn"],[1,"evaluation-tab-header"],[1,"run-eval-btn",3,"click"],["matTooltip","View eval run history",1,"evaluation-history-icon",3,"click"],[1,"mat-table-container",2,"margin-top","16px"],["mat-table","",3,"dataSource"],["matColumnDef","select"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","evalId"],["mat-cell","","class","eval-case-id",3,"selected-eval-case","click",4,"matCellDef"],["matColumnDef","finalEvalStatus"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],[3,"change","checked","indeterminate"],["mat-cell",""],[3,"click","change","checked"],["mat-cell","",1,"eval-case-id",3,"click"],["matTooltip","View eval run result",3,"ngClass"],["matTooltip","View eval run result",3,"click","ngClass"],[1,"material-symbols-outlined"],[2,"padding-top","4px"],["mat-header-row",""],["mat-row",""],[1,"status-card"],[1,"status-card__overview"],[1,"status-card__info"],[1,"status-card__timestamp"],[1,"status-card__summary"],[1,"status-card__passed"],[1,"status-card__metrics"],[1,"status-card__action"],[3,"click"],[1,"status-card__history-cases"],[1,"status-card__separator"],[1,"status-card__failed"],[1,"status-card__metric"],[1,"status-card__history-case"],[3,"click","ngClass"],[1,"save-session-btn",3,"click"],[1,"save-session-btn-detail"],[1,"save-session-btn-text"],[1,"eval-spinner",3,"diameter","strokeWidth"]],template:function(A,i){A&1&&(S(0,"div",0),_A(1,MHA,5,0,"div",1)(2,kHA,8,0,"div")(3,RHA,3,0,"div")(4,XHA,9,4,"div"),F()),A&2&&(G(),GA(i.selectedEvalSet==""?1:-1),G(),GA(i.evalsets.length==0?2:-1),G(),GA(i.evalsets.length>0&&i.selectedEvalSet==""?3:-1),G(),GA(i.selectedEvalSet!=""?4:-1))},dependencies:[Xa,P2,bQ,WaA,$aA,icA,AcA,XaA,ncA,ecA,tcA,ocA,rcA,_B,fcA],styles:[".eval-container[_ngcontent-%COMP%]{margin-top:20px;padding-left:25px;padding-right:25px}.eval-case-id[_ngcontent-%COMP%]{cursor:pointer}.eval-set-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between;color:#9aa0a6;font-style:normal;font-weight:700;font-size:14px}.empty-eval-info[_ngcontent-%COMP%]{margin-top:12px;background-color:#202124;border-radius:8px;box-shadow:0 2px 6px 2px #00000026,0 1px 2px #0000004d}.info-title[_ngcontent-%COMP%]{color:#e8eaed;font-family:Roboto;font-size:14px;font-weight:500;padding-top:13px;padding-right:16px;padding-left:16px}.info-detail[_ngcontent-%COMP%]{color:#e8eaed;font-family:Roboto;font-size:14px;font-weight:400;padding-top:13px;padding-right:16px;padding-left:16px;letter-spacing:.2px}.info-create[_ngcontent-%COMP%]{color:var(--Blue-300, #8ab4f8);font-size:14px;font-style:normal;font-weight:500;padding-right:16px;padding-left:16px;margin-top:19px;padding-bottom:16px;cursor:pointer}.eval-set-row[_ngcontent-%COMP%]{display:flex;justify-content:space-between;cursor:pointer}.selected-eval-case[_ngcontent-%COMP%]{font-weight:900;color:#8ab4f8}.save-session-btn[_ngcontent-%COMP%]{width:100%;background:linear-gradient(0deg,#8ab4f83d 0% 100%),#202124;border:none;border-radius:4px;margin-top:12px;cursor:pointer}.save-session-btn-detail[_ngcontent-%COMP%]{display:flex;padding:8px 16px 8px 12px;justify-content:center}.save-session-btn-text[_ngcontent-%COMP%]{padding-top:2px;color:var(--Blue-100, #d2e3fc);font-family:Google Sans;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.run-eval-btn[_ngcontent-%COMP%]{border-radius:4px;border:1px solid var(--Grey-700, #5f6368);background-color:transparent;padding:8px 24px;margin-top:16px;color:#8ab4f8;cursor:pointer}.run-eval-btn[_ngcontent-%COMP%]:hover{background-color:#202124}.result-btn[_ngcontent-%COMP%]{display:flex;background-color:transparent;border-radius:4px;border:1px solid var(--Grey-700, #5f6368);margin-top:4px;cursor:pointer}.result-btn[_ngcontent-%COMP%]:hover{background-color:#202124}.result-btn.pass[_ngcontent-%COMP%]{color:#44c265}.result-btn.fail[_ngcontent-%COMP%]{color:#ff8983}.evaluation-tab-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%}.evaluation-history-icon[_ngcontent-%COMP%]{cursor:pointer;margin-top:4px}.status-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;border-radius:8px;background-color:#2d2d2d;padding:12px 16px;margin-top:12px}.status-card__overview[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%}.status-card__info[_ngcontent-%COMP%]{display:flex;flex-direction:column}.status-card__timestamp[_ngcontent-%COMP%]{font-size:.9em;color:#e0e0e0;margin-bottom:5px}.status-card__summary[_ngcontent-%COMP%]{display:flex;align-items:center;font-size:.95em;font-weight:500}.status-card__metrics[_ngcontent-%COMP%]{display:flex;align-items:center;font-size:.75em;font-weight:300;margin-top:3px}.status-card__metric[_ngcontent-%COMP%]{width:180px;color:#bbb}.status-card__failed[_ngcontent-%COMP%]{color:#ff6b6b}.status-card__separator[_ngcontent-%COMP%]{color:#666;margin:0 8px}.status-card__passed[_ngcontent-%COMP%]{color:#63e6be}.status-card__action[_ngcontent-%COMP%]{display:flex;align-items:center}.status-card__action[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:#bdbdbd;cursor:pointer;transition:transform .2s ease-in-out}.status-card__action[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]:hover{opacity:.8}.status-card__action[_ngcontent-%COMP%] .status-card__icon[_ngcontent-%COMP%]{color:#bdbdbd;font-size:1.2em;cursor:pointer}.status-card__action[_ngcontent-%COMP%] .status-card__icon[_ngcontent-%COMP%]:hover{opacity:.8}.status-card__history-cases[_ngcontent-%COMP%]{display:flex;flex-direction:column;margin-top:3px;justify-content:flex-start;width:100%}.status-card__history-case[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:15px}.eval-spinner[_ngcontent-%COMP%]{margin-top:12px}"],changeDetection:0})};function AzA(t,e){t&1&&JA(0,"div",6)}function ezA(t,e){if(t&1&&(S(0,"div",3)(1,"div",5),Dn(2,AzA,1,0,"div",6,Xd),F(),S(4,"span",7),AA(5),F(),S(6,"div",8),AA(7),S(8,"span",9),AA(9),F()(),S(10,"div",10)(11,"div",11),AA(12),F()()()),t&2){let A=e.$implicit,i=O();G(2),yn(i.getArray(A.level)),G(3),Et(" ",i.getSpanIcon(A.span.name)," "),G(),uo("width",400-A.level*20,"px"),G(),Et(" ",A.span.name," "),G(2),Et(" (",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms) "),G(2),uo("left",i.getRelativeStart(A.span),"%")("width",i.getRelativeWidth(A.span),"%"),G(),Et(" ",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms ")}}var hf=class t{constructor(e,A){this.dialogRef=e;this.data=A}tree=[];baseStartTimeMs=0;totalDurationMs=1;flatTree=[];traceLabelIconMap=new Map([["Invocation","start"],["agent_run","directions_run"],["tool","build"],["call_llm","chat"]]);ngOnInit(){this.tree=this.buildSpanTree(this.data.spans),this.flatTree=this.flattenTree(this.tree);let e=this.getGlobalTimes(this.data.spans);this.baseStartTimeMs=e.start,this.totalDurationMs=e.duration}buildSpanTree(e){let A=e.map(o=>rA({},o)),i=new Map,n=[];return A.forEach(o=>i.set(o.span_id,o)),A.forEach(o=>{if(o.parent_span_id&&i.has(o.parent_span_id)){let r=i.get(o.parent_span_id);r.children=r.children||[],r.children.push(o)}else n.push(o)}),n}getGlobalTimes(e){let A=Math.min(...e.map(n=>this.toMs(n.start_time))),i=Math.max(...e.map(n=>this.toMs(n.end_time)));return{start:A,duration:i-A}}toMs(e){return e/1e6}getRelativeStart(e){return(this.toMs(e.start_time)-this.baseStartTimeMs)/this.totalDurationMs*100}getRelativeWidth(e){return(this.toMs(e.end_time)-this.toMs(e.start_time))/this.totalDurationMs*100}flattenTree(e,A=0){return e.flatMap(n=>[{span:n,level:A},...n.children?this.flattenTree(n.children,A+1):[]])}getSpanIcon(e){for(let[A,i]of this.traceLabelIconMap.entries())if(e.startsWith(A))return i;return"start"}getArray(e){return Array.from({length:e})}static \u0275fac=function(A){return new(A||t)(PA(Br),PA(as))};static \u0275cmp=zA({type:t,selectors:[["app-trace-chart"]],standalone:!1,decls:9,vars:1,consts:[["mat-dialog-title",""],[2,"margin-top","8px"],[1,"trace-container"],[1,"trace-row"],["mat-button","","mat-dialog-close",""],[1,"trace-indent"],[1,"indent-connector"],[1,"material-symbols-outlined",2,"margin-right","8px"],[1,"trace-label"],[1,"trace-duration"],[1,"trace-bar-container"],[1,"trace-bar"]],template:function(A,i){A&1&&(S(0,"h2",0),AA(1),F(),S(2,"mat-dialog-content",1)(3,"div",2),Dn(4,ezA,13,10,"div",3,to),F()(),S(6,"mat-dialog-actions")(7,"button",4),AA(8,"Close"),F()()),A&2&&(G(),Et("Invocation ",i.data.invocId,""),G(3),yn(i.flatTree))},dependencies:[Dr,bs,ma,pa,hg],styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-label[_ngcontent-%COMP%]{width:400px;color:#e3e3e3;text-overflow:ellipsis;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px}.trace-bar-container[_ngcontent-%COMP%]{width:50vw;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:#2f4d65;border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:#8dabbf;font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:#888;font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:#ccc}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:#ccc}"]})};var pcA=(()=>{class t{get vertical(){return this._vertical}set vertical(A){this._vertical=Xo(A)}_vertical=!1;get inset(){return this._inset}set inset(A){this._inset=Xo(A)}_inset=!1;static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,n){i&2&&(Ne("aria-orientation",n.vertical?"vertical":"horizontal"),ue("mat-divider-vertical",n.vertical)("mat-divider-horizontal",!n.vertical)("mat-divider-inset",n.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(i,n){},styles:[".mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color, var(--mat-sys-outline));border-top-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color, var(--mat-sys-outline));border-right-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}return t})(),wcA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[it,it]})}return t})();var izA=["*"],nzA='.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item{display:flex;position:relative;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer;padding-left:16px;padding-right:16px;background-color:var(--mdc-list-list-item-container-color, transparent);border-radius:var(--mdc-list-list-item-container-shape, var(--mat-sys-corner-none))}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item:focus{outline:0}.mdc-list-item.mdc-list-item--disabled{cursor:auto}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mdc-list-list-item-one-line-container-height, 48px)}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mdc-list-list-item-two-line-container-height, 64px)}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height, 88px)}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--selected::before,.mdc-list-item.mdc-list-item--selected:focus::before,.mdc-list-item:not(.mdc-list-item--selected):focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;content:"";pointer-events:none}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color, var(--mat-sys-on-surface-variant));width:var(--mdc-list-list-item-leading-icon-size, 24px);height:var(--mdc-list-list-item-leading-icon-size, 24px);margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mdc-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size, 40px);height:var(--mdc-list-list-item-leading-avatar-size, 40px);margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item--with-leading-avatar .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font, var(--mat-sys-label-small-font));line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height, var(--mat-sys-label-small-line-height));font-size:var(--mdc-list-list-item-trailing-supporting-text-size, var(--mat-sys-label-small-size));font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight, var(--mat-sys-label-small-weight));letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking, var(--mat-sys-label-small-tracking))}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color, var(--mat-sys-on-surface-variant));width:var(--mdc-list-list-item-trailing-icon-size, 24px);height:var(--mdc-list-list-item-trailing-icon-size, 24px)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color, var(--mat-sys-on-surface-variant))}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color, var(--mat-sys-primary))}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:var(--mdc-list-list-item-label-text-color, var(--mat-sys-on-surface));font-family:var(--mdc-list-list-item-label-text-font, var(--mat-sys-body-large-font));line-height:var(--mdc-list-list-item-label-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mdc-list-list-item-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-list-list-item-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-list-list-item-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;color:var(--mdc-list-list-item-supporting-text-color, var(--mat-sys-on-surface-variant));font-family:var(--mdc-list-list-item-supporting-text-font, var(--mat-sys-body-medium-font));line-height:var(--mdc-list-list-item-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mdc-list-list-item-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mdc-list-list-item-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mdc-list-list-item-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:16px}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:16px;padding-right:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-trailing-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:0;padding-right:0}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-webkit-user-select:none;user-select:none;margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;line-height:normal;align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-left:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-right:0}.mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-group__subheader{margin:.75rem 16px}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text{opacity:var(--mdc-list-list-item-disabled-label-text-opacity, 0.3)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-disabled-leading-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-leading-icon-opacity, 0.38)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-disabled-trailing-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity, 0.38)}.mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing,[dir=rtl] .mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing{padding-left:0;padding-right:0}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mdc-list-list-item-disabled-label-text-opacity, 0.3)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mdc-list-list-item-leading-avatar-shape, var(--mat-sys-corner-full));background-color:var(--mdc-list-list-item-leading-avatar-color, var(--mat-sys-primary-container))}.mat-mdc-list-item-icon{font-size:var(--mdc-list-list-item-leading-icon-size, 24px)}@media(forced-colors: active){a.mdc-list-item--activated::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:"";opacity:0;pointer-events:none;border-radius:inherit}.mat-mdc-list-item>.mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-focus-indicator::before{content:""}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:start}mat-action-list button::-moz-focus-inner{border:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-inline-start:var(--mat-list-list-item-leading-icon-start-space, 16px);margin-inline-end:var(--mat-list-list-item-leading-icon-end-space, 16px)}.mat-mdc-nav-list .mat-mdc-list-item{border-radius:var(--mat-list-active-indicator-shape, var(--mat-sys-corner-full));--mat-focus-indicator-border-radius:var(--mat-list-active-indicator-shape, var(--mat-sys-corner-full))}.mat-mdc-nav-list .mat-mdc-list-item.mdc-list-item--activated{background-color:var(--mat-list-active-indicator-color, var(--mat-sys-secondary-container))}',ozA=["unscopedContent"],rzA=["text"],szA=[[["","matListItemAvatar",""],["","matListItemIcon",""]],[["","matListItemTitle",""]],[["","matListItemLine",""]],"*",[["","matListItemMeta",""]],[["mat-divider"]]],azA=["[matListItemAvatar],[matListItemIcon]","[matListItemTitle]","[matListItemLine]","*","[matListItemMeta]","mat-divider"];var czA=new dA("ListOption"),lzA=(()=>{class t{_elementRef=f(ee);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","matListItemTitle",""]],hostAttrs:[1,"mat-mdc-list-item-title","mdc-list-item__primary-text"]})}return t})(),gzA=(()=>{class t{_elementRef=f(ee);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","matListItemLine",""]],hostAttrs:[1,"mat-mdc-list-item-line","mdc-list-item__secondary-text"]})}return t})(),IzA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","matListItemMeta",""]],hostAttrs:[1,"mat-mdc-list-item-meta","mdc-list-item__end"]})}return t})(),DcA=(()=>{class t{_listOption=f(czA,{optional:!0});constructor(){}_isAlignedAtStart(){return!this._listOption||this._listOption?._getTogglePosition()==="after"}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,hostVars:4,hostBindings:function(i,n){i&2&&ue("mdc-list-item__start",n._isAlignedAtStart())("mdc-list-item__end",!n._isAlignedAtStart())}})}return t})(),CzA=(()=>{class t extends DcA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275dir=jA({type:t,selectors:[["","matListItemAvatar",""]],hostAttrs:[1,"mat-mdc-list-item-avatar"],features:[lt]})}return t})(),dzA=(()=>{class t extends DcA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275dir=jA({type:t,selectors:[["","matListItemIcon",""]],hostAttrs:[1,"mat-mdc-list-item-icon"],features:[lt]})}return t})(),BzA=new dA("MAT_LIST_CONFIG"),NG=(()=>{class t{_isNonInteractive=!0;get disableRipple(){return this._disableRipple}set disableRipple(A){this._disableRipple=Xo(A)}_disableRipple=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=Xo(A)}_disabled=!1;_defaultOptions=f(BzA,{optional:!0});static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,hostVars:1,hostBindings:function(i,n){i&2&&Ne("aria-disabled",n.disabled)},inputs:{disableRipple:"disableRipple",disabled:"disabled"}})}return t})(),EzA=(()=>{class t{_elementRef=f(ee);_ngZone=f(Qe);_listBase=f(NG,{optional:!0});_platform=f(Ii);_hostElement;_isButtonElement;_noopAnimations;_avatars;_icons;set lines(A){this._explicitLines=zs(A,null),this._updateItemLines(!1)}_explicitLines=null;get disableRipple(){return this.disabled||this._disableRipple||this._noopAnimations||!!this._listBase?.disableRipple}set disableRipple(A){this._disableRipple=Xo(A)}_disableRipple=!1;get disabled(){return this._disabled||!!this._listBase?.disabled}set disabled(A){this._disabled=Xo(A)}_disabled=!1;_subscriptions=new Kt;_rippleRenderer=null;_hasUnscopedTextContent=!1;rippleConfig;get rippleDisabled(){return this.disableRipple||!!this.rippleConfig.disabled}constructor(){f(Rn).load(lr);let A=f(G2,{optional:!0}),i=f(Si,{optional:!0});this.rippleConfig=A||{},this._hostElement=this._elementRef.nativeElement,this._isButtonElement=this._hostElement.nodeName.toLowerCase()==="button",this._noopAnimations=i==="NoopAnimations",this._listBase&&!this._listBase._isNonInteractive&&this._initInteractiveListItem(),this._isButtonElement&&!this._hostElement.hasAttribute("type")&&this._hostElement.setAttribute("type","button")}ngAfterViewInit(){this._monitorProjectedLinesAndTitle(),this._updateItemLines(!0)}ngOnDestroy(){this._subscriptions.unsubscribe(),this._rippleRenderer!==null&&this._rippleRenderer._removeTriggerEvents()}_hasIconOrAvatar(){return!!(this._avatars.length||this._icons.length)}_initInteractiveListItem(){this._hostElement.classList.add("mat-mdc-list-item-interactive"),this._rippleRenderer=new vB(this,this._ngZone,this._hostElement,this._platform,f(Rt)),this._rippleRenderer.setupTriggerEvents(this._hostElement)}_monitorProjectedLinesAndTitle(){this._ngZone.runOutsideAngular(()=>{this._subscriptions.add(zn(this._lines.changes,this._titles.changes).subscribe(()=>this._updateItemLines(!1)))})}_updateItemLines(A){if(!this._lines||!this._titles||!this._unscopedContent)return;A&&this._checkDomForUnscopedTextContent();let i=this._explicitLines??this._inferLinesFromContent(),n=this._unscopedContent.nativeElement;if(this._hostElement.classList.toggle("mat-mdc-list-item-single-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-one-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-two-lines",i===2),this._hostElement.classList.toggle("mdc-list-item--with-three-lines",i===3),this._hasUnscopedTextContent){let o=this._titles.length===0&&i===1;n.classList.toggle("mdc-list-item__primary-text",o),n.classList.toggle("mdc-list-item__secondary-text",!o)}else n.classList.remove("mdc-list-item__primary-text"),n.classList.remove("mdc-list-item__secondary-text")}_inferLinesFromContent(){let A=this._titles.length+this._lines.length;return this._hasUnscopedTextContent&&(A+=1),A}_checkDomForUnscopedTextContent(){this._hasUnscopedTextContent=Array.from(this._unscopedContent.nativeElement.childNodes).filter(A=>A.nodeType!==A.COMMENT_NODE).some(A=>!!(A.textContent&&A.textContent.trim()))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,contentQueries:function(i,n,o){if(i&1&&(ci(o,CzA,4),ci(o,dzA,4)),i&2){let r;XA(r=$A())&&(n._avatars=r),XA(r=$A())&&(n._icons=r)}},hostVars:4,hostBindings:function(i,n){i&2&&(Ne("aria-disabled",n.disabled)("disabled",n._isButtonElement&&n.disabled||null),ue("mdc-list-item--disabled",n.disabled))},inputs:{lines:"lines",disableRipple:"disableRipple",disabled:"disabled"}})}return t})();var ycA=(()=>{class t extends NG{static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275cmp=zA({type:t,selectors:[["mat-list"]],hostAttrs:[1,"mat-mdc-list","mat-mdc-list-base","mdc-list"],exportAs:["matList"],features:[ht([{provide:NG,useExisting:t}]),lt],ngContentSelectors:izA,decls:1,vars:0,template:function(i,n){i&1&&(jt(),Fe(0))},styles:[nzA],encapsulation:2,changeDetection:0})}return t})(),vcA=(()=>{class t extends EzA{_lines;_titles;_meta;_unscopedContent;_itemText;get activated(){return this._activated}set activated(A){this._activated=Xo(A)}_activated=!1;_getAriaCurrent(){return this._hostElement.nodeName==="A"&&this._activated?"page":null}_hasBothLeadingAndTrailing(){return this._meta.length!==0&&(this._avatars.length!==0||this._icons.length!==0)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275cmp=zA({type:t,selectors:[["mat-list-item"],["a","mat-list-item",""],["button","mat-list-item",""]],contentQueries:function(i,n,o){if(i&1&&(ci(o,gzA,5),ci(o,lzA,5),ci(o,IzA,5)),i&2){let r;XA(r=$A())&&(n._lines=r),XA(r=$A())&&(n._titles=r),XA(r=$A())&&(n._meta=r)}},viewQuery:function(i,n){if(i&1&&(Te(ozA,5),Te(rzA,5)),i&2){let o;XA(o=$A())&&(n._unscopedContent=o.first),XA(o=$A())&&(n._itemText=o.first)}},hostAttrs:[1,"mat-mdc-list-item","mdc-list-item"],hostVars:13,hostBindings:function(i,n){i&2&&(Ne("aria-current",n._getAriaCurrent()),ue("mdc-list-item--activated",n.activated)("mdc-list-item--with-leading-avatar",n._avatars.length!==0)("mdc-list-item--with-leading-icon",n._icons.length!==0)("mdc-list-item--with-trailing-meta",n._meta.length!==0)("mat-mdc-list-item-both-leading-and-trailing",n._hasBothLeadingAndTrailing())("_mat-animation-noopable",n._noopAnimations))},inputs:{activated:"activated"},exportAs:["matListItem"],features:[lt],ngContentSelectors:azA,decls:10,vars:0,consts:[["unscopedContent",""],[1,"mdc-list-item__content"],[1,"mat-mdc-list-item-unscoped-content",3,"cdkObserveContent"],[1,"mat-focus-indicator"]],template:function(i,n){if(i&1){let o=be();jt(szA),Fe(0),S(1,"span",1),Fe(2,1),Fe(3,2),S(4,"span",2,0),hA("cdkObserveContent",function(){return RA(o),xA(n._updateItemLines(!0))}),Fe(6,3),F()(),Fe(7,4),Fe(8,5),JA(9,"div",3)}},dependencies:[V6],encapsulation:2,changeDetection:0})}return t})();var bcA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[DB,it,Ps,Dk,wcA]})}return t})();var hzA=["button"],uzA=["*"];function fzA(t,e){if(t&1&&(S(0,"div",2),JA(1,"mat-pseudo-checkbox",6),F()),t&2){let A=O();G(),yA("disabled",A.disabled)}}var McA=new dA("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:mzA});function mzA(){return{hideSingleSelectionIndicator:!1,hideMultipleSelectionIndicator:!1,disabledInteractive:!1}}var kcA=new dA("MatButtonToggleGroup"),pzA={provide:yc,useExisting:Ir(()=>_G),multi:!0},i7=class{source;value;constructor(e,A){this.source=e,this.value=A}},_G=(()=>{class t{_changeDetector=f(It);_dir=f(mo,{optional:!0});_multiple=!1;_disabled=!1;_disabledInteractive=!1;_selectionModel;_rawValue;_controlValueAccessorChangeFn=()=>{};_onTouched=()=>{};_buttonToggles;appearance;get name(){return this._name}set name(A){this._name=A,this._markButtonsForCheck()}_name=f(sn).getId("mat-button-toggle-group-");vertical;get value(){let A=this._selectionModel?this._selectionModel.selected:[];return this.multiple?A.map(i=>i.value):A[0]?A[0].value:void 0}set value(A){this._setSelectionByValue(A),this.valueChange.emit(this.value)}valueChange=new WA;get selected(){let A=this._selectionModel?this._selectionModel.selected:[];return this.multiple?A:A[0]||null}get multiple(){return this._multiple}set multiple(A){this._multiple=A,this._markButtonsForCheck()}get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._markButtonsForCheck()}get disabledInteractive(){return this._disabledInteractive}set disabledInteractive(A){this._disabledInteractive=A,this._markButtonsForCheck()}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}change=new WA;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(A){this._hideSingleSelectionIndicator=A,this._markButtonsForCheck()}_hideSingleSelectionIndicator;get hideMultipleSelectionIndicator(){return this._hideMultipleSelectionIndicator}set hideMultipleSelectionIndicator(A){this._hideMultipleSelectionIndicator=A,this._markButtonsForCheck()}_hideMultipleSelectionIndicator;constructor(){let A=f(McA,{optional:!0});this.appearance=A&&A.appearance?A.appearance:"standard",this.hideSingleSelectionIndicator=A?.hideSingleSelectionIndicator??!1,this.hideMultipleSelectionIndicator=A?.hideMultipleSelectionIndicator??!1}ngOnInit(){this._selectionModel=new K2(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(A=>A.checked)),this.multiple||this._initializeTabIndex()}writeValue(A){this.value=A,this._changeDetector.markForCheck()}registerOnChange(A){this._controlValueAccessorChangeFn=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A}_keydown(A){if(this.multiple||this.disabled)return;let n=A.target.id,o=this._buttonToggles.toArray().findIndex(s=>s.buttonId===n),r=null;switch(A.keyCode){case 32:case 13:r=this._buttonToggles.get(o)||null;break;case 38:r=this._getNextButton(o,-1);break;case 37:r=this._getNextButton(o,this.dir==="ltr"?-1:1);break;case 40:r=this._getNextButton(o,1);break;case 39:r=this._getNextButton(o,this.dir==="ltr"?1:-1);break;default:return}r&&(A.preventDefault(),r._onButtonClick(),r.focus())}_emitChangeEvent(A){let i=new i7(A,this.value);this._rawValue=i.value,this._controlValueAccessorChangeFn(i.value),this.change.emit(i)}_syncButtonToggle(A,i,n=!1,o=!1){!this.multiple&&this.selected&&!A.checked&&(this.selected.checked=!1),this._selectionModel?i?this._selectionModel.select(A):this._selectionModel.deselect(A):o=!0,o?Promise.resolve().then(()=>this._updateModelValue(A,n)):this._updateModelValue(A,n)}_isSelected(A){return this._selectionModel&&this._selectionModel.isSelected(A)}_isPrechecked(A){return typeof this._rawValue>"u"?!1:this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some(i=>A.value!=null&&i===A.value):A.value===this._rawValue}_initializeTabIndex(){if(this._buttonToggles.forEach(A=>{A.tabIndex=-1}),this.selected)this.selected.tabIndex=0;else for(let A=0;Athis._selectValue(n,i))):(this._clearSelection(),this._selectValue(A,i)),!this.multiple&&i.every(n=>n.tabIndex===-1)){for(let n of i)if(!n.disabled){n.tabIndex=0;break}}}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(A=>{A.checked=!1,this.multiple||(A.tabIndex=-1)})}_selectValue(A,i){for(let n of i)if(n.value===A){n.checked=!0,this._selectionModel.select(n),this.multiple||(n.tabIndex=0);break}}_updateModelValue(A,i){i&&this._emitChangeEvent(A),this.valueChange.emit(this.value)}_markButtonsForCheck(){this._buttonToggles?.forEach(A=>A._markForCheck())}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["mat-button-toggle-group"]],contentQueries:function(i,n,o){if(i&1&&ci(o,n7,5),i&2){let r;XA(r=$A())&&(n._buttonToggles=r)}},hostAttrs:[1,"mat-button-toggle-group"],hostVars:6,hostBindings:function(i,n){i&1&&hA("keydown",function(r){return n._keydown(r)}),i&2&&(Ne("role",n.multiple?"group":"radiogroup")("aria-disabled",n.disabled),ue("mat-button-toggle-vertical",n.vertical)("mat-button-toggle-group-appearance-standard",n.appearance==="standard"))},inputs:{appearance:"appearance",name:"name",vertical:[2,"vertical","vertical",ie],value:"value",multiple:[2,"multiple","multiple",ie],disabled:[2,"disabled","disabled",ie],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ie],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",ie],hideMultipleSelectionIndicator:[2,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",ie]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],features:[ht([pzA,{provide:kcA,useExisting:t}])]})}return t})(),n7=(()=>{class t{_changeDetectorRef=f(It);_elementRef=f(ee);_focusMonitor=f(dr);_idGenerator=f(sn);_animationMode=f(Si,{optional:!0});_checked=!1;ariaLabel;ariaLabelledby=null;_buttonElement;buttonToggleGroup;get buttonId(){return`${this.id}-button`}id;name;value;get tabIndex(){return this._tabIndex}set tabIndex(A){A!==this._tabIndex&&(this._tabIndex=A,this._markForCheck())}_tabIndex;disableRipple;get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(A){this._appearance=A}_appearance;get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(A){A!==this._checked&&(this._checked=A,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(A){this._disabled=A}_disabled=!1;get disabledInteractive(){return this._disabledInteractive||this.buttonToggleGroup!==null&&this.buttonToggleGroup.disabledInteractive}set disabledInteractive(A){this._disabledInteractive=A}_disabledInteractive;change=new WA;constructor(){f(Rn).load(lr);let A=f(kcA,{optional:!0}),i=f(new wr("tabindex"),{optional:!0})||"",n=f(McA,{optional:!0});this._tabIndex=parseInt(i)||0,this.buttonToggleGroup=A,this.appearance=n&&n.appearance?n.appearance:"standard",this.disabledInteractive=n?.disabledInteractive??!1}ngOnInit(){let A=this.buttonToggleGroup;this.id=this.id||this._idGenerator.getId("mat-button-toggle-"),A&&(A._isPrechecked(this)?this.checked=!0:A._isSelected(this)!==this._checked&&A._syncButtonToggle(this,this._checked))}ngAfterViewInit(){this._animationMode!=="NoopAnimations"&&this._elementRef.nativeElement.classList.add("mat-button-toggle-animations-enabled"),this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){let A=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),A&&A._isSelected(this)&&A._syncButtonToggle(this,!1,!1,!0)}focus(A){this._buttonElement.nativeElement.focus(A)}_onButtonClick(){if(this.disabled)return;let A=this.isSingleSelector()?!0:!this._checked;if(A!==this._checked&&(this._checked=A,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.isSingleSelector()){let i=this.buttonToggleGroup._buttonToggles.find(n=>n.tabIndex===0);i&&(i.tabIndex=-1),this.tabIndex=0}this.change.emit(new i7(this,this.value))}_markForCheck(){this._changeDetectorRef.markForCheck()}_getButtonName(){return this.isSingleSelector()?this.buttonToggleGroup.name:this.name||null}isSingleSelector(){return this.buttonToggleGroup&&!this.buttonToggleGroup.multiple}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-button-toggle"]],viewQuery:function(i,n){if(i&1&&Te(hzA,5),i&2){let o;XA(o=$A())&&(n._buttonElement=o.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:14,hostBindings:function(i,n){i&1&&hA("focus",function(){return n.focus()}),i&2&&(Ne("aria-label",null)("aria-labelledby",null)("id",n.id)("name",null),ue("mat-button-toggle-standalone",!n.buttonToggleGroup)("mat-button-toggle-checked",n.checked)("mat-button-toggle-disabled",n.disabled)("mat-button-toggle-disabled-interactive",n.disabledInteractive)("mat-button-toggle-appearance-standard",n.appearance==="standard"))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[2,"disableRipple","disableRipple",ie],appearance:"appearance",checked:[2,"checked","checked",ie],disabled:[2,"disabled","disabled",ie],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ie]},outputs:{change:"change"},exportAs:["matButtonToggle"],ngContentSelectors:uzA,decls:7,vars:13,consts:[["button",""],["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"click","id","disabled"],[1,"mat-button-toggle-checkbox-wrapper"],[1,"mat-button-toggle-label-content"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"],["state","checked","aria-hidden","true","appearance","minimal",3,"disabled"]],template:function(i,n){if(i&1){let o=be();jt(),S(0,"button",1,0),hA("click",function(){return RA(o),xA(n._onButtonClick())}),_A(2,fzA,2,1,"div",2),S(3,"span",3),Fe(4),F()(),JA(5,"span",4)(6,"span",5)}if(i&2){let o=cr(1);yA("id",n.buttonId)("disabled",n.disabled&&!n.disabledInteractive||null),Ne("role",n.isSingleSelector()?"radio":"button")("tabindex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("aria-pressed",n.isSingleSelector()?null:n.checked)("aria-checked",n.isSingleSelector()?n.checked:null)("name",n._getButtonName())("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),G(2),GA(n.buttonToggleGroup&&(!n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideSingleSelectionIndicator||n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideMultipleSelectionIndicator)?2:-1),G(4),yA("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)}},dependencies:[rs,wk],styles:[".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0);border-radius:var(--mat-legacy-button-toggle-shape)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}@media(forced-colors: active){.mat-button-toggle-standalone,.mat-button-toggle-group{outline:solid 1px}}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,.mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}@media(forced-colors: active){.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{outline:0}}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-legacy-button-toggle-text-color);font-family:var(--mat-legacy-button-toggle-label-text-font);font-size:var(--mat-legacy-button-toggle-label-text-size);line-height:var(--mat-legacy-button-toggle-label-text-line-height);font-weight:var(--mat-legacy-button-toggle-label-text-weight);letter-spacing:var(--mat-legacy-button-toggle-label-text-tracking);--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-legacy-button-toggle-selected-state-text-color)}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-legacy-button-toggle-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle-checkbox-wrapper{display:inline-block;justify-content:flex-start;align-items:center;width:0;height:18px;line-height:18px;overflow:hidden;box-sizing:border-box;position:absolute;top:50%;left:16px;transform:translate3d(0, -50%, 0)}[dir=rtl] .mat-button-toggle-checkbox-wrapper{left:auto;right:16px}.mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:12px}[dir=rtl] .mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:auto;right:12px}.mat-button-toggle-checked .mat-button-toggle-checkbox-wrapper{width:18px}.mat-button-toggle-animations-enabled .mat-button-toggle-checkbox-wrapper{transition:width 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-checkbox-wrapper{transition:none}.mat-button-toggle-checked{color:var(--mat-legacy-button-toggle-selected-state-text-color);background-color:var(--mat-legacy-button-toggle-selected-state-background-color)}.mat-button-toggle-disabled{pointer-events:none;color:var(--mat-legacy-button-toggle-disabled-state-text-color);background-color:var(--mat-legacy-button-toggle-disabled-state-background-color);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-legacy-button-toggle-disabled-state-text-color)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-legacy-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-disabled-interactive{pointer-events:auto}.mat-button-toggle-appearance-standard{color:var(--mat-standard-button-toggle-text-color, var(--mat-sys-on-surface));background-color:var(--mat-standard-button-toggle-background-color, transparent);font-family:var(--mat-standard-button-toggle-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-standard-button-toggle-label-text-size, var(--mat-sys-label-large-size));line-height:var(--mat-standard-button-toggle-label-text-line-height, var(--mat-sys-label-large-line-height));font-weight:var(--mat-standard-button-toggle-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mat-standard-button-toggle-label-text-tracking, var(--mat-sys-label-large-tracking))}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container));background-color:var(--mat-standard-button-toggle-selected-state-background-color, var(--mat-sys-secondary-container))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-standard-button-toggle-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-state-background-color, transparent)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-selected-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-standard-button-toggle-state-layer-color, var(--mat-sys-on-surface))}.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-button-toggle-appearance-standard.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}@media(hover: none){.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-legacy-button-toggle-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-standard-button-toggle-height, 40px)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-legacy-button-toggle-state-layer-color)}@media(forced-colors: active){.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-animations-enabled .mat-button-toggle-button{transition:padding 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-button{transition:none}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}.mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:30px}[dir=rtl] .mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:0;padding-right:30px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{--mat-focus-indicator-border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}"],encapsulation:2,changeDetection:0})}return t})(),ScA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[it,Ps,n7,it]})}return t})();function DzA(t,e){t&1&&(S(0,"p"),AA(1,"Conversations"),F())}function yzA(t,e){t&1&&(S(0,"p"),AA(1,"Trace"),F())}function vzA(t,e){if(t&1){let A=be();S(0,"mat-button-toggle-group",5),da("ngModelChange",function(n){RA(A);let o=O(2);return Va(o.view,n)||(o.view=n),xA(n)}),S(1,"mat-button-toggle",6),AA(2,"Events"),F(),S(3,"mat-button-toggle",7),AA(4,"Trace"),F()()}if(t&2){let A=O(2);Ca("ngModel",A.view)}}function bzA(t,e){if(t&1){let A=be();S(0,"mat-list-item",8),hA("click",function(){let n=RA(A).$implicit,o=O(3);return xA(o.selectEvent(n.key))}),S(1,"span",9),AA(2),F(),S(3,"span",10),AA(4),F()()}if(t&2){let A=e.$implicit,i=e.$index;G(2),Gt(i),G(2),Gt(A.value.title)}}function MzA(t,e){if(t&1&&(S(0,"mat-list",4),Dn(1,bzA,5,2,"mat-list-item",null,to),Za(3,"keyvalue"),F()),t&2){let A=O(2);G(),yn(Lh(3,0,A.eventsMap,A.mapOrderPreservingSort))}}function kzA(t,e){if(t&1){let A=be();S(0,"mat-list-item",8),hA("click",function(){let n=RA(A).$implicit,o=O(3);return xA(o.openDialog(n.key))}),S(1,"span",9),AA(2),F(),S(3,"span"),AA(4),F()()}if(t&2){let A=e.$implicit,i=e.$index,n=O(3);G(2),Gt(i),G(2),Et("Invocation ",n.findInvocIdFromTraceId(A.key),"")}}function SzA(t,e){if(t&1&&(S(0,"mat-list",4),Dn(1,kzA,5,2,"mat-list-item",null,to),Za(3,"keyvalue"),F()),t&2){let A=O(2);G(),yn(Lh(3,0,A.invocTraces,A.mapOrderPreservingSort))}}function RzA(t,e){if(t&1&&(S(0,"div",1)(1,"div",2),_A(2,DzA,2,0,"p")(3,yzA,2,0,"p")(4,vzA,5,1,"mat-button-toggle-group",3),F(),_A(5,MzA,4,3,"mat-list",4)(6,SzA,4,3,"mat-list",4),F()),t&2){let A=O();G(2),GA(A.isTraceView()?-1:2),G(),GA(A.isTraceView()?3:-1),G(),GA(A.traceData?4:-1),G(),GA(A.isTraceView()?-1:5),G(),GA(A.isTraceView()?6:-1)}}function xzA(t,e){t&1&&(S(0,"div")(1,"p"),AA(2,"No conversations"),F()())}var nd=class t{constructor(e){this.dialog=e}eventsMap=new Map;selectedEvent=new WA;traceData=[];llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";isDetailsPanelOpen=!1;view="events";invocTraces=new Map;ngOnChanges(e){"traceData"in e&&this.prcessTraceDataToInvocTrace()}showJson=Array(this.eventsMap.size).fill(!1);toggleJson(e){this.showJson[e]=!this.showJson[e]}selectEvent(e){this.selectedEvent.emit(e)}isTraceView(){return this.view=="trace"}mapOrderPreservingSort=(e,A)=>0;prcessTraceDataToInvocTrace(){!this.traceData||this.traceData.length==0||(this.invocTraces=this.traceData.reduce((e,A)=>{let i=A.trace_id,n=e.get(i);return n?(n.push(A),n.sort((o,r)=>o.start_time-r.start_time)):e.set(i,[A]),e},new Map))}findInvocIdFromTraceId(e){return this.invocTraces.get(e)?.find(i=>i.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in i.attributes).attributes["gcp.vertex.agent.invocation_id"]}openDialog(e){let A=this.dialog.open(hf,{width:"auto",maxWidth:"90vw",data:{spans:this.invocTraces.get(e),invocId:this.findInvocIdFromTraceId(e)}})}static \u0275fac=function(A){return new(A||t)(PA(qs))};static \u0275cmp=zA({type:t,selectors:[["app-event-tab"]],inputs:{eventsMap:"eventsMap",traceData:"traceData"},outputs:{selectedEvent:"selectedEvent"},standalone:!1,features:[ti],decls:3,vars:2,consts:[[1,"events-wrapper"],[1,"events-container"],[1,"event-header"],["name","fontStyle","aria-label","Font Style",2,"scale","0.8",3,"ngModel"],[1,"event-list"],["name","fontStyle","aria-label","Font Style",2,"scale","0.8",3,"ngModelChange","ngModel"],["value","events"],["value","trace"],[3,"click"],[1,"event-index"],[1,"event-title"]],template:function(A,i){A&1&&(S(0,"div",0),_A(1,RzA,7,5,"div",1)(2,xzA,3,0,"div"),F()),A&2&&(G(),GA(i.eventsMap.size>0?1:-1),G(),GA(i.eventsMap.size==0?2:-1))},dependencies:[Ea,ec,ycA,vcA,_G,n7,Th],styles:[".events-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;color:#9aa0a6;font-size:14px;font-weight:700}.event-index[_ngcontent-%COMP%]{color:#80868b;font-family:Roboto;font-size:14px;font-style:normal;font-weight:400;margin-right:10px}.event-title[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}.spacer[_ngcontent-%COMP%]{flex:1 1 auto}.events-container[_ngcontent-%COMP%]{margin-top:20px}.event-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;margin-top:20px}.function-event-button[_ngcontent-%COMP%]{margin-top:11px}.event-list[_ngcontent-%COMP%]{--mat-list-active-indicator-color: orange}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-container-color: #2b2b2f}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-label-text-size: 14px}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-label-text-weight: 400}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-one-line-container-height: 52px}[_nghost-%COMP%] .mdc-list-item{border:1px solid #5f6368;cursor:pointer}[_nghost-%COMP%] .mdc-list-item:hover{background-color:#1c1b1c}.event-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"]})};function FzA(t,e){t&1&&(S(0,"h2",0),AA(1,"Events List"),F())}function NzA(t,e){t&1&&(S(0,"h2",0),AA(1,"Send Response To Pending Event"),F())}function _zA(t,e){t&1&&(S(0,"h2",4),AA(1,"Events List"),F())}function GzA(t,e){t&1&&(S(0,"h2",4),AA(1,"Send Response To Pending Event"),F())}function UzA(t,e){if(t&1){let A=be();S(0,"div")(1,"p"),AA(2,"Name"),F(),S(3,"p"),AA(4),F(),S(5,"p"),AA(6,"Args"),F(),S(7,"p"),AA(8),F(),S(9,"mat-form-field",5)(10,"mat-label"),AA(11,"Response"),F(),S(12,"textarea",6),da("ngModelChange",function(n){RA(A);let o=O();return Va(o.selectedEvent.response,n)||(o.selectedEvent.response=n),xA(n)}),F()()()}if(t&2){let A=O();G(4),Gt(A.selectedEvent.name),G(4),Gt(A.argsToJson(A.selectedEvent.args)),G(4),Ca("ngModel",A.selectedEvent.response)}}function KzA(t,e){if(t&1){let A=be();S(0,"button",7),hA("click",function(){RA(A);let n=O();return xA(n.sendResponse())}),AA(1),F()}if(t&2){let A=O();yA("disabled",A.sending),G(),Et(" ",A.sending?"Sending...":"Send"," ")}}var uf=class t{constructor(e,A,i){this.dialogRef=e;this.data=A;this.agentService=i;this.selectedEvent=A.event,this.appName=A.appName,this.userId=A.userId,this.sessionId=A.sessionId,this.functionCallEventId=A.functionCallEventId}selectedEvent=null;appName;userId;sessionId;functionCallEventId;sending=!1;response=[];argsToJson(e){return JSON.stringify(e)}sendResponse(){this.sending=!0;let e={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:[]}};this.selectedEvent.response&&(e.functionCallEventId=this.functionCallEventId,e.newMessage.parts.push({function_response:{id:this.selectedEvent.id,name:this.selectedEvent.name,response:{response:this.selectedEvent.response}}})),this.agentService.runSse(e).subscribe({next:A=>Ao(this,null,function*(){let i=JSON.parse(A);this.response.push(i)}),error:A=>console.error("SSE error:",A),complete:()=>{this.sending=!1,this.dialogRef.close({response:this.response,events:[this.selectedEvent]})}})}static \u0275fac=function(A){return new(A||t)(PA(Br),PA(as),PA(H2))};static \u0275cmp=zA({type:t,selectors:[["app-pending-event-dialog"]],standalone:!1,decls:10,vars:6,consts:[["mat-dialog-title",""],["mat-dialog-title","","class","dialog-title",4,"ngIf"],["mat-button","",3,"disabled"],["mat-button","","mat-dialog-close",""],["mat-dialog-title","",1,"dialog-title"],["appearance","outline",1,"response-textarea"],["matInput","",3,"ngModelChange","ngModel"],["mat-button","",3,"click","disabled"]],template:function(A,i){A&1&&(_A(0,FzA,2,0,"h2",0)(1,NzA,2,0,"h2",0)(2,_zA,2,0,"h2",1)(3,GzA,2,0,"h2",1),S(4,"mat-dialog-content"),_A(5,UzA,13,3,"div"),F(),S(6,"mat-dialog-actions"),_A(7,KzA,2,2,"button",2),S(8,"button",3),AA(9,"Close"),F()()),A&2&&(GA(i.selectedEvent?-1:0),G(),GA(i.selectedEvent?1:-1),G(),yA("ngIf",!i.selectedEvent),G(),yA("ngIf",i.selectedEvent),G(2),GA(i.selectedEvent?5:-1),G(2),GA(i.selectedEvent&&i.selectedEvent.response?7:-1))},dependencies:[Uh,vc,Ea,ec,Qg,Q8,iI,Dr,bs,ma,pa,hg],styles:[".response-textarea[_ngcontent-%COMP%]{min-width:500px;margin-top:15px}.dialog-title[_ngcontent-%COMP%]{font-weight:700;font-size:large}"]})};var SQ=class t{constructor(e,A){this.dialogRef=e;this.data=A}onConfirm(){this.dialogRef.close(!0)}onCancel(){this.dialogRef.close(!1)}static \u0275fac=function(A){return new(A||t)(PA(Br),PA(as))};static \u0275cmp=zA({type:t,selectors:[["app-delete-session-dialog"]],standalone:!1,decls:11,vars:4,consts:[[1,"confirm-delete-wrapper"],["mat-dialog-title",""],["align","end"],["mat-button","",3,"click"],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2),F(),S(3,"mat-dialog-content")(4,"p"),AA(5),F()(),S(6,"mat-dialog-actions",2)(7,"button",3),hA("click",function(){return i.onCancel()}),AA(8),F(),S(9,"button",4),hA("click",function(){return i.onConfirm()}),AA(10),F()()()),A&2&&(G(2),Gt(i.data.title),G(3),Gt(i.data.message),G(3),Gt(i.data.cancelButtonText),G(2),Gt(i.data.confirmButtonText))},dependencies:[Dr,bs,ma,pa],encapsulation:2})};function YzA(t,e){if(t&1){let A=be();S(0,"div",3),hA("click",function(){let n=RA(A).$implicit,o=O();return xA(o.getSession(n.id))}),S(1,"div",4)(2,"div",5),AA(3),F(),S(4,"div",6),AA(5),F()()()}if(t&2){let A=e.$implicit,i=O();yA("ngClass",A.id===i.sessionId?"session-item current":"session-item"),G(3),Et(" ",A.id," "),G(2),Et(" ",i.getDate(A)," ")}}var od=class t{constructor(e,A){this.sessionService=e;this.dialog=A;this.refreshSessionsSubject.pipe(jn(()=>this.sessionService.listSessions(this.userId,this.appName))).subscribe(i=>{i=i.sort((n,o)=>Number(o.lastUpdateTime)-Number(n.lastUpdateTime)),this.sessionList=i})}userId="";appName="";sessionId="";sessionSelected=new WA;sessionReloaded=new WA;sessionList=[];refreshSessionsSubject=new OA;ngOnInit(){setTimeout(()=>{this.refreshSessionsSubject.next()},500)}getSession(e){this.sessionService.getSession(this.userId,this.appName,e).subscribe(A=>{let i=this.fromApiResultToSession(A);this.sessionSelected.emit(i)})}getDate(e){let A=e.lastUpdateTime;return new Date(A*1e3).toLocaleString()}fromApiResultToSession(e){return{id:e?.id??"",appName:e?.appName??"",userId:e?.userId??"",state:e?.state??[],events:e?.events??[]}}reloadSession(e){this.sessionService.getSession(this.userId,this.appName,e).subscribe(A=>{let i=this.fromApiResultToSession(A);this.sessionReloaded.emit(i)})}refreshSession(e){if(this.refreshSessionsSubject.next(),!(this.sessionList.length<=1)){let A=this.sessionList.findIndex(i=>i.id==e);return A==this.sessionList.length-1&&(A=-1),this.sessionList[A+1]}}static \u0275fac=function(A){return new(A||t)(PA(Wg),PA(qs))};static \u0275cmp=zA({type:t,selectors:[["app-session-tab"]],inputs:{userId:"userId",appName:"appName",sessionId:"sessionId"},outputs:{sessionSelected:"sessionSelected",sessionReloaded:"sessionReloaded"},standalone:!1,decls:4,vars:0,consts:[[1,"session-wrapper"],[1,"session-tab-container",2,"margin-top","16px"],[3,"ngClass"],[3,"click","ngClass"],[1,"session-info"],[1,"session-id"],[1,"session-date"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"div",1),Dn(2,YzA,6,3,"div",2,to),F()()),A&2&&(G(2),yn(i.sessionList))},dependencies:[Xa],styles:[".session-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;color:#9aa0a6;font-size:14px;font-weight:700}.session-item[_ngcontent-%COMP%]{display:flex;justify-content:space-between;border:none;background-color:#303030;border-radius:8px;margin-bottom:4px;cursor:pointer}.session-item[_ngcontent-%COMP%]:hover{background-color:#141414}.session-item.current[_ngcontent-%COMP%]{background-color:#004a77}.session-id[_ngcontent-%COMP%]{color:#e8eaed;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.session-date[_ngcontent-%COMP%]{color:#9aa0a6;font-family:Roboto;font-size:12px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.3px}.session-info[_ngcontent-%COMP%]{padding:11px}"]})};var RQ=class t{constructor(e){this.http=e}apiServerDomain=vs.getApiServerBaseUrl();getLatestArtifact(e,A,i,n){let o=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}/artifacts/${n}`;return this.http.get(o)}getArtifactVersion(e,A,i,n,o){let r=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}/artifacts/${n}/versions/${o}`;return this.http.get(r)}static \u0275fac=function(A){return new(A||t)(we(Ds))};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})};var HzA={url:"",deserializer:t=>JSON.parse(t.data),serializer:t=>JSON.stringify(t)},zzA="WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }",ff=class t extends md{constructor(e,A){if(super(),this._socket=null,e instanceof ct)this.destination=A,this.source=e;else{let i=this._config=Object.assign({},HzA);if(this._output=new OA,typeof e=="string")i.url=e;else for(let n in e)e.hasOwnProperty(n)&&(i[n]=e[n]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new Al}}lift(e){let A=new t(this._config,this.destination);return A.operator=e,A.source=this,A}_resetState(){this._socket=null,this.source||(this.destination=new Al),this._output=new OA}multiplex(e,A,i){let n=this;return new ct(o=>{try{n.next(e())}catch(s){o.error(s)}let r=n.subscribe({next:s=>{try{i(s)&&o.next(s)}catch(a){o.error(a)}},error:s=>o.error(s),complete:()=>o.complete()});return()=>{try{n.next(A())}catch(s){o.error(s)}r.unsubscribe()}})}_connectSocket(){let{WebSocketCtor:e,protocol:A,url:i,binaryType:n}=this._config,o=this._output,r=null;try{r=A?new e(i,A):new e(i),this._socket=r,n&&(this._socket.binaryType=n)}catch(a){o.error(a);return}let s=new Kt(()=>{this._socket=null,r&&r.readyState===1&&r.close()});r.onopen=a=>{let{_socket:c}=this;if(!c){r.close(),this._resetState();return}let{openObserver:l}=this._config;l&&l.next(a);let I=this.destination;this.destination=o0.create(C=>{if(r.readyState===1)try{let{serializer:d}=this._config;r.send(d(C))}catch(d){this.destination.error(d)}},C=>{let{closingObserver:d}=this._config;d&&d.next(void 0),C&&C.code?r.close(C.code,C.reason):o.error(new TypeError(zzA)),this._resetState()},()=>{let{closingObserver:C}=this._config;C&&C.next(void 0),r.close(),this._resetState()}),I&&I instanceof Al&&s.add(I.subscribe(this.destination))},r.onerror=a=>{this._resetState(),o.error(a)},r.onclose=a=>{r===this._socket&&this._resetState();let{closeObserver:c}=this._config;c&&c.next(a),a.wasClean?o.complete():o.error(a)},r.onmessage=a=>{try{let{deserializer:c}=this._config;o.next(c(a))}catch(c){o.error(c)}}}_subscribe(e){let{source:A}=this;return A?A.subscribe(e):(this._socket||this._connectSocket(),this._output.subscribe(e),e.add(()=>{let{_socket:i}=this;this._output.observers.length===0&&(i&&(i.readyState===1||i.readyState===0)&&i.close(),this._resetState())}),e)}unsubscribe(){let{_socket:e}=this;e&&(e.readyState===1||e.readyState===0)&&e.close(),this._resetState(),super.unsubscribe()}};var Xg=class t{socket$;messages$=new Mi("");audioContext=new AudioContext({sampleRate:22e3});audioBuffer=[];audioIntervalId=null;lastAudioTime=0;closeReasonSubject=new OA;constructor(){}connect(e){this.socket$=new ff({url:e,serializer:A=>JSON.stringify(A),deserializer:A=>A.data,closeObserver:{next:A=>{this.emitWsCloseReason(A.reason)}}}),this.socket$.subscribe(A=>{this.handleIncomingAudio(A),this.messages$.next(A)},A=>{console.error("WebSocket error:",A)}),this.audioIntervalId=setInterval(()=>this.processBufferedAudio(),250)}sendMessage(e){if(e.blob.data=this.arrayBufferToBase64(e.blob.data.buffer),!this.socket$||this.socket$.closed){console.error("WebSocket is not open.");return}this.socket$.next(e)}closeConnection(){clearInterval(this.audioIntervalId),this.audioIntervalId=null,this.socket$&&this.socket$.complete()}getMessages(){return this.messages$.asObservable()}arrayBufferToBase64(e){let A="",i=new Uint8Array(e),n=i.byteLength;for(let o=0;on+o.length,0),A=new Uint8Array(e),i=0;for(let n of this.audioBuffer)A.set(n,i),i+=n.length;this.playPCM(A),this.audioBuffer=[]}base64ToUint8Array(e){let A=atob(this.urlSafeBase64ToBase64(e)),i=A.length,n=new Uint8Array(i);for(let o=0;o=32768&&(a-=65536),A[s]=a/32768}let i=this.audioContext.createBuffer(1,A.length,22e3);i.copyToChannel(A,0);let n=this.audioContext.createBufferSource();n.buffer=i,n.connect(this.audioContext.destination);let o=this.audioContext.currentTime,r=Math.max(this.lastAudioTime,o);n.start(r),this.lastAudioTime=r+i.duration}urlSafeBase64ToBase64(e){let A=e.replace(/_/g,"/").replace(/-/g,"+");for(;A.length%4!==0;)A+="=";return A}emitWsCloseReason(e){this.closeReasonSubject.next(e)}onCloseReason(){return this.closeReasonSubject.asObservable()}static \u0275fac=function(A){return new(A||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})};var xQ=class t{constructor(e){this.wsService=e}mediaRecorder;stream;audioContext;source;processor;audioBuffer=[];audioIntervalId=null;startRecording(){return Ao(this,null,function*(){try{this.stream=yield navigator.mediaDevices.getUserMedia({audio:!0}),this.audioContext=new AudioContext,yield this.audioContext.audioWorklet.addModule("./assets/audio-processor.js"),this.source=this.audioContext.createMediaStreamSource(this.stream);let e=new AudioWorkletNode(this.audioContext,"audio-processor");e.port.onmessage=A=>{let i=A.data,n=this.float32ToPCM(i);this.audioBuffer.push(n)},this.source.connect(e),e.connect(this.audioContext.destination),this.audioIntervalId=setInterval(()=>this.sendBufferedAudio(),250)}catch(e){console.error("Error accessing microphone:",e)}})}sendBufferedAudio(){if(this.audioBuffer.length===0)return;let e=this.audioBuffer.reduce((o,r)=>o+r.length,0),A=new Uint8Array(e),i=0;for(let o of this.audioBuffer)A.set(o,i),i+=o.length;let n={blob:{mime_type:"audio/pcm",data:A}};this.wsService.sendMessage(n),this.audioBuffer=[]}stopRecording(){this.processor&&this.processor.disconnect(),this.source&&this.source.disconnect(),this.audioContext&&this.audioContext.close(),this.stream&&this.stream.getTracks().forEach(e=>e.stop()),this.audioIntervalId&&(clearInterval(this.audioIntervalId),this.audioIntervalId=null)}float32ToPCM(e){let A=new ArrayBuffer(e.length*2),i=new DataView(A);for(let n=0;nthis.captureAndSendFrame(),1e3)}catch(A){console.error("Error accessing camera/microphone:",A)}})}captureAndSendFrame(){return Ao(this,null,function*(){try{let e=yield this.captureFrame(),i={blob:{mime_type:"image/jpeg",data:yield this.blobToUint8Array(e)}};this.wsService.sendMessage(i)}catch(e){console.error("Error capturing frame:",e)}})}blobToUint8Array(e){return Ao(this,null,function*(){let A=yield e.arrayBuffer();return new Uint8Array(A)})}captureFrame(){return Ao(this,null,function*(){return new Promise((e,A)=>{try{let i=document.createElement("canvas");i.width=this.videoElement.videoWidth,i.height=this.videoElement.videoHeight;let n=i.getContext("2d");if(!n){A(new Error("Canvas context not supported"));return}n.drawImage(this.videoElement,0,0,i.width,i.height),i.toBlob(o=>{o?e(o):A(new Error("Failed to create image blob"))},"image/png")}catch(i){A(i)}})})}sendBufferedVideo(){if(this.videoBuffer.length===0)return;let e=this.videoBuffer.reduce((o,r)=>o+r.length,0),A=new Uint8Array(e),i=0;for(let o of this.videoBuffer)A.set(o,i),i+=o.length;let n={blob:{mime_type:"image/jpeg",data:A}};this.wsService.sendMessage(n),this.videoBuffer=[]}stopRecording(e){this.mediaRecorder&&this.mediaRecorder.stop(),this.stream&&this.stream.getTracks().forEach(A=>A.stop()),clearInterval(this.videoIntervalId),this.clearVideoElement(e)}clearVideoElement(e){let A=e.nativeElement.querySelector("video");A&&this.renderer.removeChild(e.nativeElement,A)}static \u0275fac=function(A){return new(A||t)(we(Xg),we(ws))};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})};var nI=class t{constructor(e){this.http=e}apiServerDomain=vs.getApiServerBaseUrl();getEventTrace(e){let A=this.apiServerDomain+`/debug/trace/${e}`;return this.http.get(A)}getTrace(e){let A=this.apiServerDomain+`/debug/trace/session/${e}`;return this.http.get(A)}getEvent(e,A,i,n){let o=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}/events/${n}/graph`;return this.http.get(o)}static \u0275fac=function(A){return new(A||t)(we(Ds))};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})};var $g=class t{selectedTraceRowSource=new Mi(void 0);selectedTraceRow$=this.selectedTraceRowSource.asObservable();eventDataSource=new Mi(void 0);eventData$=this.eventDataSource.asObservable();hoveredMessageIndiciesSource=new Mi([]);hoveredMessageIndicies$=this.hoveredMessageIndiciesSource.asObservable();messagesSource=new Mi([]);messages$=this.messagesSource.asObservable();selectedRow(e){this.selectedTraceRowSource.next(e)}setEventData(e){this.eventDataSource.next(e)}setMessages(e){this.messagesSource.next(e)}setHoveredMessages(e,A){if(!e){this.hoveredMessageIndiciesSource.next([]);return}let i=e.attributes,n=i&&i["gcp.vertex.agent.event_id"],o=0,r=[];for(let s of this.messagesSource.value){if(s.role=="user"){o++;continue}if(this.eventDataSource.value?.get(s.eventId).invocationId!=A){o++;continue}if(n)if(i["gcp.vertex.agent.event_id"]==s.eventId){r.push(o),o++;continue}else{o++;continue}else{r.push(o),o++;continue}}this.hoveredMessageIndiciesSource.next(r)}resetTraceService(){this.eventDataSource.next(void 0),this.messagesSource.next([]),this.hoveredMessageIndiciesSource.next([])}static \u0275fac=function(A){return new(A||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac,providedIn:"root"})};var jzA=["*"];var qzA=new dA("MAT_CARD_CONFIG"),xcA=(()=>{class t{appearance;constructor(){let A=f(qzA,{optional:!0});this.appearance=A?.appearance||"raised"}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,n){i&2&&ue("mat-mdc-card-outlined",n.appearance==="outlined")("mdc-card--outlined",n.appearance==="outlined")},inputs:{appearance:"appearance"},exportAs:["matCard"],ngContentSelectors:jzA,decls:1,vars:0,template:function(i,n){i&1&&(jt(),Fe(0))},styles:['.mat-mdc-card{display:flex;flex-direction:column;box-sizing:border-box;position:relative;border-style:solid;border-width:0;background-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium));box-shadow:var(--mdc-elevated-card-container-elevation, var(--mat-sys-level1))}.mat-mdc-card::after{position:absolute;top:0;left:0;width:100%;height:100%;border:solid 1px rgba(0,0,0,0);content:"";display:block;pointer-events:none;box-sizing:border-box;border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium))}.mat-mdc-card-outlined{background-color:var(--mdc-outlined-card-container-color, var(--mat-sys-surface));border-radius:var(--mdc-outlined-card-container-shape, var(--mat-sys-corner-medium));border-width:var(--mdc-outlined-card-outline-width, 1px);border-color:var(--mdc-outlined-card-outline-color, var(--mat-sys-outline-variant));box-shadow:var(--mdc-outlined-card-container-elevation, var(--mat-sys-level0))}.mat-mdc-card-outlined::after{border:none}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mat-mdc-card-actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font, var(--mat-sys-title-large-font));line-height:var(--mat-card-title-text-line-height, var(--mat-sys-title-large-line-height));font-size:var(--mat-card-title-text-size, var(--mat-sys-title-large-size));letter-spacing:var(--mat-card-title-text-tracking, var(--mat-sys-title-large-tracking));font-weight:var(--mat-card-title-text-weight, var(--mat-sys-title-large-weight))}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color, var(--mat-sys-on-surface));font-family:var(--mat-card-subtitle-text-font, var(--mat-sys-title-medium-font));line-height:var(--mat-card-subtitle-text-line-height, var(--mat-sys-title-medium-line-height));font-size:var(--mat-card-subtitle-text-size, var(--mat-sys-title-medium-size));letter-spacing:var(--mat-card-subtitle-text-tracking, var(--mat-sys-title-medium-tracking));font-weight:var(--mat-card-subtitle-text-weight, var(--mat-sys-title-medium-weight))}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end}'],encapsulation:2,changeDetection:0})}return t})();var LcA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[it,it]})}return t})();var ZzA=t=>["segment",t],WzA=(t,e)=>({"segment-main":!0,expandable:t,expanded:e});function XzA(t,e){t&1&&JA(0,"div",9)}function $zA(t,e){if(t&1&&(S(0,"span",10),AA(1),F()),t&2){let A=O().$implicit;G(),Gt(A.description)}}function AOA(t,e){if(t&1&&(S(0,"section",11),JA(1,"ngx-json-viewer",12),F()),t&2){let A=O().$implicit,i=O();G(),yA("json",A.value)("expanded",i.expanded)("depth",i.depth)("_currentDepth",i._currentDepth+1)}}function eOA(t,e){if(t&1){let A=be();S(0,"section",2)(1,"section",3),hA("click",function(){let n=RA(A).$implicit,o=O();return xA(o.toggle(n))}),_A(2,XzA,1,0,"div",4),S(3,"span",5),AA(4),F(),S(5,"span",6),AA(6,": "),F(),_A(7,$zA,2,1,"span",7),F(),_A(8,AOA,2,4,"section",8),F()}if(t&2){let A=e.$implicit,i=O();yA("ngClass",qr(6,ZzA,"segment-type-"+A.type)),G(),yA("ngClass",b2(8,WzA,i.isExpandable(A),A.expanded)),G(),yA("ngIf",i.isExpandable(A)),G(2),Gt(A.key),G(3),yA("ngIf",!A.expanded||!i.isExpandable(A)),G(),yA("ngIf",A.expanded&&i.isExpandable(A))}}var FQ=(()=>{class t{constructor(){this.expanded=!0,this.depth=-1,this._currentDepth=0,this.segments=[]}ngOnChanges(){this.segments=[],this.json=this.decycle(this.json),typeof this.json=="object"?Object.keys(this.json).forEach(A=>{this.segments.push(this.parseKeyValue(A,this.json[A]))}):this.segments.push(this.parseKeyValue(`(${typeof this.json})`,this.json))}isExpandable(A){return A.type==="object"||A.type==="array"}toggle(A){this.isExpandable(A)&&(A.expanded=!A.expanded)}parseKeyValue(A,i){let n={key:A,value:i,type:void 0,description:""+i,expanded:this.isExpanded()};switch(typeof n.value){case"number":{n.type="number";break}case"boolean":{n.type="boolean";break}case"function":{n.type="function";break}case"string":{n.type="string",n.description='"'+n.value+'"';break}case"undefined":{n.type="undefined",n.description="undefined";break}case"object":{n.value===null?(n.type="null",n.description="null"):Array.isArray(n.value)?(n.type="array",n.description="Array["+n.value.length+"] "+JSON.stringify(n.value)):n.value instanceof Date?n.type="date":(n.type="object",n.description="Object "+JSON.stringify(n.value));break}}return n}isExpanded(){return this.expanded&&!(this.depth>-1&&this._currentDepth>=this.depth)}decycle(A){let i=new WeakMap;return function n(o,r){let s,a;return typeof o=="object"&&o!==null&&!(o instanceof Boolean)&&!(o instanceof Date)&&!(o instanceof Number)&&!(o instanceof RegExp)&&!(o instanceof String)?(s=i.get(o),s!==void 0?{$ref:s}:(i.set(o,r),Array.isArray(o)?(a=[],o.forEach(function(c,l){a[l]=n(c,r+"["+l+"]")})):(a={},Object.keys(o).forEach(function(c){a[c]=n(o[c],r+"["+JSON.stringify(c)+"]")})),a)):o}(A,"$")}}return t.\u0275fac=function(A){return new(A||t)},t.\u0275cmp=zA({type:t,selectors:[["ngx-json-viewer"]],inputs:{json:"json",expanded:"expanded",depth:"depth",_currentDepth:"_currentDepth"},standalone:!1,features:[ti],decls:2,vars:1,consts:[[1,"ngx-json-viewer"],[3,"ngClass",4,"ngFor","ngForOf"],[3,"ngClass"],[3,"click","ngClass"],["class","toggler",4,"ngIf"],[1,"segment-key"],[1,"segment-separator"],["class","segment-value",4,"ngIf"],["class","children",4,"ngIf"],[1,"toggler"],[1,"segment-value"],[1,"children"],[3,"json","expanded","depth","_currentDepth"]],template:function(A,i){A&1&&(S(0,"section",0),_A(1,eOA,9,11,"section",1),F()),A&2&&(G(),yA("ngForOf",i.segments))},dependencies:[Xa,Hp,Uh,t],styles:['@charset "UTF-8";.ngx-json-viewer[_ngcontent-%COMP%]{font-family:var(--ngx-json-font-family, monospace);font-size:var(--ngx-json-font-size, 1em);width:100%;height:100%;overflow:hidden;position:relative}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%]{padding:2px;margin:1px 1px 1px 12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%]{word-wrap:break-word}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]{position:absolute;margin-left:-14px;margin-top:3px;font-size:.8em;line-height:1.2em;vertical-align:middle;color:var(--ngx-json-toggler, #787878)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]:after{display:inline-block;content:"\\25ba";transition:transform .1s ease-in}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-key, #4E187C)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-separator[_ngcontent-%COMP%]{color:var(--ngx-json-separator, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-value, #000)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .children[_ngcontent-%COMP%]{margin-left:12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-string[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-string, #FF6B6B)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-number[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-number, #009688)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-boolean[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-boolean, #B938A4)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-date[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-date, #05668D)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-array, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-object, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-function[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-function, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-null, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-undefined, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-null-bg, red)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%]{white-space:nowrap}.ngx-json-viewer[_ngcontent-%COMP%] .expanded[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]:after{transform:rotate(90deg)}.ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]{cursor:pointer}']}),t})(),FcA=(()=>{class t{}return t.\u0275fac=function(A){return new(A||t)},t.\u0275mod=Ce({type:t}),t.\u0275inj=Ie({imports:[f0]}),t})();var NcA=["*"],tOA=["content"],iOA=[[["mat-drawer"]],[["mat-drawer-content"]],"*"],nOA=["mat-drawer","mat-drawer-content","*"];function oOA(t,e){if(t&1){let A=be();S(0,"div",1),hA("click",function(){RA(A);let n=O();return xA(n._onBackdropClicked())}),F()}if(t&2){let A=O();ue("mat-drawer-shown",A._isShowingBackdrop())}}function rOA(t,e){t&1&&(S(0,"mat-drawer-content"),Fe(1,2),F())}var sOA=new dA("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:aOA}),_cA=new dA("MAT_DRAWER_CONTAINER");function aOA(){return!1}var YG=(()=>{class t extends D0{_platform=f(Ii);_changeDetectorRef=f(It);_container=f(TG);constructor(){let A=f(ee),i=f(Y2),n=f(Qe);super(A,i,n)}ngAfterContentInit(){this._container._contentMarginChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})}_shouldBeHidden(){if(this._platform.isBrowser)return!1;let{start:A,end:i}=this._container;return A!=null&&A.mode!=="over"&&A.opened||i!=null&&i.mode!=="over"&&i.opened}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-drawer-content"]],hostAttrs:[1,"mat-drawer-content"],hostVars:6,hostBindings:function(i,n){i&2&&(uo("margin-left",n._container._contentMargins.left,"px")("margin-right",n._container._contentMargins.right,"px"),ue("mat-drawer-content-hidden",n._shouldBeHidden()))},features:[ht([{provide:D0,useExisting:t}]),lt],ngContentSelectors:NcA,decls:1,vars:0,template:function(i,n){i&1&&(jt(),Fe(0))},encapsulation:2,changeDetection:0})}return t})(),JG=(()=>{class t{_elementRef=f(ee);_focusTrapFactory=f(n8);_focusMonitor=f(dr);_platform=f(Ii);_ngZone=f(Qe);_renderer=f(Wi);_interactivityChecker=f(Mu);_doc=f(at,{optional:!0});_container=f(_cA,{optional:!0});_focusTrap=null;_elementFocusedBeforeDrawerWasOpened=null;_eventCleanups;_isAttached;_anchor;get position(){return this._position}set position(A){A=A==="end"?"end":"start",A!==this._position&&(this._isAttached&&this._updatePositionInParent(A),this._position=A,this.onPositionChanged.emit())}_position="start";get mode(){return this._mode}set mode(A){this._mode=A,this._updateFocusTrapState(),this._modeChanged.next()}_mode="over";get disableClose(){return this._disableClose}set disableClose(A){this._disableClose=Xo(A)}_disableClose=!1;get autoFocus(){let A=this._autoFocus;return A??(this.mode==="side"?"dialog":"first-tabbable")}set autoFocus(A){(A==="true"||A==="false"||A==null)&&(A=Xo(A)),this._autoFocus=A}_autoFocus;get opened(){return this._opened}set opened(A){this.toggle(Xo(A))}_opened=!1;_openedVia;_animationStarted=new OA;_animationEnd=new OA;openedChange=new WA(!0);_openedStream=this.openedChange.pipe(kt(A=>A),je(()=>{}));openedStart=this._animationStarted.pipe(kt(()=>this.opened),vd(void 0));_closedStream=this.openedChange.pipe(kt(A=>!A),je(()=>{}));closedStart=this._animationStarted.pipe(kt(()=>!this.opened),vd(void 0));_destroyed=new OA;onPositionChanged=new WA;_content;_modeChanged=new OA;_injector=f(Rt);_changeDetectorRef=f(It);constructor(){this.openedChange.pipe(St(this._destroyed)).subscribe(A=>{A?(this._doc&&(this._elementFocusedBeforeDrawerWasOpened=this._doc.activeElement),this._takeFocus()):this._isFocusWithinDrawer()&&this._restoreFocus(this._openedVia||"program")}),this._ngZone.runOutsideAngular(()=>{let A=this._elementRef.nativeElement;oh(A,"keydown").pipe(kt(i=>i.keyCode===27&&!this.disableClose&&!ir(i)),St(this._destroyed)).subscribe(i=>this._ngZone.run(()=>{this.close(),i.stopPropagation(),i.preventDefault()})),this._eventCleanups=[this._renderer.listen(A,"transitionrun",this._handleTransitionEvent),this._renderer.listen(A,"transitionend",this._handleTransitionEvent),this._renderer.listen(A,"transitioncancel",this._handleTransitionEvent)]}),this._animationEnd.subscribe(()=>{this.openedChange.emit(this._opened)})}_forceFocus(A,i){this._interactivityChecker.isFocusable(A)||(A.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let n=()=>{o(),r(),A.removeAttribute("tabindex")},o=this._renderer.listen(A,"blur",n),r=this._renderer.listen(A,"mousedown",n)})),A.focus(i)}_focusByCssSelector(A,i){let n=this._elementRef.nativeElement.querySelector(A);n&&this._forceFocus(n,i)}_takeFocus(){if(!this._focusTrap)return;let A=this._elementRef.nativeElement;switch(this.autoFocus){case!1:case"dialog":return;case!0:case"first-tabbable":To(()=>{!this._focusTrap.focusInitialElement()&&typeof A.focus=="function"&&A.focus()},{injector:this._injector});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this.autoFocus);break}}_restoreFocus(A){this.autoFocus!=="dialog"&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,A):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null)}_isFocusWithinDrawer(){let A=this._doc.activeElement;return!!A&&this._elementRef.nativeElement.contains(A)}ngAfterViewInit(){this._isAttached=!0,this._position==="end"&&this._updatePositionInParent("end"),this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState())}ngOnDestroy(){this._eventCleanups.forEach(A=>A()),this._focusTrap?.destroy(),this._anchor?.remove(),this._anchor=null,this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}open(A){return this.toggle(!0,A)}close(){return this.toggle(!1)}_closeViaBackdropClick(){return this._setOpen(!1,!0,"mouse")}toggle(A=!this.opened,i){A&&i&&(this._openedVia=i);let n=this._setOpen(A,!A&&this._isFocusWithinDrawer(),this._openedVia||"program");return A||(this._openedVia=null),n}_setOpen(A,i,n){return A===this._opened?Promise.resolve(A?"open":"close"):(this._opened=A,this._container?._transitionsEnabled?this._setIsAnimating(!0):setTimeout(()=>{this._animationStarted.next(),this._animationEnd.next()}),this._elementRef.nativeElement.classList.toggle("mat-drawer-opened",A),!A&&i&&this._restoreFocus(n),this._changeDetectorRef.markForCheck(),this._updateFocusTrapState(),new Promise(o=>{this.openedChange.pipe(On(1)).subscribe(r=>o(r?"open":"close"))}))}_setIsAnimating(A){this._elementRef.nativeElement.classList.toggle("mat-drawer-animating",A)}_getWidth(){return this._elementRef.nativeElement.offsetWidth||0}_updateFocusTrapState(){this._focusTrap&&(this._focusTrap.enabled=!!this._container?.hasBackdrop&&this.opened)}_updatePositionInParent(A){if(!this._platform.isBrowser)return;let i=this._elementRef.nativeElement,n=i.parentNode;A==="end"?(this._anchor||(this._anchor=this._doc.createComment("mat-drawer-anchor"),n.insertBefore(this._anchor,i)),n.appendChild(i)):this._anchor&&this._anchor.parentNode.insertBefore(i,this._anchor)}_handleTransitionEvent=A=>{let i=this._elementRef.nativeElement;A.target===i&&this._ngZone.run(()=>{A.type==="transitionrun"?this._animationStarted.next(A):(A.type==="transitionend"&&this._setIsAnimating(!1),this._animationEnd.next(A))})};static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-drawer"]],viewQuery:function(i,n){if(i&1&&Te(tOA,5),i&2){let o;XA(o=$A())&&(n._content=o.first)}},hostAttrs:["tabIndex","-1",1,"mat-drawer"],hostVars:11,hostBindings:function(i,n){i&2&&(Ne("align",null),uo("visibility",!n._container&&!n.opened?"hidden":null),ue("mat-drawer-end",n.position==="end")("mat-drawer-over",n.mode==="over")("mat-drawer-push",n.mode==="push")("mat-drawer-side",n.mode==="side"))},inputs:{position:"position",mode:"mode",disableClose:"disableClose",autoFocus:"autoFocus",opened:"opened"},outputs:{openedChange:"openedChange",_openedStream:"opened",openedStart:"openedStart",_closedStream:"closed",closedStart:"closedStart",onPositionChanged:"positionChanged"},exportAs:["matDrawer"],ngContentSelectors:NcA,decls:3,vars:0,consts:[["content",""],["cdkScrollable","",1,"mat-drawer-inner-container"]],template:function(i,n){i&1&&(jt(),S(0,"div",1,0),Fe(2),F())},dependencies:[D0],encapsulation:2,changeDetection:0})}return t})(),TG=(()=>{class t{_dir=f(mo,{optional:!0});_element=f(ee);_ngZone=f(Qe);_changeDetectorRef=f(It);_animationMode=f(Si,{optional:!0});_transitionsEnabled=!1;_allDrawers;_drawers=new ca;_content;_userContent;get start(){return this._start}get end(){return this._end}get autosize(){return this._autosize}set autosize(A){this._autosize=Xo(A)}_autosize=f(sOA);get hasBackdrop(){return this._drawerHasBackdrop(this._start)||this._drawerHasBackdrop(this._end)}set hasBackdrop(A){this._backdropOverride=A==null?null:Xo(A)}_backdropOverride;backdropClick=new WA;_start;_end;_left;_right;_destroyed=new OA;_doCheckSubject=new OA;_contentMargins={left:null,right:null};_contentMarginChanges=new OA;get scrollable(){return this._userContent||this._content}_injector=f(Rt);constructor(){let A=f(Ii),i=f(Mc);this._dir?.change.pipe(St(this._destroyed)).subscribe(()=>{this._validateDrawers(),this.updateContentMargins()}),i.change().pipe(St(this._destroyed)).subscribe(()=>this.updateContentMargins()),this._animationMode!=="NoopAnimations"&&A.isBrowser&&this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{this._element.nativeElement.classList.add("mat-drawer-transition"),this._transitionsEnabled=!0},200)})}ngAfterContentInit(){this._allDrawers.changes.pipe(Pn(this._allDrawers),St(this._destroyed)).subscribe(A=>{this._drawers.reset(A.filter(i=>!i._container||i._container===this)),this._drawers.notifyOnChanges()}),this._drawers.changes.pipe(Pn(null)).subscribe(()=>{this._validateDrawers(),this._drawers.forEach(A=>{this._watchDrawerToggle(A),this._watchDrawerPosition(A),this._watchDrawerMode(A)}),(!this._drawers.length||this._isDrawerOpen(this._start)||this._isDrawerOpen(this._end))&&this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(()=>{this._doCheckSubject.pipe(el(10),St(this._destroyed)).subscribe(()=>this.updateContentMargins())})}ngOnDestroy(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}open(){this._drawers.forEach(A=>A.open())}close(){this._drawers.forEach(A=>A.close())}updateContentMargins(){let A=0,i=0;if(this._left&&this._left.opened){if(this._left.mode=="side")A+=this._left._getWidth();else if(this._left.mode=="push"){let n=this._left._getWidth();A+=n,i-=n}}if(this._right&&this._right.opened){if(this._right.mode=="side")i+=this._right._getWidth();else if(this._right.mode=="push"){let n=this._right._getWidth();i+=n,A-=n}}A=A||null,i=i||null,(A!==this._contentMargins.left||i!==this._contentMargins.right)&&(this._contentMargins={left:A,right:i},this._ngZone.run(()=>this._contentMarginChanges.next(this._contentMargins)))}ngDoCheck(){this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(()=>this._doCheckSubject.next())}_watchDrawerToggle(A){A._animationStarted.pipe(St(this._drawers.changes)).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),A.mode!=="side"&&A.openedChange.pipe(St(this._drawers.changes)).subscribe(()=>this._setContainerClass(A.opened))}_watchDrawerPosition(A){A.onPositionChanged.pipe(St(this._drawers.changes)).subscribe(()=>{To({read:()=>this._validateDrawers()},{injector:this._injector})})}_watchDrawerMode(A){A._modeChanged.pipe(St(zn(this._drawers.changes,this._destroyed))).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()})}_setContainerClass(A){let i=this._element.nativeElement.classList,n="mat-drawer-container-has-open";A?i.add(n):i.remove(n)}_validateDrawers(){this._start=this._end=null,this._drawers.forEach(A=>{A.position=="end"?(this._end!=null,this._end=A):(this._start!=null,this._start=A)}),this._right=this._left=null,this._dir&&this._dir.value==="rtl"?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}_isPushed(){return this._isDrawerOpen(this._start)&&this._start.mode!="over"||this._isDrawerOpen(this._end)&&this._end.mode!="over"}_onBackdropClicked(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}_closeModalDrawersViaBackdrop(){[this._start,this._end].filter(A=>A&&!A.disableClose&&this._drawerHasBackdrop(A)).forEach(A=>A._closeViaBackdropClick())}_isShowingBackdrop(){return this._isDrawerOpen(this._start)&&this._drawerHasBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._drawerHasBackdrop(this._end)}_isDrawerOpen(A){return A!=null&&A.opened}_drawerHasBackdrop(A){return this._backdropOverride==null?!!A&&A.mode!=="side":this._backdropOverride}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-drawer-container"]],contentQueries:function(i,n,o){if(i&1&&(ci(o,YG,5),ci(o,JG,5)),i&2){let r;XA(r=$A())&&(n._content=r.first),XA(r=$A())&&(n._allDrawers=r)}},viewQuery:function(i,n){if(i&1&&Te(YG,5),i&2){let o;XA(o=$A())&&(n._userContent=o.first)}},hostAttrs:[1,"mat-drawer-container"],hostVars:2,hostBindings:function(i,n){i&2&&ue("mat-drawer-container-explicit-backdrop",n._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[ht([{provide:_cA,useExisting:t}])],ngContentSelectors:nOA,decls:4,vars:2,consts:[[1,"mat-drawer-backdrop",3,"mat-drawer-shown"],[1,"mat-drawer-backdrop",3,"click"]],template:function(i,n){i&1&&(jt(iOA),_A(0,oOA,1,2,"div",0),Fe(1),Fe(2,1),_A(3,rOA,2,0,"mat-drawer-content")),i&2&&(GA(n.hasBackdrop?0:-1),G(3),GA(n._content?-1:3))},dependencies:[YG],styles:[".mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color, var(--mat-sys-on-background));background-color:var(--mat-sidenav-content-background-color, var(--mat-sys-background));box-sizing:border-box;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color, color-mix(in srgb, var(--mat-sys-neutral-variant20) 40%, transparent))}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}@media(forced-colors: active){.mat-drawer-backdrop{opacity:.5}}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-content.mat-drawer-content-hidden{opacity:0}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;color:var(--mat-sidenav-container-text-color, var(--mat-sys-on-surface-variant));box-shadow:var(--mat-sidenav-container-elevation-shadow, none);background-color:var(--mat-sidenav-container-background-color, var(--mat-sys-surface));border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));width:var(--mat-sidenav-container-width, 360px);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}@media(forced-colors: active){.mat-drawer,[dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}}@media(forced-colors: active){[dir=rtl] .mat-drawer,.mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer-transition .mat-drawer{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating){visibility:hidden;box-shadow:none}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating) .mat-drawer-inner-container{display:none}.mat-drawer.mat-drawer-opened.mat-drawer-opened{transform:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto}.mat-sidenav-fixed{position:fixed}"],encapsulation:2,changeDetection:0})}return t})();var GcA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[it,Cl,Cl,it]})}return t})();var PG=["*"];function lOA(t,e){t&1&&Fe(0)}var gOA=["tabListContainer"],IOA=["tabList"],COA=["tabListInner"],dOA=["nextPaginator"],BOA=["previousPaginator"],EOA=t=>({animationDuration:t}),QOA=(t,e)=>({value:t,params:e});function hOA(t,e){}var uOA=["tabBodyWrapper"],fOA=["tabHeader"];function mOA(t,e){}function pOA(t,e){if(t&1&&_A(0,mOA,0,0,"ng-template",12),t&2){let A=O().$implicit;yA("cdkPortalOutlet",A.templateLabel)}}function wOA(t,e){if(t&1&&AA(0),t&2){let A=O().$implicit;Gt(A.textLabel)}}function DOA(t,e){if(t&1){let A=be();S(0,"div",7,2),hA("click",function(){let n=RA(A),o=n.$implicit,r=n.$index,s=O(),a=cr(1);return xA(s._handleClick(o,a,r))})("cdkFocusChange",function(n){let o=RA(A).$index,r=O();return xA(r._tabFocusChanged(n,o))}),JA(2,"span",8)(3,"div",9),S(4,"span",10)(5,"span",11),_A(6,pOA,1,1,null,12)(7,wOA,1,1),F()()()}if(t&2){let A=e.$implicit,i=e.$index,n=cr(1),o=O();fo(A.labelClass),ue("mdc-tab--active",o.selectedIndex===i),yA("id",o._getTabLabelId(i))("disabled",A.disabled)("fitInkBarToContent",o.fitInkBarToContent),Ne("tabIndex",o._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",o._tabs.length)("aria-controls",o._getTabContentId(i))("aria-selected",o.selectedIndex===i)("aria-label",A.ariaLabel||null)("aria-labelledby",!A.ariaLabel&&A.ariaLabelledby?A.ariaLabelledby:null),G(3),yA("matRippleTrigger",n)("matRippleDisabled",A.disabled||o.disableRipple),G(3),GA(A.templateLabel?6:7)}}function yOA(t,e){t&1&&Fe(0)}function vOA(t,e){if(t&1){let A=be();S(0,"mat-tab-body",13),hA("_onCentered",function(){RA(A);let n=O();return xA(n._removeTabBodyWrapperHeight())})("_onCentering",function(n){RA(A);let o=O();return xA(o._setTabBodyWrapperHeight(n))}),F()}if(t&2){let A=e.$implicit,i=e.$index,n=O();fo(A.bodyClass),ue("mat-mdc-tab-body-active",n.selectedIndex===i),yA("id",n._getTabContentId(i))("content",A.content)("position",A.position)("origin",A.origin)("animationDuration",n.animationDuration)("preserveContent",n.preserveContent),Ne("tabindex",n.contentTabIndex!=null&&n.selectedIndex===i?n.contentTabIndex:null)("aria-labelledby",n._getTabLabelId(i))("aria-hidden",n.selectedIndex!==i)}}var bOA=new dA("MatTabContent"),MOA=(()=>{class t{template=f(wn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","matTabContent",""]],features:[ht([{provide:bOA,useExisting:t}])]})}return t})(),kOA=new dA("MatTabLabel"),YcA=new dA("MAT_TAB"),jG=(()=>{class t extends sP{_closestTab=f(YcA,{optional:!0});static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275dir=jA({type:t,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[ht([{provide:kOA,useExisting:t}]),lt]})}return t})(),JcA=new dA("MAT_TAB_GROUP"),mf=(()=>{class t{_viewContainerRef=f(Nn);_closestTabGroup=f(JcA,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(A){this._setTemplateLabelInput(A)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new OA;position=null;origin=null;isActive=!1;constructor(){f(Rn).load(lr)}ngOnChanges(A){(A.hasOwnProperty("textLabel")||A.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new ys(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(A){A&&A._closestTab===this&&(this._templateLabel=A)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-tab"]],contentQueries:function(i,n,o){if(i&1&&(ci(o,jG,5),ci(o,MOA,7,wn)),i&2){let r;XA(r=$A())&&(n.templateLabel=r.first),XA(r=$A())&&(n._explicitContent=r.first)}},viewQuery:function(i,n){if(i&1&&Te(wn,7),i&2){let o;XA(o=$A())&&(n._implicitContent=o.first)}},hostAttrs:["hidden",""],inputs:{disabled:[2,"disabled","disabled",ie],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},exportAs:["matTab"],features:[ht([{provide:YcA,useExisting:t}]),ti],ngContentSelectors:PG,decls:1,vars:0,template:function(i,n){i&1&&(jt(),_A(0,lOA,1,0,"ng-template"))},encapsulation:2})}return t})(),HG="mdc-tab-indicator--active",UcA="mdc-tab-indicator--no-transition",zG=class{_items;_currentItem;constructor(e){this._items=e}hide(){this._items.forEach(e=>e.deactivateInkBar()),this._currentItem=void 0}alignToElement(e){let A=this._items.find(n=>n.elementRef.nativeElement===e),i=this._currentItem;if(A!==i&&(i?.deactivateInkBar(),A)){let n=i?.elementRef.nativeElement.getBoundingClientRect?.();A.activateInkBar(n),this._currentItem=A}}},SOA=(()=>{class t{_elementRef=f(ee);_inkBarElement;_inkBarContentElement;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(A){this._fitToContent!==A&&(this._fitToContent=A,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(A){let i=this._elementRef.nativeElement;if(!A||!i.getBoundingClientRect||!this._inkBarContentElement){i.classList.add(HG);return}let n=i.getBoundingClientRect(),o=A.width/n.width,r=A.left-n.left;i.classList.add(UcA),this._inkBarContentElement.style.setProperty("transform",`translateX(${r}px) scaleX(${o})`),i.getBoundingClientRect(),i.classList.remove(UcA),i.classList.add(HG),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(HG)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){let A=this._elementRef.nativeElement.ownerDocument||document,i=this._inkBarElement=A.createElement("span"),n=this._inkBarContentElement=A.createElement("span");i.className="mdc-tab-indicator",n.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",i.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){this._inkBarElement;let A=this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement;A.appendChild(this._inkBarElement)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",ie]}})}return t})();var TcA=(()=>{class t extends SOA{elementRef=f(ee);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275dir=jA({type:t,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,n){i&2&&(Ne("aria-disabled",!!n.disabled),ue("mat-mdc-tab-disabled",n.disabled))},inputs:{disabled:[2,"disabled","disabled",ie]},features:[lt]})}return t})(),KcA={passive:!0},ROA=650,xOA=100,LOA=(()=>{class t{_elementRef=f(ee);_changeDetectorRef=f(It);_viewportRuler=f(Mc);_dir=f(mo,{optional:!0});_ngZone=f(Qe);_platform=f(Ii);_sharedResizeObserver=f(B8);_injector=f(Rt);_renderer=f(Wi);_animationMode=f(Si,{optional:!0});_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new OA;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged;_keyManager;_currentTextContent;_stopScrolling=new OA;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(A){let i=isNaN(A)?0:A;this._selectedIndex!=i&&(this._selectedIndexChanged=!0,this._selectedIndex=i,this._keyManager&&this._keyManager.updateActiveItem(i))}_selectedIndex=0;selectFocusedIndex=new WA;indexFocused=new WA;constructor(){this._eventCleanups=this._ngZone.runOutsideAngular(()=>[this._renderer.listen(this._elementRef.nativeElement,"mouseleave",()=>this._stopInterval())])}ngAfterViewInit(){this._eventCleanups.push(sk(this._renderer,this._previousPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("before"),KcA),sk(this._renderer,this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),KcA))}ngAfterContentInit(){let A=this._dir?this._dir.change:Me("ltr"),i=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(el(32),St(this._destroyed)),n=this._viewportRuler.change(150).pipe(St(this._destroyed)),o=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new qI(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(this._selectedIndex),To(o,{injector:this._injector}),zn(A,n,i,this._items.changes,this._itemsResized()).pipe(St(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),o()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(r=>{this.indexFocused.emit(r),this._setTabFocus(r)})}_itemsResized(){return typeof ResizeObserver!="function"?sr:this._items.changes.pipe(Pn(this._items),jn(A=>new ct(i=>this._ngZone.runOutsideAngular(()=>{let n=new ResizeObserver(o=>i.next(o));return A.forEach(o=>n.observe(o.elementRef.nativeElement)),()=>{n.disconnect()}}))),CI(1),kt(A=>A.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._eventCleanups.forEach(A=>A()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(A){if(!ir(A))switch(A.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){let i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(A))}break;default:this._keyManager.onKeydown(A)}}_onContentChanges(){let A=this._elementRef.nativeElement.textContent;A!==this._currentTextContent&&(this._currentTextContent=A||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(A){!this._isValidIndex(A)||this.focusIndex===A||!this._keyManager||this._keyManager.setActiveItem(A)}_isValidIndex(A){return this._items?!!this._items.toArray()[A]:!0}_setTabFocus(A){if(this._showPaginationControls&&this._scrollToLabel(A),this._items&&this._items.length){this._items.toArray()[A].focus();let i=this._tabListContainer.nativeElement;this._getLayoutDirection()=="ltr"?i.scrollLeft=0:i.scrollLeft=i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;let A=this.scrollDistance,i=this._getLayoutDirection()==="ltr"?-A:A;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(A){this._scrollTo(A)}_scrollHeader(A){let i=this._tabListContainer.nativeElement.offsetWidth,n=(A=="before"?-1:1)*i/3;return this._scrollTo(this._scrollDistance+n)}_handlePaginatorClick(A){this._stopInterval(),this._scrollHeader(A)}_scrollToLabel(A){if(this.disablePagination)return;let i=this._items?this._items.toArray()[A]:null;if(!i)return;let n=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:o,offsetWidth:r}=i.elementRef.nativeElement,s,a;this._getLayoutDirection()=="ltr"?(s=o,a=s+r):(a=this._tabListInner.nativeElement.offsetWidth-o,s=a-r);let c=this.scrollDistance,l=this.scrollDistance+n;sl&&(this.scrollDistance+=Math.min(a-l,s-c))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{let A=this._tabListInner.nativeElement.scrollWidth,i=this._elementRef.nativeElement.offsetWidth,n=A-i>=5;n||(this.scrollDistance=0),n!==this._showPaginationControls&&(this._showPaginationControls=n,this._changeDetectorRef.markForCheck())}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=this.scrollDistance==0,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){let A=this._tabListInner.nativeElement.scrollWidth,i=this._tabListContainer.nativeElement.offsetWidth;return A-i||0}_alignInkBarToSelectedTab(){let A=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=A?A.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(A,i){i&&i.button!=null&&i.button!==0||(this._stopInterval(),II(ROA,xOA).pipe(St(zn(this._stopScrolling,this._destroyed))).subscribe(()=>{let{maxScrollDistance:n,distance:o}=this._scrollHeader(A);(o===0||o>=n)&&this._stopInterval()}))}_scrollTo(A){if(this.disablePagination)return{maxScrollDistance:0,distance:0};let i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,A)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,inputs:{disablePagination:[2,"disablePagination","disablePagination",ie],selectedIndex:[2,"selectedIndex","selectedIndex",zi]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return t})(),FOA=(()=>{class t extends LOA{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new zG(this._items),super.ngAfterContentInit()}_itemSelected(A){A.preventDefault()}static \u0275fac=(()=>{let A;return function(n){return(A||(A=Hi(t)))(n||t)}})();static \u0275cmp=zA({type:t,selectors:[["mat-tab-header"]],contentQueries:function(i,n,o){if(i&1&&ci(o,TcA,4),i&2){let r;XA(r=$A())&&(n._items=r)}},viewQuery:function(i,n){if(i&1&&(Te(gOA,7),Te(IOA,7),Te(COA,7),Te(dOA,5),Te(BOA,5)),i&2){let o;XA(o=$A())&&(n._tabListContainer=o.first),XA(o=$A())&&(n._tabList=o.first),XA(o=$A())&&(n._tabListInner=o.first),XA(o=$A())&&(n._nextPaginator=o.first),XA(o=$A())&&(n._previousPaginator=o.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,n){i&2&&ue("mat-mdc-tab-header-pagination-controls-enabled",n._showPaginationControls)("mat-mdc-tab-header-rtl",n._getLayoutDirection()=="rtl")},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",ie]},features:[lt],ngContentSelectors:PG,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(i,n){if(i&1){let o=be();jt(),S(0,"div",5,0),hA("click",function(){return RA(o),xA(n._handlePaginatorClick("before"))})("mousedown",function(s){return RA(o),xA(n._handlePaginatorPress("before",s))})("touchend",function(){return RA(o),xA(n._stopInterval())}),JA(2,"div",6),F(),S(3,"div",7,1),hA("keydown",function(s){return RA(o),xA(n._handleKeydown(s))}),S(5,"div",8,2),hA("cdkObserveContent",function(){return RA(o),xA(n._onContentChanges())}),S(7,"div",9,3),Fe(9),F()()(),S(10,"div",10,4),hA("mousedown",function(s){return RA(o),xA(n._handlePaginatorPress("after",s))})("click",function(){return RA(o),xA(n._handlePaginatorClick("after"))})("touchend",function(){return RA(o),xA(n._stopInterval())}),JA(12,"div",6),F()}i&2&&(ue("mat-mdc-tab-header-pagination-disabled",n._disableScrollBefore),yA("matRippleDisabled",n._disableScrollBefore||n.disableRipple),G(3),ue("_mat-animation-noopable",n._animationMode==="NoopAnimations"),G(2),Ne("aria-label",n.ariaLabel||null)("aria-labelledby",n.ariaLabelledby||null),G(5),ue("mat-mdc-tab-header-pagination-disabled",n._disableScrollAfter),yA("matRippleDisabled",n._disableScrollAfter||n.disableRipple))},dependencies:[rs,V6],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height, 1px);border-bottom-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-header-divider-height, 1px);border-top-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mdc-secondary-navigation-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}"],encapsulation:2})}return t})(),NOA=new dA("MAT_TABS_CONFIG"),_OA={translateTab:sc("translateTab",[js("center, void, left-origin-center, right-origin-center",po({transform:"none",visibility:"visible"})),js("left",po({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),js("right",po({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),Vr("* => left, * => right, left => center, right => center",ss("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),Vr("void => left-origin-center",[po({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),ss("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),Vr("void => right-origin-center",[po({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),ss("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])},GOA=(()=>{class t extends fa{_host=f(HcA);_centeringSub=Kt.EMPTY;_leavingSub=Kt.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(Pn(this._host._isCenterPosition(this._host._position))).subscribe(A=>{this._host._content&&A&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","matTabBodyHost",""]],features:[lt]})}return t})(),HcA=(()=>{class t{_elementRef=f(ee);_dir=f(mo,{optional:!0});_positionIndex;_dirChangeSubscription=Kt.EMPTY;_position;_translateTabComplete=new OA;_onCentering=new WA;_beforeCentering=new WA;_afterLeavingCenter=new WA;_onCentered=new WA(!0);_portalHost;_content;origin;animationDuration="500ms";preserveContent=!1;set position(A){this._positionIndex=A,this._computePositionAnimationState()}constructor(){if(this._dir){let A=f(It);this._dirChangeSubscription=this._dir.change.subscribe(i=>{this._computePositionAnimationState(i),A.markForCheck()})}this._translateTabComplete.subscribe(A=>{this._isCenterPosition(A.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(A.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}ngOnInit(){this._position=="center"&&this.origin!=null&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(A){let i=this._isCenterPosition(A.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_isCenterPosition(A){return A=="center"||A=="left-origin-center"||A=="right-origin-center"}_computePositionAnimationState(A=this._getLayoutDirection()){this._positionIndex<0?this._position=A=="ltr"?"left":"right":this._positionIndex>0?this._position=A=="ltr"?"right":"left":this._position="center"}_computePositionFromOrigin(A){let i=this._getLayoutDirection();return i=="ltr"&&A<=0||i=="rtl"&&A>0?"left-origin-center":"right-origin-center"}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-tab-body"]],viewQuery:function(i,n){if(i&1&&Te(fa,5),i&2){let o;XA(o=$A())&&(n._portalHost=o.first)}},hostAttrs:[1,"mat-mdc-tab-body"],inputs:{_content:[0,"content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(i,n){if(i&1){let o=be();S(0,"div",1,0),hA("@translateTab.start",function(s){return RA(o),xA(n._onTranslateTabStarted(s))})("@translateTab.done",function(s){return RA(o),xA(n._translateTabComplete.next(s))}),_A(2,hOA,0,0,"ng-template",2),F()}i&2&&yA("@translateTab",b2(3,QOA,n._position,qr(1,EOA,n.animationDuration)))},dependencies:[GOA,D0],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[_OA.translateTab]}})}return t})(),UOA=!0,o7=(()=>{class t{_elementRef=f(ee);_changeDetectorRef=f(It);_animationMode=f(Si,{optional:!0});_allTabs;_tabBodyWrapper;_tabHeader;_tabs=new ca;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;_tabsSubscription=Kt.EMPTY;_tabLabelSubscription=Kt.EMPTY;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(A){this._fitInkBarToContent=A,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(A){this._indexToSelect=isNaN(A)?null:A}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(A){let i=A+"";this._animationDuration=/^\d+$/.test(i)?A+"ms":i}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(A){this._contentTabIndex=isNaN(A)?null:A}_contentTabIndex;disablePagination=!1;disableRipple=!1;preserveContent=!1;get backgroundColor(){return this._backgroundColor}set backgroundColor(A){if(!UOA)throw new Error("mat-tab-group background color must be set through the Sass theming API");let i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),A&&i.add("mat-tabs-with-background",`mat-background-${A}`),this._backgroundColor=A}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new WA;focusChange=new WA;animationDone=new WA;selectedTabChange=new WA(!0);_groupId;_isServer=!f(Ii).isBrowser;constructor(){let A=f(NOA,{optional:!0});this._groupId=f(sn).getId("mat-tab-group-"),this.animationDuration=A&&A.animationDuration?A.animationDuration:"500ms",this.disablePagination=A&&A.disablePagination!=null?A.disablePagination:!1,this.dynamicHeight=A&&A.dynamicHeight!=null?A.dynamicHeight:!1,A?.contentTabIndex!=null&&(this.contentTabIndex=A.contentTabIndex),this.preserveContent=!!A?.preserveContent,this.fitInkBarToContent=A&&A.fitInkBarToContent!=null?A.fitInkBarToContent:!1,this.stretchTabs=A&&A.stretchTabs!=null?A.stretchTabs:!0,this.alignTabs=A&&A.alignTabs!=null?A.alignTabs:null}ngAfterContentChecked(){let A=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=A){let i=this._selectedIndex==null;if(!i){this.selectedTabChange.emit(this._createChangeEvent(A));let n=this._tabBodyWrapper.nativeElement;n.style.minHeight=n.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((n,o)=>n.isActive=o===A),i||(this.selectedIndexChange.emit(A),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,n)=>{i.position=n-A,this._selectedIndex!=null&&i.position==0&&!i.origin&&(i.origin=A-this._selectedIndex)}),this._selectedIndex!==A&&(this._selectedIndex=A,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{let A=this._clampTabIndex(this._indexToSelect);if(A===this._selectedIndex){let i=this._tabs.toArray(),n;for(let o=0;o{i[A].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(A))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(Pn(this._allTabs)).subscribe(A=>{this._tabs.reset(A.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(A){let i=this._tabHeader;i&&(i.focusIndex=A)}_focusChanged(A){this._lastFocusedTabIndex=A,this.focusChange.emit(this._createChangeEvent(A))}_createChangeEvent(A){let i=new OG;return i.index=A,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[A]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=zn(...this._tabs.map(A=>A._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(A){return Math.min(this._tabs.length-1,Math.max(A||0,0))}_getTabLabelId(A){return`${this._groupId}-label-${A}`}_getTabContentId(A){return`${this._groupId}-content-${A}`}_setTabBodyWrapperHeight(A){if(!this.dynamicHeight||!this._tabBodyWrapperHeight)return;let i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=A+"px")}_removeTabBodyWrapperHeight(){let A=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=A.clientHeight,A.style.height="",this.animationDone.emit()}_handleClick(A,i,n){i.focusIndex=n,A.disabled||(this.selectedIndex=n)}_getTabIndex(A){let i=this._lastFocusedTabIndex??this.selectedIndex;return A===i?0:-1}_tabFocusChanged(A,i){A&&A!=="mouse"&&A!=="touch"&&(this._tabHeader.focusIndex=i)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-tab-group"]],contentQueries:function(i,n,o){if(i&1&&ci(o,mf,5),i&2){let r;XA(r=$A())&&(n._allTabs=r)}},viewQuery:function(i,n){if(i&1&&(Te(uOA,5),Te(fOA,5)),i&2){let o;XA(o=$A())&&(n._tabBodyWrapper=o.first),XA(o=$A())&&(n._tabHeader=o.first)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(i,n){i&2&&(Ne("mat-align-tabs",n.alignTabs),fo("mat-"+(n.color||"primary")),uo("--mat-tab-animation-duration",n.animationDuration),ue("mat-mdc-tab-group-dynamic-height",n.dynamicHeight)("mat-mdc-tab-group-inverted-header",n.headerPosition==="below")("mat-mdc-tab-group-stretch-tabs",n.stretchTabs))},inputs:{color:"color",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",ie],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",ie],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",ie],selectedIndex:[2,"selectedIndex","selectedIndex",zi],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",zi],disablePagination:[2,"disablePagination","disablePagination",ie],disableRipple:[2,"disableRipple","disableRipple",ie],preserveContent:[2,"preserveContent","preserveContent",ie],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[ht([{provide:JcA,useExisting:t}])],ngContentSelectors:PG,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","mat-mdc-tab-body-active","class","content","position","origin","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","id","content","position","origin","animationDuration","preserveContent"]],template:function(i,n){if(i&1){let o=be();jt(),S(0,"mat-tab-header",3,0),hA("indexFocused",function(s){return RA(o),xA(n._focusChanged(s))})("selectFocusedIndex",function(s){return RA(o),xA(n.selectedIndex=s)}),Dn(2,DOA,8,17,"div",4,to),F(),_A(4,yOA,1,0),S(5,"div",5,1),Dn(7,vOA,1,13,"mat-tab-body",6,to),F()}i&2&&(yA("selectedIndex",n.selectedIndex||0)("disableRipple",n.disableRipple)("disablePagination",n.disablePagination)("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby),G(2),yn(n._tabs),G(2),GA(n._isServer?4:-1),G(),ue("_mat-animation-noopable",n._animationMode==="NoopAnimations"),G(2),yn(n._tabs))},dependencies:[FOA,TcA,PO,rs,fa,HcA],styles:['.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mdc-secondary-navigation-tab-container-height, 48px);font-family:var(--mat-tab-header-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-header-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-header-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-header-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-header-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-tab-indicator-active-indicator-height, 2px);border-radius:var(--mdc-tab-indicator-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2})}return t})(),OG=class{index;tab};var zcA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[it,it]})}return t})();function KOA(t,e){t&1&&JA(0,"div",2)}var YOA=new dA("MAT_PROGRESS_BAR_DEFAULT_OPTIONS");var jcA=(()=>{class t{_elementRef=f(ee);_ngZone=f(Qe);_changeDetectorRef=f(It);_renderer=f(Wi);_cleanupTransitionEnd;_animationMode=f(Si,{optional:!0});constructor(){let A=f(YOA,{optional:!0});this._isNoopAnimation=this._animationMode==="NoopAnimations",A&&(A.color&&(this.color=this._defaultColor=A.color),this.mode=A.mode||this.mode)}_isNoopAnimation=!1;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;_defaultColor="primary";get value(){return this._value}set value(A){this._value=PcA(A||0),this._changeDetectorRef.markForCheck()}_value=0;get bufferValue(){return this._bufferValue||0}set bufferValue(A){this._bufferValue=PcA(A||0),this._changeDetectorRef.markForCheck()}_bufferValue=0;animationEnd=new WA;get mode(){return this._mode}set mode(A){this._mode=A,this._changeDetectorRef.markForCheck()}_mode="determinate";ngAfterViewInit(){this._ngZone.runOutsideAngular(()=>{this._cleanupTransitionEnd=this._renderer.listen(this._elementRef.nativeElement,"transitionend",this._transitionendHandler)})}ngOnDestroy(){this._cleanupTransitionEnd?.()}_getPrimaryBarTransform(){return`scaleX(${this._isIndeterminate()?1:this.value/100})`}_getBufferBarFlexBasis(){return`${this.mode==="buffer"?this.bufferValue:100}%`}_isIndeterminate(){return this.mode==="indeterminate"||this.mode==="query"}_transitionendHandler=A=>{this.animationEnd.observers.length===0||!A.target||!A.target.classList.contains("mdc-linear-progress__primary-bar")||(this.mode==="determinate"||this.mode==="buffer")&&this._ngZone.run(()=>this.animationEnd.next({value:this.value}))};static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-progress-bar"]],hostAttrs:["role","progressbar","aria-valuemin","0","aria-valuemax","100","tabindex","-1",1,"mat-mdc-progress-bar","mdc-linear-progress"],hostVars:10,hostBindings:function(i,n){i&2&&(Ne("aria-valuenow",n._isIndeterminate()?null:n.value)("mode",n.mode),fo("mat-"+n.color),ue("_mat-animation-noopable",n._isNoopAnimation)("mdc-linear-progress--animation-ready",!n._isNoopAnimation)("mdc-linear-progress--indeterminate",n._isIndeterminate()))},inputs:{color:"color",value:[2,"value","value",zi],bufferValue:[2,"bufferValue","bufferValue",zi],mode:"mode"},outputs:{animationEnd:"animationEnd"},exportAs:["matProgressBar"],decls:7,vars:5,consts:[["aria-hidden","true",1,"mdc-linear-progress__buffer"],[1,"mdc-linear-progress__buffer-bar"],[1,"mdc-linear-progress__buffer-dots"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__primary-bar"],[1,"mdc-linear-progress__bar-inner"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__secondary-bar"]],template:function(i,n){i&1&&(S(0,"div",0),JA(1,"div",1),_A(2,KOA,1,0,"div",2),F(),S(3,"div",3),JA(4,"span",4),F(),S(5,"div",5),JA(6,"span",4),F()),i&2&&(G(),uo("flex-basis",n._getBufferBarFlexBasis()),G(),GA(n.mode==="buffer"?2:-1),G(),uo("transform",n._getPrimaryBarTransform()))},styles:[`.mat-mdc-progress-bar{display:block;text-align:start}.mat-mdc-progress-bar[mode=query]{transform:scaleX(-1)}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-dots,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__secondary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__bar-inner.mdc-linear-progress__bar-inner{animation:none}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-bar{transition:transform 1ms}.mdc-linear-progress{position:relative;width:100%;transform:translateZ(0);outline:1px solid rgba(0,0,0,0);overflow-x:hidden;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);height:max(var(--mdc-linear-progress-track-height, 4px),var(--mdc-linear-progress-active-indicator-height, 4px))}@media(forced-colors: active){.mdc-linear-progress{outline-color:CanvasText}}.mdc-linear-progress__bar{position:absolute;top:0;bottom:0;margin:auto 0;width:100%;animation:none;transform-origin:top left;transition:transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);height:var(--mdc-linear-progress-active-indicator-height, 4px)}.mdc-linear-progress--indeterminate .mdc-linear-progress__bar{transition:none}[dir=rtl] .mdc-linear-progress__bar{right:0;transform-origin:center right}.mdc-linear-progress__bar-inner{display:inline-block;position:absolute;width:100%;animation:none;border-top-style:solid;border-color:var(--mdc-linear-progress-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-linear-progress-active-indicator-height, 4px)}.mdc-linear-progress__buffer{display:flex;position:absolute;top:0;bottom:0;margin:auto 0;width:100%;overflow:hidden;height:var(--mdc-linear-progress-track-height, 4px);border-radius:var(--mdc-linear-progress-track-shape, var(--mat-sys-corner-none))}.mdc-linear-progress__buffer-dots{-webkit-mask-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E");background-repeat:repeat-x;flex:auto;transform:rotate(180deg);animation:mdc-linear-progress-buffering 250ms infinite linear;background-color:var(--mdc-linear-progress-track-color, var(--mat-sys-surface-variant))}@media(forced-colors: active){.mdc-linear-progress__buffer-dots{background-color:ButtonBorder}}[dir=rtl] .mdc-linear-progress__buffer-dots{animation:mdc-linear-progress-buffering-reverse 250ms infinite linear;transform:rotate(0)}.mdc-linear-progress__buffer-bar{flex:0 1 100%;transition:flex-basis 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);background-color:var(--mdc-linear-progress-track-color, var(--mat-sys-surface-variant))}.mdc-linear-progress__primary-bar{transform:scaleX(0)}.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{left:-145.166611%}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation:mdc-linear-progress-primary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-primary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation-name:mdc-linear-progress-primary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{right:-145.166611%;left:auto}.mdc-linear-progress__secondary-bar{display:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{left:-54.888891%;display:block}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation:mdc-linear-progress-secondary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-secondary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation-name:mdc-linear-progress-secondary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{right:-54.888891%;left:auto}@keyframes mdc-linear-progress-buffering{from{transform:rotate(180deg) translateX(calc(var(--mdc-linear-progress-track-height, 4px) * -2.5))}}@keyframes mdc-linear-progress-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(83.67142%)}100%{transform:translateX(200.611057%)}}@keyframes mdc-linear-progress-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(84.386165%)}100%{transform:translateX(160.277782%)}}@keyframes mdc-linear-progress-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-primary-indeterminate-translate-reverse{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(-83.67142%)}100%{transform:translateX(-200.611057%)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate-reverse{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(-37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(-84.386165%)}100%{transform:translateX(-160.277782%)}}@keyframes mdc-linear-progress-buffering-reverse{from{transform:translateX(-10px)}}`],encapsulation:2,changeDetection:0})}return t})();function PcA(t,e=0,A=100){return Math.max(e,Math.min(A,t))}var qcA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[it]})}return t})();function WG(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var sd=WG();function AlA(t){sd=t}var Df={exec:()=>null};function Zn(t,e=""){let A=typeof t=="string"?t:t.source,i={replace:(n,o)=>{let r=typeof o=="string"?o:o.source;return r=r.replace(ea.caret,"$1"),A=A.replace(n,r),i},getRegex:()=>new RegExp(A,e)};return i}var ea={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i")},TOA=/^(?:[ \t]*(?:\n|$))+/,HOA=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,zOA=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,yf=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,OOA=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,XG=/(?:[*+-]|\d{1,9}[.)])/,elA=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,tlA=Zn(elA).replace(/bull/g,XG).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),POA=Zn(elA).replace(/bull/g,XG).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),$G=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,jOA=/^[^\n]+/,AU=/(?!\s*\])(?:\\.|[^\[\]\\])+/,qOA=Zn(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",AU).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),VOA=Zn(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,XG).getRegex(),l7="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",eU=/|$))/,ZOA=Zn("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",eU).replace("tag",l7).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ilA=Zn($G).replace("hr",yf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",l7).getRegex(),WOA=Zn(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",ilA).getRegex(),tU={blockquote:WOA,code:HOA,def:qOA,fences:zOA,heading:OOA,hr:yf,html:ZOA,lheading:tlA,list:VOA,newline:TOA,paragraph:ilA,table:Df,text:jOA},VcA=Zn("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",yf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",l7).getRegex(),XOA=Ye(rA({},tU),{lheading:POA,table:VcA,paragraph:Zn($G).replace("hr",yf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",VcA).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",l7).getRegex()}),$OA=Ye(rA({},tU),{html:Zn(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",eU).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Df,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Zn($G).replace("hr",yf).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",tlA).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()}),APA=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,ePA=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,nlA=/^( {2,}|\\)\n(?!\s*$)/,tPA=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,slA=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,sPA=Zn(slA,"u").replace(/punct/g,g7).getRegex(),aPA=Zn(slA,"u").replace(/punct/g,rlA).getRegex(),alA="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",cPA=Zn(alA,"gu").replace(/notPunctSpace/g,olA).replace(/punctSpace/g,iU).replace(/punct/g,g7).getRegex(),lPA=Zn(alA,"gu").replace(/notPunctSpace/g,oPA).replace(/punctSpace/g,nPA).replace(/punct/g,rlA).getRegex(),gPA=Zn("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,olA).replace(/punctSpace/g,iU).replace(/punct/g,g7).getRegex(),IPA=Zn(/\\(punct)/,"gu").replace(/punct/g,g7).getRegex(),CPA=Zn(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),dPA=Zn(eU).replace("(?:-->|$)","-->").getRegex(),BPA=Zn("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",dPA).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),a7=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,EPA=Zn(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",a7).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),clA=Zn(/^!?\[(label)\]\[(ref)\]/).replace("label",a7).replace("ref",AU).getRegex(),llA=Zn(/^!?\[(ref)\](?:\[\])?/).replace("ref",AU).getRegex(),QPA=Zn("reflink|nolink(?!\\()","g").replace("reflink",clA).replace("nolink",llA).getRegex(),nU={_backpedal:Df,anyPunctuation:IPA,autolink:CPA,blockSkip:rPA,br:nlA,code:ePA,del:Df,emStrongLDelim:sPA,emStrongRDelimAst:cPA,emStrongRDelimUnd:gPA,escape:APA,link:EPA,nolink:llA,punctuation:iPA,reflink:clA,reflinkSearch:QPA,tag:BPA,text:tPA,url:Df},hPA=Ye(rA({},nU),{link:Zn(/^!?\[(label)\]\((.*?)\)/).replace("label",a7).getRegex(),reflink:Zn(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",a7).getRegex()}),qG=Ye(rA({},nU),{emStrongRDelimAst:lPA,emStrongLDelim:aPA,url:Zn(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},ZcA=t=>fPA[t];function A0(t,e){if(e){if(ea.escapeTest.test(t))return t.replace(ea.escapeReplace,ZcA)}else if(ea.escapeTestNoEncode.test(t))return t.replace(ea.escapeReplaceNoEncode,ZcA);return t}function WcA(t){try{t=encodeURI(t).replace(ea.percentDecode,"%")}catch{return null}return t}function XcA(t,e){let A=t.replace(ea.findPipe,(o,r,s)=>{let a=!1,c=r;for(;--c>=0&&s[c]==="\\";)a=!a;return a?"|":" |"}),i=A.split(ea.splitPipe),n=0;if(i[0].trim()||i.shift(),i.length>0&&!i.at(-1)?.trim()&&i.pop(),e)if(i.length>e)i.splice(e);else for(;i.length0?-2:-1}function $cA(t,e,A,i,n){let o=e.href,r=e.title||null,s=t[1].replace(n.other.outputLinkReplace,"$1");i.state.inLink=!0;let a={type:t[0].charAt(0)==="!"?"image":"link",raw:A,href:o,title:r,text:s,tokens:i.inlineTokens(s)};return i.state.inLink=!1,a}function pPA(t,e,A){let i=t.match(A.other.indentCodeCompensation);if(i===null)return e;let n=i[1];return e.split(` -`).map(o=>{let r=o.match(A.other.beginningSpace);if(r===null)return o;let[s]=r;return s.length>=n.length?o.slice(n.length):o}).join(` -`)}var c7=class{options;rules;lexer;constructor(t){this.options=t||sd}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let A=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?A:wf(A,` -`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let A=e[0],i=pPA(A,e[3]||"",this.rules);return{type:"code",raw:A,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:i}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let A=e[2].trim();if(this.rules.other.endingHash.test(A)){let i=wf(A,"#");(this.options.pedantic||!i||this.rules.other.endingSpaceChar.test(i))&&(A=i.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:A,tokens:this.lexer.inline(A)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:wf(e[0],` -`)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let A=wf(e[0],` -`).split(` -`),i="",n="",o=[];for(;A.length>0;){let r=!1,s=[],a;for(a=0;a1,n={type:"list",raw:"",ordered:i,start:i?+A.slice(0,-1):"",loose:!1,items:[]};A=i?`\\d{1,9}\\${A.slice(-1)}`:`\\${A}`,this.options.pedantic&&(A=i?A:"[*+-]");let o=this.rules.other.listItemRegex(A),r=!1;for(;t;){let a=!1,c="",l="";if(!(e=o.exec(t))||this.rules.block.hr.test(t))break;c=e[0],t=t.substring(c.length);let I=e[2].split(` -`,1)[0].replace(this.rules.other.listReplaceTabs,u=>" ".repeat(3*u.length)),C=t.split(` -`,1)[0],d=!I.trim(),B=0;if(this.options.pedantic?(B=2,l=I.trimStart()):d?B=e[1].length+1:(B=e[2].search(this.rules.other.nonSpaceChar),B=B>4?1:B,l=I.slice(B),B+=e[1].length),d&&this.rules.other.blankLine.test(C)&&(c+=C+` -`,t=t.substring(C.length+1),a=!0),!a){let u=this.rules.other.nextBulletRegex(B),D=this.rules.other.hrRegex(B),L=this.rules.other.fencesBeginRegex(B),R=this.rules.other.headingBeginRegex(B),w=this.rules.other.htmlBeginRegex(B);for(;t;){let _=t.split(` -`,1)[0],K;if(C=_,this.options.pedantic?(C=C.replace(this.rules.other.listReplaceNesting," "),K=C):K=C.replace(this.rules.other.tabCharGlobal," "),L.test(C)||R.test(C)||w.test(C)||u.test(C)||D.test(C))break;if(K.search(this.rules.other.nonSpaceChar)>=B||!C.trim())l+=` -`+K.slice(B);else{if(d||I.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||L.test(I)||R.test(I)||D.test(I))break;l+=` -`+C}!d&&!C.trim()&&(d=!0),c+=_+` -`,t=t.substring(_.length+1),I=K.slice(B)}}n.loose||(r?n.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(r=!0));let E=null,h;this.options.gfm&&(E=this.rules.other.listIsTask.exec(l),E&&(h=E[0]!=="[ ] ",l=l.replace(this.rules.other.listReplaceTask,""))),n.items.push({type:"list_item",raw:c,task:!!E,checked:h,loose:!1,text:l,tokens:[]}),n.raw+=c}let s=n.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;n.raw=n.raw.trimEnd();for(let a=0;aI.type==="space"),l=c.length>0&&c.some(I=>this.rules.other.anyLine.test(I.raw));n.loose=l}if(n.loose)for(let a=0;a({text:s,tokens:this.lexer.inline(s),header:!1,align:o.align[a]})));return o}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let A=e[1].charAt(e[1].length-1)===` -`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:A,tokens:this.lexer.inline(A)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let A=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(A)){if(!this.rules.other.endAngleBracket.test(A))return;let o=wf(A.slice(0,-1),"\\");if((A.length-o.length)%2===0)return}else{let o=mPA(e[2],"()");if(o===-2)return;if(o>-1){let s=(e[0].indexOf("!")===0?5:4)+e[1].length+o;e[2]=e[2].substring(0,o),e[0]=e[0].substring(0,s).trim(),e[3]=""}}let i=e[2],n="";if(this.options.pedantic){let o=this.rules.other.pedanticHrefTitle.exec(i);o&&(i=o[1],n=o[3])}else n=e[3]?e[3].slice(1,-1):"";return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(A)?i=i.slice(1):i=i.slice(1,-1)),$cA(e,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let A;if((A=this.rules.inline.reflink.exec(t))||(A=this.rules.inline.nolink.exec(t))){let i=(A[2]||A[1]).replace(this.rules.other.multipleSpaceGlobal," "),n=e[i.toLowerCase()];if(!n){let o=A[0].charAt(0);return{type:"text",raw:o,text:o}}return $cA(A,n,A[0],this.lexer,this.rules)}}emStrong(t,e,A=""){let i=this.rules.inline.emStrongLDelim.exec(t);if(!i||i[3]&&A.match(this.rules.other.unicodeAlphaNumeric))return;if(!(i[1]||i[2]||"")||!A||this.rules.inline.punctuation.exec(A)){let o=[...i[0]].length-1,r,s,a=o,c=0,l=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(l.lastIndex=0,e=e.slice(-1*t.length+o);(i=l.exec(e))!=null;){if(r=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!r)continue;if(s=[...r].length,i[3]||i[4]){a+=s;continue}else if((i[5]||i[6])&&o%3&&!((o+s)%3)){c+=s;continue}if(a-=s,a>0)continue;s=Math.min(s,s+a+c);let I=[...i[0]][0].length,C=t.slice(0,o+i.index+I+s);if(Math.min(o,s)%2){let B=C.slice(1,-1);return{type:"em",raw:C,text:B,tokens:this.lexer.inlineTokens(B)}}let d=C.slice(2,-2);return{type:"strong",raw:C,text:d,tokens:this.lexer.inlineTokens(d)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let A=e[2].replace(this.rules.other.newLineCharGlobal," "),i=this.rules.other.nonSpaceChar.test(A),n=this.rules.other.startingSpaceChar.test(A)&&this.rules.other.endingSpaceChar.test(A);return i&&n&&(A=A.substring(1,A.length-1)),{type:"codespan",raw:e[0],text:A}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){let e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let A,i;return e[2]==="@"?(A=e[1],i="mailto:"+A):(A=e[1],i=A),{type:"link",raw:e[0],text:A,href:i,tokens:[{type:"text",raw:A,text:A}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let A,i;if(e[2]==="@")A=e[0],i="mailto:"+A;else{let n;do n=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(n!==e[0]);A=e[0],e[1]==="www."?i="http://"+e[0]:i=e[0]}return{type:"link",raw:e[0],text:A,href:i,tokens:[{type:"text",raw:A,text:A}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let A=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:A}}}},s2=class VG{tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||sd,this.options.tokenizer=this.options.tokenizer||new c7,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let A={other:ea,block:r7.normal,inline:pf.normal};this.options.pedantic?(A.block=r7.pedantic,A.inline=pf.pedantic):this.options.gfm&&(A.block=r7.gfm,this.options.breaks?A.inline=pf.breaks:A.inline=pf.gfm),this.tokenizer.rules=A}static get rules(){return{block:r7,inline:pf}}static lex(e,A){return new VG(A).lex(e)}static lexInline(e,A){return new VG(A).inlineTokens(e)}lex(e){e=e.replace(ea.carriageReturn,` -`),this.blockTokens(e,this.tokens);for(let A=0;A(n=r.call({lexer:this},e,A))?(e=e.substring(n.raw.length),A.push(n),!0):!1))continue;if(n=this.tokenizer.space(e)){e=e.substring(n.raw.length);let r=A.at(-1);n.raw.length===1&&r!==void 0?r.raw+=` -`:A.push(n);continue}if(n=this.tokenizer.code(e)){e=e.substring(n.raw.length);let r=A.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=` -`+n.raw,r.text+=` -`+n.text,this.inlineQueue.at(-1).src=r.text):A.push(n);continue}if(n=this.tokenizer.fences(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.heading(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.hr(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.blockquote(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.list(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.html(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.def(e)){e=e.substring(n.raw.length);let r=A.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=` -`+n.raw,r.text+=` -`+n.raw,this.inlineQueue.at(-1).src=r.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title});continue}if(n=this.tokenizer.table(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.lheading(e)){e=e.substring(n.raw.length),A.push(n);continue}let o=e;if(this.options.extensions?.startBlock){let r=1/0,s=e.slice(1),a;this.options.extensions.startBlock.forEach(c=>{a=c.call({lexer:this},s),typeof a=="number"&&a>=0&&(r=Math.min(r,a))}),r<1/0&&r>=0&&(o=e.substring(0,r+1))}if(this.state.top&&(n=this.tokenizer.paragraph(o))){let r=A.at(-1);i&&r?.type==="paragraph"?(r.raw+=` -`+n.raw,r.text+=` -`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):A.push(n),i=o.length!==e.length,e=e.substring(n.raw.length);continue}if(n=this.tokenizer.text(e)){e=e.substring(n.raw.length);let r=A.at(-1);r?.type==="text"?(r.raw+=` -`+n.raw,r.text+=` -`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):A.push(n);continue}if(e){let r="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(r);break}else throw new Error(r)}}return this.state.top=!0,A}inline(e,A=[]){return this.inlineQueue.push({src:e,tokens:A}),A}inlineTokens(e,A=[]){let i=e,n=null;if(this.tokens.links){let s=Object.keys(this.tokens.links);if(s.length>0)for(;(n=this.tokenizer.rules.inline.reflinkSearch.exec(i))!=null;)s.includes(n[0].slice(n[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(n=this.tokenizer.rules.inline.anyPunctuation.exec(i))!=null;)i=i.slice(0,n.index)+"++"+i.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(n=this.tokenizer.rules.inline.blockSkip.exec(i))!=null;)i=i.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let o=!1,r="";for(;e;){o||(r=""),o=!1;let s;if(this.options.extensions?.inline?.some(c=>(s=c.call({lexer:this},e,A))?(e=e.substring(s.raw.length),A.push(s),!0):!1))continue;if(s=this.tokenizer.escape(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.tag(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.link(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(s.raw.length);let c=A.at(-1);s.type==="text"&&c?.type==="text"?(c.raw+=s.raw,c.text+=s.text):A.push(s);continue}if(s=this.tokenizer.emStrong(e,i,r)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.codespan(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.br(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.del(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.autolink(e)){e=e.substring(s.raw.length),A.push(s);continue}if(!this.state.inLink&&(s=this.tokenizer.url(e))){e=e.substring(s.raw.length),A.push(s);continue}let a=e;if(this.options.extensions?.startInline){let c=1/0,l=e.slice(1),I;this.options.extensions.startInline.forEach(C=>{I=C.call({lexer:this},l),typeof I=="number"&&I>=0&&(c=Math.min(c,I))}),c<1/0&&c>=0&&(a=e.substring(0,c+1))}if(s=this.tokenizer.inlineText(a)){e=e.substring(s.raw.length),s.raw.slice(-1)!=="_"&&(r=s.raw.slice(-1)),o=!0;let c=A.at(-1);c?.type==="text"?(c.raw+=s.raw,c.text+=s.text):A.push(s);continue}if(e){let c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return A}},oI=class{options;parser;constructor(t){this.options=t||sd}space(t){return""}code({text:t,lang:e,escaped:A}){let i=(e||"").match(ea.notSpaceStart)?.[0],n=t.replace(ea.endingNewline,"")+` -`;return i?'
        '+(A?n:A0(n,!0))+`
        -`:"
        "+(A?n:A0(n,!0))+`
        -`}blockquote({tokens:t}){return`
        -${this.parser.parse(t)}
        -`}html({text:t}){return t}heading({tokens:t,depth:e}){return`${this.parser.parseInline(t)} -`}hr(t){return`
        -`}list(t){let e=t.ordered,A=t.start,i="";for(let r=0;r -`+i+" -`}listitem(t){let e="";if(t.task){let A=this.checkbox({checked:!!t.checked});t.loose?t.tokens[0]?.type==="paragraph"?(t.tokens[0].text=A+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=A+" "+A0(t.tokens[0].tokens[0].text),t.tokens[0].tokens[0].escaped=!0)):t.tokens.unshift({type:"text",raw:A+" ",text:A+" ",escaped:!0}):e+=A+" "}return e+=this.parser.parse(t.tokens,!!t.loose),`
      • ${e}
      • -`}checkbox({checked:t}){return"'}paragraph({tokens:t}){return`

        ${this.parser.parseInline(t)}

        -`}table(t){let e="",A="";for(let n=0;n${i}`),` - -`+e+` -`+i+`
        -`}tablerow({text:t}){return` -${t} -`}tablecell(t){let e=this.parser.parseInline(t.tokens),A=t.header?"th":"td";return(t.align?`<${A} align="${t.align}">`:`<${A}>`)+e+` -`}strong({tokens:t}){return`${this.parser.parseInline(t)}`}em({tokens:t}){return`${this.parser.parseInline(t)}`}codespan({text:t}){return`${A0(t,!0)}`}br(t){return"
        "}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:e,tokens:A}){let i=this.parser.parseInline(A),n=WcA(t);if(n===null)return i;t=n;let o='
        ",o}image({href:t,title:e,text:A,tokens:i}){i&&(A=this.parser.parseInline(i,this.parser.textRenderer));let n=WcA(t);if(n===null)return A0(A);t=n;let o=`${A}{let r=n[o].flat(1/0);A=A.concat(this.walkTokens(r,e))}):n.tokens&&(A=A.concat(this.walkTokens(n.tokens,e)))}}return A}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(A=>{let i=rA({},A);if(i.async=this.defaults.async||i.async||!1,A.extensions&&(A.extensions.forEach(n=>{if(!n.name)throw new Error("extension name required");if("renderer"in n){let o=e.renderers[n.name];o?e.renderers[n.name]=function(...r){let s=n.renderer.apply(this,r);return s===!1&&(s=o.apply(this,r)),s}:e.renderers[n.name]=n.renderer}if("tokenizer"in n){if(!n.level||n.level!=="block"&&n.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let o=e[n.level];o?o.unshift(n.tokenizer):e[n.level]=[n.tokenizer],n.start&&(n.level==="block"?e.startBlock?e.startBlock.push(n.start):e.startBlock=[n.start]:n.level==="inline"&&(e.startInline?e.startInline.push(n.start):e.startInline=[n.start]))}"childTokens"in n&&n.childTokens&&(e.childTokens[n.name]=n.childTokens)}),i.extensions=e),A.renderer){let n=this.defaults.renderer||new oI(this.defaults);for(let o in A.renderer){if(!(o in n))throw new Error(`renderer '${o}' does not exist`);if(["options","parser"].includes(o))continue;let r=o,s=A.renderer[r],a=n[r];n[r]=(...c)=>{let l=s.apply(n,c);return l===!1&&(l=a.apply(n,c)),l||""}}i.renderer=n}if(A.tokenizer){let n=this.defaults.tokenizer||new c7(this.defaults);for(let o in A.tokenizer){if(!(o in n))throw new Error(`tokenizer '${o}' does not exist`);if(["options","rules","lexer"].includes(o))continue;let r=o,s=A.tokenizer[r],a=n[r];n[r]=(...c)=>{let l=s.apply(n,c);return l===!1&&(l=a.apply(n,c)),l}}i.tokenizer=n}if(A.hooks){let n=this.defaults.hooks||new s7;for(let o in A.hooks){if(!(o in n))throw new Error(`hook '${o}' does not exist`);if(["options","block"].includes(o))continue;let r=o,s=A.hooks[r],a=n[r];s7.passThroughHooks.has(o)?n[r]=c=>{if(this.defaults.async)return Promise.resolve(s.call(n,c)).then(I=>a.call(n,I));let l=s.call(n,c);return a.call(n,l)}:n[r]=(...c)=>{let l=s.apply(n,c);return l===!1&&(l=a.apply(n,c)),l}}i.hooks=n}if(A.walkTokens){let n=this.defaults.walkTokens,o=A.walkTokens;i.walkTokens=function(r){let s=[];return s.push(o.call(this,r)),n&&(s=s.concat(n.call(this,r))),s}}this.defaults=rA(rA({},this.defaults),i)}),this}setOptions(t){return this.defaults=rA(rA({},this.defaults),t),this}lexer(t,e){return s2.lex(t,e??this.defaults)}parser(t,e){return a2.parse(t,e??this.defaults)}parseMarkdown(t){return(A,i)=>{let n=rA({},i),o=rA(rA({},this.defaults),n),r=this.onError(!!o.silent,!!o.async);if(this.defaults.async===!0&&n.async===!1)return r(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof A>"u"||A===null)return r(new Error("marked(): input parameter is undefined or null"));if(typeof A!="string")return r(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(A)+", string expected"));o.hooks&&(o.hooks.options=o,o.hooks.block=t);let s=o.hooks?o.hooks.provideLexer():t?s2.lex:s2.lexInline,a=o.hooks?o.hooks.provideParser():t?a2.parse:a2.parseInline;if(o.async)return Promise.resolve(o.hooks?o.hooks.preprocess(A):A).then(c=>s(c,o)).then(c=>o.hooks?o.hooks.processAllTokens(c):c).then(c=>o.walkTokens?Promise.all(this.walkTokens(c,o.walkTokens)).then(()=>c):c).then(c=>a(c,o)).then(c=>o.hooks?o.hooks.postprocess(c):c).catch(r);try{o.hooks&&(A=o.hooks.preprocess(A));let c=s(A,o);o.hooks&&(c=o.hooks.processAllTokens(c)),o.walkTokens&&this.walkTokens(c,o.walkTokens);let l=a(c,o);return o.hooks&&(l=o.hooks.postprocess(l)),l}catch(c){return r(c)}}}onError(t,e){return A=>{if(A.message+=` -Please report this to https://github.com/markedjs/marked.`,t){let i="

        An error occurred:

        "+A0(A.message+"",!0)+"
        ";return e?Promise.resolve(i):i}if(e)return Promise.reject(A);throw A}}},rd=new wPA;function Mn(t,e){return rd.parse(t,e)}Mn.options=Mn.setOptions=function(t){return rd.setOptions(t),Mn.defaults=rd.defaults,AlA(Mn.defaults),Mn};Mn.getDefaults=WG;Mn.defaults=sd;Mn.use=function(...t){return rd.use(...t),Mn.defaults=rd.defaults,AlA(Mn.defaults),Mn};Mn.walkTokens=function(t,e){return rd.walkTokens(t,e)};Mn.parseInline=rd.parseInline;Mn.Parser=a2;Mn.parser=a2.parse;Mn.Renderer=oI;Mn.TextRenderer=oU;Mn.Lexer=s2;Mn.lexer=s2.lex;Mn.Tokenizer=c7;Mn.Hooks=s7;Mn.parse=Mn;var R7e=Mn.options,x7e=Mn.setOptions,L7e=Mn.use,F7e=Mn.walkTokens,N7e=Mn.parseInline;var _7e=a2.parse,G7e=s2.lex;var DPA=["*"],yPA="Copy",vPA="Copied",bPA=(()=>{class t{constructor(){this._buttonClick$=new OA,this.copied$=this._buttonClick$.pipe(jn(()=>zn(Me(!0),II(3e3).pipe(vd(!1)))),tl(),a0(1)),this.copiedText$=this.copied$.pipe(Pn(!1),je(A=>A?vPA:yPA))}onCopyToClipboardClick(){this._buttonClick$.next()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=zA({type:t,selectors:[["markdown-clipboard"]],decls:4,vars:7,consts:[[1,"markdown-clipboard-button",3,"click"]],template:function(i,n){i&1&&(S(0,"button",0),Za(1,"async"),hA("click",function(){return n.onCopyToClipboardClick()}),AA(2),Za(3,"async"),F()),i&2&&(ue("copied",M2(1,3,n.copied$)),G(2),Gt(M2(3,5,n.copiedText$)))},dependencies:[Jh],encapsulation:2,changeDetection:0})}}return t})(),MPA=new dA("CLIPBOARD_OPTIONS");var rU=function(t){return t.CommandLine="command-line",t.LineHighlight="line-highlight",t.LineNumbers="line-numbers",t}(rU||{}),glA=new dA("MARKED_EXTENSIONS"),kPA=new dA("MARKED_OPTIONS"),SPA=new dA("MERMAID_OPTIONS"),RPA="[ngx-markdown] When using the `emoji` attribute you *have to* include Emoji-Toolkit files to `angular.json` or use imports. See README for more information",xPA="[ngx-markdown] When using the `katex` attribute you *have to* include KaTeX files to `angular.json` or use imports. See README for more information",LPA="[ngx-markdown] When using the `mermaid` attribute you *have to* include Mermaid files to `angular.json` or use imports. See README for more information",FPA="[ngx-markdown] When using the `clipboard` attribute you *have to* include Clipboard files to `angular.json` or use imports. See README for more information",NPA="[ngx-markdown] When using the `clipboard` attribute you *have to* provide the `viewContainerRef` parameter to `MarkdownService.render()` function",_PA="[ngx-markdown] When using the `src` attribute you *have to* pass the `HttpClient` as a parameter of the `forRoot` method. See README for more information",IlA=new dA("SECURITY_CONTEXT");var ClA=(()=>{class t{get options(){return this._options}set options(A){this._options=rA(rA({},this.DEFAULT_MARKED_OPTIONS),A)}get renderer(){return this.options.renderer}set renderer(A){this.options.renderer=A}constructor(A,i,n,o,r,s,a,c){this.clipboardOptions=A,this.extensions=i,this.mermaidOptions=o,this.platform=r,this.securityContext=s,this.http=a,this.sanitizer=c,this.DEFAULT_MARKED_OPTIONS={renderer:new oI},this.DEFAULT_KATEX_OPTIONS={delimiters:[{left:"$$",right:"$$",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}]},this.DEFAULT_MERMAID_OPTIONS={startOnLoad:!1},this.DEFAULT_CLIPBOARD_OPTIONS={buttonComponent:void 0},this.DEFAULT_PARSE_OPTIONS={decodeHtml:!1,inline:!1,emoji:!1,mermaid:!1,markedOptions:void 0,disableSanitizer:!1},this.DEFAULT_RENDER_OPTIONS={clipboard:!1,clipboardOptions:void 0,katex:!1,katexOptions:void 0,mermaid:!1,mermaidOptions:void 0},this._reload$=new OA,this.reload$=this._reload$.asObservable(),this.options=n}parse(A,i=this.DEFAULT_PARSE_OPTIONS){let{decodeHtml:n,inline:o,emoji:r,mermaid:s,disableSanitizer:a}=i,c=rA(rA({},this.options),i.markedOptions),l=c.renderer||this.renderer||new oI;this.extensions&&(this.renderer=this.extendsRendererForExtensions(l)),s&&(this.renderer=this.extendsRendererForMermaid(l));let I=this.trimIndentation(A),C=n?this.decodeHtml(I):I,d=r?this.parseEmoji(C):C,B=this.parseMarked(d,c,o);return(a?B:this.sanitizer.sanitize(this.securityContext,B))||""}render(A,i=this.DEFAULT_RENDER_OPTIONS,n){let{clipboard:o,clipboardOptions:r,katex:s,katexOptions:a,mermaid:c,mermaidOptions:l}=i;s&&this.renderKatex(A,rA(rA({},this.DEFAULT_KATEX_OPTIONS),a)),c&&this.renderMermaid(A,rA(rA(rA({},this.DEFAULT_MERMAID_OPTIONS),this.mermaidOptions),l)),o&&this.renderClipboard(A,n,rA(rA(rA({},this.DEFAULT_CLIPBOARD_OPTIONS),this.clipboardOptions),r)),this.highlight(A)}reload(){this._reload$.next()}getSource(A){if(!this.http)throw new Error(_PA);return this.http.get(A,{responseType:"text"}).pipe(je(i=>this.handleExtension(A,i)))}highlight(A){if(!sg(this.platform)||typeof Prism>"u"||typeof Prism.highlightAllUnder>"u")return;A||(A=document);let i=A.querySelectorAll('pre code:not([class*="language-"])');Array.prototype.forEach.call(i,n=>n.classList.add("language-none")),Prism.highlightAllUnder(A)}decodeHtml(A){if(!sg(this.platform))return A;let i=document.createElement("textarea");return i.innerHTML=A,i.value}extendsRendererForExtensions(A){let i=A;return i.\u0275NgxMarkdownRendererExtendedForExtensions===!0||(this.extensions?.length>0&&Mn.use(...this.extensions),i.\u0275NgxMarkdownRendererExtendedForExtensions=!0),A}extendsRendererForMermaid(A){let i=A;if(i.\u0275NgxMarkdownRendererExtendedForMermaid===!0)return A;let n=A.code;return A.code=o=>o.lang==="mermaid"?`
        ${o.text}
        `:n(o),i.\u0275NgxMarkdownRendererExtendedForMermaid=!0,A}handleExtension(A,i){let n=A.lastIndexOf("://"),o=n>-1?A.substring(n+4):A,r=o.lastIndexOf("/"),s=r>-1?o.substring(r+1).split("?")[0]:"",a=s.lastIndexOf("."),c=a>-1?s.substring(a+1):"";return c&&c!=="md"?"```"+c+` -`+i+"\n```":i}parseMarked(A,i,n=!1){if(i.renderer){let o=rA({},i.renderer);delete o.\u0275NgxMarkdownRendererExtendedForExtensions,delete o.\u0275NgxMarkdownRendererExtendedForMermaid,delete i.renderer,Mn.use({renderer:o})}return n?Mn.parseInline(A,i):Mn.parse(A,i)}parseEmoji(A){if(!sg(this.platform))return A;if(typeof joypixels>"u"||typeof joypixels.shortnameToUnicode>"u")throw new Error(RPA);return joypixels.shortnameToUnicode(A)}renderKatex(A,i){if(sg(this.platform)){if(typeof katex>"u"||typeof renderMathInElement>"u")throw new Error(xPA);renderMathInElement(A,i)}}renderClipboard(A,i,n){if(!sg(this.platform))return;if(typeof ClipboardJS>"u")throw new Error(FPA);if(!i)throw new Error(NPA);let{buttonComponent:o,buttonTemplate:r}=n,s=A.querySelectorAll("pre");for(let a=0;aI.classList.add("hover"),l.onmouseleave=()=>I.classList.remove("hover");let C;if(o){let B=i.createComponent(o);C=B.hostView,B.changeDetectorRef.markForCheck()}else if(r)C=i.createEmbeddedView(r);else{let B=i.createComponent(bPA);C=B.hostView,B.changeDetectorRef.markForCheck()}let d;C.rootNodes.forEach(B=>{I.appendChild(B),d=new ClipboardJS(B,{text:()=>c.innerText})}),C.onDestroy(()=>d.destroy())}}renderMermaid(A,i=this.DEFAULT_MERMAID_OPTIONS){if(!sg(this.platform))return;if(typeof mermaid>"u"||typeof mermaid.initialize>"u")throw new Error(LPA);let n=A.querySelectorAll(".mermaid");n.length!==0&&(mermaid.initialize(i),mermaid.run({nodes:n}))}trimIndentation(A){if(!A)return"";let i;return A.split(` -`).map(n=>{let o=i;return n.length>0&&(o=isNaN(o)?n.search(/\S|$/):Math.min(n.search(/\S|$/),o)),isNaN(i)&&(i=o),o?n.substring(o):n}).join(` -`)}static{this.\u0275fac=function(i){return new(i||t)(we(MPA,8),we(glA,8),we(kPA,8),we(SPA,8),we(og),we(IlA),we(Ds,8),we(cl))}}static{this.\u0275prov=NA({token:t,factory:t.\u0275fac})}}return t})(),dlA=(()=>{class t{get disableSanitizer(){return this._disableSanitizer}set disableSanitizer(A){this._disableSanitizer=this.coerceBooleanProperty(A)}get inline(){return this._inline}set inline(A){this._inline=this.coerceBooleanProperty(A)}get clipboard(){return this._clipboard}set clipboard(A){this._clipboard=this.coerceBooleanProperty(A)}get emoji(){return this._emoji}set emoji(A){this._emoji=this.coerceBooleanProperty(A)}get katex(){return this._katex}set katex(A){this._katex=this.coerceBooleanProperty(A)}get mermaid(){return this._mermaid}set mermaid(A){this._mermaid=this.coerceBooleanProperty(A)}get lineHighlight(){return this._lineHighlight}set lineHighlight(A){this._lineHighlight=this.coerceBooleanProperty(A)}get lineNumbers(){return this._lineNumbers}set lineNumbers(A){this._lineNumbers=this.coerceBooleanProperty(A)}get commandLine(){return this._commandLine}set commandLine(A){this._commandLine=this.coerceBooleanProperty(A)}constructor(A,i,n){this.element=A,this.markdownService=i,this.viewContainerRef=n,this.error=new WA,this.load=new WA,this.ready=new WA,this._clipboard=!1,this._commandLine=!1,this._disableSanitizer=!1,this._emoji=!1,this._inline=!1,this._katex=!1,this._lineHighlight=!1,this._lineNumbers=!1,this._mermaid=!1,this.destroyed$=new OA}ngOnChanges(){this.loadContent()}loadContent(){if(this.data!=null){this.handleData();return}if(this.src!=null){this.handleSrc();return}}ngAfterViewInit(){!this.data&&!this.src&&this.handleTransclusion(),this.markdownService.reload$.pipe(St(this.destroyed$)).subscribe(()=>this.loadContent())}ngOnDestroy(){this.destroyed$.next(),this.destroyed$.complete()}render(A,i=!1){return Ao(this,null,function*(){let n={decodeHtml:i,inline:this.inline,emoji:this.emoji,mermaid:this.mermaid,disableSanitizer:this.disableSanitizer},o={clipboard:this.clipboard,clipboardOptions:this.getClipboardOptions(),katex:this.katex,katexOptions:this.katexOptions,mermaid:this.mermaid,mermaidOptions:this.mermaidOptions},r=yield this.markdownService.parse(A,n);this.element.nativeElement.innerHTML=r,this.handlePlugins(),this.markdownService.render(this.element.nativeElement,o,this.viewContainerRef),this.ready.emit()})}coerceBooleanProperty(A){return A!=null&&`${String(A)}`!="false"}getClipboardOptions(){if(this.clipboardButtonComponent||this.clipboardButtonTemplate)return{buttonComponent:this.clipboardButtonComponent,buttonTemplate:this.clipboardButtonTemplate}}handleData(){this.render(this.data)}handleSrc(){this.markdownService.getSource(this.src).subscribe({next:A=>{this.render(A).then(()=>{this.load.emit(A)})},error:A=>this.error.emit(A)})}handleTransclusion(){this.render(this.element.nativeElement.innerHTML,!0)}handlePlugins(){this.commandLine&&(this.setPluginClass(this.element.nativeElement,rU.CommandLine),this.setPluginOptions(this.element.nativeElement,{dataFilterOutput:this.filterOutput,dataHost:this.host,dataPrompt:this.prompt,dataOutput:this.output,dataUser:this.user})),this.lineHighlight&&this.setPluginOptions(this.element.nativeElement,{dataLine:this.line,dataLineOffset:this.lineOffset}),this.lineNumbers&&(this.setPluginClass(this.element.nativeElement,rU.LineNumbers),this.setPluginOptions(this.element.nativeElement,{dataStart:this.start}))}setPluginClass(A,i){let n=A.querySelectorAll("pre");for(let o=0;o{let s=i[r];if(s){let a=this.toLispCase(r);n.item(o).setAttribute(a,s.toString())}})}toLispCase(A){let i=A.match(/([A-Z])/g);if(!i)return A;let n=A.toString();for(let o=0,r=i.length;o{let i=UPA(A)?Ye(rA({},A),{multi:!0}):{provide:glA,useValue:A,multi:!0};return[...e,i]},[])}var BlA=(()=>{class t{static forRoot(A){return{ngModule:t,providers:[GPA(A)]}}static forChild(){return{ngModule:t}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Ce({type:t})}static{this.\u0275inj=Ie({imports:[f0]})}}return t})();var JPA=["switch"],TPA=["*"];function HPA(t,e){t&1&&(S(0,"span",10),ar(),S(1,"svg",12),JA(2,"path",13),F(),S(3,"svg",14),JA(4,"path",15),F()())}var zPA=new dA("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1,disabledInteractive:!1})}),OPA={provide:yc,useExisting:Ir(()=>C7),multi:!0},I7=class{source;checked;constructor(e,A){this.source=e,this.checked=A}},C7=(()=>{class t{_elementRef=f(ee);_focusMonitor=f(dr);_changeDetectorRef=f(It);defaults=f(zPA);_onChange=A=>{};_onTouched=()=>{};_validatorOnChange=()=>{};_uniqueId;_checked=!1;_createChangeEvent(A){return new I7(this,A)}_labelId;get buttonId(){return`${this.id||this._uniqueId}-button`}_switchElement;focus(){this._switchElement.nativeElement.focus()}_noopAnimations;_focused;name=null;id;labelPosition="after";ariaLabel=null;ariaLabelledby=null;ariaDescribedby;required;color;disabled=!1;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(A){this._checked=A,this._changeDetectorRef.markForCheck()}hideIcon;disabledInteractive;change=new WA;toggleChange=new WA;get inputId(){return`${this.id||this._uniqueId}-input`}constructor(){f(Rn).load(lr);let A=f(new wr("tabindex"),{optional:!0}),i=this.defaults,n=f(Si,{optional:!0});this.tabIndex=A==null?0:parseInt(A)||0,this.color=i.color||"accent",this._noopAnimations=n==="NoopAnimations",this.id=this._uniqueId=f(sn).getId("mat-mdc-slide-toggle-"),this.hideIcon=i.hideIcon??!1,this.disabledInteractive=i.disabledInteractive??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(A=>{A==="keyboard"||A==="program"?(this._focused=!0,this._changeDetectorRef.markForCheck()):A||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(A){A.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(A){this.checked=!!A}registerOnChange(A){this._onChange=A}registerOnTouched(A){this._onTouched=A}validate(A){return this.required&&A.value!==!0?{required:!0}:null}registerOnValidatorChange(A){this._validatorOnChange=A}setDisabledState(A){this.disabled=A,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.disabled||(this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new I7(this,this.checked))))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-slide-toggle"]],viewQuery:function(i,n){if(i&1&&Te(JPA,5),i&2){let o;XA(o=$A())&&(n._switchElement=o.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,n){i&2&&(Hs("id",n.id),Ne("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),fo(n.color?"mat-"+n.color:""),ue("mat-mdc-slide-toggle-focused",n._focused)("mat-mdc-slide-toggle-checked",n.checked)("_mat-animation-noopable",n._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],required:[2,"required","required",ie],color:"color",disabled:[2,"disabled","disabled",ie],disableRipple:[2,"disableRipple","disableRipple",ie],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:zi(A)],checked:[2,"checked","checked",ie],hideIcon:[2,"hideIcon","hideIcon",ie],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ie]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],features:[ht([OPA,{provide:w0,useExisting:t,multi:!0}]),ti],ngContentSelectors:TPA,decls:13,vars:27,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,n){if(i&1){let o=be();jt(),S(0,"div",1)(1,"button",2,0),hA("click",function(){return RA(o),xA(n._handleClick())}),JA(3,"span",3),S(4,"span",4)(5,"span",5)(6,"span",6),JA(7,"span",7),F(),S(8,"span",8),JA(9,"span",9),F(),_A(10,HPA,5,0,"span",10),F()()(),S(11,"label",11),hA("click",function(s){return RA(o),xA(s.stopPropagation())}),Fe(12),F()()}if(i&2){let o=cr(2);yA("labelPosition",n.labelPosition),G(),ue("mdc-switch--selected",n.checked)("mdc-switch--unselected",!n.checked)("mdc-switch--checked",n.checked)("mdc-switch--disabled",n.disabled)("mat-mdc-slide-toggle-disabled-interactive",n.disabledInteractive),yA("tabIndex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("disabled",n.disabled&&!n.disabledInteractive),Ne("id",n.buttonId)("name",n.name)("aria-label",n.ariaLabel)("aria-labelledby",n._getAriaLabelledBy())("aria-describedby",n.ariaDescribedby)("aria-required",n.required||null)("aria-checked",n.checked)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),G(8),yA("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)("matRippleCentered",!0),G(),GA(n.hideIcon?-1:10),G(),yA("for",n.buttonId),Ne("id",n._labelId)}},dependencies:[rs,MB],styles:['.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative;width:var(--mdc-switch-track-width, 52px)}.mdc-switch.mdc-switch--disabled{cursor:default;pointer-events:none}.mdc-switch.mat-mdc-slide-toggle-disabled-interactive{pointer-events:auto}.mdc-switch__track{overflow:hidden;position:relative;width:100%;height:var(--mdc-switch-track-height, 32px);border-radius:var(--mdc-switch-track-shape, var(--mat-sys-corner-full))}.mdc-switch--disabled.mdc-switch .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity, 0.12)}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%;border-width:var(--mat-switch-track-outline-width, 2px);border-color:var(--mat-switch-track-outline-color, var(--mat-sys-outline))}.mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track::after{border-width:var(--mat-switch-selected-track-outline-width, 2px);border-color:var(--mat-switch-selected-track-outline-color, transparent)}.mdc-switch--disabled .mdc-switch__track::before,.mdc-switch--disabled .mdc-switch__track::after{border-width:var(--mat-switch-disabled-unselected-track-outline-width, 2px);border-color:var(--mat-switch-disabled-unselected-track-outline-color, var(--mat-sys-on-surface))}@media(forced-colors: active){.mdc-switch__track{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0);background:var(--mdc-switch-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch--selected .mdc-switch__track::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color, var(--mat-sys-surface-variant))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::before,.mdc-switch.mdc-switch--disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch__track::after{transform:translateX(-100%);background:var(--mdc-switch-selected-track-color, var(--mat-sys-primary))}[dir=rtl] .mdc-switch__track::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::after{transform:translateX(0)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color, var(--mat-sys-primary))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::after,.mdc-switch.mdc-switch--disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color, var(--mat-sys-on-surface))}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0);width:calc(100% - var(--mdc-switch-handle-width))}[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto;transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1);width:var(--mdc-switch-handle-width);height:var(--mdc-switch-handle-height);border-radius:var(--mdc-switch-handle-shape, var(--mat-sys-corner-full))}[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size, 16px);height:var(--mat-switch-unselected-handle-size, 16px);margin:var(--mat-switch-unselected-handle-horizontal-margin, 0 8px)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin, 0 4px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size, 24px);height:var(--mat-switch-selected-handle-size, 24px);margin:var(--mat-switch-selected-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size, 24px);height:var(--mat-switch-with-icon-handle-size, 24px)}.mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size, 28px);height:var(--mat-switch-pressed-handle-size, 28px)}.mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin, 0 22px)}.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin, 0 2px)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity, 1)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity, 0.38)}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media(forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color, var(--mat-sys-on-primary))}.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color, var(--mat-sys-primary-container))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:hover:not(:focus):not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:focus:not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:active .mdc-switch__handle::after,.mdc-switch--selected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color, var(--mat-sys-surface))}.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color, var(--mat-sys-outline))}.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color, var(--mat-sys-on-surface))}.mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__shadow,.mdc-switch.mdc-switch--disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1;width:var(--mdc-switch-state-layer-size, 40px);height:var(--mdc-switch-state-layer-size, 40px)}.mdc-switch__ripple::after{content:"";opacity:0}.mdc-switch--disabled .mdc-switch__ripple::after{display:none}.mat-mdc-slide-toggle-disabled-interactive .mdc-switch__ripple::after{display:block}.mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:75ms opacity cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:focus .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:active .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-pressed-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-selected-pressed-state-layer-color, var(--mat-sys-primary));opacity:var(--mdc-switch-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch__icons{position:relative;height:100%;width:100%;z-index:1}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity, 0.38)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity, 0.38)}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size, 16px);height:var(--mdc-switch-unselected-icon-size, 16px);fill:var(--mdc-switch-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size, 16px);height:var(--mdc-switch-selected-icon-size, 16px);fill:var(--mdc-switch-selected-icon-color, var(--mat-sys-on-primary-container))}.mdc-switch--selected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color, var(--mat-sys-on-surface))}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle{-webkit-user-select:none;user-select:none;display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-internal-form-field{color:var(--mat-switch-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-switch-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-switch-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-switch-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-switch-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-switch-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}'],encapsulation:2,changeDetection:0})}return t})();var ElA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[C7,it,it]})}return t})();var jPA=["mat-menu-item",""],qPA=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],VPA=["mat-icon, [matMenuItemIcon]","*"];function ZPA(t,e){t&1&&(ar(),S(0,"svg",2),JA(1,"polygon",3),F())}var WPA=["*"];function XPA(t,e){if(t&1){let A=be();S(0,"div",0),hA("click",function(){RA(A);let n=O();return xA(n.closed.emit("click"))})("animationstart",function(n){RA(A);let o=O();return xA(o._onAnimationStart(n.animationName))})("animationend",function(n){RA(A);let o=O();return xA(o._onAnimationDone(n.animationName))})("animationcancel",function(n){RA(A);let o=O();return xA(o._onAnimationDone(n.animationName))}),S(1,"div",1),Fe(2),F()()}if(t&2){let A=O();fo(A._classList),ue("mat-menu-panel-animations-disabled",A._animationsDisabled)("mat-menu-panel-exit-animation",A._panelAnimationState==="void")("mat-menu-panel-animating",A._isAnimating),yA("id",A.panelId),Ne("aria-label",A.ariaLabel||null)("aria-labelledby",A.ariaLabelledby||null)("aria-describedby",A.ariaDescribedby||null)}}var aU=new dA("MAT_MENU_PANEL"),bf=(()=>{class t{_elementRef=f(ee);_document=f(at);_focusMonitor=f(dr);_parentMenu=f(aU,{optional:!0});_changeDetectorRef=f(It);role="menuitem";disabled=!1;disableRipple=!1;_hovered=new OA;_focused=new OA;_highlighted=!1;_triggersSubmenu=!1;constructor(){f(Rn).load(lr),this._parentMenu?.addItem?.(this)}focus(A,i){this._focusMonitor&&A?this._focusMonitor.focusVia(this._getHostElement(),A,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(A){this.disabled&&(A.preventDefault(),A.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){let A=this._elementRef.nativeElement.cloneNode(!0),i=A.querySelectorAll("mat-icon, .material-icons");for(let n=0;n{class t{_elementRef=f(ee);_changeDetectorRef=f(It);_injector=f(Rt);_keyManager;_xPosition;_yPosition;_firstItemFocusRef;_exitFallbackTimeout;_animationsDisabled;_allItems;_directDescendantItems=new ca;_classList={};_panelAnimationState="void";_animationDone=new OA;_isAnimating=!1;parentMenu;direction;overlayPanelClass;backdropClass;ariaLabel;ariaLabelledby;ariaDescribedby;get xPosition(){return this._xPosition}set xPosition(A){this._xPosition=A,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(A){this._yPosition=A,this.setPositionClasses()}templateRef;items;lazyContent;overlapTrigger;hasBackdrop;set panelClass(A){let i=this._previousPanelClass,n=rA({},this._classList);i&&i.length&&i.split(" ").forEach(o=>{n[o]=!1}),this._previousPanelClass=A,A&&A.length&&(A.split(" ").forEach(o=>{n[o]=!0}),this._elementRef.nativeElement.className=""),this._classList=n}_previousPanelClass;get classList(){return this.panelClass}set classList(A){this.panelClass=A}closed=new WA;close=this.closed;panelId=f(sn).getId("mat-menu-panel-");constructor(){let A=f(AjA);this.overlayPanelClass=A.overlayPanelClass||"",this._xPosition=A.xPosition,this._yPosition=A.yPosition,this.backdropClass=A.backdropClass,this.overlapTrigger=A.overlapTrigger,this.hasBackdrop=A.hasBackdrop,this._animationsDisabled=f(Si,{optional:!0})==="NoopAnimations"}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new qI(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(Pn(this._directDescendantItems),jn(A=>zn(...A.map(i=>i._focused)))).subscribe(A=>this._keyManager.updateActiveItem(A)),this._directDescendantItems.changes.subscribe(A=>{let i=this._keyManager;if(this._panelAnimationState==="enter"&&i.activeItem?._hasFocus()){let n=A.toArray(),o=Math.max(0,Math.min(n.length-1,i.activeItemIndex||0));n[o]&&!n[o].disabled?i.setActiveItem(o):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusRef?.destroy(),clearTimeout(this._exitFallbackTimeout)}_hovered(){return this._directDescendantItems.changes.pipe(Pn(this._directDescendantItems),jn(i=>zn(...i.map(n=>n._hovered))))}addItem(A){}removeItem(A){}_handleKeydown(A){let i=A.keyCode,n=this._keyManager;switch(i){case 27:ir(A)||(A.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&this.direction==="ltr"&&this.closed.emit("keydown");break;case 39:this.parentMenu&&this.direction==="rtl"&&this.closed.emit("keydown");break;default:(i===38||i===40)&&n.setFocusOrigin("keyboard"),n.onKeydown(A);return}}focusFirstItem(A="program"){this._firstItemFocusRef?.destroy(),this._firstItemFocusRef=To(()=>{let i=this._resolvePanel();if(!i||!i.contains(document.activeElement)){let n=this._keyManager;n.setFocusOrigin(A).setFirstItemActive(),!n.activeItem&&i&&i.focus()}},{injector:this._injector})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(A){}setPositionClasses(A=this.xPosition,i=this.yPosition){this._classList=Ye(rA({},this._classList),{"mat-menu-before":A==="before","mat-menu-after":A==="after","mat-menu-above":i==="above","mat-menu-below":i==="below"}),this._changeDetectorRef.markForCheck()}_onAnimationDone(A){let i=A===d7;(i||A===sU)&&(i&&(clearTimeout(this._exitFallbackTimeout),this._exitFallbackTimeout=void 0),this._animationDone.next(i?"void":"enter"),this._isAnimating=!1)}_onAnimationStart(A){(A===sU||A===d7)&&(this._isAnimating=!0)}_setIsOpen(A){if(this._panelAnimationState=A?"enter":"void",A){if(this._keyManager.activeItemIndex===0){let i=this._resolvePanel();i&&(i.scrollTop=0)}}else this._animationsDisabled||(this._exitFallbackTimeout=setTimeout(()=>this._onAnimationDone(d7),200));this._animationsDisabled&&setTimeout(()=>{this._onAnimationDone(A?sU:d7)}),this._changeDetectorRef.markForCheck()}_updateDirectDescendants(){this._allItems.changes.pipe(Pn(this._allItems)).subscribe(A=>{this._directDescendantItems.reset(A.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}_resolvePanel(){let A=null;return this._directDescendantItems.length&&(A=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),A}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-menu"]],contentQueries:function(i,n,o){if(i&1&&(ci(o,$PA,5),ci(o,bf,5),ci(o,bf,4)),i&2){let r;XA(r=$A())&&(n.lazyContent=r.first),XA(r=$A())&&(n._allItems=r),XA(r=$A())&&(n.items=r)}},viewQuery:function(i,n){if(i&1&&Te(wn,5),i&2){let o;XA(o=$A())&&(n.templateRef=o.first)}},hostVars:3,hostBindings:function(i,n){i&2&&Ne("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[2,"overlapTrigger","overlapTrigger",ie],hasBackdrop:[2,"hasBackdrop","hasBackdrop",A=>A==null?null:ie(A)],panelClass:[0,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],features:[ht([{provide:aU,useExisting:t}])],ngContentSelectors:WPA,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel",3,"click","animationstart","animationend","animationcancel","id"],[1,"mat-mdc-menu-content"]],template:function(i,n){i&1&&(jt(),_A(0,XPA,3,12,"ng-template"))},styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;outline:0}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-menu-item-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-menu-item-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-menu-item-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-menu-item-label-text-weight, var(--mat-sys-label-large-weight))}@keyframes _mat-menu-enter{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:none}}@keyframes _mat-menu-exit{from{opacity:1}to{opacity:0}}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;box-sizing:border-box;outline:0;animation:_mat-menu-enter 120ms cubic-bezier(0, 0, 0.2, 1);border-radius:var(--mat-menu-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-menu-container-color, var(--mat-sys-surface-container));box-shadow:var(--mat-menu-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));will-change:transform,opacity}.mat-mdc-menu-panel.mat-menu-panel-exit-animation{animation:_mat-menu-exit 100ms 25ms linear forwards}.mat-mdc-menu-panel.mat-menu-panel-animations-disabled{animation:none}.mat-mdc-menu-panel.mat-menu-panel-animating{pointer-events:none}.mat-mdc-menu-panel.mat-menu-panel-animating:has(.mat-mdc-menu-content:empty){display:none}@media(forced-colors: active){.mat-mdc-menu-panel{outline:solid 1px}}.mat-mdc-menu-panel .mat-divider{color:var(--mat-menu-divider-color, var(--mat-sys-surface-variant));margin-bottom:var(--mat-menu-divider-bottom-spacing, 8px);margin-top:var(--mat-menu-divider-top-spacing, 8px)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px;padding-left:var(--mat-menu-item-leading-spacing, 12px);padding-right:var(--mat-menu-item-trailing-spacing, 12px);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-menu-item::-moz-focus-inner{border:0}[dir=rtl] .mat-mdc-menu-item{padding-left:var(--mat-menu-item-trailing-spacing, 12px);padding-right:var(--mat-menu-item-leading-spacing, 12px)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-trailing-spacing, 12px)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-trailing-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-leading-spacing, 12px)}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item:focus{outline:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing, 12px);height:var(--mat-menu-item-icon-size, 24px);width:var(--mat-menu-item-icon-size, 24px)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing, 12px)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}@media(forced-colors: active){.mat-mdc-menu-item{margin-top:1px}}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size, 24px);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing, 12px)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing, 12px);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1);transform-origin:center}@media(forced-colors: active){.mat-mdc-menu-submenu-icon{fill:CanvasText}}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,changeDetection:0})}return t})(),hlA=new dA("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(nr);return()=>t.scrollStrategies.reposition()}});function tjA(t){return()=>t.scrollStrategies.reposition()}var ijA={provide:hlA,deps:[nr],useFactory:tjA},QlA=bc({passive:!0});var vf=new WeakMap,ulA=(()=>{class t{_overlay=f(nr);_element=f(ee);_viewContainerRef=f(Nn);_menuItemInstance=f(bf,{optional:!0,self:!0});_dir=f(mo,{optional:!0});_focusMonitor=f(dr);_ngZone=f(Qe);_scrollStrategy=f(hlA);_changeDetectorRef=f(It);_portal;_overlayRef=null;_menuOpen=!1;_closingActionsSubscription=Kt.EMPTY;_hoverSubscription=Kt.EMPTY;_menuCloseSubscription=Kt.EMPTY;_pendingRemoval;_parentMaterialMenu;_parentInnerPadding;_handleTouchStart=A=>{Su(A)||(this._openedBy="touch")};_openedBy=void 0;get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(A){this.menu=A}get menu(){return this._menu}set menu(A){A!==this._menu&&(this._menu=A,this._menuCloseSubscription.unsubscribe(),A&&(this._parentMaterialMenu,this._menuCloseSubscription=A.close.subscribe(i=>{this._destroyMenu(i),(i==="click"||i==="tab")&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}_menu;menuData;restoreFocus=!0;menuOpened=new WA;onMenuOpen=this.menuOpened;menuClosed=new WA;onMenuClose=this.menuClosed;constructor(){let A=f(aU,{optional:!0});this._parentMaterialMenu=A instanceof NQ?A:void 0,this._element.nativeElement.addEventListener("touchstart",this._handleTouchStart,QlA)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this.menu&&this._ownsMenu(this.menu)&&vf.delete(this.menu),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,QlA),this._pendingRemoval?.unsubscribe(),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe(),this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null)}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){let A=this.menu;if(this._menuOpen||!A)return;this._pendingRemoval?.unsubscribe();let i=vf.get(A);vf.set(A,this),i&&i!==this&&i.closeMenu();let n=this._createOverlay(A),o=n.getConfig(),r=o.positionStrategy;this._setPosition(A,r),o.hasBackdrop=A.hasBackdrop==null?!this.triggersSubmenu():A.hasBackdrop,n.hasAttached()||(n.attach(this._getPortal(A)),A.lazyContent?.attach(this.menuData)),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),A.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,A.direction=this.dir,A.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0),A instanceof NQ&&(A._setIsOpen(!0),A._directDescendantItems.changes.pipe(St(A.close)).subscribe(()=>{r.withLockedPosition(!1).reapplyLastPosition(),r.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(A,i){this._focusMonitor&&A?this._focusMonitor.focusVia(this._element,A,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(A){let i=this._overlayRef,n=this._menu;!i||!this.menuOpen||(this._closingActionsSubscription.unsubscribe(),this._pendingRemoval?.unsubscribe(),n instanceof NQ&&this._ownsMenu(n)?(this._pendingRemoval=n._animationDone.pipe(On(1)).subscribe(()=>{i.detach(),n.lazyContent?.detach()}),n._setIsOpen(!1)):(i.detach(),n?.lazyContent?.detach()),n&&this._ownsMenu(n)&&vf.delete(n),this.restoreFocus&&(A==="keydown"||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,this._setIsMenuOpen(!1))}_setIsMenuOpen(A){A!==this._menuOpen&&(this._menuOpen=A,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(A),this._changeDetectorRef.markForCheck())}_createOverlay(A){if(!this._overlayRef){let i=this._getOverlayConfig(A);this._subscribeToPositions(A,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe(n=>{this.menu instanceof NQ&&this.menu._handleKeydown(n)})}return this._overlayRef}_getOverlayConfig(A){return new Bg({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:A.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:A.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir||"ltr"})}_subscribeToPositions(A,i){A.setPositionClasses&&i.positionChanges.subscribe(n=>{this._ngZone.run(()=>{let o=n.connectionPair.overlayX==="start"?"after":"before",r=n.connectionPair.overlayY==="top"?"below":"above";A.setPositionClasses(o,r)})})}_setPosition(A,i){let[n,o]=A.xPosition==="before"?["end","start"]:["start","end"],[r,s]=A.yPosition==="above"?["bottom","top"]:["top","bottom"],[a,c]=[r,s],[l,I]=[n,o],C=0;if(this.triggersSubmenu()){if(I=n=A.xPosition==="before"?"start":"end",o=l=n==="end"?"start":"end",this._parentMaterialMenu){if(this._parentInnerPadding==null){let d=this._parentMaterialMenu.items.first;this._parentInnerPadding=d?d._getHostElement().offsetTop:0}C=r==="bottom"?this._parentInnerPadding:-this._parentInnerPadding}}else A.overlapTrigger||(a=r==="top"?"bottom":"top",c=s==="top"?"bottom":"top");i.withPositions([{originX:n,originY:a,overlayX:l,overlayY:r,offsetY:C},{originX:o,originY:a,overlayX:I,overlayY:r,offsetY:C},{originX:n,originY:c,overlayX:l,overlayY:s,offsetY:-C},{originX:o,originY:c,overlayX:I,overlayY:s,offsetY:-C}])}_menuClosingActions(){let A=this._overlayRef.backdropClick(),i=this._overlayRef.detachments(),n=this._parentMaterialMenu?this._parentMaterialMenu.closed:Me(),o=this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(kt(r=>this._menuOpen&&r!==this._menuItemInstance)):Me();return zn(A,n,o,i)}_handleMousedown(A){ku(A)||(this._openedBy=A.button===0?"mouse":void 0,this.triggersSubmenu()&&A.preventDefault())}_handleKeydown(A){let i=A.keyCode;(i===13||i===32)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(i===39&&this.dir==="ltr"||i===37&&this.dir==="rtl")&&(this._openedBy="keyboard",this.openMenu())}_handleClick(A){this.triggersSubmenu()?(A.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){this.triggersSubmenu()&&this._parentMaterialMenu&&(this._hoverSubscription=this._parentMaterialMenu._hovered().subscribe(A=>{A===this._menuItemInstance&&!A.disabled&&(this._openedBy="mouse",this.openMenu())}))}_getPortal(A){return(!this._portal||this._portal.templateRef!==A.templateRef)&&(this._portal=new ys(A.templateRef,this._viewContainerRef)),this._portal}_ownsMenu(A){return vf.get(A)===this}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(i,n){i&1&&hA("click",function(r){return n._handleClick(r)})("mousedown",function(r){return n._handleMousedown(r)})("keydown",function(r){return n._handleKeydown(r)}),i&2&&Ne("aria-haspopup",n.menu?"menu":null)("aria-expanded",n.menuOpen)("aria-controls",n.menuOpen?n.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[0,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[0,"matMenuTriggerFor","menu"],menuData:[0,"matMenuTriggerData","menuData"],restoreFocus:[0,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"]})}return t})(),flA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({providers:[ijA],imports:[Ps,it,El,Cl,it]})}return t})(),mlA={transformMenu:sc("transformMenu",[js("void",po({opacity:0,transform:"scale(0.8)"})),Vr("void => enter",ss("120ms cubic-bezier(0, 0, 0.2, 1)",po({opacity:1,transform:"scale(1)"}))),Vr("* => void",ss("100ms 25ms linear",po({opacity:0})))]),fadeInItems:sc("fadeInItems",[js("showing",po({opacity:1})),Vr("void => *",[po({opacity:0}),ss("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},zve=mlA.fadeInItems,Ove=mlA.transformMenu;var Mf=class t{sessionState={};constructor(){}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=zA({type:t,selectors:[["app-state-tab"]],inputs:{sessionState:"sessionState"},standalone:!1,decls:3,vars:1,consts:[[1,"state-wrapper"],[3,"json"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"div"),JA(2,"ngx-json-viewer",1),F()()),A&2&&(G(2),yA("json",i.sessionState))},dependencies:[FQ],styles:[".state-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;margin-top:16px}"]})};var kf=class t{constructor(e,A){this.el=e;this.renderer=A;this.sideDrawerMaxWidth=window.innerWidth/2}sideDrawerMinWidth=310;sideDrawerMaxWidth;resizeHandle=null;resizingEvent={isResizing:!1,startingCursorX:0,startingWidth:0};ngAfterViewInit(){this.resizeHandle=document.getElementsByClassName("resize-handler")[0],this.renderer.listen(this.resizeHandle,"mousedown",e=>this.onResizeHandleMouseDown(e)),document.documentElement.style.setProperty("--side-drawer-width","570px"),this.renderer.setStyle(this.el.nativeElement,"width","var(--side-drawer-width)")}onResizeHandleMouseDown(e){this.resizingEvent={isResizing:!0,startingCursorX:e.clientX,startingWidth:this.sideDrawerWidth},e.preventDefault()}onMouseMove(e){if(!this.resizingEvent.isResizing)return;let A=e.clientX-this.resizingEvent.startingCursorX,i=this.resizingEvent.startingWidth+A;this.sideDrawerWidth=i,this.renderer.addClass(document.body,"resizing")}onMouseUp(){this.resizingEvent.isResizing=!1,this.renderer.removeClass(document.body,"resizing")}onResize(){this.sideDrawerMaxWidth=window.innerWidth/2,this.sideDrawerWidth=this.sideDrawerWidth}set sideDrawerWidth(e){let A=Math.min(Math.max(e,this.sideDrawerMinWidth),this.sideDrawerMaxWidth);document.body.style.setProperty("--side-drawer-width",`${A}px`)}get sideDrawerWidth(){let e=getComputedStyle(document.body).getPropertyValue("--side-drawer-width"),A=parseInt(e,10);return isNaN(A)?500:A}static \u0275fac=function(A){return new(A||t)(PA(ee),PA(Wi))};static \u0275dir=jA({type:t,selectors:[["","appResizableDrawer",""]],hostBindings:function(A,i){A&1&&hA("mousemove",function(o){return i.onMouseMove(o)},!1,Wd)("mouseup",function(){return i.onMouseUp()},!1,Wd)("resize",function(){return i.onResize()},!1,wp)},standalone:!1})};var Sf=class t{constructor(e,A){this.el=e;this.renderer=A;this.bottomMaxHeight=window.innerHeight}bottomMinHeight=310;bottomMaxHeight;resizeHandle=null;resizingEvent={isResizing:!1,startingCursorY:0,startingHeight:0};ngAfterViewInit(){this.resizeHandle=document.getElementsByClassName("bottom-resize-handler")[0],this.renderer.listen(this.resizeHandle,"mousedown",e=>this.onResizeHandleMouseDown(e)),document.documentElement.style.setProperty("--bottom-panel-height","310px"),this.renderer.setStyle(this.el.nativeElement,"height","var(--bottom-panel-height)")}onResizeHandleMouseDown(e){this.resizingEvent={isResizing:!0,startingCursorY:e.clientY,startingHeight:this.bottomPanelHeight},e.preventDefault()}onMouseMove(e){if(!this.resizingEvent.isResizing)return;let A=this.resizingEvent.startingCursorY-e.clientY,i=this.resizingEvent.startingHeight+A;this.bottomPanelHeight=i,this.renderer.addClass(document.body,"resizing")}onMouseUp(){this.resizingEvent.isResizing=!1,this.renderer.removeClass(document.body,"resizing")}onResize(){this.bottomMaxHeight=window.innerHeight/2,this.bottomPanelHeight=this.bottomPanelHeight}set bottomPanelHeight(e){let A=Math.min(Math.max(e,this.bottomMinHeight),this.bottomMaxHeight);document.body.style.setProperty("--bottom-panel-height",`${A}px`)}get bottomPanelHeight(){let e=getComputedStyle(document.body).getPropertyValue("--bottom-panel-height"),A=parseInt(e,10);return isNaN(A)?500:A}static \u0275fac=function(A){return new(A||t)(PA(ee),PA(Wi))};static \u0275dir=jA({type:t,selectors:[["","appResizableBottomPanel",""]],hostBindings:function(A,i){A&1&&hA("mousemove",function(o){return i.onMouseMove(o)},!1,Wd)("mouseup",function(){return i.onMouseUp()},!1,Wd)("resize",function(){return i.onResize()},!1,wp)},standalone:!1})};var plA=new dA("CdkAccordion");var wlA=(()=>{class t{accordion=f(plA,{optional:!0,skipSelf:!0});_changeDetectorRef=f(It);_expansionDispatcher=f(xB);_openCloseAllSubscription=Kt.EMPTY;closed=new WA;opened=new WA;destroyed=new WA;expandedChange=new WA;id=f(sn).getId("cdk-accordion-child-");get expanded(){return this._expanded}set expanded(A){if(this._expanded!==A){if(this._expanded=A,this.expandedChange.emit(A),A){this.opened.emit();let i=this.accordion?this.accordion.id:this.id;this._expansionDispatcher.notify(this.id,i)}else this.closed.emit();this._changeDetectorRef.markForCheck()}}_expanded=!1;disabled=!1;_removeUniqueSelectionListener=()=>{};constructor(){}ngOnInit(){this._removeUniqueSelectionListener=this._expansionDispatcher.listen((A,i)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===i&&this.id!==A&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(A=>{this.disabled||(this.expanded=A)})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[2,"expanded","expanded",ie],disabled:[2,"disabled","disabled",ie]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[ht([{provide:plA,useValue:void 0}])]})}return t})(),DlA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({})}return t})();var ajA=["body"],cjA=["bodyWrapper"],ljA=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],gjA=["mat-expansion-panel-header","*","mat-action-row"];function IjA(t,e){}var CjA=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],djA=["mat-panel-title","mat-panel-description","*"];function BjA(t,e){t&1&&(S(0,"span",1),ar(),S(1,"svg",2),JA(2,"path",3),F()())}var ylA=new dA("MAT_ACCORDION"),vlA=new dA("MAT_EXPANSION_PANEL"),EjA=(()=>{class t{_template=f(wn);_expansionPanel=f(vlA,{optional:!0});constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["ng-template","matExpansionPanelContent",""]]})}return t})(),blA=new dA("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS"),cU=(()=>{class t extends wlA{_viewContainerRef=f(Nn);_animationsDisabled=f(Si,{optional:!0})==="NoopAnimations";_document=f(at);_ngZone=f(Qe);_elementRef=f(ee);_renderer=f(Wi);_cleanupTransitionEnd;get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(A){this._hideToggle=A}_hideToggle=!1;get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(A){this._togglePosition=A}_togglePosition;afterExpand=new WA;afterCollapse=new WA;_inputChanges=new OA;accordion=f(ylA,{optional:!0,skipSelf:!0});_lazyContent;_body;_bodyWrapper;_portal;_headerId=f(sn).getId("mat-expansion-panel-header-");constructor(){super();let A=f(blA,{optional:!0});this._expansionDispatcher=f(xB),A&&(this.hideToggle=A.hideToggle)}_hasSpacing(){return this.accordion?this.expanded&&this.accordion.displayMode==="default":!1}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(Pn(null),kt(()=>this.expanded&&!this._portal),On(1)).subscribe(()=>{this._portal=new ys(this._lazyContent._template,this._viewContainerRef)}),this._setupAnimationEvents()}ngOnChanges(A){this._inputChanges.next(A)}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTransitionEnd?.(),this._inputChanges.complete()}_containsFocus(){if(this._body){let A=this._document.activeElement,i=this._body.nativeElement;return A===i||i.contains(A)}return!1}_transitionEndListener=({target:A,propertyName:i})=>{A===this._bodyWrapper?.nativeElement&&i==="grid-template-rows"&&this._ngZone.run(()=>{this.expanded?this.afterExpand.emit():this.afterCollapse.emit()})};_setupAnimationEvents(){this._ngZone.runOutsideAngular(()=>{this._animationsDisabled?(this.opened.subscribe(()=>this._ngZone.run(()=>this.afterExpand.emit())),this.closed.subscribe(()=>this._ngZone.run(()=>this.afterCollapse.emit()))):setTimeout(()=>{let A=this._elementRef.nativeElement;this._cleanupTransitionEnd=this._renderer.listen(A,"transitionend",this._transitionEndListener),A.classList.add("mat-expansion-panel-animations-enabled")},200)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-expansion-panel"]],contentQueries:function(i,n,o){if(i&1&&ci(o,EjA,5),i&2){let r;XA(r=$A())&&(n._lazyContent=r.first)}},viewQuery:function(i,n){if(i&1&&(Te(ajA,5),Te(cjA,5)),i&2){let o;XA(o=$A())&&(n._body=o.first),XA(o=$A())&&(n._bodyWrapper=o.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:4,hostBindings:function(i,n){i&2&&ue("mat-expanded",n.expanded)("mat-expansion-panel-spacing",n._hasSpacing())},inputs:{hideToggle:[2,"hideToggle","hideToggle",ie],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[ht([{provide:ylA,useValue:void 0},{provide:vlA,useExisting:t}]),lt,ti],ngContentSelectors:gjA,decls:9,vars:4,consts:[["bodyWrapper",""],["body",""],[1,"mat-expansion-panel-content-wrapper"],["role","region",1,"mat-expansion-panel-content",3,"id"],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(i,n){i&1&&(jt(ljA),Fe(0),S(1,"div",2,0)(3,"div",3,1)(5,"div",4),Fe(6,1),_A(7,IjA,0,0,"ng-template",5),F(),Fe(8,2),F()()),i&2&&(G(),Ne("inert",n.expanded?null:""),G(2),yA("id",n.id),Ne("aria-labelledby",n._headerId),G(4),yA("cdkPortalOutlet",n._portal))},dependencies:[fa],styles:[".mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden;position:relative;background:var(--mat-expansion-container-background-color, var(--mat-sys-surface));color:var(--mat-expansion-container-text-color, var(--mat-sys-on-surface));border-radius:var(--mat-expansion-container-shape, 12px)}.mat-expansion-panel.mat-expansion-panel-animations-enabled{transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape, 12px);border-top-left-radius:var(--mat-expansion-container-shape, 12px)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape, 12px);border-bottom-left-radius:var(--mat-expansion-container-shape, 12px)}@media(forced-colors: active){.mat-expansion-panel{outline:solid 1px}}.mat-expansion-panel-content-wrapper{display:grid;grid-template-rows:0fr;grid-template-columns:100%}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content-wrapper{transition:grid-template-rows 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{grid-template-rows:1fr}@supports not (grid-template-rows: 0fr){.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;min-height:0;visibility:hidden;font-family:var(--mat-expansion-container-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-expansion-container-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-expansion-container-text-weight, var(--mat-sys-body-large-weight));line-height:var(--mat-expansion-container-text-line-height, var(--mat-sys-body-large-line-height));letter-spacing:var(--mat-expansion-container-text-tracking, var(--mat-sys-body-large-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content{transition:visibility 190ms linear}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper>.mat-expansion-panel-content{visibility:visible}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color, var(--mat-sys-outline))}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}return t})();var MlA=(()=>{class t{panel=f(cU,{host:!0});_element=f(ee);_focusMonitor=f(dr);_changeDetectorRef=f(It);_parentChangeSubscription=Kt.EMPTY;constructor(){f(Rn).load(lr);let A=this.panel,i=f(blA,{optional:!0}),n=f(new wr("tabindex"),{optional:!0}),o=A.accordion?A.accordion._stateChanges.pipe(kt(r=>!!(r.hideToggle||r.togglePosition))):sr;this.tabIndex=parseInt(n||"")||0,this._parentChangeSubscription=zn(A.opened,A.closed,o,A._inputChanges.pipe(kt(r=>!!(r.hideToggle||r.disabled||r.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),A.closed.pipe(kt(()=>A._containsFocus())).subscribe(()=>this._focusMonitor.focusVia(this._element,"program")),i&&(this.expandedHeight=i.expandedHeight,this.collapsedHeight=i.collapsedHeight)}expandedHeight;collapsedHeight;tabIndex=0;get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){let A=this._isExpanded();return A&&this.expandedHeight?this.expandedHeight:!A&&this.collapsedHeight?this.collapsedHeight:null}_keydown(A){switch(A.keyCode){case 32:case 13:ir(A)||(A.preventDefault(),this._toggle());break;default:this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(A);return}}focus(A,i){A?this._focusMonitor.focusVia(this._element,A,i):this._element.nativeElement.focus(i)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(A=>{A&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:13,hostBindings:function(i,n){i&1&&hA("click",function(){return n._toggle()})("keydown",function(r){return n._keydown(r)}),i&2&&(Ne("id",n.panel._headerId)("tabindex",n.disabled?-1:n.tabIndex)("aria-controls",n._getPanelId())("aria-expanded",n._isExpanded())("aria-disabled",n.panel.disabled),uo("height",n._getHeaderHeight()),ue("mat-expanded",n._isExpanded())("mat-expansion-toggle-indicator-after",n._getTogglePosition()==="after")("mat-expansion-toggle-indicator-before",n._getTogglePosition()==="before"))},inputs:{expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight",tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:zi(A)]},ngContentSelectors:djA,decls:5,vars:3,consts:[[1,"mat-content"],[1,"mat-expansion-indicator"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 -960 960 960","aria-hidden","true","focusable","false"],["d","M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z"]],template:function(i,n){i&1&&(jt(CjA),S(0,"span",0),Fe(1),Fe(2,1),Fe(3,2),F(),_A(4,BjA,3,0,"span",1)),i&2&&(ue("mat-content-hide-toggle",!n._showToggle()),G(4),GA(n._showToggle()?4:-1))},styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;height:var(--mat-expansion-header-collapsed-state-height, 48px);font-family:var(--mat-expansion-header-text-font, var(--mat-sys-title-medium-font));font-size:var(--mat-expansion-header-text-size, var(--mat-sys-title-medium-size));font-weight:var(--mat-expansion-header-text-weight, var(--mat-sys-title-medium-weight));line-height:var(--mat-expansion-header-text-line-height, var(--mat-sys-title-medium-line-height));letter-spacing:var(--mat-expansion-header-text-tracking, var(--mat-sys-title-medium-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-header{transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header::before{border-radius:inherit}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height, 64px)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color, var(--mat-sys-surface))}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color, var(--mat-sys-on-surface))}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color, var(--mat-sys-on-surface-variant))}.mat-expansion-panel-animations-enabled .mat-expansion-indicator{transition:transform 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header.mat-expanded .mat-expansion-indicator{transform:rotate(180deg)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-legacy-header-indicator-display, none)}.mat-expansion-indicator svg{width:24px;height:24px;margin:0 -8px;vertical-align:middle;fill:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-header-indicator-display, inline-block)}@media(forced-colors: active){.mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}}'],encapsulation:2,changeDetection:0})}return t})();var klA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=jA({type:t,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]})}return t})();var SlA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[it,DlA,dg]})}return t})();var RlA=t=>({color:t});function hjA(t,e){t&1&&JA(0,"div",8)}function ujA(t,e){if(t&1&&(S(0,"span",14),AA(1),F()),t&2){let A=O().$implicit,i=O();uo("left",i.getRelativeStart(A.span)+5,"%"),G(),Et("",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms")}}function fjA(t,e){if(t&1){let A=be();S(0,"div",5),hA("click",function(){let n=RA(A).$implicit,o=O();return xA(o.selectRow(n))})("mouseenter",function(){let n=RA(A).$implicit,o=O();return xA(o.onHover(n))})("mouseleave",function(){RA(A);let n=O();return xA(n.onHoverOut())}),S(1,"div",6)(2,"div",7),Dn(3,hjA,1,0,"div",8,Xd),F(),S(5,"span",9),AA(6),F(),S(7,"div",10),AA(8),F()(),S(9,"div",11)(10,"div",12),AA(11),F(),_A(12,ujA,2,3,"span",13),F()()}if(t&2){let A=e.$implicit,i=O();ue("selected",i.rowSelected(A)),G(3),yn(i.getArray(A.level)),G(2),yA("ngStyle",qr(14,RlA,i.isEventRow(A)?"#8AB4F8":"white")),G(),Et(" ",i.getSpanIcon(A.span.name)," "),G(),uo("width",400-A.level*20,"px"),yA("ngStyle",qr(16,RlA,i.isEventRow(A)?"#8AB4F8":"white")),G(),Et(" ",A.span.name," "),G(2),uo("left",i.getRelativeStart(A.span),"%")("width",i.getRelativeWidth(A.span),"%"),G(),Et(" ",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms "),G(),GA(i.getRelativeWidth(A.span)<10?12:-1)}}var Rf=class t{constructor(e){this.traceService=e}spans=[];invocationId="";tree=[];eventData;baseStartTimeMs=0;totalDurationMs=1;flatTree=[];traceLabelIconMap=new Map([["Invocation","start"],["agent_run","directions_run"],["tool","build"],["call_llm","chat"]]);selectedRow=void 0;ngOnInit(){this.tree=this.buildSpanTree(this.spans),this.flatTree=this.flattenTree(this.tree);let e=this.getGlobalTimes(this.spans);this.baseStartTimeMs=e.start,this.totalDurationMs=e.duration,this.traceService.selectedTraceRow$.subscribe(A=>this.selectedRow=A),this.traceService.eventData$.subscribe(A=>this.eventData=A)}buildSpanTree(e){let A=e.map(o=>rA({},o)),i=new Map,n=[];return A.forEach(o=>i.set(o.span_id,o)),A.forEach(o=>{if(o.parent_span_id&&i.has(o.parent_span_id)){let r=i.get(o.parent_span_id);r.children=r.children||[],r.children.push(o)}else n.push(o)}),n}getGlobalTimes(e){let A=Math.min(...e.map(n=>this.toMs(n.start_time))),i=Math.max(...e.map(n=>this.toMs(n.end_time)));return{start:A,duration:i-A}}toMs(e){return e/1e6}getRelativeStart(e){return(this.toMs(e.start_time)-this.baseStartTimeMs)/this.totalDurationMs*100}getRelativeWidth(e){return(this.toMs(e.end_time)-this.toMs(e.start_time))/this.totalDurationMs*100}flattenTree(e,A=0){return e.flatMap(n=>[{span:n,level:A},...n.children?this.flattenTree(n.children,A+1):[]])}getSpanIcon(e){for(let[A,i]of this.traceLabelIconMap.entries())if(e.startsWith(A))return i;return"start"}getArray(e){return Array.from({length:e})}selectRow(e){if(this.selectedRow&&this.selectedRow.span_id==e.span.span_id){this.traceService.selectedRow(void 0),this.traceService.setHoveredMessages(void 0,this.invocationId);return}this.traceService.selectedRow(e.span),this.traceService.setHoveredMessages(e.span,this.invocationId)}rowSelected(e){return this.selectedRow==e.span}isEventRow(e){if(!e.span.attributes)return!1;let A=e?.span.attributes["gcp.vertex.agent.event_id"];return!!(A&&this.eventData&&this.eventData.has(A))}onHover(e){this.traceService.setHoveredMessages(e.span,this.invocationId)}onHoverOut(){this.traceService.setHoveredMessages(void 0,this.invocationId),this.selectedRow&&this.traceService.setHoveredMessages(this.selectedRow,this.invocationId)}static \u0275fac=function(A){return new(A||t)(PA($g))};static \u0275cmp=zA({type:t,selectors:[["app-trace-tree"]],inputs:{spans:"spans",invocationId:"invocationId"},standalone:!1,decls:8,vars:1,consts:[[2,"margin-top","15px"],[1,"invocation-id-container"],[1,"invocation-id"],[1,"trace-container"],[1,"trace-row",3,"selected"],[1,"trace-row",3,"click","mouseenter","mouseleave"],[1,"trace-row-left"],[1,"trace-indent"],[1,"indent-connector"],[1,"material-symbols-outlined",2,"margin-right","8px",3,"ngStyle"],[1,"trace-label",3,"ngStyle"],[1,"trace-bar-container"],[1,"trace-bar"],[2,"position","absolute","color","#8dabbf",3,"left"],[2,"position","absolute","color","#8dabbf"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"div",1),AA(2,"Invocation ID: "),S(3,"div",2),AA(4),F()(),S(5,"div",3),Dn(6,fjA,13,18,"div",4,to),F()()),A&2&&(G(4),Gt(i.invocationId),G(2),yn(i.flatTree))},dependencies:[Kh],styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-label[_ngcontent-%COMP%]{width:400px;color:#e3e3e3;font-family:Google Sans Mono,monospace;font-size:13px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.trace-bar-container[_ngcontent-%COMP%]{width:100%;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:#2f4d65;border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:#8dabbf;font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:#888;font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px;align-items:center;cursor:pointer}.trace-row[_ngcontent-%COMP%]:hover, .trace-row.selected[_ngcontent-%COMP%]{background-color:#3b3d3c}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:#ccc}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:#ccc}.trace-row-left[_ngcontent-%COMP%]{display:flex;width:50%}.invocation-id-container[_ngcontent-%COMP%]{color:#9aa0a6;font-size:14px;font-style:normal;font-weight:700;line-height:20px;letter-spacing:0px;margin-bottom:5px}.invocation-id[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}"]})};function pjA(t,e){if(t&1&&(S(0,"div",3)(1,"mat-expansion-panel")(2,"mat-expansion-panel-header")(3,"mat-panel-title"),AA(4),F()(),JA(5,"app-trace-tree",4),F()()),t&2){let A=e.$implicit,i=O();G(4),Et(" ",i.invocToUserMsg.get(A.key)," "),G(),yA("spans",A.value)("invocationId",i.findInvocIdFromTraceId(A.key))}}var xf=class t{traceData=[];invocTraces=new Map;invocToUserMsg=new Map;constructor(){}ngOnInit(){}ngOnChanges(e){"traceData"in e&&this.rebuildTrace()}rebuildTrace(){this.invocTraces=this.traceData.reduce((e,A)=>{let i=A.trace_id,n=e.get(i);return n?(n.push(A),n.sort((o,r)=>o.start_time-r.start_time)):e.set(i,[A]),e},new Map);for(let[e,A]of this.invocTraces)this.invocToUserMsg.set(e,this.findUserMsgFromInvocGroup(A))}getArray(e){return Array.from({length:e})}findUserMsgFromInvocGroup(e){let A=e?.find(o=>o.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in o.attributes);return JSON.parse(A.attributes["gcp.vertex.agent.llm_request"]).contents.filter(o=>o.role=="user").at(-1).parts[0]?.text??"[attachment]"}findInvocIdFromTraceId(e){return this.invocTraces.get(e)?.find(i=>i.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in i.attributes).attributes["gcp.vertex.agent.invocation_id"]}mapOrderPreservingSort=(e,A)=>0;static \u0275fac=function(A){return new(A||t)};static \u0275cmp=zA({type:t,selectors:[["app-trace-tab"]],inputs:{traceData:"traceData"},standalone:!1,features:[ti],decls:7,vars:3,consts:[[2,"padding-left","25px","padding-right","25px"],["mat-dialog-title","",1,"trace-title"],[1,"trace-list-wrapper"],[1,"trace-item"],[3,"spans","invocationId"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2,"Invocations"),F(),S(3,"div",2),Dn(4,pjA,6,3,"div",3,to),Za(6,"keyvalue"),F()()),A&2&&(G(4),yn(Lh(6,0,i.invocTraces,i.mapOrderPreservingSort)))},dependencies:[bs,cU,MlA,klA,Rf,Th],styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-title[_ngcontent-%COMP%]{color:#9aa0a6;font-size:14px;font-style:normal;font-weight:700;line-height:20px;letter-spacing:0px}.trace-label[_ngcontent-%COMP%]{width:400px;color:#e3e3e3;text-overflow:ellipsis;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px}.trace-bar-container[_ngcontent-%COMP%]{width:50vw;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:#2f4d65;border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:#8dabbf;font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:#888;font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:#ccc}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:#ccc}.trace-item[_ngcontent-%COMP%]{margin-top:5px}.trace-item[_ngcontent-%COMP%]{--mat-expansion-container-background-color: #333537}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-focus-state-layer-color: red}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-description-color: #8e918f}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-text-size: 15} .mat-expansion-panel-header.mat-expanded:focus{background-color:#444746!important} .mat-expansion-panel-header.mat-expanded{background-color:#444746!important} .mat-expansion-panel-header.mat-expanded:hover{background-color:#444746!important} .mat-expansion-panel-header-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden} .mat-expansion-panel-header-description{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}"]})};function DjA(t,e){if(t&1){let A=be();S(0,"div",11),hA("click",function(){RA(A);let n=O();return xA(n.openViewImageDialog(n.rawSvgString))}),F()}if(t&2){let A=O();yA("innerHtml",A.renderedEventGraph,RI)}}var Lf=class t{constructor(e,A,i,n){this.dialog=e;this.traceService=A;this.eventService=i;this.sanitizer=n}userId="";sessionId="";appName="";panelClosed=new WA;renderedEventGraph;eventData;selectedRow=void 0;rawSvgString=null;llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";ngOnInit(){this.traceService.selectedTraceRow$.subscribe(e=>{this.selectedRow=e;let A=this.getEventIdFromSpan();A&&(this.eventService.getEventTrace(A).subscribe(i=>{this.llmRequest=JSON.parse(i[this.llmRequestKey]),this.llmResponse=JSON.parse(i[this.llmResponseKey])}),this.getEventGraph(A))}),this.traceService.eventData$.subscribe(e=>this.eventData=e)}openViewImageDialog(e){let A=this.dialog.open(v0,{maxWidth:"90vw",maxHeight:"90vh",data:{imageData:e}})}getEventDetails(){if(this.eventData&&this.selectedRow)return this.eventData.get(this.getEventIdFromSpan())}getEventIdFromSpan(){if(this.selectedRow)return this.selectedRow.attributes["gcp.vertex.agent.event_id"]}getEventGraph(e){this.eventService.getEvent(this.userId,this.appName,this.sessionId,e).subscribe(A=>Ao(this,null,function*(){if(!A.dotSrc){this.renderedEventGraph=void 0;return}let i=A.dotSrc,o=(yield Yu()).renderString(i,{format:"svg",engine:"dot"});this.rawSvgString=o,this.renderedEventGraph=this.sanitizer.bypassSecurityTrustHtml(o)}))}closePanel(){this.panelClosed.emit(!0)}static \u0275fac=function(A){return new(A||t)(PA(qs),PA($g),PA(nI),PA(cl))};static \u0275cmp=zA({type:t,selectors:[["app-trace-event"]],inputs:{userId:"userId",sessionId:"sessionId",appName:"appName"},outputs:{panelClosed:"panelClosed"},standalone:!1,decls:17,vars:4,consts:[[1,"wrapper"],["mat-stretch-tabs","false","mat-align-tabs","start"],["label","Event"],[1,"json-viewer-container"],[3,"json"],["label","Request"],["label","Response"],["label","Graph"],[1,"event-graph-container"],[3,"innerHtml"],["mat-icon-button","",1,"tab-header-action",3,"click"],[3,"click","innerHtml"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"mat-tab-group",1)(2,"mat-tab",2)(3,"div",3),JA(4,"ngx-json-viewer",4),F()(),S(5,"mat-tab",5)(6,"div",3),JA(7,"ngx-json-viewer",4),F()(),S(8,"mat-tab",6)(9,"div",3),JA(10,"ngx-json-viewer",4),F()(),S(11,"mat-tab",7)(12,"div",8),_A(13,DjA,1,1,"div",9),F()()(),S(14,"button",10),hA("click",function(){return i.closePanel()}),S(15,"mat-icon"),AA(16,"close"),F()()()),A&2&&(G(4),yA("json",i.getEventDetails()),G(3),yA("json",i.llmRequest),G(3),yA("json",i.llmResponse),G(3),GA(i.renderedEventGraph?13:-1))},dependencies:[P2,kB,FQ,mf,o7],styles:[".json-viewer-container[_ngcontent-%COMP%]{padding-top:8px;padding-left:12px;padding-right:12px;background-color:#1b1b1b}.event-graph-container[_ngcontent-%COMP%]{text-align:center;padding-top:20px}.event-graph-container[_ngcontent-%COMP%] svg text{font-family:Google Sans Mono,monospace;font-size:11px}.wrapper[_ngcontent-%COMP%]{position:relative}.tab-header-action[_ngcontent-%COMP%]{position:absolute;top:0;right:0;height:48px;z-index:2;margin-right:10px}"]})};var vjA=["videoContainer"],bjA=["sideDrawer"],MjA=["autoScroll"],kjA=["messageTextarea"],SjA=["bottomPanel"],RjA=t=>({"edit-mode":t}),xjA=()=>[],LjA=(t,e)=>({"user-message":t,"bot-message":e}),FjA=(t,e)=>({"eval-pass":t,"eval-fail":e}),NjA=t=>({"eval-fail":t}),IU=t=>({"background-color":t}),_jA=(t,e)=>({"font-style":t,color:e}),LlA=t=>({"function-event-button-highlight":t}),CU=t=>({hidden:t});function GjA(t,e){if(t&1){let A=be();S(0,"span",29),hA("click",function(){RA(A);let n=O();return xA(n.toggleSidePanel())}),AA(1,"left_panel_open"),F()}}function UjA(t,e){if(t&1&&(S(0,"mat-option",18),AA(1),F()),t&2){let A=e.$implicit;yA("value",A),G(),Gt(A)}}function KjA(t,e){t&1&&Dn(0,UjA,2,2,"mat-option",18,to),t&2&&yn(e)}function YjA(t,e){if(t&1&&(S(0,"mat-option",18),AA(1),F()),t&2){let A=O();yA("value",A.selectedAppControl.value),G(),Gt(A.selectedAppControl.value)}}function JjA(t,e){t&1&&(S(0,"span",38),AA(1,"Trace"),F())}function TjA(t,e){t&1&&(S(0,"span",38),AA(1,"Events"),F())}function HjA(t,e){t&1&&(S(0,"span",38),AA(1,"State"),F())}function zjA(t,e){t&1&&(S(0,"span",38),AA(1,"Artifacts"),F())}function OjA(t,e){t&1&&(S(0,"span",38),AA(1,"Sessions"),F())}function PjA(t,e){t&1&&(S(0,"span",38),AA(1,"Eval"),F())}function jjA(t,e){if(t&1){let A=be();S(0,"mat-tab"),_A(1,PjA,2,0,"ng-template",32),S(2,"app-eval-tab",39),hA("shouldShowTab",function(n){RA(A);let o=O(2);return xA(o.handleShouldShowEvalTab(n))})("sessionSelected",function(n){RA(A);let o=O(2);return xA(o.updateWithSelectedSession(n))})("evalCaseSelected",function(n){RA(A);let o=O(2);return xA(o.updateWithSelectedEvalCase(n))})("evalSetIdSelected",function(n){RA(A);let o=O(2);return xA(o.updateSelectedEvalSetId(n))})("shouldReturnToSession",function(n){RA(A);let o=O(2);return xA(o.handleReturnToSession(n))})("evalNotInstalledMsg",function(n){RA(A);let o=O(2);return xA(o.handleEvalNotInstalled(n))}),F()()}if(t&2){let A=O(2);G(2),yA("appName",A.appName)("userId",A.userId)("sessionId",A.sessionId)}}function qjA(t,e){if(t&1){let A=be();S(0,"div",19)(1,"mat-tab-group",30),hA("selectedTabChange",function(n){RA(A);let o=O();return xA(o.handleTabChange(n))}),S(2,"mat-tab",31),_A(3,JjA,2,0,"ng-template",32),JA(4,"app-trace-tab",33),F(),S(5,"mat-tab",31),_A(6,TjA,2,0,"ng-template",32),S(7,"app-event-tab",34),hA("selectedEvent",function(n){RA(A);let o=O();return xA(o.selectEvent(n))}),F()(),S(8,"mat-tab"),_A(9,HjA,2,0,"ng-template",32),JA(10,"app-state-tab",35),F(),S(11,"mat-tab"),_A(12,zjA,2,0,"ng-template",32),JA(13,"app-artifact-tab",36),F(),S(14,"mat-tab"),_A(15,OjA,2,0,"ng-template",32),S(16,"app-session-tab",37),hA("sessionSelected",function(n){RA(A);let o=O();return xA(o.updateWithSelectedSession(n))})("sessionReloaded",function(n){RA(A);let o=O();return xA(o.updateSessionState(n))}),F()(),_A(17,jjA,3,3,"mat-tab"),F()()}if(t&2){let A=O();G(4),yA("traceData",A.traceData),G(3),yA("eventsMap",A.eventData)("traceData",A.traceData),G(3),yA("sessionState",A.currentSessionState),G(3),yA("artifacts",A.artifacts),G(3),yA("userId",A.userId)("appName",A.appName)("sessionId",A.sessionId),G(),GA(A.shouldShowEvalTab()?17:-1)}}function VjA(t,e){if(t&1){let A=be();S(0,"div",52),hA("click",function(){RA(A);let n=O(2);return xA(n.openViewImageDialog(n.rawSvgString))}),F()}if(t&2){let A=O(2);yA("innerHtml",A.renderedEventGraph,RI)}}function ZjA(t,e){if(t&1){let A=be();S(0,"div",20)(1,"div",40)(2,"div",41)(3,"mat-paginator",42),hA("page",function(n){RA(A);let o=O();return xA(o.handlePageEvent(n))}),F(),S(4,"button",43)(5,"mat-icon",44),hA("click",function(){RA(A);let n=O();return xA(n.closeSelectedEvent())}),AA(6,"close"),F()()()(),S(7,"div")(8,"mat-tab-group")(9,"mat-tab",45)(10,"div",46),_A(11,VjA,1,1,"div",47),F(),S(12,"div",48),JA(13,"ngx-json-viewer",49),F()(),S(14,"mat-tab",50)(15,"div",48),JA(16,"ngx-json-viewer",49),F()(),S(17,"mat-tab",51)(18,"div",48),JA(19,"ngx-json-viewer",49),F()()()()()}if(t&2){let A=O();G(3),yA("length",A.eventData.size)("pageSize",1)("pageIndex",A.selectedEventIndex),G(8),GA(A.renderedEventGraph?11:-1),G(2),yA("json",A.selectedEvent),G(3),yA("json",A.llmRequest),G(3),yA("json",A.llmResponse)}}function WjA(t,e){if(t&1){let A=be();S(0,"span",54),hA("click",function(){RA(A);let n=O(2);return xA(n.toggleSidePanel())}),AA(1,"left_panel_open"),F()}}function XjA(t,e){if(t&1){let A=be();S(0,"button",59),hA("click",function(){RA(A);let n=O(3);return xA(n.cancelEditEvalCase())}),AA(1,"Cancel"),F(),S(2,"button",60),hA("click",function(){RA(A);let n=O(3);return xA(n.saveEvalCase())}),AA(3," Save "),F()}if(t&2){let A=O(3);G(2),yA("disabled",!A.hasEvalCaseChanged()||A.isEvalCaseEditing())}}function $jA(t,e){if(t&1){let A=be();S(0,"span",61),hA("click",function(){RA(A);let n=O(3);return xA(n.editEvalCase())}),AA(1," edit "),F(),S(2,"span",62),hA("click",function(){RA(A);let n=O(3);return xA(n.deleteEvalCase())}),AA(3," delete "),F()}}function AqA(t,e){if(t&1&&(S(0,"div",55)(1,"div",56),AA(2,"Eval Case ID"),F(),S(3,"div",57),AA(4),F()(),S(5,"div",58),_A(6,XjA,4,1)(7,$jA,4,0),F()),t&2){let A=O(2);G(4),Gt(A.evalCase.evalId),G(2),GA(A.isEvalEditMode()?6:7)}}function eqA(t,e){if(t&1){let A=be();S(0,"span",71),hA("click",function(){RA(A);let n=O(3);return xA(n.importSession())}),AA(1," upload "),F()}}function tqA(t,e){if(t&1){let A=be();S(0,"div",55)(1,"div",56),AA(2,"Session ID"),F(),S(3,"div",57),AA(4),F()(),S(5,"div",58)(6,"div",63)(7,"mat-slide-toggle",64),hA("change",function(){RA(A);let n=O(2);return xA(n.toggleSse())}),AA(8," Token Streaming "),F()(),JA(9,"mat-divider",65),S(10,"div",66)(11,"div",67),hA("click",function(){RA(A);let n=O(2);return xA(n.onNewSessionClick())}),S(12,"mat-icon"),AA(13,"add"),F(),AA(14," New Session "),F(),S(15,"span",68),hA("click",function(){RA(A);let n=O(2);return xA(n.deleteSession(n.sessionId))}),AA(16," delete "),F(),S(17,"span",69),hA("click",function(){RA(A);let n=O(2);return xA(n.exportSession())}),AA(18," download "),F(),_A(19,eqA,2,0,"span",70),Za(20,"async"),F()()}if(t&2){let A=O(2);G(4),Gt(A.sessionId),G(3),yA("checked",A.enableSseIndicator()),G(2),yA("vertical",!0),G(10),GA(M2(20,4,A.importSessionEnabledObs)?19:-1)}}function iqA(t,e){if(t&1&&(S(0,"div",23),_A(1,WjA,2,0,"span",53)(2,AqA,8,2)(3,tqA,21,6),F()),t&2){let A=O();yA("ngClass",qr(3,RjA,A.isEvalEditMode())),G(),GA(A.showSidePanel?-1:1),G(),GA(A.evalCase?2:3)}}function nqA(t,e){t&1&&(S(0,"div",72)(1,"span"),AA(2,"Loading agents, please wait..."),F()())}function oqA(t,e){t&1&&(S(0,"span"),AA(1,"Welcome to ADK!"),JA(2,"br"),AA(3," Select an agent on the left to begin with."),F())}function rqA(t,e){if(t&1&&(AA(0," Error message: "),JA(1,"br"),S(2,"pre",74),AA(3),F()),t&2){let A=O(4);G(3),Gt(A.loadingError())}}function sqA(t,e){t&1&&(S(0,"pre",73),AA(1,"Warning: No agents found in current folder."),F())}function aqA(t,e){if(t&1&&(S(0,"div"),AA(1," Failed to load agents. To get started, run "),S(2,"pre"),AA(3,"adk web"),F(),AA(4," in the folder that contains the agents."),JA(5,"br"),_A(6,rqA,4,1)(7,sqA,2,0,"pre",73),F()),t&2){let A=O(3);G(6),GA(A.loadingError()?6:7)}}function cqA(t,e){if(t&1&&(S(0,"div",72),_A(1,oqA,4,0,"span"),Za(2,"async"),_A(3,aqA,8,1,"div"),F()),t&2){let A=O(2);G(),GA((M2(2,1,A.apps$)||cH(3,xjA)).length>0?1:3)}}function lqA(t,e){if(t&1&&_A(0,nqA,3,0,"div",72)(1,cqA,4,4,"div",72),t&2){let A=O();GA(A.isLoadingApps()?0:1)}}function gqA(t,e){if(t&1){let A=be();S(0,"button",75),hA("click",function(){RA(A);let n=O();return xA(n.openDialog())}),S(1,"mat-icon"),AA(2,"priority_high"),F()()}}function IqA(t,e){if(t&1){let A=be();S(0,"button",81),hA("click",function(){RA(A);let n=O().$index,o=O(2);return xA(o.clickEvent(n))}),S(1,"mat-icon",82),AA(2,"robot_2"),F()()}if(t&2){let A=O().$index,i=O(2);fo(i.customIconColorClass(A)),yA("matTooltip",i.getAgentNameFromEvent(A))}}function CqA(t,e){t&1&&JA(0,"mat-progress-bar",83)}function dqA(t,e){if(t&1&&JA(0,"img",88),t&2){let A=O().$implicit;yA("src",A.url,ja)}}function BqA(t,e){if(t&1&&(S(0,"mat-icon"),AA(1,"insert_drive_file"),F(),S(2,"a",89),AA(3),F()),t&2){let A=O().$implicit;G(2),yA("href",A.url,ja),G(),Gt(A.file.name)}}function EqA(t,e){if(t&1&&(S(0,"div",87),_A(1,dqA,1,1,"img",88)(2,BqA,4,2),F()),t&2){let A=e.$implicit;G(),GA(A.file.type.startsWith("image/")?1:-1),G(),GA(A.file.type.startsWith("image/")?-1:2)}}function QqA(t,e){if(t&1&&(S(0,"div",84),Dn(1,EqA,3,2,"div",87,to),F()),t&2){let A=O(2).$implicit;G(),yn(A.attachments)}}function hqA(t,e){t&1&&(S(0,"div",85),AA(1,"Thought"),F())}function uqA(t,e){if(t&1){let A=be();S(0,"div",90)(1,"textarea",92,3),da("ngModelChange",function(n){RA(A);let o=O(5);return Va(o.userEditEvalCaseMessage,n)||(o.userEditEvalCaseMessage=n),xA(n)}),hA("keydown",function(n){RA(A);let o=O(3).$implicit,r=O(2);return xA(r.handleKeydown(n,o))}),F(),S(3,"div",93)(4,"span",94),hA("click",function(){RA(A);let n=O(3).$implicit,o=O(2);return xA(o.cancelEditMessage(n))}),AA(5," close "),F(),S(6,"span",95),hA("click",function(){RA(A);let n=O(3).$implicit,o=O(2);return xA(o.saveEditMessage(n))}),AA(7," check "),F()()()}if(t&2){let A=O(5);G(),Ca("ngModel",A.userEditEvalCaseMessage)}}function fqA(t,e){if(t&1&&JA(0,"markdown",91),t&2){let A=O(3).$implicit;yA("data",A.text)("ngStyle",b2(2,_jA,A.thought?"italic":"normal",A.thought?"#9aa0a6":"white"))}}function mqA(t,e){if(t&1&&_A(0,uqA,8,1,"div",90)(1,fqA,1,5,"markdown",91),t&2){let A=O(2).$implicit;GA(A.isEditing?0:1)}}function pqA(t,e){if(t&1&&(S(0,"div"),JA(1,"div",96),F()),t&2){let A=O(2).$implicit,i=O(2);G(),yA("innerHTML",i.renderGooglerSearch(A.renderedContent),RI)}}function wqA(t,e){if(t&1&&(S(0,"code"),AA(1),F()),t&2){let A=O(2).$implicit;G(),Et(" ",A.executableCode.code," ")}}function DqA(t,e){if(t&1&&(S(0,"div")(1,"div"),AA(2),F(),S(3,"div"),AA(4),F()()),t&2){let A=O(2).$implicit;G(2),Et("Outcome: ",A.codeExecutionResult.outcome,""),G(2),Et("Output: ",A.codeExecutionResult.output,"")}}function yqA(t,e){if(t&1){let A=be();S(0,"div",97)(1,"img",98),hA("click",function(){RA(A);let n=O(4).$implicit,o=O(2);return xA(o.openViewImageDialog(n.inlineData.data))}),F()()}if(t&2){let A=O(4).$implicit;G(),yA("src",A.inlineData.data,ja)}}function vqA(t,e){if(t&1&&(S(0,"div"),JA(1,"app-audio-player",99),F()),t&2){let A=O(4).$implicit;G(),yA("base64data",A.inlineData.data)}}function bqA(t,e){if(t&1){let A=be();S(0,"div")(1,"div",100)(2,"mat-icon"),AA(3,"description"),F(),S(4,"button",101),hA("click",function(){RA(A);let n=O(4).$implicit,o=O(2);return xA(o.openBase64InNewTab(n.inlineData.data,n.inlineData.mimeType))}),AA(5),F()()()}if(t&2){let A=O(4).$implicit;G(5),Et(" ",A.inlineData.name," ")}}function MqA(t,e){if(t&1){let A=be();S(0,"div")(1,"button",101),hA("click",function(){RA(A);let n=O(4).$implicit,o=O(2);return xA(o.openBase64InNewTab(n.inlineData.data,n.inlineData.mimeType))}),AA(2),F()()}if(t&2){let A=O(4).$implicit;G(2),Et(" ",A.inlineData.name," ")}}function kqA(t,e){if(t&1&&(S(0,"div")(1,"div"),_A(2,yqA,2,1,"div",97)(3,vqA,2,1,"div")(4,bqA,6,1,"div")(5,MqA,3,1,"div"),F()()),t&2){let A,i=O(3).$implicit,n=O(2);G(2),GA((A=i.inlineData.mediaType)===n.MediaType.IMAGE?2:A===n.MediaType.AUDIO?3:A===n.MediaType.TEXT?4:5)}}function SqA(t,e){if(t&1){let A=be();S(0,"div")(1,"img",102),hA("click",function(){RA(A);let n=O(4).$implicit,o=O(2);return xA(o.openViewImageDialog(n.inlineData.data))}),F()()}if(t&2){let A=O(4).$implicit;G(),yA("src",A.inlineData.data,ja)}}function RqA(t,e){if(t&1&&(S(0,"div",87)(1,"mat-icon"),AA(2,"insert_drive_file"),F(),S(3,"a",89),AA(4),F()()),t&2){let A=O(4).$implicit;G(3),yA("href",A.inlineData.data,ja),G(),Gt(A.inlineData.displayName)}}function xqA(t,e){if(t&1&&(S(0,"div"),_A(1,SqA,2,1,"div")(2,RqA,5,2,"div",87),F()),t&2){let A=O(3).$implicit;G(),GA(A.inlineData.mimeType.startsWith("image/")?1:2)}}function LqA(t,e){if(t&1&&_A(0,kqA,6,1,"div")(1,xqA,3,1,"div"),t&2){let A=O(2).$implicit;GA(A.role==="bot"?0:1)}}function FqA(t,e){if(t&1&&(S(0,"div",105)(1,"div",106),AA(2,"Actual tool uses:"),F(),JA(3,"ngx-json-viewer",49),F(),S(4,"div",107)(5,"div",108),AA(6," Expected tool uses: "),F(),JA(7,"ngx-json-viewer",49),F()),t&2){let A=O(3).$implicit;G(3),yA("json",A.actualInvocationToolUses),G(4),yA("json",A.expectedInvocationToolUses)}}function NqA(t,e){if(t&1&&(S(0,"div",105)(1,"div",106),AA(2,"Actual response:"),F(),S(3,"div"),AA(4),F()(),S(5,"div",107)(6,"div",108),AA(7,"Expected response:"),F(),S(8,"div"),AA(9),F()()),t&2){let A=O(3).$implicit;G(4),Gt(A.actualFinalResponse),G(5),Gt(A.expectedFinalResponse)}}function _qA(t,e){if(t&1&&(S(0,"div",104)(1,"span",109),AA(2),F(),S(3,"span",110),AA(4),F()()),t&2){let A=O(3).$implicit;G(2),Et("Match score: ",A.evalScore,""),G(2),Et("Threshold: ",A.evalThreshold,"")}}function GqA(t,e){if(t&1&&(S(0,"div",86)(1,"div",103),_A(2,FqA,8,2)(3,NqA,10,2),F(),_A(4,_qA,5,2,"div",104),F()),t&2){let A=O(2).$implicit;G(2),GA(A.actualInvocationToolUses?2:A.actualFinalResponse?3:-1),G(2),GA(A.evalScore!==void 0&&A.evalThreshold!==void 0?4:-1)}}function UqA(t,e){if(t&1&&(S(0,"mat-card",78),_A(1,CqA,1,0,"mat-progress-bar",83)(2,QqA,3,0,"div",84),S(3,"div"),_A(4,hqA,2,0,"div",85),S(5,"div"),_A(6,mqA,2,1),F(),_A(7,pqA,2,1,"div"),F(),_A(8,wqA,2,1,"code")(9,DqA,5,2,"div")(10,LqA,2,1)(11,GqA,5,2,"div",86),F()),t&2){let A=O(),i=A.$implicit,n=A.$index,o=O(2);yA("ngClass",qr(11,NjA,i.evalStatus===2))("ngStyle",qr(13,IU,o.shouldMessageHighlighted(n)?"rgb(15, 82, 35)":"")),G(),GA(i.isLoading?1:-1),G(),GA(i.attachments?2:-1),G(2),GA(i.thought?4:-1),G(2),GA(i.text?6:-1),G(),GA(i.renderedContent?7:-1),G(),GA(i.executableCode?8:-1),G(),GA(i.codeExecutionResult?9:-1),G(),GA(i.inlineData?10:-1),G(),GA(i.failedMetric&&i.evalStatus===2?11:-1)}}function KqA(t,e){if(t&1){let A=be();S(0,"button",111),hA("click",function(){RA(A);let n=O().$index,o=O(2);return xA(o.clickEvent(n))}),S(1,"mat-icon"),AA(2,"bolt"),F(),AA(3),F()}if(t&2){let A=O(),i=A.$implicit,n=A.$index,o=O(2);yA("ngClass",qr(2,LlA,o.shouldMessageHighlighted(n))),G(3),Et(" ",i.functionCall.name," ")}}function YqA(t,e){if(t&1){let A=be();S(0,"button",111),hA("click",function(){RA(A);let n=O().$index,o=O(2);return xA(o.clickEvent(n))}),S(1,"mat-icon"),AA(2,"check"),F(),AA(3),F()}if(t&2){let A=O(),i=A.$implicit,n=A.$index,o=O(2);yA("ngClass",qr(2,LlA,o.shouldMessageHighlighted(n))),G(3),Et(" ",i.functionResponse.name," ")}}function JqA(t,e){if(t&1){let A=be();S(0,"div")(1,"span",112),hA("click",function(){RA(A);let n=O(2).$implicit,o=O(2);return xA(o.editEvalCaseMessage(n))}),AA(2," edit "),F(),S(3,"span",113),hA("click",function(){RA(A);let n=O(2),o=n.$implicit,r=n.$index,s=O(2);return xA(s.deleteEvalCaseMessage(o,r))}),AA(4," delete "),F()()}if(t&2){let A=O(4);G(),yA("ngClass",qr(2,CU,A.isEvalCaseEditing())),G(2),yA("ngClass",qr(4,CU,A.isEvalCaseEditing()))}}function TqA(t,e){if(t&1){let A=be();S(0,"div")(1,"span",114),hA("click",function(){RA(A);let n=O(2).$implicit,o=O(2);return xA(o.editFunctionArgs(n))}),AA(2," edit "),F()()}if(t&2){let A=O(4);G(),yA("ngClass",qr(1,CU,A.isEvalCaseEditing()))}}function HqA(t,e){if(t&1&&(_A(0,JqA,5,6,"div"),Za(1,"async"),_A(2,TqA,3,3,"div")),t&2){let A=O().$implicit,i=O(2);GA(A.text?0:M2(1,1,i.isEditFunctionArgsEnabledObs)&&A.functionCall?2:-1)}}function zqA(t,e){t&1&&(S(0,"button",43)(1,"mat-icon"),AA(2,"person"),F()())}function OqA(t,e){if(t&1&&(S(0,"div",76),_A(1,IqA,3,3,"button",77)(2,UqA,12,15,"mat-card",78)(3,KqA,4,4,"button",79)(4,YqA,4,4,"button",79),S(5,"div",76)(6,"span",80),AA(7),F(),S(8,"span"),AA(9),F()(),_A(10,HqA,3,3)(11,zqA,3,0,"button",43),F()),t&2){let A=e.$implicit,i=O(2);yA("ngClass",b2(10,LjA,A.role==="user",A.role==="bot")),G(),GA(A.role==="bot"?1:-1),G(),GA(!A.functionCall&&!A.functionResponse?2:-1),G(),GA(A.functionCall?3:-1),G(),GA(A.functionResponse?4:-1),G(),yA("ngClass",b2(13,FjA,A.evalStatus===1,A.evalStatus===2)),G(2),Gt(A.evalStatus===1?"check":A.evalStatus===2?"close":""),G(2),Gt(A.evalStatus===1?"Pass":A.evalStatus===2?"Fail":""),G(),GA(i.evalCase&&A.role==="bot"&&i.isEvalEditMode()?10:-1),G(),GA(A.role==="user"?11:-1)}}function PqA(t,e){if(t&1&&(S(0,"div",26,1),JA(2,"div",null,2),Dn(4,OqA,12,16,"div",76,to),F()),t&2){let A=O();G(4),yn(A.messages)}}function jqA(t,e){if(t&1){let A=be();S(0,"div",125),JA(1,"img",126),S(2,"button",127),hA("click",function(){RA(A);let n=O().$index,o=O(3);return xA(o.removeFile(n))}),S(3,"mat-icon",128),AA(4,"close"),F()()()}if(t&2){let A=O().$implicit;G(),yA("src",A.url,ja)}}function qqA(t,e){if(t&1){let A=be();S(0,"div",124)(1,"button",127),hA("click",function(){RA(A);let n=O().$index,o=O(3);return xA(o.removeFile(n))}),S(2,"mat-icon",128),AA(3,"close"),F()(),S(4,"div",129)(5,"mat-icon"),AA(6,"insert_drive_file"),F(),S(7,"span"),AA(8),F()()()}if(t&2){let A=O().$implicit;G(8),Gt(A.file.name)}}function VqA(t,e){if(t&1&&(S(0,"div"),_A(1,jqA,5,1,"div",125)(2,qqA,9,1,"div",124),F()),t&2){let A=e.$implicit;G(),GA(A.file.type.startsWith("image/")?1:A.file.type.startsWith("image/")?-1:2)}}function ZqA(t,e){if(t&1){let A=be();S(0,"div",124)(1,"button",127),hA("click",function(){RA(A);let n=O(3);return xA(n.removeStateUpdate())}),S(2,"mat-icon",128),AA(3,"close"),F()(),S(4,"div",129)(5,"span"),AA(6,"Updated session state"),F()()()}}function WqA(t,e){if(t&1&&(S(0,"div",117),Dn(1,VqA,3,1,"div",null,to),_A(3,ZqA,7,0,"div",124),F()),t&2){let A=O(2);G(),yn(A.selectedFiles),G(2),GA(A.updatedSessionState()?3:-1)}}function XqA(t,e){if(t&1){let A=be();S(0,"div",27)(1,"input",115,4),hA("change",function(n){RA(A);let o=O();return xA(o.onFileSelect(n))}),F(),S(3,"mat-form-field",116),_A(4,WqA,4,1,"div",117),S(5,"textarea",118),da("ngModelChange",function(n){RA(A);let o=O();return Va(o.userInput,n)||(o.userInput=n),xA(n)}),hA("keydown.enter",function(n){RA(A);let o=O();return xA(o.sendMessage(n))}),F(),S(6,"div",119)(7,"div")(8,"button",120),hA("click",function(){RA(A);let n=cr(2);return xA(n.click())}),S(9,"mat-icon"),AA(10,"attach_file"),F()(),S(11,"button",121)(12,"mat-icon"),AA(13,"more_vert"),F()(),S(14,"mat-menu",null,5)(16,"span",122),hA("click",function(){RA(A);let n=O();return xA(n.updateState())}),AA(17," Update state "),F()()(),S(18,"div")(19,"button",123),hA("click",function(){RA(A);let n=O();return xA(n.toggleAudioRecording())}),S(20,"mat-icon"),AA(21,"mic"),F()(),S(22,"button",123),hA("click",function(){RA(A);let n=O();return xA(n.toggleVideoRecording())}),S(23,"mat-icon"),AA(24,"videocam"),F()()()()()()}if(t&2){let A=cr(15),i=O();G(4),GA(i.selectedFiles.length&&i.appName!=""||i.updatedSessionState()?4:-1),G(),Ca("ngModel",i.userInput),G(6),yA("matMenuTriggerFor",A),G(8),yA("ngStyle",qr(7,IU,i.isAudioRecording?"rgb(234, 67, 53)":"rgb(51, 53, 55)"))("matTooltip",i.isAudioRecording?"Turn off microphone":"Use microphone"),G(3),yA("ngStyle",qr(9,IU,i.isVideoRecording?"rgb(234, 67, 53)":"rgb(51, 53, 55)"))("matTooltip",i.isVideoRecording?"Turn off camera":"Use camera")}}function $qA(t,e){if(t&1){let A=be();S(0,"div",28,6),JA(2,"div",130),S(3,"app-trace-event",131),hA("panelClosed",function(){RA(A);let n=O();return xA(n.closeTraceEventDetailPanel())}),F()()}if(t&2){let A=O();G(3),yA("userId",A.userId)("appName",A.appName)("sessionId",A.sessionId)}}var lU="root_agent";function AVA(t){for(t=t.replace(/-/g,"+").replace(/_/g,"/");t.length%4!==0;)t+="=";return t}var dU=class extends iC{nextPageLabel="Next Event";previousPageLabel="Previous Event";firstPageLabel="First Event";lastPageLabel="Last Event";getRangeLabel=(e,A,i)=>i===0?`Event 0 of ${i}`:(i=Math.max(i,0),`Event ${e*A+1} of ${i}`)},xlA="Restarting bidirectional streaming is not currently supported. Please refresh the page or start a new session.",Ff=class t{constructor(e,A,i,n,o,r,s,a,c,l,I,C,d,B,E){this.sanitizer=e;this.sessionService=A;this.artifactService=i;this.audioService=n;this.webSocketService=o;this.videoService=r;this.dialog=s;this.eventService=a;this.route=c;this.downloadService=l;this.evalService=I;this.traceService=C;this.location=d;this.renderer=B;this.document=E}videoContainer;sideDrawer;eventTabComponent;sessionTab;evalTab;scrollContainer;textarea;bottomPanelRef;_snackBar=f(UP);shouldShowEvalTab=Jo(!0);enableSseIndicator=Jo(!1);isChatMode=Jo(!0);isEvalCaseEditing=Jo(!1);hasEvalCaseChanged=Jo(!1);isEvalEditMode=Jo(!1);videoElement;currentMessage="";messages=[];lastTextChunk="";streamingTextMessage=null;latestThought="";artifacts=[];userInput="";userEditEvalCaseMessage="";userId="user";appName="";sessionId="";evalCase=null;updatedEvalCase=null;evalSetId="";isAudioRecording=!1;isVideoRecording=!1;longRunningEvents=[];functionCallEventId="";redirectUri=vs.getBaseUrlWithoutPath();showSidePanel=!0;useSse=!1;currentSessionState={};root_agent=lU;updatedSessionState=Jo(null);messagesSubject=new Mi([]);streamingTextMessageSubject=new Mi(null);scrollInterruptedSubject=new Mi(!0);isModelThinkingSubject=new Mi(!1);sessionHasUsedBidi=new Set;eventData=new Map;traceData=[];eventMessageIndexArray=[];renderedEventGraph;rawSvgString=null;selectedEvent=void 0;selectedEventIndex=void 0;llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";getMediaTypeFromMimetype=M8;selectedFiles=[];previousMessageCount=0;openBase64InNewTab=cS;MediaType=Ou;router=f(Ig);activatedRoute=f(ha);selectedAppControl=new _I("",{nonNullable:!0});changeDetectorRef=f(It);agentService=f(H2);isLoadingApps=Jo(!1);loadingError=Jo("");apps$=Me([]).pipe(Qo(()=>{this.isLoadingApps.set(!0),this.selectedAppControl.disable()}),jn(()=>this.agentService.listApps().pipe(mr(e=>(this.loadingError.set(e.message),Me(void 0))))),On(1),Qo(e=>{this.isLoadingApps.set(!1),this.selectedAppControl.enable(),e?.length==1&&this.router.navigate([],{relativeTo:this.route,queryParams:{app:e[0]}})}),a0());featureFlagService=f(KB);importSessionEnabledObs=this.featureFlagService.isImportSessionEnabled();isEditFunctionArgsEnabledObs=this.featureFlagService.isEditFunctionArgsEnabled();isSessionUrlEnabledObs=this.featureFlagService.isSessionUrlEnabled();bottomPanelVisible=!1;hoveredEventMessageIndices=[];ngOnInit(){if(this.syncSelectedAppFromUrl(),this.updateSelectedAppUrl(),this.webSocketService.onCloseReason().subscribe(i=>{let n=`Please check server log for full details: -`+i;this.openSnackBar(n,"OK")}),new URL(window.location.href).searchParams.has("code")){let i=window.location.href;window.opener?.postMessage({authResponseUrl:i},window.origin),window.close()}this.agentService.getApp().subscribe(i=>{this.appName=i}),Js([this.agentService.getLoadingState(),this.isModelThinkingSubject]).subscribe(([i,n])=>{let o=this.messages[this.messages.length-1];i?!o?.isLoading&&!this.streamingTextMessage&&(this.messages.push({role:"bot",isLoading:!0}),this.messagesSubject.next(this.messages)):o?.isLoading&&!n&&(this.messages.pop(),this.messagesSubject.next(this.messages),this.changeDetectorRef.detectChanges())}),Js([this.messagesSubject,this.scrollInterruptedSubject,this.streamingTextMessageSubject]).subscribe(([i,n,o])=>{n||setTimeout(()=>{this.scrollToBottom()},100)}),this.traceService.selectedTraceRow$.subscribe(i=>{let n=i?.attributes["gcp.vertex.agent.event_id"];n&&this.eventData.has(n)?this.bottomPanelVisible=!0:this.bottomPanelVisible=!1}),this.traceService.hoveredMessageIndicies$.subscribe(i=>this.hoveredEventMessageIndices=i)}ngAfterViewInit(){this.showSidePanel=!0,this.sideDrawer.open()}scrollToBottom(){setTimeout(()=>{this.scrollContainer.nativeElement.scrollTo({top:this.scrollContainer.nativeElement.scrollHeight,behavior:"smooth"})})}selectApp(e){e!=this.appName&&(this.agentService.setApp(e),this.isSessionUrlEnabledObs.subscribe(A=>{let i=this.activatedRoute.snapshot.queryParams.session;if(!A||!i){this.createSessionAndReset();return}i&&this.sessionService.getSession(this.userId,this.appName,i).pipe(On(1),mr(n=>(this.openSnackBar("Cannot find specified session. Creating a new one.","OK"),this.createSessionAndReset(),Me(null)))).subscribe(n=>{n&&this.updateWithSelectedSession(n)})}))}createSessionAndReset(){this.createSession(),this.eventData=new Map,this.eventMessageIndexArray=[],this.messages=[],this.artifacts=[],this.userInput="",this.longRunningEvents=[]}createSession(){this.sessionService.createSession(this.userId,this.appName).subscribe(e=>{this.currentSessionState=e.state,this.sessionId=e.id,this.sessionTab.refreshSession(),this.isSessionUrlEnabledObs.subscribe(A=>{A&&this.updateSelectedSessionUrl()})})}sendMessage(e){return Ao(this,null,function*(){if(this.messages.length===0&&(this.scrollContainer.nativeElement.addEventListener("wheel",()=>{this.scrollInterruptedSubject.next(!0)}),this.scrollContainer.nativeElement.addEventListener("touchmove",()=>{this.scrollInterruptedSubject.next(!0)})),this.scrollInterruptedSubject.next(!1),e.preventDefault(),!this.userInput.trim()&&this.selectedFiles.length<=0||e instanceof KeyboardEvent&&(e.isComposing||e.keyCode===229))return;if(this.userInput.trim()&&(this.messages.push({role:"user",text:this.userInput}),this.messagesSubject.next(this.messages)),this.selectedFiles.length>0){let n=this.selectedFiles.map(o=>({file:o.file,url:o.url}));this.messages.push({role:"user",attachments:n}),this.messagesSubject.next(this.messages)}let A={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:yield this.getUserMessageParts()},streaming:this.useSse,stateDelta:this.updatedSessionState()};this.selectedFiles=[];let i=this.eventMessageIndexArray.length-1;this.streamingTextMessage=null,this.agentService.runSse(A).subscribe({next:n=>Ao(this,null,function*(){if(n.startsWith('{"error"')){this.openSnackBar(n,"OK");return}let o=JSON.parse(n);if(o.error){this.openSnackBar(o.error,"OK");return}if(o.content)for(let r of o.content.parts)i+=1,this.processPart(o,r,i),this.traceService.setEventData(this.eventData);else o.errorMessage&&this.processErrorMessage(o,i);this.changeDetectorRef.detectChanges()}),error:n=>console.error("SSE error:",n),complete:()=>{this.streamingTextMessage=null,this.sessionTab.reloadSession(this.sessionId),this.eventService.getTrace(this.sessionId).pipe(mr(n=>n.status===404?Me(null):Me([]))).subscribe(n=>{this.traceData=n,this.changeDetectorRef.detectChanges()}),this.traceService.setMessages(this.messages)}}),this.userInput="",this.updatedSessionState.set(null),this.changeDetectorRef.detectChanges()})}processErrorMessage(e,A){this.storeEvents(e,e,A),this.insertMessageBeforeLoadingMessage({text:e.errorMessage,role:"bot"})}processPart(e,A,i){let n=e.groundingMetadata?.searchEntryPoint?.renderedContent;if(A.text){this.isModelThinkingSubject.next(!1);let o=A.text;if(A.thought){if(o!==this.latestThought){this.storeEvents(A,e,i);let r={role:"bot",text:this.processThoughtText(o),thought:!0,eventId:e.id};this.insertMessageBeforeLoadingMessage(r)}this.latestThought=o}else if(this.streamingTextMessage){if(n&&(this.streamingTextMessage.renderedContent=e.groundingMetadata.searchEntryPoint.renderedContent),o==this.streamingTextMessage.text){this.storeEvents(A,e,i),this.eventMessageIndexArray[i]=o,this.streamingTextMessage=null;return}this.streamingTextMessage.text+=o,this.streamingTextMessageSubject.next(this.streamingTextMessage)}else if(this.streamingTextMessage={role:"bot",text:this.processThoughtText(o),thought:!!A.thought,eventId:e.id},n&&(this.streamingTextMessage.renderedContent=e.groundingMetadata.searchEntryPoint.renderedContent),this.insertMessageBeforeLoadingMessage(this.streamingTextMessage),!this.useSse){this.storeEvents(A,e,i),this.eventMessageIndexArray[i]=o,this.streamingTextMessage=null;return}}else A.thought?this.isModelThinkingSubject.next(!0):(this.isModelThinkingSubject.next(!1),this.storeEvents(A,e,i),this.storeMessage(A,e,i,e.author==="user"?"user":"bot"))}getUserMessageParts(){return Ao(this,null,function*(){let e=[];if(this.userInput.trim()&&e.push({text:`${this.userInput}`}),this.selectedFiles.length>0)for(let A of this.selectedFiles)e.push({inlineData:{displayName:A.file.name,data:yield this.readFileAsBytes(A.file),mimeType:A.file.type}});return e})}readFileAsBytes(e){return new Promise((A,i)=>{let n=new FileReader;n.onload=o=>{let r=o.target.result.split(",")[1];A(r)},n.onerror=i,n.readAsDataURL(e)})}updateRedirectUri(e,A){try{let i=new URL(e);return i.searchParams.set("redirect_uri",A),i.toString()}catch(i){return console.warn("Failed to update redirect URI: ",i),e}}storeMessage(e,A,i,n,o,r){if(A?.author&&this.createAgentIconColorClass(A.author),A?.longRunningToolIds&&A.longRunningToolIds.length>0){this.getAsyncFunctionsFromParts(A.longRunningToolIds,A.content.parts);let a=this.longRunningEvents[0];if(a.args.authConfig&&a.args.authConfig.exchangedAuthCredential&&a.args.authConfig.exchangedAuthCredential.oauth2){let c=a.args.authConfig.exchangedAuthCredential.oauth2.authUri,l=this.updateRedirectUri(c,this.redirectUri);this.openOAuthPopup(l).then(I=>{this.functionCallEventId=A.id,this.sendOAuthResponse(a,I,this.redirectUri)}).catch(I=>{console.error("OAuth Error:",I)})}else this.functionCallEventId=A.id}if(A?.actions&&A.actions.artifactDelta)for(let a in A.actions.artifactDelta)A.actions.artifactDelta.hasOwnProperty(a)&&this.renderArtifact(a,A.actions.artifactDelta[a]);A?.evalStatus&&this.isChatMode.set(!1);let s={role:n,evalStatus:A?.evalStatus,failedMetric:A?.failedMetric,evalScore:A?.evalScore,evalThreshold:A?.evalThreshold,actualInvocationToolUses:A?.actualInvocationToolUses,expectedInvocationToolUses:A?.expectedInvocationToolUses,actualFinalResponse:A?.actualFinalResponse,expectedFinalResponse:A?.expectedFinalResponse,invocationIndex:o!==void 0?o:void 0,finalResponsePartIndex:r?.finalResponsePartIndex!==void 0?r.finalResponsePartIndex:void 0,toolUseIndex:r?.toolUseIndex!==void 0?r.toolUseIndex:void 0};if(e.inlineData){let a=this.formatBase64Data(e.inlineData.data,e.inlineData.mimeType);s.inlineData={displayName:e.inlineData.displayName,data:a,mimeType:e.inlineData.mimeType},this.eventMessageIndexArray[i]=e.inlineData}else if(e.text)s.text=e.text,s.thought=!!e.thought,A?.groundingMetadata&&A.groundingMetadata.searchEntryPoint&&A.groundingMetadata.searchEntryPoint.renderedContent&&(s.renderedContent=A.groundingMetadata.searchEntryPoint.renderedContent),s.eventId=A?.id,this.eventMessageIndexArray[i]=e.text;else if(e.functionCall)s.functionCall=e.functionCall,s.eventId=A?.id,this.eventMessageIndexArray[i]=e.functionCall;else if(e.functionResponse)s.functionResponse=e.functionResponse,s.eventId=A?.id,this.eventMessageIndexArray[i]=e.functionResponse;else if(e.executableCode)s.executableCode=e.executableCode,this.eventMessageIndexArray[i]=e.executableCode;else if(e.codeExecutionResult&&(s.codeExecutionResult=e.codeExecutionResult,this.eventMessageIndexArray[i]=e.codeExecutionResult,A.actions&&A.actions.artifact_delta))for(let a in A.actions.artifact_delta)A.actions.artifact_delta.hasOwnProperty(a)&&this.renderArtifact(a,A.actions.artifact_delta[a]);Object.keys(e).length>0&&this.insertMessageBeforeLoadingMessage(s)}insertMessageBeforeLoadingMessage(e){this.messages[this.messages.length-1]?.isLoading?this.messages.splice(this.messages.length-1,0,e):this.messages.push(e),this.messagesSubject.next(this.messages)}formatBase64Data(e,A){let i=AVA(e);return`data:${A};base64,${i}`}renderArtifact(e,A){let i={role:"bot",inlineData:{data:"",mimeType:"image/png"}};this.insertMessageBeforeLoadingMessage(i);let n=this.messages.length-2;this.artifactService.getArtifactVersion(this.userId,this.appName,this.sessionId,e,A).subscribe(o=>{let r=o.inlineData.mimeType,s=this.formatBase64Data(o.inlineData.data,r),a=M8(r),c={name:this.createDefaultArtifactName(r),data:s,mimeType:r,mediaType:a};this.messages[n]={role:"bot",inlineData:c},this.artifacts=[...this.artifacts,{id:e,data:s,mimeType:r,versionId:A,mediaType:M8(r)}]})}storeEvents(e,A,i){let n="";e.text?n+="text:"+e.text:e.functionCall?n+="functionCall:"+e.functionCall.name:e.functionResponse?n+="functionResponse:"+e.functionResponse.name:e.executableCode?n+="executableCode:"+e.executableCode.code.slice(0,10):e.codeExecutionResult?n+="codeExecutionResult:"+e.codeExecutionResult.outcome:e.errorMessage&&(n+="errorMessage:"+e.errorMessage),A.title=n,this.eventData.set(A.id,A),this.eventData=new Map(this.eventData)}sendOAuthResponse(e,A,i){this.longRunningEvents.pop();let n={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:[]}};var o=structuredClone(e.args.authConfig);o.exchangedAuthCredential.oauth2.authResponseUri=A,o.exchangedAuthCredential.oauth2.redirectUri=i,n.functionCallEventId=this.functionCallEventId,n.newMessage.parts.push({function_response:{id:e.id,name:e.name,response:o}});let r=[];this.agentService.runSse(n).subscribe({next:s=>Ao(this,null,function*(){let a=JSON.parse(s);r.push(a)}),error:s=>console.error("SSE error:",s),complete:()=>{this.processRunSseResponse(r)}})}processRunSseResponse(e){let A=this.eventMessageIndexArray.length-1;for(let i of e)if(i.content)for(let n of i.content.parts)A+=1,this.processPart(i,n,A)}openDialog(){this.dialog.open(uf,{width:"600px",data:{event:this.longRunningEvents[0],appName:this.appName,userId:this.userId,sessionId:this.sessionId,functionCallEventId:this.functionCallEventId}}).afterClosed().subscribe(A=>{A&&(this.removeFinishedLongRunningEvents(A.events),this.processRunSseResponse(A.response))})}removeFinishedLongRunningEvents(e){let A=new Set(e.map(i=>i.id));this.longRunningEvents=this.longRunningEvents.filter(i=>!A.has(i.id))}getAgentNameFromEvent(e){let A=this.messages[e].eventId;return this.eventData.get(A)?.author??lU}customIconColorClass(e){let A=this.getAgentNameFromEvent(e);return A!==lU?`custom-icon-color-${(0,gU.default)(A).replace("#","")}`:""}createAgentIconColorClass(e){let A=(0,gU.default)(e),i=`custom-icon-color-${A.replace("#","")}`;this.injectCustomIconColorStyle(i,A)}clickEvent(e){let A=this.messages[e].eventId;this.sideDrawer.open(),this.showSidePanel=!0,this.selectedEvent=this.eventData.get(A),this.selectedEventIndex=this.getIndexOfKeyInMap(A),this.eventService.getEventTrace(this.selectedEvent.id).subscribe(i=>{this.llmRequest=JSON.parse(i[this.llmRequestKey]),this.llmResponse=JSON.parse(i[this.llmResponseKey])}),this.eventService.getEvent(this.userId,this.appName,this.sessionId,this.selectedEvent.id).subscribe(i=>Ao(this,null,function*(){if(!i.dotSrc){this.renderedEventGraph=void 0;return}let n=i.dotSrc,r=(yield Yu()).renderString(n,{format:"svg",engine:"dot"});this.rawSvgString=r,this.renderedEventGraph=this.sanitizer.bypassSecurityTrustHtml(r)}))}userMessagesLength(e){return this.messages.slice(0,e).filter(A=>A.role=="user").length}ngOnDestroy(){this.webSocketService.closeConnection()}onAppSelection(e){this.isAudioRecording&&(this.stopAudioRecording(),this.isAudioRecording=!1),this.isVideoRecording&&(this.stopVideoRecording(),this.isVideoRecording=!1),this.evalTab?.resetEvalResults(),this.traceData=[],this.bottomPanelVisible=!1}toggleAudioRecording(){this.isAudioRecording?this.stopAudioRecording():this.startAudioRecording()}startAudioRecording(){if(this.sessionHasUsedBidi.has(this.sessionId)){this.openSnackBar(xlA,"OK");return}this.isAudioRecording=!0;let e=window.location.protocol==="https:"?"wss":"ws";this.webSocketService.connect(`${e}://${vs.getWSServerUrl()}/run_live?app_name=${this.appName}&user_id=${this.userId}&session_id=${this.sessionId}`),this.audioService.startRecording(),this.messages.push({role:"user",text:"Speaking..."}),this.messages.push({role:"bot",text:"Speaking..."}),this.messagesSubject.next(this.messages),this.sessionHasUsedBidi.add(this.sessionId)}stopAudioRecording(){this.audioService.stopRecording(),this.webSocketService.closeConnection(),this.isAudioRecording=!1}toggleVideoRecording(){this.isVideoRecording?this.stopVideoRecording():this.startVideoRecording()}startVideoRecording(){if(this.sessionHasUsedBidi.has(this.sessionId)){this.openSnackBar(xlA,"OK");return}this.isVideoRecording=!0;let e=window.location.protocol==="https:"?"wss":"ws";this.webSocketService.connect(`${e}://${vs.getWSServerUrl()}/run_live?app_name=${this.appName}&user_id=${this.userId}&session_id=${this.sessionId}`),this.videoService.startRecording(this.videoContainer),this.audioService.startRecording(),this.messages.push({role:"user",text:"Speaking..."}),this.messagesSubject.next(this.messages),this.sessionHasUsedBidi.add(this.sessionId)}stopVideoRecording(){this.audioService.stopRecording(),this.videoService.stopRecording(this.videoContainer),this.webSocketService.closeConnection(),this.isVideoRecording=!1}getAsyncFunctionsFromParts(e,A){for(let i of A)i.functionCall&&e.includes(i.functionCall.id)&&this.longRunningEvents.push(i.functionCall)}openOAuthPopup(e){return new Promise((A,i)=>{if(!window.open(e,"oauthPopup","width=600,height=700")){i("Popup blocked!");return}let o=r=>{if(r.origin!==window.location.origin)return;let{authResponseUrl:s}=r.data;s?(A(s),window.removeEventListener("message",o)):console.log("OAuth failed",r)};window.addEventListener("message",o)})}toggleSidePanel(){this.showSidePanel?this.sideDrawer.close():this.sideDrawer.open(),this.showSidePanel=!this.showSidePanel}handleTabChange(e){this.isChatMode()||(this.resetEditEvalCaseVars(),this.handleReturnToSession(!0))}handleShouldShowEvalTab(e){this.shouldShowEvalTab.set(e)}handleReturnToSession(e){this.sessionTab.getSession(this.sessionId),this.evalTab.resetEvalCase(),this.isChatMode.set(!0)}handleEvalNotInstalled(e){e&&this.openSnackBar(e,"OK")}resetEventsAndMessages(){this.eventData.clear(),this.eventMessageIndexArray=[],this.messages=[],this.messagesSubject.next(this.messages),this.artifacts=[]}updateWithSelectedSession(e){if(!e||!e.id||!e.events||!e.state)return;this.traceService.resetTraceService(),this.sessionId=e.id,this.currentSessionState=e.state,this.evalCase=null,this.isChatMode.set(!0),this.isSessionUrlEnabledObs.subscribe(i=>{i&&this.updateSelectedSessionUrl()}),this.resetEventsAndMessages();let A=0;e.events.forEach(i=>{i.content?.parts?.forEach(n=>{this.storeMessage(n,i,A,i.author==="user"?"user":"bot"),A+=1,i.author&&i.author!=="user"&&this.storeEvents(n,i,A)})}),this.eventService.getTrace(this.sessionId).subscribe(i=>{this.traceData=i,this.traceService.setEventData(this.eventData),this.traceService.setMessages(this.messages)}),this.bottomPanelVisible=!1}updateWithSelectedEvalCase(e){this.evalCase=e,this.isChatMode.set(!1),this.resetEventsAndMessages();let A=0,i=0;for(let n of e.conversation){if(n.userContent?.parts)for(let o of n.userContent.parts)this.storeMessage(o,null,A,"user"),A++;if(n.intermediateData?.toolUses){let o=0;for(let r of n.intermediateData.toolUses){let s={functionCall:{name:r.name,args:r.args}};this.storeMessage(s,null,A,"bot",i,{toolUseIndex:o}),A++,o++;let a={functionResponse:{name:r.name}};this.storeMessage(a,null,A,"bot"),A++}}if(n.finalResponse?.parts){let o=0;for(let r of n.finalResponse.parts)this.storeMessage(r,null,A,"bot",i,{finalResponsePartIndex:o}),A++,o++}i++}}updateSelectedEvalSetId(e){this.evalSetId=e}editEvalCaseMessage(e){this.isEvalCaseEditing.set(!0),this.userEditEvalCaseMessage=e.text,e.isEditing=!0,setTimeout(()=>{this.textarea?.nativeElement.focus();let A=this.textarea?.nativeElement.value.length;e.text.charAt(A-1)===` -`&&A--,this.textarea?.nativeElement.setSelectionRange(A,A)},0)}editFunctionArgs(e){this.isEvalCaseEditing.set(!0),this.dialog.open(vQ,{maxWidth:"90vw",maxHeight:"90vh",data:{dialogHeader:"Edit function arguments",functionName:e.functionCall.name,jsonContent:e.functionCall.args}}).afterClosed().subscribe(i=>{this.isEvalCaseEditing.set(!1),i&&(this.hasEvalCaseChanged.set(!0),e.functionCall.args=i,this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[e.invocationIndex].intermediateData.toolUses[e.toolUseIndex].args=i)})}saveEvalCase(){this.evalService.updateEvalCase(this.appName,this.evalSetId,this.updatedEvalCase.evalId,this.updatedEvalCase).subscribe(e=>{this.openSnackBar("Eval case updated","OK"),this.resetEditEvalCaseVars()})}cancelEditEvalCase(){this.resetEditEvalCaseVars(),this.updateWithSelectedEvalCase(this.evalCase)}resetEditEvalCaseVars(){this.hasEvalCaseChanged.set(!1),this.isEvalCaseEditing.set(!1),this.isEvalEditMode.set(!1),this.updatedEvalCase=null}cancelEditMessage(e){e.isEditing=!1,this.isEvalCaseEditing.set(!1)}saveEditMessage(e){this.hasEvalCaseChanged.set(!0),this.isEvalCaseEditing.set(!1),e.isEditing=!1,e.text=this.userEditEvalCaseMessage?this.userEditEvalCaseMessage:" ",this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[e.invocationIndex].finalResponse.parts[e.finalResponsePartIndex]={text:this.userEditEvalCaseMessage},this.userEditEvalCaseMessage=""}handleKeydown(e,A){e.key==="Enter"&&!e.shiftKey?(e.preventDefault(),this.saveEditMessage(A)):e.key==="Escape"&&this.cancelEditMessage(A)}deleteEvalCaseMessage(e,A){this.hasEvalCaseChanged.set(!0),this.messages.splice(A,1),this.messagesSubject.next(this.messages),this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[e.invocationIndex].finalResponse.parts.splice(e.finalResponsePartIndex,1)}editEvalCase(){this.isEvalEditMode.set(!0)}deleteEvalCase(){let e={title:"Confirm delete",message:`Are you sure you want to delete ${this.evalCase.evalId}?`,confirmButtonText:"Delete",cancelButtonText:"Cancel"};this.dialog.open(SQ,{width:"600px",data:e}).afterClosed().subscribe(i=>{i&&(this.evalTab.deleteEvalCase(this.evalCase.evalId),this.openSnackBar("Eval case deleted","OK"))})}updateSessionState(e){this.currentSessionState=e.state}onNewSessionClick(){this.createSession(),this.eventData.clear(),this.eventMessageIndexArray=[],this.messages=[],this.artifacts=[],this.traceData=[],this.bottomPanelVisible=!1,this.evalTab.showEvalHistory&&this.evalTab.toggleEvalHistoryButton()}onFileSelect(e){let A=e.target;if(A.files)for(let i=0;i{this.llmRequest=JSON.parse(A[this.llmRequestKey]),this.llmResponse=JSON.parse(A[this.llmResponseKey])}),this.eventService.getEvent(this.userId,this.appName,this.sessionId,this.selectedEvent.id).subscribe(A=>Ao(this,null,function*(){if(!A.dotSrc){this.renderedEventGraph=void 0;return}let i=A.dotSrc,o=(yield Yu()).renderString(i,{format:"svg",engine:"dot"});this.rawSvgString=o,this.renderedEventGraph=this.sanitizer.bypassSecurityTrustHtml(o)}))}deleteSession(e){let A={title:"Confirm delete",message:`Are you sure you want to delete this session ${this.sessionId}?`,confirmButtonText:"Delete",cancelButtonText:"Cancel"};this.dialog.open(SQ,{width:"600px",data:A}).afterClosed().subscribe(n=>{n&&this.sessionService.deleteSession(this.userId,this.appName,e).subscribe(o=>{let r=this.sessionTab.refreshSession(e);r?this.sessionTab.getSession(r.id):window.location.reload()})})}syncSelectedAppFromUrl(){Js([this.router.events.pipe(kt(e=>e instanceof nc),je(()=>this.activatedRoute.snapshot.queryParams)),this.apps$]).subscribe(([e,A])=>{if(A&&A.length){let i=e.app;i&&A.includes(i)?this.selectedAppControl.setValue(i):i&&this.openSnackBar(`Agent '${i}' not found`,"OK")}})}updateSelectedAppUrl(){this.selectedAppControl.valueChanges.pipe(tl(),kt(Boolean)).subscribe(e=>{this.selectApp(e);let A=this.activatedRoute.snapshot.queryParams.app;e!==A&&this.router.navigate([],{queryParams:{app:e},queryParamsHandling:"merge"})})}updateSelectedSessionUrl(){let e=this.router.createUrlTree([],{queryParams:{session:this.sessionId},queryParamsHandling:"merge"}).toString();this.location.replaceState(e)}handlePageEvent(e){if(e.pageIndex>=0){let A=this.getKeyAtIndexInMap(e.pageIndex);A&&this.selectEvent(A)}}closeSelectedEvent(){this.selectedEvent=void 0,this.selectedEventIndex=void 0}getIndexOfKeyInMap(e){let A=0,i=(o,r)=>0,n=Array.from(this.eventData.keys()).sort(i);for(let o of n){if(o===e)return A;A++}}getKeyAtIndexInMap(e){let A=(n,o)=>0,i=Array.from(this.eventData.keys()).sort(A);if(e>=0&&e{console.log(e),this.downloadService.downloadObjectAsJson(e,`session-${this.sessionId}.json`)})}updateState(){this.dialog.open(vQ,{maxWidth:"90vw",maxHeight:"90vh",data:{dialogHeader:"Update state",jsonContent:this.currentSessionState}}).afterClosed().subscribe(A=>{A&&this.updatedSessionState.set(A)})}removeStateUpdate(){this.updatedSessionState.set(null)}closeTraceEventDetailPanel(){this.bottomPanelVisible=!1,this.traceService.selectedRow(void 0),this.traceService.setHoveredMessages(void 0,"")}shouldMessageHighlighted(e){return this.hoveredEventMessageIndices.includes(e)}importSession(){let e=document.createElement("input");e.type="file",e.accept="application/json",e.onchange=()=>{if(!e.files||e.files.length===0)return;let A=e.files[0],i=new FileReader;i.onload=n=>{if(n.target?.result)try{let o=JSON.parse(n.target.result);if(!o.userId||!o.appName||!o.events){this.openSnackBar("Invalid session file format","OK");return}this.sessionService.importSession(o.userId,o.appName,o.events).subscribe(r=>{this.openSnackBar("Session imported","OK"),this.sessionTab.refreshSession()})}catch{this.openSnackBar("Error parsing session file","OK")}},i.readAsText(A)},e.click()}injectCustomIconColorStyle(e,A){if(this.document.getElementById(e))return;let i=this.renderer.createElement("style");this.renderer.setAttribute(i,"id",e),this.renderer.setAttribute(i,"type","text/css");let n=` - .${e} { - background-color: ${A} !important; - } - `;this.renderer.appendChild(i,this.renderer.createText(n)),this.renderer.appendChild(this.document.head,i)}static \u0275fac=function(A){return new(A||t)(PA(cl),PA(Wg),PA(RQ),PA(xQ),PA(Xg),PA(LQ),PA(qs),PA(nI),PA(ha),PA(O2),PA(Vc),PA($g),PA(Dc),PA(Wi),PA(at))};static \u0275cmp=zA({type:t,selectors:[["app-chat"]],viewQuery:function(A,i){if(A&1&&(Te(vjA,5,ee),Te(bjA,5),Te(nd,5),Te(od,5),Te(id,5),Te(MjA,5),Te(kjA,5),Te(SjA,5)),A&2){let n;XA(n=$A())&&(i.videoContainer=n.first),XA(n=$A())&&(i.sideDrawer=n.first),XA(n=$A())&&(i.eventTabComponent=n.first),XA(n=$A())&&(i.sessionTab=n.first),XA(n=$A())&&(i.evalTab=n.first),XA(n=$A())&&(i.scrollContainer=n.first),XA(n=$A())&&(i.textarea=n.first),XA(n=$A())&&(i.bottomPanelRef=n.first)}},standalone:!1,features:[ht([{provide:iC,useClass:dU}])],decls:28,vars:15,consts:[["sideDrawer",""],["autoScroll",""],["videoContainer",""],["messageTextarea",""],["fileInput",""],["moreMenu","matMenu"],["bottomPanel",""],["autosize","",1,"drawer-container"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"position","absolute","width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","20px","z-index","9999"],["mode","side","appResizableDrawer","",1,"side-drawer"],[2,"margin-top","20px","margin-left","20px","display","flex"],[2,"width","100%"],[1,"drawer-header"],[1,"drawer-logo"],["src","assets/ADK-512-color.svg","width","32px","height","32px"],["matTooltip","Collapse panel",1,"material-symbols-outlined",2,"color","#c4c7c5","cursor","pointer","margin-right","15px",3,"click"],[1,"app-select-container"],[1,"app-select",3,"selectionChange","placeholder","formControl"],[1,"app-name-option",3,"value"],[1,"tabs-container"],[1,"details-panel-container"],[1,"resize-handler"],[1,"chat-container"],[1,"chat-toolbar",3,"ngClass"],[1,"chat-card"],["mat-fab","","color","primary",1,"fab-button"],[1,"chat-messages"],[1,"chat-input"],["appResizableBottomPanel","",1,"trace-detail-container"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"position","absolute","width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","20px","z-index","9999",3,"click"],[3,"selectedTabChange"],[1,"tabs-header"],["mat-tab-label",""],[3,"traceData"],[3,"selectedEvent","eventsMap","traceData"],[3,"sessionState"],[3,"artifacts"],[3,"sessionSelected","sessionReloaded","userId","appName","sessionId"],[1,"tab-label"],[3,"shouldShowTab","sessionSelected","evalCaseSelected","evalSetIdSelected","shouldReturnToSession","evalNotInstalledMsg","appName","userId","sessionId"],[1,"details-content"],[2,"display","flex","justify-content","flex-end","margin-top","10px"],["aria-label","Select event",1,"event-paginator",3,"page","length","pageSize","pageIndex"],["mat-mini-fab",""],[3,"click"],["label","Event"],[1,"event-graph-container"],[3,"innerHtml"],[1,"json-viewer-container"],[3,"json"],["label","Request"],["label","Response"],[3,"click","innerHtml"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","-2px","z-index","9999"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","-2px","z-index","9999",3,"click"],[2,"display","flex"],[1,"toolbar-session-text"],[1,"toolbar-session-id"],[1,"toolbar-actions"],["mat-button","",2,"height","30px",3,"click"],["mat-flat-button","",2,"height","30px",3,"click","disabled"],["matTooltip","Edit current eval case",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Delete current eval case",1,"material-symbols-outlined","toolbar-icon",3,"click"],[1,"toolbar-sse-toggle"],[1,"example-margin",3,"change","checked"],[2,"margin-left","8px","margin-right","8px","height","22px",3,"vertical"],[2,"display","flex","align-items","center"],[1,"toolbar-new-sesison",3,"click"],["matTooltip","Delete current session",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Export current session",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Import session",1,"material-symbols-outlined","toolbar-icon"],["matTooltip","Import session",1,"material-symbols-outlined","toolbar-icon",3,"click"],[1,"empty-state-container"],[1,"warning"],[1,"error"],["mat-fab","","color","primary",1,"fab-button",3,"click"],[3,"ngClass"],["mat-mini-fab","",3,"matTooltip","class"],[1,"message-card",3,"ngClass","ngStyle"],["mat-stroked-button","",1,"function-event-button",3,"ngClass"],[1,"material-symbols-outlined"],["mat-mini-fab","",3,"click","matTooltip"],["fontSet","material-symbols-outlined"],["mode","buffer",1,"loading-bar"],[1,"attachments"],[1,"thought-chip"],[1,"eval-compare-container"],[1,"attachment"],["alt","attachment",1,"image-preview-chat",3,"src"],["download","",3,"href"],[1,"edit-message-container"],[1,"message-text",3,"data","ngStyle"],["rows","4","cols","80",1,"message-textarea",3,"ngModelChange","keydown","ngModel"],[1,"edit-message-buttons-container"],["matTooltip","Cancel editing",1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-right","16px",3,"click"],["matTooltip","Save eval case message",1,"material-symbols-outlined",2,"width","24px","height","24px","color","rgb(97, 151, 202)","cursor","pointer","margin-right","16px",3,"click"],[3,"innerHTML"],[1,"generated-image-container"],["alt","image",1,"generated-image",3,"click","src"],[3,"base64data"],[1,"html-artifact-container"],[1,"link-style-button",3,"click"],["alt","image",1,"image-preview-chat",3,"click","src"],[1,"actual-expected-compare-container"],[1,"score-threshold-container"],[1,"actual-result"],[1,"eval-response-header","header-actual"],[1,"expected-result"],[1,"eval-response-header","header-expected"],[1,"header-actual"],[1,"header-expected"],["mat-stroked-button","",1,"function-event-button",3,"click","ngClass"],["matTooltip","Edit eval case message",1,"material-symbols-outlined","eval-case-edit-button",3,"click","ngClass"],["matTooltip","Delete eval case message",1,"material-symbols-outlined","eval-case-edit-button",3,"click","ngClass"],["matTooltip","Edit function arguments",1,"material-symbols-outlined","eval-case-edit-button",3,"click","ngClass"],["type","file","multiple","","hidden","",3,"change"],["appearance","outline",1,"input-field"],[1,"file-preview"],["matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","1","cdkAutosizeMaxRows","10","placeholder","Type a Message...",1,"chat-input-box",2,"caret-color","white",3,"ngModelChange","keydown.enter","ngModel"],[1,"chat-input-actions"],["mat-icon-button","","matTooltip","Upload local file",1,"function-event-button",3,"click"],["mat-icon-button","","matTooltip","More options",1,"function-event-button",3,"matMenuTriggerFor"],["mat-menu-item","",3,"click"],["mat-icon-button","","matSuffix","",3,"click","ngStyle","matTooltip"],[1,"file-container"],[1,"image-container"],["alt","preview",1,"image-preview",3,"src"],["mat-icon-button","",1,"delete-button",3,"click"],["color","warn"],[1,"file-info"],[1,"bottom-resize-handler"],[3,"panelClosed","userId","appName","sessionId"]],template:function(A,i){if(A&1){let n=be();S(0,"mat-drawer-container",7),_A(1,GjA,2,0,"span",8),S(2,"mat-drawer",9,0)(4,"div",10)(5,"div",11)(6,"div",12)(7,"div",13),JA(8,"img",14),AA(9," Agent Development Kit "),F(),S(10,"span",15),hA("click",function(){return RA(n),xA(i.toggleSidePanel())}),AA(11,"left_panel_close"),F()()()(),S(12,"div",16)(13,"mat-select",17),hA("selectionChange",function(r){return RA(n),xA(i.onAppSelection(r))}),_A(14,KjA,2,0),Za(15,"async"),_A(16,YjA,2,2,"mat-option",18),F()(),_A(17,qjA,18,9,"div",19)(18,ZjA,20,7,"div",20),JA(19,"div",21),F(),S(20,"div",22),_A(21,iqA,4,5,"div",23),S(22,"mat-card",24),_A(23,lqA,2,1)(24,gqA,3,0,"button",25)(25,PqA,6,0,"div",26)(26,XqA,25,11,"div",27),F(),_A(27,$qA,4,3,"div",28),F()()}if(A&2){let n;G(),GA(!i.showSidePanel&&i.appName===""?1:-1),G(12),yA("placeholder",i.isLoadingApps()?"Loading...":"Select an agent")("formControl",i.selectedAppControl),G(),GA((n=M2(15,13,i.apps$))?14:-1,n),G(2),GA(i.selectedAppControl.value&&i.isLoadingApps()?16:-1),G(),GA(i.appName!=""&&i.showSidePanel?17:-1),G(),GA(i.selectedEvent&&i.showSidePanel?18:-1),G(3),GA(i.appName!=""?21:-1),G(2),GA(i.selectedAppControl.value?-1:23),G(),GA(i.longRunningEvents.length>0?24:-1),G(),GA(i.appName!=""?25:-1),G(),GA(i.appName!=""&&i.isChatMode()?26:-1),G(),GA(i.bottomPanelVisible?27:-1)}},dependencies:[Xa,Kh,vc,Ea,ec,xcA,P2,Qg,bP,iI,CcA,Dr,kB,rP,oP,Ok,pcA,FQ,JG,TG,jG,mf,o7,NB,U2,_B,jcA,dlA,C7,vM,NQ,bf,ulA,nd,od,id,zu,Mf,nC,kf,Sf,xf,Lf,Jh],styles:[".expand-side-drawer[_ngcontent-%COMP%]{position:relative;top:4%;left:1%}.drawer-container[_ngcontent-%COMP%]{height:100%;background-color:#131314}.generated-image-container[_ngcontent-%COMP%]{max-width:400px}.generated-image[_ngcontent-%COMP%]{max-width:100%;min-width:40px;border-radius:8px}.chat-container[_ngcontent-%COMP%]{width:100%;height:100%;max-width:100%;margin:auto;display:flex;flex-direction:column;flex:1}.event-container[_ngcontent-%COMP%]{color:#fff}.html-artifact-container[_ngcontent-%COMP%], .drawer-header[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:flex-start;align-items:center}.drawer-header[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{width:36px;height:36px;color:#bdc1c6;cursor:pointer;display:flex;align-items:center;justify-content:center}.chat-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;overflow:hidden;flex:1;min-height:12%;box-shadow:none;background-color:#131314}.loading-bar[_ngcontent-%COMP%]{width:100px;margin:15px}.chat-messages[_ngcontent-%COMP%]{flex-grow:1;overflow-y:auto;padding:20px;margin-top:16px}.message-card[_ngcontent-%COMP%]{padding:5px 20px;margin:5px;border-radius:20px;max-width:80%;font-size:14px;font-weight:400;position:relative;display:inline-block}.function-event-button[_ngcontent-%COMP%]{background-color:#fff;margin:5px 5px 10px}.function-event-button-highlight[_ngcontent-%COMP%]{background-color:#0f5223;border-color:#0f5223!important;color:#fff!important}.user-message[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center}.user-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:#004a77;align-self:flex-end;color:#fff;box-shadow:none}.bot-message[_ngcontent-%COMP%]{display:flex;align-items:center}.bot-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:#303030;align-self:flex-start;color:#fff;box-shadow:none}.bot-message[_ngcontent-%COMP%]:focus-within .message-card[_ngcontent-%COMP%]{background-color:#131314;border:1px solid #8ab4f8}.message-textarea[_ngcontent-%COMP%]{background-color:#303030;max-width:100%;border:none;font-family:Google Sans,Helvetica Neue,sans-serif}.message-textarea[_ngcontent-%COMP%]:focus{background-color:#131314;outline:none}.edit-message-buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%]{visibility:hidden;position:absolute;left:10px;z-index:10;background-color:#484848;overflow:hidden;border-radius:20px;padding:5px 20px;margin-bottom:10px;font-size:16px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .actual-result[_ngcontent-%COMP%]{border-right:2px solid #8a8686;padding-right:8px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .expected-result[_ngcontent-%COMP%]{padding-left:12px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%]:hover .eval-compare-container[_ngcontent-%COMP%]{visibility:visible}.actual-expected-compare-container[_ngcontent-%COMP%]{display:flex}.score-threshold-container[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:10px;align-items:center;margin-top:15px;font-size:14px;font-weight:600}.eval-response-header[_ngcontent-%COMP%]{padding-bottom:5px;border-bottom:2px solid #8a8686;font-style:italic;font-weight:700}.header-expected[_ngcontent-%COMP%]{color:#44c265}.header-actual[_ngcontent-%COMP%]{color:#ff8983}.eval-case-edit-button[_ngcontent-%COMP%]{cursor:pointer;margin-left:4px;margin-right:4px}.eval-pass[_ngcontent-%COMP%]{display:flex;color:#44c265}.eval-fail[_ngcontent-%COMP%]{display:flex;color:#ff8983}.navigation-button-sidepanel[_ngcontent-%COMP%]{margin-left:auto;margin-right:20px}.chat-input[_ngcontent-%COMP%]{display:flex;padding:10px;width:60%;margin:0 auto}.hidden[_ngcontent-%COMP%]{visibility:hidden}.input-field[_ngcontent-%COMP%]{flex-grow:1}.input-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{color:#fff;border:none;padding:10px;box-sizing:content-box}.input-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]::placeholder{color:#8e918f}.input-field[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{color:#fff;background-color:#333537}.chat-input-actions[_ngcontent-%COMP%]{width:106%;margin-top:10px;display:flex;justify-content:space-between;align-items:center;max-width:100%}.chat-input-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:10px;margin-right:10px}.fab-button[_ngcontent-%COMP%]{position:fixed;bottom:200px;right:100px;z-index:1000}.sidepanel-toggle[_ngcontent-%COMP%]{position:relative;top:100px;z-index:1000}.side-drawer[_ngcontent-%COMP%]{background-color:#1b1b1b;color:#fff;border-radius:0}.tabs-container[_ngcontent-%COMP%]{width:100%;margin-top:20px}.tab-label[_ngcontent-%COMP%]{font-size:14px}.file-preview[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px;margin-bottom:8px}.file-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:5px;background:#eee;padding:5px;border-radius:4px}.image-preview[_ngcontent-%COMP%]{width:40px;height:40px;object-fit:cover;border-radius:4px}.image-preview-chat[_ngcontent-%COMP%]{max-width:90%;max-height:70vh;width:auto;height:auto;border-radius:8px;cursor:pointer;transition:transform .2s ease-in-out}button[_ngcontent-%COMP%]{margin-left:20px;margin-right:20px}.app-select[_ngcontent-%COMP%]{width:100%}.empty-state-container[_ngcontent-%COMP%]{color:#eee;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:Google Sans,sans-serif;font-weight:400;letter-spacing:normal;line-height:24px;font-size:18px}.empty-state-container[_ngcontent-%COMP%] pre.warning[_ngcontent-%COMP%]{color:#ffc185}.empty-state-container[_ngcontent-%COMP%] pre.error[_ngcontent-%COMP%]{color:#ff4545}[_nghost-%COMP%] .mat-mdc-unelevated-button:not(:disabled){color:#202124;background-color:#8ab4f8}[_nghost-%COMP%] .message-text p{white-space:pre-line;word-break:break-word;overflow-wrap:break-word}[_nghost-%COMP%] .mdc-linear-progress__buffer-dots{background:#fff}[_nghost-%COMP%] .mat-mdc-select-arrow-wrapper{margin-left:4px}[_nghost-%COMP%] .mat-mdc-text-field-wrapper{border:1px solid #8e918f}[_nghost-%COMP%] .input-field .mat-mdc-text-field-wrapper{border:1px solid #8e918f;border-radius:16px}[_nghost-%COMP%] .mdc-notched-outline__leading, [_nghost-%COMP%] .mdc-notched-outline__notch, [_nghost-%COMP%] .mdc-notched-outline__trailing{border:none}[_nghost-%COMP%] .mat-mdc-form-field-icon-suffix{padding:0 10px 0 40px}[_nghost-%COMP%] .segment-key{color:#d3d3d3!important}[_nghost-%COMP%] .mat-mdc-mini-fab{background-color:#fff}[_nghost-%COMP%] .mat-mdc-mini-fab mat-icon{color:#000}.mat-mdc-select-placeholder[_ngcontent-%COMP%]{margin-left:20px}.resize-handler[_ngcontent-%COMP%]{background:#5f6368;width:4px;border-radius:4px;position:absolute;display:block;height:20%;top:40%;right:0;z-index:9999;cursor:ew-resize}.bottom-resize-handler[_ngcontent-%COMP%]{background:#5f6368;height:5px;border-radius:4px;position:absolute;display:block;width:20%;left:40%;top:0;right:0;z-index:9999;cursor:ns-resize}.trace-detail-container[_ngcontent-%COMP%]{position:relative;background-color:#1b1b1b}.trace-detail-container[_ngcontent-%COMP%] app-trace-event[_ngcontent-%COMP%]{padding-top:8px}.new-session-button[_ngcontent-%COMP%]{margin-top:0;margin-left:50px;width:130px;height:28px;font-size:14px}.app-select-container[_ngcontent-%COMP%]{width:35%;margin-top:12px;background-color:#212123;margin-left:10px;height:30px;display:flex;justify-content:space-between;padding-left:20px;padding-right:20px;border-radius:10px;padding-top:5px}.app-select-container[_ngcontent-%COMP%]{--mat-select-placeholder-text-color: #8ab4f8}.app-select-container[_ngcontent-%COMP%]{--mat-select-enabled-trigger-text-color: #8ab4f8}.app-select-container[_ngcontent-%COMP%]{--mat-select-enabled-arrow-color: #8ab4f8}.json-viewer-container[_ngcontent-%COMP%]{margin:10px}.event-paginator[_ngcontent-%COMP%]{margin-top:-8px;margin-right:auto;background-color:inherit;display:flex;justify-content:center}[_nghost-%COMP%] .mat-mdc-paginator-page-size{display:none!important}.details-panel-container[_ngcontent-%COMP%]{position:absolute;width:100%;height:98%;left:0;right:0;bottom:0;background:#242424;display:inline-block;justify-content:center;align-items:center;z-index:10}.details-content[_ngcontent-%COMP%]{color:#fff;font-size:14px}.adk-checkbox[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;right:0;margin-bottom:20px;margin-left:20px}.drawer-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-container-color: #89b4f8}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-label-text-color: black}.chat-toolbar[_ngcontent-%COMP%]{position:sticky;top:0;height:48px;background:#1b1b1b;display:flex;align-items:center;z-index:10}.chat-toolbar.edit-mode[_ngcontent-%COMP%]{background:#44c2651a}.attachment[_ngcontent-%COMP%]{display:flex;align-items:center}.toolbar-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center}.toolbar-session-text[_ngcontent-%COMP%]{color:#fdfdfd;font-family:Roboto;font-size:12px;font-style:normal;font-weight:500;line-height:12px;letter-spacing:.8px;text-transform:uppercase;margin-left:20px;padding-top:4px}.toolbar-session-id[_ngcontent-%COMP%]{color:#9aa0a6;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px;margin-left:5px}.toolbar-icon[_ngcontent-%COMP%]{width:24px;height:24px;color:#c4c7c5;cursor:pointer;margin-right:16px}.toolbar-new-sesison[_ngcontent-%COMP%]{font-size:14px;margin-right:16px;color:#9aa0a6;cursor:pointer;display:flex;align-items:center}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-label-text-size: 14px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-label-text-color: #9aa0a6}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-track-color: #8ab4f9}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-focus-track-color: #8ab4f9}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-hover-track-color: #8ab4f9}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-handle-color: #1b73e8}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-focus-handle-color: #1b73e8}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-hover-handle-color: #1b73e8}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-track-height: 24px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-track-width: 46px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-track-outline-color: #1b73e8}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-with-icon-handle-size: 20px}.image-container[_ngcontent-%COMP%]{position:relative;display:inline-block;border-radius:12px;overflow:hidden}.image-preview[_ngcontent-%COMP%]{display:block;width:100%;height:auto;border-radius:12px;width:80px;height:80px}.delete-button[_ngcontent-%COMP%]{position:absolute;top:1px;right:1px;background-color:#000000b3;border:none;border-radius:50%;padding:8px;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;margin-right:0;scale:.7}.delete-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px}.file-container[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;gap:8px;height:80px;background-color:#1e1e1e;border-radius:12px}.file-info[_ngcontent-%COMP%]{margin-right:60px;padding-top:20px;padding-left:16px}.thought-chip[_ngcontent-%COMP%]{border-radius:5px;background-color:#8ab4f8;width:80px;text-align:center;margin-top:5px}.event-graph-container[_ngcontent-%COMP%]{margin-top:16px;margin-bottom:16px;display:flex;justify-content:center;max-height:33%;cursor:pointer}.event-graph-container[_ngcontent-%COMP%] svg{width:100%;height:100%;display:block;object-fit:contain}.event-graph-container[_ngcontent-%COMP%] svg text{font-family:Google Sans Mono,monospace;font-size:11px}[_nghost-%COMP%] pre{white-space:pre-wrap;word-break:break-word;overflow-x:auto;max-width:100%}.link-style-button[_ngcontent-%COMP%]{background:none;border:none;padding:0;font:inherit;color:#007bff!important;text-decoration:underline;cursor:pointer;outline:none;font-size:14px}.drawer-logo[_ngcontent-%COMP%]{margin-left:9px;display:flex;align-items:center;font-size:16px;font-style:normal;font-weight:500;line-height:24px;letter-spacing:.1px}.drawer-logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{margin-right:9px} .mat-drawer-content{display:flex!important} .mat-drawer{border-right:1px solid #444746!important}.app-name-option[_ngcontent-%COMP%], .app-select[_ngcontent-%COMP%]{color:#9aa0a6;font-family:Google Sans Mono,monospace;font-style:normal;font-weight:400;padding-left:unset}"],changeDetection:0})};var _Q=class t{title="agent_framework_web";userId="";appName="";sessionId="";constructor(){}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=zA({type:t,selectors:[["app-root"]],standalone:!1,decls:1,vars:0,template:function(A,i){A&1&&JA(0,"app-chat")},dependencies:[Ff],encapsulation:2})};var tVA=[{path:"",component:_Q}],B7=class t{static \u0275fac=function(A){return new(A||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[O6.forRoot(tVA),O6]})};function FlA(t){return new Ae(3e3,!1)}function iVA(){return new Ae(3100,!1)}function nVA(){return new Ae(3101,!1)}function oVA(t){return new Ae(3001,!1)}function rVA(t){return new Ae(3003,!1)}function sVA(t){return new Ae(3004,!1)}function _lA(t,e){return new Ae(3005,!1)}function GlA(){return new Ae(3006,!1)}function UlA(){return new Ae(3007,!1)}function KlA(t,e){return new Ae(3008,!1)}function YlA(t){return new Ae(3002,!1)}function JlA(t,e,A,i,n){return new Ae(3010,!1)}function TlA(){return new Ae(3011,!1)}function HlA(){return new Ae(3012,!1)}function zlA(){return new Ae(3200,!1)}function OlA(){return new Ae(3202,!1)}function PlA(){return new Ae(3013,!1)}function jlA(t){return new Ae(3014,!1)}function qlA(t){return new Ae(3015,!1)}function VlA(t){return new Ae(3016,!1)}function ZlA(t,e){return new Ae(3404,!1)}function aVA(t){return new Ae(3502,!1)}function WlA(t){return new Ae(3503,!1)}function XlA(){return new Ae(3300,!1)}function $lA(t){return new Ae(3504,!1)}function AgA(t){return new Ae(3301,!1)}function egA(t,e){return new Ae(3302,!1)}function tgA(t){return new Ae(3303,!1)}function igA(t,e){return new Ae(3400,!1)}function ngA(t){return new Ae(3401,!1)}function ogA(t){return new Ae(3402,!1)}function rgA(t,e){return new Ae(3505,!1)}function c2(t){switch(t.length){case 0:return new Eg;case 1:return t[0];default:return new tC(t)}}function hU(t,e,A=new Map,i=new Map){let n=[],o=[],r=-1,s=null;if(e.forEach(a=>{let c=a.get("offset"),l=c==r,I=l&&s||new Map;a.forEach((C,d)=>{let B=d,E=C;if(d!=="offset")switch(B=t.normalizePropertyName(B,n),E){case FB:E=A.get(d);break;case kc:E=i.get(d);break;default:E=t.normalizeStyleValue(d,B,E,n);break}I.set(B,E)}),l||o.push(I),s=I,r=c}),n.length)throw aVA(n);return o}function E7(t,e,A,i){switch(e){case"start":t.onStart(()=>i(A&&BU(A,"start",t)));break;case"done":t.onDone(()=>i(A&&BU(A,"done",t)));break;case"destroy":t.onDestroy(()=>i(A&&BU(A,"destroy",t)));break}}function BU(t,e,A){let i=A.totalTime,n=!!A.disabled,o=Q7(t.element,t.triggerName,t.fromState,t.toState,e||t.phaseName,i??t.totalTime,n),r=t._data;return r!=null&&(o._data=r),o}function Q7(t,e,A,i,n="",o=0,r){return{element:t,triggerName:e,fromState:A,toState:i,phaseName:n,totalTime:o,disabled:!!r}}function Ya(t,e,A){let i=t.get(e);return i||t.set(e,i=A),i}function uU(t){let e=t.indexOf(":"),A=t.substring(1,e),i=t.slice(e+1);return[A,i]}var cVA=typeof document>"u"?null:document.documentElement;function h7(t){let e=t.parentNode||t.host||null;return e===cVA?null:e}function lVA(t){return t.substring(1,6)=="ebkit"}var ad=null,NlA=!1;function sgA(t){ad||(ad=gVA()||{},NlA=ad.style?"WebkitAppearance"in ad.style:!1);let e=!0;return ad.style&&!lVA(t)&&(e=t in ad.style,!e&&NlA&&(e="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in ad.style)),e}function gVA(){return typeof document<"u"?document.body:null}function fU(t,e){for(;e;){if(e===t)return!0;e=h7(e)}return!1}function mU(t,e,A){if(A)return Array.from(t.querySelectorAll(e));let i=t.querySelector(e);return i?[i]:[]}var IVA=1e3,pU="{{",CVA="}}",wU="ng-enter",u7="ng-leave",Nf="ng-trigger",_f=".ng-trigger",DU="ng-animating",f7=".ng-animating";function e0(t){if(typeof t=="number")return t;let e=t.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:EU(parseFloat(e[1]),e[2])}function EU(t,e){switch(e){case"s":return t*IVA;default:return t}}function Gf(t,e,A){return t.hasOwnProperty("duration")?t:dVA(t,e,A)}function dVA(t,e,A){let i=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,n,o=0,r="";if(typeof t=="string"){let s=t.match(i);if(s===null)return e.push(FlA(t)),{duration:0,delay:0,easing:""};n=EU(parseFloat(s[1]),s[2]);let a=s[3];a!=null&&(o=EU(parseFloat(a),s[4]));let c=s[5];c&&(r=c)}else n=t;if(!A){let s=!1,a=e.length;n<0&&(e.push(iVA()),s=!0),o<0&&(e.push(nVA()),s=!0),s&&e.splice(a,0,FlA(t))}return{duration:n,delay:o,easing:r}}function agA(t){return t.length?t[0]instanceof Map?t:t.map(e=>new Map(Object.entries(e))):[]}function Jl(t,e,A){e.forEach((i,n)=>{let o=m7(n);A&&!A.has(n)&&A.set(n,t.style[o]),t.style[o]=i})}function rI(t,e){e.forEach((A,i)=>{let n=m7(i);t.style[n]=""})}function GQ(t){return Array.isArray(t)?t.length==1?t[0]:hP(t):t}function cgA(t,e,A){let i=e.params||{},n=yU(t);n.length&&n.forEach(o=>{i.hasOwnProperty(o)||A.push(oVA(o))})}var QU=new RegExp(`${pU}\\s*(.+?)\\s*${CVA}`,"g");function yU(t){let e=[];if(typeof t=="string"){let A;for(;A=QU.exec(t);)e.push(A[1]);QU.lastIndex=0}return e}function UQ(t,e,A){let i=`${t}`,n=i.replace(QU,(o,r)=>{let s=e[r];return s==null&&(A.push(rVA(r)),s=""),s.toString()});return n==i?t:n}var BVA=/-+([a-z0-9])/g;function m7(t){return t.replace(BVA,(...e)=>e[1].toUpperCase())}function lgA(t,e){return t===0||e===0}function ggA(t,e,A){if(A.size&&e.length){let i=e[0],n=[];if(A.forEach((o,r)=>{i.has(r)||n.push(r),i.set(r,o)}),n.length)for(let o=1;or.set(s,p7(t,s)))}}return e}function Ja(t,e,A){switch(e.type){case Ci.Trigger:return t.visitTrigger(e,A);case Ci.State:return t.visitState(e,A);case Ci.Transition:return t.visitTransition(e,A);case Ci.Sequence:return t.visitSequence(e,A);case Ci.Group:return t.visitGroup(e,A);case Ci.Animate:return t.visitAnimate(e,A);case Ci.Keyframes:return t.visitKeyframes(e,A);case Ci.Style:return t.visitStyle(e,A);case Ci.Reference:return t.visitReference(e,A);case Ci.AnimateChild:return t.visitAnimateChild(e,A);case Ci.AnimateRef:return t.visitAnimateRef(e,A);case Ci.Query:return t.visitQuery(e,A);case Ci.Stagger:return t.visitStagger(e,A);default:throw sVA(e.type)}}function p7(t,e){return window.getComputedStyle(t)[e]}var TU=(()=>{class t{validateStyleProperty(A){return sgA(A)}containsElement(A,i){return fU(A,i)}getParentElement(A){return h7(A)}query(A,i,n){return mU(A,i,n)}computeStyle(A,i,n){return n||""}animate(A,i,n,o,r,s=[],a){return new Eg(n,o)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=NA({token:t,factory:t.\u0275fac})}return t})(),ld=class{static NOOP=new TU},gd=class{};var EVA=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),b7=class extends gd{normalizePropertyName(e,A){return m7(e)}normalizeStyleValue(e,A,i,n){let o="",r=i.toString().trim();if(EVA.has(A)&&i!==0&&i!=="0")if(typeof i=="number")o="px";else{let s=i.match(/^[+-]?[\d\.]+([a-z]*)$/);s&&s[1].length==0&&n.push(_lA(e,i))}return r+o}};var M7="*";function QVA(t,e){let A=[];return typeof t=="string"?t.split(/\s*,\s*/).forEach(i=>hVA(i,A,e)):A.push(t),A}function hVA(t,e,A){if(t[0]==":"){let a=uVA(t,A);if(typeof a=="function"){e.push(a);return}t=a}let i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(i==null||i.length<4)return A.push(qlA(t)),e;let n=i[1],o=i[2],r=i[3];e.push(IgA(n,r));let s=n==M7&&r==M7;o[0]=="<"&&!s&&e.push(IgA(r,n))}function uVA(t,e){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(A,i)=>parseFloat(i)>parseFloat(A);case":decrement":return(A,i)=>parseFloat(i) *"}}var w7=new Set(["true","1"]),D7=new Set(["false","0"]);function IgA(t,e){let A=w7.has(t)||D7.has(t),i=w7.has(e)||D7.has(e);return(n,o)=>{let r=t==M7||t==n,s=e==M7||e==o;return!r&&A&&typeof n=="boolean"&&(r=n?w7.has(t):D7.has(t)),!s&&i&&typeof o=="boolean"&&(s=o?w7.has(e):D7.has(e)),r&&s}}var pgA=":self",fVA=new RegExp(`s*${pgA}s*,?`,"g");function wgA(t,e,A,i){return new RU(t).build(e,A,i)}var CgA="",RU=class{_driver;constructor(e){this._driver=e}build(e,A,i){let n=new xU(A);return this._resetContextStyleTimingState(n),Ja(this,GQ(e),n)}_resetContextStyleTimingState(e){e.currentQuerySelector=CgA,e.collectedStyles=new Map,e.collectedStyles.set(CgA,new Map),e.currentTime=0}visitTrigger(e,A){let i=A.queryCount=0,n=A.depCount=0,o=[],r=[];return e.name.charAt(0)=="@"&&A.errors.push(GlA()),e.definitions.forEach(s=>{if(this._resetContextStyleTimingState(A),s.type==Ci.State){let a=s,c=a.name;c.toString().split(/\s*,\s*/).forEach(l=>{a.name=l,o.push(this.visitState(a,A))}),a.name=c}else if(s.type==Ci.Transition){let a=this.visitTransition(s,A);i+=a.queryCount,n+=a.depCount,r.push(a)}else A.errors.push(UlA())}),{type:Ci.Trigger,name:e.name,states:o,transitions:r,queryCount:i,depCount:n,options:null}}visitState(e,A){let i=this.visitStyle(e.styles,A),n=e.options&&e.options.params||null;if(i.containsDynamicStyles){let o=new Set,r=n||{};i.styles.forEach(s=>{s instanceof Map&&s.forEach(a=>{yU(a).forEach(c=>{r.hasOwnProperty(c)||o.add(c)})})}),o.size&&A.errors.push(KlA(e.name,[...o.values()]))}return{type:Ci.State,name:e.name,style:i,options:n?{params:n}:null}}visitTransition(e,A){A.queryCount=0,A.depCount=0;let i=Ja(this,GQ(e.animation),A),n=QVA(e.expr,A.errors);return{type:Ci.Transition,matchers:n,animation:i,queryCount:A.queryCount,depCount:A.depCount,options:cd(e.options)}}visitSequence(e,A){return{type:Ci.Sequence,steps:e.steps.map(i=>Ja(this,i,A)),options:cd(e.options)}}visitGroup(e,A){let i=A.currentTime,n=0,o=e.steps.map(r=>{A.currentTime=i;let s=Ja(this,r,A);return n=Math.max(n,A.currentTime),s});return A.currentTime=n,{type:Ci.Group,steps:o,options:cd(e.options)}}visitAnimate(e,A){let i=DVA(e.timings,A.errors);A.currentAnimateTimings=i;let n,o=e.styles?e.styles:po({});if(o.type==Ci.Keyframes)n=this.visitKeyframes(o,A);else{let r=e.styles,s=!1;if(!r){s=!0;let c={};i.easing&&(c.easing=i.easing),r=po(c)}A.currentTime+=i.duration+i.delay;let a=this.visitStyle(r,A);a.isEmptyStep=s,n=a}return A.currentAnimateTimings=null,{type:Ci.Animate,timings:i,style:n,options:null}}visitStyle(e,A){let i=this._makeStyleAst(e,A);return this._validateStyleAst(i,A),i}_makeStyleAst(e,A){let i=[],n=Array.isArray(e.styles)?e.styles:[e.styles];for(let s of n)typeof s=="string"?s===kc?i.push(s):A.errors.push(YlA(s)):i.push(new Map(Object.entries(s)));let o=!1,r=null;return i.forEach(s=>{if(s instanceof Map&&(s.has("easing")&&(r=s.get("easing"),s.delete("easing")),!o)){for(let a of s.values())if(a.toString().indexOf(pU)>=0){o=!0;break}}}),{type:Ci.Style,styles:i,easing:r,offset:e.offset,containsDynamicStyles:o,options:null}}_validateStyleAst(e,A){let i=A.currentAnimateTimings,n=A.currentTime,o=A.currentTime;i&&o>0&&(o-=i.duration+i.delay),e.styles.forEach(r=>{typeof r!="string"&&r.forEach((s,a)=>{let c=A.collectedStyles.get(A.currentQuerySelector),l=c.get(a),I=!0;l&&(o!=n&&o>=l.startTime&&n<=l.endTime&&(A.errors.push(JlA(a,l.startTime,l.endTime,o,n)),I=!1),o=l.startTime),I&&c.set(a,{startTime:o,endTime:n}),A.options&&cgA(s,A.options,A.errors)})})}visitKeyframes(e,A){let i={type:Ci.Keyframes,styles:[],options:null};if(!A.currentAnimateTimings)return A.errors.push(TlA()),i;let n=1,o=0,r=[],s=!1,a=!1,c=0,l=e.steps.map(u=>{let D=this._makeStyleAst(u,A),L=D.offset!=null?D.offset:wVA(D.styles),R=0;return L!=null&&(o++,R=D.offset=L),a=a||R<0||R>1,s=s||R0&&o{let L=C>0?D==d?1:C*D:r[D],R=L*h;A.currentTime=B+E.delay+R,E.duration=R,this._validateStyleAst(u,A),u.offset=L,i.styles.push(u)}),i}visitReference(e,A){return{type:Ci.Reference,animation:Ja(this,GQ(e.animation),A),options:cd(e.options)}}visitAnimateChild(e,A){return A.depCount++,{type:Ci.AnimateChild,options:cd(e.options)}}visitAnimateRef(e,A){return{type:Ci.AnimateRef,animation:this.visitReference(e.animation,A),options:cd(e.options)}}visitQuery(e,A){let i=A.currentQuerySelector,n=e.options||{};A.queryCount++,A.currentQuery=e;let[o,r]=mVA(e.selector);A.currentQuerySelector=i.length?i+" "+o:o,Ya(A.collectedStyles,A.currentQuerySelector,new Map);let s=Ja(this,GQ(e.animation),A);return A.currentQuery=null,A.currentQuerySelector=i,{type:Ci.Query,selector:o,limit:n.limit||0,optional:!!n.optional,includeSelf:r,animation:s,originalSelector:e.selector,options:cd(e.options)}}visitStagger(e,A){A.currentQuery||A.errors.push(PlA());let i=e.timings==="full"?{duration:0,delay:0,easing:"full"}:Gf(e.timings,A.errors,!0);return{type:Ci.Stagger,animation:Ja(this,GQ(e.animation),A),timings:i,options:null}}};function mVA(t){let e=!!t.split(/\s*,\s*/).find(A=>A==pgA);return e&&(t=t.replace(fVA,"")),t=t.replace(/@\*/g,_f).replace(/@\w+/g,A=>_f+"-"+A.slice(1)).replace(/:animating/g,f7),[t,e]}function pVA(t){return t?rA({},t):null}var xU=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(e){this.errors=e}};function wVA(t){if(typeof t=="string")return null;let e=null;if(Array.isArray(t))t.forEach(A=>{if(A instanceof Map&&A.has("offset")){let i=A;e=parseFloat(i.get("offset")),i.delete("offset")}});else if(t instanceof Map&&t.has("offset")){let A=t;e=parseFloat(A.get("offset")),A.delete("offset")}return e}function DVA(t,e){if(t.hasOwnProperty("duration"))return t;if(typeof t=="number"){let o=Gf(t,e).duration;return vU(o,0,"")}let A=t;if(A.split(/\s+/).some(o=>o.charAt(0)=="{"&&o.charAt(1)=="{")){let o=vU(0,0,"");return o.dynamic=!0,o.strValue=A,o}let n=Gf(A,e);return vU(n.duration,n.delay,n.easing)}function cd(t){return t?(t=rA({},t),t.params&&(t.params=pVA(t.params))):t={},t}function vU(t,e,A){return{duration:t,delay:e,easing:A}}function HU(t,e,A,i,n,o,r=null,s=!1){return{type:1,element:t,keyframes:e,preStyleProps:A,postStyleProps:i,duration:n,delay:o,totalTime:n+o,easing:r,subTimeline:s}}var Kf=class{_map=new Map;get(e){return this._map.get(e)||[]}append(e,A){let i=this._map.get(e);i||this._map.set(e,i=[]),i.push(...A)}has(e){return this._map.has(e)}clear(){this._map.clear()}},yVA=1,vVA=":enter",bVA=new RegExp(vVA,"g"),MVA=":leave",kVA=new RegExp(MVA,"g");function DgA(t,e,A,i,n,o=new Map,r=new Map,s,a,c=[]){return new LU().buildKeyframes(t,e,A,i,n,o,r,s,a,c)}var LU=class{buildKeyframes(e,A,i,n,o,r,s,a,c,l=[]){c=c||new Kf;let I=new FU(e,A,c,n,o,l,[]);I.options=a;let C=a.delay?e0(a.delay):0;I.currentTimeline.delayNextStep(C),I.currentTimeline.setStyles([r],null,I.errors,a),Ja(this,i,I);let d=I.timelines.filter(B=>B.containsAnimation());if(d.length&&s.size){let B;for(let E=d.length-1;E>=0;E--){let h=d[E];if(h.element===A){B=h;break}}B&&!B.allowOnlyTimelineStyles()&&B.setStyles([s],null,I.errors,a)}return d.length?d.map(B=>B.buildKeyframes()):[HU(A,[],[],[],0,C,"",!1)]}visitTrigger(e,A){}visitState(e,A){}visitTransition(e,A){}visitAnimateChild(e,A){let i=A.subInstructions.get(A.element);if(i){let n=A.createSubContext(e.options),o=A.currentTimeline.currentTime,r=this._visitSubInstructions(i,n,n.options);o!=r&&A.transformIntoNewTimeline(r)}A.previousNode=e}visitAnimateRef(e,A){let i=A.createSubContext(e.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([e.options,e.animation.options],A,i),this.visitReference(e.animation,i),A.transformIntoNewTimeline(i.currentTimeline.currentTime),A.previousNode=e}_applyAnimationRefDelays(e,A,i){for(let n of e){let o=n?.delay;if(o){let r=typeof o=="number"?o:e0(UQ(o,n?.params??{},A.errors));i.delayNextStep(r)}}}_visitSubInstructions(e,A,i){let o=A.currentTimeline.currentTime,r=i.duration!=null?e0(i.duration):null,s=i.delay!=null?e0(i.delay):null;return r!==0&&e.forEach(a=>{let c=A.appendInstructionToTimeline(a,r,s);o=Math.max(o,c.duration+c.delay)}),o}visitReference(e,A){A.updateOptions(e.options,!0),Ja(this,e.animation,A),A.previousNode=e}visitSequence(e,A){let i=A.subContextCount,n=A,o=e.options;if(o&&(o.params||o.delay)&&(n=A.createSubContext(o),n.transformIntoNewTimeline(),o.delay!=null)){n.previousNode.type==Ci.Style&&(n.currentTimeline.snapshotCurrentStyles(),n.previousNode=k7);let r=e0(o.delay);n.delayNextStep(r)}e.steps.length&&(e.steps.forEach(r=>Ja(this,r,n)),n.currentTimeline.applyStylesToKeyframe(),n.subContextCount>i&&n.transformIntoNewTimeline()),A.previousNode=e}visitGroup(e,A){let i=[],n=A.currentTimeline.currentTime,o=e.options&&e.options.delay?e0(e.options.delay):0;e.steps.forEach(r=>{let s=A.createSubContext(e.options);o&&s.delayNextStep(o),Ja(this,r,s),n=Math.max(n,s.currentTimeline.currentTime),i.push(s.currentTimeline)}),i.forEach(r=>A.currentTimeline.mergeTimelineCollectedStyles(r)),A.transformIntoNewTimeline(n),A.previousNode=e}_visitTiming(e,A){if(e.dynamic){let i=e.strValue,n=A.params?UQ(i,A.params,A.errors):i;return Gf(n,A.errors)}else return{duration:e.duration,delay:e.delay,easing:e.easing}}visitAnimate(e,A){let i=A.currentAnimateTimings=this._visitTiming(e.timings,A),n=A.currentTimeline;i.delay&&(A.incrementTime(i.delay),n.snapshotCurrentStyles());let o=e.style;o.type==Ci.Keyframes?this.visitKeyframes(o,A):(A.incrementTime(i.duration),this.visitStyle(o,A),n.applyStylesToKeyframe()),A.currentAnimateTimings=null,A.previousNode=e}visitStyle(e,A){let i=A.currentTimeline,n=A.currentAnimateTimings;!n&&i.hasCurrentStyleProperties()&&i.forwardFrame();let o=n&&n.easing||e.easing;e.isEmptyStep?i.applyEmptyStep(o):i.setStyles(e.styles,o,A.errors,A.options),A.previousNode=e}visitKeyframes(e,A){let i=A.currentAnimateTimings,n=A.currentTimeline.duration,o=i.duration,s=A.createSubContext().currentTimeline;s.easing=i.easing,e.styles.forEach(a=>{let c=a.offset||0;s.forwardTime(c*o),s.setStyles(a.styles,a.easing,A.errors,A.options),s.applyStylesToKeyframe()}),A.currentTimeline.mergeTimelineCollectedStyles(s),A.transformIntoNewTimeline(n+o),A.previousNode=e}visitQuery(e,A){let i=A.currentTimeline.currentTime,n=e.options||{},o=n.delay?e0(n.delay):0;o&&(A.previousNode.type===Ci.Style||i==0&&A.currentTimeline.hasCurrentStyleProperties())&&(A.currentTimeline.snapshotCurrentStyles(),A.previousNode=k7);let r=i,s=A.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!n.optional,A.errors);A.currentQueryTotal=s.length;let a=null;s.forEach((c,l)=>{A.currentQueryIndex=l;let I=A.createSubContext(e.options,c);o&&I.delayNextStep(o),c===A.element&&(a=I.currentTimeline),Ja(this,e.animation,I),I.currentTimeline.applyStylesToKeyframe();let C=I.currentTimeline.currentTime;r=Math.max(r,C)}),A.currentQueryIndex=0,A.currentQueryTotal=0,A.transformIntoNewTimeline(r),a&&(A.currentTimeline.mergeTimelineCollectedStyles(a),A.currentTimeline.snapshotCurrentStyles()),A.previousNode=e}visitStagger(e,A){let i=A.parentContext,n=A.currentTimeline,o=e.timings,r=Math.abs(o.duration),s=r*(A.currentQueryTotal-1),a=r*A.currentQueryIndex;switch(o.duration<0?"reverse":o.easing){case"reverse":a=s-a;break;case"full":a=i.currentStaggerTime;break}let l=A.currentTimeline;a&&l.delayNextStep(a);let I=l.currentTime;Ja(this,e.animation,A),A.previousNode=e,i.currentStaggerTime=n.currentTime-I+(n.startTime-i.currentTimeline.startTime)}},k7={},FU=class t{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=k7;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(e,A,i,n,o,r,s,a){this._driver=e,this.element=A,this.subInstructions=i,this._enterClassName=n,this._leaveClassName=o,this.errors=r,this.timelines=s,this.currentTimeline=a||new S7(this._driver,A,0),s.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(e,A){if(!e)return;let i=e,n=this.options;i.duration!=null&&(n.duration=e0(i.duration)),i.delay!=null&&(n.delay=e0(i.delay));let o=i.params;if(o){let r=n.params;r||(r=this.options.params={}),Object.keys(o).forEach(s=>{(!A||!r.hasOwnProperty(s))&&(r[s]=UQ(o[s],r,this.errors))})}}_copyOptions(){let e={};if(this.options){let A=this.options.params;if(A){let i=e.params={};Object.keys(A).forEach(n=>{i[n]=A[n]})}}return e}createSubContext(e=null,A,i){let n=A||this.element,o=new t(this._driver,n,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(n,i||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(e),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o}transformIntoNewTimeline(e){return this.previousNode=k7,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(e,A,i){let n={duration:A??e.duration,delay:this.currentTimeline.currentTime+(i??0)+e.delay,easing:""},o=new NU(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,n,e.stretchStartingKeyframe);return this.timelines.push(o),n}incrementTime(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)}delayNextStep(e){e>0&&this.currentTimeline.delayNextStep(e)}invokeQuery(e,A,i,n,o,r){let s=[];if(n&&s.push(this.element),e.length>0){e=e.replace(bVA,"."+this._enterClassName),e=e.replace(kVA,"."+this._leaveClassName);let a=i!=1,c=this._driver.query(this.element,e,a);i!==0&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),s.push(...c)}return!o&&s.length==0&&r.push(jlA(A)),s}},S7=class t{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(e,A,i,n){this._driver=e,this.element=A,this.startTime=i,this._elementTimelineStylesLookup=n,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(A),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(A,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(e){let A=this._keyframes.size===1&&this._pendingStyles.size;this.duration||A?(this.forwardTime(this.currentTime+e),A&&this.snapshotCurrentStyles()):this.startTime+=e}fork(e,A){return this.applyStylesToKeyframe(),new t(this._driver,e,A||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=yVA,this._loadKeyframe()}forwardTime(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()}_updateStyle(e,A){this._localTimelineStyles.set(e,A),this._globalTimelineStyles.set(e,A),this._styleSummary.set(e,{time:this.currentTime,value:A})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(e){e&&this._previousKeyframe.set("easing",e);for(let[A,i]of this._globalTimelineStyles)this._backFill.set(A,i||kc),this._currentKeyframe.set(A,kc);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(e,A,i,n){A&&this._previousKeyframe.set("easing",A);let o=n&&n.params||{},r=SVA(e,this._globalTimelineStyles);for(let[s,a]of r){let c=UQ(a,o,i);this._pendingStyles.set(s,c),this._localTimelineStyles.has(s)||this._backFill.set(s,this._globalTimelineStyles.get(s)??kc),this._updateStyle(s,c)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((e,A)=>{this._currentKeyframe.set(A,e)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((e,A)=>{this._currentKeyframe.has(A)||this._currentKeyframe.set(A,e)}))}snapshotCurrentStyles(){for(let[e,A]of this._localTimelineStyles)this._pendingStyles.set(e,A),this._updateStyle(e,A)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let e=[];for(let A in this._currentKeyframe)e.push(A);return e}mergeTimelineCollectedStyles(e){e._styleSummary.forEach((A,i)=>{let n=this._styleSummary.get(i);(!n||A.time>n.time)&&this._updateStyle(i,A.value)})}buildKeyframes(){this.applyStylesToKeyframe();let e=new Set,A=new Set,i=this._keyframes.size===1&&this.duration===0,n=[];this._keyframes.forEach((s,a)=>{let c=new Map([...this._backFill,...s]);c.forEach((l,I)=>{l===FB?e.add(I):l===kc&&A.add(I)}),i||c.set("offset",a/this.duration),n.push(c)});let o=[...e.values()],r=[...A.values()];if(i){let s=n[0],a=new Map(s);s.set("offset",0),a.set("offset",1),n=[s,a]}return HU(this.element,n,o,r,this.duration,this.startTime,this.easing,!1)}},NU=class extends S7{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(e,A,i,n,o,r,s=!1){super(e,A,r.delay),this.keyframes=i,this.preStyleProps=n,this.postStyleProps=o,this._stretchStartingKeyframe=s,this.timings={duration:r.duration,delay:r.delay,easing:r.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let e=this.keyframes,{delay:A,duration:i,easing:n}=this.timings;if(this._stretchStartingKeyframe&&A){let o=[],r=i+A,s=A/r,a=new Map(e[0]);a.set("offset",0),o.push(a);let c=new Map(e[0]);c.set("offset",dgA(s)),o.push(c);let l=e.length-1;for(let I=1;I<=l;I++){let C=new Map(e[I]),d=C.get("offset"),B=A+d*i;C.set("offset",dgA(B/r)),o.push(C)}i=r,A=0,n="",e=o}return HU(this.element,e,this.preStyleProps,this.postStyleProps,i,A,n,!0)}};function dgA(t,e=3){let A=Math.pow(10,e-1);return Math.round(t*A)/A}function SVA(t,e){let A=new Map,i;return t.forEach(n=>{if(n==="*"){i??=e.keys();for(let o of i)A.set(o,kc)}else for(let[o,r]of n)A.set(o,r)}),A}function BgA(t,e,A,i,n,o,r,s,a,c,l,I,C){return{type:0,element:t,triggerName:e,isRemovalTransition:n,fromState:A,fromStyles:o,toState:i,toStyles:r,timelines:s,queriedElements:a,preStyleProps:c,postStyleProps:l,totalTime:I,errors:C}}var bU={},R7=class{_triggerName;ast;_stateStyles;constructor(e,A,i){this._triggerName=e,this.ast=A,this._stateStyles=i}match(e,A,i,n){return RVA(this.ast.matchers,e,A,i,n)}buildStyles(e,A,i){let n=this._stateStyles.get("*");return e!==void 0&&(n=this._stateStyles.get(e?.toString())||n),n?n.buildStyles(A,i):new Map}build(e,A,i,n,o,r,s,a,c,l){let I=[],C=this.ast.options&&this.ast.options.params||bU,d=s&&s.params||bU,B=this.buildStyles(i,d,I),E=a&&a.params||bU,h=this.buildStyles(n,E,I),u=new Set,D=new Map,L=new Map,R=n==="void",w={params:ygA(E,C),delay:this.ast.options?.delay},_=l?[]:DgA(e,A,this.ast.animation,o,r,B,h,w,c,I),K=0;return _.forEach(z=>{K=Math.max(z.duration+z.delay,K)}),I.length?BgA(A,this._triggerName,i,n,R,B,h,[],[],D,L,K,I):(_.forEach(z=>{let U=z.element,H=Ya(D,U,new Set);z.preStyleProps.forEach(j=>H.add(j));let q=Ya(L,U,new Set);z.postStyleProps.forEach(j=>q.add(j)),U!==A&&u.add(U)}),BgA(A,this._triggerName,i,n,R,B,h,_,[...u.values()],D,L,K))}};function RVA(t,e,A,i,n){return t.some(o=>o(e,A,i,n))}function ygA(t,e){let A=rA({},e);return Object.entries(t).forEach(([i,n])=>{n!=null&&(A[i]=n)}),A}var _U=class{styles;defaultParams;normalizer;constructor(e,A,i){this.styles=e,this.defaultParams=A,this.normalizer=i}buildStyles(e,A){let i=new Map,n=ygA(e,this.defaultParams);return this.styles.styles.forEach(o=>{typeof o!="string"&&o.forEach((r,s)=>{r&&(r=UQ(r,n,A));let a=this.normalizer.normalizePropertyName(s,A);r=this.normalizer.normalizeStyleValue(s,a,r,A),i.set(s,r)})}),i}};function xVA(t,e,A){return new GU(t,e,A)}var GU=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(e,A,i){this.name=e,this.ast=A,this._normalizer=i,A.states.forEach(n=>{let o=n.options&&n.options.params||{};this.states.set(n.name,new _U(n.style,o,i))}),EgA(this.states,"true","1"),EgA(this.states,"false","0"),A.transitions.forEach(n=>{this.transitionFactories.push(new R7(e,n,this.states))}),this.fallbackTransition=LVA(e,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(e,A,i,n){return this.transitionFactories.find(r=>r.match(e,A,i,n))||null}matchStyles(e,A,i){return this.fallbackTransition.buildStyles(e,A,i)}};function LVA(t,e,A){let i=[(r,s)=>!0],n={type:Ci.Sequence,steps:[],options:null},o={type:Ci.Transition,animation:n,matchers:i,options:null,queryCount:0,depCount:0};return new R7(t,o,e)}function EgA(t,e,A){t.has(e)?t.has(A)||t.set(A,t.get(e)):t.has(A)&&t.set(e,t.get(A))}var FVA=new Kf,UU=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(e,A,i){this.bodyNode=e,this._driver=A,this._normalizer=i}register(e,A){let i=[],n=[],o=wgA(this._driver,A,i,n);if(i.length)throw WlA(i);this._animations.set(e,o)}_buildPlayer(e,A,i){let n=e.element,o=hU(this._normalizer,e.keyframes,A,i);return this._driver.animate(n,o,e.duration,e.delay,e.easing,[],!0)}create(e,A,i={}){let n=[],o=this._animations.get(e),r,s=new Map;if(o?(r=DgA(this._driver,A,o,wU,u7,new Map,new Map,i,FVA,n),r.forEach(l=>{let I=Ya(s,l.element,new Map);l.postStyleProps.forEach(C=>I.set(C,null))})):(n.push(XlA()),r=[]),n.length)throw $lA(n);s.forEach((l,I)=>{l.forEach((C,d)=>{l.set(d,this._driver.computeStyle(I,d,kc))})});let a=r.map(l=>{let I=s.get(l.element);return this._buildPlayer(l,new Map,I)}),c=c2(a);return this._playersById.set(e,c),c.onDestroy(()=>this.destroy(e)),this.players.push(c),c}destroy(e){let A=this._getPlayer(e);A.destroy(),this._playersById.delete(e);let i=this.players.indexOf(A);i>=0&&this.players.splice(i,1)}_getPlayer(e){let A=this._playersById.get(e);if(!A)throw AgA(e);return A}listen(e,A,i,n){let o=Q7(A,"","","");return E7(this._getPlayer(e),i,o,n),()=>{}}command(e,A,i,n){if(i=="register"){this.register(e,n[0]);return}if(i=="create"){let r=n[0]||{};this.create(e,A,r);return}let o=this._getPlayer(e);switch(i){case"play":o.play();break;case"pause":o.pause();break;case"reset":o.reset();break;case"restart":o.restart();break;case"finish":o.finish();break;case"init":o.init();break;case"setPosition":o.setPosition(parseFloat(n[0]));break;case"destroy":this.destroy(e);break}}},QgA="ng-animate-queued",NVA=".ng-animate-queued",MU="ng-animate-disabled",_VA=".ng-animate-disabled",GVA="ng-star-inserted",UVA=".ng-star-inserted",KVA=[],vgA={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},YVA={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Tl="__ng_removed",Yf=class{namespaceId;value;options;get params(){return this.options.params}constructor(e,A=""){this.namespaceId=A;let i=e&&e.hasOwnProperty("value"),n=i?e.value:e;if(this.value=TVA(n),i){let o=e,{value:r}=o,s=J7(o,["value"]);this.options=s}else this.options={};this.options.params||(this.options.params={})}absorbOptions(e){let A=e.params;if(A){let i=this.options.params;Object.keys(A).forEach(n=>{i[n]==null&&(i[n]=A[n])})}}},Uf="void",kU=new Yf(Uf),KU=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(e,A,i){this.id=e,this.hostElement=A,this._engine=i,this._hostClassName="ng-tns-"+e,Zc(A,this._hostClassName)}listen(e,A,i,n){if(!this._triggers.has(A))throw egA(i,A);if(i==null||i.length==0)throw tgA(A);if(!HVA(i))throw igA(i,A);let o=Ya(this._elementListeners,e,[]),r={name:A,phase:i,callback:n};o.push(r);let s=Ya(this._engine.statesByElement,e,new Map);return s.has(A)||(Zc(e,Nf),Zc(e,Nf+"-"+A),s.set(A,kU)),()=>{this._engine.afterFlush(()=>{let a=o.indexOf(r);a>=0&&o.splice(a,1),this._triggers.has(A)||s.delete(A)})}}register(e,A){return this._triggers.has(e)?!1:(this._triggers.set(e,A),!0)}_getTrigger(e){let A=this._triggers.get(e);if(!A)throw ngA(e);return A}trigger(e,A,i,n=!0){let o=this._getTrigger(A),r=new Jf(this.id,A,e),s=this._engine.statesByElement.get(e);s||(Zc(e,Nf),Zc(e,Nf+"-"+A),this._engine.statesByElement.set(e,s=new Map));let a=s.get(A),c=new Yf(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&a&&c.absorbOptions(a.options),s.set(A,c),a||(a=kU),!(c.value===Uf)&&a.value===c.value){if(!PVA(a.params,c.params)){let E=[],h=o.matchStyles(a.value,a.params,E),u=o.matchStyles(c.value,c.params,E);E.length?this._engine.reportError(E):this._engine.afterFlush(()=>{rI(e,h),Jl(e,u)})}return}let C=Ya(this._engine.playersByElement,e,[]);C.forEach(E=>{E.namespaceId==this.id&&E.triggerName==A&&E.queued&&E.destroy()});let d=o.matchTransition(a.value,c.value,e,c.params),B=!1;if(!d){if(!n)return;d=o.fallbackTransition,B=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:A,transition:d,fromState:a,toState:c,player:r,isFallbackTransition:B}),B||(Zc(e,QgA),r.onStart(()=>{KQ(e,QgA)})),r.onDone(()=>{let E=this.players.indexOf(r);E>=0&&this.players.splice(E,1);let h=this._engine.playersByElement.get(e);if(h){let u=h.indexOf(r);u>=0&&h.splice(u,1)}}),this.players.push(r),C.push(r),r}deregister(e){this._triggers.delete(e),this._engine.statesByElement.forEach(A=>A.delete(e)),this._elementListeners.forEach((A,i)=>{this._elementListeners.set(i,A.filter(n=>n.name!=e))})}clearElementCache(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);let A=this._engine.playersByElement.get(e);A&&(A.forEach(i=>i.destroy()),this._engine.playersByElement.delete(e))}_signalRemovalForInnerTriggers(e,A){let i=this._engine.driver.query(e,_f,!0);i.forEach(n=>{if(n[Tl])return;let o=this._engine.fetchNamespacesByElement(n);o.size?o.forEach(r=>r.triggerLeaveAnimation(n,A,!1,!0)):this.clearElementCache(n)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(n=>this.clearElementCache(n)))}triggerLeaveAnimation(e,A,i,n){let o=this._engine.statesByElement.get(e),r=new Map;if(o){let s=[];if(o.forEach((a,c)=>{if(r.set(c,a.value),this._triggers.has(c)){let l=this.trigger(e,c,Uf,n);l&&s.push(l)}}),s.length)return this._engine.markElementAsRemoved(this.id,e,!0,A,r),i&&c2(s).onDone(()=>this._engine.processLeaveNode(e)),!0}return!1}prepareLeaveAnimationListeners(e){let A=this._elementListeners.get(e),i=this._engine.statesByElement.get(e);if(A&&i){let n=new Set;A.forEach(o=>{let r=o.name;if(n.has(r))return;n.add(r);let a=this._triggers.get(r).fallbackTransition,c=i.get(r)||kU,l=new Yf(Uf),I=new Jf(this.id,r,e);this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:r,transition:a,fromState:c,toState:l,player:I,isFallbackTransition:!0})})}}removeNode(e,A){let i=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,A),this.triggerLeaveAnimation(e,A,!0))return;let n=!1;if(i.totalAnimations){let o=i.players.length?i.playersByQueriedElement.get(e):[];if(o&&o.length)n=!0;else{let r=e;for(;r=r.parentNode;)if(i.statesByElement.get(r)){n=!0;break}}}if(this.prepareLeaveAnimationListeners(e),n)i.markElementAsRemoved(this.id,e,!1,A);else{let o=e[Tl];(!o||o===vgA)&&(i.afterFlush(()=>this.clearElementCache(e)),i.destroyInnerAnimations(e),i._onRemovalComplete(e,A))}}insertNode(e,A){Zc(e,this._hostClassName)}drainQueuedTransitions(e){let A=[];return this._queue.forEach(i=>{let n=i.player;if(n.destroyed)return;let o=i.element,r=this._elementListeners.get(o);r&&r.forEach(s=>{if(s.name==i.triggerName){let a=Q7(o,i.triggerName,i.fromState.value,i.toState.value);a._data=e,E7(i.player,s.phase,a,s.callback)}}),n.markedForDestroy?this._engine.afterFlush(()=>{n.destroy()}):A.push(i)}),this._queue=[],A.sort((i,n)=>{let o=i.transition.ast.depCount,r=n.transition.ast.depCount;return o==0||r==0?o-r:this._engine.driver.containsElement(i.element,n.element)?1:-1})}destroy(e){this.players.forEach(A=>A.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,e)}},YU=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(e,A)=>{};_onRemovalComplete(e,A){this.onRemovalComplete(e,A)}constructor(e,A,i){this.bodyNode=e,this.driver=A,this._normalizer=i}get queuedPlayers(){let e=[];return this._namespaceList.forEach(A=>{A.players.forEach(i=>{i.queued&&e.push(i)})}),e}createNamespace(e,A){let i=new KU(e,A,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,A)?this._balanceNamespaceList(i,A):(this.newHostElements.set(A,i),this.collectEnterElement(A)),this._namespaceLookup[e]=i}_balanceNamespaceList(e,A){let i=this._namespaceList,n=this.namespacesByHostElement;if(i.length-1>=0){let r=!1,s=this.driver.getParentElement(A);for(;s;){let a=n.get(s);if(a){let c=i.indexOf(a);i.splice(c+1,0,e),r=!0;break}s=this.driver.getParentElement(s)}r||i.unshift(e)}else i.push(e);return n.set(A,e),e}register(e,A){let i=this._namespaceLookup[e];return i||(i=this.createNamespace(e,A)),i}registerTrigger(e,A,i){let n=this._namespaceLookup[e];n&&n.register(A,i)&&this.totalAnimations++}destroy(e,A){e&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let i=this._fetchNamespace(e);this.namespacesByHostElement.delete(i.hostElement);let n=this._namespaceList.indexOf(i);n>=0&&this._namespaceList.splice(n,1),i.destroy(A),delete this._namespaceLookup[e]}))}_fetchNamespace(e){return this._namespaceLookup[e]}fetchNamespacesByElement(e){let A=new Set,i=this.statesByElement.get(e);if(i){for(let n of i.values())if(n.namespaceId){let o=this._fetchNamespace(n.namespaceId);o&&A.add(o)}}return A}trigger(e,A,i,n){if(y7(A)){let o=this._fetchNamespace(e);if(o)return o.trigger(A,i,n),!0}return!1}insertNode(e,A,i,n){if(!y7(A))return;let o=A[Tl];if(o&&o.setForRemoval){o.setForRemoval=!1,o.setForMove=!0;let r=this.collectedLeaveElements.indexOf(A);r>=0&&this.collectedLeaveElements.splice(r,1)}if(e){let r=this._fetchNamespace(e);r&&r.insertNode(A,i)}n&&this.collectEnterElement(A)}collectEnterElement(e){this.collectedEnterElements.push(e)}markElementAsDisabled(e,A){A?this.disabledNodes.has(e)||(this.disabledNodes.add(e),Zc(e,MU)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),KQ(e,MU))}removeNode(e,A,i){if(y7(A)){let n=e?this._fetchNamespace(e):null;n?n.removeNode(A,i):this.markElementAsRemoved(e,A,!1,i);let o=this.namespacesByHostElement.get(A);o&&o.id!==e&&o.removeNode(A,i)}else this._onRemovalComplete(A,i)}markElementAsRemoved(e,A,i,n,o){this.collectedLeaveElements.push(A),A[Tl]={namespaceId:e,setForRemoval:n,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:o}}listen(e,A,i,n,o){return y7(A)?this._fetchNamespace(e).listen(A,i,n,o):()=>{}}_buildInstruction(e,A,i,n,o){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,i,n,e.fromState.options,e.toState.options,A,o)}destroyInnerAnimations(e){let A=this.driver.query(e,_f,!0);A.forEach(i=>this.destroyActiveAnimationsForElement(i)),this.playersByQueriedElement.size!=0&&(A=this.driver.query(e,f7,!0),A.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(e){let A=this.playersByElement.get(e);A&&A.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(e){let A=this.playersByQueriedElement.get(e);A&&A.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(e=>{if(this.players.length)return c2(this.players).onDone(()=>e());e()})}processLeaveNode(e){let A=e[Tl];if(A&&A.setForRemoval){if(e[Tl]=vgA,A.namespaceId){this.destroyInnerAnimations(e);let i=this._fetchNamespace(A.namespaceId);i&&i.clearElementCache(e)}this._onRemovalComplete(e,A.setForRemoval)}e.classList?.contains(MU)&&this.markElementAsDisabled(e,!1),this.driver.query(e,_VA,!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(e=-1){let A=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,n)=>this._balanceNamespaceList(i,n)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){let i=this._whenQuietFns;this._whenQuietFns=[],A.length?c2(A).onDone(()=>{i.forEach(n=>n())}):i.forEach(n=>n())}}reportError(e){throw ogA(e)}_flushAnimations(e,A){let i=new Kf,n=[],o=new Map,r=[],s=new Map,a=new Map,c=new Map,l=new Set;this.disabledNodes.forEach(lA=>{l.add(lA);let vA=this.driver.query(lA,NVA,!0);for(let tA=0;tA{let tA=wU+E++;B.set(vA,tA),lA.forEach(cA=>Zc(cA,tA))});let h=[],u=new Set,D=new Set;for(let lA=0;lAu.add(cA)):D.add(vA))}let L=new Map,R=fgA(C,Array.from(u));R.forEach((lA,vA)=>{let tA=u7+E++;L.set(vA,tA),lA.forEach(cA=>Zc(cA,tA))}),e.push(()=>{d.forEach((lA,vA)=>{let tA=B.get(vA);lA.forEach(cA=>KQ(cA,tA))}),R.forEach((lA,vA)=>{let tA=L.get(vA);lA.forEach(cA=>KQ(cA,tA))}),h.forEach(lA=>{this.processLeaveNode(lA)})});let w=[],_=[];for(let lA=this._namespaceList.length-1;lA>=0;lA--)this._namespaceList[lA].drainQueuedTransitions(A).forEach(tA=>{let cA=tA.player,pA=tA.element;if(w.push(cA),this.collectedEnterElements.length){let He=pA[Tl];if(He&&He.setForMove){if(He.previousTriggersValues&&He.previousTriggersValues.has(tA.triggerName)){let uA=He.previousTriggersValues.get(tA.triggerName),eA=this.statesByElement.get(tA.element);if(eA&&eA.has(tA.triggerName)){let UA=eA.get(tA.triggerName);UA.value=uA,eA.set(tA.triggerName,UA)}}cA.destroy();return}}let VA=!I||!this.driver.containsElement(I,pA),oe=L.get(pA),KA=B.get(pA),CA=this._buildInstruction(tA,i,KA,oe,VA);if(CA.errors&&CA.errors.length){_.push(CA);return}if(VA){cA.onStart(()=>rI(pA,CA.fromStyles)),cA.onDestroy(()=>Jl(pA,CA.toStyles)),n.push(cA);return}if(tA.isFallbackTransition){cA.onStart(()=>rI(pA,CA.fromStyles)),cA.onDestroy(()=>Jl(pA,CA.toStyles)),n.push(cA);return}let TA=[];CA.timelines.forEach(He=>{He.stretchStartingKeyframe=!0,this.disabledNodes.has(He.element)||TA.push(He)}),CA.timelines=TA,i.append(pA,CA.timelines);let Ze={instruction:CA,player:cA,element:pA};r.push(Ze),CA.queriedElements.forEach(He=>Ya(s,He,[]).push(cA)),CA.preStyleProps.forEach((He,uA)=>{if(He.size){let eA=a.get(uA);eA||a.set(uA,eA=new Set),He.forEach((UA,aA)=>eA.add(aA))}}),CA.postStyleProps.forEach((He,uA)=>{let eA=c.get(uA);eA||c.set(uA,eA=new Set),He.forEach((UA,aA)=>eA.add(aA))})});if(_.length){let lA=[];_.forEach(vA=>{lA.push(rgA(vA.triggerName,vA.errors))}),w.forEach(vA=>vA.destroy()),this.reportError(lA)}let K=new Map,z=new Map;r.forEach(lA=>{let vA=lA.element;i.has(vA)&&(z.set(vA,vA),this._beforeAnimationBuild(lA.player.namespaceId,lA.instruction,K))}),n.forEach(lA=>{let vA=lA.element;this._getPreviousPlayers(vA,!1,lA.namespaceId,lA.triggerName,null).forEach(cA=>{Ya(K,vA,[]).push(cA),cA.destroy()})});let U=h.filter(lA=>mgA(lA,a,c)),H=new Map;ugA(H,this.driver,D,c,kc).forEach(lA=>{mgA(lA,a,c)&&U.push(lA)});let j=new Map;d.forEach((lA,vA)=>{ugA(j,this.driver,new Set(lA),a,FB)}),U.forEach(lA=>{let vA=H.get(lA),tA=j.get(lA);H.set(lA,new Map([...vA?.entries()??[],...tA?.entries()??[]]))});let gA=[],QA=[],BA={};r.forEach(lA=>{let{element:vA,player:tA,instruction:cA}=lA;if(i.has(vA)){if(l.has(vA)){tA.onDestroy(()=>Jl(vA,cA.toStyles)),tA.disabled=!0,tA.overrideTotalTime(cA.totalTime),n.push(tA);return}let pA=BA;if(z.size>1){let oe=vA,KA=[];for(;oe=oe.parentNode;){let CA=z.get(oe);if(CA){pA=CA;break}KA.push(oe)}KA.forEach(CA=>z.set(CA,pA))}let VA=this._buildAnimation(tA.namespaceId,cA,K,o,j,H);if(tA.setRealPlayer(VA),pA===BA)gA.push(tA);else{let oe=this.playersByElement.get(pA);oe&&oe.length&&(tA.parentPlayer=c2(oe)),n.push(tA)}}else rI(vA,cA.fromStyles),tA.onDestroy(()=>Jl(vA,cA.toStyles)),QA.push(tA),l.has(vA)&&n.push(tA)}),QA.forEach(lA=>{let vA=o.get(lA.element);if(vA&&vA.length){let tA=c2(vA);lA.setRealPlayer(tA)}}),n.forEach(lA=>{lA.parentPlayer?lA.syncPlayerEvents(lA.parentPlayer):lA.destroy()});for(let lA=0;lA!VA.destroyed);pA.length?zVA(this,vA,pA):this.processLeaveNode(vA)}return h.length=0,gA.forEach(lA=>{this.players.push(lA),lA.onDone(()=>{lA.destroy();let vA=this.players.indexOf(lA);this.players.splice(vA,1)}),lA.play()}),gA}afterFlush(e){this._flushFns.push(e)}afterFlushAnimationsDone(e){this._whenQuietFns.push(e)}_getPreviousPlayers(e,A,i,n,o){let r=[];if(A){let s=this.playersByQueriedElement.get(e);s&&(r=s)}else{let s=this.playersByElement.get(e);if(s){let a=!o||o==Uf;s.forEach(c=>{c.queued||!a&&c.triggerName!=n||r.push(c)})}}return(i||n)&&(r=r.filter(s=>!(i&&i!=s.namespaceId||n&&n!=s.triggerName))),r}_beforeAnimationBuild(e,A,i){let n=A.triggerName,o=A.element,r=A.isRemovalTransition?void 0:e,s=A.isRemovalTransition?void 0:n;for(let a of A.timelines){let c=a.element,l=c!==o,I=Ya(i,c,[]);this._getPreviousPlayers(c,l,r,s,A.toState).forEach(d=>{let B=d.getRealPlayer();B.beforeDestroy&&B.beforeDestroy(),d.destroy(),I.push(d)})}rI(o,A.fromStyles)}_buildAnimation(e,A,i,n,o,r){let s=A.triggerName,a=A.element,c=[],l=new Set,I=new Set,C=A.timelines.map(B=>{let E=B.element;l.add(E);let h=E[Tl];if(h&&h.removedBeforeQueried)return new Eg(B.duration,B.delay);let u=E!==a,D=OVA((i.get(E)||KVA).map(K=>K.getRealPlayer())).filter(K=>{let z=K;return z.element?z.element===E:!1}),L=o.get(E),R=r.get(E),w=hU(this._normalizer,B.keyframes,L,R),_=this._buildPlayer(B,w,D);if(B.subTimeline&&n&&I.add(E),u){let K=new Jf(e,s,E);K.setRealPlayer(_),c.push(K)}return _});c.forEach(B=>{Ya(this.playersByQueriedElement,B.element,[]).push(B),B.onDone(()=>JVA(this.playersByQueriedElement,B.element,B))}),l.forEach(B=>Zc(B,DU));let d=c2(C);return d.onDestroy(()=>{l.forEach(B=>KQ(B,DU)),Jl(a,A.toStyles)}),I.forEach(B=>{Ya(n,B,[]).push(d)}),d}_buildPlayer(e,A,i){return A.length>0?this.driver.animate(e.element,A,e.duration,e.delay,e.easing,i):new Eg(e.duration,e.delay)}},Jf=class{namespaceId;triggerName;element;_player=new Eg;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(e,A,i){this.namespaceId=e,this.triggerName=A,this.element=i}setRealPlayer(e){this._containsRealPlayer||(this._player=e,this._queuedCallbacks.forEach((A,i)=>{A.forEach(n=>E7(e,i,void 0,n))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(e){this.totalTime=e}syncPlayerEvents(e){let A=this._player;A.triggerCallback&&e.onStart(()=>A.triggerCallback("start")),e.onDone(()=>this.finish()),e.onDestroy(()=>this.destroy())}_queueEvent(e,A){Ya(this._queuedCallbacks,e,[]).push(A)}onDone(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)}onStart(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)}onDestroy(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(e){this.queued||this._player.setPosition(e)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(e){let A=this._player;A.triggerCallback&&A.triggerCallback(e)}};function JVA(t,e,A){let i=t.get(e);if(i){if(i.length){let n=i.indexOf(A);i.splice(n,1)}i.length==0&&t.delete(e)}return i}function TVA(t){return t??null}function y7(t){return t&&t.nodeType===1}function HVA(t){return t=="start"||t=="done"}function hgA(t,e){let A=t.style.display;return t.style.display=e??"none",A}function ugA(t,e,A,i,n){let o=[];A.forEach(a=>o.push(hgA(a)));let r=[];i.forEach((a,c)=>{let l=new Map;a.forEach(I=>{let C=e.computeStyle(c,I,n);l.set(I,C),(!C||C.length==0)&&(c[Tl]=YVA,r.push(c))}),t.set(c,l)});let s=0;return A.forEach(a=>hgA(a,o[s++])),r}function fgA(t,e){let A=new Map;if(t.forEach(s=>A.set(s,[])),e.length==0)return A;let i=1,n=new Set(e),o=new Map;function r(s){if(!s)return i;let a=o.get(s);if(a)return a;let c=s.parentNode;return A.has(c)?a=c:n.has(c)?a=i:a=r(c),o.set(s,a),a}return e.forEach(s=>{let a=r(s);a!==i&&A.get(a).push(s)}),A}function Zc(t,e){t.classList?.add(e)}function KQ(t,e){t.classList?.remove(e)}function zVA(t,e,A){c2(A).onDone(()=>t.processLeaveNode(e))}function OVA(t){let e=[];return bgA(t,e),e}function bgA(t,e){for(let A=0;An.add(o)):e.set(t,i),A.delete(t),!0}var YQ=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(e,A)=>{};constructor(e,A,i){this._driver=A,this._normalizer=i,this._transitionEngine=new YU(e.body,A,i),this._timelineEngine=new UU(e.body,A,i),this._transitionEngine.onRemovalComplete=(n,o)=>this.onRemovalComplete(n,o)}registerTrigger(e,A,i,n,o){let r=e+"-"+n,s=this._triggerCache[r];if(!s){let a=[],c=[],l=wgA(this._driver,o,a,c);if(a.length)throw ZlA(n,a);s=xVA(n,l,this._normalizer),this._triggerCache[r]=s}this._transitionEngine.registerTrigger(A,n,s)}register(e,A){this._transitionEngine.register(e,A)}destroy(e,A){this._transitionEngine.destroy(e,A)}onInsert(e,A,i,n){this._transitionEngine.insertNode(e,A,i,n)}onRemove(e,A,i){this._transitionEngine.removeNode(e,A,i)}disableAnimations(e,A){this._transitionEngine.markElementAsDisabled(e,A)}process(e,A,i,n){if(i.charAt(0)=="@"){let[o,r]=uU(i),s=n;this._timelineEngine.command(o,A,r,s)}else this._transitionEngine.trigger(e,A,i,n)}listen(e,A,i,n,o){if(i.charAt(0)=="@"){let[r,s]=uU(i);return this._timelineEngine.listen(r,A,s,o)}return this._transitionEngine.listen(e,A,i,n,o)}flush(e=-1){this._transitionEngine.flush(e)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(e){this._transitionEngine.afterFlushAnimationsDone(e)}};function jVA(t,e){let A=null,i=null;return Array.isArray(e)&&e.length?(A=SU(e[0]),e.length>1&&(i=SU(e[e.length-1]))):e instanceof Map&&(A=SU(e)),A||i?new qVA(t,A,i):null}var qVA=(()=>{class t{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(A,i,n){this._element=A,this._startStyles=i,this._endStyles=n;let o=t.initialStylesByElement.get(A);o||t.initialStylesByElement.set(A,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&Jl(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Jl(this._element,this._initialStyles),this._endStyles&&(Jl(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(t.initialStylesByElement.delete(this._element),this._startStyles&&(rI(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(rI(this._element,this._endStyles),this._endStyles=null),Jl(this._element,this._initialStyles),this._state=3)}}return t})();function SU(t){let e=null;return t.forEach((A,i)=>{VVA(i)&&(e=e||new Map,e.set(i,A))}),e}function VVA(t){return t==="display"||t==="position"}var x7=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(e,A,i,n){this.element=e,this.keyframes=A,this.options=i,this._specialStyles=n,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;let e=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,e,this.options),this._finalKeyframe=e.length?e[e.length-1]:new Map;let A=()=>this._onFinish();this.domPlayer.addEventListener("finish",A),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",A)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(e){let A=[];return e.forEach(i=>{A.push(Object.fromEntries(i))}),A}_triggerWebAnimation(e,A,i){return e.animate(this._convertKeyframesToObject(A),i)}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(e=>e()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}setPosition(e){this.domPlayer===void 0&&this.init(),this.domPlayer.currentTime=e*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){let e=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,n)=>{n!=="offset"&&e.set(n,this._finished?i:p7(this.element,n))}),this.currentSnapshot=e}triggerCallback(e){let A=e==="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},L7=class{validateStyleProperty(e){return!0}validateAnimatableStyleProperty(e){return!0}containsElement(e,A){return fU(e,A)}getParentElement(e){return h7(e)}query(e,A,i){return mU(e,A,i)}computeStyle(e,A,i){return p7(e,A)}animate(e,A,i,n,o,r=[]){let s=n==0?"both":"forwards",a={duration:i,delay:n,fill:s};o&&(a.easing=o);let c=new Map,l=r.filter(d=>d instanceof x7);lgA(i,n)&&l.forEach(d=>{d.currentSnapshot.forEach((B,E)=>c.set(E,B))});let I=agA(A).map(d=>new Map(d));I=ggA(e,I,c);let C=jVA(e,I);return new x7(e,I,a,C)}};var v7="@",MgA="@.disabled",F7=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(e,A,i,n){this.namespaceId=e,this.delegate=A,this.engine=i,this._onDestroy=n}get data(){return this.delegate.data}destroyNode(e){this.delegate.destroyNode?.(e)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(e,A){return this.delegate.createElement(e,A)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}appendChild(e,A){this.delegate.appendChild(e,A),this.engine.onInsert(this.namespaceId,A,e,!1)}insertBefore(e,A,i,n=!0){this.delegate.insertBefore(e,A,i),this.engine.onInsert(this.namespaceId,A,e,n)}removeChild(e,A,i){this.parentNode(A)&&this.engine.onRemove(this.namespaceId,A,this.delegate)}selectRootElement(e,A){return this.delegate.selectRootElement(e,A)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,A,i,n){this.delegate.setAttribute(e,A,i,n)}removeAttribute(e,A,i){this.delegate.removeAttribute(e,A,i)}addClass(e,A){this.delegate.addClass(e,A)}removeClass(e,A){this.delegate.removeClass(e,A)}setStyle(e,A,i,n){this.delegate.setStyle(e,A,i,n)}removeStyle(e,A,i){this.delegate.removeStyle(e,A,i)}setProperty(e,A,i){A.charAt(0)==v7&&A==MgA?this.disableAnimations(e,!!i):this.delegate.setProperty(e,A,i)}setValue(e,A){this.delegate.setValue(e,A)}listen(e,A,i,n){return this.delegate.listen(e,A,i,n)}disableAnimations(e,A){this.engine.disableAnimations(e,A)}},JU=class extends F7{factory;constructor(e,A,i,n,o){super(A,i,n,o),this.factory=e,this.namespaceId=A}setProperty(e,A,i){A.charAt(0)==v7?A.charAt(1)=="."&&A==MgA?(i=i===void 0?!0:!!i,this.disableAnimations(e,i)):this.engine.process(this.namespaceId,e,A.slice(1),i):this.delegate.setProperty(e,A,i)}listen(e,A,i,n){if(A.charAt(0)==v7){let o=ZVA(e),r=A.slice(1),s="";return r.charAt(0)!=v7&&([r,s]=WVA(r)),this.engine.listen(this.namespaceId,o,r,s,a=>{let c=a._data||-1;this.factory.scheduleListenerCallback(c,i,a)})}return this.delegate.listen(e,A,i,n)}};function ZVA(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}function WVA(t){let e=t.indexOf("."),A=t.substring(0,e),i=t.slice(e+1);return[A,i]}var N7=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(e,A,i){this.delegate=e,this.engine=A,this._zone=i,A.onRemovalComplete=(n,o)=>{o?.removeChild(null,n)}}createRenderer(e,A){let i="",n=this.delegate.createRenderer(e,A);if(!e||!A?.data?.animation){let c=this._rendererCache,l=c.get(n);if(!l){let I=()=>c.delete(n);l=new F7(i,n,this.engine,I),c.set(n,l)}return l}let o=A.id,r=A.id+"-"+this._currentId;this._currentId++,this.engine.register(r,e);let s=c=>{Array.isArray(c)?c.forEach(s):this.engine.registerTrigger(o,r,e,c.name,c)};return A.data.animation.forEach(s),new JU(this,r,n,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(e,A,i){if(e>=0&&eA(i));return}let n=this._animationCallbacksBuffer;n.length==0&&queueMicrotask(()=>{this._zone.run(()=>{n.forEach(o=>{let[r,s]=o;r(s)}),this._animationCallbacksBuffer=[]})}),n.push([A,i])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}componentReplaced(e){this.engine.flush(),this.delegate.componentReplaced?.(e)}};var $VA=(()=>{class t extends YQ{constructor(A,i,n){super(A,i,n)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||t)(we(at),we(ld),we(gd))};static \u0275prov=NA({token:t,factory:t.\u0275fac})}return t})();function AZA(){return new b7}function eZA(t,e,A){return new N7(t,e,A)}var SgA=[{provide:gd,useFactory:AZA},{provide:YQ,useClass:$VA},{provide:ws,useFactory:eZA,deps:[jh,YQ,Qe]}],tZA=[{provide:ld,useClass:TU},{provide:Si,useValue:"NoopAnimations"},...SgA],kgA=[{provide:ld,useFactory:()=>new L7},{provide:Si,useFactory:()=>"BrowserAnimations"},...SgA],_7=(()=>{class t{static withConfig(A){return{ngModule:t,providers:A.disableAnimations?tZA:kgA}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({providers:kgA,imports:[Vh]})}return t})();var iZA=new dA("mat-chips-default-options",{providedIn:"root",factory:()=>({separatorKeyCodes:[13]})});var RgA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({providers:[bB,{provide:iZA,useValue:{separatorKeyCodes:[13]}}],imports:[it,Ps,it]})}return t})();var nZA=["input"],oZA=["formField"],rZA=["*"],zU=class{source;value;constructor(e,A){this.source=e,this.value=A}};var sZA=new dA("MatRadioGroup"),aZA=new dA("mat-radio-default-options",{providedIn:"root",factory:cZA});function cZA(){return{color:"accent",disabledInteractive:!1}}var lZA=(()=>{class t{_elementRef=f(ee);_changeDetector=f(It);_focusMonitor=f(dr);_radioDispatcher=f(xB);_defaultOptions=f(aZA,{optional:!0});_ngZone=f(Qe);_renderer=f(Wi);_uniqueId=f(sn).getId("mat-radio-");_cleanupClick;id=this._uniqueId;name;ariaLabel;ariaLabelledby;ariaDescribedby;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(A){this._checked!==A&&(this._checked=A,A&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!A&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),A&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())}get value(){return this._value}set value(A){this._value!==A&&(this._value=A,this.radioGroup!==null&&(this.checked||(this.checked=this.radioGroup.value===A),this.checked&&(this.radioGroup.selected=this)))}get labelPosition(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"}set labelPosition(A){this._labelPosition=A}_labelPosition;get disabled(){return this._disabled||this.radioGroup!==null&&this.radioGroup.disabled}set disabled(A){this._setDisabled(A)}get required(){return this._required||this.radioGroup&&this.radioGroup.required}set required(A){this._required=A}get color(){return this._color||this.radioGroup&&this.radioGroup.color||this._defaultOptions&&this._defaultOptions.color||"accent"}set color(A){this._color=A}_color;get disabledInteractive(){return this._disabledInteractive||this.radioGroup!==null&&this.radioGroup.disabledInteractive}set disabledInteractive(A){this._disabledInteractive=A}_disabledInteractive;change=new WA;radioGroup;get inputId(){return`${this.id||this._uniqueId}-input`}_checked=!1;_disabled;_required;_value=null;_removeUniqueSelectionListener=()=>{};_previousTabIndex;_inputElement;_rippleTrigger;_noopAnimations;_injector=f(Rt);constructor(){f(Rn).load(lr);let A=f(sZA,{optional:!0}),i=f(Si,{optional:!0}),n=f(new wr("tabindex"),{optional:!0});this.radioGroup=A,this._noopAnimations=i==="NoopAnimations",this._disabledInteractive=this._defaultOptions?.disabledInteractive??!1,n&&(this.tabIndex=zi(n,0))}focus(A,i){i?this._focusMonitor.focusVia(this._inputElement,i,A):this._inputElement.nativeElement.focus(A)}_markForCheck(){this._changeDetector.markForCheck()}ngOnInit(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.checked&&(this.radioGroup.selected=this),this.name=this.radioGroup.name),this._removeUniqueSelectionListener=this._radioDispatcher.listen((A,i)=>{A!==this.id&&i===this.name&&(this.checked=!1)})}ngDoCheck(){this._updateTabIndex()}ngAfterViewInit(){this._updateTabIndex(),this._focusMonitor.monitor(this._elementRef,!0).subscribe(A=>{!A&&this.radioGroup&&this.radioGroup._touch()}),this._ngZone.runOutsideAngular(()=>{this._cleanupClick=this._renderer.listen(this._inputElement.nativeElement,"click",this._onInputClick)})}ngOnDestroy(){this._cleanupClick?.(),this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()}_emitChangeEvent(){this.change.emit(new zU(this,this._value))}_isRippleDisabled(){return this.disableRipple||this.disabled}_onInputInteraction(A){if(A.stopPropagation(),!this.checked&&!this.disabled){let i=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),i&&this.radioGroup._emitChangeEvent())}}_onTouchTargetClick(A){this._onInputInteraction(A),(!this.disabled||this.disabledInteractive)&&this._inputElement?.nativeElement.focus()}_setDisabled(A){this._disabled!==A&&(this._disabled=A,this._changeDetector.markForCheck())}_onInputClick=A=>{this.disabled&&this.disabledInteractive&&A.preventDefault()};_updateTabIndex(){let A=this.radioGroup,i;if(!A||!A.selected||this.disabled?i=this.tabIndex:i=A.selected===this?this.tabIndex:-1,i!==this._previousTabIndex){let n=this._inputElement?.nativeElement;n&&(n.setAttribute("tabindex",i+""),this._previousTabIndex=i,To(()=>{queueMicrotask(()=>{A&&A.selected&&A.selected!==this&&document.activeElement===n&&(A.selected?._inputElement.nativeElement.focus(),document.activeElement===n&&this._inputElement.nativeElement.blur())})},{injector:this._injector}))}}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=zA({type:t,selectors:[["mat-radio-button"]],viewQuery:function(i,n){if(i&1&&(Te(nZA,5),Te(oZA,7,ee)),i&2){let o;XA(o=$A())&&(n._inputElement=o.first),XA(o=$A())&&(n._rippleTrigger=o.first)}},hostAttrs:[1,"mat-mdc-radio-button"],hostVars:19,hostBindings:function(i,n){i&1&&hA("focus",function(){return n._inputElement.nativeElement.focus()}),i&2&&(Ne("id",n.id)("tabindex",null)("aria-label",null)("aria-labelledby",null)("aria-describedby",null),ue("mat-primary",n.color==="primary")("mat-accent",n.color==="accent")("mat-warn",n.color==="warn")("mat-mdc-radio-checked",n.checked)("mat-mdc-radio-disabled",n.disabled)("mat-mdc-radio-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._noopAnimations))},inputs:{id:"id",name:"name",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],disableRipple:[2,"disableRipple","disableRipple",ie],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:zi(A)],checked:[2,"checked","checked",ie],value:"value",labelPosition:"labelPosition",disabled:[2,"disabled","disabled",ie],required:[2,"required","required",ie],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",ie]},outputs:{change:"change"},exportAs:["matRadioButton"],ngContentSelectors:rZA,decls:13,vars:17,consts:[["formField",""],["input",""],["mat-internal-form-field","",3,"labelPosition"],[1,"mdc-radio"],[1,"mat-mdc-radio-touch-target",3,"click"],["type","radio",1,"mdc-radio__native-control",3,"change","id","checked","disabled","required"],[1,"mdc-radio__background"],[1,"mdc-radio__outer-circle"],[1,"mdc-radio__inner-circle"],["mat-ripple","",1,"mat-radio-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mat-ripple-element","mat-radio-persistent-ripple"],[1,"mdc-label",3,"for"]],template:function(i,n){if(i&1){let o=be();jt(),S(0,"div",2,0)(2,"div",3)(3,"div",4),hA("click",function(s){return RA(o),xA(n._onTouchTargetClick(s))}),F(),S(4,"input",5,1),hA("change",function(s){return RA(o),xA(n._onInputInteraction(s))}),F(),S(6,"div",6),JA(7,"div",7)(8,"div",8),F(),S(9,"div",9),JA(10,"div",10),F()(),S(11,"label",11),Fe(12),F()()}i&2&&(yA("labelPosition",n.labelPosition),G(2),ue("mdc-radio--disabled",n.disabled),G(2),yA("id",n.inputId)("checked",n.checked)("disabled",n.disabled&&!n.disabledInteractive)("required",n.required),Ne("name",n.name)("value",n.value)("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby)("aria-describedby",n.ariaDescribedby)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),G(5),yA("matRippleTrigger",n._rippleTrigger.nativeElement)("matRippleDisabled",n._isRippleDisabled())("matRippleCentered",!0),G(2),yA("for",n.inputId))},dependencies:[rs,MB],styles:['.mat-mdc-radio-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-radio-button .mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color;padding:calc((var(--mdc-radio-state-layer-size, 40px) - 20px)/2)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background::before{opacity:.04;transform:scale(1)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled])~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-hover-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-hover-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio:active .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-pressed-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mdc-radio:active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-pressed-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mat-mdc-radio-button .mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:"";transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);width:var(--mdc-radio-state-layer-size, 40px);height:var(--mdc-radio-state-layer-size, 40px);top:calc(-1*(var(--mdc-radio-state-layer-size, 40px) - 20px)/2);left:calc(-1*(var(--mdc-radio-state-layer-size, 40px) - 20px)/2)}.mat-mdc-radio-button .mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%;transition:border-color 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-radio-button .mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%;transition:transform 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-radio-button .mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;top:0;right:0;left:0;cursor:inherit;z-index:1;width:var(--mdc-radio-state-layer-size, 40px);height:var(--mdc-radio-state-layer-size, 40px)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 90ms cubic-bezier(0, 0, 0.2, 1),transform 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{transition:transform 90ms cubic-bezier(0, 0, 0.2, 1),border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 1),transform 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-unselected-icon-opacity, 0.38)}.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background{cursor:default}.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-radio-button .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-radio-button .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__native-control:enabled:focus:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:enabled:focus:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-focus-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle{transform:scale(0.5);transition:transform 90ms cubic-bezier(0, 0, 0.2, 1),border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled{pointer-events:auto}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-unselected-icon-opacity, 0.38)}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled:hover .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled:hover .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:checked:focus+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:checked:focus+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__background::before,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__outer-circle,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__inner-circle{transition:none !important}.mat-mdc-radio-button .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element,.mat-mdc-radio-button.mat-mdc-radio-checked .mdc-radio__background::before{background-color:var(--mat-radio-checked-ripple-color, var(--mat-sys-primary))}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mat-ripple-element,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mat-internal-form-field{color:var(--mat-radio-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-radio-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-radio-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-radio-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-radio-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-radio-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-radio-button .mdc-radio--disabled+label{color:var(--mat-radio-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-radio-button .mat-radio-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:50%}.mat-mdc-radio-button .mat-radio-ripple .mat-ripple-element{opacity:.14}.mat-mdc-radio-button .mat-radio-ripple::before{border-radius:50%}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:focus:enabled:not(:checked)~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button.cdk-focused .mat-focus-indicator::before{content:""}.mat-mdc-radio-disabled{cursor:default;pointer-events:none}.mat-mdc-radio-disabled.mat-mdc-radio-disabled-interactive{pointer-events:auto}.mat-mdc-radio-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-radio-touch-target-display, block)}[dir=rtl] .mat-mdc-radio-touch-target{left:auto;right:50%;transform:translate(50%, -50%)}'],encapsulation:2,changeDetection:0})}return t})(),xgA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[it,Ps,lZA,it]})}return t})();var G7=class t{static \u0275fac=function(A){return new(A||t)};static \u0275mod=Ce({type:t});static \u0275inj=Ie({imports:[f0,B6,LcA,pq,y0,e7,AC,_P,bcA,FcA,GcA,zcA,xgA,u8,hcA,HaA,scA,SlA,f8,qcA,_7,mcA,BlA.forRoot(),ElA,xz,RgA,Bq,ScA,flA]})};var Tf=class t{static \u0275fac=function(A){return new(A||t)};static \u0275mod=Ce({type:t,bootstrap:[_Q]});static \u0275inj=Ie({providers:[Wg,H2,Xg,xQ,LQ,nI,Vc,RQ,O2,$g],imports:[G7,Vh,B6,IM,B7,e7,y0,AC,_7]})};fetch("./assets/config/runtime-config.json").then(t=>t.json()).then(t=>{window.runtimeConfig=t,Wp().bootstrapModule(Tf).catch(e=>console.error(e))});Wp().bootstrapModule(Tf).catch(t=>console.error(t)); diff --git a/src/google/adk/cli/browser/styles-4VDSPQ37.css b/src/google/adk/cli/browser/styles-4VDSPQ37.css deleted file mode 100644 index 05ef49a176..0000000000 --- a/src/google/adk/cli/browser/styles-4VDSPQ37.css +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright 2025 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -html{color-scheme:dark}html{--mat-sys-background: light-dark(#fcf9f8, #131314);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#f3f0f0, #313030);--mat-sys-inverse-primary: light-dark(#c1c7cd, #595f65);--mat-sys-inverse-surface: light-dark(#313030, #e5e2e2);--mat-sys-on-background: light-dark(#1c1b1c, #e5e2e2);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#410002, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #2b3136);--mat-sys-on-primary-container: light-dark(#161c21, #dde3e9);--mat-sys-on-primary-fixed: light-dark(#161c21, #161c21);--mat-sys-on-primary-fixed-variant: light-dark(#41474d, #41474d);--mat-sys-on-secondary: light-dark(#ffffff, #003061);--mat-sys-on-secondary-container: light-dark(#001b3c, #d5e3ff);--mat-sys-on-secondary-fixed: light-dark(#001b3c, #001b3c);--mat-sys-on-secondary-fixed-variant: light-dark(#0f4784, #0f4784);--mat-sys-on-surface: light-dark(#1c1b1c, #e5e2e2);--mat-sys-on-surface-variant: light-dark(#44474a, #e1e2e6);--mat-sys-on-tertiary: light-dark(#ffffff, #2b3136);--mat-sys-on-tertiary-container: light-dark(#161c21, #dde3e9);--mat-sys-on-tertiary-fixed: light-dark(#161c21, #161c21);--mat-sys-on-tertiary-fixed-variant: light-dark(#41474d, #41474d);--mat-sys-outline: light-dark(#74777b, #8e9194);--mat-sys-outline-variant: light-dark(#c4c7ca, #44474a);--mat-sys-primary: light-dark(#595f65, #c1c7cd);--mat-sys-primary-container: light-dark(#dde3e9, #41474d);--mat-sys-primary-fixed: light-dark(#dde3e9, #dde3e9);--mat-sys-primary-fixed-dim: light-dark(#c1c7cd, #c1c7cd);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#305f9d, #a7c8ff);--mat-sys-secondary-container: light-dark(#d5e3ff, #0f4784);--mat-sys-secondary-fixed: light-dark(#d5e3ff, #d5e3ff);--mat-sys-secondary-fixed-dim: light-dark(#a7c8ff, #a7c8ff);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#fcf9f8, #131314);--mat-sys-surface-bright: light-dark(#fcf9f8, #393939);--mat-sys-surface-container: light-dark(#f0eded, #201f20);--mat-sys-surface-container-high: light-dark(#eae7e7, #2a2a2a);--mat-sys-surface-container-highest: light-dark(#e5e2e2, #393939);--mat-sys-surface-container-low: light-dark(#f6f3f3, #1c1b1c);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0e0e0e);--mat-sys-surface-dim: light-dark(#dcd9d9, #131314);--mat-sys-surface-tint: light-dark(#595f65, #c1c7cd);--mat-sys-surface-variant: light-dark(#e1e2e6, #44474a);--mat-sys-tertiary: light-dark(#595f65, #c1c7cd);--mat-sys-tertiary-container: light-dark(#dde3e9, #41474d);--mat-sys-tertiary-fixed: light-dark(#dde3e9, #dde3e9);--mat-sys-tertiary-fixed-dim: light-dark(#c1c7cd, #c1c7cd);--mat-sys-neutral-variant20: #2d3134;--mat-sys-neutral10: #1c1b1c}html{--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px}html{--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}html{font-family:Google Sans,Helvetica Neue,sans-serif!important}body{height:100vh;margin:0}markdown p{margin-block-start:.5em;margin-block-end:.5em}:root{--mat-sys-primary: black;--mdc-checkbox-selected-icon-color: white;--mat-sys-background: #131314;--mat-tab-header-active-label-text-color: #8AB4F8;--mat-tab-header-active-hover-label-text-color: #8AB4F8;--mat-tab-header-active-focus-label-text-color: #8AB4F8;--mat-tab-header-label-text-weight: 500;--mdc-text-button-label-text-color: #89b4f8}:root{--mdc-dialog-container-color: #2b2b2f}:root{--mdc-dialog-subhead-color: white}:root{--mdc-circular-progress-active-indicator-color: #a8c7fa}:root{--mdc-circular-progress-size: 80} diff --git a/src/google/adk/cli/browser/styles-NFETHFZB.css b/src/google/adk/cli/browser/styles-NFETHFZB.css new file mode 100644 index 0000000000..3e096d211d --- /dev/null +++ b/src/google/adk/cli/browser/styles-NFETHFZB.css @@ -0,0 +1 @@ +html{color-scheme:dark}html{--mat-sys-background: light-dark(#fcf9f8, #131314);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#f3f0f0, #313030);--mat-sys-inverse-primary: light-dark(#c1c7cd, #595f65);--mat-sys-inverse-surface: light-dark(#313030, #e5e2e2);--mat-sys-on-background: light-dark(#1c1b1c, #e5e2e2);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#410002, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #2b3136);--mat-sys-on-primary-container: light-dark(#161c21, #dde3e9);--mat-sys-on-primary-fixed: light-dark(#161c21, #161c21);--mat-sys-on-primary-fixed-variant: light-dark(#41474d, #41474d);--mat-sys-on-secondary: light-dark(#ffffff, #003061);--mat-sys-on-secondary-container: light-dark(#001b3c, #d5e3ff);--mat-sys-on-secondary-fixed: light-dark(#001b3c, #001b3c);--mat-sys-on-secondary-fixed-variant: light-dark(#0f4784, #0f4784);--mat-sys-on-surface: light-dark(#1c1b1c, #e5e2e2);--mat-sys-on-surface-variant: light-dark(#44474a, #e1e2e6);--mat-sys-on-tertiary: light-dark(#ffffff, #2b3136);--mat-sys-on-tertiary-container: light-dark(#161c21, #dde3e9);--mat-sys-on-tertiary-fixed: light-dark(#161c21, #161c21);--mat-sys-on-tertiary-fixed-variant: light-dark(#41474d, #41474d);--mat-sys-outline: light-dark(#74777b, #8e9194);--mat-sys-outline-variant: light-dark(#c4c7ca, #44474a);--mat-sys-primary: light-dark(#595f65, #c1c7cd);--mat-sys-primary-container: light-dark(#dde3e9, #41474d);--mat-sys-primary-fixed: light-dark(#dde3e9, #dde3e9);--mat-sys-primary-fixed-dim: light-dark(#c1c7cd, #c1c7cd);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#305f9d, #a7c8ff);--mat-sys-secondary-container: light-dark(#d5e3ff, #0f4784);--mat-sys-secondary-fixed: light-dark(#d5e3ff, #d5e3ff);--mat-sys-secondary-fixed-dim: light-dark(#a7c8ff, #a7c8ff);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#fcf9f8, #131314);--mat-sys-surface-bright: light-dark(#fcf9f8, #393939);--mat-sys-surface-container: light-dark(#f0eded, #201f20);--mat-sys-surface-container-high: light-dark(#eae7e7, #2a2a2a);--mat-sys-surface-container-highest: light-dark(#e5e2e2, #393939);--mat-sys-surface-container-low: light-dark(#f6f3f3, #1c1b1c);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0e0e0e);--mat-sys-surface-dim: light-dark(#dcd9d9, #131314);--mat-sys-surface-tint: light-dark(#595f65, #c1c7cd);--mat-sys-surface-variant: light-dark(#e1e2e6, #44474a);--mat-sys-tertiary: light-dark(#595f65, #c1c7cd);--mat-sys-tertiary-container: light-dark(#dde3e9, #41474d);--mat-sys-tertiary-fixed: light-dark(#dde3e9, #dde3e9);--mat-sys-tertiary-fixed-dim: light-dark(#c1c7cd, #c1c7cd);--mat-sys-neutral-variant20: #2d3134;--mat-sys-neutral10: #1c1b1c}html{--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px}html{--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}html{font-family:Google Sans,Helvetica Neue,sans-serif!important}body{height:100vh;margin:0}markdown p{margin-block-start:.5em;margin-block-end:.5em}:root{--mat-sys-primary: black;--mdc-checkbox-selected-icon-color: white;--mat-sys-background: #131314;--mat-tab-header-active-label-text-color: #8AB4F8;--mat-tab-header-active-hover-label-text-color: #8AB4F8;--mat-tab-header-active-focus-label-text-color: #8AB4F8;--mat-tab-header-label-text-weight: 500;--mdc-text-button-label-text-color: #89b4f8}:root{--mdc-dialog-container-color: #2b2b2f}:root{--mdc-dialog-subhead-color: white}:root{--chat-panel-function-event-button-background-color: white;--chat-panel-function-event-button-highlight-background-color: rgb( 15, 82, 35 );--chat-panel-function-event-button-highlight-border-color: rgb(15, 82, 35);--chat-panel-function-event-button-highlight-color: white;--chat-panel-user-message-message-card-background-color: #004a77;--chat-panel-user-message-message-card-color: white;--chat-panel-bot-message-message-card-background-color: #303030;--chat-panel-bot-message-message-card-color: white;--chat-panel-bot-message-focus-within-message-card-background-color: #131314;--chat-panel-bot-message-focus-within-message-card-border-color: #8ab4f8;--chat-panel-message-textarea-background-color: #303030;--chat-panel-message-textarea-focus-background-color: #131314;--chat-panel-eval-compare-container-background-color: #484848;--chat-panel-actual-result-border-right-color: #8a8686;--chat-panel-eval-response-header-border-bottom-color: #8a8686;--chat-panel-header-expected-color: #44c265;--chat-panel-header-actual-color: #ff8983;--chat-panel-eval-pass-color: #44c265;--chat-panel-eval-fail-color: #ff8983;--chat-panel-input-field-textarea-color: white;--chat-panel-input-field-textarea-placeholder-color: #8e918f;--chat-panel-input-field-button-color: white;--chat-panel-input-field-button-background-color: rgb(51, 53, 55);--chat-panel-mat-mdc-mini-fab-background-color: white;--chat-panel-mat-mdc-mini-fab-mat-icon-color: black;--chat-panel-input-field-mat-mdc-text-field-wrapper-border-color: #8e918f;--chat-panel-delete-button-background-color: rgba(0, 0, 0, .7);--chat-panel-delete-button-color: white;--chat-panel-file-container-background-color: #1e1e1e;--chat-panel-thought-chip-background-color: #8ab4f8;--chat-panel-link-style-button-color: #007bff;--artifact-tab-download-button-background-color: #8ab4f8;--artifact-tab-white-separator-border-top-color: white;--artifact-tab-version-select-container-background-color: #212123;--artifact-tab-link-style-button-color: #007bff;--artifact-tab-link-style-button-hover-color: #0056b3;--artifact-tab-link-style-button-focus-outline-color: #007bff;--artifact-tab-link-style-button-active-color: #004085;--artifact-tab-link-style-button-disabled-color: #6c757d;--audio-player-container-background-color: #f0f0f0;--audio-player-container-box-shadow-color: rgba(0, 0, 0, .1);--audio-player-custom-controls-button-background-color: #007bff;--audio-player-custom-controls-button-color: white;--audio-player-custom-controls-button-hover-background-color: #0056b3;--chat-drawer-container-background-color: #131314;--chat-event-container-color: white;--chat-card-background-color: #131314;--chat-function-event-button-background-color: white;--chat-function-event-button-highlight-background-color: rgb(15, 82, 35);--chat-function-event-button-highlight-border-color: rgb(15, 82, 35);--chat-function-event-button-highlight-color: white;--chat-user-message-message-card-background-color: #004a77;--chat-user-message-message-card-color: white;--chat-bot-message-message-card-background-color: #303030;--chat-bot-message-message-card-color: white;--chat-bot-message-focus-within-message-card-background-color: #131314;--chat-bot-message-focus-within-message-card-border-color: #8ab4f8;--chat-message-textarea-background-color: #303030;--chat-message-textarea-focus-background-color: #131314;--chat-eval-compare-container-background-color: #484848;--chat-actual-result-border-right-color: #8a8686;--chat-eval-response-header-border-bottom-color: #8a8686;--chat-header-expected-color: #44c265;--chat-header-actual-color: #ff8983;--chat-eval-pass-color: #44c265;--chat-eval-fail-color: #ff8983;--chat-side-drawer-background-color: #1b1b1b;--chat-side-drawer-color: white;--chat-file-item-background-color: #eee;--chat-empty-state-container-color: #eee;--chat-warning-color: #ffc185;--chat-error-color: #ff4545;--chat-mat-mdc-unelevated-button-color: #202124;--chat-mat-mdc-unelevated-button-background-color: #8ab4f8;--chat-mdc-linear-progress-buffer-dots-background-color: white;--chat-mat-mdc-text-field-wrapper-border-color: #8e918f;--chat-segment-key-color: lightgray;--chat-bottom-resize-handler-background-color: #5f6368;--chat-trace-detail-container-background-color: #1b1b1b;--chat-toolbar-background-color: #1b1b1b;--chat-toolbar-edit-mode-background-color: #44c2651a;--chat-toolbar-session-text-color: #fdfdfd;--chat-toolbar-session-id-color: #9aa0a6;--chat-toolbar-icon-color: #c4c7c5;--chat-toolbar-new-session-color: #9aa0a6;--chat-toolbar-sse-toggle-label-text-color: #9aa0a6;--chat-toolbar-sse-toggle-selected-track-color: #8ab4f9;--chat-toolbar-sse-toggle-selected-handle-color: #1b73e8;--chat-toolbar-sse-toggle-track-outline-color: #1b73e8;--chat-mat-drawer-border-right-color: #444746;--edit-json-dialog-container-box-shadow-color: rgba(0, 0, 0, .4);--eval-tab-eval-set-actions-color: #9aa0a6;--eval-tab-empty-eval-info-background-color: #202124;--eval-tab-empty-eval-info-box-shadow-color1: rgba(0, 0, 0, .15);--eval-tab-empty-eval-info-box-shadow-color2: rgba(0, 0, 0, .3);--eval-tab-info-title-color: #e8eaed;--eval-tab-info-detail-color: #e8eaed;--eval-tab-info-create-color: #8ab4f8;--eval-tab-selected-eval-case-color: #8ab4f8;--eval-tab-save-session-btn-background-color1: rgba(138, 180, 248, .24);--eval-tab-save-session-btn-background-color2: #202124;--eval-tab-save-session-btn-text-color: #d2e3fc;--eval-tab-run-eval-btn-border-color: #5f6368;--eval-tab-run-eval-btn-color: #8ab4f8;--eval-tab-run-eval-btn-hover-background-color: #202124;--eval-tab-result-btn-border-color: #5f6368;--eval-tab-result-btn-hover-background-color: #202124;--eval-tab-result-btn-pass-color: #44c265;--eval-tab-result-btn-fail-color: #ff8983;--eval-tab-status-card-background-color: #2d2d2d;--eval-tab-status-card-timestamp-color: #e0e0e0;--eval-tab-status-card-metric-color: #bbb;--eval-tab-status-card-failed-color: #ff6b6b;--eval-tab-status-card-separator-color: #666;--eval-tab-status-card-passed-color: #63e6be;--eval-tab-status-card-action-mat-icon-color: #bdbdbd;--eval-tab-status-card-icon-color: #bdbdbd;--run-eval-config-dialog-container-box-shadow-color: rgba(0, 0, 0, .4);--run-eval-config-dialog-threshold-slider-active-track-color: #4285f4;--run-eval-config-dialog-threshold-slider-inactive-track-color: #616161;--run-eval-config-dialog-threshold-slider-handle-color: #4285f4;--run-eval-config-dialog-threshold-slider-ripple-color: #4285f4;--run-eval-config-dialog-mdc-slider-thumb-background-color: black;--event-tab-events-wrapper-color: #9aa0a6;--event-tab-event-index-color: #80868b;--event-tab-event-list-active-indicator-color: orange;--event-tab-event-list-list-item-container-color: #2b2b2f;--event-tab-mdc-list-item-border-color: #5f6368;--event-tab-mdc-list-item-hover-background-color: #1c1b1c;--trace-chart-trace-label-color: #e3e3e3;--trace-chart-trace-bar-background-color: #2f4d65;--trace-chart-trace-bar-color: #8dabbf;--trace-chart-trace-duration-color: #888;--trace-chart-vertical-line-background-color: #ccc;--trace-chart-horizontal-line-background-color: #ccc;--session-tab-session-wrapper-color: #9aa0a6;--session-tab-session-item-background-color: #303030;--session-tab-session-item-hover-background-color: #141414;--session-tab-session-item-current-background-color: #004a77;--session-tab-session-id-color: #e8eaed;--session-tab-session-date-color: #9aa0a6;--side-panel-button-filled-container-color: #89b4f8;--side-panel-button-filled-label-text-color: black;--side-panel-mat-icon-color: #bdc1c6;--side-panel-resize-handler-background-color: #5f6368;--side-panel-details-panel-container-background-color: #242424;--side-panel-details-content-color: white;--side-panel-powered-by-adk-color: grey;--side-panel-app-select-container-background-color: #212123;--side-panel-select-placeholder-text-color: #8ab4f8;--side-panel-select-enabled-trigger-text-color: #8ab4f8;--side-panel-select-enabled-arrow-color: #8ab4f8;--side-panel-app-name-option-color: #9aa0a6;--trace-tab-trace-title-color: #9aa0a6;--trace-tab-trace-label-color: #e3e3e3;--trace-tab-trace-bar-background-color: #2f4d65;--trace-tab-trace-bar-color: #8dabbf;--trace-tab-trace-duration-color: #888;--trace-tab-vertical-line-background-color: #ccc;--trace-tab-horizontal-line-background-color: #ccc;--trace-tab-trace-item-container-background-color: #333537;--trace-tab-trace-item-header-focus-state-layer-color: red;--trace-tab-trace-item-header-description-color: #8e918f;--trace-tab-mat-expansion-panel-header-focus-background-color: #444746;--trace-tab-mat-expansion-panel-header-background-color: #444746;--trace-tab-mat-expansion-panel-header-hover-background-color: #444746;--trace-event-json-viewer-container-background-color: #1b1b1b;--trace-tree-trace-label-color: #e3e3e3;--trace-tree-trace-bar-background-color: #2f4d65;--trace-tree-trace-bar-color: #8dabbf;--trace-tree-short-trace-bar-duration-color: #8dabbf;--trace-tree-trace-duration-color: #888;--trace-tree-trace-row-hover-background-color: #3b3d3c;--trace-tree-trace-row-selected-background-color: #3b3d3c;--trace-tree-vertical-line-background-color: #ccc;--trace-tree-horizontal-line-background-color: #ccc;--trace-tree-invocation-id-container-color: #9aa0a6;--trace-tree-trace-row-left-span-div-color: white;--trace-tree-trace-row-left-is-event-row-color: #8ab4f8}:root{--mdc-circular-progress-active-indicator-color: #a8c7fa}:root{--mdc-circular-progress-size: 80} From 7d5c6b9acf0721dd230f08df919c7409eed2b7d0 Mon Sep 17 00:00:00 2001 From: "Wei Sun (Jack)" Date: Tue, 21 Oct 2025 18:31:18 -0700 Subject: [PATCH 150/303] fix: Fixes the identity prompt to be one line and add ending period after description statement From ``` You are an agent. Your internal name is "agent". The description about you is "test description" ``` to ``` You are an agent. Your internal name is "agent". The description about you is "test description". ``` PiperOrigin-RevId: 822358196 --- src/google/adk/flows/llm_flows/identity.py | 6 +++--- tests/unittests/flows/llm_flows/test_identity.py | 9 +++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/google/adk/flows/llm_flows/identity.py b/src/google/adk/flows/llm_flows/identity.py index 9a9482159e..1b026c513e 100644 --- a/src/google/adk/flows/llm_flows/identity.py +++ b/src/google/adk/flows/llm_flows/identity.py @@ -34,10 +34,10 @@ async def run_async( self, invocation_context: InvocationContext, llm_request: LlmRequest ) -> AsyncGenerator[Event, None]: agent = invocation_context.agent - si = [f'You are an agent. Your internal name is "{agent.name}".'] + si = f'You are an agent. Your internal name is "{agent.name}".' if agent.description: - si.append(f' The description about you is "{agent.description}"') - llm_request.append_instructions(si) + si += f' The description about you is "{agent.description}".' + llm_request.append_instructions([si]) # Maintain async generator behavior if False: # Ensures it behaves as a generator diff --git a/tests/unittests/flows/llm_flows/test_identity.py b/tests/unittests/flows/llm_flows/test_identity.py index cb0239b752..62557613bb 100644 --- a/tests/unittests/flows/llm_flows/test_identity.py +++ b/tests/unittests/flows/llm_flows/test_identity.py @@ -64,7 +64,8 @@ async def test_with_description(): ): pass - assert request.config.system_instruction == "\n\n".join([ - 'You are an agent. Your internal name is "agent".', - ' The description about you is "test description"', - ]) + assert ( + request.config.system_instruction + == """\ +You are an agent. Your internal name is "agent". The description about you is "test description".""" + ) From d4dc6454783f747120d407d0dc2cb78f53598d83 Mon Sep 17 00:00:00 2001 From: "Wei Sun (Jack)" Date: Tue, 21 Oct 2025 19:42:10 -0700 Subject: [PATCH 151/303] chore: Fixes MCPToolset --> McpToolset in various places PiperOrigin-RevId: 822377517 --- src/google/adk/agents/llm_agent_config.py | 2 +- src/google/adk/tools/__init__.py | 2 ++ src/google/adk/tools/mcp_tool/mcp_toolset.py | 20 +++++++++---------- .../tools/mcp_tool/test_mcp_toolset.py | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/google/adk/agents/llm_agent_config.py b/src/google/adk/agents/llm_agent_config.py index 4203a5923b..7d2493597e 100644 --- a/src/google/adk/agents/llm_agent_config.py +++ b/src/google/adk/agents/llm_agent_config.py @@ -143,7 +143,7 @@ class LlmAgentConfig(BaseAgentConfig): ``` # tools.py - my_mcp_toolset = MCPToolset( + my_mcp_toolset = McpToolset( connection_params=StdioServerParameters( command="npx", args=["-y", "@notionhq/notion-mcp-server"], diff --git a/src/google/adk/tools/__init__.py b/src/google/adk/tools/__init__.py index 50d01dfe3a..f5250d0a17 100644 --- a/src/google/adk/tools/__init__.py +++ b/src/google/adk/tools/__init__.py @@ -67,7 +67,9 @@ ) else: from .mcp_tool.mcp_toolset import MCPToolset + from .mcp_tool.mcp_toolset import McpToolset __all__.extend([ 'MCPToolset', + 'McpToolset', ]) diff --git a/src/google/adk/tools/mcp_tool/mcp_toolset.py b/src/google/adk/tools/mcp_tool/mcp_toolset.py index 06c57a452f..dff67eb628 100644 --- a/src/google/adk/tools/mcp_tool/mcp_toolset.py +++ b/src/google/adk/tools/mcp_tool/mcp_toolset.py @@ -16,8 +16,6 @@ import logging import sys -from typing import Any -from typing import AsyncIterator from typing import Callable from typing import Dict from typing import List @@ -73,7 +71,7 @@ class McpToolset(BaseToolset): Usage:: - toolset = MCPToolset( + toolset = McpToolset( connection_params=StdioServerParameters( command='npx', args=["-y", "@modelcontextprotocol/server-filesystem"], @@ -113,7 +111,7 @@ def __init__( Callable[[ReadonlyContext], Dict[str, str]] ] = None, ): - """Initializes the MCPToolset. + """Initializes the McpToolset. Args: connection_params: The connection parameters to the MCP server. Can be: @@ -141,7 +139,7 @@ def __init__( super().__init__(tool_filter=tool_filter, tool_name_prefix=tool_name_prefix) if not connection_params: - raise ValueError("Missing connection params in MCPToolset.") + raise ValueError("Missing connection params in McpToolset.") self._connection_params = connection_params self._errlog = errlog @@ -208,14 +206,14 @@ async def close(self) -> None: await self._mcp_session_manager.close() except Exception as e: # Log the error but don't re-raise to avoid blocking shutdown - print(f"Warning: Error during MCPToolset cleanup: {e}", file=self._errlog) + print(f"Warning: Error during McpToolset cleanup: {e}", file=self._errlog) @override @classmethod def from_config( - cls: type[MCPToolset], config: ToolArgsConfig, config_abs_path: str - ) -> MCPToolset: - """Creates an MCPToolset from a configuration object.""" + cls: type[McpToolset], config: ToolArgsConfig, config_abs_path: str + ) -> McpToolset: + """Creates an McpToolset from a configuration object.""" mcp_toolset_config = McpToolsetConfig.model_validate(config.model_dump()) if mcp_toolset_config.stdio_server_params: @@ -227,7 +225,7 @@ def from_config( elif mcp_toolset_config.streamable_http_connection_params: connection_params = mcp_toolset_config.streamable_http_connection_params else: - raise ValueError("No connection params found in MCPToolsetConfig.") + raise ValueError("No connection params found in McpToolsetConfig.") return cls( connection_params=connection_params, @@ -251,7 +249,7 @@ def __init__(self, *args, **kwargs): class McpToolsetConfig(BaseToolConfig): - """The config for MCPToolset.""" + """The config for McpToolset.""" stdio_server_params: Optional[StdioServerParameters] = None diff --git a/tests/unittests/tools/mcp_tool/test_mcp_toolset.py b/tests/unittests/tools/mcp_tool/test_mcp_toolset.py index 37b23d998c..8f43a3d691 100644 --- a/tests/unittests/tools/mcp_tool/test_mcp_toolset.py +++ b/tests/unittests/tools/mcp_tool/test_mcp_toolset.py @@ -301,7 +301,7 @@ async def test_close_with_exception(self): # Should log the error error_output = custom_errlog.getvalue() - assert "Warning: Error during MCPToolset cleanup" in error_output + assert "Warning: Error during McpToolset cleanup" in error_output assert "Cleanup error" in error_output @pytest.mark.asyncio From 4df926388b6e9ebcf517fbacf2f5532fd73b0f71 Mon Sep 17 00:00:00 2001 From: "Wei Sun (Jack)" Date: Wed, 22 Oct 2025 00:57:31 -0700 Subject: [PATCH 152/303] fix: Returns dict as result from McpTool The `BaseTool` expects the run_async to return a json-serializable object. By model_dump the McpTool result explicitly can allow what ADK runtime sees is identical to what is persisted in the session event list. Before the change, runtime sees CallToolResult instance and Session persists its serialized dict. https://github.com/modelcontextprotocol/python-sdk/blob/main/src/mcp/types.py#L916-L922 PiperOrigin-RevId: 822465432 --- src/google/adk/tools/mcp_tool/mcp_tool.py | 8 +-- .../unittests/tools/mcp_tool/test_mcp_tool.py | 59 ++++++++++++------- 2 files changed, 42 insertions(+), 25 deletions(-) diff --git a/src/google/adk/tools/mcp_tool/mcp_tool.py b/src/google/adk/tools/mcp_tool/mcp_tool.py index 545f81ee3b..09737f09de 100644 --- a/src/google/adk/tools/mcp_tool/mcp_tool.py +++ b/src/google/adk/tools/mcp_tool/mcp_tool.py @@ -80,7 +80,7 @@ def __init__( Callable[[ReadonlyContext], Dict[str, str]] ] = None, ): - """Initializes an MCPTool. + """Initializes an McpTool. This tool wraps an MCP Tool interface and uses a session manager to communicate with the MCP server. @@ -186,7 +186,7 @@ async def run_async( @override async def _run_async_impl( self, *, args, tool_context: ToolContext, credential: AuthCredential - ): + ) -> Dict[str, Any]: """Runs the tool asynchronously. Args: @@ -217,7 +217,7 @@ async def _run_async_impl( ) response = await session.call_tool(self._mcp_tool.name, arguments=args) - return response + return response.model_dump(exclude_none=True, mode="json") async def _get_headers( self, tool_context: ToolContext, credential: AuthCredential @@ -282,7 +282,7 @@ async def _get_headers( != APIKeyIn.header ): error_msg = ( - "MCPTool only supports header-based API key authentication." + "McpTool only supports header-based API key authentication." " Configured location:" f" {self._credentials_manager._auth_config.auth_scheme.in_}" ) diff --git a/tests/unittests/tools/mcp_tool/test_mcp_tool.py b/tests/unittests/tools/mcp_tool/test_mcp_tool.py index 37c2df8975..3408bfa39e 100644 --- a/tests/unittests/tools/mcp_tool/test_mcp_tool.py +++ b/tests/unittests/tools/mcp_tool/test_mcp_tool.py @@ -36,6 +36,8 @@ from google.adk.tools.mcp_tool.mcp_tool import MCPTool from google.adk.tools.tool_context import ToolContext from google.genai.types import FunctionDeclaration + from mcp.types import CallToolResult + from mcp.types import TextContent except ImportError as e: if sys.version_info < (3, 10): # Create dummy classes to prevent NameError during test collection @@ -47,6 +49,8 @@ class DummyClass: MCPTool = DummyClass ToolContext = DummyClass FunctionDeclaration = DummyClass + CallToolResult = DummyClass + TextContent = DummyClass else: raise e @@ -150,9 +154,11 @@ async def test_run_async_impl_no_auth(self): mcp_session_manager=self.mock_session_manager, ) - # Mock the session response - expected_response = {"result": "success"} - self.mock_session.call_tool = AsyncMock(return_value=expected_response) + # Mock the session response - must return CallToolResult + mcp_response = CallToolResult( + content=[TextContent(type="text", text="success")] + ) + self.mock_session.call_tool = AsyncMock(return_value=mcp_response) tool_context = Mock(spec=ToolContext) args = {"param1": "test_value"} @@ -161,7 +167,8 @@ async def test_run_async_impl_no_auth(self): args=args, tool_context=tool_context, credential=None ) - assert result == expected_response + # Verify the result matches the model_dump output + assert result == mcp_response.model_dump(exclude_none=True, mode="json") self.mock_session_manager.create_session.assert_called_once_with( headers=None ) @@ -184,9 +191,11 @@ async def test_run_async_impl_with_oauth2(self): auth_type=AuthCredentialTypes.OAUTH2, oauth2=oauth2_auth ) - # Mock the session response - expected_response = {"result": "success"} - self.mock_session.call_tool = AsyncMock(return_value=expected_response) + # Mock the session response - must return CallToolResult + mcp_response = CallToolResult( + content=[TextContent(type="text", text="success")] + ) + self.mock_session.call_tool = AsyncMock(return_value=mcp_response) tool_context = Mock(spec=ToolContext) args = {"param1": "test_value"} @@ -195,7 +204,7 @@ async def test_run_async_impl_with_oauth2(self): args=args, tool_context=tool_context, credential=credential ) - assert result == expected_response + assert result == mcp_response.model_dump(exclude_none=True, mode="json") # Check that headers were passed correctly self.mock_session_manager.create_session.assert_called_once() call_args = self.mock_session_manager.create_session.call_args @@ -322,7 +331,7 @@ async def test_get_headers_api_key_with_query_scheme_raises_error(self): with pytest.raises( ValueError, - match="MCPTool only supports header-based API key authentication", + match="McpTool only supports header-based API key authentication", ): await tool._get_headers(tool_context, auth_credential) @@ -354,7 +363,7 @@ async def test_get_headers_api_key_with_cookie_scheme_raises_error(self): with pytest.raises( ValueError, - match="MCPTool only supports header-based API key authentication", + match="McpTool only supports header-based API key authentication", ): await tool._get_headers(tool_context, auth_credential) @@ -460,9 +469,11 @@ async def test_run_async_impl_with_api_key_header_auth(self): auth_credential=auth_credential, ) - # Mock the session response - expected_response = {"result": "authenticated_success"} - self.mock_session.call_tool = AsyncMock(return_value=expected_response) + # Mock the session response - must return CallToolResult + mcp_response = CallToolResult( + content=[TextContent(type="text", text="authenticated_success")] + ) + self.mock_session.call_tool = AsyncMock(return_value=mcp_response) tool_context = Mock(spec=ToolContext) args = {"param1": "test_value"} @@ -471,7 +482,7 @@ async def test_run_async_impl_with_api_key_header_auth(self): args=args, tool_context=tool_context, credential=auth_credential ) - assert result == expected_response + assert result == mcp_response.model_dump(exclude_none=True, mode="json") # Check that headers were passed correctly with custom API key header self.mock_session_manager.create_session.assert_called_once() call_args = self.mock_session_manager.create_session.call_args @@ -545,7 +556,7 @@ async def test_get_headers_api_key_error_logging(self): mock_logger.error.assert_called_once() logged_message = mock_logger.error.call_args[0][0] assert ( - "MCPTool only supports header-based API key authentication" + "McpTool only supports header-based API key authentication" in logged_message ) @@ -652,8 +663,11 @@ async def test_run_async_impl_with_header_provider_no_auth(self): header_provider=header_provider, ) - expected_response = {"result": "success"} - self.mock_session.call_tool = AsyncMock(return_value=expected_response) + # Mock the session response - must return CallToolResult + mcp_response = CallToolResult( + content=[TextContent(type="text", text="success")] + ) + self.mock_session.call_tool = AsyncMock(return_value=mcp_response) tool_context = Mock(spec=ToolContext) tool_context._invocation_context = Mock() @@ -663,7 +677,7 @@ async def test_run_async_impl_with_header_provider_no_auth(self): args=args, tool_context=tool_context, credential=None ) - assert result == expected_response + assert result == mcp_response.model_dump(exclude_none=True, mode="json") header_provider.assert_called_once() self.mock_session_manager.create_session.assert_called_once_with( headers=expected_headers @@ -688,8 +702,11 @@ async def test_run_async_impl_with_header_provider_and_oauth2(self): auth_type=AuthCredentialTypes.OAUTH2, oauth2=oauth2_auth ) - expected_response = {"result": "success"} - self.mock_session.call_tool = AsyncMock(return_value=expected_response) + # Mock the session response - must return CallToolResult + mcp_response = CallToolResult( + content=[TextContent(type="text", text="success")] + ) + self.mock_session.call_tool = AsyncMock(return_value=mcp_response) tool_context = Mock(spec=ToolContext) tool_context._invocation_context = Mock() @@ -699,7 +716,7 @@ async def test_run_async_impl_with_header_provider_and_oauth2(self): args=args, tool_context=tool_context, credential=credential ) - assert result == expected_response + assert result == mcp_response.model_dump(exclude_none=True, mode="json") header_provider.assert_called_once() self.mock_session_manager.create_session.assert_called_once() call_args = self.mock_session_manager.create_session.call_args From 2f4f5611bdb30bd5eb2fdb3a70f43d748371392f Mon Sep 17 00:00:00 2001 From: Alexey Guseynov Date: Wed, 22 Oct 2025 02:39:35 -0700 Subject: [PATCH 153/303] fix:Remove unnecessary Aclosing PiperOrigin-RevId: 822496695 --- src/google/adk/agents/base_agent.py | 56 ++++++++++++----------------- 1 file changed, 23 insertions(+), 33 deletions(-) diff --git a/src/google/adk/agents/base_agent.py b/src/google/adk/agents/base_agent.py index 88cd05f275..4e441a03d6 100644 --- a/src/google/adk/agents/base_agent.py +++ b/src/google/adk/agents/base_agent.py @@ -282,27 +282,22 @@ async def run_async( Event: the events generated by the agent. """ - async def _run_with_trace() -> AsyncGenerator[Event, None]: - with tracer.start_as_current_span(f'invoke_agent {self.name}') as span: - ctx = self._create_invocation_context(parent_context) - tracing.trace_agent_invocation(span, self, ctx) - if event := await self._handle_before_agent_callback(ctx): - yield event - if ctx.end_invocation: - return - - async with Aclosing(self._run_async_impl(ctx)) as agen: - async for event in agen: - yield event - - if ctx.end_invocation: - return + with tracer.start_as_current_span(f'invoke_agent {self.name}') as span: + ctx = self._create_invocation_context(parent_context) + tracing.trace_agent_invocation(span, self, ctx) + if event := await self._handle_before_agent_callback(ctx): + yield event + if ctx.end_invocation: + return - if event := await self._handle_after_agent_callback(ctx): + async with Aclosing(self._run_async_impl(ctx)) as agen: + async for event in agen: yield event - async with Aclosing(_run_with_trace()) as agen: - async for event in agen: + if ctx.end_invocation: + return + + if event := await self._handle_after_agent_callback(ctx): yield event @final @@ -320,24 +315,19 @@ async def run_live( Event: the events generated by the agent. """ - async def _run_with_trace() -> AsyncGenerator[Event, None]: - with tracer.start_as_current_span(f'invoke_agent {self.name}') as span: - ctx = self._create_invocation_context(parent_context) - tracing.trace_agent_invocation(span, self, ctx) - if event := await self._handle_before_agent_callback(ctx): - yield event - if ctx.end_invocation: - return - - async with Aclosing(self._run_live_impl(ctx)) as agen: - async for event in agen: - yield event + with tracer.start_as_current_span(f'invoke_agent {self.name}') as span: + ctx = self._create_invocation_context(parent_context) + tracing.trace_agent_invocation(span, self, ctx) + if event := await self._handle_before_agent_callback(ctx): + yield event + if ctx.end_invocation: + return - if event := await self._handle_after_agent_callback(ctx): + async with Aclosing(self._run_live_impl(ctx)) as agen: + async for event in agen: yield event - async with Aclosing(_run_with_trace()) as agen: - async for event in agen: + if event := await self._handle_after_agent_callback(ctx): yield event async def _run_async_impl( From 272481962293e54c7576ce901f97585ee3e28a50 Mon Sep 17 00:00:00 2001 From: Yifan Wang Date: Wed, 22 Oct 2025 12:26:43 -0700 Subject: [PATCH 154/303] chore: update adk web, fixing cursor color, and thought bubble PiperOrigin-RevId: 822693836 --- src/google/adk/cli/browser/index.html | 2 +- .../{main-FFZEKOTG.js => main-MIUNGJ3Y.js} | 212 +++++++++--------- .../adk/cli/browser/polyfills-B6TNHZQ6.js | 15 -- 3 files changed, 107 insertions(+), 122 deletions(-) rename src/google/adk/cli/browser/{main-FFZEKOTG.js => main-MIUNGJ3Y.js} (94%) diff --git a/src/google/adk/cli/browser/index.html b/src/google/adk/cli/browser/index.html index 0b82ed6622..f029c8310f 100644 --- a/src/google/adk/cli/browser/index.html +++ b/src/google/adk/cli/browser/index.html @@ -30,5 +30,5 @@ - + diff --git a/src/google/adk/cli/browser/main-FFZEKOTG.js b/src/google/adk/cli/browser/main-MIUNGJ3Y.js similarity index 94% rename from src/google/adk/cli/browser/main-FFZEKOTG.js rename to src/google/adk/cli/browser/main-MIUNGJ3Y.js index 2420b14964..7d9bb653b2 100644 --- a/src/google/adk/cli/browser/main-FFZEKOTG.js +++ b/src/google/adk/cli/browser/main-MIUNGJ3Y.js @@ -1,33 +1,33 @@ import{a as sA,b as Fe,c as pv,d as He,e as $Q,f as Ni}from"./chunk-EQDQRRRY.js";var gV=He(MR=>{"use strict";var cV={b:"\b",f:"\f",n:` -`,r:"\r",t:" ",'"':'"',"/":"/","\\":"\\"},e6A=97;MR.parse=function(t,e,A){var i={},n=0,o=0,r=0,s=A&&A.bigint&&typeof BigInt<"u";return{data:a("",!0),pointers:i};function a(K,O){c();var V;x(K,"value");var j=E();switch(j){case"t":B("rue"),V=!0;break;case"f":B("alse"),V=!1;break;case"n":B("ull"),V=null;break;case'"':V=g();break;case"[":V=C(K);break;case"{":V=d(K);break;default:u(),"-0123456789".indexOf(j)>=0?V=I():G()}return x(K,"valueEnd"),c(),O&&rNumber.MAX_SAFE_INTEGER||V="a"&&V<="f"?O+=V.charCodeAt()-e6A+10:V>="0"&&V<="9"?O+=+V:J()}return String.fromCharCode(O)}function w(){for(var K="";t[r]>="0"&&t[r]<="9";)K+=E();if(K.length)return K;z(),G()}function x(K,O){R(K,O,D())}function R(K,O,V){i[K]=i[K]||{},i[K][O]=V}function D(){return{line:n,column:o,pos:r}}function G(){throw new SyntaxError("Unexpected token "+t[r]+" in JSON at position "+r)}function J(){u(),G()}function z(){if(r>=t.length)throw new SyntaxError("Unexpected end of JSON input")}};MR.stringify=function(t,e,A){if(!X8(t))return;var i=0,n,o,r=typeof A=="object"?A.space:A;switch(typeof r){case"number":var s=r>10?10:r<0?0:Math.floor(r);r=s&&R(s," "),n=s,o=s;break;case"string":r=r.slice(0,10),n=0,o=0;for(var a=0;a=0?V=I():G()}return x(K,"valueEnd"),c(),O&&rNumber.MAX_SAFE_INTEGER||V="a"&&V<="f"?O+=V.charCodeAt()-i6A+10:V>="0"&&V<="9"?O+=+V:J()}return String.fromCharCode(O)}function w(){for(var K="";t[r]>="0"&&t[r]<="9";)K+=E();if(K.length)return K;z(),G()}function x(K,O){R(K,O,D())}function R(K,O,V){i[K]=i[K]||{},i[K][O]=V}function D(){return{line:n,column:o,pos:r}}function G(){throw new SyntaxError("Unexpected token "+t[r]+" in JSON at position "+r)}function J(){u(),G()}function z(){if(r>=t.length)throw new SyntaxError("Unexpected end of JSON input")}};MR.stringify=function(t,e,A){if(!X8(t))return;var i=0,n,o,r=typeof A=="object"?A.space:A;switch(typeof r){case"number":var s=r>10?10:r<0?0:Math.floor(r);r=s&&R(s," "),n=s,o=s;break;case"string":r=r.slice(0,10),n=0,o=0;for(var a=0;a=0}var i6A=/"|\\/g,n6A=/[\b]/g,o6A=/\f/g,r6A=/\n/g,s6A=/\r/g,a6A=/\t/g;function $8(t){return t=t.replace(i6A,"\\$&").replace(o6A,"\\f").replace(n6A,"\\b").replace(r6A,"\\n").replace(s6A,"\\r").replace(a6A,"\\t"),'"'+t+'"'}var c6A=/~/g,g6A=/\//g;function vR(t){return t.replace(c6A,"~0").replace(g6A,"~1")}});var SX=He((i8e,kX)=>{"use strict";var bX=function(t,e){var A,i,n=1,o=0,r=0,s=String.alphabet;function a(c,g,I){if(I){for(A=g;I=a(c,A),I<76&&I>65;)++A;return+c.slice(g-1,A)}return I=s&&s.indexOf(c.charAt(g)),I>-1?I+76:(I=c.charCodeAt(g)||0,I<45||I>127?I:I<46?65:I<48?I-1:I<58?I+18:I<65?I-11:I<91?I+11:I<97?I-37:I<123?I+5:I-63)}if((t+="")!=(e+="")){for(;n;)if(i=a(t,o++),n=a(e,r++),i<76&&n<76&&i>66&&n>66&&(i=a(t,o,o),n=a(e,r,o=A),r=A),i!=n)return i{"use strict";Object.defineProperty(Dn,"__esModule",{value:!0});Dn.regexpCode=Dn.getEsmExportName=Dn.getProperty=Dn.safeStringify=Dn.stringify=Dn.strConcat=Dn.addCodeArg=Dn.str=Dn._=Dn.nil=Dn._Code=Dn.Name=Dn.IDENTIFIER=Dn._CodeOrName=void 0;var f4=class{};Dn._CodeOrName=f4;Dn.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var uC=class extends f4{constructor(e){if(super(),!Dn.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};Dn.Name=uC;var Hc=class extends f4{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((A,i)=>`${A}${i}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((A,i)=>(i instanceof uC&&(A[i.str]=(A[i.str]||0)+1),A),{})}};Dn._Code=Hc;Dn.nil=new Hc("");function LX(t,...e){let A=[t[0]],i=0;for(;i{"use strict";Object.defineProperty(Ra,"__esModule",{value:!0});Ra.ValueScope=Ra.ValueScopeName=Ra.Scope=Ra.varKinds=Ra.UsedValueState=void 0;var Sa=p4(),IL=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},J5=function(t){return t[t.Started=0]="Started",t[t.Completed=1]="Completed",t}(J5||(Ra.UsedValueState=J5={}));Ra.varKinds={const:new Sa.Name("const"),let:new Sa.Name("let"),var:new Sa.Name("var")};var Y5=class{constructor({prefixes:e,parent:A}={}){this._names={},this._prefixes=e,this._parent=A}toName(e){return e instanceof Sa.Name?e:this.name(e)}name(e){return new Sa.Name(this._newName(e))}_newName(e){let A=this._names[e]||this._nameGroup(e);return`${e}${A.index++}`}_nameGroup(e){var A,i;if(!((i=(A=this._parent)===null||A===void 0?void 0:A._prefixes)===null||i===void 0)&&i.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};Ra.Scope=Y5;var T5=class extends Sa.Name{constructor(e,A){super(A),this.prefix=e}setValue(e,{property:A,itemIndex:i}){this.value=e,this.scopePath=(0,Sa._)`.${new Sa.Name(A)}[${i}]`}};Ra.ValueScopeName=T5;var a9A=(0,Sa._)`\n`,CL=class extends Y5{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts=Fe(sA({},e),{_n:e.lines?a9A:Sa.nil})}get(){return this._scope}name(e){return new T5(e,this._newName(e))}value(e,A){var i;if(A.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let n=this.toName(e),{prefix:o}=n,r=(i=A.key)!==null&&i!==void 0?i:A.ref,s=this._values[o];if(s){let g=s.get(r);if(g)return g}else s=this._values[o]=new Map;s.set(r,n);let a=this._scope[o]||(this._scope[o]=[]),c=a.length;return a[c]=A.ref,n.setValue(A,{property:o,itemIndex:c}),n}getValue(e,A){let i=this._values[e];if(i)return i.get(A)}scopeRefs(e,A=this._values){return this._reduceValues(A,i=>{if(i.scopePath===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return(0,Sa._)`${e}${i.scopePath}`})}scopeCode(e=this._values,A,i){return this._reduceValues(e,n=>{if(n.value===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return n.value.code},A,i)}_reduceValues(e,A,i={},n){let o=Sa.nil;for(let r in e){let s=e[r];if(!s)continue;let a=i[r]=i[r]||new Map;s.forEach(c=>{if(a.has(c))return;a.set(c,J5.Started);let g=A(c);if(g){let I=this.opts.es5?Ra.varKinds.var:Ra.varKinds.const;o=(0,Sa._)`${o}${I} ${c} = ${g};${this.opts._n}`}else if(g=n?.(c))o=(0,Sa._)`${o}${g}${this.opts._n}`;else throw new IL(c);a.set(c,J5.Completed)})}return o}};Ra.ValueScope=CL});var Pi=He(Hi=>{"use strict";Object.defineProperty(Hi,"__esModule",{value:!0});Hi.or=Hi.and=Hi.not=Hi.CodeGen=Hi.operators=Hi.varKinds=Hi.ValueScopeName=Hi.ValueScope=Hi.Scope=Hi.Name=Hi.regexpCode=Hi.stringify=Hi.getProperty=Hi.nil=Hi.strConcat=Hi.str=Hi._=void 0;var cn=p4(),kg=dL(),p1=p4();Object.defineProperty(Hi,"_",{enumerable:!0,get:function(){return p1._}});Object.defineProperty(Hi,"str",{enumerable:!0,get:function(){return p1.str}});Object.defineProperty(Hi,"strConcat",{enumerable:!0,get:function(){return p1.strConcat}});Object.defineProperty(Hi,"nil",{enumerable:!0,get:function(){return p1.nil}});Object.defineProperty(Hi,"getProperty",{enumerable:!0,get:function(){return p1.getProperty}});Object.defineProperty(Hi,"stringify",{enumerable:!0,get:function(){return p1.stringify}});Object.defineProperty(Hi,"regexpCode",{enumerable:!0,get:function(){return p1.regexpCode}});Object.defineProperty(Hi,"Name",{enumerable:!0,get:function(){return p1.Name}});var j5=dL();Object.defineProperty(Hi,"Scope",{enumerable:!0,get:function(){return j5.Scope}});Object.defineProperty(Hi,"ValueScope",{enumerable:!0,get:function(){return j5.ValueScope}});Object.defineProperty(Hi,"ValueScopeName",{enumerable:!0,get:function(){return j5.ValueScopeName}});Object.defineProperty(Hi,"varKinds",{enumerable:!0,get:function(){return j5.varKinds}});Hi.operators={GT:new cn._Code(">"),GTE:new cn._Code(">="),LT:new cn._Code("<"),LTE:new cn._Code("<="),EQ:new cn._Code("==="),NEQ:new cn._Code("!=="),NOT:new cn._Code("!"),OR:new cn._Code("||"),AND:new cn._Code("&&"),ADD:new cn._Code("+")};var K0=class{optimizeNodes(){return this}optimizeNames(e,A){return this}},BL=class extends K0{constructor(e,A,i){super(),this.varKind=e,this.name=A,this.rhs=i}render({es5:e,_n:A}){let i=e?kg.varKinds.var:this.varKind,n=this.rhs===void 0?"":` = ${this.rhs}`;return`${i} ${this.name}${n};`+A}optimizeNames(e,A){if(e[this.name.str])return this.rhs&&(this.rhs=fE(this.rhs,e,A)),this}get names(){return this.rhs instanceof cn._CodeOrName?this.rhs.names:{}}},O5=class extends K0{constructor(e,A,i){super(),this.lhs=e,this.rhs=A,this.sideEffects=i}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,A){if(!(this.lhs instanceof cn.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=fE(this.rhs,e,A),this}get names(){let e=this.lhs instanceof cn.Name?{}:sA({},this.lhs.names);return P5(e,this.rhs)}},EL=class extends O5{constructor(e,A,i,n){super(e,i,n),this.op=A}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},QL=class extends K0{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},uL=class extends K0{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},hL=class extends K0{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},fL=class extends K0{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,A){return this.code=fE(this.code,e,A),this}get names(){return this.code instanceof cn._CodeOrName?this.code.names:{}}},D4=class extends K0{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((A,i)=>A+i.render(e),"")}optimizeNodes(){let{nodes:e}=this,A=e.length;for(;A--;){let i=e[A].optimizeNodes();Array.isArray(i)?e.splice(A,1,...i):i?e[A]=i:e.splice(A,1)}return e.length>0?this:void 0}optimizeNames(e,A){let{nodes:i}=this,n=i.length;for(;n--;){let o=i[n];o.optimizeNames(e,A)||(c9A(e,o.names),i.splice(n,1))}return i.length>0?this:void 0}get names(){return this.nodes.reduce((e,A)=>hC(e,A.names),{})}},U0=class extends D4{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},mL=class extends D4{},pL=(()=>{class t extends U0{}return t.kind="else",t})(),H5=(()=>{class t extends U0{constructor(A,i){super(i),this.condition=A}render(A){let i=`if(${this.condition})`+super.render(A);return this.else&&(i+="else "+this.else.render(A)),i}optimizeNodes(){super.optimizeNodes();let A=this.condition;if(A===!0)return this.nodes;let i=this.else;if(i){let n=i.optimizeNodes();i=this.else=Array.isArray(n)?new pL(n):n}if(i)return A===!1?i instanceof t?i:i.nodes:this.nodes.length?this:new t(KX(A),i instanceof t?[i]:i.nodes);if(!(A===!1||!this.nodes.length))return this}optimizeNames(A,i){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(A,i),!!(super.optimizeNames(A,i)||this.else))return this.condition=fE(this.condition,A,i),this}get names(){let A=super.names;return P5(A,this.condition),this.else&&hC(A,this.else.names),A}}return t.kind="if",t})(),q5=(()=>{class t extends U0{}return t.kind="for",t})(),DL=class extends q5{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,A){if(super.optimizeNames(e,A))return this.iteration=fE(this.iteration,e,A),this}get names(){return hC(super.names,this.iteration.names)}},wL=class extends q5{constructor(e,A,i,n){super(),this.varKind=e,this.name=A,this.from=i,this.to=n}render(e){let A=e.es5?kg.varKinds.var:this.varKind,{name:i,from:n,to:o}=this;return`for(${A} ${i}=${n}; ${i}<${o}; ${i}++)`+super.render(e)}get names(){let e=P5(super.names,this.from);return P5(e,this.to)}},z5=class extends q5{constructor(e,A,i,n){super(),this.loop=e,this.varKind=A,this.name=i,this.iterable=n}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,A){if(super.optimizeNames(e,A))return this.iterable=fE(this.iterable,e,A),this}get names(){return hC(super.names,this.iterable.names)}},NX=(()=>{class t extends U0{constructor(A,i,n){super(),this.name=A,this.args=i,this.async=n}render(A){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(A)}}return t.kind="func",t})(),FX=(()=>{class t extends D4{render(A){return"return "+super.render(A)}}return t.kind="return",t})(),yL=class extends U0{render(e){let A="try"+super.render(e);return this.catch&&(A+=this.catch.render(e)),this.finally&&(A+=this.finally.render(e)),A}optimizeNodes(){var e,A;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(A=this.finally)===null||A===void 0||A.optimizeNodes(),this}optimizeNames(e,A){var i,n;return super.optimizeNames(e,A),(i=this.catch)===null||i===void 0||i.optimizeNames(e,A),(n=this.finally)===null||n===void 0||n.optimizeNames(e,A),this}get names(){let e=super.names;return this.catch&&hC(e,this.catch.names),this.finally&&hC(e,this.finally.names),e}},_X=(()=>{class t extends U0{constructor(A){super(),this.error=A}render(A){return`catch(${this.error})`+super.render(A)}}return t.kind="catch",t})(),GX=(()=>{class t extends U0{render(A){return"finally"+super.render(A)}}return t.kind="finally",t})(),vL=class{constructor(e,A={}){this._values={},this._blockStarts=[],this._constants={},this.opts=Fe(sA({},A),{_n:A.lines?` -`:""}),this._extScope=e,this._scope=new kg.Scope({parent:e}),this._nodes=[new mL]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,A){let i=this._extScope.value(e,A);return(this._values[i.prefix]||(this._values[i.prefix]=new Set)).add(i),i}getScopeValue(e,A){return this._extScope.getValue(e,A)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,A,i,n){let o=this._scope.toName(A);return i!==void 0&&n&&(this._constants[o.str]=i),this._leafNode(new BL(e,o,i)),o}const(e,A,i){return this._def(kg.varKinds.const,e,A,i)}let(e,A,i){return this._def(kg.varKinds.let,e,A,i)}var(e,A,i){return this._def(kg.varKinds.var,e,A,i)}assign(e,A,i){return this._leafNode(new O5(e,A,i))}add(e,A){return this._leafNode(new EL(e,Hi.operators.ADD,A))}code(e){return typeof e=="function"?e():e!==cn.nil&&this._leafNode(new fL(e)),this}object(...e){let A=["{"];for(let[i,n]of e)A.length>1&&A.push(","),A.push(i),(i!==n||this.opts.es5)&&(A.push(":"),(0,cn.addCodeArg)(A,n));return A.push("}"),new cn._Code(A)}if(e,A,i){if(this._blockNode(new H5(e)),A&&i)this.code(A).else().code(i).endIf();else if(A)this.code(A).endIf();else if(i)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new H5(e))}else(){return this._elseNode(new pL)}endIf(){return this._endBlockNode(H5,pL)}_for(e,A){return this._blockNode(e),A&&this.code(A).endFor(),this}for(e,A){return this._for(new DL(e),A)}forRange(e,A,i,n,o=this.opts.es5?kg.varKinds.var:kg.varKinds.let){let r=this._scope.toName(e);return this._for(new wL(o,r,A,i),()=>n(r))}forOf(e,A,i,n=kg.varKinds.const){let o=this._scope.toName(e);if(this.opts.es5){let r=A instanceof cn.Name?A:this.var("_arr",A);return this.forRange("_i",0,(0,cn._)`${r}.length`,s=>{this.var(o,(0,cn._)`${r}[${s}]`),i(o)})}return this._for(new z5("of",n,o,A),()=>i(o))}forIn(e,A,i,n=this.opts.es5?kg.varKinds.var:kg.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,cn._)`Object.keys(${A})`,i);let o=this._scope.toName(e);return this._for(new z5("in",n,o,A),()=>i(o))}endFor(){return this._endBlockNode(q5)}label(e){return this._leafNode(new QL(e))}break(e){return this._leafNode(new uL(e))}return(e){let A=new FX;if(this._blockNode(A),this.code(e),A.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(FX)}try(e,A,i){if(!A&&!i)throw new Error('CodeGen: "try" without "catch" and "finally"');let n=new yL;if(this._blockNode(n),this.code(e),A){let o=this.name("e");this._currNode=n.catch=new _X(o),A(o)}return i&&(this._currNode=n.finally=new GX,this.code(i)),this._endBlockNode(_X,GX)}throw(e){return this._leafNode(new hL(e))}block(e,A){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(A),this}endBlock(e){let A=this._blockStarts.pop();if(A===void 0)throw new Error("CodeGen: not in self-balancing block");let i=this._nodes.length-A;if(i<0||e!==void 0&&i!==e)throw new Error(`CodeGen: wrong number of nodes: ${i} vs ${e} expected`);return this._nodes.length=A,this}func(e,A=cn.nil,i,n){return this._blockNode(new NX(e,A,i)),n&&this.code(n).endFunc(),this}endFunc(){return this._endBlockNode(NX)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,A){let i=this._currNode;if(i instanceof e||A&&i instanceof A)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${A?`${e.kind}/${A.kind}`:e.kind}"`)}_elseNode(e){let A=this._currNode;if(!(A instanceof H5))throw new Error('CodeGen: "else" without "if"');return this._currNode=A.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let A=this._nodes;A[A.length-1]=e}};Hi.CodeGen=vL;function hC(t,e){for(let A in e)t[A]=(t[A]||0)+(e[A]||0);return t}function P5(t,e){return e instanceof cn._CodeOrName?hC(t,e.names):t}function fE(t,e,A){if(t instanceof cn.Name)return i(t);if(!n(t))return t;return new cn._Code(t._items.reduce((o,r)=>(r instanceof cn.Name&&(r=i(r)),r instanceof cn._Code?o.push(...r._items):o.push(r),o),[]));function i(o){let r=A[o.str];return r===void 0||e[o.str]!==1?o:(delete e[o.str],r)}function n(o){return o instanceof cn._Code&&o._items.some(r=>r instanceof cn.Name&&e[r.str]===1&&A[r.str]!==void 0)}}function c9A(t,e){for(let A in e)t[A]=(t[A]||0)-(e[A]||0)}function KX(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,cn._)`!${ML(t)}`}Hi.not=KX;var g9A=UX(Hi.operators.AND);function l9A(...t){return t.reduce(g9A)}Hi.and=l9A;var I9A=UX(Hi.operators.OR);function C9A(...t){return t.reduce(I9A)}Hi.or=C9A;function UX(t){return(e,A)=>e===cn.nil?A:A===cn.nil?e:(0,cn._)`${ML(e)} ${t} ${ML(A)}`}function ML(t){return t instanceof cn.Name?t:(0,cn._)`(${t})`}});var wn=He(ji=>{"use strict";Object.defineProperty(ji,"__esModule",{value:!0});ji.checkStrictMode=ji.getErrorPath=ji.Type=ji.useFunc=ji.setEvaluated=ji.evaluatedPropsToName=ji.mergeEvaluated=ji.eachItem=ji.unescapeJsonPointer=ji.escapeJsonPointer=ji.escapeFragment=ji.unescapeFragment=ji.schemaRefOrVal=ji.schemaHasRulesButRef=ji.schemaHasRules=ji.checkUnknownRules=ji.alwaysValidSchema=ji.toHash=void 0;var yo=Pi(),d9A=p4();function B9A(t){let e={};for(let A of t)e[A]=!0;return e}ji.toHash=B9A;function E9A(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(TX(t,e),!HX(e,t.self.RULES.all))}ji.alwaysValidSchema=E9A;function TX(t,e=t.schema){let{opts:A,self:i}=t;if(!A.strictSchema||typeof e=="boolean")return;let n=i.RULES.keywords;for(let o in e)n[o]||PX(t,`unknown keyword: "${o}"`)}ji.checkUnknownRules=TX;function HX(t,e){if(typeof t=="boolean")return!t;for(let A in t)if(e[A])return!0;return!1}ji.schemaHasRules=HX;function Q9A(t,e){if(typeof t=="boolean")return!t;for(let A in t)if(A!=="$ref"&&e.all[A])return!0;return!1}ji.schemaHasRulesButRef=Q9A;function u9A({topSchemaRef:t,schemaPath:e},A,i,n){if(!n){if(typeof A=="number"||typeof A=="boolean")return A;if(typeof A=="string")return(0,yo._)`${A}`}return(0,yo._)`${t}${e}${(0,yo.getProperty)(i)}`}ji.schemaRefOrVal=u9A;function h9A(t){return OX(decodeURIComponent(t))}ji.unescapeFragment=h9A;function f9A(t){return encodeURIComponent(kL(t))}ji.escapeFragment=f9A;function kL(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}ji.escapeJsonPointer=kL;function OX(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}ji.unescapeJsonPointer=OX;function m9A(t,e){if(Array.isArray(t))for(let A of t)e(A);else e(t)}ji.eachItem=m9A;function JX({mergeNames:t,mergeToName:e,mergeValues:A,resultToName:i}){return(n,o,r,s)=>{let a=r===void 0?o:r instanceof yo.Name?(o instanceof yo.Name?t(n,o,r):e(n,o,r),r):o instanceof yo.Name?(e(n,r,o),o):A(o,r);return s===yo.Name&&!(a instanceof yo.Name)?i(n,a):a}}ji.mergeEvaluated={props:JX({mergeNames:(t,e,A)=>t.if((0,yo._)`${A} !== true && ${e} !== undefined`,()=>{t.if((0,yo._)`${e} === true`,()=>t.assign(A,!0),()=>t.assign(A,(0,yo._)`${A} || {}`).code((0,yo._)`Object.assign(${A}, ${e})`))}),mergeToName:(t,e,A)=>t.if((0,yo._)`${A} !== true`,()=>{e===!0?t.assign(A,!0):(t.assign(A,(0,yo._)`${A} || {}`),SL(t,A,e))}),mergeValues:(t,e)=>t===!0?!0:sA(sA({},t),e),resultToName:zX}),items:JX({mergeNames:(t,e,A)=>t.if((0,yo._)`${A} !== true && ${e} !== undefined`,()=>t.assign(A,(0,yo._)`${e} === true ? true : ${A} > ${e} ? ${A} : ${e}`)),mergeToName:(t,e,A)=>t.if((0,yo._)`${A} !== true`,()=>t.assign(A,e===!0?!0:(0,yo._)`${A} > ${e} ? ${A} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function zX(t,e){if(e===!0)return t.var("props",!0);let A=t.var("props",(0,yo._)`{}`);return e!==void 0&&SL(t,A,e),A}ji.evaluatedPropsToName=zX;function SL(t,e,A){Object.keys(A).forEach(i=>t.assign((0,yo._)`${e}${(0,yo.getProperty)(i)}`,!0))}ji.setEvaluated=SL;var YX={};function p9A(t,e){return t.scopeValue("func",{ref:e,code:YX[e.code]||(YX[e.code]=new d9A._Code(e.code))})}ji.useFunc=p9A;var bL=function(t){return t[t.Num=0]="Num",t[t.Str=1]="Str",t}(bL||(ji.Type=bL={}));function D9A(t,e,A){if(t instanceof yo.Name){let i=e===bL.Num;return A?i?(0,yo._)`"[" + ${t} + "]"`:(0,yo._)`"['" + ${t} + "']"`:i?(0,yo._)`"/" + ${t}`:(0,yo._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return A?(0,yo.getProperty)(t).toString():"/"+kL(t)}ji.getErrorPath=D9A;function PX(t,e,A=t.opts.strictSchema){if(A){if(e=`strict mode: ${e}`,A===!0)throw new Error(e);t.self.logger.warn(e)}}ji.checkStrictMode=PX});var J0=He(RL=>{"use strict";Object.defineProperty(RL,"__esModule",{value:!0});var Ns=Pi(),w9A={data:new Ns.Name("data"),valCxt:new Ns.Name("valCxt"),instancePath:new Ns.Name("instancePath"),parentData:new Ns.Name("parentData"),parentDataProperty:new Ns.Name("parentDataProperty"),rootData:new Ns.Name("rootData"),dynamicAnchors:new Ns.Name("dynamicAnchors"),vErrors:new Ns.Name("vErrors"),errors:new Ns.Name("errors"),this:new Ns.Name("this"),self:new Ns.Name("self"),scope:new Ns.Name("scope"),json:new Ns.Name("json"),jsonPos:new Ns.Name("jsonPos"),jsonLen:new Ns.Name("jsonLen"),jsonPart:new Ns.Name("jsonPart")};RL.default=w9A});var w4=He(Fs=>{"use strict";Object.defineProperty(Fs,"__esModule",{value:!0});Fs.extendErrors=Fs.resetErrorsCount=Fs.reportExtraError=Fs.reportError=Fs.keyword$DataError=Fs.keywordError=void 0;var En=Pi(),V5=wn(),ea=J0();Fs.keywordError={message:({keyword:t})=>(0,En.str)`must pass "${t}" keyword validation`};Fs.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,En.str)`"${t}" keyword must be ${e} ($data)`:(0,En.str)`"${t}" keyword is invalid ($data)`};function y9A(t,e=Fs.keywordError,A,i){let{it:n}=t,{gen:o,compositeRule:r,allErrors:s}=n,a=VX(t,e,A);i??(r||s)?jX(o,a):qX(n,(0,En._)`[${a}]`)}Fs.reportError=y9A;function v9A(t,e=Fs.keywordError,A){let{it:i}=t,{gen:n,compositeRule:o,allErrors:r}=i,s=VX(t,e,A);jX(n,s),o||r||qX(i,ea.default.vErrors)}Fs.reportExtraError=v9A;function M9A(t,e){t.assign(ea.default.errors,e),t.if((0,En._)`${ea.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,En._)`${ea.default.vErrors}.length`,e),()=>t.assign(ea.default.vErrors,null)))}Fs.resetErrorsCount=M9A;function b9A({gen:t,keyword:e,schemaValue:A,data:i,errsCount:n,it:o}){if(n===void 0)throw new Error("ajv implementation error");let r=t.name("err");t.forRange("i",n,ea.default.errors,s=>{t.const(r,(0,En._)`${ea.default.vErrors}[${s}]`),t.if((0,En._)`${r}.instancePath === undefined`,()=>t.assign((0,En._)`${r}.instancePath`,(0,En.strConcat)(ea.default.instancePath,o.errorPath))),t.assign((0,En._)`${r}.schemaPath`,(0,En.str)`${o.errSchemaPath}/${e}`),o.opts.verbose&&(t.assign((0,En._)`${r}.schema`,A),t.assign((0,En._)`${r}.data`,i))})}Fs.extendErrors=b9A;function jX(t,e){let A=t.const("err",e);t.if((0,En._)`${ea.default.vErrors} === null`,()=>t.assign(ea.default.vErrors,(0,En._)`[${A}]`),(0,En._)`${ea.default.vErrors}.push(${A})`),t.code((0,En._)`${ea.default.errors}++`)}function qX(t,e){let{gen:A,validateName:i,schemaEnv:n}=t;n.$async?A.throw((0,En._)`new ${t.ValidationError}(${e})`):(A.assign((0,En._)`${i}.errors`,e),A.return(!1))}var fC={keyword:new En.Name("keyword"),schemaPath:new En.Name("schemaPath"),params:new En.Name("params"),propertyName:new En.Name("propertyName"),message:new En.Name("message"),schema:new En.Name("schema"),parentSchema:new En.Name("parentSchema")};function VX(t,e,A){let{createErrors:i}=t.it;return i===!1?(0,En._)`{}`:k9A(t,e,A)}function k9A(t,e,A={}){let{gen:i,it:n}=t,o=[S9A(n,A),R9A(t,A)];return L9A(t,e,o),i.object(...o)}function S9A({errorPath:t},{instancePath:e}){let A=e?(0,En.str)`${t}${(0,V5.getErrorPath)(e,V5.Type.Str)}`:t;return[ea.default.instancePath,(0,En.strConcat)(ea.default.instancePath,A)]}function R9A({keyword:t,it:{errSchemaPath:e}},{schemaPath:A,parentSchema:i}){let n=i?e:(0,En.str)`${e}/${t}`;return A&&(n=(0,En.str)`${n}${(0,V5.getErrorPath)(A,V5.Type.Str)}`),[fC.schemaPath,n]}function L9A(t,{params:e,message:A},i){let{keyword:n,data:o,schemaValue:r,it:s}=t,{opts:a,propertyName:c,topSchemaRef:g,schemaPath:I}=s;i.push([fC.keyword,n],[fC.params,typeof e=="function"?e(t):e||(0,En._)`{}`]),a.messages&&i.push([fC.message,typeof A=="function"?A(t):A]),a.verbose&&i.push([fC.schema,r],[fC.parentSchema,(0,En._)`${g}${I}`],[ea.default.data,o]),c&&i.push([fC.propertyName,c])}});var WX=He(mE=>{"use strict";Object.defineProperty(mE,"__esModule",{value:!0});mE.boolOrEmptySchema=mE.topBoolOrEmptySchema=void 0;var x9A=w4(),N9A=Pi(),F9A=J0(),_9A={message:"boolean schema is false"};function G9A(t){let{gen:e,schema:A,validateName:i}=t;A===!1?ZX(t,!1):typeof A=="object"&&A.$async===!0?e.return(F9A.default.data):(e.assign((0,N9A._)`${i}.errors`,null),e.return(!0))}mE.topBoolOrEmptySchema=G9A;function K9A(t,e){let{gen:A,schema:i}=t;i===!1?(A.var(e,!1),ZX(t)):A.var(e,!0)}mE.boolOrEmptySchema=K9A;function ZX(t,e){let{gen:A,data:i}=t,n={gen:A,keyword:"false schema",data:i,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,x9A.reportError)(n,_9A,void 0,e)}});var LL=He(pE=>{"use strict";Object.defineProperty(pE,"__esModule",{value:!0});pE.getRules=pE.isJSONType=void 0;var U9A=["string","number","integer","boolean","null","object","array"],J9A=new Set(U9A);function Y9A(t){return typeof t=="string"&&J9A.has(t)}pE.isJSONType=Y9A;function T9A(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:Fe(sA({},t),{integer:!0,boolean:!0,null:!0}),rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}pE.getRules=T9A});var xL=He(D1=>{"use strict";Object.defineProperty(D1,"__esModule",{value:!0});D1.shouldUseRule=D1.shouldUseGroup=D1.schemaHasRulesForType=void 0;function H9A({schema:t,self:e},A){let i=e.RULES.types[A];return i&&i!==!0&&XX(t,i)}D1.schemaHasRulesForType=H9A;function XX(t,e){return e.rules.some(A=>$X(t,A))}D1.shouldUseGroup=XX;function $X(t,e){var A;return t[e.keyword]!==void 0||((A=e.definition.implements)===null||A===void 0?void 0:A.some(i=>t[i]!==void 0))}D1.shouldUseRule=$X});var y4=He(_s=>{"use strict";Object.defineProperty(_s,"__esModule",{value:!0});_s.reportTypeError=_s.checkDataTypes=_s.checkDataType=_s.coerceAndCheckDataType=_s.getJSONTypes=_s.getSchemaTypes=_s.DataType=void 0;var O9A=LL(),z9A=xL(),P9A=w4(),ki=Pi(),A$=wn(),DE=function(t){return t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong",t}(DE||(_s.DataType=DE={}));function j9A(t){let e=e$(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}_s.getSchemaTypes=j9A;function e$(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(O9A.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}_s.getJSONTypes=e$;function q9A(t,e){let{gen:A,data:i,opts:n}=t,o=V9A(e,n.coerceTypes),r=e.length>0&&!(o.length===0&&e.length===1&&(0,z9A.schemaHasRulesForType)(t,e[0]));if(r){let s=FL(e,i,n.strictNumbers,DE.Wrong);A.if(s,()=>{o.length?Z9A(t,e,o):_L(t)})}return r}_s.coerceAndCheckDataType=q9A;var t$=new Set(["string","number","integer","boolean","null"]);function V9A(t,e){return e?t.filter(A=>t$.has(A)||e==="array"&&A==="array"):[]}function Z9A(t,e,A){let{gen:i,data:n,opts:o}=t,r=i.let("dataType",(0,ki._)`typeof ${n}`),s=i.let("coerced",(0,ki._)`undefined`);o.coerceTypes==="array"&&i.if((0,ki._)`${r} == 'object' && Array.isArray(${n}) && ${n}.length == 1`,()=>i.assign(n,(0,ki._)`${n}[0]`).assign(r,(0,ki._)`typeof ${n}`).if(FL(e,n,o.strictNumbers),()=>i.assign(s,n))),i.if((0,ki._)`${s} !== undefined`);for(let c of A)(t$.has(c)||c==="array"&&o.coerceTypes==="array")&&a(c);i.else(),_L(t),i.endIf(),i.if((0,ki._)`${s} !== undefined`,()=>{i.assign(n,s),W9A(t,s)});function a(c){switch(c){case"string":i.elseIf((0,ki._)`${r} == "number" || ${r} == "boolean"`).assign(s,(0,ki._)`"" + ${n}`).elseIf((0,ki._)`${n} === null`).assign(s,(0,ki._)`""`);return;case"number":i.elseIf((0,ki._)`${r} == "boolean" || ${n} === null +`+R(D,r),C++,d=0;D--;)i?(C+=i,d=o):d+=o,B+=n;B+=1}}function x(D,G){I[D]=I[D]||{},I[D][G]={line:C,column:d,pos:B}}function R(D,G){return Array(D+1).join(G)}};var n6A=["number","bigint","boolean","string","object"];function X8(t){return n6A.indexOf(typeof t)>=0}var o6A=/"|\\/g,r6A=/[\b]/g,s6A=/\f/g,a6A=/\n/g,c6A=/\r/g,g6A=/\t/g;function $8(t){return t=t.replace(o6A,"\\$&").replace(s6A,"\\f").replace(r6A,"\\b").replace(a6A,"\\n").replace(c6A,"\\r").replace(g6A,"\\t"),'"'+t+'"'}var l6A=/~/g,I6A=/\//g;function vR(t){return t.replace(l6A,"~0").replace(I6A,"~1")}});var SX=He((o8e,kX)=>{"use strict";var bX=function(t,e){var A,i,n=1,o=0,r=0,s=String.alphabet;function a(c,g,I){if(I){for(A=g;I=a(c,A),I<76&&I>65;)++A;return+c.slice(g-1,A)}return I=s&&s.indexOf(c.charAt(g)),I>-1?I+76:(I=c.charCodeAt(g)||0,I<45||I>127?I:I<46?65:I<48?I-1:I<58?I+18:I<65?I-11:I<91?I+11:I<97?I-37:I<123?I+5:I-63)}if((t+="")!=(e+="")){for(;n;)if(i=a(t,o++),n=a(e,r++),i<76&&n<76&&i>66&&n>66&&(i=a(t,o,o),n=a(e,r,o=A),r=A),i!=n)return i{"use strict";Object.defineProperty(Dn,"__esModule",{value:!0});Dn.regexpCode=Dn.getEsmExportName=Dn.getProperty=Dn.safeStringify=Dn.stringify=Dn.strConcat=Dn.addCodeArg=Dn.str=Dn._=Dn.nil=Dn._Code=Dn.Name=Dn.IDENTIFIER=Dn._CodeOrName=void 0;var f4=class{};Dn._CodeOrName=f4;Dn.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var uC=class extends f4{constructor(e){if(super(),!Dn.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};Dn.Name=uC;var Hc=class extends f4{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((A,i)=>`${A}${i}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((A,i)=>(i instanceof uC&&(A[i.str]=(A[i.str]||0)+1),A),{})}};Dn._Code=Hc;Dn.nil=new Hc("");function LX(t,...e){let A=[t[0]],i=0;for(;i{"use strict";Object.defineProperty(Ra,"__esModule",{value:!0});Ra.ValueScope=Ra.ValueScopeName=Ra.Scope=Ra.varKinds=Ra.UsedValueState=void 0;var Sa=p4(),IL=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},J5=function(t){return t[t.Started=0]="Started",t[t.Completed=1]="Completed",t}(J5||(Ra.UsedValueState=J5={}));Ra.varKinds={const:new Sa.Name("const"),let:new Sa.Name("let"),var:new Sa.Name("var")};var Y5=class{constructor({prefixes:e,parent:A}={}){this._names={},this._prefixes=e,this._parent=A}toName(e){return e instanceof Sa.Name?e:this.name(e)}name(e){return new Sa.Name(this._newName(e))}_newName(e){let A=this._names[e]||this._nameGroup(e);return`${e}${A.index++}`}_nameGroup(e){var A,i;if(!((i=(A=this._parent)===null||A===void 0?void 0:A._prefixes)===null||i===void 0)&&i.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};Ra.Scope=Y5;var T5=class extends Sa.Name{constructor(e,A){super(A),this.prefix=e}setValue(e,{property:A,itemIndex:i}){this.value=e,this.scopePath=(0,Sa._)`.${new Sa.Name(A)}[${i}]`}};Ra.ValueScopeName=T5;var g9A=(0,Sa._)`\n`,CL=class extends Y5{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts=Fe(sA({},e),{_n:e.lines?g9A:Sa.nil})}get(){return this._scope}name(e){return new T5(e,this._newName(e))}value(e,A){var i;if(A.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let n=this.toName(e),{prefix:o}=n,r=(i=A.key)!==null&&i!==void 0?i:A.ref,s=this._values[o];if(s){let g=s.get(r);if(g)return g}else s=this._values[o]=new Map;s.set(r,n);let a=this._scope[o]||(this._scope[o]=[]),c=a.length;return a[c]=A.ref,n.setValue(A,{property:o,itemIndex:c}),n}getValue(e,A){let i=this._values[e];if(i)return i.get(A)}scopeRefs(e,A=this._values){return this._reduceValues(A,i=>{if(i.scopePath===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return(0,Sa._)`${e}${i.scopePath}`})}scopeCode(e=this._values,A,i){return this._reduceValues(e,n=>{if(n.value===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return n.value.code},A,i)}_reduceValues(e,A,i={},n){let o=Sa.nil;for(let r in e){let s=e[r];if(!s)continue;let a=i[r]=i[r]||new Map;s.forEach(c=>{if(a.has(c))return;a.set(c,J5.Started);let g=A(c);if(g){let I=this.opts.es5?Ra.varKinds.var:Ra.varKinds.const;o=(0,Sa._)`${o}${I} ${c} = ${g};${this.opts._n}`}else if(g=n?.(c))o=(0,Sa._)`${o}${g}${this.opts._n}`;else throw new IL(c);a.set(c,J5.Completed)})}return o}};Ra.ValueScope=CL});var Pi=He(Hi=>{"use strict";Object.defineProperty(Hi,"__esModule",{value:!0});Hi.or=Hi.and=Hi.not=Hi.CodeGen=Hi.operators=Hi.varKinds=Hi.ValueScopeName=Hi.ValueScope=Hi.Scope=Hi.Name=Hi.regexpCode=Hi.stringify=Hi.getProperty=Hi.nil=Hi.strConcat=Hi.str=Hi._=void 0;var cn=p4(),kg=dL(),p1=p4();Object.defineProperty(Hi,"_",{enumerable:!0,get:function(){return p1._}});Object.defineProperty(Hi,"str",{enumerable:!0,get:function(){return p1.str}});Object.defineProperty(Hi,"strConcat",{enumerable:!0,get:function(){return p1.strConcat}});Object.defineProperty(Hi,"nil",{enumerable:!0,get:function(){return p1.nil}});Object.defineProperty(Hi,"getProperty",{enumerable:!0,get:function(){return p1.getProperty}});Object.defineProperty(Hi,"stringify",{enumerable:!0,get:function(){return p1.stringify}});Object.defineProperty(Hi,"regexpCode",{enumerable:!0,get:function(){return p1.regexpCode}});Object.defineProperty(Hi,"Name",{enumerable:!0,get:function(){return p1.Name}});var j5=dL();Object.defineProperty(Hi,"Scope",{enumerable:!0,get:function(){return j5.Scope}});Object.defineProperty(Hi,"ValueScope",{enumerable:!0,get:function(){return j5.ValueScope}});Object.defineProperty(Hi,"ValueScopeName",{enumerable:!0,get:function(){return j5.ValueScopeName}});Object.defineProperty(Hi,"varKinds",{enumerable:!0,get:function(){return j5.varKinds}});Hi.operators={GT:new cn._Code(">"),GTE:new cn._Code(">="),LT:new cn._Code("<"),LTE:new cn._Code("<="),EQ:new cn._Code("==="),NEQ:new cn._Code("!=="),NOT:new cn._Code("!"),OR:new cn._Code("||"),AND:new cn._Code("&&"),ADD:new cn._Code("+")};var K0=class{optimizeNodes(){return this}optimizeNames(e,A){return this}},BL=class extends K0{constructor(e,A,i){super(),this.varKind=e,this.name=A,this.rhs=i}render({es5:e,_n:A}){let i=e?kg.varKinds.var:this.varKind,n=this.rhs===void 0?"":` = ${this.rhs}`;return`${i} ${this.name}${n};`+A}optimizeNames(e,A){if(e[this.name.str])return this.rhs&&(this.rhs=fE(this.rhs,e,A)),this}get names(){return this.rhs instanceof cn._CodeOrName?this.rhs.names:{}}},O5=class extends K0{constructor(e,A,i){super(),this.lhs=e,this.rhs=A,this.sideEffects=i}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,A){if(!(this.lhs instanceof cn.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=fE(this.rhs,e,A),this}get names(){let e=this.lhs instanceof cn.Name?{}:sA({},this.lhs.names);return P5(e,this.rhs)}},EL=class extends O5{constructor(e,A,i,n){super(e,i,n),this.op=A}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},QL=class extends K0{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},uL=class extends K0{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},hL=class extends K0{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},fL=class extends K0{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,A){return this.code=fE(this.code,e,A),this}get names(){return this.code instanceof cn._CodeOrName?this.code.names:{}}},D4=class extends K0{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((A,i)=>A+i.render(e),"")}optimizeNodes(){let{nodes:e}=this,A=e.length;for(;A--;){let i=e[A].optimizeNodes();Array.isArray(i)?e.splice(A,1,...i):i?e[A]=i:e.splice(A,1)}return e.length>0?this:void 0}optimizeNames(e,A){let{nodes:i}=this,n=i.length;for(;n--;){let o=i[n];o.optimizeNames(e,A)||(l9A(e,o.names),i.splice(n,1))}return i.length>0?this:void 0}get names(){return this.nodes.reduce((e,A)=>hC(e,A.names),{})}},U0=class extends D4{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},mL=class extends D4{},pL=(()=>{class t extends U0{}return t.kind="else",t})(),H5=(()=>{class t extends U0{constructor(A,i){super(i),this.condition=A}render(A){let i=`if(${this.condition})`+super.render(A);return this.else&&(i+="else "+this.else.render(A)),i}optimizeNodes(){super.optimizeNodes();let A=this.condition;if(A===!0)return this.nodes;let i=this.else;if(i){let n=i.optimizeNodes();i=this.else=Array.isArray(n)?new pL(n):n}if(i)return A===!1?i instanceof t?i:i.nodes:this.nodes.length?this:new t(KX(A),i instanceof t?[i]:i.nodes);if(!(A===!1||!this.nodes.length))return this}optimizeNames(A,i){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(A,i),!!(super.optimizeNames(A,i)||this.else))return this.condition=fE(this.condition,A,i),this}get names(){let A=super.names;return P5(A,this.condition),this.else&&hC(A,this.else.names),A}}return t.kind="if",t})(),q5=(()=>{class t extends U0{}return t.kind="for",t})(),DL=class extends q5{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,A){if(super.optimizeNames(e,A))return this.iteration=fE(this.iteration,e,A),this}get names(){return hC(super.names,this.iteration.names)}},wL=class extends q5{constructor(e,A,i,n){super(),this.varKind=e,this.name=A,this.from=i,this.to=n}render(e){let A=e.es5?kg.varKinds.var:this.varKind,{name:i,from:n,to:o}=this;return`for(${A} ${i}=${n}; ${i}<${o}; ${i}++)`+super.render(e)}get names(){let e=P5(super.names,this.from);return P5(e,this.to)}},z5=class extends q5{constructor(e,A,i,n){super(),this.loop=e,this.varKind=A,this.name=i,this.iterable=n}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,A){if(super.optimizeNames(e,A))return this.iterable=fE(this.iterable,e,A),this}get names(){return hC(super.names,this.iterable.names)}},NX=(()=>{class t extends U0{constructor(A,i,n){super(),this.name=A,this.args=i,this.async=n}render(A){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(A)}}return t.kind="func",t})(),FX=(()=>{class t extends D4{render(A){return"return "+super.render(A)}}return t.kind="return",t})(),yL=class extends U0{render(e){let A="try"+super.render(e);return this.catch&&(A+=this.catch.render(e)),this.finally&&(A+=this.finally.render(e)),A}optimizeNodes(){var e,A;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(A=this.finally)===null||A===void 0||A.optimizeNodes(),this}optimizeNames(e,A){var i,n;return super.optimizeNames(e,A),(i=this.catch)===null||i===void 0||i.optimizeNames(e,A),(n=this.finally)===null||n===void 0||n.optimizeNames(e,A),this}get names(){let e=super.names;return this.catch&&hC(e,this.catch.names),this.finally&&hC(e,this.finally.names),e}},_X=(()=>{class t extends U0{constructor(A){super(),this.error=A}render(A){return`catch(${this.error})`+super.render(A)}}return t.kind="catch",t})(),GX=(()=>{class t extends U0{render(A){return"finally"+super.render(A)}}return t.kind="finally",t})(),vL=class{constructor(e,A={}){this._values={},this._blockStarts=[],this._constants={},this.opts=Fe(sA({},A),{_n:A.lines?` +`:""}),this._extScope=e,this._scope=new kg.Scope({parent:e}),this._nodes=[new mL]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,A){let i=this._extScope.value(e,A);return(this._values[i.prefix]||(this._values[i.prefix]=new Set)).add(i),i}getScopeValue(e,A){return this._extScope.getValue(e,A)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,A,i,n){let o=this._scope.toName(A);return i!==void 0&&n&&(this._constants[o.str]=i),this._leafNode(new BL(e,o,i)),o}const(e,A,i){return this._def(kg.varKinds.const,e,A,i)}let(e,A,i){return this._def(kg.varKinds.let,e,A,i)}var(e,A,i){return this._def(kg.varKinds.var,e,A,i)}assign(e,A,i){return this._leafNode(new O5(e,A,i))}add(e,A){return this._leafNode(new EL(e,Hi.operators.ADD,A))}code(e){return typeof e=="function"?e():e!==cn.nil&&this._leafNode(new fL(e)),this}object(...e){let A=["{"];for(let[i,n]of e)A.length>1&&A.push(","),A.push(i),(i!==n||this.opts.es5)&&(A.push(":"),(0,cn.addCodeArg)(A,n));return A.push("}"),new cn._Code(A)}if(e,A,i){if(this._blockNode(new H5(e)),A&&i)this.code(A).else().code(i).endIf();else if(A)this.code(A).endIf();else if(i)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new H5(e))}else(){return this._elseNode(new pL)}endIf(){return this._endBlockNode(H5,pL)}_for(e,A){return this._blockNode(e),A&&this.code(A).endFor(),this}for(e,A){return this._for(new DL(e),A)}forRange(e,A,i,n,o=this.opts.es5?kg.varKinds.var:kg.varKinds.let){let r=this._scope.toName(e);return this._for(new wL(o,r,A,i),()=>n(r))}forOf(e,A,i,n=kg.varKinds.const){let o=this._scope.toName(e);if(this.opts.es5){let r=A instanceof cn.Name?A:this.var("_arr",A);return this.forRange("_i",0,(0,cn._)`${r}.length`,s=>{this.var(o,(0,cn._)`${r}[${s}]`),i(o)})}return this._for(new z5("of",n,o,A),()=>i(o))}forIn(e,A,i,n=this.opts.es5?kg.varKinds.var:kg.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,cn._)`Object.keys(${A})`,i);let o=this._scope.toName(e);return this._for(new z5("in",n,o,A),()=>i(o))}endFor(){return this._endBlockNode(q5)}label(e){return this._leafNode(new QL(e))}break(e){return this._leafNode(new uL(e))}return(e){let A=new FX;if(this._blockNode(A),this.code(e),A.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(FX)}try(e,A,i){if(!A&&!i)throw new Error('CodeGen: "try" without "catch" and "finally"');let n=new yL;if(this._blockNode(n),this.code(e),A){let o=this.name("e");this._currNode=n.catch=new _X(o),A(o)}return i&&(this._currNode=n.finally=new GX,this.code(i)),this._endBlockNode(_X,GX)}throw(e){return this._leafNode(new hL(e))}block(e,A){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(A),this}endBlock(e){let A=this._blockStarts.pop();if(A===void 0)throw new Error("CodeGen: not in self-balancing block");let i=this._nodes.length-A;if(i<0||e!==void 0&&i!==e)throw new Error(`CodeGen: wrong number of nodes: ${i} vs ${e} expected`);return this._nodes.length=A,this}func(e,A=cn.nil,i,n){return this._blockNode(new NX(e,A,i)),n&&this.code(n).endFunc(),this}endFunc(){return this._endBlockNode(NX)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,A){let i=this._currNode;if(i instanceof e||A&&i instanceof A)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${A?`${e.kind}/${A.kind}`:e.kind}"`)}_elseNode(e){let A=this._currNode;if(!(A instanceof H5))throw new Error('CodeGen: "else" without "if"');return this._currNode=A.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let A=this._nodes;A[A.length-1]=e}};Hi.CodeGen=vL;function hC(t,e){for(let A in e)t[A]=(t[A]||0)+(e[A]||0);return t}function P5(t,e){return e instanceof cn._CodeOrName?hC(t,e.names):t}function fE(t,e,A){if(t instanceof cn.Name)return i(t);if(!n(t))return t;return new cn._Code(t._items.reduce((o,r)=>(r instanceof cn.Name&&(r=i(r)),r instanceof cn._Code?o.push(...r._items):o.push(r),o),[]));function i(o){let r=A[o.str];return r===void 0||e[o.str]!==1?o:(delete e[o.str],r)}function n(o){return o instanceof cn._Code&&o._items.some(r=>r instanceof cn.Name&&e[r.str]===1&&A[r.str]!==void 0)}}function l9A(t,e){for(let A in e)t[A]=(t[A]||0)-(e[A]||0)}function KX(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,cn._)`!${ML(t)}`}Hi.not=KX;var I9A=UX(Hi.operators.AND);function C9A(...t){return t.reduce(I9A)}Hi.and=C9A;var d9A=UX(Hi.operators.OR);function B9A(...t){return t.reduce(d9A)}Hi.or=B9A;function UX(t){return(e,A)=>e===cn.nil?A:A===cn.nil?e:(0,cn._)`${ML(e)} ${t} ${ML(A)}`}function ML(t){return t instanceof cn.Name?t:(0,cn._)`(${t})`}});var wn=He(ji=>{"use strict";Object.defineProperty(ji,"__esModule",{value:!0});ji.checkStrictMode=ji.getErrorPath=ji.Type=ji.useFunc=ji.setEvaluated=ji.evaluatedPropsToName=ji.mergeEvaluated=ji.eachItem=ji.unescapeJsonPointer=ji.escapeJsonPointer=ji.escapeFragment=ji.unescapeFragment=ji.schemaRefOrVal=ji.schemaHasRulesButRef=ji.schemaHasRules=ji.checkUnknownRules=ji.alwaysValidSchema=ji.toHash=void 0;var yo=Pi(),E9A=p4();function Q9A(t){let e={};for(let A of t)e[A]=!0;return e}ji.toHash=Q9A;function u9A(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(TX(t,e),!HX(e,t.self.RULES.all))}ji.alwaysValidSchema=u9A;function TX(t,e=t.schema){let{opts:A,self:i}=t;if(!A.strictSchema||typeof e=="boolean")return;let n=i.RULES.keywords;for(let o in e)n[o]||PX(t,`unknown keyword: "${o}"`)}ji.checkUnknownRules=TX;function HX(t,e){if(typeof t=="boolean")return!t;for(let A in t)if(e[A])return!0;return!1}ji.schemaHasRules=HX;function h9A(t,e){if(typeof t=="boolean")return!t;for(let A in t)if(A!=="$ref"&&e.all[A])return!0;return!1}ji.schemaHasRulesButRef=h9A;function f9A({topSchemaRef:t,schemaPath:e},A,i,n){if(!n){if(typeof A=="number"||typeof A=="boolean")return A;if(typeof A=="string")return(0,yo._)`${A}`}return(0,yo._)`${t}${e}${(0,yo.getProperty)(i)}`}ji.schemaRefOrVal=f9A;function m9A(t){return OX(decodeURIComponent(t))}ji.unescapeFragment=m9A;function p9A(t){return encodeURIComponent(kL(t))}ji.escapeFragment=p9A;function kL(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}ji.escapeJsonPointer=kL;function OX(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}ji.unescapeJsonPointer=OX;function D9A(t,e){if(Array.isArray(t))for(let A of t)e(A);else e(t)}ji.eachItem=D9A;function JX({mergeNames:t,mergeToName:e,mergeValues:A,resultToName:i}){return(n,o,r,s)=>{let a=r===void 0?o:r instanceof yo.Name?(o instanceof yo.Name?t(n,o,r):e(n,o,r),r):o instanceof yo.Name?(e(n,r,o),o):A(o,r);return s===yo.Name&&!(a instanceof yo.Name)?i(n,a):a}}ji.mergeEvaluated={props:JX({mergeNames:(t,e,A)=>t.if((0,yo._)`${A} !== true && ${e} !== undefined`,()=>{t.if((0,yo._)`${e} === true`,()=>t.assign(A,!0),()=>t.assign(A,(0,yo._)`${A} || {}`).code((0,yo._)`Object.assign(${A}, ${e})`))}),mergeToName:(t,e,A)=>t.if((0,yo._)`${A} !== true`,()=>{e===!0?t.assign(A,!0):(t.assign(A,(0,yo._)`${A} || {}`),SL(t,A,e))}),mergeValues:(t,e)=>t===!0?!0:sA(sA({},t),e),resultToName:zX}),items:JX({mergeNames:(t,e,A)=>t.if((0,yo._)`${A} !== true && ${e} !== undefined`,()=>t.assign(A,(0,yo._)`${e} === true ? true : ${A} > ${e} ? ${A} : ${e}`)),mergeToName:(t,e,A)=>t.if((0,yo._)`${A} !== true`,()=>t.assign(A,e===!0?!0:(0,yo._)`${A} > ${e} ? ${A} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function zX(t,e){if(e===!0)return t.var("props",!0);let A=t.var("props",(0,yo._)`{}`);return e!==void 0&&SL(t,A,e),A}ji.evaluatedPropsToName=zX;function SL(t,e,A){Object.keys(A).forEach(i=>t.assign((0,yo._)`${e}${(0,yo.getProperty)(i)}`,!0))}ji.setEvaluated=SL;var YX={};function w9A(t,e){return t.scopeValue("func",{ref:e,code:YX[e.code]||(YX[e.code]=new E9A._Code(e.code))})}ji.useFunc=w9A;var bL=function(t){return t[t.Num=0]="Num",t[t.Str=1]="Str",t}(bL||(ji.Type=bL={}));function y9A(t,e,A){if(t instanceof yo.Name){let i=e===bL.Num;return A?i?(0,yo._)`"[" + ${t} + "]"`:(0,yo._)`"['" + ${t} + "']"`:i?(0,yo._)`"/" + ${t}`:(0,yo._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return A?(0,yo.getProperty)(t).toString():"/"+kL(t)}ji.getErrorPath=y9A;function PX(t,e,A=t.opts.strictSchema){if(A){if(e=`strict mode: ${e}`,A===!0)throw new Error(e);t.self.logger.warn(e)}}ji.checkStrictMode=PX});var J0=He(RL=>{"use strict";Object.defineProperty(RL,"__esModule",{value:!0});var Ns=Pi(),v9A={data:new Ns.Name("data"),valCxt:new Ns.Name("valCxt"),instancePath:new Ns.Name("instancePath"),parentData:new Ns.Name("parentData"),parentDataProperty:new Ns.Name("parentDataProperty"),rootData:new Ns.Name("rootData"),dynamicAnchors:new Ns.Name("dynamicAnchors"),vErrors:new Ns.Name("vErrors"),errors:new Ns.Name("errors"),this:new Ns.Name("this"),self:new Ns.Name("self"),scope:new Ns.Name("scope"),json:new Ns.Name("json"),jsonPos:new Ns.Name("jsonPos"),jsonLen:new Ns.Name("jsonLen"),jsonPart:new Ns.Name("jsonPart")};RL.default=v9A});var w4=He(Fs=>{"use strict";Object.defineProperty(Fs,"__esModule",{value:!0});Fs.extendErrors=Fs.resetErrorsCount=Fs.reportExtraError=Fs.reportError=Fs.keyword$DataError=Fs.keywordError=void 0;var En=Pi(),V5=wn(),ea=J0();Fs.keywordError={message:({keyword:t})=>(0,En.str)`must pass "${t}" keyword validation`};Fs.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,En.str)`"${t}" keyword must be ${e} ($data)`:(0,En.str)`"${t}" keyword is invalid ($data)`};function M9A(t,e=Fs.keywordError,A,i){let{it:n}=t,{gen:o,compositeRule:r,allErrors:s}=n,a=VX(t,e,A);i??(r||s)?jX(o,a):qX(n,(0,En._)`[${a}]`)}Fs.reportError=M9A;function b9A(t,e=Fs.keywordError,A){let{it:i}=t,{gen:n,compositeRule:o,allErrors:r}=i,s=VX(t,e,A);jX(n,s),o||r||qX(i,ea.default.vErrors)}Fs.reportExtraError=b9A;function k9A(t,e){t.assign(ea.default.errors,e),t.if((0,En._)`${ea.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,En._)`${ea.default.vErrors}.length`,e),()=>t.assign(ea.default.vErrors,null)))}Fs.resetErrorsCount=k9A;function S9A({gen:t,keyword:e,schemaValue:A,data:i,errsCount:n,it:o}){if(n===void 0)throw new Error("ajv implementation error");let r=t.name("err");t.forRange("i",n,ea.default.errors,s=>{t.const(r,(0,En._)`${ea.default.vErrors}[${s}]`),t.if((0,En._)`${r}.instancePath === undefined`,()=>t.assign((0,En._)`${r}.instancePath`,(0,En.strConcat)(ea.default.instancePath,o.errorPath))),t.assign((0,En._)`${r}.schemaPath`,(0,En.str)`${o.errSchemaPath}/${e}`),o.opts.verbose&&(t.assign((0,En._)`${r}.schema`,A),t.assign((0,En._)`${r}.data`,i))})}Fs.extendErrors=S9A;function jX(t,e){let A=t.const("err",e);t.if((0,En._)`${ea.default.vErrors} === null`,()=>t.assign(ea.default.vErrors,(0,En._)`[${A}]`),(0,En._)`${ea.default.vErrors}.push(${A})`),t.code((0,En._)`${ea.default.errors}++`)}function qX(t,e){let{gen:A,validateName:i,schemaEnv:n}=t;n.$async?A.throw((0,En._)`new ${t.ValidationError}(${e})`):(A.assign((0,En._)`${i}.errors`,e),A.return(!1))}var fC={keyword:new En.Name("keyword"),schemaPath:new En.Name("schemaPath"),params:new En.Name("params"),propertyName:new En.Name("propertyName"),message:new En.Name("message"),schema:new En.Name("schema"),parentSchema:new En.Name("parentSchema")};function VX(t,e,A){let{createErrors:i}=t.it;return i===!1?(0,En._)`{}`:R9A(t,e,A)}function R9A(t,e,A={}){let{gen:i,it:n}=t,o=[L9A(n,A),x9A(t,A)];return N9A(t,e,o),i.object(...o)}function L9A({errorPath:t},{instancePath:e}){let A=e?(0,En.str)`${t}${(0,V5.getErrorPath)(e,V5.Type.Str)}`:t;return[ea.default.instancePath,(0,En.strConcat)(ea.default.instancePath,A)]}function x9A({keyword:t,it:{errSchemaPath:e}},{schemaPath:A,parentSchema:i}){let n=i?e:(0,En.str)`${e}/${t}`;return A&&(n=(0,En.str)`${n}${(0,V5.getErrorPath)(A,V5.Type.Str)}`),[fC.schemaPath,n]}function N9A(t,{params:e,message:A},i){let{keyword:n,data:o,schemaValue:r,it:s}=t,{opts:a,propertyName:c,topSchemaRef:g,schemaPath:I}=s;i.push([fC.keyword,n],[fC.params,typeof e=="function"?e(t):e||(0,En._)`{}`]),a.messages&&i.push([fC.message,typeof A=="function"?A(t):A]),a.verbose&&i.push([fC.schema,r],[fC.parentSchema,(0,En._)`${g}${I}`],[ea.default.data,o]),c&&i.push([fC.propertyName,c])}});var WX=He(mE=>{"use strict";Object.defineProperty(mE,"__esModule",{value:!0});mE.boolOrEmptySchema=mE.topBoolOrEmptySchema=void 0;var F9A=w4(),_9A=Pi(),G9A=J0(),K9A={message:"boolean schema is false"};function U9A(t){let{gen:e,schema:A,validateName:i}=t;A===!1?ZX(t,!1):typeof A=="object"&&A.$async===!0?e.return(G9A.default.data):(e.assign((0,_9A._)`${i}.errors`,null),e.return(!0))}mE.topBoolOrEmptySchema=U9A;function J9A(t,e){let{gen:A,schema:i}=t;i===!1?(A.var(e,!1),ZX(t)):A.var(e,!0)}mE.boolOrEmptySchema=J9A;function ZX(t,e){let{gen:A,data:i}=t,n={gen:A,keyword:"false schema",data:i,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,F9A.reportError)(n,K9A,void 0,e)}});var LL=He(pE=>{"use strict";Object.defineProperty(pE,"__esModule",{value:!0});pE.getRules=pE.isJSONType=void 0;var Y9A=["string","number","integer","boolean","null","object","array"],T9A=new Set(Y9A);function H9A(t){return typeof t=="string"&&T9A.has(t)}pE.isJSONType=H9A;function O9A(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:Fe(sA({},t),{integer:!0,boolean:!0,null:!0}),rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}pE.getRules=O9A});var xL=He(D1=>{"use strict";Object.defineProperty(D1,"__esModule",{value:!0});D1.shouldUseRule=D1.shouldUseGroup=D1.schemaHasRulesForType=void 0;function z9A({schema:t,self:e},A){let i=e.RULES.types[A];return i&&i!==!0&&XX(t,i)}D1.schemaHasRulesForType=z9A;function XX(t,e){return e.rules.some(A=>$X(t,A))}D1.shouldUseGroup=XX;function $X(t,e){var A;return t[e.keyword]!==void 0||((A=e.definition.implements)===null||A===void 0?void 0:A.some(i=>t[i]!==void 0))}D1.shouldUseRule=$X});var y4=He(_s=>{"use strict";Object.defineProperty(_s,"__esModule",{value:!0});_s.reportTypeError=_s.checkDataTypes=_s.checkDataType=_s.coerceAndCheckDataType=_s.getJSONTypes=_s.getSchemaTypes=_s.DataType=void 0;var P9A=LL(),j9A=xL(),q9A=w4(),ki=Pi(),A$=wn(),DE=function(t){return t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong",t}(DE||(_s.DataType=DE={}));function V9A(t){let e=e$(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}_s.getSchemaTypes=V9A;function e$(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(P9A.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}_s.getJSONTypes=e$;function Z9A(t,e){let{gen:A,data:i,opts:n}=t,o=W9A(e,n.coerceTypes),r=e.length>0&&!(o.length===0&&e.length===1&&(0,j9A.schemaHasRulesForType)(t,e[0]));if(r){let s=FL(e,i,n.strictNumbers,DE.Wrong);A.if(s,()=>{o.length?X9A(t,e,o):_L(t)})}return r}_s.coerceAndCheckDataType=Z9A;var t$=new Set(["string","number","integer","boolean","null"]);function W9A(t,e){return e?t.filter(A=>t$.has(A)||e==="array"&&A==="array"):[]}function X9A(t,e,A){let{gen:i,data:n,opts:o}=t,r=i.let("dataType",(0,ki._)`typeof ${n}`),s=i.let("coerced",(0,ki._)`undefined`);o.coerceTypes==="array"&&i.if((0,ki._)`${r} == 'object' && Array.isArray(${n}) && ${n}.length == 1`,()=>i.assign(n,(0,ki._)`${n}[0]`).assign(r,(0,ki._)`typeof ${n}`).if(FL(e,n,o.strictNumbers),()=>i.assign(s,n))),i.if((0,ki._)`${s} !== undefined`);for(let c of A)(t$.has(c)||c==="array"&&o.coerceTypes==="array")&&a(c);i.else(),_L(t),i.endIf(),i.if((0,ki._)`${s} !== undefined`,()=>{i.assign(n,s),$9A(t,s)});function a(c){switch(c){case"string":i.elseIf((0,ki._)`${r} == "number" || ${r} == "boolean"`).assign(s,(0,ki._)`"" + ${n}`).elseIf((0,ki._)`${n} === null`).assign(s,(0,ki._)`""`);return;case"number":i.elseIf((0,ki._)`${r} == "boolean" || ${n} === null || (${r} == "string" && ${n} && ${n} == +${n})`).assign(s,(0,ki._)`+${n}`);return;case"integer":i.elseIf((0,ki._)`${r} === "boolean" || ${n} === null || (${r} === "string" && ${n} && ${n} == +${n} && !(${n} % 1))`).assign(s,(0,ki._)`+${n}`);return;case"boolean":i.elseIf((0,ki._)`${n} === "false" || ${n} === 0 || ${n} === null`).assign(s,!1).elseIf((0,ki._)`${n} === "true" || ${n} === 1`).assign(s,!0);return;case"null":i.elseIf((0,ki._)`${n} === "" || ${n} === 0 || ${n} === false`),i.assign(s,null);return;case"array":i.elseIf((0,ki._)`${r} === "string" || ${r} === "number" - || ${r} === "boolean" || ${n} === null`).assign(s,(0,ki._)`[${n}]`)}}}function W9A({gen:t,parentData:e,parentDataProperty:A},i){t.if((0,ki._)`${e} !== undefined`,()=>t.assign((0,ki._)`${e}[${A}]`,i))}function NL(t,e,A,i=DE.Correct){let n=i===DE.Correct?ki.operators.EQ:ki.operators.NEQ,o;switch(t){case"null":return(0,ki._)`${e} ${n} null`;case"array":o=(0,ki._)`Array.isArray(${e})`;break;case"object":o=(0,ki._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":o=r((0,ki._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":o=r();break;default:return(0,ki._)`typeof ${e} ${n} ${t}`}return i===DE.Correct?o:(0,ki.not)(o);function r(s=ki.nil){return(0,ki.and)((0,ki._)`typeof ${e} == "number"`,s,A?(0,ki._)`isFinite(${e})`:ki.nil)}}_s.checkDataType=NL;function FL(t,e,A,i){if(t.length===1)return NL(t[0],e,A,i);let n,o=(0,A$.toHash)(t);if(o.array&&o.object){let r=(0,ki._)`typeof ${e} != "object"`;n=o.null?r:(0,ki._)`!${e} || ${r}`,delete o.null,delete o.array,delete o.object}else n=ki.nil;o.number&&delete o.integer;for(let r in o)n=(0,ki.and)(n,NL(r,e,A,i));return n}_s.checkDataTypes=FL;var X9A={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,ki._)`{type: ${t}}`:(0,ki._)`{type: ${e}}`};function _L(t){let e=$9A(t);(0,P9A.reportError)(e,X9A)}_s.reportTypeError=_L;function $9A(t){let{gen:e,data:A,schema:i}=t,n=(0,A$.schemaRefOrVal)(t,i,"type");return{gen:e,keyword:"type",data:A,schema:i.type,schemaCode:n,schemaValue:n,parentSchema:i,params:{},it:t}}});var n$=He(Z5=>{"use strict";Object.defineProperty(Z5,"__esModule",{value:!0});Z5.assignDefaults=void 0;var wE=Pi(),AMA=wn();function eMA(t,e){let{properties:A,items:i}=t.schema;if(e==="object"&&A)for(let n in A)i$(t,n,A[n].default);else e==="array"&&Array.isArray(i)&&i.forEach((n,o)=>i$(t,o,n.default))}Z5.assignDefaults=eMA;function i$(t,e,A){let{gen:i,compositeRule:n,data:o,opts:r}=t;if(A===void 0)return;let s=(0,wE._)`${o}${(0,wE.getProperty)(e)}`;if(n){(0,AMA.checkStrictMode)(t,`default is ignored for: ${s}`);return}let a=(0,wE._)`${s} === undefined`;r.useDefaults==="empty"&&(a=(0,wE._)`${a} || ${s} === null || ${s} === ""`),i.if(a,(0,wE._)`${s} = ${(0,wE.stringify)(A)}`)}});var Oc=He(co=>{"use strict";Object.defineProperty(co,"__esModule",{value:!0});co.validateUnion=co.validateArray=co.usePattern=co.callValidateCode=co.schemaProperties=co.allSchemaProperties=co.noPropertyInData=co.propertyInData=co.isOwnProperty=co.hasPropFunc=co.reportMissingProp=co.checkMissingProp=co.checkReportMissingProp=void 0;var Ho=Pi(),GL=wn(),w1=J0(),tMA=wn();function iMA(t,e){let{gen:A,data:i,it:n}=t;A.if(UL(A,i,e,n.opts.ownProperties),()=>{t.setParams({missingProperty:(0,Ho._)`${e}`},!0),t.error()})}co.checkReportMissingProp=iMA;function nMA({gen:t,data:e,it:{opts:A}},i,n){return(0,Ho.or)(...i.map(o=>(0,Ho.and)(UL(t,e,o,A.ownProperties),(0,Ho._)`${n} = ${o}`)))}co.checkMissingProp=nMA;function oMA(t,e){t.setParams({missingProperty:e},!0),t.error()}co.reportMissingProp=oMA;function o$(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,Ho._)`Object.prototype.hasOwnProperty`})}co.hasPropFunc=o$;function KL(t,e,A){return(0,Ho._)`${o$(t)}.call(${e}, ${A})`}co.isOwnProperty=KL;function rMA(t,e,A,i){let n=(0,Ho._)`${e}${(0,Ho.getProperty)(A)} !== undefined`;return i?(0,Ho._)`${n} && ${KL(t,e,A)}`:n}co.propertyInData=rMA;function UL(t,e,A,i){let n=(0,Ho._)`${e}${(0,Ho.getProperty)(A)} === undefined`;return i?(0,Ho.or)(n,(0,Ho.not)(KL(t,e,A))):n}co.noPropertyInData=UL;function r$(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}co.allSchemaProperties=r$;function sMA(t,e){return r$(e).filter(A=>!(0,GL.alwaysValidSchema)(t,e[A]))}co.schemaProperties=sMA;function aMA({schemaCode:t,data:e,it:{gen:A,topSchemaRef:i,schemaPath:n,errorPath:o},it:r},s,a,c){let g=c?(0,Ho._)`${t}, ${e}, ${i}${n}`:e,I=[[w1.default.instancePath,(0,Ho.strConcat)(w1.default.instancePath,o)],[w1.default.parentData,r.parentData],[w1.default.parentDataProperty,r.parentDataProperty],[w1.default.rootData,w1.default.rootData]];r.opts.dynamicRef&&I.push([w1.default.dynamicAnchors,w1.default.dynamicAnchors]);let C=(0,Ho._)`${g}, ${A.object(...I)}`;return a!==Ho.nil?(0,Ho._)`${s}.call(${a}, ${C})`:(0,Ho._)`${s}(${C})`}co.callValidateCode=aMA;var cMA=(0,Ho._)`new RegExp`;function gMA({gen:t,it:{opts:e}},A){let i=e.unicodeRegExp?"u":"",{regExp:n}=e.code,o=n(A,i);return t.scopeValue("pattern",{key:o.toString(),ref:o,code:(0,Ho._)`${n.code==="new RegExp"?cMA:(0,tMA.useFunc)(t,n)}(${A}, ${i})`})}co.usePattern=gMA;function lMA(t){let{gen:e,data:A,keyword:i,it:n}=t,o=e.name("valid");if(n.allErrors){let s=e.let("valid",!0);return r(()=>e.assign(s,!1)),s}return e.var(o,!0),r(()=>e.break()),o;function r(s){let a=e.const("len",(0,Ho._)`${A}.length`);e.forRange("i",0,a,c=>{t.subschema({keyword:i,dataProp:c,dataPropType:GL.Type.Num},o),e.if((0,Ho.not)(o),s)})}}co.validateArray=lMA;function IMA(t){let{gen:e,schema:A,keyword:i,it:n}=t;if(!Array.isArray(A))throw new Error("ajv implementation error");if(A.some(a=>(0,GL.alwaysValidSchema)(n,a))&&!n.opts.unevaluated)return;let r=e.let("valid",!1),s=e.name("_valid");e.block(()=>A.forEach((a,c)=>{let g=t.subschema({keyword:i,schemaProp:c,compositeRule:!0},s);e.assign(r,(0,Ho._)`${r} || ${s}`),t.mergeValidEvaluated(g,s)||e.if((0,Ho.not)(r))})),t.result(r,()=>t.reset(),()=>t.error(!0))}co.validateUnion=IMA});var c$=He(Fl=>{"use strict";Object.defineProperty(Fl,"__esModule",{value:!0});Fl.validateKeywordUsage=Fl.validSchemaType=Fl.funcKeywordCode=Fl.macroKeywordCode=void 0;var ta=Pi(),mC=J0(),CMA=Oc(),dMA=w4();function BMA(t,e){let{gen:A,keyword:i,schema:n,parentSchema:o,it:r}=t,s=e.macro.call(r.self,n,o,r),a=a$(A,i,s);r.opts.validateSchema!==!1&&r.self.validateSchema(s,!0);let c=A.name("valid");t.subschema({schema:s,schemaPath:ta.nil,errSchemaPath:`${r.errSchemaPath}/${i}`,topSchemaRef:a,compositeRule:!0},c),t.pass(c,()=>t.error(!0))}Fl.macroKeywordCode=BMA;function EMA(t,e){var A;let{gen:i,keyword:n,schema:o,parentSchema:r,$data:s,it:a}=t;uMA(a,e);let c=!s&&e.compile?e.compile.call(a.self,o,r,a):e.validate,g=a$(i,n,c),I=i.let("valid");t.block$data(I,C),t.ok((A=e.valid)!==null&&A!==void 0?A:I);function C(){if(e.errors===!1)E(),e.modifying&&s$(t),u(()=>t.error());else{let h=e.async?d():B();e.modifying&&s$(t),u(()=>QMA(t,h))}}function d(){let h=i.let("ruleErrs",null);return i.try(()=>E((0,ta._)`await `),w=>i.assign(I,!1).if((0,ta._)`${w} instanceof ${a.ValidationError}`,()=>i.assign(h,(0,ta._)`${w}.errors`),()=>i.throw(w))),h}function B(){let h=(0,ta._)`${g}.errors`;return i.assign(h,null),E(ta.nil),h}function E(h=e.async?(0,ta._)`await `:ta.nil){let w=a.opts.passContext?mC.default.this:mC.default.self,x=!("compile"in e&&!s||e.schema===!1);i.assign(I,(0,ta._)`${h}${(0,CMA.callValidateCode)(t,g,w,x)}`,e.modifying)}function u(h){var w;i.if((0,ta.not)((w=e.valid)!==null&&w!==void 0?w:I),h)}}Fl.funcKeywordCode=EMA;function s$(t){let{gen:e,data:A,it:i}=t;e.if(i.parentData,()=>e.assign(A,(0,ta._)`${i.parentData}[${i.parentDataProperty}]`))}function QMA(t,e){let{gen:A}=t;A.if((0,ta._)`Array.isArray(${e})`,()=>{A.assign(mC.default.vErrors,(0,ta._)`${mC.default.vErrors} === null ? ${e} : ${mC.default.vErrors}.concat(${e})`).assign(mC.default.errors,(0,ta._)`${mC.default.vErrors}.length`),(0,dMA.extendErrors)(t)},()=>t.error())}function uMA({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function a$(t,e,A){if(A===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof A=="function"?{ref:A}:{ref:A,code:(0,ta.stringify)(A)})}function hMA(t,e,A=!1){return!e.length||e.some(i=>i==="array"?Array.isArray(t):i==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==i||A&&typeof t>"u")}Fl.validSchemaType=hMA;function fMA({schema:t,opts:e,self:A,errSchemaPath:i},n,o){if(Array.isArray(n.keyword)?!n.keyword.includes(o):n.keyword!==o)throw new Error("ajv implementation error");let r=n.dependencies;if(r?.some(s=>!Object.prototype.hasOwnProperty.call(t,s)))throw new Error(`parent schema must have dependencies of ${o}: ${r.join(",")}`);if(n.validateSchema&&!n.validateSchema(t[o])){let a=`keyword "${o}" value is invalid at path "${i}": `+A.errorsText(n.validateSchema.errors);if(e.validateSchema==="log")A.logger.error(a);else throw new Error(a)}}Fl.validateKeywordUsage=fMA});var l$=He(y1=>{"use strict";Object.defineProperty(y1,"__esModule",{value:!0});y1.extendSubschemaMode=y1.extendSubschemaData=y1.getSubschema=void 0;var _l=Pi(),g$=wn();function mMA(t,{keyword:e,schemaProp:A,schema:i,schemaPath:n,errSchemaPath:o,topSchemaRef:r}){if(e!==void 0&&i!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let s=t.schema[e];return A===void 0?{schema:s,schemaPath:(0,_l._)`${t.schemaPath}${(0,_l.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:s[A],schemaPath:(0,_l._)`${t.schemaPath}${(0,_l.getProperty)(e)}${(0,_l.getProperty)(A)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,g$.escapeFragment)(A)}`}}if(i!==void 0){if(n===void 0||o===void 0||r===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:i,schemaPath:n,topSchemaRef:r,errSchemaPath:o}}throw new Error('either "keyword" or "schema" must be passed')}y1.getSubschema=mMA;function pMA(t,e,{dataProp:A,dataPropType:i,data:n,dataTypes:o,propertyName:r}){if(n!==void 0&&A!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=e;if(A!==void 0){let{errorPath:c,dataPathArr:g,opts:I}=e,C=s.let("data",(0,_l._)`${e.data}${(0,_l.getProperty)(A)}`,!0);a(C),t.errorPath=(0,_l.str)`${c}${(0,g$.getErrorPath)(A,i,I.jsPropertySyntax)}`,t.parentDataProperty=(0,_l._)`${A}`,t.dataPathArr=[...g,t.parentDataProperty]}if(n!==void 0){let c=n instanceof _l.Name?n:s.let("data",n,!0);a(c),r!==void 0&&(t.propertyName=r)}o&&(t.dataTypes=o);function a(c){t.data=c,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,c]}}y1.extendSubschemaData=pMA;function DMA(t,{jtdDiscriminator:e,jtdMetadata:A,compositeRule:i,createErrors:n,allErrors:o}){i!==void 0&&(t.compositeRule=i),n!==void 0&&(t.createErrors=n),o!==void 0&&(t.allErrors=o),t.jtdDiscriminator=e,t.jtdMetadata=A}y1.extendSubschemaMode=DMA});var JL=He((D8e,I$)=>{"use strict";I$.exports=function t(e,A){if(e===A)return!0;if(e&&A&&typeof e=="object"&&typeof A=="object"){if(e.constructor!==A.constructor)return!1;var i,n,o;if(Array.isArray(e)){if(i=e.length,i!=A.length)return!1;for(n=i;n--!==0;)if(!t(e[n],A[n]))return!1;return!0}if(e.constructor===RegExp)return e.source===A.source&&e.flags===A.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===A.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===A.toString();if(o=Object.keys(e),i=o.length,i!==Object.keys(A).length)return!1;for(n=i;n--!==0;)if(!Object.prototype.hasOwnProperty.call(A,o[n]))return!1;for(n=i;n--!==0;){var r=o[n];if(!t(e[r],A[r]))return!1}return!0}return e!==e&&A!==A}});var d$=He((w8e,C$)=>{"use strict";var v1=C$.exports=function(t,e,A){typeof e=="function"&&(A=e,e={}),A=e.cb||A;var i=typeof A=="function"?A:A.pre||function(){},n=A.post||function(){};W5(e,i,n,t,"",t)};v1.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};v1.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};v1.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};v1.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function W5(t,e,A,i,n,o,r,s,a,c){if(i&&typeof i=="object"&&!Array.isArray(i)){e(i,n,o,r,s,a,c);for(var g in i){var I=i[g];if(Array.isArray(I)){if(g in v1.arrayKeywords)for(var C=0;C{"use strict";Object.defineProperty(La,"__esModule",{value:!0});La.getSchemaRefs=La.resolveUrl=La.normalizeId=La._getFullPath=La.getFullPath=La.inlineRef=void 0;var yMA=wn(),vMA=JL(),MMA=d$(),bMA=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function kMA(t,e=!0){return typeof t=="boolean"?!0:e===!0?!YL(t):e?B$(t)<=e:!1}La.inlineRef=kMA;var SMA=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function YL(t){for(let e in t){if(SMA.has(e))return!0;let A=t[e];if(Array.isArray(A)&&A.some(YL)||typeof A=="object"&&YL(A))return!0}return!1}function B$(t){let e=0;for(let A in t){if(A==="$ref")return 1/0;if(e++,!bMA.has(A)&&(typeof t[A]=="object"&&(0,yMA.eachItem)(t[A],i=>e+=B$(i)),e===1/0))return 1/0}return e}function E$(t,e="",A){A!==!1&&(e=yE(e));let i=t.parse(e);return Q$(t,i)}La.getFullPath=E$;function Q$(t,e){return t.serialize(e).split("#")[0]+"#"}La._getFullPath=Q$;var RMA=/#\/?$/;function yE(t){return t?t.replace(RMA,""):""}La.normalizeId=yE;function LMA(t,e,A){return A=yE(A),t.resolve(e,A)}La.resolveUrl=LMA;var xMA=/^[a-z_][-a-z0-9._]*$/i;function NMA(t,e){if(typeof t=="boolean")return{};let{schemaId:A,uriResolver:i}=this.opts,n=yE(t[A]||e),o={"":n},r=E$(i,n,!1),s={},a=new Set;return MMA(t,{allKeys:!0},(I,C,d,B)=>{if(B===void 0)return;let E=r+C,u=o[B];typeof I[A]=="string"&&(u=h.call(this,I[A])),w.call(this,I.$anchor),w.call(this,I.$dynamicAnchor),o[C]=u;function h(x){let R=this.opts.uriResolver.resolve;if(x=yE(u?R(u,x):x),a.has(x))throw g(x);a.add(x);let D=this.refs[x];return typeof D=="string"&&(D=this.refs[D]),typeof D=="object"?c(I,D.schema,x):x!==yE(E)&&(x[0]==="#"?(c(I,s[x],x),s[x]=I):this.refs[x]=E),x}function w(x){if(typeof x=="string"){if(!xMA.test(x))throw new Error(`invalid anchor "${x}"`);h.call(this,`#${x}`)}}}),s;function c(I,C,d){if(C!==void 0&&!vMA(I,C))throw g(d)}function g(I){return new Error(`reference "${I}" resolves to more than one schema`)}}La.getSchemaRefs=NMA});var k4=He(M1=>{"use strict";Object.defineProperty(M1,"__esModule",{value:!0});M1.getData=M1.KeywordCxt=M1.validateFunctionCode=void 0;var p$=WX(),u$=y4(),HL=xL(),X5=y4(),FMA=n$(),b4=c$(),TL=l$(),wt=Pi(),si=J0(),_MA=v4(),Y0=wn(),M4=w4();function GMA(t){if(y$(t)&&(v$(t),w$(t))){JMA(t);return}D$(t,()=>(0,p$.topBoolOrEmptySchema)(t))}M1.validateFunctionCode=GMA;function D$({gen:t,validateName:e,schema:A,schemaEnv:i,opts:n},o){n.code.es5?t.func(e,(0,wt._)`${si.default.data}, ${si.default.valCxt}`,i.$async,()=>{t.code((0,wt._)`"use strict"; ${h$(A,n)}`),UMA(t,n),t.code(o)}):t.func(e,(0,wt._)`${si.default.data}, ${KMA(n)}`,i.$async,()=>t.code(h$(A,n)).code(o))}function KMA(t){return(0,wt._)`{${si.default.instancePath}="", ${si.default.parentData}, ${si.default.parentDataProperty}, ${si.default.rootData}=${si.default.data}${t.dynamicRef?(0,wt._)`, ${si.default.dynamicAnchors}={}`:wt.nil}}={}`}function UMA(t,e){t.if(si.default.valCxt,()=>{t.var(si.default.instancePath,(0,wt._)`${si.default.valCxt}.${si.default.instancePath}`),t.var(si.default.parentData,(0,wt._)`${si.default.valCxt}.${si.default.parentData}`),t.var(si.default.parentDataProperty,(0,wt._)`${si.default.valCxt}.${si.default.parentDataProperty}`),t.var(si.default.rootData,(0,wt._)`${si.default.valCxt}.${si.default.rootData}`),e.dynamicRef&&t.var(si.default.dynamicAnchors,(0,wt._)`${si.default.valCxt}.${si.default.dynamicAnchors}`)},()=>{t.var(si.default.instancePath,(0,wt._)`""`),t.var(si.default.parentData,(0,wt._)`undefined`),t.var(si.default.parentDataProperty,(0,wt._)`undefined`),t.var(si.default.rootData,si.default.data),e.dynamicRef&&t.var(si.default.dynamicAnchors,(0,wt._)`{}`)})}function JMA(t){let{schema:e,opts:A,gen:i}=t;D$(t,()=>{A.$comment&&e.$comment&&b$(t),zMA(t),i.let(si.default.vErrors,null),i.let(si.default.errors,0),A.unevaluated&&YMA(t),M$(t),qMA(t)})}function YMA(t){let{gen:e,validateName:A}=t;t.evaluated=e.const("evaluated",(0,wt._)`${A}.evaluated`),e.if((0,wt._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,wt._)`${t.evaluated}.props`,(0,wt._)`undefined`)),e.if((0,wt._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,wt._)`${t.evaluated}.items`,(0,wt._)`undefined`))}function h$(t,e){let A=typeof t=="object"&&t[e.schemaId];return A&&(e.code.source||e.code.process)?(0,wt._)`/*# sourceURL=${A} */`:wt.nil}function TMA(t,e){if(y$(t)&&(v$(t),w$(t))){HMA(t,e);return}(0,p$.boolOrEmptySchema)(t,e)}function w$({schema:t,self:e}){if(typeof t=="boolean")return!t;for(let A in t)if(e.RULES.all[A])return!0;return!1}function y$(t){return typeof t.schema!="boolean"}function HMA(t,e){let{schema:A,gen:i,opts:n}=t;n.$comment&&A.$comment&&b$(t),PMA(t),jMA(t);let o=i.const("_errs",si.default.errors);M$(t,o),i.var(e,(0,wt._)`${o} === ${si.default.errors}`)}function v$(t){(0,Y0.checkUnknownRules)(t),OMA(t)}function M$(t,e){if(t.opts.jtd)return f$(t,[],!1,e);let A=(0,u$.getSchemaTypes)(t.schema),i=(0,u$.coerceAndCheckDataType)(t,A);f$(t,A,!i,e)}function OMA(t){let{schema:e,errSchemaPath:A,opts:i,self:n}=t;e.$ref&&i.ignoreKeywordsWithRef&&(0,Y0.schemaHasRulesButRef)(e,n.RULES)&&n.logger.warn(`$ref: keywords ignored in schema at path "${A}"`)}function zMA(t){let{schema:e,opts:A}=t;e.default!==void 0&&A.useDefaults&&A.strictSchema&&(0,Y0.checkStrictMode)(t,"default is ignored in the schema root")}function PMA(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,_MA.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function jMA(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function b$({gen:t,schemaEnv:e,schema:A,errSchemaPath:i,opts:n}){let o=A.$comment;if(n.$comment===!0)t.code((0,wt._)`${si.default.self}.logger.log(${o})`);else if(typeof n.$comment=="function"){let r=(0,wt.str)`${i}/$comment`,s=t.scopeValue("root",{ref:e.root});t.code((0,wt._)`${si.default.self}.opts.$comment(${o}, ${r}, ${s}.schema)`)}}function qMA(t){let{gen:e,schemaEnv:A,validateName:i,ValidationError:n,opts:o}=t;A.$async?e.if((0,wt._)`${si.default.errors} === 0`,()=>e.return(si.default.data),()=>e.throw((0,wt._)`new ${n}(${si.default.vErrors})`)):(e.assign((0,wt._)`${i}.errors`,si.default.vErrors),o.unevaluated&&VMA(t),e.return((0,wt._)`${si.default.errors} === 0`))}function VMA({gen:t,evaluated:e,props:A,items:i}){A instanceof wt.Name&&t.assign((0,wt._)`${e}.props`,A),i instanceof wt.Name&&t.assign((0,wt._)`${e}.items`,i)}function f$(t,e,A,i){let{gen:n,schema:o,data:r,allErrors:s,opts:a,self:c}=t,{RULES:g}=c;if(o.$ref&&(a.ignoreKeywordsWithRef||!(0,Y0.schemaHasRulesButRef)(o,g))){n.block(()=>S$(t,"$ref",g.all.$ref.definition));return}a.jtd||ZMA(t,e),n.block(()=>{for(let C of g.rules)I(C);I(g.post)});function I(C){(0,HL.shouldUseGroup)(o,C)&&(C.type?(n.if((0,X5.checkDataType)(C.type,r,a.strictNumbers)),m$(t,C),e.length===1&&e[0]===C.type&&A&&(n.else(),(0,X5.reportTypeError)(t)),n.endIf()):m$(t,C),s||n.if((0,wt._)`${si.default.errors} === ${i||0}`))}}function m$(t,e){let{gen:A,schema:i,opts:{useDefaults:n}}=t;n&&(0,FMA.assignDefaults)(t,e.type),A.block(()=>{for(let o of e.rules)(0,HL.shouldUseRule)(i,o)&&S$(t,o.keyword,o.definition,e.type)})}function ZMA(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(WMA(t,e),t.opts.allowUnionTypes||XMA(t,e),$MA(t,t.dataTypes))}function WMA(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(A=>{k$(t.dataTypes,A)||OL(t,`type "${A}" not allowed by context "${t.dataTypes.join(",")}"`)}),ebA(t,e)}}function XMA(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&OL(t,"use allowUnionTypes to allow union type keyword")}function $MA(t,e){let A=t.self.RULES.all;for(let i in A){let n=A[i];if(typeof n=="object"&&(0,HL.shouldUseRule)(t.schema,n)){let{type:o}=n.definition;o.length&&!o.some(r=>AbA(e,r))&&OL(t,`missing type "${o.join(",")}" for keyword "${i}"`)}}}function AbA(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function k$(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function ebA(t,e){let A=[];for(let i of t.dataTypes)k$(e,i)?A.push(i):e.includes("integer")&&i==="number"&&A.push("integer");t.dataTypes=A}function OL(t,e){let A=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${A}" (strictTypes)`,(0,Y0.checkStrictMode)(t,e,t.opts.strictTypes)}var $5=class{constructor(e,A,i){if((0,b4.validateKeywordUsage)(e,A,i),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=i,this.data=e.data,this.schema=e.schema[i],this.$data=A.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Y0.schemaRefOrVal)(e,this.schema,i,this.$data),this.schemaType=A.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=A,this.$data)this.schemaCode=e.gen.const("vSchema",R$(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,b4.validSchemaType)(this.schema,A.schemaType,A.allowUndefined))throw new Error(`${i} value must be ${JSON.stringify(A.schemaType)}`);("code"in A?A.trackErrors:A.errors!==!1)&&(this.errsCount=e.gen.const("_errs",si.default.errors))}result(e,A,i){this.failResult((0,wt.not)(e),A,i)}failResult(e,A,i){this.gen.if(e),i?i():this.error(),A?(this.gen.else(),A(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,A){this.failResult((0,wt.not)(e),void 0,A)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:A}=this;this.fail((0,wt._)`${A} !== undefined && (${(0,wt.or)(this.invalid$data(),e)})`)}error(e,A,i){if(A){this.setParams(A),this._error(e,i),this.setParams({});return}this._error(e,i)}_error(e,A){(e?M4.reportExtraError:M4.reportError)(this,this.def.error,A)}$dataError(){(0,M4.reportError)(this,this.def.$dataError||M4.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,M4.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,A){A?Object.assign(this.params,e):this.params=e}block$data(e,A,i=wt.nil){this.gen.block(()=>{this.check$data(e,i),A()})}check$data(e=wt.nil,A=wt.nil){if(!this.$data)return;let{gen:i,schemaCode:n,schemaType:o,def:r}=this;i.if((0,wt.or)((0,wt._)`${n} === undefined`,A)),e!==wt.nil&&i.assign(e,!0),(o.length||r.validateSchema)&&(i.elseIf(this.invalid$data()),this.$dataError(),e!==wt.nil&&i.assign(e,!1)),i.else()}invalid$data(){let{gen:e,schemaCode:A,schemaType:i,def:n,it:o}=this;return(0,wt.or)(r(),s());function r(){if(i.length){if(!(A instanceof wt.Name))throw new Error("ajv implementation error");let a=Array.isArray(i)?i:[i];return(0,wt._)`${(0,X5.checkDataTypes)(a,A,o.opts.strictNumbers,X5.DataType.Wrong)}`}return wt.nil}function s(){if(n.validateSchema){let a=e.scopeValue("validate$data",{ref:n.validateSchema});return(0,wt._)`!${a}(${A})`}return wt.nil}}subschema(e,A){let i=(0,TL.getSubschema)(this.it,e);(0,TL.extendSubschemaData)(i,this.it,e),(0,TL.extendSubschemaMode)(i,e);let n=Fe(sA(sA({},this.it),i),{items:void 0,props:void 0});return TMA(n,A),n}mergeEvaluated(e,A){let{it:i,gen:n}=this;i.opts.unevaluated&&(i.props!==!0&&e.props!==void 0&&(i.props=Y0.mergeEvaluated.props(n,e.props,i.props,A)),i.items!==!0&&e.items!==void 0&&(i.items=Y0.mergeEvaluated.items(n,e.items,i.items,A)))}mergeValidEvaluated(e,A){let{it:i,gen:n}=this;if(i.opts.unevaluated&&(i.props!==!0||i.items!==!0))return n.if(A,()=>this.mergeEvaluated(e,wt.Name)),!0}};M1.KeywordCxt=$5;function S$(t,e,A,i){let n=new $5(t,A,e);"code"in A?A.code(n,i):n.$data&&A.validate?(0,b4.funcKeywordCode)(n,A):"macro"in A?(0,b4.macroKeywordCode)(n,A):(A.compile||A.validate)&&(0,b4.funcKeywordCode)(n,A)}var tbA=/^\/(?:[^~]|~0|~1)*$/,ibA=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function R$(t,{dataLevel:e,dataNames:A,dataPathArr:i}){let n,o;if(t==="")return si.default.rootData;if(t[0]==="/"){if(!tbA.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);n=t,o=si.default.rootData}else{let c=ibA.exec(t);if(!c)throw new Error(`Invalid JSON-pointer: ${t}`);let g=+c[1];if(n=c[2],n==="#"){if(g>=e)throw new Error(a("property/index",g));return i[e-g]}if(g>e)throw new Error(a("data",g));if(o=A[e-g],!n)return o}let r=o,s=n.split("/");for(let c of s)c&&(o=(0,wt._)`${o}${(0,wt.getProperty)((0,Y0.unescapeJsonPointer)(c))}`,r=(0,wt._)`${r} && ${o}`);return r;function a(c,g){return`Cannot access ${c} ${g} levels up, current level is ${e}`}}M1.getData=R$});var AD=He(PL=>{"use strict";Object.defineProperty(PL,"__esModule",{value:!0});var zL=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};PL.default=zL});var S4=He(VL=>{"use strict";Object.defineProperty(VL,"__esModule",{value:!0});var jL=v4(),qL=class extends Error{constructor(e,A,i,n){super(n||`can't resolve reference ${i} from id ${A}`),this.missingRef=(0,jL.resolveUrl)(e,A,i),this.missingSchema=(0,jL.normalizeId)((0,jL.getFullPath)(e,this.missingRef))}};VL.default=qL});var tD=He(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});zc.resolveSchema=zc.getCompilingSchema=zc.resolveRef=zc.compileSchema=zc.SchemaEnv=void 0;var Sg=Pi(),nbA=AD(),pC=J0(),Rg=v4(),L$=wn(),obA=k4(),vE=class{constructor(e){var A;this.refs={},this.dynamicAnchors={};let i;typeof e.schema=="object"&&(i=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(A=e.baseId)!==null&&A!==void 0?A:(0,Rg.normalizeId)(i?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=i?.$async,this.refs={}}};zc.SchemaEnv=vE;function WL(t){let e=x$.call(this,t);if(e)return e;let A=(0,Rg.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:i,lines:n}=this.opts.code,{ownProperties:o}=this.opts,r=new Sg.CodeGen(this.scope,{es5:i,lines:n,ownProperties:o}),s;t.$async&&(s=r.scopeValue("Error",{ref:nbA.default,code:(0,Sg._)`require("ajv/dist/runtime/validation_error").default`}));let a=r.scopeName("validate");t.validateName=a;let c={gen:r,allErrors:this.opts.allErrors,data:pC.default.data,parentData:pC.default.parentData,parentDataProperty:pC.default.parentDataProperty,dataNames:[pC.default.data],dataPathArr:[Sg.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:r.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,Sg.stringify)(t.schema)}:{ref:t.schema}),validateName:a,ValidationError:s,schema:t.schema,schemaEnv:t,rootId:A,baseId:t.baseId||A,schemaPath:Sg.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,Sg._)`""`,opts:this.opts,self:this},g;try{this._compilations.add(t),(0,obA.validateFunctionCode)(c),r.optimize(this.opts.code.optimize);let I=r.toString();g=`${r.scopeRefs(pC.default.scope)}return ${I}`,this.opts.code.process&&(g=this.opts.code.process(g,t));let d=new Function(`${pC.default.self}`,`${pC.default.scope}`,g)(this,this.scope.get());if(this.scope.value(a,{ref:d}),d.errors=null,d.schema=t.schema,d.schemaEnv=t,t.$async&&(d.$async=!0),this.opts.code.source===!0&&(d.source={validateName:a,validateCode:I,scopeValues:r._values}),this.opts.unevaluated){let{props:B,items:E}=c;d.evaluated={props:B instanceof Sg.Name?void 0:B,items:E instanceof Sg.Name?void 0:E,dynamicProps:B instanceof Sg.Name,dynamicItems:E instanceof Sg.Name},d.source&&(d.source.evaluated=(0,Sg.stringify)(d.evaluated))}return t.validate=d,t}catch(I){throw delete t.validate,delete t.validateName,g&&this.logger.error("Error compiling schema, function code:",g),I}finally{this._compilations.delete(t)}}zc.compileSchema=WL;function rbA(t,e,A){var i;A=(0,Rg.resolveUrl)(this.opts.uriResolver,e,A);let n=t.refs[A];if(n)return n;let o=cbA.call(this,t,A);if(o===void 0){let r=(i=t.localRefs)===null||i===void 0?void 0:i[A],{schemaId:s}=this.opts;r&&(o=new vE({schema:r,schemaId:s,root:t,baseId:e}))}if(o!==void 0)return t.refs[A]=sbA.call(this,o)}zc.resolveRef=rbA;function sbA(t){return(0,Rg.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:WL.call(this,t)}function x$(t){for(let e of this._compilations)if(abA(e,t))return e}zc.getCompilingSchema=x$;function abA(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function cbA(t,e){let A;for(;typeof(A=this.refs[e])=="string";)e=A;return A||this.schemas[e]||eD.call(this,t,e)}function eD(t,e){let A=this.opts.uriResolver.parse(e),i=(0,Rg._getFullPath)(this.opts.uriResolver,A),n=(0,Rg.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&i===n)return ZL.call(this,A,t);let o=(0,Rg.normalizeId)(i),r=this.refs[o]||this.schemas[o];if(typeof r=="string"){let s=eD.call(this,t,r);return typeof s?.schema!="object"?void 0:ZL.call(this,A,s)}if(typeof r?.schema=="object"){if(r.validate||WL.call(this,r),o===(0,Rg.normalizeId)(e)){let{schema:s}=r,{schemaId:a}=this.opts,c=s[a];return c&&(n=(0,Rg.resolveUrl)(this.opts.uriResolver,n,c)),new vE({schema:s,schemaId:a,root:t,baseId:n})}return ZL.call(this,A,r)}}zc.resolveSchema=eD;var gbA=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function ZL(t,{baseId:e,schema:A,root:i}){var n;if(((n=t.fragment)===null||n===void 0?void 0:n[0])!=="/")return;for(let s of t.fragment.slice(1).split("/")){if(typeof A=="boolean")return;let a=A[(0,L$.unescapeFragment)(s)];if(a===void 0)return;A=a;let c=typeof A=="object"&&A[this.opts.schemaId];!gbA.has(s)&&c&&(e=(0,Rg.resolveUrl)(this.opts.uriResolver,e,c))}let o;if(typeof A!="boolean"&&A.$ref&&!(0,L$.schemaHasRulesButRef)(A,this.RULES)){let s=(0,Rg.resolveUrl)(this.opts.uriResolver,e,A.$ref);o=eD.call(this,i,s)}let{schemaId:r}=this.opts;if(o=o||new vE({schema:A,schemaId:r,root:i,baseId:e}),o.schema!==o.root.schema)return o}});var N$=He((R8e,lbA)=>{lbA.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var $L=He((L8e,K$)=>{"use strict";var IbA=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),_$=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function XL(t){let e="",A=0,i=0;for(i=0;i=48&&A<=57||A>=65&&A<=70||A>=97&&A<=102))return"";e+=t[i];break}for(i+=1;i=48&&A<=57||A>=65&&A<=70||A>=97&&A<=102))return"";e+=t[i]}return e}var CbA=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function F$(t){return t.length=0,!0}function dbA(t,e,A){if(t.length){let i=XL(t);if(i!=="")e.push(i);else return A.error=!0,!1;t.length=0}return!0}function BbA(t){let e=0,A={error:!1,address:"",zone:""},i=[],n=[],o=!1,r=!1,s=dbA;for(let a=0;a7){A.error=!0;break}a>0&&t[a-1]===":"&&(o=!0),i.push(":");continue}else if(c==="%"){if(!s(n,i,A))break;s=F$}else{n.push(c);continue}}return n.length&&(s===F$?A.zone=n.join(""):r?i.push(n.join("")):i.push(XL(n))),A.address=i.join(""),A}function G$(t){if(EbA(t,":")<2)return{host:t,isIPV6:!1};let e=BbA(t);if(e.error)return{host:t,isIPV6:!1};{let A=e.address,i=e.address;return e.zone&&(A+="%"+e.zone,i+="%25"+e.zone),{host:A,isIPV6:!0,escapedHost:i}}}function EbA(t,e){let A=0;for(let i=0;i{"use strict";var{isUUID:fbA}=$L(),mbA=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,pbA=["http","https","ws","wss","urn","urn:uuid"];function DbA(t){return pbA.indexOf(t)!==-1}function Ax(t){return t.secure===!0?!0:t.secure===!1?!1:t.scheme?t.scheme.length===3&&(t.scheme[0]==="w"||t.scheme[0]==="W")&&(t.scheme[1]==="s"||t.scheme[1]==="S")&&(t.scheme[2]==="s"||t.scheme[2]==="S"):!1}function U$(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function J$(t){let e=String(t.scheme).toLowerCase()==="https";return(t.port===(e?443:80)||t.port==="")&&(t.port=void 0),t.path||(t.path="/"),t}function wbA(t){return t.secure=Ax(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function ybA(t){if((t.port===(Ax(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[e,A]=t.resourceName.split("?");t.path=e&&e!=="/"?e:void 0,t.query=A,t.resourceName=void 0}return t.fragment=void 0,t}function vbA(t,e){if(!t.path)return t.error="URN can not be parsed",t;let A=t.path.match(mbA);if(A){let i=e.scheme||t.scheme||"urn";t.nid=A[1].toLowerCase(),t.nss=A[2];let n=`${i}:${e.nid||t.nid}`,o=ex(n);t.path=void 0,o&&(t=o.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function MbA(t,e){if(t.nid===void 0)throw new Error("URN without nid cannot be serialized");let A=e.scheme||t.scheme||"urn",i=t.nid.toLowerCase(),n=`${A}:${e.nid||i}`,o=ex(n);o&&(t=o.serialize(t,e));let r=t,s=t.nss;return r.path=`${i||e.nid}:${s}`,e.skipEscape=!0,r}function bbA(t,e){let A=t;return A.uuid=A.nss,A.nss=void 0,!e.tolerant&&(!A.uuid||!fbA(A.uuid))&&(A.error=A.error||"UUID is not valid."),A}function kbA(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var Y$={scheme:"http",domainHost:!0,parse:U$,serialize:J$},SbA={scheme:"https",domainHost:Y$.domainHost,parse:U$,serialize:J$},iD={scheme:"ws",domainHost:!0,parse:wbA,serialize:ybA},RbA={scheme:"wss",domainHost:iD.domainHost,parse:iD.parse,serialize:iD.serialize},LbA={scheme:"urn",parse:vbA,serialize:MbA,skipNormalize:!0},xbA={scheme:"urn:uuid",parse:bbA,serialize:kbA,skipNormalize:!0},nD={http:Y$,https:SbA,ws:iD,wss:RbA,urn:LbA,"urn:uuid":xbA};Object.setPrototypeOf(nD,null);function ex(t){return t&&(nD[t]||nD[t.toLowerCase()])||void 0}T$.exports={wsIsSecure:Ax,SCHEMES:nD,isValidSchemeName:DbA,getSchemeHandler:ex}});var P$=He((N8e,rD)=>{"use strict";var{normalizeIPv6:NbA,removeDotSegments:R4,recomposeAuthority:FbA,normalizeComponentEncoding:oD,isIPv4:_bA,nonSimpleDomain:GbA}=$L(),{SCHEMES:KbA,getSchemeHandler:O$}=H$();function UbA(t,e){return typeof t=="string"?t=Gl(T0(t,e),e):typeof t=="object"&&(t=T0(Gl(t,e),e)),t}function JbA(t,e,A){let i=A?Object.assign({scheme:"null"},A):{scheme:"null"},n=z$(T0(t,i),T0(e,i),i,!0);return i.skipEscape=!0,Gl(n,i)}function z$(t,e,A,i){let n={};return i||(t=T0(Gl(t,A),A),e=T0(Gl(e,A),A)),A=A||{},!A.tolerant&&e.scheme?(n.scheme=e.scheme,n.userinfo=e.userinfo,n.host=e.host,n.port=e.port,n.path=R4(e.path||""),n.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(n.userinfo=e.userinfo,n.host=e.host,n.port=e.port,n.path=R4(e.path||""),n.query=e.query):(e.path?(e.path[0]==="/"?n.path=R4(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?n.path="/"+e.path:t.path?n.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:n.path=e.path,n.path=R4(n.path)),n.query=e.query):(n.path=t.path,e.query!==void 0?n.query=e.query:n.query=t.query),n.userinfo=t.userinfo,n.host=t.host,n.port=t.port),n.scheme=t.scheme),n.fragment=e.fragment,n}function YbA(t,e,A){return typeof t=="string"?(t=unescape(t),t=Gl(oD(T0(t,A),!0),Fe(sA({},A),{skipEscape:!0}))):typeof t=="object"&&(t=Gl(oD(t,!0),Fe(sA({},A),{skipEscape:!0}))),typeof e=="string"?(e=unescape(e),e=Gl(oD(T0(e,A),!0),Fe(sA({},A),{skipEscape:!0}))):typeof e=="object"&&(e=Gl(oD(e,!0),Fe(sA({},A),{skipEscape:!0}))),t.toLowerCase()===e.toLowerCase()}function Gl(t,e){let A={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},i=Object.assign({},e),n=[],o=O$(i.scheme||A.scheme);o&&o.serialize&&o.serialize(A,i),A.path!==void 0&&(i.skipEscape?A.path=unescape(A.path):(A.path=escape(A.path),A.scheme!==void 0&&(A.path=A.path.split("%3A").join(":")))),i.reference!=="suffix"&&A.scheme&&n.push(A.scheme,":");let r=FbA(A);if(r!==void 0&&(i.reference!=="suffix"&&n.push("//"),n.push(r),A.path&&A.path[0]!=="/"&&n.push("/")),A.path!==void 0){let s=A.path;!i.absolutePath&&(!o||!o.absolutePath)&&(s=R4(s)),r===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),n.push(s)}return A.query!==void 0&&n.push("?",A.query),A.fragment!==void 0&&n.push("#",A.fragment),n.join("")}var TbA=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function T0(t,e){let A=Object.assign({},e),i={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},n=!1;A.reference==="suffix"&&(A.scheme?t=A.scheme+":"+t:t="//"+t);let o=t.match(TbA);if(o){if(i.scheme=o[1],i.userinfo=o[3],i.host=o[4],i.port=parseInt(o[5],10),i.path=o[6]||"",i.query=o[7],i.fragment=o[8],isNaN(i.port)&&(i.port=o[5]),i.host)if(_bA(i.host)===!1){let a=NbA(i.host);i.host=a.host.toLowerCase(),n=a.isIPV6}else n=!0;i.scheme===void 0&&i.userinfo===void 0&&i.host===void 0&&i.port===void 0&&i.query===void 0&&!i.path?i.reference="same-document":i.scheme===void 0?i.reference="relative":i.fragment===void 0?i.reference="absolute":i.reference="uri",A.reference&&A.reference!=="suffix"&&A.reference!==i.reference&&(i.error=i.error||"URI is not a "+A.reference+" reference.");let r=O$(A.scheme||i.scheme);if(!A.unicodeSupport&&(!r||!r.unicodeSupport)&&i.host&&(A.domainHost||r&&r.domainHost)&&n===!1&&GbA(i.host))try{i.host=URL.domainToASCII(i.host.toLowerCase())}catch(s){i.error=i.error||"Host's domain name can not be converted to ASCII: "+s}(!r||r&&!r.skipNormalize)&&(t.indexOf("%")!==-1&&(i.scheme!==void 0&&(i.scheme=unescape(i.scheme)),i.host!==void 0&&(i.host=unescape(i.host))),i.path&&(i.path=escape(unescape(i.path))),i.fragment&&(i.fragment=encodeURI(decodeURIComponent(i.fragment)))),r&&r.parse&&r.parse(i,A)}else i.error=i.error||"URI can not be parsed.";return i}var tx={SCHEMES:KbA,normalize:UbA,resolve:JbA,resolveComponent:z$,equal:YbA,serialize:Gl,parse:T0};rD.exports=tx;rD.exports.default=tx;rD.exports.fastUri=tx});var q$=He(ix=>{"use strict";Object.defineProperty(ix,"__esModule",{value:!0});var j$=P$();j$.code='require("ajv/dist/runtime/uri").default';ix.default=j$});var tAA=He(Es=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0});Es.CodeGen=Es.Name=Es.nil=Es.stringify=Es.str=Es._=Es.KeywordCxt=void 0;var HbA=k4();Object.defineProperty(Es,"KeywordCxt",{enumerable:!0,get:function(){return HbA.KeywordCxt}});var ME=Pi();Object.defineProperty(Es,"_",{enumerable:!0,get:function(){return ME._}});Object.defineProperty(Es,"str",{enumerable:!0,get:function(){return ME.str}});Object.defineProperty(Es,"stringify",{enumerable:!0,get:function(){return ME.stringify}});Object.defineProperty(Es,"nil",{enumerable:!0,get:function(){return ME.nil}});Object.defineProperty(Es,"Name",{enumerable:!0,get:function(){return ME.Name}});Object.defineProperty(Es,"CodeGen",{enumerable:!0,get:function(){return ME.CodeGen}});var ObA=AD(),$$=S4(),zbA=LL(),L4=tD(),PbA=Pi(),x4=v4(),sD=y4(),ox=wn(),V$=N$(),jbA=q$(),AAA=(t,e)=>new RegExp(t,e);AAA.code="new RegExp";var qbA=["removeAdditional","useDefaults","coerceTypes"],VbA=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),ZbA={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},WbA={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Z$=200;function XbA(t){var e,A,i,n,o,r,s,a,c,g,I,C,d,B,E,u,h,w,x,R,D,G,J,z,K;let O=t.strict,V=(e=t.code)===null||e===void 0?void 0:e.optimize,j=V===!0||V===void 0?1:V||0,dA=(i=(A=t.code)===null||A===void 0?void 0:A.regExp)!==null&&i!==void 0?i:AAA,fA=(n=t.uriResolver)!==null&&n!==void 0?n:jbA.default;return{strictSchema:(r=(o=t.strictSchema)!==null&&o!==void 0?o:O)!==null&&r!==void 0?r:!0,strictNumbers:(a=(s=t.strictNumbers)!==null&&s!==void 0?s:O)!==null&&a!==void 0?a:!0,strictTypes:(g=(c=t.strictTypes)!==null&&c!==void 0?c:O)!==null&&g!==void 0?g:"log",strictTuples:(C=(I=t.strictTuples)!==null&&I!==void 0?I:O)!==null&&C!==void 0?C:"log",strictRequired:(B=(d=t.strictRequired)!==null&&d!==void 0?d:O)!==null&&B!==void 0?B:!1,code:t.code?Fe(sA({},t.code),{optimize:j,regExp:dA}):{optimize:j,regExp:dA},loopRequired:(E=t.loopRequired)!==null&&E!==void 0?E:Z$,loopEnum:(u=t.loopEnum)!==null&&u!==void 0?u:Z$,meta:(h=t.meta)!==null&&h!==void 0?h:!0,messages:(w=t.messages)!==null&&w!==void 0?w:!0,inlineRefs:(x=t.inlineRefs)!==null&&x!==void 0?x:!0,schemaId:(R=t.schemaId)!==null&&R!==void 0?R:"$id",addUsedSchema:(D=t.addUsedSchema)!==null&&D!==void 0?D:!0,validateSchema:(G=t.validateSchema)!==null&&G!==void 0?G:!0,validateFormats:(J=t.validateFormats)!==null&&J!==void 0?J:!0,unicodeRegExp:(z=t.unicodeRegExp)!==null&&z!==void 0?z:!0,int32range:(K=t.int32range)!==null&&K!==void 0?K:!0,uriResolver:fA}}var N4=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts=sA(sA({},e),XbA(e));let{es5:A,lines:i}=this.opts.code;this.scope=new PbA.ValueScope({scope:{},prefixes:VbA,es5:A,lines:i}),this.logger=nkA(e.logger);let n=e.validateFormats;e.validateFormats=!1,this.RULES=(0,zbA.getRules)(),W$.call(this,ZbA,e,"NOT SUPPORTED"),W$.call(this,WbA,e,"DEPRECATED","warn"),this._metaOpts=tkA.call(this),e.formats&&AkA.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&ekA.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),$bA.call(this),e.validateFormats=n}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:A,schemaId:i}=this.opts,n=V$;i==="id"&&(n=sA({},V$),n.id=n.$id,delete n.$id),A&&e&&this.addMetaSchema(n,n[i],!1)}defaultMeta(){let{meta:e,schemaId:A}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[A]||e:void 0}validate(e,A){let i;if(typeof e=="string"){if(i=this.getSchema(e),!i)throw new Error(`no schema with key or ref "${e}"`)}else i=this.compile(e);let n=i(A);return"$async"in i||(this.errors=i.errors),n}compile(e,A){let i=this._addSchema(e,A);return i.validate||this._compileSchemaEnv(i)}compileAsync(e,A){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:i}=this.opts;return n.call(this,e,A);function n(g,I){return Ni(this,null,function*(){yield o.call(this,g.$schema);let C=this._addSchema(g,I);return C.validate||r.call(this,C)})}function o(g){return Ni(this,null,function*(){g&&!this.getSchema(g)&&(yield n.call(this,{$ref:g},!0))})}function r(g){return Ni(this,null,function*(){try{return this._compileSchemaEnv(g)}catch(I){if(!(I instanceof $$.default))throw I;return s.call(this,I),yield a.call(this,I.missingSchema),r.call(this,g)}})}function s({missingSchema:g,missingRef:I}){if(this.refs[g])throw new Error(`AnySchema ${g} is loaded but ${I} cannot be resolved`)}function a(g){return Ni(this,null,function*(){let I=yield c.call(this,g);this.refs[g]||(yield o.call(this,I.$schema)),this.refs[g]||this.addSchema(I,g,A)})}function c(g){return Ni(this,null,function*(){let I=this._loading[g];if(I)return I;try{return yield this._loading[g]=i(g)}finally{delete this._loading[g]}})}}addSchema(e,A,i,n=this.opts.validateSchema){if(Array.isArray(e)){for(let r of e)this.addSchema(r,void 0,i,n);return this}let o;if(typeof e=="object"){let{schemaId:r}=this.opts;if(o=e[r],o!==void 0&&typeof o!="string")throw new Error(`schema ${r} must be string`)}return A=(0,x4.normalizeId)(A||o),this._checkUnique(A),this.schemas[A]=this._addSchema(e,i,A,n,!0),this}addMetaSchema(e,A,i=this.opts.validateSchema){return this.addSchema(e,A,!0,i),this}validateSchema(e,A){if(typeof e=="boolean")return!0;let i;if(i=e.$schema,i!==void 0&&typeof i!="string")throw new Error("$schema must be a string");if(i=i||this.opts.defaultMeta||this.defaultMeta(),!i)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let n=this.validate(i,e);if(!n&&A){let o="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(o);else throw new Error(o)}return n}getSchema(e){let A;for(;typeof(A=X$.call(this,e))=="string";)e=A;if(A===void 0){let{schemaId:i}=this.opts,n=new L4.SchemaEnv({schema:{},schemaId:i});if(A=L4.resolveSchema.call(this,n,e),!A)return;this.refs[e]=A}return A.validate||this._compileSchemaEnv(A)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let A=X$.call(this,e);return typeof A=="object"&&this._cache.delete(A.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let A=e;this._cache.delete(A);let i=e[this.opts.schemaId];return i&&(i=(0,x4.normalizeId)(i),delete this.schemas[i],delete this.refs[i]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let A of e)this.addKeyword(A);return this}addKeyword(e,A){let i;if(typeof e=="string")i=e,typeof A=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),A.keyword=i);else if(typeof e=="object"&&A===void 0){if(A=e,i=A.keyword,Array.isArray(i)&&!i.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(rkA.call(this,i,A),!A)return(0,ox.eachItem)(i,o=>nx.call(this,o)),this;akA.call(this,A);let n=Fe(sA({},A),{type:(0,sD.getJSONTypes)(A.type),schemaType:(0,sD.getJSONTypes)(A.schemaType)});return(0,ox.eachItem)(i,n.type.length===0?o=>nx.call(this,o,n):o=>n.type.forEach(r=>nx.call(this,o,n,r))),this}getKeyword(e){let A=this.RULES.all[e];return typeof A=="object"?A.definition:!!A}removeKeyword(e){let{RULES:A}=this;delete A.keywords[e],delete A.all[e];for(let i of A.rules){let n=i.rules.findIndex(o=>o.keyword===e);n>=0&&i.rules.splice(n,1)}return this}addFormat(e,A){return typeof A=="string"&&(A=new RegExp(A)),this.formats[e]=A,this}errorsText(e=this.errors,{separator:A=", ",dataVar:i="data"}={}){return!e||e.length===0?"No errors":e.map(n=>`${i}${n.instancePath} ${n.message}`).reduce((n,o)=>n+A+o)}$dataMetaSchema(e,A){let i=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let n of A){let o=n.split("/").slice(1),r=e;for(let s of o)r=r[s];for(let s in i){let a=i[s];if(typeof a!="object")continue;let{$data:c}=a.definition,g=r[s];c&&g&&(r[s]=eAA(g))}}return e}_removeAllSchemas(e,A){for(let i in e){let n=e[i];(!A||A.test(i))&&(typeof n=="string"?delete e[i]:n&&!n.meta&&(this._cache.delete(n.schema),delete e[i]))}}_addSchema(e,A,i,n=this.opts.validateSchema,o=this.opts.addUsedSchema){let r,{schemaId:s}=this.opts;if(typeof e=="object")r=e[s];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let a=this._cache.get(e);if(a!==void 0)return a;i=(0,x4.normalizeId)(r||i);let c=x4.getSchemaRefs.call(this,e,i);return a=new L4.SchemaEnv({schema:e,schemaId:s,meta:A,baseId:i,localRefs:c}),this._cache.set(a.schema,a),o&&!i.startsWith("#")&&(i&&this._checkUnique(i),this.refs[i]=a),n&&this.validateSchema(e,!0),a}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):L4.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let A=this.opts;this.opts=this._metaOpts;try{L4.compileSchema.call(this,e)}finally{this.opts=A}}};N4.ValidationError=ObA.default;N4.MissingRefError=$$.default;Es.default=N4;function W$(t,e,A,i="error"){for(let n in t){let o=n;o in e&&this.logger[i](`${A}: option ${n}. ${t[o]}`)}}function X$(t){return t=(0,x4.normalizeId)(t),this.schemas[t]||this.refs[t]}function $bA(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function AkA(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function ekA(t){if(Array.isArray(t)){this.addVocabulary(t);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in t){let A=t[e];A.keyword||(A.keyword=e),this.addKeyword(A)}}function tkA(){let t=sA({},this.opts);for(let e of qbA)delete t[e];return t}var ikA={log(){},warn(){},error(){}};function nkA(t){if(t===!1)return ikA;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var okA=/^[a-z_$][a-z0-9_$:-]*$/i;function rkA(t,e){let{RULES:A}=this;if((0,ox.eachItem)(t,i=>{if(A.keywords[i])throw new Error(`Keyword ${i} is already defined`);if(!okA.test(i))throw new Error(`Keyword ${i} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function nx(t,e,A){var i;let n=e?.post;if(A&&n)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:o}=this,r=n?o.post:o.rules.find(({type:a})=>a===A);if(r||(r={type:A,rules:[]},o.rules.push(r)),o.keywords[t]=!0,!e)return;let s={keyword:t,definition:Fe(sA({},e),{type:(0,sD.getJSONTypes)(e.type),schemaType:(0,sD.getJSONTypes)(e.schemaType)})};e.before?skA.call(this,r,s,e.before):r.rules.push(s),o.all[t]=s,(i=e.implements)===null||i===void 0||i.forEach(a=>this.addKeyword(a))}function skA(t,e,A){let i=t.rules.findIndex(n=>n.keyword===A);i>=0?t.rules.splice(i,0,e):(t.rules.push(e),this.logger.warn(`rule ${A} is not defined`))}function akA(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=eAA(e)),t.validateSchema=this.compile(e,!0))}var ckA={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function eAA(t){return{anyOf:[t,ckA]}}});var iAA=He(rx=>{"use strict";Object.defineProperty(rx,"__esModule",{value:!0});var gkA={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};rx.default=gkA});var sAA=He(DC=>{"use strict";Object.defineProperty(DC,"__esModule",{value:!0});DC.callRef=DC.getValidate=void 0;var lkA=S4(),nAA=Oc(),xa=Pi(),bE=J0(),oAA=tD(),aD=wn(),IkA={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:A,it:i}=t,{baseId:n,schemaEnv:o,validateName:r,opts:s,self:a}=i,{root:c}=o;if((A==="#"||A==="#/")&&n===c.baseId)return I();let g=oAA.resolveRef.call(a,c,n,A);if(g===void 0)throw new lkA.default(i.opts.uriResolver,n,A);if(g instanceof oAA.SchemaEnv)return C(g);return d(g);function I(){if(o===c)return cD(t,r,o,o.$async);let B=e.scopeValue("root",{ref:c});return cD(t,(0,xa._)`${B}.validate`,c,c.$async)}function C(B){let E=rAA(t,B);cD(t,E,B,B.$async)}function d(B){let E=e.scopeValue("schema",s.code.source===!0?{ref:B,code:(0,xa.stringify)(B)}:{ref:B}),u=e.name("valid"),h=t.subschema({schema:B,dataTypes:[],schemaPath:xa.nil,topSchemaRef:E,errSchemaPath:A},u);t.mergeEvaluated(h),t.ok(u)}}};function rAA(t,e){let{gen:A}=t;return e.validate?A.scopeValue("validate",{ref:e.validate}):(0,xa._)`${A.scopeValue("wrapper",{ref:e})}.validate`}DC.getValidate=rAA;function cD(t,e,A,i){let{gen:n,it:o}=t,{allErrors:r,schemaEnv:s,opts:a}=o,c=a.passContext?bE.default.this:xa.nil;i?g():I();function g(){if(!s.$async)throw new Error("async schema referenced by sync schema");let B=n.let("valid");n.try(()=>{n.code((0,xa._)`await ${(0,nAA.callValidateCode)(t,e,c)}`),d(e),r||n.assign(B,!0)},E=>{n.if((0,xa._)`!(${E} instanceof ${o.ValidationError})`,()=>n.throw(E)),C(E),r||n.assign(B,!1)}),t.ok(B)}function I(){t.result((0,nAA.callValidateCode)(t,e,c),()=>d(e),()=>C(e))}function C(B){let E=(0,xa._)`${B}.errors`;n.assign(bE.default.vErrors,(0,xa._)`${bE.default.vErrors} === null ? ${E} : ${bE.default.vErrors}.concat(${E})`),n.assign(bE.default.errors,(0,xa._)`${bE.default.vErrors}.length`)}function d(B){var E;if(!o.opts.unevaluated)return;let u=(E=A?.validate)===null||E===void 0?void 0:E.evaluated;if(o.props!==!0)if(u&&!u.dynamicProps)u.props!==void 0&&(o.props=aD.mergeEvaluated.props(n,u.props,o.props));else{let h=n.var("props",(0,xa._)`${B}.evaluated.props`);o.props=aD.mergeEvaluated.props(n,h,o.props,xa.Name)}if(o.items!==!0)if(u&&!u.dynamicItems)u.items!==void 0&&(o.items=aD.mergeEvaluated.items(n,u.items,o.items));else{let h=n.var("items",(0,xa._)`${B}.evaluated.items`);o.items=aD.mergeEvaluated.items(n,h,o.items,xa.Name)}}}DC.callRef=cD;DC.default=IkA});var aAA=He(sx=>{"use strict";Object.defineProperty(sx,"__esModule",{value:!0});var CkA=iAA(),dkA=sAA(),BkA=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",CkA.default,dkA.default];sx.default=BkA});var cAA=He(ax=>{"use strict";Object.defineProperty(ax,"__esModule",{value:!0});var gD=Pi(),b1=gD.operators,lD={maximum:{okStr:"<=",ok:b1.LTE,fail:b1.GT},minimum:{okStr:">=",ok:b1.GTE,fail:b1.LT},exclusiveMaximum:{okStr:"<",ok:b1.LT,fail:b1.GTE},exclusiveMinimum:{okStr:">",ok:b1.GT,fail:b1.LTE}},EkA={message:({keyword:t,schemaCode:e})=>(0,gD.str)`must be ${lD[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,gD._)`{comparison: ${lD[t].okStr}, limit: ${e}}`},QkA={keyword:Object.keys(lD),type:"number",schemaType:"number",$data:!0,error:EkA,code(t){let{keyword:e,data:A,schemaCode:i}=t;t.fail$data((0,gD._)`${A} ${lD[e].fail} ${i} || isNaN(${A})`)}};ax.default=QkA});var gAA=He(cx=>{"use strict";Object.defineProperty(cx,"__esModule",{value:!0});var F4=Pi(),ukA={message:({schemaCode:t})=>(0,F4.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,F4._)`{multipleOf: ${t}}`},hkA={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:ukA,code(t){let{gen:e,data:A,schemaCode:i,it:n}=t,o=n.opts.multipleOfPrecision,r=e.let("res"),s=o?(0,F4._)`Math.abs(Math.round(${r}) - ${r}) > 1e-${o}`:(0,F4._)`${r} !== parseInt(${r})`;t.fail$data((0,F4._)`(${i} === 0 || (${r} = ${A}/${i}, ${s}))`)}};cx.default=hkA});var IAA=He(gx=>{"use strict";Object.defineProperty(gx,"__esModule",{value:!0});function lAA(t){let e=t.length,A=0,i=0,n;for(;i=55296&&n<=56319&&i{"use strict";Object.defineProperty(lx,"__esModule",{value:!0});var wC=Pi(),fkA=wn(),mkA=IAA(),pkA={message({keyword:t,schemaCode:e}){let A=t==="maxLength"?"more":"fewer";return(0,wC.str)`must NOT have ${A} than ${e} characters`},params:({schemaCode:t})=>(0,wC._)`{limit: ${t}}`},DkA={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:pkA,code(t){let{keyword:e,data:A,schemaCode:i,it:n}=t,o=e==="maxLength"?wC.operators.GT:wC.operators.LT,r=n.opts.unicode===!1?(0,wC._)`${A}.length`:(0,wC._)`${(0,fkA.useFunc)(t.gen,mkA.default)}(${A})`;t.fail$data((0,wC._)`${r} ${o} ${i}`)}};lx.default=DkA});var dAA=He(Ix=>{"use strict";Object.defineProperty(Ix,"__esModule",{value:!0});var wkA=Oc(),ID=Pi(),ykA={message:({schemaCode:t})=>(0,ID.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,ID._)`{pattern: ${t}}`},vkA={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:ykA,code(t){let{data:e,$data:A,schema:i,schemaCode:n,it:o}=t,r=o.opts.unicodeRegExp?"u":"",s=A?(0,ID._)`(new RegExp(${n}, ${r}))`:(0,wkA.usePattern)(t,i);t.fail$data((0,ID._)`!${s}.test(${e})`)}};Ix.default=vkA});var BAA=He(Cx=>{"use strict";Object.defineProperty(Cx,"__esModule",{value:!0});var _4=Pi(),MkA={message({keyword:t,schemaCode:e}){let A=t==="maxProperties"?"more":"fewer";return(0,_4.str)`must NOT have ${A} than ${e} properties`},params:({schemaCode:t})=>(0,_4._)`{limit: ${t}}`},bkA={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:MkA,code(t){let{keyword:e,data:A,schemaCode:i}=t,n=e==="maxProperties"?_4.operators.GT:_4.operators.LT;t.fail$data((0,_4._)`Object.keys(${A}).length ${n} ${i}`)}};Cx.default=bkA});var EAA=He(dx=>{"use strict";Object.defineProperty(dx,"__esModule",{value:!0});var G4=Oc(),K4=Pi(),kkA=wn(),SkA={message:({params:{missingProperty:t}})=>(0,K4.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,K4._)`{missingProperty: ${t}}`},RkA={keyword:"required",type:"object",schemaType:"array",$data:!0,error:SkA,code(t){let{gen:e,schema:A,schemaCode:i,data:n,$data:o,it:r}=t,{opts:s}=r;if(!o&&A.length===0)return;let a=A.length>=s.loopRequired;if(r.allErrors?c():g(),s.strictRequired){let d=t.parentSchema.properties,{definedProperties:B}=t.it;for(let E of A)if(d?.[E]===void 0&&!B.has(E)){let u=r.schemaEnv.baseId+r.errSchemaPath,h=`required property "${E}" is not defined at "${u}" (strictRequired)`;(0,kkA.checkStrictMode)(r,h,r.opts.strictRequired)}}function c(){if(a||o)t.block$data(K4.nil,I);else for(let d of A)(0,G4.checkReportMissingProp)(t,d)}function g(){let d=e.let("missing");if(a||o){let B=e.let("valid",!0);t.block$data(B,()=>C(d,B)),t.ok(B)}else e.if((0,G4.checkMissingProp)(t,A,d)),(0,G4.reportMissingProp)(t,d),e.else()}function I(){e.forOf("prop",i,d=>{t.setParams({missingProperty:d}),e.if((0,G4.noPropertyInData)(e,n,d,s.ownProperties),()=>t.error())})}function C(d,B){t.setParams({missingProperty:d}),e.forOf(d,i,()=>{e.assign(B,(0,G4.propertyInData)(e,n,d,s.ownProperties)),e.if((0,K4.not)(B),()=>{t.error(),e.break()})},K4.nil)}}};dx.default=RkA});var QAA=He(Bx=>{"use strict";Object.defineProperty(Bx,"__esModule",{value:!0});var U4=Pi(),LkA={message({keyword:t,schemaCode:e}){let A=t==="maxItems"?"more":"fewer";return(0,U4.str)`must NOT have ${A} than ${e} items`},params:({schemaCode:t})=>(0,U4._)`{limit: ${t}}`},xkA={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:LkA,code(t){let{keyword:e,data:A,schemaCode:i}=t,n=e==="maxItems"?U4.operators.GT:U4.operators.LT;t.fail$data((0,U4._)`${A}.length ${n} ${i}`)}};Bx.default=xkA});var CD=He(Ex=>{"use strict";Object.defineProperty(Ex,"__esModule",{value:!0});var uAA=JL();uAA.code='require("ajv/dist/runtime/equal").default';Ex.default=uAA});var hAA=He(ux=>{"use strict";Object.defineProperty(ux,"__esModule",{value:!0});var Qx=y4(),Qs=Pi(),NkA=wn(),FkA=CD(),_kA={message:({params:{i:t,j:e}})=>(0,Qs.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,Qs._)`{i: ${t}, j: ${e}}`},GkA={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:_kA,code(t){let{gen:e,data:A,$data:i,schema:n,parentSchema:o,schemaCode:r,it:s}=t;if(!i&&!n)return;let a=e.let("valid"),c=o.items?(0,Qx.getSchemaTypes)(o.items):[];t.block$data(a,g,(0,Qs._)`${r} === false`),t.ok(a);function g(){let B=e.let("i",(0,Qs._)`${A}.length`),E=e.let("j");t.setParams({i:B,j:E}),e.assign(a,!0),e.if((0,Qs._)`${B} > 1`,()=>(I()?C:d)(B,E))}function I(){return c.length>0&&!c.some(B=>B==="object"||B==="array")}function C(B,E){let u=e.name("item"),h=(0,Qx.checkDataTypes)(c,u,s.opts.strictNumbers,Qx.DataType.Wrong),w=e.const("indices",(0,Qs._)`{}`);e.for((0,Qs._)`;${B}--;`,()=>{e.let(u,(0,Qs._)`${A}[${B}]`),e.if(h,(0,Qs._)`continue`),c.length>1&&e.if((0,Qs._)`typeof ${u} == "string"`,(0,Qs._)`${u} += "_"`),e.if((0,Qs._)`typeof ${w}[${u}] == "number"`,()=>{e.assign(E,(0,Qs._)`${w}[${u}]`),t.error(),e.assign(a,!1).break()}).code((0,Qs._)`${w}[${u}] = ${B}`)})}function d(B,E){let u=(0,NkA.useFunc)(e,FkA.default),h=e.name("outer");e.label(h).for((0,Qs._)`;${B}--;`,()=>e.for((0,Qs._)`${E} = ${B}; ${E}--;`,()=>e.if((0,Qs._)`${u}(${A}[${B}], ${A}[${E}])`,()=>{t.error(),e.assign(a,!1).break(h)})))}}};ux.default=GkA});var fAA=He(fx=>{"use strict";Object.defineProperty(fx,"__esModule",{value:!0});var hx=Pi(),KkA=wn(),UkA=CD(),JkA={message:"must be equal to constant",params:({schemaCode:t})=>(0,hx._)`{allowedValue: ${t}}`},YkA={keyword:"const",$data:!0,error:JkA,code(t){let{gen:e,data:A,$data:i,schemaCode:n,schema:o}=t;i||o&&typeof o=="object"?t.fail$data((0,hx._)`!${(0,KkA.useFunc)(e,UkA.default)}(${A}, ${n})`):t.fail((0,hx._)`${o} !== ${A}`)}};fx.default=YkA});var mAA=He(mx=>{"use strict";Object.defineProperty(mx,"__esModule",{value:!0});var J4=Pi(),TkA=wn(),HkA=CD(),OkA={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,J4._)`{allowedValues: ${t}}`},zkA={keyword:"enum",schemaType:"array",$data:!0,error:OkA,code(t){let{gen:e,data:A,$data:i,schema:n,schemaCode:o,it:r}=t;if(!i&&n.length===0)throw new Error("enum must have non-empty array");let s=n.length>=r.opts.loopEnum,a,c=()=>a??(a=(0,TkA.useFunc)(e,HkA.default)),g;if(s||i)g=e.let("valid"),t.block$data(g,I);else{if(!Array.isArray(n))throw new Error("ajv implementation error");let d=e.const("vSchema",o);g=(0,J4.or)(...n.map((B,E)=>C(d,E)))}t.pass(g);function I(){e.assign(g,!1),e.forOf("v",o,d=>e.if((0,J4._)`${c()}(${A}, ${d})`,()=>e.assign(g,!0).break()))}function C(d,B){let E=n[B];return typeof E=="object"&&E!==null?(0,J4._)`${c()}(${A}, ${d}[${B}])`:(0,J4._)`${A} === ${E}`}}};mx.default=zkA});var pAA=He(px=>{"use strict";Object.defineProperty(px,"__esModule",{value:!0});var PkA=cAA(),jkA=gAA(),qkA=CAA(),VkA=dAA(),ZkA=BAA(),WkA=EAA(),XkA=QAA(),$kA=hAA(),ASA=fAA(),eSA=mAA(),tSA=[PkA.default,jkA.default,qkA.default,VkA.default,ZkA.default,WkA.default,XkA.default,$kA.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},ASA.default,eSA.default];px.default=tSA});var wx=He(Y4=>{"use strict";Object.defineProperty(Y4,"__esModule",{value:!0});Y4.validateAdditionalItems=void 0;var yC=Pi(),Dx=wn(),iSA={message:({params:{len:t}})=>(0,yC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,yC._)`{limit: ${t}}`},nSA={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:iSA,code(t){let{parentSchema:e,it:A}=t,{items:i}=e;if(!Array.isArray(i)){(0,Dx.checkStrictMode)(A,'"additionalItems" is ignored when "items" is not an array of schemas');return}DAA(t,i)}};function DAA(t,e){let{gen:A,schema:i,data:n,keyword:o,it:r}=t;r.items=!0;let s=A.const("len",(0,yC._)`${n}.length`);if(i===!1)t.setParams({len:e.length}),t.pass((0,yC._)`${s} <= ${e.length}`);else if(typeof i=="object"&&!(0,Dx.alwaysValidSchema)(r,i)){let c=A.var("valid",(0,yC._)`${s} <= ${e.length}`);A.if((0,yC.not)(c),()=>a(c)),t.ok(c)}function a(c){A.forRange("i",e.length,s,g=>{t.subschema({keyword:o,dataProp:g,dataPropType:Dx.Type.Num},c),r.allErrors||A.if((0,yC.not)(c),()=>A.break())})}}Y4.validateAdditionalItems=DAA;Y4.default=nSA});var yx=He(T4=>{"use strict";Object.defineProperty(T4,"__esModule",{value:!0});T4.validateTuple=void 0;var wAA=Pi(),dD=wn(),oSA=Oc(),rSA={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:A}=t;if(Array.isArray(e))return yAA(t,"additionalItems",e);A.items=!0,!(0,dD.alwaysValidSchema)(A,e)&&t.ok((0,oSA.validateArray)(t))}};function yAA(t,e,A=t.schema){let{gen:i,parentSchema:n,data:o,keyword:r,it:s}=t;g(n),s.opts.unevaluated&&A.length&&s.items!==!0&&(s.items=dD.mergeEvaluated.items(i,A.length,s.items));let a=i.name("valid"),c=i.const("len",(0,wAA._)`${o}.length`);A.forEach((I,C)=>{(0,dD.alwaysValidSchema)(s,I)||(i.if((0,wAA._)`${c} > ${C}`,()=>t.subschema({keyword:r,schemaProp:C,dataProp:C},a)),t.ok(a))});function g(I){let{opts:C,errSchemaPath:d}=s,B=A.length,E=B===I.minItems&&(B===I.maxItems||I[e]===!1);if(C.strictTuples&&!E){let u=`"${r}" is ${B}-tuple, but minItems or maxItems/${e} are not specified or different at path "${d}"`;(0,dD.checkStrictMode)(s,u,C.strictTuples)}}}T4.validateTuple=yAA;T4.default=rSA});var vAA=He(vx=>{"use strict";Object.defineProperty(vx,"__esModule",{value:!0});var sSA=yx(),aSA={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,sSA.validateTuple)(t,"items")};vx.default=aSA});var bAA=He(Mx=>{"use strict";Object.defineProperty(Mx,"__esModule",{value:!0});var MAA=Pi(),cSA=wn(),gSA=Oc(),lSA=wx(),ISA={message:({params:{len:t}})=>(0,MAA.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,MAA._)`{limit: ${t}}`},CSA={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:ISA,code(t){let{schema:e,parentSchema:A,it:i}=t,{prefixItems:n}=A;i.items=!0,!(0,cSA.alwaysValidSchema)(i,e)&&(n?(0,lSA.validateAdditionalItems)(t,n):t.ok((0,gSA.validateArray)(t)))}};Mx.default=CSA});var kAA=He(bx=>{"use strict";Object.defineProperty(bx,"__esModule",{value:!0});var Pc=Pi(),BD=wn(),dSA={message:({params:{min:t,max:e}})=>e===void 0?(0,Pc.str)`must contain at least ${t} valid item(s)`:(0,Pc.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,Pc._)`{minContains: ${t}}`:(0,Pc._)`{minContains: ${t}, maxContains: ${e}}`},BSA={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:dSA,code(t){let{gen:e,schema:A,parentSchema:i,data:n,it:o}=t,r,s,{minContains:a,maxContains:c}=i;o.opts.next?(r=a===void 0?1:a,s=c):r=1;let g=e.const("len",(0,Pc._)`${n}.length`);if(t.setParams({min:r,max:s}),s===void 0&&r===0){(0,BD.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&r>s){(0,BD.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,BD.alwaysValidSchema)(o,A)){let E=(0,Pc._)`${g} >= ${r}`;s!==void 0&&(E=(0,Pc._)`${E} && ${g} <= ${s}`),t.pass(E);return}o.items=!0;let I=e.name("valid");s===void 0&&r===1?d(I,()=>e.if(I,()=>e.break())):r===0?(e.let(I,!0),s!==void 0&&e.if((0,Pc._)`${n}.length > 0`,C)):(e.let(I,!1),C()),t.result(I,()=>t.reset());function C(){let E=e.name("_valid"),u=e.let("count",0);d(E,()=>e.if(E,()=>B(u)))}function d(E,u){e.forRange("i",0,g,h=>{t.subschema({keyword:"contains",dataProp:h,dataPropType:BD.Type.Num,compositeRule:!0},E),u()})}function B(E){e.code((0,Pc._)`${E}++`),s===void 0?e.if((0,Pc._)`${E} >= ${r}`,()=>e.assign(I,!0).break()):(e.if((0,Pc._)`${E} > ${s}`,()=>e.assign(I,!1).break()),r===1?e.assign(I,!0):e.if((0,Pc._)`${E} >= ${r}`,()=>e.assign(I,!0)))}}};bx.default=BSA});var LAA=He(Kl=>{"use strict";Object.defineProperty(Kl,"__esModule",{value:!0});Kl.validateSchemaDeps=Kl.validatePropertyDeps=Kl.error=void 0;var kx=Pi(),ESA=wn(),H4=Oc();Kl.error={message:({params:{property:t,depsCount:e,deps:A}})=>{let i=e===1?"property":"properties";return(0,kx.str)`must have ${i} ${A} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:A,missingProperty:i}})=>(0,kx._)`{property: ${t}, + || ${r} === "boolean" || ${n} === null`).assign(s,(0,ki._)`[${n}]`)}}}function $9A({gen:t,parentData:e,parentDataProperty:A},i){t.if((0,ki._)`${e} !== undefined`,()=>t.assign((0,ki._)`${e}[${A}]`,i))}function NL(t,e,A,i=DE.Correct){let n=i===DE.Correct?ki.operators.EQ:ki.operators.NEQ,o;switch(t){case"null":return(0,ki._)`${e} ${n} null`;case"array":o=(0,ki._)`Array.isArray(${e})`;break;case"object":o=(0,ki._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":o=r((0,ki._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":o=r();break;default:return(0,ki._)`typeof ${e} ${n} ${t}`}return i===DE.Correct?o:(0,ki.not)(o);function r(s=ki.nil){return(0,ki.and)((0,ki._)`typeof ${e} == "number"`,s,A?(0,ki._)`isFinite(${e})`:ki.nil)}}_s.checkDataType=NL;function FL(t,e,A,i){if(t.length===1)return NL(t[0],e,A,i);let n,o=(0,A$.toHash)(t);if(o.array&&o.object){let r=(0,ki._)`typeof ${e} != "object"`;n=o.null?r:(0,ki._)`!${e} || ${r}`,delete o.null,delete o.array,delete o.object}else n=ki.nil;o.number&&delete o.integer;for(let r in o)n=(0,ki.and)(n,NL(r,e,A,i));return n}_s.checkDataTypes=FL;var AMA={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,ki._)`{type: ${t}}`:(0,ki._)`{type: ${e}}`};function _L(t){let e=eMA(t);(0,q9A.reportError)(e,AMA)}_s.reportTypeError=_L;function eMA(t){let{gen:e,data:A,schema:i}=t,n=(0,A$.schemaRefOrVal)(t,i,"type");return{gen:e,keyword:"type",data:A,schema:i.type,schemaCode:n,schemaValue:n,parentSchema:i,params:{},it:t}}});var n$=He(Z5=>{"use strict";Object.defineProperty(Z5,"__esModule",{value:!0});Z5.assignDefaults=void 0;var wE=Pi(),tMA=wn();function iMA(t,e){let{properties:A,items:i}=t.schema;if(e==="object"&&A)for(let n in A)i$(t,n,A[n].default);else e==="array"&&Array.isArray(i)&&i.forEach((n,o)=>i$(t,o,n.default))}Z5.assignDefaults=iMA;function i$(t,e,A){let{gen:i,compositeRule:n,data:o,opts:r}=t;if(A===void 0)return;let s=(0,wE._)`${o}${(0,wE.getProperty)(e)}`;if(n){(0,tMA.checkStrictMode)(t,`default is ignored for: ${s}`);return}let a=(0,wE._)`${s} === undefined`;r.useDefaults==="empty"&&(a=(0,wE._)`${a} || ${s} === null || ${s} === ""`),i.if(a,(0,wE._)`${s} = ${(0,wE.stringify)(A)}`)}});var Oc=He(co=>{"use strict";Object.defineProperty(co,"__esModule",{value:!0});co.validateUnion=co.validateArray=co.usePattern=co.callValidateCode=co.schemaProperties=co.allSchemaProperties=co.noPropertyInData=co.propertyInData=co.isOwnProperty=co.hasPropFunc=co.reportMissingProp=co.checkMissingProp=co.checkReportMissingProp=void 0;var Ho=Pi(),GL=wn(),w1=J0(),nMA=wn();function oMA(t,e){let{gen:A,data:i,it:n}=t;A.if(UL(A,i,e,n.opts.ownProperties),()=>{t.setParams({missingProperty:(0,Ho._)`${e}`},!0),t.error()})}co.checkReportMissingProp=oMA;function rMA({gen:t,data:e,it:{opts:A}},i,n){return(0,Ho.or)(...i.map(o=>(0,Ho.and)(UL(t,e,o,A.ownProperties),(0,Ho._)`${n} = ${o}`)))}co.checkMissingProp=rMA;function sMA(t,e){t.setParams({missingProperty:e},!0),t.error()}co.reportMissingProp=sMA;function o$(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,Ho._)`Object.prototype.hasOwnProperty`})}co.hasPropFunc=o$;function KL(t,e,A){return(0,Ho._)`${o$(t)}.call(${e}, ${A})`}co.isOwnProperty=KL;function aMA(t,e,A,i){let n=(0,Ho._)`${e}${(0,Ho.getProperty)(A)} !== undefined`;return i?(0,Ho._)`${n} && ${KL(t,e,A)}`:n}co.propertyInData=aMA;function UL(t,e,A,i){let n=(0,Ho._)`${e}${(0,Ho.getProperty)(A)} === undefined`;return i?(0,Ho.or)(n,(0,Ho.not)(KL(t,e,A))):n}co.noPropertyInData=UL;function r$(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}co.allSchemaProperties=r$;function cMA(t,e){return r$(e).filter(A=>!(0,GL.alwaysValidSchema)(t,e[A]))}co.schemaProperties=cMA;function gMA({schemaCode:t,data:e,it:{gen:A,topSchemaRef:i,schemaPath:n,errorPath:o},it:r},s,a,c){let g=c?(0,Ho._)`${t}, ${e}, ${i}${n}`:e,I=[[w1.default.instancePath,(0,Ho.strConcat)(w1.default.instancePath,o)],[w1.default.parentData,r.parentData],[w1.default.parentDataProperty,r.parentDataProperty],[w1.default.rootData,w1.default.rootData]];r.opts.dynamicRef&&I.push([w1.default.dynamicAnchors,w1.default.dynamicAnchors]);let C=(0,Ho._)`${g}, ${A.object(...I)}`;return a!==Ho.nil?(0,Ho._)`${s}.call(${a}, ${C})`:(0,Ho._)`${s}(${C})`}co.callValidateCode=gMA;var lMA=(0,Ho._)`new RegExp`;function IMA({gen:t,it:{opts:e}},A){let i=e.unicodeRegExp?"u":"",{regExp:n}=e.code,o=n(A,i);return t.scopeValue("pattern",{key:o.toString(),ref:o,code:(0,Ho._)`${n.code==="new RegExp"?lMA:(0,nMA.useFunc)(t,n)}(${A}, ${i})`})}co.usePattern=IMA;function CMA(t){let{gen:e,data:A,keyword:i,it:n}=t,o=e.name("valid");if(n.allErrors){let s=e.let("valid",!0);return r(()=>e.assign(s,!1)),s}return e.var(o,!0),r(()=>e.break()),o;function r(s){let a=e.const("len",(0,Ho._)`${A}.length`);e.forRange("i",0,a,c=>{t.subschema({keyword:i,dataProp:c,dataPropType:GL.Type.Num},o),e.if((0,Ho.not)(o),s)})}}co.validateArray=CMA;function dMA(t){let{gen:e,schema:A,keyword:i,it:n}=t;if(!Array.isArray(A))throw new Error("ajv implementation error");if(A.some(a=>(0,GL.alwaysValidSchema)(n,a))&&!n.opts.unevaluated)return;let r=e.let("valid",!1),s=e.name("_valid");e.block(()=>A.forEach((a,c)=>{let g=t.subschema({keyword:i,schemaProp:c,compositeRule:!0},s);e.assign(r,(0,Ho._)`${r} || ${s}`),t.mergeValidEvaluated(g,s)||e.if((0,Ho.not)(r))})),t.result(r,()=>t.reset(),()=>t.error(!0))}co.validateUnion=dMA});var c$=He(Fl=>{"use strict";Object.defineProperty(Fl,"__esModule",{value:!0});Fl.validateKeywordUsage=Fl.validSchemaType=Fl.funcKeywordCode=Fl.macroKeywordCode=void 0;var ta=Pi(),mC=J0(),BMA=Oc(),EMA=w4();function QMA(t,e){let{gen:A,keyword:i,schema:n,parentSchema:o,it:r}=t,s=e.macro.call(r.self,n,o,r),a=a$(A,i,s);r.opts.validateSchema!==!1&&r.self.validateSchema(s,!0);let c=A.name("valid");t.subschema({schema:s,schemaPath:ta.nil,errSchemaPath:`${r.errSchemaPath}/${i}`,topSchemaRef:a,compositeRule:!0},c),t.pass(c,()=>t.error(!0))}Fl.macroKeywordCode=QMA;function uMA(t,e){var A;let{gen:i,keyword:n,schema:o,parentSchema:r,$data:s,it:a}=t;fMA(a,e);let c=!s&&e.compile?e.compile.call(a.self,o,r,a):e.validate,g=a$(i,n,c),I=i.let("valid");t.block$data(I,C),t.ok((A=e.valid)!==null&&A!==void 0?A:I);function C(){if(e.errors===!1)E(),e.modifying&&s$(t),u(()=>t.error());else{let h=e.async?d():B();e.modifying&&s$(t),u(()=>hMA(t,h))}}function d(){let h=i.let("ruleErrs",null);return i.try(()=>E((0,ta._)`await `),w=>i.assign(I,!1).if((0,ta._)`${w} instanceof ${a.ValidationError}`,()=>i.assign(h,(0,ta._)`${w}.errors`),()=>i.throw(w))),h}function B(){let h=(0,ta._)`${g}.errors`;return i.assign(h,null),E(ta.nil),h}function E(h=e.async?(0,ta._)`await `:ta.nil){let w=a.opts.passContext?mC.default.this:mC.default.self,x=!("compile"in e&&!s||e.schema===!1);i.assign(I,(0,ta._)`${h}${(0,BMA.callValidateCode)(t,g,w,x)}`,e.modifying)}function u(h){var w;i.if((0,ta.not)((w=e.valid)!==null&&w!==void 0?w:I),h)}}Fl.funcKeywordCode=uMA;function s$(t){let{gen:e,data:A,it:i}=t;e.if(i.parentData,()=>e.assign(A,(0,ta._)`${i.parentData}[${i.parentDataProperty}]`))}function hMA(t,e){let{gen:A}=t;A.if((0,ta._)`Array.isArray(${e})`,()=>{A.assign(mC.default.vErrors,(0,ta._)`${mC.default.vErrors} === null ? ${e} : ${mC.default.vErrors}.concat(${e})`).assign(mC.default.errors,(0,ta._)`${mC.default.vErrors}.length`),(0,EMA.extendErrors)(t)},()=>t.error())}function fMA({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function a$(t,e,A){if(A===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof A=="function"?{ref:A}:{ref:A,code:(0,ta.stringify)(A)})}function mMA(t,e,A=!1){return!e.length||e.some(i=>i==="array"?Array.isArray(t):i==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==i||A&&typeof t>"u")}Fl.validSchemaType=mMA;function pMA({schema:t,opts:e,self:A,errSchemaPath:i},n,o){if(Array.isArray(n.keyword)?!n.keyword.includes(o):n.keyword!==o)throw new Error("ajv implementation error");let r=n.dependencies;if(r?.some(s=>!Object.prototype.hasOwnProperty.call(t,s)))throw new Error(`parent schema must have dependencies of ${o}: ${r.join(",")}`);if(n.validateSchema&&!n.validateSchema(t[o])){let a=`keyword "${o}" value is invalid at path "${i}": `+A.errorsText(n.validateSchema.errors);if(e.validateSchema==="log")A.logger.error(a);else throw new Error(a)}}Fl.validateKeywordUsage=pMA});var l$=He(y1=>{"use strict";Object.defineProperty(y1,"__esModule",{value:!0});y1.extendSubschemaMode=y1.extendSubschemaData=y1.getSubschema=void 0;var _l=Pi(),g$=wn();function DMA(t,{keyword:e,schemaProp:A,schema:i,schemaPath:n,errSchemaPath:o,topSchemaRef:r}){if(e!==void 0&&i!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let s=t.schema[e];return A===void 0?{schema:s,schemaPath:(0,_l._)`${t.schemaPath}${(0,_l.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:s[A],schemaPath:(0,_l._)`${t.schemaPath}${(0,_l.getProperty)(e)}${(0,_l.getProperty)(A)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,g$.escapeFragment)(A)}`}}if(i!==void 0){if(n===void 0||o===void 0||r===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:i,schemaPath:n,topSchemaRef:r,errSchemaPath:o}}throw new Error('either "keyword" or "schema" must be passed')}y1.getSubschema=DMA;function wMA(t,e,{dataProp:A,dataPropType:i,data:n,dataTypes:o,propertyName:r}){if(n!==void 0&&A!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=e;if(A!==void 0){let{errorPath:c,dataPathArr:g,opts:I}=e,C=s.let("data",(0,_l._)`${e.data}${(0,_l.getProperty)(A)}`,!0);a(C),t.errorPath=(0,_l.str)`${c}${(0,g$.getErrorPath)(A,i,I.jsPropertySyntax)}`,t.parentDataProperty=(0,_l._)`${A}`,t.dataPathArr=[...g,t.parentDataProperty]}if(n!==void 0){let c=n instanceof _l.Name?n:s.let("data",n,!0);a(c),r!==void 0&&(t.propertyName=r)}o&&(t.dataTypes=o);function a(c){t.data=c,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,c]}}y1.extendSubschemaData=wMA;function yMA(t,{jtdDiscriminator:e,jtdMetadata:A,compositeRule:i,createErrors:n,allErrors:o}){i!==void 0&&(t.compositeRule=i),n!==void 0&&(t.createErrors=n),o!==void 0&&(t.allErrors=o),t.jtdDiscriminator=e,t.jtdMetadata=A}y1.extendSubschemaMode=yMA});var JL=He((y8e,I$)=>{"use strict";I$.exports=function t(e,A){if(e===A)return!0;if(e&&A&&typeof e=="object"&&typeof A=="object"){if(e.constructor!==A.constructor)return!1;var i,n,o;if(Array.isArray(e)){if(i=e.length,i!=A.length)return!1;for(n=i;n--!==0;)if(!t(e[n],A[n]))return!1;return!0}if(e.constructor===RegExp)return e.source===A.source&&e.flags===A.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===A.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===A.toString();if(o=Object.keys(e),i=o.length,i!==Object.keys(A).length)return!1;for(n=i;n--!==0;)if(!Object.prototype.hasOwnProperty.call(A,o[n]))return!1;for(n=i;n--!==0;){var r=o[n];if(!t(e[r],A[r]))return!1}return!0}return e!==e&&A!==A}});var d$=He((v8e,C$)=>{"use strict";var v1=C$.exports=function(t,e,A){typeof e=="function"&&(A=e,e={}),A=e.cb||A;var i=typeof A=="function"?A:A.pre||function(){},n=A.post||function(){};W5(e,i,n,t,"",t)};v1.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};v1.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};v1.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};v1.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function W5(t,e,A,i,n,o,r,s,a,c){if(i&&typeof i=="object"&&!Array.isArray(i)){e(i,n,o,r,s,a,c);for(var g in i){var I=i[g];if(Array.isArray(I)){if(g in v1.arrayKeywords)for(var C=0;C{"use strict";Object.defineProperty(La,"__esModule",{value:!0});La.getSchemaRefs=La.resolveUrl=La.normalizeId=La._getFullPath=La.getFullPath=La.inlineRef=void 0;var MMA=wn(),bMA=JL(),kMA=d$(),SMA=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function RMA(t,e=!0){return typeof t=="boolean"?!0:e===!0?!YL(t):e?B$(t)<=e:!1}La.inlineRef=RMA;var LMA=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function YL(t){for(let e in t){if(LMA.has(e))return!0;let A=t[e];if(Array.isArray(A)&&A.some(YL)||typeof A=="object"&&YL(A))return!0}return!1}function B$(t){let e=0;for(let A in t){if(A==="$ref")return 1/0;if(e++,!SMA.has(A)&&(typeof t[A]=="object"&&(0,MMA.eachItem)(t[A],i=>e+=B$(i)),e===1/0))return 1/0}return e}function E$(t,e="",A){A!==!1&&(e=yE(e));let i=t.parse(e);return Q$(t,i)}La.getFullPath=E$;function Q$(t,e){return t.serialize(e).split("#")[0]+"#"}La._getFullPath=Q$;var xMA=/#\/?$/;function yE(t){return t?t.replace(xMA,""):""}La.normalizeId=yE;function NMA(t,e,A){return A=yE(A),t.resolve(e,A)}La.resolveUrl=NMA;var FMA=/^[a-z_][-a-z0-9._]*$/i;function _MA(t,e){if(typeof t=="boolean")return{};let{schemaId:A,uriResolver:i}=this.opts,n=yE(t[A]||e),o={"":n},r=E$(i,n,!1),s={},a=new Set;return kMA(t,{allKeys:!0},(I,C,d,B)=>{if(B===void 0)return;let E=r+C,u=o[B];typeof I[A]=="string"&&(u=h.call(this,I[A])),w.call(this,I.$anchor),w.call(this,I.$dynamicAnchor),o[C]=u;function h(x){let R=this.opts.uriResolver.resolve;if(x=yE(u?R(u,x):x),a.has(x))throw g(x);a.add(x);let D=this.refs[x];return typeof D=="string"&&(D=this.refs[D]),typeof D=="object"?c(I,D.schema,x):x!==yE(E)&&(x[0]==="#"?(c(I,s[x],x),s[x]=I):this.refs[x]=E),x}function w(x){if(typeof x=="string"){if(!FMA.test(x))throw new Error(`invalid anchor "${x}"`);h.call(this,`#${x}`)}}}),s;function c(I,C,d){if(C!==void 0&&!bMA(I,C))throw g(d)}function g(I){return new Error(`reference "${I}" resolves to more than one schema`)}}La.getSchemaRefs=_MA});var k4=He(M1=>{"use strict";Object.defineProperty(M1,"__esModule",{value:!0});M1.getData=M1.KeywordCxt=M1.validateFunctionCode=void 0;var p$=WX(),u$=y4(),HL=xL(),X5=y4(),GMA=n$(),b4=c$(),TL=l$(),wt=Pi(),si=J0(),KMA=v4(),Y0=wn(),M4=w4();function UMA(t){if(y$(t)&&(v$(t),w$(t))){TMA(t);return}D$(t,()=>(0,p$.topBoolOrEmptySchema)(t))}M1.validateFunctionCode=UMA;function D$({gen:t,validateName:e,schema:A,schemaEnv:i,opts:n},o){n.code.es5?t.func(e,(0,wt._)`${si.default.data}, ${si.default.valCxt}`,i.$async,()=>{t.code((0,wt._)`"use strict"; ${h$(A,n)}`),YMA(t,n),t.code(o)}):t.func(e,(0,wt._)`${si.default.data}, ${JMA(n)}`,i.$async,()=>t.code(h$(A,n)).code(o))}function JMA(t){return(0,wt._)`{${si.default.instancePath}="", ${si.default.parentData}, ${si.default.parentDataProperty}, ${si.default.rootData}=${si.default.data}${t.dynamicRef?(0,wt._)`, ${si.default.dynamicAnchors}={}`:wt.nil}}={}`}function YMA(t,e){t.if(si.default.valCxt,()=>{t.var(si.default.instancePath,(0,wt._)`${si.default.valCxt}.${si.default.instancePath}`),t.var(si.default.parentData,(0,wt._)`${si.default.valCxt}.${si.default.parentData}`),t.var(si.default.parentDataProperty,(0,wt._)`${si.default.valCxt}.${si.default.parentDataProperty}`),t.var(si.default.rootData,(0,wt._)`${si.default.valCxt}.${si.default.rootData}`),e.dynamicRef&&t.var(si.default.dynamicAnchors,(0,wt._)`${si.default.valCxt}.${si.default.dynamicAnchors}`)},()=>{t.var(si.default.instancePath,(0,wt._)`""`),t.var(si.default.parentData,(0,wt._)`undefined`),t.var(si.default.parentDataProperty,(0,wt._)`undefined`),t.var(si.default.rootData,si.default.data),e.dynamicRef&&t.var(si.default.dynamicAnchors,(0,wt._)`{}`)})}function TMA(t){let{schema:e,opts:A,gen:i}=t;D$(t,()=>{A.$comment&&e.$comment&&b$(t),jMA(t),i.let(si.default.vErrors,null),i.let(si.default.errors,0),A.unevaluated&&HMA(t),M$(t),ZMA(t)})}function HMA(t){let{gen:e,validateName:A}=t;t.evaluated=e.const("evaluated",(0,wt._)`${A}.evaluated`),e.if((0,wt._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,wt._)`${t.evaluated}.props`,(0,wt._)`undefined`)),e.if((0,wt._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,wt._)`${t.evaluated}.items`,(0,wt._)`undefined`))}function h$(t,e){let A=typeof t=="object"&&t[e.schemaId];return A&&(e.code.source||e.code.process)?(0,wt._)`/*# sourceURL=${A} */`:wt.nil}function OMA(t,e){if(y$(t)&&(v$(t),w$(t))){zMA(t,e);return}(0,p$.boolOrEmptySchema)(t,e)}function w$({schema:t,self:e}){if(typeof t=="boolean")return!t;for(let A in t)if(e.RULES.all[A])return!0;return!1}function y$(t){return typeof t.schema!="boolean"}function zMA(t,e){let{schema:A,gen:i,opts:n}=t;n.$comment&&A.$comment&&b$(t),qMA(t),VMA(t);let o=i.const("_errs",si.default.errors);M$(t,o),i.var(e,(0,wt._)`${o} === ${si.default.errors}`)}function v$(t){(0,Y0.checkUnknownRules)(t),PMA(t)}function M$(t,e){if(t.opts.jtd)return f$(t,[],!1,e);let A=(0,u$.getSchemaTypes)(t.schema),i=(0,u$.coerceAndCheckDataType)(t,A);f$(t,A,!i,e)}function PMA(t){let{schema:e,errSchemaPath:A,opts:i,self:n}=t;e.$ref&&i.ignoreKeywordsWithRef&&(0,Y0.schemaHasRulesButRef)(e,n.RULES)&&n.logger.warn(`$ref: keywords ignored in schema at path "${A}"`)}function jMA(t){let{schema:e,opts:A}=t;e.default!==void 0&&A.useDefaults&&A.strictSchema&&(0,Y0.checkStrictMode)(t,"default is ignored in the schema root")}function qMA(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,KMA.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function VMA(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function b$({gen:t,schemaEnv:e,schema:A,errSchemaPath:i,opts:n}){let o=A.$comment;if(n.$comment===!0)t.code((0,wt._)`${si.default.self}.logger.log(${o})`);else if(typeof n.$comment=="function"){let r=(0,wt.str)`${i}/$comment`,s=t.scopeValue("root",{ref:e.root});t.code((0,wt._)`${si.default.self}.opts.$comment(${o}, ${r}, ${s}.schema)`)}}function ZMA(t){let{gen:e,schemaEnv:A,validateName:i,ValidationError:n,opts:o}=t;A.$async?e.if((0,wt._)`${si.default.errors} === 0`,()=>e.return(si.default.data),()=>e.throw((0,wt._)`new ${n}(${si.default.vErrors})`)):(e.assign((0,wt._)`${i}.errors`,si.default.vErrors),o.unevaluated&&WMA(t),e.return((0,wt._)`${si.default.errors} === 0`))}function WMA({gen:t,evaluated:e,props:A,items:i}){A instanceof wt.Name&&t.assign((0,wt._)`${e}.props`,A),i instanceof wt.Name&&t.assign((0,wt._)`${e}.items`,i)}function f$(t,e,A,i){let{gen:n,schema:o,data:r,allErrors:s,opts:a,self:c}=t,{RULES:g}=c;if(o.$ref&&(a.ignoreKeywordsWithRef||!(0,Y0.schemaHasRulesButRef)(o,g))){n.block(()=>S$(t,"$ref",g.all.$ref.definition));return}a.jtd||XMA(t,e),n.block(()=>{for(let C of g.rules)I(C);I(g.post)});function I(C){(0,HL.shouldUseGroup)(o,C)&&(C.type?(n.if((0,X5.checkDataType)(C.type,r,a.strictNumbers)),m$(t,C),e.length===1&&e[0]===C.type&&A&&(n.else(),(0,X5.reportTypeError)(t)),n.endIf()):m$(t,C),s||n.if((0,wt._)`${si.default.errors} === ${i||0}`))}}function m$(t,e){let{gen:A,schema:i,opts:{useDefaults:n}}=t;n&&(0,GMA.assignDefaults)(t,e.type),A.block(()=>{for(let o of e.rules)(0,HL.shouldUseRule)(i,o)&&S$(t,o.keyword,o.definition,e.type)})}function XMA(t,e){t.schemaEnv.meta||!t.opts.strictTypes||($MA(t,e),t.opts.allowUnionTypes||AbA(t,e),ebA(t,t.dataTypes))}function $MA(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(A=>{k$(t.dataTypes,A)||OL(t,`type "${A}" not allowed by context "${t.dataTypes.join(",")}"`)}),ibA(t,e)}}function AbA(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&OL(t,"use allowUnionTypes to allow union type keyword")}function ebA(t,e){let A=t.self.RULES.all;for(let i in A){let n=A[i];if(typeof n=="object"&&(0,HL.shouldUseRule)(t.schema,n)){let{type:o}=n.definition;o.length&&!o.some(r=>tbA(e,r))&&OL(t,`missing type "${o.join(",")}" for keyword "${i}"`)}}}function tbA(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function k$(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function ibA(t,e){let A=[];for(let i of t.dataTypes)k$(e,i)?A.push(i):e.includes("integer")&&i==="number"&&A.push("integer");t.dataTypes=A}function OL(t,e){let A=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${A}" (strictTypes)`,(0,Y0.checkStrictMode)(t,e,t.opts.strictTypes)}var $5=class{constructor(e,A,i){if((0,b4.validateKeywordUsage)(e,A,i),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=i,this.data=e.data,this.schema=e.schema[i],this.$data=A.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Y0.schemaRefOrVal)(e,this.schema,i,this.$data),this.schemaType=A.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=A,this.$data)this.schemaCode=e.gen.const("vSchema",R$(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,b4.validSchemaType)(this.schema,A.schemaType,A.allowUndefined))throw new Error(`${i} value must be ${JSON.stringify(A.schemaType)}`);("code"in A?A.trackErrors:A.errors!==!1)&&(this.errsCount=e.gen.const("_errs",si.default.errors))}result(e,A,i){this.failResult((0,wt.not)(e),A,i)}failResult(e,A,i){this.gen.if(e),i?i():this.error(),A?(this.gen.else(),A(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,A){this.failResult((0,wt.not)(e),void 0,A)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:A}=this;this.fail((0,wt._)`${A} !== undefined && (${(0,wt.or)(this.invalid$data(),e)})`)}error(e,A,i){if(A){this.setParams(A),this._error(e,i),this.setParams({});return}this._error(e,i)}_error(e,A){(e?M4.reportExtraError:M4.reportError)(this,this.def.error,A)}$dataError(){(0,M4.reportError)(this,this.def.$dataError||M4.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,M4.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,A){A?Object.assign(this.params,e):this.params=e}block$data(e,A,i=wt.nil){this.gen.block(()=>{this.check$data(e,i),A()})}check$data(e=wt.nil,A=wt.nil){if(!this.$data)return;let{gen:i,schemaCode:n,schemaType:o,def:r}=this;i.if((0,wt.or)((0,wt._)`${n} === undefined`,A)),e!==wt.nil&&i.assign(e,!0),(o.length||r.validateSchema)&&(i.elseIf(this.invalid$data()),this.$dataError(),e!==wt.nil&&i.assign(e,!1)),i.else()}invalid$data(){let{gen:e,schemaCode:A,schemaType:i,def:n,it:o}=this;return(0,wt.or)(r(),s());function r(){if(i.length){if(!(A instanceof wt.Name))throw new Error("ajv implementation error");let a=Array.isArray(i)?i:[i];return(0,wt._)`${(0,X5.checkDataTypes)(a,A,o.opts.strictNumbers,X5.DataType.Wrong)}`}return wt.nil}function s(){if(n.validateSchema){let a=e.scopeValue("validate$data",{ref:n.validateSchema});return(0,wt._)`!${a}(${A})`}return wt.nil}}subschema(e,A){let i=(0,TL.getSubschema)(this.it,e);(0,TL.extendSubschemaData)(i,this.it,e),(0,TL.extendSubschemaMode)(i,e);let n=Fe(sA(sA({},this.it),i),{items:void 0,props:void 0});return OMA(n,A),n}mergeEvaluated(e,A){let{it:i,gen:n}=this;i.opts.unevaluated&&(i.props!==!0&&e.props!==void 0&&(i.props=Y0.mergeEvaluated.props(n,e.props,i.props,A)),i.items!==!0&&e.items!==void 0&&(i.items=Y0.mergeEvaluated.items(n,e.items,i.items,A)))}mergeValidEvaluated(e,A){let{it:i,gen:n}=this;if(i.opts.unevaluated&&(i.props!==!0||i.items!==!0))return n.if(A,()=>this.mergeEvaluated(e,wt.Name)),!0}};M1.KeywordCxt=$5;function S$(t,e,A,i){let n=new $5(t,A,e);"code"in A?A.code(n,i):n.$data&&A.validate?(0,b4.funcKeywordCode)(n,A):"macro"in A?(0,b4.macroKeywordCode)(n,A):(A.compile||A.validate)&&(0,b4.funcKeywordCode)(n,A)}var nbA=/^\/(?:[^~]|~0|~1)*$/,obA=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function R$(t,{dataLevel:e,dataNames:A,dataPathArr:i}){let n,o;if(t==="")return si.default.rootData;if(t[0]==="/"){if(!nbA.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);n=t,o=si.default.rootData}else{let c=obA.exec(t);if(!c)throw new Error(`Invalid JSON-pointer: ${t}`);let g=+c[1];if(n=c[2],n==="#"){if(g>=e)throw new Error(a("property/index",g));return i[e-g]}if(g>e)throw new Error(a("data",g));if(o=A[e-g],!n)return o}let r=o,s=n.split("/");for(let c of s)c&&(o=(0,wt._)`${o}${(0,wt.getProperty)((0,Y0.unescapeJsonPointer)(c))}`,r=(0,wt._)`${r} && ${o}`);return r;function a(c,g){return`Cannot access ${c} ${g} levels up, current level is ${e}`}}M1.getData=R$});var AD=He(PL=>{"use strict";Object.defineProperty(PL,"__esModule",{value:!0});var zL=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};PL.default=zL});var S4=He(VL=>{"use strict";Object.defineProperty(VL,"__esModule",{value:!0});var jL=v4(),qL=class extends Error{constructor(e,A,i,n){super(n||`can't resolve reference ${i} from id ${A}`),this.missingRef=(0,jL.resolveUrl)(e,A,i),this.missingSchema=(0,jL.normalizeId)((0,jL.getFullPath)(e,this.missingRef))}};VL.default=qL});var tD=He(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});zc.resolveSchema=zc.getCompilingSchema=zc.resolveRef=zc.compileSchema=zc.SchemaEnv=void 0;var Sg=Pi(),rbA=AD(),pC=J0(),Rg=v4(),L$=wn(),sbA=k4(),vE=class{constructor(e){var A;this.refs={},this.dynamicAnchors={};let i;typeof e.schema=="object"&&(i=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(A=e.baseId)!==null&&A!==void 0?A:(0,Rg.normalizeId)(i?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=i?.$async,this.refs={}}};zc.SchemaEnv=vE;function WL(t){let e=x$.call(this,t);if(e)return e;let A=(0,Rg.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:i,lines:n}=this.opts.code,{ownProperties:o}=this.opts,r=new Sg.CodeGen(this.scope,{es5:i,lines:n,ownProperties:o}),s;t.$async&&(s=r.scopeValue("Error",{ref:rbA.default,code:(0,Sg._)`require("ajv/dist/runtime/validation_error").default`}));let a=r.scopeName("validate");t.validateName=a;let c={gen:r,allErrors:this.opts.allErrors,data:pC.default.data,parentData:pC.default.parentData,parentDataProperty:pC.default.parentDataProperty,dataNames:[pC.default.data],dataPathArr:[Sg.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:r.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,Sg.stringify)(t.schema)}:{ref:t.schema}),validateName:a,ValidationError:s,schema:t.schema,schemaEnv:t,rootId:A,baseId:t.baseId||A,schemaPath:Sg.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,Sg._)`""`,opts:this.opts,self:this},g;try{this._compilations.add(t),(0,sbA.validateFunctionCode)(c),r.optimize(this.opts.code.optimize);let I=r.toString();g=`${r.scopeRefs(pC.default.scope)}return ${I}`,this.opts.code.process&&(g=this.opts.code.process(g,t));let d=new Function(`${pC.default.self}`,`${pC.default.scope}`,g)(this,this.scope.get());if(this.scope.value(a,{ref:d}),d.errors=null,d.schema=t.schema,d.schemaEnv=t,t.$async&&(d.$async=!0),this.opts.code.source===!0&&(d.source={validateName:a,validateCode:I,scopeValues:r._values}),this.opts.unevaluated){let{props:B,items:E}=c;d.evaluated={props:B instanceof Sg.Name?void 0:B,items:E instanceof Sg.Name?void 0:E,dynamicProps:B instanceof Sg.Name,dynamicItems:E instanceof Sg.Name},d.source&&(d.source.evaluated=(0,Sg.stringify)(d.evaluated))}return t.validate=d,t}catch(I){throw delete t.validate,delete t.validateName,g&&this.logger.error("Error compiling schema, function code:",g),I}finally{this._compilations.delete(t)}}zc.compileSchema=WL;function abA(t,e,A){var i;A=(0,Rg.resolveUrl)(this.opts.uriResolver,e,A);let n=t.refs[A];if(n)return n;let o=lbA.call(this,t,A);if(o===void 0){let r=(i=t.localRefs)===null||i===void 0?void 0:i[A],{schemaId:s}=this.opts;r&&(o=new vE({schema:r,schemaId:s,root:t,baseId:e}))}if(o!==void 0)return t.refs[A]=cbA.call(this,o)}zc.resolveRef=abA;function cbA(t){return(0,Rg.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:WL.call(this,t)}function x$(t){for(let e of this._compilations)if(gbA(e,t))return e}zc.getCompilingSchema=x$;function gbA(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function lbA(t,e){let A;for(;typeof(A=this.refs[e])=="string";)e=A;return A||this.schemas[e]||eD.call(this,t,e)}function eD(t,e){let A=this.opts.uriResolver.parse(e),i=(0,Rg._getFullPath)(this.opts.uriResolver,A),n=(0,Rg.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&i===n)return ZL.call(this,A,t);let o=(0,Rg.normalizeId)(i),r=this.refs[o]||this.schemas[o];if(typeof r=="string"){let s=eD.call(this,t,r);return typeof s?.schema!="object"?void 0:ZL.call(this,A,s)}if(typeof r?.schema=="object"){if(r.validate||WL.call(this,r),o===(0,Rg.normalizeId)(e)){let{schema:s}=r,{schemaId:a}=this.opts,c=s[a];return c&&(n=(0,Rg.resolveUrl)(this.opts.uriResolver,n,c)),new vE({schema:s,schemaId:a,root:t,baseId:n})}return ZL.call(this,A,r)}}zc.resolveSchema=eD;var IbA=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function ZL(t,{baseId:e,schema:A,root:i}){var n;if(((n=t.fragment)===null||n===void 0?void 0:n[0])!=="/")return;for(let s of t.fragment.slice(1).split("/")){if(typeof A=="boolean")return;let a=A[(0,L$.unescapeFragment)(s)];if(a===void 0)return;A=a;let c=typeof A=="object"&&A[this.opts.schemaId];!IbA.has(s)&&c&&(e=(0,Rg.resolveUrl)(this.opts.uriResolver,e,c))}let o;if(typeof A!="boolean"&&A.$ref&&!(0,L$.schemaHasRulesButRef)(A,this.RULES)){let s=(0,Rg.resolveUrl)(this.opts.uriResolver,e,A.$ref);o=eD.call(this,i,s)}let{schemaId:r}=this.opts;if(o=o||new vE({schema:A,schemaId:r,root:i,baseId:e}),o.schema!==o.root.schema)return o}});var N$=He((x8e,CbA)=>{CbA.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var $L=He((N8e,K$)=>{"use strict";var dbA=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),_$=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function XL(t){let e="",A=0,i=0;for(i=0;i=48&&A<=57||A>=65&&A<=70||A>=97&&A<=102))return"";e+=t[i];break}for(i+=1;i=48&&A<=57||A>=65&&A<=70||A>=97&&A<=102))return"";e+=t[i]}return e}var BbA=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function F$(t){return t.length=0,!0}function EbA(t,e,A){if(t.length){let i=XL(t);if(i!=="")e.push(i);else return A.error=!0,!1;t.length=0}return!0}function QbA(t){let e=0,A={error:!1,address:"",zone:""},i=[],n=[],o=!1,r=!1,s=EbA;for(let a=0;a7){A.error=!0;break}a>0&&t[a-1]===":"&&(o=!0),i.push(":");continue}else if(c==="%"){if(!s(n,i,A))break;s=F$}else{n.push(c);continue}}return n.length&&(s===F$?A.zone=n.join(""):r?i.push(n.join("")):i.push(XL(n))),A.address=i.join(""),A}function G$(t){if(ubA(t,":")<2)return{host:t,isIPV6:!1};let e=QbA(t);if(e.error)return{host:t,isIPV6:!1};{let A=e.address,i=e.address;return e.zone&&(A+="%"+e.zone,i+="%25"+e.zone),{host:A,isIPV6:!0,escapedHost:i}}}function ubA(t,e){let A=0;for(let i=0;i{"use strict";var{isUUID:pbA}=$L(),DbA=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,wbA=["http","https","ws","wss","urn","urn:uuid"];function ybA(t){return wbA.indexOf(t)!==-1}function Ax(t){return t.secure===!0?!0:t.secure===!1?!1:t.scheme?t.scheme.length===3&&(t.scheme[0]==="w"||t.scheme[0]==="W")&&(t.scheme[1]==="s"||t.scheme[1]==="S")&&(t.scheme[2]==="s"||t.scheme[2]==="S"):!1}function U$(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function J$(t){let e=String(t.scheme).toLowerCase()==="https";return(t.port===(e?443:80)||t.port==="")&&(t.port=void 0),t.path||(t.path="/"),t}function vbA(t){return t.secure=Ax(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function MbA(t){if((t.port===(Ax(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[e,A]=t.resourceName.split("?");t.path=e&&e!=="/"?e:void 0,t.query=A,t.resourceName=void 0}return t.fragment=void 0,t}function bbA(t,e){if(!t.path)return t.error="URN can not be parsed",t;let A=t.path.match(DbA);if(A){let i=e.scheme||t.scheme||"urn";t.nid=A[1].toLowerCase(),t.nss=A[2];let n=`${i}:${e.nid||t.nid}`,o=ex(n);t.path=void 0,o&&(t=o.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function kbA(t,e){if(t.nid===void 0)throw new Error("URN without nid cannot be serialized");let A=e.scheme||t.scheme||"urn",i=t.nid.toLowerCase(),n=`${A}:${e.nid||i}`,o=ex(n);o&&(t=o.serialize(t,e));let r=t,s=t.nss;return r.path=`${i||e.nid}:${s}`,e.skipEscape=!0,r}function SbA(t,e){let A=t;return A.uuid=A.nss,A.nss=void 0,!e.tolerant&&(!A.uuid||!pbA(A.uuid))&&(A.error=A.error||"UUID is not valid."),A}function RbA(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var Y$={scheme:"http",domainHost:!0,parse:U$,serialize:J$},LbA={scheme:"https",domainHost:Y$.domainHost,parse:U$,serialize:J$},iD={scheme:"ws",domainHost:!0,parse:vbA,serialize:MbA},xbA={scheme:"wss",domainHost:iD.domainHost,parse:iD.parse,serialize:iD.serialize},NbA={scheme:"urn",parse:bbA,serialize:kbA,skipNormalize:!0},FbA={scheme:"urn:uuid",parse:SbA,serialize:RbA,skipNormalize:!0},nD={http:Y$,https:LbA,ws:iD,wss:xbA,urn:NbA,"urn:uuid":FbA};Object.setPrototypeOf(nD,null);function ex(t){return t&&(nD[t]||nD[t.toLowerCase()])||void 0}T$.exports={wsIsSecure:Ax,SCHEMES:nD,isValidSchemeName:ybA,getSchemeHandler:ex}});var P$=He((_8e,rD)=>{"use strict";var{normalizeIPv6:_bA,removeDotSegments:R4,recomposeAuthority:GbA,normalizeComponentEncoding:oD,isIPv4:KbA,nonSimpleDomain:UbA}=$L(),{SCHEMES:JbA,getSchemeHandler:O$}=H$();function YbA(t,e){return typeof t=="string"?t=Gl(T0(t,e),e):typeof t=="object"&&(t=T0(Gl(t,e),e)),t}function TbA(t,e,A){let i=A?Object.assign({scheme:"null"},A):{scheme:"null"},n=z$(T0(t,i),T0(e,i),i,!0);return i.skipEscape=!0,Gl(n,i)}function z$(t,e,A,i){let n={};return i||(t=T0(Gl(t,A),A),e=T0(Gl(e,A),A)),A=A||{},!A.tolerant&&e.scheme?(n.scheme=e.scheme,n.userinfo=e.userinfo,n.host=e.host,n.port=e.port,n.path=R4(e.path||""),n.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(n.userinfo=e.userinfo,n.host=e.host,n.port=e.port,n.path=R4(e.path||""),n.query=e.query):(e.path?(e.path[0]==="/"?n.path=R4(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?n.path="/"+e.path:t.path?n.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:n.path=e.path,n.path=R4(n.path)),n.query=e.query):(n.path=t.path,e.query!==void 0?n.query=e.query:n.query=t.query),n.userinfo=t.userinfo,n.host=t.host,n.port=t.port),n.scheme=t.scheme),n.fragment=e.fragment,n}function HbA(t,e,A){return typeof t=="string"?(t=unescape(t),t=Gl(oD(T0(t,A),!0),Fe(sA({},A),{skipEscape:!0}))):typeof t=="object"&&(t=Gl(oD(t,!0),Fe(sA({},A),{skipEscape:!0}))),typeof e=="string"?(e=unescape(e),e=Gl(oD(T0(e,A),!0),Fe(sA({},A),{skipEscape:!0}))):typeof e=="object"&&(e=Gl(oD(e,!0),Fe(sA({},A),{skipEscape:!0}))),t.toLowerCase()===e.toLowerCase()}function Gl(t,e){let A={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},i=Object.assign({},e),n=[],o=O$(i.scheme||A.scheme);o&&o.serialize&&o.serialize(A,i),A.path!==void 0&&(i.skipEscape?A.path=unescape(A.path):(A.path=escape(A.path),A.scheme!==void 0&&(A.path=A.path.split("%3A").join(":")))),i.reference!=="suffix"&&A.scheme&&n.push(A.scheme,":");let r=GbA(A);if(r!==void 0&&(i.reference!=="suffix"&&n.push("//"),n.push(r),A.path&&A.path[0]!=="/"&&n.push("/")),A.path!==void 0){let s=A.path;!i.absolutePath&&(!o||!o.absolutePath)&&(s=R4(s)),r===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),n.push(s)}return A.query!==void 0&&n.push("?",A.query),A.fragment!==void 0&&n.push("#",A.fragment),n.join("")}var ObA=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function T0(t,e){let A=Object.assign({},e),i={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},n=!1;A.reference==="suffix"&&(A.scheme?t=A.scheme+":"+t:t="//"+t);let o=t.match(ObA);if(o){if(i.scheme=o[1],i.userinfo=o[3],i.host=o[4],i.port=parseInt(o[5],10),i.path=o[6]||"",i.query=o[7],i.fragment=o[8],isNaN(i.port)&&(i.port=o[5]),i.host)if(KbA(i.host)===!1){let a=_bA(i.host);i.host=a.host.toLowerCase(),n=a.isIPV6}else n=!0;i.scheme===void 0&&i.userinfo===void 0&&i.host===void 0&&i.port===void 0&&i.query===void 0&&!i.path?i.reference="same-document":i.scheme===void 0?i.reference="relative":i.fragment===void 0?i.reference="absolute":i.reference="uri",A.reference&&A.reference!=="suffix"&&A.reference!==i.reference&&(i.error=i.error||"URI is not a "+A.reference+" reference.");let r=O$(A.scheme||i.scheme);if(!A.unicodeSupport&&(!r||!r.unicodeSupport)&&i.host&&(A.domainHost||r&&r.domainHost)&&n===!1&&UbA(i.host))try{i.host=URL.domainToASCII(i.host.toLowerCase())}catch(s){i.error=i.error||"Host's domain name can not be converted to ASCII: "+s}(!r||r&&!r.skipNormalize)&&(t.indexOf("%")!==-1&&(i.scheme!==void 0&&(i.scheme=unescape(i.scheme)),i.host!==void 0&&(i.host=unescape(i.host))),i.path&&(i.path=escape(unescape(i.path))),i.fragment&&(i.fragment=encodeURI(decodeURIComponent(i.fragment)))),r&&r.parse&&r.parse(i,A)}else i.error=i.error||"URI can not be parsed.";return i}var tx={SCHEMES:JbA,normalize:YbA,resolve:TbA,resolveComponent:z$,equal:HbA,serialize:Gl,parse:T0};rD.exports=tx;rD.exports.default=tx;rD.exports.fastUri=tx});var q$=He(ix=>{"use strict";Object.defineProperty(ix,"__esModule",{value:!0});var j$=P$();j$.code='require("ajv/dist/runtime/uri").default';ix.default=j$});var tAA=He(Es=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0});Es.CodeGen=Es.Name=Es.nil=Es.stringify=Es.str=Es._=Es.KeywordCxt=void 0;var zbA=k4();Object.defineProperty(Es,"KeywordCxt",{enumerable:!0,get:function(){return zbA.KeywordCxt}});var ME=Pi();Object.defineProperty(Es,"_",{enumerable:!0,get:function(){return ME._}});Object.defineProperty(Es,"str",{enumerable:!0,get:function(){return ME.str}});Object.defineProperty(Es,"stringify",{enumerable:!0,get:function(){return ME.stringify}});Object.defineProperty(Es,"nil",{enumerable:!0,get:function(){return ME.nil}});Object.defineProperty(Es,"Name",{enumerable:!0,get:function(){return ME.Name}});Object.defineProperty(Es,"CodeGen",{enumerable:!0,get:function(){return ME.CodeGen}});var PbA=AD(),$$=S4(),jbA=LL(),L4=tD(),qbA=Pi(),x4=v4(),sD=y4(),ox=wn(),V$=N$(),VbA=q$(),AAA=(t,e)=>new RegExp(t,e);AAA.code="new RegExp";var ZbA=["removeAdditional","useDefaults","coerceTypes"],WbA=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),XbA={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},$bA={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Z$=200;function AkA(t){var e,A,i,n,o,r,s,a,c,g,I,C,d,B,E,u,h,w,x,R,D,G,J,z,K;let O=t.strict,V=(e=t.code)===null||e===void 0?void 0:e.optimize,j=V===!0||V===void 0?1:V||0,dA=(i=(A=t.code)===null||A===void 0?void 0:A.regExp)!==null&&i!==void 0?i:AAA,fA=(n=t.uriResolver)!==null&&n!==void 0?n:VbA.default;return{strictSchema:(r=(o=t.strictSchema)!==null&&o!==void 0?o:O)!==null&&r!==void 0?r:!0,strictNumbers:(a=(s=t.strictNumbers)!==null&&s!==void 0?s:O)!==null&&a!==void 0?a:!0,strictTypes:(g=(c=t.strictTypes)!==null&&c!==void 0?c:O)!==null&&g!==void 0?g:"log",strictTuples:(C=(I=t.strictTuples)!==null&&I!==void 0?I:O)!==null&&C!==void 0?C:"log",strictRequired:(B=(d=t.strictRequired)!==null&&d!==void 0?d:O)!==null&&B!==void 0?B:!1,code:t.code?Fe(sA({},t.code),{optimize:j,regExp:dA}):{optimize:j,regExp:dA},loopRequired:(E=t.loopRequired)!==null&&E!==void 0?E:Z$,loopEnum:(u=t.loopEnum)!==null&&u!==void 0?u:Z$,meta:(h=t.meta)!==null&&h!==void 0?h:!0,messages:(w=t.messages)!==null&&w!==void 0?w:!0,inlineRefs:(x=t.inlineRefs)!==null&&x!==void 0?x:!0,schemaId:(R=t.schemaId)!==null&&R!==void 0?R:"$id",addUsedSchema:(D=t.addUsedSchema)!==null&&D!==void 0?D:!0,validateSchema:(G=t.validateSchema)!==null&&G!==void 0?G:!0,validateFormats:(J=t.validateFormats)!==null&&J!==void 0?J:!0,unicodeRegExp:(z=t.unicodeRegExp)!==null&&z!==void 0?z:!0,int32range:(K=t.int32range)!==null&&K!==void 0?K:!0,uriResolver:fA}}var N4=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts=sA(sA({},e),AkA(e));let{es5:A,lines:i}=this.opts.code;this.scope=new qbA.ValueScope({scope:{},prefixes:WbA,es5:A,lines:i}),this.logger=rkA(e.logger);let n=e.validateFormats;e.validateFormats=!1,this.RULES=(0,jbA.getRules)(),W$.call(this,XbA,e,"NOT SUPPORTED"),W$.call(this,$bA,e,"DEPRECATED","warn"),this._metaOpts=nkA.call(this),e.formats&&tkA.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&ikA.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),ekA.call(this),e.validateFormats=n}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:A,schemaId:i}=this.opts,n=V$;i==="id"&&(n=sA({},V$),n.id=n.$id,delete n.$id),A&&e&&this.addMetaSchema(n,n[i],!1)}defaultMeta(){let{meta:e,schemaId:A}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[A]||e:void 0}validate(e,A){let i;if(typeof e=="string"){if(i=this.getSchema(e),!i)throw new Error(`no schema with key or ref "${e}"`)}else i=this.compile(e);let n=i(A);return"$async"in i||(this.errors=i.errors),n}compile(e,A){let i=this._addSchema(e,A);return i.validate||this._compileSchemaEnv(i)}compileAsync(e,A){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:i}=this.opts;return n.call(this,e,A);function n(g,I){return Ni(this,null,function*(){yield o.call(this,g.$schema);let C=this._addSchema(g,I);return C.validate||r.call(this,C)})}function o(g){return Ni(this,null,function*(){g&&!this.getSchema(g)&&(yield n.call(this,{$ref:g},!0))})}function r(g){return Ni(this,null,function*(){try{return this._compileSchemaEnv(g)}catch(I){if(!(I instanceof $$.default))throw I;return s.call(this,I),yield a.call(this,I.missingSchema),r.call(this,g)}})}function s({missingSchema:g,missingRef:I}){if(this.refs[g])throw new Error(`AnySchema ${g} is loaded but ${I} cannot be resolved`)}function a(g){return Ni(this,null,function*(){let I=yield c.call(this,g);this.refs[g]||(yield o.call(this,I.$schema)),this.refs[g]||this.addSchema(I,g,A)})}function c(g){return Ni(this,null,function*(){let I=this._loading[g];if(I)return I;try{return yield this._loading[g]=i(g)}finally{delete this._loading[g]}})}}addSchema(e,A,i,n=this.opts.validateSchema){if(Array.isArray(e)){for(let r of e)this.addSchema(r,void 0,i,n);return this}let o;if(typeof e=="object"){let{schemaId:r}=this.opts;if(o=e[r],o!==void 0&&typeof o!="string")throw new Error(`schema ${r} must be string`)}return A=(0,x4.normalizeId)(A||o),this._checkUnique(A),this.schemas[A]=this._addSchema(e,i,A,n,!0),this}addMetaSchema(e,A,i=this.opts.validateSchema){return this.addSchema(e,A,!0,i),this}validateSchema(e,A){if(typeof e=="boolean")return!0;let i;if(i=e.$schema,i!==void 0&&typeof i!="string")throw new Error("$schema must be a string");if(i=i||this.opts.defaultMeta||this.defaultMeta(),!i)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let n=this.validate(i,e);if(!n&&A){let o="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(o);else throw new Error(o)}return n}getSchema(e){let A;for(;typeof(A=X$.call(this,e))=="string";)e=A;if(A===void 0){let{schemaId:i}=this.opts,n=new L4.SchemaEnv({schema:{},schemaId:i});if(A=L4.resolveSchema.call(this,n,e),!A)return;this.refs[e]=A}return A.validate||this._compileSchemaEnv(A)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let A=X$.call(this,e);return typeof A=="object"&&this._cache.delete(A.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let A=e;this._cache.delete(A);let i=e[this.opts.schemaId];return i&&(i=(0,x4.normalizeId)(i),delete this.schemas[i],delete this.refs[i]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let A of e)this.addKeyword(A);return this}addKeyword(e,A){let i;if(typeof e=="string")i=e,typeof A=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),A.keyword=i);else if(typeof e=="object"&&A===void 0){if(A=e,i=A.keyword,Array.isArray(i)&&!i.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(akA.call(this,i,A),!A)return(0,ox.eachItem)(i,o=>nx.call(this,o)),this;gkA.call(this,A);let n=Fe(sA({},A),{type:(0,sD.getJSONTypes)(A.type),schemaType:(0,sD.getJSONTypes)(A.schemaType)});return(0,ox.eachItem)(i,n.type.length===0?o=>nx.call(this,o,n):o=>n.type.forEach(r=>nx.call(this,o,n,r))),this}getKeyword(e){let A=this.RULES.all[e];return typeof A=="object"?A.definition:!!A}removeKeyword(e){let{RULES:A}=this;delete A.keywords[e],delete A.all[e];for(let i of A.rules){let n=i.rules.findIndex(o=>o.keyword===e);n>=0&&i.rules.splice(n,1)}return this}addFormat(e,A){return typeof A=="string"&&(A=new RegExp(A)),this.formats[e]=A,this}errorsText(e=this.errors,{separator:A=", ",dataVar:i="data"}={}){return!e||e.length===0?"No errors":e.map(n=>`${i}${n.instancePath} ${n.message}`).reduce((n,o)=>n+A+o)}$dataMetaSchema(e,A){let i=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let n of A){let o=n.split("/").slice(1),r=e;for(let s of o)r=r[s];for(let s in i){let a=i[s];if(typeof a!="object")continue;let{$data:c}=a.definition,g=r[s];c&&g&&(r[s]=eAA(g))}}return e}_removeAllSchemas(e,A){for(let i in e){let n=e[i];(!A||A.test(i))&&(typeof n=="string"?delete e[i]:n&&!n.meta&&(this._cache.delete(n.schema),delete e[i]))}}_addSchema(e,A,i,n=this.opts.validateSchema,o=this.opts.addUsedSchema){let r,{schemaId:s}=this.opts;if(typeof e=="object")r=e[s];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let a=this._cache.get(e);if(a!==void 0)return a;i=(0,x4.normalizeId)(r||i);let c=x4.getSchemaRefs.call(this,e,i);return a=new L4.SchemaEnv({schema:e,schemaId:s,meta:A,baseId:i,localRefs:c}),this._cache.set(a.schema,a),o&&!i.startsWith("#")&&(i&&this._checkUnique(i),this.refs[i]=a),n&&this.validateSchema(e,!0),a}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):L4.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let A=this.opts;this.opts=this._metaOpts;try{L4.compileSchema.call(this,e)}finally{this.opts=A}}};N4.ValidationError=PbA.default;N4.MissingRefError=$$.default;Es.default=N4;function W$(t,e,A,i="error"){for(let n in t){let o=n;o in e&&this.logger[i](`${A}: option ${n}. ${t[o]}`)}}function X$(t){return t=(0,x4.normalizeId)(t),this.schemas[t]||this.refs[t]}function ekA(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function tkA(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function ikA(t){if(Array.isArray(t)){this.addVocabulary(t);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in t){let A=t[e];A.keyword||(A.keyword=e),this.addKeyword(A)}}function nkA(){let t=sA({},this.opts);for(let e of ZbA)delete t[e];return t}var okA={log(){},warn(){},error(){}};function rkA(t){if(t===!1)return okA;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var skA=/^[a-z_$][a-z0-9_$:-]*$/i;function akA(t,e){let{RULES:A}=this;if((0,ox.eachItem)(t,i=>{if(A.keywords[i])throw new Error(`Keyword ${i} is already defined`);if(!skA.test(i))throw new Error(`Keyword ${i} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function nx(t,e,A){var i;let n=e?.post;if(A&&n)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:o}=this,r=n?o.post:o.rules.find(({type:a})=>a===A);if(r||(r={type:A,rules:[]},o.rules.push(r)),o.keywords[t]=!0,!e)return;let s={keyword:t,definition:Fe(sA({},e),{type:(0,sD.getJSONTypes)(e.type),schemaType:(0,sD.getJSONTypes)(e.schemaType)})};e.before?ckA.call(this,r,s,e.before):r.rules.push(s),o.all[t]=s,(i=e.implements)===null||i===void 0||i.forEach(a=>this.addKeyword(a))}function ckA(t,e,A){let i=t.rules.findIndex(n=>n.keyword===A);i>=0?t.rules.splice(i,0,e):(t.rules.push(e),this.logger.warn(`rule ${A} is not defined`))}function gkA(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=eAA(e)),t.validateSchema=this.compile(e,!0))}var lkA={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function eAA(t){return{anyOf:[t,lkA]}}});var iAA=He(rx=>{"use strict";Object.defineProperty(rx,"__esModule",{value:!0});var IkA={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};rx.default=IkA});var sAA=He(DC=>{"use strict";Object.defineProperty(DC,"__esModule",{value:!0});DC.callRef=DC.getValidate=void 0;var CkA=S4(),nAA=Oc(),xa=Pi(),bE=J0(),oAA=tD(),aD=wn(),dkA={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:A,it:i}=t,{baseId:n,schemaEnv:o,validateName:r,opts:s,self:a}=i,{root:c}=o;if((A==="#"||A==="#/")&&n===c.baseId)return I();let g=oAA.resolveRef.call(a,c,n,A);if(g===void 0)throw new CkA.default(i.opts.uriResolver,n,A);if(g instanceof oAA.SchemaEnv)return C(g);return d(g);function I(){if(o===c)return cD(t,r,o,o.$async);let B=e.scopeValue("root",{ref:c});return cD(t,(0,xa._)`${B}.validate`,c,c.$async)}function C(B){let E=rAA(t,B);cD(t,E,B,B.$async)}function d(B){let E=e.scopeValue("schema",s.code.source===!0?{ref:B,code:(0,xa.stringify)(B)}:{ref:B}),u=e.name("valid"),h=t.subschema({schema:B,dataTypes:[],schemaPath:xa.nil,topSchemaRef:E,errSchemaPath:A},u);t.mergeEvaluated(h),t.ok(u)}}};function rAA(t,e){let{gen:A}=t;return e.validate?A.scopeValue("validate",{ref:e.validate}):(0,xa._)`${A.scopeValue("wrapper",{ref:e})}.validate`}DC.getValidate=rAA;function cD(t,e,A,i){let{gen:n,it:o}=t,{allErrors:r,schemaEnv:s,opts:a}=o,c=a.passContext?bE.default.this:xa.nil;i?g():I();function g(){if(!s.$async)throw new Error("async schema referenced by sync schema");let B=n.let("valid");n.try(()=>{n.code((0,xa._)`await ${(0,nAA.callValidateCode)(t,e,c)}`),d(e),r||n.assign(B,!0)},E=>{n.if((0,xa._)`!(${E} instanceof ${o.ValidationError})`,()=>n.throw(E)),C(E),r||n.assign(B,!1)}),t.ok(B)}function I(){t.result((0,nAA.callValidateCode)(t,e,c),()=>d(e),()=>C(e))}function C(B){let E=(0,xa._)`${B}.errors`;n.assign(bE.default.vErrors,(0,xa._)`${bE.default.vErrors} === null ? ${E} : ${bE.default.vErrors}.concat(${E})`),n.assign(bE.default.errors,(0,xa._)`${bE.default.vErrors}.length`)}function d(B){var E;if(!o.opts.unevaluated)return;let u=(E=A?.validate)===null||E===void 0?void 0:E.evaluated;if(o.props!==!0)if(u&&!u.dynamicProps)u.props!==void 0&&(o.props=aD.mergeEvaluated.props(n,u.props,o.props));else{let h=n.var("props",(0,xa._)`${B}.evaluated.props`);o.props=aD.mergeEvaluated.props(n,h,o.props,xa.Name)}if(o.items!==!0)if(u&&!u.dynamicItems)u.items!==void 0&&(o.items=aD.mergeEvaluated.items(n,u.items,o.items));else{let h=n.var("items",(0,xa._)`${B}.evaluated.items`);o.items=aD.mergeEvaluated.items(n,h,o.items,xa.Name)}}}DC.callRef=cD;DC.default=dkA});var aAA=He(sx=>{"use strict";Object.defineProperty(sx,"__esModule",{value:!0});var BkA=iAA(),EkA=sAA(),QkA=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",BkA.default,EkA.default];sx.default=QkA});var cAA=He(ax=>{"use strict";Object.defineProperty(ax,"__esModule",{value:!0});var gD=Pi(),b1=gD.operators,lD={maximum:{okStr:"<=",ok:b1.LTE,fail:b1.GT},minimum:{okStr:">=",ok:b1.GTE,fail:b1.LT},exclusiveMaximum:{okStr:"<",ok:b1.LT,fail:b1.GTE},exclusiveMinimum:{okStr:">",ok:b1.GT,fail:b1.LTE}},ukA={message:({keyword:t,schemaCode:e})=>(0,gD.str)`must be ${lD[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,gD._)`{comparison: ${lD[t].okStr}, limit: ${e}}`},hkA={keyword:Object.keys(lD),type:"number",schemaType:"number",$data:!0,error:ukA,code(t){let{keyword:e,data:A,schemaCode:i}=t;t.fail$data((0,gD._)`${A} ${lD[e].fail} ${i} || isNaN(${A})`)}};ax.default=hkA});var gAA=He(cx=>{"use strict";Object.defineProperty(cx,"__esModule",{value:!0});var F4=Pi(),fkA={message:({schemaCode:t})=>(0,F4.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,F4._)`{multipleOf: ${t}}`},mkA={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:fkA,code(t){let{gen:e,data:A,schemaCode:i,it:n}=t,o=n.opts.multipleOfPrecision,r=e.let("res"),s=o?(0,F4._)`Math.abs(Math.round(${r}) - ${r}) > 1e-${o}`:(0,F4._)`${r} !== parseInt(${r})`;t.fail$data((0,F4._)`(${i} === 0 || (${r} = ${A}/${i}, ${s}))`)}};cx.default=mkA});var IAA=He(gx=>{"use strict";Object.defineProperty(gx,"__esModule",{value:!0});function lAA(t){let e=t.length,A=0,i=0,n;for(;i=55296&&n<=56319&&i{"use strict";Object.defineProperty(lx,"__esModule",{value:!0});var wC=Pi(),pkA=wn(),DkA=IAA(),wkA={message({keyword:t,schemaCode:e}){let A=t==="maxLength"?"more":"fewer";return(0,wC.str)`must NOT have ${A} than ${e} characters`},params:({schemaCode:t})=>(0,wC._)`{limit: ${t}}`},ykA={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:wkA,code(t){let{keyword:e,data:A,schemaCode:i,it:n}=t,o=e==="maxLength"?wC.operators.GT:wC.operators.LT,r=n.opts.unicode===!1?(0,wC._)`${A}.length`:(0,wC._)`${(0,pkA.useFunc)(t.gen,DkA.default)}(${A})`;t.fail$data((0,wC._)`${r} ${o} ${i}`)}};lx.default=ykA});var dAA=He(Ix=>{"use strict";Object.defineProperty(Ix,"__esModule",{value:!0});var vkA=Oc(),ID=Pi(),MkA={message:({schemaCode:t})=>(0,ID.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,ID._)`{pattern: ${t}}`},bkA={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:MkA,code(t){let{data:e,$data:A,schema:i,schemaCode:n,it:o}=t,r=o.opts.unicodeRegExp?"u":"",s=A?(0,ID._)`(new RegExp(${n}, ${r}))`:(0,vkA.usePattern)(t,i);t.fail$data((0,ID._)`!${s}.test(${e})`)}};Ix.default=bkA});var BAA=He(Cx=>{"use strict";Object.defineProperty(Cx,"__esModule",{value:!0});var _4=Pi(),kkA={message({keyword:t,schemaCode:e}){let A=t==="maxProperties"?"more":"fewer";return(0,_4.str)`must NOT have ${A} than ${e} properties`},params:({schemaCode:t})=>(0,_4._)`{limit: ${t}}`},SkA={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:kkA,code(t){let{keyword:e,data:A,schemaCode:i}=t,n=e==="maxProperties"?_4.operators.GT:_4.operators.LT;t.fail$data((0,_4._)`Object.keys(${A}).length ${n} ${i}`)}};Cx.default=SkA});var EAA=He(dx=>{"use strict";Object.defineProperty(dx,"__esModule",{value:!0});var G4=Oc(),K4=Pi(),RkA=wn(),LkA={message:({params:{missingProperty:t}})=>(0,K4.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,K4._)`{missingProperty: ${t}}`},xkA={keyword:"required",type:"object",schemaType:"array",$data:!0,error:LkA,code(t){let{gen:e,schema:A,schemaCode:i,data:n,$data:o,it:r}=t,{opts:s}=r;if(!o&&A.length===0)return;let a=A.length>=s.loopRequired;if(r.allErrors?c():g(),s.strictRequired){let d=t.parentSchema.properties,{definedProperties:B}=t.it;for(let E of A)if(d?.[E]===void 0&&!B.has(E)){let u=r.schemaEnv.baseId+r.errSchemaPath,h=`required property "${E}" is not defined at "${u}" (strictRequired)`;(0,RkA.checkStrictMode)(r,h,r.opts.strictRequired)}}function c(){if(a||o)t.block$data(K4.nil,I);else for(let d of A)(0,G4.checkReportMissingProp)(t,d)}function g(){let d=e.let("missing");if(a||o){let B=e.let("valid",!0);t.block$data(B,()=>C(d,B)),t.ok(B)}else e.if((0,G4.checkMissingProp)(t,A,d)),(0,G4.reportMissingProp)(t,d),e.else()}function I(){e.forOf("prop",i,d=>{t.setParams({missingProperty:d}),e.if((0,G4.noPropertyInData)(e,n,d,s.ownProperties),()=>t.error())})}function C(d,B){t.setParams({missingProperty:d}),e.forOf(d,i,()=>{e.assign(B,(0,G4.propertyInData)(e,n,d,s.ownProperties)),e.if((0,K4.not)(B),()=>{t.error(),e.break()})},K4.nil)}}};dx.default=xkA});var QAA=He(Bx=>{"use strict";Object.defineProperty(Bx,"__esModule",{value:!0});var U4=Pi(),NkA={message({keyword:t,schemaCode:e}){let A=t==="maxItems"?"more":"fewer";return(0,U4.str)`must NOT have ${A} than ${e} items`},params:({schemaCode:t})=>(0,U4._)`{limit: ${t}}`},FkA={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:NkA,code(t){let{keyword:e,data:A,schemaCode:i}=t,n=e==="maxItems"?U4.operators.GT:U4.operators.LT;t.fail$data((0,U4._)`${A}.length ${n} ${i}`)}};Bx.default=FkA});var CD=He(Ex=>{"use strict";Object.defineProperty(Ex,"__esModule",{value:!0});var uAA=JL();uAA.code='require("ajv/dist/runtime/equal").default';Ex.default=uAA});var hAA=He(ux=>{"use strict";Object.defineProperty(ux,"__esModule",{value:!0});var Qx=y4(),Qs=Pi(),_kA=wn(),GkA=CD(),KkA={message:({params:{i:t,j:e}})=>(0,Qs.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,Qs._)`{i: ${t}, j: ${e}}`},UkA={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:KkA,code(t){let{gen:e,data:A,$data:i,schema:n,parentSchema:o,schemaCode:r,it:s}=t;if(!i&&!n)return;let a=e.let("valid"),c=o.items?(0,Qx.getSchemaTypes)(o.items):[];t.block$data(a,g,(0,Qs._)`${r} === false`),t.ok(a);function g(){let B=e.let("i",(0,Qs._)`${A}.length`),E=e.let("j");t.setParams({i:B,j:E}),e.assign(a,!0),e.if((0,Qs._)`${B} > 1`,()=>(I()?C:d)(B,E))}function I(){return c.length>0&&!c.some(B=>B==="object"||B==="array")}function C(B,E){let u=e.name("item"),h=(0,Qx.checkDataTypes)(c,u,s.opts.strictNumbers,Qx.DataType.Wrong),w=e.const("indices",(0,Qs._)`{}`);e.for((0,Qs._)`;${B}--;`,()=>{e.let(u,(0,Qs._)`${A}[${B}]`),e.if(h,(0,Qs._)`continue`),c.length>1&&e.if((0,Qs._)`typeof ${u} == "string"`,(0,Qs._)`${u} += "_"`),e.if((0,Qs._)`typeof ${w}[${u}] == "number"`,()=>{e.assign(E,(0,Qs._)`${w}[${u}]`),t.error(),e.assign(a,!1).break()}).code((0,Qs._)`${w}[${u}] = ${B}`)})}function d(B,E){let u=(0,_kA.useFunc)(e,GkA.default),h=e.name("outer");e.label(h).for((0,Qs._)`;${B}--;`,()=>e.for((0,Qs._)`${E} = ${B}; ${E}--;`,()=>e.if((0,Qs._)`${u}(${A}[${B}], ${A}[${E}])`,()=>{t.error(),e.assign(a,!1).break(h)})))}}};ux.default=UkA});var fAA=He(fx=>{"use strict";Object.defineProperty(fx,"__esModule",{value:!0});var hx=Pi(),JkA=wn(),YkA=CD(),TkA={message:"must be equal to constant",params:({schemaCode:t})=>(0,hx._)`{allowedValue: ${t}}`},HkA={keyword:"const",$data:!0,error:TkA,code(t){let{gen:e,data:A,$data:i,schemaCode:n,schema:o}=t;i||o&&typeof o=="object"?t.fail$data((0,hx._)`!${(0,JkA.useFunc)(e,YkA.default)}(${A}, ${n})`):t.fail((0,hx._)`${o} !== ${A}`)}};fx.default=HkA});var mAA=He(mx=>{"use strict";Object.defineProperty(mx,"__esModule",{value:!0});var J4=Pi(),OkA=wn(),zkA=CD(),PkA={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,J4._)`{allowedValues: ${t}}`},jkA={keyword:"enum",schemaType:"array",$data:!0,error:PkA,code(t){let{gen:e,data:A,$data:i,schema:n,schemaCode:o,it:r}=t;if(!i&&n.length===0)throw new Error("enum must have non-empty array");let s=n.length>=r.opts.loopEnum,a,c=()=>a??(a=(0,OkA.useFunc)(e,zkA.default)),g;if(s||i)g=e.let("valid"),t.block$data(g,I);else{if(!Array.isArray(n))throw new Error("ajv implementation error");let d=e.const("vSchema",o);g=(0,J4.or)(...n.map((B,E)=>C(d,E)))}t.pass(g);function I(){e.assign(g,!1),e.forOf("v",o,d=>e.if((0,J4._)`${c()}(${A}, ${d})`,()=>e.assign(g,!0).break()))}function C(d,B){let E=n[B];return typeof E=="object"&&E!==null?(0,J4._)`${c()}(${A}, ${d}[${B}])`:(0,J4._)`${A} === ${E}`}}};mx.default=jkA});var pAA=He(px=>{"use strict";Object.defineProperty(px,"__esModule",{value:!0});var qkA=cAA(),VkA=gAA(),ZkA=CAA(),WkA=dAA(),XkA=BAA(),$kA=EAA(),ASA=QAA(),eSA=hAA(),tSA=fAA(),iSA=mAA(),nSA=[qkA.default,VkA.default,ZkA.default,WkA.default,XkA.default,$kA.default,ASA.default,eSA.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},tSA.default,iSA.default];px.default=nSA});var wx=He(Y4=>{"use strict";Object.defineProperty(Y4,"__esModule",{value:!0});Y4.validateAdditionalItems=void 0;var yC=Pi(),Dx=wn(),oSA={message:({params:{len:t}})=>(0,yC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,yC._)`{limit: ${t}}`},rSA={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:oSA,code(t){let{parentSchema:e,it:A}=t,{items:i}=e;if(!Array.isArray(i)){(0,Dx.checkStrictMode)(A,'"additionalItems" is ignored when "items" is not an array of schemas');return}DAA(t,i)}};function DAA(t,e){let{gen:A,schema:i,data:n,keyword:o,it:r}=t;r.items=!0;let s=A.const("len",(0,yC._)`${n}.length`);if(i===!1)t.setParams({len:e.length}),t.pass((0,yC._)`${s} <= ${e.length}`);else if(typeof i=="object"&&!(0,Dx.alwaysValidSchema)(r,i)){let c=A.var("valid",(0,yC._)`${s} <= ${e.length}`);A.if((0,yC.not)(c),()=>a(c)),t.ok(c)}function a(c){A.forRange("i",e.length,s,g=>{t.subschema({keyword:o,dataProp:g,dataPropType:Dx.Type.Num},c),r.allErrors||A.if((0,yC.not)(c),()=>A.break())})}}Y4.validateAdditionalItems=DAA;Y4.default=rSA});var yx=He(T4=>{"use strict";Object.defineProperty(T4,"__esModule",{value:!0});T4.validateTuple=void 0;var wAA=Pi(),dD=wn(),sSA=Oc(),aSA={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:A}=t;if(Array.isArray(e))return yAA(t,"additionalItems",e);A.items=!0,!(0,dD.alwaysValidSchema)(A,e)&&t.ok((0,sSA.validateArray)(t))}};function yAA(t,e,A=t.schema){let{gen:i,parentSchema:n,data:o,keyword:r,it:s}=t;g(n),s.opts.unevaluated&&A.length&&s.items!==!0&&(s.items=dD.mergeEvaluated.items(i,A.length,s.items));let a=i.name("valid"),c=i.const("len",(0,wAA._)`${o}.length`);A.forEach((I,C)=>{(0,dD.alwaysValidSchema)(s,I)||(i.if((0,wAA._)`${c} > ${C}`,()=>t.subschema({keyword:r,schemaProp:C,dataProp:C},a)),t.ok(a))});function g(I){let{opts:C,errSchemaPath:d}=s,B=A.length,E=B===I.minItems&&(B===I.maxItems||I[e]===!1);if(C.strictTuples&&!E){let u=`"${r}" is ${B}-tuple, but minItems or maxItems/${e} are not specified or different at path "${d}"`;(0,dD.checkStrictMode)(s,u,C.strictTuples)}}}T4.validateTuple=yAA;T4.default=aSA});var vAA=He(vx=>{"use strict";Object.defineProperty(vx,"__esModule",{value:!0});var cSA=yx(),gSA={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,cSA.validateTuple)(t,"items")};vx.default=gSA});var bAA=He(Mx=>{"use strict";Object.defineProperty(Mx,"__esModule",{value:!0});var MAA=Pi(),lSA=wn(),ISA=Oc(),CSA=wx(),dSA={message:({params:{len:t}})=>(0,MAA.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,MAA._)`{limit: ${t}}`},BSA={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:dSA,code(t){let{schema:e,parentSchema:A,it:i}=t,{prefixItems:n}=A;i.items=!0,!(0,lSA.alwaysValidSchema)(i,e)&&(n?(0,CSA.validateAdditionalItems)(t,n):t.ok((0,ISA.validateArray)(t)))}};Mx.default=BSA});var kAA=He(bx=>{"use strict";Object.defineProperty(bx,"__esModule",{value:!0});var Pc=Pi(),BD=wn(),ESA={message:({params:{min:t,max:e}})=>e===void 0?(0,Pc.str)`must contain at least ${t} valid item(s)`:(0,Pc.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,Pc._)`{minContains: ${t}}`:(0,Pc._)`{minContains: ${t}, maxContains: ${e}}`},QSA={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:ESA,code(t){let{gen:e,schema:A,parentSchema:i,data:n,it:o}=t,r,s,{minContains:a,maxContains:c}=i;o.opts.next?(r=a===void 0?1:a,s=c):r=1;let g=e.const("len",(0,Pc._)`${n}.length`);if(t.setParams({min:r,max:s}),s===void 0&&r===0){(0,BD.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&r>s){(0,BD.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,BD.alwaysValidSchema)(o,A)){let E=(0,Pc._)`${g} >= ${r}`;s!==void 0&&(E=(0,Pc._)`${E} && ${g} <= ${s}`),t.pass(E);return}o.items=!0;let I=e.name("valid");s===void 0&&r===1?d(I,()=>e.if(I,()=>e.break())):r===0?(e.let(I,!0),s!==void 0&&e.if((0,Pc._)`${n}.length > 0`,C)):(e.let(I,!1),C()),t.result(I,()=>t.reset());function C(){let E=e.name("_valid"),u=e.let("count",0);d(E,()=>e.if(E,()=>B(u)))}function d(E,u){e.forRange("i",0,g,h=>{t.subschema({keyword:"contains",dataProp:h,dataPropType:BD.Type.Num,compositeRule:!0},E),u()})}function B(E){e.code((0,Pc._)`${E}++`),s===void 0?e.if((0,Pc._)`${E} >= ${r}`,()=>e.assign(I,!0).break()):(e.if((0,Pc._)`${E} > ${s}`,()=>e.assign(I,!1).break()),r===1?e.assign(I,!0):e.if((0,Pc._)`${E} >= ${r}`,()=>e.assign(I,!0)))}}};bx.default=QSA});var LAA=He(Kl=>{"use strict";Object.defineProperty(Kl,"__esModule",{value:!0});Kl.validateSchemaDeps=Kl.validatePropertyDeps=Kl.error=void 0;var kx=Pi(),uSA=wn(),H4=Oc();Kl.error={message:({params:{property:t,depsCount:e,deps:A}})=>{let i=e===1?"property":"properties";return(0,kx.str)`must have ${i} ${A} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:A,missingProperty:i}})=>(0,kx._)`{property: ${t}, missingProperty: ${i}, depsCount: ${e}, - deps: ${A}}`};var QSA={keyword:"dependencies",type:"object",schemaType:"object",error:Kl.error,code(t){let[e,A]=uSA(t);SAA(t,e),RAA(t,A)}};function uSA({schema:t}){let e={},A={};for(let i in t){if(i==="__proto__")continue;let n=Array.isArray(t[i])?e:A;n[i]=t[i]}return[e,A]}function SAA(t,e=t.schema){let{gen:A,data:i,it:n}=t;if(Object.keys(e).length===0)return;let o=A.let("missing");for(let r in e){let s=e[r];if(s.length===0)continue;let a=(0,H4.propertyInData)(A,i,r,n.opts.ownProperties);t.setParams({property:r,depsCount:s.length,deps:s.join(", ")}),n.allErrors?A.if(a,()=>{for(let c of s)(0,H4.checkReportMissingProp)(t,c)}):(A.if((0,kx._)`${a} && (${(0,H4.checkMissingProp)(t,s,o)})`),(0,H4.reportMissingProp)(t,o),A.else())}}Kl.validatePropertyDeps=SAA;function RAA(t,e=t.schema){let{gen:A,data:i,keyword:n,it:o}=t,r=A.name("valid");for(let s in e)(0,ESA.alwaysValidSchema)(o,e[s])||(A.if((0,H4.propertyInData)(A,i,s,o.opts.ownProperties),()=>{let a=t.subschema({keyword:n,schemaProp:s},r);t.mergeValidEvaluated(a,r)},()=>A.var(r,!0)),t.ok(r))}Kl.validateSchemaDeps=RAA;Kl.default=QSA});var NAA=He(Sx=>{"use strict";Object.defineProperty(Sx,"__esModule",{value:!0});var xAA=Pi(),hSA=wn(),fSA={message:"property name must be valid",params:({params:t})=>(0,xAA._)`{propertyName: ${t.propertyName}}`},mSA={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:fSA,code(t){let{gen:e,schema:A,data:i,it:n}=t;if((0,hSA.alwaysValidSchema)(n,A))return;let o=e.name("valid");e.forIn("key",i,r=>{t.setParams({propertyName:r}),t.subschema({keyword:"propertyNames",data:r,dataTypes:["string"],propertyName:r,compositeRule:!0},o),e.if((0,xAA.not)(o),()=>{t.error(!0),n.allErrors||e.break()})}),t.ok(o)}};Sx.default=mSA});var Lx=He(Rx=>{"use strict";Object.defineProperty(Rx,"__esModule",{value:!0});var ED=Oc(),Lg=Pi(),pSA=J0(),QD=wn(),DSA={message:"must NOT have additional properties",params:({params:t})=>(0,Lg._)`{additionalProperty: ${t.additionalProperty}}`},wSA={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:DSA,code(t){let{gen:e,schema:A,parentSchema:i,data:n,errsCount:o,it:r}=t;if(!o)throw new Error("ajv implementation error");let{allErrors:s,opts:a}=r;if(r.props=!0,a.removeAdditional!=="all"&&(0,QD.alwaysValidSchema)(r,A))return;let c=(0,ED.allSchemaProperties)(i.properties),g=(0,ED.allSchemaProperties)(i.patternProperties);I(),t.ok((0,Lg._)`${o} === ${pSA.default.errors}`);function I(){e.forIn("key",n,u=>{!c.length&&!g.length?B(u):e.if(C(u),()=>B(u))})}function C(u){let h;if(c.length>8){let w=(0,QD.schemaRefOrVal)(r,i.properties,"properties");h=(0,ED.isOwnProperty)(e,w,u)}else c.length?h=(0,Lg.or)(...c.map(w=>(0,Lg._)`${u} === ${w}`)):h=Lg.nil;return g.length&&(h=(0,Lg.or)(h,...g.map(w=>(0,Lg._)`${(0,ED.usePattern)(t,w)}.test(${u})`))),(0,Lg.not)(h)}function d(u){e.code((0,Lg._)`delete ${n}[${u}]`)}function B(u){if(a.removeAdditional==="all"||a.removeAdditional&&A===!1){d(u);return}if(A===!1){t.setParams({additionalProperty:u}),t.error(),s||e.break();return}if(typeof A=="object"&&!(0,QD.alwaysValidSchema)(r,A)){let h=e.name("valid");a.removeAdditional==="failing"?(E(u,h,!1),e.if((0,Lg.not)(h),()=>{t.reset(),d(u)})):(E(u,h),s||e.if((0,Lg.not)(h),()=>e.break()))}}function E(u,h,w){let x={keyword:"additionalProperties",dataProp:u,dataPropType:QD.Type.Str};w===!1&&Object.assign(x,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(x,h)}}};Rx.default=wSA});var GAA=He(Nx=>{"use strict";Object.defineProperty(Nx,"__esModule",{value:!0});var ySA=k4(),FAA=Oc(),xx=wn(),_AA=Lx(),vSA={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:A,parentSchema:i,data:n,it:o}=t;o.opts.removeAdditional==="all"&&i.additionalProperties===void 0&&_AA.default.code(new ySA.KeywordCxt(o,_AA.default,"additionalProperties"));let r=(0,FAA.allSchemaProperties)(A);for(let I of r)o.definedProperties.add(I);o.opts.unevaluated&&r.length&&o.props!==!0&&(o.props=xx.mergeEvaluated.props(e,(0,xx.toHash)(r),o.props));let s=r.filter(I=>!(0,xx.alwaysValidSchema)(o,A[I]));if(s.length===0)return;let a=e.name("valid");for(let I of s)c(I)?g(I):(e.if((0,FAA.propertyInData)(e,n,I,o.opts.ownProperties)),g(I),o.allErrors||e.else().var(a,!0),e.endIf()),t.it.definedProperties.add(I),t.ok(a);function c(I){return o.opts.useDefaults&&!o.compositeRule&&A[I].default!==void 0}function g(I){t.subschema({keyword:"properties",schemaProp:I,dataProp:I},a)}}};Nx.default=vSA});var YAA=He(Fx=>{"use strict";Object.defineProperty(Fx,"__esModule",{value:!0});var KAA=Oc(),uD=Pi(),UAA=wn(),JAA=wn(),MSA={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:A,data:i,parentSchema:n,it:o}=t,{opts:r}=o,s=(0,KAA.allSchemaProperties)(A),a=s.filter(E=>(0,UAA.alwaysValidSchema)(o,A[E]));if(s.length===0||a.length===s.length&&(!o.opts.unevaluated||o.props===!0))return;let c=r.strictSchema&&!r.allowMatchingProperties&&n.properties,g=e.name("valid");o.props!==!0&&!(o.props instanceof uD.Name)&&(o.props=(0,JAA.evaluatedPropsToName)(e,o.props));let{props:I}=o;C();function C(){for(let E of s)c&&d(E),o.allErrors?B(E):(e.var(g,!0),B(E),e.if(g))}function d(E){for(let u in c)new RegExp(E).test(u)&&(0,UAA.checkStrictMode)(o,`property ${u} matches pattern ${E} (use allowMatchingProperties)`)}function B(E){e.forIn("key",i,u=>{e.if((0,uD._)`${(0,KAA.usePattern)(t,E)}.test(${u})`,()=>{let h=a.includes(E);h||t.subschema({keyword:"patternProperties",schemaProp:E,dataProp:u,dataPropType:JAA.Type.Str},g),o.opts.unevaluated&&I!==!0?e.assign((0,uD._)`${I}[${u}]`,!0):!h&&!o.allErrors&&e.if((0,uD.not)(g),()=>e.break())})})}}};Fx.default=MSA});var TAA=He(_x=>{"use strict";Object.defineProperty(_x,"__esModule",{value:!0});var bSA=wn(),kSA={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:A,it:i}=t;if((0,bSA.alwaysValidSchema)(i,A)){t.fail();return}let n=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},n),t.failResult(n,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};_x.default=kSA});var HAA=He(Gx=>{"use strict";Object.defineProperty(Gx,"__esModule",{value:!0});var SSA=Oc(),RSA={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:SSA.validateUnion,error:{message:"must match a schema in anyOf"}};Gx.default=RSA});var OAA=He(Kx=>{"use strict";Object.defineProperty(Kx,"__esModule",{value:!0});var hD=Pi(),LSA=wn(),xSA={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,hD._)`{passingSchemas: ${t.passing}}`},NSA={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:xSA,code(t){let{gen:e,schema:A,parentSchema:i,it:n}=t;if(!Array.isArray(A))throw new Error("ajv implementation error");if(n.opts.discriminator&&i.discriminator)return;let o=A,r=e.let("valid",!1),s=e.let("passing",null),a=e.name("_valid");t.setParams({passing:s}),e.block(c),t.result(r,()=>t.reset(),()=>t.error(!0));function c(){o.forEach((g,I)=>{let C;(0,LSA.alwaysValidSchema)(n,g)?e.var(a,!0):C=t.subschema({keyword:"oneOf",schemaProp:I,compositeRule:!0},a),I>0&&e.if((0,hD._)`${a} && ${r}`).assign(r,!1).assign(s,(0,hD._)`[${s}, ${I}]`).else(),e.if(a,()=>{e.assign(r,!0),e.assign(s,I),C&&t.mergeEvaluated(C,hD.Name)})})}}};Kx.default=NSA});var zAA=He(Ux=>{"use strict";Object.defineProperty(Ux,"__esModule",{value:!0});var FSA=wn(),_SA={keyword:"allOf",schemaType:"array",code(t){let{gen:e,schema:A,it:i}=t;if(!Array.isArray(A))throw new Error("ajv implementation error");let n=e.name("valid");A.forEach((o,r)=>{if((0,FSA.alwaysValidSchema)(i,o))return;let s=t.subschema({keyword:"allOf",schemaProp:r},n);t.ok(n),t.mergeEvaluated(s)})}};Ux.default=_SA});var qAA=He(Jx=>{"use strict";Object.defineProperty(Jx,"__esModule",{value:!0});var fD=Pi(),jAA=wn(),GSA={message:({params:t})=>(0,fD.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,fD._)`{failingKeyword: ${t.ifClause}}`},KSA={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:GSA,code(t){let{gen:e,parentSchema:A,it:i}=t;A.then===void 0&&A.else===void 0&&(0,jAA.checkStrictMode)(i,'"if" without "then" and "else" is ignored');let n=PAA(i,"then"),o=PAA(i,"else");if(!n&&!o)return;let r=e.let("valid",!0),s=e.name("_valid");if(a(),t.reset(),n&&o){let g=e.let("ifClause");t.setParams({ifClause:g}),e.if(s,c("then",g),c("else",g))}else n?e.if(s,c("then")):e.if((0,fD.not)(s),c("else"));t.pass(r,()=>t.error(!0));function a(){let g=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);t.mergeEvaluated(g)}function c(g,I){return()=>{let C=t.subschema({keyword:g},s);e.assign(r,s),t.mergeValidEvaluated(C,r),I?e.assign(I,(0,fD._)`${g}`):t.setParams({ifClause:g})}}}};function PAA(t,e){let A=t.schema[e];return A!==void 0&&!(0,jAA.alwaysValidSchema)(t,A)}Jx.default=KSA});var VAA=He(Yx=>{"use strict";Object.defineProperty(Yx,"__esModule",{value:!0});var USA=wn(),JSA={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:A}){e.if===void 0&&(0,USA.checkStrictMode)(A,`"${t}" without "if" is ignored`)}};Yx.default=JSA});var ZAA=He(Tx=>{"use strict";Object.defineProperty(Tx,"__esModule",{value:!0});var YSA=wx(),TSA=vAA(),HSA=yx(),OSA=bAA(),zSA=kAA(),PSA=LAA(),jSA=NAA(),qSA=Lx(),VSA=GAA(),ZSA=YAA(),WSA=TAA(),XSA=HAA(),$SA=OAA(),ARA=zAA(),eRA=qAA(),tRA=VAA();function iRA(t=!1){let e=[WSA.default,XSA.default,$SA.default,ARA.default,eRA.default,tRA.default,jSA.default,qSA.default,PSA.default,VSA.default,ZSA.default];return t?e.push(TSA.default,OSA.default):e.push(YSA.default,HSA.default),e.push(zSA.default),e}Tx.default=iRA});var WAA=He(Hx=>{"use strict";Object.defineProperty(Hx,"__esModule",{value:!0});var pr=Pi(),nRA={message:({schemaCode:t})=>(0,pr.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,pr._)`{format: ${t}}`},oRA={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:nRA,code(t,e){let{gen:A,data:i,$data:n,schema:o,schemaCode:r,it:s}=t,{opts:a,errSchemaPath:c,schemaEnv:g,self:I}=s;if(!a.validateFormats)return;n?C():d();function C(){let B=A.scopeValue("formats",{ref:I.formats,code:a.code.formats}),E=A.const("fDef",(0,pr._)`${B}[${r}]`),u=A.let("fType"),h=A.let("format");A.if((0,pr._)`typeof ${E} == "object" && !(${E} instanceof RegExp)`,()=>A.assign(u,(0,pr._)`${E}.type || "string"`).assign(h,(0,pr._)`${E}.validate`),()=>A.assign(u,(0,pr._)`"string"`).assign(h,E)),t.fail$data((0,pr.or)(w(),x()));function w(){return a.strictSchema===!1?pr.nil:(0,pr._)`${r} && !${h}`}function x(){let R=g.$async?(0,pr._)`(${E}.async ? await ${h}(${i}) : ${h}(${i}))`:(0,pr._)`${h}(${i})`,D=(0,pr._)`(typeof ${h} == "function" ? ${R} : ${h}.test(${i}))`;return(0,pr._)`${h} && ${h} !== true && ${u} === ${e} && !${D}`}}function d(){let B=I.formats[o];if(!B){w();return}if(B===!0)return;let[E,u,h]=x(B);E===e&&t.pass(R());function w(){if(a.strictSchema===!1){I.logger.warn(D());return}throw new Error(D());function D(){return`unknown format "${o}" ignored in schema at path "${c}"`}}function x(D){let G=D instanceof RegExp?(0,pr.regexpCode)(D):a.code.formats?(0,pr._)`${a.code.formats}${(0,pr.getProperty)(o)}`:void 0,J=A.scopeValue("formats",{key:o,ref:D,code:G});return typeof D=="object"&&!(D instanceof RegExp)?[D.type||"string",D.validate,(0,pr._)`${J}.validate`]:["string",D,J]}function R(){if(typeof B=="object"&&!(B instanceof RegExp)&&B.async){if(!g.$async)throw new Error("async format in sync schema");return(0,pr._)`await ${h}(${i})`}return typeof u=="function"?(0,pr._)`${h}(${i})`:(0,pr._)`${h}.test(${i})`}}}};Hx.default=oRA});var XAA=He(Ox=>{"use strict";Object.defineProperty(Ox,"__esModule",{value:!0});var rRA=WAA(),sRA=[rRA.default];Ox.default=sRA});var $AA=He(kE=>{"use strict";Object.defineProperty(kE,"__esModule",{value:!0});kE.contentVocabulary=kE.metadataVocabulary=void 0;kE.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];kE.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var eeA=He(zx=>{"use strict";Object.defineProperty(zx,"__esModule",{value:!0});var aRA=aAA(),cRA=pAA(),gRA=ZAA(),lRA=XAA(),AeA=$AA(),IRA=[aRA.default,cRA.default,(0,gRA.default)(),lRA.default,AeA.metadataVocabulary,AeA.contentVocabulary];zx.default=IRA});var ieA=He(mD=>{"use strict";Object.defineProperty(mD,"__esModule",{value:!0});mD.DiscrError=void 0;var teA=function(t){return t.Tag="tag",t.Mapping="mapping",t}(teA||(mD.DiscrError=teA={}))});var oeA=He(jx=>{"use strict";Object.defineProperty(jx,"__esModule",{value:!0});var SE=Pi(),Px=ieA(),neA=tD(),CRA=S4(),dRA=wn(),BRA={message:({params:{discrError:t,tagName:e}})=>t===Px.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:A}})=>(0,SE._)`{error: ${t}, tag: ${A}, tagValue: ${e}}`},ERA={keyword:"discriminator",type:"object",schemaType:"object",error:BRA,code(t){let{gen:e,data:A,schema:i,parentSchema:n,it:o}=t,{oneOf:r}=n;if(!o.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=i.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(i.mapping)throw new Error("discriminator: mapping is not supported");if(!r)throw new Error("discriminator: requires oneOf keyword");let a=e.let("valid",!1),c=e.const("tag",(0,SE._)`${A}${(0,SE.getProperty)(s)}`);e.if((0,SE._)`typeof ${c} == "string"`,()=>g(),()=>t.error(!1,{discrError:Px.DiscrError.Tag,tag:c,tagName:s})),t.ok(a);function g(){let d=C();e.if(!1);for(let B in d)e.elseIf((0,SE._)`${c} === ${B}`),e.assign(a,I(d[B]));e.else(),t.error(!1,{discrError:Px.DiscrError.Mapping,tag:c,tagName:s}),e.endIf()}function I(d){let B=e.name("valid"),E=t.subschema({keyword:"oneOf",schemaProp:d},B);return t.mergeEvaluated(E,SE.Name),B}function C(){var d;let B={},E=h(n),u=!0;for(let R=0;R{QRA.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var aeA=He((Oo,qx)=>{"use strict";Object.defineProperty(Oo,"__esModule",{value:!0});Oo.MissingRefError=Oo.ValidationError=Oo.CodeGen=Oo.Name=Oo.nil=Oo.stringify=Oo.str=Oo._=Oo.KeywordCxt=Oo.Ajv=void 0;var uRA=tAA(),hRA=eeA(),fRA=oeA(),seA=reA(),mRA=["/properties"],pD="http://json-schema.org/draft-07/schema",RE=class extends uRA.default{_addVocabularies(){super._addVocabularies(),hRA.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(fRA.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(seA,mRA):seA;this.addMetaSchema(e,pD,!1),this.refs["http://json-schema.org/schema"]=pD}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(pD)?pD:void 0)}};Oo.Ajv=RE;qx.exports=Oo=RE;qx.exports.Ajv=RE;Object.defineProperty(Oo,"__esModule",{value:!0});Oo.default=RE;var pRA=k4();Object.defineProperty(Oo,"KeywordCxt",{enumerable:!0,get:function(){return pRA.KeywordCxt}});var LE=Pi();Object.defineProperty(Oo,"_",{enumerable:!0,get:function(){return LE._}});Object.defineProperty(Oo,"str",{enumerable:!0,get:function(){return LE.str}});Object.defineProperty(Oo,"stringify",{enumerable:!0,get:function(){return LE.stringify}});Object.defineProperty(Oo,"nil",{enumerable:!0,get:function(){return LE.nil}});Object.defineProperty(Oo,"Name",{enumerable:!0,get:function(){return LE.Name}});Object.defineProperty(Oo,"CodeGen",{enumerable:!0,get:function(){return LE.CodeGen}});var DRA=AD();Object.defineProperty(Oo,"ValidationError",{enumerable:!0,get:function(){return DRA.default}});var wRA=S4();Object.defineProperty(Oo,"MissingRefError",{enumerable:!0,get:function(){return wRA.default}})});var ceA=He(DD=>{"use strict";(function(t){"use strict";function e(L){return L!==null?Object.prototype.toString.call(L)==="[object Array]":!1}function A(L){return L!==null?Object.prototype.toString.call(L)==="[object Object]":!1}function i(L,T){if(L===T)return!0;var P=Object.prototype.toString.call(L);if(P!==Object.prototype.toString.call(T))return!1;if(e(L)===!0){if(L.length!==T.length)return!1;for(var X=0;X",9:"Array"},x="EOF",R="UnquotedIdentifier",D="QuotedIdentifier",G="Rbracket",J="Rparen",z="Comma",K="Colon",O="Rbrace",V="Number",j="Current",dA="Expref",fA="Pipe",EA="Or",IA="And",SA="EQ",nA="GT",lA="LT",wA="GTE",VA="LTE",ie="NE",UA="Flatten",BA="Star",JA="Filter",Xe="Dot",We="Not",KA="Lbrace",tA="Lbracket",OA="Lparen",gA="Literal",zA={".":Xe,"*":BA,",":z,":":K,"{":KA,"}":O,"]":G,"(":OA,")":J,"@":j},xA={"<":!0,">":!0,"=":!0,"!":!0},Me={" ":!0," ":!0,"\n":!0};function LA(L){return L>="a"&&L<="z"||L>="A"&&L<="Z"||L==="_"}function cA(L){return L>="0"&&L<="9"||L==="-"}function Gt(L){return L>="a"&&L<="z"||L>="A"&&L<="Z"||L>="0"&&L<="9"||L==="_"}function ct(){}ct.prototype={tokenize:function(L){var T=[];this._current=0;for(var P,X,kA;this._current")return L[this._current]==="="?(this._current++,{type:wA,value:">=",start:T}):{type:nA,value:">",start:T};if(P==="="&&L[this._current]==="=")return this._current++,{type:SA,value:"==",start:T}},_consumeLiteral:function(L){this._current++;for(var T=this._current,P=L.length,X;L[this._current]!=="`"&&this._current=0)return!0;if(P.indexOf(L)>=0)return!0;if(X.indexOf(L[0])>=0)try{return JSON.parse(L),!0}catch{return!1}else return!1}};var oe={};oe[x]=0,oe[R]=0,oe[D]=0,oe[G]=0,oe[J]=0,oe[z]=0,oe[O]=0,oe[V]=0,oe[j]=0,oe[dA]=0,oe[fA]=1,oe[EA]=2,oe[IA]=3,oe[SA]=5,oe[nA]=5,oe[lA]=5,oe[wA]=5,oe[VA]=5,oe[ie]=5,oe[UA]=9,oe[BA]=20,oe[JA]=21,oe[Xe]=40,oe[We]=45,oe[KA]=50,oe[tA]=55,oe[OA]=60;function Dt(){}Dt.prototype={parse:function(L){this._loadTokens(L),this.index=0;var T=this.expression(0);if(this._lookahead(0)!==x){var P=this._lookaheadToken(0),X=new Error("Unexpected token type: "+P.type+", value: "+P.value);throw X.name="ParserError",X}return T},_loadTokens:function(L){var T=new ct,P=T.tokenize(L);P.push({type:x,value:"",start:L.length}),this.tokens=P},expression:function(L){var T=this._lookaheadToken(0);this._advance();for(var P=this.nud(T),X=this._lookahead(0);L=0)return this.expression(L);if(T===tA)return this._match(tA),this._parseMultiselectList();if(T===KA)return this._match(KA),this._parseMultiselectHash()},_parseProjectionRHS:function(L){var T;if(oe[this._lookahead(0)]<10)T={type:"Identity"};else if(this._lookahead(0)===tA)T=this.expression(L);else if(this._lookahead(0)===JA)T=this.expression(L);else if(this._lookahead(0)===Xe)this._match(Xe),T=this._parseDotRHS(L);else{var P=this._lookaheadToken(0),X=new Error("Sytanx error, unexpected token: "+P.value+"("+P.type+")");throw X.name="ParserError",X}return T},_parseMultiselectList:function(){for(var L=[];this._lookahead(0)!==G;){var T=this.expression(0);if(L.push(T),this._lookahead(0)===z&&(this._match(z),this._lookahead(0)===G))throw new Error("Unexpected token Rbracket")}return this._match(G),{type:"MultiSelectList",children:L}},_parseMultiselectHash:function(){for(var L=[],T=[R,D],P,X,kA,le;;){if(P=this._lookaheadToken(0),T.indexOf(P.type)<0)throw new Error("Expecting an identifier token, got: "+P.type);if(X=P.value,this._advance(),this._match(K),kA=this.expression(0),le={type:"KeyValuePair",name:X,value:kA},L.push(le),this._lookahead(0)===z)this._match(z);else if(this._lookahead(0)===O){this._match(O);break}}return{type:"MultiSelectHash",children:L}}};function _e(L){this.runtime=L}_e.prototype={search:function(L,T){return this.visit(L,T)},visit:function(L,T){var P,X,kA,le,Ee,NA,MA,Ct,$e,XA;switch(L.type){case"Field":return T!==null&&A(T)?(NA=T[L.name],NA===void 0?null:NA):null;case"Subexpression":for(kA=this.visit(L.children[0],T),XA=1;XA0)for(XA=Oi;XALe;XA+=zi)kA.push(T[XA]);return kA;case"Projection":var fi=this.visit(L.children[0],T);if(!e(fi))return null;for($e=[],XA=0;XAEe;break;case wA:kA=le>=Ee;break;case lA:kA=le=L&&(T=P<0?L-1:L),T}};function Re(L){this._interpreter=L,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[a]}]},avg:{_func:this._functionAvg,_signature:[{types:[u]}]},ceil:{_func:this._functionCeil,_signature:[{types:[a]}]},contains:{_func:this._functionContains,_signature:[{types:[g,I]},{types:[c]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[g]},{types:[g]}]},floor:{_func:this._functionFloor,_signature:[{types:[a]}]},length:{_func:this._functionLength,_signature:[{types:[g,I,C]}]},map:{_func:this._functionMap,_signature:[{types:[B]},{types:[I]}]},max:{_func:this._functionMax,_signature:[{types:[u,h]}]},merge:{_func:this._functionMerge,_signature:[{types:[C],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[I]},{types:[B]}]},sum:{_func:this._functionSum,_signature:[{types:[u]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[g]},{types:[g]}]},min:{_func:this._functionMin,_signature:[{types:[u,h]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[I]},{types:[B]}]},type:{_func:this._functionType,_signature:[{types:[c]}]},keys:{_func:this._functionKeys,_signature:[{types:[C]}]},values:{_func:this._functionValues,_signature:[{types:[C]}]},sort:{_func:this._functionSort,_signature:[{types:[h,u]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[I]},{types:[B]}]},join:{_func:this._functionJoin,_signature:[{types:[g]},{types:[h]}]},reverse:{_func:this._functionReverse,_signature:[{types:[g,I]}]},to_array:{_func:this._functionToArray,_signature:[{types:[c]}]},to_string:{_func:this._functionToString,_signature:[{types:[c]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[c]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[c],variadic:!0}]}}}Re.prototype={callFunction:function(L,T){var P=this.functionTable[L];if(P===void 0)throw new Error("Unknown function: "+L+"()");return this._validateArgs(L,T,P._signature),P._func.call(this,T)},_validateArgs:function(L,T,P){var X;if(P[P.length-1].variadic){if(T.length=0;kA--)X+=P[kA];return X}else{var le=L[0].slice(0);return le.reverse(),le}},_functionAbs:function(L){return Math.abs(L[0])},_functionCeil:function(L){return Math.ceil(L[0])},_functionAvg:function(L){for(var T=0,P=L[0],X=0;X=0},_functionFloor:function(L){return Math.floor(L[0])},_functionLength:function(L){return A(L[0])?Object.keys(L[0]).length:L[0].length},_functionMap:function(L){for(var T=[],P=this._interpreter,X=L[0],kA=L[1],le=0;le0){var T=this._getTypeName(L[0][0]);if(T===a)return Math.max.apply(Math,L[0]);for(var P=L[0],X=P[0],kA=1;kA0){var T=this._getTypeName(L[0][0]);if(T===a)return Math.min.apply(Math,L[0]);for(var P=L[0],X=P[0],kA=1;kAot?1:XAkA&&(kA=Ee,le=P[NA]);return le},_functionMinBy:function(L){for(var T=L[1],P=L[0],X=this.createKeyFunction(T,[a,g]),kA=1/0,le,Ee,NA=0;NA"u"?DD.jmespath={}:DD)});var NgA=He((oLe,xgA)=>{"use strict";xgA.exports=[{value:"#B0171F",name:"indian red"},{value:"#DC143C",css:!0,name:"crimson"},{value:"#FFB6C1",css:!0,name:"lightpink"},{value:"#FFAEB9",name:"lightpink 1"},{value:"#EEA2AD",name:"lightpink 2"},{value:"#CD8C95",name:"lightpink 3"},{value:"#8B5F65",name:"lightpink 4"},{value:"#FFC0CB",css:!0,name:"pink"},{value:"#FFB5C5",name:"pink 1"},{value:"#EEA9B8",name:"pink 2"},{value:"#CD919E",name:"pink 3"},{value:"#8B636C",name:"pink 4"},{value:"#DB7093",css:!0,name:"palevioletred"},{value:"#FF82AB",name:"palevioletred 1"},{value:"#EE799F",name:"palevioletred 2"},{value:"#CD6889",name:"palevioletred 3"},{value:"#8B475D",name:"palevioletred 4"},{value:"#FFF0F5",name:"lavenderblush 1"},{value:"#FFF0F5",css:!0,name:"lavenderblush"},{value:"#EEE0E5",name:"lavenderblush 2"},{value:"#CDC1C5",name:"lavenderblush 3"},{value:"#8B8386",name:"lavenderblush 4"},{value:"#FF3E96",name:"violetred 1"},{value:"#EE3A8C",name:"violetred 2"},{value:"#CD3278",name:"violetred 3"},{value:"#8B2252",name:"violetred 4"},{value:"#FF69B4",css:!0,name:"hotpink"},{value:"#FF6EB4",name:"hotpink 1"},{value:"#EE6AA7",name:"hotpink 2"},{value:"#CD6090",name:"hotpink 3"},{value:"#8B3A62",name:"hotpink 4"},{value:"#872657",name:"raspberry"},{value:"#FF1493",name:"deeppink 1"},{value:"#FF1493",css:!0,name:"deeppink"},{value:"#EE1289",name:"deeppink 2"},{value:"#CD1076",name:"deeppink 3"},{value:"#8B0A50",name:"deeppink 4"},{value:"#FF34B3",name:"maroon 1"},{value:"#EE30A7",name:"maroon 2"},{value:"#CD2990",name:"maroon 3"},{value:"#8B1C62",name:"maroon 4"},{value:"#C71585",css:!0,name:"mediumvioletred"},{value:"#D02090",name:"violetred"},{value:"#DA70D6",css:!0,name:"orchid"},{value:"#FF83FA",name:"orchid 1"},{value:"#EE7AE9",name:"orchid 2"},{value:"#CD69C9",name:"orchid 3"},{value:"#8B4789",name:"orchid 4"},{value:"#D8BFD8",css:!0,name:"thistle"},{value:"#FFE1FF",name:"thistle 1"},{value:"#EED2EE",name:"thistle 2"},{value:"#CDB5CD",name:"thistle 3"},{value:"#8B7B8B",name:"thistle 4"},{value:"#FFBBFF",name:"plum 1"},{value:"#EEAEEE",name:"plum 2"},{value:"#CD96CD",name:"plum 3"},{value:"#8B668B",name:"plum 4"},{value:"#DDA0DD",css:!0,name:"plum"},{value:"#EE82EE",css:!0,name:"violet"},{value:"#FF00FF",vga:!0,name:"magenta"},{value:"#FF00FF",vga:!0,css:!0,name:"fuchsia"},{value:"#EE00EE",name:"magenta 2"},{value:"#CD00CD",name:"magenta 3"},{value:"#8B008B",name:"magenta 4"},{value:"#8B008B",css:!0,name:"darkmagenta"},{value:"#800080",vga:!0,css:!0,name:"purple"},{value:"#BA55D3",css:!0,name:"mediumorchid"},{value:"#E066FF",name:"mediumorchid 1"},{value:"#D15FEE",name:"mediumorchid 2"},{value:"#B452CD",name:"mediumorchid 3"},{value:"#7A378B",name:"mediumorchid 4"},{value:"#9400D3",css:!0,name:"darkviolet"},{value:"#9932CC",css:!0,name:"darkorchid"},{value:"#BF3EFF",name:"darkorchid 1"},{value:"#B23AEE",name:"darkorchid 2"},{value:"#9A32CD",name:"darkorchid 3"},{value:"#68228B",name:"darkorchid 4"},{value:"#4B0082",css:!0,name:"indigo"},{value:"#8A2BE2",css:!0,name:"blueviolet"},{value:"#9B30FF",name:"purple 1"},{value:"#912CEE",name:"purple 2"},{value:"#7D26CD",name:"purple 3"},{value:"#551A8B",name:"purple 4"},{value:"#9370DB",css:!0,name:"mediumpurple"},{value:"#AB82FF",name:"mediumpurple 1"},{value:"#9F79EE",name:"mediumpurple 2"},{value:"#8968CD",name:"mediumpurple 3"},{value:"#5D478B",name:"mediumpurple 4"},{value:"#483D8B",css:!0,name:"darkslateblue"},{value:"#8470FF",name:"lightslateblue"},{value:"#7B68EE",css:!0,name:"mediumslateblue"},{value:"#6A5ACD",css:!0,name:"slateblue"},{value:"#836FFF",name:"slateblue 1"},{value:"#7A67EE",name:"slateblue 2"},{value:"#6959CD",name:"slateblue 3"},{value:"#473C8B",name:"slateblue 4"},{value:"#F8F8FF",css:!0,name:"ghostwhite"},{value:"#E6E6FA",css:!0,name:"lavender"},{value:"#0000FF",vga:!0,css:!0,name:"blue"},{value:"#0000EE",name:"blue 2"},{value:"#0000CD",name:"blue 3"},{value:"#0000CD",css:!0,name:"mediumblue"},{value:"#00008B",name:"blue 4"},{value:"#00008B",css:!0,name:"darkblue"},{value:"#000080",vga:!0,css:!0,name:"navy"},{value:"#191970",css:!0,name:"midnightblue"},{value:"#3D59AB",name:"cobalt"},{value:"#4169E1",css:!0,name:"royalblue"},{value:"#4876FF",name:"royalblue 1"},{value:"#436EEE",name:"royalblue 2"},{value:"#3A5FCD",name:"royalblue 3"},{value:"#27408B",name:"royalblue 4"},{value:"#6495ED",css:!0,name:"cornflowerblue"},{value:"#B0C4DE",css:!0,name:"lightsteelblue"},{value:"#CAE1FF",name:"lightsteelblue 1"},{value:"#BCD2EE",name:"lightsteelblue 2"},{value:"#A2B5CD",name:"lightsteelblue 3"},{value:"#6E7B8B",name:"lightsteelblue 4"},{value:"#778899",css:!0,name:"lightslategray"},{value:"#708090",css:!0,name:"slategray"},{value:"#C6E2FF",name:"slategray 1"},{value:"#B9D3EE",name:"slategray 2"},{value:"#9FB6CD",name:"slategray 3"},{value:"#6C7B8B",name:"slategray 4"},{value:"#1E90FF",name:"dodgerblue 1"},{value:"#1E90FF",css:!0,name:"dodgerblue"},{value:"#1C86EE",name:"dodgerblue 2"},{value:"#1874CD",name:"dodgerblue 3"},{value:"#104E8B",name:"dodgerblue 4"},{value:"#F0F8FF",css:!0,name:"aliceblue"},{value:"#4682B4",css:!0,name:"steelblue"},{value:"#63B8FF",name:"steelblue 1"},{value:"#5CACEE",name:"steelblue 2"},{value:"#4F94CD",name:"steelblue 3"},{value:"#36648B",name:"steelblue 4"},{value:"#87CEFA",css:!0,name:"lightskyblue"},{value:"#B0E2FF",name:"lightskyblue 1"},{value:"#A4D3EE",name:"lightskyblue 2"},{value:"#8DB6CD",name:"lightskyblue 3"},{value:"#607B8B",name:"lightskyblue 4"},{value:"#87CEFF",name:"skyblue 1"},{value:"#7EC0EE",name:"skyblue 2"},{value:"#6CA6CD",name:"skyblue 3"},{value:"#4A708B",name:"skyblue 4"},{value:"#87CEEB",css:!0,name:"skyblue"},{value:"#00BFFF",name:"deepskyblue 1"},{value:"#00BFFF",css:!0,name:"deepskyblue"},{value:"#00B2EE",name:"deepskyblue 2"},{value:"#009ACD",name:"deepskyblue 3"},{value:"#00688B",name:"deepskyblue 4"},{value:"#33A1C9",name:"peacock"},{value:"#ADD8E6",css:!0,name:"lightblue"},{value:"#BFEFFF",name:"lightblue 1"},{value:"#B2DFEE",name:"lightblue 2"},{value:"#9AC0CD",name:"lightblue 3"},{value:"#68838B",name:"lightblue 4"},{value:"#B0E0E6",css:!0,name:"powderblue"},{value:"#98F5FF",name:"cadetblue 1"},{value:"#8EE5EE",name:"cadetblue 2"},{value:"#7AC5CD",name:"cadetblue 3"},{value:"#53868B",name:"cadetblue 4"},{value:"#00F5FF",name:"turquoise 1"},{value:"#00E5EE",name:"turquoise 2"},{value:"#00C5CD",name:"turquoise 3"},{value:"#00868B",name:"turquoise 4"},{value:"#5F9EA0",css:!0,name:"cadetblue"},{value:"#00CED1",css:!0,name:"darkturquoise"},{value:"#F0FFFF",name:"azure 1"},{value:"#F0FFFF",css:!0,name:"azure"},{value:"#E0EEEE",name:"azure 2"},{value:"#C1CDCD",name:"azure 3"},{value:"#838B8B",name:"azure 4"},{value:"#E0FFFF",name:"lightcyan 1"},{value:"#E0FFFF",css:!0,name:"lightcyan"},{value:"#D1EEEE",name:"lightcyan 2"},{value:"#B4CDCD",name:"lightcyan 3"},{value:"#7A8B8B",name:"lightcyan 4"},{value:"#BBFFFF",name:"paleturquoise 1"},{value:"#AEEEEE",name:"paleturquoise 2"},{value:"#AEEEEE",css:!0,name:"paleturquoise"},{value:"#96CDCD",name:"paleturquoise 3"},{value:"#668B8B",name:"paleturquoise 4"},{value:"#2F4F4F",css:!0,name:"darkslategray"},{value:"#97FFFF",name:"darkslategray 1"},{value:"#8DEEEE",name:"darkslategray 2"},{value:"#79CDCD",name:"darkslategray 3"},{value:"#528B8B",name:"darkslategray 4"},{value:"#00FFFF",name:"cyan"},{value:"#00FFFF",css:!0,name:"aqua"},{value:"#00EEEE",name:"cyan 2"},{value:"#00CDCD",name:"cyan 3"},{value:"#008B8B",name:"cyan 4"},{value:"#008B8B",css:!0,name:"darkcyan"},{value:"#008080",vga:!0,css:!0,name:"teal"},{value:"#48D1CC",css:!0,name:"mediumturquoise"},{value:"#20B2AA",css:!0,name:"lightseagreen"},{value:"#03A89E",name:"manganeseblue"},{value:"#40E0D0",css:!0,name:"turquoise"},{value:"#808A87",name:"coldgrey"},{value:"#00C78C",name:"turquoiseblue"},{value:"#7FFFD4",name:"aquamarine 1"},{value:"#7FFFD4",css:!0,name:"aquamarine"},{value:"#76EEC6",name:"aquamarine 2"},{value:"#66CDAA",name:"aquamarine 3"},{value:"#66CDAA",css:!0,name:"mediumaquamarine"},{value:"#458B74",name:"aquamarine 4"},{value:"#00FA9A",css:!0,name:"mediumspringgreen"},{value:"#F5FFFA",css:!0,name:"mintcream"},{value:"#00FF7F",css:!0,name:"springgreen"},{value:"#00EE76",name:"springgreen 1"},{value:"#00CD66",name:"springgreen 2"},{value:"#008B45",name:"springgreen 3"},{value:"#3CB371",css:!0,name:"mediumseagreen"},{value:"#54FF9F",name:"seagreen 1"},{value:"#4EEE94",name:"seagreen 2"},{value:"#43CD80",name:"seagreen 3"},{value:"#2E8B57",name:"seagreen 4"},{value:"#2E8B57",css:!0,name:"seagreen"},{value:"#00C957",name:"emeraldgreen"},{value:"#BDFCC9",name:"mint"},{value:"#3D9140",name:"cobaltgreen"},{value:"#F0FFF0",name:"honeydew 1"},{value:"#F0FFF0",css:!0,name:"honeydew"},{value:"#E0EEE0",name:"honeydew 2"},{value:"#C1CDC1",name:"honeydew 3"},{value:"#838B83",name:"honeydew 4"},{value:"#8FBC8F",css:!0,name:"darkseagreen"},{value:"#C1FFC1",name:"darkseagreen 1"},{value:"#B4EEB4",name:"darkseagreen 2"},{value:"#9BCD9B",name:"darkseagreen 3"},{value:"#698B69",name:"darkseagreen 4"},{value:"#98FB98",css:!0,name:"palegreen"},{value:"#9AFF9A",name:"palegreen 1"},{value:"#90EE90",name:"palegreen 2"},{value:"#90EE90",css:!0,name:"lightgreen"},{value:"#7CCD7C",name:"palegreen 3"},{value:"#548B54",name:"palegreen 4"},{value:"#32CD32",css:!0,name:"limegreen"},{value:"#228B22",css:!0,name:"forestgreen"},{value:"#00FF00",vga:!0,name:"green 1"},{value:"#00FF00",vga:!0,css:!0,name:"lime"},{value:"#00EE00",name:"green 2"},{value:"#00CD00",name:"green 3"},{value:"#008B00",name:"green 4"},{value:"#008000",vga:!0,css:!0,name:"green"},{value:"#006400",css:!0,name:"darkgreen"},{value:"#308014",name:"sapgreen"},{value:"#7CFC00",css:!0,name:"lawngreen"},{value:"#7FFF00",name:"chartreuse 1"},{value:"#7FFF00",css:!0,name:"chartreuse"},{value:"#76EE00",name:"chartreuse 2"},{value:"#66CD00",name:"chartreuse 3"},{value:"#458B00",name:"chartreuse 4"},{value:"#ADFF2F",css:!0,name:"greenyellow"},{value:"#CAFF70",name:"darkolivegreen 1"},{value:"#BCEE68",name:"darkolivegreen 2"},{value:"#A2CD5A",name:"darkolivegreen 3"},{value:"#6E8B3D",name:"darkolivegreen 4"},{value:"#556B2F",css:!0,name:"darkolivegreen"},{value:"#6B8E23",css:!0,name:"olivedrab"},{value:"#C0FF3E",name:"olivedrab 1"},{value:"#B3EE3A",name:"olivedrab 2"},{value:"#9ACD32",name:"olivedrab 3"},{value:"#9ACD32",css:!0,name:"yellowgreen"},{value:"#698B22",name:"olivedrab 4"},{value:"#FFFFF0",name:"ivory 1"},{value:"#FFFFF0",css:!0,name:"ivory"},{value:"#EEEEE0",name:"ivory 2"},{value:"#CDCDC1",name:"ivory 3"},{value:"#8B8B83",name:"ivory 4"},{value:"#F5F5DC",css:!0,name:"beige"},{value:"#FFFFE0",name:"lightyellow 1"},{value:"#FFFFE0",css:!0,name:"lightyellow"},{value:"#EEEED1",name:"lightyellow 2"},{value:"#CDCDB4",name:"lightyellow 3"},{value:"#8B8B7A",name:"lightyellow 4"},{value:"#FAFAD2",css:!0,name:"lightgoldenrodyellow"},{value:"#FFFF00",vga:!0,name:"yellow 1"},{value:"#FFFF00",vga:!0,css:!0,name:"yellow"},{value:"#EEEE00",name:"yellow 2"},{value:"#CDCD00",name:"yellow 3"},{value:"#8B8B00",name:"yellow 4"},{value:"#808069",name:"warmgrey"},{value:"#808000",vga:!0,css:!0,name:"olive"},{value:"#BDB76B",css:!0,name:"darkkhaki"},{value:"#FFF68F",name:"khaki 1"},{value:"#EEE685",name:"khaki 2"},{value:"#CDC673",name:"khaki 3"},{value:"#8B864E",name:"khaki 4"},{value:"#F0E68C",css:!0,name:"khaki"},{value:"#EEE8AA",css:!0,name:"palegoldenrod"},{value:"#FFFACD",name:"lemonchiffon 1"},{value:"#FFFACD",css:!0,name:"lemonchiffon"},{value:"#EEE9BF",name:"lemonchiffon 2"},{value:"#CDC9A5",name:"lemonchiffon 3"},{value:"#8B8970",name:"lemonchiffon 4"},{value:"#FFEC8B",name:"lightgoldenrod 1"},{value:"#EEDC82",name:"lightgoldenrod 2"},{value:"#CDBE70",name:"lightgoldenrod 3"},{value:"#8B814C",name:"lightgoldenrod 4"},{value:"#E3CF57",name:"banana"},{value:"#FFD700",name:"gold 1"},{value:"#FFD700",css:!0,name:"gold"},{value:"#EEC900",name:"gold 2"},{value:"#CDAD00",name:"gold 3"},{value:"#8B7500",name:"gold 4"},{value:"#FFF8DC",name:"cornsilk 1"},{value:"#FFF8DC",css:!0,name:"cornsilk"},{value:"#EEE8CD",name:"cornsilk 2"},{value:"#CDC8B1",name:"cornsilk 3"},{value:"#8B8878",name:"cornsilk 4"},{value:"#DAA520",css:!0,name:"goldenrod"},{value:"#FFC125",name:"goldenrod 1"},{value:"#EEB422",name:"goldenrod 2"},{value:"#CD9B1D",name:"goldenrod 3"},{value:"#8B6914",name:"goldenrod 4"},{value:"#B8860B",css:!0,name:"darkgoldenrod"},{value:"#FFB90F",name:"darkgoldenrod 1"},{value:"#EEAD0E",name:"darkgoldenrod 2"},{value:"#CD950C",name:"darkgoldenrod 3"},{value:"#8B6508",name:"darkgoldenrod 4"},{value:"#FFA500",name:"orange 1"},{value:"#FF8000",css:!0,name:"orange"},{value:"#EE9A00",name:"orange 2"},{value:"#CD8500",name:"orange 3"},{value:"#8B5A00",name:"orange 4"},{value:"#FFFAF0",css:!0,name:"floralwhite"},{value:"#FDF5E6",css:!0,name:"oldlace"},{value:"#F5DEB3",css:!0,name:"wheat"},{value:"#FFE7BA",name:"wheat 1"},{value:"#EED8AE",name:"wheat 2"},{value:"#CDBA96",name:"wheat 3"},{value:"#8B7E66",name:"wheat 4"},{value:"#FFE4B5",css:!0,name:"moccasin"},{value:"#FFEFD5",css:!0,name:"papayawhip"},{value:"#FFEBCD",css:!0,name:"blanchedalmond"},{value:"#FFDEAD",name:"navajowhite 1"},{value:"#FFDEAD",css:!0,name:"navajowhite"},{value:"#EECFA1",name:"navajowhite 2"},{value:"#CDB38B",name:"navajowhite 3"},{value:"#8B795E",name:"navajowhite 4"},{value:"#FCE6C9",name:"eggshell"},{value:"#D2B48C",css:!0,name:"tan"},{value:"#9C661F",name:"brick"},{value:"#FF9912",name:"cadmiumyellow"},{value:"#FAEBD7",css:!0,name:"antiquewhite"},{value:"#FFEFDB",name:"antiquewhite 1"},{value:"#EEDFCC",name:"antiquewhite 2"},{value:"#CDC0B0",name:"antiquewhite 3"},{value:"#8B8378",name:"antiquewhite 4"},{value:"#DEB887",css:!0,name:"burlywood"},{value:"#FFD39B",name:"burlywood 1"},{value:"#EEC591",name:"burlywood 2"},{value:"#CDAA7D",name:"burlywood 3"},{value:"#8B7355",name:"burlywood 4"},{value:"#FFE4C4",name:"bisque 1"},{value:"#FFE4C4",css:!0,name:"bisque"},{value:"#EED5B7",name:"bisque 2"},{value:"#CDB79E",name:"bisque 3"},{value:"#8B7D6B",name:"bisque 4"},{value:"#E3A869",name:"melon"},{value:"#ED9121",name:"carrot"},{value:"#FF8C00",css:!0,name:"darkorange"},{value:"#FF7F00",name:"darkorange 1"},{value:"#EE7600",name:"darkorange 2"},{value:"#CD6600",name:"darkorange 3"},{value:"#8B4500",name:"darkorange 4"},{value:"#FFA54F",name:"tan 1"},{value:"#EE9A49",name:"tan 2"},{value:"#CD853F",name:"tan 3"},{value:"#CD853F",css:!0,name:"peru"},{value:"#8B5A2B",name:"tan 4"},{value:"#FAF0E6",css:!0,name:"linen"},{value:"#FFDAB9",name:"peachpuff 1"},{value:"#FFDAB9",css:!0,name:"peachpuff"},{value:"#EECBAD",name:"peachpuff 2"},{value:"#CDAF95",name:"peachpuff 3"},{value:"#8B7765",name:"peachpuff 4"},{value:"#FFF5EE",name:"seashell 1"},{value:"#FFF5EE",css:!0,name:"seashell"},{value:"#EEE5DE",name:"seashell 2"},{value:"#CDC5BF",name:"seashell 3"},{value:"#8B8682",name:"seashell 4"},{value:"#F4A460",css:!0,name:"sandybrown"},{value:"#C76114",name:"rawsienna"},{value:"#D2691E",css:!0,name:"chocolate"},{value:"#FF7F24",name:"chocolate 1"},{value:"#EE7621",name:"chocolate 2"},{value:"#CD661D",name:"chocolate 3"},{value:"#8B4513",name:"chocolate 4"},{value:"#8B4513",css:!0,name:"saddlebrown"},{value:"#292421",name:"ivoryblack"},{value:"#FF7D40",name:"flesh"},{value:"#FF6103",name:"cadmiumorange"},{value:"#8A360F",name:"burntsienna"},{value:"#A0522D",css:!0,name:"sienna"},{value:"#FF8247",name:"sienna 1"},{value:"#EE7942",name:"sienna 2"},{value:"#CD6839",name:"sienna 3"},{value:"#8B4726",name:"sienna 4"},{value:"#FFA07A",name:"lightsalmon 1"},{value:"#FFA07A",css:!0,name:"lightsalmon"},{value:"#EE9572",name:"lightsalmon 2"},{value:"#CD8162",name:"lightsalmon 3"},{value:"#8B5742",name:"lightsalmon 4"},{value:"#FF7F50",css:!0,name:"coral"},{value:"#FF4500",name:"orangered 1"},{value:"#FF4500",css:!0,name:"orangered"},{value:"#EE4000",name:"orangered 2"},{value:"#CD3700",name:"orangered 3"},{value:"#8B2500",name:"orangered 4"},{value:"#5E2612",name:"sepia"},{value:"#E9967A",css:!0,name:"darksalmon"},{value:"#FF8C69",name:"salmon 1"},{value:"#EE8262",name:"salmon 2"},{value:"#CD7054",name:"salmon 3"},{value:"#8B4C39",name:"salmon 4"},{value:"#FF7256",name:"coral 1"},{value:"#EE6A50",name:"coral 2"},{value:"#CD5B45",name:"coral 3"},{value:"#8B3E2F",name:"coral 4"},{value:"#8A3324",name:"burntumber"},{value:"#FF6347",name:"tomato 1"},{value:"#FF6347",css:!0,name:"tomato"},{value:"#EE5C42",name:"tomato 2"},{value:"#CD4F39",name:"tomato 3"},{value:"#8B3626",name:"tomato 4"},{value:"#FA8072",css:!0,name:"salmon"},{value:"#FFE4E1",name:"mistyrose 1"},{value:"#FFE4E1",css:!0,name:"mistyrose"},{value:"#EED5D2",name:"mistyrose 2"},{value:"#CDB7B5",name:"mistyrose 3"},{value:"#8B7D7B",name:"mistyrose 4"},{value:"#FFFAFA",name:"snow 1"},{value:"#FFFAFA",css:!0,name:"snow"},{value:"#EEE9E9",name:"snow 2"},{value:"#CDC9C9",name:"snow 3"},{value:"#8B8989",name:"snow 4"},{value:"#BC8F8F",css:!0,name:"rosybrown"},{value:"#FFC1C1",name:"rosybrown 1"},{value:"#EEB4B4",name:"rosybrown 2"},{value:"#CD9B9B",name:"rosybrown 3"},{value:"#8B6969",name:"rosybrown 4"},{value:"#F08080",css:!0,name:"lightcoral"},{value:"#CD5C5C",css:!0,name:"indianred"},{value:"#FF6A6A",name:"indianred 1"},{value:"#EE6363",name:"indianred 2"},{value:"#8B3A3A",name:"indianred 4"},{value:"#CD5555",name:"indianred 3"},{value:"#A52A2A",css:!0,name:"brown"},{value:"#FF4040",name:"brown 1"},{value:"#EE3B3B",name:"brown 2"},{value:"#CD3333",name:"brown 3"},{value:"#8B2323",name:"brown 4"},{value:"#B22222",css:!0,name:"firebrick"},{value:"#FF3030",name:"firebrick 1"},{value:"#EE2C2C",name:"firebrick 2"},{value:"#CD2626",name:"firebrick 3"},{value:"#8B1A1A",name:"firebrick 4"},{value:"#FF0000",vga:!0,name:"red 1"},{value:"#FF0000",vga:!0,css:!0,name:"red"},{value:"#EE0000",name:"red 2"},{value:"#CD0000",name:"red 3"},{value:"#8B0000",name:"red 4"},{value:"#8B0000",css:!0,name:"darkred"},{value:"#800000",vga:!0,css:!0,name:"maroon"},{value:"#8E388E",name:"sgi beet"},{value:"#7171C6",name:"sgi slateblue"},{value:"#7D9EC0",name:"sgi lightblue"},{value:"#388E8E",name:"sgi teal"},{value:"#71C671",name:"sgi chartreuse"},{value:"#8E8E38",name:"sgi olivedrab"},{value:"#C5C1AA",name:"sgi brightgray"},{value:"#C67171",name:"sgi salmon"},{value:"#555555",name:"sgi darkgray"},{value:"#1E1E1E",name:"sgi gray 12"},{value:"#282828",name:"sgi gray 16"},{value:"#515151",name:"sgi gray 32"},{value:"#5B5B5B",name:"sgi gray 36"},{value:"#848484",name:"sgi gray 52"},{value:"#8E8E8E",name:"sgi gray 56"},{value:"#AAAAAA",name:"sgi lightgray"},{value:"#B7B7B7",name:"sgi gray 72"},{value:"#C1C1C1",name:"sgi gray 76"},{value:"#EAEAEA",name:"sgi gray 92"},{value:"#F4F4F4",name:"sgi gray 96"},{value:"#FFFFFF",vga:!0,css:!0,name:"white"},{value:"#F5F5F5",name:"white smoke"},{value:"#F5F5F5",name:"gray 96"},{value:"#DCDCDC",css:!0,name:"gainsboro"},{value:"#D3D3D3",css:!0,name:"lightgrey"},{value:"#C0C0C0",vga:!0,css:!0,name:"silver"},{value:"#A9A9A9",css:!0,name:"darkgray"},{value:"#808080",vga:!0,css:!0,name:"gray"},{value:"#696969",css:!0,name:"dimgray"},{value:"#696969",name:"gray 42"},{value:"#000000",vga:!0,css:!0,name:"black"},{value:"#FCFCFC",name:"gray 99"},{value:"#FAFAFA",name:"gray 98"},{value:"#F7F7F7",name:"gray 97"},{value:"#F2F2F2",name:"gray 95"},{value:"#F0F0F0",name:"gray 94"},{value:"#EDEDED",name:"gray 93"},{value:"#EBEBEB",name:"gray 92"},{value:"#E8E8E8",name:"gray 91"},{value:"#E5E5E5",name:"gray 90"},{value:"#E3E3E3",name:"gray 89"},{value:"#E0E0E0",name:"gray 88"},{value:"#DEDEDE",name:"gray 87"},{value:"#DBDBDB",name:"gray 86"},{value:"#D9D9D9",name:"gray 85"},{value:"#D6D6D6",name:"gray 84"},{value:"#D4D4D4",name:"gray 83"},{value:"#D1D1D1",name:"gray 82"},{value:"#CFCFCF",name:"gray 81"},{value:"#CCCCCC",name:"gray 80"},{value:"#C9C9C9",name:"gray 79"},{value:"#C7C7C7",name:"gray 78"},{value:"#C4C4C4",name:"gray 77"},{value:"#C2C2C2",name:"gray 76"},{value:"#BFBFBF",name:"gray 75"},{value:"#BDBDBD",name:"gray 74"},{value:"#BABABA",name:"gray 73"},{value:"#B8B8B8",name:"gray 72"},{value:"#B5B5B5",name:"gray 71"},{value:"#B3B3B3",name:"gray 70"},{value:"#B0B0B0",name:"gray 69"},{value:"#ADADAD",name:"gray 68"},{value:"#ABABAB",name:"gray 67"},{value:"#A8A8A8",name:"gray 66"},{value:"#A6A6A6",name:"gray 65"},{value:"#A3A3A3",name:"gray 64"},{value:"#A1A1A1",name:"gray 63"},{value:"#9E9E9E",name:"gray 62"},{value:"#9C9C9C",name:"gray 61"},{value:"#999999",name:"gray 60"},{value:"#969696",name:"gray 59"},{value:"#949494",name:"gray 58"},{value:"#919191",name:"gray 57"},{value:"#8F8F8F",name:"gray 56"},{value:"#8C8C8C",name:"gray 55"},{value:"#8A8A8A",name:"gray 54"},{value:"#878787",name:"gray 53"},{value:"#858585",name:"gray 52"},{value:"#828282",name:"gray 51"},{value:"#7F7F7F",name:"gray 50"},{value:"#7D7D7D",name:"gray 49"},{value:"#7A7A7A",name:"gray 48"},{value:"#787878",name:"gray 47"},{value:"#757575",name:"gray 46"},{value:"#737373",name:"gray 45"},{value:"#707070",name:"gray 44"},{value:"#6E6E6E",name:"gray 43"},{value:"#666666",name:"gray 40"},{value:"#636363",name:"gray 39"},{value:"#616161",name:"gray 38"},{value:"#5E5E5E",name:"gray 37"},{value:"#5C5C5C",name:"gray 36"},{value:"#595959",name:"gray 35"},{value:"#575757",name:"gray 34"},{value:"#545454",name:"gray 33"},{value:"#525252",name:"gray 32"},{value:"#4F4F4F",name:"gray 31"},{value:"#4D4D4D",name:"gray 30"},{value:"#4A4A4A",name:"gray 29"},{value:"#474747",name:"gray 28"},{value:"#454545",name:"gray 27"},{value:"#424242",name:"gray 26"},{value:"#404040",name:"gray 25"},{value:"#3D3D3D",name:"gray 24"},{value:"#3B3B3B",name:"gray 23"},{value:"#383838",name:"gray 22"},{value:"#363636",name:"gray 21"},{value:"#333333",name:"gray 20"},{value:"#303030",name:"gray 19"},{value:"#2E2E2E",name:"gray 18"},{value:"#2B2B2B",name:"gray 17"},{value:"#292929",name:"gray 16"},{value:"#262626",name:"gray 15"},{value:"#242424",name:"gray 14"},{value:"#212121",name:"gray 13"},{value:"#1F1F1F",name:"gray 12"},{value:"#1C1C1C",name:"gray 11"},{value:"#1A1A1A",name:"gray 10"},{value:"#171717",name:"gray 9"},{value:"#141414",name:"gray 8"},{value:"#121212",name:"gray 7"},{value:"#0F0F0F",name:"gray 6"},{value:"#0D0D0D",name:"gray 5"},{value:"#0A0A0A",name:"gray 4"},{value:"#080808",name:"gray 3"},{value:"#050505",name:"gray 2"},{value:"#030303",name:"gray 1"},{value:"#F5F5F5",css:!0,name:"whitesmoke"}]});var GgA=He((rLe,dI)=>{"use strict";var dv=NgA(),FgA=dv.filter(function(t){return!!t.css}),_gA=dv.filter(function(t){return!!t.vga});dI.exports=function(t){var e=dI.exports.get(t);return e&&e.value};dI.exports.get=function(t){return t=t||"",t=t.trim().toLowerCase(),dv.filter(function(e){return e.name.toLowerCase()===t}).pop()};dI.exports.all=dI.exports.get.all=function(){return dv};dI.exports.get.css=function(t){return t?(t=t||"",t=t.trim().toLowerCase(),FgA.filter(function(e){return e.name.toLowerCase()===t}).pop()):FgA};dI.exports.get.vga=function(t){return t?(t=t||"",t=t.trim().toLowerCase(),_gA.filter(function(e){return e.name.toLowerCase()===t}).pop()):_gA}});var olA=He((sLe,nlA)=>{"use strict";var UjA=1/0,JjA="[object Symbol]",YjA=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,zgA="\\ud800-\\udfff",TjA="\\u0300-\\u036f\\ufe20-\\ufe23",HjA="\\u20d0-\\u20f0",PgA="\\u2700-\\u27bf",jgA="a-z\\xdf-\\xf6\\xf8-\\xff",OjA="\\xac\\xb1\\xd7\\xf7",zjA="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",PjA="\\u2000-\\u206f",jjA=" \\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",qgA="A-Z\\xc0-\\xd6\\xd8-\\xde",qjA="\\ufe0e\\ufe0f",VgA=OjA+zjA+PjA+jjA,ZgA="['\u2019]",KgA="["+VgA+"]",VjA="["+TjA+HjA+"]",WgA="\\d+",ZjA="["+PgA+"]",XgA="["+jgA+"]",$gA="[^"+zgA+VgA+WgA+PgA+jgA+qgA+"]",WjA="\\ud83c[\\udffb-\\udfff]",XjA="(?:"+VjA+"|"+WjA+")",$jA="[^"+zgA+"]",AlA="(?:\\ud83c[\\udde6-\\uddff]){2}",elA="[\\ud800-\\udbff][\\udc00-\\udfff]",PQ="["+qgA+"]",AqA="\\u200d",UgA="(?:"+XgA+"|"+$gA+")",eqA="(?:"+PQ+"|"+$gA+")",JgA="(?:"+ZgA+"(?:d|ll|m|re|s|t|ve))?",YgA="(?:"+ZgA+"(?:D|LL|M|RE|S|T|VE))?",tlA=XjA+"?",ilA="["+qjA+"]?",tqA="(?:"+AqA+"(?:"+[$jA,AlA,elA].join("|")+")"+ilA+tlA+")*",iqA=ilA+tlA+tqA,nqA="(?:"+[ZjA,AlA,elA].join("|")+")"+iqA,oqA=RegExp([PQ+"?"+XgA+"+"+JgA+"(?="+[KgA,PQ,"$"].join("|")+")",eqA+"+"+YgA+"(?="+[KgA,PQ+UgA,"$"].join("|")+")",PQ+"?"+UgA+"+"+JgA,PQ+"+"+YgA,WgA,nqA].join("|"),"g"),rqA=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,sqA=typeof global=="object"&&global&&global.Object===Object&&global,aqA=typeof self=="object"&&self&&self.Object===Object&&self,cqA=sqA||aqA||Function("return this")();function gqA(t){return t.match(YjA)||[]}function lqA(t){return rqA.test(t)}function IqA(t){return t.match(oqA)||[]}var CqA=Object.prototype,dqA=CqA.toString,TgA=cqA.Symbol,HgA=TgA?TgA.prototype:void 0,OgA=HgA?HgA.toString:void 0;function BqA(t){if(typeof t=="string")return t;if(QqA(t))return OgA?OgA.call(t):"";var e=t+"";return e=="0"&&1/t==-UjA?"-0":e}function EqA(t){return!!t&&typeof t=="object"}function QqA(t){return typeof t=="symbol"||EqA(t)&&dqA.call(t)==JjA}function uqA(t){return t==null?"":BqA(t)}function hqA(t,e,A){return t=uqA(t),e=A?void 0:e,e===void 0?lqA(t)?IqA(t):gqA(t):t.match(e)||[]}nlA.exports=hqA});var mlA=He((aLe,flA)=>{"use strict";var fqA=1/0,mqA="[object Symbol]",pqA=/^\s+/,pU="\\ud800-\\udfff",glA="\\u0300-\\u036f\\ufe20-\\ufe23",llA="\\u20d0-\\u20f0",IlA="\\ufe0e\\ufe0f",DqA="["+pU+"]",fU="["+glA+llA+"]",mU="\\ud83c[\\udffb-\\udfff]",wqA="(?:"+fU+"|"+mU+")",ClA="[^"+pU+"]",dlA="(?:\\ud83c[\\udde6-\\uddff]){2}",BlA="[\\ud800-\\udbff][\\udc00-\\udfff]",ElA="\\u200d",QlA=wqA+"?",ulA="["+IlA+"]?",yqA="(?:"+ElA+"(?:"+[ClA,dlA,BlA].join("|")+")"+ulA+QlA+")*",vqA=ulA+QlA+yqA,MqA="(?:"+[ClA+fU+"?",fU,dlA,BlA,DqA].join("|")+")",bqA=RegExp(mU+"(?="+mU+")|"+MqA+vqA,"g"),kqA=RegExp("["+ElA+pU+glA+llA+IlA+"]"),SqA=typeof global=="object"&&global&&global.Object===Object&&global,RqA=typeof self=="object"&&self&&self.Object===Object&&self,LqA=SqA||RqA||Function("return this")();function xqA(t){return t.split("")}function NqA(t,e,A,i){for(var n=t.length,o=A+(i?1:-1);i?o--:++o-1;);return A}function KqA(t){return kqA.test(t)}function rlA(t){return KqA(t)?UqA(t):xqA(t)}function UqA(t){return t.match(bqA)||[]}var JqA=Object.prototype,YqA=JqA.toString,slA=LqA.Symbol,alA=slA?slA.prototype:void 0,clA=alA?alA.toString:void 0;function TqA(t,e,A){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),A=A>n?n:A,A<0&&(A+=n),n=e>A?0:A-e>>>0,e>>>=0;for(var o=Array(n);++i=i?t:TqA(t,e,A)}function OqA(t){return!!t&&typeof t=="object"}function zqA(t){return typeof t=="symbol"||OqA(t)&&YqA.call(t)==mqA}function PqA(t){return t==null?"":hlA(t)}function jqA(t,e,A){if(t=PqA(t),t&&(A||e===void 0))return t.replace(pqA,"");if(!t||!(e=hlA(e)))return t;var i=rlA(t),n=GqA(i,rlA(e));return HqA(i,n).join("")}flA.exports=jqA});var YlA=He((cLe,JlA)=>{"use strict";var DU=1/0,qqA=9007199254740991,VqA=17976931348623157e292,plA=NaN,ZqA="[object Symbol]",WqA=/^\s+|\s+$/g,XqA=/^[-+]0x[0-9a-f]+$/i,$qA=/^0b[01]+$/i,AVA=/^0o[0-7]+$/i,MU="\\ud800-\\udfff",blA="\\u0300-\\u036f\\ufe20-\\ufe23",klA="\\u20d0-\\u20f0",SlA="\\ufe0e\\ufe0f",eVA="["+MU+"]",wU="["+blA+klA+"]",yU="\\ud83c[\\udffb-\\udfff]",tVA="(?:"+wU+"|"+yU+")",RlA="[^"+MU+"]",LlA="(?:\\ud83c[\\udde6-\\uddff]){2}",xlA="[\\ud800-\\udbff][\\udc00-\\udfff]",NlA="\\u200d",FlA=tVA+"?",_lA="["+SlA+"]?",iVA="(?:"+NlA+"(?:"+[RlA,LlA,xlA].join("|")+")"+_lA+FlA+")*",nVA=_lA+FlA+iVA,oVA="(?:"+[RlA+wU+"?",wU,LlA,xlA,eVA].join("|")+")",vU=RegExp(yU+"(?="+yU+")|"+oVA+nVA,"g"),rVA=RegExp("["+NlA+MU+blA+klA+SlA+"]"),sVA=parseInt,aVA=typeof global=="object"&&global&&global.Object===Object&&global,cVA=typeof self=="object"&&self&&self.Object===Object&&self,gVA=aVA||cVA||Function("return this")(),lVA=CVA("length");function IVA(t){return t.split("")}function CVA(t){return function(e){return e?.[t]}}function bU(t){return rVA.test(t)}function GlA(t){return bU(t)?BVA(t):lVA(t)}function dVA(t){return bU(t)?EVA(t):IVA(t)}function BVA(t){for(var e=vU.lastIndex=0;vU.test(t);)e++;return e}function EVA(t){return t.match(vU)||[]}var QVA=Object.prototype,uVA=QVA.toString,DlA=gVA.Symbol,hVA=Math.ceil,fVA=Math.floor,wlA=DlA?DlA.prototype:void 0,ylA=wlA?wlA.toString:void 0;function vlA(t,e){var A="";if(!t||e<1||e>qqA)return A;do e%2&&(A+=t),e=fVA(e/2),e&&(t+=t);while(e);return A}function mVA(t,e,A){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),A=A>n?n:A,A<0&&(A+=n),n=e>A?0:A-e>>>0,e>>>=0;for(var o=Array(n);++i=i?t:mVA(t,e,A)}function DVA(t,e){e=e===void 0?" ":KlA(e);var A=e.length;if(A<2)return A?vlA(e,t):e;var i=vlA(e,hVA(t/GlA(e)));return bU(e)?pVA(dVA(i),0,t).join(""):i.slice(0,t)}function MlA(t){var e=typeof t;return!!t&&(e=="object"||e=="function")}function wVA(t){return!!t&&typeof t=="object"}function UlA(t){return typeof t=="symbol"||wVA(t)&&uVA.call(t)==ZqA}function yVA(t){if(!t)return t===0?t:0;if(t=MVA(t),t===DU||t===-DU){var e=t<0?-1:1;return e*VqA}return t===t?t:0}function vVA(t){var e=yVA(t),A=e%1;return e===e?A?e-A:e:0}function MVA(t){if(typeof t=="number")return t;if(UlA(t))return plA;if(MlA(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=MlA(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=t.replace(WqA,"");var A=$qA.test(t);return A||AVA.test(t)?sVA(t.slice(2),A?2:8):XqA.test(t)?plA:+t}function bVA(t){return t==null?"":KlA(t)}function kVA(t,e,A){t=bVA(t),e=vVA(e);var i=e?GlA(t):0;return e&&i{"use strict";TlA.exports=(t,e,A,i)=>{let n=(t+(i||"")).toString().includes("%");if(typeof t=="string"?[t,e,A,i]=t.match(/(0?\.?\d{1,3})%?\b/g).map(Number):i!==void 0&&(i=parseFloat(i)),typeof t!="number"||typeof e!="number"||typeof A!="number"||t>255||e>255||A>255)throw new TypeError("Expected three numbers below 256");if(typeof i=="number"){if(!n&&i>=0&&i<=1)i=Math.round(255*i);else if(n&&i>=0&&i<=100)i=Math.round(255*i/100);else throw new TypeError(`Expected alpha value (${i}) as a fraction or percentage`);i=(i|256).toString(16).slice(1)}else i="";return(A|e<<8|t<<16|1<<24).toString(16).slice(1)+i}});var zlA=He((lLe,OlA)=>{"use strict";var Lf="a-f\\d",SVA=`#?[${Lf}]{3}[${Lf}]?`,RVA=`#?[${Lf}]{6}([${Lf}]{2})?`,LVA=new RegExp(`[^#${Lf}]`,"gi"),xVA=new RegExp(`^${SVA}$|^${RVA}$`,"i");OlA.exports=(t,e={})=>{if(typeof t!="string"||LVA.test(t)||!xVA.test(t))throw new TypeError("Expected a valid hex string");t=t.replace(/^#/,"");let A=1;t.length===8&&(A=Number.parseInt(t.slice(6,8),16)/255,t=t.slice(0,6)),t.length===4&&(A=Number.parseInt(t.slice(3,4).repeat(2),16)/255,t=t.slice(0,3)),t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let i=Number.parseInt(t,16),n=i>>16,o=i>>8&255,r=i&255,s=typeof e.alpha=="number"?e.alpha:A;if(e.format==="array")return[n,o,r,s];if(e.format==="css"){let a=s===1?"":` / ${Number((s*100).toFixed(2))}%`;return`rgb(${n} ${o} ${r}${a})`}return{red:n,green:o,blue:r,alpha:s}}});var qlA=He((ILe,jlA)=>{"use strict";var NVA=GgA(),FVA=olA(),_VA=mlA(),GVA=YlA(),KVA=HlA(),PlA=zlA(),kU=.75,SU=.25,RU=16777215,UVA=49979693;jlA.exports=function(t){return"#"+TVA(String(JSON.stringify(t)))};function JVA(t){var e=FVA(t),A=[];return e.forEach(function(i){var n=NVA(i);n&&A.push(PlA(_VA(n,"#"),{format:"array"}))}),A}function YVA(t){var e=[0,0,0];return t.forEach(function(A){for(var i=0;i<3;i++)e[i]+=A[i]}),[e[0]/t.length,e[1]/t.length,e[2]/t.length]}function TVA(t){var e,A=JVA(t);A.length>0&&(e=YVA(A));var i=1,n=0,o=1;if(t.length>0)for(var r=0;rn&&(n=t[r].charCodeAt(0)),o=parseInt(RU/n),i=(i+t[r].charCodeAt(0)*o*UVA)%RU;var s=(i*t.length%RU).toString(16);s=GVA(s,6,s);var a=PlA(s,{format:"array"});return e?KVA(SU*a[0]+kU*e[0],SU*a[1]+kU*e[1],SU*a[2]+kU*e[2]):s}});function vv(t,e){return Object.is(t,e)}var _r=null,Ff=!1,Mv=1,aa=Symbol("SIGNAL");function pi(t){let e=_r;return _r=t,e}function bv(){return _r}var Cd={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:"unknown",producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function eu(t){if(Ff)throw new Error("");if(_r===null)return;_r.consumerOnSignalRead(t);let e=_r.nextProducerIndex++;if(Jf(_r),e<_r.producerNode.length&&_r.producerNode[e]!==t&&Au(_r)){let A=_r.producerNode[e];Uf(A,_r.producerIndexOfThis[e])}_r.producerNode[e]!==t&&(_r.producerNode[e]=t,_r.producerIndexOfThis[e]=Au(_r)?_U(t,_r,e):0),_r.producerLastReadVersion[e]=t.version}function FU(){Mv++}function kv(t){if(!(Au(t)&&!t.dirty)&&!(!t.dirty&&t.lastCleanEpoch===Mv)){if(!t.producerMustRecompute(t)&&!Kf(t)){yv(t);return}t.producerRecomputeValue(t),yv(t)}}function Sv(t){if(t.liveConsumerNode===void 0)return;let e=Ff;Ff=!0;try{for(let A of t.liveConsumerNode)A.dirty||i0A(A)}finally{Ff=e}}function Rv(){return _r?.consumerAllowSignalWrites!==!1}function i0A(t){t.dirty=!0,Sv(t),t.consumerMarkedDirty?.(t)}function yv(t){t.dirty=!1,t.lastCleanEpoch=Mv}function tu(t){return t&&(t.nextProducerIndex=0),pi(t)}function Gf(t,e){if(pi(e),!(!t||t.producerNode===void 0||t.producerIndexOfThis===void 0||t.producerLastReadVersion===void 0)){if(Au(t))for(let A=t.nextProducerIndex;At.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function Kf(t){Jf(t);for(let e=0;e0}function Jf(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}function GU(t){t.liveConsumerNode??=[],t.liveConsumerIndexOfThis??=[]}function KU(t){return t.producerNode!==void 0}function Yf(t,e){let A=Object.create(n0A);A.computation=t,e!==void 0&&(A.equal=e);let i=()=>{if(kv(A),eu(A),A.value===_f)throw A.error;return A.value};return i[aa]=A,i}var Dv=Symbol("UNSET"),wv=Symbol("COMPUTING"),_f=Symbol("ERRORED"),n0A=Fe(sA({},Cd),{value:Dv,dirty:!0,error:null,equal:vv,kind:"computed",producerMustRecompute(t){return t.value===Dv||t.value===wv},producerRecomputeValue(t){if(t.value===wv)throw new Error("Detected cycle in computations.");let e=t.value;t.value=wv;let A=tu(t),i,n=!1;try{i=t.computation(),pi(null),n=e!==Dv&&e!==_f&&i!==_f&&t.equal(e,i)}catch(o){i=_f,t.error=o}finally{Gf(t,A)}if(n){t.value=e;return}t.value=i,t.version++}});function o0A(){throw new Error}var UU=o0A;function JU(t){UU(t)}function Lv(t){UU=t}var r0A=null;function xv(t,e){let A=Object.create(Tf);A.value=t,e!==void 0&&(A.equal=e);let i=()=>(eu(A),A.value);return i[aa]=A,i}function nu(t,e){Rv()||JU(t),t.equal(t.value,e)||(t.value=e,s0A(t))}function Nv(t,e){Rv()||JU(t),nu(t,e(t.value))}var Tf=Fe(sA({},Cd),{equal:vv,value:void 0,kind:"signal"});function s0A(t){t.version++,FU(),Sv(t),r0A?.()}function Fv(t){let e=pi(null);try{return t()}finally{pi(e)}}var _v;function ou(){return _v}function I0(t){let e=_v;return _v=t,e}var Hf=Symbol("NotFound");function Vt(t){return typeof t=="function"}function dd(t){let A=t(i=>{Error.call(i),i.stack=new Error().stack});return A.prototype=Object.create(Error.prototype),A.prototype.constructor=A,A}var Of=dd(t=>function(A){t(this),this.message=A?`${A.length} errors occurred during unsubscription: + deps: ${A}}`};var hSA={keyword:"dependencies",type:"object",schemaType:"object",error:Kl.error,code(t){let[e,A]=fSA(t);SAA(t,e),RAA(t,A)}};function fSA({schema:t}){let e={},A={};for(let i in t){if(i==="__proto__")continue;let n=Array.isArray(t[i])?e:A;n[i]=t[i]}return[e,A]}function SAA(t,e=t.schema){let{gen:A,data:i,it:n}=t;if(Object.keys(e).length===0)return;let o=A.let("missing");for(let r in e){let s=e[r];if(s.length===0)continue;let a=(0,H4.propertyInData)(A,i,r,n.opts.ownProperties);t.setParams({property:r,depsCount:s.length,deps:s.join(", ")}),n.allErrors?A.if(a,()=>{for(let c of s)(0,H4.checkReportMissingProp)(t,c)}):(A.if((0,kx._)`${a} && (${(0,H4.checkMissingProp)(t,s,o)})`),(0,H4.reportMissingProp)(t,o),A.else())}}Kl.validatePropertyDeps=SAA;function RAA(t,e=t.schema){let{gen:A,data:i,keyword:n,it:o}=t,r=A.name("valid");for(let s in e)(0,uSA.alwaysValidSchema)(o,e[s])||(A.if((0,H4.propertyInData)(A,i,s,o.opts.ownProperties),()=>{let a=t.subschema({keyword:n,schemaProp:s},r);t.mergeValidEvaluated(a,r)},()=>A.var(r,!0)),t.ok(r))}Kl.validateSchemaDeps=RAA;Kl.default=hSA});var NAA=He(Sx=>{"use strict";Object.defineProperty(Sx,"__esModule",{value:!0});var xAA=Pi(),mSA=wn(),pSA={message:"property name must be valid",params:({params:t})=>(0,xAA._)`{propertyName: ${t.propertyName}}`},DSA={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:pSA,code(t){let{gen:e,schema:A,data:i,it:n}=t;if((0,mSA.alwaysValidSchema)(n,A))return;let o=e.name("valid");e.forIn("key",i,r=>{t.setParams({propertyName:r}),t.subschema({keyword:"propertyNames",data:r,dataTypes:["string"],propertyName:r,compositeRule:!0},o),e.if((0,xAA.not)(o),()=>{t.error(!0),n.allErrors||e.break()})}),t.ok(o)}};Sx.default=DSA});var Lx=He(Rx=>{"use strict";Object.defineProperty(Rx,"__esModule",{value:!0});var ED=Oc(),Lg=Pi(),wSA=J0(),QD=wn(),ySA={message:"must NOT have additional properties",params:({params:t})=>(0,Lg._)`{additionalProperty: ${t.additionalProperty}}`},vSA={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:ySA,code(t){let{gen:e,schema:A,parentSchema:i,data:n,errsCount:o,it:r}=t;if(!o)throw new Error("ajv implementation error");let{allErrors:s,opts:a}=r;if(r.props=!0,a.removeAdditional!=="all"&&(0,QD.alwaysValidSchema)(r,A))return;let c=(0,ED.allSchemaProperties)(i.properties),g=(0,ED.allSchemaProperties)(i.patternProperties);I(),t.ok((0,Lg._)`${o} === ${wSA.default.errors}`);function I(){e.forIn("key",n,u=>{!c.length&&!g.length?B(u):e.if(C(u),()=>B(u))})}function C(u){let h;if(c.length>8){let w=(0,QD.schemaRefOrVal)(r,i.properties,"properties");h=(0,ED.isOwnProperty)(e,w,u)}else c.length?h=(0,Lg.or)(...c.map(w=>(0,Lg._)`${u} === ${w}`)):h=Lg.nil;return g.length&&(h=(0,Lg.or)(h,...g.map(w=>(0,Lg._)`${(0,ED.usePattern)(t,w)}.test(${u})`))),(0,Lg.not)(h)}function d(u){e.code((0,Lg._)`delete ${n}[${u}]`)}function B(u){if(a.removeAdditional==="all"||a.removeAdditional&&A===!1){d(u);return}if(A===!1){t.setParams({additionalProperty:u}),t.error(),s||e.break();return}if(typeof A=="object"&&!(0,QD.alwaysValidSchema)(r,A)){let h=e.name("valid");a.removeAdditional==="failing"?(E(u,h,!1),e.if((0,Lg.not)(h),()=>{t.reset(),d(u)})):(E(u,h),s||e.if((0,Lg.not)(h),()=>e.break()))}}function E(u,h,w){let x={keyword:"additionalProperties",dataProp:u,dataPropType:QD.Type.Str};w===!1&&Object.assign(x,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(x,h)}}};Rx.default=vSA});var GAA=He(Nx=>{"use strict";Object.defineProperty(Nx,"__esModule",{value:!0});var MSA=k4(),FAA=Oc(),xx=wn(),_AA=Lx(),bSA={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:A,parentSchema:i,data:n,it:o}=t;o.opts.removeAdditional==="all"&&i.additionalProperties===void 0&&_AA.default.code(new MSA.KeywordCxt(o,_AA.default,"additionalProperties"));let r=(0,FAA.allSchemaProperties)(A);for(let I of r)o.definedProperties.add(I);o.opts.unevaluated&&r.length&&o.props!==!0&&(o.props=xx.mergeEvaluated.props(e,(0,xx.toHash)(r),o.props));let s=r.filter(I=>!(0,xx.alwaysValidSchema)(o,A[I]));if(s.length===0)return;let a=e.name("valid");for(let I of s)c(I)?g(I):(e.if((0,FAA.propertyInData)(e,n,I,o.opts.ownProperties)),g(I),o.allErrors||e.else().var(a,!0),e.endIf()),t.it.definedProperties.add(I),t.ok(a);function c(I){return o.opts.useDefaults&&!o.compositeRule&&A[I].default!==void 0}function g(I){t.subschema({keyword:"properties",schemaProp:I,dataProp:I},a)}}};Nx.default=bSA});var YAA=He(Fx=>{"use strict";Object.defineProperty(Fx,"__esModule",{value:!0});var KAA=Oc(),uD=Pi(),UAA=wn(),JAA=wn(),kSA={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:A,data:i,parentSchema:n,it:o}=t,{opts:r}=o,s=(0,KAA.allSchemaProperties)(A),a=s.filter(E=>(0,UAA.alwaysValidSchema)(o,A[E]));if(s.length===0||a.length===s.length&&(!o.opts.unevaluated||o.props===!0))return;let c=r.strictSchema&&!r.allowMatchingProperties&&n.properties,g=e.name("valid");o.props!==!0&&!(o.props instanceof uD.Name)&&(o.props=(0,JAA.evaluatedPropsToName)(e,o.props));let{props:I}=o;C();function C(){for(let E of s)c&&d(E),o.allErrors?B(E):(e.var(g,!0),B(E),e.if(g))}function d(E){for(let u in c)new RegExp(E).test(u)&&(0,UAA.checkStrictMode)(o,`property ${u} matches pattern ${E} (use allowMatchingProperties)`)}function B(E){e.forIn("key",i,u=>{e.if((0,uD._)`${(0,KAA.usePattern)(t,E)}.test(${u})`,()=>{let h=a.includes(E);h||t.subschema({keyword:"patternProperties",schemaProp:E,dataProp:u,dataPropType:JAA.Type.Str},g),o.opts.unevaluated&&I!==!0?e.assign((0,uD._)`${I}[${u}]`,!0):!h&&!o.allErrors&&e.if((0,uD.not)(g),()=>e.break())})})}}};Fx.default=kSA});var TAA=He(_x=>{"use strict";Object.defineProperty(_x,"__esModule",{value:!0});var SSA=wn(),RSA={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:A,it:i}=t;if((0,SSA.alwaysValidSchema)(i,A)){t.fail();return}let n=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},n),t.failResult(n,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};_x.default=RSA});var HAA=He(Gx=>{"use strict";Object.defineProperty(Gx,"__esModule",{value:!0});var LSA=Oc(),xSA={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:LSA.validateUnion,error:{message:"must match a schema in anyOf"}};Gx.default=xSA});var OAA=He(Kx=>{"use strict";Object.defineProperty(Kx,"__esModule",{value:!0});var hD=Pi(),NSA=wn(),FSA={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,hD._)`{passingSchemas: ${t.passing}}`},_SA={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:FSA,code(t){let{gen:e,schema:A,parentSchema:i,it:n}=t;if(!Array.isArray(A))throw new Error("ajv implementation error");if(n.opts.discriminator&&i.discriminator)return;let o=A,r=e.let("valid",!1),s=e.let("passing",null),a=e.name("_valid");t.setParams({passing:s}),e.block(c),t.result(r,()=>t.reset(),()=>t.error(!0));function c(){o.forEach((g,I)=>{let C;(0,NSA.alwaysValidSchema)(n,g)?e.var(a,!0):C=t.subschema({keyword:"oneOf",schemaProp:I,compositeRule:!0},a),I>0&&e.if((0,hD._)`${a} && ${r}`).assign(r,!1).assign(s,(0,hD._)`[${s}, ${I}]`).else(),e.if(a,()=>{e.assign(r,!0),e.assign(s,I),C&&t.mergeEvaluated(C,hD.Name)})})}}};Kx.default=_SA});var zAA=He(Ux=>{"use strict";Object.defineProperty(Ux,"__esModule",{value:!0});var GSA=wn(),KSA={keyword:"allOf",schemaType:"array",code(t){let{gen:e,schema:A,it:i}=t;if(!Array.isArray(A))throw new Error("ajv implementation error");let n=e.name("valid");A.forEach((o,r)=>{if((0,GSA.alwaysValidSchema)(i,o))return;let s=t.subschema({keyword:"allOf",schemaProp:r},n);t.ok(n),t.mergeEvaluated(s)})}};Ux.default=KSA});var qAA=He(Jx=>{"use strict";Object.defineProperty(Jx,"__esModule",{value:!0});var fD=Pi(),jAA=wn(),USA={message:({params:t})=>(0,fD.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,fD._)`{failingKeyword: ${t.ifClause}}`},JSA={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:USA,code(t){let{gen:e,parentSchema:A,it:i}=t;A.then===void 0&&A.else===void 0&&(0,jAA.checkStrictMode)(i,'"if" without "then" and "else" is ignored');let n=PAA(i,"then"),o=PAA(i,"else");if(!n&&!o)return;let r=e.let("valid",!0),s=e.name("_valid");if(a(),t.reset(),n&&o){let g=e.let("ifClause");t.setParams({ifClause:g}),e.if(s,c("then",g),c("else",g))}else n?e.if(s,c("then")):e.if((0,fD.not)(s),c("else"));t.pass(r,()=>t.error(!0));function a(){let g=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);t.mergeEvaluated(g)}function c(g,I){return()=>{let C=t.subschema({keyword:g},s);e.assign(r,s),t.mergeValidEvaluated(C,r),I?e.assign(I,(0,fD._)`${g}`):t.setParams({ifClause:g})}}}};function PAA(t,e){let A=t.schema[e];return A!==void 0&&!(0,jAA.alwaysValidSchema)(t,A)}Jx.default=JSA});var VAA=He(Yx=>{"use strict";Object.defineProperty(Yx,"__esModule",{value:!0});var YSA=wn(),TSA={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:A}){e.if===void 0&&(0,YSA.checkStrictMode)(A,`"${t}" without "if" is ignored`)}};Yx.default=TSA});var ZAA=He(Tx=>{"use strict";Object.defineProperty(Tx,"__esModule",{value:!0});var HSA=wx(),OSA=vAA(),zSA=yx(),PSA=bAA(),jSA=kAA(),qSA=LAA(),VSA=NAA(),ZSA=Lx(),WSA=GAA(),XSA=YAA(),$SA=TAA(),ARA=HAA(),eRA=OAA(),tRA=zAA(),iRA=qAA(),nRA=VAA();function oRA(t=!1){let e=[$SA.default,ARA.default,eRA.default,tRA.default,iRA.default,nRA.default,VSA.default,ZSA.default,qSA.default,WSA.default,XSA.default];return t?e.push(OSA.default,PSA.default):e.push(HSA.default,zSA.default),e.push(jSA.default),e}Tx.default=oRA});var WAA=He(Hx=>{"use strict";Object.defineProperty(Hx,"__esModule",{value:!0});var pr=Pi(),rRA={message:({schemaCode:t})=>(0,pr.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,pr._)`{format: ${t}}`},sRA={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:rRA,code(t,e){let{gen:A,data:i,$data:n,schema:o,schemaCode:r,it:s}=t,{opts:a,errSchemaPath:c,schemaEnv:g,self:I}=s;if(!a.validateFormats)return;n?C():d();function C(){let B=A.scopeValue("formats",{ref:I.formats,code:a.code.formats}),E=A.const("fDef",(0,pr._)`${B}[${r}]`),u=A.let("fType"),h=A.let("format");A.if((0,pr._)`typeof ${E} == "object" && !(${E} instanceof RegExp)`,()=>A.assign(u,(0,pr._)`${E}.type || "string"`).assign(h,(0,pr._)`${E}.validate`),()=>A.assign(u,(0,pr._)`"string"`).assign(h,E)),t.fail$data((0,pr.or)(w(),x()));function w(){return a.strictSchema===!1?pr.nil:(0,pr._)`${r} && !${h}`}function x(){let R=g.$async?(0,pr._)`(${E}.async ? await ${h}(${i}) : ${h}(${i}))`:(0,pr._)`${h}(${i})`,D=(0,pr._)`(typeof ${h} == "function" ? ${R} : ${h}.test(${i}))`;return(0,pr._)`${h} && ${h} !== true && ${u} === ${e} && !${D}`}}function d(){let B=I.formats[o];if(!B){w();return}if(B===!0)return;let[E,u,h]=x(B);E===e&&t.pass(R());function w(){if(a.strictSchema===!1){I.logger.warn(D());return}throw new Error(D());function D(){return`unknown format "${o}" ignored in schema at path "${c}"`}}function x(D){let G=D instanceof RegExp?(0,pr.regexpCode)(D):a.code.formats?(0,pr._)`${a.code.formats}${(0,pr.getProperty)(o)}`:void 0,J=A.scopeValue("formats",{key:o,ref:D,code:G});return typeof D=="object"&&!(D instanceof RegExp)?[D.type||"string",D.validate,(0,pr._)`${J}.validate`]:["string",D,J]}function R(){if(typeof B=="object"&&!(B instanceof RegExp)&&B.async){if(!g.$async)throw new Error("async format in sync schema");return(0,pr._)`await ${h}(${i})`}return typeof u=="function"?(0,pr._)`${h}(${i})`:(0,pr._)`${h}.test(${i})`}}}};Hx.default=sRA});var XAA=He(Ox=>{"use strict";Object.defineProperty(Ox,"__esModule",{value:!0});var aRA=WAA(),cRA=[aRA.default];Ox.default=cRA});var $AA=He(kE=>{"use strict";Object.defineProperty(kE,"__esModule",{value:!0});kE.contentVocabulary=kE.metadataVocabulary=void 0;kE.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];kE.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var eeA=He(zx=>{"use strict";Object.defineProperty(zx,"__esModule",{value:!0});var gRA=aAA(),lRA=pAA(),IRA=ZAA(),CRA=XAA(),AeA=$AA(),dRA=[gRA.default,lRA.default,(0,IRA.default)(),CRA.default,AeA.metadataVocabulary,AeA.contentVocabulary];zx.default=dRA});var ieA=He(mD=>{"use strict";Object.defineProperty(mD,"__esModule",{value:!0});mD.DiscrError=void 0;var teA=function(t){return t.Tag="tag",t.Mapping="mapping",t}(teA||(mD.DiscrError=teA={}))});var oeA=He(jx=>{"use strict";Object.defineProperty(jx,"__esModule",{value:!0});var SE=Pi(),Px=ieA(),neA=tD(),BRA=S4(),ERA=wn(),QRA={message:({params:{discrError:t,tagName:e}})=>t===Px.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:A}})=>(0,SE._)`{error: ${t}, tag: ${A}, tagValue: ${e}}`},uRA={keyword:"discriminator",type:"object",schemaType:"object",error:QRA,code(t){let{gen:e,data:A,schema:i,parentSchema:n,it:o}=t,{oneOf:r}=n;if(!o.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=i.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(i.mapping)throw new Error("discriminator: mapping is not supported");if(!r)throw new Error("discriminator: requires oneOf keyword");let a=e.let("valid",!1),c=e.const("tag",(0,SE._)`${A}${(0,SE.getProperty)(s)}`);e.if((0,SE._)`typeof ${c} == "string"`,()=>g(),()=>t.error(!1,{discrError:Px.DiscrError.Tag,tag:c,tagName:s})),t.ok(a);function g(){let d=C();e.if(!1);for(let B in d)e.elseIf((0,SE._)`${c} === ${B}`),e.assign(a,I(d[B]));e.else(),t.error(!1,{discrError:Px.DiscrError.Mapping,tag:c,tagName:s}),e.endIf()}function I(d){let B=e.name("valid"),E=t.subschema({keyword:"oneOf",schemaProp:d},B);return t.mergeEvaluated(E,SE.Name),B}function C(){var d;let B={},E=h(n),u=!0;for(let R=0;R{hRA.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var aeA=He((Oo,qx)=>{"use strict";Object.defineProperty(Oo,"__esModule",{value:!0});Oo.MissingRefError=Oo.ValidationError=Oo.CodeGen=Oo.Name=Oo.nil=Oo.stringify=Oo.str=Oo._=Oo.KeywordCxt=Oo.Ajv=void 0;var fRA=tAA(),mRA=eeA(),pRA=oeA(),seA=reA(),DRA=["/properties"],pD="http://json-schema.org/draft-07/schema",RE=class extends fRA.default{_addVocabularies(){super._addVocabularies(),mRA.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(pRA.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(seA,DRA):seA;this.addMetaSchema(e,pD,!1),this.refs["http://json-schema.org/schema"]=pD}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(pD)?pD:void 0)}};Oo.Ajv=RE;qx.exports=Oo=RE;qx.exports.Ajv=RE;Object.defineProperty(Oo,"__esModule",{value:!0});Oo.default=RE;var wRA=k4();Object.defineProperty(Oo,"KeywordCxt",{enumerable:!0,get:function(){return wRA.KeywordCxt}});var LE=Pi();Object.defineProperty(Oo,"_",{enumerable:!0,get:function(){return LE._}});Object.defineProperty(Oo,"str",{enumerable:!0,get:function(){return LE.str}});Object.defineProperty(Oo,"stringify",{enumerable:!0,get:function(){return LE.stringify}});Object.defineProperty(Oo,"nil",{enumerable:!0,get:function(){return LE.nil}});Object.defineProperty(Oo,"Name",{enumerable:!0,get:function(){return LE.Name}});Object.defineProperty(Oo,"CodeGen",{enumerable:!0,get:function(){return LE.CodeGen}});var yRA=AD();Object.defineProperty(Oo,"ValidationError",{enumerable:!0,get:function(){return yRA.default}});var vRA=S4();Object.defineProperty(Oo,"MissingRefError",{enumerable:!0,get:function(){return vRA.default}})});var ceA=He(DD=>{"use strict";(function(t){"use strict";function e(L){return L!==null?Object.prototype.toString.call(L)==="[object Array]":!1}function A(L){return L!==null?Object.prototype.toString.call(L)==="[object Object]":!1}function i(L,T){if(L===T)return!0;var P=Object.prototype.toString.call(L);if(P!==Object.prototype.toString.call(T))return!1;if(e(L)===!0){if(L.length!==T.length)return!1;for(var X=0;X",9:"Array"},x="EOF",R="UnquotedIdentifier",D="QuotedIdentifier",G="Rbracket",J="Rparen",z="Comma",K="Colon",O="Rbrace",V="Number",j="Current",dA="Expref",fA="Pipe",EA="Or",IA="And",SA="EQ",nA="GT",lA="LT",wA="GTE",VA="LTE",ie="NE",UA="Flatten",BA="Star",JA="Filter",Xe="Dot",We="Not",KA="Lbrace",tA="Lbracket",OA="Lparen",gA="Literal",zA={".":Xe,"*":BA,",":z,":":K,"{":KA,"}":O,"]":G,"(":OA,")":J,"@":j},xA={"<":!0,">":!0,"=":!0,"!":!0},Me={" ":!0," ":!0,"\n":!0};function LA(L){return L>="a"&&L<="z"||L>="A"&&L<="Z"||L==="_"}function cA(L){return L>="0"&&L<="9"||L==="-"}function Gt(L){return L>="a"&&L<="z"||L>="A"&&L<="Z"||L>="0"&&L<="9"||L==="_"}function ct(){}ct.prototype={tokenize:function(L){var T=[];this._current=0;for(var P,X,kA;this._current")return L[this._current]==="="?(this._current++,{type:wA,value:">=",start:T}):{type:nA,value:">",start:T};if(P==="="&&L[this._current]==="=")return this._current++,{type:SA,value:"==",start:T}},_consumeLiteral:function(L){this._current++;for(var T=this._current,P=L.length,X;L[this._current]!=="`"&&this._current=0)return!0;if(P.indexOf(L)>=0)return!0;if(X.indexOf(L[0])>=0)try{return JSON.parse(L),!0}catch{return!1}else return!1}};var oe={};oe[x]=0,oe[R]=0,oe[D]=0,oe[G]=0,oe[J]=0,oe[z]=0,oe[O]=0,oe[V]=0,oe[j]=0,oe[dA]=0,oe[fA]=1,oe[EA]=2,oe[IA]=3,oe[SA]=5,oe[nA]=5,oe[lA]=5,oe[wA]=5,oe[VA]=5,oe[ie]=5,oe[UA]=9,oe[BA]=20,oe[JA]=21,oe[Xe]=40,oe[We]=45,oe[KA]=50,oe[tA]=55,oe[OA]=60;function Dt(){}Dt.prototype={parse:function(L){this._loadTokens(L),this.index=0;var T=this.expression(0);if(this._lookahead(0)!==x){var P=this._lookaheadToken(0),X=new Error("Unexpected token type: "+P.type+", value: "+P.value);throw X.name="ParserError",X}return T},_loadTokens:function(L){var T=new ct,P=T.tokenize(L);P.push({type:x,value:"",start:L.length}),this.tokens=P},expression:function(L){var T=this._lookaheadToken(0);this._advance();for(var P=this.nud(T),X=this._lookahead(0);L=0)return this.expression(L);if(T===tA)return this._match(tA),this._parseMultiselectList();if(T===KA)return this._match(KA),this._parseMultiselectHash()},_parseProjectionRHS:function(L){var T;if(oe[this._lookahead(0)]<10)T={type:"Identity"};else if(this._lookahead(0)===tA)T=this.expression(L);else if(this._lookahead(0)===JA)T=this.expression(L);else if(this._lookahead(0)===Xe)this._match(Xe),T=this._parseDotRHS(L);else{var P=this._lookaheadToken(0),X=new Error("Sytanx error, unexpected token: "+P.value+"("+P.type+")");throw X.name="ParserError",X}return T},_parseMultiselectList:function(){for(var L=[];this._lookahead(0)!==G;){var T=this.expression(0);if(L.push(T),this._lookahead(0)===z&&(this._match(z),this._lookahead(0)===G))throw new Error("Unexpected token Rbracket")}return this._match(G),{type:"MultiSelectList",children:L}},_parseMultiselectHash:function(){for(var L=[],T=[R,D],P,X,kA,le;;){if(P=this._lookaheadToken(0),T.indexOf(P.type)<0)throw new Error("Expecting an identifier token, got: "+P.type);if(X=P.value,this._advance(),this._match(K),kA=this.expression(0),le={type:"KeyValuePair",name:X,value:kA},L.push(le),this._lookahead(0)===z)this._match(z);else if(this._lookahead(0)===O){this._match(O);break}}return{type:"MultiSelectHash",children:L}}};function _e(L){this.runtime=L}_e.prototype={search:function(L,T){return this.visit(L,T)},visit:function(L,T){var P,X,kA,le,Ee,FA,MA,dt,$e,XA;switch(L.type){case"Field":return T!==null&&A(T)?(FA=T[L.name],FA===void 0?null:FA):null;case"Subexpression":for(kA=this.visit(L.children[0],T),XA=1;XA0)for(XA=Oi;XALe;XA+=zi)kA.push(T[XA]);return kA;case"Projection":var fi=this.visit(L.children[0],T);if(!e(fi))return null;for($e=[],XA=0;XAEe;break;case wA:kA=le>=Ee;break;case lA:kA=le=L&&(T=P<0?L-1:L),T}};function Re(L){this._interpreter=L,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[a]}]},avg:{_func:this._functionAvg,_signature:[{types:[u]}]},ceil:{_func:this._functionCeil,_signature:[{types:[a]}]},contains:{_func:this._functionContains,_signature:[{types:[g,I]},{types:[c]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[g]},{types:[g]}]},floor:{_func:this._functionFloor,_signature:[{types:[a]}]},length:{_func:this._functionLength,_signature:[{types:[g,I,C]}]},map:{_func:this._functionMap,_signature:[{types:[B]},{types:[I]}]},max:{_func:this._functionMax,_signature:[{types:[u,h]}]},merge:{_func:this._functionMerge,_signature:[{types:[C],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[I]},{types:[B]}]},sum:{_func:this._functionSum,_signature:[{types:[u]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[g]},{types:[g]}]},min:{_func:this._functionMin,_signature:[{types:[u,h]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[I]},{types:[B]}]},type:{_func:this._functionType,_signature:[{types:[c]}]},keys:{_func:this._functionKeys,_signature:[{types:[C]}]},values:{_func:this._functionValues,_signature:[{types:[C]}]},sort:{_func:this._functionSort,_signature:[{types:[h,u]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[I]},{types:[B]}]},join:{_func:this._functionJoin,_signature:[{types:[g]},{types:[h]}]},reverse:{_func:this._functionReverse,_signature:[{types:[g,I]}]},to_array:{_func:this._functionToArray,_signature:[{types:[c]}]},to_string:{_func:this._functionToString,_signature:[{types:[c]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[c]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[c],variadic:!0}]}}}Re.prototype={callFunction:function(L,T){var P=this.functionTable[L];if(P===void 0)throw new Error("Unknown function: "+L+"()");return this._validateArgs(L,T,P._signature),P._func.call(this,T)},_validateArgs:function(L,T,P){var X;if(P[P.length-1].variadic){if(T.length=0;kA--)X+=P[kA];return X}else{var le=L[0].slice(0);return le.reverse(),le}},_functionAbs:function(L){return Math.abs(L[0])},_functionCeil:function(L){return Math.ceil(L[0])},_functionAvg:function(L){for(var T=0,P=L[0],X=0;X=0},_functionFloor:function(L){return Math.floor(L[0])},_functionLength:function(L){return A(L[0])?Object.keys(L[0]).length:L[0].length},_functionMap:function(L){for(var T=[],P=this._interpreter,X=L[0],kA=L[1],le=0;le0){var T=this._getTypeName(L[0][0]);if(T===a)return Math.max.apply(Math,L[0]);for(var P=L[0],X=P[0],kA=1;kA0){var T=this._getTypeName(L[0][0]);if(T===a)return Math.min.apply(Math,L[0]);for(var P=L[0],X=P[0],kA=1;kAot?1:XAkA&&(kA=Ee,le=P[FA]);return le},_functionMinBy:function(L){for(var T=L[1],P=L[0],X=this.createKeyFunction(T,[a,g]),kA=1/0,le,Ee,FA=0;FA"u"?DD.jmespath={}:DD)});var NgA=He((sLe,xgA)=>{"use strict";xgA.exports=[{value:"#B0171F",name:"indian red"},{value:"#DC143C",css:!0,name:"crimson"},{value:"#FFB6C1",css:!0,name:"lightpink"},{value:"#FFAEB9",name:"lightpink 1"},{value:"#EEA2AD",name:"lightpink 2"},{value:"#CD8C95",name:"lightpink 3"},{value:"#8B5F65",name:"lightpink 4"},{value:"#FFC0CB",css:!0,name:"pink"},{value:"#FFB5C5",name:"pink 1"},{value:"#EEA9B8",name:"pink 2"},{value:"#CD919E",name:"pink 3"},{value:"#8B636C",name:"pink 4"},{value:"#DB7093",css:!0,name:"palevioletred"},{value:"#FF82AB",name:"palevioletred 1"},{value:"#EE799F",name:"palevioletred 2"},{value:"#CD6889",name:"palevioletred 3"},{value:"#8B475D",name:"palevioletred 4"},{value:"#FFF0F5",name:"lavenderblush 1"},{value:"#FFF0F5",css:!0,name:"lavenderblush"},{value:"#EEE0E5",name:"lavenderblush 2"},{value:"#CDC1C5",name:"lavenderblush 3"},{value:"#8B8386",name:"lavenderblush 4"},{value:"#FF3E96",name:"violetred 1"},{value:"#EE3A8C",name:"violetred 2"},{value:"#CD3278",name:"violetred 3"},{value:"#8B2252",name:"violetred 4"},{value:"#FF69B4",css:!0,name:"hotpink"},{value:"#FF6EB4",name:"hotpink 1"},{value:"#EE6AA7",name:"hotpink 2"},{value:"#CD6090",name:"hotpink 3"},{value:"#8B3A62",name:"hotpink 4"},{value:"#872657",name:"raspberry"},{value:"#FF1493",name:"deeppink 1"},{value:"#FF1493",css:!0,name:"deeppink"},{value:"#EE1289",name:"deeppink 2"},{value:"#CD1076",name:"deeppink 3"},{value:"#8B0A50",name:"deeppink 4"},{value:"#FF34B3",name:"maroon 1"},{value:"#EE30A7",name:"maroon 2"},{value:"#CD2990",name:"maroon 3"},{value:"#8B1C62",name:"maroon 4"},{value:"#C71585",css:!0,name:"mediumvioletred"},{value:"#D02090",name:"violetred"},{value:"#DA70D6",css:!0,name:"orchid"},{value:"#FF83FA",name:"orchid 1"},{value:"#EE7AE9",name:"orchid 2"},{value:"#CD69C9",name:"orchid 3"},{value:"#8B4789",name:"orchid 4"},{value:"#D8BFD8",css:!0,name:"thistle"},{value:"#FFE1FF",name:"thistle 1"},{value:"#EED2EE",name:"thistle 2"},{value:"#CDB5CD",name:"thistle 3"},{value:"#8B7B8B",name:"thistle 4"},{value:"#FFBBFF",name:"plum 1"},{value:"#EEAEEE",name:"plum 2"},{value:"#CD96CD",name:"plum 3"},{value:"#8B668B",name:"plum 4"},{value:"#DDA0DD",css:!0,name:"plum"},{value:"#EE82EE",css:!0,name:"violet"},{value:"#FF00FF",vga:!0,name:"magenta"},{value:"#FF00FF",vga:!0,css:!0,name:"fuchsia"},{value:"#EE00EE",name:"magenta 2"},{value:"#CD00CD",name:"magenta 3"},{value:"#8B008B",name:"magenta 4"},{value:"#8B008B",css:!0,name:"darkmagenta"},{value:"#800080",vga:!0,css:!0,name:"purple"},{value:"#BA55D3",css:!0,name:"mediumorchid"},{value:"#E066FF",name:"mediumorchid 1"},{value:"#D15FEE",name:"mediumorchid 2"},{value:"#B452CD",name:"mediumorchid 3"},{value:"#7A378B",name:"mediumorchid 4"},{value:"#9400D3",css:!0,name:"darkviolet"},{value:"#9932CC",css:!0,name:"darkorchid"},{value:"#BF3EFF",name:"darkorchid 1"},{value:"#B23AEE",name:"darkorchid 2"},{value:"#9A32CD",name:"darkorchid 3"},{value:"#68228B",name:"darkorchid 4"},{value:"#4B0082",css:!0,name:"indigo"},{value:"#8A2BE2",css:!0,name:"blueviolet"},{value:"#9B30FF",name:"purple 1"},{value:"#912CEE",name:"purple 2"},{value:"#7D26CD",name:"purple 3"},{value:"#551A8B",name:"purple 4"},{value:"#9370DB",css:!0,name:"mediumpurple"},{value:"#AB82FF",name:"mediumpurple 1"},{value:"#9F79EE",name:"mediumpurple 2"},{value:"#8968CD",name:"mediumpurple 3"},{value:"#5D478B",name:"mediumpurple 4"},{value:"#483D8B",css:!0,name:"darkslateblue"},{value:"#8470FF",name:"lightslateblue"},{value:"#7B68EE",css:!0,name:"mediumslateblue"},{value:"#6A5ACD",css:!0,name:"slateblue"},{value:"#836FFF",name:"slateblue 1"},{value:"#7A67EE",name:"slateblue 2"},{value:"#6959CD",name:"slateblue 3"},{value:"#473C8B",name:"slateblue 4"},{value:"#F8F8FF",css:!0,name:"ghostwhite"},{value:"#E6E6FA",css:!0,name:"lavender"},{value:"#0000FF",vga:!0,css:!0,name:"blue"},{value:"#0000EE",name:"blue 2"},{value:"#0000CD",name:"blue 3"},{value:"#0000CD",css:!0,name:"mediumblue"},{value:"#00008B",name:"blue 4"},{value:"#00008B",css:!0,name:"darkblue"},{value:"#000080",vga:!0,css:!0,name:"navy"},{value:"#191970",css:!0,name:"midnightblue"},{value:"#3D59AB",name:"cobalt"},{value:"#4169E1",css:!0,name:"royalblue"},{value:"#4876FF",name:"royalblue 1"},{value:"#436EEE",name:"royalblue 2"},{value:"#3A5FCD",name:"royalblue 3"},{value:"#27408B",name:"royalblue 4"},{value:"#6495ED",css:!0,name:"cornflowerblue"},{value:"#B0C4DE",css:!0,name:"lightsteelblue"},{value:"#CAE1FF",name:"lightsteelblue 1"},{value:"#BCD2EE",name:"lightsteelblue 2"},{value:"#A2B5CD",name:"lightsteelblue 3"},{value:"#6E7B8B",name:"lightsteelblue 4"},{value:"#778899",css:!0,name:"lightslategray"},{value:"#708090",css:!0,name:"slategray"},{value:"#C6E2FF",name:"slategray 1"},{value:"#B9D3EE",name:"slategray 2"},{value:"#9FB6CD",name:"slategray 3"},{value:"#6C7B8B",name:"slategray 4"},{value:"#1E90FF",name:"dodgerblue 1"},{value:"#1E90FF",css:!0,name:"dodgerblue"},{value:"#1C86EE",name:"dodgerblue 2"},{value:"#1874CD",name:"dodgerblue 3"},{value:"#104E8B",name:"dodgerblue 4"},{value:"#F0F8FF",css:!0,name:"aliceblue"},{value:"#4682B4",css:!0,name:"steelblue"},{value:"#63B8FF",name:"steelblue 1"},{value:"#5CACEE",name:"steelblue 2"},{value:"#4F94CD",name:"steelblue 3"},{value:"#36648B",name:"steelblue 4"},{value:"#87CEFA",css:!0,name:"lightskyblue"},{value:"#B0E2FF",name:"lightskyblue 1"},{value:"#A4D3EE",name:"lightskyblue 2"},{value:"#8DB6CD",name:"lightskyblue 3"},{value:"#607B8B",name:"lightskyblue 4"},{value:"#87CEFF",name:"skyblue 1"},{value:"#7EC0EE",name:"skyblue 2"},{value:"#6CA6CD",name:"skyblue 3"},{value:"#4A708B",name:"skyblue 4"},{value:"#87CEEB",css:!0,name:"skyblue"},{value:"#00BFFF",name:"deepskyblue 1"},{value:"#00BFFF",css:!0,name:"deepskyblue"},{value:"#00B2EE",name:"deepskyblue 2"},{value:"#009ACD",name:"deepskyblue 3"},{value:"#00688B",name:"deepskyblue 4"},{value:"#33A1C9",name:"peacock"},{value:"#ADD8E6",css:!0,name:"lightblue"},{value:"#BFEFFF",name:"lightblue 1"},{value:"#B2DFEE",name:"lightblue 2"},{value:"#9AC0CD",name:"lightblue 3"},{value:"#68838B",name:"lightblue 4"},{value:"#B0E0E6",css:!0,name:"powderblue"},{value:"#98F5FF",name:"cadetblue 1"},{value:"#8EE5EE",name:"cadetblue 2"},{value:"#7AC5CD",name:"cadetblue 3"},{value:"#53868B",name:"cadetblue 4"},{value:"#00F5FF",name:"turquoise 1"},{value:"#00E5EE",name:"turquoise 2"},{value:"#00C5CD",name:"turquoise 3"},{value:"#00868B",name:"turquoise 4"},{value:"#5F9EA0",css:!0,name:"cadetblue"},{value:"#00CED1",css:!0,name:"darkturquoise"},{value:"#F0FFFF",name:"azure 1"},{value:"#F0FFFF",css:!0,name:"azure"},{value:"#E0EEEE",name:"azure 2"},{value:"#C1CDCD",name:"azure 3"},{value:"#838B8B",name:"azure 4"},{value:"#E0FFFF",name:"lightcyan 1"},{value:"#E0FFFF",css:!0,name:"lightcyan"},{value:"#D1EEEE",name:"lightcyan 2"},{value:"#B4CDCD",name:"lightcyan 3"},{value:"#7A8B8B",name:"lightcyan 4"},{value:"#BBFFFF",name:"paleturquoise 1"},{value:"#AEEEEE",name:"paleturquoise 2"},{value:"#AEEEEE",css:!0,name:"paleturquoise"},{value:"#96CDCD",name:"paleturquoise 3"},{value:"#668B8B",name:"paleturquoise 4"},{value:"#2F4F4F",css:!0,name:"darkslategray"},{value:"#97FFFF",name:"darkslategray 1"},{value:"#8DEEEE",name:"darkslategray 2"},{value:"#79CDCD",name:"darkslategray 3"},{value:"#528B8B",name:"darkslategray 4"},{value:"#00FFFF",name:"cyan"},{value:"#00FFFF",css:!0,name:"aqua"},{value:"#00EEEE",name:"cyan 2"},{value:"#00CDCD",name:"cyan 3"},{value:"#008B8B",name:"cyan 4"},{value:"#008B8B",css:!0,name:"darkcyan"},{value:"#008080",vga:!0,css:!0,name:"teal"},{value:"#48D1CC",css:!0,name:"mediumturquoise"},{value:"#20B2AA",css:!0,name:"lightseagreen"},{value:"#03A89E",name:"manganeseblue"},{value:"#40E0D0",css:!0,name:"turquoise"},{value:"#808A87",name:"coldgrey"},{value:"#00C78C",name:"turquoiseblue"},{value:"#7FFFD4",name:"aquamarine 1"},{value:"#7FFFD4",css:!0,name:"aquamarine"},{value:"#76EEC6",name:"aquamarine 2"},{value:"#66CDAA",name:"aquamarine 3"},{value:"#66CDAA",css:!0,name:"mediumaquamarine"},{value:"#458B74",name:"aquamarine 4"},{value:"#00FA9A",css:!0,name:"mediumspringgreen"},{value:"#F5FFFA",css:!0,name:"mintcream"},{value:"#00FF7F",css:!0,name:"springgreen"},{value:"#00EE76",name:"springgreen 1"},{value:"#00CD66",name:"springgreen 2"},{value:"#008B45",name:"springgreen 3"},{value:"#3CB371",css:!0,name:"mediumseagreen"},{value:"#54FF9F",name:"seagreen 1"},{value:"#4EEE94",name:"seagreen 2"},{value:"#43CD80",name:"seagreen 3"},{value:"#2E8B57",name:"seagreen 4"},{value:"#2E8B57",css:!0,name:"seagreen"},{value:"#00C957",name:"emeraldgreen"},{value:"#BDFCC9",name:"mint"},{value:"#3D9140",name:"cobaltgreen"},{value:"#F0FFF0",name:"honeydew 1"},{value:"#F0FFF0",css:!0,name:"honeydew"},{value:"#E0EEE0",name:"honeydew 2"},{value:"#C1CDC1",name:"honeydew 3"},{value:"#838B83",name:"honeydew 4"},{value:"#8FBC8F",css:!0,name:"darkseagreen"},{value:"#C1FFC1",name:"darkseagreen 1"},{value:"#B4EEB4",name:"darkseagreen 2"},{value:"#9BCD9B",name:"darkseagreen 3"},{value:"#698B69",name:"darkseagreen 4"},{value:"#98FB98",css:!0,name:"palegreen"},{value:"#9AFF9A",name:"palegreen 1"},{value:"#90EE90",name:"palegreen 2"},{value:"#90EE90",css:!0,name:"lightgreen"},{value:"#7CCD7C",name:"palegreen 3"},{value:"#548B54",name:"palegreen 4"},{value:"#32CD32",css:!0,name:"limegreen"},{value:"#228B22",css:!0,name:"forestgreen"},{value:"#00FF00",vga:!0,name:"green 1"},{value:"#00FF00",vga:!0,css:!0,name:"lime"},{value:"#00EE00",name:"green 2"},{value:"#00CD00",name:"green 3"},{value:"#008B00",name:"green 4"},{value:"#008000",vga:!0,css:!0,name:"green"},{value:"#006400",css:!0,name:"darkgreen"},{value:"#308014",name:"sapgreen"},{value:"#7CFC00",css:!0,name:"lawngreen"},{value:"#7FFF00",name:"chartreuse 1"},{value:"#7FFF00",css:!0,name:"chartreuse"},{value:"#76EE00",name:"chartreuse 2"},{value:"#66CD00",name:"chartreuse 3"},{value:"#458B00",name:"chartreuse 4"},{value:"#ADFF2F",css:!0,name:"greenyellow"},{value:"#CAFF70",name:"darkolivegreen 1"},{value:"#BCEE68",name:"darkolivegreen 2"},{value:"#A2CD5A",name:"darkolivegreen 3"},{value:"#6E8B3D",name:"darkolivegreen 4"},{value:"#556B2F",css:!0,name:"darkolivegreen"},{value:"#6B8E23",css:!0,name:"olivedrab"},{value:"#C0FF3E",name:"olivedrab 1"},{value:"#B3EE3A",name:"olivedrab 2"},{value:"#9ACD32",name:"olivedrab 3"},{value:"#9ACD32",css:!0,name:"yellowgreen"},{value:"#698B22",name:"olivedrab 4"},{value:"#FFFFF0",name:"ivory 1"},{value:"#FFFFF0",css:!0,name:"ivory"},{value:"#EEEEE0",name:"ivory 2"},{value:"#CDCDC1",name:"ivory 3"},{value:"#8B8B83",name:"ivory 4"},{value:"#F5F5DC",css:!0,name:"beige"},{value:"#FFFFE0",name:"lightyellow 1"},{value:"#FFFFE0",css:!0,name:"lightyellow"},{value:"#EEEED1",name:"lightyellow 2"},{value:"#CDCDB4",name:"lightyellow 3"},{value:"#8B8B7A",name:"lightyellow 4"},{value:"#FAFAD2",css:!0,name:"lightgoldenrodyellow"},{value:"#FFFF00",vga:!0,name:"yellow 1"},{value:"#FFFF00",vga:!0,css:!0,name:"yellow"},{value:"#EEEE00",name:"yellow 2"},{value:"#CDCD00",name:"yellow 3"},{value:"#8B8B00",name:"yellow 4"},{value:"#808069",name:"warmgrey"},{value:"#808000",vga:!0,css:!0,name:"olive"},{value:"#BDB76B",css:!0,name:"darkkhaki"},{value:"#FFF68F",name:"khaki 1"},{value:"#EEE685",name:"khaki 2"},{value:"#CDC673",name:"khaki 3"},{value:"#8B864E",name:"khaki 4"},{value:"#F0E68C",css:!0,name:"khaki"},{value:"#EEE8AA",css:!0,name:"palegoldenrod"},{value:"#FFFACD",name:"lemonchiffon 1"},{value:"#FFFACD",css:!0,name:"lemonchiffon"},{value:"#EEE9BF",name:"lemonchiffon 2"},{value:"#CDC9A5",name:"lemonchiffon 3"},{value:"#8B8970",name:"lemonchiffon 4"},{value:"#FFEC8B",name:"lightgoldenrod 1"},{value:"#EEDC82",name:"lightgoldenrod 2"},{value:"#CDBE70",name:"lightgoldenrod 3"},{value:"#8B814C",name:"lightgoldenrod 4"},{value:"#E3CF57",name:"banana"},{value:"#FFD700",name:"gold 1"},{value:"#FFD700",css:!0,name:"gold"},{value:"#EEC900",name:"gold 2"},{value:"#CDAD00",name:"gold 3"},{value:"#8B7500",name:"gold 4"},{value:"#FFF8DC",name:"cornsilk 1"},{value:"#FFF8DC",css:!0,name:"cornsilk"},{value:"#EEE8CD",name:"cornsilk 2"},{value:"#CDC8B1",name:"cornsilk 3"},{value:"#8B8878",name:"cornsilk 4"},{value:"#DAA520",css:!0,name:"goldenrod"},{value:"#FFC125",name:"goldenrod 1"},{value:"#EEB422",name:"goldenrod 2"},{value:"#CD9B1D",name:"goldenrod 3"},{value:"#8B6914",name:"goldenrod 4"},{value:"#B8860B",css:!0,name:"darkgoldenrod"},{value:"#FFB90F",name:"darkgoldenrod 1"},{value:"#EEAD0E",name:"darkgoldenrod 2"},{value:"#CD950C",name:"darkgoldenrod 3"},{value:"#8B6508",name:"darkgoldenrod 4"},{value:"#FFA500",name:"orange 1"},{value:"#FF8000",css:!0,name:"orange"},{value:"#EE9A00",name:"orange 2"},{value:"#CD8500",name:"orange 3"},{value:"#8B5A00",name:"orange 4"},{value:"#FFFAF0",css:!0,name:"floralwhite"},{value:"#FDF5E6",css:!0,name:"oldlace"},{value:"#F5DEB3",css:!0,name:"wheat"},{value:"#FFE7BA",name:"wheat 1"},{value:"#EED8AE",name:"wheat 2"},{value:"#CDBA96",name:"wheat 3"},{value:"#8B7E66",name:"wheat 4"},{value:"#FFE4B5",css:!0,name:"moccasin"},{value:"#FFEFD5",css:!0,name:"papayawhip"},{value:"#FFEBCD",css:!0,name:"blanchedalmond"},{value:"#FFDEAD",name:"navajowhite 1"},{value:"#FFDEAD",css:!0,name:"navajowhite"},{value:"#EECFA1",name:"navajowhite 2"},{value:"#CDB38B",name:"navajowhite 3"},{value:"#8B795E",name:"navajowhite 4"},{value:"#FCE6C9",name:"eggshell"},{value:"#D2B48C",css:!0,name:"tan"},{value:"#9C661F",name:"brick"},{value:"#FF9912",name:"cadmiumyellow"},{value:"#FAEBD7",css:!0,name:"antiquewhite"},{value:"#FFEFDB",name:"antiquewhite 1"},{value:"#EEDFCC",name:"antiquewhite 2"},{value:"#CDC0B0",name:"antiquewhite 3"},{value:"#8B8378",name:"antiquewhite 4"},{value:"#DEB887",css:!0,name:"burlywood"},{value:"#FFD39B",name:"burlywood 1"},{value:"#EEC591",name:"burlywood 2"},{value:"#CDAA7D",name:"burlywood 3"},{value:"#8B7355",name:"burlywood 4"},{value:"#FFE4C4",name:"bisque 1"},{value:"#FFE4C4",css:!0,name:"bisque"},{value:"#EED5B7",name:"bisque 2"},{value:"#CDB79E",name:"bisque 3"},{value:"#8B7D6B",name:"bisque 4"},{value:"#E3A869",name:"melon"},{value:"#ED9121",name:"carrot"},{value:"#FF8C00",css:!0,name:"darkorange"},{value:"#FF7F00",name:"darkorange 1"},{value:"#EE7600",name:"darkorange 2"},{value:"#CD6600",name:"darkorange 3"},{value:"#8B4500",name:"darkorange 4"},{value:"#FFA54F",name:"tan 1"},{value:"#EE9A49",name:"tan 2"},{value:"#CD853F",name:"tan 3"},{value:"#CD853F",css:!0,name:"peru"},{value:"#8B5A2B",name:"tan 4"},{value:"#FAF0E6",css:!0,name:"linen"},{value:"#FFDAB9",name:"peachpuff 1"},{value:"#FFDAB9",css:!0,name:"peachpuff"},{value:"#EECBAD",name:"peachpuff 2"},{value:"#CDAF95",name:"peachpuff 3"},{value:"#8B7765",name:"peachpuff 4"},{value:"#FFF5EE",name:"seashell 1"},{value:"#FFF5EE",css:!0,name:"seashell"},{value:"#EEE5DE",name:"seashell 2"},{value:"#CDC5BF",name:"seashell 3"},{value:"#8B8682",name:"seashell 4"},{value:"#F4A460",css:!0,name:"sandybrown"},{value:"#C76114",name:"rawsienna"},{value:"#D2691E",css:!0,name:"chocolate"},{value:"#FF7F24",name:"chocolate 1"},{value:"#EE7621",name:"chocolate 2"},{value:"#CD661D",name:"chocolate 3"},{value:"#8B4513",name:"chocolate 4"},{value:"#8B4513",css:!0,name:"saddlebrown"},{value:"#292421",name:"ivoryblack"},{value:"#FF7D40",name:"flesh"},{value:"#FF6103",name:"cadmiumorange"},{value:"#8A360F",name:"burntsienna"},{value:"#A0522D",css:!0,name:"sienna"},{value:"#FF8247",name:"sienna 1"},{value:"#EE7942",name:"sienna 2"},{value:"#CD6839",name:"sienna 3"},{value:"#8B4726",name:"sienna 4"},{value:"#FFA07A",name:"lightsalmon 1"},{value:"#FFA07A",css:!0,name:"lightsalmon"},{value:"#EE9572",name:"lightsalmon 2"},{value:"#CD8162",name:"lightsalmon 3"},{value:"#8B5742",name:"lightsalmon 4"},{value:"#FF7F50",css:!0,name:"coral"},{value:"#FF4500",name:"orangered 1"},{value:"#FF4500",css:!0,name:"orangered"},{value:"#EE4000",name:"orangered 2"},{value:"#CD3700",name:"orangered 3"},{value:"#8B2500",name:"orangered 4"},{value:"#5E2612",name:"sepia"},{value:"#E9967A",css:!0,name:"darksalmon"},{value:"#FF8C69",name:"salmon 1"},{value:"#EE8262",name:"salmon 2"},{value:"#CD7054",name:"salmon 3"},{value:"#8B4C39",name:"salmon 4"},{value:"#FF7256",name:"coral 1"},{value:"#EE6A50",name:"coral 2"},{value:"#CD5B45",name:"coral 3"},{value:"#8B3E2F",name:"coral 4"},{value:"#8A3324",name:"burntumber"},{value:"#FF6347",name:"tomato 1"},{value:"#FF6347",css:!0,name:"tomato"},{value:"#EE5C42",name:"tomato 2"},{value:"#CD4F39",name:"tomato 3"},{value:"#8B3626",name:"tomato 4"},{value:"#FA8072",css:!0,name:"salmon"},{value:"#FFE4E1",name:"mistyrose 1"},{value:"#FFE4E1",css:!0,name:"mistyrose"},{value:"#EED5D2",name:"mistyrose 2"},{value:"#CDB7B5",name:"mistyrose 3"},{value:"#8B7D7B",name:"mistyrose 4"},{value:"#FFFAFA",name:"snow 1"},{value:"#FFFAFA",css:!0,name:"snow"},{value:"#EEE9E9",name:"snow 2"},{value:"#CDC9C9",name:"snow 3"},{value:"#8B8989",name:"snow 4"},{value:"#BC8F8F",css:!0,name:"rosybrown"},{value:"#FFC1C1",name:"rosybrown 1"},{value:"#EEB4B4",name:"rosybrown 2"},{value:"#CD9B9B",name:"rosybrown 3"},{value:"#8B6969",name:"rosybrown 4"},{value:"#F08080",css:!0,name:"lightcoral"},{value:"#CD5C5C",css:!0,name:"indianred"},{value:"#FF6A6A",name:"indianred 1"},{value:"#EE6363",name:"indianred 2"},{value:"#8B3A3A",name:"indianred 4"},{value:"#CD5555",name:"indianred 3"},{value:"#A52A2A",css:!0,name:"brown"},{value:"#FF4040",name:"brown 1"},{value:"#EE3B3B",name:"brown 2"},{value:"#CD3333",name:"brown 3"},{value:"#8B2323",name:"brown 4"},{value:"#B22222",css:!0,name:"firebrick"},{value:"#FF3030",name:"firebrick 1"},{value:"#EE2C2C",name:"firebrick 2"},{value:"#CD2626",name:"firebrick 3"},{value:"#8B1A1A",name:"firebrick 4"},{value:"#FF0000",vga:!0,name:"red 1"},{value:"#FF0000",vga:!0,css:!0,name:"red"},{value:"#EE0000",name:"red 2"},{value:"#CD0000",name:"red 3"},{value:"#8B0000",name:"red 4"},{value:"#8B0000",css:!0,name:"darkred"},{value:"#800000",vga:!0,css:!0,name:"maroon"},{value:"#8E388E",name:"sgi beet"},{value:"#7171C6",name:"sgi slateblue"},{value:"#7D9EC0",name:"sgi lightblue"},{value:"#388E8E",name:"sgi teal"},{value:"#71C671",name:"sgi chartreuse"},{value:"#8E8E38",name:"sgi olivedrab"},{value:"#C5C1AA",name:"sgi brightgray"},{value:"#C67171",name:"sgi salmon"},{value:"#555555",name:"sgi darkgray"},{value:"#1E1E1E",name:"sgi gray 12"},{value:"#282828",name:"sgi gray 16"},{value:"#515151",name:"sgi gray 32"},{value:"#5B5B5B",name:"sgi gray 36"},{value:"#848484",name:"sgi gray 52"},{value:"#8E8E8E",name:"sgi gray 56"},{value:"#AAAAAA",name:"sgi lightgray"},{value:"#B7B7B7",name:"sgi gray 72"},{value:"#C1C1C1",name:"sgi gray 76"},{value:"#EAEAEA",name:"sgi gray 92"},{value:"#F4F4F4",name:"sgi gray 96"},{value:"#FFFFFF",vga:!0,css:!0,name:"white"},{value:"#F5F5F5",name:"white smoke"},{value:"#F5F5F5",name:"gray 96"},{value:"#DCDCDC",css:!0,name:"gainsboro"},{value:"#D3D3D3",css:!0,name:"lightgrey"},{value:"#C0C0C0",vga:!0,css:!0,name:"silver"},{value:"#A9A9A9",css:!0,name:"darkgray"},{value:"#808080",vga:!0,css:!0,name:"gray"},{value:"#696969",css:!0,name:"dimgray"},{value:"#696969",name:"gray 42"},{value:"#000000",vga:!0,css:!0,name:"black"},{value:"#FCFCFC",name:"gray 99"},{value:"#FAFAFA",name:"gray 98"},{value:"#F7F7F7",name:"gray 97"},{value:"#F2F2F2",name:"gray 95"},{value:"#F0F0F0",name:"gray 94"},{value:"#EDEDED",name:"gray 93"},{value:"#EBEBEB",name:"gray 92"},{value:"#E8E8E8",name:"gray 91"},{value:"#E5E5E5",name:"gray 90"},{value:"#E3E3E3",name:"gray 89"},{value:"#E0E0E0",name:"gray 88"},{value:"#DEDEDE",name:"gray 87"},{value:"#DBDBDB",name:"gray 86"},{value:"#D9D9D9",name:"gray 85"},{value:"#D6D6D6",name:"gray 84"},{value:"#D4D4D4",name:"gray 83"},{value:"#D1D1D1",name:"gray 82"},{value:"#CFCFCF",name:"gray 81"},{value:"#CCCCCC",name:"gray 80"},{value:"#C9C9C9",name:"gray 79"},{value:"#C7C7C7",name:"gray 78"},{value:"#C4C4C4",name:"gray 77"},{value:"#C2C2C2",name:"gray 76"},{value:"#BFBFBF",name:"gray 75"},{value:"#BDBDBD",name:"gray 74"},{value:"#BABABA",name:"gray 73"},{value:"#B8B8B8",name:"gray 72"},{value:"#B5B5B5",name:"gray 71"},{value:"#B3B3B3",name:"gray 70"},{value:"#B0B0B0",name:"gray 69"},{value:"#ADADAD",name:"gray 68"},{value:"#ABABAB",name:"gray 67"},{value:"#A8A8A8",name:"gray 66"},{value:"#A6A6A6",name:"gray 65"},{value:"#A3A3A3",name:"gray 64"},{value:"#A1A1A1",name:"gray 63"},{value:"#9E9E9E",name:"gray 62"},{value:"#9C9C9C",name:"gray 61"},{value:"#999999",name:"gray 60"},{value:"#969696",name:"gray 59"},{value:"#949494",name:"gray 58"},{value:"#919191",name:"gray 57"},{value:"#8F8F8F",name:"gray 56"},{value:"#8C8C8C",name:"gray 55"},{value:"#8A8A8A",name:"gray 54"},{value:"#878787",name:"gray 53"},{value:"#858585",name:"gray 52"},{value:"#828282",name:"gray 51"},{value:"#7F7F7F",name:"gray 50"},{value:"#7D7D7D",name:"gray 49"},{value:"#7A7A7A",name:"gray 48"},{value:"#787878",name:"gray 47"},{value:"#757575",name:"gray 46"},{value:"#737373",name:"gray 45"},{value:"#707070",name:"gray 44"},{value:"#6E6E6E",name:"gray 43"},{value:"#666666",name:"gray 40"},{value:"#636363",name:"gray 39"},{value:"#616161",name:"gray 38"},{value:"#5E5E5E",name:"gray 37"},{value:"#5C5C5C",name:"gray 36"},{value:"#595959",name:"gray 35"},{value:"#575757",name:"gray 34"},{value:"#545454",name:"gray 33"},{value:"#525252",name:"gray 32"},{value:"#4F4F4F",name:"gray 31"},{value:"#4D4D4D",name:"gray 30"},{value:"#4A4A4A",name:"gray 29"},{value:"#474747",name:"gray 28"},{value:"#454545",name:"gray 27"},{value:"#424242",name:"gray 26"},{value:"#404040",name:"gray 25"},{value:"#3D3D3D",name:"gray 24"},{value:"#3B3B3B",name:"gray 23"},{value:"#383838",name:"gray 22"},{value:"#363636",name:"gray 21"},{value:"#333333",name:"gray 20"},{value:"#303030",name:"gray 19"},{value:"#2E2E2E",name:"gray 18"},{value:"#2B2B2B",name:"gray 17"},{value:"#292929",name:"gray 16"},{value:"#262626",name:"gray 15"},{value:"#242424",name:"gray 14"},{value:"#212121",name:"gray 13"},{value:"#1F1F1F",name:"gray 12"},{value:"#1C1C1C",name:"gray 11"},{value:"#1A1A1A",name:"gray 10"},{value:"#171717",name:"gray 9"},{value:"#141414",name:"gray 8"},{value:"#121212",name:"gray 7"},{value:"#0F0F0F",name:"gray 6"},{value:"#0D0D0D",name:"gray 5"},{value:"#0A0A0A",name:"gray 4"},{value:"#080808",name:"gray 3"},{value:"#050505",name:"gray 2"},{value:"#030303",name:"gray 1"},{value:"#F5F5F5",css:!0,name:"whitesmoke"}]});var GgA=He((aLe,dI)=>{"use strict";var dv=NgA(),FgA=dv.filter(function(t){return!!t.css}),_gA=dv.filter(function(t){return!!t.vga});dI.exports=function(t){var e=dI.exports.get(t);return e&&e.value};dI.exports.get=function(t){return t=t||"",t=t.trim().toLowerCase(),dv.filter(function(e){return e.name.toLowerCase()===t}).pop()};dI.exports.all=dI.exports.get.all=function(){return dv};dI.exports.get.css=function(t){return t?(t=t||"",t=t.trim().toLowerCase(),FgA.filter(function(e){return e.name.toLowerCase()===t}).pop()):FgA};dI.exports.get.vga=function(t){return t?(t=t||"",t=t.trim().toLowerCase(),_gA.filter(function(e){return e.name.toLowerCase()===t}).pop()):_gA}});var olA=He((cLe,nlA)=>{"use strict";var YjA=1/0,TjA="[object Symbol]",HjA=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,zgA="\\ud800-\\udfff",OjA="\\u0300-\\u036f\\ufe20-\\ufe23",zjA="\\u20d0-\\u20f0",PgA="\\u2700-\\u27bf",jgA="a-z\\xdf-\\xf6\\xf8-\\xff",PjA="\\xac\\xb1\\xd7\\xf7",jjA="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",qjA="\\u2000-\\u206f",VjA=" \\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",qgA="A-Z\\xc0-\\xd6\\xd8-\\xde",ZjA="\\ufe0e\\ufe0f",VgA=PjA+jjA+qjA+VjA,ZgA="['\u2019]",KgA="["+VgA+"]",WjA="["+OjA+zjA+"]",WgA="\\d+",XjA="["+PgA+"]",XgA="["+jgA+"]",$gA="[^"+zgA+VgA+WgA+PgA+jgA+qgA+"]",$jA="\\ud83c[\\udffb-\\udfff]",AqA="(?:"+WjA+"|"+$jA+")",eqA="[^"+zgA+"]",AlA="(?:\\ud83c[\\udde6-\\uddff]){2}",elA="[\\ud800-\\udbff][\\udc00-\\udfff]",PQ="["+qgA+"]",tqA="\\u200d",UgA="(?:"+XgA+"|"+$gA+")",iqA="(?:"+PQ+"|"+$gA+")",JgA="(?:"+ZgA+"(?:d|ll|m|re|s|t|ve))?",YgA="(?:"+ZgA+"(?:D|LL|M|RE|S|T|VE))?",tlA=AqA+"?",ilA="["+ZjA+"]?",nqA="(?:"+tqA+"(?:"+[eqA,AlA,elA].join("|")+")"+ilA+tlA+")*",oqA=ilA+tlA+nqA,rqA="(?:"+[XjA,AlA,elA].join("|")+")"+oqA,sqA=RegExp([PQ+"?"+XgA+"+"+JgA+"(?="+[KgA,PQ,"$"].join("|")+")",iqA+"+"+YgA+"(?="+[KgA,PQ+UgA,"$"].join("|")+")",PQ+"?"+UgA+"+"+JgA,PQ+"+"+YgA,WgA,rqA].join("|"),"g"),aqA=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,cqA=typeof global=="object"&&global&&global.Object===Object&&global,gqA=typeof self=="object"&&self&&self.Object===Object&&self,lqA=cqA||gqA||Function("return this")();function IqA(t){return t.match(HjA)||[]}function CqA(t){return aqA.test(t)}function dqA(t){return t.match(sqA)||[]}var BqA=Object.prototype,EqA=BqA.toString,TgA=lqA.Symbol,HgA=TgA?TgA.prototype:void 0,OgA=HgA?HgA.toString:void 0;function QqA(t){if(typeof t=="string")return t;if(hqA(t))return OgA?OgA.call(t):"";var e=t+"";return e=="0"&&1/t==-YjA?"-0":e}function uqA(t){return!!t&&typeof t=="object"}function hqA(t){return typeof t=="symbol"||uqA(t)&&EqA.call(t)==TjA}function fqA(t){return t==null?"":QqA(t)}function mqA(t,e,A){return t=fqA(t),e=A?void 0:e,e===void 0?CqA(t)?dqA(t):IqA(t):t.match(e)||[]}nlA.exports=mqA});var mlA=He((gLe,flA)=>{"use strict";var pqA=1/0,DqA="[object Symbol]",wqA=/^\s+/,pU="\\ud800-\\udfff",glA="\\u0300-\\u036f\\ufe20-\\ufe23",llA="\\u20d0-\\u20f0",IlA="\\ufe0e\\ufe0f",yqA="["+pU+"]",fU="["+glA+llA+"]",mU="\\ud83c[\\udffb-\\udfff]",vqA="(?:"+fU+"|"+mU+")",ClA="[^"+pU+"]",dlA="(?:\\ud83c[\\udde6-\\uddff]){2}",BlA="[\\ud800-\\udbff][\\udc00-\\udfff]",ElA="\\u200d",QlA=vqA+"?",ulA="["+IlA+"]?",MqA="(?:"+ElA+"(?:"+[ClA,dlA,BlA].join("|")+")"+ulA+QlA+")*",bqA=ulA+QlA+MqA,kqA="(?:"+[ClA+fU+"?",fU,dlA,BlA,yqA].join("|")+")",SqA=RegExp(mU+"(?="+mU+")|"+kqA+bqA,"g"),RqA=RegExp("["+ElA+pU+glA+llA+IlA+"]"),LqA=typeof global=="object"&&global&&global.Object===Object&&global,xqA=typeof self=="object"&&self&&self.Object===Object&&self,NqA=LqA||xqA||Function("return this")();function FqA(t){return t.split("")}function _qA(t,e,A,i){for(var n=t.length,o=A+(i?1:-1);i?o--:++o-1;);return A}function JqA(t){return RqA.test(t)}function rlA(t){return JqA(t)?YqA(t):FqA(t)}function YqA(t){return t.match(SqA)||[]}var TqA=Object.prototype,HqA=TqA.toString,slA=NqA.Symbol,alA=slA?slA.prototype:void 0,clA=alA?alA.toString:void 0;function OqA(t,e,A){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),A=A>n?n:A,A<0&&(A+=n),n=e>A?0:A-e>>>0,e>>>=0;for(var o=Array(n);++i=i?t:OqA(t,e,A)}function PqA(t){return!!t&&typeof t=="object"}function jqA(t){return typeof t=="symbol"||PqA(t)&&HqA.call(t)==DqA}function qqA(t){return t==null?"":hlA(t)}function VqA(t,e,A){if(t=qqA(t),t&&(A||e===void 0))return t.replace(wqA,"");if(!t||!(e=hlA(e)))return t;var i=rlA(t),n=UqA(i,rlA(e));return zqA(i,n).join("")}flA.exports=VqA});var YlA=He((lLe,JlA)=>{"use strict";var DU=1/0,ZqA=9007199254740991,WqA=17976931348623157e292,plA=NaN,XqA="[object Symbol]",$qA=/^\s+|\s+$/g,AVA=/^[-+]0x[0-9a-f]+$/i,eVA=/^0b[01]+$/i,tVA=/^0o[0-7]+$/i,MU="\\ud800-\\udfff",blA="\\u0300-\\u036f\\ufe20-\\ufe23",klA="\\u20d0-\\u20f0",SlA="\\ufe0e\\ufe0f",iVA="["+MU+"]",wU="["+blA+klA+"]",yU="\\ud83c[\\udffb-\\udfff]",nVA="(?:"+wU+"|"+yU+")",RlA="[^"+MU+"]",LlA="(?:\\ud83c[\\udde6-\\uddff]){2}",xlA="[\\ud800-\\udbff][\\udc00-\\udfff]",NlA="\\u200d",FlA=nVA+"?",_lA="["+SlA+"]?",oVA="(?:"+NlA+"(?:"+[RlA,LlA,xlA].join("|")+")"+_lA+FlA+")*",rVA=_lA+FlA+oVA,sVA="(?:"+[RlA+wU+"?",wU,LlA,xlA,iVA].join("|")+")",vU=RegExp(yU+"(?="+yU+")|"+sVA+rVA,"g"),aVA=RegExp("["+NlA+MU+blA+klA+SlA+"]"),cVA=parseInt,gVA=typeof global=="object"&&global&&global.Object===Object&&global,lVA=typeof self=="object"&&self&&self.Object===Object&&self,IVA=gVA||lVA||Function("return this")(),CVA=BVA("length");function dVA(t){return t.split("")}function BVA(t){return function(e){return e?.[t]}}function bU(t){return aVA.test(t)}function GlA(t){return bU(t)?QVA(t):CVA(t)}function EVA(t){return bU(t)?uVA(t):dVA(t)}function QVA(t){for(var e=vU.lastIndex=0;vU.test(t);)e++;return e}function uVA(t){return t.match(vU)||[]}var hVA=Object.prototype,fVA=hVA.toString,DlA=IVA.Symbol,mVA=Math.ceil,pVA=Math.floor,wlA=DlA?DlA.prototype:void 0,ylA=wlA?wlA.toString:void 0;function vlA(t,e){var A="";if(!t||e<1||e>ZqA)return A;do e%2&&(A+=t),e=pVA(e/2),e&&(t+=t);while(e);return A}function DVA(t,e,A){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),A=A>n?n:A,A<0&&(A+=n),n=e>A?0:A-e>>>0,e>>>=0;for(var o=Array(n);++i=i?t:DVA(t,e,A)}function yVA(t,e){e=e===void 0?" ":KlA(e);var A=e.length;if(A<2)return A?vlA(e,t):e;var i=vlA(e,mVA(t/GlA(e)));return bU(e)?wVA(EVA(i),0,t).join(""):i.slice(0,t)}function MlA(t){var e=typeof t;return!!t&&(e=="object"||e=="function")}function vVA(t){return!!t&&typeof t=="object"}function UlA(t){return typeof t=="symbol"||vVA(t)&&fVA.call(t)==XqA}function MVA(t){if(!t)return t===0?t:0;if(t=kVA(t),t===DU||t===-DU){var e=t<0?-1:1;return e*WqA}return t===t?t:0}function bVA(t){var e=MVA(t),A=e%1;return e===e?A?e-A:e:0}function kVA(t){if(typeof t=="number")return t;if(UlA(t))return plA;if(MlA(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=MlA(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=t.replace($qA,"");var A=eVA.test(t);return A||tVA.test(t)?cVA(t.slice(2),A?2:8):AVA.test(t)?plA:+t}function SVA(t){return t==null?"":KlA(t)}function RVA(t,e,A){t=SVA(t),e=bVA(e);var i=e?GlA(t):0;return e&&i{"use strict";TlA.exports=(t,e,A,i)=>{let n=(t+(i||"")).toString().includes("%");if(typeof t=="string"?[t,e,A,i]=t.match(/(0?\.?\d{1,3})%?\b/g).map(Number):i!==void 0&&(i=parseFloat(i)),typeof t!="number"||typeof e!="number"||typeof A!="number"||t>255||e>255||A>255)throw new TypeError("Expected three numbers below 256");if(typeof i=="number"){if(!n&&i>=0&&i<=1)i=Math.round(255*i);else if(n&&i>=0&&i<=100)i=Math.round(255*i/100);else throw new TypeError(`Expected alpha value (${i}) as a fraction or percentage`);i=(i|256).toString(16).slice(1)}else i="";return(A|e<<8|t<<16|1<<24).toString(16).slice(1)+i}});var zlA=He((CLe,OlA)=>{"use strict";var Lf="a-f\\d",LVA=`#?[${Lf}]{3}[${Lf}]?`,xVA=`#?[${Lf}]{6}([${Lf}]{2})?`,NVA=new RegExp(`[^#${Lf}]`,"gi"),FVA=new RegExp(`^${LVA}$|^${xVA}$`,"i");OlA.exports=(t,e={})=>{if(typeof t!="string"||NVA.test(t)||!FVA.test(t))throw new TypeError("Expected a valid hex string");t=t.replace(/^#/,"");let A=1;t.length===8&&(A=Number.parseInt(t.slice(6,8),16)/255,t=t.slice(0,6)),t.length===4&&(A=Number.parseInt(t.slice(3,4).repeat(2),16)/255,t=t.slice(0,3)),t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let i=Number.parseInt(t,16),n=i>>16,o=i>>8&255,r=i&255,s=typeof e.alpha=="number"?e.alpha:A;if(e.format==="array")return[n,o,r,s];if(e.format==="css"){let a=s===1?"":` / ${Number((s*100).toFixed(2))}%`;return`rgb(${n} ${o} ${r}${a})`}return{red:n,green:o,blue:r,alpha:s}}});var qlA=He((dLe,jlA)=>{"use strict";var _VA=GgA(),GVA=olA(),KVA=mlA(),UVA=YlA(),JVA=HlA(),PlA=zlA(),kU=.75,SU=.25,RU=16777215,YVA=49979693;jlA.exports=function(t){return"#"+OVA(String(JSON.stringify(t)))};function TVA(t){var e=GVA(t),A=[];return e.forEach(function(i){var n=_VA(i);n&&A.push(PlA(KVA(n,"#"),{format:"array"}))}),A}function HVA(t){var e=[0,0,0];return t.forEach(function(A){for(var i=0;i<3;i++)e[i]+=A[i]}),[e[0]/t.length,e[1]/t.length,e[2]/t.length]}function OVA(t){var e,A=TVA(t);A.length>0&&(e=HVA(A));var i=1,n=0,o=1;if(t.length>0)for(var r=0;rn&&(n=t[r].charCodeAt(0)),o=parseInt(RU/n),i=(i+t[r].charCodeAt(0)*o*YVA)%RU;var s=(i*t.length%RU).toString(16);s=UVA(s,6,s);var a=PlA(s,{format:"array"});return e?JVA(SU*a[0]+kU*e[0],SU*a[1]+kU*e[1],SU*a[2]+kU*e[2]):s}});function vv(t,e){return Object.is(t,e)}var _r=null,Ff=!1,Mv=1,aa=Symbol("SIGNAL");function pi(t){let e=_r;return _r=t,e}function bv(){return _r}var Cd={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:"unknown",producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function eu(t){if(Ff)throw new Error("");if(_r===null)return;_r.consumerOnSignalRead(t);let e=_r.nextProducerIndex++;if(Jf(_r),e<_r.producerNode.length&&_r.producerNode[e]!==t&&Au(_r)){let A=_r.producerNode[e];Uf(A,_r.producerIndexOfThis[e])}_r.producerNode[e]!==t&&(_r.producerNode[e]=t,_r.producerIndexOfThis[e]=Au(_r)?_U(t,_r,e):0),_r.producerLastReadVersion[e]=t.version}function FU(){Mv++}function kv(t){if(!(Au(t)&&!t.dirty)&&!(!t.dirty&&t.lastCleanEpoch===Mv)){if(!t.producerMustRecompute(t)&&!Kf(t)){yv(t);return}t.producerRecomputeValue(t),yv(t)}}function Sv(t){if(t.liveConsumerNode===void 0)return;let e=Ff;Ff=!0;try{for(let A of t.liveConsumerNode)A.dirty||i0A(A)}finally{Ff=e}}function Rv(){return _r?.consumerAllowSignalWrites!==!1}function i0A(t){t.dirty=!0,Sv(t),t.consumerMarkedDirty?.(t)}function yv(t){t.dirty=!1,t.lastCleanEpoch=Mv}function tu(t){return t&&(t.nextProducerIndex=0),pi(t)}function Gf(t,e){if(pi(e),!(!t||t.producerNode===void 0||t.producerIndexOfThis===void 0||t.producerLastReadVersion===void 0)){if(Au(t))for(let A=t.nextProducerIndex;At.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function Kf(t){Jf(t);for(let e=0;e0}function Jf(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}function GU(t){t.liveConsumerNode??=[],t.liveConsumerIndexOfThis??=[]}function KU(t){return t.producerNode!==void 0}function Yf(t,e){let A=Object.create(n0A);A.computation=t,e!==void 0&&(A.equal=e);let i=()=>{if(kv(A),eu(A),A.value===_f)throw A.error;return A.value};return i[aa]=A,i}var Dv=Symbol("UNSET"),wv=Symbol("COMPUTING"),_f=Symbol("ERRORED"),n0A=Fe(sA({},Cd),{value:Dv,dirty:!0,error:null,equal:vv,kind:"computed",producerMustRecompute(t){return t.value===Dv||t.value===wv},producerRecomputeValue(t){if(t.value===wv)throw new Error("Detected cycle in computations.");let e=t.value;t.value=wv;let A=tu(t),i,n=!1;try{i=t.computation(),pi(null),n=e!==Dv&&e!==_f&&i!==_f&&t.equal(e,i)}catch(o){i=_f,t.error=o}finally{Gf(t,A)}if(n){t.value=e;return}t.value=i,t.version++}});function o0A(){throw new Error}var UU=o0A;function JU(t){UU(t)}function Lv(t){UU=t}var r0A=null;function xv(t,e){let A=Object.create(Tf);A.value=t,e!==void 0&&(A.equal=e);let i=()=>(eu(A),A.value);return i[aa]=A,i}function nu(t,e){Rv()||JU(t),t.equal(t.value,e)||(t.value=e,s0A(t))}function Nv(t,e){Rv()||JU(t),nu(t,e(t.value))}var Tf=Fe(sA({},Cd),{equal:vv,value:void 0,kind:"signal"});function s0A(t){t.version++,FU(),Sv(t),r0A?.()}function Fv(t){let e=pi(null);try{return t()}finally{pi(e)}}var _v;function ou(){return _v}function I0(t){let e=_v;return _v=t,e}var Hf=Symbol("NotFound");function Vt(t){return typeof t=="function"}function dd(t){let A=t(i=>{Error.call(i),i.stack=new Error().stack});return A.prototype=Object.create(Error.prototype),A.prototype.constructor=A,A}var Of=dd(t=>function(A){t(this),this.message=A?`${A.length} errors occurred during unsubscription: ${A.map((i,n)=>`${n+1}) ${i.toString()}`).join(` `)}`:"",this.name="UnsubscriptionError",this.errors=A});function QI(t,e){if(t){let A=t.indexOf(e);0<=A&&t.splice(A,1)}}var Kt=class t{constructor(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let e;if(!this.closed){this.closed=!0;let{_parentage:A}=this;if(A)if(this._parentage=null,Array.isArray(A))for(let o of A)o.remove(this);else A.remove(this);let{initialTeardown:i}=this;if(Vt(i))try{i()}catch(o){e=o instanceof Of?o.errors:[o]}let{_finalizers:n}=this;if(n){this._finalizers=null;for(let o of n)try{YU(o)}catch(r){e=e??[],r instanceof Of?e=[...e,...r.errors]:e.push(r)}}if(e)throw new Of(e)}}add(e){var A;if(e&&e!==this)if(this.closed)YU(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(A=this._finalizers)!==null&&A!==void 0?A:[]).push(e)}}_hasParent(e){let{_parentage:A}=this;return A===e||Array.isArray(A)&&A.includes(e)}_addParent(e){let{_parentage:A}=this;this._parentage=Array.isArray(A)?(A.push(e),A):A?[A,e]:e}_removeParent(e){let{_parentage:A}=this;A===e?this._parentage=null:Array.isArray(A)&&QI(A,e)}remove(e){let{_finalizers:A}=this;A&&QI(A,e),e instanceof t&&e._removeParent(this)}};Kt.EMPTY=(()=>{let t=new Kt;return t.closed=!0,t})();var Gv=Kt.EMPTY;function zf(t){return t instanceof Kt||t&&"closed"in t&&Vt(t.remove)&&Vt(t.add)&&Vt(t.unsubscribe)}function YU(t){Vt(t)?t():t.unsubscribe()}var rg={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var Bd={setTimeout(t,e,...A){let{delegate:i}=Bd;return i?.setTimeout?i.setTimeout(t,e,...A):setTimeout(t,e,...A)},clearTimeout(t){let{delegate:e}=Bd;return(e?.clearTimeout||clearTimeout)(t)},delegate:void 0};function Pf(t){Bd.setTimeout(()=>{let{onUnhandledError:e}=rg;if(e)e(t);else throw t})}function ru(){}var TU=Kv("C",void 0,void 0);function HU(t){return Kv("E",void 0,t)}function OU(t){return Kv("N",t,void 0)}function Kv(t,e,A){return{kind:t,value:e,error:A}}var uI=null;function Ed(t){if(rg.useDeprecatedSynchronousErrorHandling){let e=!uI;if(e&&(uI={errorThrown:!1,error:null}),t(),e){let{errorThrown:A,error:i}=uI;if(uI=null,A)throw i}}else t()}function zU(t){rg.useDeprecatedSynchronousErrorHandling&&uI&&(uI.errorThrown=!0,uI.error=t)}var C0=class extends Kt{constructor(e){super(),this.isStopped=!1,e?(this.destination=e,zf(e)&&e.add(this)):this.destination=C0A}static create(e,A,i){return new d0(e,A,i)}next(e){this.isStopped?Jv(OU(e),this):this._next(e)}error(e){this.isStopped?Jv(HU(e),this):(this.isStopped=!0,this._error(e))}complete(){this.isStopped?Jv(TU,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(e){this.destination.next(e)}_error(e){try{this.destination.error(e)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},l0A=Function.prototype.bind;function Uv(t,e){return l0A.call(t,e)}var Yv=class{constructor(e){this.partialObserver=e}next(e){let{partialObserver:A}=this;if(A.next)try{A.next(e)}catch(i){jf(i)}}error(e){let{partialObserver:A}=this;if(A.error)try{A.error(e)}catch(i){jf(i)}else jf(e)}complete(){let{partialObserver:e}=this;if(e.complete)try{e.complete()}catch(A){jf(A)}}},d0=class extends C0{constructor(e,A,i){super();let n;if(Vt(e)||!e)n={next:e??void 0,error:A??void 0,complete:i??void 0};else{let o;this&&rg.useDeprecatedNextContext?(o=Object.create(e),o.unsubscribe=()=>this.unsubscribe(),n={next:e.next&&Uv(e.next,o),error:e.error&&Uv(e.error,o),complete:e.complete&&Uv(e.complete,o)}):n=e}this.destination=new Yv(n)}};function jf(t){rg.useDeprecatedSynchronousErrorHandling?zU(t):Pf(t)}function I0A(t){throw t}function Jv(t,e){let{onStoppedNotification:A}=rg;A&&Bd.setTimeout(()=>A(t,e))}var C0A={closed:!0,next:ru,error:I0A,complete:ru};var Qd=typeof Symbol=="function"&&Symbol.observable||"@@observable";function Os(t){return t}function Tv(...t){return Hv(t)}function Hv(t){return t.length===0?Os:t.length===1?t[0]:function(A){return t.reduce((i,n)=>n(i),A)}}var gt=(()=>{class t{constructor(A){A&&(this._subscribe=A)}lift(A){let i=new t;return i.source=this,i.operator=A,i}subscribe(A,i,n){let o=B0A(A)?A:new d0(A,i,n);return Ed(()=>{let{operator:r,source:s}=this;o.add(r?r.call(o,s):s?this._subscribe(o):this._trySubscribe(o))}),o}_trySubscribe(A){try{return this._subscribe(A)}catch(i){A.error(i)}}forEach(A,i){return i=PU(i),new i((n,o)=>{let r=new d0({next:s=>{try{A(s)}catch(a){o(a),r.unsubscribe()}},error:o,complete:n});this.subscribe(r)})}_subscribe(A){var i;return(i=this.source)===null||i===void 0?void 0:i.subscribe(A)}[Qd](){return this}pipe(...A){return Hv(A)(this)}toPromise(A){return A=PU(A),new A((i,n)=>{let o;this.subscribe(r=>o=r,r=>n(r),()=>i(o))})}}return t.create=e=>new t(e),t})();function PU(t){var e;return(e=t??rg.Promise)!==null&&e!==void 0?e:Promise}function d0A(t){return t&&Vt(t.next)&&Vt(t.error)&&Vt(t.complete)}function B0A(t){return t&&t instanceof C0||d0A(t)&&zf(t)}function Ov(t){return Vt(t?.lift)}function ti(t){return e=>{if(Ov(e))return e.lift(function(A){try{return t(A,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function ei(t,e,A,i,n){return new zv(t,e,A,i,n)}var zv=class extends C0{constructor(e,A,i,n,o,r){super(e),this.onFinalize=o,this.shouldUnsubscribe=r,this._next=A?function(s){try{A(s)}catch(a){e.error(a)}}:super._next,this._error=n?function(s){try{n(s)}catch(a){e.error(a)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(s){e.error(s)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var e;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){let{closed:A}=this;super.unsubscribe(),!A&&((e=this.onFinalize)===null||e===void 0||e.call(this))}}};function ud(){return ti((t,e)=>{let A=null;t._refCount++;let i=ei(e,void 0,void 0,void 0,()=>{if(!t||t._refCount<=0||0<--t._refCount){A=null;return}let n=t._connection,o=A;A=null,n&&(!o||n===o)&&n.unsubscribe(),e.unsubscribe()});t.subscribe(i),i.closed||(A=t.connect())})}var C2=class extends gt{constructor(e,A){super(),this.source=e,this.subjectFactory=A,this._subject=null,this._refCount=0,this._connection=null,Ov(e)&&(this.lift=e.lift)}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){let e=this._subject;return(!e||e.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;let{_connection:e}=this;this._subject=this._connection=null,e?.unsubscribe()}connect(){let e=this._connection;if(!e){e=this._connection=new Kt;let A=this.getSubject();e.add(this.source.subscribe(ei(A,void 0,()=>{this._teardown(),A.complete()},i=>{this._teardown(),A.error(i)},()=>this._teardown()))),e.closed&&(this._connection=null,e=Kt.EMPTY)}return e}refCount(){return ud()(this)}};var jU=dd(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var qA=(()=>{class t extends gt{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(A){let i=new hd(this,this);return i.operator=A,i}_throwIfClosed(){if(this.closed)throw new jU}next(A){Ed(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let i of this.currentObservers)i.next(A)}})}error(A){Ed(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=A;let{observers:i}=this;for(;i.length;)i.shift().error(A)}})}complete(){Ed(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:A}=this;for(;A.length;)A.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var A;return((A=this.observers)===null||A===void 0?void 0:A.length)>0}_trySubscribe(A){return this._throwIfClosed(),super._trySubscribe(A)}_subscribe(A){return this._throwIfClosed(),this._checkFinalizedStatuses(A),this._innerSubscribe(A)}_innerSubscribe(A){let{hasError:i,isStopped:n,observers:o}=this;return i||n?Gv:(this.currentObservers=null,o.push(A),new Kt(()=>{this.currentObservers=null,QI(o,A)}))}_checkFinalizedStatuses(A){let{hasError:i,thrownError:n,isStopped:o}=this;i?A.error(n):o&&A.complete()}asObservable(){let A=new gt;return A.source=this,A}}return t.create=(e,A)=>new hd(e,A),t})(),hd=class extends qA{constructor(e,A){super(),this.destination=e,this.source=A}next(e){var A,i;(i=(A=this.destination)===null||A===void 0?void 0:A.next)===null||i===void 0||i.call(A,e)}error(e){var A,i;(i=(A=this.destination)===null||A===void 0?void 0:A.error)===null||i===void 0||i.call(A,e)}complete(){var e,A;(A=(e=this.destination)===null||e===void 0?void 0:e.complete)===null||A===void 0||A.call(e)}_subscribe(e){var A,i;return(i=(A=this.source)===null||A===void 0?void 0:A.subscribe(e))!==null&&i!==void 0?i:Gv}};var Fi=class extends qA{constructor(e){super(),this._value=e}get value(){return this.getValue()}_subscribe(e){let A=super._subscribe(e);return!A.closed&&e.next(this._value),A}getValue(){let{hasError:e,thrownError:A,_value:i}=this;if(e)throw A;return this._throwIfClosed(),i}next(e){super.next(this._value=e)}};var su={now(){return(su.delegate||Date).now()},delegate:void 0};var sg=class extends qA{constructor(e=1/0,A=1/0,i=su){super(),this._bufferSize=e,this._windowTime=A,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=A===1/0,this._bufferSize=Math.max(1,e),this._windowTime=Math.max(1,A)}next(e){let{isStopped:A,_buffer:i,_infiniteTimeWindow:n,_timestampProvider:o,_windowTime:r}=this;A||(i.push(e),!n&&i.push(o.now()+r)),this._trimBuffer(),super.next(e)}_subscribe(e){this._throwIfClosed(),this._trimBuffer();let A=this._innerSubscribe(e),{_infiniteTimeWindow:i,_buffer:n}=this,o=n.slice();for(let r=0;rt.complete());function Wf(t){return t&&Vt(t.schedule)}function Pv(t){return t[t.length-1]}function Xf(t){return Vt(Pv(t))?t.pop():void 0}function Al(t){return Wf(Pv(t))?t.pop():void 0}function VU(t,e){return typeof Pv(t)=="number"?t.pop():e}function WU(t,e,A,i){function n(o){return o instanceof A?o:new A(function(r){r(o)})}return new(A||(A=Promise))(function(o,r){function s(g){try{c(i.next(g))}catch(I){r(I)}}function a(g){try{c(i.throw(g))}catch(I){r(I)}}function c(g){g.done?o(g.value):n(g.value).then(s,a)}c((i=i.apply(t,e||[])).next())})}function ZU(t){var e=typeof Symbol=="function"&&Symbol.iterator,A=e&&t[e],i=0;if(A)return A.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function hI(t){return this instanceof hI?(this.v=t,this):new hI(t)}function XU(t,e,A){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=A.apply(t,e||[]),n,o=[];return n=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",r),n[Symbol.asyncIterator]=function(){return this},n;function r(d){return function(B){return Promise.resolve(B).then(d,I)}}function s(d,B){i[d]&&(n[d]=function(E){return new Promise(function(u,h){o.push([d,E,u,h])>1||a(d,E)})},B&&(n[d]=B(n[d])))}function a(d,B){try{c(i[d](B))}catch(E){C(o[0][3],E)}}function c(d){d.value instanceof hI?Promise.resolve(d.value.v).then(g,I):C(o[0][2],d)}function g(d){a("next",d)}function I(d){a("throw",d)}function C(d,B){d(B),o.shift(),o.length&&a(o[0][0],o[0][1])}}function $U(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],A;return e?e.call(t):(t=typeof ZU=="function"?ZU(t):t[Symbol.iterator](),A={},i("next"),i("throw"),i("return"),A[Symbol.asyncIterator]=function(){return this},A);function i(o){A[o]=t[o]&&function(r){return new Promise(function(s,a){r=t[o](r),n(s,a,r.done,r.value)})}}function n(o,r,s,a){Promise.resolve(a).then(function(c){o({value:c,done:s})},r)}}var md=t=>t&&typeof t.length=="number"&&typeof t!="function";function $f(t){return Vt(t?.then)}function Am(t){return Vt(t[Qd])}function em(t){return Symbol.asyncIterator&&Vt(t?.[Symbol.asyncIterator])}function tm(t){return new TypeError(`You provided ${t!==null&&typeof t=="object"?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}function E0A(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var im=E0A();function nm(t){return Vt(t?.[im])}function om(t){return XU(this,arguments,function*(){let A=t.getReader();try{for(;;){let{value:i,done:n}=yield hI(A.read());if(n)return yield hI(void 0);yield yield hI(i)}}finally{A.releaseLock()}})}function rm(t){return Vt(t?.getReader)}function Wn(t){if(t instanceof gt)return t;if(t!=null){if(Am(t))return Q0A(t);if(md(t))return u0A(t);if($f(t))return h0A(t);if(em(t))return AJ(t);if(nm(t))return f0A(t);if(rm(t))return m0A(t)}throw tm(t)}function Q0A(t){return new gt(e=>{let A=t[Qd]();if(Vt(A.subscribe))return A.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function u0A(t){return new gt(e=>{for(let A=0;A{t.then(A=>{e.closed||(e.next(A),e.complete())},A=>e.error(A)).then(null,Pf)})}function f0A(t){return new gt(e=>{for(let A of t)if(e.next(A),e.closed)return;e.complete()})}function AJ(t){return new gt(e=>{p0A(t,e).catch(A=>e.error(A))})}function m0A(t){return AJ(om(t))}function p0A(t,e){var A,i,n,o;return WU(this,void 0,void 0,function*(){try{for(A=$U(t);i=yield A.next(),!i.done;){let r=i.value;if(e.next(r),e.closed)return}}catch(r){n={error:r}}finally{try{i&&!i.done&&(o=A.return)&&(yield o.call(A))}finally{if(n)throw n.error}}e.complete()})}function ca(t,e,A,i=0,n=!1){let o=e.schedule(function(){A(),n?t.add(this.schedule(null,i)):this.unsubscribe()},i);if(t.add(o),!n)return o}function sm(t,e=0){return ti((A,i)=>{A.subscribe(ei(i,n=>ca(i,t,()=>i.next(n),e),()=>ca(i,t,()=>i.complete(),e),n=>ca(i,t,()=>i.error(n),e)))})}function am(t,e=0){return ti((A,i)=>{i.add(t.schedule(()=>A.subscribe(i),e))})}function eJ(t,e){return Wn(t).pipe(am(e),sm(e))}function tJ(t,e){return Wn(t).pipe(am(e),sm(e))}function iJ(t,e){return new gt(A=>{let i=0;return e.schedule(function(){i===t.length?A.complete():(A.next(t[i++]),A.closed||this.schedule())})})}function nJ(t,e){return new gt(A=>{let i;return ca(A,e,()=>{i=t[im](),ca(A,e,()=>{let n,o;try{({value:n,done:o}=i.next())}catch(r){A.error(r);return}o?A.complete():A.next(n)},0,!0)}),()=>Vt(i?.return)&&i.return()})}function cm(t,e){if(!t)throw new Error("Iterable cannot be null");return new gt(A=>{ca(A,e,()=>{let i=t[Symbol.asyncIterator]();ca(A,e,()=>{i.next().then(n=>{n.done?A.complete():A.next(n.value)})},0,!0)})})}function oJ(t,e){return cm(om(t),e)}function rJ(t,e){if(t!=null){if(Am(t))return eJ(t,e);if(md(t))return iJ(t,e);if($f(t))return tJ(t,e);if(em(t))return cm(t,e);if(nm(t))return nJ(t,e);if(rm(t))return oJ(t,e)}throw tm(t)}function ro(t,e){return e?rJ(t,e):Wn(t)}function Ce(...t){let e=Al(t);return ro(t,e)}function d2(t,e){let A=Vt(t)?t:()=>t,i=n=>n.error(A());return new gt(e?n=>e.schedule(i,0,n):i)}function B2(t){return!!t&&(t instanceof gt||Vt(t.lift)&&Vt(t.subscribe))}var B0=dd(t=>function(){t(this),this.name="EmptyError",this.message="no elements in sequence"});function sJ(t){return t instanceof Date&&!isNaN(t)}function je(t,e){return ti((A,i)=>{let n=0;A.subscribe(ei(i,o=>{i.next(t.call(e,o,n++))}))})}var{isArray:D0A}=Array;function w0A(t,e){return D0A(e)?t(...e):t(e)}function pd(t){return je(e=>w0A(t,e))}var{isArray:y0A}=Array,{getPrototypeOf:v0A,prototype:M0A,keys:b0A}=Object;function gm(t){if(t.length===1){let e=t[0];if(y0A(e))return{args:e,keys:null};if(k0A(e)){let A=b0A(e);return{args:A.map(i=>e[i]),keys:A}}}return{args:t,keys:null}}function k0A(t){return t&&typeof t=="object"&&v0A(t)===M0A}function lm(t,e){return t.reduce((A,i,n)=>(A[i]=e[n],A),{})}function ga(...t){let e=Al(t),A=Xf(t),{args:i,keys:n}=gm(t);if(i.length===0)return ro([],e);let o=new gt(S0A(i,e,n?r=>lm(n,r):Os));return A?o.pipe(pd(A)):o}function S0A(t,e,A=Os){return i=>{aJ(e,()=>{let{length:n}=t,o=new Array(n),r=n,s=n;for(let a=0;a{let c=ro(t[a],e),g=!1;c.subscribe(ei(i,I=>{o[a]=I,g||(g=!0,s--),s||i.next(A(o.slice()))},()=>{--r||i.complete()}))},i)},i)}}function aJ(t,e,A){t?ca(A,t,e):e()}function cJ(t,e,A,i,n,o,r,s){let a=[],c=0,g=0,I=!1,C=()=>{I&&!a.length&&!c&&e.complete()},d=E=>c{o&&e.next(E),c++;let u=!1;Wn(A(E,g++)).subscribe(ei(e,h=>{n?.(h),o?d(h):e.next(h)},()=>{u=!0},void 0,()=>{if(u)try{for(c--;a.length&&cB(h)):B(h)}C()}catch(h){e.error(h)}}))};return t.subscribe(ei(e,d,()=>{I=!0,C()})),()=>{s?.()}}function or(t,e,A=1/0){return Vt(e)?or((i,n)=>je((o,r)=>e(i,o,n,r))(Wn(t(i,n))),A):(typeof e=="number"&&(A=e),ti((i,n)=>cJ(i,n,t,A)))}function E2(t=1/0){return or(Os,t)}function gJ(){return E2(1)}function Q2(...t){return gJ()(ro(t,Al(t)))}function el(t){return new gt(e=>{Wn(t()).subscribe(e)})}function gu(...t){let e=Xf(t),{args:A,keys:i}=gm(t),n=new gt(o=>{let{length:r}=A;if(!r){o.complete();return}let s=new Array(r),a=r,c=r;for(let g=0;g{I||(I=!0,c--),s[g]=C},()=>a--,void 0,()=>{(!a||!I)&&(c||o.next(i?lm(i,s):s),o.complete())}))}});return e?n.pipe(pd(e)):n}var R0A=["addListener","removeListener"],L0A=["addEventListener","removeEventListener"],x0A=["on","off"];function lu(t,e,A,i){if(Vt(A)&&(i=A,A=void 0),i)return lu(t,e,A).pipe(pd(i));let[n,o]=_0A(t)?L0A.map(r=>s=>t[r](e,s,A)):N0A(t)?R0A.map(lJ(t,e)):F0A(t)?x0A.map(lJ(t,e)):[];if(!n&&md(t))return or(r=>lu(r,e,A))(Wn(t));if(!n)throw new TypeError("Invalid event target");return new gt(r=>{let s=(...a)=>r.next(1o(s)})}function lJ(t,e){return A=>i=>t[A](e,i)}function N0A(t){return Vt(t.addListener)&&Vt(t.removeListener)}function F0A(t){return Vt(t.on)&&Vt(t.off)}function _0A(t){return Vt(t.addEventListener)&&Vt(t.removeEventListener)}function fI(t=0,e,A=qU){let i=-1;return e!=null&&(Wf(e)?A=e:i=e),new gt(n=>{let o=sJ(t)?+t-A.now():t;o<0&&(o=0);let r=0;return A.schedule(function(){n.closed||(n.next(r++),0<=i?this.schedule(void 0,i):n.complete())},o)})}function Hn(...t){let e=Al(t),A=VU(t,1/0),i=t;return i.length?i.length===1?Wn(i[0]):E2(A)(ro(i,e)):lr}function Nt(t,e){return ti((A,i)=>{let n=0;A.subscribe(ei(i,o=>t.call(e,o,n++)&&i.next(o)))})}function IJ(t){return ti((e,A)=>{let i=!1,n=null,o=null,r=!1,s=()=>{if(o?.unsubscribe(),o=null,i){i=!1;let c=n;n=null,A.next(c)}r&&A.complete()},a=()=>{o=null,r&&A.complete()};e.subscribe(ei(A,c=>{i=!0,n=c,o||Wn(t(c)).subscribe(o=ei(A,s,a))},()=>{r=!0,(!i||!o||o.closed)&&A.complete()}))})}function Dd(t,e=cu){return IJ(()=>fI(t,e))}function Gr(t){return ti((e,A)=>{let i=null,n=!1,o;i=e.subscribe(ei(A,void 0,void 0,r=>{o=Wn(t(r,Gr(t)(e))),i?(i.unsubscribe(),i=null,o.subscribe(A)):n=!0})),n&&(i.unsubscribe(),i=null,o.subscribe(A))})}function CJ(t,e,A,i,n){return(o,r)=>{let s=A,a=e,c=0;o.subscribe(ei(r,g=>{let I=c++;a=s?t(a,g,I):(s=!0,g),i&&r.next(a)},n&&(()=>{s&&r.next(a),r.complete()})))}}function tl(t,e){return Vt(e)?or(t,e,1):or(t,1)}function ag(t,e=cu){return ti((A,i)=>{let n=null,o=null,r=null,s=()=>{if(n){n.unsubscribe(),n=null;let c=o;o=null,i.next(c)}};function a(){let c=r+t,g=e.now();if(g{o=c,r=e.now(),n||(n=e.schedule(a,t),i.add(n))},()=>{s(),i.complete()},void 0,()=>{o=n=null}))})}function u2(t){return ti((e,A)=>{let i=!1;e.subscribe(ei(A,n=>{i=!0,A.next(n)},()=>{i||A.next(t),A.complete()}))})}function Xn(t){return t<=0?()=>lr:ti((e,A)=>{let i=0;e.subscribe(ei(A,n=>{++i<=t&&(A.next(n),t<=i&&A.complete())}))})}function wd(t){return je(()=>t)}function il(t,e=Os){return t=t??G0A,ti((A,i)=>{let n,o=!0;A.subscribe(ei(i,r=>{let s=e(r);(o||!t(n,s))&&(o=!1,n=s,i.next(r))}))})}function G0A(t,e){return t===e}function Im(t=K0A){return ti((e,A)=>{let i=!1;e.subscribe(ei(A,n=>{i=!0,A.next(n)},()=>i?A.complete():A.error(t())))})}function K0A(){return new B0}function nl(t){return ti((e,A)=>{try{e.subscribe(A)}finally{A.add(t)}})}function ol(t,e){let A=arguments.length>=2;return i=>i.pipe(t?Nt((n,o)=>t(n,o,i)):Os,Xn(1),A?u2(e):Im(()=>new B0))}function yd(t){return t<=0?()=>lr:ti((e,A)=>{let i=[];e.subscribe(ei(A,n=>{i.push(n),t{for(let n of i)A.next(n);A.complete()},void 0,()=>{i=null}))})}function jv(t,e){let A=arguments.length>=2;return i=>i.pipe(t?Nt((n,o)=>t(n,o,i)):Os,yd(1),A?u2(e):Im(()=>new B0))}function Cm(){return ti((t,e)=>{let A,i=!1;t.subscribe(ei(e,n=>{let o=A;A=n,i&&e.next([o,n]),i=!0}))})}function qv(t,e){return ti(CJ(t,e,arguments.length>=2,!0))}function Iu(t={}){let{connector:e=()=>new qA,resetOnError:A=!0,resetOnComplete:i=!0,resetOnRefCountZero:n=!0}=t;return o=>{let r,s,a,c=0,g=!1,I=!1,C=()=>{s?.unsubscribe(),s=void 0},d=()=>{C(),r=a=void 0,g=I=!1},B=()=>{let E=r;d(),E?.unsubscribe()};return ti((E,u)=>{c++,!I&&!g&&C();let h=a=a??e();u.add(()=>{c--,c===0&&!I&&!g&&(s=Vv(B,n))}),h.subscribe(u),!r&&c>0&&(r=new d0({next:w=>h.next(w),error:w=>{I=!0,C(),s=Vv(d,A,w),h.error(w)},complete:()=>{g=!0,C(),s=Vv(d,i),h.complete()}}),Wn(E).subscribe(r))})(o)}}function Vv(t,e,...A){if(e===!0){t();return}if(e===!1)return;let i=new d0({next:()=>{i.unsubscribe(),t()}});return Wn(e(...A)).subscribe(i)}function h2(t,e,A){let i,n=!1;return t&&typeof t=="object"?{bufferSize:i=1/0,windowTime:e=1/0,refCount:n=!1,scheduler:A}=t:i=t??1/0,Iu({connector:()=>new sg(i,e,A),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:n})}function mI(t){return Nt((e,A)=>t<=A)}function On(...t){let e=Al(t);return ti((A,i)=>{(e?Q2(t,A,e):Q2(t,A)).subscribe(i)})}function $n(t,e){return ti((A,i)=>{let n=null,o=0,r=!1,s=()=>r&&!n&&i.complete();A.subscribe(ei(i,a=>{n?.unsubscribe();let c=0,g=o++;Wn(t(a,g)).subscribe(n=ei(i,I=>i.next(e?e(a,I,g,c++):I),()=>{n=null,s()}))},()=>{r=!0,s()}))})}function kt(t){return ti((e,A)=>{Wn(t).subscribe(ei(A,()=>A.complete(),ru)),!A.closed&&e.subscribe(A)})}function Zv(t,e=!1){return ti((A,i)=>{let n=0;A.subscribe(ei(i,o=>{let r=t(o,n++);(r||e)&&i.next(o),!r&&i.complete()}))})}function So(t,e,A){let i=Vt(t)||e||A?{next:t,error:e,complete:A}:t;return i?ti((n,o)=>{var r;(r=i.subscribe)===null||r===void 0||r.call(i);let s=!0;n.subscribe(ei(o,a=>{var c;(c=i.next)===null||c===void 0||c.call(i,a),o.next(a)},()=>{var a;s=!1,(a=i.complete)===null||a===void 0||a.call(i),o.complete()},a=>{var c;s=!1,(c=i.error)===null||c===void 0||c.call(i,a),o.error(a)},()=>{var a,c;s&&((a=i.unsubscribe)===null||a===void 0||a.call(i)),(c=i.finalize)===null||c===void 0||c.call(i)}))}):Os}var rY="https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss",te=class extends Error{code;constructor(e,A){super(Xm(e,A)),this.code=e}};function U0A(t){return`NG0${Math.abs(t)}`}function Xm(t,e){return`${U0A(t)}${e?": "+e:""}`}var sY=Symbol("InputSignalNode#UNSET"),J0A=Fe(sA({},Tf),{transformFn:void 0,applyValueToInputSignal(t,e){nu(t,e)}});function aY(t,e){let A=Object.create(J0A);A.value=t,A.transformFn=e?.transform;function i(){if(eu(A),A.value===sY){let n=null;throw new te(-950,n)}return A.value}return i[aa]=A,i}function wu(t){return{toString:t}.toString()}var dm="__parameters__";function Y0A(t){return function(...A){if(t){let i=t(...A);for(let n in i)this[n]=i[n]}}}function cY(t,e,A){return wu(()=>{let i=Y0A(e);function n(...o){if(this instanceof n)return i.apply(this,o),this;let r=new n(...o);return s.annotation=r,s;function s(a,c,g){let I=a.hasOwnProperty(dm)?a[dm]:Object.defineProperty(a,dm,{value:[]})[dm];for(;I.length<=g;)I.push(null);return(I[g]=I[g]||[]).push(r),a}}return n.prototype.ngMetadataName=t,n.annotationCls=n,n})}var Pa=globalThis;function fo(t){for(let e in t)if(t[e]===fo)return e;throw Error("Could not find renamed property on target object.")}function T0A(t,e){for(let A in e)e.hasOwnProperty(A)&&!t.hasOwnProperty(A)&&(t[A]=e[A])}function Ia(t){if(typeof t=="string")return t;if(Array.isArray(t))return`[${t.map(Ia).join(", ")}]`;if(t==null)return""+t;let e=t.overriddenName||t.name;if(e)return`${e}`;let A=t.toString();if(A==null)return""+A;let i=A.indexOf(` `);return i>=0?A.slice(0,i):A}function l9(t,e){return t?e?`${t} ${e}`:t:e||""}var H0A=fo({__forward_ref__:fo});function Ur(t){return t.__forward_ref__=Ur,t.toString=function(){return Ia(this())},t}function cs(t){return gY(t)?t():t}function gY(t){return typeof t=="function"&&t.hasOwnProperty(H0A)&&t.__forward_ref__===Ur}function bA(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function Ve(t){return{providers:t.providers||[],imports:t.imports||[]}}function $m(t){return dJ(t,IY)||dJ(t,CY)}function lY(t){return $m(t)!==null}function dJ(t,e){return t.hasOwnProperty(e)?t[e]:null}function O0A(t){let e=t&&(t[IY]||t[CY]);return e||null}function BJ(t){return t&&(t.hasOwnProperty(EJ)||t.hasOwnProperty(z0A))?t[EJ]:null}var IY=fo({\u0275prov:fo}),EJ=fo({\u0275inj:fo}),CY=fo({ngInjectableDef:fo}),z0A=fo({ngInjectorDef:fo}),eA=class{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(e,A){this._desc=e,this.\u0275prov=void 0,typeof A=="number"?this.__NG_ELEMENT_ID__=A:A!==void 0&&(this.\u0275prov=bA({token:this,providedIn:A.providedIn||"root",factory:A.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}};function dY(t){return t&&!!t.\u0275providers}var P0A=fo({\u0275cmp:fo}),j0A=fo({\u0275dir:fo}),q0A=fo({\u0275pipe:fo}),V0A=fo({\u0275mod:fo}),ym=fo({\u0275fac:fo}),Eu=fo({__NG_ELEMENT_ID__:fo}),QJ=fo({__NG_ENV_ID__:fo});function wI(t){return typeof t=="string"?t:t==null?"":String(t)}function Z0A(t){return typeof t=="function"?t.name||t.toString():typeof t=="object"&&t!=null&&typeof t.type=="function"?t.type.name||t.type.toString():wI(t)}function BY(t,e){throw new te(-200,t)}function DM(t,e){throw new te(-201,!1)}var bi=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(bi||{}),I9;function EY(){return I9}function la(t){let e=I9;return I9=t,e}function QY(t,e,A){let i=$m(t);if(i&&i.providedIn=="root")return i.value===void 0?i.value=i.factory():i.value;if(A&bi.Optional)return null;if(e!==void 0)return e;DM(t,"Injector")}var W0A={},pI=W0A,C9="__NG_DI_FLAG__",vm=class{injector;constructor(e){this.injector=e}retrieve(e,A){let i=A;return this.injector.get(e,i.optional?Hf:pI,i)}},Mm="ngTempTokenPath",X0A="ngTokenPath",$0A=/\n/gm,A2A="\u0275",uJ="__source";function e2A(t,e=bi.Default){if(ou()===void 0)throw new te(-203,!1);if(ou()===null)return QY(t,void 0,e);{let A=ou(),i;return A instanceof vm?i=A.injector:i=A,i.get(t,e&bi.Optional?null:void 0,e)}}function be(t,e=bi.Default){return(EY()||e2A)(cs(t),e)}function f(t,e=bi.Default){return be(t,Ap(e))}function Ap(t){return typeof t>"u"||typeof t=="number"?t:0|(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function d9(t){let e=[];for(let A=0;A ");else if(typeof e=="object"){let o=[];for(let r in e)if(e.hasOwnProperty(r)){let s=e[r];o.push(r+":"+(typeof s=="string"?JSON.stringify(s):Ia(s)))}n=`{${o.join(", ")}}`}return`${A}${i?"("+i+")":""}[${n}]: ${t.replace($0A,` - `)}`}var Yd=uY(cY("Optional"),8);var ep=uY(cY("SkipSelf"),4);function yI(t,e){let A=t.hasOwnProperty(ym);return A?t[ym]:null}function o2A(t,e,A){if(t.length!==e.length)return!1;for(let i=0;iArray.isArray(A)?wM(A,e):e(A))}function hY(t,e,A){e>=t.length?t.push(A):t.splice(e,0,A)}function bm(t,e){return e>=t.length-1?t.pop():t.splice(e,1)[0]}function s2A(t,e){let A=[];for(let i=0;ie;){let o=n-2;t[n]=t[o],n--}t[e]=A,t[e+1]=i}}function tp(t,e,A){let i=yu(t,e);return i>=0?t[i|1]=A:(i=~i,a2A(t,i,e,A)),i}function Wv(t,e){let A=yu(t,e);if(A>=0)return t[A|1]}function yu(t,e){return c2A(t,e,1)}function c2A(t,e,A){let i=0,n=t.length>>A;for(;n!==i;){let o=i+(n-i>>1),r=t[o<e?n=o:i=o+1}return~(n<{A.push(r)};return wM(e,r=>{let s=r;B9(s,o,[],i)&&(n||=[],n.push(s))}),n!==void 0&&yY(n,o),A}function yY(t,e){for(let A=0;A{e(o,i)})}}function B9(t,e,A,i){if(t=cs(t),!t)return!1;let n=null,o=BJ(t),r=!o&&p2(t);if(!o&&!r){let a=t.ngModule;if(o=BJ(a),o)n=a;else return!1}else{if(r&&!r.standalone)return!1;n=t}let s=i.has(n);if(r){if(s)return!1;if(i.add(n),r.dependencies){let a=typeof r.dependencies=="function"?r.dependencies():r.dependencies;for(let c of a)B9(c,e,A,i)}}else if(o){if(o.imports!=null&&!s){i.add(n);let c;try{wM(o.imports,g=>{B9(g,e,A,i)&&(c||=[],c.push(g))})}finally{}c!==void 0&&yY(c,e)}if(!s){let c=yI(n)||(()=>new n);e({provide:n,useFactory:c,deps:zs},n),e({provide:mY,useValue:n,multi:!0},n),e({provide:Ld,useValue:()=>be(n),multi:!0},n)}let a=o.providers;if(a!=null&&!s){let c=t;vM(a,g=>{e(g,c)})}}else return!1;return n!==t&&t.providers!==void 0}function vM(t,e){for(let A of t)dY(A)&&(A=A.\u0275providers),Array.isArray(A)?vM(A,e):e(A)}var l2A=fo({provide:String,useValue:fo});function vY(t){return t!==null&&typeof t=="object"&&l2A in t}function I2A(t){return!!(t&&t.useExisting)}function C2A(t){return!!(t&&t.useFactory)}function xd(t){return typeof t=="function"}function d2A(t){return!!t.useClass}var ip=new eA(""),hm={},hJ={},Xv;function np(){return Xv===void 0&&(Xv=new km),Xv}var vr=class{},Qu=class extends vr{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(e,A,i,n){super(),this.parent=A,this.source=i,this.scopes=n,Q9(e,r=>this.processProvider(r)),this.records.set(fY,vd(void 0,this)),n.has("environment")&&this.records.set(vr,vd(void 0,this));let o=this.records.get(ip);o!=null&&typeof o.value=="string"&&this.scopes.add(o.value),this.injectorDefTypes=new Set(this.get(mY,zs,bi.Self))}retrieve(e,A){let i=A;return this.get(e,i.optional?Hf:pI,i)}destroy(){du(this),this._destroyed=!0;let e=pi(null);try{for(let i of this._ngOnDestroyHooks)i.ngOnDestroy();let A=this._onDestroyHooks;this._onDestroyHooks=[];for(let i of A)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),pi(e)}}onDestroy(e){return du(this),this._onDestroyHooks.push(e),()=>this.removeOnDestroy(e)}runInContext(e){du(this);let A=I0(this),i=la(void 0),n;try{return e()}finally{I0(A),la(i)}}get(e,A=pI,i=bi.Default){if(du(this),e.hasOwnProperty(QJ))return e[QJ](this);i=Ap(i);let n,o=I0(this),r=la(void 0);try{if(!(i&bi.SkipSelf)){let a=this.records.get(e);if(a===void 0){let c=h2A(e)&&$m(e);c&&this.injectableDefInScope(c)?a=vd(E9(e),hm):a=null,this.records.set(e,a)}if(a!=null)return this.hydrate(e,a,i)}let s=i&bi.Self?np():this.parent;return A=i&bi.Optional&&A===pI?null:A,s.get(e,A)}catch(s){if(s.name==="NullInjectorError"){if((s[Mm]=s[Mm]||[]).unshift(Ia(e)),o)throw s;return i2A(s,e,"R3InjectorError",this.source)}else throw s}finally{la(r),I0(o)}}resolveInjectorInitializers(){let e=pi(null),A=I0(this),i=la(void 0),n;try{let o=this.get(Ld,zs,bi.Self);for(let r of o)r()}finally{I0(A),la(i),pi(e)}}toString(){let e=[],A=this.records;for(let i of A.keys())e.push(Ia(i));return`R3Injector[${e.join(", ")}]`}processProvider(e){e=cs(e);let A=xd(e)?e:cs(e&&e.provide),i=E2A(e);if(!xd(e)&&e.multi===!0){let n=this.records.get(A);n||(n=vd(void 0,hm,!0),n.factory=()=>d9(n.multi),this.records.set(A,n)),A=e,n.multi.push(e)}this.records.set(A,i)}hydrate(e,A,i){let n=pi(null);try{return A.value===hJ?BY(Ia(e)):A.value===hm&&(A.value=hJ,A.value=A.factory(void 0,i)),typeof A.value=="object"&&A.value&&u2A(A.value)&&this._ngOnDestroyHooks.add(A.value),A.value}finally{pi(n)}}injectableDefInScope(e){if(!e.providedIn)return!1;let A=cs(e.providedIn);return typeof A=="string"?A==="any"||this.scopes.has(A):this.injectorDefTypes.has(A)}removeOnDestroy(e){let A=this._onDestroyHooks.indexOf(e);A!==-1&&this._onDestroyHooks.splice(A,1)}};function E9(t){let e=$m(t),A=e!==null?e.factory:yI(t);if(A!==null)return A;if(t instanceof eA)throw new te(204,!1);if(t instanceof Function)return B2A(t);throw new te(204,!1)}function B2A(t){if(t.length>0)throw new te(204,!1);let A=O0A(t);return A!==null?()=>A.factory(t):()=>new t}function E2A(t){if(vY(t))return vd(void 0,t.useValue);{let e=MY(t);return vd(e,hm)}}function MY(t,e,A){let i;if(xd(t)){let n=cs(t);return yI(n)||E9(n)}else if(vY(t))i=()=>cs(t.useValue);else if(C2A(t))i=()=>t.useFactory(...d9(t.deps||[]));else if(I2A(t))i=(n,o)=>be(cs(t.useExisting),o!==void 0&&o&bi.Optional?bi.Optional:void 0);else{let n=cs(t&&(t.useClass||t.provide));if(Q2A(t))i=()=>new n(...d9(t.deps));else return yI(n)||E9(n)}return i}function du(t){if(t.destroyed)throw new te(205,!1)}function vd(t,e,A=!1){return{factory:t,value:e,multi:A?[]:void 0}}function Q2A(t){return!!t.deps}function u2A(t){return t!==null&&typeof t=="object"&&typeof t.ngOnDestroy=="function"}function h2A(t){return typeof t=="function"||typeof t=="object"&&t instanceof eA}function Q9(t,e){for(let A of t)Array.isArray(A)?Q9(A,e):A&&dY(A)?Q9(A.\u0275providers,e):e(A)}function da(t,e){let A;t instanceof Qu?(du(t),A=t):A=new vm(t);let i,n=I0(A),o=la(void 0);try{return e()}finally{I0(n),la(o)}}function MM(){return EY()!==void 0||ou()!=null}function bM(t){if(!MM())throw new te(-203,!1)}function f2A(t){return typeof t=="function"}var Cl=0,hi=1,ii=2,vs=3,lg=4,Ba=5,Nd=6,Sm=7,Kr=8,Fd=9,E0=10,Jo=11,uu=12,fJ=13,Td=14,ja=15,vI=16,Md=17,Q0=18,op=19,bY=20,f2=21,$v=22,MI=23,wc=24,Sd=25,Qr=26,kM=1;var bI=7,Rm=8,_d=9,ys=10;function m2(t){return Array.isArray(t)&&typeof t[kM]=="object"}function h0(t){return Array.isArray(t)&&t[kM]===!0}function SM(t){return(t.flags&4)!==0}function Hd(t){return t.componentOffset>-1}function rp(t){return(t.flags&1)===1}function Ig(t){return!!t.template}function Lm(t){return(t[ii]&512)!==0}function Od(t){return(t[ii]&256)===256}var u9=class{previousValue;currentValue;firstChange;constructor(e,A,i){this.previousValue=e,this.currentValue=A,this.firstChange=i}isFirstChange(){return this.firstChange}};function kY(t,e,A,i){e!==null?e.applyValueToInputSignal(e,i):t[A]=i}var Xt=(()=>{let t=()=>SY;return t.ngInherit=!0,t})();function SY(t){return t.type.prototype.ngOnChanges&&(t.setInput=p2A),m2A}function m2A(){let t=LY(this),e=t?.current;if(e){let A=t.previous;if(A===sl)t.previous=e;else for(let i in e)A[i]=e[i];t.current=null,this.ngOnChanges(e)}}function p2A(t,e,A,i,n){let o=this.declaredInputs[i],r=LY(t)||D2A(t,{previous:sl,current:null}),s=r.current||(r.current={}),a=r.previous,c=a[o];s[o]=new u9(c&&c.currentValue,A,a===sl),kY(t,e,n,A)}var RY="__ngSimpleChanges__";function LY(t){return t[RY]||null}function D2A(t,e){return t[RY]=e}var mJ=null;var so=function(t,e=null,A){mJ?.(t,e,A)},xY="svg",w2A="math";function al(t){for(;Array.isArray(t);)t=t[Cl];return t}function y2A(t){for(;Array.isArray(t);){if(typeof t[kM]=="object")return t;t=t[Cl]}return null}function NY(t,e){return al(e[t])}function dl(t,e){return al(e[t.index])}function RM(t,e){return t.data[e]}function sp(t,e){return t[e]}function LM(t,e,A,i){A>=t.data.length&&(t.data[A]=null,t.blueprint[A]=null),e[A]=i}function cl(t,e){let A=e[t];return m2(A)?A:A[Cl]}function v2A(t){return(t[ii]&4)===4}function xM(t){return(t[ii]&128)===128}function M2A(t){return h0(t[vs])}function D2(t,e){return e==null?null:t[e]}function FY(t){t[Md]=0}function _Y(t){t[ii]&1024||(t[ii]|=1024,xM(t)&&zd(t))}function b2A(t,e){for(;t>0;)e=e[Td],t--;return e}function ap(t){return!!(t[ii]&9216||t[wc]?.dirty)}function h9(t){t[E0].changeDetectionScheduler?.notify(8),t[ii]&64&&(t[ii]|=1024),ap(t)&&zd(t)}function zd(t){t[E0].changeDetectionScheduler?.notify(0);let e=kI(t);for(;e!==null&&!(e[ii]&8192||(e[ii]|=8192,!xM(e)));)e=kI(e)}function GY(t,e){if(Od(t))throw new te(911,!1);t[f2]===null&&(t[f2]=[]),t[f2].push(e)}function k2A(t,e){if(t[f2]===null)return;let A=t[f2].indexOf(e);A!==-1&&t[f2].splice(A,1)}function kI(t){let e=t[vs];return h0(e)?e[vs]:e}function NM(t){return t[Sm]??=[]}function FM(t){return t.cleanup??=[]}function S2A(t,e,A,i){let n=NM(e);n.push(A),t.firstCreatePass&&FM(t).push(i,n.length-1)}var Di={lFrame:OY(null),bindingsEnabled:!0,skipHydrationRootTNode:null};var f9=!1;function R2A(){return Di.lFrame.elementDepthCount}function L2A(){Di.lFrame.elementDepthCount++}function x2A(){Di.lFrame.elementDepthCount--}function _M(){return Di.bindingsEnabled}function KY(){return Di.skipHydrationRootTNode!==null}function N2A(t){return Di.skipHydrationRootTNode===t}function F2A(){Di.skipHydrationRootTNode=null}function zt(){return Di.lFrame.lView}function ao(){return Di.lFrame.tView}function QA(t){return Di.lFrame.contextLView=t,t[Kr]}function uA(t){return Di.lFrame.contextLView=null,t}function gs(){let t=UY();for(;t!==null&&t.type===64;)t=t.parent;return t}function UY(){return Di.lFrame.currentTNode}function _2A(){let t=Di.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}function w2(t,e){let A=Di.lFrame;A.currentTNode=t,A.isParent=e}function GM(){return Di.lFrame.isParent}function KM(){Di.lFrame.isParent=!1}function JY(){return Di.lFrame.contextLView}function YY(){return f9}function xm(t){let e=f9;return f9=t,e}function Mu(){let t=Di.lFrame,e=t.bindingRootIndex;return e===-1&&(e=t.bindingRootIndex=t.tView.bindingStartIndex),e}function G2A(){return Di.lFrame.bindingIndex}function K2A(t){return Di.lFrame.bindingIndex=t}function y2(){return Di.lFrame.bindingIndex++}function UM(t){let e=Di.lFrame,A=e.bindingIndex;return e.bindingIndex=e.bindingIndex+t,A}function U2A(){return Di.lFrame.inI18n}function J2A(t,e){let A=Di.lFrame;A.bindingIndex=A.bindingRootIndex=t,m9(e)}function Y2A(){return Di.lFrame.currentDirectiveIndex}function m9(t){Di.lFrame.currentDirectiveIndex=t}function JM(t){let e=Di.lFrame.currentDirectiveIndex;return e===-1?null:t[e]}function YM(){return Di.lFrame.currentQueryIndex}function cp(t){Di.lFrame.currentQueryIndex=t}function T2A(t){let e=t[hi];return e.type===2?e.declTNode:e.type===1?t[Ba]:null}function TY(t,e,A){if(A&bi.SkipSelf){let n=e,o=t;for(;n=n.parent,n===null&&!(A&bi.Host);)if(n=T2A(o),n===null||(o=o[Td],n.type&10))break;if(n===null)return!1;e=n,t=o}let i=Di.lFrame=HY();return i.currentTNode=e,i.lView=t,!0}function TM(t){let e=HY(),A=t[hi];Di.lFrame=e,e.currentTNode=A.firstChild,e.lView=t,e.tView=A,e.contextLView=t,e.bindingIndex=A.bindingStartIndex,e.inI18n=!1}function HY(){let t=Di.lFrame,e=t===null?null:t.child;return e===null?OY(t):e}function OY(t){let e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return t!==null&&(t.child=e),e}function zY(){let t=Di.lFrame;return Di.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}var PY=zY;function HM(){let t=zY();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function H2A(t){return(Di.lFrame.contextLView=b2A(t,Di.lFrame.contextLView))[Kr]}function Bl(){return Di.lFrame.selectedIndex}function SI(t){Di.lFrame.selectedIndex=t}function Pd(){let t=Di.lFrame;return RM(t.tView,t.selectedIndex)}function ur(){Di.lFrame.currentNamespace=xY}function _I(){O2A()}function O2A(){Di.lFrame.currentNamespace=null}function z2A(){return Di.lFrame.currentNamespace}var jY=!0;function gp(){return jY}function lp(t){jY=t}function P2A(t,e,A){let{ngOnChanges:i,ngOnInit:n,ngDoCheck:o}=e.type.prototype;if(i){let r=SY(e);(A.preOrderHooks??=[]).push(t,r),(A.preOrderCheckHooks??=[]).push(t,r)}n&&(A.preOrderHooks??=[]).push(0-t,n),o&&((A.preOrderHooks??=[]).push(t,o),(A.preOrderCheckHooks??=[]).push(t,o))}function OM(t,e){for(let A=e.directiveStart,i=e.directiveEnd;A=i)break}else e[a]<0&&(t[Md]+=65536),(s>14>16&&(t[ii]&3)===e&&(t[ii]+=16384,pJ(s,o)):pJ(s,o)}var Rd=-1,RI=class{factory;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(e,A,i){this.factory=e,this.canSeeViewProviders=A,this.injectImpl=i}};function q2A(t){return(t.flags&8)!==0}function V2A(t){return(t.flags&16)!==0}function Z2A(t,e,A){let i=0;for(;ie){r=o-1;break}}}for(;o>16}function Fm(t,e){let A=X2A(t),i=e;for(;A>0;)i=i[Td],A--;return i}var p9=!0;function _m(t){let e=p9;return p9=t,e}var $2A=256,WY=$2A-1,XY=5,A1A=0,rl={};function e1A(t,e,A){let i;typeof A=="string"?i=A.charCodeAt(0)||0:A.hasOwnProperty(Eu)&&(i=A[Eu]),i==null&&(i=A[Eu]=A1A++);let n=i&WY,o=1<>XY)]|=o}function Gm(t,e){let A=$Y(t,e);if(A!==-1)return A;let i=e[hi];i.firstCreatePass&&(t.injectorIndex=e.length,e9(i.data,t),e9(e,null),e9(i.blueprint,null));let n=zM(t,e),o=t.injectorIndex;if(ZY(n)){let r=Nm(n),s=Fm(n,e),a=s[hi].data;for(let c=0;c<8;c++)e[o+c]=s[r+c]|a[r+c]}return e[o+8]=n,o}function e9(t,e){t.push(0,0,0,0,0,0,0,0,e)}function $Y(t,e){return t.injectorIndex===-1||t.parent&&t.parent.injectorIndex===t.injectorIndex||e[t.injectorIndex+8]===null?-1:t.injectorIndex}function zM(t,e){if(t.parent&&t.parent.injectorIndex!==-1)return t.parent.injectorIndex;let A=0,i=null,n=e;for(;n!==null;){if(i=nT(n),i===null)return Rd;if(A++,n=n[Td],i.injectorIndex!==-1)return i.injectorIndex|A<<16}return Rd}function D9(t,e,A){e1A(t,e,A)}function t1A(t,e){if(e==="class")return t.classes;if(e==="style")return t.styles;let A=t.attrs;if(A){let i=A.length,n=0;for(;n>20,I=i?s:s+g,C=n?s+g:c;for(let d=I;d=a&&B.type===A)return d}if(n){let d=r[a];if(d&&Ig(d)&&d.type===A)return a}return null}function hu(t,e,A,i,n){let o=t[A],r=e.data;if(o instanceof RI){let s=o;s.resolving&&BY(Z0A(r[A]));let a=_m(s.canSeeViewProviders);s.resolving=!0;let c,g=s.injectImpl?la(s.injectImpl):null,I=TY(t,i,bi.Default);try{o=t[A]=s.factory(void 0,n,r,t,i),e.firstCreatePass&&A>=i.directiveStart&&P2A(A,r[A],e)}finally{g!==null&&la(g),_m(a),s.resolving=!1,PY()}}return o}function n1A(t){if(typeof t=="string")return t.charCodeAt(0)||0;let e=t.hasOwnProperty(Eu)?t[Eu]:void 0;return typeof e=="number"?e>=0?e&WY:o1A:e}function wJ(t,e,A){let i=1<>XY)]&i)}function yJ(t,e){return!(t&bi.Self)&&!(t&bi.Host&&e)}var DI=class{_tNode;_lView;constructor(e,A){this._tNode=e,this._lView=A}get(e,A,i){return tT(this._tNode,this._lView,e,Ap(i),A)}};function o1A(){return new DI(gs(),zt())}function ci(t){return wu(()=>{let e=t.prototype.constructor,A=e[ym]||w9(e),i=Object.prototype,n=Object.getPrototypeOf(t.prototype).constructor;for(;n&&n!==i;){let o=n[ym]||w9(n);if(o&&o!==A)return o;n=Object.getPrototypeOf(n)}return o=>new o})}function w9(t){return gY(t)?()=>{let e=w9(cs(t));return e&&e()}:yI(t)}function r1A(t,e,A,i,n){let o=t,r=e;for(;o!==null&&r!==null&&r[ii]&2048&&!Lm(r);){let s=iT(o,r,A,i|bi.Self,rl);if(s!==rl)return s;let a=o.parent;if(!a){let c=r[bY];if(c){let g=c.get(A,rl,i);if(g!==rl)return g}a=nT(r),r=r[Td]}o=a}return n}function nT(t){let e=t[hi],A=e.type;return A===2?e.declTNode:A===1?t[Ba]:null}function PM(t){return t1A(gs(),t)}function vJ(t,e=null,A=null,i){let n=oT(t,e,A,i);return n.resolveInjectorInitializers(),n}function oT(t,e=null,A=null,i,n=new Set){let o=[A||zs,yM(t)];return i=i||(typeof t=="object"?void 0:Ia(t)),new Qu(o,e||np(),i||null,n)}var Zt=class t{static THROW_IF_NOT_FOUND=pI;static NULL=new km;static create(e,A){if(Array.isArray(e))return vJ({name:""},A,e,"");{let i=e.name??"";return vJ({name:i},e.parent,e.providers,i)}}static \u0275prov=bA({token:t,providedIn:"any",factory:()=>be(fY)});static __NG_ELEMENT_ID__=-1};var Wr=class{attributeName;constructor(e){this.attributeName=e}__NG_ELEMENT_ID__=()=>PM(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}},s1A=new eA("");s1A.__NG_ELEMENT_ID__=t=>{let e=gs();if(e===null)throw new te(204,!1);if(e.type&2)return e.value;if(t&bi.Optional)return null;throw new te(204,!1)};var rT=!1,f0=(()=>{class t{static __NG_ELEMENT_ID__=a1A;static __NG_ENV_ID__=A=>A}return t})(),Km=class extends f0{_lView;constructor(e){super(),this._lView=e}onDestroy(e){let A=this._lView;return Od(A)?(e(),()=>{}):(GY(A,e),()=>k2A(A,e))}};function a1A(){return new Km(zt())}var LI=class{},jM=new eA("",{providedIn:"root",factory:()=>!1});var sT=new eA(""),aT=new eA(""),m0=(()=>{class t{taskId=0;pendingTasks=new Set;get _hasPendingTasks(){return this.hasPendingTasks.value}hasPendingTasks=new Fi(!1);add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);let A=this.taskId++;return this.pendingTasks.add(A),A}has(A){return this.pendingTasks.has(A)}remove(A){this.pendingTasks.delete(A),this.pendingTasks.size===0&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new t})}return t})();var y9=class extends qA{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(e=!1){super(),this.__isAsync=e,MM()&&(this.destroyRef=f(f0,{optional:!0})??void 0,this.pendingTasks=f(m0,{optional:!0})??void 0)}emit(e){let A=pi(null);try{super.next(e)}finally{pi(A)}}subscribe(e,A,i){let n=e,o=A||(()=>null),r=i;if(e&&typeof e=="object"){let a=e;n=a.next?.bind(a),o=a.error?.bind(a),r=a.complete?.bind(a)}this.__isAsync&&(o=this.wrapInTimeout(o),n&&(n=this.wrapInTimeout(n)),r&&(r=this.wrapInTimeout(r)));let s=super.subscribe({next:n,error:o,complete:r});return e instanceof Kt&&e.add(s),s}wrapInTimeout(e){return A=>{let i=this.pendingTasks?.add();setTimeout(()=>{try{e(A)}finally{i!==void 0&&this.pendingTasks?.remove(i)}})}}},YA=y9;function fu(...t){}function cT(t){let e,A;function i(){t=fu;try{A!==void 0&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(A),e!==void 0&&clearTimeout(e)}catch{}}return e=setTimeout(()=>{t(),i()}),typeof requestAnimationFrame=="function"&&(A=requestAnimationFrame(()=>{t(),i()})),()=>i()}function MJ(t){return queueMicrotask(()=>t()),()=>{t=fu}}var qM="isAngularZone",Um=qM+"_ID",c1A=0,ye=class t{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new YA(!1);onMicrotaskEmpty=new YA(!1);onStable=new YA(!1);onError=new YA(!1);constructor(e){let{enableLongStackTrace:A=!1,shouldCoalesceEventChangeDetection:i=!1,shouldCoalesceRunChangeDetection:n=!1,scheduleInRootZone:o=rT}=e;if(typeof Zone>"u")throw new te(908,!1);Zone.assertZonePatched();let r=this;r._nesting=0,r._outer=r._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),A&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!n&&i,r.shouldCoalesceRunChangeDetection=n,r.callbackScheduled=!1,r.scheduleInRootZone=o,I1A(r)}static isInAngularZone(){return typeof Zone<"u"&&Zone.current.get(qM)===!0}static assertInAngularZone(){if(!t.isInAngularZone())throw new te(909,!1)}static assertNotInAngularZone(){if(t.isInAngularZone())throw new te(909,!1)}run(e,A,i){return this._inner.run(e,A,i)}runTask(e,A,i,n){let o=this._inner,r=o.scheduleEventTask("NgZoneEvent: "+n,e,g1A,fu,fu);try{return o.runTask(r,A,i)}finally{o.cancelTask(r)}}runGuarded(e,A,i){return this._inner.runGuarded(e,A,i)}runOutsideAngular(e){return this._outer.run(e)}},g1A={};function VM(t){if(t._nesting==0&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function l1A(t){if(t.isCheckStableRunning||t.callbackScheduled)return;t.callbackScheduled=!0;function e(){cT(()=>{t.callbackScheduled=!1,v9(t),t.isCheckStableRunning=!0,VM(t),t.isCheckStableRunning=!1})}t.scheduleInRootZone?Zone.root.run(()=>{e()}):t._outer.run(()=>{e()}),v9(t)}function I1A(t){let e=()=>{l1A(t)},A=c1A++;t._inner=t._inner.fork({name:"angular",properties:{[qM]:!0,[Um]:A,[Um+A]:!0},onInvokeTask:(i,n,o,r,s,a)=>{if(C1A(a))return i.invokeTask(o,r,s,a);try{return bJ(t),i.invokeTask(o,r,s,a)}finally{(t.shouldCoalesceEventChangeDetection&&r.type==="eventTask"||t.shouldCoalesceRunChangeDetection)&&e(),kJ(t)}},onInvoke:(i,n,o,r,s,a,c)=>{try{return bJ(t),i.invoke(o,r,s,a,c)}finally{t.shouldCoalesceRunChangeDetection&&!t.callbackScheduled&&!d1A(a)&&e(),kJ(t)}},onHasTask:(i,n,o,r)=>{i.hasTask(o,r),n===o&&(r.change=="microTask"?(t._hasPendingMicrotasks=r.microTask,v9(t),VM(t)):r.change=="macroTask"&&(t.hasPendingMacrotasks=r.macroTask))},onHandleError:(i,n,o,r)=>(i.handleError(o,r),t.runOutsideAngular(()=>t.onError.emit(r)),!1)})}function v9(t){t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&t.callbackScheduled===!0?t.hasPendingMicrotasks=!0:t.hasPendingMicrotasks=!1}function bJ(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function kJ(t){t._nesting--,VM(t)}var M9=class{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new YA;onMicrotaskEmpty=new YA;onStable=new YA;onError=new YA;run(e,A,i){return e.apply(A,i)}runGuarded(e,A,i){return e.apply(A,i)}runOutsideAngular(e){return e()}runTask(e,A,i,n){return e.apply(A,i)}};function C1A(t){return gT(t,"__ignore_ng_zone__")}function d1A(t){return gT(t,"__scheduler_tick__")}function gT(t,e){return!Array.isArray(t)||t.length!==1?!1:t[0]?.data?.[e]===!0}var Ps=class{_console=console;handleError(e){this._console.error("ERROR",e)}},B1A=new eA("",{providedIn:"root",factory:()=>{let t=f(ye),e=f(Ps);return A=>t.runOutsideAngular(()=>e.handleError(A))}}),b9=class{destroyed=!1;listeners=null;errorHandler=f(Ps,{optional:!0});destroyRef=f(f0);constructor(){this.destroyRef.onDestroy(()=>{this.destroyed=!0,this.listeners=null})}subscribe(e){if(this.destroyed)throw new te(953,!1);return(this.listeners??=[]).push(e),{unsubscribe:()=>{let A=this.listeners?.indexOf(e);A!==void 0&&A!==-1&&this.listeners?.splice(A,1)}}}emit(e){if(this.destroyed){console.warn(Xm(953,!1));return}if(this.listeners===null)return;let A=pi(null);try{for(let i of this.listeners)try{i(e)}catch(n){this.errorHandler?.handleError(n)}}finally{pi(A)}}};function GI(t){return new b9}function SJ(t,e){return aY(t,e)}function E1A(t){return aY(sY,t)}var bs=(SJ.required=E1A,SJ);function Q1A(){return jd(gs(),zt())}function jd(t,e){return new se(dl(t,e))}var se=(()=>{class t{nativeElement;constructor(A){this.nativeElement=A}static __NG_ELEMENT_ID__=Q1A}return t})();function lT(t){return t instanceof se?t.nativeElement:t}function v2(t){return typeof t=="function"&&t[aa]!==void 0}function Ao(t,e){let A=xv(t,e?.equal),i=A[aa];return A.set=n=>nu(i,n),A.update=n=>Nv(i,n),A.asReadonly=u1A.bind(A),A}function u1A(){let t=this[aa];if(t.readonlyFn===void 0){let e=()=>this();e[aa]=t,t.readonlyFn=e}return t.readonlyFn}function IT(t){return v2(t)&&typeof t.set=="function"}function h1A(){return this._results[Symbol.iterator]()}var qa=class{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new qA}constructor(e=!1){this._emitDistinctChangesOnly=e}get(e){return this._results[e]}map(e){return this._results.map(e)}filter(e){return this._results.filter(e)}find(e){return this._results.find(e)}reduce(e,A){return this._results.reduce(e,A)}forEach(e){this._results.forEach(e)}some(e){return this._results.some(e)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(e,A){this.dirty=!1;let i=r2A(e);(this._changesDetected=!o2A(this._results,i,A))&&(this._results=i,this.length=i.length,this.last=i[this.length-1],this.first=i[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(e){this._onDirty=e}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}[Symbol.iterator]=h1A};function CT(t){return(t.flags&128)===128}var dT=function(t){return t[t.OnPush=0]="OnPush",t[t.Default=1]="Default",t}(dT||{}),BT=new Map,f1A=0;function m1A(){return f1A++}function p1A(t){BT.set(t[op],t)}function k9(t){BT.delete(t[op])}var RJ="__ngContext__";function qd(t,e){m2(e)?(t[RJ]=e[op],p1A(e)):t[RJ]=e}function ET(t){return uT(t[uu])}function QT(t){return uT(t[lg])}function uT(t){for(;t!==null&&!h0(t);)t=t[lg];return t}var S9;function hT(t){S9=t}function fT(){if(S9!==void 0)return S9;if(typeof document<"u")return document;throw new te(210,!1)}var Vd=new eA("",{providedIn:"root",factory:()=>D1A}),D1A="ng",ZM=new eA(""),El=new eA("",{providedIn:"platform",factory:()=>"unknown"});var _i=new eA(""),bu=new eA("",{providedIn:"root",factory:()=>fT().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});var w1A="h",y1A="b";var mT=!1,v1A=new eA("",{providedIn:"root",factory:()=>mT});var WM=function(t){return t[t.CHANGE_DETECTION=0]="CHANGE_DETECTION",t[t.AFTER_NEXT_RENDER=1]="AFTER_NEXT_RENDER",t}(WM||{}),Zd=new eA(""),LJ=new Set;function Cg(t){LJ.has(t)||(LJ.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}var XM=(()=>{class t{view;node;constructor(A,i){this.view=A,this.node=i}static __NG_ELEMENT_ID__=M1A}return t})();function M1A(){return new XM(zt(),gs())}var bd=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(bd||{}),pT=(()=>{class t{impl=null;execute(){this.impl?.execute()}static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new t})}return t})(),b1A=[bd.EarlyRead,bd.Write,bd.MixedReadWrite,bd.Read],k1A=(()=>{class t{ngZone=f(ye);scheduler=f(LI);errorHandler=f(Ps,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){f(Zd,{optional:!0})}execute(){let A=this.sequences.size>0;A&&so(16),this.executing=!0;for(let i of b1A)for(let n of this.sequences)if(!(n.erroredOrDestroyed||!n.hooks[i]))try{n.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>{let o=n.hooks[i];return o(n.pipelinedValue)},n.snapshot))}catch(o){n.erroredOrDestroyed=!0,this.errorHandler?.handleError(o)}this.executing=!1;for(let i of this.sequences)i.afterRun(),i.once&&(this.sequences.delete(i),i.destroy());for(let i of this.deferredRegistrations)this.sequences.add(i);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),A&&so(17)}register(A){let{view:i}=A;i!==void 0?((i[Sd]??=[]).push(A),zd(i),i[ii]|=8192):this.executing?this.deferredRegistrations.add(A):this.addSequence(A)}addSequence(A){this.sequences.add(A),this.scheduler.notify(7)}unregister(A){this.executing&&this.sequences.has(A)?(A.erroredOrDestroyed=!0,A.pipelinedValue=void 0,A.once=!0):(this.sequences.delete(A),this.deferredRegistrations.delete(A))}maybeTrace(A,i){return i?i.run(WM.AFTER_NEXT_RENDER,A):A()}static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new t})}return t})(),R9=class{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(e,A,i,n,o,r=null){this.impl=e,this.hooks=A,this.view=i,this.once=n,this.snapshot=r,this.unregisterOnDestroy=o?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();let e=this.view?.[Sd];e&&(this.view[Sd]=e.filter(A=>A!==this))}};function ku(t,e){!e?.injector&&bM(ku);let A=e?.injector??f(Zt);return Cg("NgAfterRender"),DT(t,A,e,!1)}function Ir(t,e){!e?.injector&&bM(Ir);let A=e?.injector??f(Zt);return Cg("NgAfterNextRender"),DT(t,A,e,!0)}function S1A(t,e){if(t instanceof Function){let A=[void 0,void 0,void 0,void 0];return A[e]=t,A}else return[t.earlyRead,t.write,t.mixedReadWrite,t.read]}function DT(t,e,A,i){let n=e.get(pT);n.impl??=e.get(k1A);let o=e.get(Zd,null,{optional:!0}),r=A?.phase??bd.MixedReadWrite,s=A?.manualCleanup!==!0?e.get(f0):null,a=e.get(XM,null,{optional:!0}),c=new R9(n.impl,S1A(t,r),a?.view,i,s,o?.snapshot(null));return n.impl.register(c),c}var R1A=(t,e,A,i)=>{};function L1A(t,e,A,i){R1A(t,e,A,i)}var x1A=()=>null;function wT(t,e,A=!1){return x1A(t,e,A)}function yT(t,e){let A=t.contentQueries;if(A!==null){let i=pi(null);try{for(let n=0;nt,createScript:t=>t,createScriptURL:t=>t})}catch{}return Bm}function Ip(t){return N1A()?.createHTML(t)||t}var Em;function F1A(){if(Em===void 0&&(Em=null,Pa.trustedTypes))try{Em=Pa.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return Em}function xJ(t){return F1A()?.createHTML(t)||t}var u0=class{changingThisBreaksApplicationSecurity;constructor(e){this.changingThisBreaksApplicationSecurity=e}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${rY})`}},x9=class extends u0{getTypeName(){return"HTML"}},N9=class extends u0{getTypeName(){return"Style"}},F9=class extends u0{getTypeName(){return"Script"}},_9=class extends u0{getTypeName(){return"URL"}},G9=class extends u0{getTypeName(){return"ResourceURL"}};function dg(t){return t instanceof u0?t.changingThisBreaksApplicationSecurity:t}function M2(t,e){let A=_1A(t);if(A!=null&&A!==e){if(A==="ResourceURL"&&e==="URL")return!0;throw new Error(`Required a safe ${e}, got a ${A} (see ${rY})`)}return A===e}function _1A(t){return t instanceof u0&&t.getTypeName()||null}function vT(t){return new x9(t)}function MT(t){return new N9(t)}function bT(t){return new F9(t)}function kT(t){return new _9(t)}function ST(t){return new G9(t)}function G1A(t){let e=new U9(t);return K1A()?new K9(e):e}var K9=class{inertDocumentHelper;constructor(e){this.inertDocumentHelper=e}getInertBodyElement(e){e=""+e;try{let A=new window.DOMParser().parseFromString(Ip(e),"text/html").body;return A===null?this.inertDocumentHelper.getInertBodyElement(e):(A.firstChild?.remove(),A)}catch{return null}}},U9=class{defaultDoc;inertDocument;constructor(e){this.defaultDoc=e,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(e){let A=this.inertDocument.createElement("template");return A.innerHTML=Ip(e),A}};function K1A(){try{return!!new window.DOMParser().parseFromString(Ip(""),"text/html")}catch{return!1}}var U1A=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Cp(t){return t=String(t),t.match(U1A)?t:"unsafe:"+t}function p0(t){let e={};for(let A of t.split(","))e[A]=!0;return e}function Su(...t){let e={};for(let A of t)for(let i in A)A.hasOwnProperty(i)&&(e[i]=!0);return e}var RT=p0("area,br,col,hr,img,wbr"),LT=p0("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),xT=p0("rp,rt"),J1A=Su(xT,LT),Y1A=Su(LT,p0("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),T1A=Su(xT,p0("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),NJ=Su(RT,Y1A,T1A,J1A),NT=p0("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),H1A=p0("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),O1A=p0("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"),z1A=Su(NT,H1A,O1A),P1A=p0("script,style,template"),J9=class{sanitizedSomething=!1;buf=[];sanitizeChildren(e){let A=e.firstChild,i=!0,n=[];for(;A;){if(A.nodeType===Node.ELEMENT_NODE?i=this.startElement(A):A.nodeType===Node.TEXT_NODE?this.chars(A.nodeValue):this.sanitizedSomething=!0,i&&A.firstChild){n.push(A),A=V1A(A);continue}for(;A;){A.nodeType===Node.ELEMENT_NODE&&this.endElement(A);let o=q1A(A);if(o){A=o;break}A=n.pop()}}return this.buf.join("")}startElement(e){let A=FJ(e).toLowerCase();if(!NJ.hasOwnProperty(A))return this.sanitizedSomething=!0,!P1A.hasOwnProperty(A);this.buf.push("<"),this.buf.push(A);let i=e.attributes;for(let n=0;n"),!0}endElement(e){let A=FJ(e).toLowerCase();NJ.hasOwnProperty(A)&&!RT.hasOwnProperty(A)&&(this.buf.push(""))}chars(e){this.buf.push(_J(e))}};function j1A(t,e){return(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}function q1A(t){let e=t.nextSibling;if(e&&t!==e.previousSibling)throw FT(e);return e}function V1A(t){let e=t.firstChild;if(e&&j1A(t,e))throw FT(e);return e}function FJ(t){let e=t.nodeName;return typeof e=="string"?e:"FORM"}function FT(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}var Z1A=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,W1A=/([^\#-~ |!])/g;function _J(t){return t.replace(/&/g,"&").replace(Z1A,function(e){let A=e.charCodeAt(0),i=e.charCodeAt(1);return"&#"+((A-55296)*1024+(i-56320)+65536)+";"}).replace(W1A,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(//g,">")}var Qm;function Ab(t,e){let A=null;try{Qm=Qm||G1A(t);let i=e?String(e):"";A=Qm.getInertBodyElement(i);let n=5,o=i;do{if(n===0)throw new Error("Failed to sanitize html because the input is unstable");n--,i=o,o=A.innerHTML,A=Qm.getInertBodyElement(i)}while(i!==o);let s=new J9().sanitizeChildren(GJ(A)||A);return Ip(s)}finally{if(A){let i=GJ(A)||A;for(;i.firstChild;)i.firstChild.remove()}}}function GJ(t){return"content"in t&&X1A(t)?t.content:null}function X1A(t){return t.nodeType===Node.ELEMENT_NODE&&t.nodeName==="TEMPLATE"}var Xr=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(Xr||{});function b2(t){let e=_T();return e?xJ(e.sanitize(Xr.HTML,t)||""):M2(t,"HTML")?xJ(dg(t)):Ab(fT(),wI(t))}function js(t){let e=_T();return e?e.sanitize(Xr.URL,t)||"":M2(t,"URL")?dg(t):Cp(wI(t))}function _T(){let t=zt();return t&&t[E0].sanitizer}var $1A=/^>|^->||--!>|)/g,eIA="\u200B$1\u200B";function tIA(t){return t.replace($1A,e=>e.replace(AIA,eIA))}function dp(t){return t.ownerDocument.defaultView}function Wd(t){return t.ownerDocument}function GT(t){return t instanceof Function?t():t}function iIA(t,e,A){let i=t.length;for(;;){let n=t.indexOf(e,A);if(n===-1)return n;if(n===0||t.charCodeAt(n-1)<=32){let o=e.length;if(n+o===i||t.charCodeAt(n+o)<=32)return n}A=n+1}}var KT="ng-template";function nIA(t,e,A,i){let n=0;if(i){for(;n-1){let o;for(;++no?I="":I=n[g+1].toLowerCase(),i&2&&c!==I){if(cg(i))return!1;r=!0}}}}return cg(i)||r}function cg(t){return(t&1)===0}function sIA(t,e,A,i){if(e===null)return-1;let n=0;if(i||!A){let o=!1;for(;n-1)for(A++;A0?'="'+s+'"':"")+"]"}else i&8?n+="."+r:i&4&&(n+=" "+r);else n!==""&&!cg(r)&&(e+=KJ(o,n),n=""),i=r,o=o||!cg(i);A++}return n!==""&&(e+=KJ(o,n)),e}function CIA(t){return t.map(IIA).join(",")}function dIA(t){let e=[],A=[],i=1,n=2;for(;iQr&&zT(t,e,Qr,!1),so(r?2:0,n),A(i,n)}finally{SI(o),so(r?3:1,n)}}function Ep(t,e,A){kIA(t,e,A),(A.flags&64)===64&&SIA(t,e,A)}function ob(t,e,A=dl){let i=e.localNames;if(i!==null){let n=e.index+1;for(let o=0;onull;function MIA(t){return t==="class"?"className":t==="for"?"htmlFor":t==="formaction"?"formAction":t==="innerHtml"?"innerHTML":t==="readonly"?"readOnly":t==="tabindex"?"tabIndex":t}function Ru(t,e,A,i,n,o,r,s){if(!s&&sb(e,t,A,i,n)){Hd(e)&&bIA(A,e.index);return}if(e.type&3){let a=dl(e,A);i=MIA(i),n=r!=null?r(n,e.value||"",i):n,o.setProperty(a,i,n)}else e.type&12}function bIA(t,e){let A=cl(e,t);A[ii]&16||(A[ii]|=64)}function kIA(t,e,A){let i=A.directiveStart,n=A.directiveEnd;Hd(A)&&DIA(e,A,t.data[i+A.componentOffset]),t.firstCreatePass||Gm(A,e);let o=A.initialInputs;for(let r=i;r=0?i[s]():i[-s].unsubscribe(),r+=2}else{let s=i[A[r+1]];A[r].call(s)}i!==null&&(e[Sm]=null);let n=e[f2];if(n!==null){e[f2]=null;for(let r=0;r{zd(t.lView)},consumerOnSignalRead(){this.lView[wc]=this}});function tCA(t){let e=t[wc]??Object.create(iCA);return e.lView=t,e}var iCA=Fe(sA({},Cd),{consumerIsAlwaysLive:!0,kind:"template",consumerMarkedDirty:t=>{let e=kI(t.lView);for(;e&&!eH(e[hi]);)e=kI(e);e&&_Y(e)},consumerOnSignalRead(){this.lView[wc]=this}});function eH(t){return t.type!==2}function tH(t){if(t[MI]===null)return;let e=!0;for(;e;){let A=!1;for(let i of t[MI])i.dirty&&(A=!0,i.zone===null||Zone.current===i.zone?i.run():i.zone.run(()=>i.run()));e=A&&!!(t[ii]&8192)}}var nCA=100;function iH(t,e=!0,A=0){let n=t[E0].rendererFactory,o=!1;o||n.begin?.();try{oCA(t,A)}catch(r){throw e&&FIA(t,r),r}finally{o||n.end?.()}}function oCA(t,e){let A=YY();try{xm(!0),H9(t,e);let i=0;for(;ap(t);){if(i===nCA)throw new te(103,!1);i++,H9(t,1)}}finally{xm(A)}}function rCA(t,e,A,i){if(Od(e))return;let n=e[ii],o=!1,r=!1;TM(e);let s=!0,a=null,c=null;o||(eH(t)?(c=XIA(e),a=tu(c)):bv()===null?(s=!1,c=tCA(e),a=tu(c)):e[wc]&&(iu(e[wc]),e[wc]=null));try{FY(e),K2A(t.bindingStartIndex),A!==null&&PT(t,e,A,2,i);let g=(n&3)===3;if(!o)if(g){let d=t.preOrderCheckHooks;d!==null&&fm(e,d,null)}else{let d=t.preOrderHooks;d!==null&&mm(e,d,0,null),A9(e,0)}if(r||sCA(e),tH(e),nH(e,0),t.contentQueries!==null&&yT(t,e),!o)if(g){let d=t.contentCheckHooks;d!==null&&fm(e,d)}else{let d=t.contentHooks;d!==null&&mm(e,d,1),A9(e,1)}cCA(t,e);let I=t.components;I!==null&&rH(e,I,0);let C=t.viewQuery;if(C!==null&&L9(2,C,i),!o)if(g){let d=t.viewCheckHooks;d!==null&&fm(e,d)}else{let d=t.viewHooks;d!==null&&mm(e,d,2),A9(e,2)}if(t.firstUpdatePass===!0&&(t.firstUpdatePass=!1),e[$v]){for(let d of e[$v])d();e[$v]=null}o||($T(e),e[ii]&=-73)}catch(g){throw o||zd(e),g}finally{c!==null&&(Gf(c,a),s&&ACA(c)),HM()}}function nH(t,e){for(let A=ET(t);A!==null;A=QT(A))for(let i=ys;i0&&(t[A-1][lg]=i[lg]);let o=bm(t,ys+e);JIA(i[hi],i);let r=o[Q0];r!==null&&r.detachView(o[hi]),i[vs]=null,i[lg]=null,i[ii]&=-129}return i}function gCA(t,e,A,i){let n=ys+i,o=A.length;i>0&&(A[n-1][lg]=e),i-1&&(mu(e,i),bm(A,i))}this._attachedToViewContainer=!1}Qp(this._lView[hi],this._lView)}onDestroy(e){GY(this._lView,e)}markForCheck(){Cb(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[ii]&=-129}reattach(){h9(this._lView),this._lView[ii]|=128}detectChanges(){this._lView[ii]|=1024,iH(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new te(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;let e=Lm(this._lView),A=this._lView[vI];A!==null&&!e&&lb(A,this._lView),qT(this._lView[hi],this._lView)}attachToAppRef(e){if(this._attachedToViewContainer)throw new te(902,!1);this._appRef=e;let A=Lm(this._lView),i=this._lView[vI];i!==null&&!A&&gH(i,this._lView),h9(this._lView)}};var mn=(()=>{class t{static __NG_ELEMENT_ID__=CCA}return t})(),lCA=mn,ICA=class extends lCA{_declarationLView;_declarationTContainer;elementRef;constructor(e,A,i){super(),this._declarationLView=e,this._declarationTContainer=A,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(e,A){return this.createEmbeddedViewImpl(e,A)}createEmbeddedViewImpl(e,A,i){let n=Lu(this._declarationLView,this._declarationTContainer,e,{embeddedViewInjector:A,dehydratedView:i});return new pu(n)}};function CCA(){return fp(gs(),zt())}function fp(t,e){return t.type&4?new ICA(e,t,jd(t,e)):null}function Xd(t,e,A,i,n){let o=t.data[e];if(o===null)o=dCA(t,e,A,i,n),U2A()&&(o.flags|=32);else if(o.type&64){o.type=A,o.value=i,o.attrs=n;let r=_2A();o.injectorIndex=r===null?-1:r.injectorIndex}return w2(o,!0),o}function dCA(t,e,A,i,n){let o=UY(),r=GM(),s=r?o:o&&o.parent,a=t.data[e]=ECA(t,s,A,e,i,n);return BCA(t,a,o,r),a}function BCA(t,e,A,i){t.firstChild===null&&(t.firstChild=e),A!==null&&(i?A.child==null&&e.parent!==null&&(A.child=e):A.next===null&&(A.next=e,e.prev=A))}function ECA(t,e,A,i,n,o){let r=e?e.injectorIndex:-1,s=0;return KY()&&(s|=128),{type:A,index:i,insertBeforeIndex:null,injectorIndex:r,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:s,providerIndexes:0,value:n,attrs:o,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}var fie=new RegExp(`^(\\d+)*(${y1A}|${w1A})*(.*)`);var QCA=()=>null;function Ud(t,e){return QCA(t,e)}var uCA=class{},lH=class{},O9=class{resolveComponentFactory(e){throw Error(`No component factory found for ${Ia(e)}.`)}},mp=class{static NULL=new O9},Ms=class{},qi=(()=>{class t{destroyNode=null;static __NG_ELEMENT_ID__=()=>hCA()}return t})();function hCA(){let t=zt(),e=gs(),A=cl(e.index,t);return(m2(A)?A:t)[Jo]}var fCA=(()=>{class t{static \u0275prov=bA({token:t,providedIn:"root",factory:()=>null})}return t})();var i9={},z9=class{injector;parentInjector;constructor(e,A){this.injector=e,this.parentInjector=A}get(e,A,i){i=Ap(i);let n=this.injector.get(e,i9,i);return n!==i9||A===i9?n:this.parentInjector.get(e,A,i)}};function P9(t,e,A){let i=A?t.styles:null,n=A?t.classes:null,o=0;if(e!==null)for(let r=0;r0&&(A.directiveToIndex=new Map);for(let C=0;C0;){let A=t[--e];if(typeof A=="number"&&A<0)return A}return 0}function SCA(t,e,A){if(A){if(e.exportAs)for(let i=0;i{let[A,i,n]=t[e],o={propName:A,templateName:e,isSignal:(i&Bp.SignalBased)!==0};return n&&(o.transform=n),o})}function xCA(t){return Object.keys(t).map(e=>({propName:t[e],templateName:e}))}function NCA(t,e,A){let i=e instanceof vr?e:e?.injector;return i&&t.getStandaloneInjector!==null&&(i=t.getStandaloneInjector(i)||i),i?new z9(A,i):A}function FCA(t){let e=t.get(Ms,null);if(e===null)throw new te(407,!1);let A=t.get(fCA,null),i=t.get(LI,null);return{rendererFactory:e,sanitizer:A,changeDetectionScheduler:i}}function _CA(t,e){let A=(t.selectors[0][0]||"div").toLowerCase();return JT(e,A,A==="svg"?xY:A==="math"?w2A:null)}var xI=class extends lH{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=LCA(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=xCA(this.componentDef.outputs),this.cachedOutputs}constructor(e,A){super(),this.componentDef=e,this.ngModule=A,this.componentType=e.type,this.selector=CIA(e.selectors),this.ngContentSelectors=e.ngContentSelectors??[],this.isBoundToModule=!!A}create(e,A,i,n){so(22);let o=pi(null);try{let r=this.componentDef,s=i?["ng-version","19.2.15"]:dIA(this.componentDef.selectors[0]),a=tb(0,null,null,1,0,null,null,null,null,[s],null),c=NCA(r,n||this.ngModule,e),g=FCA(c),I=g.rendererFactory.createRenderer(null,r),C=i?wIA(I,i,r.encapsulation,c):_CA(r,I),d=ib(null,a,null,512|HT(r),null,null,g,I,c,null,wT(C,c,!0));d[Qr]=C,TM(d);let B=null;try{let E=dH(Qr,a,d,"#host",()=>[this.componentDef],!0,0);C&&(TT(I,C,E),qd(C,d)),Ep(a,d,E),$M(a,E,d),BH(a,E),A!==void 0&&GCA(E,this.ngContentSelectors,A),B=cl(E.index,d),d[Kr]=B[Kr],ab(a,d,null)}catch(E){throw B!==null&&k9(B),k9(d),E}finally{so(23),HM()}return new j9(this.componentType,d)}finally{pi(o)}}},j9=class extends uCA{_rootLView;instance;hostView;changeDetectorRef;componentType;location;previousInputValues=null;_tNode;constructor(e,A){super(),this._rootLView=A,this._tNode=RM(A[hi],Qr),this.location=jd(this._tNode,A),this.instance=cl(this._tNode.index,A)[Kr],this.hostView=this.changeDetectorRef=new pu(A,void 0,!1),this.componentType=e}setInput(e,A){let i=this._tNode;if(this.previousInputValues??=new Map,this.previousInputValues.has(e)&&Object.is(this.previousInputValues.get(e),A))return;let n=this._rootLView,o=sb(i,n[hi],n,e,A);this.previousInputValues.set(e,A);let r=cl(i.index,n);Cb(r,1)}get injector(){return new DI(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(e){this.hostView.onDestroy(e)}};function GCA(t,e,A){let i=t.projection=[];for(let n=0;n{class t{static __NG_ELEMENT_ID__=KCA}return t})();function KCA(){let t=gs();return QH(t,zt())}var UCA=Sn,EH=class extends UCA{_lContainer;_hostTNode;_hostLView;constructor(e,A,i){super(),this._lContainer=e,this._hostTNode=A,this._hostLView=i}get element(){return jd(this._hostTNode,this._hostLView)}get injector(){return new DI(this._hostTNode,this._hostLView)}get parentInjector(){let e=zM(this._hostTNode,this._hostLView);if(ZY(e)){let A=Fm(e,this._hostLView),i=Nm(e),n=A[hi].data[i+8];return new DI(n,A)}else return new DI(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(e){let A=OJ(this._lContainer);return A!==null&&A[e]||null}get length(){return this._lContainer.length-ys}createEmbeddedView(e,A,i){let n,o;typeof i=="number"?n=i:i!=null&&(n=i.index,o=i.injector);let r=Ud(this._lContainer,e.ssrId),s=e.createEmbeddedViewImpl(A||{},o,r);return this.insertImpl(s,n,Kd(this._hostTNode,r)),s}createComponent(e,A,i,n,o){let r=e&&!f2A(e),s;if(r)s=A;else{let B=A||{};s=B.index,i=B.injector,n=B.projectableNodes,o=B.environmentInjector||B.ngModuleRef}let a=r?e:new xI(p2(e)),c=i||this.parentInjector;if(!o&&a.ngModule==null){let E=(r?c:this.parentInjector).get(vr,null);E&&(o=E)}let g=p2(a.componentType??{}),I=Ud(this._lContainer,g?.id??null),C=I?.firstChild??null,d=a.create(c,n,C,o);return this.insertImpl(d.hostView,s,Kd(this._hostTNode,I)),d}insert(e,A){return this.insertImpl(e,A,!0)}insertImpl(e,A,i){let n=e._lView;if(M2A(n)){let s=this.indexOf(e);if(s!==-1)this.detach(s);else{let a=n[vs],c=new EH(a,a[Ba],a[vs]);c.detach(c.indexOf(e))}}let o=this._adjustIndex(A),r=this._lContainer;return xu(r,n,o,i),e.attachToViewContainerRef(),hY(n9(r),o,e),e}move(e,A){return this.insert(e,A)}indexOf(e){let A=OJ(this._lContainer);return A!==null?A.indexOf(e):-1}remove(e){let A=this._adjustIndex(e,-1),i=mu(this._lContainer,A);i&&(bm(n9(this._lContainer),A),Qp(i[hi],i))}detach(e){let A=this._adjustIndex(e,-1),i=mu(this._lContainer,A);return i&&bm(n9(this._lContainer),A)!=null?new pu(i):null}_adjustIndex(e,A=0){return e??this.length+A}};function OJ(t){return t[Rm]}function n9(t){return t[Rm]||(t[Rm]=[])}function QH(t,e){let A,i=e[t.index];return h0(i)?A=i:(A=sH(i,e,null,t),e[t.index]=A,nb(e,A)),YCA(A,e,t,i),new EH(A,t,e)}function JCA(t,e){let A=t[Jo],i=A.createComment(""),n=dl(e,t),o=A.parentNode(n);return Jm(A,o,i,A.nextSibling(n),!1),i}var YCA=OCA,TCA=()=>!1;function HCA(t,e,A){return TCA(t,e,A)}function OCA(t,e,A,i){if(t[bI])return;let n;A.type&8?n=al(i):n=JCA(e,A),t[bI]=n}var q9=class t{queryList;matches=null;constructor(e){this.queryList=e}clone(){return new t(this.queryList)}setDirty(){this.queryList.setDirty()}},V9=class t{queries;constructor(e=[]){this.queries=e}createEmbeddedView(e){let A=e.queries;if(A!==null){let i=e.contentQueries!==null?e.contentQueries[0]:A.length,n=[];for(let o=0;o0)i.push(r[s/2]);else{let c=o[s+1],g=e[-a];for(let I=ys;Ie.trim())}function pH(t,e,A){t.queries===null&&(t.queries=new Z9),t.queries.track(new W9(e,A))}function ZCA(t,e){let A=t.contentQueries||(t.contentQueries=[]),i=A.length?A[A.length-1]:-1;e!==i&&A.push(t.queries.length-1,e)}function Eb(t,e){return t.queries.getByIndex(e)}function DH(t,e){let A=t[hi],i=Eb(A,e);return i.crossesNgTemplate?X9(A,t,e,[]):uH(A,t,i,e)}function Qb(t,e,A){let i,n=Yf(()=>{i._dirtyCounter();let o=XCA(i,t);if(e&&o===void 0)throw new te(-951,!1);return o});return i=n[aa],i._dirtyCounter=Ao(0),i._flatValue=void 0,n}function wH(t){return Qb(!0,!1,t)}function yH(t){return Qb(!0,!0,t)}function WCA(t){return Qb(!1,!1,t)}function vH(t,e){let A=t[aa];A._lView=zt(),A._queryIndex=e,A._queryList=Bb(A._lView,e),A._queryList.onDirty(()=>A._dirtyCounter.update(i=>i+1))}function XCA(t,e){let A=t._lView,i=t._queryIndex;if(A===void 0||i===void 0||A[ii]&4)return e?void 0:zs;let n=Bb(A,i),o=DH(A,i);return n.reset(o,lT),e?n.first:n._changesDetected||t._flatValue===void 0?t._flatValue=n.toArray():t._flatValue}function zJ(t,e){return wH(e)}function $CA(t,e){return yH(e)}var qs=(zJ.required=$CA,zJ);function MH(t,e){return WCA(e)}function PJ(t,e){return wH(e)}function AdA(t,e){return yH(e)}var bH=(PJ.required=AdA,PJ);var Il=class{},ub=class{};function kH(t,e){return new Om(t,e??null,[])}var Om=class extends Il{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];componentFactoryResolver=new Tm(this);constructor(e,A,i,n=!0){super(),this.ngModuleType=e,this._parent=A;let o=pY(e);this._bootstrapComponents=GT(o.bootstrap),this._r3Injector=oT(e,A,[{provide:Il,useValue:this},{provide:mp,useValue:this.componentFactoryResolver},...i],Ia(e),new Set(["environment"])),n&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}get injector(){return this._r3Injector}destroy(){let e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(A=>A()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}},$9=class extends ub{moduleType;constructor(e){super(),this.moduleType=e}create(e){return new Om(this.moduleType,e,[])}};var zm=class extends Il{injector;componentFactoryResolver=new Tm(this);instance=null;constructor(e){super();let A=new Qu([...e.providers,{provide:Il,useValue:this},{provide:mp,useValue:this.componentFactoryResolver}],e.parent||np(),e.debugName,new Set(["environment"]));this.injector=A,e.runEnvironmentInitializers&&A.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(e){this.injector.onDestroy(e)}};function Nu(t,e,A=null){return new zm({providers:t,parent:e,debugName:A,runEnvironmentInitializers:!0}).injector}var edA=(()=>{class t{_injector;cachedInjectors=new Map;constructor(A){this._injector=A}getOrCreateStandaloneInjector(A){if(!A.standalone)return null;if(!this.cachedInjectors.has(A)){let i=wY(!1,A.type),n=i.length>0?Nu([i],this._injector,`Standalone[${A.type.name}]`):null;this.cachedInjectors.set(A,n)}return this.cachedInjectors.get(A)}ngOnDestroy(){try{for(let A of this.cachedInjectors.values())A!==null&&A.destroy()}finally{this.cachedInjectors.clear()}}static \u0275prov=bA({token:t,providedIn:"environment",factory:()=>new t(be(vr))})}return t})();function jA(t){return wu(()=>{let e=SH(t),A=Fe(sA({},e),{decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===dT.OnPush,directiveDefs:null,pipeDefs:null,dependencies:e.standalone&&t.dependencies||null,getStandaloneInjector:e.standalone?n=>n.get(edA).getOrCreateStandaloneInjector(A):null,getExternalStyles:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||gl.Emulated,styles:t.styles||zs,_:null,schemas:t.schemas||null,tView:null,id:""});e.standalone&&Cg("NgStandalone"),RH(A);let i=t.dependencies;return A.directiveDefs=jJ(i,!1),A.pipeDefs=jJ(i,!0),A.id=rdA(A),A})}function tdA(t){return p2(t)||DY(t)}function idA(t){return t!==null}function Ze(t){return wu(()=>({type:t.type,bootstrap:t.bootstrap||zs,declarations:t.declarations||zs,imports:t.imports||zs,exports:t.exports||zs,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function ndA(t,e){if(t==null)return sl;let A={};for(let i in t)if(t.hasOwnProperty(i)){let n=t[i],o,r,s,a;Array.isArray(n)?(s=n[0],o=n[1],r=n[2]??o,a=n[3]||null):(o=n,r=n,s=Bp.None,a=null),A[o]=[i,s,a],e[o]=r}return A}function odA(t){if(t==null)return sl;let e={};for(let A in t)t.hasOwnProperty(A)&&(e[t[A]]=A);return e}function WA(t){return wu(()=>{let e=SH(t);return RH(e),e})}function $d(t){return{type:t.type,name:t.name,factory:null,pure:t.pure!==!1,standalone:t.standalone??!0,onDestroy:t.type.prototype.ngOnDestroy||null}}function SH(t){let e={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:e,inputConfig:t.inputs||sl,exportAs:t.exportAs||null,standalone:t.standalone??!0,signals:t.signals===!0,selectors:t.selectors||zs,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:ndA(t.inputs,e),outputs:odA(t.outputs),debugInfo:null}}function RH(t){t.features?.forEach(e=>e(t))}function jJ(t,e){if(!t)return null;let A=e?g2A:tdA;return()=>(typeof t=="function"?t():t).map(i=>A(i)).filter(idA)}function rdA(t){let e=0,A=typeof t.consts=="function"?"":t.consts,i=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,A,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery];for(let o of i.join("|"))e=Math.imul(31,e)+o.charCodeAt(0)<<0;return e+=2147483648,"c"+e}function sdA(t){return Object.getPrototypeOf(t.prototype).constructor}function lt(t){let e=sdA(t.type),A=!0,i=[t];for(;e;){let n;if(Ig(t))n=e.\u0275cmp||e.\u0275dir;else{if(e.\u0275cmp)throw new te(903,!1);n=e.\u0275dir}if(n){if(A){i.push(n);let r=t;r.inputs=o9(t.inputs),r.declaredInputs=o9(t.declaredInputs),r.outputs=o9(t.outputs);let s=n.hostBindings;s&&IdA(t,s);let a=n.viewQuery,c=n.contentQueries;if(a&&gdA(t,a),c&&ldA(t,c),adA(t,n),T0A(t.outputs,n.outputs),Ig(n)&&n.data.animation){let g=t.data;g.animation=(g.animation||[]).concat(n.data.animation)}}let o=n.features;if(o)for(let r=0;r=0;i--){let n=t[i];n.hostVars=e+=n.hostVars,n.hostAttrs=Gd(n.hostAttrs,A=Gd(A,n.hostAttrs))}}function o9(t){return t===sl?{}:t===zs?[]:t}function gdA(t,e){let A=t.viewQuery;A?t.viewQuery=(i,n)=>{e(i,n),A(i,n)}:t.viewQuery=e}function ldA(t,e){let A=t.contentQueries;A?t.contentQueries=(i,n,o)=>{e(i,n,o),A(i,n,o)}:t.contentQueries=e}function IdA(t,e){let A=t.hostBindings;A?t.hostBindings=(i,n)=>{e(i,n),A(i,n)}:t.hostBindings=e}function LH(t){let e=A=>{let i=Array.isArray(t);A.hostDirectives===null?(A.findHostDirectiveDefs=xH,A.hostDirectives=i?t.map(AM):[t]):i?A.hostDirectives.unshift(...t.map(AM)):A.hostDirectives.unshift(t)};return e.ngInherit=!0,e}function xH(t,e,A){if(t.hostDirectives!==null)for(let i of t.hostDirectives)if(typeof i=="function"){let n=i();for(let o of n)qJ(AM(o),e,A)}else qJ(i,e,A)}function qJ(t,e,A){let i=DY(t.directive);CdA(i.declaredInputs,t.inputs),xH(i,e,A),A.set(i,t),e.push(i)}function AM(t){return typeof t=="function"?{directive:cs(t),inputs:sl,outputs:sl}:{directive:cs(t.directive),inputs:VJ(t.inputs),outputs:VJ(t.outputs)}}function VJ(t){if(t===void 0||t.length===0)return sl;let e={};for(let A=0;A{class t{log(A){console.log(A)}warn(A){console.warn(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();var pb=new eA(""),Fu=new eA(""),pp=(()=>{class t{_ngZone;registry;_isZoneStable=!0;_callbacks=[];_taskTrackingZone=null;_destroyRef;constructor(A,i,n){this._ngZone=A,this.registry=i,MM()&&(this._destroyRef=f(f0,{optional:!0})??void 0),Db||(hdA(n),n.addToWindow(i)),this._watchAngularEvents(),A.run(()=>{this._taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){let A=this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),i=this._ngZone.runOutsideAngular(()=>this._ngZone.onStable.subscribe({next:()=>{ye.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}}));this._destroyRef?.onDestroy(()=>{A.unsubscribe(),i.unsubscribe()})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;this._callbacks.length!==0;){let A=this._callbacks.pop();clearTimeout(A.timeoutId),A.doneCb()}});else{let A=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>i.updateCb&&i.updateCb(A)?(clearTimeout(i.timeoutId),!1):!0)}}getPendingTasks(){return this._taskTrackingZone?this._taskTrackingZone.macroTasks.map(A=>({source:A.source,creationLocation:A.creationLocation,data:A.data})):[]}addCallback(A,i,n){let o=-1;i&&i>0&&(o=setTimeout(()=>{this._callbacks=this._callbacks.filter(r=>r.timeoutId!==o),A()},i)),this._callbacks.push({doneCb:A,timeoutId:o,updateCb:n})}whenStable(A,i,n){if(n&&!this._taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(A,i,n),this._runCallbacksIfReady()}registerApplication(A){this.registry.registerApplication(A,this)}unregisterApplication(A){this.registry.unregisterApplication(A)}findProviders(A,i,n){return[]}static \u0275fac=function(i){return new(i||t)(be(ye),be(Dp),be(Fu))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),Dp=(()=>{class t{_applications=new Map;registerApplication(A,i){this._applications.set(A,i)}unregisterApplication(A){this._applications.delete(A)}unregisterAllApplications(){this._applications.clear()}getTestability(A){return this._applications.get(A)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(A,i=!0){return Db?.findTestabilityInTree(this,A,i)??null}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function hdA(t){Db=t}var Db,_H=(()=>{class t{static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new eM})}return t})(),eM=class{queuedEffectCount=0;queues=new Map;schedule(e){this.enqueue(e)}remove(e){let A=e.zone,i=this.queues.get(A);i.has(e)&&(i.delete(e),this.queuedEffectCount--)}enqueue(e){let A=e.zone;this.queues.has(A)||this.queues.set(A,new Set);let i=this.queues.get(A);i.has(e)||(this.queuedEffectCount++,i.add(e))}flush(){for(;this.queuedEffectCount>0;)for(let[e,A]of this.queues)e===null?this.flushQueue(A):e.run(()=>this.flushQueue(A))}flushQueue(e){for(let A of e)e.delete(A),this.queuedEffectCount--,A.run()}};function k2(t){return!!t&&typeof t.then=="function"}function wb(t){return!!t&&typeof t.subscribe=="function"}var GH=new eA("");function yb(t){return vu([{provide:GH,multi:!0,useValue:t}])}var KH=(()=>{class t{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((A,i)=>{this.resolve=A,this.reject=i});appInits=f(GH,{optional:!0})??[];injector=f(Zt);constructor(){}runInitializers(){if(this.initialized)return;let A=[];for(let n of this.appInits){let o=da(this.injector,n);if(k2(o))A.push(o);else if(wb(o)){let r=new Promise((s,a)=>{o.subscribe({complete:s,error:a})});A.push(r)}}let i=()=>{this.done=!0,this.resolve()};Promise.all(A).then(()=>{i()}).catch(n=>{this.reject(n)}),A.length===0&&i(),this.initialized=!0}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),vb=new eA("");function fdA(){Lv(()=>{throw new te(600,!1)})}function mdA(t){return t.isBoundToModule}var pdA=10;var Ca=(()=>{class t{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=f(B1A);afterRenderManager=f(pT);zonelessEnabled=f(jM);rootEffectScheduler=f(_H);dirtyFlags=0;tracingSnapshot=null;externalTestViews=new Set;afterTick=new qA;get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];isStable=f(m0).hasPendingTasks.pipe(je(A=>!A));constructor(){f(Zd,{optional:!0})}whenStable(){let A;return new Promise(i=>{A=this.isStable.subscribe({next:n=>{n&&i()}})}).finally(()=>{A.unsubscribe()})}_injector=f(vr);_rendererFactory=null;get injector(){return this._injector}bootstrap(A,i){return this.bootstrapImpl(A,i)}bootstrapImpl(A,i,n=Zt.NULL){so(10);let o=A instanceof lH;if(!this._injector.get(KH).done){let d="";throw new te(405,d)}let s;o?s=A:s=this._injector.get(mp).resolveComponentFactory(A),this.componentTypes.push(s.componentType);let a=mdA(s)?void 0:this._injector.get(Il),c=i||s.selector,g=s.create(n,[],c,a),I=g.location.nativeElement,C=g.injector.get(pb,null);return C?.registerApplication(I),g.onDestroy(()=>{this.detachView(g.hostView),Dm(this.components,g),C?.unregisterApplication(I)}),this._loadComponent(g),so(11,g),g}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){so(12),this.tracingSnapshot!==null?this.tracingSnapshot.run(WM.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw new te(101,!1);let A=pi(null);try{this._runningTick=!0,this.synchronize()}catch(i){this.internalErrorHandler(i)}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,pi(A),this.afterTick.next(),so(13)}};synchronize(){this._rendererFactory===null&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(Ms,null,{optional:!0}));let A=0;for(;this.dirtyFlags!==0&&A++ap(A))){this.dirtyFlags|=2;return}else this.dirtyFlags&=-8}attachView(A){let i=A;this._views.push(i),i.attachToAppRef(this)}detachView(A){let i=A;Dm(this._views,i),i.detachFromAppRef()}_loadComponent(A){this.attachView(A.hostView),this.tick(),this.components.push(A),this._injector.get(vb,[]).forEach(n=>n(A))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(A=>A()),this._views.slice().forEach(A=>A.destroy())}finally{this._destroyed=!0,this._views=[],this._destroyListeners=[]}}onDestroy(A){return this._destroyListeners.push(A),()=>Dm(this._destroyListeners,A)}destroy(){if(this._destroyed)throw new te(406,!1);let A=this._injector;A.destroy&&!A.destroyed&&A.destroy()}get viewCount(){return this._views.length}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Dm(t,e){let A=t.indexOf(e);A>-1&&t.splice(A,1)}function DdA(t,e,A,i){if(!A&&!ap(t))return;iH(t,e,A&&!i?0:1)}function Ke(t,e,A,i){let n=zt(),o=y2();if(Va(n,o,e)){let r=ao(),s=Pd();LIA(s,n,t,e,A,i)}return Ke}function Mb(t,e,A,i){return Va(t,y2(),A)?e+wI(A)+i:Ea}function wdA(t,e,A,i,n,o){let r=G2A(),s=FH(t,r,A,n);return UM(2),s?e+wI(A)+i+wI(n)+o:Ea}function um(t,e){return t<<17|e<<2}function NI(t){return t>>17&32767}function ydA(t){return(t&2)==2}function vdA(t,e){return t&131071|e<<17}function tM(t){return t|2}function Jd(t){return(t&131068)>>2}function r9(t,e){return t&-131069|e<<2}function MdA(t){return(t&1)===1}function iM(t){return t|1}function bdA(t,e,A,i,n,o){let r=o?e.classBindings:e.styleBindings,s=NI(r),a=Jd(r);t[i]=A;let c=!1,g;if(Array.isArray(A)){let I=A;g=I[1],(g===null||yu(I,g)>0)&&(c=!0)}else g=A;if(n)if(a!==0){let C=NI(t[s+1]);t[i+1]=um(C,s),C!==0&&(t[C+1]=r9(t[C+1],i)),t[s+1]=vdA(t[s+1],i)}else t[i+1]=um(s,0),s!==0&&(t[s+1]=r9(t[s+1],i)),s=i;else t[i+1]=um(a,0),s===0?s=i:t[a+1]=r9(t[a+1],i),a=i;c&&(t[i+1]=tM(t[i+1])),ZJ(t,g,i,!0),ZJ(t,g,i,!1),kdA(e,g,t,i,o),r=um(s,a),o?e.classBindings=r:e.styleBindings=r}function kdA(t,e,A,i,n){let o=n?t.residualClasses:t.residualStyles;o!=null&&typeof e=="string"&&yu(o,e)>=0&&(A[i+1]=iM(A[i+1]))}function ZJ(t,e,A,i){let n=t[A+1],o=e===null,r=i?NI(n):Jd(n),s=!1;for(;r!==0&&(s===!1||o);){let a=t[r],c=t[r+1];SdA(a,e)&&(s=!0,t[r+1]=i?iM(c):tM(c)),r=i?NI(c):Jd(c)}s&&(t[A+1]=i?tM(n):iM(n))}function SdA(t,e){return t===null||e==null||(Array.isArray(t)?t[1]:t)===e?!0:Array.isArray(t)&&typeof e=="string"?yu(t,e)>=0:!1}var gg={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function RdA(t){return t.substring(gg.key,gg.keyEnd)}function LdA(t){return xdA(t),UH(t,JH(t,0,gg.textEnd))}function UH(t,e){let A=gg.textEnd;return A===e?-1:(e=gg.keyEnd=NdA(t,gg.key=e,A),JH(t,e,A))}function xdA(t){gg.key=0,gg.keyEnd=0,gg.value=0,gg.valueEnd=0,gg.textEnd=t.length}function JH(t,e,A){for(;e32;)e++;return e}function yA(t,e,A){let i=zt(),n=y2();if(Va(i,n,e)){let o=ao(),r=Pd();Ru(o,r,i,t,e,i[Jo],A,!1)}return yA}function nM(t,e,A,i,n){sb(e,t,A,n?"class":"style",i)}function mo(t,e,A){return TH(t,e,A,!1),mo}function he(t,e){return TH(t,e,null,!0),he}function Ro(t){HH(JdA,YH,t,!0)}function YH(t,e){for(let A=LdA(e);A>=0;A=UH(e,A))tp(t,RdA(e),!0)}function TH(t,e,A,i){let n=zt(),o=ao(),r=UM(2);if(o.firstUpdatePass&&zH(o,t,r,i),e!==Ea&&Va(n,r,e)){let s=o.data[Bl()];PH(o,s,n,n[Jo],t,n[r+1]=TdA(e,A),i,r)}}function HH(t,e,A,i){let n=ao(),o=UM(2);n.firstUpdatePass&&zH(n,null,o,i);let r=zt();if(A!==Ea&&Va(r,o,A)){let s=n.data[Bl()];if(jH(s,i)&&!OH(n,o)){let a=i?s.classesWithoutHost:s.stylesWithoutHost;a!==null&&(A=l9(a,A||"")),nM(n,s,r,A,i)}else YdA(n,s,r,r[Jo],r[o+1],r[o+1]=UdA(t,e,A),i,o)}}function OH(t,e){return e>=t.expandoStartIndex}function zH(t,e,A,i){let n=t.data;if(n[A+1]===null){let o=n[Bl()],r=OH(t,A);jH(o,i)&&e===null&&!r&&(e=!1),e=FdA(n,o,e,i),bdA(n,o,e,A,r,i)}}function FdA(t,e,A,i){let n=JM(t),o=i?e.residualClasses:e.residualStyles;if(n===null)(i?e.classBindings:e.styleBindings)===0&&(A=s9(null,t,e,A,i),A=Du(A,e.attrs,i),o=null);else{let r=e.directiveStylingLast;if(r===-1||t[r]!==n)if(A=s9(n,t,e,A,i),o===null){let a=_dA(t,e,i);a!==void 0&&Array.isArray(a)&&(a=s9(null,t,e,a[1],i),a=Du(a,e.attrs,i),GdA(t,e,i,a))}else o=KdA(t,e,i)}return o!==void 0&&(i?e.residualClasses=o:e.residualStyles=o),A}function _dA(t,e,A){let i=A?e.classBindings:e.styleBindings;if(Jd(i)!==0)return t[NI(i)]}function GdA(t,e,A,i){let n=A?e.classBindings:e.styleBindings;t[NI(n)]=i}function KdA(t,e,A){let i,n=e.directiveEnd;for(let o=1+e.directiveStylingLast;o0;){let a=t[n],c=Array.isArray(a),g=c?a[1]:a,I=g===null,C=A[n+1];C===Ea&&(C=I?zs:void 0);let d=I?Wv(C,i):g===i?C:void 0;if(c&&!jm(d)&&(d=Wv(a,i)),jm(d)&&(s=d,r))return s;let B=t[n+1];n=r?NI(B):Jd(B)}if(e!==null){let a=o?e.residualClasses:e.residualStyles;a!=null&&(s=Wv(a,i))}return s}function jm(t){return t!==void 0}function TdA(t,e){return t==null||t===""||(typeof e=="string"?t=t+e:typeof t=="object"&&(t=Ia(dg(t)))),t}function jH(t,e){return(t.flags&(e?8:16))!==0}function qH(t,e,A){let i=zt(),n=Mb(i,t,e,A);HH(tp,YH,n,!0)}var oM=class{destroy(e){}updateValue(e,A){}swap(e,A){let i=Math.min(e,A),n=Math.max(e,A),o=this.detach(n);if(n-i>1){let r=this.detach(i);this.attach(i,o),this.attach(n,r)}else this.attach(i,o)}move(e,A){this.attach(A,this.detach(e))}};function a9(t,e,A,i,n){return t===A&&Object.is(e,i)?1:Object.is(n(t,e),n(A,i))?-1:0}function HdA(t,e,A){let i,n,o=0,r=t.length-1,s=void 0;if(Array.isArray(e)){let a=e.length-1;for(;o<=r&&o<=a;){let c=t.at(o),g=e[o],I=a9(o,c,o,g,A);if(I!==0){I<0&&t.updateValue(o,g),o++;continue}let C=t.at(r),d=e[a],B=a9(r,C,a,d,A);if(B!==0){B<0&&t.updateValue(r,d),r--,a--;continue}let E=A(o,c),u=A(r,C),h=A(o,g);if(Object.is(h,u)){let w=A(a,d);Object.is(w,E)?(t.swap(o,r),t.updateValue(r,d),a--,r--):t.move(r,o),t.updateValue(o,g),o++;continue}if(i??=new qm,n??=$J(t,o,r,A),rM(t,i,o,h))t.updateValue(o,g),o++,r++;else if(n.has(h))i.set(E,t.detach(o)),r--;else{let w=t.create(o,e[o]);t.attach(o,w),o++,r++}}for(;o<=a;)XJ(t,i,A,o,e[o]),o++}else if(e!=null){let a=e[Symbol.iterator](),c=a.next();for(;!c.done&&o<=r;){let g=t.at(o),I=c.value,C=a9(o,g,o,I,A);if(C!==0)C<0&&t.updateValue(o,I),o++,c=a.next();else{i??=new qm,n??=$J(t,o,r,A);let d=A(o,I);if(rM(t,i,o,d))t.updateValue(o,I),o++,r++,c=a.next();else if(!n.has(d))t.attach(o,t.create(o,I)),o++,r++,c=a.next();else{let B=A(o,g);i.set(B,t.detach(o)),r--}}}for(;!c.done;)XJ(t,i,A,t.length,c.value),c=a.next()}for(;o<=r;)t.destroy(t.detach(r--));i?.forEach(a=>{t.destroy(a)})}function rM(t,e,A,i){return e!==void 0&&e.has(i)?(t.attach(A,e.get(i)),e.delete(i),!0):!1}function XJ(t,e,A,i,n){if(rM(t,e,i,A(i,n)))t.updateValue(i,n);else{let o=t.create(i,n);t.attach(i,o)}}function $J(t,e,A,i){let n=new Set;for(let o=e;o<=A;o++)n.add(i(o,t.at(o)));return n}var qm=class{kvMap=new Map;_vMap=void 0;has(e){return this.kvMap.has(e)}delete(e){if(!this.has(e))return!1;let A=this.kvMap.get(e);return this._vMap!==void 0&&this._vMap.has(A)?(this.kvMap.set(e,this._vMap.get(A)),this._vMap.delete(A)):this.kvMap.delete(e),!0}get(e){return this.kvMap.get(e)}set(e,A){if(this.kvMap.has(e)){let i=this.kvMap.get(e);this._vMap===void 0&&(this._vMap=new Map);let n=this._vMap;for(;n.has(i);)i=n.get(i);n.set(i,A)}else this.kvMap.set(e,A)}forEach(e){for(let[A,i]of this.kvMap)if(e(i,A),this._vMap!==void 0){let n=this._vMap;for(;n.has(i);)i=n.get(i),e(i,A)}}};function _A(t,e){Cg("NgControlFlow");let A=zt(),i=y2(),n=A[i]!==Ea?A[i]:-1,o=n!==-1?Vm(A,Qr+n):void 0,r=0;if(Va(A,i,t)){let s=pi(null);try{if(o!==void 0&&cH(o,r),t!==-1){let a=Qr+t,c=Vm(A,a),g=gM(A[hi],a),I=Ud(c,g.tView.ssrId),C=Lu(A,g,e,{dehydratedView:I});xu(c,C,r,Kd(g,I))}}finally{pi(s)}}else if(o!==void 0){let s=aH(o,r);s!==void 0&&(s[Kr]=e)}}var sM=class{lContainer;$implicit;$index;constructor(e,A,i){this.lContainer=e,this.$implicit=A,this.$index=i}get $count(){return this.lContainer.length-ys}};function AB(t){return t}function zn(t,e){return e}var aM=class{hasEmptyBlock;trackByFn;liveCollection;constructor(e,A,i){this.hasEmptyBlock=e,this.trackByFn=A,this.liveCollection=i}};function dn(t,e,A,i,n,o,r,s,a,c,g,I,C){Cg("NgControlFlow");let d=zt(),B=ao(),E=a!==void 0,u=zt(),h=s?r.bind(u[ja][Kr]):r,w=new aM(E,h);u[Qr+t]=w,Pm(d,B,t+1,e,A,i,n,D2(B.consts,o)),E&&Pm(d,B,t+2,a,c,g,I,D2(B.consts,C))}var cM=class extends oM{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(e,A,i){super(),this.lContainer=e,this.hostLView=A,this.templateTNode=i}get length(){return this.lContainer.length-ys}at(e){return this.getLView(e)[Kr].$implicit}attach(e,A){let i=A[Nd];this.needsIndexUpdate||=e!==this.length,xu(this.lContainer,A,e,Kd(this.templateTNode,i))}detach(e){return this.needsIndexUpdate||=e!==this.length-1,OdA(this.lContainer,e)}create(e,A){let i=Ud(this.lContainer,this.templateTNode.tView.ssrId),n=Lu(this.hostLView,this.templateTNode,new sM(this.lContainer,A,e),{dehydratedView:i});return this.operationsCounter?.recordCreate(),n}destroy(e){Qp(e[hi],e),this.operationsCounter?.recordDestroy()}updateValue(e,A){this.getLView(e)[Kr].$implicit=A}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let e=0;e(lp(!0),JT(i,n,z2A()));function jdA(t,e,A,i,n){let o=e.consts,r=D2(o,i),s=Xd(e,t,8,"ng-container",r);r!==null&&P9(s,r,!0);let a=D2(o,n);return _M()&&db(e,A,s,a,rb),s.mergedAttrs=Gd(s.mergedAttrs,s.attrs),e.queries!==null&&e.queries.elementStart(e,s),s}function S2(t,e,A){let i=zt(),n=ao(),o=t+Qr,r=n.firstCreatePass?jdA(o,n,i,e,A):n.data[o];w2(r,!0);let s=qdA(n,i,r,t);return i[o]=s,gp()&&up(n,i,s,r),qd(s,i),rp(r)&&(Ep(n,i,r),$M(n,r,i)),A!=null&&ob(i,r),S2}function R2(){let t=gs(),e=ao();return GM()?KM():(t=t.parent,w2(t,!1)),e.firstCreatePass&&(OM(e,t),SM(t)&&e.queries.elementEnd(t)),R2}function rr(t,e,A){return S2(t,e,A),R2(),rr}var qdA=(t,e,A,i)=>(lp(!0),QIA(e[Jo],""));function me(){return zt()}function Qa(t,e,A){let i=zt(),n=y2();if(Va(i,n,e)){let o=ao(),r=Pd();Ru(o,r,i,t,e,i[Jo],A,!0)}return Qa}function bb(t,e,A){let i=zt(),n=y2();if(Va(i,n,e)){let o=ao(),r=Pd(),s=JM(o.data),a=jT(s,r,i);Ru(o,r,i,t,e,a,A,!0)}return bb}var Zm="en-US";var VdA=Zm;function ZdA(t){typeof t=="string"&&(VdA=t.toLowerCase().replace(/_/g,"-"))}function AY(t,e,A){return function i(n){if(n===Function)return A;let o=Hd(t)?cl(t.index,e):e;Cb(o,5);let r=e[Kr],s=eY(e,r,A,n),a=i.__ngNextListenerFn__;for(;a;)s=eY(e,r,a,n)&&s,a=a.__ngNextListenerFn__;return s}}function eY(t,e,A,i){let n=pi(null);try{return so(6,e,A),A(i)!==!1}catch(o){return WdA(t,o),!1}finally{so(7,e,A),pi(n)}}function WdA(t,e){let A=t[Fd],i=A?A.get(Ps,null):null;i&&i.handleError(e)}function tY(t,e,A,i,n,o){let r=e[A],s=e[hi],c=s.data[A].outputs[i],g=r[c],I=s.firstCreatePass?FM(s):null,C=NM(e),d=g.subscribe(o),B=C.length;C.push(o,d),I&&I.push(n,t.index,B,-(B+1))}function mA(t,e,A,i){let n=zt(),o=ao(),r=gs();return Sb(o,n,n[Jo],r,t,e,i),mA}function kb(t,e){let A=gs(),i=zt(),n=ao(),o=JM(n.data),r=jT(o,A,i);return Sb(n,i,r,A,t,e),kb}function XdA(t,e,A,i){let n=t.cleanup;if(n!=null)for(let o=0;oa?s[a]:null}typeof r=="string"&&(o+=2)}return null}function Sb(t,e,A,i,n,o,r){let s=rp(i),c=t.firstCreatePass?FM(t):null,g=NM(e),I=!0;if(i.type&3||r){let C=dl(i,e),d=r?r(C):C,B=g.length,E=r?h=>r(al(h[i.index])):i.index,u=null;if(!r&&s&&(u=XdA(t,e,n,i.index)),u!==null){let h=u.__ngLastListenerFn__||u;h.__ngNextListenerFn__=o,u.__ngLastListenerFn__=o,I=!1}else{o=AY(i,e,o),L1A(e,d,n,o);let h=A.listen(d,n,o);g.push(o,h),c&&c.push(n,E,B,B+1)}}else o=AY(i,e,o);if(I){let C=i.outputs?.[n],d=i.hostDirectiveOutputs?.[n];if(d&&d.length)for(let B=0;B(lp(!0),BIA(e[Jo],i));function tt(t){return Bt("",t,""),tt}function Bt(t,e,A){let i=zt(),n=Mb(i,t,e,A);return n!==Ea&&WH(i,Bl(),n),Bt}function x2(t,e,A,i,n){let o=zt(),r=wdA(o,t,e,A,i,n);return r!==Ea&&WH(o,Bl(),r),x2}function WH(t,e,A){let i=NY(e,t);EIA(t[Jo],i,A)}function Za(t,e,A){IT(e)&&(e=e());let i=zt(),n=y2();if(Va(i,n,e)){let o=ao(),r=Pd();Ru(o,r,i,t,e,i[Jo],A,!1)}return Za}function Wa(t,e){let A=IT(t);return A&&t.set(e),A}function Xa(t,e){let A=zt(),i=ao(),n=gs();return Sb(i,A,A[Jo],n,t,e),Xa}var XH={};function Rb(t){let e=ao(),A=zt(),i=t+Qr,n=Xd(e,i,128,null,null);return w2(n,!1),LM(e,A,i,XH),Rb}function Lb(t){Cg("NgLet");let e=ao(),A=zt(),i=Bl();return LM(e,A,i,t),t}function xb(t){let e=JY(),A=sp(e,Qr+t);if(A===XH)throw new te(314,!1);return A}function tBA(t,e,A){let i=ao();if(i.firstCreatePass){let n=Ig(t);lM(A,i.data,i.blueprint,n,!0),lM(e,i.data,i.blueprint,n,!1)}}function lM(t,e,A,i,n){if(t=cs(t),Array.isArray(t))for(let o=0;o>20;if(xd(t)||!t.multi){let d=new RI(c,n,Ge),B=g9(a,e,n?g:g+C,I);B===-1?(D9(Gm(s,r),o,a),c9(o,t,e.length),e.push(a),s.directiveStart++,s.directiveEnd++,n&&(s.providerIndexes+=1048576),A.push(d),r.push(d)):(A[B]=d,r[B]=d)}else{let d=g9(a,e,g+C,I),B=g9(a,e,g,g+C),E=d>=0&&A[d],u=B>=0&&A[B];if(n&&!u||!n&&!E){D9(Gm(s,r),o,a);let h=oBA(n?nBA:iBA,A.length,n,i,c);!n&&u&&(A[B].providerFactory=h),c9(o,t,e.length,0),e.push(a),s.directiveStart++,s.directiveEnd++,n&&(s.providerIndexes+=1048576),A.push(h),r.push(h)}else{let h=$H(A[n?B:d],c,!n&&i);c9(o,t,d>-1?d:B,h)}!n&&i&&u&&A[B].componentProviders++}}}function c9(t,e,A,i){let n=xd(e),o=d2A(e);if(n||o){let a=(o?cs(e.useClass):e).prototype.ngOnDestroy;if(a){let c=t.destroyHooks||(t.destroyHooks=[]);if(!n&&e.multi){let g=c.indexOf(A);g===-1?c.push(A,[i,a]):c[g+1].push(i,a)}else c.push(A,a)}}}function $H(t,e,A){return A&&t.componentProviders++,t.multi.push(e)-1}function g9(t,e,A,i){for(let n=A;n{A.providersResolver=(i,n)=>tBA(i,n?n(t):t,e)}}function AO(t,e,A){let i=Mu()+t,n=zt();return n[i]===Ea?fb(n,i,A?e.call(A):e()):BdA(n,i)}function vc(t,e,A,i){return tO(zt(),Mu(),t,e,A,i)}function Bg(t,e,A,i,n){return iO(zt(),Mu(),t,e,A,i,n)}function eO(t,e){let A=t[e];return A===Ea?void 0:A}function tO(t,e,A,i,n,o){let r=e+A;return Va(t,r,n)?fb(t,r+1,o?i.call(o,n):i(n)):eO(t,r+1)}function iO(t,e,A,i,n,o,r){let s=e+A;return FH(t,s,n,o)?fb(t,s+2,r?i.call(r,n,o):i(n,o)):eO(t,s+2)}function eo(t,e){let A=ao(),i,n=t+Qr;A.firstCreatePass?(i=rBA(e,A.pipeRegistry),A.data[n]=i,i.onDestroy&&(A.destroyHooks??=[]).push(n,i.onDestroy)):i=A.data[n];let o=i.factory||(i.factory=yI(i.type,!0)),r,s=la(Ge);try{let a=_m(!1),c=o();return _m(a),LM(A,zt(),n,c),c}finally{la(s)}}function rBA(t,e){if(e)for(let A=e.length-1;A>=0;A--){let i=e[A];if(t===i.name)return i}}function Yo(t,e,A){let i=t+Qr,n=zt(),o=sp(n,i);return nO(n,i)?tO(n,Mu(),e,o.transform,A,o):o.transform(A)}function _u(t,e,A,i){let n=t+Qr,o=zt(),r=sp(o,n);return nO(o,n)?iO(o,Mu(),e,r.transform,A,i,r):r.transform(A,i)}function nO(t,e){return t[hi].data[e].pure}function Gu(t,e){return fp(t,e)}var FI=class{full;major;minor;patch;constructor(e){this.full=e;let A=e.split(".");this.major=A[0],this.minor=A[1],this.patch=A.slice(2).join(".")}},Nb=new FI("19.2.15"),CM=class{ngModuleFactory;componentFactories;constructor(e,A){this.ngModuleFactory=e,this.componentFactories=A}},oO=(()=>{class t{compileModuleSync(A){return new $9(A)}compileModuleAsync(A){return Promise.resolve(this.compileModuleSync(A))}compileModuleAndAllComponentsSync(A){let i=this.compileModuleSync(A),n=pY(A),o=GT(n.declarations).reduce((r,s)=>{let a=p2(s);return a&&r.push(new xI(a)),r},[]);return new CM(i,o)}compileModuleAndAllComponentsAsync(A){return Promise.resolve(this.compileModuleAndAllComponentsSync(A))}clearCache(){}clearCacheFor(A){}getModuleId(A){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var sBA=(()=>{class t{zone=f(ye);changeDetectionScheduler=f(LI);applicationRef=f(Ca);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function aBA({ngZoneFactory:t,ignoreChangesOutsideZone:e,scheduleInRootZone:A}){return t??=()=>new ye(Fe(sA({},cBA()),{scheduleInRootZone:A})),[{provide:ye,useFactory:t},{provide:Ld,multi:!0,useFactory:()=>{let i=f(sBA,{optional:!0});return()=>i.initialize()}},{provide:Ld,multi:!0,useFactory:()=>{let i=f(gBA);return()=>{i.initialize()}}},e===!0?{provide:sT,useValue:!0}:[],{provide:aT,useValue:A??rT}]}function cBA(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}var gBA=(()=>{class t{subscription=new Kt;initialized=!1;zone=f(ye);pendingTasks=f(m0);initialize(){if(this.initialized)return;this.initialized=!0;let A=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(A=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{ye.assertNotInAngularZone(),queueMicrotask(()=>{A!==null&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(A),A=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{ye.assertInAngularZone(),A??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var lBA=(()=>{class t{appRef=f(Ca);taskService=f(m0);ngZone=f(ye);zonelessEnabled=f(jM);tracing=f(Zd,{optional:!0});disableScheduling=f(sT,{optional:!0})??!1;zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new Kt;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(Um):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(f(aT,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof M9||!this.zoneIsDefined)}notify(A){if(!this.zonelessEnabled&&A===5)return;let i=!1;switch(A){case 0:{this.appRef.dirtyFlags|=2;break}case 3:case 2:case 4:case 5:case 1:{this.appRef.dirtyFlags|=4;break}case 6:{this.appRef.dirtyFlags|=2,i=!0;break}case 12:{this.appRef.dirtyFlags|=16,i=!0;break}case 13:{this.appRef.dirtyFlags|=2,i=!0;break}case 11:{i=!0;break}case 9:case 8:case 7:case 10:default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick(i))return;let n=this.useMicrotaskScheduler?MJ:cT;this.pendingRenderTaskId=this.taskService.add(),this.scheduleInRootZone?this.cancelScheduledCallback=Zone.root.run(()=>n(()=>this.tick())):this.cancelScheduledCallback=this.ngZone.runOutsideAngular(()=>n(()=>this.tick()))}shouldScheduleTick(A){return!(this.disableScheduling&&!A||this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(Um+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(this.appRef.dirtyFlags===0){this.cleanup();return}!this.zonelessEnabled&&this.appRef.dirtyFlags&7&&(this.appRef.dirtyFlags|=1);let A=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(i){throw this.taskService.remove(A),i}finally{this.cleanup()}this.useMicrotaskScheduler=!0,MJ(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(A)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){let A=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(A)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function IBA(){return typeof $localize<"u"&&$localize.locale||Zm}var wp=new eA("",{providedIn:"root",factory:()=>f(wp,bi.Optional|bi.SkipSelf)||IBA()});var dM=new eA(""),CBA=new eA("");function Cu(t){return!t.moduleRef}function dBA(t){let e=Cu(t)?t.r3Injector:t.moduleRef.injector,A=e.get(ye);return A.run(()=>{Cu(t)?t.r3Injector.resolveInjectorInitializers():t.moduleRef.resolveInjectorInitializers();let i=e.get(Ps,null),n;if(A.runOutsideAngular(()=>{n=A.onError.subscribe({next:o=>{i.handleError(o)}})}),Cu(t)){let o=()=>e.destroy(),r=t.platformInjector.get(dM);r.add(o),e.onDestroy(()=>{n.unsubscribe(),r.delete(o)})}else{let o=()=>t.moduleRef.destroy(),r=t.platformInjector.get(dM);r.add(o),t.moduleRef.onDestroy(()=>{Dm(t.allPlatformModules,t.moduleRef),n.unsubscribe(),r.delete(o)})}return EBA(i,A,()=>{let o=e.get(KH);return o.runInitializers(),o.donePromise.then(()=>{let r=e.get(wp,Zm);if(ZdA(r||Zm),!e.get(CBA,!0))return Cu(t)?e.get(Ca):(t.allPlatformModules.push(t.moduleRef),t.moduleRef);if(Cu(t)){let a=e.get(Ca);return t.rootComponent!==void 0&&a.bootstrap(t.rootComponent),a}else return BBA(t.moduleRef,t.allPlatformModules),t.moduleRef})})})}function BBA(t,e){let A=t.injector.get(Ca);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(i=>A.bootstrap(i));else if(t.instance.ngDoBootstrap)t.instance.ngDoBootstrap(A);else throw new te(-403,!1);e.push(t)}function EBA(t,e,A){try{let i=A();return k2(i)?i.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):i}catch(i){throw e.runOutsideAngular(()=>t.handleError(i)),i}}var wm=null;function QBA(t=[],e){return Zt.create({name:e,providers:[{provide:ip,useValue:"platform"},{provide:dM,useValue:new Set([()=>wm=null])},...t]})}function uBA(t=[]){if(wm)return wm;let e=QBA(t);return wm=e,fdA(),hBA(e),e}function hBA(t){let e=t.get(ZM,null);da(t,()=>{e?.forEach(A=>A())})}var Et=(()=>{class t{static __NG_ELEMENT_ID__=fBA}return t})();function fBA(t){return mBA(gs(),zt(),(t&16)===16)}function mBA(t,e,A){if(Hd(t)&&!A){let i=cl(t.index,e);return new pu(i,i)}else if(t.type&175){let i=e[ja];return new pu(i,e)}return null}var BM=class{constructor(){}supports(e){return NH(e)}create(e){return new EM(e)}},pBA=(t,e)=>e,EM=class{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(e){this._trackByFn=e||pBA}forEachItem(e){let A;for(A=this._itHead;A!==null;A=A._next)e(A)}forEachOperation(e){let A=this._itHead,i=this._removalsHead,n=0,o=null;for(;A||i;){let r=!i||A&&A.currentIndex{r=this._trackByFn(n,s),A===null||!Object.is(A.trackById,r)?(A=this._mismatch(A,s,r,n),i=!0):(i&&(A=this._verifyReinsertion(A,s,r,n)),Object.is(A.item,s)||this._addIdentityChange(A,s)),A=A._next,n++}),this.length=n;return this._truncate(A),this.collection=e,this.isDirty}get isDirty(){return this._additionsHead!==null||this._movesHead!==null||this._removalsHead!==null||this._identityChangesHead!==null}_reset(){if(this.isDirty){let e;for(e=this._previousItHead=this._itHead;e!==null;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;e!==null;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;e!==null;e=e._nextMoved)e.previousIndex=e.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,A,i,n){let o;return e===null?o=this._itTail:(o=e._prev,this._remove(e)),e=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null),e!==null?(Object.is(e.item,A)||this._addIdentityChange(e,A),this._reinsertAfter(e,o,n)):(e=this._linkedRecords===null?null:this._linkedRecords.get(i,n),e!==null?(Object.is(e.item,A)||this._addIdentityChange(e,A),this._moveAfter(e,o,n)):e=this._addAfter(new QM(A,i),o,n)),e}_verifyReinsertion(e,A,i,n){let o=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null);return o!==null?e=this._reinsertAfter(o,e._prev,n):e.currentIndex!=n&&(e.currentIndex=n,this._addToMoves(e,n)),e}_truncate(e){for(;e!==null;){let A=e._next;this._addToRemovals(this._unlink(e)),e=A}this._unlinkedRecords!==null&&this._unlinkedRecords.clear(),this._additionsTail!==null&&(this._additionsTail._nextAdded=null),this._movesTail!==null&&(this._movesTail._nextMoved=null),this._itTail!==null&&(this._itTail._next=null),this._removalsTail!==null&&(this._removalsTail._nextRemoved=null),this._identityChangesTail!==null&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,A,i){this._unlinkedRecords!==null&&this._unlinkedRecords.remove(e);let n=e._prevRemoved,o=e._nextRemoved;return n===null?this._removalsHead=o:n._nextRemoved=o,o===null?this._removalsTail=n:o._prevRemoved=n,this._insertAfter(e,A,i),this._addToMoves(e,i),e}_moveAfter(e,A,i){return this._unlink(e),this._insertAfter(e,A,i),this._addToMoves(e,i),e}_addAfter(e,A,i){return this._insertAfter(e,A,i),this._additionsTail===null?this._additionsTail=this._additionsHead=e:this._additionsTail=this._additionsTail._nextAdded=e,e}_insertAfter(e,A,i){let n=A===null?this._itHead:A._next;return e._next=n,e._prev=A,n===null?this._itTail=e:n._prev=e,A===null?this._itHead=e:A._next=e,this._linkedRecords===null&&(this._linkedRecords=new Wm),this._linkedRecords.put(e),e.currentIndex=i,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){this._linkedRecords!==null&&this._linkedRecords.remove(e);let A=e._prev,i=e._next;return A===null?this._itHead=i:A._next=i,i===null?this._itTail=A:i._prev=A,e}_addToMoves(e,A){return e.previousIndex===A||(this._movesTail===null?this._movesTail=this._movesHead=e:this._movesTail=this._movesTail._nextMoved=e),e}_addToRemovals(e){return this._unlinkedRecords===null&&(this._unlinkedRecords=new Wm),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,this._removalsTail===null?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,A){return e.item=A,this._identityChangesTail===null?this._identityChangesTail=this._identityChangesHead=e:this._identityChangesTail=this._identityChangesTail._nextIdentityChange=e,e}},QM=class{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(e,A){this.item=e,this.trackById=A}},uM=class{_head=null;_tail=null;add(e){this._head===null?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,A){let i;for(i=this._head;i!==null;i=i._nextDup)if((A===null||A<=i.currentIndex)&&Object.is(i.trackById,e))return i;return null}remove(e){let A=e._prevDup,i=e._nextDup;return A===null?this._head=i:A._nextDup=i,i===null?this._tail=A:i._prevDup=A,this._head===null}},Wm=class{map=new Map;put(e){let A=e.trackById,i=this.map.get(A);i||(i=new uM,this.map.set(A,i)),i.add(e)}get(e,A){let i=e,n=this.map.get(i);return n?n.get(e,A):null}remove(e){let A=e.trackById;return this.map.get(A).remove(e)&&this.map.delete(A),e}get isEmpty(){return this.map.size===0}clear(){this.map.clear()}};function iY(t,e,A){let i=t.previousIndex;if(i===null)return i;let n=0;return A&&i{if(A&&A.key===n)this._maybeAddToChanges(A,i),this._appendAfter=A,A=A._next;else{let o=this._getOrCreateRecordForKey(n,i);A=this._insertBeforeOrAppend(A,o)}}),A){A._prev&&(A._prev._next=null),this._removalsHead=A;for(let i=A;i!==null;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,A){if(e){let i=e._prev;return A._next=e,A._prev=i,e._prev=A,i&&(i._next=A),e===this._mapHead&&(this._mapHead=A),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=A,A._prev=this._appendAfter):this._mapHead=A,this._appendAfter=A,null}_getOrCreateRecordForKey(e,A){if(this._records.has(e)){let n=this._records.get(e);this._maybeAddToChanges(n,A);let o=n._prev,r=n._next;return o&&(o._next=r),r&&(r._prev=o),n._next=null,n._prev=null,n}let i=new mM(e);return this._records.set(e,i),i.currentValue=A,this._addToAdditions(i),i}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;e!==null;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;e!==null;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;e!=null;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,A){Object.is(A,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=A,this._addToChanges(e))}_addToAdditions(e){this._additionsHead===null?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){this._changesHead===null?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,A){e instanceof Map?e.forEach(A):Object.keys(e).forEach(i=>A(e[i],i))}},mM=class{key;previousValue=null;currentValue=null;_nextPrevious=null;_next=null;_prev=null;_nextAdded=null;_nextRemoved=null;_nextChanged=null;constructor(e){this.key=e}};function nY(){return new Ql([new BM])}var Ql=(()=>{class t{factories;static \u0275prov=bA({token:t,providedIn:"root",factory:nY});constructor(A){this.factories=A}static create(A,i){if(i!=null){let n=i.factories.slice();A=A.concat(n)}return new t(A)}static extend(A){return{provide:t,useFactory:i=>t.create(A,i||nY()),deps:[[t,new ep,new Yd]]}}find(A){let i=this.factories.find(n=>n.supports(A));if(i!=null)return i;throw new te(901,!1)}}return t})();function oY(){return new yp([new hM])}var yp=(()=>{class t{static \u0275prov=bA({token:t,providedIn:"root",factory:oY});factories;constructor(A){this.factories=A}static create(A,i){if(i){let n=i.factories.slice();A=A.concat(n)}return new t(A)}static extend(A){return{provide:t,useFactory:i=>t.create(A,i||oY()),deps:[[t,new ep,new Yd]]}}find(A){let i=this.factories.find(n=>n.supports(A));if(i)return i;throw new te(901,!1)}}return t})();var rO=(()=>{class t{constructor(A){}static \u0275fac=function(i){return new(i||t)(be(Ca))};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();function sO(t){let{rootComponent:e,appProviders:A,platformProviders:i,platformRef:n}=t;so(8);try{let o=n?.injector??uBA(i),r=[aBA({}),{provide:LI,useExisting:lBA},...A||[]],s=new zm({providers:r,parent:o,debugName:"",runEnvironmentInitializers:!1});return dBA({r3Injector:s.injector,platformInjector:o,rootComponent:e})}catch(o){return Promise.reject(o)}finally{so(9)}}function ge(t){return typeof t=="boolean"?t:t!=null&&t!=="false"}function en(t,e=NaN){return!isNaN(parseFloat(t))&&!isNaN(Number(t))?Number(t):e}function ua(t){return Fv(t)}function Mc(t,e){return Yf(t,e?.equal)}var pM=class{[aa];constructor(e){this[aa]=e}destroy(){this[aa].destroy()}};function Ku(t,e){!e?.injector&&bM(Ku);let A=e?.injector??f(Zt),i=e?.manualCleanup!==!0?A.get(f0):null,n,o=A.get(XM,null,{optional:!0}),r=A.get(LI);return o!==null&&!e?.forceRoot?(n=yBA(o.view,r,t),i instanceof Km&&i._lView===o.view&&(i=null)):n=vBA(t,A.get(_H),r),n.injector=A,i!==null&&(n.onDestroyFn=i.onDestroy(()=>n.destroy())),new pM(n)}var aO=Fe(sA({},Cd),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,hasRun:!1,cleanupFns:void 0,zone:null,kind:"effect",onDestroyFn:fu,run(){if(this.dirty=!1,this.hasRun&&!Kf(this))return;this.hasRun=!0;let t=i=>(this.cleanupFns??=[]).push(i),e=tu(this),A=xm(!1);try{this.maybeCleanup(),this.fn(t)}finally{xm(A),Gf(this,e)}},maybeCleanup(){if(this.cleanupFns?.length)try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[]}}}),DBA=Fe(sA({},aO),{consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){iu(this),this.onDestroyFn(),this.maybeCleanup(),this.scheduler.remove(this)}}),wBA=Fe(sA({},aO),{consumerMarkedDirty(){this.view[ii]|=8192,zd(this.view),this.notifier.notify(13)},destroy(){iu(this),this.onDestroyFn(),this.maybeCleanup(),this.view[MI]?.delete(this)}});function yBA(t,e,A){let i=Object.create(wBA);return i.view=t,i.zone=typeof Zone<"u"?Zone.current:null,i.notifier=e,i.fn=A,t[MI]??=new Set,t[MI].add(i),i.consumerMarkedDirty(i),i}function vBA(t,e,A){let i=Object.create(DBA);return i.fn=t,i.scheduler=e,i.notifier=A,i.zone=typeof Zone<"u"?Zone.current:null,i.scheduler.schedule(i),i.notifier.notify(12),i}function vp(t,e){let A=p2(t),i=e.elementInjector||np();return new xI(A).create(i,e.projectableNodes,e.hostElement,e.environmentInjector)}function cO(t){let e=p2(t);if(!e)return null;let A=new xI(e);return{get selector(){return A.selector},get type(){return A.componentType},get inputs(){return A.inputs},get outputs(){return A.outputs},get ngContentSelectors(){return A.ngContentSelectors},get isStandalone(){return e.standalone},get isSignal(){return e.signals}}}var at=new eA("");var IO=null;function $a(){return IO}function Fb(t){IO??=t}var Uu=class{},Ju=(()=>{class t{historyGo(A){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(CO),providedIn:"platform"})}return t})(),_b=new eA(""),CO=(()=>{class t extends Ju{_location;_history;_doc=f(at);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return $a().getBaseHref(this._doc)}onPopState(A){let i=$a().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",A,!1),()=>i.removeEventListener("popstate",A)}onHashChange(A){let i=$a().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",A,!1),()=>i.removeEventListener("hashchange",A)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(A){this._location.pathname=A}pushState(A,i,n){this._history.pushState(A,i,n)}replaceState(A,i,n){this._history.replaceState(A,i,n)}forward(){this._history.forward()}back(){this._history.back()}historyGo(A=0){this._history.go(A)}getState(){return this._history.state}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function Mp(t,e){return t?e?t.endsWith("/")?e.startsWith("/")?t+e.slice(1):t+e:e.startsWith("/")?t+e:`${t}/${e}`:t:e}function gO(t){let e=t.search(/#|\?|$/);return t[e-1]==="/"?t.slice(0,e-1)+t.slice(e):t}function Eg(t){return t&&t[0]!=="?"?`?${t}`:t}var D0=(()=>{class t{historyGo(A){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(kp),providedIn:"root"})}return t})(),bp=new eA(""),kp=(()=>{class t extends D0{_platformLocation;_baseHref;_removeListenerFns=[];constructor(A,i){super(),this._platformLocation=A,this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??f(at).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(A){this._removeListenerFns.push(this._platformLocation.onPopState(A),this._platformLocation.onHashChange(A))}getBaseHref(){return this._baseHref}prepareExternalUrl(A){return Mp(this._baseHref,A)}path(A=!1){let i=this._platformLocation.pathname+Eg(this._platformLocation.search),n=this._platformLocation.hash;return n&&A?`${i}${n}`:i}pushState(A,i,n,o){let r=this.prepareExternalUrl(n+Eg(o));this._platformLocation.pushState(A,i,r)}replaceState(A,i,n,o){let r=this.prepareExternalUrl(n+Eg(o));this._platformLocation.replaceState(A,i,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(A=0){this._platformLocation.historyGo?.(A)}static \u0275fac=function(i){return new(i||t)(be(Ju),be(bp,8))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),ha=(()=>{class t{_subject=new qA;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(A){this._locationStrategy=A;let i=this._locationStrategy.getBaseHref();this._basePath=kBA(gO(lO(i))),this._locationStrategy.onPopState(n=>{this._subject.next({url:this.path(!0),pop:!0,state:n.state,type:n.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(A=!1){return this.normalize(this._locationStrategy.path(A))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(A,i=""){return this.path()==this.normalize(A+Eg(i))}normalize(A){return t.stripTrailingSlash(bBA(this._basePath,lO(A)))}prepareExternalUrl(A){return A&&A[0]!=="/"&&(A="/"+A),this._locationStrategy.prepareExternalUrl(A)}go(A,i="",n=null){this._locationStrategy.pushState(n,"",A,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(A+Eg(i)),n)}replaceState(A,i="",n=null){this._locationStrategy.replaceState(n,"",A,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(A+Eg(i)),n)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(A=0){this._locationStrategy.historyGo?.(A)}onUrlChange(A){return this._urlChangeListeners.push(A),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{let i=this._urlChangeListeners.indexOf(A);this._urlChangeListeners.splice(i,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(A="",i){this._urlChangeListeners.forEach(n=>n(A,i))}subscribe(A,i,n){return this._subject.subscribe({next:A,error:i??void 0,complete:n??void 0})}static normalizeQueryParams=Eg;static joinWithSlash=Mp;static stripTrailingSlash=gO;static \u0275fac=function(i){return new(i||t)(be(D0))};static \u0275prov=bA({token:t,factory:()=>MBA(),providedIn:"root"})}return t})();function MBA(){return new ha(be(D0))}function bBA(t,e){if(!t||!e.startsWith(t))return e;let A=e.substring(t.length);return A===""||["/",";","?","#"].includes(A[0])?A:e}function lO(t){return t.replace(/\/index.html$/,"")}function kBA(t){if(new RegExp("^(https?:)?//").test(t)){let[,A]=t.split(/\/\/[^\/]+/);return A}return t}var Jb=(()=>{class t extends D0{_platformLocation;_baseHref="";_removeListenerFns=[];constructor(A,i){super(),this._platformLocation=A,i!=null&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(A){this._removeListenerFns.push(this._platformLocation.onPopState(A),this._platformLocation.onHashChange(A))}getBaseHref(){return this._baseHref}path(A=!1){let i=this._platformLocation.hash??"#";return i.length>0?i.substring(1):i}prepareExternalUrl(A){let i=Mp(this._baseHref,A);return i.length>0?"#"+i:i}pushState(A,i,n,o){let r=this.prepareExternalUrl(n+Eg(o))||this._platformLocation.pathname;this._platformLocation.pushState(A,i,r)}replaceState(A,i,n,o){let r=this.prepareExternalUrl(n+Eg(o))||this._platformLocation.pathname;this._platformLocation.replaceState(A,i,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(A=0){this._platformLocation.historyGo?.(A)}static \u0275fac=function(i){return new(i||t)(be(Ju),be(bp,8))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();var Gb=/\s+/,dO=[],Vs=(()=>{class t{_ngEl;_renderer;initialClasses=dO;rawClass;stateMap=new Map;constructor(A,i){this._ngEl=A,this._renderer=i}set klass(A){this.initialClasses=A!=null?A.trim().split(Gb):dO}set ngClass(A){this.rawClass=typeof A=="string"?A.trim().split(Gb):A}ngDoCheck(){for(let i of this.initialClasses)this._updateState(i,!0);let A=this.rawClass;if(Array.isArray(A)||A instanceof Set)for(let i of A)this._updateState(i,!0);else if(A!=null)for(let i of Object.keys(A))this._updateState(i,!!A[i]);this._applyStateDiff()}_updateState(A,i){let n=this.stateMap.get(A);n!==void 0?(n.enabled!==i&&(n.changed=!0,n.enabled=i),n.touched=!0):this.stateMap.set(A,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(let A of this.stateMap){let i=A[0],n=A[1];n.changed?(this._toggleClass(i,n.enabled),n.changed=!1):n.touched||(n.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),n.touched=!1}}_toggleClass(A,i){A=A.trim(),A.length>0&&A.split(Gb).forEach(n=>{i?this._renderer.addClass(this._ngEl.nativeElement,n):this._renderer.removeClass(this._ngEl.nativeElement,n)})}static \u0275fac=function(i){return new(i||t)(Ge(se),Ge(qi))};static \u0275dir=WA({type:t,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return t})(),Yu=(()=>{class t{_viewContainerRef;ngComponentOutlet=null;ngComponentOutletInputs;ngComponentOutletInjector;ngComponentOutletContent;ngComponentOutletNgModule;ngComponentOutletNgModuleFactory;_componentRef;_moduleRef;_inputsUsed=new Map;get componentInstance(){return this._componentRef?.instance??null}constructor(A){this._viewContainerRef=A}_needToReCreateNgModuleInstance(A){return A.ngComponentOutletNgModule!==void 0||A.ngComponentOutletNgModuleFactory!==void 0}_needToReCreateComponentInstance(A){return A.ngComponentOutlet!==void 0||A.ngComponentOutletContent!==void 0||A.ngComponentOutletInjector!==void 0||this._needToReCreateNgModuleInstance(A)}ngOnChanges(A){if(this._needToReCreateComponentInstance(A)&&(this._viewContainerRef.clear(),this._inputsUsed.clear(),this._componentRef=void 0,this.ngComponentOutlet)){let i=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;this._needToReCreateNgModuleInstance(A)&&(this._moduleRef?.destroy(),this.ngComponentOutletNgModule?this._moduleRef=kH(this.ngComponentOutletNgModule,BO(i)):this.ngComponentOutletNgModuleFactory?this._moduleRef=this.ngComponentOutletNgModuleFactory.create(BO(i)):this._moduleRef=void 0),this._componentRef=this._viewContainerRef.createComponent(this.ngComponentOutlet,{injector:i,ngModuleRef:this._moduleRef,projectableNodes:this.ngComponentOutletContent})}}ngDoCheck(){if(this._componentRef){if(this.ngComponentOutletInputs)for(let A of Object.keys(this.ngComponentOutletInputs))this._inputsUsed.set(A,!0);this._applyInputStateDiff(this._componentRef)}}ngOnDestroy(){this._moduleRef?.destroy()}_applyInputStateDiff(A){for(let[i,n]of this._inputsUsed)n?(A.setInput(i,this.ngComponentOutletInputs[i]),this._inputsUsed.set(i,!1)):(A.setInput(i,void 0),this._inputsUsed.delete(i))}static \u0275fac=function(i){return new(i||t)(Ge(Sn))};static \u0275dir=WA({type:t,selectors:[["","ngComponentOutlet",""]],inputs:{ngComponentOutlet:"ngComponentOutlet",ngComponentOutletInputs:"ngComponentOutletInputs",ngComponentOutletInjector:"ngComponentOutletInjector",ngComponentOutletContent:"ngComponentOutletContent",ngComponentOutletNgModule:"ngComponentOutletNgModule",ngComponentOutletNgModuleFactory:"ngComponentOutletNgModuleFactory"},exportAs:["ngComponentOutlet"],features:[Xt]})}return t})();function BO(t){return t.get(Il).injector}var Sp=class{$implicit;ngForOf;index;count;constructor(e,A,i,n){this.$implicit=e,this.ngForOf=A,this.index=i,this.count=n}get first(){return this.index===0}get last(){return this.index===this.count-1}get even(){return this.index%2===0}get odd(){return!this.even}},Lp=(()=>{class t{_viewContainer;_template;_differs;set ngForOf(A){this._ngForOf=A,this._ngForOfDirty=!0}set ngForTrackBy(A){this._trackByFn=A}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(A,i,n){this._viewContainer=A,this._template=i,this._differs=n}set ngForTemplate(A){A&&(this._template=A)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;let A=this._ngForOf;!this._differ&&A&&(this._differ=this._differs.find(A).create(this.ngForTrackBy))}if(this._differ){let A=this._differ.diff(this._ngForOf);A&&this._applyChanges(A)}}_applyChanges(A){let i=this._viewContainer;A.forEachOperation((n,o,r)=>{if(n.previousIndex==null)i.createEmbeddedView(this._template,new Sp(n.item,this._ngForOf,-1,-1),r===null?void 0:r);else if(r==null)i.remove(o===null?void 0:o);else if(o!==null){let s=i.get(o);i.move(s,r),EO(s,n)}});for(let n=0,o=i.length;n{let o=i.get(n.currentIndex);EO(o,n)})}static ngTemplateContextGuard(A,i){return!0}static \u0275fac=function(i){return new(i||t)(Ge(Sn),Ge(mn),Ge(Ql))};static \u0275dir=WA({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return t})();function EO(t,e){t.context.$implicit=e.item}var Tu=(()=>{class t{_viewContainer;_context=new Rp;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(A,i){this._viewContainer=A,this._thenTemplateRef=i}set ngIf(A){this._context.$implicit=this._context.ngIf=A,this._updateView()}set ngIfThen(A){QO(A,!1),this._thenTemplateRef=A,this._thenViewRef=null,this._updateView()}set ngIfElse(A){QO(A,!1),this._elseTemplateRef=A,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(A,i){return!0}static \u0275fac=function(i){return new(i||t)(Ge(Sn),Ge(mn))};static \u0275dir=WA({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return t})(),Rp=class{$implicit=null;ngIf=null};function QO(t,e){if(t&&!t.createEmbeddedView)throw new te(2020,!1)}var Yb=(()=>{class t{_ngEl;_differs;_renderer;_ngStyle=null;_differ=null;constructor(A,i,n){this._ngEl=A,this._differs=i,this._renderer=n}set ngStyle(A){this._ngStyle=A,!this._differ&&A&&(this._differ=this._differs.find(A).create())}ngDoCheck(){if(this._differ){let A=this._differ.diff(this._ngStyle);A&&this._applyChanges(A)}}_setStyle(A,i){let[n,o]=A.split("."),r=n.indexOf("-")===-1?void 0:ll.DashCase;i!=null?this._renderer.setStyle(this._ngEl.nativeElement,n,o?`${i}${o}`:i,r):this._renderer.removeStyle(this._ngEl.nativeElement,n,r)}_applyChanges(A){A.forEachRemovedItem(i=>this._setStyle(i.key,null)),A.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),A.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static \u0275fac=function(i){return new(i||t)(Ge(se),Ge(yp),Ge(qi))};static \u0275dir=WA({type:t,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}})}return t})(),Hu=(()=>{class t{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;constructor(A){this._viewContainerRef=A}ngOnChanges(A){if(this._shouldRecreateView(A)){let i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet){this._viewRef=null;return}let n=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,n,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(A){return!!A.ngTemplateOutlet||!!A.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(A,i,n)=>this.ngTemplateOutletContext?Reflect.set(this.ngTemplateOutletContext,i,n):!1,get:(A,i,n)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,n)}})}static \u0275fac=function(i){return new(i||t)(Ge(Sn))};static \u0275dir=WA({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[Xt]})}return t})();function SBA(t,e){return new te(2100,!1)}var Kb=class{createSubscription(e,A){return ua(()=>e.subscribe({next:A,error:i=>{throw i}}))}dispose(e){ua(()=>e.unsubscribe())}},Ub=class{createSubscription(e,A){return e.then(i=>A?.(i),i=>{throw i}),{unsubscribe:()=>{A=null}}}dispose(e){e.unsubscribe()}},RBA=new Ub,LBA=new Kb,Qg=(()=>{class t{_ref;_latestValue=null;markForCheckOnValueUpdate=!0;_subscription=null;_obj=null;_strategy=null;constructor(A){this._ref=A}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(A){if(!this._obj){if(A)try{this.markForCheckOnValueUpdate=!1,this._subscribe(A)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return A!==this._obj?(this._dispose(),this.transform(A)):this._latestValue}_subscribe(A){this._obj=A,this._strategy=this._selectStrategy(A),this._subscription=this._strategy.createSubscription(A,i=>this._updateLatestValue(A,i))}_selectStrategy(A){if(k2(A))return RBA;if(wb(A))return LBA;throw SBA(t,A)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(A,i){A===this._obj&&(this._latestValue=i,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static \u0275fac=function(i){return new(i||t)(Ge(Et,16))};static \u0275pipe=$d({name:"async",type:t,pure:!1})}return t})();function xBA(t,e){return{key:t,value:e}}var Ou=(()=>{class t{differs;constructor(A){this.differs=A}differ;keyValues=[];compareFn=uO;transform(A,i=uO){if(!A||!(A instanceof Map)&&typeof A!="object")return null;this.differ??=this.differs.find(A).create();let n=this.differ.diff(A),o=i!==this.compareFn;return n&&(this.keyValues=[],n.forEachItem(r=>{this.keyValues.push(xBA(r.key,r.currentValue))})),(n||o)&&(i&&this.keyValues.sort(i),this.compareFn=i),this.keyValues}static \u0275fac=function(i){return new(i||t)(Ge(yp,16))};static \u0275pipe=$d({name:"keyvalue",type:t,pure:!1})}return t})();function uO(t,e){let A=t.key,i=e.key;if(A===i)return 0;if(A==null)return 1;if(i==null)return-1;if(typeof A=="string"&&typeof i=="string")return A{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();function zu(t,e){e=encodeURIComponent(e);for(let A of t.split(";")){let i=A.indexOf("="),[n,o]=i==-1?[A,""]:[A.slice(0,i),A.slice(i+1)];if(n.trim()===e)return decodeURIComponent(o)}return null}var xp="browser",hO="server";function ul(t){return t===xp}function Np(t){return t===hO}var KI=class{};var fO=(()=>{class t{static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new Tb(f(at),window)})}return t})(),Tb=class{document;window;offset=()=>[0,0];constructor(e,A){this.document=e,this.window=A}setOffset(e){Array.isArray(e)?this.offset=()=>e:this.offset=e}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(e){this.window.scrollTo(e[0],e[1])}scrollToAnchor(e){let A=NBA(this.document,e);A&&(this.scrollToElement(A),A.focus())}setHistoryScrollRestoration(e){this.window.history.scrollRestoration=e}scrollToElement(e){let A=e.getBoundingClientRect(),i=A.left+this.window.pageXOffset,n=A.top+this.window.pageYOffset,o=this.offset();this.window.scrollTo(i-o[0],n-o[1])}};function NBA(t,e){let A=t.getElementById(e)||t.getElementsByName(e)[0];if(A)return A;if(typeof t.createTreeWalker=="function"&&t.body&&typeof t.body.attachShadow=="function"){let i=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT),n=i.currentNode;for(;n;){let o=n.shadowRoot;if(o){let r=o.getElementById(e)||o.querySelector(`[name="${e}"]`);if(r)return r}n=i.nextNode()}}return null}var tB=class{},Pu=class{},N2=class t{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(e){e?typeof e=="string"?this.lazyInit=()=>{this.headers=new Map,e.split(` -`).forEach(A=>{let i=A.indexOf(":");if(i>0){let n=A.slice(0,i),o=A.slice(i+1).trim();this.addHeaderEntry(n,o)}})}:typeof Headers<"u"&&e instanceof Headers?(this.headers=new Map,e.forEach((A,i)=>{this.addHeaderEntry(i,A)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(e).forEach(([A,i])=>{this.setHeaderEntries(A,i)})}:this.headers=new Map}has(e){return this.init(),this.headers.has(e.toLowerCase())}get(e){this.init();let A=this.headers.get(e.toLowerCase());return A&&A.length>0?A[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(e){return this.init(),this.headers.get(e.toLowerCase())||null}append(e,A){return this.clone({name:e,value:A,op:"a"})}set(e,A){return this.clone({name:e,value:A,op:"s"})}delete(e,A){return this.clone({name:e,value:A,op:"d"})}maybeSetNormalizedName(e,A){this.normalizedNames.has(A)||this.normalizedNames.set(A,e)}init(){this.lazyInit&&(this.lazyInit instanceof t?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(e=>this.applyUpdate(e)),this.lazyUpdate=null))}copyFrom(e){e.init(),Array.from(e.headers.keys()).forEach(A=>{this.headers.set(A,e.headers.get(A)),this.normalizedNames.set(A,e.normalizedNames.get(A))})}clone(e){let A=new t;return A.lazyInit=this.lazyInit&&this.lazyInit instanceof t?this.lazyInit:this,A.lazyUpdate=(this.lazyUpdate||[]).concat([e]),A}applyUpdate(e){let A=e.name.toLowerCase();switch(e.op){case"a":case"s":let i=e.value;if(typeof i=="string"&&(i=[i]),i.length===0)return;this.maybeSetNormalizedName(e.name,A);let n=(e.op==="a"?this.headers.get(A):void 0)||[];n.push(...i),this.headers.set(A,n);break;case"d":let o=e.value;if(!o)this.headers.delete(A),this.normalizedNames.delete(A);else{let r=this.headers.get(A);if(!r)return;r=r.filter(s=>o.indexOf(s)===-1),r.length===0?(this.headers.delete(A),this.normalizedNames.delete(A)):this.headers.set(A,r)}break}}addHeaderEntry(e,A){let i=e.toLowerCase();this.maybeSetNormalizedName(e,i),this.headers.has(i)?this.headers.get(i).push(A):this.headers.set(i,[A])}setHeaderEntries(e,A){let i=(Array.isArray(A)?A:[A]).map(o=>o.toString()),n=e.toLowerCase();this.headers.set(n,i),this.maybeSetNormalizedName(e,n)}forEach(e){this.init(),Array.from(this.normalizedNames.keys()).forEach(A=>e(this.normalizedNames.get(A),this.headers.get(A)))}};var _p=class{encodeKey(e){return mO(e)}encodeValue(e){return mO(e)}decodeKey(e){return decodeURIComponent(e)}decodeValue(e){return decodeURIComponent(e)}};function FBA(t,e){let A=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(n=>{let o=n.indexOf("="),[r,s]=o==-1?[e.decodeKey(n),""]:[e.decodeKey(n.slice(0,o)),e.decodeValue(n.slice(o+1))],a=A.get(r)||[];a.push(s),A.set(r,a)}),A}var _BA=/%(\d[a-f0-9])/gi,GBA={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function mO(t){return encodeURIComponent(t).replace(_BA,(e,A)=>GBA[A]??e)}function Fp(t){return`${t}`}var w0=class t{map;encoder;updates=null;cloneFrom=null;constructor(e={}){if(this.encoder=e.encoder||new _p,e.fromString){if(e.fromObject)throw new te(2805,!1);this.map=FBA(e.fromString,this.encoder)}else e.fromObject?(this.map=new Map,Object.keys(e.fromObject).forEach(A=>{let i=e.fromObject[A],n=Array.isArray(i)?i.map(Fp):[Fp(i)];this.map.set(A,n)})):this.map=null}has(e){return this.init(),this.map.has(e)}get(e){this.init();let A=this.map.get(e);return A?A[0]:null}getAll(e){return this.init(),this.map.get(e)||null}keys(){return this.init(),Array.from(this.map.keys())}append(e,A){return this.clone({param:e,value:A,op:"a"})}appendAll(e){let A=[];return Object.keys(e).forEach(i=>{let n=e[i];Array.isArray(n)?n.forEach(o=>{A.push({param:i,value:o,op:"a"})}):A.push({param:i,value:n,op:"a"})}),this.clone(A)}set(e,A){return this.clone({param:e,value:A,op:"s"})}delete(e,A){return this.clone({param:e,value:A,op:"d"})}toString(){return this.init(),this.keys().map(e=>{let A=this.encoder.encodeKey(e);return this.map.get(e).map(i=>A+"="+this.encoder.encodeValue(i)).join("&")}).filter(e=>e!=="").join("&")}clone(e){let A=new t({encoder:this.encoder});return A.cloneFrom=this.cloneFrom||this,A.updates=(this.updates||[]).concat(e),A}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(e=>this.map.set(e,this.cloneFrom.map.get(e))),this.updates.forEach(e=>{switch(e.op){case"a":case"s":let A=(e.op==="a"?this.map.get(e.param):void 0)||[];A.push(Fp(e.value)),this.map.set(e.param,A);break;case"d":if(e.value!==void 0){let i=this.map.get(e.param)||[],n=i.indexOf(Fp(e.value));n!==-1&&i.splice(n,1),i.length>0?this.map.set(e.param,i):this.map.delete(e.param)}else{this.map.delete(e.param);break}}}),this.cloneFrom=this.updates=null)}};var Gp=class{map=new Map;set(e,A){return this.map.set(e,A),this}get(e){return this.map.has(e)||this.map.set(e,e.defaultValue()),this.map.get(e)}delete(e){return this.map.delete(e),this}has(e){return this.map.has(e)}keys(){return this.map.keys()}};function KBA(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function pO(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function DO(t){return typeof Blob<"u"&&t instanceof Blob}function wO(t){return typeof FormData<"u"&&t instanceof FormData}function UBA(t){return typeof URLSearchParams<"u"&&t instanceof URLSearchParams}var yO="Content-Type",vO="Accept",bO="X-Request-URL",kO="text/plain",SO="application/json",JBA=`${SO}, ${kO}, */*`,eB=class t{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;responseType="json";method;params;urlWithParams;transferCache;constructor(e,A,i,n){this.url=A,this.method=e.toUpperCase();let o;if(KBA(this.method)||n?(this.body=i!==void 0?i:null,o=n):o=i,o&&(this.reportProgress=!!o.reportProgress,this.withCredentials=!!o.withCredentials,o.responseType&&(this.responseType=o.responseType),o.headers&&(this.headers=o.headers),o.context&&(this.context=o.context),o.params&&(this.params=o.params),this.transferCache=o.transferCache),this.headers??=new N2,this.context??=new Gp,!this.params)this.params=new w0,this.urlWithParams=A;else{let r=this.params.toString();if(r.length===0)this.urlWithParams=A;else{let s=A.indexOf("?"),a=s===-1?"?":sC.set(d,e.setHeaders[d]),c)),e.setParams&&(g=Object.keys(e.setParams).reduce((C,d)=>C.set(d,e.setParams[d]),g)),new t(A,i,r,{params:g,headers:c,context:I,reportProgress:a,responseType:n,withCredentials:s,transferCache:o})}},UI=function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t}(UI||{}),iB=class{headers;status;statusText;url;ok;type;constructor(e,A=200,i="OK"){this.headers=e.headers||new N2,this.status=e.status!==void 0?e.status:A,this.statusText=e.statusText||i,this.url=e.url||null,this.ok=this.status>=200&&this.status<300}},Kp=class t extends iB{constructor(e={}){super(e)}type=UI.ResponseHeader;clone(e={}){return new t({headers:e.headers||this.headers,status:e.status!==void 0?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}},ju=class t extends iB{body;constructor(e={}){super(e),this.body=e.body!==void 0?e.body:null}type=UI.Response;clone(e={}){return new t({body:e.body!==void 0?e.body:this.body,headers:e.headers||this.headers,status:e.status!==void 0?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}},qu=class extends iB{name="HttpErrorResponse";message;error;ok=!1;constructor(e){super(e,0,"Unknown Error"),this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${e.url||"(unknown url)"}`:this.message=`Http failure response for ${e.url||"(unknown url)"}: ${e.status} ${e.statusText}`,this.error=e.error||null}},YBA=200,TBA=204;function Ob(t,e){return{body:e,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials,transferCache:t.transferCache}}var ks=(()=>{class t{handler;constructor(A){this.handler=A}request(A,i,n={}){let o;if(A instanceof eB)o=A;else{let a;n.headers instanceof N2?a=n.headers:a=new N2(n.headers);let c;n.params&&(n.params instanceof w0?c=n.params:c=new w0({fromObject:n.params})),o=new eB(A,i,n.body!==void 0?n.body:null,{headers:a,context:n.context,params:c,reportProgress:n.reportProgress,responseType:n.responseType||"json",withCredentials:n.withCredentials,transferCache:n.transferCache})}let r=Ce(o).pipe(tl(a=>this.handler.handle(a)));if(A instanceof eB||n.observe==="events")return r;let s=r.pipe(Nt(a=>a instanceof ju));switch(n.observe||"body"){case"body":switch(o.responseType){case"arraybuffer":return s.pipe(je(a=>{if(a.body!==null&&!(a.body instanceof ArrayBuffer))throw new te(2806,!1);return a.body}));case"blob":return s.pipe(je(a=>{if(a.body!==null&&!(a.body instanceof Blob))throw new te(2807,!1);return a.body}));case"text":return s.pipe(je(a=>{if(a.body!==null&&typeof a.body!="string")throw new te(2808,!1);return a.body}));case"json":default:return s.pipe(je(a=>a.body))}case"response":return s;default:throw new te(2809,!1)}}delete(A,i={}){return this.request("DELETE",A,i)}get(A,i={}){return this.request("GET",A,i)}head(A,i={}){return this.request("HEAD",A,i)}jsonp(A,i){return this.request("JSONP",A,{params:new w0().append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(A,i={}){return this.request("OPTIONS",A,i)}patch(A,i,n={}){return this.request("PATCH",A,Ob(n,i))}post(A,i,n={}){return this.request("POST",A,Ob(n,i))}put(A,i,n={}){return this.request("PUT",A,Ob(n,i))}static \u0275fac=function(i){return new(i||t)(be(tB))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();var HBA=new eA("");function RO(t,e){return e(t)}function OBA(t,e){return(A,i)=>e.intercept(A,{handle:n=>t(n,i)})}function zBA(t,e,A){return(i,n)=>da(A,()=>e(i,o=>t(o,n)))}var LO=new eA(""),Pb=new eA(""),xO=new eA(""),jb=new eA("",{providedIn:"root",factory:()=>!0});function PBA(){let t=null;return(e,A)=>{t===null&&(t=(f(LO,{optional:!0})??[]).reduceRight(OBA,RO));let i=f(m0);if(f(jb)){let o=i.add();return t(e,A).pipe(nl(()=>i.remove(o)))}else return t(e,A)}}var Up=(()=>{class t extends tB{backend;injector;chain=null;pendingTasks=f(m0);contributeToStability=f(jb);constructor(A,i){super(),this.backend=A,this.injector=i}handle(A){if(this.chain===null){let i=Array.from(new Set([...this.injector.get(Pb),...this.injector.get(xO,[])]));this.chain=i.reduceRight((n,o)=>zBA(n,o,this.injector),RO)}if(this.contributeToStability){let i=this.pendingTasks.add();return this.chain(A,n=>this.backend.handle(n)).pipe(nl(()=>this.pendingTasks.remove(i)))}else return this.chain(A,i=>this.backend.handle(i))}static \u0275fac=function(i){return new(i||t)(be(Pu),be(vr))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();var jBA=/^\)\]\}',?\n/,qBA=RegExp(`^${bO}:`,"m");function VBA(t){return"responseURL"in t&&t.responseURL?t.responseURL:qBA.test(t.getAllResponseHeaders())?t.getResponseHeader(bO):null}var zb=(()=>{class t{xhrFactory;constructor(A){this.xhrFactory=A}handle(A){if(A.method==="JSONP")throw new te(-2800,!1);let i=this.xhrFactory;return(i.\u0275loadImpl?ro(i.\u0275loadImpl()):Ce(null)).pipe($n(()=>new gt(o=>{let r=i.build();if(r.open(A.method,A.urlWithParams),A.withCredentials&&(r.withCredentials=!0),A.headers.forEach((E,u)=>r.setRequestHeader(E,u.join(","))),A.headers.has(vO)||r.setRequestHeader(vO,JBA),!A.headers.has(yO)){let E=A.detectContentTypeHeader();E!==null&&r.setRequestHeader(yO,E)}if(A.responseType){let E=A.responseType.toLowerCase();r.responseType=E!=="json"?E:"text"}let s=A.serializeBody(),a=null,c=()=>{if(a!==null)return a;let E=r.statusText||"OK",u=new N2(r.getAllResponseHeaders()),h=VBA(r)||A.url;return a=new Kp({headers:u,status:r.status,statusText:E,url:h}),a},g=()=>{let{headers:E,status:u,statusText:h,url:w}=c(),x=null;u!==TBA&&(x=typeof r.response>"u"?r.responseText:r.response),u===0&&(u=x?YBA:0);let R=u>=200&&u<300;if(A.responseType==="json"&&typeof x=="string"){let D=x;x=x.replace(jBA,"");try{x=x!==""?JSON.parse(x):null}catch(G){x=D,R&&(R=!1,x={error:G,text:x})}}R?(o.next(new ju({body:x,headers:E,status:u,statusText:h,url:w||void 0})),o.complete()):o.error(new qu({error:x,headers:E,status:u,statusText:h,url:w||void 0}))},I=E=>{let{url:u}=c(),h=new qu({error:E,status:r.status||0,statusText:r.statusText||"Unknown Error",url:u||void 0});o.error(h)},C=!1,d=E=>{C||(o.next(c()),C=!0);let u={type:UI.DownloadProgress,loaded:E.loaded};E.lengthComputable&&(u.total=E.total),A.responseType==="text"&&r.responseText&&(u.partialText=r.responseText),o.next(u)},B=E=>{let u={type:UI.UploadProgress,loaded:E.loaded};E.lengthComputable&&(u.total=E.total),o.next(u)};return r.addEventListener("load",g),r.addEventListener("error",I),r.addEventListener("timeout",I),r.addEventListener("abort",I),A.reportProgress&&(r.addEventListener("progress",d),s!==null&&r.upload&&r.upload.addEventListener("progress",B)),r.send(s),o.next({type:UI.Sent}),()=>{r.removeEventListener("error",I),r.removeEventListener("abort",I),r.removeEventListener("load",g),r.removeEventListener("timeout",I),A.reportProgress&&(r.removeEventListener("progress",d),s!==null&&r.upload&&r.upload.removeEventListener("progress",B)),r.readyState!==r.DONE&&r.abort()}})))}static \u0275fac=function(i){return new(i||t)(be(KI))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),NO=new eA(""),ZBA="XSRF-TOKEN",WBA=new eA("",{providedIn:"root",factory:()=>ZBA}),XBA="X-XSRF-TOKEN",$BA=new eA("",{providedIn:"root",factory:()=>XBA}),Vu=class{},AEA=(()=>{class t{doc;cookieName;lastCookieString="";lastToken=null;parseCount=0;constructor(A,i){this.doc=A,this.cookieName=i}getToken(){let A=this.doc.cookie||"";return A!==this.lastCookieString&&(this.parseCount++,this.lastToken=zu(A,this.cookieName),this.lastCookieString=A),this.lastToken}static \u0275fac=function(i){return new(i||t)(be(at),be(WBA))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();function eEA(t,e){let A=t.url.toLowerCase();if(!f(NO)||t.method==="GET"||t.method==="HEAD"||A.startsWith("http://")||A.startsWith("https://"))return e(t);let i=f(Vu).getToken(),n=f($BA);return i!=null&&!t.headers.has(n)&&(t=t.clone({headers:t.headers.set(n,i)})),e(t)}var qb=function(t){return t[t.Interceptors=0]="Interceptors",t[t.LegacyInterceptors=1]="LegacyInterceptors",t[t.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",t[t.NoXsrfProtection=3]="NoXsrfProtection",t[t.JsonpSupport=4]="JsonpSupport",t[t.RequestsMadeViaParent=5]="RequestsMadeViaParent",t[t.Fetch=6]="Fetch",t}(qb||{});function tEA(t,e){return{\u0275kind:t,\u0275providers:e}}function FO(...t){let e=[ks,zb,Up,{provide:tB,useExisting:Up},{provide:Pu,useFactory:()=>f(HBA,{optional:!0})??f(zb)},{provide:Pb,useValue:eEA,multi:!0},{provide:NO,useValue:!0},{provide:Vu,useClass:AEA}];for(let A of t)e.push(...A.\u0275providers);return vu(e)}var MO=new eA("");function _O(){return tEA(qb.LegacyInterceptors,[{provide:MO,useFactory:PBA},{provide:Pb,useExisting:MO,multi:!0}])}var Vb=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[FO(_O())]})}return t})();var OO=(()=>{class t{_renderer;_elementRef;onChange=A=>{};onTouched=()=>{};constructor(A,i){this._renderer=A,this._elementRef=i}setProperty(A,i){this._renderer.setProperty(this._elementRef.nativeElement,A,i)}registerOnTouched(A){this.onTouched=A}registerOnChange(A){this.onChange=A}setDisabledState(A){this.setProperty("disabled",A)}static \u0275fac=function(i){return new(i||t)(Ge(qi),Ge(se))};static \u0275dir=WA({type:t})}return t})(),iEA=(()=>{class t extends OO{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,features:[lt]})}return t})(),bc=new eA("");var nEA={provide:bc,useExisting:Ur(()=>kc),multi:!0};function oEA(){let t=$a()?$a().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}var rEA=new eA(""),kc=(()=>{class t extends OO{_compositionMode;_composing=!1;constructor(A,i,n){super(A,i),this._compositionMode=n,this._compositionMode==null&&(this._compositionMode=!oEA())}writeValue(A){let i=A??"";this.setProperty("value",i)}_handleInput(A){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(A)}_compositionStart(){this._composing=!0}_compositionEnd(A){this._composing=!1,this._compositionMode&&this.onChange(A)}static \u0275fac=function(i){return new(i||t)(Ge(qi),Ge(se),Ge(rEA,8))};static \u0275dir=WA({type:t,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,n){i&1&&mA("input",function(r){return n._handleInput(r.target.value)})("blur",function(){return n.onTouched()})("compositionstart",function(){return n._compositionStart()})("compositionend",function(r){return n._compositionEnd(r.target.value)})},standalone:!1,features:[ut([nEA]),lt]})}return t})();function $b(t){return t==null||Ak(t)===0}function Ak(t){return t==null?null:Array.isArray(t)||typeof t=="string"?t.length:t instanceof Set?t.size:null}var M0=new eA(""),th=new eA(""),sEA=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Ac=class{static min(e){return aEA(e)}static max(e){return cEA(e)}static required(e){return gEA(e)}static requiredTrue(e){return lEA(e)}static email(e){return IEA(e)}static minLength(e){return CEA(e)}static maxLength(e){return dEA(e)}static pattern(e){return BEA(e)}static nullValidator(e){return zO()}static compose(e){return WO(e)}static composeAsync(e){return XO(e)}};function aEA(t){return e=>{if(e.value==null||t==null)return null;let A=parseFloat(e.value);return!isNaN(A)&&A{if(e.value==null||t==null)return null;let A=parseFloat(e.value);return!isNaN(A)&&A>t?{max:{max:t,actual:e.value}}:null}}function gEA(t){return $b(t.value)?{required:!0}:null}function lEA(t){return t.value===!0?null:{required:!0}}function IEA(t){return $b(t.value)||sEA.test(t.value)?null:{email:!0}}function CEA(t){return e=>{let A=e.value?.length??Ak(e.value);return A===null||A===0?null:A{let A=e.value?.length??Ak(e.value);return A!==null&&A>t?{maxlength:{requiredLength:t,actualLength:A}}:null}}function BEA(t){if(!t)return zO;let e,A;return typeof t=="string"?(A="",t.charAt(0)!=="^"&&(A+="^"),A+=t,t.charAt(t.length-1)!=="$"&&(A+="$"),e=new RegExp(A)):(A=t.toString(),e=t),i=>{if($b(i.value))return null;let n=i.value;return e.test(n)?null:{pattern:{requiredPattern:A,actualValue:n}}}}function zO(t){return null}function PO(t){return t!=null}function jO(t){return k2(t)?ro(t):t}function qO(t){let e={};return t.forEach(A=>{e=A!=null?sA(sA({},e),A):e}),Object.keys(e).length===0?null:e}function VO(t,e){return e.map(A=>A(t))}function EEA(t){return!t.validate}function ZO(t){return t.map(e=>EEA(e)?e:A=>e.validate(A))}function WO(t){if(!t)return null;let e=t.filter(PO);return e.length==0?null:function(A){return qO(VO(A,e))}}function ek(t){return t!=null?WO(ZO(t)):null}function XO(t){if(!t)return null;let e=t.filter(PO);return e.length==0?null:function(A){let i=VO(A,e).map(jO);return gu(i).pipe(je(qO))}}function tk(t){return t!=null?XO(ZO(t)):null}function GO(t,e){return t===null?[e]:Array.isArray(t)?[...t,e]:[t,e]}function $O(t){return t._rawValidators}function Az(t){return t._rawAsyncValidators}function Zb(t){return t?Array.isArray(t)?t:[t]:[]}function Yp(t,e){return Array.isArray(t)?t.includes(e):t===e}function KO(t,e){let A=Zb(e);return Zb(t).forEach(n=>{Yp(A,n)||A.push(n)}),A}function UO(t,e){return Zb(e).filter(A=>!Yp(t,A))}var Tp=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(e){this._rawValidators=e||[],this._composedValidatorFn=ek(this._rawValidators)}_setAsyncValidators(e){this._rawAsyncValidators=e||[],this._composedAsyncValidatorFn=tk(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(e){this._onDestroyCallbacks.push(e)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(e=>e()),this._onDestroyCallbacks=[]}reset(e=void 0){this.control&&this.control.reset(e)}hasError(e,A){return this.control?this.control.hasError(e,A):!1}getError(e,A){return this.control?this.control.getError(e,A):null}},v0=class extends Tp{name;get formDirective(){return null}get path(){return null}},ec=class extends Tp{_parent=null;name=null;valueAccessor=null},Hp=class{_cd;constructor(e){this._cd=e}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}},QEA={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},sre=Fe(sA({},QEA),{"[class.ng-submitted]":"isSubmitted"}),Ss=(()=>{class t extends Hp{constructor(A){super(A)}static \u0275fac=function(i){return new(i||t)(Ge(ec,2))};static \u0275dir=WA({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,n){i&2&&he("ng-untouched",n.isUntouched)("ng-touched",n.isTouched)("ng-pristine",n.isPristine)("ng-dirty",n.isDirty)("ng-valid",n.isValid)("ng-invalid",n.isInvalid)("ng-pending",n.isPending)},standalone:!1,features:[lt]})}return t})(),ez=(()=>{class t extends Hp{constructor(A){super(A)}static \u0275fac=function(i){return new(i||t)(Ge(v0,10))};static \u0275dir=WA({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,n){i&2&&he("ng-untouched",n.isUntouched)("ng-touched",n.isTouched)("ng-pristine",n.isPristine)("ng-dirty",n.isDirty)("ng-valid",n.isValid)("ng-invalid",n.isInvalid)("ng-pending",n.isPending)("ng-submitted",n.isSubmitted)},standalone:!1,features:[lt]})}return t})();var Zu="VALID",Jp="INVALID",nB="PENDING",Wu="DISABLED",F2=class{},Op=class extends F2{value;source;constructor(e,A){super(),this.value=e,this.source=A}},$u=class extends F2{pristine;source;constructor(e,A){super(),this.pristine=e,this.source=A}},Ah=class extends F2{touched;source;constructor(e,A){super(),this.touched=e,this.source=A}},oB=class extends F2{status;source;constructor(e,A){super(),this.status=e,this.source=A}},zp=class extends F2{source;constructor(e){super(),this.source=e}},Pp=class extends F2{source;constructor(e){super(),this.source=e}};function ik(t){return(Zp(t)?t.validators:t)||null}function uEA(t){return Array.isArray(t)?ek(t):t||null}function nk(t,e){return(Zp(e)?e.asyncValidators:t)||null}function hEA(t){return Array.isArray(t)?tk(t):t||null}function Zp(t){return t!=null&&!Array.isArray(t)&&typeof t=="object"}function tz(t,e,A){let i=t.controls;if(!(e?Object.keys(i):i).length)throw new te(1e3,"");if(!i[A])throw new te(1001,"")}function iz(t,e,A){t._forEachChild((i,n)=>{if(A[n]===void 0)throw new te(1002,"")})}var rB=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(e,A){this._assignValidators(e),this._assignAsyncValidators(A)}get validator(){return this._composedValidatorFn}set validator(e){this._rawValidators=this._composedValidatorFn=e}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(e){this._rawAsyncValidators=this._composedAsyncValidatorFn=e}get parent(){return this._parent}get status(){return ua(this.statusReactive)}set status(e){ua(()=>this.statusReactive.set(e))}_status=Mc(()=>this.statusReactive());statusReactive=Ao(void 0);get valid(){return this.status===Zu}get invalid(){return this.status===Jp}get pending(){return this.status==nB}get disabled(){return this.status===Wu}get enabled(){return this.status!==Wu}errors;get pristine(){return ua(this.pristineReactive)}set pristine(e){ua(()=>this.pristineReactive.set(e))}_pristine=Mc(()=>this.pristineReactive());pristineReactive=Ao(!0);get dirty(){return!this.pristine}get touched(){return ua(this.touchedReactive)}set touched(e){ua(()=>this.touchedReactive.set(e))}_touched=Mc(()=>this.touchedReactive());touchedReactive=Ao(!1);get untouched(){return!this.touched}_events=new qA;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(e){this._assignValidators(e)}setAsyncValidators(e){this._assignAsyncValidators(e)}addValidators(e){this.setValidators(KO(e,this._rawValidators))}addAsyncValidators(e){this.setAsyncValidators(KO(e,this._rawAsyncValidators))}removeValidators(e){this.setValidators(UO(e,this._rawValidators))}removeAsyncValidators(e){this.setAsyncValidators(UO(e,this._rawAsyncValidators))}hasValidator(e){return Yp(this._rawValidators,e)}hasAsyncValidator(e){return Yp(this._rawAsyncValidators,e)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(e={}){let A=this.touched===!1;this.touched=!0;let i=e.sourceControl??this;this._parent&&!e.onlySelf&&this._parent.markAsTouched(Fe(sA({},e),{sourceControl:i})),A&&e.emitEvent!==!1&&this._events.next(new Ah(!0,i))}markAllAsTouched(e={}){this.markAsTouched({onlySelf:!0,emitEvent:e.emitEvent,sourceControl:this}),this._forEachChild(A=>A.markAllAsTouched(e))}markAsUntouched(e={}){let A=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=e.sourceControl??this;this._forEachChild(n=>{n.markAsUntouched({onlySelf:!0,emitEvent:e.emitEvent,sourceControl:i})}),this._parent&&!e.onlySelf&&this._parent._updateTouched(e,i),A&&e.emitEvent!==!1&&this._events.next(new Ah(!1,i))}markAsDirty(e={}){let A=this.pristine===!0;this.pristine=!1;let i=e.sourceControl??this;this._parent&&!e.onlySelf&&this._parent.markAsDirty(Fe(sA({},e),{sourceControl:i})),A&&e.emitEvent!==!1&&this._events.next(new $u(!1,i))}markAsPristine(e={}){let A=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=e.sourceControl??this;this._forEachChild(n=>{n.markAsPristine({onlySelf:!0,emitEvent:e.emitEvent})}),this._parent&&!e.onlySelf&&this._parent._updatePristine(e,i),A&&e.emitEvent!==!1&&this._events.next(new $u(!0,i))}markAsPending(e={}){this.status=nB;let A=e.sourceControl??this;e.emitEvent!==!1&&(this._events.next(new oB(this.status,A)),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.markAsPending(Fe(sA({},e),{sourceControl:A}))}disable(e={}){let A=this._parentMarkedDirty(e.onlySelf);this.status=Wu,this.errors=null,this._forEachChild(n=>{n.disable(Fe(sA({},e),{onlySelf:!0}))}),this._updateValue();let i=e.sourceControl??this;e.emitEvent!==!1&&(this._events.next(new Op(this.value,i)),this._events.next(new oB(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Fe(sA({},e),{skipPristineCheck:A}),this),this._onDisabledChange.forEach(n=>n(!0))}enable(e={}){let A=this._parentMarkedDirty(e.onlySelf);this.status=Zu,this._forEachChild(i=>{i.enable(Fe(sA({},e),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors(Fe(sA({},e),{skipPristineCheck:A}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(e,A){this._parent&&!e.onlySelf&&(this._parent.updateValueAndValidity(e),e.skipPristineCheck||this._parent._updatePristine({},A),this._parent._updateTouched({},A))}setParent(e){this._parent=e}getRawValue(){return this.value}updateValueAndValidity(e={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Zu||this.status===nB)&&this._runAsyncValidator(i,e.emitEvent)}let A=e.sourceControl??this;e.emitEvent!==!1&&(this._events.next(new Op(this.value,A)),this._events.next(new oB(this.status,A)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(Fe(sA({},e),{sourceControl:A}))}_updateTreeValidity(e={emitEvent:!0}){this._forEachChild(A=>A._updateTreeValidity(e)),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Wu:Zu}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(e,A){if(this.asyncValidator){this.status=nB,this._hasOwnPendingAsyncValidator={emitEvent:A!==!1};let i=jO(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(n=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(n,{emitEvent:A,shouldHaveEmitted:e})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let e=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,e}return!1}setErrors(e,A={}){this.errors=e,this._updateControlsErrors(A.emitEvent!==!1,this,A.shouldHaveEmitted)}get(e){let A=e;return A==null||(Array.isArray(A)||(A=A.split(".")),A.length===0)?null:A.reduce((i,n)=>i&&i._find(n),this)}getError(e,A){let i=A?this.get(A):this;return i&&i.errors?i.errors[e]:null}hasError(e,A){return!!this.getError(e,A)}get root(){let e=this;for(;e._parent;)e=e._parent;return e}_updateControlsErrors(e,A,i){this.status=this._calculateStatus(),e&&this.statusChanges.emit(this.status),(e||i)&&this._events.next(new oB(this.status,A)),this._parent&&this._parent._updateControlsErrors(e,A,i)}_initObservables(){this.valueChanges=new YA,this.statusChanges=new YA}_calculateStatus(){return this._allControlsDisabled()?Wu:this.errors?Jp:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(nB)?nB:this._anyControlsHaveStatus(Jp)?Jp:Zu}_anyControlsHaveStatus(e){return this._anyControls(A=>A.status===e)}_anyControlsDirty(){return this._anyControls(e=>e.dirty)}_anyControlsTouched(){return this._anyControls(e=>e.touched)}_updatePristine(e,A){let i=!this._anyControlsDirty(),n=this.pristine!==i;this.pristine=i,this._parent&&!e.onlySelf&&this._parent._updatePristine(e,A),n&&this._events.next(new $u(this.pristine,A))}_updateTouched(e={},A){this.touched=this._anyControlsTouched(),this._events.next(new Ah(this.touched,A)),this._parent&&!e.onlySelf&&this._parent._updateTouched(e,A)}_onDisabledChange=[];_registerOnCollectionChange(e){this._onCollectionChange=e}_setUpdateStrategy(e){Zp(e)&&e.updateOn!=null&&(this._updateOn=e.updateOn)}_parentMarkedDirty(e){let A=this._parent&&this._parent.dirty;return!e&&!!A&&!this._parent._anyControlsDirty()}_find(e){return null}_assignValidators(e){this._rawValidators=Array.isArray(e)?e.slice():e,this._composedValidatorFn=uEA(this._rawValidators)}_assignAsyncValidators(e){this._rawAsyncValidators=Array.isArray(e)?e.slice():e,this._composedAsyncValidatorFn=hEA(this._rawAsyncValidators)}},sB=class extends rB{constructor(e,A,i){super(ik(A),nk(i,A)),this.controls=e,this._initObservables(),this._setUpdateStrategy(A),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(e,A){return this.controls[e]?this.controls[e]:(this.controls[e]=A,A.setParent(this),A._registerOnCollectionChange(this._onCollectionChange),A)}addControl(e,A,i={}){this.registerControl(e,A),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(e,A={}){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),delete this.controls[e],this.updateValueAndValidity({emitEvent:A.emitEvent}),this._onCollectionChange()}setControl(e,A,i={}){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),delete this.controls[e],A&&this.registerControl(e,A),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(e){return this.controls.hasOwnProperty(e)&&this.controls[e].enabled}setValue(e,A={}){iz(this,!0,e),Object.keys(e).forEach(i=>{tz(this,!0,i),this.controls[i].setValue(e[i],{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A)}patchValue(e,A={}){e!=null&&(Object.keys(e).forEach(i=>{let n=this.controls[i];n&&n.patchValue(e[i],{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A))}reset(e={},A={}){this._forEachChild((i,n)=>{i.reset(e?e[n]:null,{onlySelf:!0,emitEvent:A.emitEvent})}),this._updatePristine(A,this),this._updateTouched(A,this),this.updateValueAndValidity(A)}getRawValue(){return this._reduceChildren({},(e,A,i)=>(e[i]=A.getRawValue(),e))}_syncPendingControls(){let e=this._reduceChildren(!1,(A,i)=>i._syncPendingControls()?!0:A);return e&&this.updateValueAndValidity({onlySelf:!0}),e}_forEachChild(e){Object.keys(this.controls).forEach(A=>{let i=this.controls[A];i&&e(i,A)})}_setUpControls(){this._forEachChild(e=>{e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(e){for(let[A,i]of Object.entries(this.controls))if(this.contains(A)&&e(i))return!0;return!1}_reduceValue(){let e={};return this._reduceChildren(e,(A,i,n)=>((i.enabled||this.disabled)&&(A[n]=i.value),A))}_reduceChildren(e,A){let i=e;return this._forEachChild((n,o)=>{i=A(i,n,o)}),i}_allControlsDisabled(){for(let e of Object.keys(this.controls))if(this.controls[e].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(e){return this.controls.hasOwnProperty(e)?this.controls[e]:null}};var Wb=class extends sB{};var aB=new eA("",{providedIn:"root",factory:()=>Wp}),Wp="always";function nz(t,e){return[...e.path,t]}function eh(t,e,A=Wp){ok(t,e),e.valueAccessor.writeValue(t.value),(t.disabled||A==="always")&&e.valueAccessor.setDisabledState?.(t.disabled),mEA(t,e),DEA(t,e),pEA(t,e),fEA(t,e)}function jp(t,e,A=!0){let i=()=>{};e.valueAccessor&&(e.valueAccessor.registerOnChange(i),e.valueAccessor.registerOnTouched(i)),Vp(t,e),t&&(e._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function qp(t,e){t.forEach(A=>{A.registerOnValidatorChange&&A.registerOnValidatorChange(e)})}function fEA(t,e){if(e.valueAccessor.setDisabledState){let A=i=>{e.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(A),e._registerOnDestroy(()=>{t._unregisterOnDisabledChange(A)})}}function ok(t,e){let A=$O(t);e.validator!==null?t.setValidators(GO(A,e.validator)):typeof A=="function"&&t.setValidators([A]);let i=Az(t);e.asyncValidator!==null?t.setAsyncValidators(GO(i,e.asyncValidator)):typeof i=="function"&&t.setAsyncValidators([i]);let n=()=>t.updateValueAndValidity();qp(e._rawValidators,n),qp(e._rawAsyncValidators,n)}function Vp(t,e){let A=!1;if(t!==null){if(e.validator!==null){let n=$O(t);if(Array.isArray(n)&&n.length>0){let o=n.filter(r=>r!==e.validator);o.length!==n.length&&(A=!0,t.setValidators(o))}}if(e.asyncValidator!==null){let n=Az(t);if(Array.isArray(n)&&n.length>0){let o=n.filter(r=>r!==e.asyncValidator);o.length!==n.length&&(A=!0,t.setAsyncValidators(o))}}}let i=()=>{};return qp(e._rawValidators,i),qp(e._rawAsyncValidators,i),A}function mEA(t,e){e.valueAccessor.registerOnChange(A=>{t._pendingValue=A,t._pendingChange=!0,t._pendingDirty=!0,t.updateOn==="change"&&oz(t,e)})}function pEA(t,e){e.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,t.updateOn==="blur"&&t._pendingChange&&oz(t,e),t.updateOn!=="submit"&&t.markAsTouched()})}function oz(t,e){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function DEA(t,e){let A=(i,n)=>{e.valueAccessor.writeValue(i),n&&e.viewToModelUpdate(i)};t.registerOnChange(A),e._registerOnDestroy(()=>{t._unregisterOnChange(A)})}function rz(t,e){t==null,ok(t,e)}function wEA(t,e){return Vp(t,e)}function rk(t,e){if(!t.hasOwnProperty("model"))return!1;let A=t.model;return A.isFirstChange()?!0:!Object.is(e,A.currentValue)}function yEA(t){return Object.getPrototypeOf(t.constructor)===iEA}function sz(t,e){t._syncPendingControls(),e.forEach(A=>{let i=A.control;i.updateOn==="submit"&&i._pendingChange&&(A.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function sk(t,e){if(!e)return null;Array.isArray(e);let A,i,n;return e.forEach(o=>{o.constructor===kc?A=o:yEA(o)?i=o:n=o}),n||i||A||null}function vEA(t,e){let A=t.indexOf(e);A>-1&&t.splice(A,1)}var MEA={provide:v0,useExisting:Ur(()=>ih)},Xu=Promise.resolve(),ih=(()=>{class t extends v0{callSetDisabledState;get submitted(){return ua(this.submittedReactive)}_submitted=Mc(()=>this.submittedReactive());submittedReactive=Ao(!1);_directives=new Set;form;ngSubmit=new YA;options;constructor(A,i,n){super(),this.callSetDisabledState=n,this.form=new sB({},ek(A),tk(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(A){Xu.then(()=>{let i=this._findContainer(A.path);A.control=i.registerControl(A.name,A.control),eh(A.control,A,this.callSetDisabledState),A.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(A)})}getControl(A){return this.form.get(A.path)}removeControl(A){Xu.then(()=>{let i=this._findContainer(A.path);i&&i.removeControl(A.name),this._directives.delete(A)})}addFormGroup(A){Xu.then(()=>{let i=this._findContainer(A.path),n=new sB({});rz(n,A),i.registerControl(A.name,n),n.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(A){Xu.then(()=>{let i=this._findContainer(A.path);i&&i.removeControl(A.name)})}getFormGroup(A){return this.form.get(A.path)}updateModel(A,i){Xu.then(()=>{this.form.get(A.path).setValue(i)})}setValue(A){this.control.setValue(A)}onSubmit(A){return this.submittedReactive.set(!0),sz(this.form,this._directives),this.ngSubmit.emit(A),this.form._events.next(new zp(this.control)),A?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(A=void 0){this.form.reset(A),this.submittedReactive.set(!1),this.form._events.next(new Pp(this.form))}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(A){return A.pop(),A.length?this.form.get(A):this.form}static \u0275fac=function(i){return new(i||t)(Ge(M0,10),Ge(th,10),Ge(aB,8))};static \u0275dir=WA({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,n){i&1&&mA("submit",function(r){return n.onSubmit(r)})("reset",function(){return n.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[ut([MEA]),lt]})}return t})();function JO(t,e){let A=t.indexOf(e);A>-1&&t.splice(A,1)}function YO(t){return typeof t=="object"&&t!==null&&Object.keys(t).length===2&&"value"in t&&"disabled"in t}var y0=class extends rB{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(e=null,A,i){super(ik(A),nk(i,A)),this._applyFormState(e),this._setUpdateStrategy(A),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Zp(A)&&(A.nonNullable||A.initialValueIsDefault)&&(YO(e)?this.defaultValue=e.value:this.defaultValue=e)}setValue(e,A={}){this.value=this._pendingValue=e,this._onChange.length&&A.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,A.emitViewToModelChange!==!1)),this.updateValueAndValidity(A)}patchValue(e,A={}){this.setValue(e,A)}reset(e=this.defaultValue,A={}){this._applyFormState(e),this.markAsPristine(A),this.markAsUntouched(A),this.setValue(this.value,A),this._pendingChange=!1}_updateValue(){}_anyControls(e){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(e){this._onChange.push(e)}_unregisterOnChange(e){JO(this._onChange,e)}registerOnDisabledChange(e){this._onDisabledChange.push(e)}_unregisterOnDisabledChange(e){JO(this._onDisabledChange,e)}_forEachChild(e){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(e){YO(e)?(this.value=this._pendingValue=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=e}};var bEA=t=>t instanceof y0;var kEA={provide:ec,useExisting:Ur(()=>tc)},TO=Promise.resolve(),tc=(()=>{class t extends ec{_changeDetectorRef;callSetDisabledState;control=new y0;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new YA;constructor(A,i,n,o,r,s){super(),this._changeDetectorRef=r,this.callSetDisabledState=s,this._parent=A,this._setValidators(i),this._setAsyncValidators(n),this.valueAccessor=sk(this,o)}ngOnChanges(A){if(this._checkForErrors(),!this._registered||"name"in A){if(this._registered&&(this._checkName(),this.formDirective)){let i=A.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in A&&this._updateDisabled(A),rk(A,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){eh(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(A){TO.then(()=>{this.control.setValue(A,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(A){let i=A.isDisabled.currentValue,n=i!==0&&ge(i);TO.then(()=>{n&&!this.control.disabled?this.control.disable():!n&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(A){return this._parent?nz(A,this._parent):[A]}static \u0275fac=function(i){return new(i||t)(Ge(v0,9),Ge(M0,10),Ge(th,10),Ge(bc,10),Ge(Et,8),Ge(aB,8))};static \u0275dir=WA({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[ut([kEA]),lt,Xt]})}return t})();var az=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return t})();var ak=new eA(""),SEA={provide:ec,useExisting:Ur(()=>ck)},ck=(()=>{class t extends ec{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(A){}model;update=new YA;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(A,i,n,o,r){super(),this._ngModelWarningConfig=o,this.callSetDisabledState=r,this._setValidators(A),this._setAsyncValidators(i),this.valueAccessor=sk(this,n)}ngOnChanges(A){if(this._isControlChanged(A)){let i=A.form.previousValue;i&&jp(i,this,!1),eh(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}rk(A,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&jp(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}_isControlChanged(A){return A.hasOwnProperty("form")}static \u0275fac=function(i){return new(i||t)(Ge(M0,10),Ge(th,10),Ge(bc,10),Ge(ak,8),Ge(aB,8))};static \u0275dir=WA({type:t,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[ut([SEA]),lt,Xt]})}return t})(),REA={provide:v0,useExisting:Ur(()=>YI)},YI=(()=>{class t extends v0{callSetDisabledState;get submitted(){return ua(this._submittedReactive)}set submitted(A){this._submittedReactive.set(A)}_submitted=Mc(()=>this._submittedReactive());_submittedReactive=Ao(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];form=null;ngSubmit=new YA;constructor(A,i,n){super(),this.callSetDisabledState=n,this._setValidators(A),this._setAsyncValidators(i)}ngOnChanges(A){A.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Vp(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(A){let i=this.form.get(A.path);return eh(i,A,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(A),i}getControl(A){return this.form.get(A.path)}removeControl(A){jp(A.control||null,A,!1),vEA(this.directives,A)}addFormGroup(A){this._setUpFormContainer(A)}removeFormGroup(A){this._cleanUpFormContainer(A)}getFormGroup(A){return this.form.get(A.path)}addFormArray(A){this._setUpFormContainer(A)}removeFormArray(A){this._cleanUpFormContainer(A)}getFormArray(A){return this.form.get(A.path)}updateModel(A,i){this.form.get(A.path).setValue(i)}onSubmit(A){return this._submittedReactive.set(!0),sz(this.form,this.directives),this.ngSubmit.emit(A),this.form._events.next(new zp(this.control)),A?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(A=void 0){this.form.reset(A),this._submittedReactive.set(!1),this.form._events.next(new Pp(this.form))}_updateDomValue(){this.directives.forEach(A=>{let i=A.control,n=this.form.get(A.path);i!==n&&(jp(i||null,A),bEA(n)&&(eh(n,A,this.callSetDisabledState),A.control=n))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(A){let i=this.form.get(A.path);rz(i,A),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(A){if(this.form){let i=this.form.get(A.path);i&&wEA(i,A)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){ok(this.form,this),this._oldForm&&Vp(this._oldForm,this)}static \u0275fac=function(i){return new(i||t)(Ge(M0,10),Ge(th,10),Ge(aB,8))};static \u0275dir=WA({type:t,selectors:[["","formGroup",""]],hostBindings:function(i,n){i&1&&mA("submit",function(r){return n.onSubmit(r)})("reset",function(){return n.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[ut([REA]),lt,Xt]})}return t})();var LEA={provide:ec,useExisting:Ur(()=>gk)},gk=(()=>{class t extends ec{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(A){}model;update=new YA;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(A,i,n,o,r){super(),this._ngModelWarningConfig=r,this._parent=A,this._setValidators(i),this._setAsyncValidators(n),this.valueAccessor=sk(this,o)}ngOnChanges(A){this._added||this._setUpControl(),rk(A,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}get path(){return nz(this.name==null?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_setUpControl(){this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||t)(Ge(v0,13),Ge(M0,10),Ge(th,10),Ge(bc,10),Ge(ak,8))};static \u0275dir=WA({type:t,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[ut([LEA]),lt,Xt]})}return t})();var cz=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})(),Xb=class extends rB{constructor(e,A,i){super(ik(A),nk(i,A)),this.controls=e,this._initObservables(),this._setUpdateStrategy(A),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(e){return this.controls[this._adjustIndex(e)]}push(e,A={}){this.controls.push(e),this._registerControl(e),this.updateValueAndValidity({emitEvent:A.emitEvent}),this._onCollectionChange()}insert(e,A,i={}){this.controls.splice(e,0,A),this._registerControl(A),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(e,A={}){let i=this._adjustIndex(e);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:A.emitEvent})}setControl(e,A,i={}){let n=this._adjustIndex(e);n<0&&(n=0),this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),this.controls.splice(n,1),A&&(this.controls.splice(n,0,A),this._registerControl(A)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(e,A={}){iz(this,!1,e),e.forEach((i,n)=>{tz(this,!1,n),this.at(n).setValue(i,{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A)}patchValue(e,A={}){e!=null&&(e.forEach((i,n)=>{this.at(n)&&this.at(n).patchValue(i,{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A))}reset(e=[],A={}){this._forEachChild((i,n)=>{i.reset(e[n],{onlySelf:!0,emitEvent:A.emitEvent})}),this._updatePristine(A,this),this._updateTouched(A,this),this.updateValueAndValidity(A)}getRawValue(){return this.controls.map(e=>e.getRawValue())}clear(e={}){this.controls.length<1||(this._forEachChild(A=>A._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:e.emitEvent}))}_adjustIndex(e){return e<0?e+this.length:e}_syncPendingControls(){let e=this.controls.reduce((A,i)=>i._syncPendingControls()?!0:A,!1);return e&&this.updateValueAndValidity({onlySelf:!0}),e}_forEachChild(e){this.controls.forEach((A,i)=>{e(A,i)})}_updateValue(){this.value=this.controls.filter(e=>e.enabled||this.disabled).map(e=>e.value)}_anyControls(e){return this.controls.some(A=>A.enabled&&e(A))}_setUpControls(){this._forEachChild(e=>this._registerControl(e))}_allControlsDisabled(){for(let e of this.controls)if(e.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(e){e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)}_find(e){return this.at(e)??null}};function HO(t){return!!t&&(t.asyncValidators!==void 0||t.validators!==void 0||t.updateOn!==void 0)}var gz=(()=>{class t{useNonNullable=!1;get nonNullable(){let A=new t;return A.useNonNullable=!0,A}group(A,i=null){let n=this._reduceControls(A),o={};return HO(i)?o=i:i!==null&&(o.validators=i.validator,o.asyncValidators=i.asyncValidator),new sB(n,o)}record(A,i=null){let n=this._reduceControls(A);return new Wb(n,i)}control(A,i,n){let o={};return this.useNonNullable?(HO(i)?o=i:(o.validators=i,o.asyncValidators=n),new y0(A,Fe(sA({},o),{nonNullable:!0}))):new y0(A,i,n)}array(A,i,n){let o=A.map(r=>this._createControl(r));return new Xb(o,i,n)}_reduceControls(A){let i={};return Object.keys(A).forEach(n=>{i[n]=this._createControl(A[n])}),i}_createControl(A){if(A instanceof y0)return A;if(A instanceof rB)return A;if(Array.isArray(A)){let i=A[0],n=A.length>1?A[1]:null,o=A.length>2?A[2]:null;return this.control(i,n,o)}else return this.control(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Mr=(()=>{class t{static withConfig(A){return{ngModule:t,providers:[{provide:aB,useValue:A.callSetDisabledState??Wp}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[cz]})}return t})(),cB=(()=>{class t{static withConfig(A){return{ngModule:t,providers:[{provide:ak,useValue:A.warnOnNgModelWithFormControl??"always"},{provide:aB,useValue:A.callSetDisabledState??Wp}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[cz]})}return t})();var Ik;try{Ik=typeof Intl<"u"&&Intl.v8BreakIterator}catch{Ik=!1}var ni=(()=>{class t{_platformId=f(El);isBrowser=this._platformId?ul(this._platformId):typeof document=="object"&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!!(window.chrome||Ik)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var gB,lz=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function Ck(){if(gB)return gB;if(typeof document!="object"||!document)return gB=new Set(lz),gB;let t=document.createElement("input");return gB=new Set(lz.filter(e=>(t.setAttribute("type",e),t.type===e))),gB}var nh;function xEA(){if(nh==null&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>nh=!0}))}finally{nh=nh||!1}return nh}function Sc(t){return xEA()?t:!!t.capture}var hg=function(t){return t[t.NORMAL=0]="NORMAL",t[t.NEGATED=1]="NEGATED",t[t.INVERTED=2]="INVERTED",t}(hg||{}),Xp,TI;function $p(){if(TI==null){if(typeof document!="object"||!document||typeof Element!="function"||!Element)return TI=!1,TI;if("scrollBehavior"in document.documentElement.style)TI=!0;else{let t=Element.prototype.scrollTo;t?TI=!/\{\s*\[native code\]\s*\}/.test(t.toString()):TI=!1}}return TI}function lB(){if(typeof document!="object"||!document)return hg.NORMAL;if(Xp==null){let t=document.createElement("div"),e=t.style;t.dir="rtl",e.width="1px",e.overflow="auto",e.visibility="hidden",e.pointerEvents="none",e.position="absolute";let A=document.createElement("div"),i=A.style;i.width="2px",i.height="1px",t.appendChild(A),document.body.appendChild(t),Xp=hg.NORMAL,t.scrollLeft===0&&(t.scrollLeft=1,Xp=t.scrollLeft===0?hg.NEGATED:hg.INVERTED),t.remove()}return Xp}var lk;function NEA(){if(lk==null){let t=typeof document<"u"?document.head:null;lk=!!(t&&(t.createShadowRoot||t.attachShadow))}return lk}function Iz(t){if(NEA()){let e=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&e instanceof ShadowRoot)return e}return null}function IB(){let t=typeof document<"u"&&document?document.activeElement:null;for(;t&&t.shadowRoot;){let e=t.shadowRoot.activeElement;if(e===t)break;t=e}return t}function ic(t){return t.composedPath?t.composedPath()[0]:t.target}function dk(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}function Bk(t,e,A,i,n){let o=parseInt(Nb.major),r=parseInt(Nb.minor);return o>19||o===19&&r>0||o===0&&r===0?t.listen(e,A,i,n):(e.addEventListener(A,i,n),()=>{e.removeEventListener(A,i,n)})}var A6=new WeakMap,Pn=(()=>{class t{_appRef;_injector=f(Zt);_environmentInjector=f(vr);load(A){let i=this._appRef=this._appRef||this._injector.get(Ca),n=A6.get(i);n||(n={loaders:new Set,refs:[]},A6.set(i,n),i.onDestroy(()=>{A6.get(i)?.refs.forEach(o=>o.destroy()),A6.delete(i)})),n.loaders.has(A)||(n.loaders.add(A),n.refs.push(vp(A,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),oh=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],exportAs:["cdkVisuallyHidden"],decls:0,vars:0,template:function(i,n){},styles:[".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}"],encapsulation:2,changeDetection:0})}return t})();function sr(t,...e){return e.length?e.some(A=>t[A]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}function Ar(t){return t!=null&&`${t}`!="false"}function Zs(t,e=0){return Ek(t)?Number(t):arguments.length===2?e:0}function Ek(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}function CB(t){return Array.isArray(t)?t:[t]}function hr(t){return t==null?"":typeof t=="string"?t:`${t}px`}function fa(t){return t instanceof se?t.nativeElement:t}function FEA(t){if(t.type==="characterData"&&t.target instanceof Comment)return!0;if(t.type==="childList"){for(let e=0;e{class t{create(A){return typeof MutationObserver>"u"?null:new MutationObserver(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),dz=(()=>{class t{_mutationObserverFactory=f(Cz);_observedElements=new Map;_ngZone=f(ye);constructor(){}ngOnDestroy(){this._observedElements.forEach((A,i)=>this._cleanupObserver(i))}observe(A){let i=fa(A);return new gt(n=>{let r=this._observeElement(i).pipe(je(s=>s.filter(a=>!FEA(a))),Nt(s=>!!s.length)).subscribe(s=>{this._ngZone.run(()=>{n.next(s)})});return()=>{r.unsubscribe(),this._unobserveElement(i)}})}_observeElement(A){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(A))this._observedElements.get(A).count++;else{let i=new qA,n=this._mutationObserverFactory.create(o=>i.next(o));n&&n.observe(A,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(A,{observer:n,stream:i,count:1})}return this._observedElements.get(A).stream})}_unobserveElement(A){this._observedElements.has(A)&&(this._observedElements.get(A).count--,this._observedElements.get(A).count||this._cleanupObserver(A))}_cleanupObserver(A){if(this._observedElements.has(A)){let{observer:i,stream:n}=this._observedElements.get(A);i&&i.disconnect(),n.complete(),this._observedElements.delete(A)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),e6=(()=>{class t{_contentObserver=f(dz);_elementRef=f(se);event=new YA;get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._disabled?this._unsubscribe():this._subscribe()}_disabled=!1;get debounce(){return this._debounce}set debounce(A){this._debounce=Zs(A),this._subscribe()}_debounce;_currentSubscription=null;constructor(){}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();let A=this._contentObserver.observe(this._elementRef);this._currentSubscription=(this.debounce?A.pipe(ag(this.debounce)):A).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",ge],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}return t})(),rh=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[Cz]})}return t})();var Bz=new Set,HI,_EA=(()=>{class t{_platform=f(ni);_nonce=f(bu,{optional:!0});_matchMedia;constructor(){this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):KEA}matchMedia(A){return(this._platform.WEBKIT||this._platform.BLINK)&&GEA(A,this._nonce),this._matchMedia(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function GEA(t,e){if(!Bz.has(t))try{HI||(HI=document.createElement("style"),e&&HI.setAttribute("nonce",e),HI.setAttribute("type","text/css"),document.head.appendChild(HI)),HI.sheet&&(HI.sheet.insertRule(`@media ${t} {body{ }}`,0),Bz.add(t))}catch(A){console.error(A)}}function KEA(t){return{matches:t==="all"||t==="",media:t,addListener:()=>{},removeListener:()=>{}}}var t6=(()=>{class t{_mediaMatcher=f(_EA);_zone=f(ye);_queries=new Map;_destroySubject=new qA;constructor(){}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(A){return Ez(CB(A)).some(n=>this._registerQuery(n).mql.matches)}observe(A){let n=Ez(CB(A)).map(r=>this._registerQuery(r).observable),o=ga(n);return o=Q2(o.pipe(Xn(1)),o.pipe(mI(1),ag(0))),o.pipe(je(r=>{let s={matches:!1,breakpoints:{}};return r.forEach(({matches:a,query:c})=>{s.matches=s.matches||a,s.breakpoints[c]=a}),s}))}_registerQuery(A){if(this._queries.has(A))return this._queries.get(A);let i=this._mediaMatcher.matchMedia(A),o={observable:new gt(r=>{let s=a=>this._zone.run(()=>r.next(a));return i.addListener(s),()=>{i.removeListener(s)}}).pipe(On(i),je(({matches:r})=>({query:A,matches:r})),kt(this._destroySubject)),mql:i};return this._queries.set(A,o),o}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Ez(t){return t.map(e=>e.split(",")).reduce((e,A)=>e.concat(A)).map(e=>e.trim())}var Qz={XSmall:"(max-width: 599.98px)",Small:"(min-width: 600px) and (max-width: 959.98px)",Medium:"(min-width: 960px) and (max-width: 1279.98px)",Large:"(min-width: 1280px) and (max-width: 1919.98px)",XLarge:"(min-width: 1920px)",Handset:"(max-width: 599.98px) and (orientation: portrait), (max-width: 959.98px) and (orientation: landscape)",Tablet:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), (min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",Web:"(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)",HandsetPortrait:"(max-width: 599.98px) and (orientation: portrait)",TabletPortrait:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)",WebPortrait:"(min-width: 840px) and (orientation: portrait)",HandsetLandscape:"(max-width: 959.98px) and (orientation: landscape)",TabletLandscape:"(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",WebLandscape:"(min-width: 1280px) and (orientation: landscape)"};var pz=" ";function wk(t,e,A){let i=r6(t,e);A=A.trim(),!i.some(n=>n.trim()===A)&&(i.push(A),t.setAttribute(e,i.join(pz)))}function c6(t,e,A){let i=r6(t,e);A=A.trim();let n=i.filter(o=>o!==A);n.length?t.setAttribute(e,n.join(pz)):t.removeAttribute(e)}function r6(t,e){return t.getAttribute(e)?.match(/\S+/g)??[]}var Dz="cdk-describedby-message",i6="cdk-describedby-host",fk=0,wz=(()=>{class t{_platform=f(ni);_document=f(at);_messageRegistry=new Map;_messagesContainer=null;_id=`${fk++}`;constructor(){f(Pn).load(oh),this._id=f(Vd)+"-"+fk++}describe(A,i,n){if(!this._canBeDescribed(A,i))return;let o=Qk(i,n);typeof i!="string"?(uz(i,this._id),this._messageRegistry.set(o,{messageElement:i,referenceCount:0})):this._messageRegistry.has(o)||this._createMessageElement(i,n),this._isElementDescribedByMessage(A,o)||this._addMessageReference(A,o)}removeDescription(A,i,n){if(!i||!this._isElementNode(A))return;let o=Qk(i,n);if(this._isElementDescribedByMessage(A,o)&&this._removeMessageReference(A,o),typeof i=="string"){let r=this._messageRegistry.get(o);r&&r.referenceCount===0&&this._deleteMessageElement(o)}this._messagesContainer?.childNodes.length===0&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){let A=this._document.querySelectorAll(`[${i6}="${this._id}"]`);for(let i=0;in.indexOf(Dz)!=0);A.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(A,i){let n=this._messageRegistry.get(i);wk(A,"aria-describedby",n.messageElement.id),A.setAttribute(i6,this._id),n.referenceCount++}_removeMessageReference(A,i){let n=this._messageRegistry.get(i);n.referenceCount--,c6(A,"aria-describedby",n.messageElement.id),A.removeAttribute(i6)}_isElementDescribedByMessage(A,i){let n=r6(A,"aria-describedby"),o=this._messageRegistry.get(i),r=o&&o.messageElement.id;return!!r&&n.indexOf(r)!=-1}_canBeDescribed(A,i){if(!this._isElementNode(A))return!1;if(i&&typeof i=="object")return!0;let n=i==null?"":`${i}`.trim(),o=A.getAttribute("aria-label");return n?!o||o.trim()!==n:!1}_isElementNode(A){return A.nodeType===this._document.ELEMENT_NODE}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Qk(t,e){return typeof t=="string"?`${e||""}/${t}`:t}function uz(t,e){t.id||(t.id=`${Dz}-${e}-${fk++}`)}var XEA=200,mk=class{_letterKeyStream=new qA;_items=[];_selectedItemIndex=-1;_pressedLetters=[];_skipPredicateFn;_selectedItem=new qA;selectedItem=this._selectedItem;constructor(e,A){let i=typeof A?.debounceInterval=="number"?A.debounceInterval:XEA;A?.skipPredicate&&(this._skipPredicateFn=A.skipPredicate),this.setItems(e),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(e){this._selectedItemIndex=e}setItems(e){this._items=e}handleKey(e){let A=e.keyCode;e.key&&e.key.length===1?this._letterKeyStream.next(e.key.toLocaleUpperCase()):(A>=65&&A<=90||A>=48&&A<=57)&&this._letterKeyStream.next(String.fromCharCode(A))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(e){this._letterKeyStream.pipe(So(A=>this._pressedLetters.push(A)),ag(e),Nt(()=>this._pressedLetters.length>0),je(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(A=>{for(let i=1;ie.disabled;constructor(e,A){this._items=e,e instanceof qa?this._itemChangesSubscription=e.changes.subscribe(i=>this._itemsChanged(i.toArray())):v2(e)&&(this._effectRef=Ku(()=>this._itemsChanged(e()),{injector:A}))}tabOut=new qA;change=new qA;skipPredicate(e){return this._skipPredicateFn=e,this}withWrap(e=!0){return this._wrap=e,this}withVerticalOrientation(e=!0){return this._vertical=e,this}withHorizontalOrientation(e){return this._horizontal=e,this}withAllowedModifierKeys(e){return this._allowedModifierKeys=e,this}withTypeAhead(e=200){this._typeaheadSubscription.unsubscribe();let A=this._getItemsArray();return this._typeahead=new mk(A,{debounceInterval:typeof e=="number"?e:void 0,skipPredicate:i=>this._skipPredicateFn(i)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(i=>{this.setActiveItem(i)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(e=!0){return this._homeAndEnd=e,this}withPageUpDown(e=!0,A=10){return this._pageUpAndDown={enabled:e,delta:A},this}setActiveItem(e){let A=this._activeItem();this.updateActiveItem(e),this._activeItem()!==A&&this.change.next(this._activeItemIndex)}onKeydown(e){let A=e.keyCode,n=["altKey","ctrlKey","metaKey","shiftKey"].every(o=>!e[o]||this._allowedModifierKeys.indexOf(o)>-1);switch(A){case 9:this.tabOut.next();return;case 40:if(this._vertical&&n){this.setNextItemActive();break}else return;case 38:if(this._vertical&&n){this.setPreviousItemActive();break}else return;case 39:if(this._horizontal&&n){this._horizontal==="rtl"?this.setPreviousItemActive():this.setNextItemActive();break}else return;case 37:if(this._horizontal&&n){this._horizontal==="rtl"?this.setNextItemActive():this.setPreviousItemActive();break}else return;case 36:if(this._homeAndEnd&&n){this.setFirstItemActive();break}else return;case 35:if(this._homeAndEnd&&n){this.setLastItemActive();break}else return;case 33:if(this._pageUpAndDown.enabled&&n){let o=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(o>0?o:0,1);break}else return;case 34:if(this._pageUpAndDown.enabled&&n){let o=this._activeItemIndex+this._pageUpAndDown.delta,r=this._getItemsArray().length;this._setActiveItemByIndex(o-1&&i!==this._activeItemIndex&&(this._activeItemIndex=i,this._typeahead?.setCurrentSelectedItemIndex(i))}}},a6=class extends s6{setActiveItem(e){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(e),this.activeItem&&this.activeItem.setActiveStyles()}},zI=class extends s6{_origin="program";setFocusOrigin(e){return this._origin=e,this}setActiveItem(e){super.setActiveItem(e),this.activeItem&&this.activeItem.focus(this._origin)}};var sh=(()=>{class t{_platform=f(ni);constructor(){}isDisabled(A){return A.hasAttribute("disabled")}isVisible(A){return AQA(A)&&getComputedStyle(A).visibility==="visible"}isTabbable(A){if(!this._platform.isBrowser)return!1;let i=$EA(aQA(A));if(i&&(hz(i)===-1||!this.isVisible(i)))return!1;let n=A.nodeName.toLowerCase(),o=hz(A);return A.hasAttribute("contenteditable")?o!==-1:n==="iframe"||n==="object"||this._platform.WEBKIT&&this._platform.IOS&&!rQA(A)?!1:n==="audio"?A.hasAttribute("controls")?o!==-1:!1:n==="video"?o===-1?!1:o!==null?!0:this._platform.FIREFOX||A.hasAttribute("controls"):A.tabIndex>=0}isFocusable(A,i){return sQA(A)&&!this.isDisabled(A)&&(i?.ignoreVisibility||this.isVisible(A))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $EA(t){try{return t.frameElement}catch{return null}}function AQA(t){return!!(t.offsetWidth||t.offsetHeight||typeof t.getClientRects=="function"&&t.getClientRects().length)}function eQA(t){let e=t.nodeName.toLowerCase();return e==="input"||e==="select"||e==="button"||e==="textarea"}function tQA(t){return nQA(t)&&t.type=="hidden"}function iQA(t){return oQA(t)&&t.hasAttribute("href")}function nQA(t){return t.nodeName.toLowerCase()=="input"}function oQA(t){return t.nodeName.toLowerCase()=="a"}function yz(t){if(!t.hasAttribute("tabindex")||t.tabIndex===void 0)return!1;let e=t.getAttribute("tabindex");return!!(e&&!isNaN(parseInt(e,10)))}function hz(t){if(!yz(t))return null;let e=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(e)?-1:e}function rQA(t){let e=t.nodeName.toLowerCase(),A=e==="input"&&t.type;return A==="text"||A==="password"||e==="select"||e==="textarea"}function sQA(t){return tQA(t)?!1:eQA(t)||iQA(t)||t.hasAttribute("contenteditable")||yz(t)}function aQA(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}var pk=class{_element;_checker;_ngZone;_document;_injector;_startAnchor;_endAnchor;_hasAttached=!1;startAnchorListener=()=>this.focusLastTabbableElement();endAnchorListener=()=>this.focusFirstTabbableElement();get enabled(){return this._enabled}set enabled(e){this._enabled=e,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}_enabled=!0;constructor(e,A,i,n,o=!1,r){this._element=e,this._checker=A,this._ngZone=i,this._document=n,this._injector=r,o||this.attachAnchors()}destroy(){let e=this._startAnchor,A=this._endAnchor;e&&(e.removeEventListener("focus",this.startAnchorListener),e.remove()),A&&(A.removeEventListener("focus",this.endAnchorListener),A.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return this._hasAttached?!0:(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(e){return new Promise(A=>{this._executeOnStable(()=>A(this.focusInitialElement(e)))})}focusFirstTabbableElementWhenReady(e){return new Promise(A=>{this._executeOnStable(()=>A(this.focusFirstTabbableElement(e)))})}focusLastTabbableElementWhenReady(e){return new Promise(A=>{this._executeOnStable(()=>A(this.focusLastTabbableElement(e)))})}_getRegionBoundary(e){let A=this._element.querySelectorAll(`[cdk-focus-region-${e}], [cdkFocusRegion${e}], [cdk-focus-${e}]`);return e=="start"?A.length?A[0]:this._getFirstTabbableElement(this._element):A.length?A[A.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(e){let A=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(A){if(!this._checker.isFocusable(A)){let i=this._getFirstTabbableElement(A);return i?.focus(e),!!i}return A.focus(e),!0}return this.focusFirstTabbableElement(e)}focusFirstTabbableElement(e){let A=this._getRegionBoundary("start");return A&&A.focus(e),!!A}focusLastTabbableElement(e){let A=this._getRegionBoundary("end");return A&&A.focus(e),!!A}hasAttached(){return this._hasAttached}_getFirstTabbableElement(e){if(this._checker.isFocusable(e)&&this._checker.isTabbable(e))return e;let A=e.children;for(let i=0;i=0;i--){let n=A[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(A[i]):null;if(n)return n}return null}_createAnchor(){let e=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,e),e.classList.add("cdk-visually-hidden"),e.classList.add("cdk-focus-trap-anchor"),e.setAttribute("aria-hidden","true"),e}_toggleAnchorTabIndex(e,A){e?A.setAttribute("tabindex","0"):A.removeAttribute("tabindex")}toggleAnchors(e){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}_executeOnStable(e){this._injector?Ir(e,{injector:this._injector}):setTimeout(e)}},g6=(()=>{class t{_checker=f(sh);_ngZone=f(ye);_document=f(at);_injector=f(Zt);constructor(){f(Pn).load(oh)}create(A,i=!1){return new pk(A,this._checker,this._ngZone,this._document,i,this._injector)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function ah(t){return t.buttons===0||t.detail===0}function ch(t){let e=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!!e&&e.identifier===-1&&(e.radiusX==null||e.radiusX===1)&&(e.radiusY==null||e.radiusY===1)}var cQA=new eA("cdk-input-modality-detector-options"),gQA={ignoreKeys:[18,17,224,91,16]},vz=650,dB=Sc({passive:!0,capture:!0}),lQA=(()=>{class t{_platform=f(ni);modalityDetected;modalityChanged;get mostRecentModality(){return this._modality.value}_mostRecentTarget=null;_modality=new Fi(null);_options;_lastTouchMs=0;_onKeydown=A=>{this._options?.ignoreKeys?.some(i=>i===A.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=ic(A))};_onMousedown=A=>{Date.now()-this._lastTouchMs{if(ch(A)){this._modality.next("keyboard");return}this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=ic(A)};constructor(){let A=f(ye),i=f(at),n=f(cQA,{optional:!0});this._options=sA(sA({},gQA),n),this.modalityDetected=this._modality.pipe(mI(1)),this.modalityChanged=this.modalityDetected.pipe(il()),this._platform.isBrowser&&A.runOutsideAngular(()=>{i.addEventListener("keydown",this._onKeydown,dB),i.addEventListener("mousedown",this._onMousedown,dB),i.addEventListener("touchstart",this._onTouchstart,dB)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,dB),document.removeEventListener("mousedown",this._onMousedown,dB),document.removeEventListener("touchstart",this._onTouchstart,dB))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),IQA=new eA("liveAnnouncerElement",{providedIn:"root",factory:CQA});function CQA(){return null}var dQA=new eA("LIVE_ANNOUNCER_DEFAULT_OPTIONS"),BQA=0,l6=(()=>{class t{_ngZone=f(ye);_defaultOptions=f(dQA,{optional:!0});_liveElement;_document=f(at);_previousTimeout;_currentPromise;_currentResolve;constructor(){let A=f(IQA,{optional:!0});this._liveElement=A||this._createLiveElement()}announce(A,...i){let n=this._defaultOptions,o,r;return i.length===1&&typeof i[0]=="number"?r=i[0]:[o,r]=i,this.clear(),clearTimeout(this._previousTimeout),o||(o=n&&n.politeness?n.politeness:"polite"),r==null&&n&&(r=n.duration),this._liveElement.setAttribute("aria-live",o),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(s=>this._currentResolve=s)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=A,typeof r=="number"&&(this._previousTimeout=setTimeout(()=>this.clear(),r)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){let A="cdk-live-announcer-element",i=this._document.getElementsByClassName(A),n=this._document.createElement("div");for(let o=0;o .cdk-overlay-container [aria-modal="true"]');for(let n=0;n{class t{_ngZone=f(ye);_platform=f(ni);_inputModalityDetector=f(lQA);_origin=null;_lastFocusOrigin;_windowFocused=!1;_windowFocusTimeoutId;_originTimeoutId;_originFromTouchInteraction=!1;_elementInfo=new Map;_monitoredElementCount=0;_rootNodeFocusListenerCount=new Map;_detectionMode;_windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)};_document=f(at,{optional:!0});_stopInputModalityDetector=new qA;constructor(){let A=f(EQA,{optional:!0});this._detectionMode=A?.detectionMode||o6.IMMEDIATE}_rootNodeFocusAndBlurListener=A=>{let i=ic(A);for(let n=i;n;n=n.parentElement)A.type==="focus"?this._onFocus(A,n):this._onBlur(A,n)};monitor(A,i=!1){let n=fa(A);if(!this._platform.isBrowser||n.nodeType!==1)return Ce();let o=Iz(n)||this._getDocument(),r=this._elementInfo.get(n);if(r)return i&&(r.checkChildren=!0),r.subject;let s={checkChildren:i,subject:new qA,rootNode:o};return this._elementInfo.set(n,s),this._registerGlobalListeners(s),s.subject}stopMonitoring(A){let i=fa(A),n=this._elementInfo.get(i);n&&(n.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(n))}focusVia(A,i,n){let o=fa(A),r=this._getDocument().activeElement;o===r?this._getClosestElementsInfo(o).forEach(([s,a])=>this._originChanged(s,i,a)):(this._setOrigin(i),typeof o.focus=="function"&&o.focus(n))}ngOnDestroy(){this._elementInfo.forEach((A,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(A){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(A)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:A&&this._isLastInteractionFromInputLabel(A)?"mouse":"program"}_shouldBeAttributedToTouch(A){return this._detectionMode===o6.EVENTUAL||!!A?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(A,i){A.classList.toggle("cdk-focused",!!i),A.classList.toggle("cdk-touch-focused",i==="touch"),A.classList.toggle("cdk-keyboard-focused",i==="keyboard"),A.classList.toggle("cdk-mouse-focused",i==="mouse"),A.classList.toggle("cdk-program-focused",i==="program")}_setOrigin(A,i=!1){this._ngZone.runOutsideAngular(()=>{if(this._origin=A,this._originFromTouchInteraction=A==="touch"&&i,this._detectionMode===o6.IMMEDIATE){clearTimeout(this._originTimeoutId);let n=this._originFromTouchInteraction?vz:1;this._originTimeoutId=setTimeout(()=>this._origin=null,n)}})}_onFocus(A,i){let n=this._elementInfo.get(i),o=ic(A);!n||!n.checkChildren&&i!==o||this._originChanged(i,this._getFocusOrigin(o),n)}_onBlur(A,i){let n=this._elementInfo.get(i);!n||n.checkChildren&&A.relatedTarget instanceof Node&&i.contains(A.relatedTarget)||(this._setClasses(i),this._emitOrigin(n,null))}_emitOrigin(A,i){A.subject.observers.length&&this._ngZone.run(()=>A.subject.next(i))}_registerGlobalListeners(A){if(!this._platform.isBrowser)return;let i=A.rootNode,n=this._rootNodeFocusListenerCount.get(i)||0;n||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,n6),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,n6)}),this._rootNodeFocusListenerCount.set(i,n+1),++this._monitoredElementCount===1&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(kt(this._stopInputModalityDetector)).subscribe(o=>{this._setOrigin(o,!0)}))}_removeGlobalListeners(A){let i=A.rootNode;if(this._rootNodeFocusListenerCount.has(i)){let n=this._rootNodeFocusListenerCount.get(i);n>1?this._rootNodeFocusListenerCount.set(i,n-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,n6),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,n6),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(A,i,n){this._setClasses(A,i),this._emitOrigin(n,i),this._lastFocusOrigin=i}_getClosestElementsInfo(A){let i=[];return this._elementInfo.forEach((n,o)=>{(o===A||n.checkChildren&&o.contains(A))&&i.push([o,n])}),i}_isLastInteractionFromInputLabel(A){let{_mostRecentTarget:i,mostRecentModality:n}=this._inputModalityDetector;if(n!=="mouse"||!i||i===A||A.nodeName!=="INPUT"&&A.nodeName!=="TEXTAREA"||A.disabled)return!1;let o=A.labels;if(o){for(let r=0;r{class t{_elementRef=f(se);_focusMonitor=f(Jr);_monitorSubscription;_focusOrigin=null;cdkFocusChange=new YA;constructor(){}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){let A=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(A,A.nodeType===1&&A.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return t})(),OI=function(t){return t[t.NONE=0]="NONE",t[t.BLACK_ON_WHITE=1]="BLACK_ON_WHITE",t[t.WHITE_ON_BLACK=2]="WHITE_ON_BLACK",t}(OI||{}),fz="cdk-high-contrast-black-on-white",mz="cdk-high-contrast-white-on-black",uk="cdk-high-contrast-active",yk=(()=>{class t{_platform=f(ni);_hasCheckedHighContrastMode;_document=f(at);_breakpointSubscription;constructor(){this._breakpointSubscription=f(t6).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return OI.NONE;let A=this._document.createElement("div");A.style.backgroundColor="rgb(1,2,3)",A.style.position="absolute",this._document.body.appendChild(A);let i=this._document.defaultView||window,n=i&&i.getComputedStyle?i.getComputedStyle(A):null,o=(n&&n.backgroundColor||"").replace(/ /g,"");switch(A.remove(),o){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return OI.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return OI.BLACK_ON_WHITE}return OI.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){let A=this._document.body.classList;A.remove(uk,fz,mz),this._hasCheckedHighContrastMode=!0;let i=this.getHighContrastMode();i===OI.BLACK_ON_WHITE?A.add(uk,fz):i===OI.WHITE_ON_BLACK&&A.add(uk,mz)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),vk=(()=>{class t{constructor(){f(yk)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[rh]})}return t})(),hk={},an=(()=>{class t{_appId=f(Vd);getId(A){return this._appId!=="ng"&&(A+=this._appId),hk.hasOwnProperty(A)||(hk[A]=0),`${A}${hk[A]++}`}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var QQA=new eA("cdk-dir-doc",{providedIn:"root",factory:uQA});function uQA(){return f(at)}var hQA=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;function fQA(t){let e=t?.toLowerCase()||"";return e==="auto"&&typeof navigator<"u"&&navigator?.language?hQA.test(navigator.language)?"rtl":"ltr":e==="rtl"?"rtl":"ltr"}var po=(()=>{class t{value="ltr";change=new YA;constructor(){let A=f(QQA,{optional:!0});if(A){let i=A.body?A.body.dir:null,n=A.documentElement?A.documentElement.dir:null;this.value=fQA(i||n||"ltr")}}ngOnDestroy(){this.change.complete()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var G2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();var mQA=["text"],pQA=[[["mat-icon"]],"*"],DQA=["mat-icon","*"];function wQA(t,e){if(t&1&&TA(0,"mat-pseudo-checkbox",1),t&2){let A=Y();yA("disabled",A.disabled)("state",A.selected?"checked":"unchecked")}}function yQA(t,e){if(t&1&&TA(0,"mat-pseudo-checkbox",3),t&2){let A=Y();yA("disabled",A.disabled)}}function vQA(t,e){if(t&1&&(S(0,"span",4),AA(1),N()),t&2){let A=Y();_(),Bt("(",A.group.label,")")}}var MQA=["mat-internal-form-field",""],bQA=["*"];var pn=(()=>{class t{constructor(){f(yk)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[G2,G2]})}return t})(),BB=class{_defaultMatcher;ngControl;_parentFormGroup;_parentForm;_stateChanges;errorState=!1;matcher;constructor(e,A,i,n,o){this._defaultMatcher=e,this.ngControl=A,this._parentFormGroup=i,this._parentForm=n,this._stateChanges=o}updateErrorState(){let e=this.errorState,A=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,n=this.ngControl?this.ngControl.control:null,o=i?.isErrorState(n,A)??!1;o!==e&&(this.errorState=o,this._stateChanges.next())}};var d6=(()=>{class t{isErrorState(A,i){return!!(A&&A.invalid&&(A.touched||i&&i.submitted))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Yr=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["structural-styles"]],decls:0,vars:0,template:function(i,n){},styles:['.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}'],encapsulation:2,changeDetection:0})}return t})();var Ws=function(t){return t[t.FADING_IN=0]="FADING_IN",t[t.VISIBLE=1]="VISIBLE",t[t.FADING_OUT=2]="FADING_OUT",t[t.HIDDEN=3]="HIDDEN",t}(Ws||{}),kk=class{_renderer;element;config;_animationForciblyDisabledThroughCss;state=Ws.HIDDEN;constructor(e,A,i,n=!1){this._renderer=e,this.element=A,this.config=i,this._animationForciblyDisabledThroughCss=n}fadeOut(){this._renderer.fadeOutRipple(this)}},bz=Sc({passive:!0,capture:!0}),Sk=class{_events=new Map;addHandler(e,A,i,n){let o=this._events.get(A);if(o){let r=o.get(i);r?r.add(n):o.set(i,new Set([n]))}else this._events.set(A,new Map([[i,new Set([n])]])),e.runOutsideAngular(()=>{document.addEventListener(A,this._delegateEventHandler,bz)})}removeHandler(e,A,i){let n=this._events.get(e);if(!n)return;let o=n.get(A);o&&(o.delete(i),o.size===0&&n.delete(A),n.size===0&&(this._events.delete(e),document.removeEventListener(e,this._delegateEventHandler,bz)))}_delegateEventHandler=e=>{let A=ic(e);A&&this._events.get(e.type)?.forEach((i,n)=>{(n===A||n.contains(A))&&i.forEach(o=>o.handleEvent(e))})}},C6={enterDuration:225,exitDuration:150},kQA=800,kz=Sc({passive:!0,capture:!0}),Sz=["mousedown","touchstart"],Rz=["mouseup","mouseleave","touchend","touchcancel"],SQA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],hostAttrs:["mat-ripple-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:[".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}"],encapsulation:2,changeDetection:0})}return t})(),EB=class t{_target;_ngZone;_platform;_containerElement;_triggerElement;_isPointerDown=!1;_activeRipples=new Map;_mostRecentTransientRipple;_lastTouchStartEvent;_pointerUpEventsRegistered=!1;_containerRect;static _eventManager=new Sk;constructor(e,A,i,n,o){this._target=e,this._ngZone=A,this._platform=n,n.isBrowser&&(this._containerElement=fa(i)),o&&o.get(Pn).load(SQA)}fadeInRipple(e,A,i={}){let n=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),o=sA(sA({},C6),i.animation);i.centered&&(e=n.left+n.width/2,A=n.top+n.height/2);let r=i.radius||RQA(e,A,n),s=e-n.left,a=A-n.top,c=o.enterDuration,g=document.createElement("div");g.classList.add("mat-ripple-element"),g.style.left=`${s-r}px`,g.style.top=`${a-r}px`,g.style.height=`${r*2}px`,g.style.width=`${r*2}px`,i.color!=null&&(g.style.backgroundColor=i.color),g.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(g);let I=window.getComputedStyle(g),C=I.transitionProperty,d=I.transitionDuration,B=C==="none"||d==="0s"||d==="0s, 0s"||n.width===0&&n.height===0,E=new kk(this,g,i,B);g.style.transform="scale3d(1, 1, 1)",E.state=Ws.FADING_IN,i.persistent||(this._mostRecentTransientRipple=E);let u=null;return!B&&(c||o.exitDuration)&&this._ngZone.runOutsideAngular(()=>{let h=()=>{u&&(u.fallbackTimer=null),clearTimeout(x),this._finishRippleTransition(E)},w=()=>this._destroyRipple(E),x=setTimeout(w,c+100);g.addEventListener("transitionend",h),g.addEventListener("transitioncancel",w),u={onTransitionEnd:h,onTransitionCancel:w,fallbackTimer:x}}),this._activeRipples.set(E,u),(B||!c)&&this._finishRippleTransition(E),E}fadeOutRipple(e){if(e.state===Ws.FADING_OUT||e.state===Ws.HIDDEN)return;let A=e.element,i=sA(sA({},C6),e.config.animation);A.style.transitionDuration=`${i.exitDuration}ms`,A.style.opacity="0",e.state=Ws.FADING_OUT,(e._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(e)}fadeOutAll(){this._getActiveRipples().forEach(e=>e.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(e=>{e.config.persistent||e.fadeOut()})}setupTriggerEvents(e){let A=fa(e);!this._platform.isBrowser||!A||A===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=A,Sz.forEach(i=>{t._eventManager.addHandler(this._ngZone,i,A,this)}))}handleEvent(e){e.type==="mousedown"?this._onMousedown(e):e.type==="touchstart"?this._onTouchStart(e):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{Rz.forEach(A=>{this._triggerElement.addEventListener(A,this,kz)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(e){e.state===Ws.FADING_IN?this._startFadeOutTransition(e):e.state===Ws.FADING_OUT&&this._destroyRipple(e)}_startFadeOutTransition(e){let A=e===this._mostRecentTransientRipple,{persistent:i}=e.config;e.state=Ws.VISIBLE,!i&&(!A||!this._isPointerDown)&&e.fadeOut()}_destroyRipple(e){let A=this._activeRipples.get(e)??null;this._activeRipples.delete(e),this._activeRipples.size||(this._containerRect=null),e===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),e.state=Ws.HIDDEN,A!==null&&(e.element.removeEventListener("transitionend",A.onTransitionEnd),e.element.removeEventListener("transitioncancel",A.onTransitionCancel),A.fallbackTimer!==null&&clearTimeout(A.fallbackTimer)),e.element.remove()}_onMousedown(e){let A=ah(e),i=this._lastTouchStartEvent&&Date.now(){let A=e.state===Ws.VISIBLE||e.config.terminateOnPointerUp&&e.state===Ws.FADING_IN;!e.config.persistent&&A&&e.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){let e=this._triggerElement;e&&(Sz.forEach(A=>t._eventManager.removeHandler(A,e,this)),this._pointerUpEventsRegistered&&(Rz.forEach(A=>e.removeEventListener(A,this,kz)),this._pointerUpEventsRegistered=!1))}};function RQA(t,e,A){let i=Math.max(Math.abs(t-A.left),Math.abs(t-A.right)),n=Math.max(Math.abs(e-A.top),Math.abs(e-A.bottom));return Math.sqrt(i*i+n*n)}var ZI=new eA("mat-ripple-global-options"),Xs=(()=>{class t{_elementRef=f(se);_animationMode=f(_i,{optional:!0});color;unbounded;centered;radius=0;animation;get disabled(){return this._disabled}set disabled(A){A&&this.fadeOutAllNonPersistent(),this._disabled=A,this._setupTriggerEventsIfEnabled()}_disabled=!1;get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(A){this._trigger=A,this._setupTriggerEventsIfEnabled()}_trigger;_rippleRenderer;_globalOptions;_isInitialized=!1;constructor(){let A=f(ye),i=f(ni),n=f(ZI,{optional:!0}),o=f(Zt);this._globalOptions=n||{},this._rippleRenderer=new EB(this,A,this._elementRef,i,o)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:sA(sA(sA({},this._globalOptions.animation),this._animationMode==="NoopAnimations"?{enterDuration:0,exitDuration:0}:{}),this.animation),terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(A,i=0,n){return typeof A=="number"?this._rippleRenderer.fadeInRipple(A,i,sA(sA({},this.rippleConfig),n)):this._rippleRenderer.fadeInRipple(0,0,sA(sA({},this.rippleConfig),A))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,n){i&2&&he("mat-ripple-unbounded",n.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return t})(),WI=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,pn]})}return t})(),Lk=(()=>{class t{_animationMode=f(_i,{optional:!0});state="unchecked";disabled=!1;appearance="full";constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,n){i&2&&he("mat-pseudo-checkbox-indeterminate",n.state==="indeterminate")("mat-pseudo-checkbox-checked",n.state==="checked")("mat-pseudo-checkbox-disabled",n.disabled)("mat-pseudo-checkbox-minimal",n.appearance==="minimal")("mat-pseudo-checkbox-full",n.appearance==="full")("_mat-animation-noopable",n._animationMode==="NoopAnimations")},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(i,n){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-minimal-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-primary))}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full{border-color:var(--mat-full-pseudo-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-full-pseudo-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-full-pseudo-checkbox-selected-icon-color, var(--mat-sys-primary));border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-full-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-full-pseudo-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-full-pseudo-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}return t})();var xk=new eA("MAT_OPTION_PARENT_COMPONENT"),Nk=new eA("MatOptgroup");var Rk=class{source;isUserInput;constructor(e,A=!1){this.source=e,this.isUserInput=A}},K2=(()=>{class t{_element=f(se);_changeDetectorRef=f(Et);_parent=f(xk,{optional:!0});group=f(Nk,{optional:!0});_signalDisableRipple=!1;_selected=!1;_active=!1;_disabled=!1;_mostRecentViewValue="";get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}value;id=f(an).getId("mat-option-");get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(A){this._disabled=A}get disableRipple(){return this._signalDisableRipple?this._parent.disableRipple():!!this._parent?.disableRipple}get hideSingleSelectionIndicator(){return!!(this._parent&&this._parent.hideSingleSelectionIndicator)}onSelectionChange=new YA;_text;_stateChanges=new qA;constructor(){let A=f(Pn);A.load(Yr),A.load(oh),this._signalDisableRipple=!!this._parent&&v2(this._parent.disableRipple)}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(A=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),A&&this._emitSelectionChangeEvent())}deselect(A=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),A&&this._emitSelectionChangeEvent())}focus(A,i){let n=this._getHostElement();typeof n.focus=="function"&&n.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(A){(A.keyCode===13||A.keyCode===32)&&!sr(A)&&(this._selectViaInteraction(),A.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=this.multiple?!this._selected:!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){let A=this.viewValue;A!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=A)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(A=!1){this.onSelectionChange.emit(new Rk(this,A))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-option"]],viewQuery:function(i,n){if(i&1&&st(mQA,7),i&2){let o;de(o=Be())&&(n._text=o.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,n){i&1&&mA("click",function(){return n._selectViaInteraction()})("keydown",function(r){return n._handleKeydown(r)}),i&2&&(Qa("id",n.id),Ke("aria-selected",n.selected)("aria-disabled",n.disabled.toString()),he("mdc-list-item--selected",n.selected)("mat-mdc-option-multiple",n.multiple)("mat-mdc-option-active",n.active)("mdc-list-item--disabled",n.disabled))},inputs:{value:"value",id:"id",disabled:[2,"disabled","disabled",ge]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],ngContentSelectors:DQA,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,n){i&1&&($t(pQA),FA(0,wQA,1,2,"mat-pseudo-checkbox",1),Ue(1),S(2,"span",2,0),Ue(4,1),N(),FA(5,yQA,1,1,"mat-pseudo-checkbox",3)(6,vQA,2,1,"span",4),TA(7,"div",5)),i&2&&(_A(n.multiple?0:-1),_(5),_A(!n.multiple&&n.selected&&!n.hideSingleSelectionIndicator?5:-1),_(),_A(n.group&&n.group._inert?6:-1),_(),yA("matRippleTrigger",n._getHostElement())("matRippleDisabled",n.disabled||n.disableRipple))},dependencies:[Lk,Xs],styles:['.mat-mdc-option{-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;min-height:48px;padding:0 16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-option-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-option-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-option-label-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-option-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-option-label-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));outline:0}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color, var(--mat-sys-secondary-container))}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}@media(forced-colors: active){.mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{right:auto;left:16px}}.mat-mdc-option-multiple{--mdc-list-list-item-selected-container-color:var(--mdc-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();function Fz(t,e,A){if(A.length){let i=e.toArray(),n=A.toArray(),o=0;for(let r=0;rA+i?Math.max(0,t-i+e):A}var Lz={capture:!0},xz=["focus","mousedown","mouseenter","touchstart"],Mk="mat-ripple-loader-uninitialized",bk="mat-ripple-loader-class-name",Nz="mat-ripple-loader-centered",I6="mat-ripple-loader-disabled",Gz=(()=>{class t{_document=f(at,{optional:!0});_animationMode=f(_i,{optional:!0});_globalRippleOptions=f(ZI,{optional:!0});_platform=f(ni);_ngZone=f(ye);_injector=f(Zt);_hosts=new Map;constructor(){this._ngZone.runOutsideAngular(()=>{for(let A of xz)this._document?.addEventListener(A,this._onInteraction,Lz)})}ngOnDestroy(){let A=this._hosts.keys();for(let i of A)this.destroyRipple(i);for(let i of xz)this._document?.removeEventListener(i,this._onInteraction,Lz)}configureRipple(A,i){A.setAttribute(Mk,this._globalRippleOptions?.namespace??""),(i.className||!A.hasAttribute(bk))&&A.setAttribute(bk,i.className||""),i.centered&&A.setAttribute(Nz,""),i.disabled&&A.setAttribute(I6,"")}setDisabled(A,i){let n=this._hosts.get(A);n?(n.target.rippleDisabled=i,!i&&!n.hasSetUpEvents&&(n.hasSetUpEvents=!0,n.renderer.setupTriggerEvents(A))):i?A.setAttribute(I6,""):A.removeAttribute(I6)}_onInteraction=A=>{let i=ic(A);if(i instanceof HTMLElement){let n=i.closest(`[${Mk}="${this._globalRippleOptions?.namespace??""}"]`);n&&this._createRipple(n)}};_createRipple(A){if(!this._document||this._hosts.has(A))return;A.querySelector(".mat-ripple")?.remove();let i=this._document.createElement("span");i.classList.add("mat-ripple",A.getAttribute(bk)),A.append(i);let n=this._animationMode==="NoopAnimations",o=this._globalRippleOptions,r=n?0:o?.animation?.enterDuration??C6.enterDuration,s=n?0:o?.animation?.exitDuration??C6.exitDuration,a={rippleDisabled:n||o?.disabled||A.hasAttribute(I6),rippleConfig:{centered:A.hasAttribute(Nz),terminateOnPointerUp:o?.terminateOnPointerUp,animation:{enterDuration:r,exitDuration:s}}},c=new EB(a,this._ngZone,i,this._platform,this._injector),g=!a.rippleDisabled;g&&c.setupTriggerEvents(A),this._hosts.set(A,{target:a,renderer:c,hasSetUpEvents:g}),A.removeAttribute(Mk)}destroyRipple(A){let i=this._hosts.get(A);i&&(i.renderer._removeTriggerEvents(),this._hosts.delete(A))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),B6=(()=>{class t{labelPosition;static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,n){i&2&&he("mdc-form-field--align-end",n.labelPosition==="before")},inputs:{labelPosition:"labelPosition"},attrs:MQA,ngContentSelectors:bQA,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},styles:[".mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0}"],encapsulation:2,changeDetection:0})}return t})();var LQA=["mat-button",""],Fk=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],_k=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"];var xQA="@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}",NQA=["mat-fab",""],FQA=["mat-mini-fab",""],_QA='.mat-mdc-fab-base{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus>.mat-focus-indicator::before{content:""}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-sys-corner-large));color:var(--mat-fab-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display, block)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-sys-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-small-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-mini-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;height:var(--mdc-extended-fab-container-height, 56px);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-sys-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-sys-label-large-tracking));box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}',GQA=["mat-icon-button",""],KQA=["*"];var UQA=new eA("MAT_BUTTON_CONFIG");var JQA=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],Q6=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);_animationMode=f(_i,{optional:!0});_focusMonitor=f(Jr);_rippleLoader=f(Gz);_isFab=!1;color;get disableRipple(){return this._disableRipple}set disableRipple(A){this._disableRipple=A,this._updateRippleDisabled()}_disableRipple=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._updateRippleDisabled()}_disabled=!1;ariaDisabled;disabledInteractive;constructor(){f(Pn).load(Yr);let A=f(UQA,{optional:!0}),i=this._elementRef.nativeElement,n=i.classList;this.disabledInteractive=A?.disabledInteractive??!1,this.color=A?.color??null,this._rippleLoader?.configureRipple(i,{className:"mat-mdc-button-ripple"});for(let{attribute:o,mdcClasses:r}of JQA)i.hasAttribute(o)&&n.add(...r)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(A="program",i){A?this._focusMonitor.focusVia(this._elementRef.nativeElement,A,i):this._elementRef.nativeElement.focus(i)}_getAriaDisabled(){return this.ariaDisabled!=null?this.ariaDisabled:this.disabled&&this.disabledInteractive?!0:null}_getDisabledAttribute(){return this.disabledInteractive||!this.disabled?null:!0}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",ge],disabled:[2,"disabled","disabled",ge],ariaDisabled:[2,"aria-disabled","ariaDisabled",ge],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge]}})}return t})();var dr=(()=>{class t extends Q6{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(i,n){i&2&&(Ke("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[lt],attrs:LQA,ngContentSelectors:_k,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&($t(Fk),TA(0,"span",0),Ue(1),S(2,"span",1),Ue(3,1),N(),Ue(4,2),TA(5,"span",2)(6,"span",3)),i&2&&he("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:['.mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 12px);height:var(--mdc-text-button-container-height, 40px);font-family:var(--mdc-text-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-sys-label-large-weight))}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-sys-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 16px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display, block)}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-filled-button-container-height, 40px);font-family:var(--mdc-filled-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-filled-button-horizontal-padding, 24px)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color, var(--mat-sys-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-unelevated-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display, block)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-sys-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-sys-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-filled-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-sys-level1));height:var(--mdc-protected-button-container-height, 40px);font-family:var(--mdc-protected-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-protected-button-horizontal-padding, 24px)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-raised-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-raised-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display, block)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-sys-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-sys-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-sys-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-protected-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow, var(--mat-sys-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-outlined-button-container-height, 40px);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-sys-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-sys-corner-full));border-width:var(--mdc-outlined-button-outline-width, 1px);padding:0 var(--mat-outlined-button-horizontal-padding, 24px)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-outlined-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-outlined-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display, block)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-sys-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-sys-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:var(--mdc-outlined-button-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button .mdc-button__ripple{border-width:var(--mdc-outlined-button-outline-width, 1px);border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-focus-indicator,.mat-mdc-unelevated-button .mat-focus-indicator,.mat-mdc-raised-button .mat-focus-indicator,.mat-mdc-outlined-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus>.mat-focus-indicator::before,.mat-mdc-unelevated-button:focus>.mat-focus-indicator::before,.mat-mdc-raised-button:focus>.mat-focus-indicator::before,.mat-mdc-outlined-button:focus>.mat-focus-indicator::before{content:""}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-focus-indicator::before,.mat-mdc-raised-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}',"@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}"],encapsulation:2,changeDetection:0})}return t})();var Kz=new eA("mat-mdc-fab-default-options",{providedIn:"root",factory:Uz});function Uz(){return{color:"accent"}}var E6=Uz(),Jz=(()=>{class t extends Q6{_options=f(Kz,{optional:!0});_isFab=!0;extended;constructor(){super(),this._options=this._options||E6,this.color=this._options.color||E6.color}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["button","mat-fab",""]],hostVars:18,hostBindings:function(i,n){i&2&&(Ke("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0)("mdc-fab--extended",n.extended)("mat-mdc-extended-fab",n.extended))},inputs:{extended:[2,"extended","extended",ge]},exportAs:["matButton"],features:[lt],attrs:NQA,ngContentSelectors:_k,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&($t(Fk),TA(0,"span",0),Ue(1),S(2,"span",1),Ue(3,1),N(),Ue(4,2),TA(5,"span",2)(6,"span",3)),i&2&&he("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:['.mat-mdc-fab-base{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus>.mat-focus-indicator::before{content:""}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-sys-corner-large));color:var(--mat-fab-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display, block)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-sys-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-small-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-mini-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;height:var(--mdc-extended-fab-container-height, 56px);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-sys-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-sys-label-large-tracking));box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}'],encapsulation:2,changeDetection:0})}return t})(),u6=(()=>{class t extends Q6{_options=f(Kz,{optional:!0});_isFab=!0;constructor(){super(),this._options=this._options||E6,this.color=this._options.color||E6.color}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["button","mat-mini-fab",""]],hostVars:14,hostBindings:function(i,n){i&2&&(Ke("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[lt],attrs:FQA,ngContentSelectors:_k,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&($t(Fk),TA(0,"span",0),Ue(1),S(2,"span",1),Ue(3,1),N(),Ue(4,2),TA(5,"span",2)(6,"span",3)),i&2&&he("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:[_QA],encapsulation:2,changeDetection:0})}return t})();var QB=(()=>{class t extends Q6{constructor(){super(),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["button","mat-icon-button",""]],hostVars:14,hostBindings:function(i,n){i&2&&(Ke("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[lt],attrs:GQA,ngContentSelectors:KQA,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&($t(),TA(0,"span",0),Ue(1),TA(2,"span",1)(3,"span",2))},styles:['.mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:50%;flex-shrink:0;text-align:center;width:var(--mdc-icon-button-state-layer-size, 40px);height:var(--mdc-icon-button-state-layer-size, 40px);padding:calc(calc(var(--mdc-icon-button-state-layer-size, 40px) - var(--mdc-icon-button-icon-size, 24px)) / 2);font-size:var(--mdc-icon-button-icon-size, 24px);color:var(--mdc-icon-button-icon-color, var(--mat-sys-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus>.mat-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-icon-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-icon-button-touch-target-display, block)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mdc-icon-button-icon-size, 24px);height:var(--mdc-icon-button-icon-size, 24px);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button[hidden]{display:none}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',xQA],encapsulation:2,changeDetection:0})}return t})();var uB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,WI,pn]})}return t})();var Gk=class{_box;_destroyed=new qA;_resizeSubject=new qA;_resizeObserver;_elementObservables=new Map;constructor(e){this._box=e,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(A=>this._resizeSubject.next(A)))}observe(e){return this._elementObservables.has(e)||this._elementObservables.set(e,new gt(A=>{let i=this._resizeSubject.subscribe(A);return this._resizeObserver?.observe(e,{box:this._box}),()=>{this._resizeObserver?.unobserve(e),i.unsubscribe(),this._elementObservables.delete(e)}}).pipe(Nt(A=>A.some(i=>i.target===e)),h2({bufferSize:1,refCount:!0}),kt(this._destroyed))),this._elementObservables.get(e)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}},h6=(()=>{class t{_cleanupErrorListener;_observers=new Map;_ngZone=f(ye);constructor(){typeof ResizeObserver<"u"}ngOnDestroy(){for(let[,A]of this._observers)A.destroy();this._observers.clear(),this._cleanupErrorListener?.()}observe(A,i){let n=i?.box||"content-box";return this._observers.has(n)||this._observers.set(n,new Gk(n)),this._observers.get(n).observe(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var oi=function(t){return t[t.State=0]="State",t[t.Transition=1]="Transition",t[t.Sequence=2]="Sequence",t[t.Group=3]="Group",t[t.Animate=4]="Animate",t[t.Keyframes=5]="Keyframes",t[t.Style=6]="Style",t[t.Trigger=7]="Trigger",t[t.Reference=8]="Reference",t[t.AnimateChild=9]="AnimateChild",t[t.AnimateRef=10]="AnimateRef",t[t.Query=11]="Query",t[t.Stagger=12]="Stagger",t}(oi||{}),Rc="*";function nc(t,e){return{type:oi.Trigger,name:t,definitions:e,options:{}}}function Is(t,e=null){return{type:oi.Animate,styles:e,timings:t}}function Yz(t,e=null){return{type:oi.Sequence,steps:t,options:e}}function Do(t){return{type:oi.Style,styles:t,offset:null}}function $s(t,e,A){return{type:oi.State,name:t,styles:e,options:A}}function $r(t,e,A=null){return{type:oi.Transition,expr:t,animation:e,options:A}}function Kk(t=null){return{type:oi.AnimateChild,options:t}}function Uk(t,e,A=null){return{type:oi.Query,selector:t,animation:e,options:A}}var hl=class{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(e=0,A=0){this.totalTime=e+A}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(e=>e()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(e){this._position=this.totalTime?e*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(e){let A=e=="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},XI=class{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(e){this.players=e;let A=0,i=0,n=0,o=this.players.length;o==0?queueMicrotask(()=>this._onFinish()):this.players.forEach(r=>{r.onDone(()=>{++A==o&&this._onFinish()}),r.onDestroy(()=>{++i==o&&this._onDestroy()}),r.onStart(()=>{++n==o&&this._onStart()})}),this.totalTime=this.players.reduce((r,s)=>Math.max(r,s.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this.players.forEach(e=>e.init())}onStart(e){this._onStartFns.push(e)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(e=>e()),this._onStartFns=[])}onDone(e){this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(e=>e.play())}pause(){this.players.forEach(e=>e.pause())}restart(){this.players.forEach(e=>e.restart())}finish(){this._onFinish(),this.players.forEach(e=>e.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(e=>e.destroy()),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this.players.forEach(e=>e.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(e){let A=e*this.totalTime;this.players.forEach(i=>{let n=i.totalTime?Math.min(1,A/i.totalTime):1;i.setPosition(n)})}getPosition(){let e=this.players.reduce((A,i)=>A===null||i.totalTime>A.totalTime?i:A,null);return e!=null?e.getPosition():0}beforeDestroy(){this.players.forEach(e=>{e.beforeDestroy&&e.beforeDestroy()})}triggerCallback(e){let A=e=="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},hB="!";var TQA=["notch"],HQA=["matFormFieldNotchedOutline",""],OQA=["*"],zQA=["textField"],PQA=["iconPrefixContainer"],jQA=["textPrefixContainer"],qQA=["iconSuffixContainer"],VQA=["textSuffixContainer"],ZQA=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],WQA=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function XQA(t,e){t&1&&TA(0,"span",21)}function $QA(t,e){if(t&1&&(S(0,"label",20),Ue(1,1),FA(2,XQA,1,0,"span",21),N()),t&2){let A=Y(2);yA("floating",A._shouldLabelFloat())("monitorResize",A._hasOutline())("id",A._labelId),Ke("for",A._control.disableAutomaticLabeling?null:A._control.id),_(2),_A(!A.hideRequiredMarker&&A._control.required?2:-1)}}function AuA(t,e){if(t&1&&FA(0,$QA,3,5,"label",20),t&2){let A=Y();_A(A._hasFloatingLabel()?0:-1)}}function euA(t,e){t&1&&TA(0,"div",7)}function tuA(t,e){}function iuA(t,e){if(t&1&&FA(0,tuA,0,0,"ng-template",13),t&2){Y(2);let A=Cr(1);yA("ngTemplateOutlet",A)}}function nuA(t,e){if(t&1&&(S(0,"div",9),FA(1,iuA,1,1,null,13),N()),t&2){let A=Y();yA("matFormFieldNotchedOutlineOpen",A._shouldLabelFloat()),_(),_A(A._forceDisplayInfixLabel()?-1:1)}}function ouA(t,e){t&1&&(S(0,"div",10,2),Ue(2,2),N())}function ruA(t,e){t&1&&(S(0,"div",11,3),Ue(2,3),N())}function suA(t,e){}function auA(t,e){if(t&1&&FA(0,suA,0,0,"ng-template",13),t&2){Y();let A=Cr(1);yA("ngTemplateOutlet",A)}}function cuA(t,e){t&1&&(S(0,"div",14,4),Ue(2,4),N())}function guA(t,e){t&1&&(S(0,"div",15,5),Ue(2,5),N())}function luA(t,e){t&1&&TA(0,"div",16)}function IuA(t,e){if(t&1&&(S(0,"div",18),Ue(1,6),N()),t&2){let A=Y();yA("@transitionMessages",A._subscriptAnimationState)}}function CuA(t,e){if(t&1&&(S(0,"mat-hint",22),AA(1),N()),t&2){let A=Y(2);yA("id",A._hintLabelId),_(),tt(A.hintLabel)}}function duA(t,e){if(t&1&&(S(0,"div",19),FA(1,CuA,2,2,"mat-hint",22),Ue(2,7),TA(3,"div",23),Ue(4,8),N()),t&2){let A=Y();yA("@transitionMessages",A._subscriptAnimationState),_(),_A(A.hintLabel?1:-1)}}var m6=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["mat-label"]]})}return t})(),BuA=new eA("MatError");var Tz=(()=>{class t{align="start";id=f(an).getId("mat-mdc-hint-");static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,n){i&2&&(Qa("id",n.id),Ke("align",null),he("mat-mdc-form-field-hint-end",n.align==="end"))},inputs:{align:"align",id:"id"}})}return t})(),EuA=new eA("MatPrefix");var Vz=new eA("MatSuffix"),Zz=(()=>{class t{set _isTextSelector(A){this._isText=!0}_isText=!1;static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matSuffix",""],["","matIconSuffix",""],["","matTextSuffix",""]],inputs:{_isTextSelector:[0,"matTextSuffix","_isTextSelector"]},features:[ut([{provide:Vz,useExisting:t}])]})}return t})(),Wz=new eA("FloatingLabelParent"),Hz=(()=>{class t{_elementRef=f(se);get floating(){return this._floating}set floating(A){this._floating=A,this.monitorResize&&this._handleResize()}_floating=!1;get monitorResize(){return this._monitorResize}set monitorResize(A){this._monitorResize=A,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}_monitorResize=!1;_resizeObserver=f(h6);_ngZone=f(ye);_parent=f(Wz);_resizeSubscription=new Kt;constructor(){}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return QuA(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,n){i&2&&he("mdc-floating-label--float-above",n.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return t})();function QuA(t){let e=t;if(e.offsetParent!==null)return e.scrollWidth;let A=e.cloneNode(!0);A.style.setProperty("position","absolute"),A.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(A);let i=A.scrollWidth;return A.remove(),i}var Oz="mdc-line-ripple--active",f6="mdc-line-ripple--deactivating",zz=(()=>{class t{_elementRef=f(se);_cleanupTransitionEnd;constructor(){let A=f(ye),i=f(qi);A.runOutsideAngular(()=>{this._cleanupTransitionEnd=i.listen(this._elementRef.nativeElement,"transitionend",this._handleTransitionEnd)})}activate(){let A=this._elementRef.nativeElement.classList;A.remove(f6),A.add(Oz)}deactivate(){this._elementRef.nativeElement.classList.add(f6)}_handleTransitionEnd=A=>{let i=this._elementRef.nativeElement.classList,n=i.contains(f6);A.propertyName==="opacity"&&n&&i.remove(Oz,f6)};ngOnDestroy(){this._cleanupTransitionEnd()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return t})(),Pz=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);open=!1;_notch;constructor(){}ngAfterViewInit(){let A=this._elementRef.nativeElement.querySelector(".mdc-floating-label");A?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),typeof requestAnimationFrame=="function"&&(A.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>A.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(A){!this.open||!A?this._notch.nativeElement.style.width="":this._notch.nativeElement.style.width=`calc(${A}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,n){if(i&1&&st(TQA,5),i&2){let o;de(o=Be())&&(n._notch=o.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,n){i&2&&he("mdc-notched-outline--notched",n.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},attrs:HQA,ngContentSelectors:OQA,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,n){i&1&&($t(),TA(0,"div",1),S(1,"div",2,0),Ue(3),N(),TA(4,"div",3))},encapsulation:2,changeDetection:0})}return t})(),uuA={transitionMessages:nc("transitionMessages",[$s("enter",Do({opacity:1,transform:"translateY(0%)"})),$r("void => enter",[Do({opacity:0,transform:"translateY(-5px)"}),Is("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},gh=(()=>{class t{value;stateChanges;id;placeholder;ngControl;focused;empty;shouldLabelFloat;required;disabled;errorState;controlType;autofilled;userAriaDescribedBy;disableAutomaticLabeling;static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t})}return t})();var lh=new eA("MatFormField"),huA=new eA("MAT_FORM_FIELD_DEFAULT_OPTIONS"),jz="fill",fuA="auto",qz="fixed",muA="translateY(-50%)",fl=(()=>{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_dir=f(po);_platform=f(ni);_idGenerator=f(an);_defaults=f(huA,{optional:!0});_animationMode=f(_i,{optional:!0});_textField;_iconPrefixContainer;_textPrefixContainer;_iconSuffixContainer;_textSuffixContainer;_floatingLabel;_notchedOutline;_lineRipple;_formFieldControl;_prefixChildren;_suffixChildren;_errorChildren;_hintChildren;_labelChild=bH(m6);get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(A){this._hideRequiredMarker=Ar(A)}_hideRequiredMarker=!1;color="primary";get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||fuA}set floatLabel(A){A!==this._floatLabel&&(this._floatLabel=A,this._changeDetectorRef.markForCheck())}_floatLabel;get appearance(){return this._appearance}set appearance(A){let i=this._appearance,n=A||this._defaults?.appearance||jz;this._appearance=n,this._appearance==="outline"&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdate=!0)}_appearance=jz;get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||qz}set subscriptSizing(A){this._subscriptSizing=A||this._defaults?.subscriptSizing||qz}_subscriptSizing=null;get hintLabel(){return this._hintLabel}set hintLabel(A){this._hintLabel=A,this._processHints()}_hintLabel="";_hasIconPrefix=!1;_hasTextPrefix=!1;_hasIconSuffix=!1;_hasTextSuffix=!1;_labelId=this._idGenerator.getId("mat-mdc-form-field-label-");_hintLabelId=this._idGenerator.getId("mat-mdc-hint-");_subscriptAnimationState="";get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(A){this._explicitFormFieldControl=A}_destroyed=new qA;_isFocused=null;_explicitFormFieldControl;_needsOutlineLabelOffsetUpdate=!1;_previousControl=null;_stateChanges;_valueChanges;_describedByChanges;_injector=f(Zt);constructor(){let A=this._defaults;A&&(A.appearance&&(this.appearance=A.appearance),this._hideRequiredMarker=!!A?.hideRequiredMarker,A.color&&(this.color=A.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._previousControl=this._control)}ngOnDestroy(){this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._describedByChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getLabelId=Mc(()=>this._hasFloatingLabel()?this._labelId:null);getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(A){let i=this._control,n="mat-mdc-form-field-type-";A&&this._elementRef.nativeElement.classList.remove(n+A.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(n+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._changeDetectorRef.markForCheck()}),this._describedByChanges?.unsubscribe(),this._describedByChanges=i.stateChanges.pipe(On([void 0,void 0]),je(()=>[i.errorState,i.userAriaDescribedBy]),Cm(),Nt(([[o,r],[s,a]])=>o!==s||r!==a)).subscribe(()=>this._syncDescribedByIds()),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(kt(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck()))}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(A=>!A._isText),this._hasTextPrefix=!!this._prefixChildren.find(A=>A._isText),this._hasIconSuffix=!!this._suffixChildren.find(A=>!A._isText),this._hasTextSuffix=!!this._suffixChildren.find(A=>A._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),Hn(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){this._control}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||this._isFocused===null)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0),ku(()=>{this._needsOutlineLabelOffsetUpdate&&(this._needsOutlineLabelOffsetUpdate=!1,this._updateOutlineLabelOffset())},{injector:this._injector}),this._dir.change.pipe(kt(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0)}_shouldAlwaysFloat(){return this.floatLabel==="always"}_hasOutline(){return this.appearance==="outline"}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel=Mc(()=>!!this._labelChild());_shouldLabelFloat(){return this._hasFloatingLabel()?this._control.shouldLabelFloat||this._shouldAlwaysFloat():!1}_shouldForward(A){let i=this._control?this._control.ngControl:null;return i&&i[A]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){!this._hasOutline()||!this._floatingLabel||!this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(0):this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth())}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){this._hintChildren}_syncDescribedByIds(){if(this._control){let A=[];if(this._control.userAriaDescribedBy&&typeof this._control.userAriaDescribedBy=="string"&&A.push(...this._control.userAriaDescribedBy.split(" ")),this._getDisplayedMessages()==="hint"){let i=this._hintChildren?this._hintChildren.find(o=>o.align==="start"):null,n=this._hintChildren?this._hintChildren.find(o=>o.align==="end"):null;i?A.push(i.id):this._hintLabel&&A.push(this._hintLabelId),n&&A.push(n.id)}else this._errorChildren&&A.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(A)}}_updateOutlineLabelOffset(){if(!this._hasOutline()||!this._floatingLabel)return;let A=this._floatingLabel.element;if(!(this._iconPrefixContainer||this._textPrefixContainer)){A.style.transform="";return}if(!this._isAttachedToDom()){this._needsOutlineLabelOffsetUpdate=!0;return}let i=this._iconPrefixContainer?.nativeElement,n=this._textPrefixContainer?.nativeElement,o=this._iconSuffixContainer?.nativeElement,r=this._textSuffixContainer?.nativeElement,s=i?.getBoundingClientRect().width??0,a=n?.getBoundingClientRect().width??0,c=o?.getBoundingClientRect().width??0,g=r?.getBoundingClientRect().width??0,I=this._dir.value==="rtl"?"-1":"1",C=`${s+a}px`,B=`calc(${I} * (${C} + var(--mat-mdc-form-field-label-offset-x, 0px)))`;A.style.transform=`var( + `)}`}var Yd=uY(cY("Optional"),8);var ep=uY(cY("SkipSelf"),4);function yI(t,e){let A=t.hasOwnProperty(ym);return A?t[ym]:null}function o2A(t,e,A){if(t.length!==e.length)return!1;for(let i=0;iArray.isArray(A)?wM(A,e):e(A))}function hY(t,e,A){e>=t.length?t.push(A):t.splice(e,0,A)}function bm(t,e){return e>=t.length-1?t.pop():t.splice(e,1)[0]}function s2A(t,e){let A=[];for(let i=0;ie;){let o=n-2;t[n]=t[o],n--}t[e]=A,t[e+1]=i}}function tp(t,e,A){let i=yu(t,e);return i>=0?t[i|1]=A:(i=~i,a2A(t,i,e,A)),i}function Wv(t,e){let A=yu(t,e);if(A>=0)return t[A|1]}function yu(t,e){return c2A(t,e,1)}function c2A(t,e,A){let i=0,n=t.length>>A;for(;n!==i;){let o=i+(n-i>>1),r=t[o<e?n=o:i=o+1}return~(n<{A.push(r)};return wM(e,r=>{let s=r;B9(s,o,[],i)&&(n||=[],n.push(s))}),n!==void 0&&yY(n,o),A}function yY(t,e){for(let A=0;A{e(o,i)})}}function B9(t,e,A,i){if(t=cs(t),!t)return!1;let n=null,o=BJ(t),r=!o&&p2(t);if(!o&&!r){let a=t.ngModule;if(o=BJ(a),o)n=a;else return!1}else{if(r&&!r.standalone)return!1;n=t}let s=i.has(n);if(r){if(s)return!1;if(i.add(n),r.dependencies){let a=typeof r.dependencies=="function"?r.dependencies():r.dependencies;for(let c of a)B9(c,e,A,i)}}else if(o){if(o.imports!=null&&!s){i.add(n);let c;try{wM(o.imports,g=>{B9(g,e,A,i)&&(c||=[],c.push(g))})}finally{}c!==void 0&&yY(c,e)}if(!s){let c=yI(n)||(()=>new n);e({provide:n,useFactory:c,deps:zs},n),e({provide:mY,useValue:n,multi:!0},n),e({provide:Ld,useValue:()=>be(n),multi:!0},n)}let a=o.providers;if(a!=null&&!s){let c=t;vM(a,g=>{e(g,c)})}}else return!1;return n!==t&&t.providers!==void 0}function vM(t,e){for(let A of t)dY(A)&&(A=A.\u0275providers),Array.isArray(A)?vM(A,e):e(A)}var l2A=fo({provide:String,useValue:fo});function vY(t){return t!==null&&typeof t=="object"&&l2A in t}function I2A(t){return!!(t&&t.useExisting)}function C2A(t){return!!(t&&t.useFactory)}function xd(t){return typeof t=="function"}function d2A(t){return!!t.useClass}var ip=new eA(""),hm={},hJ={},Xv;function np(){return Xv===void 0&&(Xv=new km),Xv}var vr=class{},Qu=class extends vr{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(e,A,i,n){super(),this.parent=A,this.source=i,this.scopes=n,Q9(e,r=>this.processProvider(r)),this.records.set(fY,vd(void 0,this)),n.has("environment")&&this.records.set(vr,vd(void 0,this));let o=this.records.get(ip);o!=null&&typeof o.value=="string"&&this.scopes.add(o.value),this.injectorDefTypes=new Set(this.get(mY,zs,bi.Self))}retrieve(e,A){let i=A;return this.get(e,i.optional?Hf:pI,i)}destroy(){du(this),this._destroyed=!0;let e=pi(null);try{for(let i of this._ngOnDestroyHooks)i.ngOnDestroy();let A=this._onDestroyHooks;this._onDestroyHooks=[];for(let i of A)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),pi(e)}}onDestroy(e){return du(this),this._onDestroyHooks.push(e),()=>this.removeOnDestroy(e)}runInContext(e){du(this);let A=I0(this),i=la(void 0),n;try{return e()}finally{I0(A),la(i)}}get(e,A=pI,i=bi.Default){if(du(this),e.hasOwnProperty(QJ))return e[QJ](this);i=Ap(i);let n,o=I0(this),r=la(void 0);try{if(!(i&bi.SkipSelf)){let a=this.records.get(e);if(a===void 0){let c=h2A(e)&&$m(e);c&&this.injectableDefInScope(c)?a=vd(E9(e),hm):a=null,this.records.set(e,a)}if(a!=null)return this.hydrate(e,a,i)}let s=i&bi.Self?np():this.parent;return A=i&bi.Optional&&A===pI?null:A,s.get(e,A)}catch(s){if(s.name==="NullInjectorError"){if((s[Mm]=s[Mm]||[]).unshift(Ia(e)),o)throw s;return i2A(s,e,"R3InjectorError",this.source)}else throw s}finally{la(r),I0(o)}}resolveInjectorInitializers(){let e=pi(null),A=I0(this),i=la(void 0),n;try{let o=this.get(Ld,zs,bi.Self);for(let r of o)r()}finally{I0(A),la(i),pi(e)}}toString(){let e=[],A=this.records;for(let i of A.keys())e.push(Ia(i));return`R3Injector[${e.join(", ")}]`}processProvider(e){e=cs(e);let A=xd(e)?e:cs(e&&e.provide),i=E2A(e);if(!xd(e)&&e.multi===!0){let n=this.records.get(A);n||(n=vd(void 0,hm,!0),n.factory=()=>d9(n.multi),this.records.set(A,n)),A=e,n.multi.push(e)}this.records.set(A,i)}hydrate(e,A,i){let n=pi(null);try{return A.value===hJ?BY(Ia(e)):A.value===hm&&(A.value=hJ,A.value=A.factory(void 0,i)),typeof A.value=="object"&&A.value&&u2A(A.value)&&this._ngOnDestroyHooks.add(A.value),A.value}finally{pi(n)}}injectableDefInScope(e){if(!e.providedIn)return!1;let A=cs(e.providedIn);return typeof A=="string"?A==="any"||this.scopes.has(A):this.injectorDefTypes.has(A)}removeOnDestroy(e){let A=this._onDestroyHooks.indexOf(e);A!==-1&&this._onDestroyHooks.splice(A,1)}};function E9(t){let e=$m(t),A=e!==null?e.factory:yI(t);if(A!==null)return A;if(t instanceof eA)throw new te(204,!1);if(t instanceof Function)return B2A(t);throw new te(204,!1)}function B2A(t){if(t.length>0)throw new te(204,!1);let A=O0A(t);return A!==null?()=>A.factory(t):()=>new t}function E2A(t){if(vY(t))return vd(void 0,t.useValue);{let e=MY(t);return vd(e,hm)}}function MY(t,e,A){let i;if(xd(t)){let n=cs(t);return yI(n)||E9(n)}else if(vY(t))i=()=>cs(t.useValue);else if(C2A(t))i=()=>t.useFactory(...d9(t.deps||[]));else if(I2A(t))i=(n,o)=>be(cs(t.useExisting),o!==void 0&&o&bi.Optional?bi.Optional:void 0);else{let n=cs(t&&(t.useClass||t.provide));if(Q2A(t))i=()=>new n(...d9(t.deps));else return yI(n)||E9(n)}return i}function du(t){if(t.destroyed)throw new te(205,!1)}function vd(t,e,A=!1){return{factory:t,value:e,multi:A?[]:void 0}}function Q2A(t){return!!t.deps}function u2A(t){return t!==null&&typeof t=="object"&&typeof t.ngOnDestroy=="function"}function h2A(t){return typeof t=="function"||typeof t=="object"&&t instanceof eA}function Q9(t,e){for(let A of t)Array.isArray(A)?Q9(A,e):A&&dY(A)?Q9(A.\u0275providers,e):e(A)}function da(t,e){let A;t instanceof Qu?(du(t),A=t):A=new vm(t);let i,n=I0(A),o=la(void 0);try{return e()}finally{I0(n),la(o)}}function MM(){return EY()!==void 0||ou()!=null}function bM(t){if(!MM())throw new te(-203,!1)}function f2A(t){return typeof t=="function"}var Cl=0,hi=1,ii=2,vs=3,lg=4,Ba=5,Nd=6,Sm=7,Kr=8,Fd=9,E0=10,Jo=11,uu=12,fJ=13,Td=14,ja=15,vI=16,Md=17,Q0=18,op=19,bY=20,f2=21,$v=22,MI=23,wc=24,Sd=25,Qr=26,kM=1;var bI=7,Rm=8,_d=9,ys=10;function m2(t){return Array.isArray(t)&&typeof t[kM]=="object"}function h0(t){return Array.isArray(t)&&t[kM]===!0}function SM(t){return(t.flags&4)!==0}function Hd(t){return t.componentOffset>-1}function rp(t){return(t.flags&1)===1}function Ig(t){return!!t.template}function Lm(t){return(t[ii]&512)!==0}function Od(t){return(t[ii]&256)===256}var u9=class{previousValue;currentValue;firstChange;constructor(e,A,i){this.previousValue=e,this.currentValue=A,this.firstChange=i}isFirstChange(){return this.firstChange}};function kY(t,e,A,i){e!==null?e.applyValueToInputSignal(e,i):t[A]=i}var Xt=(()=>{let t=()=>SY;return t.ngInherit=!0,t})();function SY(t){return t.type.prototype.ngOnChanges&&(t.setInput=p2A),m2A}function m2A(){let t=LY(this),e=t?.current;if(e){let A=t.previous;if(A===sl)t.previous=e;else for(let i in e)A[i]=e[i];t.current=null,this.ngOnChanges(e)}}function p2A(t,e,A,i,n){let o=this.declaredInputs[i],r=LY(t)||D2A(t,{previous:sl,current:null}),s=r.current||(r.current={}),a=r.previous,c=a[o];s[o]=new u9(c&&c.currentValue,A,a===sl),kY(t,e,n,A)}var RY="__ngSimpleChanges__";function LY(t){return t[RY]||null}function D2A(t,e){return t[RY]=e}var mJ=null;var so=function(t,e=null,A){mJ?.(t,e,A)},xY="svg",w2A="math";function al(t){for(;Array.isArray(t);)t=t[Cl];return t}function y2A(t){for(;Array.isArray(t);){if(typeof t[kM]=="object")return t;t=t[Cl]}return null}function NY(t,e){return al(e[t])}function dl(t,e){return al(e[t.index])}function RM(t,e){return t.data[e]}function sp(t,e){return t[e]}function LM(t,e,A,i){A>=t.data.length&&(t.data[A]=null,t.blueprint[A]=null),e[A]=i}function cl(t,e){let A=e[t];return m2(A)?A:A[Cl]}function v2A(t){return(t[ii]&4)===4}function xM(t){return(t[ii]&128)===128}function M2A(t){return h0(t[vs])}function D2(t,e){return e==null?null:t[e]}function FY(t){t[Md]=0}function _Y(t){t[ii]&1024||(t[ii]|=1024,xM(t)&&zd(t))}function b2A(t,e){for(;t>0;)e=e[Td],t--;return e}function ap(t){return!!(t[ii]&9216||t[wc]?.dirty)}function h9(t){t[E0].changeDetectionScheduler?.notify(8),t[ii]&64&&(t[ii]|=1024),ap(t)&&zd(t)}function zd(t){t[E0].changeDetectionScheduler?.notify(0);let e=kI(t);for(;e!==null&&!(e[ii]&8192||(e[ii]|=8192,!xM(e)));)e=kI(e)}function GY(t,e){if(Od(t))throw new te(911,!1);t[f2]===null&&(t[f2]=[]),t[f2].push(e)}function k2A(t,e){if(t[f2]===null)return;let A=t[f2].indexOf(e);A!==-1&&t[f2].splice(A,1)}function kI(t){let e=t[vs];return h0(e)?e[vs]:e}function NM(t){return t[Sm]??=[]}function FM(t){return t.cleanup??=[]}function S2A(t,e,A,i){let n=NM(e);n.push(A),t.firstCreatePass&&FM(t).push(i,n.length-1)}var Di={lFrame:OY(null),bindingsEnabled:!0,skipHydrationRootTNode:null};var f9=!1;function R2A(){return Di.lFrame.elementDepthCount}function L2A(){Di.lFrame.elementDepthCount++}function x2A(){Di.lFrame.elementDepthCount--}function _M(){return Di.bindingsEnabled}function KY(){return Di.skipHydrationRootTNode!==null}function N2A(t){return Di.skipHydrationRootTNode===t}function F2A(){Di.skipHydrationRootTNode=null}function zt(){return Di.lFrame.lView}function ao(){return Di.lFrame.tView}function QA(t){return Di.lFrame.contextLView=t,t[Kr]}function uA(t){return Di.lFrame.contextLView=null,t}function gs(){let t=UY();for(;t!==null&&t.type===64;)t=t.parent;return t}function UY(){return Di.lFrame.currentTNode}function _2A(){let t=Di.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}function w2(t,e){let A=Di.lFrame;A.currentTNode=t,A.isParent=e}function GM(){return Di.lFrame.isParent}function KM(){Di.lFrame.isParent=!1}function JY(){return Di.lFrame.contextLView}function YY(){return f9}function xm(t){let e=f9;return f9=t,e}function Mu(){let t=Di.lFrame,e=t.bindingRootIndex;return e===-1&&(e=t.bindingRootIndex=t.tView.bindingStartIndex),e}function G2A(){return Di.lFrame.bindingIndex}function K2A(t){return Di.lFrame.bindingIndex=t}function y2(){return Di.lFrame.bindingIndex++}function UM(t){let e=Di.lFrame,A=e.bindingIndex;return e.bindingIndex=e.bindingIndex+t,A}function U2A(){return Di.lFrame.inI18n}function J2A(t,e){let A=Di.lFrame;A.bindingIndex=A.bindingRootIndex=t,m9(e)}function Y2A(){return Di.lFrame.currentDirectiveIndex}function m9(t){Di.lFrame.currentDirectiveIndex=t}function JM(t){let e=Di.lFrame.currentDirectiveIndex;return e===-1?null:t[e]}function YM(){return Di.lFrame.currentQueryIndex}function cp(t){Di.lFrame.currentQueryIndex=t}function T2A(t){let e=t[hi];return e.type===2?e.declTNode:e.type===1?t[Ba]:null}function TY(t,e,A){if(A&bi.SkipSelf){let n=e,o=t;for(;n=n.parent,n===null&&!(A&bi.Host);)if(n=T2A(o),n===null||(o=o[Td],n.type&10))break;if(n===null)return!1;e=n,t=o}let i=Di.lFrame=HY();return i.currentTNode=e,i.lView=t,!0}function TM(t){let e=HY(),A=t[hi];Di.lFrame=e,e.currentTNode=A.firstChild,e.lView=t,e.tView=A,e.contextLView=t,e.bindingIndex=A.bindingStartIndex,e.inI18n=!1}function HY(){let t=Di.lFrame,e=t===null?null:t.child;return e===null?OY(t):e}function OY(t){let e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return t!==null&&(t.child=e),e}function zY(){let t=Di.lFrame;return Di.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}var PY=zY;function HM(){let t=zY();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function H2A(t){return(Di.lFrame.contextLView=b2A(t,Di.lFrame.contextLView))[Kr]}function Bl(){return Di.lFrame.selectedIndex}function SI(t){Di.lFrame.selectedIndex=t}function Pd(){let t=Di.lFrame;return RM(t.tView,t.selectedIndex)}function ur(){Di.lFrame.currentNamespace=xY}function _I(){O2A()}function O2A(){Di.lFrame.currentNamespace=null}function z2A(){return Di.lFrame.currentNamespace}var jY=!0;function gp(){return jY}function lp(t){jY=t}function P2A(t,e,A){let{ngOnChanges:i,ngOnInit:n,ngDoCheck:o}=e.type.prototype;if(i){let r=SY(e);(A.preOrderHooks??=[]).push(t,r),(A.preOrderCheckHooks??=[]).push(t,r)}n&&(A.preOrderHooks??=[]).push(0-t,n),o&&((A.preOrderHooks??=[]).push(t,o),(A.preOrderCheckHooks??=[]).push(t,o))}function OM(t,e){for(let A=e.directiveStart,i=e.directiveEnd;A=i)break}else e[a]<0&&(t[Md]+=65536),(s>14>16&&(t[ii]&3)===e&&(t[ii]+=16384,pJ(s,o)):pJ(s,o)}var Rd=-1,RI=class{factory;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(e,A,i){this.factory=e,this.canSeeViewProviders=A,this.injectImpl=i}};function q2A(t){return(t.flags&8)!==0}function V2A(t){return(t.flags&16)!==0}function Z2A(t,e,A){let i=0;for(;ie){r=o-1;break}}}for(;o>16}function Fm(t,e){let A=X2A(t),i=e;for(;A>0;)i=i[Td],A--;return i}var p9=!0;function _m(t){let e=p9;return p9=t,e}var $2A=256,WY=$2A-1,XY=5,A1A=0,rl={};function e1A(t,e,A){let i;typeof A=="string"?i=A.charCodeAt(0)||0:A.hasOwnProperty(Eu)&&(i=A[Eu]),i==null&&(i=A[Eu]=A1A++);let n=i&WY,o=1<>XY)]|=o}function Gm(t,e){let A=$Y(t,e);if(A!==-1)return A;let i=e[hi];i.firstCreatePass&&(t.injectorIndex=e.length,e9(i.data,t),e9(e,null),e9(i.blueprint,null));let n=zM(t,e),o=t.injectorIndex;if(ZY(n)){let r=Nm(n),s=Fm(n,e),a=s[hi].data;for(let c=0;c<8;c++)e[o+c]=s[r+c]|a[r+c]}return e[o+8]=n,o}function e9(t,e){t.push(0,0,0,0,0,0,0,0,e)}function $Y(t,e){return t.injectorIndex===-1||t.parent&&t.parent.injectorIndex===t.injectorIndex||e[t.injectorIndex+8]===null?-1:t.injectorIndex}function zM(t,e){if(t.parent&&t.parent.injectorIndex!==-1)return t.parent.injectorIndex;let A=0,i=null,n=e;for(;n!==null;){if(i=nT(n),i===null)return Rd;if(A++,n=n[Td],i.injectorIndex!==-1)return i.injectorIndex|A<<16}return Rd}function D9(t,e,A){e1A(t,e,A)}function t1A(t,e){if(e==="class")return t.classes;if(e==="style")return t.styles;let A=t.attrs;if(A){let i=A.length,n=0;for(;n>20,I=i?s:s+g,C=n?s+g:c;for(let d=I;d=a&&B.type===A)return d}if(n){let d=r[a];if(d&&Ig(d)&&d.type===A)return a}return null}function hu(t,e,A,i,n){let o=t[A],r=e.data;if(o instanceof RI){let s=o;s.resolving&&BY(Z0A(r[A]));let a=_m(s.canSeeViewProviders);s.resolving=!0;let c,g=s.injectImpl?la(s.injectImpl):null,I=TY(t,i,bi.Default);try{o=t[A]=s.factory(void 0,n,r,t,i),e.firstCreatePass&&A>=i.directiveStart&&P2A(A,r[A],e)}finally{g!==null&&la(g),_m(a),s.resolving=!1,PY()}}return o}function n1A(t){if(typeof t=="string")return t.charCodeAt(0)||0;let e=t.hasOwnProperty(Eu)?t[Eu]:void 0;return typeof e=="number"?e>=0?e&WY:o1A:e}function wJ(t,e,A){let i=1<>XY)]&i)}function yJ(t,e){return!(t&bi.Self)&&!(t&bi.Host&&e)}var DI=class{_tNode;_lView;constructor(e,A){this._tNode=e,this._lView=A}get(e,A,i){return tT(this._tNode,this._lView,e,Ap(i),A)}};function o1A(){return new DI(gs(),zt())}function ci(t){return wu(()=>{let e=t.prototype.constructor,A=e[ym]||w9(e),i=Object.prototype,n=Object.getPrototypeOf(t.prototype).constructor;for(;n&&n!==i;){let o=n[ym]||w9(n);if(o&&o!==A)return o;n=Object.getPrototypeOf(n)}return o=>new o})}function w9(t){return gY(t)?()=>{let e=w9(cs(t));return e&&e()}:yI(t)}function r1A(t,e,A,i,n){let o=t,r=e;for(;o!==null&&r!==null&&r[ii]&2048&&!Lm(r);){let s=iT(o,r,A,i|bi.Self,rl);if(s!==rl)return s;let a=o.parent;if(!a){let c=r[bY];if(c){let g=c.get(A,rl,i);if(g!==rl)return g}a=nT(r),r=r[Td]}o=a}return n}function nT(t){let e=t[hi],A=e.type;return A===2?e.declTNode:A===1?t[Ba]:null}function PM(t){return t1A(gs(),t)}function vJ(t,e=null,A=null,i){let n=oT(t,e,A,i);return n.resolveInjectorInitializers(),n}function oT(t,e=null,A=null,i,n=new Set){let o=[A||zs,yM(t)];return i=i||(typeof t=="object"?void 0:Ia(t)),new Qu(o,e||np(),i||null,n)}var Zt=class t{static THROW_IF_NOT_FOUND=pI;static NULL=new km;static create(e,A){if(Array.isArray(e))return vJ({name:""},A,e,"");{let i=e.name??"";return vJ({name:i},e.parent,e.providers,i)}}static \u0275prov=bA({token:t,providedIn:"any",factory:()=>be(fY)});static __NG_ELEMENT_ID__=-1};var Wr=class{attributeName;constructor(e){this.attributeName=e}__NG_ELEMENT_ID__=()=>PM(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}},s1A=new eA("");s1A.__NG_ELEMENT_ID__=t=>{let e=gs();if(e===null)throw new te(204,!1);if(e.type&2)return e.value;if(t&bi.Optional)return null;throw new te(204,!1)};var rT=!1,f0=(()=>{class t{static __NG_ELEMENT_ID__=a1A;static __NG_ENV_ID__=A=>A}return t})(),Km=class extends f0{_lView;constructor(e){super(),this._lView=e}onDestroy(e){let A=this._lView;return Od(A)?(e(),()=>{}):(GY(A,e),()=>k2A(A,e))}};function a1A(){return new Km(zt())}var LI=class{},jM=new eA("",{providedIn:"root",factory:()=>!1});var sT=new eA(""),aT=new eA(""),m0=(()=>{class t{taskId=0;pendingTasks=new Set;get _hasPendingTasks(){return this.hasPendingTasks.value}hasPendingTasks=new Fi(!1);add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);let A=this.taskId++;return this.pendingTasks.add(A),A}has(A){return this.pendingTasks.has(A)}remove(A){this.pendingTasks.delete(A),this.pendingTasks.size===0&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new t})}return t})();var y9=class extends qA{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(e=!1){super(),this.__isAsync=e,MM()&&(this.destroyRef=f(f0,{optional:!0})??void 0,this.pendingTasks=f(m0,{optional:!0})??void 0)}emit(e){let A=pi(null);try{super.next(e)}finally{pi(A)}}subscribe(e,A,i){let n=e,o=A||(()=>null),r=i;if(e&&typeof e=="object"){let a=e;n=a.next?.bind(a),o=a.error?.bind(a),r=a.complete?.bind(a)}this.__isAsync&&(o=this.wrapInTimeout(o),n&&(n=this.wrapInTimeout(n)),r&&(r=this.wrapInTimeout(r)));let s=super.subscribe({next:n,error:o,complete:r});return e instanceof Kt&&e.add(s),s}wrapInTimeout(e){return A=>{let i=this.pendingTasks?.add();setTimeout(()=>{try{e(A)}finally{i!==void 0&&this.pendingTasks?.remove(i)}})}}},YA=y9;function fu(...t){}function cT(t){let e,A;function i(){t=fu;try{A!==void 0&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(A),e!==void 0&&clearTimeout(e)}catch{}}return e=setTimeout(()=>{t(),i()}),typeof requestAnimationFrame=="function"&&(A=requestAnimationFrame(()=>{t(),i()})),()=>i()}function MJ(t){return queueMicrotask(()=>t()),()=>{t=fu}}var qM="isAngularZone",Um=qM+"_ID",c1A=0,ye=class t{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new YA(!1);onMicrotaskEmpty=new YA(!1);onStable=new YA(!1);onError=new YA(!1);constructor(e){let{enableLongStackTrace:A=!1,shouldCoalesceEventChangeDetection:i=!1,shouldCoalesceRunChangeDetection:n=!1,scheduleInRootZone:o=rT}=e;if(typeof Zone>"u")throw new te(908,!1);Zone.assertZonePatched();let r=this;r._nesting=0,r._outer=r._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),A&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!n&&i,r.shouldCoalesceRunChangeDetection=n,r.callbackScheduled=!1,r.scheduleInRootZone=o,I1A(r)}static isInAngularZone(){return typeof Zone<"u"&&Zone.current.get(qM)===!0}static assertInAngularZone(){if(!t.isInAngularZone())throw new te(909,!1)}static assertNotInAngularZone(){if(t.isInAngularZone())throw new te(909,!1)}run(e,A,i){return this._inner.run(e,A,i)}runTask(e,A,i,n){let o=this._inner,r=o.scheduleEventTask("NgZoneEvent: "+n,e,g1A,fu,fu);try{return o.runTask(r,A,i)}finally{o.cancelTask(r)}}runGuarded(e,A,i){return this._inner.runGuarded(e,A,i)}runOutsideAngular(e){return this._outer.run(e)}},g1A={};function VM(t){if(t._nesting==0&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function l1A(t){if(t.isCheckStableRunning||t.callbackScheduled)return;t.callbackScheduled=!0;function e(){cT(()=>{t.callbackScheduled=!1,v9(t),t.isCheckStableRunning=!0,VM(t),t.isCheckStableRunning=!1})}t.scheduleInRootZone?Zone.root.run(()=>{e()}):t._outer.run(()=>{e()}),v9(t)}function I1A(t){let e=()=>{l1A(t)},A=c1A++;t._inner=t._inner.fork({name:"angular",properties:{[qM]:!0,[Um]:A,[Um+A]:!0},onInvokeTask:(i,n,o,r,s,a)=>{if(C1A(a))return i.invokeTask(o,r,s,a);try{return bJ(t),i.invokeTask(o,r,s,a)}finally{(t.shouldCoalesceEventChangeDetection&&r.type==="eventTask"||t.shouldCoalesceRunChangeDetection)&&e(),kJ(t)}},onInvoke:(i,n,o,r,s,a,c)=>{try{return bJ(t),i.invoke(o,r,s,a,c)}finally{t.shouldCoalesceRunChangeDetection&&!t.callbackScheduled&&!d1A(a)&&e(),kJ(t)}},onHasTask:(i,n,o,r)=>{i.hasTask(o,r),n===o&&(r.change=="microTask"?(t._hasPendingMicrotasks=r.microTask,v9(t),VM(t)):r.change=="macroTask"&&(t.hasPendingMacrotasks=r.macroTask))},onHandleError:(i,n,o,r)=>(i.handleError(o,r),t.runOutsideAngular(()=>t.onError.emit(r)),!1)})}function v9(t){t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&t.callbackScheduled===!0?t.hasPendingMicrotasks=!0:t.hasPendingMicrotasks=!1}function bJ(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function kJ(t){t._nesting--,VM(t)}var M9=class{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new YA;onMicrotaskEmpty=new YA;onStable=new YA;onError=new YA;run(e,A,i){return e.apply(A,i)}runGuarded(e,A,i){return e.apply(A,i)}runOutsideAngular(e){return e()}runTask(e,A,i,n){return e.apply(A,i)}};function C1A(t){return gT(t,"__ignore_ng_zone__")}function d1A(t){return gT(t,"__scheduler_tick__")}function gT(t,e){return!Array.isArray(t)||t.length!==1?!1:t[0]?.data?.[e]===!0}var Ps=class{_console=console;handleError(e){this._console.error("ERROR",e)}},B1A=new eA("",{providedIn:"root",factory:()=>{let t=f(ye),e=f(Ps);return A=>t.runOutsideAngular(()=>e.handleError(A))}}),b9=class{destroyed=!1;listeners=null;errorHandler=f(Ps,{optional:!0});destroyRef=f(f0);constructor(){this.destroyRef.onDestroy(()=>{this.destroyed=!0,this.listeners=null})}subscribe(e){if(this.destroyed)throw new te(953,!1);return(this.listeners??=[]).push(e),{unsubscribe:()=>{let A=this.listeners?.indexOf(e);A!==void 0&&A!==-1&&this.listeners?.splice(A,1)}}}emit(e){if(this.destroyed){console.warn(Xm(953,!1));return}if(this.listeners===null)return;let A=pi(null);try{for(let i of this.listeners)try{i(e)}catch(n){this.errorHandler?.handleError(n)}}finally{pi(A)}}};function GI(t){return new b9}function SJ(t,e){return aY(t,e)}function E1A(t){return aY(sY,t)}var bs=(SJ.required=E1A,SJ);function Q1A(){return jd(gs(),zt())}function jd(t,e){return new se(dl(t,e))}var se=(()=>{class t{nativeElement;constructor(A){this.nativeElement=A}static __NG_ELEMENT_ID__=Q1A}return t})();function lT(t){return t instanceof se?t.nativeElement:t}function v2(t){return typeof t=="function"&&t[aa]!==void 0}function Ao(t,e){let A=xv(t,e?.equal),i=A[aa];return A.set=n=>nu(i,n),A.update=n=>Nv(i,n),A.asReadonly=u1A.bind(A),A}function u1A(){let t=this[aa];if(t.readonlyFn===void 0){let e=()=>this();e[aa]=t,t.readonlyFn=e}return t.readonlyFn}function IT(t){return v2(t)&&typeof t.set=="function"}function h1A(){return this._results[Symbol.iterator]()}var qa=class{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new qA}constructor(e=!1){this._emitDistinctChangesOnly=e}get(e){return this._results[e]}map(e){return this._results.map(e)}filter(e){return this._results.filter(e)}find(e){return this._results.find(e)}reduce(e,A){return this._results.reduce(e,A)}forEach(e){this._results.forEach(e)}some(e){return this._results.some(e)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(e,A){this.dirty=!1;let i=r2A(e);(this._changesDetected=!o2A(this._results,i,A))&&(this._results=i,this.length=i.length,this.last=i[this.length-1],this.first=i[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(e){this._onDirty=e}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}[Symbol.iterator]=h1A};function CT(t){return(t.flags&128)===128}var dT=function(t){return t[t.OnPush=0]="OnPush",t[t.Default=1]="Default",t}(dT||{}),BT=new Map,f1A=0;function m1A(){return f1A++}function p1A(t){BT.set(t[op],t)}function k9(t){BT.delete(t[op])}var RJ="__ngContext__";function qd(t,e){m2(e)?(t[RJ]=e[op],p1A(e)):t[RJ]=e}function ET(t){return uT(t[uu])}function QT(t){return uT(t[lg])}function uT(t){for(;t!==null&&!h0(t);)t=t[lg];return t}var S9;function hT(t){S9=t}function fT(){if(S9!==void 0)return S9;if(typeof document<"u")return document;throw new te(210,!1)}var Vd=new eA("",{providedIn:"root",factory:()=>D1A}),D1A="ng",ZM=new eA(""),El=new eA("",{providedIn:"platform",factory:()=>"unknown"});var _i=new eA(""),bu=new eA("",{providedIn:"root",factory:()=>fT().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});var w1A="h",y1A="b";var mT=!1,v1A=new eA("",{providedIn:"root",factory:()=>mT});var WM=function(t){return t[t.CHANGE_DETECTION=0]="CHANGE_DETECTION",t[t.AFTER_NEXT_RENDER=1]="AFTER_NEXT_RENDER",t}(WM||{}),Zd=new eA(""),LJ=new Set;function Cg(t){LJ.has(t)||(LJ.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}var XM=(()=>{class t{view;node;constructor(A,i){this.view=A,this.node=i}static __NG_ELEMENT_ID__=M1A}return t})();function M1A(){return new XM(zt(),gs())}var bd=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(bd||{}),pT=(()=>{class t{impl=null;execute(){this.impl?.execute()}static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new t})}return t})(),b1A=[bd.EarlyRead,bd.Write,bd.MixedReadWrite,bd.Read],k1A=(()=>{class t{ngZone=f(ye);scheduler=f(LI);errorHandler=f(Ps,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){f(Zd,{optional:!0})}execute(){let A=this.sequences.size>0;A&&so(16),this.executing=!0;for(let i of b1A)for(let n of this.sequences)if(!(n.erroredOrDestroyed||!n.hooks[i]))try{n.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>{let o=n.hooks[i];return o(n.pipelinedValue)},n.snapshot))}catch(o){n.erroredOrDestroyed=!0,this.errorHandler?.handleError(o)}this.executing=!1;for(let i of this.sequences)i.afterRun(),i.once&&(this.sequences.delete(i),i.destroy());for(let i of this.deferredRegistrations)this.sequences.add(i);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),A&&so(17)}register(A){let{view:i}=A;i!==void 0?((i[Sd]??=[]).push(A),zd(i),i[ii]|=8192):this.executing?this.deferredRegistrations.add(A):this.addSequence(A)}addSequence(A){this.sequences.add(A),this.scheduler.notify(7)}unregister(A){this.executing&&this.sequences.has(A)?(A.erroredOrDestroyed=!0,A.pipelinedValue=void 0,A.once=!0):(this.sequences.delete(A),this.deferredRegistrations.delete(A))}maybeTrace(A,i){return i?i.run(WM.AFTER_NEXT_RENDER,A):A()}static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new t})}return t})(),R9=class{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(e,A,i,n,o,r=null){this.impl=e,this.hooks=A,this.view=i,this.once=n,this.snapshot=r,this.unregisterOnDestroy=o?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();let e=this.view?.[Sd];e&&(this.view[Sd]=e.filter(A=>A!==this))}};function ku(t,e){!e?.injector&&bM(ku);let A=e?.injector??f(Zt);return Cg("NgAfterRender"),DT(t,A,e,!1)}function Ir(t,e){!e?.injector&&bM(Ir);let A=e?.injector??f(Zt);return Cg("NgAfterNextRender"),DT(t,A,e,!0)}function S1A(t,e){if(t instanceof Function){let A=[void 0,void 0,void 0,void 0];return A[e]=t,A}else return[t.earlyRead,t.write,t.mixedReadWrite,t.read]}function DT(t,e,A,i){let n=e.get(pT);n.impl??=e.get(k1A);let o=e.get(Zd,null,{optional:!0}),r=A?.phase??bd.MixedReadWrite,s=A?.manualCleanup!==!0?e.get(f0):null,a=e.get(XM,null,{optional:!0}),c=new R9(n.impl,S1A(t,r),a?.view,i,s,o?.snapshot(null));return n.impl.register(c),c}var R1A=(t,e,A,i)=>{};function L1A(t,e,A,i){R1A(t,e,A,i)}var x1A=()=>null;function wT(t,e,A=!1){return x1A(t,e,A)}function yT(t,e){let A=t.contentQueries;if(A!==null){let i=pi(null);try{for(let n=0;nt,createScript:t=>t,createScriptURL:t=>t})}catch{}return Bm}function Ip(t){return N1A()?.createHTML(t)||t}var Em;function F1A(){if(Em===void 0&&(Em=null,Pa.trustedTypes))try{Em=Pa.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return Em}function xJ(t){return F1A()?.createHTML(t)||t}var u0=class{changingThisBreaksApplicationSecurity;constructor(e){this.changingThisBreaksApplicationSecurity=e}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${rY})`}},x9=class extends u0{getTypeName(){return"HTML"}},N9=class extends u0{getTypeName(){return"Style"}},F9=class extends u0{getTypeName(){return"Script"}},_9=class extends u0{getTypeName(){return"URL"}},G9=class extends u0{getTypeName(){return"ResourceURL"}};function dg(t){return t instanceof u0?t.changingThisBreaksApplicationSecurity:t}function M2(t,e){let A=_1A(t);if(A!=null&&A!==e){if(A==="ResourceURL"&&e==="URL")return!0;throw new Error(`Required a safe ${e}, got a ${A} (see ${rY})`)}return A===e}function _1A(t){return t instanceof u0&&t.getTypeName()||null}function vT(t){return new x9(t)}function MT(t){return new N9(t)}function bT(t){return new F9(t)}function kT(t){return new _9(t)}function ST(t){return new G9(t)}function G1A(t){let e=new U9(t);return K1A()?new K9(e):e}var K9=class{inertDocumentHelper;constructor(e){this.inertDocumentHelper=e}getInertBodyElement(e){e=""+e;try{let A=new window.DOMParser().parseFromString(Ip(e),"text/html").body;return A===null?this.inertDocumentHelper.getInertBodyElement(e):(A.firstChild?.remove(),A)}catch{return null}}},U9=class{defaultDoc;inertDocument;constructor(e){this.defaultDoc=e,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(e){let A=this.inertDocument.createElement("template");return A.innerHTML=Ip(e),A}};function K1A(){try{return!!new window.DOMParser().parseFromString(Ip(""),"text/html")}catch{return!1}}var U1A=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Cp(t){return t=String(t),t.match(U1A)?t:"unsafe:"+t}function p0(t){let e={};for(let A of t.split(","))e[A]=!0;return e}function Su(...t){let e={};for(let A of t)for(let i in A)A.hasOwnProperty(i)&&(e[i]=!0);return e}var RT=p0("area,br,col,hr,img,wbr"),LT=p0("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),xT=p0("rp,rt"),J1A=Su(xT,LT),Y1A=Su(LT,p0("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),T1A=Su(xT,p0("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),NJ=Su(RT,Y1A,T1A,J1A),NT=p0("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),H1A=p0("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),O1A=p0("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"),z1A=Su(NT,H1A,O1A),P1A=p0("script,style,template"),J9=class{sanitizedSomething=!1;buf=[];sanitizeChildren(e){let A=e.firstChild,i=!0,n=[];for(;A;){if(A.nodeType===Node.ELEMENT_NODE?i=this.startElement(A):A.nodeType===Node.TEXT_NODE?this.chars(A.nodeValue):this.sanitizedSomething=!0,i&&A.firstChild){n.push(A),A=V1A(A);continue}for(;A;){A.nodeType===Node.ELEMENT_NODE&&this.endElement(A);let o=q1A(A);if(o){A=o;break}A=n.pop()}}return this.buf.join("")}startElement(e){let A=FJ(e).toLowerCase();if(!NJ.hasOwnProperty(A))return this.sanitizedSomething=!0,!P1A.hasOwnProperty(A);this.buf.push("<"),this.buf.push(A);let i=e.attributes;for(let n=0;n"),!0}endElement(e){let A=FJ(e).toLowerCase();NJ.hasOwnProperty(A)&&!RT.hasOwnProperty(A)&&(this.buf.push(""))}chars(e){this.buf.push(_J(e))}};function j1A(t,e){return(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}function q1A(t){let e=t.nextSibling;if(e&&t!==e.previousSibling)throw FT(e);return e}function V1A(t){let e=t.firstChild;if(e&&j1A(t,e))throw FT(e);return e}function FJ(t){let e=t.nodeName;return typeof e=="string"?e:"FORM"}function FT(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}var Z1A=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,W1A=/([^\#-~ |!])/g;function _J(t){return t.replace(/&/g,"&").replace(Z1A,function(e){let A=e.charCodeAt(0),i=e.charCodeAt(1);return"&#"+((A-55296)*1024+(i-56320)+65536)+";"}).replace(W1A,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(//g,">")}var Qm;function Ab(t,e){let A=null;try{Qm=Qm||G1A(t);let i=e?String(e):"";A=Qm.getInertBodyElement(i);let n=5,o=i;do{if(n===0)throw new Error("Failed to sanitize html because the input is unstable");n--,i=o,o=A.innerHTML,A=Qm.getInertBodyElement(i)}while(i!==o);let s=new J9().sanitizeChildren(GJ(A)||A);return Ip(s)}finally{if(A){let i=GJ(A)||A;for(;i.firstChild;)i.firstChild.remove()}}}function GJ(t){return"content"in t&&X1A(t)?t.content:null}function X1A(t){return t.nodeType===Node.ELEMENT_NODE&&t.nodeName==="TEMPLATE"}var Xr=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(Xr||{});function b2(t){let e=_T();return e?xJ(e.sanitize(Xr.HTML,t)||""):M2(t,"HTML")?xJ(dg(t)):Ab(fT(),wI(t))}function js(t){let e=_T();return e?e.sanitize(Xr.URL,t)||"":M2(t,"URL")?dg(t):Cp(wI(t))}function _T(){let t=zt();return t&&t[E0].sanitizer}var $1A=/^>|^->||--!>|)/g,eIA="\u200B$1\u200B";function tIA(t){return t.replace($1A,e=>e.replace(AIA,eIA))}function dp(t){return t.ownerDocument.defaultView}function Wd(t){return t.ownerDocument}function GT(t){return t instanceof Function?t():t}function iIA(t,e,A){let i=t.length;for(;;){let n=t.indexOf(e,A);if(n===-1)return n;if(n===0||t.charCodeAt(n-1)<=32){let o=e.length;if(n+o===i||t.charCodeAt(n+o)<=32)return n}A=n+1}}var KT="ng-template";function nIA(t,e,A,i){let n=0;if(i){for(;n-1){let o;for(;++no?I="":I=n[g+1].toLowerCase(),i&2&&c!==I){if(cg(i))return!1;r=!0}}}}return cg(i)||r}function cg(t){return(t&1)===0}function sIA(t,e,A,i){if(e===null)return-1;let n=0;if(i||!A){let o=!1;for(;n-1)for(A++;A0?'="'+s+'"':"")+"]"}else i&8?n+="."+r:i&4&&(n+=" "+r);else n!==""&&!cg(r)&&(e+=KJ(o,n),n=""),i=r,o=o||!cg(i);A++}return n!==""&&(e+=KJ(o,n)),e}function CIA(t){return t.map(IIA).join(",")}function dIA(t){let e=[],A=[],i=1,n=2;for(;iQr&&zT(t,e,Qr,!1),so(r?2:0,n),A(i,n)}finally{SI(o),so(r?3:1,n)}}function Ep(t,e,A){kIA(t,e,A),(A.flags&64)===64&&SIA(t,e,A)}function ob(t,e,A=dl){let i=e.localNames;if(i!==null){let n=e.index+1;for(let o=0;onull;function MIA(t){return t==="class"?"className":t==="for"?"htmlFor":t==="formaction"?"formAction":t==="innerHtml"?"innerHTML":t==="readonly"?"readOnly":t==="tabindex"?"tabIndex":t}function Ru(t,e,A,i,n,o,r,s){if(!s&&sb(e,t,A,i,n)){Hd(e)&&bIA(A,e.index);return}if(e.type&3){let a=dl(e,A);i=MIA(i),n=r!=null?r(n,e.value||"",i):n,o.setProperty(a,i,n)}else e.type&12}function bIA(t,e){let A=cl(e,t);A[ii]&16||(A[ii]|=64)}function kIA(t,e,A){let i=A.directiveStart,n=A.directiveEnd;Hd(A)&&DIA(e,A,t.data[i+A.componentOffset]),t.firstCreatePass||Gm(A,e);let o=A.initialInputs;for(let r=i;r=0?i[s]():i[-s].unsubscribe(),r+=2}else{let s=i[A[r+1]];A[r].call(s)}i!==null&&(e[Sm]=null);let n=e[f2];if(n!==null){e[f2]=null;for(let r=0;r{zd(t.lView)},consumerOnSignalRead(){this.lView[wc]=this}});function tCA(t){let e=t[wc]??Object.create(iCA);return e.lView=t,e}var iCA=Fe(sA({},Cd),{consumerIsAlwaysLive:!0,kind:"template",consumerMarkedDirty:t=>{let e=kI(t.lView);for(;e&&!eH(e[hi]);)e=kI(e);e&&_Y(e)},consumerOnSignalRead(){this.lView[wc]=this}});function eH(t){return t.type!==2}function tH(t){if(t[MI]===null)return;let e=!0;for(;e;){let A=!1;for(let i of t[MI])i.dirty&&(A=!0,i.zone===null||Zone.current===i.zone?i.run():i.zone.run(()=>i.run()));e=A&&!!(t[ii]&8192)}}var nCA=100;function iH(t,e=!0,A=0){let n=t[E0].rendererFactory,o=!1;o||n.begin?.();try{oCA(t,A)}catch(r){throw e&&FIA(t,r),r}finally{o||n.end?.()}}function oCA(t,e){let A=YY();try{xm(!0),H9(t,e);let i=0;for(;ap(t);){if(i===nCA)throw new te(103,!1);i++,H9(t,1)}}finally{xm(A)}}function rCA(t,e,A,i){if(Od(e))return;let n=e[ii],o=!1,r=!1;TM(e);let s=!0,a=null,c=null;o||(eH(t)?(c=XIA(e),a=tu(c)):bv()===null?(s=!1,c=tCA(e),a=tu(c)):e[wc]&&(iu(e[wc]),e[wc]=null));try{FY(e),K2A(t.bindingStartIndex),A!==null&&PT(t,e,A,2,i);let g=(n&3)===3;if(!o)if(g){let d=t.preOrderCheckHooks;d!==null&&fm(e,d,null)}else{let d=t.preOrderHooks;d!==null&&mm(e,d,0,null),A9(e,0)}if(r||sCA(e),tH(e),nH(e,0),t.contentQueries!==null&&yT(t,e),!o)if(g){let d=t.contentCheckHooks;d!==null&&fm(e,d)}else{let d=t.contentHooks;d!==null&&mm(e,d,1),A9(e,1)}cCA(t,e);let I=t.components;I!==null&&rH(e,I,0);let C=t.viewQuery;if(C!==null&&L9(2,C,i),!o)if(g){let d=t.viewCheckHooks;d!==null&&fm(e,d)}else{let d=t.viewHooks;d!==null&&mm(e,d,2),A9(e,2)}if(t.firstUpdatePass===!0&&(t.firstUpdatePass=!1),e[$v]){for(let d of e[$v])d();e[$v]=null}o||($T(e),e[ii]&=-73)}catch(g){throw o||zd(e),g}finally{c!==null&&(Gf(c,a),s&&ACA(c)),HM()}}function nH(t,e){for(let A=ET(t);A!==null;A=QT(A))for(let i=ys;i0&&(t[A-1][lg]=i[lg]);let o=bm(t,ys+e);JIA(i[hi],i);let r=o[Q0];r!==null&&r.detachView(o[hi]),i[vs]=null,i[lg]=null,i[ii]&=-129}return i}function gCA(t,e,A,i){let n=ys+i,o=A.length;i>0&&(A[n-1][lg]=e),i-1&&(mu(e,i),bm(A,i))}this._attachedToViewContainer=!1}Qp(this._lView[hi],this._lView)}onDestroy(e){GY(this._lView,e)}markForCheck(){Cb(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[ii]&=-129}reattach(){h9(this._lView),this._lView[ii]|=128}detectChanges(){this._lView[ii]|=1024,iH(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new te(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;let e=Lm(this._lView),A=this._lView[vI];A!==null&&!e&&lb(A,this._lView),qT(this._lView[hi],this._lView)}attachToAppRef(e){if(this._attachedToViewContainer)throw new te(902,!1);this._appRef=e;let A=Lm(this._lView),i=this._lView[vI];i!==null&&!A&&gH(i,this._lView),h9(this._lView)}};var mn=(()=>{class t{static __NG_ELEMENT_ID__=CCA}return t})(),lCA=mn,ICA=class extends lCA{_declarationLView;_declarationTContainer;elementRef;constructor(e,A,i){super(),this._declarationLView=e,this._declarationTContainer=A,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(e,A){return this.createEmbeddedViewImpl(e,A)}createEmbeddedViewImpl(e,A,i){let n=Lu(this._declarationLView,this._declarationTContainer,e,{embeddedViewInjector:A,dehydratedView:i});return new pu(n)}};function CCA(){return fp(gs(),zt())}function fp(t,e){return t.type&4?new ICA(e,t,jd(t,e)):null}function Xd(t,e,A,i,n){let o=t.data[e];if(o===null)o=dCA(t,e,A,i,n),U2A()&&(o.flags|=32);else if(o.type&64){o.type=A,o.value=i,o.attrs=n;let r=_2A();o.injectorIndex=r===null?-1:r.injectorIndex}return w2(o,!0),o}function dCA(t,e,A,i,n){let o=UY(),r=GM(),s=r?o:o&&o.parent,a=t.data[e]=ECA(t,s,A,e,i,n);return BCA(t,a,o,r),a}function BCA(t,e,A,i){t.firstChild===null&&(t.firstChild=e),A!==null&&(i?A.child==null&&e.parent!==null&&(A.child=e):A.next===null&&(A.next=e,e.prev=A))}function ECA(t,e,A,i,n,o){let r=e?e.injectorIndex:-1,s=0;return KY()&&(s|=128),{type:A,index:i,insertBeforeIndex:null,injectorIndex:r,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:s,providerIndexes:0,value:n,attrs:o,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}var pie=new RegExp(`^(\\d+)*(${y1A}|${w1A})*(.*)`);var QCA=()=>null;function Ud(t,e){return QCA(t,e)}var uCA=class{},lH=class{},O9=class{resolveComponentFactory(e){throw Error(`No component factory found for ${Ia(e)}.`)}},mp=class{static NULL=new O9},Ms=class{},qi=(()=>{class t{destroyNode=null;static __NG_ELEMENT_ID__=()=>hCA()}return t})();function hCA(){let t=zt(),e=gs(),A=cl(e.index,t);return(m2(A)?A:t)[Jo]}var fCA=(()=>{class t{static \u0275prov=bA({token:t,providedIn:"root",factory:()=>null})}return t})();var i9={},z9=class{injector;parentInjector;constructor(e,A){this.injector=e,this.parentInjector=A}get(e,A,i){i=Ap(i);let n=this.injector.get(e,i9,i);return n!==i9||A===i9?n:this.parentInjector.get(e,A,i)}};function P9(t,e,A){let i=A?t.styles:null,n=A?t.classes:null,o=0;if(e!==null)for(let r=0;r0&&(A.directiveToIndex=new Map);for(let C=0;C0;){let A=t[--e];if(typeof A=="number"&&A<0)return A}return 0}function SCA(t,e,A){if(A){if(e.exportAs)for(let i=0;i{let[A,i,n]=t[e],o={propName:A,templateName:e,isSignal:(i&Bp.SignalBased)!==0};return n&&(o.transform=n),o})}function xCA(t){return Object.keys(t).map(e=>({propName:t[e],templateName:e}))}function NCA(t,e,A){let i=e instanceof vr?e:e?.injector;return i&&t.getStandaloneInjector!==null&&(i=t.getStandaloneInjector(i)||i),i?new z9(A,i):A}function FCA(t){let e=t.get(Ms,null);if(e===null)throw new te(407,!1);let A=t.get(fCA,null),i=t.get(LI,null);return{rendererFactory:e,sanitizer:A,changeDetectionScheduler:i}}function _CA(t,e){let A=(t.selectors[0][0]||"div").toLowerCase();return JT(e,A,A==="svg"?xY:A==="math"?w2A:null)}var xI=class extends lH{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=LCA(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=xCA(this.componentDef.outputs),this.cachedOutputs}constructor(e,A){super(),this.componentDef=e,this.ngModule=A,this.componentType=e.type,this.selector=CIA(e.selectors),this.ngContentSelectors=e.ngContentSelectors??[],this.isBoundToModule=!!A}create(e,A,i,n){so(22);let o=pi(null);try{let r=this.componentDef,s=i?["ng-version","19.2.15"]:dIA(this.componentDef.selectors[0]),a=tb(0,null,null,1,0,null,null,null,null,[s],null),c=NCA(r,n||this.ngModule,e),g=FCA(c),I=g.rendererFactory.createRenderer(null,r),C=i?wIA(I,i,r.encapsulation,c):_CA(r,I),d=ib(null,a,null,512|HT(r),null,null,g,I,c,null,wT(C,c,!0));d[Qr]=C,TM(d);let B=null;try{let E=dH(Qr,a,d,"#host",()=>[this.componentDef],!0,0);C&&(TT(I,C,E),qd(C,d)),Ep(a,d,E),$M(a,E,d),BH(a,E),A!==void 0&&GCA(E,this.ngContentSelectors,A),B=cl(E.index,d),d[Kr]=B[Kr],ab(a,d,null)}catch(E){throw B!==null&&k9(B),k9(d),E}finally{so(23),HM()}return new j9(this.componentType,d)}finally{pi(o)}}},j9=class extends uCA{_rootLView;instance;hostView;changeDetectorRef;componentType;location;previousInputValues=null;_tNode;constructor(e,A){super(),this._rootLView=A,this._tNode=RM(A[hi],Qr),this.location=jd(this._tNode,A),this.instance=cl(this._tNode.index,A)[Kr],this.hostView=this.changeDetectorRef=new pu(A,void 0,!1),this.componentType=e}setInput(e,A){let i=this._tNode;if(this.previousInputValues??=new Map,this.previousInputValues.has(e)&&Object.is(this.previousInputValues.get(e),A))return;let n=this._rootLView,o=sb(i,n[hi],n,e,A);this.previousInputValues.set(e,A);let r=cl(i.index,n);Cb(r,1)}get injector(){return new DI(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(e){this.hostView.onDestroy(e)}};function GCA(t,e,A){let i=t.projection=[];for(let n=0;n{class t{static __NG_ELEMENT_ID__=KCA}return t})();function KCA(){let t=gs();return QH(t,zt())}var UCA=Sn,EH=class extends UCA{_lContainer;_hostTNode;_hostLView;constructor(e,A,i){super(),this._lContainer=e,this._hostTNode=A,this._hostLView=i}get element(){return jd(this._hostTNode,this._hostLView)}get injector(){return new DI(this._hostTNode,this._hostLView)}get parentInjector(){let e=zM(this._hostTNode,this._hostLView);if(ZY(e)){let A=Fm(e,this._hostLView),i=Nm(e),n=A[hi].data[i+8];return new DI(n,A)}else return new DI(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(e){let A=OJ(this._lContainer);return A!==null&&A[e]||null}get length(){return this._lContainer.length-ys}createEmbeddedView(e,A,i){let n,o;typeof i=="number"?n=i:i!=null&&(n=i.index,o=i.injector);let r=Ud(this._lContainer,e.ssrId),s=e.createEmbeddedViewImpl(A||{},o,r);return this.insertImpl(s,n,Kd(this._hostTNode,r)),s}createComponent(e,A,i,n,o){let r=e&&!f2A(e),s;if(r)s=A;else{let B=A||{};s=B.index,i=B.injector,n=B.projectableNodes,o=B.environmentInjector||B.ngModuleRef}let a=r?e:new xI(p2(e)),c=i||this.parentInjector;if(!o&&a.ngModule==null){let E=(r?c:this.parentInjector).get(vr,null);E&&(o=E)}let g=p2(a.componentType??{}),I=Ud(this._lContainer,g?.id??null),C=I?.firstChild??null,d=a.create(c,n,C,o);return this.insertImpl(d.hostView,s,Kd(this._hostTNode,I)),d}insert(e,A){return this.insertImpl(e,A,!0)}insertImpl(e,A,i){let n=e._lView;if(M2A(n)){let s=this.indexOf(e);if(s!==-1)this.detach(s);else{let a=n[vs],c=new EH(a,a[Ba],a[vs]);c.detach(c.indexOf(e))}}let o=this._adjustIndex(A),r=this._lContainer;return xu(r,n,o,i),e.attachToViewContainerRef(),hY(n9(r),o,e),e}move(e,A){return this.insert(e,A)}indexOf(e){let A=OJ(this._lContainer);return A!==null?A.indexOf(e):-1}remove(e){let A=this._adjustIndex(e,-1),i=mu(this._lContainer,A);i&&(bm(n9(this._lContainer),A),Qp(i[hi],i))}detach(e){let A=this._adjustIndex(e,-1),i=mu(this._lContainer,A);return i&&bm(n9(this._lContainer),A)!=null?new pu(i):null}_adjustIndex(e,A=0){return e??this.length+A}};function OJ(t){return t[Rm]}function n9(t){return t[Rm]||(t[Rm]=[])}function QH(t,e){let A,i=e[t.index];return h0(i)?A=i:(A=sH(i,e,null,t),e[t.index]=A,nb(e,A)),YCA(A,e,t,i),new EH(A,t,e)}function JCA(t,e){let A=t[Jo],i=A.createComment(""),n=dl(e,t),o=A.parentNode(n);return Jm(A,o,i,A.nextSibling(n),!1),i}var YCA=OCA,TCA=()=>!1;function HCA(t,e,A){return TCA(t,e,A)}function OCA(t,e,A,i){if(t[bI])return;let n;A.type&8?n=al(i):n=JCA(e,A),t[bI]=n}var q9=class t{queryList;matches=null;constructor(e){this.queryList=e}clone(){return new t(this.queryList)}setDirty(){this.queryList.setDirty()}},V9=class t{queries;constructor(e=[]){this.queries=e}createEmbeddedView(e){let A=e.queries;if(A!==null){let i=e.contentQueries!==null?e.contentQueries[0]:A.length,n=[];for(let o=0;o0)i.push(r[s/2]);else{let c=o[s+1],g=e[-a];for(let I=ys;Ie.trim())}function pH(t,e,A){t.queries===null&&(t.queries=new Z9),t.queries.track(new W9(e,A))}function ZCA(t,e){let A=t.contentQueries||(t.contentQueries=[]),i=A.length?A[A.length-1]:-1;e!==i&&A.push(t.queries.length-1,e)}function Eb(t,e){return t.queries.getByIndex(e)}function DH(t,e){let A=t[hi],i=Eb(A,e);return i.crossesNgTemplate?X9(A,t,e,[]):uH(A,t,i,e)}function Qb(t,e,A){let i,n=Yf(()=>{i._dirtyCounter();let o=XCA(i,t);if(e&&o===void 0)throw new te(-951,!1);return o});return i=n[aa],i._dirtyCounter=Ao(0),i._flatValue=void 0,n}function wH(t){return Qb(!0,!1,t)}function yH(t){return Qb(!0,!0,t)}function WCA(t){return Qb(!1,!1,t)}function vH(t,e){let A=t[aa];A._lView=zt(),A._queryIndex=e,A._queryList=Bb(A._lView,e),A._queryList.onDirty(()=>A._dirtyCounter.update(i=>i+1))}function XCA(t,e){let A=t._lView,i=t._queryIndex;if(A===void 0||i===void 0||A[ii]&4)return e?void 0:zs;let n=Bb(A,i),o=DH(A,i);return n.reset(o,lT),e?n.first:n._changesDetected||t._flatValue===void 0?t._flatValue=n.toArray():t._flatValue}function zJ(t,e){return wH(e)}function $CA(t,e){return yH(e)}var qs=(zJ.required=$CA,zJ);function MH(t,e){return WCA(e)}function PJ(t,e){return wH(e)}function AdA(t,e){return yH(e)}var bH=(PJ.required=AdA,PJ);var Il=class{},ub=class{};function kH(t,e){return new Om(t,e??null,[])}var Om=class extends Il{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];componentFactoryResolver=new Tm(this);constructor(e,A,i,n=!0){super(),this.ngModuleType=e,this._parent=A;let o=pY(e);this._bootstrapComponents=GT(o.bootstrap),this._r3Injector=oT(e,A,[{provide:Il,useValue:this},{provide:mp,useValue:this.componentFactoryResolver},...i],Ia(e),new Set(["environment"])),n&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}get injector(){return this._r3Injector}destroy(){let e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(A=>A()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}},$9=class extends ub{moduleType;constructor(e){super(),this.moduleType=e}create(e){return new Om(this.moduleType,e,[])}};var zm=class extends Il{injector;componentFactoryResolver=new Tm(this);instance=null;constructor(e){super();let A=new Qu([...e.providers,{provide:Il,useValue:this},{provide:mp,useValue:this.componentFactoryResolver}],e.parent||np(),e.debugName,new Set(["environment"]));this.injector=A,e.runEnvironmentInitializers&&A.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(e){this.injector.onDestroy(e)}};function Nu(t,e,A=null){return new zm({providers:t,parent:e,debugName:A,runEnvironmentInitializers:!0}).injector}var edA=(()=>{class t{_injector;cachedInjectors=new Map;constructor(A){this._injector=A}getOrCreateStandaloneInjector(A){if(!A.standalone)return null;if(!this.cachedInjectors.has(A)){let i=wY(!1,A.type),n=i.length>0?Nu([i],this._injector,`Standalone[${A.type.name}]`):null;this.cachedInjectors.set(A,n)}return this.cachedInjectors.get(A)}ngOnDestroy(){try{for(let A of this.cachedInjectors.values())A!==null&&A.destroy()}finally{this.cachedInjectors.clear()}}static \u0275prov=bA({token:t,providedIn:"environment",factory:()=>new t(be(vr))})}return t})();function jA(t){return wu(()=>{let e=SH(t),A=Fe(sA({},e),{decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===dT.OnPush,directiveDefs:null,pipeDefs:null,dependencies:e.standalone&&t.dependencies||null,getStandaloneInjector:e.standalone?n=>n.get(edA).getOrCreateStandaloneInjector(A):null,getExternalStyles:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||gl.Emulated,styles:t.styles||zs,_:null,schemas:t.schemas||null,tView:null,id:""});e.standalone&&Cg("NgStandalone"),RH(A);let i=t.dependencies;return A.directiveDefs=jJ(i,!1),A.pipeDefs=jJ(i,!0),A.id=rdA(A),A})}function tdA(t){return p2(t)||DY(t)}function idA(t){return t!==null}function Ze(t){return wu(()=>({type:t.type,bootstrap:t.bootstrap||zs,declarations:t.declarations||zs,imports:t.imports||zs,exports:t.exports||zs,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function ndA(t,e){if(t==null)return sl;let A={};for(let i in t)if(t.hasOwnProperty(i)){let n=t[i],o,r,s,a;Array.isArray(n)?(s=n[0],o=n[1],r=n[2]??o,a=n[3]||null):(o=n,r=n,s=Bp.None,a=null),A[o]=[i,s,a],e[o]=r}return A}function odA(t){if(t==null)return sl;let e={};for(let A in t)t.hasOwnProperty(A)&&(e[t[A]]=A);return e}function WA(t){return wu(()=>{let e=SH(t);return RH(e),e})}function $d(t){return{type:t.type,name:t.name,factory:null,pure:t.pure!==!1,standalone:t.standalone??!0,onDestroy:t.type.prototype.ngOnDestroy||null}}function SH(t){let e={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:e,inputConfig:t.inputs||sl,exportAs:t.exportAs||null,standalone:t.standalone??!0,signals:t.signals===!0,selectors:t.selectors||zs,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:ndA(t.inputs,e),outputs:odA(t.outputs),debugInfo:null}}function RH(t){t.features?.forEach(e=>e(t))}function jJ(t,e){if(!t)return null;let A=e?g2A:tdA;return()=>(typeof t=="function"?t():t).map(i=>A(i)).filter(idA)}function rdA(t){let e=0,A=typeof t.consts=="function"?"":t.consts,i=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,A,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery];for(let o of i.join("|"))e=Math.imul(31,e)+o.charCodeAt(0)<<0;return e+=2147483648,"c"+e}function sdA(t){return Object.getPrototypeOf(t.prototype).constructor}function lt(t){let e=sdA(t.type),A=!0,i=[t];for(;e;){let n;if(Ig(t))n=e.\u0275cmp||e.\u0275dir;else{if(e.\u0275cmp)throw new te(903,!1);n=e.\u0275dir}if(n){if(A){i.push(n);let r=t;r.inputs=o9(t.inputs),r.declaredInputs=o9(t.declaredInputs),r.outputs=o9(t.outputs);let s=n.hostBindings;s&&IdA(t,s);let a=n.viewQuery,c=n.contentQueries;if(a&&gdA(t,a),c&&ldA(t,c),adA(t,n),T0A(t.outputs,n.outputs),Ig(n)&&n.data.animation){let g=t.data;g.animation=(g.animation||[]).concat(n.data.animation)}}let o=n.features;if(o)for(let r=0;r=0;i--){let n=t[i];n.hostVars=e+=n.hostVars,n.hostAttrs=Gd(n.hostAttrs,A=Gd(A,n.hostAttrs))}}function o9(t){return t===sl?{}:t===zs?[]:t}function gdA(t,e){let A=t.viewQuery;A?t.viewQuery=(i,n)=>{e(i,n),A(i,n)}:t.viewQuery=e}function ldA(t,e){let A=t.contentQueries;A?t.contentQueries=(i,n,o)=>{e(i,n,o),A(i,n,o)}:t.contentQueries=e}function IdA(t,e){let A=t.hostBindings;A?t.hostBindings=(i,n)=>{e(i,n),A(i,n)}:t.hostBindings=e}function LH(t){let e=A=>{let i=Array.isArray(t);A.hostDirectives===null?(A.findHostDirectiveDefs=xH,A.hostDirectives=i?t.map(AM):[t]):i?A.hostDirectives.unshift(...t.map(AM)):A.hostDirectives.unshift(t)};return e.ngInherit=!0,e}function xH(t,e,A){if(t.hostDirectives!==null)for(let i of t.hostDirectives)if(typeof i=="function"){let n=i();for(let o of n)qJ(AM(o),e,A)}else qJ(i,e,A)}function qJ(t,e,A){let i=DY(t.directive);CdA(i.declaredInputs,t.inputs),xH(i,e,A),A.set(i,t),e.push(i)}function AM(t){return typeof t=="function"?{directive:cs(t),inputs:sl,outputs:sl}:{directive:cs(t.directive),inputs:VJ(t.inputs),outputs:VJ(t.outputs)}}function VJ(t){if(t===void 0||t.length===0)return sl;let e={};for(let A=0;A{class t{log(A){console.log(A)}warn(A){console.warn(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();var pb=new eA(""),Fu=new eA(""),pp=(()=>{class t{_ngZone;registry;_isZoneStable=!0;_callbacks=[];_taskTrackingZone=null;_destroyRef;constructor(A,i,n){this._ngZone=A,this.registry=i,MM()&&(this._destroyRef=f(f0,{optional:!0})??void 0),Db||(hdA(n),n.addToWindow(i)),this._watchAngularEvents(),A.run(()=>{this._taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){let A=this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),i=this._ngZone.runOutsideAngular(()=>this._ngZone.onStable.subscribe({next:()=>{ye.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}}));this._destroyRef?.onDestroy(()=>{A.unsubscribe(),i.unsubscribe()})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;this._callbacks.length!==0;){let A=this._callbacks.pop();clearTimeout(A.timeoutId),A.doneCb()}});else{let A=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>i.updateCb&&i.updateCb(A)?(clearTimeout(i.timeoutId),!1):!0)}}getPendingTasks(){return this._taskTrackingZone?this._taskTrackingZone.macroTasks.map(A=>({source:A.source,creationLocation:A.creationLocation,data:A.data})):[]}addCallback(A,i,n){let o=-1;i&&i>0&&(o=setTimeout(()=>{this._callbacks=this._callbacks.filter(r=>r.timeoutId!==o),A()},i)),this._callbacks.push({doneCb:A,timeoutId:o,updateCb:n})}whenStable(A,i,n){if(n&&!this._taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(A,i,n),this._runCallbacksIfReady()}registerApplication(A){this.registry.registerApplication(A,this)}unregisterApplication(A){this.registry.unregisterApplication(A)}findProviders(A,i,n){return[]}static \u0275fac=function(i){return new(i||t)(be(ye),be(Dp),be(Fu))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),Dp=(()=>{class t{_applications=new Map;registerApplication(A,i){this._applications.set(A,i)}unregisterApplication(A){this._applications.delete(A)}unregisterAllApplications(){this._applications.clear()}getTestability(A){return this._applications.get(A)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(A,i=!0){return Db?.findTestabilityInTree(this,A,i)??null}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function hdA(t){Db=t}var Db,_H=(()=>{class t{static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new eM})}return t})(),eM=class{queuedEffectCount=0;queues=new Map;schedule(e){this.enqueue(e)}remove(e){let A=e.zone,i=this.queues.get(A);i.has(e)&&(i.delete(e),this.queuedEffectCount--)}enqueue(e){let A=e.zone;this.queues.has(A)||this.queues.set(A,new Set);let i=this.queues.get(A);i.has(e)||(this.queuedEffectCount++,i.add(e))}flush(){for(;this.queuedEffectCount>0;)for(let[e,A]of this.queues)e===null?this.flushQueue(A):e.run(()=>this.flushQueue(A))}flushQueue(e){for(let A of e)e.delete(A),this.queuedEffectCount--,A.run()}};function k2(t){return!!t&&typeof t.then=="function"}function wb(t){return!!t&&typeof t.subscribe=="function"}var GH=new eA("");function yb(t){return vu([{provide:GH,multi:!0,useValue:t}])}var KH=(()=>{class t{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((A,i)=>{this.resolve=A,this.reject=i});appInits=f(GH,{optional:!0})??[];injector=f(Zt);constructor(){}runInitializers(){if(this.initialized)return;let A=[];for(let n of this.appInits){let o=da(this.injector,n);if(k2(o))A.push(o);else if(wb(o)){let r=new Promise((s,a)=>{o.subscribe({complete:s,error:a})});A.push(r)}}let i=()=>{this.done=!0,this.resolve()};Promise.all(A).then(()=>{i()}).catch(n=>{this.reject(n)}),A.length===0&&i(),this.initialized=!0}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),vb=new eA("");function fdA(){Lv(()=>{throw new te(600,!1)})}function mdA(t){return t.isBoundToModule}var pdA=10;var Ca=(()=>{class t{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=f(B1A);afterRenderManager=f(pT);zonelessEnabled=f(jM);rootEffectScheduler=f(_H);dirtyFlags=0;tracingSnapshot=null;externalTestViews=new Set;afterTick=new qA;get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];isStable=f(m0).hasPendingTasks.pipe(je(A=>!A));constructor(){f(Zd,{optional:!0})}whenStable(){let A;return new Promise(i=>{A=this.isStable.subscribe({next:n=>{n&&i()}})}).finally(()=>{A.unsubscribe()})}_injector=f(vr);_rendererFactory=null;get injector(){return this._injector}bootstrap(A,i){return this.bootstrapImpl(A,i)}bootstrapImpl(A,i,n=Zt.NULL){so(10);let o=A instanceof lH;if(!this._injector.get(KH).done){let d="";throw new te(405,d)}let s;o?s=A:s=this._injector.get(mp).resolveComponentFactory(A),this.componentTypes.push(s.componentType);let a=mdA(s)?void 0:this._injector.get(Il),c=i||s.selector,g=s.create(n,[],c,a),I=g.location.nativeElement,C=g.injector.get(pb,null);return C?.registerApplication(I),g.onDestroy(()=>{this.detachView(g.hostView),Dm(this.components,g),C?.unregisterApplication(I)}),this._loadComponent(g),so(11,g),g}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){so(12),this.tracingSnapshot!==null?this.tracingSnapshot.run(WM.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw new te(101,!1);let A=pi(null);try{this._runningTick=!0,this.synchronize()}catch(i){this.internalErrorHandler(i)}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,pi(A),this.afterTick.next(),so(13)}};synchronize(){this._rendererFactory===null&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(Ms,null,{optional:!0}));let A=0;for(;this.dirtyFlags!==0&&A++ap(A))){this.dirtyFlags|=2;return}else this.dirtyFlags&=-8}attachView(A){let i=A;this._views.push(i),i.attachToAppRef(this)}detachView(A){let i=A;Dm(this._views,i),i.detachFromAppRef()}_loadComponent(A){this.attachView(A.hostView),this.tick(),this.components.push(A),this._injector.get(vb,[]).forEach(n=>n(A))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(A=>A()),this._views.slice().forEach(A=>A.destroy())}finally{this._destroyed=!0,this._views=[],this._destroyListeners=[]}}onDestroy(A){return this._destroyListeners.push(A),()=>Dm(this._destroyListeners,A)}destroy(){if(this._destroyed)throw new te(406,!1);let A=this._injector;A.destroy&&!A.destroyed&&A.destroy()}get viewCount(){return this._views.length}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Dm(t,e){let A=t.indexOf(e);A>-1&&t.splice(A,1)}function DdA(t,e,A,i){if(!A&&!ap(t))return;iH(t,e,A&&!i?0:1)}function Ke(t,e,A,i){let n=zt(),o=y2();if(Va(n,o,e)){let r=ao(),s=Pd();LIA(s,n,t,e,A,i)}return Ke}function Mb(t,e,A,i){return Va(t,y2(),A)?e+wI(A)+i:Ea}function wdA(t,e,A,i,n,o){let r=G2A(),s=FH(t,r,A,n);return UM(2),s?e+wI(A)+i+wI(n)+o:Ea}function um(t,e){return t<<17|e<<2}function NI(t){return t>>17&32767}function ydA(t){return(t&2)==2}function vdA(t,e){return t&131071|e<<17}function tM(t){return t|2}function Jd(t){return(t&131068)>>2}function r9(t,e){return t&-131069|e<<2}function MdA(t){return(t&1)===1}function iM(t){return t|1}function bdA(t,e,A,i,n,o){let r=o?e.classBindings:e.styleBindings,s=NI(r),a=Jd(r);t[i]=A;let c=!1,g;if(Array.isArray(A)){let I=A;g=I[1],(g===null||yu(I,g)>0)&&(c=!0)}else g=A;if(n)if(a!==0){let C=NI(t[s+1]);t[i+1]=um(C,s),C!==0&&(t[C+1]=r9(t[C+1],i)),t[s+1]=vdA(t[s+1],i)}else t[i+1]=um(s,0),s!==0&&(t[s+1]=r9(t[s+1],i)),s=i;else t[i+1]=um(a,0),s===0?s=i:t[a+1]=r9(t[a+1],i),a=i;c&&(t[i+1]=tM(t[i+1])),ZJ(t,g,i,!0),ZJ(t,g,i,!1),kdA(e,g,t,i,o),r=um(s,a),o?e.classBindings=r:e.styleBindings=r}function kdA(t,e,A,i,n){let o=n?t.residualClasses:t.residualStyles;o!=null&&typeof e=="string"&&yu(o,e)>=0&&(A[i+1]=iM(A[i+1]))}function ZJ(t,e,A,i){let n=t[A+1],o=e===null,r=i?NI(n):Jd(n),s=!1;for(;r!==0&&(s===!1||o);){let a=t[r],c=t[r+1];SdA(a,e)&&(s=!0,t[r+1]=i?iM(c):tM(c)),r=i?NI(c):Jd(c)}s&&(t[A+1]=i?tM(n):iM(n))}function SdA(t,e){return t===null||e==null||(Array.isArray(t)?t[1]:t)===e?!0:Array.isArray(t)&&typeof e=="string"?yu(t,e)>=0:!1}var gg={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function RdA(t){return t.substring(gg.key,gg.keyEnd)}function LdA(t){return xdA(t),UH(t,JH(t,0,gg.textEnd))}function UH(t,e){let A=gg.textEnd;return A===e?-1:(e=gg.keyEnd=NdA(t,gg.key=e,A),JH(t,e,A))}function xdA(t){gg.key=0,gg.keyEnd=0,gg.value=0,gg.valueEnd=0,gg.textEnd=t.length}function JH(t,e,A){for(;e32;)e++;return e}function yA(t,e,A){let i=zt(),n=y2();if(Va(i,n,e)){let o=ao(),r=Pd();Ru(o,r,i,t,e,i[Jo],A,!1)}return yA}function nM(t,e,A,i,n){sb(e,t,A,n?"class":"style",i)}function mo(t,e,A){return TH(t,e,A,!1),mo}function he(t,e){return TH(t,e,null,!0),he}function Ro(t){HH(JdA,YH,t,!0)}function YH(t,e){for(let A=LdA(e);A>=0;A=UH(e,A))tp(t,RdA(e),!0)}function TH(t,e,A,i){let n=zt(),o=ao(),r=UM(2);if(o.firstUpdatePass&&zH(o,t,r,i),e!==Ea&&Va(n,r,e)){let s=o.data[Bl()];PH(o,s,n,n[Jo],t,n[r+1]=TdA(e,A),i,r)}}function HH(t,e,A,i){let n=ao(),o=UM(2);n.firstUpdatePass&&zH(n,null,o,i);let r=zt();if(A!==Ea&&Va(r,o,A)){let s=n.data[Bl()];if(jH(s,i)&&!OH(n,o)){let a=i?s.classesWithoutHost:s.stylesWithoutHost;a!==null&&(A=l9(a,A||"")),nM(n,s,r,A,i)}else YdA(n,s,r,r[Jo],r[o+1],r[o+1]=UdA(t,e,A),i,o)}}function OH(t,e){return e>=t.expandoStartIndex}function zH(t,e,A,i){let n=t.data;if(n[A+1]===null){let o=n[Bl()],r=OH(t,A);jH(o,i)&&e===null&&!r&&(e=!1),e=FdA(n,o,e,i),bdA(n,o,e,A,r,i)}}function FdA(t,e,A,i){let n=JM(t),o=i?e.residualClasses:e.residualStyles;if(n===null)(i?e.classBindings:e.styleBindings)===0&&(A=s9(null,t,e,A,i),A=Du(A,e.attrs,i),o=null);else{let r=e.directiveStylingLast;if(r===-1||t[r]!==n)if(A=s9(n,t,e,A,i),o===null){let a=_dA(t,e,i);a!==void 0&&Array.isArray(a)&&(a=s9(null,t,e,a[1],i),a=Du(a,e.attrs,i),GdA(t,e,i,a))}else o=KdA(t,e,i)}return o!==void 0&&(i?e.residualClasses=o:e.residualStyles=o),A}function _dA(t,e,A){let i=A?e.classBindings:e.styleBindings;if(Jd(i)!==0)return t[NI(i)]}function GdA(t,e,A,i){let n=A?e.classBindings:e.styleBindings;t[NI(n)]=i}function KdA(t,e,A){let i,n=e.directiveEnd;for(let o=1+e.directiveStylingLast;o0;){let a=t[n],c=Array.isArray(a),g=c?a[1]:a,I=g===null,C=A[n+1];C===Ea&&(C=I?zs:void 0);let d=I?Wv(C,i):g===i?C:void 0;if(c&&!jm(d)&&(d=Wv(a,i)),jm(d)&&(s=d,r))return s;let B=t[n+1];n=r?NI(B):Jd(B)}if(e!==null){let a=o?e.residualClasses:e.residualStyles;a!=null&&(s=Wv(a,i))}return s}function jm(t){return t!==void 0}function TdA(t,e){return t==null||t===""||(typeof e=="string"?t=t+e:typeof t=="object"&&(t=Ia(dg(t)))),t}function jH(t,e){return(t.flags&(e?8:16))!==0}function qH(t,e,A){let i=zt(),n=Mb(i,t,e,A);HH(tp,YH,n,!0)}var oM=class{destroy(e){}updateValue(e,A){}swap(e,A){let i=Math.min(e,A),n=Math.max(e,A),o=this.detach(n);if(n-i>1){let r=this.detach(i);this.attach(i,o),this.attach(n,r)}else this.attach(i,o)}move(e,A){this.attach(A,this.detach(e))}};function a9(t,e,A,i,n){return t===A&&Object.is(e,i)?1:Object.is(n(t,e),n(A,i))?-1:0}function HdA(t,e,A){let i,n,o=0,r=t.length-1,s=void 0;if(Array.isArray(e)){let a=e.length-1;for(;o<=r&&o<=a;){let c=t.at(o),g=e[o],I=a9(o,c,o,g,A);if(I!==0){I<0&&t.updateValue(o,g),o++;continue}let C=t.at(r),d=e[a],B=a9(r,C,a,d,A);if(B!==0){B<0&&t.updateValue(r,d),r--,a--;continue}let E=A(o,c),u=A(r,C),h=A(o,g);if(Object.is(h,u)){let w=A(a,d);Object.is(w,E)?(t.swap(o,r),t.updateValue(r,d),a--,r--):t.move(r,o),t.updateValue(o,g),o++;continue}if(i??=new qm,n??=$J(t,o,r,A),rM(t,i,o,h))t.updateValue(o,g),o++,r++;else if(n.has(h))i.set(E,t.detach(o)),r--;else{let w=t.create(o,e[o]);t.attach(o,w),o++,r++}}for(;o<=a;)XJ(t,i,A,o,e[o]),o++}else if(e!=null){let a=e[Symbol.iterator](),c=a.next();for(;!c.done&&o<=r;){let g=t.at(o),I=c.value,C=a9(o,g,o,I,A);if(C!==0)C<0&&t.updateValue(o,I),o++,c=a.next();else{i??=new qm,n??=$J(t,o,r,A);let d=A(o,I);if(rM(t,i,o,d))t.updateValue(o,I),o++,r++,c=a.next();else if(!n.has(d))t.attach(o,t.create(o,I)),o++,r++,c=a.next();else{let B=A(o,g);i.set(B,t.detach(o)),r--}}}for(;!c.done;)XJ(t,i,A,t.length,c.value),c=a.next()}for(;o<=r;)t.destroy(t.detach(r--));i?.forEach(a=>{t.destroy(a)})}function rM(t,e,A,i){return e!==void 0&&e.has(i)?(t.attach(A,e.get(i)),e.delete(i),!0):!1}function XJ(t,e,A,i,n){if(rM(t,e,i,A(i,n)))t.updateValue(i,n);else{let o=t.create(i,n);t.attach(i,o)}}function $J(t,e,A,i){let n=new Set;for(let o=e;o<=A;o++)n.add(i(o,t.at(o)));return n}var qm=class{kvMap=new Map;_vMap=void 0;has(e){return this.kvMap.has(e)}delete(e){if(!this.has(e))return!1;let A=this.kvMap.get(e);return this._vMap!==void 0&&this._vMap.has(A)?(this.kvMap.set(e,this._vMap.get(A)),this._vMap.delete(A)):this.kvMap.delete(e),!0}get(e){return this.kvMap.get(e)}set(e,A){if(this.kvMap.has(e)){let i=this.kvMap.get(e);this._vMap===void 0&&(this._vMap=new Map);let n=this._vMap;for(;n.has(i);)i=n.get(i);n.set(i,A)}else this.kvMap.set(e,A)}forEach(e){for(let[A,i]of this.kvMap)if(e(i,A),this._vMap!==void 0){let n=this._vMap;for(;n.has(i);)i=n.get(i),e(i,A)}}};function _A(t,e){Cg("NgControlFlow");let A=zt(),i=y2(),n=A[i]!==Ea?A[i]:-1,o=n!==-1?Vm(A,Qr+n):void 0,r=0;if(Va(A,i,t)){let s=pi(null);try{if(o!==void 0&&cH(o,r),t!==-1){let a=Qr+t,c=Vm(A,a),g=gM(A[hi],a),I=Ud(c,g.tView.ssrId),C=Lu(A,g,e,{dehydratedView:I});xu(c,C,r,Kd(g,I))}}finally{pi(s)}}else if(o!==void 0){let s=aH(o,r);s!==void 0&&(s[Kr]=e)}}var sM=class{lContainer;$implicit;$index;constructor(e,A,i){this.lContainer=e,this.$implicit=A,this.$index=i}get $count(){return this.lContainer.length-ys}};function AB(t){return t}function zn(t,e){return e}var aM=class{hasEmptyBlock;trackByFn;liveCollection;constructor(e,A,i){this.hasEmptyBlock=e,this.trackByFn=A,this.liveCollection=i}};function dn(t,e,A,i,n,o,r,s,a,c,g,I,C){Cg("NgControlFlow");let d=zt(),B=ao(),E=a!==void 0,u=zt(),h=s?r.bind(u[ja][Kr]):r,w=new aM(E,h);u[Qr+t]=w,Pm(d,B,t+1,e,A,i,n,D2(B.consts,o)),E&&Pm(d,B,t+2,a,c,g,I,D2(B.consts,C))}var cM=class extends oM{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(e,A,i){super(),this.lContainer=e,this.hostLView=A,this.templateTNode=i}get length(){return this.lContainer.length-ys}at(e){return this.getLView(e)[Kr].$implicit}attach(e,A){let i=A[Nd];this.needsIndexUpdate||=e!==this.length,xu(this.lContainer,A,e,Kd(this.templateTNode,i))}detach(e){return this.needsIndexUpdate||=e!==this.length-1,OdA(this.lContainer,e)}create(e,A){let i=Ud(this.lContainer,this.templateTNode.tView.ssrId),n=Lu(this.hostLView,this.templateTNode,new sM(this.lContainer,A,e),{dehydratedView:i});return this.operationsCounter?.recordCreate(),n}destroy(e){Qp(e[hi],e),this.operationsCounter?.recordDestroy()}updateValue(e,A){this.getLView(e)[Kr].$implicit=A}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let e=0;e(lp(!0),JT(i,n,z2A()));function jdA(t,e,A,i,n){let o=e.consts,r=D2(o,i),s=Xd(e,t,8,"ng-container",r);r!==null&&P9(s,r,!0);let a=D2(o,n);return _M()&&db(e,A,s,a,rb),s.mergedAttrs=Gd(s.mergedAttrs,s.attrs),e.queries!==null&&e.queries.elementStart(e,s),s}function S2(t,e,A){let i=zt(),n=ao(),o=t+Qr,r=n.firstCreatePass?jdA(o,n,i,e,A):n.data[o];w2(r,!0);let s=qdA(n,i,r,t);return i[o]=s,gp()&&up(n,i,s,r),qd(s,i),rp(r)&&(Ep(n,i,r),$M(n,r,i)),A!=null&&ob(i,r),S2}function R2(){let t=gs(),e=ao();return GM()?KM():(t=t.parent,w2(t,!1)),e.firstCreatePass&&(OM(e,t),SM(t)&&e.queries.elementEnd(t)),R2}function rr(t,e,A){return S2(t,e,A),R2(),rr}var qdA=(t,e,A,i)=>(lp(!0),QIA(e[Jo],""));function me(){return zt()}function Qa(t,e,A){let i=zt(),n=y2();if(Va(i,n,e)){let o=ao(),r=Pd();Ru(o,r,i,t,e,i[Jo],A,!0)}return Qa}function bb(t,e,A){let i=zt(),n=y2();if(Va(i,n,e)){let o=ao(),r=Pd(),s=JM(o.data),a=jT(s,r,i);Ru(o,r,i,t,e,a,A,!0)}return bb}var Zm="en-US";var VdA=Zm;function ZdA(t){typeof t=="string"&&(VdA=t.toLowerCase().replace(/_/g,"-"))}function AY(t,e,A){return function i(n){if(n===Function)return A;let o=Hd(t)?cl(t.index,e):e;Cb(o,5);let r=e[Kr],s=eY(e,r,A,n),a=i.__ngNextListenerFn__;for(;a;)s=eY(e,r,a,n)&&s,a=a.__ngNextListenerFn__;return s}}function eY(t,e,A,i){let n=pi(null);try{return so(6,e,A),A(i)!==!1}catch(o){return WdA(t,o),!1}finally{so(7,e,A),pi(n)}}function WdA(t,e){let A=t[Fd],i=A?A.get(Ps,null):null;i&&i.handleError(e)}function tY(t,e,A,i,n,o){let r=e[A],s=e[hi],c=s.data[A].outputs[i],g=r[c],I=s.firstCreatePass?FM(s):null,C=NM(e),d=g.subscribe(o),B=C.length;C.push(o,d),I&&I.push(n,t.index,B,-(B+1))}function mA(t,e,A,i){let n=zt(),o=ao(),r=gs();return Sb(o,n,n[Jo],r,t,e,i),mA}function kb(t,e){let A=gs(),i=zt(),n=ao(),o=JM(n.data),r=jT(o,A,i);return Sb(n,i,r,A,t,e),kb}function XdA(t,e,A,i){let n=t.cleanup;if(n!=null)for(let o=0;oa?s[a]:null}typeof r=="string"&&(o+=2)}return null}function Sb(t,e,A,i,n,o,r){let s=rp(i),c=t.firstCreatePass?FM(t):null,g=NM(e),I=!0;if(i.type&3||r){let C=dl(i,e),d=r?r(C):C,B=g.length,E=r?h=>r(al(h[i.index])):i.index,u=null;if(!r&&s&&(u=XdA(t,e,n,i.index)),u!==null){let h=u.__ngLastListenerFn__||u;h.__ngNextListenerFn__=o,u.__ngLastListenerFn__=o,I=!1}else{o=AY(i,e,o),L1A(e,d,n,o);let h=A.listen(d,n,o);g.push(o,h),c&&c.push(n,E,B,B+1)}}else o=AY(i,e,o);if(I){let C=i.outputs?.[n],d=i.hostDirectiveOutputs?.[n];if(d&&d.length)for(let B=0;B(lp(!0),BIA(e[Jo],i));function tt(t){return It("",t,""),tt}function It(t,e,A){let i=zt(),n=Mb(i,t,e,A);return n!==Ea&&WH(i,Bl(),n),It}function x2(t,e,A,i,n){let o=zt(),r=wdA(o,t,e,A,i,n);return r!==Ea&&WH(o,Bl(),r),x2}function WH(t,e,A){let i=NY(e,t);EIA(t[Jo],i,A)}function Za(t,e,A){IT(e)&&(e=e());let i=zt(),n=y2();if(Va(i,n,e)){let o=ao(),r=Pd();Ru(o,r,i,t,e,i[Jo],A,!1)}return Za}function Wa(t,e){let A=IT(t);return A&&t.set(e),A}function Xa(t,e){let A=zt(),i=ao(),n=gs();return Sb(i,A,A[Jo],n,t,e),Xa}var XH={};function Rb(t){let e=ao(),A=zt(),i=t+Qr,n=Xd(e,i,128,null,null);return w2(n,!1),LM(e,A,i,XH),Rb}function Lb(t){Cg("NgLet");let e=ao(),A=zt(),i=Bl();return LM(e,A,i,t),t}function xb(t){let e=JY(),A=sp(e,Qr+t);if(A===XH)throw new te(314,!1);return A}function tBA(t,e,A){let i=ao();if(i.firstCreatePass){let n=Ig(t);lM(A,i.data,i.blueprint,n,!0),lM(e,i.data,i.blueprint,n,!1)}}function lM(t,e,A,i,n){if(t=cs(t),Array.isArray(t))for(let o=0;o>20;if(xd(t)||!t.multi){let d=new RI(c,n,Ge),B=g9(a,e,n?g:g+C,I);B===-1?(D9(Gm(s,r),o,a),c9(o,t,e.length),e.push(a),s.directiveStart++,s.directiveEnd++,n&&(s.providerIndexes+=1048576),A.push(d),r.push(d)):(A[B]=d,r[B]=d)}else{let d=g9(a,e,g+C,I),B=g9(a,e,g,g+C),E=d>=0&&A[d],u=B>=0&&A[B];if(n&&!u||!n&&!E){D9(Gm(s,r),o,a);let h=oBA(n?nBA:iBA,A.length,n,i,c);!n&&u&&(A[B].providerFactory=h),c9(o,t,e.length,0),e.push(a),s.directiveStart++,s.directiveEnd++,n&&(s.providerIndexes+=1048576),A.push(h),r.push(h)}else{let h=$H(A[n?B:d],c,!n&&i);c9(o,t,d>-1?d:B,h)}!n&&i&&u&&A[B].componentProviders++}}}function c9(t,e,A,i){let n=xd(e),o=d2A(e);if(n||o){let a=(o?cs(e.useClass):e).prototype.ngOnDestroy;if(a){let c=t.destroyHooks||(t.destroyHooks=[]);if(!n&&e.multi){let g=c.indexOf(A);g===-1?c.push(A,[i,a]):c[g+1].push(i,a)}else c.push(A,a)}}}function $H(t,e,A){return A&&t.componentProviders++,t.multi.push(e)-1}function g9(t,e,A,i){for(let n=A;n{A.providersResolver=(i,n)=>tBA(i,n?n(t):t,e)}}function AO(t,e,A){let i=Mu()+t,n=zt();return n[i]===Ea?fb(n,i,A?e.call(A):e()):BdA(n,i)}function vc(t,e,A,i){return tO(zt(),Mu(),t,e,A,i)}function Bg(t,e,A,i,n){return iO(zt(),Mu(),t,e,A,i,n)}function eO(t,e){let A=t[e];return A===Ea?void 0:A}function tO(t,e,A,i,n,o){let r=e+A;return Va(t,r,n)?fb(t,r+1,o?i.call(o,n):i(n)):eO(t,r+1)}function iO(t,e,A,i,n,o,r){let s=e+A;return FH(t,s,n,o)?fb(t,s+2,r?i.call(r,n,o):i(n,o)):eO(t,s+2)}function eo(t,e){let A=ao(),i,n=t+Qr;A.firstCreatePass?(i=rBA(e,A.pipeRegistry),A.data[n]=i,i.onDestroy&&(A.destroyHooks??=[]).push(n,i.onDestroy)):i=A.data[n];let o=i.factory||(i.factory=yI(i.type,!0)),r,s=la(Ge);try{let a=_m(!1),c=o();return _m(a),LM(A,zt(),n,c),c}finally{la(s)}}function rBA(t,e){if(e)for(let A=e.length-1;A>=0;A--){let i=e[A];if(t===i.name)return i}}function Yo(t,e,A){let i=t+Qr,n=zt(),o=sp(n,i);return nO(n,i)?tO(n,Mu(),e,o.transform,A,o):o.transform(A)}function _u(t,e,A,i){let n=t+Qr,o=zt(),r=sp(o,n);return nO(o,n)?iO(o,Mu(),e,r.transform,A,i,r):r.transform(A,i)}function nO(t,e){return t[hi].data[e].pure}function Gu(t,e){return fp(t,e)}var FI=class{full;major;minor;patch;constructor(e){this.full=e;let A=e.split(".");this.major=A[0],this.minor=A[1],this.patch=A.slice(2).join(".")}},Nb=new FI("19.2.15"),CM=class{ngModuleFactory;componentFactories;constructor(e,A){this.ngModuleFactory=e,this.componentFactories=A}},oO=(()=>{class t{compileModuleSync(A){return new $9(A)}compileModuleAsync(A){return Promise.resolve(this.compileModuleSync(A))}compileModuleAndAllComponentsSync(A){let i=this.compileModuleSync(A),n=pY(A),o=GT(n.declarations).reduce((r,s)=>{let a=p2(s);return a&&r.push(new xI(a)),r},[]);return new CM(i,o)}compileModuleAndAllComponentsAsync(A){return Promise.resolve(this.compileModuleAndAllComponentsSync(A))}clearCache(){}clearCacheFor(A){}getModuleId(A){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var sBA=(()=>{class t{zone=f(ye);changeDetectionScheduler=f(LI);applicationRef=f(Ca);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function aBA({ngZoneFactory:t,ignoreChangesOutsideZone:e,scheduleInRootZone:A}){return t??=()=>new ye(Fe(sA({},cBA()),{scheduleInRootZone:A})),[{provide:ye,useFactory:t},{provide:Ld,multi:!0,useFactory:()=>{let i=f(sBA,{optional:!0});return()=>i.initialize()}},{provide:Ld,multi:!0,useFactory:()=>{let i=f(gBA);return()=>{i.initialize()}}},e===!0?{provide:sT,useValue:!0}:[],{provide:aT,useValue:A??rT}]}function cBA(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}var gBA=(()=>{class t{subscription=new Kt;initialized=!1;zone=f(ye);pendingTasks=f(m0);initialize(){if(this.initialized)return;this.initialized=!0;let A=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(A=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{ye.assertNotInAngularZone(),queueMicrotask(()=>{A!==null&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(A),A=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{ye.assertInAngularZone(),A??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var lBA=(()=>{class t{appRef=f(Ca);taskService=f(m0);ngZone=f(ye);zonelessEnabled=f(jM);tracing=f(Zd,{optional:!0});disableScheduling=f(sT,{optional:!0})??!1;zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new Kt;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(Um):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(f(aT,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof M9||!this.zoneIsDefined)}notify(A){if(!this.zonelessEnabled&&A===5)return;let i=!1;switch(A){case 0:{this.appRef.dirtyFlags|=2;break}case 3:case 2:case 4:case 5:case 1:{this.appRef.dirtyFlags|=4;break}case 6:{this.appRef.dirtyFlags|=2,i=!0;break}case 12:{this.appRef.dirtyFlags|=16,i=!0;break}case 13:{this.appRef.dirtyFlags|=2,i=!0;break}case 11:{i=!0;break}case 9:case 8:case 7:case 10:default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick(i))return;let n=this.useMicrotaskScheduler?MJ:cT;this.pendingRenderTaskId=this.taskService.add(),this.scheduleInRootZone?this.cancelScheduledCallback=Zone.root.run(()=>n(()=>this.tick())):this.cancelScheduledCallback=this.ngZone.runOutsideAngular(()=>n(()=>this.tick()))}shouldScheduleTick(A){return!(this.disableScheduling&&!A||this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(Um+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(this.appRef.dirtyFlags===0){this.cleanup();return}!this.zonelessEnabled&&this.appRef.dirtyFlags&7&&(this.appRef.dirtyFlags|=1);let A=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(i){throw this.taskService.remove(A),i}finally{this.cleanup()}this.useMicrotaskScheduler=!0,MJ(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(A)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){let A=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(A)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function IBA(){return typeof $localize<"u"&&$localize.locale||Zm}var wp=new eA("",{providedIn:"root",factory:()=>f(wp,bi.Optional|bi.SkipSelf)||IBA()});var dM=new eA(""),CBA=new eA("");function Cu(t){return!t.moduleRef}function dBA(t){let e=Cu(t)?t.r3Injector:t.moduleRef.injector,A=e.get(ye);return A.run(()=>{Cu(t)?t.r3Injector.resolveInjectorInitializers():t.moduleRef.resolveInjectorInitializers();let i=e.get(Ps,null),n;if(A.runOutsideAngular(()=>{n=A.onError.subscribe({next:o=>{i.handleError(o)}})}),Cu(t)){let o=()=>e.destroy(),r=t.platformInjector.get(dM);r.add(o),e.onDestroy(()=>{n.unsubscribe(),r.delete(o)})}else{let o=()=>t.moduleRef.destroy(),r=t.platformInjector.get(dM);r.add(o),t.moduleRef.onDestroy(()=>{Dm(t.allPlatformModules,t.moduleRef),n.unsubscribe(),r.delete(o)})}return EBA(i,A,()=>{let o=e.get(KH);return o.runInitializers(),o.donePromise.then(()=>{let r=e.get(wp,Zm);if(ZdA(r||Zm),!e.get(CBA,!0))return Cu(t)?e.get(Ca):(t.allPlatformModules.push(t.moduleRef),t.moduleRef);if(Cu(t)){let a=e.get(Ca);return t.rootComponent!==void 0&&a.bootstrap(t.rootComponent),a}else return BBA(t.moduleRef,t.allPlatformModules),t.moduleRef})})})}function BBA(t,e){let A=t.injector.get(Ca);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(i=>A.bootstrap(i));else if(t.instance.ngDoBootstrap)t.instance.ngDoBootstrap(A);else throw new te(-403,!1);e.push(t)}function EBA(t,e,A){try{let i=A();return k2(i)?i.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):i}catch(i){throw e.runOutsideAngular(()=>t.handleError(i)),i}}var wm=null;function QBA(t=[],e){return Zt.create({name:e,providers:[{provide:ip,useValue:"platform"},{provide:dM,useValue:new Set([()=>wm=null])},...t]})}function uBA(t=[]){if(wm)return wm;let e=QBA(t);return wm=e,fdA(),hBA(e),e}function hBA(t){let e=t.get(ZM,null);da(t,()=>{e?.forEach(A=>A())})}var Et=(()=>{class t{static __NG_ELEMENT_ID__=fBA}return t})();function fBA(t){return mBA(gs(),zt(),(t&16)===16)}function mBA(t,e,A){if(Hd(t)&&!A){let i=cl(t.index,e);return new pu(i,i)}else if(t.type&175){let i=e[ja];return new pu(i,e)}return null}var BM=class{constructor(){}supports(e){return NH(e)}create(e){return new EM(e)}},pBA=(t,e)=>e,EM=class{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(e){this._trackByFn=e||pBA}forEachItem(e){let A;for(A=this._itHead;A!==null;A=A._next)e(A)}forEachOperation(e){let A=this._itHead,i=this._removalsHead,n=0,o=null;for(;A||i;){let r=!i||A&&A.currentIndex{r=this._trackByFn(n,s),A===null||!Object.is(A.trackById,r)?(A=this._mismatch(A,s,r,n),i=!0):(i&&(A=this._verifyReinsertion(A,s,r,n)),Object.is(A.item,s)||this._addIdentityChange(A,s)),A=A._next,n++}),this.length=n;return this._truncate(A),this.collection=e,this.isDirty}get isDirty(){return this._additionsHead!==null||this._movesHead!==null||this._removalsHead!==null||this._identityChangesHead!==null}_reset(){if(this.isDirty){let e;for(e=this._previousItHead=this._itHead;e!==null;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;e!==null;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;e!==null;e=e._nextMoved)e.previousIndex=e.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,A,i,n){let o;return e===null?o=this._itTail:(o=e._prev,this._remove(e)),e=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null),e!==null?(Object.is(e.item,A)||this._addIdentityChange(e,A),this._reinsertAfter(e,o,n)):(e=this._linkedRecords===null?null:this._linkedRecords.get(i,n),e!==null?(Object.is(e.item,A)||this._addIdentityChange(e,A),this._moveAfter(e,o,n)):e=this._addAfter(new QM(A,i),o,n)),e}_verifyReinsertion(e,A,i,n){let o=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null);return o!==null?e=this._reinsertAfter(o,e._prev,n):e.currentIndex!=n&&(e.currentIndex=n,this._addToMoves(e,n)),e}_truncate(e){for(;e!==null;){let A=e._next;this._addToRemovals(this._unlink(e)),e=A}this._unlinkedRecords!==null&&this._unlinkedRecords.clear(),this._additionsTail!==null&&(this._additionsTail._nextAdded=null),this._movesTail!==null&&(this._movesTail._nextMoved=null),this._itTail!==null&&(this._itTail._next=null),this._removalsTail!==null&&(this._removalsTail._nextRemoved=null),this._identityChangesTail!==null&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,A,i){this._unlinkedRecords!==null&&this._unlinkedRecords.remove(e);let n=e._prevRemoved,o=e._nextRemoved;return n===null?this._removalsHead=o:n._nextRemoved=o,o===null?this._removalsTail=n:o._prevRemoved=n,this._insertAfter(e,A,i),this._addToMoves(e,i),e}_moveAfter(e,A,i){return this._unlink(e),this._insertAfter(e,A,i),this._addToMoves(e,i),e}_addAfter(e,A,i){return this._insertAfter(e,A,i),this._additionsTail===null?this._additionsTail=this._additionsHead=e:this._additionsTail=this._additionsTail._nextAdded=e,e}_insertAfter(e,A,i){let n=A===null?this._itHead:A._next;return e._next=n,e._prev=A,n===null?this._itTail=e:n._prev=e,A===null?this._itHead=e:A._next=e,this._linkedRecords===null&&(this._linkedRecords=new Wm),this._linkedRecords.put(e),e.currentIndex=i,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){this._linkedRecords!==null&&this._linkedRecords.remove(e);let A=e._prev,i=e._next;return A===null?this._itHead=i:A._next=i,i===null?this._itTail=A:i._prev=A,e}_addToMoves(e,A){return e.previousIndex===A||(this._movesTail===null?this._movesTail=this._movesHead=e:this._movesTail=this._movesTail._nextMoved=e),e}_addToRemovals(e){return this._unlinkedRecords===null&&(this._unlinkedRecords=new Wm),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,this._removalsTail===null?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,A){return e.item=A,this._identityChangesTail===null?this._identityChangesTail=this._identityChangesHead=e:this._identityChangesTail=this._identityChangesTail._nextIdentityChange=e,e}},QM=class{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(e,A){this.item=e,this.trackById=A}},uM=class{_head=null;_tail=null;add(e){this._head===null?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,A){let i;for(i=this._head;i!==null;i=i._nextDup)if((A===null||A<=i.currentIndex)&&Object.is(i.trackById,e))return i;return null}remove(e){let A=e._prevDup,i=e._nextDup;return A===null?this._head=i:A._nextDup=i,i===null?this._tail=A:i._prevDup=A,this._head===null}},Wm=class{map=new Map;put(e){let A=e.trackById,i=this.map.get(A);i||(i=new uM,this.map.set(A,i)),i.add(e)}get(e,A){let i=e,n=this.map.get(i);return n?n.get(e,A):null}remove(e){let A=e.trackById;return this.map.get(A).remove(e)&&this.map.delete(A),e}get isEmpty(){return this.map.size===0}clear(){this.map.clear()}};function iY(t,e,A){let i=t.previousIndex;if(i===null)return i;let n=0;return A&&i{if(A&&A.key===n)this._maybeAddToChanges(A,i),this._appendAfter=A,A=A._next;else{let o=this._getOrCreateRecordForKey(n,i);A=this._insertBeforeOrAppend(A,o)}}),A){A._prev&&(A._prev._next=null),this._removalsHead=A;for(let i=A;i!==null;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,A){if(e){let i=e._prev;return A._next=e,A._prev=i,e._prev=A,i&&(i._next=A),e===this._mapHead&&(this._mapHead=A),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=A,A._prev=this._appendAfter):this._mapHead=A,this._appendAfter=A,null}_getOrCreateRecordForKey(e,A){if(this._records.has(e)){let n=this._records.get(e);this._maybeAddToChanges(n,A);let o=n._prev,r=n._next;return o&&(o._next=r),r&&(r._prev=o),n._next=null,n._prev=null,n}let i=new mM(e);return this._records.set(e,i),i.currentValue=A,this._addToAdditions(i),i}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;e!==null;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;e!==null;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;e!=null;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,A){Object.is(A,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=A,this._addToChanges(e))}_addToAdditions(e){this._additionsHead===null?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){this._changesHead===null?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,A){e instanceof Map?e.forEach(A):Object.keys(e).forEach(i=>A(e[i],i))}},mM=class{key;previousValue=null;currentValue=null;_nextPrevious=null;_next=null;_prev=null;_nextAdded=null;_nextRemoved=null;_nextChanged=null;constructor(e){this.key=e}};function nY(){return new Ql([new BM])}var Ql=(()=>{class t{factories;static \u0275prov=bA({token:t,providedIn:"root",factory:nY});constructor(A){this.factories=A}static create(A,i){if(i!=null){let n=i.factories.slice();A=A.concat(n)}return new t(A)}static extend(A){return{provide:t,useFactory:i=>t.create(A,i||nY()),deps:[[t,new ep,new Yd]]}}find(A){let i=this.factories.find(n=>n.supports(A));if(i!=null)return i;throw new te(901,!1)}}return t})();function oY(){return new yp([new hM])}var yp=(()=>{class t{static \u0275prov=bA({token:t,providedIn:"root",factory:oY});factories;constructor(A){this.factories=A}static create(A,i){if(i){let n=i.factories.slice();A=A.concat(n)}return new t(A)}static extend(A){return{provide:t,useFactory:i=>t.create(A,i||oY()),deps:[[t,new ep,new Yd]]}}find(A){let i=this.factories.find(n=>n.supports(A));if(i)return i;throw new te(901,!1)}}return t})();var rO=(()=>{class t{constructor(A){}static \u0275fac=function(i){return new(i||t)(be(Ca))};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();function sO(t){let{rootComponent:e,appProviders:A,platformProviders:i,platformRef:n}=t;so(8);try{let o=n?.injector??uBA(i),r=[aBA({}),{provide:LI,useExisting:lBA},...A||[]],s=new zm({providers:r,parent:o,debugName:"",runEnvironmentInitializers:!1});return dBA({r3Injector:s.injector,platformInjector:o,rootComponent:e})}catch(o){return Promise.reject(o)}finally{so(9)}}function ge(t){return typeof t=="boolean"?t:t!=null&&t!=="false"}function en(t,e=NaN){return!isNaN(parseFloat(t))&&!isNaN(Number(t))?Number(t):e}function ua(t){return Fv(t)}function Mc(t,e){return Yf(t,e?.equal)}var pM=class{[aa];constructor(e){this[aa]=e}destroy(){this[aa].destroy()}};function Ku(t,e){!e?.injector&&bM(Ku);let A=e?.injector??f(Zt),i=e?.manualCleanup!==!0?A.get(f0):null,n,o=A.get(XM,null,{optional:!0}),r=A.get(LI);return o!==null&&!e?.forceRoot?(n=yBA(o.view,r,t),i instanceof Km&&i._lView===o.view&&(i=null)):n=vBA(t,A.get(_H),r),n.injector=A,i!==null&&(n.onDestroyFn=i.onDestroy(()=>n.destroy())),new pM(n)}var aO=Fe(sA({},Cd),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,hasRun:!1,cleanupFns:void 0,zone:null,kind:"effect",onDestroyFn:fu,run(){if(this.dirty=!1,this.hasRun&&!Kf(this))return;this.hasRun=!0;let t=i=>(this.cleanupFns??=[]).push(i),e=tu(this),A=xm(!1);try{this.maybeCleanup(),this.fn(t)}finally{xm(A),Gf(this,e)}},maybeCleanup(){if(this.cleanupFns?.length)try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[]}}}),DBA=Fe(sA({},aO),{consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){iu(this),this.onDestroyFn(),this.maybeCleanup(),this.scheduler.remove(this)}}),wBA=Fe(sA({},aO),{consumerMarkedDirty(){this.view[ii]|=8192,zd(this.view),this.notifier.notify(13)},destroy(){iu(this),this.onDestroyFn(),this.maybeCleanup(),this.view[MI]?.delete(this)}});function yBA(t,e,A){let i=Object.create(wBA);return i.view=t,i.zone=typeof Zone<"u"?Zone.current:null,i.notifier=e,i.fn=A,t[MI]??=new Set,t[MI].add(i),i.consumerMarkedDirty(i),i}function vBA(t,e,A){let i=Object.create(DBA);return i.fn=t,i.scheduler=e,i.notifier=A,i.zone=typeof Zone<"u"?Zone.current:null,i.scheduler.schedule(i),i.notifier.notify(12),i}function vp(t,e){let A=p2(t),i=e.elementInjector||np();return new xI(A).create(i,e.projectableNodes,e.hostElement,e.environmentInjector)}function cO(t){let e=p2(t);if(!e)return null;let A=new xI(e);return{get selector(){return A.selector},get type(){return A.componentType},get inputs(){return A.inputs},get outputs(){return A.outputs},get ngContentSelectors(){return A.ngContentSelectors},get isStandalone(){return e.standalone},get isSignal(){return e.signals}}}var at=new eA("");var IO=null;function $a(){return IO}function Fb(t){IO??=t}var Uu=class{},Ju=(()=>{class t{historyGo(A){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(CO),providedIn:"platform"})}return t})(),_b=new eA(""),CO=(()=>{class t extends Ju{_location;_history;_doc=f(at);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return $a().getBaseHref(this._doc)}onPopState(A){let i=$a().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",A,!1),()=>i.removeEventListener("popstate",A)}onHashChange(A){let i=$a().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",A,!1),()=>i.removeEventListener("hashchange",A)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(A){this._location.pathname=A}pushState(A,i,n){this._history.pushState(A,i,n)}replaceState(A,i,n){this._history.replaceState(A,i,n)}forward(){this._history.forward()}back(){this._history.back()}historyGo(A=0){this._history.go(A)}getState(){return this._history.state}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function Mp(t,e){return t?e?t.endsWith("/")?e.startsWith("/")?t+e.slice(1):t+e:e.startsWith("/")?t+e:`${t}/${e}`:t:e}function gO(t){let e=t.search(/#|\?|$/);return t[e-1]==="/"?t.slice(0,e-1)+t.slice(e):t}function Eg(t){return t&&t[0]!=="?"?`?${t}`:t}var D0=(()=>{class t{historyGo(A){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(kp),providedIn:"root"})}return t})(),bp=new eA(""),kp=(()=>{class t extends D0{_platformLocation;_baseHref;_removeListenerFns=[];constructor(A,i){super(),this._platformLocation=A,this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??f(at).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(A){this._removeListenerFns.push(this._platformLocation.onPopState(A),this._platformLocation.onHashChange(A))}getBaseHref(){return this._baseHref}prepareExternalUrl(A){return Mp(this._baseHref,A)}path(A=!1){let i=this._platformLocation.pathname+Eg(this._platformLocation.search),n=this._platformLocation.hash;return n&&A?`${i}${n}`:i}pushState(A,i,n,o){let r=this.prepareExternalUrl(n+Eg(o));this._platformLocation.pushState(A,i,r)}replaceState(A,i,n,o){let r=this.prepareExternalUrl(n+Eg(o));this._platformLocation.replaceState(A,i,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(A=0){this._platformLocation.historyGo?.(A)}static \u0275fac=function(i){return new(i||t)(be(Ju),be(bp,8))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),ha=(()=>{class t{_subject=new qA;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(A){this._locationStrategy=A;let i=this._locationStrategy.getBaseHref();this._basePath=kBA(gO(lO(i))),this._locationStrategy.onPopState(n=>{this._subject.next({url:this.path(!0),pop:!0,state:n.state,type:n.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(A=!1){return this.normalize(this._locationStrategy.path(A))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(A,i=""){return this.path()==this.normalize(A+Eg(i))}normalize(A){return t.stripTrailingSlash(bBA(this._basePath,lO(A)))}prepareExternalUrl(A){return A&&A[0]!=="/"&&(A="/"+A),this._locationStrategy.prepareExternalUrl(A)}go(A,i="",n=null){this._locationStrategy.pushState(n,"",A,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(A+Eg(i)),n)}replaceState(A,i="",n=null){this._locationStrategy.replaceState(n,"",A,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(A+Eg(i)),n)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(A=0){this._locationStrategy.historyGo?.(A)}onUrlChange(A){return this._urlChangeListeners.push(A),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{let i=this._urlChangeListeners.indexOf(A);this._urlChangeListeners.splice(i,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(A="",i){this._urlChangeListeners.forEach(n=>n(A,i))}subscribe(A,i,n){return this._subject.subscribe({next:A,error:i??void 0,complete:n??void 0})}static normalizeQueryParams=Eg;static joinWithSlash=Mp;static stripTrailingSlash=gO;static \u0275fac=function(i){return new(i||t)(be(D0))};static \u0275prov=bA({token:t,factory:()=>MBA(),providedIn:"root"})}return t})();function MBA(){return new ha(be(D0))}function bBA(t,e){if(!t||!e.startsWith(t))return e;let A=e.substring(t.length);return A===""||["/",";","?","#"].includes(A[0])?A:e}function lO(t){return t.replace(/\/index.html$/,"")}function kBA(t){if(new RegExp("^(https?:)?//").test(t)){let[,A]=t.split(/\/\/[^\/]+/);return A}return t}var Jb=(()=>{class t extends D0{_platformLocation;_baseHref="";_removeListenerFns=[];constructor(A,i){super(),this._platformLocation=A,i!=null&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(A){this._removeListenerFns.push(this._platformLocation.onPopState(A),this._platformLocation.onHashChange(A))}getBaseHref(){return this._baseHref}path(A=!1){let i=this._platformLocation.hash??"#";return i.length>0?i.substring(1):i}prepareExternalUrl(A){let i=Mp(this._baseHref,A);return i.length>0?"#"+i:i}pushState(A,i,n,o){let r=this.prepareExternalUrl(n+Eg(o))||this._platformLocation.pathname;this._platformLocation.pushState(A,i,r)}replaceState(A,i,n,o){let r=this.prepareExternalUrl(n+Eg(o))||this._platformLocation.pathname;this._platformLocation.replaceState(A,i,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(A=0){this._platformLocation.historyGo?.(A)}static \u0275fac=function(i){return new(i||t)(be(Ju),be(bp,8))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();var Gb=/\s+/,dO=[],Vs=(()=>{class t{_ngEl;_renderer;initialClasses=dO;rawClass;stateMap=new Map;constructor(A,i){this._ngEl=A,this._renderer=i}set klass(A){this.initialClasses=A!=null?A.trim().split(Gb):dO}set ngClass(A){this.rawClass=typeof A=="string"?A.trim().split(Gb):A}ngDoCheck(){for(let i of this.initialClasses)this._updateState(i,!0);let A=this.rawClass;if(Array.isArray(A)||A instanceof Set)for(let i of A)this._updateState(i,!0);else if(A!=null)for(let i of Object.keys(A))this._updateState(i,!!A[i]);this._applyStateDiff()}_updateState(A,i){let n=this.stateMap.get(A);n!==void 0?(n.enabled!==i&&(n.changed=!0,n.enabled=i),n.touched=!0):this.stateMap.set(A,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(let A of this.stateMap){let i=A[0],n=A[1];n.changed?(this._toggleClass(i,n.enabled),n.changed=!1):n.touched||(n.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),n.touched=!1}}_toggleClass(A,i){A=A.trim(),A.length>0&&A.split(Gb).forEach(n=>{i?this._renderer.addClass(this._ngEl.nativeElement,n):this._renderer.removeClass(this._ngEl.nativeElement,n)})}static \u0275fac=function(i){return new(i||t)(Ge(se),Ge(qi))};static \u0275dir=WA({type:t,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return t})(),Yu=(()=>{class t{_viewContainerRef;ngComponentOutlet=null;ngComponentOutletInputs;ngComponentOutletInjector;ngComponentOutletContent;ngComponentOutletNgModule;ngComponentOutletNgModuleFactory;_componentRef;_moduleRef;_inputsUsed=new Map;get componentInstance(){return this._componentRef?.instance??null}constructor(A){this._viewContainerRef=A}_needToReCreateNgModuleInstance(A){return A.ngComponentOutletNgModule!==void 0||A.ngComponentOutletNgModuleFactory!==void 0}_needToReCreateComponentInstance(A){return A.ngComponentOutlet!==void 0||A.ngComponentOutletContent!==void 0||A.ngComponentOutletInjector!==void 0||this._needToReCreateNgModuleInstance(A)}ngOnChanges(A){if(this._needToReCreateComponentInstance(A)&&(this._viewContainerRef.clear(),this._inputsUsed.clear(),this._componentRef=void 0,this.ngComponentOutlet)){let i=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;this._needToReCreateNgModuleInstance(A)&&(this._moduleRef?.destroy(),this.ngComponentOutletNgModule?this._moduleRef=kH(this.ngComponentOutletNgModule,BO(i)):this.ngComponentOutletNgModuleFactory?this._moduleRef=this.ngComponentOutletNgModuleFactory.create(BO(i)):this._moduleRef=void 0),this._componentRef=this._viewContainerRef.createComponent(this.ngComponentOutlet,{injector:i,ngModuleRef:this._moduleRef,projectableNodes:this.ngComponentOutletContent})}}ngDoCheck(){if(this._componentRef){if(this.ngComponentOutletInputs)for(let A of Object.keys(this.ngComponentOutletInputs))this._inputsUsed.set(A,!0);this._applyInputStateDiff(this._componentRef)}}ngOnDestroy(){this._moduleRef?.destroy()}_applyInputStateDiff(A){for(let[i,n]of this._inputsUsed)n?(A.setInput(i,this.ngComponentOutletInputs[i]),this._inputsUsed.set(i,!1)):(A.setInput(i,void 0),this._inputsUsed.delete(i))}static \u0275fac=function(i){return new(i||t)(Ge(Sn))};static \u0275dir=WA({type:t,selectors:[["","ngComponentOutlet",""]],inputs:{ngComponentOutlet:"ngComponentOutlet",ngComponentOutletInputs:"ngComponentOutletInputs",ngComponentOutletInjector:"ngComponentOutletInjector",ngComponentOutletContent:"ngComponentOutletContent",ngComponentOutletNgModule:"ngComponentOutletNgModule",ngComponentOutletNgModuleFactory:"ngComponentOutletNgModuleFactory"},exportAs:["ngComponentOutlet"],features:[Xt]})}return t})();function BO(t){return t.get(Il).injector}var Sp=class{$implicit;ngForOf;index;count;constructor(e,A,i,n){this.$implicit=e,this.ngForOf=A,this.index=i,this.count=n}get first(){return this.index===0}get last(){return this.index===this.count-1}get even(){return this.index%2===0}get odd(){return!this.even}},Lp=(()=>{class t{_viewContainer;_template;_differs;set ngForOf(A){this._ngForOf=A,this._ngForOfDirty=!0}set ngForTrackBy(A){this._trackByFn=A}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(A,i,n){this._viewContainer=A,this._template=i,this._differs=n}set ngForTemplate(A){A&&(this._template=A)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;let A=this._ngForOf;!this._differ&&A&&(this._differ=this._differs.find(A).create(this.ngForTrackBy))}if(this._differ){let A=this._differ.diff(this._ngForOf);A&&this._applyChanges(A)}}_applyChanges(A){let i=this._viewContainer;A.forEachOperation((n,o,r)=>{if(n.previousIndex==null)i.createEmbeddedView(this._template,new Sp(n.item,this._ngForOf,-1,-1),r===null?void 0:r);else if(r==null)i.remove(o===null?void 0:o);else if(o!==null){let s=i.get(o);i.move(s,r),EO(s,n)}});for(let n=0,o=i.length;n{let o=i.get(n.currentIndex);EO(o,n)})}static ngTemplateContextGuard(A,i){return!0}static \u0275fac=function(i){return new(i||t)(Ge(Sn),Ge(mn),Ge(Ql))};static \u0275dir=WA({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return t})();function EO(t,e){t.context.$implicit=e.item}var Tu=(()=>{class t{_viewContainer;_context=new Rp;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(A,i){this._viewContainer=A,this._thenTemplateRef=i}set ngIf(A){this._context.$implicit=this._context.ngIf=A,this._updateView()}set ngIfThen(A){QO(A,!1),this._thenTemplateRef=A,this._thenViewRef=null,this._updateView()}set ngIfElse(A){QO(A,!1),this._elseTemplateRef=A,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(A,i){return!0}static \u0275fac=function(i){return new(i||t)(Ge(Sn),Ge(mn))};static \u0275dir=WA({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return t})(),Rp=class{$implicit=null;ngIf=null};function QO(t,e){if(t&&!t.createEmbeddedView)throw new te(2020,!1)}var Yb=(()=>{class t{_ngEl;_differs;_renderer;_ngStyle=null;_differ=null;constructor(A,i,n){this._ngEl=A,this._differs=i,this._renderer=n}set ngStyle(A){this._ngStyle=A,!this._differ&&A&&(this._differ=this._differs.find(A).create())}ngDoCheck(){if(this._differ){let A=this._differ.diff(this._ngStyle);A&&this._applyChanges(A)}}_setStyle(A,i){let[n,o]=A.split("."),r=n.indexOf("-")===-1?void 0:ll.DashCase;i!=null?this._renderer.setStyle(this._ngEl.nativeElement,n,o?`${i}${o}`:i,r):this._renderer.removeStyle(this._ngEl.nativeElement,n,r)}_applyChanges(A){A.forEachRemovedItem(i=>this._setStyle(i.key,null)),A.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),A.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static \u0275fac=function(i){return new(i||t)(Ge(se),Ge(yp),Ge(qi))};static \u0275dir=WA({type:t,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}})}return t})(),Hu=(()=>{class t{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;constructor(A){this._viewContainerRef=A}ngOnChanges(A){if(this._shouldRecreateView(A)){let i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet){this._viewRef=null;return}let n=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,n,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(A){return!!A.ngTemplateOutlet||!!A.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(A,i,n)=>this.ngTemplateOutletContext?Reflect.set(this.ngTemplateOutletContext,i,n):!1,get:(A,i,n)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,n)}})}static \u0275fac=function(i){return new(i||t)(Ge(Sn))};static \u0275dir=WA({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[Xt]})}return t})();function SBA(t,e){return new te(2100,!1)}var Kb=class{createSubscription(e,A){return ua(()=>e.subscribe({next:A,error:i=>{throw i}}))}dispose(e){ua(()=>e.unsubscribe())}},Ub=class{createSubscription(e,A){return e.then(i=>A?.(i),i=>{throw i}),{unsubscribe:()=>{A=null}}}dispose(e){e.unsubscribe()}},RBA=new Ub,LBA=new Kb,Qg=(()=>{class t{_ref;_latestValue=null;markForCheckOnValueUpdate=!0;_subscription=null;_obj=null;_strategy=null;constructor(A){this._ref=A}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(A){if(!this._obj){if(A)try{this.markForCheckOnValueUpdate=!1,this._subscribe(A)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return A!==this._obj?(this._dispose(),this.transform(A)):this._latestValue}_subscribe(A){this._obj=A,this._strategy=this._selectStrategy(A),this._subscription=this._strategy.createSubscription(A,i=>this._updateLatestValue(A,i))}_selectStrategy(A){if(k2(A))return RBA;if(wb(A))return LBA;throw SBA(t,A)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(A,i){A===this._obj&&(this._latestValue=i,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static \u0275fac=function(i){return new(i||t)(Ge(Et,16))};static \u0275pipe=$d({name:"async",type:t,pure:!1})}return t})();function xBA(t,e){return{key:t,value:e}}var Ou=(()=>{class t{differs;constructor(A){this.differs=A}differ;keyValues=[];compareFn=uO;transform(A,i=uO){if(!A||!(A instanceof Map)&&typeof A!="object")return null;this.differ??=this.differs.find(A).create();let n=this.differ.diff(A),o=i!==this.compareFn;return n&&(this.keyValues=[],n.forEachItem(r=>{this.keyValues.push(xBA(r.key,r.currentValue))})),(n||o)&&(i&&this.keyValues.sort(i),this.compareFn=i),this.keyValues}static \u0275fac=function(i){return new(i||t)(Ge(yp,16))};static \u0275pipe=$d({name:"keyvalue",type:t,pure:!1})}return t})();function uO(t,e){let A=t.key,i=e.key;if(A===i)return 0;if(A==null)return 1;if(i==null)return-1;if(typeof A=="string"&&typeof i=="string")return A{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();function zu(t,e){e=encodeURIComponent(e);for(let A of t.split(";")){let i=A.indexOf("="),[n,o]=i==-1?[A,""]:[A.slice(0,i),A.slice(i+1)];if(n.trim()===e)return decodeURIComponent(o)}return null}var xp="browser",hO="server";function ul(t){return t===xp}function Np(t){return t===hO}var KI=class{};var fO=(()=>{class t{static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new Tb(f(at),window)})}return t})(),Tb=class{document;window;offset=()=>[0,0];constructor(e,A){this.document=e,this.window=A}setOffset(e){Array.isArray(e)?this.offset=()=>e:this.offset=e}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(e){this.window.scrollTo(e[0],e[1])}scrollToAnchor(e){let A=NBA(this.document,e);A&&(this.scrollToElement(A),A.focus())}setHistoryScrollRestoration(e){this.window.history.scrollRestoration=e}scrollToElement(e){let A=e.getBoundingClientRect(),i=A.left+this.window.pageXOffset,n=A.top+this.window.pageYOffset,o=this.offset();this.window.scrollTo(i-o[0],n-o[1])}};function NBA(t,e){let A=t.getElementById(e)||t.getElementsByName(e)[0];if(A)return A;if(typeof t.createTreeWalker=="function"&&t.body&&typeof t.body.attachShadow=="function"){let i=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT),n=i.currentNode;for(;n;){let o=n.shadowRoot;if(o){let r=o.getElementById(e)||o.querySelector(`[name="${e}"]`);if(r)return r}n=i.nextNode()}}return null}var tB=class{},Pu=class{},N2=class t{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(e){e?typeof e=="string"?this.lazyInit=()=>{this.headers=new Map,e.split(` +`).forEach(A=>{let i=A.indexOf(":");if(i>0){let n=A.slice(0,i),o=A.slice(i+1).trim();this.addHeaderEntry(n,o)}})}:typeof Headers<"u"&&e instanceof Headers?(this.headers=new Map,e.forEach((A,i)=>{this.addHeaderEntry(i,A)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(e).forEach(([A,i])=>{this.setHeaderEntries(A,i)})}:this.headers=new Map}has(e){return this.init(),this.headers.has(e.toLowerCase())}get(e){this.init();let A=this.headers.get(e.toLowerCase());return A&&A.length>0?A[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(e){return this.init(),this.headers.get(e.toLowerCase())||null}append(e,A){return this.clone({name:e,value:A,op:"a"})}set(e,A){return this.clone({name:e,value:A,op:"s"})}delete(e,A){return this.clone({name:e,value:A,op:"d"})}maybeSetNormalizedName(e,A){this.normalizedNames.has(A)||this.normalizedNames.set(A,e)}init(){this.lazyInit&&(this.lazyInit instanceof t?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(e=>this.applyUpdate(e)),this.lazyUpdate=null))}copyFrom(e){e.init(),Array.from(e.headers.keys()).forEach(A=>{this.headers.set(A,e.headers.get(A)),this.normalizedNames.set(A,e.normalizedNames.get(A))})}clone(e){let A=new t;return A.lazyInit=this.lazyInit&&this.lazyInit instanceof t?this.lazyInit:this,A.lazyUpdate=(this.lazyUpdate||[]).concat([e]),A}applyUpdate(e){let A=e.name.toLowerCase();switch(e.op){case"a":case"s":let i=e.value;if(typeof i=="string"&&(i=[i]),i.length===0)return;this.maybeSetNormalizedName(e.name,A);let n=(e.op==="a"?this.headers.get(A):void 0)||[];n.push(...i),this.headers.set(A,n);break;case"d":let o=e.value;if(!o)this.headers.delete(A),this.normalizedNames.delete(A);else{let r=this.headers.get(A);if(!r)return;r=r.filter(s=>o.indexOf(s)===-1),r.length===0?(this.headers.delete(A),this.normalizedNames.delete(A)):this.headers.set(A,r)}break}}addHeaderEntry(e,A){let i=e.toLowerCase();this.maybeSetNormalizedName(e,i),this.headers.has(i)?this.headers.get(i).push(A):this.headers.set(i,[A])}setHeaderEntries(e,A){let i=(Array.isArray(A)?A:[A]).map(o=>o.toString()),n=e.toLowerCase();this.headers.set(n,i),this.maybeSetNormalizedName(e,n)}forEach(e){this.init(),Array.from(this.normalizedNames.keys()).forEach(A=>e(this.normalizedNames.get(A),this.headers.get(A)))}};var _p=class{encodeKey(e){return mO(e)}encodeValue(e){return mO(e)}decodeKey(e){return decodeURIComponent(e)}decodeValue(e){return decodeURIComponent(e)}};function FBA(t,e){let A=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(n=>{let o=n.indexOf("="),[r,s]=o==-1?[e.decodeKey(n),""]:[e.decodeKey(n.slice(0,o)),e.decodeValue(n.slice(o+1))],a=A.get(r)||[];a.push(s),A.set(r,a)}),A}var _BA=/%(\d[a-f0-9])/gi,GBA={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function mO(t){return encodeURIComponent(t).replace(_BA,(e,A)=>GBA[A]??e)}function Fp(t){return`${t}`}var w0=class t{map;encoder;updates=null;cloneFrom=null;constructor(e={}){if(this.encoder=e.encoder||new _p,e.fromString){if(e.fromObject)throw new te(2805,!1);this.map=FBA(e.fromString,this.encoder)}else e.fromObject?(this.map=new Map,Object.keys(e.fromObject).forEach(A=>{let i=e.fromObject[A],n=Array.isArray(i)?i.map(Fp):[Fp(i)];this.map.set(A,n)})):this.map=null}has(e){return this.init(),this.map.has(e)}get(e){this.init();let A=this.map.get(e);return A?A[0]:null}getAll(e){return this.init(),this.map.get(e)||null}keys(){return this.init(),Array.from(this.map.keys())}append(e,A){return this.clone({param:e,value:A,op:"a"})}appendAll(e){let A=[];return Object.keys(e).forEach(i=>{let n=e[i];Array.isArray(n)?n.forEach(o=>{A.push({param:i,value:o,op:"a"})}):A.push({param:i,value:n,op:"a"})}),this.clone(A)}set(e,A){return this.clone({param:e,value:A,op:"s"})}delete(e,A){return this.clone({param:e,value:A,op:"d"})}toString(){return this.init(),this.keys().map(e=>{let A=this.encoder.encodeKey(e);return this.map.get(e).map(i=>A+"="+this.encoder.encodeValue(i)).join("&")}).filter(e=>e!=="").join("&")}clone(e){let A=new t({encoder:this.encoder});return A.cloneFrom=this.cloneFrom||this,A.updates=(this.updates||[]).concat(e),A}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(e=>this.map.set(e,this.cloneFrom.map.get(e))),this.updates.forEach(e=>{switch(e.op){case"a":case"s":let A=(e.op==="a"?this.map.get(e.param):void 0)||[];A.push(Fp(e.value)),this.map.set(e.param,A);break;case"d":if(e.value!==void 0){let i=this.map.get(e.param)||[],n=i.indexOf(Fp(e.value));n!==-1&&i.splice(n,1),i.length>0?this.map.set(e.param,i):this.map.delete(e.param)}else{this.map.delete(e.param);break}}}),this.cloneFrom=this.updates=null)}};var Gp=class{map=new Map;set(e,A){return this.map.set(e,A),this}get(e){return this.map.has(e)||this.map.set(e,e.defaultValue()),this.map.get(e)}delete(e){return this.map.delete(e),this}has(e){return this.map.has(e)}keys(){return this.map.keys()}};function KBA(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function pO(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function DO(t){return typeof Blob<"u"&&t instanceof Blob}function wO(t){return typeof FormData<"u"&&t instanceof FormData}function UBA(t){return typeof URLSearchParams<"u"&&t instanceof URLSearchParams}var yO="Content-Type",vO="Accept",bO="X-Request-URL",kO="text/plain",SO="application/json",JBA=`${SO}, ${kO}, */*`,eB=class t{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;responseType="json";method;params;urlWithParams;transferCache;constructor(e,A,i,n){this.url=A,this.method=e.toUpperCase();let o;if(KBA(this.method)||n?(this.body=i!==void 0?i:null,o=n):o=i,o&&(this.reportProgress=!!o.reportProgress,this.withCredentials=!!o.withCredentials,o.responseType&&(this.responseType=o.responseType),o.headers&&(this.headers=o.headers),o.context&&(this.context=o.context),o.params&&(this.params=o.params),this.transferCache=o.transferCache),this.headers??=new N2,this.context??=new Gp,!this.params)this.params=new w0,this.urlWithParams=A;else{let r=this.params.toString();if(r.length===0)this.urlWithParams=A;else{let s=A.indexOf("?"),a=s===-1?"?":sC.set(d,e.setHeaders[d]),c)),e.setParams&&(g=Object.keys(e.setParams).reduce((C,d)=>C.set(d,e.setParams[d]),g)),new t(A,i,r,{params:g,headers:c,context:I,reportProgress:a,responseType:n,withCredentials:s,transferCache:o})}},UI=function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t}(UI||{}),iB=class{headers;status;statusText;url;ok;type;constructor(e,A=200,i="OK"){this.headers=e.headers||new N2,this.status=e.status!==void 0?e.status:A,this.statusText=e.statusText||i,this.url=e.url||null,this.ok=this.status>=200&&this.status<300}},Kp=class t extends iB{constructor(e={}){super(e)}type=UI.ResponseHeader;clone(e={}){return new t({headers:e.headers||this.headers,status:e.status!==void 0?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}},ju=class t extends iB{body;constructor(e={}){super(e),this.body=e.body!==void 0?e.body:null}type=UI.Response;clone(e={}){return new t({body:e.body!==void 0?e.body:this.body,headers:e.headers||this.headers,status:e.status!==void 0?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}},qu=class extends iB{name="HttpErrorResponse";message;error;ok=!1;constructor(e){super(e,0,"Unknown Error"),this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${e.url||"(unknown url)"}`:this.message=`Http failure response for ${e.url||"(unknown url)"}: ${e.status} ${e.statusText}`,this.error=e.error||null}},YBA=200,TBA=204;function Ob(t,e){return{body:e,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials,transferCache:t.transferCache}}var ks=(()=>{class t{handler;constructor(A){this.handler=A}request(A,i,n={}){let o;if(A instanceof eB)o=A;else{let a;n.headers instanceof N2?a=n.headers:a=new N2(n.headers);let c;n.params&&(n.params instanceof w0?c=n.params:c=new w0({fromObject:n.params})),o=new eB(A,i,n.body!==void 0?n.body:null,{headers:a,context:n.context,params:c,reportProgress:n.reportProgress,responseType:n.responseType||"json",withCredentials:n.withCredentials,transferCache:n.transferCache})}let r=Ce(o).pipe(tl(a=>this.handler.handle(a)));if(A instanceof eB||n.observe==="events")return r;let s=r.pipe(Nt(a=>a instanceof ju));switch(n.observe||"body"){case"body":switch(o.responseType){case"arraybuffer":return s.pipe(je(a=>{if(a.body!==null&&!(a.body instanceof ArrayBuffer))throw new te(2806,!1);return a.body}));case"blob":return s.pipe(je(a=>{if(a.body!==null&&!(a.body instanceof Blob))throw new te(2807,!1);return a.body}));case"text":return s.pipe(je(a=>{if(a.body!==null&&typeof a.body!="string")throw new te(2808,!1);return a.body}));case"json":default:return s.pipe(je(a=>a.body))}case"response":return s;default:throw new te(2809,!1)}}delete(A,i={}){return this.request("DELETE",A,i)}get(A,i={}){return this.request("GET",A,i)}head(A,i={}){return this.request("HEAD",A,i)}jsonp(A,i){return this.request("JSONP",A,{params:new w0().append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(A,i={}){return this.request("OPTIONS",A,i)}patch(A,i,n={}){return this.request("PATCH",A,Ob(n,i))}post(A,i,n={}){return this.request("POST",A,Ob(n,i))}put(A,i,n={}){return this.request("PUT",A,Ob(n,i))}static \u0275fac=function(i){return new(i||t)(be(tB))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();var HBA=new eA("");function RO(t,e){return e(t)}function OBA(t,e){return(A,i)=>e.intercept(A,{handle:n=>t(n,i)})}function zBA(t,e,A){return(i,n)=>da(A,()=>e(i,o=>t(o,n)))}var LO=new eA(""),Pb=new eA(""),xO=new eA(""),jb=new eA("",{providedIn:"root",factory:()=>!0});function PBA(){let t=null;return(e,A)=>{t===null&&(t=(f(LO,{optional:!0})??[]).reduceRight(OBA,RO));let i=f(m0);if(f(jb)){let o=i.add();return t(e,A).pipe(nl(()=>i.remove(o)))}else return t(e,A)}}var Up=(()=>{class t extends tB{backend;injector;chain=null;pendingTasks=f(m0);contributeToStability=f(jb);constructor(A,i){super(),this.backend=A,this.injector=i}handle(A){if(this.chain===null){let i=Array.from(new Set([...this.injector.get(Pb),...this.injector.get(xO,[])]));this.chain=i.reduceRight((n,o)=>zBA(n,o,this.injector),RO)}if(this.contributeToStability){let i=this.pendingTasks.add();return this.chain(A,n=>this.backend.handle(n)).pipe(nl(()=>this.pendingTasks.remove(i)))}else return this.chain(A,i=>this.backend.handle(i))}static \u0275fac=function(i){return new(i||t)(be(Pu),be(vr))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();var jBA=/^\)\]\}',?\n/,qBA=RegExp(`^${bO}:`,"m");function VBA(t){return"responseURL"in t&&t.responseURL?t.responseURL:qBA.test(t.getAllResponseHeaders())?t.getResponseHeader(bO):null}var zb=(()=>{class t{xhrFactory;constructor(A){this.xhrFactory=A}handle(A){if(A.method==="JSONP")throw new te(-2800,!1);let i=this.xhrFactory;return(i.\u0275loadImpl?ro(i.\u0275loadImpl()):Ce(null)).pipe($n(()=>new gt(o=>{let r=i.build();if(r.open(A.method,A.urlWithParams),A.withCredentials&&(r.withCredentials=!0),A.headers.forEach((E,u)=>r.setRequestHeader(E,u.join(","))),A.headers.has(vO)||r.setRequestHeader(vO,JBA),!A.headers.has(yO)){let E=A.detectContentTypeHeader();E!==null&&r.setRequestHeader(yO,E)}if(A.responseType){let E=A.responseType.toLowerCase();r.responseType=E!=="json"?E:"text"}let s=A.serializeBody(),a=null,c=()=>{if(a!==null)return a;let E=r.statusText||"OK",u=new N2(r.getAllResponseHeaders()),h=VBA(r)||A.url;return a=new Kp({headers:u,status:r.status,statusText:E,url:h}),a},g=()=>{let{headers:E,status:u,statusText:h,url:w}=c(),x=null;u!==TBA&&(x=typeof r.response>"u"?r.responseText:r.response),u===0&&(u=x?YBA:0);let R=u>=200&&u<300;if(A.responseType==="json"&&typeof x=="string"){let D=x;x=x.replace(jBA,"");try{x=x!==""?JSON.parse(x):null}catch(G){x=D,R&&(R=!1,x={error:G,text:x})}}R?(o.next(new ju({body:x,headers:E,status:u,statusText:h,url:w||void 0})),o.complete()):o.error(new qu({error:x,headers:E,status:u,statusText:h,url:w||void 0}))},I=E=>{let{url:u}=c(),h=new qu({error:E,status:r.status||0,statusText:r.statusText||"Unknown Error",url:u||void 0});o.error(h)},C=!1,d=E=>{C||(o.next(c()),C=!0);let u={type:UI.DownloadProgress,loaded:E.loaded};E.lengthComputable&&(u.total=E.total),A.responseType==="text"&&r.responseText&&(u.partialText=r.responseText),o.next(u)},B=E=>{let u={type:UI.UploadProgress,loaded:E.loaded};E.lengthComputable&&(u.total=E.total),o.next(u)};return r.addEventListener("load",g),r.addEventListener("error",I),r.addEventListener("timeout",I),r.addEventListener("abort",I),A.reportProgress&&(r.addEventListener("progress",d),s!==null&&r.upload&&r.upload.addEventListener("progress",B)),r.send(s),o.next({type:UI.Sent}),()=>{r.removeEventListener("error",I),r.removeEventListener("abort",I),r.removeEventListener("load",g),r.removeEventListener("timeout",I),A.reportProgress&&(r.removeEventListener("progress",d),s!==null&&r.upload&&r.upload.removeEventListener("progress",B)),r.readyState!==r.DONE&&r.abort()}})))}static \u0275fac=function(i){return new(i||t)(be(KI))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),NO=new eA(""),ZBA="XSRF-TOKEN",WBA=new eA("",{providedIn:"root",factory:()=>ZBA}),XBA="X-XSRF-TOKEN",$BA=new eA("",{providedIn:"root",factory:()=>XBA}),Vu=class{},AEA=(()=>{class t{doc;cookieName;lastCookieString="";lastToken=null;parseCount=0;constructor(A,i){this.doc=A,this.cookieName=i}getToken(){let A=this.doc.cookie||"";return A!==this.lastCookieString&&(this.parseCount++,this.lastToken=zu(A,this.cookieName),this.lastCookieString=A),this.lastToken}static \u0275fac=function(i){return new(i||t)(be(at),be(WBA))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();function eEA(t,e){let A=t.url.toLowerCase();if(!f(NO)||t.method==="GET"||t.method==="HEAD"||A.startsWith("http://")||A.startsWith("https://"))return e(t);let i=f(Vu).getToken(),n=f($BA);return i!=null&&!t.headers.has(n)&&(t=t.clone({headers:t.headers.set(n,i)})),e(t)}var qb=function(t){return t[t.Interceptors=0]="Interceptors",t[t.LegacyInterceptors=1]="LegacyInterceptors",t[t.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",t[t.NoXsrfProtection=3]="NoXsrfProtection",t[t.JsonpSupport=4]="JsonpSupport",t[t.RequestsMadeViaParent=5]="RequestsMadeViaParent",t[t.Fetch=6]="Fetch",t}(qb||{});function tEA(t,e){return{\u0275kind:t,\u0275providers:e}}function FO(...t){let e=[ks,zb,Up,{provide:tB,useExisting:Up},{provide:Pu,useFactory:()=>f(HBA,{optional:!0})??f(zb)},{provide:Pb,useValue:eEA,multi:!0},{provide:NO,useValue:!0},{provide:Vu,useClass:AEA}];for(let A of t)e.push(...A.\u0275providers);return vu(e)}var MO=new eA("");function _O(){return tEA(qb.LegacyInterceptors,[{provide:MO,useFactory:PBA},{provide:Pb,useExisting:MO,multi:!0}])}var Vb=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[FO(_O())]})}return t})();var OO=(()=>{class t{_renderer;_elementRef;onChange=A=>{};onTouched=()=>{};constructor(A,i){this._renderer=A,this._elementRef=i}setProperty(A,i){this._renderer.setProperty(this._elementRef.nativeElement,A,i)}registerOnTouched(A){this.onTouched=A}registerOnChange(A){this.onChange=A}setDisabledState(A){this.setProperty("disabled",A)}static \u0275fac=function(i){return new(i||t)(Ge(qi),Ge(se))};static \u0275dir=WA({type:t})}return t})(),iEA=(()=>{class t extends OO{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,features:[lt]})}return t})(),bc=new eA("");var nEA={provide:bc,useExisting:Ur(()=>kc),multi:!0};function oEA(){let t=$a()?$a().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}var rEA=new eA(""),kc=(()=>{class t extends OO{_compositionMode;_composing=!1;constructor(A,i,n){super(A,i),this._compositionMode=n,this._compositionMode==null&&(this._compositionMode=!oEA())}writeValue(A){let i=A??"";this.setProperty("value",i)}_handleInput(A){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(A)}_compositionStart(){this._composing=!0}_compositionEnd(A){this._composing=!1,this._compositionMode&&this.onChange(A)}static \u0275fac=function(i){return new(i||t)(Ge(qi),Ge(se),Ge(rEA,8))};static \u0275dir=WA({type:t,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,n){i&1&&mA("input",function(r){return n._handleInput(r.target.value)})("blur",function(){return n.onTouched()})("compositionstart",function(){return n._compositionStart()})("compositionend",function(r){return n._compositionEnd(r.target.value)})},standalone:!1,features:[ut([nEA]),lt]})}return t})();function $b(t){return t==null||Ak(t)===0}function Ak(t){return t==null?null:Array.isArray(t)||typeof t=="string"?t.length:t instanceof Set?t.size:null}var M0=new eA(""),th=new eA(""),sEA=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Ac=class{static min(e){return aEA(e)}static max(e){return cEA(e)}static required(e){return gEA(e)}static requiredTrue(e){return lEA(e)}static email(e){return IEA(e)}static minLength(e){return CEA(e)}static maxLength(e){return dEA(e)}static pattern(e){return BEA(e)}static nullValidator(e){return zO()}static compose(e){return WO(e)}static composeAsync(e){return XO(e)}};function aEA(t){return e=>{if(e.value==null||t==null)return null;let A=parseFloat(e.value);return!isNaN(A)&&A{if(e.value==null||t==null)return null;let A=parseFloat(e.value);return!isNaN(A)&&A>t?{max:{max:t,actual:e.value}}:null}}function gEA(t){return $b(t.value)?{required:!0}:null}function lEA(t){return t.value===!0?null:{required:!0}}function IEA(t){return $b(t.value)||sEA.test(t.value)?null:{email:!0}}function CEA(t){return e=>{let A=e.value?.length??Ak(e.value);return A===null||A===0?null:A{let A=e.value?.length??Ak(e.value);return A!==null&&A>t?{maxlength:{requiredLength:t,actualLength:A}}:null}}function BEA(t){if(!t)return zO;let e,A;return typeof t=="string"?(A="",t.charAt(0)!=="^"&&(A+="^"),A+=t,t.charAt(t.length-1)!=="$"&&(A+="$"),e=new RegExp(A)):(A=t.toString(),e=t),i=>{if($b(i.value))return null;let n=i.value;return e.test(n)?null:{pattern:{requiredPattern:A,actualValue:n}}}}function zO(t){return null}function PO(t){return t!=null}function jO(t){return k2(t)?ro(t):t}function qO(t){let e={};return t.forEach(A=>{e=A!=null?sA(sA({},e),A):e}),Object.keys(e).length===0?null:e}function VO(t,e){return e.map(A=>A(t))}function EEA(t){return!t.validate}function ZO(t){return t.map(e=>EEA(e)?e:A=>e.validate(A))}function WO(t){if(!t)return null;let e=t.filter(PO);return e.length==0?null:function(A){return qO(VO(A,e))}}function ek(t){return t!=null?WO(ZO(t)):null}function XO(t){if(!t)return null;let e=t.filter(PO);return e.length==0?null:function(A){let i=VO(A,e).map(jO);return gu(i).pipe(je(qO))}}function tk(t){return t!=null?XO(ZO(t)):null}function GO(t,e){return t===null?[e]:Array.isArray(t)?[...t,e]:[t,e]}function $O(t){return t._rawValidators}function Az(t){return t._rawAsyncValidators}function Zb(t){return t?Array.isArray(t)?t:[t]:[]}function Yp(t,e){return Array.isArray(t)?t.includes(e):t===e}function KO(t,e){let A=Zb(e);return Zb(t).forEach(n=>{Yp(A,n)||A.push(n)}),A}function UO(t,e){return Zb(e).filter(A=>!Yp(t,A))}var Tp=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(e){this._rawValidators=e||[],this._composedValidatorFn=ek(this._rawValidators)}_setAsyncValidators(e){this._rawAsyncValidators=e||[],this._composedAsyncValidatorFn=tk(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(e){this._onDestroyCallbacks.push(e)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(e=>e()),this._onDestroyCallbacks=[]}reset(e=void 0){this.control&&this.control.reset(e)}hasError(e,A){return this.control?this.control.hasError(e,A):!1}getError(e,A){return this.control?this.control.getError(e,A):null}},v0=class extends Tp{name;get formDirective(){return null}get path(){return null}},ec=class extends Tp{_parent=null;name=null;valueAccessor=null},Hp=class{_cd;constructor(e){this._cd=e}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}},QEA={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},cre=Fe(sA({},QEA),{"[class.ng-submitted]":"isSubmitted"}),Ss=(()=>{class t extends Hp{constructor(A){super(A)}static \u0275fac=function(i){return new(i||t)(Ge(ec,2))};static \u0275dir=WA({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,n){i&2&&he("ng-untouched",n.isUntouched)("ng-touched",n.isTouched)("ng-pristine",n.isPristine)("ng-dirty",n.isDirty)("ng-valid",n.isValid)("ng-invalid",n.isInvalid)("ng-pending",n.isPending)},standalone:!1,features:[lt]})}return t})(),ez=(()=>{class t extends Hp{constructor(A){super(A)}static \u0275fac=function(i){return new(i||t)(Ge(v0,10))};static \u0275dir=WA({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,n){i&2&&he("ng-untouched",n.isUntouched)("ng-touched",n.isTouched)("ng-pristine",n.isPristine)("ng-dirty",n.isDirty)("ng-valid",n.isValid)("ng-invalid",n.isInvalid)("ng-pending",n.isPending)("ng-submitted",n.isSubmitted)},standalone:!1,features:[lt]})}return t})();var Zu="VALID",Jp="INVALID",nB="PENDING",Wu="DISABLED",F2=class{},Op=class extends F2{value;source;constructor(e,A){super(),this.value=e,this.source=A}},$u=class extends F2{pristine;source;constructor(e,A){super(),this.pristine=e,this.source=A}},Ah=class extends F2{touched;source;constructor(e,A){super(),this.touched=e,this.source=A}},oB=class extends F2{status;source;constructor(e,A){super(),this.status=e,this.source=A}},zp=class extends F2{source;constructor(e){super(),this.source=e}},Pp=class extends F2{source;constructor(e){super(),this.source=e}};function ik(t){return(Zp(t)?t.validators:t)||null}function uEA(t){return Array.isArray(t)?ek(t):t||null}function nk(t,e){return(Zp(e)?e.asyncValidators:t)||null}function hEA(t){return Array.isArray(t)?tk(t):t||null}function Zp(t){return t!=null&&!Array.isArray(t)&&typeof t=="object"}function tz(t,e,A){let i=t.controls;if(!(e?Object.keys(i):i).length)throw new te(1e3,"");if(!i[A])throw new te(1001,"")}function iz(t,e,A){t._forEachChild((i,n)=>{if(A[n]===void 0)throw new te(1002,"")})}var rB=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(e,A){this._assignValidators(e),this._assignAsyncValidators(A)}get validator(){return this._composedValidatorFn}set validator(e){this._rawValidators=this._composedValidatorFn=e}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(e){this._rawAsyncValidators=this._composedAsyncValidatorFn=e}get parent(){return this._parent}get status(){return ua(this.statusReactive)}set status(e){ua(()=>this.statusReactive.set(e))}_status=Mc(()=>this.statusReactive());statusReactive=Ao(void 0);get valid(){return this.status===Zu}get invalid(){return this.status===Jp}get pending(){return this.status==nB}get disabled(){return this.status===Wu}get enabled(){return this.status!==Wu}errors;get pristine(){return ua(this.pristineReactive)}set pristine(e){ua(()=>this.pristineReactive.set(e))}_pristine=Mc(()=>this.pristineReactive());pristineReactive=Ao(!0);get dirty(){return!this.pristine}get touched(){return ua(this.touchedReactive)}set touched(e){ua(()=>this.touchedReactive.set(e))}_touched=Mc(()=>this.touchedReactive());touchedReactive=Ao(!1);get untouched(){return!this.touched}_events=new qA;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(e){this._assignValidators(e)}setAsyncValidators(e){this._assignAsyncValidators(e)}addValidators(e){this.setValidators(KO(e,this._rawValidators))}addAsyncValidators(e){this.setAsyncValidators(KO(e,this._rawAsyncValidators))}removeValidators(e){this.setValidators(UO(e,this._rawValidators))}removeAsyncValidators(e){this.setAsyncValidators(UO(e,this._rawAsyncValidators))}hasValidator(e){return Yp(this._rawValidators,e)}hasAsyncValidator(e){return Yp(this._rawAsyncValidators,e)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(e={}){let A=this.touched===!1;this.touched=!0;let i=e.sourceControl??this;this._parent&&!e.onlySelf&&this._parent.markAsTouched(Fe(sA({},e),{sourceControl:i})),A&&e.emitEvent!==!1&&this._events.next(new Ah(!0,i))}markAllAsTouched(e={}){this.markAsTouched({onlySelf:!0,emitEvent:e.emitEvent,sourceControl:this}),this._forEachChild(A=>A.markAllAsTouched(e))}markAsUntouched(e={}){let A=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=e.sourceControl??this;this._forEachChild(n=>{n.markAsUntouched({onlySelf:!0,emitEvent:e.emitEvent,sourceControl:i})}),this._parent&&!e.onlySelf&&this._parent._updateTouched(e,i),A&&e.emitEvent!==!1&&this._events.next(new Ah(!1,i))}markAsDirty(e={}){let A=this.pristine===!0;this.pristine=!1;let i=e.sourceControl??this;this._parent&&!e.onlySelf&&this._parent.markAsDirty(Fe(sA({},e),{sourceControl:i})),A&&e.emitEvent!==!1&&this._events.next(new $u(!1,i))}markAsPristine(e={}){let A=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=e.sourceControl??this;this._forEachChild(n=>{n.markAsPristine({onlySelf:!0,emitEvent:e.emitEvent})}),this._parent&&!e.onlySelf&&this._parent._updatePristine(e,i),A&&e.emitEvent!==!1&&this._events.next(new $u(!0,i))}markAsPending(e={}){this.status=nB;let A=e.sourceControl??this;e.emitEvent!==!1&&(this._events.next(new oB(this.status,A)),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.markAsPending(Fe(sA({},e),{sourceControl:A}))}disable(e={}){let A=this._parentMarkedDirty(e.onlySelf);this.status=Wu,this.errors=null,this._forEachChild(n=>{n.disable(Fe(sA({},e),{onlySelf:!0}))}),this._updateValue();let i=e.sourceControl??this;e.emitEvent!==!1&&(this._events.next(new Op(this.value,i)),this._events.next(new oB(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Fe(sA({},e),{skipPristineCheck:A}),this),this._onDisabledChange.forEach(n=>n(!0))}enable(e={}){let A=this._parentMarkedDirty(e.onlySelf);this.status=Zu,this._forEachChild(i=>{i.enable(Fe(sA({},e),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors(Fe(sA({},e),{skipPristineCheck:A}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(e,A){this._parent&&!e.onlySelf&&(this._parent.updateValueAndValidity(e),e.skipPristineCheck||this._parent._updatePristine({},A),this._parent._updateTouched({},A))}setParent(e){this._parent=e}getRawValue(){return this.value}updateValueAndValidity(e={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Zu||this.status===nB)&&this._runAsyncValidator(i,e.emitEvent)}let A=e.sourceControl??this;e.emitEvent!==!1&&(this._events.next(new Op(this.value,A)),this._events.next(new oB(this.status,A)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(Fe(sA({},e),{sourceControl:A}))}_updateTreeValidity(e={emitEvent:!0}){this._forEachChild(A=>A._updateTreeValidity(e)),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Wu:Zu}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(e,A){if(this.asyncValidator){this.status=nB,this._hasOwnPendingAsyncValidator={emitEvent:A!==!1};let i=jO(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(n=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(n,{emitEvent:A,shouldHaveEmitted:e})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let e=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,e}return!1}setErrors(e,A={}){this.errors=e,this._updateControlsErrors(A.emitEvent!==!1,this,A.shouldHaveEmitted)}get(e){let A=e;return A==null||(Array.isArray(A)||(A=A.split(".")),A.length===0)?null:A.reduce((i,n)=>i&&i._find(n),this)}getError(e,A){let i=A?this.get(A):this;return i&&i.errors?i.errors[e]:null}hasError(e,A){return!!this.getError(e,A)}get root(){let e=this;for(;e._parent;)e=e._parent;return e}_updateControlsErrors(e,A,i){this.status=this._calculateStatus(),e&&this.statusChanges.emit(this.status),(e||i)&&this._events.next(new oB(this.status,A)),this._parent&&this._parent._updateControlsErrors(e,A,i)}_initObservables(){this.valueChanges=new YA,this.statusChanges=new YA}_calculateStatus(){return this._allControlsDisabled()?Wu:this.errors?Jp:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(nB)?nB:this._anyControlsHaveStatus(Jp)?Jp:Zu}_anyControlsHaveStatus(e){return this._anyControls(A=>A.status===e)}_anyControlsDirty(){return this._anyControls(e=>e.dirty)}_anyControlsTouched(){return this._anyControls(e=>e.touched)}_updatePristine(e,A){let i=!this._anyControlsDirty(),n=this.pristine!==i;this.pristine=i,this._parent&&!e.onlySelf&&this._parent._updatePristine(e,A),n&&this._events.next(new $u(this.pristine,A))}_updateTouched(e={},A){this.touched=this._anyControlsTouched(),this._events.next(new Ah(this.touched,A)),this._parent&&!e.onlySelf&&this._parent._updateTouched(e,A)}_onDisabledChange=[];_registerOnCollectionChange(e){this._onCollectionChange=e}_setUpdateStrategy(e){Zp(e)&&e.updateOn!=null&&(this._updateOn=e.updateOn)}_parentMarkedDirty(e){let A=this._parent&&this._parent.dirty;return!e&&!!A&&!this._parent._anyControlsDirty()}_find(e){return null}_assignValidators(e){this._rawValidators=Array.isArray(e)?e.slice():e,this._composedValidatorFn=uEA(this._rawValidators)}_assignAsyncValidators(e){this._rawAsyncValidators=Array.isArray(e)?e.slice():e,this._composedAsyncValidatorFn=hEA(this._rawAsyncValidators)}},sB=class extends rB{constructor(e,A,i){super(ik(A),nk(i,A)),this.controls=e,this._initObservables(),this._setUpdateStrategy(A),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(e,A){return this.controls[e]?this.controls[e]:(this.controls[e]=A,A.setParent(this),A._registerOnCollectionChange(this._onCollectionChange),A)}addControl(e,A,i={}){this.registerControl(e,A),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(e,A={}){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),delete this.controls[e],this.updateValueAndValidity({emitEvent:A.emitEvent}),this._onCollectionChange()}setControl(e,A,i={}){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),delete this.controls[e],A&&this.registerControl(e,A),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(e){return this.controls.hasOwnProperty(e)&&this.controls[e].enabled}setValue(e,A={}){iz(this,!0,e),Object.keys(e).forEach(i=>{tz(this,!0,i),this.controls[i].setValue(e[i],{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A)}patchValue(e,A={}){e!=null&&(Object.keys(e).forEach(i=>{let n=this.controls[i];n&&n.patchValue(e[i],{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A))}reset(e={},A={}){this._forEachChild((i,n)=>{i.reset(e?e[n]:null,{onlySelf:!0,emitEvent:A.emitEvent})}),this._updatePristine(A,this),this._updateTouched(A,this),this.updateValueAndValidity(A)}getRawValue(){return this._reduceChildren({},(e,A,i)=>(e[i]=A.getRawValue(),e))}_syncPendingControls(){let e=this._reduceChildren(!1,(A,i)=>i._syncPendingControls()?!0:A);return e&&this.updateValueAndValidity({onlySelf:!0}),e}_forEachChild(e){Object.keys(this.controls).forEach(A=>{let i=this.controls[A];i&&e(i,A)})}_setUpControls(){this._forEachChild(e=>{e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(e){for(let[A,i]of Object.entries(this.controls))if(this.contains(A)&&e(i))return!0;return!1}_reduceValue(){let e={};return this._reduceChildren(e,(A,i,n)=>((i.enabled||this.disabled)&&(A[n]=i.value),A))}_reduceChildren(e,A){let i=e;return this._forEachChild((n,o)=>{i=A(i,n,o)}),i}_allControlsDisabled(){for(let e of Object.keys(this.controls))if(this.controls[e].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(e){return this.controls.hasOwnProperty(e)?this.controls[e]:null}};var Wb=class extends sB{};var aB=new eA("",{providedIn:"root",factory:()=>Wp}),Wp="always";function nz(t,e){return[...e.path,t]}function eh(t,e,A=Wp){ok(t,e),e.valueAccessor.writeValue(t.value),(t.disabled||A==="always")&&e.valueAccessor.setDisabledState?.(t.disabled),mEA(t,e),DEA(t,e),pEA(t,e),fEA(t,e)}function jp(t,e,A=!0){let i=()=>{};e.valueAccessor&&(e.valueAccessor.registerOnChange(i),e.valueAccessor.registerOnTouched(i)),Vp(t,e),t&&(e._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function qp(t,e){t.forEach(A=>{A.registerOnValidatorChange&&A.registerOnValidatorChange(e)})}function fEA(t,e){if(e.valueAccessor.setDisabledState){let A=i=>{e.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(A),e._registerOnDestroy(()=>{t._unregisterOnDisabledChange(A)})}}function ok(t,e){let A=$O(t);e.validator!==null?t.setValidators(GO(A,e.validator)):typeof A=="function"&&t.setValidators([A]);let i=Az(t);e.asyncValidator!==null?t.setAsyncValidators(GO(i,e.asyncValidator)):typeof i=="function"&&t.setAsyncValidators([i]);let n=()=>t.updateValueAndValidity();qp(e._rawValidators,n),qp(e._rawAsyncValidators,n)}function Vp(t,e){let A=!1;if(t!==null){if(e.validator!==null){let n=$O(t);if(Array.isArray(n)&&n.length>0){let o=n.filter(r=>r!==e.validator);o.length!==n.length&&(A=!0,t.setValidators(o))}}if(e.asyncValidator!==null){let n=Az(t);if(Array.isArray(n)&&n.length>0){let o=n.filter(r=>r!==e.asyncValidator);o.length!==n.length&&(A=!0,t.setAsyncValidators(o))}}}let i=()=>{};return qp(e._rawValidators,i),qp(e._rawAsyncValidators,i),A}function mEA(t,e){e.valueAccessor.registerOnChange(A=>{t._pendingValue=A,t._pendingChange=!0,t._pendingDirty=!0,t.updateOn==="change"&&oz(t,e)})}function pEA(t,e){e.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,t.updateOn==="blur"&&t._pendingChange&&oz(t,e),t.updateOn!=="submit"&&t.markAsTouched()})}function oz(t,e){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function DEA(t,e){let A=(i,n)=>{e.valueAccessor.writeValue(i),n&&e.viewToModelUpdate(i)};t.registerOnChange(A),e._registerOnDestroy(()=>{t._unregisterOnChange(A)})}function rz(t,e){t==null,ok(t,e)}function wEA(t,e){return Vp(t,e)}function rk(t,e){if(!t.hasOwnProperty("model"))return!1;let A=t.model;return A.isFirstChange()?!0:!Object.is(e,A.currentValue)}function yEA(t){return Object.getPrototypeOf(t.constructor)===iEA}function sz(t,e){t._syncPendingControls(),e.forEach(A=>{let i=A.control;i.updateOn==="submit"&&i._pendingChange&&(A.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function sk(t,e){if(!e)return null;Array.isArray(e);let A,i,n;return e.forEach(o=>{o.constructor===kc?A=o:yEA(o)?i=o:n=o}),n||i||A||null}function vEA(t,e){let A=t.indexOf(e);A>-1&&t.splice(A,1)}var MEA={provide:v0,useExisting:Ur(()=>ih)},Xu=Promise.resolve(),ih=(()=>{class t extends v0{callSetDisabledState;get submitted(){return ua(this.submittedReactive)}_submitted=Mc(()=>this.submittedReactive());submittedReactive=Ao(!1);_directives=new Set;form;ngSubmit=new YA;options;constructor(A,i,n){super(),this.callSetDisabledState=n,this.form=new sB({},ek(A),tk(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(A){Xu.then(()=>{let i=this._findContainer(A.path);A.control=i.registerControl(A.name,A.control),eh(A.control,A,this.callSetDisabledState),A.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(A)})}getControl(A){return this.form.get(A.path)}removeControl(A){Xu.then(()=>{let i=this._findContainer(A.path);i&&i.removeControl(A.name),this._directives.delete(A)})}addFormGroup(A){Xu.then(()=>{let i=this._findContainer(A.path),n=new sB({});rz(n,A),i.registerControl(A.name,n),n.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(A){Xu.then(()=>{let i=this._findContainer(A.path);i&&i.removeControl(A.name)})}getFormGroup(A){return this.form.get(A.path)}updateModel(A,i){Xu.then(()=>{this.form.get(A.path).setValue(i)})}setValue(A){this.control.setValue(A)}onSubmit(A){return this.submittedReactive.set(!0),sz(this.form,this._directives),this.ngSubmit.emit(A),this.form._events.next(new zp(this.control)),A?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(A=void 0){this.form.reset(A),this.submittedReactive.set(!1),this.form._events.next(new Pp(this.form))}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(A){return A.pop(),A.length?this.form.get(A):this.form}static \u0275fac=function(i){return new(i||t)(Ge(M0,10),Ge(th,10),Ge(aB,8))};static \u0275dir=WA({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,n){i&1&&mA("submit",function(r){return n.onSubmit(r)})("reset",function(){return n.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[ut([MEA]),lt]})}return t})();function JO(t,e){let A=t.indexOf(e);A>-1&&t.splice(A,1)}function YO(t){return typeof t=="object"&&t!==null&&Object.keys(t).length===2&&"value"in t&&"disabled"in t}var y0=class extends rB{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(e=null,A,i){super(ik(A),nk(i,A)),this._applyFormState(e),this._setUpdateStrategy(A),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Zp(A)&&(A.nonNullable||A.initialValueIsDefault)&&(YO(e)?this.defaultValue=e.value:this.defaultValue=e)}setValue(e,A={}){this.value=this._pendingValue=e,this._onChange.length&&A.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,A.emitViewToModelChange!==!1)),this.updateValueAndValidity(A)}patchValue(e,A={}){this.setValue(e,A)}reset(e=this.defaultValue,A={}){this._applyFormState(e),this.markAsPristine(A),this.markAsUntouched(A),this.setValue(this.value,A),this._pendingChange=!1}_updateValue(){}_anyControls(e){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(e){this._onChange.push(e)}_unregisterOnChange(e){JO(this._onChange,e)}registerOnDisabledChange(e){this._onDisabledChange.push(e)}_unregisterOnDisabledChange(e){JO(this._onDisabledChange,e)}_forEachChild(e){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(e){YO(e)?(this.value=this._pendingValue=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=e}};var bEA=t=>t instanceof y0;var kEA={provide:ec,useExisting:Ur(()=>tc)},TO=Promise.resolve(),tc=(()=>{class t extends ec{_changeDetectorRef;callSetDisabledState;control=new y0;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new YA;constructor(A,i,n,o,r,s){super(),this._changeDetectorRef=r,this.callSetDisabledState=s,this._parent=A,this._setValidators(i),this._setAsyncValidators(n),this.valueAccessor=sk(this,o)}ngOnChanges(A){if(this._checkForErrors(),!this._registered||"name"in A){if(this._registered&&(this._checkName(),this.formDirective)){let i=A.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in A&&this._updateDisabled(A),rk(A,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){eh(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(A){TO.then(()=>{this.control.setValue(A,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(A){let i=A.isDisabled.currentValue,n=i!==0&&ge(i);TO.then(()=>{n&&!this.control.disabled?this.control.disable():!n&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(A){return this._parent?nz(A,this._parent):[A]}static \u0275fac=function(i){return new(i||t)(Ge(v0,9),Ge(M0,10),Ge(th,10),Ge(bc,10),Ge(Et,8),Ge(aB,8))};static \u0275dir=WA({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[ut([kEA]),lt,Xt]})}return t})();var az=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return t})();var ak=new eA(""),SEA={provide:ec,useExisting:Ur(()=>ck)},ck=(()=>{class t extends ec{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(A){}model;update=new YA;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(A,i,n,o,r){super(),this._ngModelWarningConfig=o,this.callSetDisabledState=r,this._setValidators(A),this._setAsyncValidators(i),this.valueAccessor=sk(this,n)}ngOnChanges(A){if(this._isControlChanged(A)){let i=A.form.previousValue;i&&jp(i,this,!1),eh(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}rk(A,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&jp(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}_isControlChanged(A){return A.hasOwnProperty("form")}static \u0275fac=function(i){return new(i||t)(Ge(M0,10),Ge(th,10),Ge(bc,10),Ge(ak,8),Ge(aB,8))};static \u0275dir=WA({type:t,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[ut([SEA]),lt,Xt]})}return t})(),REA={provide:v0,useExisting:Ur(()=>YI)},YI=(()=>{class t extends v0{callSetDisabledState;get submitted(){return ua(this._submittedReactive)}set submitted(A){this._submittedReactive.set(A)}_submitted=Mc(()=>this._submittedReactive());_submittedReactive=Ao(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];form=null;ngSubmit=new YA;constructor(A,i,n){super(),this.callSetDisabledState=n,this._setValidators(A),this._setAsyncValidators(i)}ngOnChanges(A){A.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Vp(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(A){let i=this.form.get(A.path);return eh(i,A,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(A),i}getControl(A){return this.form.get(A.path)}removeControl(A){jp(A.control||null,A,!1),vEA(this.directives,A)}addFormGroup(A){this._setUpFormContainer(A)}removeFormGroup(A){this._cleanUpFormContainer(A)}getFormGroup(A){return this.form.get(A.path)}addFormArray(A){this._setUpFormContainer(A)}removeFormArray(A){this._cleanUpFormContainer(A)}getFormArray(A){return this.form.get(A.path)}updateModel(A,i){this.form.get(A.path).setValue(i)}onSubmit(A){return this._submittedReactive.set(!0),sz(this.form,this.directives),this.ngSubmit.emit(A),this.form._events.next(new zp(this.control)),A?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(A=void 0){this.form.reset(A),this._submittedReactive.set(!1),this.form._events.next(new Pp(this.form))}_updateDomValue(){this.directives.forEach(A=>{let i=A.control,n=this.form.get(A.path);i!==n&&(jp(i||null,A),bEA(n)&&(eh(n,A,this.callSetDisabledState),A.control=n))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(A){let i=this.form.get(A.path);rz(i,A),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(A){if(this.form){let i=this.form.get(A.path);i&&wEA(i,A)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){ok(this.form,this),this._oldForm&&Vp(this._oldForm,this)}static \u0275fac=function(i){return new(i||t)(Ge(M0,10),Ge(th,10),Ge(aB,8))};static \u0275dir=WA({type:t,selectors:[["","formGroup",""]],hostBindings:function(i,n){i&1&&mA("submit",function(r){return n.onSubmit(r)})("reset",function(){return n.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[ut([REA]),lt,Xt]})}return t})();var LEA={provide:ec,useExisting:Ur(()=>gk)},gk=(()=>{class t extends ec{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(A){}model;update=new YA;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(A,i,n,o,r){super(),this._ngModelWarningConfig=r,this._parent=A,this._setValidators(i),this._setAsyncValidators(n),this.valueAccessor=sk(this,o)}ngOnChanges(A){this._added||this._setUpControl(),rk(A,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}get path(){return nz(this.name==null?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_setUpControl(){this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||t)(Ge(v0,13),Ge(M0,10),Ge(th,10),Ge(bc,10),Ge(ak,8))};static \u0275dir=WA({type:t,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[ut([LEA]),lt,Xt]})}return t})();var cz=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})(),Xb=class extends rB{constructor(e,A,i){super(ik(A),nk(i,A)),this.controls=e,this._initObservables(),this._setUpdateStrategy(A),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(e){return this.controls[this._adjustIndex(e)]}push(e,A={}){this.controls.push(e),this._registerControl(e),this.updateValueAndValidity({emitEvent:A.emitEvent}),this._onCollectionChange()}insert(e,A,i={}){this.controls.splice(e,0,A),this._registerControl(A),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(e,A={}){let i=this._adjustIndex(e);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:A.emitEvent})}setControl(e,A,i={}){let n=this._adjustIndex(e);n<0&&(n=0),this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),this.controls.splice(n,1),A&&(this.controls.splice(n,0,A),this._registerControl(A)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(e,A={}){iz(this,!1,e),e.forEach((i,n)=>{tz(this,!1,n),this.at(n).setValue(i,{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A)}patchValue(e,A={}){e!=null&&(e.forEach((i,n)=>{this.at(n)&&this.at(n).patchValue(i,{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A))}reset(e=[],A={}){this._forEachChild((i,n)=>{i.reset(e[n],{onlySelf:!0,emitEvent:A.emitEvent})}),this._updatePristine(A,this),this._updateTouched(A,this),this.updateValueAndValidity(A)}getRawValue(){return this.controls.map(e=>e.getRawValue())}clear(e={}){this.controls.length<1||(this._forEachChild(A=>A._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:e.emitEvent}))}_adjustIndex(e){return e<0?e+this.length:e}_syncPendingControls(){let e=this.controls.reduce((A,i)=>i._syncPendingControls()?!0:A,!1);return e&&this.updateValueAndValidity({onlySelf:!0}),e}_forEachChild(e){this.controls.forEach((A,i)=>{e(A,i)})}_updateValue(){this.value=this.controls.filter(e=>e.enabled||this.disabled).map(e=>e.value)}_anyControls(e){return this.controls.some(A=>A.enabled&&e(A))}_setUpControls(){this._forEachChild(e=>this._registerControl(e))}_allControlsDisabled(){for(let e of this.controls)if(e.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(e){e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)}_find(e){return this.at(e)??null}};function HO(t){return!!t&&(t.asyncValidators!==void 0||t.validators!==void 0||t.updateOn!==void 0)}var gz=(()=>{class t{useNonNullable=!1;get nonNullable(){let A=new t;return A.useNonNullable=!0,A}group(A,i=null){let n=this._reduceControls(A),o={};return HO(i)?o=i:i!==null&&(o.validators=i.validator,o.asyncValidators=i.asyncValidator),new sB(n,o)}record(A,i=null){let n=this._reduceControls(A);return new Wb(n,i)}control(A,i,n){let o={};return this.useNonNullable?(HO(i)?o=i:(o.validators=i,o.asyncValidators=n),new y0(A,Fe(sA({},o),{nonNullable:!0}))):new y0(A,i,n)}array(A,i,n){let o=A.map(r=>this._createControl(r));return new Xb(o,i,n)}_reduceControls(A){let i={};return Object.keys(A).forEach(n=>{i[n]=this._createControl(A[n])}),i}_createControl(A){if(A instanceof y0)return A;if(A instanceof rB)return A;if(Array.isArray(A)){let i=A[0],n=A.length>1?A[1]:null,o=A.length>2?A[2]:null;return this.control(i,n,o)}else return this.control(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Mr=(()=>{class t{static withConfig(A){return{ngModule:t,providers:[{provide:aB,useValue:A.callSetDisabledState??Wp}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[cz]})}return t})(),cB=(()=>{class t{static withConfig(A){return{ngModule:t,providers:[{provide:ak,useValue:A.warnOnNgModelWithFormControl??"always"},{provide:aB,useValue:A.callSetDisabledState??Wp}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[cz]})}return t})();var Ik;try{Ik=typeof Intl<"u"&&Intl.v8BreakIterator}catch{Ik=!1}var ni=(()=>{class t{_platformId=f(El);isBrowser=this._platformId?ul(this._platformId):typeof document=="object"&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!!(window.chrome||Ik)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var gB,lz=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function Ck(){if(gB)return gB;if(typeof document!="object"||!document)return gB=new Set(lz),gB;let t=document.createElement("input");return gB=new Set(lz.filter(e=>(t.setAttribute("type",e),t.type===e))),gB}var nh;function xEA(){if(nh==null&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>nh=!0}))}finally{nh=nh||!1}return nh}function Sc(t){return xEA()?t:!!t.capture}var hg=function(t){return t[t.NORMAL=0]="NORMAL",t[t.NEGATED=1]="NEGATED",t[t.INVERTED=2]="INVERTED",t}(hg||{}),Xp,TI;function $p(){if(TI==null){if(typeof document!="object"||!document||typeof Element!="function"||!Element)return TI=!1,TI;if("scrollBehavior"in document.documentElement.style)TI=!0;else{let t=Element.prototype.scrollTo;t?TI=!/\{\s*\[native code\]\s*\}/.test(t.toString()):TI=!1}}return TI}function lB(){if(typeof document!="object"||!document)return hg.NORMAL;if(Xp==null){let t=document.createElement("div"),e=t.style;t.dir="rtl",e.width="1px",e.overflow="auto",e.visibility="hidden",e.pointerEvents="none",e.position="absolute";let A=document.createElement("div"),i=A.style;i.width="2px",i.height="1px",t.appendChild(A),document.body.appendChild(t),Xp=hg.NORMAL,t.scrollLeft===0&&(t.scrollLeft=1,Xp=t.scrollLeft===0?hg.NEGATED:hg.INVERTED),t.remove()}return Xp}var lk;function NEA(){if(lk==null){let t=typeof document<"u"?document.head:null;lk=!!(t&&(t.createShadowRoot||t.attachShadow))}return lk}function Iz(t){if(NEA()){let e=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&e instanceof ShadowRoot)return e}return null}function IB(){let t=typeof document<"u"&&document?document.activeElement:null;for(;t&&t.shadowRoot;){let e=t.shadowRoot.activeElement;if(e===t)break;t=e}return t}function ic(t){return t.composedPath?t.composedPath()[0]:t.target}function dk(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}function Bk(t,e,A,i,n){let o=parseInt(Nb.major),r=parseInt(Nb.minor);return o>19||o===19&&r>0||o===0&&r===0?t.listen(e,A,i,n):(e.addEventListener(A,i,n),()=>{e.removeEventListener(A,i,n)})}var A6=new WeakMap,Pn=(()=>{class t{_appRef;_injector=f(Zt);_environmentInjector=f(vr);load(A){let i=this._appRef=this._appRef||this._injector.get(Ca),n=A6.get(i);n||(n={loaders:new Set,refs:[]},A6.set(i,n),i.onDestroy(()=>{A6.get(i)?.refs.forEach(o=>o.destroy()),A6.delete(i)})),n.loaders.has(A)||(n.loaders.add(A),n.refs.push(vp(A,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),oh=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],exportAs:["cdkVisuallyHidden"],decls:0,vars:0,template:function(i,n){},styles:[".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}"],encapsulation:2,changeDetection:0})}return t})();function sr(t,...e){return e.length?e.some(A=>t[A]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}function Ar(t){return t!=null&&`${t}`!="false"}function Zs(t,e=0){return Ek(t)?Number(t):arguments.length===2?e:0}function Ek(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}function CB(t){return Array.isArray(t)?t:[t]}function hr(t){return t==null?"":typeof t=="string"?t:`${t}px`}function fa(t){return t instanceof se?t.nativeElement:t}function FEA(t){if(t.type==="characterData"&&t.target instanceof Comment)return!0;if(t.type==="childList"){for(let e=0;e{class t{create(A){return typeof MutationObserver>"u"?null:new MutationObserver(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),dz=(()=>{class t{_mutationObserverFactory=f(Cz);_observedElements=new Map;_ngZone=f(ye);constructor(){}ngOnDestroy(){this._observedElements.forEach((A,i)=>this._cleanupObserver(i))}observe(A){let i=fa(A);return new gt(n=>{let r=this._observeElement(i).pipe(je(s=>s.filter(a=>!FEA(a))),Nt(s=>!!s.length)).subscribe(s=>{this._ngZone.run(()=>{n.next(s)})});return()=>{r.unsubscribe(),this._unobserveElement(i)}})}_observeElement(A){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(A))this._observedElements.get(A).count++;else{let i=new qA,n=this._mutationObserverFactory.create(o=>i.next(o));n&&n.observe(A,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(A,{observer:n,stream:i,count:1})}return this._observedElements.get(A).stream})}_unobserveElement(A){this._observedElements.has(A)&&(this._observedElements.get(A).count--,this._observedElements.get(A).count||this._cleanupObserver(A))}_cleanupObserver(A){if(this._observedElements.has(A)){let{observer:i,stream:n}=this._observedElements.get(A);i&&i.disconnect(),n.complete(),this._observedElements.delete(A)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),e6=(()=>{class t{_contentObserver=f(dz);_elementRef=f(se);event=new YA;get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._disabled?this._unsubscribe():this._subscribe()}_disabled=!1;get debounce(){return this._debounce}set debounce(A){this._debounce=Zs(A),this._subscribe()}_debounce;_currentSubscription=null;constructor(){}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();let A=this._contentObserver.observe(this._elementRef);this._currentSubscription=(this.debounce?A.pipe(ag(this.debounce)):A).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",ge],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}return t})(),rh=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[Cz]})}return t})();var Bz=new Set,HI,_EA=(()=>{class t{_platform=f(ni);_nonce=f(bu,{optional:!0});_matchMedia;constructor(){this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):KEA}matchMedia(A){return(this._platform.WEBKIT||this._platform.BLINK)&&GEA(A,this._nonce),this._matchMedia(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function GEA(t,e){if(!Bz.has(t))try{HI||(HI=document.createElement("style"),e&&HI.setAttribute("nonce",e),HI.setAttribute("type","text/css"),document.head.appendChild(HI)),HI.sheet&&(HI.sheet.insertRule(`@media ${t} {body{ }}`,0),Bz.add(t))}catch(A){console.error(A)}}function KEA(t){return{matches:t==="all"||t==="",media:t,addListener:()=>{},removeListener:()=>{}}}var t6=(()=>{class t{_mediaMatcher=f(_EA);_zone=f(ye);_queries=new Map;_destroySubject=new qA;constructor(){}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(A){return Ez(CB(A)).some(n=>this._registerQuery(n).mql.matches)}observe(A){let n=Ez(CB(A)).map(r=>this._registerQuery(r).observable),o=ga(n);return o=Q2(o.pipe(Xn(1)),o.pipe(mI(1),ag(0))),o.pipe(je(r=>{let s={matches:!1,breakpoints:{}};return r.forEach(({matches:a,query:c})=>{s.matches=s.matches||a,s.breakpoints[c]=a}),s}))}_registerQuery(A){if(this._queries.has(A))return this._queries.get(A);let i=this._mediaMatcher.matchMedia(A),o={observable:new gt(r=>{let s=a=>this._zone.run(()=>r.next(a));return i.addListener(s),()=>{i.removeListener(s)}}).pipe(On(i),je(({matches:r})=>({query:A,matches:r})),kt(this._destroySubject)),mql:i};return this._queries.set(A,o),o}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Ez(t){return t.map(e=>e.split(",")).reduce((e,A)=>e.concat(A)).map(e=>e.trim())}var Qz={XSmall:"(max-width: 599.98px)",Small:"(min-width: 600px) and (max-width: 959.98px)",Medium:"(min-width: 960px) and (max-width: 1279.98px)",Large:"(min-width: 1280px) and (max-width: 1919.98px)",XLarge:"(min-width: 1920px)",Handset:"(max-width: 599.98px) and (orientation: portrait), (max-width: 959.98px) and (orientation: landscape)",Tablet:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), (min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",Web:"(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)",HandsetPortrait:"(max-width: 599.98px) and (orientation: portrait)",TabletPortrait:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)",WebPortrait:"(min-width: 840px) and (orientation: portrait)",HandsetLandscape:"(max-width: 959.98px) and (orientation: landscape)",TabletLandscape:"(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",WebLandscape:"(min-width: 1280px) and (orientation: landscape)"};var pz=" ";function wk(t,e,A){let i=r6(t,e);A=A.trim(),!i.some(n=>n.trim()===A)&&(i.push(A),t.setAttribute(e,i.join(pz)))}function c6(t,e,A){let i=r6(t,e);A=A.trim();let n=i.filter(o=>o!==A);n.length?t.setAttribute(e,n.join(pz)):t.removeAttribute(e)}function r6(t,e){return t.getAttribute(e)?.match(/\S+/g)??[]}var Dz="cdk-describedby-message",i6="cdk-describedby-host",fk=0,wz=(()=>{class t{_platform=f(ni);_document=f(at);_messageRegistry=new Map;_messagesContainer=null;_id=`${fk++}`;constructor(){f(Pn).load(oh),this._id=f(Vd)+"-"+fk++}describe(A,i,n){if(!this._canBeDescribed(A,i))return;let o=Qk(i,n);typeof i!="string"?(uz(i,this._id),this._messageRegistry.set(o,{messageElement:i,referenceCount:0})):this._messageRegistry.has(o)||this._createMessageElement(i,n),this._isElementDescribedByMessage(A,o)||this._addMessageReference(A,o)}removeDescription(A,i,n){if(!i||!this._isElementNode(A))return;let o=Qk(i,n);if(this._isElementDescribedByMessage(A,o)&&this._removeMessageReference(A,o),typeof i=="string"){let r=this._messageRegistry.get(o);r&&r.referenceCount===0&&this._deleteMessageElement(o)}this._messagesContainer?.childNodes.length===0&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){let A=this._document.querySelectorAll(`[${i6}="${this._id}"]`);for(let i=0;in.indexOf(Dz)!=0);A.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(A,i){let n=this._messageRegistry.get(i);wk(A,"aria-describedby",n.messageElement.id),A.setAttribute(i6,this._id),n.referenceCount++}_removeMessageReference(A,i){let n=this._messageRegistry.get(i);n.referenceCount--,c6(A,"aria-describedby",n.messageElement.id),A.removeAttribute(i6)}_isElementDescribedByMessage(A,i){let n=r6(A,"aria-describedby"),o=this._messageRegistry.get(i),r=o&&o.messageElement.id;return!!r&&n.indexOf(r)!=-1}_canBeDescribed(A,i){if(!this._isElementNode(A))return!1;if(i&&typeof i=="object")return!0;let n=i==null?"":`${i}`.trim(),o=A.getAttribute("aria-label");return n?!o||o.trim()!==n:!1}_isElementNode(A){return A.nodeType===this._document.ELEMENT_NODE}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Qk(t,e){return typeof t=="string"?`${e||""}/${t}`:t}function uz(t,e){t.id||(t.id=`${Dz}-${e}-${fk++}`)}var XEA=200,mk=class{_letterKeyStream=new qA;_items=[];_selectedItemIndex=-1;_pressedLetters=[];_skipPredicateFn;_selectedItem=new qA;selectedItem=this._selectedItem;constructor(e,A){let i=typeof A?.debounceInterval=="number"?A.debounceInterval:XEA;A?.skipPredicate&&(this._skipPredicateFn=A.skipPredicate),this.setItems(e),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(e){this._selectedItemIndex=e}setItems(e){this._items=e}handleKey(e){let A=e.keyCode;e.key&&e.key.length===1?this._letterKeyStream.next(e.key.toLocaleUpperCase()):(A>=65&&A<=90||A>=48&&A<=57)&&this._letterKeyStream.next(String.fromCharCode(A))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(e){this._letterKeyStream.pipe(So(A=>this._pressedLetters.push(A)),ag(e),Nt(()=>this._pressedLetters.length>0),je(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(A=>{for(let i=1;ie.disabled;constructor(e,A){this._items=e,e instanceof qa?this._itemChangesSubscription=e.changes.subscribe(i=>this._itemsChanged(i.toArray())):v2(e)&&(this._effectRef=Ku(()=>this._itemsChanged(e()),{injector:A}))}tabOut=new qA;change=new qA;skipPredicate(e){return this._skipPredicateFn=e,this}withWrap(e=!0){return this._wrap=e,this}withVerticalOrientation(e=!0){return this._vertical=e,this}withHorizontalOrientation(e){return this._horizontal=e,this}withAllowedModifierKeys(e){return this._allowedModifierKeys=e,this}withTypeAhead(e=200){this._typeaheadSubscription.unsubscribe();let A=this._getItemsArray();return this._typeahead=new mk(A,{debounceInterval:typeof e=="number"?e:void 0,skipPredicate:i=>this._skipPredicateFn(i)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(i=>{this.setActiveItem(i)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(e=!0){return this._homeAndEnd=e,this}withPageUpDown(e=!0,A=10){return this._pageUpAndDown={enabled:e,delta:A},this}setActiveItem(e){let A=this._activeItem();this.updateActiveItem(e),this._activeItem()!==A&&this.change.next(this._activeItemIndex)}onKeydown(e){let A=e.keyCode,n=["altKey","ctrlKey","metaKey","shiftKey"].every(o=>!e[o]||this._allowedModifierKeys.indexOf(o)>-1);switch(A){case 9:this.tabOut.next();return;case 40:if(this._vertical&&n){this.setNextItemActive();break}else return;case 38:if(this._vertical&&n){this.setPreviousItemActive();break}else return;case 39:if(this._horizontal&&n){this._horizontal==="rtl"?this.setPreviousItemActive():this.setNextItemActive();break}else return;case 37:if(this._horizontal&&n){this._horizontal==="rtl"?this.setNextItemActive():this.setPreviousItemActive();break}else return;case 36:if(this._homeAndEnd&&n){this.setFirstItemActive();break}else return;case 35:if(this._homeAndEnd&&n){this.setLastItemActive();break}else return;case 33:if(this._pageUpAndDown.enabled&&n){let o=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(o>0?o:0,1);break}else return;case 34:if(this._pageUpAndDown.enabled&&n){let o=this._activeItemIndex+this._pageUpAndDown.delta,r=this._getItemsArray().length;this._setActiveItemByIndex(o-1&&i!==this._activeItemIndex&&(this._activeItemIndex=i,this._typeahead?.setCurrentSelectedItemIndex(i))}}},a6=class extends s6{setActiveItem(e){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(e),this.activeItem&&this.activeItem.setActiveStyles()}},zI=class extends s6{_origin="program";setFocusOrigin(e){return this._origin=e,this}setActiveItem(e){super.setActiveItem(e),this.activeItem&&this.activeItem.focus(this._origin)}};var sh=(()=>{class t{_platform=f(ni);constructor(){}isDisabled(A){return A.hasAttribute("disabled")}isVisible(A){return AQA(A)&&getComputedStyle(A).visibility==="visible"}isTabbable(A){if(!this._platform.isBrowser)return!1;let i=$EA(aQA(A));if(i&&(hz(i)===-1||!this.isVisible(i)))return!1;let n=A.nodeName.toLowerCase(),o=hz(A);return A.hasAttribute("contenteditable")?o!==-1:n==="iframe"||n==="object"||this._platform.WEBKIT&&this._platform.IOS&&!rQA(A)?!1:n==="audio"?A.hasAttribute("controls")?o!==-1:!1:n==="video"?o===-1?!1:o!==null?!0:this._platform.FIREFOX||A.hasAttribute("controls"):A.tabIndex>=0}isFocusable(A,i){return sQA(A)&&!this.isDisabled(A)&&(i?.ignoreVisibility||this.isVisible(A))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $EA(t){try{return t.frameElement}catch{return null}}function AQA(t){return!!(t.offsetWidth||t.offsetHeight||typeof t.getClientRects=="function"&&t.getClientRects().length)}function eQA(t){let e=t.nodeName.toLowerCase();return e==="input"||e==="select"||e==="button"||e==="textarea"}function tQA(t){return nQA(t)&&t.type=="hidden"}function iQA(t){return oQA(t)&&t.hasAttribute("href")}function nQA(t){return t.nodeName.toLowerCase()=="input"}function oQA(t){return t.nodeName.toLowerCase()=="a"}function yz(t){if(!t.hasAttribute("tabindex")||t.tabIndex===void 0)return!1;let e=t.getAttribute("tabindex");return!!(e&&!isNaN(parseInt(e,10)))}function hz(t){if(!yz(t))return null;let e=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(e)?-1:e}function rQA(t){let e=t.nodeName.toLowerCase(),A=e==="input"&&t.type;return A==="text"||A==="password"||e==="select"||e==="textarea"}function sQA(t){return tQA(t)?!1:eQA(t)||iQA(t)||t.hasAttribute("contenteditable")||yz(t)}function aQA(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}var pk=class{_element;_checker;_ngZone;_document;_injector;_startAnchor;_endAnchor;_hasAttached=!1;startAnchorListener=()=>this.focusLastTabbableElement();endAnchorListener=()=>this.focusFirstTabbableElement();get enabled(){return this._enabled}set enabled(e){this._enabled=e,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}_enabled=!0;constructor(e,A,i,n,o=!1,r){this._element=e,this._checker=A,this._ngZone=i,this._document=n,this._injector=r,o||this.attachAnchors()}destroy(){let e=this._startAnchor,A=this._endAnchor;e&&(e.removeEventListener("focus",this.startAnchorListener),e.remove()),A&&(A.removeEventListener("focus",this.endAnchorListener),A.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return this._hasAttached?!0:(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(e){return new Promise(A=>{this._executeOnStable(()=>A(this.focusInitialElement(e)))})}focusFirstTabbableElementWhenReady(e){return new Promise(A=>{this._executeOnStable(()=>A(this.focusFirstTabbableElement(e)))})}focusLastTabbableElementWhenReady(e){return new Promise(A=>{this._executeOnStable(()=>A(this.focusLastTabbableElement(e)))})}_getRegionBoundary(e){let A=this._element.querySelectorAll(`[cdk-focus-region-${e}], [cdkFocusRegion${e}], [cdk-focus-${e}]`);return e=="start"?A.length?A[0]:this._getFirstTabbableElement(this._element):A.length?A[A.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(e){let A=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(A){if(!this._checker.isFocusable(A)){let i=this._getFirstTabbableElement(A);return i?.focus(e),!!i}return A.focus(e),!0}return this.focusFirstTabbableElement(e)}focusFirstTabbableElement(e){let A=this._getRegionBoundary("start");return A&&A.focus(e),!!A}focusLastTabbableElement(e){let A=this._getRegionBoundary("end");return A&&A.focus(e),!!A}hasAttached(){return this._hasAttached}_getFirstTabbableElement(e){if(this._checker.isFocusable(e)&&this._checker.isTabbable(e))return e;let A=e.children;for(let i=0;i=0;i--){let n=A[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(A[i]):null;if(n)return n}return null}_createAnchor(){let e=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,e),e.classList.add("cdk-visually-hidden"),e.classList.add("cdk-focus-trap-anchor"),e.setAttribute("aria-hidden","true"),e}_toggleAnchorTabIndex(e,A){e?A.setAttribute("tabindex","0"):A.removeAttribute("tabindex")}toggleAnchors(e){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}_executeOnStable(e){this._injector?Ir(e,{injector:this._injector}):setTimeout(e)}},g6=(()=>{class t{_checker=f(sh);_ngZone=f(ye);_document=f(at);_injector=f(Zt);constructor(){f(Pn).load(oh)}create(A,i=!1){return new pk(A,this._checker,this._ngZone,this._document,i,this._injector)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function ah(t){return t.buttons===0||t.detail===0}function ch(t){let e=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!!e&&e.identifier===-1&&(e.radiusX==null||e.radiusX===1)&&(e.radiusY==null||e.radiusY===1)}var cQA=new eA("cdk-input-modality-detector-options"),gQA={ignoreKeys:[18,17,224,91,16]},vz=650,dB=Sc({passive:!0,capture:!0}),lQA=(()=>{class t{_platform=f(ni);modalityDetected;modalityChanged;get mostRecentModality(){return this._modality.value}_mostRecentTarget=null;_modality=new Fi(null);_options;_lastTouchMs=0;_onKeydown=A=>{this._options?.ignoreKeys?.some(i=>i===A.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=ic(A))};_onMousedown=A=>{Date.now()-this._lastTouchMs{if(ch(A)){this._modality.next("keyboard");return}this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=ic(A)};constructor(){let A=f(ye),i=f(at),n=f(cQA,{optional:!0});this._options=sA(sA({},gQA),n),this.modalityDetected=this._modality.pipe(mI(1)),this.modalityChanged=this.modalityDetected.pipe(il()),this._platform.isBrowser&&A.runOutsideAngular(()=>{i.addEventListener("keydown",this._onKeydown,dB),i.addEventListener("mousedown",this._onMousedown,dB),i.addEventListener("touchstart",this._onTouchstart,dB)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,dB),document.removeEventListener("mousedown",this._onMousedown,dB),document.removeEventListener("touchstart",this._onTouchstart,dB))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),IQA=new eA("liveAnnouncerElement",{providedIn:"root",factory:CQA});function CQA(){return null}var dQA=new eA("LIVE_ANNOUNCER_DEFAULT_OPTIONS"),BQA=0,l6=(()=>{class t{_ngZone=f(ye);_defaultOptions=f(dQA,{optional:!0});_liveElement;_document=f(at);_previousTimeout;_currentPromise;_currentResolve;constructor(){let A=f(IQA,{optional:!0});this._liveElement=A||this._createLiveElement()}announce(A,...i){let n=this._defaultOptions,o,r;return i.length===1&&typeof i[0]=="number"?r=i[0]:[o,r]=i,this.clear(),clearTimeout(this._previousTimeout),o||(o=n&&n.politeness?n.politeness:"polite"),r==null&&n&&(r=n.duration),this._liveElement.setAttribute("aria-live",o),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(s=>this._currentResolve=s)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=A,typeof r=="number"&&(this._previousTimeout=setTimeout(()=>this.clear(),r)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){let A="cdk-live-announcer-element",i=this._document.getElementsByClassName(A),n=this._document.createElement("div");for(let o=0;o .cdk-overlay-container [aria-modal="true"]');for(let n=0;n{class t{_ngZone=f(ye);_platform=f(ni);_inputModalityDetector=f(lQA);_origin=null;_lastFocusOrigin;_windowFocused=!1;_windowFocusTimeoutId;_originTimeoutId;_originFromTouchInteraction=!1;_elementInfo=new Map;_monitoredElementCount=0;_rootNodeFocusListenerCount=new Map;_detectionMode;_windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)};_document=f(at,{optional:!0});_stopInputModalityDetector=new qA;constructor(){let A=f(EQA,{optional:!0});this._detectionMode=A?.detectionMode||o6.IMMEDIATE}_rootNodeFocusAndBlurListener=A=>{let i=ic(A);for(let n=i;n;n=n.parentElement)A.type==="focus"?this._onFocus(A,n):this._onBlur(A,n)};monitor(A,i=!1){let n=fa(A);if(!this._platform.isBrowser||n.nodeType!==1)return Ce();let o=Iz(n)||this._getDocument(),r=this._elementInfo.get(n);if(r)return i&&(r.checkChildren=!0),r.subject;let s={checkChildren:i,subject:new qA,rootNode:o};return this._elementInfo.set(n,s),this._registerGlobalListeners(s),s.subject}stopMonitoring(A){let i=fa(A),n=this._elementInfo.get(i);n&&(n.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(n))}focusVia(A,i,n){let o=fa(A),r=this._getDocument().activeElement;o===r?this._getClosestElementsInfo(o).forEach(([s,a])=>this._originChanged(s,i,a)):(this._setOrigin(i),typeof o.focus=="function"&&o.focus(n))}ngOnDestroy(){this._elementInfo.forEach((A,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(A){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(A)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:A&&this._isLastInteractionFromInputLabel(A)?"mouse":"program"}_shouldBeAttributedToTouch(A){return this._detectionMode===o6.EVENTUAL||!!A?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(A,i){A.classList.toggle("cdk-focused",!!i),A.classList.toggle("cdk-touch-focused",i==="touch"),A.classList.toggle("cdk-keyboard-focused",i==="keyboard"),A.classList.toggle("cdk-mouse-focused",i==="mouse"),A.classList.toggle("cdk-program-focused",i==="program")}_setOrigin(A,i=!1){this._ngZone.runOutsideAngular(()=>{if(this._origin=A,this._originFromTouchInteraction=A==="touch"&&i,this._detectionMode===o6.IMMEDIATE){clearTimeout(this._originTimeoutId);let n=this._originFromTouchInteraction?vz:1;this._originTimeoutId=setTimeout(()=>this._origin=null,n)}})}_onFocus(A,i){let n=this._elementInfo.get(i),o=ic(A);!n||!n.checkChildren&&i!==o||this._originChanged(i,this._getFocusOrigin(o),n)}_onBlur(A,i){let n=this._elementInfo.get(i);!n||n.checkChildren&&A.relatedTarget instanceof Node&&i.contains(A.relatedTarget)||(this._setClasses(i),this._emitOrigin(n,null))}_emitOrigin(A,i){A.subject.observers.length&&this._ngZone.run(()=>A.subject.next(i))}_registerGlobalListeners(A){if(!this._platform.isBrowser)return;let i=A.rootNode,n=this._rootNodeFocusListenerCount.get(i)||0;n||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,n6),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,n6)}),this._rootNodeFocusListenerCount.set(i,n+1),++this._monitoredElementCount===1&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(kt(this._stopInputModalityDetector)).subscribe(o=>{this._setOrigin(o,!0)}))}_removeGlobalListeners(A){let i=A.rootNode;if(this._rootNodeFocusListenerCount.has(i)){let n=this._rootNodeFocusListenerCount.get(i);n>1?this._rootNodeFocusListenerCount.set(i,n-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,n6),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,n6),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(A,i,n){this._setClasses(A,i),this._emitOrigin(n,i),this._lastFocusOrigin=i}_getClosestElementsInfo(A){let i=[];return this._elementInfo.forEach((n,o)=>{(o===A||n.checkChildren&&o.contains(A))&&i.push([o,n])}),i}_isLastInteractionFromInputLabel(A){let{_mostRecentTarget:i,mostRecentModality:n}=this._inputModalityDetector;if(n!=="mouse"||!i||i===A||A.nodeName!=="INPUT"&&A.nodeName!=="TEXTAREA"||A.disabled)return!1;let o=A.labels;if(o){for(let r=0;r{class t{_elementRef=f(se);_focusMonitor=f(Jr);_monitorSubscription;_focusOrigin=null;cdkFocusChange=new YA;constructor(){}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){let A=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(A,A.nodeType===1&&A.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return t})(),OI=function(t){return t[t.NONE=0]="NONE",t[t.BLACK_ON_WHITE=1]="BLACK_ON_WHITE",t[t.WHITE_ON_BLACK=2]="WHITE_ON_BLACK",t}(OI||{}),fz="cdk-high-contrast-black-on-white",mz="cdk-high-contrast-white-on-black",uk="cdk-high-contrast-active",yk=(()=>{class t{_platform=f(ni);_hasCheckedHighContrastMode;_document=f(at);_breakpointSubscription;constructor(){this._breakpointSubscription=f(t6).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return OI.NONE;let A=this._document.createElement("div");A.style.backgroundColor="rgb(1,2,3)",A.style.position="absolute",this._document.body.appendChild(A);let i=this._document.defaultView||window,n=i&&i.getComputedStyle?i.getComputedStyle(A):null,o=(n&&n.backgroundColor||"").replace(/ /g,"");switch(A.remove(),o){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return OI.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return OI.BLACK_ON_WHITE}return OI.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){let A=this._document.body.classList;A.remove(uk,fz,mz),this._hasCheckedHighContrastMode=!0;let i=this.getHighContrastMode();i===OI.BLACK_ON_WHITE?A.add(uk,fz):i===OI.WHITE_ON_BLACK&&A.add(uk,mz)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),vk=(()=>{class t{constructor(){f(yk)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[rh]})}return t})(),hk={},an=(()=>{class t{_appId=f(Vd);getId(A){return this._appId!=="ng"&&(A+=this._appId),hk.hasOwnProperty(A)||(hk[A]=0),`${A}${hk[A]++}`}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var QQA=new eA("cdk-dir-doc",{providedIn:"root",factory:uQA});function uQA(){return f(at)}var hQA=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;function fQA(t){let e=t?.toLowerCase()||"";return e==="auto"&&typeof navigator<"u"&&navigator?.language?hQA.test(navigator.language)?"rtl":"ltr":e==="rtl"?"rtl":"ltr"}var po=(()=>{class t{value="ltr";change=new YA;constructor(){let A=f(QQA,{optional:!0});if(A){let i=A.body?A.body.dir:null,n=A.documentElement?A.documentElement.dir:null;this.value=fQA(i||n||"ltr")}}ngOnDestroy(){this.change.complete()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var G2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();var mQA=["text"],pQA=[[["mat-icon"]],"*"],DQA=["mat-icon","*"];function wQA(t,e){if(t&1&&TA(0,"mat-pseudo-checkbox",1),t&2){let A=Y();yA("disabled",A.disabled)("state",A.selected?"checked":"unchecked")}}function yQA(t,e){if(t&1&&TA(0,"mat-pseudo-checkbox",3),t&2){let A=Y();yA("disabled",A.disabled)}}function vQA(t,e){if(t&1&&(S(0,"span",4),AA(1),N()),t&2){let A=Y();_(),It("(",A.group.label,")")}}var MQA=["mat-internal-form-field",""],bQA=["*"];var pn=(()=>{class t{constructor(){f(yk)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[G2,G2]})}return t})(),BB=class{_defaultMatcher;ngControl;_parentFormGroup;_parentForm;_stateChanges;errorState=!1;matcher;constructor(e,A,i,n,o){this._defaultMatcher=e,this.ngControl=A,this._parentFormGroup=i,this._parentForm=n,this._stateChanges=o}updateErrorState(){let e=this.errorState,A=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,n=this.ngControl?this.ngControl.control:null,o=i?.isErrorState(n,A)??!1;o!==e&&(this.errorState=o,this._stateChanges.next())}};var d6=(()=>{class t{isErrorState(A,i){return!!(A&&A.invalid&&(A.touched||i&&i.submitted))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Yr=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["structural-styles"]],decls:0,vars:0,template:function(i,n){},styles:['.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}'],encapsulation:2,changeDetection:0})}return t})();var Ws=function(t){return t[t.FADING_IN=0]="FADING_IN",t[t.VISIBLE=1]="VISIBLE",t[t.FADING_OUT=2]="FADING_OUT",t[t.HIDDEN=3]="HIDDEN",t}(Ws||{}),kk=class{_renderer;element;config;_animationForciblyDisabledThroughCss;state=Ws.HIDDEN;constructor(e,A,i,n=!1){this._renderer=e,this.element=A,this.config=i,this._animationForciblyDisabledThroughCss=n}fadeOut(){this._renderer.fadeOutRipple(this)}},bz=Sc({passive:!0,capture:!0}),Sk=class{_events=new Map;addHandler(e,A,i,n){let o=this._events.get(A);if(o){let r=o.get(i);r?r.add(n):o.set(i,new Set([n]))}else this._events.set(A,new Map([[i,new Set([n])]])),e.runOutsideAngular(()=>{document.addEventListener(A,this._delegateEventHandler,bz)})}removeHandler(e,A,i){let n=this._events.get(e);if(!n)return;let o=n.get(A);o&&(o.delete(i),o.size===0&&n.delete(A),n.size===0&&(this._events.delete(e),document.removeEventListener(e,this._delegateEventHandler,bz)))}_delegateEventHandler=e=>{let A=ic(e);A&&this._events.get(e.type)?.forEach((i,n)=>{(n===A||n.contains(A))&&i.forEach(o=>o.handleEvent(e))})}},C6={enterDuration:225,exitDuration:150},kQA=800,kz=Sc({passive:!0,capture:!0}),Sz=["mousedown","touchstart"],Rz=["mouseup","mouseleave","touchend","touchcancel"],SQA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],hostAttrs:["mat-ripple-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:[".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}"],encapsulation:2,changeDetection:0})}return t})(),EB=class t{_target;_ngZone;_platform;_containerElement;_triggerElement;_isPointerDown=!1;_activeRipples=new Map;_mostRecentTransientRipple;_lastTouchStartEvent;_pointerUpEventsRegistered=!1;_containerRect;static _eventManager=new Sk;constructor(e,A,i,n,o){this._target=e,this._ngZone=A,this._platform=n,n.isBrowser&&(this._containerElement=fa(i)),o&&o.get(Pn).load(SQA)}fadeInRipple(e,A,i={}){let n=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),o=sA(sA({},C6),i.animation);i.centered&&(e=n.left+n.width/2,A=n.top+n.height/2);let r=i.radius||RQA(e,A,n),s=e-n.left,a=A-n.top,c=o.enterDuration,g=document.createElement("div");g.classList.add("mat-ripple-element"),g.style.left=`${s-r}px`,g.style.top=`${a-r}px`,g.style.height=`${r*2}px`,g.style.width=`${r*2}px`,i.color!=null&&(g.style.backgroundColor=i.color),g.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(g);let I=window.getComputedStyle(g),C=I.transitionProperty,d=I.transitionDuration,B=C==="none"||d==="0s"||d==="0s, 0s"||n.width===0&&n.height===0,E=new kk(this,g,i,B);g.style.transform="scale3d(1, 1, 1)",E.state=Ws.FADING_IN,i.persistent||(this._mostRecentTransientRipple=E);let u=null;return!B&&(c||o.exitDuration)&&this._ngZone.runOutsideAngular(()=>{let h=()=>{u&&(u.fallbackTimer=null),clearTimeout(x),this._finishRippleTransition(E)},w=()=>this._destroyRipple(E),x=setTimeout(w,c+100);g.addEventListener("transitionend",h),g.addEventListener("transitioncancel",w),u={onTransitionEnd:h,onTransitionCancel:w,fallbackTimer:x}}),this._activeRipples.set(E,u),(B||!c)&&this._finishRippleTransition(E),E}fadeOutRipple(e){if(e.state===Ws.FADING_OUT||e.state===Ws.HIDDEN)return;let A=e.element,i=sA(sA({},C6),e.config.animation);A.style.transitionDuration=`${i.exitDuration}ms`,A.style.opacity="0",e.state=Ws.FADING_OUT,(e._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(e)}fadeOutAll(){this._getActiveRipples().forEach(e=>e.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(e=>{e.config.persistent||e.fadeOut()})}setupTriggerEvents(e){let A=fa(e);!this._platform.isBrowser||!A||A===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=A,Sz.forEach(i=>{t._eventManager.addHandler(this._ngZone,i,A,this)}))}handleEvent(e){e.type==="mousedown"?this._onMousedown(e):e.type==="touchstart"?this._onTouchStart(e):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{Rz.forEach(A=>{this._triggerElement.addEventListener(A,this,kz)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(e){e.state===Ws.FADING_IN?this._startFadeOutTransition(e):e.state===Ws.FADING_OUT&&this._destroyRipple(e)}_startFadeOutTransition(e){let A=e===this._mostRecentTransientRipple,{persistent:i}=e.config;e.state=Ws.VISIBLE,!i&&(!A||!this._isPointerDown)&&e.fadeOut()}_destroyRipple(e){let A=this._activeRipples.get(e)??null;this._activeRipples.delete(e),this._activeRipples.size||(this._containerRect=null),e===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),e.state=Ws.HIDDEN,A!==null&&(e.element.removeEventListener("transitionend",A.onTransitionEnd),e.element.removeEventListener("transitioncancel",A.onTransitionCancel),A.fallbackTimer!==null&&clearTimeout(A.fallbackTimer)),e.element.remove()}_onMousedown(e){let A=ah(e),i=this._lastTouchStartEvent&&Date.now(){let A=e.state===Ws.VISIBLE||e.config.terminateOnPointerUp&&e.state===Ws.FADING_IN;!e.config.persistent&&A&&e.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){let e=this._triggerElement;e&&(Sz.forEach(A=>t._eventManager.removeHandler(A,e,this)),this._pointerUpEventsRegistered&&(Rz.forEach(A=>e.removeEventListener(A,this,kz)),this._pointerUpEventsRegistered=!1))}};function RQA(t,e,A){let i=Math.max(Math.abs(t-A.left),Math.abs(t-A.right)),n=Math.max(Math.abs(e-A.top),Math.abs(e-A.bottom));return Math.sqrt(i*i+n*n)}var ZI=new eA("mat-ripple-global-options"),Xs=(()=>{class t{_elementRef=f(se);_animationMode=f(_i,{optional:!0});color;unbounded;centered;radius=0;animation;get disabled(){return this._disabled}set disabled(A){A&&this.fadeOutAllNonPersistent(),this._disabled=A,this._setupTriggerEventsIfEnabled()}_disabled=!1;get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(A){this._trigger=A,this._setupTriggerEventsIfEnabled()}_trigger;_rippleRenderer;_globalOptions;_isInitialized=!1;constructor(){let A=f(ye),i=f(ni),n=f(ZI,{optional:!0}),o=f(Zt);this._globalOptions=n||{},this._rippleRenderer=new EB(this,A,this._elementRef,i,o)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:sA(sA(sA({},this._globalOptions.animation),this._animationMode==="NoopAnimations"?{enterDuration:0,exitDuration:0}:{}),this.animation),terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(A,i=0,n){return typeof A=="number"?this._rippleRenderer.fadeInRipple(A,i,sA(sA({},this.rippleConfig),n)):this._rippleRenderer.fadeInRipple(0,0,sA(sA({},this.rippleConfig),A))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,n){i&2&&he("mat-ripple-unbounded",n.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return t})(),WI=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,pn]})}return t})(),Lk=(()=>{class t{_animationMode=f(_i,{optional:!0});state="unchecked";disabled=!1;appearance="full";constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,n){i&2&&he("mat-pseudo-checkbox-indeterminate",n.state==="indeterminate")("mat-pseudo-checkbox-checked",n.state==="checked")("mat-pseudo-checkbox-disabled",n.disabled)("mat-pseudo-checkbox-minimal",n.appearance==="minimal")("mat-pseudo-checkbox-full",n.appearance==="full")("_mat-animation-noopable",n._animationMode==="NoopAnimations")},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(i,n){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-minimal-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-primary))}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full{border-color:var(--mat-full-pseudo-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-full-pseudo-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-full-pseudo-checkbox-selected-icon-color, var(--mat-sys-primary));border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-full-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-full-pseudo-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-full-pseudo-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}return t})();var xk=new eA("MAT_OPTION_PARENT_COMPONENT"),Nk=new eA("MatOptgroup");var Rk=class{source;isUserInput;constructor(e,A=!1){this.source=e,this.isUserInput=A}},K2=(()=>{class t{_element=f(se);_changeDetectorRef=f(Et);_parent=f(xk,{optional:!0});group=f(Nk,{optional:!0});_signalDisableRipple=!1;_selected=!1;_active=!1;_disabled=!1;_mostRecentViewValue="";get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}value;id=f(an).getId("mat-option-");get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(A){this._disabled=A}get disableRipple(){return this._signalDisableRipple?this._parent.disableRipple():!!this._parent?.disableRipple}get hideSingleSelectionIndicator(){return!!(this._parent&&this._parent.hideSingleSelectionIndicator)}onSelectionChange=new YA;_text;_stateChanges=new qA;constructor(){let A=f(Pn);A.load(Yr),A.load(oh),this._signalDisableRipple=!!this._parent&&v2(this._parent.disableRipple)}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(A=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),A&&this._emitSelectionChangeEvent())}deselect(A=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),A&&this._emitSelectionChangeEvent())}focus(A,i){let n=this._getHostElement();typeof n.focus=="function"&&n.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(A){(A.keyCode===13||A.keyCode===32)&&!sr(A)&&(this._selectViaInteraction(),A.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=this.multiple?!this._selected:!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){let A=this.viewValue;A!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=A)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(A=!1){this.onSelectionChange.emit(new Rk(this,A))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-option"]],viewQuery:function(i,n){if(i&1&&st(mQA,7),i&2){let o;de(o=Be())&&(n._text=o.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,n){i&1&&mA("click",function(){return n._selectViaInteraction()})("keydown",function(r){return n._handleKeydown(r)}),i&2&&(Qa("id",n.id),Ke("aria-selected",n.selected)("aria-disabled",n.disabled.toString()),he("mdc-list-item--selected",n.selected)("mat-mdc-option-multiple",n.multiple)("mat-mdc-option-active",n.active)("mdc-list-item--disabled",n.disabled))},inputs:{value:"value",id:"id",disabled:[2,"disabled","disabled",ge]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],ngContentSelectors:DQA,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,n){i&1&&($t(pQA),NA(0,wQA,1,2,"mat-pseudo-checkbox",1),Ue(1),S(2,"span",2,0),Ue(4,1),N(),NA(5,yQA,1,1,"mat-pseudo-checkbox",3)(6,vQA,2,1,"span",4),TA(7,"div",5)),i&2&&(_A(n.multiple?0:-1),_(5),_A(!n.multiple&&n.selected&&!n.hideSingleSelectionIndicator?5:-1),_(),_A(n.group&&n.group._inert?6:-1),_(),yA("matRippleTrigger",n._getHostElement())("matRippleDisabled",n.disabled||n.disableRipple))},dependencies:[Lk,Xs],styles:['.mat-mdc-option{-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;min-height:48px;padding:0 16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-option-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-option-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-option-label-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-option-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-option-label-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));outline:0}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color, var(--mat-sys-secondary-container))}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}@media(forced-colors: active){.mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{right:auto;left:16px}}.mat-mdc-option-multiple{--mdc-list-list-item-selected-container-color:var(--mdc-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();function Fz(t,e,A){if(A.length){let i=e.toArray(),n=A.toArray(),o=0;for(let r=0;rA+i?Math.max(0,t-i+e):A}var Lz={capture:!0},xz=["focus","mousedown","mouseenter","touchstart"],Mk="mat-ripple-loader-uninitialized",bk="mat-ripple-loader-class-name",Nz="mat-ripple-loader-centered",I6="mat-ripple-loader-disabled",Gz=(()=>{class t{_document=f(at,{optional:!0});_animationMode=f(_i,{optional:!0});_globalRippleOptions=f(ZI,{optional:!0});_platform=f(ni);_ngZone=f(ye);_injector=f(Zt);_hosts=new Map;constructor(){this._ngZone.runOutsideAngular(()=>{for(let A of xz)this._document?.addEventListener(A,this._onInteraction,Lz)})}ngOnDestroy(){let A=this._hosts.keys();for(let i of A)this.destroyRipple(i);for(let i of xz)this._document?.removeEventListener(i,this._onInteraction,Lz)}configureRipple(A,i){A.setAttribute(Mk,this._globalRippleOptions?.namespace??""),(i.className||!A.hasAttribute(bk))&&A.setAttribute(bk,i.className||""),i.centered&&A.setAttribute(Nz,""),i.disabled&&A.setAttribute(I6,"")}setDisabled(A,i){let n=this._hosts.get(A);n?(n.target.rippleDisabled=i,!i&&!n.hasSetUpEvents&&(n.hasSetUpEvents=!0,n.renderer.setupTriggerEvents(A))):i?A.setAttribute(I6,""):A.removeAttribute(I6)}_onInteraction=A=>{let i=ic(A);if(i instanceof HTMLElement){let n=i.closest(`[${Mk}="${this._globalRippleOptions?.namespace??""}"]`);n&&this._createRipple(n)}};_createRipple(A){if(!this._document||this._hosts.has(A))return;A.querySelector(".mat-ripple")?.remove();let i=this._document.createElement("span");i.classList.add("mat-ripple",A.getAttribute(bk)),A.append(i);let n=this._animationMode==="NoopAnimations",o=this._globalRippleOptions,r=n?0:o?.animation?.enterDuration??C6.enterDuration,s=n?0:o?.animation?.exitDuration??C6.exitDuration,a={rippleDisabled:n||o?.disabled||A.hasAttribute(I6),rippleConfig:{centered:A.hasAttribute(Nz),terminateOnPointerUp:o?.terminateOnPointerUp,animation:{enterDuration:r,exitDuration:s}}},c=new EB(a,this._ngZone,i,this._platform,this._injector),g=!a.rippleDisabled;g&&c.setupTriggerEvents(A),this._hosts.set(A,{target:a,renderer:c,hasSetUpEvents:g}),A.removeAttribute(Mk)}destroyRipple(A){let i=this._hosts.get(A);i&&(i.renderer._removeTriggerEvents(),this._hosts.delete(A))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),B6=(()=>{class t{labelPosition;static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,n){i&2&&he("mdc-form-field--align-end",n.labelPosition==="before")},inputs:{labelPosition:"labelPosition"},attrs:MQA,ngContentSelectors:bQA,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},styles:[".mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0}"],encapsulation:2,changeDetection:0})}return t})();var LQA=["mat-button",""],Fk=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],_k=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"];var xQA="@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}",NQA=["mat-fab",""],FQA=["mat-mini-fab",""],_QA='.mat-mdc-fab-base{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus>.mat-focus-indicator::before{content:""}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-sys-corner-large));color:var(--mat-fab-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display, block)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-sys-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-small-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-mini-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;height:var(--mdc-extended-fab-container-height, 56px);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-sys-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-sys-label-large-tracking));box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}',GQA=["mat-icon-button",""],KQA=["*"];var UQA=new eA("MAT_BUTTON_CONFIG");var JQA=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],Q6=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);_animationMode=f(_i,{optional:!0});_focusMonitor=f(Jr);_rippleLoader=f(Gz);_isFab=!1;color;get disableRipple(){return this._disableRipple}set disableRipple(A){this._disableRipple=A,this._updateRippleDisabled()}_disableRipple=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._updateRippleDisabled()}_disabled=!1;ariaDisabled;disabledInteractive;constructor(){f(Pn).load(Yr);let A=f(UQA,{optional:!0}),i=this._elementRef.nativeElement,n=i.classList;this.disabledInteractive=A?.disabledInteractive??!1,this.color=A?.color??null,this._rippleLoader?.configureRipple(i,{className:"mat-mdc-button-ripple"});for(let{attribute:o,mdcClasses:r}of JQA)i.hasAttribute(o)&&n.add(...r)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(A="program",i){A?this._focusMonitor.focusVia(this._elementRef.nativeElement,A,i):this._elementRef.nativeElement.focus(i)}_getAriaDisabled(){return this.ariaDisabled!=null?this.ariaDisabled:this.disabled&&this.disabledInteractive?!0:null}_getDisabledAttribute(){return this.disabledInteractive||!this.disabled?null:!0}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",ge],disabled:[2,"disabled","disabled",ge],ariaDisabled:[2,"aria-disabled","ariaDisabled",ge],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge]}})}return t})();var dr=(()=>{class t extends Q6{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(i,n){i&2&&(Ke("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[lt],attrs:LQA,ngContentSelectors:_k,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&($t(Fk),TA(0,"span",0),Ue(1),S(2,"span",1),Ue(3,1),N(),Ue(4,2),TA(5,"span",2)(6,"span",3)),i&2&&he("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:['.mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 12px);height:var(--mdc-text-button-container-height, 40px);font-family:var(--mdc-text-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-sys-label-large-weight))}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-sys-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 16px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display, block)}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-filled-button-container-height, 40px);font-family:var(--mdc-filled-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-filled-button-horizontal-padding, 24px)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color, var(--mat-sys-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-unelevated-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display, block)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-sys-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-sys-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-filled-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-sys-level1));height:var(--mdc-protected-button-container-height, 40px);font-family:var(--mdc-protected-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-protected-button-horizontal-padding, 24px)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-raised-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-raised-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display, block)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-sys-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-sys-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-sys-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-protected-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow, var(--mat-sys-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-outlined-button-container-height, 40px);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-sys-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-sys-corner-full));border-width:var(--mdc-outlined-button-outline-width, 1px);padding:0 var(--mat-outlined-button-horizontal-padding, 24px)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-outlined-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-outlined-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display, block)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-sys-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-sys-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:var(--mdc-outlined-button-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button .mdc-button__ripple{border-width:var(--mdc-outlined-button-outline-width, 1px);border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-focus-indicator,.mat-mdc-unelevated-button .mat-focus-indicator,.mat-mdc-raised-button .mat-focus-indicator,.mat-mdc-outlined-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus>.mat-focus-indicator::before,.mat-mdc-unelevated-button:focus>.mat-focus-indicator::before,.mat-mdc-raised-button:focus>.mat-focus-indicator::before,.mat-mdc-outlined-button:focus>.mat-focus-indicator::before{content:""}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-focus-indicator::before,.mat-mdc-raised-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}',"@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}"],encapsulation:2,changeDetection:0})}return t})();var Kz=new eA("mat-mdc-fab-default-options",{providedIn:"root",factory:Uz});function Uz(){return{color:"accent"}}var E6=Uz(),Jz=(()=>{class t extends Q6{_options=f(Kz,{optional:!0});_isFab=!0;extended;constructor(){super(),this._options=this._options||E6,this.color=this._options.color||E6.color}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["button","mat-fab",""]],hostVars:18,hostBindings:function(i,n){i&2&&(Ke("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0)("mdc-fab--extended",n.extended)("mat-mdc-extended-fab",n.extended))},inputs:{extended:[2,"extended","extended",ge]},exportAs:["matButton"],features:[lt],attrs:NQA,ngContentSelectors:_k,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&($t(Fk),TA(0,"span",0),Ue(1),S(2,"span",1),Ue(3,1),N(),Ue(4,2),TA(5,"span",2)(6,"span",3)),i&2&&he("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:['.mat-mdc-fab-base{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus>.mat-focus-indicator::before{content:""}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-sys-corner-large));color:var(--mat-fab-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display, block)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-sys-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-small-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-mini-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;height:var(--mdc-extended-fab-container-height, 56px);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-sys-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-sys-label-large-tracking));box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}'],encapsulation:2,changeDetection:0})}return t})(),u6=(()=>{class t extends Q6{_options=f(Kz,{optional:!0});_isFab=!0;constructor(){super(),this._options=this._options||E6,this.color=this._options.color||E6.color}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["button","mat-mini-fab",""]],hostVars:14,hostBindings:function(i,n){i&2&&(Ke("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[lt],attrs:FQA,ngContentSelectors:_k,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&($t(Fk),TA(0,"span",0),Ue(1),S(2,"span",1),Ue(3,1),N(),Ue(4,2),TA(5,"span",2)(6,"span",3)),i&2&&he("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:[_QA],encapsulation:2,changeDetection:0})}return t})();var QB=(()=>{class t extends Q6{constructor(){super(),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["button","mat-icon-button",""]],hostVars:14,hostBindings:function(i,n){i&2&&(Ke("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[lt],attrs:GQA,ngContentSelectors:KQA,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&($t(),TA(0,"span",0),Ue(1),TA(2,"span",1)(3,"span",2))},styles:['.mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:50%;flex-shrink:0;text-align:center;width:var(--mdc-icon-button-state-layer-size, 40px);height:var(--mdc-icon-button-state-layer-size, 40px);padding:calc(calc(var(--mdc-icon-button-state-layer-size, 40px) - var(--mdc-icon-button-icon-size, 24px)) / 2);font-size:var(--mdc-icon-button-icon-size, 24px);color:var(--mdc-icon-button-icon-color, var(--mat-sys-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus>.mat-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-icon-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-icon-button-touch-target-display, block)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mdc-icon-button-icon-size, 24px);height:var(--mdc-icon-button-icon-size, 24px);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button[hidden]{display:none}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',xQA],encapsulation:2,changeDetection:0})}return t})();var uB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,WI,pn]})}return t})();var Gk=class{_box;_destroyed=new qA;_resizeSubject=new qA;_resizeObserver;_elementObservables=new Map;constructor(e){this._box=e,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(A=>this._resizeSubject.next(A)))}observe(e){return this._elementObservables.has(e)||this._elementObservables.set(e,new gt(A=>{let i=this._resizeSubject.subscribe(A);return this._resizeObserver?.observe(e,{box:this._box}),()=>{this._resizeObserver?.unobserve(e),i.unsubscribe(),this._elementObservables.delete(e)}}).pipe(Nt(A=>A.some(i=>i.target===e)),h2({bufferSize:1,refCount:!0}),kt(this._destroyed))),this._elementObservables.get(e)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}},h6=(()=>{class t{_cleanupErrorListener;_observers=new Map;_ngZone=f(ye);constructor(){typeof ResizeObserver<"u"}ngOnDestroy(){for(let[,A]of this._observers)A.destroy();this._observers.clear(),this._cleanupErrorListener?.()}observe(A,i){let n=i?.box||"content-box";return this._observers.has(n)||this._observers.set(n,new Gk(n)),this._observers.get(n).observe(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var oi=function(t){return t[t.State=0]="State",t[t.Transition=1]="Transition",t[t.Sequence=2]="Sequence",t[t.Group=3]="Group",t[t.Animate=4]="Animate",t[t.Keyframes=5]="Keyframes",t[t.Style=6]="Style",t[t.Trigger=7]="Trigger",t[t.Reference=8]="Reference",t[t.AnimateChild=9]="AnimateChild",t[t.AnimateRef=10]="AnimateRef",t[t.Query=11]="Query",t[t.Stagger=12]="Stagger",t}(oi||{}),Rc="*";function nc(t,e){return{type:oi.Trigger,name:t,definitions:e,options:{}}}function Is(t,e=null){return{type:oi.Animate,styles:e,timings:t}}function Yz(t,e=null){return{type:oi.Sequence,steps:t,options:e}}function Do(t){return{type:oi.Style,styles:t,offset:null}}function $s(t,e,A){return{type:oi.State,name:t,styles:e,options:A}}function $r(t,e,A=null){return{type:oi.Transition,expr:t,animation:e,options:A}}function Kk(t=null){return{type:oi.AnimateChild,options:t}}function Uk(t,e,A=null){return{type:oi.Query,selector:t,animation:e,options:A}}var hl=class{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(e=0,A=0){this.totalTime=e+A}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(e=>e()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(e){this._position=this.totalTime?e*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(e){let A=e=="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},XI=class{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(e){this.players=e;let A=0,i=0,n=0,o=this.players.length;o==0?queueMicrotask(()=>this._onFinish()):this.players.forEach(r=>{r.onDone(()=>{++A==o&&this._onFinish()}),r.onDestroy(()=>{++i==o&&this._onDestroy()}),r.onStart(()=>{++n==o&&this._onStart()})}),this.totalTime=this.players.reduce((r,s)=>Math.max(r,s.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this.players.forEach(e=>e.init())}onStart(e){this._onStartFns.push(e)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(e=>e()),this._onStartFns=[])}onDone(e){this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(e=>e.play())}pause(){this.players.forEach(e=>e.pause())}restart(){this.players.forEach(e=>e.restart())}finish(){this._onFinish(),this.players.forEach(e=>e.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(e=>e.destroy()),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this.players.forEach(e=>e.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(e){let A=e*this.totalTime;this.players.forEach(i=>{let n=i.totalTime?Math.min(1,A/i.totalTime):1;i.setPosition(n)})}getPosition(){let e=this.players.reduce((A,i)=>A===null||i.totalTime>A.totalTime?i:A,null);return e!=null?e.getPosition():0}beforeDestroy(){this.players.forEach(e=>{e.beforeDestroy&&e.beforeDestroy()})}triggerCallback(e){let A=e=="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},hB="!";var TQA=["notch"],HQA=["matFormFieldNotchedOutline",""],OQA=["*"],zQA=["textField"],PQA=["iconPrefixContainer"],jQA=["textPrefixContainer"],qQA=["iconSuffixContainer"],VQA=["textSuffixContainer"],ZQA=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],WQA=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function XQA(t,e){t&1&&TA(0,"span",21)}function $QA(t,e){if(t&1&&(S(0,"label",20),Ue(1,1),NA(2,XQA,1,0,"span",21),N()),t&2){let A=Y(2);yA("floating",A._shouldLabelFloat())("monitorResize",A._hasOutline())("id",A._labelId),Ke("for",A._control.disableAutomaticLabeling?null:A._control.id),_(2),_A(!A.hideRequiredMarker&&A._control.required?2:-1)}}function AuA(t,e){if(t&1&&NA(0,$QA,3,5,"label",20),t&2){let A=Y();_A(A._hasFloatingLabel()?0:-1)}}function euA(t,e){t&1&&TA(0,"div",7)}function tuA(t,e){}function iuA(t,e){if(t&1&&NA(0,tuA,0,0,"ng-template",13),t&2){Y(2);let A=Cr(1);yA("ngTemplateOutlet",A)}}function nuA(t,e){if(t&1&&(S(0,"div",9),NA(1,iuA,1,1,null,13),N()),t&2){let A=Y();yA("matFormFieldNotchedOutlineOpen",A._shouldLabelFloat()),_(),_A(A._forceDisplayInfixLabel()?-1:1)}}function ouA(t,e){t&1&&(S(0,"div",10,2),Ue(2,2),N())}function ruA(t,e){t&1&&(S(0,"div",11,3),Ue(2,3),N())}function suA(t,e){}function auA(t,e){if(t&1&&NA(0,suA,0,0,"ng-template",13),t&2){Y();let A=Cr(1);yA("ngTemplateOutlet",A)}}function cuA(t,e){t&1&&(S(0,"div",14,4),Ue(2,4),N())}function guA(t,e){t&1&&(S(0,"div",15,5),Ue(2,5),N())}function luA(t,e){t&1&&TA(0,"div",16)}function IuA(t,e){if(t&1&&(S(0,"div",18),Ue(1,6),N()),t&2){let A=Y();yA("@transitionMessages",A._subscriptAnimationState)}}function CuA(t,e){if(t&1&&(S(0,"mat-hint",22),AA(1),N()),t&2){let A=Y(2);yA("id",A._hintLabelId),_(),tt(A.hintLabel)}}function duA(t,e){if(t&1&&(S(0,"div",19),NA(1,CuA,2,2,"mat-hint",22),Ue(2,7),TA(3,"div",23),Ue(4,8),N()),t&2){let A=Y();yA("@transitionMessages",A._subscriptAnimationState),_(),_A(A.hintLabel?1:-1)}}var m6=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["mat-label"]]})}return t})(),BuA=new eA("MatError");var Tz=(()=>{class t{align="start";id=f(an).getId("mat-mdc-hint-");static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,n){i&2&&(Qa("id",n.id),Ke("align",null),he("mat-mdc-form-field-hint-end",n.align==="end"))},inputs:{align:"align",id:"id"}})}return t})(),EuA=new eA("MatPrefix");var Vz=new eA("MatSuffix"),Zz=(()=>{class t{set _isTextSelector(A){this._isText=!0}_isText=!1;static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matSuffix",""],["","matIconSuffix",""],["","matTextSuffix",""]],inputs:{_isTextSelector:[0,"matTextSuffix","_isTextSelector"]},features:[ut([{provide:Vz,useExisting:t}])]})}return t})(),Wz=new eA("FloatingLabelParent"),Hz=(()=>{class t{_elementRef=f(se);get floating(){return this._floating}set floating(A){this._floating=A,this.monitorResize&&this._handleResize()}_floating=!1;get monitorResize(){return this._monitorResize}set monitorResize(A){this._monitorResize=A,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}_monitorResize=!1;_resizeObserver=f(h6);_ngZone=f(ye);_parent=f(Wz);_resizeSubscription=new Kt;constructor(){}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return QuA(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,n){i&2&&he("mdc-floating-label--float-above",n.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return t})();function QuA(t){let e=t;if(e.offsetParent!==null)return e.scrollWidth;let A=e.cloneNode(!0);A.style.setProperty("position","absolute"),A.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(A);let i=A.scrollWidth;return A.remove(),i}var Oz="mdc-line-ripple--active",f6="mdc-line-ripple--deactivating",zz=(()=>{class t{_elementRef=f(se);_cleanupTransitionEnd;constructor(){let A=f(ye),i=f(qi);A.runOutsideAngular(()=>{this._cleanupTransitionEnd=i.listen(this._elementRef.nativeElement,"transitionend",this._handleTransitionEnd)})}activate(){let A=this._elementRef.nativeElement.classList;A.remove(f6),A.add(Oz)}deactivate(){this._elementRef.nativeElement.classList.add(f6)}_handleTransitionEnd=A=>{let i=this._elementRef.nativeElement.classList,n=i.contains(f6);A.propertyName==="opacity"&&n&&i.remove(Oz,f6)};ngOnDestroy(){this._cleanupTransitionEnd()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return t})(),Pz=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);open=!1;_notch;constructor(){}ngAfterViewInit(){let A=this._elementRef.nativeElement.querySelector(".mdc-floating-label");A?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),typeof requestAnimationFrame=="function"&&(A.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>A.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(A){!this.open||!A?this._notch.nativeElement.style.width="":this._notch.nativeElement.style.width=`calc(${A}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,n){if(i&1&&st(TQA,5),i&2){let o;de(o=Be())&&(n._notch=o.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,n){i&2&&he("mdc-notched-outline--notched",n.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},attrs:HQA,ngContentSelectors:OQA,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,n){i&1&&($t(),TA(0,"div",1),S(1,"div",2,0),Ue(3),N(),TA(4,"div",3))},encapsulation:2,changeDetection:0})}return t})(),uuA={transitionMessages:nc("transitionMessages",[$s("enter",Do({opacity:1,transform:"translateY(0%)"})),$r("void => enter",[Do({opacity:0,transform:"translateY(-5px)"}),Is("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},gh=(()=>{class t{value;stateChanges;id;placeholder;ngControl;focused;empty;shouldLabelFloat;required;disabled;errorState;controlType;autofilled;userAriaDescribedBy;disableAutomaticLabeling;static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t})}return t})();var lh=new eA("MatFormField"),huA=new eA("MAT_FORM_FIELD_DEFAULT_OPTIONS"),jz="fill",fuA="auto",qz="fixed",muA="translateY(-50%)",fl=(()=>{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_dir=f(po);_platform=f(ni);_idGenerator=f(an);_defaults=f(huA,{optional:!0});_animationMode=f(_i,{optional:!0});_textField;_iconPrefixContainer;_textPrefixContainer;_iconSuffixContainer;_textSuffixContainer;_floatingLabel;_notchedOutline;_lineRipple;_formFieldControl;_prefixChildren;_suffixChildren;_errorChildren;_hintChildren;_labelChild=bH(m6);get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(A){this._hideRequiredMarker=Ar(A)}_hideRequiredMarker=!1;color="primary";get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||fuA}set floatLabel(A){A!==this._floatLabel&&(this._floatLabel=A,this._changeDetectorRef.markForCheck())}_floatLabel;get appearance(){return this._appearance}set appearance(A){let i=this._appearance,n=A||this._defaults?.appearance||jz;this._appearance=n,this._appearance==="outline"&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdate=!0)}_appearance=jz;get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||qz}set subscriptSizing(A){this._subscriptSizing=A||this._defaults?.subscriptSizing||qz}_subscriptSizing=null;get hintLabel(){return this._hintLabel}set hintLabel(A){this._hintLabel=A,this._processHints()}_hintLabel="";_hasIconPrefix=!1;_hasTextPrefix=!1;_hasIconSuffix=!1;_hasTextSuffix=!1;_labelId=this._idGenerator.getId("mat-mdc-form-field-label-");_hintLabelId=this._idGenerator.getId("mat-mdc-hint-");_subscriptAnimationState="";get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(A){this._explicitFormFieldControl=A}_destroyed=new qA;_isFocused=null;_explicitFormFieldControl;_needsOutlineLabelOffsetUpdate=!1;_previousControl=null;_stateChanges;_valueChanges;_describedByChanges;_injector=f(Zt);constructor(){let A=this._defaults;A&&(A.appearance&&(this.appearance=A.appearance),this._hideRequiredMarker=!!A?.hideRequiredMarker,A.color&&(this.color=A.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._previousControl=this._control)}ngOnDestroy(){this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._describedByChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getLabelId=Mc(()=>this._hasFloatingLabel()?this._labelId:null);getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(A){let i=this._control,n="mat-mdc-form-field-type-";A&&this._elementRef.nativeElement.classList.remove(n+A.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(n+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._changeDetectorRef.markForCheck()}),this._describedByChanges?.unsubscribe(),this._describedByChanges=i.stateChanges.pipe(On([void 0,void 0]),je(()=>[i.errorState,i.userAriaDescribedBy]),Cm(),Nt(([[o,r],[s,a]])=>o!==s||r!==a)).subscribe(()=>this._syncDescribedByIds()),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(kt(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck()))}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(A=>!A._isText),this._hasTextPrefix=!!this._prefixChildren.find(A=>A._isText),this._hasIconSuffix=!!this._suffixChildren.find(A=>!A._isText),this._hasTextSuffix=!!this._suffixChildren.find(A=>A._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),Hn(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){this._control}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||this._isFocused===null)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0),ku(()=>{this._needsOutlineLabelOffsetUpdate&&(this._needsOutlineLabelOffsetUpdate=!1,this._updateOutlineLabelOffset())},{injector:this._injector}),this._dir.change.pipe(kt(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0)}_shouldAlwaysFloat(){return this.floatLabel==="always"}_hasOutline(){return this.appearance==="outline"}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel=Mc(()=>!!this._labelChild());_shouldLabelFloat(){return this._hasFloatingLabel()?this._control.shouldLabelFloat||this._shouldAlwaysFloat():!1}_shouldForward(A){let i=this._control?this._control.ngControl:null;return i&&i[A]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){!this._hasOutline()||!this._floatingLabel||!this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(0):this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth())}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){this._hintChildren}_syncDescribedByIds(){if(this._control){let A=[];if(this._control.userAriaDescribedBy&&typeof this._control.userAriaDescribedBy=="string"&&A.push(...this._control.userAriaDescribedBy.split(" ")),this._getDisplayedMessages()==="hint"){let i=this._hintChildren?this._hintChildren.find(o=>o.align==="start"):null,n=this._hintChildren?this._hintChildren.find(o=>o.align==="end"):null;i?A.push(i.id):this._hintLabel&&A.push(this._hintLabelId),n&&A.push(n.id)}else this._errorChildren&&A.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(A)}}_updateOutlineLabelOffset(){if(!this._hasOutline()||!this._floatingLabel)return;let A=this._floatingLabel.element;if(!(this._iconPrefixContainer||this._textPrefixContainer)){A.style.transform="";return}if(!this._isAttachedToDom()){this._needsOutlineLabelOffsetUpdate=!0;return}let i=this._iconPrefixContainer?.nativeElement,n=this._textPrefixContainer?.nativeElement,o=this._iconSuffixContainer?.nativeElement,r=this._textSuffixContainer?.nativeElement,s=i?.getBoundingClientRect().width??0,a=n?.getBoundingClientRect().width??0,c=o?.getBoundingClientRect().width??0,g=r?.getBoundingClientRect().width??0,I=this._dir.value==="rtl"?"-1":"1",C=`${s+a}px`,B=`calc(${I} * (${C} + var(--mat-mdc-form-field-label-offset-x, 0px)))`;A.style.transform=`var( --mat-mdc-form-field-label-transform, ${muA} translateX(${B}) - )`;let E=s+a+c+g;this._elementRef.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${E}px)`)}_isAttachedToDom(){let A=this._elementRef.nativeElement;if(A.getRootNode){let i=A.getRootNode();return i&&i!==A}return document.documentElement.contains(A)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-form-field"]],contentQueries:function(i,n,o){if(i&1&&(ZH(o,n._labelChild,m6,5),gi(o,gh,5),gi(o,EuA,5),gi(o,Vz,5),gi(o,BuA,5),gi(o,Tz,5)),i&2){yc();let r;de(r=Be())&&(n._formFieldControl=r.first),de(r=Be())&&(n._prefixChildren=r),de(r=Be())&&(n._suffixChildren=r),de(r=Be())&&(n._errorChildren=r),de(r=Be())&&(n._hintChildren=r)}},viewQuery:function(i,n){if(i&1&&(st(zQA,5),st(PQA,5),st(jQA,5),st(qQA,5),st(VQA,5),st(Hz,5),st(Pz,5),st(zz,5)),i&2){let o;de(o=Be())&&(n._textField=o.first),de(o=Be())&&(n._iconPrefixContainer=o.first),de(o=Be())&&(n._textPrefixContainer=o.first),de(o=Be())&&(n._iconSuffixContainer=o.first),de(o=Be())&&(n._textSuffixContainer=o.first),de(o=Be())&&(n._floatingLabel=o.first),de(o=Be())&&(n._notchedOutline=o.first),de(o=Be())&&(n._lineRipple=o.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,n){i&2&&he("mat-mdc-form-field-label-always-float",n._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",n._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",n._hasIconSuffix)("mat-form-field-invalid",n._control.errorState)("mat-form-field-disabled",n._control.disabled)("mat-form-field-autofilled",n._control.autofilled)("mat-form-field-no-animations",n._animationMode==="NoopAnimations")("mat-form-field-appearance-fill",n.appearance=="fill")("mat-form-field-appearance-outline",n.appearance=="outline")("mat-form-field-hide-placeholder",n._hasFloatingLabel()&&!n._shouldLabelFloat())("mat-focused",n._control.focused)("mat-primary",n.color!=="accent"&&n.color!=="warn")("mat-accent",n.color==="accent")("mat-warn",n.color==="warn")("ng-untouched",n._shouldForward("untouched"))("ng-touched",n._shouldForward("touched"))("ng-pristine",n._shouldForward("pristine"))("ng-dirty",n._shouldForward("dirty"))("ng-valid",n._shouldForward("valid"))("ng-invalid",n._shouldForward("invalid"))("ng-pending",n._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[ut([{provide:lh,useExisting:t},{provide:Wz,useExisting:t}])],ngContentSelectors:WQA,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,n){if(i&1){let o=me();$t(ZQA),FA(0,AuA,1,1,"ng-template",null,0,Gu),S(2,"div",6,1),mA("click",function(s){return QA(o),uA(n._control.onContainerClick(s))}),FA(4,euA,1,0,"div",7),S(5,"div",8),FA(6,nuA,2,2,"div",9)(7,ouA,3,0,"div",10)(8,ruA,3,0,"div",11),S(9,"div",12),FA(10,auA,1,1,null,13),Ue(11),N(),FA(12,cuA,3,0,"div",14)(13,guA,3,0,"div",15),N(),FA(14,luA,1,0,"div",16),N(),S(15,"div",17),FA(16,IuA,2,1,"div",18)(17,duA,5,2,"div",19),N()}if(i&2){let o;_(2),he("mdc-text-field--filled",!n._hasOutline())("mdc-text-field--outlined",n._hasOutline())("mdc-text-field--no-label",!n._hasFloatingLabel())("mdc-text-field--disabled",n._control.disabled)("mdc-text-field--invalid",n._control.errorState),_(2),_A(!n._hasOutline()&&!n._control.disabled?4:-1),_(2),_A(n._hasOutline()?6:-1),_(),_A(n._hasIconPrefix?7:-1),_(),_A(n._hasTextPrefix?8:-1),_(2),_A(!n._hasOutline()||n._forceDisplayInfixLabel()?10:-1),_(2),_A(n._hasTextSuffix?12:-1),_(),_A(n._hasIconSuffix?13:-1),_(),_A(n._hasOutline()?-1:14),_(),he("mat-mdc-form-field-subscript-dynamic-size",n.subscriptSizing==="dynamic"),_(),_A((o=n._getDisplayedMessages())==="error"?16:o==="hint"?17:-1)}},dependencies:[Hz,Pz,Hu,zz,Tz],styles:['.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-moz-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-webkit-input-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive:-ms-input-placeholder{opacity:0}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-filled-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-outlined-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color, var(--mat-sys-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 4%, transparent))}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)));padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px);padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}@media(forced-colors: active){.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-filled-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-filled-text-field-hover-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-filled-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-filled-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-filled-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-filled-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-filled-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-filled-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-outlined-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-outlined-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-outlined-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-outlined-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-outlined-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-outlined-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-outline-color, var(--mat-sys-outline));border-width:var(--mdc-outlined-text-field-outline-width, 1px)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-hover-outline-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-focus-outline-color, var(--mat-sys-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-hover-outline-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-focus-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mdc-outlined-text-field-focus-outline-width, 2px)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),100% - max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))*2)}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none;--mat-form-field-notch-max-width: 100%}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1;border-bottom-width:var(--mdc-filled-text-field-active-indicator-height, 1px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color, var(--mat-sys-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color, var(--mat-sys-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height, 2px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color, var(--mat-sys-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color, var(--mat-sys-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height, 56px);padding-top:var(--mat-form-field-filled-with-label-container-padding-top, 24px);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom, 8px)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding, 16px);padding-bottom:var(--mat-form-field-container-vertical-padding, 16px)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height, 56px)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height, 56px) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color, var(--mat-sys-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-sys-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-sys-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-sys-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity, 0)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color, var(--mat-sys-neutral10))}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color, color-mix(in srgb, var(--mat-sys-neutral10) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-sys-on-surface-variant))}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}@media(forced-colors: active){.mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}}@media(forced-colors: active){.mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-sys-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-sys-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-sys-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-sys-error))}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field-infix:has(textarea[cols]){width:auto}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[uuA.transitionMessages]},changeDetection:0})}return t})(),U2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,rh,pn]})}return t})();var $z=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-text-field-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:["textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}"],encapsulation:2,changeDetection:0})}return t})(),Xz=Sc({passive:!0}),AP=(()=>{class t{_platform=f(ni);_ngZone=f(ye);_styleLoader=f(Pn);_monitoredElements=new Map;constructor(){}monitor(A){if(!this._platform.isBrowser)return lr;this._styleLoader.load($z);let i=fa(A),n=this._monitoredElements.get(i);if(n)return n.subject;let o=new qA,r="cdk-text-field-autofilled",s=a=>{a.animationName==="cdk-text-field-autofill-start"&&!i.classList.contains(r)?(i.classList.add(r),this._ngZone.run(()=>o.next({target:a.target,isAutofilled:!0}))):a.animationName==="cdk-text-field-autofill-end"&&i.classList.contains(r)&&(i.classList.remove(r),this._ngZone.run(()=>o.next({target:a.target,isAutofilled:!1})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",s,Xz),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:o,unlisten:()=>{i.removeEventListener("animationstart",s,Xz)}}),o}stopMonitoring(A){let i=fa(A),n=this._monitoredElements.get(i);n&&(n.unlisten(),n.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((A,i)=>this.stopMonitoring(i))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var eP=(()=>{class t{_elementRef=f(se);_platform=f(ni);_ngZone=f(ye);_renderer=f(qi);_resizeEvents=new qA;_previousValue;_initialHeight;_destroyed=new qA;_listenerCleanups;_minRows;_maxRows;_enabled=!0;_previousMinRows=-1;_textareaElement;get minRows(){return this._minRows}set minRows(A){this._minRows=Zs(A),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(A){this._maxRows=Zs(A),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(A){this._enabled!==A&&((this._enabled=A)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(A){this._cachedPlaceholderHeight=void 0,A?this._textareaElement.setAttribute("placeholder",A):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}_cachedLineHeight;_cachedPlaceholderHeight;_document=f(at,{optional:!0});_hasFocus;_isViewInited=!1;constructor(){f(Pn).load($z),this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){let A=this.minRows&&this._cachedLineHeight?`${this.minRows*this._cachedLineHeight}px`:null;A&&(this._textareaElement.style.minHeight=A)}_setMaxHeight(){let A=this.maxRows&&this._cachedLineHeight?`${this.maxRows*this._cachedLineHeight}px`:null;A&&(this._textareaElement.style.maxHeight=A)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{this._listenerCleanups=[this._renderer.listen("window","resize",()=>this._resizeEvents.next()),this._renderer.listen(this._textareaElement,"focus",this._handleFocusEvent),this._renderer.listen(this._textareaElement,"blur",this._handleFocusEvent)],this._resizeEvents.pipe(Dd(16)).subscribe(()=>{this._cachedLineHeight=this._cachedPlaceholderHeight=void 0,this.resizeToFitContent(!0)})}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._listenerCleanups?.forEach(A=>A()),this._resizeEvents.complete(),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let A=this._textareaElement.cloneNode(!1),i=A.style;A.rows=1,i.position="absolute",i.visibility="hidden",i.border="none",i.padding="0",i.height="",i.minHeight="",i.maxHeight="",i.top=i.bottom=i.left=i.right="auto",i.overflow="hidden",this._textareaElement.parentNode.appendChild(A),this._cachedLineHeight=A.clientHeight,A.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){let A=this._textareaElement,i=A.style.marginBottom||"",n=this._platform.FIREFOX,o=n&&this._hasFocus,r=n?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";o&&(A.style.marginBottom=`${A.clientHeight}px`),A.classList.add(r);let s=A.scrollHeight-4;return A.classList.remove(r),o&&(A.style.marginBottom=i),s}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||this._cachedPlaceholderHeight!=null)return;if(!this.placeholder){this._cachedPlaceholderHeight=0;return}let A=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=A}_handleFocusEvent=A=>{this._hasFocus=A.type==="focus"};ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(A=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight))return;let i=this._elementRef.nativeElement,n=i.value;if(!A&&this._minRows===this._previousMinRows&&n===this._previousValue)return;let o=this._measureScrollHeight(),r=Math.max(o,this._cachedPlaceholderHeight||0);i.style.height=`${r}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=n,this._previousMinRows=this._minRows}reset(){this._initialHeight!==void 0&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_scrollToCaretPosition(A){let{selectionStart:i,selectionEnd:n}=A;!this._destroyed.isStopped&&this._hasFocus&&A.setSelectionRange(i,n)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,n){i&1&&mA("input",function(){return n._noopInputHandler()})},inputs:{minRows:[0,"cdkAutosizeMinRows","minRows"],maxRows:[0,"cdkAutosizeMaxRows","maxRows"],enabled:[2,"cdkTextareaAutosize","enabled",ge],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"]})}return t})(),p6=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();var wuA=new eA("MAT_INPUT_VALUE_ACCESSOR"),yuA=["button","checkbox","file","hidden","image","radio","range","reset","submit"],vuA=new eA("MAT_INPUT_CONFIG"),J2=(()=>{class t{_elementRef=f(se);_platform=f(ni);ngControl=f(ec,{optional:!0,self:!0});_autofillMonitor=f(AP);_ngZone=f(ye);_formField=f(lh,{optional:!0});_renderer=f(qi);_uid=f(an).getId("mat-input-");_previousNativeValue;_inputValueAccessor;_signalBasedValueAccessor;_previousPlaceholder;_errorStateTracker;_config=f(vuA,{optional:!0});_cleanupIosKeyup;_cleanupWebkitWheel;_formFieldDescribedBy;_isServer;_isNativeSelect;_isTextarea;_isInFormField;focused=!1;stateChanges=new qA;controlType="mat-input";autofilled=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=Ar(A),this.focused&&(this.focused=!1,this.stateChanges.next())}_disabled=!1;get id(){return this._id}set id(A){this._id=A||this._uid}_id;placeholder;name;get required(){return this._required??this.ngControl?.control?.hasValidator(Ac.required)??!1}set required(A){this._required=Ar(A)}_required;get type(){return this._type}set type(A){let i=this._type;this._type=A||"text",this._validateType(),!this._isTextarea&&Ck().has(this._type)&&(this._elementRef.nativeElement.type=this._type),this._type!==i&&this._ensureWheelDefaultBehavior()}_type="text";get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(A){this._errorStateTracker.matcher=A}userAriaDescribedBy;get value(){return this._signalBasedValueAccessor?this._signalBasedValueAccessor.value():this._inputValueAccessor.value}set value(A){A!==this.value&&(this._signalBasedValueAccessor?this._signalBasedValueAccessor.value.set(A):this._inputValueAccessor.value=A,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(A){this._readonly=Ar(A)}_readonly=!1;disabledInteractive;get errorState(){return this._errorStateTracker.errorState}set errorState(A){this._errorStateTracker.errorState=A}_neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(A=>Ck().has(A));constructor(){let A=f(ih,{optional:!0}),i=f(YI,{optional:!0}),n=f(d6),o=f(wuA,{optional:!0,self:!0}),r=this._elementRef.nativeElement,s=r.nodeName.toLowerCase();o?v2(o.value)?this._signalBasedValueAccessor=o:this._inputValueAccessor=o:this._inputValueAccessor=r,this._previousNativeValue=this.value,this.id=this.id,this._platform.IOS&&this._ngZone.runOutsideAngular(()=>{this._cleanupIosKeyup=this._renderer.listen(r,"keyup",this._iOSKeyupListener)}),this._errorStateTracker=new BB(n,this.ngControl,i,A,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect=s==="select",this._isTextarea=s==="textarea",this._isInFormField=!!this._formField,this.disabledInteractive=this._config?.disabledInteractive||!1,this._isNativeSelect&&(this.controlType=r.multiple?"mat-native-select-multiple":"mat-native-select"),this._signalBasedValueAccessor&&Ku(()=>{this._signalBasedValueAccessor.value(),this.stateChanges.next()})}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(A=>{this.autofilled=A.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._cleanupIosKeyup?.(),this._cleanupWebkitWheel?.()}ngDoCheck(){this.ngControl&&(this.updateErrorState(),this.ngControl.disabled!==null&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(A){this._elementRef.nativeElement.focus(A)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(A){if(A!==this.focused){if(!this._isNativeSelect&&A&&this.disabled&&this.disabledInteractive){let i=this._elementRef.nativeElement;i.type==="number"?(i.type="text",i.setSelectionRange(0,0),i.type="number"):i.setSelectionRange(0,0)}this.focused=A,this.stateChanges.next()}}_onInput(){}_dirtyCheckNativeValue(){let A=this._elementRef.nativeElement.value;this._previousNativeValue!==A&&(this._previousNativeValue=A,this.stateChanges.next())}_dirtyCheckPlaceholder(){let A=this._getPlaceholder();if(A!==this._previousPlaceholder){let i=this._elementRef.nativeElement;this._previousPlaceholder=A,A?i.setAttribute("placeholder",A):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){yuA.indexOf(this._type)>-1}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let A=this._elementRef.nativeElement.validity;return A&&A.badInput}get empty(){return!this._isNeverEmpty()&&!this._elementRef.nativeElement.value&&!this._isBadInput()&&!this.autofilled}get shouldLabelFloat(){if(this._isNativeSelect){let A=this._elementRef.nativeElement,i=A.options[0];return this.focused||A.multiple||!this.empty||!!(A.selectedIndex>-1&&i&&i.label)}else return this.focused&&!this.disabled||!this.empty}setDescribedByIds(A){let i=this._elementRef.nativeElement,n=i.getAttribute("aria-describedby"),o;if(n){let r=this._formFieldDescribedBy||A;o=A.concat(n.split(" ").filter(s=>s&&!r.includes(s)))}else o=A;this._formFieldDescribedBy=A,o.length?i.setAttribute("aria-describedby",o.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){let A=this._elementRef.nativeElement;return this._isNativeSelect&&(A.multiple||A.size>1)}_iOSKeyupListener=A=>{let i=A.target;!i.value&&i.selectionStart===0&&i.selectionEnd===0&&(i.setSelectionRange(1,1),i.setSelectionRange(0,0))};_webkitBlinkWheelListener=()=>{};_ensureWheelDefaultBehavior(){this._cleanupWebkitWheel?.(),this._type==="number"&&(this._platform.BLINK||this._platform.WEBKIT)&&(this._cleanupWebkitWheel=this._renderer.listen(this._elementRef.nativeElement,"wheel",this._webkitBlinkWheelListener))}_getReadonlyAttribute(){return this._isNativeSelect?null:this.readonly||this.disabled&&this.disabledInteractive?"true":null}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:21,hostBindings:function(i,n){i&1&&mA("focus",function(){return n._focusChanged(!0)})("blur",function(){return n._focusChanged(!1)})("input",function(){return n._onInput()}),i&2&&(Qa("id",n.id)("disabled",n.disabled&&!n.disabledInteractive)("required",n.required),Ke("name",n.name||null)("readonly",n._getReadonlyAttribute())("aria-disabled",n.disabled&&n.disabledInteractive?"true":null)("aria-invalid",n.empty&&n.required?null:n.errorState)("aria-required",n.required)("id",n.id),he("mat-input-server",n._isServer)("mat-mdc-form-field-textarea-control",n._isInFormField&&n._isTextarea)("mat-mdc-form-field-input-control",n._isInFormField)("mat-mdc-input-disabled-interactive",n.disabledInteractive)("mdc-text-field__input",n._isInFormField)("mat-mdc-native-select-inline",n._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly",disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge]},exportAs:["matInput"],features:[ut([{provide:gh,useExisting:t}]),Xt]})}return t})(),D6=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,U2,U2,p6,pn]})}return t})();var v6=new eA(""),Hk=(()=>{class t{_zone;_plugins;_eventNameToPlugin=new Map;constructor(A,i){this._zone=i,A.forEach(n=>{n.manager=this}),this._plugins=A.slice().reverse()}addEventListener(A,i,n,o){return this._findPluginFor(i).addEventListener(A,i,n,o)}getZone(){return this._zone}_findPluginFor(A){let i=this._eventNameToPlugin.get(A);if(i)return i;if(i=this._plugins.find(o=>o.supports(A)),!i)throw new te(5101,!1);return this._eventNameToPlugin.set(A,i),i}static \u0275fac=function(i){return new(i||t)(be(v6),be(ye))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),Ih=class{_doc;constructor(e){this._doc=e}manager},w6="ng-app-id";function tP(t){for(let e of t)e.remove()}function iP(t,e){let A=e.createElement("style");return A.textContent=t,A}function buA(t,e,A,i){let n=t.head?.querySelectorAll(`style[${w6}="${e}"],link[${w6}="${e}"]`);if(n)for(let o of n)o.removeAttribute(w6),o instanceof HTMLLinkElement?i.set(o.href.slice(o.href.lastIndexOf("/")+1),{usage:0,elements:[o]}):o.textContent&&A.set(o.textContent,{usage:0,elements:[o]})}function Yk(t,e){let A=e.createElement("link");return A.setAttribute("rel","stylesheet"),A.setAttribute("href",t),A}var Ok=(()=>{class t{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;isServer;constructor(A,i,n,o={}){this.doc=A,this.appId=i,this.nonce=n,this.isServer=Np(o),buA(A,i,this.inline,this.external),this.hosts.add(A.head)}addStyles(A,i){for(let n of A)this.addUsage(n,this.inline,iP);i?.forEach(n=>this.addUsage(n,this.external,Yk))}removeStyles(A,i){for(let n of A)this.removeUsage(n,this.inline);i?.forEach(n=>this.removeUsage(n,this.external))}addUsage(A,i,n){let o=i.get(A);o?o.usage++:i.set(A,{usage:1,elements:[...this.hosts].map(r=>this.addElement(r,n(A,this.doc)))})}removeUsage(A,i){let n=i.get(A);n&&(n.usage--,n.usage<=0&&(tP(n.elements),i.delete(A)))}ngOnDestroy(){for(let[,{elements:A}]of[...this.inline,...this.external])tP(A);this.hosts.clear()}addHost(A){this.hosts.add(A);for(let[i,{elements:n}]of this.inline)n.push(this.addElement(A,iP(i,this.doc)));for(let[i,{elements:n}]of this.external)n.push(this.addElement(A,Yk(i,this.doc)))}removeHost(A){this.hosts.delete(A)}addElement(A,i){return this.nonce&&i.setAttribute("nonce",this.nonce),this.isServer&&i.setAttribute(w6,this.appId),A.appendChild(i)}static \u0275fac=function(i){return new(i||t)(be(at),be(Vd),be(bu,8),be(El))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),Jk={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},zk=/%COMP%/g;var oP="%COMP%",kuA=`_nghost-${oP}`,SuA=`_ngcontent-${oP}`,RuA=!0,LuA=new eA("",{providedIn:"root",factory:()=>RuA});function xuA(t){return SuA.replace(zk,t)}function NuA(t){return kuA.replace(zk,t)}function rP(t,e){return e.map(A=>A.replace(zk,t))}var Bh=(()=>{class t{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;platformId;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;platformIsServer;constructor(A,i,n,o,r,s,a,c=null,g=null){this.eventManager=A,this.sharedStylesHost=i,this.appId=n,this.removeStylesOnCompDestroy=o,this.doc=r,this.platformId=s,this.ngZone=a,this.nonce=c,this.tracingService=g,this.platformIsServer=Np(s),this.defaultRenderer=new Ch(A,r,a,this.platformIsServer,this.tracingService)}createRenderer(A,i){if(!A||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===gl.ShadowDom&&(i=Fe(sA({},i),{encapsulation:gl.Emulated}));let n=this.getOrCreateRenderer(A,i);return n instanceof y6?n.applyToHost(A):n instanceof dh&&n.applyStyles(),n}getOrCreateRenderer(A,i){let n=this.rendererByCompId,o=n.get(i.id);if(!o){let r=this.doc,s=this.ngZone,a=this.eventManager,c=this.sharedStylesHost,g=this.removeStylesOnCompDestroy,I=this.platformIsServer,C=this.tracingService;switch(i.encapsulation){case gl.Emulated:o=new y6(a,c,i,this.appId,g,r,s,I,C);break;case gl.ShadowDom:return new Tk(a,c,A,i,r,s,this.nonce,I,C);default:o=new dh(a,c,i,g,r,s,I,C);break}n.set(i.id,o)}return o}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(A){this.rendererByCompId.delete(A)}static \u0275fac=function(i){return new(i||t)(be(Hk),be(Ok),be(Vd),be(LuA),be(at),be(El),be(ye),be(bu),be(Zd,8))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),Ch=class{eventManager;doc;ngZone;platformIsServer;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(e,A,i,n,o){this.eventManager=e,this.doc=A,this.ngZone=i,this.platformIsServer=n,this.tracingService=o}destroy(){}destroyNode=null;createElement(e,A){return A?this.doc.createElementNS(Jk[A]||A,e):this.doc.createElement(e)}createComment(e){return this.doc.createComment(e)}createText(e){return this.doc.createTextNode(e)}appendChild(e,A){(nP(e)?e.content:e).appendChild(A)}insertBefore(e,A,i){e&&(nP(e)?e.content:e).insertBefore(A,i)}removeChild(e,A){A.remove()}selectRootElement(e,A){let i=typeof e=="string"?this.doc.querySelector(e):e;if(!i)throw new te(-5104,!1);return A||(i.textContent=""),i}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,A,i,n){if(n){A=n+":"+A;let o=Jk[n];o?e.setAttributeNS(o,A,i):e.setAttribute(A,i)}else e.setAttribute(A,i)}removeAttribute(e,A,i){if(i){let n=Jk[i];n?e.removeAttributeNS(n,A):e.removeAttribute(`${i}:${A}`)}else e.removeAttribute(A)}addClass(e,A){e.classList.add(A)}removeClass(e,A){e.classList.remove(A)}setStyle(e,A,i,n){n&(ll.DashCase|ll.Important)?e.style.setProperty(A,i,n&ll.Important?"important":""):e.style[A]=i}removeStyle(e,A,i){i&ll.DashCase?e.style.removeProperty(A):e.style[A]=""}setProperty(e,A,i){e!=null&&(e[A]=i)}setValue(e,A){e.nodeValue=A}listen(e,A,i,n){if(typeof e=="string"&&(e=$a().getGlobalEventTarget(this.doc,e),!e))throw new te(5102,!1);let o=this.decoratePreventDefault(i);return this.tracingService?.wrapEventListener&&(o=this.tracingService.wrapEventListener(e,A,o)),this.eventManager.addEventListener(e,A,o,n)}decoratePreventDefault(e){return A=>{if(A==="__ngUnwrap__")return e;(this.platformIsServer?this.ngZone.runGuarded(()=>e(A)):e(A))===!1&&A.preventDefault()}}};function nP(t){return t.tagName==="TEMPLATE"&&t.content!==void 0}var Tk=class extends Ch{sharedStylesHost;hostEl;shadowRoot;constructor(e,A,i,n,o,r,s,a,c){super(e,o,r,a,c),this.sharedStylesHost=A,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);let g=n.styles;g=rP(n.id,g);for(let C of g){let d=document.createElement("style");s&&d.setAttribute("nonce",s),d.textContent=C,this.shadowRoot.appendChild(d)}let I=n.getExternalStyles?.();if(I)for(let C of I){let d=Yk(C,o);s&&d.setAttribute("nonce",s),this.shadowRoot.appendChild(d)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}appendChild(e,A){return super.appendChild(this.nodeOrShadowRoot(e),A)}insertBefore(e,A,i){return super.insertBefore(this.nodeOrShadowRoot(e),A,i)}removeChild(e,A){return super.removeChild(null,A)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}},dh=class extends Ch{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(e,A,i,n,o,r,s,a,c){super(e,o,r,s,a),this.sharedStylesHost=A,this.removeStylesOnCompDestroy=n;let g=i.styles;this.styles=c?rP(c,g):g,this.styleUrls=i.getExternalStyles?.(c)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},y6=class extends dh{contentAttr;hostAttr;constructor(e,A,i,n,o,r,s,a,c){let g=n+"-"+i.id;super(e,A,i,o,r,s,a,c,g),this.contentAttr=xuA(g),this.hostAttr=NuA(g)}applyToHost(e){this.applyStyles(),this.setAttribute(e,this.hostAttr,"")}createElement(e,A){let i=super.createElement(e,A);return super.setAttribute(i,this.contentAttr,""),i}};var M6=class t extends Uu{supportsDOMEvents=!0;static makeCurrent(){Fb(new t)}onAndCancel(e,A,i,n){return e.addEventListener(A,i,n),()=>{e.removeEventListener(A,i,n)}}dispatchEvent(e,A){e.dispatchEvent(A)}remove(e){e.remove()}createElement(e,A){return A=A||this.getDefaultDocument(),A.createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,A){return A==="window"?window:A==="document"?e:A==="body"?e.body:null}getBaseHref(e){let A=FuA();return A==null?null:_uA(A)}resetBaseElement(){Eh=null}getUserAgent(){return window.navigator.userAgent}getCookie(e){return zu(document.cookie,e)}},Eh=null;function FuA(){return Eh=Eh||document.head.querySelector("base"),Eh?Eh.getAttribute("href"):null}function _uA(t){return new URL(t,document.baseURI).pathname}var b6=class{addToWindow(e){Pa.getAngularTestability=(i,n=!0)=>{let o=e.findTestabilityInTree(i,n);if(o==null)throw new te(5103,!1);return o},Pa.getAllAngularTestabilities=()=>e.getAllTestabilities(),Pa.getAllAngularRootElements=()=>e.getAllRootElements();let A=i=>{let n=Pa.getAllAngularTestabilities(),o=n.length,r=function(){o--,o==0&&i()};n.forEach(s=>{s.whenStable(r)})};Pa.frameworkStabilizers||(Pa.frameworkStabilizers=[]),Pa.frameworkStabilizers.push(A)}findTestabilityInTree(e,A,i){if(A==null)return null;let n=e.getTestability(A);return n??(i?$a().isShadowRoot(A)?this.findTestabilityInTree(e,A.host,!0):this.findTestabilityInTree(e,A.parentElement,!0):null)}},GuA=(()=>{class t{build(){return new XMLHttpRequest}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),aP=(()=>{class t extends Ih{constructor(A){super(A)}supports(A){return!0}addEventListener(A,i,n,o){return A.addEventListener(i,n,o),()=>this.removeEventListener(A,i,n,o)}removeEventListener(A,i,n,o){return A.removeEventListener(i,n,o)}static \u0275fac=function(i){return new(i||t)(be(at))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),sP=["alt","control","meta","shift"],KuA={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},UuA={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey},cP=(()=>{class t extends Ih{constructor(A){super(A)}supports(A){return t.parseEventName(A)!=null}addEventListener(A,i,n,o){let r=t.parseEventName(i),s=t.eventCallback(r.fullKey,n,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>$a().onAndCancel(A,r.domEventName,s,o))}static parseEventName(A){let i=A.toLowerCase().split("."),n=i.shift();if(i.length===0||!(n==="keydown"||n==="keyup"))return null;let o=t._normalizeKey(i.pop()),r="",s=i.indexOf("code");if(s>-1&&(i.splice(s,1),r="code."),sP.forEach(c=>{let g=i.indexOf(c);g>-1&&(i.splice(g,1),r+=c+".")}),r+=o,i.length!=0||o.length===0)return null;let a={};return a.domEventName=n,a.fullKey=r,a}static matchEventFullKeyCode(A,i){let n=KuA[A.key]||A.key,o="";return i.indexOf("code.")>-1&&(n=A.code,o="code."),n==null||!n?!1:(n=n.toLowerCase(),n===" "?n="space":n==="."&&(n="dot"),sP.forEach(r=>{if(r!==n){let s=UuA[r];s(A)&&(o+=r+".")}}),o+=n,o===i)}static eventCallback(A,i,n){return o=>{t.matchEventFullKeyCode(o,A)&&n.runGuarded(()=>i(o))}}static _normalizeKey(A){return A==="esc"?"escape":A}static \u0275fac=function(i){return new(i||t)(be(at))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();function Pk(t,e,A){return sO(sA({rootComponent:t,platformRef:A?.platformRef},JuA(e)))}function JuA(t){return{appProviders:[...gP,...t?.providers??[]],platformProviders:OuA}}function YuA(){M6.makeCurrent()}function TuA(){return new Ps}function HuA(){return hT(document),document}var OuA=[{provide:El,useValue:xp},{provide:ZM,useValue:YuA,multi:!0},{provide:at,useFactory:HuA}];var zuA=[{provide:Fu,useClass:b6},{provide:pb,useClass:pp,deps:[ye,Dp,Fu]},{provide:pp,useClass:pp,deps:[ye,Dp,Fu]}],gP=[{provide:ip,useValue:"root"},{provide:Ps,useFactory:TuA},{provide:v6,useClass:aP,multi:!0,deps:[at]},{provide:v6,useClass:cP,multi:!0,deps:[at]},Bh,Ok,Hk,{provide:Ms,useExisting:Bh},{provide:KI,useClass:GuA},[]],jk=(()=>{class t{constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[...gP,...zuA],imports:[ug,rO]})}return t})();var lP=(()=>{class t{_doc;constructor(A){this._doc=A}getTitle(){return this._doc.title}setTitle(A){this._doc.title=A||""}static \u0275fac=function(i){return new(i||t)(be(at))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var oc=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:function(i){let n=null;return i?n=new(i||t):n=be(PuA),n},providedIn:"root"})}return t})(),PuA=(()=>{class t extends oc{_doc;constructor(A){super(),this._doc=A}sanitize(A,i){if(i==null)return null;switch(A){case Xr.NONE:return i;case Xr.HTML:return M2(i,"HTML")?dg(i):Ab(this._doc,String(i)).toString();case Xr.STYLE:return M2(i,"Style")?dg(i):i;case Xr.SCRIPT:if(M2(i,"Script"))return dg(i);throw new te(5200,!1);case Xr.URL:return M2(i,"URL")?dg(i):Cp(String(i));case Xr.RESOURCE_URL:if(M2(i,"ResourceURL"))return dg(i);throw new te(5201,!1);default:throw new te(5202,!1)}}bypassSecurityTrustHtml(A){return vT(A)}bypassSecurityTrustStyle(A){return MT(A)}bypassSecurityTrustScript(A){return bT(A)}bypassSecurityTrustUrl(A){return kT(A)}bypassSecurityTrustResourceUrl(A){return ST(A)}static \u0275fac=function(i){return new(i||t)(be(at))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function IP(t){return new te(3e3,!1)}function juA(){return new te(3100,!1)}function quA(){return new te(3101,!1)}function VuA(t){return new te(3001,!1)}function ZuA(t){return new te(3003,!1)}function WuA(t){return new te(3004,!1)}function dP(t,e){return new te(3005,!1)}function BP(){return new te(3006,!1)}function EP(){return new te(3007,!1)}function QP(t,e){return new te(3008,!1)}function uP(t){return new te(3002,!1)}function hP(t,e,A,i,n){return new te(3010,!1)}function fP(){return new te(3011,!1)}function mP(){return new te(3012,!1)}function pP(){return new te(3200,!1)}function DP(){return new te(3202,!1)}function wP(){return new te(3013,!1)}function yP(t){return new te(3014,!1)}function vP(t){return new te(3015,!1)}function MP(t){return new te(3016,!1)}function bP(t,e){return new te(3404,!1)}function XuA(t){return new te(3502,!1)}function kP(t){return new te(3503,!1)}function SP(){return new te(3300,!1)}function RP(t){return new te(3504,!1)}function LP(t){return new te(3301,!1)}function xP(t,e){return new te(3302,!1)}function NP(t){return new te(3303,!1)}function FP(t,e){return new te(3400,!1)}function _P(t){return new te(3401,!1)}function GP(t){return new te(3402,!1)}function KP(t,e){return new te(3505,!1)}function b0(t){switch(t.length){case 0:return new hl;case 1:return t[0];default:return new XI(t)}}function Wk(t,e,A=new Map,i=new Map){let n=[],o=[],r=-1,s=null;if(e.forEach(a=>{let c=a.get("offset"),g=c==r,I=g&&s||new Map;a.forEach((C,d)=>{let B=d,E=C;if(d!=="offset")switch(B=t.normalizePropertyName(B,n),E){case hB:E=A.get(d);break;case Rc:E=i.get(d);break;default:E=t.normalizeStyleValue(d,B,E,n);break}I.set(B,E)}),g||o.push(I),s=I,r=c}),n.length)throw XuA(n);return o}function k6(t,e,A,i){switch(e){case"start":t.onStart(()=>i(A&&qk(A,"start",t)));break;case"done":t.onDone(()=>i(A&&qk(A,"done",t)));break;case"destroy":t.onDestroy(()=>i(A&&qk(A,"destroy",t)));break}}function qk(t,e,A){let i=A.totalTime,n=!!A.disabled,o=S6(t.element,t.triggerName,t.fromState,t.toState,e||t.phaseName,i??t.totalTime,n),r=t._data;return r!=null&&(o._data=r),o}function S6(t,e,A,i,n="",o=0,r){return{element:t,triggerName:e,fromState:A,toState:i,phaseName:n,totalTime:o,disabled:!!r}}function ma(t,e,A){let i=t.get(e);return i||t.set(e,i=A),i}function Xk(t){let e=t.indexOf(":"),A=t.substring(1,e),i=t.slice(e+1);return[A,i]}var $uA=typeof document>"u"?null:document.documentElement;function R6(t){let e=t.parentNode||t.host||null;return e===$uA?null:e}function AhA(t){return t.substring(1,6)=="ebkit"}var $I=null,CP=!1;function UP(t){$I||($I=ehA()||{},CP=$I.style?"WebkitAppearance"in $I.style:!1);let e=!0;return $I.style&&!AhA(t)&&(e=t in $I.style,!e&&CP&&(e="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in $I.style)),e}function ehA(){return typeof document<"u"?document.body:null}function $k(t,e){for(;e;){if(e===t)return!0;e=R6(e)}return!1}function AS(t,e,A){if(A)return Array.from(t.querySelectorAll(e));let i=t.querySelector(e);return i?[i]:[]}var thA=1e3,eS="{{",ihA="}}",tS="ng-enter",L6="ng-leave",uh="ng-trigger",hh=".ng-trigger",iS="ng-animating",x6=".ng-animating";function ml(t){if(typeof t=="number")return t;let e=t.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:Vk(parseFloat(e[1]),e[2])}function Vk(t,e){switch(e){case"s":return t*thA;default:return t}}function fh(t,e,A){return t.hasOwnProperty("duration")?t:nhA(t,e,A)}function nhA(t,e,A){let i=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,n,o=0,r="";if(typeof t=="string"){let s=t.match(i);if(s===null)return e.push(IP(t)),{duration:0,delay:0,easing:""};n=Vk(parseFloat(s[1]),s[2]);let a=s[3];a!=null&&(o=Vk(parseFloat(a),s[4]));let c=s[5];c&&(r=c)}else n=t;if(!A){let s=!1,a=e.length;n<0&&(e.push(juA()),s=!0),o<0&&(e.push(quA()),s=!0),s&&e.splice(a,0,IP(t))}return{duration:n,delay:o,easing:r}}function JP(t){return t.length?t[0]instanceof Map?t:t.map(e=>new Map(Object.entries(e))):[]}function pg(t,e,A){e.forEach((i,n)=>{let o=N6(n);A&&!A.has(n)&&A.set(n,t.style[o]),t.style[o]=i})}function Y2(t,e){e.forEach((A,i)=>{let n=N6(i);t.style[n]=""})}function fB(t){return Array.isArray(t)?t.length==1?t[0]:Yz(t):t}function YP(t,e,A){let i=e.params||{},n=nS(t);n.length&&n.forEach(o=>{i.hasOwnProperty(o)||A.push(VuA(o))})}var Zk=new RegExp(`${eS}\\s*(.+?)\\s*${ihA}`,"g");function nS(t){let e=[];if(typeof t=="string"){let A;for(;A=Zk.exec(t);)e.push(A[1]);Zk.lastIndex=0}return e}function mB(t,e,A){let i=`${t}`,n=i.replace(Zk,(o,r)=>{let s=e[r];return s==null&&(A.push(ZuA(r)),s=""),s.toString()});return n==i?t:n}var ohA=/-+([a-z0-9])/g;function N6(t){return t.replace(ohA,(...e)=>e[1].toUpperCase())}function TP(t,e){return t===0||e===0}function HP(t,e,A){if(A.size&&e.length){let i=e[0],n=[];if(A.forEach((o,r)=>{i.has(r)||n.push(r),i.set(r,o)}),n.length)for(let o=1;or.set(s,F6(t,s)))}}return e}function pa(t,e,A){switch(e.type){case oi.Trigger:return t.visitTrigger(e,A);case oi.State:return t.visitState(e,A);case oi.Transition:return t.visitTransition(e,A);case oi.Sequence:return t.visitSequence(e,A);case oi.Group:return t.visitGroup(e,A);case oi.Animate:return t.visitAnimate(e,A);case oi.Keyframes:return t.visitKeyframes(e,A);case oi.Style:return t.visitStyle(e,A);case oi.Reference:return t.visitReference(e,A);case oi.AnimateChild:return t.visitAnimateChild(e,A);case oi.AnimateRef:return t.visitAnimateRef(e,A);case oi.Query:return t.visitQuery(e,A);case oi.Stagger:return t.visitStagger(e,A);default:throw WuA(e.type)}}function F6(t,e){return window.getComputedStyle(t)[e]}var mS=(()=>{class t{validateStyleProperty(A){return UP(A)}containsElement(A,i){return $k(A,i)}getParentElement(A){return R6(A)}query(A,i,n){return AS(A,i,n)}computeStyle(A,i,n){return n||""}animate(A,i,n,o,r,s=[],a){return new hl(n,o)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),eC=class{static NOOP=new mS},tC=class{};var rhA=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),J6=class extends tC{normalizePropertyName(e,A){return N6(e)}normalizeStyleValue(e,A,i,n){let o="",r=i.toString().trim();if(rhA.has(A)&&i!==0&&i!=="0")if(typeof i=="number")o="px";else{let s=i.match(/^[+-]?[\d\.]+([a-z]*)$/);s&&s[1].length==0&&n.push(dP(e,i))}return r+o}};var Y6="*";function shA(t,e){let A=[];return typeof t=="string"?t.split(/\s*,\s*/).forEach(i=>ahA(i,A,e)):A.push(t),A}function ahA(t,e,A){if(t[0]==":"){let a=chA(t,A);if(typeof a=="function"){e.push(a);return}t=a}let i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(i==null||i.length<4)return A.push(vP(t)),e;let n=i[1],o=i[2],r=i[3];e.push(OP(n,r));let s=n==Y6&&r==Y6;o[0]=="<"&&!s&&e.push(OP(r,n))}function chA(t,e){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(A,i)=>parseFloat(i)>parseFloat(A);case":decrement":return(A,i)=>parseFloat(i) *"}}var _6=new Set(["true","1"]),G6=new Set(["false","0"]);function OP(t,e){let A=_6.has(t)||G6.has(t),i=_6.has(e)||G6.has(e);return(n,o)=>{let r=t==Y6||t==n,s=e==Y6||e==o;return!r&&A&&typeof n=="boolean"&&(r=n?_6.has(t):G6.has(t)),!s&&i&&typeof o=="boolean"&&(s=o?_6.has(e):G6.has(e)),r&&s}}var Aj=":self",ghA=new RegExp(`s*${Aj}s*,?`,"g");function ej(t,e,A,i){return new gS(t).build(e,A,i)}var zP="",gS=class{_driver;constructor(e){this._driver=e}build(e,A,i){let n=new lS(A);return this._resetContextStyleTimingState(n),pa(this,fB(e),n)}_resetContextStyleTimingState(e){e.currentQuerySelector=zP,e.collectedStyles=new Map,e.collectedStyles.set(zP,new Map),e.currentTime=0}visitTrigger(e,A){let i=A.queryCount=0,n=A.depCount=0,o=[],r=[];return e.name.charAt(0)=="@"&&A.errors.push(BP()),e.definitions.forEach(s=>{if(this._resetContextStyleTimingState(A),s.type==oi.State){let a=s,c=a.name;c.toString().split(/\s*,\s*/).forEach(g=>{a.name=g,o.push(this.visitState(a,A))}),a.name=c}else if(s.type==oi.Transition){let a=this.visitTransition(s,A);i+=a.queryCount,n+=a.depCount,r.push(a)}else A.errors.push(EP())}),{type:oi.Trigger,name:e.name,states:o,transitions:r,queryCount:i,depCount:n,options:null}}visitState(e,A){let i=this.visitStyle(e.styles,A),n=e.options&&e.options.params||null;if(i.containsDynamicStyles){let o=new Set,r=n||{};i.styles.forEach(s=>{s instanceof Map&&s.forEach(a=>{nS(a).forEach(c=>{r.hasOwnProperty(c)||o.add(c)})})}),o.size&&A.errors.push(QP(e.name,[...o.values()]))}return{type:oi.State,name:e.name,style:i,options:n?{params:n}:null}}visitTransition(e,A){A.queryCount=0,A.depCount=0;let i=pa(this,fB(e.animation),A),n=shA(e.expr,A.errors);return{type:oi.Transition,matchers:n,animation:i,queryCount:A.queryCount,depCount:A.depCount,options:AC(e.options)}}visitSequence(e,A){return{type:oi.Sequence,steps:e.steps.map(i=>pa(this,i,A)),options:AC(e.options)}}visitGroup(e,A){let i=A.currentTime,n=0,o=e.steps.map(r=>{A.currentTime=i;let s=pa(this,r,A);return n=Math.max(n,A.currentTime),s});return A.currentTime=n,{type:oi.Group,steps:o,options:AC(e.options)}}visitAnimate(e,A){let i=dhA(e.timings,A.errors);A.currentAnimateTimings=i;let n,o=e.styles?e.styles:Do({});if(o.type==oi.Keyframes)n=this.visitKeyframes(o,A);else{let r=e.styles,s=!1;if(!r){s=!0;let c={};i.easing&&(c.easing=i.easing),r=Do(c)}A.currentTime+=i.duration+i.delay;let a=this.visitStyle(r,A);a.isEmptyStep=s,n=a}return A.currentAnimateTimings=null,{type:oi.Animate,timings:i,style:n,options:null}}visitStyle(e,A){let i=this._makeStyleAst(e,A);return this._validateStyleAst(i,A),i}_makeStyleAst(e,A){let i=[],n=Array.isArray(e.styles)?e.styles:[e.styles];for(let s of n)typeof s=="string"?s===Rc?i.push(s):A.errors.push(uP(s)):i.push(new Map(Object.entries(s)));let o=!1,r=null;return i.forEach(s=>{if(s instanceof Map&&(s.has("easing")&&(r=s.get("easing"),s.delete("easing")),!o)){for(let a of s.values())if(a.toString().indexOf(eS)>=0){o=!0;break}}}),{type:oi.Style,styles:i,easing:r,offset:e.offset,containsDynamicStyles:o,options:null}}_validateStyleAst(e,A){let i=A.currentAnimateTimings,n=A.currentTime,o=A.currentTime;i&&o>0&&(o-=i.duration+i.delay),e.styles.forEach(r=>{typeof r!="string"&&r.forEach((s,a)=>{let c=A.collectedStyles.get(A.currentQuerySelector),g=c.get(a),I=!0;g&&(o!=n&&o>=g.startTime&&n<=g.endTime&&(A.errors.push(hP(a,g.startTime,g.endTime,o,n)),I=!1),o=g.startTime),I&&c.set(a,{startTime:o,endTime:n}),A.options&&YP(s,A.options,A.errors)})})}visitKeyframes(e,A){let i={type:oi.Keyframes,styles:[],options:null};if(!A.currentAnimateTimings)return A.errors.push(fP()),i;let n=1,o=0,r=[],s=!1,a=!1,c=0,g=e.steps.map(h=>{let w=this._makeStyleAst(h,A),x=w.offset!=null?w.offset:ChA(w.styles),R=0;return x!=null&&(o++,R=w.offset=x),a=a||R<0||R>1,s=s||R0&&o{let x=C>0?w==d?1:C*w:r[w],R=x*u;A.currentTime=B+E.delay+R,E.duration=R,this._validateStyleAst(h,A),h.offset=x,i.styles.push(h)}),i}visitReference(e,A){return{type:oi.Reference,animation:pa(this,fB(e.animation),A),options:AC(e.options)}}visitAnimateChild(e,A){return A.depCount++,{type:oi.AnimateChild,options:AC(e.options)}}visitAnimateRef(e,A){return{type:oi.AnimateRef,animation:this.visitReference(e.animation,A),options:AC(e.options)}}visitQuery(e,A){let i=A.currentQuerySelector,n=e.options||{};A.queryCount++,A.currentQuery=e;let[o,r]=lhA(e.selector);A.currentQuerySelector=i.length?i+" "+o:o,ma(A.collectedStyles,A.currentQuerySelector,new Map);let s=pa(this,fB(e.animation),A);return A.currentQuery=null,A.currentQuerySelector=i,{type:oi.Query,selector:o,limit:n.limit||0,optional:!!n.optional,includeSelf:r,animation:s,originalSelector:e.selector,options:AC(e.options)}}visitStagger(e,A){A.currentQuery||A.errors.push(wP());let i=e.timings==="full"?{duration:0,delay:0,easing:"full"}:fh(e.timings,A.errors,!0);return{type:oi.Stagger,animation:pa(this,fB(e.animation),A),timings:i,options:null}}};function lhA(t){let e=!!t.split(/\s*,\s*/).find(A=>A==Aj);return e&&(t=t.replace(ghA,"")),t=t.replace(/@\*/g,hh).replace(/@\w+/g,A=>hh+"-"+A.slice(1)).replace(/:animating/g,x6),[t,e]}function IhA(t){return t?sA({},t):null}var lS=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(e){this.errors=e}};function ChA(t){if(typeof t=="string")return null;let e=null;if(Array.isArray(t))t.forEach(A=>{if(A instanceof Map&&A.has("offset")){let i=A;e=parseFloat(i.get("offset")),i.delete("offset")}});else if(t instanceof Map&&t.has("offset")){let A=t;e=parseFloat(A.get("offset")),A.delete("offset")}return e}function dhA(t,e){if(t.hasOwnProperty("duration"))return t;if(typeof t=="number"){let o=fh(t,e).duration;return oS(o,0,"")}let A=t;if(A.split(/\s+/).some(o=>o.charAt(0)=="{"&&o.charAt(1)=="{")){let o=oS(0,0,"");return o.dynamic=!0,o.strValue=A,o}let n=fh(A,e);return oS(n.duration,n.delay,n.easing)}function AC(t){return t?(t=sA({},t),t.params&&(t.params=IhA(t.params))):t={},t}function oS(t,e,A){return{duration:t,delay:e,easing:A}}function pS(t,e,A,i,n,o,r=null,s=!1){return{type:1,element:t,keyframes:e,preStyleProps:A,postStyleProps:i,duration:n,delay:o,totalTime:n+o,easing:r,subTimeline:s}}var ph=class{_map=new Map;get(e){return this._map.get(e)||[]}append(e,A){let i=this._map.get(e);i||this._map.set(e,i=[]),i.push(...A)}has(e){return this._map.has(e)}clear(){this._map.clear()}},BhA=1,EhA=":enter",QhA=new RegExp(EhA,"g"),uhA=":leave",hhA=new RegExp(uhA,"g");function tj(t,e,A,i,n,o=new Map,r=new Map,s,a,c=[]){return new IS().buildKeyframes(t,e,A,i,n,o,r,s,a,c)}var IS=class{buildKeyframes(e,A,i,n,o,r,s,a,c,g=[]){c=c||new ph;let I=new CS(e,A,c,n,o,g,[]);I.options=a;let C=a.delay?ml(a.delay):0;I.currentTimeline.delayNextStep(C),I.currentTimeline.setStyles([r],null,I.errors,a),pa(this,i,I);let d=I.timelines.filter(B=>B.containsAnimation());if(d.length&&s.size){let B;for(let E=d.length-1;E>=0;E--){let u=d[E];if(u.element===A){B=u;break}}B&&!B.allowOnlyTimelineStyles()&&B.setStyles([s],null,I.errors,a)}return d.length?d.map(B=>B.buildKeyframes()):[pS(A,[],[],[],0,C,"",!1)]}visitTrigger(e,A){}visitState(e,A){}visitTransition(e,A){}visitAnimateChild(e,A){let i=A.subInstructions.get(A.element);if(i){let n=A.createSubContext(e.options),o=A.currentTimeline.currentTime,r=this._visitSubInstructions(i,n,n.options);o!=r&&A.transformIntoNewTimeline(r)}A.previousNode=e}visitAnimateRef(e,A){let i=A.createSubContext(e.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([e.options,e.animation.options],A,i),this.visitReference(e.animation,i),A.transformIntoNewTimeline(i.currentTimeline.currentTime),A.previousNode=e}_applyAnimationRefDelays(e,A,i){for(let n of e){let o=n?.delay;if(o){let r=typeof o=="number"?o:ml(mB(o,n?.params??{},A.errors));i.delayNextStep(r)}}}_visitSubInstructions(e,A,i){let o=A.currentTimeline.currentTime,r=i.duration!=null?ml(i.duration):null,s=i.delay!=null?ml(i.delay):null;return r!==0&&e.forEach(a=>{let c=A.appendInstructionToTimeline(a,r,s);o=Math.max(o,c.duration+c.delay)}),o}visitReference(e,A){A.updateOptions(e.options,!0),pa(this,e.animation,A),A.previousNode=e}visitSequence(e,A){let i=A.subContextCount,n=A,o=e.options;if(o&&(o.params||o.delay)&&(n=A.createSubContext(o),n.transformIntoNewTimeline(),o.delay!=null)){n.previousNode.type==oi.Style&&(n.currentTimeline.snapshotCurrentStyles(),n.previousNode=T6);let r=ml(o.delay);n.delayNextStep(r)}e.steps.length&&(e.steps.forEach(r=>pa(this,r,n)),n.currentTimeline.applyStylesToKeyframe(),n.subContextCount>i&&n.transformIntoNewTimeline()),A.previousNode=e}visitGroup(e,A){let i=[],n=A.currentTimeline.currentTime,o=e.options&&e.options.delay?ml(e.options.delay):0;e.steps.forEach(r=>{let s=A.createSubContext(e.options);o&&s.delayNextStep(o),pa(this,r,s),n=Math.max(n,s.currentTimeline.currentTime),i.push(s.currentTimeline)}),i.forEach(r=>A.currentTimeline.mergeTimelineCollectedStyles(r)),A.transformIntoNewTimeline(n),A.previousNode=e}_visitTiming(e,A){if(e.dynamic){let i=e.strValue,n=A.params?mB(i,A.params,A.errors):i;return fh(n,A.errors)}else return{duration:e.duration,delay:e.delay,easing:e.easing}}visitAnimate(e,A){let i=A.currentAnimateTimings=this._visitTiming(e.timings,A),n=A.currentTimeline;i.delay&&(A.incrementTime(i.delay),n.snapshotCurrentStyles());let o=e.style;o.type==oi.Keyframes?this.visitKeyframes(o,A):(A.incrementTime(i.duration),this.visitStyle(o,A),n.applyStylesToKeyframe()),A.currentAnimateTimings=null,A.previousNode=e}visitStyle(e,A){let i=A.currentTimeline,n=A.currentAnimateTimings;!n&&i.hasCurrentStyleProperties()&&i.forwardFrame();let o=n&&n.easing||e.easing;e.isEmptyStep?i.applyEmptyStep(o):i.setStyles(e.styles,o,A.errors,A.options),A.previousNode=e}visitKeyframes(e,A){let i=A.currentAnimateTimings,n=A.currentTimeline.duration,o=i.duration,s=A.createSubContext().currentTimeline;s.easing=i.easing,e.styles.forEach(a=>{let c=a.offset||0;s.forwardTime(c*o),s.setStyles(a.styles,a.easing,A.errors,A.options),s.applyStylesToKeyframe()}),A.currentTimeline.mergeTimelineCollectedStyles(s),A.transformIntoNewTimeline(n+o),A.previousNode=e}visitQuery(e,A){let i=A.currentTimeline.currentTime,n=e.options||{},o=n.delay?ml(n.delay):0;o&&(A.previousNode.type===oi.Style||i==0&&A.currentTimeline.hasCurrentStyleProperties())&&(A.currentTimeline.snapshotCurrentStyles(),A.previousNode=T6);let r=i,s=A.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!n.optional,A.errors);A.currentQueryTotal=s.length;let a=null;s.forEach((c,g)=>{A.currentQueryIndex=g;let I=A.createSubContext(e.options,c);o&&I.delayNextStep(o),c===A.element&&(a=I.currentTimeline),pa(this,e.animation,I),I.currentTimeline.applyStylesToKeyframe();let C=I.currentTimeline.currentTime;r=Math.max(r,C)}),A.currentQueryIndex=0,A.currentQueryTotal=0,A.transformIntoNewTimeline(r),a&&(A.currentTimeline.mergeTimelineCollectedStyles(a),A.currentTimeline.snapshotCurrentStyles()),A.previousNode=e}visitStagger(e,A){let i=A.parentContext,n=A.currentTimeline,o=e.timings,r=Math.abs(o.duration),s=r*(A.currentQueryTotal-1),a=r*A.currentQueryIndex;switch(o.duration<0?"reverse":o.easing){case"reverse":a=s-a;break;case"full":a=i.currentStaggerTime;break}let g=A.currentTimeline;a&&g.delayNextStep(a);let I=g.currentTime;pa(this,e.animation,A),A.previousNode=e,i.currentStaggerTime=n.currentTime-I+(n.startTime-i.currentTimeline.startTime)}},T6={},CS=class t{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=T6;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(e,A,i,n,o,r,s,a){this._driver=e,this.element=A,this.subInstructions=i,this._enterClassName=n,this._leaveClassName=o,this.errors=r,this.timelines=s,this.currentTimeline=a||new H6(this._driver,A,0),s.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(e,A){if(!e)return;let i=e,n=this.options;i.duration!=null&&(n.duration=ml(i.duration)),i.delay!=null&&(n.delay=ml(i.delay));let o=i.params;if(o){let r=n.params;r||(r=this.options.params={}),Object.keys(o).forEach(s=>{(!A||!r.hasOwnProperty(s))&&(r[s]=mB(o[s],r,this.errors))})}}_copyOptions(){let e={};if(this.options){let A=this.options.params;if(A){let i=e.params={};Object.keys(A).forEach(n=>{i[n]=A[n]})}}return e}createSubContext(e=null,A,i){let n=A||this.element,o=new t(this._driver,n,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(n,i||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(e),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o}transformIntoNewTimeline(e){return this.previousNode=T6,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(e,A,i){let n={duration:A??e.duration,delay:this.currentTimeline.currentTime+(i??0)+e.delay,easing:""},o=new dS(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,n,e.stretchStartingKeyframe);return this.timelines.push(o),n}incrementTime(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)}delayNextStep(e){e>0&&this.currentTimeline.delayNextStep(e)}invokeQuery(e,A,i,n,o,r){let s=[];if(n&&s.push(this.element),e.length>0){e=e.replace(QhA,"."+this._enterClassName),e=e.replace(hhA,"."+this._leaveClassName);let a=i!=1,c=this._driver.query(this.element,e,a);i!==0&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),s.push(...c)}return!o&&s.length==0&&r.push(yP(A)),s}},H6=class t{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(e,A,i,n){this._driver=e,this.element=A,this.startTime=i,this._elementTimelineStylesLookup=n,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(A),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(A,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(e){let A=this._keyframes.size===1&&this._pendingStyles.size;this.duration||A?(this.forwardTime(this.currentTime+e),A&&this.snapshotCurrentStyles()):this.startTime+=e}fork(e,A){return this.applyStylesToKeyframe(),new t(this._driver,e,A||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=BhA,this._loadKeyframe()}forwardTime(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()}_updateStyle(e,A){this._localTimelineStyles.set(e,A),this._globalTimelineStyles.set(e,A),this._styleSummary.set(e,{time:this.currentTime,value:A})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(e){e&&this._previousKeyframe.set("easing",e);for(let[A,i]of this._globalTimelineStyles)this._backFill.set(A,i||Rc),this._currentKeyframe.set(A,Rc);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(e,A,i,n){A&&this._previousKeyframe.set("easing",A);let o=n&&n.params||{},r=fhA(e,this._globalTimelineStyles);for(let[s,a]of r){let c=mB(a,o,i);this._pendingStyles.set(s,c),this._localTimelineStyles.has(s)||this._backFill.set(s,this._globalTimelineStyles.get(s)??Rc),this._updateStyle(s,c)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((e,A)=>{this._currentKeyframe.set(A,e)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((e,A)=>{this._currentKeyframe.has(A)||this._currentKeyframe.set(A,e)}))}snapshotCurrentStyles(){for(let[e,A]of this._localTimelineStyles)this._pendingStyles.set(e,A),this._updateStyle(e,A)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let e=[];for(let A in this._currentKeyframe)e.push(A);return e}mergeTimelineCollectedStyles(e){e._styleSummary.forEach((A,i)=>{let n=this._styleSummary.get(i);(!n||A.time>n.time)&&this._updateStyle(i,A.value)})}buildKeyframes(){this.applyStylesToKeyframe();let e=new Set,A=new Set,i=this._keyframes.size===1&&this.duration===0,n=[];this._keyframes.forEach((s,a)=>{let c=new Map([...this._backFill,...s]);c.forEach((g,I)=>{g===hB?e.add(I):g===Rc&&A.add(I)}),i||c.set("offset",a/this.duration),n.push(c)});let o=[...e.values()],r=[...A.values()];if(i){let s=n[0],a=new Map(s);s.set("offset",0),a.set("offset",1),n=[s,a]}return pS(this.element,n,o,r,this.duration,this.startTime,this.easing,!1)}},dS=class extends H6{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(e,A,i,n,o,r,s=!1){super(e,A,r.delay),this.keyframes=i,this.preStyleProps=n,this.postStyleProps=o,this._stretchStartingKeyframe=s,this.timings={duration:r.duration,delay:r.delay,easing:r.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let e=this.keyframes,{delay:A,duration:i,easing:n}=this.timings;if(this._stretchStartingKeyframe&&A){let o=[],r=i+A,s=A/r,a=new Map(e[0]);a.set("offset",0),o.push(a);let c=new Map(e[0]);c.set("offset",PP(s)),o.push(c);let g=e.length-1;for(let I=1;I<=g;I++){let C=new Map(e[I]),d=C.get("offset"),B=A+d*i;C.set("offset",PP(B/r)),o.push(C)}i=r,A=0,n="",e=o}return pS(this.element,e,this.preStyleProps,this.postStyleProps,i,A,n,!0)}};function PP(t,e=3){let A=Math.pow(10,e-1);return Math.round(t*A)/A}function fhA(t,e){let A=new Map,i;return t.forEach(n=>{if(n==="*"){i??=e.keys();for(let o of i)A.set(o,Rc)}else for(let[o,r]of n)A.set(o,r)}),A}function jP(t,e,A,i,n,o,r,s,a,c,g,I,C){return{type:0,element:t,triggerName:e,isRemovalTransition:n,fromState:A,fromStyles:o,toState:i,toStyles:r,timelines:s,queriedElements:a,preStyleProps:c,postStyleProps:g,totalTime:I,errors:C}}var rS={},O6=class{_triggerName;ast;_stateStyles;constructor(e,A,i){this._triggerName=e,this.ast=A,this._stateStyles=i}match(e,A,i,n){return mhA(this.ast.matchers,e,A,i,n)}buildStyles(e,A,i){let n=this._stateStyles.get("*");return e!==void 0&&(n=this._stateStyles.get(e?.toString())||n),n?n.buildStyles(A,i):new Map}build(e,A,i,n,o,r,s,a,c,g){let I=[],C=this.ast.options&&this.ast.options.params||rS,d=s&&s.params||rS,B=this.buildStyles(i,d,I),E=a&&a.params||rS,u=this.buildStyles(n,E,I),h=new Set,w=new Map,x=new Map,R=n==="void",D={params:ij(E,C),delay:this.ast.options?.delay},G=g?[]:tj(e,A,this.ast.animation,o,r,B,u,D,c,I),J=0;return G.forEach(z=>{J=Math.max(z.duration+z.delay,J)}),I.length?jP(A,this._triggerName,i,n,R,B,u,[],[],w,x,J,I):(G.forEach(z=>{let K=z.element,O=ma(w,K,new Set);z.preStyleProps.forEach(j=>O.add(j));let V=ma(x,K,new Set);z.postStyleProps.forEach(j=>V.add(j)),K!==A&&h.add(K)}),jP(A,this._triggerName,i,n,R,B,u,G,[...h.values()],w,x,J))}};function mhA(t,e,A,i,n){return t.some(o=>o(e,A,i,n))}function ij(t,e){let A=sA({},e);return Object.entries(t).forEach(([i,n])=>{n!=null&&(A[i]=n)}),A}var BS=class{styles;defaultParams;normalizer;constructor(e,A,i){this.styles=e,this.defaultParams=A,this.normalizer=i}buildStyles(e,A){let i=new Map,n=ij(e,this.defaultParams);return this.styles.styles.forEach(o=>{typeof o!="string"&&o.forEach((r,s)=>{r&&(r=mB(r,n,A));let a=this.normalizer.normalizePropertyName(s,A);r=this.normalizer.normalizeStyleValue(s,a,r,A),i.set(s,r)})}),i}};function phA(t,e,A){return new ES(t,e,A)}var ES=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(e,A,i){this.name=e,this.ast=A,this._normalizer=i,A.states.forEach(n=>{let o=n.options&&n.options.params||{};this.states.set(n.name,new BS(n.style,o,i))}),qP(this.states,"true","1"),qP(this.states,"false","0"),A.transitions.forEach(n=>{this.transitionFactories.push(new O6(e,n,this.states))}),this.fallbackTransition=DhA(e,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(e,A,i,n){return this.transitionFactories.find(r=>r.match(e,A,i,n))||null}matchStyles(e,A,i){return this.fallbackTransition.buildStyles(e,A,i)}};function DhA(t,e,A){let i=[(r,s)=>!0],n={type:oi.Sequence,steps:[],options:null},o={type:oi.Transition,animation:n,matchers:i,options:null,queryCount:0,depCount:0};return new O6(t,o,e)}function qP(t,e,A){t.has(e)?t.has(A)||t.set(A,t.get(e)):t.has(A)&&t.set(e,t.get(A))}var whA=new ph,QS=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(e,A,i){this.bodyNode=e,this._driver=A,this._normalizer=i}register(e,A){let i=[],n=[],o=ej(this._driver,A,i,n);if(i.length)throw kP(i);this._animations.set(e,o)}_buildPlayer(e,A,i){let n=e.element,o=Wk(this._normalizer,e.keyframes,A,i);return this._driver.animate(n,o,e.duration,e.delay,e.easing,[],!0)}create(e,A,i={}){let n=[],o=this._animations.get(e),r,s=new Map;if(o?(r=tj(this._driver,A,o,tS,L6,new Map,new Map,i,whA,n),r.forEach(g=>{let I=ma(s,g.element,new Map);g.postStyleProps.forEach(C=>I.set(C,null))})):(n.push(SP()),r=[]),n.length)throw RP(n);s.forEach((g,I)=>{g.forEach((C,d)=>{g.set(d,this._driver.computeStyle(I,d,Rc))})});let a=r.map(g=>{let I=s.get(g.element);return this._buildPlayer(g,new Map,I)}),c=b0(a);return this._playersById.set(e,c),c.onDestroy(()=>this.destroy(e)),this.players.push(c),c}destroy(e){let A=this._getPlayer(e);A.destroy(),this._playersById.delete(e);let i=this.players.indexOf(A);i>=0&&this.players.splice(i,1)}_getPlayer(e){let A=this._playersById.get(e);if(!A)throw LP(e);return A}listen(e,A,i,n){let o=S6(A,"","","");return k6(this._getPlayer(e),i,o,n),()=>{}}command(e,A,i,n){if(i=="register"){this.register(e,n[0]);return}if(i=="create"){let r=n[0]||{};this.create(e,A,r);return}let o=this._getPlayer(e);switch(i){case"play":o.play();break;case"pause":o.pause();break;case"reset":o.reset();break;case"restart":o.restart();break;case"finish":o.finish();break;case"init":o.init();break;case"setPosition":o.setPosition(parseFloat(n[0]));break;case"destroy":this.destroy(e);break}}},VP="ng-animate-queued",yhA=".ng-animate-queued",sS="ng-animate-disabled",vhA=".ng-animate-disabled",MhA="ng-star-inserted",bhA=".ng-star-inserted",khA=[],nj={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},ShA={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Dg="__ng_removed",Dh=class{namespaceId;value;options;get params(){return this.options.params}constructor(e,A=""){this.namespaceId=A;let i=e&&e.hasOwnProperty("value"),n=i?e.value:e;if(this.value=LhA(n),i){let o=e,{value:r}=o,s=pv(o,["value"]);this.options=s}else this.options={};this.options.params||(this.options.params={})}absorbOptions(e){let A=e.params;if(A){let i=this.options.params;Object.keys(A).forEach(n=>{i[n]==null&&(i[n]=A[n])})}}},mh="void",aS=new Dh(mh),uS=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(e,A,i){this.id=e,this.hostElement=A,this._engine=i,this._hostClassName="ng-tns-"+e,Lc(A,this._hostClassName)}listen(e,A,i,n){if(!this._triggers.has(A))throw xP(i,A);if(i==null||i.length==0)throw NP(A);if(!xhA(i))throw FP(i,A);let o=ma(this._elementListeners,e,[]),r={name:A,phase:i,callback:n};o.push(r);let s=ma(this._engine.statesByElement,e,new Map);return s.has(A)||(Lc(e,uh),Lc(e,uh+"-"+A),s.set(A,aS)),()=>{this._engine.afterFlush(()=>{let a=o.indexOf(r);a>=0&&o.splice(a,1),this._triggers.has(A)||s.delete(A)})}}register(e,A){return this._triggers.has(e)?!1:(this._triggers.set(e,A),!0)}_getTrigger(e){let A=this._triggers.get(e);if(!A)throw _P(e);return A}trigger(e,A,i,n=!0){let o=this._getTrigger(A),r=new wh(this.id,A,e),s=this._engine.statesByElement.get(e);s||(Lc(e,uh),Lc(e,uh+"-"+A),this._engine.statesByElement.set(e,s=new Map));let a=s.get(A),c=new Dh(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&a&&c.absorbOptions(a.options),s.set(A,c),a||(a=aS),!(c.value===mh)&&a.value===c.value){if(!_hA(a.params,c.params)){let E=[],u=o.matchStyles(a.value,a.params,E),h=o.matchStyles(c.value,c.params,E);E.length?this._engine.reportError(E):this._engine.afterFlush(()=>{Y2(e,u),pg(e,h)})}return}let C=ma(this._engine.playersByElement,e,[]);C.forEach(E=>{E.namespaceId==this.id&&E.triggerName==A&&E.queued&&E.destroy()});let d=o.matchTransition(a.value,c.value,e,c.params),B=!1;if(!d){if(!n)return;d=o.fallbackTransition,B=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:A,transition:d,fromState:a,toState:c,player:r,isFallbackTransition:B}),B||(Lc(e,VP),r.onStart(()=>{pB(e,VP)})),r.onDone(()=>{let E=this.players.indexOf(r);E>=0&&this.players.splice(E,1);let u=this._engine.playersByElement.get(e);if(u){let h=u.indexOf(r);h>=0&&u.splice(h,1)}}),this.players.push(r),C.push(r),r}deregister(e){this._triggers.delete(e),this._engine.statesByElement.forEach(A=>A.delete(e)),this._elementListeners.forEach((A,i)=>{this._elementListeners.set(i,A.filter(n=>n.name!=e))})}clearElementCache(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);let A=this._engine.playersByElement.get(e);A&&(A.forEach(i=>i.destroy()),this._engine.playersByElement.delete(e))}_signalRemovalForInnerTriggers(e,A){let i=this._engine.driver.query(e,hh,!0);i.forEach(n=>{if(n[Dg])return;let o=this._engine.fetchNamespacesByElement(n);o.size?o.forEach(r=>r.triggerLeaveAnimation(n,A,!1,!0)):this.clearElementCache(n)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(n=>this.clearElementCache(n)))}triggerLeaveAnimation(e,A,i,n){let o=this._engine.statesByElement.get(e),r=new Map;if(o){let s=[];if(o.forEach((a,c)=>{if(r.set(c,a.value),this._triggers.has(c)){let g=this.trigger(e,c,mh,n);g&&s.push(g)}}),s.length)return this._engine.markElementAsRemoved(this.id,e,!0,A,r),i&&b0(s).onDone(()=>this._engine.processLeaveNode(e)),!0}return!1}prepareLeaveAnimationListeners(e){let A=this._elementListeners.get(e),i=this._engine.statesByElement.get(e);if(A&&i){let n=new Set;A.forEach(o=>{let r=o.name;if(n.has(r))return;n.add(r);let a=this._triggers.get(r).fallbackTransition,c=i.get(r)||aS,g=new Dh(mh),I=new wh(this.id,r,e);this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:r,transition:a,fromState:c,toState:g,player:I,isFallbackTransition:!0})})}}removeNode(e,A){let i=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,A),this.triggerLeaveAnimation(e,A,!0))return;let n=!1;if(i.totalAnimations){let o=i.players.length?i.playersByQueriedElement.get(e):[];if(o&&o.length)n=!0;else{let r=e;for(;r=r.parentNode;)if(i.statesByElement.get(r)){n=!0;break}}}if(this.prepareLeaveAnimationListeners(e),n)i.markElementAsRemoved(this.id,e,!1,A);else{let o=e[Dg];(!o||o===nj)&&(i.afterFlush(()=>this.clearElementCache(e)),i.destroyInnerAnimations(e),i._onRemovalComplete(e,A))}}insertNode(e,A){Lc(e,this._hostClassName)}drainQueuedTransitions(e){let A=[];return this._queue.forEach(i=>{let n=i.player;if(n.destroyed)return;let o=i.element,r=this._elementListeners.get(o);r&&r.forEach(s=>{if(s.name==i.triggerName){let a=S6(o,i.triggerName,i.fromState.value,i.toState.value);a._data=e,k6(i.player,s.phase,a,s.callback)}}),n.markedForDestroy?this._engine.afterFlush(()=>{n.destroy()}):A.push(i)}),this._queue=[],A.sort((i,n)=>{let o=i.transition.ast.depCount,r=n.transition.ast.depCount;return o==0||r==0?o-r:this._engine.driver.containsElement(i.element,n.element)?1:-1})}destroy(e){this.players.forEach(A=>A.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,e)}},hS=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(e,A)=>{};_onRemovalComplete(e,A){this.onRemovalComplete(e,A)}constructor(e,A,i){this.bodyNode=e,this.driver=A,this._normalizer=i}get queuedPlayers(){let e=[];return this._namespaceList.forEach(A=>{A.players.forEach(i=>{i.queued&&e.push(i)})}),e}createNamespace(e,A){let i=new uS(e,A,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,A)?this._balanceNamespaceList(i,A):(this.newHostElements.set(A,i),this.collectEnterElement(A)),this._namespaceLookup[e]=i}_balanceNamespaceList(e,A){let i=this._namespaceList,n=this.namespacesByHostElement;if(i.length-1>=0){let r=!1,s=this.driver.getParentElement(A);for(;s;){let a=n.get(s);if(a){let c=i.indexOf(a);i.splice(c+1,0,e),r=!0;break}s=this.driver.getParentElement(s)}r||i.unshift(e)}else i.push(e);return n.set(A,e),e}register(e,A){let i=this._namespaceLookup[e];return i||(i=this.createNamespace(e,A)),i}registerTrigger(e,A,i){let n=this._namespaceLookup[e];n&&n.register(A,i)&&this.totalAnimations++}destroy(e,A){e&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let i=this._fetchNamespace(e);this.namespacesByHostElement.delete(i.hostElement);let n=this._namespaceList.indexOf(i);n>=0&&this._namespaceList.splice(n,1),i.destroy(A),delete this._namespaceLookup[e]}))}_fetchNamespace(e){return this._namespaceLookup[e]}fetchNamespacesByElement(e){let A=new Set,i=this.statesByElement.get(e);if(i){for(let n of i.values())if(n.namespaceId){let o=this._fetchNamespace(n.namespaceId);o&&A.add(o)}}return A}trigger(e,A,i,n){if(K6(A)){let o=this._fetchNamespace(e);if(o)return o.trigger(A,i,n),!0}return!1}insertNode(e,A,i,n){if(!K6(A))return;let o=A[Dg];if(o&&o.setForRemoval){o.setForRemoval=!1,o.setForMove=!0;let r=this.collectedLeaveElements.indexOf(A);r>=0&&this.collectedLeaveElements.splice(r,1)}if(e){let r=this._fetchNamespace(e);r&&r.insertNode(A,i)}n&&this.collectEnterElement(A)}collectEnterElement(e){this.collectedEnterElements.push(e)}markElementAsDisabled(e,A){A?this.disabledNodes.has(e)||(this.disabledNodes.add(e),Lc(e,sS)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),pB(e,sS))}removeNode(e,A,i){if(K6(A)){let n=e?this._fetchNamespace(e):null;n?n.removeNode(A,i):this.markElementAsRemoved(e,A,!1,i);let o=this.namespacesByHostElement.get(A);o&&o.id!==e&&o.removeNode(A,i)}else this._onRemovalComplete(A,i)}markElementAsRemoved(e,A,i,n,o){this.collectedLeaveElements.push(A),A[Dg]={namespaceId:e,setForRemoval:n,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:o}}listen(e,A,i,n,o){return K6(A)?this._fetchNamespace(e).listen(A,i,n,o):()=>{}}_buildInstruction(e,A,i,n,o){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,i,n,e.fromState.options,e.toState.options,A,o)}destroyInnerAnimations(e){let A=this.driver.query(e,hh,!0);A.forEach(i=>this.destroyActiveAnimationsForElement(i)),this.playersByQueriedElement.size!=0&&(A=this.driver.query(e,x6,!0),A.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(e){let A=this.playersByElement.get(e);A&&A.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(e){let A=this.playersByQueriedElement.get(e);A&&A.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(e=>{if(this.players.length)return b0(this.players).onDone(()=>e());e()})}processLeaveNode(e){let A=e[Dg];if(A&&A.setForRemoval){if(e[Dg]=nj,A.namespaceId){this.destroyInnerAnimations(e);let i=this._fetchNamespace(A.namespaceId);i&&i.clearElementCache(e)}this._onRemovalComplete(e,A.setForRemoval)}e.classList?.contains(sS)&&this.markElementAsDisabled(e,!1),this.driver.query(e,vhA,!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(e=-1){let A=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,n)=>this._balanceNamespaceList(i,n)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){let i=this._whenQuietFns;this._whenQuietFns=[],A.length?b0(A).onDone(()=>{i.forEach(n=>n())}):i.forEach(n=>n())}}reportError(e){throw GP(e)}_flushAnimations(e,A){let i=new ph,n=[],o=new Map,r=[],s=new Map,a=new Map,c=new Map,g=new Set;this.disabledNodes.forEach(IA=>{g.add(IA);let SA=this.driver.query(IA,yhA,!0);for(let nA=0;nA{let nA=tS+E++;B.set(SA,nA),IA.forEach(lA=>Lc(lA,nA))});let u=[],h=new Set,w=new Set;for(let IA=0;IAh.add(lA)):w.add(SA))}let x=new Map,R=XP(C,Array.from(h));R.forEach((IA,SA)=>{let nA=L6+E++;x.set(SA,nA),IA.forEach(lA=>Lc(lA,nA))}),e.push(()=>{d.forEach((IA,SA)=>{let nA=B.get(SA);IA.forEach(lA=>pB(lA,nA))}),R.forEach((IA,SA)=>{let nA=x.get(SA);IA.forEach(lA=>pB(lA,nA))}),u.forEach(IA=>{this.processLeaveNode(IA)})});let D=[],G=[];for(let IA=this._namespaceList.length-1;IA>=0;IA--)this._namespaceList[IA].drainQueuedTransitions(A).forEach(nA=>{let lA=nA.player,wA=nA.element;if(D.push(lA),this.collectedEnterElements.length){let We=wA[Dg];if(We&&We.setForMove){if(We.previousTriggersValues&&We.previousTriggersValues.has(nA.triggerName)){let KA=We.previousTriggersValues.get(nA.triggerName),tA=this.statesByElement.get(nA.element);if(tA&&tA.has(nA.triggerName)){let OA=tA.get(nA.triggerName);OA.value=KA,tA.set(nA.triggerName,OA)}}lA.destroy();return}}let VA=!I||!this.driver.containsElement(I,wA),ie=x.get(wA),UA=B.get(wA),BA=this._buildInstruction(nA,i,UA,ie,VA);if(BA.errors&&BA.errors.length){G.push(BA);return}if(VA){lA.onStart(()=>Y2(wA,BA.fromStyles)),lA.onDestroy(()=>pg(wA,BA.toStyles)),n.push(lA);return}if(nA.isFallbackTransition){lA.onStart(()=>Y2(wA,BA.fromStyles)),lA.onDestroy(()=>pg(wA,BA.toStyles)),n.push(lA);return}let JA=[];BA.timelines.forEach(We=>{We.stretchStartingKeyframe=!0,this.disabledNodes.has(We.element)||JA.push(We)}),BA.timelines=JA,i.append(wA,BA.timelines);let Xe={instruction:BA,player:lA,element:wA};r.push(Xe),BA.queriedElements.forEach(We=>ma(s,We,[]).push(lA)),BA.preStyleProps.forEach((We,KA)=>{if(We.size){let tA=a.get(KA);tA||a.set(KA,tA=new Set),We.forEach((OA,gA)=>tA.add(gA))}}),BA.postStyleProps.forEach((We,KA)=>{let tA=c.get(KA);tA||c.set(KA,tA=new Set),We.forEach((OA,gA)=>tA.add(gA))})});if(G.length){let IA=[];G.forEach(SA=>{IA.push(KP(SA.triggerName,SA.errors))}),D.forEach(SA=>SA.destroy()),this.reportError(IA)}let J=new Map,z=new Map;r.forEach(IA=>{let SA=IA.element;i.has(SA)&&(z.set(SA,SA),this._beforeAnimationBuild(IA.player.namespaceId,IA.instruction,J))}),n.forEach(IA=>{let SA=IA.element;this._getPreviousPlayers(SA,!1,IA.namespaceId,IA.triggerName,null).forEach(lA=>{ma(J,SA,[]).push(lA),lA.destroy()})});let K=u.filter(IA=>$P(IA,a,c)),O=new Map;WP(O,this.driver,w,c,Rc).forEach(IA=>{$P(IA,a,c)&&K.push(IA)});let j=new Map;d.forEach((IA,SA)=>{WP(j,this.driver,new Set(IA),a,hB)}),K.forEach(IA=>{let SA=O.get(IA),nA=j.get(IA);O.set(IA,new Map([...SA?.entries()??[],...nA?.entries()??[]]))});let dA=[],fA=[],EA={};r.forEach(IA=>{let{element:SA,player:nA,instruction:lA}=IA;if(i.has(SA)){if(g.has(SA)){nA.onDestroy(()=>pg(SA,lA.toStyles)),nA.disabled=!0,nA.overrideTotalTime(lA.totalTime),n.push(nA);return}let wA=EA;if(z.size>1){let ie=SA,UA=[];for(;ie=ie.parentNode;){let BA=z.get(ie);if(BA){wA=BA;break}UA.push(ie)}UA.forEach(BA=>z.set(BA,wA))}let VA=this._buildAnimation(nA.namespaceId,lA,J,o,j,O);if(nA.setRealPlayer(VA),wA===EA)dA.push(nA);else{let ie=this.playersByElement.get(wA);ie&&ie.length&&(nA.parentPlayer=b0(ie)),n.push(nA)}}else Y2(SA,lA.fromStyles),nA.onDestroy(()=>pg(SA,lA.toStyles)),fA.push(nA),g.has(SA)&&n.push(nA)}),fA.forEach(IA=>{let SA=o.get(IA.element);if(SA&&SA.length){let nA=b0(SA);IA.setRealPlayer(nA)}}),n.forEach(IA=>{IA.parentPlayer?IA.syncPlayerEvents(IA.parentPlayer):IA.destroy()});for(let IA=0;IA!VA.destroyed);wA.length?NhA(this,SA,wA):this.processLeaveNode(SA)}return u.length=0,dA.forEach(IA=>{this.players.push(IA),IA.onDone(()=>{IA.destroy();let SA=this.players.indexOf(IA);this.players.splice(SA,1)}),IA.play()}),dA}afterFlush(e){this._flushFns.push(e)}afterFlushAnimationsDone(e){this._whenQuietFns.push(e)}_getPreviousPlayers(e,A,i,n,o){let r=[];if(A){let s=this.playersByQueriedElement.get(e);s&&(r=s)}else{let s=this.playersByElement.get(e);if(s){let a=!o||o==mh;s.forEach(c=>{c.queued||!a&&c.triggerName!=n||r.push(c)})}}return(i||n)&&(r=r.filter(s=>!(i&&i!=s.namespaceId||n&&n!=s.triggerName))),r}_beforeAnimationBuild(e,A,i){let n=A.triggerName,o=A.element,r=A.isRemovalTransition?void 0:e,s=A.isRemovalTransition?void 0:n;for(let a of A.timelines){let c=a.element,g=c!==o,I=ma(i,c,[]);this._getPreviousPlayers(c,g,r,s,A.toState).forEach(d=>{let B=d.getRealPlayer();B.beforeDestroy&&B.beforeDestroy(),d.destroy(),I.push(d)})}Y2(o,A.fromStyles)}_buildAnimation(e,A,i,n,o,r){let s=A.triggerName,a=A.element,c=[],g=new Set,I=new Set,C=A.timelines.map(B=>{let E=B.element;g.add(E);let u=E[Dg];if(u&&u.removedBeforeQueried)return new hl(B.duration,B.delay);let h=E!==a,w=FhA((i.get(E)||khA).map(J=>J.getRealPlayer())).filter(J=>{let z=J;return z.element?z.element===E:!1}),x=o.get(E),R=r.get(E),D=Wk(this._normalizer,B.keyframes,x,R),G=this._buildPlayer(B,D,w);if(B.subTimeline&&n&&I.add(E),h){let J=new wh(e,s,E);J.setRealPlayer(G),c.push(J)}return G});c.forEach(B=>{ma(this.playersByQueriedElement,B.element,[]).push(B),B.onDone(()=>RhA(this.playersByQueriedElement,B.element,B))}),g.forEach(B=>Lc(B,iS));let d=b0(C);return d.onDestroy(()=>{g.forEach(B=>pB(B,iS)),pg(a,A.toStyles)}),I.forEach(B=>{ma(n,B,[]).push(d)}),d}_buildPlayer(e,A,i){return A.length>0?this.driver.animate(e.element,A,e.duration,e.delay,e.easing,i):new hl(e.duration,e.delay)}},wh=class{namespaceId;triggerName;element;_player=new hl;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(e,A,i){this.namespaceId=e,this.triggerName=A,this.element=i}setRealPlayer(e){this._containsRealPlayer||(this._player=e,this._queuedCallbacks.forEach((A,i)=>{A.forEach(n=>k6(e,i,void 0,n))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(e){this.totalTime=e}syncPlayerEvents(e){let A=this._player;A.triggerCallback&&e.onStart(()=>A.triggerCallback("start")),e.onDone(()=>this.finish()),e.onDestroy(()=>this.destroy())}_queueEvent(e,A){ma(this._queuedCallbacks,e,[]).push(A)}onDone(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)}onStart(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)}onDestroy(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(e){this.queued||this._player.setPosition(e)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(e){let A=this._player;A.triggerCallback&&A.triggerCallback(e)}};function RhA(t,e,A){let i=t.get(e);if(i){if(i.length){let n=i.indexOf(A);i.splice(n,1)}i.length==0&&t.delete(e)}return i}function LhA(t){return t??null}function K6(t){return t&&t.nodeType===1}function xhA(t){return t=="start"||t=="done"}function ZP(t,e){let A=t.style.display;return t.style.display=e??"none",A}function WP(t,e,A,i,n){let o=[];A.forEach(a=>o.push(ZP(a)));let r=[];i.forEach((a,c)=>{let g=new Map;a.forEach(I=>{let C=e.computeStyle(c,I,n);g.set(I,C),(!C||C.length==0)&&(c[Dg]=ShA,r.push(c))}),t.set(c,g)});let s=0;return A.forEach(a=>ZP(a,o[s++])),r}function XP(t,e){let A=new Map;if(t.forEach(s=>A.set(s,[])),e.length==0)return A;let i=1,n=new Set(e),o=new Map;function r(s){if(!s)return i;let a=o.get(s);if(a)return a;let c=s.parentNode;return A.has(c)?a=c:n.has(c)?a=i:a=r(c),o.set(s,a),a}return e.forEach(s=>{let a=r(s);a!==i&&A.get(a).push(s)}),A}function Lc(t,e){t.classList?.add(e)}function pB(t,e){t.classList?.remove(e)}function NhA(t,e,A){b0(A).onDone(()=>t.processLeaveNode(e))}function FhA(t){let e=[];return oj(t,e),e}function oj(t,e){for(let A=0;An.add(o)):e.set(t,i),A.delete(t),!0}var DB=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(e,A)=>{};constructor(e,A,i){this._driver=A,this._normalizer=i,this._transitionEngine=new hS(e.body,A,i),this._timelineEngine=new QS(e.body,A,i),this._transitionEngine.onRemovalComplete=(n,o)=>this.onRemovalComplete(n,o)}registerTrigger(e,A,i,n,o){let r=e+"-"+n,s=this._triggerCache[r];if(!s){let a=[],c=[],g=ej(this._driver,o,a,c);if(a.length)throw bP(n,a);s=phA(n,g,this._normalizer),this._triggerCache[r]=s}this._transitionEngine.registerTrigger(A,n,s)}register(e,A){this._transitionEngine.register(e,A)}destroy(e,A){this._transitionEngine.destroy(e,A)}onInsert(e,A,i,n){this._transitionEngine.insertNode(e,A,i,n)}onRemove(e,A,i){this._transitionEngine.removeNode(e,A,i)}disableAnimations(e,A){this._transitionEngine.markElementAsDisabled(e,A)}process(e,A,i,n){if(i.charAt(0)=="@"){let[o,r]=Xk(i),s=n;this._timelineEngine.command(o,A,r,s)}else this._transitionEngine.trigger(e,A,i,n)}listen(e,A,i,n,o){if(i.charAt(0)=="@"){let[r,s]=Xk(i);return this._timelineEngine.listen(r,A,s,o)}return this._transitionEngine.listen(e,A,i,n,o)}flush(e=-1){this._transitionEngine.flush(e)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(e){this._transitionEngine.afterFlushAnimationsDone(e)}};function GhA(t,e){let A=null,i=null;return Array.isArray(e)&&e.length?(A=cS(e[0]),e.length>1&&(i=cS(e[e.length-1]))):e instanceof Map&&(A=cS(e)),A||i?new KhA(t,A,i):null}var KhA=(()=>{class t{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(A,i,n){this._element=A,this._startStyles=i,this._endStyles=n;let o=t.initialStylesByElement.get(A);o||t.initialStylesByElement.set(A,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&pg(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(pg(this._element,this._initialStyles),this._endStyles&&(pg(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(t.initialStylesByElement.delete(this._element),this._startStyles&&(Y2(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Y2(this._element,this._endStyles),this._endStyles=null),pg(this._element,this._initialStyles),this._state=3)}}return t})();function cS(t){let e=null;return t.forEach((A,i)=>{UhA(i)&&(e=e||new Map,e.set(i,A))}),e}function UhA(t){return t==="display"||t==="position"}var z6=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(e,A,i,n){this.element=e,this.keyframes=A,this.options=i,this._specialStyles=n,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;let e=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,e,this.options),this._finalKeyframe=e.length?e[e.length-1]:new Map;let A=()=>this._onFinish();this.domPlayer.addEventListener("finish",A),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",A)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(e){let A=[];return e.forEach(i=>{A.push(Object.fromEntries(i))}),A}_triggerWebAnimation(e,A,i){return e.animate(this._convertKeyframesToObject(A),i)}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(e=>e()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}setPosition(e){this.domPlayer===void 0&&this.init(),this.domPlayer.currentTime=e*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){let e=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,n)=>{n!=="offset"&&e.set(n,this._finished?i:F6(this.element,n))}),this.currentSnapshot=e}triggerCallback(e){let A=e==="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},P6=class{validateStyleProperty(e){return!0}validateAnimatableStyleProperty(e){return!0}containsElement(e,A){return $k(e,A)}getParentElement(e){return R6(e)}query(e,A,i){return AS(e,A,i)}computeStyle(e,A,i){return F6(e,A)}animate(e,A,i,n,o,r=[]){let s=n==0?"both":"forwards",a={duration:i,delay:n,fill:s};o&&(a.easing=o);let c=new Map,g=r.filter(d=>d instanceof z6);TP(i,n)&&g.forEach(d=>{d.currentSnapshot.forEach((B,E)=>c.set(E,B))});let I=JP(A).map(d=>new Map(d));I=HP(e,I,c);let C=GhA(e,I);return new z6(e,I,a,C)}};var U6="@",rj="@.disabled",j6=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(e,A,i,n){this.namespaceId=e,this.delegate=A,this.engine=i,this._onDestroy=n}get data(){return this.delegate.data}destroyNode(e){this.delegate.destroyNode?.(e)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(e,A){return this.delegate.createElement(e,A)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}appendChild(e,A){this.delegate.appendChild(e,A),this.engine.onInsert(this.namespaceId,A,e,!1)}insertBefore(e,A,i,n=!0){this.delegate.insertBefore(e,A,i),this.engine.onInsert(this.namespaceId,A,e,n)}removeChild(e,A,i){this.parentNode(A)&&this.engine.onRemove(this.namespaceId,A,this.delegate)}selectRootElement(e,A){return this.delegate.selectRootElement(e,A)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,A,i,n){this.delegate.setAttribute(e,A,i,n)}removeAttribute(e,A,i){this.delegate.removeAttribute(e,A,i)}addClass(e,A){this.delegate.addClass(e,A)}removeClass(e,A){this.delegate.removeClass(e,A)}setStyle(e,A,i,n){this.delegate.setStyle(e,A,i,n)}removeStyle(e,A,i){this.delegate.removeStyle(e,A,i)}setProperty(e,A,i){A.charAt(0)==U6&&A==rj?this.disableAnimations(e,!!i):this.delegate.setProperty(e,A,i)}setValue(e,A){this.delegate.setValue(e,A)}listen(e,A,i,n){return this.delegate.listen(e,A,i,n)}disableAnimations(e,A){this.engine.disableAnimations(e,A)}},fS=class extends j6{factory;constructor(e,A,i,n,o){super(A,i,n,o),this.factory=e,this.namespaceId=A}setProperty(e,A,i){A.charAt(0)==U6?A.charAt(1)=="."&&A==rj?(i=i===void 0?!0:!!i,this.disableAnimations(e,i)):this.engine.process(this.namespaceId,e,A.slice(1),i):this.delegate.setProperty(e,A,i)}listen(e,A,i,n){if(A.charAt(0)==U6){let o=JhA(e),r=A.slice(1),s="";return r.charAt(0)!=U6&&([r,s]=YhA(r)),this.engine.listen(this.namespaceId,o,r,s,a=>{let c=a._data||-1;this.factory.scheduleListenerCallback(c,i,a)})}return this.delegate.listen(e,A,i,n)}};function JhA(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}function YhA(t){let e=t.indexOf("."),A=t.substring(0,e),i=t.slice(e+1);return[A,i]}var q6=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(e,A,i){this.delegate=e,this.engine=A,this._zone=i,A.onRemovalComplete=(n,o)=>{o?.removeChild(null,n)}}createRenderer(e,A){let i="",n=this.delegate.createRenderer(e,A);if(!e||!A?.data?.animation){let c=this._rendererCache,g=c.get(n);if(!g){let I=()=>c.delete(n);g=new j6(i,n,this.engine,I),c.set(n,g)}return g}let o=A.id,r=A.id+"-"+this._currentId;this._currentId++,this.engine.register(r,e);let s=c=>{Array.isArray(c)?c.forEach(s):this.engine.registerTrigger(o,r,e,c.name,c)};return A.data.animation.forEach(s),new fS(this,r,n,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(e,A,i){if(e>=0&&eA(i));return}let n=this._animationCallbacksBuffer;n.length==0&&queueMicrotask(()=>{this._zone.run(()=>{n.forEach(o=>{let[r,s]=o;r(s)}),this._animationCallbacksBuffer=[]})}),n.push([A,i])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}componentReplaced(e){this.engine.flush(),this.delegate.componentReplaced?.(e)}};var HhA=(()=>{class t extends DB{constructor(A,i,n){super(A,i,n)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||t)(be(at),be(eC),be(tC))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();function OhA(){return new J6}function zhA(t,e,A){return new q6(t,e,A)}var sj=[{provide:tC,useFactory:OhA},{provide:DB,useClass:HhA},{provide:Ms,useFactory:zhA,deps:[Bh,DB,ye]}],qce=[{provide:eC,useClass:mS},{provide:_i,useValue:"NoopAnimations"},...sj],PhA=[{provide:eC,useFactory:()=>new P6},{provide:_i,useFactory:()=>"BrowserAnimations"},...sj];function aj(){return Cg("NgEagerAnimations"),[...PhA]}var wi="primary",Gh=Symbol("RouteTitle"),MS=class{params;constructor(e){this.params=e||{}}has(e){return Object.prototype.hasOwnProperty.call(this.params,e)}get(e){if(this.has(e)){let A=this.params[e];return Array.isArray(A)?A[0]:A}return null}getAll(e){if(this.has(e)){let A=this.params[e];return Array.isArray(A)?A:[A]}return[]}get keys(){return Object.keys(this.params)}};function oC(t){return new MS(t)}function Ej(t,e,A){let i=A.path.split("/");if(i.length>t.length||A.pathMatch==="full"&&(e.hasChildren()||i.lengthi[o]===n)}else return t===e}function uj(t){return t.length>0?t[t.length-1]:null}function z2(t){return B2(t)?t:k2(t)?ro(Promise.resolve(t)):Ce(t)}var qhA={exact:fj,subset:mj},hj={exact:VhA,subset:ZhA,ignored:()=>!0};function cj(t,e,A){return qhA[A.paths](t.root,e.root,A.matrixParams)&&hj[A.queryParams](t.queryParams,e.queryParams)&&!(A.fragment==="exact"&&t.fragment!==e.fragment)}function VhA(t,e){return pl(t,e)}function fj(t,e,A){if(!iC(t.segments,e.segments)||!W6(t.segments,e.segments,A)||t.numberOfChildren!==e.numberOfChildren)return!1;for(let i in e.children)if(!t.children[i]||!fj(t.children[i],e.children[i],A))return!1;return!0}function ZhA(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(A=>Qj(t[A],e[A]))}function mj(t,e,A){return pj(t,e,e.segments,A)}function pj(t,e,A,i){if(t.segments.length>A.length){let n=t.segments.slice(0,A.length);return!(!iC(n,A)||e.hasChildren()||!W6(n,A,i))}else if(t.segments.length===A.length){if(!iC(t.segments,A)||!W6(t.segments,A,i))return!1;for(let n in e.children)if(!t.children[n]||!mj(t.children[n],e.children[n],i))return!1;return!0}else{let n=A.slice(0,t.segments.length),o=A.slice(t.segments.length);return!iC(t.segments,n)||!W6(t.segments,n,i)||!t.children[wi]?!1:pj(t.children[wi],e,o,i)}}function W6(t,e,A){return e.every((i,n)=>hj[A](t[n].parameters,i.parameters))}var wl=class{root;queryParams;fragment;_queryParamMap;constructor(e=new Nn([],{}),A={},i=null){this.root=e,this.queryParams=A,this.fragment=i}get queryParamMap(){return this._queryParamMap??=oC(this.queryParams),this._queryParamMap}toString(){return $hA.serialize(this)}},Nn=class{segments;children;parent=null;constructor(e,A){this.segments=e,this.children=A,Object.values(A).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return X6(this)}},T2=class{path;parameters;_parameterMap;constructor(e,A){this.path=e,this.parameters=A}get parameterMap(){return this._parameterMap??=oC(this.parameters),this._parameterMap}toString(){return wj(this)}};function WhA(t,e){return iC(t,e)&&t.every((A,i)=>pl(A.parameters,e[i].parameters))}function iC(t,e){return t.length!==e.length?!1:t.every((A,i)=>A.path===e[i].path)}function XhA(t,e){let A=[];return Object.entries(t.children).forEach(([i,n])=>{i===wi&&(A=A.concat(e(n,i)))}),Object.entries(t.children).forEach(([i,n])=>{i!==wi&&(A=A.concat(e(n,i)))}),A}var rC=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>new H2,providedIn:"root"})}return t})(),H2=class{parse(e){let A=new SS(e);return new wl(A.parseRootSegment(),A.parseQueryParams(),A.parseFragment())}serialize(e){let A=`/${yh(e.root,!0)}`,i=t4A(e.queryParams),n=typeof e.fragment=="string"?`#${A4A(e.fragment)}`:"";return`${A}${i}${n}`}},$hA=new H2;function X6(t){return t.segments.map(e=>wj(e)).join("/")}function yh(t,e){if(!t.hasChildren())return X6(t);if(e){let A=t.children[wi]?yh(t.children[wi],!1):"",i=[];return Object.entries(t.children).forEach(([n,o])=>{n!==wi&&i.push(`${n}:${yh(o,!1)}`)}),i.length>0?`${A}(${i.join("//")})`:A}else{let A=XhA(t,(i,n)=>n===wi?[yh(t.children[wi],!1)]:[`${n}:${yh(i,!1)}`]);return Object.keys(t.children).length===1&&t.children[wi]!=null?`${X6(t)}/${A[0]}`:`${X6(t)}/(${A.join("//")})`}}function Dj(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function V6(t){return Dj(t).replace(/%3B/gi,";")}function A4A(t){return encodeURI(t)}function kS(t){return Dj(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function $6(t){return decodeURIComponent(t)}function gj(t){return $6(t.replace(/\+/g,"%20"))}function wj(t){return`${kS(t.path)}${e4A(t.parameters)}`}function e4A(t){return Object.entries(t).map(([e,A])=>`;${kS(e)}=${kS(A)}`).join("")}function t4A(t){let e=Object.entries(t).map(([A,i])=>Array.isArray(i)?i.map(n=>`${V6(A)}=${V6(n)}`).join("&"):`${V6(A)}=${V6(i)}`).filter(A=>A);return e.length?`?${e.join("&")}`:""}var i4A=/^[^\/()?;#]+/;function DS(t){let e=t.match(i4A);return e?e[0]:""}var n4A=/^[^\/()?;=#]+/;function o4A(t){let e=t.match(n4A);return e?e[0]:""}var r4A=/^[^=?&#]+/;function s4A(t){let e=t.match(r4A);return e?e[0]:""}var a4A=/^[^&#]+/;function c4A(t){let e=t.match(a4A);return e?e[0]:""}var SS=class{url;remaining;constructor(e){this.url=e,this.remaining=e}parseRootSegment(){return this.consumeOptional("/"),this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new Nn([],{}):new Nn([],this.parseChildren())}parseQueryParams(){let e={};if(this.consumeOptional("?"))do this.parseQueryParam(e);while(this.consumeOptional("&"));return e}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(this.remaining==="")return{};this.consumeOptional("/");let e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let A={};this.peekStartsWith("/(")&&(this.capture("/"),A=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(e.length>0||Object.keys(A).length>0)&&(i[wi]=new Nn(e,A)),i}parseSegment(){let e=DS(this.remaining);if(e===""&&this.peekStartsWith(";"))throw new te(4009,!1);return this.capture(e),new T2($6(e),this.parseMatrixParams())}parseMatrixParams(){let e={};for(;this.consumeOptional(";");)this.parseParam(e);return e}parseParam(e){let A=o4A(this.remaining);if(!A)return;this.capture(A);let i="";if(this.consumeOptional("=")){let n=DS(this.remaining);n&&(i=n,this.capture(i))}e[$6(A)]=$6(i)}parseQueryParam(e){let A=s4A(this.remaining);if(!A)return;this.capture(A);let i="";if(this.consumeOptional("=")){let r=c4A(this.remaining);r&&(i=r,this.capture(i))}let n=gj(A),o=gj(i);if(e.hasOwnProperty(n)){let r=e[n];Array.isArray(r)||(r=[r],e[n]=r),r.push(o)}else e[n]=o}parseParens(e){let A={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){let i=DS(this.remaining),n=this.remaining[i.length];if(n!=="/"&&n!==")"&&n!==";")throw new te(4010,!1);let o;i.indexOf(":")>-1?(o=i.slice(0,i.indexOf(":")),this.capture(o),this.capture(":")):e&&(o=wi);let r=this.parseChildren();A[o]=Object.keys(r).length===1?r[wi]:new Nn([],r),this.consumeOptional("//")}return A}peekStartsWith(e){return this.remaining.startsWith(e)}consumeOptional(e){return this.peekStartsWith(e)?(this.remaining=this.remaining.substring(e.length),!0):!1}capture(e){if(!this.consumeOptional(e))throw new te(4011,!1)}};function yj(t){return t.segments.length>0?new Nn([],{[wi]:t}):t}function vj(t){let e={};for(let[i,n]of Object.entries(t.children)){let o=vj(n);if(i===wi&&o.segments.length===0&&o.hasChildren())for(let[r,s]of Object.entries(o.children))e[r]=s;else(o.segments.length>0||o.hasChildren())&&(e[i]=o)}let A=new Nn(t.segments,e);return g4A(A)}function g4A(t){if(t.numberOfChildren===1&&t.children[wi]){let e=t.children[wi];return new Nn(t.segments.concat(e.segments),e.children)}return t}function bB(t){return t instanceof wl}function Mj(t,e,A=null,i=null){let n=bj(t);return kj(n,e,A,i)}function bj(t){let e;function A(o){let r={};for(let a of o.children){let c=A(a);r[a.outlet]=c}let s=new Nn(o.url,r);return o===t&&(e=s),s}let i=A(t.root),n=yj(i);return e??n}function kj(t,e,A,i){let n=t;for(;n.parent;)n=n.parent;if(e.length===0)return wS(n,n,n,A,i);let o=l4A(e);if(o.toRoot())return wS(n,n,new Nn([],{}),A,i);let r=I4A(o,n,t),s=r.processChildren?Mh(r.segmentGroup,r.index,o.commands):Rj(r.segmentGroup,r.index,o.commands);return wS(n,r.segmentGroup,s,A,i)}function e8(t){return typeof t=="object"&&t!=null&&!t.outlets&&!t.segmentPath}function kh(t){return typeof t=="object"&&t!=null&&t.outlets}function wS(t,e,A,i,n){let o={};i&&Object.entries(i).forEach(([a,c])=>{o[a]=Array.isArray(c)?c.map(g=>`${g}`):`${c}`});let r;t===e?r=A:r=Sj(t,e,A);let s=yj(vj(r));return new wl(s,o,n)}function Sj(t,e,A){let i={};return Object.entries(t.children).forEach(([n,o])=>{o===e?i[n]=A:i[n]=Sj(o,e,A)}),new Nn(t.segments,i)}var t8=class{isAbsolute;numberOfDoubleDots;commands;constructor(e,A,i){if(this.isAbsolute=e,this.numberOfDoubleDots=A,this.commands=i,e&&i.length>0&&e8(i[0]))throw new te(4003,!1);let n=i.find(kh);if(n&&n!==uj(i))throw new te(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}};function l4A(t){if(typeof t[0]=="string"&&t.length===1&&t[0]==="/")return new t8(!0,0,t);let e=0,A=!1,i=t.reduce((n,o,r)=>{if(typeof o=="object"&&o!=null){if(o.outlets){let s={};return Object.entries(o.outlets).forEach(([a,c])=>{s[a]=typeof c=="string"?c.split("/"):c}),[...n,{outlets:s}]}if(o.segmentPath)return[...n,o.segmentPath]}return typeof o!="string"?[...n,o]:r===0?(o.split("/").forEach((s,a)=>{a==0&&s==="."||(a==0&&s===""?A=!0:s===".."?e++:s!=""&&n.push(s))}),n):[...n,o]},[]);return new t8(A,e,i)}var vB=class{segmentGroup;processChildren;index;constructor(e,A,i){this.segmentGroup=e,this.processChildren=A,this.index=i}};function I4A(t,e,A){if(t.isAbsolute)return new vB(e,!0,0);if(!A)return new vB(e,!1,NaN);if(A.parent===null)return new vB(A,!0,0);let i=e8(t.commands[0])?0:1,n=A.segments.length-1+i;return C4A(A,n,t.numberOfDoubleDots)}function C4A(t,e,A){let i=t,n=e,o=A;for(;o>n;){if(o-=n,i=i.parent,!i)throw new te(4005,!1);n=i.segments.length}return new vB(i,!1,n-o)}function d4A(t){return kh(t[0])?t[0].outlets:{[wi]:t}}function Rj(t,e,A){if(t??=new Nn([],{}),t.segments.length===0&&t.hasChildren())return Mh(t,e,A);let i=B4A(t,e,A),n=A.slice(i.commandIndex);if(i.match&&i.pathIndexo!==wi)&&t.children[wi]&&t.numberOfChildren===1&&t.children[wi].segments.length===0){let o=Mh(t.children[wi],e,A);return new Nn(t.segments,o.children)}return Object.entries(i).forEach(([o,r])=>{typeof r=="string"&&(r=[r]),r!==null&&(n[o]=Rj(t.children[o],e,r))}),Object.entries(t.children).forEach(([o,r])=>{i[o]===void 0&&(n[o]=r)}),new Nn(t.segments,n)}}function B4A(t,e,A){let i=0,n=e,o={match:!1,pathIndex:0,commandIndex:0};for(;n=A.length)return o;let r=t.segments[n],s=A[i];if(kh(s))break;let a=`${s}`,c=i0&&a===void 0)break;if(a&&c&&typeof c=="object"&&c.outlets===void 0){if(!Ij(a,c,r))return o;i+=2}else{if(!Ij(a,{},r))return o;i++}n++}return{match:!0,pathIndex:n,commandIndex:i}}function RS(t,e,A){let i=t.segments.slice(0,e),n=0;for(;n{typeof i=="string"&&(i=[i]),i!==null&&(e[A]=RS(new Nn([],{}),0,i))}),e}function lj(t){let e={};return Object.entries(t).forEach(([A,i])=>e[A]=`${i}`),e}function Ij(t,e,A){return t==A.path&&pl(e,A.parameters)}var A8="imperative",Tr=function(t){return t[t.NavigationStart=0]="NavigationStart",t[t.NavigationEnd=1]="NavigationEnd",t[t.NavigationCancel=2]="NavigationCancel",t[t.NavigationError=3]="NavigationError",t[t.RoutesRecognized=4]="RoutesRecognized",t[t.ResolveStart=5]="ResolveStart",t[t.ResolveEnd=6]="ResolveEnd",t[t.GuardsCheckStart=7]="GuardsCheckStart",t[t.GuardsCheckEnd=8]="GuardsCheckEnd",t[t.RouteConfigLoadStart=9]="RouteConfigLoadStart",t[t.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",t[t.ChildActivationStart=11]="ChildActivationStart",t[t.ChildActivationEnd=12]="ChildActivationEnd",t[t.ActivationStart=13]="ActivationStart",t[t.ActivationEnd=14]="ActivationEnd",t[t.Scroll=15]="Scroll",t[t.NavigationSkipped=16]="NavigationSkipped",t}(Tr||{}),sc=class{id;url;constructor(e,A){this.id=e,this.url=A}},O2=class extends sc{type=Tr.NavigationStart;navigationTrigger;restoredState;constructor(e,A,i="imperative",n=null){super(e,A),this.navigationTrigger=i,this.restoredState=n}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}},ac=class extends sc{urlAfterRedirects;type=Tr.NavigationEnd;constructor(e,A,i){super(e,A),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}},Da=function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromResolver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t}(Da||{}),kB=function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t}(kB||{}),Dl=class extends sc{reason;code;type=Tr.NavigationCancel;constructor(e,A,i,n){super(e,A),this.reason=i,this.code=n}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}},yl=class extends sc{reason;code;type=Tr.NavigationSkipped;constructor(e,A,i,n){super(e,A),this.reason=i,this.code=n}},SB=class extends sc{error;target;type=Tr.NavigationError;constructor(e,A,i,n){super(e,A),this.error=i,this.target=n}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}},Sh=class extends sc{urlAfterRedirects;state;type=Tr.RoutesRecognized;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},i8=class extends sc{urlAfterRedirects;state;type=Tr.GuardsCheckStart;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},n8=class extends sc{urlAfterRedirects;state;shouldActivate;type=Tr.GuardsCheckEnd;constructor(e,A,i,n,o){super(e,A),this.urlAfterRedirects=i,this.state=n,this.shouldActivate=o}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}},o8=class extends sc{urlAfterRedirects;state;type=Tr.ResolveStart;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},r8=class extends sc{urlAfterRedirects;state;type=Tr.ResolveEnd;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},s8=class{route;type=Tr.RouteConfigLoadStart;constructor(e){this.route=e}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}},a8=class{route;type=Tr.RouteConfigLoadEnd;constructor(e){this.route=e}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}},c8=class{snapshot;type=Tr.ChildActivationStart;constructor(e){this.snapshot=e}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},g8=class{snapshot;type=Tr.ChildActivationEnd;constructor(e){this.snapshot=e}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},l8=class{snapshot;type=Tr.ActivationStart;constructor(e){this.snapshot=e}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},I8=class{snapshot;type=Tr.ActivationEnd;constructor(e){this.snapshot=e}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},RB=class{routerEvent;position;anchor;type=Tr.Scroll;constructor(e,A,i){this.routerEvent=e,this.position=A,this.anchor=i}toString(){let e=this.position?`${this.position[0]}, ${this.position[1]}`:null;return`Scroll(anchor: '${this.anchor}', position: '${e}')`}},Rh=class{},LB=class{url;navigationBehaviorOptions;constructor(e,A){this.url=e,this.navigationBehaviorOptions=A}};function Q4A(t,e){return t.providers&&!t._injector&&(t._injector=Nu(t.providers,e,`Route: ${t.path}`)),t._injector??e}function wg(t){return t.outlet||wi}function u4A(t,e){let A=t.filter(i=>wg(i)===e);return A.push(...t.filter(i=>wg(i)!==e)),A}function Kh(t){if(!t)return null;if(t.routeConfig?._injector)return t.routeConfig._injector;for(let e=t.parent;e;e=e.parent){let A=e.routeConfig;if(A?._loadedInjector)return A._loadedInjector;if(A?._injector)return A._injector}return null}var C8=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return Kh(this.route?.snapshot)??this.rootInjector}constructor(e){this.rootInjector=e,this.children=new sC(this.rootInjector)}},sC=(()=>{class t{rootInjector;contexts=new Map;constructor(A){this.rootInjector=A}onChildOutletCreated(A,i){let n=this.getOrCreateContext(A);n.outlet=i,this.contexts.set(A,n)}onChildOutletDestroyed(A){let i=this.getContext(A);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){let A=this.contexts;return this.contexts=new Map,A}onOutletReAttached(A){this.contexts=A}getOrCreateContext(A){let i=this.getContext(A);return i||(i=new C8(this.rootInjector),this.contexts.set(A,i)),i}getContext(A){return this.contexts.get(A)||null}static \u0275fac=function(i){return new(i||t)(be(vr))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),d8=class{_root;constructor(e){this._root=e}get root(){return this._root.value}parent(e){let A=this.pathFromRoot(e);return A.length>1?A[A.length-2]:null}children(e){let A=LS(e,this._root);return A?A.children.map(i=>i.value):[]}firstChild(e){let A=LS(e,this._root);return A&&A.children.length>0?A.children[0].value:null}siblings(e){let A=xS(e,this._root);return A.length<2?[]:A[A.length-2].children.map(n=>n.value).filter(n=>n!==e)}pathFromRoot(e){return xS(e,this._root).map(A=>A.value)}};function LS(t,e){if(t===e.value)return e;for(let A of e.children){let i=LS(t,A);if(i)return i}return null}function xS(t,e){if(t===e.value)return[e];for(let A of e.children){let i=xS(t,A);if(i.length)return i.unshift(e),i}return[]}var rc=class{value;children;constructor(e,A){this.value=e,this.children=A}toString(){return`TreeNode(${this.value})`}};function yB(t){let e={};return t&&t.children.forEach(A=>e[A.value.outlet]=A),e}var Lh=class extends d8{snapshot;constructor(e,A){super(e),this.snapshot=A,YS(this,e)}toString(){return this.snapshot.toString()}};function Lj(t){let e=h4A(t),A=new Fi([new T2("",{})]),i=new Fi({}),n=new Fi({}),o=new Fi({}),r=new Fi(""),s=new xc(A,i,o,r,n,wi,t,e.root);return s.snapshot=e.root,new Lh(new rc(s,[]),e)}function h4A(t){let e={},A={},i={},n="",o=new nC([],e,i,n,A,wi,t,null,{});return new xh("",new rc(o,[]))}var xc=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(e,A,i,n,o,r,s,a){this.urlSubject=e,this.paramsSubject=A,this.queryParamsSubject=i,this.fragmentSubject=n,this.dataSubject=o,this.outlet=r,this.component=s,this._futureSnapshot=a,this.title=this.dataSubject?.pipe(je(c=>c[Gh]))??Ce(void 0),this.url=e,this.params=A,this.queryParams=i,this.fragment=n,this.data=o}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(je(e=>oC(e))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(je(e=>oC(e))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}};function B8(t,e,A="emptyOnly"){let i,{routeConfig:n}=t;return e!==null&&(A==="always"||n?.path===""||!e.component&&!e.routeConfig?.loadComponent)?i={params:sA(sA({},e.params),t.params),data:sA(sA({},e.data),t.data),resolve:sA(sA(sA(sA({},t.data),e.data),n?.data),t._resolvedData)}:i={params:sA({},t.params),data:sA({},t.data),resolve:sA(sA({},t.data),t._resolvedData??{})},n&&Nj(n)&&(i.resolve[Gh]=n.title),i}var nC=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;get title(){return this.data?.[Gh]}constructor(e,A,i,n,o,r,s,a,c){this.url=e,this.params=A,this.queryParams=i,this.fragment=n,this.data=o,this.outlet=r,this.component=s,this.routeConfig=a,this._resolve=c}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=oC(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=oC(this.queryParams),this._queryParamMap}toString(){let e=this.url.map(i=>i.toString()).join("/"),A=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${e}', path:'${A}')`}},xh=class extends d8{url;constructor(e,A){super(A),this.url=e,YS(this,A)}toString(){return xj(this._root)}};function YS(t,e){e.value._routerState=t,e.children.forEach(A=>YS(t,A))}function xj(t){let e=t.children.length>0?` { ${t.children.map(xj).join(", ")} } `:"";return`${t.value}${e}`}function yS(t){if(t.snapshot){let e=t.snapshot,A=t._futureSnapshot;t.snapshot=A,pl(e.queryParams,A.queryParams)||t.queryParamsSubject.next(A.queryParams),e.fragment!==A.fragment&&t.fragmentSubject.next(A.fragment),pl(e.params,A.params)||t.paramsSubject.next(A.params),jhA(e.url,A.url)||t.urlSubject.next(A.url),pl(e.data,A.data)||t.dataSubject.next(A.data)}else t.snapshot=t._futureSnapshot,t.dataSubject.next(t._futureSnapshot.data)}function NS(t,e){let A=pl(t.params,e.params)&&WhA(t.url,e.url),i=!t.parent!=!e.parent;return A&&!i&&(!t.parent||NS(t.parent,e.parent))}function Nj(t){return typeof t.title=="string"||t.title===null}var Fj=new eA(""),TS=(()=>{class t{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=wi;activateEvents=new YA;deactivateEvents=new YA;attachEvents=new YA;detachEvents=new YA;routerOutletData=bs(void 0);parentContexts=f(sC);location=f(Sn);changeDetector=f(Et);inputBinder=f(Uh,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(A){if(A.name){let{firstChange:i,previousValue:n}=A.name;if(i)return;this.isTrackedInParentContexts(n)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(n)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(A){return this.parentContexts.getContext(A)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let A=this.parentContexts.getContext(this.name);A?.route&&(A.attachRef?this.attach(A.attachRef,A.route):this.activateWith(A.route,A.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new te(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new te(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new te(4012,!1);this.location.detach();let A=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(A.instance),A}attach(A,i){this.activated=A,this._activatedRoute=i,this.location.insert(A.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(A.instance)}deactivate(){if(this.activated){let A=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(A)}}activateWith(A,i){if(this.isActivated)throw new te(4013,!1);this._activatedRoute=A;let n=this.location,r=A.snapshot.component,s=this.parentContexts.getOrCreateContext(this.name).children,a=new FS(A,s,n.injector,this.routerOutletData);this.activated=n.createComponent(r,{index:n.length,injector:a,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[Xt]})}return t})(),FS=class{route;childContexts;parent;outletData;constructor(e,A,i,n){this.route=e,this.childContexts=A,this.parent=i,this.outletData=n}get(e,A){return e===xc?this.route:e===sC?this.childContexts:e===Fj?this.outletData:this.parent.get(e,A)}},Uh=new eA(""),HS=(()=>{class t{outletDataSubscriptions=new Map;bindActivatedRouteToOutletComponent(A){this.unsubscribeFromRouteData(A),this.subscribeToRouteData(A)}unsubscribeFromRouteData(A){this.outletDataSubscriptions.get(A)?.unsubscribe(),this.outletDataSubscriptions.delete(A)}subscribeToRouteData(A){let{activatedRoute:i}=A,n=ga([i.queryParams,i.params,i.data]).pipe($n(([o,r,s],a)=>(s=sA(sA(sA({},o),r),s),a===0?Ce(s):Promise.resolve(s)))).subscribe(o=>{if(!A.isActivated||!A.activatedComponentRef||A.activatedRoute!==i||i.component===null){this.unsubscribeFromRouteData(A);return}let r=cO(i.component);if(!r){this.unsubscribeFromRouteData(A);return}for(let{templateName:s}of r.inputs)A.activatedComponentRef.setInput(s,o[s])});this.outletDataSubscriptions.set(A,n)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),OS=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(i,n){i&1&&TA(0,"router-outlet")},dependencies:[TS],encapsulation:2})}return t})();function zS(t){let e=t.children&&t.children.map(zS),A=e?Fe(sA({},t),{children:e}):sA({},t);return!A.component&&!A.loadComponent&&(e||A.loadChildren)&&A.outlet&&A.outlet!==wi&&(A.component=OS),A}function f4A(t,e,A){let i=Nh(t,e._root,A?A._root:void 0);return new Lh(i,e)}function Nh(t,e,A){if(A&&t.shouldReuseRoute(e.value,A.value.snapshot)){let i=A.value;i._futureSnapshot=e.value;let n=m4A(t,e,A);return new rc(i,n)}else{if(t.shouldAttach(e.value)){let o=t.retrieve(e.value);if(o!==null){let r=o.route;return r.value._futureSnapshot=e.value,r.children=e.children.map(s=>Nh(t,s)),r}}let i=p4A(e.value),n=e.children.map(o=>Nh(t,o));return new rc(i,n)}}function m4A(t,e,A){return e.children.map(i=>{for(let n of A.children)if(t.shouldReuseRoute(i.value,n.value.snapshot))return Nh(t,i,n);return Nh(t,i)})}function p4A(t){return new xc(new Fi(t.url),new Fi(t.params),new Fi(t.queryParams),new Fi(t.fragment),new Fi(t.data),t.outlet,t.component,t)}var xB=class{redirectTo;navigationBehaviorOptions;constructor(e,A){this.redirectTo=e,this.navigationBehaviorOptions=A}},_j="ngNavigationCancelingError";function E8(t,e){let{redirectTo:A,navigationBehaviorOptions:i}=bB(e)?{redirectTo:e,navigationBehaviorOptions:void 0}:e,n=Gj(!1,Da.Redirect);return n.url=A,n.navigationBehaviorOptions=i,n}function Gj(t,e){let A=new Error(`NavigationCancelingError: ${t||""}`);return A[_j]=!0,A.cancellationCode=e,A}function D4A(t){return Kj(t)&&bB(t.url)}function Kj(t){return!!t&&t[_j]}var w4A=(t,e,A,i)=>je(n=>(new _S(e,n.targetRouterState,n.currentRouterState,A,i).activate(t),n)),_S=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(e,A,i,n,o){this.routeReuseStrategy=e,this.futureState=A,this.currState=i,this.forwardEvent=n,this.inputBindingEnabled=o}activate(e){let A=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(A,i,e),yS(this.futureState.root),this.activateChildRoutes(A,i,e)}deactivateChildRoutes(e,A,i){let n=yB(A);e.children.forEach(o=>{let r=o.value.outlet;this.deactivateRoutes(o,n[r],i),delete n[r]}),Object.values(n).forEach(o=>{this.deactivateRouteAndItsChildren(o,i)})}deactivateRoutes(e,A,i){let n=e.value,o=A?A.value:null;if(n===o)if(n.component){let r=i.getContext(n.outlet);r&&this.deactivateChildRoutes(e,A,r.children)}else this.deactivateChildRoutes(e,A,i);else o&&this.deactivateRouteAndItsChildren(A,i)}deactivateRouteAndItsChildren(e,A){e.value.component&&this.routeReuseStrategy.shouldDetach(e.value.snapshot)?this.detachAndStoreRouteSubtree(e,A):this.deactivateRouteAndOutlet(e,A)}detachAndStoreRouteSubtree(e,A){let i=A.getContext(e.value.outlet),n=i&&e.value.component?i.children:A,o=yB(e);for(let r of Object.values(o))this.deactivateRouteAndItsChildren(r,n);if(i&&i.outlet){let r=i.outlet.detach(),s=i.children.onOutletDeactivated();this.routeReuseStrategy.store(e.value.snapshot,{componentRef:r,route:e,contexts:s})}}deactivateRouteAndOutlet(e,A){let i=A.getContext(e.value.outlet),n=i&&e.value.component?i.children:A,o=yB(e);for(let r of Object.values(o))this.deactivateRouteAndItsChildren(r,n);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(e,A,i){let n=yB(A);e.children.forEach(o=>{this.activateRoutes(o,n[o.value.outlet],i),this.forwardEvent(new I8(o.value.snapshot))}),e.children.length&&this.forwardEvent(new g8(e.value.snapshot))}activateRoutes(e,A,i){let n=e.value,o=A?A.value:null;if(yS(n),n===o)if(n.component){let r=i.getOrCreateContext(n.outlet);this.activateChildRoutes(e,A,r.children)}else this.activateChildRoutes(e,A,i);else if(n.component){let r=i.getOrCreateContext(n.outlet);if(this.routeReuseStrategy.shouldAttach(n.snapshot)){let s=this.routeReuseStrategy.retrieve(n.snapshot);this.routeReuseStrategy.store(n.snapshot,null),r.children.onOutletReAttached(s.contexts),r.attachRef=s.componentRef,r.route=s.route.value,r.outlet&&r.outlet.attach(s.componentRef,s.route.value),yS(s.route.value),this.activateChildRoutes(e,null,r.children)}else r.attachRef=null,r.route=n,r.outlet&&r.outlet.activateWith(n,r.injector),this.activateChildRoutes(e,null,r.children)}else this.activateChildRoutes(e,null,i)}},Q8=class{path;route;constructor(e){this.path=e,this.route=this.path[this.path.length-1]}},MB=class{component;route;constructor(e,A){this.component=e,this.route=A}};function y4A(t,e,A){let i=t._root,n=e?e._root:null;return vh(i,n,A,[i.value])}function v4A(t){let e=t.routeConfig?t.routeConfig.canActivateChild:null;return!e||e.length===0?null:{node:t,guards:e}}function FB(t,e){let A=Symbol(),i=e.get(t,A);return i===A?typeof t=="function"&&!lY(t)?t:e.get(t):i}function vh(t,e,A,i,n={canDeactivateChecks:[],canActivateChecks:[]}){let o=yB(e);return t.children.forEach(r=>{M4A(r,o[r.value.outlet],A,i.concat([r.value]),n),delete o[r.value.outlet]}),Object.entries(o).forEach(([r,s])=>bh(s,A.getContext(r),n)),n}function M4A(t,e,A,i,n={canDeactivateChecks:[],canActivateChecks:[]}){let o=t.value,r=e?e.value:null,s=A?A.getContext(t.value.outlet):null;if(r&&o.routeConfig===r.routeConfig){let a=b4A(r,o,o.routeConfig.runGuardsAndResolvers);a?n.canActivateChecks.push(new Q8(i)):(o.data=r.data,o._resolvedData=r._resolvedData),o.component?vh(t,e,s?s.children:null,i,n):vh(t,e,A,i,n),a&&s&&s.outlet&&s.outlet.isActivated&&n.canDeactivateChecks.push(new MB(s.outlet.component,r))}else r&&bh(e,s,n),n.canActivateChecks.push(new Q8(i)),o.component?vh(t,null,s?s.children:null,i,n):vh(t,null,A,i,n);return n}function b4A(t,e,A){if(typeof A=="function")return A(t,e);switch(A){case"pathParamsChange":return!iC(t.url,e.url);case"pathParamsOrQueryParamsChange":return!iC(t.url,e.url)||!pl(t.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!NS(t,e)||!pl(t.queryParams,e.queryParams);case"paramsChange":default:return!NS(t,e)}}function bh(t,e,A){let i=yB(t),n=t.value;Object.entries(i).forEach(([o,r])=>{n.component?e?bh(r,e.children.getContext(o),A):bh(r,null,A):bh(r,e,A)}),n.component?e&&e.outlet&&e.outlet.isActivated?A.canDeactivateChecks.push(new MB(e.outlet.component,n)):A.canDeactivateChecks.push(new MB(null,n)):A.canDeactivateChecks.push(new MB(null,n))}function Jh(t){return typeof t=="function"}function k4A(t){return typeof t=="boolean"}function S4A(t){return t&&Jh(t.canLoad)}function R4A(t){return t&&Jh(t.canActivate)}function L4A(t){return t&&Jh(t.canActivateChild)}function x4A(t){return t&&Jh(t.canDeactivate)}function N4A(t){return t&&Jh(t.canMatch)}function Uj(t){return t instanceof B0||t?.name==="EmptyError"}var Z6=Symbol("INITIAL_VALUE");function NB(){return $n(t=>ga(t.map(e=>e.pipe(Xn(1),On(Z6)))).pipe(je(e=>{for(let A of e)if(A!==!0){if(A===Z6)return Z6;if(A===!1||F4A(A))return A}return!0}),Nt(e=>e!==Z6),Xn(1)))}function F4A(t){return bB(t)||t instanceof xB}function _4A(t,e){return or(A=>{let{targetSnapshot:i,currentSnapshot:n,guards:{canActivateChecks:o,canDeactivateChecks:r}}=A;return r.length===0&&o.length===0?Ce(Fe(sA({},A),{guardsResult:!0})):G4A(r,i,n,t).pipe(or(s=>s&&k4A(s)?K4A(i,o,t,e):Ce(s)),je(s=>Fe(sA({},A),{guardsResult:s})))})}function G4A(t,e,A,i){return ro(t).pipe(or(n=>H4A(n.component,n.route,A,e,i)),ol(n=>n!==!0,!0))}function K4A(t,e,A,i){return ro(e).pipe(tl(n=>Q2(J4A(n.route.parent,i),U4A(n.route,i),T4A(t,n.path,A),Y4A(t,n.route,A))),ol(n=>n!==!0,!0))}function U4A(t,e){return t!==null&&e&&e(new l8(t)),Ce(!0)}function J4A(t,e){return t!==null&&e&&e(new c8(t)),Ce(!0)}function Y4A(t,e,A){let i=e.routeConfig?e.routeConfig.canActivate:null;if(!i||i.length===0)return Ce(!0);let n=i.map(o=>el(()=>{let r=Kh(e)??A,s=FB(o,r),a=R4A(s)?s.canActivate(e,t):da(r,()=>s(e,t));return z2(a).pipe(ol())}));return Ce(n).pipe(NB())}function T4A(t,e,A){let i=e[e.length-1],o=e.slice(0,e.length-1).reverse().map(r=>v4A(r)).filter(r=>r!==null).map(r=>el(()=>{let s=r.guards.map(a=>{let c=Kh(r.node)??A,g=FB(a,c),I=L4A(g)?g.canActivateChild(i,t):da(c,()=>g(i,t));return z2(I).pipe(ol())});return Ce(s).pipe(NB())}));return Ce(o).pipe(NB())}function H4A(t,e,A,i,n){let o=e&&e.routeConfig?e.routeConfig.canDeactivate:null;if(!o||o.length===0)return Ce(!0);let r=o.map(s=>{let a=Kh(e)??n,c=FB(s,a),g=x4A(c)?c.canDeactivate(t,e,A,i):da(a,()=>c(t,e,A,i));return z2(g).pipe(ol())});return Ce(r).pipe(NB())}function O4A(t,e,A,i){let n=e.canLoad;if(n===void 0||n.length===0)return Ce(!0);let o=n.map(r=>{let s=FB(r,t),a=S4A(s)?s.canLoad(e,A):da(t,()=>s(e,A));return z2(a)});return Ce(o).pipe(NB(),Jj(i))}function Jj(t){return Tv(So(e=>{if(typeof e!="boolean")throw E8(t,e)}),je(e=>e===!0))}function z4A(t,e,A,i){let n=e.canMatch;if(!n||n.length===0)return Ce(!0);let o=n.map(r=>{let s=FB(r,t),a=N4A(s)?s.canMatch(e,A):da(t,()=>s(e,A));return z2(a)});return Ce(o).pipe(NB(),Jj(i))}var Fh=class{segmentGroup;constructor(e){this.segmentGroup=e||null}},_h=class extends Error{urlTree;constructor(e){super(),this.urlTree=e}};function wB(t){return d2(new Fh(t))}function P4A(t){return d2(new te(4e3,!1))}function j4A(t){return d2(Gj(!1,Da.GuardRejected))}var GS=class{urlSerializer;urlTree;constructor(e,A){this.urlSerializer=e,this.urlTree=A}lineralizeSegments(e,A){let i=[],n=A.root;for(;;){if(i=i.concat(n.segments),n.numberOfChildren===0)return Ce(i);if(n.numberOfChildren>1||!n.children[wi])return P4A(`${e.redirectTo}`);n=n.children[wi]}}applyRedirectCommands(e,A,i,n,o){if(typeof A!="string"){let s=A,{queryParams:a,fragment:c,routeConfig:g,url:I,outlet:C,params:d,data:B,title:E}=n,u=da(o,()=>s({params:d,data:B,queryParams:a,fragment:c,routeConfig:g,url:I,outlet:C,title:E}));if(u instanceof wl)throw new _h(u);A=u}let r=this.applyRedirectCreateUrlTree(A,this.urlSerializer.parse(A),e,i);if(A[0]==="/")throw new _h(r);return r}applyRedirectCreateUrlTree(e,A,i,n){let o=this.createSegmentGroup(e,A.root,i,n);return new wl(o,this.createQueryParams(A.queryParams,this.urlTree.queryParams),A.fragment)}createQueryParams(e,A){let i={};return Object.entries(e).forEach(([n,o])=>{if(typeof o=="string"&&o[0]===":"){let s=o.substring(1);i[n]=A[s]}else i[n]=o}),i}createSegmentGroup(e,A,i,n){let o=this.createSegments(e,A.segments,i,n),r={};return Object.entries(A.children).forEach(([s,a])=>{r[s]=this.createSegmentGroup(e,a,i,n)}),new Nn(o,r)}createSegments(e,A,i,n){return A.map(o=>o.path[0]===":"?this.findPosParam(e,o,n):this.findOrReturn(o,i))}findPosParam(e,A,i){let n=i[A.path.substring(1)];if(!n)throw new te(4001,!1);return n}findOrReturn(e,A){let i=0;for(let n of A){if(n.path===e.path)return A.splice(i),n;i++}return e}},KS={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function q4A(t,e,A,i,n){let o=Yj(t,e,A);return o.matched?(i=Q4A(e,i),z4A(i,e,A,n).pipe(je(r=>r===!0?o:sA({},KS)))):Ce(o)}function Yj(t,e,A){if(e.path==="**")return V4A(A);if(e.path==="")return e.pathMatch==="full"&&(t.hasChildren()||A.length>0)?sA({},KS):{matched:!0,consumedSegments:[],remainingSegments:A,parameters:{},positionalParamSegments:{}};let n=(e.matcher||Ej)(A,t,e);if(!n)return sA({},KS);let o={};Object.entries(n.posParams??{}).forEach(([s,a])=>{o[s]=a.path});let r=n.consumed.length>0?sA(sA({},o),n.consumed[n.consumed.length-1].parameters):o;return{matched:!0,consumedSegments:n.consumed,remainingSegments:A.slice(n.consumed.length),parameters:r,positionalParamSegments:n.posParams??{}}}function V4A(t){return{matched:!0,parameters:t.length>0?uj(t).parameters:{},consumedSegments:t,remainingSegments:[],positionalParamSegments:{}}}function Cj(t,e,A,i){return A.length>0&&X4A(t,A,i)?{segmentGroup:new Nn(e,W4A(i,new Nn(A,t.children))),slicedSegments:[]}:A.length===0&&$4A(t,A,i)?{segmentGroup:new Nn(t.segments,Z4A(t,A,i,t.children)),slicedSegments:A}:{segmentGroup:new Nn(t.segments,t.children),slicedSegments:A}}function Z4A(t,e,A,i){let n={};for(let o of A)if(h8(t,e,o)&&!i[wg(o)]){let r=new Nn([],{});n[wg(o)]=r}return sA(sA({},i),n)}function W4A(t,e){let A={};A[wi]=e;for(let i of t)if(i.path===""&&wg(i)!==wi){let n=new Nn([],{});A[wg(i)]=n}return A}function X4A(t,e,A){return A.some(i=>h8(t,e,i)&&wg(i)!==wi)}function $4A(t,e,A){return A.some(i=>h8(t,e,i))}function h8(t,e,A){return(t.hasChildren()||e.length>0)&&A.pathMatch==="full"?!1:A.path===""}function A3A(t,e,A){return e.length===0&&!t.children[A]}var US=class{};function e3A(t,e,A,i,n,o,r="emptyOnly"){return new JS(t,e,A,i,n,r,o).recognize()}var t3A=31,JS=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(e,A,i,n,o,r,s){this.injector=e,this.configLoader=A,this.rootComponentType=i,this.config=n,this.urlTree=o,this.paramsInheritanceStrategy=r,this.urlSerializer=s,this.applyRedirects=new GS(this.urlSerializer,this.urlTree)}noMatchError(e){return new te(4002,`'${e.segmentGroup}'`)}recognize(){let e=Cj(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(e).pipe(je(({children:A,rootSnapshot:i})=>{let n=new rc(i,A),o=new xh("",n),r=Mj(i,[],this.urlTree.queryParams,this.urlTree.fragment);return r.queryParams=this.urlTree.queryParams,o.url=this.urlSerializer.serialize(r),{state:o,tree:r}}))}match(e){let A=new nC([],Object.freeze({}),Object.freeze(sA({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),wi,this.rootComponentType,null,{});return this.processSegmentGroup(this.injector,this.config,e,wi,A).pipe(je(i=>({children:i,rootSnapshot:A})),Gr(i=>{if(i instanceof _h)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof Fh?this.noMatchError(i):i}))}processSegmentGroup(e,A,i,n,o){return i.segments.length===0&&i.hasChildren()?this.processChildren(e,A,i,o):this.processSegment(e,A,i,i.segments,n,!0,o).pipe(je(r=>r instanceof rc?[r]:[]))}processChildren(e,A,i,n){let o=[];for(let r of Object.keys(i.children))r==="primary"?o.unshift(r):o.push(r);return ro(o).pipe(tl(r=>{let s=i.children[r],a=u4A(A,r);return this.processSegmentGroup(e,a,s,r,n)}),qv((r,s)=>(r.push(...s),r)),u2(null),jv(),or(r=>{if(r===null)return wB(i);let s=Tj(r);return i3A(s),Ce(s)}))}processSegment(e,A,i,n,o,r,s){return ro(A).pipe(tl(a=>this.processSegmentAgainstRoute(a._injector??e,A,a,i,n,o,r,s).pipe(Gr(c=>{if(c instanceof Fh)return Ce(null);throw c}))),ol(a=>!!a),Gr(a=>{if(Uj(a))return A3A(i,n,o)?Ce(new US):wB(i);throw a}))}processSegmentAgainstRoute(e,A,i,n,o,r,s,a){return wg(i)!==r&&(r===wi||!h8(n,o,i))?wB(n):i.redirectTo===void 0?this.matchSegmentAgainstRoute(e,n,i,o,r,a):this.allowRedirects&&s?this.expandSegmentAgainstRouteUsingRedirect(e,n,A,i,o,r,a):wB(n)}expandSegmentAgainstRouteUsingRedirect(e,A,i,n,o,r,s){let{matched:a,parameters:c,consumedSegments:g,positionalParamSegments:I,remainingSegments:C}=Yj(A,n,o);if(!a)return wB(A);typeof n.redirectTo=="string"&&n.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>t3A&&(this.allowRedirects=!1));let d=new nC(o,c,Object.freeze(sA({},this.urlTree.queryParams)),this.urlTree.fragment,dj(n),wg(n),n.component??n._loadedComponent??null,n,Bj(n)),B=B8(d,s,this.paramsInheritanceStrategy);d.params=Object.freeze(B.params),d.data=Object.freeze(B.data);let E=this.applyRedirects.applyRedirectCommands(g,n.redirectTo,I,d,e);return this.applyRedirects.lineralizeSegments(n,E).pipe(or(u=>this.processSegment(e,i,A,u.concat(C),r,!1,s)))}matchSegmentAgainstRoute(e,A,i,n,o,r){let s=q4A(A,i,n,e,this.urlSerializer);return i.path==="**"&&(A.children={}),s.pipe($n(a=>a.matched?(e=i._injector??e,this.getChildConfig(e,i,n).pipe($n(({routes:c})=>{let g=i._loadedInjector??e,{parameters:I,consumedSegments:C,remainingSegments:d}=a,B=new nC(C,I,Object.freeze(sA({},this.urlTree.queryParams)),this.urlTree.fragment,dj(i),wg(i),i.component??i._loadedComponent??null,i,Bj(i)),E=B8(B,r,this.paramsInheritanceStrategy);B.params=Object.freeze(E.params),B.data=Object.freeze(E.data);let{segmentGroup:u,slicedSegments:h}=Cj(A,C,d,c);if(h.length===0&&u.hasChildren())return this.processChildren(g,c,u,B).pipe(je(x=>new rc(B,x)));if(c.length===0&&h.length===0)return Ce(new rc(B,[]));let w=wg(i)===o;return this.processSegment(g,c,u,h,w?wi:o,!0,B).pipe(je(x=>new rc(B,x instanceof rc?[x]:[])))}))):wB(A)))}getChildConfig(e,A,i){return A.children?Ce({routes:A.children,injector:e}):A.loadChildren?A._loadedRoutes!==void 0?Ce({routes:A._loadedRoutes,injector:A._loadedInjector}):O4A(e,A,i,this.urlSerializer).pipe(or(n=>n?this.configLoader.loadChildren(e,A).pipe(So(o=>{A._loadedRoutes=o.routes,A._loadedInjector=o.injector})):j4A(A))):Ce({routes:[],injector:e})}};function i3A(t){t.sort((e,A)=>e.value.outlet===wi?-1:A.value.outlet===wi?1:e.value.outlet.localeCompare(A.value.outlet))}function n3A(t){let e=t.value.routeConfig;return e&&e.path===""}function Tj(t){let e=[],A=new Set;for(let i of t){if(!n3A(i)){e.push(i);continue}let n=e.find(o=>i.value.routeConfig===o.value.routeConfig);n!==void 0?(n.children.push(...i.children),A.add(n)):e.push(i)}for(let i of A){let n=Tj(i.children);e.push(new rc(i.value,n))}return e.filter(i=>!A.has(i))}function dj(t){return t.data||{}}function Bj(t){return t.resolve||{}}function o3A(t,e,A,i,n,o){return or(r=>e3A(t,e,A,i,r.extractedUrl,n,o).pipe(je(({state:s,tree:a})=>Fe(sA({},r),{targetSnapshot:s,urlAfterRedirects:a}))))}function r3A(t,e){return or(A=>{let{targetSnapshot:i,guards:{canActivateChecks:n}}=A;if(!n.length)return Ce(A);let o=new Set(n.map(a=>a.route)),r=new Set;for(let a of o)if(!r.has(a))for(let c of Hj(a))r.add(c);let s=0;return ro(r).pipe(tl(a=>o.has(a)?s3A(a,i,t,e):(a.data=B8(a,a.parent,t).resolve,Ce(void 0))),So(()=>s++),yd(1),or(a=>s===r.size?Ce(A):lr))})}function Hj(t){let e=t.children.map(A=>Hj(A)).flat();return[t,...e]}function s3A(t,e,A,i){let n=t.routeConfig,o=t._resolve;return n?.title!==void 0&&!Nj(n)&&(o[Gh]=n.title),a3A(o,t,e,i).pipe(je(r=>(t._resolvedData=r,t.data=B8(t,t.parent,A).resolve,null)))}function a3A(t,e,A,i){let n=bS(t);if(n.length===0)return Ce({});let o={};return ro(n).pipe(or(r=>c3A(t[r],e,A,i).pipe(ol(),So(s=>{if(s instanceof xB)throw E8(new H2,s);o[r]=s}))),yd(1),je(()=>o),Gr(r=>Uj(r)?lr:d2(r)))}function c3A(t,e,A,i){let n=Kh(e)??i,o=FB(t,n),r=o.resolve?o.resolve(e,A):da(n,()=>o(e,A));return z2(r)}function vS(t){return $n(e=>{let A=t(e);return A?ro(A).pipe(je(()=>e)):Ce(e)})}var PS=(()=>{class t{buildTitle(A){let i,n=A.root;for(;n!==void 0;)i=this.getResolvedTitleForRoute(n)??i,n=n.children.find(o=>o.outlet===wi);return i}getResolvedTitleForRoute(A){return A.data[Gh]}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(Oj),providedIn:"root"})}return t})(),Oj=(()=>{class t extends PS{title;constructor(A){super(),this.title=A}updateTitle(A){let i=this.buildTitle(A);i!==void 0&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||t)(be(lP))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),aC=new eA("",{providedIn:"root",factory:()=>({})}),_B=new eA(""),f8=(()=>{class t{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=f(oO);loadComponent(A){if(this.componentLoaders.get(A))return this.componentLoaders.get(A);if(A._loadedComponent)return Ce(A._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(A);let i=z2(A.loadComponent()).pipe(je(Pj),So(o=>{this.onLoadEndListener&&this.onLoadEndListener(A),A._loadedComponent=o}),nl(()=>{this.componentLoaders.delete(A)})),n=new C2(i,()=>new qA).pipe(ud());return this.componentLoaders.set(A,n),n}loadChildren(A,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return Ce({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);let o=zj(i,this.compiler,A,this.onLoadEndListener).pipe(nl(()=>{this.childrenLoaders.delete(i)})),r=new C2(o,()=>new qA).pipe(ud());return this.childrenLoaders.set(i,r),r}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function zj(t,e,A,i){return z2(t.loadChildren()).pipe(je(Pj),or(n=>n instanceof ub||Array.isArray(n)?Ce(n):ro(e.compileModuleAsync(n))),je(n=>{i&&i(t);let o,r,s=!1;return Array.isArray(n)?(r=n,s=!0):(o=n.create(A).injector,r=o.get(_B,[],{optional:!0,self:!0}).flat()),{routes:r.map(zS),injector:o}}))}function g3A(t){return t&&typeof t=="object"&&"default"in t}function Pj(t){return g3A(t)?t.default:t}var m8=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(l3A),providedIn:"root"})}return t})(),l3A=(()=>{class t{shouldProcessUrl(A){return!0}extract(A){return A}merge(A,i){return A}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),jS=new eA(""),qS=new eA("");function jj(t,e,A){let i=t.get(qS),n=t.get(at);return t.get(ye).runOutsideAngular(()=>{if(!n.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,new Promise(c=>setTimeout(c));let o,r=new Promise(c=>{o=c}),s=n.startViewTransition(()=>(o(),I3A(t))),{onViewTransitionCreated:a}=i;return a&&da(t,()=>a({transition:s,from:e,to:A})),r})}function I3A(t){return new Promise(e=>{Ir({read:()=>setTimeout(e)},{injector:t})})}var VS=new eA(""),p8=(()=>{class t{currentNavigation=null;currentTransition=null;lastSuccessfulNavigation=null;events=new qA;transitionAbortSubject=new qA;configLoader=f(f8);environmentInjector=f(vr);destroyRef=f(f0);urlSerializer=f(rC);rootContexts=f(sC);location=f(ha);inputBindingEnabled=f(Uh,{optional:!0})!==null;titleStrategy=f(PS);options=f(aC,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=f(m8);createViewTransition=f(jS,{optional:!0});navigationErrorHandler=f(VS,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>Ce(void 0);rootComponentType=null;destroyed=!1;constructor(){let A=n=>this.events.next(new s8(n)),i=n=>this.events.next(new a8(n));this.configLoader.onLoadEndListener=i,this.configLoader.onLoadStartListener=A,this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(A){let i=++this.navigationId;this.transitions?.next(Fe(sA({},A),{extractedUrl:this.urlHandlingStrategy.extract(A.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:i}))}setupNavigations(A){return this.transitions=new Fi(null),this.transitions.pipe(Nt(i=>i!==null),$n(i=>{let n=!1,o=!1;return Ce(i).pipe($n(r=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",Da.SupersededByNewNavigation),lr;this.currentTransition=i,this.currentNavigation={id:r.id,initialUrl:r.rawUrl,extractedUrl:r.extractedUrl,targetBrowserUrl:typeof r.extras.browserUrl=="string"?this.urlSerializer.parse(r.extras.browserUrl):r.extras.browserUrl,trigger:r.source,extras:r.extras,previousNavigation:this.lastSuccessfulNavigation?Fe(sA({},this.lastSuccessfulNavigation),{previousNavigation:null}):null};let s=!A.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),a=r.extras.onSameUrlNavigation??A.onSameUrlNavigation;if(!s&&a!=="reload"){let c="";return this.events.next(new yl(r.id,this.urlSerializer.serialize(r.rawUrl),c,kB.IgnoredSameUrlNavigation)),r.resolve(!1),lr}if(this.urlHandlingStrategy.shouldProcessUrl(r.rawUrl))return Ce(r).pipe($n(c=>(this.events.next(new O2(c.id,this.urlSerializer.serialize(c.extractedUrl),c.source,c.restoredState)),c.id!==this.navigationId?lr:Promise.resolve(c))),o3A(this.environmentInjector,this.configLoader,this.rootComponentType,A.config,this.urlSerializer,this.paramsInheritanceStrategy),So(c=>{i.targetSnapshot=c.targetSnapshot,i.urlAfterRedirects=c.urlAfterRedirects,this.currentNavigation=Fe(sA({},this.currentNavigation),{finalUrl:c.urlAfterRedirects});let g=new Sh(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(g)}));if(s&&this.urlHandlingStrategy.shouldProcessUrl(r.currentRawUrl)){let{id:c,extractedUrl:g,source:I,restoredState:C,extras:d}=r,B=new O2(c,this.urlSerializer.serialize(g),I,C);this.events.next(B);let E=Lj(this.rootComponentType).snapshot;return this.currentTransition=i=Fe(sA({},r),{targetSnapshot:E,urlAfterRedirects:g,extras:Fe(sA({},d),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.finalUrl=g,Ce(i)}else{let c="";return this.events.next(new yl(r.id,this.urlSerializer.serialize(r.extractedUrl),c,kB.IgnoredByUrlHandlingStrategy)),r.resolve(!1),lr}}),So(r=>{let s=new i8(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects),r.targetSnapshot);this.events.next(s)}),je(r=>(this.currentTransition=i=Fe(sA({},r),{guards:y4A(r.targetSnapshot,r.currentSnapshot,this.rootContexts)}),i)),_4A(this.environmentInjector,r=>this.events.next(r)),So(r=>{if(i.guardsResult=r.guardsResult,r.guardsResult&&typeof r.guardsResult!="boolean")throw E8(this.urlSerializer,r.guardsResult);let s=new n8(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects),r.targetSnapshot,!!r.guardsResult);this.events.next(s)}),Nt(r=>r.guardsResult?!0:(this.cancelNavigationTransition(r,"",Da.GuardRejected),!1)),vS(r=>{if(r.guards.canActivateChecks.length!==0)return Ce(r).pipe(So(s=>{let a=new o8(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(a)}),$n(s=>{let a=!1;return Ce(s).pipe(r3A(this.paramsInheritanceStrategy,this.environmentInjector),So({next:()=>a=!0,complete:()=>{a||this.cancelNavigationTransition(s,"",Da.NoDataFromResolver)}}))}),So(s=>{let a=new r8(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(a)}))}),vS(r=>{let s=a=>{let c=[];a.routeConfig?.loadComponent&&!a.routeConfig._loadedComponent&&c.push(this.configLoader.loadComponent(a.routeConfig).pipe(So(g=>{a.component=g}),je(()=>{})));for(let g of a.children)c.push(...s(g));return c};return ga(s(r.targetSnapshot.root)).pipe(u2(null),Xn(1))}),vS(()=>this.afterPreactivation()),$n(()=>{let{currentSnapshot:r,targetSnapshot:s}=i,a=this.createViewTransition?.(this.environmentInjector,r.root,s.root);return a?ro(a).pipe(je(()=>i)):Ce(i)}),je(r=>{let s=f4A(A.routeReuseStrategy,r.targetSnapshot,r.currentRouterState);return this.currentTransition=i=Fe(sA({},r),{targetRouterState:s}),this.currentNavigation.targetRouterState=s,i}),So(()=>{this.events.next(new Rh)}),w4A(this.rootContexts,A.routeReuseStrategy,r=>this.events.next(r),this.inputBindingEnabled),Xn(1),So({next:r=>{n=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new ac(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects))),this.titleStrategy?.updateTitle(r.targetRouterState.snapshot),r.resolve(!0)},complete:()=>{n=!0}}),kt(this.transitionAbortSubject.pipe(So(r=>{throw r}))),nl(()=>{!n&&!o&&this.cancelNavigationTransition(i,"",Da.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation=null,this.currentTransition=null)}),Gr(r=>{if(this.destroyed)return i.resolve(!1),lr;if(o=!0,Kj(r))this.events.next(new Dl(i.id,this.urlSerializer.serialize(i.extractedUrl),r.message,r.cancellationCode)),D4A(r)?this.events.next(new LB(r.url,r.navigationBehaviorOptions)):i.resolve(!1);else{let s=new SB(i.id,this.urlSerializer.serialize(i.extractedUrl),r,i.targetSnapshot??void 0);try{let a=da(this.environmentInjector,()=>this.navigationErrorHandler?.(s));if(a instanceof xB){let{message:c,cancellationCode:g}=E8(this.urlSerializer,a);this.events.next(new Dl(i.id,this.urlSerializer.serialize(i.extractedUrl),c,g)),this.events.next(new LB(a.redirectTo,a.navigationBehaviorOptions))}else throw this.events.next(s),r}catch(a){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(a)}}return lr}))}))}cancelNavigationTransition(A,i,n){let o=new Dl(A.id,this.urlSerializer.serialize(A.extractedUrl),i,n);this.events.next(o),A.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let A=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=this.currentNavigation?.targetBrowserUrl??this.currentNavigation?.extractedUrl;return A.toString()!==i?.toString()&&!this.currentNavigation?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function C3A(t){return t!==A8}var qj=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(d3A),providedIn:"root"})}return t})(),u8=class{shouldDetach(e){return!1}store(e,A){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,A){return e.routeConfig===A.routeConfig}},d3A=(()=>{class t extends u8{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Vj=(()=>{class t{urlSerializer=f(rC);options=f(aC,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=f(ha);urlHandlingStrategy=f(m8);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new wl;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:A,initialUrl:i,targetBrowserUrl:n}){let o=A!==void 0?this.urlHandlingStrategy.merge(A,i):i,r=n??o;return r instanceof wl?this.urlSerializer.serialize(r):r}commitTransition({targetRouterState:A,finalUrl:i,initialUrl:n}){i&&A?(this.currentUrlTree=i,this.rawUrlTree=this.urlHandlingStrategy.merge(i,n),this.routerState=A):this.rawUrlTree=n}routerState=Lj(null);getRouterState(){return this.routerState}stateMemento=this.createStateMemento();updateStateMemento(){this.stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}resetInternalState({finalUrl:A}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,A??this.rawUrlTree)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(B3A),providedIn:"root"})}return t})(),B3A=(()=>{class t extends Vj{currentPageId=0;lastSuccessfulId=-1;restoredState(){return this.location.getState()}get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(A){return this.location.subscribe(i=>{i.type==="popstate"&&setTimeout(()=>{A(i.url,i.state,"popstate")})})}handleRouterEvent(A,i){A instanceof O2?this.updateStateMemento():A instanceof yl?this.commitTransition(i):A instanceof Sh?this.urlUpdateStrategy==="eager"&&(i.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(i),i)):A instanceof Rh?(this.commitTransition(i),this.urlUpdateStrategy==="deferred"&&!i.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(i),i)):A instanceof Dl&&(A.code===Da.GuardRejected||A.code===Da.NoDataFromResolver)?this.restoreHistory(i):A instanceof SB?this.restoreHistory(i,!0):A instanceof ac&&(this.lastSuccessfulId=A.id,this.currentPageId=this.browserPageId)}setBrowserUrl(A,{extras:i,id:n}){let{replaceUrl:o,state:r}=i;if(this.location.isCurrentPathEqualTo(A)||o){let s=this.browserPageId,a=sA(sA({},r),this.generateNgRouterState(n,s));this.location.replaceState(A,"",a)}else{let s=sA(sA({},r),this.generateNgRouterState(n,this.browserPageId+1));this.location.go(A,"",s)}}restoreHistory(A,i=!1){if(this.canceledNavigationResolution==="computed"){let n=this.browserPageId,o=this.currentPageId-n;o!==0?this.location.historyGo(o):this.getCurrentUrlTree()===A.finalUrl&&o===0&&(this.resetInternalState(A),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(i&&this.resetInternalState(A),this.resetUrlToCurrentUrlTree())}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(A,i){return this.canceledNavigationResolution==="computed"?{navigationId:A,\u0275routerPageId:i}:{navigationId:A}}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function D8(t,e){t.events.pipe(Nt(A=>A instanceof ac||A instanceof Dl||A instanceof SB||A instanceof yl),je(A=>A instanceof ac||A instanceof yl?0:(A instanceof Dl?A.code===Da.Redirect||A.code===Da.SupersededByNewNavigation:!1)?2:1),Nt(A=>A!==2),Xn(1)).subscribe(()=>{e()})}var E3A={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Q3A={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"},vl=(()=>{class t{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=f(mb);stateManager=f(Vj);options=f(aC,{optional:!0})||{};pendingTasks=f(m0);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=f(p8);urlSerializer=f(rC);location=f(ha);urlHandlingStrategy=f(m8);_events=new qA;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=f(qj);onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=f(_B,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!f(Uh,{optional:!0});constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:A=>{this.console.warn(A)}}),this.subscribeToNavigationEvents()}eventsSubscription=new Kt;subscribeToNavigationEvents(){let A=this.navigationTransitions.events.subscribe(i=>{try{let n=this.navigationTransitions.currentTransition,o=this.navigationTransitions.currentNavigation;if(n!==null&&o!==null){if(this.stateManager.handleRouterEvent(i,o),i instanceof Dl&&i.code!==Da.Redirect&&i.code!==Da.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof ac)this.navigated=!0;else if(i instanceof LB){let r=i.navigationBehaviorOptions,s=this.urlHandlingStrategy.merge(i.url,n.currentRawUrl),a=sA({browserUrl:n.extras.browserUrl,info:n.extras.info,skipLocationChange:n.extras.skipLocationChange,replaceUrl:n.extras.replaceUrl||this.urlUpdateStrategy==="eager"||C3A(n.source)},r);this.scheduleNavigation(s,A8,null,a,{resolve:n.resolve,reject:n.reject,promise:n.promise})}}h3A(i)&&this._events.next(i)}catch(n){this.navigationTransitions.transitionAbortSubject.next(n)}});this.eventsSubscription.add(A)}resetRootComponentType(A){this.routerState.root.component=A,this.navigationTransitions.rootComponentType=A}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),A8,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((A,i,n)=>{this.navigateToSyncWithBrowser(A,n,i)})}navigateToSyncWithBrowser(A,i,n){let o={replaceUrl:!0},r=n?.navigationId?n:null;if(n){let a=sA({},n);delete a.navigationId,delete a.\u0275routerPageId,Object.keys(a).length!==0&&(o.state=a)}let s=this.parseUrl(A);this.scheduleNavigation(s,i,r,o)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(A){this.config=A.map(zS),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(A,i={}){let{relativeTo:n,queryParams:o,fragment:r,queryParamsHandling:s,preserveFragment:a}=i,c=a?this.currentUrlTree.fragment:r,g=null;switch(s??this.options.defaultQueryParamsHandling){case"merge":g=sA(sA({},this.currentUrlTree.queryParams),o);break;case"preserve":g=this.currentUrlTree.queryParams;break;default:g=o||null}g!==null&&(g=this.removeEmptyProps(g));let I;try{let C=n?n.snapshot:this.routerState.snapshot.root;I=bj(C)}catch{(typeof A[0]!="string"||A[0][0]!=="/")&&(A=[]),I=this.currentUrlTree.root}return kj(I,A,g,c??null)}navigateByUrl(A,i={skipLocationChange:!1}){let n=bB(A)?A:this.parseUrl(A),o=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(o,A8,null,i)}navigate(A,i={skipLocationChange:!1}){return u3A(A),this.navigateByUrl(this.createUrlTree(A,i),i)}serializeUrl(A){return this.urlSerializer.serialize(A)}parseUrl(A){try{return this.urlSerializer.parse(A)}catch{return this.urlSerializer.parse("/")}}isActive(A,i){let n;if(i===!0?n=sA({},E3A):i===!1?n=sA({},Q3A):n=i,bB(A))return cj(this.currentUrlTree,A,n);let o=this.parseUrl(A);return cj(this.currentUrlTree,o,n)}removeEmptyProps(A){return Object.entries(A).reduce((i,[n,o])=>(o!=null&&(i[n]=o),i),{})}scheduleNavigation(A,i,n,o,r){if(this.disposed)return Promise.resolve(!1);let s,a,c;r?(s=r.resolve,a=r.reject,c=r.promise):c=new Promise((I,C)=>{s=I,a=C});let g=this.pendingTasks.add();return D8(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(g))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:n,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:A,extras:o,resolve:s,reject:a,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(I=>Promise.reject(I))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function u3A(t){for(let e=0;e{class t{router;injector;preloadingStrategy;loader;subscription;constructor(A,i,n,o){this.router=A,this.injector=i,this.preloadingStrategy=n,this.loader=o}setUpPreloading(){this.subscription=this.router.events.pipe(Nt(A=>A instanceof ac),tl(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(A,i){let n=[];for(let o of i){o.providers&&!o._injector&&(o._injector=Nu(o.providers,A,`Route: ${o.path}`));let r=o._injector??A,s=o._loadedInjector??r;(o.loadChildren&&!o._loadedRoutes&&o.canLoad===void 0||o.loadComponent&&!o._loadedComponent)&&n.push(this.preloadConfig(r,o)),(o.children||o._loadedRoutes)&&n.push(this.processRoutes(s,o.children??o._loadedRoutes))}return ro(n).pipe(E2())}preloadConfig(A,i){return this.preloadingStrategy.preload(i,()=>{let n;i.loadChildren&&i.canLoad===void 0?n=this.loader.loadChildren(A,i):n=Ce(null);let o=n.pipe(or(r=>r===null?Ce(void 0):(i._loadedRoutes=r.routes,i._loadedInjector=r.injector,this.processRoutes(r.injector??A,r.routes))));if(i.loadComponent&&!i._loadedComponent){let r=this.loader.loadComponent(i);return ro([o,r]).pipe(E2())}else return o})}static \u0275fac=function(i){return new(i||t)(be(vl),be(vr),be(Yh),be(f8))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Wj=new eA(""),f3A=(()=>{class t{urlSerializer;transitions;viewportScroller;zone;options;routerEventsSubscription;scrollEventsSubscription;lastId=0;lastSource="imperative";restoredId=0;store={};constructor(A,i,n,o,r={}){this.urlSerializer=A,this.transitions=i,this.viewportScroller=n,this.zone=o,this.options=r,r.scrollPositionRestoration||="disabled",r.anchorScrolling||="disabled"}init(){this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(A=>{A instanceof O2?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=A.navigationTrigger,this.restoredId=A.restoredState?A.restoredState.navigationId:0):A instanceof ac?(this.lastId=A.id,this.scheduleScrollEvent(A,this.urlSerializer.parse(A.urlAfterRedirects).fragment)):A instanceof yl&&A.code===kB.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(A,this.urlSerializer.parse(A.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(A=>{A instanceof RB&&(A.position?this.options.scrollPositionRestoration==="top"?this.viewportScroller.scrollToPosition([0,0]):this.options.scrollPositionRestoration==="enabled"&&this.viewportScroller.scrollToPosition(A.position):A.anchor&&this.options.anchorScrolling==="enabled"?this.viewportScroller.scrollToAnchor(A.anchor):this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(A,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new RB(A,this.lastSource==="popstate"?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static \u0275fac=function(i){IH()};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();function m3A(t){return t.routerState.root}function Th(t,e){return{\u0275kind:t,\u0275providers:e}}function p3A(){let t=f(Zt);return e=>{let A=t.get(Ca);if(e!==A.components[0])return;let i=t.get(vl),n=t.get(Xj);t.get(WS)===1&&i.initialNavigation(),t.get(eq,null,bi.Optional)?.setUpPreloading(),t.get(Wj,null,bi.Optional)?.init(),i.resetRootComponentType(A.componentTypes[0]),n.closed||(n.next(),n.complete(),n.unsubscribe())}}var Xj=new eA("",{factory:()=>new qA}),WS=new eA("",{providedIn:"root",factory:()=>1});function $j(){let t=[{provide:WS,useValue:0},yb(()=>{let e=f(Zt);return e.get(_b,Promise.resolve()).then(()=>new Promise(i=>{let n=e.get(vl),o=e.get(Xj);D8(n,()=>{i(!0)}),e.get(p8).afterPreactivation=()=>(i(!0),o.closed?Ce(void 0):o),n.initialNavigation()}))})];return Th(2,t)}function Aq(){let t=[yb(()=>{f(vl).setUpLocationChangeListener()}),{provide:WS,useValue:2}];return Th(3,t)}var eq=new eA("");function tq(t){return Th(0,[{provide:eq,useExisting:Zj},{provide:Yh,useExisting:t}])}function iq(){return Th(8,[HS,{provide:Uh,useExisting:HS}])}function nq(t){Cg("NgRouterViewTransitions");let e=[{provide:jS,useValue:jj},{provide:qS,useValue:sA({skipNextTransition:!!t?.skipInitialTransition},t)}];return Th(9,e)}var oq=[ha,{provide:rC,useClass:H2},vl,sC,{provide:xc,useFactory:m3A,deps:[vl]},f8,[]],w8=(()=>{class t{constructor(){}static forRoot(A,i){return{ngModule:t,providers:[oq,[],{provide:_B,multi:!0,useValue:A},[],i?.errorHandler?{provide:VS,useValue:i.errorHandler}:[],{provide:aC,useValue:i||{}},i?.useHash?w3A():y3A(),D3A(),i?.preloadingStrategy?tq(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?v3A(i):[],i?.bindToComponentInputs?iq().\u0275providers:[],i?.enableViewTransitions?nq().\u0275providers:[],M3A()]}}static forChild(A){return{ngModule:t,providers:[{provide:_B,multi:!0,useValue:A}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();function D3A(){return{provide:Wj,useFactory:()=>{let t=f(fO),e=f(ye),A=f(aC),i=f(p8),n=f(rC);return A.scrollOffset&&t.setOffset(A.scrollOffset),new f3A(n,i,t,e,A)}}}function w3A(){return{provide:D0,useClass:Jb}}function y3A(){return{provide:D0,useClass:kp}}function v3A(t){return[t.initialNavigation==="disabled"?Aq().\u0275providers:[],t.initialNavigation==="enabledBlocking"?$j().\u0275providers:[]]}var ZS=new eA("");function M3A(){return[{provide:ZS,useFactory:p3A},{provide:vb,multi:!0,useExisting:ZS}]}var k3A=["*"];var S3A=new eA("MAT_CARD_CONFIG"),y8=(()=>{class t{appearance;constructor(){let A=f(S3A,{optional:!0});this.appearance=A?.appearance||"raised"}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,n){i&2&&he("mat-mdc-card-outlined",n.appearance==="outlined")("mdc-card--outlined",n.appearance==="outlined")},inputs:{appearance:"appearance"},exportAs:["matCard"],ngContentSelectors:k3A,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},styles:['.mat-mdc-card{display:flex;flex-direction:column;box-sizing:border-box;position:relative;border-style:solid;border-width:0;background-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium));box-shadow:var(--mdc-elevated-card-container-elevation, var(--mat-sys-level1))}.mat-mdc-card::after{position:absolute;top:0;left:0;width:100%;height:100%;border:solid 1px rgba(0,0,0,0);content:"";display:block;pointer-events:none;box-sizing:border-box;border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium))}.mat-mdc-card-outlined{background-color:var(--mdc-outlined-card-container-color, var(--mat-sys-surface));border-radius:var(--mdc-outlined-card-container-shape, var(--mat-sys-corner-medium));border-width:var(--mdc-outlined-card-outline-width, 1px);border-color:var(--mdc-outlined-card-outline-color, var(--mat-sys-outline-variant));box-shadow:var(--mdc-outlined-card-container-elevation, var(--mat-sys-level0))}.mat-mdc-card-outlined::after{border:none}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mat-mdc-card-actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font, var(--mat-sys-title-large-font));line-height:var(--mat-card-title-text-line-height, var(--mat-sys-title-large-line-height));font-size:var(--mat-card-title-text-size, var(--mat-sys-title-large-size));letter-spacing:var(--mat-card-title-text-tracking, var(--mat-sys-title-large-tracking));font-weight:var(--mat-card-title-text-weight, var(--mat-sys-title-large-weight))}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color, var(--mat-sys-on-surface));font-family:var(--mat-card-subtitle-text-font, var(--mat-sys-title-medium-font));line-height:var(--mat-card-subtitle-text-line-height, var(--mat-sys-title-medium-line-height));font-size:var(--mat-card-subtitle-text-size, var(--mat-sys-title-medium-size));letter-spacing:var(--mat-card-subtitle-text-tracking, var(--mat-sys-title-medium-tracking));font-weight:var(--mat-card-subtitle-text-weight, var(--mat-sys-title-medium-weight))}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end}'],encapsulation:2,changeDetection:0})}return t})();var rq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,pn]})}return t})();var v8=class{};function M8(t){return t&&typeof t.connect=="function"&&!(t instanceof C2)}var GB=function(t){return t[t.REPLACED=0]="REPLACED",t[t.INSERTED=1]="INSERTED",t[t.MOVED=2]="MOVED",t[t.REMOVED=3]="REMOVED",t}(GB||{}),Hh=new eA("_ViewRepeater"),KB=class{applyChanges(e,A,i,n,o){e.forEachOperation((r,s,a)=>{let c,g;if(r.previousIndex==null){let I=i(r,s,a);c=A.createEmbeddedView(I.templateRef,I.context,I.index),g=GB.INSERTED}else a==null?(A.remove(s),g=GB.REMOVED):(c=A.get(s),A.move(c,a),g=GB.MOVED);o&&o({context:c?.context,operation:g,record:r})})}detach(){}};var P2=class{_multiple;_emitChanges;compareWith;_selection=new Set;_deselectedToEmit=[];_selectedToEmit=[];_selected;get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}changed=new qA;constructor(e=!1,A,i=!0,n){this._multiple=e,this._emitChanges=i,this.compareWith=n,A&&A.length&&(e?A.forEach(o=>this._markSelected(o)):this._markSelected(A[0]),this._selectedToEmit.length=0)}select(...e){this._verifyValueAssignment(e),e.forEach(i=>this._markSelected(i));let A=this._hasQueuedChanges();return this._emitChangeEvent(),A}deselect(...e){this._verifyValueAssignment(e),e.forEach(i=>this._unmarkSelected(i));let A=this._hasQueuedChanges();return this._emitChangeEvent(),A}setSelection(...e){this._verifyValueAssignment(e);let A=this.selected,i=new Set(e);e.forEach(o=>this._markSelected(o)),A.filter(o=>!i.has(this._getConcreteValue(o,i))).forEach(o=>this._unmarkSelected(o));let n=this._hasQueuedChanges();return this._emitChangeEvent(),n}toggle(e){return this.isSelected(e)?this.deselect(e):this.select(e)}clear(e=!0){this._unmarkAll();let A=this._hasQueuedChanges();return e&&this._emitChangeEvent(),A}isSelected(e){return this._selection.has(this._getConcreteValue(e))}isEmpty(){return this._selection.size===0}hasValue(){return!this.isEmpty()}sort(e){this._multiple&&this.selected&&this._selected.sort(e)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(e){e=this._getConcreteValue(e),this.isSelected(e)||(this._multiple||this._unmarkAll(),this.isSelected(e)||this._selection.add(e),this._emitChanges&&this._selectedToEmit.push(e))}_unmarkSelected(e){e=this._getConcreteValue(e),this.isSelected(e)&&(this._selection.delete(e),this._emitChanges&&this._deselectedToEmit.push(e))}_unmarkAll(){this.isEmpty()||this._selection.forEach(e=>this._unmarkSelected(e))}_verifyValueAssignment(e){e.length>1&&this._multiple}_hasQueuedChanges(){return!!(this._deselectedToEmit.length||this._selectedToEmit.length)}_getConcreteValue(e,A){if(this.compareWith){A=A??this._selection;for(let i of A)if(this.compareWith(e,i))return i;return e}else return e}};var b8=(()=>{class t{_listeners=[];notify(A,i){for(let n of this._listeners)n(A,i)}listen(A){return this._listeners.push(A),()=>{this._listeners=this._listeners.filter(i=>A!==i)}}ngOnDestroy(){this._listeners=[]}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var L3A=20,q2=(()=>{class t{_ngZone=f(ye);_platform=f(ni);_renderer=f(Ms).createRenderer(null,null);_cleanupGlobalListener;constructor(){}_scrolled=new qA;_scrolledCount=0;scrollContainers=new Map;register(A){this.scrollContainers.has(A)||this.scrollContainers.set(A,A.elementScrolled().subscribe(()=>this._scrolled.next(A)))}deregister(A){let i=this.scrollContainers.get(A);i&&(i.unsubscribe(),this.scrollContainers.delete(A))}scrolled(A=L3A){return this._platform.isBrowser?new gt(i=>{this._cleanupGlobalListener||(this._cleanupGlobalListener=this._ngZone.runOutsideAngular(()=>this._renderer.listen("document","scroll",()=>this._scrolled.next())));let n=A>0?this._scrolled.pipe(Dd(A)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{n.unsubscribe(),this._scrolledCount--,this._scrolledCount||(this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0)}}):Ce()}ngOnDestroy(){this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0,this.scrollContainers.forEach((A,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(A,i){let n=this.getAncestorScrollContainers(A);return this.scrolled(i).pipe(Nt(o=>!o||n.indexOf(o)>-1))}getAncestorScrollContainers(A){let i=[];return this.scrollContainers.forEach((n,o)=>{this._scrollableContainsElement(o,A)&&i.push(o)}),i}_scrollableContainsElement(A,i){let n=fa(i),o=A.getElementRef().nativeElement;do if(n==o)return!0;while(n=n.parentElement);return!1}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),k0=(()=>{class t{elementRef=f(se);scrollDispatcher=f(q2);ngZone=f(ye);dir=f(po,{optional:!0});_scrollElement=this.elementRef.nativeElement;_destroyed=new qA;_renderer=f(qi);_cleanupScroll;_elementScrolled=new qA;constructor(){}ngOnInit(){this._cleanupScroll=this.ngZone.runOutsideAngular(()=>this._renderer.listen(this._scrollElement,"scroll",A=>this._elementScrolled.next(A))),this.scrollDispatcher.register(this)}ngOnDestroy(){this._cleanupScroll?.(),this._elementScrolled.complete(),this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(A){let i=this.elementRef.nativeElement,n=this.dir&&this.dir.value=="rtl";A.left==null&&(A.left=n?A.end:A.start),A.right==null&&(A.right=n?A.start:A.end),A.bottom!=null&&(A.top=i.scrollHeight-i.clientHeight-A.bottom),n&&lB()!=hg.NORMAL?(A.left!=null&&(A.right=i.scrollWidth-i.clientWidth-A.left),lB()==hg.INVERTED?A.left=A.right:lB()==hg.NEGATED&&(A.left=A.right?-A.right:A.right)):A.right!=null&&(A.left=i.scrollWidth-i.clientWidth-A.right),this._applyScrollToOptions(A)}_applyScrollToOptions(A){let i=this.elementRef.nativeElement;$p()?i.scrollTo(A):(A.top!=null&&(i.scrollTop=A.top),A.left!=null&&(i.scrollLeft=A.left))}measureScrollOffset(A){let i="left",n="right",o=this.elementRef.nativeElement;if(A=="top")return o.scrollTop;if(A=="bottom")return o.scrollHeight-o.clientHeight-o.scrollTop;let r=this.dir&&this.dir.value=="rtl";return A=="start"?A=r?n:i:A=="end"&&(A=r?i:n),r&&lB()==hg.INVERTED?A==i?o.scrollWidth-o.clientWidth-o.scrollLeft:o.scrollLeft:r&&lB()==hg.NEGATED?A==i?o.scrollLeft+o.scrollWidth-o.clientWidth:-o.scrollLeft:A==i?o.scrollLeft:o.scrollWidth-o.clientWidth-o.scrollLeft}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return t})(),x3A=20,Nc=(()=>{class t{_platform=f(ni);_listeners;_viewportSize;_change=new qA;_document=f(at,{optional:!0});constructor(){let A=f(ye),i=f(Ms).createRenderer(null,null);A.runOutsideAngular(()=>{if(this._platform.isBrowser){let n=o=>this._change.next(o);this._listeners=[i.listen("window","resize",n),i.listen("window","orientationchange",n)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(A=>A()),this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();let A={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),A}getViewportRect(){let A=this.getViewportScrollPosition(),{width:i,height:n}=this.getViewportSize();return{top:A.top,left:A.left,bottom:A.top+n,right:A.left+i,height:n,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};let A=this._document,i=this._getWindow(),n=A.documentElement,o=n.getBoundingClientRect(),r=-o.top||A.body.scrollTop||i.scrollY||n.scrollTop||0,s=-o.left||A.body.scrollLeft||i.scrollX||n.scrollLeft||0;return{top:r,left:s}}change(A=x3A){return A>0?this._change.pipe(Dd(A)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){let A=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:A.innerWidth,height:A.innerHeight}:{width:0,height:0}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var j2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})(),k8=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[G2,j2,G2,j2]})}return t})();var Oh=class{_attachedHost;attach(e){return this._attachedHost=e,e.attach(this)}detach(){let e=this._attachedHost;e!=null&&(this._attachedHost=null,e.detach())}get isAttached(){return this._attachedHost!=null}setAttachedHost(e){this._attachedHost=e}},yg=class extends Oh{component;viewContainerRef;injector;componentFactoryResolver;projectableNodes;constructor(e,A,i,n,o){super(),this.component=e,this.viewContainerRef=A,this.injector=i,this.projectableNodes=o}},Rs=class extends Oh{templateRef;viewContainerRef;context;injector;constructor(e,A,i,n){super(),this.templateRef=e,this.viewContainerRef=A,this.context=i,this.injector=n}get origin(){return this.templateRef.elementRef}attach(e,A=this.context){return this.context=A,super.attach(e)}detach(){return this.context=void 0,super.detach()}},XS=class extends Oh{element;constructor(e){super(),this.element=e instanceof se?e.nativeElement:e}},V2=class{_attachedPortal;_disposeFn;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(e){if(e instanceof yg)return this._attachedPortal=e,this.attachComponentPortal(e);if(e instanceof Rs)return this._attachedPortal=e,this.attachTemplatePortal(e);if(this.attachDomPortal&&e instanceof XS)return this._attachedPortal=e,this.attachDomPortal(e)}attachDomPortal=null;detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(e){this._disposeFn=e}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}};var zh=class extends V2{outletElement;_appRef;_defaultInjector;_document;constructor(e,A,i,n,o){super(),this.outletElement=e,this._appRef=i,this._defaultInjector=n,this._document=o}attachComponentPortal(e){let A;if(e.viewContainerRef){let i=e.injector||e.viewContainerRef.injector,n=i.get(Il,null,{optional:!0})||void 0;A=e.viewContainerRef.createComponent(e.component,{index:e.viewContainerRef.length,injector:i,ngModuleRef:n,projectableNodes:e.projectableNodes||void 0}),this.setDisposeFn(()=>A.destroy())}else A=vp(e.component,{elementInjector:e.injector||this._defaultInjector||Zt.NULL,environmentInjector:this._appRef.injector,projectableNodes:e.projectableNodes||void 0}),this._appRef.attachView(A.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(A.hostView),A.destroy()});return this.outletElement.appendChild(this._getComponentRootNode(A)),this._attachedPortal=e,A}attachTemplatePortal(e){let A=e.viewContainerRef,i=A.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return i.rootNodes.forEach(n=>this.outletElement.appendChild(n)),i.detectChanges(),this.setDisposeFn(()=>{let n=A.indexOf(i);n!==-1&&A.remove(n)}),this._attachedPortal=e,i}attachDomPortal=e=>{let A=e.element;A.parentNode;let i=this._document.createComment("dom-portal");A.parentNode.insertBefore(i,A),this.outletElement.appendChild(A),this._attachedPortal=e,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(A,i)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(e){return e.hostView.rootNodes[0]}};var sq=(()=>{class t extends Rs{constructor(){let A=f(mn),i=f(Sn);super(A,i)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[lt]})}return t})();var wa=(()=>{class t extends V2{_moduleRef=f(Il,{optional:!0});_document=f(at);_viewContainerRef=f(Sn);_isInitialized=!1;_attachedRef;constructor(){super()}get portal(){return this._attachedPortal}set portal(A){this.hasAttached()&&!A&&!this._isInitialized||(this.hasAttached()&&super.detach(),A&&super.attach(A),this._attachedPortal=A||null)}attached=new YA;get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(A){A.setAttachedHost(this);let i=A.viewContainerRef!=null?A.viewContainerRef:this._viewContainerRef,n=i.createComponent(A.component,{index:i.length,injector:A.injector||i.injector,projectableNodes:A.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0});return i!==this._viewContainerRef&&this._getRootNode().appendChild(n.hostView.rootNodes[0]),super.setDisposeFn(()=>n.destroy()),this._attachedPortal=A,this._attachedRef=n,this.attached.emit(n),n}attachTemplatePortal(A){A.setAttachedHost(this);let i=this._viewContainerRef.createEmbeddedView(A.templateRef,A.context,{injector:A.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=A,this._attachedRef=i,this.attached.emit(i),i}attachDomPortal=A=>{let i=A.element;i.parentNode;let n=this._document.createComment("dom-portal");A.setAttachedHost(this),i.parentNode.insertBefore(n,i),this._getRootNode().appendChild(i),this._attachedPortal=A,super.setDisposeFn(()=>{n.parentNode&&n.parentNode.replaceChild(i,n)})};_getRootNode(){let A=this._viewContainerRef.element.nativeElement;return A.nodeType===A.ELEMENT_NODE?A:A.parentNode}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[lt]})}return t})();var UB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();var aq=$p(),$S=class{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(e,A){this._viewportRuler=e,this._document=A}attach(){}enable(){if(this._canBeEnabled()){let e=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=e.style.left||"",this._previousHTMLStyles.top=e.style.top||"",e.style.left=hr(-this._previousScrollPosition.left),e.style.top=hr(-this._previousScrollPosition.top),e.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){let e=this._document.documentElement,A=this._document.body,i=e.style,n=A.style,o=i.scrollBehavior||"",r=n.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,e.classList.remove("cdk-global-scrollblock"),aq&&(i.scrollBehavior=n.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),aq&&(i.scrollBehavior=o,n.scrollBehavior=r)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;let A=this._document.body,i=this._viewportRuler.getViewportSize();return A.scrollHeight>i.height||A.scrollWidth>i.width}};var AR=class{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(e,A,i,n){this._scrollDispatcher=e,this._ngZone=A,this._viewportRuler=i,this._config=n}attach(e){this._overlayRef,this._overlayRef=e}enable(){if(this._scrollSubscription)return;let e=this._scrollDispatcher.scrolled(0).pipe(Nt(A=>!A||!this._overlayRef.overlayElement.contains(A.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=e.subscribe(()=>{let A=this._viewportRuler.getViewportScrollPosition().top;Math.abs(A-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=e.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}},S8=class{enable(){}disable(){}attach(){}};function eR(t,e){return e.some(A=>{let i=t.bottomA.bottom,o=t.rightA.right;return i||n||o||r})}function cq(t,e){return e.some(A=>{let i=t.topA.bottom,o=t.leftA.right;return i||n||o||r})}var tR=class{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(e,A,i,n){this._scrollDispatcher=e,this._viewportRuler=A,this._ngZone=i,this._config=n}attach(e){this._overlayRef,this._overlayRef=e}enable(){if(!this._scrollSubscription){let e=this._config?this._config.scrollThrottle:0;this._scrollSubscription=this._scrollDispatcher.scrolled(e).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){let A=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:n}=this._viewportRuler.getViewportSize();eR(A,[{width:i,height:n,bottom:n,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}})}}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}},F3A=(()=>{class t{_scrollDispatcher=f(q2);_viewportRuler=f(Nc);_ngZone=f(ye);_document=f(at);constructor(){}noop=()=>new S8;close=A=>new AR(this._scrollDispatcher,this._ngZone,this._viewportRuler,A);block=()=>new $S(this._viewportRuler,this._document);reposition=A=>new tR(this._scrollDispatcher,this._viewportRuler,this._ngZone,A);static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Ml=class{positionStrategy;scrollStrategy=new S8;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;constructor(e){if(e){let A=Object.keys(e);for(let i of A)e[i]!==void 0&&(this[i]=e[i])}}};var iR=class{connectionPair;scrollableViewProperties;constructor(e,A){this.connectionPair=e,this.scrollableViewProperties=A}};var Bq=(()=>{class t{_attachedOverlays=[];_document=f(at);_isAttached;constructor(){}ngOnDestroy(){this.detach()}add(A){this.remove(A),this._attachedOverlays.push(A)}remove(A){let i=this._attachedOverlays.indexOf(A);i>-1&&this._attachedOverlays.splice(i,1),this._attachedOverlays.length===0&&this.detach()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),_3A=(()=>{class t extends Bq{_ngZone=f(ye);_renderer=f(Ms).createRenderer(null,null);_cleanupKeydown;add(A){super.add(A),this._isAttached||(this._ngZone.runOutsideAngular(()=>{this._cleanupKeydown=this._renderer.listen("body","keydown",this._keydownListener)}),this._isAttached=!0)}detach(){this._isAttached&&(this._cleanupKeydown?.(),this._isAttached=!1)}_keydownListener=A=>{let i=this._attachedOverlays;for(let n=i.length-1;n>-1;n--)if(i[n]._keydownEvents.observers.length>0){this._ngZone.run(()=>i[n]._keydownEvents.next(A));break}};static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),G3A=(()=>{class t extends Bq{_platform=f(ni);_ngZone=f(ye,{optional:!0});_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget;add(A){if(super.add(A),!this._isAttached){let i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){let A=this._document.body;A.removeEventListener("pointerdown",this._pointerDownListener,!0),A.removeEventListener("click",this._clickListener,!0),A.removeEventListener("auxclick",this._clickListener,!0),A.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(A.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(A){A.addEventListener("pointerdown",this._pointerDownListener,!0),A.addEventListener("click",this._clickListener,!0),A.addEventListener("auxclick",this._clickListener,!0),A.addEventListener("contextmenu",this._clickListener,!0)}_pointerDownListener=A=>{this._pointerDownEventTarget=ic(A)};_clickListener=A=>{let i=ic(A),n=A.type==="click"&&this._pointerDownEventTarget?this._pointerDownEventTarget:i;this._pointerDownEventTarget=null;let o=this._attachedOverlays.slice();for(let r=o.length-1;r>-1;r--){let s=o[r];if(s._outsidePointerEvents.observers.length<1||!s.hasAttached())continue;if(gq(s.overlayElement,i)||gq(s.overlayElement,n))break;let a=s._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>a.next(A)):a.next(A)}};static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function gq(t,e){let A=typeof ShadowRoot<"u"&&ShadowRoot,i=e;for(;i;){if(i===t)return!0;i=A&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}var Eq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:[".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}"],encapsulation:2,changeDetection:0})}return t})(),R8=(()=>{class t{_platform=f(ni);_containerElement;_document=f(at);_styleLoader=f(Pn);constructor(){}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let A="cdk-overlay-container";if(this._platform.isBrowser||dk()){let n=this._document.querySelectorAll(`.${A}[platform="server"], .${A}[platform="test"]`);for(let o=0;o{let e=this.element;clearTimeout(this._fallbackTimeout),this._cleanupTransitionEnd?.(),this._cleanupTransitionEnd=this._renderer.listen(e,"transitionend",this.dispose),this._fallbackTimeout=setTimeout(this.dispose,500),e.style.pointerEvents="none",e.classList.remove("cdk-overlay-backdrop-showing")})}dispose=()=>{clearTimeout(this._fallbackTimeout),this._cleanupClick?.(),this._cleanupTransitionEnd?.(),this._cleanupClick=this._cleanupTransitionEnd=this._fallbackTimeout=void 0,this.element.remove()}},JB=class{_portalOutlet;_host;_pane;_config;_ngZone;_keyboardDispatcher;_document;_location;_outsideClickDispatcher;_animationsDisabled;_injector;_renderer;_backdropClick=new qA;_attachments=new qA;_detachments=new qA;_positionStrategy;_scrollStrategy;_locationChanges=Kt.EMPTY;_backdropRef=null;_previousHostParent;_keydownEvents=new qA;_outsidePointerEvents=new qA;_renders=new qA;_afterRenderRef;_afterNextRenderRef;constructor(e,A,i,n,o,r,s,a,c,g=!1,I,C){this._portalOutlet=e,this._host=A,this._pane=i,this._config=n,this._ngZone=o,this._keyboardDispatcher=r,this._document=s,this._location=a,this._outsideClickDispatcher=c,this._animationsDisabled=g,this._injector=I,this._renderer=C,n.scrollStrategy&&(this._scrollStrategy=n.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=n.positionStrategy,this._afterRenderRef=ua(()=>ku(()=>{this._renders.next()},{injector:this._injector}))}get overlayElement(){return this._pane}get backdropElement(){return this._backdropRef?.element||null}get hostElement(){return this._host}attach(e){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);let A=this._portalOutlet.attach(e);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=Ir(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),typeof A?.onDestroy=="function"&&A.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),A}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();let e=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),e}dispose(){let e=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._backdropRef?.dispose(),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=this._backdropRef=null,e&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(e){e!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=e,this.hasAttached()&&(e.attach(this),this.updatePosition()))}updateSize(e){this._config=sA(sA({},this._config),e),this._updateElementSize()}setDirection(e){this._config=Fe(sA({},this._config),{direction:e}),this._updateElementDirection()}addPanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!0)}removePanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!1)}getDirection(){let e=this._config.direction;return e?typeof e=="string"?e:e.value:"ltr"}updateScrollStrategy(e){e!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=e,this.hasAttached()&&(e.attach(this),e.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;let e=this._pane.style;e.width=hr(this._config.width),e.height=hr(this._config.height),e.minWidth=hr(this._config.minWidth),e.minHeight=hr(this._config.minHeight),e.maxWidth=hr(this._config.maxWidth),e.maxHeight=hr(this._config.maxHeight)}_togglePointerEvents(e){this._pane.style.pointerEvents=e?"":"none"}_attachBackdrop(){let e="cdk-overlay-backdrop-showing";this._backdropRef?.dispose(),this._backdropRef=new nR(this._document,this._renderer,this._ngZone,A=>{this._backdropClick.next(A)}),this._animationsDisabled&&this._backdropRef.element.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropRef.element,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropRef.element,this._host),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this._backdropRef?.element.classList.add(e))}):this._backdropRef.element.classList.add(e)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){this._animationsDisabled?(this._backdropRef?.dispose(),this._backdropRef=null):this._backdropRef?.detach()}_toggleClasses(e,A,i){let n=CB(A||[]).filter(o=>!!o);n.length&&(i?e.classList.add(...n):e.classList.remove(...n))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{let e=this._renders.pipe(kt(Hn(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||this._pane.children.length===0)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),e.unsubscribe())})})}_disposeScrollStrategy(){let e=this._scrollStrategy;e?.disable(),e?.detach?.()}},lq="cdk-overlay-connected-position-bounding-box",K3A=/([A-Za-z%]+)$/,oR=class{_viewportRuler;_document;_platform;_overlayContainer;_overlayRef;_isInitialRender;_lastBoundingBoxSize={width:0,height:0};_isPushed=!1;_canPush=!0;_growAfterOpen=!1;_hasFlexibleDimensions=!0;_positionLocked=!1;_originRect;_overlayRect;_viewportRect;_containerRect;_viewportMargin=0;_scrollables=[];_preferredPositions=[];_origin;_pane;_isDisposed;_boundingBox;_lastPosition;_lastScrollVisibility;_positionChanges=new qA;_resizeSubscription=Kt.EMPTY;_offsetX=0;_offsetY=0;_transformOriginSelector;_appliedPanelClasses=[];_previousPushAmount;positionChanges=this._positionChanges;get positions(){return this._preferredPositions}constructor(e,A,i,n,o){this._viewportRuler=A,this._document=i,this._platform=n,this._overlayContainer=o,this.setOrigin(e)}attach(e){this._overlayRef&&this._overlayRef,this._validatePositions(),e.hostElement.classList.add(lq),this._overlayRef=e,this._boundingBox=e.hostElement,this._pane=e.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition){this.reapplyLastPosition();return}this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let e=this._originRect,A=this._overlayRect,i=this._viewportRect,n=this._containerRect,o=[],r;for(let s of this._preferredPositions){let a=this._getOriginPoint(e,n,s),c=this._getOverlayPoint(a,A,s),g=this._getOverlayFit(c,A,i,s);if(g.isCompletelyWithinViewport){this._isPushed=!1,this._applyPosition(s,a);return}if(this._canFitWithFlexibleDimensions(g,c,i)){o.push({position:s,origin:a,overlayRect:A,boundingBoxRect:this._calculateBoundingBoxRect(a,s)});continue}(!r||r.overlayFit.visibleAreaa&&(a=g,s=c)}this._isPushed=!1,this._applyPosition(s.position,s.origin);return}if(this._canPush){this._isPushed=!0,this._applyPosition(r.position,r.originPoint);return}this._applyPosition(r.position,r.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&cC(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(lq),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;let e=this._lastPosition;if(e){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let A=this._getOriginPoint(this._originRect,this._containerRect,e);this._applyPosition(e,A)}else this.apply()}withScrollableContainers(e){return this._scrollables=e,this}withPositions(e){return this._preferredPositions=e,e.indexOf(this._lastPosition)===-1&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(e){return this._viewportMargin=e,this}withFlexibleDimensions(e=!0){return this._hasFlexibleDimensions=e,this}withGrowAfterOpen(e=!0){return this._growAfterOpen=e,this}withPush(e=!0){return this._canPush=e,this}withLockedPosition(e=!0){return this._positionLocked=e,this}setOrigin(e){return this._origin=e,this}withDefaultOffsetX(e){return this._offsetX=e,this}withDefaultOffsetY(e){return this._offsetY=e,this}withTransformOriginOn(e){return this._transformOriginSelector=e,this}_getOriginPoint(e,A,i){let n;if(i.originX=="center")n=e.left+e.width/2;else{let r=this._isRtl()?e.right:e.left,s=this._isRtl()?e.left:e.right;n=i.originX=="start"?r:s}A.left<0&&(n-=A.left);let o;return i.originY=="center"?o=e.top+e.height/2:o=i.originY=="top"?e.top:e.bottom,A.top<0&&(o-=A.top),{x:n,y:o}}_getOverlayPoint(e,A,i){let n;i.overlayX=="center"?n=-A.width/2:i.overlayX==="start"?n=this._isRtl()?-A.width:0:n=this._isRtl()?0:-A.width;let o;return i.overlayY=="center"?o=-A.height/2:o=i.overlayY=="top"?0:-A.height,{x:e.x+n,y:e.y+o}}_getOverlayFit(e,A,i,n){let o=Cq(A),{x:r,y:s}=e,a=this._getOffset(n,"x"),c=this._getOffset(n,"y");a&&(r+=a),c&&(s+=c);let g=0-r,I=r+o.width-i.width,C=0-s,d=s+o.height-i.height,B=this._subtractOverflows(o.width,g,I),E=this._subtractOverflows(o.height,C,d),u=B*E;return{visibleArea:u,isCompletelyWithinViewport:o.width*o.height===u,fitsInViewportVertically:E===o.height,fitsInViewportHorizontally:B==o.width}}_canFitWithFlexibleDimensions(e,A,i){if(this._hasFlexibleDimensions){let n=i.bottom-A.y,o=i.right-A.x,r=Iq(this._overlayRef.getConfig().minHeight),s=Iq(this._overlayRef.getConfig().minWidth),a=e.fitsInViewportVertically||r!=null&&r<=n,c=e.fitsInViewportHorizontally||s!=null&&s<=o;return a&&c}return!1}_pushOverlayOnScreen(e,A,i){if(this._previousPushAmount&&this._positionLocked)return{x:e.x+this._previousPushAmount.x,y:e.y+this._previousPushAmount.y};let n=Cq(A),o=this._viewportRect,r=Math.max(e.x+n.width-o.width,0),s=Math.max(e.y+n.height-o.height,0),a=Math.max(o.top-i.top-e.y,0),c=Math.max(o.left-i.left-e.x,0),g=0,I=0;return n.width<=o.width?g=c||-r:g=e.xB&&!this._isInitialRender&&!this._growAfterOpen&&(r=e.y-B/2)}let a=A.overlayX==="start"&&!n||A.overlayX==="end"&&n,c=A.overlayX==="end"&&!n||A.overlayX==="start"&&n,g,I,C;if(c)C=i.width-e.x+this._viewportMargin*2,g=e.x-this._viewportMargin;else if(a)I=e.x,g=i.right-e.x;else{let d=Math.min(i.right-e.x+i.left,e.x),B=this._lastBoundingBoxSize.width;g=d*2,I=e.x-d,g>B&&!this._isInitialRender&&!this._growAfterOpen&&(I=e.x-B/2)}return{top:r,left:I,bottom:s,right:C,width:g,height:o}}_setBoundingBoxStyles(e,A){let i=this._calculateBoundingBoxRect(e,A);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));let n={};if(this._hasExactPosition())n.top=n.left="0",n.bottom=n.right=n.maxHeight=n.maxWidth="",n.width=n.height="100%";else{let o=this._overlayRef.getConfig().maxHeight,r=this._overlayRef.getConfig().maxWidth;n.height=hr(i.height),n.top=hr(i.top),n.bottom=hr(i.bottom),n.width=hr(i.width),n.left=hr(i.left),n.right=hr(i.right),A.overlayX==="center"?n.alignItems="center":n.alignItems=A.overlayX==="end"?"flex-end":"flex-start",A.overlayY==="center"?n.justifyContent="center":n.justifyContent=A.overlayY==="bottom"?"flex-end":"flex-start",o&&(n.maxHeight=hr(o)),r&&(n.maxWidth=hr(r))}this._lastBoundingBoxSize=i,cC(this._boundingBox.style,n)}_resetBoundingBoxStyles(){cC(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){cC(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(e,A){let i={},n=this._hasExactPosition(),o=this._hasFlexibleDimensions,r=this._overlayRef.getConfig();if(n){let g=this._viewportRuler.getViewportScrollPosition();cC(i,this._getExactOverlayY(A,e,g)),cC(i,this._getExactOverlayX(A,e,g))}else i.position="static";let s="",a=this._getOffset(A,"x"),c=this._getOffset(A,"y");a&&(s+=`translateX(${a}px) `),c&&(s+=`translateY(${c}px)`),i.transform=s.trim(),r.maxHeight&&(n?i.maxHeight=hr(r.maxHeight):o&&(i.maxHeight="")),r.maxWidth&&(n?i.maxWidth=hr(r.maxWidth):o&&(i.maxWidth="")),cC(this._pane.style,i)}_getExactOverlayY(e,A,i){let n={top:"",bottom:""},o=this._getOverlayPoint(A,this._overlayRect,e);if(this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i)),e.overlayY==="bottom"){let r=this._document.documentElement.clientHeight;n.bottom=`${r-(o.y+this._overlayRect.height)}px`}else n.top=hr(o.y);return n}_getExactOverlayX(e,A,i){let n={left:"",right:""},o=this._getOverlayPoint(A,this._overlayRect,e);this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i));let r;if(this._isRtl()?r=e.overlayX==="end"?"left":"right":r=e.overlayX==="end"?"right":"left",r==="right"){let s=this._document.documentElement.clientWidth;n.right=`${s-(o.x+this._overlayRect.width)}px`}else n.left=hr(o.x);return n}_getScrollVisibility(){let e=this._getOriginRect(),A=this._pane.getBoundingClientRect(),i=this._scrollables.map(n=>n.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:cq(e,i),isOriginOutsideView:eR(e,i),isOverlayClipped:cq(A,i),isOverlayOutsideView:eR(A,i)}}_subtractOverflows(e,...A){return A.reduce((i,n)=>i-Math.max(n,0),e)}_getNarrowedViewportRect(){let e=this._document.documentElement.clientWidth,A=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+e-this._viewportMargin,bottom:i.top+A-this._viewportMargin,width:e-2*this._viewportMargin,height:A-2*this._viewportMargin}}_isRtl(){return this._overlayRef.getDirection()==="rtl"}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(e,A){return A==="x"?e.offsetX==null?this._offsetX:e.offsetX:e.offsetY==null?this._offsetY:e.offsetY}_validatePositions(){}_addPanelClasses(e){this._pane&&CB(e).forEach(A=>{A!==""&&this._appliedPanelClasses.indexOf(A)===-1&&(this._appliedPanelClasses.push(A),this._pane.classList.add(A))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(e=>{this._pane.classList.remove(e)}),this._appliedPanelClasses=[])}_getOriginRect(){let e=this._origin;if(e instanceof se)return e.nativeElement.getBoundingClientRect();if(e instanceof Element)return e.getBoundingClientRect();let A=e.width||0,i=e.height||0;return{top:e.y,bottom:e.y+i,left:e.x,right:e.x+A,height:i,width:A}}};function cC(t,e){for(let A in e)e.hasOwnProperty(A)&&(t[A]=e[A]);return t}function Iq(t){if(typeof t!="number"&&t!=null){let[e,A]=t.split(K3A);return!A||A==="px"?parseFloat(e):null}return t||null}function Cq(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}function U3A(t,e){return t===e?!0:t.isOriginClipped===e.isOriginClipped&&t.isOriginOutsideView===e.isOriginOutsideView&&t.isOverlayClipped===e.isOverlayClipped&&t.isOverlayOutsideView===e.isOverlayOutsideView}var dq="cdk-global-overlay-wrapper",rR=class{_overlayRef;_cssPosition="static";_topOffset="";_bottomOffset="";_alignItems="";_xPosition="";_xOffset="";_width="";_height="";_isDisposed=!1;attach(e){let A=e.getConfig();this._overlayRef=e,this._width&&!A.width&&e.updateSize({width:this._width}),this._height&&!A.height&&e.updateSize({height:this._height}),e.hostElement.classList.add(dq),this._isDisposed=!1}top(e=""){return this._bottomOffset="",this._topOffset=e,this._alignItems="flex-start",this}left(e=""){return this._xOffset=e,this._xPosition="left",this}bottom(e=""){return this._topOffset="",this._bottomOffset=e,this._alignItems="flex-end",this}right(e=""){return this._xOffset=e,this._xPosition="right",this}start(e=""){return this._xOffset=e,this._xPosition="start",this}end(e=""){return this._xOffset=e,this._xPosition="end",this}width(e=""){return this._overlayRef?this._overlayRef.updateSize({width:e}):this._width=e,this}height(e=""){return this._overlayRef?this._overlayRef.updateSize({height:e}):this._height=e,this}centerHorizontally(e=""){return this.left(e),this._xPosition="center",this}centerVertically(e=""){return this.top(e),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;let e=this._overlayRef.overlayElement.style,A=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:n,height:o,maxWidth:r,maxHeight:s}=i,a=(n==="100%"||n==="100vw")&&(!r||r==="100%"||r==="100vw"),c=(o==="100%"||o==="100vh")&&(!s||s==="100%"||s==="100vh"),g=this._xPosition,I=this._xOffset,C=this._overlayRef.getConfig().direction==="rtl",d="",B="",E="";a?E="flex-start":g==="center"?(E="center",C?B=I:d=I):C?g==="left"||g==="end"?(E="flex-end",d=I):(g==="right"||g==="start")&&(E="flex-start",B=I):g==="left"||g==="start"?(E="flex-start",d=I):(g==="right"||g==="end")&&(E="flex-end",B=I),e.position=this._cssPosition,e.marginLeft=a?"0":d,e.marginTop=c?"0":this._topOffset,e.marginBottom=this._bottomOffset,e.marginRight=a?"0":B,A.justifyContent=E,A.alignItems=c?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;let e=this._overlayRef.overlayElement.style,A=this._overlayRef.hostElement,i=A.style;A.classList.remove(dq),i.justifyContent=i.alignItems=e.marginTop=e.marginBottom=e.marginLeft=e.marginRight=e.position="",this._overlayRef=null,this._isDisposed=!0}},J3A=(()=>{class t{_viewportRuler=f(Nc);_document=f(at);_platform=f(ni);_overlayContainer=f(R8);constructor(){}global(){return new rR}flexibleConnectedTo(A){return new oR(A,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Br=(()=>{class t{scrollStrategies=f(F3A);_overlayContainer=f(R8);_positionBuilder=f(J3A);_keyboardDispatcher=f(_3A);_injector=f(Zt);_ngZone=f(ye);_document=f(at);_directionality=f(po);_location=f(ha);_outsideClickDispatcher=f(G3A);_animationsModuleType=f(_i,{optional:!0});_idGenerator=f(an);_renderer=f(Ms).createRenderer(null,null);_appRef;_styleLoader=f(Pn);constructor(){}create(A){this._styleLoader.load(Eq);let i=this._createHostElement(),n=this._createPaneElement(i),o=this._createPortalOutlet(n),r=new Ml(A);return r.direction=r.direction||this._directionality.value,new JB(o,i,n,r,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,this._animationsModuleType==="NoopAnimations",this._injector.get(vr),this._renderer)}position(){return this._positionBuilder}_createPaneElement(A){let i=this._document.createElement("div");return i.id=this._idGenerator.getId("cdk-overlay-"),i.classList.add("cdk-overlay-pane"),A.appendChild(i),i}_createHostElement(){let A=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(A),A}_createPortalOutlet(A){return this._appRef||(this._appRef=this._injector.get(Ca)),new zh(A,null,this._appRef,this._injector,this._document)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Y3A=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],Qq=new eA("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.reposition()}}),Ph=(()=>{class t{elementRef=f(se);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]})}return t})(),sR=(()=>{class t{_overlay=f(Br);_dir=f(po,{optional:!0});_overlayRef;_templatePortal;_backdropSubscription=Kt.EMPTY;_attachSubscription=Kt.EMPTY;_detachSubscription=Kt.EMPTY;_positionSubscription=Kt.EMPTY;_offsetX;_offsetY;_position;_scrollStrategyFactory=f(Qq);_disposeOnNavigation=!1;_ngZone=f(ye);origin;positions;positionStrategy;get offsetX(){return this._offsetX}set offsetX(A){this._offsetX=A,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(A){this._offsetY=A,this._position&&this._updatePositionStrategy(this._position)}width;height;minWidth;minHeight;backdropClass;panelClass;viewportMargin=0;scrollStrategy;open=!1;disableClose=!1;transformOriginSelector;hasBackdrop=!1;lockPosition=!1;flexibleDimensions=!1;growAfterOpen=!1;push=!1;get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(A){this._disposeOnNavigation=A}backdropClick=new YA;positionChange=new YA;attach=new YA;detach=new YA;overlayKeydown=new YA;overlayOutsideClick=new YA;constructor(){let A=f(mn),i=f(Sn);this._templatePortal=new Rs(A,i),this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(A){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),A.origin&&this.open&&this._position.apply()),A.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=Y3A);let A=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=A.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=A.detachments().subscribe(()=>this.detach.emit()),A.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),i.keyCode===27&&!this.disableClose&&!sr(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{let n=this._getOriginElement(),o=ic(i);(!n||n!==o&&!n.contains(o))&&this.overlayOutsideClick.next(i)})}_buildConfig(){let A=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Ml({direction:this._dir||"ltr",positionStrategy:A,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||this.width===0)&&(i.width=this.width),(this.height||this.height===0)&&(i.height=this.height),(this.minWidth||this.minWidth===0)&&(i.minWidth=this.minWidth),(this.minHeight||this.minHeight===0)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(A){let i=this.positions.map(n=>({originX:n.originX,originY:n.originY,overlayX:n.overlayX,overlayY:n.overlayY,offsetX:n.offsetX||this.offsetX,offsetY:n.offsetY||this.offsetY,panelClass:n.panelClass||void 0}));return A.setOrigin(this._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){let A=this._overlay.position().flexibleConnectedTo(this._getOrigin());return this._updatePositionStrategy(A),A}_getOrigin(){return this.origin instanceof Ph?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof Ph?this.origin.elementRef.nativeElement:this.origin instanceof se?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(A=>{this.backdropClick.emit(A)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(Zv(()=>this.positionChange.observers.length>0)).subscribe(A=>{this._ngZone.run(()=>this.positionChange.emit(A)),this.positionChange.observers.length===0&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",ge],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",ge],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",ge],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",ge],push:[2,"cdkConnectedOverlayPush","push",ge],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",ge]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[Xt]})}return t})();function T3A(t){return()=>t.scrollStrategies.reposition()}var H3A={provide:Qq,deps:[Br],useFactory:T3A},Z2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[Br,H3A],imports:[G2,UB,k8,k8]})}return t})();function O3A(t,e){}var W2=class{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;width="";height="";minWidth;minHeight;maxWidth;maxHeight;positionStrategy;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;scrollStrategy;closeOnNavigation=!0;closeOnDestroy=!0;closeOnOverlayDetachments=!0;componentFactoryResolver;providers;container;templateContext};var cR=(()=>{class t extends V2{_elementRef=f(se);_focusTrapFactory=f(g6);_config;_interactivityChecker=f(sh);_ngZone=f(ye);_overlayRef=f(JB);_focusMonitor=f(Jr);_renderer=f(qi);_platform=f(ni);_document=f(at,{optional:!0});_portalOutlet;_focusTrap=null;_elementFocusedBeforeDialogWasOpened=null;_closeInteractionType=null;_ariaLabelledByQueue=[];_changeDetectorRef=f(Et);_injector=f(Zt);_isDestroyed=!1;constructor(){super(),this._config=f(W2,{optional:!0})||new W2,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(A){this._ariaLabelledByQueue.push(A),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(A){let i=this._ariaLabelledByQueue.indexOf(A);i>-1&&(this._ariaLabelledByQueue.splice(i,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._isDestroyed=!0,this._restoreFocus()}attachComponentPortal(A){this._portalOutlet.hasAttached();let i=this._portalOutlet.attachComponentPortal(A);return this._contentAttached(),i}attachTemplatePortal(A){this._portalOutlet.hasAttached();let i=this._portalOutlet.attachTemplatePortal(A);return this._contentAttached(),i}attachDomPortal=A=>{this._portalOutlet.hasAttached();let i=this._portalOutlet.attachDomPortal(A);return this._contentAttached(),i};_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(A,i){this._interactivityChecker.isFocusable(A)||(A.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let n=()=>{o(),r(),A.removeAttribute("tabindex")},o=this._renderer.listen(A,"blur",n),r=this._renderer.listen(A,"mousedown",n)})),A.focus(i)}_focusByCssSelector(A,i){let n=this._elementRef.nativeElement.querySelector(A);n&&this._forceFocus(n,i)}_trapFocus(){this._isDestroyed||Ir(()=>{let A=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||A.focus();break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElement()||this._focusDialogContainer();break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus);break}},{injector:this._injector})}_restoreFocus(){let A=this._config.restoreFocus,i=null;if(typeof A=="string"?i=this._document.querySelector(A):typeof A=="boolean"?i=A?this._elementFocusedBeforeDialogWasOpened:null:A&&(i=A),this._config.restoreFocus&&i&&typeof i.focus=="function"){let n=IB(),o=this._elementRef.nativeElement;(!n||n===this._document.body||n===o||o.contains(n))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){let A=this._elementRef.nativeElement,i=IB();return A===i||A.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=IB()))}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["cdk-dialog-container"]],viewQuery:function(i,n){if(i&1&&st(wa,7),i&2){let o;de(o=Be())&&(n._portalOutlet=o.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,n){i&2&&Ke("id",n._config.id||null)("role",n._config.role)("aria-modal",n._config.ariaModal)("aria-labelledby",n._config.ariaLabel?null:n._ariaLabelledByQueue[0])("aria-label",n._config.ariaLabel)("aria-describedby",n._config.ariaDescribedBy||null)},features:[lt],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,n){i&1&&FA(0,O3A,0,0,"ng-template",0)},dependencies:[wa],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}return t})(),jh=class{overlayRef;config;componentInstance;componentRef;containerInstance;disableClose;closed=new qA;backdropClick;keydownEvents;outsidePointerEvents;id;_detachSubscription;constructor(e,A){this.overlayRef=e,this.config=A,this.disableClose=A.disableClose,this.backdropClick=e.backdropClick(),this.keydownEvents=e.keydownEvents(),this.outsidePointerEvents=e.outsidePointerEvents(),this.id=A.id,this.keydownEvents.subscribe(i=>{i.keyCode===27&&!this.disableClose&&!sr(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=e.detachments().subscribe(()=>{A.closeOnOverlayDetachments!==!1&&this.close()})}close(e,A){if(this.containerInstance){let i=this.closed;this.containerInstance._closeInteractionType=A?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(e),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(e="",A=""){return this.overlayRef.updateSize({width:e,height:A}),this}addPanelClass(e){return this.overlayRef.addPanelClass(e),this}removePanelClass(e){return this.overlayRef.removePanelClass(e),this}},z3A=new eA("DialogScrollStrategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.block()}}),P3A=new eA("DialogData"),j3A=new eA("DefaultDialogConfig");var uq=(()=>{class t{_overlay=f(Br);_injector=f(Zt);_defaultOptions=f(j3A,{optional:!0});_parentDialog=f(t,{optional:!0,skipSelf:!0});_overlayContainer=f(R8);_idGenerator=f(an);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new qA;_afterOpenedAtThisLevel=new qA;_ariaHiddenElements=new Map;_scrollStrategy=f(z3A);get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}afterAllClosed=el(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(On(void 0)));constructor(){}open(A,i){let n=this._defaultOptions||new W2;i=sA(sA({},n),i),i.id=i.id||this._idGenerator.getId("cdk-dialog-"),i.id&&this.getDialogById(i.id);let o=this._getOverlayConfig(i),r=this._overlay.create(o),s=new jh(r,i),a=this._attachContainer(r,s,i);return s.containerInstance=a,this._attachDialogContent(A,s,a,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(s),s.closed.subscribe(()=>this._removeOpenDialog(s,!0)),this.afterOpened.next(s),s}closeAll(){aR(this.openDialogs,A=>A.close())}getDialogById(A){return this.openDialogs.find(i=>i.id===A)}ngOnDestroy(){aR(this._openDialogsAtThisLevel,A=>{A.config.closeOnDestroy===!1&&this._removeOpenDialog(A,!1)}),aR(this._openDialogsAtThisLevel,A=>A.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(A){let i=new Ml({positionStrategy:A.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:A.scrollStrategy||this._scrollStrategy(),panelClass:A.panelClass,hasBackdrop:A.hasBackdrop,direction:A.direction,minWidth:A.minWidth,minHeight:A.minHeight,maxWidth:A.maxWidth,maxHeight:A.maxHeight,width:A.width,height:A.height,disposeOnNavigation:A.closeOnNavigation});return A.backdropClass&&(i.backdropClass=A.backdropClass),i}_attachContainer(A,i,n){let o=n.injector||n.viewContainerRef?.injector,r=[{provide:W2,useValue:n},{provide:jh,useValue:i},{provide:JB,useValue:A}],s;n.container?typeof n.container=="function"?s=n.container:(s=n.container.type,r.push(...n.container.providers(n))):s=cR;let a=new yg(s,n.viewContainerRef,Zt.create({parent:o||this._injector,providers:r}));return A.attach(a).instance}_attachDialogContent(A,i,n,o){if(A instanceof mn){let r=this._createInjector(o,i,n,void 0),s={$implicit:o.data,dialogRef:i};o.templateContext&&(s=sA(sA({},s),typeof o.templateContext=="function"?o.templateContext():o.templateContext)),n.attachTemplatePortal(new Rs(A,null,s,r))}else{let r=this._createInjector(o,i,n,this._injector),s=n.attachComponentPortal(new yg(A,o.viewContainerRef,r));i.componentRef=s,i.componentInstance=s.instance}}_createInjector(A,i,n,o){let r=A.injector||A.viewContainerRef?.injector,s=[{provide:P3A,useValue:A.data},{provide:jh,useValue:i}];return A.providers&&(typeof A.providers=="function"?s.push(...A.providers(i,A,n)):s.push(...A.providers)),A.direction&&(!r||!r.get(po,null,{optional:!0}))&&s.push({provide:po,useValue:{value:A.direction,change:Ce()}}),Zt.create({parent:r||o,providers:s})}_removeOpenDialog(A,i){let n=this.openDialogs.indexOf(A);n>-1&&(this.openDialogs.splice(n,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((o,r)=>{o?r.setAttribute("aria-hidden",o):r.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){let A=this._overlayContainer.getContainerElement();if(A.parentElement){let i=A.parentElement.children;for(let n=i.length-1;n>-1;n--){let o=i[n];o!==A&&o.nodeName!=="SCRIPT"&&o.nodeName!=="STYLE"&&!o.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(o,o.getAttribute("aria-hidden")),o.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){let A=this._parentDialog;return A?A._getAfterAllClosed():this._afterAllClosedAtThisLevel}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function aR(t,e){let A=t.length;for(;A--;)e(t[A])}function q3A(t,e){}var x8=class{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;width="";height="";minWidth;minHeight;maxWidth;maxHeight;position;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;delayFocusTrap=!0;scrollStrategy;closeOnNavigation=!0;componentFactoryResolver;enterAnimationDuration;exitAnimationDuration},gR="mdc-dialog--open",hq="mdc-dialog--opening",fq="mdc-dialog--closing",V3A=150,Z3A=75,W3A=(()=>{class t extends cR{_animationMode=f(_i,{optional:!0});_animationStateChanged=new YA;_animationsEnabled=this._animationMode!=="NoopAnimations";_actionSectionCount=0;_hostElement=this._elementRef.nativeElement;_enterAnimationDuration=this._animationsEnabled?pq(this._config.enterAnimationDuration)??V3A:0;_exitAnimationDuration=this._animationsEnabled?pq(this._config.exitAnimationDuration)??Z3A:0;_animationTimer=null;_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(mq,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(hq,gR)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(gR),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(gR),this._animationsEnabled?(this._hostElement.style.setProperty(mq,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(fq)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(A){this._actionSectionCount+=A,this._changeDetectorRef.markForCheck()}_finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)};_finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})};_clearAnimationClasses(){this._hostElement.classList.remove(hq,fq)}_waitForAnimationToComplete(A,i){this._animationTimer!==null&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,A)}_requestAnimationFrame(A){this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(A):A()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(A){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:A})}ngOnDestroy(){super.ngOnDestroy(),this._animationTimer!==null&&clearTimeout(this._animationTimer)}attachComponentPortal(A){let i=super.attachComponentPortal(A);return i.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),i}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,n){i&2&&(Qa("id",n._config.id),Ke("aria-modal",n._config.ariaModal)("role",n._config.role)("aria-labelledby",n._config.ariaLabel?null:n._ariaLabelledByQueue[0])("aria-label",n._config.ariaLabel)("aria-describedby",n._config.ariaDescribedBy||null),he("_mat-animation-noopable",!n._animationsEnabled)("mat-mdc-dialog-container-with-actions",n._actionSectionCount>0))},features:[lt],decls:3,vars:0,consts:[[1,"mat-mdc-dialog-inner-container","mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,n){i&1&&(S(0,"div",0)(1,"div",1),FA(2,q3A,0,0,"ng-template",2),N()())},dependencies:[wa],styles:['.mat-mdc-dialog-container{width:100%;height:100%;display:block;box-sizing:border-box;max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;outline:0}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 560px);min-width:var(--mat-dialog-container-min-width, 280px)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, calc(100vw - 32px))}}.mat-mdc-dialog-inner-container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;transition:opacity linear var(--mat-dialog-transition-duration, 0ms);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mdc-dialog--closing .mat-mdc-dialog-inner-container{transition:opacity 75ms linear;transform:none}.mdc-dialog--open .mat-mdc-dialog-inner-container{opacity:1}._mat-animation-noopable .mat-mdc-dialog-inner-container{transition:none}.mat-mdc-dialog-surface{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;width:100%;height:100%;position:relative;overflow-y:auto;outline:0;transform:scale(0.8);transition:transform var(--mat-dialog-transition-duration, 0ms) cubic-bezier(0, 0, 0.2, 1);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;box-shadow:var(--mat-dialog-container-elevation-shadow, none);border-radius:var(--mdc-dialog-container-shape, var(--mat-sys-corner-extra-large, 4px));background-color:var(--mdc-dialog-container-color, var(--mat-sys-surface, white))}[dir=rtl] .mat-mdc-dialog-surface{text-align:right}.mdc-dialog--open .mat-mdc-dialog-surface,.mdc-dialog--closing .mat-mdc-dialog-surface{transform:none}._mat-animation-noopable .mat-mdc-dialog-surface{transition:none}.mat-mdc-dialog-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-dialog-title{display:block;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:var(--mat-dialog-headline-padding, 6px 24px 13px)}.mat-mdc-dialog-title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mat-mdc-dialog-title{text-align:right}.mat-mdc-dialog-container .mat-mdc-dialog-title{color:var(--mdc-dialog-subhead-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mdc-dialog-subhead-font, var(--mat-sys-headline-small-font, inherit));line-height:var(--mdc-dialog-subhead-line-height, var(--mat-sys-headline-small-line-height, 1.5rem));font-size:var(--mdc-dialog-subhead-size, var(--mat-sys-headline-small-size, 1rem));font-weight:var(--mdc-dialog-subhead-weight, var(--mat-sys-headline-small-weight, 400));letter-spacing:var(--mdc-dialog-subhead-tracking, var(--mat-sys-headline-small-tracking, 0.03125em))}.mat-mdc-dialog-content{display:block;flex-grow:1;box-sizing:border-box;margin:0;overflow:auto;max-height:65vh}.mat-mdc-dialog-content>:first-child{margin-top:0}.mat-mdc-dialog-content>:last-child{margin-bottom:0}.mat-mdc-dialog-container .mat-mdc-dialog-content{color:var(--mdc-dialog-supporting-text-color, var(--mat-sys-on-surface-variant, rgba(0, 0, 0, 0.6)));font-family:var(--mdc-dialog-supporting-text-font, var(--mat-sys-body-medium-font, inherit));line-height:var(--mdc-dialog-supporting-text-line-height, var(--mat-sys-body-medium-line-height, 1.5rem));font-size:var(--mdc-dialog-supporting-text-size, var(--mat-sys-body-medium-size, 1rem));font-weight:var(--mdc-dialog-supporting-text-weight, var(--mat-sys-body-medium-weight, 400));letter-spacing:var(--mdc-dialog-supporting-text-tracking, var(--mat-sys-body-medium-tracking, 0.03125em))}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px 0)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0);padding:var(--mat-dialog-actions-padding, 16px 24px);justify-content:var(--mat-dialog-actions-alignment, flex-end)}@media(forced-colors: active){.mat-mdc-dialog-actions{border-top-color:CanvasText}}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}.mat-mdc-dialog-component-host{display:contents}'],encapsulation:2})}return t})(),mq="--mat-dialog-transition-duration";function pq(t){return t==null?null:typeof t=="number"?t:t.endsWith("ms")?Zs(t.substring(0,t.length-2)):t.endsWith("s")?Zs(t.substring(0,t.length-1))*1e3:t==="0"?0:null}var L8=function(t){return t[t.OPEN=0]="OPEN",t[t.CLOSING=1]="CLOSING",t[t.CLOSED=2]="CLOSED",t}(L8||{}),fr=class{_ref;_containerInstance;componentInstance;componentRef;disableClose;id;_afterOpened=new qA;_beforeClosed=new qA;_result;_closeFallbackTimeout;_state=L8.OPEN;_closeInteractionType;constructor(e,A,i){this._ref=e,this._containerInstance=i,this.disableClose=A.disableClose,this.id=e.id,e.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(Nt(n=>n.state==="opened"),Xn(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(Nt(n=>n.state==="closed"),Xn(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),e.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),Hn(this.backdropClick(),this.keydownEvents().pipe(Nt(n=>n.keyCode===27&&!this.disableClose&&!sr(n)))).subscribe(n=>{this.disableClose||(n.preventDefault(),Dq(this,n.type==="keydown"?"keyboard":"mouse"))})}close(e){this._result=e,this._containerInstance._animationStateChanged.pipe(Nt(A=>A.state==="closing"),Xn(1)).subscribe(A=>{this._beforeClosed.next(e),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),A.totalTime+100)}),this._state=L8.CLOSING,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(e){let A=this._ref.config.positionStrategy;return e&&(e.left||e.right)?e.left?A.left(e.left):A.right(e.right):A.centerHorizontally(),e&&(e.top||e.bottom)?e.top?A.top(e.top):A.bottom(e.bottom):A.centerVertically(),this._ref.updatePosition(),this}updateSize(e="",A=""){return this._ref.updateSize(e,A),this}addPanelClass(e){return this._ref.addPanelClass(e),this}removePanelClass(e){return this._ref.removePanelClass(e),this}getState(){return this._state}_finishDialogClose(){this._state=L8.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}};function Dq(t,e,A){return t._closeInteractionType=e,t.close(A)}var Cs=new eA("MatMdcDialogData"),X3A=new eA("mat-mdc-dialog-default-options"),$3A=new eA("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.block()}});var Fc=(()=>{class t{_overlay=f(Br);_defaultOptions=f(X3A,{optional:!0});_scrollStrategy=f($3A);_parentDialog=f(t,{optional:!0,skipSelf:!0});_idGenerator=f(an);_dialog=f(uq);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new qA;_afterOpenedAtThisLevel=new qA;dialogConfigClass=x8;_dialogRefConstructor;_dialogContainerType;_dialogDataToken;get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){let A=this._parentDialog;return A?A._getAfterAllClosed():this._afterAllClosedAtThisLevel}afterAllClosed=el(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(On(void 0)));constructor(){this._dialogRefConstructor=fr,this._dialogContainerType=W3A,this._dialogDataToken=Cs}open(A,i){let n;i=sA(sA({},this._defaultOptions||new x8),i),i.id=i.id||this._idGenerator.getId("mat-mdc-dialog-"),i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();let o=this._dialog.open(A,Fe(sA({},i),{positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:W2,useValue:i}]},templateContext:()=>({dialogRef:n}),providers:(r,s,a)=>(n=new this._dialogRefConstructor(r,i,a),n.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:a},{provide:this._dialogDataToken,useValue:s.data},{provide:this._dialogRefConstructor,useValue:n}])}));return n.componentRef=o.componentRef,n.componentInstance=o.componentInstance,this.openDialogs.push(n),this.afterOpened.next(n),n.afterClosed().subscribe(()=>{let r=this.openDialogs.indexOf(n);r>-1&&(this.openDialogs.splice(r,1),this.openDialogs.length||this._getAfterAllClosed().next())}),n}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(A){return this.openDialogs.find(i=>i.id===A)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(A){let i=A.length;for(;i--;)A[i].close()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),bl=(()=>{class t{dialogRef=f(fr,{optional:!0});_elementRef=f(se);_dialog=f(Fc);ariaLabel;type="button";dialogResult;_matDialogClose;constructor(){}ngOnInit(){this.dialogRef||(this.dialogRef=yq(this._elementRef,this._dialog.openDialogs))}ngOnChanges(A){let i=A._matDialogClose||A._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(A){Dq(this.dialogRef,A.screenX===0&&A.screenY===0?"keyboard":"mouse",this.dialogResult)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,n){i&1&&mA("click",function(r){return n._onButtonClick(r)}),i&2&&Ke("aria-label",n.ariaLabel||null)("type",n.type)},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],type:"type",dialogResult:[0,"mat-dialog-close","dialogResult"],_matDialogClose:[0,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[Xt]})}return t})(),wq=(()=>{class t{_dialogRef=f(fr,{optional:!0});_elementRef=f(se);_dialog=f(Fc);constructor(){}ngOnInit(){this._dialogRef||(this._dialogRef=yq(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._onAdd()})}ngOnDestroy(){this._dialogRef?._containerInstance&&Promise.resolve().then(()=>{this._onRemove()})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t})}return t})(),Ls=(()=>{class t extends wq{id=f(an).getId("mat-mdc-dialog-title-");_onAdd(){this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id)}_onRemove(){this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,n){i&2&&Qa("id",n.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],features:[lt]})}return t})(),ya=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],features:[LH([k0])]})}return t})(),va=(()=>{class t extends wq{align;_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:6,hostBindings:function(i,n){i&2&&he("mat-mdc-dialog-actions-align-start",n.align==="start")("mat-mdc-dialog-actions-align-center",n.align==="center")("mat-mdc-dialog-actions-align-end",n.align==="end")},inputs:{align:"align"},features:[lt]})}return t})();function yq(t,e){let A=t.nativeElement.parentElement;for(;A&&!A.classList.contains("mat-mdc-dialog-container");)A=A.parentElement;return A?e.find(i=>i.id===A.id):null}var vq=(()=>{class t{get vertical(){return this._vertical}set vertical(A){this._vertical=Ar(A)}_vertical=!1;get inset(){return this._inset}set inset(A){this._inset=Ar(A)}_inset=!1;static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,n){i&2&&(Ke("aria-orientation",n.vertical?"vertical":"horizontal"),he("mat-divider-vertical",n.vertical)("mat-divider-horizontal",!n.vertical)("mat-divider-inset",n.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(i,n){},styles:[".mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color, var(--mat-sys-outline));border-top-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color, var(--mat-sys-outline));border-right-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}return t})();var AfA=["*"],N8;function efA(){if(N8===void 0&&(N8=null,typeof window<"u")){let t=window;t.trustedTypes!==void 0&&(N8=t.trustedTypes.createPolicy("angular#components",{createHTML:e=>e}))}return N8}function Vh(t){return efA()?.createHTML(t)||t}function Mq(t){return Error(`Unable to find icon with the name "${t}"`)}function tfA(){return Error("Could not find HttpClient for use with Angular Material icons. Please add provideHttpClient() to your providers.")}function bq(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function kq(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}var S0=class{url;svgText;options;svgElement;constructor(e,A,i){this.url=e,this.svgText=A,this.options=i}},ifA=(()=>{class t{_httpClient;_sanitizer;_errorHandler;_document;_svgIconConfigs=new Map;_iconSetConfigs=new Map;_cachedIconsByUrl=new Map;_inProgressUrlFetches=new Map;_fontCssClassesByAlias=new Map;_resolvers=[];_defaultFontSetClass=["material-icons","mat-ligature-font"];constructor(A,i,n,o){this._httpClient=A,this._sanitizer=i,this._errorHandler=o,this._document=n}addSvgIcon(A,i,n){return this.addSvgIconInNamespace("",A,i,n)}addSvgIconLiteral(A,i,n){return this.addSvgIconLiteralInNamespace("",A,i,n)}addSvgIconInNamespace(A,i,n,o){return this._addSvgIconConfig(A,i,new S0(n,null,o))}addSvgIconResolver(A){return this._resolvers.push(A),this}addSvgIconLiteralInNamespace(A,i,n,o){let r=this._sanitizer.sanitize(Xr.HTML,n);if(!r)throw kq(n);let s=Vh(r);return this._addSvgIconConfig(A,i,new S0("",s,o))}addSvgIconSet(A,i){return this.addSvgIconSetInNamespace("",A,i)}addSvgIconSetLiteral(A,i){return this.addSvgIconSetLiteralInNamespace("",A,i)}addSvgIconSetInNamespace(A,i,n){return this._addSvgIconSetConfig(A,new S0(i,null,n))}addSvgIconSetLiteralInNamespace(A,i,n){let o=this._sanitizer.sanitize(Xr.HTML,i);if(!o)throw kq(i);let r=Vh(o);return this._addSvgIconSetConfig(A,new S0("",r,n))}registerFontClassAlias(A,i=A){return this._fontCssClassesByAlias.set(A,i),this}classNameForFontAlias(A){return this._fontCssClassesByAlias.get(A)||A}setDefaultFontSetClass(...A){return this._defaultFontSetClass=A,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(A){let i=this._sanitizer.sanitize(Xr.RESOURCE_URL,A);if(!i)throw bq(A);let n=this._cachedIconsByUrl.get(i);return n?Ce(F8(n)):this._loadSvgIconFromConfig(new S0(A,null)).pipe(So(o=>this._cachedIconsByUrl.set(i,o)),je(o=>F8(o)))}getNamedSvgIcon(A,i=""){let n=Sq(i,A),o=this._svgIconConfigs.get(n);if(o)return this._getSvgFromConfig(o);if(o=this._getIconConfigFromResolvers(i,A),o)return this._svgIconConfigs.set(n,o),this._getSvgFromConfig(o);let r=this._iconSetConfigs.get(i);return r?this._getSvgFromIconSetConfigs(A,r):d2(Mq(n))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(A){return A.svgText?Ce(F8(this._svgElementFromConfig(A))):this._loadSvgIconFromConfig(A).pipe(je(i=>F8(i)))}_getSvgFromIconSetConfigs(A,i){let n=this._extractIconWithNameFromAnySet(A,i);if(n)return Ce(n);let o=i.filter(r=>!r.svgText).map(r=>this._loadSvgIconSetFromConfig(r).pipe(Gr(s=>{let c=`Loading icon set URL: ${this._sanitizer.sanitize(Xr.RESOURCE_URL,r.url)} failed: ${s.message}`;return this._errorHandler.handleError(new Error(c)),Ce(null)})));return gu(o).pipe(je(()=>{let r=this._extractIconWithNameFromAnySet(A,i);if(!r)throw Mq(A);return r}))}_extractIconWithNameFromAnySet(A,i){for(let n=i.length-1;n>=0;n--){let o=i[n];if(o.svgText&&o.svgText.toString().indexOf(A)>-1){let r=this._svgElementFromConfig(o),s=this._extractSvgIconFromSet(r,A,o.options);if(s)return s}}return null}_loadSvgIconFromConfig(A){return this._fetchIcon(A).pipe(So(i=>A.svgText=i),je(()=>this._svgElementFromConfig(A)))}_loadSvgIconSetFromConfig(A){return A.svgText?Ce(null):this._fetchIcon(A).pipe(So(i=>A.svgText=i))}_extractSvgIconFromSet(A,i,n){let o=A.querySelector(`[id="${i}"]`);if(!o)return null;let r=o.cloneNode(!0);if(r.removeAttribute("id"),r.nodeName.toLowerCase()==="svg")return this._setSvgAttributes(r,n);if(r.nodeName.toLowerCase()==="symbol")return this._setSvgAttributes(this._toSvgElement(r),n);let s=this._svgElementFromString(Vh(""));return s.appendChild(r),this._setSvgAttributes(s,n)}_svgElementFromString(A){let i=this._document.createElement("DIV");i.innerHTML=A;let n=i.querySelector("svg");if(!n)throw Error(" tag not found");return n}_toSvgElement(A){let i=this._svgElementFromString(Vh("")),n=A.attributes;for(let o=0;oVh(c)),nl(()=>this._inProgressUrlFetches.delete(r)),Iu());return this._inProgressUrlFetches.set(r,a),a}_addSvgIconConfig(A,i,n){return this._svgIconConfigs.set(Sq(A,i),n),this}_addSvgIconSetConfig(A,i){let n=this._iconSetConfigs.get(A);return n?n.push(i):this._iconSetConfigs.set(A,[i]),this}_svgElementFromConfig(A){if(!A.svgElement){let i=this._svgElementFromString(A.svgText);this._setSvgAttributes(i,A.options),A.svgElement=i}return A.svgElement}_getIconConfigFromResolvers(A,i){for(let n=0;ne?e.pathname+e.search:""}}var Rq=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],afA=Rq.map(t=>`[${t}]`).join(", "),cfA=/^url\(['"]?#(.*?)['"]?\)$/,_c=(()=>{class t{_elementRef=f(se);_iconRegistry=f(ifA);_location=f(rfA);_errorHandler=f(Ps);_defaultColor;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;inline=!1;get svgIcon(){return this._svgIcon}set svgIcon(A){A!==this._svgIcon&&(A?this._updateSvgIcon(A):this._svgIcon&&this._clearSvgElement(),this._svgIcon=A)}_svgIcon;get fontSet(){return this._fontSet}set fontSet(A){let i=this._cleanupFontValue(A);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}_fontSet;get fontIcon(){return this._fontIcon}set fontIcon(A){let i=this._cleanupFontValue(A);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_fontIcon;_previousFontSetClass=[];_previousFontIconClass;_svgName;_svgNamespace;_previousPath;_elementsWithExternalReferences;_currentIconFetch=Kt.EMPTY;constructor(){let A=f(new Wr("aria-hidden"),{optional:!0}),i=f(ofA,{optional:!0});i&&(i.color&&(this.color=this._defaultColor=i.color),i.fontSet&&(this.fontSet=i.fontSet)),A||this._elementRef.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(A){if(!A)return["",""];let i=A.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${A}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){let A=this._elementsWithExternalReferences;if(A&&A.size){let i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(A){this._clearSvgElement();let i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(A),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(A)}_clearSvgElement(){let A=this._elementRef.nativeElement,i=A.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){let n=A.childNodes[i];(n.nodeType!==1||n.nodeName.toLowerCase()==="svg")&&n.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;let A=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(n=>n.length>0);this._previousFontSetClass.forEach(n=>A.classList.remove(n)),i.forEach(n=>A.classList.add(n)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&A.classList.remove(this._previousFontIconClass),this.fontIcon&&A.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(A){return typeof A=="string"?A.trim().split(" ")[0]:A}_prependPathToReferences(A){let i=this._elementsWithExternalReferences;i&&i.forEach((n,o)=>{n.forEach(r=>{o.setAttribute(r.name,`url('${A}#${r.value}')`)})})}_cacheChildrenWithExternalReferences(A){let i=A.querySelectorAll(afA),n=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let o=0;o{let s=i[o],a=s.getAttribute(r),c=a?a.match(cfA):null;if(c){let g=n.get(s);g||(g=[],n.set(s,g)),g.push({name:r,value:c[1]})}})}_updateSvgIcon(A){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),A){let[i,n]=this._splitIconName(A);i&&(this._svgNamespace=i),n&&(this._svgName=n),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(n,i).pipe(Xn(1)).subscribe(o=>this._setSvgElement(o),o=>{let r=`Error retrieving icon ${i}:${n}! ${o.message}`;this._errorHandler.handleError(new Error(r))})}}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(i,n){i&2&&(Ke("data-mat-icon-type",n._usingFontIcon()?"font":"svg")("data-mat-icon-name",n._svgName||n.fontIcon)("data-mat-icon-namespace",n._svgNamespace||n.fontSet)("fontIcon",n._usingFontIcon()?n.fontIcon:null),Ro(n.color?"mat-"+n.color:""),he("mat-icon-inline",n.inline)("mat-icon-no-color",n.color!=="primary"&&n.color!=="accent"&&n.color!=="warn"))},inputs:{color:"color",inline:[2,"inline","inline",ge],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],ngContentSelectors:AfA,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color, inherit)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0})}return t})(),Lq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,pn]})}return t})();var lfA=["trigger"],IfA=["panel"],CfA=[[["mat-select-trigger"]],"*"],dfA=["mat-select-trigger","*"];function BfA(t,e){if(t&1&&(S(0,"span",4),AA(1),N()),t&2){let A=Y();_(),tt(A.placeholder)}}function EfA(t,e){t&1&&Ue(0)}function QfA(t,e){if(t&1&&(S(0,"span",11),AA(1),N()),t&2){let A=Y(2);_(),tt(A.triggerValue)}}function ufA(t,e){if(t&1&&(S(0,"span",5),FA(1,EfA,1,0)(2,QfA,2,1,"span",11),N()),t&2){let A=Y();_(),_A(A.customTrigger?1:2)}}function hfA(t,e){if(t&1){let A=me();S(0,"div",12,1),mA("@transformPanel.done",function(n){QA(A);let o=Y();return uA(o._panelDoneAnimatingStream.next(n.toState))})("keydown",function(n){QA(A);let o=Y();return uA(o._handleKeydown(n))}),Ue(2,1),N()}if(t&2){let A=Y();qH("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",A._getPanelTheme(),""),yA("ngClass",A.panelClass)("@transformPanel","showing"),Ke("id",A.id+"-panel")("aria-multiselectable",A.multiple)("aria-label",A.ariaLabel||null)("aria-labelledby",A._getPanelAriaLabelledby())}}var ffA={transformPanelWrap:nc("transformPanelWrap",[$r("* => void",Uk("@transformPanel",[Kk()],{optional:!0}))]),transformPanel:nc("transformPanel",[$s("void",Do({opacity:0,transform:"scale(1, 0.8)"})),$r("void => showing",Is("120ms cubic-bezier(0, 0, 0.2, 1)",Do({opacity:1,transform:"scale(1, 1)"}))),$r("* => void",Is("100ms linear",Do({opacity:0})))])};var mfA=new eA("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.reposition()}});var pfA=new eA("MAT_SELECT_CONFIG");var DfA=new eA("MatSelectTrigger"),lR=class{source;value;constructor(e,A){this.source=e,this.value=A}},YB=(()=>{class t{_viewportRuler=f(Nc);_changeDetectorRef=f(Et);_elementRef=f(se);_dir=f(po,{optional:!0});_idGenerator=f(an);_parentFormField=f(lh,{optional:!0});ngControl=f(ec,{self:!0,optional:!0});_liveAnnouncer=f(l6);_defaultOptions=f(pfA,{optional:!0});_initialized=new qA;options;optionGroups;customTrigger;_positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}];_scrollOptionIntoView(A){let i=this.options.toArray()[A];if(i){let n=this.panel.nativeElement,o=Fz(A,this.options,this.optionGroups),r=i._getHostElement();A===0&&o===1?n.scrollTop=0:n.scrollTop=_z(r.offsetTop,r.offsetHeight,n.scrollTop,n.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(A){return new lR(this,A)}_scrollStrategyFactory=f(mfA);_panelOpen=!1;_compareWith=(A,i)=>A===i;_uid=this._idGenerator.getId("mat-select-");_triggerAriaLabelledBy=null;_previousControl;_destroy=new qA;_errorStateTracker;stateChanges=new qA;disableAutomaticLabeling=!0;userAriaDescribedBy;_selectionModel;_keyManager;_preferredOverlayOrigin;_overlayWidth;_onChange=()=>{};_onTouched=()=>{};_valueId=this._idGenerator.getId("mat-select-value-");_panelDoneAnimatingStream=new qA;_scrollStrategy;_overlayPanelClass=this._defaultOptions?.overlayPanelClass||"";get focused(){return this._focused||this._panelOpen}_focused=!1;controlType="mat-select";trigger;panel;_overlayDir;panelClass;disabled=!1;disableRipple=!1;tabIndex=0;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(A){this._hideSingleSelectionIndicator=A,this._syncParentProperties()}_hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1;get placeholder(){return this._placeholder}set placeholder(A){this._placeholder=A,this.stateChanges.next()}_placeholder;get required(){return this._required??this.ngControl?.control?.hasValidator(Ac.required)??!1}set required(A){this._required=A,this.stateChanges.next()}_required;get multiple(){return this._multiple}set multiple(A){this._selectionModel,this._multiple=A}_multiple=!1;disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1;get compareWith(){return this._compareWith}set compareWith(A){this._compareWith=A,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(A){this._assignValue(A)&&this._onChange(A)}_value;ariaLabel="";ariaLabelledby;get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(A){this._errorStateTracker.matcher=A}typeaheadDebounceInterval;sortComparator;get id(){return this._id}set id(A){this._id=A||this._uid,this.stateChanges.next()}_id;get errorState(){return this._errorStateTracker.errorState}set errorState(A){this._errorStateTracker.errorState=A}panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto";canSelectNullableOptions=this._defaultOptions?.canSelectNullableOptions??!1;optionSelectionChanges=el(()=>{let A=this.options;return A?A.changes.pipe(On(A),$n(()=>Hn(...A.map(i=>i.onSelectionChange)))):this._initialized.pipe($n(()=>this.optionSelectionChanges))});openedChange=new YA;_openedStream=this.openedChange.pipe(Nt(A=>A),je(()=>{}));_closedStream=this.openedChange.pipe(Nt(A=>!A),je(()=>{}));selectionChange=new YA;valueChange=new YA;constructor(){let A=f(d6),i=f(ih,{optional:!0}),n=f(YI,{optional:!0}),o=f(new Wr("tabindex"),{optional:!0});this.ngControl&&(this.ngControl.valueAccessor=this),this._defaultOptions?.typeaheadDebounceInterval!=null&&(this.typeaheadDebounceInterval=this._defaultOptions.typeaheadDebounceInterval),this._errorStateTracker=new BB(A,this.ngControl,n,i,this.stateChanges),this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=o==null?0:parseInt(o)||0,this.id=this.id}ngOnInit(){this._selectionModel=new P2(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(il(),kt(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen)),this._viewportRuler.change().pipe(kt(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(kt(this._destroy)).subscribe(A=>{A.added.forEach(i=>i.select()),A.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(On(null),kt(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){let A=this._getTriggerAriaLabelledby(),i=this.ngControl;if(A!==this._triggerAriaLabelledBy){let n=this._elementRef.nativeElement;this._triggerAriaLabelledBy=A,A?n.setAttribute("aria-labelledby",A):n.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(this._previousControl!==void 0&&i.disabled!==null&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(A){(A.disabled||A.userAriaDescribedBy)&&this.stateChanges.next(),A.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this.typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_trackedModal=null;_applyModalPanelOwnership(){let A=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!A)return;let i=`${this.id}-panel`;this._trackedModal&&c6(this._trackedModal,"aria-owns",i),wk(A,"aria-owns",i),this._trackedModal=A}_clearFromModal(){if(!this._trackedModal)return;let A=`${this.id}-panel`;c6(this._trackedModal,"aria-owns",A),this._trackedModal=null}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next())}writeValue(A){this._assignValue(A)}registerOnChange(A){this._onChange=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){let A=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&A.reverse(),A.join(", ")}return this._selectionModel.selected[0].viewValue}updateErrorState(){this._errorStateTracker.updateErrorState()}_isRtl(){return this._dir?this._dir.value==="rtl":!1}_handleKeydown(A){this.disabled||(this.panelOpen?this._handleOpenKeydown(A):this._handleClosedKeydown(A))}_handleClosedKeydown(A){let i=A.keyCode,n=i===40||i===38||i===37||i===39,o=i===13||i===32,r=this._keyManager;if(!r.isTyping()&&o&&!sr(A)||(this.multiple||A.altKey)&&n)A.preventDefault(),this.open();else if(!this.multiple){let s=this.selected;r.onKeydown(A);let a=this.selected;a&&s!==a&&this._liveAnnouncer.announce(a.viewValue,1e4)}}_handleOpenKeydown(A){let i=this._keyManager,n=A.keyCode,o=n===40||n===38,r=i.isTyping();if(o&&A.altKey)A.preventDefault(),this.close();else if(!r&&(n===13||n===32)&&i.activeItem&&!sr(A))A.preventDefault(),i.activeItem._selectViaInteraction();else if(!r&&this._multiple&&n===65&&A.ctrlKey){A.preventDefault();let s=this.options.some(a=>!a.disabled&&!a.selected);this.options.forEach(a=>{a.disabled||(s?a.select():a.deselect())})}else{let s=i.activeItemIndex;i.onKeydown(A),this._multiple&&o&&A.shiftKey&&i.activeItem&&i.activeItemIndex!==s&&i.activeItem._selectViaInteraction()}}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(Xn(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(A){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&A)Array.isArray(A),A.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{let i=this._selectOptionByValue(A);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(A){let i=this.options.find(n=>{if(this._selectionModel.isSelected(n))return!1;try{return(n.value!=null||this.canSelectNullableOptions)&&this._compareWith(n.value,A)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(A){return A!==this._value||this._multiple&&Array.isArray(A)?(this.options&&this._setSelectionByValue(A),this._value=A,!0):!1}_skipPredicate=A=>this.panelOpen?!1:A.disabled;_getOverlayWidth(A){return this.panelWidth==="auto"?(A instanceof Ph?A.elementRef:A||this._elementRef).nativeElement.getBoundingClientRect().width:this.panelWidth===null?"":this.panelWidth}_syncParentProperties(){if(this.options)for(let A of this.options)A._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new a6(this.options).withTypeAhead(this.typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){let A=Hn(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(kt(A)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Hn(...this.options.map(i=>i._stateChanges)).pipe(kt(A)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(A,i){let n=this._selectionModel.isSelected(A);!this.canSelectNullableOptions&&A.value==null&&!this._multiple?(A.deselect(),this._selectionModel.clear(),this.value!=null&&this._propagateChanges(A.value)):(n!==A.selected&&(A.selected?this._selectionModel.select(A):this._selectionModel.deselect(A)),i&&this._keyManager.setActiveItem(A),this.multiple&&(this._sortValues(),i&&this.focus())),n!==this._selectionModel.isSelected(A)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){let A=this.options.toArray();this._selectionModel.sort((i,n)=>this.sortComparator?this.sortComparator(i,n,A):A.indexOf(i)-A.indexOf(n)),this.stateChanges.next()}}_propagateChanges(A){let i;this.multiple?i=this.selected.map(n=>n.value):i=this.selected?this.selected.value:A,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let A=-1;for(let i=0;i0}focus(A){this._elementRef.nativeElement.focus(A)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;let A=this._parentFormField?.getLabelId()||null,i=A?A+" ":"";return this.ariaLabelledby?i+this.ariaLabelledby:A}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;let A=this._parentFormField?.getLabelId(),i=(A?A+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(A){this.openedChange.emit(A)}setDescribedByIds(A){A.length?this._elementRef.nativeElement.setAttribute("aria-describedby",A.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-select"]],contentQueries:function(i,n,o){if(i&1&&(gi(o,DfA,5),gi(o,K2,5),gi(o,Nk,5)),i&2){let r;de(r=Be())&&(n.customTrigger=r.first),de(r=Be())&&(n.options=r),de(r=Be())&&(n.optionGroups=r)}},viewQuery:function(i,n){if(i&1&&(st(lfA,5),st(IfA,5),st(sR,5)),i&2){let o;de(o=Be())&&(n.trigger=o.first),de(o=Be())&&(n.panel=o.first),de(o=Be())&&(n._overlayDir=o.first)}},hostAttrs:["role","combobox","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,n){i&1&&mA("keydown",function(r){return n._handleKeydown(r)})("focus",function(){return n._onFocus()})("blur",function(){return n._onBlur()}),i&2&&(Ke("id",n.id)("tabindex",n.disabled?-1:n.tabIndex)("aria-controls",n.panelOpen?n.id+"-panel":null)("aria-expanded",n.panelOpen)("aria-label",n.ariaLabel||null)("aria-required",n.required.toString())("aria-disabled",n.disabled.toString())("aria-invalid",n.errorState)("aria-activedescendant",n._getAriaActiveDescendant()),he("mat-mdc-select-disabled",n.disabled)("mat-mdc-select-invalid",n.errorState)("mat-mdc-select-required",n.required)("mat-mdc-select-empty",n.empty)("mat-mdc-select-multiple",n.multiple))},inputs:{userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[2,"disabled","disabled",ge],disableRipple:[2,"disableRipple","disableRipple",ge],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:en(A)],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",ge],placeholder:"placeholder",required:[2,"required","required",ge],multiple:[2,"multiple","multiple",ge],disableOptionCentering:[2,"disableOptionCentering","disableOptionCentering",ge],compareWith:"compareWith",value:"value",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[2,"typeaheadDebounceInterval","typeaheadDebounceInterval",en],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth",canSelectNullableOptions:[2,"canSelectNullableOptions","canSelectNullableOptions",ge]},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],features:[ut([{provide:gh,useExisting:t},{provide:xk,useExisting:t}]),Xt],ngContentSelectors:dfA,decls:11,vars:8,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","attach","detach","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"keydown","ngClass"]],template:function(i,n){if(i&1){let o=me();$t(CfA),S(0,"div",2,0),mA("click",function(){return QA(o),uA(n.open())}),S(3,"div",3),FA(4,BfA,2,1,"span",4)(5,ufA,3,1,"span",5),N(),S(6,"div",6)(7,"div",7),ur(),S(8,"svg",8),TA(9,"path",9),N()()()(),FA(10,hfA,3,9,"ng-template",10),mA("backdropClick",function(){return QA(o),uA(n.close())})("attach",function(){return QA(o),uA(n._onAttached())})("detach",function(){return QA(o),uA(n.close())})}if(i&2){let o=Cr(1);_(3),Ke("id",n._valueId),_(),_A(n.empty?4:5),_(6),yA("cdkConnectedOverlayPanelClass",n._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",n._scrollStrategy)("cdkConnectedOverlayOrigin",n._preferredOverlayOrigin||o)("cdkConnectedOverlayOpen",n.panelOpen)("cdkConnectedOverlayPositions",n._positions)("cdkConnectedOverlayWidth",n._overlayWidth)}},dependencies:[Ph,sR,Vs],styles:['.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color, var(--mat-sys-on-surface));font-family:var(--mat-select-trigger-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-select-trigger-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-select-trigger-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-select-trigger-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-select-trigger-text-tracking, var(--mat-sys-body-large-tracking))}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-disabled .mat-mdc-select-placeholder{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color, var(--mat-sys-error))}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}@media(forced-colors: active){.mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .mat-mdc-select-arrow svg{fill:GrayText}}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color, var(--mat-sys-surface-container))}@media(forced-colors: active){div.mat-mdc-select-panel{outline:solid 1px}}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}div.mat-mdc-select-panel .mat-mdc-option{--mdc-list-list-item-container-color: var(--mat-select-panel-background-color)}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color, var(--mat-sys-on-surface-variant))}.mat-form-field-no-animations .mat-mdc-select-placeholder,._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform, translateY(-8px))}'],encapsulation:2,data:{animation:[ffA.transformPanel]},changeDetection:0})}return t})();var wfA=["tooltip"],Fq=20;var _q=new eA("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.reposition({scrollThrottle:Fq})}});function yfA(t){return()=>t.scrollStrategies.reposition({scrollThrottle:Fq})}var vfA={provide:_q,deps:[Br],useFactory:yfA};function MfA(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}var bfA=new eA("mat-tooltip-default-options",{providedIn:"root",factory:MfA});var xq="tooltip-panel",Nq=Sc({passive:!0}),kfA=8,SfA=8,RfA=24,LfA=200,kl=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);_platform=f(ni);_ariaDescriber=f(wz);_focusMonitor=f(Jr);_dir=f(po);_injector=f(Zt);_defaultOptions=f(bfA,{optional:!0});_overlayRef;_tooltipInstance;_portal;_position="below";_positionAtOrigin=!1;_disabled=!1;_tooltipClass;_viewInitialized=!1;_pointerExitEventsInitialized=!1;_tooltipComponent=xfA;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending;_dirSubscribed=!1;get position(){return this._position}set position(A){A!==this._position&&(this._position=A,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(A){this._positionAtOrigin=Ar(A),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(A){let i=Ar(A);this._disabled!==i&&(this._disabled=i,i?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(A){this._showDelay=Zs(A)}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(A){this._hideDelay=Zs(A),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}_hideDelay;touchGestures="auto";get message(){return this._message}set message(A){let i=this._message;this._message=A!=null?String(A).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(i)}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(A){this._tooltipClass=A,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}_passiveListeners=[];_touchstartTimeout=null;_destroyed=new qA;_isDestroyed=!1;constructor(){let A=this._defaultOptions;A&&(this._showDelay=A.showDelay,this._hideDelay=A.hideDelay,A.position&&(this.position=A.position),A.positionAtOrigin&&(this.positionAtOrigin=A.positionAtOrigin),A.touchGestures&&(this.touchGestures=A.touchGestures),A.tooltipClass&&(this.tooltipClass=A.tooltipClass)),this._viewportMargin=kfA}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(kt(this._destroyed)).subscribe(A=>{A?A==="keyboard"&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){let A=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,n])=>{A.removeEventListener(i,n,Nq)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._isDestroyed=!0,this._ariaDescriber.removeDescription(A,this.message,"tooltip"),this._focusMonitor.stopMonitoring(A)}show(A=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible()){this._tooltipInstance?._cancelPendingAnimations();return}let n=this._createOverlay(i);this._detach(),this._portal=this._portal||new yg(this._tooltipComponent,this._injector.get(Sn));let o=this._tooltipInstance=n.attach(this._portal).instance;o._triggerElement=this._elementRef.nativeElement,o._mouseLeaveHideDelay=this._hideDelay,o.afterHidden().pipe(kt(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),o.show(A)}hide(A=this.hideDelay){let i=this._tooltipInstance;i&&(i.isVisible()?i.hide(A):(i._cancelPendingAnimations(),this._detach()))}toggle(A){this._isTooltipVisible()?this.hide():this.show(void 0,A)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(A){if(this._overlayRef){let r=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!A)&&r._origin instanceof se)return this._overlayRef;this._detach()}let i=this._injector.get(q2).getAncestorScrollContainers(this._elementRef),n=this._injector.get(Br),o=n.position().flexibleConnectedTo(this.positionAtOrigin?A||this._elementRef:this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return o.positionChanges.pipe(kt(this._destroyed)).subscribe(r=>{this._updateCurrentPositionClass(r.connectionPair),this._tooltipInstance&&r.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=n.create({direction:this._dir,positionStrategy:o,panelClass:`${this._cssClassPrefix}-${xq}`,scrollStrategy:this._injector.get(_q)()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(kt(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(kt(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(kt(this._destroyed)).subscribe(r=>{this._isTooltipVisible()&&r.keyCode===27&&!sr(r)&&(r.preventDefault(),r.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._dirSubscribed||(this._dirSubscribed=!0,this._dir.change.pipe(kt(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(A){let i=A.getConfig().positionStrategy,n=this._getOrigin(),o=this._getOverlayPosition();i.withPositions([this._addOffset(sA(sA({},n.main),o.main)),this._addOffset(sA(sA({},n.fallback),o.fallback))])}_addOffset(A){let i=SfA,n=!this._dir||this._dir.value=="ltr";return A.originY==="top"?A.offsetY=-i:A.originY==="bottom"?A.offsetY=i:A.originX==="start"?A.offsetX=n?-i:i:A.originX==="end"&&(A.offsetX=n?i:-i),A}_getOrigin(){let A=!this._dir||this._dir.value=="ltr",i=this.position,n;i=="above"||i=="below"?n={originX:"center",originY:i=="above"?"top":"bottom"}:i=="before"||i=="left"&&A||i=="right"&&!A?n={originX:"start",originY:"center"}:(i=="after"||i=="right"&&A||i=="left"&&!A)&&(n={originX:"end",originY:"center"});let{x:o,y:r}=this._invertPosition(n.originX,n.originY);return{main:n,fallback:{originX:o,originY:r}}}_getOverlayPosition(){let A=!this._dir||this._dir.value=="ltr",i=this.position,n;i=="above"?n={overlayX:"center",overlayY:"bottom"}:i=="below"?n={overlayX:"center",overlayY:"top"}:i=="before"||i=="left"&&A||i=="right"&&!A?n={overlayX:"end",overlayY:"center"}:(i=="after"||i=="right"&&A||i=="left"&&!A)&&(n={overlayX:"start",overlayY:"center"});let{x:o,y:r}=this._invertPosition(n.overlayX,n.overlayY);return{main:n,fallback:{overlayX:o,overlayY:r}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),Ir(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(A){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=A,this._tooltipInstance._markForCheck())}_invertPosition(A,i){return this.position==="above"||this.position==="below"?i==="top"?i="bottom":i==="bottom"&&(i="top"):A==="end"?A="start":A==="start"&&(A="end"),{x:A,y:i}}_updateCurrentPositionClass(A){let{overlayY:i,originX:n,originY:o}=A,r;if(i==="center"?this._dir&&this._dir.value==="rtl"?r=n==="end"?"left":"right":r=n==="start"?"left":"right":r=i==="bottom"&&o==="top"?"above":"below",r!==this._currentPosition){let s=this._overlayRef;if(s){let a=`${this._cssClassPrefix}-${xq}-`;s.removePanelClass(a+this._currentPosition),s.addPanelClass(a+r)}this._currentPosition=r}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",A=>{this._setupPointerExitEventsIfNeeded();let i;A.x!==void 0&&A.y!==void 0&&(i=A),this.show(void 0,i)}]):this.touchGestures!=="off"&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",A=>{let i=A.targetTouches?.[0],n=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout);let o=500;this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,n)},this._defaultOptions?.touchLongPressShowDelay??o)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;let A=[];if(this._platformSupportsMouseEvents())A.push(["mouseleave",i=>{let n=i.relatedTarget;(!n||!this._overlayRef?.overlayElement.contains(n))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if(this.touchGestures!=="off"){this._disableNativeGesturesIfNecessary();let i=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay)};A.push(["touchend",i],["touchcancel",i])}this._addListeners(A),this._passiveListeners.push(...A)}_addListeners(A){A.forEach(([i,n])=>{this._elementRef.nativeElement.addEventListener(i,n,Nq)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(A){if(this._isTooltipVisible()){let i=this._injector.get(at).elementFromPoint(A.clientX,A.clientY),n=this._elementRef.nativeElement;i!==n&&!n.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){let A=this.touchGestures;if(A!=="off"){let i=this._elementRef.nativeElement,n=i.style;(A==="on"||i.nodeName!=="INPUT"&&i.nodeName!=="TEXTAREA")&&(n.userSelect=n.msUserSelect=n.webkitUserSelect=n.MozUserSelect="none"),(A==="on"||!i.draggable)&&(n.webkitUserDrag="none"),n.touchAction="none",n.webkitTapHighlightColor="transparent"}}_syncAriaDescription(A){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,A,"tooltip"),this._isDestroyed||Ir({write:()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")}},{injector:this._injector}))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,n){i&2&&he("mat-mdc-tooltip-disabled",n.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return t})(),xfA=(()=>{class t{_changeDetectorRef=f(Et);_elementRef=f(se);_isMultiline=!1;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled;_tooltip;_closeOnInteraction=!1;_isVisible=!1;_onHide=new qA;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";constructor(){let A=f(_i,{optional:!0});this._animationsDisabled=A==="NoopAnimations"}show(A){this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},A)}hide(A){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},A)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:A}){(!A||!this._triggerElement.contains(A))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){let A=this._elementRef.nativeElement.getBoundingClientRect();return A.height>RfA&&A.width>=LfA}_handleAnimationEnd({animationName:A}){(A===this._showAnimation||A===this._hideAnimation)&&this._finalizeAnimation(A===this._showAnimation)}_cancelPendingAnimations(){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(A){A?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(A){let i=this._tooltip.nativeElement,n=this._showAnimation,o=this._hideAnimation;if(i.classList.remove(A?o:n),i.classList.add(A?n:o),this._isVisible!==A&&(this._isVisible=A,this._changeDetectorRef.markForCheck()),A&&!this._animationsDisabled&&typeof getComputedStyle=="function"){let r=getComputedStyle(i);(r.getPropertyValue("animation-duration")==="0s"||r.getPropertyValue("animation-name")==="none")&&(this._animationsDisabled=!0)}A&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(A))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-tooltip-component"]],viewQuery:function(i,n){if(i&1&&st(wfA,7),i&2){let o;de(o=Be())&&(n._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(i,n){i&1&&mA("mouseleave",function(r){return n._handleMouseLeave(r)})},decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(i,n){if(i&1){let o=me();S(0,"div",1,0),mA("animationend",function(s){return QA(o),uA(n._handleAnimationEnd(s))}),S(2,"div",2),AA(3),N()()}i&2&&(he("mdc-tooltip--multiline",n._isMultiline),yA("ngClass",n.tooltipClass),_(3),tt(n.message))},dependencies:[Vs],styles:['.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mdc-plain-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mdc-plain-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-plain-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mdc-plain-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mdc-plain-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mdc-plain-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mdc-plain-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-mdc-tooltip-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel{line-height:normal}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}return t})();var IR=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[vfA],imports:[vk,Z2,pn,pn,j2]})}return t})();function FfA(t,e){if(t&1&&(S(0,"mat-option",17),AA(1),N()),t&2){let A=e.$implicit;yA("value",A),_(),Bt(" ",A," ")}}function _fA(t,e){if(t&1){let A=me();S(0,"mat-form-field",14)(1,"mat-select",16,0),mA("selectionChange",function(n){QA(A);let o=Y(2);return uA(o._changePageSize(n.value))}),dn(3,FfA,2,2,"mat-option",17,zn),N(),S(5,"div",18),mA("click",function(){QA(A);let n=Cr(2);return uA(n.open())}),N()()}if(t&2){let A=Y(2);yA("appearance",A._formFieldAppearance)("color",A.color),_(),yA("value",A.pageSize)("disabled",A.disabled)("aria-labelledby",A._pageSizeLabelId)("panelClass",A.selectConfig.panelClass||"")("disableOptionCentering",A.selectConfig.disableOptionCentering),_(2),Bn(A._displayedPageSizeOptions)}}function GfA(t,e){if(t&1&&(S(0,"div",15),AA(1),N()),t&2){let A=Y(2);_(),tt(A.pageSize)}}function KfA(t,e){if(t&1&&(S(0,"div",3)(1,"div",13),AA(2),N(),FA(3,_fA,6,7,"mat-form-field",14)(4,GfA,2,1,"div",15),N()),t&2){let A=Y();_(),Ke("id",A._pageSizeLabelId),_(),Bt(" ",A._intl.itemsPerPageLabel," "),_(),_A(A._displayedPageSizeOptions.length>1?3:-1),_(),_A(A._displayedPageSizeOptions.length<=1?4:-1)}}function UfA(t,e){if(t&1){let A=me();S(0,"button",19),mA("click",function(){QA(A);let n=Y();return uA(n._buttonClicked(0,n._previousButtonsDisabled()))}),ur(),S(1,"svg",8),TA(2,"path",20),N()()}if(t&2){let A=Y();yA("matTooltip",A._intl.firstPageLabel)("matTooltipDisabled",A._previousButtonsDisabled())("disabled",A._previousButtonsDisabled()),Ke("aria-label",A._intl.firstPageLabel)}}function JfA(t,e){if(t&1){let A=me();S(0,"button",21),mA("click",function(){QA(A);let n=Y();return uA(n._buttonClicked(n.getNumberOfPages()-1,n._nextButtonsDisabled()))}),ur(),S(1,"svg",8),TA(2,"path",22),N()()}if(t&2){let A=Y();yA("matTooltip",A._intl.lastPageLabel)("matTooltipDisabled",A._nextButtonsDisabled())("disabled",A._nextButtonsDisabled()),Ke("aria-label",A._intl.lastPageLabel)}}var _8=(()=>{class t{changes=new qA;itemsPerPageLabel="Items per page:";nextPageLabel="Next page";previousPageLabel="Previous page";firstPageLabel="First page";lastPageLabel="Last page";getRangeLabel=(A,i,n)=>{if(n==0||i==0)return`0 of ${n}`;n=Math.max(n,0);let o=A*i,r=o{class t{_intl=f(_8);_changeDetectorRef=f(Et);_formFieldAppearance;_pageSizeLabelId=f(an).getId("mat-paginator-page-size-label-");_intlChanges;_isInitialized=!1;_initializedStream=new sg(1);color;get pageIndex(){return this._pageIndex}set pageIndex(A){this._pageIndex=Math.max(A||0,0),this._changeDetectorRef.markForCheck()}_pageIndex=0;get length(){return this._length}set length(A){this._length=A||0,this._changeDetectorRef.markForCheck()}_length=0;get pageSize(){return this._pageSize}set pageSize(A){this._pageSize=Math.max(A||0,0),this._updateDisplayedPageSizeOptions()}_pageSize;get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(A){this._pageSizeOptions=(A||[]).map(i=>en(i,0)),this._updateDisplayedPageSizeOptions()}_pageSizeOptions=[];hidePageSize=!1;showFirstLastButtons=!1;selectConfig={};disabled=!1;page=new YA;_displayedPageSizeOptions;initialized=this._initializedStream;constructor(){let A=this._intl,i=f(TfA,{optional:!0});if(this._intlChanges=A.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),i){let{pageSize:n,pageSizeOptions:o,hidePageSize:r,showFirstLastButtons:s}=i;n!=null&&(this._pageSize=n),o!=null&&(this._pageSizeOptions=o),r!=null&&(this.hidePageSize=r),s!=null&&(this.showFirstLastButtons=s)}this._formFieldAppearance=i?.formFieldAppearance||"outline"}ngOnInit(){this._isInitialized=!0,this._updateDisplayedPageSizeOptions(),this._initializedStream.next()}ngOnDestroy(){this._initializedStream.complete(),this._intlChanges.unsubscribe()}nextPage(){this.hasNextPage()&&this._navigate(this.pageIndex+1)}previousPage(){this.hasPreviousPage()&&this._navigate(this.pageIndex-1)}firstPage(){this.hasPreviousPage()&&this._navigate(0)}lastPage(){this.hasNextPage()&&this._navigate(this.getNumberOfPages()-1)}hasPreviousPage(){return this.pageIndex>=1&&this.pageSize!=0}hasNextPage(){let A=this.getNumberOfPages()-1;return this.pageIndexA-i),this._changeDetectorRef.markForCheck())}_emitPageEvent(A){this.page.emit({previousPageIndex:A,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}_navigate(A){let i=this.pageIndex;A!==i&&(this.pageIndex=A,this._emitPageEvent(i))}_buttonClicked(A,i){i||this._navigate(A)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-mdc-paginator"],inputs:{color:"color",pageIndex:[2,"pageIndex","pageIndex",en],length:[2,"length","length",en],pageSize:[2,"pageSize","pageSize",en],pageSizeOptions:"pageSizeOptions",hidePageSize:[2,"hidePageSize","hidePageSize",ge],showFirstLastButtons:[2,"showFirstLastButtons","showFirstLastButtons",ge],selectConfig:"selectConfig",disabled:[2,"disabled","disabled",ge]},outputs:{page:"page"},exportAs:["matPaginator"],decls:14,vars:12,consts:[["selectRef",""],[1,"mat-mdc-paginator-outer-container"],[1,"mat-mdc-paginator-container"],[1,"mat-mdc-paginator-page-size"],[1,"mat-mdc-paginator-range-actions"],["aria-live","polite",1,"mat-mdc-paginator-range-label"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","disabled"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-previous",3,"click","matTooltip","matTooltipDisabled","disabled"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true",1,"mat-mdc-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-next",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","disabled"],[1,"mat-mdc-paginator-page-size-label"],[1,"mat-mdc-paginator-page-size-select",3,"appearance","color"],[1,"mat-mdc-paginator-page-size-value"],["hideSingleSelectionIndicator","",3,"selectionChange","value","disabled","aria-labelledby","panelClass","disableOptionCentering"],[3,"value"],[1,"mat-mdc-paginator-touch-target",3,"click"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(i,n){i&1&&(S(0,"div",1)(1,"div",2),FA(2,KfA,5,4,"div",3),S(3,"div",4)(4,"div",5),AA(5),N(),FA(6,UfA,3,4,"button",6),S(7,"button",7),mA("click",function(){return n._buttonClicked(n.pageIndex-1,n._previousButtonsDisabled())}),ur(),S(8,"svg",8),TA(9,"path",9),N()(),_I(),S(10,"button",10),mA("click",function(){return n._buttonClicked(n.pageIndex+1,n._nextButtonsDisabled())}),ur(),S(11,"svg",8),TA(12,"path",11),N()(),FA(13,JfA,3,4,"button",12),N()()()),i&2&&(_(2),_A(n.hidePageSize?-1:2),_(3),Bt(" ",n._intl.getRangeLabel(n.pageIndex,n.pageSize,n.length)," "),_(),_A(n.showFirstLastButtons?6:-1),_(),yA("matTooltip",n._intl.previousPageLabel)("matTooltipDisabled",n._previousButtonsDisabled())("disabled",n._previousButtonsDisabled()),Ke("aria-label",n._intl.previousPageLabel),_(3),yA("matTooltip",n._intl.nextPageLabel)("matTooltipDisabled",n._nextButtonsDisabled())("disabled",n._nextButtonsDisabled()),Ke("aria-label",n._intl.nextPageLabel),_(3),_A(n.showFirstLastButtons?13:-1))},dependencies:[fl,YB,K2,QB,kl],styles:[".mat-mdc-paginator{display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-paginator-container-text-color, var(--mat-sys-on-surface));background-color:var(--mat-paginator-container-background-color, var(--mat-sys-surface));font-family:var(--mat-paginator-container-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-paginator-container-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-paginator-container-text-size, var(--mat-sys-body-small-size));font-weight:var(--mat-paginator-container-text-weight, var(--mat-sys-body-small-weight));letter-spacing:var(--mat-paginator-container-text-tracking, var(--mat-sys-body-small-tracking));--mat-form-field-container-height:var(--mat-paginator-form-field-container-height, 40px);--mat-form-field-container-vertical-padding:var(--mat-paginator-form-field-container-vertical-padding, 8px)}.mat-mdc-paginator .mat-mdc-select-value{font-size:var(--mat-paginator-select-trigger-text-size, var(--mat-sys-body-small-size))}.mat-mdc-paginator .mat-mdc-form-field-subscript-wrapper{display:none}.mat-mdc-paginator .mat-mdc-select{line-height:1.5}.mat-mdc-paginator-outer-container{display:flex}.mat-mdc-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap;width:100%;min-height:var(--mat-paginator-container-size, 56px)}.mat-mdc-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-mdc-paginator-page-size{margin-right:0;margin-left:8px}.mat-mdc-paginator-page-size-label{margin:0 4px}.mat-mdc-paginator-page-size-select{margin:0 4px;width:84px}.mat-mdc-paginator-range-label{margin:0 32px 0 24px}.mat-mdc-paginator-range-actions{display:flex;align-items:center}.mat-mdc-paginator-icon{display:inline-block;width:28px;fill:var(--mat-paginator-enabled-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button[aria-disabled] .mat-mdc-paginator-icon{fill:var(--mat-paginator-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}[dir=rtl] .mat-mdc-paginator-icon{transform:rotate(180deg)}@media(forced-colors: active){.mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon,.mat-mdc-paginator-icon{fill:currentColor;fill:CanvasText}.mat-mdc-paginator-range-actions .mat-mdc-icon-button{outline:solid 1px}}.mat-mdc-paginator-touch-target{display:var(--mat-paginator-touch-target-display, block);position:absolute;top:50%;left:50%;width:84px;height:48px;background-color:rgba(0,0,0,0);transform:translate(-50%, -50%);cursor:pointer}"],encapsulation:2,changeDetection:0})}return t})();var Kq=["*"],HfA=["content"],OfA=[[["mat-drawer"]],[["mat-drawer-content"]],"*"],zfA=["mat-drawer","mat-drawer-content","*"];function PfA(t,e){if(t&1){let A=me();S(0,"div",1),mA("click",function(){QA(A);let n=Y();return uA(n._onBackdropClicked())}),N()}if(t&2){let A=Y();he("mat-drawer-shown",A._isShowingBackdrop())}}function jfA(t,e){t&1&&(S(0,"mat-drawer-content"),Ue(1,2),N())}var qfA=new eA("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:VfA}),Uq=new eA("MAT_DRAWER_CONTAINER");function VfA(){return!1}var CR=(()=>{class t extends k0{_platform=f(ni);_changeDetectorRef=f(Et);_container=f(BR);constructor(){let A=f(se),i=f(q2),n=f(ye);super(A,i,n)}ngAfterContentInit(){this._container._contentMarginChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})}_shouldBeHidden(){if(this._platform.isBrowser)return!1;let{start:A,end:i}=this._container;return A!=null&&A.mode!=="over"&&A.opened||i!=null&&i.mode!=="over"&&i.opened}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-drawer-content"]],hostAttrs:[1,"mat-drawer-content"],hostVars:6,hostBindings:function(i,n){i&2&&(mo("margin-left",n._container._contentMargins.left,"px")("margin-right",n._container._contentMargins.right,"px"),he("mat-drawer-content-hidden",n._shouldBeHidden()))},features:[ut([{provide:k0,useExisting:t}]),lt],ngContentSelectors:Kq,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},encapsulation:2,changeDetection:0})}return t})(),dR=(()=>{class t{_elementRef=f(se);_focusTrapFactory=f(g6);_focusMonitor=f(Jr);_platform=f(ni);_ngZone=f(ye);_renderer=f(qi);_interactivityChecker=f(sh);_doc=f(at,{optional:!0});_container=f(Uq,{optional:!0});_focusTrap=null;_elementFocusedBeforeDrawerWasOpened=null;_eventCleanups;_isAttached;_anchor;get position(){return this._position}set position(A){A=A==="end"?"end":"start",A!==this._position&&(this._isAttached&&this._updatePositionInParent(A),this._position=A,this.onPositionChanged.emit())}_position="start";get mode(){return this._mode}set mode(A){this._mode=A,this._updateFocusTrapState(),this._modeChanged.next()}_mode="over";get disableClose(){return this._disableClose}set disableClose(A){this._disableClose=Ar(A)}_disableClose=!1;get autoFocus(){let A=this._autoFocus;return A??(this.mode==="side"?"dialog":"first-tabbable")}set autoFocus(A){(A==="true"||A==="false"||A==null)&&(A=Ar(A)),this._autoFocus=A}_autoFocus;get opened(){return this._opened}set opened(A){this.toggle(Ar(A))}_opened=!1;_openedVia;_animationStarted=new qA;_animationEnd=new qA;openedChange=new YA(!0);_openedStream=this.openedChange.pipe(Nt(A=>A),je(()=>{}));openedStart=this._animationStarted.pipe(Nt(()=>this.opened),wd(void 0));_closedStream=this.openedChange.pipe(Nt(A=>!A),je(()=>{}));closedStart=this._animationStarted.pipe(Nt(()=>!this.opened),wd(void 0));_destroyed=new qA;onPositionChanged=new YA;_content;_modeChanged=new qA;_injector=f(Zt);_changeDetectorRef=f(Et);constructor(){this.openedChange.pipe(kt(this._destroyed)).subscribe(A=>{A?(this._doc&&(this._elementFocusedBeforeDrawerWasOpened=this._doc.activeElement),this._takeFocus()):this._isFocusWithinDrawer()&&this._restoreFocus(this._openedVia||"program")}),this._ngZone.runOutsideAngular(()=>{let A=this._elementRef.nativeElement;lu(A,"keydown").pipe(Nt(i=>i.keyCode===27&&!this.disableClose&&!sr(i)),kt(this._destroyed)).subscribe(i=>this._ngZone.run(()=>{this.close(),i.stopPropagation(),i.preventDefault()})),this._eventCleanups=[this._renderer.listen(A,"transitionrun",this._handleTransitionEvent),this._renderer.listen(A,"transitionend",this._handleTransitionEvent),this._renderer.listen(A,"transitioncancel",this._handleTransitionEvent)]}),this._animationEnd.subscribe(()=>{this.openedChange.emit(this._opened)})}_forceFocus(A,i){this._interactivityChecker.isFocusable(A)||(A.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let n=()=>{o(),r(),A.removeAttribute("tabindex")},o=this._renderer.listen(A,"blur",n),r=this._renderer.listen(A,"mousedown",n)})),A.focus(i)}_focusByCssSelector(A,i){let n=this._elementRef.nativeElement.querySelector(A);n&&this._forceFocus(n,i)}_takeFocus(){if(!this._focusTrap)return;let A=this._elementRef.nativeElement;switch(this.autoFocus){case!1:case"dialog":return;case!0:case"first-tabbable":Ir(()=>{!this._focusTrap.focusInitialElement()&&typeof A.focus=="function"&&A.focus()},{injector:this._injector});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this.autoFocus);break}}_restoreFocus(A){this.autoFocus!=="dialog"&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,A):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null)}_isFocusWithinDrawer(){let A=this._doc.activeElement;return!!A&&this._elementRef.nativeElement.contains(A)}ngAfterViewInit(){this._isAttached=!0,this._position==="end"&&this._updatePositionInParent("end"),this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState())}ngOnDestroy(){this._eventCleanups.forEach(A=>A()),this._focusTrap?.destroy(),this._anchor?.remove(),this._anchor=null,this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}open(A){return this.toggle(!0,A)}close(){return this.toggle(!1)}_closeViaBackdropClick(){return this._setOpen(!1,!0,"mouse")}toggle(A=!this.opened,i){A&&i&&(this._openedVia=i);let n=this._setOpen(A,!A&&this._isFocusWithinDrawer(),this._openedVia||"program");return A||(this._openedVia=null),n}_setOpen(A,i,n){return A===this._opened?Promise.resolve(A?"open":"close"):(this._opened=A,this._container?._transitionsEnabled?this._setIsAnimating(!0):setTimeout(()=>{this._animationStarted.next(),this._animationEnd.next()}),this._elementRef.nativeElement.classList.toggle("mat-drawer-opened",A),!A&&i&&this._restoreFocus(n),this._changeDetectorRef.markForCheck(),this._updateFocusTrapState(),new Promise(o=>{this.openedChange.pipe(Xn(1)).subscribe(r=>o(r?"open":"close"))}))}_setIsAnimating(A){this._elementRef.nativeElement.classList.toggle("mat-drawer-animating",A)}_getWidth(){return this._elementRef.nativeElement.offsetWidth||0}_updateFocusTrapState(){this._focusTrap&&(this._focusTrap.enabled=!!this._container?.hasBackdrop&&this.opened)}_updatePositionInParent(A){if(!this._platform.isBrowser)return;let i=this._elementRef.nativeElement,n=i.parentNode;A==="end"?(this._anchor||(this._anchor=this._doc.createComment("mat-drawer-anchor"),n.insertBefore(this._anchor,i)),n.appendChild(i)):this._anchor&&this._anchor.parentNode.insertBefore(i,this._anchor)}_handleTransitionEvent=A=>{let i=this._elementRef.nativeElement;A.target===i&&this._ngZone.run(()=>{A.type==="transitionrun"?this._animationStarted.next(A):(A.type==="transitionend"&&this._setIsAnimating(!1),this._animationEnd.next(A))})};static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-drawer"]],viewQuery:function(i,n){if(i&1&&st(HfA,5),i&2){let o;de(o=Be())&&(n._content=o.first)}},hostAttrs:["tabIndex","-1",1,"mat-drawer"],hostVars:11,hostBindings:function(i,n){i&2&&(Ke("align",null),mo("visibility",!n._container&&!n.opened?"hidden":null),he("mat-drawer-end",n.position==="end")("mat-drawer-over",n.mode==="over")("mat-drawer-push",n.mode==="push")("mat-drawer-side",n.mode==="side"))},inputs:{position:"position",mode:"mode",disableClose:"disableClose",autoFocus:"autoFocus",opened:"opened"},outputs:{openedChange:"openedChange",_openedStream:"opened",openedStart:"openedStart",_closedStream:"closed",closedStart:"closedStart",onPositionChanged:"positionChanged"},exportAs:["matDrawer"],ngContentSelectors:Kq,decls:3,vars:0,consts:[["content",""],["cdkScrollable","",1,"mat-drawer-inner-container"]],template:function(i,n){i&1&&($t(),S(0,"div",1,0),Ue(2),N())},dependencies:[k0],encapsulation:2,changeDetection:0})}return t})(),BR=(()=>{class t{_dir=f(po,{optional:!0});_element=f(se);_ngZone=f(ye);_changeDetectorRef=f(Et);_animationMode=f(_i,{optional:!0});_transitionsEnabled=!1;_allDrawers;_drawers=new qa;_content;_userContent;get start(){return this._start}get end(){return this._end}get autosize(){return this._autosize}set autosize(A){this._autosize=Ar(A)}_autosize=f(qfA);get hasBackdrop(){return this._drawerHasBackdrop(this._start)||this._drawerHasBackdrop(this._end)}set hasBackdrop(A){this._backdropOverride=A==null?null:Ar(A)}_backdropOverride;backdropClick=new YA;_start;_end;_left;_right;_destroyed=new qA;_doCheckSubject=new qA;_contentMargins={left:null,right:null};_contentMarginChanges=new qA;get scrollable(){return this._userContent||this._content}_injector=f(Zt);constructor(){let A=f(ni),i=f(Nc);this._dir?.change.pipe(kt(this._destroyed)).subscribe(()=>{this._validateDrawers(),this.updateContentMargins()}),i.change().pipe(kt(this._destroyed)).subscribe(()=>this.updateContentMargins()),this._animationMode!=="NoopAnimations"&&A.isBrowser&&this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{this._element.nativeElement.classList.add("mat-drawer-transition"),this._transitionsEnabled=!0},200)})}ngAfterContentInit(){this._allDrawers.changes.pipe(On(this._allDrawers),kt(this._destroyed)).subscribe(A=>{this._drawers.reset(A.filter(i=>!i._container||i._container===this)),this._drawers.notifyOnChanges()}),this._drawers.changes.pipe(On(null)).subscribe(()=>{this._validateDrawers(),this._drawers.forEach(A=>{this._watchDrawerToggle(A),this._watchDrawerPosition(A),this._watchDrawerMode(A)}),(!this._drawers.length||this._isDrawerOpen(this._start)||this._isDrawerOpen(this._end))&&this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(()=>{this._doCheckSubject.pipe(ag(10),kt(this._destroyed)).subscribe(()=>this.updateContentMargins())})}ngOnDestroy(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}open(){this._drawers.forEach(A=>A.open())}close(){this._drawers.forEach(A=>A.close())}updateContentMargins(){let A=0,i=0;if(this._left&&this._left.opened){if(this._left.mode=="side")A+=this._left._getWidth();else if(this._left.mode=="push"){let n=this._left._getWidth();A+=n,i-=n}}if(this._right&&this._right.opened){if(this._right.mode=="side")i+=this._right._getWidth();else if(this._right.mode=="push"){let n=this._right._getWidth();i+=n,A-=n}}A=A||null,i=i||null,(A!==this._contentMargins.left||i!==this._contentMargins.right)&&(this._contentMargins={left:A,right:i},this._ngZone.run(()=>this._contentMarginChanges.next(this._contentMargins)))}ngDoCheck(){this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(()=>this._doCheckSubject.next())}_watchDrawerToggle(A){A._animationStarted.pipe(kt(this._drawers.changes)).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),A.mode!=="side"&&A.openedChange.pipe(kt(this._drawers.changes)).subscribe(()=>this._setContainerClass(A.opened))}_watchDrawerPosition(A){A.onPositionChanged.pipe(kt(this._drawers.changes)).subscribe(()=>{Ir({read:()=>this._validateDrawers()},{injector:this._injector})})}_watchDrawerMode(A){A._modeChanged.pipe(kt(Hn(this._drawers.changes,this._destroyed))).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()})}_setContainerClass(A){let i=this._element.nativeElement.classList,n="mat-drawer-container-has-open";A?i.add(n):i.remove(n)}_validateDrawers(){this._start=this._end=null,this._drawers.forEach(A=>{A.position=="end"?(this._end!=null,this._end=A):(this._start!=null,this._start=A)}),this._right=this._left=null,this._dir&&this._dir.value==="rtl"?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}_isPushed(){return this._isDrawerOpen(this._start)&&this._start.mode!="over"||this._isDrawerOpen(this._end)&&this._end.mode!="over"}_onBackdropClicked(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}_closeModalDrawersViaBackdrop(){[this._start,this._end].filter(A=>A&&!A.disableClose&&this._drawerHasBackdrop(A)).forEach(A=>A._closeViaBackdropClick())}_isShowingBackdrop(){return this._isDrawerOpen(this._start)&&this._drawerHasBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._drawerHasBackdrop(this._end)}_isDrawerOpen(A){return A!=null&&A.opened}_drawerHasBackdrop(A){return this._backdropOverride==null?!!A&&A.mode!=="side":this._backdropOverride}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-drawer-container"]],contentQueries:function(i,n,o){if(i&1&&(gi(o,CR,5),gi(o,dR,5)),i&2){let r;de(r=Be())&&(n._content=r.first),de(r=Be())&&(n._allDrawers=r)}},viewQuery:function(i,n){if(i&1&&st(CR,5),i&2){let o;de(o=Be())&&(n._userContent=o.first)}},hostAttrs:[1,"mat-drawer-container"],hostVars:2,hostBindings:function(i,n){i&2&&he("mat-drawer-container-explicit-backdrop",n._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[ut([{provide:Uq,useExisting:t}])],ngContentSelectors:zfA,decls:4,vars:2,consts:[[1,"mat-drawer-backdrop",3,"mat-drawer-shown"],[1,"mat-drawer-backdrop",3,"click"]],template:function(i,n){i&1&&($t(OfA),FA(0,PfA,1,2,"div",0),Ue(1),Ue(2,1),FA(3,jfA,2,0,"mat-drawer-content")),i&2&&(_A(n.hasBackdrop?0:-1),_(3),_A(n._content?-1:3))},dependencies:[CR],styles:[".mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color, var(--mat-sys-on-background));background-color:var(--mat-sidenav-content-background-color, var(--mat-sys-background));box-sizing:border-box;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color, color-mix(in srgb, var(--mat-sys-neutral-variant20) 40%, transparent))}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}@media(forced-colors: active){.mat-drawer-backdrop{opacity:.5}}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-content.mat-drawer-content-hidden{opacity:0}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;color:var(--mat-sidenav-container-text-color, var(--mat-sys-on-surface-variant));box-shadow:var(--mat-sidenav-container-elevation-shadow, none);background-color:var(--mat-sidenav-container-background-color, var(--mat-sys-surface));border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));width:var(--mat-sidenav-container-width, 360px);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}@media(forced-colors: active){.mat-drawer,[dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}}@media(forced-colors: active){[dir=rtl] .mat-drawer,.mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer-transition .mat-drawer{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating){visibility:hidden;box-shadow:none}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating) .mat-drawer-inner-container{display:none}.mat-drawer.mat-drawer-opened.mat-drawer-opened{transform:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto}.mat-sidenav-fixed{position:fixed}"],encapsulation:2,changeDetection:0})}return t})();var WfA=["switch"],XfA=["*"];function $fA(t,e){t&1&&(S(0,"span",10),ur(),S(1,"svg",12),TA(2,"path",13),N(),S(3,"svg",14),TA(4,"path",15),N()())}var AmA=new eA("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1,disabledInteractive:!1})}),emA={provide:bc,useExisting:Ur(()=>ER),multi:!0},G8=class{source;checked;constructor(e,A){this.source=e,this.checked=A}},ER=(()=>{class t{_elementRef=f(se);_focusMonitor=f(Jr);_changeDetectorRef=f(Et);defaults=f(AmA);_onChange=A=>{};_onTouched=()=>{};_validatorOnChange=()=>{};_uniqueId;_checked=!1;_createChangeEvent(A){return new G8(this,A)}_labelId;get buttonId(){return`${this.id||this._uniqueId}-button`}_switchElement;focus(){this._switchElement.nativeElement.focus()}_noopAnimations;_focused;name=null;id;labelPosition="after";ariaLabel=null;ariaLabelledby=null;ariaDescribedby;required;color;disabled=!1;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(A){this._checked=A,this._changeDetectorRef.markForCheck()}hideIcon;disabledInteractive;change=new YA;toggleChange=new YA;get inputId(){return`${this.id||this._uniqueId}-input`}constructor(){f(Pn).load(Yr);let A=f(new Wr("tabindex"),{optional:!0}),i=this.defaults,n=f(_i,{optional:!0});this.tabIndex=A==null?0:parseInt(A)||0,this.color=i.color||"accent",this._noopAnimations=n==="NoopAnimations",this.id=this._uniqueId=f(an).getId("mat-mdc-slide-toggle-"),this.hideIcon=i.hideIcon??!1,this.disabledInteractive=i.disabledInteractive??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(A=>{A==="keyboard"||A==="program"?(this._focused=!0,this._changeDetectorRef.markForCheck()):A||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(A){A.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(A){this.checked=!!A}registerOnChange(A){this._onChange=A}registerOnTouched(A){this._onTouched=A}validate(A){return this.required&&A.value!==!0?{required:!0}:null}registerOnValidatorChange(A){this._validatorOnChange=A}setDisabledState(A){this.disabled=A,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.disabled||(this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new G8(this,this.checked))))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-slide-toggle"]],viewQuery:function(i,n){if(i&1&&st(WfA,5),i&2){let o;de(o=Be())&&(n._switchElement=o.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,n){i&2&&(Qa("id",n.id),Ke("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-slide-toggle-focused",n._focused)("mat-mdc-slide-toggle-checked",n.checked)("_mat-animation-noopable",n._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],required:[2,"required","required",ge],color:"color",disabled:[2,"disabled","disabled",ge],disableRipple:[2,"disableRipple","disableRipple",ge],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:en(A)],checked:[2,"checked","checked",ge],hideIcon:[2,"hideIcon","hideIcon",ge],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],features:[ut([emA,{provide:M0,useExisting:t,multi:!0}]),Xt],ngContentSelectors:XfA,decls:13,vars:27,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"div",1)(1,"button",2,0),mA("click",function(){return QA(o),uA(n._handleClick())}),TA(3,"span",3),S(4,"span",4)(5,"span",5)(6,"span",6),TA(7,"span",7),N(),S(8,"span",8),TA(9,"span",9),N(),FA(10,$fA,5,0,"span",10),N()()(),S(11,"label",11),mA("click",function(s){return QA(o),uA(s.stopPropagation())}),Ue(12),N()()}if(i&2){let o=Cr(2);yA("labelPosition",n.labelPosition),_(),he("mdc-switch--selected",n.checked)("mdc-switch--unselected",!n.checked)("mdc-switch--checked",n.checked)("mdc-switch--disabled",n.disabled)("mat-mdc-slide-toggle-disabled-interactive",n.disabledInteractive),yA("tabIndex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("disabled",n.disabled&&!n.disabledInteractive),Ke("id",n.buttonId)("name",n.name)("aria-label",n.ariaLabel)("aria-labelledby",n._getAriaLabelledBy())("aria-describedby",n.ariaDescribedby)("aria-required",n.required||null)("aria-checked",n.checked)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),_(8),yA("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)("matRippleCentered",!0),_(),_A(n.hideIcon?-1:10),_(),yA("for",n.buttonId),Ke("id",n._labelId)}},dependencies:[Xs,B6],styles:['.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative;width:var(--mdc-switch-track-width, 52px)}.mdc-switch.mdc-switch--disabled{cursor:default;pointer-events:none}.mdc-switch.mat-mdc-slide-toggle-disabled-interactive{pointer-events:auto}.mdc-switch__track{overflow:hidden;position:relative;width:100%;height:var(--mdc-switch-track-height, 32px);border-radius:var(--mdc-switch-track-shape, var(--mat-sys-corner-full))}.mdc-switch--disabled.mdc-switch .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity, 0.12)}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%;border-width:var(--mat-switch-track-outline-width, 2px);border-color:var(--mat-switch-track-outline-color, var(--mat-sys-outline))}.mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track::after{border-width:var(--mat-switch-selected-track-outline-width, 2px);border-color:var(--mat-switch-selected-track-outline-color, transparent)}.mdc-switch--disabled .mdc-switch__track::before,.mdc-switch--disabled .mdc-switch__track::after{border-width:var(--mat-switch-disabled-unselected-track-outline-width, 2px);border-color:var(--mat-switch-disabled-unselected-track-outline-color, var(--mat-sys-on-surface))}@media(forced-colors: active){.mdc-switch__track{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0);background:var(--mdc-switch-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch--selected .mdc-switch__track::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color, var(--mat-sys-surface-variant))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::before,.mdc-switch.mdc-switch--disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch__track::after{transform:translateX(-100%);background:var(--mdc-switch-selected-track-color, var(--mat-sys-primary))}[dir=rtl] .mdc-switch__track::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::after{transform:translateX(0)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color, var(--mat-sys-primary))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::after,.mdc-switch.mdc-switch--disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color, var(--mat-sys-on-surface))}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0);width:calc(100% - var(--mdc-switch-handle-width))}[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto;transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1);width:var(--mdc-switch-handle-width);height:var(--mdc-switch-handle-height);border-radius:var(--mdc-switch-handle-shape, var(--mat-sys-corner-full))}[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size, 16px);height:var(--mat-switch-unselected-handle-size, 16px);margin:var(--mat-switch-unselected-handle-horizontal-margin, 0 8px)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin, 0 4px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size, 24px);height:var(--mat-switch-selected-handle-size, 24px);margin:var(--mat-switch-selected-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size, 24px);height:var(--mat-switch-with-icon-handle-size, 24px)}.mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size, 28px);height:var(--mat-switch-pressed-handle-size, 28px)}.mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin, 0 22px)}.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin, 0 2px)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity, 1)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity, 0.38)}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media(forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color, var(--mat-sys-on-primary))}.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color, var(--mat-sys-primary-container))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:hover:not(:focus):not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:focus:not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:active .mdc-switch__handle::after,.mdc-switch--selected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color, var(--mat-sys-surface))}.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color, var(--mat-sys-outline))}.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color, var(--mat-sys-on-surface))}.mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__shadow,.mdc-switch.mdc-switch--disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1;width:var(--mdc-switch-state-layer-size, 40px);height:var(--mdc-switch-state-layer-size, 40px)}.mdc-switch__ripple::after{content:"";opacity:0}.mdc-switch--disabled .mdc-switch__ripple::after{display:none}.mat-mdc-slide-toggle-disabled-interactive .mdc-switch__ripple::after{display:block}.mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:75ms opacity cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:focus .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:active .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-pressed-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-selected-pressed-state-layer-color, var(--mat-sys-primary));opacity:var(--mdc-switch-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch__icons{position:relative;height:100%;width:100%;z-index:1}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity, 0.38)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity, 0.38)}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size, 16px);height:var(--mdc-switch-unselected-icon-size, 16px);fill:var(--mdc-switch-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size, 16px);height:var(--mdc-switch-selected-icon-size, 16px);fill:var(--mdc-switch-selected-icon-color, var(--mat-sys-on-primary-container))}.mdc-switch--selected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color, var(--mat-sys-on-surface))}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle{-webkit-user-select:none;user-select:none;display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-internal-form-field{color:var(--mat-switch-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-switch-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-switch-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-switch-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-switch-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-switch-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}'],encapsulation:2,changeDetection:0})}return t})();function tmA(t,e){if(t&1){let A=me();S(0,"div",1)(1,"button",2),mA("click",function(){QA(A);let n=Y();return uA(n.action())}),AA(2),N()()}if(t&2){let A=Y();_(2),Bt(" ",A.data.action," ")}}var imA=["label"];function nmA(t,e){}var omA=Math.pow(2,31)-1,Zh=class{_overlayRef;instance;containerInstance;_afterDismissed=new qA;_afterOpened=new qA;_onAction=new qA;_durationTimeoutId;_dismissedByAction=!1;constructor(e,A){this._overlayRef=A,this.containerInstance=e,e._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(e){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(e,omA))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}},Jq=new eA("MatSnackBarData"),TB=class{politeness="assertive";announcementMessage="";viewContainerRef;duration=0;panelClass;direction;data=null;horizontalPosition="center";verticalPosition="bottom"},rmA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return t})(),smA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return t})(),amA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return t})(),cmA=(()=>{class t{snackBarRef=f(Zh);data=f(Jq);constructor(){}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(i,n){i&1&&(S(0,"div",0),AA(1),N(),FA(2,tmA,3,1,"div",1)),i&2&&(_(),Bt(" ",n.data.message,` -`),_(),_A(n.hasAction?2:-1))},dependencies:[dr,rmA,smA,amA],styles:[".mat-mdc-simple-snack-bar{display:flex}"],encapsulation:2,changeDetection:0})}return t})(),gmA={snackBarState:nc("state",[$s("void, hidden",Do({transform:"scale(0.8)",opacity:0})),$s("visible",Do({transform:"scale(1)",opacity:1})),$r("* => visible",Is("150ms cubic-bezier(0, 0, 0.2, 1)")),$r("* => void, * => hidden",Is("75ms cubic-bezier(0.4, 0.0, 1, 1)",Do({opacity:0})))])},lmA=(()=>{class t extends V2{_ngZone=f(ye);_elementRef=f(se);_changeDetectorRef=f(Et);_platform=f(ni);snackBarConfig=f(TB);_document=f(at);_trackedModals=new Set;_announceDelay=150;_announceTimeoutId;_destroyed=!1;_portalOutlet;_onAnnounce=new qA;_onExit=new qA;_onEnter=new qA;_animationState="void";_live;_label;_role;_liveElementId=f(an).getId("mat-snack-bar-container-live-");constructor(){super();let A=this.snackBarConfig;A.politeness==="assertive"&&!A.announcementMessage?this._live="assertive":A.politeness==="off"?this._live="off":this._live="polite",this._platform.FIREFOX&&(this._live==="polite"&&(this._role="status"),this._live==="assertive"&&(this._role="alert"))}attachComponentPortal(A){this._assertNotAttached();let i=this._portalOutlet.attachComponentPortal(A);return this._afterPortalAttached(),i}attachTemplatePortal(A){this._assertNotAttached();let i=this._portalOutlet.attachTemplatePortal(A);return this._afterPortalAttached(),i}attachDomPortal=A=>{this._assertNotAttached();let i=this._portalOutlet.attachDomPortal(A);return this._afterPortalAttached(),i};onAnimationEnd(A){let{fromState:i,toState:n}=A;if((n==="void"&&i!=="void"||n==="hidden")&&this._completeExit(),n==="visible"){let o=this._onEnter;this._ngZone.run(()=>{o.next(),o.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.markForCheck(),this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._ngZone.run(()=>{this._animationState="hidden",this._changeDetectorRef.markForCheck(),this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId)}),this._onExit}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){queueMicrotask(()=>{this._onExit.next(),this._onExit.complete()})}_afterPortalAttached(){let A=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(r=>A.classList.add(r)):A.classList.add(i)),this._exposeToModals();let n=this._label.nativeElement,o="mdc-snackbar__label";n.classList.toggle(o,!n.querySelector(`.${o}`))}_exposeToModals(){let A=this._liveElementId,i=this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');for(let n=0;n{let i=A.getAttribute("aria-owns");if(i){let n=i.replace(this._liveElementId,"").trim();n.length>0?A.setAttribute("aria-owns",n):A.removeAttribute("aria-owns")}}),this._trackedModals.clear()}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{let A=this._elementRef.nativeElement.querySelector("[aria-hidden]"),i=this._elementRef.nativeElement.querySelector("[aria-live]");if(A&&i){let n=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&A.contains(document.activeElement)&&(n=document.activeElement),A.removeAttribute("aria-hidden"),i.appendChild(A),n?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-snack-bar-container"]],viewQuery:function(i,n){if(i&1&&(st(wa,7),st(imA,7)),i&2){let o;de(o=Be())&&(n._portalOutlet=o.first),de(o=Be())&&(n._label=o.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container"],hostVars:1,hostBindings:function(i,n){i&1&&kb("@state.done",function(r){return n.onAnimationEnd(r)}),i&2&&bb("@state",n._animationState)},features:[lt],decls:6,vars:3,consts:[["label",""],[1,"mdc-snackbar__surface","mat-mdc-snackbar-surface"],[1,"mat-mdc-snack-bar-label"],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(i,n){i&1&&(S(0,"div",1)(1,"div",2,0)(3,"div",3),FA(4,nmA,0,0,"ng-template",4),N(),TA(5,"div"),N()()),i&2&&(_(5),Ke("aria-live",n._live)("role",n._role)("id",n._liveElementId))},dependencies:[wa],styles:[".mat-mdc-snack-bar-container{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);margin:8px}.mat-mdc-snack-bar-handset .mat-mdc-snack-bar-container{width:100vw}.mat-mdc-snackbar-surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;padding-left:0;padding-right:8px}[dir=rtl] .mat-mdc-snackbar-surface{padding-right:0;padding-left:8px}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{min-width:344px;max-width:672px}.mat-mdc-snack-bar-handset .mat-mdc-snackbar-surface{width:100%;min-width:0}@media(forced-colors: active){.mat-mdc-snackbar-surface{outline:solid 1px}}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{color:var(--mdc-snackbar-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-snackbar-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mdc-snackbar-container-color, var(--mat-sys-inverse-surface))}.mdc-snackbar__label{width:100%;flex-grow:1;box-sizing:border-box;margin:0;padding:14px 8px 14px 16px}[dir=rtl] .mdc-snackbar__label{padding-left:8px;padding-right:16px}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-family:var(--mdc-snackbar-supporting-text-font, var(--mat-sys-body-medium-font));font-size:var(--mdc-snackbar-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mdc-snackbar-supporting-text-weight, var(--mat-sys-body-medium-weight));line-height:var(--mdc-snackbar-supporting-text-line-height, var(--mat-sys-body-medium-line-height))}.mat-mdc-snack-bar-actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled).mat-unthemed{color:var(--mat-snack-bar-button-color, var(--mat-sys-inverse-primary))}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){--mat-text-button-state-layer-color:currentColor;--mat-text-button-ripple-color:currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{opacity:.1}"],encapsulation:2,data:{animation:[gmA.snackBarState]}})}return t})();function ImA(){return new TB}var CmA=new eA("mat-snack-bar-default-options",{providedIn:"root",factory:ImA}),Yq=(()=>{class t{_overlay=f(Br);_live=f(l6);_injector=f(Zt);_breakpointObserver=f(t6);_parentSnackBar=f(t,{optional:!0,skipSelf:!0});_defaultConfig=f(CmA);_snackBarRefAtThisLevel=null;simpleSnackBarComponent=cmA;snackBarContainerComponent=lmA;handsetCssClass="mat-mdc-snack-bar-handset";get _openedSnackBarRef(){let A=this._parentSnackBar;return A?A._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(A){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=A:this._snackBarRefAtThisLevel=A}constructor(){}openFromComponent(A,i){return this._attach(A,i)}openFromTemplate(A,i){return this._attach(A,i)}open(A,i="",n){let o=sA(sA({},this._defaultConfig),n);return o.data={message:A,action:i},o.announcementMessage===A&&(o.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,o)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(A,i){let n=i&&i.viewContainerRef&&i.viewContainerRef.injector,o=Zt.create({parent:n||this._injector,providers:[{provide:TB,useValue:i}]}),r=new yg(this.snackBarContainerComponent,i.viewContainerRef,o),s=A.attach(r);return s.instance.snackBarConfig=i,s.instance}_attach(A,i){let n=sA(sA(sA({},new TB),this._defaultConfig),i),o=this._createOverlay(n),r=this._attachSnackBarContainer(o,n),s=new Zh(r,o);if(A instanceof mn){let a=new Rs(A,null,{$implicit:n.data,snackBarRef:s});s.instance=r.attachTemplatePortal(a)}else{let a=this._createInjector(n,s),c=new yg(A,void 0,a),g=r.attachComponentPortal(c);s.instance=g.instance}return this._breakpointObserver.observe(Qz.HandsetPortrait).pipe(kt(o.detachments())).subscribe(a=>{o.overlayElement.classList.toggle(this.handsetCssClass,a.matches)}),n.announcementMessage&&r._onAnnounce.subscribe(()=>{this._live.announce(n.announcementMessage,n.politeness)}),this._animateSnackBar(s,n),this._openedSnackBarRef=s,this._openedSnackBarRef}_animateSnackBar(A,i){A.afterDismissed().subscribe(()=>{this._openedSnackBarRef==A&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{A.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):A.containerInstance.enter(),i.duration&&i.duration>0&&A.afterOpened().subscribe(()=>A._dismissAfter(i.duration))}_createOverlay(A){let i=new Ml;i.direction=A.direction;let n=this._overlay.position().global(),o=A.direction==="rtl",r=A.horizontalPosition==="left"||A.horizontalPosition==="start"&&!o||A.horizontalPosition==="end"&&o,s=!r&&A.horizontalPosition!=="center";return r?n.left("0"):s?n.right("0"):n.centerHorizontally(),A.verticalPosition==="top"?n.top("0"):n.bottom("0"),i.positionStrategy=n,this._overlay.create(i)}_createInjector(A,i){let n=A&&A.viewContainerRef&&A.viewContainerRef.injector;return Zt.create({parent:n||this._injector,providers:[{provide:Zh,useValue:i},{provide:Jq,useValue:A.data}]})}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var dmA=t=>["segment",t],BmA=(t,e)=>({"segment-main":!0,expandable:t,expanded:e});function EmA(t,e){t&1&&TA(0,"div",9)}function QmA(t,e){if(t&1&&(S(0,"span",10),AA(1),N()),t&2){let A=Y().$implicit;_(),tt(A.description)}}function umA(t,e){if(t&1&&(S(0,"section",11),TA(1,"ngx-json-viewer",12),N()),t&2){let A=Y().$implicit,i=Y();_(),yA("json",A.value)("expanded",i.expanded)("depth",i.depth)("_currentDepth",i._currentDepth+1)}}function hmA(t,e){if(t&1){let A=me();S(0,"section",2)(1,"section",3),mA("click",function(){let n=QA(A).$implicit,o=Y();return uA(o.toggle(n))}),FA(2,EmA,1,0,"div",4),S(3,"span",5),AA(4),N(),S(5,"span",6),AA(6,": "),N(),FA(7,QmA,2,1,"span",7),N(),FA(8,umA,2,4,"section",8),N()}if(t&2){let A=e.$implicit,i=Y();yA("ngClass",vc(6,dmA,"segment-type-"+A.type)),_(),yA("ngClass",Bg(8,BmA,i.isExpandable(A),A.expanded)),_(),yA("ngIf",i.isExpandable(A)),_(2),tt(A.key),_(3),yA("ngIf",!A.expanded||!i.isExpandable(A)),_(),yA("ngIf",A.expanded&&i.isExpandable(A))}}var X2=(()=>{class t{constructor(){this.expanded=!0,this.depth=-1,this._currentDepth=0,this.segments=[]}ngOnChanges(){this.segments=[],this.json=this.decycle(this.json),typeof this.json=="object"?Object.keys(this.json).forEach(A=>{this.segments.push(this.parseKeyValue(A,this.json[A]))}):this.segments.push(this.parseKeyValue(`(${typeof this.json})`,this.json))}isExpandable(A){return A.type==="object"||A.type==="array"}toggle(A){this.isExpandable(A)&&(A.expanded=!A.expanded)}parseKeyValue(A,i){let n={key:A,value:i,type:void 0,description:""+i,expanded:this.isExpanded()};switch(typeof n.value){case"number":{n.type="number";break}case"boolean":{n.type="boolean";break}case"function":{n.type="function";break}case"string":{n.type="string",n.description='"'+n.value+'"';break}case"undefined":{n.type="undefined",n.description="undefined";break}case"object":{n.value===null?(n.type="null",n.description="null"):Array.isArray(n.value)?(n.type="array",n.description="Array["+n.value.length+"] "+JSON.stringify(n.value)):n.value instanceof Date?n.type="date":(n.type="object",n.description="Object "+JSON.stringify(n.value));break}}return n}isExpanded(){return this.expanded&&!(this.depth>-1&&this._currentDepth>=this.depth)}decycle(A){let i=new WeakMap;return function n(o,r){let s,a;return typeof o=="object"&&o!==null&&!(o instanceof Boolean)&&!(o instanceof Date)&&!(o instanceof Number)&&!(o instanceof RegExp)&&!(o instanceof String)?(s=i.get(o),s!==void 0?{$ref:s}:(i.set(o,r),Array.isArray(o)?(a=[],o.forEach(function(c,g){a[g]=n(c,r+"["+g+"]")})):(a={},Object.keys(o).forEach(function(c){a[c]=n(o[c],r+"["+JSON.stringify(c)+"]")})),a)):o}(A,"$")}}return t.\u0275fac=function(A){return new(A||t)},t.\u0275cmp=jA({type:t,selectors:[["ngx-json-viewer"]],inputs:{json:"json",expanded:"expanded",depth:"depth",_currentDepth:"_currentDepth"},standalone:!1,features:[Xt],decls:2,vars:1,consts:[[1,"ngx-json-viewer"],[3,"ngClass",4,"ngFor","ngForOf"],[3,"ngClass"],[3,"click","ngClass"],["class","toggler",4,"ngIf"],[1,"segment-key"],[1,"segment-separator"],["class","segment-value",4,"ngIf"],["class","children",4,"ngIf"],[1,"toggler"],[1,"segment-value"],[1,"children"],[3,"json","expanded","depth","_currentDepth"]],template:function(A,i){A&1&&(S(0,"section",0),FA(1,hmA,9,11,"section",1),N()),A&2&&(_(),yA("ngForOf",i.segments))},dependencies:[Vs,Lp,Tu,t],styles:['@charset "UTF-8";.ngx-json-viewer[_ngcontent-%COMP%]{font-family:var(--ngx-json-font-family, monospace);font-size:var(--ngx-json-font-size, 1em);width:100%;height:100%;overflow:hidden;position:relative}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%]{padding:2px;margin:1px 1px 1px 12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%]{word-wrap:break-word}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]{position:absolute;margin-left:-14px;margin-top:3px;font-size:.8em;line-height:1.2em;vertical-align:middle;color:var(--ngx-json-toggler, #787878)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]:after{display:inline-block;content:"\\25ba";transition:transform .1s ease-in}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-key, #4E187C)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-separator[_ngcontent-%COMP%]{color:var(--ngx-json-separator, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-value, #000)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .children[_ngcontent-%COMP%]{margin-left:12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-string[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-string, #FF6B6B)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-number[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-number, #009688)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-boolean[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-boolean, #B938A4)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-date[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-date, #05668D)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-array, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-object, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-function[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-function, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-null, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-undefined, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-null-bg, red)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%]{white-space:nowrap}.ngx-json-viewer[_ngcontent-%COMP%] .expanded[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]:after{transform:rotate(90deg)}.ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]{cursor:pointer}']}),t})(),Sl=(()=>{class t{}return t.\u0275fac=function(A){return new(A||t)},t.\u0275mod=Ze({type:t}),t.\u0275inj=Ve({imports:[ug]}),t})();var ds=class t{static getBaseUrlWithoutPath(){let e=window.location.href;return new URL(e).origin+"/dev-ui/"}static getApiServerBaseUrl(){return window.runtimeConfig?.backendUrl||""}static getWSServerUrl(){let e=t.getApiServerBaseUrl();return!e||e==""?window.location.host:e.startsWith("http://")?e.slice(7):e.startsWith("https://")?e.slice(8):e}};var HB=new eA("AgentService");var U8=new eA("ArtifactService");var OB=new eA("DownloadService");var Rl=new eA("EvalService");var zB=new eA("EventService");var Tq="import_session",Hq="edit_function_args";var Oq="a2a_card",Gc=new eA("FeatureFlagService");var PB=new eA("GraphService");var J8=new eA("LocalFileService");var $2=new eA("SafeValuesService"),Y8=class{openBase64InNewTab(e,A){try{if(!e)return;let i=e;if(e.startsWith("data:")&&e.includes(";base64,")&&(i=i.substring(i.indexOf(";base64,")+8)),!A||!i)return;let n=atob(i),o=new Array(n.length);for(let c=0;cthis.onResizeHandleMouseDown(e)),document.documentElement.style.setProperty("--bottom-panel-height","310px"),this.renderer.setStyle(this.el.nativeElement,"height","var(--bottom-panel-height)")}onResizeHandleMouseDown(e){this.resizingEvent={isResizing:!0,startingCursorY:e.clientY,startingHeight:this.bottomPanelHeight},e.preventDefault()}onMouseMove(e){if(!this.resizingEvent.isResizing)return;let A=this.resizingEvent.startingCursorY-e.clientY,i=this.resizingEvent.startingHeight+A;this.bottomPanelHeight=i,this.renderer.addClass(document.body,"resizing")}onMouseUp(){this.resizingEvent.isResizing=!1,this.renderer.removeClass(document.body,"resizing")}onResize(){this.bottomMaxHeight=window.innerHeight/2,this.bottomPanelHeight=this.bottomPanelHeight}set bottomPanelHeight(e){let A=Math.min(Math.max(e,this.bottomMinHeight),this.bottomMaxHeight);document.body.style.setProperty("--bottom-panel-height",`${A}px`)}get bottomPanelHeight(){let e=getComputedStyle(document.body).getPropertyValue("--bottom-panel-height"),A=parseInt(e,10);return isNaN(A)?500:A}static \u0275fac=function(A){return new(A||t)(Ge(se),Ge(qi))};static \u0275dir=WA({type:t,selectors:[["","appResizableBottomPanel",""]],hostBindings:function(A,i){A&1&&mA("mousemove",function(o){return i.onMouseMove(o)},!1,Wd)("mouseup",function(){return i.onMouseUp()},!1,Wd)("resize",function(){return i.onResize()},!1,dp)}})};var O8=class t{constructor(e,A){this.el=e;this.renderer=A}sideDrawerMinWidth=310;sideDrawerMaxWidth=window.innerWidth/2;resizeHandle=null;resizingEvent={isResizing:!1,startingCursorX:0,startingWidth:0};ngAfterViewInit(){this.sideDrawerMaxWidth=window.innerWidth/2,this.resizeHandle=document.getElementsByClassName("resize-handler")[0],this.resizeHandle&&this.renderer.listen(this.resizeHandle,"mousedown",e=>this.onResizeHandleMouseDown(e)),document.documentElement.style.setProperty("--side-drawer-width","570px"),this.renderer.setStyle(this.el.nativeElement,"width","var(--side-drawer-width)")}onResizeHandleMouseDown(e){this.resizingEvent={isResizing:!0,startingCursorX:e.clientX,startingWidth:this.sideDrawerWidth},e.preventDefault()}onMouseMove(e){if(!this.resizingEvent.isResizing)return;let A=e.clientX-this.resizingEvent.startingCursorX,i=this.resizingEvent.startingWidth+A;this.sideDrawerWidth=i,this.renderer.addClass(document.body,"resizing")}onMouseUp(){this.resizingEvent.isResizing=!1,this.renderer.removeClass(document.body,"resizing")}onResize(){this.sideDrawerMaxWidth=window.innerWidth/2,this.sideDrawerWidth=this.sideDrawerWidth}set sideDrawerWidth(e){let A=Math.min(Math.max(e,this.sideDrawerMinWidth),this.sideDrawerMaxWidth);document.documentElement.style.setProperty("--side-drawer-width",`${A}px`)}get sideDrawerWidth(){let e=getComputedStyle(document.documentElement).getPropertyValue("--side-drawer-width"),A=parseFloat(e);return isNaN(A)?500:A}static \u0275fac=function(A){return new(A||t)(Ge(se),Ge(qi))};static \u0275dir=WA({type:t,selectors:[["","appResizableDrawer",""]],hostBindings:function(A,i){A&1&&mA("mousemove",function(o){return i.onMouseMove(o)},!1,Wd)("mouseup",function(){return i.onMouseUp()},!1,Wd)("resize",function(){return i.onResize()},!1,dp)}})};var fmA=["audioPlayer"],qB=class t{base64data=bs("");audioPlayerRef=qs("audioPlayer");audioSrc="";constructor(){}ngOnChanges(e){e.base64data&&this.base64data()&&this.setAudioSource(this.base64data())}setAudioSource(e){e.startsWith("data:")?this.audioSrc=e:this.audioSrc=`data:audio/mpeg;base64,${e}`,this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&this.audioPlayerRef().nativeElement.load()}play(){this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&this.audioPlayerRef().nativeElement.play()}pause(){this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&this.audioPlayerRef().nativeElement.pause()}stop(){this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&(this.audioPlayerRef().nativeElement.pause(),this.audioPlayerRef().nativeElement.currentTime=0)}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-audio-player"]],viewQuery:function(A,i){A&1&&ls(i.audioPlayerRef,fmA,5),A&2&&yc()},inputs:{base64data:[1,"base64data"]},features:[Xt],decls:3,vars:1,consts:[["audioPlayer",""],["controls","",3,"src"]],template:function(A,i){A&1&&(S(0,"div"),TA(1,"audio",1,0),N()),A&2&&(_(),yA("src",i.audioSrc,js))},styles:[".audio-player-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;padding:15px;background-color:var(--audio-player-container-background-color);border-radius:8px;box-shadow:0 2px 5px var(--audio-player-container-box-shadow-color);margin:20px auto;max-width:350px}audio[_ngcontent-%COMP%]{outline:none;border-radius:5px;width:350px}.custom-controls[_ngcontent-%COMP%]{margin-top:10px;display:flex;gap:10px}.custom-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:8px 15px;border:none;border-radius:5px;background-color:var(--audio-player-custom-controls-button-background-color);color:var(--audio-player-custom-controls-button-color);cursor:pointer;font-size:14px;transition:background-color .2s ease}.custom-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background-color:var(--audio-player-custom-controls-button-hover-background-color)}"]})};function mmA(t,e){if(t&1&&TA(0,"img",5),t&2){let A=Y(2);yA("src",A.displayContent,js)}}function pmA(t,e){t&1&&(S(0,"div",6),AA(1," No image data provided. "),N())}function DmA(t,e){if(t&1&&(S(0,"div",3),FA(1,mmA,1,1,"img",5)(2,pmA,2,0,"div",6),N()),t&2){let A=Y();_(),_A(A.displayContent?1:-1),_(),_A(A.displayContent?-1:2)}}function wmA(t,e){if(t&1&&TA(0,"div",4),t&2){let A=Y();yA("innerHTML",A.displayContent,b2)}}var t1=class t{constructor(e,A,i){this.dialogRef=e;this.data=A;this.sanitizer=i}displayContent=null;isSvgContent=!1;ngOnInit(){this.processImageData()}processImageData(){let e=this.data.imageData;if(!e){this.displayContent=null,this.isSvgContent=!1;return}if(e.trim().includes("0?1:-1),_(3),Bt(" ",o.getArtifactName(i)," "),_(5),Za("ngModel",o.selectedArtifacts[n]),_(),Bn(o.getSortedArtifactsFromId(i)),_(7),_A((A=o.selectedArtifacts[n].mediaType)===o.MediaType.IMAGE?17:A===o.MediaType.AUDIO?18:-1)}}var SmA="default_artifact_name",gC=(n=>(n.IMAGE="image",n.AUDIO="audio",n.TEXT="text",n.UNSPECIFIED="unspecified",n))(gC||{});function P8(t){let e=t.toLowerCase();for(let A of Object.values(gC))if(A!=="unspecified"&&e.startsWith(A+"/"))return A;return"unspecified"}function RmA(t){return t?t.startsWith("image/"):!1}function LmA(t){return t?t.startsWith("audio/"):!1}var z8=class t{artifacts=bs([]);selectedArtifacts=[];isArtifactAudio=LmA;isArtifactImage=RmA;MediaType=gC;downloadService=f(OB);dialog=f(Fc);safeValuesService=f($2);ngOnChanges(e){if(e.artifacts){this.selectedArtifacts=[];for(let A of this.getDistinctArtifactIds())this.selectedArtifacts.push(this.getSortedArtifactsFromId(A)[0])}}downloadArtifact(e){this.downloadService.downloadBase64Data(e.data,e.mimeType,e.id)}getArtifactName(e){return e??SmA}getDistinctArtifactIds(){return[...new Set(this.artifacts().map(e=>e.id))]}getSortedArtifactsFromId(e){return this.artifacts().filter(A=>A.id===e).sort((A,i)=>i.versionId-A.versionId)}onArtifactVersionChange(e,A){this.selectedArtifacts[A]=e.value}openViewImageDialog(e){if(!e||!e.startsWith("data:")||e.indexOf(";base64,")===-1)return;let A=this.dialog.open(t1,{maxWidth:"90vw",maxHeight:"90vh",data:{imageData:e}})}openArtifact(e,A){if(this.isArtifactImage(A)){this.openViewImageDialog(e);return}this.openBase64InNewTab(e,A)}openBase64InNewTab(e,A){}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-artifact-tab"]],inputs:{artifacts:[1,"artifacts"]},features:[Xt],decls:3,vars:0,consts:[[1,"artifact-container"],[1,"artifact-box"],[1,"white-separator"],[1,"artifact-metadata"],[1,"link-style-button",3,"click"],[1,"version-select-container"],[3,"ngModelChange","selectionChange","ngModel"],[3,"value"],["mat-flat-button","",1,"download-button",3,"click"],["alt","artifact.id",1,"generated-image",3,"click","src"],[3,"base64data"]],template:function(A,i){A&1&&(S(0,"div",0),dn(1,kmA,19,4,"div",1,zn),N()),A&2&&(_(),Bn(i.getDistinctArtifactIds()))},dependencies:[YB,Mr,Ss,tc,K2,dr,_c,qB],styles:[".artifact-container[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.artifact-box[_ngcontent-%COMP%]{padding:10px;max-width:100%;margin-left:26px;display:flex;flex-direction:column}.artifact-metadata[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:15px;flex-wrap:wrap;gap:5px}.download-button[_ngcontent-%COMP%]{background-color:var(--artifact-tab-download-button-background-color)!important;margin-left:35px;width:130px;height:28px;font-size:14px}.generated-image[_ngcontent-%COMP%]{max-width:60%;border-radius:8px;cursor:pointer}hr.white-separator[_ngcontent-%COMP%]{border:none;border-top:1px solid var(--artifact-tab-white-separator-border-top-color);margin-bottom:1.2em;margin-right:15px}.version-select-container[_ngcontent-%COMP%]{background-color:var(--artifact-tab-version-select-container-background-color);width:80px;margin-left:15px}.link-style-button[_ngcontent-%COMP%]{background:none;border:none;padding:0;font:inherit;color:var(--artifact-tab-link-style-button-color)!important;text-decoration:underline;cursor:pointer;outline:none}.link-style-button[_ngcontent-%COMP%]:hover{color:var(--artifact-tab-link-style-button-hover-color);text-decoration:underline}.link-style-button[_ngcontent-%COMP%]:focus{outline:1px dotted var(--artifact-tab-link-style-button-focus-outline-color)}.link-style-button[_ngcontent-%COMP%]:active{color:var(--artifact-tab-link-style-button-active-color)}.link-style-button[_ngcontent-%COMP%]:disabled{color:var(--artifact-tab-link-style-button-disabled-color);text-decoration:none;cursor:not-allowed}"]})};var xmA=["mat-menu-item",""],NmA=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],FmA=["mat-icon, [matMenuItemIcon]","*"];function _mA(t,e){t&1&&(ur(),S(0,"svg",2),TA(1,"polygon",3),N())}var GmA=["*"];function KmA(t,e){if(t&1){let A=me();S(0,"div",0),mA("click",function(){QA(A);let n=Y();return uA(n.closed.emit("click"))})("animationstart",function(n){QA(A);let o=Y();return uA(o._onAnimationStart(n.animationName))})("animationend",function(n){QA(A);let o=Y();return uA(o._onAnimationDone(n.animationName))})("animationcancel",function(n){QA(A);let o=Y();return uA(o._onAnimationDone(n.animationName))}),S(1,"div",1),Ue(2),N()()}if(t&2){let A=Y();Ro(A._classList),he("mat-menu-panel-animations-disabled",A._animationsDisabled)("mat-menu-panel-exit-animation",A._panelAnimationState==="void")("mat-menu-panel-animating",A._isAnimating),yA("id",A.panelId),Ke("aria-label",A.ariaLabel||null)("aria-labelledby",A.ariaLabelledby||null)("aria-describedby",A.ariaDescribedby||null)}}var uR=new eA("MAT_MENU_PANEL"),Xh=(()=>{class t{_elementRef=f(se);_document=f(at);_focusMonitor=f(Jr);_parentMenu=f(uR,{optional:!0});_changeDetectorRef=f(Et);role="menuitem";disabled=!1;disableRipple=!1;_hovered=new qA;_focused=new qA;_highlighted=!1;_triggersSubmenu=!1;constructor(){f(Pn).load(Yr),this._parentMenu?.addItem?.(this)}focus(A,i){this._focusMonitor&&A?this._focusMonitor.focusVia(this._getHostElement(),A,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(A){this.disabled&&(A.preventDefault(),A.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){let A=this._elementRef.nativeElement.cloneNode(!0),i=A.querySelectorAll("mat-icon, .material-icons");for(let n=0;n{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_injector=f(Zt);_keyManager;_xPosition;_yPosition;_firstItemFocusRef;_exitFallbackTimeout;_animationsDisabled;_allItems;_directDescendantItems=new qa;_classList={};_panelAnimationState="void";_animationDone=new qA;_isAnimating=!1;parentMenu;direction;overlayPanelClass;backdropClass;ariaLabel;ariaLabelledby;ariaDescribedby;get xPosition(){return this._xPosition}set xPosition(A){this._xPosition=A,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(A){this._yPosition=A,this.setPositionClasses()}templateRef;items;lazyContent;overlapTrigger;hasBackdrop;set panelClass(A){let i=this._previousPanelClass,n=sA({},this._classList);i&&i.length&&i.split(" ").forEach(o=>{n[o]=!1}),this._previousPanelClass=A,A&&A.length&&(A.split(" ").forEach(o=>{n[o]=!0}),this._elementRef.nativeElement.className=""),this._classList=n}_previousPanelClass;get classList(){return this.panelClass}set classList(A){this.panelClass=A}closed=new YA;close=this.closed;panelId=f(an).getId("mat-menu-panel-");constructor(){let A=f(JmA);this.overlayPanelClass=A.overlayPanelClass||"",this._xPosition=A.xPosition,this._yPosition=A.yPosition,this.backdropClass=A.backdropClass,this.overlapTrigger=A.overlapTrigger,this.hasBackdrop=A.hasBackdrop,this._animationsDisabled=f(_i,{optional:!0})==="NoopAnimations"}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new zI(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(On(this._directDescendantItems),$n(A=>Hn(...A.map(i=>i._focused)))).subscribe(A=>this._keyManager.updateActiveItem(A)),this._directDescendantItems.changes.subscribe(A=>{let i=this._keyManager;if(this._panelAnimationState==="enter"&&i.activeItem?._hasFocus()){let n=A.toArray(),o=Math.max(0,Math.min(n.length-1,i.activeItemIndex||0));n[o]&&!n[o].disabled?i.setActiveItem(o):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusRef?.destroy(),clearTimeout(this._exitFallbackTimeout)}_hovered(){return this._directDescendantItems.changes.pipe(On(this._directDescendantItems),$n(i=>Hn(...i.map(n=>n._hovered))))}addItem(A){}removeItem(A){}_handleKeydown(A){let i=A.keyCode,n=this._keyManager;switch(i){case 27:sr(A)||(A.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&this.direction==="ltr"&&this.closed.emit("keydown");break;case 39:this.parentMenu&&this.direction==="rtl"&&this.closed.emit("keydown");break;default:(i===38||i===40)&&n.setFocusOrigin("keyboard"),n.onKeydown(A);return}}focusFirstItem(A="program"){this._firstItemFocusRef?.destroy(),this._firstItemFocusRef=Ir(()=>{let i=this._resolvePanel();if(!i||!i.contains(document.activeElement)){let n=this._keyManager;n.setFocusOrigin(A).setFirstItemActive(),!n.activeItem&&i&&i.focus()}},{injector:this._injector})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(A){}setPositionClasses(A=this.xPosition,i=this.yPosition){this._classList=Fe(sA({},this._classList),{"mat-menu-before":A==="before","mat-menu-after":A==="after","mat-menu-above":i==="above","mat-menu-below":i==="below"}),this._changeDetectorRef.markForCheck()}_onAnimationDone(A){let i=A===j8;(i||A===QR)&&(i&&(clearTimeout(this._exitFallbackTimeout),this._exitFallbackTimeout=void 0),this._animationDone.next(i?"void":"enter"),this._isAnimating=!1)}_onAnimationStart(A){(A===QR||A===j8)&&(this._isAnimating=!0)}_setIsOpen(A){if(this._panelAnimationState=A?"enter":"void",A){if(this._keyManager.activeItemIndex===0){let i=this._resolvePanel();i&&(i.scrollTop=0)}}else this._animationsDisabled||(this._exitFallbackTimeout=setTimeout(()=>this._onAnimationDone(j8),200));this._animationsDisabled&&setTimeout(()=>{this._onAnimationDone(A?QR:j8)}),this._changeDetectorRef.markForCheck()}_updateDirectDescendants(){this._allItems.changes.pipe(On(this._allItems)).subscribe(A=>{this._directDescendantItems.reset(A.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}_resolvePanel(){let A=null;return this._directDescendantItems.length&&(A=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),A}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-menu"]],contentQueries:function(i,n,o){if(i&1&&(gi(o,UmA,5),gi(o,Xh,5),gi(o,Xh,4)),i&2){let r;de(r=Be())&&(n.lazyContent=r.first),de(r=Be())&&(n._allItems=r),de(r=Be())&&(n.items=r)}},viewQuery:function(i,n){if(i&1&&st(mn,5),i&2){let o;de(o=Be())&&(n.templateRef=o.first)}},hostVars:3,hostBindings:function(i,n){i&2&&Ke("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[2,"overlapTrigger","overlapTrigger",ge],hasBackdrop:[2,"hasBackdrop","hasBackdrop",A=>A==null?null:ge(A)],panelClass:[0,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],features:[ut([{provide:uR,useExisting:t}])],ngContentSelectors:GmA,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel",3,"click","animationstart","animationend","animationcancel","id"],[1,"mat-mdc-menu-content"]],template:function(i,n){i&1&&($t(),FA(0,KmA,3,12,"ng-template"))},styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;outline:0}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-menu-item-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-menu-item-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-menu-item-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-menu-item-label-text-weight, var(--mat-sys-label-large-weight))}@keyframes _mat-menu-enter{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:none}}@keyframes _mat-menu-exit{from{opacity:1}to{opacity:0}}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;box-sizing:border-box;outline:0;animation:_mat-menu-enter 120ms cubic-bezier(0, 0, 0.2, 1);border-radius:var(--mat-menu-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-menu-container-color, var(--mat-sys-surface-container));box-shadow:var(--mat-menu-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));will-change:transform,opacity}.mat-mdc-menu-panel.mat-menu-panel-exit-animation{animation:_mat-menu-exit 100ms 25ms linear forwards}.mat-mdc-menu-panel.mat-menu-panel-animations-disabled{animation:none}.mat-mdc-menu-panel.mat-menu-panel-animating{pointer-events:none}.mat-mdc-menu-panel.mat-menu-panel-animating:has(.mat-mdc-menu-content:empty){display:none}@media(forced-colors: active){.mat-mdc-menu-panel{outline:solid 1px}}.mat-mdc-menu-panel .mat-divider{color:var(--mat-menu-divider-color, var(--mat-sys-surface-variant));margin-bottom:var(--mat-menu-divider-bottom-spacing, 8px);margin-top:var(--mat-menu-divider-top-spacing, 8px)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px;padding-left:var(--mat-menu-item-leading-spacing, 12px);padding-right:var(--mat-menu-item-trailing-spacing, 12px);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-menu-item::-moz-focus-inner{border:0}[dir=rtl] .mat-mdc-menu-item{padding-left:var(--mat-menu-item-trailing-spacing, 12px);padding-right:var(--mat-menu-item-leading-spacing, 12px)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-trailing-spacing, 12px)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-trailing-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-leading-spacing, 12px)}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item:focus{outline:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing, 12px);height:var(--mat-menu-item-icon-size, 24px);width:var(--mat-menu-item-icon-size, 24px)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing, 12px)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}@media(forced-colors: active){.mat-mdc-menu-item{margin-top:1px}}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size, 24px);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing, 12px)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing, 12px);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1);transform-origin:center}@media(forced-colors: active){.mat-mdc-menu-submenu-icon{fill:CanvasText}}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,changeDetection:0})}return t})(),Pq=new eA("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.reposition()}});function TmA(t){return()=>t.scrollStrategies.reposition()}var HmA={provide:Pq,deps:[Br],useFactory:TmA},zq=Sc({passive:!0});var Wh=new WeakMap,jq=(()=>{class t{_overlay=f(Br);_element=f(se);_viewContainerRef=f(Sn);_menuItemInstance=f(Xh,{optional:!0,self:!0});_dir=f(po,{optional:!0});_focusMonitor=f(Jr);_ngZone=f(ye);_scrollStrategy=f(Pq);_changeDetectorRef=f(Et);_portal;_overlayRef=null;_menuOpen=!1;_closingActionsSubscription=Kt.EMPTY;_hoverSubscription=Kt.EMPTY;_menuCloseSubscription=Kt.EMPTY;_pendingRemoval;_parentMaterialMenu;_parentInnerPadding;_handleTouchStart=A=>{ch(A)||(this._openedBy="touch")};_openedBy=void 0;get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(A){this.menu=A}get menu(){return this._menu}set menu(A){A!==this._menu&&(this._menu=A,this._menuCloseSubscription.unsubscribe(),A&&(this._parentMaterialMenu,this._menuCloseSubscription=A.close.subscribe(i=>{this._destroyMenu(i),(i==="click"||i==="tab")&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}_menu;menuData;restoreFocus=!0;menuOpened=new YA;onMenuOpen=this.menuOpened;menuClosed=new YA;onMenuClose=this.menuClosed;constructor(){let A=f(uR,{optional:!0});this._parentMaterialMenu=A instanceof VB?A:void 0,this._element.nativeElement.addEventListener("touchstart",this._handleTouchStart,zq)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this.menu&&this._ownsMenu(this.menu)&&Wh.delete(this.menu),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,zq),this._pendingRemoval?.unsubscribe(),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe(),this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null)}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){let A=this.menu;if(this._menuOpen||!A)return;this._pendingRemoval?.unsubscribe();let i=Wh.get(A);Wh.set(A,this),i&&i!==this&&i.closeMenu();let n=this._createOverlay(A),o=n.getConfig(),r=o.positionStrategy;this._setPosition(A,r),o.hasBackdrop=A.hasBackdrop==null?!this.triggersSubmenu():A.hasBackdrop,n.hasAttached()||(n.attach(this._getPortal(A)),A.lazyContent?.attach(this.menuData)),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),A.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,A.direction=this.dir,A.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0),A instanceof VB&&(A._setIsOpen(!0),A._directDescendantItems.changes.pipe(kt(A.close)).subscribe(()=>{r.withLockedPosition(!1).reapplyLastPosition(),r.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(A,i){this._focusMonitor&&A?this._focusMonitor.focusVia(this._element,A,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(A){let i=this._overlayRef,n=this._menu;!i||!this.menuOpen||(this._closingActionsSubscription.unsubscribe(),this._pendingRemoval?.unsubscribe(),n instanceof VB&&this._ownsMenu(n)?(this._pendingRemoval=n._animationDone.pipe(Xn(1)).subscribe(()=>{i.detach(),n.lazyContent?.detach()}),n._setIsOpen(!1)):(i.detach(),n?.lazyContent?.detach()),n&&this._ownsMenu(n)&&Wh.delete(n),this.restoreFocus&&(A==="keydown"||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,this._setIsMenuOpen(!1))}_setIsMenuOpen(A){A!==this._menuOpen&&(this._menuOpen=A,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(A),this._changeDetectorRef.markForCheck())}_createOverlay(A){if(!this._overlayRef){let i=this._getOverlayConfig(A);this._subscribeToPositions(A,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe(n=>{this.menu instanceof VB&&this.menu._handleKeydown(n)})}return this._overlayRef}_getOverlayConfig(A){return new Ml({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:A.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:A.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir||"ltr"})}_subscribeToPositions(A,i){A.setPositionClasses&&i.positionChanges.subscribe(n=>{this._ngZone.run(()=>{let o=n.connectionPair.overlayX==="start"?"after":"before",r=n.connectionPair.overlayY==="top"?"below":"above";A.setPositionClasses(o,r)})})}_setPosition(A,i){let[n,o]=A.xPosition==="before"?["end","start"]:["start","end"],[r,s]=A.yPosition==="above"?["bottom","top"]:["top","bottom"],[a,c]=[r,s],[g,I]=[n,o],C=0;if(this.triggersSubmenu()){if(I=n=A.xPosition==="before"?"start":"end",o=g=n==="end"?"start":"end",this._parentMaterialMenu){if(this._parentInnerPadding==null){let d=this._parentMaterialMenu.items.first;this._parentInnerPadding=d?d._getHostElement().offsetTop:0}C=r==="bottom"?this._parentInnerPadding:-this._parentInnerPadding}}else A.overlapTrigger||(a=r==="top"?"bottom":"top",c=s==="top"?"bottom":"top");i.withPositions([{originX:n,originY:a,overlayX:g,overlayY:r,offsetY:C},{originX:o,originY:a,overlayX:I,overlayY:r,offsetY:C},{originX:n,originY:c,overlayX:g,overlayY:s,offsetY:-C},{originX:o,originY:c,overlayX:I,overlayY:s,offsetY:-C}])}_menuClosingActions(){let A=this._overlayRef.backdropClick(),i=this._overlayRef.detachments(),n=this._parentMaterialMenu?this._parentMaterialMenu.closed:Ce(),o=this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(Nt(r=>this._menuOpen&&r!==this._menuItemInstance)):Ce();return Hn(A,n,o,i)}_handleMousedown(A){ah(A)||(this._openedBy=A.button===0?"mouse":void 0,this.triggersSubmenu()&&A.preventDefault())}_handleKeydown(A){let i=A.keyCode;(i===13||i===32)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(i===39&&this.dir==="ltr"||i===37&&this.dir==="rtl")&&(this._openedBy="keyboard",this.openMenu())}_handleClick(A){this.triggersSubmenu()?(A.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){this.triggersSubmenu()&&this._parentMaterialMenu&&(this._hoverSubscription=this._parentMaterialMenu._hovered().subscribe(A=>{A===this._menuItemInstance&&!A.disabled&&(this._openedBy="mouse",this.openMenu())}))}_getPortal(A){return(!this._portal||this._portal.templateRef!==A.templateRef)&&(this._portal=new Rs(A.templateRef,this._viewContainerRef)),this._portal}_ownsMenu(A){return Wh.get(A)===this}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(i,n){i&1&&mA("click",function(r){return n._handleClick(r)})("mousedown",function(r){return n._handleMousedown(r)})("keydown",function(r){return n._handleKeydown(r)}),i&2&&Ke("aria-haspopup",n.menu?"menu":null)("aria-expanded",n.menuOpen)("aria-controls",n.menuOpen?n.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[0,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[0,"matMenuTriggerFor","menu"],menuData:[0,"matMenuTriggerData","menuData"],restoreFocus:[0,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"]})}return t})(),qq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[HmA],imports:[WI,pn,Z2,j2,pn]})}return t})(),Vq={transformMenu:nc("transformMenu",[$s("void",Do({opacity:0,transform:"scale(0.8)"})),$r("void => enter",Is("120ms cubic-bezier(0, 0, 0.2, 1)",Do({opacity:1,transform:"scale(1)"}))),$r("* => void",Is("100ms 25ms linear",Do({opacity:0})))]),fadeInItems:nc("fadeInItems",[$s("showing",Do({opacity:1})),$r("void => *",[Do({opacity:0}),Is("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},kCe=Vq.fadeInItems,SCe=Vq.transformMenu;function zmA(t,e){t&1&&TA(0,"div",2)}var PmA=new eA("MAT_PROGRESS_BAR_DEFAULT_OPTIONS");var Wq=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);_changeDetectorRef=f(Et);_renderer=f(qi);_cleanupTransitionEnd;_animationMode=f(_i,{optional:!0});constructor(){let A=f(PmA,{optional:!0});this._isNoopAnimation=this._animationMode==="NoopAnimations",A&&(A.color&&(this.color=this._defaultColor=A.color),this.mode=A.mode||this.mode)}_isNoopAnimation=!1;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;_defaultColor="primary";get value(){return this._value}set value(A){this._value=Zq(A||0),this._changeDetectorRef.markForCheck()}_value=0;get bufferValue(){return this._bufferValue||0}set bufferValue(A){this._bufferValue=Zq(A||0),this._changeDetectorRef.markForCheck()}_bufferValue=0;animationEnd=new YA;get mode(){return this._mode}set mode(A){this._mode=A,this._changeDetectorRef.markForCheck()}_mode="determinate";ngAfterViewInit(){this._ngZone.runOutsideAngular(()=>{this._cleanupTransitionEnd=this._renderer.listen(this._elementRef.nativeElement,"transitionend",this._transitionendHandler)})}ngOnDestroy(){this._cleanupTransitionEnd?.()}_getPrimaryBarTransform(){return`scaleX(${this._isIndeterminate()?1:this.value/100})`}_getBufferBarFlexBasis(){return`${this.mode==="buffer"?this.bufferValue:100}%`}_isIndeterminate(){return this.mode==="indeterminate"||this.mode==="query"}_transitionendHandler=A=>{this.animationEnd.observers.length===0||!A.target||!A.target.classList.contains("mdc-linear-progress__primary-bar")||(this.mode==="determinate"||this.mode==="buffer")&&this._ngZone.run(()=>this.animationEnd.next({value:this.value}))};static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-progress-bar"]],hostAttrs:["role","progressbar","aria-valuemin","0","aria-valuemax","100","tabindex","-1",1,"mat-mdc-progress-bar","mdc-linear-progress"],hostVars:10,hostBindings:function(i,n){i&2&&(Ke("aria-valuenow",n._isIndeterminate()?null:n.value)("mode",n.mode),Ro("mat-"+n.color),he("_mat-animation-noopable",n._isNoopAnimation)("mdc-linear-progress--animation-ready",!n._isNoopAnimation)("mdc-linear-progress--indeterminate",n._isIndeterminate()))},inputs:{color:"color",value:[2,"value","value",en],bufferValue:[2,"bufferValue","bufferValue",en],mode:"mode"},outputs:{animationEnd:"animationEnd"},exportAs:["matProgressBar"],decls:7,vars:5,consts:[["aria-hidden","true",1,"mdc-linear-progress__buffer"],[1,"mdc-linear-progress__buffer-bar"],[1,"mdc-linear-progress__buffer-dots"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__primary-bar"],[1,"mdc-linear-progress__bar-inner"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__secondary-bar"]],template:function(i,n){i&1&&(S(0,"div",0),TA(1,"div",1),FA(2,zmA,1,0,"div",2),N(),S(3,"div",3),TA(4,"span",4),N(),S(5,"div",5),TA(6,"span",4),N()),i&2&&(_(),mo("flex-basis",n._getBufferBarFlexBasis()),_(),_A(n.mode==="buffer"?2:-1),_(),mo("transform",n._getPrimaryBarTransform()))},styles:[`.mat-mdc-progress-bar{display:block;text-align:start}.mat-mdc-progress-bar[mode=query]{transform:scaleX(-1)}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-dots,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__secondary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__bar-inner.mdc-linear-progress__bar-inner{animation:none}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-bar{transition:transform 1ms}.mdc-linear-progress{position:relative;width:100%;transform:translateZ(0);outline:1px solid rgba(0,0,0,0);overflow-x:hidden;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);height:max(var(--mdc-linear-progress-track-height, 4px),var(--mdc-linear-progress-active-indicator-height, 4px))}@media(forced-colors: active){.mdc-linear-progress{outline-color:CanvasText}}.mdc-linear-progress__bar{position:absolute;top:0;bottom:0;margin:auto 0;width:100%;animation:none;transform-origin:top left;transition:transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);height:var(--mdc-linear-progress-active-indicator-height, 4px)}.mdc-linear-progress--indeterminate .mdc-linear-progress__bar{transition:none}[dir=rtl] .mdc-linear-progress__bar{right:0;transform-origin:center right}.mdc-linear-progress__bar-inner{display:inline-block;position:absolute;width:100%;animation:none;border-top-style:solid;border-color:var(--mdc-linear-progress-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-linear-progress-active-indicator-height, 4px)}.mdc-linear-progress__buffer{display:flex;position:absolute;top:0;bottom:0;margin:auto 0;width:100%;overflow:hidden;height:var(--mdc-linear-progress-track-height, 4px);border-radius:var(--mdc-linear-progress-track-shape, var(--mat-sys-corner-none))}.mdc-linear-progress__buffer-dots{-webkit-mask-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E");background-repeat:repeat-x;flex:auto;transform:rotate(180deg);animation:mdc-linear-progress-buffering 250ms infinite linear;background-color:var(--mdc-linear-progress-track-color, var(--mat-sys-surface-variant))}@media(forced-colors: active){.mdc-linear-progress__buffer-dots{background-color:ButtonBorder}}[dir=rtl] .mdc-linear-progress__buffer-dots{animation:mdc-linear-progress-buffering-reverse 250ms infinite linear;transform:rotate(0)}.mdc-linear-progress__buffer-bar{flex:0 1 100%;transition:flex-basis 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);background-color:var(--mdc-linear-progress-track-color, var(--mat-sys-surface-variant))}.mdc-linear-progress__primary-bar{transform:scaleX(0)}.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{left:-145.166611%}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation:mdc-linear-progress-primary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-primary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation-name:mdc-linear-progress-primary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{right:-145.166611%;left:auto}.mdc-linear-progress__secondary-bar{display:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{left:-54.888891%;display:block}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation:mdc-linear-progress-secondary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-secondary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation-name:mdc-linear-progress-secondary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{right:-54.888891%;left:auto}@keyframes mdc-linear-progress-buffering{from{transform:rotate(180deg) translateX(calc(var(--mdc-linear-progress-track-height, 4px) * -2.5))}}@keyframes mdc-linear-progress-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(83.67142%)}100%{transform:translateX(200.611057%)}}@keyframes mdc-linear-progress-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(84.386165%)}100%{transform:translateX(160.277782%)}}@keyframes mdc-linear-progress-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-primary-indeterminate-translate-reverse{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(-83.67142%)}100%{transform:translateX(-200.611057%)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate-reverse{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(-37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(-84.386165%)}100%{transform:translateX(-160.277782%)}}@keyframes mdc-linear-progress-buffering-reverse{from{transform:translateX(-10px)}}`],encapsulation:2,changeDetection:0})}return t})();function Zq(t,e=0,A=100){return Math.max(e,Math.min(A,t))}var Xq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn]})}return t})();var q8=new eA("MARKDOWN_COMPONENT");var qmA={cancelEditingTooltip:"Cancel editing",saveEvalMessageTooltip:"Save eval case message",thoughtChipLabel:"Thought",outcomeLabel:"Outcome",outputLabel:"Output",actualToolUsesLabel:"Actual tool uses:",expectedToolUsesLabel:"Expected tool uses:",actualResponseLabel:"Actual response:",expectedResponseLabel:"Expected response:",matchScoreLabel:"Match score",thresholdLabel:"Threshold",evalPassLabel:"Pass",evalFailLabel:"Fail",editEvalMessageTooltip:"Edit eval case message",deleteEvalMessageTooltip:"Delete eval case message",editFunctionArgsTooltip:"Edit function arguments",typeMessagePlaceholder:"Type a Message...",uploadFileTooltip:"Upload local file",moreOptionsTooltip:"More options",updateStateMenuLabel:"Update state",turnOffMicTooltip:"Turn off microphone",useMicTooltip:"Use microphone",turnOffCamTooltip:"Turn off camera",useCamTooltip:"Use camera",updatedSessionStateChipLabel:"Updated session state"},$q=new eA("Chat Panel Messages",{factory:()=>qmA});var VmA=["videoContainer"],ZmA=["autoScroll"],WmA=["messageTextarea"],XmA=(t,e)=>({"user-message":t,"bot-message":e}),$mA=(t,e)=>({"eval-pass":t,"eval-fail":e}),ApA=(t,e)=>({"eval-fail":t,"message-card--highlighted":e}),epA=(t,e)=>({text:t,thought:e}),eV=t=>({"function-event-button-highlight":t}),hR=t=>({hidden:t});function tpA(t,e){if(t&1){let A=me();S(0,"button",13),mA("click",function(){QA(A);let n=Y().$index,o=Y(2);return uA(o.clickEvent.emit(n))}),S(1,"mat-icon",14),AA(2,"robot_2"),N()()}if(t&2){let A=Y().$index,i=Y(2);Ro(i.customIconColorClass(A)),yA("matTooltip",i.getAgentNameFromEvent(A))}}function ipA(t,e){t&1&&TA(0,"mat-progress-bar",15)}function npA(t,e){if(t&1&&TA(0,"img",20),t&2){let A=Y().$implicit;yA("src",A.url,js)}}function opA(t,e){if(t&1&&(S(0,"mat-icon"),AA(1,"insert_drive_file"),N(),S(2,"a",21),AA(3),N()),t&2){let A=Y().$implicit;_(2),yA("href",A.url,js),_(),tt(A.file.name)}}function rpA(t,e){if(t&1&&(S(0,"div",19),FA(1,npA,1,1,"img",20)(2,opA,4,2),N()),t&2){let A=e.$implicit;_(),_A(A.file.type.startsWith("image/")?1:-1),_(),_A(A.file.type.startsWith("image/")?-1:2)}}function spA(t,e){if(t&1&&(S(0,"div",16),dn(1,rpA,3,2,"div",19,zn),N()),t&2){let A=Y(2).$implicit;_(),Bn(A.attachments)}}function apA(t,e){if(t&1&&(S(0,"div",17),AA(1),N()),t&2){let A=Y(4);_(),tt(A.i18n.thoughtChipLabel)}}function cpA(t,e){if(t&1){let A=me();S(0,"div",22)(1,"textarea",24,2),mA("ngModelChange",function(n){QA(A);let o=Y(5);return uA(o.userEditEvalCaseMessageChange.emit(n))})("keydown",function(n){QA(A);let o=Y(3).$implicit,r=Y(2);return uA(r.handleKeydown.emit({event:n,message:o}))}),N(),S(3,"div",25)(4,"span",26),mA("click",function(){QA(A);let n=Y(3).$implicit,o=Y(2);return uA(o.cancelEditMessage.emit(n))}),AA(5," close "),N(),S(6,"span",27),mA("click",function(){QA(A);let n=Y(3).$implicit,o=Y(2);return uA(o.saveEditMessage.emit(n))}),AA(7," check "),N()()()}if(t&2){let A=Y(5);_(),yA("ngModel",A.userEditEvalCaseMessage),_(3),yA("matTooltip",A.i18n.cancelEditingTooltip),_(2),yA("matTooltip",A.i18n.saveEvalMessageTooltip)}}function gpA(t,e){if(t&1&&rr(0,23),t&2){let A=Y(3).$implicit,i=Y(2);yA("ngComponentOutlet",i.markdownComponent)("ngComponentOutletInputs",Bg(2,epA,A.text,A.thought))}}function lpA(t,e){if(t&1&&FA(0,cpA,8,3,"div",22)(1,gpA,1,5,"ng-container",23),t&2){let A=Y(2).$implicit;_A(A.isEditing?0:1)}}function IpA(t,e){if(t&1&&(S(0,"div"),TA(1,"div",28),N()),t&2){let A=Y(2).$implicit,i=Y(2);_(),yA("innerHTML",i.renderGooglerSearch(A.renderedContent),b2)}}function CpA(t,e){if(t&1&&(S(0,"code"),AA(1),N()),t&2){let A=Y(2).$implicit;_(),Bt(" ",A.executableCode.code," ")}}function dpA(t,e){if(t&1&&(S(0,"div")(1,"div"),AA(2),N(),S(3,"div"),AA(4),N()()),t&2){let A=Y(2).$implicit,i=Y(2);_(2),x2("",i.i18n.outcomeLabel,": ",A.codeExecutionResult.outcome,""),_(2),x2("",i.i18n.outputLabel,": ",A.codeExecutionResult.output,"")}}function BpA(t,e){if(t&1){let A=me();S(0,"div",29)(1,"img",30),mA("click",function(){QA(A);let n=Y(4).$implicit,o=Y(2);return uA(o.openViewImageDialog.emit(n.inlineData.data))}),N()()}if(t&2){let A=Y(4).$implicit;_(),yA("src",A.inlineData.data,js)}}function EpA(t,e){if(t&1&&(S(0,"div"),TA(1,"app-audio-player",31),N()),t&2){let A=Y(4).$implicit;_(),yA("base64data",A.inlineData.data)}}function QpA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",32)(2,"mat-icon"),AA(3,"description"),N(),S(4,"button",33),mA("click",function(){QA(A);let n=Y(4).$implicit,o=Y(2);return uA(o.openBase64InNewTab.emit({data:n.inlineData.data,mimeType:n.inlineData.mimeType}))}),AA(5),N()()()}if(t&2){let A=Y(4).$implicit;_(5),Bt(" ",A.inlineData.name," ")}}function upA(t,e){if(t&1){let A=me();S(0,"div")(1,"button",33),mA("click",function(){QA(A);let n=Y(4).$implicit,o=Y(2);return uA(o.openBase64InNewTab.emit({data:n.inlineData.data,mimeType:n.inlineData.mimeType}))}),AA(2),N()()}if(t&2){let A=Y(4).$implicit;_(2),Bt(" ",A.inlineData.name," ")}}function hpA(t,e){if(t&1&&(S(0,"div")(1,"div"),FA(2,BpA,2,1,"div",29)(3,EpA,2,1,"div")(4,QpA,6,1,"div")(5,upA,3,1,"div"),N()()),t&2){let A,i=Y(3).$implicit,n=Y(2);_(2),_A((A=i.inlineData.mediaType)===n.MediaType.IMAGE?2:A===n.MediaType.AUDIO?3:A===n.MediaType.TEXT?4:5)}}function fpA(t,e){if(t&1){let A=me();S(0,"div")(1,"img",34),mA("click",function(){QA(A);let n=Y(4).$implicit,o=Y(2);return uA(o.openViewImageDialog.emit(n.inlineData.data))}),N()()}if(t&2){let A=Y(4).$implicit;_(),yA("src",A.inlineData.data,js)}}function mpA(t,e){if(t&1&&(S(0,"div",19)(1,"mat-icon"),AA(2,"insert_drive_file"),N(),S(3,"a",21),AA(4),N()()),t&2){let A=Y(4).$implicit;_(3),yA("href",A.inlineData.data,js),_(),tt(A.inlineData.displayName)}}function ppA(t,e){if(t&1&&(S(0,"div"),FA(1,fpA,2,1,"div")(2,mpA,5,2,"div",19),N()),t&2){let A=Y(3).$implicit;_(),_A(A.inlineData.mimeType.startsWith("image/")?1:2)}}function DpA(t,e){if(t&1&&FA(0,hpA,6,1,"div")(1,ppA,3,1,"div"),t&2){let A=Y(2).$implicit;_A(A.role==="bot"?0:1)}}function wpA(t,e){if(t&1&&(S(0,"div",37)(1,"div",38),AA(2),N(),TA(3,"ngx-json-viewer",39),N(),S(4,"div",40)(5,"div",41),AA(6),N(),TA(7,"ngx-json-viewer",39),N()),t&2){let A=Y(3).$implicit,i=Y(2);_(2),tt(i.i18n.actualToolUsesLabel),_(),yA("json",A.actualInvocationToolUses),_(3),tt(i.i18n.expectedToolUsesLabel),_(),yA("json",A.expectedInvocationToolUses)}}function ypA(t,e){if(t&1&&(S(0,"div",37)(1,"div",38),AA(2),N(),S(3,"div"),AA(4),N()(),S(5,"div",40)(6,"div",41),AA(7),N(),S(8,"div"),AA(9),N()()),t&2){let A=Y(3).$implicit,i=Y(2);_(2),tt(i.i18n.actualResponseLabel),_(2),tt(A.actualFinalResponse),_(3),tt(i.i18n.expectedResponseLabel),_(2),tt(A.expectedFinalResponse)}}function vpA(t,e){if(t&1&&(S(0,"div",36)(1,"span",42),AA(2),N(),S(3,"span",43),AA(4),N()()),t&2){let A=Y(3).$implicit,i=Y(2);_(2),x2("",i.i18n.matchScoreLabel,": ",A.evalScore,""),_(2),x2("",i.i18n.thresholdLabel,": ",A.evalThreshold,"")}}function MpA(t,e){if(t&1&&(S(0,"div",18)(1,"div",35),FA(2,wpA,8,4)(3,ypA,10,4),N(),FA(4,vpA,5,4,"div",36),N()),t&2){let A=Y(2).$implicit;_(2),_A(A.actualInvocationToolUses?2:A.actualFinalResponse?3:-1),_(2),_A(A.evalScore!==void 0&&A.evalThreshold!==void 0?4:-1)}}function bpA(t,e){if(t&1&&(S(0,"mat-card",9),FA(1,ipA,1,0,"mat-progress-bar",15)(2,spA,3,0,"div",16),S(3,"div"),FA(4,apA,2,1,"div",17),S(5,"div"),FA(6,lpA,2,1),N(),FA(7,IpA,2,1,"div"),N(),FA(8,CpA,2,1,"code")(9,dpA,5,4,"div")(10,DpA,2,1)(11,MpA,5,2,"div",18),N()),t&2){let A=Y(),i=A.$implicit,n=A.$index,o=Y(2);yA("ngClass",Bg(10,ApA,i.evalStatus===2,o.shouldMessageHighlighted(n))),_(),_A(i.isLoading?1:-1),_(),_A(i.attachments?2:-1),_(2),_A(i.thought?4:-1),_(2),_A(i.text?6:-1),_(),_A(i.renderedContent?7:-1),_(),_A(i.executableCode?8:-1),_(),_A(i.codeExecutionResult?9:-1),_(),_A(i.inlineData?10:-1),_(),_A(i.failedMetric&&i.evalStatus===2?11:-1)}}function kpA(t,e){if(t&1){let A=me();S(0,"button",44),mA("click",function(){QA(A);let n=Y().$index,o=Y(2);return uA(o.clickEvent.emit(n))}),S(1,"mat-icon"),AA(2,"bolt"),N(),AA(3),N()}if(t&2){let A=Y(),i=A.$implicit,n=A.$index,o=Y(2);yA("ngClass",vc(2,eV,o.shouldMessageHighlighted(n))),_(3),Bt(" ",i.functionCall.name," ")}}function SpA(t,e){if(t&1){let A=me();S(0,"button",44),mA("click",function(){QA(A);let n=Y().$index,o=Y(2);return uA(o.clickEvent.emit(n))}),S(1,"mat-icon"),AA(2,"check"),N(),AA(3),N()}if(t&2){let A=Y(),i=A.$implicit,n=A.$index,o=Y(2);yA("ngClass",vc(2,eV,o.shouldMessageHighlighted(n))),_(3),Bt(" ",i.functionResponse.name," ")}}function RpA(t,e){if(t&1){let A=me();S(0,"div")(1,"span",45),mA("click",function(){QA(A);let n=Y(2).$implicit,o=Y(2);return uA(o.editEvalCaseMessage.emit(n))}),AA(2," edit "),N(),S(3,"span",45),mA("click",function(){QA(A);let n=Y(2),o=n.$implicit,r=n.$index,s=Y(2);return uA(s.deleteEvalCaseMessage.emit({message:o,index:r}))}),AA(4," delete "),N()()}if(t&2){let A=Y(4);_(),yA("ngClass",vc(4,hR,A.isEvalCaseEditing))("matTooltip",A.i18n.editEvalMessageTooltip),_(2),yA("ngClass",vc(6,hR,A.isEvalCaseEditing))("matTooltip",A.i18n.deleteEvalMessageTooltip)}}function LpA(t,e){if(t&1){let A=me();S(0,"div")(1,"span",45),mA("click",function(){QA(A);let n=Y(2).$implicit,o=Y(2);return uA(o.editFunctionArgs.emit(n))}),AA(2," edit "),N()()}if(t&2){let A=Y(4);_(),yA("ngClass",vc(2,hR,A.isEvalCaseEditing))("matTooltip",A.i18n.editFunctionArgsTooltip)}}function xpA(t,e){if(t&1&&FA(0,RpA,5,8,"div")(1,LpA,3,4,"div"),t&2){let A=Y().$implicit,i=Y(2);_A(A.text?0:i.isEditFunctionArgsEnabled&&A.functionCall?1:-1)}}function NpA(t,e){t&1&&(S(0,"button",12)(1,"mat-icon"),AA(2,"person"),N()())}function FpA(t,e){if(t&1&&(S(0,"div",7),FA(1,tpA,3,3,"button",8)(2,bpA,12,13,"mat-card",9)(3,kpA,4,4,"button",10)(4,SpA,4,4,"button",10),S(5,"div",7)(6,"span",11),AA(7),N(),S(8,"span"),AA(9),N()(),FA(10,xpA,2,1)(11,NpA,3,0,"button",12),N()),t&2){let A=e.$implicit,i=Y(2);yA("ngClass",Bg(10,XmA,A.role==="user",A.role==="bot")),_(),_A(A.role==="bot"?1:-1),_(),_A(!A.functionCall&&!A.functionResponse?2:-1),_(),_A(A.functionCall?3:-1),_(),_A(A.functionResponse?4:-1),_(),yA("ngClass",Bg(13,$mA,A.evalStatus===1,A.evalStatus===2)),_(2),tt(A.evalStatus===1?"check":A.evalStatus===2?"close":""),_(2),tt(A.evalStatus===1?i.i18n.evalPassLabel:A.evalStatus===2?i.i18n.evalFailLabel:""),_(),_A(i.evalCase&&A.role==="bot"&&i.isEvalEditMode?10:-1),_(),_A(A.role==="user"?11:-1)}}function _pA(t,e){if(t&1&&(S(0,"div",5,0),TA(2,"div",null,1),dn(4,FpA,12,16,"div",7,zn),N()),t&2){let A=Y();_(4),Bn(A.messages)}}function GpA(t,e){if(t&1){let A=me();S(0,"div",57),TA(1,"img",58),S(2,"button",59),mA("click",function(){QA(A);let n=Y().$index,o=Y(3);return uA(o.removeFile.emit(n))}),S(3,"mat-icon",60),AA(4,"close"),N()()()}if(t&2){let A=Y().$implicit;_(),yA("src",A.url,js)}}function KpA(t,e){if(t&1){let A=me();S(0,"div",56)(1,"button",59),mA("click",function(){QA(A);let n=Y().$index,o=Y(3);return uA(o.removeFile.emit(n))}),S(2,"mat-icon",60),AA(3,"close"),N()(),S(4,"div",61)(5,"mat-icon"),AA(6,"insert_drive_file"),N(),S(7,"span"),AA(8),N()()()}if(t&2){let A=Y().$implicit;_(8),tt(A.file.name)}}function UpA(t,e){if(t&1&&(S(0,"div"),FA(1,GpA,5,1,"div",57)(2,KpA,9,1,"div",56),N()),t&2){let A=e.$implicit;_(),_A(A.file.type.startsWith("image/")?1:A.file.type.startsWith("image/")?-1:2)}}function JpA(t,e){if(t&1){let A=me();S(0,"div",56)(1,"button",59),mA("click",function(){QA(A);let n=Y(3);return uA(n.removeStateUpdate.emit())}),S(2,"mat-icon",60),AA(3,"close"),N()(),S(4,"div",61)(5,"span"),AA(6),N()()()}if(t&2){let A=Y(3);_(6),tt(A.i18n.updatedSessionStateChipLabel)}}function YpA(t,e){if(t&1&&(S(0,"div",48),dn(1,UpA,3,1,"div",null,zn),FA(3,JpA,7,1,"div",56),N()),t&2){let A=Y(2);_(),Bn(A.selectedFiles),_(2),_A(A.updatedSessionState?3:-1)}}function TpA(t,e){if(t&1){let A=me();S(0,"div",6)(1,"input",46,3),mA("change",function(n){QA(A);let o=Y();return uA(o.fileSelect.emit(n))}),N(),S(3,"mat-form-field",47),FA(4,YpA,4,1,"div",48),S(5,"textarea",49),mA("ngModelChange",function(n){QA(A);let o=Y();return uA(o.userInputChange.emit(n))})("keydown.enter",function(n){QA(A);let o=Y();return uA(o.sendMessage.emit(n))}),N(),S(6,"div",50)(7,"div")(8,"button",51),eo(9,"async"),mA("click",function(){QA(A);let n=Cr(2);return uA(n.click())}),S(10,"mat-icon"),AA(11,"attach_file"),N()(),S(12,"button",52),eo(13,"async"),S(14,"mat-icon"),AA(15,"more_vert"),N()(),S(16,"mat-menu",null,4)(18,"span",53),mA("click",function(){QA(A);let n=Y();return uA(n.updateState.emit())}),AA(19),N()()(),S(20,"div")(21,"button",54),eo(22,"async"),mA("click",function(){QA(A);let n=Y();return uA(n.toggleAudioRecording.emit())}),S(23,"mat-icon"),AA(24,"mic"),N()(),S(25,"button",55),eo(26,"async"),mA("click",function(){QA(A);let n=Y();return uA(n.toggleVideoRecording.emit())}),S(27,"mat-icon"),AA(28,"videocam"),N()()()()()()}if(t&2){let A=Cr(17),i=Y();_(4),_A(i.selectedFiles.length&&i.appName!=""||i.updatedSessionState?4:-1),_(),yA("ngModel",i.userInput)("placeholder",i.i18n.typeMessagePlaceholder),_(3),yA("matTooltip",i.i18n.uploadFileTooltip)("disabled",!Yo(9,17,i.isMessageFileUploadEnabledObs)),_(4),yA("matMenuTriggerFor",A)("matTooltip",i.i18n.moreOptionsTooltip)("disabled",!Yo(13,19,i.isManualStateUpdateEnabledObs)),_(7),Bt(" ",i.i18n.updateStateMenuLabel," "),_(2),he("recording",i.isAudioRecording),yA("matTooltip",i.isAudioRecording?i.i18n.turnOffMicTooltip:i.i18n.useMicTooltip)("disabled",!Yo(22,21,i.isBidiStreamingEnabledObs)),_(4),he("recording",i.isVideoRecording),yA("matTooltip",i.isVideoRecording?i.i18n.turnOffCamTooltip:i.i18n.useCamTooltip)("disabled",!Yo(26,23,i.isBidiStreamingEnabledObs))}}var AV="root_agent",ZB=class t{constructor(e){this.sanitizer=e}appName="";messages=[];isChatMode=!0;evalCase=null;isEvalEditMode=!1;isEvalCaseEditing=!1;isEditFunctionArgsEnabled=!1;userInput="";userEditEvalCaseMessage="";selectedFiles=[];updatedSessionState=null;eventData=new Map;isAudioRecording=!1;isVideoRecording=!1;hoveredEventMessageIndices=[];userInputChange=new YA;userEditEvalCaseMessageChange=new YA;clickEvent=new YA;handleKeydown=new YA;cancelEditMessage=new YA;saveEditMessage=new YA;openViewImageDialog=new YA;openBase64InNewTab=new YA;editEvalCaseMessage=new YA;deleteEvalCaseMessage=new YA;editFunctionArgs=new YA;fileSelect=new YA;removeFile=new YA;removeStateUpdate=new YA;sendMessage=new YA;updateState=new YA;toggleAudioRecording=new YA;toggleVideoRecording=new YA;videoContainer;scrollContainer;textarea;scrollInterrupted=!1;previousMessageCount=0;i18n=f($q);stringToColorService=f(jB);markdownComponent=f(q8);featureFlagService=f(Gc);MediaType=gC;isMessageFileUploadEnabledObs=this.featureFlagService.isMessageFileUploadEnabled();isManualStateUpdateEnabledObs=this.featureFlagService.isManualStateUpdateEnabled();isBidiStreamingEnabledObs=this.featureFlagService.isBidiStreamingEnabled();ngAfterViewInit(){this.scrollContainer?.nativeElement&&(this.scrollContainer.nativeElement.addEventListener("wheel",()=>{this.scrollInterrupted=!0}),this.scrollContainer.nativeElement.addEventListener("touchmove",()=>{this.scrollInterrupted=!0}))}ngOnChanges(e){e.messages&&(this.messages.length>this.previousMessageCount&&(this.messages.slice(this.previousMessageCount).some(i=>i.role==="user")&&(this.scrollInterrupted=!1),this.scrollToBottom()),this.previousMessageCount=this.messages.length)}scrollToBottom(){!this.scrollInterrupted&&this.scrollContainer?.nativeElement&&setTimeout(()=>{this.scrollContainer.nativeElement.scrollTo({top:this.scrollContainer.nativeElement.scrollHeight,behavior:"auto"})},50)}getAgentNameFromEvent(e){let A=this.messages[e].eventId;return this.eventData.get(A)?.author??AV}customIconColorClass(e){let A=this.getAgentNameFromEvent(e);return A!==AV?`custom-icon-color-${this.stringToColorService.stc(A).replace("#","")}`:""}shouldMessageHighlighted(e){return this.hoveredEventMessageIndices.includes(e)}renderGooglerSearch(e){return this.sanitizer.bypassSecurityTrustHtml(e)}static \u0275fac=function(A){return new(A||t)(Ge(oc))};static \u0275cmp=jA({type:t,selectors:[["app-chat-panel"]],viewQuery:function(A,i){if(A&1&&(st(VmA,5,se),st(ZmA,5),st(WmA,5)),A&2){let n;de(n=Be())&&(i.videoContainer=n.first),de(n=Be())&&(i.scrollContainer=n.first),de(n=Be())&&(i.textarea=n.first)}},inputs:{appName:"appName",messages:"messages",isChatMode:"isChatMode",evalCase:"evalCase",isEvalEditMode:"isEvalEditMode",isEvalCaseEditing:"isEvalCaseEditing",isEditFunctionArgsEnabled:"isEditFunctionArgsEnabled",userInput:"userInput",userEditEvalCaseMessage:"userEditEvalCaseMessage",selectedFiles:"selectedFiles",updatedSessionState:"updatedSessionState",eventData:"eventData",isAudioRecording:"isAudioRecording",isVideoRecording:"isVideoRecording",hoveredEventMessageIndices:"hoveredEventMessageIndices"},outputs:{userInputChange:"userInputChange",userEditEvalCaseMessageChange:"userEditEvalCaseMessageChange",clickEvent:"clickEvent",handleKeydown:"handleKeydown",cancelEditMessage:"cancelEditMessage",saveEditMessage:"saveEditMessage",openViewImageDialog:"openViewImageDialog",openBase64InNewTab:"openBase64InNewTab",editEvalCaseMessage:"editEvalCaseMessage",deleteEvalCaseMessage:"deleteEvalCaseMessage",editFunctionArgs:"editFunctionArgs",fileSelect:"fileSelect",removeFile:"removeFile",removeStateUpdate:"removeStateUpdate",sendMessage:"sendMessage",updateState:"updateState",toggleAudioRecording:"toggleAudioRecording",toggleVideoRecording:"toggleVideoRecording"},features:[Xt],decls:2,vars:2,consts:[["autoScroll",""],["videoContainer",""],["messageTextarea",""],["fileInput",""],["moreMenu","matMenu"],[1,"chat-messages"],[1,"chat-input"],[3,"ngClass"],["mat-mini-fab","",3,"matTooltip","class"],[1,"message-card",3,"ngClass"],["mat-stroked-button","",1,"function-event-button",3,"ngClass"],[1,"material-symbols-outlined"],["mat-mini-fab",""],["mat-mini-fab","",3,"click","matTooltip"],["fontSet","material-symbols-outlined"],["mode","buffer",1,"loading-bar"],[1,"attachments"],[1,"thought-chip"],[1,"eval-compare-container"],[1,"attachment"],["alt","attachment",1,"image-preview-chat",3,"src"],["download","",3,"href"],[1,"edit-message-container"],[3,"ngComponentOutlet","ngComponentOutletInputs"],["rows","4","cols","80",1,"message-textarea",3,"ngModelChange","keydown","ngModel"],[1,"edit-message-buttons-container"],[1,"material-symbols-outlined","cancel-edit-button",3,"click","matTooltip"],[1,"material-symbols-outlined","save-edit-button",3,"click","matTooltip"],[3,"innerHTML"],[1,"generated-image-container"],["alt","image",1,"generated-image",3,"click","src"],[3,"base64data"],[1,"html-artifact-container"],[1,"link-style-button",3,"click"],["alt","image",1,"image-preview-chat",3,"click","src"],[1,"actual-expected-compare-container"],[1,"score-threshold-container"],[1,"actual-result"],[1,"eval-response-header","header-actual"],[3,"json"],[1,"expected-result"],[1,"eval-response-header","header-expected"],[1,"header-actual"],[1,"header-expected"],["mat-stroked-button","",1,"function-event-button",3,"click","ngClass"],[1,"material-symbols-outlined","eval-case-edit-button",3,"click","ngClass","matTooltip"],["type","file","multiple","","hidden","",3,"change"],["appearance","outline",1,"input-field"],[1,"file-preview"],["matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","1","cdkAutosizeMaxRows","10",1,"chat-input-box",3,"ngModelChange","keydown.enter","ngModel","placeholder"],[1,"chat-input-actions"],["mat-icon-button","",1,"function-event-button",3,"click","matTooltip","disabled"],["mat-icon-button","",1,"function-event-button",3,"matMenuTriggerFor","matTooltip","disabled"],["mat-menu-item","",3,"click"],["mat-icon-button","","matSuffix","",1,"audio-rec-btn",3,"click","matTooltip","disabled"],["mat-icon-button","","matSuffix","",1,"video-rec-btn",3,"click","matTooltip","disabled"],[1,"file-container"],[1,"image-container"],["alt","preview",1,"image-preview",3,"src"],["mat-icon-button","",1,"delete-button",3,"click"],["color","warn"],[1,"file-info"]],template:function(A,i){A&1&&FA(0,_pA,6,0,"div",5)(1,TpA,29,25,"div",6),A&2&&(_A(i.appName!=""?0:-1),_(),_A(i.appName!=""&&i.isChatMode?1:-1))},dependencies:[ug,Vs,Yu,Qg,Mr,kc,Ss,tc,Lq,_c,rq,y8,Xq,Wq,uB,dr,QB,u6,D6,J2,fl,Zz,eP,p6,U2,qq,VB,Xh,jq,Sl,X2,qB,IR,kl],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}.generated-image-container[_ngcontent-%COMP%]{max-width:400px}.generated-image[_ngcontent-%COMP%]{max-width:100%;min-width:40px;border-radius:8px}.html-artifact-container[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:flex-start;align-items:center}.loading-bar[_ngcontent-%COMP%]{width:100px;margin:15px}.chat-messages[_ngcontent-%COMP%]{flex-grow:1;overflow-y:auto;padding:20px;margin-top:16px}.message-card[_ngcontent-%COMP%]{padding:5px 20px;margin:5px;border-radius:20px;max-width:80%;font-size:14px;font-weight:400;position:relative;display:inline-block}.message-card.message-card--highlighted[_ngcontent-%COMP%]{background-color:var(--chat-panel-function-event-button-highlight-background-color)}.function-event-button[_ngcontent-%COMP%]{background-color:var(--chat-panel-function-event-button-background-color);margin:5px 5px 10px}.function-event-button-highlight[_ngcontent-%COMP%]{background-color:var(--chat-panel-function-event-button-highlight-background-color);border-color:var(--chat-panel-function-event-button-highlight-border-color)!important;color:var(--chat-panel-function-event-button-highlight-color)!important}.user-message[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center}.user-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-panel-user-message-message-card-background-color);align-self:flex-end;color:var(--chat-panel-user-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]{display:flex;align-items:center}.bot-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-panel-bot-message-message-card-background-color);align-self:flex-start;color:var(--chat-panel-bot-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]:focus-within .message-card[_ngcontent-%COMP%]{background-color:var(--chat-panel-bot-message-focus-within-message-card-background-color);border:1px solid var(--chat-panel-bot-message-focus-within-message-card-border-color)}.message-textarea[_ngcontent-%COMP%]{background-color:var(--chat-panel-message-textarea-background-color);max-width:100%;border:none;font-family:Google Sans,Helvetica Neue,sans-serif}.message-textarea[_ngcontent-%COMP%]:focus{background-color:var(--chat-panel-message-textarea-focus-background-color);outline:none}.edit-message-buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%]{visibility:hidden;position:absolute;left:10px;z-index:10;background-color:var(--chat-panel-eval-compare-container-background-color);overflow:hidden;border-radius:20px;padding:5px 20px;margin-bottom:10px;font-size:16px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .actual-result[_ngcontent-%COMP%]{border-right:2px solid var(--chat-panel-actual-result-border-right-color);padding-right:8px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .expected-result[_ngcontent-%COMP%]{padding-left:12px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%]:hover .eval-compare-container[_ngcontent-%COMP%]{visibility:visible}.actual-expected-compare-container[_ngcontent-%COMP%]{display:flex}.score-threshold-container[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:10px;align-items:center;margin-top:15px;font-size:14px;font-weight:600}.eval-response-header[_ngcontent-%COMP%]{padding-bottom:5px;border-bottom:2px solid var(--chat-panel-eval-response-header-border-bottom-color);font-style:italic;font-weight:700}.header-expected[_ngcontent-%COMP%]{color:var(--chat-panel-header-expected-color)}.header-actual[_ngcontent-%COMP%]{color:var(--chat-panel-header-actual-color)}.eval-case-edit-button[_ngcontent-%COMP%]{cursor:pointer;margin-left:4px;margin-right:4px}.eval-pass[_ngcontent-%COMP%]{display:flex;color:var(--chat-panel-eval-pass-color)}.eval-fail[_ngcontent-%COMP%]{display:flex;color:var(--chat-panel-eval-fail-color)}.hidden[_ngcontent-%COMP%]{visibility:hidden}.chat-input[_ngcontent-%COMP%]{display:flex;padding:10px;width:60%;margin:0 auto}.input-field[_ngcontent-%COMP%]{flex-grow:1}.input-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{color:var(--chat-panel-input-field-textarea-color);border:none;padding:10px;box-sizing:content-box}.input-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]::placeholder{color:var(--chat-panel-input-field-textarea-placeholder-color)}.input-field[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{color:var(--chat-panel-input-field-button-color);background-color:var(--chat-panel-input-field-button-background-color)}.chat-input-actions[_ngcontent-%COMP%]{width:106%;margin-top:10px;display:flex;justify-content:space-between;align-items:center;max-width:100%}.chat-input-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:10px;margin-right:10px}.file-preview[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px;margin-bottom:8px}.image-preview[_ngcontent-%COMP%]{width:40px;height:40px;object-fit:cover;border-radius:4px}.image-preview-chat[_ngcontent-%COMP%]{max-width:90%;max-height:70vh;width:auto;height:auto;border-radius:8px;cursor:pointer;transition:transform .2s ease-in-out}.attachment[_ngcontent-%COMP%]{display:flex;align-items:center}[_nghost-%COMP%] .mat-mdc-mini-fab{background-color:var(--chat-panel-mat-mdc-mini-fab-background-color)}[_nghost-%COMP%] .mat-mdc-mini-fab mat-icon{color:var(--chat-panel-mat-mdc-mini-fab-mat-icon-color)}[_nghost-%COMP%] .message-text p{white-space:pre-line;word-break:break-word;overflow-wrap:break-word}[_nghost-%COMP%] .input-field .mat-mdc-text-field-wrapper{border:1px solid var(--chat-panel-input-field-mat-mdc-text-field-wrapper-border-color);border-radius:16px}.image-container[_ngcontent-%COMP%]{position:relative;display:inline-block;border-radius:12px;overflow:hidden}.image-preview[_ngcontent-%COMP%]{display:block;width:100%;height:auto;border-radius:12px;width:80px;height:80px}.delete-button[_ngcontent-%COMP%]{position:absolute;top:1px;right:1px;background-color:var(--chat-panel-delete-button-background-color);border:none;border-radius:50%;padding:8px;cursor:pointer;color:var(--chat-panel-delete-button-color);display:flex;align-items:center;justify-content:center;margin-right:0;scale:.7}.delete-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px}.file-container[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;gap:8px;height:80px;background-color:var(--chat-panel-file-container-background-color);border-radius:12px}.file-info[_ngcontent-%COMP%]{margin-right:60px;padding-top:20px;padding-left:16px}.thought-chip[_ngcontent-%COMP%]{border-radius:5px;background-color:var(--chat-panel-thought-chip-background-color);width:80px;text-align:center;margin-top:5px}[_nghost-%COMP%] pre{white-space:pre-wrap;word-break:break-word;overflow-x:auto;max-width:100%}.link-style-button[_ngcontent-%COMP%]{background:none;border:none;padding:0;font:inherit;color:var(--chat-panel-link-style-button-color)!important;text-decoration:underline;cursor:pointer;outline:none;font-size:14px}.cancel-edit-button[_ngcontent-%COMP%]{width:24px;height:24px;color:var(--chat-mat-mdc-text-field-wrapper-border-color);cursor:pointer;margin-right:16px}.save-edit-button[_ngcontent-%COMP%]{width:24px;height:24px;color:var(--mat-sys-primary);cursor:pointer;margin-right:16px}.chat-input-box[_ngcontent-%COMP%]{caret-color:#fff}button.audio-rec-btn[_ngcontent-%COMP%], button.video-rec-btn[_ngcontent-%COMP%]{background-color:var(--chat-card-background-color)}button.audio-rec-btn.recording[_ngcontent-%COMP%], button.video-rec-btn.recording[_ngcontent-%COMP%]{background-color:var(--chat-panel-eval-fail-color)}"]})};function wo(t){return Array.isArray(t)}function Lo(t){return t!==null&&typeof t=="object"&&(t.constructor===void 0||t.constructor.name==="Object")}function fR(t){return t&&typeof t=="object"?t.op==="add":!1}function mR(t){return t&&typeof t=="object"?t.op==="remove":!1}function V8(t){return t&&typeof t=="object"?t.op==="replace":!1}function Z8(t){return t&&typeof t=="object"?t.op==="copy":!1}function i1(t){return t&&typeof t=="object"?t.op==="move":!1}function tV(t,e){return JSON.stringify(t)===JSON.stringify(e)}function HpA(t,e){return t===e}function pR(t){return t.slice(0,t.length-1)}function iV(t){return t[t.length-1]}function nV(t,e){let A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:HpA;if(t.length{e[A]=t[A]}),e}if(Lo(t)){let e=sA({},t);return Object.getOwnPropertySymbols(t).forEach(A=>{e[A]=t[A]}),e}return t}function yR(t,e,A){if(t[e]===A)return t;let i=wR(t);return i[e]=A,i}function Ye(t,e){let A=t,i=0;for(;i3&&arguments[3]!==void 0?arguments[3]:!1;if(e.length===0)return A;let n=e[0],o=Bs(t?t[n]:void 0,e.slice(1),A,i);if(Lo(t)||wo(t))return yR(t,n,o);if(i){let r=OpA.test(n)?[]:{};return r[n]=o,r}throw new Error("Path does not exist")}var OpA=/^\d+$/;function $h(t,e,A){if(e.length===0)return A(t);if(!DR(t))throw new Error("Path doesn't exist");let i=e[0],n=$h(t[i],e.slice(1),A);return yR(t,i,n)}function lC(t,e){if(e.length===0)return t;if(!DR(t))throw new Error("Path does not exist");if(e.length===1){let n=e[0];if(!(n in t))return t;let o=wR(t);return wo(o)&&o.splice(Number.parseInt(n),1),Lo(o)&&delete o[n],o}let A=e[0],i=lC(t[A],e.slice(1));return yR(t,A,i)}function A4(t,e,A){let i=e.slice(0,e.length-1),n=e[e.length-1];return $h(t,i,o=>{if(!Array.isArray(o))throw new TypeError(`Array expected at path ${JSON.stringify(i)}`);let r=wR(o);return r.splice(Number.parseInt(n),0,A),r})}function As(t,e){return t===void 0?!1:e.length===0?!0:t===null?!1:As(t[e[0]],e.slice(1))}function xs(t){let e=t.split("/");return e.shift(),e.map(A=>A.replace(/~1/g,"/").replace(/~0/g,"~"))}function It(t){return t.map(oV).join("")}function oV(t){return`/${String(t).replace(/~/g,"~0").replace(/\//g,"~1")}`}function e4(t,e){return t+oV(e)}function Ma(t,e,A){let i=t;for(let n=0;n{let s,a=ba(o,r.path);if(r.op==="add")s=aV(o,a);else if(r.op==="remove")s=sV(o,a);else if(r.op==="replace")s=rV(o,a);else if(r.op==="copy")s=$pA(o,a);else if(r.op==="move")s=A6A(o,a,t4(r.from));else if(r.op==="test")s=[];else throw new Error(`Unknown JSONPatch operation ${JSON.stringify(r)}`);let c;if(A?.before){let g=A.before(o,r,s);if(g?.revertOperations&&(s=g.revertOperations),g?.document&&(c=g.document),g?.json)throw new Error('Deprecation warning: returned object property ".json" has been renamed to ".document"')}if(i=s.concat(i),c!==void 0)return{document:c}}}),i}function rV(t,e){return As(t,e)?[{op:"replace",path:It(e),value:Ye(t,e)}]:[]}function sV(t,e){return[{op:"add",path:It(e),value:Ye(t,e)}]}function aV(t,e){return WB(t,e)||!As(t,e)?[{op:"remove",path:It(e)}]:rV(t,e)}function $pA(t,e){return aV(t,e)}function A6A(t,e,A){if(e.length="0"&&t<="9"}function IV(t){return t>=" "}function i4(t){return`,:[]/{}() + )`;let E=s+a+c+g;this._elementRef.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${E}px)`)}_isAttachedToDom(){let A=this._elementRef.nativeElement;if(A.getRootNode){let i=A.getRootNode();return i&&i!==A}return document.documentElement.contains(A)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-form-field"]],contentQueries:function(i,n,o){if(i&1&&(ZH(o,n._labelChild,m6,5),gi(o,gh,5),gi(o,EuA,5),gi(o,Vz,5),gi(o,BuA,5),gi(o,Tz,5)),i&2){yc();let r;de(r=Be())&&(n._formFieldControl=r.first),de(r=Be())&&(n._prefixChildren=r),de(r=Be())&&(n._suffixChildren=r),de(r=Be())&&(n._errorChildren=r),de(r=Be())&&(n._hintChildren=r)}},viewQuery:function(i,n){if(i&1&&(st(zQA,5),st(PQA,5),st(jQA,5),st(qQA,5),st(VQA,5),st(Hz,5),st(Pz,5),st(zz,5)),i&2){let o;de(o=Be())&&(n._textField=o.first),de(o=Be())&&(n._iconPrefixContainer=o.first),de(o=Be())&&(n._textPrefixContainer=o.first),de(o=Be())&&(n._iconSuffixContainer=o.first),de(o=Be())&&(n._textSuffixContainer=o.first),de(o=Be())&&(n._floatingLabel=o.first),de(o=Be())&&(n._notchedOutline=o.first),de(o=Be())&&(n._lineRipple=o.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,n){i&2&&he("mat-mdc-form-field-label-always-float",n._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",n._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",n._hasIconSuffix)("mat-form-field-invalid",n._control.errorState)("mat-form-field-disabled",n._control.disabled)("mat-form-field-autofilled",n._control.autofilled)("mat-form-field-no-animations",n._animationMode==="NoopAnimations")("mat-form-field-appearance-fill",n.appearance=="fill")("mat-form-field-appearance-outline",n.appearance=="outline")("mat-form-field-hide-placeholder",n._hasFloatingLabel()&&!n._shouldLabelFloat())("mat-focused",n._control.focused)("mat-primary",n.color!=="accent"&&n.color!=="warn")("mat-accent",n.color==="accent")("mat-warn",n.color==="warn")("ng-untouched",n._shouldForward("untouched"))("ng-touched",n._shouldForward("touched"))("ng-pristine",n._shouldForward("pristine"))("ng-dirty",n._shouldForward("dirty"))("ng-valid",n._shouldForward("valid"))("ng-invalid",n._shouldForward("invalid"))("ng-pending",n._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[ut([{provide:lh,useExisting:t},{provide:Wz,useExisting:t}])],ngContentSelectors:WQA,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,n){if(i&1){let o=me();$t(ZQA),NA(0,AuA,1,1,"ng-template",null,0,Gu),S(2,"div",6,1),mA("click",function(s){return QA(o),uA(n._control.onContainerClick(s))}),NA(4,euA,1,0,"div",7),S(5,"div",8),NA(6,nuA,2,2,"div",9)(7,ouA,3,0,"div",10)(8,ruA,3,0,"div",11),S(9,"div",12),NA(10,auA,1,1,null,13),Ue(11),N(),NA(12,cuA,3,0,"div",14)(13,guA,3,0,"div",15),N(),NA(14,luA,1,0,"div",16),N(),S(15,"div",17),NA(16,IuA,2,1,"div",18)(17,duA,5,2,"div",19),N()}if(i&2){let o;_(2),he("mdc-text-field--filled",!n._hasOutline())("mdc-text-field--outlined",n._hasOutline())("mdc-text-field--no-label",!n._hasFloatingLabel())("mdc-text-field--disabled",n._control.disabled)("mdc-text-field--invalid",n._control.errorState),_(2),_A(!n._hasOutline()&&!n._control.disabled?4:-1),_(2),_A(n._hasOutline()?6:-1),_(),_A(n._hasIconPrefix?7:-1),_(),_A(n._hasTextPrefix?8:-1),_(2),_A(!n._hasOutline()||n._forceDisplayInfixLabel()?10:-1),_(2),_A(n._hasTextSuffix?12:-1),_(),_A(n._hasIconSuffix?13:-1),_(),_A(n._hasOutline()?-1:14),_(),he("mat-mdc-form-field-subscript-dynamic-size",n.subscriptSizing==="dynamic"),_(),_A((o=n._getDisplayedMessages())==="error"?16:o==="hint"?17:-1)}},dependencies:[Hz,Pz,Hu,zz,Tz],styles:['.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-moz-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-webkit-input-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive:-ms-input-placeholder{opacity:0}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-filled-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-outlined-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color, var(--mat-sys-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 4%, transparent))}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)));padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px);padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}@media(forced-colors: active){.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-filled-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-filled-text-field-hover-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-filled-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-filled-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-filled-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-filled-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-filled-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-filled-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-outlined-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-outlined-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-outlined-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-outlined-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-outlined-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-outlined-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-outline-color, var(--mat-sys-outline));border-width:var(--mdc-outlined-text-field-outline-width, 1px)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-hover-outline-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-focus-outline-color, var(--mat-sys-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-hover-outline-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-focus-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mdc-outlined-text-field-focus-outline-width, 2px)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),100% - max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))*2)}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none;--mat-form-field-notch-max-width: 100%}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1;border-bottom-width:var(--mdc-filled-text-field-active-indicator-height, 1px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color, var(--mat-sys-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color, var(--mat-sys-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height, 2px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color, var(--mat-sys-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color, var(--mat-sys-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height, 56px);padding-top:var(--mat-form-field-filled-with-label-container-padding-top, 24px);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom, 8px)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding, 16px);padding-bottom:var(--mat-form-field-container-vertical-padding, 16px)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height, 56px)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height, 56px) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color, var(--mat-sys-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-sys-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-sys-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-sys-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity, 0)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color, var(--mat-sys-neutral10))}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color, color-mix(in srgb, var(--mat-sys-neutral10) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-sys-on-surface-variant))}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}@media(forced-colors: active){.mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}}@media(forced-colors: active){.mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-sys-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-sys-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-sys-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-sys-error))}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field-infix:has(textarea[cols]){width:auto}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[uuA.transitionMessages]},changeDetection:0})}return t})(),U2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,rh,pn]})}return t})();var $z=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-text-field-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:["textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}"],encapsulation:2,changeDetection:0})}return t})(),Xz=Sc({passive:!0}),AP=(()=>{class t{_platform=f(ni);_ngZone=f(ye);_styleLoader=f(Pn);_monitoredElements=new Map;constructor(){}monitor(A){if(!this._platform.isBrowser)return lr;this._styleLoader.load($z);let i=fa(A),n=this._monitoredElements.get(i);if(n)return n.subject;let o=new qA,r="cdk-text-field-autofilled",s=a=>{a.animationName==="cdk-text-field-autofill-start"&&!i.classList.contains(r)?(i.classList.add(r),this._ngZone.run(()=>o.next({target:a.target,isAutofilled:!0}))):a.animationName==="cdk-text-field-autofill-end"&&i.classList.contains(r)&&(i.classList.remove(r),this._ngZone.run(()=>o.next({target:a.target,isAutofilled:!1})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",s,Xz),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:o,unlisten:()=>{i.removeEventListener("animationstart",s,Xz)}}),o}stopMonitoring(A){let i=fa(A),n=this._monitoredElements.get(i);n&&(n.unlisten(),n.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((A,i)=>this.stopMonitoring(i))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var eP=(()=>{class t{_elementRef=f(se);_platform=f(ni);_ngZone=f(ye);_renderer=f(qi);_resizeEvents=new qA;_previousValue;_initialHeight;_destroyed=new qA;_listenerCleanups;_minRows;_maxRows;_enabled=!0;_previousMinRows=-1;_textareaElement;get minRows(){return this._minRows}set minRows(A){this._minRows=Zs(A),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(A){this._maxRows=Zs(A),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(A){this._enabled!==A&&((this._enabled=A)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(A){this._cachedPlaceholderHeight=void 0,A?this._textareaElement.setAttribute("placeholder",A):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}_cachedLineHeight;_cachedPlaceholderHeight;_document=f(at,{optional:!0});_hasFocus;_isViewInited=!1;constructor(){f(Pn).load($z),this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){let A=this.minRows&&this._cachedLineHeight?`${this.minRows*this._cachedLineHeight}px`:null;A&&(this._textareaElement.style.minHeight=A)}_setMaxHeight(){let A=this.maxRows&&this._cachedLineHeight?`${this.maxRows*this._cachedLineHeight}px`:null;A&&(this._textareaElement.style.maxHeight=A)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{this._listenerCleanups=[this._renderer.listen("window","resize",()=>this._resizeEvents.next()),this._renderer.listen(this._textareaElement,"focus",this._handleFocusEvent),this._renderer.listen(this._textareaElement,"blur",this._handleFocusEvent)],this._resizeEvents.pipe(Dd(16)).subscribe(()=>{this._cachedLineHeight=this._cachedPlaceholderHeight=void 0,this.resizeToFitContent(!0)})}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._listenerCleanups?.forEach(A=>A()),this._resizeEvents.complete(),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let A=this._textareaElement.cloneNode(!1),i=A.style;A.rows=1,i.position="absolute",i.visibility="hidden",i.border="none",i.padding="0",i.height="",i.minHeight="",i.maxHeight="",i.top=i.bottom=i.left=i.right="auto",i.overflow="hidden",this._textareaElement.parentNode.appendChild(A),this._cachedLineHeight=A.clientHeight,A.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){let A=this._textareaElement,i=A.style.marginBottom||"",n=this._platform.FIREFOX,o=n&&this._hasFocus,r=n?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";o&&(A.style.marginBottom=`${A.clientHeight}px`),A.classList.add(r);let s=A.scrollHeight-4;return A.classList.remove(r),o&&(A.style.marginBottom=i),s}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||this._cachedPlaceholderHeight!=null)return;if(!this.placeholder){this._cachedPlaceholderHeight=0;return}let A=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=A}_handleFocusEvent=A=>{this._hasFocus=A.type==="focus"};ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(A=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight))return;let i=this._elementRef.nativeElement,n=i.value;if(!A&&this._minRows===this._previousMinRows&&n===this._previousValue)return;let o=this._measureScrollHeight(),r=Math.max(o,this._cachedPlaceholderHeight||0);i.style.height=`${r}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=n,this._previousMinRows=this._minRows}reset(){this._initialHeight!==void 0&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_scrollToCaretPosition(A){let{selectionStart:i,selectionEnd:n}=A;!this._destroyed.isStopped&&this._hasFocus&&A.setSelectionRange(i,n)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,n){i&1&&mA("input",function(){return n._noopInputHandler()})},inputs:{minRows:[0,"cdkAutosizeMinRows","minRows"],maxRows:[0,"cdkAutosizeMaxRows","maxRows"],enabled:[2,"cdkTextareaAutosize","enabled",ge],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"]})}return t})(),p6=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();var wuA=new eA("MAT_INPUT_VALUE_ACCESSOR"),yuA=["button","checkbox","file","hidden","image","radio","range","reset","submit"],vuA=new eA("MAT_INPUT_CONFIG"),J2=(()=>{class t{_elementRef=f(se);_platform=f(ni);ngControl=f(ec,{optional:!0,self:!0});_autofillMonitor=f(AP);_ngZone=f(ye);_formField=f(lh,{optional:!0});_renderer=f(qi);_uid=f(an).getId("mat-input-");_previousNativeValue;_inputValueAccessor;_signalBasedValueAccessor;_previousPlaceholder;_errorStateTracker;_config=f(vuA,{optional:!0});_cleanupIosKeyup;_cleanupWebkitWheel;_formFieldDescribedBy;_isServer;_isNativeSelect;_isTextarea;_isInFormField;focused=!1;stateChanges=new qA;controlType="mat-input";autofilled=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=Ar(A),this.focused&&(this.focused=!1,this.stateChanges.next())}_disabled=!1;get id(){return this._id}set id(A){this._id=A||this._uid}_id;placeholder;name;get required(){return this._required??this.ngControl?.control?.hasValidator(Ac.required)??!1}set required(A){this._required=Ar(A)}_required;get type(){return this._type}set type(A){let i=this._type;this._type=A||"text",this._validateType(),!this._isTextarea&&Ck().has(this._type)&&(this._elementRef.nativeElement.type=this._type),this._type!==i&&this._ensureWheelDefaultBehavior()}_type="text";get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(A){this._errorStateTracker.matcher=A}userAriaDescribedBy;get value(){return this._signalBasedValueAccessor?this._signalBasedValueAccessor.value():this._inputValueAccessor.value}set value(A){A!==this.value&&(this._signalBasedValueAccessor?this._signalBasedValueAccessor.value.set(A):this._inputValueAccessor.value=A,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(A){this._readonly=Ar(A)}_readonly=!1;disabledInteractive;get errorState(){return this._errorStateTracker.errorState}set errorState(A){this._errorStateTracker.errorState=A}_neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(A=>Ck().has(A));constructor(){let A=f(ih,{optional:!0}),i=f(YI,{optional:!0}),n=f(d6),o=f(wuA,{optional:!0,self:!0}),r=this._elementRef.nativeElement,s=r.nodeName.toLowerCase();o?v2(o.value)?this._signalBasedValueAccessor=o:this._inputValueAccessor=o:this._inputValueAccessor=r,this._previousNativeValue=this.value,this.id=this.id,this._platform.IOS&&this._ngZone.runOutsideAngular(()=>{this._cleanupIosKeyup=this._renderer.listen(r,"keyup",this._iOSKeyupListener)}),this._errorStateTracker=new BB(n,this.ngControl,i,A,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect=s==="select",this._isTextarea=s==="textarea",this._isInFormField=!!this._formField,this.disabledInteractive=this._config?.disabledInteractive||!1,this._isNativeSelect&&(this.controlType=r.multiple?"mat-native-select-multiple":"mat-native-select"),this._signalBasedValueAccessor&&Ku(()=>{this._signalBasedValueAccessor.value(),this.stateChanges.next()})}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(A=>{this.autofilled=A.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._cleanupIosKeyup?.(),this._cleanupWebkitWheel?.()}ngDoCheck(){this.ngControl&&(this.updateErrorState(),this.ngControl.disabled!==null&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(A){this._elementRef.nativeElement.focus(A)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(A){if(A!==this.focused){if(!this._isNativeSelect&&A&&this.disabled&&this.disabledInteractive){let i=this._elementRef.nativeElement;i.type==="number"?(i.type="text",i.setSelectionRange(0,0),i.type="number"):i.setSelectionRange(0,0)}this.focused=A,this.stateChanges.next()}}_onInput(){}_dirtyCheckNativeValue(){let A=this._elementRef.nativeElement.value;this._previousNativeValue!==A&&(this._previousNativeValue=A,this.stateChanges.next())}_dirtyCheckPlaceholder(){let A=this._getPlaceholder();if(A!==this._previousPlaceholder){let i=this._elementRef.nativeElement;this._previousPlaceholder=A,A?i.setAttribute("placeholder",A):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){yuA.indexOf(this._type)>-1}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let A=this._elementRef.nativeElement.validity;return A&&A.badInput}get empty(){return!this._isNeverEmpty()&&!this._elementRef.nativeElement.value&&!this._isBadInput()&&!this.autofilled}get shouldLabelFloat(){if(this._isNativeSelect){let A=this._elementRef.nativeElement,i=A.options[0];return this.focused||A.multiple||!this.empty||!!(A.selectedIndex>-1&&i&&i.label)}else return this.focused&&!this.disabled||!this.empty}setDescribedByIds(A){let i=this._elementRef.nativeElement,n=i.getAttribute("aria-describedby"),o;if(n){let r=this._formFieldDescribedBy||A;o=A.concat(n.split(" ").filter(s=>s&&!r.includes(s)))}else o=A;this._formFieldDescribedBy=A,o.length?i.setAttribute("aria-describedby",o.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){let A=this._elementRef.nativeElement;return this._isNativeSelect&&(A.multiple||A.size>1)}_iOSKeyupListener=A=>{let i=A.target;!i.value&&i.selectionStart===0&&i.selectionEnd===0&&(i.setSelectionRange(1,1),i.setSelectionRange(0,0))};_webkitBlinkWheelListener=()=>{};_ensureWheelDefaultBehavior(){this._cleanupWebkitWheel?.(),this._type==="number"&&(this._platform.BLINK||this._platform.WEBKIT)&&(this._cleanupWebkitWheel=this._renderer.listen(this._elementRef.nativeElement,"wheel",this._webkitBlinkWheelListener))}_getReadonlyAttribute(){return this._isNativeSelect?null:this.readonly||this.disabled&&this.disabledInteractive?"true":null}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:21,hostBindings:function(i,n){i&1&&mA("focus",function(){return n._focusChanged(!0)})("blur",function(){return n._focusChanged(!1)})("input",function(){return n._onInput()}),i&2&&(Qa("id",n.id)("disabled",n.disabled&&!n.disabledInteractive)("required",n.required),Ke("name",n.name||null)("readonly",n._getReadonlyAttribute())("aria-disabled",n.disabled&&n.disabledInteractive?"true":null)("aria-invalid",n.empty&&n.required?null:n.errorState)("aria-required",n.required)("id",n.id),he("mat-input-server",n._isServer)("mat-mdc-form-field-textarea-control",n._isInFormField&&n._isTextarea)("mat-mdc-form-field-input-control",n._isInFormField)("mat-mdc-input-disabled-interactive",n.disabledInteractive)("mdc-text-field__input",n._isInFormField)("mat-mdc-native-select-inline",n._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly",disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge]},exportAs:["matInput"],features:[ut([{provide:gh,useExisting:t}]),Xt]})}return t})(),D6=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,U2,U2,p6,pn]})}return t})();var v6=new eA(""),Hk=(()=>{class t{_zone;_plugins;_eventNameToPlugin=new Map;constructor(A,i){this._zone=i,A.forEach(n=>{n.manager=this}),this._plugins=A.slice().reverse()}addEventListener(A,i,n,o){return this._findPluginFor(i).addEventListener(A,i,n,o)}getZone(){return this._zone}_findPluginFor(A){let i=this._eventNameToPlugin.get(A);if(i)return i;if(i=this._plugins.find(o=>o.supports(A)),!i)throw new te(5101,!1);return this._eventNameToPlugin.set(A,i),i}static \u0275fac=function(i){return new(i||t)(be(v6),be(ye))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),Ih=class{_doc;constructor(e){this._doc=e}manager},w6="ng-app-id";function tP(t){for(let e of t)e.remove()}function iP(t,e){let A=e.createElement("style");return A.textContent=t,A}function buA(t,e,A,i){let n=t.head?.querySelectorAll(`style[${w6}="${e}"],link[${w6}="${e}"]`);if(n)for(let o of n)o.removeAttribute(w6),o instanceof HTMLLinkElement?i.set(o.href.slice(o.href.lastIndexOf("/")+1),{usage:0,elements:[o]}):o.textContent&&A.set(o.textContent,{usage:0,elements:[o]})}function Yk(t,e){let A=e.createElement("link");return A.setAttribute("rel","stylesheet"),A.setAttribute("href",t),A}var Ok=(()=>{class t{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;isServer;constructor(A,i,n,o={}){this.doc=A,this.appId=i,this.nonce=n,this.isServer=Np(o),buA(A,i,this.inline,this.external),this.hosts.add(A.head)}addStyles(A,i){for(let n of A)this.addUsage(n,this.inline,iP);i?.forEach(n=>this.addUsage(n,this.external,Yk))}removeStyles(A,i){for(let n of A)this.removeUsage(n,this.inline);i?.forEach(n=>this.removeUsage(n,this.external))}addUsage(A,i,n){let o=i.get(A);o?o.usage++:i.set(A,{usage:1,elements:[...this.hosts].map(r=>this.addElement(r,n(A,this.doc)))})}removeUsage(A,i){let n=i.get(A);n&&(n.usage--,n.usage<=0&&(tP(n.elements),i.delete(A)))}ngOnDestroy(){for(let[,{elements:A}]of[...this.inline,...this.external])tP(A);this.hosts.clear()}addHost(A){this.hosts.add(A);for(let[i,{elements:n}]of this.inline)n.push(this.addElement(A,iP(i,this.doc)));for(let[i,{elements:n}]of this.external)n.push(this.addElement(A,Yk(i,this.doc)))}removeHost(A){this.hosts.delete(A)}addElement(A,i){return this.nonce&&i.setAttribute("nonce",this.nonce),this.isServer&&i.setAttribute(w6,this.appId),A.appendChild(i)}static \u0275fac=function(i){return new(i||t)(be(at),be(Vd),be(bu,8),be(El))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),Jk={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},zk=/%COMP%/g;var oP="%COMP%",kuA=`_nghost-${oP}`,SuA=`_ngcontent-${oP}`,RuA=!0,LuA=new eA("",{providedIn:"root",factory:()=>RuA});function xuA(t){return SuA.replace(zk,t)}function NuA(t){return kuA.replace(zk,t)}function rP(t,e){return e.map(A=>A.replace(zk,t))}var Bh=(()=>{class t{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;platformId;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;platformIsServer;constructor(A,i,n,o,r,s,a,c=null,g=null){this.eventManager=A,this.sharedStylesHost=i,this.appId=n,this.removeStylesOnCompDestroy=o,this.doc=r,this.platformId=s,this.ngZone=a,this.nonce=c,this.tracingService=g,this.platformIsServer=Np(s),this.defaultRenderer=new Ch(A,r,a,this.platformIsServer,this.tracingService)}createRenderer(A,i){if(!A||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===gl.ShadowDom&&(i=Fe(sA({},i),{encapsulation:gl.Emulated}));let n=this.getOrCreateRenderer(A,i);return n instanceof y6?n.applyToHost(A):n instanceof dh&&n.applyStyles(),n}getOrCreateRenderer(A,i){let n=this.rendererByCompId,o=n.get(i.id);if(!o){let r=this.doc,s=this.ngZone,a=this.eventManager,c=this.sharedStylesHost,g=this.removeStylesOnCompDestroy,I=this.platformIsServer,C=this.tracingService;switch(i.encapsulation){case gl.Emulated:o=new y6(a,c,i,this.appId,g,r,s,I,C);break;case gl.ShadowDom:return new Tk(a,c,A,i,r,s,this.nonce,I,C);default:o=new dh(a,c,i,g,r,s,I,C);break}n.set(i.id,o)}return o}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(A){this.rendererByCompId.delete(A)}static \u0275fac=function(i){return new(i||t)(be(Hk),be(Ok),be(Vd),be(LuA),be(at),be(El),be(ye),be(bu),be(Zd,8))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),Ch=class{eventManager;doc;ngZone;platformIsServer;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(e,A,i,n,o){this.eventManager=e,this.doc=A,this.ngZone=i,this.platformIsServer=n,this.tracingService=o}destroy(){}destroyNode=null;createElement(e,A){return A?this.doc.createElementNS(Jk[A]||A,e):this.doc.createElement(e)}createComment(e){return this.doc.createComment(e)}createText(e){return this.doc.createTextNode(e)}appendChild(e,A){(nP(e)?e.content:e).appendChild(A)}insertBefore(e,A,i){e&&(nP(e)?e.content:e).insertBefore(A,i)}removeChild(e,A){A.remove()}selectRootElement(e,A){let i=typeof e=="string"?this.doc.querySelector(e):e;if(!i)throw new te(-5104,!1);return A||(i.textContent=""),i}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,A,i,n){if(n){A=n+":"+A;let o=Jk[n];o?e.setAttributeNS(o,A,i):e.setAttribute(A,i)}else e.setAttribute(A,i)}removeAttribute(e,A,i){if(i){let n=Jk[i];n?e.removeAttributeNS(n,A):e.removeAttribute(`${i}:${A}`)}else e.removeAttribute(A)}addClass(e,A){e.classList.add(A)}removeClass(e,A){e.classList.remove(A)}setStyle(e,A,i,n){n&(ll.DashCase|ll.Important)?e.style.setProperty(A,i,n&ll.Important?"important":""):e.style[A]=i}removeStyle(e,A,i){i&ll.DashCase?e.style.removeProperty(A):e.style[A]=""}setProperty(e,A,i){e!=null&&(e[A]=i)}setValue(e,A){e.nodeValue=A}listen(e,A,i,n){if(typeof e=="string"&&(e=$a().getGlobalEventTarget(this.doc,e),!e))throw new te(5102,!1);let o=this.decoratePreventDefault(i);return this.tracingService?.wrapEventListener&&(o=this.tracingService.wrapEventListener(e,A,o)),this.eventManager.addEventListener(e,A,o,n)}decoratePreventDefault(e){return A=>{if(A==="__ngUnwrap__")return e;(this.platformIsServer?this.ngZone.runGuarded(()=>e(A)):e(A))===!1&&A.preventDefault()}}};function nP(t){return t.tagName==="TEMPLATE"&&t.content!==void 0}var Tk=class extends Ch{sharedStylesHost;hostEl;shadowRoot;constructor(e,A,i,n,o,r,s,a,c){super(e,o,r,a,c),this.sharedStylesHost=A,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);let g=n.styles;g=rP(n.id,g);for(let C of g){let d=document.createElement("style");s&&d.setAttribute("nonce",s),d.textContent=C,this.shadowRoot.appendChild(d)}let I=n.getExternalStyles?.();if(I)for(let C of I){let d=Yk(C,o);s&&d.setAttribute("nonce",s),this.shadowRoot.appendChild(d)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}appendChild(e,A){return super.appendChild(this.nodeOrShadowRoot(e),A)}insertBefore(e,A,i){return super.insertBefore(this.nodeOrShadowRoot(e),A,i)}removeChild(e,A){return super.removeChild(null,A)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}},dh=class extends Ch{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(e,A,i,n,o,r,s,a,c){super(e,o,r,s,a),this.sharedStylesHost=A,this.removeStylesOnCompDestroy=n;let g=i.styles;this.styles=c?rP(c,g):g,this.styleUrls=i.getExternalStyles?.(c)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},y6=class extends dh{contentAttr;hostAttr;constructor(e,A,i,n,o,r,s,a,c){let g=n+"-"+i.id;super(e,A,i,o,r,s,a,c,g),this.contentAttr=xuA(g),this.hostAttr=NuA(g)}applyToHost(e){this.applyStyles(),this.setAttribute(e,this.hostAttr,"")}createElement(e,A){let i=super.createElement(e,A);return super.setAttribute(i,this.contentAttr,""),i}};var M6=class t extends Uu{supportsDOMEvents=!0;static makeCurrent(){Fb(new t)}onAndCancel(e,A,i,n){return e.addEventListener(A,i,n),()=>{e.removeEventListener(A,i,n)}}dispatchEvent(e,A){e.dispatchEvent(A)}remove(e){e.remove()}createElement(e,A){return A=A||this.getDefaultDocument(),A.createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,A){return A==="window"?window:A==="document"?e:A==="body"?e.body:null}getBaseHref(e){let A=FuA();return A==null?null:_uA(A)}resetBaseElement(){Eh=null}getUserAgent(){return window.navigator.userAgent}getCookie(e){return zu(document.cookie,e)}},Eh=null;function FuA(){return Eh=Eh||document.head.querySelector("base"),Eh?Eh.getAttribute("href"):null}function _uA(t){return new URL(t,document.baseURI).pathname}var b6=class{addToWindow(e){Pa.getAngularTestability=(i,n=!0)=>{let o=e.findTestabilityInTree(i,n);if(o==null)throw new te(5103,!1);return o},Pa.getAllAngularTestabilities=()=>e.getAllTestabilities(),Pa.getAllAngularRootElements=()=>e.getAllRootElements();let A=i=>{let n=Pa.getAllAngularTestabilities(),o=n.length,r=function(){o--,o==0&&i()};n.forEach(s=>{s.whenStable(r)})};Pa.frameworkStabilizers||(Pa.frameworkStabilizers=[]),Pa.frameworkStabilizers.push(A)}findTestabilityInTree(e,A,i){if(A==null)return null;let n=e.getTestability(A);return n??(i?$a().isShadowRoot(A)?this.findTestabilityInTree(e,A.host,!0):this.findTestabilityInTree(e,A.parentElement,!0):null)}},GuA=(()=>{class t{build(){return new XMLHttpRequest}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),aP=(()=>{class t extends Ih{constructor(A){super(A)}supports(A){return!0}addEventListener(A,i,n,o){return A.addEventListener(i,n,o),()=>this.removeEventListener(A,i,n,o)}removeEventListener(A,i,n,o){return A.removeEventListener(i,n,o)}static \u0275fac=function(i){return new(i||t)(be(at))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),sP=["alt","control","meta","shift"],KuA={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},UuA={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey},cP=(()=>{class t extends Ih{constructor(A){super(A)}supports(A){return t.parseEventName(A)!=null}addEventListener(A,i,n,o){let r=t.parseEventName(i),s=t.eventCallback(r.fullKey,n,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>$a().onAndCancel(A,r.domEventName,s,o))}static parseEventName(A){let i=A.toLowerCase().split("."),n=i.shift();if(i.length===0||!(n==="keydown"||n==="keyup"))return null;let o=t._normalizeKey(i.pop()),r="",s=i.indexOf("code");if(s>-1&&(i.splice(s,1),r="code."),sP.forEach(c=>{let g=i.indexOf(c);g>-1&&(i.splice(g,1),r+=c+".")}),r+=o,i.length!=0||o.length===0)return null;let a={};return a.domEventName=n,a.fullKey=r,a}static matchEventFullKeyCode(A,i){let n=KuA[A.key]||A.key,o="";return i.indexOf("code.")>-1&&(n=A.code,o="code."),n==null||!n?!1:(n=n.toLowerCase(),n===" "?n="space":n==="."&&(n="dot"),sP.forEach(r=>{if(r!==n){let s=UuA[r];s(A)&&(o+=r+".")}}),o+=n,o===i)}static eventCallback(A,i,n){return o=>{t.matchEventFullKeyCode(o,A)&&n.runGuarded(()=>i(o))}}static _normalizeKey(A){return A==="esc"?"escape":A}static \u0275fac=function(i){return new(i||t)(be(at))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();function Pk(t,e,A){return sO(sA({rootComponent:t,platformRef:A?.platformRef},JuA(e)))}function JuA(t){return{appProviders:[...gP,...t?.providers??[]],platformProviders:OuA}}function YuA(){M6.makeCurrent()}function TuA(){return new Ps}function HuA(){return hT(document),document}var OuA=[{provide:El,useValue:xp},{provide:ZM,useValue:YuA,multi:!0},{provide:at,useFactory:HuA}];var zuA=[{provide:Fu,useClass:b6},{provide:pb,useClass:pp,deps:[ye,Dp,Fu]},{provide:pp,useClass:pp,deps:[ye,Dp,Fu]}],gP=[{provide:ip,useValue:"root"},{provide:Ps,useFactory:TuA},{provide:v6,useClass:aP,multi:!0,deps:[at]},{provide:v6,useClass:cP,multi:!0,deps:[at]},Bh,Ok,Hk,{provide:Ms,useExisting:Bh},{provide:KI,useClass:GuA},[]],jk=(()=>{class t{constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[...gP,...zuA],imports:[ug,rO]})}return t})();var lP=(()=>{class t{_doc;constructor(A){this._doc=A}getTitle(){return this._doc.title}setTitle(A){this._doc.title=A||""}static \u0275fac=function(i){return new(i||t)(be(at))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var oc=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:function(i){let n=null;return i?n=new(i||t):n=be(PuA),n},providedIn:"root"})}return t})(),PuA=(()=>{class t extends oc{_doc;constructor(A){super(),this._doc=A}sanitize(A,i){if(i==null)return null;switch(A){case Xr.NONE:return i;case Xr.HTML:return M2(i,"HTML")?dg(i):Ab(this._doc,String(i)).toString();case Xr.STYLE:return M2(i,"Style")?dg(i):i;case Xr.SCRIPT:if(M2(i,"Script"))return dg(i);throw new te(5200,!1);case Xr.URL:return M2(i,"URL")?dg(i):Cp(String(i));case Xr.RESOURCE_URL:if(M2(i,"ResourceURL"))return dg(i);throw new te(5201,!1);default:throw new te(5202,!1)}}bypassSecurityTrustHtml(A){return vT(A)}bypassSecurityTrustStyle(A){return MT(A)}bypassSecurityTrustScript(A){return bT(A)}bypassSecurityTrustUrl(A){return kT(A)}bypassSecurityTrustResourceUrl(A){return ST(A)}static \u0275fac=function(i){return new(i||t)(be(at))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function IP(t){return new te(3e3,!1)}function juA(){return new te(3100,!1)}function quA(){return new te(3101,!1)}function VuA(t){return new te(3001,!1)}function ZuA(t){return new te(3003,!1)}function WuA(t){return new te(3004,!1)}function dP(t,e){return new te(3005,!1)}function BP(){return new te(3006,!1)}function EP(){return new te(3007,!1)}function QP(t,e){return new te(3008,!1)}function uP(t){return new te(3002,!1)}function hP(t,e,A,i,n){return new te(3010,!1)}function fP(){return new te(3011,!1)}function mP(){return new te(3012,!1)}function pP(){return new te(3200,!1)}function DP(){return new te(3202,!1)}function wP(){return new te(3013,!1)}function yP(t){return new te(3014,!1)}function vP(t){return new te(3015,!1)}function MP(t){return new te(3016,!1)}function bP(t,e){return new te(3404,!1)}function XuA(t){return new te(3502,!1)}function kP(t){return new te(3503,!1)}function SP(){return new te(3300,!1)}function RP(t){return new te(3504,!1)}function LP(t){return new te(3301,!1)}function xP(t,e){return new te(3302,!1)}function NP(t){return new te(3303,!1)}function FP(t,e){return new te(3400,!1)}function _P(t){return new te(3401,!1)}function GP(t){return new te(3402,!1)}function KP(t,e){return new te(3505,!1)}function b0(t){switch(t.length){case 0:return new hl;case 1:return t[0];default:return new XI(t)}}function Wk(t,e,A=new Map,i=new Map){let n=[],o=[],r=-1,s=null;if(e.forEach(a=>{let c=a.get("offset"),g=c==r,I=g&&s||new Map;a.forEach((C,d)=>{let B=d,E=C;if(d!=="offset")switch(B=t.normalizePropertyName(B,n),E){case hB:E=A.get(d);break;case Rc:E=i.get(d);break;default:E=t.normalizeStyleValue(d,B,E,n);break}I.set(B,E)}),g||o.push(I),s=I,r=c}),n.length)throw XuA(n);return o}function k6(t,e,A,i){switch(e){case"start":t.onStart(()=>i(A&&qk(A,"start",t)));break;case"done":t.onDone(()=>i(A&&qk(A,"done",t)));break;case"destroy":t.onDestroy(()=>i(A&&qk(A,"destroy",t)));break}}function qk(t,e,A){let i=A.totalTime,n=!!A.disabled,o=S6(t.element,t.triggerName,t.fromState,t.toState,e||t.phaseName,i??t.totalTime,n),r=t._data;return r!=null&&(o._data=r),o}function S6(t,e,A,i,n="",o=0,r){return{element:t,triggerName:e,fromState:A,toState:i,phaseName:n,totalTime:o,disabled:!!r}}function ma(t,e,A){let i=t.get(e);return i||t.set(e,i=A),i}function Xk(t){let e=t.indexOf(":"),A=t.substring(1,e),i=t.slice(e+1);return[A,i]}var $uA=typeof document>"u"?null:document.documentElement;function R6(t){let e=t.parentNode||t.host||null;return e===$uA?null:e}function AhA(t){return t.substring(1,6)=="ebkit"}var $I=null,CP=!1;function UP(t){$I||($I=ehA()||{},CP=$I.style?"WebkitAppearance"in $I.style:!1);let e=!0;return $I.style&&!AhA(t)&&(e=t in $I.style,!e&&CP&&(e="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in $I.style)),e}function ehA(){return typeof document<"u"?document.body:null}function $k(t,e){for(;e;){if(e===t)return!0;e=R6(e)}return!1}function AS(t,e,A){if(A)return Array.from(t.querySelectorAll(e));let i=t.querySelector(e);return i?[i]:[]}var thA=1e3,eS="{{",ihA="}}",tS="ng-enter",L6="ng-leave",uh="ng-trigger",hh=".ng-trigger",iS="ng-animating",x6=".ng-animating";function ml(t){if(typeof t=="number")return t;let e=t.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:Vk(parseFloat(e[1]),e[2])}function Vk(t,e){switch(e){case"s":return t*thA;default:return t}}function fh(t,e,A){return t.hasOwnProperty("duration")?t:nhA(t,e,A)}function nhA(t,e,A){let i=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,n,o=0,r="";if(typeof t=="string"){let s=t.match(i);if(s===null)return e.push(IP(t)),{duration:0,delay:0,easing:""};n=Vk(parseFloat(s[1]),s[2]);let a=s[3];a!=null&&(o=Vk(parseFloat(a),s[4]));let c=s[5];c&&(r=c)}else n=t;if(!A){let s=!1,a=e.length;n<0&&(e.push(juA()),s=!0),o<0&&(e.push(quA()),s=!0),s&&e.splice(a,0,IP(t))}return{duration:n,delay:o,easing:r}}function JP(t){return t.length?t[0]instanceof Map?t:t.map(e=>new Map(Object.entries(e))):[]}function pg(t,e,A){e.forEach((i,n)=>{let o=N6(n);A&&!A.has(n)&&A.set(n,t.style[o]),t.style[o]=i})}function Y2(t,e){e.forEach((A,i)=>{let n=N6(i);t.style[n]=""})}function fB(t){return Array.isArray(t)?t.length==1?t[0]:Yz(t):t}function YP(t,e,A){let i=e.params||{},n=nS(t);n.length&&n.forEach(o=>{i.hasOwnProperty(o)||A.push(VuA(o))})}var Zk=new RegExp(`${eS}\\s*(.+?)\\s*${ihA}`,"g");function nS(t){let e=[];if(typeof t=="string"){let A;for(;A=Zk.exec(t);)e.push(A[1]);Zk.lastIndex=0}return e}function mB(t,e,A){let i=`${t}`,n=i.replace(Zk,(o,r)=>{let s=e[r];return s==null&&(A.push(ZuA(r)),s=""),s.toString()});return n==i?t:n}var ohA=/-+([a-z0-9])/g;function N6(t){return t.replace(ohA,(...e)=>e[1].toUpperCase())}function TP(t,e){return t===0||e===0}function HP(t,e,A){if(A.size&&e.length){let i=e[0],n=[];if(A.forEach((o,r)=>{i.has(r)||n.push(r),i.set(r,o)}),n.length)for(let o=1;or.set(s,F6(t,s)))}}return e}function pa(t,e,A){switch(e.type){case oi.Trigger:return t.visitTrigger(e,A);case oi.State:return t.visitState(e,A);case oi.Transition:return t.visitTransition(e,A);case oi.Sequence:return t.visitSequence(e,A);case oi.Group:return t.visitGroup(e,A);case oi.Animate:return t.visitAnimate(e,A);case oi.Keyframes:return t.visitKeyframes(e,A);case oi.Style:return t.visitStyle(e,A);case oi.Reference:return t.visitReference(e,A);case oi.AnimateChild:return t.visitAnimateChild(e,A);case oi.AnimateRef:return t.visitAnimateRef(e,A);case oi.Query:return t.visitQuery(e,A);case oi.Stagger:return t.visitStagger(e,A);default:throw WuA(e.type)}}function F6(t,e){return window.getComputedStyle(t)[e]}var mS=(()=>{class t{validateStyleProperty(A){return UP(A)}containsElement(A,i){return $k(A,i)}getParentElement(A){return R6(A)}query(A,i,n){return AS(A,i,n)}computeStyle(A,i,n){return n||""}animate(A,i,n,o,r,s=[],a){return new hl(n,o)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),eC=class{static NOOP=new mS},tC=class{};var rhA=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),J6=class extends tC{normalizePropertyName(e,A){return N6(e)}normalizeStyleValue(e,A,i,n){let o="",r=i.toString().trim();if(rhA.has(A)&&i!==0&&i!=="0")if(typeof i=="number")o="px";else{let s=i.match(/^[+-]?[\d\.]+([a-z]*)$/);s&&s[1].length==0&&n.push(dP(e,i))}return r+o}};var Y6="*";function shA(t,e){let A=[];return typeof t=="string"?t.split(/\s*,\s*/).forEach(i=>ahA(i,A,e)):A.push(t),A}function ahA(t,e,A){if(t[0]==":"){let a=chA(t,A);if(typeof a=="function"){e.push(a);return}t=a}let i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(i==null||i.length<4)return A.push(vP(t)),e;let n=i[1],o=i[2],r=i[3];e.push(OP(n,r));let s=n==Y6&&r==Y6;o[0]=="<"&&!s&&e.push(OP(r,n))}function chA(t,e){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(A,i)=>parseFloat(i)>parseFloat(A);case":decrement":return(A,i)=>parseFloat(i) *"}}var _6=new Set(["true","1"]),G6=new Set(["false","0"]);function OP(t,e){let A=_6.has(t)||G6.has(t),i=_6.has(e)||G6.has(e);return(n,o)=>{let r=t==Y6||t==n,s=e==Y6||e==o;return!r&&A&&typeof n=="boolean"&&(r=n?_6.has(t):G6.has(t)),!s&&i&&typeof o=="boolean"&&(s=o?_6.has(e):G6.has(e)),r&&s}}var Aj=":self",ghA=new RegExp(`s*${Aj}s*,?`,"g");function ej(t,e,A,i){return new gS(t).build(e,A,i)}var zP="",gS=class{_driver;constructor(e){this._driver=e}build(e,A,i){let n=new lS(A);return this._resetContextStyleTimingState(n),pa(this,fB(e),n)}_resetContextStyleTimingState(e){e.currentQuerySelector=zP,e.collectedStyles=new Map,e.collectedStyles.set(zP,new Map),e.currentTime=0}visitTrigger(e,A){let i=A.queryCount=0,n=A.depCount=0,o=[],r=[];return e.name.charAt(0)=="@"&&A.errors.push(BP()),e.definitions.forEach(s=>{if(this._resetContextStyleTimingState(A),s.type==oi.State){let a=s,c=a.name;c.toString().split(/\s*,\s*/).forEach(g=>{a.name=g,o.push(this.visitState(a,A))}),a.name=c}else if(s.type==oi.Transition){let a=this.visitTransition(s,A);i+=a.queryCount,n+=a.depCount,r.push(a)}else A.errors.push(EP())}),{type:oi.Trigger,name:e.name,states:o,transitions:r,queryCount:i,depCount:n,options:null}}visitState(e,A){let i=this.visitStyle(e.styles,A),n=e.options&&e.options.params||null;if(i.containsDynamicStyles){let o=new Set,r=n||{};i.styles.forEach(s=>{s instanceof Map&&s.forEach(a=>{nS(a).forEach(c=>{r.hasOwnProperty(c)||o.add(c)})})}),o.size&&A.errors.push(QP(e.name,[...o.values()]))}return{type:oi.State,name:e.name,style:i,options:n?{params:n}:null}}visitTransition(e,A){A.queryCount=0,A.depCount=0;let i=pa(this,fB(e.animation),A),n=shA(e.expr,A.errors);return{type:oi.Transition,matchers:n,animation:i,queryCount:A.queryCount,depCount:A.depCount,options:AC(e.options)}}visitSequence(e,A){return{type:oi.Sequence,steps:e.steps.map(i=>pa(this,i,A)),options:AC(e.options)}}visitGroup(e,A){let i=A.currentTime,n=0,o=e.steps.map(r=>{A.currentTime=i;let s=pa(this,r,A);return n=Math.max(n,A.currentTime),s});return A.currentTime=n,{type:oi.Group,steps:o,options:AC(e.options)}}visitAnimate(e,A){let i=dhA(e.timings,A.errors);A.currentAnimateTimings=i;let n,o=e.styles?e.styles:Do({});if(o.type==oi.Keyframes)n=this.visitKeyframes(o,A);else{let r=e.styles,s=!1;if(!r){s=!0;let c={};i.easing&&(c.easing=i.easing),r=Do(c)}A.currentTime+=i.duration+i.delay;let a=this.visitStyle(r,A);a.isEmptyStep=s,n=a}return A.currentAnimateTimings=null,{type:oi.Animate,timings:i,style:n,options:null}}visitStyle(e,A){let i=this._makeStyleAst(e,A);return this._validateStyleAst(i,A),i}_makeStyleAst(e,A){let i=[],n=Array.isArray(e.styles)?e.styles:[e.styles];for(let s of n)typeof s=="string"?s===Rc?i.push(s):A.errors.push(uP(s)):i.push(new Map(Object.entries(s)));let o=!1,r=null;return i.forEach(s=>{if(s instanceof Map&&(s.has("easing")&&(r=s.get("easing"),s.delete("easing")),!o)){for(let a of s.values())if(a.toString().indexOf(eS)>=0){o=!0;break}}}),{type:oi.Style,styles:i,easing:r,offset:e.offset,containsDynamicStyles:o,options:null}}_validateStyleAst(e,A){let i=A.currentAnimateTimings,n=A.currentTime,o=A.currentTime;i&&o>0&&(o-=i.duration+i.delay),e.styles.forEach(r=>{typeof r!="string"&&r.forEach((s,a)=>{let c=A.collectedStyles.get(A.currentQuerySelector),g=c.get(a),I=!0;g&&(o!=n&&o>=g.startTime&&n<=g.endTime&&(A.errors.push(hP(a,g.startTime,g.endTime,o,n)),I=!1),o=g.startTime),I&&c.set(a,{startTime:o,endTime:n}),A.options&&YP(s,A.options,A.errors)})})}visitKeyframes(e,A){let i={type:oi.Keyframes,styles:[],options:null};if(!A.currentAnimateTimings)return A.errors.push(fP()),i;let n=1,o=0,r=[],s=!1,a=!1,c=0,g=e.steps.map(h=>{let w=this._makeStyleAst(h,A),x=w.offset!=null?w.offset:ChA(w.styles),R=0;return x!=null&&(o++,R=w.offset=x),a=a||R<0||R>1,s=s||R0&&o{let x=C>0?w==d?1:C*w:r[w],R=x*u;A.currentTime=B+E.delay+R,E.duration=R,this._validateStyleAst(h,A),h.offset=x,i.styles.push(h)}),i}visitReference(e,A){return{type:oi.Reference,animation:pa(this,fB(e.animation),A),options:AC(e.options)}}visitAnimateChild(e,A){return A.depCount++,{type:oi.AnimateChild,options:AC(e.options)}}visitAnimateRef(e,A){return{type:oi.AnimateRef,animation:this.visitReference(e.animation,A),options:AC(e.options)}}visitQuery(e,A){let i=A.currentQuerySelector,n=e.options||{};A.queryCount++,A.currentQuery=e;let[o,r]=lhA(e.selector);A.currentQuerySelector=i.length?i+" "+o:o,ma(A.collectedStyles,A.currentQuerySelector,new Map);let s=pa(this,fB(e.animation),A);return A.currentQuery=null,A.currentQuerySelector=i,{type:oi.Query,selector:o,limit:n.limit||0,optional:!!n.optional,includeSelf:r,animation:s,originalSelector:e.selector,options:AC(e.options)}}visitStagger(e,A){A.currentQuery||A.errors.push(wP());let i=e.timings==="full"?{duration:0,delay:0,easing:"full"}:fh(e.timings,A.errors,!0);return{type:oi.Stagger,animation:pa(this,fB(e.animation),A),timings:i,options:null}}};function lhA(t){let e=!!t.split(/\s*,\s*/).find(A=>A==Aj);return e&&(t=t.replace(ghA,"")),t=t.replace(/@\*/g,hh).replace(/@\w+/g,A=>hh+"-"+A.slice(1)).replace(/:animating/g,x6),[t,e]}function IhA(t){return t?sA({},t):null}var lS=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(e){this.errors=e}};function ChA(t){if(typeof t=="string")return null;let e=null;if(Array.isArray(t))t.forEach(A=>{if(A instanceof Map&&A.has("offset")){let i=A;e=parseFloat(i.get("offset")),i.delete("offset")}});else if(t instanceof Map&&t.has("offset")){let A=t;e=parseFloat(A.get("offset")),A.delete("offset")}return e}function dhA(t,e){if(t.hasOwnProperty("duration"))return t;if(typeof t=="number"){let o=fh(t,e).duration;return oS(o,0,"")}let A=t;if(A.split(/\s+/).some(o=>o.charAt(0)=="{"&&o.charAt(1)=="{")){let o=oS(0,0,"");return o.dynamic=!0,o.strValue=A,o}let n=fh(A,e);return oS(n.duration,n.delay,n.easing)}function AC(t){return t?(t=sA({},t),t.params&&(t.params=IhA(t.params))):t={},t}function oS(t,e,A){return{duration:t,delay:e,easing:A}}function pS(t,e,A,i,n,o,r=null,s=!1){return{type:1,element:t,keyframes:e,preStyleProps:A,postStyleProps:i,duration:n,delay:o,totalTime:n+o,easing:r,subTimeline:s}}var ph=class{_map=new Map;get(e){return this._map.get(e)||[]}append(e,A){let i=this._map.get(e);i||this._map.set(e,i=[]),i.push(...A)}has(e){return this._map.has(e)}clear(){this._map.clear()}},BhA=1,EhA=":enter",QhA=new RegExp(EhA,"g"),uhA=":leave",hhA=new RegExp(uhA,"g");function tj(t,e,A,i,n,o=new Map,r=new Map,s,a,c=[]){return new IS().buildKeyframes(t,e,A,i,n,o,r,s,a,c)}var IS=class{buildKeyframes(e,A,i,n,o,r,s,a,c,g=[]){c=c||new ph;let I=new CS(e,A,c,n,o,g,[]);I.options=a;let C=a.delay?ml(a.delay):0;I.currentTimeline.delayNextStep(C),I.currentTimeline.setStyles([r],null,I.errors,a),pa(this,i,I);let d=I.timelines.filter(B=>B.containsAnimation());if(d.length&&s.size){let B;for(let E=d.length-1;E>=0;E--){let u=d[E];if(u.element===A){B=u;break}}B&&!B.allowOnlyTimelineStyles()&&B.setStyles([s],null,I.errors,a)}return d.length?d.map(B=>B.buildKeyframes()):[pS(A,[],[],[],0,C,"",!1)]}visitTrigger(e,A){}visitState(e,A){}visitTransition(e,A){}visitAnimateChild(e,A){let i=A.subInstructions.get(A.element);if(i){let n=A.createSubContext(e.options),o=A.currentTimeline.currentTime,r=this._visitSubInstructions(i,n,n.options);o!=r&&A.transformIntoNewTimeline(r)}A.previousNode=e}visitAnimateRef(e,A){let i=A.createSubContext(e.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([e.options,e.animation.options],A,i),this.visitReference(e.animation,i),A.transformIntoNewTimeline(i.currentTimeline.currentTime),A.previousNode=e}_applyAnimationRefDelays(e,A,i){for(let n of e){let o=n?.delay;if(o){let r=typeof o=="number"?o:ml(mB(o,n?.params??{},A.errors));i.delayNextStep(r)}}}_visitSubInstructions(e,A,i){let o=A.currentTimeline.currentTime,r=i.duration!=null?ml(i.duration):null,s=i.delay!=null?ml(i.delay):null;return r!==0&&e.forEach(a=>{let c=A.appendInstructionToTimeline(a,r,s);o=Math.max(o,c.duration+c.delay)}),o}visitReference(e,A){A.updateOptions(e.options,!0),pa(this,e.animation,A),A.previousNode=e}visitSequence(e,A){let i=A.subContextCount,n=A,o=e.options;if(o&&(o.params||o.delay)&&(n=A.createSubContext(o),n.transformIntoNewTimeline(),o.delay!=null)){n.previousNode.type==oi.Style&&(n.currentTimeline.snapshotCurrentStyles(),n.previousNode=T6);let r=ml(o.delay);n.delayNextStep(r)}e.steps.length&&(e.steps.forEach(r=>pa(this,r,n)),n.currentTimeline.applyStylesToKeyframe(),n.subContextCount>i&&n.transformIntoNewTimeline()),A.previousNode=e}visitGroup(e,A){let i=[],n=A.currentTimeline.currentTime,o=e.options&&e.options.delay?ml(e.options.delay):0;e.steps.forEach(r=>{let s=A.createSubContext(e.options);o&&s.delayNextStep(o),pa(this,r,s),n=Math.max(n,s.currentTimeline.currentTime),i.push(s.currentTimeline)}),i.forEach(r=>A.currentTimeline.mergeTimelineCollectedStyles(r)),A.transformIntoNewTimeline(n),A.previousNode=e}_visitTiming(e,A){if(e.dynamic){let i=e.strValue,n=A.params?mB(i,A.params,A.errors):i;return fh(n,A.errors)}else return{duration:e.duration,delay:e.delay,easing:e.easing}}visitAnimate(e,A){let i=A.currentAnimateTimings=this._visitTiming(e.timings,A),n=A.currentTimeline;i.delay&&(A.incrementTime(i.delay),n.snapshotCurrentStyles());let o=e.style;o.type==oi.Keyframes?this.visitKeyframes(o,A):(A.incrementTime(i.duration),this.visitStyle(o,A),n.applyStylesToKeyframe()),A.currentAnimateTimings=null,A.previousNode=e}visitStyle(e,A){let i=A.currentTimeline,n=A.currentAnimateTimings;!n&&i.hasCurrentStyleProperties()&&i.forwardFrame();let o=n&&n.easing||e.easing;e.isEmptyStep?i.applyEmptyStep(o):i.setStyles(e.styles,o,A.errors,A.options),A.previousNode=e}visitKeyframes(e,A){let i=A.currentAnimateTimings,n=A.currentTimeline.duration,o=i.duration,s=A.createSubContext().currentTimeline;s.easing=i.easing,e.styles.forEach(a=>{let c=a.offset||0;s.forwardTime(c*o),s.setStyles(a.styles,a.easing,A.errors,A.options),s.applyStylesToKeyframe()}),A.currentTimeline.mergeTimelineCollectedStyles(s),A.transformIntoNewTimeline(n+o),A.previousNode=e}visitQuery(e,A){let i=A.currentTimeline.currentTime,n=e.options||{},o=n.delay?ml(n.delay):0;o&&(A.previousNode.type===oi.Style||i==0&&A.currentTimeline.hasCurrentStyleProperties())&&(A.currentTimeline.snapshotCurrentStyles(),A.previousNode=T6);let r=i,s=A.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!n.optional,A.errors);A.currentQueryTotal=s.length;let a=null;s.forEach((c,g)=>{A.currentQueryIndex=g;let I=A.createSubContext(e.options,c);o&&I.delayNextStep(o),c===A.element&&(a=I.currentTimeline),pa(this,e.animation,I),I.currentTimeline.applyStylesToKeyframe();let C=I.currentTimeline.currentTime;r=Math.max(r,C)}),A.currentQueryIndex=0,A.currentQueryTotal=0,A.transformIntoNewTimeline(r),a&&(A.currentTimeline.mergeTimelineCollectedStyles(a),A.currentTimeline.snapshotCurrentStyles()),A.previousNode=e}visitStagger(e,A){let i=A.parentContext,n=A.currentTimeline,o=e.timings,r=Math.abs(o.duration),s=r*(A.currentQueryTotal-1),a=r*A.currentQueryIndex;switch(o.duration<0?"reverse":o.easing){case"reverse":a=s-a;break;case"full":a=i.currentStaggerTime;break}let g=A.currentTimeline;a&&g.delayNextStep(a);let I=g.currentTime;pa(this,e.animation,A),A.previousNode=e,i.currentStaggerTime=n.currentTime-I+(n.startTime-i.currentTimeline.startTime)}},T6={},CS=class t{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=T6;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(e,A,i,n,o,r,s,a){this._driver=e,this.element=A,this.subInstructions=i,this._enterClassName=n,this._leaveClassName=o,this.errors=r,this.timelines=s,this.currentTimeline=a||new H6(this._driver,A,0),s.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(e,A){if(!e)return;let i=e,n=this.options;i.duration!=null&&(n.duration=ml(i.duration)),i.delay!=null&&(n.delay=ml(i.delay));let o=i.params;if(o){let r=n.params;r||(r=this.options.params={}),Object.keys(o).forEach(s=>{(!A||!r.hasOwnProperty(s))&&(r[s]=mB(o[s],r,this.errors))})}}_copyOptions(){let e={};if(this.options){let A=this.options.params;if(A){let i=e.params={};Object.keys(A).forEach(n=>{i[n]=A[n]})}}return e}createSubContext(e=null,A,i){let n=A||this.element,o=new t(this._driver,n,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(n,i||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(e),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o}transformIntoNewTimeline(e){return this.previousNode=T6,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(e,A,i){let n={duration:A??e.duration,delay:this.currentTimeline.currentTime+(i??0)+e.delay,easing:""},o=new dS(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,n,e.stretchStartingKeyframe);return this.timelines.push(o),n}incrementTime(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)}delayNextStep(e){e>0&&this.currentTimeline.delayNextStep(e)}invokeQuery(e,A,i,n,o,r){let s=[];if(n&&s.push(this.element),e.length>0){e=e.replace(QhA,"."+this._enterClassName),e=e.replace(hhA,"."+this._leaveClassName);let a=i!=1,c=this._driver.query(this.element,e,a);i!==0&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),s.push(...c)}return!o&&s.length==0&&r.push(yP(A)),s}},H6=class t{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(e,A,i,n){this._driver=e,this.element=A,this.startTime=i,this._elementTimelineStylesLookup=n,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(A),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(A,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(e){let A=this._keyframes.size===1&&this._pendingStyles.size;this.duration||A?(this.forwardTime(this.currentTime+e),A&&this.snapshotCurrentStyles()):this.startTime+=e}fork(e,A){return this.applyStylesToKeyframe(),new t(this._driver,e,A||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=BhA,this._loadKeyframe()}forwardTime(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()}_updateStyle(e,A){this._localTimelineStyles.set(e,A),this._globalTimelineStyles.set(e,A),this._styleSummary.set(e,{time:this.currentTime,value:A})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(e){e&&this._previousKeyframe.set("easing",e);for(let[A,i]of this._globalTimelineStyles)this._backFill.set(A,i||Rc),this._currentKeyframe.set(A,Rc);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(e,A,i,n){A&&this._previousKeyframe.set("easing",A);let o=n&&n.params||{},r=fhA(e,this._globalTimelineStyles);for(let[s,a]of r){let c=mB(a,o,i);this._pendingStyles.set(s,c),this._localTimelineStyles.has(s)||this._backFill.set(s,this._globalTimelineStyles.get(s)??Rc),this._updateStyle(s,c)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((e,A)=>{this._currentKeyframe.set(A,e)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((e,A)=>{this._currentKeyframe.has(A)||this._currentKeyframe.set(A,e)}))}snapshotCurrentStyles(){for(let[e,A]of this._localTimelineStyles)this._pendingStyles.set(e,A),this._updateStyle(e,A)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let e=[];for(let A in this._currentKeyframe)e.push(A);return e}mergeTimelineCollectedStyles(e){e._styleSummary.forEach((A,i)=>{let n=this._styleSummary.get(i);(!n||A.time>n.time)&&this._updateStyle(i,A.value)})}buildKeyframes(){this.applyStylesToKeyframe();let e=new Set,A=new Set,i=this._keyframes.size===1&&this.duration===0,n=[];this._keyframes.forEach((s,a)=>{let c=new Map([...this._backFill,...s]);c.forEach((g,I)=>{g===hB?e.add(I):g===Rc&&A.add(I)}),i||c.set("offset",a/this.duration),n.push(c)});let o=[...e.values()],r=[...A.values()];if(i){let s=n[0],a=new Map(s);s.set("offset",0),a.set("offset",1),n=[s,a]}return pS(this.element,n,o,r,this.duration,this.startTime,this.easing,!1)}},dS=class extends H6{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(e,A,i,n,o,r,s=!1){super(e,A,r.delay),this.keyframes=i,this.preStyleProps=n,this.postStyleProps=o,this._stretchStartingKeyframe=s,this.timings={duration:r.duration,delay:r.delay,easing:r.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let e=this.keyframes,{delay:A,duration:i,easing:n}=this.timings;if(this._stretchStartingKeyframe&&A){let o=[],r=i+A,s=A/r,a=new Map(e[0]);a.set("offset",0),o.push(a);let c=new Map(e[0]);c.set("offset",PP(s)),o.push(c);let g=e.length-1;for(let I=1;I<=g;I++){let C=new Map(e[I]),d=C.get("offset"),B=A+d*i;C.set("offset",PP(B/r)),o.push(C)}i=r,A=0,n="",e=o}return pS(this.element,e,this.preStyleProps,this.postStyleProps,i,A,n,!0)}};function PP(t,e=3){let A=Math.pow(10,e-1);return Math.round(t*A)/A}function fhA(t,e){let A=new Map,i;return t.forEach(n=>{if(n==="*"){i??=e.keys();for(let o of i)A.set(o,Rc)}else for(let[o,r]of n)A.set(o,r)}),A}function jP(t,e,A,i,n,o,r,s,a,c,g,I,C){return{type:0,element:t,triggerName:e,isRemovalTransition:n,fromState:A,fromStyles:o,toState:i,toStyles:r,timelines:s,queriedElements:a,preStyleProps:c,postStyleProps:g,totalTime:I,errors:C}}var rS={},O6=class{_triggerName;ast;_stateStyles;constructor(e,A,i){this._triggerName=e,this.ast=A,this._stateStyles=i}match(e,A,i,n){return mhA(this.ast.matchers,e,A,i,n)}buildStyles(e,A,i){let n=this._stateStyles.get("*");return e!==void 0&&(n=this._stateStyles.get(e?.toString())||n),n?n.buildStyles(A,i):new Map}build(e,A,i,n,o,r,s,a,c,g){let I=[],C=this.ast.options&&this.ast.options.params||rS,d=s&&s.params||rS,B=this.buildStyles(i,d,I),E=a&&a.params||rS,u=this.buildStyles(n,E,I),h=new Set,w=new Map,x=new Map,R=n==="void",D={params:ij(E,C),delay:this.ast.options?.delay},G=g?[]:tj(e,A,this.ast.animation,o,r,B,u,D,c,I),J=0;return G.forEach(z=>{J=Math.max(z.duration+z.delay,J)}),I.length?jP(A,this._triggerName,i,n,R,B,u,[],[],w,x,J,I):(G.forEach(z=>{let K=z.element,O=ma(w,K,new Set);z.preStyleProps.forEach(j=>O.add(j));let V=ma(x,K,new Set);z.postStyleProps.forEach(j=>V.add(j)),K!==A&&h.add(K)}),jP(A,this._triggerName,i,n,R,B,u,G,[...h.values()],w,x,J))}};function mhA(t,e,A,i,n){return t.some(o=>o(e,A,i,n))}function ij(t,e){let A=sA({},e);return Object.entries(t).forEach(([i,n])=>{n!=null&&(A[i]=n)}),A}var BS=class{styles;defaultParams;normalizer;constructor(e,A,i){this.styles=e,this.defaultParams=A,this.normalizer=i}buildStyles(e,A){let i=new Map,n=ij(e,this.defaultParams);return this.styles.styles.forEach(o=>{typeof o!="string"&&o.forEach((r,s)=>{r&&(r=mB(r,n,A));let a=this.normalizer.normalizePropertyName(s,A);r=this.normalizer.normalizeStyleValue(s,a,r,A),i.set(s,r)})}),i}};function phA(t,e,A){return new ES(t,e,A)}var ES=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(e,A,i){this.name=e,this.ast=A,this._normalizer=i,A.states.forEach(n=>{let o=n.options&&n.options.params||{};this.states.set(n.name,new BS(n.style,o,i))}),qP(this.states,"true","1"),qP(this.states,"false","0"),A.transitions.forEach(n=>{this.transitionFactories.push(new O6(e,n,this.states))}),this.fallbackTransition=DhA(e,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(e,A,i,n){return this.transitionFactories.find(r=>r.match(e,A,i,n))||null}matchStyles(e,A,i){return this.fallbackTransition.buildStyles(e,A,i)}};function DhA(t,e,A){let i=[(r,s)=>!0],n={type:oi.Sequence,steps:[],options:null},o={type:oi.Transition,animation:n,matchers:i,options:null,queryCount:0,depCount:0};return new O6(t,o,e)}function qP(t,e,A){t.has(e)?t.has(A)||t.set(A,t.get(e)):t.has(A)&&t.set(e,t.get(A))}var whA=new ph,QS=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(e,A,i){this.bodyNode=e,this._driver=A,this._normalizer=i}register(e,A){let i=[],n=[],o=ej(this._driver,A,i,n);if(i.length)throw kP(i);this._animations.set(e,o)}_buildPlayer(e,A,i){let n=e.element,o=Wk(this._normalizer,e.keyframes,A,i);return this._driver.animate(n,o,e.duration,e.delay,e.easing,[],!0)}create(e,A,i={}){let n=[],o=this._animations.get(e),r,s=new Map;if(o?(r=tj(this._driver,A,o,tS,L6,new Map,new Map,i,whA,n),r.forEach(g=>{let I=ma(s,g.element,new Map);g.postStyleProps.forEach(C=>I.set(C,null))})):(n.push(SP()),r=[]),n.length)throw RP(n);s.forEach((g,I)=>{g.forEach((C,d)=>{g.set(d,this._driver.computeStyle(I,d,Rc))})});let a=r.map(g=>{let I=s.get(g.element);return this._buildPlayer(g,new Map,I)}),c=b0(a);return this._playersById.set(e,c),c.onDestroy(()=>this.destroy(e)),this.players.push(c),c}destroy(e){let A=this._getPlayer(e);A.destroy(),this._playersById.delete(e);let i=this.players.indexOf(A);i>=0&&this.players.splice(i,1)}_getPlayer(e){let A=this._playersById.get(e);if(!A)throw LP(e);return A}listen(e,A,i,n){let o=S6(A,"","","");return k6(this._getPlayer(e),i,o,n),()=>{}}command(e,A,i,n){if(i=="register"){this.register(e,n[0]);return}if(i=="create"){let r=n[0]||{};this.create(e,A,r);return}let o=this._getPlayer(e);switch(i){case"play":o.play();break;case"pause":o.pause();break;case"reset":o.reset();break;case"restart":o.restart();break;case"finish":o.finish();break;case"init":o.init();break;case"setPosition":o.setPosition(parseFloat(n[0]));break;case"destroy":this.destroy(e);break}}},VP="ng-animate-queued",yhA=".ng-animate-queued",sS="ng-animate-disabled",vhA=".ng-animate-disabled",MhA="ng-star-inserted",bhA=".ng-star-inserted",khA=[],nj={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},ShA={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Dg="__ng_removed",Dh=class{namespaceId;value;options;get params(){return this.options.params}constructor(e,A=""){this.namespaceId=A;let i=e&&e.hasOwnProperty("value"),n=i?e.value:e;if(this.value=LhA(n),i){let o=e,{value:r}=o,s=pv(o,["value"]);this.options=s}else this.options={};this.options.params||(this.options.params={})}absorbOptions(e){let A=e.params;if(A){let i=this.options.params;Object.keys(A).forEach(n=>{i[n]==null&&(i[n]=A[n])})}}},mh="void",aS=new Dh(mh),uS=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(e,A,i){this.id=e,this.hostElement=A,this._engine=i,this._hostClassName="ng-tns-"+e,Lc(A,this._hostClassName)}listen(e,A,i,n){if(!this._triggers.has(A))throw xP(i,A);if(i==null||i.length==0)throw NP(A);if(!xhA(i))throw FP(i,A);let o=ma(this._elementListeners,e,[]),r={name:A,phase:i,callback:n};o.push(r);let s=ma(this._engine.statesByElement,e,new Map);return s.has(A)||(Lc(e,uh),Lc(e,uh+"-"+A),s.set(A,aS)),()=>{this._engine.afterFlush(()=>{let a=o.indexOf(r);a>=0&&o.splice(a,1),this._triggers.has(A)||s.delete(A)})}}register(e,A){return this._triggers.has(e)?!1:(this._triggers.set(e,A),!0)}_getTrigger(e){let A=this._triggers.get(e);if(!A)throw _P(e);return A}trigger(e,A,i,n=!0){let o=this._getTrigger(A),r=new wh(this.id,A,e),s=this._engine.statesByElement.get(e);s||(Lc(e,uh),Lc(e,uh+"-"+A),this._engine.statesByElement.set(e,s=new Map));let a=s.get(A),c=new Dh(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&a&&c.absorbOptions(a.options),s.set(A,c),a||(a=aS),!(c.value===mh)&&a.value===c.value){if(!_hA(a.params,c.params)){let E=[],u=o.matchStyles(a.value,a.params,E),h=o.matchStyles(c.value,c.params,E);E.length?this._engine.reportError(E):this._engine.afterFlush(()=>{Y2(e,u),pg(e,h)})}return}let C=ma(this._engine.playersByElement,e,[]);C.forEach(E=>{E.namespaceId==this.id&&E.triggerName==A&&E.queued&&E.destroy()});let d=o.matchTransition(a.value,c.value,e,c.params),B=!1;if(!d){if(!n)return;d=o.fallbackTransition,B=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:A,transition:d,fromState:a,toState:c,player:r,isFallbackTransition:B}),B||(Lc(e,VP),r.onStart(()=>{pB(e,VP)})),r.onDone(()=>{let E=this.players.indexOf(r);E>=0&&this.players.splice(E,1);let u=this._engine.playersByElement.get(e);if(u){let h=u.indexOf(r);h>=0&&u.splice(h,1)}}),this.players.push(r),C.push(r),r}deregister(e){this._triggers.delete(e),this._engine.statesByElement.forEach(A=>A.delete(e)),this._elementListeners.forEach((A,i)=>{this._elementListeners.set(i,A.filter(n=>n.name!=e))})}clearElementCache(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);let A=this._engine.playersByElement.get(e);A&&(A.forEach(i=>i.destroy()),this._engine.playersByElement.delete(e))}_signalRemovalForInnerTriggers(e,A){let i=this._engine.driver.query(e,hh,!0);i.forEach(n=>{if(n[Dg])return;let o=this._engine.fetchNamespacesByElement(n);o.size?o.forEach(r=>r.triggerLeaveAnimation(n,A,!1,!0)):this.clearElementCache(n)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(n=>this.clearElementCache(n)))}triggerLeaveAnimation(e,A,i,n){let o=this._engine.statesByElement.get(e),r=new Map;if(o){let s=[];if(o.forEach((a,c)=>{if(r.set(c,a.value),this._triggers.has(c)){let g=this.trigger(e,c,mh,n);g&&s.push(g)}}),s.length)return this._engine.markElementAsRemoved(this.id,e,!0,A,r),i&&b0(s).onDone(()=>this._engine.processLeaveNode(e)),!0}return!1}prepareLeaveAnimationListeners(e){let A=this._elementListeners.get(e),i=this._engine.statesByElement.get(e);if(A&&i){let n=new Set;A.forEach(o=>{let r=o.name;if(n.has(r))return;n.add(r);let a=this._triggers.get(r).fallbackTransition,c=i.get(r)||aS,g=new Dh(mh),I=new wh(this.id,r,e);this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:r,transition:a,fromState:c,toState:g,player:I,isFallbackTransition:!0})})}}removeNode(e,A){let i=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,A),this.triggerLeaveAnimation(e,A,!0))return;let n=!1;if(i.totalAnimations){let o=i.players.length?i.playersByQueriedElement.get(e):[];if(o&&o.length)n=!0;else{let r=e;for(;r=r.parentNode;)if(i.statesByElement.get(r)){n=!0;break}}}if(this.prepareLeaveAnimationListeners(e),n)i.markElementAsRemoved(this.id,e,!1,A);else{let o=e[Dg];(!o||o===nj)&&(i.afterFlush(()=>this.clearElementCache(e)),i.destroyInnerAnimations(e),i._onRemovalComplete(e,A))}}insertNode(e,A){Lc(e,this._hostClassName)}drainQueuedTransitions(e){let A=[];return this._queue.forEach(i=>{let n=i.player;if(n.destroyed)return;let o=i.element,r=this._elementListeners.get(o);r&&r.forEach(s=>{if(s.name==i.triggerName){let a=S6(o,i.triggerName,i.fromState.value,i.toState.value);a._data=e,k6(i.player,s.phase,a,s.callback)}}),n.markedForDestroy?this._engine.afterFlush(()=>{n.destroy()}):A.push(i)}),this._queue=[],A.sort((i,n)=>{let o=i.transition.ast.depCount,r=n.transition.ast.depCount;return o==0||r==0?o-r:this._engine.driver.containsElement(i.element,n.element)?1:-1})}destroy(e){this.players.forEach(A=>A.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,e)}},hS=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(e,A)=>{};_onRemovalComplete(e,A){this.onRemovalComplete(e,A)}constructor(e,A,i){this.bodyNode=e,this.driver=A,this._normalizer=i}get queuedPlayers(){let e=[];return this._namespaceList.forEach(A=>{A.players.forEach(i=>{i.queued&&e.push(i)})}),e}createNamespace(e,A){let i=new uS(e,A,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,A)?this._balanceNamespaceList(i,A):(this.newHostElements.set(A,i),this.collectEnterElement(A)),this._namespaceLookup[e]=i}_balanceNamespaceList(e,A){let i=this._namespaceList,n=this.namespacesByHostElement;if(i.length-1>=0){let r=!1,s=this.driver.getParentElement(A);for(;s;){let a=n.get(s);if(a){let c=i.indexOf(a);i.splice(c+1,0,e),r=!0;break}s=this.driver.getParentElement(s)}r||i.unshift(e)}else i.push(e);return n.set(A,e),e}register(e,A){let i=this._namespaceLookup[e];return i||(i=this.createNamespace(e,A)),i}registerTrigger(e,A,i){let n=this._namespaceLookup[e];n&&n.register(A,i)&&this.totalAnimations++}destroy(e,A){e&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let i=this._fetchNamespace(e);this.namespacesByHostElement.delete(i.hostElement);let n=this._namespaceList.indexOf(i);n>=0&&this._namespaceList.splice(n,1),i.destroy(A),delete this._namespaceLookup[e]}))}_fetchNamespace(e){return this._namespaceLookup[e]}fetchNamespacesByElement(e){let A=new Set,i=this.statesByElement.get(e);if(i){for(let n of i.values())if(n.namespaceId){let o=this._fetchNamespace(n.namespaceId);o&&A.add(o)}}return A}trigger(e,A,i,n){if(K6(A)){let o=this._fetchNamespace(e);if(o)return o.trigger(A,i,n),!0}return!1}insertNode(e,A,i,n){if(!K6(A))return;let o=A[Dg];if(o&&o.setForRemoval){o.setForRemoval=!1,o.setForMove=!0;let r=this.collectedLeaveElements.indexOf(A);r>=0&&this.collectedLeaveElements.splice(r,1)}if(e){let r=this._fetchNamespace(e);r&&r.insertNode(A,i)}n&&this.collectEnterElement(A)}collectEnterElement(e){this.collectedEnterElements.push(e)}markElementAsDisabled(e,A){A?this.disabledNodes.has(e)||(this.disabledNodes.add(e),Lc(e,sS)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),pB(e,sS))}removeNode(e,A,i){if(K6(A)){let n=e?this._fetchNamespace(e):null;n?n.removeNode(A,i):this.markElementAsRemoved(e,A,!1,i);let o=this.namespacesByHostElement.get(A);o&&o.id!==e&&o.removeNode(A,i)}else this._onRemovalComplete(A,i)}markElementAsRemoved(e,A,i,n,o){this.collectedLeaveElements.push(A),A[Dg]={namespaceId:e,setForRemoval:n,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:o}}listen(e,A,i,n,o){return K6(A)?this._fetchNamespace(e).listen(A,i,n,o):()=>{}}_buildInstruction(e,A,i,n,o){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,i,n,e.fromState.options,e.toState.options,A,o)}destroyInnerAnimations(e){let A=this.driver.query(e,hh,!0);A.forEach(i=>this.destroyActiveAnimationsForElement(i)),this.playersByQueriedElement.size!=0&&(A=this.driver.query(e,x6,!0),A.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(e){let A=this.playersByElement.get(e);A&&A.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(e){let A=this.playersByQueriedElement.get(e);A&&A.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(e=>{if(this.players.length)return b0(this.players).onDone(()=>e());e()})}processLeaveNode(e){let A=e[Dg];if(A&&A.setForRemoval){if(e[Dg]=nj,A.namespaceId){this.destroyInnerAnimations(e);let i=this._fetchNamespace(A.namespaceId);i&&i.clearElementCache(e)}this._onRemovalComplete(e,A.setForRemoval)}e.classList?.contains(sS)&&this.markElementAsDisabled(e,!1),this.driver.query(e,vhA,!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(e=-1){let A=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,n)=>this._balanceNamespaceList(i,n)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){let i=this._whenQuietFns;this._whenQuietFns=[],A.length?b0(A).onDone(()=>{i.forEach(n=>n())}):i.forEach(n=>n())}}reportError(e){throw GP(e)}_flushAnimations(e,A){let i=new ph,n=[],o=new Map,r=[],s=new Map,a=new Map,c=new Map,g=new Set;this.disabledNodes.forEach(IA=>{g.add(IA);let SA=this.driver.query(IA,yhA,!0);for(let nA=0;nA{let nA=tS+E++;B.set(SA,nA),IA.forEach(lA=>Lc(lA,nA))});let u=[],h=new Set,w=new Set;for(let IA=0;IAh.add(lA)):w.add(SA))}let x=new Map,R=XP(C,Array.from(h));R.forEach((IA,SA)=>{let nA=L6+E++;x.set(SA,nA),IA.forEach(lA=>Lc(lA,nA))}),e.push(()=>{d.forEach((IA,SA)=>{let nA=B.get(SA);IA.forEach(lA=>pB(lA,nA))}),R.forEach((IA,SA)=>{let nA=x.get(SA);IA.forEach(lA=>pB(lA,nA))}),u.forEach(IA=>{this.processLeaveNode(IA)})});let D=[],G=[];for(let IA=this._namespaceList.length-1;IA>=0;IA--)this._namespaceList[IA].drainQueuedTransitions(A).forEach(nA=>{let lA=nA.player,wA=nA.element;if(D.push(lA),this.collectedEnterElements.length){let We=wA[Dg];if(We&&We.setForMove){if(We.previousTriggersValues&&We.previousTriggersValues.has(nA.triggerName)){let KA=We.previousTriggersValues.get(nA.triggerName),tA=this.statesByElement.get(nA.element);if(tA&&tA.has(nA.triggerName)){let OA=tA.get(nA.triggerName);OA.value=KA,tA.set(nA.triggerName,OA)}}lA.destroy();return}}let VA=!I||!this.driver.containsElement(I,wA),ie=x.get(wA),UA=B.get(wA),BA=this._buildInstruction(nA,i,UA,ie,VA);if(BA.errors&&BA.errors.length){G.push(BA);return}if(VA){lA.onStart(()=>Y2(wA,BA.fromStyles)),lA.onDestroy(()=>pg(wA,BA.toStyles)),n.push(lA);return}if(nA.isFallbackTransition){lA.onStart(()=>Y2(wA,BA.fromStyles)),lA.onDestroy(()=>pg(wA,BA.toStyles)),n.push(lA);return}let JA=[];BA.timelines.forEach(We=>{We.stretchStartingKeyframe=!0,this.disabledNodes.has(We.element)||JA.push(We)}),BA.timelines=JA,i.append(wA,BA.timelines);let Xe={instruction:BA,player:lA,element:wA};r.push(Xe),BA.queriedElements.forEach(We=>ma(s,We,[]).push(lA)),BA.preStyleProps.forEach((We,KA)=>{if(We.size){let tA=a.get(KA);tA||a.set(KA,tA=new Set),We.forEach((OA,gA)=>tA.add(gA))}}),BA.postStyleProps.forEach((We,KA)=>{let tA=c.get(KA);tA||c.set(KA,tA=new Set),We.forEach((OA,gA)=>tA.add(gA))})});if(G.length){let IA=[];G.forEach(SA=>{IA.push(KP(SA.triggerName,SA.errors))}),D.forEach(SA=>SA.destroy()),this.reportError(IA)}let J=new Map,z=new Map;r.forEach(IA=>{let SA=IA.element;i.has(SA)&&(z.set(SA,SA),this._beforeAnimationBuild(IA.player.namespaceId,IA.instruction,J))}),n.forEach(IA=>{let SA=IA.element;this._getPreviousPlayers(SA,!1,IA.namespaceId,IA.triggerName,null).forEach(lA=>{ma(J,SA,[]).push(lA),lA.destroy()})});let K=u.filter(IA=>$P(IA,a,c)),O=new Map;WP(O,this.driver,w,c,Rc).forEach(IA=>{$P(IA,a,c)&&K.push(IA)});let j=new Map;d.forEach((IA,SA)=>{WP(j,this.driver,new Set(IA),a,hB)}),K.forEach(IA=>{let SA=O.get(IA),nA=j.get(IA);O.set(IA,new Map([...SA?.entries()??[],...nA?.entries()??[]]))});let dA=[],fA=[],EA={};r.forEach(IA=>{let{element:SA,player:nA,instruction:lA}=IA;if(i.has(SA)){if(g.has(SA)){nA.onDestroy(()=>pg(SA,lA.toStyles)),nA.disabled=!0,nA.overrideTotalTime(lA.totalTime),n.push(nA);return}let wA=EA;if(z.size>1){let ie=SA,UA=[];for(;ie=ie.parentNode;){let BA=z.get(ie);if(BA){wA=BA;break}UA.push(ie)}UA.forEach(BA=>z.set(BA,wA))}let VA=this._buildAnimation(nA.namespaceId,lA,J,o,j,O);if(nA.setRealPlayer(VA),wA===EA)dA.push(nA);else{let ie=this.playersByElement.get(wA);ie&&ie.length&&(nA.parentPlayer=b0(ie)),n.push(nA)}}else Y2(SA,lA.fromStyles),nA.onDestroy(()=>pg(SA,lA.toStyles)),fA.push(nA),g.has(SA)&&n.push(nA)}),fA.forEach(IA=>{let SA=o.get(IA.element);if(SA&&SA.length){let nA=b0(SA);IA.setRealPlayer(nA)}}),n.forEach(IA=>{IA.parentPlayer?IA.syncPlayerEvents(IA.parentPlayer):IA.destroy()});for(let IA=0;IA!VA.destroyed);wA.length?NhA(this,SA,wA):this.processLeaveNode(SA)}return u.length=0,dA.forEach(IA=>{this.players.push(IA),IA.onDone(()=>{IA.destroy();let SA=this.players.indexOf(IA);this.players.splice(SA,1)}),IA.play()}),dA}afterFlush(e){this._flushFns.push(e)}afterFlushAnimationsDone(e){this._whenQuietFns.push(e)}_getPreviousPlayers(e,A,i,n,o){let r=[];if(A){let s=this.playersByQueriedElement.get(e);s&&(r=s)}else{let s=this.playersByElement.get(e);if(s){let a=!o||o==mh;s.forEach(c=>{c.queued||!a&&c.triggerName!=n||r.push(c)})}}return(i||n)&&(r=r.filter(s=>!(i&&i!=s.namespaceId||n&&n!=s.triggerName))),r}_beforeAnimationBuild(e,A,i){let n=A.triggerName,o=A.element,r=A.isRemovalTransition?void 0:e,s=A.isRemovalTransition?void 0:n;for(let a of A.timelines){let c=a.element,g=c!==o,I=ma(i,c,[]);this._getPreviousPlayers(c,g,r,s,A.toState).forEach(d=>{let B=d.getRealPlayer();B.beforeDestroy&&B.beforeDestroy(),d.destroy(),I.push(d)})}Y2(o,A.fromStyles)}_buildAnimation(e,A,i,n,o,r){let s=A.triggerName,a=A.element,c=[],g=new Set,I=new Set,C=A.timelines.map(B=>{let E=B.element;g.add(E);let u=E[Dg];if(u&&u.removedBeforeQueried)return new hl(B.duration,B.delay);let h=E!==a,w=FhA((i.get(E)||khA).map(J=>J.getRealPlayer())).filter(J=>{let z=J;return z.element?z.element===E:!1}),x=o.get(E),R=r.get(E),D=Wk(this._normalizer,B.keyframes,x,R),G=this._buildPlayer(B,D,w);if(B.subTimeline&&n&&I.add(E),h){let J=new wh(e,s,E);J.setRealPlayer(G),c.push(J)}return G});c.forEach(B=>{ma(this.playersByQueriedElement,B.element,[]).push(B),B.onDone(()=>RhA(this.playersByQueriedElement,B.element,B))}),g.forEach(B=>Lc(B,iS));let d=b0(C);return d.onDestroy(()=>{g.forEach(B=>pB(B,iS)),pg(a,A.toStyles)}),I.forEach(B=>{ma(n,B,[]).push(d)}),d}_buildPlayer(e,A,i){return A.length>0?this.driver.animate(e.element,A,e.duration,e.delay,e.easing,i):new hl(e.duration,e.delay)}},wh=class{namespaceId;triggerName;element;_player=new hl;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(e,A,i){this.namespaceId=e,this.triggerName=A,this.element=i}setRealPlayer(e){this._containsRealPlayer||(this._player=e,this._queuedCallbacks.forEach((A,i)=>{A.forEach(n=>k6(e,i,void 0,n))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(e){this.totalTime=e}syncPlayerEvents(e){let A=this._player;A.triggerCallback&&e.onStart(()=>A.triggerCallback("start")),e.onDone(()=>this.finish()),e.onDestroy(()=>this.destroy())}_queueEvent(e,A){ma(this._queuedCallbacks,e,[]).push(A)}onDone(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)}onStart(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)}onDestroy(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(e){this.queued||this._player.setPosition(e)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(e){let A=this._player;A.triggerCallback&&A.triggerCallback(e)}};function RhA(t,e,A){let i=t.get(e);if(i){if(i.length){let n=i.indexOf(A);i.splice(n,1)}i.length==0&&t.delete(e)}return i}function LhA(t){return t??null}function K6(t){return t&&t.nodeType===1}function xhA(t){return t=="start"||t=="done"}function ZP(t,e){let A=t.style.display;return t.style.display=e??"none",A}function WP(t,e,A,i,n){let o=[];A.forEach(a=>o.push(ZP(a)));let r=[];i.forEach((a,c)=>{let g=new Map;a.forEach(I=>{let C=e.computeStyle(c,I,n);g.set(I,C),(!C||C.length==0)&&(c[Dg]=ShA,r.push(c))}),t.set(c,g)});let s=0;return A.forEach(a=>ZP(a,o[s++])),r}function XP(t,e){let A=new Map;if(t.forEach(s=>A.set(s,[])),e.length==0)return A;let i=1,n=new Set(e),o=new Map;function r(s){if(!s)return i;let a=o.get(s);if(a)return a;let c=s.parentNode;return A.has(c)?a=c:n.has(c)?a=i:a=r(c),o.set(s,a),a}return e.forEach(s=>{let a=r(s);a!==i&&A.get(a).push(s)}),A}function Lc(t,e){t.classList?.add(e)}function pB(t,e){t.classList?.remove(e)}function NhA(t,e,A){b0(A).onDone(()=>t.processLeaveNode(e))}function FhA(t){let e=[];return oj(t,e),e}function oj(t,e){for(let A=0;An.add(o)):e.set(t,i),A.delete(t),!0}var DB=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(e,A)=>{};constructor(e,A,i){this._driver=A,this._normalizer=i,this._transitionEngine=new hS(e.body,A,i),this._timelineEngine=new QS(e.body,A,i),this._transitionEngine.onRemovalComplete=(n,o)=>this.onRemovalComplete(n,o)}registerTrigger(e,A,i,n,o){let r=e+"-"+n,s=this._triggerCache[r];if(!s){let a=[],c=[],g=ej(this._driver,o,a,c);if(a.length)throw bP(n,a);s=phA(n,g,this._normalizer),this._triggerCache[r]=s}this._transitionEngine.registerTrigger(A,n,s)}register(e,A){this._transitionEngine.register(e,A)}destroy(e,A){this._transitionEngine.destroy(e,A)}onInsert(e,A,i,n){this._transitionEngine.insertNode(e,A,i,n)}onRemove(e,A,i){this._transitionEngine.removeNode(e,A,i)}disableAnimations(e,A){this._transitionEngine.markElementAsDisabled(e,A)}process(e,A,i,n){if(i.charAt(0)=="@"){let[o,r]=Xk(i),s=n;this._timelineEngine.command(o,A,r,s)}else this._transitionEngine.trigger(e,A,i,n)}listen(e,A,i,n,o){if(i.charAt(0)=="@"){let[r,s]=Xk(i);return this._timelineEngine.listen(r,A,s,o)}return this._transitionEngine.listen(e,A,i,n,o)}flush(e=-1){this._transitionEngine.flush(e)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(e){this._transitionEngine.afterFlushAnimationsDone(e)}};function GhA(t,e){let A=null,i=null;return Array.isArray(e)&&e.length?(A=cS(e[0]),e.length>1&&(i=cS(e[e.length-1]))):e instanceof Map&&(A=cS(e)),A||i?new KhA(t,A,i):null}var KhA=(()=>{class t{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(A,i,n){this._element=A,this._startStyles=i,this._endStyles=n;let o=t.initialStylesByElement.get(A);o||t.initialStylesByElement.set(A,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&pg(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(pg(this._element,this._initialStyles),this._endStyles&&(pg(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(t.initialStylesByElement.delete(this._element),this._startStyles&&(Y2(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Y2(this._element,this._endStyles),this._endStyles=null),pg(this._element,this._initialStyles),this._state=3)}}return t})();function cS(t){let e=null;return t.forEach((A,i)=>{UhA(i)&&(e=e||new Map,e.set(i,A))}),e}function UhA(t){return t==="display"||t==="position"}var z6=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(e,A,i,n){this.element=e,this.keyframes=A,this.options=i,this._specialStyles=n,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;let e=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,e,this.options),this._finalKeyframe=e.length?e[e.length-1]:new Map;let A=()=>this._onFinish();this.domPlayer.addEventListener("finish",A),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",A)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(e){let A=[];return e.forEach(i=>{A.push(Object.fromEntries(i))}),A}_triggerWebAnimation(e,A,i){return e.animate(this._convertKeyframesToObject(A),i)}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(e=>e()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}setPosition(e){this.domPlayer===void 0&&this.init(),this.domPlayer.currentTime=e*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){let e=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,n)=>{n!=="offset"&&e.set(n,this._finished?i:F6(this.element,n))}),this.currentSnapshot=e}triggerCallback(e){let A=e==="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},P6=class{validateStyleProperty(e){return!0}validateAnimatableStyleProperty(e){return!0}containsElement(e,A){return $k(e,A)}getParentElement(e){return R6(e)}query(e,A,i){return AS(e,A,i)}computeStyle(e,A,i){return F6(e,A)}animate(e,A,i,n,o,r=[]){let s=n==0?"both":"forwards",a={duration:i,delay:n,fill:s};o&&(a.easing=o);let c=new Map,g=r.filter(d=>d instanceof z6);TP(i,n)&&g.forEach(d=>{d.currentSnapshot.forEach((B,E)=>c.set(E,B))});let I=JP(A).map(d=>new Map(d));I=HP(e,I,c);let C=GhA(e,I);return new z6(e,I,a,C)}};var U6="@",rj="@.disabled",j6=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(e,A,i,n){this.namespaceId=e,this.delegate=A,this.engine=i,this._onDestroy=n}get data(){return this.delegate.data}destroyNode(e){this.delegate.destroyNode?.(e)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(e,A){return this.delegate.createElement(e,A)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}appendChild(e,A){this.delegate.appendChild(e,A),this.engine.onInsert(this.namespaceId,A,e,!1)}insertBefore(e,A,i,n=!0){this.delegate.insertBefore(e,A,i),this.engine.onInsert(this.namespaceId,A,e,n)}removeChild(e,A,i){this.parentNode(A)&&this.engine.onRemove(this.namespaceId,A,this.delegate)}selectRootElement(e,A){return this.delegate.selectRootElement(e,A)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,A,i,n){this.delegate.setAttribute(e,A,i,n)}removeAttribute(e,A,i){this.delegate.removeAttribute(e,A,i)}addClass(e,A){this.delegate.addClass(e,A)}removeClass(e,A){this.delegate.removeClass(e,A)}setStyle(e,A,i,n){this.delegate.setStyle(e,A,i,n)}removeStyle(e,A,i){this.delegate.removeStyle(e,A,i)}setProperty(e,A,i){A.charAt(0)==U6&&A==rj?this.disableAnimations(e,!!i):this.delegate.setProperty(e,A,i)}setValue(e,A){this.delegate.setValue(e,A)}listen(e,A,i,n){return this.delegate.listen(e,A,i,n)}disableAnimations(e,A){this.engine.disableAnimations(e,A)}},fS=class extends j6{factory;constructor(e,A,i,n,o){super(A,i,n,o),this.factory=e,this.namespaceId=A}setProperty(e,A,i){A.charAt(0)==U6?A.charAt(1)=="."&&A==rj?(i=i===void 0?!0:!!i,this.disableAnimations(e,i)):this.engine.process(this.namespaceId,e,A.slice(1),i):this.delegate.setProperty(e,A,i)}listen(e,A,i,n){if(A.charAt(0)==U6){let o=JhA(e),r=A.slice(1),s="";return r.charAt(0)!=U6&&([r,s]=YhA(r)),this.engine.listen(this.namespaceId,o,r,s,a=>{let c=a._data||-1;this.factory.scheduleListenerCallback(c,i,a)})}return this.delegate.listen(e,A,i,n)}};function JhA(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}function YhA(t){let e=t.indexOf("."),A=t.substring(0,e),i=t.slice(e+1);return[A,i]}var q6=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(e,A,i){this.delegate=e,this.engine=A,this._zone=i,A.onRemovalComplete=(n,o)=>{o?.removeChild(null,n)}}createRenderer(e,A){let i="",n=this.delegate.createRenderer(e,A);if(!e||!A?.data?.animation){let c=this._rendererCache,g=c.get(n);if(!g){let I=()=>c.delete(n);g=new j6(i,n,this.engine,I),c.set(n,g)}return g}let o=A.id,r=A.id+"-"+this._currentId;this._currentId++,this.engine.register(r,e);let s=c=>{Array.isArray(c)?c.forEach(s):this.engine.registerTrigger(o,r,e,c.name,c)};return A.data.animation.forEach(s),new fS(this,r,n,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(e,A,i){if(e>=0&&eA(i));return}let n=this._animationCallbacksBuffer;n.length==0&&queueMicrotask(()=>{this._zone.run(()=>{n.forEach(o=>{let[r,s]=o;r(s)}),this._animationCallbacksBuffer=[]})}),n.push([A,i])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}componentReplaced(e){this.engine.flush(),this.delegate.componentReplaced?.(e)}};var HhA=(()=>{class t extends DB{constructor(A,i,n){super(A,i,n)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||t)(be(at),be(eC),be(tC))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();function OhA(){return new J6}function zhA(t,e,A){return new q6(t,e,A)}var sj=[{provide:tC,useFactory:OhA},{provide:DB,useClass:HhA},{provide:Ms,useFactory:zhA,deps:[Bh,DB,ye]}],Zce=[{provide:eC,useClass:mS},{provide:_i,useValue:"NoopAnimations"},...sj],PhA=[{provide:eC,useFactory:()=>new P6},{provide:_i,useFactory:()=>"BrowserAnimations"},...sj];function aj(){return Cg("NgEagerAnimations"),[...PhA]}var wi="primary",Gh=Symbol("RouteTitle"),MS=class{params;constructor(e){this.params=e||{}}has(e){return Object.prototype.hasOwnProperty.call(this.params,e)}get(e){if(this.has(e)){let A=this.params[e];return Array.isArray(A)?A[0]:A}return null}getAll(e){if(this.has(e)){let A=this.params[e];return Array.isArray(A)?A:[A]}return[]}get keys(){return Object.keys(this.params)}};function oC(t){return new MS(t)}function Ej(t,e,A){let i=A.path.split("/");if(i.length>t.length||A.pathMatch==="full"&&(e.hasChildren()||i.lengthi[o]===n)}else return t===e}function uj(t){return t.length>0?t[t.length-1]:null}function z2(t){return B2(t)?t:k2(t)?ro(Promise.resolve(t)):Ce(t)}var qhA={exact:fj,subset:mj},hj={exact:VhA,subset:ZhA,ignored:()=>!0};function cj(t,e,A){return qhA[A.paths](t.root,e.root,A.matrixParams)&&hj[A.queryParams](t.queryParams,e.queryParams)&&!(A.fragment==="exact"&&t.fragment!==e.fragment)}function VhA(t,e){return pl(t,e)}function fj(t,e,A){if(!iC(t.segments,e.segments)||!W6(t.segments,e.segments,A)||t.numberOfChildren!==e.numberOfChildren)return!1;for(let i in e.children)if(!t.children[i]||!fj(t.children[i],e.children[i],A))return!1;return!0}function ZhA(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(A=>Qj(t[A],e[A]))}function mj(t,e,A){return pj(t,e,e.segments,A)}function pj(t,e,A,i){if(t.segments.length>A.length){let n=t.segments.slice(0,A.length);return!(!iC(n,A)||e.hasChildren()||!W6(n,A,i))}else if(t.segments.length===A.length){if(!iC(t.segments,A)||!W6(t.segments,A,i))return!1;for(let n in e.children)if(!t.children[n]||!mj(t.children[n],e.children[n],i))return!1;return!0}else{let n=A.slice(0,t.segments.length),o=A.slice(t.segments.length);return!iC(t.segments,n)||!W6(t.segments,n,i)||!t.children[wi]?!1:pj(t.children[wi],e,o,i)}}function W6(t,e,A){return e.every((i,n)=>hj[A](t[n].parameters,i.parameters))}var wl=class{root;queryParams;fragment;_queryParamMap;constructor(e=new Nn([],{}),A={},i=null){this.root=e,this.queryParams=A,this.fragment=i}get queryParamMap(){return this._queryParamMap??=oC(this.queryParams),this._queryParamMap}toString(){return $hA.serialize(this)}},Nn=class{segments;children;parent=null;constructor(e,A){this.segments=e,this.children=A,Object.values(A).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return X6(this)}},T2=class{path;parameters;_parameterMap;constructor(e,A){this.path=e,this.parameters=A}get parameterMap(){return this._parameterMap??=oC(this.parameters),this._parameterMap}toString(){return wj(this)}};function WhA(t,e){return iC(t,e)&&t.every((A,i)=>pl(A.parameters,e[i].parameters))}function iC(t,e){return t.length!==e.length?!1:t.every((A,i)=>A.path===e[i].path)}function XhA(t,e){let A=[];return Object.entries(t.children).forEach(([i,n])=>{i===wi&&(A=A.concat(e(n,i)))}),Object.entries(t.children).forEach(([i,n])=>{i!==wi&&(A=A.concat(e(n,i)))}),A}var rC=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>new H2,providedIn:"root"})}return t})(),H2=class{parse(e){let A=new SS(e);return new wl(A.parseRootSegment(),A.parseQueryParams(),A.parseFragment())}serialize(e){let A=`/${yh(e.root,!0)}`,i=t4A(e.queryParams),n=typeof e.fragment=="string"?`#${A4A(e.fragment)}`:"";return`${A}${i}${n}`}},$hA=new H2;function X6(t){return t.segments.map(e=>wj(e)).join("/")}function yh(t,e){if(!t.hasChildren())return X6(t);if(e){let A=t.children[wi]?yh(t.children[wi],!1):"",i=[];return Object.entries(t.children).forEach(([n,o])=>{n!==wi&&i.push(`${n}:${yh(o,!1)}`)}),i.length>0?`${A}(${i.join("//")})`:A}else{let A=XhA(t,(i,n)=>n===wi?[yh(t.children[wi],!1)]:[`${n}:${yh(i,!1)}`]);return Object.keys(t.children).length===1&&t.children[wi]!=null?`${X6(t)}/${A[0]}`:`${X6(t)}/(${A.join("//")})`}}function Dj(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function V6(t){return Dj(t).replace(/%3B/gi,";")}function A4A(t){return encodeURI(t)}function kS(t){return Dj(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function $6(t){return decodeURIComponent(t)}function gj(t){return $6(t.replace(/\+/g,"%20"))}function wj(t){return`${kS(t.path)}${e4A(t.parameters)}`}function e4A(t){return Object.entries(t).map(([e,A])=>`;${kS(e)}=${kS(A)}`).join("")}function t4A(t){let e=Object.entries(t).map(([A,i])=>Array.isArray(i)?i.map(n=>`${V6(A)}=${V6(n)}`).join("&"):`${V6(A)}=${V6(i)}`).filter(A=>A);return e.length?`?${e.join("&")}`:""}var i4A=/^[^\/()?;#]+/;function DS(t){let e=t.match(i4A);return e?e[0]:""}var n4A=/^[^\/()?;=#]+/;function o4A(t){let e=t.match(n4A);return e?e[0]:""}var r4A=/^[^=?&#]+/;function s4A(t){let e=t.match(r4A);return e?e[0]:""}var a4A=/^[^&#]+/;function c4A(t){let e=t.match(a4A);return e?e[0]:""}var SS=class{url;remaining;constructor(e){this.url=e,this.remaining=e}parseRootSegment(){return this.consumeOptional("/"),this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new Nn([],{}):new Nn([],this.parseChildren())}parseQueryParams(){let e={};if(this.consumeOptional("?"))do this.parseQueryParam(e);while(this.consumeOptional("&"));return e}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(this.remaining==="")return{};this.consumeOptional("/");let e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let A={};this.peekStartsWith("/(")&&(this.capture("/"),A=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(e.length>0||Object.keys(A).length>0)&&(i[wi]=new Nn(e,A)),i}parseSegment(){let e=DS(this.remaining);if(e===""&&this.peekStartsWith(";"))throw new te(4009,!1);return this.capture(e),new T2($6(e),this.parseMatrixParams())}parseMatrixParams(){let e={};for(;this.consumeOptional(";");)this.parseParam(e);return e}parseParam(e){let A=o4A(this.remaining);if(!A)return;this.capture(A);let i="";if(this.consumeOptional("=")){let n=DS(this.remaining);n&&(i=n,this.capture(i))}e[$6(A)]=$6(i)}parseQueryParam(e){let A=s4A(this.remaining);if(!A)return;this.capture(A);let i="";if(this.consumeOptional("=")){let r=c4A(this.remaining);r&&(i=r,this.capture(i))}let n=gj(A),o=gj(i);if(e.hasOwnProperty(n)){let r=e[n];Array.isArray(r)||(r=[r],e[n]=r),r.push(o)}else e[n]=o}parseParens(e){let A={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){let i=DS(this.remaining),n=this.remaining[i.length];if(n!=="/"&&n!==")"&&n!==";")throw new te(4010,!1);let o;i.indexOf(":")>-1?(o=i.slice(0,i.indexOf(":")),this.capture(o),this.capture(":")):e&&(o=wi);let r=this.parseChildren();A[o]=Object.keys(r).length===1?r[wi]:new Nn([],r),this.consumeOptional("//")}return A}peekStartsWith(e){return this.remaining.startsWith(e)}consumeOptional(e){return this.peekStartsWith(e)?(this.remaining=this.remaining.substring(e.length),!0):!1}capture(e){if(!this.consumeOptional(e))throw new te(4011,!1)}};function yj(t){return t.segments.length>0?new Nn([],{[wi]:t}):t}function vj(t){let e={};for(let[i,n]of Object.entries(t.children)){let o=vj(n);if(i===wi&&o.segments.length===0&&o.hasChildren())for(let[r,s]of Object.entries(o.children))e[r]=s;else(o.segments.length>0||o.hasChildren())&&(e[i]=o)}let A=new Nn(t.segments,e);return g4A(A)}function g4A(t){if(t.numberOfChildren===1&&t.children[wi]){let e=t.children[wi];return new Nn(t.segments.concat(e.segments),e.children)}return t}function bB(t){return t instanceof wl}function Mj(t,e,A=null,i=null){let n=bj(t);return kj(n,e,A,i)}function bj(t){let e;function A(o){let r={};for(let a of o.children){let c=A(a);r[a.outlet]=c}let s=new Nn(o.url,r);return o===t&&(e=s),s}let i=A(t.root),n=yj(i);return e??n}function kj(t,e,A,i){let n=t;for(;n.parent;)n=n.parent;if(e.length===0)return wS(n,n,n,A,i);let o=l4A(e);if(o.toRoot())return wS(n,n,new Nn([],{}),A,i);let r=I4A(o,n,t),s=r.processChildren?Mh(r.segmentGroup,r.index,o.commands):Rj(r.segmentGroup,r.index,o.commands);return wS(n,r.segmentGroup,s,A,i)}function e8(t){return typeof t=="object"&&t!=null&&!t.outlets&&!t.segmentPath}function kh(t){return typeof t=="object"&&t!=null&&t.outlets}function wS(t,e,A,i,n){let o={};i&&Object.entries(i).forEach(([a,c])=>{o[a]=Array.isArray(c)?c.map(g=>`${g}`):`${c}`});let r;t===e?r=A:r=Sj(t,e,A);let s=yj(vj(r));return new wl(s,o,n)}function Sj(t,e,A){let i={};return Object.entries(t.children).forEach(([n,o])=>{o===e?i[n]=A:i[n]=Sj(o,e,A)}),new Nn(t.segments,i)}var t8=class{isAbsolute;numberOfDoubleDots;commands;constructor(e,A,i){if(this.isAbsolute=e,this.numberOfDoubleDots=A,this.commands=i,e&&i.length>0&&e8(i[0]))throw new te(4003,!1);let n=i.find(kh);if(n&&n!==uj(i))throw new te(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}};function l4A(t){if(typeof t[0]=="string"&&t.length===1&&t[0]==="/")return new t8(!0,0,t);let e=0,A=!1,i=t.reduce((n,o,r)=>{if(typeof o=="object"&&o!=null){if(o.outlets){let s={};return Object.entries(o.outlets).forEach(([a,c])=>{s[a]=typeof c=="string"?c.split("/"):c}),[...n,{outlets:s}]}if(o.segmentPath)return[...n,o.segmentPath]}return typeof o!="string"?[...n,o]:r===0?(o.split("/").forEach((s,a)=>{a==0&&s==="."||(a==0&&s===""?A=!0:s===".."?e++:s!=""&&n.push(s))}),n):[...n,o]},[]);return new t8(A,e,i)}var vB=class{segmentGroup;processChildren;index;constructor(e,A,i){this.segmentGroup=e,this.processChildren=A,this.index=i}};function I4A(t,e,A){if(t.isAbsolute)return new vB(e,!0,0);if(!A)return new vB(e,!1,NaN);if(A.parent===null)return new vB(A,!0,0);let i=e8(t.commands[0])?0:1,n=A.segments.length-1+i;return C4A(A,n,t.numberOfDoubleDots)}function C4A(t,e,A){let i=t,n=e,o=A;for(;o>n;){if(o-=n,i=i.parent,!i)throw new te(4005,!1);n=i.segments.length}return new vB(i,!1,n-o)}function d4A(t){return kh(t[0])?t[0].outlets:{[wi]:t}}function Rj(t,e,A){if(t??=new Nn([],{}),t.segments.length===0&&t.hasChildren())return Mh(t,e,A);let i=B4A(t,e,A),n=A.slice(i.commandIndex);if(i.match&&i.pathIndexo!==wi)&&t.children[wi]&&t.numberOfChildren===1&&t.children[wi].segments.length===0){let o=Mh(t.children[wi],e,A);return new Nn(t.segments,o.children)}return Object.entries(i).forEach(([o,r])=>{typeof r=="string"&&(r=[r]),r!==null&&(n[o]=Rj(t.children[o],e,r))}),Object.entries(t.children).forEach(([o,r])=>{i[o]===void 0&&(n[o]=r)}),new Nn(t.segments,n)}}function B4A(t,e,A){let i=0,n=e,o={match:!1,pathIndex:0,commandIndex:0};for(;n=A.length)return o;let r=t.segments[n],s=A[i];if(kh(s))break;let a=`${s}`,c=i0&&a===void 0)break;if(a&&c&&typeof c=="object"&&c.outlets===void 0){if(!Ij(a,c,r))return o;i+=2}else{if(!Ij(a,{},r))return o;i++}n++}return{match:!0,pathIndex:n,commandIndex:i}}function RS(t,e,A){let i=t.segments.slice(0,e),n=0;for(;n{typeof i=="string"&&(i=[i]),i!==null&&(e[A]=RS(new Nn([],{}),0,i))}),e}function lj(t){let e={};return Object.entries(t).forEach(([A,i])=>e[A]=`${i}`),e}function Ij(t,e,A){return t==A.path&&pl(e,A.parameters)}var A8="imperative",Tr=function(t){return t[t.NavigationStart=0]="NavigationStart",t[t.NavigationEnd=1]="NavigationEnd",t[t.NavigationCancel=2]="NavigationCancel",t[t.NavigationError=3]="NavigationError",t[t.RoutesRecognized=4]="RoutesRecognized",t[t.ResolveStart=5]="ResolveStart",t[t.ResolveEnd=6]="ResolveEnd",t[t.GuardsCheckStart=7]="GuardsCheckStart",t[t.GuardsCheckEnd=8]="GuardsCheckEnd",t[t.RouteConfigLoadStart=9]="RouteConfigLoadStart",t[t.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",t[t.ChildActivationStart=11]="ChildActivationStart",t[t.ChildActivationEnd=12]="ChildActivationEnd",t[t.ActivationStart=13]="ActivationStart",t[t.ActivationEnd=14]="ActivationEnd",t[t.Scroll=15]="Scroll",t[t.NavigationSkipped=16]="NavigationSkipped",t}(Tr||{}),sc=class{id;url;constructor(e,A){this.id=e,this.url=A}},O2=class extends sc{type=Tr.NavigationStart;navigationTrigger;restoredState;constructor(e,A,i="imperative",n=null){super(e,A),this.navigationTrigger=i,this.restoredState=n}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}},ac=class extends sc{urlAfterRedirects;type=Tr.NavigationEnd;constructor(e,A,i){super(e,A),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}},Da=function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromResolver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t}(Da||{}),kB=function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t}(kB||{}),Dl=class extends sc{reason;code;type=Tr.NavigationCancel;constructor(e,A,i,n){super(e,A),this.reason=i,this.code=n}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}},yl=class extends sc{reason;code;type=Tr.NavigationSkipped;constructor(e,A,i,n){super(e,A),this.reason=i,this.code=n}},SB=class extends sc{error;target;type=Tr.NavigationError;constructor(e,A,i,n){super(e,A),this.error=i,this.target=n}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}},Sh=class extends sc{urlAfterRedirects;state;type=Tr.RoutesRecognized;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},i8=class extends sc{urlAfterRedirects;state;type=Tr.GuardsCheckStart;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},n8=class extends sc{urlAfterRedirects;state;shouldActivate;type=Tr.GuardsCheckEnd;constructor(e,A,i,n,o){super(e,A),this.urlAfterRedirects=i,this.state=n,this.shouldActivate=o}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}},o8=class extends sc{urlAfterRedirects;state;type=Tr.ResolveStart;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},r8=class extends sc{urlAfterRedirects;state;type=Tr.ResolveEnd;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},s8=class{route;type=Tr.RouteConfigLoadStart;constructor(e){this.route=e}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}},a8=class{route;type=Tr.RouteConfigLoadEnd;constructor(e){this.route=e}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}},c8=class{snapshot;type=Tr.ChildActivationStart;constructor(e){this.snapshot=e}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},g8=class{snapshot;type=Tr.ChildActivationEnd;constructor(e){this.snapshot=e}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},l8=class{snapshot;type=Tr.ActivationStart;constructor(e){this.snapshot=e}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},I8=class{snapshot;type=Tr.ActivationEnd;constructor(e){this.snapshot=e}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},RB=class{routerEvent;position;anchor;type=Tr.Scroll;constructor(e,A,i){this.routerEvent=e,this.position=A,this.anchor=i}toString(){let e=this.position?`${this.position[0]}, ${this.position[1]}`:null;return`Scroll(anchor: '${this.anchor}', position: '${e}')`}},Rh=class{},LB=class{url;navigationBehaviorOptions;constructor(e,A){this.url=e,this.navigationBehaviorOptions=A}};function Q4A(t,e){return t.providers&&!t._injector&&(t._injector=Nu(t.providers,e,`Route: ${t.path}`)),t._injector??e}function wg(t){return t.outlet||wi}function u4A(t,e){let A=t.filter(i=>wg(i)===e);return A.push(...t.filter(i=>wg(i)!==e)),A}function Kh(t){if(!t)return null;if(t.routeConfig?._injector)return t.routeConfig._injector;for(let e=t.parent;e;e=e.parent){let A=e.routeConfig;if(A?._loadedInjector)return A._loadedInjector;if(A?._injector)return A._injector}return null}var C8=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return Kh(this.route?.snapshot)??this.rootInjector}constructor(e){this.rootInjector=e,this.children=new sC(this.rootInjector)}},sC=(()=>{class t{rootInjector;contexts=new Map;constructor(A){this.rootInjector=A}onChildOutletCreated(A,i){let n=this.getOrCreateContext(A);n.outlet=i,this.contexts.set(A,n)}onChildOutletDestroyed(A){let i=this.getContext(A);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){let A=this.contexts;return this.contexts=new Map,A}onOutletReAttached(A){this.contexts=A}getOrCreateContext(A){let i=this.getContext(A);return i||(i=new C8(this.rootInjector),this.contexts.set(A,i)),i}getContext(A){return this.contexts.get(A)||null}static \u0275fac=function(i){return new(i||t)(be(vr))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),d8=class{_root;constructor(e){this._root=e}get root(){return this._root.value}parent(e){let A=this.pathFromRoot(e);return A.length>1?A[A.length-2]:null}children(e){let A=LS(e,this._root);return A?A.children.map(i=>i.value):[]}firstChild(e){let A=LS(e,this._root);return A&&A.children.length>0?A.children[0].value:null}siblings(e){let A=xS(e,this._root);return A.length<2?[]:A[A.length-2].children.map(n=>n.value).filter(n=>n!==e)}pathFromRoot(e){return xS(e,this._root).map(A=>A.value)}};function LS(t,e){if(t===e.value)return e;for(let A of e.children){let i=LS(t,A);if(i)return i}return null}function xS(t,e){if(t===e.value)return[e];for(let A of e.children){let i=xS(t,A);if(i.length)return i.unshift(e),i}return[]}var rc=class{value;children;constructor(e,A){this.value=e,this.children=A}toString(){return`TreeNode(${this.value})`}};function yB(t){let e={};return t&&t.children.forEach(A=>e[A.value.outlet]=A),e}var Lh=class extends d8{snapshot;constructor(e,A){super(e),this.snapshot=A,YS(this,e)}toString(){return this.snapshot.toString()}};function Lj(t){let e=h4A(t),A=new Fi([new T2("",{})]),i=new Fi({}),n=new Fi({}),o=new Fi({}),r=new Fi(""),s=new xc(A,i,o,r,n,wi,t,e.root);return s.snapshot=e.root,new Lh(new rc(s,[]),e)}function h4A(t){let e={},A={},i={},n="",o=new nC([],e,i,n,A,wi,t,null,{});return new xh("",new rc(o,[]))}var xc=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(e,A,i,n,o,r,s,a){this.urlSubject=e,this.paramsSubject=A,this.queryParamsSubject=i,this.fragmentSubject=n,this.dataSubject=o,this.outlet=r,this.component=s,this._futureSnapshot=a,this.title=this.dataSubject?.pipe(je(c=>c[Gh]))??Ce(void 0),this.url=e,this.params=A,this.queryParams=i,this.fragment=n,this.data=o}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(je(e=>oC(e))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(je(e=>oC(e))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}};function B8(t,e,A="emptyOnly"){let i,{routeConfig:n}=t;return e!==null&&(A==="always"||n?.path===""||!e.component&&!e.routeConfig?.loadComponent)?i={params:sA(sA({},e.params),t.params),data:sA(sA({},e.data),t.data),resolve:sA(sA(sA(sA({},t.data),e.data),n?.data),t._resolvedData)}:i={params:sA({},t.params),data:sA({},t.data),resolve:sA(sA({},t.data),t._resolvedData??{})},n&&Nj(n)&&(i.resolve[Gh]=n.title),i}var nC=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;get title(){return this.data?.[Gh]}constructor(e,A,i,n,o,r,s,a,c){this.url=e,this.params=A,this.queryParams=i,this.fragment=n,this.data=o,this.outlet=r,this.component=s,this.routeConfig=a,this._resolve=c}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=oC(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=oC(this.queryParams),this._queryParamMap}toString(){let e=this.url.map(i=>i.toString()).join("/"),A=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${e}', path:'${A}')`}},xh=class extends d8{url;constructor(e,A){super(A),this.url=e,YS(this,A)}toString(){return xj(this._root)}};function YS(t,e){e.value._routerState=t,e.children.forEach(A=>YS(t,A))}function xj(t){let e=t.children.length>0?` { ${t.children.map(xj).join(", ")} } `:"";return`${t.value}${e}`}function yS(t){if(t.snapshot){let e=t.snapshot,A=t._futureSnapshot;t.snapshot=A,pl(e.queryParams,A.queryParams)||t.queryParamsSubject.next(A.queryParams),e.fragment!==A.fragment&&t.fragmentSubject.next(A.fragment),pl(e.params,A.params)||t.paramsSubject.next(A.params),jhA(e.url,A.url)||t.urlSubject.next(A.url),pl(e.data,A.data)||t.dataSubject.next(A.data)}else t.snapshot=t._futureSnapshot,t.dataSubject.next(t._futureSnapshot.data)}function NS(t,e){let A=pl(t.params,e.params)&&WhA(t.url,e.url),i=!t.parent!=!e.parent;return A&&!i&&(!t.parent||NS(t.parent,e.parent))}function Nj(t){return typeof t.title=="string"||t.title===null}var Fj=new eA(""),TS=(()=>{class t{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=wi;activateEvents=new YA;deactivateEvents=new YA;attachEvents=new YA;detachEvents=new YA;routerOutletData=bs(void 0);parentContexts=f(sC);location=f(Sn);changeDetector=f(Et);inputBinder=f(Uh,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(A){if(A.name){let{firstChange:i,previousValue:n}=A.name;if(i)return;this.isTrackedInParentContexts(n)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(n)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(A){return this.parentContexts.getContext(A)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let A=this.parentContexts.getContext(this.name);A?.route&&(A.attachRef?this.attach(A.attachRef,A.route):this.activateWith(A.route,A.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new te(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new te(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new te(4012,!1);this.location.detach();let A=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(A.instance),A}attach(A,i){this.activated=A,this._activatedRoute=i,this.location.insert(A.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(A.instance)}deactivate(){if(this.activated){let A=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(A)}}activateWith(A,i){if(this.isActivated)throw new te(4013,!1);this._activatedRoute=A;let n=this.location,r=A.snapshot.component,s=this.parentContexts.getOrCreateContext(this.name).children,a=new FS(A,s,n.injector,this.routerOutletData);this.activated=n.createComponent(r,{index:n.length,injector:a,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[Xt]})}return t})(),FS=class{route;childContexts;parent;outletData;constructor(e,A,i,n){this.route=e,this.childContexts=A,this.parent=i,this.outletData=n}get(e,A){return e===xc?this.route:e===sC?this.childContexts:e===Fj?this.outletData:this.parent.get(e,A)}},Uh=new eA(""),HS=(()=>{class t{outletDataSubscriptions=new Map;bindActivatedRouteToOutletComponent(A){this.unsubscribeFromRouteData(A),this.subscribeToRouteData(A)}unsubscribeFromRouteData(A){this.outletDataSubscriptions.get(A)?.unsubscribe(),this.outletDataSubscriptions.delete(A)}subscribeToRouteData(A){let{activatedRoute:i}=A,n=ga([i.queryParams,i.params,i.data]).pipe($n(([o,r,s],a)=>(s=sA(sA(sA({},o),r),s),a===0?Ce(s):Promise.resolve(s)))).subscribe(o=>{if(!A.isActivated||!A.activatedComponentRef||A.activatedRoute!==i||i.component===null){this.unsubscribeFromRouteData(A);return}let r=cO(i.component);if(!r){this.unsubscribeFromRouteData(A);return}for(let{templateName:s}of r.inputs)A.activatedComponentRef.setInput(s,o[s])});this.outletDataSubscriptions.set(A,n)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),OS=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(i,n){i&1&&TA(0,"router-outlet")},dependencies:[TS],encapsulation:2})}return t})();function zS(t){let e=t.children&&t.children.map(zS),A=e?Fe(sA({},t),{children:e}):sA({},t);return!A.component&&!A.loadComponent&&(e||A.loadChildren)&&A.outlet&&A.outlet!==wi&&(A.component=OS),A}function f4A(t,e,A){let i=Nh(t,e._root,A?A._root:void 0);return new Lh(i,e)}function Nh(t,e,A){if(A&&t.shouldReuseRoute(e.value,A.value.snapshot)){let i=A.value;i._futureSnapshot=e.value;let n=m4A(t,e,A);return new rc(i,n)}else{if(t.shouldAttach(e.value)){let o=t.retrieve(e.value);if(o!==null){let r=o.route;return r.value._futureSnapshot=e.value,r.children=e.children.map(s=>Nh(t,s)),r}}let i=p4A(e.value),n=e.children.map(o=>Nh(t,o));return new rc(i,n)}}function m4A(t,e,A){return e.children.map(i=>{for(let n of A.children)if(t.shouldReuseRoute(i.value,n.value.snapshot))return Nh(t,i,n);return Nh(t,i)})}function p4A(t){return new xc(new Fi(t.url),new Fi(t.params),new Fi(t.queryParams),new Fi(t.fragment),new Fi(t.data),t.outlet,t.component,t)}var xB=class{redirectTo;navigationBehaviorOptions;constructor(e,A){this.redirectTo=e,this.navigationBehaviorOptions=A}},_j="ngNavigationCancelingError";function E8(t,e){let{redirectTo:A,navigationBehaviorOptions:i}=bB(e)?{redirectTo:e,navigationBehaviorOptions:void 0}:e,n=Gj(!1,Da.Redirect);return n.url=A,n.navigationBehaviorOptions=i,n}function Gj(t,e){let A=new Error(`NavigationCancelingError: ${t||""}`);return A[_j]=!0,A.cancellationCode=e,A}function D4A(t){return Kj(t)&&bB(t.url)}function Kj(t){return!!t&&t[_j]}var w4A=(t,e,A,i)=>je(n=>(new _S(e,n.targetRouterState,n.currentRouterState,A,i).activate(t),n)),_S=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(e,A,i,n,o){this.routeReuseStrategy=e,this.futureState=A,this.currState=i,this.forwardEvent=n,this.inputBindingEnabled=o}activate(e){let A=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(A,i,e),yS(this.futureState.root),this.activateChildRoutes(A,i,e)}deactivateChildRoutes(e,A,i){let n=yB(A);e.children.forEach(o=>{let r=o.value.outlet;this.deactivateRoutes(o,n[r],i),delete n[r]}),Object.values(n).forEach(o=>{this.deactivateRouteAndItsChildren(o,i)})}deactivateRoutes(e,A,i){let n=e.value,o=A?A.value:null;if(n===o)if(n.component){let r=i.getContext(n.outlet);r&&this.deactivateChildRoutes(e,A,r.children)}else this.deactivateChildRoutes(e,A,i);else o&&this.deactivateRouteAndItsChildren(A,i)}deactivateRouteAndItsChildren(e,A){e.value.component&&this.routeReuseStrategy.shouldDetach(e.value.snapshot)?this.detachAndStoreRouteSubtree(e,A):this.deactivateRouteAndOutlet(e,A)}detachAndStoreRouteSubtree(e,A){let i=A.getContext(e.value.outlet),n=i&&e.value.component?i.children:A,o=yB(e);for(let r of Object.values(o))this.deactivateRouteAndItsChildren(r,n);if(i&&i.outlet){let r=i.outlet.detach(),s=i.children.onOutletDeactivated();this.routeReuseStrategy.store(e.value.snapshot,{componentRef:r,route:e,contexts:s})}}deactivateRouteAndOutlet(e,A){let i=A.getContext(e.value.outlet),n=i&&e.value.component?i.children:A,o=yB(e);for(let r of Object.values(o))this.deactivateRouteAndItsChildren(r,n);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(e,A,i){let n=yB(A);e.children.forEach(o=>{this.activateRoutes(o,n[o.value.outlet],i),this.forwardEvent(new I8(o.value.snapshot))}),e.children.length&&this.forwardEvent(new g8(e.value.snapshot))}activateRoutes(e,A,i){let n=e.value,o=A?A.value:null;if(yS(n),n===o)if(n.component){let r=i.getOrCreateContext(n.outlet);this.activateChildRoutes(e,A,r.children)}else this.activateChildRoutes(e,A,i);else if(n.component){let r=i.getOrCreateContext(n.outlet);if(this.routeReuseStrategy.shouldAttach(n.snapshot)){let s=this.routeReuseStrategy.retrieve(n.snapshot);this.routeReuseStrategy.store(n.snapshot,null),r.children.onOutletReAttached(s.contexts),r.attachRef=s.componentRef,r.route=s.route.value,r.outlet&&r.outlet.attach(s.componentRef,s.route.value),yS(s.route.value),this.activateChildRoutes(e,null,r.children)}else r.attachRef=null,r.route=n,r.outlet&&r.outlet.activateWith(n,r.injector),this.activateChildRoutes(e,null,r.children)}else this.activateChildRoutes(e,null,i)}},Q8=class{path;route;constructor(e){this.path=e,this.route=this.path[this.path.length-1]}},MB=class{component;route;constructor(e,A){this.component=e,this.route=A}};function y4A(t,e,A){let i=t._root,n=e?e._root:null;return vh(i,n,A,[i.value])}function v4A(t){let e=t.routeConfig?t.routeConfig.canActivateChild:null;return!e||e.length===0?null:{node:t,guards:e}}function FB(t,e){let A=Symbol(),i=e.get(t,A);return i===A?typeof t=="function"&&!lY(t)?t:e.get(t):i}function vh(t,e,A,i,n={canDeactivateChecks:[],canActivateChecks:[]}){let o=yB(e);return t.children.forEach(r=>{M4A(r,o[r.value.outlet],A,i.concat([r.value]),n),delete o[r.value.outlet]}),Object.entries(o).forEach(([r,s])=>bh(s,A.getContext(r),n)),n}function M4A(t,e,A,i,n={canDeactivateChecks:[],canActivateChecks:[]}){let o=t.value,r=e?e.value:null,s=A?A.getContext(t.value.outlet):null;if(r&&o.routeConfig===r.routeConfig){let a=b4A(r,o,o.routeConfig.runGuardsAndResolvers);a?n.canActivateChecks.push(new Q8(i)):(o.data=r.data,o._resolvedData=r._resolvedData),o.component?vh(t,e,s?s.children:null,i,n):vh(t,e,A,i,n),a&&s&&s.outlet&&s.outlet.isActivated&&n.canDeactivateChecks.push(new MB(s.outlet.component,r))}else r&&bh(e,s,n),n.canActivateChecks.push(new Q8(i)),o.component?vh(t,null,s?s.children:null,i,n):vh(t,null,A,i,n);return n}function b4A(t,e,A){if(typeof A=="function")return A(t,e);switch(A){case"pathParamsChange":return!iC(t.url,e.url);case"pathParamsOrQueryParamsChange":return!iC(t.url,e.url)||!pl(t.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!NS(t,e)||!pl(t.queryParams,e.queryParams);case"paramsChange":default:return!NS(t,e)}}function bh(t,e,A){let i=yB(t),n=t.value;Object.entries(i).forEach(([o,r])=>{n.component?e?bh(r,e.children.getContext(o),A):bh(r,null,A):bh(r,e,A)}),n.component?e&&e.outlet&&e.outlet.isActivated?A.canDeactivateChecks.push(new MB(e.outlet.component,n)):A.canDeactivateChecks.push(new MB(null,n)):A.canDeactivateChecks.push(new MB(null,n))}function Jh(t){return typeof t=="function"}function k4A(t){return typeof t=="boolean"}function S4A(t){return t&&Jh(t.canLoad)}function R4A(t){return t&&Jh(t.canActivate)}function L4A(t){return t&&Jh(t.canActivateChild)}function x4A(t){return t&&Jh(t.canDeactivate)}function N4A(t){return t&&Jh(t.canMatch)}function Uj(t){return t instanceof B0||t?.name==="EmptyError"}var Z6=Symbol("INITIAL_VALUE");function NB(){return $n(t=>ga(t.map(e=>e.pipe(Xn(1),On(Z6)))).pipe(je(e=>{for(let A of e)if(A!==!0){if(A===Z6)return Z6;if(A===!1||F4A(A))return A}return!0}),Nt(e=>e!==Z6),Xn(1)))}function F4A(t){return bB(t)||t instanceof xB}function _4A(t,e){return or(A=>{let{targetSnapshot:i,currentSnapshot:n,guards:{canActivateChecks:o,canDeactivateChecks:r}}=A;return r.length===0&&o.length===0?Ce(Fe(sA({},A),{guardsResult:!0})):G4A(r,i,n,t).pipe(or(s=>s&&k4A(s)?K4A(i,o,t,e):Ce(s)),je(s=>Fe(sA({},A),{guardsResult:s})))})}function G4A(t,e,A,i){return ro(t).pipe(or(n=>H4A(n.component,n.route,A,e,i)),ol(n=>n!==!0,!0))}function K4A(t,e,A,i){return ro(e).pipe(tl(n=>Q2(J4A(n.route.parent,i),U4A(n.route,i),T4A(t,n.path,A),Y4A(t,n.route,A))),ol(n=>n!==!0,!0))}function U4A(t,e){return t!==null&&e&&e(new l8(t)),Ce(!0)}function J4A(t,e){return t!==null&&e&&e(new c8(t)),Ce(!0)}function Y4A(t,e,A){let i=e.routeConfig?e.routeConfig.canActivate:null;if(!i||i.length===0)return Ce(!0);let n=i.map(o=>el(()=>{let r=Kh(e)??A,s=FB(o,r),a=R4A(s)?s.canActivate(e,t):da(r,()=>s(e,t));return z2(a).pipe(ol())}));return Ce(n).pipe(NB())}function T4A(t,e,A){let i=e[e.length-1],o=e.slice(0,e.length-1).reverse().map(r=>v4A(r)).filter(r=>r!==null).map(r=>el(()=>{let s=r.guards.map(a=>{let c=Kh(r.node)??A,g=FB(a,c),I=L4A(g)?g.canActivateChild(i,t):da(c,()=>g(i,t));return z2(I).pipe(ol())});return Ce(s).pipe(NB())}));return Ce(o).pipe(NB())}function H4A(t,e,A,i,n){let o=e&&e.routeConfig?e.routeConfig.canDeactivate:null;if(!o||o.length===0)return Ce(!0);let r=o.map(s=>{let a=Kh(e)??n,c=FB(s,a),g=x4A(c)?c.canDeactivate(t,e,A,i):da(a,()=>c(t,e,A,i));return z2(g).pipe(ol())});return Ce(r).pipe(NB())}function O4A(t,e,A,i){let n=e.canLoad;if(n===void 0||n.length===0)return Ce(!0);let o=n.map(r=>{let s=FB(r,t),a=S4A(s)?s.canLoad(e,A):da(t,()=>s(e,A));return z2(a)});return Ce(o).pipe(NB(),Jj(i))}function Jj(t){return Tv(So(e=>{if(typeof e!="boolean")throw E8(t,e)}),je(e=>e===!0))}function z4A(t,e,A,i){let n=e.canMatch;if(!n||n.length===0)return Ce(!0);let o=n.map(r=>{let s=FB(r,t),a=N4A(s)?s.canMatch(e,A):da(t,()=>s(e,A));return z2(a)});return Ce(o).pipe(NB(),Jj(i))}var Fh=class{segmentGroup;constructor(e){this.segmentGroup=e||null}},_h=class extends Error{urlTree;constructor(e){super(),this.urlTree=e}};function wB(t){return d2(new Fh(t))}function P4A(t){return d2(new te(4e3,!1))}function j4A(t){return d2(Gj(!1,Da.GuardRejected))}var GS=class{urlSerializer;urlTree;constructor(e,A){this.urlSerializer=e,this.urlTree=A}lineralizeSegments(e,A){let i=[],n=A.root;for(;;){if(i=i.concat(n.segments),n.numberOfChildren===0)return Ce(i);if(n.numberOfChildren>1||!n.children[wi])return P4A(`${e.redirectTo}`);n=n.children[wi]}}applyRedirectCommands(e,A,i,n,o){if(typeof A!="string"){let s=A,{queryParams:a,fragment:c,routeConfig:g,url:I,outlet:C,params:d,data:B,title:E}=n,u=da(o,()=>s({params:d,data:B,queryParams:a,fragment:c,routeConfig:g,url:I,outlet:C,title:E}));if(u instanceof wl)throw new _h(u);A=u}let r=this.applyRedirectCreateUrlTree(A,this.urlSerializer.parse(A),e,i);if(A[0]==="/")throw new _h(r);return r}applyRedirectCreateUrlTree(e,A,i,n){let o=this.createSegmentGroup(e,A.root,i,n);return new wl(o,this.createQueryParams(A.queryParams,this.urlTree.queryParams),A.fragment)}createQueryParams(e,A){let i={};return Object.entries(e).forEach(([n,o])=>{if(typeof o=="string"&&o[0]===":"){let s=o.substring(1);i[n]=A[s]}else i[n]=o}),i}createSegmentGroup(e,A,i,n){let o=this.createSegments(e,A.segments,i,n),r={};return Object.entries(A.children).forEach(([s,a])=>{r[s]=this.createSegmentGroup(e,a,i,n)}),new Nn(o,r)}createSegments(e,A,i,n){return A.map(o=>o.path[0]===":"?this.findPosParam(e,o,n):this.findOrReturn(o,i))}findPosParam(e,A,i){let n=i[A.path.substring(1)];if(!n)throw new te(4001,!1);return n}findOrReturn(e,A){let i=0;for(let n of A){if(n.path===e.path)return A.splice(i),n;i++}return e}},KS={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function q4A(t,e,A,i,n){let o=Yj(t,e,A);return o.matched?(i=Q4A(e,i),z4A(i,e,A,n).pipe(je(r=>r===!0?o:sA({},KS)))):Ce(o)}function Yj(t,e,A){if(e.path==="**")return V4A(A);if(e.path==="")return e.pathMatch==="full"&&(t.hasChildren()||A.length>0)?sA({},KS):{matched:!0,consumedSegments:[],remainingSegments:A,parameters:{},positionalParamSegments:{}};let n=(e.matcher||Ej)(A,t,e);if(!n)return sA({},KS);let o={};Object.entries(n.posParams??{}).forEach(([s,a])=>{o[s]=a.path});let r=n.consumed.length>0?sA(sA({},o),n.consumed[n.consumed.length-1].parameters):o;return{matched:!0,consumedSegments:n.consumed,remainingSegments:A.slice(n.consumed.length),parameters:r,positionalParamSegments:n.posParams??{}}}function V4A(t){return{matched:!0,parameters:t.length>0?uj(t).parameters:{},consumedSegments:t,remainingSegments:[],positionalParamSegments:{}}}function Cj(t,e,A,i){return A.length>0&&X4A(t,A,i)?{segmentGroup:new Nn(e,W4A(i,new Nn(A,t.children))),slicedSegments:[]}:A.length===0&&$4A(t,A,i)?{segmentGroup:new Nn(t.segments,Z4A(t,A,i,t.children)),slicedSegments:A}:{segmentGroup:new Nn(t.segments,t.children),slicedSegments:A}}function Z4A(t,e,A,i){let n={};for(let o of A)if(h8(t,e,o)&&!i[wg(o)]){let r=new Nn([],{});n[wg(o)]=r}return sA(sA({},i),n)}function W4A(t,e){let A={};A[wi]=e;for(let i of t)if(i.path===""&&wg(i)!==wi){let n=new Nn([],{});A[wg(i)]=n}return A}function X4A(t,e,A){return A.some(i=>h8(t,e,i)&&wg(i)!==wi)}function $4A(t,e,A){return A.some(i=>h8(t,e,i))}function h8(t,e,A){return(t.hasChildren()||e.length>0)&&A.pathMatch==="full"?!1:A.path===""}function A3A(t,e,A){return e.length===0&&!t.children[A]}var US=class{};function e3A(t,e,A,i,n,o,r="emptyOnly"){return new JS(t,e,A,i,n,r,o).recognize()}var t3A=31,JS=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(e,A,i,n,o,r,s){this.injector=e,this.configLoader=A,this.rootComponentType=i,this.config=n,this.urlTree=o,this.paramsInheritanceStrategy=r,this.urlSerializer=s,this.applyRedirects=new GS(this.urlSerializer,this.urlTree)}noMatchError(e){return new te(4002,`'${e.segmentGroup}'`)}recognize(){let e=Cj(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(e).pipe(je(({children:A,rootSnapshot:i})=>{let n=new rc(i,A),o=new xh("",n),r=Mj(i,[],this.urlTree.queryParams,this.urlTree.fragment);return r.queryParams=this.urlTree.queryParams,o.url=this.urlSerializer.serialize(r),{state:o,tree:r}}))}match(e){let A=new nC([],Object.freeze({}),Object.freeze(sA({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),wi,this.rootComponentType,null,{});return this.processSegmentGroup(this.injector,this.config,e,wi,A).pipe(je(i=>({children:i,rootSnapshot:A})),Gr(i=>{if(i instanceof _h)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof Fh?this.noMatchError(i):i}))}processSegmentGroup(e,A,i,n,o){return i.segments.length===0&&i.hasChildren()?this.processChildren(e,A,i,o):this.processSegment(e,A,i,i.segments,n,!0,o).pipe(je(r=>r instanceof rc?[r]:[]))}processChildren(e,A,i,n){let o=[];for(let r of Object.keys(i.children))r==="primary"?o.unshift(r):o.push(r);return ro(o).pipe(tl(r=>{let s=i.children[r],a=u4A(A,r);return this.processSegmentGroup(e,a,s,r,n)}),qv((r,s)=>(r.push(...s),r)),u2(null),jv(),or(r=>{if(r===null)return wB(i);let s=Tj(r);return i3A(s),Ce(s)}))}processSegment(e,A,i,n,o,r,s){return ro(A).pipe(tl(a=>this.processSegmentAgainstRoute(a._injector??e,A,a,i,n,o,r,s).pipe(Gr(c=>{if(c instanceof Fh)return Ce(null);throw c}))),ol(a=>!!a),Gr(a=>{if(Uj(a))return A3A(i,n,o)?Ce(new US):wB(i);throw a}))}processSegmentAgainstRoute(e,A,i,n,o,r,s,a){return wg(i)!==r&&(r===wi||!h8(n,o,i))?wB(n):i.redirectTo===void 0?this.matchSegmentAgainstRoute(e,n,i,o,r,a):this.allowRedirects&&s?this.expandSegmentAgainstRouteUsingRedirect(e,n,A,i,o,r,a):wB(n)}expandSegmentAgainstRouteUsingRedirect(e,A,i,n,o,r,s){let{matched:a,parameters:c,consumedSegments:g,positionalParamSegments:I,remainingSegments:C}=Yj(A,n,o);if(!a)return wB(A);typeof n.redirectTo=="string"&&n.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>t3A&&(this.allowRedirects=!1));let d=new nC(o,c,Object.freeze(sA({},this.urlTree.queryParams)),this.urlTree.fragment,dj(n),wg(n),n.component??n._loadedComponent??null,n,Bj(n)),B=B8(d,s,this.paramsInheritanceStrategy);d.params=Object.freeze(B.params),d.data=Object.freeze(B.data);let E=this.applyRedirects.applyRedirectCommands(g,n.redirectTo,I,d,e);return this.applyRedirects.lineralizeSegments(n,E).pipe(or(u=>this.processSegment(e,i,A,u.concat(C),r,!1,s)))}matchSegmentAgainstRoute(e,A,i,n,o,r){let s=q4A(A,i,n,e,this.urlSerializer);return i.path==="**"&&(A.children={}),s.pipe($n(a=>a.matched?(e=i._injector??e,this.getChildConfig(e,i,n).pipe($n(({routes:c})=>{let g=i._loadedInjector??e,{parameters:I,consumedSegments:C,remainingSegments:d}=a,B=new nC(C,I,Object.freeze(sA({},this.urlTree.queryParams)),this.urlTree.fragment,dj(i),wg(i),i.component??i._loadedComponent??null,i,Bj(i)),E=B8(B,r,this.paramsInheritanceStrategy);B.params=Object.freeze(E.params),B.data=Object.freeze(E.data);let{segmentGroup:u,slicedSegments:h}=Cj(A,C,d,c);if(h.length===0&&u.hasChildren())return this.processChildren(g,c,u,B).pipe(je(x=>new rc(B,x)));if(c.length===0&&h.length===0)return Ce(new rc(B,[]));let w=wg(i)===o;return this.processSegment(g,c,u,h,w?wi:o,!0,B).pipe(je(x=>new rc(B,x instanceof rc?[x]:[])))}))):wB(A)))}getChildConfig(e,A,i){return A.children?Ce({routes:A.children,injector:e}):A.loadChildren?A._loadedRoutes!==void 0?Ce({routes:A._loadedRoutes,injector:A._loadedInjector}):O4A(e,A,i,this.urlSerializer).pipe(or(n=>n?this.configLoader.loadChildren(e,A).pipe(So(o=>{A._loadedRoutes=o.routes,A._loadedInjector=o.injector})):j4A(A))):Ce({routes:[],injector:e})}};function i3A(t){t.sort((e,A)=>e.value.outlet===wi?-1:A.value.outlet===wi?1:e.value.outlet.localeCompare(A.value.outlet))}function n3A(t){let e=t.value.routeConfig;return e&&e.path===""}function Tj(t){let e=[],A=new Set;for(let i of t){if(!n3A(i)){e.push(i);continue}let n=e.find(o=>i.value.routeConfig===o.value.routeConfig);n!==void 0?(n.children.push(...i.children),A.add(n)):e.push(i)}for(let i of A){let n=Tj(i.children);e.push(new rc(i.value,n))}return e.filter(i=>!A.has(i))}function dj(t){return t.data||{}}function Bj(t){return t.resolve||{}}function o3A(t,e,A,i,n,o){return or(r=>e3A(t,e,A,i,r.extractedUrl,n,o).pipe(je(({state:s,tree:a})=>Fe(sA({},r),{targetSnapshot:s,urlAfterRedirects:a}))))}function r3A(t,e){return or(A=>{let{targetSnapshot:i,guards:{canActivateChecks:n}}=A;if(!n.length)return Ce(A);let o=new Set(n.map(a=>a.route)),r=new Set;for(let a of o)if(!r.has(a))for(let c of Hj(a))r.add(c);let s=0;return ro(r).pipe(tl(a=>o.has(a)?s3A(a,i,t,e):(a.data=B8(a,a.parent,t).resolve,Ce(void 0))),So(()=>s++),yd(1),or(a=>s===r.size?Ce(A):lr))})}function Hj(t){let e=t.children.map(A=>Hj(A)).flat();return[t,...e]}function s3A(t,e,A,i){let n=t.routeConfig,o=t._resolve;return n?.title!==void 0&&!Nj(n)&&(o[Gh]=n.title),a3A(o,t,e,i).pipe(je(r=>(t._resolvedData=r,t.data=B8(t,t.parent,A).resolve,null)))}function a3A(t,e,A,i){let n=bS(t);if(n.length===0)return Ce({});let o={};return ro(n).pipe(or(r=>c3A(t[r],e,A,i).pipe(ol(),So(s=>{if(s instanceof xB)throw E8(new H2,s);o[r]=s}))),yd(1),je(()=>o),Gr(r=>Uj(r)?lr:d2(r)))}function c3A(t,e,A,i){let n=Kh(e)??i,o=FB(t,n),r=o.resolve?o.resolve(e,A):da(n,()=>o(e,A));return z2(r)}function vS(t){return $n(e=>{let A=t(e);return A?ro(A).pipe(je(()=>e)):Ce(e)})}var PS=(()=>{class t{buildTitle(A){let i,n=A.root;for(;n!==void 0;)i=this.getResolvedTitleForRoute(n)??i,n=n.children.find(o=>o.outlet===wi);return i}getResolvedTitleForRoute(A){return A.data[Gh]}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(Oj),providedIn:"root"})}return t})(),Oj=(()=>{class t extends PS{title;constructor(A){super(),this.title=A}updateTitle(A){let i=this.buildTitle(A);i!==void 0&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||t)(be(lP))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),aC=new eA("",{providedIn:"root",factory:()=>({})}),_B=new eA(""),f8=(()=>{class t{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=f(oO);loadComponent(A){if(this.componentLoaders.get(A))return this.componentLoaders.get(A);if(A._loadedComponent)return Ce(A._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(A);let i=z2(A.loadComponent()).pipe(je(Pj),So(o=>{this.onLoadEndListener&&this.onLoadEndListener(A),A._loadedComponent=o}),nl(()=>{this.componentLoaders.delete(A)})),n=new C2(i,()=>new qA).pipe(ud());return this.componentLoaders.set(A,n),n}loadChildren(A,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return Ce({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);let o=zj(i,this.compiler,A,this.onLoadEndListener).pipe(nl(()=>{this.childrenLoaders.delete(i)})),r=new C2(o,()=>new qA).pipe(ud());return this.childrenLoaders.set(i,r),r}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function zj(t,e,A,i){return z2(t.loadChildren()).pipe(je(Pj),or(n=>n instanceof ub||Array.isArray(n)?Ce(n):ro(e.compileModuleAsync(n))),je(n=>{i&&i(t);let o,r,s=!1;return Array.isArray(n)?(r=n,s=!0):(o=n.create(A).injector,r=o.get(_B,[],{optional:!0,self:!0}).flat()),{routes:r.map(zS),injector:o}}))}function g3A(t){return t&&typeof t=="object"&&"default"in t}function Pj(t){return g3A(t)?t.default:t}var m8=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(l3A),providedIn:"root"})}return t})(),l3A=(()=>{class t{shouldProcessUrl(A){return!0}extract(A){return A}merge(A,i){return A}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),jS=new eA(""),qS=new eA("");function jj(t,e,A){let i=t.get(qS),n=t.get(at);return t.get(ye).runOutsideAngular(()=>{if(!n.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,new Promise(c=>setTimeout(c));let o,r=new Promise(c=>{o=c}),s=n.startViewTransition(()=>(o(),I3A(t))),{onViewTransitionCreated:a}=i;return a&&da(t,()=>a({transition:s,from:e,to:A})),r})}function I3A(t){return new Promise(e=>{Ir({read:()=>setTimeout(e)},{injector:t})})}var VS=new eA(""),p8=(()=>{class t{currentNavigation=null;currentTransition=null;lastSuccessfulNavigation=null;events=new qA;transitionAbortSubject=new qA;configLoader=f(f8);environmentInjector=f(vr);destroyRef=f(f0);urlSerializer=f(rC);rootContexts=f(sC);location=f(ha);inputBindingEnabled=f(Uh,{optional:!0})!==null;titleStrategy=f(PS);options=f(aC,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=f(m8);createViewTransition=f(jS,{optional:!0});navigationErrorHandler=f(VS,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>Ce(void 0);rootComponentType=null;destroyed=!1;constructor(){let A=n=>this.events.next(new s8(n)),i=n=>this.events.next(new a8(n));this.configLoader.onLoadEndListener=i,this.configLoader.onLoadStartListener=A,this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(A){let i=++this.navigationId;this.transitions?.next(Fe(sA({},A),{extractedUrl:this.urlHandlingStrategy.extract(A.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:i}))}setupNavigations(A){return this.transitions=new Fi(null),this.transitions.pipe(Nt(i=>i!==null),$n(i=>{let n=!1,o=!1;return Ce(i).pipe($n(r=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",Da.SupersededByNewNavigation),lr;this.currentTransition=i,this.currentNavigation={id:r.id,initialUrl:r.rawUrl,extractedUrl:r.extractedUrl,targetBrowserUrl:typeof r.extras.browserUrl=="string"?this.urlSerializer.parse(r.extras.browserUrl):r.extras.browserUrl,trigger:r.source,extras:r.extras,previousNavigation:this.lastSuccessfulNavigation?Fe(sA({},this.lastSuccessfulNavigation),{previousNavigation:null}):null};let s=!A.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),a=r.extras.onSameUrlNavigation??A.onSameUrlNavigation;if(!s&&a!=="reload"){let c="";return this.events.next(new yl(r.id,this.urlSerializer.serialize(r.rawUrl),c,kB.IgnoredSameUrlNavigation)),r.resolve(!1),lr}if(this.urlHandlingStrategy.shouldProcessUrl(r.rawUrl))return Ce(r).pipe($n(c=>(this.events.next(new O2(c.id,this.urlSerializer.serialize(c.extractedUrl),c.source,c.restoredState)),c.id!==this.navigationId?lr:Promise.resolve(c))),o3A(this.environmentInjector,this.configLoader,this.rootComponentType,A.config,this.urlSerializer,this.paramsInheritanceStrategy),So(c=>{i.targetSnapshot=c.targetSnapshot,i.urlAfterRedirects=c.urlAfterRedirects,this.currentNavigation=Fe(sA({},this.currentNavigation),{finalUrl:c.urlAfterRedirects});let g=new Sh(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(g)}));if(s&&this.urlHandlingStrategy.shouldProcessUrl(r.currentRawUrl)){let{id:c,extractedUrl:g,source:I,restoredState:C,extras:d}=r,B=new O2(c,this.urlSerializer.serialize(g),I,C);this.events.next(B);let E=Lj(this.rootComponentType).snapshot;return this.currentTransition=i=Fe(sA({},r),{targetSnapshot:E,urlAfterRedirects:g,extras:Fe(sA({},d),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.finalUrl=g,Ce(i)}else{let c="";return this.events.next(new yl(r.id,this.urlSerializer.serialize(r.extractedUrl),c,kB.IgnoredByUrlHandlingStrategy)),r.resolve(!1),lr}}),So(r=>{let s=new i8(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects),r.targetSnapshot);this.events.next(s)}),je(r=>(this.currentTransition=i=Fe(sA({},r),{guards:y4A(r.targetSnapshot,r.currentSnapshot,this.rootContexts)}),i)),_4A(this.environmentInjector,r=>this.events.next(r)),So(r=>{if(i.guardsResult=r.guardsResult,r.guardsResult&&typeof r.guardsResult!="boolean")throw E8(this.urlSerializer,r.guardsResult);let s=new n8(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects),r.targetSnapshot,!!r.guardsResult);this.events.next(s)}),Nt(r=>r.guardsResult?!0:(this.cancelNavigationTransition(r,"",Da.GuardRejected),!1)),vS(r=>{if(r.guards.canActivateChecks.length!==0)return Ce(r).pipe(So(s=>{let a=new o8(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(a)}),$n(s=>{let a=!1;return Ce(s).pipe(r3A(this.paramsInheritanceStrategy,this.environmentInjector),So({next:()=>a=!0,complete:()=>{a||this.cancelNavigationTransition(s,"",Da.NoDataFromResolver)}}))}),So(s=>{let a=new r8(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(a)}))}),vS(r=>{let s=a=>{let c=[];a.routeConfig?.loadComponent&&!a.routeConfig._loadedComponent&&c.push(this.configLoader.loadComponent(a.routeConfig).pipe(So(g=>{a.component=g}),je(()=>{})));for(let g of a.children)c.push(...s(g));return c};return ga(s(r.targetSnapshot.root)).pipe(u2(null),Xn(1))}),vS(()=>this.afterPreactivation()),$n(()=>{let{currentSnapshot:r,targetSnapshot:s}=i,a=this.createViewTransition?.(this.environmentInjector,r.root,s.root);return a?ro(a).pipe(je(()=>i)):Ce(i)}),je(r=>{let s=f4A(A.routeReuseStrategy,r.targetSnapshot,r.currentRouterState);return this.currentTransition=i=Fe(sA({},r),{targetRouterState:s}),this.currentNavigation.targetRouterState=s,i}),So(()=>{this.events.next(new Rh)}),w4A(this.rootContexts,A.routeReuseStrategy,r=>this.events.next(r),this.inputBindingEnabled),Xn(1),So({next:r=>{n=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new ac(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects))),this.titleStrategy?.updateTitle(r.targetRouterState.snapshot),r.resolve(!0)},complete:()=>{n=!0}}),kt(this.transitionAbortSubject.pipe(So(r=>{throw r}))),nl(()=>{!n&&!o&&this.cancelNavigationTransition(i,"",Da.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation=null,this.currentTransition=null)}),Gr(r=>{if(this.destroyed)return i.resolve(!1),lr;if(o=!0,Kj(r))this.events.next(new Dl(i.id,this.urlSerializer.serialize(i.extractedUrl),r.message,r.cancellationCode)),D4A(r)?this.events.next(new LB(r.url,r.navigationBehaviorOptions)):i.resolve(!1);else{let s=new SB(i.id,this.urlSerializer.serialize(i.extractedUrl),r,i.targetSnapshot??void 0);try{let a=da(this.environmentInjector,()=>this.navigationErrorHandler?.(s));if(a instanceof xB){let{message:c,cancellationCode:g}=E8(this.urlSerializer,a);this.events.next(new Dl(i.id,this.urlSerializer.serialize(i.extractedUrl),c,g)),this.events.next(new LB(a.redirectTo,a.navigationBehaviorOptions))}else throw this.events.next(s),r}catch(a){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(a)}}return lr}))}))}cancelNavigationTransition(A,i,n){let o=new Dl(A.id,this.urlSerializer.serialize(A.extractedUrl),i,n);this.events.next(o),A.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let A=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=this.currentNavigation?.targetBrowserUrl??this.currentNavigation?.extractedUrl;return A.toString()!==i?.toString()&&!this.currentNavigation?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function C3A(t){return t!==A8}var qj=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(d3A),providedIn:"root"})}return t})(),u8=class{shouldDetach(e){return!1}store(e,A){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,A){return e.routeConfig===A.routeConfig}},d3A=(()=>{class t extends u8{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Vj=(()=>{class t{urlSerializer=f(rC);options=f(aC,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=f(ha);urlHandlingStrategy=f(m8);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new wl;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:A,initialUrl:i,targetBrowserUrl:n}){let o=A!==void 0?this.urlHandlingStrategy.merge(A,i):i,r=n??o;return r instanceof wl?this.urlSerializer.serialize(r):r}commitTransition({targetRouterState:A,finalUrl:i,initialUrl:n}){i&&A?(this.currentUrlTree=i,this.rawUrlTree=this.urlHandlingStrategy.merge(i,n),this.routerState=A):this.rawUrlTree=n}routerState=Lj(null);getRouterState(){return this.routerState}stateMemento=this.createStateMemento();updateStateMemento(){this.stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}resetInternalState({finalUrl:A}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,A??this.rawUrlTree)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(B3A),providedIn:"root"})}return t})(),B3A=(()=>{class t extends Vj{currentPageId=0;lastSuccessfulId=-1;restoredState(){return this.location.getState()}get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(A){return this.location.subscribe(i=>{i.type==="popstate"&&setTimeout(()=>{A(i.url,i.state,"popstate")})})}handleRouterEvent(A,i){A instanceof O2?this.updateStateMemento():A instanceof yl?this.commitTransition(i):A instanceof Sh?this.urlUpdateStrategy==="eager"&&(i.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(i),i)):A instanceof Rh?(this.commitTransition(i),this.urlUpdateStrategy==="deferred"&&!i.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(i),i)):A instanceof Dl&&(A.code===Da.GuardRejected||A.code===Da.NoDataFromResolver)?this.restoreHistory(i):A instanceof SB?this.restoreHistory(i,!0):A instanceof ac&&(this.lastSuccessfulId=A.id,this.currentPageId=this.browserPageId)}setBrowserUrl(A,{extras:i,id:n}){let{replaceUrl:o,state:r}=i;if(this.location.isCurrentPathEqualTo(A)||o){let s=this.browserPageId,a=sA(sA({},r),this.generateNgRouterState(n,s));this.location.replaceState(A,"",a)}else{let s=sA(sA({},r),this.generateNgRouterState(n,this.browserPageId+1));this.location.go(A,"",s)}}restoreHistory(A,i=!1){if(this.canceledNavigationResolution==="computed"){let n=this.browserPageId,o=this.currentPageId-n;o!==0?this.location.historyGo(o):this.getCurrentUrlTree()===A.finalUrl&&o===0&&(this.resetInternalState(A),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(i&&this.resetInternalState(A),this.resetUrlToCurrentUrlTree())}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(A,i){return this.canceledNavigationResolution==="computed"?{navigationId:A,\u0275routerPageId:i}:{navigationId:A}}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function D8(t,e){t.events.pipe(Nt(A=>A instanceof ac||A instanceof Dl||A instanceof SB||A instanceof yl),je(A=>A instanceof ac||A instanceof yl?0:(A instanceof Dl?A.code===Da.Redirect||A.code===Da.SupersededByNewNavigation:!1)?2:1),Nt(A=>A!==2),Xn(1)).subscribe(()=>{e()})}var E3A={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Q3A={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"},vl=(()=>{class t{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=f(mb);stateManager=f(Vj);options=f(aC,{optional:!0})||{};pendingTasks=f(m0);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=f(p8);urlSerializer=f(rC);location=f(ha);urlHandlingStrategy=f(m8);_events=new qA;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=f(qj);onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=f(_B,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!f(Uh,{optional:!0});constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:A=>{this.console.warn(A)}}),this.subscribeToNavigationEvents()}eventsSubscription=new Kt;subscribeToNavigationEvents(){let A=this.navigationTransitions.events.subscribe(i=>{try{let n=this.navigationTransitions.currentTransition,o=this.navigationTransitions.currentNavigation;if(n!==null&&o!==null){if(this.stateManager.handleRouterEvent(i,o),i instanceof Dl&&i.code!==Da.Redirect&&i.code!==Da.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof ac)this.navigated=!0;else if(i instanceof LB){let r=i.navigationBehaviorOptions,s=this.urlHandlingStrategy.merge(i.url,n.currentRawUrl),a=sA({browserUrl:n.extras.browserUrl,info:n.extras.info,skipLocationChange:n.extras.skipLocationChange,replaceUrl:n.extras.replaceUrl||this.urlUpdateStrategy==="eager"||C3A(n.source)},r);this.scheduleNavigation(s,A8,null,a,{resolve:n.resolve,reject:n.reject,promise:n.promise})}}h3A(i)&&this._events.next(i)}catch(n){this.navigationTransitions.transitionAbortSubject.next(n)}});this.eventsSubscription.add(A)}resetRootComponentType(A){this.routerState.root.component=A,this.navigationTransitions.rootComponentType=A}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),A8,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((A,i,n)=>{this.navigateToSyncWithBrowser(A,n,i)})}navigateToSyncWithBrowser(A,i,n){let o={replaceUrl:!0},r=n?.navigationId?n:null;if(n){let a=sA({},n);delete a.navigationId,delete a.\u0275routerPageId,Object.keys(a).length!==0&&(o.state=a)}let s=this.parseUrl(A);this.scheduleNavigation(s,i,r,o)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(A){this.config=A.map(zS),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(A,i={}){let{relativeTo:n,queryParams:o,fragment:r,queryParamsHandling:s,preserveFragment:a}=i,c=a?this.currentUrlTree.fragment:r,g=null;switch(s??this.options.defaultQueryParamsHandling){case"merge":g=sA(sA({},this.currentUrlTree.queryParams),o);break;case"preserve":g=this.currentUrlTree.queryParams;break;default:g=o||null}g!==null&&(g=this.removeEmptyProps(g));let I;try{let C=n?n.snapshot:this.routerState.snapshot.root;I=bj(C)}catch{(typeof A[0]!="string"||A[0][0]!=="/")&&(A=[]),I=this.currentUrlTree.root}return kj(I,A,g,c??null)}navigateByUrl(A,i={skipLocationChange:!1}){let n=bB(A)?A:this.parseUrl(A),o=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(o,A8,null,i)}navigate(A,i={skipLocationChange:!1}){return u3A(A),this.navigateByUrl(this.createUrlTree(A,i),i)}serializeUrl(A){return this.urlSerializer.serialize(A)}parseUrl(A){try{return this.urlSerializer.parse(A)}catch{return this.urlSerializer.parse("/")}}isActive(A,i){let n;if(i===!0?n=sA({},E3A):i===!1?n=sA({},Q3A):n=i,bB(A))return cj(this.currentUrlTree,A,n);let o=this.parseUrl(A);return cj(this.currentUrlTree,o,n)}removeEmptyProps(A){return Object.entries(A).reduce((i,[n,o])=>(o!=null&&(i[n]=o),i),{})}scheduleNavigation(A,i,n,o,r){if(this.disposed)return Promise.resolve(!1);let s,a,c;r?(s=r.resolve,a=r.reject,c=r.promise):c=new Promise((I,C)=>{s=I,a=C});let g=this.pendingTasks.add();return D8(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(g))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:n,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:A,extras:o,resolve:s,reject:a,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(I=>Promise.reject(I))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function u3A(t){for(let e=0;e{class t{router;injector;preloadingStrategy;loader;subscription;constructor(A,i,n,o){this.router=A,this.injector=i,this.preloadingStrategy=n,this.loader=o}setUpPreloading(){this.subscription=this.router.events.pipe(Nt(A=>A instanceof ac),tl(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(A,i){let n=[];for(let o of i){o.providers&&!o._injector&&(o._injector=Nu(o.providers,A,`Route: ${o.path}`));let r=o._injector??A,s=o._loadedInjector??r;(o.loadChildren&&!o._loadedRoutes&&o.canLoad===void 0||o.loadComponent&&!o._loadedComponent)&&n.push(this.preloadConfig(r,o)),(o.children||o._loadedRoutes)&&n.push(this.processRoutes(s,o.children??o._loadedRoutes))}return ro(n).pipe(E2())}preloadConfig(A,i){return this.preloadingStrategy.preload(i,()=>{let n;i.loadChildren&&i.canLoad===void 0?n=this.loader.loadChildren(A,i):n=Ce(null);let o=n.pipe(or(r=>r===null?Ce(void 0):(i._loadedRoutes=r.routes,i._loadedInjector=r.injector,this.processRoutes(r.injector??A,r.routes))));if(i.loadComponent&&!i._loadedComponent){let r=this.loader.loadComponent(i);return ro([o,r]).pipe(E2())}else return o})}static \u0275fac=function(i){return new(i||t)(be(vl),be(vr),be(Yh),be(f8))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Wj=new eA(""),f3A=(()=>{class t{urlSerializer;transitions;viewportScroller;zone;options;routerEventsSubscription;scrollEventsSubscription;lastId=0;lastSource="imperative";restoredId=0;store={};constructor(A,i,n,o,r={}){this.urlSerializer=A,this.transitions=i,this.viewportScroller=n,this.zone=o,this.options=r,r.scrollPositionRestoration||="disabled",r.anchorScrolling||="disabled"}init(){this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(A=>{A instanceof O2?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=A.navigationTrigger,this.restoredId=A.restoredState?A.restoredState.navigationId:0):A instanceof ac?(this.lastId=A.id,this.scheduleScrollEvent(A,this.urlSerializer.parse(A.urlAfterRedirects).fragment)):A instanceof yl&&A.code===kB.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(A,this.urlSerializer.parse(A.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(A=>{A instanceof RB&&(A.position?this.options.scrollPositionRestoration==="top"?this.viewportScroller.scrollToPosition([0,0]):this.options.scrollPositionRestoration==="enabled"&&this.viewportScroller.scrollToPosition(A.position):A.anchor&&this.options.anchorScrolling==="enabled"?this.viewportScroller.scrollToAnchor(A.anchor):this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(A,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new RB(A,this.lastSource==="popstate"?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static \u0275fac=function(i){IH()};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();function m3A(t){return t.routerState.root}function Th(t,e){return{\u0275kind:t,\u0275providers:e}}function p3A(){let t=f(Zt);return e=>{let A=t.get(Ca);if(e!==A.components[0])return;let i=t.get(vl),n=t.get(Xj);t.get(WS)===1&&i.initialNavigation(),t.get(eq,null,bi.Optional)?.setUpPreloading(),t.get(Wj,null,bi.Optional)?.init(),i.resetRootComponentType(A.componentTypes[0]),n.closed||(n.next(),n.complete(),n.unsubscribe())}}var Xj=new eA("",{factory:()=>new qA}),WS=new eA("",{providedIn:"root",factory:()=>1});function $j(){let t=[{provide:WS,useValue:0},yb(()=>{let e=f(Zt);return e.get(_b,Promise.resolve()).then(()=>new Promise(i=>{let n=e.get(vl),o=e.get(Xj);D8(n,()=>{i(!0)}),e.get(p8).afterPreactivation=()=>(i(!0),o.closed?Ce(void 0):o),n.initialNavigation()}))})];return Th(2,t)}function Aq(){let t=[yb(()=>{f(vl).setUpLocationChangeListener()}),{provide:WS,useValue:2}];return Th(3,t)}var eq=new eA("");function tq(t){return Th(0,[{provide:eq,useExisting:Zj},{provide:Yh,useExisting:t}])}function iq(){return Th(8,[HS,{provide:Uh,useExisting:HS}])}function nq(t){Cg("NgRouterViewTransitions");let e=[{provide:jS,useValue:jj},{provide:qS,useValue:sA({skipNextTransition:!!t?.skipInitialTransition},t)}];return Th(9,e)}var oq=[ha,{provide:rC,useClass:H2},vl,sC,{provide:xc,useFactory:m3A,deps:[vl]},f8,[]],w8=(()=>{class t{constructor(){}static forRoot(A,i){return{ngModule:t,providers:[oq,[],{provide:_B,multi:!0,useValue:A},[],i?.errorHandler?{provide:VS,useValue:i.errorHandler}:[],{provide:aC,useValue:i||{}},i?.useHash?w3A():y3A(),D3A(),i?.preloadingStrategy?tq(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?v3A(i):[],i?.bindToComponentInputs?iq().\u0275providers:[],i?.enableViewTransitions?nq().\u0275providers:[],M3A()]}}static forChild(A){return{ngModule:t,providers:[{provide:_B,multi:!0,useValue:A}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();function D3A(){return{provide:Wj,useFactory:()=>{let t=f(fO),e=f(ye),A=f(aC),i=f(p8),n=f(rC);return A.scrollOffset&&t.setOffset(A.scrollOffset),new f3A(n,i,t,e,A)}}}function w3A(){return{provide:D0,useClass:Jb}}function y3A(){return{provide:D0,useClass:kp}}function v3A(t){return[t.initialNavigation==="disabled"?Aq().\u0275providers:[],t.initialNavigation==="enabledBlocking"?$j().\u0275providers:[]]}var ZS=new eA("");function M3A(){return[{provide:ZS,useFactory:p3A},{provide:vb,multi:!0,useExisting:ZS}]}var k3A=["*"];var S3A=new eA("MAT_CARD_CONFIG"),y8=(()=>{class t{appearance;constructor(){let A=f(S3A,{optional:!0});this.appearance=A?.appearance||"raised"}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,n){i&2&&he("mat-mdc-card-outlined",n.appearance==="outlined")("mdc-card--outlined",n.appearance==="outlined")},inputs:{appearance:"appearance"},exportAs:["matCard"],ngContentSelectors:k3A,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},styles:['.mat-mdc-card{display:flex;flex-direction:column;box-sizing:border-box;position:relative;border-style:solid;border-width:0;background-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium));box-shadow:var(--mdc-elevated-card-container-elevation, var(--mat-sys-level1))}.mat-mdc-card::after{position:absolute;top:0;left:0;width:100%;height:100%;border:solid 1px rgba(0,0,0,0);content:"";display:block;pointer-events:none;box-sizing:border-box;border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium))}.mat-mdc-card-outlined{background-color:var(--mdc-outlined-card-container-color, var(--mat-sys-surface));border-radius:var(--mdc-outlined-card-container-shape, var(--mat-sys-corner-medium));border-width:var(--mdc-outlined-card-outline-width, 1px);border-color:var(--mdc-outlined-card-outline-color, var(--mat-sys-outline-variant));box-shadow:var(--mdc-outlined-card-container-elevation, var(--mat-sys-level0))}.mat-mdc-card-outlined::after{border:none}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mat-mdc-card-actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font, var(--mat-sys-title-large-font));line-height:var(--mat-card-title-text-line-height, var(--mat-sys-title-large-line-height));font-size:var(--mat-card-title-text-size, var(--mat-sys-title-large-size));letter-spacing:var(--mat-card-title-text-tracking, var(--mat-sys-title-large-tracking));font-weight:var(--mat-card-title-text-weight, var(--mat-sys-title-large-weight))}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color, var(--mat-sys-on-surface));font-family:var(--mat-card-subtitle-text-font, var(--mat-sys-title-medium-font));line-height:var(--mat-card-subtitle-text-line-height, var(--mat-sys-title-medium-line-height));font-size:var(--mat-card-subtitle-text-size, var(--mat-sys-title-medium-size));letter-spacing:var(--mat-card-subtitle-text-tracking, var(--mat-sys-title-medium-tracking));font-weight:var(--mat-card-subtitle-text-weight, var(--mat-sys-title-medium-weight))}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end}'],encapsulation:2,changeDetection:0})}return t})();var rq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,pn]})}return t})();var v8=class{};function M8(t){return t&&typeof t.connect=="function"&&!(t instanceof C2)}var GB=function(t){return t[t.REPLACED=0]="REPLACED",t[t.INSERTED=1]="INSERTED",t[t.MOVED=2]="MOVED",t[t.REMOVED=3]="REMOVED",t}(GB||{}),Hh=new eA("_ViewRepeater"),KB=class{applyChanges(e,A,i,n,o){e.forEachOperation((r,s,a)=>{let c,g;if(r.previousIndex==null){let I=i(r,s,a);c=A.createEmbeddedView(I.templateRef,I.context,I.index),g=GB.INSERTED}else a==null?(A.remove(s),g=GB.REMOVED):(c=A.get(s),A.move(c,a),g=GB.MOVED);o&&o({context:c?.context,operation:g,record:r})})}detach(){}};var P2=class{_multiple;_emitChanges;compareWith;_selection=new Set;_deselectedToEmit=[];_selectedToEmit=[];_selected;get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}changed=new qA;constructor(e=!1,A,i=!0,n){this._multiple=e,this._emitChanges=i,this.compareWith=n,A&&A.length&&(e?A.forEach(o=>this._markSelected(o)):this._markSelected(A[0]),this._selectedToEmit.length=0)}select(...e){this._verifyValueAssignment(e),e.forEach(i=>this._markSelected(i));let A=this._hasQueuedChanges();return this._emitChangeEvent(),A}deselect(...e){this._verifyValueAssignment(e),e.forEach(i=>this._unmarkSelected(i));let A=this._hasQueuedChanges();return this._emitChangeEvent(),A}setSelection(...e){this._verifyValueAssignment(e);let A=this.selected,i=new Set(e);e.forEach(o=>this._markSelected(o)),A.filter(o=>!i.has(this._getConcreteValue(o,i))).forEach(o=>this._unmarkSelected(o));let n=this._hasQueuedChanges();return this._emitChangeEvent(),n}toggle(e){return this.isSelected(e)?this.deselect(e):this.select(e)}clear(e=!0){this._unmarkAll();let A=this._hasQueuedChanges();return e&&this._emitChangeEvent(),A}isSelected(e){return this._selection.has(this._getConcreteValue(e))}isEmpty(){return this._selection.size===0}hasValue(){return!this.isEmpty()}sort(e){this._multiple&&this.selected&&this._selected.sort(e)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(e){e=this._getConcreteValue(e),this.isSelected(e)||(this._multiple||this._unmarkAll(),this.isSelected(e)||this._selection.add(e),this._emitChanges&&this._selectedToEmit.push(e))}_unmarkSelected(e){e=this._getConcreteValue(e),this.isSelected(e)&&(this._selection.delete(e),this._emitChanges&&this._deselectedToEmit.push(e))}_unmarkAll(){this.isEmpty()||this._selection.forEach(e=>this._unmarkSelected(e))}_verifyValueAssignment(e){e.length>1&&this._multiple}_hasQueuedChanges(){return!!(this._deselectedToEmit.length||this._selectedToEmit.length)}_getConcreteValue(e,A){if(this.compareWith){A=A??this._selection;for(let i of A)if(this.compareWith(e,i))return i;return e}else return e}};var b8=(()=>{class t{_listeners=[];notify(A,i){for(let n of this._listeners)n(A,i)}listen(A){return this._listeners.push(A),()=>{this._listeners=this._listeners.filter(i=>A!==i)}}ngOnDestroy(){this._listeners=[]}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var L3A=20,q2=(()=>{class t{_ngZone=f(ye);_platform=f(ni);_renderer=f(Ms).createRenderer(null,null);_cleanupGlobalListener;constructor(){}_scrolled=new qA;_scrolledCount=0;scrollContainers=new Map;register(A){this.scrollContainers.has(A)||this.scrollContainers.set(A,A.elementScrolled().subscribe(()=>this._scrolled.next(A)))}deregister(A){let i=this.scrollContainers.get(A);i&&(i.unsubscribe(),this.scrollContainers.delete(A))}scrolled(A=L3A){return this._platform.isBrowser?new gt(i=>{this._cleanupGlobalListener||(this._cleanupGlobalListener=this._ngZone.runOutsideAngular(()=>this._renderer.listen("document","scroll",()=>this._scrolled.next())));let n=A>0?this._scrolled.pipe(Dd(A)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{n.unsubscribe(),this._scrolledCount--,this._scrolledCount||(this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0)}}):Ce()}ngOnDestroy(){this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0,this.scrollContainers.forEach((A,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(A,i){let n=this.getAncestorScrollContainers(A);return this.scrolled(i).pipe(Nt(o=>!o||n.indexOf(o)>-1))}getAncestorScrollContainers(A){let i=[];return this.scrollContainers.forEach((n,o)=>{this._scrollableContainsElement(o,A)&&i.push(o)}),i}_scrollableContainsElement(A,i){let n=fa(i),o=A.getElementRef().nativeElement;do if(n==o)return!0;while(n=n.parentElement);return!1}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),k0=(()=>{class t{elementRef=f(se);scrollDispatcher=f(q2);ngZone=f(ye);dir=f(po,{optional:!0});_scrollElement=this.elementRef.nativeElement;_destroyed=new qA;_renderer=f(qi);_cleanupScroll;_elementScrolled=new qA;constructor(){}ngOnInit(){this._cleanupScroll=this.ngZone.runOutsideAngular(()=>this._renderer.listen(this._scrollElement,"scroll",A=>this._elementScrolled.next(A))),this.scrollDispatcher.register(this)}ngOnDestroy(){this._cleanupScroll?.(),this._elementScrolled.complete(),this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(A){let i=this.elementRef.nativeElement,n=this.dir&&this.dir.value=="rtl";A.left==null&&(A.left=n?A.end:A.start),A.right==null&&(A.right=n?A.start:A.end),A.bottom!=null&&(A.top=i.scrollHeight-i.clientHeight-A.bottom),n&&lB()!=hg.NORMAL?(A.left!=null&&(A.right=i.scrollWidth-i.clientWidth-A.left),lB()==hg.INVERTED?A.left=A.right:lB()==hg.NEGATED&&(A.left=A.right?-A.right:A.right)):A.right!=null&&(A.left=i.scrollWidth-i.clientWidth-A.right),this._applyScrollToOptions(A)}_applyScrollToOptions(A){let i=this.elementRef.nativeElement;$p()?i.scrollTo(A):(A.top!=null&&(i.scrollTop=A.top),A.left!=null&&(i.scrollLeft=A.left))}measureScrollOffset(A){let i="left",n="right",o=this.elementRef.nativeElement;if(A=="top")return o.scrollTop;if(A=="bottom")return o.scrollHeight-o.clientHeight-o.scrollTop;let r=this.dir&&this.dir.value=="rtl";return A=="start"?A=r?n:i:A=="end"&&(A=r?i:n),r&&lB()==hg.INVERTED?A==i?o.scrollWidth-o.clientWidth-o.scrollLeft:o.scrollLeft:r&&lB()==hg.NEGATED?A==i?o.scrollLeft+o.scrollWidth-o.clientWidth:-o.scrollLeft:A==i?o.scrollLeft:o.scrollWidth-o.clientWidth-o.scrollLeft}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return t})(),x3A=20,Nc=(()=>{class t{_platform=f(ni);_listeners;_viewportSize;_change=new qA;_document=f(at,{optional:!0});constructor(){let A=f(ye),i=f(Ms).createRenderer(null,null);A.runOutsideAngular(()=>{if(this._platform.isBrowser){let n=o=>this._change.next(o);this._listeners=[i.listen("window","resize",n),i.listen("window","orientationchange",n)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(A=>A()),this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();let A={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),A}getViewportRect(){let A=this.getViewportScrollPosition(),{width:i,height:n}=this.getViewportSize();return{top:A.top,left:A.left,bottom:A.top+n,right:A.left+i,height:n,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};let A=this._document,i=this._getWindow(),n=A.documentElement,o=n.getBoundingClientRect(),r=-o.top||A.body.scrollTop||i.scrollY||n.scrollTop||0,s=-o.left||A.body.scrollLeft||i.scrollX||n.scrollLeft||0;return{top:r,left:s}}change(A=x3A){return A>0?this._change.pipe(Dd(A)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){let A=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:A.innerWidth,height:A.innerHeight}:{width:0,height:0}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var j2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})(),k8=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[G2,j2,G2,j2]})}return t})();var Oh=class{_attachedHost;attach(e){return this._attachedHost=e,e.attach(this)}detach(){let e=this._attachedHost;e!=null&&(this._attachedHost=null,e.detach())}get isAttached(){return this._attachedHost!=null}setAttachedHost(e){this._attachedHost=e}},yg=class extends Oh{component;viewContainerRef;injector;componentFactoryResolver;projectableNodes;constructor(e,A,i,n,o){super(),this.component=e,this.viewContainerRef=A,this.injector=i,this.projectableNodes=o}},Rs=class extends Oh{templateRef;viewContainerRef;context;injector;constructor(e,A,i,n){super(),this.templateRef=e,this.viewContainerRef=A,this.context=i,this.injector=n}get origin(){return this.templateRef.elementRef}attach(e,A=this.context){return this.context=A,super.attach(e)}detach(){return this.context=void 0,super.detach()}},XS=class extends Oh{element;constructor(e){super(),this.element=e instanceof se?e.nativeElement:e}},V2=class{_attachedPortal;_disposeFn;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(e){if(e instanceof yg)return this._attachedPortal=e,this.attachComponentPortal(e);if(e instanceof Rs)return this._attachedPortal=e,this.attachTemplatePortal(e);if(this.attachDomPortal&&e instanceof XS)return this._attachedPortal=e,this.attachDomPortal(e)}attachDomPortal=null;detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(e){this._disposeFn=e}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}};var zh=class extends V2{outletElement;_appRef;_defaultInjector;_document;constructor(e,A,i,n,o){super(),this.outletElement=e,this._appRef=i,this._defaultInjector=n,this._document=o}attachComponentPortal(e){let A;if(e.viewContainerRef){let i=e.injector||e.viewContainerRef.injector,n=i.get(Il,null,{optional:!0})||void 0;A=e.viewContainerRef.createComponent(e.component,{index:e.viewContainerRef.length,injector:i,ngModuleRef:n,projectableNodes:e.projectableNodes||void 0}),this.setDisposeFn(()=>A.destroy())}else A=vp(e.component,{elementInjector:e.injector||this._defaultInjector||Zt.NULL,environmentInjector:this._appRef.injector,projectableNodes:e.projectableNodes||void 0}),this._appRef.attachView(A.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(A.hostView),A.destroy()});return this.outletElement.appendChild(this._getComponentRootNode(A)),this._attachedPortal=e,A}attachTemplatePortal(e){let A=e.viewContainerRef,i=A.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return i.rootNodes.forEach(n=>this.outletElement.appendChild(n)),i.detectChanges(),this.setDisposeFn(()=>{let n=A.indexOf(i);n!==-1&&A.remove(n)}),this._attachedPortal=e,i}attachDomPortal=e=>{let A=e.element;A.parentNode;let i=this._document.createComment("dom-portal");A.parentNode.insertBefore(i,A),this.outletElement.appendChild(A),this._attachedPortal=e,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(A,i)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(e){return e.hostView.rootNodes[0]}};var sq=(()=>{class t extends Rs{constructor(){let A=f(mn),i=f(Sn);super(A,i)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[lt]})}return t})();var wa=(()=>{class t extends V2{_moduleRef=f(Il,{optional:!0});_document=f(at);_viewContainerRef=f(Sn);_isInitialized=!1;_attachedRef;constructor(){super()}get portal(){return this._attachedPortal}set portal(A){this.hasAttached()&&!A&&!this._isInitialized||(this.hasAttached()&&super.detach(),A&&super.attach(A),this._attachedPortal=A||null)}attached=new YA;get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(A){A.setAttachedHost(this);let i=A.viewContainerRef!=null?A.viewContainerRef:this._viewContainerRef,n=i.createComponent(A.component,{index:i.length,injector:A.injector||i.injector,projectableNodes:A.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0});return i!==this._viewContainerRef&&this._getRootNode().appendChild(n.hostView.rootNodes[0]),super.setDisposeFn(()=>n.destroy()),this._attachedPortal=A,this._attachedRef=n,this.attached.emit(n),n}attachTemplatePortal(A){A.setAttachedHost(this);let i=this._viewContainerRef.createEmbeddedView(A.templateRef,A.context,{injector:A.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=A,this._attachedRef=i,this.attached.emit(i),i}attachDomPortal=A=>{let i=A.element;i.parentNode;let n=this._document.createComment("dom-portal");A.setAttachedHost(this),i.parentNode.insertBefore(n,i),this._getRootNode().appendChild(i),this._attachedPortal=A,super.setDisposeFn(()=>{n.parentNode&&n.parentNode.replaceChild(i,n)})};_getRootNode(){let A=this._viewContainerRef.element.nativeElement;return A.nodeType===A.ELEMENT_NODE?A:A.parentNode}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[lt]})}return t})();var UB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();var aq=$p(),$S=class{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(e,A){this._viewportRuler=e,this._document=A}attach(){}enable(){if(this._canBeEnabled()){let e=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=e.style.left||"",this._previousHTMLStyles.top=e.style.top||"",e.style.left=hr(-this._previousScrollPosition.left),e.style.top=hr(-this._previousScrollPosition.top),e.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){let e=this._document.documentElement,A=this._document.body,i=e.style,n=A.style,o=i.scrollBehavior||"",r=n.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,e.classList.remove("cdk-global-scrollblock"),aq&&(i.scrollBehavior=n.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),aq&&(i.scrollBehavior=o,n.scrollBehavior=r)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;let A=this._document.body,i=this._viewportRuler.getViewportSize();return A.scrollHeight>i.height||A.scrollWidth>i.width}};var AR=class{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(e,A,i,n){this._scrollDispatcher=e,this._ngZone=A,this._viewportRuler=i,this._config=n}attach(e){this._overlayRef,this._overlayRef=e}enable(){if(this._scrollSubscription)return;let e=this._scrollDispatcher.scrolled(0).pipe(Nt(A=>!A||!this._overlayRef.overlayElement.contains(A.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=e.subscribe(()=>{let A=this._viewportRuler.getViewportScrollPosition().top;Math.abs(A-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=e.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}},S8=class{enable(){}disable(){}attach(){}};function eR(t,e){return e.some(A=>{let i=t.bottomA.bottom,o=t.rightA.right;return i||n||o||r})}function cq(t,e){return e.some(A=>{let i=t.topA.bottom,o=t.leftA.right;return i||n||o||r})}var tR=class{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(e,A,i,n){this._scrollDispatcher=e,this._viewportRuler=A,this._ngZone=i,this._config=n}attach(e){this._overlayRef,this._overlayRef=e}enable(){if(!this._scrollSubscription){let e=this._config?this._config.scrollThrottle:0;this._scrollSubscription=this._scrollDispatcher.scrolled(e).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){let A=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:n}=this._viewportRuler.getViewportSize();eR(A,[{width:i,height:n,bottom:n,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}})}}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}},F3A=(()=>{class t{_scrollDispatcher=f(q2);_viewportRuler=f(Nc);_ngZone=f(ye);_document=f(at);constructor(){}noop=()=>new S8;close=A=>new AR(this._scrollDispatcher,this._ngZone,this._viewportRuler,A);block=()=>new $S(this._viewportRuler,this._document);reposition=A=>new tR(this._scrollDispatcher,this._viewportRuler,this._ngZone,A);static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Ml=class{positionStrategy;scrollStrategy=new S8;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;constructor(e){if(e){let A=Object.keys(e);for(let i of A)e[i]!==void 0&&(this[i]=e[i])}}};var iR=class{connectionPair;scrollableViewProperties;constructor(e,A){this.connectionPair=e,this.scrollableViewProperties=A}};var Bq=(()=>{class t{_attachedOverlays=[];_document=f(at);_isAttached;constructor(){}ngOnDestroy(){this.detach()}add(A){this.remove(A),this._attachedOverlays.push(A)}remove(A){let i=this._attachedOverlays.indexOf(A);i>-1&&this._attachedOverlays.splice(i,1),this._attachedOverlays.length===0&&this.detach()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),_3A=(()=>{class t extends Bq{_ngZone=f(ye);_renderer=f(Ms).createRenderer(null,null);_cleanupKeydown;add(A){super.add(A),this._isAttached||(this._ngZone.runOutsideAngular(()=>{this._cleanupKeydown=this._renderer.listen("body","keydown",this._keydownListener)}),this._isAttached=!0)}detach(){this._isAttached&&(this._cleanupKeydown?.(),this._isAttached=!1)}_keydownListener=A=>{let i=this._attachedOverlays;for(let n=i.length-1;n>-1;n--)if(i[n]._keydownEvents.observers.length>0){this._ngZone.run(()=>i[n]._keydownEvents.next(A));break}};static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),G3A=(()=>{class t extends Bq{_platform=f(ni);_ngZone=f(ye,{optional:!0});_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget;add(A){if(super.add(A),!this._isAttached){let i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){let A=this._document.body;A.removeEventListener("pointerdown",this._pointerDownListener,!0),A.removeEventListener("click",this._clickListener,!0),A.removeEventListener("auxclick",this._clickListener,!0),A.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(A.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(A){A.addEventListener("pointerdown",this._pointerDownListener,!0),A.addEventListener("click",this._clickListener,!0),A.addEventListener("auxclick",this._clickListener,!0),A.addEventListener("contextmenu",this._clickListener,!0)}_pointerDownListener=A=>{this._pointerDownEventTarget=ic(A)};_clickListener=A=>{let i=ic(A),n=A.type==="click"&&this._pointerDownEventTarget?this._pointerDownEventTarget:i;this._pointerDownEventTarget=null;let o=this._attachedOverlays.slice();for(let r=o.length-1;r>-1;r--){let s=o[r];if(s._outsidePointerEvents.observers.length<1||!s.hasAttached())continue;if(gq(s.overlayElement,i)||gq(s.overlayElement,n))break;let a=s._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>a.next(A)):a.next(A)}};static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function gq(t,e){let A=typeof ShadowRoot<"u"&&ShadowRoot,i=e;for(;i;){if(i===t)return!0;i=A&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}var Eq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:[".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}"],encapsulation:2,changeDetection:0})}return t})(),R8=(()=>{class t{_platform=f(ni);_containerElement;_document=f(at);_styleLoader=f(Pn);constructor(){}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let A="cdk-overlay-container";if(this._platform.isBrowser||dk()){let n=this._document.querySelectorAll(`.${A}[platform="server"], .${A}[platform="test"]`);for(let o=0;o{let e=this.element;clearTimeout(this._fallbackTimeout),this._cleanupTransitionEnd?.(),this._cleanupTransitionEnd=this._renderer.listen(e,"transitionend",this.dispose),this._fallbackTimeout=setTimeout(this.dispose,500),e.style.pointerEvents="none",e.classList.remove("cdk-overlay-backdrop-showing")})}dispose=()=>{clearTimeout(this._fallbackTimeout),this._cleanupClick?.(),this._cleanupTransitionEnd?.(),this._cleanupClick=this._cleanupTransitionEnd=this._fallbackTimeout=void 0,this.element.remove()}},JB=class{_portalOutlet;_host;_pane;_config;_ngZone;_keyboardDispatcher;_document;_location;_outsideClickDispatcher;_animationsDisabled;_injector;_renderer;_backdropClick=new qA;_attachments=new qA;_detachments=new qA;_positionStrategy;_scrollStrategy;_locationChanges=Kt.EMPTY;_backdropRef=null;_previousHostParent;_keydownEvents=new qA;_outsidePointerEvents=new qA;_renders=new qA;_afterRenderRef;_afterNextRenderRef;constructor(e,A,i,n,o,r,s,a,c,g=!1,I,C){this._portalOutlet=e,this._host=A,this._pane=i,this._config=n,this._ngZone=o,this._keyboardDispatcher=r,this._document=s,this._location=a,this._outsideClickDispatcher=c,this._animationsDisabled=g,this._injector=I,this._renderer=C,n.scrollStrategy&&(this._scrollStrategy=n.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=n.positionStrategy,this._afterRenderRef=ua(()=>ku(()=>{this._renders.next()},{injector:this._injector}))}get overlayElement(){return this._pane}get backdropElement(){return this._backdropRef?.element||null}get hostElement(){return this._host}attach(e){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);let A=this._portalOutlet.attach(e);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=Ir(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),typeof A?.onDestroy=="function"&&A.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),A}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();let e=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),e}dispose(){let e=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._backdropRef?.dispose(),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=this._backdropRef=null,e&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(e){e!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=e,this.hasAttached()&&(e.attach(this),this.updatePosition()))}updateSize(e){this._config=sA(sA({},this._config),e),this._updateElementSize()}setDirection(e){this._config=Fe(sA({},this._config),{direction:e}),this._updateElementDirection()}addPanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!0)}removePanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!1)}getDirection(){let e=this._config.direction;return e?typeof e=="string"?e:e.value:"ltr"}updateScrollStrategy(e){e!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=e,this.hasAttached()&&(e.attach(this),e.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;let e=this._pane.style;e.width=hr(this._config.width),e.height=hr(this._config.height),e.minWidth=hr(this._config.minWidth),e.minHeight=hr(this._config.minHeight),e.maxWidth=hr(this._config.maxWidth),e.maxHeight=hr(this._config.maxHeight)}_togglePointerEvents(e){this._pane.style.pointerEvents=e?"":"none"}_attachBackdrop(){let e="cdk-overlay-backdrop-showing";this._backdropRef?.dispose(),this._backdropRef=new nR(this._document,this._renderer,this._ngZone,A=>{this._backdropClick.next(A)}),this._animationsDisabled&&this._backdropRef.element.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropRef.element,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropRef.element,this._host),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this._backdropRef?.element.classList.add(e))}):this._backdropRef.element.classList.add(e)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){this._animationsDisabled?(this._backdropRef?.dispose(),this._backdropRef=null):this._backdropRef?.detach()}_toggleClasses(e,A,i){let n=CB(A||[]).filter(o=>!!o);n.length&&(i?e.classList.add(...n):e.classList.remove(...n))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{let e=this._renders.pipe(kt(Hn(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||this._pane.children.length===0)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),e.unsubscribe())})})}_disposeScrollStrategy(){let e=this._scrollStrategy;e?.disable(),e?.detach?.()}},lq="cdk-overlay-connected-position-bounding-box",K3A=/([A-Za-z%]+)$/,oR=class{_viewportRuler;_document;_platform;_overlayContainer;_overlayRef;_isInitialRender;_lastBoundingBoxSize={width:0,height:0};_isPushed=!1;_canPush=!0;_growAfterOpen=!1;_hasFlexibleDimensions=!0;_positionLocked=!1;_originRect;_overlayRect;_viewportRect;_containerRect;_viewportMargin=0;_scrollables=[];_preferredPositions=[];_origin;_pane;_isDisposed;_boundingBox;_lastPosition;_lastScrollVisibility;_positionChanges=new qA;_resizeSubscription=Kt.EMPTY;_offsetX=0;_offsetY=0;_transformOriginSelector;_appliedPanelClasses=[];_previousPushAmount;positionChanges=this._positionChanges;get positions(){return this._preferredPositions}constructor(e,A,i,n,o){this._viewportRuler=A,this._document=i,this._platform=n,this._overlayContainer=o,this.setOrigin(e)}attach(e){this._overlayRef&&this._overlayRef,this._validatePositions(),e.hostElement.classList.add(lq),this._overlayRef=e,this._boundingBox=e.hostElement,this._pane=e.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition){this.reapplyLastPosition();return}this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let e=this._originRect,A=this._overlayRect,i=this._viewportRect,n=this._containerRect,o=[],r;for(let s of this._preferredPositions){let a=this._getOriginPoint(e,n,s),c=this._getOverlayPoint(a,A,s),g=this._getOverlayFit(c,A,i,s);if(g.isCompletelyWithinViewport){this._isPushed=!1,this._applyPosition(s,a);return}if(this._canFitWithFlexibleDimensions(g,c,i)){o.push({position:s,origin:a,overlayRect:A,boundingBoxRect:this._calculateBoundingBoxRect(a,s)});continue}(!r||r.overlayFit.visibleAreaa&&(a=g,s=c)}this._isPushed=!1,this._applyPosition(s.position,s.origin);return}if(this._canPush){this._isPushed=!0,this._applyPosition(r.position,r.originPoint);return}this._applyPosition(r.position,r.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&cC(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(lq),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;let e=this._lastPosition;if(e){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let A=this._getOriginPoint(this._originRect,this._containerRect,e);this._applyPosition(e,A)}else this.apply()}withScrollableContainers(e){return this._scrollables=e,this}withPositions(e){return this._preferredPositions=e,e.indexOf(this._lastPosition)===-1&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(e){return this._viewportMargin=e,this}withFlexibleDimensions(e=!0){return this._hasFlexibleDimensions=e,this}withGrowAfterOpen(e=!0){return this._growAfterOpen=e,this}withPush(e=!0){return this._canPush=e,this}withLockedPosition(e=!0){return this._positionLocked=e,this}setOrigin(e){return this._origin=e,this}withDefaultOffsetX(e){return this._offsetX=e,this}withDefaultOffsetY(e){return this._offsetY=e,this}withTransformOriginOn(e){return this._transformOriginSelector=e,this}_getOriginPoint(e,A,i){let n;if(i.originX=="center")n=e.left+e.width/2;else{let r=this._isRtl()?e.right:e.left,s=this._isRtl()?e.left:e.right;n=i.originX=="start"?r:s}A.left<0&&(n-=A.left);let o;return i.originY=="center"?o=e.top+e.height/2:o=i.originY=="top"?e.top:e.bottom,A.top<0&&(o-=A.top),{x:n,y:o}}_getOverlayPoint(e,A,i){let n;i.overlayX=="center"?n=-A.width/2:i.overlayX==="start"?n=this._isRtl()?-A.width:0:n=this._isRtl()?0:-A.width;let o;return i.overlayY=="center"?o=-A.height/2:o=i.overlayY=="top"?0:-A.height,{x:e.x+n,y:e.y+o}}_getOverlayFit(e,A,i,n){let o=Cq(A),{x:r,y:s}=e,a=this._getOffset(n,"x"),c=this._getOffset(n,"y");a&&(r+=a),c&&(s+=c);let g=0-r,I=r+o.width-i.width,C=0-s,d=s+o.height-i.height,B=this._subtractOverflows(o.width,g,I),E=this._subtractOverflows(o.height,C,d),u=B*E;return{visibleArea:u,isCompletelyWithinViewport:o.width*o.height===u,fitsInViewportVertically:E===o.height,fitsInViewportHorizontally:B==o.width}}_canFitWithFlexibleDimensions(e,A,i){if(this._hasFlexibleDimensions){let n=i.bottom-A.y,o=i.right-A.x,r=Iq(this._overlayRef.getConfig().minHeight),s=Iq(this._overlayRef.getConfig().minWidth),a=e.fitsInViewportVertically||r!=null&&r<=n,c=e.fitsInViewportHorizontally||s!=null&&s<=o;return a&&c}return!1}_pushOverlayOnScreen(e,A,i){if(this._previousPushAmount&&this._positionLocked)return{x:e.x+this._previousPushAmount.x,y:e.y+this._previousPushAmount.y};let n=Cq(A),o=this._viewportRect,r=Math.max(e.x+n.width-o.width,0),s=Math.max(e.y+n.height-o.height,0),a=Math.max(o.top-i.top-e.y,0),c=Math.max(o.left-i.left-e.x,0),g=0,I=0;return n.width<=o.width?g=c||-r:g=e.xB&&!this._isInitialRender&&!this._growAfterOpen&&(r=e.y-B/2)}let a=A.overlayX==="start"&&!n||A.overlayX==="end"&&n,c=A.overlayX==="end"&&!n||A.overlayX==="start"&&n,g,I,C;if(c)C=i.width-e.x+this._viewportMargin*2,g=e.x-this._viewportMargin;else if(a)I=e.x,g=i.right-e.x;else{let d=Math.min(i.right-e.x+i.left,e.x),B=this._lastBoundingBoxSize.width;g=d*2,I=e.x-d,g>B&&!this._isInitialRender&&!this._growAfterOpen&&(I=e.x-B/2)}return{top:r,left:I,bottom:s,right:C,width:g,height:o}}_setBoundingBoxStyles(e,A){let i=this._calculateBoundingBoxRect(e,A);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));let n={};if(this._hasExactPosition())n.top=n.left="0",n.bottom=n.right=n.maxHeight=n.maxWidth="",n.width=n.height="100%";else{let o=this._overlayRef.getConfig().maxHeight,r=this._overlayRef.getConfig().maxWidth;n.height=hr(i.height),n.top=hr(i.top),n.bottom=hr(i.bottom),n.width=hr(i.width),n.left=hr(i.left),n.right=hr(i.right),A.overlayX==="center"?n.alignItems="center":n.alignItems=A.overlayX==="end"?"flex-end":"flex-start",A.overlayY==="center"?n.justifyContent="center":n.justifyContent=A.overlayY==="bottom"?"flex-end":"flex-start",o&&(n.maxHeight=hr(o)),r&&(n.maxWidth=hr(r))}this._lastBoundingBoxSize=i,cC(this._boundingBox.style,n)}_resetBoundingBoxStyles(){cC(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){cC(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(e,A){let i={},n=this._hasExactPosition(),o=this._hasFlexibleDimensions,r=this._overlayRef.getConfig();if(n){let g=this._viewportRuler.getViewportScrollPosition();cC(i,this._getExactOverlayY(A,e,g)),cC(i,this._getExactOverlayX(A,e,g))}else i.position="static";let s="",a=this._getOffset(A,"x"),c=this._getOffset(A,"y");a&&(s+=`translateX(${a}px) `),c&&(s+=`translateY(${c}px)`),i.transform=s.trim(),r.maxHeight&&(n?i.maxHeight=hr(r.maxHeight):o&&(i.maxHeight="")),r.maxWidth&&(n?i.maxWidth=hr(r.maxWidth):o&&(i.maxWidth="")),cC(this._pane.style,i)}_getExactOverlayY(e,A,i){let n={top:"",bottom:""},o=this._getOverlayPoint(A,this._overlayRect,e);if(this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i)),e.overlayY==="bottom"){let r=this._document.documentElement.clientHeight;n.bottom=`${r-(o.y+this._overlayRect.height)}px`}else n.top=hr(o.y);return n}_getExactOverlayX(e,A,i){let n={left:"",right:""},o=this._getOverlayPoint(A,this._overlayRect,e);this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i));let r;if(this._isRtl()?r=e.overlayX==="end"?"left":"right":r=e.overlayX==="end"?"right":"left",r==="right"){let s=this._document.documentElement.clientWidth;n.right=`${s-(o.x+this._overlayRect.width)}px`}else n.left=hr(o.x);return n}_getScrollVisibility(){let e=this._getOriginRect(),A=this._pane.getBoundingClientRect(),i=this._scrollables.map(n=>n.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:cq(e,i),isOriginOutsideView:eR(e,i),isOverlayClipped:cq(A,i),isOverlayOutsideView:eR(A,i)}}_subtractOverflows(e,...A){return A.reduce((i,n)=>i-Math.max(n,0),e)}_getNarrowedViewportRect(){let e=this._document.documentElement.clientWidth,A=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+e-this._viewportMargin,bottom:i.top+A-this._viewportMargin,width:e-2*this._viewportMargin,height:A-2*this._viewportMargin}}_isRtl(){return this._overlayRef.getDirection()==="rtl"}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(e,A){return A==="x"?e.offsetX==null?this._offsetX:e.offsetX:e.offsetY==null?this._offsetY:e.offsetY}_validatePositions(){}_addPanelClasses(e){this._pane&&CB(e).forEach(A=>{A!==""&&this._appliedPanelClasses.indexOf(A)===-1&&(this._appliedPanelClasses.push(A),this._pane.classList.add(A))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(e=>{this._pane.classList.remove(e)}),this._appliedPanelClasses=[])}_getOriginRect(){let e=this._origin;if(e instanceof se)return e.nativeElement.getBoundingClientRect();if(e instanceof Element)return e.getBoundingClientRect();let A=e.width||0,i=e.height||0;return{top:e.y,bottom:e.y+i,left:e.x,right:e.x+A,height:i,width:A}}};function cC(t,e){for(let A in e)e.hasOwnProperty(A)&&(t[A]=e[A]);return t}function Iq(t){if(typeof t!="number"&&t!=null){let[e,A]=t.split(K3A);return!A||A==="px"?parseFloat(e):null}return t||null}function Cq(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}function U3A(t,e){return t===e?!0:t.isOriginClipped===e.isOriginClipped&&t.isOriginOutsideView===e.isOriginOutsideView&&t.isOverlayClipped===e.isOverlayClipped&&t.isOverlayOutsideView===e.isOverlayOutsideView}var dq="cdk-global-overlay-wrapper",rR=class{_overlayRef;_cssPosition="static";_topOffset="";_bottomOffset="";_alignItems="";_xPosition="";_xOffset="";_width="";_height="";_isDisposed=!1;attach(e){let A=e.getConfig();this._overlayRef=e,this._width&&!A.width&&e.updateSize({width:this._width}),this._height&&!A.height&&e.updateSize({height:this._height}),e.hostElement.classList.add(dq),this._isDisposed=!1}top(e=""){return this._bottomOffset="",this._topOffset=e,this._alignItems="flex-start",this}left(e=""){return this._xOffset=e,this._xPosition="left",this}bottom(e=""){return this._topOffset="",this._bottomOffset=e,this._alignItems="flex-end",this}right(e=""){return this._xOffset=e,this._xPosition="right",this}start(e=""){return this._xOffset=e,this._xPosition="start",this}end(e=""){return this._xOffset=e,this._xPosition="end",this}width(e=""){return this._overlayRef?this._overlayRef.updateSize({width:e}):this._width=e,this}height(e=""){return this._overlayRef?this._overlayRef.updateSize({height:e}):this._height=e,this}centerHorizontally(e=""){return this.left(e),this._xPosition="center",this}centerVertically(e=""){return this.top(e),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;let e=this._overlayRef.overlayElement.style,A=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:n,height:o,maxWidth:r,maxHeight:s}=i,a=(n==="100%"||n==="100vw")&&(!r||r==="100%"||r==="100vw"),c=(o==="100%"||o==="100vh")&&(!s||s==="100%"||s==="100vh"),g=this._xPosition,I=this._xOffset,C=this._overlayRef.getConfig().direction==="rtl",d="",B="",E="";a?E="flex-start":g==="center"?(E="center",C?B=I:d=I):C?g==="left"||g==="end"?(E="flex-end",d=I):(g==="right"||g==="start")&&(E="flex-start",B=I):g==="left"||g==="start"?(E="flex-start",d=I):(g==="right"||g==="end")&&(E="flex-end",B=I),e.position=this._cssPosition,e.marginLeft=a?"0":d,e.marginTop=c?"0":this._topOffset,e.marginBottom=this._bottomOffset,e.marginRight=a?"0":B,A.justifyContent=E,A.alignItems=c?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;let e=this._overlayRef.overlayElement.style,A=this._overlayRef.hostElement,i=A.style;A.classList.remove(dq),i.justifyContent=i.alignItems=e.marginTop=e.marginBottom=e.marginLeft=e.marginRight=e.position="",this._overlayRef=null,this._isDisposed=!0}},J3A=(()=>{class t{_viewportRuler=f(Nc);_document=f(at);_platform=f(ni);_overlayContainer=f(R8);constructor(){}global(){return new rR}flexibleConnectedTo(A){return new oR(A,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Br=(()=>{class t{scrollStrategies=f(F3A);_overlayContainer=f(R8);_positionBuilder=f(J3A);_keyboardDispatcher=f(_3A);_injector=f(Zt);_ngZone=f(ye);_document=f(at);_directionality=f(po);_location=f(ha);_outsideClickDispatcher=f(G3A);_animationsModuleType=f(_i,{optional:!0});_idGenerator=f(an);_renderer=f(Ms).createRenderer(null,null);_appRef;_styleLoader=f(Pn);constructor(){}create(A){this._styleLoader.load(Eq);let i=this._createHostElement(),n=this._createPaneElement(i),o=this._createPortalOutlet(n),r=new Ml(A);return r.direction=r.direction||this._directionality.value,new JB(o,i,n,r,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,this._animationsModuleType==="NoopAnimations",this._injector.get(vr),this._renderer)}position(){return this._positionBuilder}_createPaneElement(A){let i=this._document.createElement("div");return i.id=this._idGenerator.getId("cdk-overlay-"),i.classList.add("cdk-overlay-pane"),A.appendChild(i),i}_createHostElement(){let A=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(A),A}_createPortalOutlet(A){return this._appRef||(this._appRef=this._injector.get(Ca)),new zh(A,null,this._appRef,this._injector,this._document)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Y3A=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],Qq=new eA("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.reposition()}}),Ph=(()=>{class t{elementRef=f(se);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]})}return t})(),sR=(()=>{class t{_overlay=f(Br);_dir=f(po,{optional:!0});_overlayRef;_templatePortal;_backdropSubscription=Kt.EMPTY;_attachSubscription=Kt.EMPTY;_detachSubscription=Kt.EMPTY;_positionSubscription=Kt.EMPTY;_offsetX;_offsetY;_position;_scrollStrategyFactory=f(Qq);_disposeOnNavigation=!1;_ngZone=f(ye);origin;positions;positionStrategy;get offsetX(){return this._offsetX}set offsetX(A){this._offsetX=A,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(A){this._offsetY=A,this._position&&this._updatePositionStrategy(this._position)}width;height;minWidth;minHeight;backdropClass;panelClass;viewportMargin=0;scrollStrategy;open=!1;disableClose=!1;transformOriginSelector;hasBackdrop=!1;lockPosition=!1;flexibleDimensions=!1;growAfterOpen=!1;push=!1;get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(A){this._disposeOnNavigation=A}backdropClick=new YA;positionChange=new YA;attach=new YA;detach=new YA;overlayKeydown=new YA;overlayOutsideClick=new YA;constructor(){let A=f(mn),i=f(Sn);this._templatePortal=new Rs(A,i),this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(A){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),A.origin&&this.open&&this._position.apply()),A.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=Y3A);let A=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=A.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=A.detachments().subscribe(()=>this.detach.emit()),A.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),i.keyCode===27&&!this.disableClose&&!sr(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{let n=this._getOriginElement(),o=ic(i);(!n||n!==o&&!n.contains(o))&&this.overlayOutsideClick.next(i)})}_buildConfig(){let A=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Ml({direction:this._dir||"ltr",positionStrategy:A,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||this.width===0)&&(i.width=this.width),(this.height||this.height===0)&&(i.height=this.height),(this.minWidth||this.minWidth===0)&&(i.minWidth=this.minWidth),(this.minHeight||this.minHeight===0)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(A){let i=this.positions.map(n=>({originX:n.originX,originY:n.originY,overlayX:n.overlayX,overlayY:n.overlayY,offsetX:n.offsetX||this.offsetX,offsetY:n.offsetY||this.offsetY,panelClass:n.panelClass||void 0}));return A.setOrigin(this._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){let A=this._overlay.position().flexibleConnectedTo(this._getOrigin());return this._updatePositionStrategy(A),A}_getOrigin(){return this.origin instanceof Ph?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof Ph?this.origin.elementRef.nativeElement:this.origin instanceof se?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(A=>{this.backdropClick.emit(A)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(Zv(()=>this.positionChange.observers.length>0)).subscribe(A=>{this._ngZone.run(()=>this.positionChange.emit(A)),this.positionChange.observers.length===0&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",ge],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",ge],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",ge],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",ge],push:[2,"cdkConnectedOverlayPush","push",ge],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",ge]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[Xt]})}return t})();function T3A(t){return()=>t.scrollStrategies.reposition()}var H3A={provide:Qq,deps:[Br],useFactory:T3A},Z2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[Br,H3A],imports:[G2,UB,k8,k8]})}return t})();function O3A(t,e){}var W2=class{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;width="";height="";minWidth;minHeight;maxWidth;maxHeight;positionStrategy;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;scrollStrategy;closeOnNavigation=!0;closeOnDestroy=!0;closeOnOverlayDetachments=!0;componentFactoryResolver;providers;container;templateContext};var cR=(()=>{class t extends V2{_elementRef=f(se);_focusTrapFactory=f(g6);_config;_interactivityChecker=f(sh);_ngZone=f(ye);_overlayRef=f(JB);_focusMonitor=f(Jr);_renderer=f(qi);_platform=f(ni);_document=f(at,{optional:!0});_portalOutlet;_focusTrap=null;_elementFocusedBeforeDialogWasOpened=null;_closeInteractionType=null;_ariaLabelledByQueue=[];_changeDetectorRef=f(Et);_injector=f(Zt);_isDestroyed=!1;constructor(){super(),this._config=f(W2,{optional:!0})||new W2,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(A){this._ariaLabelledByQueue.push(A),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(A){let i=this._ariaLabelledByQueue.indexOf(A);i>-1&&(this._ariaLabelledByQueue.splice(i,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._isDestroyed=!0,this._restoreFocus()}attachComponentPortal(A){this._portalOutlet.hasAttached();let i=this._portalOutlet.attachComponentPortal(A);return this._contentAttached(),i}attachTemplatePortal(A){this._portalOutlet.hasAttached();let i=this._portalOutlet.attachTemplatePortal(A);return this._contentAttached(),i}attachDomPortal=A=>{this._portalOutlet.hasAttached();let i=this._portalOutlet.attachDomPortal(A);return this._contentAttached(),i};_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(A,i){this._interactivityChecker.isFocusable(A)||(A.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let n=()=>{o(),r(),A.removeAttribute("tabindex")},o=this._renderer.listen(A,"blur",n),r=this._renderer.listen(A,"mousedown",n)})),A.focus(i)}_focusByCssSelector(A,i){let n=this._elementRef.nativeElement.querySelector(A);n&&this._forceFocus(n,i)}_trapFocus(){this._isDestroyed||Ir(()=>{let A=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||A.focus();break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElement()||this._focusDialogContainer();break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus);break}},{injector:this._injector})}_restoreFocus(){let A=this._config.restoreFocus,i=null;if(typeof A=="string"?i=this._document.querySelector(A):typeof A=="boolean"?i=A?this._elementFocusedBeforeDialogWasOpened:null:A&&(i=A),this._config.restoreFocus&&i&&typeof i.focus=="function"){let n=IB(),o=this._elementRef.nativeElement;(!n||n===this._document.body||n===o||o.contains(n))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){let A=this._elementRef.nativeElement,i=IB();return A===i||A.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=IB()))}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["cdk-dialog-container"]],viewQuery:function(i,n){if(i&1&&st(wa,7),i&2){let o;de(o=Be())&&(n._portalOutlet=o.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,n){i&2&&Ke("id",n._config.id||null)("role",n._config.role)("aria-modal",n._config.ariaModal)("aria-labelledby",n._config.ariaLabel?null:n._ariaLabelledByQueue[0])("aria-label",n._config.ariaLabel)("aria-describedby",n._config.ariaDescribedBy||null)},features:[lt],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,n){i&1&&NA(0,O3A,0,0,"ng-template",0)},dependencies:[wa],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}return t})(),jh=class{overlayRef;config;componentInstance;componentRef;containerInstance;disableClose;closed=new qA;backdropClick;keydownEvents;outsidePointerEvents;id;_detachSubscription;constructor(e,A){this.overlayRef=e,this.config=A,this.disableClose=A.disableClose,this.backdropClick=e.backdropClick(),this.keydownEvents=e.keydownEvents(),this.outsidePointerEvents=e.outsidePointerEvents(),this.id=A.id,this.keydownEvents.subscribe(i=>{i.keyCode===27&&!this.disableClose&&!sr(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=e.detachments().subscribe(()=>{A.closeOnOverlayDetachments!==!1&&this.close()})}close(e,A){if(this.containerInstance){let i=this.closed;this.containerInstance._closeInteractionType=A?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(e),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(e="",A=""){return this.overlayRef.updateSize({width:e,height:A}),this}addPanelClass(e){return this.overlayRef.addPanelClass(e),this}removePanelClass(e){return this.overlayRef.removePanelClass(e),this}},z3A=new eA("DialogScrollStrategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.block()}}),P3A=new eA("DialogData"),j3A=new eA("DefaultDialogConfig");var uq=(()=>{class t{_overlay=f(Br);_injector=f(Zt);_defaultOptions=f(j3A,{optional:!0});_parentDialog=f(t,{optional:!0,skipSelf:!0});_overlayContainer=f(R8);_idGenerator=f(an);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new qA;_afterOpenedAtThisLevel=new qA;_ariaHiddenElements=new Map;_scrollStrategy=f(z3A);get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}afterAllClosed=el(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(On(void 0)));constructor(){}open(A,i){let n=this._defaultOptions||new W2;i=sA(sA({},n),i),i.id=i.id||this._idGenerator.getId("cdk-dialog-"),i.id&&this.getDialogById(i.id);let o=this._getOverlayConfig(i),r=this._overlay.create(o),s=new jh(r,i),a=this._attachContainer(r,s,i);return s.containerInstance=a,this._attachDialogContent(A,s,a,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(s),s.closed.subscribe(()=>this._removeOpenDialog(s,!0)),this.afterOpened.next(s),s}closeAll(){aR(this.openDialogs,A=>A.close())}getDialogById(A){return this.openDialogs.find(i=>i.id===A)}ngOnDestroy(){aR(this._openDialogsAtThisLevel,A=>{A.config.closeOnDestroy===!1&&this._removeOpenDialog(A,!1)}),aR(this._openDialogsAtThisLevel,A=>A.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(A){let i=new Ml({positionStrategy:A.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:A.scrollStrategy||this._scrollStrategy(),panelClass:A.panelClass,hasBackdrop:A.hasBackdrop,direction:A.direction,minWidth:A.minWidth,minHeight:A.minHeight,maxWidth:A.maxWidth,maxHeight:A.maxHeight,width:A.width,height:A.height,disposeOnNavigation:A.closeOnNavigation});return A.backdropClass&&(i.backdropClass=A.backdropClass),i}_attachContainer(A,i,n){let o=n.injector||n.viewContainerRef?.injector,r=[{provide:W2,useValue:n},{provide:jh,useValue:i},{provide:JB,useValue:A}],s;n.container?typeof n.container=="function"?s=n.container:(s=n.container.type,r.push(...n.container.providers(n))):s=cR;let a=new yg(s,n.viewContainerRef,Zt.create({parent:o||this._injector,providers:r}));return A.attach(a).instance}_attachDialogContent(A,i,n,o){if(A instanceof mn){let r=this._createInjector(o,i,n,void 0),s={$implicit:o.data,dialogRef:i};o.templateContext&&(s=sA(sA({},s),typeof o.templateContext=="function"?o.templateContext():o.templateContext)),n.attachTemplatePortal(new Rs(A,null,s,r))}else{let r=this._createInjector(o,i,n,this._injector),s=n.attachComponentPortal(new yg(A,o.viewContainerRef,r));i.componentRef=s,i.componentInstance=s.instance}}_createInjector(A,i,n,o){let r=A.injector||A.viewContainerRef?.injector,s=[{provide:P3A,useValue:A.data},{provide:jh,useValue:i}];return A.providers&&(typeof A.providers=="function"?s.push(...A.providers(i,A,n)):s.push(...A.providers)),A.direction&&(!r||!r.get(po,null,{optional:!0}))&&s.push({provide:po,useValue:{value:A.direction,change:Ce()}}),Zt.create({parent:r||o,providers:s})}_removeOpenDialog(A,i){let n=this.openDialogs.indexOf(A);n>-1&&(this.openDialogs.splice(n,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((o,r)=>{o?r.setAttribute("aria-hidden",o):r.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){let A=this._overlayContainer.getContainerElement();if(A.parentElement){let i=A.parentElement.children;for(let n=i.length-1;n>-1;n--){let o=i[n];o!==A&&o.nodeName!=="SCRIPT"&&o.nodeName!=="STYLE"&&!o.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(o,o.getAttribute("aria-hidden")),o.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){let A=this._parentDialog;return A?A._getAfterAllClosed():this._afterAllClosedAtThisLevel}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function aR(t,e){let A=t.length;for(;A--;)e(t[A])}function q3A(t,e){}var x8=class{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;width="";height="";minWidth;minHeight;maxWidth;maxHeight;position;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;delayFocusTrap=!0;scrollStrategy;closeOnNavigation=!0;componentFactoryResolver;enterAnimationDuration;exitAnimationDuration},gR="mdc-dialog--open",hq="mdc-dialog--opening",fq="mdc-dialog--closing",V3A=150,Z3A=75,W3A=(()=>{class t extends cR{_animationMode=f(_i,{optional:!0});_animationStateChanged=new YA;_animationsEnabled=this._animationMode!=="NoopAnimations";_actionSectionCount=0;_hostElement=this._elementRef.nativeElement;_enterAnimationDuration=this._animationsEnabled?pq(this._config.enterAnimationDuration)??V3A:0;_exitAnimationDuration=this._animationsEnabled?pq(this._config.exitAnimationDuration)??Z3A:0;_animationTimer=null;_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(mq,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(hq,gR)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(gR),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(gR),this._animationsEnabled?(this._hostElement.style.setProperty(mq,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(fq)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(A){this._actionSectionCount+=A,this._changeDetectorRef.markForCheck()}_finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)};_finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})};_clearAnimationClasses(){this._hostElement.classList.remove(hq,fq)}_waitForAnimationToComplete(A,i){this._animationTimer!==null&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,A)}_requestAnimationFrame(A){this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(A):A()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(A){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:A})}ngOnDestroy(){super.ngOnDestroy(),this._animationTimer!==null&&clearTimeout(this._animationTimer)}attachComponentPortal(A){let i=super.attachComponentPortal(A);return i.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),i}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,n){i&2&&(Qa("id",n._config.id),Ke("aria-modal",n._config.ariaModal)("role",n._config.role)("aria-labelledby",n._config.ariaLabel?null:n._ariaLabelledByQueue[0])("aria-label",n._config.ariaLabel)("aria-describedby",n._config.ariaDescribedBy||null),he("_mat-animation-noopable",!n._animationsEnabled)("mat-mdc-dialog-container-with-actions",n._actionSectionCount>0))},features:[lt],decls:3,vars:0,consts:[[1,"mat-mdc-dialog-inner-container","mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,n){i&1&&(S(0,"div",0)(1,"div",1),NA(2,q3A,0,0,"ng-template",2),N()())},dependencies:[wa],styles:['.mat-mdc-dialog-container{width:100%;height:100%;display:block;box-sizing:border-box;max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;outline:0}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 560px);min-width:var(--mat-dialog-container-min-width, 280px)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, calc(100vw - 32px))}}.mat-mdc-dialog-inner-container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;transition:opacity linear var(--mat-dialog-transition-duration, 0ms);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mdc-dialog--closing .mat-mdc-dialog-inner-container{transition:opacity 75ms linear;transform:none}.mdc-dialog--open .mat-mdc-dialog-inner-container{opacity:1}._mat-animation-noopable .mat-mdc-dialog-inner-container{transition:none}.mat-mdc-dialog-surface{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;width:100%;height:100%;position:relative;overflow-y:auto;outline:0;transform:scale(0.8);transition:transform var(--mat-dialog-transition-duration, 0ms) cubic-bezier(0, 0, 0.2, 1);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;box-shadow:var(--mat-dialog-container-elevation-shadow, none);border-radius:var(--mdc-dialog-container-shape, var(--mat-sys-corner-extra-large, 4px));background-color:var(--mdc-dialog-container-color, var(--mat-sys-surface, white))}[dir=rtl] .mat-mdc-dialog-surface{text-align:right}.mdc-dialog--open .mat-mdc-dialog-surface,.mdc-dialog--closing .mat-mdc-dialog-surface{transform:none}._mat-animation-noopable .mat-mdc-dialog-surface{transition:none}.mat-mdc-dialog-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-dialog-title{display:block;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:var(--mat-dialog-headline-padding, 6px 24px 13px)}.mat-mdc-dialog-title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mat-mdc-dialog-title{text-align:right}.mat-mdc-dialog-container .mat-mdc-dialog-title{color:var(--mdc-dialog-subhead-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mdc-dialog-subhead-font, var(--mat-sys-headline-small-font, inherit));line-height:var(--mdc-dialog-subhead-line-height, var(--mat-sys-headline-small-line-height, 1.5rem));font-size:var(--mdc-dialog-subhead-size, var(--mat-sys-headline-small-size, 1rem));font-weight:var(--mdc-dialog-subhead-weight, var(--mat-sys-headline-small-weight, 400));letter-spacing:var(--mdc-dialog-subhead-tracking, var(--mat-sys-headline-small-tracking, 0.03125em))}.mat-mdc-dialog-content{display:block;flex-grow:1;box-sizing:border-box;margin:0;overflow:auto;max-height:65vh}.mat-mdc-dialog-content>:first-child{margin-top:0}.mat-mdc-dialog-content>:last-child{margin-bottom:0}.mat-mdc-dialog-container .mat-mdc-dialog-content{color:var(--mdc-dialog-supporting-text-color, var(--mat-sys-on-surface-variant, rgba(0, 0, 0, 0.6)));font-family:var(--mdc-dialog-supporting-text-font, var(--mat-sys-body-medium-font, inherit));line-height:var(--mdc-dialog-supporting-text-line-height, var(--mat-sys-body-medium-line-height, 1.5rem));font-size:var(--mdc-dialog-supporting-text-size, var(--mat-sys-body-medium-size, 1rem));font-weight:var(--mdc-dialog-supporting-text-weight, var(--mat-sys-body-medium-weight, 400));letter-spacing:var(--mdc-dialog-supporting-text-tracking, var(--mat-sys-body-medium-tracking, 0.03125em))}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px 0)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0);padding:var(--mat-dialog-actions-padding, 16px 24px);justify-content:var(--mat-dialog-actions-alignment, flex-end)}@media(forced-colors: active){.mat-mdc-dialog-actions{border-top-color:CanvasText}}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}.mat-mdc-dialog-component-host{display:contents}'],encapsulation:2})}return t})(),mq="--mat-dialog-transition-duration";function pq(t){return t==null?null:typeof t=="number"?t:t.endsWith("ms")?Zs(t.substring(0,t.length-2)):t.endsWith("s")?Zs(t.substring(0,t.length-1))*1e3:t==="0"?0:null}var L8=function(t){return t[t.OPEN=0]="OPEN",t[t.CLOSING=1]="CLOSING",t[t.CLOSED=2]="CLOSED",t}(L8||{}),fr=class{_ref;_containerInstance;componentInstance;componentRef;disableClose;id;_afterOpened=new qA;_beforeClosed=new qA;_result;_closeFallbackTimeout;_state=L8.OPEN;_closeInteractionType;constructor(e,A,i){this._ref=e,this._containerInstance=i,this.disableClose=A.disableClose,this.id=e.id,e.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(Nt(n=>n.state==="opened"),Xn(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(Nt(n=>n.state==="closed"),Xn(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),e.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),Hn(this.backdropClick(),this.keydownEvents().pipe(Nt(n=>n.keyCode===27&&!this.disableClose&&!sr(n)))).subscribe(n=>{this.disableClose||(n.preventDefault(),Dq(this,n.type==="keydown"?"keyboard":"mouse"))})}close(e){this._result=e,this._containerInstance._animationStateChanged.pipe(Nt(A=>A.state==="closing"),Xn(1)).subscribe(A=>{this._beforeClosed.next(e),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),A.totalTime+100)}),this._state=L8.CLOSING,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(e){let A=this._ref.config.positionStrategy;return e&&(e.left||e.right)?e.left?A.left(e.left):A.right(e.right):A.centerHorizontally(),e&&(e.top||e.bottom)?e.top?A.top(e.top):A.bottom(e.bottom):A.centerVertically(),this._ref.updatePosition(),this}updateSize(e="",A=""){return this._ref.updateSize(e,A),this}addPanelClass(e){return this._ref.addPanelClass(e),this}removePanelClass(e){return this._ref.removePanelClass(e),this}getState(){return this._state}_finishDialogClose(){this._state=L8.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}};function Dq(t,e,A){return t._closeInteractionType=e,t.close(A)}var Cs=new eA("MatMdcDialogData"),X3A=new eA("mat-mdc-dialog-default-options"),$3A=new eA("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.block()}});var Fc=(()=>{class t{_overlay=f(Br);_defaultOptions=f(X3A,{optional:!0});_scrollStrategy=f($3A);_parentDialog=f(t,{optional:!0,skipSelf:!0});_idGenerator=f(an);_dialog=f(uq);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new qA;_afterOpenedAtThisLevel=new qA;dialogConfigClass=x8;_dialogRefConstructor;_dialogContainerType;_dialogDataToken;get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){let A=this._parentDialog;return A?A._getAfterAllClosed():this._afterAllClosedAtThisLevel}afterAllClosed=el(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(On(void 0)));constructor(){this._dialogRefConstructor=fr,this._dialogContainerType=W3A,this._dialogDataToken=Cs}open(A,i){let n;i=sA(sA({},this._defaultOptions||new x8),i),i.id=i.id||this._idGenerator.getId("mat-mdc-dialog-"),i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();let o=this._dialog.open(A,Fe(sA({},i),{positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:W2,useValue:i}]},templateContext:()=>({dialogRef:n}),providers:(r,s,a)=>(n=new this._dialogRefConstructor(r,i,a),n.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:a},{provide:this._dialogDataToken,useValue:s.data},{provide:this._dialogRefConstructor,useValue:n}])}));return n.componentRef=o.componentRef,n.componentInstance=o.componentInstance,this.openDialogs.push(n),this.afterOpened.next(n),n.afterClosed().subscribe(()=>{let r=this.openDialogs.indexOf(n);r>-1&&(this.openDialogs.splice(r,1),this.openDialogs.length||this._getAfterAllClosed().next())}),n}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(A){return this.openDialogs.find(i=>i.id===A)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(A){let i=A.length;for(;i--;)A[i].close()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),bl=(()=>{class t{dialogRef=f(fr,{optional:!0});_elementRef=f(se);_dialog=f(Fc);ariaLabel;type="button";dialogResult;_matDialogClose;constructor(){}ngOnInit(){this.dialogRef||(this.dialogRef=yq(this._elementRef,this._dialog.openDialogs))}ngOnChanges(A){let i=A._matDialogClose||A._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(A){Dq(this.dialogRef,A.screenX===0&&A.screenY===0?"keyboard":"mouse",this.dialogResult)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,n){i&1&&mA("click",function(r){return n._onButtonClick(r)}),i&2&&Ke("aria-label",n.ariaLabel||null)("type",n.type)},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],type:"type",dialogResult:[0,"mat-dialog-close","dialogResult"],_matDialogClose:[0,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[Xt]})}return t})(),wq=(()=>{class t{_dialogRef=f(fr,{optional:!0});_elementRef=f(se);_dialog=f(Fc);constructor(){}ngOnInit(){this._dialogRef||(this._dialogRef=yq(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._onAdd()})}ngOnDestroy(){this._dialogRef?._containerInstance&&Promise.resolve().then(()=>{this._onRemove()})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t})}return t})(),Ls=(()=>{class t extends wq{id=f(an).getId("mat-mdc-dialog-title-");_onAdd(){this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id)}_onRemove(){this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,n){i&2&&Qa("id",n.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],features:[lt]})}return t})(),ya=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],features:[LH([k0])]})}return t})(),va=(()=>{class t extends wq{align;_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:6,hostBindings:function(i,n){i&2&&he("mat-mdc-dialog-actions-align-start",n.align==="start")("mat-mdc-dialog-actions-align-center",n.align==="center")("mat-mdc-dialog-actions-align-end",n.align==="end")},inputs:{align:"align"},features:[lt]})}return t})();function yq(t,e){let A=t.nativeElement.parentElement;for(;A&&!A.classList.contains("mat-mdc-dialog-container");)A=A.parentElement;return A?e.find(i=>i.id===A.id):null}var vq=(()=>{class t{get vertical(){return this._vertical}set vertical(A){this._vertical=Ar(A)}_vertical=!1;get inset(){return this._inset}set inset(A){this._inset=Ar(A)}_inset=!1;static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,n){i&2&&(Ke("aria-orientation",n.vertical?"vertical":"horizontal"),he("mat-divider-vertical",n.vertical)("mat-divider-horizontal",!n.vertical)("mat-divider-inset",n.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(i,n){},styles:[".mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color, var(--mat-sys-outline));border-top-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color, var(--mat-sys-outline));border-right-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}return t})();var AfA=["*"],N8;function efA(){if(N8===void 0&&(N8=null,typeof window<"u")){let t=window;t.trustedTypes!==void 0&&(N8=t.trustedTypes.createPolicy("angular#components",{createHTML:e=>e}))}return N8}function Vh(t){return efA()?.createHTML(t)||t}function Mq(t){return Error(`Unable to find icon with the name "${t}"`)}function tfA(){return Error("Could not find HttpClient for use with Angular Material icons. Please add provideHttpClient() to your providers.")}function bq(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function kq(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}var S0=class{url;svgText;options;svgElement;constructor(e,A,i){this.url=e,this.svgText=A,this.options=i}},ifA=(()=>{class t{_httpClient;_sanitizer;_errorHandler;_document;_svgIconConfigs=new Map;_iconSetConfigs=new Map;_cachedIconsByUrl=new Map;_inProgressUrlFetches=new Map;_fontCssClassesByAlias=new Map;_resolvers=[];_defaultFontSetClass=["material-icons","mat-ligature-font"];constructor(A,i,n,o){this._httpClient=A,this._sanitizer=i,this._errorHandler=o,this._document=n}addSvgIcon(A,i,n){return this.addSvgIconInNamespace("",A,i,n)}addSvgIconLiteral(A,i,n){return this.addSvgIconLiteralInNamespace("",A,i,n)}addSvgIconInNamespace(A,i,n,o){return this._addSvgIconConfig(A,i,new S0(n,null,o))}addSvgIconResolver(A){return this._resolvers.push(A),this}addSvgIconLiteralInNamespace(A,i,n,o){let r=this._sanitizer.sanitize(Xr.HTML,n);if(!r)throw kq(n);let s=Vh(r);return this._addSvgIconConfig(A,i,new S0("",s,o))}addSvgIconSet(A,i){return this.addSvgIconSetInNamespace("",A,i)}addSvgIconSetLiteral(A,i){return this.addSvgIconSetLiteralInNamespace("",A,i)}addSvgIconSetInNamespace(A,i,n){return this._addSvgIconSetConfig(A,new S0(i,null,n))}addSvgIconSetLiteralInNamespace(A,i,n){let o=this._sanitizer.sanitize(Xr.HTML,i);if(!o)throw kq(i);let r=Vh(o);return this._addSvgIconSetConfig(A,new S0("",r,n))}registerFontClassAlias(A,i=A){return this._fontCssClassesByAlias.set(A,i),this}classNameForFontAlias(A){return this._fontCssClassesByAlias.get(A)||A}setDefaultFontSetClass(...A){return this._defaultFontSetClass=A,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(A){let i=this._sanitizer.sanitize(Xr.RESOURCE_URL,A);if(!i)throw bq(A);let n=this._cachedIconsByUrl.get(i);return n?Ce(F8(n)):this._loadSvgIconFromConfig(new S0(A,null)).pipe(So(o=>this._cachedIconsByUrl.set(i,o)),je(o=>F8(o)))}getNamedSvgIcon(A,i=""){let n=Sq(i,A),o=this._svgIconConfigs.get(n);if(o)return this._getSvgFromConfig(o);if(o=this._getIconConfigFromResolvers(i,A),o)return this._svgIconConfigs.set(n,o),this._getSvgFromConfig(o);let r=this._iconSetConfigs.get(i);return r?this._getSvgFromIconSetConfigs(A,r):d2(Mq(n))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(A){return A.svgText?Ce(F8(this._svgElementFromConfig(A))):this._loadSvgIconFromConfig(A).pipe(je(i=>F8(i)))}_getSvgFromIconSetConfigs(A,i){let n=this._extractIconWithNameFromAnySet(A,i);if(n)return Ce(n);let o=i.filter(r=>!r.svgText).map(r=>this._loadSvgIconSetFromConfig(r).pipe(Gr(s=>{let c=`Loading icon set URL: ${this._sanitizer.sanitize(Xr.RESOURCE_URL,r.url)} failed: ${s.message}`;return this._errorHandler.handleError(new Error(c)),Ce(null)})));return gu(o).pipe(je(()=>{let r=this._extractIconWithNameFromAnySet(A,i);if(!r)throw Mq(A);return r}))}_extractIconWithNameFromAnySet(A,i){for(let n=i.length-1;n>=0;n--){let o=i[n];if(o.svgText&&o.svgText.toString().indexOf(A)>-1){let r=this._svgElementFromConfig(o),s=this._extractSvgIconFromSet(r,A,o.options);if(s)return s}}return null}_loadSvgIconFromConfig(A){return this._fetchIcon(A).pipe(So(i=>A.svgText=i),je(()=>this._svgElementFromConfig(A)))}_loadSvgIconSetFromConfig(A){return A.svgText?Ce(null):this._fetchIcon(A).pipe(So(i=>A.svgText=i))}_extractSvgIconFromSet(A,i,n){let o=A.querySelector(`[id="${i}"]`);if(!o)return null;let r=o.cloneNode(!0);if(r.removeAttribute("id"),r.nodeName.toLowerCase()==="svg")return this._setSvgAttributes(r,n);if(r.nodeName.toLowerCase()==="symbol")return this._setSvgAttributes(this._toSvgElement(r),n);let s=this._svgElementFromString(Vh(""));return s.appendChild(r),this._setSvgAttributes(s,n)}_svgElementFromString(A){let i=this._document.createElement("DIV");i.innerHTML=A;let n=i.querySelector("svg");if(!n)throw Error(" tag not found");return n}_toSvgElement(A){let i=this._svgElementFromString(Vh("")),n=A.attributes;for(let o=0;oVh(c)),nl(()=>this._inProgressUrlFetches.delete(r)),Iu());return this._inProgressUrlFetches.set(r,a),a}_addSvgIconConfig(A,i,n){return this._svgIconConfigs.set(Sq(A,i),n),this}_addSvgIconSetConfig(A,i){let n=this._iconSetConfigs.get(A);return n?n.push(i):this._iconSetConfigs.set(A,[i]),this}_svgElementFromConfig(A){if(!A.svgElement){let i=this._svgElementFromString(A.svgText);this._setSvgAttributes(i,A.options),A.svgElement=i}return A.svgElement}_getIconConfigFromResolvers(A,i){for(let n=0;ne?e.pathname+e.search:""}}var Rq=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],afA=Rq.map(t=>`[${t}]`).join(", "),cfA=/^url\(['"]?#(.*?)['"]?\)$/,_c=(()=>{class t{_elementRef=f(se);_iconRegistry=f(ifA);_location=f(rfA);_errorHandler=f(Ps);_defaultColor;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;inline=!1;get svgIcon(){return this._svgIcon}set svgIcon(A){A!==this._svgIcon&&(A?this._updateSvgIcon(A):this._svgIcon&&this._clearSvgElement(),this._svgIcon=A)}_svgIcon;get fontSet(){return this._fontSet}set fontSet(A){let i=this._cleanupFontValue(A);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}_fontSet;get fontIcon(){return this._fontIcon}set fontIcon(A){let i=this._cleanupFontValue(A);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_fontIcon;_previousFontSetClass=[];_previousFontIconClass;_svgName;_svgNamespace;_previousPath;_elementsWithExternalReferences;_currentIconFetch=Kt.EMPTY;constructor(){let A=f(new Wr("aria-hidden"),{optional:!0}),i=f(ofA,{optional:!0});i&&(i.color&&(this.color=this._defaultColor=i.color),i.fontSet&&(this.fontSet=i.fontSet)),A||this._elementRef.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(A){if(!A)return["",""];let i=A.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${A}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){let A=this._elementsWithExternalReferences;if(A&&A.size){let i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(A){this._clearSvgElement();let i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(A),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(A)}_clearSvgElement(){let A=this._elementRef.nativeElement,i=A.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){let n=A.childNodes[i];(n.nodeType!==1||n.nodeName.toLowerCase()==="svg")&&n.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;let A=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(n=>n.length>0);this._previousFontSetClass.forEach(n=>A.classList.remove(n)),i.forEach(n=>A.classList.add(n)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&A.classList.remove(this._previousFontIconClass),this.fontIcon&&A.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(A){return typeof A=="string"?A.trim().split(" ")[0]:A}_prependPathToReferences(A){let i=this._elementsWithExternalReferences;i&&i.forEach((n,o)=>{n.forEach(r=>{o.setAttribute(r.name,`url('${A}#${r.value}')`)})})}_cacheChildrenWithExternalReferences(A){let i=A.querySelectorAll(afA),n=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let o=0;o{let s=i[o],a=s.getAttribute(r),c=a?a.match(cfA):null;if(c){let g=n.get(s);g||(g=[],n.set(s,g)),g.push({name:r,value:c[1]})}})}_updateSvgIcon(A){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),A){let[i,n]=this._splitIconName(A);i&&(this._svgNamespace=i),n&&(this._svgName=n),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(n,i).pipe(Xn(1)).subscribe(o=>this._setSvgElement(o),o=>{let r=`Error retrieving icon ${i}:${n}! ${o.message}`;this._errorHandler.handleError(new Error(r))})}}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(i,n){i&2&&(Ke("data-mat-icon-type",n._usingFontIcon()?"font":"svg")("data-mat-icon-name",n._svgName||n.fontIcon)("data-mat-icon-namespace",n._svgNamespace||n.fontSet)("fontIcon",n._usingFontIcon()?n.fontIcon:null),Ro(n.color?"mat-"+n.color:""),he("mat-icon-inline",n.inline)("mat-icon-no-color",n.color!=="primary"&&n.color!=="accent"&&n.color!=="warn"))},inputs:{color:"color",inline:[2,"inline","inline",ge],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],ngContentSelectors:AfA,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color, inherit)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0})}return t})(),Lq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,pn]})}return t})();var lfA=["trigger"],IfA=["panel"],CfA=[[["mat-select-trigger"]],"*"],dfA=["mat-select-trigger","*"];function BfA(t,e){if(t&1&&(S(0,"span",4),AA(1),N()),t&2){let A=Y();_(),tt(A.placeholder)}}function EfA(t,e){t&1&&Ue(0)}function QfA(t,e){if(t&1&&(S(0,"span",11),AA(1),N()),t&2){let A=Y(2);_(),tt(A.triggerValue)}}function ufA(t,e){if(t&1&&(S(0,"span",5),NA(1,EfA,1,0)(2,QfA,2,1,"span",11),N()),t&2){let A=Y();_(),_A(A.customTrigger?1:2)}}function hfA(t,e){if(t&1){let A=me();S(0,"div",12,1),mA("@transformPanel.done",function(n){QA(A);let o=Y();return uA(o._panelDoneAnimatingStream.next(n.toState))})("keydown",function(n){QA(A);let o=Y();return uA(o._handleKeydown(n))}),Ue(2,1),N()}if(t&2){let A=Y();qH("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",A._getPanelTheme(),""),yA("ngClass",A.panelClass)("@transformPanel","showing"),Ke("id",A.id+"-panel")("aria-multiselectable",A.multiple)("aria-label",A.ariaLabel||null)("aria-labelledby",A._getPanelAriaLabelledby())}}var ffA={transformPanelWrap:nc("transformPanelWrap",[$r("* => void",Uk("@transformPanel",[Kk()],{optional:!0}))]),transformPanel:nc("transformPanel",[$s("void",Do({opacity:0,transform:"scale(1, 0.8)"})),$r("void => showing",Is("120ms cubic-bezier(0, 0, 0.2, 1)",Do({opacity:1,transform:"scale(1, 1)"}))),$r("* => void",Is("100ms linear",Do({opacity:0})))])};var mfA=new eA("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.reposition()}});var pfA=new eA("MAT_SELECT_CONFIG");var DfA=new eA("MatSelectTrigger"),lR=class{source;value;constructor(e,A){this.source=e,this.value=A}},YB=(()=>{class t{_viewportRuler=f(Nc);_changeDetectorRef=f(Et);_elementRef=f(se);_dir=f(po,{optional:!0});_idGenerator=f(an);_parentFormField=f(lh,{optional:!0});ngControl=f(ec,{self:!0,optional:!0});_liveAnnouncer=f(l6);_defaultOptions=f(pfA,{optional:!0});_initialized=new qA;options;optionGroups;customTrigger;_positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}];_scrollOptionIntoView(A){let i=this.options.toArray()[A];if(i){let n=this.panel.nativeElement,o=Fz(A,this.options,this.optionGroups),r=i._getHostElement();A===0&&o===1?n.scrollTop=0:n.scrollTop=_z(r.offsetTop,r.offsetHeight,n.scrollTop,n.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(A){return new lR(this,A)}_scrollStrategyFactory=f(mfA);_panelOpen=!1;_compareWith=(A,i)=>A===i;_uid=this._idGenerator.getId("mat-select-");_triggerAriaLabelledBy=null;_previousControl;_destroy=new qA;_errorStateTracker;stateChanges=new qA;disableAutomaticLabeling=!0;userAriaDescribedBy;_selectionModel;_keyManager;_preferredOverlayOrigin;_overlayWidth;_onChange=()=>{};_onTouched=()=>{};_valueId=this._idGenerator.getId("mat-select-value-");_panelDoneAnimatingStream=new qA;_scrollStrategy;_overlayPanelClass=this._defaultOptions?.overlayPanelClass||"";get focused(){return this._focused||this._panelOpen}_focused=!1;controlType="mat-select";trigger;panel;_overlayDir;panelClass;disabled=!1;disableRipple=!1;tabIndex=0;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(A){this._hideSingleSelectionIndicator=A,this._syncParentProperties()}_hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1;get placeholder(){return this._placeholder}set placeholder(A){this._placeholder=A,this.stateChanges.next()}_placeholder;get required(){return this._required??this.ngControl?.control?.hasValidator(Ac.required)??!1}set required(A){this._required=A,this.stateChanges.next()}_required;get multiple(){return this._multiple}set multiple(A){this._selectionModel,this._multiple=A}_multiple=!1;disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1;get compareWith(){return this._compareWith}set compareWith(A){this._compareWith=A,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(A){this._assignValue(A)&&this._onChange(A)}_value;ariaLabel="";ariaLabelledby;get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(A){this._errorStateTracker.matcher=A}typeaheadDebounceInterval;sortComparator;get id(){return this._id}set id(A){this._id=A||this._uid,this.stateChanges.next()}_id;get errorState(){return this._errorStateTracker.errorState}set errorState(A){this._errorStateTracker.errorState=A}panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto";canSelectNullableOptions=this._defaultOptions?.canSelectNullableOptions??!1;optionSelectionChanges=el(()=>{let A=this.options;return A?A.changes.pipe(On(A),$n(()=>Hn(...A.map(i=>i.onSelectionChange)))):this._initialized.pipe($n(()=>this.optionSelectionChanges))});openedChange=new YA;_openedStream=this.openedChange.pipe(Nt(A=>A),je(()=>{}));_closedStream=this.openedChange.pipe(Nt(A=>!A),je(()=>{}));selectionChange=new YA;valueChange=new YA;constructor(){let A=f(d6),i=f(ih,{optional:!0}),n=f(YI,{optional:!0}),o=f(new Wr("tabindex"),{optional:!0});this.ngControl&&(this.ngControl.valueAccessor=this),this._defaultOptions?.typeaheadDebounceInterval!=null&&(this.typeaheadDebounceInterval=this._defaultOptions.typeaheadDebounceInterval),this._errorStateTracker=new BB(A,this.ngControl,n,i,this.stateChanges),this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=o==null?0:parseInt(o)||0,this.id=this.id}ngOnInit(){this._selectionModel=new P2(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(il(),kt(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen)),this._viewportRuler.change().pipe(kt(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(kt(this._destroy)).subscribe(A=>{A.added.forEach(i=>i.select()),A.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(On(null),kt(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){let A=this._getTriggerAriaLabelledby(),i=this.ngControl;if(A!==this._triggerAriaLabelledBy){let n=this._elementRef.nativeElement;this._triggerAriaLabelledBy=A,A?n.setAttribute("aria-labelledby",A):n.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(this._previousControl!==void 0&&i.disabled!==null&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(A){(A.disabled||A.userAriaDescribedBy)&&this.stateChanges.next(),A.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this.typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_trackedModal=null;_applyModalPanelOwnership(){let A=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!A)return;let i=`${this.id}-panel`;this._trackedModal&&c6(this._trackedModal,"aria-owns",i),wk(A,"aria-owns",i),this._trackedModal=A}_clearFromModal(){if(!this._trackedModal)return;let A=`${this.id}-panel`;c6(this._trackedModal,"aria-owns",A),this._trackedModal=null}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next())}writeValue(A){this._assignValue(A)}registerOnChange(A){this._onChange=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){let A=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&A.reverse(),A.join(", ")}return this._selectionModel.selected[0].viewValue}updateErrorState(){this._errorStateTracker.updateErrorState()}_isRtl(){return this._dir?this._dir.value==="rtl":!1}_handleKeydown(A){this.disabled||(this.panelOpen?this._handleOpenKeydown(A):this._handleClosedKeydown(A))}_handleClosedKeydown(A){let i=A.keyCode,n=i===40||i===38||i===37||i===39,o=i===13||i===32,r=this._keyManager;if(!r.isTyping()&&o&&!sr(A)||(this.multiple||A.altKey)&&n)A.preventDefault(),this.open();else if(!this.multiple){let s=this.selected;r.onKeydown(A);let a=this.selected;a&&s!==a&&this._liveAnnouncer.announce(a.viewValue,1e4)}}_handleOpenKeydown(A){let i=this._keyManager,n=A.keyCode,o=n===40||n===38,r=i.isTyping();if(o&&A.altKey)A.preventDefault(),this.close();else if(!r&&(n===13||n===32)&&i.activeItem&&!sr(A))A.preventDefault(),i.activeItem._selectViaInteraction();else if(!r&&this._multiple&&n===65&&A.ctrlKey){A.preventDefault();let s=this.options.some(a=>!a.disabled&&!a.selected);this.options.forEach(a=>{a.disabled||(s?a.select():a.deselect())})}else{let s=i.activeItemIndex;i.onKeydown(A),this._multiple&&o&&A.shiftKey&&i.activeItem&&i.activeItemIndex!==s&&i.activeItem._selectViaInteraction()}}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(Xn(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(A){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&A)Array.isArray(A),A.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{let i=this._selectOptionByValue(A);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(A){let i=this.options.find(n=>{if(this._selectionModel.isSelected(n))return!1;try{return(n.value!=null||this.canSelectNullableOptions)&&this._compareWith(n.value,A)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(A){return A!==this._value||this._multiple&&Array.isArray(A)?(this.options&&this._setSelectionByValue(A),this._value=A,!0):!1}_skipPredicate=A=>this.panelOpen?!1:A.disabled;_getOverlayWidth(A){return this.panelWidth==="auto"?(A instanceof Ph?A.elementRef:A||this._elementRef).nativeElement.getBoundingClientRect().width:this.panelWidth===null?"":this.panelWidth}_syncParentProperties(){if(this.options)for(let A of this.options)A._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new a6(this.options).withTypeAhead(this.typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){let A=Hn(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(kt(A)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Hn(...this.options.map(i=>i._stateChanges)).pipe(kt(A)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(A,i){let n=this._selectionModel.isSelected(A);!this.canSelectNullableOptions&&A.value==null&&!this._multiple?(A.deselect(),this._selectionModel.clear(),this.value!=null&&this._propagateChanges(A.value)):(n!==A.selected&&(A.selected?this._selectionModel.select(A):this._selectionModel.deselect(A)),i&&this._keyManager.setActiveItem(A),this.multiple&&(this._sortValues(),i&&this.focus())),n!==this._selectionModel.isSelected(A)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){let A=this.options.toArray();this._selectionModel.sort((i,n)=>this.sortComparator?this.sortComparator(i,n,A):A.indexOf(i)-A.indexOf(n)),this.stateChanges.next()}}_propagateChanges(A){let i;this.multiple?i=this.selected.map(n=>n.value):i=this.selected?this.selected.value:A,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let A=-1;for(let i=0;i0}focus(A){this._elementRef.nativeElement.focus(A)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;let A=this._parentFormField?.getLabelId()||null,i=A?A+" ":"";return this.ariaLabelledby?i+this.ariaLabelledby:A}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;let A=this._parentFormField?.getLabelId(),i=(A?A+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(A){this.openedChange.emit(A)}setDescribedByIds(A){A.length?this._elementRef.nativeElement.setAttribute("aria-describedby",A.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-select"]],contentQueries:function(i,n,o){if(i&1&&(gi(o,DfA,5),gi(o,K2,5),gi(o,Nk,5)),i&2){let r;de(r=Be())&&(n.customTrigger=r.first),de(r=Be())&&(n.options=r),de(r=Be())&&(n.optionGroups=r)}},viewQuery:function(i,n){if(i&1&&(st(lfA,5),st(IfA,5),st(sR,5)),i&2){let o;de(o=Be())&&(n.trigger=o.first),de(o=Be())&&(n.panel=o.first),de(o=Be())&&(n._overlayDir=o.first)}},hostAttrs:["role","combobox","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,n){i&1&&mA("keydown",function(r){return n._handleKeydown(r)})("focus",function(){return n._onFocus()})("blur",function(){return n._onBlur()}),i&2&&(Ke("id",n.id)("tabindex",n.disabled?-1:n.tabIndex)("aria-controls",n.panelOpen?n.id+"-panel":null)("aria-expanded",n.panelOpen)("aria-label",n.ariaLabel||null)("aria-required",n.required.toString())("aria-disabled",n.disabled.toString())("aria-invalid",n.errorState)("aria-activedescendant",n._getAriaActiveDescendant()),he("mat-mdc-select-disabled",n.disabled)("mat-mdc-select-invalid",n.errorState)("mat-mdc-select-required",n.required)("mat-mdc-select-empty",n.empty)("mat-mdc-select-multiple",n.multiple))},inputs:{userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[2,"disabled","disabled",ge],disableRipple:[2,"disableRipple","disableRipple",ge],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:en(A)],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",ge],placeholder:"placeholder",required:[2,"required","required",ge],multiple:[2,"multiple","multiple",ge],disableOptionCentering:[2,"disableOptionCentering","disableOptionCentering",ge],compareWith:"compareWith",value:"value",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[2,"typeaheadDebounceInterval","typeaheadDebounceInterval",en],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth",canSelectNullableOptions:[2,"canSelectNullableOptions","canSelectNullableOptions",ge]},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],features:[ut([{provide:gh,useExisting:t},{provide:xk,useExisting:t}]),Xt],ngContentSelectors:dfA,decls:11,vars:8,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","attach","detach","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"keydown","ngClass"]],template:function(i,n){if(i&1){let o=me();$t(CfA),S(0,"div",2,0),mA("click",function(){return QA(o),uA(n.open())}),S(3,"div",3),NA(4,BfA,2,1,"span",4)(5,ufA,3,1,"span",5),N(),S(6,"div",6)(7,"div",7),ur(),S(8,"svg",8),TA(9,"path",9),N()()()(),NA(10,hfA,3,9,"ng-template",10),mA("backdropClick",function(){return QA(o),uA(n.close())})("attach",function(){return QA(o),uA(n._onAttached())})("detach",function(){return QA(o),uA(n.close())})}if(i&2){let o=Cr(1);_(3),Ke("id",n._valueId),_(),_A(n.empty?4:5),_(6),yA("cdkConnectedOverlayPanelClass",n._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",n._scrollStrategy)("cdkConnectedOverlayOrigin",n._preferredOverlayOrigin||o)("cdkConnectedOverlayOpen",n.panelOpen)("cdkConnectedOverlayPositions",n._positions)("cdkConnectedOverlayWidth",n._overlayWidth)}},dependencies:[Ph,sR,Vs],styles:['.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color, var(--mat-sys-on-surface));font-family:var(--mat-select-trigger-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-select-trigger-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-select-trigger-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-select-trigger-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-select-trigger-text-tracking, var(--mat-sys-body-large-tracking))}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-disabled .mat-mdc-select-placeholder{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color, var(--mat-sys-error))}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}@media(forced-colors: active){.mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .mat-mdc-select-arrow svg{fill:GrayText}}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color, var(--mat-sys-surface-container))}@media(forced-colors: active){div.mat-mdc-select-panel{outline:solid 1px}}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}div.mat-mdc-select-panel .mat-mdc-option{--mdc-list-list-item-container-color: var(--mat-select-panel-background-color)}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color, var(--mat-sys-on-surface-variant))}.mat-form-field-no-animations .mat-mdc-select-placeholder,._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform, translateY(-8px))}'],encapsulation:2,data:{animation:[ffA.transformPanel]},changeDetection:0})}return t})();var wfA=["tooltip"],Fq=20;var _q=new eA("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.reposition({scrollThrottle:Fq})}});function yfA(t){return()=>t.scrollStrategies.reposition({scrollThrottle:Fq})}var vfA={provide:_q,deps:[Br],useFactory:yfA};function MfA(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}var bfA=new eA("mat-tooltip-default-options",{providedIn:"root",factory:MfA});var xq="tooltip-panel",Nq=Sc({passive:!0}),kfA=8,SfA=8,RfA=24,LfA=200,kl=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);_platform=f(ni);_ariaDescriber=f(wz);_focusMonitor=f(Jr);_dir=f(po);_injector=f(Zt);_defaultOptions=f(bfA,{optional:!0});_overlayRef;_tooltipInstance;_portal;_position="below";_positionAtOrigin=!1;_disabled=!1;_tooltipClass;_viewInitialized=!1;_pointerExitEventsInitialized=!1;_tooltipComponent=xfA;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending;_dirSubscribed=!1;get position(){return this._position}set position(A){A!==this._position&&(this._position=A,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(A){this._positionAtOrigin=Ar(A),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(A){let i=Ar(A);this._disabled!==i&&(this._disabled=i,i?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(A){this._showDelay=Zs(A)}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(A){this._hideDelay=Zs(A),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}_hideDelay;touchGestures="auto";get message(){return this._message}set message(A){let i=this._message;this._message=A!=null?String(A).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(i)}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(A){this._tooltipClass=A,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}_passiveListeners=[];_touchstartTimeout=null;_destroyed=new qA;_isDestroyed=!1;constructor(){let A=this._defaultOptions;A&&(this._showDelay=A.showDelay,this._hideDelay=A.hideDelay,A.position&&(this.position=A.position),A.positionAtOrigin&&(this.positionAtOrigin=A.positionAtOrigin),A.touchGestures&&(this.touchGestures=A.touchGestures),A.tooltipClass&&(this.tooltipClass=A.tooltipClass)),this._viewportMargin=kfA}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(kt(this._destroyed)).subscribe(A=>{A?A==="keyboard"&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){let A=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,n])=>{A.removeEventListener(i,n,Nq)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._isDestroyed=!0,this._ariaDescriber.removeDescription(A,this.message,"tooltip"),this._focusMonitor.stopMonitoring(A)}show(A=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible()){this._tooltipInstance?._cancelPendingAnimations();return}let n=this._createOverlay(i);this._detach(),this._portal=this._portal||new yg(this._tooltipComponent,this._injector.get(Sn));let o=this._tooltipInstance=n.attach(this._portal).instance;o._triggerElement=this._elementRef.nativeElement,o._mouseLeaveHideDelay=this._hideDelay,o.afterHidden().pipe(kt(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),o.show(A)}hide(A=this.hideDelay){let i=this._tooltipInstance;i&&(i.isVisible()?i.hide(A):(i._cancelPendingAnimations(),this._detach()))}toggle(A){this._isTooltipVisible()?this.hide():this.show(void 0,A)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(A){if(this._overlayRef){let r=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!A)&&r._origin instanceof se)return this._overlayRef;this._detach()}let i=this._injector.get(q2).getAncestorScrollContainers(this._elementRef),n=this._injector.get(Br),o=n.position().flexibleConnectedTo(this.positionAtOrigin?A||this._elementRef:this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return o.positionChanges.pipe(kt(this._destroyed)).subscribe(r=>{this._updateCurrentPositionClass(r.connectionPair),this._tooltipInstance&&r.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=n.create({direction:this._dir,positionStrategy:o,panelClass:`${this._cssClassPrefix}-${xq}`,scrollStrategy:this._injector.get(_q)()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(kt(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(kt(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(kt(this._destroyed)).subscribe(r=>{this._isTooltipVisible()&&r.keyCode===27&&!sr(r)&&(r.preventDefault(),r.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._dirSubscribed||(this._dirSubscribed=!0,this._dir.change.pipe(kt(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(A){let i=A.getConfig().positionStrategy,n=this._getOrigin(),o=this._getOverlayPosition();i.withPositions([this._addOffset(sA(sA({},n.main),o.main)),this._addOffset(sA(sA({},n.fallback),o.fallback))])}_addOffset(A){let i=SfA,n=!this._dir||this._dir.value=="ltr";return A.originY==="top"?A.offsetY=-i:A.originY==="bottom"?A.offsetY=i:A.originX==="start"?A.offsetX=n?-i:i:A.originX==="end"&&(A.offsetX=n?i:-i),A}_getOrigin(){let A=!this._dir||this._dir.value=="ltr",i=this.position,n;i=="above"||i=="below"?n={originX:"center",originY:i=="above"?"top":"bottom"}:i=="before"||i=="left"&&A||i=="right"&&!A?n={originX:"start",originY:"center"}:(i=="after"||i=="right"&&A||i=="left"&&!A)&&(n={originX:"end",originY:"center"});let{x:o,y:r}=this._invertPosition(n.originX,n.originY);return{main:n,fallback:{originX:o,originY:r}}}_getOverlayPosition(){let A=!this._dir||this._dir.value=="ltr",i=this.position,n;i=="above"?n={overlayX:"center",overlayY:"bottom"}:i=="below"?n={overlayX:"center",overlayY:"top"}:i=="before"||i=="left"&&A||i=="right"&&!A?n={overlayX:"end",overlayY:"center"}:(i=="after"||i=="right"&&A||i=="left"&&!A)&&(n={overlayX:"start",overlayY:"center"});let{x:o,y:r}=this._invertPosition(n.overlayX,n.overlayY);return{main:n,fallback:{overlayX:o,overlayY:r}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),Ir(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(A){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=A,this._tooltipInstance._markForCheck())}_invertPosition(A,i){return this.position==="above"||this.position==="below"?i==="top"?i="bottom":i==="bottom"&&(i="top"):A==="end"?A="start":A==="start"&&(A="end"),{x:A,y:i}}_updateCurrentPositionClass(A){let{overlayY:i,originX:n,originY:o}=A,r;if(i==="center"?this._dir&&this._dir.value==="rtl"?r=n==="end"?"left":"right":r=n==="start"?"left":"right":r=i==="bottom"&&o==="top"?"above":"below",r!==this._currentPosition){let s=this._overlayRef;if(s){let a=`${this._cssClassPrefix}-${xq}-`;s.removePanelClass(a+this._currentPosition),s.addPanelClass(a+r)}this._currentPosition=r}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",A=>{this._setupPointerExitEventsIfNeeded();let i;A.x!==void 0&&A.y!==void 0&&(i=A),this.show(void 0,i)}]):this.touchGestures!=="off"&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",A=>{let i=A.targetTouches?.[0],n=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout);let o=500;this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,n)},this._defaultOptions?.touchLongPressShowDelay??o)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;let A=[];if(this._platformSupportsMouseEvents())A.push(["mouseleave",i=>{let n=i.relatedTarget;(!n||!this._overlayRef?.overlayElement.contains(n))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if(this.touchGestures!=="off"){this._disableNativeGesturesIfNecessary();let i=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay)};A.push(["touchend",i],["touchcancel",i])}this._addListeners(A),this._passiveListeners.push(...A)}_addListeners(A){A.forEach(([i,n])=>{this._elementRef.nativeElement.addEventListener(i,n,Nq)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(A){if(this._isTooltipVisible()){let i=this._injector.get(at).elementFromPoint(A.clientX,A.clientY),n=this._elementRef.nativeElement;i!==n&&!n.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){let A=this.touchGestures;if(A!=="off"){let i=this._elementRef.nativeElement,n=i.style;(A==="on"||i.nodeName!=="INPUT"&&i.nodeName!=="TEXTAREA")&&(n.userSelect=n.msUserSelect=n.webkitUserSelect=n.MozUserSelect="none"),(A==="on"||!i.draggable)&&(n.webkitUserDrag="none"),n.touchAction="none",n.webkitTapHighlightColor="transparent"}}_syncAriaDescription(A){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,A,"tooltip"),this._isDestroyed||Ir({write:()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")}},{injector:this._injector}))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,n){i&2&&he("mat-mdc-tooltip-disabled",n.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return t})(),xfA=(()=>{class t{_changeDetectorRef=f(Et);_elementRef=f(se);_isMultiline=!1;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled;_tooltip;_closeOnInteraction=!1;_isVisible=!1;_onHide=new qA;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";constructor(){let A=f(_i,{optional:!0});this._animationsDisabled=A==="NoopAnimations"}show(A){this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},A)}hide(A){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},A)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:A}){(!A||!this._triggerElement.contains(A))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){let A=this._elementRef.nativeElement.getBoundingClientRect();return A.height>RfA&&A.width>=LfA}_handleAnimationEnd({animationName:A}){(A===this._showAnimation||A===this._hideAnimation)&&this._finalizeAnimation(A===this._showAnimation)}_cancelPendingAnimations(){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(A){A?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(A){let i=this._tooltip.nativeElement,n=this._showAnimation,o=this._hideAnimation;if(i.classList.remove(A?o:n),i.classList.add(A?n:o),this._isVisible!==A&&(this._isVisible=A,this._changeDetectorRef.markForCheck()),A&&!this._animationsDisabled&&typeof getComputedStyle=="function"){let r=getComputedStyle(i);(r.getPropertyValue("animation-duration")==="0s"||r.getPropertyValue("animation-name")==="none")&&(this._animationsDisabled=!0)}A&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(A))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-tooltip-component"]],viewQuery:function(i,n){if(i&1&&st(wfA,7),i&2){let o;de(o=Be())&&(n._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(i,n){i&1&&mA("mouseleave",function(r){return n._handleMouseLeave(r)})},decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(i,n){if(i&1){let o=me();S(0,"div",1,0),mA("animationend",function(s){return QA(o),uA(n._handleAnimationEnd(s))}),S(2,"div",2),AA(3),N()()}i&2&&(he("mdc-tooltip--multiline",n._isMultiline),yA("ngClass",n.tooltipClass),_(3),tt(n.message))},dependencies:[Vs],styles:['.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mdc-plain-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mdc-plain-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-plain-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mdc-plain-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mdc-plain-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mdc-plain-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mdc-plain-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-mdc-tooltip-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel{line-height:normal}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}return t})();var IR=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[vfA],imports:[vk,Z2,pn,pn,j2]})}return t})();function FfA(t,e){if(t&1&&(S(0,"mat-option",17),AA(1),N()),t&2){let A=e.$implicit;yA("value",A),_(),It(" ",A," ")}}function _fA(t,e){if(t&1){let A=me();S(0,"mat-form-field",14)(1,"mat-select",16,0),mA("selectionChange",function(n){QA(A);let o=Y(2);return uA(o._changePageSize(n.value))}),dn(3,FfA,2,2,"mat-option",17,zn),N(),S(5,"div",18),mA("click",function(){QA(A);let n=Cr(2);return uA(n.open())}),N()()}if(t&2){let A=Y(2);yA("appearance",A._formFieldAppearance)("color",A.color),_(),yA("value",A.pageSize)("disabled",A.disabled)("aria-labelledby",A._pageSizeLabelId)("panelClass",A.selectConfig.panelClass||"")("disableOptionCentering",A.selectConfig.disableOptionCentering),_(2),Bn(A._displayedPageSizeOptions)}}function GfA(t,e){if(t&1&&(S(0,"div",15),AA(1),N()),t&2){let A=Y(2);_(),tt(A.pageSize)}}function KfA(t,e){if(t&1&&(S(0,"div",3)(1,"div",13),AA(2),N(),NA(3,_fA,6,7,"mat-form-field",14)(4,GfA,2,1,"div",15),N()),t&2){let A=Y();_(),Ke("id",A._pageSizeLabelId),_(),It(" ",A._intl.itemsPerPageLabel," "),_(),_A(A._displayedPageSizeOptions.length>1?3:-1),_(),_A(A._displayedPageSizeOptions.length<=1?4:-1)}}function UfA(t,e){if(t&1){let A=me();S(0,"button",19),mA("click",function(){QA(A);let n=Y();return uA(n._buttonClicked(0,n._previousButtonsDisabled()))}),ur(),S(1,"svg",8),TA(2,"path",20),N()()}if(t&2){let A=Y();yA("matTooltip",A._intl.firstPageLabel)("matTooltipDisabled",A._previousButtonsDisabled())("disabled",A._previousButtonsDisabled()),Ke("aria-label",A._intl.firstPageLabel)}}function JfA(t,e){if(t&1){let A=me();S(0,"button",21),mA("click",function(){QA(A);let n=Y();return uA(n._buttonClicked(n.getNumberOfPages()-1,n._nextButtonsDisabled()))}),ur(),S(1,"svg",8),TA(2,"path",22),N()()}if(t&2){let A=Y();yA("matTooltip",A._intl.lastPageLabel)("matTooltipDisabled",A._nextButtonsDisabled())("disabled",A._nextButtonsDisabled()),Ke("aria-label",A._intl.lastPageLabel)}}var _8=(()=>{class t{changes=new qA;itemsPerPageLabel="Items per page:";nextPageLabel="Next page";previousPageLabel="Previous page";firstPageLabel="First page";lastPageLabel="Last page";getRangeLabel=(A,i,n)=>{if(n==0||i==0)return`0 of ${n}`;n=Math.max(n,0);let o=A*i,r=o{class t{_intl=f(_8);_changeDetectorRef=f(Et);_formFieldAppearance;_pageSizeLabelId=f(an).getId("mat-paginator-page-size-label-");_intlChanges;_isInitialized=!1;_initializedStream=new sg(1);color;get pageIndex(){return this._pageIndex}set pageIndex(A){this._pageIndex=Math.max(A||0,0),this._changeDetectorRef.markForCheck()}_pageIndex=0;get length(){return this._length}set length(A){this._length=A||0,this._changeDetectorRef.markForCheck()}_length=0;get pageSize(){return this._pageSize}set pageSize(A){this._pageSize=Math.max(A||0,0),this._updateDisplayedPageSizeOptions()}_pageSize;get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(A){this._pageSizeOptions=(A||[]).map(i=>en(i,0)),this._updateDisplayedPageSizeOptions()}_pageSizeOptions=[];hidePageSize=!1;showFirstLastButtons=!1;selectConfig={};disabled=!1;page=new YA;_displayedPageSizeOptions;initialized=this._initializedStream;constructor(){let A=this._intl,i=f(TfA,{optional:!0});if(this._intlChanges=A.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),i){let{pageSize:n,pageSizeOptions:o,hidePageSize:r,showFirstLastButtons:s}=i;n!=null&&(this._pageSize=n),o!=null&&(this._pageSizeOptions=o),r!=null&&(this.hidePageSize=r),s!=null&&(this.showFirstLastButtons=s)}this._formFieldAppearance=i?.formFieldAppearance||"outline"}ngOnInit(){this._isInitialized=!0,this._updateDisplayedPageSizeOptions(),this._initializedStream.next()}ngOnDestroy(){this._initializedStream.complete(),this._intlChanges.unsubscribe()}nextPage(){this.hasNextPage()&&this._navigate(this.pageIndex+1)}previousPage(){this.hasPreviousPage()&&this._navigate(this.pageIndex-1)}firstPage(){this.hasPreviousPage()&&this._navigate(0)}lastPage(){this.hasNextPage()&&this._navigate(this.getNumberOfPages()-1)}hasPreviousPage(){return this.pageIndex>=1&&this.pageSize!=0}hasNextPage(){let A=this.getNumberOfPages()-1;return this.pageIndexA-i),this._changeDetectorRef.markForCheck())}_emitPageEvent(A){this.page.emit({previousPageIndex:A,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}_navigate(A){let i=this.pageIndex;A!==i&&(this.pageIndex=A,this._emitPageEvent(i))}_buttonClicked(A,i){i||this._navigate(A)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-mdc-paginator"],inputs:{color:"color",pageIndex:[2,"pageIndex","pageIndex",en],length:[2,"length","length",en],pageSize:[2,"pageSize","pageSize",en],pageSizeOptions:"pageSizeOptions",hidePageSize:[2,"hidePageSize","hidePageSize",ge],showFirstLastButtons:[2,"showFirstLastButtons","showFirstLastButtons",ge],selectConfig:"selectConfig",disabled:[2,"disabled","disabled",ge]},outputs:{page:"page"},exportAs:["matPaginator"],decls:14,vars:12,consts:[["selectRef",""],[1,"mat-mdc-paginator-outer-container"],[1,"mat-mdc-paginator-container"],[1,"mat-mdc-paginator-page-size"],[1,"mat-mdc-paginator-range-actions"],["aria-live","polite",1,"mat-mdc-paginator-range-label"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","disabled"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-previous",3,"click","matTooltip","matTooltipDisabled","disabled"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true",1,"mat-mdc-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-next",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","disabled"],[1,"mat-mdc-paginator-page-size-label"],[1,"mat-mdc-paginator-page-size-select",3,"appearance","color"],[1,"mat-mdc-paginator-page-size-value"],["hideSingleSelectionIndicator","",3,"selectionChange","value","disabled","aria-labelledby","panelClass","disableOptionCentering"],[3,"value"],[1,"mat-mdc-paginator-touch-target",3,"click"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(i,n){i&1&&(S(0,"div",1)(1,"div",2),NA(2,KfA,5,4,"div",3),S(3,"div",4)(4,"div",5),AA(5),N(),NA(6,UfA,3,4,"button",6),S(7,"button",7),mA("click",function(){return n._buttonClicked(n.pageIndex-1,n._previousButtonsDisabled())}),ur(),S(8,"svg",8),TA(9,"path",9),N()(),_I(),S(10,"button",10),mA("click",function(){return n._buttonClicked(n.pageIndex+1,n._nextButtonsDisabled())}),ur(),S(11,"svg",8),TA(12,"path",11),N()(),NA(13,JfA,3,4,"button",12),N()()()),i&2&&(_(2),_A(n.hidePageSize?-1:2),_(3),It(" ",n._intl.getRangeLabel(n.pageIndex,n.pageSize,n.length)," "),_(),_A(n.showFirstLastButtons?6:-1),_(),yA("matTooltip",n._intl.previousPageLabel)("matTooltipDisabled",n._previousButtonsDisabled())("disabled",n._previousButtonsDisabled()),Ke("aria-label",n._intl.previousPageLabel),_(3),yA("matTooltip",n._intl.nextPageLabel)("matTooltipDisabled",n._nextButtonsDisabled())("disabled",n._nextButtonsDisabled()),Ke("aria-label",n._intl.nextPageLabel),_(3),_A(n.showFirstLastButtons?13:-1))},dependencies:[fl,YB,K2,QB,kl],styles:[".mat-mdc-paginator{display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-paginator-container-text-color, var(--mat-sys-on-surface));background-color:var(--mat-paginator-container-background-color, var(--mat-sys-surface));font-family:var(--mat-paginator-container-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-paginator-container-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-paginator-container-text-size, var(--mat-sys-body-small-size));font-weight:var(--mat-paginator-container-text-weight, var(--mat-sys-body-small-weight));letter-spacing:var(--mat-paginator-container-text-tracking, var(--mat-sys-body-small-tracking));--mat-form-field-container-height:var(--mat-paginator-form-field-container-height, 40px);--mat-form-field-container-vertical-padding:var(--mat-paginator-form-field-container-vertical-padding, 8px)}.mat-mdc-paginator .mat-mdc-select-value{font-size:var(--mat-paginator-select-trigger-text-size, var(--mat-sys-body-small-size))}.mat-mdc-paginator .mat-mdc-form-field-subscript-wrapper{display:none}.mat-mdc-paginator .mat-mdc-select{line-height:1.5}.mat-mdc-paginator-outer-container{display:flex}.mat-mdc-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap;width:100%;min-height:var(--mat-paginator-container-size, 56px)}.mat-mdc-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-mdc-paginator-page-size{margin-right:0;margin-left:8px}.mat-mdc-paginator-page-size-label{margin:0 4px}.mat-mdc-paginator-page-size-select{margin:0 4px;width:84px}.mat-mdc-paginator-range-label{margin:0 32px 0 24px}.mat-mdc-paginator-range-actions{display:flex;align-items:center}.mat-mdc-paginator-icon{display:inline-block;width:28px;fill:var(--mat-paginator-enabled-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button[aria-disabled] .mat-mdc-paginator-icon{fill:var(--mat-paginator-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}[dir=rtl] .mat-mdc-paginator-icon{transform:rotate(180deg)}@media(forced-colors: active){.mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon,.mat-mdc-paginator-icon{fill:currentColor;fill:CanvasText}.mat-mdc-paginator-range-actions .mat-mdc-icon-button{outline:solid 1px}}.mat-mdc-paginator-touch-target{display:var(--mat-paginator-touch-target-display, block);position:absolute;top:50%;left:50%;width:84px;height:48px;background-color:rgba(0,0,0,0);transform:translate(-50%, -50%);cursor:pointer}"],encapsulation:2,changeDetection:0})}return t})();var Kq=["*"],HfA=["content"],OfA=[[["mat-drawer"]],[["mat-drawer-content"]],"*"],zfA=["mat-drawer","mat-drawer-content","*"];function PfA(t,e){if(t&1){let A=me();S(0,"div",1),mA("click",function(){QA(A);let n=Y();return uA(n._onBackdropClicked())}),N()}if(t&2){let A=Y();he("mat-drawer-shown",A._isShowingBackdrop())}}function jfA(t,e){t&1&&(S(0,"mat-drawer-content"),Ue(1,2),N())}var qfA=new eA("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:VfA}),Uq=new eA("MAT_DRAWER_CONTAINER");function VfA(){return!1}var CR=(()=>{class t extends k0{_platform=f(ni);_changeDetectorRef=f(Et);_container=f(BR);constructor(){let A=f(se),i=f(q2),n=f(ye);super(A,i,n)}ngAfterContentInit(){this._container._contentMarginChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})}_shouldBeHidden(){if(this._platform.isBrowser)return!1;let{start:A,end:i}=this._container;return A!=null&&A.mode!=="over"&&A.opened||i!=null&&i.mode!=="over"&&i.opened}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-drawer-content"]],hostAttrs:[1,"mat-drawer-content"],hostVars:6,hostBindings:function(i,n){i&2&&(mo("margin-left",n._container._contentMargins.left,"px")("margin-right",n._container._contentMargins.right,"px"),he("mat-drawer-content-hidden",n._shouldBeHidden()))},features:[ut([{provide:k0,useExisting:t}]),lt],ngContentSelectors:Kq,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},encapsulation:2,changeDetection:0})}return t})(),dR=(()=>{class t{_elementRef=f(se);_focusTrapFactory=f(g6);_focusMonitor=f(Jr);_platform=f(ni);_ngZone=f(ye);_renderer=f(qi);_interactivityChecker=f(sh);_doc=f(at,{optional:!0});_container=f(Uq,{optional:!0});_focusTrap=null;_elementFocusedBeforeDrawerWasOpened=null;_eventCleanups;_isAttached;_anchor;get position(){return this._position}set position(A){A=A==="end"?"end":"start",A!==this._position&&(this._isAttached&&this._updatePositionInParent(A),this._position=A,this.onPositionChanged.emit())}_position="start";get mode(){return this._mode}set mode(A){this._mode=A,this._updateFocusTrapState(),this._modeChanged.next()}_mode="over";get disableClose(){return this._disableClose}set disableClose(A){this._disableClose=Ar(A)}_disableClose=!1;get autoFocus(){let A=this._autoFocus;return A??(this.mode==="side"?"dialog":"first-tabbable")}set autoFocus(A){(A==="true"||A==="false"||A==null)&&(A=Ar(A)),this._autoFocus=A}_autoFocus;get opened(){return this._opened}set opened(A){this.toggle(Ar(A))}_opened=!1;_openedVia;_animationStarted=new qA;_animationEnd=new qA;openedChange=new YA(!0);_openedStream=this.openedChange.pipe(Nt(A=>A),je(()=>{}));openedStart=this._animationStarted.pipe(Nt(()=>this.opened),wd(void 0));_closedStream=this.openedChange.pipe(Nt(A=>!A),je(()=>{}));closedStart=this._animationStarted.pipe(Nt(()=>!this.opened),wd(void 0));_destroyed=new qA;onPositionChanged=new YA;_content;_modeChanged=new qA;_injector=f(Zt);_changeDetectorRef=f(Et);constructor(){this.openedChange.pipe(kt(this._destroyed)).subscribe(A=>{A?(this._doc&&(this._elementFocusedBeforeDrawerWasOpened=this._doc.activeElement),this._takeFocus()):this._isFocusWithinDrawer()&&this._restoreFocus(this._openedVia||"program")}),this._ngZone.runOutsideAngular(()=>{let A=this._elementRef.nativeElement;lu(A,"keydown").pipe(Nt(i=>i.keyCode===27&&!this.disableClose&&!sr(i)),kt(this._destroyed)).subscribe(i=>this._ngZone.run(()=>{this.close(),i.stopPropagation(),i.preventDefault()})),this._eventCleanups=[this._renderer.listen(A,"transitionrun",this._handleTransitionEvent),this._renderer.listen(A,"transitionend",this._handleTransitionEvent),this._renderer.listen(A,"transitioncancel",this._handleTransitionEvent)]}),this._animationEnd.subscribe(()=>{this.openedChange.emit(this._opened)})}_forceFocus(A,i){this._interactivityChecker.isFocusable(A)||(A.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let n=()=>{o(),r(),A.removeAttribute("tabindex")},o=this._renderer.listen(A,"blur",n),r=this._renderer.listen(A,"mousedown",n)})),A.focus(i)}_focusByCssSelector(A,i){let n=this._elementRef.nativeElement.querySelector(A);n&&this._forceFocus(n,i)}_takeFocus(){if(!this._focusTrap)return;let A=this._elementRef.nativeElement;switch(this.autoFocus){case!1:case"dialog":return;case!0:case"first-tabbable":Ir(()=>{!this._focusTrap.focusInitialElement()&&typeof A.focus=="function"&&A.focus()},{injector:this._injector});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this.autoFocus);break}}_restoreFocus(A){this.autoFocus!=="dialog"&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,A):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null)}_isFocusWithinDrawer(){let A=this._doc.activeElement;return!!A&&this._elementRef.nativeElement.contains(A)}ngAfterViewInit(){this._isAttached=!0,this._position==="end"&&this._updatePositionInParent("end"),this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState())}ngOnDestroy(){this._eventCleanups.forEach(A=>A()),this._focusTrap?.destroy(),this._anchor?.remove(),this._anchor=null,this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}open(A){return this.toggle(!0,A)}close(){return this.toggle(!1)}_closeViaBackdropClick(){return this._setOpen(!1,!0,"mouse")}toggle(A=!this.opened,i){A&&i&&(this._openedVia=i);let n=this._setOpen(A,!A&&this._isFocusWithinDrawer(),this._openedVia||"program");return A||(this._openedVia=null),n}_setOpen(A,i,n){return A===this._opened?Promise.resolve(A?"open":"close"):(this._opened=A,this._container?._transitionsEnabled?this._setIsAnimating(!0):setTimeout(()=>{this._animationStarted.next(),this._animationEnd.next()}),this._elementRef.nativeElement.classList.toggle("mat-drawer-opened",A),!A&&i&&this._restoreFocus(n),this._changeDetectorRef.markForCheck(),this._updateFocusTrapState(),new Promise(o=>{this.openedChange.pipe(Xn(1)).subscribe(r=>o(r?"open":"close"))}))}_setIsAnimating(A){this._elementRef.nativeElement.classList.toggle("mat-drawer-animating",A)}_getWidth(){return this._elementRef.nativeElement.offsetWidth||0}_updateFocusTrapState(){this._focusTrap&&(this._focusTrap.enabled=!!this._container?.hasBackdrop&&this.opened)}_updatePositionInParent(A){if(!this._platform.isBrowser)return;let i=this._elementRef.nativeElement,n=i.parentNode;A==="end"?(this._anchor||(this._anchor=this._doc.createComment("mat-drawer-anchor"),n.insertBefore(this._anchor,i)),n.appendChild(i)):this._anchor&&this._anchor.parentNode.insertBefore(i,this._anchor)}_handleTransitionEvent=A=>{let i=this._elementRef.nativeElement;A.target===i&&this._ngZone.run(()=>{A.type==="transitionrun"?this._animationStarted.next(A):(A.type==="transitionend"&&this._setIsAnimating(!1),this._animationEnd.next(A))})};static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-drawer"]],viewQuery:function(i,n){if(i&1&&st(HfA,5),i&2){let o;de(o=Be())&&(n._content=o.first)}},hostAttrs:["tabIndex","-1",1,"mat-drawer"],hostVars:11,hostBindings:function(i,n){i&2&&(Ke("align",null),mo("visibility",!n._container&&!n.opened?"hidden":null),he("mat-drawer-end",n.position==="end")("mat-drawer-over",n.mode==="over")("mat-drawer-push",n.mode==="push")("mat-drawer-side",n.mode==="side"))},inputs:{position:"position",mode:"mode",disableClose:"disableClose",autoFocus:"autoFocus",opened:"opened"},outputs:{openedChange:"openedChange",_openedStream:"opened",openedStart:"openedStart",_closedStream:"closed",closedStart:"closedStart",onPositionChanged:"positionChanged"},exportAs:["matDrawer"],ngContentSelectors:Kq,decls:3,vars:0,consts:[["content",""],["cdkScrollable","",1,"mat-drawer-inner-container"]],template:function(i,n){i&1&&($t(),S(0,"div",1,0),Ue(2),N())},dependencies:[k0],encapsulation:2,changeDetection:0})}return t})(),BR=(()=>{class t{_dir=f(po,{optional:!0});_element=f(se);_ngZone=f(ye);_changeDetectorRef=f(Et);_animationMode=f(_i,{optional:!0});_transitionsEnabled=!1;_allDrawers;_drawers=new qa;_content;_userContent;get start(){return this._start}get end(){return this._end}get autosize(){return this._autosize}set autosize(A){this._autosize=Ar(A)}_autosize=f(qfA);get hasBackdrop(){return this._drawerHasBackdrop(this._start)||this._drawerHasBackdrop(this._end)}set hasBackdrop(A){this._backdropOverride=A==null?null:Ar(A)}_backdropOverride;backdropClick=new YA;_start;_end;_left;_right;_destroyed=new qA;_doCheckSubject=new qA;_contentMargins={left:null,right:null};_contentMarginChanges=new qA;get scrollable(){return this._userContent||this._content}_injector=f(Zt);constructor(){let A=f(ni),i=f(Nc);this._dir?.change.pipe(kt(this._destroyed)).subscribe(()=>{this._validateDrawers(),this.updateContentMargins()}),i.change().pipe(kt(this._destroyed)).subscribe(()=>this.updateContentMargins()),this._animationMode!=="NoopAnimations"&&A.isBrowser&&this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{this._element.nativeElement.classList.add("mat-drawer-transition"),this._transitionsEnabled=!0},200)})}ngAfterContentInit(){this._allDrawers.changes.pipe(On(this._allDrawers),kt(this._destroyed)).subscribe(A=>{this._drawers.reset(A.filter(i=>!i._container||i._container===this)),this._drawers.notifyOnChanges()}),this._drawers.changes.pipe(On(null)).subscribe(()=>{this._validateDrawers(),this._drawers.forEach(A=>{this._watchDrawerToggle(A),this._watchDrawerPosition(A),this._watchDrawerMode(A)}),(!this._drawers.length||this._isDrawerOpen(this._start)||this._isDrawerOpen(this._end))&&this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(()=>{this._doCheckSubject.pipe(ag(10),kt(this._destroyed)).subscribe(()=>this.updateContentMargins())})}ngOnDestroy(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}open(){this._drawers.forEach(A=>A.open())}close(){this._drawers.forEach(A=>A.close())}updateContentMargins(){let A=0,i=0;if(this._left&&this._left.opened){if(this._left.mode=="side")A+=this._left._getWidth();else if(this._left.mode=="push"){let n=this._left._getWidth();A+=n,i-=n}}if(this._right&&this._right.opened){if(this._right.mode=="side")i+=this._right._getWidth();else if(this._right.mode=="push"){let n=this._right._getWidth();i+=n,A-=n}}A=A||null,i=i||null,(A!==this._contentMargins.left||i!==this._contentMargins.right)&&(this._contentMargins={left:A,right:i},this._ngZone.run(()=>this._contentMarginChanges.next(this._contentMargins)))}ngDoCheck(){this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(()=>this._doCheckSubject.next())}_watchDrawerToggle(A){A._animationStarted.pipe(kt(this._drawers.changes)).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),A.mode!=="side"&&A.openedChange.pipe(kt(this._drawers.changes)).subscribe(()=>this._setContainerClass(A.opened))}_watchDrawerPosition(A){A.onPositionChanged.pipe(kt(this._drawers.changes)).subscribe(()=>{Ir({read:()=>this._validateDrawers()},{injector:this._injector})})}_watchDrawerMode(A){A._modeChanged.pipe(kt(Hn(this._drawers.changes,this._destroyed))).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()})}_setContainerClass(A){let i=this._element.nativeElement.classList,n="mat-drawer-container-has-open";A?i.add(n):i.remove(n)}_validateDrawers(){this._start=this._end=null,this._drawers.forEach(A=>{A.position=="end"?(this._end!=null,this._end=A):(this._start!=null,this._start=A)}),this._right=this._left=null,this._dir&&this._dir.value==="rtl"?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}_isPushed(){return this._isDrawerOpen(this._start)&&this._start.mode!="over"||this._isDrawerOpen(this._end)&&this._end.mode!="over"}_onBackdropClicked(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}_closeModalDrawersViaBackdrop(){[this._start,this._end].filter(A=>A&&!A.disableClose&&this._drawerHasBackdrop(A)).forEach(A=>A._closeViaBackdropClick())}_isShowingBackdrop(){return this._isDrawerOpen(this._start)&&this._drawerHasBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._drawerHasBackdrop(this._end)}_isDrawerOpen(A){return A!=null&&A.opened}_drawerHasBackdrop(A){return this._backdropOverride==null?!!A&&A.mode!=="side":this._backdropOverride}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-drawer-container"]],contentQueries:function(i,n,o){if(i&1&&(gi(o,CR,5),gi(o,dR,5)),i&2){let r;de(r=Be())&&(n._content=r.first),de(r=Be())&&(n._allDrawers=r)}},viewQuery:function(i,n){if(i&1&&st(CR,5),i&2){let o;de(o=Be())&&(n._userContent=o.first)}},hostAttrs:[1,"mat-drawer-container"],hostVars:2,hostBindings:function(i,n){i&2&&he("mat-drawer-container-explicit-backdrop",n._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[ut([{provide:Uq,useExisting:t}])],ngContentSelectors:zfA,decls:4,vars:2,consts:[[1,"mat-drawer-backdrop",3,"mat-drawer-shown"],[1,"mat-drawer-backdrop",3,"click"]],template:function(i,n){i&1&&($t(OfA),NA(0,PfA,1,2,"div",0),Ue(1),Ue(2,1),NA(3,jfA,2,0,"mat-drawer-content")),i&2&&(_A(n.hasBackdrop?0:-1),_(3),_A(n._content?-1:3))},dependencies:[CR],styles:[".mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color, var(--mat-sys-on-background));background-color:var(--mat-sidenav-content-background-color, var(--mat-sys-background));box-sizing:border-box;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color, color-mix(in srgb, var(--mat-sys-neutral-variant20) 40%, transparent))}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}@media(forced-colors: active){.mat-drawer-backdrop{opacity:.5}}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-content.mat-drawer-content-hidden{opacity:0}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;color:var(--mat-sidenav-container-text-color, var(--mat-sys-on-surface-variant));box-shadow:var(--mat-sidenav-container-elevation-shadow, none);background-color:var(--mat-sidenav-container-background-color, var(--mat-sys-surface));border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));width:var(--mat-sidenav-container-width, 360px);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}@media(forced-colors: active){.mat-drawer,[dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}}@media(forced-colors: active){[dir=rtl] .mat-drawer,.mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer-transition .mat-drawer{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating){visibility:hidden;box-shadow:none}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating) .mat-drawer-inner-container{display:none}.mat-drawer.mat-drawer-opened.mat-drawer-opened{transform:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto}.mat-sidenav-fixed{position:fixed}"],encapsulation:2,changeDetection:0})}return t})();var WfA=["switch"],XfA=["*"];function $fA(t,e){t&1&&(S(0,"span",10),ur(),S(1,"svg",12),TA(2,"path",13),N(),S(3,"svg",14),TA(4,"path",15),N()())}var AmA=new eA("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1,disabledInteractive:!1})}),emA={provide:bc,useExisting:Ur(()=>ER),multi:!0},G8=class{source;checked;constructor(e,A){this.source=e,this.checked=A}},ER=(()=>{class t{_elementRef=f(se);_focusMonitor=f(Jr);_changeDetectorRef=f(Et);defaults=f(AmA);_onChange=A=>{};_onTouched=()=>{};_validatorOnChange=()=>{};_uniqueId;_checked=!1;_createChangeEvent(A){return new G8(this,A)}_labelId;get buttonId(){return`${this.id||this._uniqueId}-button`}_switchElement;focus(){this._switchElement.nativeElement.focus()}_noopAnimations;_focused;name=null;id;labelPosition="after";ariaLabel=null;ariaLabelledby=null;ariaDescribedby;required;color;disabled=!1;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(A){this._checked=A,this._changeDetectorRef.markForCheck()}hideIcon;disabledInteractive;change=new YA;toggleChange=new YA;get inputId(){return`${this.id||this._uniqueId}-input`}constructor(){f(Pn).load(Yr);let A=f(new Wr("tabindex"),{optional:!0}),i=this.defaults,n=f(_i,{optional:!0});this.tabIndex=A==null?0:parseInt(A)||0,this.color=i.color||"accent",this._noopAnimations=n==="NoopAnimations",this.id=this._uniqueId=f(an).getId("mat-mdc-slide-toggle-"),this.hideIcon=i.hideIcon??!1,this.disabledInteractive=i.disabledInteractive??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(A=>{A==="keyboard"||A==="program"?(this._focused=!0,this._changeDetectorRef.markForCheck()):A||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(A){A.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(A){this.checked=!!A}registerOnChange(A){this._onChange=A}registerOnTouched(A){this._onTouched=A}validate(A){return this.required&&A.value!==!0?{required:!0}:null}registerOnValidatorChange(A){this._validatorOnChange=A}setDisabledState(A){this.disabled=A,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.disabled||(this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new G8(this,this.checked))))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-slide-toggle"]],viewQuery:function(i,n){if(i&1&&st(WfA,5),i&2){let o;de(o=Be())&&(n._switchElement=o.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,n){i&2&&(Qa("id",n.id),Ke("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-slide-toggle-focused",n._focused)("mat-mdc-slide-toggle-checked",n.checked)("_mat-animation-noopable",n._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],required:[2,"required","required",ge],color:"color",disabled:[2,"disabled","disabled",ge],disableRipple:[2,"disableRipple","disableRipple",ge],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:en(A)],checked:[2,"checked","checked",ge],hideIcon:[2,"hideIcon","hideIcon",ge],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],features:[ut([emA,{provide:M0,useExisting:t,multi:!0}]),Xt],ngContentSelectors:XfA,decls:13,vars:27,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"div",1)(1,"button",2,0),mA("click",function(){return QA(o),uA(n._handleClick())}),TA(3,"span",3),S(4,"span",4)(5,"span",5)(6,"span",6),TA(7,"span",7),N(),S(8,"span",8),TA(9,"span",9),N(),NA(10,$fA,5,0,"span",10),N()()(),S(11,"label",11),mA("click",function(s){return QA(o),uA(s.stopPropagation())}),Ue(12),N()()}if(i&2){let o=Cr(2);yA("labelPosition",n.labelPosition),_(),he("mdc-switch--selected",n.checked)("mdc-switch--unselected",!n.checked)("mdc-switch--checked",n.checked)("mdc-switch--disabled",n.disabled)("mat-mdc-slide-toggle-disabled-interactive",n.disabledInteractive),yA("tabIndex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("disabled",n.disabled&&!n.disabledInteractive),Ke("id",n.buttonId)("name",n.name)("aria-label",n.ariaLabel)("aria-labelledby",n._getAriaLabelledBy())("aria-describedby",n.ariaDescribedby)("aria-required",n.required||null)("aria-checked",n.checked)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),_(8),yA("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)("matRippleCentered",!0),_(),_A(n.hideIcon?-1:10),_(),yA("for",n.buttonId),Ke("id",n._labelId)}},dependencies:[Xs,B6],styles:['.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative;width:var(--mdc-switch-track-width, 52px)}.mdc-switch.mdc-switch--disabled{cursor:default;pointer-events:none}.mdc-switch.mat-mdc-slide-toggle-disabled-interactive{pointer-events:auto}.mdc-switch__track{overflow:hidden;position:relative;width:100%;height:var(--mdc-switch-track-height, 32px);border-radius:var(--mdc-switch-track-shape, var(--mat-sys-corner-full))}.mdc-switch--disabled.mdc-switch .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity, 0.12)}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%;border-width:var(--mat-switch-track-outline-width, 2px);border-color:var(--mat-switch-track-outline-color, var(--mat-sys-outline))}.mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track::after{border-width:var(--mat-switch-selected-track-outline-width, 2px);border-color:var(--mat-switch-selected-track-outline-color, transparent)}.mdc-switch--disabled .mdc-switch__track::before,.mdc-switch--disabled .mdc-switch__track::after{border-width:var(--mat-switch-disabled-unselected-track-outline-width, 2px);border-color:var(--mat-switch-disabled-unselected-track-outline-color, var(--mat-sys-on-surface))}@media(forced-colors: active){.mdc-switch__track{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0);background:var(--mdc-switch-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch--selected .mdc-switch__track::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color, var(--mat-sys-surface-variant))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::before,.mdc-switch.mdc-switch--disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch__track::after{transform:translateX(-100%);background:var(--mdc-switch-selected-track-color, var(--mat-sys-primary))}[dir=rtl] .mdc-switch__track::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::after{transform:translateX(0)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color, var(--mat-sys-primary))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::after,.mdc-switch.mdc-switch--disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color, var(--mat-sys-on-surface))}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0);width:calc(100% - var(--mdc-switch-handle-width))}[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto;transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1);width:var(--mdc-switch-handle-width);height:var(--mdc-switch-handle-height);border-radius:var(--mdc-switch-handle-shape, var(--mat-sys-corner-full))}[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size, 16px);height:var(--mat-switch-unselected-handle-size, 16px);margin:var(--mat-switch-unselected-handle-horizontal-margin, 0 8px)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin, 0 4px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size, 24px);height:var(--mat-switch-selected-handle-size, 24px);margin:var(--mat-switch-selected-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size, 24px);height:var(--mat-switch-with-icon-handle-size, 24px)}.mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size, 28px);height:var(--mat-switch-pressed-handle-size, 28px)}.mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin, 0 22px)}.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin, 0 2px)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity, 1)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity, 0.38)}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media(forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color, var(--mat-sys-on-primary))}.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color, var(--mat-sys-primary-container))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:hover:not(:focus):not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:focus:not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:active .mdc-switch__handle::after,.mdc-switch--selected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color, var(--mat-sys-surface))}.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color, var(--mat-sys-outline))}.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color, var(--mat-sys-on-surface))}.mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__shadow,.mdc-switch.mdc-switch--disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1;width:var(--mdc-switch-state-layer-size, 40px);height:var(--mdc-switch-state-layer-size, 40px)}.mdc-switch__ripple::after{content:"";opacity:0}.mdc-switch--disabled .mdc-switch__ripple::after{display:none}.mat-mdc-slide-toggle-disabled-interactive .mdc-switch__ripple::after{display:block}.mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:75ms opacity cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:focus .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:active .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-pressed-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-selected-pressed-state-layer-color, var(--mat-sys-primary));opacity:var(--mdc-switch-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch__icons{position:relative;height:100%;width:100%;z-index:1}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity, 0.38)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity, 0.38)}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size, 16px);height:var(--mdc-switch-unselected-icon-size, 16px);fill:var(--mdc-switch-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size, 16px);height:var(--mdc-switch-selected-icon-size, 16px);fill:var(--mdc-switch-selected-icon-color, var(--mat-sys-on-primary-container))}.mdc-switch--selected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color, var(--mat-sys-on-surface))}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle{-webkit-user-select:none;user-select:none;display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-internal-form-field{color:var(--mat-switch-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-switch-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-switch-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-switch-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-switch-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-switch-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}'],encapsulation:2,changeDetection:0})}return t})();function tmA(t,e){if(t&1){let A=me();S(0,"div",1)(1,"button",2),mA("click",function(){QA(A);let n=Y();return uA(n.action())}),AA(2),N()()}if(t&2){let A=Y();_(2),It(" ",A.data.action," ")}}var imA=["label"];function nmA(t,e){}var omA=Math.pow(2,31)-1,Zh=class{_overlayRef;instance;containerInstance;_afterDismissed=new qA;_afterOpened=new qA;_onAction=new qA;_durationTimeoutId;_dismissedByAction=!1;constructor(e,A){this._overlayRef=A,this.containerInstance=e,e._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(e){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(e,omA))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}},Jq=new eA("MatSnackBarData"),TB=class{politeness="assertive";announcementMessage="";viewContainerRef;duration=0;panelClass;direction;data=null;horizontalPosition="center";verticalPosition="bottom"},rmA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return t})(),smA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return t})(),amA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return t})(),cmA=(()=>{class t{snackBarRef=f(Zh);data=f(Jq);constructor(){}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(i,n){i&1&&(S(0,"div",0),AA(1),N(),NA(2,tmA,3,1,"div",1)),i&2&&(_(),It(" ",n.data.message,` +`),_(),_A(n.hasAction?2:-1))},dependencies:[dr,rmA,smA,amA],styles:[".mat-mdc-simple-snack-bar{display:flex}"],encapsulation:2,changeDetection:0})}return t})(),gmA={snackBarState:nc("state",[$s("void, hidden",Do({transform:"scale(0.8)",opacity:0})),$s("visible",Do({transform:"scale(1)",opacity:1})),$r("* => visible",Is("150ms cubic-bezier(0, 0, 0.2, 1)")),$r("* => void, * => hidden",Is("75ms cubic-bezier(0.4, 0.0, 1, 1)",Do({opacity:0})))])},lmA=(()=>{class t extends V2{_ngZone=f(ye);_elementRef=f(se);_changeDetectorRef=f(Et);_platform=f(ni);snackBarConfig=f(TB);_document=f(at);_trackedModals=new Set;_announceDelay=150;_announceTimeoutId;_destroyed=!1;_portalOutlet;_onAnnounce=new qA;_onExit=new qA;_onEnter=new qA;_animationState="void";_live;_label;_role;_liveElementId=f(an).getId("mat-snack-bar-container-live-");constructor(){super();let A=this.snackBarConfig;A.politeness==="assertive"&&!A.announcementMessage?this._live="assertive":A.politeness==="off"?this._live="off":this._live="polite",this._platform.FIREFOX&&(this._live==="polite"&&(this._role="status"),this._live==="assertive"&&(this._role="alert"))}attachComponentPortal(A){this._assertNotAttached();let i=this._portalOutlet.attachComponentPortal(A);return this._afterPortalAttached(),i}attachTemplatePortal(A){this._assertNotAttached();let i=this._portalOutlet.attachTemplatePortal(A);return this._afterPortalAttached(),i}attachDomPortal=A=>{this._assertNotAttached();let i=this._portalOutlet.attachDomPortal(A);return this._afterPortalAttached(),i};onAnimationEnd(A){let{fromState:i,toState:n}=A;if((n==="void"&&i!=="void"||n==="hidden")&&this._completeExit(),n==="visible"){let o=this._onEnter;this._ngZone.run(()=>{o.next(),o.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.markForCheck(),this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._ngZone.run(()=>{this._animationState="hidden",this._changeDetectorRef.markForCheck(),this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId)}),this._onExit}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){queueMicrotask(()=>{this._onExit.next(),this._onExit.complete()})}_afterPortalAttached(){let A=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(r=>A.classList.add(r)):A.classList.add(i)),this._exposeToModals();let n=this._label.nativeElement,o="mdc-snackbar__label";n.classList.toggle(o,!n.querySelector(`.${o}`))}_exposeToModals(){let A=this._liveElementId,i=this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');for(let n=0;n{let i=A.getAttribute("aria-owns");if(i){let n=i.replace(this._liveElementId,"").trim();n.length>0?A.setAttribute("aria-owns",n):A.removeAttribute("aria-owns")}}),this._trackedModals.clear()}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{let A=this._elementRef.nativeElement.querySelector("[aria-hidden]"),i=this._elementRef.nativeElement.querySelector("[aria-live]");if(A&&i){let n=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&A.contains(document.activeElement)&&(n=document.activeElement),A.removeAttribute("aria-hidden"),i.appendChild(A),n?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-snack-bar-container"]],viewQuery:function(i,n){if(i&1&&(st(wa,7),st(imA,7)),i&2){let o;de(o=Be())&&(n._portalOutlet=o.first),de(o=Be())&&(n._label=o.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container"],hostVars:1,hostBindings:function(i,n){i&1&&kb("@state.done",function(r){return n.onAnimationEnd(r)}),i&2&&bb("@state",n._animationState)},features:[lt],decls:6,vars:3,consts:[["label",""],[1,"mdc-snackbar__surface","mat-mdc-snackbar-surface"],[1,"mat-mdc-snack-bar-label"],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(i,n){i&1&&(S(0,"div",1)(1,"div",2,0)(3,"div",3),NA(4,nmA,0,0,"ng-template",4),N(),TA(5,"div"),N()()),i&2&&(_(5),Ke("aria-live",n._live)("role",n._role)("id",n._liveElementId))},dependencies:[wa],styles:[".mat-mdc-snack-bar-container{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);margin:8px}.mat-mdc-snack-bar-handset .mat-mdc-snack-bar-container{width:100vw}.mat-mdc-snackbar-surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;padding-left:0;padding-right:8px}[dir=rtl] .mat-mdc-snackbar-surface{padding-right:0;padding-left:8px}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{min-width:344px;max-width:672px}.mat-mdc-snack-bar-handset .mat-mdc-snackbar-surface{width:100%;min-width:0}@media(forced-colors: active){.mat-mdc-snackbar-surface{outline:solid 1px}}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{color:var(--mdc-snackbar-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-snackbar-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mdc-snackbar-container-color, var(--mat-sys-inverse-surface))}.mdc-snackbar__label{width:100%;flex-grow:1;box-sizing:border-box;margin:0;padding:14px 8px 14px 16px}[dir=rtl] .mdc-snackbar__label{padding-left:8px;padding-right:16px}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-family:var(--mdc-snackbar-supporting-text-font, var(--mat-sys-body-medium-font));font-size:var(--mdc-snackbar-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mdc-snackbar-supporting-text-weight, var(--mat-sys-body-medium-weight));line-height:var(--mdc-snackbar-supporting-text-line-height, var(--mat-sys-body-medium-line-height))}.mat-mdc-snack-bar-actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled).mat-unthemed{color:var(--mat-snack-bar-button-color, var(--mat-sys-inverse-primary))}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){--mat-text-button-state-layer-color:currentColor;--mat-text-button-ripple-color:currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{opacity:.1}"],encapsulation:2,data:{animation:[gmA.snackBarState]}})}return t})();function ImA(){return new TB}var CmA=new eA("mat-snack-bar-default-options",{providedIn:"root",factory:ImA}),Yq=(()=>{class t{_overlay=f(Br);_live=f(l6);_injector=f(Zt);_breakpointObserver=f(t6);_parentSnackBar=f(t,{optional:!0,skipSelf:!0});_defaultConfig=f(CmA);_snackBarRefAtThisLevel=null;simpleSnackBarComponent=cmA;snackBarContainerComponent=lmA;handsetCssClass="mat-mdc-snack-bar-handset";get _openedSnackBarRef(){let A=this._parentSnackBar;return A?A._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(A){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=A:this._snackBarRefAtThisLevel=A}constructor(){}openFromComponent(A,i){return this._attach(A,i)}openFromTemplate(A,i){return this._attach(A,i)}open(A,i="",n){let o=sA(sA({},this._defaultConfig),n);return o.data={message:A,action:i},o.announcementMessage===A&&(o.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,o)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(A,i){let n=i&&i.viewContainerRef&&i.viewContainerRef.injector,o=Zt.create({parent:n||this._injector,providers:[{provide:TB,useValue:i}]}),r=new yg(this.snackBarContainerComponent,i.viewContainerRef,o),s=A.attach(r);return s.instance.snackBarConfig=i,s.instance}_attach(A,i){let n=sA(sA(sA({},new TB),this._defaultConfig),i),o=this._createOverlay(n),r=this._attachSnackBarContainer(o,n),s=new Zh(r,o);if(A instanceof mn){let a=new Rs(A,null,{$implicit:n.data,snackBarRef:s});s.instance=r.attachTemplatePortal(a)}else{let a=this._createInjector(n,s),c=new yg(A,void 0,a),g=r.attachComponentPortal(c);s.instance=g.instance}return this._breakpointObserver.observe(Qz.HandsetPortrait).pipe(kt(o.detachments())).subscribe(a=>{o.overlayElement.classList.toggle(this.handsetCssClass,a.matches)}),n.announcementMessage&&r._onAnnounce.subscribe(()=>{this._live.announce(n.announcementMessage,n.politeness)}),this._animateSnackBar(s,n),this._openedSnackBarRef=s,this._openedSnackBarRef}_animateSnackBar(A,i){A.afterDismissed().subscribe(()=>{this._openedSnackBarRef==A&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{A.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):A.containerInstance.enter(),i.duration&&i.duration>0&&A.afterOpened().subscribe(()=>A._dismissAfter(i.duration))}_createOverlay(A){let i=new Ml;i.direction=A.direction;let n=this._overlay.position().global(),o=A.direction==="rtl",r=A.horizontalPosition==="left"||A.horizontalPosition==="start"&&!o||A.horizontalPosition==="end"&&o,s=!r&&A.horizontalPosition!=="center";return r?n.left("0"):s?n.right("0"):n.centerHorizontally(),A.verticalPosition==="top"?n.top("0"):n.bottom("0"),i.positionStrategy=n,this._overlay.create(i)}_createInjector(A,i){let n=A&&A.viewContainerRef&&A.viewContainerRef.injector;return Zt.create({parent:n||this._injector,providers:[{provide:Zh,useValue:i},{provide:Jq,useValue:A.data}]})}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var dmA=t=>["segment",t],BmA=(t,e)=>({"segment-main":!0,expandable:t,expanded:e});function EmA(t,e){t&1&&TA(0,"div",9)}function QmA(t,e){if(t&1&&(S(0,"span",10),AA(1),N()),t&2){let A=Y().$implicit;_(),tt(A.description)}}function umA(t,e){if(t&1&&(S(0,"section",11),TA(1,"ngx-json-viewer",12),N()),t&2){let A=Y().$implicit,i=Y();_(),yA("json",A.value)("expanded",i.expanded)("depth",i.depth)("_currentDepth",i._currentDepth+1)}}function hmA(t,e){if(t&1){let A=me();S(0,"section",2)(1,"section",3),mA("click",function(){let n=QA(A).$implicit,o=Y();return uA(o.toggle(n))}),NA(2,EmA,1,0,"div",4),S(3,"span",5),AA(4),N(),S(5,"span",6),AA(6,": "),N(),NA(7,QmA,2,1,"span",7),N(),NA(8,umA,2,4,"section",8),N()}if(t&2){let A=e.$implicit,i=Y();yA("ngClass",vc(6,dmA,"segment-type-"+A.type)),_(),yA("ngClass",Bg(8,BmA,i.isExpandable(A),A.expanded)),_(),yA("ngIf",i.isExpandable(A)),_(2),tt(A.key),_(3),yA("ngIf",!A.expanded||!i.isExpandable(A)),_(),yA("ngIf",A.expanded&&i.isExpandable(A))}}var X2=(()=>{class t{constructor(){this.expanded=!0,this.depth=-1,this._currentDepth=0,this.segments=[]}ngOnChanges(){this.segments=[],this.json=this.decycle(this.json),typeof this.json=="object"?Object.keys(this.json).forEach(A=>{this.segments.push(this.parseKeyValue(A,this.json[A]))}):this.segments.push(this.parseKeyValue(`(${typeof this.json})`,this.json))}isExpandable(A){return A.type==="object"||A.type==="array"}toggle(A){this.isExpandable(A)&&(A.expanded=!A.expanded)}parseKeyValue(A,i){let n={key:A,value:i,type:void 0,description:""+i,expanded:this.isExpanded()};switch(typeof n.value){case"number":{n.type="number";break}case"boolean":{n.type="boolean";break}case"function":{n.type="function";break}case"string":{n.type="string",n.description='"'+n.value+'"';break}case"undefined":{n.type="undefined",n.description="undefined";break}case"object":{n.value===null?(n.type="null",n.description="null"):Array.isArray(n.value)?(n.type="array",n.description="Array["+n.value.length+"] "+JSON.stringify(n.value)):n.value instanceof Date?n.type="date":(n.type="object",n.description="Object "+JSON.stringify(n.value));break}}return n}isExpanded(){return this.expanded&&!(this.depth>-1&&this._currentDepth>=this.depth)}decycle(A){let i=new WeakMap;return function n(o,r){let s,a;return typeof o=="object"&&o!==null&&!(o instanceof Boolean)&&!(o instanceof Date)&&!(o instanceof Number)&&!(o instanceof RegExp)&&!(o instanceof String)?(s=i.get(o),s!==void 0?{$ref:s}:(i.set(o,r),Array.isArray(o)?(a=[],o.forEach(function(c,g){a[g]=n(c,r+"["+g+"]")})):(a={},Object.keys(o).forEach(function(c){a[c]=n(o[c],r+"["+JSON.stringify(c)+"]")})),a)):o}(A,"$")}}return t.\u0275fac=function(A){return new(A||t)},t.\u0275cmp=jA({type:t,selectors:[["ngx-json-viewer"]],inputs:{json:"json",expanded:"expanded",depth:"depth",_currentDepth:"_currentDepth"},standalone:!1,features:[Xt],decls:2,vars:1,consts:[[1,"ngx-json-viewer"],[3,"ngClass",4,"ngFor","ngForOf"],[3,"ngClass"],[3,"click","ngClass"],["class","toggler",4,"ngIf"],[1,"segment-key"],[1,"segment-separator"],["class","segment-value",4,"ngIf"],["class","children",4,"ngIf"],[1,"toggler"],[1,"segment-value"],[1,"children"],[3,"json","expanded","depth","_currentDepth"]],template:function(A,i){A&1&&(S(0,"section",0),NA(1,hmA,9,11,"section",1),N()),A&2&&(_(),yA("ngForOf",i.segments))},dependencies:[Vs,Lp,Tu,t],styles:['@charset "UTF-8";.ngx-json-viewer[_ngcontent-%COMP%]{font-family:var(--ngx-json-font-family, monospace);font-size:var(--ngx-json-font-size, 1em);width:100%;height:100%;overflow:hidden;position:relative}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%]{padding:2px;margin:1px 1px 1px 12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%]{word-wrap:break-word}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]{position:absolute;margin-left:-14px;margin-top:3px;font-size:.8em;line-height:1.2em;vertical-align:middle;color:var(--ngx-json-toggler, #787878)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]:after{display:inline-block;content:"\\25ba";transition:transform .1s ease-in}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-key, #4E187C)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-separator[_ngcontent-%COMP%]{color:var(--ngx-json-separator, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-value, #000)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .children[_ngcontent-%COMP%]{margin-left:12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-string[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-string, #FF6B6B)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-number[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-number, #009688)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-boolean[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-boolean, #B938A4)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-date[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-date, #05668D)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-array, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-object, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-function[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-function, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-null, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-undefined, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-null-bg, red)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%]{white-space:nowrap}.ngx-json-viewer[_ngcontent-%COMP%] .expanded[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]:after{transform:rotate(90deg)}.ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]{cursor:pointer}']}),t})(),Sl=(()=>{class t{}return t.\u0275fac=function(A){return new(A||t)},t.\u0275mod=Ze({type:t}),t.\u0275inj=Ve({imports:[ug]}),t})();var ds=class t{static getBaseUrlWithoutPath(){let e=window.location.href;return new URL(e).origin+"/dev-ui/"}static getApiServerBaseUrl(){return window.runtimeConfig?.backendUrl||""}static getWSServerUrl(){let e=t.getApiServerBaseUrl();return!e||e==""?window.location.host:e.startsWith("http://")?e.slice(7):e.startsWith("https://")?e.slice(8):e}};var HB=new eA("AgentService");var U8=new eA("ArtifactService");var OB=new eA("DownloadService");var Rl=new eA("EvalService");var zB=new eA("EventService");var Tq="import_session",Hq="edit_function_args";var Oq="a2a_card",Gc=new eA("FeatureFlagService");var PB=new eA("GraphService");var J8=new eA("LocalFileService");var $2=new eA("SafeValuesService"),Y8=class{openBase64InNewTab(e,A){try{if(!e)return;let i=e;if(e.startsWith("data:")&&e.includes(";base64,")&&(i=i.substring(i.indexOf(";base64,")+8)),!A||!i)return;let n=atob(i),o=new Array(n.length);for(let c=0;cthis.onResizeHandleMouseDown(e)),document.documentElement.style.setProperty("--bottom-panel-height","310px"),this.renderer.setStyle(this.el.nativeElement,"height","var(--bottom-panel-height)")}onResizeHandleMouseDown(e){this.resizingEvent={isResizing:!0,startingCursorY:e.clientY,startingHeight:this.bottomPanelHeight},e.preventDefault()}onMouseMove(e){if(!this.resizingEvent.isResizing)return;let A=this.resizingEvent.startingCursorY-e.clientY,i=this.resizingEvent.startingHeight+A;this.bottomPanelHeight=i,this.renderer.addClass(document.body,"resizing")}onMouseUp(){this.resizingEvent.isResizing=!1,this.renderer.removeClass(document.body,"resizing")}onResize(){this.bottomMaxHeight=window.innerHeight/2,this.bottomPanelHeight=this.bottomPanelHeight}set bottomPanelHeight(e){let A=Math.min(Math.max(e,this.bottomMinHeight),this.bottomMaxHeight);document.body.style.setProperty("--bottom-panel-height",`${A}px`)}get bottomPanelHeight(){let e=getComputedStyle(document.body).getPropertyValue("--bottom-panel-height"),A=parseInt(e,10);return isNaN(A)?500:A}static \u0275fac=function(A){return new(A||t)(Ge(se),Ge(qi))};static \u0275dir=WA({type:t,selectors:[["","appResizableBottomPanel",""]],hostBindings:function(A,i){A&1&&mA("mousemove",function(o){return i.onMouseMove(o)},!1,Wd)("mouseup",function(){return i.onMouseUp()},!1,Wd)("resize",function(){return i.onResize()},!1,dp)}})};var O8=class t{constructor(e,A){this.el=e;this.renderer=A}sideDrawerMinWidth=310;sideDrawerMaxWidth=window.innerWidth/2;resizeHandle=null;resizingEvent={isResizing:!1,startingCursorX:0,startingWidth:0};ngAfterViewInit(){this.sideDrawerMaxWidth=window.innerWidth/2,this.resizeHandle=document.getElementsByClassName("resize-handler")[0],this.resizeHandle&&this.renderer.listen(this.resizeHandle,"mousedown",e=>this.onResizeHandleMouseDown(e)),document.documentElement.style.setProperty("--side-drawer-width","570px"),this.renderer.setStyle(this.el.nativeElement,"width","var(--side-drawer-width)")}onResizeHandleMouseDown(e){this.resizingEvent={isResizing:!0,startingCursorX:e.clientX,startingWidth:this.sideDrawerWidth},e.preventDefault()}onMouseMove(e){if(!this.resizingEvent.isResizing)return;let A=e.clientX-this.resizingEvent.startingCursorX,i=this.resizingEvent.startingWidth+A;this.sideDrawerWidth=i,this.renderer.addClass(document.body,"resizing")}onMouseUp(){this.resizingEvent.isResizing=!1,this.renderer.removeClass(document.body,"resizing")}onResize(){this.sideDrawerMaxWidth=window.innerWidth/2,this.sideDrawerWidth=this.sideDrawerWidth}set sideDrawerWidth(e){let A=Math.min(Math.max(e,this.sideDrawerMinWidth),this.sideDrawerMaxWidth);document.documentElement.style.setProperty("--side-drawer-width",`${A}px`)}get sideDrawerWidth(){let e=getComputedStyle(document.documentElement).getPropertyValue("--side-drawer-width"),A=parseFloat(e);return isNaN(A)?500:A}static \u0275fac=function(A){return new(A||t)(Ge(se),Ge(qi))};static \u0275dir=WA({type:t,selectors:[["","appResizableDrawer",""]],hostBindings:function(A,i){A&1&&mA("mousemove",function(o){return i.onMouseMove(o)},!1,Wd)("mouseup",function(){return i.onMouseUp()},!1,Wd)("resize",function(){return i.onResize()},!1,dp)}})};var fmA=["audioPlayer"],qB=class t{base64data=bs("");audioPlayerRef=qs("audioPlayer");audioSrc="";constructor(){}ngOnChanges(e){e.base64data&&this.base64data()&&this.setAudioSource(this.base64data())}setAudioSource(e){e.startsWith("data:")?this.audioSrc=e:this.audioSrc=`data:audio/mpeg;base64,${e}`,this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&this.audioPlayerRef().nativeElement.load()}play(){this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&this.audioPlayerRef().nativeElement.play()}pause(){this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&this.audioPlayerRef().nativeElement.pause()}stop(){this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&(this.audioPlayerRef().nativeElement.pause(),this.audioPlayerRef().nativeElement.currentTime=0)}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-audio-player"]],viewQuery:function(A,i){A&1&&ls(i.audioPlayerRef,fmA,5),A&2&&yc()},inputs:{base64data:[1,"base64data"]},features:[Xt],decls:3,vars:1,consts:[["audioPlayer",""],["controls","",3,"src"]],template:function(A,i){A&1&&(S(0,"div"),TA(1,"audio",1,0),N()),A&2&&(_(),yA("src",i.audioSrc,js))},styles:[".audio-player-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;padding:15px;background-color:var(--audio-player-container-background-color);border-radius:8px;box-shadow:0 2px 5px var(--audio-player-container-box-shadow-color);margin:20px auto;max-width:350px}audio[_ngcontent-%COMP%]{outline:none;border-radius:5px;width:350px}.custom-controls[_ngcontent-%COMP%]{margin-top:10px;display:flex;gap:10px}.custom-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:8px 15px;border:none;border-radius:5px;background-color:var(--audio-player-custom-controls-button-background-color);color:var(--audio-player-custom-controls-button-color);cursor:pointer;font-size:14px;transition:background-color .2s ease}.custom-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background-color:var(--audio-player-custom-controls-button-hover-background-color)}"]})};function mmA(t,e){if(t&1&&TA(0,"img",5),t&2){let A=Y(2);yA("src",A.displayContent,js)}}function pmA(t,e){t&1&&(S(0,"div",6),AA(1," No image data provided. "),N())}function DmA(t,e){if(t&1&&(S(0,"div",3),NA(1,mmA,1,1,"img",5)(2,pmA,2,0,"div",6),N()),t&2){let A=Y();_(),_A(A.displayContent?1:-1),_(),_A(A.displayContent?-1:2)}}function wmA(t,e){if(t&1&&TA(0,"div",4),t&2){let A=Y();yA("innerHTML",A.displayContent,b2)}}var t1=class t{constructor(e,A,i){this.dialogRef=e;this.data=A;this.sanitizer=i}displayContent=null;isSvgContent=!1;ngOnInit(){this.processImageData()}processImageData(){let e=this.data.imageData;if(!e){this.displayContent=null,this.isSvgContent=!1;return}if(e.trim().includes("0?1:-1),_(3),It(" ",o.getArtifactName(i)," "),_(5),Za("ngModel",o.selectedArtifacts[n]),_(),Bn(o.getSortedArtifactsFromId(i)),_(7),_A((A=o.selectedArtifacts[n].mediaType)===o.MediaType.IMAGE?17:A===o.MediaType.AUDIO?18:-1)}}var SmA="default_artifact_name",gC=(n=>(n.IMAGE="image",n.AUDIO="audio",n.TEXT="text",n.UNSPECIFIED="unspecified",n))(gC||{});function P8(t){let e=t.toLowerCase();for(let A of Object.values(gC))if(A!=="unspecified"&&e.startsWith(A+"/"))return A;return"unspecified"}function RmA(t){return t?t.startsWith("image/"):!1}function LmA(t){return t?t.startsWith("audio/"):!1}var z8=class t{artifacts=bs([]);selectedArtifacts=[];isArtifactAudio=LmA;isArtifactImage=RmA;MediaType=gC;downloadService=f(OB);dialog=f(Fc);safeValuesService=f($2);ngOnChanges(e){if(e.artifacts){this.selectedArtifacts=[];for(let A of this.getDistinctArtifactIds())this.selectedArtifacts.push(this.getSortedArtifactsFromId(A)[0])}}downloadArtifact(e){this.downloadService.downloadBase64Data(e.data,e.mimeType,e.id)}getArtifactName(e){return e??SmA}getDistinctArtifactIds(){return[...new Set(this.artifacts().map(e=>e.id))]}getSortedArtifactsFromId(e){return this.artifacts().filter(A=>A.id===e).sort((A,i)=>i.versionId-A.versionId)}onArtifactVersionChange(e,A){this.selectedArtifacts[A]=e.value}openViewImageDialog(e){if(!e||!e.startsWith("data:")||e.indexOf(";base64,")===-1)return;let A=this.dialog.open(t1,{maxWidth:"90vw",maxHeight:"90vh",data:{imageData:e}})}openArtifact(e,A){if(this.isArtifactImage(A)){this.openViewImageDialog(e);return}this.openBase64InNewTab(e,A)}openBase64InNewTab(e,A){}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-artifact-tab"]],inputs:{artifacts:[1,"artifacts"]},features:[Xt],decls:3,vars:0,consts:[[1,"artifact-container"],[1,"artifact-box"],[1,"white-separator"],[1,"artifact-metadata"],[1,"link-style-button",3,"click"],[1,"version-select-container"],[3,"ngModelChange","selectionChange","ngModel"],[3,"value"],["mat-flat-button","",1,"download-button",3,"click"],["alt","artifact.id",1,"generated-image",3,"click","src"],[3,"base64data"]],template:function(A,i){A&1&&(S(0,"div",0),dn(1,kmA,19,4,"div",1,zn),N()),A&2&&(_(),Bn(i.getDistinctArtifactIds()))},dependencies:[YB,Mr,Ss,tc,K2,dr,_c,qB],styles:[".artifact-container[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.artifact-box[_ngcontent-%COMP%]{padding:10px;max-width:100%;margin-left:26px;display:flex;flex-direction:column}.artifact-metadata[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:15px;flex-wrap:wrap;gap:5px}.download-button[_ngcontent-%COMP%]{background-color:var(--artifact-tab-download-button-background-color)!important;margin-left:35px;width:130px;height:28px;font-size:14px}.generated-image[_ngcontent-%COMP%]{max-width:60%;border-radius:8px;cursor:pointer}hr.white-separator[_ngcontent-%COMP%]{border:none;border-top:1px solid var(--artifact-tab-white-separator-border-top-color);margin-bottom:1.2em;margin-right:15px}.version-select-container[_ngcontent-%COMP%]{background-color:var(--artifact-tab-version-select-container-background-color);width:80px;margin-left:15px}.link-style-button[_ngcontent-%COMP%]{background:none;border:none;padding:0;font:inherit;color:var(--artifact-tab-link-style-button-color)!important;text-decoration:underline;cursor:pointer;outline:none}.link-style-button[_ngcontent-%COMP%]:hover{color:var(--artifact-tab-link-style-button-hover-color);text-decoration:underline}.link-style-button[_ngcontent-%COMP%]:focus{outline:1px dotted var(--artifact-tab-link-style-button-focus-outline-color)}.link-style-button[_ngcontent-%COMP%]:active{color:var(--artifact-tab-link-style-button-active-color)}.link-style-button[_ngcontent-%COMP%]:disabled{color:var(--artifact-tab-link-style-button-disabled-color);text-decoration:none;cursor:not-allowed}"]})};var xmA=["mat-menu-item",""],NmA=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],FmA=["mat-icon, [matMenuItemIcon]","*"];function _mA(t,e){t&1&&(ur(),S(0,"svg",2),TA(1,"polygon",3),N())}var GmA=["*"];function KmA(t,e){if(t&1){let A=me();S(0,"div",0),mA("click",function(){QA(A);let n=Y();return uA(n.closed.emit("click"))})("animationstart",function(n){QA(A);let o=Y();return uA(o._onAnimationStart(n.animationName))})("animationend",function(n){QA(A);let o=Y();return uA(o._onAnimationDone(n.animationName))})("animationcancel",function(n){QA(A);let o=Y();return uA(o._onAnimationDone(n.animationName))}),S(1,"div",1),Ue(2),N()()}if(t&2){let A=Y();Ro(A._classList),he("mat-menu-panel-animations-disabled",A._animationsDisabled)("mat-menu-panel-exit-animation",A._panelAnimationState==="void")("mat-menu-panel-animating",A._isAnimating),yA("id",A.panelId),Ke("aria-label",A.ariaLabel||null)("aria-labelledby",A.ariaLabelledby||null)("aria-describedby",A.ariaDescribedby||null)}}var uR=new eA("MAT_MENU_PANEL"),Xh=(()=>{class t{_elementRef=f(se);_document=f(at);_focusMonitor=f(Jr);_parentMenu=f(uR,{optional:!0});_changeDetectorRef=f(Et);role="menuitem";disabled=!1;disableRipple=!1;_hovered=new qA;_focused=new qA;_highlighted=!1;_triggersSubmenu=!1;constructor(){f(Pn).load(Yr),this._parentMenu?.addItem?.(this)}focus(A,i){this._focusMonitor&&A?this._focusMonitor.focusVia(this._getHostElement(),A,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(A){this.disabled&&(A.preventDefault(),A.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){let A=this._elementRef.nativeElement.cloneNode(!0),i=A.querySelectorAll("mat-icon, .material-icons");for(let n=0;n{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_injector=f(Zt);_keyManager;_xPosition;_yPosition;_firstItemFocusRef;_exitFallbackTimeout;_animationsDisabled;_allItems;_directDescendantItems=new qa;_classList={};_panelAnimationState="void";_animationDone=new qA;_isAnimating=!1;parentMenu;direction;overlayPanelClass;backdropClass;ariaLabel;ariaLabelledby;ariaDescribedby;get xPosition(){return this._xPosition}set xPosition(A){this._xPosition=A,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(A){this._yPosition=A,this.setPositionClasses()}templateRef;items;lazyContent;overlapTrigger;hasBackdrop;set panelClass(A){let i=this._previousPanelClass,n=sA({},this._classList);i&&i.length&&i.split(" ").forEach(o=>{n[o]=!1}),this._previousPanelClass=A,A&&A.length&&(A.split(" ").forEach(o=>{n[o]=!0}),this._elementRef.nativeElement.className=""),this._classList=n}_previousPanelClass;get classList(){return this.panelClass}set classList(A){this.panelClass=A}closed=new YA;close=this.closed;panelId=f(an).getId("mat-menu-panel-");constructor(){let A=f(JmA);this.overlayPanelClass=A.overlayPanelClass||"",this._xPosition=A.xPosition,this._yPosition=A.yPosition,this.backdropClass=A.backdropClass,this.overlapTrigger=A.overlapTrigger,this.hasBackdrop=A.hasBackdrop,this._animationsDisabled=f(_i,{optional:!0})==="NoopAnimations"}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new zI(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(On(this._directDescendantItems),$n(A=>Hn(...A.map(i=>i._focused)))).subscribe(A=>this._keyManager.updateActiveItem(A)),this._directDescendantItems.changes.subscribe(A=>{let i=this._keyManager;if(this._panelAnimationState==="enter"&&i.activeItem?._hasFocus()){let n=A.toArray(),o=Math.max(0,Math.min(n.length-1,i.activeItemIndex||0));n[o]&&!n[o].disabled?i.setActiveItem(o):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusRef?.destroy(),clearTimeout(this._exitFallbackTimeout)}_hovered(){return this._directDescendantItems.changes.pipe(On(this._directDescendantItems),$n(i=>Hn(...i.map(n=>n._hovered))))}addItem(A){}removeItem(A){}_handleKeydown(A){let i=A.keyCode,n=this._keyManager;switch(i){case 27:sr(A)||(A.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&this.direction==="ltr"&&this.closed.emit("keydown");break;case 39:this.parentMenu&&this.direction==="rtl"&&this.closed.emit("keydown");break;default:(i===38||i===40)&&n.setFocusOrigin("keyboard"),n.onKeydown(A);return}}focusFirstItem(A="program"){this._firstItemFocusRef?.destroy(),this._firstItemFocusRef=Ir(()=>{let i=this._resolvePanel();if(!i||!i.contains(document.activeElement)){let n=this._keyManager;n.setFocusOrigin(A).setFirstItemActive(),!n.activeItem&&i&&i.focus()}},{injector:this._injector})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(A){}setPositionClasses(A=this.xPosition,i=this.yPosition){this._classList=Fe(sA({},this._classList),{"mat-menu-before":A==="before","mat-menu-after":A==="after","mat-menu-above":i==="above","mat-menu-below":i==="below"}),this._changeDetectorRef.markForCheck()}_onAnimationDone(A){let i=A===j8;(i||A===QR)&&(i&&(clearTimeout(this._exitFallbackTimeout),this._exitFallbackTimeout=void 0),this._animationDone.next(i?"void":"enter"),this._isAnimating=!1)}_onAnimationStart(A){(A===QR||A===j8)&&(this._isAnimating=!0)}_setIsOpen(A){if(this._panelAnimationState=A?"enter":"void",A){if(this._keyManager.activeItemIndex===0){let i=this._resolvePanel();i&&(i.scrollTop=0)}}else this._animationsDisabled||(this._exitFallbackTimeout=setTimeout(()=>this._onAnimationDone(j8),200));this._animationsDisabled&&setTimeout(()=>{this._onAnimationDone(A?QR:j8)}),this._changeDetectorRef.markForCheck()}_updateDirectDescendants(){this._allItems.changes.pipe(On(this._allItems)).subscribe(A=>{this._directDescendantItems.reset(A.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}_resolvePanel(){let A=null;return this._directDescendantItems.length&&(A=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),A}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-menu"]],contentQueries:function(i,n,o){if(i&1&&(gi(o,UmA,5),gi(o,Xh,5),gi(o,Xh,4)),i&2){let r;de(r=Be())&&(n.lazyContent=r.first),de(r=Be())&&(n._allItems=r),de(r=Be())&&(n.items=r)}},viewQuery:function(i,n){if(i&1&&st(mn,5),i&2){let o;de(o=Be())&&(n.templateRef=o.first)}},hostVars:3,hostBindings:function(i,n){i&2&&Ke("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[2,"overlapTrigger","overlapTrigger",ge],hasBackdrop:[2,"hasBackdrop","hasBackdrop",A=>A==null?null:ge(A)],panelClass:[0,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],features:[ut([{provide:uR,useExisting:t}])],ngContentSelectors:GmA,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel",3,"click","animationstart","animationend","animationcancel","id"],[1,"mat-mdc-menu-content"]],template:function(i,n){i&1&&($t(),NA(0,KmA,3,12,"ng-template"))},styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;outline:0}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-menu-item-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-menu-item-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-menu-item-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-menu-item-label-text-weight, var(--mat-sys-label-large-weight))}@keyframes _mat-menu-enter{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:none}}@keyframes _mat-menu-exit{from{opacity:1}to{opacity:0}}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;box-sizing:border-box;outline:0;animation:_mat-menu-enter 120ms cubic-bezier(0, 0, 0.2, 1);border-radius:var(--mat-menu-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-menu-container-color, var(--mat-sys-surface-container));box-shadow:var(--mat-menu-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));will-change:transform,opacity}.mat-mdc-menu-panel.mat-menu-panel-exit-animation{animation:_mat-menu-exit 100ms 25ms linear forwards}.mat-mdc-menu-panel.mat-menu-panel-animations-disabled{animation:none}.mat-mdc-menu-panel.mat-menu-panel-animating{pointer-events:none}.mat-mdc-menu-panel.mat-menu-panel-animating:has(.mat-mdc-menu-content:empty){display:none}@media(forced-colors: active){.mat-mdc-menu-panel{outline:solid 1px}}.mat-mdc-menu-panel .mat-divider{color:var(--mat-menu-divider-color, var(--mat-sys-surface-variant));margin-bottom:var(--mat-menu-divider-bottom-spacing, 8px);margin-top:var(--mat-menu-divider-top-spacing, 8px)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px;padding-left:var(--mat-menu-item-leading-spacing, 12px);padding-right:var(--mat-menu-item-trailing-spacing, 12px);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-menu-item::-moz-focus-inner{border:0}[dir=rtl] .mat-mdc-menu-item{padding-left:var(--mat-menu-item-trailing-spacing, 12px);padding-right:var(--mat-menu-item-leading-spacing, 12px)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-trailing-spacing, 12px)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-trailing-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-leading-spacing, 12px)}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item:focus{outline:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing, 12px);height:var(--mat-menu-item-icon-size, 24px);width:var(--mat-menu-item-icon-size, 24px)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing, 12px)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}@media(forced-colors: active){.mat-mdc-menu-item{margin-top:1px}}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size, 24px);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing, 12px)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing, 12px);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1);transform-origin:center}@media(forced-colors: active){.mat-mdc-menu-submenu-icon{fill:CanvasText}}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,changeDetection:0})}return t})(),Pq=new eA("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.reposition()}});function TmA(t){return()=>t.scrollStrategies.reposition()}var HmA={provide:Pq,deps:[Br],useFactory:TmA},zq=Sc({passive:!0});var Wh=new WeakMap,jq=(()=>{class t{_overlay=f(Br);_element=f(se);_viewContainerRef=f(Sn);_menuItemInstance=f(Xh,{optional:!0,self:!0});_dir=f(po,{optional:!0});_focusMonitor=f(Jr);_ngZone=f(ye);_scrollStrategy=f(Pq);_changeDetectorRef=f(Et);_portal;_overlayRef=null;_menuOpen=!1;_closingActionsSubscription=Kt.EMPTY;_hoverSubscription=Kt.EMPTY;_menuCloseSubscription=Kt.EMPTY;_pendingRemoval;_parentMaterialMenu;_parentInnerPadding;_handleTouchStart=A=>{ch(A)||(this._openedBy="touch")};_openedBy=void 0;get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(A){this.menu=A}get menu(){return this._menu}set menu(A){A!==this._menu&&(this._menu=A,this._menuCloseSubscription.unsubscribe(),A&&(this._parentMaterialMenu,this._menuCloseSubscription=A.close.subscribe(i=>{this._destroyMenu(i),(i==="click"||i==="tab")&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}_menu;menuData;restoreFocus=!0;menuOpened=new YA;onMenuOpen=this.menuOpened;menuClosed=new YA;onMenuClose=this.menuClosed;constructor(){let A=f(uR,{optional:!0});this._parentMaterialMenu=A instanceof VB?A:void 0,this._element.nativeElement.addEventListener("touchstart",this._handleTouchStart,zq)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this.menu&&this._ownsMenu(this.menu)&&Wh.delete(this.menu),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,zq),this._pendingRemoval?.unsubscribe(),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe(),this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null)}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){let A=this.menu;if(this._menuOpen||!A)return;this._pendingRemoval?.unsubscribe();let i=Wh.get(A);Wh.set(A,this),i&&i!==this&&i.closeMenu();let n=this._createOverlay(A),o=n.getConfig(),r=o.positionStrategy;this._setPosition(A,r),o.hasBackdrop=A.hasBackdrop==null?!this.triggersSubmenu():A.hasBackdrop,n.hasAttached()||(n.attach(this._getPortal(A)),A.lazyContent?.attach(this.menuData)),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),A.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,A.direction=this.dir,A.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0),A instanceof VB&&(A._setIsOpen(!0),A._directDescendantItems.changes.pipe(kt(A.close)).subscribe(()=>{r.withLockedPosition(!1).reapplyLastPosition(),r.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(A,i){this._focusMonitor&&A?this._focusMonitor.focusVia(this._element,A,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(A){let i=this._overlayRef,n=this._menu;!i||!this.menuOpen||(this._closingActionsSubscription.unsubscribe(),this._pendingRemoval?.unsubscribe(),n instanceof VB&&this._ownsMenu(n)?(this._pendingRemoval=n._animationDone.pipe(Xn(1)).subscribe(()=>{i.detach(),n.lazyContent?.detach()}),n._setIsOpen(!1)):(i.detach(),n?.lazyContent?.detach()),n&&this._ownsMenu(n)&&Wh.delete(n),this.restoreFocus&&(A==="keydown"||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,this._setIsMenuOpen(!1))}_setIsMenuOpen(A){A!==this._menuOpen&&(this._menuOpen=A,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(A),this._changeDetectorRef.markForCheck())}_createOverlay(A){if(!this._overlayRef){let i=this._getOverlayConfig(A);this._subscribeToPositions(A,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe(n=>{this.menu instanceof VB&&this.menu._handleKeydown(n)})}return this._overlayRef}_getOverlayConfig(A){return new Ml({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:A.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:A.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir||"ltr"})}_subscribeToPositions(A,i){A.setPositionClasses&&i.positionChanges.subscribe(n=>{this._ngZone.run(()=>{let o=n.connectionPair.overlayX==="start"?"after":"before",r=n.connectionPair.overlayY==="top"?"below":"above";A.setPositionClasses(o,r)})})}_setPosition(A,i){let[n,o]=A.xPosition==="before"?["end","start"]:["start","end"],[r,s]=A.yPosition==="above"?["bottom","top"]:["top","bottom"],[a,c]=[r,s],[g,I]=[n,o],C=0;if(this.triggersSubmenu()){if(I=n=A.xPosition==="before"?"start":"end",o=g=n==="end"?"start":"end",this._parentMaterialMenu){if(this._parentInnerPadding==null){let d=this._parentMaterialMenu.items.first;this._parentInnerPadding=d?d._getHostElement().offsetTop:0}C=r==="bottom"?this._parentInnerPadding:-this._parentInnerPadding}}else A.overlapTrigger||(a=r==="top"?"bottom":"top",c=s==="top"?"bottom":"top");i.withPositions([{originX:n,originY:a,overlayX:g,overlayY:r,offsetY:C},{originX:o,originY:a,overlayX:I,overlayY:r,offsetY:C},{originX:n,originY:c,overlayX:g,overlayY:s,offsetY:-C},{originX:o,originY:c,overlayX:I,overlayY:s,offsetY:-C}])}_menuClosingActions(){let A=this._overlayRef.backdropClick(),i=this._overlayRef.detachments(),n=this._parentMaterialMenu?this._parentMaterialMenu.closed:Ce(),o=this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(Nt(r=>this._menuOpen&&r!==this._menuItemInstance)):Ce();return Hn(A,n,o,i)}_handleMousedown(A){ah(A)||(this._openedBy=A.button===0?"mouse":void 0,this.triggersSubmenu()&&A.preventDefault())}_handleKeydown(A){let i=A.keyCode;(i===13||i===32)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(i===39&&this.dir==="ltr"||i===37&&this.dir==="rtl")&&(this._openedBy="keyboard",this.openMenu())}_handleClick(A){this.triggersSubmenu()?(A.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){this.triggersSubmenu()&&this._parentMaterialMenu&&(this._hoverSubscription=this._parentMaterialMenu._hovered().subscribe(A=>{A===this._menuItemInstance&&!A.disabled&&(this._openedBy="mouse",this.openMenu())}))}_getPortal(A){return(!this._portal||this._portal.templateRef!==A.templateRef)&&(this._portal=new Rs(A.templateRef,this._viewContainerRef)),this._portal}_ownsMenu(A){return Wh.get(A)===this}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(i,n){i&1&&mA("click",function(r){return n._handleClick(r)})("mousedown",function(r){return n._handleMousedown(r)})("keydown",function(r){return n._handleKeydown(r)}),i&2&&Ke("aria-haspopup",n.menu?"menu":null)("aria-expanded",n.menuOpen)("aria-controls",n.menuOpen?n.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[0,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[0,"matMenuTriggerFor","menu"],menuData:[0,"matMenuTriggerData","menuData"],restoreFocus:[0,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"]})}return t})(),qq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[HmA],imports:[WI,pn,Z2,j2,pn]})}return t})(),Vq={transformMenu:nc("transformMenu",[$s("void",Do({opacity:0,transform:"scale(0.8)"})),$r("void => enter",Is("120ms cubic-bezier(0, 0, 0.2, 1)",Do({opacity:1,transform:"scale(1)"}))),$r("* => void",Is("100ms 25ms linear",Do({opacity:0})))]),fadeInItems:nc("fadeInItems",[$s("showing",Do({opacity:1})),$r("void => *",[Do({opacity:0}),Is("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},RCe=Vq.fadeInItems,LCe=Vq.transformMenu;function zmA(t,e){t&1&&TA(0,"div",2)}var PmA=new eA("MAT_PROGRESS_BAR_DEFAULT_OPTIONS");var Wq=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);_changeDetectorRef=f(Et);_renderer=f(qi);_cleanupTransitionEnd;_animationMode=f(_i,{optional:!0});constructor(){let A=f(PmA,{optional:!0});this._isNoopAnimation=this._animationMode==="NoopAnimations",A&&(A.color&&(this.color=this._defaultColor=A.color),this.mode=A.mode||this.mode)}_isNoopAnimation=!1;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;_defaultColor="primary";get value(){return this._value}set value(A){this._value=Zq(A||0),this._changeDetectorRef.markForCheck()}_value=0;get bufferValue(){return this._bufferValue||0}set bufferValue(A){this._bufferValue=Zq(A||0),this._changeDetectorRef.markForCheck()}_bufferValue=0;animationEnd=new YA;get mode(){return this._mode}set mode(A){this._mode=A,this._changeDetectorRef.markForCheck()}_mode="determinate";ngAfterViewInit(){this._ngZone.runOutsideAngular(()=>{this._cleanupTransitionEnd=this._renderer.listen(this._elementRef.nativeElement,"transitionend",this._transitionendHandler)})}ngOnDestroy(){this._cleanupTransitionEnd?.()}_getPrimaryBarTransform(){return`scaleX(${this._isIndeterminate()?1:this.value/100})`}_getBufferBarFlexBasis(){return`${this.mode==="buffer"?this.bufferValue:100}%`}_isIndeterminate(){return this.mode==="indeterminate"||this.mode==="query"}_transitionendHandler=A=>{this.animationEnd.observers.length===0||!A.target||!A.target.classList.contains("mdc-linear-progress__primary-bar")||(this.mode==="determinate"||this.mode==="buffer")&&this._ngZone.run(()=>this.animationEnd.next({value:this.value}))};static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-progress-bar"]],hostAttrs:["role","progressbar","aria-valuemin","0","aria-valuemax","100","tabindex","-1",1,"mat-mdc-progress-bar","mdc-linear-progress"],hostVars:10,hostBindings:function(i,n){i&2&&(Ke("aria-valuenow",n._isIndeterminate()?null:n.value)("mode",n.mode),Ro("mat-"+n.color),he("_mat-animation-noopable",n._isNoopAnimation)("mdc-linear-progress--animation-ready",!n._isNoopAnimation)("mdc-linear-progress--indeterminate",n._isIndeterminate()))},inputs:{color:"color",value:[2,"value","value",en],bufferValue:[2,"bufferValue","bufferValue",en],mode:"mode"},outputs:{animationEnd:"animationEnd"},exportAs:["matProgressBar"],decls:7,vars:5,consts:[["aria-hidden","true",1,"mdc-linear-progress__buffer"],[1,"mdc-linear-progress__buffer-bar"],[1,"mdc-linear-progress__buffer-dots"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__primary-bar"],[1,"mdc-linear-progress__bar-inner"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__secondary-bar"]],template:function(i,n){i&1&&(S(0,"div",0),TA(1,"div",1),NA(2,zmA,1,0,"div",2),N(),S(3,"div",3),TA(4,"span",4),N(),S(5,"div",5),TA(6,"span",4),N()),i&2&&(_(),mo("flex-basis",n._getBufferBarFlexBasis()),_(),_A(n.mode==="buffer"?2:-1),_(),mo("transform",n._getPrimaryBarTransform()))},styles:[`.mat-mdc-progress-bar{display:block;text-align:start}.mat-mdc-progress-bar[mode=query]{transform:scaleX(-1)}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-dots,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__secondary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__bar-inner.mdc-linear-progress__bar-inner{animation:none}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-bar{transition:transform 1ms}.mdc-linear-progress{position:relative;width:100%;transform:translateZ(0);outline:1px solid rgba(0,0,0,0);overflow-x:hidden;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);height:max(var(--mdc-linear-progress-track-height, 4px),var(--mdc-linear-progress-active-indicator-height, 4px))}@media(forced-colors: active){.mdc-linear-progress{outline-color:CanvasText}}.mdc-linear-progress__bar{position:absolute;top:0;bottom:0;margin:auto 0;width:100%;animation:none;transform-origin:top left;transition:transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);height:var(--mdc-linear-progress-active-indicator-height, 4px)}.mdc-linear-progress--indeterminate .mdc-linear-progress__bar{transition:none}[dir=rtl] .mdc-linear-progress__bar{right:0;transform-origin:center right}.mdc-linear-progress__bar-inner{display:inline-block;position:absolute;width:100%;animation:none;border-top-style:solid;border-color:var(--mdc-linear-progress-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-linear-progress-active-indicator-height, 4px)}.mdc-linear-progress__buffer{display:flex;position:absolute;top:0;bottom:0;margin:auto 0;width:100%;overflow:hidden;height:var(--mdc-linear-progress-track-height, 4px);border-radius:var(--mdc-linear-progress-track-shape, var(--mat-sys-corner-none))}.mdc-linear-progress__buffer-dots{-webkit-mask-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E");background-repeat:repeat-x;flex:auto;transform:rotate(180deg);animation:mdc-linear-progress-buffering 250ms infinite linear;background-color:var(--mdc-linear-progress-track-color, var(--mat-sys-surface-variant))}@media(forced-colors: active){.mdc-linear-progress__buffer-dots{background-color:ButtonBorder}}[dir=rtl] .mdc-linear-progress__buffer-dots{animation:mdc-linear-progress-buffering-reverse 250ms infinite linear;transform:rotate(0)}.mdc-linear-progress__buffer-bar{flex:0 1 100%;transition:flex-basis 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);background-color:var(--mdc-linear-progress-track-color, var(--mat-sys-surface-variant))}.mdc-linear-progress__primary-bar{transform:scaleX(0)}.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{left:-145.166611%}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation:mdc-linear-progress-primary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-primary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation-name:mdc-linear-progress-primary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{right:-145.166611%;left:auto}.mdc-linear-progress__secondary-bar{display:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{left:-54.888891%;display:block}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation:mdc-linear-progress-secondary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-secondary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation-name:mdc-linear-progress-secondary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{right:-54.888891%;left:auto}@keyframes mdc-linear-progress-buffering{from{transform:rotate(180deg) translateX(calc(var(--mdc-linear-progress-track-height, 4px) * -2.5))}}@keyframes mdc-linear-progress-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(83.67142%)}100%{transform:translateX(200.611057%)}}@keyframes mdc-linear-progress-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(84.386165%)}100%{transform:translateX(160.277782%)}}@keyframes mdc-linear-progress-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-primary-indeterminate-translate-reverse{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(-83.67142%)}100%{transform:translateX(-200.611057%)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate-reverse{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(-37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(-84.386165%)}100%{transform:translateX(-160.277782%)}}@keyframes mdc-linear-progress-buffering-reverse{from{transform:translateX(-10px)}}`],encapsulation:2,changeDetection:0})}return t})();function Zq(t,e=0,A=100){return Math.max(e,Math.min(A,t))}var Xq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn]})}return t})();var q8=new eA("MARKDOWN_COMPONENT");var qmA={cancelEditingTooltip:"Cancel editing",saveEvalMessageTooltip:"Save eval case message",thoughtChipLabel:"Thought",outcomeLabel:"Outcome",outputLabel:"Output",actualToolUsesLabel:"Actual tool uses:",expectedToolUsesLabel:"Expected tool uses:",actualResponseLabel:"Actual response:",expectedResponseLabel:"Expected response:",matchScoreLabel:"Match score",thresholdLabel:"Threshold",evalPassLabel:"Pass",evalFailLabel:"Fail",editEvalMessageTooltip:"Edit eval case message",deleteEvalMessageTooltip:"Delete eval case message",editFunctionArgsTooltip:"Edit function arguments",typeMessagePlaceholder:"Type a Message...",uploadFileTooltip:"Upload local file",moreOptionsTooltip:"More options",updateStateMenuLabel:"Update state",turnOffMicTooltip:"Turn off microphone",useMicTooltip:"Use microphone",turnOffCamTooltip:"Turn off camera",useCamTooltip:"Use camera",updatedSessionStateChipLabel:"Updated session state"},$q=new eA("Chat Panel Messages",{factory:()=>qmA});var VmA=["videoContainer"],ZmA=["autoScroll"],WmA=["messageTextarea"],XmA=(t,e)=>({"user-message":t,"bot-message":e}),$mA=(t,e)=>({"eval-pass":t,"eval-fail":e}),ApA=(t,e)=>({"eval-fail":t,"message-card--highlighted":e}),epA=(t,e)=>({text:t,thought:e}),eV=t=>({"function-event-button-highlight":t}),hR=t=>({hidden:t});function tpA(t,e){if(t&1){let A=me();S(0,"button",13),mA("click",function(){QA(A);let n=Y().$index,o=Y(2);return uA(o.clickEvent.emit(n))}),S(1,"mat-icon",14),AA(2,"robot_2"),N()()}if(t&2){let A=Y().$index,i=Y(2);Ro(i.customIconColorClass(A)),yA("matTooltip",i.getAgentNameFromEvent(A))}}function ipA(t,e){t&1&&TA(0,"mat-progress-bar",15)}function npA(t,e){if(t&1&&TA(0,"img",20),t&2){let A=Y().$implicit;yA("src",A.url,js)}}function opA(t,e){if(t&1&&(S(0,"a",21),AA(1),N()),t&2){let A=Y(2).$implicit;yA("href",A.url,js),_(),tt(A.file.name)}}function rpA(t,e){if(t&1&&AA(0),t&2){let A=Y(2).$implicit;It(" ",A.file.name," ")}}function spA(t,e){if(t&1&&(S(0,"mat-icon"),AA(1,"insert_drive_file"),N(),NA(2,opA,2,2,"a",21)(3,rpA,1,1)),t&2){let A=Y().$implicit;_(2),_A(A.url?2:3)}}function apA(t,e){if(t&1&&(S(0,"div",19),NA(1,npA,1,1,"img",20)(2,spA,4,1),N()),t&2){let A=e.$implicit;_(),_A(A.file.type.startsWith("image/")?1:-1),_(),_A(A.file.type.startsWith("image/")?-1:2)}}function cpA(t,e){if(t&1&&(S(0,"div",16),dn(1,apA,3,2,"div",19,zn),N()),t&2){let A=Y(2).$implicit;_(),Bn(A.attachments)}}function gpA(t,e){if(t&1&&(S(0,"div",17),AA(1),N()),t&2){let A=Y(4);_(),tt(A.i18n.thoughtChipLabel)}}function lpA(t,e){if(t&1){let A=me();S(0,"div",22)(1,"textarea",24,2),mA("ngModelChange",function(n){QA(A);let o=Y(5);return uA(o.userEditEvalCaseMessageChange.emit(n))})("keydown",function(n){QA(A);let o=Y(3).$implicit,r=Y(2);return uA(r.handleKeydown.emit({event:n,message:o}))}),N(),S(3,"div",25)(4,"span",26),mA("click",function(){QA(A);let n=Y(3).$implicit,o=Y(2);return uA(o.cancelEditMessage.emit(n))}),AA(5," close "),N(),S(6,"span",27),mA("click",function(){QA(A);let n=Y(3).$implicit,o=Y(2);return uA(o.saveEditMessage.emit(n))}),AA(7," check "),N()()()}if(t&2){let A=Y(5);_(),yA("ngModel",A.userEditEvalCaseMessage),_(3),yA("matTooltip",A.i18n.cancelEditingTooltip),_(2),yA("matTooltip",A.i18n.saveEvalMessageTooltip)}}function IpA(t,e){if(t&1&&rr(0,23),t&2){let A=Y(3).$implicit,i=Y(2);yA("ngComponentOutlet",i.markdownComponent)("ngComponentOutletInputs",Bg(2,epA,A.text,A.thought))}}function CpA(t,e){if(t&1&&NA(0,lpA,8,3,"div",22)(1,IpA,1,5,"ng-container",23),t&2){let A=Y(2).$implicit;_A(A.isEditing?0:1)}}function dpA(t,e){if(t&1&&(S(0,"div"),TA(1,"div",28),N()),t&2){let A=Y(2).$implicit,i=Y(2);_(),yA("innerHTML",i.renderGooglerSearch(A.renderedContent),b2)}}function BpA(t,e){if(t&1&&(S(0,"code"),AA(1),N()),t&2){let A=Y(2).$implicit;_(),It(" ",A.executableCode.code," ")}}function EpA(t,e){if(t&1&&(S(0,"div")(1,"div"),AA(2),N(),S(3,"div"),AA(4),N()()),t&2){let A=Y(2).$implicit,i=Y(2);_(2),x2("",i.i18n.outcomeLabel,": ",A.codeExecutionResult.outcome,""),_(2),x2("",i.i18n.outputLabel,": ",A.codeExecutionResult.output,"")}}function QpA(t,e){if(t&1){let A=me();S(0,"div",29)(1,"img",30),mA("click",function(){QA(A);let n=Y(4).$implicit,o=Y(2);return uA(o.openViewImageDialog.emit(n.inlineData.data))}),N()()}if(t&2){let A=Y(4).$implicit;_(),yA("src",A.inlineData.data,js)}}function upA(t,e){if(t&1&&(S(0,"div"),TA(1,"app-audio-player",31),N()),t&2){let A=Y(4).$implicit;_(),yA("base64data",A.inlineData.data)}}function hpA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",32)(2,"mat-icon"),AA(3,"description"),N(),S(4,"button",33),mA("click",function(){QA(A);let n=Y(4).$implicit,o=Y(2);return uA(o.openBase64InNewTab.emit({data:n.inlineData.data,mimeType:n.inlineData.mimeType}))}),AA(5),N()()()}if(t&2){let A=Y(4).$implicit;_(5),It(" ",A.inlineData.name," ")}}function fpA(t,e){if(t&1){let A=me();S(0,"div")(1,"button",33),mA("click",function(){QA(A);let n=Y(4).$implicit,o=Y(2);return uA(o.openBase64InNewTab.emit({data:n.inlineData.data,mimeType:n.inlineData.mimeType}))}),AA(2),N()()}if(t&2){let A=Y(4).$implicit;_(2),It(" ",A.inlineData.name," ")}}function mpA(t,e){if(t&1&&(S(0,"div")(1,"div"),NA(2,QpA,2,1,"div",29)(3,upA,2,1,"div")(4,hpA,6,1,"div")(5,fpA,3,1,"div"),N()()),t&2){let A,i=Y(3).$implicit,n=Y(2);_(2),_A((A=i.inlineData.mediaType)===n.MediaType.IMAGE?2:A===n.MediaType.AUDIO?3:A===n.MediaType.TEXT?4:5)}}function ppA(t,e){if(t&1){let A=me();S(0,"div")(1,"img",34),mA("click",function(){QA(A);let n=Y(4).$implicit,o=Y(2);return uA(o.openViewImageDialog.emit(n.inlineData.data))}),N()()}if(t&2){let A=Y(4).$implicit;_(),yA("src",A.inlineData.data,js)}}function DpA(t,e){if(t&1&&(S(0,"div",19)(1,"mat-icon"),AA(2,"insert_drive_file"),N(),S(3,"a",21),AA(4),N()()),t&2){let A=Y(4).$implicit;_(3),yA("href",A.inlineData.data,js),_(),tt(A.inlineData.displayName)}}function wpA(t,e){if(t&1&&(S(0,"div"),NA(1,ppA,2,1,"div")(2,DpA,5,2,"div",19),N()),t&2){let A=Y(3).$implicit;_(),_A(A.inlineData.mimeType.startsWith("image/")?1:2)}}function ypA(t,e){if(t&1&&NA(0,mpA,6,1,"div")(1,wpA,3,1,"div"),t&2){let A=Y(2).$implicit;_A(A.role==="bot"?0:1)}}function vpA(t,e){if(t&1&&(S(0,"div",37)(1,"div",38),AA(2),N(),TA(3,"ngx-json-viewer",39),N(),S(4,"div",40)(5,"div",41),AA(6),N(),TA(7,"ngx-json-viewer",39),N()),t&2){let A=Y(3).$implicit,i=Y(2);_(2),tt(i.i18n.actualToolUsesLabel),_(),yA("json",A.actualInvocationToolUses),_(3),tt(i.i18n.expectedToolUsesLabel),_(),yA("json",A.expectedInvocationToolUses)}}function MpA(t,e){if(t&1&&(S(0,"div",37)(1,"div",38),AA(2),N(),S(3,"div"),AA(4),N()(),S(5,"div",40)(6,"div",41),AA(7),N(),S(8,"div"),AA(9),N()()),t&2){let A=Y(3).$implicit,i=Y(2);_(2),tt(i.i18n.actualResponseLabel),_(2),tt(A.actualFinalResponse),_(3),tt(i.i18n.expectedResponseLabel),_(2),tt(A.expectedFinalResponse)}}function bpA(t,e){if(t&1&&(S(0,"div",36)(1,"span",42),AA(2),N(),S(3,"span",43),AA(4),N()()),t&2){let A=Y(3).$implicit,i=Y(2);_(2),x2("",i.i18n.matchScoreLabel,": ",A.evalScore,""),_(2),x2("",i.i18n.thresholdLabel,": ",A.evalThreshold,"")}}function kpA(t,e){if(t&1&&(S(0,"div",18)(1,"div",35),NA(2,vpA,8,4)(3,MpA,10,4),N(),NA(4,bpA,5,4,"div",36),N()),t&2){let A=Y(2).$implicit;_(2),_A(A.actualInvocationToolUses?2:A.actualFinalResponse?3:-1),_(2),_A(A.evalScore!==void 0&&A.evalThreshold!==void 0?4:-1)}}function SpA(t,e){if(t&1&&(S(0,"mat-card",9),NA(1,ipA,1,0,"mat-progress-bar",15)(2,cpA,3,0,"div",16),S(3,"div"),NA(4,gpA,2,1,"div",17),S(5,"div"),NA(6,CpA,2,1),N(),NA(7,dpA,2,1,"div"),N(),NA(8,BpA,2,1,"code")(9,EpA,5,4,"div")(10,ypA,2,1)(11,kpA,5,2,"div",18),N()),t&2){let A=Y(),i=A.$implicit,n=A.$index,o=Y(2);yA("ngClass",Bg(10,ApA,i.evalStatus===2,o.shouldMessageHighlighted(n))),_(),_A(i.isLoading?1:-1),_(),_A(i.attachments?2:-1),_(2),_A(i.thought?4:-1),_(2),_A(i.text?6:-1),_(),_A(i.renderedContent?7:-1),_(),_A(i.executableCode?8:-1),_(),_A(i.codeExecutionResult?9:-1),_(),_A(i.inlineData?10:-1),_(),_A(i.failedMetric&&i.evalStatus===2?11:-1)}}function RpA(t,e){if(t&1){let A=me();S(0,"button",44),mA("click",function(){QA(A);let n=Y().$index,o=Y(2);return uA(o.clickEvent.emit(n))}),S(1,"mat-icon"),AA(2,"bolt"),N(),AA(3),N()}if(t&2){let A=Y(),i=A.$implicit,n=A.$index,o=Y(2);yA("ngClass",vc(2,eV,o.shouldMessageHighlighted(n))),_(3),It(" ",i.functionCall.name," ")}}function LpA(t,e){if(t&1){let A=me();S(0,"button",44),mA("click",function(){QA(A);let n=Y().$index,o=Y(2);return uA(o.clickEvent.emit(n))}),S(1,"mat-icon"),AA(2,"check"),N(),AA(3),N()}if(t&2){let A=Y(),i=A.$implicit,n=A.$index,o=Y(2);yA("ngClass",vc(2,eV,o.shouldMessageHighlighted(n))),_(3),It(" ",i.functionResponse.name," ")}}function xpA(t,e){if(t&1){let A=me();S(0,"div")(1,"span",45),mA("click",function(){QA(A);let n=Y(2).$implicit,o=Y(2);return uA(o.editEvalCaseMessage.emit(n))}),AA(2," edit "),N(),S(3,"span",45),mA("click",function(){QA(A);let n=Y(2),o=n.$implicit,r=n.$index,s=Y(2);return uA(s.deleteEvalCaseMessage.emit({message:o,index:r}))}),AA(4," delete "),N()()}if(t&2){let A=Y(4);_(),yA("ngClass",vc(4,hR,A.isEvalCaseEditing))("matTooltip",A.i18n.editEvalMessageTooltip),_(2),yA("ngClass",vc(6,hR,A.isEvalCaseEditing))("matTooltip",A.i18n.deleteEvalMessageTooltip)}}function NpA(t,e){if(t&1){let A=me();S(0,"div")(1,"span",45),mA("click",function(){QA(A);let n=Y(2).$implicit,o=Y(2);return uA(o.editFunctionArgs.emit(n))}),AA(2," edit "),N()()}if(t&2){let A=Y(4);_(),yA("ngClass",vc(2,hR,A.isEvalCaseEditing))("matTooltip",A.i18n.editFunctionArgsTooltip)}}function FpA(t,e){if(t&1&&NA(0,xpA,5,8,"div")(1,NpA,3,4,"div"),t&2){let A=Y().$implicit,i=Y(2);_A(A.text?0:i.isEditFunctionArgsEnabled&&A.functionCall?1:-1)}}function _pA(t,e){t&1&&(S(0,"button",12)(1,"mat-icon"),AA(2,"person"),N()())}function GpA(t,e){if(t&1&&(S(0,"div",7),NA(1,tpA,3,3,"button",8)(2,SpA,12,13,"mat-card",9)(3,RpA,4,4,"button",10)(4,LpA,4,4,"button",10),S(5,"div",7)(6,"span",11),AA(7),N(),S(8,"span"),AA(9),N()(),NA(10,FpA,2,1)(11,_pA,3,0,"button",12),N()),t&2){let A=e.$implicit,i=Y(2);yA("ngClass",Bg(10,XmA,A.role==="user",A.role==="bot")),_(),_A(A.role==="bot"?1:-1),_(),_A(!A.functionCall&&!A.functionResponse?2:-1),_(),_A(A.functionCall?3:-1),_(),_A(A.functionResponse?4:-1),_(),yA("ngClass",Bg(13,$mA,A.evalStatus===1,A.evalStatus===2)),_(2),tt(A.evalStatus===1?"check":A.evalStatus===2?"close":""),_(2),tt(A.evalStatus===1?i.i18n.evalPassLabel:A.evalStatus===2?i.i18n.evalFailLabel:""),_(),_A(i.evalCase&&A.role==="bot"&&i.isEvalEditMode?10:-1),_(),_A(A.role==="user"?11:-1)}}function KpA(t,e){if(t&1&&(S(0,"div",5,0),TA(2,"div",null,1),dn(4,GpA,12,16,"div",7,zn),N()),t&2){let A=Y();_(4),Bn(A.messages)}}function UpA(t,e){if(t&1){let A=me();S(0,"div",57),TA(1,"img",58),S(2,"button",59),mA("click",function(){QA(A);let n=Y().$index,o=Y(3);return uA(o.removeFile.emit(n))}),S(3,"mat-icon",60),AA(4,"close"),N()()()}if(t&2){let A=Y().$implicit;_(),yA("src",A.url,js)}}function JpA(t,e){if(t&1){let A=me();S(0,"div",56)(1,"button",59),mA("click",function(){QA(A);let n=Y().$index,o=Y(3);return uA(o.removeFile.emit(n))}),S(2,"mat-icon",60),AA(3,"close"),N()(),S(4,"div",61)(5,"mat-icon"),AA(6,"insert_drive_file"),N(),S(7,"span"),AA(8),N()()()}if(t&2){let A=Y().$implicit;_(8),tt(A.file.name)}}function YpA(t,e){if(t&1&&(S(0,"div"),NA(1,UpA,5,1,"div",57)(2,JpA,9,1,"div",56),N()),t&2){let A=e.$implicit;_(),_A(A.file.type.startsWith("image/")?1:A.file.type.startsWith("image/")?-1:2)}}function TpA(t,e){if(t&1){let A=me();S(0,"div",56)(1,"button",59),mA("click",function(){QA(A);let n=Y(3);return uA(n.removeStateUpdate.emit())}),S(2,"mat-icon",60),AA(3,"close"),N()(),S(4,"div",61)(5,"span"),AA(6),N()()()}if(t&2){let A=Y(3);_(6),tt(A.i18n.updatedSessionStateChipLabel)}}function HpA(t,e){if(t&1&&(S(0,"div",48),dn(1,YpA,3,1,"div",null,zn),NA(3,TpA,7,1,"div",56),N()),t&2){let A=Y(2);_(),Bn(A.selectedFiles),_(2),_A(A.updatedSessionState?3:-1)}}function OpA(t,e){if(t&1){let A=me();S(0,"div",6)(1,"input",46,3),mA("change",function(n){QA(A);let o=Y();return uA(o.fileSelect.emit(n))}),N(),S(3,"mat-form-field",47),NA(4,HpA,4,1,"div",48),S(5,"textarea",49),mA("ngModelChange",function(n){QA(A);let o=Y();return uA(o.userInputChange.emit(n))})("keydown.enter",function(n){QA(A);let o=Y();return uA(o.sendMessage.emit(n))}),N(),S(6,"div",50)(7,"div")(8,"button",51),eo(9,"async"),mA("click",function(){QA(A);let n=Cr(2);return uA(n.click())}),S(10,"mat-icon"),AA(11,"attach_file"),N()(),S(12,"button",52),eo(13,"async"),S(14,"mat-icon"),AA(15,"more_vert"),N()(),S(16,"mat-menu",null,4)(18,"span",53),mA("click",function(){QA(A);let n=Y();return uA(n.updateState.emit())}),AA(19),N()()(),S(20,"div")(21,"button",54),eo(22,"async"),mA("click",function(){QA(A);let n=Y();return uA(n.toggleAudioRecording.emit())}),S(23,"mat-icon"),AA(24,"mic"),N()(),S(25,"button",55),eo(26,"async"),mA("click",function(){QA(A);let n=Y();return uA(n.toggleVideoRecording.emit())}),S(27,"mat-icon"),AA(28,"videocam"),N()()()()()()}if(t&2){let A=Cr(17),i=Y();_(4),_A(i.selectedFiles.length&&i.appName!=""||i.updatedSessionState?4:-1),_(),yA("ngModel",i.userInput)("placeholder",i.i18n.typeMessagePlaceholder),_(3),yA("matTooltip",i.i18n.uploadFileTooltip)("disabled",!Yo(9,17,i.isMessageFileUploadEnabledObs)),_(4),yA("matMenuTriggerFor",A)("matTooltip",i.i18n.moreOptionsTooltip)("disabled",!Yo(13,19,i.isManualStateUpdateEnabledObs)),_(7),It(" ",i.i18n.updateStateMenuLabel," "),_(2),he("recording",i.isAudioRecording),yA("matTooltip",i.isAudioRecording?i.i18n.turnOffMicTooltip:i.i18n.useMicTooltip)("disabled",!Yo(22,21,i.isBidiStreamingEnabledObs)),_(4),he("recording",i.isVideoRecording),yA("matTooltip",i.isVideoRecording?i.i18n.turnOffCamTooltip:i.i18n.useCamTooltip)("disabled",!Yo(26,23,i.isBidiStreamingEnabledObs))}}var AV="root_agent",ZB=class t{constructor(e){this.sanitizer=e}appName="";messages=[];isChatMode=!0;evalCase=null;isEvalEditMode=!1;isEvalCaseEditing=!1;isEditFunctionArgsEnabled=!1;userInput="";userEditEvalCaseMessage="";selectedFiles=[];updatedSessionState=null;eventData=new Map;isAudioRecording=!1;isVideoRecording=!1;hoveredEventMessageIndices=[];userInputChange=new YA;userEditEvalCaseMessageChange=new YA;clickEvent=new YA;handleKeydown=new YA;cancelEditMessage=new YA;saveEditMessage=new YA;openViewImageDialog=new YA;openBase64InNewTab=new YA;editEvalCaseMessage=new YA;deleteEvalCaseMessage=new YA;editFunctionArgs=new YA;fileSelect=new YA;removeFile=new YA;removeStateUpdate=new YA;sendMessage=new YA;updateState=new YA;toggleAudioRecording=new YA;toggleVideoRecording=new YA;videoContainer;scrollContainer;textarea;scrollInterrupted=!1;previousMessageCount=0;i18n=f($q);stringToColorService=f(jB);markdownComponent=f(q8);featureFlagService=f(Gc);MediaType=gC;isMessageFileUploadEnabledObs=this.featureFlagService.isMessageFileUploadEnabled();isManualStateUpdateEnabledObs=this.featureFlagService.isManualStateUpdateEnabled();isBidiStreamingEnabledObs=this.featureFlagService.isBidiStreamingEnabled();ngAfterViewInit(){this.scrollContainer?.nativeElement&&(this.scrollContainer.nativeElement.addEventListener("wheel",()=>{this.scrollInterrupted=!0}),this.scrollContainer.nativeElement.addEventListener("touchmove",()=>{this.scrollInterrupted=!0}))}ngOnChanges(e){e.messages&&(this.messages.length>this.previousMessageCount&&(this.messages.slice(this.previousMessageCount).some(i=>i.role==="user")&&(this.scrollInterrupted=!1),this.scrollToBottom()),this.previousMessageCount=this.messages.length)}scrollToBottom(){!this.scrollInterrupted&&this.scrollContainer?.nativeElement&&setTimeout(()=>{this.scrollContainer.nativeElement.scrollTo({top:this.scrollContainer.nativeElement.scrollHeight,behavior:"auto"})},50)}getAgentNameFromEvent(e){let A=this.messages[e].eventId;return this.eventData.get(A)?.author??AV}customIconColorClass(e){let A=this.getAgentNameFromEvent(e);return A!==AV?`custom-icon-color-${this.stringToColorService.stc(A).replace("#","")}`:""}shouldMessageHighlighted(e){return this.hoveredEventMessageIndices.includes(e)}renderGooglerSearch(e){return this.sanitizer.bypassSecurityTrustHtml(e)}static \u0275fac=function(A){return new(A||t)(Ge(oc))};static \u0275cmp=jA({type:t,selectors:[["app-chat-panel"]],viewQuery:function(A,i){if(A&1&&(st(VmA,5,se),st(ZmA,5),st(WmA,5)),A&2){let n;de(n=Be())&&(i.videoContainer=n.first),de(n=Be())&&(i.scrollContainer=n.first),de(n=Be())&&(i.textarea=n.first)}},inputs:{appName:"appName",messages:"messages",isChatMode:"isChatMode",evalCase:"evalCase",isEvalEditMode:"isEvalEditMode",isEvalCaseEditing:"isEvalCaseEditing",isEditFunctionArgsEnabled:"isEditFunctionArgsEnabled",userInput:"userInput",userEditEvalCaseMessage:"userEditEvalCaseMessage",selectedFiles:"selectedFiles",updatedSessionState:"updatedSessionState",eventData:"eventData",isAudioRecording:"isAudioRecording",isVideoRecording:"isVideoRecording",hoveredEventMessageIndices:"hoveredEventMessageIndices"},outputs:{userInputChange:"userInputChange",userEditEvalCaseMessageChange:"userEditEvalCaseMessageChange",clickEvent:"clickEvent",handleKeydown:"handleKeydown",cancelEditMessage:"cancelEditMessage",saveEditMessage:"saveEditMessage",openViewImageDialog:"openViewImageDialog",openBase64InNewTab:"openBase64InNewTab",editEvalCaseMessage:"editEvalCaseMessage",deleteEvalCaseMessage:"deleteEvalCaseMessage",editFunctionArgs:"editFunctionArgs",fileSelect:"fileSelect",removeFile:"removeFile",removeStateUpdate:"removeStateUpdate",sendMessage:"sendMessage",updateState:"updateState",toggleAudioRecording:"toggleAudioRecording",toggleVideoRecording:"toggleVideoRecording"},features:[Xt],decls:2,vars:2,consts:[["autoScroll",""],["videoContainer",""],["messageTextarea",""],["fileInput",""],["moreMenu","matMenu"],[1,"chat-messages"],[1,"chat-input"],[3,"ngClass"],["mat-mini-fab","",3,"matTooltip","class"],[1,"message-card",3,"ngClass"],["mat-stroked-button","",1,"function-event-button",3,"ngClass"],[1,"material-symbols-outlined"],["mat-mini-fab",""],["mat-mini-fab","",3,"click","matTooltip"],["fontSet","material-symbols-outlined"],["mode","buffer",1,"loading-bar"],[1,"attachments"],[1,"thought-chip"],[1,"eval-compare-container"],[1,"attachment"],["alt","attachment",1,"image-preview-chat",3,"src"],["download","",3,"href"],[1,"edit-message-container"],[3,"ngComponentOutlet","ngComponentOutletInputs"],["rows","4","cols","80",1,"message-textarea",3,"ngModelChange","keydown","ngModel"],[1,"edit-message-buttons-container"],[1,"material-symbols-outlined","cancel-edit-button",3,"click","matTooltip"],[1,"material-symbols-outlined","save-edit-button",3,"click","matTooltip"],[3,"innerHTML"],[1,"generated-image-container"],["alt","image",1,"generated-image",3,"click","src"],[3,"base64data"],[1,"html-artifact-container"],[1,"link-style-button",3,"click"],["alt","image",1,"image-preview-chat",3,"click","src"],[1,"actual-expected-compare-container"],[1,"score-threshold-container"],[1,"actual-result"],[1,"eval-response-header","header-actual"],[3,"json"],[1,"expected-result"],[1,"eval-response-header","header-expected"],[1,"header-actual"],[1,"header-expected"],["mat-stroked-button","",1,"function-event-button",3,"click","ngClass"],[1,"material-symbols-outlined","eval-case-edit-button",3,"click","ngClass","matTooltip"],["type","file","multiple","","hidden","",3,"change"],["appearance","outline",1,"input-field"],[1,"file-preview"],["matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","1","cdkAutosizeMaxRows","10",1,"chat-input-box",3,"ngModelChange","keydown.enter","ngModel","placeholder"],[1,"chat-input-actions"],["mat-icon-button","",1,"function-event-button",3,"click","matTooltip","disabled"],["mat-icon-button","",1,"function-event-button",3,"matMenuTriggerFor","matTooltip","disabled"],["mat-menu-item","",3,"click"],["mat-icon-button","","matSuffix","",1,"audio-rec-btn",3,"click","matTooltip","disabled"],["mat-icon-button","","matSuffix","",1,"video-rec-btn",3,"click","matTooltip","disabled"],[1,"file-container"],[1,"image-container"],["alt","preview",1,"image-preview",3,"src"],["mat-icon-button","",1,"delete-button",3,"click"],["color","warn"],[1,"file-info"]],template:function(A,i){A&1&&NA(0,KpA,6,0,"div",5)(1,OpA,29,25,"div",6),A&2&&(_A(i.appName!=""?0:-1),_(),_A(i.appName!=""&&i.isChatMode?1:-1))},dependencies:[ug,Vs,Yu,Qg,Mr,kc,Ss,tc,Lq,_c,rq,y8,Xq,Wq,uB,dr,QB,u6,D6,J2,fl,Zz,eP,p6,U2,qq,VB,Xh,jq,Sl,X2,qB,IR,kl],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}.generated-image-container[_ngcontent-%COMP%]{max-width:400px}.generated-image[_ngcontent-%COMP%]{max-width:100%;min-width:40px;border-radius:8px}.html-artifact-container[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:flex-start;align-items:center}.loading-bar[_ngcontent-%COMP%]{width:100px;margin:15px}.chat-messages[_ngcontent-%COMP%]{flex-grow:1;overflow-y:auto;padding:20px;margin-top:16px}.message-card[_ngcontent-%COMP%]{padding:5px 20px;margin:5px;border-radius:20px;max-width:80%;font-size:14px;font-weight:400;position:relative;display:inline-block}.message-card.message-card--highlighted[_ngcontent-%COMP%]{background-color:var(--chat-panel-function-event-button-highlight-background-color)}.function-event-button[_ngcontent-%COMP%]{background-color:var(--chat-panel-function-event-button-background-color);margin:5px 5px 10px}.function-event-button-highlight[_ngcontent-%COMP%]{background-color:var(--chat-panel-function-event-button-highlight-background-color);border-color:var(--chat-panel-function-event-button-highlight-border-color)!important;color:var(--chat-panel-function-event-button-highlight-color)!important}.user-message[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center}.user-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-panel-user-message-message-card-background-color);align-self:flex-end;color:var(--chat-panel-user-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]{display:flex;align-items:center}.bot-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-panel-bot-message-message-card-background-color);align-self:flex-start;color:var(--chat-panel-bot-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]:focus-within .message-card[_ngcontent-%COMP%]{background-color:var(--chat-panel-bot-message-focus-within-message-card-background-color);border:1px solid var(--chat-panel-bot-message-focus-within-message-card-border-color)}.message-textarea[_ngcontent-%COMP%]{background-color:var(--chat-panel-message-textarea-background-color);max-width:100%;border:none;font-family:Google Sans,Helvetica Neue,sans-serif}.message-textarea[_ngcontent-%COMP%]:focus{background-color:var(--chat-panel-message-textarea-focus-background-color);outline:none}.edit-message-buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%]{visibility:hidden;position:absolute;left:10px;z-index:10;background-color:var(--chat-panel-eval-compare-container-background-color);overflow:hidden;border-radius:20px;padding:5px 20px;margin-bottom:10px;font-size:16px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .actual-result[_ngcontent-%COMP%]{border-right:2px solid var(--chat-panel-actual-result-border-right-color);padding-right:8px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .expected-result[_ngcontent-%COMP%]{padding-left:12px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%]:hover .eval-compare-container[_ngcontent-%COMP%]{visibility:visible}.actual-expected-compare-container[_ngcontent-%COMP%]{display:flex}.score-threshold-container[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:10px;align-items:center;margin-top:15px;font-size:14px;font-weight:600}.eval-response-header[_ngcontent-%COMP%]{padding-bottom:5px;border-bottom:2px solid var(--chat-panel-eval-response-header-border-bottom-color);font-style:italic;font-weight:700}.header-expected[_ngcontent-%COMP%]{color:var(--chat-panel-header-expected-color)}.header-actual[_ngcontent-%COMP%]{color:var(--chat-panel-header-actual-color)}.eval-case-edit-button[_ngcontent-%COMP%]{cursor:pointer;margin-left:4px;margin-right:4px}.eval-pass[_ngcontent-%COMP%]{display:flex;color:var(--chat-panel-eval-pass-color)}.eval-fail[_ngcontent-%COMP%]{display:flex;color:var(--chat-panel-eval-fail-color)}.hidden[_ngcontent-%COMP%]{visibility:hidden}.chat-input[_ngcontent-%COMP%]{display:flex;padding:10px;width:60%;margin:0 auto}.input-field[_ngcontent-%COMP%]{flex-grow:1}.input-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{color:var(--chat-panel-input-field-textarea-color);border:none;padding:10px;box-sizing:content-box;caret-color:#fff}.input-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]::placeholder{color:var(--chat-panel-input-field-textarea-placeholder-color)}.input-field[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{color:var(--chat-panel-input-field-button-color);background-color:var(--chat-panel-input-field-button-background-color)}.chat-input-actions[_ngcontent-%COMP%]{width:106%;margin-top:10px;display:flex;justify-content:space-between;align-items:center;max-width:100%}.chat-input-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:10px;margin-right:10px}.file-preview[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px;margin-bottom:8px}.image-preview[_ngcontent-%COMP%]{width:40px;height:40px;object-fit:cover;border-radius:4px}.image-preview-chat[_ngcontent-%COMP%]{max-width:90%;max-height:70vh;width:auto;height:auto;border-radius:8px;cursor:pointer;transition:transform .2s ease-in-out}.attachment[_ngcontent-%COMP%]{display:flex;align-items:center}[_nghost-%COMP%] .mat-mdc-mini-fab{background-color:var(--chat-panel-mat-mdc-mini-fab-background-color)}[_nghost-%COMP%] .mat-mdc-mini-fab mat-icon{color:var(--chat-panel-mat-mdc-mini-fab-mat-icon-color)}[_nghost-%COMP%] .message-text p{white-space:pre-line;word-break:break-word;overflow-wrap:break-word}[_nghost-%COMP%] .input-field .mat-mdc-text-field-wrapper{border:1px solid var(--chat-panel-input-field-mat-mdc-text-field-wrapper-border-color);border-radius:16px}.image-container[_ngcontent-%COMP%]{position:relative;display:inline-block;border-radius:12px;overflow:hidden}.image-preview[_ngcontent-%COMP%]{display:block;width:100%;height:auto;border-radius:12px;width:80px;height:80px}.delete-button[_ngcontent-%COMP%]{position:absolute;top:1px;right:1px;background-color:var(--chat-panel-delete-button-background-color);border:none;border-radius:50%;padding:8px;cursor:pointer;color:var(--chat-panel-delete-button-color);display:flex;align-items:center;justify-content:center;margin-right:0;scale:.7}.delete-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px}.file-container[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;gap:8px;height:80px;background-color:var(--chat-panel-file-container-background-color);border-radius:12px}.file-info[_ngcontent-%COMP%]{margin-right:60px;padding-top:20px;padding-left:16px}.thought-chip[_ngcontent-%COMP%]{border-radius:5px;background-color:var(--chat-panel-thought-chip-background-color);width:80px;text-align:center;margin-top:5px}[_nghost-%COMP%] pre{white-space:pre-wrap;word-break:break-word;overflow-x:auto;max-width:100%}.link-style-button[_ngcontent-%COMP%]{background:none;border:none;padding:0;font:inherit;color:var(--chat-panel-link-style-button-color)!important;text-decoration:underline;cursor:pointer;outline:none;font-size:14px}.cancel-edit-button[_ngcontent-%COMP%]{width:24px;height:24px;color:var(--chat-mat-mdc-text-field-wrapper-border-color);cursor:pointer;margin-right:16px}.save-edit-button[_ngcontent-%COMP%]{width:24px;height:24px;color:var(--mat-sys-primary);cursor:pointer;margin-right:16px}.chat-input-box[_ngcontent-%COMP%]{caret-color:#fff}button.audio-rec-btn[_ngcontent-%COMP%], button.video-rec-btn[_ngcontent-%COMP%]{background-color:var(--chat-card-background-color)}button.audio-rec-btn.recording[_ngcontent-%COMP%], button.video-rec-btn.recording[_ngcontent-%COMP%]{background-color:var(--chat-panel-eval-fail-color)}"]})};function wo(t){return Array.isArray(t)}function Lo(t){return t!==null&&typeof t=="object"&&(t.constructor===void 0||t.constructor.name==="Object")}function fR(t){return t&&typeof t=="object"?t.op==="add":!1}function mR(t){return t&&typeof t=="object"?t.op==="remove":!1}function V8(t){return t&&typeof t=="object"?t.op==="replace":!1}function Z8(t){return t&&typeof t=="object"?t.op==="copy":!1}function i1(t){return t&&typeof t=="object"?t.op==="move":!1}function tV(t,e){return JSON.stringify(t)===JSON.stringify(e)}function zpA(t,e){return t===e}function pR(t){return t.slice(0,t.length-1)}function iV(t){return t[t.length-1]}function nV(t,e){let A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:zpA;if(t.length{e[A]=t[A]}),e}if(Lo(t)){let e=sA({},t);return Object.getOwnPropertySymbols(t).forEach(A=>{e[A]=t[A]}),e}return t}function yR(t,e,A){if(t[e]===A)return t;let i=wR(t);return i[e]=A,i}function Ye(t,e){let A=t,i=0;for(;i3&&arguments[3]!==void 0?arguments[3]:!1;if(e.length===0)return A;let n=e[0],o=Bs(t?t[n]:void 0,e.slice(1),A,i);if(Lo(t)||wo(t))return yR(t,n,o);if(i){let r=PpA.test(n)?[]:{};return r[n]=o,r}throw new Error("Path does not exist")}var PpA=/^\d+$/;function $h(t,e,A){if(e.length===0)return A(t);if(!DR(t))throw new Error("Path doesn't exist");let i=e[0],n=$h(t[i],e.slice(1),A);return yR(t,i,n)}function lC(t,e){if(e.length===0)return t;if(!DR(t))throw new Error("Path does not exist");if(e.length===1){let n=e[0];if(!(n in t))return t;let o=wR(t);return wo(o)&&o.splice(Number.parseInt(n),1),Lo(o)&&delete o[n],o}let A=e[0],i=lC(t[A],e.slice(1));return yR(t,A,i)}function A4(t,e,A){let i=e.slice(0,e.length-1),n=e[e.length-1];return $h(t,i,o=>{if(!Array.isArray(o))throw new TypeError(`Array expected at path ${JSON.stringify(i)}`);let r=wR(o);return r.splice(Number.parseInt(n),0,A),r})}function As(t,e){return t===void 0?!1:e.length===0?!0:t===null?!1:As(t[e[0]],e.slice(1))}function xs(t){let e=t.split("/");return e.shift(),e.map(A=>A.replace(/~1/g,"/").replace(/~0/g,"~"))}function Ct(t){return t.map(oV).join("")}function oV(t){return`/${String(t).replace(/~/g,"~0").replace(/\//g,"~1")}`}function e4(t,e){return t+oV(e)}function Ma(t,e,A){let i=t;for(let n=0;n{let s,a=ba(o,r.path);if(r.op==="add")s=aV(o,a);else if(r.op==="remove")s=sV(o,a);else if(r.op==="replace")s=rV(o,a);else if(r.op==="copy")s=e6A(o,a);else if(r.op==="move")s=t6A(o,a,t4(r.from));else if(r.op==="test")s=[];else throw new Error(`Unknown JSONPatch operation ${JSON.stringify(r)}`);let c;if(A?.before){let g=A.before(o,r,s);if(g?.revertOperations&&(s=g.revertOperations),g?.document&&(c=g.document),g?.json)throw new Error('Deprecation warning: returned object property ".json" has been renamed to ".document"')}if(i=s.concat(i),c!==void 0)return{document:c}}}),i}function rV(t,e){return As(t,e)?[{op:"replace",path:Ct(e),value:Ye(t,e)}]:[]}function sV(t,e){return[{op:"add",path:Ct(e),value:Ye(t,e)}]}function aV(t,e){return WB(t,e)||!As(t,e)?[{op:"remove",path:Ct(e)}]:rV(t,e)}function e6A(t,e){return aV(t,e)}function t6A(t,e,A){if(e.length="0"&&t<="9"}function IV(t){return t>=" "}function i4(t){return`,:[]/{}() +`.includes(t)}function bR(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="_"||t==="$"}function kR(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="_"||t==="$"||t>="0"&&t<="9"}var SR=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,RR=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function LR(t){return`,[]/{} -+`.includes(t)}function xR(t){return n4(t)||l6A.test(t)}var l6A=/^[[{\w-]$/;function CV(t){return t===` -`||t==="\r"||t===" "||t==="\b"||t==="\f"}function n1(t,e){let A=t.charCodeAt(e);return A===32||A===10||A===9||A===13}function dV(t,e){let A=t.charCodeAt(e);return A===32||A===9||A===13}function BV(t,e){let A=t.charCodeAt(e);return A===160||A>=8192&&A<=8202||A===8239||A===8287||A===12288}function n4(t){return NR(t)||A5(t)}function NR(t){return t==='"'||t==="\u201C"||t==="\u201D"}function FR(t){return t==='"'}function A5(t){return t==="'"||t==="\u2018"||t==="\u2019"||t==="`"||t==="\xB4"}function _R(t){return t==="'"}function XB(t,e){let A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=t.lastIndexOf(e);return i!==-1?t.substring(0,i)+(A?"":t.substring(i+1)):t}function Kc(t,e){let A=t.length;if(!n1(t,A-1))return t+e;for(;n1(t,A-1);)A--;return t.substring(0,A)+e+t.substring(A)}function EV(t,e,A){return t.substring(0,e)+t.substring(e+A)}function QV(t){return/[,\n][ \t\r]*$/.test(t)}var I6A={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},C6A={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` -`,r:"\r",t:" "};function Uc(t){let e=0,A="";c(["```","[```","{```"]),o()||fA(),c(["```","```]","```}"]);let n=I(",");for(n&&r(),xR(t[e])&&QV(A)?(n||(A=Kc(A,",")),h()):n&&(A=XB(A,","));t[e]==="}"||t[e]==="]";)e++,r();if(e>=t.length)return A;dA();function o(){r();let nA=E()||u()||w()||R()||D()||J(!1)||z();return r(),nA}function r(){let nA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,lA=e,wA=s(nA);do wA=a(),wA&&(wA=s(nA));while(wA);return e>lA}function s(nA){let lA=nA?n1:dV,wA="";for(;;)if(lA(t,e))wA+=t[e],e++;else if(BV(t,e))wA+=" ",e++;else break;return wA.length>0?(A+=wA,!0):!1}function a(){if(t[e]==="/"&&t[e+1]==="*"){for(;e=8192&&A<=8202||A===8239||A===8287||A===12288}function n4(t){return NR(t)||A5(t)}function NR(t){return t==='"'||t==="\u201C"||t==="\u201D"}function FR(t){return t==='"'}function A5(t){return t==="'"||t==="\u2018"||t==="\u2019"||t==="`"||t==="\xB4"}function _R(t){return t==="'"}function XB(t,e){let A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=t.lastIndexOf(e);return i!==-1?t.substring(0,i)+(A?"":t.substring(i+1)):t}function Kc(t,e){let A=t.length;if(!n1(t,A-1))return t+e;for(;n1(t,A-1);)A--;return t.substring(0,A)+e+t.substring(A)}function EV(t,e,A){return t.substring(0,e)+t.substring(e+A)}function QV(t){return/[,\n][ \t\r]*$/.test(t)}var d6A={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},B6A={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` +`,r:"\r",t:" "};function Uc(t){let e=0,A="";c(["```","[```","{```"]),o()||fA(),c(["```","```]","```}"]);let n=I(",");for(n&&r(),xR(t[e])&&QV(A)?(n||(A=Kc(A,",")),h()):n&&(A=XB(A,","));t[e]==="}"||t[e]==="]";)e++,r();if(e>=t.length)return A;dA();function o(){r();let nA=E()||u()||w()||R()||D()||J(!1)||z();return r(),nA}function r(){let nA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,lA=e,wA=s(nA);do wA=a(),wA&&(wA=s(nA));while(wA);return e>lA}function s(nA){let lA=nA?n1:dV,wA="";for(;;)if(lA(t,e))wA+=t[e],e++;else if(BV(t,e))wA+=" ",e++;else break;return wA.length>0?(A+=wA,!0):!1}function a(){if(t[e]==="/"&&t[e+1]==="*"){for(;e=t.length;VA||(xR(t[e])||ie?A=Kc(A,":"):IA()),o()||(VA||ie?A+="null":IA())}return t[e]==="}"?(A+="}",e++):A=Kc(A,"}"),!0}return!1}function u(){if(t[e]==="["){A+="[",e++,r(),C(",")&&r();let nA=!0;for(;e0&&arguments[0]!==void 0?arguments[0]:!1,lA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,wA=t[e]==="\\";if(wA&&(e++,wA=!0),n4(t[e])){let VA=FR(t[e])?FR:_R(t[e])?_R:A5(t[e])?A5:NR,ie=e,UA=A.length,BA='"';for(e++;;){if(e>=t.length){let JA=K(e-1);return!nA&&i4(t.charAt(JA))?(e=ie,A=A.substring(0,UA),w(!0)):(BA=Kc(BA,'"'),A+=BA,!0)}if(e===lA)return BA=Kc(BA,'"'),A+=BA,!0;if(VA(t[e])){let JA=e,Xe=BA.length;if(BA+='"',e++,A+=BA,r(!1),nA||e>=t.length||i4(t[e])||n4(t[e])||o1(t[e]))return x(),!0;let We=K(JA-1),KA=t.charAt(We);if(KA===",")return e=ie,A=A.substring(0,UA),w(!1,We);if(i4(KA))return e=ie,A=A.substring(0,UA),w(!0);A=A.substring(0,UA),e=JA+1,BA=`${BA.substring(0,Xe)}\\${BA.substring(Xe)}`}else if(nA&&LR(t[e])){if(t[e-1]===":"&&SR.test(t.substring(ie+1,e+2)))for(;e=t.length?e=t.length:SA()}else BA+=JA,e+=2}else{let JA=t.charAt(e);JA==='"'&&t[e-1]!=="\\"?(BA+=`\\${JA}`,e++):CV(JA)?(BA+=I6A[JA],e++):(IV(JA)||j(JA),BA+=JA,e++)}wA&&d()}}return!1}function x(){let nA=!1;for(r();t[e]==="+";){nA=!0,e++,r(),A=XB(A,'"',!0);let lA=A.length;w()?A=EV(A,lA,1):A=Kc(A,'"')}return nA}function R(){let nA=e;if(t[e]==="-"){if(e++,O())return V(nA),!0;if(!o1(t[e]))return e=nA,!1}for(;o1(t[e]);)e++;if(t[e]==="."){if(e++,O())return V(nA),!0;if(!o1(t[e]))return e=nA,!1;for(;o1(t[e]);)e++}if(t[e]==="e"||t[e]==="E"){if(e++,(t[e]==="-"||t[e]==="+")&&e++,O())return V(nA),!0;if(!o1(t[e]))return e=nA,!1;for(;o1(t[e]);)e++}if(!O())return e=nA,!1;if(e>nA){let lA=t.slice(nA,e),wA=/^0\d/.test(lA);return A+=wA?`"${lA}"`:lA,!0}return!1}function D(){return G("true","true")||G("false","false")||G("null","null")||G("True","true")||G("False","false")||G("None","null")}function G(nA,lA){return t.slice(e,e+nA.length)===nA?(A+=lA,e+=nA.length,!0):!1}function J(nA){let lA=e;if(bR(t[e])){for(;elA){for(;n1(t,e-1)&&e>0;)e--;let wA=t.slice(lA,e);return A+=wA==="undefined"?"null":JSON.stringify(wA),t[e]==='"'&&e++,!0}}function z(){if(t[e]==="/"){let nA=e;for(e++;e0&&n1(t,lA);)lA--;return lA}function O(){return e>=t.length||i4(t[e])||n1(t,e)}function V(nA){A+=`${t.slice(nA,e)}0`}function j(nA){throw new R0(`Invalid character ${JSON.stringify(nA)}`,e)}function dA(){throw new R0(`Unexpected character ${JSON.stringify(t[e])}`,e)}function fA(){throw new R0("Unexpected end of json string",t.length)}function EA(){throw new R0("Object key expected",e)}function IA(){throw new R0("Colon expected",e)}function SA(){let nA=t.slice(e,e+6);throw new R0(`Invalid unicode character "${nA}"`,e)}}function d6A(t,e){return t[e]==="*"&&t[e+1]==="/"}var B6A=typeof global=="object"&&global&&global.Object===Object&&global,e5=B6A;var E6A=typeof self=="object"&&self&&self.Object===Object&&self,Q6A=e5||E6A||Function("return this")(),Er=Q6A;var u6A=Er.Symbol,es=u6A;var uV=Object.prototype,h6A=uV.hasOwnProperty,f6A=uV.toString,o4=es?es.toStringTag:void 0;function m6A(t){var e=h6A.call(t,o4),A=t[o4];try{t[o4]=void 0;var i=!0}catch{}var n=f6A.call(t);return i&&(e?t[o4]=A:delete t[o4]),n}var hV=m6A;var p6A=Object.prototype,D6A=p6A.toString;function w6A(t){return D6A.call(t)}var fV=w6A;var y6A="[object Null]",v6A="[object Undefined]",mV=es?es.toStringTag:void 0;function M6A(t){return t==null?t===void 0?v6A:y6A:mV&&mV in Object(t)?hV(t):fV(t)}var Mg=M6A;function b6A(t){return t!=null&&typeof t=="object"}var Aa=b6A;var k6A="[object Symbol]";function S6A(t){return typeof t=="symbol"||Aa(t)&&Mg(t)==k6A}var cc=S6A;function R6A(t,e){for(var A=-1,i=t==null?0:t.length,n=Array(i);++A0){if(++e>=h8A)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var UV=p8A;function D8A(t){return function(){return t}}var JV=D8A;var w8A=function(){try{var t=ka(Object,"defineProperty");return t({},"",{}),t}catch{}}(),AE=w8A;var y8A=AE?function(t,e){return AE(t,"toString",{configurable:!0,enumerable:!1,value:JV(e),writable:!0})}:Ll,YV=y8A;var v8A=UV(YV),TV=v8A;function M8A(t,e){for(var A=-1,i=t==null?0:t.length;++A-1&&t%1==0&&t-1&&t%1==0&&t<=U8A}var tE=J8A;function Y8A(t){return t!=null&&tE(t.length)&&!t5(t)}var Jc=Y8A;function T8A(t,e,A){if(!Hr(A))return!1;var i=typeof e;return(i=="number"?Jc(A)&&eE(e,A.length):i=="string"&&e in A)?a1(A[e],t):!1}var s4=T8A;var H8A=Object.prototype;function O8A(t){var e=t&&t.constructor,A=typeof e=="function"&&e.prototype||H8A;return t===A}var g1=O8A;function z8A(t,e){for(var A=-1,i=Array(t);++A-1}var IZ=lDA;function IDA(t,e){var A=this.__data__,i=C1(A,t);return i<0?(++this.size,A.push([t,e])):A[i][1]=e,this}var CZ=IDA;function sE(t){var e=-1,A=t==null?0:t.length;for(this.clear();++e0&&A(s)?e>1?vZ(s,e-1,A,i,n):gE(n,s):i||(n[n.length]=s)}return n}var MZ=vZ;var FDA=a5(Object.getPrototypeOf,Object),I5=FDA;function _DA(t,e,A){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),A=A>n?n:A,A<0&&(A+=n),n=e>A?0:A-e>>>0,e>>>=0;for(var o=Array(n);++is))return!1;var c=o.get(t),g=o.get(e);if(c&&g)return c==e&&g==t;var I=-1,C=!0,d=A&FyA?new QW:void 0;for(o.set(t,e),o.set(e,t);++I=e||J<0||I&&z>=o}function h(){var G=R5();if(u(G))return w(G);s=setTimeout(h,E(G))}function w(G){return s=void 0,C&&i?d(G):(i=n=void 0,r)}function x(){s!==void 0&&clearTimeout(s),c=0,i=a=n=s=void 0}function R(){return s===void 0?r:w(R5())}function D(){var G=R5(),J=u(G);if(i=arguments,n=this,a=G,J){if(s===void 0)return B(a);if(I)return clearTimeout(s),s=setTimeout(h,e),d(a)}return s===void 0&&(s=setTimeout(h,e)),r}return D.cancel=x,D.flush=R,D}var EE=F7A;function _7A(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var li=_7A;function G7A(t){return typeof t=="function"?t:Ll}var L5=G7A;function K7A(t,e){for(var A=t==null?0:t.length;A--&&e(t[A],A,t)!==!1;);return t}var HW=K7A;var U7A=v5(!0),OW=U7A;function J7A(t,e){return t&&OW(t,e,Yc)}var zW=J7A;var Y7A=b5(zW,!0),PW=Y7A;function T7A(t,e){var A=Fn(t)?HW:PW;return A(t,L5(e))}var HR=T7A;function H7A(t){return t&&t.length?t[0]:void 0}var Tc=H7A;function O7A(t,e){var A=-1,i=Jc(t)?Array(t.length):[];return k5(t,function(n,o,r){i[++A]=e(n,o,r)}),i}var x5=O7A;function z7A(t,e){var A=Fn(t)?r1:x5;return A(t,xl(e,3))}var OR=z7A;var P7A=Object.prototype,j7A=P7A.hasOwnProperty,q7A=S5(function(t,e,A){j7A.call(t,A)?t[A].push(e):s1(t,A,[e])}),zR=q7A;function V7A(t){var e=t==null?0:t.length;return e?bZ(t,0,-1):[]}var yi=V7A;var Z7A="[object Map]",W7A="[object Set]",X7A=Object.prototype,$7A=X7A.hasOwnProperty;function AvA(t){if(t==null)return!0;if(Jc(t)&&(Fn(t)||typeof t=="string"||typeof t.splice=="function"||x0(t)||iE(t)||l1(t)))return!t.length;var e=bg(t);if(e==Z7A||e==W7A)return!t.size;if(g1(t))return!c5(t).length;for(var A in t)if($7A.call(t,A))return!1;return!0}var Gi=AvA;function evA(t,e){return BE(t,e)}var ri=evA;function tvA(t,e){return te||o&&r&&a&&!s&&!c||i&&r&&a||!A&&a||!n)return 1;if(!i&&!o&&!c&&t=s)return a;var c=A[i];return a*(c=="desc"?-1:1)}}return t.index-e.index}var WW=avA;function cvA(t,e,A){e.length?e=r1(e,function(o){return Fn(o)?function(r){return cE(r,o.length===1?o[0]:o)}:o}):e=[Ll];var i=-1;e=r1(e,I1(xl));var n=x5(t,function(o,r,s){var a=r1(e,function(c){return c(o)});return{criteria:a,index:++i,value:o}});return VW(n,function(o,r){return WW(o,r,A)})}var XW=cvA;var gvA=S5(function(t,e,A){t[A?0:1].push(e)},function(){return[[],[]]}),jR=gvA;var lvA=Math.ceil,IvA=Math.max;function CvA(t,e,A,i){for(var n=-1,o=IvA(lvA((e-t)/(A||1)),0),r=Array(o);o--;)r[i?o:++n]=t,t+=A;return r}var $W=CvA;function dvA(t){return function(e,A,i){return i&&typeof i!="number"&&s4(e,A,i)&&(A=i=void 0),e=$B(e),A===void 0?(A=e,e=0):A=$B(A),i=i===void 0?e1&&s4(t,e[0],e[1])?e=[]:A>2&&s4(e[0],e[1],e[2])&&(e=[e[0]]),XW(t,MZ(e,1),[])}),qR=EvA;var QvA=9007199254740991,VR=4294967295,uvA=Math.min;function hvA(t,e){if(t=SV(t),t<1||t>QvA)return[];var A=VR,i=uvA(t,VR);e=L5(e),t-=VR;for(var n=r5(i,e);++AArray.isArray(t),pvA=t=>t!==null&&typeof t=="object"&&!f1(t),DvA=t=>typeof t=="string",dC=(t,e)=>t===e?!0:t!==null&&e!==null&&typeof t=="object"&&typeof e=="object"&&Object.keys(t).length===Object.keys(e).length&&Object.entries(t).every(([A,i])=>dC(i,e[A]));function mr(t){return(...e)=>{let A=e.map(o=>Or(o)),i=A[0],n=A[1];return A.length===1?o=>t(i(o)):A.length===2?o=>t(i(o),n(o)):o=>t(...A.map(r=>r(o)))}}var C4={boolean:0,number:1,string:2},eX=3,iX=(t,e)=>typeof t==typeof e&&typeof t in C4?t>e:!1,wvA=(t,e)=>dC(t,e)||iX(t,e),nX=(t,e)=>typeof t==typeof e&&typeof t in C4?tdC(t,e)||nX(t,e),I4={pipe:(...t)=>{let e=t.map(A=>Or(A));return A=>e.reduce((i,n)=>n(i),A)},object:t=>{let e=Object.keys(t).map(A=>[A,Or(t[A])]);return A=>{let i={};for(let[n,o]of e)i[n]=o(A);return i}},array:(...t)=>{let e=t.map(A=>Or(A));return A=>e.map(i=>i(A))},get:(...t)=>{if(t.length===0)return e=>e??null;if(t.length===1){let e=t[0];return A=>A?.[e]??null}return e=>{let A=e;for(let i of t)A=A?.[i];return A??null}},map:t=>{let e=Or(t);return A=>A.map(e)},mapObject:t=>{let e=Or(t);return A=>{let i={};for(let n of Object.keys(A)){let o=e({key:n,value:A[n]});i[o.key]=o.value}return i}},mapKeys:t=>{let e=Or(t);return A=>{let i={};for(let n of Object.keys(A)){let o=e(n);i[o]=A[n]}return i}},mapValues:t=>{let e=Or(t);return A=>{let i={};for(let n of Object.keys(A))i[n]=e(A[n]);return i}},filter:t=>{let e=Or(t);return A=>A.filter(i=>tX(e(i)))},sort:(t=["get"],e)=>{let A=Or(t),i=e==="desc"?-1:1;function n(o,r){let s=A(o),a=A(r);if(typeof s!=typeof a){let c=C4[typeof s]??eX,g=C4[typeof a]??eX;return c>g?i:ca?i:so.slice().sort(n)},reverse:()=>t=>t.toReversed(),pick:(...t)=>{let e=t.map(([i,...n])=>[n[n.length-1],I4.get(...n)]),A=(i,n)=>{let o={};for(let[r,s]of n)o[r]=s(i);return o};return i=>f1(i)?i.map(n=>A(n,e)):A(i,e)},groupBy:t=>{let e=Or(t);return A=>{let i={};for(let n of A){let o=e(n);i[o]?i[o].push(n):i[o]=[n]}return i}},keyBy:t=>{let e=Or(t);return A=>{let i={};for(let n of A){let o=e(n);o in i||(i[o]=n)}return i}},flatten:()=>t=>t.flat(),join:(t="")=>e=>e.join(t),split:mr((t,e)=>e!==void 0?t.split(e):t.trim().split(/\s+/)),substring:mr((t,e,A)=>t.slice(Math.max(e,0),A)),uniq:()=>t=>{let e=[];for(let A of t)e.findIndex(i=>dC(i,A))===-1&&e.push(A);return e},uniqBy:t=>e=>Object.values(I4.keyBy(t)(e)),limit:t=>e=>e.slice(0,Math.max(t,0)),size:()=>t=>t.length,keys:()=>Object.keys,values:()=>Object.values,prod:()=>t=>l4(t,(e,A)=>e*A),sum:()=>t=>f1(t)?t.reduce((e,A)=>e+A,0):WR(),average:()=>t=>f1(t)?t.length>0?t.reduce((e,A)=>e+A)/t.length:null:WR(),min:()=>t=>l4(t,(e,A)=>Math.min(e,A)),max:()=>t=>l4(t,(e,A)=>Math.max(e,A)),and:mr((...t)=>l4(t,(e,A)=>!!(e&&A))),or:mr((...t)=>l4(t,(e,A)=>!!(e||A))),not:mr(t=>!t),exists:t=>{let e=t.slice(1),A=e.pop(),i=I4.get(...e);return n=>{let o=i(n);return!!o&&Object.hasOwnProperty.call(o,A)}},if:(t,e,A)=>{let i=Or(t),n=Or(e),o=Or(A);return r=>tX(i(r))?n(r):o(r)},in:(t,e)=>{let A=Or(t),i=Or(e);return n=>{let o=A(n);return i(n).findIndex(r=>dC(r,o))!==-1}},"not in":(t,e)=>{let A=I4.in(t,e);return i=>!A(i)},regex:(t,e,A)=>{let i=new RegExp(e,A),n=Or(t);return o=>i.test(n(o))},eq:mr(dC),gt:mr(iX),gte:mr(wvA),lt:mr(nX),lte:mr(yvA),ne:mr((t,e)=>!dC(t,e)),add:mr((t,e)=>t+e),subtract:mr((t,e)=>t-e),multiply:mr((t,e)=>t*e),divide:mr((t,e)=>t/e),mod:mr((t,e)=>t%e),pow:mr((t,e)=>t**e),abs:mr(Math.abs),round:mr((t,e=0)=>+`${Math.round(+`${t}e${e}`)}e${-e}`),number:mr(t=>{let e=Number(t);return Number.isNaN(Number(t))?null:e}),string:mr(String)},tX=t=>t!==null&&t!==0&&t!==!1,l4=(t,e)=>(f1(t)||WR(),t.length===0?null:t.reduce(e)),WR=()=>{XR("Array expected")},XR=t=>{throw new TypeError(t)},F5=[];function Or(t,e){F5.unshift(sA(sA(sA({},I4),F5[0]),e?.functions));try{let A=f1(t)?vvA(t,F5[0]):pvA(t)?XR(`Function notation ["object", {...}] expected but got ${JSON.stringify(t)}`):()=>t;return i=>{try{return A(i)}catch(n){throw n.jsonquery=[{data:i,query:t},...n.jsonquery??[]],n}}}finally{F5.shift()}}function vvA(t,e){let[A,...i]=t,n=e[A];return n||XR(`Unknown function '${A}'`),n(...i)}var oX=[{pow:"^"},{multiply:"*",divide:"/",mod:"%"},{add:"+",subtract:"-"},{gt:">",gte:">=",lt:"<",lte:"<=",in:"in","not in":"not in"},{eq:"==",ne:"!="},{and:"and"},{or:"or"},{pipe:"|"}],MvA=["|","and","or"],rX=["|","and","or","*","/","%","+","-"];function sX(t,e){if(!f1(e))throw new Error("Invalid custom operators");return e.reduce(bvA,t)}function bvA(t,{name:e,op:A,at:i,after:n,before:o}){if(i)return t.map(a=>Object.values(a).includes(i)?Fe(sA({},a),{[e]:A}):a);let r=n??o,s=t.findIndex(a=>Object.values(a).includes(r));if(s!==-1)return t.toSpliced(s+(n?1:0),0,{[e]:A});throw new Error("Invalid custom operator")}var kvA=/^[a-zA-Z_$][a-zA-Z\d_$]*$/,SvA=/^[a-zA-Z_$][a-zA-Z\d_$]*/,RvA=/^"(?:[^"\\]|\\.)*"/,LvA=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/,xvA=/^(0|[1-9][0-9]*)/,NvA=/^(true|false|null)/,FvA=/^[ \n\t\r]+/;function $R(t,e){let A=e?.operators??[],i=sX(oX,A),n=Object.assign({},...i),o=MvA.concat(A.filter(O=>O.vararg).map(O=>O.op)),r=rX.concat(A.filter(O=>O.leftAssociative).map(O=>O.op)),s=(O=i.length-1)=>{let V=i[O];if(!V)return c();let j=t[z]==="(",dA=s(O-1);for(;;){D();let fA=z,EA=a(V);if(!EA)break;let IA=s(O-1),SA=dA[0],nA=EA===SA&&!j;if(nA&&!r.includes(n[EA])){z=fA;break}dA=nA&&o.includes(n[EA])?[...dA,IA]:[EA,dA,IA]}return dA},a=O=>{let V=Object.keys(O).sort((j,dA)=>dA.length-j.length);for(let j of V){let dA=O[j];if(t.substring(z,z+dA.length)===dA)return z+=dA.length,D(),j}},c=()=>{if(D(),t[z]==="("){z++;let O=s();return G(")"),O}return g()},g=()=>{if(t[z]==="."){let O=[];for(;t[z]===".";)z++,O.push(B()??E()??h()??J("Property expected"));return["get",...O]}return I()},I=()=>{let O=z,V=E();if(D(),!V||t[z]!=="(")return z=O,C();z++,D();let j=t[z]!==")"?[s()]:[];for(;z{if(t[z]==="{"){z++,D();let O={},V=!0;for(;z{if(t[z]==="["){z++,D();let O=[],V=!0;for(;zR(RvA,JSON.parse),E=()=>R(SvA,O=>O),u=()=>R(LvA,JSON.parse),h=()=>R(xvA,JSON.parse),w=()=>{let O=R(NvA,JSON.parse);if(O!==void 0)return O;J("Value expected")},x=()=>{D(),z{let j=t.substring(z).match(O);if(j)return z+=j[0].length,V(j[0])},D=()=>R(FvA,O=>O),G=O=>{t[z]!==O&&J(`Character '${O}' expected`),z++},J=(O,V=z)=>{throw new SyntaxError(`${O} (pos: ${V})`)},z=0,K=s();return x(),K}var _vA=40,GvA=" ",aX=(t,e)=>{let A=e?.indentation??GvA,i=e?.operators??[],n=sX(oX,i),o=Object.assign({},...n),r=rX.concat(i.filter(d=>d.leftAssociative).map(d=>d.op)),s=(d,B,E=!1)=>f1(d)?a(d,B,E):JSON.stringify(d),a=(d,B,E)=>{let[u,...h]=d;if(u==="get"&&h.length>0)return g(h);if(u==="object")return c(h[0],B);if(u==="array"){let D=h.map(G=>s(G,B));return C(D,["[",", ","]"],[`[ +]`}function w(){let nA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,lA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,wA=t[e]==="\\";if(wA&&(e++,wA=!0),n4(t[e])){let VA=FR(t[e])?FR:_R(t[e])?_R:A5(t[e])?A5:NR,ie=e,UA=A.length,BA='"';for(e++;;){if(e>=t.length){let JA=K(e-1);return!nA&&i4(t.charAt(JA))?(e=ie,A=A.substring(0,UA),w(!0)):(BA=Kc(BA,'"'),A+=BA,!0)}if(e===lA)return BA=Kc(BA,'"'),A+=BA,!0;if(VA(t[e])){let JA=e,Xe=BA.length;if(BA+='"',e++,A+=BA,r(!1),nA||e>=t.length||i4(t[e])||n4(t[e])||o1(t[e]))return x(),!0;let We=K(JA-1),KA=t.charAt(We);if(KA===",")return e=ie,A=A.substring(0,UA),w(!1,We);if(i4(KA))return e=ie,A=A.substring(0,UA),w(!0);A=A.substring(0,UA),e=JA+1,BA=`${BA.substring(0,Xe)}\\${BA.substring(Xe)}`}else if(nA&&LR(t[e])){if(t[e-1]===":"&&SR.test(t.substring(ie+1,e+2)))for(;e=t.length?e=t.length:SA()}else BA+=JA,e+=2}else{let JA=t.charAt(e);JA==='"'&&t[e-1]!=="\\"?(BA+=`\\${JA}`,e++):CV(JA)?(BA+=d6A[JA],e++):(IV(JA)||j(JA),BA+=JA,e++)}wA&&d()}}return!1}function x(){let nA=!1;for(r();t[e]==="+";){nA=!0,e++,r(),A=XB(A,'"',!0);let lA=A.length;w()?A=EV(A,lA,1):A=Kc(A,'"')}return nA}function R(){let nA=e;if(t[e]==="-"){if(e++,O())return V(nA),!0;if(!o1(t[e]))return e=nA,!1}for(;o1(t[e]);)e++;if(t[e]==="."){if(e++,O())return V(nA),!0;if(!o1(t[e]))return e=nA,!1;for(;o1(t[e]);)e++}if(t[e]==="e"||t[e]==="E"){if(e++,(t[e]==="-"||t[e]==="+")&&e++,O())return V(nA),!0;if(!o1(t[e]))return e=nA,!1;for(;o1(t[e]);)e++}if(!O())return e=nA,!1;if(e>nA){let lA=t.slice(nA,e),wA=/^0\d/.test(lA);return A+=wA?`"${lA}"`:lA,!0}return!1}function D(){return G("true","true")||G("false","false")||G("null","null")||G("True","true")||G("False","false")||G("None","null")}function G(nA,lA){return t.slice(e,e+nA.length)===nA?(A+=lA,e+=nA.length,!0):!1}function J(nA){let lA=e;if(bR(t[e])){for(;elA){for(;n1(t,e-1)&&e>0;)e--;let wA=t.slice(lA,e);return A+=wA==="undefined"?"null":JSON.stringify(wA),t[e]==='"'&&e++,!0}}function z(){if(t[e]==="/"){let nA=e;for(e++;e0&&n1(t,lA);)lA--;return lA}function O(){return e>=t.length||i4(t[e])||n1(t,e)}function V(nA){A+=`${t.slice(nA,e)}0`}function j(nA){throw new R0(`Invalid character ${JSON.stringify(nA)}`,e)}function dA(){throw new R0(`Unexpected character ${JSON.stringify(t[e])}`,e)}function fA(){throw new R0("Unexpected end of json string",t.length)}function EA(){throw new R0("Object key expected",e)}function IA(){throw new R0("Colon expected",e)}function SA(){let nA=t.slice(e,e+6);throw new R0(`Invalid unicode character "${nA}"`,e)}}function E6A(t,e){return t[e]==="*"&&t[e+1]==="/"}var Q6A=typeof global=="object"&&global&&global.Object===Object&&global,e5=Q6A;var u6A=typeof self=="object"&&self&&self.Object===Object&&self,h6A=e5||u6A||Function("return this")(),Er=h6A;var f6A=Er.Symbol,es=f6A;var uV=Object.prototype,m6A=uV.hasOwnProperty,p6A=uV.toString,o4=es?es.toStringTag:void 0;function D6A(t){var e=m6A.call(t,o4),A=t[o4];try{t[o4]=void 0;var i=!0}catch{}var n=p6A.call(t);return i&&(e?t[o4]=A:delete t[o4]),n}var hV=D6A;var w6A=Object.prototype,y6A=w6A.toString;function v6A(t){return y6A.call(t)}var fV=v6A;var M6A="[object Null]",b6A="[object Undefined]",mV=es?es.toStringTag:void 0;function k6A(t){return t==null?t===void 0?b6A:M6A:mV&&mV in Object(t)?hV(t):fV(t)}var Mg=k6A;function S6A(t){return t!=null&&typeof t=="object"}var Aa=S6A;var R6A="[object Symbol]";function L6A(t){return typeof t=="symbol"||Aa(t)&&Mg(t)==R6A}var cc=L6A;function x6A(t,e){for(var A=-1,i=t==null?0:t.length,n=Array(i);++A0){if(++e>=m8A)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var UV=w8A;function y8A(t){return function(){return t}}var JV=y8A;var v8A=function(){try{var t=ka(Object,"defineProperty");return t({},"",{}),t}catch{}}(),AE=v8A;var M8A=AE?function(t,e){return AE(t,"toString",{configurable:!0,enumerable:!1,value:JV(e),writable:!0})}:Ll,YV=M8A;var b8A=UV(YV),TV=b8A;function k8A(t,e){for(var A=-1,i=t==null?0:t.length;++A-1&&t%1==0&&t-1&&t%1==0&&t<=Y8A}var tE=T8A;function H8A(t){return t!=null&&tE(t.length)&&!t5(t)}var Jc=H8A;function O8A(t,e,A){if(!Hr(A))return!1;var i=typeof e;return(i=="number"?Jc(A)&&eE(e,A.length):i=="string"&&e in A)?a1(A[e],t):!1}var s4=O8A;var z8A=Object.prototype;function P8A(t){var e=t&&t.constructor,A=typeof e=="function"&&e.prototype||z8A;return t===A}var g1=P8A;function j8A(t,e){for(var A=-1,i=Array(t);++A-1}var IZ=CDA;function dDA(t,e){var A=this.__data__,i=C1(A,t);return i<0?(++this.size,A.push([t,e])):A[i][1]=e,this}var CZ=dDA;function sE(t){var e=-1,A=t==null?0:t.length;for(this.clear();++e0&&A(s)?e>1?vZ(s,e-1,A,i,n):gE(n,s):i||(n[n.length]=s)}return n}var MZ=vZ;var GDA=a5(Object.getPrototypeOf,Object),I5=GDA;function KDA(t,e,A){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),A=A>n?n:A,A<0&&(A+=n),n=e>A?0:A-e>>>0,e>>>=0;for(var o=Array(n);++is))return!1;var c=o.get(t),g=o.get(e);if(c&&g)return c==e&&g==t;var I=-1,C=!0,d=A&GyA?new QW:void 0;for(o.set(t,e),o.set(e,t);++I=e||J<0||I&&z>=o}function h(){var G=R5();if(u(G))return w(G);s=setTimeout(h,E(G))}function w(G){return s=void 0,C&&i?d(G):(i=n=void 0,r)}function x(){s!==void 0&&clearTimeout(s),c=0,i=a=n=s=void 0}function R(){return s===void 0?r:w(R5())}function D(){var G=R5(),J=u(G);if(i=arguments,n=this,a=G,J){if(s===void 0)return B(a);if(I)return clearTimeout(s),s=setTimeout(h,e),d(a)}return s===void 0&&(s=setTimeout(h,e)),r}return D.cancel=x,D.flush=R,D}var EE=G7A;function K7A(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var li=K7A;function U7A(t){return typeof t=="function"?t:Ll}var L5=U7A;function J7A(t,e){for(var A=t==null?0:t.length;A--&&e(t[A],A,t)!==!1;);return t}var HW=J7A;var Y7A=v5(!0),OW=Y7A;function T7A(t,e){return t&&OW(t,e,Yc)}var zW=T7A;var H7A=b5(zW,!0),PW=H7A;function O7A(t,e){var A=Fn(t)?HW:PW;return A(t,L5(e))}var HR=O7A;function z7A(t){return t&&t.length?t[0]:void 0}var Tc=z7A;function P7A(t,e){var A=-1,i=Jc(t)?Array(t.length):[];return k5(t,function(n,o,r){i[++A]=e(n,o,r)}),i}var x5=P7A;function j7A(t,e){var A=Fn(t)?r1:x5;return A(t,xl(e,3))}var OR=j7A;var q7A=Object.prototype,V7A=q7A.hasOwnProperty,Z7A=S5(function(t,e,A){V7A.call(t,A)?t[A].push(e):s1(t,A,[e])}),zR=Z7A;function W7A(t){var e=t==null?0:t.length;return e?bZ(t,0,-1):[]}var yi=W7A;var X7A="[object Map]",$7A="[object Set]",AvA=Object.prototype,evA=AvA.hasOwnProperty;function tvA(t){if(t==null)return!0;if(Jc(t)&&(Fn(t)||typeof t=="string"||typeof t.splice=="function"||x0(t)||iE(t)||l1(t)))return!t.length;var e=bg(t);if(e==X7A||e==$7A)return!t.size;if(g1(t))return!c5(t).length;for(var A in t)if(evA.call(t,A))return!1;return!0}var Gi=tvA;function ivA(t,e){return BE(t,e)}var ri=ivA;function nvA(t,e){return te||o&&r&&a&&!s&&!c||i&&r&&a||!A&&a||!n)return 1;if(!i&&!o&&!c&&t=s)return a;var c=A[i];return a*(c=="desc"?-1:1)}}return t.index-e.index}var WW=gvA;function lvA(t,e,A){e.length?e=r1(e,function(o){return Fn(o)?function(r){return cE(r,o.length===1?o[0]:o)}:o}):e=[Ll];var i=-1;e=r1(e,I1(xl));var n=x5(t,function(o,r,s){var a=r1(e,function(c){return c(o)});return{criteria:a,index:++i,value:o}});return VW(n,function(o,r){return WW(o,r,A)})}var XW=lvA;var IvA=S5(function(t,e,A){t[A?0:1].push(e)},function(){return[[],[]]}),jR=IvA;var CvA=Math.ceil,dvA=Math.max;function BvA(t,e,A,i){for(var n=-1,o=dvA(CvA((e-t)/(A||1)),0),r=Array(o);o--;)r[i?o:++n]=t,t+=A;return r}var $W=BvA;function EvA(t){return function(e,A,i){return i&&typeof i!="number"&&s4(e,A,i)&&(A=i=void 0),e=$B(e),A===void 0?(A=e,e=0):A=$B(A),i=i===void 0?e1&&s4(t,e[0],e[1])?e=[]:A>2&&s4(e[0],e[1],e[2])&&(e=[e[0]]),XW(t,MZ(e,1),[])}),qR=uvA;var hvA=9007199254740991,VR=4294967295,fvA=Math.min;function mvA(t,e){if(t=SV(t),t<1||t>hvA)return[];var A=VR,i=fvA(t,VR);e=L5(e),t-=VR;for(var n=r5(i,e);++AArray.isArray(t),wvA=t=>t!==null&&typeof t=="object"&&!f1(t),yvA=t=>typeof t=="string",dC=(t,e)=>t===e?!0:t!==null&&e!==null&&typeof t=="object"&&typeof e=="object"&&Object.keys(t).length===Object.keys(e).length&&Object.entries(t).every(([A,i])=>dC(i,e[A]));function mr(t){return(...e)=>{let A=e.map(o=>Or(o)),i=A[0],n=A[1];return A.length===1?o=>t(i(o)):A.length===2?o=>t(i(o),n(o)):o=>t(...A.map(r=>r(o)))}}var C4={boolean:0,number:1,string:2},eX=3,iX=(t,e)=>typeof t==typeof e&&typeof t in C4?t>e:!1,vvA=(t,e)=>dC(t,e)||iX(t,e),nX=(t,e)=>typeof t==typeof e&&typeof t in C4?tdC(t,e)||nX(t,e),I4={pipe:(...t)=>{let e=t.map(A=>Or(A));return A=>e.reduce((i,n)=>n(i),A)},object:t=>{let e=Object.keys(t).map(A=>[A,Or(t[A])]);return A=>{let i={};for(let[n,o]of e)i[n]=o(A);return i}},array:(...t)=>{let e=t.map(A=>Or(A));return A=>e.map(i=>i(A))},get:(...t)=>{if(t.length===0)return e=>e??null;if(t.length===1){let e=t[0];return A=>A?.[e]??null}return e=>{let A=e;for(let i of t)A=A?.[i];return A??null}},map:t=>{let e=Or(t);return A=>A.map(e)},mapObject:t=>{let e=Or(t);return A=>{let i={};for(let n of Object.keys(A)){let o=e({key:n,value:A[n]});i[o.key]=o.value}return i}},mapKeys:t=>{let e=Or(t);return A=>{let i={};for(let n of Object.keys(A)){let o=e(n);i[o]=A[n]}return i}},mapValues:t=>{let e=Or(t);return A=>{let i={};for(let n of Object.keys(A))i[n]=e(A[n]);return i}},filter:t=>{let e=Or(t);return A=>A.filter(i=>tX(e(i)))},sort:(t=["get"],e)=>{let A=Or(t),i=e==="desc"?-1:1;function n(o,r){let s=A(o),a=A(r);if(typeof s!=typeof a){let c=C4[typeof s]??eX,g=C4[typeof a]??eX;return c>g?i:ca?i:so.slice().sort(n)},reverse:()=>t=>t.toReversed(),pick:(...t)=>{let e=t.map(([i,...n])=>[n[n.length-1],I4.get(...n)]),A=(i,n)=>{let o={};for(let[r,s]of n)o[r]=s(i);return o};return i=>f1(i)?i.map(n=>A(n,e)):A(i,e)},groupBy:t=>{let e=Or(t);return A=>{let i={};for(let n of A){let o=e(n);i[o]?i[o].push(n):i[o]=[n]}return i}},keyBy:t=>{let e=Or(t);return A=>{let i={};for(let n of A){let o=e(n);o in i||(i[o]=n)}return i}},flatten:()=>t=>t.flat(),join:(t="")=>e=>e.join(t),split:mr((t,e)=>e!==void 0?t.split(e):t.trim().split(/\s+/)),substring:mr((t,e,A)=>t.slice(Math.max(e,0),A)),uniq:()=>t=>{let e=[];for(let A of t)e.findIndex(i=>dC(i,A))===-1&&e.push(A);return e},uniqBy:t=>e=>Object.values(I4.keyBy(t)(e)),limit:t=>e=>e.slice(0,Math.max(t,0)),size:()=>t=>t.length,keys:()=>Object.keys,values:()=>Object.values,prod:()=>t=>l4(t,(e,A)=>e*A),sum:()=>t=>f1(t)?t.reduce((e,A)=>e+A,0):WR(),average:()=>t=>f1(t)?t.length>0?t.reduce((e,A)=>e+A)/t.length:null:WR(),min:()=>t=>l4(t,(e,A)=>Math.min(e,A)),max:()=>t=>l4(t,(e,A)=>Math.max(e,A)),and:mr((...t)=>l4(t,(e,A)=>!!(e&&A))),or:mr((...t)=>l4(t,(e,A)=>!!(e||A))),not:mr(t=>!t),exists:t=>{let e=t.slice(1),A=e.pop(),i=I4.get(...e);return n=>{let o=i(n);return!!o&&Object.hasOwnProperty.call(o,A)}},if:(t,e,A)=>{let i=Or(t),n=Or(e),o=Or(A);return r=>tX(i(r))?n(r):o(r)},in:(t,e)=>{let A=Or(t),i=Or(e);return n=>{let o=A(n);return i(n).findIndex(r=>dC(r,o))!==-1}},"not in":(t,e)=>{let A=I4.in(t,e);return i=>!A(i)},regex:(t,e,A)=>{let i=new RegExp(e,A),n=Or(t);return o=>i.test(n(o))},eq:mr(dC),gt:mr(iX),gte:mr(vvA),lt:mr(nX),lte:mr(MvA),ne:mr((t,e)=>!dC(t,e)),add:mr((t,e)=>t+e),subtract:mr((t,e)=>t-e),multiply:mr((t,e)=>t*e),divide:mr((t,e)=>t/e),mod:mr((t,e)=>t%e),pow:mr((t,e)=>t**e),abs:mr(Math.abs),round:mr((t,e=0)=>+`${Math.round(+`${t}e${e}`)}e${-e}`),number:mr(t=>{let e=Number(t);return Number.isNaN(Number(t))?null:e}),string:mr(String)},tX=t=>t!==null&&t!==0&&t!==!1,l4=(t,e)=>(f1(t)||WR(),t.length===0?null:t.reduce(e)),WR=()=>{XR("Array expected")},XR=t=>{throw new TypeError(t)},F5=[];function Or(t,e){F5.unshift(sA(sA(sA({},I4),F5[0]),e?.functions));try{let A=f1(t)?bvA(t,F5[0]):wvA(t)?XR(`Function notation ["object", {...}] expected but got ${JSON.stringify(t)}`):()=>t;return i=>{try{return A(i)}catch(n){throw n.jsonquery=[{data:i,query:t},...n.jsonquery??[]],n}}}finally{F5.shift()}}function bvA(t,e){let[A,...i]=t,n=e[A];return n||XR(`Unknown function '${A}'`),n(...i)}var oX=[{pow:"^"},{multiply:"*",divide:"/",mod:"%"},{add:"+",subtract:"-"},{gt:">",gte:">=",lt:"<",lte:"<=",in:"in","not in":"not in"},{eq:"==",ne:"!="},{and:"and"},{or:"or"},{pipe:"|"}],kvA=["|","and","or"],rX=["|","and","or","*","/","%","+","-"];function sX(t,e){if(!f1(e))throw new Error("Invalid custom operators");return e.reduce(SvA,t)}function SvA(t,{name:e,op:A,at:i,after:n,before:o}){if(i)return t.map(a=>Object.values(a).includes(i)?Fe(sA({},a),{[e]:A}):a);let r=n??o,s=t.findIndex(a=>Object.values(a).includes(r));if(s!==-1)return t.toSpliced(s+(n?1:0),0,{[e]:A});throw new Error("Invalid custom operator")}var RvA=/^[a-zA-Z_$][a-zA-Z\d_$]*$/,LvA=/^[a-zA-Z_$][a-zA-Z\d_$]*/,xvA=/^"(?:[^"\\]|\\.)*"/,NvA=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/,FvA=/^(0|[1-9][0-9]*)/,_vA=/^(true|false|null)/,GvA=/^[ \n\t\r]+/;function $R(t,e){let A=e?.operators??[],i=sX(oX,A),n=Object.assign({},...i),o=kvA.concat(A.filter(O=>O.vararg).map(O=>O.op)),r=rX.concat(A.filter(O=>O.leftAssociative).map(O=>O.op)),s=(O=i.length-1)=>{let V=i[O];if(!V)return c();let j=t[z]==="(",dA=s(O-1);for(;;){D();let fA=z,EA=a(V);if(!EA)break;let IA=s(O-1),SA=dA[0],nA=EA===SA&&!j;if(nA&&!r.includes(n[EA])){z=fA;break}dA=nA&&o.includes(n[EA])?[...dA,IA]:[EA,dA,IA]}return dA},a=O=>{let V=Object.keys(O).sort((j,dA)=>dA.length-j.length);for(let j of V){let dA=O[j];if(t.substring(z,z+dA.length)===dA)return z+=dA.length,D(),j}},c=()=>{if(D(),t[z]==="("){z++;let O=s();return G(")"),O}return g()},g=()=>{if(t[z]==="."){let O=[];for(;t[z]===".";)z++,O.push(B()??E()??h()??J("Property expected"));return["get",...O]}return I()},I=()=>{let O=z,V=E();if(D(),!V||t[z]!=="(")return z=O,C();z++,D();let j=t[z]!==")"?[s()]:[];for(;z{if(t[z]==="{"){z++,D();let O={},V=!0;for(;z{if(t[z]==="["){z++,D();let O=[],V=!0;for(;zR(xvA,JSON.parse),E=()=>R(LvA,O=>O),u=()=>R(NvA,JSON.parse),h=()=>R(FvA,JSON.parse),w=()=>{let O=R(_vA,JSON.parse);if(O!==void 0)return O;J("Value expected")},x=()=>{D(),z{let j=t.substring(z).match(O);if(j)return z+=j[0].length,V(j[0])},D=()=>R(GvA,O=>O),G=O=>{t[z]!==O&&J(`Character '${O}' expected`),z++},J=(O,V=z)=>{throw new SyntaxError(`${O} (pos: ${V})`)},z=0,K=s();return x(),K}var KvA=40,UvA=" ",aX=(t,e)=>{let A=e?.indentation??UvA,i=e?.operators??[],n=sX(oX,i),o=Object.assign({},...n),r=rX.concat(i.filter(d=>d.leftAssociative).map(d=>d.op)),s=(d,B,E=!1)=>f1(d)?a(d,B,E):JSON.stringify(d),a=(d,B,E)=>{let[u,...h]=d;if(u==="get"&&h.length>0)return g(h);if(u==="object")return c(h[0],B);if(u==="array"){let D=h.map(G=>s(G,B));return C(D,["[",", ","]"],[`[ ${B+A}`,`, ${B+A}`,` ${B}]`])}let w=o[u];if(w){let D=E?"(":"",G=E?")":"",J=h.map((z,K)=>{let O=z?.[0],V=n.findIndex(fA=>u in fA),j=n.findIndex(fA=>O in fA),dA=V0||u===O&&!r.includes(w);return s(z,B+A,dA)});return C(J,[D,` ${w} `,G],[D,` @@ -38,29 +38,29 @@ ${x}`,` ${B})`])},c=(d,B)=>{let E=B+A,u=Object.entries(d).map(([h,w])=>`${I(h)}: ${s(w,E)}`);return C(u,["{ ",", "," }"],[`{ ${E}`,`, ${E}`,` -${B}}`])},g=d=>d.map(B=>`.${I(B)}`).join(""),I=d=>kvA.test(d)?d:JSON.stringify(d),C=(d,[B,E,u],[h,w,x])=>B.length+d.reduce((R,D)=>R+D.length+E.length,0)-E.length+u.length<=(e?.maxLineLength??_vA)?B+d.join(E)+u:h+d.join(w)+x;return s(t,"")};function cX(t,e,A){return Or(DvA(e)?$R(e,A):e,A)(t)}var gX={prefix:"far",iconName:"lightbulb",icon:[384,512,[128161],"f0eb","M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7c0 0 0 0 0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5L109 384c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8c0 0 0 0 0 0s0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4c0 0 0 0 0 0s0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5l-48.6 0c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80l0-16 160 0 0 16c0 44.2-35.8 80-80 80z"]};var KvA={prefix:"far",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},AL=KvA;var eL={prefix:"far",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"]};var lX={prefix:"far",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]};var _5={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z"]};var IX={prefix:"fas",iconName:"down-left-and-up-right-to-center",icon:[512,512,["compress-alt"],"f422","M439 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39L439 7zM72 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39L73 505c-9.4 9.4-24.6 9.4-33.9 0L7 473c-9.4-9.4-9.4-24.6 0-33.9l87-87L55 313c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8z"]};var uE={prefix:"fas",iconName:"caret-right",icon:[256,512,[],"f0da","M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z"]};var tL={prefix:"fas",iconName:"paste",icon:[512,512,["file-clipboard"],"f0ea","M160 0c-23.7 0-44.4 12.9-55.4 32L48 32C21.5 32 0 53.5 0 80L0 400c0 26.5 21.5 48 48 48l144 0 0-272c0-44.2 35.8-80 80-80l48 0 0-16c0-26.5-21.5-48-48-48l-56.6 0C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48l0 272 0 16c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-220.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L320 128l-48 0zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]};var CX={prefix:"fas",iconName:"circle-notch",icon:[512,512,[],"f1ce","M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z"]};var UvA={prefix:"fas",iconName:"scissors",icon:[512,512,[9984,9986,9988,"cut"],"f0c4","M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},BC=UvA;var JvA={prefix:"fas",iconName:"square-caret-down",icon:[448,512,["caret-square-down"],"f150","M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"]},dX=JvA;var BX={prefix:"fas",iconName:"caret-left",icon:[256,512,[],"f0d9","M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z"]};var YvA={prefix:"fas",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},iL=YvA;var TvA={prefix:"fas",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z"]},EX=TvA;var QX={prefix:"fas",iconName:"chevron-up",icon:[512,512,[],"f077","M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"]};var nL={prefix:"fas",iconName:"angle-right",icon:[320,512,[8250],"f105","M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"]};var HvA={prefix:"fas",iconName:"square-caret-up",icon:[448,512,["caret-square-up"],"f151","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"]},uX=HvA;var oL={prefix:"fas",iconName:"caret-up",icon:[320,512,[],"f0d8","M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"]};var rL={prefix:"fas",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"]};var d4={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.9 54.9C10.5 40.9 24.5 32 40 32l432 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9 320 448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z"]};var B4={prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"]};var _0={prefix:"fas",iconName:"wrench",icon:[512,512,[128295],"f0ad","M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7L336 192c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]};var hX={prefix:"fas",iconName:"eye",icon:[576,512,[128065],"f06e","M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"]};var EC={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z"]};var OvA={prefix:"fas",iconName:"arrow-rotate-right",icon:[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M386.3 160L336 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z"]};var G5=OvA;var zvA={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z"]};var K5=zvA;var PvA={prefix:"fas",iconName:"crop-simple",icon:[512,512,["crop-alt"],"f565","M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-224 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64L160 64l0 64 224 0 0 352z"]},fX=PvA;var jvA={prefix:"fas",iconName:"gear",icon:[512,512,[9881,"cog"],"f013","M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"]},mX=jvA;var Nl={prefix:"fas",iconName:"caret-down",icon:[320,512,[],"f0d7","M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"]};var qvA={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"]},sL=qvA;var E4={prefix:"fas",iconName:"arrow-right-arrow-left",icon:[448,512,[8644,"exchange"],"f0ec","M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z"]};var VvA={prefix:"fas",iconName:"arrow-down-short-wide",icon:[576,512,["sort-amount-desc","sort-amount-down-alt"],"f884","M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]};var Q4=VvA;var pX={prefix:"fas",iconName:"angle-down",icon:[448,512,[8964],"f107","M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]};var aL={prefix:"fas",iconName:"arrow-down",icon:[384,512,[8595],"f063","M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]};var ZvA={prefix:"fas",iconName:"magnifying-glass",icon:[512,512,[128269,"search"],"f002","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"]},u4=ZvA;var DX={prefix:"fas",iconName:"chevron-down",icon:[512,512,[],"f078","M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"]};var G0={prefix:"fas",iconName:"copy",icon:[448,512,[],"f0c5","M208 0L332.1 0c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9L448 336c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48zM48 128l80 0 0 64-64 0 0 256 192 0 0-32 64 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48z"]};var QC={prefix:"fas",iconName:"plus",icon:[448,512,[10133,61543,"add"],"2b","M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z"]};var wX={prefix:"fas",iconName:"xmark",icon:[384,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"]},yX=wX;var h4=wX;var vX={prefix:"fas",iconName:"rotate",icon:[512,512,[128260,"sync-alt"],"f2f1","M142.9 142.9c-17.5 17.5-30.1 38-37.8 59.8c-5.9 16.7-24.2 25.4-40.8 19.5s-25.4-24.2-19.5-40.8C55.6 150.7 73.2 122 97.6 97.6c87.2-87.2 228.3-87.5 315.8-1L455 55c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 128c0 13.3-10.7 24-24 24l-8.4 0c0 0 0 0 0 0L344 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l41.1-41.1c-62.6-61.5-163.1-61.2-225.3 1zM16 312c0-13.3 10.7-24 24-24l7.6 0 .7 0L168 288c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-41.1 41.1c62.6 61.5 163.1 61.2 225.3-1c17.5-17.5 30.1-38 37.8-59.8c5.9-16.7 24.2-25.4 40.8-19.5s25.4 24.2 19.5 40.8c-10.8 30.6-28.4 59.3-52.9 83.8c-87.2 87.2-228.3 87.5-315.8 1L57 457c-6.9 6.9-17.2 8.9-26.2 5.2S16 449.7 16 440l0-119.6 0-.7 0-7.6z"]};var MX={prefix:"fas",iconName:"up-right-and-down-left-from-center",icon:[512,512,["expand-alt"],"f424","M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z"]};var cL={prefix:"fas",iconName:"clone",icon:[512,512,[],"f24d","M288 448L64 448l0-224 64 0 0-64-64 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-64-64 0 0 64zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z"]};var U5={prefix:"fas",iconName:"check",icon:[448,512,[10003,10004],"f00c","M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"]};var WvA={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},m1=WvA;var QsA=$Q(SX(),1);var RX=Number.isNaN||function(e){return typeof e=="number"&&e!==e};function XvA(t,e){return!!(t===e||RX(t)&&RX(e))}function $vA(t,e){if(t.length!==e.length)return!1;for(var A=0;A{if(typeof n!="object"||!n.name||!n.init)throw new Error("Invalid JSEP plugin format");this.registered[n.name]||(n.init(this.jsep),this.registered[n.name]=n)})}},Na=class t{static get version(){return"1.4.0"}static toString(){return"JavaScript Expression Parser (JSEP) v"+t.version}static addUnaryOp(e){return t.max_unop_len=Math.max(e.length,t.max_unop_len),t.unary_ops[e]=1,t}static addBinaryOp(e,A,i){return t.max_binop_len=Math.max(e.length,t.max_binop_len),t.binary_ops[e]=A,i?t.right_associative.add(e):t.right_associative.delete(e),t}static addIdentifierChar(e){return t.additional_identifier_chars.add(e),t}static addLiteral(e,A){return t.literals[e]=A,t}static removeUnaryOp(e){return delete t.unary_ops[e],e.length===t.max_unop_len&&(t.max_unop_len=t.getMaxKeyLen(t.unary_ops)),t}static removeAllUnaryOps(){return t.unary_ops={},t.max_unop_len=0,t}static removeIdentifierChar(e){return t.additional_identifier_chars.delete(e),t}static removeBinaryOp(e){return delete t.binary_ops[e],e.length===t.max_binop_len&&(t.max_binop_len=t.getMaxKeyLen(t.binary_ops)),t.right_associative.delete(e),t}static removeAllBinaryOps(){return t.binary_ops={},t.max_binop_len=0,t}static removeLiteral(e){return delete t.literals[e],t}static removeAllLiterals(){return t.literals={},t}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(e){this.expr=e,this.index=0}static parse(e){return new t(e).parse()}static getMaxKeyLen(e){return Math.max(0,...Object.keys(e).map(A=>A.length))}static isDecimalDigit(e){return e>=48&&e<=57}static binaryPrecedence(e){return t.binary_ops[e]||0}static isIdentifierStart(e){return e>=65&&e<=90||e>=97&&e<=122||e>=128&&!t.binary_ops[String.fromCharCode(e)]||t.additional_identifier_chars.has(String.fromCharCode(e))}static isIdentifierPart(e){return t.isIdentifierStart(e)||t.isDecimalDigit(e)}throwError(e){let A=new Error(e+" at character "+this.index);throw A.index=this.index,A.description=e,A}runHook(e,A){if(t.hooks[e]){let i={context:this,node:A};return t.hooks.run(e,i),i.node}return A}searchHook(e){if(t.hooks[e]){let A={context:this};return t.hooks[e].find(function(i){return i.call(A.context,A),A.node}),A.node}}gobbleSpaces(){let e=this.code;for(;e===t.SPACE_CODE||e===t.TAB_CODE||e===t.LF_CODE||e===t.CR_CODE;)e=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");let e=this.gobbleExpressions(),A=e.length===1?e[0]:{type:t.COMPOUND,body:e};return this.runHook("after-all",A)}gobbleExpressions(e){let A=[],i,n;for(;this.index0;){if(t.binary_ops.hasOwnProperty(e)&&(!t.isIdentifierStart(this.code)||this.index+e.lengtho.right_a&&I.right_a?i>I.prec:i<=I.prec;for(;n.length>2&&g(n[n.length-2]);)s=n.pop(),A=n.pop().value,r=n.pop(),e={type:t.BINARY_EXP,operator:A,left:r,right:s},n.push(e);e=this.gobbleToken(),e||this.throwError("Expected expression after "+c),n.push(o,e)}for(a=n.length-1,e=n[a];a>1;)e={type:t.BINARY_EXP,operator:n[a-1].value,left:n[a-2],right:e},a-=2;return e}gobbleToken(){let e,A,i,n;if(this.gobbleSpaces(),n=this.searchHook("gobble-token"),n)return this.runHook("after-token",n);if(e=this.code,t.isDecimalDigit(e)||e===t.PERIOD_CODE)return this.gobbleNumericLiteral();if(e===t.SQUOTE_CODE||e===t.DQUOTE_CODE)n=this.gobbleStringLiteral();else if(e===t.OBRACK_CODE)n=this.gobbleArray();else{for(A=this.expr.substr(this.index,t.max_unop_len),i=A.length;i>0;){if(t.unary_ops.hasOwnProperty(A)&&(!t.isIdentifierStart(this.code)||this.index+A.length=A.length&&this.throwError("Unexpected token "+String.fromCharCode(e));break}else if(o===t.COMMA_CODE){if(this.index++,n++,n!==A.length){if(e===t.CPAREN_CODE)this.throwError("Unexpected token ,");else if(e===t.CBRACK_CODE)for(let r=A.length;r":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10,"**":11},right_associative:new Set(["**"]),additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"});Na.max_unop_len=Na.getMaxKeyLen(Na.unary_ops);Na.max_binop_len=Na.getMaxKeyLen(Na.binary_ops);var H0=t=>new Na(t).parse(),vRA=Object.getOwnPropertyNames(class{});Object.getOwnPropertyNames(Na).filter(t=>!vRA.includes(t)&&H0[t]===void 0).forEach(t=>{H0[t]=Na[t]});H0.Jsep=Na;var MRA="ConditionalExpression",bRA={name:"ternary",init(t){t.hooks.add("after-expression",function(A){if(A.node&&this.code===t.QUMARK_CODE){this.index++;let i=A.node,n=this.gobbleExpression();if(n||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===t.COLON_CODE){this.index++;let o=this.gobbleExpression();if(o||this.throwError("Expected expression"),A.node={type:MRA,test:i,consequent:n,alternate:o},i.operator&&t.binary_ops[i.operator]<=.9){let r=i;for(;r.right.operator&&t.binary_ops[r.right.operator]<=.9;)r=r.right;A.node.test=r.right,r.right=A.node,A.node=i}}else this.throwError("Expected :")}})}};H0.plugins.register(bRA);var geA=47,kRA=92,SRA={name:"regex",init(t){t.hooks.add("gobble-token",function(A){if(this.code===geA){let i=++this.index,n=!1;for(;this.index=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57)r+=this.char;else break}let s;try{s=new RegExp(o,r)}catch(a){this.throwError(a.message)}return A.node={type:t.LITERAL,value:s,raw:this.expr.slice(i-1,this.index)},A.node=this.gobbleTokenProperty(A.node),A.node}this.code===t.OBRACK_CODE?n=!0:n&&this.code===t.CBRACK_CODE&&(n=!1),this.index+=this.code===kRA?2:1}this.throwError("Unclosed Regex")}})}},Vx=43,RRA=45,xE={name:"assignment",assignmentOperators:new Set(["=","*=","**=","/=","%=","+=","-=","<<=",">>=",">>>=","&=","^=","|=","||=","&&=","??="]),updateOperators:[Vx,RRA],assignmentPrecedence:.9,init(t){let e=[t.IDENTIFIER,t.MEMBER_EXP];xE.assignmentOperators.forEach(i=>t.addBinaryOp(i,xE.assignmentPrecedence,!0)),t.hooks.add("gobble-token",function(n){let o=this.code;xE.updateOperators.some(r=>r===o&&r===this.expr.charCodeAt(this.index+1))&&(this.index+=2,n.node={type:"UpdateExpression",operator:o===Vx?"++":"--",argument:this.gobbleTokenProperty(this.gobbleIdentifier()),prefix:!0},(!n.node.argument||!e.includes(n.node.argument.type))&&this.throwError(`Unexpected ${n.node.operator}`))}),t.hooks.add("after-token",function(n){if(n.node){let o=this.code;xE.updateOperators.some(r=>r===o&&r===this.expr.charCodeAt(this.index+1))&&(e.includes(n.node.type)||this.throwError(`Unexpected ${n.node.operator}`),this.index+=2,n.node={type:"UpdateExpression",operator:o===Vx?"++":"--",argument:n.node,prefix:!1})}}),t.hooks.add("after-expression",function(n){n.node&&A(n.node)});function A(i){xE.assignmentOperators.has(i.operator)?(i.type="AssignmentExpression",A(i.left),A(i.right)):i.operator||Object.values(i).forEach(n=>{n&&typeof n=="object"&&A(n)})}}};H0.plugins.register(SRA,xE);H0.addUnaryOp("typeof");H0.addLiteral("null",null);H0.addLiteral("undefined",void 0);var LRA=new Set(["constructor","__proto__","__defineGetter__","__defineSetter__"]),go={evalAst(t,e){switch(t.type){case"BinaryExpression":case"LogicalExpression":return go.evalBinaryExpression(t,e);case"Compound":return go.evalCompound(t,e);case"ConditionalExpression":return go.evalConditionalExpression(t,e);case"Identifier":return go.evalIdentifier(t,e);case"Literal":return go.evalLiteral(t,e);case"MemberExpression":return go.evalMemberExpression(t,e);case"UnaryExpression":return go.evalUnaryExpression(t,e);case"ArrayExpression":return go.evalArrayExpression(t,e);case"CallExpression":return go.evalCallExpression(t,e);case"AssignmentExpression":return go.evalAssignmentExpression(t,e);default:throw SyntaxError("Unexpected expression",t)}},evalBinaryExpression(t,e){return{"||":(i,n)=>i||n(),"&&":(i,n)=>i&&n(),"|":(i,n)=>i|n(),"^":(i,n)=>i^n(),"&":(i,n)=>i&n(),"==":(i,n)=>i==n(),"!=":(i,n)=>i!=n(),"===":(i,n)=>i===n(),"!==":(i,n)=>i!==n(),"<":(i,n)=>i":(i,n)=>i>n(),"<=":(i,n)=>i<=n(),">=":(i,n)=>i>=n(),"<<":(i,n)=>i<>":(i,n)=>i>>n(),">>>":(i,n)=>i>>>n(),"+":(i,n)=>i+n(),"-":(i,n)=>i-n(),"*":(i,n)=>i*n(),"/":(i,n)=>i/n(),"%":(i,n)=>i%n()}[t.operator](go.evalAst(t.left,e),()=>go.evalAst(t.right,e))},evalCompound(t,e){let A;for(let i=0;i-go.evalAst(i,e),"!":i=>!go.evalAst(i,e),"~":i=>~go.evalAst(i,e),"+":i=>+go.evalAst(i,e),typeof:i=>typeof go.evalAst(i,e)}[t.operator](t.argument)},evalArrayExpression(t,e){return t.elements.map(A=>go.evalAst(A,e))},evalCallExpression(t,e){let A=t.arguments.map(n=>go.evalAst(n,e));return go.evalAst(t.callee,e)(...A)},evalAssignmentExpression(t,e){if(t.left.type!=="Identifier")throw SyntaxError("Invalid left-hand side in assignment");let A=t.left.name,i=go.evalAst(t.right,e);return e[A]=i,e[A]}},Xx=class{constructor(e){this.code=e,this.ast=H0(this.code)}runInNewContext(e){let A=Object.assign(Object.create(null),e);return go.evalAst(this.ast,A)}};function k1(t,e){return t=t.slice(),t.push(e),t}function $x(t,e){return e=e.slice(),e.unshift(t),e}var AN=class extends Error{constructor(e){super('JSONPath should not be called with "new" (it prevents return of (unwrapped) scalar values)'),this.avoidNew=!0,this.value=e,this.name="NewError"}};function Rn(t,e,A,i,n){if(!(this instanceof Rn))try{return new Rn(t,e,A,i,n)}catch(r){if(!r.avoidNew)throw r;return r.value}typeof t=="string"&&(n=i,i=A,A=e,e=t,t=null);let o=t&&typeof t=="object";if(t=t||{},this.json=t.json||A,this.path=t.path||e,this.resultType=t.resultType||"value",this.flatten=t.flatten||!1,this.wrap=Object.hasOwn(t,"wrap")?t.wrap:!0,this.sandbox=t.sandbox||{},this.eval=t.eval===void 0?"safe":t.eval,this.ignoreEvalErrors=typeof t.ignoreEvalErrors>"u"?!1:t.ignoreEvalErrors,this.parent=t.parent||null,this.parentProperty=t.parentProperty||null,this.callback=t.callback||i||null,this.otherTypeCallback=t.otherTypeCallback||n||function(){throw new TypeError("You must supply an otherTypeCallback callback option with the @other() operator.")},t.autostart!==!1){let r={path:o?t.path:e};o?"json"in t&&(r.json=t.json):r.json=A;let s=this.evaluate(r);if(!s||typeof s!="object")throw new AN(s);return s}}Rn.prototype.evaluate=function(t,e,A,i){let n=this.parent,o=this.parentProperty,{flatten:r,wrap:s}=this;if(this.currResultType=this.resultType,this.currEval=this.eval,this.currSandbox=this.sandbox,A=A||this.callback,this.currOtherTypeCallback=i||this.otherTypeCallback,e=e||this.json,t=t||this.path,t&&typeof t=="object"&&!Array.isArray(t)){if(!t.path&&t.path!=="")throw new TypeError('You must supply a "path" property when providing an object argument to JSONPath.evaluate().');if(!Object.hasOwn(t,"json"))throw new TypeError('You must supply a "json" property when providing an object argument to JSONPath.evaluate().');({json:e}=t),r=Object.hasOwn(t,"flatten")?t.flatten:r,this.currResultType=Object.hasOwn(t,"resultType")?t.resultType:this.currResultType,this.currSandbox=Object.hasOwn(t,"sandbox")?t.sandbox:this.currSandbox,s=Object.hasOwn(t,"wrap")?t.wrap:s,this.currEval=Object.hasOwn(t,"eval")?t.eval:this.currEval,A=Object.hasOwn(t,"callback")?t.callback:A,this.currOtherTypeCallback=Object.hasOwn(t,"otherTypeCallback")?t.otherTypeCallback:this.currOtherTypeCallback,n=Object.hasOwn(t,"parent")?t.parent:n,o=Object.hasOwn(t,"parentProperty")?t.parentProperty:o,t=t.path}if(n=n||null,o=o||null,Array.isArray(t)&&(t=Rn.toPathString(t)),!t&&t!==""||!e)return;let a=Rn.toPathArray(t);a[0]==="$"&&a.length>1&&a.shift(),this._hasParentSelector=null;let c=this._trace(a,e,["$"],n,o,A).filter(function(g){return g&&!g.isParentSelector});return c.length?!s&&c.length===1&&!c[0].hasArrExpr?this._getPreferredOutput(c[0]):c.reduce((g,I)=>{let C=this._getPreferredOutput(I);return r&&Array.isArray(C)?g=g.concat(C):g.push(C),g},[]):s?[]:void 0};Rn.prototype._getPreferredOutput=function(t){let e=this.currResultType;switch(e){case"all":{let A=Array.isArray(t.path)?t.path:Rn.toPathArray(t.path);return t.pointer=Rn.toPointer(A),t.path=typeof t.path=="string"?t.path:Rn.toPathString(t.path),t}case"value":case"parent":case"parentProperty":return t[e];case"path":return Rn.toPathString(t[e]);case"pointer":return Rn.toPointer(t.path);default:throw new TypeError("Unknown result type")}};Rn.prototype._handleCallback=function(t,e,A){if(e){let i=this._getPreferredOutput(t);t.path=typeof t.path=="string"?t.path:Rn.toPathString(t.path),e(i,A,t)}};Rn.prototype._trace=function(t,e,A,i,n,o,r,s){let a;if(!t.length)return a={path:A,value:e,parent:i,parentProperty:n,hasArrExpr:r},this._handleCallback(a,o,"value"),a;let c=t[0],g=t.slice(1),I=[];function C(d){Array.isArray(d)?d.forEach(B=>{I.push(B)}):I.push(d)}if((typeof c!="string"||s)&&e&&Object.hasOwn(e,c))C(this._trace(g,e[c],k1(A,c),e,c,o,r));else if(c==="*")this._walk(e,d=>{C(this._trace(g,e[d],k1(A,d),e,d,o,!0,!0))});else if(c==="..")C(this._trace(g,e,A,i,n,o,r)),this._walk(e,d=>{typeof e[d]=="object"&&C(this._trace(t.slice(),e[d],k1(A,d),e,d,o,!0))});else{if(c==="^")return this._hasParentSelector=!0,{path:A.slice(0,-1),expr:g,isParentSelector:!0};if(c==="~")return a={path:k1(A,c),value:n,parent:i,parentProperty:null},this._handleCallback(a,o,"property"),a;if(c==="$")C(this._trace(g,e,A,null,null,o,r));else if(/^(-?\d*):(-?\d*):?(\d*)$/u.test(c))C(this._slice(c,g,e,A,i,n,o));else if(c.indexOf("?(")===0){if(this.currEval===!1)throw new Error("Eval [?(expr)] prevented in JSONPath expression.");let d=c.replace(/^\?\((.*?)\)$/u,"$1"),B=/@.?([^?]*)[['](\??\(.*?\))(?!.\)\])[\]']/gu.exec(d);B?this._walk(e,E=>{let u=[B[2]],h=B[1]?e[E][B[1]]:e[E];this._trace(u,h,A,i,n,o,!0).length>0&&C(this._trace(g,e[E],k1(A,E),e,E,o,!0))}):this._walk(e,E=>{this._eval(d,e[E],E,A,i,n)&&C(this._trace(g,e[E],k1(A,E),e,E,o,!0))})}else if(c[0]==="("){if(this.currEval===!1)throw new Error("Eval [(expr)] prevented in JSONPath expression.");C(this._trace($x(this._eval(c,e,A.at(-1),A.slice(0,-1),i,n),g),e,A,i,n,o,r))}else if(c[0]==="@"){let d=!1,B=c.slice(1,-2);switch(B){case"scalar":(!e||!["object","function"].includes(typeof e))&&(d=!0);break;case"boolean":case"string":case"undefined":case"function":typeof e===B&&(d=!0);break;case"integer":Number.isFinite(e)&&!(e%1)&&(d=!0);break;case"number":Number.isFinite(e)&&(d=!0);break;case"nonFinite":typeof e=="number"&&!Number.isFinite(e)&&(d=!0);break;case"object":e&&typeof e===B&&(d=!0);break;case"array":Array.isArray(e)&&(d=!0);break;case"other":d=this.currOtherTypeCallback(e,A,i,n);break;case"null":e===null&&(d=!0);break;default:throw new TypeError("Unknown value type "+B)}if(d)return a={path:A,value:e,parent:i,parentProperty:n},this._handleCallback(a,o,"value"),a}else if(c[0]==="`"&&e&&Object.hasOwn(e,c.slice(1))){let d=c.slice(1);C(this._trace(g,e[d],k1(A,d),e,d,o,r,!0))}else if(c.includes(",")){let d=c.split(",");for(let B of d)C(this._trace($x(B,g),e,A,i,n,o,!0))}else!s&&e&&Object.hasOwn(e,c)&&C(this._trace(g,e[c],k1(A,c),e,c,o,r,!0))}if(this._hasParentSelector)for(let d=0;d{e(A)})};Rn.prototype._slice=function(t,e,A,i,n,o,r){if(!Array.isArray(A))return;let s=A.length,a=t.split(":"),c=a[2]&&Number.parseInt(a[2])||1,g=a[0]&&Number.parseInt(a[0])||0,I=a[1]&&Number.parseInt(a[1])||s;g=g<0?Math.max(0,g+s):Math.min(s,g),I=I<0?Math.max(0,I+s):Math.min(s,I);let C=[];for(let d=g;d{C.push(E)});return C};Rn.prototype._eval=function(t,e,A,i,n,o){this.currSandbox._$_parentProperty=o,this.currSandbox._$_parent=n,this.currSandbox._$_property=A,this.currSandbox._$_root=this.json,this.currSandbox._$_v=e;let r=t.includes("@path");r&&(this.currSandbox._$_path=Rn.toPathString(i.concat([A])));let s=this.currEval+"Script:"+t;if(!Rn.cache[s]){let a=t.replaceAll("@parentProperty","_$_parentProperty").replaceAll("@parent","_$_parent").replaceAll("@property","_$_property").replaceAll("@root","_$_root").replaceAll(/@([.\s)[])/gu,"_$_v$1");if(r&&(a=a.replaceAll("@path","_$_path")),this.currEval==="safe"||this.currEval===!0||this.currEval===void 0)Rn.cache[s]=new this.safeVm.Script(a);else if(this.currEval==="native")Rn.cache[s]=new this.vm.Script(a);else if(typeof this.currEval=="function"&&this.currEval.prototype&&Object.hasOwn(this.currEval.prototype,"runInNewContext")){let c=this.currEval;Rn.cache[s]=new c(a)}else if(typeof this.currEval=="function")Rn.cache[s]={runInNewContext:c=>this.currEval(a,c)};else throw new TypeError(`Unknown "eval" property "${this.currEval}"`)}try{return Rn.cache[s].runInNewContext(this.currSandbox)}catch(a){if(this.ignoreEvalErrors)return!1;throw new Error("jsonPath: "+a.message+": "+t)}};Rn.cache={};Rn.toPathString=function(t){let e=t,A=e.length,i="$";for(let n=1;ntypeof e[c]=="function");let o=i.map(c=>e[c]);A=n.reduce((c,g)=>{let I=e[g].toString();return/function/u.test(I)||(I="function "+I),"var "+g+"="+I+";"+c},"")+A,!/(['"])use strict\1/u.test(A)&&!i.includes("arguments")&&(A="var arguments = undefined;"+A),A=A.replace(/;\s*$/u,"");let s=A.lastIndexOf(";"),a=s!==-1?A.slice(0,s+1)+" return "+A.slice(s+1):" return "+A;return new Function(...i,a)(...o)}};Rn.prototype.vm={Script:eN};var iN=[],deA=[];(()=>{let t="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,A=0;e>1;if(t=deA[i])e=i+1;else return!0;if(e==A)return!1}}function leA(t){return t>=127462&&t<=127487}var IeA=8205;function BeA(t,e,A=!0,i=!0){return(A?EeA:FRA)(t,e,i)}function EeA(t,e,A){if(e==t.length)return e;e&&QeA(t.charCodeAt(e))&&ueA(t.charCodeAt(e-1))&&e--;let i=tN(t,e);for(e+=CeA(i);e=0&&leA(tN(t,r));)o++,r-=2;if(o%2==0)break;e+=2}else break}return e}function FRA(t,e,A){for(;e>0;){let i=EeA(t,e-2,A);if(i=56320&&t<57344}function ueA(t){return t>=55296&&t<56320}function CeA(t){return t<65536?1:2}var tn=class t{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,A,i){[e,A]=KE(this,e,A);let n=[];return this.decompose(0,e,n,2),i.length&&i.decompose(0,i.length,n,3),this.decompose(A,this.length,n,1),FE.from(n,this.length-(A-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,A=this.length){[e,A]=KE(this,e,A);let i=[];return this.decompose(e,A,i,0),FE.from(i,A-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let A=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),n=new bC(this),o=new bC(e);for(let r=A,s=A;;){if(n.next(r),o.next(r),r=0,n.lineBreak!=o.lineBreak||n.done!=o.done||n.value!=o.value)return!1;if(s+=n.value.length,n.done||s>=i)return!0}}iter(e=1){return new bC(this,e)}iterRange(e,A=this.length){return new bD(this,e,A)}iterLines(e,A){let i;if(e==null)i=this.iter();else{A==null&&(A=this.lines+1);let n=this.line(e).from;i=this.iterRange(n,Math.max(n,A==this.lines+1?this.length:A<=1?0:this.line(A-1).to))}return new kD(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?t.empty:e.length<=32?new gc(e):FE.from(gc.split(e,[]))}},gc=class t extends tn{constructor(e,A=_RA(e)){super(),this.text=e,this.length=A}get lines(){return this.text.length}get children(){return null}lineInner(e,A,i,n){for(let o=0;;o++){let r=this.text[o],s=n+r.length;if((A?i:s)>=e)return new rN(n,s,i,r);n=s+1,i++}}decompose(e,A,i,n){let o=e<=0&&A>=this.length?this:new t(heA(this.text,e,A),Math.min(A,this.length)-Math.max(0,e));if(n&1){let r=i.pop(),s=MD(o.text,r.text.slice(),0,o.length);if(s.length<=32)i.push(new t(s,r.length+o.length));else{let a=s.length>>1;i.push(new t(s.slice(0,a)),new t(s.slice(a)))}}else i.push(o)}replace(e,A,i){if(!(i instanceof t))return super.replace(e,A,i);[e,A]=KE(this,e,A);let n=MD(this.text,MD(i.text,heA(this.text,0,e)),A),o=this.length+i.length-(A-e);return n.length<=32?new t(n,o):FE.from(t.split(n,[]),o)}sliceString(e,A=this.length,i=` +${B}}`])},g=d=>d.map(B=>`.${I(B)}`).join(""),I=d=>RvA.test(d)?d:JSON.stringify(d),C=(d,[B,E,u],[h,w,x])=>B.length+d.reduce((R,D)=>R+D.length+E.length,0)-E.length+u.length<=(e?.maxLineLength??KvA)?B+d.join(E)+u:h+d.join(w)+x;return s(t,"")};function cX(t,e,A){return Or(yvA(e)?$R(e,A):e,A)(t)}var gX={prefix:"far",iconName:"lightbulb",icon:[384,512,[128161],"f0eb","M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7c0 0 0 0 0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5L109 384c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8c0 0 0 0 0 0s0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4c0 0 0 0 0 0s0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5l-48.6 0c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80l0-16 160 0 0 16c0 44.2-35.8 80-80 80z"]};var JvA={prefix:"far",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},AL=JvA;var eL={prefix:"far",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"]};var lX={prefix:"far",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]};var _5={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z"]};var IX={prefix:"fas",iconName:"down-left-and-up-right-to-center",icon:[512,512,["compress-alt"],"f422","M439 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39L439 7zM72 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39L73 505c-9.4 9.4-24.6 9.4-33.9 0L7 473c-9.4-9.4-9.4-24.6 0-33.9l87-87L55 313c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8z"]};var uE={prefix:"fas",iconName:"caret-right",icon:[256,512,[],"f0da","M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z"]};var tL={prefix:"fas",iconName:"paste",icon:[512,512,["file-clipboard"],"f0ea","M160 0c-23.7 0-44.4 12.9-55.4 32L48 32C21.5 32 0 53.5 0 80L0 400c0 26.5 21.5 48 48 48l144 0 0-272c0-44.2 35.8-80 80-80l48 0 0-16c0-26.5-21.5-48-48-48l-56.6 0C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48l0 272 0 16c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-220.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L320 128l-48 0zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]};var CX={prefix:"fas",iconName:"circle-notch",icon:[512,512,[],"f1ce","M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z"]};var YvA={prefix:"fas",iconName:"scissors",icon:[512,512,[9984,9986,9988,"cut"],"f0c4","M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},BC=YvA;var TvA={prefix:"fas",iconName:"square-caret-down",icon:[448,512,["caret-square-down"],"f150","M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"]},dX=TvA;var BX={prefix:"fas",iconName:"caret-left",icon:[256,512,[],"f0d9","M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z"]};var HvA={prefix:"fas",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},iL=HvA;var OvA={prefix:"fas",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z"]},EX=OvA;var QX={prefix:"fas",iconName:"chevron-up",icon:[512,512,[],"f077","M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"]};var nL={prefix:"fas",iconName:"angle-right",icon:[320,512,[8250],"f105","M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"]};var zvA={prefix:"fas",iconName:"square-caret-up",icon:[448,512,["caret-square-up"],"f151","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"]},uX=zvA;var oL={prefix:"fas",iconName:"caret-up",icon:[320,512,[],"f0d8","M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"]};var rL={prefix:"fas",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"]};var d4={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.9 54.9C10.5 40.9 24.5 32 40 32l432 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9 320 448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z"]};var B4={prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"]};var _0={prefix:"fas",iconName:"wrench",icon:[512,512,[128295],"f0ad","M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7L336 192c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]};var hX={prefix:"fas",iconName:"eye",icon:[576,512,[128065],"f06e","M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"]};var EC={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z"]};var PvA={prefix:"fas",iconName:"arrow-rotate-right",icon:[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M386.3 160L336 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z"]};var G5=PvA;var jvA={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z"]};var K5=jvA;var qvA={prefix:"fas",iconName:"crop-simple",icon:[512,512,["crop-alt"],"f565","M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-224 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64L160 64l0 64 224 0 0 352z"]},fX=qvA;var VvA={prefix:"fas",iconName:"gear",icon:[512,512,[9881,"cog"],"f013","M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"]},mX=VvA;var Nl={prefix:"fas",iconName:"caret-down",icon:[320,512,[],"f0d7","M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"]};var ZvA={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"]},sL=ZvA;var E4={prefix:"fas",iconName:"arrow-right-arrow-left",icon:[448,512,[8644,"exchange"],"f0ec","M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z"]};var WvA={prefix:"fas",iconName:"arrow-down-short-wide",icon:[576,512,["sort-amount-desc","sort-amount-down-alt"],"f884","M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]};var Q4=WvA;var pX={prefix:"fas",iconName:"angle-down",icon:[448,512,[8964],"f107","M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]};var aL={prefix:"fas",iconName:"arrow-down",icon:[384,512,[8595],"f063","M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]};var XvA={prefix:"fas",iconName:"magnifying-glass",icon:[512,512,[128269,"search"],"f002","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"]},u4=XvA;var DX={prefix:"fas",iconName:"chevron-down",icon:[512,512,[],"f078","M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"]};var G0={prefix:"fas",iconName:"copy",icon:[448,512,[],"f0c5","M208 0L332.1 0c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9L448 336c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48zM48 128l80 0 0 64-64 0 0 256 192 0 0-32 64 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48z"]};var QC={prefix:"fas",iconName:"plus",icon:[448,512,[10133,61543,"add"],"2b","M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z"]};var wX={prefix:"fas",iconName:"xmark",icon:[384,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"]},yX=wX;var h4=wX;var vX={prefix:"fas",iconName:"rotate",icon:[512,512,[128260,"sync-alt"],"f2f1","M142.9 142.9c-17.5 17.5-30.1 38-37.8 59.8c-5.9 16.7-24.2 25.4-40.8 19.5s-25.4-24.2-19.5-40.8C55.6 150.7 73.2 122 97.6 97.6c87.2-87.2 228.3-87.5 315.8-1L455 55c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 128c0 13.3-10.7 24-24 24l-8.4 0c0 0 0 0 0 0L344 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l41.1-41.1c-62.6-61.5-163.1-61.2-225.3 1zM16 312c0-13.3 10.7-24 24-24l7.6 0 .7 0L168 288c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-41.1 41.1c62.6 61.5 163.1 61.2 225.3-1c17.5-17.5 30.1-38 37.8-59.8c5.9-16.7 24.2-25.4 40.8-19.5s25.4 24.2 19.5 40.8c-10.8 30.6-28.4 59.3-52.9 83.8c-87.2 87.2-228.3 87.5-315.8 1L57 457c-6.9 6.9-17.2 8.9-26.2 5.2S16 449.7 16 440l0-119.6 0-.7 0-7.6z"]};var MX={prefix:"fas",iconName:"up-right-and-down-left-from-center",icon:[512,512,["expand-alt"],"f424","M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z"]};var cL={prefix:"fas",iconName:"clone",icon:[512,512,[],"f24d","M288 448L64 448l0-224 64 0 0-64-64 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-64-64 0 0 64zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z"]};var U5={prefix:"fas",iconName:"check",icon:[448,512,[10003,10004],"f00c","M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"]};var $vA={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},m1=$vA;var QsA=$Q(SX(),1);var RX=Number.isNaN||function(e){return typeof e=="number"&&e!==e};function A9A(t,e){return!!(t===e||RX(t)&&RX(e))}function e9A(t,e){if(t.length!==e.length)return!1;for(var A=0;A{if(typeof n!="object"||!n.name||!n.init)throw new Error("Invalid JSEP plugin format");this.registered[n.name]||(n.init(this.jsep),this.registered[n.name]=n)})}},Na=class t{static get version(){return"1.4.0"}static toString(){return"JavaScript Expression Parser (JSEP) v"+t.version}static addUnaryOp(e){return t.max_unop_len=Math.max(e.length,t.max_unop_len),t.unary_ops[e]=1,t}static addBinaryOp(e,A,i){return t.max_binop_len=Math.max(e.length,t.max_binop_len),t.binary_ops[e]=A,i?t.right_associative.add(e):t.right_associative.delete(e),t}static addIdentifierChar(e){return t.additional_identifier_chars.add(e),t}static addLiteral(e,A){return t.literals[e]=A,t}static removeUnaryOp(e){return delete t.unary_ops[e],e.length===t.max_unop_len&&(t.max_unop_len=t.getMaxKeyLen(t.unary_ops)),t}static removeAllUnaryOps(){return t.unary_ops={},t.max_unop_len=0,t}static removeIdentifierChar(e){return t.additional_identifier_chars.delete(e),t}static removeBinaryOp(e){return delete t.binary_ops[e],e.length===t.max_binop_len&&(t.max_binop_len=t.getMaxKeyLen(t.binary_ops)),t.right_associative.delete(e),t}static removeAllBinaryOps(){return t.binary_ops={},t.max_binop_len=0,t}static removeLiteral(e){return delete t.literals[e],t}static removeAllLiterals(){return t.literals={},t}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(e){this.expr=e,this.index=0}static parse(e){return new t(e).parse()}static getMaxKeyLen(e){return Math.max(0,...Object.keys(e).map(A=>A.length))}static isDecimalDigit(e){return e>=48&&e<=57}static binaryPrecedence(e){return t.binary_ops[e]||0}static isIdentifierStart(e){return e>=65&&e<=90||e>=97&&e<=122||e>=128&&!t.binary_ops[String.fromCharCode(e)]||t.additional_identifier_chars.has(String.fromCharCode(e))}static isIdentifierPart(e){return t.isIdentifierStart(e)||t.isDecimalDigit(e)}throwError(e){let A=new Error(e+" at character "+this.index);throw A.index=this.index,A.description=e,A}runHook(e,A){if(t.hooks[e]){let i={context:this,node:A};return t.hooks.run(e,i),i.node}return A}searchHook(e){if(t.hooks[e]){let A={context:this};return t.hooks[e].find(function(i){return i.call(A.context,A),A.node}),A.node}}gobbleSpaces(){let e=this.code;for(;e===t.SPACE_CODE||e===t.TAB_CODE||e===t.LF_CODE||e===t.CR_CODE;)e=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");let e=this.gobbleExpressions(),A=e.length===1?e[0]:{type:t.COMPOUND,body:e};return this.runHook("after-all",A)}gobbleExpressions(e){let A=[],i,n;for(;this.index0;){if(t.binary_ops.hasOwnProperty(e)&&(!t.isIdentifierStart(this.code)||this.index+e.lengtho.right_a&&I.right_a?i>I.prec:i<=I.prec;for(;n.length>2&&g(n[n.length-2]);)s=n.pop(),A=n.pop().value,r=n.pop(),e={type:t.BINARY_EXP,operator:A,left:r,right:s},n.push(e);e=this.gobbleToken(),e||this.throwError("Expected expression after "+c),n.push(o,e)}for(a=n.length-1,e=n[a];a>1;)e={type:t.BINARY_EXP,operator:n[a-1].value,left:n[a-2],right:e},a-=2;return e}gobbleToken(){let e,A,i,n;if(this.gobbleSpaces(),n=this.searchHook("gobble-token"),n)return this.runHook("after-token",n);if(e=this.code,t.isDecimalDigit(e)||e===t.PERIOD_CODE)return this.gobbleNumericLiteral();if(e===t.SQUOTE_CODE||e===t.DQUOTE_CODE)n=this.gobbleStringLiteral();else if(e===t.OBRACK_CODE)n=this.gobbleArray();else{for(A=this.expr.substr(this.index,t.max_unop_len),i=A.length;i>0;){if(t.unary_ops.hasOwnProperty(A)&&(!t.isIdentifierStart(this.code)||this.index+A.length=A.length&&this.throwError("Unexpected token "+String.fromCharCode(e));break}else if(o===t.COMMA_CODE){if(this.index++,n++,n!==A.length){if(e===t.CPAREN_CODE)this.throwError("Unexpected token ,");else if(e===t.CBRACK_CODE)for(let r=A.length;r":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10,"**":11},right_associative:new Set(["**"]),additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"});Na.max_unop_len=Na.getMaxKeyLen(Na.unary_ops);Na.max_binop_len=Na.getMaxKeyLen(Na.binary_ops);var H0=t=>new Na(t).parse(),bRA=Object.getOwnPropertyNames(class{});Object.getOwnPropertyNames(Na).filter(t=>!bRA.includes(t)&&H0[t]===void 0).forEach(t=>{H0[t]=Na[t]});H0.Jsep=Na;var kRA="ConditionalExpression",SRA={name:"ternary",init(t){t.hooks.add("after-expression",function(A){if(A.node&&this.code===t.QUMARK_CODE){this.index++;let i=A.node,n=this.gobbleExpression();if(n||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===t.COLON_CODE){this.index++;let o=this.gobbleExpression();if(o||this.throwError("Expected expression"),A.node={type:kRA,test:i,consequent:n,alternate:o},i.operator&&t.binary_ops[i.operator]<=.9){let r=i;for(;r.right.operator&&t.binary_ops[r.right.operator]<=.9;)r=r.right;A.node.test=r.right,r.right=A.node,A.node=i}}else this.throwError("Expected :")}})}};H0.plugins.register(SRA);var geA=47,RRA=92,LRA={name:"regex",init(t){t.hooks.add("gobble-token",function(A){if(this.code===geA){let i=++this.index,n=!1;for(;this.index=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57)r+=this.char;else break}let s;try{s=new RegExp(o,r)}catch(a){this.throwError(a.message)}return A.node={type:t.LITERAL,value:s,raw:this.expr.slice(i-1,this.index)},A.node=this.gobbleTokenProperty(A.node),A.node}this.code===t.OBRACK_CODE?n=!0:n&&this.code===t.CBRACK_CODE&&(n=!1),this.index+=this.code===RRA?2:1}this.throwError("Unclosed Regex")}})}},Vx=43,xRA=45,xE={name:"assignment",assignmentOperators:new Set(["=","*=","**=","/=","%=","+=","-=","<<=",">>=",">>>=","&=","^=","|=","||=","&&=","??="]),updateOperators:[Vx,xRA],assignmentPrecedence:.9,init(t){let e=[t.IDENTIFIER,t.MEMBER_EXP];xE.assignmentOperators.forEach(i=>t.addBinaryOp(i,xE.assignmentPrecedence,!0)),t.hooks.add("gobble-token",function(n){let o=this.code;xE.updateOperators.some(r=>r===o&&r===this.expr.charCodeAt(this.index+1))&&(this.index+=2,n.node={type:"UpdateExpression",operator:o===Vx?"++":"--",argument:this.gobbleTokenProperty(this.gobbleIdentifier()),prefix:!0},(!n.node.argument||!e.includes(n.node.argument.type))&&this.throwError(`Unexpected ${n.node.operator}`))}),t.hooks.add("after-token",function(n){if(n.node){let o=this.code;xE.updateOperators.some(r=>r===o&&r===this.expr.charCodeAt(this.index+1))&&(e.includes(n.node.type)||this.throwError(`Unexpected ${n.node.operator}`),this.index+=2,n.node={type:"UpdateExpression",operator:o===Vx?"++":"--",argument:n.node,prefix:!1})}}),t.hooks.add("after-expression",function(n){n.node&&A(n.node)});function A(i){xE.assignmentOperators.has(i.operator)?(i.type="AssignmentExpression",A(i.left),A(i.right)):i.operator||Object.values(i).forEach(n=>{n&&typeof n=="object"&&A(n)})}}};H0.plugins.register(LRA,xE);H0.addUnaryOp("typeof");H0.addLiteral("null",null);H0.addLiteral("undefined",void 0);var NRA=new Set(["constructor","__proto__","__defineGetter__","__defineSetter__"]),go={evalAst(t,e){switch(t.type){case"BinaryExpression":case"LogicalExpression":return go.evalBinaryExpression(t,e);case"Compound":return go.evalCompound(t,e);case"ConditionalExpression":return go.evalConditionalExpression(t,e);case"Identifier":return go.evalIdentifier(t,e);case"Literal":return go.evalLiteral(t,e);case"MemberExpression":return go.evalMemberExpression(t,e);case"UnaryExpression":return go.evalUnaryExpression(t,e);case"ArrayExpression":return go.evalArrayExpression(t,e);case"CallExpression":return go.evalCallExpression(t,e);case"AssignmentExpression":return go.evalAssignmentExpression(t,e);default:throw SyntaxError("Unexpected expression",t)}},evalBinaryExpression(t,e){return{"||":(i,n)=>i||n(),"&&":(i,n)=>i&&n(),"|":(i,n)=>i|n(),"^":(i,n)=>i^n(),"&":(i,n)=>i&n(),"==":(i,n)=>i==n(),"!=":(i,n)=>i!=n(),"===":(i,n)=>i===n(),"!==":(i,n)=>i!==n(),"<":(i,n)=>i":(i,n)=>i>n(),"<=":(i,n)=>i<=n(),">=":(i,n)=>i>=n(),"<<":(i,n)=>i<>":(i,n)=>i>>n(),">>>":(i,n)=>i>>>n(),"+":(i,n)=>i+n(),"-":(i,n)=>i-n(),"*":(i,n)=>i*n(),"/":(i,n)=>i/n(),"%":(i,n)=>i%n()}[t.operator](go.evalAst(t.left,e),()=>go.evalAst(t.right,e))},evalCompound(t,e){let A;for(let i=0;i-go.evalAst(i,e),"!":i=>!go.evalAst(i,e),"~":i=>~go.evalAst(i,e),"+":i=>+go.evalAst(i,e),typeof:i=>typeof go.evalAst(i,e)}[t.operator](t.argument)},evalArrayExpression(t,e){return t.elements.map(A=>go.evalAst(A,e))},evalCallExpression(t,e){let A=t.arguments.map(n=>go.evalAst(n,e));return go.evalAst(t.callee,e)(...A)},evalAssignmentExpression(t,e){if(t.left.type!=="Identifier")throw SyntaxError("Invalid left-hand side in assignment");let A=t.left.name,i=go.evalAst(t.right,e);return e[A]=i,e[A]}},Xx=class{constructor(e){this.code=e,this.ast=H0(this.code)}runInNewContext(e){let A=Object.assign(Object.create(null),e);return go.evalAst(this.ast,A)}};function k1(t,e){return t=t.slice(),t.push(e),t}function $x(t,e){return e=e.slice(),e.unshift(t),e}var AN=class extends Error{constructor(e){super('JSONPath should not be called with "new" (it prevents return of (unwrapped) scalar values)'),this.avoidNew=!0,this.value=e,this.name="NewError"}};function Rn(t,e,A,i,n){if(!(this instanceof Rn))try{return new Rn(t,e,A,i,n)}catch(r){if(!r.avoidNew)throw r;return r.value}typeof t=="string"&&(n=i,i=A,A=e,e=t,t=null);let o=t&&typeof t=="object";if(t=t||{},this.json=t.json||A,this.path=t.path||e,this.resultType=t.resultType||"value",this.flatten=t.flatten||!1,this.wrap=Object.hasOwn(t,"wrap")?t.wrap:!0,this.sandbox=t.sandbox||{},this.eval=t.eval===void 0?"safe":t.eval,this.ignoreEvalErrors=typeof t.ignoreEvalErrors>"u"?!1:t.ignoreEvalErrors,this.parent=t.parent||null,this.parentProperty=t.parentProperty||null,this.callback=t.callback||i||null,this.otherTypeCallback=t.otherTypeCallback||n||function(){throw new TypeError("You must supply an otherTypeCallback callback option with the @other() operator.")},t.autostart!==!1){let r={path:o?t.path:e};o?"json"in t&&(r.json=t.json):r.json=A;let s=this.evaluate(r);if(!s||typeof s!="object")throw new AN(s);return s}}Rn.prototype.evaluate=function(t,e,A,i){let n=this.parent,o=this.parentProperty,{flatten:r,wrap:s}=this;if(this.currResultType=this.resultType,this.currEval=this.eval,this.currSandbox=this.sandbox,A=A||this.callback,this.currOtherTypeCallback=i||this.otherTypeCallback,e=e||this.json,t=t||this.path,t&&typeof t=="object"&&!Array.isArray(t)){if(!t.path&&t.path!=="")throw new TypeError('You must supply a "path" property when providing an object argument to JSONPath.evaluate().');if(!Object.hasOwn(t,"json"))throw new TypeError('You must supply a "json" property when providing an object argument to JSONPath.evaluate().');({json:e}=t),r=Object.hasOwn(t,"flatten")?t.flatten:r,this.currResultType=Object.hasOwn(t,"resultType")?t.resultType:this.currResultType,this.currSandbox=Object.hasOwn(t,"sandbox")?t.sandbox:this.currSandbox,s=Object.hasOwn(t,"wrap")?t.wrap:s,this.currEval=Object.hasOwn(t,"eval")?t.eval:this.currEval,A=Object.hasOwn(t,"callback")?t.callback:A,this.currOtherTypeCallback=Object.hasOwn(t,"otherTypeCallback")?t.otherTypeCallback:this.currOtherTypeCallback,n=Object.hasOwn(t,"parent")?t.parent:n,o=Object.hasOwn(t,"parentProperty")?t.parentProperty:o,t=t.path}if(n=n||null,o=o||null,Array.isArray(t)&&(t=Rn.toPathString(t)),!t&&t!==""||!e)return;let a=Rn.toPathArray(t);a[0]==="$"&&a.length>1&&a.shift(),this._hasParentSelector=null;let c=this._trace(a,e,["$"],n,o,A).filter(function(g){return g&&!g.isParentSelector});return c.length?!s&&c.length===1&&!c[0].hasArrExpr?this._getPreferredOutput(c[0]):c.reduce((g,I)=>{let C=this._getPreferredOutput(I);return r&&Array.isArray(C)?g=g.concat(C):g.push(C),g},[]):s?[]:void 0};Rn.prototype._getPreferredOutput=function(t){let e=this.currResultType;switch(e){case"all":{let A=Array.isArray(t.path)?t.path:Rn.toPathArray(t.path);return t.pointer=Rn.toPointer(A),t.path=typeof t.path=="string"?t.path:Rn.toPathString(t.path),t}case"value":case"parent":case"parentProperty":return t[e];case"path":return Rn.toPathString(t[e]);case"pointer":return Rn.toPointer(t.path);default:throw new TypeError("Unknown result type")}};Rn.prototype._handleCallback=function(t,e,A){if(e){let i=this._getPreferredOutput(t);t.path=typeof t.path=="string"?t.path:Rn.toPathString(t.path),e(i,A,t)}};Rn.prototype._trace=function(t,e,A,i,n,o,r,s){let a;if(!t.length)return a={path:A,value:e,parent:i,parentProperty:n,hasArrExpr:r},this._handleCallback(a,o,"value"),a;let c=t[0],g=t.slice(1),I=[];function C(d){Array.isArray(d)?d.forEach(B=>{I.push(B)}):I.push(d)}if((typeof c!="string"||s)&&e&&Object.hasOwn(e,c))C(this._trace(g,e[c],k1(A,c),e,c,o,r));else if(c==="*")this._walk(e,d=>{C(this._trace(g,e[d],k1(A,d),e,d,o,!0,!0))});else if(c==="..")C(this._trace(g,e,A,i,n,o,r)),this._walk(e,d=>{typeof e[d]=="object"&&C(this._trace(t.slice(),e[d],k1(A,d),e,d,o,!0))});else{if(c==="^")return this._hasParentSelector=!0,{path:A.slice(0,-1),expr:g,isParentSelector:!0};if(c==="~")return a={path:k1(A,c),value:n,parent:i,parentProperty:null},this._handleCallback(a,o,"property"),a;if(c==="$")C(this._trace(g,e,A,null,null,o,r));else if(/^(-?\d*):(-?\d*):?(\d*)$/u.test(c))C(this._slice(c,g,e,A,i,n,o));else if(c.indexOf("?(")===0){if(this.currEval===!1)throw new Error("Eval [?(expr)] prevented in JSONPath expression.");let d=c.replace(/^\?\((.*?)\)$/u,"$1"),B=/@.?([^?]*)[['](\??\(.*?\))(?!.\)\])[\]']/gu.exec(d);B?this._walk(e,E=>{let u=[B[2]],h=B[1]?e[E][B[1]]:e[E];this._trace(u,h,A,i,n,o,!0).length>0&&C(this._trace(g,e[E],k1(A,E),e,E,o,!0))}):this._walk(e,E=>{this._eval(d,e[E],E,A,i,n)&&C(this._trace(g,e[E],k1(A,E),e,E,o,!0))})}else if(c[0]==="("){if(this.currEval===!1)throw new Error("Eval [(expr)] prevented in JSONPath expression.");C(this._trace($x(this._eval(c,e,A.at(-1),A.slice(0,-1),i,n),g),e,A,i,n,o,r))}else if(c[0]==="@"){let d=!1,B=c.slice(1,-2);switch(B){case"scalar":(!e||!["object","function"].includes(typeof e))&&(d=!0);break;case"boolean":case"string":case"undefined":case"function":typeof e===B&&(d=!0);break;case"integer":Number.isFinite(e)&&!(e%1)&&(d=!0);break;case"number":Number.isFinite(e)&&(d=!0);break;case"nonFinite":typeof e=="number"&&!Number.isFinite(e)&&(d=!0);break;case"object":e&&typeof e===B&&(d=!0);break;case"array":Array.isArray(e)&&(d=!0);break;case"other":d=this.currOtherTypeCallback(e,A,i,n);break;case"null":e===null&&(d=!0);break;default:throw new TypeError("Unknown value type "+B)}if(d)return a={path:A,value:e,parent:i,parentProperty:n},this._handleCallback(a,o,"value"),a}else if(c[0]==="`"&&e&&Object.hasOwn(e,c.slice(1))){let d=c.slice(1);C(this._trace(g,e[d],k1(A,d),e,d,o,r,!0))}else if(c.includes(",")){let d=c.split(",");for(let B of d)C(this._trace($x(B,g),e,A,i,n,o,!0))}else!s&&e&&Object.hasOwn(e,c)&&C(this._trace(g,e[c],k1(A,c),e,c,o,r,!0))}if(this._hasParentSelector)for(let d=0;d{e(A)})};Rn.prototype._slice=function(t,e,A,i,n,o,r){if(!Array.isArray(A))return;let s=A.length,a=t.split(":"),c=a[2]&&Number.parseInt(a[2])||1,g=a[0]&&Number.parseInt(a[0])||0,I=a[1]&&Number.parseInt(a[1])||s;g=g<0?Math.max(0,g+s):Math.min(s,g),I=I<0?Math.max(0,I+s):Math.min(s,I);let C=[];for(let d=g;d{C.push(E)});return C};Rn.prototype._eval=function(t,e,A,i,n,o){this.currSandbox._$_parentProperty=o,this.currSandbox._$_parent=n,this.currSandbox._$_property=A,this.currSandbox._$_root=this.json,this.currSandbox._$_v=e;let r=t.includes("@path");r&&(this.currSandbox._$_path=Rn.toPathString(i.concat([A])));let s=this.currEval+"Script:"+t;if(!Rn.cache[s]){let a=t.replaceAll("@parentProperty","_$_parentProperty").replaceAll("@parent","_$_parent").replaceAll("@property","_$_property").replaceAll("@root","_$_root").replaceAll(/@([.\s)[])/gu,"_$_v$1");if(r&&(a=a.replaceAll("@path","_$_path")),this.currEval==="safe"||this.currEval===!0||this.currEval===void 0)Rn.cache[s]=new this.safeVm.Script(a);else if(this.currEval==="native")Rn.cache[s]=new this.vm.Script(a);else if(typeof this.currEval=="function"&&this.currEval.prototype&&Object.hasOwn(this.currEval.prototype,"runInNewContext")){let c=this.currEval;Rn.cache[s]=new c(a)}else if(typeof this.currEval=="function")Rn.cache[s]={runInNewContext:c=>this.currEval(a,c)};else throw new TypeError(`Unknown "eval" property "${this.currEval}"`)}try{return Rn.cache[s].runInNewContext(this.currSandbox)}catch(a){if(this.ignoreEvalErrors)return!1;throw new Error("jsonPath: "+a.message+": "+t)}};Rn.cache={};Rn.toPathString=function(t){let e=t,A=e.length,i="$";for(let n=1;ntypeof e[c]=="function");let o=i.map(c=>e[c]);A=n.reduce((c,g)=>{let I=e[g].toString();return/function/u.test(I)||(I="function "+I),"var "+g+"="+I+";"+c},"")+A,!/(['"])use strict\1/u.test(A)&&!i.includes("arguments")&&(A="var arguments = undefined;"+A),A=A.replace(/;\s*$/u,"");let s=A.lastIndexOf(";"),a=s!==-1?A.slice(0,s+1)+" return "+A.slice(s+1):" return "+A;return new Function(...i,a)(...o)}};Rn.prototype.vm={Script:eN};var iN=[],deA=[];(()=>{let t="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,A=0;e>1;if(t=deA[i])e=i+1;else return!0;if(e==A)return!1}}function leA(t){return t>=127462&&t<=127487}var IeA=8205;function BeA(t,e,A=!0,i=!0){return(A?EeA:GRA)(t,e,i)}function EeA(t,e,A){if(e==t.length)return e;e&&QeA(t.charCodeAt(e))&&ueA(t.charCodeAt(e-1))&&e--;let i=tN(t,e);for(e+=CeA(i);e=0&&leA(tN(t,r));)o++,r-=2;if(o%2==0)break;e+=2}else break}return e}function GRA(t,e,A){for(;e>0;){let i=EeA(t,e-2,A);if(i=56320&&t<57344}function ueA(t){return t>=55296&&t<56320}function CeA(t){return t<65536?1:2}var tn=class t{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,A,i){[e,A]=KE(this,e,A);let n=[];return this.decompose(0,e,n,2),i.length&&i.decompose(0,i.length,n,3),this.decompose(A,this.length,n,1),FE.from(n,this.length-(A-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,A=this.length){[e,A]=KE(this,e,A);let i=[];return this.decompose(e,A,i,0),FE.from(i,A-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let A=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),n=new bC(this),o=new bC(e);for(let r=A,s=A;;){if(n.next(r),o.next(r),r=0,n.lineBreak!=o.lineBreak||n.done!=o.done||n.value!=o.value)return!1;if(s+=n.value.length,n.done||s>=i)return!0}}iter(e=1){return new bC(this,e)}iterRange(e,A=this.length){return new bD(this,e,A)}iterLines(e,A){let i;if(e==null)i=this.iter();else{A==null&&(A=this.lines+1);let n=this.line(e).from;i=this.iterRange(n,Math.max(n,A==this.lines+1?this.length:A<=1?0:this.line(A-1).to))}return new kD(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?t.empty:e.length<=32?new gc(e):FE.from(gc.split(e,[]))}},gc=class t extends tn{constructor(e,A=KRA(e)){super(),this.text=e,this.length=A}get lines(){return this.text.length}get children(){return null}lineInner(e,A,i,n){for(let o=0;;o++){let r=this.text[o],s=n+r.length;if((A?i:s)>=e)return new rN(n,s,i,r);n=s+1,i++}}decompose(e,A,i,n){let o=e<=0&&A>=this.length?this:new t(heA(this.text,e,A),Math.min(A,this.length)-Math.max(0,e));if(n&1){let r=i.pop(),s=MD(o.text,r.text.slice(),0,o.length);if(s.length<=32)i.push(new t(s,r.length+o.length));else{let a=s.length>>1;i.push(new t(s.slice(0,a)),new t(s.slice(a)))}}else i.push(o)}replace(e,A,i){if(!(i instanceof t))return super.replace(e,A,i);[e,A]=KE(this,e,A);let n=MD(this.text,MD(i.text,heA(this.text,0,e)),A),o=this.length+i.length-(A-e);return n.length<=32?new t(n,o):FE.from(t.split(n,[]),o)}sliceString(e,A=this.length,i=` `){[e,A]=KE(this,e,A);let n="";for(let o=0,r=0;o<=A&&re&&r&&(n+=i),eo&&(n+=s.slice(Math.max(0,e-o),A-o)),o=a+1}return n}flatten(e){for(let A of this.text)e.push(A)}scanIdentical(){return 0}static split(e,A){let i=[],n=-1;for(let o of e)i.push(o),n+=o.length+1,i.length==32&&(A.push(new t(i,n)),i=[],n=-1);return n>-1&&A.push(new t(i,n)),A}},FE=class t extends tn{constructor(e,A){super(),this.children=e,this.length=A,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,A,i,n){for(let o=0;;o++){let r=this.children[o],s=n+r.length,a=i+r.lines-1;if((A?a:s)>=e)return r.lineInner(e,A,i,n);n=s+1,i=a+1}}decompose(e,A,i,n){for(let o=0,r=0;r<=A&&o=r){let c=n&((r<=e?1:0)|(a>=A?2:0));r>=e&&a<=A&&!c?i.push(s):s.decompose(e-r,A-r,i,c)}r=a+1}}replace(e,A,i){if([e,A]=KE(this,e,A),i.lines=o&&A<=s){let a=r.replace(e-o,A-o,i),c=this.lines-r.lines+a.lines;if(a.lines>4&&a.lines>c>>6){let g=this.children.slice();return g[n]=a,new t(g,this.length-(A-e)+i.length)}return super.replace(o,s,a)}o=s+1}return super.replace(e,A,i)}sliceString(e,A=this.length,i=` -`){[e,A]=KE(this,e,A);let n="";for(let o=0,r=0;oe&&o&&(n+=i),er&&(n+=s.sliceString(e-r,A-r,i)),r=a+1}return n}flatten(e){for(let A of this.children)A.flatten(e)}scanIdentical(e,A){if(!(e instanceof t))return 0;let i=0,[n,o,r,s]=A>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;n+=A,o+=A){if(n==r||o==s)return i;let a=this.children[n],c=e.children[o];if(a!=c)return i+a.scanIdentical(c,A);i+=a.length+1}}static from(e,A=e.reduce((i,n)=>i+n.length+1,-1)){let i=0;for(let d of e)i+=d.lines;if(i<32){let d=[];for(let B of e)B.flatten(d);return new gc(d,A)}let n=Math.max(32,i>>5),o=n<<1,r=n>>1,s=[],a=0,c=-1,g=[];function I(d){let B;if(d.lines>o&&d instanceof t)for(let E of d.children)I(E);else d.lines>r&&(a>r||!a)?(C(),s.push(d)):d instanceof gc&&a&&(B=g[g.length-1])instanceof gc&&d.lines+B.lines<=32?(a+=d.lines,c+=d.length+1,g[g.length-1]=new gc(B.text.concat(d.text),B.length+1+d.length)):(a+d.lines>n&&C(),a+=d.lines,c+=d.length+1,g.push(d))}function C(){a!=0&&(s.push(g.length==1?g[0]:t.from(g,c)),c=-1,a=g.length=0)}for(let d of e)I(d);return C(),s.length==1?s[0]:new t(s,A)}};tn.empty=new gc([""],0);function _RA(t){let e=-1;for(let A of t)e+=A.length+1;return e}function MD(t,e,A=0,i=1e9){for(let n=0,o=0,r=!0;o=A&&(a>i&&(s=s.slice(0,i-n)),n0?1:(e instanceof gc?e.text.length:e.children.length)<<1]}nextInner(e,A){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,n=this.nodes[i],o=this.offsets[i],r=o>>1,s=n instanceof gc?n.text.length:n.children.length;if(r==(A>0?s:0)){if(i==0)return this.done=!0,this.value="",this;A>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((o&1)==(A>0?0:1)){if(this.offsets[i]+=A,e==0)return this.lineBreak=!0,this.value=` -`,this;e--}else if(n instanceof gc){let a=n.text[r+(A<0?-1:0)];if(this.offsets[i]+=A,a.length>Math.max(0,e))return this.value=e==0?a:A>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=n.children[r+(A<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=A):(A<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(A>0?1:(a instanceof gc?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},bD=class{constructor(e,A,i){this.value="",this.done=!1,this.cursor=new bC(e,A>i?-1:1),this.pos=A>i?e.length:0,this.from=Math.min(A,i),this.to=Math.max(A,i)}nextInner(e,A){if(A<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,A<0?this.pos-this.to:this.from-this.pos);let i=A<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:n}=this.cursor.next(e);return this.pos+=(n.length+e)*A,this.value=n.length<=i?n:A<0?n.slice(n.length-i):n.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},kD=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:A,lineBreak:i,value:n}=this.inner.next(e);return A&&this.afterBreak?(this.value="",this.afterBreak=!1):A?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(tn.prototype[Symbol.iterator]=function(){return this.iter()},bC.prototype[Symbol.iterator]=bD.prototype[Symbol.iterator]=kD.prototype[Symbol.iterator]=function(){return this});var rN=class{constructor(e,A,i,n){this.from=e,this.to=A,this.number=i,this.text=n}get length(){return this.to-this.from}};function KE(t,e,A){return e=Math.max(0,Math.min(t.length,e)),[e,Math.max(e,Math.min(t.length,A))]}function br(t,e,A=!0,i=!0){return BeA(t,e,A,i)}function GRA(t){return t>=56320&&t<57344}function KRA(t){return t>=55296&&t<56320}function ms(t,e){let A=t.charCodeAt(e);if(!KRA(A)||e+1==t.length)return A;let i=t.charCodeAt(e+1);return GRA(i)?(A-55296<<10)+(i-56320)+65536:A}function V4(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10)+55296,(t&1023)+56320))}function lc(t){return t<65536?1:2}var sN=/\r\n?|\n/,us=function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t}(us||(us={})),R1=class t{constructor(e){this.sections=e}get length(){let e=0;for(let A=0;Ae)return o+(e-n);o+=s}else{if(i!=us.Simple&&c>=e&&(i==us.TrackDel&&ne||i==us.TrackBefore&&ne))return null;if(c>e||c==e&&A<0&&!s)return e==n||A<0?o:o+a;o+=a}n=c}if(e>n)throw new RangeError(`Position ${e} is out of range for changeset of length ${n}`);return o}touchesRange(e,A=e){for(let i=0,n=0;i=0&&n<=A&&s>=e)return nA?"cover":!0;n=s}return!1}toString(){let e="";for(let A=0;A=0?":"+n:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(A=>typeof A!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new t(e)}static create(e){return new t(e)}},hs=class t extends R1{constructor(e,A){super(e),this.inserted=A}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return aN(this,(A,i,n,o,r)=>e=e.replace(n,n+(i-A),r),!1),e}mapDesc(e,A=!1){return cN(this,e,A,!0)}invert(e){let A=this.sections.slice(),i=[];for(let n=0,o=0;n=0){A[n]=s,A[n+1]=r;let a=n>>1;for(;i.length0&&S1(i,A,o.text),o.forward(g),s+=g}let c=e[r++];for(;s>1].toJSON()))}return e}static of(e,A,i){let n=[],o=[],r=0,s=null;function a(g=!1){if(!g&&!n.length)return;rC||I<0||C>A)throw new RangeError(`Invalid change range ${I} to ${C} (in doc of length ${A})`);let B=d?typeof d=="string"?tn.of(d.split(i||sN)):d:tn.empty,E=B.length;if(I==C&&E==0)return;Ir&&Gs(n,I-r,-1),Gs(n,C-I,E),S1(o,n,B),r=C}}return c(e),a(!s),s}static empty(e){return new t(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let A=[],i=[];for(let n=0;ns&&typeof r!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(o.length==1)A.push(o[0],0);else{for(;i.length=0&&A<=0&&A==t[n+1]?t[n]+=e:n>=0&&e==0&&t[n]==0?t[n+1]+=A:i?(t[n]+=e,t[n+1]+=A):t.push(e,A)}function S1(t,e,A){if(A.length==0)return;let i=e.length-2>>1;if(i>1])),!(A||r==t.sections.length||t.sections[r+1]<0);)s=t.sections[r++],a=t.sections[r++];e(n,c,o,g,I),n=c,o=g}}}function cN(t,e,A,i=!1){let n=[],o=i?[]:null,r=new kC(t),s=new kC(e);for(let a=-1;;){if(r.done&&s.len||s.done&&r.len)throw new Error("Mismatched change set lengths");if(r.ins==-1&&s.ins==-1){let c=Math.min(r.len,s.len);Gs(n,c,-1),r.forward(c),s.forward(c)}else if(s.ins>=0&&(r.ins<0||a==r.i||r.off==0&&(s.len=0&&a=0){let c=0,g=r.len;for(;g;)if(s.ins==-1){let I=Math.min(g,s.len);c+=I,g-=I,s.forward(I)}else if(s.ins==0&&s.lena||r.ins>=0&&r.len>a)&&(s||i.length>c),o.forward2(a),r.forward(a)}}}}var kC=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return A>=e.length?tn.empty:e[A]}textBit(e){let{inserted:A}=this.set,i=this.i-2>>1;return i>=A.length&&!e?tn.empty:A[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},NE=class t{constructor(e,A,i){this.from=e,this.to=A,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,A=-1){let i,n;return this.empty?i=n=e.mapPos(this.from,A):(i=e.mapPos(this.from,1),n=e.mapPos(this.to,-1)),i==this.from&&n==this.to?this:new t(i,n,this.flags)}extend(e,A=e){if(e<=this.anchor&&A>=this.anchor)return ae.range(e,A);let i=Math.abs(e-this.anchor)>Math.abs(A-this.anchor)?e:A;return ae.range(this.anchor,i)}eq(e,A=!1){return this.anchor==e.anchor&&this.head==e.head&&(!A||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return ae.range(e.anchor,e.head)}static create(e,A,i){return new t(e,A,i)}},ae=class t{constructor(e,A){this.ranges=e,this.mainIndex=A}map(e,A=-1){return e.empty?this:t.create(this.ranges.map(i=>i.map(e,A)),this.mainIndex)}eq(e,A=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;ie.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new t(e.ranges.map(A=>NE.fromJSON(A)),e.main)}static single(e,A=e){return new t([t.range(e,A)],0)}static create(e,A=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,n=0;ne?8:0)|o)}static normalized(e,A=0){let i=e[A];e.sort((n,o)=>n.from-o.from),A=e.indexOf(i);for(let n=1;no.head?t.range(a,s):t.range(s,a))}}return new t(e,A)}};function MeA(t,e){for(let A of t.ranges)if(A.to>e)throw new RangeError("Selection points outside of document")}var uN=0,qe=class t{constructor(e,A,i,n,o){this.combine=e,this.compareInput=A,this.compare=i,this.isStatic=n,this.id=uN++,this.default=e([]),this.extensions=typeof o=="function"?o(this):o}get reader(){return this}static define(e={}){return new t(e.combine||(A=>A),e.compareInput||((A,i)=>A===i),e.compare||(e.combine?(A,i)=>A===i:hN),!!e.static,e.enables)}of(e){return new _E([],this,0,e)}compute(e,A){if(this.isStatic)throw new Error("Can't compute a static facet");return new _E(e,this,1,A)}computeN(e,A){if(this.isStatic)throw new Error("Can't compute a static facet");return new _E(e,this,2,A)}from(e,A){return A||(A=i=>i),this.compute([e],i=>A(i.field(e)))}};function hN(t,e){return t==e||t.length==e.length&&t.every((A,i)=>A===e[i])}var _E=class{constructor(e,A,i,n){this.dependencies=e,this.facet=A,this.type=i,this.value=n,this.id=uN++}dynamicSlot(e){var A;let i=this.value,n=this.facet.compareInput,o=this.id,r=e[o]>>1,s=this.type==2,a=!1,c=!1,g=[];for(let I of this.dependencies)I=="doc"?a=!0:I=="selection"?c=!0:(((A=e[I.id])!==null&&A!==void 0?A:1)&1)==0&&g.push(e[I.id]);return{create(I){return I.values[r]=i(I),1},update(I,C){if(a&&C.docChanged||c&&(C.docChanged||C.selection)||gN(I,g)){let d=i(I);if(s?!feA(d,I.values[r],n):!n(d,I.values[r]))return I.values[r]=d,1}return 0},reconfigure:(I,C)=>{let d,B=C.config.address[o];if(B!=null){let E=LD(C,B);if(this.dependencies.every(u=>u instanceof qe?C.facet(u)===I.facet(u):u instanceof tr?C.field(u,!1)==I.field(u,!1):!0)||(s?feA(d=i(I),E,n):n(d=i(I),E)))return I.values[r]=E,0}else d=i(I);return I.values[r]=d,1}}}};function feA(t,e,A){if(t.length!=e.length)return!1;for(let i=0;it[a.id]),n=A.map(a=>a.type),o=i.filter(a=>!(a&1)),r=t[e.id]>>1;function s(a){let c=[];for(let g=0;gi===n),e);return e.provide&&(A.provides=e.provide(A)),A}create(e){let A=e.facet(wD).find(i=>i.field==this);return(A?.create||this.createF)(e)}slot(e){let A=e[this.id]>>1;return{create:i=>(i.values[A]=this.create(i),1),update:(i,n)=>{let o=i.values[A],r=this.updateF(o,n);return this.compareF(o,r)?0:(i.values[A]=r,1)},reconfigure:(i,n)=>{let o=i.facet(wD),r=n.facet(wD),s;return(s=o.find(a=>a.field==this))&&s!=r.find(a=>a.field==this)?(i.values[A]=s.create(i),1):n.config.address[this.id]!=null?(i.values[A]=n.field(this),0):(i.values[A]=this.create(i),1)}}}init(e){return[this,wD.of({field:this,create:e})]}get extension(){return this}},vC={lowest:4,low:3,default:2,high:1,highest:0};function O4(t){return e=>new SD(e,t)}var Ng={highest:O4(vC.highest),high:O4(vC.high),default:O4(vC.default),low:O4(vC.low),lowest:O4(vC.lowest)},SD=class{constructor(e,A){this.inner=e,this.prec=A}},Jl=class t{of(e){return new P4(this,e)}reconfigure(e){return t.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},P4=class{constructor(e,A){this.compartment=e,this.inner=A}},RD=class t{constructor(e,A,i,n,o,r){for(this.base=e,this.compartments=A,this.dynamicSlots=i,this.address=n,this.staticValues=o,this.facets=r,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,A,i){let n=[],o=Object.create(null),r=new Map;for(let C of JRA(e,A,r))C instanceof tr?n.push(C):(o[C.facet.id]||(o[C.facet.id]=[])).push(C);let s=Object.create(null),a=[],c=[];for(let C of n)s[C.id]=c.length<<1,c.push(d=>C.slot(d));let g=i?.config.facets;for(let C in o){let d=o[C],B=d[0].facet,E=g&&g[C]||[];if(d.every(u=>u.type==0))if(s[B.id]=a.length<<1|1,hN(E,d))a.push(i.facet(B));else{let u=B.combine(d.map(h=>h.value));a.push(i&&B.compare(u,i.facet(B))?i.facet(B):u)}else{for(let u of d)u.type==0?(s[u.id]=a.length<<1|1,a.push(u.value)):(s[u.id]=c.length<<1,c.push(h=>u.dynamicSlot(h)));s[B.id]=c.length<<1,c.push(u=>URA(u,B,d))}}let I=c.map(C=>C(s));return new t(e,r,I,s,a,o)}};function JRA(t,e,A){let i=[[],[],[],[],[]],n=new Map;function o(r,s){let a=n.get(r);if(a!=null){if(a<=s)return;let c=i[a].indexOf(r);c>-1&&i[a].splice(c,1),r instanceof P4&&A.delete(r.compartment)}if(n.set(r,s),Array.isArray(r))for(let c of r)o(c,s);else if(r instanceof P4){if(A.has(r.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(r.compartment)||r.inner;A.set(r.compartment,c),o(c,s)}else if(r instanceof SD)o(r.inner,r.prec);else if(r instanceof tr)i[s].push(r),r.provides&&o(r.provides,s);else if(r instanceof _E)i[s].push(r),r.facet.extensions&&o(r.facet.extensions,vC.default);else{let c=r.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${r}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);o(c,s)}}return o(t,vC.default),i.reduce((r,s)=>r.concat(s))}function z4(t,e){if(e&1)return 2;let A=e>>1,i=t.status[A];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;t.status[A]=4;let n=t.computeSlot(t,t.config.dynamicSlots[A]);return t.status[A]=2|n}function LD(t,e){return e&1?t.config.staticValues[e>>1]:t.values[e>>1]}var meA=qe.define(),nN=qe.define({combine:t=>t.some(e=>e),static:!0}),beA=qe.define({combine:t=>t.length?t[0]:void 0,static:!0}),keA=qe.define(),SeA=qe.define(),ReA=qe.define(),peA=qe.define({combine:t=>t.length?t[0]:!1}),Fa=class{constructor(e,A){this.type=e,this.value=A}static define(){return new lN}},lN=class{of(e){return new Fa(this,e)}},IN=class{constructor(e){this.map=e}of(e){return new Ki(this,e)}},Ki=(()=>{class t{constructor(A,i){this.type=A,this.value=i}map(A){let i=this.type.map(this.value,A);return i===void 0?void 0:i==this.value?this:new t(this.type,i)}is(A){return this.type==A}static define(A={}){return new IN(A.map||(i=>i))}static mapEffects(A,i){if(!A.length)return A;let n=[];for(let o of A){let r=o.map(i);r&&n.push(r)}return n}}return t.reconfigure=t.define(),t.appendConfig=t.define(),t})(),Ul=(()=>{class t{constructor(A,i,n,o,r,s){this.startState=A,this.changes=i,this.selection=n,this.effects=o,this.annotations=r,this.scrollIntoView=s,this._doc=null,this._state=null,n&&MeA(n,i.newLength),r.some(a=>a.type==t.time)||(this.annotations=r.concat(t.time.of(Date.now())))}static create(A,i,n,o,r,s){return new t(A,i,n,o,r,s)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(A){for(let i of this.annotations)if(i.type==A)return i.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(A){let i=this.annotation(t.userEvent);return!!(i&&(i==A||i.length>A.length&&i.slice(0,A.length)==A&&i[A.length]=="."))}}return t.time=Fa.define(),t.userEvent=Fa.define(),t.addToHistory=Fa.define(),t.remote=Fa.define(),t})();function YRA(t,e){let A=[];for(let i=0,n=0;;){let o,r;if(i=t[i]))o=t[i++],r=t[i++];else if(n=0;n--){let o=i[n](t);o instanceof Ul?t=o:Array.isArray(o)&&o.length==1&&o[0]instanceof Ul?t=o[0]:t=xeA(e,GE(o),!1)}return t}function HRA(t){let e=t.startState,A=e.facet(ReA),i=t;for(let n=A.length-1;n>=0;n--){let o=A[n](t);o&&Object.keys(o).length&&(i=LeA(i,CN(e,o,t.changes.newLength),!0))}return i==t?t:Ul.create(e,t.changes,t.selection,i.effects,i.annotations,i.scrollIntoView)}var ORA=[];function GE(t){return t==null?ORA:Array.isArray(t)?t:[t]}var lo=function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t}(lo||(lo={})),zRA=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,dN;try{dN=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function PRA(t){if(dN)return dN.test(t);for(let e=0;e"\x80"&&(A.toUpperCase()!=A.toLowerCase()||zRA.test(A)))return!0}return!1}function jRA(t){return e=>{if(!/\S/.test(e))return lo.Space;if(PRA(e))return lo.Word;for(let A=0;A-1)return lo.Word;return lo.Other}}var Dr=(()=>{class t{constructor(A,i,n,o,r,s){this.config=A,this.doc=i,this.selection=n,this.values=o,this.status=A.statusTemplate.slice(),this.computeSlot=r,s&&(s._state=this);for(let a=0;ao.set(g,c)),i=null),o.set(a.value.compartment,a.value.extension)):a.is(Ki.reconfigure)?(i=null,n=a.value):a.is(Ki.appendConfig)&&(i=null,n=GE(n).concat(a.value));let r;i?r=A.startState.values.slice():(i=RD.resolve(n,o,this),r=new t(i,this.doc,this.selection,i.dynamicSlots.map(()=>null),(c,g)=>g.reconfigure(c,this),null).values);let s=A.startState.facet(nN)?A.newSelection:A.newSelection.asSingle();new t(i,A.newDoc,s,r,(a,c)=>c.update(a,A),A)}replaceSelection(A){return typeof A=="string"&&(A=this.toText(A)),this.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:A},range:ae.cursor(i.from+A.length)}))}changeByRange(A){let i=this.selection,n=A(i.ranges[0]),o=this.changes(n.changes),r=[n.range],s=GE(n.effects);for(let a=1;as.spec.fromJSON(a,c)))}}return t.create({doc:A.doc,selection:ae.fromJSON(A.selection),extensions:i.extensions?o.concat([i.extensions]):o})}static create(A={}){let i=RD.resolve(A.extensions||[],new Map),n=A.doc instanceof tn?A.doc:tn.of((A.doc||"").split(i.staticFacet(t.lineSeparator)||sN)),o=A.selection?A.selection instanceof ae?A.selection:ae.single(A.selection.anchor,A.selection.head):ae.single(0);return MeA(o,n.length),i.staticFacet(nN)||(o=o.asSingle()),new t(i,n,o,i.dynamicSlots.map(()=>null),(r,s)=>s.create(r),null)}get tabSize(){return this.facet(t.tabSize)}get lineBreak(){return this.facet(t.lineSeparator)||` -`}get readOnly(){return this.facet(peA)}phrase(A,...i){for(let n of this.facet(t.phrases))if(Object.prototype.hasOwnProperty.call(n,A)){A=n[A];break}return i.length&&(A=A.replace(/\$(\$|\d*)/g,(n,o)=>{if(o=="$")return"$";let r=+(o||1);return!r||r>i.length?n:i[r-1]})),A}languageDataAt(A,i,n=-1){let o=[];for(let r of this.facet(meA))for(let s of r(this,i,n))Object.prototype.hasOwnProperty.call(s,A)&&o.push(s[A]);return o}charCategorizer(A){return jRA(this.languageDataAt("wordChars",A).join(""))}wordAt(A){let{text:i,from:n,length:o}=this.doc.lineAt(A),r=this.charCategorizer(A),s=A-n,a=A-n;for(;s>0;){let c=br(i,s,!1);if(r(i.slice(c,s))!=lo.Word)break;s=c}for(;ae.length?e[0]:4}),t.lineSeparator=beA,t.readOnly=peA,t.phrases=qe.define({compare(e,A){let i=Object.keys(e),n=Object.keys(A);return i.length==n.length&&i.every(o=>e[o]==A[o])}}),t.languageData=meA,t.changeFilter=keA,t.transactionFilter=SeA,t.transactionExtender=ReA,t})();Jl.reconfigure=Ki.define();function ts(t,e,A={}){let i={};for(let n of t)for(let o of Object.keys(n)){let r=n[o],s=i[o];if(s===void 0)i[o]=r;else if(!(s===r||r===void 0))if(Object.hasOwnProperty.call(A,o))i[o]=A[o](s,r);else throw new Error("Config merge conflict for field "+o)}for(let n in e)i[n]===void 0&&(i[n]=e[n]);return i}var xg=class{eq(e){return this==e}range(e,A=e){return j4.create(e,A,this)}};xg.prototype.startSide=xg.prototype.endSide=0;xg.prototype.point=!1;xg.prototype.mapMode=us.TrackDel;var j4=class t{constructor(e,A,i){this.from=e,this.to=A,this.value=i}static create(e,A,i){return new t(e,A,i)}};function BN(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}var EN=class t{constructor(e,A,i,n){this.from=e,this.to=A,this.value=i,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(e,A,i,n=0){let o=i?this.to:this.from;for(let r=n,s=o.length;;){if(r==s)return r;let a=r+s>>1,c=o[a]-e||(i?this.value[a].endSide:this.value[a].startSide)-A;if(a==r)return c>=0?r:s;c>=0?s=a:r=a+1}}between(e,A,i,n){for(let o=this.findIndex(A,-1e9,!0),r=this.findIndex(i,1e9,!1,o);od||C==d&&c.startSide>0&&c.endSide<=0)continue;(d-C||c.endSide-c.startSide)<0||(r<0&&(r=C),c.point&&(s=Math.max(s,d-C)),i.push(c),n.push(C-r),o.push(d-r))}return{mapped:i.length?new t(n,o,i,s):null,pos:r}}},Io=(()=>{class t{constructor(A,i,n,o){this.chunkPos=A,this.chunk=i,this.nextLayer=n,this.maxPoint=o}static create(A,i,n,o){return new t(A,i,n,o)}get length(){let A=this.chunk.length-1;return A<0?0:Math.max(this.chunkEnd(A),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let A=this.nextLayer.size;for(let i of this.chunk)A+=i.value.length;return A}chunkEnd(A){return this.chunkPos[A]+this.chunk[A].length}update(A){let{add:i=[],sort:n=!1,filterFrom:o=0,filterTo:r=this.length}=A,s=A.filter;if(i.length==0&&!s)return this;if(n&&(i=i.slice().sort(BN)),this.isEmpty)return i.length?t.of(i):this;let a=new xD(this,null,-1).goto(0),c=0,g=[],I=new fs;for(;a.value||c=0){let C=i[c++];I.addInner(C.from,C.to,C.value)||g.push(C)}else a.rangeIndex==1&&a.chunkIndexthis.chunkEnd(a.chunkIndex)||ra.to||r=r&&A<=r+s.length&&s.between(r,A-r,i-r,n)===!1)return}this.nextLayer.between(A,i,n)}}iter(A=0){return q4.from([this]).goto(A)}get isEmpty(){return this.nextLayer==this}static iter(A,i=0){return q4.from(A).goto(i)}static compare(A,i,n,o,r=-1){let s=A.filter(C=>C.maxPoint>0||!C.isEmpty&&C.maxPoint>=r),a=i.filter(C=>C.maxPoint>0||!C.isEmpty&&C.maxPoint>=r),c=DeA(s,a,n),g=new MC(s,c,r),I=new MC(a,c,r);n.iterGaps((C,d,B)=>weA(g,C,I,d,B,o)),n.empty&&n.length==0&&weA(g,0,I,0,0,o)}static eq(A,i,n=0,o){o==null&&(o=999999999);let r=A.filter(I=>!I.isEmpty&&i.indexOf(I)<0),s=i.filter(I=>!I.isEmpty&&A.indexOf(I)<0);if(r.length!=s.length)return!1;if(!r.length)return!0;let a=DeA(r,s),c=new MC(r,a,0).goto(n),g=new MC(s,a,0).goto(n);for(;;){if(c.to!=g.to||!QN(c.active,g.active)||c.point&&(!g.point||!c.point.eq(g.point)))return!1;if(c.to>o)return!0;c.next(),g.next()}}static spans(A,i,n,o,r=-1){let s=new MC(A,null,r).goto(i),a=i,c=s.openStart;for(;;){let g=Math.min(s.to,n);if(s.point){let I=s.activeForPoint(s.to),C=s.pointFroma&&(o.span(a,g,s.active,c),c=s.openEnd(g));if(s.to>n)return c+(s.point&&s.to>n?1:0);a=s.to,s.next()}}static of(A,i=!1){let n=new fs;for(let o of A instanceof j4?[A]:i?qRA(A):A)n.add(o.from,o.to,o.value);return n.finish()}static join(A){if(!A.length)return t.empty;let i=A[A.length-1];for(let n=A.length-2;n>=0;n--)for(let o=A[n];o!=t.empty;o=o.nextLayer)i=new t(o.chunkPos,o.chunk,i,Math.max(o.maxPoint,i.maxPoint));return i}}return t.empty=new t([],[],null,-1),t})();function qRA(t){if(t.length>1)for(let e=t[0],A=1;A0)return t.slice().sort(BN);e=i}return t}Io.empty.nextLayer=Io.empty;var fs=class t{finishChunk(e){this.chunks.push(new EN(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,A,i){this.addInner(e,A,i)||(this.nextLayer||(this.nextLayer=new t)).add(e,A,i)}addInner(e,A,i){let n=e-this.lastTo||i.startSide-this.last.endSide;if(n<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return n<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(A-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=A,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,A-e)),!0)}addChunk(e,A){if((e-this.lastTo||A.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,A.maxPoint),this.chunks.push(A),this.chunkPos.push(e);let i=A.value.length-1;return this.last=A.value[i],this.lastFrom=A.from[i]+e,this.lastTo=A.to[i]+e,!0}finish(){return this.finishInner(Io.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let A=Io.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,A}};function DeA(t,e,A){let i=new Map;for(let o of t)for(let r=0;r=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&n.push(new xD(r,A,i,o));return n.length==1?n[0]:new t(n)}get startSide(){return this.value?this.value.startSide:0}goto(e,A=-1e9){for(let i of this.heap)i.goto(e,A);for(let i=this.heap.length>>1;i>=0;i--)oN(this.heap,i);return this.next(),this}forward(e,A){for(let i of this.heap)i.forward(e,A);for(let i=this.heap.length>>1;i>=0;i--)oN(this.heap,i);(this.to-e||this.value.endSide-A)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),oN(this.heap,0)}}};function oN(t,e){for(let A=t[e];;){let i=(e<<1)+1;if(i>=t.length)break;let n=t[i];if(i+1=0&&(n=t[i+1],i++),A.compare(n)<0)break;t[i]=A,t[e]=n,e=i}}var MC=class{constructor(e,A,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=q4.from(e,A,i)}goto(e,A=-1e9){return this.cursor.goto(e,A),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=A,this.openStart=-1,this.next(),this}forward(e,A){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-A)<0;)this.removeActive(this.minActive);this.cursor.forward(e,A)}removeActive(e){yD(this.active,e),yD(this.activeTo,e),yD(this.activeRank,e),this.minActive=yeA(this.active,this.activeTo)}addActive(e){let A=0,{value:i,to:n,rank:o}=this.cursor;for(;A0;)A++;vD(this.active,A,i),vD(this.activeTo,A,n),vD(this.activeRank,A,o),e&&vD(e,A,this.cursor.from),this.minActive=yeA(this.active,this.activeTo)}next(){let e=this.to,A=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let n=this.minActive;if(n>-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>e){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),i&&yD(i,n)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let o=this.cursor.value;if(!o.point)this.addActive(i),this.cursor.next();else if(A&&this.cursor.to==this.to&&this.cursor.from=0&&i[n]=0&&!(this.activeRank[i]e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&A.push(this.active[i]);return A.reverse()}openEnd(e){let A=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)A++;return A}};function weA(t,e,A,i,n,o){t.goto(e),A.goto(i);let r=i+n,s=i,a=i-e;for(;;){let c=t.to+a-A.to,g=c||t.endSide-A.endSide,I=g<0?t.to+a:A.to,C=Math.min(I,r);if(t.point||A.point?t.point&&A.point&&(t.point==A.point||t.point.eq(A.point))&&QN(t.activeForPoint(t.to),A.activeForPoint(A.to))||o.comparePoint(s,C,t.point,A.point):C>s&&!QN(t.active,A.active)&&o.compareRange(s,C,t.active,A.active),I>r)break;(c||t.openEnd!=A.openEnd)&&o.boundChange&&o.boundChange(I),s=I,g<=0&&t.next(),g>=0&&A.next()}}function QN(t,e){if(t.length!=e.length)return!1;for(let A=0;A=e;i--)t[i+1]=t[i];t[e]=A}function yeA(t,e){let A=-1,i=1e9;for(let n=0;n=e)return n;if(n==t.length)break;o+=t.charCodeAt(n)==9?A-o%A:1,n=br(t,n)}return i===!0?-1:t.length}var fN="\u037C",NeA=typeof Symbol>"u"?"__"+fN:Symbol.for(fN),mN=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),FeA=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},jc=class{constructor(e,A){this.rules=[];let{finish:i}=A||{};function n(r){return/^@/.test(r)?[r]:r.split(/,\s*/)}function o(r,s,a,c){let g=[],I=/^@(\w+)\b/.exec(r[0]),C=I&&I[1]=="keyframes";if(I&&s==null)return a.push(r[0]+";");for(let d in s){let B=s[d];if(/&/.test(d))o(d.split(/,\s*/).map(E=>r.map(u=>E.replace(/&/,u))).reduce((E,u)=>E.concat(u)),B,a);else if(B&&typeof B=="object"){if(!I)throw new RangeError("The value of a property ("+d+") should be a primitive value.");o(n(d),B,g,C)}else B!=null&&g.push(d.replace(/_.*/,"").replace(/[A-Z]/g,E=>"-"+E.toLowerCase())+": "+B+";")}(g.length||C)&&a.push((i&&!I&&!c?r.map(i):r).join(", ")+" {"+g.join(" ")+"}")}for(let r in e)o(n(r),e[r],this.rules)}getRules(){return this.rules.join(` +`){[e,A]=KE(this,e,A);let n="";for(let o=0,r=0;oe&&o&&(n+=i),er&&(n+=s.sliceString(e-r,A-r,i)),r=a+1}return n}flatten(e){for(let A of this.children)A.flatten(e)}scanIdentical(e,A){if(!(e instanceof t))return 0;let i=0,[n,o,r,s]=A>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;n+=A,o+=A){if(n==r||o==s)return i;let a=this.children[n],c=e.children[o];if(a!=c)return i+a.scanIdentical(c,A);i+=a.length+1}}static from(e,A=e.reduce((i,n)=>i+n.length+1,-1)){let i=0;for(let d of e)i+=d.lines;if(i<32){let d=[];for(let B of e)B.flatten(d);return new gc(d,A)}let n=Math.max(32,i>>5),o=n<<1,r=n>>1,s=[],a=0,c=-1,g=[];function I(d){let B;if(d.lines>o&&d instanceof t)for(let E of d.children)I(E);else d.lines>r&&(a>r||!a)?(C(),s.push(d)):d instanceof gc&&a&&(B=g[g.length-1])instanceof gc&&d.lines+B.lines<=32?(a+=d.lines,c+=d.length+1,g[g.length-1]=new gc(B.text.concat(d.text),B.length+1+d.length)):(a+d.lines>n&&C(),a+=d.lines,c+=d.length+1,g.push(d))}function C(){a!=0&&(s.push(g.length==1?g[0]:t.from(g,c)),c=-1,a=g.length=0)}for(let d of e)I(d);return C(),s.length==1?s[0]:new t(s,A)}};tn.empty=new gc([""],0);function KRA(t){let e=-1;for(let A of t)e+=A.length+1;return e}function MD(t,e,A=0,i=1e9){for(let n=0,o=0,r=!0;o=A&&(a>i&&(s=s.slice(0,i-n)),n0?1:(e instanceof gc?e.text.length:e.children.length)<<1]}nextInner(e,A){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,n=this.nodes[i],o=this.offsets[i],r=o>>1,s=n instanceof gc?n.text.length:n.children.length;if(r==(A>0?s:0)){if(i==0)return this.done=!0,this.value="",this;A>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((o&1)==(A>0?0:1)){if(this.offsets[i]+=A,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(n instanceof gc){let a=n.text[r+(A<0?-1:0)];if(this.offsets[i]+=A,a.length>Math.max(0,e))return this.value=e==0?a:A>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=n.children[r+(A<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=A):(A<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(A>0?1:(a instanceof gc?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},bD=class{constructor(e,A,i){this.value="",this.done=!1,this.cursor=new bC(e,A>i?-1:1),this.pos=A>i?e.length:0,this.from=Math.min(A,i),this.to=Math.max(A,i)}nextInner(e,A){if(A<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,A<0?this.pos-this.to:this.from-this.pos);let i=A<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:n}=this.cursor.next(e);return this.pos+=(n.length+e)*A,this.value=n.length<=i?n:A<0?n.slice(n.length-i):n.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},kD=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:A,lineBreak:i,value:n}=this.inner.next(e);return A&&this.afterBreak?(this.value="",this.afterBreak=!1):A?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(tn.prototype[Symbol.iterator]=function(){return this.iter()},bC.prototype[Symbol.iterator]=bD.prototype[Symbol.iterator]=kD.prototype[Symbol.iterator]=function(){return this});var rN=class{constructor(e,A,i,n){this.from=e,this.to=A,this.number=i,this.text=n}get length(){return this.to-this.from}};function KE(t,e,A){return e=Math.max(0,Math.min(t.length,e)),[e,Math.max(e,Math.min(t.length,A))]}function br(t,e,A=!0,i=!0){return BeA(t,e,A,i)}function URA(t){return t>=56320&&t<57344}function JRA(t){return t>=55296&&t<56320}function ms(t,e){let A=t.charCodeAt(e);if(!JRA(A)||e+1==t.length)return A;let i=t.charCodeAt(e+1);return URA(i)?(A-55296<<10)+(i-56320)+65536:A}function V4(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10)+55296,(t&1023)+56320))}function lc(t){return t<65536?1:2}var sN=/\r\n?|\n/,us=function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t}(us||(us={})),R1=class t{constructor(e){this.sections=e}get length(){let e=0;for(let A=0;Ae)return o+(e-n);o+=s}else{if(i!=us.Simple&&c>=e&&(i==us.TrackDel&&ne||i==us.TrackBefore&&ne))return null;if(c>e||c==e&&A<0&&!s)return e==n||A<0?o:o+a;o+=a}n=c}if(e>n)throw new RangeError(`Position ${e} is out of range for changeset of length ${n}`);return o}touchesRange(e,A=e){for(let i=0,n=0;i=0&&n<=A&&s>=e)return nA?"cover":!0;n=s}return!1}toString(){let e="";for(let A=0;A=0?":"+n:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(A=>typeof A!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new t(e)}static create(e){return new t(e)}},hs=class t extends R1{constructor(e,A){super(e),this.inserted=A}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return aN(this,(A,i,n,o,r)=>e=e.replace(n,n+(i-A),r),!1),e}mapDesc(e,A=!1){return cN(this,e,A,!0)}invert(e){let A=this.sections.slice(),i=[];for(let n=0,o=0;n=0){A[n]=s,A[n+1]=r;let a=n>>1;for(;i.length0&&S1(i,A,o.text),o.forward(g),s+=g}let c=e[r++];for(;s>1].toJSON()))}return e}static of(e,A,i){let n=[],o=[],r=0,s=null;function a(g=!1){if(!g&&!n.length)return;rC||I<0||C>A)throw new RangeError(`Invalid change range ${I} to ${C} (in doc of length ${A})`);let B=d?typeof d=="string"?tn.of(d.split(i||sN)):d:tn.empty,E=B.length;if(I==C&&E==0)return;Ir&&Gs(n,I-r,-1),Gs(n,C-I,E),S1(o,n,B),r=C}}return c(e),a(!s),s}static empty(e){return new t(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let A=[],i=[];for(let n=0;ns&&typeof r!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(o.length==1)A.push(o[0],0);else{for(;i.length=0&&A<=0&&A==t[n+1]?t[n]+=e:n>=0&&e==0&&t[n]==0?t[n+1]+=A:i?(t[n]+=e,t[n+1]+=A):t.push(e,A)}function S1(t,e,A){if(A.length==0)return;let i=e.length-2>>1;if(i>1])),!(A||r==t.sections.length||t.sections[r+1]<0);)s=t.sections[r++],a=t.sections[r++];e(n,c,o,g,I),n=c,o=g}}}function cN(t,e,A,i=!1){let n=[],o=i?[]:null,r=new kC(t),s=new kC(e);for(let a=-1;;){if(r.done&&s.len||s.done&&r.len)throw new Error("Mismatched change set lengths");if(r.ins==-1&&s.ins==-1){let c=Math.min(r.len,s.len);Gs(n,c,-1),r.forward(c),s.forward(c)}else if(s.ins>=0&&(r.ins<0||a==r.i||r.off==0&&(s.len=0&&a=0){let c=0,g=r.len;for(;g;)if(s.ins==-1){let I=Math.min(g,s.len);c+=I,g-=I,s.forward(I)}else if(s.ins==0&&s.lena||r.ins>=0&&r.len>a)&&(s||i.length>c),o.forward2(a),r.forward(a)}}}}var kC=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return A>=e.length?tn.empty:e[A]}textBit(e){let{inserted:A}=this.set,i=this.i-2>>1;return i>=A.length&&!e?tn.empty:A[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},NE=class t{constructor(e,A,i){this.from=e,this.to=A,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,A=-1){let i,n;return this.empty?i=n=e.mapPos(this.from,A):(i=e.mapPos(this.from,1),n=e.mapPos(this.to,-1)),i==this.from&&n==this.to?this:new t(i,n,this.flags)}extend(e,A=e){if(e<=this.anchor&&A>=this.anchor)return ae.range(e,A);let i=Math.abs(e-this.anchor)>Math.abs(A-this.anchor)?e:A;return ae.range(this.anchor,i)}eq(e,A=!1){return this.anchor==e.anchor&&this.head==e.head&&(!A||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return ae.range(e.anchor,e.head)}static create(e,A,i){return new t(e,A,i)}},ae=class t{constructor(e,A){this.ranges=e,this.mainIndex=A}map(e,A=-1){return e.empty?this:t.create(this.ranges.map(i=>i.map(e,A)),this.mainIndex)}eq(e,A=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;ie.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new t(e.ranges.map(A=>NE.fromJSON(A)),e.main)}static single(e,A=e){return new t([t.range(e,A)],0)}static create(e,A=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,n=0;ne?8:0)|o)}static normalized(e,A=0){let i=e[A];e.sort((n,o)=>n.from-o.from),A=e.indexOf(i);for(let n=1;no.head?t.range(a,s):t.range(s,a))}}return new t(e,A)}};function MeA(t,e){for(let A of t.ranges)if(A.to>e)throw new RangeError("Selection points outside of document")}var uN=0,qe=class t{constructor(e,A,i,n,o){this.combine=e,this.compareInput=A,this.compare=i,this.isStatic=n,this.id=uN++,this.default=e([]),this.extensions=typeof o=="function"?o(this):o}get reader(){return this}static define(e={}){return new t(e.combine||(A=>A),e.compareInput||((A,i)=>A===i),e.compare||(e.combine?(A,i)=>A===i:hN),!!e.static,e.enables)}of(e){return new _E([],this,0,e)}compute(e,A){if(this.isStatic)throw new Error("Can't compute a static facet");return new _E(e,this,1,A)}computeN(e,A){if(this.isStatic)throw new Error("Can't compute a static facet");return new _E(e,this,2,A)}from(e,A){return A||(A=i=>i),this.compute([e],i=>A(i.field(e)))}};function hN(t,e){return t==e||t.length==e.length&&t.every((A,i)=>A===e[i])}var _E=class{constructor(e,A,i,n){this.dependencies=e,this.facet=A,this.type=i,this.value=n,this.id=uN++}dynamicSlot(e){var A;let i=this.value,n=this.facet.compareInput,o=this.id,r=e[o]>>1,s=this.type==2,a=!1,c=!1,g=[];for(let I of this.dependencies)I=="doc"?a=!0:I=="selection"?c=!0:(((A=e[I.id])!==null&&A!==void 0?A:1)&1)==0&&g.push(e[I.id]);return{create(I){return I.values[r]=i(I),1},update(I,C){if(a&&C.docChanged||c&&(C.docChanged||C.selection)||gN(I,g)){let d=i(I);if(s?!feA(d,I.values[r],n):!n(d,I.values[r]))return I.values[r]=d,1}return 0},reconfigure:(I,C)=>{let d,B=C.config.address[o];if(B!=null){let E=LD(C,B);if(this.dependencies.every(u=>u instanceof qe?C.facet(u)===I.facet(u):u instanceof tr?C.field(u,!1)==I.field(u,!1):!0)||(s?feA(d=i(I),E,n):n(d=i(I),E)))return I.values[r]=E,0}else d=i(I);return I.values[r]=d,1}}}};function feA(t,e,A){if(t.length!=e.length)return!1;for(let i=0;it[a.id]),n=A.map(a=>a.type),o=i.filter(a=>!(a&1)),r=t[e.id]>>1;function s(a){let c=[];for(let g=0;gi===n),e);return e.provide&&(A.provides=e.provide(A)),A}create(e){let A=e.facet(wD).find(i=>i.field==this);return(A?.create||this.createF)(e)}slot(e){let A=e[this.id]>>1;return{create:i=>(i.values[A]=this.create(i),1),update:(i,n)=>{let o=i.values[A],r=this.updateF(o,n);return this.compareF(o,r)?0:(i.values[A]=r,1)},reconfigure:(i,n)=>{let o=i.facet(wD),r=n.facet(wD),s;return(s=o.find(a=>a.field==this))&&s!=r.find(a=>a.field==this)?(i.values[A]=s.create(i),1):n.config.address[this.id]!=null?(i.values[A]=n.field(this),0):(i.values[A]=this.create(i),1)}}}init(e){return[this,wD.of({field:this,create:e})]}get extension(){return this}},vC={lowest:4,low:3,default:2,high:1,highest:0};function O4(t){return e=>new SD(e,t)}var Ng={highest:O4(vC.highest),high:O4(vC.high),default:O4(vC.default),low:O4(vC.low),lowest:O4(vC.lowest)},SD=class{constructor(e,A){this.inner=e,this.prec=A}},Jl=class t{of(e){return new P4(this,e)}reconfigure(e){return t.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},P4=class{constructor(e,A){this.compartment=e,this.inner=A}},RD=class t{constructor(e,A,i,n,o,r){for(this.base=e,this.compartments=A,this.dynamicSlots=i,this.address=n,this.staticValues=o,this.facets=r,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,A,i){let n=[],o=Object.create(null),r=new Map;for(let C of TRA(e,A,r))C instanceof tr?n.push(C):(o[C.facet.id]||(o[C.facet.id]=[])).push(C);let s=Object.create(null),a=[],c=[];for(let C of n)s[C.id]=c.length<<1,c.push(d=>C.slot(d));let g=i?.config.facets;for(let C in o){let d=o[C],B=d[0].facet,E=g&&g[C]||[];if(d.every(u=>u.type==0))if(s[B.id]=a.length<<1|1,hN(E,d))a.push(i.facet(B));else{let u=B.combine(d.map(h=>h.value));a.push(i&&B.compare(u,i.facet(B))?i.facet(B):u)}else{for(let u of d)u.type==0?(s[u.id]=a.length<<1|1,a.push(u.value)):(s[u.id]=c.length<<1,c.push(h=>u.dynamicSlot(h)));s[B.id]=c.length<<1,c.push(u=>YRA(u,B,d))}}let I=c.map(C=>C(s));return new t(e,r,I,s,a,o)}};function TRA(t,e,A){let i=[[],[],[],[],[]],n=new Map;function o(r,s){let a=n.get(r);if(a!=null){if(a<=s)return;let c=i[a].indexOf(r);c>-1&&i[a].splice(c,1),r instanceof P4&&A.delete(r.compartment)}if(n.set(r,s),Array.isArray(r))for(let c of r)o(c,s);else if(r instanceof P4){if(A.has(r.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(r.compartment)||r.inner;A.set(r.compartment,c),o(c,s)}else if(r instanceof SD)o(r.inner,r.prec);else if(r instanceof tr)i[s].push(r),r.provides&&o(r.provides,s);else if(r instanceof _E)i[s].push(r),r.facet.extensions&&o(r.facet.extensions,vC.default);else{let c=r.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${r}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);o(c,s)}}return o(t,vC.default),i.reduce((r,s)=>r.concat(s))}function z4(t,e){if(e&1)return 2;let A=e>>1,i=t.status[A];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;t.status[A]=4;let n=t.computeSlot(t,t.config.dynamicSlots[A]);return t.status[A]=2|n}function LD(t,e){return e&1?t.config.staticValues[e>>1]:t.values[e>>1]}var meA=qe.define(),nN=qe.define({combine:t=>t.some(e=>e),static:!0}),beA=qe.define({combine:t=>t.length?t[0]:void 0,static:!0}),keA=qe.define(),SeA=qe.define(),ReA=qe.define(),peA=qe.define({combine:t=>t.length?t[0]:!1}),Fa=class{constructor(e,A){this.type=e,this.value=A}static define(){return new lN}},lN=class{of(e){return new Fa(this,e)}},IN=class{constructor(e){this.map=e}of(e){return new Ki(this,e)}},Ki=(()=>{class t{constructor(A,i){this.type=A,this.value=i}map(A){let i=this.type.map(this.value,A);return i===void 0?void 0:i==this.value?this:new t(this.type,i)}is(A){return this.type==A}static define(A={}){return new IN(A.map||(i=>i))}static mapEffects(A,i){if(!A.length)return A;let n=[];for(let o of A){let r=o.map(i);r&&n.push(r)}return n}}return t.reconfigure=t.define(),t.appendConfig=t.define(),t})(),Ul=(()=>{class t{constructor(A,i,n,o,r,s){this.startState=A,this.changes=i,this.selection=n,this.effects=o,this.annotations=r,this.scrollIntoView=s,this._doc=null,this._state=null,n&&MeA(n,i.newLength),r.some(a=>a.type==t.time)||(this.annotations=r.concat(t.time.of(Date.now())))}static create(A,i,n,o,r,s){return new t(A,i,n,o,r,s)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(A){for(let i of this.annotations)if(i.type==A)return i.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(A){let i=this.annotation(t.userEvent);return!!(i&&(i==A||i.length>A.length&&i.slice(0,A.length)==A&&i[A.length]=="."))}}return t.time=Fa.define(),t.userEvent=Fa.define(),t.addToHistory=Fa.define(),t.remote=Fa.define(),t})();function HRA(t,e){let A=[];for(let i=0,n=0;;){let o,r;if(i=t[i]))o=t[i++],r=t[i++];else if(n=0;n--){let o=i[n](t);o instanceof Ul?t=o:Array.isArray(o)&&o.length==1&&o[0]instanceof Ul?t=o[0]:t=xeA(e,GE(o),!1)}return t}function zRA(t){let e=t.startState,A=e.facet(ReA),i=t;for(let n=A.length-1;n>=0;n--){let o=A[n](t);o&&Object.keys(o).length&&(i=LeA(i,CN(e,o,t.changes.newLength),!0))}return i==t?t:Ul.create(e,t.changes,t.selection,i.effects,i.annotations,i.scrollIntoView)}var PRA=[];function GE(t){return t==null?PRA:Array.isArray(t)?t:[t]}var lo=function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t}(lo||(lo={})),jRA=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,dN;try{dN=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function qRA(t){if(dN)return dN.test(t);for(let e=0;e"\x80"&&(A.toUpperCase()!=A.toLowerCase()||jRA.test(A)))return!0}return!1}function VRA(t){return e=>{if(!/\S/.test(e))return lo.Space;if(qRA(e))return lo.Word;for(let A=0;A-1)return lo.Word;return lo.Other}}var Dr=(()=>{class t{constructor(A,i,n,o,r,s){this.config=A,this.doc=i,this.selection=n,this.values=o,this.status=A.statusTemplate.slice(),this.computeSlot=r,s&&(s._state=this);for(let a=0;ao.set(g,c)),i=null),o.set(a.value.compartment,a.value.extension)):a.is(Ki.reconfigure)?(i=null,n=a.value):a.is(Ki.appendConfig)&&(i=null,n=GE(n).concat(a.value));let r;i?r=A.startState.values.slice():(i=RD.resolve(n,o,this),r=new t(i,this.doc,this.selection,i.dynamicSlots.map(()=>null),(c,g)=>g.reconfigure(c,this),null).values);let s=A.startState.facet(nN)?A.newSelection:A.newSelection.asSingle();new t(i,A.newDoc,s,r,(a,c)=>c.update(a,A),A)}replaceSelection(A){return typeof A=="string"&&(A=this.toText(A)),this.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:A},range:ae.cursor(i.from+A.length)}))}changeByRange(A){let i=this.selection,n=A(i.ranges[0]),o=this.changes(n.changes),r=[n.range],s=GE(n.effects);for(let a=1;as.spec.fromJSON(a,c)))}}return t.create({doc:A.doc,selection:ae.fromJSON(A.selection),extensions:i.extensions?o.concat([i.extensions]):o})}static create(A={}){let i=RD.resolve(A.extensions||[],new Map),n=A.doc instanceof tn?A.doc:tn.of((A.doc||"").split(i.staticFacet(t.lineSeparator)||sN)),o=A.selection?A.selection instanceof ae?A.selection:ae.single(A.selection.anchor,A.selection.head):ae.single(0);return MeA(o,n.length),i.staticFacet(nN)||(o=o.asSingle()),new t(i,n,o,i.dynamicSlots.map(()=>null),(r,s)=>s.create(r),null)}get tabSize(){return this.facet(t.tabSize)}get lineBreak(){return this.facet(t.lineSeparator)||` +`}get readOnly(){return this.facet(peA)}phrase(A,...i){for(let n of this.facet(t.phrases))if(Object.prototype.hasOwnProperty.call(n,A)){A=n[A];break}return i.length&&(A=A.replace(/\$(\$|\d*)/g,(n,o)=>{if(o=="$")return"$";let r=+(o||1);return!r||r>i.length?n:i[r-1]})),A}languageDataAt(A,i,n=-1){let o=[];for(let r of this.facet(meA))for(let s of r(this,i,n))Object.prototype.hasOwnProperty.call(s,A)&&o.push(s[A]);return o}charCategorizer(A){return VRA(this.languageDataAt("wordChars",A).join(""))}wordAt(A){let{text:i,from:n,length:o}=this.doc.lineAt(A),r=this.charCategorizer(A),s=A-n,a=A-n;for(;s>0;){let c=br(i,s,!1);if(r(i.slice(c,s))!=lo.Word)break;s=c}for(;ae.length?e[0]:4}),t.lineSeparator=beA,t.readOnly=peA,t.phrases=qe.define({compare(e,A){let i=Object.keys(e),n=Object.keys(A);return i.length==n.length&&i.every(o=>e[o]==A[o])}}),t.languageData=meA,t.changeFilter=keA,t.transactionFilter=SeA,t.transactionExtender=ReA,t})();Jl.reconfigure=Ki.define();function ts(t,e,A={}){let i={};for(let n of t)for(let o of Object.keys(n)){let r=n[o],s=i[o];if(s===void 0)i[o]=r;else if(!(s===r||r===void 0))if(Object.hasOwnProperty.call(A,o))i[o]=A[o](s,r);else throw new Error("Config merge conflict for field "+o)}for(let n in e)i[n]===void 0&&(i[n]=e[n]);return i}var xg=class{eq(e){return this==e}range(e,A=e){return j4.create(e,A,this)}};xg.prototype.startSide=xg.prototype.endSide=0;xg.prototype.point=!1;xg.prototype.mapMode=us.TrackDel;var j4=class t{constructor(e,A,i){this.from=e,this.to=A,this.value=i}static create(e,A,i){return new t(e,A,i)}};function BN(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}var EN=class t{constructor(e,A,i,n){this.from=e,this.to=A,this.value=i,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(e,A,i,n=0){let o=i?this.to:this.from;for(let r=n,s=o.length;;){if(r==s)return r;let a=r+s>>1,c=o[a]-e||(i?this.value[a].endSide:this.value[a].startSide)-A;if(a==r)return c>=0?r:s;c>=0?s=a:r=a+1}}between(e,A,i,n){for(let o=this.findIndex(A,-1e9,!0),r=this.findIndex(i,1e9,!1,o);od||C==d&&c.startSide>0&&c.endSide<=0)continue;(d-C||c.endSide-c.startSide)<0||(r<0&&(r=C),c.point&&(s=Math.max(s,d-C)),i.push(c),n.push(C-r),o.push(d-r))}return{mapped:i.length?new t(n,o,i,s):null,pos:r}}},Io=(()=>{class t{constructor(A,i,n,o){this.chunkPos=A,this.chunk=i,this.nextLayer=n,this.maxPoint=o}static create(A,i,n,o){return new t(A,i,n,o)}get length(){let A=this.chunk.length-1;return A<0?0:Math.max(this.chunkEnd(A),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let A=this.nextLayer.size;for(let i of this.chunk)A+=i.value.length;return A}chunkEnd(A){return this.chunkPos[A]+this.chunk[A].length}update(A){let{add:i=[],sort:n=!1,filterFrom:o=0,filterTo:r=this.length}=A,s=A.filter;if(i.length==0&&!s)return this;if(n&&(i=i.slice().sort(BN)),this.isEmpty)return i.length?t.of(i):this;let a=new xD(this,null,-1).goto(0),c=0,g=[],I=new fs;for(;a.value||c=0){let C=i[c++];I.addInner(C.from,C.to,C.value)||g.push(C)}else a.rangeIndex==1&&a.chunkIndexthis.chunkEnd(a.chunkIndex)||ra.to||r=r&&A<=r+s.length&&s.between(r,A-r,i-r,n)===!1)return}this.nextLayer.between(A,i,n)}}iter(A=0){return q4.from([this]).goto(A)}get isEmpty(){return this.nextLayer==this}static iter(A,i=0){return q4.from(A).goto(i)}static compare(A,i,n,o,r=-1){let s=A.filter(C=>C.maxPoint>0||!C.isEmpty&&C.maxPoint>=r),a=i.filter(C=>C.maxPoint>0||!C.isEmpty&&C.maxPoint>=r),c=DeA(s,a,n),g=new MC(s,c,r),I=new MC(a,c,r);n.iterGaps((C,d,B)=>weA(g,C,I,d,B,o)),n.empty&&n.length==0&&weA(g,0,I,0,0,o)}static eq(A,i,n=0,o){o==null&&(o=999999999);let r=A.filter(I=>!I.isEmpty&&i.indexOf(I)<0),s=i.filter(I=>!I.isEmpty&&A.indexOf(I)<0);if(r.length!=s.length)return!1;if(!r.length)return!0;let a=DeA(r,s),c=new MC(r,a,0).goto(n),g=new MC(s,a,0).goto(n);for(;;){if(c.to!=g.to||!QN(c.active,g.active)||c.point&&(!g.point||!c.point.eq(g.point)))return!1;if(c.to>o)return!0;c.next(),g.next()}}static spans(A,i,n,o,r=-1){let s=new MC(A,null,r).goto(i),a=i,c=s.openStart;for(;;){let g=Math.min(s.to,n);if(s.point){let I=s.activeForPoint(s.to),C=s.pointFroma&&(o.span(a,g,s.active,c),c=s.openEnd(g));if(s.to>n)return c+(s.point&&s.to>n?1:0);a=s.to,s.next()}}static of(A,i=!1){let n=new fs;for(let o of A instanceof j4?[A]:i?ZRA(A):A)n.add(o.from,o.to,o.value);return n.finish()}static join(A){if(!A.length)return t.empty;let i=A[A.length-1];for(let n=A.length-2;n>=0;n--)for(let o=A[n];o!=t.empty;o=o.nextLayer)i=new t(o.chunkPos,o.chunk,i,Math.max(o.maxPoint,i.maxPoint));return i}}return t.empty=new t([],[],null,-1),t})();function ZRA(t){if(t.length>1)for(let e=t[0],A=1;A0)return t.slice().sort(BN);e=i}return t}Io.empty.nextLayer=Io.empty;var fs=class t{finishChunk(e){this.chunks.push(new EN(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,A,i){this.addInner(e,A,i)||(this.nextLayer||(this.nextLayer=new t)).add(e,A,i)}addInner(e,A,i){let n=e-this.lastTo||i.startSide-this.last.endSide;if(n<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return n<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(A-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=A,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,A-e)),!0)}addChunk(e,A){if((e-this.lastTo||A.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,A.maxPoint),this.chunks.push(A),this.chunkPos.push(e);let i=A.value.length-1;return this.last=A.value[i],this.lastFrom=A.from[i]+e,this.lastTo=A.to[i]+e,!0}finish(){return this.finishInner(Io.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let A=Io.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,A}};function DeA(t,e,A){let i=new Map;for(let o of t)for(let r=0;r=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&n.push(new xD(r,A,i,o));return n.length==1?n[0]:new t(n)}get startSide(){return this.value?this.value.startSide:0}goto(e,A=-1e9){for(let i of this.heap)i.goto(e,A);for(let i=this.heap.length>>1;i>=0;i--)oN(this.heap,i);return this.next(),this}forward(e,A){for(let i of this.heap)i.forward(e,A);for(let i=this.heap.length>>1;i>=0;i--)oN(this.heap,i);(this.to-e||this.value.endSide-A)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),oN(this.heap,0)}}};function oN(t,e){for(let A=t[e];;){let i=(e<<1)+1;if(i>=t.length)break;let n=t[i];if(i+1=0&&(n=t[i+1],i++),A.compare(n)<0)break;t[i]=A,t[e]=n,e=i}}var MC=class{constructor(e,A,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=q4.from(e,A,i)}goto(e,A=-1e9){return this.cursor.goto(e,A),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=A,this.openStart=-1,this.next(),this}forward(e,A){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-A)<0;)this.removeActive(this.minActive);this.cursor.forward(e,A)}removeActive(e){yD(this.active,e),yD(this.activeTo,e),yD(this.activeRank,e),this.minActive=yeA(this.active,this.activeTo)}addActive(e){let A=0,{value:i,to:n,rank:o}=this.cursor;for(;A0;)A++;vD(this.active,A,i),vD(this.activeTo,A,n),vD(this.activeRank,A,o),e&&vD(e,A,this.cursor.from),this.minActive=yeA(this.active,this.activeTo)}next(){let e=this.to,A=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let n=this.minActive;if(n>-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>e){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),i&&yD(i,n)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let o=this.cursor.value;if(!o.point)this.addActive(i),this.cursor.next();else if(A&&this.cursor.to==this.to&&this.cursor.from=0&&i[n]=0&&!(this.activeRank[i]e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&A.push(this.active[i]);return A.reverse()}openEnd(e){let A=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)A++;return A}};function weA(t,e,A,i,n,o){t.goto(e),A.goto(i);let r=i+n,s=i,a=i-e;for(;;){let c=t.to+a-A.to,g=c||t.endSide-A.endSide,I=g<0?t.to+a:A.to,C=Math.min(I,r);if(t.point||A.point?t.point&&A.point&&(t.point==A.point||t.point.eq(A.point))&&QN(t.activeForPoint(t.to),A.activeForPoint(A.to))||o.comparePoint(s,C,t.point,A.point):C>s&&!QN(t.active,A.active)&&o.compareRange(s,C,t.active,A.active),I>r)break;(c||t.openEnd!=A.openEnd)&&o.boundChange&&o.boundChange(I),s=I,g<=0&&t.next(),g>=0&&A.next()}}function QN(t,e){if(t.length!=e.length)return!1;for(let A=0;A=e;i--)t[i+1]=t[i];t[e]=A}function yeA(t,e){let A=-1,i=1e9;for(let n=0;n=e)return n;if(n==t.length)break;o+=t.charCodeAt(n)==9?A-o%A:1,n=br(t,n)}return i===!0?-1:t.length}var fN="\u037C",NeA=typeof Symbol>"u"?"__"+fN:Symbol.for(fN),mN=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),FeA=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},jc=class{constructor(e,A){this.rules=[];let{finish:i}=A||{};function n(r){return/^@/.test(r)?[r]:r.split(/,\s*/)}function o(r,s,a,c){let g=[],I=/^@(\w+)\b/.exec(r[0]),C=I&&I[1]=="keyframes";if(I&&s==null)return a.push(r[0]+";");for(let d in s){let B=s[d];if(/&/.test(d))o(d.split(/,\s*/).map(E=>r.map(u=>E.replace(/&/,u))).reduce((E,u)=>E.concat(u)),B,a);else if(B&&typeof B=="object"){if(!I)throw new RangeError("The value of a property ("+d+") should be a primitive value.");o(n(d),B,g,C)}else B!=null&&g.push(d.replace(/_.*/,"").replace(/[A-Z]/g,E=>"-"+E.toLowerCase())+": "+B+";")}(g.length||C)&&a.push((i&&!I&&!c?r.map(i):r).join(", ")+" {"+g.join(" ")+"}")}for(let r in e)o(n(r),e[r],this.rules)}getRules(){return this.rules.join(` `)}static newName(){let e=FeA[NeA]||1;return FeA[NeA]=e+1,fN+e.toString(36)}static mount(e,A,i){let n=e[mN],o=i&&i.nonce;n?o&&n.setNonce(o):n=new pN(e,o),n.mount(Array.isArray(A)?A:[A],e)}},_eA=new Map,pN=class{constructor(e,A){let i=e.ownerDocument||e,n=i.defaultView;if(!e.head&&e.adoptedStyleSheets&&n.CSSStyleSheet){let o=_eA.get(i);if(o)return e[mN]=o;this.sheet=new n.CSSStyleSheet,_eA.set(i,this)}else this.styleTag=i.createElement("style"),A&&this.styleTag.setAttribute("nonce",A);this.modules=[],e[mN]=this}mount(e,A){let i=this.sheet,n=0,o=0;for(let r=0;r-1&&(this.modules.splice(a,1),o--,a=-1),a==-1){if(this.modules.splice(o++,0,s),i)for(let c=0;c",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},VRA=typeof navigator<"u"&&/Mac/.test(navigator.platform),ZRA=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(kr=0;kr<10;kr++)z0[48+kr]=z0[96+kr]=String(kr);var kr;for(kr=1;kr<=24;kr++)z0[kr+111]="F"+kr;var kr;for(kr=65;kr<=90;kr++)z0[kr]=String.fromCharCode(kr+32),UE[kr]=String.fromCharCode(kr);var kr;for(FD in z0)UE.hasOwnProperty(FD)||(UE[FD]=z0[FD]);var FD;function GeA(t){var e=VRA&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||ZRA&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",A=!e&&t.key||(t.shiftKey?UE:z0)[t.keyCode]||t.key||"Unidentified";return A=="Esc"&&(A="Escape"),A=="Del"&&(A="Delete"),A=="Left"&&(A="ArrowLeft"),A=="Up"&&(A="ArrowUp"),A=="Right"&&(A="ArrowRight"),A=="Down"&&(A="ArrowDown"),A}function _n(){var t=arguments[0];typeof t=="string"&&(t=document.createElement(t));var e=1,A=arguments[1];if(A&&typeof A=="object"&&A.nodeType==null&&!Array.isArray(A)){for(var i in A)if(Object.prototype.hasOwnProperty.call(A,i)){var n=A[i];typeof n=="string"?t.setAttribute(i,n):n!=null&&(t[i]=n)}e++}for(;e.995&&A<1.005||!isFinite(A)||Math.abs(e.width-t.offsetWidth)<1)&&(A=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(e.height-t.offsetHeight)<1)&&(i=1),{scaleX:A,scaleY:i}}function XRA(t,e,A,i,n,o,r,s){let a=t.ownerDocument,c=a.defaultView||window;for(let g=t,I=!1;g&&!I;)if(g.nodeType==1){let C,d=g==a.body,B=1,E=1;if(d)C=WRA(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(g).position)&&(I=!0),g.scrollHeight<=g.clientHeight&&g.scrollWidth<=g.clientWidth){g=g.assignedSlot||g.parentNode;continue}let w=g.getBoundingClientRect();({scaleX:B,scaleY:E}=StA(g,w)),C={left:w.left,right:w.left+g.clientWidth*B,top:w.top,bottom:w.top+g.clientHeight*E}}let u=0,h=0;if(n=="nearest")e.top0&&e.bottom>C.bottom+h&&(h=e.bottom-C.bottom+r)):e.bottom>C.bottom&&(h=e.bottom-C.bottom+r,A<0&&e.top-h0&&e.right>C.right+u&&(u=e.right-C.right+o)):e.right>C.right&&(u=e.right-C.right+o,A<0&&e.leftC.bottom||e.leftC.right)&&(e={left:Math.max(e.left,C.left),right:Math.min(e.right,C.right),top:Math.max(e.top,C.top),bottom:Math.min(e.bottom,C.bottom)}),g=g.assignedSlot||g.parentNode}else if(g.nodeType==11)g=g.host;else break}function $RA(t){let e=t.ownerDocument,A,i;for(let n=t.parentNode;n&&!(n==e.body||A&&i);)if(n.nodeType==1)!i&&n.scrollHeight>n.clientHeight&&(i=n),!A&&n.scrollWidth>n.clientWidth&&(A=n),n=n.assignedSlot||n.parentNode;else if(n.nodeType==11)n=n.host;else break;return{x:A,y:i}}var xN=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:A,focusNode:i}=e;this.set(A,Math.min(e.anchorOffset,A?zl(A):0),i,Math.min(e.focusOffset,i?zl(i):0))}set(e,A,i,n){this.anchorNode=e,this.anchorOffset=A,this.focusNode=i,this.focusOffset=n}},JE=null;function RtA(t){if(t.setActive)return t.setActive();if(JE)return t.focus(JE);let e=[];for(let A=t;A&&(e.push(A,A.scrollTop,A.scrollLeft),A!=A.ownerDocument);A=A.parentNode);if(t.focus(JE==null?{get preventScroll(){return JE={preventScroll:!0},!0}}:void 0),!JE){JE=!1;for(let A=0;AMath.max(1,t.scrollHeight-t.clientHeight-4)}function NtA(t,e){for(let A=t,i=e;;){if(A.nodeType==3&&i>0)return{node:A,offset:i};if(A.nodeType==1&&i>0){if(A.contentEditable=="false")return null;A=A.childNodes[i-1],i=zl(A)}else if(A.parentNode&&!XD(A))i=RC(A),A=A.parentNode;else return null}}function FtA(t,e){for(let A=t,i=e;;){if(A.nodeType==3&&iA)return I.domBoundsAround(e,A,c);if(C>=e&&n==-1&&(n=a,o=c),c>A&&I.dom.parentNode==this.dom){r=a,s=g;break}g=C,c=C+I.breakAfter}return{from:o,to:s<0?i+this.length:s,startDOM:(n?this.children[n-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:r=0?this.children[r].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let A=this.parent;A;A=A.parent){if(e&&(A.flags|=2),A.flags&1)return;A.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.flags&7&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let A=e.parent;if(!A)return e;e=A}}replaceChildren(e,A,i=uF){this.markDirty();for(let n=e;nthis.pos||e==this.pos&&(A>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}};function _tA(t,e,A,i,n,o,r,s,a){let{children:c}=t,g=c.length?c[e]:null,I=o.length?o[o.length-1]:null,C=I?I.breakAfter:r;if(!(e==i&&g&&!r&&!C&&o.length<2&&g.merge(A,n,o.length?I:null,A==0,s,a))){if(i0&&(!r&&o.length&&g.merge(A,g.length,o[0],!1,s,0)?g.breakAfter=o.shift().breakAfter:(A2),it={mac:OeA||/Mac/.test(_a.platform),windows:/Win/.test(_a.platform),linux:/Linux|X11/.test(_a.platform),ie:dw,ie_version:KtA?NN.documentMode||6:_N?+_N[1]:FN?+FN[1]:0,gecko:TeA,gecko_version:TeA?+(/Firefox\/(\d+)/.exec(_a.userAgent)||[0,0])[1]:0,chrome:!!DN,chrome_version:DN?+DN[1]:0,ios:OeA,android:/Android\b/.test(_a.userAgent),webkit:HeA,safari:UtA,webkit_version:HeA?+(/\bAppleWebKit\/(\d+)/.exec(_a.userAgent)||[0,0])[1]:0,tabSize:NN.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"},tLA=256,Pl=class t extends No{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,A){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(A&&A.node==this.dom&&(A.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,A,i){return this.flags&8||i&&(!(i instanceof t)||this.length-(A-e)+i.length>tLA||i.flags&8)?!1:(this.text=this.text.slice(0,e)+(i?i.text:"")+this.text.slice(A),this.markDirty(),!0)}split(e){let A=new t(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),A.flags|=this.flags&8,A}localPosFromDOM(e,A){return e==this.dom?A:A?this.text.length:0}domAtPos(e){return new ia(this.dom,e)}domBoundsAround(e,A,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,A){return iLA(this.dom,e,A)}},N1=class t extends No{constructor(e,A=[],i=0){super(),this.mark=e,this.children=A,this.length=i;for(let n of A)n.setParent(this)}setAttrs(e){if(LtA(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let A in this.mark.attrs)e.setAttribute(A,this.mark.attrs[A]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!((this.flags|e.flags)&8)}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,A){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,A)}merge(e,A,i,n,o,r){return i&&(!(i instanceof t&&i.mark.eq(this.mark))||e&&o<=0||Ae&&A.push(i=e&&(n=o),i=a,o++}let r=this.length-e;return this.length=e,n>-1&&(this.children.length=n,this.markDirty()),new t(this.mark,A,r)}domAtPos(e){return JtA(this,e)}coordsAt(e,A){return TtA(this,e,A)}};function iLA(t,e,A){let i=t.nodeValue.length;e>i&&(e=i);let n=e,o=e,r=0;e==0&&A<0||e==i&&A>=0?it.chrome||it.gecko||(e?(n--,r=1):o=0)?0:s.length-1];return it.safari&&!r&&a.width==0&&(a=Array.prototype.find.call(s,c=>c.width)||a),r?Cw(a,r<0):a||null}var g3=class t extends No{static create(e,A,i){return new t(e,A,i)}constructor(e,A,i){super(),this.widget=e,this.length=A,this.side=i,this.prevWidget=null}split(e){let A=t.create(this.widget,this.length-e,this.side);return this.length-=e,A}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(e,A,i,n,o,r){return i&&(!(i instanceof t)||!this.widget.compare(i.widget)||e>0&&o<=0||A0)?ia.before(this.dom):ia.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,A){let i=this.widget.coordsAt(this.dom,e,A);if(i)return i;let n=this.dom.getClientRects(),o=null;if(!n.length)return null;let r=this.side?this.side<0:e>0;for(let s=r?n.length-1:0;o=n[s],!(e>0?s==0:s==n.length-1||o.top0?ia.before(this.dom):ia.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return tn.empty}get isHidden(){return!0}};Pl.prototype.children=g3.prototype.children=l3.prototype.children=uF;function JtA(t,e){let A=t.dom,{children:i}=t,n=0;for(let o=0;no&&e0;o--){let r=i[o-1];if(r.dom.parentNode==A)return r.domAtPos(r.length)}for(let o=n;o0&&e instanceof N1&&n.length&&(i=n[n.length-1])instanceof N1&&i.mark.eq(e.mark)?YtA(i,e.children[0],A-1):(n.push(e),e.setParent(t)),t.length+=e.length}function TtA(t,e,A){let i=null,n=-1,o=null,r=-1;function s(c,g){for(let I=0,C=0;I=g&&(d.children.length?s(d,g-C):(!o||o.isHidden&&(A>0||oLA(o,d)))&&(B>g||C==B&&d.getSide()>0)?(o=d,r=g-C):(C-1?1:0)!=n.length-(A&&n.indexOf(A)>-1?1:0))return!1;for(let o of i)if(o!=A&&(n.indexOf(o)==-1||t[o]!==e[o]))return!1;return!0}function KN(t,e,A){let i=!1;if(e)for(let n in e)A&&n in A||(i=!0,n=="style"?t.style.cssText="":t.removeAttribute(n));if(A)for(let n in A)e&&e[n]==A[n]||(i=!0,n=="style"?t.style.cssText=A[n]:t.setAttribute(n,A[n]));return i}function rLA(t){let e=Object.create(null);for(let A=0;A0?3e8:-4e8:A>0?1e8:-1e8,new F1(e,A,A,i,e.widget||null,!1)}static replace(e){let A=!!e.block,i,n;if(e.isBlockGap)i=-5e8,n=4e8;else{let{start:o,end:r}=HtA(e,A);i=(o?A?-3e8:-1:5e8)-1,n=(r?A?2e8:1:-6e8)+1}return new F1(e,i,n,A,e.widget||null,!0)}static line(e){return new C3(e)}static set(e,A=!1){return Io.of(e,A)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};ht.none=Io.empty;var I3=class t extends ht{constructor(e){let{start:A,end:i}=HtA(e);super(A?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var A,i;return this==e||e instanceof t&&this.tagName==e.tagName&&(this.class||((A=this.attrs)===null||A===void 0?void 0:A.class))==(e.class||((i=e.attrs)===null||i===void 0?void 0:i.class))&&Aw(this.attrs,e.attrs,"class")}range(e,A=e){if(e>=A)throw new RangeError("Mark decorations may not be empty");return super.range(e,A)}};I3.prototype.point=!1;var C3=class t extends ht{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof t&&this.spec.class==e.spec.class&&Aw(this.spec.attributes,e.spec.attributes)}range(e,A=e){if(A!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,A)}};C3.prototype.mapMode=us.TrackBefore;C3.prototype.point=!0;var F1=class t extends ht{constructor(e,A,i,n,o,r){super(A,i,o,e),this.block=n,this.isReplace=r,this.mapMode=n?A<=0?us.TrackBefore:us.TrackAfter:us.TrackDel}get type(){return this.startSide!=this.endSide?na.WidgetRange:this.startSide<=0?na.WidgetBefore:na.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof t&&sLA(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,A=e){if(this.isReplace&&(e>A||e==A&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&A!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,A)}};F1.prototype.point=!0;function HtA(t,e=!1){let{inclusiveStart:A,inclusiveEnd:i}=t;return A==null&&(A=t.inclusive),i==null&&(i=t.inclusive),{start:A??e,end:i??e}}function sLA(t,e){return t==e||!!(t&&e&&t.compare(e))}function PD(t,e,A,i=0){let n=A.length-1;n>=0&&A[n]+i>=t?A[n]=Math.max(A[n],e):A.push(t,e)}var ps=class t extends No{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,A,i,n,o,r){if(i){if(!(i instanceof t))return!1;this.dom||i.transferDOM(this)}return n&&this.setDeco(i?i.attrs:null),GtA(this,e,A,i?i.children.slice():[],o,r),!0}split(e){let A=new t;if(A.breakAfter=this.breakAfter,this.length==0)return A;let{i,off:n}=this.childPos(e);n&&(A.append(this.children[i].split(n),0),this.children[i].merge(n,this.children[i].length,null,!1,0,0),i++);for(let o=i;o0&&this.children[i-1].length==0;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=e,A}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){Aw(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,A){YtA(this,e,A)}addLineDeco(e){let A=e.spec.attributes,i=e.spec.class;A&&(this.attrs=GN(A,this.attrs||{})),i&&(this.attrs=GN({class:i},this.attrs||{}))}domAtPos(e){return JtA(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.flags|=6)}sync(e,A){var i;this.dom?this.flags&4&&(LtA(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(KN(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,A);let n=this.dom.lastChild;for(;n&&No.get(n)instanceof N1;)n=n.lastChild;if(!n||!this.length||n.nodeName!="BR"&&((i=No.get(n))===null||i===void 0?void 0:i.isEditable)==!1&&(!it.ios||!this.children.some(o=>o instanceof Pl))){let o=document.createElement("BR");o.cmIgnore=!0,this.dom.appendChild(o)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,A;for(let i of this.children){if(!(i instanceof Pl)||/[^ -~]/.test(i.text))return null;let n=c3(i.dom);if(n.length!=1)return null;e+=n[0].width,A=n[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:A}:null}coordsAt(e,A){let i=TtA(this,e,A);if(!this.children.length&&i&&this.parent){let{heightOracle:n}=this.parent.view.viewState,o=i.bottom-i.top;if(Math.abs(o-n.lineHeight)<2&&n.textHeight=A){if(o instanceof t)return o;if(r>A)break}n=r+o.breakAfter}return null}},SC=class t extends No{constructor(e,A,i){super(),this.widget=e,this.length=A,this.deco=i,this.breakAfter=0,this.prevWidget=null}merge(e,A,i,n,o,r){return i&&(!(i instanceof t)||!this.widget.compare(i.widget)||e>0&&o<=0||A0}},d3=class extends Cc{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}},t3=class t{constructor(e,A,i,n){this.doc=e,this.pos=A,this.end=i,this.disallowBlockEffectsFor=n,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=A}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof SC&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new ps),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(_D(new l3(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,!this.posCovered()&&!(e&&this.content.length&&this.content[this.content.length-1]instanceof SC)&&this.getLine()}buildText(e,A,i){for(;e>0;){if(this.textOff==this.text.length){let{value:o,lineBreak:r,done:s}=this.cursor.next(this.skip);if(this.skip=0,s)throw new Error("Ran out of text content when drawing inline views");if(r){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=o,this.textOff=0}let n=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(A.slice(A.length-i)),this.getLine().append(_D(new Pl(this.text.slice(this.textOff,this.textOff+n)),A),i),this.atCursorPos=!0,this.textOff+=n,e-=n,i=0}}span(e,A,i,n){this.buildText(A-e,i,n),this.pos=A,this.openStart<0&&(this.openStart=n)}point(e,A,i,n,o,r){if(this.disallowBlockEffectsFor[r]&&i instanceof F1){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(A>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let s=A-e;if(i instanceof F1)if(i.block)i.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new SC(i.widget||PeA.block,s,i));else{let a=g3.create(i.widget||PeA.inline,s,s?0:i.startSide),c=this.atCursorPos&&!a.isEditable&&o<=n.length&&(e0),g=!a.isEditable&&(en.length||i.startSide<=0),I=this.getLine();this.pendingBuffer==2&&!c&&!a.isEditable&&(this.pendingBuffer=0),this.flushBuffer(n),c&&(I.append(_D(new l3(1),n),o),o=n.length+Math.max(0,o-n.length)),I.append(_D(a,n),o),this.atCursorPos=g,this.pendingBuffer=g?en.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=n.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);s&&(this.textOff+s<=this.text.length?this.textOff+=s:(this.skip+=s-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=A),this.openStart<0&&(this.openStart=o)}static build(e,A,i,n,o){let r=new t(e,A,i,o);return r.openEnd=Io.spans(n,A,i,r),r.openStart<0&&(r.openStart=r.openEnd),r.finish(r.openEnd),r}};function _D(t,e){for(let A of e)t=new N1(A,[t],t.length);return t}var PeA=(()=>{class t extends Cc{constructor(A){super(),this.tag=A}eq(A){return A.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(A){return A.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}return t.inline=new t("span"),t.block=new t("div"),t})(),Co=function(t){return t[t.LTR=0]="LTR",t[t.RTL=1]="RTL",t}(Co||(Co={})),xC=Co.LTR,hF=Co.RTL;function OtA(t){let e=[];for(let A=0;A=A){if(s.level==i)return r;(o<0||(n!=0?n<0?s.fromA:e[o].level>s.level))&&(o=r)}}if(o<0)throw new RangeError("Index out of range");return o}};function PtA(t,e){if(t.length!=e.length)return!1;for(let A=0;A=0;E-=3)if(Yl[E+1]==-d){let u=Yl[E+2],h=u&2?n:u&4?u&1?o:n:0;h&&(vo[I]=vo[Yl[E]]=h),s=E;break}}else{if(Yl.length==189)break;Yl[s++]=I,Yl[s++]=C,Yl[s++]=a}else if((B=vo[I])==2||B==1){let E=B==n;a=E?0:1;for(let u=s-3;u>=0;u-=3){let h=Yl[u+2];if(h&2)break;if(E)Yl[u+2]|=2;else{if(h&4)break;Yl[u+2]|=4}}}}}function CLA(t,e,A,i){for(let n=0,o=i;n<=A.length;n++){let r=n?A[n-1].to:t,s=na;)B==u&&(B=A[--E].from,u=E?A[E-1].to:t),vo[--B]=d;a=g}else o=c,a++}}}function JN(t,e,A,i,n,o,r){let s=i%2?2:1;if(i%2==n%2)for(let a=e,c=0;aa&&r.push(new Hl(a,E.from,d));let u=E.direction==xC!=!(d%2);YN(t,u?i+1:i,n,E.inner,E.from,E.to,r),a=E.to}B=E.to}else{if(B==A||(g?vo[B]!=s:vo[B]==s))break;B++}C?JN(t,a,B,i+1,n,C,r):ae;){let g=!0,I=!1;if(!c||a>o[c-1].to){let E=vo[a-1];E!=s&&(g=!1,I=E==16)}let C=!g&&s==1?[]:null,d=g?i:i+1,B=a;A:for(;;)if(c&&B==o[c-1].to){if(I)break A;let E=o[--c];if(!g)for(let u=E.from,h=c;;){if(u==e)break A;if(h&&o[h-1].to==u)u=o[--h].from;else{if(vo[u-1]==s)break A;break}}if(C)C.push(E);else{E.tovo.length;)vo[vo.length]=256;let i=[],n=e==xC?0:1;return YN(t,n,n,A,0,t.length,i),i}function jtA(t){return[new Hl(0,t,0)]}var qtA="";function BLA(t,e,A,i,n){var o;let r=i.head-t.from,s=Hl.find(e,r,(o=i.bidiLevel)!==null&&o!==void 0?o:-1,i.assoc),a=e[s],c=a.side(n,A);if(r==c){let C=s+=n?1:-1;if(C<0||C>=e.length)return null;a=e[s=C],r=a.side(!n,A),c=a.side(n,A)}let g=br(t.text,r,a.forward(n,A));(ga.to)&&(g=c),qtA=t.text.slice(Math.min(r,g),Math.max(r,g));let I=s==(n?e.length-1:0)?null:e[s+(n?1:-1)];return I&&g==c&&I.level+(n?0:1)t.some(e=>e)}),eiA=qe.define({combine:t=>t.some(e=>e)}),tiA=qe.define(),i3=class t{constructor(e,A="nearest",i="nearest",n=5,o=5,r=!1){this.range=e,this.y=A,this.x=i,this.yMargin=n,this.xMargin=o,this.isSnapshot=r}map(e){return e.empty?this:new t(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new t(ae.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},GD=Ki.define({map:(t,e)=>t.map(e)}),iiA=Ki.define();function is(t,e,A){let i=t.facet(XtA);i.length?i[0](e):window.onerror&&window.onerror(String(e),A,void 0,void 0,e)||(A?console.error(A+":",e):console.error(e))}var P0=qe.define({combine:t=>t.length?t[0]:!0}),QLA=0,YE=qe.define({combine(t){return t.filter((e,A)=>{for(let i=0;i{let a=[];return r&&a.push(B3.of(c=>{let g=c.plugin(s);return g?r(g):ht.none})),o&&a.push(o(s)),a})}static fromClass(e,A){return t.define((i,n)=>new e(i,n),A)}},n3=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let A=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(A)}catch(i){if(is(A.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(A){is(e.state,A,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var A;if(!((A=this.value)===null||A===void 0)&&A.destroy)try{this.value.destroy()}catch(i){is(e.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},qeA=qe.define(),TN=qe.define(),B3=qe.define(),niA=qe.define(),Bw=qe.define(),oiA=qe.define();function VeA(t,e){let A=t.state.facet(oiA);if(!A.length)return A;let i=A.map(o=>o instanceof Function?o(t):o),n=[];return Io.spans(i,e.from,e.to,{point(){},span(o,r,s,a){let c=o-e.from,g=r-e.from,I=n;for(let C=s.length-1;C>=0;C--,a--){let d=s[C].spec.bidiIsolate,B;if(d==null&&(d=ELA(e.text,c,g)),a>0&&I.length&&(B=I[I.length-1]).to==c&&B.direction==d)B.to=g,I=B.inner;else{let E={from:c,to:g,direction:d,inner:[]};I.push(E),I=E.inner}}}}),n}var riA=qe.define();function pF(t){let e=0,A=0,i=0,n=0;for(let o of t.state.facet(riA)){let r=o(t);r&&(r.left!=null&&(e=Math.max(e,r.left)),r.right!=null&&(A=Math.max(A,r.right)),r.top!=null&&(i=Math.max(i,r.top)),r.bottom!=null&&(n=Math.max(n,r.bottom)))}return{left:e,right:A,top:i,bottom:n}}var Z4=qe.define(),Ol=class t{constructor(e,A,i,n){this.fromA=e,this.toA=A,this.fromB=i,this.toB=n}join(e){return new t(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let A=e.length,i=this;for(;A>0;A--){let n=e[A-1];if(!(n.fromA>i.toA)){if(n.toAg)break;o+=2}if(!a)return i;new t(a.fromA,a.toA,a.fromB,a.toB).addToSet(i),r=a.toA,s=a.toB}}},ew=class t{constructor(e,A,i){this.view=e,this.state=A,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=hs.empty(this.startState.doc.length);for(let o of i)this.changes=this.changes.compose(o.changes);let n=[];this.changes.iterChangedRanges((o,r,s,a)=>n.push(new Ol(o,r,s,a))),this.changedRanges=n}static create(e,A,i){return new t(e,A,i)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},tw=class extends No{get length(){return this.view.state.doc.length}constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.editContextFormatting=ht.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new ps],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new Ol(0,0,0,e.state.doc.length)],0,null)}update(e){var A;let i=e.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:c,toA:g})=>gthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let n=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((A=this.domChanged)===null||A===void 0)&&A.newSel?n=this.domChanged.newSel.head:!wLA(e.changes,this.hasComposition)&&!e.selectionSet&&(n=e.state.selection.main.head));let o=n>-1?hLA(this.view,e.changes,n):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:c,to:g}=this.hasComposition;i=new Ol(c,g,e.changes.mapPos(c,-1),e.changes.mapPos(g,1)).addToSet(i.slice())}this.hasComposition=o?{from:o.range.fromB,to:o.range.toB}:null,(it.ie||it.chrome)&&!o&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let r=this.decorations,s=this.updateDeco(),a=pLA(r,s,e.changes);return i=Ol.extendWithRanges(i,a),!(this.flags&7)&&i.length==0?!1:(this.updateInner(i,e.startState.doc.length,o),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,A,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,A,i);let{observer:n}=this.view;n.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let r=it.chrome||it.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,r),this.flags&=-8,r&&(r.written||n.selectionRange.focusNode!=r.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(r=>r.flags&=-9);let o=[];if(this.view.viewport.from||this.view.viewport.to=0?n[r]:null;if(!s)break;let{fromA:a,toA:c,fromB:g,toB:I}=s,C,d,B,E;if(i&&i.range.fromBg){let R=t3.build(this.view.state.doc,g,i.range.fromB,this.decorations,this.dynamicDecorationMap),D=t3.build(this.view.state.doc,i.range.toB,I,this.decorations,this.dynamicDecorationMap);d=R.breakAtStart,B=R.openStart,E=D.openEnd;let G=this.compositionView(i);D.breakAtStart?G.breakAfter=1:D.content.length&&G.merge(G.length,G.length,D.content[0],!1,D.openStart,0)&&(G.breakAfter=D.content[0].breakAfter,D.content.shift()),R.content.length&&G.merge(0,0,R.content[R.content.length-1],!0,0,R.openEnd)&&R.content.pop(),C=R.content.concat(G).concat(D.content)}else({content:C,breakAtStart:d,openStart:B,openEnd:E}=t3.build(this.view.state.doc,g,I,this.decorations,this.dynamicDecorationMap));let{i:u,off:h}=o.findPos(c,1),{i:w,off:x}=o.findPos(a,-1);_tA(this,w,x,u,h,C,d,B,E)}i&&this.fixCompositionDOM(i)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let A of e.transactions)for(let i of A.effects)i.is(iiA)&&(this.editContextFormatting=i.value)}compositionView(e){let A=new Pl(e.text.nodeValue);A.flags|=8;for(let{deco:n}of e.marks)A=new N1(n,[A],A.length);let i=new ps;return i.append(A,0),i}fixCompositionDOM(e){let A=(o,r)=>{r.flags|=8|(r.children.some(a=>a.flags&7)?1:0),this.markedForComposition.add(r);let s=No.get(o);s&&s!=r&&(s.dom=null),r.setDOM(o)},i=this.childPos(e.range.fromB,1),n=this.children[i.i];A(e.line,n);for(let o=e.marks.length-1;o>=-1;o--)i=n.childPos(i.off,1),n=n.children[i.i],A(o>=0?e.marks[o].node:e.text,n)}updateSelection(e=!1,A=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let i=this.view.root.activeElement,n=i==this.dom,o=!n&&!(this.view.state.facet(P0)||this.dom.tabIndex>-1)&&zD(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(n||A||o))return;let r=this.forceSelection;this.forceSelection=!1;let s=this.view.state.selection.main,a=this.moveToLine(this.domAtPos(s.anchor)),c=s.empty?a:this.moveToLine(this.domAtPos(s.head));if(it.gecko&&s.empty&&!this.hasComposition&&uLA(a)){let I=document.createTextNode("");this.view.observer.ignore(()=>a.node.insertBefore(I,a.node.childNodes[a.offset]||null)),a=c=new ia(I,0),r=!0}let g=this.view.observer.selectionRange;(r||!g.focusNode||(!e3(a.node,a.offset,g.anchorNode,g.anchorOffset)||!e3(c.node,c.offset,g.focusNode,g.focusOffset))&&!this.suppressWidgetCursorChange(g,s))&&(this.view.observer.ignore(()=>{it.android&&it.chrome&&this.dom.contains(g.focusNode)&&DLA(g.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let I=a3(this.view.root);if(I)if(s.empty){if(it.gecko){let C=fLA(a.node,a.offset);if(C&&C!=3){let d=(C==1?NtA:FtA)(a.node,a.offset);d&&(a=new ia(d.node,d.offset))}}I.collapse(a.node,a.offset),s.bidiLevel!=null&&I.caretBidiLevel!==void 0&&(I.caretBidiLevel=s.bidiLevel)}else if(I.extend){I.collapse(a.node,a.offset);try{I.extend(c.node,c.offset)}catch{}}else{let C=document.createRange();s.anchor>s.head&&([a,c]=[c,a]),C.setEnd(c.node,c.offset),C.setStart(a.node,a.offset),I.removeAllRanges(),I.addRange(C)}o&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())}),this.view.observer.setSelectionRange(a,c)),this.impreciseAnchor=a.precise?null:new ia(g.anchorNode,g.anchorOffset),this.impreciseHead=c.precise?null:new ia(g.focusNode,g.focusOffset)}suppressWidgetCursorChange(e,A){return this.hasComposition&&A.empty&&e3(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==A.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,A=e.state.selection.main,i=a3(e.root),{anchorNode:n,anchorOffset:o}=e.observer.selectionRange;if(!i||!A.empty||!A.assoc||!i.modify)return;let r=ps.find(this,A.head);if(!r)return;let s=r.posAtStart;if(A.head==s||A.head==s+r.length)return;let a=this.coordsAt(A.head,-1),c=this.coordsAt(A.head,1);if(!a||!c||a.bottom>c.top)return;let g=this.domAtPos(A.head+A.assoc);i.collapse(g.node,g.offset),i.modify("move",A.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let I=e.observer.selectionRange;e.docView.posFromDOM(I.anchorNode,I.anchorOffset)!=A.from&&i.collapse(n,o)}moveToLine(e){let A=this.dom,i;if(e.node!=A)return e;for(let n=e.offset;!i&&n=0;n--){let o=No.get(A.childNodes[n]);o instanceof ps&&(i=o.domAtPos(o.length))}return i?new ia(i.node,i.offset,!0):e}nearest(e){for(let A=e;A;){let i=No.get(A);if(i&&i.rootView==this)return i;A=A.parentNode}return null}posFromDOM(e,A){let i=this.nearest(e);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(e,A)+i.posAtStart}domAtPos(e){let{i:A,off:i}=this.childCursor().findPos(e,-1);for(;A=0;r--){let s=this.children[r],a=o-s.breakAfter,c=a-s.length;if(ae||s.covers(1))&&(!i||s instanceof ps&&!(i instanceof ps&&A>=0)))i=s,n=c;else if(i&&c==e&&a==e&&s instanceof SC&&Math.abs(A)<2){if(s.deco.startSide<0)break;r&&(i=null)}o=c}return i?i.coordsAt(e-n,A):null}coordsForChar(e){let{i:A,off:i}=this.childPos(e,1),n=this.children[A];if(!(n instanceof ps))return null;for(;n.children.length;){let{i:s,off:a}=n.childPos(i,1);for(;;s++){if(s==n.children.length)return null;if((n=n.children[s]).length)break}i=a}if(!(n instanceof Pl))return null;let o=br(n.text,i);if(o==i)return null;let r=LC(n.dom,i,o).getClientRects();for(let s=0;sMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,s=-1,a=this.view.textDirection==Co.LTR;for(let c=0,g=0;gn)break;if(c>=i){let d=I.dom.getBoundingClientRect();if(A.push(d.height),r){let B=I.dom.lastChild,E=B?c3(B):[];if(E.length){let u=E[E.length-1],h=a?u.right-d.left:d.right-u.left;h>s&&(s=h,this.minWidth=o,this.minWidthFrom=c,this.minWidthTo=C)}}}c=C+I.breakAfter}return A}textDirectionAt(e){let{i:A}=this.childPos(e,1);return getComputedStyle(this.children[A].dom).direction=="rtl"?Co.RTL:Co.LTR}measureTextSize(){for(let o of this.children)if(o instanceof ps){let r=o.measureTextSize();if(r)return r}let e=document.createElement("div"),A,i,n;return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let o=c3(e.firstChild)[0];A=e.getBoundingClientRect().height,i=o?o.width/27:7,n=o?o.height:A,e.remove()}),{lineHeight:A,charWidth:i,textHeight:n}}childCursor(e=this.length){let A=this.children.length;return A&&(e-=this.children[--A].length),new $D(this.children,e,A)}computeBlockGapDeco(){let e=[],A=this.view.viewState;for(let i=0,n=0;;n++){let o=n==A.viewports.length?null:A.viewports[n],r=o?o.from-1:this.length;if(r>i){let s=(A.lineBlockAt(r).bottom-A.lineBlockAt(i).top)/this.view.scaleY;e.push(ht.replace({widget:new d3(s),block:!0,inclusive:!0,isBlockGap:!0}).range(i,r))}if(!o)break;i=o.to+1}return ht.set(e)}updateDeco(){let e=1,A=this.view.state.facet(B3).map(o=>(this.dynamicDecorationMap[e++]=typeof o=="function")?o(this.view):o),i=!1,n=this.view.state.facet(niA).map((o,r)=>{let s=typeof o=="function";return s&&(i=!0),s?o(this.view):o});for(n.length&&(this.dynamicDecorationMap[e++]=i,A.push(Io.join(n))),this.decorations=[this.editContextFormatting,...A,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];eA.anchor?-1:1),n;if(!i)return;!A.empty&&(n=this.coordsAt(A.anchor,A.anchor>A.head?-1:1))&&(i={left:Math.min(i.left,n.left),top:Math.min(i.top,n.top),right:Math.max(i.right,n.right),bottom:Math.max(i.bottom,n.bottom)});let o=pF(this.view),r={left:i.left-o.left,top:i.top-o.top,right:i.right+o.right,bottom:i.bottom+o.bottom},{offsetWidth:s,offsetHeight:a}=this.view.scrollDOM;XRA(this.view.scrollDOM,r,A.head{ie.from&&(A=!0)}),A}function yLA(t,e,A=1){let i=t.charCategorizer(e),n=t.doc.lineAt(e),o=e-n.from;if(n.length==0)return ae.cursor(e);o==0?A=1:o==n.length&&(A=-1);let r=o,s=o;A<0?r=br(n.text,o,!1):s=br(n.text,o);let a=i(n.text.slice(r,s));for(;r>0;){let c=br(n.text,r,!1);if(i(n.text.slice(c,r))!=a)break;r=c}for(;st?e.left-t:Math.max(0,t-e.right)}function MLA(t,e){return e.top>t?e.top-t:Math.max(0,t-e.bottom)}function yN(t,e){return t.tope.top+1}function ZeA(t,e){return et.bottom?{top:t.top,left:t.left,right:t.right,bottom:e}:t}function HN(t,e,A){let i,n,o,r,s=!1,a,c,g,I;for(let B=t.firstChild;B;B=B.nextSibling){let E=c3(B);for(let u=0;ux||r==x&&o>w)&&(i=B,n=h,o=w,r=x,s=w?e0:uh.bottom&&(!g||g.bottomh.top)&&(c=B,I=h):g&&yN(g,h)?g=WeA(g,h.bottom):I&&yN(I,h)&&(I=ZeA(I,h.top))}}if(g&&g.bottom>=A?(i=a,n=g):I&&I.top<=A&&(i=c,n=I),!i)return{node:t,offset:0};let C=Math.max(n.left,Math.min(n.right,e));if(i.nodeType==3)return XeA(i,C,A);if(s&&i.contentEditable!="false")return HN(i,C,A);let d=Array.prototype.indexOf.call(t.childNodes,i)+(e>=(n.left+n.right)/2?1:0);return{node:t,offset:d}}function XeA(t,e,A){let i=t.nodeValue.length,n=-1,o=1e9,r=0;for(let s=0;sA?g.top-A:A-g.bottom)-1;if(g.left-1<=e&&g.right+1>=e&&I=(g.left+g.right)/2,d=C;if((it.chrome||it.gecko)&&LC(t,s).getBoundingClientRect().left==g.right&&(d=!C),I<=0)return{node:t,offset:s+(d?1:0)};n=s+(d?1:0),o=I}}}return{node:t,offset:n>-1?n:r>0?t.nodeValue.length:0}}function aiA(t,e,A,i=-1){var n,o;let r=t.contentDOM.getBoundingClientRect(),s=r.top+t.viewState.paddingTop,a,{docHeight:c}=t.viewState,{x:g,y:I}=e,C=I-s;if(C<0)return 0;if(C>c)return t.state.doc.length;for(let R=t.viewState.heightOracle.textHeight/2,D=!1;a=t.elementAtHeight(C),a.type!=na.Text;)for(;C=i>0?a.bottom+R:a.top-R,!(C>=0&&C<=c);){if(D)return A?null:0;D=!0,i=-i}I=s+C;let d=a.from;if(dt.viewport.to)return t.viewport.to==t.state.doc.length?t.state.doc.length:A?null:$eA(t,r,a,g,I);let B=t.dom.ownerDocument,E=t.root.elementFromPoint?t.root:B,u=E.elementFromPoint(g,I);u&&!t.contentDOM.contains(u)&&(u=null),u||(g=Math.max(r.left+1,Math.min(r.right-1,g)),u=E.elementFromPoint(g,I),u&&!t.contentDOM.contains(u)&&(u=null));let h,w=-1;if(u&&((n=t.docView.nearest(u))===null||n===void 0?void 0:n.isEditable)!=!1){if(B.caretPositionFromPoint){let R=B.caretPositionFromPoint(g,I);R&&({offsetNode:h,offset:w}=R)}else if(B.caretRangeFromPoint){let R=B.caretRangeFromPoint(g,I);R&&({startContainer:h,startOffset:w}=R,(!t.contentDOM.contains(h)||it.safari&&bLA(h,w,g)||it.chrome&&kLA(h,w,g))&&(h=void 0))}h&&(w=Math.min(zl(h),w))}if(!h||!t.docView.dom.contains(h)){let R=ps.find(t.docView,d);if(!R)return C>a.top+a.height/2?a.to:a.from;({node:h,offset:w}=HN(R.dom,g,I))}let x=t.docView.nearest(h);if(!x)return null;if(x.isWidget&&((o=x.dom)===null||o===void 0?void 0:o.nodeType)==1){let R=x.dom.getBoundingClientRect();return e.yt.defaultLineHeight*1.5){let s=t.viewState.heightOracle.textHeight,a=Math.floor((n-A.top-(t.defaultLineHeight-s)*.5)/s);o+=a*t.viewState.heightOracle.lineLength}let r=t.state.sliceDoc(A.from,A.to);return A.from+ND(r,o,t.state.tabSize)}function bLA(t,e,A){let i,n=t;if(t.nodeType!=3||e!=(i=t.nodeValue.length))return!1;for(;;){let o=n.nextSibling;if(o){if(o.nodeName=="BR")break;return!1}else{let r=n.parentNode;if(!r||r.nodeName=="DIV")break;n=r}}return LC(t,i-1,i).getBoundingClientRect().right>A}function kLA(t,e,A){if(e!=0)return!1;for(let n=t;;){let o=n.parentNode;if(!o||o.nodeType!=1||o.firstChild!=n)return!1;if(o.classList.contains("cm-line"))break;n=o}let i=t.nodeType==1?t.getBoundingClientRect():LC(t,0,Math.max(t.nodeValue.length,1)).getBoundingClientRect();return A-i.left>5}function ON(t,e,A){let i=t.lineBlockAt(e);if(Array.isArray(i.type)){let n;for(let o of i.type){if(o.from>e)break;if(!(o.toe)return o;(!n||o.type==na.Text&&(n.type!=o.type||(A<0?o.frome)))&&(n=o)}}return n||i}return i}function SLA(t,e,A,i){let n=ON(t,e.head,e.assoc||-1),o=!i||n.type!=na.Text||!(t.lineWrapping||n.widgetLineBreaks)?null:t.coordsAtPos(e.assoc<0&&e.head>n.from?e.head-1:e.head);if(o){let r=t.dom.getBoundingClientRect(),s=t.textDirectionAt(n.from),a=t.posAtCoords({x:A==(s==Co.LTR)?r.right-1:r.left+1,y:(o.top+o.bottom)/2});if(a!=null)return ae.cursor(a,A?-1:1)}return ae.cursor(A?n.to:n.from,A?-1:1)}function AtA(t,e,A,i){let n=t.state.doc.lineAt(e.head),o=t.bidiSpans(n),r=t.textDirectionAt(n.from);for(let s=e,a=null;;){let c=BLA(n,o,r,s,A),g=qtA;if(!c){if(n.number==(A?t.state.doc.lines:1))return s;g=` -`,n=t.state.doc.line(n.number+(A?1:-1)),o=t.bidiSpans(n),c=t.visualLineSide(n,!A)}if(a){if(!a(g))return s}else{if(!i)return c;a=i(g)}s=c}}function RLA(t,e,A){let i=t.state.charCategorizer(e),n=i(A);return o=>{let r=i(o);return n==lo.Space&&(n=r),n==r}}function LLA(t,e,A,i){let n=e.head,o=A?1:-1;if(n==(A?t.state.doc.length:0))return ae.cursor(n,e.assoc);let r=e.goalColumn,s,a=t.contentDOM.getBoundingClientRect(),c=t.coordsAtPos(n,e.assoc||-1),g=t.documentTop;if(c)r==null&&(r=c.left-a.left),s=o<0?c.top:c.bottom;else{let d=t.viewState.lineBlockAt(n);r==null&&(r=Math.min(a.right-a.left,t.defaultCharacterWidth*(n-d.from))),s=(o<0?d.top:d.bottom)+g}let I=a.left+r,C=i??t.viewState.heightOracle.textHeight>>1;for(let d=0;;d+=10){let B=s+(C+d)*o,E=aiA(t,{x:I,y:B},!1,o);if(Ba.bottom||(o<0?En)){let u=t.docView.coordsForChar(E),h=!u||B{if(e>o&&en(t)),A.from,e.head>A.from?-1:1);return i==A.from?A:ae.cursor(i,io)&&this.lineBreak(),n=r}return this.findPointBefore(i,A),this}readTextNode(e){let A=e.nodeValue;for(let i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,A.length));for(let i=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let o=-1,r=1,s;if(this.lineSeparator?(o=A.indexOf(this.lineSeparator,i),r=this.lineSeparator.length):(s=n.exec(A))&&(o=s.index,r=s[0].length),this.append(A.slice(i,o<0?A.length:o)),o<0)break;if(this.lineBreak(),r>1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=r-1);i=o+r}}readNode(e){if(e.cmIgnore)return;let A=No.get(e),i=A&&A.overrideDOMText;if(i!=null){this.findPointInside(e,i.length);for(let n=i.iter();!n.next().done;)n.lineBreak?this.lineBreak():this.append(n.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,A){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==A&&(i.pos=this.text.length)}findPointInside(e,A){for(let i of this.points)(e.nodeType==3?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+(xLA(e,i.node,i.offset)?A:0))}};function xLA(t,e,A){for(;;){if(!e||A-1;let{impreciseHead:o,impreciseAnchor:r}=e.docView;if(e.state.readOnly&&A>-1)this.newSel=null;else if(A>-1&&(this.bounds=e.docView.domBoundsAround(A,i,0))){let s=o||r?[]:_LA(e),a=new zN(s,e.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=GLA(s,this.bounds.from)}else{let s=e.observer.selectionRange,a=o&&o.node==s.focusNode&&o.offset==s.focusOffset||!LN(e.contentDOM,s.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(s.focusNode,s.focusOffset),c=r&&r.node==s.anchorNode&&r.offset==s.anchorOffset||!LN(e.contentDOM,s.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(s.anchorNode,s.anchorOffset),g=e.viewport;if((it.ios||it.chrome)&&e.state.selection.main.empty&&a!=c&&(g.from>0||g.toDate.now()-100?t.inputState.lastKeyCode:-1;if(e.bounds){let{from:r,to:s}=e.bounds,a=n.from,c=null;(o===8||it.android&&e.text.length=n.from&&A.to<=n.to&&(A.from!=n.from||A.to!=n.to)&&n.to-n.from-(A.to-A.from)<=4?A={from:n.from,to:n.to,insert:t.state.doc.slice(n.from,A.from).append(A.insert).append(t.state.doc.slice(A.to,n.to))}:it.chrome&&A&&A.from==A.to&&A.from==n.head&&A.insert.toString()==` - `&&t.lineWrapping&&(i&&(i=ae.single(i.main.anchor-1,i.main.head-1)),A={from:n.from,to:n.to,insert:tn.of([" "])}),A)return DF(t,A,i,o);if(i&&!i.main.eq(n)){let r=!1,s="select";return t.inputState.lastSelectionTime>Date.now()-50&&(t.inputState.lastSelectionOrigin=="select"&&(r=!0),s=t.inputState.lastSelectionOrigin,s=="select.pointer"&&(i=ciA(t.state.facet(Bw).map(a=>a(t)),i))),t.dispatch({selection:i,scrollIntoView:r,userEvent:s}),!0}else return!1}function DF(t,e,A,i=-1){if(it.ios&&t.inputState.flushIOSKey(e))return!0;let n=t.state.selection.main;if(it.android&&(e.to==n.to&&(e.from==n.from||e.from==n.from-1&&t.state.sliceDoc(e.from,n.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&zE(t.contentDOM,"Enter",13)||(e.from==n.from-1&&e.to==n.to&&e.insert.length==0||i==8&&e.insert.lengthn.head)&&zE(t.contentDOM,"Backspace",8)||e.from==n.from&&e.to==n.to+1&&e.insert.length==0&&zE(t.contentDOM,"Delete",46)))return!0;let o=e.insert.toString();t.inputState.composing>=0&&t.inputState.composing++;let r,s=()=>r||(r=NLA(t,e,A));return t.state.facet($tA).some(a=>a(t,e.from,e.to,o,s))||t.dispatch(s()),!0}function NLA(t,e,A){let i,n=t.state,o=n.selection.main;if(e.from>=o.from&&e.to<=o.to&&e.to-e.from>=(o.to-o.from)/3&&(!A||A.main.empty&&A.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let s=o.frome.to?n.sliceDoc(e.to,o.to):"";i=n.replaceSelection(t.state.toText(s+e.insert.sliceString(0,void 0,t.state.lineBreak)+a))}else{let s=n.changes(e),a=A&&A.main.to<=s.newLength?A.main:void 0;if(n.selection.ranges.length>1&&t.inputState.composing>=0&&e.to<=o.to&&e.to>=o.to-10){let c=t.state.sliceDoc(e.from,e.to),g,I=A&&siA(t,A.main.head);if(I){let B=e.insert.length-(e.to-e.from);g={from:I.from,to:I.to-B}}else g=t.state.doc.lineAt(o.head);let C=o.to-e.to,d=o.to-o.from;i=n.changeByRange(B=>{if(B.from==o.from&&B.to==o.to)return{changes:s,range:a||B.map(s)};let E=B.to-C,u=E-c.length;if(B.to-B.from!=d||t.state.sliceDoc(u,E)!=c||B.to>=g.from&&B.from<=g.to)return{range:B};let h=n.changes({from:u,to:E,insert:e.insert}),w=B.to-o.to;return{changes:h,range:a?ae.range(Math.max(0,a.anchor+w),Math.max(0,a.head+w)):B.map(h)}})}else i={changes:s,selection:a&&n.selection.replaceRange(a)}}let r="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,r+=".compose",t.inputState.compositionFirstChange&&(r+=".start",t.inputState.compositionFirstChange=!1)),n.update(i,{userEvent:r,scrollIntoView:!0})}function FLA(t,e,A,i){let n=Math.min(t.length,e.length),o=0;for(;o0&&s>0&&t.charCodeAt(r-1)==e.charCodeAt(s-1);)r--,s--;if(i=="end"){let a=Math.max(0,o-Math.min(r,s));A-=r+a-o}if(r=r?o-A:0;o-=a,s=o+(s-r),r=o}else if(s=s?o-A:0;o-=a,r=o+(r-s),s=o}return{from:o,toA:r,toB:s}}function _LA(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:A,anchorOffset:i,focusNode:n,focusOffset:o}=t.observer.selectionRange;return A&&(e.push(new iw(A,i)),(n!=A||o!=i)&&e.push(new iw(n,o))),e}function GLA(t,e){if(t.length==0)return null;let A=t[0].pos,i=t.length==2?t[1].pos:A;return A>-1&&i>-1?ae.single(A+e,i+e):null}var jN=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,it.safari&&e.contentDOM.addEventListener("input",()=>null),it.gecko&&XLA(e.contentDOM.ownerDocument)}handleEvent(e){!OLA(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,A){let i=this.handlers[e];if(i){for(let n of i.observers)n(this.view,A);for(let n of i.handlers){if(A.defaultPrevented)break;if(n(this.view,A)){A.preventDefault();break}}}}ensureHandlers(e){let A=KLA(e),i=this.handlers,n=this.view.contentDOM;for(let o in A)if(o!="scroll"){let r=!A[o].handlers.length,s=i[o];s&&r!=!s.handlers.length&&(n.removeEventListener(o,this.handleEvent),s=null),s||n.addEventListener(o,this.handleEvent,{passive:r})}for(let o in i)o!="scroll"&&!A[o]&&n.removeEventListener(o,this.handleEvent);this.handlers=A}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&IiA.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),it.android&&it.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let A;return it.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((A=liA.find(i=>i.keyCode==e.keyCode))&&!e.ctrlKey||ULA.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=A||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let A=this.pendingIOSKey;return!A||A.key=="Enter"&&e&&e.from0?!0:it.safari&&!it.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function etA(t,e){return(A,i)=>{try{return e.call(t,i,A)}catch(n){is(A.state,n)}}}function KLA(t){let e=Object.create(null);function A(i){return e[i]||(e[i]={observers:[],handlers:[]})}for(let i of t){let n=i.spec,o=n&&n.plugin.domEventHandlers,r=n&&n.plugin.domEventObservers;if(o)for(let s in o){let a=o[s];a&&A(s).handlers.push(etA(i.value,a))}if(r)for(let s in r){let a=r[s];a&&A(s).observers.push(etA(i.value,a))}}for(let i in Fg)A(i).handlers.push(Fg[i]);for(let i in Vc)A(i).observers.push(Vc[i]);return e}var liA=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],ULA="dthko",IiA=[16,17,18,20,91,92,224,225],KD=6;function UD(t){return Math.max(0,t)*.7+8}function JLA(t,e){return Math.max(Math.abs(t.clientX-e.clientX),Math.abs(t.clientY-e.clientY))}var qN=class{constructor(e,A,i,n){this.view=e,this.startEvent=A,this.style=i,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=A,this.scrollParents=$RA(e.contentDOM),this.atoms=e.state.facet(Bw).map(r=>r(e));let o=e.contentDOM.ownerDocument;o.addEventListener("mousemove",this.move=this.move.bind(this)),o.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=A.shiftKey,this.multiple=e.state.facet(Dr.allowMultipleSelections)&&YLA(e,A),this.dragging=HLA(e,A)&&BiA(A)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&JLA(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let A=0,i=0,n=0,o=0,r=this.view.win.innerWidth,s=this.view.win.innerHeight;this.scrollParents.x&&({left:n,right:r}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:o,bottom:s}=this.scrollParents.y.getBoundingClientRect());let a=pF(this.view);e.clientX-a.left<=n+KD?A=-UD(n-e.clientX):e.clientX+a.right>=r-KD&&(A=UD(e.clientX-r)),e.clientY-a.top<=o+KD?i=-UD(o-e.clientY):e.clientY+a.bottom>=s-KD&&(i=UD(e.clientY-s)),this.setScrollSpeed(A,i)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,A){this.scrollSpeed={x:e,y:A},e||A?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:A}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),A&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=A,A=0),(e||A)&&this.view.win.scrollBy(e,A),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:A}=this,i=ciA(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!i.eq(A.state.selection,this.dragging===!1))&&this.view.dispatch({selection:i,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(A=>A.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function YLA(t,e){let A=t.state.facet(VtA);return A.length?A[0](e):it.mac?e.metaKey:e.ctrlKey}function TLA(t,e){let A=t.state.facet(ZtA);return A.length?A[0](e):it.mac?!e.altKey:!e.ctrlKey}function HLA(t,e){let{main:A}=t.state.selection;if(A.empty)return!1;let i=a3(t.root);if(!i||i.rangeCount==0)return!0;let n=i.getRangeAt(0).getClientRects();for(let o=0;o=e.clientX&&r.top<=e.clientY&&r.bottom>=e.clientY)return!0}return!1}function OLA(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let A=e.target,i;A!=t.contentDOM;A=A.parentNode)if(!A||A.nodeType==11||(i=No.get(A))&&i.ignoreEvent(e))return!1;return!0}var Fg=Object.create(null),Vc=Object.create(null),CiA=it.ie&&it.ie_version<15||it.ios&&it.webkit_version<604;function zLA(t){let e=t.dom.parentNode;if(!e)return;let A=e.appendChild(document.createElement("textarea"));A.style.cssText="position: fixed; left: -10000px; top: 10px",A.focus(),setTimeout(()=>{t.focus(),A.remove(),diA(t,A.value)},50)}function Ew(t,e,A){for(let i of t.facet(e))A=i(A,t);return A}function diA(t,e){e=Ew(t.state,fF,e);let{state:A}=t,i,n=1,o=A.toText(e),r=o.lines==A.selection.ranges.length;if(VN!=null&&A.selection.ranges.every(a=>a.empty)&&VN==o.toString()){let a=-1;i=A.changeByRange(c=>{let g=A.doc.lineAt(c.from);if(g.from==a)return{range:c};a=g.from;let I=A.toText((r?o.line(n++).text:e)+A.lineBreak);return{changes:{from:g.from,insert:I},range:ae.cursor(c.from+I.length)}})}else r?i=A.changeByRange(a=>{let c=o.line(n++);return{changes:{from:a.from,to:a.to,insert:c.text},range:ae.cursor(a.from+c.length)}}):i=A.replaceSelection(o);t.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}Vc.scroll=t=>{t.inputState.lastScrollTop=t.scrollDOM.scrollTop,t.inputState.lastScrollLeft=t.scrollDOM.scrollLeft};Fg.keydown=(t,e)=>(t.inputState.setSelectionOrigin("select"),e.keyCode==27&&t.inputState.tabFocusMode!=0&&(t.inputState.tabFocusMode=Date.now()+2e3),!1);Vc.touchstart=(t,e)=>{t.inputState.lastTouchTime=Date.now(),t.inputState.setSelectionOrigin("select.pointer")};Vc.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")};Fg.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return!1;let A=null;for(let i of t.state.facet(WtA))if(A=i(t,e),A)break;if(!A&&e.button==0&&(A=qLA(t,e)),A){let i=!t.hasFocus;t.inputState.startMouseSelection(new qN(t,e,A,i)),i&&t.observer.ignore(()=>{RtA(t.contentDOM);let o=t.root.activeElement;o&&!o.contains(t.contentDOM)&&o.blur()});let n=t.inputState.mouseSelection;if(n)return n.start(e),n.dragging===!1}else t.inputState.setSelectionOrigin("select.pointer");return!1};function ttA(t,e,A,i){if(i==1)return ae.cursor(e,A);if(i==2)return yLA(t.state,e,A);{let n=ps.find(t.docView,e),o=t.state.doc.lineAt(n?n.posAtEnd:e),r=n?n.posAtStart:o.from,s=n?n.posAtEnd:o.to;return se>=A.top&&e<=A.bottom&&t>=A.left&&t<=A.right;function PLA(t,e,A,i){let n=ps.find(t.docView,e);if(!n)return 1;let o=e-n.posAtStart;if(o==0)return 1;if(o==n.length)return-1;let r=n.coordsAt(o,-1);if(r&&itA(A,i,r))return-1;let s=n.coordsAt(o,1);return s&&itA(A,i,s)?1:r&&r.bottom>=i?-1:1}function ntA(t,e){let A=t.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:A,bias:PLA(t,A,e.clientX,e.clientY)}}var jLA=it.ie&&it.ie_version<=11,otA=null,rtA=0,stA=0;function BiA(t){if(!jLA)return t.detail;let e=otA,A=stA;return otA=t,stA=Date.now(),rtA=!e||A>Date.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(rtA+1)%3:1}function qLA(t,e){let A=ntA(t,e),i=BiA(e),n=t.state.selection;return{update(o){o.docChanged&&(A.pos=o.changes.mapPos(A.pos),n=n.map(o.changes))},get(o,r,s){let a=ntA(t,o),c,g=ttA(t,a.pos,a.bias,i);if(A.pos!=a.pos&&!r){let I=ttA(t,A.pos,A.bias,i),C=Math.min(I.from,g.from),d=Math.max(I.to,g.to);g=C1&&(c=VLA(n,a.pos))?c:s?n.addRange(g):ae.create([g])}}}function VLA(t,e){for(let A=0;A=e)return ae.create(t.ranges.slice(0,A).concat(t.ranges.slice(A+1)),t.mainIndex==A?0:t.mainIndex-(t.mainIndex>A?1:0))}return null}Fg.dragstart=(t,e)=>{let{selection:{main:A}}=t.state;if(e.target.draggable){let n=t.docView.nearest(e.target);if(n&&n.isWidget){let o=n.posAtStart,r=o+n.length;(o>=A.to||r<=A.from)&&(A=ae.range(o,r))}}let{inputState:i}=t;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=A,e.dataTransfer&&(e.dataTransfer.setData("Text",Ew(t.state,mF,t.state.sliceDoc(A.from,A.to))),e.dataTransfer.effectAllowed="copyMove"),!1};Fg.dragend=t=>(t.inputState.draggedContent=null,!1);function atA(t,e,A,i){if(A=Ew(t.state,fF,A),!A)return;let n=t.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:o}=t.inputState,r=i&&o&&TLA(t,e)?{from:o.from,to:o.to}:null,s={from:n,insert:A},a=t.state.changes(r?[r,s]:s);t.focus(),t.dispatch({changes:a,selection:{anchor:a.mapPos(n,-1),head:a.mapPos(n,1)},userEvent:r?"move.drop":"input.drop"}),t.inputState.draggedContent=null}Fg.drop=(t,e)=>{if(!e.dataTransfer)return!1;if(t.state.readOnly)return!0;let A=e.dataTransfer.files;if(A&&A.length){let i=Array(A.length),n=0,o=()=>{++n==A.length&&atA(t,e,i.filter(r=>r!=null).join(t.state.lineBreak),!1)};for(let r=0;r{/[\x00-\x08\x0e-\x1f]{2}/.test(s.result)||(i[r]=s.result),o()},s.readAsText(A[r])}return!0}else{let i=e.dataTransfer.getData("Text");if(i)return atA(t,e,i,!0),!0}return!1};Fg.paste=(t,e)=>{if(t.state.readOnly)return!0;t.observer.flush();let A=CiA?null:e.clipboardData;return A?(diA(t,A.getData("text/plain")||A.getData("text/uri-list")),!0):(zLA(t),!1)};function ZLA(t,e){let A=t.dom.parentNode;if(!A)return;let i=A.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=e,i.focus(),i.selectionEnd=e.length,i.selectionStart=0,setTimeout(()=>{i.remove(),t.focus()},50)}function WLA(t){let e=[],A=[],i=!1;for(let n of t.selection.ranges)n.empty||(e.push(t.sliceDoc(n.from,n.to)),A.push(n));if(!e.length){let n=-1;for(let{from:o}of t.selection.ranges){let r=t.doc.lineAt(o);r.number>n&&(e.push(r.text),A.push({from:r.from,to:Math.min(t.doc.length,r.to+1)})),n=r.number}i=!0}return{text:Ew(t,mF,e.join(t.lineBreak)),ranges:A,linewise:i}}var VN=null;Fg.copy=Fg.cut=(t,e)=>{let{text:A,ranges:i,linewise:n}=WLA(t.state);if(!A&&!n)return!1;VN=n?A:null,e.type=="cut"&&!t.state.readOnly&&t.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let o=CiA?null:e.clipboardData;return o?(o.clearData(),o.setData("text/plain",A),!0):(ZLA(t,A),!1)};var EiA=Fa.define();function QiA(t,e){let A=[];for(let i of t.facet(AiA)){let n=i(t,e);n&&A.push(n)}return A.length?t.update({effects:A,annotations:EiA.of(!0)}):null}function uiA(t){setTimeout(()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let A=QiA(t.state,e);A?t.dispatch(A):t.update([])}},10)}Vc.focus=t=>{t.inputState.lastFocusTime=Date.now(),!t.scrollDOM.scrollTop&&(t.inputState.lastScrollTop||t.inputState.lastScrollLeft)&&(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),uiA(t)};Vc.blur=t=>{t.observer.clearSelectionRange(),uiA(t)};Vc.compositionstart=Vc.compositionupdate=t=>{t.observer.editContext||(t.inputState.compositionFirstChange==null&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0))};Vc.compositionend=t=>{t.observer.editContext||(t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,it.chrome&&it.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then(()=>t.observer.flush()):setTimeout(()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])},50))};Vc.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()};Fg.beforeinput=(t,e)=>{var A,i;if(e.inputType=="insertReplacementText"&&t.observer.editContext){let o=(A=e.dataTransfer)===null||A===void 0?void 0:A.getData("text/plain"),r=e.getTargetRanges();if(o&&r.length){let s=r[0],a=t.posAtDOM(s.startContainer,s.startOffset),c=t.posAtDOM(s.endContainer,s.endOffset);return DF(t,{from:a,to:c,insert:t.state.toText(o)},null),!0}}let n;if(it.chrome&&it.android&&(n=liA.find(o=>o.inputType==e.inputType))&&(t.observer.delayAndroidKey(n.key,n.keyCode),n.key=="Backspace"||n.key=="Delete")){let o=((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0;setTimeout(()=>{var r;(((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0)>o+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())},100)}return it.ios&&e.inputType=="deleteContentForward"&&t.observer.flushSoon(),it.safari&&e.inputType=="insertText"&&t.inputState.composing>=0&&setTimeout(()=>Vc.compositionend(t,e),20),!1};var ctA=new Set;function XLA(t){ctA.has(t)||(ctA.add(t),t.addEventListener("copy",()=>{}),t.addEventListener("cut",()=>{}))}var gtA=["pre-wrap","normal","pre-line","break-spaces"],PE=!1;function ltA(){PE=!1}var ZN=class{constructor(e){this.lineWrapping=e,this.doc=tn.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,A){let i=this.doc.lineAt(A).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((A-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return gtA.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let A=!1;for(let i=0;i-1,a=Math.round(A)!=Math.round(this.lineHeight)||this.lineWrapping!=s;if(this.lineWrapping=s,this.lineHeight=A,this.charWidth=i,this.textHeight=n,this.lineLength=o,a){this.heightSamples={};for(let c=0;c0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>qD&&(PE=!0),this.height=e)}replace(e,A,i){return t.of(i)}decomposeLeft(e,A){A.push(this)}decomposeRight(e,A){A.push(this)}applyChanges(e,A,i,n){let o=this,r=i.doc;for(let s=n.length-1;s>=0;s--){let{fromA:a,toA:c,fromB:g,toB:I}=n[s],C=o.lineAt(a,zo.ByPosNoHeight,i.setDoc(A),0,0),d=C.to>=c?C:o.lineAt(c,zo.ByPosNoHeight,i,0,0);for(I+=d.to-c,c=d.to;s>0&&C.from<=n[s-1].toA;)a=n[s-1].fromA,g=n[s-1].fromB,s--,ao*2){let s=e[A-1];s.break?e.splice(--A,1,s.left,null,s.right):e.splice(--A,1,s.left,s.right),i+=1+s.break,n-=s.size}else if(o>n*2){let s=e[i];s.break?e.splice(i,1,s.left,null,s.right):e.splice(i,1,s.left,s.right),i+=2+s.break,o-=s.size}else break;else if(n=o&&r(this.blockAt(0,i,n,o))}updateHeight(e,A=0,i=!1,n){return n&&n.from<=A&&n.more&&this.setHeight(n.heights[n.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}},qc=class t extends ow{constructor(e,A){super(e,A,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,A,i,n){return new Tl(n,this.length,i,this.height,this.breaks)}replace(e,A,i){let n=i[0];return i.length==1&&(n instanceof t||n instanceof x1&&n.flags&4)&&Math.abs(this.length-n.length)<10?(n instanceof x1?n=new t(n.length,this.height):n.height=this.height,this.outdated||(n.outdated=!1),n):Ic.of(i)}updateHeight(e,A=0,i=!1,n){return n&&n.from<=A&&n.more?this.setHeight(n.heights[n.index++]):(i||this.outdated)&&this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},x1=class t extends Ic{constructor(e){super(e,0)}heightMetrics(e,A){let i=e.doc.lineAt(A).number,n=e.doc.lineAt(A+this.length).number,o=n-i+1,r,s=0;if(e.lineWrapping){let a=Math.min(this.height,e.lineHeight*o);r=a/o,this.length>o+1&&(s=(this.height-a)/(this.length-o-1))}else r=this.height/o;return{firstLine:i,lastLine:n,perLine:r,perChar:s}}blockAt(e,A,i,n){let{firstLine:o,lastLine:r,perLine:s,perChar:a}=this.heightMetrics(A,n);if(A.lineWrapping){let c=n+(e0){let o=i[i.length-1];o instanceof t?i[i.length-1]=new t(o.length+n):i.push(null,new t(n-1))}if(e>0){let o=i[0];o instanceof t?i[0]=new t(e+o.length):i.unshift(new t(e-1),null)}return Ic.of(i)}decomposeLeft(e,A){A.push(new t(e-1),null)}decomposeRight(e,A){A.push(null,new t(this.length-e-1))}updateHeight(e,A=0,i=!1,n){let o=A+this.length;if(n&&n.from<=A+this.length&&n.more){let r=[],s=Math.max(A,n.from),a=-1;for(n.from>A&&r.push(new t(n.from-A-1).updateHeight(e,A));s<=o&&n.more;){let g=e.doc.lineAt(s).length;r.length&&r.push(null);let I=n.heights[n.index++];a==-1?a=I:Math.abs(I-a)>=qD&&(a=-2);let C=new qc(g,I);C.outdated=!1,r.push(C),s+=g+1}s<=o&&r.push(null,new t(o-s).updateHeight(e,s));let c=Ic.of(r);return(a<0||Math.abs(c.height-this.height)>=qD||Math.abs(a-this.heightMetrics(e,A).perLine)>=qD)&&(PE=!0),nw(this,c)}else(i||this.outdated)&&(this.setHeight(e.heightForGap(A,A+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},XN=class extends Ic{constructor(e,A,i){super(e.length+A+i.length,e.height+i.height,A|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return this.flags&1}blockAt(e,A,i,n){let o=i+this.left.height;return es))return c;let g=A==zo.ByPosNoHeight?zo.ByPosNoHeight:zo.ByPos;return a?c.join(this.right.lineAt(s,g,i,r,s)):this.left.lineAt(s,g,i,n,o).join(c)}forEachLine(e,A,i,n,o,r){let s=n+this.left.height,a=o+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,A,i,s,a,r);else{let c=this.lineAt(a,zo.ByPos,i,n,o);e=e&&c.from<=A&&r(c),A>c.to&&this.right.forEachLine(c.to+1,A,i,s,a,r)}}replace(e,A,i){let n=this.left.length+this.break;if(Athis.left.length)return this.balanced(this.left,this.right.replace(e-n,A-n,i));let o=[];e>0&&this.decomposeLeft(e,o);let r=o.length;for(let s of i)o.push(s);if(e>0&&ItA(o,r-1),A=i&&A.push(null)),e>i&&this.right.decomposeLeft(e-i,A)}decomposeRight(e,A){let i=this.left.length,n=i+this.break;if(e>=n)return this.right.decomposeRight(e-n,A);e2*A.size||A.size>2*e.size?Ic.of(this.break?[e,null,A]:[e,A]):(this.left=nw(this.left,e),this.right=nw(this.right,A),this.setHeight(e.height+A.height),this.outdated=e.outdated||A.outdated,this.size=e.size+A.size,this.length=e.length+this.break+A.length,this)}updateHeight(e,A=0,i=!1,n){let{left:o,right:r}=this,s=A+o.length+this.break,a=null;return n&&n.from<=A+o.length&&n.more?a=o=o.updateHeight(e,A,i,n):o.updateHeight(e,A,i),n&&n.from<=s+r.length&&n.more?a=r=r.updateHeight(e,s,i,n):r.updateHeight(e,s,i),a?this.balanced(o,r):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function ItA(t,e){let A,i;t[e]==null&&(A=t[e-1])instanceof x1&&(i=t[e+1])instanceof x1&&t.splice(e-1,3,new x1(A.length+1+i.length))}var $LA=5,$N=class t{constructor(e,A){this.pos=e,this.oracle=A,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,A){if(this.lineStart>-1){let i=Math.min(A,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof qc?n.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new qc(i-this.pos,-1)),this.writtenTo=i,A>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=A}point(e,A,i){if(e=$LA)&&this.addLineDeco(n,o,r)}else A>e&&this.span(e,A);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:A}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=A,this.writtenToe&&this.nodes.push(new qc(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,A){let i=new x1(A-e);return this.oracle.doc.lineAt(e).to==A&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof qc)return e;let A=new qc(0,-1);return this.nodes.push(A),A}addBlock(e){this.enterLine();let A=e.deco;A&&A.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,A&&A.endSide>0&&(this.covering=e)}addLineDeco(e,A,i){let n=this.ensureLine();n.length+=i,n.collapsed+=i,n.widgetHeight=Math.max(n.widgetHeight,e),n.breaks+=A,this.writtenTo=this.pos=this.pos+i}finish(e){let A=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(A instanceof qc)&&!this.isCovered?this.nodes.push(new qc(0,-1)):(this.writtenTog.clientHeight||g.scrollWidth>g.clientWidth)&&I.overflow!="visible"){let C=g.getBoundingClientRect();o=Math.max(o,C.left),r=Math.min(r,C.right),s=Math.max(s,C.top),a=Math.min(c==t.parentNode?n.innerHeight:a,C.bottom)}c=I.position=="absolute"||I.position=="fixed"?g.offsetParent:g.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:o-A.left,right:Math.max(o,r)-A.left,top:s-(A.top+e),bottom:Math.max(s,a)-(A.top+e)}}function txA(t){let e=t.getBoundingClientRect(),A=t.ownerDocument.defaultView||window;return e.left0&&e.top0}function ixA(t,e){let A=t.getBoundingClientRect();return{left:0,right:A.right-A.left,top:e,bottom:A.bottom-(A.top+e)}}var o3=class{constructor(e,A,i,n){this.from=e,this.to=A,this.size=i,this.displaySize=n}static same(e,A){if(e.length!=A.length)return!1;for(let i=0;itypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new ZN(A),this.stateDeco=e.facet(B3).filter(i=>typeof i!="function"),this.heightMap=Ic.empty().applyChanges(this.stateDeco,tn.empty,this.heightOracle.setDoc(e.doc),[new Ol(0,0,0,e.doc.length)]);for(let i=0;i<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());i++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=ht.set(this.lineGaps.map(i=>i.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:A}=this.state.selection;for(let i=0;i<=1;i++){let n=i?A.head:A.anchor;if(!e.some(({from:o,to:r})=>n>=o&&n<=r)){let{from:o,to:r}=this.lineBlockAt(n);e.push(new TE(o,r))}}return this.viewports=e.sort((i,n)=>i.from-n.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?CtA:new tF(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push($4(e,this.scaler))})}update(e,A=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=this.state.facet(B3).filter(g=>typeof g!="function");let n=e.changedRanges,o=Ol.extendWithRanges(n,AxA(i,this.stateDeco,e?e.changes:hs.empty(this.state.doc.length))),r=this.heightMap.height,s=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);ltA(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),o),(this.heightMap.height!=r||PE)&&(e.flags|=2),s?(this.scrollAnchorPos=e.changes.mapPos(s.from,-1),this.scrollAnchorHeight=s.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=r);let a=o.length?this.mapViewport(this.viewport,e.changes):this.viewport;(A&&(A.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,A));let c=a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),A&&(this.scrollTarget=A),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(eiA)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let A=e.contentDOM,i=window.getComputedStyle(A),n=this.heightOracle,o=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?Co.RTL:Co.LTR;let r=this.heightOracle.mustRefreshForWrapping(o),s=A.getBoundingClientRect(),a=r||this.mustMeasureContent||this.contentDOMHeight!=s.height;this.contentDOMHeight=s.height,this.mustMeasureContent=!1;let c=0,g=0;if(s.width&&s.height){let{scaleX:R,scaleY:D}=StA(A,s);(R>.005&&Math.abs(this.scaleX-R)>.005||D>.005&&Math.abs(this.scaleY-D)>.005)&&(this.scaleX=R,this.scaleY=D,c|=16,r=a=!0)}let I=(parseInt(i.paddingTop)||0)*this.scaleY,C=(parseInt(i.paddingBottom)||0)*this.scaleY;(this.paddingTop!=I||this.paddingBottom!=C)&&(this.paddingTop=I,this.paddingBottom=C,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(n.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let d=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=d&&(this.scrollAnchorHeight=-1,this.scrollTop=d),this.scrolledToBottom=xtA(e.scrollDOM);let B=(this.printing?ixA:exA)(A,this.paddingTop),E=B.top-this.pixelViewport.top,u=B.bottom-this.pixelViewport.bottom;this.pixelViewport=B;let h=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(h!=this.inView&&(this.inView=h,h&&(a=!0)),!this.inView&&!this.scrollTarget&&!txA(e.dom))return 0;let w=s.width;if((this.contentDOMWidth!=w||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=s.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),a){let R=e.docView.measureVisibleLineHeights(this.viewport);if(n.mustRefreshForHeights(R)&&(r=!0),r||n.lineWrapping&&Math.abs(w-this.contentDOMWidth)>n.charWidth){let{lineHeight:D,charWidth:G,textHeight:J}=e.docView.measureTextSize();r=D>0&&n.refresh(o,D,G,J,Math.max(5,w/G),R),r&&(e.docView.minWidth=0,c|=16)}E>0&&u>0?g=Math.max(E,u):E<0&&u<0&&(g=Math.min(E,u)),ltA();for(let D of this.viewports){let G=D.from==this.viewport.from?R:e.docView.measureVisibleLineHeights(D);this.heightMap=(r?Ic.empty().applyChanges(this.stateDeco,tn.empty,this.heightOracle,[new Ol(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(n,0,r,new WN(D.from,G))}PE&&(c|=2)}let x=!this.viewportIsAppropriate(this.viewport,g)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return x&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(g,this.scrollTarget),c|=this.updateForViewport()),(c&2||x)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(r?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,A){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),n=this.heightMap,o=this.heightOracle,{visibleTop:r,visibleBottom:s}=this,a=new TE(n.lineAt(r-i*1e3,zo.ByHeight,o,0,0).from,n.lineAt(s+(1-i)*1e3,zo.ByHeight,o,0,0).to);if(A){let{head:c}=A.range;if(ca.to){let g=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),I=n.lineAt(c,zo.ByPos,o,0,0),C;A.y=="center"?C=(I.top+I.bottom)/2-g/2:A.y=="start"||A.y=="nearest"&&c=s+Math.max(10,Math.min(i,250)))&&n>r-2*1e3&&o>1,r=n<<1;if(this.defaultTextDirection!=Co.LTR&&!i)return[];let s=[],a=(g,I,C,d)=>{if(I-gg&&hh.from>=C.from&&h.to<=C.to&&Math.abs(h.from-g)h.fromw));if(!u){if(Ix.from<=I&&x.to>=I)){let x=A.moveToLineBoundary(ae.cursor(I),!1,!0).head;x>g&&(I=x)}let h=this.gapSize(C,g,I,d),w=i||h<2e6?h:2e6;u=new o3(g,I,h,w)}s.push(u)},c=g=>{if(g.length2e6)for(let G of e)G.from>=g.from&&G.fromg.from&&a(g.from,d,g,I),BA.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let A=this.stateDeco;this.lineGaps.length&&(A=A.concat(this.lineGapDeco));let i=[];Io.spans(A,this.viewport.from,this.viewport.to,{span(o,r){i.push({from:o,to:r})},point(){}},20);let n=0;if(i.length!=this.visibleRanges.length)n=12;else for(let o=0;o=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(A=>A.from<=e&&A.to>=e)||$4(this.heightMap.lineAt(e,zo.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(A=>A.top<=e&&A.bottom>=e)||$4(this.heightMap.lineAt(this.scaler.fromDOM(e),zo.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let A=this.lineBlockAtHeight(e+8);return A.from>=this.viewport.from||this.viewportLines[0].top-e>200?A:this.viewportLines[0]}elementAtHeight(e){return $4(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},TE=class{constructor(e,A){this.from=e,this.to=A}};function nxA(t,e,A){let i=[],n=t,o=0;return Io.spans(A,t,e,{span(){},point(r,s){r>n&&(i.push({from:n,to:r}),o+=r-n),n=s}},20),n=1)return e[e.length-1].to;let i=Math.floor(t*A);for(let n=0;;n++){let{from:o,to:r}=e[n],s=r-o;if(i<=s)return o+i;i-=s}}function YD(t,e){let A=0;for(let{from:i,to:n}of t.ranges){if(e<=n){A+=e-i;break}A+=n-i}return A/t.total}function oxA(t,e){for(let A of t)if(e(A))return A}var CtA={toDOM(t){return t},fromDOM(t){return t},scale:1,eq(t){return t==this}},tF=class t{constructor(e,A,i){let n=0,o=0,r=0;this.viewports=i.map(({from:s,to:a})=>{let c=A.lineAt(s,zo.ByPos,e,0,0).top,g=A.lineAt(a,zo.ByPos,e,0,0).bottom;return n+=g-c,{from:s,to:a,top:c,bottom:g,domTop:0,domBottom:0}}),this.scale=(7e6-n)/(A.height-n);for(let s of this.viewports)s.domTop=r+(s.top-o)*this.scale,r=s.domBottom=s.domTop+(s.bottom-s.top),o=s.bottom}toDOM(e){for(let A=0,i=0,n=0;;A++){let o=AA.from==e.viewports[i].from&&A.to==e.viewports[i].to):!1}};function $4(t,e){if(e.scale==1)return t;let A=e.toDOM(t.top),i=e.toDOM(t.bottom);return new Tl(t.from,t.length,A,i-A,Array.isArray(t._content)?t._content.map(n=>$4(n,e)):t._content)}var TD=qe.define({combine:t=>t.join(" ")}),MN=qe.define({combine:t=>t.indexOf(!0)>-1}),iF=jc.newName(),hiA=jc.newName(),fiA=jc.newName(),miA={"&light":"."+hiA,"&dark":"."+fiA};function nF(t,e,A){return new jc(e,{finish(i){return/&/.test(i)?i.replace(/&\w*/,n=>{if(n=="&")return t;if(!A||!A[n])throw new RangeError(`Unsupported selector: ${n}`);return A[n]}):t+" "+i}})}var rxA=nF("."+iF,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},miA),sxA={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},bN=it.ie&&it.ie_version<=11,oF=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new xN,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(A=>{for(let i of A)this.queue.push(i);(it.ie&&it.ie_version<=11||it.ios&&e.composing)&&A.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&it.android&&e.constructor.EDIT_CONTEXT!==!1&&!(it.chrome&&it.chrome_version<126)&&(this.editContext=new rF(e),e.state.facet(P0)&&(e.contentDOM.editContext=this.editContext.editContext)),bN&&(this.onCharData=A=>{this.queue.push({target:A.target,type:"characterData",oldValue:A.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var A;((A=this.view.docView)===null||A===void 0?void 0:A.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),A.length>0&&A[A.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(A=>{A.length>0&&A[A.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((A,i)=>A!=e[i]))){this.gapIntersection.disconnect();for(let A of e)this.gapIntersection.observe(A);this.gaps=e}}onSelectionChange(e){let A=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,n=this.selectionRange;if(i.state.facet(P0)?i.root.activeElement!=this.dom:!zD(this.dom,n))return;let o=n.anchorNode&&i.docView.nearest(n.anchorNode);if(o&&o.ignoreEvent(e)){A||(this.selectionChanged=!1);return}(it.ie&&it.ie_version<=11||it.android&&it.chrome)&&!i.state.selection.main.empty&&n.focusNode&&e3(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,A=a3(e.root);if(!A)return!1;let i=it.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&axA(this.view,A)||A;if(!i||this.selectionRange.eq(i))return!1;let n=zD(this.dom,i);return n&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let o=this.delayedAndroidKey;o&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=o.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&o.force&&zE(this.dom,o.key,o.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(n)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:A,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let A=-1,i=-1,n=!1;for(let o of e){let r=this.readMutation(o);r&&(r.typeOver&&(n=!0),A==-1?{from:A,to:i}=r:(A=Math.min(r.from,A),i=Math.max(r.to,i)))}return{from:A,to:i,typeOver:n}}readChange(){let{from:e,to:A,typeOver:i}=this.processRecords(),n=this.selectionChanged&&zD(this.dom,this.selectionRange);if(e<0&&!n)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let o=new PN(this.view,e,A,i);return this.view.docView.domChanged={newSel:o.newSel?o.newSel.main:null},o}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let A=this.readChange();if(!A)return this.view.requestMeasure(),!1;let i=this.view.state,n=giA(this.view,A);return this.view.state==i&&(A.domChanged||A.newSel&&!A.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),n}readMutation(e){let A=this.view.docView.nearest(e.target);if(!A||A.ignoreMutation(e))return null;if(A.markDirty(e.type=="attributes"),e.type=="attributes"&&(A.flags|=4),e.type=="childList"){let i=dtA(A,e.previousSibling||e.target.previousSibling,-1),n=dtA(A,e.nextSibling||e.target.nextSibling,1);return{from:i?A.posAfter(i):A.posAtStart,to:n?A.posBefore(n):A.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:A.posAtStart,to:A.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(P0)!=e.state.facet(P0)&&(e.view.contentDOM.editContext=e.state.facet(P0)?this.editContext.editContext:null))}destroy(){var e,A,i;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(A=this.gapIntersection)===null||A===void 0||A.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect();for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function dtA(t,e,A){for(;e;){let i=No.get(e);if(i&&i.parent==t)return i;let n=e.parentNode;e=n!=t.dom?n:A>0?e.nextSibling:e.previousSibling}return null}function BtA(t,e){let A=e.startContainer,i=e.startOffset,n=e.endContainer,o=e.endOffset,r=t.docView.domAtPos(t.state.selection.main.anchor);return e3(r.node,r.offset,n,o)&&([A,i,n,o]=[n,o,A,i]),{anchorNode:A,anchorOffset:i,focusNode:n,focusOffset:o}}function axA(t,e){if(e.getComposedRanges){let n=e.getComposedRanges(t.root)[0];if(n)return BtA(t,n)}let A=null;function i(n){n.preventDefault(),n.stopImmediatePropagation(),A=n.getTargetRanges()[0]}return t.contentDOM.addEventListener("beforeinput",i,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",i,!0),A?BtA(t,A):null}var rF=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let A=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=i=>{let n=e.state.selection.main,{anchor:o,head:r}=n,s=this.toEditorPos(i.updateRangeStart),a=this.toEditorPos(i.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:i.updateRangeStart,editorBase:s,drifted:!1});let c={from:s,to:a,insert:tn.of(i.text.split(` -`))};if(c.from==this.from&&othis.to&&(c.to=o),c.from==c.to&&!c.insert.length){let g=ae.single(this.toEditorPos(i.selectionStart),this.toEditorPos(i.selectionEnd));g.main.eq(n)||e.dispatch({selection:g,userEvent:"select"});return}if((it.mac||it.android)&&c.from==r-1&&/^\. ?$/.test(i.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(c={from:s,to:a,insert:tn.of([i.text.replace("."," ")])}),this.pendingContextChange=c,!e.state.readOnly){let g=this.to-this.from+(c.to-c.from+c.insert.length);DF(e,c,ae.single(this.toEditorPos(i.selectionStart,g),this.toEditorPos(i.selectionEnd,g)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state))},this.handlers.characterboundsupdate=i=>{let n=[],o=null;for(let r=this.toEditorPos(i.rangeStart),s=this.toEditorPos(i.rangeEnd);r{let n=[];for(let o of i.getTextFormats()){let r=o.underlineStyle,s=o.underlineThickness;if(r!="None"&&s!="None"){let a=this.toEditorPos(o.rangeStart),c=this.toEditorPos(o.rangeEnd);if(a{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:i}=this.composing;this.composing=null,i&&this.reset(e.state)}};for(let i in this.handlers)A.addEventListener(i,this.handlers[i]);this.measureReq={read:i=>{this.editContext.updateControlBounds(i.contentDOM.getBoundingClientRect());let n=a3(i.root);n&&n.rangeCount&&this.editContext.updateSelectionBounds(n.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let A=0,i=!1,n=this.pendingContextChange;return e.changes.iterChanges((o,r,s,a,c)=>{if(i)return;let g=c.length-(r-o);if(n&&r>=n.to)if(n.from==o&&n.to==r&&n.insert.eq(c)){n=this.pendingContextChange=null,A+=g,this.to+=g;return}else n=null,this.revertPending(e.state);if(o+=A,r+=A,r<=this.from)this.from+=g,this.to+=g;else if(othis.to||this.to-this.from+c.length>3e4){i=!0;return}this.editContext.updateText(this.toContextPos(o),this.toContextPos(r),c.toString()),this.to+=g}A+=g}),n&&!i&&this.revertPending(e.state),!i}update(e){let A=this.pendingContextChange,i=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(i.from,i.to)&&e.transactions.some(n=>!n.isUserEvent("input.type")&&n.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||A)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:A}=e.selection.main;this.from=Math.max(0,A-1e4),this.to=Math.min(e.doc.length,A+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let A=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(A.from),this.toContextPos(A.from+A.insert.length),e.doc.sliceString(A.from,A.to))}setSelection(e){let{main:A}=e.selection,i=this.toContextPos(Math.max(this.from,Math.min(this.to,A.anchor))),n=this.toContextPos(A.head);(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=n)&&this.editContext.updateSelection(i,n)}rangeIsValid(e){let{head:A}=e.selection.main;return!(this.from>0&&A-this.from<500||this.to1e4*3)}toEditorPos(e,A=this.to-this.from){e=Math.min(e,A);let i=this.composing;return i&&i.drifted?i.editorBase+(e-i.contextBase):e+this.from}toContextPos(e){let A=this.composing;return A&&A.drifted?A.contextBase+(e-A.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},Pt=(()=>{class t{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(A={}){var i;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),A.parent&&A.parent.appendChild(this.dom);let{dispatch:n}=A;this.dispatchTransactions=A.dispatchTransactions||n&&(o=>o.forEach(r=>n(r,this)))||(o=>this.update(o)),this.dispatch=this.dispatch.bind(this),this._root=A.root||ALA(A.parent)||document,this.viewState=new rw(A.state||Dr.create(A)),A.scrollTo&&A.scrollTo.is(GD)&&(this.viewState.scrollTarget=A.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(YE).map(o=>new n3(o));for(let o of this.plugins)o.update(this);this.observer=new oF(this),this.inputState=new jN(this),this.inputState.ensureHandlers(this.plugins),this.docView=new tw(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((i=document.fonts)===null||i===void 0)&&i.ready&&document.fonts.ready.then(()=>this.requestMeasure())}dispatch(...A){let i=A.length==1&&A[0]instanceof Ul?A:A.length==1&&Array.isArray(A[0])?A[0]:[this.state.update(...A)];this.dispatchTransactions(i,this)}update(A){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let i=!1,n=!1,o,r=this.state;for(let d of A){if(d.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=d.state}if(this.destroyed){this.viewState.state=r;return}let s=this.hasFocus,a=0,c=null;A.some(d=>d.annotation(EiA))?(this.inputState.notifiedFocused=s,a=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,c=QiA(r,s),c||(a=1));let g=this.observer.delayedAndroidKey,I=null;if(g?(this.observer.clearDelayedAndroidKey(),I=this.observer.readChange(),(I&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(I=null)):this.observer.clear(),r.facet(Dr.phrases)!=this.state.facet(Dr.phrases))return this.setState(r);o=ew.create(this,r,A),o.flags|=a;let C=this.viewState.scrollTarget;try{this.updateState=2;for(let d of A){if(C&&(C=C.map(d.changes)),d.scrollIntoView){let{main:B}=d.state.selection;C=new i3(B.empty?B:ae.cursor(B.head,B.head>B.anchor?-1:1))}for(let B of d.effects)B.is(GD)&&(C=B.value.clip(this.state))}this.viewState.update(o,C),this.bidiCache=sw.update(this.bidiCache,o.changes),o.empty||(this.updatePlugins(o),this.inputState.update(o)),i=this.docView.update(o),this.state.facet(Z4)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(A),this.docView.updateSelection(i,A.some(d=>d.isUserEvent("select.pointer")))}finally{this.updateState=0}if(o.startState.facet(TD)!=o.state.facet(TD)&&(this.viewState.mustMeasureContent=!0),(i||n||C||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),i&&this.docViewUpdate(),!o.empty)for(let d of this.state.facet(wN))try{d(o)}catch(B){is(this.state,B,"update listener")}(c||I)&&Promise.resolve().then(()=>{c&&this.state==c.startState&&this.dispatch(c),I&&!giA(this,I)&&g.force&&zE(this.contentDOM,g.key,g.keyCode)})}setState(A){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=A;return}this.updateState=2;let i=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new rw(A),this.plugins=A.facet(YE).map(n=>new n3(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView.destroy(),this.docView=new tw(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}i&&this.focus(),this.requestMeasure()}updatePlugins(A){let i=A.startState.facet(YE),n=A.state.facet(YE);if(i!=n){let o=[];for(let r of n){let s=i.indexOf(r);if(s<0)o.push(new n3(r));else{let a=this.plugins[s];a.mustUpdate=A,o.push(a)}}for(let r of this.plugins)r.mustUpdate!=A&&r.destroy(this);this.plugins=o,this.pluginMap.clear()}else for(let o of this.plugins)o.mustUpdate=A;for(let o=0;o-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,A&&this.observer.forceFlush();let i=null,n=this.scrollDOM,o=n.scrollTop*this.scaleY,{scrollAnchorPos:r,scrollAnchorHeight:s}=this.viewState;Math.abs(o-this.viewState.scrollTop)>1&&(s=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(s<0)if(xtA(n))r=-1,s=this.viewState.heightMap.height;else{let B=this.viewState.scrollAnchorAt(o);r=B.from,s=B.top}this.updateState=1;let c=this.viewState.measure(this);if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let g=[];c&4||([this.measureRequests,g]=[g,this.measureRequests]);let I=g.map(B=>{try{return B.read(this)}catch(E){return is(this.state,E),EtA}}),C=ew.create(this,this.state,[]),d=!1;C.flags|=c,i?i.flags|=c:i=C,this.updateState=2,C.empty||(this.updatePlugins(C),this.inputState.update(C),this.updateAttrs(),d=this.docView.update(C),d&&this.docViewUpdate());for(let B=0;B1||E<-1){o=o+E,n.scrollTop=o/this.scaleY,s=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(i&&!i.empty)for(let a of this.state.facet(wN))a(i)}get themeClasses(){return iF+" "+(this.state.facet(MN)?fiA:hiA)+" "+this.state.facet(TD)}updateAttrs(){let A=QtA(this,qeA,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),i={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(P0)?"true":"false",class:"cm-content",style:`${it.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(i["aria-readonly"]="true"),QtA(this,TN,i);let n=this.observer.ignore(()=>{let o=KN(this.contentDOM,this.contentAttrs,i),r=KN(this.dom,this.editorAttrs,A);return o||r});return this.editorAttrs=A,this.contentAttrs=i,n}showAnnouncements(A){let i=!0;for(let n of A)for(let o of n.effects)if(o.is(t.announce)){i&&(this.announceDOM.textContent=""),i=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=o.value}}mountStyles(){this.styleModules=this.state.facet(Z4);let A=this.state.facet(t.cspNonce);jc.mount(this.root,this.styleModules.concat(rxA).reverse(),A?{nonce:A}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(A){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),A){if(this.measureRequests.indexOf(A)>-1)return;if(A.key!=null){for(let i=0;in.plugin==A)||null),i&&i.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(A){return this.readMeasured(),this.viewState.elementAtHeight(A)}lineBlockAtHeight(A){return this.readMeasured(),this.viewState.lineBlockAtHeight(A)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(A){return this.viewState.lineBlockAt(A)}get contentHeight(){return this.viewState.contentHeight}moveByChar(A,i,n){return vN(this,A,AtA(this,A,i,n))}moveByGroup(A,i){return vN(this,A,AtA(this,A,i,n=>RLA(this,A.head,n)))}visualLineSide(A,i){let n=this.bidiSpans(A),o=this.textDirectionAt(A.from),r=n[i?n.length-1:0];return ae.cursor(r.side(i,o)+A.from,r.forward(!i,o)?1:-1)}moveToLineBoundary(A,i,n=!0){return SLA(this,A,i,n)}moveVertically(A,i,n){return vN(this,A,LLA(this,A,i,n))}domAtPos(A){return this.docView.domAtPos(A)}posAtDOM(A,i=0){return this.docView.posFromDOM(A,i)}posAtCoords(A,i=!0){return this.readMeasured(),aiA(this,A,i)}coordsAtPos(A,i=1){this.readMeasured();let n=this.docView.coordsAt(A,i);if(!n||n.left==n.right)return n;let o=this.state.doc.lineAt(A),r=this.bidiSpans(o),s=r[Hl.find(r,A-o.from,-1,i)];return Cw(n,s.dir==Co.LTR==i>0)}coordsForChar(A){return this.readMeasured(),this.docView.coordsForChar(A)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(A){return!this.state.facet(jeA)||Athis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(A))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(A){if(A.length>cxA)return jtA(A.length);let i=this.textDirectionAt(A.from),n;for(let r of this.bidiCache)if(r.from==A.from&&r.dir==i&&(r.fresh||PtA(r.isolates,n=VeA(this,A))))return r.order;n||(n=VeA(this,A));let o=dLA(A.text,i,n);return this.bidiCache.push(new sw(A.from,A.to,i,n,!0,o)),o}get hasFocus(){var A;return(this.dom.ownerDocument.hasFocus()||it.safari&&((A=this.inputState)===null||A===void 0?void 0:A.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{RtA(this.contentDOM),this.docView.updateSelection()})}setRoot(A){this._root!=A&&(this._root=A,this.observer.setWindow((A.nodeType==9?A:A.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let A of this.plugins)A.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(A,i={}){return GD.of(new i3(typeof A=="number"?ae.cursor(A):A,i.y,i.x,i.yMargin,i.xMargin))}scrollSnapshot(){let{scrollTop:A,scrollLeft:i}=this.scrollDOM,n=this.viewState.scrollAnchorAt(A);return GD.of(new i3(ae.cursor(n.from),"start","start",n.top-A,i,!0))}setTabFocusMode(A){A==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof A=="boolean"?this.inputState.tabFocusMode=A?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+A)}static domEventHandlers(A){return Bo.define(()=>({}),{eventHandlers:A})}static domEventObservers(A){return Bo.define(()=>({}),{eventObservers:A})}static theme(A,i){let n=jc.newName(),o=[TD.of(n),Z4.of(nF(`.${n}`,A))];return i&&i.dark&&o.push(MN.of(!0)),o}static baseTheme(A){return Ng.lowest(Z4.of(nF("."+iF,A,miA)))}static findFromDOM(A){var i;let n=A.querySelector(".cm-content"),o=n&&No.get(n)||No.get(A);return((i=o?.rootView)===null||i===void 0?void 0:i.view)||null}}return t.styleModule=Z4,t.inputHandler=$tA,t.clipboardInputFilter=fF,t.clipboardOutputFilter=mF,t.scrollHandler=tiA,t.focusChangeEffect=AiA,t.perLineTextDirection=jeA,t.exceptionSink=XtA,t.updateListener=wN,t.editable=P0,t.mouseSelectionStyle=WtA,t.dragMovesSelection=ZtA,t.clickAddsSelectionRange=VtA,t.decorations=B3,t.outerDecorations=niA,t.atomicRanges=Bw,t.bidiIsolatedRanges=oiA,t.scrollMargins=riA,t.darkTheme=MN,t.cspNonce=qe.define({combine:e=>e.length?e[0]:""}),t.contentAttributes=TN,t.editorAttributes=qeA,t.lineWrapping=t.contentAttributes.of({class:"cm-lineWrapping"}),t.announce=Ki.define(),t})(),cxA=4096,EtA={},sw=class t{constructor(e,A,i,n,o,r){this.from=e,this.to=A,this.dir=i,this.isolates=n,this.fresh=o,this.order=r}static update(e,A){if(A.empty&&!e.some(o=>o.fresh))return e;let i=[],n=e.length?e[e.length-1].dir:Co.LTR;for(let o=Math.max(0,e.length-10);o=0;n--){let o=i[n],r=typeof o=="function"?o(t):o;r&&GN(r,A)}return A}var gxA=it.mac?"mac":it.windows?"win":it.linux?"linux":"key";function lxA(t,e){let A=t.split(/-(?!$)/),i=A[A.length-1];i=="Space"&&(i=" ");let n,o,r,s;for(let a=0;ai.concat(n),[]))),A}function DiA(t,e,A){return wiA(piA(t.state),e,t,A)}var L1=null,CxA=4e3;function dxA(t,e=gxA){let A=Object.create(null),i=Object.create(null),n=(r,s)=>{let a=i[r];if(a==null)i[r]=s;else if(a!=s)throw new Error("Key binding "+r+" is used both as a regular binding and as a multi-stroke prefix")},o=(r,s,a,c,g)=>{var I,C;let d=A[r]||(A[r]=Object.create(null)),B=s.split(/ (?!$)/).map(h=>lxA(h,e));for(let h=1;h{let R=L1={view:x,prefix:w,scope:r};return setTimeout(()=>{L1==R&&(L1=null)},CxA),!0}]})}let E=B.join(" ");n(E,!1);let u=d[E]||(d[E]={preventDefault:!1,stopPropagation:!1,run:((C=(I=d._any)===null||I===void 0?void 0:I.run)===null||C===void 0?void 0:C.slice())||[]});a&&u.run.push(a),c&&(u.preventDefault=!0),g&&(u.stopPropagation=!0)};for(let r of t){let s=r.scope?r.scope.split(" "):["editor"];if(r.any)for(let c of s){let g=A[c]||(A[c]=Object.create(null));g._any||(g._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:I}=r;for(let C in g)g[C].run.push(d=>I(d,sF))}let a=r[e]||r.key;if(a)for(let c of s)o(c,a,r.run,r.preventDefault,r.stopPropagation),r.shift&&o(c,"Shift-"+a,r.shift,r.preventDefault,r.stopPropagation)}return A}var sF=null;function wiA(t,e,A,i){sF=e;let n=GeA(e),o=ms(n,0),r=lc(o)==n.length&&n!=" ",s="",a=!1,c=!1,g=!1;L1&&L1.view==A&&L1.scope==i&&(s=L1.prefix+" ",IiA.indexOf(e.keyCode)<0&&(c=!0,L1=null));let I=new Set,C=u=>{if(u){for(let h of u.run)if(!I.has(h)&&(I.add(h),h(A)))return u.stopPropagation&&(g=!0),!0;u.preventDefault&&(u.stopPropagation&&(g=!0),c=!0)}return!1},d=t[i],B,E;return d&&(C(d[s+HD(n,e,!r)])?a=!0:r&&(e.altKey||e.metaKey||e.ctrlKey)&&!(it.windows&&e.ctrlKey&&e.altKey)&&!(it.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(B=z0[e.keyCode])&&B!=n?(C(d[s+HD(B,e,!0)])||e.shiftKey&&(E=UE[e.keyCode])!=n&&E!=B&&C(d[s+HD(E,e,!1)]))&&(a=!0):r&&e.shiftKey&&C(d[s+HD(n,e,!0)])&&(a=!0),!a&&C(d._any)&&(a=!0)),c&&(a=!0),a&&g&&e.stopPropagation(),sF=null,a}var E3=class t{constructor(e,A,i,n,o){this.className=e,this.left=A,this.top=i,this.width=n,this.height=o}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,A){return A.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,A,i){if(i.empty){let n=e.coordsAtPos(i.head,i.assoc||1);if(!n)return[];let o=yiA(e);return[new t(A,n.left-o.left,n.top-o.top,null,n.bottom-n.top)]}else return BxA(e,A,i)}};function yiA(t){let e=t.scrollDOM.getBoundingClientRect();return{left:(t.textDirection==Co.LTR?e.left:e.right-t.scrollDOM.clientWidth*t.scaleX)-t.scrollDOM.scrollLeft*t.scaleX,top:e.top-t.scrollDOM.scrollTop*t.scaleY}}function htA(t,e,A,i){let n=t.coordsAtPos(e,A*2);if(!n)return i;let o=t.dom.getBoundingClientRect(),r=(n.top+n.bottom)/2,s=t.posAtCoords({x:o.left+1,y:r}),a=t.posAtCoords({x:o.right-1,y:r});return s==null||a==null?i:{from:Math.max(i.from,Math.min(s,a)),to:Math.min(i.to,Math.max(s,a))}}function BxA(t,e,A){if(A.to<=t.viewport.from||A.from>=t.viewport.to)return[];let i=Math.max(A.from,t.viewport.from),n=Math.min(A.to,t.viewport.to),o=t.textDirection==Co.LTR,r=t.contentDOM,s=r.getBoundingClientRect(),a=yiA(t),c=r.querySelector(".cm-line"),g=c&&window.getComputedStyle(c),I=s.left+(g?parseInt(g.paddingLeft)+Math.min(0,parseInt(g.textIndent)):0),C=s.right-(g?parseInt(g.paddingRight):0),d=ON(t,i,1),B=ON(t,n,-1),E=d.type==na.Text?d:null,u=B.type==na.Text?B:null;if(E&&(t.lineWrapping||d.widgetLineBreaks)&&(E=htA(t,i,1,E)),u&&(t.lineWrapping||B.widgetLineBreaks)&&(u=htA(t,n,-1,u)),E&&u&&E.from==u.from&&E.to==u.to)return w(x(A.from,A.to,E));{let D=E?x(A.from,null,E):R(d,!1),G=u?x(null,A.to,u):R(B,!0),J=[];return(E||d).to<(u||B).from-(E&&u?1:0)||d.widgetLineBreaks>1&&D.bottom+t.defaultLineHeight/2j&&fA.from=IA)break;wA>EA&&V(Math.max(lA,EA),D==null&&lA<=j,Math.min(wA,IA),G==null&&wA>=dA,nA.dir)}if(EA=SA.to+1,EA>=IA)break}return O.length==0&&V(j,D==null,dA,G==null,t.textDirection),{top:z,bottom:K,horizontal:O}}function R(D,G){let J=s.top+(G?D.top:D.bottom);return{top:J,bottom:J,horizontal:[]}}}function ExA(t,e){return t.constructor==e.constructor&&t.eq(e)}var aF=class{constructor(e,A){this.view=e,this.layer=A,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),A.above&&this.dom.classList.add("cm-layer-above"),A.class&&this.dom.classList.add(A.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),A.mount&&A.mount(this.dom,e)}update(e){e.startState.facet(VD)!=e.state.facet(VD)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let A=0,i=e.facet(VD);for(;A!ExA(A,this.drawn[i]))){let A=this.dom.firstChild,i=0;for(let n of e)n.update&&A&&n.constructor&&this.drawn[i].constructor&&n.update(A,this.drawn[i])?(A=A.nextSibling,i++):this.dom.insertBefore(n.draw(),A);for(;A;){let n=A.nextSibling;A.remove(),A=n}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},VD=qe.define();function viA(t){return[Bo.define(e=>new aF(e,t)),VD.of(t)]}var Q3=qe.define({combine(t){return ts(t,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,A)=>Math.min(e,A),drawRangeCursor:(e,A)=>e||A})}});function MiA(t={}){return[Q3.of(t),QxA,uxA,hxA,eiA.of(!0)]}function biA(t){return t.startState.facet(Q3)!=t.state.facet(Q3)}var QxA=viA({above:!0,markers(t){let{state:e}=t,A=e.facet(Q3),i=[];for(let n of e.selection.ranges){let o=n==e.selection.main;if(n.empty||A.drawRangeCursor){let r=o?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",s=n.empty?n:ae.cursor(n.head,n.head>n.anchor?-1:1);for(let a of E3.forRange(t,r,s))i.push(a)}}return i},update(t,e){t.transactions.some(i=>i.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let A=biA(t);return A&&ftA(t.state,e),t.docChanged||t.selectionSet||A},mount(t,e){ftA(e.state,t)},class:"cm-cursorLayer"});function ftA(t,e){e.style.animationDuration=t.facet(Q3).cursorBlinkRate+"ms"}var uxA=viA({above:!1,markers(t){return t.state.selection.ranges.map(e=>e.empty?[]:E3.forRange(t,"cm-selectionBackground",e)).reduce((e,A)=>e.concat(A))},update(t,e){return t.docChanged||t.selectionSet||t.viewportChanged||biA(t)},class:"cm-selectionLayer"}),hxA=Ng.highest(Pt.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),kiA=Ki.define({map(t,e){return t==null?null:e.mapPos(t)}}),A3=tr.define({create(){return null},update(t,e){return t!=null&&(t=e.changes.mapPos(t)),e.effects.reduce((A,i)=>i.is(kiA)?i.value:A,t)}}),fxA=Bo.fromClass(class{constructor(t){this.view=t,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(t){var e;let A=t.state.field(A3);A==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(t.startState.field(A3)!=A||t.docChanged||t.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:t}=this,e=t.state.field(A3),A=e!=null&&t.coordsAtPos(e);if(!A)return null;let i=t.scrollDOM.getBoundingClientRect();return{left:A.left-i.left+t.scrollDOM.scrollLeft*t.scaleX,top:A.top-i.top+t.scrollDOM.scrollTop*t.scaleY,height:A.bottom-A.top}}drawCursor(t){if(this.cursor){let{scaleX:e,scaleY:A}=this.view;t?(this.cursor.style.left=t.left/e+"px",this.cursor.style.top=t.top/A+"px",this.cursor.style.height=t.height/A+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(t){this.view.state.field(A3)!=t&&this.view.dispatch({effects:kiA.of(t)})}},{eventObservers:{dragover(t){this.setDropPos(this.view.posAtCoords({x:t.clientX,y:t.clientY}))},dragleave(t){(t.target==this.view.contentDOM||!this.view.contentDOM.contains(t.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function SiA(){return[A3,fxA]}function mtA(t,e,A,i,n){e.lastIndex=0;for(let o=t.iterRange(A,i),r=A,s;!o.next().done;r+=o.value.length)if(!o.lineBreak)for(;s=e.exec(o.value);)n(r+s.index,s)}function mxA(t,e){let A=t.visibleRanges;if(A.length==1&&A[0].from==t.viewport.from&&A[0].to==t.viewport.to)return A;let i=[];for(let{from:n,to:o}of A)n=Math.max(t.state.doc.lineAt(n).from,n-e),o=Math.min(t.state.doc.lineAt(o).to,o+e),i.length&&i[i.length-1].to>=n?i[i.length-1].to=o:i.push({from:n,to:o});return i}var cF=class{constructor(e){let{regexp:A,decoration:i,decorate:n,boundary:o,maxLength:r=1e3}=e;if(!A.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=A,n)this.addMatch=(s,a,c,g)=>n(g,c,c+s[0].length,s,a);else if(typeof i=="function")this.addMatch=(s,a,c,g)=>{let I=i(s,a,c);I&&g(c,c+s[0].length,I)};else if(i)this.addMatch=(s,a,c,g)=>g(c,c+s[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=o,this.maxLength=r}createDeco(e){let A=new fs,i=A.add.bind(A);for(let{from:n,to:o}of mxA(e,this.maxLength))mtA(e.state.doc,this.regexp,n,o,(r,s)=>this.addMatch(s,e,r,i));return A.finish()}updateDeco(e,A){let i=1e9,n=-1;return e.docChanged&&e.changes.iterChanges((o,r,s,a)=>{a>=e.view.viewport.from&&s<=e.view.viewport.to&&(i=Math.min(s,i),n=Math.max(a,n))}),e.viewportMoved||n-i>1e3?this.createDeco(e.view):n>-1?this.updateRange(e.view,A.map(e.changes),i,n):A}updateRange(e,A,i,n){for(let o of e.visibleRanges){let r=Math.max(o.from,i),s=Math.min(o.to,n);if(s>=r){let a=e.state.doc.lineAt(r),c=a.toa.from;r--)if(this.boundary.test(a.text[r-1-a.from])){g=r;break}for(;sC.push(h.range(E,u));if(a==c)for(this.regexp.lastIndex=g-a.from;(d=this.regexp.exec(a.text))&&d.indexthis.addMatch(u,e,E,B));A=A.update({filterFrom:g,filterTo:I,filter:(E,u)=>EI,add:C})}}return A}},gF=/x/.unicode!=null?"gu":"g",pxA=new RegExp(`[\0-\b --\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,gF),DxA={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},kN=null;function wxA(){var t;if(kN==null&&typeof document<"u"&&document.body){let e=document.body.style;kN=((t=e.tabSize)!==null&&t!==void 0?t:e.MozTabSize)!=null}return kN||!1}var ZD=qe.define({combine(t){let e=ts(t,{render:null,specialChars:pxA,addSpecialChars:null});return(e.replaceTabs=!wxA())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,gF)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,gF)),e}});function RiA(t={}){return[ZD.of(t),yxA()]}var ptA=null;function yxA(){return ptA||(ptA=Bo.fromClass(class{constructor(t){this.view=t,this.decorations=ht.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(t.state.facet(ZD)),this.decorations=this.decorator.createDeco(t)}makeDecorator(t){return new cF({regexp:t.specialChars,decoration:(e,A,i)=>{let{doc:n}=A.state,o=ms(e[0],0);if(o==9){let r=n.lineAt(i),s=A.state.tabSize,a=O0(r.text,s,i-r.from);return ht.replace({widget:new IF((s-a%s)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[o]||(this.decorationCache[o]=ht.replace({widget:new lF(t,o)}))},boundary:t.replaceTabs?void 0:/[^]/})}update(t){let e=t.state.facet(ZD);t.startState.facet(ZD)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(t.view)):this.decorations=this.decorator.updateDeco(t,this.decorations)}},{decorations:t=>t.decorations}))}var vxA="\u2022";function MxA(t){return t>=32?vxA:t==10?"\u2424":String.fromCharCode(9216+t)}var lF=class extends Cc{constructor(e,A){super(),this.options=e,this.code=A}eq(e){return e.code==this.code}toDOM(e){let A=MxA(this.code),i=e.state.phrase("Control character")+" "+(DxA[this.code]||"0x"+this.code.toString(16)),n=this.options.render&&this.options.render(this.code,i,A);if(n)return n;let o=document.createElement("span");return o.textContent=A,o.title=i,o.setAttribute("aria-label",i),o.className="cm-specialChar",o}ignoreEvent(){return!1}},IF=class extends Cc{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};function LiA(){return kxA}var bxA=ht.line({class:"cm-activeLine"}),kxA=Bo.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.docChanged||t.selectionSet)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=-1,A=[];for(let i of t.state.selection.ranges){let n=t.lineBlockAt(i.head);n.from>e&&(A.push(bxA.range(n.from)),e=n.from)}return ht.set(A)}},{decorations:t=>t.decorations});var CF=2e3;function SxA(t,e,A){let i=Math.min(e.line,A.line),n=Math.max(e.line,A.line),o=[];if(e.off>CF||A.off>CF||e.col<0||A.col<0){let r=Math.min(e.off,A.off),s=Math.max(e.off,A.off);for(let a=i;a<=n;a++){let c=t.doc.line(a);c.length<=s&&o.push(ae.range(c.from+r,c.to+s))}}else{let r=Math.min(e.col,A.col),s=Math.max(e.col,A.col);for(let a=i;a<=n;a++){let c=t.doc.line(a),g=ND(c.text,r,t.tabSize,!0);if(g<0)o.push(ae.cursor(c.to));else{let I=ND(c.text,s,t.tabSize);o.push(ae.range(c.from+g,c.from+I))}}}return o}function RxA(t,e){let A=t.coordsAtPos(t.viewport.from);return A?Math.round(Math.abs((A.left-e)/t.defaultCharacterWidth)):-1}function DtA(t,e){let A=t.posAtCoords({x:e.clientX,y:e.clientY},!1),i=t.state.doc.lineAt(A),n=A-i.from,o=n>CF?-1:n==i.length?RxA(t,e.clientX):O0(i.text,t.state.tabSize,A-i.from);return{line:i.number,col:o,off:n}}function LxA(t,e){let A=DtA(t,e),i=t.state.selection;return A?{update(n){if(n.docChanged){let o=n.changes.mapPos(n.startState.doc.line(A.line).from),r=n.state.doc.lineAt(o);A={line:r.number,col:A.col,off:Math.min(A.off,r.length)},i=i.map(n.changes)}},get(n,o,r){let s=DtA(t,n);if(!s)return i;let a=SxA(t.state,A,s);return a.length?r?ae.create(a.concat(i.ranges)):ae.create(a):i}}:null}function xiA(t){let e=t?.eventFilter||(A=>A.altKey&&A.button==0);return Pt.mouseSelectionStyle.of((A,i)=>e(i)?LxA(A,i):null)}var xxA={Alt:[18,t=>!!t.altKey],Control:[17,t=>!!t.ctrlKey],Shift:[16,t=>!!t.shiftKey],Meta:[91,t=>!!t.metaKey]},NxA={style:"cursor: crosshair"};function NiA(t={}){let[e,A]=xxA[t.key||"Alt"],i=Bo.fromClass(class{constructor(n){this.view=n,this.isDown=!1}set(n){this.isDown!=n&&(this.isDown=n,this.view.update([]))}},{eventObservers:{keydown(n){this.set(n.keyCode==e||A(n))},keyup(n){(n.keyCode==e||!A(n))&&this.set(!1)},mousemove(n){this.set(A(n))}}});return[i,Pt.contentAttributes.of(n=>{var o;return!((o=n.plugin(i))===null||o===void 0)&&o.isDown?NxA:null})]}var W4="-10000px",aw=class{constructor(e,A,i,n){this.facet=A,this.createTooltipView=i,this.removeTooltipView=n,this.input=e.state.facet(A),this.tooltips=this.input.filter(r=>r);let o=null;this.tooltipViews=this.tooltips.map(r=>o=i(r,o))}update(e,A){var i;let n=e.state.facet(this.facet),o=n.filter(a=>a);if(n===this.input){for(let a of this.tooltipViews)a.update&&a.update(e);return!1}let r=[],s=A?[]:null;for(let a=0;aA[c]=a),A.length=s.length),this.input=n,this.tooltips=o,this.tooltipViews=r,!0}};function FxA(t){let e=t.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}var SN=qe.define({combine:t=>{var e,A,i;return{position:it.ios?"absolute":((e=t.find(n=>n.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((A=t.find(n=>n.parent))===null||A===void 0?void 0:A.parent)||null,tooltipSpace:((i=t.find(n=>n.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||FxA}}}),wtA=new WeakMap,wF=Bo.fromClass(class{constructor(t){this.view=t,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=t.state.facet(SN);this.position=e.position,this.parent=e.parent,this.classes=t.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new aw(t,qE,(A,i)=>this.createTooltip(A,i),A=>{this.resizeObserver&&this.resizeObserver.unobserve(A.dom),A.dom.remove()}),this.above=this.manager.tooltips.map(A=>!!A.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(A=>{Date.now()>this.lastTransaction-50&&A.length>0&&A[A.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),t.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let t of this.manager.tooltipViews)this.intersectionObserver.observe(t.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(t){t.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(t,this.above);e&&this.observeIntersection();let A=e||t.geometryChanged,i=t.state.facet(SN);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let n of this.manager.tooltipViews)n.dom.style.position=this.position;A=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let n of this.manager.tooltipViews)this.container.appendChild(n.dom);A=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);A&&this.maybeMeasure()}createTooltip(t,e){let A=t.create(this.view),i=e?e.dom:null;if(A.dom.classList.add("cm-tooltip"),t.arrow&&!A.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let n=document.createElement("div");n.className="cm-tooltip-arrow",A.dom.appendChild(n)}return A.dom.style.position=this.position,A.dom.style.top=W4,A.dom.style.left="0px",this.container.insertBefore(A.dom,i),A.mount&&A.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(A.dom),A}destroy(){var t,e,A;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),(t=i.destroy)===null||t===void 0||t.call(i);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(A=this.intersectionObserver)===null||A===void 0||A.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let t=1,e=1,A=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:o}=this.manager.tooltipViews[0];if(it.gecko)A=o.offsetParent!=this.container.ownerDocument.body;else if(o.style.top==W4&&o.style.left=="0px"){let r=o.getBoundingClientRect();A=Math.abs(r.top+1e4)>1||Math.abs(r.left)>1}}if(A||this.position=="absolute")if(this.parent){let o=this.parent.getBoundingClientRect();o.width&&o.height&&(t=o.width/this.parent.offsetWidth,e=o.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:e}=this.view.viewState);let i=this.view.scrollDOM.getBoundingClientRect(),n=pF(this.view);return{visible:{left:i.left+n.left,top:i.top+n.top,right:i.right-n.right,bottom:i.bottom-n.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((o,r)=>{let s=this.manager.tooltipViews[r];return s.getCoords?s.getCoords(o.pos):this.view.coordsAtPos(o.pos)}),size:this.manager.tooltipViews.map(({dom:o})=>o.getBoundingClientRect()),space:this.view.state.facet(SN).tooltipSpace(this.view),scaleX:t,scaleY:e,makeAbsolute:A}}writeMeasure(t){var e;if(t.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let s of this.manager.tooltipViews)s.dom.style.position="absolute"}let{visible:A,space:i,scaleX:n,scaleY:o}=t,r=[];for(let s=0;s=Math.min(A.bottom,i.bottom)||I.rightMath.min(A.right,i.right)+.1)){g.style.top=W4;continue}let d=a.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,B=d?7:0,E=C.right-C.left,u=(e=wtA.get(c))!==null&&e!==void 0?e:C.bottom-C.top,h=c.offset||GxA,w=this.view.textDirection==Co.LTR,x=C.width>i.right-i.left?w?i.left:i.right-C.width:w?Math.max(i.left,Math.min(I.left-(d?14:0)+h.x,i.right-E)):Math.min(Math.max(i.left,I.left-E+(d?14:0)-h.x),i.right-E),R=this.above[s];!a.strictSide&&(R?I.top-u-B-h.yi.bottom)&&R==i.bottom-I.bottom>I.top-i.top&&(R=this.above[s]=!R);let D=(R?I.top-i.top:i.bottom-I.bottom)-B;if(Dx&&z.topG&&(G=R?z.top-u-2-B:z.bottom+B+2);if(this.position=="absolute"?(g.style.top=(G-t.parent.top)/o+"px",ytA(g,(x-t.parent.left)/n)):(g.style.top=G/o+"px",ytA(g,x/n)),d){let z=I.left+(w?h.x:-h.x)-(x+14-7);d.style.left=z/n+"px"}c.overlap!==!0&&r.push({left:x,top:G,right:J,bottom:G+u}),g.classList.toggle("cm-tooltip-above",R),g.classList.toggle("cm-tooltip-below",!R),c.positioned&&c.positioned(t.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let t of this.manager.tooltipViews)t.dom.style.top=W4}},{eventObservers:{scroll(){this.maybeMeasure()}}});function ytA(t,e){let A=parseInt(t.style.left,10);(isNaN(A)||Math.abs(e-A)>1)&&(t.style.left=e+"px")}var _xA=Pt.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),GxA={x:0,y:0},qE=qe.define({enables:[wF,_xA]}),cw=qe.define({combine:t=>t.reduce((e,A)=>e.concat(A),[])}),gw=class t{static create(e){return new t(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new aw(e,cw,(A,i)=>this.createHostedView(A,i),A=>A.dom.remove())}createHostedView(e,A){let i=e.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(i.dom,A?A.dom.nextSibling:this.dom.firstChild),this.mounted&&i.mount&&i.mount(this.view),i}mount(e){for(let A of this.manager.tooltipViews)A.mount&&A.mount(e);this.mounted=!0}positioned(e){for(let A of this.manager.tooltipViews)A.positioned&&A.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let A of this.manager.tooltipViews)(e=A.destroy)===null||e===void 0||e.call(A)}passProp(e){let A;for(let i of this.manager.tooltipViews){let n=i[e];if(n!==void 0){if(A===void 0)A=n;else if(A!==n)return}}return A}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}},KxA=qE.compute([cw],t=>{let e=t.facet(cw);return e.length===0?null:{pos:Math.min(...e.map(A=>A.pos)),end:Math.max(...e.map(A=>{var i;return(i=A.end)!==null&&i!==void 0?i:A.pos})),create:gw.create,above:e[0].above,arrow:e.some(A=>A.arrow)}}),dF=class{constructor(e,A,i,n,o){this.view=e,this.source=A,this.field=i,this.setHover=n,this.hoverTime=o,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;es.bottom||A.xs.right+e.defaultCharacterWidth)return;let a=e.bidiSpans(e.state.doc.lineAt(n)).find(g=>g.from<=n&&g.to>=n),c=a&&a.dir==Co.RTL?-1:1;o=A.x{this.pending==s&&(this.pending=null,a&&!(Array.isArray(a)&&!a.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(a)?a:[a])}))},a=>is(e.state,a,"hover tooltip"))}else r&&!(Array.isArray(r)&&!r.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(r)?r:[r])})}get tooltip(){let e=this.view.plugin(wF),A=e?e.manager.tooltips.findIndex(i=>i.create==gw.create):-1;return A>-1?e.manager.tooltipViews[A]:null}mousemove(e){var A,i;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:n,tooltip:o}=this;if(n.length&&o&&!UxA(o.dom,e)||this.pending){let{pos:r}=n[0]||this.pending,s=(i=(A=n[0])===null||A===void 0?void 0:A.end)!==null&&i!==void 0?i:r;(r==s?this.view.posAtCoords(this.lastMove)!=r:!JxA(this.view,r,s,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:A}=this;if(A.length){let{tooltip:i}=this;i&&i.dom.contains(e.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let A=i=>{e.removeEventListener("mouseleave",A),this.active.length&&!this.view.dom.contains(i.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",A)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}},OD=4;function UxA(t,e){let{left:A,right:i,top:n,bottom:o}=t.getBoundingClientRect(),r;if(r=t.querySelector(".cm-tooltip-arrow")){let s=r.getBoundingClientRect();n=Math.min(s.top,n),o=Math.max(s.bottom,o)}return e.clientX>=A-OD&&e.clientX<=i+OD&&e.clientY>=n-OD&&e.clientY<=o+OD}function JxA(t,e,A,i,n,o){let r=t.scrollDOM.getBoundingClientRect(),s=t.documentTop+t.documentPadding.top+t.contentHeight;if(r.left>i||r.rightn||Math.min(r.bottom,s)=e&&a<=A}function FiA(t,e={}){let A=Ki.define(),i=tr.define({create(){return[]},update(n,o){if(n.length&&(e.hideOnChange&&(o.docChanged||o.selection)?n=[]:e.hideOn&&(n=n.filter(r=>!e.hideOn(o,r))),o.docChanged)){let r=[];for(let s of n){let a=o.changes.mapPos(s.pos,-1,us.TrackDel);if(a!=null){let c=Object.assign(Object.create(null),s);c.pos=a,c.end!=null&&(c.end=o.changes.mapPos(c.end)),r.push(c)}}n=r}for(let r of o.effects)r.is(A)&&(n=r.value),r.is(YxA)&&(n=[]);return n},provide:n=>cw.from(n)});return{active:i,extension:[i,Bo.define(n=>new dF(n,t,i,A,e.hoverTime||300)),KxA]}}function yF(t,e){let A=t.plugin(wF);if(!A)return null;let i=A.manager.tooltips.indexOf(e);return i<0?null:A.manager.tooltipViews[i]}var YxA=Ki.define();var vtA=qe.define({combine(t){let e,A;for(let i of t)e=e||i.topContainer,A=A||i.bottomContainer;return{topContainer:e,bottomContainer:A}}});function FC(t,e){let A=t.plugin(_iA),i=A?A.specs.indexOf(e):-1;return i>-1?A.panels[i]:null}var _iA=Bo.fromClass(class{constructor(t){this.input=t.state.facet(NC),this.specs=this.input.filter(A=>A),this.panels=this.specs.map(A=>A(t));let e=t.state.facet(vtA);this.top=new HE(t,!0,e.topContainer),this.bottom=new HE(t,!1,e.bottomContainer),this.top.sync(this.panels.filter(A=>A.top)),this.bottom.sync(this.panels.filter(A=>!A.top));for(let A of this.panels)A.dom.classList.add("cm-panel"),A.mount&&A.mount()}update(t){let e=t.state.facet(vtA);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new HE(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new HE(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let A=t.state.facet(NC);if(A!=this.input){let i=A.filter(a=>a),n=[],o=[],r=[],s=[];for(let a of i){let c=this.specs.indexOf(a),g;c<0?(g=a(t.view),s.push(g)):(g=this.panels[c],g.update&&g.update(t)),n.push(g),(g.top?o:r).push(g)}this.specs=i,this.panels=n,this.top.sync(o),this.bottom.sync(r);for(let a of s)a.dom.classList.add("cm-panel"),a.mount&&a.mount()}else for(let i of this.panels)i.update&&i.update(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>Pt.scrollMargins.of(e=>{let A=e.plugin(t);return A&&{top:A.top.scrollMargin(),bottom:A.bottom.scrollMargin()}})}),HE=class{constructor(e,A,i){this.view=e,this.top=A,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let A of this.panels)A.destroy&&e.indexOf(A)<0&&A.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let A=this.container||this.view.dom;A.insertBefore(this.dom,this.top?A.firstChild:null)}let e=this.dom.firstChild;for(let A of this.panels)if(A.dom.parentNode==this.dom){for(;e!=A.dom;)e=MtA(e);e=e.nextSibling}else this.dom.insertBefore(A.dom,e);for(;e;)e=MtA(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}};function MtA(t){let e=t.nextSibling;return t.remove(),e}var NC=qe.define({enables:_iA});var Ga=class extends xg{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};Ga.prototype.elementClass="";Ga.prototype.toDOM=void 0;Ga.prototype.mapMode=us.TrackBefore;Ga.prototype.startSide=Ga.prototype.endSide=-1;Ga.prototype.point=!0;var WD=qe.define(),TxA=qe.define(),HxA={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>Io.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},r3=qe.define();function Qw(t){return[GiA(),r3.of(sA(sA({},HxA),t))]}var BF=qe.define({combine:t=>t.some(e=>e)});function GiA(t){let e=[OxA];return t&&t.fixed===!1&&e.push(BF.of(!0)),e}var OxA=Bo.fromClass(class{constructor(t){this.view=t,this.domAfter=null,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet(r3).map(e=>new lw(t,e)),this.fixed=!t.state.facet(BF);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(t){if(this.updateGutters(t)){let e=this.prevViewport,A=t.view.viewport,i=Math.min(e.to,A.to)-Math.max(e.from,A.from);this.syncGutters(i<(A.to-A.from)*.8)}if(t.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(BF)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let A=Io.iter(this.view.state.facet(WD),this.view.viewport.from),i=[],n=this.gutters.map(o=>new QF(o,this.view.viewport,-this.view.documentPadding.top));for(let o of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(o.type)){let r=!0;for(let s of o.type)if(s.type==na.Text&&r){EF(A,i,s.from);for(let a of n)a.line(this.view,s,i);r=!1}else if(s.widget)for(let a of n)a.widget(this.view,s)}else if(o.type==na.Text){EF(A,i,o.from);for(let r of n)r.line(this.view,o,i)}else if(o.widget)for(let r of n)r.widget(this.view,o);for(let o of n)o.finish();t&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(t){let e=t.startState.facet(r3),A=t.state.facet(r3),i=t.docChanged||t.heightChanged||t.viewportChanged||!Io.eq(t.startState.facet(WD),t.state.facet(WD),t.view.viewport.from,t.view.viewport.to);if(e==A)for(let n of this.gutters)n.update(t)&&(i=!0);else{i=!0;let n=[];for(let o of A){let r=e.indexOf(o);r<0?n.push(new lw(this.view,o)):(this.gutters[r].update(t),n.push(this.gutters[r]))}for(let o of this.gutters)o.dom.remove(),n.indexOf(o)<0&&o.destroy();for(let o of n)o.config.side=="after"?this.getDOMAfter().appendChild(o.dom):this.dom.appendChild(o.dom);this.gutters=n}return i}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:t=>Pt.scrollMargins.of(e=>{let A=e.plugin(t);if(!A||A.gutters.length==0||!A.fixed)return null;let i=A.dom.offsetWidth*e.scaleX,n=A.domAfter?A.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==Co.LTR?{left:i,right:n}:{right:i,left:n}})});function btA(t){return Array.isArray(t)?t:[t]}function EF(t,e,A){for(;t.value&&t.from<=A;)t.from==A&&e.push(t.value),t.next()}var QF=class{constructor(e,A,i){this.gutter=e,this.height=i,this.i=0,this.cursor=Io.iter(e.markers,A.from)}addElement(e,A,i){let{gutter:n}=this,o=(A.top-this.height)/e.scaleY,r=A.height/e.scaleY;if(this.i==n.elements.length){let s=new Iw(e,r,o,i);n.elements.push(s),n.dom.appendChild(s.dom)}else n.elements[this.i].update(e,r,o,i);this.height=A.bottom,this.i++}line(e,A,i){let n=[];EF(this.cursor,n,A.from),i.length&&(n=n.concat(i));let o=this.gutter.config.lineMarker(e,A,n);o&&n.unshift(o);let r=this.gutter;n.length==0&&!r.config.renderEmptyElements||this.addElement(e,A,n)}widget(e,A){let i=this.gutter.config.widgetMarker(e,A.widget,A),n=i?[i]:null;for(let o of e.state.facet(TxA)){let r=o(e,A.widget,A);r&&(n||(n=[])).push(r)}n&&this.addElement(e,A,n)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let A=e.elements.pop();e.dom.removeChild(A.dom),A.destroy()}}},lw=class{constructor(e,A){this.view=e,this.config=A,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in A.domEventHandlers)this.dom.addEventListener(i,n=>{let o=n.target,r;if(o!=this.dom&&this.dom.contains(o)){for(;o.parentNode!=this.dom;)o=o.parentNode;let a=o.getBoundingClientRect();r=(a.top+a.bottom)/2}else r=n.clientY;let s=e.lineBlockAtHeight(r-e.documentTop);A.domEventHandlers[i](e,s,n)&&n.preventDefault()});this.markers=btA(A.markers(e)),A.initialSpacer&&(this.spacer=new Iw(e,0,0,[A.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let A=this.markers;if(this.markers=btA(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let n=this.config.updateSpacer(this.spacer.markers[0],e);n!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[n])}let i=e.view.viewport;return!Io.eq(this.markers,A,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}},Iw=class{constructor(e,A,i,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,A,i,n)}update(e,A,i,n){this.height!=A&&(this.height=A,this.dom.style.height=A+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),zxA(this.markers,n)||this.setMarkers(e,n)}setMarkers(e,A){let i="cm-gutterElement",n=this.dom.firstChild;for(let o=0,r=0;;){let s=r,a=oo(s,a,c)||r(s,a,c):r}return i}})}}),s3=class extends Ga{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}};function RN(t,e){return t.state.facet(OE).formatNumber(e,t.state)}var qxA=r3.compute([OE],t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(PxA)},lineMarker(e,A,i){return i.some(n=>n.toDOM)?null:new s3(RN(e,e.state.doc.lineAt(A.from).number))},widgetMarker:(e,A,i)=>{for(let n of e.state.facet(jxA)){let o=n(e,A,i);if(o)return o}return null},lineMarkerChange:e=>e.startState.facet(OE)!=e.state.facet(OE),initialSpacer(e){return new s3(RN(e,ktA(e.state.doc.lines)))},updateSpacer(e,A){let i=RN(A.view,ktA(A.view.state.doc.lines));return i==e.number?e:new s3(i)},domEventHandlers:t.facet(OE).domEventHandlers,side:"before"}));function KiA(t={}){return[OE.of(t),GiA(),qxA]}function ktA(t){let e=9;for(;e{let e=[],A=-1;for(let i of t.selection.ranges){let n=t.doc.lineAt(i.head).from;n>A&&(A=n,e.push(VxA.range(n)))}return Io.of(e)});function UiA(){return ZxA}var WxA=0,u3=class{constructor(e,A){this.from=e,this.to=A}},di=class{constructor(e={}){this.id=WxA++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=Ks.match(e)),A=>{let i=e(A);return i===void 0?null:[this,i]}}};di.closedBy=new di({deserialize:t=>t.split(" ")});di.openedBy=new di({deserialize:t=>t.split(" ")});di.group=new di({deserialize:t=>t.split(" ")});di.isolate=new di({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}});di.contextHash=new di({perNode:!0});di.lookAhead=new di({perNode:!0});di.mounted=new di({perNode:!0});var VE=class{constructor(e,A,i){this.tree=e,this.overlay=A,this.parser=i}static get(e){return e&&e.props&&e.props[di.mounted.id]}},XxA=Object.create(null),Ks=class t{constructor(e,A,i,n=0){this.name=e,this.props=A,this.id=i,this.flags=n}static define(e){let A=e.props&&e.props.length?Object.create(null):XxA,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),n=new t(e.name||"",A,e.id,i);if(e.props){for(let o of e.props)if(Array.isArray(o)||(o=o(n)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");A[o[0].id]=o[1]}}return n}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let A=this.prop(di.group);return A?A.indexOf(e)>-1:!1}return this.id==e}static match(e){let A=Object.create(null);for(let i in e)for(let n of i.split(" "))A[n]=e[i];return i=>{for(let n=i.prop(di.group),o=-1;o<(n?n.length:0);o++){let r=A[o<0?i.name:n[o]];if(r)return r}}}};Ks.none=new Ks("",Object.create(null),0,8);var h3=class t{constructor(e){this.types=e;for(let A=0;A0;for(let a=this.cursor(r|zr.IncludeAnonymous);;){let c=!1;if(a.from<=o&&a.to>=n&&(!s&&a.type.isAnonymous||A(a)!==!1)){if(a.firstChild())continue;c=!0}for(;c&&i&&(s||!a.type.isAnonymous)&&i(a),!a.nextSibling();){if(!a.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let A in this.props)e.push([+A,this.props[A]]);return e}balance(e={}){return this.children.length<=8?this:LF(Ks.none,this.children,this.positions,0,this.children.length,0,this.length,(A,i,n)=>new t(this.type,A,i,n,this.propValues),e.makeTree||((A,i,n)=>new t(Ks.none,A,i,n)))}static build(e){return ANA(e)}};wr.empty=new wr(Ks.none,[],[],0);var vF=class t{constructor(e,A){this.buffer=e,this.index=A}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new t(this.buffer,this.index)}},_1=class t{constructor(e,A,i){this.buffer=e,this.length=A,this.set=i}get type(){return Ks.none}toString(){let e=[];for(let A=0;A0));a=r[a+3]);return s}slice(e,A,i){let n=this.buffer,o=new Uint16Array(A-e),r=0;for(let s=e,a=0;s=e&&Ae;case 1:return A<=e&&i>e;case 2:return i>e;case 4:return!0}}function f3(t,e,A,i){for(var n;t.from==t.to||(A<1?t.from>=e:t.from>e)||(A>-1?t.to<=e:t.to0?s.length:-1;e!=c;e+=A){let g=s[e],I=a[e]+r.from;if(HiA(n,i,I,I+g.length)){if(g instanceof _1){if(o&zr.ExcludeBuffers)continue;let C=g.findChild(0,g.buffer.length,A,i-I,n);if(C>-1)return new m3(new bF(r,g,e,I),null,C)}else if(o&zr.IncludeAnonymous||!g.type.isAnonymous||RF(g)){let C;if(!(o&zr.IgnoreMounts)&&(C=VE.get(g))&&!C.overlay)return new t(C.tree,I,e,r);let d=new t(g,I,e,r);return o&zr.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(A<0?g.children.length-1:0,A,i,n)}}}if(o&zr.IncludeAnonymous||!r.type.isAnonymous||(r.index>=0?e=r.index+A:e=A<0?-1:r._parent._tree.children.length,r=r._parent,!r))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,A,i=0){let n;if(!(i&zr.IgnoreOverlays)&&(n=VE.get(this._tree))&&n.overlay){let o=e-this.from;for(let{from:r,to:s}of n.overlay)if((A>0?r<=o:r=o:s>o))return new t(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,A,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function YiA(t,e,A,i){let n=t.cursor(),o=[];if(!n.firstChild())return o;if(A!=null){for(let r=!1;!r;)if(r=n.type.is(A),!n.nextSibling())return o}for(;;){if(i!=null&&n.type.is(i))return o;if(n.type.is(e)&&o.push(n.node),!n.nextSibling())return i==null?o:[]}}function MF(t,e,A=e.length-1){for(let i=t;A>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[A]&&e[A]!=i.name)return!1;A--}}return!0}var bF=class{constructor(e,A,i,n){this.parent=e,this.buffer=A,this.index=i,this.start=n}},m3=class t extends fw{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,A,i){super(),this.context=e,this._parent=A,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,A,i){let{buffer:n}=this.context,o=n.findChild(this.index+4,n.buffer[this.index+3],e,A-this.context.start,i);return o<0?null:new t(this.context,this,o)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,A,i=0){if(i&zr.ExcludeBuffers)return null;let{buffer:n}=this.context,o=n.findChild(this.index+4,n.buffer[this.index+3],A>0?1:-1,e-this.context.start,A);return o<0?null:new t(this.context,this,o)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,A=e.buffer[this.index+3];return A<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new t(this.context,this._parent,A):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,A=this._parent?this._parent.index+4:0;return this.index==A?this.externalSibling(-1):new t(this.context,this._parent,e.findChild(A,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],A=[],{buffer:i}=this.context,n=this.index+4,o=i.buffer[this.index+3];if(o>n){let r=i.buffer[this.index+1];e.push(i.slice(n,o,r)),A.push(0)}return new wr(this.type,e,A,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function OiA(t){if(!t.length)return null;let e=0,A=t[0];for(let o=1;oA.from||r.to=e){let s=new jl(r.tree,r.overlay[0].from+o.from,-1,o);(n||(n=[i])).push(f3(s,e,A,!1))}}return n?OiA(n):i}var p3=class{get name(){return this.type.name}constructor(e,A=0){if(this.mode=A,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof jl)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,A){this.index=e;let{start:i,buffer:n}=this.buffer;return this.type=A||n.set.types[n.buffer[e]],this.from=i+n.buffer[e+1],this.to=i+n.buffer[e+2],!0}yield(e){return e?e instanceof jl?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,A,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,A,i,this.mode));let{buffer:n}=this.buffer,o=n.findChild(this.index+4,n.buffer[this.index+3],e,A-this.buffer.start,i);return o<0?!1:(this.stack.push(this.index),this.yieldBuf(o))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,A,i=this.mode){return this.buffer?i&zr.ExcludeBuffers?!1:this.enterChild(1,e,A):this.yield(this._tree.enter(e,A,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&zr.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&zr.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:A}=this.buffer,i=this.stack.length-1;if(e<0){let n=i<0?0:this.stack[i]+4;if(this.index!=n)return this.yieldBuf(A.findChild(n,this.index,-1,0,4))}else{let n=A.buffer[this.index+3];if(n<(i<0?A.buffer.length:A.buffer[this.stack[i]+3]))return this.yieldBuf(n)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let A,i,{buffer:n}=this;if(n){if(e>0){if(this.index-1)for(let o=A+e,r=e<0?-1:i._tree.children.length;o!=r;o+=e){let s=i._tree.children[o];if(this.mode&zr.IncludeAnonymous||s instanceof _1||!s.type.isAnonymous||RF(s))return!1}return!0}move(e,A){if(A&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,A=0){for(;(this.from==this.to||(A<1?this.from>=e:this.from>e)||(A>-1?this.to<=e:this.to=0;){for(let r=e;r;r=r._parent)if(r.index==n){if(n==this.index)return r;A=r,i=o+1;break A}n=this.stack[--o]}for(let n=i;n=0;o--){if(o<0)return MF(this._tree,e,n);let r=i[A.buffer[this.stack[o]]];if(!r.isAnonymous){if(e[n]&&e[n]!=r.name)return!1;n--}}return!0}};function RF(t){return t.children.some(e=>e instanceof _1||!e.type.isAnonymous||RF(e))}function ANA(t){var e;let{buffer:A,nodeSet:i,maxBufferLength:n=1024,reused:o=[],minRepeatType:r=i.types.length}=t,s=Array.isArray(A)?new vF(A,A.length):A,a=i.types,c=0,g=0;function I(D,G,J,z,K,O){let{id:V,start:j,end:dA,size:fA}=s,EA=g,IA=c;for(;fA<0;)if(s.next(),fA==-1){let VA=o[V];J.push(VA),z.push(j-D);return}else if(fA==-3){c=V;return}else if(fA==-4){g=V;return}else throw new RangeError(`Unrecognized record size: ${fA}`);let SA=a[V],nA,lA,wA=j-D;if(dA-j<=n&&(lA=u(s.pos-G,K))){let VA=new Uint16Array(lA.size-lA.skip),ie=s.pos-lA.size,UA=VA.length;for(;s.pos>ie;)UA=h(lA.start,VA,UA);nA=new _1(VA,dA-lA.start,i),wA=lA.start-D}else{let VA=s.pos-fA;s.next();let ie=[],UA=[],BA=V>=r?V:-1,JA=0,Xe=dA;for(;s.pos>VA;)BA>=0&&s.id==BA&&s.size>=0?(s.end<=Xe-n&&(B(ie,UA,j,JA,s.end,Xe,BA,EA,IA),JA=ie.length,Xe=s.end),s.next()):O>2500?C(j,VA,ie,UA):I(j,VA,ie,UA,BA,O+1);if(BA>=0&&JA>0&&JA-1&&JA>0){let We=d(SA,IA);nA=LF(SA,ie,UA,0,ie.length,0,dA-j,We,We)}else nA=E(SA,ie,UA,dA-j,EA-dA,IA)}J.push(nA),z.push(wA)}function C(D,G,J,z){let K=[],O=0,V=-1;for(;s.pos>G;){let{id:j,start:dA,end:fA,size:EA}=s;if(EA>4)s.next();else{if(V>-1&&dA=0;fA-=3)j[EA++]=K[fA],j[EA++]=K[fA+1]-dA,j[EA++]=K[fA+2]-dA,j[EA++]=EA;J.push(new _1(j,K[2]-dA,i)),z.push(dA-D)}}function d(D,G){return(J,z,K)=>{let O=0,V=J.length-1,j,dA;if(V>=0&&(j=J[V])instanceof wr){if(!V&&j.type==D&&j.length==K)return j;(dA=j.prop(di.lookAhead))&&(O=z[V]+j.length+dA)}return E(D,J,z,K,O,G)}}function B(D,G,J,z,K,O,V,j,dA){let fA=[],EA=[];for(;D.length>z;)fA.push(D.pop()),EA.push(G.pop()+J-K);D.push(E(i.types[V],fA,EA,O-K,j-O,dA)),G.push(K-J)}function E(D,G,J,z,K,O,V){if(O){let j=[di.contextHash,O];V=V?[j].concat(V):[j]}if(K>25){let j=[di.lookAhead,K];V=V?[j].concat(V):[j]}return new wr(D,G,J,z,V)}function u(D,G){let J=s.fork(),z=0,K=0,O=0,V=J.end-n,j={size:0,start:0,skip:0};A:for(let dA=J.pos-D;J.pos>dA;){let fA=J.size;if(J.id==G&&fA>=0){j.size=z,j.start=K,j.skip=O,O+=4,z+=4,J.next();continue}let EA=J.pos-fA;if(fA<0||EA=r?4:0,SA=J.start;for(J.next();J.pos>EA;){if(J.size<0)if(J.size==-3)IA+=4;else break A;else J.id>=r&&(IA+=4);J.next()}K=SA,z+=fA,O+=IA}return(G<0||z==D)&&(j.size=z,j.start=K,j.skip=O),j.size>4?j:void 0}function h(D,G,J){let{id:z,start:K,end:O,size:V}=s;if(s.next(),V>=0&&z4){let dA=s.pos-(V-4);for(;s.pos>dA;)J=h(D,G,J)}G[--J]=j,G[--J]=O-D,G[--J]=K-D,G[--J]=z}else V==-3?c=z:V==-4&&(g=z);return J}let w=[],x=[];for(;s.pos>0;)I(t.start||0,t.bufferStart||0,w,x,-1,0);let R=(e=t.length)!==null&&e!==void 0?e:w.length?x[0]+w[0].length:0;return new wr(a[t.topID],w.reverse(),x.reverse(),R)}var TiA=new WeakMap;function hw(t,e){if(!t.isAnonymous||e instanceof _1||e.type!=t)return 1;let A=TiA.get(e);if(A==null){A=1;for(let i of e.children){if(i.type!=t||!(i instanceof wr)){A=1;break}A+=hw(t,i)}TiA.set(e,A)}return A}function LF(t,e,A,i,n,o,r,s,a){let c=0;for(let B=i;B=g)break;G+=J}if(x==R+1){if(G>g){let J=B[R];d(J.children,J.positions,0,J.children.length,E[R]+w);continue}I.push(B[R])}else{let J=E[x-1]+B[x-1].length-D;I.push(LF(t,B,E,R,x,D,J,null,a))}C.push(D+w-o)}}return d(e,A,i,n,0),(s||a)(I,C,r)}var _C=class t{constructor(e,A,i,n,o=!1,r=!1){this.from=e,this.to=A,this.tree=i,this.offset=n,this.open=(o?1:0)|(r?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,A=[],i=!1){let n=[new t(0,e.length,e,0,!1,i)];for(let o of A)o.to>e.length&&n.push(o);return n}static applyChanges(e,A,i=128){if(!A.length)return e;let n=[],o=1,r=e.length?e[0]:null;for(let s=0,a=0,c=0;;s++){let g=s=i)for(;r&&r.from=C.from||I<=C.to||c){let d=Math.max(C.from,a)-c,B=Math.min(C.to,I)-c;C=d>=B?null:new t(d,B,C.tree,C.offset+c,s>0,!!g)}if(C&&n.push(C),r.to>I)break;r=onew u3(n.from,n.to)):[new u3(0,0)]:[new u3(0,e.length)],this.createParse(e,A||[],i)}parse(e,A,i){let n=this.startParse(e,A,i);for(;;){let o=n.advance();if(o)return o}}},SF=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,A){return this.string.slice(e,A)}};var V5e=new di({perNode:!0});var eNA=0,_g=class t{constructor(e,A,i,n){this.name=e,this.set=A,this.base=i,this.modified=n,this.id=eNA++}toString(){let{name:e}=this;for(let A of this.modified)A.name&&(e=`${A.name}(${e})`);return e}static define(e,A){let i=typeof e=="string"?e:"?";if(e instanceof t&&(A=e),A?.base)throw new Error("Can not derive from a modified tag");let n=new t(i,[],null,[]);if(n.set.push(n),A)for(let o of A.set)n.set.push(o);return n}static defineModifier(e){let A=new ww(e);return i=>i.modified.indexOf(A)>-1?i:ww.get(i.base||i,i.modified.concat(A).sort((n,o)=>n.id-o.id))}},tNA=0,ww=class t{constructor(e){this.name=e,this.instances=[],this.id=tNA++}static get(e,A){if(!A.length)return e;let i=A[0].instances.find(s=>s.base==e&&iNA(A,s.modified));if(i)return i;let n=[],o=new _g(e.name,n,e,A);for(let s of A)s.instances.push(o);let r=nNA(A);for(let s of e.set)if(!s.modified.length)for(let a of r)n.push(t.get(s,a));return o}};function iNA(t,e){return t.length==e.length&&t.every((A,i)=>A==e[i])}function nNA(t){let e=[[]];for(let A=0;Ai.length-A.length)}function yw(t){let e=Object.create(null);for(let A in t){let i=t[A];Array.isArray(i)||(i=[i]);for(let n of A.split(" "))if(n){let o=[],r=2,s=n;for(let I=0;;){if(s=="..."&&I>0&&I+3==n.length){r=1;break}let C=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(s);if(!C)throw new RangeError("Invalid path: "+n);if(o.push(C[0]=="*"?"":C[0][0]=='"'?JSON.parse(C[0]):C[0]),I+=C[0].length,I==n.length)break;let d=n[I++];if(I==n.length&&d=="!"){r=0;break}if(d!="/")throw new RangeError("Invalid path: "+n);s=n.slice(I)}let a=o.length-1,c=o[a];if(!c)throw new RangeError("Invalid path: "+n);let g=new WE(i,r,a>0?o.slice(0,a):null);e[c]=g.sort(e[c])}}return jiA.add(e)}var jiA=new di,WE=class{constructor(e,A,i,n){this.tags=e,this.mode=A,this.context=i,this.next=n}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let r=n;for(let s of o)for(let a of s.set){let c=A[a.id];if(c){r=r?r+" "+c:c;break}}return r},scope:i}}function oNA(t,e){let A=null;for(let i of t){let n=i.style(e);n&&(A=A?A+" "+n:n)}return A}function qiA(t,e,A,i=0,n=t.length){let o=new NF(i,Array.isArray(e)?e:[e],A);o.highlightRange(t.cursor(),i,n,"",o.highlighters),o.flush(n)}var NF=class{constructor(e,A,i){this.at=e,this.highlighters=A,this.span=i,this.class=""}startSpan(e,A){A!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=A)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,A,i,n,o){let{type:r,from:s,to:a}=e;if(s>=i||a<=A)return;r.isTop&&(o=this.highlighters.filter(d=>!d.scope||d.scope(r)));let c=n,g=rNA(e)||WE.empty,I=oNA(o,g.tags);if(I&&(c&&(c+=" "),c+=I,g.mode==1&&(n+=(n?" ":"")+I)),this.startSpan(Math.max(A,s),c),g.opaque)return;let C=e.tree&&e.tree.prop(di.mounted);if(C&&C.overlay){let d=e.node.enter(C.overlay[0].from+s,1),B=this.highlighters.filter(u=>!u.scope||u.scope(C.tree.type)),E=e.firstChild();for(let u=0,h=s;;u++){let w=u=x||!e.nextSibling())););if(!w||x>i)break;h=w.to+s,h>A&&(this.highlightRange(d.cursor(),Math.max(A,w.from+s),Math.min(i,h),"",B),this.startSpan(Math.min(i,h),c))}E&&e.parent()}else if(e.firstChild()){C&&(n="");do if(!(e.to<=A)){if(e.from>=i)break;this.highlightRange(e,A,i,n,o),this.startSpan(Math.min(i,e.to),c)}while(e.nextSibling());e.parent()}}};function rNA(t){let e=t.type.prop(jiA);for(;e&&e.context&&!t.matchContext(e.context);)e=e.next;return e||null}var ze=_g.define,mw=ze(),G1=ze(),ziA=ze(G1),PiA=ze(G1),K1=ze(),pw=ze(K1),xF=ze(K1),Zl=ze(),GC=ze(Zl),ql=ze(),Vl=ze(),FF=ze(),D3=ze(FF),Dw=ze(),ke={comment:mw,lineComment:ze(mw),blockComment:ze(mw),docComment:ze(mw),name:G1,variableName:ze(G1),typeName:ziA,tagName:ze(ziA),propertyName:PiA,attributeName:ze(PiA),className:ze(G1),labelName:ze(G1),namespace:ze(G1),macroName:ze(G1),literal:K1,string:pw,docString:ze(pw),character:ze(pw),attributeValue:ze(pw),number:xF,integer:ze(xF),float:ze(xF),bool:ze(K1),regexp:ze(K1),escape:ze(K1),color:ze(K1),url:ze(K1),keyword:ql,self:ze(ql),null:ze(ql),atom:ze(ql),unit:ze(ql),modifier:ze(ql),operatorKeyword:ze(ql),controlKeyword:ze(ql),definitionKeyword:ze(ql),moduleKeyword:ze(ql),operator:Vl,derefOperator:ze(Vl),arithmeticOperator:ze(Vl),logicOperator:ze(Vl),bitwiseOperator:ze(Vl),compareOperator:ze(Vl),updateOperator:ze(Vl),definitionOperator:ze(Vl),typeOperator:ze(Vl),controlOperator:ze(Vl),punctuation:FF,separator:ze(FF),bracket:D3,angleBracket:ze(D3),squareBracket:ze(D3),paren:ze(D3),brace:ze(D3),content:Zl,heading:GC,heading1:ze(GC),heading2:ze(GC),heading3:ze(GC),heading4:ze(GC),heading5:ze(GC),heading6:ze(GC),contentSeparator:ze(Zl),list:ze(Zl),quote:ze(Zl),emphasis:ze(Zl),strong:ze(Zl),link:ze(Zl),monospace:ze(Zl),strikethrough:ze(Zl),inserted:ze(),deleted:ze(),changed:ze(),invalid:ze(),meta:Dw,documentMeta:ze(Dw),annotation:ze(Dw),processingInstruction:ze(Dw),definition:_g.defineModifier("definition"),constant:_g.defineModifier("constant"),function:_g.defineModifier("function"),standard:_g.defineModifier("standard"),local:_g.defineModifier("local"),special:_g.defineModifier("special")};for(let t in ke){let e=ke[t];e instanceof _g&&(e.name=t)}var X5e=_F([{tag:ke.link,class:"tok-link"},{tag:ke.heading,class:"tok-heading"},{tag:ke.emphasis,class:"tok-emphasis"},{tag:ke.strong,class:"tok-strong"},{tag:ke.keyword,class:"tok-keyword"},{tag:ke.atom,class:"tok-atom"},{tag:ke.bool,class:"tok-bool"},{tag:ke.url,class:"tok-url"},{tag:ke.labelName,class:"tok-labelName"},{tag:ke.inserted,class:"tok-inserted"},{tag:ke.deleted,class:"tok-deleted"},{tag:ke.literal,class:"tok-literal"},{tag:ke.string,class:"tok-string"},{tag:ke.number,class:"tok-number"},{tag:[ke.regexp,ke.escape,ke.special(ke.string)],class:"tok-string2"},{tag:ke.variableName,class:"tok-variableName"},{tag:ke.local(ke.variableName),class:"tok-variableName tok-local"},{tag:ke.definition(ke.variableName),class:"tok-variableName tok-definition"},{tag:ke.special(ke.variableName),class:"tok-variableName2"},{tag:ke.definition(ke.propertyName),class:"tok-propertyName tok-definition"},{tag:ke.typeName,class:"tok-typeName"},{tag:ke.namespace,class:"tok-namespace"},{tag:ke.className,class:"tok-className"},{tag:ke.macroName,class:"tok-macroName"},{tag:ke.propertyName,class:"tok-propertyName"},{tag:ke.operator,class:"tok-operator"},{tag:ke.comment,class:"tok-comment"},{tag:ke.meta,class:"tok-meta"},{tag:ke.invalid,class:"tok-invalid"},{tag:ke.punctuation,class:"tok-punctuation"}]);var GF,XE=new di;function sNA(t){return qe.define({combine:t?e=>e.concat(t):void 0})}var aNA=new di,Gg=(()=>{class t{constructor(A,i,n=[],o=""){this.data=A,this.name=o,Dr.prototype.hasOwnProperty("tree")||Object.defineProperty(Dr.prototype,"tree",{get(){return ns(this)}}),this.parser=i,this.extension=[U1.of(this),Dr.languageData.of((r,s,a)=>{let c=ViA(r,s,a),g=c.type.prop(XE);if(!g)return[];let I=r.facet(g),C=c.type.prop(aNA);if(C){let d=c.resolve(s-c.from,a);for(let B of C)if(B.test(d,r)){let E=r.facet(B.facet);return B.type=="replace"?E:E.concat(I)}}return I})].concat(n)}isActiveAt(A,i,n=-1){return ViA(A,i,n).type.prop(XE)==this.data}findRegions(A){let i=A.facet(U1);if(i?.data==this.data)return[{from:0,to:A.doc.length}];if(!i||!i.allowsNesting)return[];let n=[],o=(r,s)=>{if(r.prop(XE)==this.data){n.push({from:s,to:s+r.length});return}let a=r.prop(di.mounted);if(a){if(a.tree.prop(XE)==this.data){if(a.overlay)for(let c of a.overlay)n.push({from:c.from+s,to:c.to+s});else n.push({from:s,to:s+r.length});return}else if(a.overlay){let c=n.length;if(o(a.tree,a.overlay[0].from+s),n.length>c)return}}for(let c=0;ci.isTop?A:void 0)]}),e.name)}configure(e,A){return new t(this.data,this.parser.configure(e),A||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function ns(t){let e=t.field(Gg.state,!1);return e?e.tree:wr.empty}function VF(t,e,A=50){var i;let n=(i=t.field(Gg.state,!1))===null||i===void 0?void 0:i.context;if(!n)return null;let o=n.viewport;n.updateViewport({from:0,to:e});let r=n.isDone(e)||n.work(A,e)?n.tree:null;return n.updateViewport(o),r}var YF=class{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,A){let i=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,A):this.string.slice(e-i,A-i)}},w3=null,TF=class t{constructor(e,A,i=[],n,o,r,s,a){this.parser=e,this.state=A,this.fragments=i,this.tree=n,this.treeLen=o,this.viewport=r,this.skipped=s,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,A,i){return new t(e,A,[],wr.empty,0,i,[],null)}startParse(){return this.parser.startParse(new YF(this.state.doc),this.fragments)}work(e,A){return A!=null&&A>=this.state.doc.length&&(A=void 0),this.tree!=wr.empty&&this.isDone(A??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let n=Date.now()+e;e=()=>Date.now()>n}for(this.parse||(this.parse=this.startParse()),A!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>A)&&A=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(A=this.parse.advance()););}),this.treeLen=e,this.tree=A,this.fragments=this.withoutTempSkipped(_C.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let A=w3;w3=this;try{return e()}finally{w3=A}}withoutTempSkipped(e){for(let A;A=this.tempSkipped.pop();)e=ZiA(e,A.from,A.to);return e}changes(e,A){let{fragments:i,tree:n,treeLen:o,viewport:r,skipped:s}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((c,g,I,C)=>a.push({fromA:c,toA:g,fromB:I,toB:C})),i=_C.applyChanges(i,a),n=wr.empty,o=0,r={from:e.mapPos(r.from,-1),to:e.mapPos(r.to,1)},this.skipped.length){s=[];for(let c of this.skipped){let g=e.mapPos(c.from,1),I=e.mapPos(c.to,-1);ge.from&&(this.fragments=ZiA(this.fragments,n,o),this.skipped.splice(i--,1))}return this.skipped.length>=A?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,A){this.skipped.push({from:e,to:A})}static getSkippingParser(e){return new class extends ZE{createParse(A,i,n){let o=n[0].from,r=n[n.length-1].to;return{parsedPos:o,advance(){let a=w3;if(a){for(let c of n)a.tempSkipped.push(c);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=r,new wr(Ks.none,[],[],r-o)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let A=this.fragments;return this.treeLen>=e&&A.length&&A[0].from==0&&A[0].to>=e}static get(){return w3}};function ZiA(t,e,A){return _C.applyChanges(t,[{fromA:e,toA:A,fromB:e,toB:A}])}var v3=class t{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let A=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),A.viewport.to);return A.work(20,i)||A.takeTree(),new t(A)}static init(e){let A=Math.min(3e3,e.doc.length),i=TF.create(e.facet(U1).parser,e,{from:0,to:A});return i.work(20,A)||i.takeTree(),new t(i)}};Gg.state=tr.define({create:v3.init,update(t,e){for(let A of e.effects)if(A.is(Gg.setState))return A.value;return e.startState.facet(U1)!=e.state.facet(U1)?v3.init(e.state):t.apply(e)}});var tnA=t=>{let e=setTimeout(()=>t(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(tnA=t=>{let e=-1,A=setTimeout(()=>{e=requestIdleCallback(t,{timeout:400})},100);return()=>e<0?clearTimeout(A):cancelIdleCallback(e)});var KF=typeof navigator<"u"&&(!((GF=navigator.scheduling)===null||GF===void 0)&&GF.isInputPending)?()=>navigator.scheduling.isInputPending():null,cNA=Bo.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let A=this.view.state.field(Gg.state).context;(A.updateViewport(e.view.viewport)||this.view.viewport.to>A.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(A)}scheduleWork(){if(this.working)return;let{state:e}=this.view,A=e.field(Gg.state);(A.tree!=A.context.tree||!A.context.isDone(e.doc.length))&&(this.working=tnA(this.work))}work(e){this.working=null;let A=Date.now();if(this.chunkEndn+1e3,a=o.context.work(()=>KF&&KF()||Date.now()>r,n+(s?0:1e5));this.chunkBudget-=Date.now()-A,(a||this.chunkBudget<=0)&&(o.context.takeTree(),this.view.dispatch({effects:Gg.setState.of(new v3(o.context))})),this.chunkBudget>0&&!(a&&!s)&&this.scheduleWork(),this.checkAsyncSchedule(o.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(A=>is(this.view.state,A)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),U1=qe.define({combine(t){return t.length?t[0]:null},enables:t=>[Gg.state,cNA,Pt.contentAttributes.compute([t],e=>{let A=e.facet(t);return A&&A.name?{"data-language":A.name}:{}})]}),Mw=class{constructor(e,A=[]){this.language=e,this.support=A,this.extension=[e,A]}};var gNA=qe.define(),JC=qe.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some(A=>A!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function Ug(t){let e=t.facet(JC);return e.charCodeAt(0)==9?t.tabSize*e.length:e.length}function eQ(t,e){let A="",i=t.tabSize,n=t.facet(JC)[0];if(n==" "){for(;e>=i;)A+=" ",e-=i;n=" "}for(let o=0;o=e?lNA(t,A,e):null}var KC=class{constructor(e,A={}){this.state=e,this.options=A,this.unit=Ug(e)}lineAt(e,A=1){let i=this.state.doc.lineAt(e),{simulateBreak:n,simulateDoubleBreak:o}=this.options;return n!=null&&n>=i.from&&n<=i.to?o&&n==e?{text:"",from:e}:(A<0?n-1&&(o+=r-this.countColumn(i,i.search(/\S|$/))),o}countColumn(e,A=e.length){return O0(e,this.state.tabSize,A)}lineIndent(e,A=1){let{text:i,from:n}=this.lineAt(e,A),o=this.options.overrideIndentation;if(o){let r=o(n);if(r>-1)return r}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},ZF=new di;function lNA(t,e,A){let i=e.resolveStack(A),n=e.resolveInner(A,-1).resolve(A,0).enterUnfinishedNodesBefore(A);if(n!=i.node){let o=[];for(let r=n;r&&!(r.fromi.node.to||r.from==i.node.from&&r.type==i.node.type);r=r.parent)o.push(r);for(let r=o.length-1;r>=0;r--)i={node:o[r],next:i}}return inA(i,t,A)}function inA(t,e,A){for(let i=t;i;i=i.next){let n=CNA(i.node);if(n)return n(HF.create(e,A,i))}return 0}function INA(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}function CNA(t){let e=t.type.prop(ZF);if(e)return e;let A=t.firstChild,i;if(A&&(i=A.type.prop(di.closedBy))){let n=t.lastChild,o=n&&i.indexOf(n.name)>-1;return r=>QNA(r,!0,1,void 0,o&&!INA(r)?n.from:void 0)}return t.parent==null?dNA:null}function dNA(){return 0}var HF=class t extends KC{constructor(e,A,i){super(e.state,e.options),this.base=e,this.pos=A,this.context=i}get node(){return this.context.node}static create(e,A,i){return new t(e,A,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let A=this.state.doc.lineAt(e.from);for(;;){let i=e.resolve(A.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(BNA(i,e))break;A=this.state.doc.lineAt(i.from)}return this.lineIndent(A.from)}continue(){return inA(this.context.next,this.base,this.pos)}};function BNA(t,e){for(let A=e;A;A=A.parent)if(t==A)return!0;return!1}function ENA(t){let e=t.node,A=e.childAfter(e.from),i=e.lastChild;if(!A)return null;let n=t.options.simulateBreak,o=t.state.doc.lineAt(A.from),r=n==null||n<=o.from?o.to:Math.min(o.to,n);for(let s=A.to;;){let a=e.childAfter(s);if(!a||a==i)return null;if(!a.type.isSkipped){if(a.from>=r)return null;let c=/^ */.exec(o.text.slice(A.to-o.from))[0].length;return{from:A.from,to:A.to+c}}s=a.to}}function QNA(t,e,A,i,n){let o=t.textAfter,r=o.match(/^\s*/)[0].length,s=i&&o.slice(r,r+i.length)==i||n==t.pos+r,a=e?ENA(t):null;return a?s?t.column(a.from):t.column(a.to):t.baseIndent+(s?0:t.unit*A)}function WF({except:t,units:e=1}={}){return A=>{let i=t&&t.test(A.textAfter);return A.baseIndent+(i?0:e*A.unit)}}var uNA=200;function nnA(){return Dr.transactionFilter.of(t=>{if(!t.docChanged||!t.isUserEvent("input.type")&&!t.isUserEvent("input.complete"))return t;let e=t.startState.languageDataAt("indentOnInput",t.startState.selection.main.head);if(!e.length)return t;let A=t.newDoc,{head:i}=t.newSelection.main,n=A.lineAt(i);if(i>n.from+uNA)return t;let o=A.sliceString(n.from,i);if(!e.some(c=>c.test(o)))return t;let{state:r}=t,s=-1,a=[];for(let{head:c}of r.selection.ranges){let g=r.doc.lineAt(c);if(g.from==s)continue;s=g.from;let I=kw(r,g.from);if(I==null)continue;let C=/^\s*/.exec(g.text)[0],d=eQ(r,I);C!=d&&a.push({from:g.from,to:g.from+C.length,insert:d})}return a.length?[t,{changes:a,sequential:!0}]:t})}var XF=qe.define(),M3=new di;function onA(t){let e=t.firstChild,A=t.lastChild;return e&&e.toA)continue;if(o&&s.from=e&&c.to>A&&(o=c)}}return o}function fNA(t){let e=t.lastChild;return e&&e.to==t.to&&e.type.isError}function $E(t,e,A){for(let i of t.facet(XF)){let n=i(t,e,A);if(n)return n}return hNA(t,e,A)}function rnA(t,e){let A=e.mapPos(t.from,1),i=e.mapPos(t.to,-1);return A>=i?void 0:{from:A,to:i}}var tQ=Ki.define({map:rnA}),b3=Ki.define({map:rnA});function snA(t){let e=[];for(let{head:A}of t.state.selection.ranges)e.some(i=>i.from<=A&&i.to>=A)||e.push(t.lineBlockAt(A));return e}var UC=tr.define({create(){return ht.none},update(t,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((A,i)=>t=WiA(t,A,i)),t=t.map(e.changes);for(let A of e.effects)if(A.is(tQ)&&!mNA(t,A.value.from,A.value.to)){let{preparePlaceholder:i}=e.state.facet(e_),n=i?ht.replace({widget:new OF(i(e.state,A.value))}):XiA;t=t.update({add:[n.range(A.value.from,A.value.to)]})}else A.is(b3)&&(t=t.update({filter:(i,n)=>A.value.from!=i||A.value.to!=n,filterFrom:A.value.from,filterTo:A.value.to}));return e.selection&&(t=WiA(t,e.selection.main.head)),t},provide:t=>Pt.decorations.from(t),toJSON(t,e){let A=[];return t.between(0,e.doc.length,(i,n)=>{A.push(i,n)}),A},fromJSON(t){if(!Array.isArray(t)||t.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let A=0;A{ne&&(i=!0)}),i?t.update({filterFrom:e,filterTo:A,filter:(n,o)=>n>=A||o<=e}):t}function bw(t,e,A){var i;let n=null;return(i=t.field(UC,!1))===null||i===void 0||i.between(e,A,(o,r)=>{(!n||n.from>o)&&(n={from:o,to:r})}),n}function mNA(t,e,A){let i=!1;return t.between(e,e,(n,o)=>{n==e&&o==A&&(i=!0)}),i}function anA(t,e){return t.field(UC,!1)?e:e.concat(Ki.appendConfig.of(lnA()))}var pNA=t=>{for(let e of snA(t)){let A=$E(t.state,e.from,e.to);if(A)return t.dispatch({effects:anA(t.state,[tQ.of(A),cnA(t,A)])}),!0}return!1},$F=t=>{if(!t.state.field(UC,!1))return!1;let e=[];for(let A of snA(t)){let i=bw(t.state,A.from,A.to);i&&e.push(b3.of(i),cnA(t,i,!1))}return e.length&&t.dispatch({effects:e}),e.length>0};function cnA(t,e,A=!0){let i=t.state.doc.lineAt(e.from).number,n=t.state.doc.lineAt(e.to).number;return Pt.announce.of(`${t.state.phrase(A?"Folded lines":"Unfolded lines")} ${i} ${t.state.phrase("to")} ${n}.`)}var DNA=t=>{let{state:e}=t,A=[];for(let i=0;i{let e=t.state.field(UC,!1);if(!e||!e.size)return!1;let A=[];return e.between(0,t.state.doc.length,(i,n)=>{A.push(b3.of({from:i,to:n}))}),t.dispatch({effects:A}),!0};var gnA=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:pNA},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:$F},{key:"Ctrl-Alt-[",run:DNA},{key:"Ctrl-Alt-]",run:A_}],wNA={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},e_=qe.define({combine(t){return ts(t,wNA)}});function lnA(t){let e=[UC,vNA];return t&&e.push(e_.of(t)),e}function InA(t,e){let{state:A}=t,i=A.facet(e_),n=r=>{let s=t.lineBlockAt(t.posAtDOM(r.target)),a=bw(t.state,s.from,s.to);a&&t.dispatch({effects:b3.of(a)}),r.preventDefault()};if(i.placeholderDOM)return i.placeholderDOM(t,n,e);let o=document.createElement("span");return o.textContent=i.placeholderText,o.setAttribute("aria-label",A.phrase("folded code")),o.title=A.phrase("unfold"),o.className="cm-foldPlaceholder",o.onclick=n,o}var XiA=ht.replace({widget:new class extends Cc{toDOM(t){return InA(t,null)}}}),OF=class extends Cc{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return InA(e,this.value)}},yNA={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1},y3=class extends Ga{constructor(e,A){super(),this.config=e,this.open=A}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let A=document.createElement("span");return A.textContent=this.open?this.config.openText:this.config.closedText,A.title=e.state.phrase(this.open?"Fold line":"Unfold line"),A}};function CnA(t={}){let e=sA(sA({},yNA),t),A=new y3(e,!0),i=new y3(e,!1),n=Bo.fromClass(class{constructor(r){this.from=r.viewport.from,this.markers=this.buildMarkers(r)}update(r){(r.docChanged||r.viewportChanged||r.startState.facet(U1)!=r.state.facet(U1)||r.startState.field(UC,!1)!=r.state.field(UC,!1)||ns(r.startState)!=ns(r.state)||e.foldingChanged(r))&&(this.markers=this.buildMarkers(r.view))}buildMarkers(r){let s=new fs;for(let a of r.viewportLineBlocks){let c=bw(r.state,a.from,a.to)?i:$E(r.state,a.from,a.to)?A:null;c&&s.add(a.from,a.from,c)}return s.finish()}}),{domEventHandlers:o}=e;return[n,Qw({class:"cm-foldGutter",markers(r){var s;return((s=r.plugin(n))===null||s===void 0?void 0:s.markers)||Io.empty},initialSpacer(){return new y3(e,!1)},domEventHandlers:Fe(sA({},o),{click:(r,s,a)=>{if(o.click&&o.click(r,s,a))return!0;let c=bw(r.state,s.from,s.to);if(c)return r.dispatch({effects:b3.of(c)}),!0;let g=$E(r.state,s.from,s.to);return g?(r.dispatch({effects:tQ.of(g)}),!0):!1}})}),lnA()]}var vNA=Pt.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),AQ=class t{constructor(e,A){this.specs=e;let i;function n(s){let a=jc.newName();return(i||(i=Object.create(null)))["."+a]=s,a}let o=typeof A.all=="string"?A.all:A.all?n(A.all):void 0,r=A.scope;this.scope=r instanceof Gg?s=>s.prop(XE)==r.data:r?s=>s==r:void 0,this.style=_F(e.map(s=>({tag:s.tag,class:s.class||n(Object.assign({},s,{tag:null}))})),{all:o}).style,this.module=i?new jc(i):null,this.themeType=A.themeType}static define(e,A){return new t(e,A||{})}},zF=qe.define(),dnA=qe.define({combine(t){return t.length?[t[0]]:null}});function UF(t){let e=t.facet(zF);return e.length?e:t.facet(dnA)}function t_(t,e){let A=[MNA],i;return t instanceof AQ&&(t.module&&A.push(Pt.styleModule.of(t.module)),i=t.themeType),e?.fallback?A.push(dnA.of(t)):i?A.push(zF.computeN([Pt.darkTheme],n=>n.facet(Pt.darkTheme)==(i=="dark")?[t]:[])):A.push(zF.of(t)),A}var PF=class{constructor(e){this.markCache=Object.create(null),this.tree=ns(e.state),this.decorations=this.buildDeco(e,UF(e.state)),this.decoratedTo=e.viewport.to}update(e){let A=ns(e.state),i=UF(e.state),n=i!=UF(e.startState),{viewport:o}=e.view,r=e.changes.mapPos(this.decoratedTo,1);A.length=o.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=r):(A!=this.tree||e.viewportChanged||n)&&(this.tree=A,this.decorations=this.buildDeco(e.view,i),this.decoratedTo=o.to)}buildDeco(e,A){if(!A||!this.tree.length)return ht.none;let i=new fs;for(let{from:n,to:o}of e.visibleRanges)qiA(this.tree,A,(r,s,a)=>{i.add(r,s,this.markCache[a]||(this.markCache[a]=ht.mark({class:a})))},n,o);return i.finish()}},MNA=Ng.high(Bo.fromClass(PF,{decorations:t=>t.decorations})),BnA=AQ.define([{tag:ke.meta,color:"#404740"},{tag:ke.link,textDecoration:"underline"},{tag:ke.heading,textDecoration:"underline",fontWeight:"bold"},{tag:ke.emphasis,fontStyle:"italic"},{tag:ke.strong,fontWeight:"bold"},{tag:ke.strikethrough,textDecoration:"line-through"},{tag:ke.keyword,color:"#708"},{tag:[ke.atom,ke.bool,ke.url,ke.contentSeparator,ke.labelName],color:"#219"},{tag:[ke.literal,ke.inserted],color:"#164"},{tag:[ke.string,ke.deleted],color:"#a11"},{tag:[ke.regexp,ke.escape,ke.special(ke.string)],color:"#e40"},{tag:ke.definition(ke.variableName),color:"#00f"},{tag:ke.local(ke.variableName),color:"#30a"},{tag:[ke.typeName,ke.namespace],color:"#085"},{tag:ke.className,color:"#167"},{tag:[ke.special(ke.variableName),ke.macroName],color:"#256"},{tag:ke.definition(ke.propertyName),color:"#00c"},{tag:ke.comment,color:"#940"},{tag:ke.invalid,color:"#f00"}]),bNA=Pt.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),EnA=1e4,QnA="()[]{}",unA=qe.define({combine(t){return ts(t,{afterCursor:!0,brackets:QnA,maxScanDistance:EnA,renderMatch:RNA})}}),kNA=ht.mark({class:"cm-matchingBracket"}),SNA=ht.mark({class:"cm-nonmatchingBracket"});function RNA(t){let e=[],A=t.matched?kNA:SNA;return e.push(A.range(t.start.from,t.start.to)),t.end&&e.push(A.range(t.end.from,t.end.to)),e}var LNA=tr.define({create(){return ht.none},update(t,e){if(!e.docChanged&&!e.selection)return t;let A=[],i=e.state.facet(unA);for(let n of e.state.selection.ranges){if(!n.empty)continue;let o=Kg(e.state,n.head,-1,i)||n.head>0&&Kg(e.state,n.head-1,1,i)||i.afterCursor&&(Kg(e.state,n.head,1,i)||n.headPt.decorations.from(t)}),xNA=[LNA,bNA];function hnA(t={}){return[unA.of(t),xNA]}var NNA=new di;function jF(t,e,A){let i=t.prop(e<0?di.openedBy:di.closedBy);if(i)return i;if(t.name.length==1){let n=A.indexOf(t.name);if(n>-1&&n%2==(e<0?1:0))return[A[n+e]]}return null}function qF(t){let e=t.type.prop(NNA);return e?e(t.node):t}function Kg(t,e,A,i={}){let n=i.maxScanDistance||EnA,o=i.brackets||QnA,r=ns(t),s=r.resolveInner(e,A);for(let a=s;a;a=a.parent){let c=jF(a.type,A,o);if(c&&a.from0?e>=g.from&&eg.from&&e<=g.to))return FNA(t,e,A,a,g,c,o)}}return _NA(t,e,A,r,s.type,n,o)}function FNA(t,e,A,i,n,o,r){let s=i.parent,a={from:n.from,to:n.to},c=0,g=s?.cursor();if(g&&(A<0?g.childBefore(i.from):g.childAfter(i.to)))do if(A<0?g.to<=i.from:g.from>=i.to){if(c==0&&o.indexOf(g.type.name)>-1&&g.from0)return null;let c={from:A<0?e-1:e,to:A>0?e+1:e},g=t.doc.iterRange(e,A>0?t.doc.length:0),I=0;for(let C=0;!g.next().done&&C<=o;){let d=g.value;A<0&&(C+=d.length);let B=e+C*A;for(let E=A>0?0:d.length-1,u=A>0?d.length:-1;E!=u;E+=A){let h=r.indexOf(d[E]);if(!(h<0||i.resolveInner(B+E,1).type!=n))if(h%2==0==A>0)I++;else{if(I==1)return{start:c,end:{from:B+E,to:B+E+1},matched:h>>1==a>>1};I--}}A>0&&(C+=d.length)}return g.done?{start:c,matched:!1}:null}var GNA=Object.create(null),$iA=[Ks.none];var AnA=[],enA=Object.create(null),KNA=Object.create(null);for(let[t,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])KNA[t]=UNA(GNA,e);function JF(t,e){AnA.indexOf(t)>-1||(AnA.push(t),console.warn(e))}function UNA(t,e){let A=[];for(let s of e.split(" ")){let a=[];for(let c of s.split(".")){let g=t[c]||ke[c];g?typeof g=="function"?a.length?a=a.map(g):JF(c,`Modifier ${c} used at start of tag`):a.length?JF(c,`Tag ${c} used as modifier`):a=Array.isArray(g)?g:[g]:JF(c,`Unknown highlighting tag ${c}`)}for(let c of a)A.push(c)}if(!A.length)return 0;let i=e.replace(/ /g,"_"),n=i+" "+A.map(s=>s.id),o=enA[n];if(o)return o.id;let r=enA[n]=Ks.define({id:$iA.length,name:i,props:[yw({[i]:A})]});return $iA.push(r),r.id}var rDe={rtl:ht.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:Co.RTL}),ltr:ht.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:Co.LTR}),auto:ht.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var JNA=t=>{let{state:e}=t,A=e.doc.lineAt(e.selection.main.from),i=r_(t.state,A.from);return i.line?YNA(t):i.block?HNA(t):!1};function o_(t,e){return({state:A,dispatch:i})=>{if(A.readOnly)return!1;let n=t(e,A);return n?(i(A.update(n)),!0):!1}}var YNA=o_(PNA,0);var TNA=o_(bnA,0);var HNA=o_((t,e)=>bnA(t,e,zNA(e)),0);function r_(t,e){let A=t.languageDataAt("commentTokens",e,1);return A.length?A[0]:{}}var k3=50;function ONA(t,{open:e,close:A},i,n){let o=t.sliceDoc(i-k3,i),r=t.sliceDoc(n,n+k3),s=/\s*$/.exec(o)[0].length,a=/^\s*/.exec(r)[0].length,c=o.length-s;if(o.slice(c-e.length,c)==e&&r.slice(a,a+A.length)==A)return{open:{pos:i-s,margin:s&&1},close:{pos:n+a,margin:a&&1}};let g,I;n-i<=2*k3?g=I=t.sliceDoc(i,n):(g=t.sliceDoc(i,i+k3),I=t.sliceDoc(n-k3,n));let C=/^\s*/.exec(g)[0].length,d=/\s*$/.exec(I)[0].length,B=I.length-d-A.length;return g.slice(C,C+e.length)==e&&I.slice(B,B+A.length)==A?{open:{pos:i+C+e.length,margin:/\s/.test(g.charAt(C+e.length))?1:0},close:{pos:n-d-A.length,margin:/\s/.test(I.charAt(B-1))?1:0}}:null}function zNA(t){let e=[];for(let A of t.selection.ranges){let i=t.doc.lineAt(A.from),n=A.to<=i.to?i:t.doc.lineAt(A.to);n.from>i.from&&n.from==A.to&&(n=A.to==i.to+1?i:t.doc.lineAt(A.to-1));let o=e.length-1;o>=0&&e[o].to>i.from?e[o].to=n.to:e.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:n.to})}return e}function bnA(t,e,A=e.selection.ranges){let i=A.map(o=>r_(e,o.from).block);if(!i.every(o=>o))return null;let n=A.map((o,r)=>ONA(e,i[r],o.from,o.to));if(t!=2&&!n.every(o=>o))return{changes:e.changes(A.map((o,r)=>n[r]?[]:[{from:o.from,insert:i[r].open+" "},{from:o.to,insert:" "+i[r].close}]))};if(t!=1&&n.some(o=>o)){let o=[];for(let r=0,s;rn&&(o==r||r>I.from)){n=I.from;let C=/^\s*/.exec(I.text)[0].length,d=C==I.length,B=I.text.slice(C,C+c.length)==c?C:-1;Co.comment<0&&(!o.empty||o.single))){let o=[];for(let{line:s,token:a,indent:c,empty:g,single:I}of i)(I||!g)&&o.push({from:s.from+c,insert:a+" "});let r=e.changes(o);return{changes:r,selection:e.selection.map(r,1)}}else if(t!=1&&i.some(o=>o.comment>=0)){let o=[];for(let{line:r,comment:s,token:a}of i)if(s>=0){let c=r.from+s,g=c+a.length;r.text[g-r.from]==" "&&g++,o.push({from:c,to:g})}return{changes:o}}return null}function iQ(t,e){return ae.create(t.ranges.map(e),t.mainIndex)}function Wl(t,e){return t.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function Jg({state:t,dispatch:e},A){let i=iQ(t.selection,A);return i.eq(t.selection,!0)?!1:(e(Wl(t,i)),!0)}function Rw(t,e){return ae.cursor(e?t.to:t.from)}function knA(t,e){return Jg(t,A=>A.empty?t.moveByChar(A,e):Rw(A,e))}function Us(t){return t.textDirectionAt(t.state.selection.main.head)==Co.LTR}var SnA=t=>knA(t,!Us(t)),RnA=t=>knA(t,Us(t));function LnA(t,e){return Jg(t,A=>A.empty?t.moveByGroup(A,e):Rw(A,e))}var jNA=t=>LnA(t,!Us(t)),qNA=t=>LnA(t,Us(t));var EDe=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function VNA(t,e,A){if(e.type.prop(A))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function Lw(t,e,A){let i=ns(t).resolveInner(e.head),n=A?di.closedBy:di.openedBy;for(let a=e.head;;){let c=A?i.childAfter(a):i.childBefore(a);if(!c)break;VNA(t,c,n)?i=c:a=A?c.to:c.from}let o=i.type.prop(n),r,s;return o&&(r=A?Kg(t,i.from,1):Kg(t,i.to,-1))&&r.matched?s=A?r.end.to:r.end.from:s=A?i.to:i.from,ae.cursor(s,A?-1:1)}var ZNA=t=>Jg(t,e=>Lw(t.state,e,!Us(t))),WNA=t=>Jg(t,e=>Lw(t.state,e,Us(t)));function xnA(t,e){return Jg(t,A=>{if(!A.empty)return Rw(A,e);let i=t.moveVertically(A,e);return i.head!=A.head?i:t.moveToLineBoundary(A,e)})}var NnA=t=>xnA(t,!1),FnA=t=>xnA(t,!0);function _nA(t){let e=t.scrollDOM.clientHeightr.empty?t.moveVertically(r,e,A.height):Rw(r,e));if(n.eq(i.selection))return!1;let o;if(A.selfScroll){let r=t.coordsAtPos(i.selection.main.head),s=t.scrollDOM.getBoundingClientRect(),a=s.top+A.marginTop,c=s.bottom-A.marginBottom;r&&r.top>a&&r.bottomGnA(t,!1),i_=t=>GnA(t,!0);function J1(t,e,A){let i=t.lineBlockAt(e.head),n=t.moveToLineBoundary(e,A);if(n.head==e.head&&n.head!=(A?i.to:i.from)&&(n=t.moveToLineBoundary(e,A,!1)),!A&&n.head==i.from&&i.length){let o=/^\s*/.exec(t.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;o&&e.head!=i.from+o&&(n=ae.cursor(i.from+o))}return n}var XNA=t=>Jg(t,e=>J1(t,e,!0)),$NA=t=>Jg(t,e=>J1(t,e,!1)),AFA=t=>Jg(t,e=>J1(t,e,!Us(t))),eFA=t=>Jg(t,e=>J1(t,e,Us(t))),tFA=t=>Jg(t,e=>ae.cursor(t.lineBlockAt(e.head).from,1)),iFA=t=>Jg(t,e=>ae.cursor(t.lineBlockAt(e.head).to,-1));function nFA(t,e,A){let i=!1,n=iQ(t.selection,o=>{let r=Kg(t,o.head,-1)||Kg(t,o.head,1)||o.head>0&&Kg(t,o.head-1,1)||o.headnFA(t,e,!1);function Zc(t,e){let A=iQ(t.state.selection,i=>{let n=e(i);return ae.range(i.anchor,n.head,n.goalColumn,n.bidiLevel||void 0)});return A.eq(t.state.selection)?!1:(t.dispatch(Wl(t.state,A)),!0)}function KnA(t,e){return Zc(t,A=>t.moveByChar(A,e))}var UnA=t=>KnA(t,!Us(t)),JnA=t=>KnA(t,Us(t));function YnA(t,e){return Zc(t,A=>t.moveByGroup(A,e))}var rFA=t=>YnA(t,!Us(t)),sFA=t=>YnA(t,Us(t));var aFA=t=>Zc(t,e=>Lw(t.state,e,!Us(t))),cFA=t=>Zc(t,e=>Lw(t.state,e,Us(t)));function TnA(t,e){return Zc(t,A=>t.moveVertically(A,e))}var HnA=t=>TnA(t,!1),OnA=t=>TnA(t,!0);function znA(t,e){return Zc(t,A=>t.moveVertically(A,e,_nA(t).height))}var mnA=t=>znA(t,!1),pnA=t=>znA(t,!0),gFA=t=>Zc(t,e=>J1(t,e,!0)),lFA=t=>Zc(t,e=>J1(t,e,!1)),IFA=t=>Zc(t,e=>J1(t,e,!Us(t))),CFA=t=>Zc(t,e=>J1(t,e,Us(t))),dFA=t=>Zc(t,e=>ae.cursor(t.lineBlockAt(e.head).from)),BFA=t=>Zc(t,e=>ae.cursor(t.lineBlockAt(e.head).to)),DnA=({state:t,dispatch:e})=>(e(Wl(t,{anchor:0})),!0),wnA=({state:t,dispatch:e})=>(e(Wl(t,{anchor:t.doc.length})),!0),ynA=({state:t,dispatch:e})=>(e(Wl(t,{anchor:t.selection.main.anchor,head:0})),!0),vnA=({state:t,dispatch:e})=>(e(Wl(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0),EFA=({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0),QFA=({state:t,dispatch:e})=>{let A=xw(t).map(({from:i,to:n})=>ae.range(i,Math.min(n+1,t.doc.length)));return e(t.update({selection:ae.create(A),userEvent:"select"})),!0},uFA=({state:t,dispatch:e})=>{let A=iQ(t.selection,i=>{let n=ns(t),o=n.resolveStack(i.from,1);if(i.empty){let r=n.resolveStack(i.from,-1);r.node.from>=o.node.from&&r.node.to<=o.node.to&&(o=r)}for(let r=o;r;r=r.next){let{node:s}=r;if((s.from=i.to||s.to>i.to&&s.from<=i.from)&&r.next)return ae.range(s.to,s.from)}return i});return A.eq(t.selection)?!1:(e(Wl(t,A)),!0)},hFA=({state:t,dispatch:e})=>{let A=t.selection,i=null;return A.ranges.length>1?i=ae.create([A.main]):A.main.empty||(i=ae.create([ae.cursor(A.main.head)])),i?(e(Wl(t,i)),!0):!1};function S3(t,e){if(t.state.readOnly)return!1;let A="delete.selection",{state:i}=t,n=i.changeByRange(o=>{let{from:r,to:s}=o;if(r==s){let a=e(o);ar&&(A="delete.forward",a=Sw(t,a,!0)),r=Math.min(r,a),s=Math.max(s,a)}else r=Sw(t,r,!1),s=Sw(t,s,!0);return r==s?{range:o}:{changes:{from:r,to:s},range:ae.cursor(r,rn(t)))i.between(e,e,(n,o)=>{ne&&(e=A?o:n)});return e}var PnA=(t,e,A)=>S3(t,i=>{let n=i.from,{state:o}=t,r=o.doc.lineAt(n),s,a;if(A&&!e&&n>r.from&&nPnA(t,!1,!0);var jnA=t=>PnA(t,!0,!1),qnA=(t,e)=>S3(t,A=>{let i=A.head,{state:n}=t,o=n.doc.lineAt(i),r=n.charCategorizer(i);for(let s=null;;){if(i==(e?o.to:o.from)){i==A.head&&o.number!=(e?n.doc.lines:1)&&(i+=e?1:-1);break}let a=br(o.text,i-o.from,e)+o.from,c=o.text.slice(Math.min(i,a)-o.from,Math.max(i,a)-o.from),g=r(c);if(s!=null&&g!=s)break;(c!=" "||i!=A.head)&&(s=g),i=a}return i}),VnA=t=>qnA(t,!1),fFA=t=>qnA(t,!0),mFA=t=>S3(t,e=>{let A=t.lineBlockAt(e.head).to;return e.headS3(t,e=>{let A=t.moveToLineBoundary(e,!1).head;return e.head>A?A:Math.max(0,e.head-1)}),DFA=t=>S3(t,e=>{let A=t.moveToLineBoundary(e,!0).head;return e.head{if(t.readOnly)return!1;let A=t.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:tn.of(["",""])},range:ae.cursor(i.from)}));return e(t.update(A,{scrollIntoView:!0,userEvent:"input"})),!0},yFA=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let A=t.changeByRange(i=>{if(!i.empty||i.from==0||i.from==t.doc.length)return{range:i};let n=i.from,o=t.doc.lineAt(n),r=n==o.from?n-1:br(o.text,n-o.from,!1)+o.from,s=n==o.to?n+1:br(o.text,n-o.from,!0)+o.from;return{changes:{from:r,to:s,insert:t.doc.slice(n,s).append(t.doc.slice(r,n))},range:ae.cursor(s)}});return A.changes.empty?!1:(e(t.update(A,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function xw(t){let e=[],A=-1;for(let i of t.selection.ranges){let n=t.doc.lineAt(i.from),o=t.doc.lineAt(i.to);if(!i.empty&&i.to==o.from&&(o=t.doc.lineAt(i.to-1)),A>=n.number){let r=e[e.length-1];r.to=o.to,r.ranges.push(i)}else e.push({from:n.from,to:o.to,ranges:[i]});A=o.number+1}return e}function ZnA(t,e,A){if(t.readOnly)return!1;let i=[],n=[];for(let o of xw(t)){if(A?o.to==t.doc.length:o.from==0)continue;let r=t.doc.lineAt(A?o.to+1:o.from-1),s=r.length+1;if(A){i.push({from:o.to,to:r.to},{from:o.from,insert:r.text+t.lineBreak});for(let a of o.ranges)n.push(ae.range(Math.min(t.doc.length,a.anchor+s),Math.min(t.doc.length,a.head+s)))}else{i.push({from:r.from,to:o.from},{from:o.to,insert:t.lineBreak+r.text});for(let a of o.ranges)n.push(ae.range(a.anchor-s,a.head-s))}}return i.length?(e(t.update({changes:i,scrollIntoView:!0,selection:ae.create(n,t.selection.mainIndex),userEvent:"move.line"})),!0):!1}var vFA=({state:t,dispatch:e})=>ZnA(t,e,!1),MFA=({state:t,dispatch:e})=>ZnA(t,e,!0);function WnA(t,e,A){if(t.readOnly)return!1;let i=[];for(let n of xw(t))A?i.push({from:n.from,insert:t.doc.slice(n.from,n.to)+t.lineBreak}):i.push({from:n.to,insert:t.lineBreak+t.doc.slice(n.from,n.to)});return e(t.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}var bFA=({state:t,dispatch:e})=>WnA(t,e,!1),kFA=({state:t,dispatch:e})=>WnA(t,e,!0),SFA=t=>{if(t.state.readOnly)return!1;let{state:e}=t,A=e.changes(xw(e).map(({from:n,to:o})=>(n>0?n--:o{let o;if(t.lineWrapping){let r=t.lineBlockAt(n.head),s=t.coordsAtPos(n.head,n.assoc||1);s&&(o=r.bottom+t.documentTop-s.bottom+t.defaultLineHeight/2)}return t.moveVertically(n,!0,o)}).map(A);return t.dispatch({changes:A,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function RFA(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let A=ns(t).resolveInner(e),i=A.childBefore(e),n=A.childAfter(e),o;return i&&n&&i.to<=e&&n.from>=e&&(o=i.type.prop(di.closedBy))&&o.indexOf(n.name)>-1&&t.doc.lineAt(i.to).from==t.doc.lineAt(n.from).from&&!/\S/.test(t.sliceDoc(i.to,n.from))?{from:i.to,to:n.from}:null}var MnA=XnA(!1),LFA=XnA(!0);function XnA(t){return({state:e,dispatch:A})=>{if(e.readOnly)return!1;let i=e.changeByRange(n=>{let{from:o,to:r}=n,s=e.doc.lineAt(o),a=!t&&o==r&&RFA(e,o);t&&(o=r=(r<=s.to?s:e.doc.lineAt(r)).to);let c=new KC(e,{simulateBreak:o,simulateDoubleBreak:!!a}),g=kw(c,o);for(g==null&&(g=O0(/^\s*/.exec(e.doc.lineAt(o).text)[0],e.tabSize));rs.from&&o{let n=[];for(let r=i.from;r<=i.to;){let s=t.doc.lineAt(r);s.number>A&&(i.empty||i.to>s.from)&&(e(s,n,i),A=s.number),r=s.to+1}let o=t.changes(n);return{changes:n,range:ae.range(o.mapPos(i.anchor,1),o.mapPos(i.head,1))}})}var xFA=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let A=Object.create(null),i=new KC(t,{overrideIndentation:o=>{let r=A[o];return r??-1}}),n=s_(t,(o,r,s)=>{let a=kw(i,o.from);if(a==null)return;/\S/.test(o.text)||(a=0);let c=/^\s*/.exec(o.text)[0],g=eQ(t,a);(c!=g||s.fromt.readOnly?!1:(e(t.update(s_(t,(A,i)=>{i.push({from:A.from,insert:t.facet(JC)})}),{userEvent:"input.indent"})),!0),AoA=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(s_(t,(A,i)=>{let n=/^\s*/.exec(A.text)[0];if(!n)return;let o=O0(n,t.tabSize),r=0,s=eQ(t,Math.max(0,o-Ug(t)));for(;r(t.setTabFocusMode(),!0);var FFA=[{key:"Ctrl-b",run:SnA,shift:UnA,preventDefault:!0},{key:"Ctrl-f",run:RnA,shift:JnA},{key:"Ctrl-p",run:NnA,shift:HnA},{key:"Ctrl-n",run:FnA,shift:OnA},{key:"Ctrl-a",run:tFA,shift:dFA},{key:"Ctrl-e",run:iFA,shift:BFA},{key:"Ctrl-d",run:jnA},{key:"Ctrl-h",run:n_},{key:"Ctrl-k",run:mFA},{key:"Ctrl-Alt-h",run:VnA},{key:"Ctrl-o",run:wFA},{key:"Ctrl-t",run:yFA},{key:"Ctrl-v",run:i_}],_FA=[{key:"ArrowLeft",run:SnA,shift:UnA,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:jNA,shift:rFA,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:AFA,shift:IFA,preventDefault:!0},{key:"ArrowRight",run:RnA,shift:JnA,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:qNA,shift:sFA,preventDefault:!0},{mac:"Cmd-ArrowRight",run:eFA,shift:CFA,preventDefault:!0},{key:"ArrowUp",run:NnA,shift:HnA,preventDefault:!0},{mac:"Cmd-ArrowUp",run:DnA,shift:ynA},{mac:"Ctrl-ArrowUp",run:fnA,shift:mnA},{key:"ArrowDown",run:FnA,shift:OnA,preventDefault:!0},{mac:"Cmd-ArrowDown",run:wnA,shift:vnA},{mac:"Ctrl-ArrowDown",run:i_,shift:pnA},{key:"PageUp",run:fnA,shift:mnA},{key:"PageDown",run:i_,shift:pnA},{key:"Home",run:$NA,shift:lFA,preventDefault:!0},{key:"Mod-Home",run:DnA,shift:ynA},{key:"End",run:XNA,shift:gFA,preventDefault:!0},{key:"Mod-End",run:wnA,shift:vnA},{key:"Enter",run:MnA,shift:MnA},{key:"Mod-a",run:EFA},{key:"Backspace",run:n_,shift:n_},{key:"Delete",run:jnA},{key:"Mod-Backspace",mac:"Alt-Backspace",run:VnA},{key:"Mod-Delete",mac:"Alt-Delete",run:fFA},{mac:"Mod-Backspace",run:pFA},{mac:"Mod-Delete",run:DFA}].concat(FFA.map(t=>({mac:t.key,run:t.run,shift:t.shift}))),eoA=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:ZNA,shift:aFA},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:WNA,shift:cFA},{key:"Alt-ArrowUp",run:vFA},{key:"Shift-Alt-ArrowUp",run:bFA},{key:"Alt-ArrowDown",run:MFA},{key:"Shift-Alt-ArrowDown",run:kFA},{key:"Escape",run:hFA},{key:"Mod-Enter",run:LFA},{key:"Alt-l",mac:"Ctrl-l",run:QFA},{key:"Mod-i",run:uFA,preventDefault:!0},{key:"Mod-[",run:AoA},{key:"Mod-]",run:$nA},{key:"Mod-Alt-\\",run:xFA},{key:"Shift-Mod-k",run:SFA},{key:"Shift-Mod-\\",run:oFA},{key:"Mod-/",run:JNA},{key:"Alt-A",run:TNA},{key:"Ctrl-m",mac:"Shift-Alt-m",run:NFA}].concat(_FA),toA={key:"Tab",run:$nA,shift:AoA};var _w=class{constructor(e,A,i){this.from=e,this.to=A,this.diagnostic=i}},YC=class t{constructor(e,A,i){this.diagnostics=e,this.panel=A,this.selected=i}static init(e,A,i){let n=i.facet(Xl).markerFilter;n&&(e=n(e,i));let o=e.slice().sort((g,I)=>g.from-I.from||g.to-I.to),r=new fs,s=[],a=0;for(let g=0;;){let I=g==o.length?null:o[g];if(!I&&!s.length)break;let C,d;for(s.length?(C=a,d=s.reduce((E,u)=>Math.min(E,u.to),I&&I.from>C?I.from:1e8)):(C=I.from,d=I.to,s.push(I),g++);gE.from||E.to==C))s.push(E),g++,d=Math.min(E.to,d);else{d=Math.min(E.from,d);break}}let B=IoA(s);if(s.some(E=>E.from==E.to||E.from==E.to-1&&i.doc.lineAt(E.from).to==E.from))r.add(C,C,ht.widget({widget:new a_(B),diagnostics:s.slice()}));else{let E=s.reduce((u,h)=>h.markClass?u+" "+h.markClass:u,"");r.add(C,d,ht.mark({class:"cm-lintRange cm-lintRange-"+B+E,diagnostics:s.slice(),inclusiveEnd:s.some(u=>u.to>d)}))}a=d;for(let E=0;E{if(!(e&&r.diagnostics.indexOf(e)<0))if(!i)i=new _w(n,o,e||r.diagnostics[0]);else{if(r.diagnostics.indexOf(i.diagnostic)<0)return!1;i=new _w(i.from,o,i.diagnostic)}}),i}function noA(t,e){let A=e.pos,i=e.end||A,n=t.state.facet(Xl).hideOn(t,A,i);if(n!=null)return n;let o=t.startState.doc.lineAt(e.pos);return!!(t.effects.some(r=>r.is(Uw))||t.changes.touchesRange(o.from,Math.max(o.to,i)))}function ooA(t,e){return t.field(dc,!1)?e:e.concat(Ki.appendConfig.of(doA))}function GFA(t,e){return{effects:ooA(t,[Uw.of(e)])}}var Uw=Ki.define(),g_=Ki.define(),roA=Ki.define(),dc=tr.define({create(){return new YC(ht.none,null,null)},update(t,e){if(e.docChanged&&t.diagnostics.size){let A=t.diagnostics.map(e.changes),i=null,n=t.panel;if(t.selected){let o=e.changes.mapPos(t.selected.from,1);i=nQ(A,t.selected.diagnostic,o)||nQ(A,null,o)}!A.size&&n&&e.state.facet(Xl).autoPanel&&(n=null),t=new YC(A,n,i)}for(let A of e.effects)if(A.is(Uw)){let i=e.state.facet(Xl).autoPanel?A.value.length?R3.open:null:t.panel;t=YC.init(A.value,i,e.state)}else A.is(g_)?t=new YC(t.diagnostics,A.value?R3.open:null,t.selected):A.is(roA)&&(t=new YC(t.diagnostics,t.panel,A.value));return t},provide:t=>[NC.from(t,e=>e.panel),Pt.decorations.from(t,e=>e.diagnostics)]});var KFA=ht.mark({class:"cm-lintRange cm-lintRange-active"});function UFA(t,e,A){let{diagnostics:i}=t.state.field(dc),n,o=-1,r=-1;i.between(e-(A<0?1:0),e+(A>0?1:0),(a,c,{spec:g})=>{if(e>=a&&e<=c&&(a==c||(e>a||A>0)&&(eloA(t,A,!1)))}var JFA=t=>{let e=t.state.field(dc,!1);(!e||!e.panel)&&t.dispatch({effects:ooA(t.state,[g_.of(!0)])});let A=FC(t,R3.open);return A&&A.dom.querySelector(".cm-panel-lint ul").focus(),!0},ioA=t=>{let e=t.state.field(dc,!1);return!e||!e.panel?!1:(t.dispatch({effects:g_.of(!1)}),!0)},YFA=t=>{let e=t.state.field(dc,!1);if(!e)return!1;let A=t.state.selection.main,i=e.diagnostics.iter(A.to+1);return!i.value&&(i=e.diagnostics.iter(0),!i.value||i.from==A.from&&i.to==A.to)?!1:(t.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)};var aoA=[{key:"Mod-Shift-m",run:JFA,preventDefault:!0},{key:"F8",run:YFA}],TFA=Bo.fromClass(class{constructor(t){this.view=t,this.timeout=-1,this.set=!0;let{delay:e}=t.state.facet(Xl);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){clearTimeout(this.timeout);let t=Date.now();if(tPromise.resolve(i(this.view))),i=>{this.view.state.doc==e.doc&&this.view.dispatch(GFA(this.view.state,i.reduce((n,o)=>n.concat(o))))},i=>{is(this.view.state,i)})}}update(t){let e=t.state.facet(Xl);(t.docChanged||e!=t.startState.facet(Xl)||e.needsRefresh&&e.needsRefresh(t))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}});function HFA(t,e,A){let i=[],n=-1;for(let o of t)o.then(r=>{i.push(r),clearTimeout(n),i.length==t.length?e(i):n=setTimeout(()=>e(i),200)},A)}var Xl=qe.define({combine(t){return Object.assign({sources:t.map(e=>e.source).filter(e=>e!=null)},ts(t.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{needsRefresh:(e,A)=>e?A?i=>e(i)||A(i):e:A}))}});function coA(t,e={}){return[Xl.of({source:t,config:e}),TFA,doA]}function goA(t){let e=[];if(t)A:for(let{name:A}of t){for(let i=0;io.toLowerCase()==n.toLowerCase())){e.push(n);continue A}}e.push("")}return e}function loA(t,e,A){var i;let n=A?goA(e.actions):[];return _n("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},_n("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(t):e.message),(i=e.actions)===null||i===void 0?void 0:i.map((o,r)=>{let s=!1,a=C=>{if(C.preventDefault(),s)return;s=!0;let d=nQ(t.state.field(dc).diagnostics,e);d&&o.apply(t,d.from,d.to)},{name:c}=o,g=n[r]?c.indexOf(n[r]):-1,I=g<0?c:[c.slice(0,g),_n("u",c.slice(g,g+1)),c.slice(g+1)];return _n("button",{type:"button",class:"cm-diagnosticAction",onclick:a,onmousedown:a,"aria-label":` Action: ${c}${g<0?"":` (access key "${n[r]})"`}.`},I)}),e.source&&_n("div",{class:"cm-diagnosticSource"},e.source))}var a_=class extends Cc{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return _n("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}},Gw=class{constructor(e,A){this.diagnostic=A,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=loA(e,A,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}},R3=class t{constructor(e){this.view=e,this.items=[];let A=n=>{if(n.keyCode==27)ioA(this.view),this.view.focus();else if(n.keyCode==38||n.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(n.keyCode==40||n.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(n.keyCode==36)this.moveSelection(0);else if(n.keyCode==35)this.moveSelection(this.items.length-1);else if(n.keyCode==13)this.view.focus();else if(n.keyCode>=65&&n.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:o}=this.items[this.selectedIndex],r=goA(o.actions);for(let s=0;s{for(let o=0;oioA(this.view)},"\xD7")),this.update()}get selectedIndex(){let e=this.view.state.field(dc).selected;if(!e)return-1;for(let A=0;A{for(let g of c.diagnostics){if(r.has(g))continue;r.add(g);let I=-1,C;for(let d=i;di&&(this.items.splice(i,I-i),n=!0)),A&&C.diagnostic==A.diagnostic?C.dom.hasAttribute("aria-selected")||(C.dom.setAttribute("aria-selected","true"),o=C):C.dom.hasAttribute("aria-selected")&&C.dom.removeAttribute("aria-selected"),i++}});i({sel:o.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:s,panel:a})=>{let c=a.height/this.list.offsetHeight;s.topa.bottom&&(this.list.scrollTop+=(s.bottom-a.bottom)/c)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),n&&this.sync()}sync(){let e=this.list.firstChild;function A(){let i=e;e=i.nextSibling,i.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)A();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)A()}moveSelection(e){if(this.selectedIndex<0)return;let A=this.view.state.field(dc),i=nQ(A.diagnostics,this.items[e].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:roA.of(i)})}static open(e){return new t(e)}};function Fw(t,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(t)}')`}function Nw(t){return Fw(``,'width="6" height="3"')}var OFA=Pt.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Nw("#d11")},".cm-lintRange-warning":{backgroundImage:Nw("orange")},".cm-lintRange-info":{backgroundImage:Nw("#999")},".cm-lintRange-hint":{backgroundImage:Nw("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function zFA(t){return t=="error"?4:t=="warning"?3:t=="info"?2:1}function IoA(t){let e="hint",A=1;for(let i of t){let n=zFA(i.severity);n>A&&(A=n,e=i.severity)}return e}var Kw=class extends Ga{constructor(e){super(),this.diagnostics=e,this.severity=IoA(e)}toDOM(e){let A=document.createElement("div");A.className="cm-lint-marker cm-lint-marker-"+this.severity;let i=this.diagnostics,n=e.state.facet(Jw).tooltipFilter;return n&&(i=n(i,e.state)),i.length&&(A.onmouseover=()=>jFA(e,A,i)),A}};function PFA(t,e){let A=i=>{let n=e.getBoundingClientRect();if(!(i.clientX>n.left-10&&i.clientXn.top-10&&i.clientYe.getBoundingClientRect()}}})}),e.onmouseout=e.onmousemove=null,PFA(t,e)}let{hoverTime:n}=t.state.facet(Jw),o=setTimeout(i,n);e.onmouseout=()=>{clearTimeout(o),e.onmouseout=e.onmousemove=null},e.onmousemove=()=>{clearTimeout(o),o=setTimeout(i,n)}}function qFA(t,e){let A=Object.create(null);for(let n of e){let o=t.lineAt(n.from);(A[o.from]||(A[o.from]=[])).push(n)}let i=[];for(let n in A)i.push(new Kw(A[n]).range(+n));return Io.of(i,!0)}var VFA=Qw({class:"cm-gutter-lint",markers:t=>t.state.field(c_),widgetMarker:(t,e,A)=>{let i=[];return t.state.field(c_).between(A.from,A.to,(n,o,r)=>{n>A.from&&ni.is(l_)?i.value:A,t)},provide:t=>qE.from(t)}),ZFA=Pt.baseTheme({".cm-gutter-lint":{width:"1.4em","& .cm-gutterElement":{padding:".2em"}},".cm-lint-marker":{width:"1em",height:"1em"},".cm-lint-marker-info":{content:Fw('')},".cm-lint-marker-warning":{content:Fw('')},".cm-lint-marker-error":{content:Fw('')}}),doA=[dc,Pt.decorations.compute([dc],t=>{let{selected:e,panel:A}=t.field(dc);return!e||!A||e.from==e.to?ht.none:ht.set([KFA.range(e.from,e.to)])}),FiA(UFA,{hideOn:noA}),OFA],Jw=qe.define({combine(t){return ts(t,{hoverTime:300,markerFilter:null,tooltipFilter:null})}});function BoA(t={}){return[Jw.of(t),c_,VFA,ZFA,CoA]}var C_=class t{constructor(e,A,i,n,o,r,s,a,c,g=0,I){this.p=e,this.stack=A,this.state=i,this.reducePos=n,this.pos=o,this.score=r,this.buffer=s,this.bufferBase=a,this.curContext=c,this.lookAhead=g,this.parent=I}toString(){return`[${this.stack.filter((e,A)=>A%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,A,i=0){let n=e.parser.context;return new t(e,[],A,i,i,0,[],0,n?new Yw(n,n.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,A){this.stack.push(this.state,A,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var A;let i=e>>19,n=e&65535,{parser:o}=this.p,r=this.reducePos=2e3&&!(!((A=this.p.parser.nodeSet.types[n])===null||A===void 0)&&A.isAnonymous)&&(c==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=g):this.p.lastBigReductionSizea;)this.stack.pop();this.reduceContext(n,c)}storeNode(e,A,i,n=4,o=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&r.buffer[s-4]==0&&r.buffer[s-1]>-1){if(A==i)return;if(r.buffer[s-2]>=A){r.buffer[s-2]=i;return}}}if(!o||this.pos==i)this.buffer.push(e,A,i,n);else{let r=this.buffer.length;if(r>0&&this.buffer[r-4]!=0){let s=!1;for(let a=r;a>0&&this.buffer[a-2]>i;a-=4)if(this.buffer[a-1]>=0){s=!0;break}if(s)for(;r>0&&this.buffer[r-2]>i;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,n>4&&(n-=4)}this.buffer[r]=e,this.buffer[r+1]=A,this.buffer[r+2]=i,this.buffer[r+3]=n}}shift(e,A,i,n){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let o=e,{parser:r}=this.p;(n>this.pos||A<=r.maxNode)&&(this.pos=n,r.stateFlag(o,1)||(this.reducePos=n)),this.pushState(o,i),this.shiftContext(A,i),A<=r.maxNode&&this.buffer.push(A,i,n,4)}else this.pos=n,this.shiftContext(A,i),A<=this.p.parser.maxNode&&this.buffer.push(A,i,n,4)}apply(e,A,i,n){e&65536?this.reduce(e):this.shift(e,A,i,n)}useNode(e,A){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);let n=this.pos;this.reducePos=this.pos=n+e.length,this.pushState(A,n),this.buffer.push(i,n,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,A=e.buffer.length;for(;A>0&&e.buffer[A-2]>e.reducePos;)A-=4;let i=e.buffer.slice(A),n=e.bufferBase+A;for(;e&&n==e.bufferBase;)e=e.parent;return new t(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,n,this.curContext,this.lookAhead,e)}recoverByDelete(e,A){let i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,A,4),this.storeNode(0,this.pos,A,i?8:4),this.pos=this.reducePos=A,this.score-=190}canShift(e){for(let A=new d_(this);;){let i=this.p.parser.stateSlot(A.state,4)||this.p.parser.hasAction(A.state,e);if(i==0)return!1;if((i&65536)==0)return!0;A.reduce(i)}}recoverByInsert(e){if(this.stack.length>=300)return[];let A=this.p.parser.nextStates(this.state);if(A.length>8||this.stack.length>=120){let n=[];for(let o=0,r;oa&1&&s==r)||n.push(A[o],r)}A=n}let i=[];for(let n=0;n>19,n=A&65535,o=this.stack.length-i*3;if(o<0||e.getGoto(this.stack[o],n,!1)<0){let r=this.findForcedReduction();if(r==null)return!1;A=r}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(A),!0}findForcedReduction(){let{parser:e}=this.p,A=[],i=(n,o)=>{if(!A.includes(n))return A.push(n),e.allActions(n,r=>{if(!(r&393216))if(r&65536){let s=(r>>19)-o;if(s>1){let a=r&65535,c=this.stack.length-s*3;if(c>=0&&e.getGoto(this.stack[c],a,!1)>=0)return s<<19|65536|a}}else{let s=i(r,o+1);if(s!=null)return s}})};return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let A=0;Athis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},Yw=class{constructor(e,A){this.tracker=e,this.context=A,this.hash=e.strict?e.hash(A):0}},d_=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let A=e&65535,i=e>>19;i==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(i-1)*3;let n=this.start.p.parser.getGoto(this.stack[this.base-3],A,!0);this.state=n}},B_=class t{constructor(e,A,i){this.stack=e,this.pos=A,this.index=i,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,A=e.bufferBase+e.buffer.length){return new t(e,A,A-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new t(this.stack,this.pos,this.index)}};function L3(t,e=Uint16Array){if(typeof t!="string")return t;let A=null;for(let i=0,n=0;i=92&&r--,r>=34&&r--;let a=r-32;if(a>=46&&(a-=46,s=!0),o+=a,s)break;o*=46}A?A[n++]=o:A=new e(o)}return A}var oQ=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},EoA=new oQ,E_=class{constructor(e,A){this.input=e,this.ranges=A,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=EoA,this.rangeIndex=0,this.pos=this.chunkPos=A[0].from,this.range=A[0],this.end=A[A.length-1].to,this.readNext()}resolveOffset(e,A){let i=this.range,n=this.rangeIndex,o=this.pos+e;for(;oi.to:o>=i.to;){if(n==this.ranges.length-1)return null;let r=this.ranges[++n];o+=r.from-i.to,i=r}return o}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,A.from);return this.end}peek(e){let A=this.chunkOff+e,i,n;if(A>=0&&A=this.chunk2Pos&&is.to&&(this.chunk2=this.chunk2.slice(0,s.to-i)),n=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),n}acceptToken(e,A=0){let i=A?this.resolveOffset(A,-1):this.pos;if(i==null||i=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,A){if(A?(this.token=A,A.start=e,A.lookAhead=e+1,A.value=A.extended=-1):this.token=EoA,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&A<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,A-this.chunkPos);if(e>=this.chunk2Pos&&A<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,A-this.chunk2Pos);if(e>=this.range.from&&A<=this.range.to)return this.input.read(e,A);let i="";for(let n of this.ranges){if(n.from>=A)break;n.to>e&&(i+=this.input.read(Math.max(n.from,e),Math.min(n.to,A)))}return i}},Y1=class{constructor(e,A){this.data=e,this.id=A}token(e,A){let{parser:i}=A.p;moA(this.data,e,A,this.id,i.data,i.tokenPrecTable)}};Y1.prototype.contextual=Y1.prototype.fallback=Y1.prototype.extend=!1;var Q_=class{constructor(e,A,i){this.precTable=A,this.elseToken=i,this.data=typeof e=="string"?L3(e):e}token(e,A){let i=e.pos,n=0;for(;;){let o=e.next<0,r=e.resolveOffset(1,1);if(moA(this.data,e,A,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(o||n++,r==null)break;e.reset(r,e.token)}n&&(e.reset(i,e.token),e.acceptToken(this.elseToken,n))}};Q_.prototype.contextual=Y1.prototype.fallback=Y1.prototype.extend=!1;function moA(t,e,A,i,n,o){let r=0,s=1<0){let B=t[d];if(a.allows(B)&&(e.token.value==-1||e.token.value==B||XFA(B,e.token.value,n,o))){e.acceptToken(B);break}}let g=e.next,I=0,C=t[r+2];if(e.next<0&&C>I&&t[c+C*3-3]==65535){r=t[c+C*3-1];continue A}for(;I>1,B=c+d+(d<<1),E=t[B],u=t[B+1]||65536;if(g=u)I=d+1;else{r=t[B+2],e.advance();continue A}}break}}function QoA(t,e,A){for(let i=e,n;(n=t[i])!=65535;i++)if(n==A)return i-e;return-1}function XFA(t,e,A,i){let n=QoA(A,i,e);return n<0||QoA(A,i,t)e)&&!i.type.isError)return A<0?Math.max(0,Math.min(i.to-1,e-25)):Math.min(t.length,Math.max(i.from+1,e+25));if(A<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return A<0?0:t.length}}var u_=class{constructor(e,A){this.fragments=e,this.nodeSet=A,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?uoA(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?uoA(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=r,null;if(o instanceof wr){if(r==e){if(r=Math.max(this.safeFrom,e)&&(this.trees.push(o),this.start.push(r),this.index.push(0))}else this.index[A]++,this.nextStart=r+o.length}}},h_=class{constructor(e,A){this.stream=A,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(i=>new oQ)}getActions(e){let A=0,i=null,{parser:n}=e.p,{tokenizers:o}=n,r=n.stateSlot(e.state,3),s=e.curContext?e.curContext.hash:0,a=0;for(let c=0;cI.end+25&&(a=Math.max(I.lookAhead,a)),I.value!=0)){let C=A;if(I.extended>-1&&(A=this.addActions(e,I.extended,I.end,A)),A=this.addActions(e,I.value,I.end,A),!g.extend&&(i=I,A>C))break}}for(;this.actions.length>A;)this.actions.pop();return a&&e.setLookAhead(a),!i&&e.pos==this.stream.end&&(i=new oQ,i.value=e.p.parser.eofTerm,i.start=i.end=e.pos,A=this.addActions(e,i.value,i.end,A)),this.mainToken=i,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let A=new oQ,{pos:i,p:n}=e;return A.start=i,A.end=Math.min(i+1,n.stream.end),A.value=i==n.stream.end?n.parser.eofTerm:0,A}updateCachedToken(e,A,i){let n=this.stream.clipPos(i.pos);if(A.token(this.stream.reset(n,e),i),e.value>-1){let{parser:o}=i.p;for(let r=0;r=0&&i.p.parser.dialect.allows(s>>1)){(s&1)==0?e.value=s>>1:e.extended=s>>1;break}}}else e.value=0,e.end=this.stream.clipPos(n+1)}putAction(e,A,i,n){for(let o=0;oe.bufferLength*4?new u_(i,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,A=this.minStackPos,i=this.stacks=[],n,o;if(this.bigReductionCount>300&&e.length==1){let[r]=e;for(;r.forceReduce()&&r.stack.length&&r.stack[r.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let r=0;rA)i.push(s);else{if(this.advanceStack(s,i,e))continue;{n||(n=[],o=[]),n.push(s);let a=this.tokens.getMainToken(s);o.push(a.value,a.end)}}break}}if(!i.length){let r=n&&$FA(n);if(r)return Bc&&console.log("Finish with "+this.stackID(r)),this.stackToTree(r);if(this.parser.strict)throw Bc&&n&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+A);this.recovering||(this.recovering=5)}if(this.recovering&&n){let r=this.stoppedAt!=null&&n[0].pos>this.stoppedAt?n[0]:this.runRecovery(n,o,i);if(r)return Bc&&console.log("Force-finish "+this.stackID(r)),this.stackToTree(r.forceAll())}if(this.recovering){let r=this.recovering==1?1:this.recovering*3;if(i.length>r)for(i.sort((s,a)=>a.score-s.score);i.length>r;)i.pop();i.some(s=>s.reducePos>A)&&this.recovering--}else if(i.length>1){A:for(let r=0;r500&&c.buffer.length>500)if((s.score-c.score||s.buffer.length-c.buffer.length)>0)i.splice(a--,1);else{i.splice(r--,1);continue A}}}i.length>12&&i.splice(12,i.length-12)}this.minStackPos=i[0].pos;for(let r=1;r ":"";if(this.stoppedAt!=null&&n>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,g=c?e.curContext.hash:0;for(let I=this.fragments.nodeAt(n);I;){let C=this.parser.nodeSet.types[I.type.id]==I.type?o.getGoto(e.state,I.type.id):-1;if(C>-1&&I.length&&(!c||(I.prop(di.contextHash)||0)==g))return e.useNode(I,C),Bc&&console.log(r+this.stackID(e)+` (via reuse of ${o.getName(I.type.id)})`),!0;if(!(I instanceof wr)||I.children.length==0||I.positions[0]>0)break;let d=I.children[0];if(d instanceof wr&&I.positions[0]==0)I=d;else break}}let s=o.stateSlot(e.state,4);if(s>0)return e.reduce(s),Bc&&console.log(r+this.stackID(e)+` (via always-reduce ${o.getName(s&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let c=0;cn?A.push(B):i.push(B)}return!1}advanceFully(e,A){let i=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return hoA(e,A),!0}}runRecovery(e,A,i){let n=null,o=!1;for(let r=0;r ":"";if(s.deadEnd&&(o||(o=!0,s.restart(),Bc&&console.log(g+this.stackID(s)+" (restarted)"),this.advanceFully(s,i))))continue;let I=s.split(),C=g;for(let d=0;I.forceReduce()&&d<10&&(Bc&&console.log(C+this.stackID(I)+" (via force-reduce)"),!this.advanceFully(I,i));d++)Bc&&(C=this.stackID(I)+" -> ");for(let d of s.recoverByInsert(a))Bc&&console.log(g+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,i);this.stream.end>s.pos?(c==s.pos&&(c++,a=0),s.recoverByDelete(a,c),Bc&&console.log(g+this.stackID(s)+` (via recover-delete ${this.parser.getName(a)})`),hoA(s,i)):(!n||n.scoree.topRules[s][1]),n=[];for(let s=0;s=0)o(g,a,s[c++]);else{let I=s[c+-g];for(let C=-g;C>0;C--)o(s[c++],a,I);c++}}}this.nodeSet=new h3(A.map((s,a)=>Ks.define({name:a>=this.minRepeatTerm?void 0:s,id:a,props:n[a],top:i.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let r=L3(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let s=0;stypeof s=="number"?new Y1(r,s):s),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,A,i){let n=new f_(this,e,A,i);for(let o of this.wrappers)n=o(n,e,A,i);return n}getGoto(e,A,i=!1){let n=this.goto;if(A>=n[0])return-1;for(let o=n[A+1];;){let r=n[o++],s=r&1,a=n[o++];if(s&&i)return a;for(let c=o+(r>>1);o0}validAction(e,A){return!!this.allActions(e,i=>i==A?!0:null)}allActions(e,A){let i=this.stateSlot(e,4),n=i?A(i):void 0;for(let o=this.stateSlot(e,1);n==null;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=j0(this.data,o+2);else break;n=A(j0(this.data,o+1))}return n}nextStates(e){let A=[];for(let i=this.stateSlot(e,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=j0(this.data,i+2);else break;if((this.data[i+2]&1)==0){let n=this.data[i+1];A.some((o,r)=>r&1&&o==n)||A.push(this.data[i],n)}}return A}configure(e){let A=Object.assign(Object.create(t.prototype),this);if(e.props&&(A.nodeSet=this.nodeSet.extend(...e.props)),e.top){let i=this.topRules[e.top];if(!i)throw new RangeError(`Invalid top rule name ${e.top}`);A.top=i}return e.tokenizers&&(A.tokenizers=this.tokenizers.map(i=>{let n=e.tokenizers.find(o=>o.from==i);return n?n.to:i})),e.specializers&&(A.specializers=this.specializers.slice(),A.specializerSpecs=this.specializerSpecs.map((i,n)=>{let o=e.specializers.find(s=>s.from==i.external);if(!o)return i;let r=Object.assign(Object.assign({},i),{external:o.to});return A.specializers[n]=foA(r),r})),e.contextTracker&&(A.context=e.contextTracker),e.dialect&&(A.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(A.strict=e.strict),e.wrap&&(A.wrappers=A.wrappers.concat(e.wrap)),e.bufferLength!=null&&(A.bufferLength=e.bufferLength),A}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let A=this.dynamicPrecedences;return A==null?0:A[e]||0}parseDialect(e){let A=Object.keys(this.dialects),i=A.map(()=>!1);if(e)for(let o of e.split(" ")){let r=A.indexOf(o);r>=0&&(i[r]=!0)}let n=null;for(let o=0;oi)&&A.p.parser.stateFlag(A.state,2)&&(!e||e.scoret.external(A,i)<<1|e}return t.get}var A_A=yw({String:ke.string,Number:ke.number,"True False":ke.bool,PropertyName:ke.propertyName,Null:ke.null,", :":ke.separator,"[ ]":ke.squareBracket,"{ }":ke.brace}),poA=Tw.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"\u26A0 JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[A_A],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0});var e_A=vw.define({name:"json",parser:poA.configure({props:[ZF.add({Object:WF({except:/^\s*\}/}),Array:WF({except:/^\s*\]/})}),M3.add({"Object Array":onA})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function DoA(){return new Mw(e_A)}var woA=typeof String.prototype.normalize=="function"?t=>t.normalize("NFKD"):t=>t,H1=class{constructor(e,A,i=0,n=e.length,o,r){this.test=r,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,n),this.bufferStart=i,this.normalize=o?s=>o(woA(s)):woA,this.query=this.normalize(A)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return ms(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let A=V4(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=lc(e);let n=this.normalize(A);if(n.length)for(let o=0,r=i;;o++){let s=n.charCodeAt(o),a=this.match(s,r,this.bufferPos+this.bufferStart);if(o==n.length-1){if(a)return this.value=a,this;break}r==i&&othis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let A=this.matchPos<=this.to&&this.re.exec(this.curLine);if(A){let i=this.curLineStart+A.index,n=i+A[0].length;if(this.matchPos=qw(this.text,n+(i==n?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,n,A)))return this.value={from:i,to:n,match:A},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=i||n.to<=A){let s=new t(A,e.sliceString(A,i));return p_.set(e,s),s}if(n.from==A&&n.to==i)return n;let{text:o,from:r}=n;return r>A&&(o=e.sliceString(A,r)+o,r=A),n.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,A=this.re.exec(this.flat.text);if(A&&!A[0]&&A.index==e&&(this.re.lastIndex=e+1,A=this.re.exec(this.flat.text)),A){let i=this.flat.from+A.index,n=i+A[0].length;if((this.flat.to>=this.to||A.index+A[0].length<=this.flat.text.length-10)&&(!this.test||this.test(i,n,A)))return this.value={from:i,to:n,match:A},this.matchPos=qw(this.text,n+(i==n?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Pw.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}};typeof Symbol<"u"&&(zw.prototype[Symbol.iterator]=jw.prototype[Symbol.iterator]=function(){return this});function t_A(t){try{return new RegExp(t,k_),!0}catch{return!1}}function qw(t,e){if(e>=t.length)return e;let A=t.lineAt(e),i;for(;e=56320&&i<57344;)e++;return e}function D_(t){let e=String(t.state.doc.lineAt(t.state.selection.main.head).number),A=_n("input",{class:"cm-textfield",name:"line",value:e}),i=_n("form",{class:"cm-gotoLine",onkeydown:o=>{o.keyCode==27?(o.preventDefault(),t.dispatch({effects:x3.of(!1)}),t.focus()):o.keyCode==13&&(o.preventDefault(),n())},onsubmit:o=>{o.preventDefault(),n()}},_n("label",t.state.phrase("Go to line"),": ",A)," ",_n("button",{class:"cm-button",type:"submit"},t.state.phrase("go")),_n("button",{name:"close",onclick:()=>{t.dispatch({effects:x3.of(!1)}),t.focus()},"aria-label":t.state.phrase("close"),type:"button"},["\xD7"]));function n(){let o=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(A.value);if(!o)return;let{state:r}=t,s=r.doc.lineAt(r.selection.main.head),[,a,c,g,I]=o,C=g?+g.slice(1):0,d=c?+c:s.number;if(c&&I){let u=d/100;a&&(u=u*(a=="-"?-1:1)+s.number/r.doc.lines),d=Math.round(r.doc.lines*u)}else c&&a&&(d=d*(a=="-"?-1:1)+s.number);let B=r.doc.line(Math.max(1,Math.min(r.doc.lines,d))),E=ae.cursor(B.from+Math.max(0,Math.min(C,B.length)));t.dispatch({effects:[x3.of(!1),Pt.scrollIntoView(E.from,{y:"center"})],selection:E}),t.focus()}return{dom:i}}var x3=Ki.define(),yoA=tr.define({create(){return!0},update(t,e){for(let A of e.effects)A.is(x3)&&(t=A.value);return t},provide:t=>NC.from(t,e=>e?D_:null)}),i_A=t=>{let e=FC(t,D_);if(!e){let A=[x3.of(!0)];t.state.field(yoA,!1)==null&&A.push(Ki.appendConfig.of([yoA,n_A])),t.dispatch({effects:A}),e=FC(t,D_)}return e&&e.dom.querySelector("input").select(),!0},n_A=Pt.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px",position:"relative","& label":{fontSize:"80%"},"& [name=close]":{position:"absolute",top:"0",bottom:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:"0"}}}),o_A={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},koA=qe.define({combine(t){return ts(t,o_A,{highlightWordAroundCursor:(e,A)=>e||A,minSelectionLength:Math.min,maxMatches:Math.min})}});function SoA(t){let e=[g_A,c_A];return t&&e.push(koA.of(t)),e}var r_A=ht.mark({class:"cm-selectionMatch"}),s_A=ht.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function voA(t,e,A,i){return(A==0||t(e.sliceDoc(A-1,A))!=lo.Word)&&(i==e.doc.length||t(e.sliceDoc(i,i+1))!=lo.Word)}function a_A(t,e,A,i){return t(e.sliceDoc(A,A+1))==lo.Word&&t(e.sliceDoc(i-1,i))==lo.Word}var c_A=Bo.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.selectionSet||t.docChanged||t.viewportChanged)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=t.state.facet(koA),{state:A}=t,i=A.selection;if(i.ranges.length>1)return ht.none;let n=i.main,o,r=null;if(n.empty){if(!e.highlightWordAroundCursor)return ht.none;let a=A.wordAt(n.head);if(!a)return ht.none;r=A.charCategorizer(n.head),o=A.sliceDoc(a.from,a.to)}else{let a=n.to-n.from;if(a200)return ht.none;if(e.wholeWords){if(o=A.sliceDoc(n.from,n.to),r=A.charCategorizer(n.head),!(voA(r,A,n.from,n.to)&&a_A(r,A,n.from,n.to)))return ht.none}else if(o=A.sliceDoc(n.from,n.to),!o)return ht.none}let s=[];for(let a of t.visibleRanges){let c=new H1(A.doc,o,a.from,a.to);for(;!c.next().done;){let{from:g,to:I}=c.value;if((!r||voA(r,A,g,I))&&(n.empty&&g<=n.from&&I>=n.to?s.push(s_A.range(g,I)):(g>=n.to||I<=n.from)&&s.push(r_A.range(g,I)),s.length>e.maxMatches))return ht.none}}return ht.set(s)}},{decorations:t=>t.decorations}),g_A=Pt.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),l_A=({state:t,dispatch:e})=>{let{selection:A}=t,i=ae.create(A.ranges.map(n=>t.wordAt(n.head)||ae.cursor(n.head)),A.mainIndex);return i.eq(A)?!1:(e(t.update({selection:i})),!0)};function I_A(t,e){let{main:A,ranges:i}=t.selection,n=t.wordAt(A.head),o=n&&n.from==A.from&&n.to==A.to;for(let r=!1,s=new H1(t.doc,e,i[i.length-1].to);;)if(s.next(),s.done){if(r)return null;s=new H1(t.doc,e,0,Math.max(0,i[i.length-1].from-1)),r=!0}else{if(r&&i.some(a=>a.from==s.value.from))continue;if(o){let a=t.wordAt(s.value.from);if(!a||a.from!=s.value.from||a.to!=s.value.to)continue}return s.value}}var C_A=({state:t,dispatch:e})=>{let{ranges:A}=t.selection;if(A.some(o=>o.from===o.to))return l_A({state:t,dispatch:e});let i=t.sliceDoc(A[0].from,A[0].to);if(t.selection.ranges.some(o=>t.sliceDoc(o.from,o.to)!=i))return!1;let n=I_A(t,i);return n?(e(t.update({selection:t.selection.addRange(ae.range(n.from,n.to),!1),effects:Pt.scrollIntoView(n.to)})),!0):!1},TC=qe.define({combine(t){return ts(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new M_(e),scrollToMatch:e=>Pt.scrollIntoView(e)})}});function RoA(t){return t?[TC.of(t),b_]:b_}var Vw=class{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||t_A(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(A,i)=>i=="n"?` -`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new y_(this):new w_(this)}getCursor(e,A=0,i){let n=e.doc?e:Dr.create({doc:e});return i==null&&(i=n.doc.length),this.regexp?sQ(this,n,A,i):rQ(this,n,A,i)}},Zw=class{constructor(e){this.spec=e}};function rQ(t,e,A,i){return new H1(e.doc,t.unquoted,A,i,t.caseSensitive?void 0:n=>n.toLowerCase(),t.wholeWord?d_A(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function d_A(t,e){return(A,i,n,o)=>((o>A||o+n.length=A)return null;n.push(i.value)}return n}highlight(e,A,i,n){let o=rQ(this.spec,e,Math.max(0,A-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!o.next().done;)n(o.value.from,o.value.to)}};function sQ(t,e,A,i){return new zw(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:t.wholeWord?B_A(e.charCategorizer(e.selection.main.head)):void 0},A,i)}function Ww(t,e){return t.slice(br(t,e,!1),e)}function Xw(t,e){return t.slice(e,br(t,e))}function B_A(t){return(e,A,i)=>!i[0].length||(t(Ww(i.input,i.index))!=lo.Word||t(Xw(i.input,i.index))!=lo.Word)&&(t(Xw(i.input,i.index+i[0].length))!=lo.Word||t(Ww(i.input,i.index+i[0].length))!=lo.Word)}var y_=class extends Zw{nextMatch(e,A,i){let n=sQ(this.spec,e,i,e.doc.length).next();return n.done&&(n=sQ(this.spec,e,0,A).next()),n.done?null:n.value}prevMatchInRange(e,A,i){for(let n=1;;n++){let o=Math.max(A,i-n*1e4),r=sQ(this.spec,e,o,i),s=null;for(;!r.next().done;)s=r.value;if(s&&(o==A||s.from>o+10))return s;if(o==A)return null}}prevMatch(e,A,i){return this.prevMatchInRange(e,0,A)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(A,i)=>{if(i=="&")return e.match[0];if(i=="$")return"$";for(let n=i.length;n>0;n--){let o=+i.slice(0,n);if(o>0&&o=A)return null;n.push(i.value)}return n}highlight(e,A,i,n){let o=sQ(this.spec,e,Math.max(0,A-250),Math.min(i+250,e.doc.length));for(;!o.next().done;)n(o.value.from,o.value.to)}},F3=Ki.define(),S_=Ki.define(),T1=tr.define({create(t){return new N3(v_(t).create(),null)},update(t,e){for(let A of e.effects)A.is(F3)?t=new N3(A.value.create(),t.panel):A.is(S_)&&(t=new N3(t.query,A.value?R_:null));return t},provide:t=>NC.from(t,e=>e.panel)});var N3=class{constructor(e,A){this.query=e,this.panel=A}},E_A=ht.mark({class:"cm-searchMatch"}),Q_A=ht.mark({class:"cm-searchMatch cm-searchMatch-selected"}),u_A=Bo.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(T1))}update(t){let e=t.state.field(T1);(e!=t.startState.field(T1)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return ht.none;let{view:A}=this,i=new fs;for(let n=0,o=A.visibleRanges,r=o.length;no[n+1].from-2*250;)a=o[++n].to;t.highlight(A.state,s,a,(c,g)=>{let I=A.state.selection.ranges.some(C=>C.from==c&&C.to==g);i.add(c,g,I?Q_A:E_A)})}return i.finish()}},{decorations:t=>t.decorations});function _3(t){return e=>{let A=e.state.field(T1,!1);return A&&A.query.spec.valid?t(e,A):ey(e)}}var $w=_3((t,{query:e})=>{let{to:A}=t.state.selection.main,i=e.nextMatch(t.state,A,A);if(!i)return!1;let n=ae.single(i.from,i.to),o=t.state.facet(TC);return t.dispatch({selection:n,effects:[L_(t,i),o.scrollToMatch(n.main,t)],userEvent:"select.search"}),xoA(t),!0}),Ay=_3((t,{query:e})=>{let{state:A}=t,{from:i}=A.selection.main,n=e.prevMatch(A,i,i);if(!n)return!1;let o=ae.single(n.from,n.to),r=t.state.facet(TC);return t.dispatch({selection:o,effects:[L_(t,n),r.scrollToMatch(o.main,t)],userEvent:"select.search"}),xoA(t),!0}),h_A=_3((t,{query:e})=>{let A=e.matchAll(t.state,1e3);return!A||!A.length?!1:(t.dispatch({selection:ae.create(A.map(i=>ae.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),f_A=({state:t,dispatch:e})=>{let A=t.selection;if(A.ranges.length>1||A.main.empty)return!1;let{from:i,to:n}=A.main,o=[],r=0;for(let s=new H1(t.doc,t.sliceDoc(i,n));!s.next().done;){if(o.length>1e3)return!1;s.value.from==i&&(r=o.length),o.push(ae.range(s.value.from,s.value.to))}return e(t.update({selection:ae.create(o,r),userEvent:"select.search.matches"})),!0},MoA=_3((t,{query:e})=>{let{state:A}=t,{from:i,to:n}=A.selection.main;if(A.readOnly)return!1;let o=e.nextMatch(A,i,i);if(!o)return!1;let r=o,s=[],a,c,g=[];r.from==i&&r.to==n&&(c=A.toText(e.getReplacement(r)),s.push({from:r.from,to:r.to,insert:c}),r=e.nextMatch(A,r.from,r.to),g.push(Pt.announce.of(A.phrase("replaced match on line $",A.doc.lineAt(i).number)+".")));let I=t.state.changes(s);return r&&(a=ae.single(r.from,r.to).map(I),g.push(L_(t,r)),g.push(A.facet(TC).scrollToMatch(a.main,t))),t.dispatch({changes:I,selection:a,effects:g,userEvent:"input.replace"}),!0}),m_A=_3((t,{query:e})=>{if(t.state.readOnly)return!1;let A=e.matchAll(t.state,1e9).map(n=>{let{from:o,to:r}=n;return{from:o,to:r,insert:e.getReplacement(n)}});if(!A.length)return!1;let i=t.state.phrase("replaced $ matches",A.length)+".";return t.dispatch({changes:A,effects:Pt.announce.of(i),userEvent:"input.replace.all"}),!0});function R_(t){return t.state.facet(TC).createPanel(t)}function v_(t,e){var A,i,n,o,r;let s=t.selection.main,a=s.empty||s.to>s.from+100?"":t.sliceDoc(s.from,s.to);if(e&&!a)return e;let c=t.facet(TC);return new Vw({search:((A=e?.literal)!==null&&A!==void 0?A:c.literal)?a:a.replace(/\n/g,"\\n"),caseSensitive:(i=e?.caseSensitive)!==null&&i!==void 0?i:c.caseSensitive,literal:(n=e?.literal)!==null&&n!==void 0?n:c.literal,regexp:(o=e?.regexp)!==null&&o!==void 0?o:c.regexp,wholeWord:(r=e?.wholeWord)!==null&&r!==void 0?r:c.wholeWord})}function LoA(t){let e=FC(t,R_);return e&&e.dom.querySelector("[main-field]")}function xoA(t){let e=LoA(t);e&&e==t.root.activeElement&&e.select()}var ey=t=>{let e=t.state.field(T1,!1);if(e&&e.panel){let A=LoA(t);if(A&&A!=t.root.activeElement){let i=v_(t.state,e.query.spec);i.valid&&t.dispatch({effects:F3.of(i)}),A.focus(),A.select()}}else t.dispatch({effects:[S_.of(!0),e?F3.of(v_(t.state,e.query.spec)):Ki.appendConfig.of(b_)]});return!0},ty=t=>{let e=t.state.field(T1,!1);if(!e||!e.panel)return!1;let A=FC(t,R_);return A&&A.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:S_.of(!1)}),!0},NoA=[{key:"Mod-f",run:ey,scope:"editor search-panel"},{key:"F3",run:$w,shift:Ay,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:$w,shift:Ay,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:ty,scope:"editor search-panel"},{key:"Mod-Shift-l",run:f_A},{key:"Mod-Alt-g",run:i_A},{key:"Mod-d",run:C_A,preventDefault:!0}],M_=class{constructor(e){this.view=e;let A=this.query=e.state.field(T1).query.spec;this.commit=this.commit.bind(this),this.searchField=_n("input",{value:A.search,placeholder:Ec(e,"Find"),"aria-label":Ec(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=_n("input",{value:A.replace,placeholder:Ec(e,"Replace"),"aria-label":Ec(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=_n("input",{type:"checkbox",name:"case",form:"",checked:A.caseSensitive,onchange:this.commit}),this.reField=_n("input",{type:"checkbox",name:"re",form:"",checked:A.regexp,onchange:this.commit}),this.wordField=_n("input",{type:"checkbox",name:"word",form:"",checked:A.wholeWord,onchange:this.commit});function i(n,o,r){return _n("button",{class:"cm-button",name:n,onclick:o,type:"button"},r)}this.dom=_n("div",{onkeydown:n=>this.keydown(n),class:"cm-search"},[this.searchField,i("next",()=>$w(e),[Ec(e,"next")]),i("prev",()=>Ay(e),[Ec(e,"previous")]),i("select",()=>h_A(e),[Ec(e,"all")]),_n("label",null,[this.caseField,Ec(e,"match case")]),_n("label",null,[this.reField,Ec(e,"regexp")]),_n("label",null,[this.wordField,Ec(e,"by word")]),...e.state.readOnly?[]:[_n("br"),this.replaceField,i("replace",()=>MoA(e),[Ec(e,"replace")]),i("replaceAll",()=>m_A(e),[Ec(e,"replace all")])],_n("button",{name:"close",onclick:()=>ty(e),"aria-label":Ec(e,"close"),type:"button"},["\xD7"])])}commit(){let e=new Vw({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:F3.of(e)}))}keydown(e){DiA(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?Ay:$w)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),MoA(this.view))}update(e){for(let A of e.transactions)for(let i of A.effects)i.is(F3)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(TC).top}};function Ec(t,e){return t.state.phrase(e)}var Hw=30,Ow=/[\s\.,:;?!]/;function L_(t,{from:e,to:A}){let i=t.state.doc.lineAt(e),n=t.state.doc.lineAt(A).to,o=Math.max(i.from,e-Hw),r=Math.min(n,A+Hw),s=t.state.sliceDoc(o,r);if(o!=i.from){for(let a=0;as.length-Hw;a--)if(!Ow.test(s[a-1])&&Ow.test(s[a])){s=s.slice(0,a);break}}return Pt.announce.of(`${t.state.phrase("current match")}. ${s} ${t.state.phrase("on line")} ${i.number}.`)}var p_A=Pt.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),b_=[T1,Ng.low(u_A),p_A];var ny=class{constructor(e,A,i,n){this.state=e,this.pos=A,this.explicit=i,this.view=n,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let A=ns(this.state).resolveInner(this.pos,-1);for(;A&&e.indexOf(A.name)<0;)A=A.parent;return A?{from:A.from,to:this.pos,text:this.state.sliceDoc(A.from,this.pos),type:A.type}:null}matchBefore(e){let A=this.state.doc.lineAt(this.pos),i=Math.max(A.from,this.pos-250),n=A.text.slice(i-A.from,this.pos-A.from),o=n.search(ToA(e,!1));return o<0?null:{from:i+o,to:this.pos,text:n.slice(o)}}get aborted(){return this.abortListeners==null}addEventListener(e,A,i){e=="abort"&&this.abortListeners&&(this.abortListeners.push(A),i&&i.onDocChange&&(this.abortOnDocChange=!0))}};function FoA(t){let e=Object.keys(t).join(""),A=/\w/.test(e);return A&&(e=e.replace(/\w/g,"")),`[${A?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function D_A(t){let e=Object.create(null),A=Object.create(null);for(let{label:n}of t){e[n[0]]=!0;for(let o=1;otypeof n=="string"?{label:n}:n),[A,i]=e.every(n=>/^\w+$/.test(n.label))?[/\w*$/,/\w+$/]:D_A(e);return n=>{let o=n.matchBefore(i);return o||n.explicit?{from:o?o.from:n.pos,options:e,validFor:A}:null}}var oy=class{constructor(e,A,i,n){this.completion=e,this.source=A,this.match=i,this.score=n}};function OC(t){return t.selection.main.from}function ToA(t,e){var A;let{source:i}=t,n=e&&i[0]!="^",o=i[i.length-1]!="$";return!n&&!o?t:new RegExp(`${n?"^":""}(?:${i})${o?"$":""}`,(A=t.flags)!==null&&A!==void 0?A:t.ignoreCase?"i":"")}var HoA=Fa.define();function y_A(t,e,A,i){let{main:n}=t.selection,o=A-n.from,r=i-n.from;return Fe(sA({},t.changeByRange(s=>{if(s!=n&&A!=i&&t.sliceDoc(s.from+o,s.from+r)!=t.sliceDoc(A,i))return{range:s};let a=t.toText(e);return{changes:{from:s.from+o,to:i==n.from?s.to:s.from+r,insert:a},range:ae.cursor(s.from+o+a.length)}})),{scrollIntoView:!0,userEvent:"input.complete"})}var _oA=new WeakMap;function v_A(t){if(!Array.isArray(t))return t;let e=_oA.get(t);return e||_oA.set(t,e=w_A(t)),e}var ry=Ki.define(),G3=Ki.define(),__=class{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let A=0;A=48&&D<=57||D>=97&&D<=122?2:D>=65&&D<=90?1:0:(G=V4(D))!=G.toLowerCase()?1:G!=G.toUpperCase()?2:0;(!w||J==1&&u||R==0&&J!=0)&&(A[I]==D||i[I]==D&&(C=!0)?r[I++]=w:r.length&&(h=!1)),R=J,w+=lc(D)}return I==a&&r[0]==0&&h?this.result(-100+(C?-200:0),r,e):d==a&&B==0?this.ret(-200-e.length+(E==e.length?0:-100),[0,E]):s>-1?this.ret(-700-e.length,[s,s+this.pattern.length]):d==a?this.ret(-900-e.length,[B,E]):I==a?this.result(-100+(C?-200:0)+-700+(h?0:-1100),r,e):A.length==2?null:this.result((n[0]?-700:0)+-200+-1100,n,e)}result(e,A,i){let n=[],o=0;for(let r of A){let s=r+(this.astral?lc(ms(i,r)):1);o&&n[o-1]==r?n[o-1]=s:(n[o++]=r,n[o++]=s)}return this.ret(e-i.length,n)}},G_=class{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:M_A,filterStrict:!1,compareCompletions:(e,A)=>e.label.localeCompare(A.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,A)=>e&&A,closeOnBlur:(e,A)=>e&&A,icons:(e,A)=>e&&A,tooltipClass:(e,A)=>i=>GoA(e(i),A(i)),optionClass:(e,A)=>i=>GoA(e(i),A(i)),addToOptions:(e,A)=>e.concat(A),filterStrict:(e,A)=>e||A})}});function GoA(t,e){return t?e?t+" "+e:t:e}function M_A(t,e,A,i,n,o){let r=t.textDirection==Co.RTL,s=r,a=!1,c="top",g,I,C=e.left-n.left,d=n.right-e.right,B=i.right-i.left,E=i.bottom-i.top;if(s&&C=E||w>e.top?g=A.bottom-e.top:(c="bottom",g=e.bottom-A.top)}let u=(e.bottom-e.top)/o.offsetHeight,h=(e.right-e.left)/o.offsetWidth;return{style:`${c}: ${g/u}px; max-width: ${I/h}px`,class:"cm-completionInfo-"+(a?r?"left-narrow":"right-narrow":s?"left":"right")}}function b_A(t){let e=t.addToOptions.slice();return t.icons&&e.push({render(A){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),A.type&&i.classList.add(...A.type.split(/\s+/g).map(n=>"cm-completionIcon-"+n)),i.setAttribute("aria-hidden","true"),i},position:20}),e.push({render(A,i,n,o){let r=document.createElement("span");r.className="cm-completionLabel";let s=A.displayLabel||A.label,a=0;for(let c=0;ca&&r.appendChild(document.createTextNode(s.slice(a,g)));let C=r.appendChild(document.createElement("span"));C.appendChild(document.createTextNode(s.slice(g,I))),C.className="cm-completionMatchedText",a=I}return aA.position-i.position).map(A=>A.render)}function x_(t,e,A){if(t<=A)return{from:0,to:t};if(e<0&&(e=0),e<=t>>1){let n=Math.floor(e/A);return{from:n*A,to:(n+1)*A}}let i=Math.floor((t-e)/A);return{from:t-(i+1)*A,to:t-i*A}}var K_=class{constructor(e,A,i){this.view=e,this.stateField=A,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:a=>this.placeInfo(a),key:this},this.space=null,this.currentClass="";let n=e.state.field(A),{options:o,selected:r}=n.open,s=e.state.facet(os);this.optionContent=b_A(s),this.optionClass=s.optionClass,this.tooltipClass=s.tooltipClass,this.range=x_(o.length,r,s.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",a=>{let{options:c}=e.state.field(A).open;for(let g=a.target,I;g&&g!=this.dom;g=g.parentNode)if(g.nodeName=="LI"&&(I=/-(\d+)$/.exec(g.id))&&+I[1]{let c=e.state.field(this.stateField,!1);c&&c.tooltip&&e.state.facet(os).closeOnBlur&&a.relatedTarget!=e.contentDOM&&e.dispatch({effects:G3.of(null)})}),this.showOptions(o,n.id)}mount(){this.updateSel()}showOptions(e,A){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,A,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var A;let i=e.state.field(this.stateField),n=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),i!=n){let{options:o,selected:r,disabled:s}=i.open;(!n.open||n.open.options!=o)&&(this.range=x_(o.length,r,e.state.facet(os).maxRenderedOptions),this.showOptions(o,i.id)),this.updateSel(),s!=((A=n.open)===null||A===void 0?void 0:A.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!s)}}updateTooltipClass(e){let A=this.tooltipClass(e);if(A!=this.currentClass){for(let i of this.currentClass.split(" "))i&&this.dom.classList.remove(i);for(let i of A.split(" "))i&&this.dom.classList.add(i);this.currentClass=A}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),A=e.open;if((A.selected>-1&&A.selected=this.range.to)&&(this.range=x_(A.options.length,A.selected,this.view.state.facet(os).maxRenderedOptions),this.showOptions(A.options,e.id)),this.updateSelectedOption(A.selected)){this.destroyInfo();let{completion:i}=A.options[A.selected],{info:n}=i;if(!n)return;let o=typeof n=="string"?document.createTextNode(n):n(i);if(!o)return;"then"in o?o.then(r=>{r&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(r,i)}).catch(r=>is(this.view.state,r,"completion info")):this.addInfoPane(o,i)}}addInfoPane(e,A){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",e.nodeType!=null)i.appendChild(e),this.infoDestroy=null;else{let{dom:n,destroy:o}=e;i.appendChild(n),this.infoDestroy=o||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let A=null;for(let i=this.list.firstChild,n=this.range.from;i;i=i.nextSibling,n++)i.nodeName!="LI"||!i.id?n--:n==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),A=i):i.hasAttribute("aria-selected")&&i.removeAttribute("aria-selected");return A&&S_A(this.list,A),A}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let A=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),n=e.getBoundingClientRect(),o=this.space;if(!o){let r=this.dom.ownerDocument.documentElement;o={left:0,top:0,right:r.clientWidth,bottom:r.clientHeight}}return n.top>Math.min(o.bottom,A.bottom)-10||n.bottom{r.target==n&&r.preventDefault()});let o=null;for(let r=i.from;ri.from||i.from==0))if(o=C,typeof c!="string"&&c.header)n.appendChild(c.header(c));else{let d=n.appendChild(document.createElement("completion-section"));d.textContent=C}}let g=n.appendChild(document.createElement("li"));g.id=A+"-"+r,g.setAttribute("role","option");let I=this.optionClass(s);I&&(g.className=I);for(let C of this.optionContent){let d=C(s,this.view.state,this.view,a);d&&g.appendChild(d)}}return i.from&&n.classList.add("cm-completionListIncompleteTop"),i.tonew K_(A,t,e)}function S_A(t,e){let A=t.getBoundingClientRect(),i=e.getBoundingClientRect(),n=A.height/t.offsetHeight;i.topA.bottom&&(t.scrollTop+=(i.bottom-A.bottom)/n)}function KoA(t){return(t.boost||0)*100+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}function R_A(t,e){let A=[],i=null,n=c=>{A.push(c);let{section:g}=c.completion;if(g){i||(i=[]);let I=typeof g=="string"?g:g.name;i.some(C=>C.name==I)||i.push(typeof g=="string"?{name:I}:g)}},o=e.facet(os);for(let c of t)if(c.hasResult()){let g=c.result.getMatch;if(c.result.filter===!1)for(let I of c.result.options)n(new oy(I,c.source,g?g(I):[],1e9-A.length));else{let I=e.sliceDoc(c.from,c.to),C,d=o.filterStrict?new G_(I):new __(I);for(let B of c.result.options)if(C=d.match(B.label)){let E=B.displayLabel?g?g(B,C.matched):[]:C.matched;n(new oy(B,c.source,E,C.score+(B.boost||0)))}}}if(i){let c=Object.create(null),g=0,I=(C,d)=>{var B,E;return((B=C.rank)!==null&&B!==void 0?B:1e9)-((E=d.rank)!==null&&E!==void 0?E:1e9)||(C.nameI.score-g.score||a(g.completion,I.completion))){let g=c.completion;!s||s.label!=g.label||s.detail!=g.detail||s.type!=null&&g.type!=null&&s.type!=g.type||s.apply!=g.apply||s.boost!=g.boost?r.push(c):KoA(c.completion)>KoA(s)&&(r[r.length-1]=c),s=c.completion}return r}var U_=class t{constructor(e,A,i,n,o,r){this.options=e,this.attrs=A,this.tooltip=i,this.timestamp=n,this.selected=o,this.disabled=r}setSelected(e,A){return e==this.selected||e>=this.options.length?this:new t(this.options,UoA(A,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,A,i,n,o,r){if(n&&!r&&e.some(c=>c.isPending))return n.setDisabled();let s=R_A(e,A);if(!s.length)return n&&e.some(c=>c.isPending)?n.setDisabled():null;let a=A.facet(os).selectOnOpen?0:-1;if(n&&n.selected!=a&&n.selected!=-1){let c=n.options[n.selected].completion;for(let g=0;gg.hasResult()?Math.min(c,g.from):c,1e8),create:G_A,above:o.aboveCursor},n?n.timestamp:Date.now(),a,!1)}map(e){return new t(this.options,this.attrs,Fe(sA({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}setDisabled(){return new t(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}},J_=class t{constructor(e,A,i){this.active=e,this.id=A,this.open=i}static start(){return new t(F_A,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:A}=e,i=A.facet(os),o=(i.override||A.languageDataAt("autocomplete",OC(A)).map(v_A)).map(a=>(this.active.find(g=>g.source==a)||new q0(a,this.active.some(g=>g.state!=0)?1:0)).update(e,i));o.length==this.active.length&&o.every((a,c)=>a==this.active[c])&&(o=this.active);let r=this.open,s=e.effects.some(a=>a.is(T_));r&&e.docChanged&&(r=r.map(e.changes)),e.selection||o.some(a=>a.hasResult()&&e.changes.touchesRange(a.from,a.to))||!L_A(o,this.active)||s?r=U_.build(o,A,this.id,r,i,s):r&&r.disabled&&!o.some(a=>a.isPending)&&(r=null),!r&&o.every(a=>!a.isPending)&&o.some(a=>a.hasResult())&&(o=o.map(a=>a.hasResult()?new q0(a.source,0):a));for(let a of e.effects)a.is(zoA)&&(r=r&&r.setSelected(a.value,this.id));return o==this.active&&r==this.open?this:new t(o,this.id,r)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?x_A:N_A}};function L_A(t,e){if(t==e)return!0;for(let A=0,i=0;;){for(;A-1&&(A["aria-activedescendant"]=t+"-"+e),A}var F_A=[];function OoA(t,e){if(t.isUserEvent("input.complete")){let i=t.annotation(HoA);if(i&&e.activateOnCompletion(i))return 12}let A=t.isUserEvent("input.type");return A&&e.activateOnTyping?5:A?1:t.isUserEvent("delete.backward")?2:t.selection?8:t.docChanged?16:0}var q0=class t{constructor(e,A,i=!1){this.source=e,this.state=A,this.explicit=i}hasResult(){return!1}get isPending(){return this.state==1}update(e,A){let i=OoA(e,A),n=this;(i&8||i&16&&this.touches(e))&&(n=new t(n.source,0)),i&4&&n.state==0&&(n=new t(this.source,1)),n=n.updateFor(e,i);for(let o of e.effects)if(o.is(ry))n=new t(n.source,1,o.value);else if(o.is(G3))n=new t(n.source,0);else if(o.is(T_))for(let r of o.value)r.source==n.source&&(n=r);return n}updateFor(e,A){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(OC(e.state))}},sy=class t extends q0{constructor(e,A,i,n,o,r){super(e,3,A),this.limit=i,this.result=n,this.from=o,this.to=r}hasResult(){return!0}updateFor(e,A){var i;if(!(A&3))return this.map(e.changes);let n=this.result;n.map&&!e.changes.empty&&(n=n.map(n,e.changes));let o=e.changes.mapPos(this.from),r=e.changes.mapPos(this.to,1),s=OC(e.state);if(s>r||!n||A&2&&(OC(e.startState)==this.from||sA.map(e))}}),zoA=Ki.define(),Ka=tr.define({create(){return J_.start()},update(t,e){return t.update(e)},provide:t=>[qE.from(t,e=>e.tooltip),Pt.contentAttributes.from(t,e=>e.attrs)]});function H_(t,e){let A=e.completion.apply||e.completion.label,i=t.state.field(Ka).active.find(n=>n.source==e.source);return i instanceof sy?(typeof A=="string"?t.dispatch(Fe(sA({},y_A(t.state,A,i.from,i.to)),{annotations:HoA.of(e.completion)})):A(t,e.completion,i.from,i.to),!0):!1}var G_A=k_A(Ka,H_);function iy(t,e="option"){return A=>{let i=A.state.field(Ka,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp-1?i.open.selected+n*(t?1:-1):t?0:r-1;return s<0?s=e=="page"?0:r-1:s>=r&&(s=e=="page"?r-1:0),A.dispatch({effects:zoA.of(s)}),!0}}var K_A=t=>{let e=t.state.field(Ka,!1);return t.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampt.state.field(Ka,!1)?(t.dispatch({effects:ry.of(!0)}),!0):!1,U_A=t=>{let e=t.state.field(Ka,!1);return!e||!e.active.some(A=>A.state!=0)?!1:(t.dispatch({effects:G3.of(null)}),!0)},Y_=class{constructor(e,A){this.active=e,this.context=A,this.time=Date.now(),this.updates=[],this.done=void 0}},J_A=50,Y_A=1e3,T_A=Bo.fromClass(class{constructor(t){this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of t.state.field(Ka).active)e.isPending&&this.startQuery(e)}update(t){let e=t.state.field(Ka),A=t.state.facet(os);if(!t.selectionSet&&!t.docChanged&&t.startState.field(Ka)==e)return;let i=t.transactions.some(o=>{let r=OoA(o,A);return r&8||(o.selection||o.docChanged)&&!(r&3)});for(let o=0;oJ_A&&Date.now()-r.time>Y_A){for(let s of r.context.abortListeners)try{s()}catch(a){is(this.view.state,a)}r.context.abortListeners=null,this.running.splice(o--,1)}else r.updates.push(...t.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),t.transactions.some(o=>o.effects.some(r=>r.is(ry)))&&(this.pendingStart=!0);let n=this.pendingStart?50:A.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(o=>o.isPending&&!this.running.some(r=>r.active.source==o.source))?setTimeout(()=>this.startUpdate(),n):-1,this.composing!=0)for(let o of t.transactions)o.isUserEvent("input.type")?this.composing=2:this.composing==2&&o.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:t}=this.view,e=t.field(Ka);for(let A of e.active)A.isPending&&!this.running.some(i=>i.active.source==A.source)&&this.startQuery(A);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(os).updateSyncTime))}startQuery(t){let{state:e}=this.view,A=OC(e),i=new ny(e,A,t.explicit,this.view),n=new Y_(t,i);this.running.push(n),Promise.resolve(t.source(i)).then(o=>{n.context.aborted||(n.done=o||null,this.scheduleAccept())},o=>{this.view.dispatch({effects:G3.of(null)}),is(this.view.state,o)})}scheduleAccept(){this.running.every(t=>t.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(os).updateSyncTime))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],A=this.view.state.facet(os),i=this.view.state.field(Ka);for(let n=0;ns.source==o.active.source);if(r&&r.isPending)if(o.done==null){let s=new q0(o.active.source,0);for(let a of o.updates)s=s.update(a,A);s.isPending||e.push(s)}else this.startQuery(r)}(e.length||i.open&&i.open.disabled)&&this.view.dispatch({effects:T_.of(e)})}},{eventHandlers:{blur(t){let e=this.view.state.field(Ka,!1);if(e&&e.tooltip&&this.view.state.facet(os).closeOnBlur){let A=e.open&&yF(this.view,e.open.tooltip);(!A||!A.dom.contains(t.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:G3.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:ry.of(!1)}),20),this.composing=0}}}),H_A=typeof navigator=="object"&&/Win/.test(navigator.platform),O_A=Ng.highest(Pt.domEventHandlers({keydown(t,e){let A=e.state.field(Ka,!1);if(!A||!A.open||A.open.disabled||A.open.selected<0||t.key.length>1||t.ctrlKey&&!(H_A&&t.altKey)||t.metaKey)return!1;let i=A.open.options[A.open.selected],n=A.active.find(r=>r.source==i.source),o=i.completion.commitCharacters||n.result.commitCharacters;return o&&o.indexOf(t.key)>-1&&H_(e,i),!1}})),z_A=Pt.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});var K3={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},HC=Ki.define({map(t,e){let A=e.mapPos(t,-1,us.TrackAfter);return A??void 0}}),O_=new class extends xg{};O_.startSide=1;O_.endSide=-1;var PoA=tr.define({create(){return Io.empty},update(t,e){if(t=t.map(e.changes),e.selection){let A=e.state.doc.lineAt(e.selection.main.head);t=t.update({filter:i=>i>=A.from&&i<=A.to})}for(let A of e.effects)A.is(HC)&&(t=t.update({add:[O_.range(A.value,A.value+1)]}));return t}});function joA(){return[j_A,PoA]}var F_="()[]{}<>\xAB\xBB\xBB\xAB\uFF3B\uFF3D\uFF5B\uFF5D";function qoA(t){for(let e=0;e{if((P_A?t.composing:t.compositionStarted)||t.state.readOnly)return!1;let n=t.state.selection.main;if(i.length>2||i.length==2&&lc(ms(i,0))==1||e!=n.from||A!=n.to)return!1;let o=V_A(t.state,i);return o?(t.dispatch(o),!0):!1}),q_A=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=VoA(t,t.selection.main.head).brackets||K3.brackets,n=null,o=t.changeByRange(r=>{if(r.empty){let s=Z_A(t.doc,r.head);for(let a of i)if(a==s&&ay(t.doc,r.head)==qoA(ms(a,0)))return{changes:{from:r.head-a.length,to:r.head+a.length},range:ae.cursor(r.head-a.length)}}return{range:n=r}});return n||e(t.update(o,{scrollIntoView:!0,userEvent:"delete.backward"})),!n},ZoA=[{key:"Backspace",run:q_A}];function V_A(t,e){let A=VoA(t,t.selection.main.head),i=A.brackets||K3.brackets;for(let n of i){let o=qoA(ms(n,0));if(e==n)return o==n?$_A(t,n,i.indexOf(n+n+n)>-1,A):W_A(t,n,o,A.before||K3.before);if(e==o&&WoA(t,t.selection.main.from))return X_A(t,n,o)}return null}function WoA(t,e){let A=!1;return t.field(PoA).between(0,t.doc.length,i=>{i==e&&(A=!0)}),A}function ay(t,e){let A=t.sliceString(e,e+2);return A.slice(0,lc(ms(A,0)))}function Z_A(t,e){let A=t.sliceString(e-2,e);return lc(ms(A,0))==A.length?A:A.slice(1)}function W_A(t,e,A,i){let n=null,o=t.changeByRange(r=>{if(!r.empty)return{changes:[{insert:e,from:r.from},{insert:A,from:r.to}],effects:HC.of(r.to+e.length),range:ae.range(r.anchor+e.length,r.head+e.length)};let s=ay(t.doc,r.head);return!s||/\s/.test(s)||i.indexOf(s)>-1?{changes:{insert:e+A,from:r.head},effects:HC.of(r.head+e.length),range:ae.cursor(r.head+e.length)}:{range:n=r}});return n?null:t.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function X_A(t,e,A){let i=null,n=t.changeByRange(o=>o.empty&&ay(t.doc,o.head)==A?{changes:{from:o.head,to:o.head+A.length,insert:A},range:ae.cursor(o.head+A.length)}:i={range:o});return i?null:t.update(n,{scrollIntoView:!0,userEvent:"input.type"})}function $_A(t,e,A,i){let n=i.stringPrefixes||K3.stringPrefixes,o=null,r=t.changeByRange(s=>{if(!s.empty)return{changes:[{insert:e,from:s.from},{insert:e,from:s.to}],effects:HC.of(s.to+e.length),range:ae.range(s.anchor+e.length,s.head+e.length)};let a=s.head,c=ay(t.doc,a),g;if(c==e){if(JoA(t,a))return{changes:{insert:e+e,from:a},effects:HC.of(a+e.length),range:ae.cursor(a+e.length)};if(WoA(t,a)){let C=A&&t.sliceDoc(a,a+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:a,to:a+C.length,insert:C},range:ae.cursor(a+C.length)}}}else{if(A&&t.sliceDoc(a-2*e.length,a)==e+e&&(g=YoA(t,a-2*e.length,n))>-1&&JoA(t,g))return{changes:{insert:e+e+e+e,from:a},effects:HC.of(a+e.length),range:ae.cursor(a+e.length)};if(t.charCategorizer(a)(c)!=lo.Word&&YoA(t,a,n)>-1&&!AGA(t,a,e,n))return{changes:{insert:e+e,from:a},effects:HC.of(a+e.length),range:ae.cursor(a+e.length)}}return{range:o=s}});return o?null:t.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function JoA(t,e){let A=ns(t).resolveInner(e+1);return A.parent&&A.from==e}function AGA(t,e,A,i){let n=ns(t).resolveInner(e,-1),o=i.reduce((r,s)=>Math.max(r,s.length),0);for(let r=0;r<5;r++){let s=t.sliceDoc(n.from,Math.min(n.to,n.from+A.length+o)),a=s.indexOf(A);if(!a||a>-1&&i.indexOf(s.slice(0,a))>-1){let g=n.firstChild;for(;g&&g.from==n.from&&g.to-g.from>A.length+a;){if(t.sliceDoc(g.to-A.length,g.to)==A)return!1;g=g.firstChild}return!0}let c=n.to==e&&n.parent;if(!c)break;n=c}return!1}function YoA(t,e,A){let i=t.charCategorizer(e);if(i(t.sliceDoc(e-1,e))!=lo.Word)return e;for(let n of A){let o=e-n.length;if(t.sliceDoc(o,e)==n&&i(t.sliceDoc(o-1,o))!=lo.Word)return o}return-1}function XoA(t={}){return[O_A,Ka,os.of(t),T_A,eGA,z_A]}var z_=[{key:"Ctrl-Space",run:N_},{mac:"Alt-`",run:N_},{mac:"Alt-i",run:N_},{key:"Escape",run:U_A},{key:"ArrowDown",run:iy(!0)},{key:"ArrowUp",run:iy(!1)},{key:"PageDown",run:iy(!0,"page")},{key:"PageUp",run:iy(!1,"page")},{key:"Enter",run:K_A}],eGA=Ng.highest(jE.computeN([os],t=>t.facet(os).defaultKeymap?[z_]:[]));function tGA(t,e=t.state){let A=new Set;for(let{from:i,to:n}of t.visibleRanges){let o=i;for(;o<=n;){let r=e.doc.lineAt(o);A.has(r)||A.add(r),o=r.to+1}}return A}function P_(t){let e=t.selection.main.head;return t.doc.lineAt(e)}function $oA(t,e){let A=0;A:for(let i=0;i=o.level&&this.markerType!=="codeOnly"?this.set(e,0,n.level):n.empty&&n.level===0&&o.level!==0?this.set(e,0,0):o.level>n.level?this.set(e,0,n.level+1):this.set(e,0,o.level)}let A=$oA(e.text,this.state.tabSize),i=Math.floor(A/this.unitWidth);return this.set(e,A,i)}closestNonEmpty(e,A){let i=e.number+A;for(;A===-1?i>=1:i<=this.state.doc.lines;){if(this.has(i)){let r=this.get(i);if(!r.empty)return r}let o=this.state.doc.line(i);if(o.text.trim().length){let r=$oA(o.text,this.state.tabSize),s=Math.floor(r/this.unitWidth);return this.set(o,r,s)}i+=A}let n=this.state.doc.line(A===-1?1:this.state.doc.lines);return this.set(n,0,0)}findAndSetActiveLines(){let e=P_(this.state);if(!this.has(e))return;let A=this.get(e);if(this.has(A.line.number+1)){let o=this.get(A.line.number+1);o.level>A.level&&(A=o)}if(this.has(A.line.number-1)){let o=this.get(A.line.number-1);o.level>A.level&&(A=o)}if(A.level===0)return;A.active=A.level;let i,n;for(i=A.line.number;i>1;i--){if(!this.has(i-1))continue;let o=this.get(i-1);if(o.level0&&a.push(cy("--indent-marker-bg-color",i,e,s,c)),a.push(cy("--indent-marker-active-bg-color",n,e,r-1,1)),r!==o&&a.push(cy("--indent-marker-bg-color",i,e,r,o-r))}else a.push(cy("--indent-marker-bg-color",i,e,s,o-s));return a.join(",")}var q_=class{constructor(e){this.view=e,this.unitWidth=Ug(e.state),this.currentLineNumber=P_(e.state).number,this.generate(e.state)}update(e){let A=Ug(e.state),i=A!==this.unitWidth;i&&(this.unitWidth=A);let n=P_(e.state).number,o=n!==this.currentLineNumber;this.currentLineNumber=n;let r=e.state.facet(gy).highlightActiveBlock&&o;(e.docChanged||e.viewportChanged||i||r)&&this.generate(e.state)}generate(e){let A=new fs,i=tGA(this.view,e),{hideFirstIndent:n,markerType:o,thickness:r,activeThickness:s}=e.facet(gy),a=new j_(i,e,this.unitWidth,o);for(let c of i){let g=a.get(c.number);if(!g?.level)continue;let I=nGA(g,this.unitWidth,n,r,s);A.add(c.from,c.from,ht.line({class:"cm-indent-markers",attributes:{style:`--indent-markers: ${I}`}}))}this.decorations=A.finish()}};function ArA(t={}){return[gy.of(t),iGA(t.colors),Bo.fromClass(q_,{decorations:e=>e.decorations})]}var oGA=["mainAxis","crossAxis","fallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment"],rGA=["mainAxis","crossAxis","limiter"];function EsA(t,e){if(t==null)return{};var A,i,n=function(r,s){if(r==null)return{};var a={};for(var c in r)if({}.hasOwnProperty.call(r,c)){if(s.indexOf(c)!==-1)continue;a[c]=r[c]}return a}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(i=0;i{};function CGA(t){return t()}function Ry(t){for(var e=0;e1&&arguments[1]!==void 0&&arguments[1])&&(jn.l={s:null,u:null,r1:[],r2:$C(!1)})}function mt(t){var e=jn,A=e.e;if(A!==null)for(var i of(e.e=null,A))LsA(i);return t!==void 0&&(e.x=t),jn=e.p,t??{}}function FQ(){return!xQ||jn!==null&&jn.l===null}function wsA(t){var e,A;return jn===null&&lf(),(A=(e=jn).c)!==null&&A!==void 0?A:e.c=new Map(function(i){for(var n=i.p;n!==null;){var o=n.c;if(o!==null)return o;n=n.p}return null}(jn)||void 0)}function EQ(t){if(typeof t!="object"||t===null||i0 in t)return t;var e=eK(t);if(e!==lGA&&e!==IGA)return t;var A=new Map,i=NQ(t),n=V0(0),o=ZC,r=s=>{if(ZC===o)return s();var a=Go,c=ZC;nI(null),lrA(o);var g=s();return nI(a),lrA(c),g};return i&&A.set("length",V0(t.length)),new Proxy(t,{defineProperty(s,a,c){"value"in c&&c.configurable!==!1&&c.enumerable!==!1&&c.writable!==!1||function(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}();var g=A.get(a);return g===void 0?g=r(()=>{var I=V0(c.value);return A.set(a,I),I}):y(g,c.value,!0),!0},deleteProperty(s,a){var c=A.get(a);if(c===void 0){if(a in s){var g=r(()=>V0(Ds));A.set(a,g),W_(n)}}else{if(i&&typeof a=="string"){var I=A.get("length"),C=Number(a);Number.isInteger(C)&&CV0(EQ(C?s[a]:Ds))),A.set(a,I)),I!==void 0){var d=l(I);return d===Ds?void 0:d}return Reflect.get(s,a,c)},getOwnPropertyDescriptor(s,a){var c=Reflect.getOwnPropertyDescriptor(s,a);if(c&&"value"in c){var g=A.get(a);g&&(c.value=l(g))}else if(c===void 0){var I=A.get(a),C=I?.v;if(I!==void 0&&C!==Ds)return{enumerable:!0,configurable:!0,value:C,writable:!0}}return c},has(s,a){var c;if(a===i0)return!0;var g=A.get(a),I=g!==void 0&&g.v!==Ds||Reflect.has(s,a);return(g!==void 0||qn!==null&&(!I||(c=t2(s,a))!==null&&c!==void 0&&c.writable))&&(g===void 0&&(g=r(()=>V0(I?EQ(s[a]):Ds)),A.set(a,g)),l(g)===Ds)?!1:I},set(s,a,c,g){var I,C=A.get(a),d=a in s;if(i&&a==="length")for(var B=c;BV0(Ds)),A.set(B+"",E))}C===void 0?(!d||(I=t2(s,a))!==null&&I!==void 0&&I.writable)&&(y(C=r(()=>V0(void 0)),EQ(c)),A.set(a,C)):(d=C.v!==Ds,y(C,r(()=>EQ(c))));var u=Reflect.getOwnPropertyDescriptor(s,a);if(u!=null&&u.set&&u.set.call(g,c),!d){if(i&&typeof a=="string"){var h=A.get("length"),w=Number(a);Number.isInteger(w)&&w>=h.v&&y(h,w+1)}W_(n)}return!0},ownKeys(s){l(n);var a=Reflect.ownKeys(s).filter(I=>{var C=A.get(I);return C===void 0||C.v!==Ds});for(var[c,g]of A)g.v===Ds||c in s||a.push(c);return a},setPrototypeOf(){(function(){throw new Error("https://svelte.dev/e/state_prototype_fixed")})()}})}function arA(t){try{if(t!==null&&typeof t=="object"&&i0 in t)return t[i0]}catch{}return t}function hGA(t,e){return Object.is(arA(t),arA(e))}function _Q(t){var e=2050,A=Go!==null&&2&Go.f?Go:null;return qn===null||A!==null&&(A.f&Hg)!==0?e|=Hg:qn.f|=BGA,{ctx:jn,deps:null,effects:null,equals:psA,f:e,fn:t,reactions:null,rv:0,v:Ds,wv:0,parent:A??qn,ac:null}}function Ja(t){var e=_Q(t);return YsA(e),e}function ZA(t){var e=_Q(t);return e.equals=DsA,e}function ysA(t){var e=t.effects;if(e!==null){t.effects=null;for(var A=0;A1&&arguments[1]!==void 0&&arguments[1],n=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],o=$C(t);return i||(o.equals=DsA),xQ&&n&&jn!==null&&jn.l!==null&&((A=(e=jn.l).s)!==null&&A!==void 0?A:e.s=[]).push(o),o}function hc(t,e){return y(t,oA(()=>l(t))),e}function y(t,e){var A,i=arguments.length>2&&arguments[2]!==void 0&&arguments[2];return Go===null||A0&&(Go.f&dGA)===0||!FQ()||!(131090&Go.f)||(A=n2)!==null&&A!==void 0&&A.includes(t)||function(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}(),yG(t,i?EQ(e):e)}function yG(t,e){if(!t.equals(e)){var A=t.v;iI?qC.set(t,e):qC.set(t,A),t.v=e,2&t.f&&((t.f&yQ)!==0&&nK(t),qg(t,(t.f&Hg)===0?Dc:rd)),t.wv=TsA(),MsA(t,yQ),!FQ()||qn===null||(qn.f&Dc)===0||96&qn.f||(Wc===null?function(i){Wc=i}([t]):Wc.push(t))}return e}function crA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,A=l(t),i=e===1?A++:A--;return y(t,A),i}function W_(t){y(t,t.v+1)}function MsA(t,e){var A=t.reactions;if(A!==null)for(var i=FQ(),n=A.length,o=0;o0&&arguments[0]!==void 0?arguments[0]:"";return document.createTextNode(t)}function fc(t){return ksA.call(t)}function $y(t){return SsA.call(t)}function W(t,e){return fc(t)}function Mt(t,e){var A=fc(t);return A instanceof Comment&&A.data===""?$y(A):A}function CA(t){for(var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,A=t;e--;)A=$y(A);return A}function RsA(t){qn===null&&Go===null&&function(){throw new Error("https://svelte.dev/e/effect_orphan")}(),Go!==null&&(Go.f&Hg)!==0&&qn===null&&function(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}(),iI&&function(){throw new Error("https://svelte.dev/e/effect_in_teardown")}()}function gI(t,e,A){var i=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3],n=qn,o={ctx:jn,deps:null,nodes_start:null,nodes_end:null,f:t|yQ,first:null,fn:e,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,transitions:null,wv:0,ac:null};if(A)try{e7(o),o.f|=32768}catch(a){throw tg(o),a}else e!==null&&t7(o);if(!(A&&o.deps===null&&o.first===null&&o.nodes_start===null&&o.teardown===null&&!(524416&o.f))&&i&&(n!==null&&function(a,c){var g=c.last;g===null?c.last=c.first=a:(g.next=a,a.prev=g,c.last=a)}(o,n),Go!==null&&2&Go.f)){var r,s=Go;((r=s.effects)!==null&&r!==void 0?r:s.effects=[]).push(o)}return o}function oK(t){var e=gI(8,null,!1);return qg(e,Dc),e.teardown=t,e}function vG(t){if(RsA(),Go||!qn||(qn.f&Wy)===0)return LsA(t);var e,A=jn;((e=A.e)!==null&&e!==void 0?e:A.e=[]).push(t)}function LsA(t){return gI(2097156,t,!1)}function rs(t){return gI(4,t,!1)}function pA(t,e){var A=jn,i={effect:null,ran:!1};A.l.r1.push(i),i.effect=If(()=>{t(),i.ran||(i.ran=!0,y(A.l.r2,!0),oA(e))})}function ln(){var t=jn;If(()=>{if(l(t.l.r2)){for(var e of t.l.r1){var A=e.effect;(A.f&Dc)!==0&&qg(A,rd),Cf(A)&&e7(A),e.ran=!1}t.l.r2.v=!1}})}function If(t){return gI(8,t,!0)}function we(t){var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:_Q,A=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:[]).map(e);return lI(()=>t(...A.map(l)))}function lI(t){return gI(24|(arguments.length>1&&arguments[1]!==void 0?arguments[1]:0),t,!0)}function s0(t){return gI(40,t,!0,!(arguments.length>1&&arguments[1]!==void 0)||arguments[1])}function xsA(t){var e=t.teardown;if(e!==null){var A=iI,i=Go;grA(!0),nI(null);try{e.call(null)}finally{grA(A),nI(i)}}}function NsA(t){var e=arguments.length>1&&arguments[1]!==void 0&&arguments[1],A=t.first;for(t.first=t.last=null;A!==null;){var i;(i=A.ac)===null||i===void 0||i.abort(msA);var n=A.next;(A.f&hsA)!==0?A.parent=null:tg(A,e),A=n}}function tg(t){var e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],A=!1;(e||262144&t.f)&&t.nodes_start!==null&&t.nodes_end!==null&&(FsA(t.nodes_start,t.nodes_end),A=!0),NsA(t,e&&!A),Ny(t,0),qg(t,tK);var i=t.transitions;if(i!==null)for(var n of i)n.stop();xsA(t);var o=t.parent;o!==null&&o.first!==null&&_sA(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes_start=t.nodes_end=t.ac=null}function FsA(t,e){for(;t!==null;){var A=t===e?null:$y(t);t.remove(),t=A}}function _sA(t){var e=t.parent,A=t.prev,i=t.next;A!==null&&(A.next=i),i!==null&&(i.prev=A),e!==null&&(e.first===t&&(e.first=i),e.last===t&&(e.last=A))}function vQ(t,e){var A=[];rK(t,A,!0),GsA(A,()=>{tg(t),e&&e()})}function GsA(t,e){var A=t.length;if(A>0){var i=()=>--A||e();for(var n of t)n.out(i)}else e()}function rK(t,e,A){if((t.f&$1)===0){if(t.f^=$1,t.transitions!==null)for(var i of t.transitions)(i.is_global||A)&&e.push(i);for(var n=t.first;n!==null;){var o=n.next;rK(n,e,((n.f&gf)!==0||(n.f&Wy)!==0)&&A),n=o}}}function Ly(t){KsA(t,!0)}function KsA(t,e){if((t.f&$1)!==0){t.f^=$1;for(var A=t.first;A!==null;){var i=A.next;KsA(A,((A.f&gf)!==0||(A.f&Wy)!==0)&&e),A=i}if(t.transitions!==null)for(var n of t.transitions)(n.is_global||e)&&n.in()}}var j3=[],X_=[];function UsA(){var t=j3;j3=[],Ry(t)}function A7(t){j3.length===0&&queueMicrotask(UsA),j3.push(t)}function fGA(){var t;j3.length>0&&UsA(),X_.length>0&&(t=X_,X_=[],Ry(t))}function JsA(t,e){for(;e!==null;){if(128&e.f)try{return void e.b.error(t)}catch{}e=e.parent}throw t}var q3=!1,V3=null,VC=!1,iI=!1;function grA(t){iI=t}var P3=[],Go=null,A0=!1;function nI(t){Go=t}var qn=null;function oI(t){qn=t}var n2=null;function YsA(t){Go!==null&&Go.f&wG&&(n2===null?n2=[t]:n2.push(t))}var oa=null,Qc=0,Wc=null,xy=1,Z3=0,ZC=Z3;function lrA(t){ZC=t}var V1=!1,IrA=null;function TsA(){return++xy}function Cf(t){var e=t.f;if((e&yQ)!==0)return!0;if((e&rd)!==0){var A=t.deps,i=(e&Hg)!==0;if(A!==null){var n,o,r=(e&DG)!==0,s=i&&qn!==null&&!V1,a=A.length;if(r||s){var c=t,g=c.parent;for(n=0;nt.wv)return!0}i&&(qn===null||V1)||qg(t,Dc)}return!1}function HsA(t,e){var A,i=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],n=t.reactions;if(n!==null&&((A=n2)===null||A===void 0||!A.includes(t)))for(var o=0;o0)for(C.length=Qc+oa.length,d=0;d0;){e++>1e3&&pGA();var A=P3,i=A.length;P3=[];for(var n=0;nn&&(i.f&EGA)!==0)break}}for(;A1&&arguments[1]!==void 0?arguments[1]:new Set;if(!(typeof t!="object"||t===null||t instanceof EventTarget||e.has(t))){for(var A in e.add(t),t instanceof Date&&t.getTime(),t)try{MG(t[A],e)}catch{}var i=eK(t);if(i!==Object.prototype&&i!==Array.prototype&&i!==Map.prototype&&i!==Set.prototype&&i!==Date.prototype){var n=usA(i);for(var o in n){var r=n[o].get;if(r)try{r.call(t)}catch{}}}}}var CrA=!1;function qsA(t){var e=Go,A=qn;nI(null),oI(null);try{return t()}finally{nI(e),oI(A)}}function vGA(t,e,A){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:A;t.addEventListener(e,()=>qsA(A));var n=t.__on_r;t.__on_r=n?()=>{n(),i(!0)}:()=>i(!0),CrA||(CrA=!0,document.addEventListener("reset",o=>{Promise.resolve().then(()=>{if(!o.defaultPrevented)for(var r of o.target.elements){var s;(s=r.__on_r)===null||s===void 0||s.call(r)}})},{capture:!0}))}var VsA=new Set,bG=new Set;function ZsA(t,e,A){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};function n(o){if(i.capture||T3.call(e,o),!o.cancelBubble)return qsA(()=>A?.call(this,o))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?A7(()=>{e.addEventListener(t,n,i)}):e.addEventListener(t,n,i),n}function ce(t,e,A,i,n){var o={capture:i,passive:n},r=ZsA(t,e,A,o);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&oK(()=>{e.removeEventListener(t,r,o)})}function df(t){for(var e=0;er||i});var I=Go,C=qn;nI(null),oI(null);try{for(var d,B=[];r!==null;){var E=r.assignedSlot||r.parentNode||r.host||null;try{var u=r["__"+n];if(u!=null&&(!r.disabled||t.target===r))if(NQ(u)){var[h,...w]=u;h.apply(r,[t,...w])}else u.call(r,t)}catch(D){d?B.push(D):d=D}if(t.cancelBubble||E===A||E===null)break;r=E}if(d){var x=function(D){queueMicrotask(()=>{throw D})};for(var R of B)x(R);throw d}}finally{t.__root=A,delete t.currentTarget,nI(I),oI(C)}}}function sK(t){var e=document.createElement("template");return e.innerHTML=t.replaceAll("",""),e.content}function Ad(t,e){var A=qn;A.nodes_start===null&&(A.nodes_start=t,A.nodes_end=e)}function vA(t,e){var A,i=!!(1&e),n=!!(2&e),o=!t.startsWith("");return()=>{A===void 0&&(A=sK(o?t:""+t),i||(A=fc(A)));var r=n||bsA?document.importNode(A,!0):A.cloneNode(!0);return i?Ad(fc(r),r.lastChild):Ad(r,r),r}}function II(t,e){return function(A,i){var n,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"svg",r=!A.startsWith(""),s=!!(1&i),a="<".concat(o,">").concat(r?A:""+A,"");return()=>{if(!n){var c=fc(sK(a));if(s)for(n=document.createDocumentFragment();fc(c);)n.appendChild(fc(c));else n=fc(c)}var g=n.cloneNode(!0);return s?Ad(fc(g),g.lastChild):Ad(g,g),g}}(t,e,"svg")}function jr(){var t=Xy((arguments.length>0&&arguments[0]!==void 0?arguments[0]:"")+"");return Ad(t,t),t}function _o(){var t=document.createDocumentFragment(),e=document.createComment(""),A=Xy();return t.append(e,A),Ad(e,A),t}function iA(t,e){t!==null&&t.before(e)}var MGA=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"],bGA={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly",defaultvalue:"defaultValue",defaultchecked:"defaultChecked",srcobject:"srcObject",novalidate:"noValidate",allowfullscreen:"allowFullscreen",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback"},kGA=["touchstart","touchmove"];function SGA(t){return kGA.includes(t)}function pt(t,e){var A,i=e==null?"":typeof e=="object"?e+"":e;i!==((A=t.__t)!==null&&A!==void 0?A:t.__t=t.nodeValue)&&(t.__t=i,t.nodeValue=i+"")}function RGA(t,e){return function(A,i){var{target:n,anchor:o,props:r={},events:s,context:a,intro:c=!0}=i;(function(){if(i2===void 0){i2=window,bsA=/Firefox/.test(navigator.userAgent);var B=Element.prototype,E=Node.prototype,u=Text.prototype;ksA=t2(E,"firstChild").get,SsA=t2(E,"nextSibling").get,orA(B)&&(B.__click=void 0,B.__className=void 0,B.__attributes=null,B.__style=void 0,B.__e=void 0),orA(u)&&(u.__t=void 0)}})();var g=new Set,I=B=>{for(var E=0;E0&&arguments[0]!==void 0?arguments[0]:{};return new Promise(h=>{u.outro?vQ(E,()=>{tg(E),h(void 0)}):(tg(E),h(void 0))})}}(()=>{var B=o??n.appendChild(Xy());return s0(()=>{a&&(ft({}),jn.c=a),s&&(r.$$events=s),C=A(B,r)||{},a&&mt()}),()=>{for(var E of g){n.removeEventListener(E,T3);var u=aQ.get(E);--u===0?(document.removeEventListener(E,T3),aQ.delete(E)):aQ.set(E,u)}var h;bG.delete(I),B!==o&&((h=B.parentNode)===null||h===void 0||h.removeChild(B))}});return kG.set(C,d),C}(t,e)}var aQ=new Map,kG=new WeakMap;function ws(t){jn===null&&lf(),xQ&&jn.l!==null?WsA(jn).m.push(t):vG(()=>{var e=oA(t);if(typeof e=="function")return e})}function ig(t){jn===null&&lf(),ws(()=>()=>oA(t))}function LGA(){var t=jn;return t===null&&lf(),(e,A,i)=>{var n,o=(n=t.s.$$events)===null||n===void 0?void 0:n[e];if(o){var r=NQ(o)?o.slice():[o],s=function(c,g){var{bubbles:I=!1,cancelable:C=!1}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return new CustomEvent(c,{detail:g,bubbles:I,cancelable:C})}(e,A,i);for(var a of r)a.call(t.x,s);return!s.defaultPrevented}return!0}}function xGA(t){jn===null&&lf(),jn.l===null&&function(){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}(),WsA(jn).b.push(t)}function WsA(t){var e,A=t.l;return(e=A.u)!==null&&e!==void 0?e:A.u={a:[],b:[],m:[]}}function GA(t,e){var[A,i]=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[0,0],n=t,o=null,r=null,s=Ds,a=!1,c=function(I){a=!0,g(!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],I)},g=(I,C)=>{s!==(s=I)&&(s?(o?Ly(o):C&&(o=s0(()=>C(n))),r&&vQ(r,()=>{r=null})):(r?Ly(r):C&&(r=s0(()=>C(n,[A+1,i]))),o&&vQ(o,()=>{o=null})))};lI(()=>{a=!1,e(c),a||g(null,null)},A>0?gf:0)}function XsA(t,e,A){var i,n=t,o=Ds,r=FQ()?uGA:iK;lI(()=>{r(o,o=e())&&(i&&vQ(i),i=s0(()=>A(n)))})}function cr(t,e){return e}function jo(t,e,A,i,n){var o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null,r=t,s={flags:e,items:new Map,first:null};!(4&e)||(r=t.appendChild(Xy()));var a=null,c=!1,g=ZA(()=>{var I=A();return NQ(I)?I:I==null?[]:pG(I)});lI(()=>{var I=l(g),C=I.length;c&&C===0||(c=C===0,function(d,B,E,u,h,w,x){var R,D,G,J,z,K,O=!!(8&h),V=!!(3&h),j=d.length,dA=B.items,fA=B.first,EA=fA,IA=null,SA=[],nA=[];if(O)for(K=0;K0){var We=4&h&&j===0?E:null;if(O){for(K=0;K0&&Me.length===0&&zA!==null;if(Gt){var ct=zA.parentNode;ct.textContent="",ct.append(zA),xA.clear(),O1(OA,gA[0].prev,gA[LA-1].next)}GsA(Me,()=>{for(var oe=0;oe{if(D!==void 0)for(z of D){var OA;(OA=z.a)===null||OA===void 0||OA.apply()}}),qn.first=B.first&&B.first.e,qn.last=IA&&IA.e}(I,s,r,n,e,i,A),o!==null&&(C===0?a?Ly(a):a=s0(()=>o(r)):a!==null&&vQ(a,()=>{a=null})),l(g))})}function NGA(t,e,A,i){1&i&&yG(t.v,e),2&i?yG(t.i,A):t.i=A}function FGA(t,e,A,i,n,o,r,s,a,c){var g=1&a?16&a?$C(n):$(n,!1,!1):n,I=2&a?$C(r):r,C={i:I,v:g,k:o,a:null,e:null,prev:A,next:i};try{return C.e=s0(()=>s(t,g,I,c),!1),C.e.prev=A&&A.e,C.e.next=i&&i.e,A===null?e.first=C:(A.next=C,A.e.next=C.e),i!==null&&(i.prev=C,i.e.prev=C.e),C}finally{}}function drA(t,e,A){for(var i=t.next?t.next.e.nodes_start:A,n=e?e.e.nodes_start:A,o=t.e.nodes_start;o!==i;){var r=$y(o);n.before(o),o=r}}function O1(t,e,A){e===null?t.first=A:(e.next=A,e.e.next=A&&A.e),A!==null&&(A.prev=e,A.e.prev=e&&e.e)}function $sA(t,e){var A=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=arguments.length>3&&arguments[3]!==void 0&&arguments[3],n=t,o="";we(()=>{var r,s=qn;if(o!==(o=(r=e())!==null&&r!==void 0?r:"")&&(s.nodes_start!==null&&(FsA(s.nodes_start,s.nodes_end),s.nodes_start=s.nodes_end=null),o!=="")){var a=o+"";A?a="".concat(a,""):i&&(a="".concat(a,""));var c=sK(a);if((A||i)&&(c=fc(c)),Ad(fc(c),c.lastChild),A||i)for(;fc(c);)n.before(fc(c));else n.before(c)}})}function Po(t,e,A,i,n){var o,r=(o=e.$$slots)===null||o===void 0?void 0:o[A],s=!1;r===!0&&(r=e[A==="default"?"children":A],s=!0),r===void 0?n!==null&&n(t):r(t,s?()=>i:i)}function AaA(t,e,A){var i,n,o=t;lI(()=>{i!==(i=e())&&(n&&(vQ(n),n=null),i&&(n=s0(()=>A(o,i))))},gf)}function Ts(t,e,A){rs(()=>{var i=oA(()=>e(t,A?.())||{});if(A&&i!=null&&i.update){var n=!1,o={};If(()=>{var r=A();k(r),n&&iK(o,r)&&(o=r,i.update(r))}),n=!0}if(i!=null&&i.destroy)return()=>i.destroy()})}function _GA(t,e){var A,i=void 0;lI(()=>{i!==(i=e())&&(A&&(tg(A),A=null),i&&(A=s0(()=>{rs(()=>i(t))})))})}function eaA(t){var e,A,i="";if(typeof t=="string"||typeof t=="number")i+=t;else if(typeof t=="object")if(Array.isArray(t)){var n=t.length;for(e=0;e1&&arguments[1]!==void 0&&arguments[1]?" !important;":";",A="";for(var i in t){var n=t[i];n!=null&&n!==""&&(A+=" "+i+": "+n+e)}return A}function $_(t){return t[0]!=="-"||t[1]!=="-"?t.toLowerCase():t}function jt(t,e,A,i,n,o){var r=t.__className;if(r!==A||r===void 0){var s=function(g,I,C){var d=g==null?"":""+g;if(I&&(d=d?d+" "+I:I),C){for(var B in C)if(C[B])d=d?d+" "+B:B;else if(d.length)for(var E=B.length,u=0;(u=d.indexOf(B,u))>=0;){var h=u+E;u!==0&&!BrA.includes(d[u-1])||h!==d.length&&!BrA.includes(d[h])?u=h:d=(u===0?"":d.substring(0,u))+d.substring(h+1)}}return d===""?null:d}(A,i,o);s==null?t.removeAttribute("class"):e?t.className=s:t.setAttribute("class",s),t.__className=A}else if(o&&n!==o)for(var a in o){var c=!!o[a];n!=null&&c===!!n[a]||t.classList.toggle(a,c)}return o}function AG(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},A=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;for(var n in A){var o=A[n];e[n]!==o&&(A[n]==null?t.style.removeProperty(n):t.style.setProperty(n,o,i))}}function eg(t,e,A,i){if(t.__style!==e){var n=function(o,r){if(r){var s,a,c="";if(Array.isArray(r)?(s=r[0],a=r[1]):s=r,o){o=String(o).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var g=!1,I=0,C=!1,d=[];s&&d.push(...Object.keys(s).map($_)),a&&d.push(...Object.keys(a).map($_));for(var B=0,E=-1,u=o.length,h=0;h2&&arguments[2]!==void 0&&arguments[2];if(t.multiple){if(e==null)return;if(!NQ(e))return void console.warn("https://svelte.dev/e/select_multiple_invalid_value");for(var i of t.options)i.selected=e.includes(QrA(i))}else{for(i of t.options)if(hGA(QrA(i),e))return void(i.selected=!0);A&&e===void 0||(t.selectedIndex=-1)}}function GGA(t){var e=new MutationObserver(()=>{SG(t,t.__value)});e.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),oK(()=>{e.disconnect()})}function QrA(t){return"__value"in t?t.__value:t.value}var dQ=Symbol("class"),J3=Symbol("style"),taA=Symbol("is custom element"),iaA=Symbol("is html");function ed(t,e){var A=aK(t);A.value!==(A.value=e??void 0)&&(t.value!==e||e===0&&t.nodeName==="PROGRESS")&&(t.value=e??"")}function gn(t,e,A,i){var n=aK(t);n[e]!==(n[e]=A)&&(e==="loading"&&(t[QGA]=A),A==null?t.removeAttribute(e):typeof A!="string"&&naA(t).includes(e)?t[e]=A:t.setAttribute(e,A))}function KGA(t,e,A,i){var n,o=aK(t),r=o[taA],s=!o[iaA],a=e||{},c=t.tagName==="OPTION";for(var g in e)g in A||(A[g]=null);A.class?A.class=rI(A.class):(i||A[dQ])&&(A.class=null),A[J3]&&((n=A.style)!==null&&n!==void 0||(A.style=null));var I,C,d,B,E,u,h=naA(t),w=function(R){var D=A[R];if(c&&R==="value"&&D==null)return t.value=t.__value="",a[R]=D,0;if(R==="class")return I=t.namespaceURI==="http://www.w3.org/1999/xhtml",jt(t,I,D,i,e?.[dQ],A[dQ]),a[R]=D,a[dQ]=A[dQ],0;if(R==="style")return eg(t,D,e?.[J3],A[J3]),a[R]=D,a[J3]=A[J3],0;if(D===(C=a[R])&&(D!==void 0||!t.hasAttribute(R))||(a[R]=D,(d=R[0]+R[1])==="$$"))return 0;if(d==="on"){var G={},J="$$"+R,z=R.slice(2);if(B=function(fA){return MGA.includes(fA)}(z),function(fA){return fA.endsWith("capture")&&fA!=="gotpointercapture"&&fA!=="lostpointercapture"}(z)&&(z=z.slice(0,-7),G.capture=!0),!B&&C){if(D!=null)return 0;t.removeEventListener(z,a[J],G),a[J]=null}if(D!=null)if(B)t["__".concat(z)]=D,df([z]);else{let fA=function(EA){a[R].call(this,EA)};var dA=fA;a[J]=ZsA(z,t,fA,G)}else B&&(t["__".concat(z)]=void 0)}else if(R==="style")gn(t,R,D);else if(R==="autofocus")(function(fA,EA){if(EA){var IA=document.body;fA.autofocus=!0,A7(()=>{document.activeElement===IA&&fA.focus()})}})(t,!!D);else if(r||R!=="__value"&&(R!=="value"||D==null))if(R==="selected"&&c)(function(fA,EA){EA?fA.hasAttribute("selected")||fA.setAttribute("selected",""):fA.removeAttribute("selected")})(t,D);else if(E=R,s||(E=function(fA){var EA;return fA=fA.toLowerCase(),(EA=bGA[fA])!==null&&EA!==void 0?EA:fA}(E)),u=E==="defaultValue"||E==="defaultChecked",D!=null||r||u)u||h.includes(E)&&(r||typeof D!="string")?t[E]=D:typeof D!="function"&&gn(t,E,D);else if(o[R]=null,E==="value"||E==="checked"){var K=t,O=e===void 0;if(E==="value"){var V=K.defaultValue;K.removeAttribute(E),K.defaultValue=V,K.value=K.__value=O?V:null}else{var j=K.defaultChecked;K.removeAttribute(E),K.defaultChecked=j,K.checked=!!O&&j}}else t.removeAttribute(R);else t.value=t.__value=D};for(var x in A)w(x);return a}function vy(t,e){var A=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&arguments[4]!==void 0&&arguments[4],n=arguments.length>5&&arguments[5]!==void 0?arguments[5]:_Q,o=(arguments.length>2&&arguments[2]!==void 0?arguments[2]:[]).map(n),r=void 0,s={},a=t.nodeName==="SELECT",c=!1;if(lI(()=>{var I=e(...o.map(l)),C=KGA(t,r,I,A,i);for(var d of(c&&a&&"value"in I&&SG(t,I.value),Object.getOwnPropertySymbols(s)))I[d]||tg(s[d]);for(var B of Object.getOwnPropertySymbols(I)){var E=I[B];B.description!=="@attach"||r&&E===r[B]||(s[B]&&tg(s[B]),s[B]=s0(()=>_GA(t,()=>E))),C[B]=E}r=C}),a){var g=t;rs(()=>{SG(g,r.value,!0),GGA(g)})}c=!0}function aK(t){var e;return(e=t.__attributes)!==null&&e!==void 0?e:t.__attributes={[taA]:t.nodeName.includes("-"),[iaA]:t.namespaceURI==="http://www.w3.org/1999/xhtml"}}var urA=new Map;function naA(t){var e,A=urA.get(t.nodeName);if(A)return A;urA.set(t.nodeName,A=[]);for(var i=t,n=Element.prototype;n!==i;){for(var o in e=usA(i))e[o].set&&A.push(o);i=eK(i)}return A}function Fy(t,e){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e,i=FQ();vGA(t,"input",n=>{var o=n?t.defaultValue:t.value;if(o=eG(t)?tG(o):o,A(o),i&&o!==(o=e())){var r=t.selectionStart,s=t.selectionEnd;t.value=o??"",s!==null&&(t.selectionStart=r,t.selectionEnd=Math.min(s,t.value.length))}}),oA(e)==null&&t.value&&A(eG(t)?tG(t.value):t.value),If(()=>{var n=e();eG(t)&&n===tG(t.value)||(t.type!=="date"||n||t.value)&&n!==t.value&&(t.value=n??"")})}function eG(t){var e=t.type;return e==="number"||e==="range"}function tG(t){return t===""?null:+t}function Ft(t,e,A){var i=t2(t,e);i&&i.set&&(t[e]=A,oK(()=>{t[e]=null}))}function hrA(t,e){return t===e||t?.[i0]===e}function Qo(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,A=arguments.length>2?arguments[2]:void 0;return rs(()=>{var i,n;return If(()=>{i=n,n=[],oA(()=>{t!==A(...n)&&(e(t,...n),i&&hrA(A(...i),t)&&e(null,...i))})}),()=>{A7(()=>{n&&hrA(A(...n),t)&&e(null,...n)})}}),t}function Z0(t){return function(){for(var e=arguments.length,A=new Array(e),i=0;i0&&arguments[0]!==void 0&&arguments[0],e=jn,A=e.l.u;if(A){var i,n=()=>k(e.s);if(t){var o=0,r={},s=_Q(()=>{var a=!1,c=e.s;for(var g in c)c[g]!==r[g]&&(r[g]=c[g],a=!0);return a&&o++,o});n=()=>l(s)}A.b.length&&(i=()=>{frA(e,n),Ry(A.b)},RsA(),gI(2097160,i,!0)),vG(()=>{var a=oA(()=>A.m.map(CGA));return()=>{for(var c of a)typeof c=="function"&&c()}}),A.a.length&&vG(()=>{frA(e,n),Ry(A.a)})}}function frA(t,e){if(t.l.s)for(var A of t.l.s)l(A);e()}function i7(t){var e=$C(0);return function(){return arguments.length===1?(y(e,l(e)+1),arguments[0]):(l(e),t())}}function H3(t,e){var A,i=(A=t.$$events)===null||A===void 0?void 0:A[e.type],n=NQ(i)?i.slice():i==null?[]:[i];for(var o of n)o.call(this,e)}var ly=!1,UGA={get(t,e){if(!t.exclude.includes(e))return l(t.version),e in t.special?t.special[e]():t.props[e]},set(t,e,A){if(!(e in t.special)){var i=qn;try{oI(t.parent_effect),t.special[e]=M({get[e](){return t.props[e]}},e,4)}finally{oI(i)}}return t.special[e](A),crA(t.version),!0},getOwnPropertyDescriptor(t,e){if(!t.exclude.includes(e))return e in t.props?{enumerable:!0,configurable:!0,value:t.props[e]}:void 0},deleteProperty:(t,e)=>(t.exclude.includes(e)||(t.exclude.push(e),crA(t.version)),!0),has:(t,e)=>!t.exclude.includes(e)&&e in t.props,ownKeys:t=>Reflect.ownKeys(t.props).filter(e=>!t.exclude.includes(e))};function Iy(t,e){return new Proxy({props:t,exclude:e,special:{},version:$C(0),parent_effect:qn},UGA)}var JGA={get(t,e){for(var A=t.props.length;A--;){var i=t.props[A];if(U3(i)&&(i=i()),typeof i=="object"&&i!==null&&e in i)return i[e]}},set(t,e,A){for(var i=t.props.length;i--;){var n=t.props[i];U3(n)&&(n=n());var o=t2(n,e);if(o&&o.set)return o.set(A),!0}return!1},getOwnPropertyDescriptor(t,e){for(var A=t.props.length;A--;){var i=t.props[A];if(U3(i)&&(i=i()),typeof i=="object"&&i!==null&&e in i){var n=t2(i,e);return n&&!n.configurable&&(n.configurable=!0),n}}},has(t,e){if(e===i0||e===fsA)return!1;for(var A of t.props)if(U3(A)&&(A=A()),A!=null&&e in A)return!0;return!1},ownKeys(t){var e=[];for(var A of t.props)if(U3(A)&&(A=A()),A){for(var i in A)e.includes(i)||e.push(i);for(var n of Object.getOwnPropertySymbols(A))e.includes(n)||e.push(n)}return e}};function AI(){for(var t=arguments.length,e=new Array(t),A=0;A(g&&(g=!1,c=a?oA(i):i),c);if(s){var C,d,B=i0 in t||fsA in t;n=(C=(d=t2(t,e))===null||d===void 0?void 0:d.set)!==null&&C!==void 0?C:B&&e in t?D=>t[e]=D:void 0}var E,u=!1;if(s?[o,u]=function(D){var G=ly;try{return ly=!1,[D(),ly]}finally{ly=G}}(()=>t[e]):o=t[e],o===void 0&&i!==void 0&&(o=I(),n&&(r&&function(){throw new Error("https://svelte.dev/e/props_invalid_value")}(),n(o))),E=r?()=>{var D=t[e];return D===void 0?I():(g=!0,D)}:()=>{var D=t[e];return D!==void 0&&(c=void 0),D===void 0?c:D},r&&!(4&A))return E;if(n){var h=t.$$legacy;return function(D,G){return arguments.length>0?(r&&G&&!h&&!u||n(G?E():D),D):E()}}var w=!1,x=(1&A?_Q:ZA)(()=>(w=!1,E()));s&&l(x);var R=qn;return function(D,G){if(arguments.length>0){var J=G?l(x):r&&s?EQ(D):D;return y(x,J),w=!0,c!==void 0&&(c=J),D}return iI&&w||(R.f&tK)!==0?x.v:l(x)}}function xr(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(i){var n=function(o){try{if(typeof window<"u"&&window.localStorage!==void 0)return window.localStorage[o]}catch{}}("debug");return n!=null&&n.endsWith("*")?i.startsWith(n.slice(0,-1)):i===n}(t);if(!e)return YGA;var A=function(i){for(var n=0,o=0;o9466848e5&&isFinite(t)&&Math.floor(t)===t&&!isNaN(new Date(t).valueOf());if(typeof t=="bigint")return RG(Number(t));try{var e=t&&t.valueOf();if(e!==t)return RG(e)}catch{return!1}return!1}function oaA(t){(Cy=Cy||window.document.createElement("div")).style.color="",Cy.style.color=t;var e=Cy.style.color;return e!==""?e.replace(/\s+/g,"").toLowerCase():void 0}var Cy=void 0;function zGA(t){return typeof t=="string"&&t.length<99&&!!oaA(t)}function gK(t,e){if(typeof t=="number"||typeof t=="string"||typeof t=="boolean"||t===void 0)return typeof t;if(typeof t=="bigint")return"number";if(t===null)return"null";if(Array.isArray(t))return"array";if(nn(t))return"object";var A=e.stringify(t);return A&&cK(A)?"number":A==="true"||A==="false"?"boolean":A==="null"?"null":"unknown"}var PGA=/^https?:\/\/\S+$/;function n7(t){return typeof t=="string"&&PGA.test(t)}function GQ(t,e){if(t==="")return"";var A=t.trim();return A==="null"?null:A==="true"||A!=="false"&&(cK(A)?e.parse(A):t)}var jGA=[];function prA(t,e){if(t.length!==e.length)return!1;for(var A=0;A1&&arguments[1]!==void 0&&arguments[1],A={};if(!Array.isArray(t))throw new TypeError("Array expected");function i(r,s){(!Array.isArray(r)&&!nn(r)||e&&s.length>0)&&(A[It(s)]=!0),nn(r)&&Object.keys(r).forEach(a=>{i(r[a],s.concat(a))})}for(var n=Math.min(t.length,1e4),o=0;oe?t.slice(0,e):t}function DrA(t){return pe({},t)}function wrA(t){return Object.values(t)}function yrA(t,e,A,i){var n=t.slice(0),o=n.splice(e,A);return n.splice.apply(n,[e+i,0,...o]),n}function qGA(t,e,A){return t.slice(0,e).concat(A).concat(t.slice(e))}function Bf(t,e){try{return e.parse(t)}catch{return e.parse(Uc(t))}}function saA(t,e){try{return Bf(t,e)}catch{return}}function Ef(t,e){t=t.replace(caA,"");try{return e(t)}catch{}try{return e("{"+t+"}")}catch{}try{return e("["+t+"]")}catch{}throw new Error("Failed to parse partial JSON")}function aaA(t){t=t.replace(caA,"");try{return Uc(t)}catch{}try{var e=Uc("["+t+"]");return e.substring(1,e.length-1)}catch{}try{var A=Uc("{"+t+"}");return A.substring(1,A.length-1)}catch{}throw new Error("Failed to repair partial JSON")}var caA=/,\s*$/;function MQ(t,e){var A=MrA.exec(e);if(A){var i=ss(A[2]),n=function(d,B){for(var E=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:d.length,h=0,w=E;w",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},WRA=typeof navigator<"u"&&/Mac/.test(navigator.platform),XRA=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(kr=0;kr<10;kr++)z0[48+kr]=z0[96+kr]=String(kr);var kr;for(kr=1;kr<=24;kr++)z0[kr+111]="F"+kr;var kr;for(kr=65;kr<=90;kr++)z0[kr]=String.fromCharCode(kr+32),UE[kr]=String.fromCharCode(kr);var kr;for(FD in z0)UE.hasOwnProperty(FD)||(UE[FD]=z0[FD]);var FD;function GeA(t){var e=WRA&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||XRA&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",A=!e&&t.key||(t.shiftKey?UE:z0)[t.keyCode]||t.key||"Unidentified";return A=="Esc"&&(A="Escape"),A=="Del"&&(A="Delete"),A=="Left"&&(A="ArrowLeft"),A=="Up"&&(A="ArrowUp"),A=="Right"&&(A="ArrowRight"),A=="Down"&&(A="ArrowDown"),A}function _n(){var t=arguments[0];typeof t=="string"&&(t=document.createElement(t));var e=1,A=arguments[1];if(A&&typeof A=="object"&&A.nodeType==null&&!Array.isArray(A)){for(var i in A)if(Object.prototype.hasOwnProperty.call(A,i)){var n=A[i];typeof n=="string"?t.setAttribute(i,n):n!=null&&(t[i]=n)}e++}for(;e.995&&A<1.005||!isFinite(A)||Math.abs(e.width-t.offsetWidth)<1)&&(A=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(e.height-t.offsetHeight)<1)&&(i=1),{scaleX:A,scaleY:i}}function ALA(t,e,A,i,n,o,r,s){let a=t.ownerDocument,c=a.defaultView||window;for(let g=t,I=!1;g&&!I;)if(g.nodeType==1){let C,d=g==a.body,B=1,E=1;if(d)C=$RA(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(g).position)&&(I=!0),g.scrollHeight<=g.clientHeight&&g.scrollWidth<=g.clientWidth){g=g.assignedSlot||g.parentNode;continue}let w=g.getBoundingClientRect();({scaleX:B,scaleY:E}=StA(g,w)),C={left:w.left,right:w.left+g.clientWidth*B,top:w.top,bottom:w.top+g.clientHeight*E}}let u=0,h=0;if(n=="nearest")e.top0&&e.bottom>C.bottom+h&&(h=e.bottom-C.bottom+r)):e.bottom>C.bottom&&(h=e.bottom-C.bottom+r,A<0&&e.top-h0&&e.right>C.right+u&&(u=e.right-C.right+o)):e.right>C.right&&(u=e.right-C.right+o,A<0&&e.leftC.bottom||e.leftC.right)&&(e={left:Math.max(e.left,C.left),right:Math.min(e.right,C.right),top:Math.max(e.top,C.top),bottom:Math.min(e.bottom,C.bottom)}),g=g.assignedSlot||g.parentNode}else if(g.nodeType==11)g=g.host;else break}function eLA(t){let e=t.ownerDocument,A,i;for(let n=t.parentNode;n&&!(n==e.body||A&&i);)if(n.nodeType==1)!i&&n.scrollHeight>n.clientHeight&&(i=n),!A&&n.scrollWidth>n.clientWidth&&(A=n),n=n.assignedSlot||n.parentNode;else if(n.nodeType==11)n=n.host;else break;return{x:A,y:i}}var xN=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:A,focusNode:i}=e;this.set(A,Math.min(e.anchorOffset,A?zl(A):0),i,Math.min(e.focusOffset,i?zl(i):0))}set(e,A,i,n){this.anchorNode=e,this.anchorOffset=A,this.focusNode=i,this.focusOffset=n}},JE=null;function RtA(t){if(t.setActive)return t.setActive();if(JE)return t.focus(JE);let e=[];for(let A=t;A&&(e.push(A,A.scrollTop,A.scrollLeft),A!=A.ownerDocument);A=A.parentNode);if(t.focus(JE==null?{get preventScroll(){return JE={preventScroll:!0},!0}}:void 0),!JE){JE=!1;for(let A=0;AMath.max(1,t.scrollHeight-t.clientHeight-4)}function NtA(t,e){for(let A=t,i=e;;){if(A.nodeType==3&&i>0)return{node:A,offset:i};if(A.nodeType==1&&i>0){if(A.contentEditable=="false")return null;A=A.childNodes[i-1],i=zl(A)}else if(A.parentNode&&!XD(A))i=RC(A),A=A.parentNode;else return null}}function FtA(t,e){for(let A=t,i=e;;){if(A.nodeType==3&&iA)return I.domBoundsAround(e,A,c);if(C>=e&&n==-1&&(n=a,o=c),c>A&&I.dom.parentNode==this.dom){r=a,s=g;break}g=C,c=C+I.breakAfter}return{from:o,to:s<0?i+this.length:s,startDOM:(n?this.children[n-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:r=0?this.children[r].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let A=this.parent;A;A=A.parent){if(e&&(A.flags|=2),A.flags&1)return;A.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.flags&7&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let A=e.parent;if(!A)return e;e=A}}replaceChildren(e,A,i=uF){this.markDirty();for(let n=e;nthis.pos||e==this.pos&&(A>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}};function _tA(t,e,A,i,n,o,r,s,a){let{children:c}=t,g=c.length?c[e]:null,I=o.length?o[o.length-1]:null,C=I?I.breakAfter:r;if(!(e==i&&g&&!r&&!C&&o.length<2&&g.merge(A,n,o.length?I:null,A==0,s,a))){if(i0&&(!r&&o.length&&g.merge(A,g.length,o[0],!1,s,0)?g.breakAfter=o.shift().breakAfter:(A2),it={mac:OeA||/Mac/.test(_a.platform),windows:/Win/.test(_a.platform),linux:/Linux|X11/.test(_a.platform),ie:dw,ie_version:KtA?NN.documentMode||6:_N?+_N[1]:FN?+FN[1]:0,gecko:TeA,gecko_version:TeA?+(/Firefox\/(\d+)/.exec(_a.userAgent)||[0,0])[1]:0,chrome:!!DN,chrome_version:DN?+DN[1]:0,ios:OeA,android:/Android\b/.test(_a.userAgent),webkit:HeA,safari:UtA,webkit_version:HeA?+(/\bAppleWebKit\/(\d+)/.exec(_a.userAgent)||[0,0])[1]:0,tabSize:NN.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"},nLA=256,Pl=class t extends No{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,A){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(A&&A.node==this.dom&&(A.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,A,i){return this.flags&8||i&&(!(i instanceof t)||this.length-(A-e)+i.length>nLA||i.flags&8)?!1:(this.text=this.text.slice(0,e)+(i?i.text:"")+this.text.slice(A),this.markDirty(),!0)}split(e){let A=new t(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),A.flags|=this.flags&8,A}localPosFromDOM(e,A){return e==this.dom?A:A?this.text.length:0}domAtPos(e){return new ia(this.dom,e)}domBoundsAround(e,A,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,A){return oLA(this.dom,e,A)}},N1=class t extends No{constructor(e,A=[],i=0){super(),this.mark=e,this.children=A,this.length=i;for(let n of A)n.setParent(this)}setAttrs(e){if(LtA(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let A in this.mark.attrs)e.setAttribute(A,this.mark.attrs[A]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!((this.flags|e.flags)&8)}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,A){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,A)}merge(e,A,i,n,o,r){return i&&(!(i instanceof t&&i.mark.eq(this.mark))||e&&o<=0||Ae&&A.push(i=e&&(n=o),i=a,o++}let r=this.length-e;return this.length=e,n>-1&&(this.children.length=n,this.markDirty()),new t(this.mark,A,r)}domAtPos(e){return JtA(this,e)}coordsAt(e,A){return TtA(this,e,A)}};function oLA(t,e,A){let i=t.nodeValue.length;e>i&&(e=i);let n=e,o=e,r=0;e==0&&A<0||e==i&&A>=0?it.chrome||it.gecko||(e?(n--,r=1):o=0)?0:s.length-1];return it.safari&&!r&&a.width==0&&(a=Array.prototype.find.call(s,c=>c.width)||a),r?Cw(a,r<0):a||null}var g3=class t extends No{static create(e,A,i){return new t(e,A,i)}constructor(e,A,i){super(),this.widget=e,this.length=A,this.side=i,this.prevWidget=null}split(e){let A=t.create(this.widget,this.length-e,this.side);return this.length-=e,A}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(e,A,i,n,o,r){return i&&(!(i instanceof t)||!this.widget.compare(i.widget)||e>0&&o<=0||A0)?ia.before(this.dom):ia.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,A){let i=this.widget.coordsAt(this.dom,e,A);if(i)return i;let n=this.dom.getClientRects(),o=null;if(!n.length)return null;let r=this.side?this.side<0:e>0;for(let s=r?n.length-1:0;o=n[s],!(e>0?s==0:s==n.length-1||o.top0?ia.before(this.dom):ia.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return tn.empty}get isHidden(){return!0}};Pl.prototype.children=g3.prototype.children=l3.prototype.children=uF;function JtA(t,e){let A=t.dom,{children:i}=t,n=0;for(let o=0;no&&e0;o--){let r=i[o-1];if(r.dom.parentNode==A)return r.domAtPos(r.length)}for(let o=n;o0&&e instanceof N1&&n.length&&(i=n[n.length-1])instanceof N1&&i.mark.eq(e.mark)?YtA(i,e.children[0],A-1):(n.push(e),e.setParent(t)),t.length+=e.length}function TtA(t,e,A){let i=null,n=-1,o=null,r=-1;function s(c,g){for(let I=0,C=0;I=g&&(d.children.length?s(d,g-C):(!o||o.isHidden&&(A>0||sLA(o,d)))&&(B>g||C==B&&d.getSide()>0)?(o=d,r=g-C):(C-1?1:0)!=n.length-(A&&n.indexOf(A)>-1?1:0))return!1;for(let o of i)if(o!=A&&(n.indexOf(o)==-1||t[o]!==e[o]))return!1;return!0}function KN(t,e,A){let i=!1;if(e)for(let n in e)A&&n in A||(i=!0,n=="style"?t.style.cssText="":t.removeAttribute(n));if(A)for(let n in A)e&&e[n]==A[n]||(i=!0,n=="style"?t.style.cssText=A[n]:t.setAttribute(n,A[n]));return i}function aLA(t){let e=Object.create(null);for(let A=0;A0?3e8:-4e8:A>0?1e8:-1e8,new F1(e,A,A,i,e.widget||null,!1)}static replace(e){let A=!!e.block,i,n;if(e.isBlockGap)i=-5e8,n=4e8;else{let{start:o,end:r}=HtA(e,A);i=(o?A?-3e8:-1:5e8)-1,n=(r?A?2e8:1:-6e8)+1}return new F1(e,i,n,A,e.widget||null,!0)}static line(e){return new C3(e)}static set(e,A=!1){return Io.of(e,A)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};ht.none=Io.empty;var I3=class t extends ht{constructor(e){let{start:A,end:i}=HtA(e);super(A?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var A,i;return this==e||e instanceof t&&this.tagName==e.tagName&&(this.class||((A=this.attrs)===null||A===void 0?void 0:A.class))==(e.class||((i=e.attrs)===null||i===void 0?void 0:i.class))&&Aw(this.attrs,e.attrs,"class")}range(e,A=e){if(e>=A)throw new RangeError("Mark decorations may not be empty");return super.range(e,A)}};I3.prototype.point=!1;var C3=class t extends ht{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof t&&this.spec.class==e.spec.class&&Aw(this.spec.attributes,e.spec.attributes)}range(e,A=e){if(A!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,A)}};C3.prototype.mapMode=us.TrackBefore;C3.prototype.point=!0;var F1=class t extends ht{constructor(e,A,i,n,o,r){super(A,i,o,e),this.block=n,this.isReplace=r,this.mapMode=n?A<=0?us.TrackBefore:us.TrackAfter:us.TrackDel}get type(){return this.startSide!=this.endSide?na.WidgetRange:this.startSide<=0?na.WidgetBefore:na.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof t&&cLA(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,A=e){if(this.isReplace&&(e>A||e==A&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&A!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,A)}};F1.prototype.point=!0;function HtA(t,e=!1){let{inclusiveStart:A,inclusiveEnd:i}=t;return A==null&&(A=t.inclusive),i==null&&(i=t.inclusive),{start:A??e,end:i??e}}function cLA(t,e){return t==e||!!(t&&e&&t.compare(e))}function PD(t,e,A,i=0){let n=A.length-1;n>=0&&A[n]+i>=t?A[n]=Math.max(A[n],e):A.push(t,e)}var ps=class t extends No{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,A,i,n,o,r){if(i){if(!(i instanceof t))return!1;this.dom||i.transferDOM(this)}return n&&this.setDeco(i?i.attrs:null),GtA(this,e,A,i?i.children.slice():[],o,r),!0}split(e){let A=new t;if(A.breakAfter=this.breakAfter,this.length==0)return A;let{i,off:n}=this.childPos(e);n&&(A.append(this.children[i].split(n),0),this.children[i].merge(n,this.children[i].length,null,!1,0,0),i++);for(let o=i;o0&&this.children[i-1].length==0;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=e,A}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){Aw(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,A){YtA(this,e,A)}addLineDeco(e){let A=e.spec.attributes,i=e.spec.class;A&&(this.attrs=GN(A,this.attrs||{})),i&&(this.attrs=GN({class:i},this.attrs||{}))}domAtPos(e){return JtA(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.flags|=6)}sync(e,A){var i;this.dom?this.flags&4&&(LtA(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(KN(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,A);let n=this.dom.lastChild;for(;n&&No.get(n)instanceof N1;)n=n.lastChild;if(!n||!this.length||n.nodeName!="BR"&&((i=No.get(n))===null||i===void 0?void 0:i.isEditable)==!1&&(!it.ios||!this.children.some(o=>o instanceof Pl))){let o=document.createElement("BR");o.cmIgnore=!0,this.dom.appendChild(o)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,A;for(let i of this.children){if(!(i instanceof Pl)||/[^ -~]/.test(i.text))return null;let n=c3(i.dom);if(n.length!=1)return null;e+=n[0].width,A=n[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:A}:null}coordsAt(e,A){let i=TtA(this,e,A);if(!this.children.length&&i&&this.parent){let{heightOracle:n}=this.parent.view.viewState,o=i.bottom-i.top;if(Math.abs(o-n.lineHeight)<2&&n.textHeight=A){if(o instanceof t)return o;if(r>A)break}n=r+o.breakAfter}return null}},SC=class t extends No{constructor(e,A,i){super(),this.widget=e,this.length=A,this.deco=i,this.breakAfter=0,this.prevWidget=null}merge(e,A,i,n,o,r){return i&&(!(i instanceof t)||!this.widget.compare(i.widget)||e>0&&o<=0||A0}},d3=class extends Cc{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}},t3=class t{constructor(e,A,i,n){this.doc=e,this.pos=A,this.end=i,this.disallowBlockEffectsFor=n,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=A}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof SC&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new ps),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(_D(new l3(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,!this.posCovered()&&!(e&&this.content.length&&this.content[this.content.length-1]instanceof SC)&&this.getLine()}buildText(e,A,i){for(;e>0;){if(this.textOff==this.text.length){let{value:o,lineBreak:r,done:s}=this.cursor.next(this.skip);if(this.skip=0,s)throw new Error("Ran out of text content when drawing inline views");if(r){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=o,this.textOff=0}let n=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(A.slice(A.length-i)),this.getLine().append(_D(new Pl(this.text.slice(this.textOff,this.textOff+n)),A),i),this.atCursorPos=!0,this.textOff+=n,e-=n,i=0}}span(e,A,i,n){this.buildText(A-e,i,n),this.pos=A,this.openStart<0&&(this.openStart=n)}point(e,A,i,n,o,r){if(this.disallowBlockEffectsFor[r]&&i instanceof F1){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(A>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let s=A-e;if(i instanceof F1)if(i.block)i.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new SC(i.widget||PeA.block,s,i));else{let a=g3.create(i.widget||PeA.inline,s,s?0:i.startSide),c=this.atCursorPos&&!a.isEditable&&o<=n.length&&(e0),g=!a.isEditable&&(en.length||i.startSide<=0),I=this.getLine();this.pendingBuffer==2&&!c&&!a.isEditable&&(this.pendingBuffer=0),this.flushBuffer(n),c&&(I.append(_D(new l3(1),n),o),o=n.length+Math.max(0,o-n.length)),I.append(_D(a,n),o),this.atCursorPos=g,this.pendingBuffer=g?en.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=n.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);s&&(this.textOff+s<=this.text.length?this.textOff+=s:(this.skip+=s-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=A),this.openStart<0&&(this.openStart=o)}static build(e,A,i,n,o){let r=new t(e,A,i,o);return r.openEnd=Io.spans(n,A,i,r),r.openStart<0&&(r.openStart=r.openEnd),r.finish(r.openEnd),r}};function _D(t,e){for(let A of e)t=new N1(A,[t],t.length);return t}var PeA=(()=>{class t extends Cc{constructor(A){super(),this.tag=A}eq(A){return A.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(A){return A.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}return t.inline=new t("span"),t.block=new t("div"),t})(),Co=function(t){return t[t.LTR=0]="LTR",t[t.RTL=1]="RTL",t}(Co||(Co={})),xC=Co.LTR,hF=Co.RTL;function OtA(t){let e=[];for(let A=0;A=A){if(s.level==i)return r;(o<0||(n!=0?n<0?s.fromA:e[o].level>s.level))&&(o=r)}}if(o<0)throw new RangeError("Index out of range");return o}};function PtA(t,e){if(t.length!=e.length)return!1;for(let A=0;A=0;E-=3)if(Yl[E+1]==-d){let u=Yl[E+2],h=u&2?n:u&4?u&1?o:n:0;h&&(vo[I]=vo[Yl[E]]=h),s=E;break}}else{if(Yl.length==189)break;Yl[s++]=I,Yl[s++]=C,Yl[s++]=a}else if((B=vo[I])==2||B==1){let E=B==n;a=E?0:1;for(let u=s-3;u>=0;u-=3){let h=Yl[u+2];if(h&2)break;if(E)Yl[u+2]|=2;else{if(h&4)break;Yl[u+2]|=4}}}}}function BLA(t,e,A,i){for(let n=0,o=i;n<=A.length;n++){let r=n?A[n-1].to:t,s=na;)B==u&&(B=A[--E].from,u=E?A[E-1].to:t),vo[--B]=d;a=g}else o=c,a++}}}function JN(t,e,A,i,n,o,r){let s=i%2?2:1;if(i%2==n%2)for(let a=e,c=0;aa&&r.push(new Hl(a,E.from,d));let u=E.direction==xC!=!(d%2);YN(t,u?i+1:i,n,E.inner,E.from,E.to,r),a=E.to}B=E.to}else{if(B==A||(g?vo[B]!=s:vo[B]==s))break;B++}C?JN(t,a,B,i+1,n,C,r):ae;){let g=!0,I=!1;if(!c||a>o[c-1].to){let E=vo[a-1];E!=s&&(g=!1,I=E==16)}let C=!g&&s==1?[]:null,d=g?i:i+1,B=a;A:for(;;)if(c&&B==o[c-1].to){if(I)break A;let E=o[--c];if(!g)for(let u=E.from,h=c;;){if(u==e)break A;if(h&&o[h-1].to==u)u=o[--h].from;else{if(vo[u-1]==s)break A;break}}if(C)C.push(E);else{E.tovo.length;)vo[vo.length]=256;let i=[],n=e==xC?0:1;return YN(t,n,n,A,0,t.length,i),i}function jtA(t){return[new Hl(0,t,0)]}var qtA="";function QLA(t,e,A,i,n){var o;let r=i.head-t.from,s=Hl.find(e,r,(o=i.bidiLevel)!==null&&o!==void 0?o:-1,i.assoc),a=e[s],c=a.side(n,A);if(r==c){let C=s+=n?1:-1;if(C<0||C>=e.length)return null;a=e[s=C],r=a.side(!n,A),c=a.side(n,A)}let g=br(t.text,r,a.forward(n,A));(ga.to)&&(g=c),qtA=t.text.slice(Math.min(r,g),Math.max(r,g));let I=s==(n?e.length-1:0)?null:e[s+(n?1:-1)];return I&&g==c&&I.level+(n?0:1)t.some(e=>e)}),eiA=qe.define({combine:t=>t.some(e=>e)}),tiA=qe.define(),i3=class t{constructor(e,A="nearest",i="nearest",n=5,o=5,r=!1){this.range=e,this.y=A,this.x=i,this.yMargin=n,this.xMargin=o,this.isSnapshot=r}map(e){return e.empty?this:new t(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new t(ae.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},GD=Ki.define({map:(t,e)=>t.map(e)}),iiA=Ki.define();function is(t,e,A){let i=t.facet(XtA);i.length?i[0](e):window.onerror&&window.onerror(String(e),A,void 0,void 0,e)||(A?console.error(A+":",e):console.error(e))}var P0=qe.define({combine:t=>t.length?t[0]:!0}),hLA=0,YE=qe.define({combine(t){return t.filter((e,A)=>{for(let i=0;i{let a=[];return r&&a.push(B3.of(c=>{let g=c.plugin(s);return g?r(g):ht.none})),o&&a.push(o(s)),a})}static fromClass(e,A){return t.define((i,n)=>new e(i,n),A)}},n3=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let A=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(A)}catch(i){if(is(A.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(A){is(e.state,A,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var A;if(!((A=this.value)===null||A===void 0)&&A.destroy)try{this.value.destroy()}catch(i){is(e.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},qeA=qe.define(),TN=qe.define(),B3=qe.define(),niA=qe.define(),Bw=qe.define(),oiA=qe.define();function VeA(t,e){let A=t.state.facet(oiA);if(!A.length)return A;let i=A.map(o=>o instanceof Function?o(t):o),n=[];return Io.spans(i,e.from,e.to,{point(){},span(o,r,s,a){let c=o-e.from,g=r-e.from,I=n;for(let C=s.length-1;C>=0;C--,a--){let d=s[C].spec.bidiIsolate,B;if(d==null&&(d=uLA(e.text,c,g)),a>0&&I.length&&(B=I[I.length-1]).to==c&&B.direction==d)B.to=g,I=B.inner;else{let E={from:c,to:g,direction:d,inner:[]};I.push(E),I=E.inner}}}}),n}var riA=qe.define();function pF(t){let e=0,A=0,i=0,n=0;for(let o of t.state.facet(riA)){let r=o(t);r&&(r.left!=null&&(e=Math.max(e,r.left)),r.right!=null&&(A=Math.max(A,r.right)),r.top!=null&&(i=Math.max(i,r.top)),r.bottom!=null&&(n=Math.max(n,r.bottom)))}return{left:e,right:A,top:i,bottom:n}}var Z4=qe.define(),Ol=class t{constructor(e,A,i,n){this.fromA=e,this.toA=A,this.fromB=i,this.toB=n}join(e){return new t(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let A=e.length,i=this;for(;A>0;A--){let n=e[A-1];if(!(n.fromA>i.toA)){if(n.toAg)break;o+=2}if(!a)return i;new t(a.fromA,a.toA,a.fromB,a.toB).addToSet(i),r=a.toA,s=a.toB}}},ew=class t{constructor(e,A,i){this.view=e,this.state=A,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=hs.empty(this.startState.doc.length);for(let o of i)this.changes=this.changes.compose(o.changes);let n=[];this.changes.iterChangedRanges((o,r,s,a)=>n.push(new Ol(o,r,s,a))),this.changedRanges=n}static create(e,A,i){return new t(e,A,i)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},tw=class extends No{get length(){return this.view.state.doc.length}constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.editContextFormatting=ht.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new ps],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new Ol(0,0,0,e.state.doc.length)],0,null)}update(e){var A;let i=e.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:c,toA:g})=>gthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let n=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((A=this.domChanged)===null||A===void 0)&&A.newSel?n=this.domChanged.newSel.head:!vLA(e.changes,this.hasComposition)&&!e.selectionSet&&(n=e.state.selection.main.head));let o=n>-1?mLA(this.view,e.changes,n):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:c,to:g}=this.hasComposition;i=new Ol(c,g,e.changes.mapPos(c,-1),e.changes.mapPos(g,1)).addToSet(i.slice())}this.hasComposition=o?{from:o.range.fromB,to:o.range.toB}:null,(it.ie||it.chrome)&&!o&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let r=this.decorations,s=this.updateDeco(),a=wLA(r,s,e.changes);return i=Ol.extendWithRanges(i,a),!(this.flags&7)&&i.length==0?!1:(this.updateInner(i,e.startState.doc.length,o),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,A,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,A,i);let{observer:n}=this.view;n.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let r=it.chrome||it.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,r),this.flags&=-8,r&&(r.written||n.selectionRange.focusNode!=r.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(r=>r.flags&=-9);let o=[];if(this.view.viewport.from||this.view.viewport.to=0?n[r]:null;if(!s)break;let{fromA:a,toA:c,fromB:g,toB:I}=s,C,d,B,E;if(i&&i.range.fromBg){let R=t3.build(this.view.state.doc,g,i.range.fromB,this.decorations,this.dynamicDecorationMap),D=t3.build(this.view.state.doc,i.range.toB,I,this.decorations,this.dynamicDecorationMap);d=R.breakAtStart,B=R.openStart,E=D.openEnd;let G=this.compositionView(i);D.breakAtStart?G.breakAfter=1:D.content.length&&G.merge(G.length,G.length,D.content[0],!1,D.openStart,0)&&(G.breakAfter=D.content[0].breakAfter,D.content.shift()),R.content.length&&G.merge(0,0,R.content[R.content.length-1],!0,0,R.openEnd)&&R.content.pop(),C=R.content.concat(G).concat(D.content)}else({content:C,breakAtStart:d,openStart:B,openEnd:E}=t3.build(this.view.state.doc,g,I,this.decorations,this.dynamicDecorationMap));let{i:u,off:h}=o.findPos(c,1),{i:w,off:x}=o.findPos(a,-1);_tA(this,w,x,u,h,C,d,B,E)}i&&this.fixCompositionDOM(i)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let A of e.transactions)for(let i of A.effects)i.is(iiA)&&(this.editContextFormatting=i.value)}compositionView(e){let A=new Pl(e.text.nodeValue);A.flags|=8;for(let{deco:n}of e.marks)A=new N1(n,[A],A.length);let i=new ps;return i.append(A,0),i}fixCompositionDOM(e){let A=(o,r)=>{r.flags|=8|(r.children.some(a=>a.flags&7)?1:0),this.markedForComposition.add(r);let s=No.get(o);s&&s!=r&&(s.dom=null),r.setDOM(o)},i=this.childPos(e.range.fromB,1),n=this.children[i.i];A(e.line,n);for(let o=e.marks.length-1;o>=-1;o--)i=n.childPos(i.off,1),n=n.children[i.i],A(o>=0?e.marks[o].node:e.text,n)}updateSelection(e=!1,A=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let i=this.view.root.activeElement,n=i==this.dom,o=!n&&!(this.view.state.facet(P0)||this.dom.tabIndex>-1)&&zD(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(n||A||o))return;let r=this.forceSelection;this.forceSelection=!1;let s=this.view.state.selection.main,a=this.moveToLine(this.domAtPos(s.anchor)),c=s.empty?a:this.moveToLine(this.domAtPos(s.head));if(it.gecko&&s.empty&&!this.hasComposition&&fLA(a)){let I=document.createTextNode("");this.view.observer.ignore(()=>a.node.insertBefore(I,a.node.childNodes[a.offset]||null)),a=c=new ia(I,0),r=!0}let g=this.view.observer.selectionRange;(r||!g.focusNode||(!e3(a.node,a.offset,g.anchorNode,g.anchorOffset)||!e3(c.node,c.offset,g.focusNode,g.focusOffset))&&!this.suppressWidgetCursorChange(g,s))&&(this.view.observer.ignore(()=>{it.android&&it.chrome&&this.dom.contains(g.focusNode)&&yLA(g.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let I=a3(this.view.root);if(I)if(s.empty){if(it.gecko){let C=pLA(a.node,a.offset);if(C&&C!=3){let d=(C==1?NtA:FtA)(a.node,a.offset);d&&(a=new ia(d.node,d.offset))}}I.collapse(a.node,a.offset),s.bidiLevel!=null&&I.caretBidiLevel!==void 0&&(I.caretBidiLevel=s.bidiLevel)}else if(I.extend){I.collapse(a.node,a.offset);try{I.extend(c.node,c.offset)}catch{}}else{let C=document.createRange();s.anchor>s.head&&([a,c]=[c,a]),C.setEnd(c.node,c.offset),C.setStart(a.node,a.offset),I.removeAllRanges(),I.addRange(C)}o&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())}),this.view.observer.setSelectionRange(a,c)),this.impreciseAnchor=a.precise?null:new ia(g.anchorNode,g.anchorOffset),this.impreciseHead=c.precise?null:new ia(g.focusNode,g.focusOffset)}suppressWidgetCursorChange(e,A){return this.hasComposition&&A.empty&&e3(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==A.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,A=e.state.selection.main,i=a3(e.root),{anchorNode:n,anchorOffset:o}=e.observer.selectionRange;if(!i||!A.empty||!A.assoc||!i.modify)return;let r=ps.find(this,A.head);if(!r)return;let s=r.posAtStart;if(A.head==s||A.head==s+r.length)return;let a=this.coordsAt(A.head,-1),c=this.coordsAt(A.head,1);if(!a||!c||a.bottom>c.top)return;let g=this.domAtPos(A.head+A.assoc);i.collapse(g.node,g.offset),i.modify("move",A.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let I=e.observer.selectionRange;e.docView.posFromDOM(I.anchorNode,I.anchorOffset)!=A.from&&i.collapse(n,o)}moveToLine(e){let A=this.dom,i;if(e.node!=A)return e;for(let n=e.offset;!i&&n=0;n--){let o=No.get(A.childNodes[n]);o instanceof ps&&(i=o.domAtPos(o.length))}return i?new ia(i.node,i.offset,!0):e}nearest(e){for(let A=e;A;){let i=No.get(A);if(i&&i.rootView==this)return i;A=A.parentNode}return null}posFromDOM(e,A){let i=this.nearest(e);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(e,A)+i.posAtStart}domAtPos(e){let{i:A,off:i}=this.childCursor().findPos(e,-1);for(;A=0;r--){let s=this.children[r],a=o-s.breakAfter,c=a-s.length;if(ae||s.covers(1))&&(!i||s instanceof ps&&!(i instanceof ps&&A>=0)))i=s,n=c;else if(i&&c==e&&a==e&&s instanceof SC&&Math.abs(A)<2){if(s.deco.startSide<0)break;r&&(i=null)}o=c}return i?i.coordsAt(e-n,A):null}coordsForChar(e){let{i:A,off:i}=this.childPos(e,1),n=this.children[A];if(!(n instanceof ps))return null;for(;n.children.length;){let{i:s,off:a}=n.childPos(i,1);for(;;s++){if(s==n.children.length)return null;if((n=n.children[s]).length)break}i=a}if(!(n instanceof Pl))return null;let o=br(n.text,i);if(o==i)return null;let r=LC(n.dom,i,o).getClientRects();for(let s=0;sMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,s=-1,a=this.view.textDirection==Co.LTR;for(let c=0,g=0;gn)break;if(c>=i){let d=I.dom.getBoundingClientRect();if(A.push(d.height),r){let B=I.dom.lastChild,E=B?c3(B):[];if(E.length){let u=E[E.length-1],h=a?u.right-d.left:d.right-u.left;h>s&&(s=h,this.minWidth=o,this.minWidthFrom=c,this.minWidthTo=C)}}}c=C+I.breakAfter}return A}textDirectionAt(e){let{i:A}=this.childPos(e,1);return getComputedStyle(this.children[A].dom).direction=="rtl"?Co.RTL:Co.LTR}measureTextSize(){for(let o of this.children)if(o instanceof ps){let r=o.measureTextSize();if(r)return r}let e=document.createElement("div"),A,i,n;return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let o=c3(e.firstChild)[0];A=e.getBoundingClientRect().height,i=o?o.width/27:7,n=o?o.height:A,e.remove()}),{lineHeight:A,charWidth:i,textHeight:n}}childCursor(e=this.length){let A=this.children.length;return A&&(e-=this.children[--A].length),new $D(this.children,e,A)}computeBlockGapDeco(){let e=[],A=this.view.viewState;for(let i=0,n=0;;n++){let o=n==A.viewports.length?null:A.viewports[n],r=o?o.from-1:this.length;if(r>i){let s=(A.lineBlockAt(r).bottom-A.lineBlockAt(i).top)/this.view.scaleY;e.push(ht.replace({widget:new d3(s),block:!0,inclusive:!0,isBlockGap:!0}).range(i,r))}if(!o)break;i=o.to+1}return ht.set(e)}updateDeco(){let e=1,A=this.view.state.facet(B3).map(o=>(this.dynamicDecorationMap[e++]=typeof o=="function")?o(this.view):o),i=!1,n=this.view.state.facet(niA).map((o,r)=>{let s=typeof o=="function";return s&&(i=!0),s?o(this.view):o});for(n.length&&(this.dynamicDecorationMap[e++]=i,A.push(Io.join(n))),this.decorations=[this.editContextFormatting,...A,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];eA.anchor?-1:1),n;if(!i)return;!A.empty&&(n=this.coordsAt(A.anchor,A.anchor>A.head?-1:1))&&(i={left:Math.min(i.left,n.left),top:Math.min(i.top,n.top),right:Math.max(i.right,n.right),bottom:Math.max(i.bottom,n.bottom)});let o=pF(this.view),r={left:i.left-o.left,top:i.top-o.top,right:i.right+o.right,bottom:i.bottom+o.bottom},{offsetWidth:s,offsetHeight:a}=this.view.scrollDOM;ALA(this.view.scrollDOM,r,A.head{ie.from&&(A=!0)}),A}function MLA(t,e,A=1){let i=t.charCategorizer(e),n=t.doc.lineAt(e),o=e-n.from;if(n.length==0)return ae.cursor(e);o==0?A=1:o==n.length&&(A=-1);let r=o,s=o;A<0?r=br(n.text,o,!1):s=br(n.text,o);let a=i(n.text.slice(r,s));for(;r>0;){let c=br(n.text,r,!1);if(i(n.text.slice(c,r))!=a)break;r=c}for(;st?e.left-t:Math.max(0,t-e.right)}function kLA(t,e){return e.top>t?e.top-t:Math.max(0,t-e.bottom)}function yN(t,e){return t.tope.top+1}function ZeA(t,e){return et.bottom?{top:t.top,left:t.left,right:t.right,bottom:e}:t}function HN(t,e,A){let i,n,o,r,s=!1,a,c,g,I;for(let B=t.firstChild;B;B=B.nextSibling){let E=c3(B);for(let u=0;ux||r==x&&o>w)&&(i=B,n=h,o=w,r=x,s=w?e0:uh.bottom&&(!g||g.bottomh.top)&&(c=B,I=h):g&&yN(g,h)?g=WeA(g,h.bottom):I&&yN(I,h)&&(I=ZeA(I,h.top))}}if(g&&g.bottom>=A?(i=a,n=g):I&&I.top<=A&&(i=c,n=I),!i)return{node:t,offset:0};let C=Math.max(n.left,Math.min(n.right,e));if(i.nodeType==3)return XeA(i,C,A);if(s&&i.contentEditable!="false")return HN(i,C,A);let d=Array.prototype.indexOf.call(t.childNodes,i)+(e>=(n.left+n.right)/2?1:0);return{node:t,offset:d}}function XeA(t,e,A){let i=t.nodeValue.length,n=-1,o=1e9,r=0;for(let s=0;sA?g.top-A:A-g.bottom)-1;if(g.left-1<=e&&g.right+1>=e&&I=(g.left+g.right)/2,d=C;if((it.chrome||it.gecko)&&LC(t,s).getBoundingClientRect().left==g.right&&(d=!C),I<=0)return{node:t,offset:s+(d?1:0)};n=s+(d?1:0),o=I}}}return{node:t,offset:n>-1?n:r>0?t.nodeValue.length:0}}function aiA(t,e,A,i=-1){var n,o;let r=t.contentDOM.getBoundingClientRect(),s=r.top+t.viewState.paddingTop,a,{docHeight:c}=t.viewState,{x:g,y:I}=e,C=I-s;if(C<0)return 0;if(C>c)return t.state.doc.length;for(let R=t.viewState.heightOracle.textHeight/2,D=!1;a=t.elementAtHeight(C),a.type!=na.Text;)for(;C=i>0?a.bottom+R:a.top-R,!(C>=0&&C<=c);){if(D)return A?null:0;D=!0,i=-i}I=s+C;let d=a.from;if(dt.viewport.to)return t.viewport.to==t.state.doc.length?t.state.doc.length:A?null:$eA(t,r,a,g,I);let B=t.dom.ownerDocument,E=t.root.elementFromPoint?t.root:B,u=E.elementFromPoint(g,I);u&&!t.contentDOM.contains(u)&&(u=null),u||(g=Math.max(r.left+1,Math.min(r.right-1,g)),u=E.elementFromPoint(g,I),u&&!t.contentDOM.contains(u)&&(u=null));let h,w=-1;if(u&&((n=t.docView.nearest(u))===null||n===void 0?void 0:n.isEditable)!=!1){if(B.caretPositionFromPoint){let R=B.caretPositionFromPoint(g,I);R&&({offsetNode:h,offset:w}=R)}else if(B.caretRangeFromPoint){let R=B.caretRangeFromPoint(g,I);R&&({startContainer:h,startOffset:w}=R,(!t.contentDOM.contains(h)||it.safari&&SLA(h,w,g)||it.chrome&&RLA(h,w,g))&&(h=void 0))}h&&(w=Math.min(zl(h),w))}if(!h||!t.docView.dom.contains(h)){let R=ps.find(t.docView,d);if(!R)return C>a.top+a.height/2?a.to:a.from;({node:h,offset:w}=HN(R.dom,g,I))}let x=t.docView.nearest(h);if(!x)return null;if(x.isWidget&&((o=x.dom)===null||o===void 0?void 0:o.nodeType)==1){let R=x.dom.getBoundingClientRect();return e.yt.defaultLineHeight*1.5){let s=t.viewState.heightOracle.textHeight,a=Math.floor((n-A.top-(t.defaultLineHeight-s)*.5)/s);o+=a*t.viewState.heightOracle.lineLength}let r=t.state.sliceDoc(A.from,A.to);return A.from+ND(r,o,t.state.tabSize)}function SLA(t,e,A){let i,n=t;if(t.nodeType!=3||e!=(i=t.nodeValue.length))return!1;for(;;){let o=n.nextSibling;if(o){if(o.nodeName=="BR")break;return!1}else{let r=n.parentNode;if(!r||r.nodeName=="DIV")break;n=r}}return LC(t,i-1,i).getBoundingClientRect().right>A}function RLA(t,e,A){if(e!=0)return!1;for(let n=t;;){let o=n.parentNode;if(!o||o.nodeType!=1||o.firstChild!=n)return!1;if(o.classList.contains("cm-line"))break;n=o}let i=t.nodeType==1?t.getBoundingClientRect():LC(t,0,Math.max(t.nodeValue.length,1)).getBoundingClientRect();return A-i.left>5}function ON(t,e,A){let i=t.lineBlockAt(e);if(Array.isArray(i.type)){let n;for(let o of i.type){if(o.from>e)break;if(!(o.toe)return o;(!n||o.type==na.Text&&(n.type!=o.type||(A<0?o.frome)))&&(n=o)}}return n||i}return i}function LLA(t,e,A,i){let n=ON(t,e.head,e.assoc||-1),o=!i||n.type!=na.Text||!(t.lineWrapping||n.widgetLineBreaks)?null:t.coordsAtPos(e.assoc<0&&e.head>n.from?e.head-1:e.head);if(o){let r=t.dom.getBoundingClientRect(),s=t.textDirectionAt(n.from),a=t.posAtCoords({x:A==(s==Co.LTR)?r.right-1:r.left+1,y:(o.top+o.bottom)/2});if(a!=null)return ae.cursor(a,A?-1:1)}return ae.cursor(A?n.to:n.from,A?-1:1)}function AtA(t,e,A,i){let n=t.state.doc.lineAt(e.head),o=t.bidiSpans(n),r=t.textDirectionAt(n.from);for(let s=e,a=null;;){let c=QLA(n,o,r,s,A),g=qtA;if(!c){if(n.number==(A?t.state.doc.lines:1))return s;g=` +`,n=t.state.doc.line(n.number+(A?1:-1)),o=t.bidiSpans(n),c=t.visualLineSide(n,!A)}if(a){if(!a(g))return s}else{if(!i)return c;a=i(g)}s=c}}function xLA(t,e,A){let i=t.state.charCategorizer(e),n=i(A);return o=>{let r=i(o);return n==lo.Space&&(n=r),n==r}}function NLA(t,e,A,i){let n=e.head,o=A?1:-1;if(n==(A?t.state.doc.length:0))return ae.cursor(n,e.assoc);let r=e.goalColumn,s,a=t.contentDOM.getBoundingClientRect(),c=t.coordsAtPos(n,e.assoc||-1),g=t.documentTop;if(c)r==null&&(r=c.left-a.left),s=o<0?c.top:c.bottom;else{let d=t.viewState.lineBlockAt(n);r==null&&(r=Math.min(a.right-a.left,t.defaultCharacterWidth*(n-d.from))),s=(o<0?d.top:d.bottom)+g}let I=a.left+r,C=i??t.viewState.heightOracle.textHeight>>1;for(let d=0;;d+=10){let B=s+(C+d)*o,E=aiA(t,{x:I,y:B},!1,o);if(Ba.bottom||(o<0?En)){let u=t.docView.coordsForChar(E),h=!u||B{if(e>o&&en(t)),A.from,e.head>A.from?-1:1);return i==A.from?A:ae.cursor(i,io)&&this.lineBreak(),n=r}return this.findPointBefore(i,A),this}readTextNode(e){let A=e.nodeValue;for(let i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,A.length));for(let i=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let o=-1,r=1,s;if(this.lineSeparator?(o=A.indexOf(this.lineSeparator,i),r=this.lineSeparator.length):(s=n.exec(A))&&(o=s.index,r=s[0].length),this.append(A.slice(i,o<0?A.length:o)),o<0)break;if(this.lineBreak(),r>1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=r-1);i=o+r}}readNode(e){if(e.cmIgnore)return;let A=No.get(e),i=A&&A.overrideDOMText;if(i!=null){this.findPointInside(e,i.length);for(let n=i.iter();!n.next().done;)n.lineBreak?this.lineBreak():this.append(n.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,A){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==A&&(i.pos=this.text.length)}findPointInside(e,A){for(let i of this.points)(e.nodeType==3?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+(FLA(e,i.node,i.offset)?A:0))}};function FLA(t,e,A){for(;;){if(!e||A-1;let{impreciseHead:o,impreciseAnchor:r}=e.docView;if(e.state.readOnly&&A>-1)this.newSel=null;else if(A>-1&&(this.bounds=e.docView.domBoundsAround(A,i,0))){let s=o||r?[]:KLA(e),a=new zN(s,e.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=ULA(s,this.bounds.from)}else{let s=e.observer.selectionRange,a=o&&o.node==s.focusNode&&o.offset==s.focusOffset||!LN(e.contentDOM,s.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(s.focusNode,s.focusOffset),c=r&&r.node==s.anchorNode&&r.offset==s.anchorOffset||!LN(e.contentDOM,s.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(s.anchorNode,s.anchorOffset),g=e.viewport;if((it.ios||it.chrome)&&e.state.selection.main.empty&&a!=c&&(g.from>0||g.toDate.now()-100?t.inputState.lastKeyCode:-1;if(e.bounds){let{from:r,to:s}=e.bounds,a=n.from,c=null;(o===8||it.android&&e.text.length=n.from&&A.to<=n.to&&(A.from!=n.from||A.to!=n.to)&&n.to-n.from-(A.to-A.from)<=4?A={from:n.from,to:n.to,insert:t.state.doc.slice(n.from,A.from).append(A.insert).append(t.state.doc.slice(A.to,n.to))}:it.chrome&&A&&A.from==A.to&&A.from==n.head&&A.insert.toString()==` + `&&t.lineWrapping&&(i&&(i=ae.single(i.main.anchor-1,i.main.head-1)),A={from:n.from,to:n.to,insert:tn.of([" "])}),A)return DF(t,A,i,o);if(i&&!i.main.eq(n)){let r=!1,s="select";return t.inputState.lastSelectionTime>Date.now()-50&&(t.inputState.lastSelectionOrigin=="select"&&(r=!0),s=t.inputState.lastSelectionOrigin,s=="select.pointer"&&(i=ciA(t.state.facet(Bw).map(a=>a(t)),i))),t.dispatch({selection:i,scrollIntoView:r,userEvent:s}),!0}else return!1}function DF(t,e,A,i=-1){if(it.ios&&t.inputState.flushIOSKey(e))return!0;let n=t.state.selection.main;if(it.android&&(e.to==n.to&&(e.from==n.from||e.from==n.from-1&&t.state.sliceDoc(e.from,n.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&zE(t.contentDOM,"Enter",13)||(e.from==n.from-1&&e.to==n.to&&e.insert.length==0||i==8&&e.insert.lengthn.head)&&zE(t.contentDOM,"Backspace",8)||e.from==n.from&&e.to==n.to+1&&e.insert.length==0&&zE(t.contentDOM,"Delete",46)))return!0;let o=e.insert.toString();t.inputState.composing>=0&&t.inputState.composing++;let r,s=()=>r||(r=_LA(t,e,A));return t.state.facet($tA).some(a=>a(t,e.from,e.to,o,s))||t.dispatch(s()),!0}function _LA(t,e,A){let i,n=t.state,o=n.selection.main;if(e.from>=o.from&&e.to<=o.to&&e.to-e.from>=(o.to-o.from)/3&&(!A||A.main.empty&&A.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let s=o.frome.to?n.sliceDoc(e.to,o.to):"";i=n.replaceSelection(t.state.toText(s+e.insert.sliceString(0,void 0,t.state.lineBreak)+a))}else{let s=n.changes(e),a=A&&A.main.to<=s.newLength?A.main:void 0;if(n.selection.ranges.length>1&&t.inputState.composing>=0&&e.to<=o.to&&e.to>=o.to-10){let c=t.state.sliceDoc(e.from,e.to),g,I=A&&siA(t,A.main.head);if(I){let B=e.insert.length-(e.to-e.from);g={from:I.from,to:I.to-B}}else g=t.state.doc.lineAt(o.head);let C=o.to-e.to,d=o.to-o.from;i=n.changeByRange(B=>{if(B.from==o.from&&B.to==o.to)return{changes:s,range:a||B.map(s)};let E=B.to-C,u=E-c.length;if(B.to-B.from!=d||t.state.sliceDoc(u,E)!=c||B.to>=g.from&&B.from<=g.to)return{range:B};let h=n.changes({from:u,to:E,insert:e.insert}),w=B.to-o.to;return{changes:h,range:a?ae.range(Math.max(0,a.anchor+w),Math.max(0,a.head+w)):B.map(h)}})}else i={changes:s,selection:a&&n.selection.replaceRange(a)}}let r="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,r+=".compose",t.inputState.compositionFirstChange&&(r+=".start",t.inputState.compositionFirstChange=!1)),n.update(i,{userEvent:r,scrollIntoView:!0})}function GLA(t,e,A,i){let n=Math.min(t.length,e.length),o=0;for(;o0&&s>0&&t.charCodeAt(r-1)==e.charCodeAt(s-1);)r--,s--;if(i=="end"){let a=Math.max(0,o-Math.min(r,s));A-=r+a-o}if(r=r?o-A:0;o-=a,s=o+(s-r),r=o}else if(s=s?o-A:0;o-=a,r=o+(r-s),s=o}return{from:o,toA:r,toB:s}}function KLA(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:A,anchorOffset:i,focusNode:n,focusOffset:o}=t.observer.selectionRange;return A&&(e.push(new iw(A,i)),(n!=A||o!=i)&&e.push(new iw(n,o))),e}function ULA(t,e){if(t.length==0)return null;let A=t[0].pos,i=t.length==2?t[1].pos:A;return A>-1&&i>-1?ae.single(A+e,i+e):null}var jN=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,it.safari&&e.contentDOM.addEventListener("input",()=>null),it.gecko&&AxA(e.contentDOM.ownerDocument)}handleEvent(e){!PLA(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,A){let i=this.handlers[e];if(i){for(let n of i.observers)n(this.view,A);for(let n of i.handlers){if(A.defaultPrevented)break;if(n(this.view,A)){A.preventDefault();break}}}}ensureHandlers(e){let A=JLA(e),i=this.handlers,n=this.view.contentDOM;for(let o in A)if(o!="scroll"){let r=!A[o].handlers.length,s=i[o];s&&r!=!s.handlers.length&&(n.removeEventListener(o,this.handleEvent),s=null),s||n.addEventListener(o,this.handleEvent,{passive:r})}for(let o in i)o!="scroll"&&!A[o]&&n.removeEventListener(o,this.handleEvent);this.handlers=A}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&IiA.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),it.android&&it.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let A;return it.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((A=liA.find(i=>i.keyCode==e.keyCode))&&!e.ctrlKey||YLA.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=A||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let A=this.pendingIOSKey;return!A||A.key=="Enter"&&e&&e.from0?!0:it.safari&&!it.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function etA(t,e){return(A,i)=>{try{return e.call(t,i,A)}catch(n){is(A.state,n)}}}function JLA(t){let e=Object.create(null);function A(i){return e[i]||(e[i]={observers:[],handlers:[]})}for(let i of t){let n=i.spec,o=n&&n.plugin.domEventHandlers,r=n&&n.plugin.domEventObservers;if(o)for(let s in o){let a=o[s];a&&A(s).handlers.push(etA(i.value,a))}if(r)for(let s in r){let a=r[s];a&&A(s).observers.push(etA(i.value,a))}}for(let i in Fg)A(i).handlers.push(Fg[i]);for(let i in Vc)A(i).observers.push(Vc[i]);return e}var liA=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],YLA="dthko",IiA=[16,17,18,20,91,92,224,225],KD=6;function UD(t){return Math.max(0,t)*.7+8}function TLA(t,e){return Math.max(Math.abs(t.clientX-e.clientX),Math.abs(t.clientY-e.clientY))}var qN=class{constructor(e,A,i,n){this.view=e,this.startEvent=A,this.style=i,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=A,this.scrollParents=eLA(e.contentDOM),this.atoms=e.state.facet(Bw).map(r=>r(e));let o=e.contentDOM.ownerDocument;o.addEventListener("mousemove",this.move=this.move.bind(this)),o.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=A.shiftKey,this.multiple=e.state.facet(Dr.allowMultipleSelections)&&HLA(e,A),this.dragging=zLA(e,A)&&BiA(A)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&TLA(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let A=0,i=0,n=0,o=0,r=this.view.win.innerWidth,s=this.view.win.innerHeight;this.scrollParents.x&&({left:n,right:r}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:o,bottom:s}=this.scrollParents.y.getBoundingClientRect());let a=pF(this.view);e.clientX-a.left<=n+KD?A=-UD(n-e.clientX):e.clientX+a.right>=r-KD&&(A=UD(e.clientX-r)),e.clientY-a.top<=o+KD?i=-UD(o-e.clientY):e.clientY+a.bottom>=s-KD&&(i=UD(e.clientY-s)),this.setScrollSpeed(A,i)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,A){this.scrollSpeed={x:e,y:A},e||A?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:A}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),A&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=A,A=0),(e||A)&&this.view.win.scrollBy(e,A),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:A}=this,i=ciA(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!i.eq(A.state.selection,this.dragging===!1))&&this.view.dispatch({selection:i,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(A=>A.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function HLA(t,e){let A=t.state.facet(VtA);return A.length?A[0](e):it.mac?e.metaKey:e.ctrlKey}function OLA(t,e){let A=t.state.facet(ZtA);return A.length?A[0](e):it.mac?!e.altKey:!e.ctrlKey}function zLA(t,e){let{main:A}=t.state.selection;if(A.empty)return!1;let i=a3(t.root);if(!i||i.rangeCount==0)return!0;let n=i.getRangeAt(0).getClientRects();for(let o=0;o=e.clientX&&r.top<=e.clientY&&r.bottom>=e.clientY)return!0}return!1}function PLA(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let A=e.target,i;A!=t.contentDOM;A=A.parentNode)if(!A||A.nodeType==11||(i=No.get(A))&&i.ignoreEvent(e))return!1;return!0}var Fg=Object.create(null),Vc=Object.create(null),CiA=it.ie&&it.ie_version<15||it.ios&&it.webkit_version<604;function jLA(t){let e=t.dom.parentNode;if(!e)return;let A=e.appendChild(document.createElement("textarea"));A.style.cssText="position: fixed; left: -10000px; top: 10px",A.focus(),setTimeout(()=>{t.focus(),A.remove(),diA(t,A.value)},50)}function Ew(t,e,A){for(let i of t.facet(e))A=i(A,t);return A}function diA(t,e){e=Ew(t.state,fF,e);let{state:A}=t,i,n=1,o=A.toText(e),r=o.lines==A.selection.ranges.length;if(VN!=null&&A.selection.ranges.every(a=>a.empty)&&VN==o.toString()){let a=-1;i=A.changeByRange(c=>{let g=A.doc.lineAt(c.from);if(g.from==a)return{range:c};a=g.from;let I=A.toText((r?o.line(n++).text:e)+A.lineBreak);return{changes:{from:g.from,insert:I},range:ae.cursor(c.from+I.length)}})}else r?i=A.changeByRange(a=>{let c=o.line(n++);return{changes:{from:a.from,to:a.to,insert:c.text},range:ae.cursor(a.from+c.length)}}):i=A.replaceSelection(o);t.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}Vc.scroll=t=>{t.inputState.lastScrollTop=t.scrollDOM.scrollTop,t.inputState.lastScrollLeft=t.scrollDOM.scrollLeft};Fg.keydown=(t,e)=>(t.inputState.setSelectionOrigin("select"),e.keyCode==27&&t.inputState.tabFocusMode!=0&&(t.inputState.tabFocusMode=Date.now()+2e3),!1);Vc.touchstart=(t,e)=>{t.inputState.lastTouchTime=Date.now(),t.inputState.setSelectionOrigin("select.pointer")};Vc.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")};Fg.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return!1;let A=null;for(let i of t.state.facet(WtA))if(A=i(t,e),A)break;if(!A&&e.button==0&&(A=ZLA(t,e)),A){let i=!t.hasFocus;t.inputState.startMouseSelection(new qN(t,e,A,i)),i&&t.observer.ignore(()=>{RtA(t.contentDOM);let o=t.root.activeElement;o&&!o.contains(t.contentDOM)&&o.blur()});let n=t.inputState.mouseSelection;if(n)return n.start(e),n.dragging===!1}else t.inputState.setSelectionOrigin("select.pointer");return!1};function ttA(t,e,A,i){if(i==1)return ae.cursor(e,A);if(i==2)return MLA(t.state,e,A);{let n=ps.find(t.docView,e),o=t.state.doc.lineAt(n?n.posAtEnd:e),r=n?n.posAtStart:o.from,s=n?n.posAtEnd:o.to;return se>=A.top&&e<=A.bottom&&t>=A.left&&t<=A.right;function qLA(t,e,A,i){let n=ps.find(t.docView,e);if(!n)return 1;let o=e-n.posAtStart;if(o==0)return 1;if(o==n.length)return-1;let r=n.coordsAt(o,-1);if(r&&itA(A,i,r))return-1;let s=n.coordsAt(o,1);return s&&itA(A,i,s)?1:r&&r.bottom>=i?-1:1}function ntA(t,e){let A=t.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:A,bias:qLA(t,A,e.clientX,e.clientY)}}var VLA=it.ie&&it.ie_version<=11,otA=null,rtA=0,stA=0;function BiA(t){if(!VLA)return t.detail;let e=otA,A=stA;return otA=t,stA=Date.now(),rtA=!e||A>Date.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(rtA+1)%3:1}function ZLA(t,e){let A=ntA(t,e),i=BiA(e),n=t.state.selection;return{update(o){o.docChanged&&(A.pos=o.changes.mapPos(A.pos),n=n.map(o.changes))},get(o,r,s){let a=ntA(t,o),c,g=ttA(t,a.pos,a.bias,i);if(A.pos!=a.pos&&!r){let I=ttA(t,A.pos,A.bias,i),C=Math.min(I.from,g.from),d=Math.max(I.to,g.to);g=C1&&(c=WLA(n,a.pos))?c:s?n.addRange(g):ae.create([g])}}}function WLA(t,e){for(let A=0;A=e)return ae.create(t.ranges.slice(0,A).concat(t.ranges.slice(A+1)),t.mainIndex==A?0:t.mainIndex-(t.mainIndex>A?1:0))}return null}Fg.dragstart=(t,e)=>{let{selection:{main:A}}=t.state;if(e.target.draggable){let n=t.docView.nearest(e.target);if(n&&n.isWidget){let o=n.posAtStart,r=o+n.length;(o>=A.to||r<=A.from)&&(A=ae.range(o,r))}}let{inputState:i}=t;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=A,e.dataTransfer&&(e.dataTransfer.setData("Text",Ew(t.state,mF,t.state.sliceDoc(A.from,A.to))),e.dataTransfer.effectAllowed="copyMove"),!1};Fg.dragend=t=>(t.inputState.draggedContent=null,!1);function atA(t,e,A,i){if(A=Ew(t.state,fF,A),!A)return;let n=t.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:o}=t.inputState,r=i&&o&&OLA(t,e)?{from:o.from,to:o.to}:null,s={from:n,insert:A},a=t.state.changes(r?[r,s]:s);t.focus(),t.dispatch({changes:a,selection:{anchor:a.mapPos(n,-1),head:a.mapPos(n,1)},userEvent:r?"move.drop":"input.drop"}),t.inputState.draggedContent=null}Fg.drop=(t,e)=>{if(!e.dataTransfer)return!1;if(t.state.readOnly)return!0;let A=e.dataTransfer.files;if(A&&A.length){let i=Array(A.length),n=0,o=()=>{++n==A.length&&atA(t,e,i.filter(r=>r!=null).join(t.state.lineBreak),!1)};for(let r=0;r{/[\x00-\x08\x0e-\x1f]{2}/.test(s.result)||(i[r]=s.result),o()},s.readAsText(A[r])}return!0}else{let i=e.dataTransfer.getData("Text");if(i)return atA(t,e,i,!0),!0}return!1};Fg.paste=(t,e)=>{if(t.state.readOnly)return!0;t.observer.flush();let A=CiA?null:e.clipboardData;return A?(diA(t,A.getData("text/plain")||A.getData("text/uri-list")),!0):(jLA(t),!1)};function XLA(t,e){let A=t.dom.parentNode;if(!A)return;let i=A.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=e,i.focus(),i.selectionEnd=e.length,i.selectionStart=0,setTimeout(()=>{i.remove(),t.focus()},50)}function $LA(t){let e=[],A=[],i=!1;for(let n of t.selection.ranges)n.empty||(e.push(t.sliceDoc(n.from,n.to)),A.push(n));if(!e.length){let n=-1;for(let{from:o}of t.selection.ranges){let r=t.doc.lineAt(o);r.number>n&&(e.push(r.text),A.push({from:r.from,to:Math.min(t.doc.length,r.to+1)})),n=r.number}i=!0}return{text:Ew(t,mF,e.join(t.lineBreak)),ranges:A,linewise:i}}var VN=null;Fg.copy=Fg.cut=(t,e)=>{let{text:A,ranges:i,linewise:n}=$LA(t.state);if(!A&&!n)return!1;VN=n?A:null,e.type=="cut"&&!t.state.readOnly&&t.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let o=CiA?null:e.clipboardData;return o?(o.clearData(),o.setData("text/plain",A),!0):(XLA(t,A),!1)};var EiA=Fa.define();function QiA(t,e){let A=[];for(let i of t.facet(AiA)){let n=i(t,e);n&&A.push(n)}return A.length?t.update({effects:A,annotations:EiA.of(!0)}):null}function uiA(t){setTimeout(()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let A=QiA(t.state,e);A?t.dispatch(A):t.update([])}},10)}Vc.focus=t=>{t.inputState.lastFocusTime=Date.now(),!t.scrollDOM.scrollTop&&(t.inputState.lastScrollTop||t.inputState.lastScrollLeft)&&(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),uiA(t)};Vc.blur=t=>{t.observer.clearSelectionRange(),uiA(t)};Vc.compositionstart=Vc.compositionupdate=t=>{t.observer.editContext||(t.inputState.compositionFirstChange==null&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0))};Vc.compositionend=t=>{t.observer.editContext||(t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,it.chrome&&it.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then(()=>t.observer.flush()):setTimeout(()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])},50))};Vc.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()};Fg.beforeinput=(t,e)=>{var A,i;if(e.inputType=="insertReplacementText"&&t.observer.editContext){let o=(A=e.dataTransfer)===null||A===void 0?void 0:A.getData("text/plain"),r=e.getTargetRanges();if(o&&r.length){let s=r[0],a=t.posAtDOM(s.startContainer,s.startOffset),c=t.posAtDOM(s.endContainer,s.endOffset);return DF(t,{from:a,to:c,insert:t.state.toText(o)},null),!0}}let n;if(it.chrome&&it.android&&(n=liA.find(o=>o.inputType==e.inputType))&&(t.observer.delayAndroidKey(n.key,n.keyCode),n.key=="Backspace"||n.key=="Delete")){let o=((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0;setTimeout(()=>{var r;(((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0)>o+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())},100)}return it.ios&&e.inputType=="deleteContentForward"&&t.observer.flushSoon(),it.safari&&e.inputType=="insertText"&&t.inputState.composing>=0&&setTimeout(()=>Vc.compositionend(t,e),20),!1};var ctA=new Set;function AxA(t){ctA.has(t)||(ctA.add(t),t.addEventListener("copy",()=>{}),t.addEventListener("cut",()=>{}))}var gtA=["pre-wrap","normal","pre-line","break-spaces"],PE=!1;function ltA(){PE=!1}var ZN=class{constructor(e){this.lineWrapping=e,this.doc=tn.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,A){let i=this.doc.lineAt(A).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((A-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return gtA.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let A=!1;for(let i=0;i-1,a=Math.round(A)!=Math.round(this.lineHeight)||this.lineWrapping!=s;if(this.lineWrapping=s,this.lineHeight=A,this.charWidth=i,this.textHeight=n,this.lineLength=o,a){this.heightSamples={};for(let c=0;c0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>qD&&(PE=!0),this.height=e)}replace(e,A,i){return t.of(i)}decomposeLeft(e,A){A.push(this)}decomposeRight(e,A){A.push(this)}applyChanges(e,A,i,n){let o=this,r=i.doc;for(let s=n.length-1;s>=0;s--){let{fromA:a,toA:c,fromB:g,toB:I}=n[s],C=o.lineAt(a,zo.ByPosNoHeight,i.setDoc(A),0,0),d=C.to>=c?C:o.lineAt(c,zo.ByPosNoHeight,i,0,0);for(I+=d.to-c,c=d.to;s>0&&C.from<=n[s-1].toA;)a=n[s-1].fromA,g=n[s-1].fromB,s--,ao*2){let s=e[A-1];s.break?e.splice(--A,1,s.left,null,s.right):e.splice(--A,1,s.left,s.right),i+=1+s.break,n-=s.size}else if(o>n*2){let s=e[i];s.break?e.splice(i,1,s.left,null,s.right):e.splice(i,1,s.left,s.right),i+=2+s.break,o-=s.size}else break;else if(n=o&&r(this.blockAt(0,i,n,o))}updateHeight(e,A=0,i=!1,n){return n&&n.from<=A&&n.more&&this.setHeight(n.heights[n.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}},qc=class t extends ow{constructor(e,A){super(e,A,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,A,i,n){return new Tl(n,this.length,i,this.height,this.breaks)}replace(e,A,i){let n=i[0];return i.length==1&&(n instanceof t||n instanceof x1&&n.flags&4)&&Math.abs(this.length-n.length)<10?(n instanceof x1?n=new t(n.length,this.height):n.height=this.height,this.outdated||(n.outdated=!1),n):Ic.of(i)}updateHeight(e,A=0,i=!1,n){return n&&n.from<=A&&n.more?this.setHeight(n.heights[n.index++]):(i||this.outdated)&&this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},x1=class t extends Ic{constructor(e){super(e,0)}heightMetrics(e,A){let i=e.doc.lineAt(A).number,n=e.doc.lineAt(A+this.length).number,o=n-i+1,r,s=0;if(e.lineWrapping){let a=Math.min(this.height,e.lineHeight*o);r=a/o,this.length>o+1&&(s=(this.height-a)/(this.length-o-1))}else r=this.height/o;return{firstLine:i,lastLine:n,perLine:r,perChar:s}}blockAt(e,A,i,n){let{firstLine:o,lastLine:r,perLine:s,perChar:a}=this.heightMetrics(A,n);if(A.lineWrapping){let c=n+(e0){let o=i[i.length-1];o instanceof t?i[i.length-1]=new t(o.length+n):i.push(null,new t(n-1))}if(e>0){let o=i[0];o instanceof t?i[0]=new t(e+o.length):i.unshift(new t(e-1),null)}return Ic.of(i)}decomposeLeft(e,A){A.push(new t(e-1),null)}decomposeRight(e,A){A.push(null,new t(this.length-e-1))}updateHeight(e,A=0,i=!1,n){let o=A+this.length;if(n&&n.from<=A+this.length&&n.more){let r=[],s=Math.max(A,n.from),a=-1;for(n.from>A&&r.push(new t(n.from-A-1).updateHeight(e,A));s<=o&&n.more;){let g=e.doc.lineAt(s).length;r.length&&r.push(null);let I=n.heights[n.index++];a==-1?a=I:Math.abs(I-a)>=qD&&(a=-2);let C=new qc(g,I);C.outdated=!1,r.push(C),s+=g+1}s<=o&&r.push(null,new t(o-s).updateHeight(e,s));let c=Ic.of(r);return(a<0||Math.abs(c.height-this.height)>=qD||Math.abs(a-this.heightMetrics(e,A).perLine)>=qD)&&(PE=!0),nw(this,c)}else(i||this.outdated)&&(this.setHeight(e.heightForGap(A,A+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},XN=class extends Ic{constructor(e,A,i){super(e.length+A+i.length,e.height+i.height,A|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return this.flags&1}blockAt(e,A,i,n){let o=i+this.left.height;return es))return c;let g=A==zo.ByPosNoHeight?zo.ByPosNoHeight:zo.ByPos;return a?c.join(this.right.lineAt(s,g,i,r,s)):this.left.lineAt(s,g,i,n,o).join(c)}forEachLine(e,A,i,n,o,r){let s=n+this.left.height,a=o+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,A,i,s,a,r);else{let c=this.lineAt(a,zo.ByPos,i,n,o);e=e&&c.from<=A&&r(c),A>c.to&&this.right.forEachLine(c.to+1,A,i,s,a,r)}}replace(e,A,i){let n=this.left.length+this.break;if(Athis.left.length)return this.balanced(this.left,this.right.replace(e-n,A-n,i));let o=[];e>0&&this.decomposeLeft(e,o);let r=o.length;for(let s of i)o.push(s);if(e>0&&ItA(o,r-1),A=i&&A.push(null)),e>i&&this.right.decomposeLeft(e-i,A)}decomposeRight(e,A){let i=this.left.length,n=i+this.break;if(e>=n)return this.right.decomposeRight(e-n,A);e2*A.size||A.size>2*e.size?Ic.of(this.break?[e,null,A]:[e,A]):(this.left=nw(this.left,e),this.right=nw(this.right,A),this.setHeight(e.height+A.height),this.outdated=e.outdated||A.outdated,this.size=e.size+A.size,this.length=e.length+this.break+A.length,this)}updateHeight(e,A=0,i=!1,n){let{left:o,right:r}=this,s=A+o.length+this.break,a=null;return n&&n.from<=A+o.length&&n.more?a=o=o.updateHeight(e,A,i,n):o.updateHeight(e,A,i),n&&n.from<=s+r.length&&n.more?a=r=r.updateHeight(e,s,i,n):r.updateHeight(e,s,i),a?this.balanced(o,r):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function ItA(t,e){let A,i;t[e]==null&&(A=t[e-1])instanceof x1&&(i=t[e+1])instanceof x1&&t.splice(e-1,3,new x1(A.length+1+i.length))}var exA=5,$N=class t{constructor(e,A){this.pos=e,this.oracle=A,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,A){if(this.lineStart>-1){let i=Math.min(A,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof qc?n.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new qc(i-this.pos,-1)),this.writtenTo=i,A>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=A}point(e,A,i){if(e=exA)&&this.addLineDeco(n,o,r)}else A>e&&this.span(e,A);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:A}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=A,this.writtenToe&&this.nodes.push(new qc(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,A){let i=new x1(A-e);return this.oracle.doc.lineAt(e).to==A&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof qc)return e;let A=new qc(0,-1);return this.nodes.push(A),A}addBlock(e){this.enterLine();let A=e.deco;A&&A.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,A&&A.endSide>0&&(this.covering=e)}addLineDeco(e,A,i){let n=this.ensureLine();n.length+=i,n.collapsed+=i,n.widgetHeight=Math.max(n.widgetHeight,e),n.breaks+=A,this.writtenTo=this.pos=this.pos+i}finish(e){let A=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(A instanceof qc)&&!this.isCovered?this.nodes.push(new qc(0,-1)):(this.writtenTog.clientHeight||g.scrollWidth>g.clientWidth)&&I.overflow!="visible"){let C=g.getBoundingClientRect();o=Math.max(o,C.left),r=Math.min(r,C.right),s=Math.max(s,C.top),a=Math.min(c==t.parentNode?n.innerHeight:a,C.bottom)}c=I.position=="absolute"||I.position=="fixed"?g.offsetParent:g.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:o-A.left,right:Math.max(o,r)-A.left,top:s-(A.top+e),bottom:Math.max(s,a)-(A.top+e)}}function nxA(t){let e=t.getBoundingClientRect(),A=t.ownerDocument.defaultView||window;return e.left0&&e.top0}function oxA(t,e){let A=t.getBoundingClientRect();return{left:0,right:A.right-A.left,top:e,bottom:A.bottom-(A.top+e)}}var o3=class{constructor(e,A,i,n){this.from=e,this.to=A,this.size=i,this.displaySize=n}static same(e,A){if(e.length!=A.length)return!1;for(let i=0;itypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new ZN(A),this.stateDeco=e.facet(B3).filter(i=>typeof i!="function"),this.heightMap=Ic.empty().applyChanges(this.stateDeco,tn.empty,this.heightOracle.setDoc(e.doc),[new Ol(0,0,0,e.doc.length)]);for(let i=0;i<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());i++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=ht.set(this.lineGaps.map(i=>i.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:A}=this.state.selection;for(let i=0;i<=1;i++){let n=i?A.head:A.anchor;if(!e.some(({from:o,to:r})=>n>=o&&n<=r)){let{from:o,to:r}=this.lineBlockAt(n);e.push(new TE(o,r))}}return this.viewports=e.sort((i,n)=>i.from-n.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?CtA:new tF(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push($4(e,this.scaler))})}update(e,A=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=this.state.facet(B3).filter(g=>typeof g!="function");let n=e.changedRanges,o=Ol.extendWithRanges(n,txA(i,this.stateDeco,e?e.changes:hs.empty(this.state.doc.length))),r=this.heightMap.height,s=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);ltA(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),o),(this.heightMap.height!=r||PE)&&(e.flags|=2),s?(this.scrollAnchorPos=e.changes.mapPos(s.from,-1),this.scrollAnchorHeight=s.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=r);let a=o.length?this.mapViewport(this.viewport,e.changes):this.viewport;(A&&(A.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,A));let c=a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),A&&(this.scrollTarget=A),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(eiA)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let A=e.contentDOM,i=window.getComputedStyle(A),n=this.heightOracle,o=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?Co.RTL:Co.LTR;let r=this.heightOracle.mustRefreshForWrapping(o),s=A.getBoundingClientRect(),a=r||this.mustMeasureContent||this.contentDOMHeight!=s.height;this.contentDOMHeight=s.height,this.mustMeasureContent=!1;let c=0,g=0;if(s.width&&s.height){let{scaleX:R,scaleY:D}=StA(A,s);(R>.005&&Math.abs(this.scaleX-R)>.005||D>.005&&Math.abs(this.scaleY-D)>.005)&&(this.scaleX=R,this.scaleY=D,c|=16,r=a=!0)}let I=(parseInt(i.paddingTop)||0)*this.scaleY,C=(parseInt(i.paddingBottom)||0)*this.scaleY;(this.paddingTop!=I||this.paddingBottom!=C)&&(this.paddingTop=I,this.paddingBottom=C,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(n.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let d=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=d&&(this.scrollAnchorHeight=-1,this.scrollTop=d),this.scrolledToBottom=xtA(e.scrollDOM);let B=(this.printing?oxA:ixA)(A,this.paddingTop),E=B.top-this.pixelViewport.top,u=B.bottom-this.pixelViewport.bottom;this.pixelViewport=B;let h=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(h!=this.inView&&(this.inView=h,h&&(a=!0)),!this.inView&&!this.scrollTarget&&!nxA(e.dom))return 0;let w=s.width;if((this.contentDOMWidth!=w||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=s.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),a){let R=e.docView.measureVisibleLineHeights(this.viewport);if(n.mustRefreshForHeights(R)&&(r=!0),r||n.lineWrapping&&Math.abs(w-this.contentDOMWidth)>n.charWidth){let{lineHeight:D,charWidth:G,textHeight:J}=e.docView.measureTextSize();r=D>0&&n.refresh(o,D,G,J,Math.max(5,w/G),R),r&&(e.docView.minWidth=0,c|=16)}E>0&&u>0?g=Math.max(E,u):E<0&&u<0&&(g=Math.min(E,u)),ltA();for(let D of this.viewports){let G=D.from==this.viewport.from?R:e.docView.measureVisibleLineHeights(D);this.heightMap=(r?Ic.empty().applyChanges(this.stateDeco,tn.empty,this.heightOracle,[new Ol(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(n,0,r,new WN(D.from,G))}PE&&(c|=2)}let x=!this.viewportIsAppropriate(this.viewport,g)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return x&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(g,this.scrollTarget),c|=this.updateForViewport()),(c&2||x)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(r?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,A){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),n=this.heightMap,o=this.heightOracle,{visibleTop:r,visibleBottom:s}=this,a=new TE(n.lineAt(r-i*1e3,zo.ByHeight,o,0,0).from,n.lineAt(s+(1-i)*1e3,zo.ByHeight,o,0,0).to);if(A){let{head:c}=A.range;if(ca.to){let g=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),I=n.lineAt(c,zo.ByPos,o,0,0),C;A.y=="center"?C=(I.top+I.bottom)/2-g/2:A.y=="start"||A.y=="nearest"&&c=s+Math.max(10,Math.min(i,250)))&&n>r-2*1e3&&o>1,r=n<<1;if(this.defaultTextDirection!=Co.LTR&&!i)return[];let s=[],a=(g,I,C,d)=>{if(I-gg&&hh.from>=C.from&&h.to<=C.to&&Math.abs(h.from-g)h.fromw));if(!u){if(Ix.from<=I&&x.to>=I)){let x=A.moveToLineBoundary(ae.cursor(I),!1,!0).head;x>g&&(I=x)}let h=this.gapSize(C,g,I,d),w=i||h<2e6?h:2e6;u=new o3(g,I,h,w)}s.push(u)},c=g=>{if(g.length2e6)for(let G of e)G.from>=g.from&&G.fromg.from&&a(g.from,d,g,I),BA.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let A=this.stateDeco;this.lineGaps.length&&(A=A.concat(this.lineGapDeco));let i=[];Io.spans(A,this.viewport.from,this.viewport.to,{span(o,r){i.push({from:o,to:r})},point(){}},20);let n=0;if(i.length!=this.visibleRanges.length)n=12;else for(let o=0;o=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(A=>A.from<=e&&A.to>=e)||$4(this.heightMap.lineAt(e,zo.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(A=>A.top<=e&&A.bottom>=e)||$4(this.heightMap.lineAt(this.scaler.fromDOM(e),zo.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let A=this.lineBlockAtHeight(e+8);return A.from>=this.viewport.from||this.viewportLines[0].top-e>200?A:this.viewportLines[0]}elementAtHeight(e){return $4(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},TE=class{constructor(e,A){this.from=e,this.to=A}};function rxA(t,e,A){let i=[],n=t,o=0;return Io.spans(A,t,e,{span(){},point(r,s){r>n&&(i.push({from:n,to:r}),o+=r-n),n=s}},20),n=1)return e[e.length-1].to;let i=Math.floor(t*A);for(let n=0;;n++){let{from:o,to:r}=e[n],s=r-o;if(i<=s)return o+i;i-=s}}function YD(t,e){let A=0;for(let{from:i,to:n}of t.ranges){if(e<=n){A+=e-i;break}A+=n-i}return A/t.total}function sxA(t,e){for(let A of t)if(e(A))return A}var CtA={toDOM(t){return t},fromDOM(t){return t},scale:1,eq(t){return t==this}},tF=class t{constructor(e,A,i){let n=0,o=0,r=0;this.viewports=i.map(({from:s,to:a})=>{let c=A.lineAt(s,zo.ByPos,e,0,0).top,g=A.lineAt(a,zo.ByPos,e,0,0).bottom;return n+=g-c,{from:s,to:a,top:c,bottom:g,domTop:0,domBottom:0}}),this.scale=(7e6-n)/(A.height-n);for(let s of this.viewports)s.domTop=r+(s.top-o)*this.scale,r=s.domBottom=s.domTop+(s.bottom-s.top),o=s.bottom}toDOM(e){for(let A=0,i=0,n=0;;A++){let o=AA.from==e.viewports[i].from&&A.to==e.viewports[i].to):!1}};function $4(t,e){if(e.scale==1)return t;let A=e.toDOM(t.top),i=e.toDOM(t.bottom);return new Tl(t.from,t.length,A,i-A,Array.isArray(t._content)?t._content.map(n=>$4(n,e)):t._content)}var TD=qe.define({combine:t=>t.join(" ")}),MN=qe.define({combine:t=>t.indexOf(!0)>-1}),iF=jc.newName(),hiA=jc.newName(),fiA=jc.newName(),miA={"&light":"."+hiA,"&dark":"."+fiA};function nF(t,e,A){return new jc(e,{finish(i){return/&/.test(i)?i.replace(/&\w*/,n=>{if(n=="&")return t;if(!A||!A[n])throw new RangeError(`Unsupported selector: ${n}`);return A[n]}):t+" "+i}})}var axA=nF("."+iF,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},miA),cxA={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},bN=it.ie&&it.ie_version<=11,oF=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new xN,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(A=>{for(let i of A)this.queue.push(i);(it.ie&&it.ie_version<=11||it.ios&&e.composing)&&A.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&it.android&&e.constructor.EDIT_CONTEXT!==!1&&!(it.chrome&&it.chrome_version<126)&&(this.editContext=new rF(e),e.state.facet(P0)&&(e.contentDOM.editContext=this.editContext.editContext)),bN&&(this.onCharData=A=>{this.queue.push({target:A.target,type:"characterData",oldValue:A.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var A;((A=this.view.docView)===null||A===void 0?void 0:A.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),A.length>0&&A[A.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(A=>{A.length>0&&A[A.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((A,i)=>A!=e[i]))){this.gapIntersection.disconnect();for(let A of e)this.gapIntersection.observe(A);this.gaps=e}}onSelectionChange(e){let A=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,n=this.selectionRange;if(i.state.facet(P0)?i.root.activeElement!=this.dom:!zD(this.dom,n))return;let o=n.anchorNode&&i.docView.nearest(n.anchorNode);if(o&&o.ignoreEvent(e)){A||(this.selectionChanged=!1);return}(it.ie&&it.ie_version<=11||it.android&&it.chrome)&&!i.state.selection.main.empty&&n.focusNode&&e3(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,A=a3(e.root);if(!A)return!1;let i=it.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&gxA(this.view,A)||A;if(!i||this.selectionRange.eq(i))return!1;let n=zD(this.dom,i);return n&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let o=this.delayedAndroidKey;o&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=o.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&o.force&&zE(this.dom,o.key,o.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(n)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:A,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let A=-1,i=-1,n=!1;for(let o of e){let r=this.readMutation(o);r&&(r.typeOver&&(n=!0),A==-1?{from:A,to:i}=r:(A=Math.min(r.from,A),i=Math.max(r.to,i)))}return{from:A,to:i,typeOver:n}}readChange(){let{from:e,to:A,typeOver:i}=this.processRecords(),n=this.selectionChanged&&zD(this.dom,this.selectionRange);if(e<0&&!n)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let o=new PN(this.view,e,A,i);return this.view.docView.domChanged={newSel:o.newSel?o.newSel.main:null},o}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let A=this.readChange();if(!A)return this.view.requestMeasure(),!1;let i=this.view.state,n=giA(this.view,A);return this.view.state==i&&(A.domChanged||A.newSel&&!A.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),n}readMutation(e){let A=this.view.docView.nearest(e.target);if(!A||A.ignoreMutation(e))return null;if(A.markDirty(e.type=="attributes"),e.type=="attributes"&&(A.flags|=4),e.type=="childList"){let i=dtA(A,e.previousSibling||e.target.previousSibling,-1),n=dtA(A,e.nextSibling||e.target.nextSibling,1);return{from:i?A.posAfter(i):A.posAtStart,to:n?A.posBefore(n):A.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:A.posAtStart,to:A.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(P0)!=e.state.facet(P0)&&(e.view.contentDOM.editContext=e.state.facet(P0)?this.editContext.editContext:null))}destroy(){var e,A,i;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(A=this.gapIntersection)===null||A===void 0||A.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect();for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function dtA(t,e,A){for(;e;){let i=No.get(e);if(i&&i.parent==t)return i;let n=e.parentNode;e=n!=t.dom?n:A>0?e.nextSibling:e.previousSibling}return null}function BtA(t,e){let A=e.startContainer,i=e.startOffset,n=e.endContainer,o=e.endOffset,r=t.docView.domAtPos(t.state.selection.main.anchor);return e3(r.node,r.offset,n,o)&&([A,i,n,o]=[n,o,A,i]),{anchorNode:A,anchorOffset:i,focusNode:n,focusOffset:o}}function gxA(t,e){if(e.getComposedRanges){let n=e.getComposedRanges(t.root)[0];if(n)return BtA(t,n)}let A=null;function i(n){n.preventDefault(),n.stopImmediatePropagation(),A=n.getTargetRanges()[0]}return t.contentDOM.addEventListener("beforeinput",i,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",i,!0),A?BtA(t,A):null}var rF=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let A=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=i=>{let n=e.state.selection.main,{anchor:o,head:r}=n,s=this.toEditorPos(i.updateRangeStart),a=this.toEditorPos(i.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:i.updateRangeStart,editorBase:s,drifted:!1});let c={from:s,to:a,insert:tn.of(i.text.split(` +`))};if(c.from==this.from&&othis.to&&(c.to=o),c.from==c.to&&!c.insert.length){let g=ae.single(this.toEditorPos(i.selectionStart),this.toEditorPos(i.selectionEnd));g.main.eq(n)||e.dispatch({selection:g,userEvent:"select"});return}if((it.mac||it.android)&&c.from==r-1&&/^\. ?$/.test(i.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(c={from:s,to:a,insert:tn.of([i.text.replace("."," ")])}),this.pendingContextChange=c,!e.state.readOnly){let g=this.to-this.from+(c.to-c.from+c.insert.length);DF(e,c,ae.single(this.toEditorPos(i.selectionStart,g),this.toEditorPos(i.selectionEnd,g)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state))},this.handlers.characterboundsupdate=i=>{let n=[],o=null;for(let r=this.toEditorPos(i.rangeStart),s=this.toEditorPos(i.rangeEnd);r{let n=[];for(let o of i.getTextFormats()){let r=o.underlineStyle,s=o.underlineThickness;if(r!="None"&&s!="None"){let a=this.toEditorPos(o.rangeStart),c=this.toEditorPos(o.rangeEnd);if(a{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:i}=this.composing;this.composing=null,i&&this.reset(e.state)}};for(let i in this.handlers)A.addEventListener(i,this.handlers[i]);this.measureReq={read:i=>{this.editContext.updateControlBounds(i.contentDOM.getBoundingClientRect());let n=a3(i.root);n&&n.rangeCount&&this.editContext.updateSelectionBounds(n.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let A=0,i=!1,n=this.pendingContextChange;return e.changes.iterChanges((o,r,s,a,c)=>{if(i)return;let g=c.length-(r-o);if(n&&r>=n.to)if(n.from==o&&n.to==r&&n.insert.eq(c)){n=this.pendingContextChange=null,A+=g,this.to+=g;return}else n=null,this.revertPending(e.state);if(o+=A,r+=A,r<=this.from)this.from+=g,this.to+=g;else if(othis.to||this.to-this.from+c.length>3e4){i=!0;return}this.editContext.updateText(this.toContextPos(o),this.toContextPos(r),c.toString()),this.to+=g}A+=g}),n&&!i&&this.revertPending(e.state),!i}update(e){let A=this.pendingContextChange,i=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(i.from,i.to)&&e.transactions.some(n=>!n.isUserEvent("input.type")&&n.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||A)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:A}=e.selection.main;this.from=Math.max(0,A-1e4),this.to=Math.min(e.doc.length,A+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let A=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(A.from),this.toContextPos(A.from+A.insert.length),e.doc.sliceString(A.from,A.to))}setSelection(e){let{main:A}=e.selection,i=this.toContextPos(Math.max(this.from,Math.min(this.to,A.anchor))),n=this.toContextPos(A.head);(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=n)&&this.editContext.updateSelection(i,n)}rangeIsValid(e){let{head:A}=e.selection.main;return!(this.from>0&&A-this.from<500||this.to1e4*3)}toEditorPos(e,A=this.to-this.from){e=Math.min(e,A);let i=this.composing;return i&&i.drifted?i.editorBase+(e-i.contextBase):e+this.from}toContextPos(e){let A=this.composing;return A&&A.drifted?A.contextBase+(e-A.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},Pt=(()=>{class t{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(A={}){var i;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),A.parent&&A.parent.appendChild(this.dom);let{dispatch:n}=A;this.dispatchTransactions=A.dispatchTransactions||n&&(o=>o.forEach(r=>n(r,this)))||(o=>this.update(o)),this.dispatch=this.dispatch.bind(this),this._root=A.root||tLA(A.parent)||document,this.viewState=new rw(A.state||Dr.create(A)),A.scrollTo&&A.scrollTo.is(GD)&&(this.viewState.scrollTarget=A.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(YE).map(o=>new n3(o));for(let o of this.plugins)o.update(this);this.observer=new oF(this),this.inputState=new jN(this),this.inputState.ensureHandlers(this.plugins),this.docView=new tw(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((i=document.fonts)===null||i===void 0)&&i.ready&&document.fonts.ready.then(()=>this.requestMeasure())}dispatch(...A){let i=A.length==1&&A[0]instanceof Ul?A:A.length==1&&Array.isArray(A[0])?A[0]:[this.state.update(...A)];this.dispatchTransactions(i,this)}update(A){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let i=!1,n=!1,o,r=this.state;for(let d of A){if(d.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=d.state}if(this.destroyed){this.viewState.state=r;return}let s=this.hasFocus,a=0,c=null;A.some(d=>d.annotation(EiA))?(this.inputState.notifiedFocused=s,a=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,c=QiA(r,s),c||(a=1));let g=this.observer.delayedAndroidKey,I=null;if(g?(this.observer.clearDelayedAndroidKey(),I=this.observer.readChange(),(I&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(I=null)):this.observer.clear(),r.facet(Dr.phrases)!=this.state.facet(Dr.phrases))return this.setState(r);o=ew.create(this,r,A),o.flags|=a;let C=this.viewState.scrollTarget;try{this.updateState=2;for(let d of A){if(C&&(C=C.map(d.changes)),d.scrollIntoView){let{main:B}=d.state.selection;C=new i3(B.empty?B:ae.cursor(B.head,B.head>B.anchor?-1:1))}for(let B of d.effects)B.is(GD)&&(C=B.value.clip(this.state))}this.viewState.update(o,C),this.bidiCache=sw.update(this.bidiCache,o.changes),o.empty||(this.updatePlugins(o),this.inputState.update(o)),i=this.docView.update(o),this.state.facet(Z4)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(A),this.docView.updateSelection(i,A.some(d=>d.isUserEvent("select.pointer")))}finally{this.updateState=0}if(o.startState.facet(TD)!=o.state.facet(TD)&&(this.viewState.mustMeasureContent=!0),(i||n||C||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),i&&this.docViewUpdate(),!o.empty)for(let d of this.state.facet(wN))try{d(o)}catch(B){is(this.state,B,"update listener")}(c||I)&&Promise.resolve().then(()=>{c&&this.state==c.startState&&this.dispatch(c),I&&!giA(this,I)&&g.force&&zE(this.contentDOM,g.key,g.keyCode)})}setState(A){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=A;return}this.updateState=2;let i=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new rw(A),this.plugins=A.facet(YE).map(n=>new n3(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView.destroy(),this.docView=new tw(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}i&&this.focus(),this.requestMeasure()}updatePlugins(A){let i=A.startState.facet(YE),n=A.state.facet(YE);if(i!=n){let o=[];for(let r of n){let s=i.indexOf(r);if(s<0)o.push(new n3(r));else{let a=this.plugins[s];a.mustUpdate=A,o.push(a)}}for(let r of this.plugins)r.mustUpdate!=A&&r.destroy(this);this.plugins=o,this.pluginMap.clear()}else for(let o of this.plugins)o.mustUpdate=A;for(let o=0;o-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,A&&this.observer.forceFlush();let i=null,n=this.scrollDOM,o=n.scrollTop*this.scaleY,{scrollAnchorPos:r,scrollAnchorHeight:s}=this.viewState;Math.abs(o-this.viewState.scrollTop)>1&&(s=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(s<0)if(xtA(n))r=-1,s=this.viewState.heightMap.height;else{let B=this.viewState.scrollAnchorAt(o);r=B.from,s=B.top}this.updateState=1;let c=this.viewState.measure(this);if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let g=[];c&4||([this.measureRequests,g]=[g,this.measureRequests]);let I=g.map(B=>{try{return B.read(this)}catch(E){return is(this.state,E),EtA}}),C=ew.create(this,this.state,[]),d=!1;C.flags|=c,i?i.flags|=c:i=C,this.updateState=2,C.empty||(this.updatePlugins(C),this.inputState.update(C),this.updateAttrs(),d=this.docView.update(C),d&&this.docViewUpdate());for(let B=0;B1||E<-1){o=o+E,n.scrollTop=o/this.scaleY,s=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(i&&!i.empty)for(let a of this.state.facet(wN))a(i)}get themeClasses(){return iF+" "+(this.state.facet(MN)?fiA:hiA)+" "+this.state.facet(TD)}updateAttrs(){let A=QtA(this,qeA,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),i={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(P0)?"true":"false",class:"cm-content",style:`${it.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(i["aria-readonly"]="true"),QtA(this,TN,i);let n=this.observer.ignore(()=>{let o=KN(this.contentDOM,this.contentAttrs,i),r=KN(this.dom,this.editorAttrs,A);return o||r});return this.editorAttrs=A,this.contentAttrs=i,n}showAnnouncements(A){let i=!0;for(let n of A)for(let o of n.effects)if(o.is(t.announce)){i&&(this.announceDOM.textContent=""),i=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=o.value}}mountStyles(){this.styleModules=this.state.facet(Z4);let A=this.state.facet(t.cspNonce);jc.mount(this.root,this.styleModules.concat(axA).reverse(),A?{nonce:A}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(A){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),A){if(this.measureRequests.indexOf(A)>-1)return;if(A.key!=null){for(let i=0;in.plugin==A)||null),i&&i.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(A){return this.readMeasured(),this.viewState.elementAtHeight(A)}lineBlockAtHeight(A){return this.readMeasured(),this.viewState.lineBlockAtHeight(A)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(A){return this.viewState.lineBlockAt(A)}get contentHeight(){return this.viewState.contentHeight}moveByChar(A,i,n){return vN(this,A,AtA(this,A,i,n))}moveByGroup(A,i){return vN(this,A,AtA(this,A,i,n=>xLA(this,A.head,n)))}visualLineSide(A,i){let n=this.bidiSpans(A),o=this.textDirectionAt(A.from),r=n[i?n.length-1:0];return ae.cursor(r.side(i,o)+A.from,r.forward(!i,o)?1:-1)}moveToLineBoundary(A,i,n=!0){return LLA(this,A,i,n)}moveVertically(A,i,n){return vN(this,A,NLA(this,A,i,n))}domAtPos(A){return this.docView.domAtPos(A)}posAtDOM(A,i=0){return this.docView.posFromDOM(A,i)}posAtCoords(A,i=!0){return this.readMeasured(),aiA(this,A,i)}coordsAtPos(A,i=1){this.readMeasured();let n=this.docView.coordsAt(A,i);if(!n||n.left==n.right)return n;let o=this.state.doc.lineAt(A),r=this.bidiSpans(o),s=r[Hl.find(r,A-o.from,-1,i)];return Cw(n,s.dir==Co.LTR==i>0)}coordsForChar(A){return this.readMeasured(),this.docView.coordsForChar(A)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(A){return!this.state.facet(jeA)||Athis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(A))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(A){if(A.length>lxA)return jtA(A.length);let i=this.textDirectionAt(A.from),n;for(let r of this.bidiCache)if(r.from==A.from&&r.dir==i&&(r.fresh||PtA(r.isolates,n=VeA(this,A))))return r.order;n||(n=VeA(this,A));let o=ELA(A.text,i,n);return this.bidiCache.push(new sw(A.from,A.to,i,n,!0,o)),o}get hasFocus(){var A;return(this.dom.ownerDocument.hasFocus()||it.safari&&((A=this.inputState)===null||A===void 0?void 0:A.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{RtA(this.contentDOM),this.docView.updateSelection()})}setRoot(A){this._root!=A&&(this._root=A,this.observer.setWindow((A.nodeType==9?A:A.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let A of this.plugins)A.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(A,i={}){return GD.of(new i3(typeof A=="number"?ae.cursor(A):A,i.y,i.x,i.yMargin,i.xMargin))}scrollSnapshot(){let{scrollTop:A,scrollLeft:i}=this.scrollDOM,n=this.viewState.scrollAnchorAt(A);return GD.of(new i3(ae.cursor(n.from),"start","start",n.top-A,i,!0))}setTabFocusMode(A){A==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof A=="boolean"?this.inputState.tabFocusMode=A?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+A)}static domEventHandlers(A){return Bo.define(()=>({}),{eventHandlers:A})}static domEventObservers(A){return Bo.define(()=>({}),{eventObservers:A})}static theme(A,i){let n=jc.newName(),o=[TD.of(n),Z4.of(nF(`.${n}`,A))];return i&&i.dark&&o.push(MN.of(!0)),o}static baseTheme(A){return Ng.lowest(Z4.of(nF("."+iF,A,miA)))}static findFromDOM(A){var i;let n=A.querySelector(".cm-content"),o=n&&No.get(n)||No.get(A);return((i=o?.rootView)===null||i===void 0?void 0:i.view)||null}}return t.styleModule=Z4,t.inputHandler=$tA,t.clipboardInputFilter=fF,t.clipboardOutputFilter=mF,t.scrollHandler=tiA,t.focusChangeEffect=AiA,t.perLineTextDirection=jeA,t.exceptionSink=XtA,t.updateListener=wN,t.editable=P0,t.mouseSelectionStyle=WtA,t.dragMovesSelection=ZtA,t.clickAddsSelectionRange=VtA,t.decorations=B3,t.outerDecorations=niA,t.atomicRanges=Bw,t.bidiIsolatedRanges=oiA,t.scrollMargins=riA,t.darkTheme=MN,t.cspNonce=qe.define({combine:e=>e.length?e[0]:""}),t.contentAttributes=TN,t.editorAttributes=qeA,t.lineWrapping=t.contentAttributes.of({class:"cm-lineWrapping"}),t.announce=Ki.define(),t})(),lxA=4096,EtA={},sw=class t{constructor(e,A,i,n,o,r){this.from=e,this.to=A,this.dir=i,this.isolates=n,this.fresh=o,this.order=r}static update(e,A){if(A.empty&&!e.some(o=>o.fresh))return e;let i=[],n=e.length?e[e.length-1].dir:Co.LTR;for(let o=Math.max(0,e.length-10);o=0;n--){let o=i[n],r=typeof o=="function"?o(t):o;r&&GN(r,A)}return A}var IxA=it.mac?"mac":it.windows?"win":it.linux?"linux":"key";function CxA(t,e){let A=t.split(/-(?!$)/),i=A[A.length-1];i=="Space"&&(i=" ");let n,o,r,s;for(let a=0;ai.concat(n),[]))),A}function DiA(t,e,A){return wiA(piA(t.state),e,t,A)}var L1=null,BxA=4e3;function ExA(t,e=IxA){let A=Object.create(null),i=Object.create(null),n=(r,s)=>{let a=i[r];if(a==null)i[r]=s;else if(a!=s)throw new Error("Key binding "+r+" is used both as a regular binding and as a multi-stroke prefix")},o=(r,s,a,c,g)=>{var I,C;let d=A[r]||(A[r]=Object.create(null)),B=s.split(/ (?!$)/).map(h=>CxA(h,e));for(let h=1;h{let R=L1={view:x,prefix:w,scope:r};return setTimeout(()=>{L1==R&&(L1=null)},BxA),!0}]})}let E=B.join(" ");n(E,!1);let u=d[E]||(d[E]={preventDefault:!1,stopPropagation:!1,run:((C=(I=d._any)===null||I===void 0?void 0:I.run)===null||C===void 0?void 0:C.slice())||[]});a&&u.run.push(a),c&&(u.preventDefault=!0),g&&(u.stopPropagation=!0)};for(let r of t){let s=r.scope?r.scope.split(" "):["editor"];if(r.any)for(let c of s){let g=A[c]||(A[c]=Object.create(null));g._any||(g._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:I}=r;for(let C in g)g[C].run.push(d=>I(d,sF))}let a=r[e]||r.key;if(a)for(let c of s)o(c,a,r.run,r.preventDefault,r.stopPropagation),r.shift&&o(c,"Shift-"+a,r.shift,r.preventDefault,r.stopPropagation)}return A}var sF=null;function wiA(t,e,A,i){sF=e;let n=GeA(e),o=ms(n,0),r=lc(o)==n.length&&n!=" ",s="",a=!1,c=!1,g=!1;L1&&L1.view==A&&L1.scope==i&&(s=L1.prefix+" ",IiA.indexOf(e.keyCode)<0&&(c=!0,L1=null));let I=new Set,C=u=>{if(u){for(let h of u.run)if(!I.has(h)&&(I.add(h),h(A)))return u.stopPropagation&&(g=!0),!0;u.preventDefault&&(u.stopPropagation&&(g=!0),c=!0)}return!1},d=t[i],B,E;return d&&(C(d[s+HD(n,e,!r)])?a=!0:r&&(e.altKey||e.metaKey||e.ctrlKey)&&!(it.windows&&e.ctrlKey&&e.altKey)&&!(it.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(B=z0[e.keyCode])&&B!=n?(C(d[s+HD(B,e,!0)])||e.shiftKey&&(E=UE[e.keyCode])!=n&&E!=B&&C(d[s+HD(E,e,!1)]))&&(a=!0):r&&e.shiftKey&&C(d[s+HD(n,e,!0)])&&(a=!0),!a&&C(d._any)&&(a=!0)),c&&(a=!0),a&&g&&e.stopPropagation(),sF=null,a}var E3=class t{constructor(e,A,i,n,o){this.className=e,this.left=A,this.top=i,this.width=n,this.height=o}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,A){return A.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,A,i){if(i.empty){let n=e.coordsAtPos(i.head,i.assoc||1);if(!n)return[];let o=yiA(e);return[new t(A,n.left-o.left,n.top-o.top,null,n.bottom-n.top)]}else return QxA(e,A,i)}};function yiA(t){let e=t.scrollDOM.getBoundingClientRect();return{left:(t.textDirection==Co.LTR?e.left:e.right-t.scrollDOM.clientWidth*t.scaleX)-t.scrollDOM.scrollLeft*t.scaleX,top:e.top-t.scrollDOM.scrollTop*t.scaleY}}function htA(t,e,A,i){let n=t.coordsAtPos(e,A*2);if(!n)return i;let o=t.dom.getBoundingClientRect(),r=(n.top+n.bottom)/2,s=t.posAtCoords({x:o.left+1,y:r}),a=t.posAtCoords({x:o.right-1,y:r});return s==null||a==null?i:{from:Math.max(i.from,Math.min(s,a)),to:Math.min(i.to,Math.max(s,a))}}function QxA(t,e,A){if(A.to<=t.viewport.from||A.from>=t.viewport.to)return[];let i=Math.max(A.from,t.viewport.from),n=Math.min(A.to,t.viewport.to),o=t.textDirection==Co.LTR,r=t.contentDOM,s=r.getBoundingClientRect(),a=yiA(t),c=r.querySelector(".cm-line"),g=c&&window.getComputedStyle(c),I=s.left+(g?parseInt(g.paddingLeft)+Math.min(0,parseInt(g.textIndent)):0),C=s.right-(g?parseInt(g.paddingRight):0),d=ON(t,i,1),B=ON(t,n,-1),E=d.type==na.Text?d:null,u=B.type==na.Text?B:null;if(E&&(t.lineWrapping||d.widgetLineBreaks)&&(E=htA(t,i,1,E)),u&&(t.lineWrapping||B.widgetLineBreaks)&&(u=htA(t,n,-1,u)),E&&u&&E.from==u.from&&E.to==u.to)return w(x(A.from,A.to,E));{let D=E?x(A.from,null,E):R(d,!1),G=u?x(null,A.to,u):R(B,!0),J=[];return(E||d).to<(u||B).from-(E&&u?1:0)||d.widgetLineBreaks>1&&D.bottom+t.defaultLineHeight/2j&&fA.from=IA)break;wA>EA&&V(Math.max(lA,EA),D==null&&lA<=j,Math.min(wA,IA),G==null&&wA>=dA,nA.dir)}if(EA=SA.to+1,EA>=IA)break}return O.length==0&&V(j,D==null,dA,G==null,t.textDirection),{top:z,bottom:K,horizontal:O}}function R(D,G){let J=s.top+(G?D.top:D.bottom);return{top:J,bottom:J,horizontal:[]}}}function uxA(t,e){return t.constructor==e.constructor&&t.eq(e)}var aF=class{constructor(e,A){this.view=e,this.layer=A,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),A.above&&this.dom.classList.add("cm-layer-above"),A.class&&this.dom.classList.add(A.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),A.mount&&A.mount(this.dom,e)}update(e){e.startState.facet(VD)!=e.state.facet(VD)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let A=0,i=e.facet(VD);for(;A!uxA(A,this.drawn[i]))){let A=this.dom.firstChild,i=0;for(let n of e)n.update&&A&&n.constructor&&this.drawn[i].constructor&&n.update(A,this.drawn[i])?(A=A.nextSibling,i++):this.dom.insertBefore(n.draw(),A);for(;A;){let n=A.nextSibling;A.remove(),A=n}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},VD=qe.define();function viA(t){return[Bo.define(e=>new aF(e,t)),VD.of(t)]}var Q3=qe.define({combine(t){return ts(t,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,A)=>Math.min(e,A),drawRangeCursor:(e,A)=>e||A})}});function MiA(t={}){return[Q3.of(t),hxA,fxA,mxA,eiA.of(!0)]}function biA(t){return t.startState.facet(Q3)!=t.state.facet(Q3)}var hxA=viA({above:!0,markers(t){let{state:e}=t,A=e.facet(Q3),i=[];for(let n of e.selection.ranges){let o=n==e.selection.main;if(n.empty||A.drawRangeCursor){let r=o?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",s=n.empty?n:ae.cursor(n.head,n.head>n.anchor?-1:1);for(let a of E3.forRange(t,r,s))i.push(a)}}return i},update(t,e){t.transactions.some(i=>i.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let A=biA(t);return A&&ftA(t.state,e),t.docChanged||t.selectionSet||A},mount(t,e){ftA(e.state,t)},class:"cm-cursorLayer"});function ftA(t,e){e.style.animationDuration=t.facet(Q3).cursorBlinkRate+"ms"}var fxA=viA({above:!1,markers(t){return t.state.selection.ranges.map(e=>e.empty?[]:E3.forRange(t,"cm-selectionBackground",e)).reduce((e,A)=>e.concat(A))},update(t,e){return t.docChanged||t.selectionSet||t.viewportChanged||biA(t)},class:"cm-selectionLayer"}),mxA=Ng.highest(Pt.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),kiA=Ki.define({map(t,e){return t==null?null:e.mapPos(t)}}),A3=tr.define({create(){return null},update(t,e){return t!=null&&(t=e.changes.mapPos(t)),e.effects.reduce((A,i)=>i.is(kiA)?i.value:A,t)}}),pxA=Bo.fromClass(class{constructor(t){this.view=t,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(t){var e;let A=t.state.field(A3);A==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(t.startState.field(A3)!=A||t.docChanged||t.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:t}=this,e=t.state.field(A3),A=e!=null&&t.coordsAtPos(e);if(!A)return null;let i=t.scrollDOM.getBoundingClientRect();return{left:A.left-i.left+t.scrollDOM.scrollLeft*t.scaleX,top:A.top-i.top+t.scrollDOM.scrollTop*t.scaleY,height:A.bottom-A.top}}drawCursor(t){if(this.cursor){let{scaleX:e,scaleY:A}=this.view;t?(this.cursor.style.left=t.left/e+"px",this.cursor.style.top=t.top/A+"px",this.cursor.style.height=t.height/A+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(t){this.view.state.field(A3)!=t&&this.view.dispatch({effects:kiA.of(t)})}},{eventObservers:{dragover(t){this.setDropPos(this.view.posAtCoords({x:t.clientX,y:t.clientY}))},dragleave(t){(t.target==this.view.contentDOM||!this.view.contentDOM.contains(t.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function SiA(){return[A3,pxA]}function mtA(t,e,A,i,n){e.lastIndex=0;for(let o=t.iterRange(A,i),r=A,s;!o.next().done;r+=o.value.length)if(!o.lineBreak)for(;s=e.exec(o.value);)n(r+s.index,s)}function DxA(t,e){let A=t.visibleRanges;if(A.length==1&&A[0].from==t.viewport.from&&A[0].to==t.viewport.to)return A;let i=[];for(let{from:n,to:o}of A)n=Math.max(t.state.doc.lineAt(n).from,n-e),o=Math.min(t.state.doc.lineAt(o).to,o+e),i.length&&i[i.length-1].to>=n?i[i.length-1].to=o:i.push({from:n,to:o});return i}var cF=class{constructor(e){let{regexp:A,decoration:i,decorate:n,boundary:o,maxLength:r=1e3}=e;if(!A.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=A,n)this.addMatch=(s,a,c,g)=>n(g,c,c+s[0].length,s,a);else if(typeof i=="function")this.addMatch=(s,a,c,g)=>{let I=i(s,a,c);I&&g(c,c+s[0].length,I)};else if(i)this.addMatch=(s,a,c,g)=>g(c,c+s[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=o,this.maxLength=r}createDeco(e){let A=new fs,i=A.add.bind(A);for(let{from:n,to:o}of DxA(e,this.maxLength))mtA(e.state.doc,this.regexp,n,o,(r,s)=>this.addMatch(s,e,r,i));return A.finish()}updateDeco(e,A){let i=1e9,n=-1;return e.docChanged&&e.changes.iterChanges((o,r,s,a)=>{a>=e.view.viewport.from&&s<=e.view.viewport.to&&(i=Math.min(s,i),n=Math.max(a,n))}),e.viewportMoved||n-i>1e3?this.createDeco(e.view):n>-1?this.updateRange(e.view,A.map(e.changes),i,n):A}updateRange(e,A,i,n){for(let o of e.visibleRanges){let r=Math.max(o.from,i),s=Math.min(o.to,n);if(s>=r){let a=e.state.doc.lineAt(r),c=a.toa.from;r--)if(this.boundary.test(a.text[r-1-a.from])){g=r;break}for(;sC.push(h.range(E,u));if(a==c)for(this.regexp.lastIndex=g-a.from;(d=this.regexp.exec(a.text))&&d.indexthis.addMatch(u,e,E,B));A=A.update({filterFrom:g,filterTo:I,filter:(E,u)=>EI,add:C})}}return A}},gF=/x/.unicode!=null?"gu":"g",wxA=new RegExp(`[\0-\b +-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,gF),yxA={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},kN=null;function vxA(){var t;if(kN==null&&typeof document<"u"&&document.body){let e=document.body.style;kN=((t=e.tabSize)!==null&&t!==void 0?t:e.MozTabSize)!=null}return kN||!1}var ZD=qe.define({combine(t){let e=ts(t,{render:null,specialChars:wxA,addSpecialChars:null});return(e.replaceTabs=!vxA())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,gF)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,gF)),e}});function RiA(t={}){return[ZD.of(t),MxA()]}var ptA=null;function MxA(){return ptA||(ptA=Bo.fromClass(class{constructor(t){this.view=t,this.decorations=ht.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(t.state.facet(ZD)),this.decorations=this.decorator.createDeco(t)}makeDecorator(t){return new cF({regexp:t.specialChars,decoration:(e,A,i)=>{let{doc:n}=A.state,o=ms(e[0],0);if(o==9){let r=n.lineAt(i),s=A.state.tabSize,a=O0(r.text,s,i-r.from);return ht.replace({widget:new IF((s-a%s)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[o]||(this.decorationCache[o]=ht.replace({widget:new lF(t,o)}))},boundary:t.replaceTabs?void 0:/[^]/})}update(t){let e=t.state.facet(ZD);t.startState.facet(ZD)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(t.view)):this.decorations=this.decorator.updateDeco(t,this.decorations)}},{decorations:t=>t.decorations}))}var bxA="\u2022";function kxA(t){return t>=32?bxA:t==10?"\u2424":String.fromCharCode(9216+t)}var lF=class extends Cc{constructor(e,A){super(),this.options=e,this.code=A}eq(e){return e.code==this.code}toDOM(e){let A=kxA(this.code),i=e.state.phrase("Control character")+" "+(yxA[this.code]||"0x"+this.code.toString(16)),n=this.options.render&&this.options.render(this.code,i,A);if(n)return n;let o=document.createElement("span");return o.textContent=A,o.title=i,o.setAttribute("aria-label",i),o.className="cm-specialChar",o}ignoreEvent(){return!1}},IF=class extends Cc{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};function LiA(){return RxA}var SxA=ht.line({class:"cm-activeLine"}),RxA=Bo.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.docChanged||t.selectionSet)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=-1,A=[];for(let i of t.state.selection.ranges){let n=t.lineBlockAt(i.head);n.from>e&&(A.push(SxA.range(n.from)),e=n.from)}return ht.set(A)}},{decorations:t=>t.decorations});var CF=2e3;function LxA(t,e,A){let i=Math.min(e.line,A.line),n=Math.max(e.line,A.line),o=[];if(e.off>CF||A.off>CF||e.col<0||A.col<0){let r=Math.min(e.off,A.off),s=Math.max(e.off,A.off);for(let a=i;a<=n;a++){let c=t.doc.line(a);c.length<=s&&o.push(ae.range(c.from+r,c.to+s))}}else{let r=Math.min(e.col,A.col),s=Math.max(e.col,A.col);for(let a=i;a<=n;a++){let c=t.doc.line(a),g=ND(c.text,r,t.tabSize,!0);if(g<0)o.push(ae.cursor(c.to));else{let I=ND(c.text,s,t.tabSize);o.push(ae.range(c.from+g,c.from+I))}}}return o}function xxA(t,e){let A=t.coordsAtPos(t.viewport.from);return A?Math.round(Math.abs((A.left-e)/t.defaultCharacterWidth)):-1}function DtA(t,e){let A=t.posAtCoords({x:e.clientX,y:e.clientY},!1),i=t.state.doc.lineAt(A),n=A-i.from,o=n>CF?-1:n==i.length?xxA(t,e.clientX):O0(i.text,t.state.tabSize,A-i.from);return{line:i.number,col:o,off:n}}function NxA(t,e){let A=DtA(t,e),i=t.state.selection;return A?{update(n){if(n.docChanged){let o=n.changes.mapPos(n.startState.doc.line(A.line).from),r=n.state.doc.lineAt(o);A={line:r.number,col:A.col,off:Math.min(A.off,r.length)},i=i.map(n.changes)}},get(n,o,r){let s=DtA(t,n);if(!s)return i;let a=LxA(t.state,A,s);return a.length?r?ae.create(a.concat(i.ranges)):ae.create(a):i}}:null}function xiA(t){let e=t?.eventFilter||(A=>A.altKey&&A.button==0);return Pt.mouseSelectionStyle.of((A,i)=>e(i)?NxA(A,i):null)}var FxA={Alt:[18,t=>!!t.altKey],Control:[17,t=>!!t.ctrlKey],Shift:[16,t=>!!t.shiftKey],Meta:[91,t=>!!t.metaKey]},_xA={style:"cursor: crosshair"};function NiA(t={}){let[e,A]=FxA[t.key||"Alt"],i=Bo.fromClass(class{constructor(n){this.view=n,this.isDown=!1}set(n){this.isDown!=n&&(this.isDown=n,this.view.update([]))}},{eventObservers:{keydown(n){this.set(n.keyCode==e||A(n))},keyup(n){(n.keyCode==e||!A(n))&&this.set(!1)},mousemove(n){this.set(A(n))}}});return[i,Pt.contentAttributes.of(n=>{var o;return!((o=n.plugin(i))===null||o===void 0)&&o.isDown?_xA:null})]}var W4="-10000px",aw=class{constructor(e,A,i,n){this.facet=A,this.createTooltipView=i,this.removeTooltipView=n,this.input=e.state.facet(A),this.tooltips=this.input.filter(r=>r);let o=null;this.tooltipViews=this.tooltips.map(r=>o=i(r,o))}update(e,A){var i;let n=e.state.facet(this.facet),o=n.filter(a=>a);if(n===this.input){for(let a of this.tooltipViews)a.update&&a.update(e);return!1}let r=[],s=A?[]:null;for(let a=0;aA[c]=a),A.length=s.length),this.input=n,this.tooltips=o,this.tooltipViews=r,!0}};function GxA(t){let e=t.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}var SN=qe.define({combine:t=>{var e,A,i;return{position:it.ios?"absolute":((e=t.find(n=>n.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((A=t.find(n=>n.parent))===null||A===void 0?void 0:A.parent)||null,tooltipSpace:((i=t.find(n=>n.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||GxA}}}),wtA=new WeakMap,wF=Bo.fromClass(class{constructor(t){this.view=t,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=t.state.facet(SN);this.position=e.position,this.parent=e.parent,this.classes=t.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new aw(t,qE,(A,i)=>this.createTooltip(A,i),A=>{this.resizeObserver&&this.resizeObserver.unobserve(A.dom),A.dom.remove()}),this.above=this.manager.tooltips.map(A=>!!A.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(A=>{Date.now()>this.lastTransaction-50&&A.length>0&&A[A.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),t.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let t of this.manager.tooltipViews)this.intersectionObserver.observe(t.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(t){t.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(t,this.above);e&&this.observeIntersection();let A=e||t.geometryChanged,i=t.state.facet(SN);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let n of this.manager.tooltipViews)n.dom.style.position=this.position;A=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let n of this.manager.tooltipViews)this.container.appendChild(n.dom);A=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);A&&this.maybeMeasure()}createTooltip(t,e){let A=t.create(this.view),i=e?e.dom:null;if(A.dom.classList.add("cm-tooltip"),t.arrow&&!A.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let n=document.createElement("div");n.className="cm-tooltip-arrow",A.dom.appendChild(n)}return A.dom.style.position=this.position,A.dom.style.top=W4,A.dom.style.left="0px",this.container.insertBefore(A.dom,i),A.mount&&A.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(A.dom),A}destroy(){var t,e,A;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),(t=i.destroy)===null||t===void 0||t.call(i);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(A=this.intersectionObserver)===null||A===void 0||A.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let t=1,e=1,A=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:o}=this.manager.tooltipViews[0];if(it.gecko)A=o.offsetParent!=this.container.ownerDocument.body;else if(o.style.top==W4&&o.style.left=="0px"){let r=o.getBoundingClientRect();A=Math.abs(r.top+1e4)>1||Math.abs(r.left)>1}}if(A||this.position=="absolute")if(this.parent){let o=this.parent.getBoundingClientRect();o.width&&o.height&&(t=o.width/this.parent.offsetWidth,e=o.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:e}=this.view.viewState);let i=this.view.scrollDOM.getBoundingClientRect(),n=pF(this.view);return{visible:{left:i.left+n.left,top:i.top+n.top,right:i.right-n.right,bottom:i.bottom-n.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((o,r)=>{let s=this.manager.tooltipViews[r];return s.getCoords?s.getCoords(o.pos):this.view.coordsAtPos(o.pos)}),size:this.manager.tooltipViews.map(({dom:o})=>o.getBoundingClientRect()),space:this.view.state.facet(SN).tooltipSpace(this.view),scaleX:t,scaleY:e,makeAbsolute:A}}writeMeasure(t){var e;if(t.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let s of this.manager.tooltipViews)s.dom.style.position="absolute"}let{visible:A,space:i,scaleX:n,scaleY:o}=t,r=[];for(let s=0;s=Math.min(A.bottom,i.bottom)||I.rightMath.min(A.right,i.right)+.1)){g.style.top=W4;continue}let d=a.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,B=d?7:0,E=C.right-C.left,u=(e=wtA.get(c))!==null&&e!==void 0?e:C.bottom-C.top,h=c.offset||UxA,w=this.view.textDirection==Co.LTR,x=C.width>i.right-i.left?w?i.left:i.right-C.width:w?Math.max(i.left,Math.min(I.left-(d?14:0)+h.x,i.right-E)):Math.min(Math.max(i.left,I.left-E+(d?14:0)-h.x),i.right-E),R=this.above[s];!a.strictSide&&(R?I.top-u-B-h.yi.bottom)&&R==i.bottom-I.bottom>I.top-i.top&&(R=this.above[s]=!R);let D=(R?I.top-i.top:i.bottom-I.bottom)-B;if(Dx&&z.topG&&(G=R?z.top-u-2-B:z.bottom+B+2);if(this.position=="absolute"?(g.style.top=(G-t.parent.top)/o+"px",ytA(g,(x-t.parent.left)/n)):(g.style.top=G/o+"px",ytA(g,x/n)),d){let z=I.left+(w?h.x:-h.x)-(x+14-7);d.style.left=z/n+"px"}c.overlap!==!0&&r.push({left:x,top:G,right:J,bottom:G+u}),g.classList.toggle("cm-tooltip-above",R),g.classList.toggle("cm-tooltip-below",!R),c.positioned&&c.positioned(t.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let t of this.manager.tooltipViews)t.dom.style.top=W4}},{eventObservers:{scroll(){this.maybeMeasure()}}});function ytA(t,e){let A=parseInt(t.style.left,10);(isNaN(A)||Math.abs(e-A)>1)&&(t.style.left=e+"px")}var KxA=Pt.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),UxA={x:0,y:0},qE=qe.define({enables:[wF,KxA]}),cw=qe.define({combine:t=>t.reduce((e,A)=>e.concat(A),[])}),gw=class t{static create(e){return new t(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new aw(e,cw,(A,i)=>this.createHostedView(A,i),A=>A.dom.remove())}createHostedView(e,A){let i=e.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(i.dom,A?A.dom.nextSibling:this.dom.firstChild),this.mounted&&i.mount&&i.mount(this.view),i}mount(e){for(let A of this.manager.tooltipViews)A.mount&&A.mount(e);this.mounted=!0}positioned(e){for(let A of this.manager.tooltipViews)A.positioned&&A.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let A of this.manager.tooltipViews)(e=A.destroy)===null||e===void 0||e.call(A)}passProp(e){let A;for(let i of this.manager.tooltipViews){let n=i[e];if(n!==void 0){if(A===void 0)A=n;else if(A!==n)return}}return A}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}},JxA=qE.compute([cw],t=>{let e=t.facet(cw);return e.length===0?null:{pos:Math.min(...e.map(A=>A.pos)),end:Math.max(...e.map(A=>{var i;return(i=A.end)!==null&&i!==void 0?i:A.pos})),create:gw.create,above:e[0].above,arrow:e.some(A=>A.arrow)}}),dF=class{constructor(e,A,i,n,o){this.view=e,this.source=A,this.field=i,this.setHover=n,this.hoverTime=o,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;es.bottom||A.xs.right+e.defaultCharacterWidth)return;let a=e.bidiSpans(e.state.doc.lineAt(n)).find(g=>g.from<=n&&g.to>=n),c=a&&a.dir==Co.RTL?-1:1;o=A.x{this.pending==s&&(this.pending=null,a&&!(Array.isArray(a)&&!a.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(a)?a:[a])}))},a=>is(e.state,a,"hover tooltip"))}else r&&!(Array.isArray(r)&&!r.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(r)?r:[r])})}get tooltip(){let e=this.view.plugin(wF),A=e?e.manager.tooltips.findIndex(i=>i.create==gw.create):-1;return A>-1?e.manager.tooltipViews[A]:null}mousemove(e){var A,i;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:n,tooltip:o}=this;if(n.length&&o&&!YxA(o.dom,e)||this.pending){let{pos:r}=n[0]||this.pending,s=(i=(A=n[0])===null||A===void 0?void 0:A.end)!==null&&i!==void 0?i:r;(r==s?this.view.posAtCoords(this.lastMove)!=r:!TxA(this.view,r,s,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:A}=this;if(A.length){let{tooltip:i}=this;i&&i.dom.contains(e.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let A=i=>{e.removeEventListener("mouseleave",A),this.active.length&&!this.view.dom.contains(i.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",A)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}},OD=4;function YxA(t,e){let{left:A,right:i,top:n,bottom:o}=t.getBoundingClientRect(),r;if(r=t.querySelector(".cm-tooltip-arrow")){let s=r.getBoundingClientRect();n=Math.min(s.top,n),o=Math.max(s.bottom,o)}return e.clientX>=A-OD&&e.clientX<=i+OD&&e.clientY>=n-OD&&e.clientY<=o+OD}function TxA(t,e,A,i,n,o){let r=t.scrollDOM.getBoundingClientRect(),s=t.documentTop+t.documentPadding.top+t.contentHeight;if(r.left>i||r.rightn||Math.min(r.bottom,s)=e&&a<=A}function FiA(t,e={}){let A=Ki.define(),i=tr.define({create(){return[]},update(n,o){if(n.length&&(e.hideOnChange&&(o.docChanged||o.selection)?n=[]:e.hideOn&&(n=n.filter(r=>!e.hideOn(o,r))),o.docChanged)){let r=[];for(let s of n){let a=o.changes.mapPos(s.pos,-1,us.TrackDel);if(a!=null){let c=Object.assign(Object.create(null),s);c.pos=a,c.end!=null&&(c.end=o.changes.mapPos(c.end)),r.push(c)}}n=r}for(let r of o.effects)r.is(A)&&(n=r.value),r.is(HxA)&&(n=[]);return n},provide:n=>cw.from(n)});return{active:i,extension:[i,Bo.define(n=>new dF(n,t,i,A,e.hoverTime||300)),JxA]}}function yF(t,e){let A=t.plugin(wF);if(!A)return null;let i=A.manager.tooltips.indexOf(e);return i<0?null:A.manager.tooltipViews[i]}var HxA=Ki.define();var vtA=qe.define({combine(t){let e,A;for(let i of t)e=e||i.topContainer,A=A||i.bottomContainer;return{topContainer:e,bottomContainer:A}}});function FC(t,e){let A=t.plugin(_iA),i=A?A.specs.indexOf(e):-1;return i>-1?A.panels[i]:null}var _iA=Bo.fromClass(class{constructor(t){this.input=t.state.facet(NC),this.specs=this.input.filter(A=>A),this.panels=this.specs.map(A=>A(t));let e=t.state.facet(vtA);this.top=new HE(t,!0,e.topContainer),this.bottom=new HE(t,!1,e.bottomContainer),this.top.sync(this.panels.filter(A=>A.top)),this.bottom.sync(this.panels.filter(A=>!A.top));for(let A of this.panels)A.dom.classList.add("cm-panel"),A.mount&&A.mount()}update(t){let e=t.state.facet(vtA);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new HE(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new HE(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let A=t.state.facet(NC);if(A!=this.input){let i=A.filter(a=>a),n=[],o=[],r=[],s=[];for(let a of i){let c=this.specs.indexOf(a),g;c<0?(g=a(t.view),s.push(g)):(g=this.panels[c],g.update&&g.update(t)),n.push(g),(g.top?o:r).push(g)}this.specs=i,this.panels=n,this.top.sync(o),this.bottom.sync(r);for(let a of s)a.dom.classList.add("cm-panel"),a.mount&&a.mount()}else for(let i of this.panels)i.update&&i.update(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>Pt.scrollMargins.of(e=>{let A=e.plugin(t);return A&&{top:A.top.scrollMargin(),bottom:A.bottom.scrollMargin()}})}),HE=class{constructor(e,A,i){this.view=e,this.top=A,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let A of this.panels)A.destroy&&e.indexOf(A)<0&&A.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let A=this.container||this.view.dom;A.insertBefore(this.dom,this.top?A.firstChild:null)}let e=this.dom.firstChild;for(let A of this.panels)if(A.dom.parentNode==this.dom){for(;e!=A.dom;)e=MtA(e);e=e.nextSibling}else this.dom.insertBefore(A.dom,e);for(;e;)e=MtA(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}};function MtA(t){let e=t.nextSibling;return t.remove(),e}var NC=qe.define({enables:_iA});var Ga=class extends xg{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};Ga.prototype.elementClass="";Ga.prototype.toDOM=void 0;Ga.prototype.mapMode=us.TrackBefore;Ga.prototype.startSide=Ga.prototype.endSide=-1;Ga.prototype.point=!0;var WD=qe.define(),OxA=qe.define(),zxA={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>Io.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},r3=qe.define();function Qw(t){return[GiA(),r3.of(sA(sA({},zxA),t))]}var BF=qe.define({combine:t=>t.some(e=>e)});function GiA(t){let e=[PxA];return t&&t.fixed===!1&&e.push(BF.of(!0)),e}var PxA=Bo.fromClass(class{constructor(t){this.view=t,this.domAfter=null,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet(r3).map(e=>new lw(t,e)),this.fixed=!t.state.facet(BF);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(t){if(this.updateGutters(t)){let e=this.prevViewport,A=t.view.viewport,i=Math.min(e.to,A.to)-Math.max(e.from,A.from);this.syncGutters(i<(A.to-A.from)*.8)}if(t.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(BF)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let A=Io.iter(this.view.state.facet(WD),this.view.viewport.from),i=[],n=this.gutters.map(o=>new QF(o,this.view.viewport,-this.view.documentPadding.top));for(let o of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(o.type)){let r=!0;for(let s of o.type)if(s.type==na.Text&&r){EF(A,i,s.from);for(let a of n)a.line(this.view,s,i);r=!1}else if(s.widget)for(let a of n)a.widget(this.view,s)}else if(o.type==na.Text){EF(A,i,o.from);for(let r of n)r.line(this.view,o,i)}else if(o.widget)for(let r of n)r.widget(this.view,o);for(let o of n)o.finish();t&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(t){let e=t.startState.facet(r3),A=t.state.facet(r3),i=t.docChanged||t.heightChanged||t.viewportChanged||!Io.eq(t.startState.facet(WD),t.state.facet(WD),t.view.viewport.from,t.view.viewport.to);if(e==A)for(let n of this.gutters)n.update(t)&&(i=!0);else{i=!0;let n=[];for(let o of A){let r=e.indexOf(o);r<0?n.push(new lw(this.view,o)):(this.gutters[r].update(t),n.push(this.gutters[r]))}for(let o of this.gutters)o.dom.remove(),n.indexOf(o)<0&&o.destroy();for(let o of n)o.config.side=="after"?this.getDOMAfter().appendChild(o.dom):this.dom.appendChild(o.dom);this.gutters=n}return i}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:t=>Pt.scrollMargins.of(e=>{let A=e.plugin(t);if(!A||A.gutters.length==0||!A.fixed)return null;let i=A.dom.offsetWidth*e.scaleX,n=A.domAfter?A.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==Co.LTR?{left:i,right:n}:{right:i,left:n}})});function btA(t){return Array.isArray(t)?t:[t]}function EF(t,e,A){for(;t.value&&t.from<=A;)t.from==A&&e.push(t.value),t.next()}var QF=class{constructor(e,A,i){this.gutter=e,this.height=i,this.i=0,this.cursor=Io.iter(e.markers,A.from)}addElement(e,A,i){let{gutter:n}=this,o=(A.top-this.height)/e.scaleY,r=A.height/e.scaleY;if(this.i==n.elements.length){let s=new Iw(e,r,o,i);n.elements.push(s),n.dom.appendChild(s.dom)}else n.elements[this.i].update(e,r,o,i);this.height=A.bottom,this.i++}line(e,A,i){let n=[];EF(this.cursor,n,A.from),i.length&&(n=n.concat(i));let o=this.gutter.config.lineMarker(e,A,n);o&&n.unshift(o);let r=this.gutter;n.length==0&&!r.config.renderEmptyElements||this.addElement(e,A,n)}widget(e,A){let i=this.gutter.config.widgetMarker(e,A.widget,A),n=i?[i]:null;for(let o of e.state.facet(OxA)){let r=o(e,A.widget,A);r&&(n||(n=[])).push(r)}n&&this.addElement(e,A,n)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let A=e.elements.pop();e.dom.removeChild(A.dom),A.destroy()}}},lw=class{constructor(e,A){this.view=e,this.config=A,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in A.domEventHandlers)this.dom.addEventListener(i,n=>{let o=n.target,r;if(o!=this.dom&&this.dom.contains(o)){for(;o.parentNode!=this.dom;)o=o.parentNode;let a=o.getBoundingClientRect();r=(a.top+a.bottom)/2}else r=n.clientY;let s=e.lineBlockAtHeight(r-e.documentTop);A.domEventHandlers[i](e,s,n)&&n.preventDefault()});this.markers=btA(A.markers(e)),A.initialSpacer&&(this.spacer=new Iw(e,0,0,[A.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let A=this.markers;if(this.markers=btA(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let n=this.config.updateSpacer(this.spacer.markers[0],e);n!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[n])}let i=e.view.viewport;return!Io.eq(this.markers,A,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}},Iw=class{constructor(e,A,i,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,A,i,n)}update(e,A,i,n){this.height!=A&&(this.height=A,this.dom.style.height=A+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),jxA(this.markers,n)||this.setMarkers(e,n)}setMarkers(e,A){let i="cm-gutterElement",n=this.dom.firstChild;for(let o=0,r=0;;){let s=r,a=oo(s,a,c)||r(s,a,c):r}return i}})}}),s3=class extends Ga{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}};function RN(t,e){return t.state.facet(OE).formatNumber(e,t.state)}var ZxA=r3.compute([OE],t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(qxA)},lineMarker(e,A,i){return i.some(n=>n.toDOM)?null:new s3(RN(e,e.state.doc.lineAt(A.from).number))},widgetMarker:(e,A,i)=>{for(let n of e.state.facet(VxA)){let o=n(e,A,i);if(o)return o}return null},lineMarkerChange:e=>e.startState.facet(OE)!=e.state.facet(OE),initialSpacer(e){return new s3(RN(e,ktA(e.state.doc.lines)))},updateSpacer(e,A){let i=RN(A.view,ktA(A.view.state.doc.lines));return i==e.number?e:new s3(i)},domEventHandlers:t.facet(OE).domEventHandlers,side:"before"}));function KiA(t={}){return[OE.of(t),GiA(),ZxA]}function ktA(t){let e=9;for(;e{let e=[],A=-1;for(let i of t.selection.ranges){let n=t.doc.lineAt(i.head).from;n>A&&(A=n,e.push(WxA.range(n)))}return Io.of(e)});function UiA(){return XxA}var $xA=0,u3=class{constructor(e,A){this.from=e,this.to=A}},di=class{constructor(e={}){this.id=$xA++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=Ks.match(e)),A=>{let i=e(A);return i===void 0?null:[this,i]}}};di.closedBy=new di({deserialize:t=>t.split(" ")});di.openedBy=new di({deserialize:t=>t.split(" ")});di.group=new di({deserialize:t=>t.split(" ")});di.isolate=new di({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}});di.contextHash=new di({perNode:!0});di.lookAhead=new di({perNode:!0});di.mounted=new di({perNode:!0});var VE=class{constructor(e,A,i){this.tree=e,this.overlay=A,this.parser=i}static get(e){return e&&e.props&&e.props[di.mounted.id]}},ANA=Object.create(null),Ks=class t{constructor(e,A,i,n=0){this.name=e,this.props=A,this.id=i,this.flags=n}static define(e){let A=e.props&&e.props.length?Object.create(null):ANA,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),n=new t(e.name||"",A,e.id,i);if(e.props){for(let o of e.props)if(Array.isArray(o)||(o=o(n)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");A[o[0].id]=o[1]}}return n}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let A=this.prop(di.group);return A?A.indexOf(e)>-1:!1}return this.id==e}static match(e){let A=Object.create(null);for(let i in e)for(let n of i.split(" "))A[n]=e[i];return i=>{for(let n=i.prop(di.group),o=-1;o<(n?n.length:0);o++){let r=A[o<0?i.name:n[o]];if(r)return r}}}};Ks.none=new Ks("",Object.create(null),0,8);var h3=class t{constructor(e){this.types=e;for(let A=0;A0;for(let a=this.cursor(r|zr.IncludeAnonymous);;){let c=!1;if(a.from<=o&&a.to>=n&&(!s&&a.type.isAnonymous||A(a)!==!1)){if(a.firstChild())continue;c=!0}for(;c&&i&&(s||!a.type.isAnonymous)&&i(a),!a.nextSibling();){if(!a.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let A in this.props)e.push([+A,this.props[A]]);return e}balance(e={}){return this.children.length<=8?this:LF(Ks.none,this.children,this.positions,0,this.children.length,0,this.length,(A,i,n)=>new t(this.type,A,i,n,this.propValues),e.makeTree||((A,i,n)=>new t(Ks.none,A,i,n)))}static build(e){return tNA(e)}};wr.empty=new wr(Ks.none,[],[],0);var vF=class t{constructor(e,A){this.buffer=e,this.index=A}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new t(this.buffer,this.index)}},_1=class t{constructor(e,A,i){this.buffer=e,this.length=A,this.set=i}get type(){return Ks.none}toString(){let e=[];for(let A=0;A0));a=r[a+3]);return s}slice(e,A,i){let n=this.buffer,o=new Uint16Array(A-e),r=0;for(let s=e,a=0;s=e&&Ae;case 1:return A<=e&&i>e;case 2:return i>e;case 4:return!0}}function f3(t,e,A,i){for(var n;t.from==t.to||(A<1?t.from>=e:t.from>e)||(A>-1?t.to<=e:t.to0?s.length:-1;e!=c;e+=A){let g=s[e],I=a[e]+r.from;if(HiA(n,i,I,I+g.length)){if(g instanceof _1){if(o&zr.ExcludeBuffers)continue;let C=g.findChild(0,g.buffer.length,A,i-I,n);if(C>-1)return new m3(new bF(r,g,e,I),null,C)}else if(o&zr.IncludeAnonymous||!g.type.isAnonymous||RF(g)){let C;if(!(o&zr.IgnoreMounts)&&(C=VE.get(g))&&!C.overlay)return new t(C.tree,I,e,r);let d=new t(g,I,e,r);return o&zr.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(A<0?g.children.length-1:0,A,i,n)}}}if(o&zr.IncludeAnonymous||!r.type.isAnonymous||(r.index>=0?e=r.index+A:e=A<0?-1:r._parent._tree.children.length,r=r._parent,!r))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,A,i=0){let n;if(!(i&zr.IgnoreOverlays)&&(n=VE.get(this._tree))&&n.overlay){let o=e-this.from;for(let{from:r,to:s}of n.overlay)if((A>0?r<=o:r=o:s>o))return new t(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,A,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function YiA(t,e,A,i){let n=t.cursor(),o=[];if(!n.firstChild())return o;if(A!=null){for(let r=!1;!r;)if(r=n.type.is(A),!n.nextSibling())return o}for(;;){if(i!=null&&n.type.is(i))return o;if(n.type.is(e)&&o.push(n.node),!n.nextSibling())return i==null?o:[]}}function MF(t,e,A=e.length-1){for(let i=t;A>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[A]&&e[A]!=i.name)return!1;A--}}return!0}var bF=class{constructor(e,A,i,n){this.parent=e,this.buffer=A,this.index=i,this.start=n}},m3=class t extends fw{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,A,i){super(),this.context=e,this._parent=A,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,A,i){let{buffer:n}=this.context,o=n.findChild(this.index+4,n.buffer[this.index+3],e,A-this.context.start,i);return o<0?null:new t(this.context,this,o)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,A,i=0){if(i&zr.ExcludeBuffers)return null;let{buffer:n}=this.context,o=n.findChild(this.index+4,n.buffer[this.index+3],A>0?1:-1,e-this.context.start,A);return o<0?null:new t(this.context,this,o)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,A=e.buffer[this.index+3];return A<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new t(this.context,this._parent,A):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,A=this._parent?this._parent.index+4:0;return this.index==A?this.externalSibling(-1):new t(this.context,this._parent,e.findChild(A,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],A=[],{buffer:i}=this.context,n=this.index+4,o=i.buffer[this.index+3];if(o>n){let r=i.buffer[this.index+1];e.push(i.slice(n,o,r)),A.push(0)}return new wr(this.type,e,A,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function OiA(t){if(!t.length)return null;let e=0,A=t[0];for(let o=1;oA.from||r.to=e){let s=new jl(r.tree,r.overlay[0].from+o.from,-1,o);(n||(n=[i])).push(f3(s,e,A,!1))}}return n?OiA(n):i}var p3=class{get name(){return this.type.name}constructor(e,A=0){if(this.mode=A,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof jl)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,A){this.index=e;let{start:i,buffer:n}=this.buffer;return this.type=A||n.set.types[n.buffer[e]],this.from=i+n.buffer[e+1],this.to=i+n.buffer[e+2],!0}yield(e){return e?e instanceof jl?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,A,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,A,i,this.mode));let{buffer:n}=this.buffer,o=n.findChild(this.index+4,n.buffer[this.index+3],e,A-this.buffer.start,i);return o<0?!1:(this.stack.push(this.index),this.yieldBuf(o))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,A,i=this.mode){return this.buffer?i&zr.ExcludeBuffers?!1:this.enterChild(1,e,A):this.yield(this._tree.enter(e,A,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&zr.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&zr.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:A}=this.buffer,i=this.stack.length-1;if(e<0){let n=i<0?0:this.stack[i]+4;if(this.index!=n)return this.yieldBuf(A.findChild(n,this.index,-1,0,4))}else{let n=A.buffer[this.index+3];if(n<(i<0?A.buffer.length:A.buffer[this.stack[i]+3]))return this.yieldBuf(n)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let A,i,{buffer:n}=this;if(n){if(e>0){if(this.index-1)for(let o=A+e,r=e<0?-1:i._tree.children.length;o!=r;o+=e){let s=i._tree.children[o];if(this.mode&zr.IncludeAnonymous||s instanceof _1||!s.type.isAnonymous||RF(s))return!1}return!0}move(e,A){if(A&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,A=0){for(;(this.from==this.to||(A<1?this.from>=e:this.from>e)||(A>-1?this.to<=e:this.to=0;){for(let r=e;r;r=r._parent)if(r.index==n){if(n==this.index)return r;A=r,i=o+1;break A}n=this.stack[--o]}for(let n=i;n=0;o--){if(o<0)return MF(this._tree,e,n);let r=i[A.buffer[this.stack[o]]];if(!r.isAnonymous){if(e[n]&&e[n]!=r.name)return!1;n--}}return!0}};function RF(t){return t.children.some(e=>e instanceof _1||!e.type.isAnonymous||RF(e))}function tNA(t){var e;let{buffer:A,nodeSet:i,maxBufferLength:n=1024,reused:o=[],minRepeatType:r=i.types.length}=t,s=Array.isArray(A)?new vF(A,A.length):A,a=i.types,c=0,g=0;function I(D,G,J,z,K,O){let{id:V,start:j,end:dA,size:fA}=s,EA=g,IA=c;for(;fA<0;)if(s.next(),fA==-1){let VA=o[V];J.push(VA),z.push(j-D);return}else if(fA==-3){c=V;return}else if(fA==-4){g=V;return}else throw new RangeError(`Unrecognized record size: ${fA}`);let SA=a[V],nA,lA,wA=j-D;if(dA-j<=n&&(lA=u(s.pos-G,K))){let VA=new Uint16Array(lA.size-lA.skip),ie=s.pos-lA.size,UA=VA.length;for(;s.pos>ie;)UA=h(lA.start,VA,UA);nA=new _1(VA,dA-lA.start,i),wA=lA.start-D}else{let VA=s.pos-fA;s.next();let ie=[],UA=[],BA=V>=r?V:-1,JA=0,Xe=dA;for(;s.pos>VA;)BA>=0&&s.id==BA&&s.size>=0?(s.end<=Xe-n&&(B(ie,UA,j,JA,s.end,Xe,BA,EA,IA),JA=ie.length,Xe=s.end),s.next()):O>2500?C(j,VA,ie,UA):I(j,VA,ie,UA,BA,O+1);if(BA>=0&&JA>0&&JA-1&&JA>0){let We=d(SA,IA);nA=LF(SA,ie,UA,0,ie.length,0,dA-j,We,We)}else nA=E(SA,ie,UA,dA-j,EA-dA,IA)}J.push(nA),z.push(wA)}function C(D,G,J,z){let K=[],O=0,V=-1;for(;s.pos>G;){let{id:j,start:dA,end:fA,size:EA}=s;if(EA>4)s.next();else{if(V>-1&&dA=0;fA-=3)j[EA++]=K[fA],j[EA++]=K[fA+1]-dA,j[EA++]=K[fA+2]-dA,j[EA++]=EA;J.push(new _1(j,K[2]-dA,i)),z.push(dA-D)}}function d(D,G){return(J,z,K)=>{let O=0,V=J.length-1,j,dA;if(V>=0&&(j=J[V])instanceof wr){if(!V&&j.type==D&&j.length==K)return j;(dA=j.prop(di.lookAhead))&&(O=z[V]+j.length+dA)}return E(D,J,z,K,O,G)}}function B(D,G,J,z,K,O,V,j,dA){let fA=[],EA=[];for(;D.length>z;)fA.push(D.pop()),EA.push(G.pop()+J-K);D.push(E(i.types[V],fA,EA,O-K,j-O,dA)),G.push(K-J)}function E(D,G,J,z,K,O,V){if(O){let j=[di.contextHash,O];V=V?[j].concat(V):[j]}if(K>25){let j=[di.lookAhead,K];V=V?[j].concat(V):[j]}return new wr(D,G,J,z,V)}function u(D,G){let J=s.fork(),z=0,K=0,O=0,V=J.end-n,j={size:0,start:0,skip:0};A:for(let dA=J.pos-D;J.pos>dA;){let fA=J.size;if(J.id==G&&fA>=0){j.size=z,j.start=K,j.skip=O,O+=4,z+=4,J.next();continue}let EA=J.pos-fA;if(fA<0||EA=r?4:0,SA=J.start;for(J.next();J.pos>EA;){if(J.size<0)if(J.size==-3)IA+=4;else break A;else J.id>=r&&(IA+=4);J.next()}K=SA,z+=fA,O+=IA}return(G<0||z==D)&&(j.size=z,j.start=K,j.skip=O),j.size>4?j:void 0}function h(D,G,J){let{id:z,start:K,end:O,size:V}=s;if(s.next(),V>=0&&z4){let dA=s.pos-(V-4);for(;s.pos>dA;)J=h(D,G,J)}G[--J]=j,G[--J]=O-D,G[--J]=K-D,G[--J]=z}else V==-3?c=z:V==-4&&(g=z);return J}let w=[],x=[];for(;s.pos>0;)I(t.start||0,t.bufferStart||0,w,x,-1,0);let R=(e=t.length)!==null&&e!==void 0?e:w.length?x[0]+w[0].length:0;return new wr(a[t.topID],w.reverse(),x.reverse(),R)}var TiA=new WeakMap;function hw(t,e){if(!t.isAnonymous||e instanceof _1||e.type!=t)return 1;let A=TiA.get(e);if(A==null){A=1;for(let i of e.children){if(i.type!=t||!(i instanceof wr)){A=1;break}A+=hw(t,i)}TiA.set(e,A)}return A}function LF(t,e,A,i,n,o,r,s,a){let c=0;for(let B=i;B=g)break;G+=J}if(x==R+1){if(G>g){let J=B[R];d(J.children,J.positions,0,J.children.length,E[R]+w);continue}I.push(B[R])}else{let J=E[x-1]+B[x-1].length-D;I.push(LF(t,B,E,R,x,D,J,null,a))}C.push(D+w-o)}}return d(e,A,i,n,0),(s||a)(I,C,r)}var _C=class t{constructor(e,A,i,n,o=!1,r=!1){this.from=e,this.to=A,this.tree=i,this.offset=n,this.open=(o?1:0)|(r?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,A=[],i=!1){let n=[new t(0,e.length,e,0,!1,i)];for(let o of A)o.to>e.length&&n.push(o);return n}static applyChanges(e,A,i=128){if(!A.length)return e;let n=[],o=1,r=e.length?e[0]:null;for(let s=0,a=0,c=0;;s++){let g=s=i)for(;r&&r.from=C.from||I<=C.to||c){let d=Math.max(C.from,a)-c,B=Math.min(C.to,I)-c;C=d>=B?null:new t(d,B,C.tree,C.offset+c,s>0,!!g)}if(C&&n.push(C),r.to>I)break;r=onew u3(n.from,n.to)):[new u3(0,0)]:[new u3(0,e.length)],this.createParse(e,A||[],i)}parse(e,A,i){let n=this.startParse(e,A,i);for(;;){let o=n.advance();if(o)return o}}},SF=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,A){return this.string.slice(e,A)}};var W5e=new di({perNode:!0});var iNA=0,_g=class t{constructor(e,A,i,n){this.name=e,this.set=A,this.base=i,this.modified=n,this.id=iNA++}toString(){let{name:e}=this;for(let A of this.modified)A.name&&(e=`${A.name}(${e})`);return e}static define(e,A){let i=typeof e=="string"?e:"?";if(e instanceof t&&(A=e),A?.base)throw new Error("Can not derive from a modified tag");let n=new t(i,[],null,[]);if(n.set.push(n),A)for(let o of A.set)n.set.push(o);return n}static defineModifier(e){let A=new ww(e);return i=>i.modified.indexOf(A)>-1?i:ww.get(i.base||i,i.modified.concat(A).sort((n,o)=>n.id-o.id))}},nNA=0,ww=class t{constructor(e){this.name=e,this.instances=[],this.id=nNA++}static get(e,A){if(!A.length)return e;let i=A[0].instances.find(s=>s.base==e&&oNA(A,s.modified));if(i)return i;let n=[],o=new _g(e.name,n,e,A);for(let s of A)s.instances.push(o);let r=rNA(A);for(let s of e.set)if(!s.modified.length)for(let a of r)n.push(t.get(s,a));return o}};function oNA(t,e){return t.length==e.length&&t.every((A,i)=>A==e[i])}function rNA(t){let e=[[]];for(let A=0;Ai.length-A.length)}function yw(t){let e=Object.create(null);for(let A in t){let i=t[A];Array.isArray(i)||(i=[i]);for(let n of A.split(" "))if(n){let o=[],r=2,s=n;for(let I=0;;){if(s=="..."&&I>0&&I+3==n.length){r=1;break}let C=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(s);if(!C)throw new RangeError("Invalid path: "+n);if(o.push(C[0]=="*"?"":C[0][0]=='"'?JSON.parse(C[0]):C[0]),I+=C[0].length,I==n.length)break;let d=n[I++];if(I==n.length&&d=="!"){r=0;break}if(d!="/")throw new RangeError("Invalid path: "+n);s=n.slice(I)}let a=o.length-1,c=o[a];if(!c)throw new RangeError("Invalid path: "+n);let g=new WE(i,r,a>0?o.slice(0,a):null);e[c]=g.sort(e[c])}}return jiA.add(e)}var jiA=new di,WE=class{constructor(e,A,i,n){this.tags=e,this.mode=A,this.context=i,this.next=n}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let r=n;for(let s of o)for(let a of s.set){let c=A[a.id];if(c){r=r?r+" "+c:c;break}}return r},scope:i}}function sNA(t,e){let A=null;for(let i of t){let n=i.style(e);n&&(A=A?A+" "+n:n)}return A}function qiA(t,e,A,i=0,n=t.length){let o=new NF(i,Array.isArray(e)?e:[e],A);o.highlightRange(t.cursor(),i,n,"",o.highlighters),o.flush(n)}var NF=class{constructor(e,A,i){this.at=e,this.highlighters=A,this.span=i,this.class=""}startSpan(e,A){A!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=A)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,A,i,n,o){let{type:r,from:s,to:a}=e;if(s>=i||a<=A)return;r.isTop&&(o=this.highlighters.filter(d=>!d.scope||d.scope(r)));let c=n,g=aNA(e)||WE.empty,I=sNA(o,g.tags);if(I&&(c&&(c+=" "),c+=I,g.mode==1&&(n+=(n?" ":"")+I)),this.startSpan(Math.max(A,s),c),g.opaque)return;let C=e.tree&&e.tree.prop(di.mounted);if(C&&C.overlay){let d=e.node.enter(C.overlay[0].from+s,1),B=this.highlighters.filter(u=>!u.scope||u.scope(C.tree.type)),E=e.firstChild();for(let u=0,h=s;;u++){let w=u=x||!e.nextSibling())););if(!w||x>i)break;h=w.to+s,h>A&&(this.highlightRange(d.cursor(),Math.max(A,w.from+s),Math.min(i,h),"",B),this.startSpan(Math.min(i,h),c))}E&&e.parent()}else if(e.firstChild()){C&&(n="");do if(!(e.to<=A)){if(e.from>=i)break;this.highlightRange(e,A,i,n,o),this.startSpan(Math.min(i,e.to),c)}while(e.nextSibling());e.parent()}}};function aNA(t){let e=t.type.prop(jiA);for(;e&&e.context&&!t.matchContext(e.context);)e=e.next;return e||null}var ze=_g.define,mw=ze(),G1=ze(),ziA=ze(G1),PiA=ze(G1),K1=ze(),pw=ze(K1),xF=ze(K1),Zl=ze(),GC=ze(Zl),ql=ze(),Vl=ze(),FF=ze(),D3=ze(FF),Dw=ze(),ke={comment:mw,lineComment:ze(mw),blockComment:ze(mw),docComment:ze(mw),name:G1,variableName:ze(G1),typeName:ziA,tagName:ze(ziA),propertyName:PiA,attributeName:ze(PiA),className:ze(G1),labelName:ze(G1),namespace:ze(G1),macroName:ze(G1),literal:K1,string:pw,docString:ze(pw),character:ze(pw),attributeValue:ze(pw),number:xF,integer:ze(xF),float:ze(xF),bool:ze(K1),regexp:ze(K1),escape:ze(K1),color:ze(K1),url:ze(K1),keyword:ql,self:ze(ql),null:ze(ql),atom:ze(ql),unit:ze(ql),modifier:ze(ql),operatorKeyword:ze(ql),controlKeyword:ze(ql),definitionKeyword:ze(ql),moduleKeyword:ze(ql),operator:Vl,derefOperator:ze(Vl),arithmeticOperator:ze(Vl),logicOperator:ze(Vl),bitwiseOperator:ze(Vl),compareOperator:ze(Vl),updateOperator:ze(Vl),definitionOperator:ze(Vl),typeOperator:ze(Vl),controlOperator:ze(Vl),punctuation:FF,separator:ze(FF),bracket:D3,angleBracket:ze(D3),squareBracket:ze(D3),paren:ze(D3),brace:ze(D3),content:Zl,heading:GC,heading1:ze(GC),heading2:ze(GC),heading3:ze(GC),heading4:ze(GC),heading5:ze(GC),heading6:ze(GC),contentSeparator:ze(Zl),list:ze(Zl),quote:ze(Zl),emphasis:ze(Zl),strong:ze(Zl),link:ze(Zl),monospace:ze(Zl),strikethrough:ze(Zl),inserted:ze(),deleted:ze(),changed:ze(),invalid:ze(),meta:Dw,documentMeta:ze(Dw),annotation:ze(Dw),processingInstruction:ze(Dw),definition:_g.defineModifier("definition"),constant:_g.defineModifier("constant"),function:_g.defineModifier("function"),standard:_g.defineModifier("standard"),local:_g.defineModifier("local"),special:_g.defineModifier("special")};for(let t in ke){let e=ke[t];e instanceof _g&&(e.name=t)}var ADe=_F([{tag:ke.link,class:"tok-link"},{tag:ke.heading,class:"tok-heading"},{tag:ke.emphasis,class:"tok-emphasis"},{tag:ke.strong,class:"tok-strong"},{tag:ke.keyword,class:"tok-keyword"},{tag:ke.atom,class:"tok-atom"},{tag:ke.bool,class:"tok-bool"},{tag:ke.url,class:"tok-url"},{tag:ke.labelName,class:"tok-labelName"},{tag:ke.inserted,class:"tok-inserted"},{tag:ke.deleted,class:"tok-deleted"},{tag:ke.literal,class:"tok-literal"},{tag:ke.string,class:"tok-string"},{tag:ke.number,class:"tok-number"},{tag:[ke.regexp,ke.escape,ke.special(ke.string)],class:"tok-string2"},{tag:ke.variableName,class:"tok-variableName"},{tag:ke.local(ke.variableName),class:"tok-variableName tok-local"},{tag:ke.definition(ke.variableName),class:"tok-variableName tok-definition"},{tag:ke.special(ke.variableName),class:"tok-variableName2"},{tag:ke.definition(ke.propertyName),class:"tok-propertyName tok-definition"},{tag:ke.typeName,class:"tok-typeName"},{tag:ke.namespace,class:"tok-namespace"},{tag:ke.className,class:"tok-className"},{tag:ke.macroName,class:"tok-macroName"},{tag:ke.propertyName,class:"tok-propertyName"},{tag:ke.operator,class:"tok-operator"},{tag:ke.comment,class:"tok-comment"},{tag:ke.meta,class:"tok-meta"},{tag:ke.invalid,class:"tok-invalid"},{tag:ke.punctuation,class:"tok-punctuation"}]);var GF,XE=new di;function cNA(t){return qe.define({combine:t?e=>e.concat(t):void 0})}var gNA=new di,Gg=(()=>{class t{constructor(A,i,n=[],o=""){this.data=A,this.name=o,Dr.prototype.hasOwnProperty("tree")||Object.defineProperty(Dr.prototype,"tree",{get(){return ns(this)}}),this.parser=i,this.extension=[U1.of(this),Dr.languageData.of((r,s,a)=>{let c=ViA(r,s,a),g=c.type.prop(XE);if(!g)return[];let I=r.facet(g),C=c.type.prop(gNA);if(C){let d=c.resolve(s-c.from,a);for(let B of C)if(B.test(d,r)){let E=r.facet(B.facet);return B.type=="replace"?E:E.concat(I)}}return I})].concat(n)}isActiveAt(A,i,n=-1){return ViA(A,i,n).type.prop(XE)==this.data}findRegions(A){let i=A.facet(U1);if(i?.data==this.data)return[{from:0,to:A.doc.length}];if(!i||!i.allowsNesting)return[];let n=[],o=(r,s)=>{if(r.prop(XE)==this.data){n.push({from:s,to:s+r.length});return}let a=r.prop(di.mounted);if(a){if(a.tree.prop(XE)==this.data){if(a.overlay)for(let c of a.overlay)n.push({from:c.from+s,to:c.to+s});else n.push({from:s,to:s+r.length});return}else if(a.overlay){let c=n.length;if(o(a.tree,a.overlay[0].from+s),n.length>c)return}}for(let c=0;ci.isTop?A:void 0)]}),e.name)}configure(e,A){return new t(this.data,this.parser.configure(e),A||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function ns(t){let e=t.field(Gg.state,!1);return e?e.tree:wr.empty}function VF(t,e,A=50){var i;let n=(i=t.field(Gg.state,!1))===null||i===void 0?void 0:i.context;if(!n)return null;let o=n.viewport;n.updateViewport({from:0,to:e});let r=n.isDone(e)||n.work(A,e)?n.tree:null;return n.updateViewport(o),r}var YF=class{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,A){let i=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,A):this.string.slice(e-i,A-i)}},w3=null,TF=class t{constructor(e,A,i=[],n,o,r,s,a){this.parser=e,this.state=A,this.fragments=i,this.tree=n,this.treeLen=o,this.viewport=r,this.skipped=s,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,A,i){return new t(e,A,[],wr.empty,0,i,[],null)}startParse(){return this.parser.startParse(new YF(this.state.doc),this.fragments)}work(e,A){return A!=null&&A>=this.state.doc.length&&(A=void 0),this.tree!=wr.empty&&this.isDone(A??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let n=Date.now()+e;e=()=>Date.now()>n}for(this.parse||(this.parse=this.startParse()),A!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>A)&&A=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(A=this.parse.advance()););}),this.treeLen=e,this.tree=A,this.fragments=this.withoutTempSkipped(_C.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let A=w3;w3=this;try{return e()}finally{w3=A}}withoutTempSkipped(e){for(let A;A=this.tempSkipped.pop();)e=ZiA(e,A.from,A.to);return e}changes(e,A){let{fragments:i,tree:n,treeLen:o,viewport:r,skipped:s}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((c,g,I,C)=>a.push({fromA:c,toA:g,fromB:I,toB:C})),i=_C.applyChanges(i,a),n=wr.empty,o=0,r={from:e.mapPos(r.from,-1),to:e.mapPos(r.to,1)},this.skipped.length){s=[];for(let c of this.skipped){let g=e.mapPos(c.from,1),I=e.mapPos(c.to,-1);ge.from&&(this.fragments=ZiA(this.fragments,n,o),this.skipped.splice(i--,1))}return this.skipped.length>=A?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,A){this.skipped.push({from:e,to:A})}static getSkippingParser(e){return new class extends ZE{createParse(A,i,n){let o=n[0].from,r=n[n.length-1].to;return{parsedPos:o,advance(){let a=w3;if(a){for(let c of n)a.tempSkipped.push(c);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=r,new wr(Ks.none,[],[],r-o)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let A=this.fragments;return this.treeLen>=e&&A.length&&A[0].from==0&&A[0].to>=e}static get(){return w3}};function ZiA(t,e,A){return _C.applyChanges(t,[{fromA:e,toA:A,fromB:e,toB:A}])}var v3=class t{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let A=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),A.viewport.to);return A.work(20,i)||A.takeTree(),new t(A)}static init(e){let A=Math.min(3e3,e.doc.length),i=TF.create(e.facet(U1).parser,e,{from:0,to:A});return i.work(20,A)||i.takeTree(),new t(i)}};Gg.state=tr.define({create:v3.init,update(t,e){for(let A of e.effects)if(A.is(Gg.setState))return A.value;return e.startState.facet(U1)!=e.state.facet(U1)?v3.init(e.state):t.apply(e)}});var tnA=t=>{let e=setTimeout(()=>t(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(tnA=t=>{let e=-1,A=setTimeout(()=>{e=requestIdleCallback(t,{timeout:400})},100);return()=>e<0?clearTimeout(A):cancelIdleCallback(e)});var KF=typeof navigator<"u"&&(!((GF=navigator.scheduling)===null||GF===void 0)&&GF.isInputPending)?()=>navigator.scheduling.isInputPending():null,lNA=Bo.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let A=this.view.state.field(Gg.state).context;(A.updateViewport(e.view.viewport)||this.view.viewport.to>A.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(A)}scheduleWork(){if(this.working)return;let{state:e}=this.view,A=e.field(Gg.state);(A.tree!=A.context.tree||!A.context.isDone(e.doc.length))&&(this.working=tnA(this.work))}work(e){this.working=null;let A=Date.now();if(this.chunkEndn+1e3,a=o.context.work(()=>KF&&KF()||Date.now()>r,n+(s?0:1e5));this.chunkBudget-=Date.now()-A,(a||this.chunkBudget<=0)&&(o.context.takeTree(),this.view.dispatch({effects:Gg.setState.of(new v3(o.context))})),this.chunkBudget>0&&!(a&&!s)&&this.scheduleWork(),this.checkAsyncSchedule(o.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(A=>is(this.view.state,A)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),U1=qe.define({combine(t){return t.length?t[0]:null},enables:t=>[Gg.state,lNA,Pt.contentAttributes.compute([t],e=>{let A=e.facet(t);return A&&A.name?{"data-language":A.name}:{}})]}),Mw=class{constructor(e,A=[]){this.language=e,this.support=A,this.extension=[e,A]}};var INA=qe.define(),JC=qe.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some(A=>A!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function Ug(t){let e=t.facet(JC);return e.charCodeAt(0)==9?t.tabSize*e.length:e.length}function eQ(t,e){let A="",i=t.tabSize,n=t.facet(JC)[0];if(n==" "){for(;e>=i;)A+=" ",e-=i;n=" "}for(let o=0;o=e?CNA(t,A,e):null}var KC=class{constructor(e,A={}){this.state=e,this.options=A,this.unit=Ug(e)}lineAt(e,A=1){let i=this.state.doc.lineAt(e),{simulateBreak:n,simulateDoubleBreak:o}=this.options;return n!=null&&n>=i.from&&n<=i.to?o&&n==e?{text:"",from:e}:(A<0?n-1&&(o+=r-this.countColumn(i,i.search(/\S|$/))),o}countColumn(e,A=e.length){return O0(e,this.state.tabSize,A)}lineIndent(e,A=1){let{text:i,from:n}=this.lineAt(e,A),o=this.options.overrideIndentation;if(o){let r=o(n);if(r>-1)return r}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},ZF=new di;function CNA(t,e,A){let i=e.resolveStack(A),n=e.resolveInner(A,-1).resolve(A,0).enterUnfinishedNodesBefore(A);if(n!=i.node){let o=[];for(let r=n;r&&!(r.fromi.node.to||r.from==i.node.from&&r.type==i.node.type);r=r.parent)o.push(r);for(let r=o.length-1;r>=0;r--)i={node:o[r],next:i}}return inA(i,t,A)}function inA(t,e,A){for(let i=t;i;i=i.next){let n=BNA(i.node);if(n)return n(HF.create(e,A,i))}return 0}function dNA(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}function BNA(t){let e=t.type.prop(ZF);if(e)return e;let A=t.firstChild,i;if(A&&(i=A.type.prop(di.closedBy))){let n=t.lastChild,o=n&&i.indexOf(n.name)>-1;return r=>hNA(r,!0,1,void 0,o&&!dNA(r)?n.from:void 0)}return t.parent==null?ENA:null}function ENA(){return 0}var HF=class t extends KC{constructor(e,A,i){super(e.state,e.options),this.base=e,this.pos=A,this.context=i}get node(){return this.context.node}static create(e,A,i){return new t(e,A,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let A=this.state.doc.lineAt(e.from);for(;;){let i=e.resolve(A.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(QNA(i,e))break;A=this.state.doc.lineAt(i.from)}return this.lineIndent(A.from)}continue(){return inA(this.context.next,this.base,this.pos)}};function QNA(t,e){for(let A=e;A;A=A.parent)if(t==A)return!0;return!1}function uNA(t){let e=t.node,A=e.childAfter(e.from),i=e.lastChild;if(!A)return null;let n=t.options.simulateBreak,o=t.state.doc.lineAt(A.from),r=n==null||n<=o.from?o.to:Math.min(o.to,n);for(let s=A.to;;){let a=e.childAfter(s);if(!a||a==i)return null;if(!a.type.isSkipped){if(a.from>=r)return null;let c=/^ */.exec(o.text.slice(A.to-o.from))[0].length;return{from:A.from,to:A.to+c}}s=a.to}}function hNA(t,e,A,i,n){let o=t.textAfter,r=o.match(/^\s*/)[0].length,s=i&&o.slice(r,r+i.length)==i||n==t.pos+r,a=e?uNA(t):null;return a?s?t.column(a.from):t.column(a.to):t.baseIndent+(s?0:t.unit*A)}function WF({except:t,units:e=1}={}){return A=>{let i=t&&t.test(A.textAfter);return A.baseIndent+(i?0:e*A.unit)}}var fNA=200;function nnA(){return Dr.transactionFilter.of(t=>{if(!t.docChanged||!t.isUserEvent("input.type")&&!t.isUserEvent("input.complete"))return t;let e=t.startState.languageDataAt("indentOnInput",t.startState.selection.main.head);if(!e.length)return t;let A=t.newDoc,{head:i}=t.newSelection.main,n=A.lineAt(i);if(i>n.from+fNA)return t;let o=A.sliceString(n.from,i);if(!e.some(c=>c.test(o)))return t;let{state:r}=t,s=-1,a=[];for(let{head:c}of r.selection.ranges){let g=r.doc.lineAt(c);if(g.from==s)continue;s=g.from;let I=kw(r,g.from);if(I==null)continue;let C=/^\s*/.exec(g.text)[0],d=eQ(r,I);C!=d&&a.push({from:g.from,to:g.from+C.length,insert:d})}return a.length?[t,{changes:a,sequential:!0}]:t})}var XF=qe.define(),M3=new di;function onA(t){let e=t.firstChild,A=t.lastChild;return e&&e.toA)continue;if(o&&s.from=e&&c.to>A&&(o=c)}}return o}function pNA(t){let e=t.lastChild;return e&&e.to==t.to&&e.type.isError}function $E(t,e,A){for(let i of t.facet(XF)){let n=i(t,e,A);if(n)return n}return mNA(t,e,A)}function rnA(t,e){let A=e.mapPos(t.from,1),i=e.mapPos(t.to,-1);return A>=i?void 0:{from:A,to:i}}var tQ=Ki.define({map:rnA}),b3=Ki.define({map:rnA});function snA(t){let e=[];for(let{head:A}of t.state.selection.ranges)e.some(i=>i.from<=A&&i.to>=A)||e.push(t.lineBlockAt(A));return e}var UC=tr.define({create(){return ht.none},update(t,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((A,i)=>t=WiA(t,A,i)),t=t.map(e.changes);for(let A of e.effects)if(A.is(tQ)&&!DNA(t,A.value.from,A.value.to)){let{preparePlaceholder:i}=e.state.facet(e_),n=i?ht.replace({widget:new OF(i(e.state,A.value))}):XiA;t=t.update({add:[n.range(A.value.from,A.value.to)]})}else A.is(b3)&&(t=t.update({filter:(i,n)=>A.value.from!=i||A.value.to!=n,filterFrom:A.value.from,filterTo:A.value.to}));return e.selection&&(t=WiA(t,e.selection.main.head)),t},provide:t=>Pt.decorations.from(t),toJSON(t,e){let A=[];return t.between(0,e.doc.length,(i,n)=>{A.push(i,n)}),A},fromJSON(t){if(!Array.isArray(t)||t.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let A=0;A{ne&&(i=!0)}),i?t.update({filterFrom:e,filterTo:A,filter:(n,o)=>n>=A||o<=e}):t}function bw(t,e,A){var i;let n=null;return(i=t.field(UC,!1))===null||i===void 0||i.between(e,A,(o,r)=>{(!n||n.from>o)&&(n={from:o,to:r})}),n}function DNA(t,e,A){let i=!1;return t.between(e,e,(n,o)=>{n==e&&o==A&&(i=!0)}),i}function anA(t,e){return t.field(UC,!1)?e:e.concat(Ki.appendConfig.of(lnA()))}var wNA=t=>{for(let e of snA(t)){let A=$E(t.state,e.from,e.to);if(A)return t.dispatch({effects:anA(t.state,[tQ.of(A),cnA(t,A)])}),!0}return!1},$F=t=>{if(!t.state.field(UC,!1))return!1;let e=[];for(let A of snA(t)){let i=bw(t.state,A.from,A.to);i&&e.push(b3.of(i),cnA(t,i,!1))}return e.length&&t.dispatch({effects:e}),e.length>0};function cnA(t,e,A=!0){let i=t.state.doc.lineAt(e.from).number,n=t.state.doc.lineAt(e.to).number;return Pt.announce.of(`${t.state.phrase(A?"Folded lines":"Unfolded lines")} ${i} ${t.state.phrase("to")} ${n}.`)}var yNA=t=>{let{state:e}=t,A=[];for(let i=0;i{let e=t.state.field(UC,!1);if(!e||!e.size)return!1;let A=[];return e.between(0,t.state.doc.length,(i,n)=>{A.push(b3.of({from:i,to:n}))}),t.dispatch({effects:A}),!0};var gnA=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:wNA},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:$F},{key:"Ctrl-Alt-[",run:yNA},{key:"Ctrl-Alt-]",run:A_}],vNA={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},e_=qe.define({combine(t){return ts(t,vNA)}});function lnA(t){let e=[UC,bNA];return t&&e.push(e_.of(t)),e}function InA(t,e){let{state:A}=t,i=A.facet(e_),n=r=>{let s=t.lineBlockAt(t.posAtDOM(r.target)),a=bw(t.state,s.from,s.to);a&&t.dispatch({effects:b3.of(a)}),r.preventDefault()};if(i.placeholderDOM)return i.placeholderDOM(t,n,e);let o=document.createElement("span");return o.textContent=i.placeholderText,o.setAttribute("aria-label",A.phrase("folded code")),o.title=A.phrase("unfold"),o.className="cm-foldPlaceholder",o.onclick=n,o}var XiA=ht.replace({widget:new class extends Cc{toDOM(t){return InA(t,null)}}}),OF=class extends Cc{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return InA(e,this.value)}},MNA={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1},y3=class extends Ga{constructor(e,A){super(),this.config=e,this.open=A}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let A=document.createElement("span");return A.textContent=this.open?this.config.openText:this.config.closedText,A.title=e.state.phrase(this.open?"Fold line":"Unfold line"),A}};function CnA(t={}){let e=sA(sA({},MNA),t),A=new y3(e,!0),i=new y3(e,!1),n=Bo.fromClass(class{constructor(r){this.from=r.viewport.from,this.markers=this.buildMarkers(r)}update(r){(r.docChanged||r.viewportChanged||r.startState.facet(U1)!=r.state.facet(U1)||r.startState.field(UC,!1)!=r.state.field(UC,!1)||ns(r.startState)!=ns(r.state)||e.foldingChanged(r))&&(this.markers=this.buildMarkers(r.view))}buildMarkers(r){let s=new fs;for(let a of r.viewportLineBlocks){let c=bw(r.state,a.from,a.to)?i:$E(r.state,a.from,a.to)?A:null;c&&s.add(a.from,a.from,c)}return s.finish()}}),{domEventHandlers:o}=e;return[n,Qw({class:"cm-foldGutter",markers(r){var s;return((s=r.plugin(n))===null||s===void 0?void 0:s.markers)||Io.empty},initialSpacer(){return new y3(e,!1)},domEventHandlers:Fe(sA({},o),{click:(r,s,a)=>{if(o.click&&o.click(r,s,a))return!0;let c=bw(r.state,s.from,s.to);if(c)return r.dispatch({effects:b3.of(c)}),!0;let g=$E(r.state,s.from,s.to);return g?(r.dispatch({effects:tQ.of(g)}),!0):!1}})}),lnA()]}var bNA=Pt.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),AQ=class t{constructor(e,A){this.specs=e;let i;function n(s){let a=jc.newName();return(i||(i=Object.create(null)))["."+a]=s,a}let o=typeof A.all=="string"?A.all:A.all?n(A.all):void 0,r=A.scope;this.scope=r instanceof Gg?s=>s.prop(XE)==r.data:r?s=>s==r:void 0,this.style=_F(e.map(s=>({tag:s.tag,class:s.class||n(Object.assign({},s,{tag:null}))})),{all:o}).style,this.module=i?new jc(i):null,this.themeType=A.themeType}static define(e,A){return new t(e,A||{})}},zF=qe.define(),dnA=qe.define({combine(t){return t.length?[t[0]]:null}});function UF(t){let e=t.facet(zF);return e.length?e:t.facet(dnA)}function t_(t,e){let A=[kNA],i;return t instanceof AQ&&(t.module&&A.push(Pt.styleModule.of(t.module)),i=t.themeType),e?.fallback?A.push(dnA.of(t)):i?A.push(zF.computeN([Pt.darkTheme],n=>n.facet(Pt.darkTheme)==(i=="dark")?[t]:[])):A.push(zF.of(t)),A}var PF=class{constructor(e){this.markCache=Object.create(null),this.tree=ns(e.state),this.decorations=this.buildDeco(e,UF(e.state)),this.decoratedTo=e.viewport.to}update(e){let A=ns(e.state),i=UF(e.state),n=i!=UF(e.startState),{viewport:o}=e.view,r=e.changes.mapPos(this.decoratedTo,1);A.length=o.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=r):(A!=this.tree||e.viewportChanged||n)&&(this.tree=A,this.decorations=this.buildDeco(e.view,i),this.decoratedTo=o.to)}buildDeco(e,A){if(!A||!this.tree.length)return ht.none;let i=new fs;for(let{from:n,to:o}of e.visibleRanges)qiA(this.tree,A,(r,s,a)=>{i.add(r,s,this.markCache[a]||(this.markCache[a]=ht.mark({class:a})))},n,o);return i.finish()}},kNA=Ng.high(Bo.fromClass(PF,{decorations:t=>t.decorations})),BnA=AQ.define([{tag:ke.meta,color:"#404740"},{tag:ke.link,textDecoration:"underline"},{tag:ke.heading,textDecoration:"underline",fontWeight:"bold"},{tag:ke.emphasis,fontStyle:"italic"},{tag:ke.strong,fontWeight:"bold"},{tag:ke.strikethrough,textDecoration:"line-through"},{tag:ke.keyword,color:"#708"},{tag:[ke.atom,ke.bool,ke.url,ke.contentSeparator,ke.labelName],color:"#219"},{tag:[ke.literal,ke.inserted],color:"#164"},{tag:[ke.string,ke.deleted],color:"#a11"},{tag:[ke.regexp,ke.escape,ke.special(ke.string)],color:"#e40"},{tag:ke.definition(ke.variableName),color:"#00f"},{tag:ke.local(ke.variableName),color:"#30a"},{tag:[ke.typeName,ke.namespace],color:"#085"},{tag:ke.className,color:"#167"},{tag:[ke.special(ke.variableName),ke.macroName],color:"#256"},{tag:ke.definition(ke.propertyName),color:"#00c"},{tag:ke.comment,color:"#940"},{tag:ke.invalid,color:"#f00"}]),SNA=Pt.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),EnA=1e4,QnA="()[]{}",unA=qe.define({combine(t){return ts(t,{afterCursor:!0,brackets:QnA,maxScanDistance:EnA,renderMatch:xNA})}}),RNA=ht.mark({class:"cm-matchingBracket"}),LNA=ht.mark({class:"cm-nonmatchingBracket"});function xNA(t){let e=[],A=t.matched?RNA:LNA;return e.push(A.range(t.start.from,t.start.to)),t.end&&e.push(A.range(t.end.from,t.end.to)),e}var NNA=tr.define({create(){return ht.none},update(t,e){if(!e.docChanged&&!e.selection)return t;let A=[],i=e.state.facet(unA);for(let n of e.state.selection.ranges){if(!n.empty)continue;let o=Kg(e.state,n.head,-1,i)||n.head>0&&Kg(e.state,n.head-1,1,i)||i.afterCursor&&(Kg(e.state,n.head,1,i)||n.headPt.decorations.from(t)}),FNA=[NNA,SNA];function hnA(t={}){return[unA.of(t),FNA]}var _NA=new di;function jF(t,e,A){let i=t.prop(e<0?di.openedBy:di.closedBy);if(i)return i;if(t.name.length==1){let n=A.indexOf(t.name);if(n>-1&&n%2==(e<0?1:0))return[A[n+e]]}return null}function qF(t){let e=t.type.prop(_NA);return e?e(t.node):t}function Kg(t,e,A,i={}){let n=i.maxScanDistance||EnA,o=i.brackets||QnA,r=ns(t),s=r.resolveInner(e,A);for(let a=s;a;a=a.parent){let c=jF(a.type,A,o);if(c&&a.from0?e>=g.from&&eg.from&&e<=g.to))return GNA(t,e,A,a,g,c,o)}}return KNA(t,e,A,r,s.type,n,o)}function GNA(t,e,A,i,n,o,r){let s=i.parent,a={from:n.from,to:n.to},c=0,g=s?.cursor();if(g&&(A<0?g.childBefore(i.from):g.childAfter(i.to)))do if(A<0?g.to<=i.from:g.from>=i.to){if(c==0&&o.indexOf(g.type.name)>-1&&g.from0)return null;let c={from:A<0?e-1:e,to:A>0?e+1:e},g=t.doc.iterRange(e,A>0?t.doc.length:0),I=0;for(let C=0;!g.next().done&&C<=o;){let d=g.value;A<0&&(C+=d.length);let B=e+C*A;for(let E=A>0?0:d.length-1,u=A>0?d.length:-1;E!=u;E+=A){let h=r.indexOf(d[E]);if(!(h<0||i.resolveInner(B+E,1).type!=n))if(h%2==0==A>0)I++;else{if(I==1)return{start:c,end:{from:B+E,to:B+E+1},matched:h>>1==a>>1};I--}}A>0&&(C+=d.length)}return g.done?{start:c,matched:!1}:null}var UNA=Object.create(null),$iA=[Ks.none];var AnA=[],enA=Object.create(null),JNA=Object.create(null);for(let[t,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])JNA[t]=YNA(UNA,e);function JF(t,e){AnA.indexOf(t)>-1||(AnA.push(t),console.warn(e))}function YNA(t,e){let A=[];for(let s of e.split(" ")){let a=[];for(let c of s.split(".")){let g=t[c]||ke[c];g?typeof g=="function"?a.length?a=a.map(g):JF(c,`Modifier ${c} used at start of tag`):a.length?JF(c,`Tag ${c} used as modifier`):a=Array.isArray(g)?g:[g]:JF(c,`Unknown highlighting tag ${c}`)}for(let c of a)A.push(c)}if(!A.length)return 0;let i=e.replace(/ /g,"_"),n=i+" "+A.map(s=>s.id),o=enA[n];if(o)return o.id;let r=enA[n]=Ks.define({id:$iA.length,name:i,props:[yw({[i]:A})]});return $iA.push(r),r.id}var aDe={rtl:ht.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:Co.RTL}),ltr:ht.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:Co.LTR}),auto:ht.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var TNA=t=>{let{state:e}=t,A=e.doc.lineAt(e.selection.main.from),i=r_(t.state,A.from);return i.line?HNA(t):i.block?zNA(t):!1};function o_(t,e){return({state:A,dispatch:i})=>{if(A.readOnly)return!1;let n=t(e,A);return n?(i(A.update(n)),!0):!1}}var HNA=o_(qNA,0);var ONA=o_(bnA,0);var zNA=o_((t,e)=>bnA(t,e,jNA(e)),0);function r_(t,e){let A=t.languageDataAt("commentTokens",e,1);return A.length?A[0]:{}}var k3=50;function PNA(t,{open:e,close:A},i,n){let o=t.sliceDoc(i-k3,i),r=t.sliceDoc(n,n+k3),s=/\s*$/.exec(o)[0].length,a=/^\s*/.exec(r)[0].length,c=o.length-s;if(o.slice(c-e.length,c)==e&&r.slice(a,a+A.length)==A)return{open:{pos:i-s,margin:s&&1},close:{pos:n+a,margin:a&&1}};let g,I;n-i<=2*k3?g=I=t.sliceDoc(i,n):(g=t.sliceDoc(i,i+k3),I=t.sliceDoc(n-k3,n));let C=/^\s*/.exec(g)[0].length,d=/\s*$/.exec(I)[0].length,B=I.length-d-A.length;return g.slice(C,C+e.length)==e&&I.slice(B,B+A.length)==A?{open:{pos:i+C+e.length,margin:/\s/.test(g.charAt(C+e.length))?1:0},close:{pos:n-d-A.length,margin:/\s/.test(I.charAt(B-1))?1:0}}:null}function jNA(t){let e=[];for(let A of t.selection.ranges){let i=t.doc.lineAt(A.from),n=A.to<=i.to?i:t.doc.lineAt(A.to);n.from>i.from&&n.from==A.to&&(n=A.to==i.to+1?i:t.doc.lineAt(A.to-1));let o=e.length-1;o>=0&&e[o].to>i.from?e[o].to=n.to:e.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:n.to})}return e}function bnA(t,e,A=e.selection.ranges){let i=A.map(o=>r_(e,o.from).block);if(!i.every(o=>o))return null;let n=A.map((o,r)=>PNA(e,i[r],o.from,o.to));if(t!=2&&!n.every(o=>o))return{changes:e.changes(A.map((o,r)=>n[r]?[]:[{from:o.from,insert:i[r].open+" "},{from:o.to,insert:" "+i[r].close}]))};if(t!=1&&n.some(o=>o)){let o=[];for(let r=0,s;rn&&(o==r||r>I.from)){n=I.from;let C=/^\s*/.exec(I.text)[0].length,d=C==I.length,B=I.text.slice(C,C+c.length)==c?C:-1;Co.comment<0&&(!o.empty||o.single))){let o=[];for(let{line:s,token:a,indent:c,empty:g,single:I}of i)(I||!g)&&o.push({from:s.from+c,insert:a+" "});let r=e.changes(o);return{changes:r,selection:e.selection.map(r,1)}}else if(t!=1&&i.some(o=>o.comment>=0)){let o=[];for(let{line:r,comment:s,token:a}of i)if(s>=0){let c=r.from+s,g=c+a.length;r.text[g-r.from]==" "&&g++,o.push({from:c,to:g})}return{changes:o}}return null}function iQ(t,e){return ae.create(t.ranges.map(e),t.mainIndex)}function Wl(t,e){return t.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function Jg({state:t,dispatch:e},A){let i=iQ(t.selection,A);return i.eq(t.selection,!0)?!1:(e(Wl(t,i)),!0)}function Rw(t,e){return ae.cursor(e?t.to:t.from)}function knA(t,e){return Jg(t,A=>A.empty?t.moveByChar(A,e):Rw(A,e))}function Us(t){return t.textDirectionAt(t.state.selection.main.head)==Co.LTR}var SnA=t=>knA(t,!Us(t)),RnA=t=>knA(t,Us(t));function LnA(t,e){return Jg(t,A=>A.empty?t.moveByGroup(A,e):Rw(A,e))}var VNA=t=>LnA(t,!Us(t)),ZNA=t=>LnA(t,Us(t));var uDe=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function WNA(t,e,A){if(e.type.prop(A))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function Lw(t,e,A){let i=ns(t).resolveInner(e.head),n=A?di.closedBy:di.openedBy;for(let a=e.head;;){let c=A?i.childAfter(a):i.childBefore(a);if(!c)break;WNA(t,c,n)?i=c:a=A?c.to:c.from}let o=i.type.prop(n),r,s;return o&&(r=A?Kg(t,i.from,1):Kg(t,i.to,-1))&&r.matched?s=A?r.end.to:r.end.from:s=A?i.to:i.from,ae.cursor(s,A?-1:1)}var XNA=t=>Jg(t,e=>Lw(t.state,e,!Us(t))),$NA=t=>Jg(t,e=>Lw(t.state,e,Us(t)));function xnA(t,e){return Jg(t,A=>{if(!A.empty)return Rw(A,e);let i=t.moveVertically(A,e);return i.head!=A.head?i:t.moveToLineBoundary(A,e)})}var NnA=t=>xnA(t,!1),FnA=t=>xnA(t,!0);function _nA(t){let e=t.scrollDOM.clientHeightr.empty?t.moveVertically(r,e,A.height):Rw(r,e));if(n.eq(i.selection))return!1;let o;if(A.selfScroll){let r=t.coordsAtPos(i.selection.main.head),s=t.scrollDOM.getBoundingClientRect(),a=s.top+A.marginTop,c=s.bottom-A.marginBottom;r&&r.top>a&&r.bottomGnA(t,!1),i_=t=>GnA(t,!0);function J1(t,e,A){let i=t.lineBlockAt(e.head),n=t.moveToLineBoundary(e,A);if(n.head==e.head&&n.head!=(A?i.to:i.from)&&(n=t.moveToLineBoundary(e,A,!1)),!A&&n.head==i.from&&i.length){let o=/^\s*/.exec(t.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;o&&e.head!=i.from+o&&(n=ae.cursor(i.from+o))}return n}var AFA=t=>Jg(t,e=>J1(t,e,!0)),eFA=t=>Jg(t,e=>J1(t,e,!1)),tFA=t=>Jg(t,e=>J1(t,e,!Us(t))),iFA=t=>Jg(t,e=>J1(t,e,Us(t))),nFA=t=>Jg(t,e=>ae.cursor(t.lineBlockAt(e.head).from,1)),oFA=t=>Jg(t,e=>ae.cursor(t.lineBlockAt(e.head).to,-1));function rFA(t,e,A){let i=!1,n=iQ(t.selection,o=>{let r=Kg(t,o.head,-1)||Kg(t,o.head,1)||o.head>0&&Kg(t,o.head-1,1)||o.headrFA(t,e,!1);function Zc(t,e){let A=iQ(t.state.selection,i=>{let n=e(i);return ae.range(i.anchor,n.head,n.goalColumn,n.bidiLevel||void 0)});return A.eq(t.state.selection)?!1:(t.dispatch(Wl(t.state,A)),!0)}function KnA(t,e){return Zc(t,A=>t.moveByChar(A,e))}var UnA=t=>KnA(t,!Us(t)),JnA=t=>KnA(t,Us(t));function YnA(t,e){return Zc(t,A=>t.moveByGroup(A,e))}var aFA=t=>YnA(t,!Us(t)),cFA=t=>YnA(t,Us(t));var gFA=t=>Zc(t,e=>Lw(t.state,e,!Us(t))),lFA=t=>Zc(t,e=>Lw(t.state,e,Us(t)));function TnA(t,e){return Zc(t,A=>t.moveVertically(A,e))}var HnA=t=>TnA(t,!1),OnA=t=>TnA(t,!0);function znA(t,e){return Zc(t,A=>t.moveVertically(A,e,_nA(t).height))}var mnA=t=>znA(t,!1),pnA=t=>znA(t,!0),IFA=t=>Zc(t,e=>J1(t,e,!0)),CFA=t=>Zc(t,e=>J1(t,e,!1)),dFA=t=>Zc(t,e=>J1(t,e,!Us(t))),BFA=t=>Zc(t,e=>J1(t,e,Us(t))),EFA=t=>Zc(t,e=>ae.cursor(t.lineBlockAt(e.head).from)),QFA=t=>Zc(t,e=>ae.cursor(t.lineBlockAt(e.head).to)),DnA=({state:t,dispatch:e})=>(e(Wl(t,{anchor:0})),!0),wnA=({state:t,dispatch:e})=>(e(Wl(t,{anchor:t.doc.length})),!0),ynA=({state:t,dispatch:e})=>(e(Wl(t,{anchor:t.selection.main.anchor,head:0})),!0),vnA=({state:t,dispatch:e})=>(e(Wl(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0),uFA=({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0),hFA=({state:t,dispatch:e})=>{let A=xw(t).map(({from:i,to:n})=>ae.range(i,Math.min(n+1,t.doc.length)));return e(t.update({selection:ae.create(A),userEvent:"select"})),!0},fFA=({state:t,dispatch:e})=>{let A=iQ(t.selection,i=>{let n=ns(t),o=n.resolveStack(i.from,1);if(i.empty){let r=n.resolveStack(i.from,-1);r.node.from>=o.node.from&&r.node.to<=o.node.to&&(o=r)}for(let r=o;r;r=r.next){let{node:s}=r;if((s.from=i.to||s.to>i.to&&s.from<=i.from)&&r.next)return ae.range(s.to,s.from)}return i});return A.eq(t.selection)?!1:(e(Wl(t,A)),!0)},mFA=({state:t,dispatch:e})=>{let A=t.selection,i=null;return A.ranges.length>1?i=ae.create([A.main]):A.main.empty||(i=ae.create([ae.cursor(A.main.head)])),i?(e(Wl(t,i)),!0):!1};function S3(t,e){if(t.state.readOnly)return!1;let A="delete.selection",{state:i}=t,n=i.changeByRange(o=>{let{from:r,to:s}=o;if(r==s){let a=e(o);ar&&(A="delete.forward",a=Sw(t,a,!0)),r=Math.min(r,a),s=Math.max(s,a)}else r=Sw(t,r,!1),s=Sw(t,s,!0);return r==s?{range:o}:{changes:{from:r,to:s},range:ae.cursor(r,rn(t)))i.between(e,e,(n,o)=>{ne&&(e=A?o:n)});return e}var PnA=(t,e,A)=>S3(t,i=>{let n=i.from,{state:o}=t,r=o.doc.lineAt(n),s,a;if(A&&!e&&n>r.from&&nPnA(t,!1,!0);var jnA=t=>PnA(t,!0,!1),qnA=(t,e)=>S3(t,A=>{let i=A.head,{state:n}=t,o=n.doc.lineAt(i),r=n.charCategorizer(i);for(let s=null;;){if(i==(e?o.to:o.from)){i==A.head&&o.number!=(e?n.doc.lines:1)&&(i+=e?1:-1);break}let a=br(o.text,i-o.from,e)+o.from,c=o.text.slice(Math.min(i,a)-o.from,Math.max(i,a)-o.from),g=r(c);if(s!=null&&g!=s)break;(c!=" "||i!=A.head)&&(s=g),i=a}return i}),VnA=t=>qnA(t,!1),pFA=t=>qnA(t,!0),DFA=t=>S3(t,e=>{let A=t.lineBlockAt(e.head).to;return e.headS3(t,e=>{let A=t.moveToLineBoundary(e,!1).head;return e.head>A?A:Math.max(0,e.head-1)}),yFA=t=>S3(t,e=>{let A=t.moveToLineBoundary(e,!0).head;return e.head{if(t.readOnly)return!1;let A=t.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:tn.of(["",""])},range:ae.cursor(i.from)}));return e(t.update(A,{scrollIntoView:!0,userEvent:"input"})),!0},MFA=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let A=t.changeByRange(i=>{if(!i.empty||i.from==0||i.from==t.doc.length)return{range:i};let n=i.from,o=t.doc.lineAt(n),r=n==o.from?n-1:br(o.text,n-o.from,!1)+o.from,s=n==o.to?n+1:br(o.text,n-o.from,!0)+o.from;return{changes:{from:r,to:s,insert:t.doc.slice(n,s).append(t.doc.slice(r,n))},range:ae.cursor(s)}});return A.changes.empty?!1:(e(t.update(A,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function xw(t){let e=[],A=-1;for(let i of t.selection.ranges){let n=t.doc.lineAt(i.from),o=t.doc.lineAt(i.to);if(!i.empty&&i.to==o.from&&(o=t.doc.lineAt(i.to-1)),A>=n.number){let r=e[e.length-1];r.to=o.to,r.ranges.push(i)}else e.push({from:n.from,to:o.to,ranges:[i]});A=o.number+1}return e}function ZnA(t,e,A){if(t.readOnly)return!1;let i=[],n=[];for(let o of xw(t)){if(A?o.to==t.doc.length:o.from==0)continue;let r=t.doc.lineAt(A?o.to+1:o.from-1),s=r.length+1;if(A){i.push({from:o.to,to:r.to},{from:o.from,insert:r.text+t.lineBreak});for(let a of o.ranges)n.push(ae.range(Math.min(t.doc.length,a.anchor+s),Math.min(t.doc.length,a.head+s)))}else{i.push({from:r.from,to:o.from},{from:o.to,insert:t.lineBreak+r.text});for(let a of o.ranges)n.push(ae.range(a.anchor-s,a.head-s))}}return i.length?(e(t.update({changes:i,scrollIntoView:!0,selection:ae.create(n,t.selection.mainIndex),userEvent:"move.line"})),!0):!1}var bFA=({state:t,dispatch:e})=>ZnA(t,e,!1),kFA=({state:t,dispatch:e})=>ZnA(t,e,!0);function WnA(t,e,A){if(t.readOnly)return!1;let i=[];for(let n of xw(t))A?i.push({from:n.from,insert:t.doc.slice(n.from,n.to)+t.lineBreak}):i.push({from:n.to,insert:t.lineBreak+t.doc.slice(n.from,n.to)});return e(t.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}var SFA=({state:t,dispatch:e})=>WnA(t,e,!1),RFA=({state:t,dispatch:e})=>WnA(t,e,!0),LFA=t=>{if(t.state.readOnly)return!1;let{state:e}=t,A=e.changes(xw(e).map(({from:n,to:o})=>(n>0?n--:o{let o;if(t.lineWrapping){let r=t.lineBlockAt(n.head),s=t.coordsAtPos(n.head,n.assoc||1);s&&(o=r.bottom+t.documentTop-s.bottom+t.defaultLineHeight/2)}return t.moveVertically(n,!0,o)}).map(A);return t.dispatch({changes:A,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function xFA(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let A=ns(t).resolveInner(e),i=A.childBefore(e),n=A.childAfter(e),o;return i&&n&&i.to<=e&&n.from>=e&&(o=i.type.prop(di.closedBy))&&o.indexOf(n.name)>-1&&t.doc.lineAt(i.to).from==t.doc.lineAt(n.from).from&&!/\S/.test(t.sliceDoc(i.to,n.from))?{from:i.to,to:n.from}:null}var MnA=XnA(!1),NFA=XnA(!0);function XnA(t){return({state:e,dispatch:A})=>{if(e.readOnly)return!1;let i=e.changeByRange(n=>{let{from:o,to:r}=n,s=e.doc.lineAt(o),a=!t&&o==r&&xFA(e,o);t&&(o=r=(r<=s.to?s:e.doc.lineAt(r)).to);let c=new KC(e,{simulateBreak:o,simulateDoubleBreak:!!a}),g=kw(c,o);for(g==null&&(g=O0(/^\s*/.exec(e.doc.lineAt(o).text)[0],e.tabSize));rs.from&&o{let n=[];for(let r=i.from;r<=i.to;){let s=t.doc.lineAt(r);s.number>A&&(i.empty||i.to>s.from)&&(e(s,n,i),A=s.number),r=s.to+1}let o=t.changes(n);return{changes:n,range:ae.range(o.mapPos(i.anchor,1),o.mapPos(i.head,1))}})}var FFA=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let A=Object.create(null),i=new KC(t,{overrideIndentation:o=>{let r=A[o];return r??-1}}),n=s_(t,(o,r,s)=>{let a=kw(i,o.from);if(a==null)return;/\S/.test(o.text)||(a=0);let c=/^\s*/.exec(o.text)[0],g=eQ(t,a);(c!=g||s.fromt.readOnly?!1:(e(t.update(s_(t,(A,i)=>{i.push({from:A.from,insert:t.facet(JC)})}),{userEvent:"input.indent"})),!0),AoA=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(s_(t,(A,i)=>{let n=/^\s*/.exec(A.text)[0];if(!n)return;let o=O0(n,t.tabSize),r=0,s=eQ(t,Math.max(0,o-Ug(t)));for(;r(t.setTabFocusMode(),!0);var GFA=[{key:"Ctrl-b",run:SnA,shift:UnA,preventDefault:!0},{key:"Ctrl-f",run:RnA,shift:JnA},{key:"Ctrl-p",run:NnA,shift:HnA},{key:"Ctrl-n",run:FnA,shift:OnA},{key:"Ctrl-a",run:nFA,shift:EFA},{key:"Ctrl-e",run:oFA,shift:QFA},{key:"Ctrl-d",run:jnA},{key:"Ctrl-h",run:n_},{key:"Ctrl-k",run:DFA},{key:"Ctrl-Alt-h",run:VnA},{key:"Ctrl-o",run:vFA},{key:"Ctrl-t",run:MFA},{key:"Ctrl-v",run:i_}],KFA=[{key:"ArrowLeft",run:SnA,shift:UnA,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:VNA,shift:aFA,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:tFA,shift:dFA,preventDefault:!0},{key:"ArrowRight",run:RnA,shift:JnA,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:ZNA,shift:cFA,preventDefault:!0},{mac:"Cmd-ArrowRight",run:iFA,shift:BFA,preventDefault:!0},{key:"ArrowUp",run:NnA,shift:HnA,preventDefault:!0},{mac:"Cmd-ArrowUp",run:DnA,shift:ynA},{mac:"Ctrl-ArrowUp",run:fnA,shift:mnA},{key:"ArrowDown",run:FnA,shift:OnA,preventDefault:!0},{mac:"Cmd-ArrowDown",run:wnA,shift:vnA},{mac:"Ctrl-ArrowDown",run:i_,shift:pnA},{key:"PageUp",run:fnA,shift:mnA},{key:"PageDown",run:i_,shift:pnA},{key:"Home",run:eFA,shift:CFA,preventDefault:!0},{key:"Mod-Home",run:DnA,shift:ynA},{key:"End",run:AFA,shift:IFA,preventDefault:!0},{key:"Mod-End",run:wnA,shift:vnA},{key:"Enter",run:MnA,shift:MnA},{key:"Mod-a",run:uFA},{key:"Backspace",run:n_,shift:n_},{key:"Delete",run:jnA},{key:"Mod-Backspace",mac:"Alt-Backspace",run:VnA},{key:"Mod-Delete",mac:"Alt-Delete",run:pFA},{mac:"Mod-Backspace",run:wFA},{mac:"Mod-Delete",run:yFA}].concat(GFA.map(t=>({mac:t.key,run:t.run,shift:t.shift}))),eoA=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:XNA,shift:gFA},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:$NA,shift:lFA},{key:"Alt-ArrowUp",run:bFA},{key:"Shift-Alt-ArrowUp",run:SFA},{key:"Alt-ArrowDown",run:kFA},{key:"Shift-Alt-ArrowDown",run:RFA},{key:"Escape",run:mFA},{key:"Mod-Enter",run:NFA},{key:"Alt-l",mac:"Ctrl-l",run:hFA},{key:"Mod-i",run:fFA,preventDefault:!0},{key:"Mod-[",run:AoA},{key:"Mod-]",run:$nA},{key:"Mod-Alt-\\",run:FFA},{key:"Shift-Mod-k",run:LFA},{key:"Shift-Mod-\\",run:sFA},{key:"Mod-/",run:TNA},{key:"Alt-A",run:ONA},{key:"Ctrl-m",mac:"Shift-Alt-m",run:_FA}].concat(KFA),toA={key:"Tab",run:$nA,shift:AoA};var _w=class{constructor(e,A,i){this.from=e,this.to=A,this.diagnostic=i}},YC=class t{constructor(e,A,i){this.diagnostics=e,this.panel=A,this.selected=i}static init(e,A,i){let n=i.facet(Xl).markerFilter;n&&(e=n(e,i));let o=e.slice().sort((g,I)=>g.from-I.from||g.to-I.to),r=new fs,s=[],a=0;for(let g=0;;){let I=g==o.length?null:o[g];if(!I&&!s.length)break;let C,d;for(s.length?(C=a,d=s.reduce((E,u)=>Math.min(E,u.to),I&&I.from>C?I.from:1e8)):(C=I.from,d=I.to,s.push(I),g++);gE.from||E.to==C))s.push(E),g++,d=Math.min(E.to,d);else{d=Math.min(E.from,d);break}}let B=IoA(s);if(s.some(E=>E.from==E.to||E.from==E.to-1&&i.doc.lineAt(E.from).to==E.from))r.add(C,C,ht.widget({widget:new a_(B),diagnostics:s.slice()}));else{let E=s.reduce((u,h)=>h.markClass?u+" "+h.markClass:u,"");r.add(C,d,ht.mark({class:"cm-lintRange cm-lintRange-"+B+E,diagnostics:s.slice(),inclusiveEnd:s.some(u=>u.to>d)}))}a=d;for(let E=0;E{if(!(e&&r.diagnostics.indexOf(e)<0))if(!i)i=new _w(n,o,e||r.diagnostics[0]);else{if(r.diagnostics.indexOf(i.diagnostic)<0)return!1;i=new _w(i.from,o,i.diagnostic)}}),i}function noA(t,e){let A=e.pos,i=e.end||A,n=t.state.facet(Xl).hideOn(t,A,i);if(n!=null)return n;let o=t.startState.doc.lineAt(e.pos);return!!(t.effects.some(r=>r.is(Uw))||t.changes.touchesRange(o.from,Math.max(o.to,i)))}function ooA(t,e){return t.field(dc,!1)?e:e.concat(Ki.appendConfig.of(doA))}function UFA(t,e){return{effects:ooA(t,[Uw.of(e)])}}var Uw=Ki.define(),g_=Ki.define(),roA=Ki.define(),dc=tr.define({create(){return new YC(ht.none,null,null)},update(t,e){if(e.docChanged&&t.diagnostics.size){let A=t.diagnostics.map(e.changes),i=null,n=t.panel;if(t.selected){let o=e.changes.mapPos(t.selected.from,1);i=nQ(A,t.selected.diagnostic,o)||nQ(A,null,o)}!A.size&&n&&e.state.facet(Xl).autoPanel&&(n=null),t=new YC(A,n,i)}for(let A of e.effects)if(A.is(Uw)){let i=e.state.facet(Xl).autoPanel?A.value.length?R3.open:null:t.panel;t=YC.init(A.value,i,e.state)}else A.is(g_)?t=new YC(t.diagnostics,A.value?R3.open:null,t.selected):A.is(roA)&&(t=new YC(t.diagnostics,t.panel,A.value));return t},provide:t=>[NC.from(t,e=>e.panel),Pt.decorations.from(t,e=>e.diagnostics)]});var JFA=ht.mark({class:"cm-lintRange cm-lintRange-active"});function YFA(t,e,A){let{diagnostics:i}=t.state.field(dc),n,o=-1,r=-1;i.between(e-(A<0?1:0),e+(A>0?1:0),(a,c,{spec:g})=>{if(e>=a&&e<=c&&(a==c||(e>a||A>0)&&(eloA(t,A,!1)))}var TFA=t=>{let e=t.state.field(dc,!1);(!e||!e.panel)&&t.dispatch({effects:ooA(t.state,[g_.of(!0)])});let A=FC(t,R3.open);return A&&A.dom.querySelector(".cm-panel-lint ul").focus(),!0},ioA=t=>{let e=t.state.field(dc,!1);return!e||!e.panel?!1:(t.dispatch({effects:g_.of(!1)}),!0)},HFA=t=>{let e=t.state.field(dc,!1);if(!e)return!1;let A=t.state.selection.main,i=e.diagnostics.iter(A.to+1);return!i.value&&(i=e.diagnostics.iter(0),!i.value||i.from==A.from&&i.to==A.to)?!1:(t.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)};var aoA=[{key:"Mod-Shift-m",run:TFA,preventDefault:!0},{key:"F8",run:HFA}],OFA=Bo.fromClass(class{constructor(t){this.view=t,this.timeout=-1,this.set=!0;let{delay:e}=t.state.facet(Xl);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){clearTimeout(this.timeout);let t=Date.now();if(tPromise.resolve(i(this.view))),i=>{this.view.state.doc==e.doc&&this.view.dispatch(UFA(this.view.state,i.reduce((n,o)=>n.concat(o))))},i=>{is(this.view.state,i)})}}update(t){let e=t.state.facet(Xl);(t.docChanged||e!=t.startState.facet(Xl)||e.needsRefresh&&e.needsRefresh(t))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}});function zFA(t,e,A){let i=[],n=-1;for(let o of t)o.then(r=>{i.push(r),clearTimeout(n),i.length==t.length?e(i):n=setTimeout(()=>e(i),200)},A)}var Xl=qe.define({combine(t){return Object.assign({sources:t.map(e=>e.source).filter(e=>e!=null)},ts(t.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{needsRefresh:(e,A)=>e?A?i=>e(i)||A(i):e:A}))}});function coA(t,e={}){return[Xl.of({source:t,config:e}),OFA,doA]}function goA(t){let e=[];if(t)A:for(let{name:A}of t){for(let i=0;io.toLowerCase()==n.toLowerCase())){e.push(n);continue A}}e.push("")}return e}function loA(t,e,A){var i;let n=A?goA(e.actions):[];return _n("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},_n("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(t):e.message),(i=e.actions)===null||i===void 0?void 0:i.map((o,r)=>{let s=!1,a=C=>{if(C.preventDefault(),s)return;s=!0;let d=nQ(t.state.field(dc).diagnostics,e);d&&o.apply(t,d.from,d.to)},{name:c}=o,g=n[r]?c.indexOf(n[r]):-1,I=g<0?c:[c.slice(0,g),_n("u",c.slice(g,g+1)),c.slice(g+1)];return _n("button",{type:"button",class:"cm-diagnosticAction",onclick:a,onmousedown:a,"aria-label":` Action: ${c}${g<0?"":` (access key "${n[r]})"`}.`},I)}),e.source&&_n("div",{class:"cm-diagnosticSource"},e.source))}var a_=class extends Cc{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return _n("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}},Gw=class{constructor(e,A){this.diagnostic=A,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=loA(e,A,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}},R3=class t{constructor(e){this.view=e,this.items=[];let A=n=>{if(n.keyCode==27)ioA(this.view),this.view.focus();else if(n.keyCode==38||n.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(n.keyCode==40||n.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(n.keyCode==36)this.moveSelection(0);else if(n.keyCode==35)this.moveSelection(this.items.length-1);else if(n.keyCode==13)this.view.focus();else if(n.keyCode>=65&&n.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:o}=this.items[this.selectedIndex],r=goA(o.actions);for(let s=0;s{for(let o=0;oioA(this.view)},"\xD7")),this.update()}get selectedIndex(){let e=this.view.state.field(dc).selected;if(!e)return-1;for(let A=0;A{for(let g of c.diagnostics){if(r.has(g))continue;r.add(g);let I=-1,C;for(let d=i;di&&(this.items.splice(i,I-i),n=!0)),A&&C.diagnostic==A.diagnostic?C.dom.hasAttribute("aria-selected")||(C.dom.setAttribute("aria-selected","true"),o=C):C.dom.hasAttribute("aria-selected")&&C.dom.removeAttribute("aria-selected"),i++}});i({sel:o.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:s,panel:a})=>{let c=a.height/this.list.offsetHeight;s.topa.bottom&&(this.list.scrollTop+=(s.bottom-a.bottom)/c)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),n&&this.sync()}sync(){let e=this.list.firstChild;function A(){let i=e;e=i.nextSibling,i.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)A();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)A()}moveSelection(e){if(this.selectedIndex<0)return;let A=this.view.state.field(dc),i=nQ(A.diagnostics,this.items[e].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:roA.of(i)})}static open(e){return new t(e)}};function Fw(t,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(t)}')`}function Nw(t){return Fw(``,'width="6" height="3"')}var PFA=Pt.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Nw("#d11")},".cm-lintRange-warning":{backgroundImage:Nw("orange")},".cm-lintRange-info":{backgroundImage:Nw("#999")},".cm-lintRange-hint":{backgroundImage:Nw("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function jFA(t){return t=="error"?4:t=="warning"?3:t=="info"?2:1}function IoA(t){let e="hint",A=1;for(let i of t){let n=jFA(i.severity);n>A&&(A=n,e=i.severity)}return e}var Kw=class extends Ga{constructor(e){super(),this.diagnostics=e,this.severity=IoA(e)}toDOM(e){let A=document.createElement("div");A.className="cm-lint-marker cm-lint-marker-"+this.severity;let i=this.diagnostics,n=e.state.facet(Jw).tooltipFilter;return n&&(i=n(i,e.state)),i.length&&(A.onmouseover=()=>VFA(e,A,i)),A}};function qFA(t,e){let A=i=>{let n=e.getBoundingClientRect();if(!(i.clientX>n.left-10&&i.clientXn.top-10&&i.clientYe.getBoundingClientRect()}}})}),e.onmouseout=e.onmousemove=null,qFA(t,e)}let{hoverTime:n}=t.state.facet(Jw),o=setTimeout(i,n);e.onmouseout=()=>{clearTimeout(o),e.onmouseout=e.onmousemove=null},e.onmousemove=()=>{clearTimeout(o),o=setTimeout(i,n)}}function ZFA(t,e){let A=Object.create(null);for(let n of e){let o=t.lineAt(n.from);(A[o.from]||(A[o.from]=[])).push(n)}let i=[];for(let n in A)i.push(new Kw(A[n]).range(+n));return Io.of(i,!0)}var WFA=Qw({class:"cm-gutter-lint",markers:t=>t.state.field(c_),widgetMarker:(t,e,A)=>{let i=[];return t.state.field(c_).between(A.from,A.to,(n,o,r)=>{n>A.from&&ni.is(l_)?i.value:A,t)},provide:t=>qE.from(t)}),XFA=Pt.baseTheme({".cm-gutter-lint":{width:"1.4em","& .cm-gutterElement":{padding:".2em"}},".cm-lint-marker":{width:"1em",height:"1em"},".cm-lint-marker-info":{content:Fw('')},".cm-lint-marker-warning":{content:Fw('')},".cm-lint-marker-error":{content:Fw('')}}),doA=[dc,Pt.decorations.compute([dc],t=>{let{selected:e,panel:A}=t.field(dc);return!e||!A||e.from==e.to?ht.none:ht.set([JFA.range(e.from,e.to)])}),FiA(YFA,{hideOn:noA}),PFA],Jw=qe.define({combine(t){return ts(t,{hoverTime:300,markerFilter:null,tooltipFilter:null})}});function BoA(t={}){return[Jw.of(t),c_,WFA,XFA,CoA]}var C_=class t{constructor(e,A,i,n,o,r,s,a,c,g=0,I){this.p=e,this.stack=A,this.state=i,this.reducePos=n,this.pos=o,this.score=r,this.buffer=s,this.bufferBase=a,this.curContext=c,this.lookAhead=g,this.parent=I}toString(){return`[${this.stack.filter((e,A)=>A%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,A,i=0){let n=e.parser.context;return new t(e,[],A,i,i,0,[],0,n?new Yw(n,n.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,A){this.stack.push(this.state,A,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var A;let i=e>>19,n=e&65535,{parser:o}=this.p,r=this.reducePos=2e3&&!(!((A=this.p.parser.nodeSet.types[n])===null||A===void 0)&&A.isAnonymous)&&(c==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=g):this.p.lastBigReductionSizea;)this.stack.pop();this.reduceContext(n,c)}storeNode(e,A,i,n=4,o=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&r.buffer[s-4]==0&&r.buffer[s-1]>-1){if(A==i)return;if(r.buffer[s-2]>=A){r.buffer[s-2]=i;return}}}if(!o||this.pos==i)this.buffer.push(e,A,i,n);else{let r=this.buffer.length;if(r>0&&this.buffer[r-4]!=0){let s=!1;for(let a=r;a>0&&this.buffer[a-2]>i;a-=4)if(this.buffer[a-1]>=0){s=!0;break}if(s)for(;r>0&&this.buffer[r-2]>i;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,n>4&&(n-=4)}this.buffer[r]=e,this.buffer[r+1]=A,this.buffer[r+2]=i,this.buffer[r+3]=n}}shift(e,A,i,n){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let o=e,{parser:r}=this.p;(n>this.pos||A<=r.maxNode)&&(this.pos=n,r.stateFlag(o,1)||(this.reducePos=n)),this.pushState(o,i),this.shiftContext(A,i),A<=r.maxNode&&this.buffer.push(A,i,n,4)}else this.pos=n,this.shiftContext(A,i),A<=this.p.parser.maxNode&&this.buffer.push(A,i,n,4)}apply(e,A,i,n){e&65536?this.reduce(e):this.shift(e,A,i,n)}useNode(e,A){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);let n=this.pos;this.reducePos=this.pos=n+e.length,this.pushState(A,n),this.buffer.push(i,n,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,A=e.buffer.length;for(;A>0&&e.buffer[A-2]>e.reducePos;)A-=4;let i=e.buffer.slice(A),n=e.bufferBase+A;for(;e&&n==e.bufferBase;)e=e.parent;return new t(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,n,this.curContext,this.lookAhead,e)}recoverByDelete(e,A){let i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,A,4),this.storeNode(0,this.pos,A,i?8:4),this.pos=this.reducePos=A,this.score-=190}canShift(e){for(let A=new d_(this);;){let i=this.p.parser.stateSlot(A.state,4)||this.p.parser.hasAction(A.state,e);if(i==0)return!1;if((i&65536)==0)return!0;A.reduce(i)}}recoverByInsert(e){if(this.stack.length>=300)return[];let A=this.p.parser.nextStates(this.state);if(A.length>8||this.stack.length>=120){let n=[];for(let o=0,r;oa&1&&s==r)||n.push(A[o],r)}A=n}let i=[];for(let n=0;n>19,n=A&65535,o=this.stack.length-i*3;if(o<0||e.getGoto(this.stack[o],n,!1)<0){let r=this.findForcedReduction();if(r==null)return!1;A=r}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(A),!0}findForcedReduction(){let{parser:e}=this.p,A=[],i=(n,o)=>{if(!A.includes(n))return A.push(n),e.allActions(n,r=>{if(!(r&393216))if(r&65536){let s=(r>>19)-o;if(s>1){let a=r&65535,c=this.stack.length-s*3;if(c>=0&&e.getGoto(this.stack[c],a,!1)>=0)return s<<19|65536|a}}else{let s=i(r,o+1);if(s!=null)return s}})};return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let A=0;Athis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},Yw=class{constructor(e,A){this.tracker=e,this.context=A,this.hash=e.strict?e.hash(A):0}},d_=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let A=e&65535,i=e>>19;i==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(i-1)*3;let n=this.start.p.parser.getGoto(this.stack[this.base-3],A,!0);this.state=n}},B_=class t{constructor(e,A,i){this.stack=e,this.pos=A,this.index=i,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,A=e.bufferBase+e.buffer.length){return new t(e,A,A-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new t(this.stack,this.pos,this.index)}};function L3(t,e=Uint16Array){if(typeof t!="string")return t;let A=null;for(let i=0,n=0;i=92&&r--,r>=34&&r--;let a=r-32;if(a>=46&&(a-=46,s=!0),o+=a,s)break;o*=46}A?A[n++]=o:A=new e(o)}return A}var oQ=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},EoA=new oQ,E_=class{constructor(e,A){this.input=e,this.ranges=A,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=EoA,this.rangeIndex=0,this.pos=this.chunkPos=A[0].from,this.range=A[0],this.end=A[A.length-1].to,this.readNext()}resolveOffset(e,A){let i=this.range,n=this.rangeIndex,o=this.pos+e;for(;oi.to:o>=i.to;){if(n==this.ranges.length-1)return null;let r=this.ranges[++n];o+=r.from-i.to,i=r}return o}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,A.from);return this.end}peek(e){let A=this.chunkOff+e,i,n;if(A>=0&&A=this.chunk2Pos&&is.to&&(this.chunk2=this.chunk2.slice(0,s.to-i)),n=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),n}acceptToken(e,A=0){let i=A?this.resolveOffset(A,-1):this.pos;if(i==null||i=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,A){if(A?(this.token=A,A.start=e,A.lookAhead=e+1,A.value=A.extended=-1):this.token=EoA,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&A<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,A-this.chunkPos);if(e>=this.chunk2Pos&&A<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,A-this.chunk2Pos);if(e>=this.range.from&&A<=this.range.to)return this.input.read(e,A);let i="";for(let n of this.ranges){if(n.from>=A)break;n.to>e&&(i+=this.input.read(Math.max(n.from,e),Math.min(n.to,A)))}return i}},Y1=class{constructor(e,A){this.data=e,this.id=A}token(e,A){let{parser:i}=A.p;moA(this.data,e,A,this.id,i.data,i.tokenPrecTable)}};Y1.prototype.contextual=Y1.prototype.fallback=Y1.prototype.extend=!1;var Q_=class{constructor(e,A,i){this.precTable=A,this.elseToken=i,this.data=typeof e=="string"?L3(e):e}token(e,A){let i=e.pos,n=0;for(;;){let o=e.next<0,r=e.resolveOffset(1,1);if(moA(this.data,e,A,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(o||n++,r==null)break;e.reset(r,e.token)}n&&(e.reset(i,e.token),e.acceptToken(this.elseToken,n))}};Q_.prototype.contextual=Y1.prototype.fallback=Y1.prototype.extend=!1;function moA(t,e,A,i,n,o){let r=0,s=1<0){let B=t[d];if(a.allows(B)&&(e.token.value==-1||e.token.value==B||A_A(B,e.token.value,n,o))){e.acceptToken(B);break}}let g=e.next,I=0,C=t[r+2];if(e.next<0&&C>I&&t[c+C*3-3]==65535){r=t[c+C*3-1];continue A}for(;I>1,B=c+d+(d<<1),E=t[B],u=t[B+1]||65536;if(g=u)I=d+1;else{r=t[B+2],e.advance();continue A}}break}}function QoA(t,e,A){for(let i=e,n;(n=t[i])!=65535;i++)if(n==A)return i-e;return-1}function A_A(t,e,A,i){let n=QoA(A,i,e);return n<0||QoA(A,i,t)e)&&!i.type.isError)return A<0?Math.max(0,Math.min(i.to-1,e-25)):Math.min(t.length,Math.max(i.from+1,e+25));if(A<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return A<0?0:t.length}}var u_=class{constructor(e,A){this.fragments=e,this.nodeSet=A,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?uoA(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?uoA(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=r,null;if(o instanceof wr){if(r==e){if(r=Math.max(this.safeFrom,e)&&(this.trees.push(o),this.start.push(r),this.index.push(0))}else this.index[A]++,this.nextStart=r+o.length}}},h_=class{constructor(e,A){this.stream=A,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(i=>new oQ)}getActions(e){let A=0,i=null,{parser:n}=e.p,{tokenizers:o}=n,r=n.stateSlot(e.state,3),s=e.curContext?e.curContext.hash:0,a=0;for(let c=0;cI.end+25&&(a=Math.max(I.lookAhead,a)),I.value!=0)){let C=A;if(I.extended>-1&&(A=this.addActions(e,I.extended,I.end,A)),A=this.addActions(e,I.value,I.end,A),!g.extend&&(i=I,A>C))break}}for(;this.actions.length>A;)this.actions.pop();return a&&e.setLookAhead(a),!i&&e.pos==this.stream.end&&(i=new oQ,i.value=e.p.parser.eofTerm,i.start=i.end=e.pos,A=this.addActions(e,i.value,i.end,A)),this.mainToken=i,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let A=new oQ,{pos:i,p:n}=e;return A.start=i,A.end=Math.min(i+1,n.stream.end),A.value=i==n.stream.end?n.parser.eofTerm:0,A}updateCachedToken(e,A,i){let n=this.stream.clipPos(i.pos);if(A.token(this.stream.reset(n,e),i),e.value>-1){let{parser:o}=i.p;for(let r=0;r=0&&i.p.parser.dialect.allows(s>>1)){(s&1)==0?e.value=s>>1:e.extended=s>>1;break}}}else e.value=0,e.end=this.stream.clipPos(n+1)}putAction(e,A,i,n){for(let o=0;oe.bufferLength*4?new u_(i,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,A=this.minStackPos,i=this.stacks=[],n,o;if(this.bigReductionCount>300&&e.length==1){let[r]=e;for(;r.forceReduce()&&r.stack.length&&r.stack[r.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let r=0;rA)i.push(s);else{if(this.advanceStack(s,i,e))continue;{n||(n=[],o=[]),n.push(s);let a=this.tokens.getMainToken(s);o.push(a.value,a.end)}}break}}if(!i.length){let r=n&&e_A(n);if(r)return Bc&&console.log("Finish with "+this.stackID(r)),this.stackToTree(r);if(this.parser.strict)throw Bc&&n&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+A);this.recovering||(this.recovering=5)}if(this.recovering&&n){let r=this.stoppedAt!=null&&n[0].pos>this.stoppedAt?n[0]:this.runRecovery(n,o,i);if(r)return Bc&&console.log("Force-finish "+this.stackID(r)),this.stackToTree(r.forceAll())}if(this.recovering){let r=this.recovering==1?1:this.recovering*3;if(i.length>r)for(i.sort((s,a)=>a.score-s.score);i.length>r;)i.pop();i.some(s=>s.reducePos>A)&&this.recovering--}else if(i.length>1){A:for(let r=0;r500&&c.buffer.length>500)if((s.score-c.score||s.buffer.length-c.buffer.length)>0)i.splice(a--,1);else{i.splice(r--,1);continue A}}}i.length>12&&i.splice(12,i.length-12)}this.minStackPos=i[0].pos;for(let r=1;r ":"";if(this.stoppedAt!=null&&n>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,g=c?e.curContext.hash:0;for(let I=this.fragments.nodeAt(n);I;){let C=this.parser.nodeSet.types[I.type.id]==I.type?o.getGoto(e.state,I.type.id):-1;if(C>-1&&I.length&&(!c||(I.prop(di.contextHash)||0)==g))return e.useNode(I,C),Bc&&console.log(r+this.stackID(e)+` (via reuse of ${o.getName(I.type.id)})`),!0;if(!(I instanceof wr)||I.children.length==0||I.positions[0]>0)break;let d=I.children[0];if(d instanceof wr&&I.positions[0]==0)I=d;else break}}let s=o.stateSlot(e.state,4);if(s>0)return e.reduce(s),Bc&&console.log(r+this.stackID(e)+` (via always-reduce ${o.getName(s&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let c=0;cn?A.push(B):i.push(B)}return!1}advanceFully(e,A){let i=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return hoA(e,A),!0}}runRecovery(e,A,i){let n=null,o=!1;for(let r=0;r ":"";if(s.deadEnd&&(o||(o=!0,s.restart(),Bc&&console.log(g+this.stackID(s)+" (restarted)"),this.advanceFully(s,i))))continue;let I=s.split(),C=g;for(let d=0;I.forceReduce()&&d<10&&(Bc&&console.log(C+this.stackID(I)+" (via force-reduce)"),!this.advanceFully(I,i));d++)Bc&&(C=this.stackID(I)+" -> ");for(let d of s.recoverByInsert(a))Bc&&console.log(g+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,i);this.stream.end>s.pos?(c==s.pos&&(c++,a=0),s.recoverByDelete(a,c),Bc&&console.log(g+this.stackID(s)+` (via recover-delete ${this.parser.getName(a)})`),hoA(s,i)):(!n||n.scoree.topRules[s][1]),n=[];for(let s=0;s=0)o(g,a,s[c++]);else{let I=s[c+-g];for(let C=-g;C>0;C--)o(s[c++],a,I);c++}}}this.nodeSet=new h3(A.map((s,a)=>Ks.define({name:a>=this.minRepeatTerm?void 0:s,id:a,props:n[a],top:i.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let r=L3(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let s=0;stypeof s=="number"?new Y1(r,s):s),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,A,i){let n=new f_(this,e,A,i);for(let o of this.wrappers)n=o(n,e,A,i);return n}getGoto(e,A,i=!1){let n=this.goto;if(A>=n[0])return-1;for(let o=n[A+1];;){let r=n[o++],s=r&1,a=n[o++];if(s&&i)return a;for(let c=o+(r>>1);o0}validAction(e,A){return!!this.allActions(e,i=>i==A?!0:null)}allActions(e,A){let i=this.stateSlot(e,4),n=i?A(i):void 0;for(let o=this.stateSlot(e,1);n==null;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=j0(this.data,o+2);else break;n=A(j0(this.data,o+1))}return n}nextStates(e){let A=[];for(let i=this.stateSlot(e,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=j0(this.data,i+2);else break;if((this.data[i+2]&1)==0){let n=this.data[i+1];A.some((o,r)=>r&1&&o==n)||A.push(this.data[i],n)}}return A}configure(e){let A=Object.assign(Object.create(t.prototype),this);if(e.props&&(A.nodeSet=this.nodeSet.extend(...e.props)),e.top){let i=this.topRules[e.top];if(!i)throw new RangeError(`Invalid top rule name ${e.top}`);A.top=i}return e.tokenizers&&(A.tokenizers=this.tokenizers.map(i=>{let n=e.tokenizers.find(o=>o.from==i);return n?n.to:i})),e.specializers&&(A.specializers=this.specializers.slice(),A.specializerSpecs=this.specializerSpecs.map((i,n)=>{let o=e.specializers.find(s=>s.from==i.external);if(!o)return i;let r=Object.assign(Object.assign({},i),{external:o.to});return A.specializers[n]=foA(r),r})),e.contextTracker&&(A.context=e.contextTracker),e.dialect&&(A.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(A.strict=e.strict),e.wrap&&(A.wrappers=A.wrappers.concat(e.wrap)),e.bufferLength!=null&&(A.bufferLength=e.bufferLength),A}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let A=this.dynamicPrecedences;return A==null?0:A[e]||0}parseDialect(e){let A=Object.keys(this.dialects),i=A.map(()=>!1);if(e)for(let o of e.split(" ")){let r=A.indexOf(o);r>=0&&(i[r]=!0)}let n=null;for(let o=0;oi)&&A.p.parser.stateFlag(A.state,2)&&(!e||e.scoret.external(A,i)<<1|e}return t.get}var t_A=yw({String:ke.string,Number:ke.number,"True False":ke.bool,PropertyName:ke.propertyName,Null:ke.null,", :":ke.separator,"[ ]":ke.squareBracket,"{ }":ke.brace}),poA=Tw.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"\u26A0 JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[t_A],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0});var i_A=vw.define({name:"json",parser:poA.configure({props:[ZF.add({Object:WF({except:/^\s*\}/}),Array:WF({except:/^\s*\]/})}),M3.add({"Object Array":onA})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function DoA(){return new Mw(i_A)}var woA=typeof String.prototype.normalize=="function"?t=>t.normalize("NFKD"):t=>t,H1=class{constructor(e,A,i=0,n=e.length,o,r){this.test=r,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,n),this.bufferStart=i,this.normalize=o?s=>o(woA(s)):woA,this.query=this.normalize(A)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return ms(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let A=V4(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=lc(e);let n=this.normalize(A);if(n.length)for(let o=0,r=i;;o++){let s=n.charCodeAt(o),a=this.match(s,r,this.bufferPos+this.bufferStart);if(o==n.length-1){if(a)return this.value=a,this;break}r==i&&othis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let A=this.matchPos<=this.to&&this.re.exec(this.curLine);if(A){let i=this.curLineStart+A.index,n=i+A[0].length;if(this.matchPos=qw(this.text,n+(i==n?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,n,A)))return this.value={from:i,to:n,match:A},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=i||n.to<=A){let s=new t(A,e.sliceString(A,i));return p_.set(e,s),s}if(n.from==A&&n.to==i)return n;let{text:o,from:r}=n;return r>A&&(o=e.sliceString(A,r)+o,r=A),n.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,A=this.re.exec(this.flat.text);if(A&&!A[0]&&A.index==e&&(this.re.lastIndex=e+1,A=this.re.exec(this.flat.text)),A){let i=this.flat.from+A.index,n=i+A[0].length;if((this.flat.to>=this.to||A.index+A[0].length<=this.flat.text.length-10)&&(!this.test||this.test(i,n,A)))return this.value={from:i,to:n,match:A},this.matchPos=qw(this.text,n+(i==n?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Pw.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}};typeof Symbol<"u"&&(zw.prototype[Symbol.iterator]=jw.prototype[Symbol.iterator]=function(){return this});function n_A(t){try{return new RegExp(t,k_),!0}catch{return!1}}function qw(t,e){if(e>=t.length)return e;let A=t.lineAt(e),i;for(;e=56320&&i<57344;)e++;return e}function D_(t){let e=String(t.state.doc.lineAt(t.state.selection.main.head).number),A=_n("input",{class:"cm-textfield",name:"line",value:e}),i=_n("form",{class:"cm-gotoLine",onkeydown:o=>{o.keyCode==27?(o.preventDefault(),t.dispatch({effects:x3.of(!1)}),t.focus()):o.keyCode==13&&(o.preventDefault(),n())},onsubmit:o=>{o.preventDefault(),n()}},_n("label",t.state.phrase("Go to line"),": ",A)," ",_n("button",{class:"cm-button",type:"submit"},t.state.phrase("go")),_n("button",{name:"close",onclick:()=>{t.dispatch({effects:x3.of(!1)}),t.focus()},"aria-label":t.state.phrase("close"),type:"button"},["\xD7"]));function n(){let o=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(A.value);if(!o)return;let{state:r}=t,s=r.doc.lineAt(r.selection.main.head),[,a,c,g,I]=o,C=g?+g.slice(1):0,d=c?+c:s.number;if(c&&I){let u=d/100;a&&(u=u*(a=="-"?-1:1)+s.number/r.doc.lines),d=Math.round(r.doc.lines*u)}else c&&a&&(d=d*(a=="-"?-1:1)+s.number);let B=r.doc.line(Math.max(1,Math.min(r.doc.lines,d))),E=ae.cursor(B.from+Math.max(0,Math.min(C,B.length)));t.dispatch({effects:[x3.of(!1),Pt.scrollIntoView(E.from,{y:"center"})],selection:E}),t.focus()}return{dom:i}}var x3=Ki.define(),yoA=tr.define({create(){return!0},update(t,e){for(let A of e.effects)A.is(x3)&&(t=A.value);return t},provide:t=>NC.from(t,e=>e?D_:null)}),o_A=t=>{let e=FC(t,D_);if(!e){let A=[x3.of(!0)];t.state.field(yoA,!1)==null&&A.push(Ki.appendConfig.of([yoA,r_A])),t.dispatch({effects:A}),e=FC(t,D_)}return e&&e.dom.querySelector("input").select(),!0},r_A=Pt.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px",position:"relative","& label":{fontSize:"80%"},"& [name=close]":{position:"absolute",top:"0",bottom:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:"0"}}}),s_A={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},koA=qe.define({combine(t){return ts(t,s_A,{highlightWordAroundCursor:(e,A)=>e||A,minSelectionLength:Math.min,maxMatches:Math.min})}});function SoA(t){let e=[I_A,l_A];return t&&e.push(koA.of(t)),e}var a_A=ht.mark({class:"cm-selectionMatch"}),c_A=ht.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function voA(t,e,A,i){return(A==0||t(e.sliceDoc(A-1,A))!=lo.Word)&&(i==e.doc.length||t(e.sliceDoc(i,i+1))!=lo.Word)}function g_A(t,e,A,i){return t(e.sliceDoc(A,A+1))==lo.Word&&t(e.sliceDoc(i-1,i))==lo.Word}var l_A=Bo.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.selectionSet||t.docChanged||t.viewportChanged)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=t.state.facet(koA),{state:A}=t,i=A.selection;if(i.ranges.length>1)return ht.none;let n=i.main,o,r=null;if(n.empty){if(!e.highlightWordAroundCursor)return ht.none;let a=A.wordAt(n.head);if(!a)return ht.none;r=A.charCategorizer(n.head),o=A.sliceDoc(a.from,a.to)}else{let a=n.to-n.from;if(a200)return ht.none;if(e.wholeWords){if(o=A.sliceDoc(n.from,n.to),r=A.charCategorizer(n.head),!(voA(r,A,n.from,n.to)&&g_A(r,A,n.from,n.to)))return ht.none}else if(o=A.sliceDoc(n.from,n.to),!o)return ht.none}let s=[];for(let a of t.visibleRanges){let c=new H1(A.doc,o,a.from,a.to);for(;!c.next().done;){let{from:g,to:I}=c.value;if((!r||voA(r,A,g,I))&&(n.empty&&g<=n.from&&I>=n.to?s.push(c_A.range(g,I)):(g>=n.to||I<=n.from)&&s.push(a_A.range(g,I)),s.length>e.maxMatches))return ht.none}}return ht.set(s)}},{decorations:t=>t.decorations}),I_A=Pt.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),C_A=({state:t,dispatch:e})=>{let{selection:A}=t,i=ae.create(A.ranges.map(n=>t.wordAt(n.head)||ae.cursor(n.head)),A.mainIndex);return i.eq(A)?!1:(e(t.update({selection:i})),!0)};function d_A(t,e){let{main:A,ranges:i}=t.selection,n=t.wordAt(A.head),o=n&&n.from==A.from&&n.to==A.to;for(let r=!1,s=new H1(t.doc,e,i[i.length-1].to);;)if(s.next(),s.done){if(r)return null;s=new H1(t.doc,e,0,Math.max(0,i[i.length-1].from-1)),r=!0}else{if(r&&i.some(a=>a.from==s.value.from))continue;if(o){let a=t.wordAt(s.value.from);if(!a||a.from!=s.value.from||a.to!=s.value.to)continue}return s.value}}var B_A=({state:t,dispatch:e})=>{let{ranges:A}=t.selection;if(A.some(o=>o.from===o.to))return C_A({state:t,dispatch:e});let i=t.sliceDoc(A[0].from,A[0].to);if(t.selection.ranges.some(o=>t.sliceDoc(o.from,o.to)!=i))return!1;let n=d_A(t,i);return n?(e(t.update({selection:t.selection.addRange(ae.range(n.from,n.to),!1),effects:Pt.scrollIntoView(n.to)})),!0):!1},TC=qe.define({combine(t){return ts(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new M_(e),scrollToMatch:e=>Pt.scrollIntoView(e)})}});function RoA(t){return t?[TC.of(t),b_]:b_}var Vw=class{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||n_A(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(A,i)=>i=="n"?` +`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new y_(this):new w_(this)}getCursor(e,A=0,i){let n=e.doc?e:Dr.create({doc:e});return i==null&&(i=n.doc.length),this.regexp?sQ(this,n,A,i):rQ(this,n,A,i)}},Zw=class{constructor(e){this.spec=e}};function rQ(t,e,A,i){return new H1(e.doc,t.unquoted,A,i,t.caseSensitive?void 0:n=>n.toLowerCase(),t.wholeWord?E_A(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function E_A(t,e){return(A,i,n,o)=>((o>A||o+n.length=A)return null;n.push(i.value)}return n}highlight(e,A,i,n){let o=rQ(this.spec,e,Math.max(0,A-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!o.next().done;)n(o.value.from,o.value.to)}};function sQ(t,e,A,i){return new zw(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:t.wholeWord?Q_A(e.charCategorizer(e.selection.main.head)):void 0},A,i)}function Ww(t,e){return t.slice(br(t,e,!1),e)}function Xw(t,e){return t.slice(e,br(t,e))}function Q_A(t){return(e,A,i)=>!i[0].length||(t(Ww(i.input,i.index))!=lo.Word||t(Xw(i.input,i.index))!=lo.Word)&&(t(Xw(i.input,i.index+i[0].length))!=lo.Word||t(Ww(i.input,i.index+i[0].length))!=lo.Word)}var y_=class extends Zw{nextMatch(e,A,i){let n=sQ(this.spec,e,i,e.doc.length).next();return n.done&&(n=sQ(this.spec,e,0,A).next()),n.done?null:n.value}prevMatchInRange(e,A,i){for(let n=1;;n++){let o=Math.max(A,i-n*1e4),r=sQ(this.spec,e,o,i),s=null;for(;!r.next().done;)s=r.value;if(s&&(o==A||s.from>o+10))return s;if(o==A)return null}}prevMatch(e,A,i){return this.prevMatchInRange(e,0,A)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(A,i)=>{if(i=="&")return e.match[0];if(i=="$")return"$";for(let n=i.length;n>0;n--){let o=+i.slice(0,n);if(o>0&&o=A)return null;n.push(i.value)}return n}highlight(e,A,i,n){let o=sQ(this.spec,e,Math.max(0,A-250),Math.min(i+250,e.doc.length));for(;!o.next().done;)n(o.value.from,o.value.to)}},F3=Ki.define(),S_=Ki.define(),T1=tr.define({create(t){return new N3(v_(t).create(),null)},update(t,e){for(let A of e.effects)A.is(F3)?t=new N3(A.value.create(),t.panel):A.is(S_)&&(t=new N3(t.query,A.value?R_:null));return t},provide:t=>NC.from(t,e=>e.panel)});var N3=class{constructor(e,A){this.query=e,this.panel=A}},u_A=ht.mark({class:"cm-searchMatch"}),h_A=ht.mark({class:"cm-searchMatch cm-searchMatch-selected"}),f_A=Bo.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(T1))}update(t){let e=t.state.field(T1);(e!=t.startState.field(T1)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return ht.none;let{view:A}=this,i=new fs;for(let n=0,o=A.visibleRanges,r=o.length;no[n+1].from-2*250;)a=o[++n].to;t.highlight(A.state,s,a,(c,g)=>{let I=A.state.selection.ranges.some(C=>C.from==c&&C.to==g);i.add(c,g,I?h_A:u_A)})}return i.finish()}},{decorations:t=>t.decorations});function _3(t){return e=>{let A=e.state.field(T1,!1);return A&&A.query.spec.valid?t(e,A):ey(e)}}var $w=_3((t,{query:e})=>{let{to:A}=t.state.selection.main,i=e.nextMatch(t.state,A,A);if(!i)return!1;let n=ae.single(i.from,i.to),o=t.state.facet(TC);return t.dispatch({selection:n,effects:[L_(t,i),o.scrollToMatch(n.main,t)],userEvent:"select.search"}),xoA(t),!0}),Ay=_3((t,{query:e})=>{let{state:A}=t,{from:i}=A.selection.main,n=e.prevMatch(A,i,i);if(!n)return!1;let o=ae.single(n.from,n.to),r=t.state.facet(TC);return t.dispatch({selection:o,effects:[L_(t,n),r.scrollToMatch(o.main,t)],userEvent:"select.search"}),xoA(t),!0}),m_A=_3((t,{query:e})=>{let A=e.matchAll(t.state,1e3);return!A||!A.length?!1:(t.dispatch({selection:ae.create(A.map(i=>ae.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),p_A=({state:t,dispatch:e})=>{let A=t.selection;if(A.ranges.length>1||A.main.empty)return!1;let{from:i,to:n}=A.main,o=[],r=0;for(let s=new H1(t.doc,t.sliceDoc(i,n));!s.next().done;){if(o.length>1e3)return!1;s.value.from==i&&(r=o.length),o.push(ae.range(s.value.from,s.value.to))}return e(t.update({selection:ae.create(o,r),userEvent:"select.search.matches"})),!0},MoA=_3((t,{query:e})=>{let{state:A}=t,{from:i,to:n}=A.selection.main;if(A.readOnly)return!1;let o=e.nextMatch(A,i,i);if(!o)return!1;let r=o,s=[],a,c,g=[];r.from==i&&r.to==n&&(c=A.toText(e.getReplacement(r)),s.push({from:r.from,to:r.to,insert:c}),r=e.nextMatch(A,r.from,r.to),g.push(Pt.announce.of(A.phrase("replaced match on line $",A.doc.lineAt(i).number)+".")));let I=t.state.changes(s);return r&&(a=ae.single(r.from,r.to).map(I),g.push(L_(t,r)),g.push(A.facet(TC).scrollToMatch(a.main,t))),t.dispatch({changes:I,selection:a,effects:g,userEvent:"input.replace"}),!0}),D_A=_3((t,{query:e})=>{if(t.state.readOnly)return!1;let A=e.matchAll(t.state,1e9).map(n=>{let{from:o,to:r}=n;return{from:o,to:r,insert:e.getReplacement(n)}});if(!A.length)return!1;let i=t.state.phrase("replaced $ matches",A.length)+".";return t.dispatch({changes:A,effects:Pt.announce.of(i),userEvent:"input.replace.all"}),!0});function R_(t){return t.state.facet(TC).createPanel(t)}function v_(t,e){var A,i,n,o,r;let s=t.selection.main,a=s.empty||s.to>s.from+100?"":t.sliceDoc(s.from,s.to);if(e&&!a)return e;let c=t.facet(TC);return new Vw({search:((A=e?.literal)!==null&&A!==void 0?A:c.literal)?a:a.replace(/\n/g,"\\n"),caseSensitive:(i=e?.caseSensitive)!==null&&i!==void 0?i:c.caseSensitive,literal:(n=e?.literal)!==null&&n!==void 0?n:c.literal,regexp:(o=e?.regexp)!==null&&o!==void 0?o:c.regexp,wholeWord:(r=e?.wholeWord)!==null&&r!==void 0?r:c.wholeWord})}function LoA(t){let e=FC(t,R_);return e&&e.dom.querySelector("[main-field]")}function xoA(t){let e=LoA(t);e&&e==t.root.activeElement&&e.select()}var ey=t=>{let e=t.state.field(T1,!1);if(e&&e.panel){let A=LoA(t);if(A&&A!=t.root.activeElement){let i=v_(t.state,e.query.spec);i.valid&&t.dispatch({effects:F3.of(i)}),A.focus(),A.select()}}else t.dispatch({effects:[S_.of(!0),e?F3.of(v_(t.state,e.query.spec)):Ki.appendConfig.of(b_)]});return!0},ty=t=>{let e=t.state.field(T1,!1);if(!e||!e.panel)return!1;let A=FC(t,R_);return A&&A.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:S_.of(!1)}),!0},NoA=[{key:"Mod-f",run:ey,scope:"editor search-panel"},{key:"F3",run:$w,shift:Ay,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:$w,shift:Ay,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:ty,scope:"editor search-panel"},{key:"Mod-Shift-l",run:p_A},{key:"Mod-Alt-g",run:o_A},{key:"Mod-d",run:B_A,preventDefault:!0}],M_=class{constructor(e){this.view=e;let A=this.query=e.state.field(T1).query.spec;this.commit=this.commit.bind(this),this.searchField=_n("input",{value:A.search,placeholder:Ec(e,"Find"),"aria-label":Ec(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=_n("input",{value:A.replace,placeholder:Ec(e,"Replace"),"aria-label":Ec(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=_n("input",{type:"checkbox",name:"case",form:"",checked:A.caseSensitive,onchange:this.commit}),this.reField=_n("input",{type:"checkbox",name:"re",form:"",checked:A.regexp,onchange:this.commit}),this.wordField=_n("input",{type:"checkbox",name:"word",form:"",checked:A.wholeWord,onchange:this.commit});function i(n,o,r){return _n("button",{class:"cm-button",name:n,onclick:o,type:"button"},r)}this.dom=_n("div",{onkeydown:n=>this.keydown(n),class:"cm-search"},[this.searchField,i("next",()=>$w(e),[Ec(e,"next")]),i("prev",()=>Ay(e),[Ec(e,"previous")]),i("select",()=>m_A(e),[Ec(e,"all")]),_n("label",null,[this.caseField,Ec(e,"match case")]),_n("label",null,[this.reField,Ec(e,"regexp")]),_n("label",null,[this.wordField,Ec(e,"by word")]),...e.state.readOnly?[]:[_n("br"),this.replaceField,i("replace",()=>MoA(e),[Ec(e,"replace")]),i("replaceAll",()=>D_A(e),[Ec(e,"replace all")])],_n("button",{name:"close",onclick:()=>ty(e),"aria-label":Ec(e,"close"),type:"button"},["\xD7"])])}commit(){let e=new Vw({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:F3.of(e)}))}keydown(e){DiA(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?Ay:$w)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),MoA(this.view))}update(e){for(let A of e.transactions)for(let i of A.effects)i.is(F3)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(TC).top}};function Ec(t,e){return t.state.phrase(e)}var Hw=30,Ow=/[\s\.,:;?!]/;function L_(t,{from:e,to:A}){let i=t.state.doc.lineAt(e),n=t.state.doc.lineAt(A).to,o=Math.max(i.from,e-Hw),r=Math.min(n,A+Hw),s=t.state.sliceDoc(o,r);if(o!=i.from){for(let a=0;as.length-Hw;a--)if(!Ow.test(s[a-1])&&Ow.test(s[a])){s=s.slice(0,a);break}}return Pt.announce.of(`${t.state.phrase("current match")}. ${s} ${t.state.phrase("on line")} ${i.number}.`)}var w_A=Pt.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),b_=[T1,Ng.low(f_A),w_A];var ny=class{constructor(e,A,i,n){this.state=e,this.pos=A,this.explicit=i,this.view=n,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let A=ns(this.state).resolveInner(this.pos,-1);for(;A&&e.indexOf(A.name)<0;)A=A.parent;return A?{from:A.from,to:this.pos,text:this.state.sliceDoc(A.from,this.pos),type:A.type}:null}matchBefore(e){let A=this.state.doc.lineAt(this.pos),i=Math.max(A.from,this.pos-250),n=A.text.slice(i-A.from,this.pos-A.from),o=n.search(ToA(e,!1));return o<0?null:{from:i+o,to:this.pos,text:n.slice(o)}}get aborted(){return this.abortListeners==null}addEventListener(e,A,i){e=="abort"&&this.abortListeners&&(this.abortListeners.push(A),i&&i.onDocChange&&(this.abortOnDocChange=!0))}};function FoA(t){let e=Object.keys(t).join(""),A=/\w/.test(e);return A&&(e=e.replace(/\w/g,"")),`[${A?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function y_A(t){let e=Object.create(null),A=Object.create(null);for(let{label:n}of t){e[n[0]]=!0;for(let o=1;otypeof n=="string"?{label:n}:n),[A,i]=e.every(n=>/^\w+$/.test(n.label))?[/\w*$/,/\w+$/]:y_A(e);return n=>{let o=n.matchBefore(i);return o||n.explicit?{from:o?o.from:n.pos,options:e,validFor:A}:null}}var oy=class{constructor(e,A,i,n){this.completion=e,this.source=A,this.match=i,this.score=n}};function OC(t){return t.selection.main.from}function ToA(t,e){var A;let{source:i}=t,n=e&&i[0]!="^",o=i[i.length-1]!="$";return!n&&!o?t:new RegExp(`${n?"^":""}(?:${i})${o?"$":""}`,(A=t.flags)!==null&&A!==void 0?A:t.ignoreCase?"i":"")}var HoA=Fa.define();function M_A(t,e,A,i){let{main:n}=t.selection,o=A-n.from,r=i-n.from;return Fe(sA({},t.changeByRange(s=>{if(s!=n&&A!=i&&t.sliceDoc(s.from+o,s.from+r)!=t.sliceDoc(A,i))return{range:s};let a=t.toText(e);return{changes:{from:s.from+o,to:i==n.from?s.to:s.from+r,insert:a},range:ae.cursor(s.from+o+a.length)}})),{scrollIntoView:!0,userEvent:"input.complete"})}var _oA=new WeakMap;function b_A(t){if(!Array.isArray(t))return t;let e=_oA.get(t);return e||_oA.set(t,e=v_A(t)),e}var ry=Ki.define(),G3=Ki.define(),__=class{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let A=0;A=48&&D<=57||D>=97&&D<=122?2:D>=65&&D<=90?1:0:(G=V4(D))!=G.toLowerCase()?1:G!=G.toUpperCase()?2:0;(!w||J==1&&u||R==0&&J!=0)&&(A[I]==D||i[I]==D&&(C=!0)?r[I++]=w:r.length&&(h=!1)),R=J,w+=lc(D)}return I==a&&r[0]==0&&h?this.result(-100+(C?-200:0),r,e):d==a&&B==0?this.ret(-200-e.length+(E==e.length?0:-100),[0,E]):s>-1?this.ret(-700-e.length,[s,s+this.pattern.length]):d==a?this.ret(-900-e.length,[B,E]):I==a?this.result(-100+(C?-200:0)+-700+(h?0:-1100),r,e):A.length==2?null:this.result((n[0]?-700:0)+-200+-1100,n,e)}result(e,A,i){let n=[],o=0;for(let r of A){let s=r+(this.astral?lc(ms(i,r)):1);o&&n[o-1]==r?n[o-1]=s:(n[o++]=r,n[o++]=s)}return this.ret(e-i.length,n)}},G_=class{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:k_A,filterStrict:!1,compareCompletions:(e,A)=>e.label.localeCompare(A.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,A)=>e&&A,closeOnBlur:(e,A)=>e&&A,icons:(e,A)=>e&&A,tooltipClass:(e,A)=>i=>GoA(e(i),A(i)),optionClass:(e,A)=>i=>GoA(e(i),A(i)),addToOptions:(e,A)=>e.concat(A),filterStrict:(e,A)=>e||A})}});function GoA(t,e){return t?e?t+" "+e:t:e}function k_A(t,e,A,i,n,o){let r=t.textDirection==Co.RTL,s=r,a=!1,c="top",g,I,C=e.left-n.left,d=n.right-e.right,B=i.right-i.left,E=i.bottom-i.top;if(s&&C=E||w>e.top?g=A.bottom-e.top:(c="bottom",g=e.bottom-A.top)}let u=(e.bottom-e.top)/o.offsetHeight,h=(e.right-e.left)/o.offsetWidth;return{style:`${c}: ${g/u}px; max-width: ${I/h}px`,class:"cm-completionInfo-"+(a?r?"left-narrow":"right-narrow":s?"left":"right")}}function S_A(t){let e=t.addToOptions.slice();return t.icons&&e.push({render(A){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),A.type&&i.classList.add(...A.type.split(/\s+/g).map(n=>"cm-completionIcon-"+n)),i.setAttribute("aria-hidden","true"),i},position:20}),e.push({render(A,i,n,o){let r=document.createElement("span");r.className="cm-completionLabel";let s=A.displayLabel||A.label,a=0;for(let c=0;ca&&r.appendChild(document.createTextNode(s.slice(a,g)));let C=r.appendChild(document.createElement("span"));C.appendChild(document.createTextNode(s.slice(g,I))),C.className="cm-completionMatchedText",a=I}return aA.position-i.position).map(A=>A.render)}function x_(t,e,A){if(t<=A)return{from:0,to:t};if(e<0&&(e=0),e<=t>>1){let n=Math.floor(e/A);return{from:n*A,to:(n+1)*A}}let i=Math.floor((t-e)/A);return{from:t-(i+1)*A,to:t-i*A}}var K_=class{constructor(e,A,i){this.view=e,this.stateField=A,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:a=>this.placeInfo(a),key:this},this.space=null,this.currentClass="";let n=e.state.field(A),{options:o,selected:r}=n.open,s=e.state.facet(os);this.optionContent=S_A(s),this.optionClass=s.optionClass,this.tooltipClass=s.tooltipClass,this.range=x_(o.length,r,s.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",a=>{let{options:c}=e.state.field(A).open;for(let g=a.target,I;g&&g!=this.dom;g=g.parentNode)if(g.nodeName=="LI"&&(I=/-(\d+)$/.exec(g.id))&&+I[1]{let c=e.state.field(this.stateField,!1);c&&c.tooltip&&e.state.facet(os).closeOnBlur&&a.relatedTarget!=e.contentDOM&&e.dispatch({effects:G3.of(null)})}),this.showOptions(o,n.id)}mount(){this.updateSel()}showOptions(e,A){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,A,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var A;let i=e.state.field(this.stateField),n=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),i!=n){let{options:o,selected:r,disabled:s}=i.open;(!n.open||n.open.options!=o)&&(this.range=x_(o.length,r,e.state.facet(os).maxRenderedOptions),this.showOptions(o,i.id)),this.updateSel(),s!=((A=n.open)===null||A===void 0?void 0:A.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!s)}}updateTooltipClass(e){let A=this.tooltipClass(e);if(A!=this.currentClass){for(let i of this.currentClass.split(" "))i&&this.dom.classList.remove(i);for(let i of A.split(" "))i&&this.dom.classList.add(i);this.currentClass=A}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),A=e.open;if((A.selected>-1&&A.selected=this.range.to)&&(this.range=x_(A.options.length,A.selected,this.view.state.facet(os).maxRenderedOptions),this.showOptions(A.options,e.id)),this.updateSelectedOption(A.selected)){this.destroyInfo();let{completion:i}=A.options[A.selected],{info:n}=i;if(!n)return;let o=typeof n=="string"?document.createTextNode(n):n(i);if(!o)return;"then"in o?o.then(r=>{r&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(r,i)}).catch(r=>is(this.view.state,r,"completion info")):this.addInfoPane(o,i)}}addInfoPane(e,A){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",e.nodeType!=null)i.appendChild(e),this.infoDestroy=null;else{let{dom:n,destroy:o}=e;i.appendChild(n),this.infoDestroy=o||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let A=null;for(let i=this.list.firstChild,n=this.range.from;i;i=i.nextSibling,n++)i.nodeName!="LI"||!i.id?n--:n==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),A=i):i.hasAttribute("aria-selected")&&i.removeAttribute("aria-selected");return A&&L_A(this.list,A),A}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let A=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),n=e.getBoundingClientRect(),o=this.space;if(!o){let r=this.dom.ownerDocument.documentElement;o={left:0,top:0,right:r.clientWidth,bottom:r.clientHeight}}return n.top>Math.min(o.bottom,A.bottom)-10||n.bottom{r.target==n&&r.preventDefault()});let o=null;for(let r=i.from;ri.from||i.from==0))if(o=C,typeof c!="string"&&c.header)n.appendChild(c.header(c));else{let d=n.appendChild(document.createElement("completion-section"));d.textContent=C}}let g=n.appendChild(document.createElement("li"));g.id=A+"-"+r,g.setAttribute("role","option");let I=this.optionClass(s);I&&(g.className=I);for(let C of this.optionContent){let d=C(s,this.view.state,this.view,a);d&&g.appendChild(d)}}return i.from&&n.classList.add("cm-completionListIncompleteTop"),i.tonew K_(A,t,e)}function L_A(t,e){let A=t.getBoundingClientRect(),i=e.getBoundingClientRect(),n=A.height/t.offsetHeight;i.topA.bottom&&(t.scrollTop+=(i.bottom-A.bottom)/n)}function KoA(t){return(t.boost||0)*100+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}function x_A(t,e){let A=[],i=null,n=c=>{A.push(c);let{section:g}=c.completion;if(g){i||(i=[]);let I=typeof g=="string"?g:g.name;i.some(C=>C.name==I)||i.push(typeof g=="string"?{name:I}:g)}},o=e.facet(os);for(let c of t)if(c.hasResult()){let g=c.result.getMatch;if(c.result.filter===!1)for(let I of c.result.options)n(new oy(I,c.source,g?g(I):[],1e9-A.length));else{let I=e.sliceDoc(c.from,c.to),C,d=o.filterStrict?new G_(I):new __(I);for(let B of c.result.options)if(C=d.match(B.label)){let E=B.displayLabel?g?g(B,C.matched):[]:C.matched;n(new oy(B,c.source,E,C.score+(B.boost||0)))}}}if(i){let c=Object.create(null),g=0,I=(C,d)=>{var B,E;return((B=C.rank)!==null&&B!==void 0?B:1e9)-((E=d.rank)!==null&&E!==void 0?E:1e9)||(C.nameI.score-g.score||a(g.completion,I.completion))){let g=c.completion;!s||s.label!=g.label||s.detail!=g.detail||s.type!=null&&g.type!=null&&s.type!=g.type||s.apply!=g.apply||s.boost!=g.boost?r.push(c):KoA(c.completion)>KoA(s)&&(r[r.length-1]=c),s=c.completion}return r}var U_=class t{constructor(e,A,i,n,o,r){this.options=e,this.attrs=A,this.tooltip=i,this.timestamp=n,this.selected=o,this.disabled=r}setSelected(e,A){return e==this.selected||e>=this.options.length?this:new t(this.options,UoA(A,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,A,i,n,o,r){if(n&&!r&&e.some(c=>c.isPending))return n.setDisabled();let s=x_A(e,A);if(!s.length)return n&&e.some(c=>c.isPending)?n.setDisabled():null;let a=A.facet(os).selectOnOpen?0:-1;if(n&&n.selected!=a&&n.selected!=-1){let c=n.options[n.selected].completion;for(let g=0;gg.hasResult()?Math.min(c,g.from):c,1e8),create:U_A,above:o.aboveCursor},n?n.timestamp:Date.now(),a,!1)}map(e){return new t(this.options,this.attrs,Fe(sA({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}setDisabled(){return new t(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}},J_=class t{constructor(e,A,i){this.active=e,this.id=A,this.open=i}static start(){return new t(G_A,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:A}=e,i=A.facet(os),o=(i.override||A.languageDataAt("autocomplete",OC(A)).map(b_A)).map(a=>(this.active.find(g=>g.source==a)||new q0(a,this.active.some(g=>g.state!=0)?1:0)).update(e,i));o.length==this.active.length&&o.every((a,c)=>a==this.active[c])&&(o=this.active);let r=this.open,s=e.effects.some(a=>a.is(T_));r&&e.docChanged&&(r=r.map(e.changes)),e.selection||o.some(a=>a.hasResult()&&e.changes.touchesRange(a.from,a.to))||!N_A(o,this.active)||s?r=U_.build(o,A,this.id,r,i,s):r&&r.disabled&&!o.some(a=>a.isPending)&&(r=null),!r&&o.every(a=>!a.isPending)&&o.some(a=>a.hasResult())&&(o=o.map(a=>a.hasResult()?new q0(a.source,0):a));for(let a of e.effects)a.is(zoA)&&(r=r&&r.setSelected(a.value,this.id));return o==this.active&&r==this.open?this:new t(o,this.id,r)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?F_A:__A}};function N_A(t,e){if(t==e)return!0;for(let A=0,i=0;;){for(;A-1&&(A["aria-activedescendant"]=t+"-"+e),A}var G_A=[];function OoA(t,e){if(t.isUserEvent("input.complete")){let i=t.annotation(HoA);if(i&&e.activateOnCompletion(i))return 12}let A=t.isUserEvent("input.type");return A&&e.activateOnTyping?5:A?1:t.isUserEvent("delete.backward")?2:t.selection?8:t.docChanged?16:0}var q0=class t{constructor(e,A,i=!1){this.source=e,this.state=A,this.explicit=i}hasResult(){return!1}get isPending(){return this.state==1}update(e,A){let i=OoA(e,A),n=this;(i&8||i&16&&this.touches(e))&&(n=new t(n.source,0)),i&4&&n.state==0&&(n=new t(this.source,1)),n=n.updateFor(e,i);for(let o of e.effects)if(o.is(ry))n=new t(n.source,1,o.value);else if(o.is(G3))n=new t(n.source,0);else if(o.is(T_))for(let r of o.value)r.source==n.source&&(n=r);return n}updateFor(e,A){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(OC(e.state))}},sy=class t extends q0{constructor(e,A,i,n,o,r){super(e,3,A),this.limit=i,this.result=n,this.from=o,this.to=r}hasResult(){return!0}updateFor(e,A){var i;if(!(A&3))return this.map(e.changes);let n=this.result;n.map&&!e.changes.empty&&(n=n.map(n,e.changes));let o=e.changes.mapPos(this.from),r=e.changes.mapPos(this.to,1),s=OC(e.state);if(s>r||!n||A&2&&(OC(e.startState)==this.from||sA.map(e))}}),zoA=Ki.define(),Ka=tr.define({create(){return J_.start()},update(t,e){return t.update(e)},provide:t=>[qE.from(t,e=>e.tooltip),Pt.contentAttributes.from(t,e=>e.attrs)]});function H_(t,e){let A=e.completion.apply||e.completion.label,i=t.state.field(Ka).active.find(n=>n.source==e.source);return i instanceof sy?(typeof A=="string"?t.dispatch(Fe(sA({},M_A(t.state,A,i.from,i.to)),{annotations:HoA.of(e.completion)})):A(t,e.completion,i.from,i.to),!0):!1}var U_A=R_A(Ka,H_);function iy(t,e="option"){return A=>{let i=A.state.field(Ka,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp-1?i.open.selected+n*(t?1:-1):t?0:r-1;return s<0?s=e=="page"?0:r-1:s>=r&&(s=e=="page"?r-1:0),A.dispatch({effects:zoA.of(s)}),!0}}var J_A=t=>{let e=t.state.field(Ka,!1);return t.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampt.state.field(Ka,!1)?(t.dispatch({effects:ry.of(!0)}),!0):!1,Y_A=t=>{let e=t.state.field(Ka,!1);return!e||!e.active.some(A=>A.state!=0)?!1:(t.dispatch({effects:G3.of(null)}),!0)},Y_=class{constructor(e,A){this.active=e,this.context=A,this.time=Date.now(),this.updates=[],this.done=void 0}},T_A=50,H_A=1e3,O_A=Bo.fromClass(class{constructor(t){this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of t.state.field(Ka).active)e.isPending&&this.startQuery(e)}update(t){let e=t.state.field(Ka),A=t.state.facet(os);if(!t.selectionSet&&!t.docChanged&&t.startState.field(Ka)==e)return;let i=t.transactions.some(o=>{let r=OoA(o,A);return r&8||(o.selection||o.docChanged)&&!(r&3)});for(let o=0;oT_A&&Date.now()-r.time>H_A){for(let s of r.context.abortListeners)try{s()}catch(a){is(this.view.state,a)}r.context.abortListeners=null,this.running.splice(o--,1)}else r.updates.push(...t.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),t.transactions.some(o=>o.effects.some(r=>r.is(ry)))&&(this.pendingStart=!0);let n=this.pendingStart?50:A.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(o=>o.isPending&&!this.running.some(r=>r.active.source==o.source))?setTimeout(()=>this.startUpdate(),n):-1,this.composing!=0)for(let o of t.transactions)o.isUserEvent("input.type")?this.composing=2:this.composing==2&&o.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:t}=this.view,e=t.field(Ka);for(let A of e.active)A.isPending&&!this.running.some(i=>i.active.source==A.source)&&this.startQuery(A);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(os).updateSyncTime))}startQuery(t){let{state:e}=this.view,A=OC(e),i=new ny(e,A,t.explicit,this.view),n=new Y_(t,i);this.running.push(n),Promise.resolve(t.source(i)).then(o=>{n.context.aborted||(n.done=o||null,this.scheduleAccept())},o=>{this.view.dispatch({effects:G3.of(null)}),is(this.view.state,o)})}scheduleAccept(){this.running.every(t=>t.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(os).updateSyncTime))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],A=this.view.state.facet(os),i=this.view.state.field(Ka);for(let n=0;ns.source==o.active.source);if(r&&r.isPending)if(o.done==null){let s=new q0(o.active.source,0);for(let a of o.updates)s=s.update(a,A);s.isPending||e.push(s)}else this.startQuery(r)}(e.length||i.open&&i.open.disabled)&&this.view.dispatch({effects:T_.of(e)})}},{eventHandlers:{blur(t){let e=this.view.state.field(Ka,!1);if(e&&e.tooltip&&this.view.state.facet(os).closeOnBlur){let A=e.open&&yF(this.view,e.open.tooltip);(!A||!A.dom.contains(t.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:G3.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:ry.of(!1)}),20),this.composing=0}}}),z_A=typeof navigator=="object"&&/Win/.test(navigator.platform),P_A=Ng.highest(Pt.domEventHandlers({keydown(t,e){let A=e.state.field(Ka,!1);if(!A||!A.open||A.open.disabled||A.open.selected<0||t.key.length>1||t.ctrlKey&&!(z_A&&t.altKey)||t.metaKey)return!1;let i=A.open.options[A.open.selected],n=A.active.find(r=>r.source==i.source),o=i.completion.commitCharacters||n.result.commitCharacters;return o&&o.indexOf(t.key)>-1&&H_(e,i),!1}})),j_A=Pt.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});var K3={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},HC=Ki.define({map(t,e){let A=e.mapPos(t,-1,us.TrackAfter);return A??void 0}}),O_=new class extends xg{};O_.startSide=1;O_.endSide=-1;var PoA=tr.define({create(){return Io.empty},update(t,e){if(t=t.map(e.changes),e.selection){let A=e.state.doc.lineAt(e.selection.main.head);t=t.update({filter:i=>i>=A.from&&i<=A.to})}for(let A of e.effects)A.is(HC)&&(t=t.update({add:[O_.range(A.value,A.value+1)]}));return t}});function joA(){return[V_A,PoA]}var F_="()[]{}<>\xAB\xBB\xBB\xAB\uFF3B\uFF3D\uFF5B\uFF5D";function qoA(t){for(let e=0;e{if((q_A?t.composing:t.compositionStarted)||t.state.readOnly)return!1;let n=t.state.selection.main;if(i.length>2||i.length==2&&lc(ms(i,0))==1||e!=n.from||A!=n.to)return!1;let o=W_A(t.state,i);return o?(t.dispatch(o),!0):!1}),Z_A=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=VoA(t,t.selection.main.head).brackets||K3.brackets,n=null,o=t.changeByRange(r=>{if(r.empty){let s=X_A(t.doc,r.head);for(let a of i)if(a==s&&ay(t.doc,r.head)==qoA(ms(a,0)))return{changes:{from:r.head-a.length,to:r.head+a.length},range:ae.cursor(r.head-a.length)}}return{range:n=r}});return n||e(t.update(o,{scrollIntoView:!0,userEvent:"delete.backward"})),!n},ZoA=[{key:"Backspace",run:Z_A}];function W_A(t,e){let A=VoA(t,t.selection.main.head),i=A.brackets||K3.brackets;for(let n of i){let o=qoA(ms(n,0));if(e==n)return o==n?eGA(t,n,i.indexOf(n+n+n)>-1,A):$_A(t,n,o,A.before||K3.before);if(e==o&&WoA(t,t.selection.main.from))return AGA(t,n,o)}return null}function WoA(t,e){let A=!1;return t.field(PoA).between(0,t.doc.length,i=>{i==e&&(A=!0)}),A}function ay(t,e){let A=t.sliceString(e,e+2);return A.slice(0,lc(ms(A,0)))}function X_A(t,e){let A=t.sliceString(e-2,e);return lc(ms(A,0))==A.length?A:A.slice(1)}function $_A(t,e,A,i){let n=null,o=t.changeByRange(r=>{if(!r.empty)return{changes:[{insert:e,from:r.from},{insert:A,from:r.to}],effects:HC.of(r.to+e.length),range:ae.range(r.anchor+e.length,r.head+e.length)};let s=ay(t.doc,r.head);return!s||/\s/.test(s)||i.indexOf(s)>-1?{changes:{insert:e+A,from:r.head},effects:HC.of(r.head+e.length),range:ae.cursor(r.head+e.length)}:{range:n=r}});return n?null:t.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function AGA(t,e,A){let i=null,n=t.changeByRange(o=>o.empty&&ay(t.doc,o.head)==A?{changes:{from:o.head,to:o.head+A.length,insert:A},range:ae.cursor(o.head+A.length)}:i={range:o});return i?null:t.update(n,{scrollIntoView:!0,userEvent:"input.type"})}function eGA(t,e,A,i){let n=i.stringPrefixes||K3.stringPrefixes,o=null,r=t.changeByRange(s=>{if(!s.empty)return{changes:[{insert:e,from:s.from},{insert:e,from:s.to}],effects:HC.of(s.to+e.length),range:ae.range(s.anchor+e.length,s.head+e.length)};let a=s.head,c=ay(t.doc,a),g;if(c==e){if(JoA(t,a))return{changes:{insert:e+e,from:a},effects:HC.of(a+e.length),range:ae.cursor(a+e.length)};if(WoA(t,a)){let C=A&&t.sliceDoc(a,a+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:a,to:a+C.length,insert:C},range:ae.cursor(a+C.length)}}}else{if(A&&t.sliceDoc(a-2*e.length,a)==e+e&&(g=YoA(t,a-2*e.length,n))>-1&&JoA(t,g))return{changes:{insert:e+e+e+e,from:a},effects:HC.of(a+e.length),range:ae.cursor(a+e.length)};if(t.charCategorizer(a)(c)!=lo.Word&&YoA(t,a,n)>-1&&!tGA(t,a,e,n))return{changes:{insert:e+e,from:a},effects:HC.of(a+e.length),range:ae.cursor(a+e.length)}}return{range:o=s}});return o?null:t.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function JoA(t,e){let A=ns(t).resolveInner(e+1);return A.parent&&A.from==e}function tGA(t,e,A,i){let n=ns(t).resolveInner(e,-1),o=i.reduce((r,s)=>Math.max(r,s.length),0);for(let r=0;r<5;r++){let s=t.sliceDoc(n.from,Math.min(n.to,n.from+A.length+o)),a=s.indexOf(A);if(!a||a>-1&&i.indexOf(s.slice(0,a))>-1){let g=n.firstChild;for(;g&&g.from==n.from&&g.to-g.from>A.length+a;){if(t.sliceDoc(g.to-A.length,g.to)==A)return!1;g=g.firstChild}return!0}let c=n.to==e&&n.parent;if(!c)break;n=c}return!1}function YoA(t,e,A){let i=t.charCategorizer(e);if(i(t.sliceDoc(e-1,e))!=lo.Word)return e;for(let n of A){let o=e-n.length;if(t.sliceDoc(o,e)==n&&i(t.sliceDoc(o-1,o))!=lo.Word)return o}return-1}function XoA(t={}){return[P_A,Ka,os.of(t),O_A,iGA,j_A]}var z_=[{key:"Ctrl-Space",run:N_},{mac:"Alt-`",run:N_},{mac:"Alt-i",run:N_},{key:"Escape",run:Y_A},{key:"ArrowDown",run:iy(!0)},{key:"ArrowUp",run:iy(!1)},{key:"PageDown",run:iy(!0,"page")},{key:"PageUp",run:iy(!1,"page")},{key:"Enter",run:J_A}],iGA=Ng.highest(jE.computeN([os],t=>t.facet(os).defaultKeymap?[z_]:[]));function nGA(t,e=t.state){let A=new Set;for(let{from:i,to:n}of t.visibleRanges){let o=i;for(;o<=n;){let r=e.doc.lineAt(o);A.has(r)||A.add(r),o=r.to+1}}return A}function P_(t){let e=t.selection.main.head;return t.doc.lineAt(e)}function $oA(t,e){let A=0;A:for(let i=0;i=o.level&&this.markerType!=="codeOnly"?this.set(e,0,n.level):n.empty&&n.level===0&&o.level!==0?this.set(e,0,0):o.level>n.level?this.set(e,0,n.level+1):this.set(e,0,o.level)}let A=$oA(e.text,this.state.tabSize),i=Math.floor(A/this.unitWidth);return this.set(e,A,i)}closestNonEmpty(e,A){let i=e.number+A;for(;A===-1?i>=1:i<=this.state.doc.lines;){if(this.has(i)){let r=this.get(i);if(!r.empty)return r}let o=this.state.doc.line(i);if(o.text.trim().length){let r=$oA(o.text,this.state.tabSize),s=Math.floor(r/this.unitWidth);return this.set(o,r,s)}i+=A}let n=this.state.doc.line(A===-1?1:this.state.doc.lines);return this.set(n,0,0)}findAndSetActiveLines(){let e=P_(this.state);if(!this.has(e))return;let A=this.get(e);if(this.has(A.line.number+1)){let o=this.get(A.line.number+1);o.level>A.level&&(A=o)}if(this.has(A.line.number-1)){let o=this.get(A.line.number-1);o.level>A.level&&(A=o)}if(A.level===0)return;A.active=A.level;let i,n;for(i=A.line.number;i>1;i--){if(!this.has(i-1))continue;let o=this.get(i-1);if(o.level0&&a.push(cy("--indent-marker-bg-color",i,e,s,c)),a.push(cy("--indent-marker-active-bg-color",n,e,r-1,1)),r!==o&&a.push(cy("--indent-marker-bg-color",i,e,r,o-r))}else a.push(cy("--indent-marker-bg-color",i,e,s,o-s));return a.join(",")}var q_=class{constructor(e){this.view=e,this.unitWidth=Ug(e.state),this.currentLineNumber=P_(e.state).number,this.generate(e.state)}update(e){let A=Ug(e.state),i=A!==this.unitWidth;i&&(this.unitWidth=A);let n=P_(e.state).number,o=n!==this.currentLineNumber;this.currentLineNumber=n;let r=e.state.facet(gy).highlightActiveBlock&&o;(e.docChanged||e.viewportChanged||i||r)&&this.generate(e.state)}generate(e){let A=new fs,i=nGA(this.view,e),{hideFirstIndent:n,markerType:o,thickness:r,activeThickness:s}=e.facet(gy),a=new j_(i,e,this.unitWidth,o);for(let c of i){let g=a.get(c.number);if(!g?.level)continue;let I=rGA(g,this.unitWidth,n,r,s);A.add(c.from,c.from,ht.line({class:"cm-indent-markers",attributes:{style:`--indent-markers: ${I}`}}))}this.decorations=A.finish()}};function ArA(t={}){return[gy.of(t),oGA(t.colors),Bo.fromClass(q_,{decorations:e=>e.decorations})]}var sGA=["mainAxis","crossAxis","fallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment"],aGA=["mainAxis","crossAxis","limiter"];function EsA(t,e){if(t==null)return{};var A,i,n=function(r,s){if(r==null)return{};var a={};for(var c in r)if({}.hasOwnProperty.call(r,c)){if(s.indexOf(c)!==-1)continue;a[c]=r[c]}return a}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(i=0;i{};function BGA(t){return t()}function Ry(t){for(var e=0;e1&&arguments[1]!==void 0&&arguments[1])&&(jn.l={s:null,u:null,r1:[],r2:$C(!1)})}function mt(t){var e=jn,A=e.e;if(A!==null)for(var i of(e.e=null,A))LsA(i);return t!==void 0&&(e.x=t),jn=e.p,t??{}}function FQ(){return!xQ||jn!==null&&jn.l===null}function wsA(t){var e,A;return jn===null&&lf(),(A=(e=jn).c)!==null&&A!==void 0?A:e.c=new Map(function(i){for(var n=i.p;n!==null;){var o=n.c;if(o!==null)return o;n=n.p}return null}(jn)||void 0)}function EQ(t){if(typeof t!="object"||t===null||i0 in t)return t;var e=eK(t);if(e!==CGA&&e!==dGA)return t;var A=new Map,i=NQ(t),n=V0(0),o=ZC,r=s=>{if(ZC===o)return s();var a=Go,c=ZC;nI(null),lrA(o);var g=s();return nI(a),lrA(c),g};return i&&A.set("length",V0(t.length)),new Proxy(t,{defineProperty(s,a,c){"value"in c&&c.configurable!==!1&&c.enumerable!==!1&&c.writable!==!1||function(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}();var g=A.get(a);return g===void 0?g=r(()=>{var I=V0(c.value);return A.set(a,I),I}):y(g,c.value,!0),!0},deleteProperty(s,a){var c=A.get(a);if(c===void 0){if(a in s){var g=r(()=>V0(Ds));A.set(a,g),W_(n)}}else{if(i&&typeof a=="string"){var I=A.get("length"),C=Number(a);Number.isInteger(C)&&CV0(EQ(C?s[a]:Ds))),A.set(a,I)),I!==void 0){var d=l(I);return d===Ds?void 0:d}return Reflect.get(s,a,c)},getOwnPropertyDescriptor(s,a){var c=Reflect.getOwnPropertyDescriptor(s,a);if(c&&"value"in c){var g=A.get(a);g&&(c.value=l(g))}else if(c===void 0){var I=A.get(a),C=I?.v;if(I!==void 0&&C!==Ds)return{enumerable:!0,configurable:!0,value:C,writable:!0}}return c},has(s,a){var c;if(a===i0)return!0;var g=A.get(a),I=g!==void 0&&g.v!==Ds||Reflect.has(s,a);return(g!==void 0||qn!==null&&(!I||(c=t2(s,a))!==null&&c!==void 0&&c.writable))&&(g===void 0&&(g=r(()=>V0(I?EQ(s[a]):Ds)),A.set(a,g)),l(g)===Ds)?!1:I},set(s,a,c,g){var I,C=A.get(a),d=a in s;if(i&&a==="length")for(var B=c;BV0(Ds)),A.set(B+"",E))}C===void 0?(!d||(I=t2(s,a))!==null&&I!==void 0&&I.writable)&&(y(C=r(()=>V0(void 0)),EQ(c)),A.set(a,C)):(d=C.v!==Ds,y(C,r(()=>EQ(c))));var u=Reflect.getOwnPropertyDescriptor(s,a);if(u!=null&&u.set&&u.set.call(g,c),!d){if(i&&typeof a=="string"){var h=A.get("length"),w=Number(a);Number.isInteger(w)&&w>=h.v&&y(h,w+1)}W_(n)}return!0},ownKeys(s){l(n);var a=Reflect.ownKeys(s).filter(I=>{var C=A.get(I);return C===void 0||C.v!==Ds});for(var[c,g]of A)g.v===Ds||c in s||a.push(c);return a},setPrototypeOf(){(function(){throw new Error("https://svelte.dev/e/state_prototype_fixed")})()}})}function arA(t){try{if(t!==null&&typeof t=="object"&&i0 in t)return t[i0]}catch{}return t}function mGA(t,e){return Object.is(arA(t),arA(e))}function _Q(t){var e=2050,A=Go!==null&&2&Go.f?Go:null;return qn===null||A!==null&&(A.f&Hg)!==0?e|=Hg:qn.f|=QGA,{ctx:jn,deps:null,effects:null,equals:psA,f:e,fn:t,reactions:null,rv:0,v:Ds,wv:0,parent:A??qn,ac:null}}function Ja(t){var e=_Q(t);return YsA(e),e}function ZA(t){var e=_Q(t);return e.equals=DsA,e}function ysA(t){var e=t.effects;if(e!==null){t.effects=null;for(var A=0;A1&&arguments[1]!==void 0&&arguments[1],n=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],o=$C(t);return i||(o.equals=DsA),xQ&&n&&jn!==null&&jn.l!==null&&((A=(e=jn.l).s)!==null&&A!==void 0?A:e.s=[]).push(o),o}function hc(t,e){return y(t,oA(()=>l(t))),e}function y(t,e){var A,i=arguments.length>2&&arguments[2]!==void 0&&arguments[2];return Go===null||A0&&(Go.f&EGA)===0||!FQ()||!(131090&Go.f)||(A=n2)!==null&&A!==void 0&&A.includes(t)||function(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}(),yG(t,i?EQ(e):e)}function yG(t,e){if(!t.equals(e)){var A=t.v;iI?qC.set(t,e):qC.set(t,A),t.v=e,2&t.f&&((t.f&yQ)!==0&&nK(t),qg(t,(t.f&Hg)===0?Dc:rd)),t.wv=TsA(),MsA(t,yQ),!FQ()||qn===null||(qn.f&Dc)===0||96&qn.f||(Wc===null?function(i){Wc=i}([t]):Wc.push(t))}return e}function crA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,A=l(t),i=e===1?A++:A--;return y(t,A),i}function W_(t){y(t,t.v+1)}function MsA(t,e){var A=t.reactions;if(A!==null)for(var i=FQ(),n=A.length,o=0;o0&&arguments[0]!==void 0?arguments[0]:"";return document.createTextNode(t)}function fc(t){return ksA.call(t)}function $y(t){return SsA.call(t)}function W(t,e){return fc(t)}function Mt(t,e){var A=fc(t);return A instanceof Comment&&A.data===""?$y(A):A}function CA(t){for(var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,A=t;e--;)A=$y(A);return A}function RsA(t){qn===null&&Go===null&&function(){throw new Error("https://svelte.dev/e/effect_orphan")}(),Go!==null&&(Go.f&Hg)!==0&&qn===null&&function(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}(),iI&&function(){throw new Error("https://svelte.dev/e/effect_in_teardown")}()}function gI(t,e,A){var i=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3],n=qn,o={ctx:jn,deps:null,nodes_start:null,nodes_end:null,f:t|yQ,first:null,fn:e,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,transitions:null,wv:0,ac:null};if(A)try{e7(o),o.f|=32768}catch(a){throw tg(o),a}else e!==null&&t7(o);if(!(A&&o.deps===null&&o.first===null&&o.nodes_start===null&&o.teardown===null&&!(524416&o.f))&&i&&(n!==null&&function(a,c){var g=c.last;g===null?c.last=c.first=a:(g.next=a,a.prev=g,c.last=a)}(o,n),Go!==null&&2&Go.f)){var r,s=Go;((r=s.effects)!==null&&r!==void 0?r:s.effects=[]).push(o)}return o}function oK(t){var e=gI(8,null,!1);return qg(e,Dc),e.teardown=t,e}function vG(t){if(RsA(),Go||!qn||(qn.f&Wy)===0)return LsA(t);var e,A=jn;((e=A.e)!==null&&e!==void 0?e:A.e=[]).push(t)}function LsA(t){return gI(2097156,t,!1)}function rs(t){return gI(4,t,!1)}function pA(t,e){var A=jn,i={effect:null,ran:!1};A.l.r1.push(i),i.effect=If(()=>{t(),i.ran||(i.ran=!0,y(A.l.r2,!0),oA(e))})}function ln(){var t=jn;If(()=>{if(l(t.l.r2)){for(var e of t.l.r1){var A=e.effect;(A.f&Dc)!==0&&qg(A,rd),Cf(A)&&e7(A),e.ran=!1}t.l.r2.v=!1}})}function If(t){return gI(8,t,!0)}function we(t){var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:_Q,A=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:[]).map(e);return lI(()=>t(...A.map(l)))}function lI(t){return gI(24|(arguments.length>1&&arguments[1]!==void 0?arguments[1]:0),t,!0)}function s0(t){return gI(40,t,!0,!(arguments.length>1&&arguments[1]!==void 0)||arguments[1])}function xsA(t){var e=t.teardown;if(e!==null){var A=iI,i=Go;grA(!0),nI(null);try{e.call(null)}finally{grA(A),nI(i)}}}function NsA(t){var e=arguments.length>1&&arguments[1]!==void 0&&arguments[1],A=t.first;for(t.first=t.last=null;A!==null;){var i;(i=A.ac)===null||i===void 0||i.abort(msA);var n=A.next;(A.f&hsA)!==0?A.parent=null:tg(A,e),A=n}}function tg(t){var e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],A=!1;(e||262144&t.f)&&t.nodes_start!==null&&t.nodes_end!==null&&(FsA(t.nodes_start,t.nodes_end),A=!0),NsA(t,e&&!A),Ny(t,0),qg(t,tK);var i=t.transitions;if(i!==null)for(var n of i)n.stop();xsA(t);var o=t.parent;o!==null&&o.first!==null&&_sA(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes_start=t.nodes_end=t.ac=null}function FsA(t,e){for(;t!==null;){var A=t===e?null:$y(t);t.remove(),t=A}}function _sA(t){var e=t.parent,A=t.prev,i=t.next;A!==null&&(A.next=i),i!==null&&(i.prev=A),e!==null&&(e.first===t&&(e.first=i),e.last===t&&(e.last=A))}function vQ(t,e){var A=[];rK(t,A,!0),GsA(A,()=>{tg(t),e&&e()})}function GsA(t,e){var A=t.length;if(A>0){var i=()=>--A||e();for(var n of t)n.out(i)}else e()}function rK(t,e,A){if((t.f&$1)===0){if(t.f^=$1,t.transitions!==null)for(var i of t.transitions)(i.is_global||A)&&e.push(i);for(var n=t.first;n!==null;){var o=n.next;rK(n,e,((n.f&gf)!==0||(n.f&Wy)!==0)&&A),n=o}}}function Ly(t){KsA(t,!0)}function KsA(t,e){if((t.f&$1)!==0){t.f^=$1;for(var A=t.first;A!==null;){var i=A.next;KsA(A,((A.f&gf)!==0||(A.f&Wy)!==0)&&e),A=i}if(t.transitions!==null)for(var n of t.transitions)(n.is_global||e)&&n.in()}}var j3=[],X_=[];function UsA(){var t=j3;j3=[],Ry(t)}function A7(t){j3.length===0&&queueMicrotask(UsA),j3.push(t)}function pGA(){var t;j3.length>0&&UsA(),X_.length>0&&(t=X_,X_=[],Ry(t))}function JsA(t,e){for(;e!==null;){if(128&e.f)try{return void e.b.error(t)}catch{}e=e.parent}throw t}var q3=!1,V3=null,VC=!1,iI=!1;function grA(t){iI=t}var P3=[],Go=null,A0=!1;function nI(t){Go=t}var qn=null;function oI(t){qn=t}var n2=null;function YsA(t){Go!==null&&Go.f&wG&&(n2===null?n2=[t]:n2.push(t))}var oa=null,Qc=0,Wc=null,xy=1,Z3=0,ZC=Z3;function lrA(t){ZC=t}var V1=!1,IrA=null;function TsA(){return++xy}function Cf(t){var e=t.f;if((e&yQ)!==0)return!0;if((e&rd)!==0){var A=t.deps,i=(e&Hg)!==0;if(A!==null){var n,o,r=(e&DG)!==0,s=i&&qn!==null&&!V1,a=A.length;if(r||s){var c=t,g=c.parent;for(n=0;nt.wv)return!0}i&&(qn===null||V1)||qg(t,Dc)}return!1}function HsA(t,e){var A,i=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],n=t.reactions;if(n!==null&&((A=n2)===null||A===void 0||!A.includes(t)))for(var o=0;o0)for(C.length=Qc+oa.length,d=0;d0;){e++>1e3&&wGA();var A=P3,i=A.length;P3=[];for(var n=0;nn&&(i.f&uGA)!==0)break}}for(;A1&&arguments[1]!==void 0?arguments[1]:new Set;if(!(typeof t!="object"||t===null||t instanceof EventTarget||e.has(t))){for(var A in e.add(t),t instanceof Date&&t.getTime(),t)try{MG(t[A],e)}catch{}var i=eK(t);if(i!==Object.prototype&&i!==Array.prototype&&i!==Map.prototype&&i!==Set.prototype&&i!==Date.prototype){var n=usA(i);for(var o in n){var r=n[o].get;if(r)try{r.call(t)}catch{}}}}}var CrA=!1;function qsA(t){var e=Go,A=qn;nI(null),oI(null);try{return t()}finally{nI(e),oI(A)}}function bGA(t,e,A){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:A;t.addEventListener(e,()=>qsA(A));var n=t.__on_r;t.__on_r=n?()=>{n(),i(!0)}:()=>i(!0),CrA||(CrA=!0,document.addEventListener("reset",o=>{Promise.resolve().then(()=>{if(!o.defaultPrevented)for(var r of o.target.elements){var s;(s=r.__on_r)===null||s===void 0||s.call(r)}})},{capture:!0}))}var VsA=new Set,bG=new Set;function ZsA(t,e,A){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};function n(o){if(i.capture||T3.call(e,o),!o.cancelBubble)return qsA(()=>A?.call(this,o))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?A7(()=>{e.addEventListener(t,n,i)}):e.addEventListener(t,n,i),n}function ce(t,e,A,i,n){var o={capture:i,passive:n},r=ZsA(t,e,A,o);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&oK(()=>{e.removeEventListener(t,r,o)})}function df(t){for(var e=0;er||i});var I=Go,C=qn;nI(null),oI(null);try{for(var d,B=[];r!==null;){var E=r.assignedSlot||r.parentNode||r.host||null;try{var u=r["__"+n];if(u!=null&&(!r.disabled||t.target===r))if(NQ(u)){var[h,...w]=u;h.apply(r,[t,...w])}else u.call(r,t)}catch(D){d?B.push(D):d=D}if(t.cancelBubble||E===A||E===null)break;r=E}if(d){var x=function(D){queueMicrotask(()=>{throw D})};for(var R of B)x(R);throw d}}finally{t.__root=A,delete t.currentTarget,nI(I),oI(C)}}}function sK(t){var e=document.createElement("template");return e.innerHTML=t.replaceAll("",""),e.content}function Ad(t,e){var A=qn;A.nodes_start===null&&(A.nodes_start=t,A.nodes_end=e)}function vA(t,e){var A,i=!!(1&e),n=!!(2&e),o=!t.startsWith("");return()=>{A===void 0&&(A=sK(o?t:""+t),i||(A=fc(A)));var r=n||bsA?document.importNode(A,!0):A.cloneNode(!0);return i?Ad(fc(r),r.lastChild):Ad(r,r),r}}function II(t,e){return function(A,i){var n,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"svg",r=!A.startsWith(""),s=!!(1&i),a="<".concat(o,">").concat(r?A:""+A,"");return()=>{if(!n){var c=fc(sK(a));if(s)for(n=document.createDocumentFragment();fc(c);)n.appendChild(fc(c));else n=fc(c)}var g=n.cloneNode(!0);return s?Ad(fc(g),g.lastChild):Ad(g,g),g}}(t,e,"svg")}function jr(){var t=Xy((arguments.length>0&&arguments[0]!==void 0?arguments[0]:"")+"");return Ad(t,t),t}function _o(){var t=document.createDocumentFragment(),e=document.createComment(""),A=Xy();return t.append(e,A),Ad(e,A),t}function iA(t,e){t!==null&&t.before(e)}var kGA=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"],SGA={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly",defaultvalue:"defaultValue",defaultchecked:"defaultChecked",srcobject:"srcObject",novalidate:"noValidate",allowfullscreen:"allowFullscreen",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback"},RGA=["touchstart","touchmove"];function LGA(t){return RGA.includes(t)}function pt(t,e){var A,i=e==null?"":typeof e=="object"?e+"":e;i!==((A=t.__t)!==null&&A!==void 0?A:t.__t=t.nodeValue)&&(t.__t=i,t.nodeValue=i+"")}function xGA(t,e){return function(A,i){var{target:n,anchor:o,props:r={},events:s,context:a,intro:c=!0}=i;(function(){if(i2===void 0){i2=window,bsA=/Firefox/.test(navigator.userAgent);var B=Element.prototype,E=Node.prototype,u=Text.prototype;ksA=t2(E,"firstChild").get,SsA=t2(E,"nextSibling").get,orA(B)&&(B.__click=void 0,B.__className=void 0,B.__attributes=null,B.__style=void 0,B.__e=void 0),orA(u)&&(u.__t=void 0)}})();var g=new Set,I=B=>{for(var E=0;E0&&arguments[0]!==void 0?arguments[0]:{};return new Promise(h=>{u.outro?vQ(E,()=>{tg(E),h(void 0)}):(tg(E),h(void 0))})}}(()=>{var B=o??n.appendChild(Xy());return s0(()=>{a&&(ft({}),jn.c=a),s&&(r.$$events=s),C=A(B,r)||{},a&&mt()}),()=>{for(var E of g){n.removeEventListener(E,T3);var u=aQ.get(E);--u===0?(document.removeEventListener(E,T3),aQ.delete(E)):aQ.set(E,u)}var h;bG.delete(I),B!==o&&((h=B.parentNode)===null||h===void 0||h.removeChild(B))}});return kG.set(C,d),C}(t,e)}var aQ=new Map,kG=new WeakMap;function ws(t){jn===null&&lf(),xQ&&jn.l!==null?WsA(jn).m.push(t):vG(()=>{var e=oA(t);if(typeof e=="function")return e})}function ig(t){jn===null&&lf(),ws(()=>()=>oA(t))}function NGA(){var t=jn;return t===null&&lf(),(e,A,i)=>{var n,o=(n=t.s.$$events)===null||n===void 0?void 0:n[e];if(o){var r=NQ(o)?o.slice():[o],s=function(c,g){var{bubbles:I=!1,cancelable:C=!1}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return new CustomEvent(c,{detail:g,bubbles:I,cancelable:C})}(e,A,i);for(var a of r)a.call(t.x,s);return!s.defaultPrevented}return!0}}function FGA(t){jn===null&&lf(),jn.l===null&&function(){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}(),WsA(jn).b.push(t)}function WsA(t){var e,A=t.l;return(e=A.u)!==null&&e!==void 0?e:A.u={a:[],b:[],m:[]}}function GA(t,e){var[A,i]=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[0,0],n=t,o=null,r=null,s=Ds,a=!1,c=function(I){a=!0,g(!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],I)},g=(I,C)=>{s!==(s=I)&&(s?(o?Ly(o):C&&(o=s0(()=>C(n))),r&&vQ(r,()=>{r=null})):(r?Ly(r):C&&(r=s0(()=>C(n,[A+1,i]))),o&&vQ(o,()=>{o=null})))};lI(()=>{a=!1,e(c),a||g(null,null)},A>0?gf:0)}function XsA(t,e,A){var i,n=t,o=Ds,r=FQ()?fGA:iK;lI(()=>{r(o,o=e())&&(i&&vQ(i),i=s0(()=>A(n)))})}function cr(t,e){return e}function jo(t,e,A,i,n){var o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null,r=t,s={flags:e,items:new Map,first:null};!(4&e)||(r=t.appendChild(Xy()));var a=null,c=!1,g=ZA(()=>{var I=A();return NQ(I)?I:I==null?[]:pG(I)});lI(()=>{var I=l(g),C=I.length;c&&C===0||(c=C===0,function(d,B,E,u,h,w,x){var R,D,G,J,z,K,O=!!(8&h),V=!!(3&h),j=d.length,dA=B.items,fA=B.first,EA=fA,IA=null,SA=[],nA=[];if(O)for(K=0;K0){var We=4&h&&j===0?E:null;if(O){for(K=0;K0&&Me.length===0&&zA!==null;if(Gt){var ct=zA.parentNode;ct.textContent="",ct.append(zA),xA.clear(),O1(OA,gA[0].prev,gA[LA-1].next)}GsA(Me,()=>{for(var oe=0;oe{if(D!==void 0)for(z of D){var OA;(OA=z.a)===null||OA===void 0||OA.apply()}}),qn.first=B.first&&B.first.e,qn.last=IA&&IA.e}(I,s,r,n,e,i,A),o!==null&&(C===0?a?Ly(a):a=s0(()=>o(r)):a!==null&&vQ(a,()=>{a=null})),l(g))})}function _GA(t,e,A,i){1&i&&yG(t.v,e),2&i?yG(t.i,A):t.i=A}function GGA(t,e,A,i,n,o,r,s,a,c){var g=1&a?16&a?$C(n):$(n,!1,!1):n,I=2&a?$C(r):r,C={i:I,v:g,k:o,a:null,e:null,prev:A,next:i};try{return C.e=s0(()=>s(t,g,I,c),!1),C.e.prev=A&&A.e,C.e.next=i&&i.e,A===null?e.first=C:(A.next=C,A.e.next=C.e),i!==null&&(i.prev=C,i.e.prev=C.e),C}finally{}}function drA(t,e,A){for(var i=t.next?t.next.e.nodes_start:A,n=e?e.e.nodes_start:A,o=t.e.nodes_start;o!==i;){var r=$y(o);n.before(o),o=r}}function O1(t,e,A){e===null?t.first=A:(e.next=A,e.e.next=A&&A.e),A!==null&&(A.prev=e,A.e.prev=e&&e.e)}function $sA(t,e){var A=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=arguments.length>3&&arguments[3]!==void 0&&arguments[3],n=t,o="";we(()=>{var r,s=qn;if(o!==(o=(r=e())!==null&&r!==void 0?r:"")&&(s.nodes_start!==null&&(FsA(s.nodes_start,s.nodes_end),s.nodes_start=s.nodes_end=null),o!=="")){var a=o+"";A?a="".concat(a,""):i&&(a="".concat(a,""));var c=sK(a);if((A||i)&&(c=fc(c)),Ad(fc(c),c.lastChild),A||i)for(;fc(c);)n.before(fc(c));else n.before(c)}})}function Po(t,e,A,i,n){var o,r=(o=e.$$slots)===null||o===void 0?void 0:o[A],s=!1;r===!0&&(r=e[A==="default"?"children":A],s=!0),r===void 0?n!==null&&n(t):r(t,s?()=>i:i)}function AaA(t,e,A){var i,n,o=t;lI(()=>{i!==(i=e())&&(n&&(vQ(n),n=null),i&&(n=s0(()=>A(o,i))))},gf)}function Ts(t,e,A){rs(()=>{var i=oA(()=>e(t,A?.())||{});if(A&&i!=null&&i.update){var n=!1,o={};If(()=>{var r=A();k(r),n&&iK(o,r)&&(o=r,i.update(r))}),n=!0}if(i!=null&&i.destroy)return()=>i.destroy()})}function KGA(t,e){var A,i=void 0;lI(()=>{i!==(i=e())&&(A&&(tg(A),A=null),i&&(A=s0(()=>{rs(()=>i(t))})))})}function eaA(t){var e,A,i="";if(typeof t=="string"||typeof t=="number")i+=t;else if(typeof t=="object")if(Array.isArray(t)){var n=t.length;for(e=0;e1&&arguments[1]!==void 0&&arguments[1]?" !important;":";",A="";for(var i in t){var n=t[i];n!=null&&n!==""&&(A+=" "+i+": "+n+e)}return A}function $_(t){return t[0]!=="-"||t[1]!=="-"?t.toLowerCase():t}function jt(t,e,A,i,n,o){var r=t.__className;if(r!==A||r===void 0){var s=function(g,I,C){var d=g==null?"":""+g;if(I&&(d=d?d+" "+I:I),C){for(var B in C)if(C[B])d=d?d+" "+B:B;else if(d.length)for(var E=B.length,u=0;(u=d.indexOf(B,u))>=0;){var h=u+E;u!==0&&!BrA.includes(d[u-1])||h!==d.length&&!BrA.includes(d[h])?u=h:d=(u===0?"":d.substring(0,u))+d.substring(h+1)}}return d===""?null:d}(A,i,o);s==null?t.removeAttribute("class"):e?t.className=s:t.setAttribute("class",s),t.__className=A}else if(o&&n!==o)for(var a in o){var c=!!o[a];n!=null&&c===!!n[a]||t.classList.toggle(a,c)}return o}function AG(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},A=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;for(var n in A){var o=A[n];e[n]!==o&&(A[n]==null?t.style.removeProperty(n):t.style.setProperty(n,o,i))}}function eg(t,e,A,i){if(t.__style!==e){var n=function(o,r){if(r){var s,a,c="";if(Array.isArray(r)?(s=r[0],a=r[1]):s=r,o){o=String(o).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var g=!1,I=0,C=!1,d=[];s&&d.push(...Object.keys(s).map($_)),a&&d.push(...Object.keys(a).map($_));for(var B=0,E=-1,u=o.length,h=0;h2&&arguments[2]!==void 0&&arguments[2];if(t.multiple){if(e==null)return;if(!NQ(e))return void console.warn("https://svelte.dev/e/select_multiple_invalid_value");for(var i of t.options)i.selected=e.includes(QrA(i))}else{for(i of t.options)if(mGA(QrA(i),e))return void(i.selected=!0);A&&e===void 0||(t.selectedIndex=-1)}}function UGA(t){var e=new MutationObserver(()=>{SG(t,t.__value)});e.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),oK(()=>{e.disconnect()})}function QrA(t){return"__value"in t?t.__value:t.value}var dQ=Symbol("class"),J3=Symbol("style"),taA=Symbol("is custom element"),iaA=Symbol("is html");function ed(t,e){var A=aK(t);A.value!==(A.value=e??void 0)&&(t.value!==e||e===0&&t.nodeName==="PROGRESS")&&(t.value=e??"")}function gn(t,e,A,i){var n=aK(t);n[e]!==(n[e]=A)&&(e==="loading"&&(t[hGA]=A),A==null?t.removeAttribute(e):typeof A!="string"&&naA(t).includes(e)?t[e]=A:t.setAttribute(e,A))}function JGA(t,e,A,i){var n,o=aK(t),r=o[taA],s=!o[iaA],a=e||{},c=t.tagName==="OPTION";for(var g in e)g in A||(A[g]=null);A.class?A.class=rI(A.class):(i||A[dQ])&&(A.class=null),A[J3]&&((n=A.style)!==null&&n!==void 0||(A.style=null));var I,C,d,B,E,u,h=naA(t),w=function(R){var D=A[R];if(c&&R==="value"&&D==null)return t.value=t.__value="",a[R]=D,0;if(R==="class")return I=t.namespaceURI==="http://www.w3.org/1999/xhtml",jt(t,I,D,i,e?.[dQ],A[dQ]),a[R]=D,a[dQ]=A[dQ],0;if(R==="style")return eg(t,D,e?.[J3],A[J3]),a[R]=D,a[J3]=A[J3],0;if(D===(C=a[R])&&(D!==void 0||!t.hasAttribute(R))||(a[R]=D,(d=R[0]+R[1])==="$$"))return 0;if(d==="on"){var G={},J="$$"+R,z=R.slice(2);if(B=function(fA){return kGA.includes(fA)}(z),function(fA){return fA.endsWith("capture")&&fA!=="gotpointercapture"&&fA!=="lostpointercapture"}(z)&&(z=z.slice(0,-7),G.capture=!0),!B&&C){if(D!=null)return 0;t.removeEventListener(z,a[J],G),a[J]=null}if(D!=null)if(B)t["__".concat(z)]=D,df([z]);else{let fA=function(EA){a[R].call(this,EA)};var dA=fA;a[J]=ZsA(z,t,fA,G)}else B&&(t["__".concat(z)]=void 0)}else if(R==="style")gn(t,R,D);else if(R==="autofocus")(function(fA,EA){if(EA){var IA=document.body;fA.autofocus=!0,A7(()=>{document.activeElement===IA&&fA.focus()})}})(t,!!D);else if(r||R!=="__value"&&(R!=="value"||D==null))if(R==="selected"&&c)(function(fA,EA){EA?fA.hasAttribute("selected")||fA.setAttribute("selected",""):fA.removeAttribute("selected")})(t,D);else if(E=R,s||(E=function(fA){var EA;return fA=fA.toLowerCase(),(EA=SGA[fA])!==null&&EA!==void 0?EA:fA}(E)),u=E==="defaultValue"||E==="defaultChecked",D!=null||r||u)u||h.includes(E)&&(r||typeof D!="string")?t[E]=D:typeof D!="function"&&gn(t,E,D);else if(o[R]=null,E==="value"||E==="checked"){var K=t,O=e===void 0;if(E==="value"){var V=K.defaultValue;K.removeAttribute(E),K.defaultValue=V,K.value=K.__value=O?V:null}else{var j=K.defaultChecked;K.removeAttribute(E),K.defaultChecked=j,K.checked=!!O&&j}}else t.removeAttribute(R);else t.value=t.__value=D};for(var x in A)w(x);return a}function vy(t,e){var A=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&arguments[4]!==void 0&&arguments[4],n=arguments.length>5&&arguments[5]!==void 0?arguments[5]:_Q,o=(arguments.length>2&&arguments[2]!==void 0?arguments[2]:[]).map(n),r=void 0,s={},a=t.nodeName==="SELECT",c=!1;if(lI(()=>{var I=e(...o.map(l)),C=JGA(t,r,I,A,i);for(var d of(c&&a&&"value"in I&&SG(t,I.value),Object.getOwnPropertySymbols(s)))I[d]||tg(s[d]);for(var B of Object.getOwnPropertySymbols(I)){var E=I[B];B.description!=="@attach"||r&&E===r[B]||(s[B]&&tg(s[B]),s[B]=s0(()=>KGA(t,()=>E))),C[B]=E}r=C}),a){var g=t;rs(()=>{SG(g,r.value,!0),UGA(g)})}c=!0}function aK(t){var e;return(e=t.__attributes)!==null&&e!==void 0?e:t.__attributes={[taA]:t.nodeName.includes("-"),[iaA]:t.namespaceURI==="http://www.w3.org/1999/xhtml"}}var urA=new Map;function naA(t){var e,A=urA.get(t.nodeName);if(A)return A;urA.set(t.nodeName,A=[]);for(var i=t,n=Element.prototype;n!==i;){for(var o in e=usA(i))e[o].set&&A.push(o);i=eK(i)}return A}function Fy(t,e){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e,i=FQ();bGA(t,"input",n=>{var o=n?t.defaultValue:t.value;if(o=eG(t)?tG(o):o,A(o),i&&o!==(o=e())){var r=t.selectionStart,s=t.selectionEnd;t.value=o??"",s!==null&&(t.selectionStart=r,t.selectionEnd=Math.min(s,t.value.length))}}),oA(e)==null&&t.value&&A(eG(t)?tG(t.value):t.value),If(()=>{var n=e();eG(t)&&n===tG(t.value)||(t.type!=="date"||n||t.value)&&n!==t.value&&(t.value=n??"")})}function eG(t){var e=t.type;return e==="number"||e==="range"}function tG(t){return t===""?null:+t}function Ft(t,e,A){var i=t2(t,e);i&&i.set&&(t[e]=A,oK(()=>{t[e]=null}))}function hrA(t,e){return t===e||t?.[i0]===e}function Qo(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,A=arguments.length>2?arguments[2]:void 0;return rs(()=>{var i,n;return If(()=>{i=n,n=[],oA(()=>{t!==A(...n)&&(e(t,...n),i&&hrA(A(...i),t)&&e(null,...i))})}),()=>{A7(()=>{n&&hrA(A(...n),t)&&e(null,...n)})}}),t}function Z0(t){return function(){for(var e=arguments.length,A=new Array(e),i=0;i0&&arguments[0]!==void 0&&arguments[0],e=jn,A=e.l.u;if(A){var i,n=()=>k(e.s);if(t){var o=0,r={},s=_Q(()=>{var a=!1,c=e.s;for(var g in c)c[g]!==r[g]&&(r[g]=c[g],a=!0);return a&&o++,o});n=()=>l(s)}A.b.length&&(i=()=>{frA(e,n),Ry(A.b)},RsA(),gI(2097160,i,!0)),vG(()=>{var a=oA(()=>A.m.map(BGA));return()=>{for(var c of a)typeof c=="function"&&c()}}),A.a.length&&vG(()=>{frA(e,n),Ry(A.a)})}}function frA(t,e){if(t.l.s)for(var A of t.l.s)l(A);e()}function i7(t){var e=$C(0);return function(){return arguments.length===1?(y(e,l(e)+1),arguments[0]):(l(e),t())}}function H3(t,e){var A,i=(A=t.$$events)===null||A===void 0?void 0:A[e.type],n=NQ(i)?i.slice():i==null?[]:[i];for(var o of n)o.call(this,e)}var ly=!1,YGA={get(t,e){if(!t.exclude.includes(e))return l(t.version),e in t.special?t.special[e]():t.props[e]},set(t,e,A){if(!(e in t.special)){var i=qn;try{oI(t.parent_effect),t.special[e]=M({get[e](){return t.props[e]}},e,4)}finally{oI(i)}}return t.special[e](A),crA(t.version),!0},getOwnPropertyDescriptor(t,e){if(!t.exclude.includes(e))return e in t.props?{enumerable:!0,configurable:!0,value:t.props[e]}:void 0},deleteProperty:(t,e)=>(t.exclude.includes(e)||(t.exclude.push(e),crA(t.version)),!0),has:(t,e)=>!t.exclude.includes(e)&&e in t.props,ownKeys:t=>Reflect.ownKeys(t.props).filter(e=>!t.exclude.includes(e))};function Iy(t,e){return new Proxy({props:t,exclude:e,special:{},version:$C(0),parent_effect:qn},YGA)}var TGA={get(t,e){for(var A=t.props.length;A--;){var i=t.props[A];if(U3(i)&&(i=i()),typeof i=="object"&&i!==null&&e in i)return i[e]}},set(t,e,A){for(var i=t.props.length;i--;){var n=t.props[i];U3(n)&&(n=n());var o=t2(n,e);if(o&&o.set)return o.set(A),!0}return!1},getOwnPropertyDescriptor(t,e){for(var A=t.props.length;A--;){var i=t.props[A];if(U3(i)&&(i=i()),typeof i=="object"&&i!==null&&e in i){var n=t2(i,e);return n&&!n.configurable&&(n.configurable=!0),n}}},has(t,e){if(e===i0||e===fsA)return!1;for(var A of t.props)if(U3(A)&&(A=A()),A!=null&&e in A)return!0;return!1},ownKeys(t){var e=[];for(var A of t.props)if(U3(A)&&(A=A()),A){for(var i in A)e.includes(i)||e.push(i);for(var n of Object.getOwnPropertySymbols(A))e.includes(n)||e.push(n)}return e}};function AI(){for(var t=arguments.length,e=new Array(t),A=0;A(g&&(g=!1,c=a?oA(i):i),c);if(s){var C,d,B=i0 in t||fsA in t;n=(C=(d=t2(t,e))===null||d===void 0?void 0:d.set)!==null&&C!==void 0?C:B&&e in t?D=>t[e]=D:void 0}var E,u=!1;if(s?[o,u]=function(D){var G=ly;try{return ly=!1,[D(),ly]}finally{ly=G}}(()=>t[e]):o=t[e],o===void 0&&i!==void 0&&(o=I(),n&&(r&&function(){throw new Error("https://svelte.dev/e/props_invalid_value")}(),n(o))),E=r?()=>{var D=t[e];return D===void 0?I():(g=!0,D)}:()=>{var D=t[e];return D!==void 0&&(c=void 0),D===void 0?c:D},r&&!(4&A))return E;if(n){var h=t.$$legacy;return function(D,G){return arguments.length>0?(r&&G&&!h&&!u||n(G?E():D),D):E()}}var w=!1,x=(1&A?_Q:ZA)(()=>(w=!1,E()));s&&l(x);var R=qn;return function(D,G){if(arguments.length>0){var J=G?l(x):r&&s?EQ(D):D;return y(x,J),w=!0,c!==void 0&&(c=J),D}return iI&&w||(R.f&tK)!==0?x.v:l(x)}}function xr(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(i){var n=function(o){try{if(typeof window<"u"&&window.localStorage!==void 0)return window.localStorage[o]}catch{}}("debug");return n!=null&&n.endsWith("*")?i.startsWith(n.slice(0,-1)):i===n}(t);if(!e)return HGA;var A=function(i){for(var n=0,o=0;o9466848e5&&isFinite(t)&&Math.floor(t)===t&&!isNaN(new Date(t).valueOf());if(typeof t=="bigint")return RG(Number(t));try{var e=t&&t.valueOf();if(e!==t)return RG(e)}catch{return!1}return!1}function oaA(t){(Cy=Cy||window.document.createElement("div")).style.color="",Cy.style.color=t;var e=Cy.style.color;return e!==""?e.replace(/\s+/g,"").toLowerCase():void 0}var Cy=void 0;function jGA(t){return typeof t=="string"&&t.length<99&&!!oaA(t)}function gK(t,e){if(typeof t=="number"||typeof t=="string"||typeof t=="boolean"||t===void 0)return typeof t;if(typeof t=="bigint")return"number";if(t===null)return"null";if(Array.isArray(t))return"array";if(nn(t))return"object";var A=e.stringify(t);return A&&cK(A)?"number":A==="true"||A==="false"?"boolean":A==="null"?"null":"unknown"}var qGA=/^https?:\/\/\S+$/;function n7(t){return typeof t=="string"&&qGA.test(t)}function GQ(t,e){if(t==="")return"";var A=t.trim();return A==="null"?null:A==="true"||A!=="false"&&(cK(A)?e.parse(A):t)}var VGA=[];function prA(t,e){if(t.length!==e.length)return!1;for(var A=0;A1&&arguments[1]!==void 0&&arguments[1],A={};if(!Array.isArray(t))throw new TypeError("Array expected");function i(r,s){(!Array.isArray(r)&&!nn(r)||e&&s.length>0)&&(A[Ct(s)]=!0),nn(r)&&Object.keys(r).forEach(a=>{i(r[a],s.concat(a))})}for(var n=Math.min(t.length,1e4),o=0;oe?t.slice(0,e):t}function DrA(t){return pe({},t)}function wrA(t){return Object.values(t)}function yrA(t,e,A,i){var n=t.slice(0),o=n.splice(e,A);return n.splice.apply(n,[e+i,0,...o]),n}function ZGA(t,e,A){return t.slice(0,e).concat(A).concat(t.slice(e))}function Bf(t,e){try{return e.parse(t)}catch{return e.parse(Uc(t))}}function saA(t,e){try{return Bf(t,e)}catch{return}}function Ef(t,e){t=t.replace(caA,"");try{return e(t)}catch{}try{return e("{"+t+"}")}catch{}try{return e("["+t+"]")}catch{}throw new Error("Failed to parse partial JSON")}function aaA(t){t=t.replace(caA,"");try{return Uc(t)}catch{}try{var e=Uc("["+t+"]");return e.substring(1,e.length-1)}catch{}try{var A=Uc("{"+t+"}");return A.substring(1,A.length-1)}catch{}throw new Error("Failed to repair partial JSON")}var caA=/,\s*$/;function MQ(t,e){var A=MrA.exec(e);if(A){var i=ss(A[2]),n=function(d,B){for(var E=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:d.length,h=0,w=E;w"line ".concat(n+1," column ").concat(o+1))}}var r=XGA.exec(e),s=r?ss(r[1]):void 0,a=s!==void 0?s-1:void 0,c=$GA.exec(e),g=c?ss(c[1]):void 0,I=g!==void 0?g-1:void 0,C=a!==void 0&&I!==void 0?function(d,B,E){for(var u=d.indexOf(` +`,i)-1;return{position:i,line:n,column:o,message:e.replace(MrA,()=>"line ".concat(n+1," column ").concat(o+1))}}var r=AKA.exec(e),s=r?ss(r[1]):void 0,a=s!==void 0?s-1:void 0,c=eKA.exec(e),g=c?ss(c[1]):void 0,I=g!==void 0?g-1:void 0,C=a!==void 0&&I!==void 0?function(d,B,E){for(var u=d.indexOf(` `),h=1;h1&&arguments[1]!==void 0?arguments[1]:void 0,A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:JSON;return W3(t)?t:{text:A.stringify(t.json,null,e)}}function vrA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:JSON;return X3(t)?t:{json:e.parse(t.text)}}function xG(t,e,A){return VGA(t,e,A).text}function ZGA(t,e){return WGA(t,e)>e}function WGA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1/0;if(W3(t))return t.text.length;var A=t.json,i=0;return function n(o){if(Array.isArray(o)){if((i+=o.length-1+2)>e)return;for(var r=0;re)return}else if(nn(o)){var s=Object.keys(o);i+=2+s.length+(s.length-1);for(var a=0;alaA(daA(String(t))),unescapeValue:t=>BaA(IaA(t))},tKA={escapeValue:t=>daA(String(t)),unescapeValue:t=>BaA(t)},iKA={escapeValue:t=>laA(String(t)),unescapeValue:t=>IaA(t)},nKA={escapeValue:t=>String(t),unescapeValue:t=>t};function laA(t){return t.replace(/[^\x20-\x7F]/g,e=>{var A;return e==="\b"||e==="\f"||e===` -`||e==="\r"||e===" "?e:"\\u"+("000"+((A=e.codePointAt(0))===null||A===void 0?void 0:A.toString(16))).slice(-4)})}function IaA(t){return t.replace(/\\u[a-fA-F0-9]{4}/g,e=>{try{var A=JSON.parse('"'+e+'"');return CaA[A]||A}catch{return e}})}var CaA={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},oKA={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":` -`,"\\r":"\r","\\t":" "};function daA(t){return t.replace(/["\b\f\n\r\t\\]/g,e=>CaA[e]||e)}function BaA(t){return t.replace(/\\["bfnrt\\]/g,e=>oKA[e]||e)}function bQ(t){return typeof t!="string"?String(t):t.endsWith(` +`,u+1),h++;return u!==-1?u+E+1:void 0}(t,a,I):void 0;return{position:C,line:a,column:I,message:e.replace(/^JSON.parse: /,"").replace(/ of the JSON data$/,"")}}function iG(t,e){try{var A=AK.default.parse(t),i=Ct(e),n=A.pointers[i];if(n)return{path:e,line:n.key?n.key.line:n.value?n.value.line:0,column:n.key?n.key.column:n.value?n.value.column:0,from:n.key?n.key.pos:n.value?n.value.pos:0,to:n.keyEnd?n.keyEnd.pos:n.valueEnd?n.valueEnd.pos:0}}catch(o){console.error(o)}return{path:e,line:0,column:0,from:0,to:0}}function nG(t){return nn(t)?t.json!==void 0?t.text!==void 0?'Content must contain either a property "json" or a property "text" but not both':void 0:t.text===void 0?'Content must contain either a property "json" or a property "text"':typeof t.text!="string"?'Content "text" property must be a string containing a JSON document. Did you mean to use the "json" property instead?':void 0:"Content must be an object"}function W3(t){return nn(t)&&typeof t.text=="string"}function X3(t){return nn(t)&&t.json!==void 0}function WGA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:JSON;return W3(t)?t:{text:A.stringify(t.json,null,e)}}function vrA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:JSON;return X3(t)?t:{json:e.parse(t.text)}}function xG(t,e,A){return WGA(t,e,A).text}function XGA(t,e){return $GA(t,e)>e}function $GA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1/0;if(W3(t))return t.text.length;var A=t.json,i=0;return function n(o){if(Array.isArray(o)){if((i+=o.length-1+2)>e)return;for(var r=0;re)return}else if(nn(o)){var s=Object.keys(o);i+=2+s.length+(s.length-1);for(var a=0;alaA(daA(String(t))),unescapeValue:t=>BaA(IaA(t))},nKA={escapeValue:t=>daA(String(t)),unescapeValue:t=>BaA(t)},oKA={escapeValue:t=>laA(String(t)),unescapeValue:t=>IaA(t)},rKA={escapeValue:t=>String(t),unescapeValue:t=>t};function laA(t){return t.replace(/[^\x20-\x7F]/g,e=>{var A;return e==="\b"||e==="\f"||e===` +`||e==="\r"||e===" "?e:"\\u"+("000"+((A=e.codePointAt(0))===null||A===void 0?void 0:A.toString(16))).slice(-4)})}function IaA(t){return t.replace(/\\u[a-fA-F0-9]{4}/g,e=>{try{var A=JSON.parse('"'+e+'"');return CaA[A]||A}catch{return e}})}var CaA={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},sKA={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":` +`,"\\r":"\r","\\t":" "};function daA(t){return t.replace(/["\b\f\n\r\t\\]/g,e=>CaA[e]||e)}function BaA(t){return t.replace(/\\["bfnrt\\]/g,e=>sKA[e]||e)}function bQ(t){return typeof t!="string"?String(t):t.endsWith(` `)?t+` -`:t}function EaA(t,e){return KQ(t,A=>A.nodeName.toUpperCase()===e.toUpperCase())}function Z1(t,e,A){return KQ(t,i=>function(n,o,r){return typeof n.getAttribute=="function"&&n.getAttribute(o)===r}(i,e,A))}function KQ(t,e){return!!IK(t,e)}function IK(t,e){for(var A=t;A&&!e(A);)A=A.parentNode;return A}function Qf(t){var e,A;return(e=t==null||(A=t.ownerDocument)===null||A===void 0?void 0:A.defaultView)!==null&&e!==void 0?e:void 0}function CK(t){var e=Qf(t),A=e?.document.activeElement;return!!A&&KQ(A,i=>i===t)}function QaA(t,e){return IK(t,A=>A.nodeName===e)}function oG(t){return Z1(t,"data-type","selectable-key")?Ln.key:Z1(t,"data-type","selectable-value")?Ln.value:Z1(t,"data-type","insert-selection-area-inside")?Ln.inside:Z1(t,"data-type","insert-selection-area-after")?Ln.after:Ln.multi}function My(t){return encodeURIComponent(It(t))}function uaA(t){var e,A=IK(t,n=>!(n==null||!n.hasAttribute)&&n.hasAttribute("data-path")),i=(e=A?.getAttribute("data-path"))!==null&&e!==void 0?e:void 0;return i?xs(decodeURIComponent(i)):void 0}function rKA(t){var{allElements:e,currentElement:A,direction:i,hasPrio:n=()=>!0,margin:o=10}=t,r=OR(e.filter(function(h){var w=h.getBoundingClientRect();return w.width>0&&w.height>0}),a),s=a(A);function a(h){var w=h.getBoundingClientRect();return{x:w.left+w.width/2,y:w.top+w.height/2,rect:w,element:h}}function c(h,w){var x=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,R=h.x-w.x,D=(h.y-w.y)*x;return Math.sqrt(R*R+D*D)}var g=h=>c(h,s);if(i==="Left"||i==="Right"){var I=i==="Left"?r.filter(h=>{return w=s,h.rect.left+o{return w=s,h.rect.right>w.rect.right+o;var w}),C=I.filter(h=>{return w=h,x=s,Math.abs(w.y-x.y)c(h,s,10));return d?.element}if(i==="Up"||i==="Down"){var B=i==="Up"?r.filter(h=>{return w=s,h.y+o{return w=s,h.y>w.y+o;var w}),E=B.filter(h=>n(h.element)),u=QE(E,g)||QE(B,g);return u?.element}}function dK(){var t,e,A,i;return typeof navigator<"u"&&(t=(e=(A=navigator)===null||A===void 0||(A=A.platform)===null||A===void 0?void 0:A.toUpperCase().includes("MAC"))!==null&&e!==void 0?e:(i=navigator)===null||i===void 0||(i=i.userAgentData)===null||i===void 0||(i=i.platform)===null||i===void 0?void 0:i.toUpperCase().includes("MAC"))!==null&&t!==void 0&&t}function s2(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"+",A=[];BK(t,arguments.length>2&&arguments[2]!==void 0?arguments[2]:dK)&&A.push("Ctrl"),t.altKey&&A.push("Alt"),t.shiftKey&&A.push("Shift");var i=t.key.length===1?t.key.toUpperCase():t.key;return i in sKA||A.push(i),A.join(e)}function BK(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:dK;return t.ctrlKey||t.metaKey&&e()}var sKA={Ctrl:!0,Command:!0,Control:!0,Alt:!0,Option:!0,Shift:!0};function Ut(t,e){e===void 0&&(e={});var A=e.insertAt;if(t&&typeof document<"u"){var i=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",A==="top"&&i.firstChild?i.insertBefore(n,i.firstChild):i.appendChild(n),n.styleSheet?n.styleSheet.cssText=t:n.appendChild(document.createTextNode(t))}}Ut(`.jse-absolute-popup.svelte-1r8q3m8 { +`:t}function EaA(t,e){return KQ(t,A=>A.nodeName.toUpperCase()===e.toUpperCase())}function Z1(t,e,A){return KQ(t,i=>function(n,o,r){return typeof n.getAttribute=="function"&&n.getAttribute(o)===r}(i,e,A))}function KQ(t,e){return!!IK(t,e)}function IK(t,e){for(var A=t;A&&!e(A);)A=A.parentNode;return A}function Qf(t){var e,A;return(e=t==null||(A=t.ownerDocument)===null||A===void 0?void 0:A.defaultView)!==null&&e!==void 0?e:void 0}function CK(t){var e=Qf(t),A=e?.document.activeElement;return!!A&&KQ(A,i=>i===t)}function QaA(t,e){return IK(t,A=>A.nodeName===e)}function oG(t){return Z1(t,"data-type","selectable-key")?Ln.key:Z1(t,"data-type","selectable-value")?Ln.value:Z1(t,"data-type","insert-selection-area-inside")?Ln.inside:Z1(t,"data-type","insert-selection-area-after")?Ln.after:Ln.multi}function My(t){return encodeURIComponent(Ct(t))}function uaA(t){var e,A=IK(t,n=>!(n==null||!n.hasAttribute)&&n.hasAttribute("data-path")),i=(e=A?.getAttribute("data-path"))!==null&&e!==void 0?e:void 0;return i?xs(decodeURIComponent(i)):void 0}function aKA(t){var{allElements:e,currentElement:A,direction:i,hasPrio:n=()=>!0,margin:o=10}=t,r=OR(e.filter(function(h){var w=h.getBoundingClientRect();return w.width>0&&w.height>0}),a),s=a(A);function a(h){var w=h.getBoundingClientRect();return{x:w.left+w.width/2,y:w.top+w.height/2,rect:w,element:h}}function c(h,w){var x=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,R=h.x-w.x,D=(h.y-w.y)*x;return Math.sqrt(R*R+D*D)}var g=h=>c(h,s);if(i==="Left"||i==="Right"){var I=i==="Left"?r.filter(h=>{return w=s,h.rect.left+o{return w=s,h.rect.right>w.rect.right+o;var w}),C=I.filter(h=>{return w=h,x=s,Math.abs(w.y-x.y)c(h,s,10));return d?.element}if(i==="Up"||i==="Down"){var B=i==="Up"?r.filter(h=>{return w=s,h.y+o{return w=s,h.y>w.y+o;var w}),E=B.filter(h=>n(h.element)),u=QE(E,g)||QE(B,g);return u?.element}}function dK(){var t,e,A,i;return typeof navigator<"u"&&(t=(e=(A=navigator)===null||A===void 0||(A=A.platform)===null||A===void 0?void 0:A.toUpperCase().includes("MAC"))!==null&&e!==void 0?e:(i=navigator)===null||i===void 0||(i=i.userAgentData)===null||i===void 0||(i=i.platform)===null||i===void 0?void 0:i.toUpperCase().includes("MAC"))!==null&&t!==void 0&&t}function s2(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"+",A=[];BK(t,arguments.length>2&&arguments[2]!==void 0?arguments[2]:dK)&&A.push("Ctrl"),t.altKey&&A.push("Alt"),t.shiftKey&&A.push("Shift");var i=t.key.length===1?t.key.toUpperCase():t.key;return i in cKA||A.push(i),A.join(e)}function BK(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:dK;return t.ctrlKey||t.metaKey&&e()}var cKA={Ctrl:!0,Command:!0,Control:!0,Alt:!0,Option:!0,Shift:!0};function Ut(t,e){e===void 0&&(e={});var A=e.insertAt;if(t&&typeof document<"u"){var i=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",A==="top"&&i.firstChild?i.insertBefore(n,i.firstChild):i.appendChild(n),n.styleSheet?n.styleSheet.cssText=t:n.appendChild(document.createTextNode(t))}}Ut(`.jse-absolute-popup.svelte-1r8q3m8 { position: relative; left: 0; top: 0; @@ -82,7 +82,7 @@ ${B}}`])},g=d=>d.map(B=>`.${I(B)}`).join(""),I=d=>kvA.test(d)?d:JSON.stringify(d } .jse-absolute-popup.svelte-1r8q3m8 .jse-absolute-popup-content:where(.svelte-1r8q3m8) { position: absolute; -}`);var aKA=vA('
        '),cKA=vA('
        ');function gKA(t,e){ft(e,!1);var A=M(e,"popup",8),i=M(e,"closeAbsolutePopup",8),n=$(),o=$();function r(I){A().options&&A().options.closeOnOuterClick&&!KQ(I.target,C=>C===l(n))&&i()(A().id)}function s(I){s2(I)==="Escape"&&(I.preventDefault(),I.stopPropagation(),i()(A().id))}ws(function(){l(o)&&l(o).focus()}),qt();var a=cKA();ce("mousedown",i2,function(I){r(I)},!0),ce("keydown",i2,s,!0),ce("wheel",i2,function(I){r(I)},!0);var c=W(a),g=I=>{var C=aKA(),d=W(C);Qo(d,B=>y(o,B),()=>l(o)),AaA(CA(d,2),()=>A().component,(B,E)=>{E(B,AI(()=>A().props))}),we(B=>eg(C,B),[()=>(l(n),k(A()),oA(()=>function(B,E){var u=B.getBoundingClientRect(),{left:h,top:w,positionAbove:x,positionLeft:R}=function(){if(E.anchor){var{anchor:D,width:G=0,height:J=0,offsetTop:z=0,offsetLeft:K=0,position:O}=E,{left:V,top:j,bottom:dA,right:fA}=D.getBoundingClientRect(),EA=O==="top"||j+J>window.innerHeight&&j>J,IA=O==="left"||V+G>window.innerWidth&&V>G;return{left:IA?fA-K:V+K,top:EA?j-z:dA+z,positionAbove:EA,positionLeft:IA}}if(typeof E.left=="number"&&typeof E.top=="number"){var{left:SA,top:nA,width:lA=0,height:wA=0}=E;return{left:SA,top:nA,positionAbove:nA+wA>window.innerHeight&&nA>wA,positionLeft:SA+lA>window.innerWidth&&SA>lA}}throw new Error('Invalid config: pass either "left" and "top", or pass "anchor"')}();return(x?"bottom: ".concat(u.top-w,"px;"):"top: ".concat(w-u.top,"px;"))+(R?"right: ".concat(u.left-h,"px;"):"left: ".concat(h-u.left,"px;"))}(l(n),A().options)))],ZA),iA(I,C)};GA(c,I=>{l(n)&&I(g)}),Qo(a,I=>y(n,I),()=>l(n)),ce("mousedown",a,function(I){I.stopPropagation()}),ce("keydown",a,s),iA(t,a),mt()}var lKA=vA(" ",1);function NG(t,e){ft(e,!1);var A,i,n=xr("jsoneditor:AbsolutePopup"),o=$([],!0);function r(c){var g=l(o).findIndex(C=>C.id===c);if(g!==-1){var I=l(o)[g];I.options.onClose&&I.options.onClose(),y(o,l(o).filter(C=>C.id!==c))}}A="absolute-popup",i={openAbsolutePopup:function(c,g,I){n("open...",g,I);var C={id:QQ(),component:c,props:g||{},options:I||{}};return y(o,[...l(o),C]),C.id},closeAbsolutePopup:r},wsA().set(A,i),pA(()=>l(o),()=>{n("popups",l(o))}),ln(),qt(!0);var s=lKA(),a=Mt(s);jo(a,1,()=>l(o),cr,(c,g)=>{gKA(c,{get popup(){return l(g)},closeAbsolutePopup:r})}),Po(CA(a,2),e,"default",{},null),iA(t,s),mt()}function uf(t,e){for(var A=new Set(e),i=t.replace(/ \(copy( \d+)?\)$/,""),n=t,o=1;A.has(n);){var r="copy"+(o>1?" "+o:"");n="".concat(i," (").concat(r,")"),o++}return n}function X0(t,e){var A=e-3;return t.length>e?t.substring(0,A)+"...":t}function IKA(t){if(t==="")return"";var e=t.toLowerCase();if(e==="null")return null;if(e==="true")return!0;if(e==="false")return!1;if(e!=="undefined"){var A=Number(t),i=parseFloat(t);return isNaN(A)||isNaN(i)?t:A}}var CKA={id:"jsonquery",name:"JSONQuery",description:` +}`);var gKA=vA('
        '),lKA=vA('
        ');function IKA(t,e){ft(e,!1);var A=M(e,"popup",8),i=M(e,"closeAbsolutePopup",8),n=$(),o=$();function r(I){A().options&&A().options.closeOnOuterClick&&!KQ(I.target,C=>C===l(n))&&i()(A().id)}function s(I){s2(I)==="Escape"&&(I.preventDefault(),I.stopPropagation(),i()(A().id))}ws(function(){l(o)&&l(o).focus()}),qt();var a=lKA();ce("mousedown",i2,function(I){r(I)},!0),ce("keydown",i2,s,!0),ce("wheel",i2,function(I){r(I)},!0);var c=W(a),g=I=>{var C=gKA(),d=W(C);Qo(d,B=>y(o,B),()=>l(o)),AaA(CA(d,2),()=>A().component,(B,E)=>{E(B,AI(()=>A().props))}),we(B=>eg(C,B),[()=>(l(n),k(A()),oA(()=>function(B,E){var u=B.getBoundingClientRect(),{left:h,top:w,positionAbove:x,positionLeft:R}=function(){if(E.anchor){var{anchor:D,width:G=0,height:J=0,offsetTop:z=0,offsetLeft:K=0,position:O}=E,{left:V,top:j,bottom:dA,right:fA}=D.getBoundingClientRect(),EA=O==="top"||j+J>window.innerHeight&&j>J,IA=O==="left"||V+G>window.innerWidth&&V>G;return{left:IA?fA-K:V+K,top:EA?j-z:dA+z,positionAbove:EA,positionLeft:IA}}if(typeof E.left=="number"&&typeof E.top=="number"){var{left:SA,top:nA,width:lA=0,height:wA=0}=E;return{left:SA,top:nA,positionAbove:nA+wA>window.innerHeight&&nA>wA,positionLeft:SA+lA>window.innerWidth&&SA>lA}}throw new Error('Invalid config: pass either "left" and "top", or pass "anchor"')}();return(x?"bottom: ".concat(u.top-w,"px;"):"top: ".concat(w-u.top,"px;"))+(R?"right: ".concat(u.left-h,"px;"):"left: ".concat(h-u.left,"px;"))}(l(n),A().options)))],ZA),iA(I,C)};GA(c,I=>{l(n)&&I(g)}),Qo(a,I=>y(n,I),()=>l(n)),ce("mousedown",a,function(I){I.stopPropagation()}),ce("keydown",a,s),iA(t,a),mt()}var CKA=vA(" ",1);function NG(t,e){ft(e,!1);var A,i,n=xr("jsoneditor:AbsolutePopup"),o=$([],!0);function r(c){var g=l(o).findIndex(C=>C.id===c);if(g!==-1){var I=l(o)[g];I.options.onClose&&I.options.onClose(),y(o,l(o).filter(C=>C.id!==c))}}A="absolute-popup",i={openAbsolutePopup:function(c,g,I){n("open...",g,I);var C={id:QQ(),component:c,props:g||{},options:I||{}};return y(o,[...l(o),C]),C.id},closeAbsolutePopup:r},wsA().set(A,i),pA(()=>l(o),()=>{n("popups",l(o))}),ln(),qt(!0);var s=CKA(),a=Mt(s);jo(a,1,()=>l(o),cr,(c,g)=>{IKA(c,{get popup(){return l(g)},closeAbsolutePopup:r})}),Po(CA(a,2),e,"default",{},null),iA(t,s),mt()}function uf(t,e){for(var A=new Set(e),i=t.replace(/ \(copy( \d+)?\)$/,""),n=t,o=1;A.has(n);){var r="copy"+(o>1?" "+o:"");n="".concat(i," (").concat(r,")"),o++}return n}function X0(t,e){var A=e-3;return t.length>e?t.substring(0,A)+"...":t}function dKA(t){if(t==="")return"";var e=t.toLowerCase();if(e==="null")return null;if(e==="true")return!0;if(e==="false")return!1;if(e!=="undefined"){var A=Number(t),i=parseFloat(t);return isNaN(A)||isNaN(i)?t:A}}var BKA={id:"jsonquery",name:"JSONQuery",description:`

        Enter a JSON Query function to filter, sort, or transform the data. @@ -90,7 +90,7 @@ ${B}}`])},g=d=>d.map(B=>`.${I(B)}`).join(""),I=d=>kvA.test(d)?d:JSON.stringify(d sort, pick, groupBy, uniq, etcetera. Example query: filter(.age >= 18)

        -`,createQuery:function(t,e){var{filter:A,sort:i,projection:n}=e,o=[];A&&A.path&&A.relation&&A.value&&o.push(["filter",[(r=A.relation,$R("1 ".concat(r," 1"))[0]),dy(A.path),IKA(A.value)]]);var r;return i&&i.path&&i.direction&&o.push(["sort",dy(i.path),i.direction==="desc"?"desc":"asc"]),n&&n.paths&&(n.paths.length>1?o.push(["pick",...n.paths.map(dy)]):o.push(["map",dy(n.paths[0])])),aX(["pipe",...o])},executeQuery:function(t,e,A){var i=gaA(A,JSON)?t:function(n){var o=A.stringify(n);return o!==void 0?JSON.parse(o):void 0}(t);return e.trim()!==""?cX(i,e):i}};function dy(t){return["get",...t]}var dKA=II("");function BKA(t,e){ft(e,!1);var A=870711,i=$(""),n=M(e,"data",8);function o(s){if(!s||!s.raw)return"";var a=s.raw,c={};return a=a.replace(/\s(?:xml:)?id=["']?([^"')\s]+)/g,(g,I)=>{var C="fa-".concat((A+=1).toString(16));return c[I]=C,' id="'.concat(C,'"')}),a=a.replace(/#(?:([^'")\s]+)|xpointer\(id\((['"]?)([^')]+)\2\)\))/g,(g,I,C,d)=>{var B=I||d;return B&&c[B]?"#".concat(c[B]):g}),a}pA(()=>k(n()),()=>{y(i,o(n()))}),ln();var r=dKA();$sA(W(r),()=>l(i),!0),iA(t,r),mt()}Ut(` +`,createQuery:function(t,e){var{filter:A,sort:i,projection:n}=e,o=[];A&&A.path&&A.relation&&A.value&&o.push(["filter",[(r=A.relation,$R("1 ".concat(r," 1"))[0]),dy(A.path),dKA(A.value)]]);var r;return i&&i.path&&i.direction&&o.push(["sort",dy(i.path),i.direction==="desc"?"desc":"asc"]),n&&n.paths&&(n.paths.length>1?o.push(["pick",...n.paths.map(dy)]):o.push(["map",dy(n.paths[0])])),aX(["pipe",...o])},executeQuery:function(t,e,A){var i=gaA(A,JSON)?t:function(n){var o=A.stringify(n);return o!==void 0?JSON.parse(o):void 0}(t);return e.trim()!==""?cX(i,e):i}};function dy(t){return["get",...t]}var EKA=II("");function QKA(t,e){ft(e,!1);var A=870711,i=$(""),n=M(e,"data",8);function o(s){if(!s||!s.raw)return"";var a=s.raw,c={};return a=a.replace(/\s(?:xml:)?id=["']?([^"')\s]+)/g,(g,I)=>{var C="fa-".concat((A+=1).toString(16));return c[I]=C,' id="'.concat(C,'"')}),a=a.replace(/#(?:([^'")\s]+)|xpointer\(id\((['"]?)([^')]+)\2\)\))/g,(g,I,C,d)=>{var B=I||d;return B&&c[B]?"#".concat(c[B]):g}),a}pA(()=>k(n()),()=>{y(i,o(n()))}),ln();var r=EKA();$sA(W(r),()=>l(i),!0),iA(t,r),mt()}Ut(` .fa-icon.svelte-1mc5hvj { display: inline-block; fill: currentColor; @@ -118,7 +118,7 @@ ${B}}`])},g=d=>d.map(B=>`.${I(B)}`).join(""),I=d=>kvA.test(d)?d:JSON.stringify(d transform: rotate(360deg); } } -`);var EKA=II(""),QKA=II(""),uKA=II(""),hKA=II("",1);function Ui(t,e){var A=Iy(e,["children","$$slots","$$events","$$legacy"]),i=Iy(A,["class","data","scale","spin","inverse","pulse","flip","label","style"]);ft(e,!1);var n=M(e,"class",8,""),o=M(e,"data",8),r=$(),s=M(e,"scale",8,1),a=M(e,"spin",8,!1),c=M(e,"inverse",8,!1),g=M(e,"pulse",8,!1),I=M(e,"flip",8,void 0),C=M(e,"label",8,""),d=M(e,"style",8,""),B=$(10),E=$(10),u=$(),h=$();function w(){var R=1;return s()!==void 0&&(R=Number(s())),isNaN(R)||R<=0?(console.warn('Invalid prop: prop "scale" should be a number over 0.'),1):1*R}function x(){return l(r)?Math.max(l(r).width,l(r).height)/16:1}pA(()=>(k(o()),k(d()),k(s())),()=>{y(r,function(R){var D;if(R){if(!("definition"in R)){if("iconName"in R&&"icon"in R){R.iconName;var[G,J,,,z]=R.icon;D={width:G,height:J,paths:(Array.isArray(z)?z:[z]).map(K=>({d:K}))}}else D=R[Object.keys(R)[0]];return D}console.error("`import faIconName from '@fortawesome/package-name/faIconName` not supported - Please use `import { faIconName } from '@fortawesome/package-name/faIconName'` instead")}}(o())),d(),s(),y(B,l(r)?l(r).width/x()*w():0),y(E,l(r)?l(r).height/x()*w():0),y(u,function(){var R="";d()!==null&&(R+=d());var D=w();return D===1?R.length===0?"":R:(R===""||R.endsWith(";")||(R+="; "),"".concat(R,"font-size: ").concat(D,"em"))}()),y(h,l(r)?"0 0 ".concat(l(r).width," ").concat(l(r).height):"0 0 ".concat(l(B)," ").concat(l(E)))}),ln(),qt(),function(R,D){var G=Iy(D,["children","$$slots","$$events","$$legacy"]),J=Iy(G,["class","width","height","box","spin","inverse","pulse","flip","style","label"]),z=M(D,"class",8,""),K=M(D,"width",8),O=M(D,"height",8),V=M(D,"box",8,"0 0 0 0"),j=M(D,"spin",8,!1),dA=M(D,"inverse",8,!1),fA=M(D,"pulse",8,!1),EA=M(D,"flip",8,"none"),IA=M(D,"style",8,""),SA=M(D,"label",8,""),nA=EKA();vy(nA,lA=>{var wA;return pe(pe({version:"1.1",class:"fa-icon ".concat((wA=z())!==null&&wA!==void 0?wA:""),width:K(),height:O(),"aria-label":SA(),role:SA()?"img":"presentation",viewBox:V(),style:IA()},J),{},{[dQ]:lA})},[()=>({"fa-spin":j(),"fa-pulse":fA(),"fa-inverse":dA(),"fa-flip-horizontal":EA()==="horizontal","fa-flip-vertical":EA()==="vertical"})],"svelte-1mc5hvj"),Po(W(nA),D,"default",{},null),iA(R,nA)}(t,AI({get label(){return C()},get width(){return l(B)},get height(){return l(E)},get box(){return l(h)},get style(){return l(u)},get spin(){return a()},get flip(){return I()},get inverse(){return c()},get pulse(){return g()},get class(){return n()}},()=>i,{children:(R,D)=>{var G=_o();Po(Mt(G),e,"default",{},J=>{var z=hKA(),K=Mt(z);jo(K,1,()=>(l(r),oA(()=>{var dA;return((dA=l(r))===null||dA===void 0?void 0:dA.paths)||[]})),cr,(dA,fA)=>{var EA=QKA();vy(EA,()=>pe({},l(fA))),iA(dA,EA)});var O=CA(K);jo(O,1,()=>(l(r),oA(()=>{var dA;return((dA=l(r))===null||dA===void 0?void 0:dA.polygons)||[]})),cr,(dA,fA)=>{var EA=uKA();vy(EA,()=>pe({},l(fA))),iA(dA,EA)});var V=CA(O),j=dA=>{BKA(dA,{get data(){return l(r)},set data(fA){y(r,fA)},$$legacy:!0})};GA(V,dA=>{l(r),oA(()=>{var fA;return(fA=l(r))===null||fA===void 0?void 0:fA.raw})&&dA(j)}),iA(J,z)}),iA(R,G)},$$slots:{default:!0}})),mt()}Ut(`/* over all fonts, sizes, and colors */ +`);var uKA=II(""),hKA=II(""),fKA=II(""),mKA=II("",1);function Ui(t,e){var A=Iy(e,["children","$$slots","$$events","$$legacy"]),i=Iy(A,["class","data","scale","spin","inverse","pulse","flip","label","style"]);ft(e,!1);var n=M(e,"class",8,""),o=M(e,"data",8),r=$(),s=M(e,"scale",8,1),a=M(e,"spin",8,!1),c=M(e,"inverse",8,!1),g=M(e,"pulse",8,!1),I=M(e,"flip",8,void 0),C=M(e,"label",8,""),d=M(e,"style",8,""),B=$(10),E=$(10),u=$(),h=$();function w(){var R=1;return s()!==void 0&&(R=Number(s())),isNaN(R)||R<=0?(console.warn('Invalid prop: prop "scale" should be a number over 0.'),1):1*R}function x(){return l(r)?Math.max(l(r).width,l(r).height)/16:1}pA(()=>(k(o()),k(d()),k(s())),()=>{y(r,function(R){var D;if(R){if(!("definition"in R)){if("iconName"in R&&"icon"in R){R.iconName;var[G,J,,,z]=R.icon;D={width:G,height:J,paths:(Array.isArray(z)?z:[z]).map(K=>({d:K}))}}else D=R[Object.keys(R)[0]];return D}console.error("`import faIconName from '@fortawesome/package-name/faIconName` not supported - Please use `import { faIconName } from '@fortawesome/package-name/faIconName'` instead")}}(o())),d(),s(),y(B,l(r)?l(r).width/x()*w():0),y(E,l(r)?l(r).height/x()*w():0),y(u,function(){var R="";d()!==null&&(R+=d());var D=w();return D===1?R.length===0?"":R:(R===""||R.endsWith(";")||(R+="; "),"".concat(R,"font-size: ").concat(D,"em"))}()),y(h,l(r)?"0 0 ".concat(l(r).width," ").concat(l(r).height):"0 0 ".concat(l(B)," ").concat(l(E)))}),ln(),qt(),function(R,D){var G=Iy(D,["children","$$slots","$$events","$$legacy"]),J=Iy(G,["class","width","height","box","spin","inverse","pulse","flip","style","label"]),z=M(D,"class",8,""),K=M(D,"width",8),O=M(D,"height",8),V=M(D,"box",8,"0 0 0 0"),j=M(D,"spin",8,!1),dA=M(D,"inverse",8,!1),fA=M(D,"pulse",8,!1),EA=M(D,"flip",8,"none"),IA=M(D,"style",8,""),SA=M(D,"label",8,""),nA=uKA();vy(nA,lA=>{var wA;return pe(pe({version:"1.1",class:"fa-icon ".concat((wA=z())!==null&&wA!==void 0?wA:""),width:K(),height:O(),"aria-label":SA(),role:SA()?"img":"presentation",viewBox:V(),style:IA()},J),{},{[dQ]:lA})},[()=>({"fa-spin":j(),"fa-pulse":fA(),"fa-inverse":dA(),"fa-flip-horizontal":EA()==="horizontal","fa-flip-vertical":EA()==="vertical"})],"svelte-1mc5hvj"),Po(W(nA),D,"default",{},null),iA(R,nA)}(t,AI({get label(){return C()},get width(){return l(B)},get height(){return l(E)},get box(){return l(h)},get style(){return l(u)},get spin(){return a()},get flip(){return I()},get inverse(){return c()},get pulse(){return g()},get class(){return n()}},()=>i,{children:(R,D)=>{var G=_o();Po(Mt(G),e,"default",{},J=>{var z=mKA(),K=Mt(z);jo(K,1,()=>(l(r),oA(()=>{var dA;return((dA=l(r))===null||dA===void 0?void 0:dA.paths)||[]})),cr,(dA,fA)=>{var EA=hKA();vy(EA,()=>pe({},l(fA))),iA(dA,EA)});var O=CA(K);jo(O,1,()=>(l(r),oA(()=>{var dA;return((dA=l(r))===null||dA===void 0?void 0:dA.polygons)||[]})),cr,(dA,fA)=>{var EA=fKA();vy(EA,()=>pe({},l(fA))),iA(dA,EA)});var V=CA(O),j=dA=>{QKA(dA,{get data(){return l(r)},set data(fA){y(r,fA)},$$legacy:!0})};GA(V,dA=>{l(r),oA(()=>{var fA;return(fA=l(r))===null||fA===void 0?void 0:fA.raw})&&dA(j)}),iA(J,z)}),iA(R,G)},$$slots:{default:!0}})),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -147,7 +147,7 @@ ${B}}`])},g=d=>d.map(B=>`.${I(B)}`).join(""),I=d=>kvA.test(d)?d:JSON.stringify(d .jse-boolean-toggle.svelte-1ryp01u:not(.jse-readonly) { cursor: pointer; -}`);var fKA=vA('
        ');function mKA(t,e){ft(e,!1);var A=M(e,"path",9),i=M(e,"value",9),n=M(e,"readOnly",9),o=M(e,"onPatch",9),r=M(e,"focus",9);qt(!0);var s,a=fKA(),c=W(a),g=ZA(()=>i()===!0?AL:eL);Ui(c,{get data(){return l(g)}}),we(I=>{gn(a,"aria-checked",i()===!0),s=jt(a,1,"jse-boolean-toggle svelte-1ryp01u",null,s,I),gn(a,"title",n()?"Boolean value ".concat(i()):"Click to toggle this boolean value")},[()=>({"jse-readonly":n()})],ZA),ce("mousedown",a,function(I){I.stopPropagation(),n()||(o()([{op:"replace",path:It(A()),value:!i()}]),r()())}),iA(t,a),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var pKA=vA('
        ');function DKA(t,e){ft(e,!1);var A=M(e,"path",9),i=M(e,"value",9),n=M(e,"readOnly",9),o=M(e,"onPatch",9),r=M(e,"focus",9);qt(!0);var s,a=pKA(),c=W(a),g=ZA(()=>i()===!0?AL:eL);Ui(c,{get data(){return l(g)}}),we(I=>{gn(a,"aria-checked",i()===!0),s=jt(a,1,"jse-boolean-toggle svelte-1ryp01u",null,s,I),gn(a,"title",n()?"Boolean value ".concat(i()):"Click to toggle this boolean value")},[()=>({"jse-readonly":n()})],ZA),ce("mousedown",a,function(I){I.stopPropagation(),n()||(o()([{op:"replace",path:Ct(A()),value:!i()}]),r()())}),iA(t,a),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -189,7 +189,7 @@ ${B}}`])},g=d=>d.map(B=>`.${I(B)}`).join(""),I=d=>kvA.test(d)?d:JSON.stringify(d } .jse-color-picker-popup.svelte-s1wu8v .picker_done button:hover { background: var(--jse-button-background-highlight, #e7e7e7); -}`);var pKA=vA('
        ');function DKA(t,e){ft(e,!1);var A=M(e,"color",8),i=M(e,"onChange",8),n=M(e,"showOnTop",8),o=$(),r=()=>{};ws(_t(function*(){var a,c=new((a=yield import("./chunk-TXJFAAIW.js"))===null||a===void 0?void 0:a.default)({parent:l(o),color:A(),popup:n()?"top":"bottom",onDone(g){var I=g.rgba[3]===1?g.hex.substring(0,7):g.hex;i()(I)}});c.show(),r=()=>{c.destroy()}})),ig(()=>{r()}),qt();var s=pKA();Qo(s,a=>y(o,a),()=>l(o)),iA(t,s),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var wKA=vA('
        ');function yKA(t,e){ft(e,!1);var A=M(e,"color",8),i=M(e,"onChange",8),n=M(e,"showOnTop",8),o=$(),r=()=>{};ws(_t(function*(){var a,c=new((a=yield import("./chunk-TXJFAAIW.js"))===null||a===void 0?void 0:a.default)({parent:l(o),color:A(),popup:n()?"top":"bottom",onDone(g){var I=g.rgba[3]===1?g.hex.substring(0,7):g.hex;i()(I)}});c.show(),r=()=>{c.destroy()}})),ig(()=>{r()}),qt();var s=wKA();Qo(s,a=>y(o,a),()=>l(o)),iA(t,s),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -225,7 +225,7 @@ ${B}}`])},g=d=>d.map(B=>`.${I(B)}`).join(""),I=d=>kvA.test(d)?d:JSON.stringify(d .jse-color-picker-button.svelte-xeg9n6:not(.jse-readonly) { cursor: pointer; -}`);var wKA=vA('');function yKA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),{openAbsolutePopup:n}=cI("absolute-popup"),o=M(e,"path",9),r=M(e,"value",9),s=M(e,"readOnly",9),a=M(e,"onPatch",9),c=M(e,"focus",9);function g(B){a()([{op:"replace",path:It(o()),value:B}]),I()}function I(){c()()}pA(()=>k(r()),()=>{y(A,oaA(r()))}),pA(()=>(k(s()),k(r())),()=>{y(i,s()?"Color ".concat(r()):"Click to open a color picker")}),ln(),qt(!0);var C,d=wKA();we(B=>{var E;C=jt(d,1,"jse-color-picker-button svelte-xeg9n6",null,C,B),eg(d,"background: ".concat((E=l(A))!==null&&E!==void 0?E:"")),gn(d,"title",l(i)),gn(d,"aria-label",l(i))},[()=>({"jse-readonly":s()})],ZA),ce("click",d,function(B){var E,u;if(!s()){var h=B.target,w=h.getBoundingClientRect().top,x=((E=(u=Qf(h))===null||u===void 0?void 0:u.innerHeight)!==null&&E!==void 0?E:0)-w<300&&w>300,R={color:r(),onChange:g,showOnTop:x};n(DKA,R,{anchor:h,closeOnOuterClick:!0,onClose:I,offsetTop:18,offsetLeft:-8,height:300})}}),iA(t,d),mt()}var rG=1e3,$3=100,By=100,Gy=2e4,mQ=[{start:0,end:$3}],vKA=1048576,MKA=1048576,sG=10485760,aG="Insert or paste contents, enter [ insert a new array, enter { to insert a new object, or start typing to insert a new value",EK="Open context menu (Click here, right click on the selection, or use the context menu button or Ctrl+Q)",zC="hover-insert-inside",Ey="hover-insert-after",krA="hover-collection",cG="valid",SrA="repairable",$0=336,A2=260,O3=100,RrA={[Ag.asc]:"ascending",[Ag.desc]:"descending"};function haA(t){for(var e=qR(t,s=>s.start),A=[e[0]],i=0;i0&&arguments[0]!==void 0?arguments[0]:{expanded:!1};return{type:"array",expanded:t,visibleSections:mQ,items:[]}}function hK(){var{expanded:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{expanded:!1};return{type:"object",expanded:t,properties:{}}}var fK={createObjectDocumentState:hK,createArrayDocumentState:uK,createValueDocumentState:function(){return{type:"value"}}};function maA(t,e,A,i){var{createObjectDocumentState:n,createArrayDocumentState:o,createValueDocumentState:r}=i;return function s(a,c,g){if(Array.isArray(a)){var I=Rr(c)?c:o();if(g.length===0)return I;var C=ss(g[0]),d=s(a[C],I.items[C],g.slice(1));return Bs(I,["items",g[0]],d)}if(nn(a)){var B=Ua(c)?c:n();if(g.length===0)return B;var E=g[0],u=s(a[E],B.properties[E],g.slice(1));return Bs(B,["properties",E],u)}return QK(c)?c:r()}(t,e,A)}function uc(t,e){return Af(t,e,arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],(A,i)=>{if(A!==void 0&&i!==void 0)return Array.isArray(A)?Rr(i)?i:uK({expanded:!!td(i)&&i.expanded}):nn(A)?Ua(i)?i:hK({expanded:!!td(i)&&i.expanded}):QK(i)?i:void 0},()=>!0)}function Af(t,e,A,i,n){var o=i(t,e,A);if(Array.isArray(t)&&Rr(o)&&n(o)){var r=[];return mK(t,o.visibleSections,a=>{var c=A.concat(String(a)),g=Af(t[a],o.items[a],c,i,n);g!==void 0&&(r[a]=g)}),prA(r,o.items)?o:pe(pe({},o),{},{items:r})}if(nn(t)&&Ua(o)&&n(o)){var s={};return Object.keys(t).forEach(a=>{var c=A.concat(a),g=Af(t[a],o.properties[a],c,i,n);g!==void 0&&(s[a]=g)}),prA(Object.values(s),Object.values(o.properties))?o:pe(pe({},o),{},{properties:s})}return o}function mK(t,e,A){e.forEach(i=>{var{start:n,end:o}=i;raA(n,Math.min(t.length,o),A)})}function ef(t,e){for(var A=t,i=[],n=0;n{var I=td(g)&&!g.expanded?pe(pe({},g),{},{expanded:!0}):g;return Rr(I)?function(C,d){if(function(u,h){return u.some(w=>h>=w.start&&hfunction(c,g,I,C){return Af(c,g,I,(d,B,E)=>Array.isArray(d)&&C(E)?Rr(B)?B.expanded?B:pe(pe({},B),{},{expanded:!0}):uK({expanded:!0}):nn(d)&&C(E)?Ua(B)?B.expanded?B:pe(pe({},B),{},{expanded:!0}):hK({expanded:!0}):B,d=>td(d)&&d.expanded)}(s,a,[],i))}function KrA(t,e,A,i){return kQ(t,e,A,(n,o)=>i?function(r,s,a){return Af(r,s,a,(c,g)=>UrA(g),()=>!0)}(n,o,A):UrA(o))}function UrA(t){return Rr(t)&&t.expanded?pe(pe({},t),{},{expanded:!1,visibleSections:mQ}):Ua(t)&&t.expanded?pe(pe({},t),{},{expanded:!1}):t}function paA(t,e,A){var i={json:t,documentState:e},n=A.reduce((o,r)=>({json:Ma(o.json,[r]),documentState:LKA(o.json,o.documentState,r)}),i);return{json:n.json,documentState:uc(n.json,n.documentState)}}function LKA(t,e,A){if(fR(A))return JrA(t,e,A,void 0);if(mR(A))return YrA(t,e,A);if(V8(A)){var i=ba(t,A.path),n=t0(t,e,i);return n?o7(t,e,i,{type:"value",enforceString:n}):e}return Z8(A)||i1(A)?function(o,r,s){if(i1(s)&&s.from===s.path)return r;var a=r,c=ba(o,s.from),g=$l(o,a,c);return i1(s)&&(a=YrA(o,a,{path:s.from})),a=JrA(o,a,{path:s.path},g),a}(t,e,A):e}function $l(t,e,A){try{return Ye(e,ef(t,A))}catch{return}}function pK(t,e,A,i,n){var o=maA(t,e,A,n);return $h(o,ef(t,A),r=>{var s=Ye(t,A);return i(s,r)})}function o7(t,e,A,i){return function(n,o,r,s,a){var c=maA(n,o,r,a);return Bs(c,ef(n,r),s)}(t,e,A,i,fK)}function kQ(t,e,A,i){return pK(t,e,A,i,fK)}function JrA(t,e,A,i){var n=ba(t,A.path),o=e;return o=kQ(t,o,yi(n),(r,s)=>{if(!Rr(s))return s;var a=ss(li(n)),{items:c,visibleSections:g}=s;return pe(pe({},s),{},{items:a{if(!Rr(s))return s;var a=ss(li(i)),{items:c,visibleSections:g}=s;return pe(pe({},s),{},{items:c.slice(0,a).concat(c.slice(a+1)),visibleSections:DaA(g,a,-1)})}):function(r,s,a){var c=ef(r,a);return As(s,c)?lC(s,ef(r,a)):s}(t,e,i)}function DaA(t,e,A){return function(i){for(var n=i.slice(0),o=1;o({start:i.start>e?i.start+A:i.start,end:i.end>e?i.end+A:i.end})))}function t0(t,e,A){var i,n=Ye(t,A),o=$l(t,e,A),r=QK(o)?o.enforceString:void 0;return typeof r=="boolean"?r:typeof(i=n)=="string"&&typeof GQ(i,JSON)!="string"}function hf(t,e){var A=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=t.indexOf(e);return i!==-1?A?t.slice(i):t.slice(i+1):[]}function DK(t,e){var A=[];return function i(n,o,r){A.push(r),wo(n)&&Rr(o)&&o.expanded&&mK(n,o.visibleSections,s=>{i(n[s],o.items[s],r.concat(String(s)))}),Lo(n)&&Ua(o)&&o.expanded&&Object.keys(n).forEach(s=>{i(n[s],o.properties[s],r.concat(s))})}(t,e,[]),A}function waA(t,e){var A=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],i=[];return function n(o,r){i.push({path:r,type:Tg.value});var s=$l(t,e,r);if(o&&td(s)&&s.expanded){if(A&&i.push({path:r,type:Tg.inside}),wo(o)){var a=Rr(s)?s.visibleSections:mQ;mK(o,a,c=>{var g=r.concat(String(c));n(o[c],g),A&&i.push({path:g,type:Tg.after})})}Lo(o)&&Object.keys(o).forEach(c=>{var g=r.concat(c);i.push({path:g,type:Tg.key}),n(o[c],g),A&&i.push({path:g,type:Tg.after})})}}(t,[]),i}function gG(t,e,A){var i=DK(t,e),n=i.map(It).indexOf(It(A));if(n!==-1&&n3&&arguments[3]!==void 0?arguments[3]:10240;return Yg(t,e,A,ZGA({json:Ye(t,A)},i)?z3:wK)}function lG(t,e,A){var i=$l(t,e,A);return td(i)&&i.expanded?e:id(t,e,A)}function z3(t){return t.length===0||t.length===1&&t[0]==="0"}function KG(t){return t.length===0}function wK(){return!0}function by(){return!1}function Ya(t){return t&&t.type===Ln.after||!1}function yr(t){return t&&t.type===Ln.inside||!1}function Lr(t){return t&&t.type===Ln.key||!1}function Vi(t){return t&&t.type===Ln.value||!1}function Gn(t){return t&&t.type===Ln.multi||!1}function r7(t){return Gn(t)&&ri(t.focusPath,t.anchorPath)}function tf(t){return Gn(t)||Ya(t)||yr(t)||Lr(t)||Vi(t)}function IG(t){return t&&t.type===Ln.text||!1}function sI(t,e){var A=[];return function(i,n,o){if(n){var r=WC(n),s=nt(n);if(ri(r,s))return o(r);if(i!==void 0){var a=vaA(r,s);if(r.length===a.length||s.length===a.length)return o(a);var c=Js(r,s),g=e2(i,c),I=tI(i,c),C=r2(i,c,g),d=r2(i,c,I);if(!(C===-1||d===-1)){var B=Ye(i,a);if(Lo(B)){for(var E=Object.keys(B),u=C;u<=d;u++){var h=o(a.concat(E[u]));if(h!==void 0)return h}return}if(wo(B)){for(var w=C;w<=d;w++){var x=o(a.concat(String(w)));if(x!==void 0)return x}return}throw new Error("Failed to create selection")}}}}(t,e,i=>{A.push(i)}),A}function yaA(t){return yr(t)?t.path:yi(nt(t))}function e2(t,e){if(!Gn(e))return e.path;var A=r2(t,e,e.anchorPath);return r2(t,e,e.focusPath)A?e.focusPath:e.anchorPath}function TrA(t,e,A){var i=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(A){var n=i?nt(A):e2(t,A),o=function(a,c,g){var I=DK(a,c),C=I.map(It),d=It(g),B=C.indexOf(d);if(B!==-1&&B>0)return I[B-1]}(t,e,n);if(i)return yr(A)||Ya(A)?o!==void 0?Js(n,n):void 0:o!==void 0?Js(WC(A),o):void 0;if(Ya(A)||yr(A))return vi(n);if(Lr(A)){if(o===void 0||o.length===0)return;var r=yi(o),s=Ye(t,r);return Array.isArray(s)||Gi(o)?vi(o):a2(o)}return Vi(A),o!==void 0?vi(o):void 0}}function HrA(t,e,A,i){if(!A)return{caret:void 0,previous:void 0,next:void 0};var n=waA(t,e,i),o=n.findIndex(r=>ri(r.path,nt(A))&&String(r.type)===String(A.type));return{caret:o!==-1?n[o]:void 0,previous:o!==-1&&o>0?n[o-1]:void 0,next:o!==-1&&oA[i].length;)i++;var n=A[i];return n===void 0||n.length===0||Array.isArray(Ye(t,yi(n)))?vi(n):a2(n)}function SQ(t,e){if(e.length===1){var A=Tc(e);if(A.op==="replace")return vi(ba(t,A.path))}if(!Gi(e)&&e.every(r=>r.op==="move")){var i=Tc(e),n=e.slice(1);if((Z8(i)||i1(i))&&i.from!==i.path&&n.every(r=>(Z8(r)||i1(r))&&r.from===r.path))return a2(ba(t,i.path))}var o=e.filter(r=>r.op!=="test"&&r.op!=="remove"&&(r.op!=="move"||r.from!==r.path)&&typeof r.path=="string").map(r=>ba(t,r.path));if(!Gi(o))return{type:Ln.multi,anchorPath:Tc(o),focusPath:li(o)}}function vaA(t,e){for(var A=0;AA.length&&e.length>A.length;return{type:Ln.multi,anchorPath:i?A.concat(t[A.length]):A,focusPath:i?A.concat(e[A.length]):A}}function MaA(t,e,A,i){if(Lr(e))return String(li(e.path));if(Vi(e)){var n=Ye(t,e.path);return typeof n=="string"?n:i.stringify(n,null,A)}if(Gn(e)){if(Gi(e.focusPath))return i.stringify(t,null,A);var o=yaA(e),r=Ye(t,o);if(Array.isArray(r)){if(r7(e)){var s=Ye(t,e.focusPath);return i.stringify(s,null,A)}return sI(t,e).map(a=>{var c=Ye(t,a);return"".concat(i.stringify(c,null,A),",")}).join(` +}`);var vKA=vA('');function MKA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),{openAbsolutePopup:n}=cI("absolute-popup"),o=M(e,"path",9),r=M(e,"value",9),s=M(e,"readOnly",9),a=M(e,"onPatch",9),c=M(e,"focus",9);function g(B){a()([{op:"replace",path:Ct(o()),value:B}]),I()}function I(){c()()}pA(()=>k(r()),()=>{y(A,oaA(r()))}),pA(()=>(k(s()),k(r())),()=>{y(i,s()?"Color ".concat(r()):"Click to open a color picker")}),ln(),qt(!0);var C,d=vKA();we(B=>{var E;C=jt(d,1,"jse-color-picker-button svelte-xeg9n6",null,C,B),eg(d,"background: ".concat((E=l(A))!==null&&E!==void 0?E:"")),gn(d,"title",l(i)),gn(d,"aria-label",l(i))},[()=>({"jse-readonly":s()})],ZA),ce("click",d,function(B){var E,u;if(!s()){var h=B.target,w=h.getBoundingClientRect().top,x=((E=(u=Qf(h))===null||u===void 0?void 0:u.innerHeight)!==null&&E!==void 0?E:0)-w<300&&w>300,R={color:r(),onChange:g,showOnTop:x};n(yKA,R,{anchor:h,closeOnOuterClick:!0,onClose:I,offsetTop:18,offsetLeft:-8,height:300})}}),iA(t,d),mt()}var rG=1e3,$3=100,By=100,Gy=2e4,mQ=[{start:0,end:$3}],bKA=1048576,kKA=1048576,sG=10485760,aG="Insert or paste contents, enter [ insert a new array, enter { to insert a new object, or start typing to insert a new value",EK="Open context menu (Click here, right click on the selection, or use the context menu button or Ctrl+Q)",zC="hover-insert-inside",Ey="hover-insert-after",krA="hover-collection",cG="valid",SrA="repairable",$0=336,A2=260,O3=100,RrA={[Ag.asc]:"ascending",[Ag.desc]:"descending"};function haA(t){for(var e=qR(t,s=>s.start),A=[e[0]],i=0;i0&&arguments[0]!==void 0?arguments[0]:{expanded:!1};return{type:"array",expanded:t,visibleSections:mQ,items:[]}}function hK(){var{expanded:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{expanded:!1};return{type:"object",expanded:t,properties:{}}}var fK={createObjectDocumentState:hK,createArrayDocumentState:uK,createValueDocumentState:function(){return{type:"value"}}};function maA(t,e,A,i){var{createObjectDocumentState:n,createArrayDocumentState:o,createValueDocumentState:r}=i;return function s(a,c,g){if(Array.isArray(a)){var I=Rr(c)?c:o();if(g.length===0)return I;var C=ss(g[0]),d=s(a[C],I.items[C],g.slice(1));return Bs(I,["items",g[0]],d)}if(nn(a)){var B=Ua(c)?c:n();if(g.length===0)return B;var E=g[0],u=s(a[E],B.properties[E],g.slice(1));return Bs(B,["properties",E],u)}return QK(c)?c:r()}(t,e,A)}function uc(t,e){return Af(t,e,arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],(A,i)=>{if(A!==void 0&&i!==void 0)return Array.isArray(A)?Rr(i)?i:uK({expanded:!!td(i)&&i.expanded}):nn(A)?Ua(i)?i:hK({expanded:!!td(i)&&i.expanded}):QK(i)?i:void 0},()=>!0)}function Af(t,e,A,i,n){var o=i(t,e,A);if(Array.isArray(t)&&Rr(o)&&n(o)){var r=[];return mK(t,o.visibleSections,a=>{var c=A.concat(String(a)),g=Af(t[a],o.items[a],c,i,n);g!==void 0&&(r[a]=g)}),prA(r,o.items)?o:pe(pe({},o),{},{items:r})}if(nn(t)&&Ua(o)&&n(o)){var s={};return Object.keys(t).forEach(a=>{var c=A.concat(a),g=Af(t[a],o.properties[a],c,i,n);g!==void 0&&(s[a]=g)}),prA(Object.values(s),Object.values(o.properties))?o:pe(pe({},o),{},{properties:s})}return o}function mK(t,e,A){e.forEach(i=>{var{start:n,end:o}=i;raA(n,Math.min(t.length,o),A)})}function ef(t,e){for(var A=t,i=[],n=0;n{var I=td(g)&&!g.expanded?pe(pe({},g),{},{expanded:!0}):g;return Rr(I)?function(C,d){if(function(u,h){return u.some(w=>h>=w.start&&hfunction(c,g,I,C){return Af(c,g,I,(d,B,E)=>Array.isArray(d)&&C(E)?Rr(B)?B.expanded?B:pe(pe({},B),{},{expanded:!0}):uK({expanded:!0}):nn(d)&&C(E)?Ua(B)?B.expanded?B:pe(pe({},B),{},{expanded:!0}):hK({expanded:!0}):B,d=>td(d)&&d.expanded)}(s,a,[],i))}function KrA(t,e,A,i){return kQ(t,e,A,(n,o)=>i?function(r,s,a){return Af(r,s,a,(c,g)=>UrA(g),()=>!0)}(n,o,A):UrA(o))}function UrA(t){return Rr(t)&&t.expanded?pe(pe({},t),{},{expanded:!1,visibleSections:mQ}):Ua(t)&&t.expanded?pe(pe({},t),{},{expanded:!1}):t}function paA(t,e,A){var i={json:t,documentState:e},n=A.reduce((o,r)=>({json:Ma(o.json,[r]),documentState:NKA(o.json,o.documentState,r)}),i);return{json:n.json,documentState:uc(n.json,n.documentState)}}function NKA(t,e,A){if(fR(A))return JrA(t,e,A,void 0);if(mR(A))return YrA(t,e,A);if(V8(A)){var i=ba(t,A.path),n=t0(t,e,i);return n?o7(t,e,i,{type:"value",enforceString:n}):e}return Z8(A)||i1(A)?function(o,r,s){if(i1(s)&&s.from===s.path)return r;var a=r,c=ba(o,s.from),g=$l(o,a,c);return i1(s)&&(a=YrA(o,a,{path:s.from})),a=JrA(o,a,{path:s.path},g),a}(t,e,A):e}function $l(t,e,A){try{return Ye(e,ef(t,A))}catch{return}}function pK(t,e,A,i,n){var o=maA(t,e,A,n);return $h(o,ef(t,A),r=>{var s=Ye(t,A);return i(s,r)})}function o7(t,e,A,i){return function(n,o,r,s,a){var c=maA(n,o,r,a);return Bs(c,ef(n,r),s)}(t,e,A,i,fK)}function kQ(t,e,A,i){return pK(t,e,A,i,fK)}function JrA(t,e,A,i){var n=ba(t,A.path),o=e;return o=kQ(t,o,yi(n),(r,s)=>{if(!Rr(s))return s;var a=ss(li(n)),{items:c,visibleSections:g}=s;return pe(pe({},s),{},{items:a{if(!Rr(s))return s;var a=ss(li(i)),{items:c,visibleSections:g}=s;return pe(pe({},s),{},{items:c.slice(0,a).concat(c.slice(a+1)),visibleSections:DaA(g,a,-1)})}):function(r,s,a){var c=ef(r,a);return As(s,c)?lC(s,ef(r,a)):s}(t,e,i)}function DaA(t,e,A){return function(i){for(var n=i.slice(0),o=1;o({start:i.start>e?i.start+A:i.start,end:i.end>e?i.end+A:i.end})))}function t0(t,e,A){var i,n=Ye(t,A),o=$l(t,e,A),r=QK(o)?o.enforceString:void 0;return typeof r=="boolean"?r:typeof(i=n)=="string"&&typeof GQ(i,JSON)!="string"}function hf(t,e){var A=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=t.indexOf(e);return i!==-1?A?t.slice(i):t.slice(i+1):[]}function DK(t,e){var A=[];return function i(n,o,r){A.push(r),wo(n)&&Rr(o)&&o.expanded&&mK(n,o.visibleSections,s=>{i(n[s],o.items[s],r.concat(String(s)))}),Lo(n)&&Ua(o)&&o.expanded&&Object.keys(n).forEach(s=>{i(n[s],o.properties[s],r.concat(s))})}(t,e,[]),A}function waA(t,e){var A=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],i=[];return function n(o,r){i.push({path:r,type:Tg.value});var s=$l(t,e,r);if(o&&td(s)&&s.expanded){if(A&&i.push({path:r,type:Tg.inside}),wo(o)){var a=Rr(s)?s.visibleSections:mQ;mK(o,a,c=>{var g=r.concat(String(c));n(o[c],g),A&&i.push({path:g,type:Tg.after})})}Lo(o)&&Object.keys(o).forEach(c=>{var g=r.concat(c);i.push({path:g,type:Tg.key}),n(o[c],g),A&&i.push({path:g,type:Tg.after})})}}(t,[]),i}function gG(t,e,A){var i=DK(t,e),n=i.map(Ct).indexOf(Ct(A));if(n!==-1&&n3&&arguments[3]!==void 0?arguments[3]:10240;return Yg(t,e,A,XGA({json:Ye(t,A)},i)?z3:wK)}function lG(t,e,A){var i=$l(t,e,A);return td(i)&&i.expanded?e:id(t,e,A)}function z3(t){return t.length===0||t.length===1&&t[0]==="0"}function KG(t){return t.length===0}function wK(){return!0}function by(){return!1}function Ya(t){return t&&t.type===Ln.after||!1}function yr(t){return t&&t.type===Ln.inside||!1}function Lr(t){return t&&t.type===Ln.key||!1}function Vi(t){return t&&t.type===Ln.value||!1}function Gn(t){return t&&t.type===Ln.multi||!1}function r7(t){return Gn(t)&&ri(t.focusPath,t.anchorPath)}function tf(t){return Gn(t)||Ya(t)||yr(t)||Lr(t)||Vi(t)}function IG(t){return t&&t.type===Ln.text||!1}function sI(t,e){var A=[];return function(i,n,o){if(n){var r=WC(n),s=nt(n);if(ri(r,s))return o(r);if(i!==void 0){var a=vaA(r,s);if(r.length===a.length||s.length===a.length)return o(a);var c=Js(r,s),g=e2(i,c),I=tI(i,c),C=r2(i,c,g),d=r2(i,c,I);if(!(C===-1||d===-1)){var B=Ye(i,a);if(Lo(B)){for(var E=Object.keys(B),u=C;u<=d;u++){var h=o(a.concat(E[u]));if(h!==void 0)return h}return}if(wo(B)){for(var w=C;w<=d;w++){var x=o(a.concat(String(w)));if(x!==void 0)return x}return}throw new Error("Failed to create selection")}}}}(t,e,i=>{A.push(i)}),A}function yaA(t){return yr(t)?t.path:yi(nt(t))}function e2(t,e){if(!Gn(e))return e.path;var A=r2(t,e,e.anchorPath);return r2(t,e,e.focusPath)A?e.focusPath:e.anchorPath}function TrA(t,e,A){var i=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(A){var n=i?nt(A):e2(t,A),o=function(a,c,g){var I=DK(a,c),C=I.map(Ct),d=Ct(g),B=C.indexOf(d);if(B!==-1&&B>0)return I[B-1]}(t,e,n);if(i)return yr(A)||Ya(A)?o!==void 0?Js(n,n):void 0:o!==void 0?Js(WC(A),o):void 0;if(Ya(A)||yr(A))return vi(n);if(Lr(A)){if(o===void 0||o.length===0)return;var r=yi(o),s=Ye(t,r);return Array.isArray(s)||Gi(o)?vi(o):a2(o)}return Vi(A),o!==void 0?vi(o):void 0}}function HrA(t,e,A,i){if(!A)return{caret:void 0,previous:void 0,next:void 0};var n=waA(t,e,i),o=n.findIndex(r=>ri(r.path,nt(A))&&String(r.type)===String(A.type));return{caret:o!==-1?n[o]:void 0,previous:o!==-1&&o>0?n[o-1]:void 0,next:o!==-1&&oA[i].length;)i++;var n=A[i];return n===void 0||n.length===0||Array.isArray(Ye(t,yi(n)))?vi(n):a2(n)}function SQ(t,e){if(e.length===1){var A=Tc(e);if(A.op==="replace")return vi(ba(t,A.path))}if(!Gi(e)&&e.every(r=>r.op==="move")){var i=Tc(e),n=e.slice(1);if((Z8(i)||i1(i))&&i.from!==i.path&&n.every(r=>(Z8(r)||i1(r))&&r.from===r.path))return a2(ba(t,i.path))}var o=e.filter(r=>r.op!=="test"&&r.op!=="remove"&&(r.op!=="move"||r.from!==r.path)&&typeof r.path=="string").map(r=>ba(t,r.path));if(!Gi(o))return{type:Ln.multi,anchorPath:Tc(o),focusPath:li(o)}}function vaA(t,e){for(var A=0;AA.length&&e.length>A.length;return{type:Ln.multi,anchorPath:i?A.concat(t[A.length]):A,focusPath:i?A.concat(e[A.length]):A}}function MaA(t,e,A,i){if(Lr(e))return String(li(e.path));if(Vi(e)){var n=Ye(t,e.path);return typeof n=="string"?n:i.stringify(n,null,A)}if(Gn(e)){if(Gi(e.focusPath))return i.stringify(t,null,A);var o=yaA(e),r=Ye(t,o);if(Array.isArray(r)){if(r7(e)){var s=Ye(t,e.focusPath);return i.stringify(s,null,A)}return sI(t,e).map(a=>{var c=Ye(t,a);return"".concat(i.stringify(c,null,A),",")}).join(` `)}return sI(t,e).map(a=>{var c=li(a),g=Ye(t,a);return"".concat(i.stringify(c),": ").concat(i.stringify(g,null,A),",")}).join(` `)}}function Sr(t){return(Lr(t)||Vi(t))&&t.edit===!0}function uQ(t){return Lr(t)||Vi(t)||Gn(t)}function Qy(t){return Lr(t)||Vi(t)||r7(t)}function UG(t){switch(t.type){case Tg.key:return a2(t.path);case Tg.value:return vi(t.path);case Tg.after:return o2(t.path);case Tg.inside:return c2(t.path)}}function zrA(t,e){switch(t){case Ln.key:return a2(e);case Ln.value:return vi(e);case Ln.after:return o2(e);case Ln.inside:return c2(e);case Ln.multi:case Ln.text:return Js(e,e)}}function uy(t,e,A){if(e)return nf(t,e,A)||n0(Gn(e)?yi(e.focusPath):e.path,A)?e:void 0}function nf(t,e,A){if(t===void 0||!e)return!1;if(Lr(e)||yr(e)||Ya(e))return ri(e.path,A);if(Vi(e))return n0(A,e.path);if(Gn(e)){var i=e2(t,e),n=tI(t,e),o=yi(e.focusPath);if(!n0(A,o)||A.length<=o.length)return!1;var r=r2(t,e,i),s=r2(t,e,n),a=r2(t,e,A);return a!==-1&&a>=r&&a<=s}return!1}function r2(t,e,A){var i=yi(e.focusPath);if(!n0(A,i)||A.length<=i.length)return-1;var n=A[i.length],o=Ye(t,i);if(Lo(o))return Object.keys(o).indexOf(n);if(wo(o)){var r=ss(n);if(r');function kaA(t,e){ft(e,!1);var A=xr("jsoneditor:EditableDiv"),i=M(e,"value",9),n=M(e,"initialValue",9),o=M(e,"shortText",9,!1),r=M(e,"label",9),s=M(e,"onChange",9),a=M(e,"onCancel",9),c=M(e,"onFind",9),g=M(e,"onPaste",9,er),I=M(e,"onValueClass",9,()=>""),C=$(void 0,!0),d=$(void 0,!0),B=!1;function E(){return l(C)?function(w){return w.replace(/\n$/,"")}(l(C).innerText):""}function u(w){l(C)&&hc(C,l(C).innerText=bQ(w))}ws(()=>{A("onMount",{value:i(),initialValue:n()}),u(n()!==void 0?n():i()),l(C)&&function(w){if(w.firstChild!=null){var x=document.createRange(),R=window.getSelection();x.setStart(w,1),x.collapse(!0),R?.removeAllRanges(),R?.addRange(x)}else w.focus()}(l(C))}),ig(()=>{var w=E();A("onDestroy",{closed:B,value:i(),newValue:w}),B||w===i()||s()(w,eI.no)}),pA(()=>(k(I()),k(i())),()=>{y(d,I()(i()))}),ln(),qt(!0);var h=xKA();Qo(h,w=>y(C,w),()=>l(C)),we(w=>{gn(h,"aria-label",r()),jt(h,1,w,"svelte-f9kmxj")},[()=>rI((k(Vg),l(d),k(o()),oA(()=>Vg("jse-editable-div",l(d),{"jse-short-text":o()}))))],ZA),ce("input",h,function(){var w=E();w===""&&u(""),y(d,I()(w))}),ce("keydown",h,function(w){w.stopPropagation();var x=s2(w);if(x==="Escape"&&(w.preventDefault(),B=!0,a()()),x==="Enter"||x==="Tab"){w.preventDefault(),B=!0;var R=E();s()(R,eI.nextInside)}x==="Ctrl+F"&&(w.preventDefault(),c()(!1)),x==="Ctrl+H"&&(w.preventDefault(),c()(!0))}),ce("paste",h,function(w){if(w.stopPropagation(),g()&&w.clipboardData){var x=w.clipboardData.getData("text/plain");g()(x)}}),ce("blur",h,function(){var w=document.hasFocus(),x=E();A("handleBlur",{hasFocus:w,closed:B,value:i(),newValue:x}),document.hasFocus()&&!B&&(B=!0,x!==i()&&s()(x,eI.self))}),iA(t,h),mt()}function NKA(t,e){ft(e,!1);var A=M(e,"path",9),i=M(e,"value",9),n=M(e,"selection",9),o=M(e,"mode",9),r=M(e,"parser",9),s=M(e,"normalization",9),a=M(e,"enforceString",9),c=M(e,"onPatch",9),g=M(e,"onPasteJson",9),I=M(e,"onSelect",9),C=M(e,"onFind",9),d=M(e,"focus",9),B=M(e,"findNextInside",9);function E(x){return a()?x:GQ(x,r())}function u(){I()(vi(A())),d()()}qt(!0);var h=ZA(()=>(k(s()),k(i()),oA(()=>s().escapeValue(i())))),w=ZA(()=>(k(Sr),k(n()),oA(()=>Sr(n())?n().initialValue:void 0)));kaA(t,{get value(){return l(h)},get initialValue(){return l(w)},label:"Edit value",onChange:function(x,R){c()([{op:"replace",path:It(A()),value:E(s().unescapeValue(x))}],(D,G,J)=>{if(!J||ri(A(),nt(J)))return{state:G,selection:R===eI.nextInside?B()(A()):vi(A())}}),d()()},onCancel:u,onPaste:function(x){try{var R=r().parse(x);Fo(R)&&g()({path:A(),contents:R,onPasteAsJson:()=>{u();var D=[{op:"replace",path:It(A()),value:R}];c()(D,(G,J)=>({state:id(G,J,A())}))}})}catch{}},get onFind(){return C()},onValueClass:function(x){return baA(E(s().unescapeValue(x)),o(),r())}}),mt()}function hQ(t,e,A){var i=yi(e),n=Ye(t,i);if(wo(n)){var o=ss(li(e));return A.map((c,g)=>({op:"add",path:It(i.concat(String(o+g))),value:c.value}))}if(Lo(n)){var r=li(e),s=Object.keys(n),a=r!==void 0?hf(s,r,!0):[];return[...A.map(c=>{var g=uf(c.key,s);return{op:"add",path:It(i.concat(g)),value:c.value}}),...a.map(c=>aI(i,c))]}throw new Error("Cannot create insert operations: parent must be an Object or Array")}function JG(t,e,A){var i=Ye(t,e);if(Array.isArray(i)){var n=i.length;return A.map((o,r)=>({op:"add",path:It(e.concat(String(n+r))),value:o.value}))}return A.map(o=>{var r=uf(o.key,Object.keys(i));return{op:"add",path:It(e.concat(r)),value:o.value}})}function ff(t,e,A,i){var n=uf(i,e.filter(r=>r!==A)),o=hf(e,A,!1);return[{op:"move",from:It(t.concat(A)),path:It(t.concat(n))},...o.map(r=>aI(t,r))]}function SaA(t,e){var A=li(e);if(Gi(A))throw new Error("Cannot duplicate root object");var i=yi(A),n=li(A),o=Ye(t,i);if(wo(o)){var r=li(e),s=r?ss(li(r))+1:0;return[...e.map((g,I)=>({op:"copy",from:It(g),path:It(i.concat(String(I+s)))}))]}if(Lo(o)){var a=Object.keys(o),c=n!==void 0?hf(a,n,!1):[];return[...e.map(g=>{var I=uf(li(g),a);return{op:"copy",from:It(g),path:It(i.concat(I))}}),...c.map(g=>aI(i,g))]}throw new Error("Cannot create duplicate operations: parent must be an Object or Array")}function RaA(t,e){if(Vi(e))return[{op:"move",from:It(e.path),path:""}];if(!Gn(e))throw new Error("Cannot create extract operations: parent must be an Object or Array");var A=yi(e.focusPath),i=Ye(t,A);if(wo(i)){var n=sI(t,e).map(r=>{var s=ss(li(r));return i[s]});return[{op:"replace",path:"",value:n}]}if(Lo(i)){var o={};return sI(t,e).forEach(r=>{var s=String(li(r));o[s]=i[s]}),[{op:"replace",path:"",value:o}]}throw new Error("Cannot extract: unsupported type of selection "+JSON.stringify(e))}function LaA(t,e,A,i){if(Lr(e)){var n=saA(A,i),o=yi(e.path),r=Ye(t,o);return ff(o,Object.keys(r),li(e.path),typeof n=="string"?n:A)}if(Vi(e)||Gn(e)&&Gi(e.focusPath))try{return[{op:"replace",path:It(nt(e)),value:Ef(A,G=>Bf(G,i))}]}catch{return[{op:"replace",path:It(nt(e)),value:A}]}if(Gn(e)){var s=CG(A,i);return function(G,J,z){var K=Tc(J),O=yi(K),V=Ye(G,O);if(wo(V)){var j=Tc(J),dA=j?ss(li(j)):0;return[...Ty(J),...z.map((VA,ie)=>({op:"add",path:It(O.concat(String(ie+dA))),value:VA.value}))]}if(Lo(V)){var fA=li(J),EA=yi(fA),IA=li(fA),SA=Object.keys(V),nA=IA!==void 0?hf(SA,IA,!1):[],lA=new Set(J.map(VA=>li(VA))),wA=SA.filter(VA=>!lA.has(VA));return[...Ty(J),...z.map(VA=>{var ie=uf(VA.key,wA);return{op:"add",path:It(EA.concat(ie)),value:VA.value}}),...nA.map(VA=>aI(EA,VA))]}throw new Error("Cannot create replace operations: parent must be an Object or Array")}(t,sI(t,e),s)}if(Ya(e)){var a=CG(A,i),c=e.path,g=yi(c),I=Ye(t,g);if(wo(I)){var C=ss(li(c));return hQ(t,g.concat(String(C+1)),a)}if(Lo(I)){var d=String(li(c)),B=Object.keys(I);if(Gi(B)||li(B)===d)return JG(t,g,a);var E=B.indexOf(d),u=B[E+1];return hQ(t,g.concat(u),a)}throw new Error("Cannot create insert operations: parent must be an Object or Array")}if(yr(e)){var h=CG(A,i),w=e.path,x=Ye(t,w);if(wo(x))return hQ(t,w.concat("0"),h);if(Lo(x)){var R=Object.keys(x);if(Gi(R))return JG(t,w,h);var D=Tc(R);return hQ(t,w.concat(D),h)}throw new Error("Cannot create insert operations: parent must be an Object or Array")}throw new Error("Cannot insert: unsupported type of selection "+JSON.stringify(e))}function Ty(t){return t.map(e=>({op:"remove",path:It(e)})).reverse()}function aI(t,e){return{op:"move",from:It(t.concat(e)),path:It(t.concat(e))}}function CG(t,e){var A=/^\s*{/.test(t),i=/^\s*\[/.test(t),n=saA(t,e),o=n!==void 0?n:Ef(t,r=>Bf(r,e));return A&&nn(o)||i&&Array.isArray(o)?[{key:"New item",value:o}]:Array.isArray(o)?o.map((r,s)=>({key:"New item "+s,value:r})):nn(o)?Object.keys(o).map(r=>({key:r,value:o[r]})):[{key:"New item",value:o}]}function xaA(t,e){if(Lr(e)){var A=yi(e.path),i=Ye(t,A),n=ff(A,Object.keys(i),li(e.path),"");return{operations:n,newSelection:SQ(t,n)}}if(Vi(e))return{operations:[{op:"replace",path:It(e.path),value:""}],newSelection:e};if(Gn(e)){var o=sI(t,e),r=Ty(o),s=li(o);if(Gi(s))return{operations:[{op:"replace",path:"",value:""}],newSelection:vi([])};var a=yi(s),c=Ye(t,a);if(wo(c)){var g=Tc(o),I=ss(li(g));return{operations:r,newSelection:I===0?c2(a):o2(a.concat(String(I-1)))}}if(Lo(c)){var C=Object.keys(c),d=Tc(o),B=li(d),E=C.indexOf(B),u=C[E-1];return{operations:r,newSelection:E===0?c2(a):o2(a.concat(u))}}throw new Error("Cannot create remove operations: parent must be an Object or Array")}throw new Error("Cannot remove: unsupported type of selection "+JSON.stringify(e))}function NaA(t,e){var A=function(i,n){if(Gi(n)||!n.every(i1))return n;var o=[];for(var r of n){var s=PrA(xs(r.from)),a=PrA(xs(r.path));if(!s||!a)return n;o.push({from:s,path:a,operation:r})}var c=o[0].path.parent,g=Ye(i,c);if(!Lo(g)||!o.every(B=>function(E,u){return ri(E.from.parent,u)&&ri(E.path.parent,u)}(B,c)))return n;var I=function(B,E){var u=Object.keys(E),h=u.slice();for(var w of B){var x=h.indexOf(w.from.key);x!==-1&&(h.splice(x,1),h.push(w.path.key))}for(var R=0;RB.operation,d=o.filter(B=>B.operation.from!==B.operation.path);return d.some(B=>B.path.key===I)?d.map(C):[aI(c,I),...d.map(C)]}(t,e);return W8(t,A,{before:(i,n,o)=>{if(mR(n)){var r=xs(n.path);return{revertOperations:[...o,...dG(i,r)]}}if(i1(n)){var s=xs(n.from);return{revertOperations:n.from===n.path?[n,...dG(i,s)]:[...o,...dG(i,s)]}}return{document:i}}})}function PrA(t){return t.length>0?{parent:yi(t),key:li(t)}:void 0}function dG(t,e){var A=yi(e),i=li(e),n=Ye(t,A);return Lo(n)?hf(Object.keys(n),i,!1).map(o=>aI(A,o)):[]}function jrA(t){var e=t.activeIndex0?0:-1,A=t.items[e],i=t.items.map((n,o)=>pe(pe({},n),{},{active:o===e}));return pe(pe({},t),{},{items:i,activeItem:A,activeIndex:e})}function qrA(t,e){var A,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=t.toLowerCase(),o=(A=i?.maxResults)!==null&&A!==void 0?A:1/0,r=i?.columns,s=[],a=[];function c(u){s.length>=o||s.push(u)}function g(u,h){if(wo(h)){var w=a.length;a.push("0");for(var x=0;x=o)return;a.pop()}else if(Lo(h)){var R=Object.keys(h),D=a.length;for(var G of(a.push(""),R))if(a[D]=G,VrA(G,u,a,zg.key,c),g(u,h[G]),s.length>=o)return;a.pop()}else VrA(String(h),u,a,zg.value,c)}if(t==="")return[];if(r){if(!Array.isArray(e))throw new Error("json must be an Array when option columns is defined");for(var I=0;IB.length+1;)a.pop();g(n,Ye(C,B))}if(s.length>=o)break}return s}return g(n,e),s}function VrA(t,e,A,i,n){var o=t.toLowerCase(),r=0,s=-1,a=-1;do(a=o.indexOf(e,s))!==-1&&(s=a+e.length,n({path:A.slice(0),field:i,fieldIndex:r,start:a,end:s}),r++);while(a!==-1)}function YG(t,e,A,i){return t.substring(0,A)+e+t.substring(i)}function ZrA(t,e,A){var i=t;return HR(A,n=>{i=YG(i,e,n.start,n.end)}),i}function FKA(t,e,A,i,n){var{field:o,path:r,start:s,end:a}=i;if(o===zg.key){var c=yi(r),g=Ye(t,c),I=li(r),C=ff(c,Object.keys(g),I,YG(I,A,s,a));return{newSelection:SQ(t,C),operations:C}}if(o===zg.value){var d=Ye(t,r);if(d===void 0)throw new Error("Cannot replace: path not found ".concat(It(r)));var B=typeof d=="string"?d:String(d),E=t0(t,e,r),u=YG(B,A,s,a),h=[{op:"replace",path:It(r),value:E?u:GQ(u,n)}];return{newSelection:SQ(t,h),operations:h}}throw new Error("Cannot replace: unknown type of search result field ".concat(o))}function WrA(t){return t.path.concat(t.field,String(t.fieldIndex))}function XrA(t){var e=faA(t)?t.searchResults.filter(A=>A.field===zg.key):void 0;return e&&e.length>0?e:void 0}function $rA(t){var e=faA(t)?t.searchResults.filter(A=>A.field===zg.value):void 0;return e&&e.length>0?e:void 0}var _KA={createObjectDocumentState:()=>({type:"object",properties:{}}),createArrayDocumentState:()=>({type:"array",items:[]}),createValueDocumentState:()=>({type:"value"})};function FaA(t,e){return e.reduce((A,i)=>function(n,o,r,s){return pK(n,o,r,s,_KA)}(t,A,i.path,(n,o)=>pe(pe({},o),{},{searchResults:o.searchResults?o.searchResults.concat(i):[i]})),void 0)}function Hy(t){var e,A=(e=t?.searchResults)!==null&&e!==void 0?e:[],i=Ua(t)?Object.values(t.properties).flatMap(Hy):Rr(t)?t.items.flatMap(Hy):[];return A.concat(i)}Ut(`/* over all fonts, sizes, and colors */ +}`);var FKA=vA('
        ');function kaA(t,e){ft(e,!1);var A=xr("jsoneditor:EditableDiv"),i=M(e,"value",9),n=M(e,"initialValue",9),o=M(e,"shortText",9,!1),r=M(e,"label",9),s=M(e,"onChange",9),a=M(e,"onCancel",9),c=M(e,"onFind",9),g=M(e,"onPaste",9,er),I=M(e,"onValueClass",9,()=>""),C=$(void 0,!0),d=$(void 0,!0),B=!1;function E(){return l(C)?function(w){return w.replace(/\n$/,"")}(l(C).innerText):""}function u(w){l(C)&&hc(C,l(C).innerText=bQ(w))}ws(()=>{A("onMount",{value:i(),initialValue:n()}),u(n()!==void 0?n():i()),l(C)&&function(w){if(w.firstChild!=null){var x=document.createRange(),R=window.getSelection();x.setStart(w,1),x.collapse(!0),R?.removeAllRanges(),R?.addRange(x)}else w.focus()}(l(C))}),ig(()=>{var w=E();A("onDestroy",{closed:B,value:i(),newValue:w}),B||w===i()||s()(w,eI.no)}),pA(()=>(k(I()),k(i())),()=>{y(d,I()(i()))}),ln(),qt(!0);var h=FKA();Qo(h,w=>y(C,w),()=>l(C)),we(w=>{gn(h,"aria-label",r()),jt(h,1,w,"svelte-f9kmxj")},[()=>rI((k(Vg),l(d),k(o()),oA(()=>Vg("jse-editable-div",l(d),{"jse-short-text":o()}))))],ZA),ce("input",h,function(){var w=E();w===""&&u(""),y(d,I()(w))}),ce("keydown",h,function(w){w.stopPropagation();var x=s2(w);if(x==="Escape"&&(w.preventDefault(),B=!0,a()()),x==="Enter"||x==="Tab"){w.preventDefault(),B=!0;var R=E();s()(R,eI.nextInside)}x==="Ctrl+F"&&(w.preventDefault(),c()(!1)),x==="Ctrl+H"&&(w.preventDefault(),c()(!0))}),ce("paste",h,function(w){if(w.stopPropagation(),g()&&w.clipboardData){var x=w.clipboardData.getData("text/plain");g()(x)}}),ce("blur",h,function(){var w=document.hasFocus(),x=E();A("handleBlur",{hasFocus:w,closed:B,value:i(),newValue:x}),document.hasFocus()&&!B&&(B=!0,x!==i()&&s()(x,eI.self))}),iA(t,h),mt()}function _KA(t,e){ft(e,!1);var A=M(e,"path",9),i=M(e,"value",9),n=M(e,"selection",9),o=M(e,"mode",9),r=M(e,"parser",9),s=M(e,"normalization",9),a=M(e,"enforceString",9),c=M(e,"onPatch",9),g=M(e,"onPasteJson",9),I=M(e,"onSelect",9),C=M(e,"onFind",9),d=M(e,"focus",9),B=M(e,"findNextInside",9);function E(x){return a()?x:GQ(x,r())}function u(){I()(vi(A())),d()()}qt(!0);var h=ZA(()=>(k(s()),k(i()),oA(()=>s().escapeValue(i())))),w=ZA(()=>(k(Sr),k(n()),oA(()=>Sr(n())?n().initialValue:void 0)));kaA(t,{get value(){return l(h)},get initialValue(){return l(w)},label:"Edit value",onChange:function(x,R){c()([{op:"replace",path:Ct(A()),value:E(s().unescapeValue(x))}],(D,G,J)=>{if(!J||ri(A(),nt(J)))return{state:G,selection:R===eI.nextInside?B()(A()):vi(A())}}),d()()},onCancel:u,onPaste:function(x){try{var R=r().parse(x);Fo(R)&&g()({path:A(),contents:R,onPasteAsJson:()=>{u();var D=[{op:"replace",path:Ct(A()),value:R}];c()(D,(G,J)=>({state:id(G,J,A())}))}})}catch{}},get onFind(){return C()},onValueClass:function(x){return baA(E(s().unescapeValue(x)),o(),r())}}),mt()}function hQ(t,e,A){var i=yi(e),n=Ye(t,i);if(wo(n)){var o=ss(li(e));return A.map((c,g)=>({op:"add",path:Ct(i.concat(String(o+g))),value:c.value}))}if(Lo(n)){var r=li(e),s=Object.keys(n),a=r!==void 0?hf(s,r,!0):[];return[...A.map(c=>{var g=uf(c.key,s);return{op:"add",path:Ct(i.concat(g)),value:c.value}}),...a.map(c=>aI(i,c))]}throw new Error("Cannot create insert operations: parent must be an Object or Array")}function JG(t,e,A){var i=Ye(t,e);if(Array.isArray(i)){var n=i.length;return A.map((o,r)=>({op:"add",path:Ct(e.concat(String(n+r))),value:o.value}))}return A.map(o=>{var r=uf(o.key,Object.keys(i));return{op:"add",path:Ct(e.concat(r)),value:o.value}})}function ff(t,e,A,i){var n=uf(i,e.filter(r=>r!==A)),o=hf(e,A,!1);return[{op:"move",from:Ct(t.concat(A)),path:Ct(t.concat(n))},...o.map(r=>aI(t,r))]}function SaA(t,e){var A=li(e);if(Gi(A))throw new Error("Cannot duplicate root object");var i=yi(A),n=li(A),o=Ye(t,i);if(wo(o)){var r=li(e),s=r?ss(li(r))+1:0;return[...e.map((g,I)=>({op:"copy",from:Ct(g),path:Ct(i.concat(String(I+s)))}))]}if(Lo(o)){var a=Object.keys(o),c=n!==void 0?hf(a,n,!1):[];return[...e.map(g=>{var I=uf(li(g),a);return{op:"copy",from:Ct(g),path:Ct(i.concat(I))}}),...c.map(g=>aI(i,g))]}throw new Error("Cannot create duplicate operations: parent must be an Object or Array")}function RaA(t,e){if(Vi(e))return[{op:"move",from:Ct(e.path),path:""}];if(!Gn(e))throw new Error("Cannot create extract operations: parent must be an Object or Array");var A=yi(e.focusPath),i=Ye(t,A);if(wo(i)){var n=sI(t,e).map(r=>{var s=ss(li(r));return i[s]});return[{op:"replace",path:"",value:n}]}if(Lo(i)){var o={};return sI(t,e).forEach(r=>{var s=String(li(r));o[s]=i[s]}),[{op:"replace",path:"",value:o}]}throw new Error("Cannot extract: unsupported type of selection "+JSON.stringify(e))}function LaA(t,e,A,i){if(Lr(e)){var n=saA(A,i),o=yi(e.path),r=Ye(t,o);return ff(o,Object.keys(r),li(e.path),typeof n=="string"?n:A)}if(Vi(e)||Gn(e)&&Gi(e.focusPath))try{return[{op:"replace",path:Ct(nt(e)),value:Ef(A,G=>Bf(G,i))}]}catch{return[{op:"replace",path:Ct(nt(e)),value:A}]}if(Gn(e)){var s=CG(A,i);return function(G,J,z){var K=Tc(J),O=yi(K),V=Ye(G,O);if(wo(V)){var j=Tc(J),dA=j?ss(li(j)):0;return[...Ty(J),...z.map((VA,ie)=>({op:"add",path:Ct(O.concat(String(ie+dA))),value:VA.value}))]}if(Lo(V)){var fA=li(J),EA=yi(fA),IA=li(fA),SA=Object.keys(V),nA=IA!==void 0?hf(SA,IA,!1):[],lA=new Set(J.map(VA=>li(VA))),wA=SA.filter(VA=>!lA.has(VA));return[...Ty(J),...z.map(VA=>{var ie=uf(VA.key,wA);return{op:"add",path:Ct(EA.concat(ie)),value:VA.value}}),...nA.map(VA=>aI(EA,VA))]}throw new Error("Cannot create replace operations: parent must be an Object or Array")}(t,sI(t,e),s)}if(Ya(e)){var a=CG(A,i),c=e.path,g=yi(c),I=Ye(t,g);if(wo(I)){var C=ss(li(c));return hQ(t,g.concat(String(C+1)),a)}if(Lo(I)){var d=String(li(c)),B=Object.keys(I);if(Gi(B)||li(B)===d)return JG(t,g,a);var E=B.indexOf(d),u=B[E+1];return hQ(t,g.concat(u),a)}throw new Error("Cannot create insert operations: parent must be an Object or Array")}if(yr(e)){var h=CG(A,i),w=e.path,x=Ye(t,w);if(wo(x))return hQ(t,w.concat("0"),h);if(Lo(x)){var R=Object.keys(x);if(Gi(R))return JG(t,w,h);var D=Tc(R);return hQ(t,w.concat(D),h)}throw new Error("Cannot create insert operations: parent must be an Object or Array")}throw new Error("Cannot insert: unsupported type of selection "+JSON.stringify(e))}function Ty(t){return t.map(e=>({op:"remove",path:Ct(e)})).reverse()}function aI(t,e){return{op:"move",from:Ct(t.concat(e)),path:Ct(t.concat(e))}}function CG(t,e){var A=/^\s*{/.test(t),i=/^\s*\[/.test(t),n=saA(t,e),o=n!==void 0?n:Ef(t,r=>Bf(r,e));return A&&nn(o)||i&&Array.isArray(o)?[{key:"New item",value:o}]:Array.isArray(o)?o.map((r,s)=>({key:"New item "+s,value:r})):nn(o)?Object.keys(o).map(r=>({key:r,value:o[r]})):[{key:"New item",value:o}]}function xaA(t,e){if(Lr(e)){var A=yi(e.path),i=Ye(t,A),n=ff(A,Object.keys(i),li(e.path),"");return{operations:n,newSelection:SQ(t,n)}}if(Vi(e))return{operations:[{op:"replace",path:Ct(e.path),value:""}],newSelection:e};if(Gn(e)){var o=sI(t,e),r=Ty(o),s=li(o);if(Gi(s))return{operations:[{op:"replace",path:"",value:""}],newSelection:vi([])};var a=yi(s),c=Ye(t,a);if(wo(c)){var g=Tc(o),I=ss(li(g));return{operations:r,newSelection:I===0?c2(a):o2(a.concat(String(I-1)))}}if(Lo(c)){var C=Object.keys(c),d=Tc(o),B=li(d),E=C.indexOf(B),u=C[E-1];return{operations:r,newSelection:E===0?c2(a):o2(a.concat(u))}}throw new Error("Cannot create remove operations: parent must be an Object or Array")}throw new Error("Cannot remove: unsupported type of selection "+JSON.stringify(e))}function NaA(t,e){var A=function(i,n){if(Gi(n)||!n.every(i1))return n;var o=[];for(var r of n){var s=PrA(xs(r.from)),a=PrA(xs(r.path));if(!s||!a)return n;o.push({from:s,path:a,operation:r})}var c=o[0].path.parent,g=Ye(i,c);if(!Lo(g)||!o.every(B=>function(E,u){return ri(E.from.parent,u)&&ri(E.path.parent,u)}(B,c)))return n;var I=function(B,E){var u=Object.keys(E),h=u.slice();for(var w of B){var x=h.indexOf(w.from.key);x!==-1&&(h.splice(x,1),h.push(w.path.key))}for(var R=0;RB.operation,d=o.filter(B=>B.operation.from!==B.operation.path);return d.some(B=>B.path.key===I)?d.map(C):[aI(c,I),...d.map(C)]}(t,e);return W8(t,A,{before:(i,n,o)=>{if(mR(n)){var r=xs(n.path);return{revertOperations:[...o,...dG(i,r)]}}if(i1(n)){var s=xs(n.from);return{revertOperations:n.from===n.path?[n,...dG(i,s)]:[...o,...dG(i,s)]}}return{document:i}}})}function PrA(t){return t.length>0?{parent:yi(t),key:li(t)}:void 0}function dG(t,e){var A=yi(e),i=li(e),n=Ye(t,A);return Lo(n)?hf(Object.keys(n),i,!1).map(o=>aI(A,o)):[]}function jrA(t){var e=t.activeIndex0?0:-1,A=t.items[e],i=t.items.map((n,o)=>pe(pe({},n),{},{active:o===e}));return pe(pe({},t),{},{items:i,activeItem:A,activeIndex:e})}function qrA(t,e){var A,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=t.toLowerCase(),o=(A=i?.maxResults)!==null&&A!==void 0?A:1/0,r=i?.columns,s=[],a=[];function c(u){s.length>=o||s.push(u)}function g(u,h){if(wo(h)){var w=a.length;a.push("0");for(var x=0;x=o)return;a.pop()}else if(Lo(h)){var R=Object.keys(h),D=a.length;for(var G of(a.push(""),R))if(a[D]=G,VrA(G,u,a,zg.key,c),g(u,h[G]),s.length>=o)return;a.pop()}else VrA(String(h),u,a,zg.value,c)}if(t==="")return[];if(r){if(!Array.isArray(e))throw new Error("json must be an Array when option columns is defined");for(var I=0;IB.length+1;)a.pop();g(n,Ye(C,B))}if(s.length>=o)break}return s}return g(n,e),s}function VrA(t,e,A,i,n){var o=t.toLowerCase(),r=0,s=-1,a=-1;do(a=o.indexOf(e,s))!==-1&&(s=a+e.length,n({path:A.slice(0),field:i,fieldIndex:r,start:a,end:s}),r++);while(a!==-1)}function YG(t,e,A,i){return t.substring(0,A)+e+t.substring(i)}function ZrA(t,e,A){var i=t;return HR(A,n=>{i=YG(i,e,n.start,n.end)}),i}function GKA(t,e,A,i,n){var{field:o,path:r,start:s,end:a}=i;if(o===zg.key){var c=yi(r),g=Ye(t,c),I=li(r),C=ff(c,Object.keys(g),I,YG(I,A,s,a));return{newSelection:SQ(t,C),operations:C}}if(o===zg.value){var d=Ye(t,r);if(d===void 0)throw new Error("Cannot replace: path not found ".concat(Ct(r)));var B=typeof d=="string"?d:String(d),E=t0(t,e,r),u=YG(B,A,s,a),h=[{op:"replace",path:Ct(r),value:E?u:GQ(u,n)}];return{newSelection:SQ(t,h),operations:h}}throw new Error("Cannot replace: unknown type of search result field ".concat(o))}function WrA(t){return t.path.concat(t.field,String(t.fieldIndex))}function XrA(t){var e=faA(t)?t.searchResults.filter(A=>A.field===zg.key):void 0;return e&&e.length>0?e:void 0}function $rA(t){var e=faA(t)?t.searchResults.filter(A=>A.field===zg.value):void 0;return e&&e.length>0?e:void 0}var KKA={createObjectDocumentState:()=>({type:"object",properties:{}}),createArrayDocumentState:()=>({type:"array",items:[]}),createValueDocumentState:()=>({type:"value"})};function FaA(t,e){return e.reduce((A,i)=>function(n,o,r,s){return pK(n,o,r,s,KKA)}(t,A,i.path,(n,o)=>pe(pe({},o),{},{searchResults:o.searchResults?o.searchResults.concat(i):[i]})),void 0)}function Hy(t){var e,A=(e=t?.searchResults)!==null&&e!==void 0?e:[],i=Ua(t)?Object.values(t.properties).flatMap(Hy):Rr(t)?t.items.flatMap(Hy):[];return A.concat(i)}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -330,7 +330,7 @@ div.jse-editable-div.jse-empty.svelte-f9kmxj::after { .jse-highlight.jse-active.svelte-5fb7bl { background-color: var(--jse-search-match-active-color, var(--jse-search-match-color, #ffe665)); outline: var(--jse-search-match-outline, 2px solid #e0be00); -}`);var GKA=vA(" ");function _aA(t,e){ft(e,!1);var A=$(),i=M(e,"text",8),n=M(e,"searchResultItems",8);pA(()=>(k(i()),k(n())),()=>{y(A,function(r,s){var a=[],c=0;for(var g of s){var I=r.slice(c,g.start);I!==""&&a.push({resultIndex:void 0,type:"normal",text:I,active:!1});var C=r.slice(g.start,g.end);a.push({resultIndex:g.resultIndex,type:"highlight",text:C,active:g.active}),c=g.end}var d=li(s);return d&&d.endl(A),cr,(r,s)=>{var a=_o(),c=Mt(a),g=C=>{var d=jr();we(()=>pt(d,(l(s),oA(()=>l(s).text)))),iA(C,d)},I=C=>{var d,B=GKA(),E=W(B);we((u,h,w)=>{d=jt(B,1,"jse-highlight svelte-5fb7bl",null,d,u),gn(B,"data-search-result-index",h),pt(E,w)},[()=>({"jse-active":l(s).active}),()=>(l(s),oA(()=>String(l(s).resultIndex))),()=>(k(bQ),l(s),oA(()=>bQ(l(s).text)))],ZA),iA(C,B)};GA(c,C=>{l(s),oA(()=>l(s).type==="normal")?C(g):C(I,!1)}),iA(r,a)}),iA(t,o),mt()}function ky(t){var e=1e3;if(t<900)return t.toFixed()+" B";var A=t/e;if(A<900)return A.toFixed(1)+" KB";var i=A/e;if(i<900)return i.toFixed(1)+" MB";var n=i/e;return n<900?n.toFixed(1)+" GB":(n/e).toFixed(1)+" TB"}Ut(`/* over all fonts, sizes, and colors */ +}`);var UKA=vA(" ");function _aA(t,e){ft(e,!1);var A=$(),i=M(e,"text",8),n=M(e,"searchResultItems",8);pA(()=>(k(i()),k(n())),()=>{y(A,function(r,s){var a=[],c=0;for(var g of s){var I=r.slice(c,g.start);I!==""&&a.push({resultIndex:void 0,type:"normal",text:I,active:!1});var C=r.slice(g.start,g.end);a.push({resultIndex:g.resultIndex,type:"highlight",text:C,active:g.active}),c=g.end}var d=li(s);return d&&d.endl(A),cr,(r,s)=>{var a=_o(),c=Mt(a),g=C=>{var d=jr();we(()=>pt(d,(l(s),oA(()=>l(s).text)))),iA(C,d)},I=C=>{var d,B=UKA(),E=W(B);we((u,h,w)=>{d=jt(B,1,"jse-highlight svelte-5fb7bl",null,d,u),gn(B,"data-search-result-index",h),pt(E,w)},[()=>({"jse-active":l(s).active}),()=>(l(s),oA(()=>String(l(s).resultIndex))),()=>(k(bQ),l(s),oA(()=>bQ(l(s).text)))],ZA),iA(C,B)};GA(c,C=>{l(s),oA(()=>l(s).type==="normal")?C(g):C(I,!1)}),iA(r,a)}),iA(t,o),mt()}function ky(t){var e=1e3;if(t<900)return t.toFixed()+" B";var A=t/e;if(A<900)return A.toFixed(1)+" KB";var i=A/e;if(i<900)return i.toFixed(1)+" MB";var n=i/e;return n<900?n.toFixed(1)+" GB":(n/e).toFixed(1)+" TB"}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -368,7 +368,7 @@ div.jse-editable-div.jse-empty.svelte-f9kmxj::after { .jse-tag.disabled.svelte-jlw0fj { opacity: 0.7; cursor: inherit; -}`);var KKA=vA('');function Sy(t,e){ft(e,!0);var A,i=Ja(()=>e.onclick?o=>{o.preventDefault(),o.stopPropagation(),e.onclick()}:void 0),n=KKA();n.__click=function(){for(var o,r=arguments.length,s=new Array(r),a=0;a2?s-2:0),c=2;c{C!==(C=r())&&(g&&(tg(g),g=null),g=s0(()=>C(I,...a)))},gf)}(W(n),()=>{var o;return(o=e.children)!==null&&o!==void 0?o:rrA}),we(o=>A=jt(n,1,"jse-tag svelte-jlw0fj",null,A,o),[()=>({disabled:!e.onclick})]),iA(t,n),mt()}df(["click"]);function UKA(t,e,A){typeof e.value=="string"&&l(A)&&BK(t)&&(t.preventDefault(),t.stopPropagation(),window.open(e.value,"_blank"))}function JKA(t,e){e.readOnly||(t.preventDefault(),e.onSelect(Yy(e.path)))}Ut(`/* over all fonts, sizes, and colors */ +}`);var JKA=vA('');function Sy(t,e){ft(e,!0);var A,i=Ja(()=>e.onclick?o=>{o.preventDefault(),o.stopPropagation(),e.onclick()}:void 0),n=JKA();n.__click=function(){for(var o,r=arguments.length,s=new Array(r),a=0;a2?s-2:0),c=2;c{C!==(C=r())&&(g&&(tg(g),g=null),g=s0(()=>C(I,...a)))},gf)}(W(n),()=>{var o;return(o=e.children)!==null&&o!==void 0?o:rrA}),we(o=>A=jt(n,1,"jse-tag svelte-jlw0fj",null,A,o),[()=>({disabled:!e.onclick})]),iA(t,n),mt()}df(["click"]);function YKA(t,e,A){typeof e.value=="string"&&l(A)&&BK(t)&&(t.preventDefault(),t.stopPropagation(),window.open(e.value,"_blank"))}function TKA(t,e){e.readOnly||(t.preventDefault(),e.onSelect(Yy(e.path)))}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -436,7 +436,7 @@ div.jse-editable-div.jse-empty.svelte-f9kmxj::after { pointer-events: none; color: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); content: "value"; -}`);var YKA=vA('
        ');function TKA(t,e){ft(e,!0);var A=V0(!0),i=Ja(()=>l(A)&&typeof e.value=="string"&&e.value.length>e.truncateTextSize&&(!e.searchResultItems||!e.searchResultItems.some(d=>d.active&&d.end>e.truncateTextSize))),n=Ja(()=>l(i)&&typeof e.value=="string"?e.value.substring(0,e.truncateTextSize).trim():e.value),o=Ja(()=>n7(e.value));function r(){y(A,!1)}var s=YKA();s.__click=[UKA,e,o],s.__dblclick=[JKA,e];var a=W(s),c=d=>{var B=Ja(()=>e.normalization.escapeValue(l(n)));_aA(d,{get text(){return l(B)},get searchResultItems(){return e.searchResultItems}})},g=d=>{var B=jr();we(E=>pt(B,E),[()=>bQ(e.normalization.escapeValue(l(n)))]),iA(d,B)};GA(a,d=>{e.searchResultItems?d(c):d(g,!1)});var I=CA(a,2),C=d=>{Sy(d,{onclick:r,children:(B,E)=>{var u=jr();we(h=>pt(u,"Show more (".concat(h??"",")")),[()=>ky(e.value.length)]),iA(B,u)},$$slots:{default:!0}})};GA(I,d=>{l(i)&&typeof e.value=="string"&&d(C)}),we(d=>{jt(s,1,d,"svelte-c0g9qz"),gn(s,"title",l(o)?"Ctrl+Click or Ctrl+Enter to open url in new window":void 0)},[()=>rI(baA(e.value,e.mode,e.parser))]),iA(t,s),mt()}df(["click","dblclick"]);Ut(`/* over all fonts, sizes, and colors */ +}`);var HKA=vA('
        ');function OKA(t,e){ft(e,!0);var A=V0(!0),i=Ja(()=>l(A)&&typeof e.value=="string"&&e.value.length>e.truncateTextSize&&(!e.searchResultItems||!e.searchResultItems.some(d=>d.active&&d.end>e.truncateTextSize))),n=Ja(()=>l(i)&&typeof e.value=="string"?e.value.substring(0,e.truncateTextSize).trim():e.value),o=Ja(()=>n7(e.value));function r(){y(A,!1)}var s=HKA();s.__click=[YKA,e,o],s.__dblclick=[TKA,e];var a=W(s),c=d=>{var B=Ja(()=>e.normalization.escapeValue(l(n)));_aA(d,{get text(){return l(B)},get searchResultItems(){return e.searchResultItems}})},g=d=>{var B=jr();we(E=>pt(B,E),[()=>bQ(e.normalization.escapeValue(l(n)))]),iA(d,B)};GA(a,d=>{e.searchResultItems?d(c):d(g,!1)});var I=CA(a,2),C=d=>{Sy(d,{onclick:r,children:(B,E)=>{var u=jr();we(h=>pt(u,"Show more (".concat(h??"",")")),[()=>ky(e.value.length)]),iA(B,u)},$$slots:{default:!0}})};GA(I,d=>{l(i)&&typeof e.value=="string"&&d(C)}),we(d=>{jt(s,1,d,"svelte-c0g9qz"),gn(s,"title",l(o)?"Ctrl+Click or Ctrl+Enter to open url in new window":void 0)},[()=>rI(baA(e.value,e.mode,e.parser))]),iA(t,s),mt()}df(["click","dblclick"]);Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -465,7 +465,7 @@ div.jse-editable-div.jse-empty.svelte-f9kmxj::after { color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); white-space: nowrap; box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); -}`);var HKA=vA('
        ');function OKA(t,e){var A=M(e,"text",8),i=HKA(),n=W(i);we(()=>pt(n,A())),iA(t,i)}function RQ(t,e){var A,{text:i,openAbsolutePopup:n,closeAbsolutePopup:o}=e;function r(){A=n(OKA,{text:i},{position:"top",width:10*i.length,offsetTop:3,anchor:t,closeOnOuterClick:!0})}function s(){o(A)}return t.addEventListener("mouseenter",r),t.addEventListener("mouseleave",s),{destroy(){t.removeEventListener("mouseenter",r),t.removeEventListener("mouseleave",s)}}}Ut(`/* over all fonts, sizes, and colors */ +}`);var zKA=vA('
        ');function PKA(t,e){var A=M(e,"text",8),i=zKA(),n=W(i);we(()=>pt(n,A())),iA(t,i)}function RQ(t,e){var A,{text:i,openAbsolutePopup:n,closeAbsolutePopup:o}=e;function r(){A=n(PKA,{text:i},{position:"top",width:10*i.length,offsetTop:3,anchor:t,closeOnOuterClick:!0})}function s(){o(A)}return t.addEventListener("mouseenter",r),t.addEventListener("mouseleave",s),{destroy(){t.removeEventListener("mouseenter",r),t.removeEventListener("mouseleave",s)}}}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -490,13 +490,13 @@ div.jse-editable-div.jse-empty.svelte-f9kmxj::after { vertical-align: middle; display: inline-flex; color: var(--jse-value-color-number, #ee422e); -}`);var zKA=vA('
        ');function PKA(t,e){ft(e,!1);var A=$(void 0,!0),i=cI("absolute-popup"),n=M(e,"value",9);pA(()=>k(n()),()=>{y(A,"Time: ".concat(new Date(n()).toString()))}),ln(),qt(!0);var o=zKA();Ui(W(o),{get data(){return lX}}),Ts(o,(r,s)=>RQ?.(r,s),()=>pe({text:l(A)},i)),iA(t,o),mt()}function jKA(t){var e=[];return!t.isEditing&&OGA(t.value)&&e.push({component:mKA,props:t}),!t.isEditing&&zGA(t.value)&&e.push({component:yKA,props:t}),t.isEditing&&e.push({component:NKA,props:t}),t.isEditing||e.push({component:TKA,props:t}),!t.isEditing&&RG(t.value)&&e.push({component:PKA,props:t}),e}function Ta(t){return t.map((e,A)=>VKA.test(e)?"["+e+"]":/[.[\]]/.test(e)||e===""?'["'+function(i){return i.replace(/"/g,'\\"')}(e)+'"]':(A>0?".":"")+e).join("")}function qKA(t){for(var e=[],A=0;Ao==='"',!0)),n('"')):e.push(i(o=>o==="]")),n("]")):e.push(i(o=>o==="."||o==="["));function i(o){for(var r=arguments.length>1&&arguments[1]!==void 0&&arguments[1],s="";A({x:t,y:t}),XKA={left:"right",right:"left",bottom:"top",top:"bottom"},$KA={start:"end",end:"start"};function AsA(t,e,A){return XC(t,Oy(e,A))}function s7(t,e){return typeof t=="function"?t(e):t}function nd(t){return t.split("-")[0]}function a7(t){return t.split("-")[1]}function GaA(t){return t==="x"?"y":"x"}function KaA(t){return t==="y"?"height":"width"}var AUA=new Set(["top","bottom"]);function W1(t){return AUA.has(nd(t))?"y":"x"}function UaA(t){return GaA(W1(t))}function TG(t){return t.replace(/start|end/g,e=>$KA[e])}var esA=["left","right"],tsA=["right","left"],eUA=["top","bottom"],tUA=["bottom","top"];function iUA(t,e,A,i){var n=a7(t),o=function(r,s,a){switch(r){case"top":case"bottom":return a?s?tsA:esA:s?esA:tsA;case"left":case"right":return s?eUA:tUA;default:return[]}}(nd(t),A==="start",i);return n&&(o=o.map(r=>r+"-"+n),e&&(o=o.concat(o.map(TG)))),o}function fy(t){return t.replace(/left|right|bottom|top/g,e=>XKA[e])}function nUA(t){return typeof t!="number"?function(e){return pe({top:0,right:0,bottom:0,left:0},e)}(t):{top:t,right:t,bottom:t,left:t}}function Py(t){var{x:e,y:A,width:i,height:n}=t;return{width:i,height:n,top:A,left:e,right:e+i,bottom:A+n,x:e,y:A}}function isA(t,e,A){var i,{reference:n,floating:o}=t,r=W1(e),s=UaA(e),a=KaA(s),c=nd(e),g=r==="y",I=n.x+n.width/2-o.width/2,C=n.y+n.height/2-o.height/2,d=n[a]/2-o[a]/2;switch(c){case"top":i={x:I,y:n.y-o.height};break;case"bottom":i={x:I,y:n.y+n.height};break;case"right":i={x:n.x+n.width,y:C};break;case"left":i={x:n.x-o.width,y:C};break;default:i={x:n.x,y:n.y}}switch(a7(e)){case"start":i[s]-=d*(A&&g?-1:1);break;case"end":i[s]+=d*(A&&g?-1:1)}return i}var oUA=function(){var t=_t(function*(e,A,i){for(var{placement:n="bottom",strategy:o="absolute",middleware:r=[],platform:s}=i,a=r.filter(Boolean),c=yield s.isRTL==null?void 0:s.isRTL(A),g=yield s.getElementRects({reference:e,floating:A,strategy:o}),{x:I,y:C}=isA(g,n,c),d=n,B={},E=0,u=0;u"u")&&(t instanceof ShadowRoot||t instanceof mc(t).ShadowRoot)}var sUA=new Set(["inline","contents"]);function of(t){var{overflow:e,overflowX:A,overflowY:i,display:n}=jg(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+A)&&!sUA.has(n)}var aUA=new Set(["table","td","th"]);function cUA(t){return aUA.has(LQ(t))}var gUA=[":popover-open",":modal"];function jy(t){return gUA.some(e=>{try{return t.matches(e)}catch{return!1}})}var lUA=["transform","translate","scale","rotate","perspective"],IUA=["transform","translate","scale","rotate","perspective","filter"],CUA=["paint","layout","strict","content"];function zG(t){var e=vK(),A=Pg(t)?jg(t):t;return lUA.some(i=>!!A[i]&&A[i]!=="none")||!!A.containerType&&A.containerType!=="normal"||!e&&!!A.backdropFilter&&A.backdropFilter!=="none"||!e&&!!A.filter&&A.filter!=="none"||IUA.some(i=>(A.willChange||"").includes(i))||CUA.some(i=>(A.contain||"").includes(i))}function vK(){return!(typeof CSS>"u"||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}var dUA=new Set(["html","body","#document"]);function pQ(t){return dUA.has(LQ(t))}function jg(t){return mc(t).getComputedStyle(t)}function g7(t){return Pg(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function X1(t){if(LQ(t)==="html")return t;var e=t.assignedSlot||t.parentNode||nsA(t)&&t.host||r0(t);return nsA(e)?e.host:e}function TaA(t){var e=X1(t);return pQ(e)?t.ownerDocument?t.ownerDocument.body:t.body:a0(e)&&of(e)?e:TaA(e)}function rf(t,e,A){var i;e===void 0&&(e=[]),A===void 0&&(A=!0);var n=TaA(t),o=n===((i=t.ownerDocument)==null?void 0:i.body),r=mc(n);if(o){var s=PG(r);return e.concat(r,r.visualViewport||[],of(n)?n:[],s&&A?rf(s):[])}return e.concat(n,rf(n,[],A))}function PG(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function HaA(t){var e=jg(t),A=parseFloat(e.width)||0,i=parseFloat(e.height)||0,n=a0(t),o=n?t.offsetWidth:A,r=n?t.offsetHeight:i,s=zy(A)!==o||zy(i)!==r;return s&&(A=o,i=r),{width:A,height:i,$:s}}function MK(t){return Pg(t)?t:t.contextElement}function DQ(t){var e=MK(t);if(!a0(e))return o0(1);var A=e.getBoundingClientRect(),{width:i,height:n,$:o}=HaA(e),r=(o?zy(A.width):A.width)/i,s=(o?zy(A.height):A.height)/n;return r&&Number.isFinite(r)||(r=1),s&&Number.isFinite(s)||(s=1),{x:r,y:s}}var BUA=o0(0);function OaA(t){var e=mc(t);return vK()&&e.visualViewport?{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}:BUA}function od(t,e,A,i){e===void 0&&(e=!1),A===void 0&&(A=!1);var n=t.getBoundingClientRect(),o=MK(t),r=o0(1);e&&(i?Pg(i)&&(r=DQ(i)):r=DQ(t));var s=function(D,G,J){return G===void 0&&(G=!1),!(!J||G&&J!==mc(D))&&G}(o,A,i)?OaA(o):o0(0),a=(n.left+s.x)/r.x,c=(n.top+s.y)/r.y,g=n.width/r.x,I=n.height/r.y;if(o)for(var C=mc(o),d=i&&Pg(i)?mc(i):i,B=C,E=PG(B);E&&i&&d!==B;){var u=DQ(E),h=E.getBoundingClientRect(),w=jg(E),x=h.left+(E.clientLeft+parseFloat(w.paddingLeft))*u.x,R=h.top+(E.clientTop+parseFloat(w.paddingTop))*u.y;a*=u.x,c*=u.y,g*=u.x,I*=u.y,a+=x,c+=R,E=PG(B=mc(E))}return Py({width:g,height:I,x:a,y:c})}function bK(t,e){var A=g7(t).scrollLeft;return e?e.left+A:od(r0(t)).left+A}function zaA(t,e,A){A===void 0&&(A=!1);var i=t.getBoundingClientRect();return{x:i.left+e.scrollLeft-(A?0:bK(t,i)),y:i.top+e.scrollTop}}var EUA=new Set(["absolute","fixed"]);function osA(t,e,A){var i;if(e==="viewport")i=function(o,r){var s=mc(o),a=r0(o),c=s.visualViewport,g=a.clientWidth,I=a.clientHeight,C=0,d=0;if(c){g=c.width,I=c.height;var B=vK();(!B||B&&r==="fixed")&&(C=c.offsetLeft,d=c.offsetTop)}return{width:g,height:I,x:C,y:d}}(t,A);else if(e==="document")i=function(o){var r=r0(o),s=g7(o),a=o.ownerDocument.body,c=XC(r.scrollWidth,r.clientWidth,a.scrollWidth,a.clientWidth),g=XC(r.scrollHeight,r.clientHeight,a.scrollHeight,a.clientHeight),I=-s.scrollLeft+bK(o),C=-s.scrollTop;return jg(a).direction==="rtl"&&(I+=XC(r.clientWidth,a.clientWidth)-c),{width:c,height:g,x:I,y:C}}(r0(t));else if(Pg(e))i=function(o,r){var s=od(o,!0,r==="fixed"),a=s.top+o.clientTop,c=s.left+o.clientLeft,g=a0(o)?DQ(o):o0(1);return{width:o.clientWidth*g.x,height:o.clientHeight*g.y,x:c*g.x,y:a*g.y}}(e,A);else{var n=OaA(t);i={x:e.x-n.x,y:e.y-n.y,width:e.width,height:e.height}}return Py(i)}function PaA(t,e){var A=X1(t);return!(A===e||!Pg(A)||pQ(A))&&(jg(A).position==="fixed"||PaA(A,e))}function QUA(t,e,A){var i=a0(e),n=r0(e),o=A==="fixed",r=od(t,!0,o,e),s={scrollLeft:0,scrollTop:0},a=o0(0);function c(){a.x=bK(n)}if(i||!i&&!o)if((LQ(e)!=="body"||of(n))&&(s=g7(e)),i){var g=od(e,!0,o,e);a.x=g.x+e.clientLeft,a.y=g.y+e.clientTop}else n&&c();o&&!i&&n&&c();var I=!n||i||o?o0(0):zaA(n,s);return{x:r.left+s.scrollLeft-a.x-I.x,y:r.top+s.scrollTop-a.y-I.y,width:r.width,height:r.height}}function BG(t){return jg(t).position==="static"}function rsA(t,e){if(!a0(t)||jg(t).position==="fixed")return null;if(e)return e(t);var A=t.offsetParent;return r0(t)===A&&(A=A.ownerDocument.body),A}function ssA(t,e){var A=mc(t);if(jy(t))return A;if(!a0(t)){for(var i=X1(t);i&&!pQ(i);){if(Pg(i)&&!BG(i))return i;i=X1(i)}return A}for(var n=rsA(t,e);n&&cUA(n)&&BG(n);)n=rsA(n,e);return n&&pQ(n)&&BG(n)&&!zG(n)?A:n||function(o){for(var r=X1(o);a0(r)&&!pQ(r);){if(zG(r))return r;if(jy(r))return null;r=X1(r)}return null}(t)||A}var uUA={convertOffsetParentRelativeRectToViewportRelativeRect:function(t){var{elements:e,rect:A,offsetParent:i,strategy:n}=t,o=n==="fixed",r=r0(i),s=!!e&&jy(e.floating);if(i===r||s&&o)return A;var a={scrollLeft:0,scrollTop:0},c=o0(1),g=o0(0),I=a0(i);if((I||!I&&!o)&&((LQ(i)!=="body"||of(r))&&(a=g7(i)),a0(i))){var C=od(i);c=DQ(i),g.x=C.x+i.clientLeft,g.y=C.y+i.clientTop}var d=!r||I||o?o0(0):zaA(r,a,!0);return{width:A.width*c.x,height:A.height*c.y,x:A.x*c.x-a.scrollLeft*c.x+g.x+d.x,y:A.y*c.y-a.scrollTop*c.y+g.y+d.y}},getDocumentElement:r0,getClippingRect:function(t){var{element:e,boundary:A,rootBoundary:i,strategy:n}=t,o=[...A==="clippingAncestors"?jy(e)?[]:function(a,c){var g=c.get(a);if(g)return g;for(var I=rf(a,[],!1).filter(h=>Pg(h)&&LQ(h)!=="body"),C=null,d=jg(a).position==="fixed",B=d?X1(a):a;Pg(B)&&!pQ(B);){var E=jg(B),u=zG(B);u||E.position!=="fixed"||(C=null),(d?!u&&!C:!u&&E.position==="static"&&C&&EUA.has(C.position)||of(B)&&!u&&PaA(a,B))?I=I.filter(h=>h!==B):C=E,B=X1(B)}return c.set(a,I),I}(e,this._c):[].concat(A),i],r=o[0],s=o.reduce((a,c)=>{var g=osA(e,c,n);return a.top=XC(g.top,a.top),a.right=Oy(g.right,a.right),a.bottom=Oy(g.bottom,a.bottom),a.left=XC(g.left,a.left),a},osA(e,r,n));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},getOffsetParent:ssA,getElementRects:function(){var t=_t(function*(e){var A=this.getOffsetParent||ssA,i=this.getDimensions,n=yield i(e.floating);return{reference:QUA(e.reference,yield A(e.floating),e.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}});return function(e){return t.apply(this,arguments)}}(),getClientRects:function(t){return Array.from(t.getClientRects())},getDimensions:function(t){var{width:e,height:A}=HaA(t);return{width:e,height:A}},getScale:DQ,isElement:Pg,isRTL:function(t){return jg(t).direction==="rtl"}};function asA(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}function hUA(t,e,A,i){i===void 0&&(i={});var{ancestorScroll:n=!0,ancestorResize:o=!0,elementResize:r=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:a=!1}=i,c=MK(t),g=n||o?[...c?rf(c):[],...rf(e)]:[];g.forEach(u=>{n&&u.addEventListener("scroll",A,{passive:!0}),o&&u.addEventListener("resize",A)});var I,C=c&&s?function(u,h){var w,x=null,R=r0(u);function D(){var G;clearTimeout(w),(G=x)==null||G.disconnect(),x=null}return function G(J,z){J===void 0&&(J=!1),z===void 0&&(z=1),D();var K=u.getBoundingClientRect(),{left:O,top:V,width:j,height:dA}=K;if(J||h(),j&&dA){var fA={rootMargin:-hy(V)+"px "+-hy(R.clientWidth-(O+j))+"px "+-hy(R.clientHeight-(V+dA))+"px "+-hy(O)+"px",threshold:XC(0,Oy(1,z))||1},EA=!0;try{x=new IntersectionObserver(IA,pe(pe({},fA),{},{root:R.ownerDocument}))}catch{x=new IntersectionObserver(IA,fA)}x.observe(u)}function IA(SA){var nA=SA[0].intersectionRatio;if(nA!==z){if(!EA)return G();nA?G(!1,nA):w=setTimeout(()=>{G(!1,1e-7)},1e3)}nA!==1||asA(K,u.getBoundingClientRect())||G(),EA=!1}}(!0),D}(c,A):null,d=-1,B=null;r&&(B=new ResizeObserver(u=>{var[h]=u;h&&h.target===c&&B&&(B.unobserve(e),cancelAnimationFrame(d),d=requestAnimationFrame(()=>{var w;(w=B)==null||w.observe(e)})),A()}),c&&!a&&B.observe(c),B.observe(e));var E=a?od(t):null;return a&&function u(){var h=od(t);E&&!asA(E,h)&&A(),E=h,I=requestAnimationFrame(u)}(),A(),()=>{var u;g.forEach(h=>{n&&h.removeEventListener("scroll",A),o&&h.removeEventListener("resize",A)}),C?.(),(u=B)==null||u.disconnect(),B=null,a&&cancelAnimationFrame(I)}}var fUA=function(t){return t===void 0&&(t=0),{name:"offset",options:t,fn:e=>_t(function*(){var A,i,{x:n,y:o,placement:r,middlewareData:s}=e,a=yield function(c,g){return OG.apply(this,arguments)}(e,t);return r===((A=s.offset)==null?void 0:A.placement)&&(i=s.arrow)!=null&&i.alignmentOffset?{}:{x:n+a.x,y:o+a.y,data:pe(pe({},a),{},{placement:r})}})()}},mUA=function(t){return t===void 0&&(t={}),{name:"shift",options:t,fn:e=>_t(function*(){var{x:A,y:i,placement:n}=e,o=s7(t,e),{mainAxis:r=!0,crossAxis:s=!1,limiter:a={fn:x=>{var{x:R,y:D}=x;return{x:R,y:D}}}}=o,c=EsA(o,rGA),g={x:A,y:i},I=yield JaA(e,c),C=W1(nd(n)),d=GaA(C),B=g[d],E=g[C];if(r){var u=d==="y"?"bottom":"right";B=AsA(B+I[d==="y"?"top":"left"],B,B-I[u])}if(s){var h=C==="y"?"bottom":"right";E=AsA(E+I[C==="y"?"top":"left"],E,E-I[h])}var w=a.fn(pe(pe({},e),{},{[d]:B,[C]:E}));return pe(pe({},w),{},{data:{x:w.x-A,y:w.y-i,enabled:{[d]:r,[C]:s}}})})()}},pUA=function(t){return t===void 0&&(t={}),{name:"flip",options:t,fn:e=>_t(function*(){var A,i,{placement:n,middlewareData:o,rects:r,initialPlacement:s,platform:a,elements:c}=e,g=s7(t,e),{mainAxis:I=!0,crossAxis:C=!0,fallbackPlacements:d,fallbackStrategy:B="bestFit",fallbackAxisSideDirection:E="none",flipAlignment:u=!0}=g,h=EsA(g,oGA);if((A=o.arrow)!=null&&A.alignmentOffset)return{};var w=nd(n),x=W1(s),R=nd(s)===s,D=yield a.isRTL==null?void 0:a.isRTL(c.floating),G=d||(R||!u?[fy(s)]:function(wA){var VA=fy(wA);return[TG(wA),VA,TG(VA)]}(s)),J=E!=="none";!d&&J&&G.push(...iUA(s,u,E,D));var z=[s,...G],K=yield JaA(e,h),O=[],V=((i=o.flip)==null?void 0:i.overflows)||[];if(I&&O.push(K[w]),C){var j=function(wA,VA,ie){ie===void 0&&(ie=!1);var UA=a7(wA),BA=UaA(wA),JA=KaA(BA),Xe=BA==="x"?UA===(ie?"end":"start")?"right":"left":UA==="start"?"bottom":"top";return VA.reference[JA]>VA.floating[JA]&&(Xe=fy(Xe)),[Xe,fy(Xe)]}(n,r,D);O.push(K[j[0]],K[j[1]])}if(V=[...V,{placement:n,overflows:O}],!O.every(wA=>wA<=0)){var dA,fA,EA=(((dA=o.flip)==null?void 0:dA.index)||0)+1,IA=z[EA];if(IA&&(!(C==="alignment"&&x!==W1(IA))||V.every(wA=>wA.overflows[0]>0&&W1(wA.placement)===x)))return{data:{index:EA,overflows:V},reset:{placement:IA}};var SA=(fA=V.filter(wA=>wA.overflows[0]<=0).sort((wA,VA)=>wA.overflows[1]-VA.overflows[1])[0])==null?void 0:fA.placement;if(!SA)switch(B){case"bestFit":var nA,lA=(nA=V.filter(wA=>{if(J){var VA=W1(wA.placement);return VA===x||VA==="y"}return!0}).map(wA=>[wA.placement,wA.overflows.filter(VA=>VA>0).reduce((VA,ie)=>VA+ie,0)]).sort((wA,VA)=>wA[1]-VA[1])[0])==null?void 0:nA[0];lA&&(SA=lA);break;case"initialPlacement":SA=s}if(n!==SA)return{reset:{placement:SA}}}return{}})()}};function DUA(t){var e,A,i={autoUpdate:!0},n=t,o=a=>pe(pe(pe({},i),t||{}),a||{}),r=a=>{e&&A&&(n=o(a),((c,g,I)=>{var C=new Map,d=pe({platform:uUA},I),B=pe(pe({},d.platform),{},{_c:C});return oUA(c,g,pe(pe({},d),{},{platform:B}))})(e,A,n).then(c=>{var g;Object.assign(A.style,{position:c.strategy,left:"".concat(c.x,"px"),top:"".concat(c.y,"px")}),!((g=n)===null||g===void 0)&&g.onComputed&&n.onComputed(c)}))},s=a=>{ig(a.subscribe(c=>{e===void 0?(e=c,r()):(Object.assign(e,c),r())}))};return[a=>{if("subscribe"in a)return s(a),{};e=a,r()},(a,c)=>{var g;A=a,n=o(c),setTimeout(()=>r(c),0),r(c);var I=()=>{g&&(g(),g=void 0)},C=function(){var{autoUpdate:d}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:n||{};I(),d!==!1&&function(){return PsA.apply(this,arguments)}().then(()=>hUA(e,A,()=>r(n),d===!0?{}:d))};return g=C(),{update(d){r(d),g=C(d)},destroy(){I()}}},r]}function wUA(t){var{loadOptions:e,filterText:A,items:i,multiple:n,value:o,itemId:r,groupBy:s,filterSelectedItems:a,itemFilter:c,convertStringItemsToObjects:g,filterGroupedItems:I,label:C}=t;if(i&&e)return i;if(!i)return[];i&&i.length>0&&typeof i[0]!="object"&&(i=g(i));var d=i.filter(B=>{var E=c(B[C],A,B);return E&&n&&o!=null&&o.length&&(E=!o.some(u=>!!a&&u[r]===B[r])),E});return s&&(d=I(d)),d}function yUA(t){return jaA.apply(this,arguments)}function jaA(){return(jaA=_t(function*(t){var{dispatch:e,loadOptions:A,convertStringItemsToObjects:i,filterText:n}=t,o=yield A(n).catch(r=>{console.warn("svelte-select loadOptions error :>> ",r),e("error",{type:"loadOptions",details:r})});if(o&&!o.cancelled)return o?(o&&o.length>0&&typeof o[0]!="object"&&(o=i(o)),e("loaded",{items:o})):o=[],{filteredItems:o,loading:!1,focused:!0,listOpen:!0}})).apply(this,arguments)}Ut(` +}`);var jKA=vA('
        ');function qKA(t,e){ft(e,!1);var A=$(void 0,!0),i=cI("absolute-popup"),n=M(e,"value",9);pA(()=>k(n()),()=>{y(A,"Time: ".concat(new Date(n()).toString()))}),ln(),qt(!0);var o=jKA();Ui(W(o),{get data(){return lX}}),Ts(o,(r,s)=>RQ?.(r,s),()=>pe({text:l(A)},i)),iA(t,o),mt()}function VKA(t){var e=[];return!t.isEditing&&PGA(t.value)&&e.push({component:DKA,props:t}),!t.isEditing&&jGA(t.value)&&e.push({component:MKA,props:t}),t.isEditing&&e.push({component:_KA,props:t}),t.isEditing||e.push({component:OKA,props:t}),!t.isEditing&&RG(t.value)&&e.push({component:qKA,props:t}),e}function Ta(t){return t.map((e,A)=>WKA.test(e)?"["+e+"]":/[.[\]]/.test(e)||e===""?'["'+function(i){return i.replace(/"/g,'\\"')}(e)+'"]':(A>0?".":"")+e).join("")}function ZKA(t){for(var e=[],A=0;Ao==='"',!0)),n('"')):e.push(i(o=>o==="]")),n("]")):e.push(i(o=>o==="."||o==="["));function i(o){for(var r=arguments.length>1&&arguments[1]!==void 0&&arguments[1],s="";A({x:t,y:t}),AUA={left:"right",right:"left",bottom:"top",top:"bottom"},eUA={start:"end",end:"start"};function AsA(t,e,A){return XC(t,Oy(e,A))}function s7(t,e){return typeof t=="function"?t(e):t}function nd(t){return t.split("-")[0]}function a7(t){return t.split("-")[1]}function GaA(t){return t==="x"?"y":"x"}function KaA(t){return t==="y"?"height":"width"}var tUA=new Set(["top","bottom"]);function W1(t){return tUA.has(nd(t))?"y":"x"}function UaA(t){return GaA(W1(t))}function TG(t){return t.replace(/start|end/g,e=>eUA[e])}var esA=["left","right"],tsA=["right","left"],iUA=["top","bottom"],nUA=["bottom","top"];function oUA(t,e,A,i){var n=a7(t),o=function(r,s,a){switch(r){case"top":case"bottom":return a?s?tsA:esA:s?esA:tsA;case"left":case"right":return s?iUA:nUA;default:return[]}}(nd(t),A==="start",i);return n&&(o=o.map(r=>r+"-"+n),e&&(o=o.concat(o.map(TG)))),o}function fy(t){return t.replace(/left|right|bottom|top/g,e=>AUA[e])}function rUA(t){return typeof t!="number"?function(e){return pe({top:0,right:0,bottom:0,left:0},e)}(t):{top:t,right:t,bottom:t,left:t}}function Py(t){var{x:e,y:A,width:i,height:n}=t;return{width:i,height:n,top:A,left:e,right:e+i,bottom:A+n,x:e,y:A}}function isA(t,e,A){var i,{reference:n,floating:o}=t,r=W1(e),s=UaA(e),a=KaA(s),c=nd(e),g=r==="y",I=n.x+n.width/2-o.width/2,C=n.y+n.height/2-o.height/2,d=n[a]/2-o[a]/2;switch(c){case"top":i={x:I,y:n.y-o.height};break;case"bottom":i={x:I,y:n.y+n.height};break;case"right":i={x:n.x+n.width,y:C};break;case"left":i={x:n.x-o.width,y:C};break;default:i={x:n.x,y:n.y}}switch(a7(e)){case"start":i[s]-=d*(A&&g?-1:1);break;case"end":i[s]+=d*(A&&g?-1:1)}return i}var sUA=function(){var t=_t(function*(e,A,i){for(var{placement:n="bottom",strategy:o="absolute",middleware:r=[],platform:s}=i,a=r.filter(Boolean),c=yield s.isRTL==null?void 0:s.isRTL(A),g=yield s.getElementRects({reference:e,floating:A,strategy:o}),{x:I,y:C}=isA(g,n,c),d=n,B={},E=0,u=0;u"u")&&(t instanceof ShadowRoot||t instanceof mc(t).ShadowRoot)}var cUA=new Set(["inline","contents"]);function of(t){var{overflow:e,overflowX:A,overflowY:i,display:n}=jg(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+A)&&!cUA.has(n)}var gUA=new Set(["table","td","th"]);function lUA(t){return gUA.has(LQ(t))}var IUA=[":popover-open",":modal"];function jy(t){return IUA.some(e=>{try{return t.matches(e)}catch{return!1}})}var CUA=["transform","translate","scale","rotate","perspective"],dUA=["transform","translate","scale","rotate","perspective","filter"],BUA=["paint","layout","strict","content"];function zG(t){var e=vK(),A=Pg(t)?jg(t):t;return CUA.some(i=>!!A[i]&&A[i]!=="none")||!!A.containerType&&A.containerType!=="normal"||!e&&!!A.backdropFilter&&A.backdropFilter!=="none"||!e&&!!A.filter&&A.filter!=="none"||dUA.some(i=>(A.willChange||"").includes(i))||BUA.some(i=>(A.contain||"").includes(i))}function vK(){return!(typeof CSS>"u"||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}var EUA=new Set(["html","body","#document"]);function pQ(t){return EUA.has(LQ(t))}function jg(t){return mc(t).getComputedStyle(t)}function g7(t){return Pg(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function X1(t){if(LQ(t)==="html")return t;var e=t.assignedSlot||t.parentNode||nsA(t)&&t.host||r0(t);return nsA(e)?e.host:e}function TaA(t){var e=X1(t);return pQ(e)?t.ownerDocument?t.ownerDocument.body:t.body:a0(e)&&of(e)?e:TaA(e)}function rf(t,e,A){var i;e===void 0&&(e=[]),A===void 0&&(A=!0);var n=TaA(t),o=n===((i=t.ownerDocument)==null?void 0:i.body),r=mc(n);if(o){var s=PG(r);return e.concat(r,r.visualViewport||[],of(n)?n:[],s&&A?rf(s):[])}return e.concat(n,rf(n,[],A))}function PG(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function HaA(t){var e=jg(t),A=parseFloat(e.width)||0,i=parseFloat(e.height)||0,n=a0(t),o=n?t.offsetWidth:A,r=n?t.offsetHeight:i,s=zy(A)!==o||zy(i)!==r;return s&&(A=o,i=r),{width:A,height:i,$:s}}function MK(t){return Pg(t)?t:t.contextElement}function DQ(t){var e=MK(t);if(!a0(e))return o0(1);var A=e.getBoundingClientRect(),{width:i,height:n,$:o}=HaA(e),r=(o?zy(A.width):A.width)/i,s=(o?zy(A.height):A.height)/n;return r&&Number.isFinite(r)||(r=1),s&&Number.isFinite(s)||(s=1),{x:r,y:s}}var QUA=o0(0);function OaA(t){var e=mc(t);return vK()&&e.visualViewport?{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}:QUA}function od(t,e,A,i){e===void 0&&(e=!1),A===void 0&&(A=!1);var n=t.getBoundingClientRect(),o=MK(t),r=o0(1);e&&(i?Pg(i)&&(r=DQ(i)):r=DQ(t));var s=function(D,G,J){return G===void 0&&(G=!1),!(!J||G&&J!==mc(D))&&G}(o,A,i)?OaA(o):o0(0),a=(n.left+s.x)/r.x,c=(n.top+s.y)/r.y,g=n.width/r.x,I=n.height/r.y;if(o)for(var C=mc(o),d=i&&Pg(i)?mc(i):i,B=C,E=PG(B);E&&i&&d!==B;){var u=DQ(E),h=E.getBoundingClientRect(),w=jg(E),x=h.left+(E.clientLeft+parseFloat(w.paddingLeft))*u.x,R=h.top+(E.clientTop+parseFloat(w.paddingTop))*u.y;a*=u.x,c*=u.y,g*=u.x,I*=u.y,a+=x,c+=R,E=PG(B=mc(E))}return Py({width:g,height:I,x:a,y:c})}function bK(t,e){var A=g7(t).scrollLeft;return e?e.left+A:od(r0(t)).left+A}function zaA(t,e,A){A===void 0&&(A=!1);var i=t.getBoundingClientRect();return{x:i.left+e.scrollLeft-(A?0:bK(t,i)),y:i.top+e.scrollTop}}var uUA=new Set(["absolute","fixed"]);function osA(t,e,A){var i;if(e==="viewport")i=function(o,r){var s=mc(o),a=r0(o),c=s.visualViewport,g=a.clientWidth,I=a.clientHeight,C=0,d=0;if(c){g=c.width,I=c.height;var B=vK();(!B||B&&r==="fixed")&&(C=c.offsetLeft,d=c.offsetTop)}return{width:g,height:I,x:C,y:d}}(t,A);else if(e==="document")i=function(o){var r=r0(o),s=g7(o),a=o.ownerDocument.body,c=XC(r.scrollWidth,r.clientWidth,a.scrollWidth,a.clientWidth),g=XC(r.scrollHeight,r.clientHeight,a.scrollHeight,a.clientHeight),I=-s.scrollLeft+bK(o),C=-s.scrollTop;return jg(a).direction==="rtl"&&(I+=XC(r.clientWidth,a.clientWidth)-c),{width:c,height:g,x:I,y:C}}(r0(t));else if(Pg(e))i=function(o,r){var s=od(o,!0,r==="fixed"),a=s.top+o.clientTop,c=s.left+o.clientLeft,g=a0(o)?DQ(o):o0(1);return{width:o.clientWidth*g.x,height:o.clientHeight*g.y,x:c*g.x,y:a*g.y}}(e,A);else{var n=OaA(t);i={x:e.x-n.x,y:e.y-n.y,width:e.width,height:e.height}}return Py(i)}function PaA(t,e){var A=X1(t);return!(A===e||!Pg(A)||pQ(A))&&(jg(A).position==="fixed"||PaA(A,e))}function hUA(t,e,A){var i=a0(e),n=r0(e),o=A==="fixed",r=od(t,!0,o,e),s={scrollLeft:0,scrollTop:0},a=o0(0);function c(){a.x=bK(n)}if(i||!i&&!o)if((LQ(e)!=="body"||of(n))&&(s=g7(e)),i){var g=od(e,!0,o,e);a.x=g.x+e.clientLeft,a.y=g.y+e.clientTop}else n&&c();o&&!i&&n&&c();var I=!n||i||o?o0(0):zaA(n,s);return{x:r.left+s.scrollLeft-a.x-I.x,y:r.top+s.scrollTop-a.y-I.y,width:r.width,height:r.height}}function BG(t){return jg(t).position==="static"}function rsA(t,e){if(!a0(t)||jg(t).position==="fixed")return null;if(e)return e(t);var A=t.offsetParent;return r0(t)===A&&(A=A.ownerDocument.body),A}function ssA(t,e){var A=mc(t);if(jy(t))return A;if(!a0(t)){for(var i=X1(t);i&&!pQ(i);){if(Pg(i)&&!BG(i))return i;i=X1(i)}return A}for(var n=rsA(t,e);n&&lUA(n)&&BG(n);)n=rsA(n,e);return n&&pQ(n)&&BG(n)&&!zG(n)?A:n||function(o){for(var r=X1(o);a0(r)&&!pQ(r);){if(zG(r))return r;if(jy(r))return null;r=X1(r)}return null}(t)||A}var fUA={convertOffsetParentRelativeRectToViewportRelativeRect:function(t){var{elements:e,rect:A,offsetParent:i,strategy:n}=t,o=n==="fixed",r=r0(i),s=!!e&&jy(e.floating);if(i===r||s&&o)return A;var a={scrollLeft:0,scrollTop:0},c=o0(1),g=o0(0),I=a0(i);if((I||!I&&!o)&&((LQ(i)!=="body"||of(r))&&(a=g7(i)),a0(i))){var C=od(i);c=DQ(i),g.x=C.x+i.clientLeft,g.y=C.y+i.clientTop}var d=!r||I||o?o0(0):zaA(r,a,!0);return{width:A.width*c.x,height:A.height*c.y,x:A.x*c.x-a.scrollLeft*c.x+g.x+d.x,y:A.y*c.y-a.scrollTop*c.y+g.y+d.y}},getDocumentElement:r0,getClippingRect:function(t){var{element:e,boundary:A,rootBoundary:i,strategy:n}=t,o=[...A==="clippingAncestors"?jy(e)?[]:function(a,c){var g=c.get(a);if(g)return g;for(var I=rf(a,[],!1).filter(h=>Pg(h)&&LQ(h)!=="body"),C=null,d=jg(a).position==="fixed",B=d?X1(a):a;Pg(B)&&!pQ(B);){var E=jg(B),u=zG(B);u||E.position!=="fixed"||(C=null),(d?!u&&!C:!u&&E.position==="static"&&C&&uUA.has(C.position)||of(B)&&!u&&PaA(a,B))?I=I.filter(h=>h!==B):C=E,B=X1(B)}return c.set(a,I),I}(e,this._c):[].concat(A),i],r=o[0],s=o.reduce((a,c)=>{var g=osA(e,c,n);return a.top=XC(g.top,a.top),a.right=Oy(g.right,a.right),a.bottom=Oy(g.bottom,a.bottom),a.left=XC(g.left,a.left),a},osA(e,r,n));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},getOffsetParent:ssA,getElementRects:function(){var t=_t(function*(e){var A=this.getOffsetParent||ssA,i=this.getDimensions,n=yield i(e.floating);return{reference:hUA(e.reference,yield A(e.floating),e.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}});return function(e){return t.apply(this,arguments)}}(),getClientRects:function(t){return Array.from(t.getClientRects())},getDimensions:function(t){var{width:e,height:A}=HaA(t);return{width:e,height:A}},getScale:DQ,isElement:Pg,isRTL:function(t){return jg(t).direction==="rtl"}};function asA(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}function mUA(t,e,A,i){i===void 0&&(i={});var{ancestorScroll:n=!0,ancestorResize:o=!0,elementResize:r=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:a=!1}=i,c=MK(t),g=n||o?[...c?rf(c):[],...rf(e)]:[];g.forEach(u=>{n&&u.addEventListener("scroll",A,{passive:!0}),o&&u.addEventListener("resize",A)});var I,C=c&&s?function(u,h){var w,x=null,R=r0(u);function D(){var G;clearTimeout(w),(G=x)==null||G.disconnect(),x=null}return function G(J,z){J===void 0&&(J=!1),z===void 0&&(z=1),D();var K=u.getBoundingClientRect(),{left:O,top:V,width:j,height:dA}=K;if(J||h(),j&&dA){var fA={rootMargin:-hy(V)+"px "+-hy(R.clientWidth-(O+j))+"px "+-hy(R.clientHeight-(V+dA))+"px "+-hy(O)+"px",threshold:XC(0,Oy(1,z))||1},EA=!0;try{x=new IntersectionObserver(IA,pe(pe({},fA),{},{root:R.ownerDocument}))}catch{x=new IntersectionObserver(IA,fA)}x.observe(u)}function IA(SA){var nA=SA[0].intersectionRatio;if(nA!==z){if(!EA)return G();nA?G(!1,nA):w=setTimeout(()=>{G(!1,1e-7)},1e3)}nA!==1||asA(K,u.getBoundingClientRect())||G(),EA=!1}}(!0),D}(c,A):null,d=-1,B=null;r&&(B=new ResizeObserver(u=>{var[h]=u;h&&h.target===c&&B&&(B.unobserve(e),cancelAnimationFrame(d),d=requestAnimationFrame(()=>{var w;(w=B)==null||w.observe(e)})),A()}),c&&!a&&B.observe(c),B.observe(e));var E=a?od(t):null;return a&&function u(){var h=od(t);E&&!asA(E,h)&&A(),E=h,I=requestAnimationFrame(u)}(),A(),()=>{var u;g.forEach(h=>{n&&h.removeEventListener("scroll",A),o&&h.removeEventListener("resize",A)}),C?.(),(u=B)==null||u.disconnect(),B=null,a&&cancelAnimationFrame(I)}}var pUA=function(t){return t===void 0&&(t=0),{name:"offset",options:t,fn:e=>_t(function*(){var A,i,{x:n,y:o,placement:r,middlewareData:s}=e,a=yield function(c,g){return OG.apply(this,arguments)}(e,t);return r===((A=s.offset)==null?void 0:A.placement)&&(i=s.arrow)!=null&&i.alignmentOffset?{}:{x:n+a.x,y:o+a.y,data:pe(pe({},a),{},{placement:r})}})()}},DUA=function(t){return t===void 0&&(t={}),{name:"shift",options:t,fn:e=>_t(function*(){var{x:A,y:i,placement:n}=e,o=s7(t,e),{mainAxis:r=!0,crossAxis:s=!1,limiter:a={fn:x=>{var{x:R,y:D}=x;return{x:R,y:D}}}}=o,c=EsA(o,aGA),g={x:A,y:i},I=yield JaA(e,c),C=W1(nd(n)),d=GaA(C),B=g[d],E=g[C];if(r){var u=d==="y"?"bottom":"right";B=AsA(B+I[d==="y"?"top":"left"],B,B-I[u])}if(s){var h=C==="y"?"bottom":"right";E=AsA(E+I[C==="y"?"top":"left"],E,E-I[h])}var w=a.fn(pe(pe({},e),{},{[d]:B,[C]:E}));return pe(pe({},w),{},{data:{x:w.x-A,y:w.y-i,enabled:{[d]:r,[C]:s}}})})()}},wUA=function(t){return t===void 0&&(t={}),{name:"flip",options:t,fn:e=>_t(function*(){var A,i,{placement:n,middlewareData:o,rects:r,initialPlacement:s,platform:a,elements:c}=e,g=s7(t,e),{mainAxis:I=!0,crossAxis:C=!0,fallbackPlacements:d,fallbackStrategy:B="bestFit",fallbackAxisSideDirection:E="none",flipAlignment:u=!0}=g,h=EsA(g,sGA);if((A=o.arrow)!=null&&A.alignmentOffset)return{};var w=nd(n),x=W1(s),R=nd(s)===s,D=yield a.isRTL==null?void 0:a.isRTL(c.floating),G=d||(R||!u?[fy(s)]:function(wA){var VA=fy(wA);return[TG(wA),VA,TG(VA)]}(s)),J=E!=="none";!d&&J&&G.push(...oUA(s,u,E,D));var z=[s,...G],K=yield JaA(e,h),O=[],V=((i=o.flip)==null?void 0:i.overflows)||[];if(I&&O.push(K[w]),C){var j=function(wA,VA,ie){ie===void 0&&(ie=!1);var UA=a7(wA),BA=UaA(wA),JA=KaA(BA),Xe=BA==="x"?UA===(ie?"end":"start")?"right":"left":UA==="start"?"bottom":"top";return VA.reference[JA]>VA.floating[JA]&&(Xe=fy(Xe)),[Xe,fy(Xe)]}(n,r,D);O.push(K[j[0]],K[j[1]])}if(V=[...V,{placement:n,overflows:O}],!O.every(wA=>wA<=0)){var dA,fA,EA=(((dA=o.flip)==null?void 0:dA.index)||0)+1,IA=z[EA];if(IA&&(!(C==="alignment"&&x!==W1(IA))||V.every(wA=>wA.overflows[0]>0&&W1(wA.placement)===x)))return{data:{index:EA,overflows:V},reset:{placement:IA}};var SA=(fA=V.filter(wA=>wA.overflows[0]<=0).sort((wA,VA)=>wA.overflows[1]-VA.overflows[1])[0])==null?void 0:fA.placement;if(!SA)switch(B){case"bestFit":var nA,lA=(nA=V.filter(wA=>{if(J){var VA=W1(wA.placement);return VA===x||VA==="y"}return!0}).map(wA=>[wA.placement,wA.overflows.filter(VA=>VA>0).reduce((VA,ie)=>VA+ie,0)]).sort((wA,VA)=>wA[1]-VA[1])[0])==null?void 0:nA[0];lA&&(SA=lA);break;case"initialPlacement":SA=s}if(n!==SA)return{reset:{placement:SA}}}return{}})()}};function yUA(t){var e,A,i={autoUpdate:!0},n=t,o=a=>pe(pe(pe({},i),t||{}),a||{}),r=a=>{e&&A&&(n=o(a),((c,g,I)=>{var C=new Map,d=pe({platform:fUA},I),B=pe(pe({},d.platform),{},{_c:C});return sUA(c,g,pe(pe({},d),{},{platform:B}))})(e,A,n).then(c=>{var g;Object.assign(A.style,{position:c.strategy,left:"".concat(c.x,"px"),top:"".concat(c.y,"px")}),!((g=n)===null||g===void 0)&&g.onComputed&&n.onComputed(c)}))},s=a=>{ig(a.subscribe(c=>{e===void 0?(e=c,r()):(Object.assign(e,c),r())}))};return[a=>{if("subscribe"in a)return s(a),{};e=a,r()},(a,c)=>{var g;A=a,n=o(c),setTimeout(()=>r(c),0),r(c);var I=()=>{g&&(g(),g=void 0)},C=function(){var{autoUpdate:d}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:n||{};I(),d!==!1&&function(){return PsA.apply(this,arguments)}().then(()=>mUA(e,A,()=>r(n),d===!0?{}:d))};return g=C(),{update(d){r(d),g=C(d)},destroy(){I()}}},r]}function vUA(t){var{loadOptions:e,filterText:A,items:i,multiple:n,value:o,itemId:r,groupBy:s,filterSelectedItems:a,itemFilter:c,convertStringItemsToObjects:g,filterGroupedItems:I,label:C}=t;if(i&&e)return i;if(!i)return[];i&&i.length>0&&typeof i[0]!="object"&&(i=g(i));var d=i.filter(B=>{var E=c(B[C],A,B);return E&&n&&o!=null&&o.length&&(E=!o.some(u=>!!a&&u[r]===B[r])),E});return s&&(d=I(d)),d}function MUA(t){return jaA.apply(this,arguments)}function jaA(){return(jaA=_t(function*(t){var{dispatch:e,loadOptions:A,convertStringItemsToObjects:i,filterText:n}=t,o=yield A(n).catch(r=>{console.warn("svelte-select loadOptions error :>> ",r),e("error",{type:"loadOptions",details:r})});if(o&&!o.cancelled)return o?(o&&o.length>0&&typeof o[0]!="object"&&(o=i(o)),e("loaded",{items:o})):o=[],{filteredItems:o,loading:!1,focused:!0,listOpen:!0}})).apply(this,arguments)}Ut(` svg.svelte-qbd276 { width: var(--chevron-icon-width, 20px); height: var(--chevron-icon-width, 20px); color: var(--chevron-icon-colour, currentColor); } -`);var vUA=II(``);function EG(t){iA(t,MUA())}Ut(` +`);var kUA=II(``);function EG(t){iA(t,kUA())}Ut(` .loading.svelte-1p3nqvd { width: var(--spinner-width, 20px); height: var(--spinner-height, 20px); @@ -527,7 +527,7 @@ div.jse-editable-div.jse-empty.svelte-f9kmxj::after { transform: rotate(360deg); } } -`);var bUA=II('');Ut(` +`);var SUA=II('');Ut(` .svelte-select.svelte-82qwg8 { /* deprecating camelCase custom props in favour of kebab-case for v5 */ --borderRadius: var(--border-radius); @@ -914,7 +914,7 @@ div.jse-editable-div.jse-empty.svelte-f9kmxj::after { bottom: 0; right: 0; } -`);var kUA=vA('
        '),SUA=vA('
        No options
        '),RUA=vA('
        '),LUA=vA(' ',1),xUA=vA('
        '),NUA=vA('
        '),FUA=vA("
        "),_UA=vA(''),GUA=vA(''),KUA=vA(''),UUA=vA(''),JUA=vA(''),YUA=vA('
        ');function jC(t,e){var A=function(aA){var DA={};for(var PA in aA.children&&(DA.default=!0),aA.$$slots)DA[PA]=!0;return DA}(e);ft(e,!1);var i,n=$(),o=$(),r=$(),s=$(),a=$(),c=$(),g=$(),I=$(),C=$(),d=LGA(),B=M(e,"justValue",12,null),E=M(e,"filter",8,wUA),u=M(e,"getItems",8,yUA),h=M(e,"id",8,null),w=M(e,"name",8,null),x=M(e,"container",12,void 0),R=M(e,"input",12,void 0),D=M(e,"multiple",8,!1),G=M(e,"multiFullItemClearable",8,!1),J=M(e,"disabled",8,!1),z=M(e,"focused",12,!1),K=M(e,"value",12,null),O=M(e,"filterText",12,""),V=M(e,"placeholder",8,"Please select"),j=M(e,"placeholderAlwaysShow",8,!1),dA=M(e,"items",12,null),fA=M(e,"label",8,"label"),EA=M(e,"itemFilter",8,(aA,DA,PA)=>"".concat(aA).toLowerCase().includes(DA.toLowerCase())),IA=M(e,"groupBy",8,void 0),SA=M(e,"groupFilter",8,aA=>aA),nA=M(e,"groupHeaderSelectable",8,!1),lA=M(e,"itemId",8,"value"),wA=M(e,"loadOptions",8,void 0),VA=M(e,"containerStyles",8,""),ie=M(e,"hasError",8,!1),UA=M(e,"filterSelectedItems",8,!0),BA=M(e,"required",8,!1),JA=M(e,"closeListOnChange",8,!0),Xe=M(e,"clearFilterTextOnBlur",8,!0),We=M(e,"createGroupHeaderItem",8,(aA,DA)=>({value:aA,[fA()]:aA})),KA=()=>l(g),tA=M(e,"searchable",8,!0),OA=M(e,"inputStyles",8,""),gA=M(e,"clearable",8,!0),zA=M(e,"loading",12,!1),xA=M(e,"listOpen",12,!1),Me=M(e,"debounce",8,function(aA){var DA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;clearTimeout(i),i=setTimeout(aA,DA)}),LA=M(e,"debounceWait",8,300),cA=M(e,"hideEmptyState",8,!1),Gt=M(e,"inputAttributes",24,()=>({})),ct=M(e,"listAutoWidth",8,!0),oe=M(e,"showChevron",8,!1),Dt=M(e,"listOffset",8,5),_e=M(e,"hoverItemIndex",12,0),Re=M(e,"floatingConfig",24,()=>({})),St=M(e,"class",8,""),Se=$(),Wt=$(),L=$(),T=$(),P=$();function X(aA){return aA.map((DA,PA)=>({index:PA,value:DA,label:"".concat(DA)}))}function kA(aA){var DA=[],PA={};aA.forEach(vt=>{var Yt=IA()(vt);DA.includes(Yt)||(DA.push(Yt),PA[Yt]=[],Yt&&PA[Yt].push(Object.assign(We()(Yt,vt),{id:Yt,groupHeader:!0,selectable:nA()}))),PA[Yt].push(Object.assign({groupItem:!!Yt},vt))});var Je=[];return SA()(DA).forEach(vt=>{PA[vt]&&Je.push(...PA[vt])}),Je}function le(){var aA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,DA=arguments.length>1?arguments[1]:void 0;_e(aA<0?0:aA),!DA&&IA()&&l(g)[_e()]&&!l(g)[_e()].selectable&&ai(1)}function Ee(){var aA=!0;if(K()){var DA=[],PA=[];K().forEach(Je=>{DA.includes(Je[lA()])?aA=!1:(DA.push(Je[lA()]),PA.push(Je))}),aA||K(PA)}return aA}function NA(aA){var DA=aA?aA[lA()]:K()[lA()];return dA().find(PA=>PA[lA()]===DA)}function MA(aA){return Ct.apply(this,arguments)}function Ct(){return(Ct=_t(function*(aA){var DA=K()[aA];K().length===1?K(void 0):K(K().filter(PA=>PA!==DA)),d("clear",DA)})).apply(this,arguments)}function $e(aA){if(z())switch(aA.stopPropagation(),aA.key){case"Escape":aA.preventDefault(),Le();break;case"Enter":if(aA.preventDefault(),xA()){if(l(g).length===0)break;var DA=l(g)[_e()];if(K()&&!D()&&K()[lA()]===DA[lA()]){Le();break}b(l(g)[_e()])}break;case"ArrowDown":aA.preventDefault(),xA()?ai(1):(xA(!0),y(Se,void 0));break;case"ArrowUp":aA.preventDefault(),xA()?ai(-1):(xA(!0),y(Se,void 0));break;case"Tab":if(xA()&&z()){if(l(g).length===0||K()&&K()[lA()]===l(g)[_e()][lA()])return Le();aA.preventDefault(),b(l(g)[_e()]),Le()}break;case"Backspace":if(!D()||O().length>0)return;if(D()&&K()&&K().length>0){if(MA(l(Se)!==void 0?l(Se):K().length-1),l(Se)===0||l(Se)===void 0)break;y(Se,K().length>l(Se)?l(Se)-1:void 0)}break;case"ArrowLeft":if(!K()||!D()||O().length>0)return;l(Se)===void 0?y(Se,K().length-1):K().length>l(Se)&&l(Se)!==0&&y(Se,l(Se)-1);break;case"ArrowRight":if(!K()||!D()||O().length>0||l(Se)===void 0)return;l(Se)===K().length-1?y(Se,void 0):l(Se)0?xA(!0):void xA(!xA())}function Oi(){d("clear",K()),K(void 0),Le(),XA()}function Le(){Xe()&&O(""),xA(!1)}xGA(_t(function*(){y(Wt,K()),y(L,O()),y(T,D())})),ws(()=>{xA()&&z(!0),z()&&R()&&R().focus()});var zi=M(e,"ariaValues",8,aA=>"Option ".concat(aA,", selected.")),fi=M(e,"ariaListOpen",8,(aA,DA)=>"You are currently focused on option ".concat(aA,". There are ").concat(DA," results available.")),Ht=M(e,"ariaFocused",8,()=>"Select is focused, type to refine list, press down to open the menu."),Rt,Bi=$(null);function Mi(){clearTimeout(Rt),Rt=setTimeout(()=>{Jt=!1},100)}ig(()=>{var aA;(aA=l(Bi))===null||aA===void 0||aA.remove()});var Jt=!1;function b(aA){aA&&aA.selectable!==!1&&function(DA){if(DA){O("");var PA=Object.assign({},DA);if(PA.groupHeader&&!PA.selectable)return;K(D()?K()?K().concat([PA]):[PA]:K(PA)),setTimeout(()=>{JA()&&Le(),y(Se,void 0),d("change",K()),d("select",DA)})}}(aA)}function et(aA){Jt||_e(aA)}function ai(aA){if(l(g).filter(PA=>!Object.hasOwn(PA,"selectable")||PA.selectable===!0).length===0)return _e(0);aA>0&&_e()===l(g).length-1?_e(0):aA<0&&_e()===0?_e(l(g).length-1):_e(_e()+aA);var DA=l(g)[_e()];DA&&DA.selectable===!1&&(aA!==1&&aA!==-1||ai(aA))}function Wi(aA,DA,PA){if(!D())return DA&&DA[PA]===aA[PA]}var Xi=Mo,xn=Mo;function Mo(aA){return{update(DA){DA.scroll&&(Mi(),aA.scrollIntoView({behavior:"auto",block:"nearest"}))}}}var vn=$({strategy:"absolute",placement:"bottom-start",middleware:[fUA(Dt()),pUA(),mUA()],autoUpdate:!1}),[In,qo,Vo]=DUA(l(vn)),uo=$(!0);pA(()=>(k(dA()),k(K())),()=>{dA(),K()&&function(){if(typeof K()=="string"){var aA=(dA()||[]).find(DA=>DA[lA()]===K());K(aA||{[lA()]:K(),label:K()})}else D()&&Array.isArray(K())&&K().length>0&&K(K().map(DA=>typeof DA=="string"?{value:DA,label:DA}:DA))}()}),pA(()=>(k(Gt()),k(tA())),()=>{!Gt()&&tA()||(y(P,Object.assign({autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:!1,tabindex:0,type:"text","aria-autocomplete":"list"},Gt())),h()&&hc(P,l(P).id=h()),tA()||hc(P,l(P).readonly=!0))}),pA(()=>k(D()),()=>{D()&&K()&&(Array.isArray(K())?K([...K()]):K([K()]))}),pA(()=>(l(T),k(D())),()=>{l(T)&&!D()&&K()&&K(null)}),pA(()=>(k(D()),k(K())),()=>{D()&&K()&&K().length>1&&Ee()}),pA(()=>k(K()),()=>{K()&&(D()?JSON.stringify(K())!==JSON.stringify(l(Wt))&&Ee()&&d("input",K()):l(Wt)&&JSON.stringify(K()[lA()])===JSON.stringify(l(Wt)[lA()])||d("input",K()))}),pA(()=>(k(K()),k(D()),l(Wt)),()=>{!K()&&D()&&l(Wt)&&d("input",K())}),pA(()=>(k(z()),k(R())),()=>{!z()&&R()&&Le()}),pA(()=>(k(O()),l(L)),()=>{O()!==l(L)&&(wA()||O().length!==0)&&(wA()?Me()(_t(function*(){zA(!0);var aA=yield u()({dispatch:d,loadOptions:wA(),convertStringItemsToObjects:X,filterText:O()});aA?(zA(aA.loading),xA(xA()?aA.listOpen:O().length>0),z(xA()&&aA.focused),dA(IA()?kA(aA.filteredItems):aA.filteredItems)):(zA(!1),z(!0),xA(!0))}),LA()):(xA(!0),D()&&y(Se,void 0)))}),pA(()=>(k(E()),k(wA()),k(O()),k(dA()),k(D()),k(K()),k(lA()),k(IA()),k(fA()),k(UA()),k(EA())),()=>{y(g,E()({loadOptions:wA(),filterText:O(),items:dA(),multiple:D(),value:K(),itemId:lA(),groupBy:IA(),label:fA(),filterSelectedItems:UA(),itemFilter:EA(),convertStringItemsToObjects:X,filterGroupedItems:kA}))}),pA(()=>(k(D()),k(xA()),k(K()),l(g)),()=>{!D()&&xA()&&K()&&l(g)&&le(l(g).findIndex(aA=>aA[lA()]===K()[lA()]),!0)}),pA(()=>(k(xA()),k(D())),()=>{xA()&&D()&&_e(0)}),pA(()=>k(O()),()=>{O()&&_e(0)}),pA(()=>k(_e()),()=>{var aA;aA=_e(),d("hoverItem",aA)}),pA(()=>(k(D()),k(K())),()=>{y(n,D()?K()&&K().length>0:K())}),pA(()=>(l(n),k(O())),()=>{y(o,l(n)&&O().length>0)}),pA(()=>(l(n),k(gA()),k(J()),k(zA())),()=>{y(r,l(n)&&gA()&&!J()&&!zA())}),pA(()=>(k(j()),k(D()),k(V()),k(K())),()=>{var aA;y(s,j()&&D()||D()&&((aA=K())===null||aA===void 0?void 0:aA.length)===0?V():K()?"":V())}),pA(()=>(k(K()),k(D())),()=>{var aA,DA;y(a,K()?(aA=D(),DA=void 0,DA=aA&&K().length>0?K().map(PA=>PA[fA()]).join(", "):K()[fA()],zi()(DA)):"")}),pA(()=>(l(g),k(_e()),k(z()),k(xA())),()=>{y(c,function(){if(!l(g)||l(g).length===0)return"";var aA=l(g)[_e()];if(xA()&&aA){var DA=l(g)?l(g).length:0;return fi()(aA[fA()],DA)}return Ht()()}((l(g),_e(),z(),xA())))}),pA(()=>k(dA()),()=>{(function(aA){aA&&aA.length!==0&&!aA.some(DA=>typeof DA!="object")&&K()&&(D()?!K().some(DA=>!DA||!DA[lA()]):K()[lA()])&&(Array.isArray(K())?K(K().map(DA=>NA(DA)||DA)):K(NA()||K()))})(dA())}),pA(()=>(k(D()),k(K()),k(lA())),()=>{B((D(),K(),lA(),D()?K()?K().map(aA=>aA[lA()]):null:K()?K()[lA()]:K()))}),pA(()=>(k(D()),l(Wt),k(K())),()=>{D()||!l(Wt)||K()||d("input",K())}),pA(()=>(k(xA()),l(g),k(D()),k(K())),()=>{xA()&&l(g)&&!D()&&!K()&&le()}),pA(()=>l(g),()=>{(function(aA){xA()&&d("filter",aA)})(l(g))}),pA(()=>(k(x()),k(Re()),l(vn)),()=>{x()&&Re()&&Vo(Object.assign(l(vn),Re()))}),pA(()=>l(Bi),()=>{y(I,!!l(Bi))}),pA(()=>(l(Bi),k(xA())),()=>{(function(aA,DA){if(!aA||!DA)return y(uo,!0);setTimeout(()=>{y(uo,!1)},0)})(l(Bi),xA())}),pA(()=>(k(xA()),k(x()),l(Bi)),()=>{xA()&&x()&&l(Bi)&&function(){var{width:aA}=x().getBoundingClientRect();hc(Bi,l(Bi).style.width=ct()?aA+"px":"auto")}()}),pA(()=>k(_e()),()=>{y(C,_e())}),pA(()=>(k(R()),k(xA()),k(z())),()=>{R()&&xA()&&!z()&&XA()}),pA(()=>(k(x()),k(Re())),()=>{var aA;x()&&((aA=Re())===null||aA===void 0?void 0:aA.autoUpdate)===void 0&&hc(vn,l(vn).autoUpdate=!0)}),ln(),qt();var Qn,Kn=YUA();ce("click",i2,function(aA){var DA;xA()||z()||!x()||x().contains(aA.target)||(DA=l(Bi))!==null&&DA!==void 0&&DA.contains(aA.target)||ot()}),ce("keydown",i2,$e);var $A=W(Kn),Ei=aA=>{var DA,PA=RUA(),Je=W(PA),vt=bt=>{var Li=_o();Po(Mt(Li),e,"list-prepend",{},null),iA(bt,Li)};GA(Je,bt=>{oA(()=>A["list-prepend"])&&bt(vt)});var Yt=CA(Je,2),rn=bt=>{var Li=_o();Po(Mt(Li),e,"list",{get filteredItems(){return l(g)}},null),iA(bt,Li)},no=(bt,Li)=>{var Mn=fn=>{var Te=_o();jo(Mt(Te),1,()=>l(g),cr,(Qi,mi,bn)=>{var Ko,Ot=kUA(),Nr=W(Ot);Po(W(Nr),e,"item",{get item(){return l(mi)},index:bn},Jn=>{var Q=jr();we(()=>pt(Q,(l(mi),k(fA()),oA(()=>{var m;return(m=l(mi))===null||m===void 0?void 0:m[fA()]})))),iA(Jn,Q)}),Ts(Nr,(Jn,Q)=>Xi?.(Jn),()=>({scroll:Wi(l(mi),K(),lA()),listDom:l(I)})),Ts(Nr,(Jn,Q)=>xn?.(Jn),()=>({scroll:l(C)===bn,listDom:l(I)})),we(Jn=>Ko=jt(Nr,1,"item svelte-82qwg8",null,Ko,Jn),[()=>{var Jn,Q;return{"list-group-title":l(mi).groupHeader,active:Wi(l(mi),K(),lA()),first:(Q=bn,Q===0),hover:_e()===bn,"group-item":l(mi).groupItem,"not-selectable":((Jn=l(mi))===null||Jn===void 0?void 0:Jn.selectable)===!1}}],ZA),ce("mouseover",Ot,()=>et(bn)),ce("focus",Ot,()=>et(bn)),ce("click",Ot,Z0(()=>function(Jn){var{item:Q,i:m}=Jn;if(Q?.selectable!==!1)return K()&&!D()&&K()[lA()]===Q[lA()]?Le():void(function(v){return v.groupHeader&&v.selectable||v.selectable||!v.hasOwnProperty("selectable")}(Q)&&(_e(m),b(Q)))}({item:l(mi),i:bn}))),ce("keydown",Ot,z1(Z0(function(Jn){H3.call(this,e,Jn)}))),iA(Qi,Ot)}),iA(fn,Te)},Qt=(fn,Te)=>{var Qi=mi=>{var bn=_o();Po(Mt(bn),e,"empty",{},Ko=>{iA(Ko,SUA())}),iA(mi,bn)};GA(fn,mi=>{cA()||mi(Qi)},Te)};GA(bt,fn=>{l(g),oA(()=>l(g).length>0)?fn(Mn):fn(Qt,!1)},Li)};GA(Yt,bt=>{oA(()=>A.list)?bt(rn):bt(no,!1)});var sn=CA(Yt,2),Ji=bt=>{var Li=_o();Po(Mt(Li),e,"list-append",{},null),iA(bt,Li)};GA(sn,bt=>{oA(()=>A["list-append"])&&bt(Ji)}),Ts(PA,bt=>qo?.(bt)),Qo(PA,bt=>y(Bi,bt),()=>l(Bi)),rs(()=>ce("scroll",PA,Mi)),rs(()=>ce("pointerup",PA,z1(Z0(function(bt){H3.call(this,e,bt)})))),rs(()=>ce("mousedown",PA,z1(Z0(function(bt){H3.call(this,e,bt)})))),we(bt=>DA=jt(PA,1,"svelte-select-list svelte-82qwg8",null,DA,bt),[()=>({prefloat:l(uo)})],ZA),iA(aA,PA)};GA($A,aA=>{xA()&&aA(Ei)});var Ri=CA($A,2),un=W(Ri),Un=aA=>{var DA=LUA(),PA=Mt(DA),Je=W(PA),vt=W(CA(PA,2));we(()=>{pt(Je,l(a)),pt(vt,l(c))}),iA(aA,DA)};GA(un,aA=>{z()&&aA(Un)});var Zo=CA(Ri,2);Po(W(Zo),e,"prepend",{},null);var Ci=CA(Zo,2),io=W(Ci),Wo=aA=>{var DA=_o(),PA=Mt(DA),Je=Yt=>{var rn=_o();jo(Mt(rn),1,K,cr,(no,sn,Ji)=>{var bt,Li=NUA(),Mn=W(Li);Po(W(Mn),e,"selection",{get selection(){return l(sn)},index:Ji},Te=>{var Qi=jr();we(()=>pt(Qi,(l(sn),k(fA()),oA(()=>l(sn)[fA()])))),iA(Te,Qi)});var Qt=CA(Mn,2),fn=Te=>{var Qi=xUA();Po(W(Qi),e,"multi-clear-icon",{},mi=>{EG(mi)}),ce("pointerup",Qi,z1(Z0(()=>MA(Ji)))),iA(Te,Qi)};GA(Qt,Te=>{J()||G()||!EG||Te(fn)}),we(Te=>bt=jt(Li,1,"multi-item svelte-82qwg8",null,bt,Te),[()=>({active:l(Se)===Ji,disabled:J()})],ZA),ce("click",Li,z1(()=>G()?MA(Ji):{})),ce("keydown",Li,z1(Z0(function(Te){H3.call(this,e,Te)}))),iA(no,Li)}),iA(Yt,rn)},vt=Yt=>{var rn,no=FUA();Po(W(no),e,"selection",{get selection(){return K()}},sn=>{var Ji=jr();we(()=>pt(Ji,(k(K()),k(fA()),oA(()=>K()[fA()])))),iA(sn,Ji)}),we(sn=>rn=jt(no,1,"selected-item svelte-82qwg8",null,rn,sn),[()=>({"hide-selected-item":l(o)})],ZA),iA(Yt,no)};GA(PA,Yt=>{D()?Yt(Je):Yt(vt,!1)}),iA(aA,DA)};GA(io,aA=>{l(n)&&aA(Wo)});var Xo=CA(io,2);vy(Xo,()=>pe(pe({readOnly:!tA()},l(P)),{},{placeholder:l(s),style:OA(),disabled:J()}),void 0,"svelte-82qwg8"),Qo(Xo,aA=>R(aA),()=>R());var nr=CA(Ci,2),on=W(nr),$i=aA=>{var DA=_UA();Po(W(DA),e,"loading-icon",{},PA=>{(function(Je){iA(Je,bUA())})(PA)}),iA(aA,DA)};GA(on,aA=>{zA()&&aA($i)});var yt=CA(on,2),hn=aA=>{var DA=GUA();Po(W(DA),e,"clear-icon",{},PA=>{EG(PA)}),ce("click",DA,Oi),iA(aA,DA)};GA(yt,aA=>{l(r)&&aA(hn)});var hA=CA(yt,2),Ae=aA=>{var DA=KUA();Po(W(DA),e,"chevron-icon",{get listOpen(){return xA()}},PA=>{(function(Je){iA(Je,vUA())})(PA)}),iA(aA,DA)};GA(hA,aA=>{oe()&&aA(Ae)});var re=CA(nr,2);Po(re,e,"input-hidden",{get value(){return K()}},aA=>{var DA=UUA();we(PA=>{gn(DA,"name",w()),ed(DA,PA)},[()=>(k(K()),oA(()=>K()?JSON.stringify(K()):null))],ZA),iA(aA,DA)});var xe=CA(re,2),ue=aA=>{var DA=_o();Po(Mt(DA),e,"required",{get value(){return K()}},PA=>{iA(PA,JUA())}),iA(aA,DA)};return GA(xe,aA=>{k(BA()),k(K()),oA(()=>BA()&&(!K()||K().length===0))&&aA(ue)}),rs(()=>ce("pointerup",Kn,z1(Zi))),Qo(Kn,aA=>x(aA),()=>x()),Ts(Kn,aA=>In?.(aA)),we(aA=>{var DA;Qn=jt(Kn,1,"svelte-select ".concat((DA=St())!==null&&DA!==void 0?DA:""),"svelte-82qwg8",Qn,aA),eg(Kn,VA())},[()=>({multi:D(),disabled:J(),focused:z(),"list-open":xA(),"show-chevron":oe(),error:ie()})],ZA),ce("keydown",Xo,$e),ce("blur",Xo,ot),ce("focus",Xo,XA),Fy(Xo,O),iA(t,Kn),Ft(e,"getFilteredItems",KA),Ft(e,"handleClear",Oi),mt({getFilteredItems:KA,handleClear:Oi})}Ut(`/* over all fonts, sizes, and colors */ +`);var RUA=vA('
        '),LUA=vA('
        No options
        '),xUA=vA('
        '),NUA=vA(' ',1),FUA=vA('
        '),_UA=vA('
        '),GUA=vA("
        "),KUA=vA(''),UUA=vA(''),JUA=vA(''),YUA=vA(''),TUA=vA(''),HUA=vA('
        ');function jC(t,e){var A=function(aA){var DA={};for(var PA in aA.children&&(DA.default=!0),aA.$$slots)DA[PA]=!0;return DA}(e);ft(e,!1);var i,n=$(),o=$(),r=$(),s=$(),a=$(),c=$(),g=$(),I=$(),C=$(),d=NGA(),B=M(e,"justValue",12,null),E=M(e,"filter",8,vUA),u=M(e,"getItems",8,MUA),h=M(e,"id",8,null),w=M(e,"name",8,null),x=M(e,"container",12,void 0),R=M(e,"input",12,void 0),D=M(e,"multiple",8,!1),G=M(e,"multiFullItemClearable",8,!1),J=M(e,"disabled",8,!1),z=M(e,"focused",12,!1),K=M(e,"value",12,null),O=M(e,"filterText",12,""),V=M(e,"placeholder",8,"Please select"),j=M(e,"placeholderAlwaysShow",8,!1),dA=M(e,"items",12,null),fA=M(e,"label",8,"label"),EA=M(e,"itemFilter",8,(aA,DA,PA)=>"".concat(aA).toLowerCase().includes(DA.toLowerCase())),IA=M(e,"groupBy",8,void 0),SA=M(e,"groupFilter",8,aA=>aA),nA=M(e,"groupHeaderSelectable",8,!1),lA=M(e,"itemId",8,"value"),wA=M(e,"loadOptions",8,void 0),VA=M(e,"containerStyles",8,""),ie=M(e,"hasError",8,!1),UA=M(e,"filterSelectedItems",8,!0),BA=M(e,"required",8,!1),JA=M(e,"closeListOnChange",8,!0),Xe=M(e,"clearFilterTextOnBlur",8,!0),We=M(e,"createGroupHeaderItem",8,(aA,DA)=>({value:aA,[fA()]:aA})),KA=()=>l(g),tA=M(e,"searchable",8,!0),OA=M(e,"inputStyles",8,""),gA=M(e,"clearable",8,!0),zA=M(e,"loading",12,!1),xA=M(e,"listOpen",12,!1),Me=M(e,"debounce",8,function(aA){var DA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;clearTimeout(i),i=setTimeout(aA,DA)}),LA=M(e,"debounceWait",8,300),cA=M(e,"hideEmptyState",8,!1),Gt=M(e,"inputAttributes",24,()=>({})),ct=M(e,"listAutoWidth",8,!0),oe=M(e,"showChevron",8,!1),Dt=M(e,"listOffset",8,5),_e=M(e,"hoverItemIndex",12,0),Re=M(e,"floatingConfig",24,()=>({})),St=M(e,"class",8,""),Se=$(),Wt=$(),L=$(),T=$(),P=$();function X(aA){return aA.map((DA,PA)=>({index:PA,value:DA,label:"".concat(DA)}))}function kA(aA){var DA=[],PA={};aA.forEach(vt=>{var Yt=IA()(vt);DA.includes(Yt)||(DA.push(Yt),PA[Yt]=[],Yt&&PA[Yt].push(Object.assign(We()(Yt,vt),{id:Yt,groupHeader:!0,selectable:nA()}))),PA[Yt].push(Object.assign({groupItem:!!Yt},vt))});var Je=[];return SA()(DA).forEach(vt=>{PA[vt]&&Je.push(...PA[vt])}),Je}function le(){var aA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,DA=arguments.length>1?arguments[1]:void 0;_e(aA<0?0:aA),!DA&&IA()&&l(g)[_e()]&&!l(g)[_e()].selectable&&ai(1)}function Ee(){var aA=!0;if(K()){var DA=[],PA=[];K().forEach(Je=>{DA.includes(Je[lA()])?aA=!1:(DA.push(Je[lA()]),PA.push(Je))}),aA||K(PA)}return aA}function FA(aA){var DA=aA?aA[lA()]:K()[lA()];return dA().find(PA=>PA[lA()]===DA)}function MA(aA){return dt.apply(this,arguments)}function dt(){return(dt=_t(function*(aA){var DA=K()[aA];K().length===1?K(void 0):K(K().filter(PA=>PA!==DA)),d("clear",DA)})).apply(this,arguments)}function $e(aA){if(z())switch(aA.stopPropagation(),aA.key){case"Escape":aA.preventDefault(),Le();break;case"Enter":if(aA.preventDefault(),xA()){if(l(g).length===0)break;var DA=l(g)[_e()];if(K()&&!D()&&K()[lA()]===DA[lA()]){Le();break}b(l(g)[_e()])}break;case"ArrowDown":aA.preventDefault(),xA()?ai(1):(xA(!0),y(Se,void 0));break;case"ArrowUp":aA.preventDefault(),xA()?ai(-1):(xA(!0),y(Se,void 0));break;case"Tab":if(xA()&&z()){if(l(g).length===0||K()&&K()[lA()]===l(g)[_e()][lA()])return Le();aA.preventDefault(),b(l(g)[_e()]),Le()}break;case"Backspace":if(!D()||O().length>0)return;if(D()&&K()&&K().length>0){if(MA(l(Se)!==void 0?l(Se):K().length-1),l(Se)===0||l(Se)===void 0)break;y(Se,K().length>l(Se)?l(Se)-1:void 0)}break;case"ArrowLeft":if(!K()||!D()||O().length>0)return;l(Se)===void 0?y(Se,K().length-1):K().length>l(Se)&&l(Se)!==0&&y(Se,l(Se)-1);break;case"ArrowRight":if(!K()||!D()||O().length>0||l(Se)===void 0)return;l(Se)===K().length-1?y(Se,void 0):l(Se)0?xA(!0):void xA(!xA())}function Oi(){d("clear",K()),K(void 0),Le(),XA()}function Le(){Xe()&&O(""),xA(!1)}FGA(_t(function*(){y(Wt,K()),y(L,O()),y(T,D())})),ws(()=>{xA()&&z(!0),z()&&R()&&R().focus()});var zi=M(e,"ariaValues",8,aA=>"Option ".concat(aA,", selected.")),fi=M(e,"ariaListOpen",8,(aA,DA)=>"You are currently focused on option ".concat(aA,". There are ").concat(DA," results available.")),Ht=M(e,"ariaFocused",8,()=>"Select is focused, type to refine list, press down to open the menu."),Rt,Bi=$(null);function Mi(){clearTimeout(Rt),Rt=setTimeout(()=>{Jt=!1},100)}ig(()=>{var aA;(aA=l(Bi))===null||aA===void 0||aA.remove()});var Jt=!1;function b(aA){aA&&aA.selectable!==!1&&function(DA){if(DA){O("");var PA=Object.assign({},DA);if(PA.groupHeader&&!PA.selectable)return;K(D()?K()?K().concat([PA]):[PA]:K(PA)),setTimeout(()=>{JA()&&Le(),y(Se,void 0),d("change",K()),d("select",DA)})}}(aA)}function et(aA){Jt||_e(aA)}function ai(aA){if(l(g).filter(PA=>!Object.hasOwn(PA,"selectable")||PA.selectable===!0).length===0)return _e(0);aA>0&&_e()===l(g).length-1?_e(0):aA<0&&_e()===0?_e(l(g).length-1):_e(_e()+aA);var DA=l(g)[_e()];DA&&DA.selectable===!1&&(aA!==1&&aA!==-1||ai(aA))}function Wi(aA,DA,PA){if(!D())return DA&&DA[PA]===aA[PA]}var Xi=Mo,xn=Mo;function Mo(aA){return{update(DA){DA.scroll&&(Mi(),aA.scrollIntoView({behavior:"auto",block:"nearest"}))}}}var vn=$({strategy:"absolute",placement:"bottom-start",middleware:[pUA(Dt()),wUA(),DUA()],autoUpdate:!1}),[In,qo,Vo]=yUA(l(vn)),uo=$(!0);pA(()=>(k(dA()),k(K())),()=>{dA(),K()&&function(){if(typeof K()=="string"){var aA=(dA()||[]).find(DA=>DA[lA()]===K());K(aA||{[lA()]:K(),label:K()})}else D()&&Array.isArray(K())&&K().length>0&&K(K().map(DA=>typeof DA=="string"?{value:DA,label:DA}:DA))}()}),pA(()=>(k(Gt()),k(tA())),()=>{!Gt()&&tA()||(y(P,Object.assign({autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:!1,tabindex:0,type:"text","aria-autocomplete":"list"},Gt())),h()&&hc(P,l(P).id=h()),tA()||hc(P,l(P).readonly=!0))}),pA(()=>k(D()),()=>{D()&&K()&&(Array.isArray(K())?K([...K()]):K([K()]))}),pA(()=>(l(T),k(D())),()=>{l(T)&&!D()&&K()&&K(null)}),pA(()=>(k(D()),k(K())),()=>{D()&&K()&&K().length>1&&Ee()}),pA(()=>k(K()),()=>{K()&&(D()?JSON.stringify(K())!==JSON.stringify(l(Wt))&&Ee()&&d("input",K()):l(Wt)&&JSON.stringify(K()[lA()])===JSON.stringify(l(Wt)[lA()])||d("input",K()))}),pA(()=>(k(K()),k(D()),l(Wt)),()=>{!K()&&D()&&l(Wt)&&d("input",K())}),pA(()=>(k(z()),k(R())),()=>{!z()&&R()&&Le()}),pA(()=>(k(O()),l(L)),()=>{O()!==l(L)&&(wA()||O().length!==0)&&(wA()?Me()(_t(function*(){zA(!0);var aA=yield u()({dispatch:d,loadOptions:wA(),convertStringItemsToObjects:X,filterText:O()});aA?(zA(aA.loading),xA(xA()?aA.listOpen:O().length>0),z(xA()&&aA.focused),dA(IA()?kA(aA.filteredItems):aA.filteredItems)):(zA(!1),z(!0),xA(!0))}),LA()):(xA(!0),D()&&y(Se,void 0)))}),pA(()=>(k(E()),k(wA()),k(O()),k(dA()),k(D()),k(K()),k(lA()),k(IA()),k(fA()),k(UA()),k(EA())),()=>{y(g,E()({loadOptions:wA(),filterText:O(),items:dA(),multiple:D(),value:K(),itemId:lA(),groupBy:IA(),label:fA(),filterSelectedItems:UA(),itemFilter:EA(),convertStringItemsToObjects:X,filterGroupedItems:kA}))}),pA(()=>(k(D()),k(xA()),k(K()),l(g)),()=>{!D()&&xA()&&K()&&l(g)&&le(l(g).findIndex(aA=>aA[lA()]===K()[lA()]),!0)}),pA(()=>(k(xA()),k(D())),()=>{xA()&&D()&&_e(0)}),pA(()=>k(O()),()=>{O()&&_e(0)}),pA(()=>k(_e()),()=>{var aA;aA=_e(),d("hoverItem",aA)}),pA(()=>(k(D()),k(K())),()=>{y(n,D()?K()&&K().length>0:K())}),pA(()=>(l(n),k(O())),()=>{y(o,l(n)&&O().length>0)}),pA(()=>(l(n),k(gA()),k(J()),k(zA())),()=>{y(r,l(n)&&gA()&&!J()&&!zA())}),pA(()=>(k(j()),k(D()),k(V()),k(K())),()=>{var aA;y(s,j()&&D()||D()&&((aA=K())===null||aA===void 0?void 0:aA.length)===0?V():K()?"":V())}),pA(()=>(k(K()),k(D())),()=>{var aA,DA;y(a,K()?(aA=D(),DA=void 0,DA=aA&&K().length>0?K().map(PA=>PA[fA()]).join(", "):K()[fA()],zi()(DA)):"")}),pA(()=>(l(g),k(_e()),k(z()),k(xA())),()=>{y(c,function(){if(!l(g)||l(g).length===0)return"";var aA=l(g)[_e()];if(xA()&&aA){var DA=l(g)?l(g).length:0;return fi()(aA[fA()],DA)}return Ht()()}((l(g),_e(),z(),xA())))}),pA(()=>k(dA()),()=>{(function(aA){aA&&aA.length!==0&&!aA.some(DA=>typeof DA!="object")&&K()&&(D()?!K().some(DA=>!DA||!DA[lA()]):K()[lA()])&&(Array.isArray(K())?K(K().map(DA=>FA(DA)||DA)):K(FA()||K()))})(dA())}),pA(()=>(k(D()),k(K()),k(lA())),()=>{B((D(),K(),lA(),D()?K()?K().map(aA=>aA[lA()]):null:K()?K()[lA()]:K()))}),pA(()=>(k(D()),l(Wt),k(K())),()=>{D()||!l(Wt)||K()||d("input",K())}),pA(()=>(k(xA()),l(g),k(D()),k(K())),()=>{xA()&&l(g)&&!D()&&!K()&&le()}),pA(()=>l(g),()=>{(function(aA){xA()&&d("filter",aA)})(l(g))}),pA(()=>(k(x()),k(Re()),l(vn)),()=>{x()&&Re()&&Vo(Object.assign(l(vn),Re()))}),pA(()=>l(Bi),()=>{y(I,!!l(Bi))}),pA(()=>(l(Bi),k(xA())),()=>{(function(aA,DA){if(!aA||!DA)return y(uo,!0);setTimeout(()=>{y(uo,!1)},0)})(l(Bi),xA())}),pA(()=>(k(xA()),k(x()),l(Bi)),()=>{xA()&&x()&&l(Bi)&&function(){var{width:aA}=x().getBoundingClientRect();hc(Bi,l(Bi).style.width=ct()?aA+"px":"auto")}()}),pA(()=>k(_e()),()=>{y(C,_e())}),pA(()=>(k(R()),k(xA()),k(z())),()=>{R()&&xA()&&!z()&&XA()}),pA(()=>(k(x()),k(Re())),()=>{var aA;x()&&((aA=Re())===null||aA===void 0?void 0:aA.autoUpdate)===void 0&&hc(vn,l(vn).autoUpdate=!0)}),ln(),qt();var Qn,Kn=HUA();ce("click",i2,function(aA){var DA;xA()||z()||!x()||x().contains(aA.target)||(DA=l(Bi))!==null&&DA!==void 0&&DA.contains(aA.target)||ot()}),ce("keydown",i2,$e);var $A=W(Kn),Ei=aA=>{var DA,PA=xUA(),Je=W(PA),vt=bt=>{var Li=_o();Po(Mt(Li),e,"list-prepend",{},null),iA(bt,Li)};GA(Je,bt=>{oA(()=>A["list-prepend"])&&bt(vt)});var Yt=CA(Je,2),rn=bt=>{var Li=_o();Po(Mt(Li),e,"list",{get filteredItems(){return l(g)}},null),iA(bt,Li)},no=(bt,Li)=>{var Mn=fn=>{var Te=_o();jo(Mt(Te),1,()=>l(g),cr,(Qi,mi,bn)=>{var Ko,Ot=RUA(),Nr=W(Ot);Po(W(Nr),e,"item",{get item(){return l(mi)},index:bn},Jn=>{var Q=jr();we(()=>pt(Q,(l(mi),k(fA()),oA(()=>{var m;return(m=l(mi))===null||m===void 0?void 0:m[fA()]})))),iA(Jn,Q)}),Ts(Nr,(Jn,Q)=>Xi?.(Jn),()=>({scroll:Wi(l(mi),K(),lA()),listDom:l(I)})),Ts(Nr,(Jn,Q)=>xn?.(Jn),()=>({scroll:l(C)===bn,listDom:l(I)})),we(Jn=>Ko=jt(Nr,1,"item svelte-82qwg8",null,Ko,Jn),[()=>{var Jn,Q;return{"list-group-title":l(mi).groupHeader,active:Wi(l(mi),K(),lA()),first:(Q=bn,Q===0),hover:_e()===bn,"group-item":l(mi).groupItem,"not-selectable":((Jn=l(mi))===null||Jn===void 0?void 0:Jn.selectable)===!1}}],ZA),ce("mouseover",Ot,()=>et(bn)),ce("focus",Ot,()=>et(bn)),ce("click",Ot,Z0(()=>function(Jn){var{item:Q,i:m}=Jn;if(Q?.selectable!==!1)return K()&&!D()&&K()[lA()]===Q[lA()]?Le():void(function(v){return v.groupHeader&&v.selectable||v.selectable||!v.hasOwnProperty("selectable")}(Q)&&(_e(m),b(Q)))}({item:l(mi),i:bn}))),ce("keydown",Ot,z1(Z0(function(Jn){H3.call(this,e,Jn)}))),iA(Qi,Ot)}),iA(fn,Te)},Qt=(fn,Te)=>{var Qi=mi=>{var bn=_o();Po(Mt(bn),e,"empty",{},Ko=>{iA(Ko,LUA())}),iA(mi,bn)};GA(fn,mi=>{cA()||mi(Qi)},Te)};GA(bt,fn=>{l(g),oA(()=>l(g).length>0)?fn(Mn):fn(Qt,!1)},Li)};GA(Yt,bt=>{oA(()=>A.list)?bt(rn):bt(no,!1)});var sn=CA(Yt,2),Ji=bt=>{var Li=_o();Po(Mt(Li),e,"list-append",{},null),iA(bt,Li)};GA(sn,bt=>{oA(()=>A["list-append"])&&bt(Ji)}),Ts(PA,bt=>qo?.(bt)),Qo(PA,bt=>y(Bi,bt),()=>l(Bi)),rs(()=>ce("scroll",PA,Mi)),rs(()=>ce("pointerup",PA,z1(Z0(function(bt){H3.call(this,e,bt)})))),rs(()=>ce("mousedown",PA,z1(Z0(function(bt){H3.call(this,e,bt)})))),we(bt=>DA=jt(PA,1,"svelte-select-list svelte-82qwg8",null,DA,bt),[()=>({prefloat:l(uo)})],ZA),iA(aA,PA)};GA($A,aA=>{xA()&&aA(Ei)});var Ri=CA($A,2),un=W(Ri),Un=aA=>{var DA=NUA(),PA=Mt(DA),Je=W(PA),vt=W(CA(PA,2));we(()=>{pt(Je,l(a)),pt(vt,l(c))}),iA(aA,DA)};GA(un,aA=>{z()&&aA(Un)});var Zo=CA(Ri,2);Po(W(Zo),e,"prepend",{},null);var Ci=CA(Zo,2),io=W(Ci),Wo=aA=>{var DA=_o(),PA=Mt(DA),Je=Yt=>{var rn=_o();jo(Mt(rn),1,K,cr,(no,sn,Ji)=>{var bt,Li=_UA(),Mn=W(Li);Po(W(Mn),e,"selection",{get selection(){return l(sn)},index:Ji},Te=>{var Qi=jr();we(()=>pt(Qi,(l(sn),k(fA()),oA(()=>l(sn)[fA()])))),iA(Te,Qi)});var Qt=CA(Mn,2),fn=Te=>{var Qi=FUA();Po(W(Qi),e,"multi-clear-icon",{},mi=>{EG(mi)}),ce("pointerup",Qi,z1(Z0(()=>MA(Ji)))),iA(Te,Qi)};GA(Qt,Te=>{J()||G()||!EG||Te(fn)}),we(Te=>bt=jt(Li,1,"multi-item svelte-82qwg8",null,bt,Te),[()=>({active:l(Se)===Ji,disabled:J()})],ZA),ce("click",Li,z1(()=>G()?MA(Ji):{})),ce("keydown",Li,z1(Z0(function(Te){H3.call(this,e,Te)}))),iA(no,Li)}),iA(Yt,rn)},vt=Yt=>{var rn,no=GUA();Po(W(no),e,"selection",{get selection(){return K()}},sn=>{var Ji=jr();we(()=>pt(Ji,(k(K()),k(fA()),oA(()=>K()[fA()])))),iA(sn,Ji)}),we(sn=>rn=jt(no,1,"selected-item svelte-82qwg8",null,rn,sn),[()=>({"hide-selected-item":l(o)})],ZA),iA(Yt,no)};GA(PA,Yt=>{D()?Yt(Je):Yt(vt,!1)}),iA(aA,DA)};GA(io,aA=>{l(n)&&aA(Wo)});var Xo=CA(io,2);vy(Xo,()=>pe(pe({readOnly:!tA()},l(P)),{},{placeholder:l(s),style:OA(),disabled:J()}),void 0,"svelte-82qwg8"),Qo(Xo,aA=>R(aA),()=>R());var nr=CA(Ci,2),on=W(nr),$i=aA=>{var DA=KUA();Po(W(DA),e,"loading-icon",{},PA=>{(function(Je){iA(Je,SUA())})(PA)}),iA(aA,DA)};GA(on,aA=>{zA()&&aA($i)});var yt=CA(on,2),hn=aA=>{var DA=UUA();Po(W(DA),e,"clear-icon",{},PA=>{EG(PA)}),ce("click",DA,Oi),iA(aA,DA)};GA(yt,aA=>{l(r)&&aA(hn)});var hA=CA(yt,2),Ae=aA=>{var DA=JUA();Po(W(DA),e,"chevron-icon",{get listOpen(){return xA()}},PA=>{(function(Je){iA(Je,bUA())})(PA)}),iA(aA,DA)};GA(hA,aA=>{oe()&&aA(Ae)});var re=CA(nr,2);Po(re,e,"input-hidden",{get value(){return K()}},aA=>{var DA=YUA();we(PA=>{gn(DA,"name",w()),ed(DA,PA)},[()=>(k(K()),oA(()=>K()?JSON.stringify(K()):null))],ZA),iA(aA,DA)});var xe=CA(re,2),ue=aA=>{var DA=_o();Po(Mt(DA),e,"required",{get value(){return K()}},PA=>{iA(PA,TUA())}),iA(aA,DA)};return GA(xe,aA=>{k(BA()),k(K()),oA(()=>BA()&&(!K()||K().length===0))&&aA(ue)}),rs(()=>ce("pointerup",Kn,z1(Zi))),Qo(Kn,aA=>x(aA),()=>x()),Ts(Kn,aA=>In?.(aA)),we(aA=>{var DA;Qn=jt(Kn,1,"svelte-select ".concat((DA=St())!==null&&DA!==void 0?DA:""),"svelte-82qwg8",Qn,aA),eg(Kn,VA())},[()=>({multi:D(),disabled:J(),focused:z(),"list-open":xA(),"show-chevron":oe(),error:ie()})],ZA),ce("keydown",Xo,$e),ce("blur",Xo,ot),ce("focus",Xo,XA),Fy(Xo,O),iA(t,Kn),Ft(e,"getFilteredItems",KA),Ft(e,"handleClear",Oi),mt({getFilteredItems:KA,handleClear:Oi})}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -991,7 +991,7 @@ table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svel } table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .jse-filter-value:where(.svelte-qbze6z):focus { border: var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa))); -}`);var TUA=vA('
        Filter
        Sort
        Pick
        ');function HUA(t,e){var A,i,n,o,r;ft(e,!1);var s=$(void 0,!0),a=$(void 0,!0),c=$(void 0,!0),g=$(void 0,!0),I=$(void 0,!0),C=$(void 0,!0),d=xr("jsoneditor:TransformWizard"),B=M(e,"json",9),E=M(e,"queryOptions",29,()=>({})),u=M(e,"onChange",9),h=["==","!=","<","<=",">",">="].map(UA=>({value:UA,label:UA})),w=[{value:"asc",label:"ascending"},{value:"desc",label:"descending"}],x=$((A=E())!==null&&A!==void 0&&(A=A.filter)!==null&&A!==void 0&&A.path?q1(E().filter.path):void 0,!0),R=$((i=h.find(UA=>{var BA;return UA.value===((BA=E().filter)===null||BA===void 0?void 0:BA.relation)}))!==null&&i!==void 0?i:h[0],!0),D=$(((n=E())===null||n===void 0||(n=n.filter)===null||n===void 0?void 0:n.value)||"",!0),G=$((o=E())!==null&&o!==void 0&&(o=o.sort)!==null&&o!==void 0&&o.path?q1(E().sort.path):void 0,!0),J=$((r=w.find(UA=>{var BA;return UA.value===((BA=E().sort)===null||BA===void 0?void 0:BA.direction)}))!==null&&r!==void 0?r:w[0],!0);pA(()=>k(B()),()=>{y(s,Array.isArray(B()))}),pA(()=>(l(s),k(B())),()=>{y(a,l(s)?LG(B()):[])}),pA(()=>(l(s),k(B())),()=>{y(c,l(s)?LG(B(),!0):[])}),pA(()=>(l(a),q1),()=>{y(g,l(a).map(q1))}),pA(()=>(l(c),q1),()=>{y(I,l(c)?l(c).map(q1):[])}),pA(()=>(k(E()),l(I),ri),()=>{var UA;y(C,(UA=E())!==null&&UA!==void 0&&(UA=UA.projection)!==null&&UA!==void 0&&UA.paths&&l(I)?E().projection.paths.map(BA=>l(I).find(JA=>ri(JA.value,BA))).filter(BA=>!!BA):void 0)}),pA(()=>l(x),()=>{var UA,BA,JA;BA=(UA=l(x))===null||UA===void 0?void 0:UA.value,ri((JA=E())===null||JA===void 0||(JA=JA.filter)===null||JA===void 0?void 0:JA.path,BA)||(d("changeFilterPath",BA),E(Bs(E(),["filter","path"],BA,!0)),u()(E()))}),pA(()=>l(R),()=>{var UA,BA,JA;BA=(UA=l(R))===null||UA===void 0?void 0:UA.value,ri((JA=E())===null||JA===void 0||(JA=JA.filter)===null||JA===void 0?void 0:JA.relation,BA)||(d("changeFilterRelation",BA),E(Bs(E(),["filter","relation"],BA,!0)),u()(E()))}),pA(()=>l(D),()=>{var UA,BA;UA=l(D),ri((BA=E())===null||BA===void 0||(BA=BA.filter)===null||BA===void 0?void 0:BA.value,UA)||(d("changeFilterValue",UA),E(Bs(E(),["filter","value"],UA,!0)),u()(E()))}),pA(()=>l(G),()=>{var UA,BA,JA;BA=(UA=l(G))===null||UA===void 0?void 0:UA.value,ri((JA=E())===null||JA===void 0||(JA=JA.sort)===null||JA===void 0?void 0:JA.path,BA)||(d("changeSortPath",BA),E(Bs(E(),["sort","path"],BA,!0)),u()(E()))}),pA(()=>l(J),()=>{var UA,BA,JA;BA=(UA=l(J))===null||UA===void 0?void 0:UA.value,ri((JA=E())===null||JA===void 0||(JA=JA.sort)===null||JA===void 0?void 0:JA.direction,BA)||(d("changeSortDirection",BA),E(Bs(E(),["sort","direction"],BA,!0)),u()(E()))}),pA(()=>l(C),()=>{(function(UA){var BA;ri((BA=E())===null||BA===void 0||(BA=BA.projection)===null||BA===void 0?void 0:BA.paths,UA)||(d("changeProjectionPaths",UA),E(Bs(E(),["projection","paths"],UA,!0)),u()(E()))})(l(C)?l(C).map(UA=>UA.value):void 0)}),ln(),qt(!0);var z=TUA(),K=W(z),O=W(K),V=CA(W(O)),j=W(V),dA=W(j);jC(dA,{class:"jse-filter-path",showChevron:!0,get items(){return l(g)},get value(){return l(x)},set value(UA){y(x,UA)},$$legacy:!0});var fA=CA(dA,2);jC(fA,{class:"jse-filter-relation",showChevron:!0,clearable:!1,get items(){return h},get value(){return l(R)},set value(UA){y(R,UA)},$$legacy:!0});var EA=CA(fA,2),IA=CA(O),SA=CA(W(IA)),nA=W(SA),lA=W(nA);jC(lA,{class:"jse-sort-path",showChevron:!0,get items(){return l(g)},get value(){return l(G)},set value(UA){y(G,UA)},$$legacy:!0}),jC(CA(lA,2),{class:"jse-sort-direction",showChevron:!0,clearable:!1,get items(){return w},get value(){return l(J)},set value(UA){y(J,UA)},$$legacy:!0});var wA=CA(IA),VA=CA(W(wA)),ie=W(VA);jC(W(ie),{class:"jse-projection-paths",multiple:!0,showChevron:!0,get items(){return l(I)},get value(){return l(C)},set value(UA){y(C,UA)},$$legacy:!0}),Fy(EA,()=>l(D),UA=>y(D,UA)),iA(t,z),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var OUA=vA('
        Filter
        Sort
        Pick
        ');function zUA(t,e){var A,i,n,o,r;ft(e,!1);var s=$(void 0,!0),a=$(void 0,!0),c=$(void 0,!0),g=$(void 0,!0),I=$(void 0,!0),C=$(void 0,!0),d=xr("jsoneditor:TransformWizard"),B=M(e,"json",9),E=M(e,"queryOptions",29,()=>({})),u=M(e,"onChange",9),h=["==","!=","<","<=",">",">="].map(UA=>({value:UA,label:UA})),w=[{value:"asc",label:"ascending"},{value:"desc",label:"descending"}],x=$((A=E())!==null&&A!==void 0&&(A=A.filter)!==null&&A!==void 0&&A.path?q1(E().filter.path):void 0,!0),R=$((i=h.find(UA=>{var BA;return UA.value===((BA=E().filter)===null||BA===void 0?void 0:BA.relation)}))!==null&&i!==void 0?i:h[0],!0),D=$(((n=E())===null||n===void 0||(n=n.filter)===null||n===void 0?void 0:n.value)||"",!0),G=$((o=E())!==null&&o!==void 0&&(o=o.sort)!==null&&o!==void 0&&o.path?q1(E().sort.path):void 0,!0),J=$((r=w.find(UA=>{var BA;return UA.value===((BA=E().sort)===null||BA===void 0?void 0:BA.direction)}))!==null&&r!==void 0?r:w[0],!0);pA(()=>k(B()),()=>{y(s,Array.isArray(B()))}),pA(()=>(l(s),k(B())),()=>{y(a,l(s)?LG(B()):[])}),pA(()=>(l(s),k(B())),()=>{y(c,l(s)?LG(B(),!0):[])}),pA(()=>(l(a),q1),()=>{y(g,l(a).map(q1))}),pA(()=>(l(c),q1),()=>{y(I,l(c)?l(c).map(q1):[])}),pA(()=>(k(E()),l(I),ri),()=>{var UA;y(C,(UA=E())!==null&&UA!==void 0&&(UA=UA.projection)!==null&&UA!==void 0&&UA.paths&&l(I)?E().projection.paths.map(BA=>l(I).find(JA=>ri(JA.value,BA))).filter(BA=>!!BA):void 0)}),pA(()=>l(x),()=>{var UA,BA,JA;BA=(UA=l(x))===null||UA===void 0?void 0:UA.value,ri((JA=E())===null||JA===void 0||(JA=JA.filter)===null||JA===void 0?void 0:JA.path,BA)||(d("changeFilterPath",BA),E(Bs(E(),["filter","path"],BA,!0)),u()(E()))}),pA(()=>l(R),()=>{var UA,BA,JA;BA=(UA=l(R))===null||UA===void 0?void 0:UA.value,ri((JA=E())===null||JA===void 0||(JA=JA.filter)===null||JA===void 0?void 0:JA.relation,BA)||(d("changeFilterRelation",BA),E(Bs(E(),["filter","relation"],BA,!0)),u()(E()))}),pA(()=>l(D),()=>{var UA,BA;UA=l(D),ri((BA=E())===null||BA===void 0||(BA=BA.filter)===null||BA===void 0?void 0:BA.value,UA)||(d("changeFilterValue",UA),E(Bs(E(),["filter","value"],UA,!0)),u()(E()))}),pA(()=>l(G),()=>{var UA,BA,JA;BA=(UA=l(G))===null||UA===void 0?void 0:UA.value,ri((JA=E())===null||JA===void 0||(JA=JA.sort)===null||JA===void 0?void 0:JA.path,BA)||(d("changeSortPath",BA),E(Bs(E(),["sort","path"],BA,!0)),u()(E()))}),pA(()=>l(J),()=>{var UA,BA,JA;BA=(UA=l(J))===null||UA===void 0?void 0:UA.value,ri((JA=E())===null||JA===void 0||(JA=JA.sort)===null||JA===void 0?void 0:JA.direction,BA)||(d("changeSortDirection",BA),E(Bs(E(),["sort","direction"],BA,!0)),u()(E()))}),pA(()=>l(C),()=>{(function(UA){var BA;ri((BA=E())===null||BA===void 0||(BA=BA.projection)===null||BA===void 0?void 0:BA.paths,UA)||(d("changeProjectionPaths",UA),E(Bs(E(),["projection","paths"],UA,!0)),u()(E()))})(l(C)?l(C).map(UA=>UA.value):void 0)}),ln(),qt(!0);var z=OUA(),K=W(z),O=W(K),V=CA(W(O)),j=W(V),dA=W(j);jC(dA,{class:"jse-filter-path",showChevron:!0,get items(){return l(g)},get value(){return l(x)},set value(UA){y(x,UA)},$$legacy:!0});var fA=CA(dA,2);jC(fA,{class:"jse-filter-relation",showChevron:!0,clearable:!1,get items(){return h},get value(){return l(R)},set value(UA){y(R,UA)},$$legacy:!0});var EA=CA(fA,2),IA=CA(O),SA=CA(W(IA)),nA=W(SA),lA=W(nA);jC(lA,{class:"jse-sort-path",showChevron:!0,get items(){return l(g)},get value(){return l(G)},set value(UA){y(G,UA)},$$legacy:!0}),jC(CA(lA,2),{class:"jse-sort-direction",showChevron:!0,clearable:!1,get items(){return w},get value(){return l(J)},set value(UA){y(J,UA)},$$legacy:!0});var wA=CA(IA),VA=CA(W(wA)),ie=W(VA);jC(W(ie),{class:"jse-projection-paths",multiple:!0,showChevron:!0,get items(){return l(I)},get value(){return l(C)},set value(UA){y(C,UA)},$$legacy:!0}),Fy(EA,()=>l(D),UA=>y(D,UA)),iA(t,z),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -1039,7 +1039,7 @@ table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svel } .jse-select-query-language.svelte-atm4um .jse-select-query-language-container:where(.svelte-atm4um) .jse-query-language:where(.svelte-atm4um):hover { background: var(--jse-context-menu-background-highlight, #7a7a7a); -}`);var OUA=vA(''),zUA=vA('
        ');function PUA(t,e){ft(e,!1);var A=M(e,"queryLanguages",8),i=M(e,"queryLanguageId",12),n=M(e,"onChangeQueryLanguage",8);qt();var o=zUA();jo(W(o),5,A,cr,(r,s)=>{var a,c=OUA(),g=W(c),I=B=>{Ui(B,{get data(){return AL}})},C=B=>{Ui(B,{get data(){return eL}})};GA(g,B=>{l(s),k(i()),oA(()=>l(s).id===i())?B(I):B(C,!1)});var d=CA(g);we(B=>{var E;a=jt(c,1,"jse-query-language svelte-atm4um",null,a,B),gn(c,"title",(l(s),oA(()=>"Select ".concat(l(s).name," as query language")))),pt(d," ".concat((l(s),(E=oA(()=>l(s).name))!==null&&E!==void 0?E:"")))},[()=>({selected:l(s).id===i()})],ZA),ce("click",c,()=>{return B=l(s).id,i(B),void n()(B);var B}),iA(r,c)}),iA(t,o),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var PUA=vA(''),jUA=vA('
        ');function qUA(t,e){ft(e,!1);var A=M(e,"queryLanguages",8),i=M(e,"queryLanguageId",12),n=M(e,"onChangeQueryLanguage",8);qt();var o=jUA();jo(W(o),5,A,cr,(r,s)=>{var a,c=PUA(),g=W(c),I=B=>{Ui(B,{get data(){return AL}})},C=B=>{Ui(B,{get data(){return eL}})};GA(g,B=>{l(s),k(i()),oA(()=>l(s).id===i())?B(I):B(C,!1)});var d=CA(g);we(B=>{var E;a=jt(c,1,"jse-query-language svelte-atm4um",null,a,B),gn(c,"title",(l(s),oA(()=>"Select ".concat(l(s).name," as query language")))),pt(d," ".concat((l(s),(E=oA(()=>l(s).name))!==null&&E!==void 0?E:"")))},[()=>({selected:l(s).id===i()})],ZA),ce("click",c,()=>{return B=l(s).id,i(B),void n()(B);var B}),iA(r,c)}),iA(t,o),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -1077,7 +1077,7 @@ table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svel } .jse-header.svelte-1y24war button:where(.svelte-1y24war):hover { background: rgba(255, 255, 255, 0.1); -}`);var jUA=vA(''),qUA=vA('
        ');function qy(t,e){ft(e,!1);var A=M(e,"title",9,"Modal"),i=M(e,"fullScreenButton",9,!1),n=M(e,"fullscreen",13,!1),o=M(e,"onClose",9,void 0);qt(!0);var r=qUA(),s=W(r),a=W(s),c=CA(s,2);Po(c,e,"actions",{},null);var g=CA(c,2),I=d=>{var B=jUA(),E=W(B),u=ZA(()=>n()?IX:MX);Ui(E,{get data(){return l(u)}}),ce("click",B,()=>n(!n())),iA(d,B)};GA(g,d=>{i()&&d(I)});var C=CA(g,2);Ui(W(C),{get data(){return h4}}),we(()=>pt(a,A())),ce("click",C,()=>{var d;return(d=o())===null||d===void 0?void 0:d()}),iA(t,r),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var VUA=vA(''),ZUA=vA('
        ');function qy(t,e){ft(e,!1);var A=M(e,"title",9,"Modal"),i=M(e,"fullScreenButton",9,!1),n=M(e,"fullscreen",13,!1),o=M(e,"onClose",9,void 0);qt(!0);var r=ZUA(),s=W(r),a=W(s),c=CA(s,2);Po(c,e,"actions",{},null);var g=CA(c,2),I=d=>{var B=VUA(),E=W(B),u=ZA(()=>n()?IX:MX);Ui(E,{get data(){return l(u)}}),ce("click",B,()=>n(!n())),iA(d,B)};GA(g,d=>{i()&&d(I)});var C=CA(g,2);Ui(W(C),{get data(){return h4}}),we(()=>pt(a,A())),ce("click",C,()=>{var d;return(d=o())===null||d===void 0?void 0:d()}),iA(t,r),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -1108,7 +1108,7 @@ table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svel } .jse-config.hide.svelte-1kpylsp { display: none; -}`);var VUA=vA(''),QG=xr("jsoneditor:AutoScrollHandler");function csA(t){var e,A;function i(s){return s<20?200:s<50?400:1200}function n(){if(t){var s=.05*(e||0);t.scrollTop+=s}}function o(s){A&&s===e||(r(),QG("startAutoScroll",s),e=s,A=setInterval(n,50))}function r(){A&&(QG("stopAutoScroll"),clearInterval(A),A=void 0,e=void 0)}return QG("createAutoScrollHandler",t),{onDrag:function(s){if(t){var a=s.clientY,{top:c,bottom:g}=t.getBoundingClientRect();ag?o(i(a-g)):r()}},onDragEnd:function(){r()}}}var ZUA=(t,e,A,i)=>(t/=i/2)<1?A/2*t*t+e:-A/2*(--t*(t-2)-1)+e,qaA=()=>{var t,e,A,i,n,o,r,s,a,c,g,I,C;function d(u){return u.getBoundingClientRect().top-(t.getBoundingClientRect?t.getBoundingClientRect().top:0)+A}function B(u){t.scrollTo?t.scrollTo(t.scrollLeft,u):t.scrollTop=u}function E(u){c||(c=u),B(o(g=u-c,A,s,a)),C=!0,g1&&arguments[1]!==void 0?arguments[1]:{};switch(a=1e3,n=h.offset||0,I=h.callback,o=h.easing||ZUA,r=h.a11y||!1,typeof h.container){case"object":t=h.container;break;case"string":t=document.querySelector(h.container);break;default:t=window.document.documentElement}switch(A=t.scrollTop,typeof u){case"number":e=void 0,r=!1,i=A+u;break;case"object":i=d(e=u);break;case"string":e=document.querySelector(u),i=d(e)}switch(s=i-A+n,typeof h.duration){case"number":a=h.duration;break;case"function":a=h.duration(s)}C?c=0:requestAnimationFrame(E)}};function fQ(t,e){var A=Date.now(),i=t();return e(Date.now()-A),i}var BQ=xr("validation"),WUA={createObjectDocumentState:()=>({type:"object",properties:{}}),createArrayDocumentState:()=>({type:"array",items:[]}),createValueDocumentState:()=>({type:"value"})};function gsA(t,e,A,i){return pK(t,e,A,i,WUA)}function VaA(t,e,A,i){if(BQ("validateJSON"),!e)return[];if(A!==i){var n=A.stringify(t);return e(n!==void 0?i.parse(n):void 0)}return e(t)}function XUA(t,e,A,i){if(BQ("validateText"),t.length>104857600)return{validationErrors:[{path:[],message:"Validation turned off: the document is too large",severity:Og.info}]};if(t.length!==0)try{var n=fQ(()=>A.parse(t),a=>BQ("validate: parsed json in ".concat(a," ms")));if(!e)return;var o=A===i?n:fQ(()=>i.parse(t),a=>BQ("validate: parsed json with the validationParser in ".concat(a," ms"))),r=fQ(()=>e(o),a=>BQ("validate: validated json in ".concat(a," ms")));return Gi(r)?void 0:{validationErrors:r}}catch(a){var s=fQ(()=>function(c,g){if(c.length>vKA)return!1;try{return g.parse(Uc(c)),!0}catch{return!1}}(t,A),c=>BQ("validate: checked whether repairable in ".concat(c," ms")));return{parseError:MQ(t,a.message||a.toString()),isRepairable:s}}}var my=xr("jsoneditor:FocusTracker");function kK(t){var e,{onMount:A,onDestroy:i,getWindow:n,hasFocus:o,onFocus:r,onBlur:s}=t,a=!1;function c(){var I=o();I&&(clearTimeout(e),a||(my("focus"),r(),a=I))}function g(){a&&(clearTimeout(e),e=setTimeout(()=>{o()||(my("blur"),a=!1,s())}))}A(()=>{my("mount FocusTracker");var I=n();I&&(I.addEventListener("focusin",c,!0),I.addEventListener("focusout",g,!0))}),i(()=>{my("destroy FocusTracker");var I=n();I&&(I.removeEventListener("focusin",c,!0),I.removeEventListener("focusout",g,!0))})}Ut(`/* over all fonts, sizes, and colors */ +}`);var WUA=vA(''),QG=xr("jsoneditor:AutoScrollHandler");function csA(t){var e,A;function i(s){return s<20?200:s<50?400:1200}function n(){if(t){var s=.05*(e||0);t.scrollTop+=s}}function o(s){A&&s===e||(r(),QG("startAutoScroll",s),e=s,A=setInterval(n,50))}function r(){A&&(QG("stopAutoScroll"),clearInterval(A),A=void 0,e=void 0)}return QG("createAutoScrollHandler",t),{onDrag:function(s){if(t){var a=s.clientY,{top:c,bottom:g}=t.getBoundingClientRect();ag?o(i(a-g)):r()}},onDragEnd:function(){r()}}}var XUA=(t,e,A,i)=>(t/=i/2)<1?A/2*t*t+e:-A/2*(--t*(t-2)-1)+e,qaA=()=>{var t,e,A,i,n,o,r,s,a,c,g,I,C;function d(u){return u.getBoundingClientRect().top-(t.getBoundingClientRect?t.getBoundingClientRect().top:0)+A}function B(u){t.scrollTo?t.scrollTo(t.scrollLeft,u):t.scrollTop=u}function E(u){c||(c=u),B(o(g=u-c,A,s,a)),C=!0,g1&&arguments[1]!==void 0?arguments[1]:{};switch(a=1e3,n=h.offset||0,I=h.callback,o=h.easing||XUA,r=h.a11y||!1,typeof h.container){case"object":t=h.container;break;case"string":t=document.querySelector(h.container);break;default:t=window.document.documentElement}switch(A=t.scrollTop,typeof u){case"number":e=void 0,r=!1,i=A+u;break;case"object":i=d(e=u);break;case"string":e=document.querySelector(u),i=d(e)}switch(s=i-A+n,typeof h.duration){case"number":a=h.duration;break;case"function":a=h.duration(s)}C?c=0:requestAnimationFrame(E)}};function fQ(t,e){var A=Date.now(),i=t();return e(Date.now()-A),i}var BQ=xr("validation"),$UA={createObjectDocumentState:()=>({type:"object",properties:{}}),createArrayDocumentState:()=>({type:"array",items:[]}),createValueDocumentState:()=>({type:"value"})};function gsA(t,e,A,i){return pK(t,e,A,i,$UA)}function VaA(t,e,A,i){if(BQ("validateJSON"),!e)return[];if(A!==i){var n=A.stringify(t);return e(n!==void 0?i.parse(n):void 0)}return e(t)}function AJA(t,e,A,i){if(BQ("validateText"),t.length>104857600)return{validationErrors:[{path:[],message:"Validation turned off: the document is too large",severity:Og.info}]};if(t.length!==0)try{var n=fQ(()=>A.parse(t),a=>BQ("validate: parsed json in ".concat(a," ms")));if(!e)return;var o=A===i?n:fQ(()=>i.parse(t),a=>BQ("validate: parsed json with the validationParser in ".concat(a," ms"))),r=fQ(()=>e(o),a=>BQ("validate: validated json in ".concat(a," ms")));return Gi(r)?void 0:{validationErrors:r}}catch(a){var s=fQ(()=>function(c,g){if(c.length>bKA)return!1;try{return g.parse(Uc(c)),!0}catch{return!1}}(t,A),c=>BQ("validate: checked whether repairable in ".concat(c," ms")));return{parseError:MQ(t,a.message||a.toString()),isRepairable:s}}}var my=xr("jsoneditor:FocusTracker");function kK(t){var e,{onMount:A,onDestroy:i,getWindow:n,hasFocus:o,onFocus:r,onBlur:s}=t,a=!1;function c(){var I=o();I&&(clearTimeout(e),a||(my("focus"),r(),a=I))}function g(){a&&(clearTimeout(e),e=setTimeout(()=>{o()||(my("blur"),a=!1,s())}))}A(()=>{my("mount FocusTracker");var I=n();I&&(I.addEventListener("focusin",c,!0),I.addEventListener("focusout",g,!0))}),i(()=>{my("destroy FocusTracker");var I=n();I&&(I.removeEventListener("focusin",c,!0),I.removeEventListener("focusout",g,!0))})}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -1183,7 +1183,7 @@ table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svel } .jse-message.svelte-czprfx .jse-actions:where(.svelte-czprfx) button.jse-action:where(.svelte-czprfx):hover { background: var(--jse-message-action-background-highlight, rgba(255, 255, 255, 0.3)); -}`);var $UA=vA(''),AJA=vA('
        ');function pc(t,e){ft(e,!1);var A=M(e,"type",9,"success"),i=M(e,"icon",9,void 0),n=M(e,"message",9,void 0),o=M(e,"actions",25,()=>[]),r=M(e,"onClick",9,void 0),s=M(e,"onClose",9,void 0);s()&&ig(s()),qt(!0);var a,c=AJA(),g=W(c),I=W(g),C=W(I),d=E=>{Ui(E,{get data(){return i()}})};GA(C,E=>{i()&&E(d)});var B=CA(C);jo(CA(g,2),5,o,cr,(E,u)=>{var h=$UA(),w=W(h),x=D=>{Ui(D,{get data(){return l(u),oA(()=>l(u).icon)}})};GA(w,D=>{l(u),oA(()=>l(u).icon)&&D(x)});var R=CA(w);we(()=>{var D;gn(h,"title",(l(u),oA(()=>l(u).title))),h.disabled=(l(u),oA(()=>l(u).disabled)),pt(R," ".concat((l(u),(D=oA(()=>l(u).text))!==null&&D!==void 0?D:"")))}),ce("click",h,()=>{l(u).onClick&&l(u).onClick()}),ce("mousedown",h,()=>{l(u).onMouseDown&&l(u).onMouseDown()}),iA(E,h)}),we(E=>{var u,h;jt(c,1,"jse-message jse-".concat((u=A())!==null&&u!==void 0?u:""),"svelte-czprfx"),a=jt(g,1,"jse-text svelte-czprfx",null,a,E),pt(B," ".concat((h=n())!==null&&h!==void 0?h:""))},[()=>({"jse-clickable":!!r()})],ZA),ce("click",g,function(){r()&&r()()}),iA(t,c),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var eJA=vA(''),tJA=vA('
        ');function pc(t,e){ft(e,!1);var A=M(e,"type",9,"success"),i=M(e,"icon",9,void 0),n=M(e,"message",9,void 0),o=M(e,"actions",25,()=>[]),r=M(e,"onClick",9,void 0),s=M(e,"onClose",9,void 0);s()&&ig(s()),qt(!0);var a,c=tJA(),g=W(c),I=W(g),C=W(I),d=E=>{Ui(E,{get data(){return i()}})};GA(C,E=>{i()&&E(d)});var B=CA(C);jo(CA(g,2),5,o,cr,(E,u)=>{var h=eJA(),w=W(h),x=D=>{Ui(D,{get data(){return l(u),oA(()=>l(u).icon)}})};GA(w,D=>{l(u),oA(()=>l(u).icon)&&D(x)});var R=CA(w);we(()=>{var D;gn(h,"title",(l(u),oA(()=>l(u).title))),h.disabled=(l(u),oA(()=>l(u).disabled)),pt(R," ".concat((l(u),(D=oA(()=>l(u).text))!==null&&D!==void 0?D:"")))}),ce("click",h,()=>{l(u).onClick&&l(u).onClick()}),ce("mousedown",h,()=>{l(u).onMouseDown&&l(u).onMouseDown()}),iA(E,h)}),we(E=>{var u,h;jt(c,1,"jse-message jse-".concat((u=A())!==null&&u!==void 0?u:""),"svelte-czprfx"),a=jt(g,1,"jse-text svelte-czprfx",null,a,E),pt(B," ".concat((h=n())!==null&&h!==void 0?h:""))},[()=>({"jse-clickable":!!r()})],ZA),ce("click",g,function(){r()&&r()()}),iA(t,c),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -1266,7 +1266,7 @@ table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svel display: inline-block; position: relative; top: 3px; -}`);var eJA=vA(''),tJA=vA(' '),iJA=vA(' '),nJA=vA('
        '),oJA=vA('
        '),rJA=vA('
        ');function SK(t,e){ft(e,!1);var A=$(void 0,!0),i=M(e,"validationErrors",9),n=M(e,"selectError",9),o=$(!0,!0);function r(){y(o,!1)}function s(){y(o,!0)}pA(()=>k(i()),()=>{y(A,i().length)}),ln(),qt(!0);var a=_o(),c=Mt(a),g=I=>{var C=rJA(),d=W(C),B=u=>{var h=nJA(),w=W(h),x=W(w);jo(x,1,()=>(k(_y),k(i()),k(By),oA(()=>_y(i(),By))),cr,(G,J,z)=>{var K=tJA(),O=W(K);Ui(W(O),{get data(){return m1}});var V=CA(O),j=W(V),dA=CA(V),fA=W(dA),EA=W(CA(dA)),IA=SA=>{var nA=eJA();Ui(W(nA),{get data(){return pX}}),ce("click",nA,Z0(r)),iA(SA,nA)};GA(EA,SA=>{k(i()),oA(()=>z===0&&i().length>1)&&SA(IA)}),we(SA=>{var nA;jt(K,1,"jse-validation-".concat((l(J),(nA=oA(()=>l(J).severity))!==null&&nA!==void 0?nA:"")),"svelte-1uindol"),pt(j,SA),pt(fA,(l(J),oA(()=>l(J).message)))},[()=>(k(Ta),l(J),oA(()=>Ta(l(J).path)))],ZA),ce("click",K,()=>{setTimeout(()=>n()(l(J)))}),iA(G,K)});var R=CA(x),D=G=>{var J=iJA(),z=CA(W(J),2),K=W(z);we(()=>pt(K,"(and ".concat(l(A)-By," more errors)"))),iA(G,J)};GA(R,G=>{l(A)>By&&G(D)}),iA(u,h)},E=u=>{var h=oJA(),w=W(h),x=W(w),R=W(x);Ui(W(R),{get data(){return m1}});var D=W(CA(R));Ui(W(CA(D)),{get data(){return nL}}),we(G=>{var J;jt(x,1,"jse-validation-".concat(G??""),"svelte-1uindol"),pt(D,"".concat((J=l(A))!==null&&J!==void 0?J:""," validation errors "))},[()=>(k(i()),oA(()=>{return G=i(),[Og.error,Og.warning,Og.info].find(J=>G.some(z=>z.severity===J));var G}))],ZA),ce("click",x,s),iA(u,h)};GA(d,u=>{l(o)||l(A)===1?u(B):u(E,!1)}),iA(I,C)};GA(c,I=>{k(Gi),k(i()),oA(()=>!Gi(i()))&&I(g)}),iA(t,a),mt()}function Vy(t,e){if(t)return t.addEventListener("keydown",A),{destroy(){t.removeEventListener("keydown",A)}};function A(i){i.key==="Escape"&&(i.preventDefault(),i.stopPropagation(),e())}}Ut(`/* over all fonts, sizes, and colors */ +}`);var iJA=vA(''),nJA=vA(' '),oJA=vA(' '),rJA=vA('
        '),sJA=vA('
        '),aJA=vA('
        ');function SK(t,e){ft(e,!1);var A=$(void 0,!0),i=M(e,"validationErrors",9),n=M(e,"selectError",9),o=$(!0,!0);function r(){y(o,!1)}function s(){y(o,!0)}pA(()=>k(i()),()=>{y(A,i().length)}),ln(),qt(!0);var a=_o(),c=Mt(a),g=I=>{var C=aJA(),d=W(C),B=u=>{var h=rJA(),w=W(h),x=W(w);jo(x,1,()=>(k(_y),k(i()),k(By),oA(()=>_y(i(),By))),cr,(G,J,z)=>{var K=nJA(),O=W(K);Ui(W(O),{get data(){return m1}});var V=CA(O),j=W(V),dA=CA(V),fA=W(dA),EA=W(CA(dA)),IA=SA=>{var nA=iJA();Ui(W(nA),{get data(){return pX}}),ce("click",nA,Z0(r)),iA(SA,nA)};GA(EA,SA=>{k(i()),oA(()=>z===0&&i().length>1)&&SA(IA)}),we(SA=>{var nA;jt(K,1,"jse-validation-".concat((l(J),(nA=oA(()=>l(J).severity))!==null&&nA!==void 0?nA:"")),"svelte-1uindol"),pt(j,SA),pt(fA,(l(J),oA(()=>l(J).message)))},[()=>(k(Ta),l(J),oA(()=>Ta(l(J).path)))],ZA),ce("click",K,()=>{setTimeout(()=>n()(l(J)))}),iA(G,K)});var R=CA(x),D=G=>{var J=oJA(),z=CA(W(J),2),K=W(z);we(()=>pt(K,"(and ".concat(l(A)-By," more errors)"))),iA(G,J)};GA(R,G=>{l(A)>By&&G(D)}),iA(u,h)},E=u=>{var h=sJA(),w=W(h),x=W(w),R=W(x);Ui(W(R),{get data(){return m1}});var D=W(CA(R));Ui(W(CA(D)),{get data(){return nL}}),we(G=>{var J;jt(x,1,"jse-validation-".concat(G??""),"svelte-1uindol"),pt(D,"".concat((J=l(A))!==null&&J!==void 0?J:""," validation errors "))},[()=>(k(i()),oA(()=>{return G=i(),[Og.error,Og.warning,Og.info].find(J=>G.some(z=>z.severity===J));var G}))],ZA),ce("click",x,s),iA(u,h)};GA(d,u=>{l(o)||l(A)===1?u(B):u(E,!1)}),iA(I,C)};GA(c,I=>{k(Gi),k(i()),oA(()=>!Gi(i()))&&I(g)}),iA(t,a),mt()}function Vy(t,e){if(t)return t.addEventListener("keydown",A),{destroy(){t.removeEventListener("keydown",A)}};function A(i){i.key==="Escape"&&(i.preventDefault(),i.stopPropagation(),e())}}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -1367,7 +1367,7 @@ dialog.jse-modal.svelte-1s9c2ql .svelte-select { --multi-item-padding: 2px 8px; --multi-item-border-radius: 6px; --indicator-top: 8px; -}`);var sJA=vA('
        ');function sf(t,e){ft(e,!1);var A=M(e,"className",8,void 0),i=M(e,"fullscreen",8,!1),n=M(e,"onClose",8),o=$();function r(){n()()}ws(()=>l(o).showModal()),ig(()=>l(o).close()),qt();var s,a=sJA(),c=W(a);Po(W(c),e,"default",{},null),Qo(a,g=>y(o,g),()=>l(o)),rs(()=>ce("close",a,r)),rs(()=>{return ce("pointerdown",a,(g=r,function(){for(var I=arguments.length,C=new Array(I),d=0;dce("cancel",a,z1(function(g){H3.call(this,e,g)}))),Ts(a,(g,I)=>Vy?.(g,I),()=>r),we((g,I)=>s=jt(a,1,g,"svelte-1s9c2ql",s,I),[()=>rI((k(Vg),k(A()),oA(()=>Vg("jse-modal",A())))),()=>({"jse-fullscreen":i()})],ZA),iA(t,a),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var cJA=vA('
        ');function sf(t,e){ft(e,!1);var A=M(e,"className",8,void 0),i=M(e,"fullscreen",8,!1),n=M(e,"onClose",8),o=$();function r(){n()()}ws(()=>l(o).showModal()),ig(()=>l(o).close()),qt();var s,a=cJA(),c=W(a);Po(W(c),e,"default",{},null),Qo(a,g=>y(o,g),()=>l(o)),rs(()=>ce("close",a,r)),rs(()=>{return ce("pointerdown",a,(g=r,function(){for(var I=arguments.length,C=new Array(I),d=0;dce("cancel",a,z1(function(g){H3.call(this,e,g)}))),Ts(a,(g,I)=>Vy?.(g,I),()=>r),we((g,I)=>s=jt(a,1,g,"svelte-1s9c2ql",s,I),[()=>rI((k(Vg),k(A()),oA(()=>Vg("jse-modal",A())))),()=>({"jse-fullscreen":i()})],ZA),iA(t,a),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -1431,7 +1431,7 @@ dialog.jse-modal.svelte-1s9c2ql .svelte-select { .jse-shortcuts.svelte-189qksl .jse-shortcut:where(.svelte-189qksl) .jse-key:where(.svelte-189qksl) { font-size: 200%; color: var(--jse-theme-color, #3883fa); -}`);var aJA=vA('
        Clipboard permission is disabled by your browser. You can use:
        for copy
        for cut
        for paste
        ',1);function ZaA(t,e){ft(e,!1);var A=M(e,"onClose",9),i=dK()?"\u2318":"Ctrl";qt(!0),sf(t,{get onClose(){return A()},className:"jse-copy-paste",children:(n,o)=>{var r=aJA(),s=Mt(r);qy(s,{title:"Copying and pasting",get onClose(){return A()}});var a=CA(s,2),c=CA(W(a),2),g=W(c),I=W(g),C=W(I),d=CA(g,2),B=W(d),E=W(B),u=W(CA(d,2)),h=W(u),w=W(CA(c,2));we(()=>{pt(C,"".concat(i,"+C")),pt(E,"".concat(i,"+X")),pt(h,"".concat(i,"+V"))}),ce("click",w,function(){for(var x,R=arguments.length,D=new Array(R),G=0;G
        Clipboard permission is disabled by your browser. You can use:
        for copy
        for cut
        for paste
        ',1);function ZaA(t,e){ft(e,!1);var A=M(e,"onClose",9),i=dK()?"\u2318":"Ctrl";qt(!0),sf(t,{get onClose(){return A()},className:"jse-copy-paste",children:(n,o)=>{var r=gJA(),s=Mt(r);qy(s,{title:"Copying and pasting",get onClose(){return A()}});var a=CA(s,2),c=CA(W(a),2),g=W(c),I=W(g),C=W(I),d=CA(g,2),B=W(d),E=W(B),u=W(CA(d,2)),h=W(u),w=W(CA(c,2));we(()=>{pt(C,"".concat(i,"+C")),pt(E,"".concat(i,"+X")),pt(h,"".concat(i,"+V"))}),ce("click",w,function(){for(var x,R=arguments.length,D=new Array(R),G=0;G'),gJA=vA('
        '),lJA=vA(''),IJA=vA('
        ');function l7(t,e){ft(e,!1);var A=M(e,"items",25,()=>[]);qt(!0);var i=IJA(),n=W(i);Po(n,e,"left",{},null);var o=CA(n,2);jo(o,1,A,cr,(r,s)=>{var a=_o(),c=Mt(a),g=C=>{iA(C,cJA())},I=(C,d)=>{var B=u=>{iA(u,gJA())},E=(u,h)=>{var w=R=>{var D=lJA(),G=W(D),J=O=>{Ui(O,{get data(){return l(s),oA(()=>l(s).icon)}})};GA(G,O=>{l(s),oA(()=>l(s).icon)&&O(J)});var z=CA(G,2),K=O=>{var V=jr();we(()=>pt(V,(l(s),oA(()=>l(s).text)))),iA(O,V)};GA(z,O=>{l(s),oA(()=>l(s).text)&&O(K)}),we(()=>{var O;jt(D,1,"jse-button ".concat((l(s),(O=oA(()=>l(s).className))!==null&&O!==void 0?O:"")),"svelte-pf7s2l"),gn(D,"title",(l(s),oA(()=>l(s).title))),D.disabled=(l(s),oA(()=>l(s).disabled||!1))}),ce("click",D,function(){for(var O,V=arguments.length,j=new Array(V),dA=0;dA{var D=jr();we(G=>pt(D,G),[()=>(l(s),oA(()=>function(G){return console.error("Unknown type of menu item",G),"???"}(l(s))))],ZA),iA(R,D)};GA(u,R=>{k(W0),l(s),oA(()=>W0(l(s)))?R(w):R(x,!1)},h)};GA(C,u=>{k(_G),l(s),oA(()=>_G(l(s)))?u(B):u(E,!1)},d)};GA(c,C=>{k(j1),l(s),oA(()=>j1(l(s)))?C(g):C(I,!1)}),iA(r,a)}),Po(CA(o,2),e,"right",{},null),iA(t,i),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var lJA=vA('
        '),IJA=vA('
        '),CJA=vA(''),dJA=vA('
        ');function l7(t,e){ft(e,!1);var A=M(e,"items",25,()=>[]);qt(!0);var i=dJA(),n=W(i);Po(n,e,"left",{},null);var o=CA(n,2);jo(o,1,A,cr,(r,s)=>{var a=_o(),c=Mt(a),g=C=>{iA(C,lJA())},I=(C,d)=>{var B=u=>{iA(u,IJA())},E=(u,h)=>{var w=R=>{var D=CJA(),G=W(D),J=O=>{Ui(O,{get data(){return l(s),oA(()=>l(s).icon)}})};GA(G,O=>{l(s),oA(()=>l(s).icon)&&O(J)});var z=CA(G,2),K=O=>{var V=jr();we(()=>pt(V,(l(s),oA(()=>l(s).text)))),iA(O,V)};GA(z,O=>{l(s),oA(()=>l(s).text)&&O(K)}),we(()=>{var O;jt(D,1,"jse-button ".concat((l(s),(O=oA(()=>l(s).className))!==null&&O!==void 0?O:"")),"svelte-pf7s2l"),gn(D,"title",(l(s),oA(()=>l(s).title))),D.disabled=(l(s),oA(()=>l(s).disabled||!1))}),ce("click",D,function(){for(var O,V=arguments.length,j=new Array(V),dA=0;dA{var D=jr();we(G=>pt(D,G),[()=>(l(s),oA(()=>function(G){return console.error("Unknown type of menu item",G),"???"}(l(s))))],ZA),iA(R,D)};GA(u,R=>{k(W0),l(s),oA(()=>W0(l(s)))?R(w):R(x,!1)},h)};GA(C,u=>{k(_G),l(s),oA(()=>_G(l(s)))?u(B):u(E,!1)},d)};GA(c,C=>{k(j1),l(s),oA(()=>j1(l(s)))?C(g):C(I,!1)}),iA(r,a)}),Po(CA(o,2),e,"right",{},null),iA(t,i),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -1559,7 +1559,7 @@ dialog.jse-modal.svelte-1s9c2ql .svelte-select { color: var(--jse-text-color, #4d4d4d); resize: none; outline: none; -}`);var CJA=vA('
        Repair invalid JSON, then click apply
        '),dJA=vA('
        ');function BJA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=$(void 0,!0),r=$(void 0,!0),s=$(void 0,!0),a=M(e,"text",13,""),c=M(e,"readOnly",9,!1),g=M(e,"onParse",9),I=M(e,"onRepair",9),C=M(e,"onChange",9,void 0),d=M(e,"onApply",9),B=M(e,"onCancel",9),E=xr("jsoneditor:JSONRepair"),u=$(void 0,!0);function h(){if(l(u)&&l(A)){var V=l(A).position!==void 0?l(A).position:0;l(u).setSelectionRange(V,V),l(u).focus()}}function w(){d()(a())}function x(){try{a(I()(a())),C()&&C()(a())}catch{}}var R=$(void 0,!0);pA(()=>k(a()),()=>{y(A,function(V){try{return void g()(V)}catch(j){return MQ(V,j.message)}}(a()))}),pA(()=>k(a()),()=>{y(i,function(V){try{return I()(V),!0}catch{return!1}}(a()))}),pA(()=>l(A),()=>{E("error",l(A))}),pA(()=>k(B()),()=>{y(R,[{type:"space"},{type:"button",icon:h4,title:"Cancel repair",className:"jse-cancel",onClick:B()}])}),pA(()=>aL,()=>{y(n,{icon:aL,text:"Show me",title:"Scroll to the error location",onClick:h})}),pA(()=>_0,()=>{y(o,{icon:_0,text:"Auto repair",title:"Automatically repair JSON",onClick:x})}),pA(()=>(l(i),l(n),l(o)),()=>{y(r,l(i)?[l(n),l(o)]:[l(n)])}),pA(()=>k(c()),()=>{y(s,[{icon:U5,text:"Apply",title:"Apply fixed JSON",disabled:c(),onClick:w}])}),ln(),qt(!0);var D=dJA(),G=W(D);l7(G,{get items(){return l(R)},$$slots:{left:(V,j)=>{iA(V,CJA())}}});var J=CA(G,2),z=V=>{var j=ZA(()=>(l(A),oA(()=>"Cannot parse JSON: ".concat(l(A).message))));pc(V,{type:"error",get icon(){return m1},get message(){return l(j)},get actions(){return l(r)}})},K=V=>{pc(V,{type:"success",message:"JSON is valid now and can be parsed.",get actions(){return l(s)}})};GA(J,V=>{l(A)?V(z):V(K,!1)});var O=CA(J,2);Qo(O,V=>y(u,V),()=>l(u)),we(()=>{O.readOnly=c(),ed(O,a())}),ce("input",O,function(V){E("handleChange");var j=V.target.value;a()!==j&&(a(j),C()&&C()(a()))}),iA(t,D),mt()}function WaA(t,e){ft(e,!1);var A=M(e,"text",13),i=M(e,"onParse",9),n=M(e,"onRepair",9),o=M(e,"onApply",9),r=M(e,"onClose",9);function s(c){o()(c),r()()}function a(){r()()}qt(!0),sf(t,{get onClose(){return r()},className:"jse-repair-modal",children:(c,g)=>{BJA(c,{get onParse(){return i()},get onRepair(){return n()},onApply:s,onCancel:a,get text(){return A()},set text(I){A(I)},$$legacy:!0})},$$slots:{default:!0}}),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var BJA=vA('
        Repair invalid JSON, then click apply
        '),EJA=vA('
        ');function QJA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=$(void 0,!0),r=$(void 0,!0),s=$(void 0,!0),a=M(e,"text",13,""),c=M(e,"readOnly",9,!1),g=M(e,"onParse",9),I=M(e,"onRepair",9),C=M(e,"onChange",9,void 0),d=M(e,"onApply",9),B=M(e,"onCancel",9),E=xr("jsoneditor:JSONRepair"),u=$(void 0,!0);function h(){if(l(u)&&l(A)){var V=l(A).position!==void 0?l(A).position:0;l(u).setSelectionRange(V,V),l(u).focus()}}function w(){d()(a())}function x(){try{a(I()(a())),C()&&C()(a())}catch{}}var R=$(void 0,!0);pA(()=>k(a()),()=>{y(A,function(V){try{return void g()(V)}catch(j){return MQ(V,j.message)}}(a()))}),pA(()=>k(a()),()=>{y(i,function(V){try{return I()(V),!0}catch{return!1}}(a()))}),pA(()=>l(A),()=>{E("error",l(A))}),pA(()=>k(B()),()=>{y(R,[{type:"space"},{type:"button",icon:h4,title:"Cancel repair",className:"jse-cancel",onClick:B()}])}),pA(()=>aL,()=>{y(n,{icon:aL,text:"Show me",title:"Scroll to the error location",onClick:h})}),pA(()=>_0,()=>{y(o,{icon:_0,text:"Auto repair",title:"Automatically repair JSON",onClick:x})}),pA(()=>(l(i),l(n),l(o)),()=>{y(r,l(i)?[l(n),l(o)]:[l(n)])}),pA(()=>k(c()),()=>{y(s,[{icon:U5,text:"Apply",title:"Apply fixed JSON",disabled:c(),onClick:w}])}),ln(),qt(!0);var D=EJA(),G=W(D);l7(G,{get items(){return l(R)},$$slots:{left:(V,j)=>{iA(V,BJA())}}});var J=CA(G,2),z=V=>{var j=ZA(()=>(l(A),oA(()=>"Cannot parse JSON: ".concat(l(A).message))));pc(V,{type:"error",get icon(){return m1},get message(){return l(j)},get actions(){return l(r)}})},K=V=>{pc(V,{type:"success",message:"JSON is valid now and can be parsed.",get actions(){return l(s)}})};GA(J,V=>{l(A)?V(z):V(K,!1)});var O=CA(J,2);Qo(O,V=>y(u,V),()=>l(u)),we(()=>{O.readOnly=c(),ed(O,a())}),ce("input",O,function(V){E("handleChange");var j=V.target.value;a()!==j&&(a(j),C()&&C()(a()))}),iA(t,D),mt()}function WaA(t,e){ft(e,!1);var A=M(e,"text",13),i=M(e,"onParse",9),n=M(e,"onRepair",9),o=M(e,"onApply",9),r=M(e,"onClose",9);function s(c){o()(c),r()()}function a(){r()()}qt(!0),sf(t,{get onClose(){return r()},className:"jse-repair-modal",children:(c,g)=>{QJA(c,{get onParse(){return i()},get onRepair(){return n()},onApply:s,onCancel:a,get text(){return A()},set text(I){A(I)},$$legacy:!0})},$$slots:{default:!0}}),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -1618,7 +1618,7 @@ div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6 } div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq):hover, div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq):focus { color: var(--jse-collapsed-items-link-color-highlight, #ee5341); -}`);var EJA=vA(''),QJA=vA('
        ');function uJA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=$(void 0,!0),r=$(void 0,!0),s=M(e,"visibleSections",9),a=M(e,"sectionIndex",9),c=M(e,"total",9),g=M(e,"path",9),I=M(e,"selection",9),C=M(e,"onExpandSection",9),d=M(e,"context",9);pA(()=>(k(s()),k(a())),()=>{y(A,s()[a()])}),pA(()=>l(A),()=>{y(i,l(A).end)}),pA(()=>(k(s()),k(a()),k(c())),()=>{y(n,s()[a()+1]?s()[a()+1].start:c())}),pA(()=>(k(d()),k(I()),k(g()),l(i)),()=>{y(o,nf(d().getJson(),I(),g().concat(String(l(i)))))}),pA(()=>(l(i),l(n)),()=>{y(r,function(R,D){var G={start:R,end:Math.min(FG(R),D)},J=Math.max(Ky((R+D)/2),R),z={start:J,end:Math.min(FG(J),D)},K=Ky(D),O=K===D?K-$3:K,V={start:Math.max(O,R),end:D},j=[G],dA=z.start>=G.end&&z.end<=V.start;return dA&&j.push(z),V.start>=(dA?z.end:G.end)&&j.push(V),j}(l(i),l(n)))}),ln(),qt(!0);var B,E,u=QJA(),h=W(u),w=W(h),x=W(w);jo(CA(w,2),1,()=>l(r),cr,(R,D)=>{var G=EJA(),J=W(G);we(()=>{var z,K;return pt(J,"show ".concat((l(D),(z=oA(()=>l(D).start))!==null&&z!==void 0?z:""),"-").concat((l(D),(K=oA(()=>l(D).end))!==null&&K!==void 0?K:"")))}),ce("click",G,()=>C()(g(),l(D))),iA(R,G)}),we((R,D)=>{var G,J;B=jt(u,1,"jse-collapsed-items svelte-1h6hzoq",null,B,R),E=eg(u,"",E,D),pt(x,"Items ".concat((G=l(i))!==null&&G!==void 0?G:"","-").concat((J=l(n))!==null&&J!==void 0?J:""))},[()=>({"jse-selected":l(o)}),()=>({"--level":(k(g()),oA(()=>g().length+2))})],ZA),ce("mousemove",u,function(R){R.stopPropagation()}),iA(t,u),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var uJA=vA(''),hJA=vA('
        ');function fJA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=$(void 0,!0),r=$(void 0,!0),s=M(e,"visibleSections",9),a=M(e,"sectionIndex",9),c=M(e,"total",9),g=M(e,"path",9),I=M(e,"selection",9),C=M(e,"onExpandSection",9),d=M(e,"context",9);pA(()=>(k(s()),k(a())),()=>{y(A,s()[a()])}),pA(()=>l(A),()=>{y(i,l(A).end)}),pA(()=>(k(s()),k(a()),k(c())),()=>{y(n,s()[a()+1]?s()[a()+1].start:c())}),pA(()=>(k(d()),k(I()),k(g()),l(i)),()=>{y(o,nf(d().getJson(),I(),g().concat(String(l(i)))))}),pA(()=>(l(i),l(n)),()=>{y(r,function(R,D){var G={start:R,end:Math.min(FG(R),D)},J=Math.max(Ky((R+D)/2),R),z={start:J,end:Math.min(FG(J),D)},K=Ky(D),O=K===D?K-$3:K,V={start:Math.max(O,R),end:D},j=[G],dA=z.start>=G.end&&z.end<=V.start;return dA&&j.push(z),V.start>=(dA?z.end:G.end)&&j.push(V),j}(l(i),l(n)))}),ln(),qt(!0);var B,E,u=hJA(),h=W(u),w=W(h),x=W(w);jo(CA(w,2),1,()=>l(r),cr,(R,D)=>{var G=uJA(),J=W(G);we(()=>{var z,K;return pt(J,"show ".concat((l(D),(z=oA(()=>l(D).start))!==null&&z!==void 0?z:""),"-").concat((l(D),(K=oA(()=>l(D).end))!==null&&K!==void 0?K:"")))}),ce("click",G,()=>C()(g(),l(D))),iA(R,G)}),we((R,D)=>{var G,J;B=jt(u,1,"jse-collapsed-items svelte-1h6hzoq",null,B,R),E=eg(u,"",E,D),pt(x,"Items ".concat((G=l(i))!==null&&G!==void 0?G:"","-").concat((J=l(n))!==null&&J!==void 0?J:""))},[()=>({"jse-selected":l(o)}),()=>({"--level":(k(g()),oA(()=>g().length+2))})],ZA),ce("mousemove",u,function(R){R.stopPropagation()}),iA(t,u),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -1668,7 +1668,7 @@ div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6 } .jse-context-menu-pointer.jse-selected.svelte-137iwnw:hover { background: var(--jse-context-menu-pointer-background-highlight, var(--jse-context-menu-background-highlight, #7a7a7a)); -}`);var hJA=vA('');function P1(t,e){ft(e,!1);var A=M(e,"root",9,!1),i=M(e,"insert",9,!1),n=M(e,"selected",9),o=M(e,"onContextMenu",9);qt(!0);var r,s=hJA();Ui(W(s),{get data(){return Nl}}),we(a=>{r=jt(s,1,"jse-context-menu-pointer svelte-137iwnw",null,r,a),gn(s,"title",EK)},[()=>({"jse-root":A(),"jse-insert":i(),"jse-selected":n()})],ZA),ce("click",s,function(a){for(var c=a.target;c&&c.nodeName!=="BUTTON";)c=c.parentNode;c&&o()({anchor:c,left:0,top:0,width:A2,height:$0,offsetTop:2,offsetLeft:0,showTip:!0})}),iA(t,s),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var mJA=vA('');function P1(t,e){ft(e,!1);var A=M(e,"root",9,!1),i=M(e,"insert",9,!1),n=M(e,"selected",9),o=M(e,"onContextMenu",9);qt(!0);var r,s=mJA();Ui(W(s),{get data(){return Nl}}),we(a=>{r=jt(s,1,"jse-context-menu-pointer svelte-137iwnw",null,r,a),gn(s,"title",EK)},[()=>({"jse-root":A(),"jse-insert":i(),"jse-selected":n()})],ZA),ce("click",s,function(a){for(var c=a.target;c&&c.nodeName!=="BUTTON";)c=c.parentNode;c&&o()({anchor:c,left:0,top:0,width:A2,height:$0,offsetTop:2,offsetLeft:0,showTip:!0})}),iA(t,s),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -1709,7 +1709,7 @@ div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6 pointer-events: none; color: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); content: "key"; -}`);var fJA=vA('
        '),mJA=vA(" ",1),pJA=vA('
        ');function XaA(t,e){ft(e,!0);var A=Ja(()=>Vi(e.selection)&&Sr(e.selection)),i=Ja(()=>e.context.onRenderValue({path:e.path,value:e.value,mode:e.context.mode,truncateTextSize:e.context.truncateTextSize,readOnly:e.context.readOnly,enforceString:e.enforceString,isEditing:l(A),parser:e.context.parser,normalization:e.context.normalization,selection:e.selection,searchResultItems:e.searchResultItems,onPatch:e.context.onPatch,onPasteJson:e.context.onPasteJson,onSelect:e.context.onSelect,onFind:e.context.onFind,findNextInside:e.context.findNextInside,focus:e.context.focus})),n=_o();jo(Mt(n),17,()=>l(i),cr,(o,r)=>{var s=_o(),a=Mt(s),c=I=>{var C=pJA(),d=Ja(()=>l(r).action);Ts(C,(B,E)=>{var u;return(u=l(d))===null||u===void 0?void 0:u(B,E)},()=>l(r).props),iA(I,C)},g=I=>{var C=_o(),d=Ja(()=>l(r).component);AaA(Mt(C),()=>l(d),(B,E)=>{E(B,AI(()=>l(r).props))}),iA(I,C)};GA(a,I=>{RKA(l(r))?I(c):I(g,!1)}),iA(o,s)}),iA(t,n),mt()}var DJA={selecting:!1,selectionAnchor:void 0,selectionAnchorType:void 0,selectionFocus:void 0,dragging:!1};function uG(t){var{json:e,selection:A,deltaY:i,items:n}=t;if(!A)return{operations:void 0,updatedSelection:void 0,offset:0};var o=i<0?function(g){for(var{json:I,items:C,selection:d,deltaY:B}=g,E=e2(I,d),u=C.findIndex(G=>ri(G.path,E)),h=()=>{var G;return(G=C[w-1])===null||G===void 0?void 0:G.height},w=u,x=0;h()!==void 0&&Math.abs(B)>x+h()/2;)x+=h(),w-=1;var R=C[w].path,D=w-u;return w!==u&&C[w]!==void 0?{beforePath:R,offset:D}:void 0}({json:e,selection:A,deltaY:i,items:n}):function(g){for(var I,{json:C,items:d,selection:B,deltaY:E}=g,u=tI(C,B),h=d.findIndex(O=>ri(O.path,u)),w=0,x=h,R=()=>{var O;return(O=d[x+1])===null||O===void 0?void 0:O.height};R()!==void 0&&Math.abs(E)>w+R()/2;)w+=R(),x+=1;var D=yi(u),G=Ye(C,D),J=Array.isArray(G)?x:x+1,z=(I=d[J])===null||I===void 0?void 0:I.path,K=x-h;return z?{beforePath:z,offset:K}:{append:!0,offset:K}}({json:e,selection:A,deltaY:i,items:n});if(!o||o.offset===0)return{operations:void 0,updatedSelection:void 0,offset:0};var r=function(g,I,C){if(!I)return[];var d="beforePath"in C?C.beforePath:void 0,B="append"in C?C.append:void 0,E=yi(nt(I)),u=Ye(g,E);if(!(B||d&&n0(d,E)&&d.length>E.length))return[];var h=e2(g,I),w=tI(g,I),x=li(h),R=li(w),D=d?d[E.length]:void 0;if(!Lo(u)){if(wo(u)){var G=ss(x),J=ss(R),z=D!==void 0?ss(D):u.length;return ZR(J-G+1,z({op:"move",from:It(E.concat(String(G+dA))),path:It(E.concat(String(z+dA)))}):()=>({op:"move",from:It(E.concat(String(G))),path:It(E.concat(String(z)))}))}throw new Error("Cannot create move operations: parent must be an Object or Array")}var K=Object.keys(u),O=K.indexOf(x),V=K.indexOf(R),j=B?K.length:D!==void 0?K.indexOf(D):-1;return O!==-1&&V!==-1&&j!==-1?j>O?[...K.slice(O,V+1),...K.slice(j,K.length)].map(dA=>aI(E,dA)):[...K.slice(j,O),...K.slice(V+1,K.length)].map(dA=>aI(E,dA)):[]}(e,A,o),s=yi(e2(e,A)),a=Ye(e,s);if(Array.isArray(a)){var c=function(g){var I,C,{items:d,json:B,selection:E,offset:u}=g,h=e2(B,E),w=tI(B,E),x=d.findIndex(J=>ri(J.path,h)),R=d.findIndex(J=>ri(J.path,w)),D=(I=d[x+u])===null||I===void 0?void 0:I.path,G=(C=d[R+u])===null||C===void 0?void 0:C.path;return Js(D,G)}({items:n,json:e,selection:A,offset:o.offset});return{operations:r,updatedSelection:c,offset:o.offset}}return{operations:r,updatedSelection:void 0,offset:o.offset}}Ut(`/* over all fonts, sizes, and colors */ +}`);var pJA=vA('
        '),DJA=vA(" ",1),wJA=vA('
        ');function XaA(t,e){ft(e,!0);var A=Ja(()=>Vi(e.selection)&&Sr(e.selection)),i=Ja(()=>e.context.onRenderValue({path:e.path,value:e.value,mode:e.context.mode,truncateTextSize:e.context.truncateTextSize,readOnly:e.context.readOnly,enforceString:e.enforceString,isEditing:l(A),parser:e.context.parser,normalization:e.context.normalization,selection:e.selection,searchResultItems:e.searchResultItems,onPatch:e.context.onPatch,onPasteJson:e.context.onPasteJson,onSelect:e.context.onSelect,onFind:e.context.onFind,findNextInside:e.context.findNextInside,focus:e.context.focus})),n=_o();jo(Mt(n),17,()=>l(i),cr,(o,r)=>{var s=_o(),a=Mt(s),c=I=>{var C=wJA(),d=Ja(()=>l(r).action);Ts(C,(B,E)=>{var u;return(u=l(d))===null||u===void 0?void 0:u(B,E)},()=>l(r).props),iA(I,C)},g=I=>{var C=_o(),d=Ja(()=>l(r).component);AaA(Mt(C),()=>l(d),(B,E)=>{E(B,AI(()=>l(r).props))}),iA(I,C)};GA(a,I=>{xKA(l(r))?I(c):I(g,!1)}),iA(o,s)}),iA(t,n),mt()}var yJA={selecting:!1,selectionAnchor:void 0,selectionAnchorType:void 0,selectionFocus:void 0,dragging:!1};function uG(t){var{json:e,selection:A,deltaY:i,items:n}=t;if(!A)return{operations:void 0,updatedSelection:void 0,offset:0};var o=i<0?function(g){for(var{json:I,items:C,selection:d,deltaY:B}=g,E=e2(I,d),u=C.findIndex(G=>ri(G.path,E)),h=()=>{var G;return(G=C[w-1])===null||G===void 0?void 0:G.height},w=u,x=0;h()!==void 0&&Math.abs(B)>x+h()/2;)x+=h(),w-=1;var R=C[w].path,D=w-u;return w!==u&&C[w]!==void 0?{beforePath:R,offset:D}:void 0}({json:e,selection:A,deltaY:i,items:n}):function(g){for(var I,{json:C,items:d,selection:B,deltaY:E}=g,u=tI(C,B),h=d.findIndex(O=>ri(O.path,u)),w=0,x=h,R=()=>{var O;return(O=d[x+1])===null||O===void 0?void 0:O.height};R()!==void 0&&Math.abs(E)>w+R()/2;)w+=R(),x+=1;var D=yi(u),G=Ye(C,D),J=Array.isArray(G)?x:x+1,z=(I=d[J])===null||I===void 0?void 0:I.path,K=x-h;return z?{beforePath:z,offset:K}:{append:!0,offset:K}}({json:e,selection:A,deltaY:i,items:n});if(!o||o.offset===0)return{operations:void 0,updatedSelection:void 0,offset:0};var r=function(g,I,C){if(!I)return[];var d="beforePath"in C?C.beforePath:void 0,B="append"in C?C.append:void 0,E=yi(nt(I)),u=Ye(g,E);if(!(B||d&&n0(d,E)&&d.length>E.length))return[];var h=e2(g,I),w=tI(g,I),x=li(h),R=li(w),D=d?d[E.length]:void 0;if(!Lo(u)){if(wo(u)){var G=ss(x),J=ss(R),z=D!==void 0?ss(D):u.length;return ZR(J-G+1,z({op:"move",from:Ct(E.concat(String(G+dA))),path:Ct(E.concat(String(z+dA)))}):()=>({op:"move",from:Ct(E.concat(String(G))),path:Ct(E.concat(String(z)))}))}throw new Error("Cannot create move operations: parent must be an Object or Array")}var K=Object.keys(u),O=K.indexOf(x),V=K.indexOf(R),j=B?K.length:D!==void 0?K.indexOf(D):-1;return O!==-1&&V!==-1&&j!==-1?j>O?[...K.slice(O,V+1),...K.slice(j,K.length)].map(dA=>aI(E,dA)):[...K.slice(j,O),...K.slice(V+1,K.length)].map(dA=>aI(E,dA)):[]}(e,A,o),s=yi(e2(e,A)),a=Ye(e,s);if(Array.isArray(a)){var c=function(g){var I,C,{items:d,json:B,selection:E,offset:u}=g,h=e2(B,E),w=tI(B,E),x=d.findIndex(J=>ri(J.path,h)),R=d.findIndex(J=>ri(J.path,w)),D=(I=d[x+u])===null||I===void 0?void 0:I.path,G=(C=d[R+u])===null||C===void 0?void 0:C.path;return Js(D,G)}({items:n,json:e,selection:A,offset:o.offset});return{operations:r,updatedSelection:c,offset:o.offset}}return{operations:r,updatedSelection:void 0,offset:o.offset}}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -1774,7 +1774,7 @@ button.jse-validation-warning.svelte-1a8aobl { vertical-align: top; display: inline-flex; color: var(--jse-warning-color, #fdc539); -}`);var wJA=vA('');function wQ(t,e){ft(e,!1);var A=$(),i=cI("absolute-popup"),n=M(e,"validationError",8),o=M(e,"onExpand",8);pA(()=>k(n()),()=>{y(A,SKA(n())&&n().isChildError?"Contains invalid data":n().message)}),ln(),qt();var r=wJA();Ui(W(r),{get data(){return m1}}),rs(()=>ce("click",r,function(){for(var s,a=arguments.length,c=new Array(a),g=0;gRQ?.(s,a),()=>pe({text:l(A)},i)),we(()=>{var s;return jt(r,1,"jse-validation-".concat((k(n()),(s=oA(()=>n().severity))!==null&&s!==void 0?s:"")),"svelte-1a8aobl")}),iA(t,r),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var vJA=vA('');function wQ(t,e){ft(e,!1);var A=$(),i=cI("absolute-popup"),n=M(e,"validationError",8),o=M(e,"onExpand",8);pA(()=>k(n()),()=>{y(A,LKA(n())&&n().isChildError?"Contains invalid data":n().message)}),ln(),qt();var r=vJA();Ui(W(r),{get data(){return m1}}),rs(()=>ce("click",r,function(){for(var s,a=arguments.length,c=new Array(a),g=0;gRQ?.(s,a),()=>pe({text:l(A)},i)),we(()=>{var s;return jt(r,1,"jse-validation-".concat((k(n()),(s=oA(()=>n().severity))!==null&&s!==void 0?s:"")),"svelte-1a8aobl")}),iA(t,r),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -1993,10 +1993,10 @@ button.jse-validation-warning.svelte-1a8aobl { } .jse-json-node.svelte-oawf7x .jse-insert-area.jse-selected:where(.svelte-oawf7x) { outline-color: var(--jse-context-menu-pointer-background, var(--jse-context-menu-background, #656565)); -}`);var Eo=i7(()=>DJA),yJA=vA('
        :
        '),vJA=vA('
        [
         ',1),MJA=vA('
        [
        ]
        ',1),bJA=vA('
        '),kJA=vA('
        '),SJA=vA('
        '),RJA=vA('
        '),LJA=vA('
        '),xJA=vA(" ",1),NJA=vA('
        '),FJA=vA('
        ',1),_JA=vA('
        ',1),GJA=vA('
        :
        '),KJA=vA('
        {
        '),UJA=vA('
        {
        }
        ',1),JJA=vA('
        '),YJA=vA('
        '),TJA=vA('
        '),HJA=vA('
        '),OJA=vA('
        '),zJA=vA('
        '),PJA=vA('
        ',1),jJA=vA('
        ',1),qJA=vA('
        :
        '),VJA=vA('
        '),ZJA=vA('
        '),WJA=vA('
        '),XJA=vA('
        '),$JA=vA('
        ');function jG(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=M(e,"pointer",9),o=M(e,"value",9),r=M(e,"state",9),s=M(e,"validationErrors",9),a=M(e,"searchResults",9),c=M(e,"selection",9),g=M(e,"context",9),I=M(e,"onDragSelectionStart",9),C=xr("jsoneditor:JSONNode"),d=$(void 0,!0),B=void 0,E=$(void 0,!0),u=$(void 0,!0),h=$(void 0,!0),w=$(void 0,!0),x=$(void 0,!0),R=$(void 0,!0),D=$(void 0,!0);function G(KA){KA.stopPropagation();var tA=BK(KA);g().onExpand(l(u),!l(h),tA)}function J(){g().onExpand(l(u),!0)}function z(KA,tA){var OA=ff(l(u),Object.keys(o()),KA,tA);return g().onPatch(OA),li(xs(OA[0].path))}function K(KA){g().onDrag(KA)}function O(KA){Eo().selecting&&(Eo(Eo().selecting=!1),KA.stopPropagation()),g().onDragEnd(),document.removeEventListener("mousemove",K,!0),document.removeEventListener("mouseup",O)}function V(){var KA;return((KA=g().findElement([]))===null||KA===void 0||(KA=KA.getBoundingClientRect())===null||KA===void 0?void 0:KA.top)||0}function j(KA,tA){var OA=V()-KA.initialContentTop;return tA.clientY-KA.initialClientY-OA}function dA(KA){if(!g().readOnly&&c()){var tA=yi(nt(c()));if(ri(l(u),tA)){var OA=function(LA,cA){var Gt=[];function ct(T){var P=l(u).concat(T),X=g().findElement(P);X!==void 0&&Gt.push({path:P,height:X.clientHeight})}if(Array.isArray(o())){var oe=g().getJson();if(oe===void 0)return;var Dt=e2(oe,LA),_e=tI(oe,LA),Re=parseInt(li(Dt),10),St=parseInt(li(_e),10),Se=cA.find(T=>Re>=T.start&&St<=T.end);if(!Se)return;var{start:Wt,end:L}=Se;raA(Wt,Math.min(o().length,L),T=>ct(String(T)))}else Object.keys(o()).forEach(ct);return Gt}(c(),l(x)||mQ);if(C("dragSelectionStart",{selection:c(),items:OA}),OA){var gA=g().getJson();if(gA!==void 0){var zA=e2(gA,c()),xA=OA.findIndex(LA=>ri(LA.path,zA)),{offset:Me}=uG({json:gA,selection:g().getSelection(),deltaY:0,items:OA});y(E,{initialTarget:KA.target,initialClientY:KA.clientY,initialContentTop:V(),selectionStartIndex:xA,selectionItemsCount:sI(gA,c()).length,items:OA,offset:Me,didMoveItems:!1}),Eo(Eo().dragging=!0),document.addEventListener("mousemove",fA,!0),document.addEventListener("mouseup",EA)}}else C("Cannot drag the current selection (probably spread over multiple sections)")}else I()(KA)}}function fA(KA){if(l(E)){var tA=g().getJson();if(tA===void 0)return;var OA=j(l(E),KA),{offset:gA}=uG({json:tA,selection:g().getSelection(),deltaY:OA,items:l(E).items});gA!==l(E).offset&&(C("drag selection",gA,OA),y(E,pe(pe({},l(E)),{},{offset:gA,didMoveItems:!0})))}}function EA(KA){if(l(E)){var tA=g().getJson();if(tA===void 0)return;var OA=j(l(E),KA),{operations:gA,updatedSelection:zA}=uG({json:tA,selection:g().getSelection(),deltaY:OA,items:l(E).items});if(gA)g().onPatch(gA,(LA,cA)=>({state:cA,selection:zA??c()}));else if(KA.target===l(E).initialTarget&&!l(E).didMoveItems){var xA=oG(KA.target),Me=uaA(KA.target);Me&&g().onSelect(zrA(xA,Me))}y(E,void 0),Eo(Eo().dragging=!1),document.removeEventListener("mousemove",fA,!0),document.removeEventListener("mouseup",EA)}}function IA(KA){KA.shiftKey||(KA.stopPropagation(),KA.preventDefault(),g().onSelect(c2(l(u))))}function SA(KA){KA.shiftKey||(KA.stopPropagation(),KA.preventDefault(),g().onSelect(o2(l(u))))}function nA(KA){g().onSelect(c2(l(u))),to(),g().onContextMenu(KA)}function lA(KA){g().onSelect(o2(l(u))),to(),g().onContextMenu(KA)}pA(()=>k(n()),()=>{y(u,xs(n()))}),pA(()=>k(n()),()=>{y(A,encodeURIComponent(n()))}),pA(()=>k(r()),()=>{y(h,!!td(r())&&r().expanded)}),pA(()=>(k(o()),k(r())),()=>{y(w,t0(o(),r(),[]))}),pA(()=>k(r()),()=>{y(x,Rr(r())?r().visibleSections:void 0)}),pA(()=>k(s()),()=>{var KA;y(R,(KA=s())===null||KA===void 0?void 0:KA.validationError)}),pA(()=>(k(g()),k(c()),l(u)),()=>{y(D,nf(g().getJson(),c(),l(u)))}),pA(()=>l(u),()=>{y(i,l(u).length===0)}),ln(),qt(!0);var wA,VA,ie=$JA(),UA=W(ie),BA=KA=>{var tA=_JA(),OA=Mt(tA),gA=W(OA),zA=W(gA),xA=W(zA),Me=NA=>{Ui(NA,{get data(){return Nl}})},LA=NA=>{Ui(NA,{get data(){return uE}})};GA(xA,NA=>{l(h)?NA(Me):NA(LA,!1)});var cA=CA(zA,2);Po(cA,e,"identifier",{},null);var Gt=CA(cA,2),ct=NA=>{iA(NA,yJA())};GA(Gt,NA=>{l(i)||NA(ct)});var oe=CA(Gt,2),Dt=W(oe),_e=W(Dt),Re=NA=>{var MA=vJA();Sy(CA(Mt(MA),2),{children:(Ct,$e)=>{var XA=jr();we(()=>{var ot,Si;return pt(XA,"".concat((k(o()),(ot=oA(()=>o().length))!==null&&ot!==void 0?ot:""),` - `).concat((k(o()),(Si=oA(()=>o().length===1?"item":"items"))!==null&&Si!==void 0?Si:"")))}),iA(Ct,XA)},$$slots:{default:!0}}),iA(NA,MA)},St=NA=>{var MA=MJA();Sy(CA(Mt(MA),2),{onclick:J,children:(Ct,$e)=>{var XA=jr();we(()=>{var ot,Si;return pt(XA,"".concat((k(o()),(ot=oA(()=>o().length))!==null&&ot!==void 0?ot:""),` - `).concat((k(o()),(Si=oA(()=>o().length===1?"item":"items"))!==null&&Si!==void 0?Si:"")))}),iA(Ct,XA)},$$slots:{default:!0}}),iA(NA,MA)};GA(_e,NA=>{l(h)?NA(Re):NA(St,!1)});var Se=CA(oe,2),Wt=NA=>{var MA=bJA();P1(W(MA),{get root(){return l(i)},selected:!0,get onContextMenu(){return k(g()),oA(()=>g().onContextMenu)}}),iA(NA,MA)};GA(Se,NA=>{k(g()),l(D),k(c()),k(Vi),k(Gn),k(Sr),k(ri),k(nt),l(u),oA(()=>!g().readOnly&&l(D)&&c()&&(Vi(c())||Gn(c()))&&!Sr(c())&&ri(nt(c()),l(u)))&&NA(Wt)});var L=CA(gA,2),T=NA=>{wQ(NA,{get validationError(){return l(R)},onExpand:J})};GA(L,NA=>{l(R),l(h),oA(()=>l(R)&&(!l(h)||!l(R).isChildError))&&NA(T)});var P=CA(L,2),X=NA=>{var MA=kJA();ce("click",MA,IA),iA(NA,MA)},kA=NA=>{var MA=SJA();ce("click",MA,SA),iA(NA,MA)};GA(P,NA=>{l(h)?NA(X):NA(kA,!1)});var le=CA(OA,2),Ee=NA=>{var MA=FJA(),Ct=Mt(MA),$e=W(Ct),XA=Oi=>{var Le,zi,fi=RJA(),Ht=W(fi),Rt=ZA(()=>(l(D),k(yr),k(c()),oA(()=>l(D)&&yr(c()))));P1(Ht,{insert:!0,get selected(){return l(Rt)},onContextMenu:nA}),we((Bi,Mi)=>{Le=jt(fi,1,"jse-insert-area jse-inside svelte-oawf7x",null,Le,Bi),gn(fi,"title",aG),zi=eg(fi,"",zi,Mi)},[()=>({"jse-hovered":l(d)===zC,"jse-selected":l(D)&&yr(c())}),()=>({"--level":(l(u),oA(()=>l(u).length+1))})],ZA),iA(Oi,fi)};GA($e,Oi=>{k(g()),l(d),k(zC),l(D),k(yr),k(c()),oA(()=>!g().readOnly&&(l(d)===zC||l(D)&&yr(c())))&&Oi(XA)}),jo(CA($e,2),1,()=>l(x)||mQ,cr,(Oi,Le,zi)=>{var fi=xJA(),Ht=Mt(fi);jo(Ht,1,()=>(k(o()),l(Le),l(E),oA(()=>function(Mi,Jt,b){var et=Jt.start,ai=Math.min(Jt.end,Mi.length),Wi=N5(et,ai);return b&&b.offset!==0?yrA(Wi,b.selectionStartIndex,b.selectionItemsCount,b.offset).map((Xi,xn)=>({index:Xi,gutterIndex:xn})):Wi.map(Xi=>({index:Xi,gutterIndex:Xi}))}(o(),l(Le),l(E)))),Mi=>Mi.index,(Mi,Jt)=>{var b=_o(),et=ZA(()=>(k(Rr),k(s()),l(Jt),oA(()=>Rr(s())?s().items[l(Jt).index]:void 0))),ai=ZA(()=>(k(uy),k(g()),k(c()),l(u),l(Jt),oA(()=>uy(g().getJson(),c(),l(u).concat(String(l(Jt).index)))))),Wi=Mt(b),Xi=ZA(()=>(k(e4),k(n()),l(Jt),oA(()=>e4(n(),l(Jt).index)))),xn=ZA(()=>(k(Rr),k(r()),l(Jt),oA(()=>Rr(r())?r().items[l(Jt).index]:void 0))),Mo=ZA(()=>(k(Rr),k(a()),l(Jt),oA(()=>Rr(a())?a().items[l(Jt).index]:void 0)));jG(Wi,{get value(){return k(o()),l(Jt),oA(()=>o()[l(Jt).index])},get pointer(){return l(Xi)},get state(){return l(xn)},get validationErrors(){return l(et)},get searchResults(){return l(Mo)},get selection(){return l(ai)},get context(){return g()},onDragSelectionStart:dA,$$slots:{identifier:(vn,In)=>{var qo=LJA(),Vo=W(qo),uo=W(Vo);we(()=>pt(uo,(l(Jt),oA(()=>l(Jt).gutterIndex)))),iA(vn,qo)}}}),iA(Mi,b)});var Rt=CA(Ht,2),Bi=Mi=>{var Jt=ZA(()=>l(x)||mQ);uJA(Mi,{get visibleSections(){return l(Jt)},sectionIndex:zi,get total(){return k(o()),oA(()=>o().length)},get path(){return l(u)},get onExpandSection(){return k(g()),oA(()=>g().onExpandSection)},get selection(){return c()},get context(){return g()}})};GA(Rt,Mi=>{l(Le),k(o()),oA(()=>l(Le).end{var Le=NJA();ce("click",Le,SA),iA(Oi,Le)};GA(Si,Oi=>{l(i)||Oi(Zi)}),iA(NA,MA)};GA(le,NA=>{l(h)&&NA(Ee)}),ce("click",zA,G),iA(KA,tA)},JA=(KA,tA)=>{var OA=zA=>{var xA=jJA(),Me=Mt(xA),LA=W(Me),cA=W(LA),Gt=W(cA),ct=XA=>{Ui(XA,{get data(){return Nl}})},oe=XA=>{Ui(XA,{get data(){return uE}})};GA(Gt,XA=>{l(h)?XA(ct):XA(oe,!1)});var Dt=CA(cA,2);Po(Dt,e,"identifier",{},null);var _e=CA(Dt,2),Re=XA=>{iA(XA,GJA())};GA(_e,XA=>{l(i)||XA(Re)});var St=CA(_e,2),Se=W(St),Wt=W(Se),L=XA=>{iA(XA,KJA())},T=XA=>{var ot=UJA();Sy(CA(Mt(ot),2),{onclick:J,children:(Si,Zi)=>{var Oi=jr();we((Le,zi)=>pt(Oi,"".concat(Le??"",` - `).concat(zi??"")),[()=>(k(o()),oA(()=>Object.keys(o()).length)),()=>(k(o()),oA(()=>Object.keys(o()).length===1?"prop":"props"))],ZA),iA(Si,Oi)},$$slots:{default:!0}}),iA(XA,ot)};GA(Wt,XA=>{l(h)?XA(L):XA(T,!1)});var P=CA(St,2),X=XA=>{var ot=JJA();P1(W(ot),{get root(){return l(i)},selected:!0,get onContextMenu(){return k(g()),oA(()=>g().onContextMenu)}}),iA(XA,ot)};GA(P,XA=>{k(g()),l(D),k(c()),k(Vi),k(Gn),k(Sr),k(ri),k(nt),l(u),oA(()=>!g().readOnly&&l(D)&&c()&&(Vi(c())||Gn(c()))&&!Sr(c())&&ri(nt(c()),l(u)))&&XA(X)});var kA=CA(LA,2),le=XA=>{wQ(XA,{get validationError(){return l(R)},onExpand:J})};GA(kA,XA=>{l(R),l(h),oA(()=>l(R)&&(!l(h)||!l(R).isChildError))&&XA(le)});var Ee=CA(kA,2),NA=XA=>{var ot=YJA();ce("click",ot,IA),iA(XA,ot)},MA=(XA,ot)=>{var Si=Zi=>{var Oi=TJA();ce("click",Oi,SA),iA(Zi,Oi)};GA(XA,Zi=>{l(i)||Zi(Si)},ot)};GA(Ee,XA=>{l(h)?XA(NA):XA(MA,!1)});var Ct=CA(Me,2),$e=XA=>{var ot=PJA(),Si=Mt(ot),Zi=W(Si),Oi=Ht=>{var Rt,Bi,Mi=HJA(),Jt=W(Mi),b=ZA(()=>(l(D),k(yr),k(c()),oA(()=>l(D)&&yr(c()))));P1(Jt,{insert:!0,get selected(){return l(b)},onContextMenu:nA}),we((et,ai)=>{Rt=jt(Mi,1,"jse-insert-area jse-inside svelte-oawf7x",null,Rt,et),gn(Mi,"title",aG),Bi=eg(Mi,"",Bi,ai)},[()=>({"jse-hovered":l(d)===zC,"jse-selected":l(D)&&yr(c())}),()=>({"--level":(l(u),oA(()=>l(u).length+1))})],ZA),iA(Ht,Mi)};GA(Zi,Ht=>{k(g()),l(d),k(zC),l(D),k(yr),k(c()),oA(()=>!g().readOnly&&(l(d)===zC||l(D)&&yr(c())))&&Ht(Oi)}),jo(CA(Zi,2),1,()=>(k(o()),l(E),oA(()=>function(Ht,Rt){var Bi=Object.keys(Ht);return Rt&&Rt.offset!==0?yrA(Bi,Rt.selectionStartIndex,Rt.selectionItemsCount,Rt.offset):Bi}(o(),l(E)))),cr,(Ht,Rt)=>{var Bi=_o(),Mi=ZA(()=>(k(e4),k(n()),l(Rt),oA(()=>e4(n(),l(Rt))))),Jt=ZA(()=>(k(Ua),k(a()),l(Rt),oA(()=>Ua(a())?a().properties[l(Rt)]:void 0))),b=ZA(()=>(k(Ua),k(s()),l(Rt),oA(()=>Ua(s())?s().properties[l(Rt)]:void 0))),et=ZA(()=>(l(u),l(Rt),oA(()=>l(u).concat(l(Rt))))),ai=ZA(()=>(k(uy),k(g()),k(c()),k(l(et)),oA(()=>uy(g().getJson(),c(),l(et))))),Wi=Mt(Bi),Xi=ZA(()=>(k(Ua),k(r()),l(Rt),oA(()=>Ua(r())?r().properties[l(Rt)]:void 0)));jG(Wi,{get value(){return k(o()),l(Rt),oA(()=>o()[l(Rt)])},get pointer(){return l(Mi)},get state(){return l(Xi)},get validationErrors(){return l(b)},get searchResults(){return l(Jt)},get selection(){return l(ai)},get context(){return g()},onDragSelectionStart:dA,$$slots:{identifier:(xn,Mo)=>{var vn,In=OJA(),qo=W(In),Vo=ZA(()=>(k(XrA),k(l(Jt)),oA(()=>XrA(l(Jt)))));(function(uo,Qn){ft(Qn,!1);var Kn=$(void 0,!0),$A=$(void 0,!0),Ei=M(Qn,"pointer",9),Ri=M(Qn,"key",9),un=M(Qn,"selection",9),Un=M(Qn,"searchResultItems",9),Zo=M(Qn,"onUpdateKey",9),Ci=M(Qn,"context",9),io=$(void 0,!0);function Wo(re){l($A)||Ci().readOnly||(re.preventDefault(),Ci().onSelect(yK(l(io))))}function Xo(re,xe){var ue=Zo()(Ri(),Ci().normalization.unescapeValue(re)),aA=yi(l(io)).concat(ue);Ci().onSelect(xe===eI.nextInside?vi(aA):a2(aA)),xe!==eI.self&&Ci().focus()}function nr(){Ci().onSelect(a2(l(io))),Ci().focus()}pA(()=>k(Ei()),()=>{y(io,xs(Ei()))}),pA(()=>(k(un()),l(io)),()=>{y(Kn,Lr(un())&&ri(un().path,l(io)))}),pA(()=>(l(Kn),k(un())),()=>{y($A,l(Kn)&&Sr(un()))}),ln(),qt(!0);var on=mJA(),$i=Mt(on),yt=re=>{var xe=ZA(()=>(k(Ci()),k(Ri()),oA(()=>Ci().normalization.escapeValue(Ri())))),ue=ZA(()=>(k(Sr),k(un()),oA(()=>Sr(un())?un().initialValue:void 0)));kaA(re,{get value(){return l(xe)},get initialValue(){return l(ue)},label:"Edit key",shortText:!0,onChange:Xo,onCancel:nr,get onFind(){return k(Ci()),oA(()=>Ci().onFind)}})},hn=re=>{var xe,ue=fJA(),aA=W(ue),DA=Je=>{var vt=ZA(()=>(k(Ci()),k(Ri()),oA(()=>Ci().normalization.escapeValue(Ri()))));_aA(Je,{get text(){return l(vt)},get searchResultItems(){return Un()}})},PA=Je=>{var vt=jr();we(Yt=>pt(vt,Yt),[()=>(k(bQ),k(Ci()),k(Ri()),oA(()=>bQ(Ci().normalization.escapeValue(Ri()))))],ZA),iA(Je,vt)};GA(aA,Je=>{Un()?Je(DA):Je(PA,!1)}),we(Je=>xe=jt(ue,1,"jse-key svelte-2iqnqn",null,xe,Je),[()=>({"jse-empty":Ri()===""})],ZA),ce("dblclick",ue,Wo),iA(re,ue)};GA($i,re=>{k(Ci()),l($A),oA(()=>!Ci().readOnly&&l($A))?re(yt):re(hn,!1)});var hA=CA($i,2),Ae=re=>{P1(re,{selected:!0,get onContextMenu(){return k(Ci()),oA(()=>Ci().onContextMenu)}})};GA(hA,re=>{k(Ci()),l(Kn),l($A),oA(()=>!Ci().readOnly&&l(Kn)&&!l($A))&&re(Ae)}),iA(uo,on),mt()})(qo,{get pointer(){return l(Mi)},get key(){return l(Rt)},get selection(){return l(ai)},get searchResultItems(){return l(Vo)},get context(){return g()},onUpdateKey:z}),we(uo=>vn=jt(In,1,"jse-key-outer svelte-oawf7x",null,vn,uo),[()=>({"jse-selected-key":Lr(l(ai))&&ri(l(ai).path,l(et))})],ZA),iA(xn,In)}}}),iA(Ht,Bi)});var Le=CA(Si,2),zi=CA(W(Le),2),fi=Ht=>{var Rt=zJA();ce("click",Rt,SA),iA(Ht,Rt)};GA(zi,Ht=>{l(i)||Ht(fi)}),iA(XA,ot)};GA(Ct,XA=>{l(h)&&XA($e)}),ce("click",cA,G),iA(zA,xA)},gA=zA=>{var xA=WJA(),Me=W(xA),LA=W(Me);Po(LA,e,"identifier",{},null);var cA=CA(LA,2),Gt=P=>{iA(P,qJA())};GA(cA,P=>{l(i)||P(Gt)});var ct=CA(cA,2),oe=W(ct),Dt=ZA(()=>l(D)?c():void 0),_e=ZA(()=>(k($rA),k(a()),oA(()=>$rA(a()))));XaA(oe,{get path(){return l(u)},get value(){return o()},get enforceString(){return l(w)},get selection(){return l(Dt)},get searchResultItems(){return l(_e)},get context(){return g()}});var Re=CA(ct,2),St=P=>{var X=VJA();P1(W(X),{get root(){return l(i)},selected:!0,get onContextMenu(){return k(g()),oA(()=>g().onContextMenu)}}),iA(P,X)};GA(Re,P=>{k(g()),l(D),k(c()),k(Vi),k(Gn),k(Sr),k(ri),k(nt),l(u),oA(()=>!g().readOnly&&l(D)&&c()&&(Vi(c())||Gn(c()))&&!Sr(c())&&ri(nt(c()),l(u)))&&P(St)});var Se=CA(Me,2),Wt=P=>{wQ(P,{get validationError(){return l(R)},onExpand:J})};GA(Se,P=>{l(R)&&P(Wt)});var L=CA(Se,2),T=P=>{var X=ZJA();ce("click",X,SA),iA(P,X)};GA(L,P=>{l(i)||P(T)}),iA(zA,xA)};GA(KA,zA=>{k(nn),k(o()),oA(()=>nn(o()))?zA(OA):zA(gA,!1)},tA)};GA(UA,KA=>{k(o()),oA(()=>Array.isArray(o()))?KA(BA):KA(JA,!1)});var Xe=CA(UA,2),We=KA=>{var tA,OA=XJA(),gA=W(OA),zA=ZA(()=>(l(D),k(Ya),k(c()),oA(()=>l(D)&&Ya(c()))));P1(gA,{insert:!0,get selected(){return l(zA)},onContextMenu:lA}),we(xA=>{tA=jt(OA,1,"jse-insert-area jse-after svelte-oawf7x",null,tA,xA),gn(OA,"title",aG)},[()=>({"jse-hovered":l(d)===Ey,"jse-selected":l(D)&&Ya(c())})],ZA),iA(KA,OA)};GA(Xe,KA=>{k(g()),l(d),k(Ey),l(D),k(Ya),k(c()),oA(()=>!g().readOnly&&(l(d)===Ey||l(D)&&Ya(c())))&&KA(We)}),we((KA,tA,OA)=>{wA=jt(ie,1,KA,"svelte-oawf7x",wA,tA),gn(ie,"data-path",l(A)),gn(ie,"aria-selected",l(D)),VA=eg(ie,"",VA,OA)},[()=>rI((k(Vg),l(h),k(g()),l(u),k(o()),oA(()=>Vg("jse-json-node",{"jse-expanded":l(h)},g().onClassName(l(u),o()))))),()=>({"jse-root":l(i),"jse-selected":l(D)&&Gn(c()),"jse-selected-value":l(D)&&Vi(c()),"jse-readonly":g().readOnly,"jse-hovered":l(d)===krA}),()=>({"--level":(l(u),oA(()=>l(u).length))})],ZA),ce("mousedown",ie,function(KA){if((KA.buttons===1||KA.buttons===2)&&!((tA=KA.target).nodeName==="DIV"&&tA.contentEditable==="true"||KA.buttons===1&&EaA(KA.target,"BUTTON"))){var tA;KA.stopPropagation(),KA.preventDefault(),g().focus(),document.addEventListener("mousemove",K,!0),document.addEventListener("mouseup",O);var OA=oG(KA.target),gA=g().getJson(),zA=g().getDocumentState();if(!c()||OA===Ln.after||OA===Ln.inside||c().type!==OA&&c().type!==Ln.multi||!nf(gA,c(),l(u)))if(Eo(Eo().selecting=!0),Eo(Eo().selectionAnchor=l(u)),Eo(Eo().selectionAnchorType=OA),Eo(Eo().selectionFocus=l(u)),KA.shiftKey){var xA=g().getSelection();xA&&g().onSelect(Js(WC(xA),l(u)))}else if(OA===Ln.multi)if(l(i)&&KA.target.hasAttribute("data-path")){var Me=li(waA(o(),zA));g().onSelect(UG(Me))}else g().onSelect(Js(l(u),l(u)));else gA!==void 0&&g().onSelect(zrA(OA,l(u)));else KA.button===0&&I()(KA)}}),ce("mousemove",ie,function(KA){if(Eo().selecting){KA.preventDefault(),KA.stopPropagation(),Eo().selectionFocus===void 0&&window.getSelection&&window.getSelection().empty();var tA=oG(KA.target);ri(l(u),Eo().selectionFocus)&&tA===Eo().selectionAnchorType||(Eo(Eo().selectionFocus=l(u)),Eo(Eo().selectionAnchorType=tA),g().onSelect(Js(Eo().selectionAnchor||Eo().selectionFocus,Eo().selectionFocus)))}}),ce("mouseover",ie,function(KA){Eo().selecting||Eo().dragging||(KA.stopPropagation(),Z1(KA.target,"data-type","selectable-value")?y(d,krA):Z1(KA.target,"data-type","selectable-key")?y(d,void 0):Z1(KA.target,"data-type","insert-selection-area-inside")?y(d,zC):Z1(KA.target,"data-type","insert-selection-area-after")&&y(d,Ey),clearTimeout(B))}),ce("mouseout",ie,function(KA){KA.stopPropagation(),B=window.setTimeout(()=>y(d,void 0))}),iA(t,ie),mt()}var AYA={prefix:"fas",iconName:"jsoneditor-expand",icon:[512,512,[],"","M 0,448 V 512 h 512 v -64 z M 0,0 V 64 H 512 V 0 Z M 256,96 128,224 h 256 z M 256,416 384,288 H 128 Z"]},eYA={prefix:"fas",iconName:"jsoneditor-collapse",icon:[512,512,[],"","m 0,224 v 64 h 512 v -64 z M 256,192 384,64 H 128 Z M 256,320 128,448 h 256 z"]},lsA={prefix:"fas",iconName:"jsoneditor-format",icon:[512,512,[],"","M 0,32 v 64 h 416 v -64 z M 160,160 v 64 h 352 v -64 z M 160,288 v 64 h 288 v -64 z M 0,416 v 64 h 320 v -64 z"]},tYA={prefix:"fas",iconName:"jsoneditor-compact",icon:[512,512,[],"","M 0,32 v 64 h 512 v -64 z M 0,160 v 64 h 512 v -64 z M 0,288 v 64 h 352 v -64 z"]};function iYA(t,e){t.stopPropagation(),e.onCreateObject()}function nYA(t,e){t.stopPropagation(),e.onCreateArray()}Ut(`/* over all fonts, sizes, and colors */ +}`);var Eo=i7(()=>yJA),MJA=vA('
        :
        '),bJA=vA('
        [
         ',1),kJA=vA('
        [
        ]
        ',1),SJA=vA('
        '),RJA=vA('
        '),LJA=vA('
        '),xJA=vA('
        '),NJA=vA('
        '),FJA=vA(" ",1),_JA=vA('
        '),GJA=vA('
        ',1),KJA=vA('
        ',1),UJA=vA('
        :
        '),JJA=vA('
        {
        '),YJA=vA('
        {
        }
        ',1),TJA=vA('
        '),HJA=vA('
        '),OJA=vA('
        '),zJA=vA('
        '),PJA=vA('
        '),jJA=vA('
        '),qJA=vA('
        ',1),VJA=vA('
        ',1),ZJA=vA('
        :
        '),WJA=vA('
        '),XJA=vA('
        '),$JA=vA('
        '),AYA=vA('
        '),eYA=vA('
        ');function jG(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=M(e,"pointer",9),o=M(e,"value",9),r=M(e,"state",9),s=M(e,"validationErrors",9),a=M(e,"searchResults",9),c=M(e,"selection",9),g=M(e,"context",9),I=M(e,"onDragSelectionStart",9),C=xr("jsoneditor:JSONNode"),d=$(void 0,!0),B=void 0,E=$(void 0,!0),u=$(void 0,!0),h=$(void 0,!0),w=$(void 0,!0),x=$(void 0,!0),R=$(void 0,!0),D=$(void 0,!0);function G(KA){KA.stopPropagation();var tA=BK(KA);g().onExpand(l(u),!l(h),tA)}function J(){g().onExpand(l(u),!0)}function z(KA,tA){var OA=ff(l(u),Object.keys(o()),KA,tA);return g().onPatch(OA),li(xs(OA[0].path))}function K(KA){g().onDrag(KA)}function O(KA){Eo().selecting&&(Eo(Eo().selecting=!1),KA.stopPropagation()),g().onDragEnd(),document.removeEventListener("mousemove",K,!0),document.removeEventListener("mouseup",O)}function V(){var KA;return((KA=g().findElement([]))===null||KA===void 0||(KA=KA.getBoundingClientRect())===null||KA===void 0?void 0:KA.top)||0}function j(KA,tA){var OA=V()-KA.initialContentTop;return tA.clientY-KA.initialClientY-OA}function dA(KA){if(!g().readOnly&&c()){var tA=yi(nt(c()));if(ri(l(u),tA)){var OA=function(LA,cA){var Gt=[];function ct(T){var P=l(u).concat(T),X=g().findElement(P);X!==void 0&&Gt.push({path:P,height:X.clientHeight})}if(Array.isArray(o())){var oe=g().getJson();if(oe===void 0)return;var Dt=e2(oe,LA),_e=tI(oe,LA),Re=parseInt(li(Dt),10),St=parseInt(li(_e),10),Se=cA.find(T=>Re>=T.start&&St<=T.end);if(!Se)return;var{start:Wt,end:L}=Se;raA(Wt,Math.min(o().length,L),T=>ct(String(T)))}else Object.keys(o()).forEach(ct);return Gt}(c(),l(x)||mQ);if(C("dragSelectionStart",{selection:c(),items:OA}),OA){var gA=g().getJson();if(gA!==void 0){var zA=e2(gA,c()),xA=OA.findIndex(LA=>ri(LA.path,zA)),{offset:Me}=uG({json:gA,selection:g().getSelection(),deltaY:0,items:OA});y(E,{initialTarget:KA.target,initialClientY:KA.clientY,initialContentTop:V(),selectionStartIndex:xA,selectionItemsCount:sI(gA,c()).length,items:OA,offset:Me,didMoveItems:!1}),Eo(Eo().dragging=!0),document.addEventListener("mousemove",fA,!0),document.addEventListener("mouseup",EA)}}else C("Cannot drag the current selection (probably spread over multiple sections)")}else I()(KA)}}function fA(KA){if(l(E)){var tA=g().getJson();if(tA===void 0)return;var OA=j(l(E),KA),{offset:gA}=uG({json:tA,selection:g().getSelection(),deltaY:OA,items:l(E).items});gA!==l(E).offset&&(C("drag selection",gA,OA),y(E,pe(pe({},l(E)),{},{offset:gA,didMoveItems:!0})))}}function EA(KA){if(l(E)){var tA=g().getJson();if(tA===void 0)return;var OA=j(l(E),KA),{operations:gA,updatedSelection:zA}=uG({json:tA,selection:g().getSelection(),deltaY:OA,items:l(E).items});if(gA)g().onPatch(gA,(LA,cA)=>({state:cA,selection:zA??c()}));else if(KA.target===l(E).initialTarget&&!l(E).didMoveItems){var xA=oG(KA.target),Me=uaA(KA.target);Me&&g().onSelect(zrA(xA,Me))}y(E,void 0),Eo(Eo().dragging=!1),document.removeEventListener("mousemove",fA,!0),document.removeEventListener("mouseup",EA)}}function IA(KA){KA.shiftKey||(KA.stopPropagation(),KA.preventDefault(),g().onSelect(c2(l(u))))}function SA(KA){KA.shiftKey||(KA.stopPropagation(),KA.preventDefault(),g().onSelect(o2(l(u))))}function nA(KA){g().onSelect(c2(l(u))),to(),g().onContextMenu(KA)}function lA(KA){g().onSelect(o2(l(u))),to(),g().onContextMenu(KA)}pA(()=>k(n()),()=>{y(u,xs(n()))}),pA(()=>k(n()),()=>{y(A,encodeURIComponent(n()))}),pA(()=>k(r()),()=>{y(h,!!td(r())&&r().expanded)}),pA(()=>(k(o()),k(r())),()=>{y(w,t0(o(),r(),[]))}),pA(()=>k(r()),()=>{y(x,Rr(r())?r().visibleSections:void 0)}),pA(()=>k(s()),()=>{var KA;y(R,(KA=s())===null||KA===void 0?void 0:KA.validationError)}),pA(()=>(k(g()),k(c()),l(u)),()=>{y(D,nf(g().getJson(),c(),l(u)))}),pA(()=>l(u),()=>{y(i,l(u).length===0)}),ln(),qt(!0);var wA,VA,ie=eYA(),UA=W(ie),BA=KA=>{var tA=KJA(),OA=Mt(tA),gA=W(OA),zA=W(gA),xA=W(zA),Me=FA=>{Ui(FA,{get data(){return Nl}})},LA=FA=>{Ui(FA,{get data(){return uE}})};GA(xA,FA=>{l(h)?FA(Me):FA(LA,!1)});var cA=CA(zA,2);Po(cA,e,"identifier",{},null);var Gt=CA(cA,2),ct=FA=>{iA(FA,MJA())};GA(Gt,FA=>{l(i)||FA(ct)});var oe=CA(Gt,2),Dt=W(oe),_e=W(Dt),Re=FA=>{var MA=bJA();Sy(CA(Mt(MA),2),{children:(dt,$e)=>{var XA=jr();we(()=>{var ot,Si;return pt(XA,"".concat((k(o()),(ot=oA(()=>o().length))!==null&&ot!==void 0?ot:""),` + `).concat((k(o()),(Si=oA(()=>o().length===1?"item":"items"))!==null&&Si!==void 0?Si:"")))}),iA(dt,XA)},$$slots:{default:!0}}),iA(FA,MA)},St=FA=>{var MA=kJA();Sy(CA(Mt(MA),2),{onclick:J,children:(dt,$e)=>{var XA=jr();we(()=>{var ot,Si;return pt(XA,"".concat((k(o()),(ot=oA(()=>o().length))!==null&&ot!==void 0?ot:""),` + `).concat((k(o()),(Si=oA(()=>o().length===1?"item":"items"))!==null&&Si!==void 0?Si:"")))}),iA(dt,XA)},$$slots:{default:!0}}),iA(FA,MA)};GA(_e,FA=>{l(h)?FA(Re):FA(St,!1)});var Se=CA(oe,2),Wt=FA=>{var MA=SJA();P1(W(MA),{get root(){return l(i)},selected:!0,get onContextMenu(){return k(g()),oA(()=>g().onContextMenu)}}),iA(FA,MA)};GA(Se,FA=>{k(g()),l(D),k(c()),k(Vi),k(Gn),k(Sr),k(ri),k(nt),l(u),oA(()=>!g().readOnly&&l(D)&&c()&&(Vi(c())||Gn(c()))&&!Sr(c())&&ri(nt(c()),l(u)))&&FA(Wt)});var L=CA(gA,2),T=FA=>{wQ(FA,{get validationError(){return l(R)},onExpand:J})};GA(L,FA=>{l(R),l(h),oA(()=>l(R)&&(!l(h)||!l(R).isChildError))&&FA(T)});var P=CA(L,2),X=FA=>{var MA=RJA();ce("click",MA,IA),iA(FA,MA)},kA=FA=>{var MA=LJA();ce("click",MA,SA),iA(FA,MA)};GA(P,FA=>{l(h)?FA(X):FA(kA,!1)});var le=CA(OA,2),Ee=FA=>{var MA=GJA(),dt=Mt(MA),$e=W(dt),XA=Oi=>{var Le,zi,fi=xJA(),Ht=W(fi),Rt=ZA(()=>(l(D),k(yr),k(c()),oA(()=>l(D)&&yr(c()))));P1(Ht,{insert:!0,get selected(){return l(Rt)},onContextMenu:nA}),we((Bi,Mi)=>{Le=jt(fi,1,"jse-insert-area jse-inside svelte-oawf7x",null,Le,Bi),gn(fi,"title",aG),zi=eg(fi,"",zi,Mi)},[()=>({"jse-hovered":l(d)===zC,"jse-selected":l(D)&&yr(c())}),()=>({"--level":(l(u),oA(()=>l(u).length+1))})],ZA),iA(Oi,fi)};GA($e,Oi=>{k(g()),l(d),k(zC),l(D),k(yr),k(c()),oA(()=>!g().readOnly&&(l(d)===zC||l(D)&&yr(c())))&&Oi(XA)}),jo(CA($e,2),1,()=>l(x)||mQ,cr,(Oi,Le,zi)=>{var fi=FJA(),Ht=Mt(fi);jo(Ht,1,()=>(k(o()),l(Le),l(E),oA(()=>function(Mi,Jt,b){var et=Jt.start,ai=Math.min(Jt.end,Mi.length),Wi=N5(et,ai);return b&&b.offset!==0?yrA(Wi,b.selectionStartIndex,b.selectionItemsCount,b.offset).map((Xi,xn)=>({index:Xi,gutterIndex:xn})):Wi.map(Xi=>({index:Xi,gutterIndex:Xi}))}(o(),l(Le),l(E)))),Mi=>Mi.index,(Mi,Jt)=>{var b=_o(),et=ZA(()=>(k(Rr),k(s()),l(Jt),oA(()=>Rr(s())?s().items[l(Jt).index]:void 0))),ai=ZA(()=>(k(uy),k(g()),k(c()),l(u),l(Jt),oA(()=>uy(g().getJson(),c(),l(u).concat(String(l(Jt).index)))))),Wi=Mt(b),Xi=ZA(()=>(k(e4),k(n()),l(Jt),oA(()=>e4(n(),l(Jt).index)))),xn=ZA(()=>(k(Rr),k(r()),l(Jt),oA(()=>Rr(r())?r().items[l(Jt).index]:void 0))),Mo=ZA(()=>(k(Rr),k(a()),l(Jt),oA(()=>Rr(a())?a().items[l(Jt).index]:void 0)));jG(Wi,{get value(){return k(o()),l(Jt),oA(()=>o()[l(Jt).index])},get pointer(){return l(Xi)},get state(){return l(xn)},get validationErrors(){return l(et)},get searchResults(){return l(Mo)},get selection(){return l(ai)},get context(){return g()},onDragSelectionStart:dA,$$slots:{identifier:(vn,In)=>{var qo=NJA(),Vo=W(qo),uo=W(Vo);we(()=>pt(uo,(l(Jt),oA(()=>l(Jt).gutterIndex)))),iA(vn,qo)}}}),iA(Mi,b)});var Rt=CA(Ht,2),Bi=Mi=>{var Jt=ZA(()=>l(x)||mQ);fJA(Mi,{get visibleSections(){return l(Jt)},sectionIndex:zi,get total(){return k(o()),oA(()=>o().length)},get path(){return l(u)},get onExpandSection(){return k(g()),oA(()=>g().onExpandSection)},get selection(){return c()},get context(){return g()}})};GA(Rt,Mi=>{l(Le),k(o()),oA(()=>l(Le).end{var Le=_JA();ce("click",Le,SA),iA(Oi,Le)};GA(Si,Oi=>{l(i)||Oi(Zi)}),iA(FA,MA)};GA(le,FA=>{l(h)&&FA(Ee)}),ce("click",zA,G),iA(KA,tA)},JA=(KA,tA)=>{var OA=zA=>{var xA=VJA(),Me=Mt(xA),LA=W(Me),cA=W(LA),Gt=W(cA),ct=XA=>{Ui(XA,{get data(){return Nl}})},oe=XA=>{Ui(XA,{get data(){return uE}})};GA(Gt,XA=>{l(h)?XA(ct):XA(oe,!1)});var Dt=CA(cA,2);Po(Dt,e,"identifier",{},null);var _e=CA(Dt,2),Re=XA=>{iA(XA,UJA())};GA(_e,XA=>{l(i)||XA(Re)});var St=CA(_e,2),Se=W(St),Wt=W(Se),L=XA=>{iA(XA,JJA())},T=XA=>{var ot=YJA();Sy(CA(Mt(ot),2),{onclick:J,children:(Si,Zi)=>{var Oi=jr();we((Le,zi)=>pt(Oi,"".concat(Le??"",` + `).concat(zi??"")),[()=>(k(o()),oA(()=>Object.keys(o()).length)),()=>(k(o()),oA(()=>Object.keys(o()).length===1?"prop":"props"))],ZA),iA(Si,Oi)},$$slots:{default:!0}}),iA(XA,ot)};GA(Wt,XA=>{l(h)?XA(L):XA(T,!1)});var P=CA(St,2),X=XA=>{var ot=TJA();P1(W(ot),{get root(){return l(i)},selected:!0,get onContextMenu(){return k(g()),oA(()=>g().onContextMenu)}}),iA(XA,ot)};GA(P,XA=>{k(g()),l(D),k(c()),k(Vi),k(Gn),k(Sr),k(ri),k(nt),l(u),oA(()=>!g().readOnly&&l(D)&&c()&&(Vi(c())||Gn(c()))&&!Sr(c())&&ri(nt(c()),l(u)))&&XA(X)});var kA=CA(LA,2),le=XA=>{wQ(XA,{get validationError(){return l(R)},onExpand:J})};GA(kA,XA=>{l(R),l(h),oA(()=>l(R)&&(!l(h)||!l(R).isChildError))&&XA(le)});var Ee=CA(kA,2),FA=XA=>{var ot=HJA();ce("click",ot,IA),iA(XA,ot)},MA=(XA,ot)=>{var Si=Zi=>{var Oi=OJA();ce("click",Oi,SA),iA(Zi,Oi)};GA(XA,Zi=>{l(i)||Zi(Si)},ot)};GA(Ee,XA=>{l(h)?XA(FA):XA(MA,!1)});var dt=CA(Me,2),$e=XA=>{var ot=qJA(),Si=Mt(ot),Zi=W(Si),Oi=Ht=>{var Rt,Bi,Mi=zJA(),Jt=W(Mi),b=ZA(()=>(l(D),k(yr),k(c()),oA(()=>l(D)&&yr(c()))));P1(Jt,{insert:!0,get selected(){return l(b)},onContextMenu:nA}),we((et,ai)=>{Rt=jt(Mi,1,"jse-insert-area jse-inside svelte-oawf7x",null,Rt,et),gn(Mi,"title",aG),Bi=eg(Mi,"",Bi,ai)},[()=>({"jse-hovered":l(d)===zC,"jse-selected":l(D)&&yr(c())}),()=>({"--level":(l(u),oA(()=>l(u).length+1))})],ZA),iA(Ht,Mi)};GA(Zi,Ht=>{k(g()),l(d),k(zC),l(D),k(yr),k(c()),oA(()=>!g().readOnly&&(l(d)===zC||l(D)&&yr(c())))&&Ht(Oi)}),jo(CA(Zi,2),1,()=>(k(o()),l(E),oA(()=>function(Ht,Rt){var Bi=Object.keys(Ht);return Rt&&Rt.offset!==0?yrA(Bi,Rt.selectionStartIndex,Rt.selectionItemsCount,Rt.offset):Bi}(o(),l(E)))),cr,(Ht,Rt)=>{var Bi=_o(),Mi=ZA(()=>(k(e4),k(n()),l(Rt),oA(()=>e4(n(),l(Rt))))),Jt=ZA(()=>(k(Ua),k(a()),l(Rt),oA(()=>Ua(a())?a().properties[l(Rt)]:void 0))),b=ZA(()=>(k(Ua),k(s()),l(Rt),oA(()=>Ua(s())?s().properties[l(Rt)]:void 0))),et=ZA(()=>(l(u),l(Rt),oA(()=>l(u).concat(l(Rt))))),ai=ZA(()=>(k(uy),k(g()),k(c()),k(l(et)),oA(()=>uy(g().getJson(),c(),l(et))))),Wi=Mt(Bi),Xi=ZA(()=>(k(Ua),k(r()),l(Rt),oA(()=>Ua(r())?r().properties[l(Rt)]:void 0)));jG(Wi,{get value(){return k(o()),l(Rt),oA(()=>o()[l(Rt)])},get pointer(){return l(Mi)},get state(){return l(Xi)},get validationErrors(){return l(b)},get searchResults(){return l(Jt)},get selection(){return l(ai)},get context(){return g()},onDragSelectionStart:dA,$$slots:{identifier:(xn,Mo)=>{var vn,In=PJA(),qo=W(In),Vo=ZA(()=>(k(XrA),k(l(Jt)),oA(()=>XrA(l(Jt)))));(function(uo,Qn){ft(Qn,!1);var Kn=$(void 0,!0),$A=$(void 0,!0),Ei=M(Qn,"pointer",9),Ri=M(Qn,"key",9),un=M(Qn,"selection",9),Un=M(Qn,"searchResultItems",9),Zo=M(Qn,"onUpdateKey",9),Ci=M(Qn,"context",9),io=$(void 0,!0);function Wo(re){l($A)||Ci().readOnly||(re.preventDefault(),Ci().onSelect(yK(l(io))))}function Xo(re,xe){var ue=Zo()(Ri(),Ci().normalization.unescapeValue(re)),aA=yi(l(io)).concat(ue);Ci().onSelect(xe===eI.nextInside?vi(aA):a2(aA)),xe!==eI.self&&Ci().focus()}function nr(){Ci().onSelect(a2(l(io))),Ci().focus()}pA(()=>k(Ei()),()=>{y(io,xs(Ei()))}),pA(()=>(k(un()),l(io)),()=>{y(Kn,Lr(un())&&ri(un().path,l(io)))}),pA(()=>(l(Kn),k(un())),()=>{y($A,l(Kn)&&Sr(un()))}),ln(),qt(!0);var on=DJA(),$i=Mt(on),yt=re=>{var xe=ZA(()=>(k(Ci()),k(Ri()),oA(()=>Ci().normalization.escapeValue(Ri())))),ue=ZA(()=>(k(Sr),k(un()),oA(()=>Sr(un())?un().initialValue:void 0)));kaA(re,{get value(){return l(xe)},get initialValue(){return l(ue)},label:"Edit key",shortText:!0,onChange:Xo,onCancel:nr,get onFind(){return k(Ci()),oA(()=>Ci().onFind)}})},hn=re=>{var xe,ue=pJA(),aA=W(ue),DA=Je=>{var vt=ZA(()=>(k(Ci()),k(Ri()),oA(()=>Ci().normalization.escapeValue(Ri()))));_aA(Je,{get text(){return l(vt)},get searchResultItems(){return Un()}})},PA=Je=>{var vt=jr();we(Yt=>pt(vt,Yt),[()=>(k(bQ),k(Ci()),k(Ri()),oA(()=>bQ(Ci().normalization.escapeValue(Ri()))))],ZA),iA(Je,vt)};GA(aA,Je=>{Un()?Je(DA):Je(PA,!1)}),we(Je=>xe=jt(ue,1,"jse-key svelte-2iqnqn",null,xe,Je),[()=>({"jse-empty":Ri()===""})],ZA),ce("dblclick",ue,Wo),iA(re,ue)};GA($i,re=>{k(Ci()),l($A),oA(()=>!Ci().readOnly&&l($A))?re(yt):re(hn,!1)});var hA=CA($i,2),Ae=re=>{P1(re,{selected:!0,get onContextMenu(){return k(Ci()),oA(()=>Ci().onContextMenu)}})};GA(hA,re=>{k(Ci()),l(Kn),l($A),oA(()=>!Ci().readOnly&&l(Kn)&&!l($A))&&re(Ae)}),iA(uo,on),mt()})(qo,{get pointer(){return l(Mi)},get key(){return l(Rt)},get selection(){return l(ai)},get searchResultItems(){return l(Vo)},get context(){return g()},onUpdateKey:z}),we(uo=>vn=jt(In,1,"jse-key-outer svelte-oawf7x",null,vn,uo),[()=>({"jse-selected-key":Lr(l(ai))&&ri(l(ai).path,l(et))})],ZA),iA(xn,In)}}}),iA(Ht,Bi)});var Le=CA(Si,2),zi=CA(W(Le),2),fi=Ht=>{var Rt=jJA();ce("click",Rt,SA),iA(Ht,Rt)};GA(zi,Ht=>{l(i)||Ht(fi)}),iA(XA,ot)};GA(dt,XA=>{l(h)&&XA($e)}),ce("click",cA,G),iA(zA,xA)},gA=zA=>{var xA=$JA(),Me=W(xA),LA=W(Me);Po(LA,e,"identifier",{},null);var cA=CA(LA,2),Gt=P=>{iA(P,ZJA())};GA(cA,P=>{l(i)||P(Gt)});var ct=CA(cA,2),oe=W(ct),Dt=ZA(()=>l(D)?c():void 0),_e=ZA(()=>(k($rA),k(a()),oA(()=>$rA(a()))));XaA(oe,{get path(){return l(u)},get value(){return o()},get enforceString(){return l(w)},get selection(){return l(Dt)},get searchResultItems(){return l(_e)},get context(){return g()}});var Re=CA(ct,2),St=P=>{var X=WJA();P1(W(X),{get root(){return l(i)},selected:!0,get onContextMenu(){return k(g()),oA(()=>g().onContextMenu)}}),iA(P,X)};GA(Re,P=>{k(g()),l(D),k(c()),k(Vi),k(Gn),k(Sr),k(ri),k(nt),l(u),oA(()=>!g().readOnly&&l(D)&&c()&&(Vi(c())||Gn(c()))&&!Sr(c())&&ri(nt(c()),l(u)))&&P(St)});var Se=CA(Me,2),Wt=P=>{wQ(P,{get validationError(){return l(R)},onExpand:J})};GA(Se,P=>{l(R)&&P(Wt)});var L=CA(Se,2),T=P=>{var X=XJA();ce("click",X,SA),iA(P,X)};GA(L,P=>{l(i)||P(T)}),iA(zA,xA)};GA(KA,zA=>{k(nn),k(o()),oA(()=>nn(o()))?zA(OA):zA(gA,!1)},tA)};GA(UA,KA=>{k(o()),oA(()=>Array.isArray(o()))?KA(BA):KA(JA,!1)});var Xe=CA(UA,2),We=KA=>{var tA,OA=AYA(),gA=W(OA),zA=ZA(()=>(l(D),k(Ya),k(c()),oA(()=>l(D)&&Ya(c()))));P1(gA,{insert:!0,get selected(){return l(zA)},onContextMenu:lA}),we(xA=>{tA=jt(OA,1,"jse-insert-area jse-after svelte-oawf7x",null,tA,xA),gn(OA,"title",aG)},[()=>({"jse-hovered":l(d)===Ey,"jse-selected":l(D)&&Ya(c())})],ZA),iA(KA,OA)};GA(Xe,KA=>{k(g()),l(d),k(Ey),l(D),k(Ya),k(c()),oA(()=>!g().readOnly&&(l(d)===Ey||l(D)&&Ya(c())))&&KA(We)}),we((KA,tA,OA)=>{wA=jt(ie,1,KA,"svelte-oawf7x",wA,tA),gn(ie,"data-path",l(A)),gn(ie,"aria-selected",l(D)),VA=eg(ie,"",VA,OA)},[()=>rI((k(Vg),l(h),k(g()),l(u),k(o()),oA(()=>Vg("jse-json-node",{"jse-expanded":l(h)},g().onClassName(l(u),o()))))),()=>({"jse-root":l(i),"jse-selected":l(D)&&Gn(c()),"jse-selected-value":l(D)&&Vi(c()),"jse-readonly":g().readOnly,"jse-hovered":l(d)===krA}),()=>({"--level":(l(u),oA(()=>l(u).length))})],ZA),ce("mousedown",ie,function(KA){if((KA.buttons===1||KA.buttons===2)&&!((tA=KA.target).nodeName==="DIV"&&tA.contentEditable==="true"||KA.buttons===1&&EaA(KA.target,"BUTTON"))){var tA;KA.stopPropagation(),KA.preventDefault(),g().focus(),document.addEventListener("mousemove",K,!0),document.addEventListener("mouseup",O);var OA=oG(KA.target),gA=g().getJson(),zA=g().getDocumentState();if(!c()||OA===Ln.after||OA===Ln.inside||c().type!==OA&&c().type!==Ln.multi||!nf(gA,c(),l(u)))if(Eo(Eo().selecting=!0),Eo(Eo().selectionAnchor=l(u)),Eo(Eo().selectionAnchorType=OA),Eo(Eo().selectionFocus=l(u)),KA.shiftKey){var xA=g().getSelection();xA&&g().onSelect(Js(WC(xA),l(u)))}else if(OA===Ln.multi)if(l(i)&&KA.target.hasAttribute("data-path")){var Me=li(waA(o(),zA));g().onSelect(UG(Me))}else g().onSelect(Js(l(u),l(u)));else gA!==void 0&&g().onSelect(zrA(OA,l(u)));else KA.button===0&&I()(KA)}}),ce("mousemove",ie,function(KA){if(Eo().selecting){KA.preventDefault(),KA.stopPropagation(),Eo().selectionFocus===void 0&&window.getSelection&&window.getSelection().empty();var tA=oG(KA.target);ri(l(u),Eo().selectionFocus)&&tA===Eo().selectionAnchorType||(Eo(Eo().selectionFocus=l(u)),Eo(Eo().selectionAnchorType=tA),g().onSelect(Js(Eo().selectionAnchor||Eo().selectionFocus,Eo().selectionFocus)))}}),ce("mouseover",ie,function(KA){Eo().selecting||Eo().dragging||(KA.stopPropagation(),Z1(KA.target,"data-type","selectable-value")?y(d,krA):Z1(KA.target,"data-type","selectable-key")?y(d,void 0):Z1(KA.target,"data-type","insert-selection-area-inside")?y(d,zC):Z1(KA.target,"data-type","insert-selection-area-after")&&y(d,Ey),clearTimeout(B))}),ce("mouseout",ie,function(KA){KA.stopPropagation(),B=window.setTimeout(()=>y(d,void 0))}),iA(t,ie),mt()}var tYA={prefix:"fas",iconName:"jsoneditor-expand",icon:[512,512,[],"","M 0,448 V 512 h 512 v -64 z M 0,0 V 64 H 512 V 0 Z M 256,96 128,224 h 256 z M 256,416 384,288 H 128 Z"]},iYA={prefix:"fas",iconName:"jsoneditor-collapse",icon:[512,512,[],"","m 0,224 v 64 h 512 v -64 z M 256,192 384,64 H 128 Z M 256,320 128,448 h 256 z"]},lsA={prefix:"fas",iconName:"jsoneditor-format",icon:[512,512,[],"","M 0,32 v 64 h 416 v -64 z M 160,160 v 64 h 352 v -64 z M 160,288 v 64 h 288 v -64 z M 0,416 v 64 h 320 v -64 z"]},nYA={prefix:"fas",iconName:"jsoneditor-compact",icon:[512,512,[],"","M 0,32 v 64 h 512 v -64 z M 0,160 v 64 h 512 v -64 z M 0,288 v 64 h 352 v -64 z"]};function oYA(t,e){t.stopPropagation(),e.onCreateObject()}function rYA(t,e){t.stopPropagation(),e.onCreateArray()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -2064,7 +2064,7 @@ button.jse-validation-warning.svelte-1a8aobl { } .jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) button:where(.svelte-1eamlhk):disabled { background: var(--jse-button-primary-background-disabled, #9d9d9d); -}`);var oYA=(t,e)=>e.onClick(),rYA=vA('
        You can paste clipboard data using Ctrl+V, or use the following options:
        ',1),sYA=vA('
        Empty document
        ');function qG(t,e){var A=typeof t=="string"?t.toLowerCase():t,i=typeof e=="string"?e.toLowerCase():e;return(0,QsA.default)(A,i)}function $aA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,n=Ye(t,e);if(wo(n)){if(A===void 0)throw new Error("Cannot sort: no property selected by which to sort the array");return function(o){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,c=function(I,C){var d={boolean:0,number:1,string:2,undefined:4},B=3;return function(E,u){var h=Ye(E,I),w=Ye(u,I);if(typeof h!=typeof w){var x,R,D=(x=d[typeof h])!==null&&x!==void 0?x:B,G=(R=d[typeof w])!==null&&R!==void 0?R:B;return D>G?C:Dw?C:h1&&arguments[1]!==void 0?arguments[1]:[],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,a=Ye(o,r),c=Object.keys(a).slice();c.sort((I,C)=>s*qG(I,C));var g={};return c.forEach(I=>g[I]=a[I]),[{op:"replace",path:It(r),value:g}]}(t,e,i);throw new Error("Cannot sort: no array or object")}df(["click"]);Ut(`/* over all fonts, sizes, and colors */ +}`);var sYA=(t,e)=>e.onClick(),aYA=vA('
        You can paste clipboard data using Ctrl+V, or use the following options:
        ',1),cYA=vA('
        Empty document
        ');function qG(t,e){var A=typeof t=="string"?t.toLowerCase():t,i=typeof e=="string"?e.toLowerCase():e;return(0,QsA.default)(A,i)}function $aA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,n=Ye(t,e);if(wo(n)){if(A===void 0)throw new Error("Cannot sort: no property selected by which to sort the array");return function(o){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,c=function(I,C){var d={boolean:0,number:1,string:2,undefined:4},B=3;return function(E,u){var h=Ye(E,I),w=Ye(u,I);if(typeof h!=typeof w){var x,R,D=(x=d[typeof h])!==null&&x!==void 0?x:B,G=(R=d[typeof w])!==null&&R!==void 0?R:B;return D>G?C:Dw?C:h1&&arguments[1]!==void 0?arguments[1]:[],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,a=Ye(o,r),c=Object.keys(a).slice();c.sort((I,C)=>s*qG(I,C));var g={};return c.forEach(I=>g[I]=a[I]),[{op:"replace",path:Ct(r),value:g}]}(t,e,i);throw new Error("Cannot sort: no array or object")}df(["click"]);Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -2116,7 +2116,7 @@ button.jse-validation-warning.svelte-1a8aobl { .jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item.jse-selected:where(.svelte-2nnd2m) { background: var(--jse-navigation-bar-dropdown-color, #656565); color: var(--jse-navigation-bar-background, var(--jse-background-color, #fff)); -}`);var aYA=vA(''),cYA=vA(''),gYA=vA('
        ');function lYA(t,e){ft(e,!1);var A=M(e,"items",9),i=M(e,"selectedItem",9),n=M(e,"onSelect",9);qt(!0);var o=gYA(),r=W(o);jo(r,1,()=>(k(_y),k(A()),oA(()=>_y(A(),100))),c=>c,(c,g)=>{var I,C=aYA(),d=W(C);we((B,E,u)=>{I=jt(C,1,"jse-navigation-bar-dropdown-item svelte-2nnd2m",null,I,B),gn(C,"title",E),pt(d,u)},[()=>({"jse-selected":l(g)===i()}),()=>(l(g),oA(()=>l(g).toString())),()=>(k(X0),l(g),oA(()=>X0(l(g).toString(),30)))],ZA),ce("click",C,Z0(()=>n()(l(g)))),iA(c,C)});var s=CA(r,2),a=c=>{var g=cYA();gn(g,"title","Limited to 100 items"),iA(c,g)};GA(s,c=>{k(A()),oA(()=>A().length>100)&&c(a)}),iA(t,o),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var gYA=vA(''),lYA=vA(''),IYA=vA('
        ');function CYA(t,e){ft(e,!1);var A=M(e,"items",9),i=M(e,"selectedItem",9),n=M(e,"onSelect",9);qt(!0);var o=IYA(),r=W(o);jo(r,1,()=>(k(_y),k(A()),oA(()=>_y(A(),100))),c=>c,(c,g)=>{var I,C=gYA(),d=W(C);we((B,E,u)=>{I=jt(C,1,"jse-navigation-bar-dropdown-item svelte-2nnd2m",null,I,B),gn(C,"title",E),pt(d,u)},[()=>({"jse-selected":l(g)===i()}),()=>(l(g),oA(()=>l(g).toString())),()=>(k(X0),l(g),oA(()=>X0(l(g).toString(),30)))],ZA),ce("click",C,Z0(()=>n()(l(g)))),iA(c,C)});var s=CA(r,2),a=c=>{var g=lYA();gn(g,"title","Limited to 100 items"),iA(c,g)};GA(s,c=>{k(A()),oA(()=>A().length>100)&&c(a)}),iA(t,o),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -2164,7 +2164,7 @@ button.jse-validation-warning.svelte-1a8aobl { } .jse-navigation-bar-item.svelte-752ro1:last-child { padding-right: var(--jse-padding, 10px); -}`);var IYA=vA(''),CYA=vA('
        ');function IsA(t,e){ft(e,!1);var A,i=$(void 0,!0),n=$(void 0,!0),{openAbsolutePopup:o,closeAbsolutePopup:r}=cI("absolute-popup"),s=M(e,"path",9),a=M(e,"index",9),c=M(e,"onSelect",9),g=M(e,"getItems",9),I=$(void 0,!0),C=$(!1,!0);function d(x){r(A),c()(l(i).concat(x))}pA(()=>(k(s()),k(a())),()=>{y(i,s().slice(0,a()))}),pA(()=>(k(s()),k(a())),()=>{y(n,s()[a()])}),ln(),qt(!0);var B,E=CYA(),u=W(E);Ui(W(u),{get data(){return nL}});var h=CA(u,2),w=x=>{var R=IYA(),D=W(R);we(()=>pt(D,l(n))),ce("click",R,()=>d(l(n))),iA(x,R)};GA(h,x=>{l(n)!==void 0&&x(w)}),Qo(E,x=>y(I,x),()=>l(I)),we(x=>B=jt(u,1,"jse-navigation-bar-button jse-navigation-bar-arrow svelte-752ro1",null,B,x),[()=>({"jse-open":l(C)})],ZA),ce("click",u,function(){if(l(I)){y(C,!0);var x={items:g()(l(i)),selectedItem:l(n),onSelect:d};A=o(lYA,x,{anchor:l(I),closeOnOuterClick:!0,onClose:()=>{y(C,!1)}})}}),iA(t,E),mt()}function RK(t){var e,A;if(navigator.clipboard)return navigator.clipboard.writeText(t);if((e=(A=document).queryCommandSupported)!==null&&e!==void 0&&e.call(A,"copy")){var i=document.createElement("textarea");i.value=t,i.style.position="fixed",i.style.opacity="0",document.body.appendChild(i),i.select();try{document.execCommand("copy")}catch(n){console.error(n)}finally{document.body.removeChild(i)}return Promise.resolve()}return console.error("Copy failed."),Promise.resolve()}Ut(`/* over all fonts, sizes, and colors */ +}`);var dYA=vA(''),BYA=vA('
        ');function IsA(t,e){ft(e,!1);var A,i=$(void 0,!0),n=$(void 0,!0),{openAbsolutePopup:o,closeAbsolutePopup:r}=cI("absolute-popup"),s=M(e,"path",9),a=M(e,"index",9),c=M(e,"onSelect",9),g=M(e,"getItems",9),I=$(void 0,!0),C=$(!1,!0);function d(x){r(A),c()(l(i).concat(x))}pA(()=>(k(s()),k(a())),()=>{y(i,s().slice(0,a()))}),pA(()=>(k(s()),k(a())),()=>{y(n,s()[a()])}),ln(),qt(!0);var B,E=BYA(),u=W(E);Ui(W(u),{get data(){return nL}});var h=CA(u,2),w=x=>{var R=dYA(),D=W(R);we(()=>pt(D,l(n))),ce("click",R,()=>d(l(n))),iA(x,R)};GA(h,x=>{l(n)!==void 0&&x(w)}),Qo(E,x=>y(I,x),()=>l(I)),we(x=>B=jt(u,1,"jse-navigation-bar-button jse-navigation-bar-arrow svelte-752ro1",null,B,x),[()=>({"jse-open":l(C)})],ZA),ce("click",u,function(){if(l(I)){y(C,!0);var x={items:g()(l(i)),selectedItem:l(n),onSelect:d};A=o(CYA,x,{anchor:l(I),closeOnOuterClick:!0,onClose:()=>{y(C,!1)}})}}),iA(t,E),mt()}function RK(t){var e,A;if(navigator.clipboard)return navigator.clipboard.writeText(t);if((e=(A=document).queryCommandSupported)!==null&&e!==void 0&&e.call(A,"copy")){var i=document.createElement("textarea");i.value=t,i.style.position="fixed",i.style.opacity="0",document.body.appendChild(i),i.select();try{document.execCommand("copy")}catch(n){console.error(n)}finally{document.body.removeChild(i)}return Promise.resolve()}return console.error("Copy failed."),Promise.resolve()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -2226,7 +2226,7 @@ button.jse-validation-warning.svelte-1a8aobl { margin: 2px; padding: 0 5px; border-radius: 3px; -}`);var dYA=vA(''),BYA=vA('
        Copied!
        '),EYA=vA('
        ');function QYA(t,e){ft(e,!1);var A=$(),i=cI("absolute-popup"),n=M(e,"path",8),o=M(e,"pathParser",8),r=M(e,"onChange",8),s=M(e,"onClose",8),a=M(e,"onError",8),c=M(e,"pathExists",8),g=$(),I=$(),C=$(!1),d=void 0,B=$(!1);function E(){l(g).focus()}function u(O){try{var V=o().parse(O);return function(j){if(!c()(j))throw new Error("Path does not exist in current document")}(V),{path:V,error:void 0}}catch(j){return{path:void 0,error:j}}}ws(()=>{E()}),ig(()=>{clearTimeout(d)}),pA(()=>(k(o()),k(n())),()=>{y(I,o().stringify(n()))}),pA(()=>(l(C),l(I)),()=>{y(A,l(C)?u(l(I)).error:void 0)}),ln(),qt();var h,w=EYA(),x=W(w);Qo(x,O=>y(g,O),()=>l(g));var R=CA(x,2),D=O=>{var V=dYA();Ui(W(V),{get data(){return m1}}),Ts(V,(j,dA)=>RQ?.(j,dA),()=>pe({text:String(l(A)||"")},i)),iA(O,V)};GA(R,O=>{l(A)&&O(D)});var G=CA(R,2),J=O=>{iA(O,BYA())};GA(G,O=>{l(B)&&O(J)});var z,K=CA(G,2);Ui(W(K),{get data(){return G0}}),we((O,V)=>{h=jt(w,1,"jse-navigation-bar-path-editor svelte-zc2wx7",null,h,O),ed(x,l(I)),z=jt(K,1,"jse-navigation-bar-copy svelte-zc2wx7",null,z,V)},[()=>({error:l(A)}),()=>({copied:l(B)})],ZA),ce("keydown",x,Z0(function(O){var V=s2(O);if(V==="Escape"&&(O.preventDefault(),s()()),V==="Enter"){O.preventDefault(),y(C,!0);var j=u(l(I));j.path!==void 0?r()(j.path):a()(j.error)}})),ce("input",x,function(O){y(I,O.currentTarget.value)}),ce("click",K,function(){RK(l(I)),y(B,!0),d=window.setTimeout(()=>y(B,!1),1e3),E()}),iA(t,w),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var EYA=vA(''),QYA=vA('
        Copied!
        '),uYA=vA('
        ');function hYA(t,e){ft(e,!1);var A=$(),i=cI("absolute-popup"),n=M(e,"path",8),o=M(e,"pathParser",8),r=M(e,"onChange",8),s=M(e,"onClose",8),a=M(e,"onError",8),c=M(e,"pathExists",8),g=$(),I=$(),C=$(!1),d=void 0,B=$(!1);function E(){l(g).focus()}function u(O){try{var V=o().parse(O);return function(j){if(!c()(j))throw new Error("Path does not exist in current document")}(V),{path:V,error:void 0}}catch(j){return{path:void 0,error:j}}}ws(()=>{E()}),ig(()=>{clearTimeout(d)}),pA(()=>(k(o()),k(n())),()=>{y(I,o().stringify(n()))}),pA(()=>(l(C),l(I)),()=>{y(A,l(C)?u(l(I)).error:void 0)}),ln(),qt();var h,w=uYA(),x=W(w);Qo(x,O=>y(g,O),()=>l(g));var R=CA(x,2),D=O=>{var V=EYA();Ui(W(V),{get data(){return m1}}),Ts(V,(j,dA)=>RQ?.(j,dA),()=>pe({text:String(l(A)||"")},i)),iA(O,V)};GA(R,O=>{l(A)&&O(D)});var G=CA(R,2),J=O=>{iA(O,QYA())};GA(G,O=>{l(B)&&O(J)});var z,K=CA(G,2);Ui(W(K),{get data(){return G0}}),we((O,V)=>{h=jt(w,1,"jse-navigation-bar-path-editor svelte-zc2wx7",null,h,O),ed(x,l(I)),z=jt(K,1,"jse-navigation-bar-copy svelte-zc2wx7",null,z,V)},[()=>({error:l(A)}),()=>({copied:l(B)})],ZA),ce("keydown",x,Z0(function(O){var V=s2(O);if(V==="Escape"&&(O.preventDefault(),s()()),V==="Enter"){O.preventDefault(),y(C,!0);var j=u(l(I));j.path!==void 0?r()(j.path):a()(j.error)}})),ce("input",x,function(O){y(I,O.currentTarget.value)}),ce("click",K,function(){RK(l(I)),y(B,!0),d=window.setTimeout(()=>y(B,!1),1e3),E()}),iA(t,w),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -2280,7 +2280,7 @@ button.jse-validation-warning.svelte-1a8aobl { .jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj) .jse-navigation-bar-space:where(.svelte-xs03gj) { flex: 1; text-align: left; -}`);var uYA=vA(" ",1),hYA=vA('
        ');function fYA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=xr("jsoneditor:NavigationBar"),o=M(e,"json",9),r=M(e,"selection",9),s=M(e,"onSelect",9),a=M(e,"onError",9),c=M(e,"pathParser",9),g=$(void 0,!0),I=$(!1,!0);function C(V){n("get items for path",V);var j=Ye(o(),V);if(Array.isArray(j))return N5(0,j.length).map(String);if(nn(j)){var dA=Object.keys(j).slice(0);return dA.sort(qG),dA}return[]}function d(V){return As(o(),V)}function B(V){n("select path",JSON.stringify(V)),s()(Js(V,V))}function E(){y(I,!1)}function u(V){E(),B(V)}pA(()=>(k(r()),nt),()=>{y(A,r()?nt(r()):[])}),pA(()=>(k(o()),l(A)),()=>{y(i,Fo(Ye(o(),l(A))))}),pA(()=>l(A),()=>{l(A),setTimeout(()=>{if(l(g)&&l(g).scrollTo){var V=l(g).scrollWidth-l(g).clientWidth;V>0&&(n("scrollTo ",V),l(g).scrollTo({left:V,behavior:"smooth"}))}})}),ln(),qt(!0);var h=hYA(),w=W(h),x=V=>{var j=uYA(),dA=Mt(j);jo(dA,1,()=>l(A),cr,(IA,SA,nA)=>{IsA(IA,{getItems:C,get path(){return l(A)},index:nA,onSelect:B})});var fA=CA(dA,2),EA=IA=>{IsA(IA,{getItems:C,get path(){return l(A)},get index(){return l(A),oA(()=>l(A).length)},onSelect:B})};GA(fA,IA=>{l(i)&&IA(EA)}),iA(V,j)},R=V=>{QYA(V,{get path(){return l(A)},onClose:E,onChange:u,get onError(){return a()},pathExists:d,get pathParser(){return c()}})};GA(w,V=>{l(I)?V(R,!1):V(x)});var D,G=CA(w,2),J=W(G),z=W(J),K=CA(J,2),O=ZA(()=>l(I)?yX:EX);Ui(K,{get data(){return l(O)}}),Qo(h,V=>y(g,V),()=>l(g)),we((V,j)=>{D=jt(G,1,"jse-navigation-bar-edit svelte-xs03gj",null,D,V),gn(G,"title",l(I)?"Cancel editing the selected path":"Edit the selected path"),pt(z,j)},[()=>({flex:!l(I),editing:l(I)}),()=>(k(Fo),k(o()),l(I),oA(()=>Fo(o())||l(I)?"\xA0":"Navigation bar"))],ZA),ce("click",G,function(){y(I,!l(I))}),iA(t,h),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var fYA=vA(" ",1),mYA=vA('
        ');function pYA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=xr("jsoneditor:NavigationBar"),o=M(e,"json",9),r=M(e,"selection",9),s=M(e,"onSelect",9),a=M(e,"onError",9),c=M(e,"pathParser",9),g=$(void 0,!0),I=$(!1,!0);function C(V){n("get items for path",V);var j=Ye(o(),V);if(Array.isArray(j))return N5(0,j.length).map(String);if(nn(j)){var dA=Object.keys(j).slice(0);return dA.sort(qG),dA}return[]}function d(V){return As(o(),V)}function B(V){n("select path",JSON.stringify(V)),s()(Js(V,V))}function E(){y(I,!1)}function u(V){E(),B(V)}pA(()=>(k(r()),nt),()=>{y(A,r()?nt(r()):[])}),pA(()=>(k(o()),l(A)),()=>{y(i,Fo(Ye(o(),l(A))))}),pA(()=>l(A),()=>{l(A),setTimeout(()=>{if(l(g)&&l(g).scrollTo){var V=l(g).scrollWidth-l(g).clientWidth;V>0&&(n("scrollTo ",V),l(g).scrollTo({left:V,behavior:"smooth"}))}})}),ln(),qt(!0);var h=mYA(),w=W(h),x=V=>{var j=fYA(),dA=Mt(j);jo(dA,1,()=>l(A),cr,(IA,SA,nA)=>{IsA(IA,{getItems:C,get path(){return l(A)},index:nA,onSelect:B})});var fA=CA(dA,2),EA=IA=>{IsA(IA,{getItems:C,get path(){return l(A)},get index(){return l(A),oA(()=>l(A).length)},onSelect:B})};GA(fA,IA=>{l(i)&&IA(EA)}),iA(V,j)},R=V=>{hYA(V,{get path(){return l(A)},onClose:E,onChange:u,get onError(){return a()},pathExists:d,get pathParser(){return c()}})};GA(w,V=>{l(I)?V(R,!1):V(x)});var D,G=CA(w,2),J=W(G),z=W(J),K=CA(J,2),O=ZA(()=>l(I)?yX:EX);Ui(K,{get data(){return l(O)}}),Qo(h,V=>y(g,V),()=>l(g)),we((V,j)=>{D=jt(G,1,"jse-navigation-bar-edit svelte-xs03gj",null,D,V),gn(G,"title",l(I)?"Cancel editing the selected path":"Edit the selected path"),pt(z,j)},[()=>({flex:!l(I),editing:l(I)}),()=>(k(Fo),k(o()),l(I),oA(()=>Fo(o())||l(I)?"\xA0":"Navigation bar"))],ZA),ce("click",G,function(){y(I,!l(I))}),iA(t,h),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -2395,7 +2395,7 @@ button.jse-validation-warning.svelte-1a8aobl { } .jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-replace-section:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo) { width: auto; -}`);var mYA=vA(''),pYA=vA('
        '),DYA=vA('');function AcA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=xr("jsoneditor:SearchBox"),r=M(e,"json",9),s=M(e,"documentState",9),a=M(e,"parser",9),c=M(e,"showSearch",9),g=M(e,"showReplace",13),I=M(e,"readOnly",9),C=M(e,"columns",9),d=M(e,"onSearch",9),B=M(e,"onFocus",9),E=M(e,"onPatch",9),u=M(e,"onClose",9),h=$("",!0),w="",x=$("",!0),R=$(!1,!0),D=$(void 0,!0),G=EE(function(xA){return JA.apply(this,arguments)},300),J=EE(function(xA){return Xe.apply(this,arguments)},300);function z(){g(!g()&&!I())}function K(xA){xA.stopPropagation();var Me=s2(xA);Me==="Enter"&&(xA.preventDefault(),l(h)!==w?G.flush():nA()),Me==="Shift+Enter"&&(xA.preventDefault(),wA()),Me==="Ctrl+Enter"&&(xA.preventDefault(),g()?dA():nA()),Me==="Ctrl+H"&&(xA.preventDefault(),z()),Me==="Escape"&&(xA.preventDefault(),tA())}function O(xA){s2(xA)==="Enter"&&(xA.preventDefault(),xA.stopPropagation(),dA())}function V(){return j.apply(this,arguments)}function j(){return(j=_t(function*(){to(),yield G.flush()})).apply(this,arguments)}function dA(){return fA.apply(this,arguments)}function fA(){return(fA=_t(function*(){var xA;if(!I()){var Me=(xA=l(D))===null||xA===void 0?void 0:xA.activeItem;if(o("handleReplace",{replaceText:l(x),activeItem:Me}),l(D)&&Me&&r()!==void 0){y(D,pe(pe({},jrA(l(D))),{},{activeIndex:l(i)}));var{operations:LA,newSelection:cA}=FKA(r(),s(),l(x),Me,a());E()(LA,(Gt,ct)=>({state:ct,selection:cA})),to(),yield J.flush(),yield ie()}}})).apply(this,arguments)}function EA(){return IA.apply(this,arguments)}function IA(){return(IA=_t(function*(){if(!I()){o("handleReplaceAll",{text:l(h),replaceText:l(x)});var{operations:xA,newSelection:Me}=function(LA,cA,Gt,ct,oe){for(var Dt=qrA(Gt,LA,{maxResults:1/0}),_e=[],Re=0;ReT.field!==P.field?T.field===zg.key?1:-1:P.path.length-T.path.length);var Wt,L=[];return _e.forEach(T=>{var{field:P,path:X,items:kA}=T;if(P===zg.key){var le=yi(X),Ee=Ye(LA,le),NA=li(X),MA=ff(le,Object.keys(Ee),NA,ZrA(NA,ct,kA));L=L.concat(MA),Wt=SQ(LA,MA)}else{if(P!==zg.value)throw new Error("Cannot replace: unknown type of search result field ".concat(P));var Ct=Ye(LA,X);if(Ct===void 0)throw new Error("Cannot replace: path not found ".concat(It(X)));var $e=typeof Ct=="string"?Ct:String(Ct),XA=t0(LA,cA,X),ot=ZrA($e,ct,kA),Si=[{op:"replace",path:It(X),value:XA?ot:GQ(ot,oe)}];L=L.concat(Si),Wt=SQ(LA,Si)}}),{operations:L,newSelection:Wt}}(r(),s(),l(h),l(x),a());E()(xA,(LA,cA)=>({state:cA,selection:Me})),yield ie()}})).apply(this,arguments)}function SA(xA){xA.select()}function nA(){return lA.apply(this,arguments)}function lA(){return(lA=_t(function*(){y(D,l(D)?jrA(l(D)):void 0),yield ie()})).apply(this,arguments)}function wA(){return VA.apply(this,arguments)}function VA(){return VA=_t(function*(){y(D,l(D)?function(xA){var Me=xA.activeIndex>0?xA.activeIndex-1:xA.items.length-1,LA=xA.items[Me],cA=xA.items.map((Gt,ct)=>pe(pe({},Gt),{},{active:ct===Me}));return pe(pe({},xA),{},{items:cA,activeItem:LA,activeIndex:Me})}(l(D)):void 0),yield ie()}),VA.apply(this,arguments)}function ie(){return UA.apply(this,arguments)}function UA(){return(UA=_t(function*(){var xA;o("handleFocus",l(D));var Me=(xA=l(D))===null||xA===void 0?void 0:xA.activeItem;Me&&r()!==void 0&&(yield B()(Me.path,Me.resultIndex))})).apply(this,arguments)}function BA(){return BA=_t(function*(xA){yield We(xA,l(h),r())}),BA.apply(this,arguments)}function JA(){return JA=_t(function*(xA){yield We(c(),xA,r()),yield ie()}),JA.apply(this,arguments)}function Xe(){return Xe=_t(function*(xA){yield We(c(),l(h),xA)}),Xe.apply(this,arguments)}function We(xA,Me,LA){return KA.apply(this,arguments)}function KA(){return KA=_t(function*(xA,Me,LA){return xA?(o("applySearch",{showSearch:xA,text:Me}),Me===""?(o("clearing search result"),l(D)!==void 0&&y(D,void 0),Promise.resolve()):(w=Me,y(R,!0),new Promise(cA=>{setTimeout(()=>{var Gt=qrA(Me,LA,{maxResults:rG,columns:C()});y(D,function(ct,oe){var Dt=oe!=null&&oe.activeItem?WrA(oe.activeItem):void 0,_e=ct.findIndex(Se=>ri(Dt,WrA(Se))),Re=_e!==-1?_e:oe?.activeIndex!==void 0&&oe?.activeIndex0?0:-1,St=ct.map((Se,Wt)=>pe(pe({resultIndex:Wt},Se),{},{active:Wt===Re}));return{items:St,activeItem:St[Re],activeIndex:Re}}(Gt,l(D))),y(R,!1),cA()})}))):(l(D)&&y(D,void 0),Promise.resolve())}),KA.apply(this,arguments)}function tA(){o("handleClose"),G.cancel(),J.cancel(),We(!1,l(h),r()),u()()}pA(()=>l(D),()=>{var xA;y(A,((xA=l(D))===null||xA===void 0||(xA=xA.items)===null||xA===void 0?void 0:xA.length)||0)}),pA(()=>l(D),()=>{var xA;y(i,((xA=l(D))===null||xA===void 0?void 0:xA.activeIndex)||0)}),pA(()=>(l(A),rG),()=>{y(n,l(A)>=rG?"".concat(999,"+"):String(l(A)))}),pA(()=>(k(d()),l(D)),()=>{d()(l(D))}),pA(()=>k(c()),()=>{(function(xA){BA.apply(this,arguments)})(c())}),pA(()=>l(h),()=>{G(l(h))}),pA(()=>k(r()),()=>{J(r())}),ln(),qt(!0);var OA=_o(),gA=Mt(OA),zA=xA=>{var Me=DYA(),LA=W(Me),cA=W(LA),Gt=NA=>{var MA=mYA(),Ct=W(MA),$e=ZA(()=>g()?Nl:uE);Ui(Ct,{get data(){return l($e)}}),ce("click",MA,z),iA(NA,MA)};GA(cA,NA=>{I()||NA(Gt)});var ct=W(CA(cA,2)),oe=W(ct),Dt=W(oe),_e=NA=>{Ui(NA,{get data(){return CX},spin:!0})},Re=NA=>{Ui(NA,{get data(){return u4}})};GA(Dt,NA=>{l(R)?NA(_e):NA(Re,!1)});var St=CA(oe,2),Se=W(St);rs(()=>Fy(Se,()=>l(h),NA=>y(h,NA))),Ts(Se,NA=>SA?.(NA)),rs(()=>ce("paste",Se,V));var Wt,L=CA(St,2),T=W(L),P=CA(L,2);Ui(W(P),{get data(){return DX}});var X=CA(P,2);Ui(W(X),{get data(){return QX}});var kA=CA(X,2);Ui(W(kA),{get data(){return h4}});var le=CA(ct,2),Ee=NA=>{var MA=pYA(),Ct=W(MA),$e=CA(Ct,2),XA=CA($e,2);Fy(Ct,()=>l(x),ot=>y(x,ot)),ce("keydown",Ct,O),ce("click",$e,dA),ce("click",XA,EA),iA(NA,MA)};GA(le,NA=>{g()&&!I()&&NA(Ee)}),we(NA=>{var MA;Wt=jt(L,1,"jse-search-count svelte-1mxl2uo",null,Wt,NA),pt(T,"".concat(l(i)!==-1&&l(i)({"jse-visible":l(h)!==""})],ZA),ce("click",P,nA),ce("click",X,wA),ce("click",kA,tA),ce("keydown",LA,K),iA(xA,Me)};GA(gA,xA=>{c()&&xA(zA)}),iA(t,OA),mt()}var af=Symbol("path");function wYA(t,e){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1/0,i={};Array.isArray(t)&&function(o,r,s){if(o.length1?(o.length-1)/(r-1):o.length,c=0;c{nn(o)?ecA(o,i,e):i[af]=!0});var n=[];return af in i&&n.push([]),tcA(i,[],n,e),n}function ecA(t,e,A){for(var i in t){var n=t[i],o=e[i]||(e[i]={});nn(n)&&A?ecA(n,o,A):o[af]===void 0&&(o[af]=!0)}}function tcA(t,e,A,i){for(var n in t){var o=e.concat(n),r=t[n];r&&r[af]===!0&&A.push(o),Lo(r)&&i&&tcA(r,o,A,i)}}function yYA(t,e,A,i,n,o){for(var r=arguments.length>6&&arguments[6]!==void 0?arguments[6]:80,s=wo(A)?A.length:0,a=function(w,x){var R=Object.values(w);if(Gi(R))return x;var D=(G,J)=>G+J;return R.reduce(D)/R.length}(i,n),c=t-r,g=e+2*r,I=w=>i[w]||n,C=0,d=o;d0&&(d-=I(--C));for(var B=C,E=0;En0(i,o))}}function PC(t,e){var{rowIndex:A,columnIndex:i}=t;return[String(A),...e[i]]}function vYA(t,e){var[A,i]=jR(t,r=>cK(r.path[0])),n=zR(A,MYA),o=PR(n,r=>{var s={row:[],columns:{}};return r.forEach(a=>{var c=function(g,I){var C=Xc(g.path,I);return C.columnIndex!==-1?C.columnIndex:-1}(a,e);c!==-1?(s.columns[c]===void 0&&(s.columns[c]=[]),s.columns[c].push(a)):s.row.push(a)}),s});return{root:i,rows:o}}function lQ(t,e){if(e&&e.length!==0)return e.length===1?e[0]:{path:t,message:"Multiple validation issues: "+e.map(A=>Ta(A.path)+" "+A.message).join(", "),severity:Og.warning}}function MYA(t){return parseInt(t.path[0],10)}function bYA(t,e,A){var i=e.some(n=>function(o,r,s){if(!o)return!1;if(r.op==="replace"){var a=xs(r.path),{rowIndex:c,columnIndex:g}=Xc(a,s),I=s.findIndex(C=>ri(C,o.path));if(c!==-1&&g!==-1&&g!==I)return!1}return!0}(t,n,A));return i?void 0:t}var Ys=xr("jsoneditor:actions");function icA(t){return VG.apply(this,arguments)}function VG(){return VG=_t(function*(t){var{json:e,selection:A,indentation:i,readOnly:n,parser:o,onPatch:r}=t;if(!n&&e!==void 0&&A&&uQ(A)){var s=MaA(e,A,i,o);if(s!==void 0){Ys("cut",{selection:A,clipboard:s,indentation:i}),yield RK(s);var{operations:a,newSelection:c}=xaA(e,A);r(a,(g,I)=>({state:I,selection:c}))}}}),VG.apply(this,arguments)}function ncA(t){return ZG.apply(this,arguments)}function ZG(){return ZG=_t(function*(t){var{json:e,selection:A,indentation:i,parser:n}=t,o=MaA(e,A,i,n);o!==void 0&&(Ys("copy",{clipboard:o,indentation:i}),yield RK(o))}),ZG.apply(this,arguments)}function ocA(t){var{clipboardText:e,json:A,selection:i,readOnly:n,parser:o,onPatch:r,onChangeText:s,onPasteMultilineText:a,openRepairModal:c}=t;if(!n)try{g(e)}catch{c(e,C=>{Ys("repaired pasted text: ",C),g(C)})}function g(I){if(A!==void 0){var C=i||vi([]),d=LaA(A,C,I,o),B=function(E,u,h){var w=arguments.length>3&&arguments[3]!==void 0?arguments[3]:MKA;if(E.length>w)return!1;var x=/\n/.test(E);if(!x)return!1;var R=u.some(G=>G.op==="replace"&&Array.isArray(G.value)),D=u.filter(G=>G.op==="add").length>1;if(!R&&!D)return!1;try{return Ef(E,h.parse),!1}catch{return!0}}(e,d,o);Ys("paste",{pastedText:I,operations:d,ensureSelection:C,pasteMultilineText:B}),r(d,(E,u)=>{var h=u;return d.filter(w=>(fR(w)||V8(w))&&Fo(w.value)).forEach(w=>{var x=ba(A,w.path);h=id(E,h,x)}),{state:h}}),B&&a(I)}else Ys("paste text",{pastedText:I}),s(e,(E,u)=>{if(E)return{state:id(E,u,[])}})}}function rcA(t){var{json:e,text:A,selection:i,keepSelection:n,readOnly:o,onChange:r,onPatch:s}=t;if(!o&&i){var a=e!==void 0&&(Lr(i)||Vi(i))?Js(i.path,i.path):i;if(Gi(nt(i)))Ys("remove root",{selection:i}),r&&r({text:"",json:void 0},e!==void 0?{text:void 0,json:e}:{text:A||"",json:e},{contentErrors:void 0,patchResult:void 0});else if(e!==void 0){var{operations:c,newSelection:g}=xaA(e,a);Ys("remove",{operations:c,selection:i,newSelection:g}),s(c,(I,C)=>({state:C,selection:n?i:g}))}}}function Zy(t){var{insertType:e,selectInside:A,initialValue:i,json:n,selection:o,readOnly:r,parser:s,onPatch:a,onReplaceJson:c}=t;if(!r){var g=function(E,u,h){if(h==="object")return{};if(h==="array")return[];if(h==="structure"&&E!==void 0){var w=u?yaA(u):[],x=Ye(E,w);if(Array.isArray(x)&&!Gi(x)){var R=Tc(x);return Fo(R)?YR(R,D=>Array.isArray(D)?[]:nn(D)?void 0:""):""}}return""}(n,o,e);if(n!==void 0){var I=s.stringify(g),C=LaA(n,o,I,s);Ys("onInsert",{insertType:e,operations:C,newValue:g,data:I});var d=li(C.filter(E=>E.op==="add"||E.op==="replace"));a(C,(E,u,h)=>{if(d){var w=ba(E,d.path);if(Fo(g))return{state:Yg(E,u,w,wK),selection:A?c2(w):h};if(g===""){var x=Gi(w)?void 0:Ye(E,yi(w));return{state:Yg(E,u,w,by),selection:nn(x)?yK(w,i):Yy(w,i)}}}}),Ys("after patch")}else{Ys("onInsert",{insertType:e,newValue:g});var B=[];c(g,(E,u)=>({state:id(E,u,B),selection:Fo(g)?c2(B):Yy(B)}))}}}function scA(t){return WG.apply(this,arguments)}function WG(){return WG=_t(function*(t){var{char:e,selectInside:A,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a,onSelect:c}=t;o||(Lr(n)?c(pe(pe({},n),{},{edit:!0,initialValue:e})):e==="{"?Zy({insertType:"object",selectInside:A,initialValue:void 0,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a}):e==="["?Zy({insertType:"array",selectInside:A,initialValue:void 0,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a}):Vi(n)&&i!==void 0?Fo(Ye(i,n.path))||c(pe(pe({},n),{},{edit:!0,initialValue:e})):(Ys("onInsertValueWithCharacter",{char:e}),yield function(g){return XG.apply(this,arguments)}({char:e,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a})))}),WG.apply(this,arguments)}function XG(){return XG=_t(function*(t){var{char:e,json:A,selection:i,readOnly:n,parser:o,onPatch:r,onReplaceJson:s}=t;n||Zy({insertType:"value",selectInside:!1,initialValue:e,json:A,selection:i,readOnly:n,parser:o,onPatch:r,onReplaceJson:s})}),XG.apply(this,arguments)}Ut(`/* over all fonts, sizes, and colors */ +}`);var DYA=vA(''),wYA=vA('
        '),yYA=vA('');function AcA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=xr("jsoneditor:SearchBox"),r=M(e,"json",9),s=M(e,"documentState",9),a=M(e,"parser",9),c=M(e,"showSearch",9),g=M(e,"showReplace",13),I=M(e,"readOnly",9),C=M(e,"columns",9),d=M(e,"onSearch",9),B=M(e,"onFocus",9),E=M(e,"onPatch",9),u=M(e,"onClose",9),h=$("",!0),w="",x=$("",!0),R=$(!1,!0),D=$(void 0,!0),G=EE(function(xA){return JA.apply(this,arguments)},300),J=EE(function(xA){return Xe.apply(this,arguments)},300);function z(){g(!g()&&!I())}function K(xA){xA.stopPropagation();var Me=s2(xA);Me==="Enter"&&(xA.preventDefault(),l(h)!==w?G.flush():nA()),Me==="Shift+Enter"&&(xA.preventDefault(),wA()),Me==="Ctrl+Enter"&&(xA.preventDefault(),g()?dA():nA()),Me==="Ctrl+H"&&(xA.preventDefault(),z()),Me==="Escape"&&(xA.preventDefault(),tA())}function O(xA){s2(xA)==="Enter"&&(xA.preventDefault(),xA.stopPropagation(),dA())}function V(){return j.apply(this,arguments)}function j(){return(j=_t(function*(){to(),yield G.flush()})).apply(this,arguments)}function dA(){return fA.apply(this,arguments)}function fA(){return(fA=_t(function*(){var xA;if(!I()){var Me=(xA=l(D))===null||xA===void 0?void 0:xA.activeItem;if(o("handleReplace",{replaceText:l(x),activeItem:Me}),l(D)&&Me&&r()!==void 0){y(D,pe(pe({},jrA(l(D))),{},{activeIndex:l(i)}));var{operations:LA,newSelection:cA}=GKA(r(),s(),l(x),Me,a());E()(LA,(Gt,ct)=>({state:ct,selection:cA})),to(),yield J.flush(),yield ie()}}})).apply(this,arguments)}function EA(){return IA.apply(this,arguments)}function IA(){return(IA=_t(function*(){if(!I()){o("handleReplaceAll",{text:l(h),replaceText:l(x)});var{operations:xA,newSelection:Me}=function(LA,cA,Gt,ct,oe){for(var Dt=qrA(Gt,LA,{maxResults:1/0}),_e=[],Re=0;ReT.field!==P.field?T.field===zg.key?1:-1:P.path.length-T.path.length);var Wt,L=[];return _e.forEach(T=>{var{field:P,path:X,items:kA}=T;if(P===zg.key){var le=yi(X),Ee=Ye(LA,le),FA=li(X),MA=ff(le,Object.keys(Ee),FA,ZrA(FA,ct,kA));L=L.concat(MA),Wt=SQ(LA,MA)}else{if(P!==zg.value)throw new Error("Cannot replace: unknown type of search result field ".concat(P));var dt=Ye(LA,X);if(dt===void 0)throw new Error("Cannot replace: path not found ".concat(Ct(X)));var $e=typeof dt=="string"?dt:String(dt),XA=t0(LA,cA,X),ot=ZrA($e,ct,kA),Si=[{op:"replace",path:Ct(X),value:XA?ot:GQ(ot,oe)}];L=L.concat(Si),Wt=SQ(LA,Si)}}),{operations:L,newSelection:Wt}}(r(),s(),l(h),l(x),a());E()(xA,(LA,cA)=>({state:cA,selection:Me})),yield ie()}})).apply(this,arguments)}function SA(xA){xA.select()}function nA(){return lA.apply(this,arguments)}function lA(){return(lA=_t(function*(){y(D,l(D)?jrA(l(D)):void 0),yield ie()})).apply(this,arguments)}function wA(){return VA.apply(this,arguments)}function VA(){return VA=_t(function*(){y(D,l(D)?function(xA){var Me=xA.activeIndex>0?xA.activeIndex-1:xA.items.length-1,LA=xA.items[Me],cA=xA.items.map((Gt,ct)=>pe(pe({},Gt),{},{active:ct===Me}));return pe(pe({},xA),{},{items:cA,activeItem:LA,activeIndex:Me})}(l(D)):void 0),yield ie()}),VA.apply(this,arguments)}function ie(){return UA.apply(this,arguments)}function UA(){return(UA=_t(function*(){var xA;o("handleFocus",l(D));var Me=(xA=l(D))===null||xA===void 0?void 0:xA.activeItem;Me&&r()!==void 0&&(yield B()(Me.path,Me.resultIndex))})).apply(this,arguments)}function BA(){return BA=_t(function*(xA){yield We(xA,l(h),r())}),BA.apply(this,arguments)}function JA(){return JA=_t(function*(xA){yield We(c(),xA,r()),yield ie()}),JA.apply(this,arguments)}function Xe(){return Xe=_t(function*(xA){yield We(c(),l(h),xA)}),Xe.apply(this,arguments)}function We(xA,Me,LA){return KA.apply(this,arguments)}function KA(){return KA=_t(function*(xA,Me,LA){return xA?(o("applySearch",{showSearch:xA,text:Me}),Me===""?(o("clearing search result"),l(D)!==void 0&&y(D,void 0),Promise.resolve()):(w=Me,y(R,!0),new Promise(cA=>{setTimeout(()=>{var Gt=qrA(Me,LA,{maxResults:rG,columns:C()});y(D,function(ct,oe){var Dt=oe!=null&&oe.activeItem?WrA(oe.activeItem):void 0,_e=ct.findIndex(Se=>ri(Dt,WrA(Se))),Re=_e!==-1?_e:oe?.activeIndex!==void 0&&oe?.activeIndex0?0:-1,St=ct.map((Se,Wt)=>pe(pe({resultIndex:Wt},Se),{},{active:Wt===Re}));return{items:St,activeItem:St[Re],activeIndex:Re}}(Gt,l(D))),y(R,!1),cA()})}))):(l(D)&&y(D,void 0),Promise.resolve())}),KA.apply(this,arguments)}function tA(){o("handleClose"),G.cancel(),J.cancel(),We(!1,l(h),r()),u()()}pA(()=>l(D),()=>{var xA;y(A,((xA=l(D))===null||xA===void 0||(xA=xA.items)===null||xA===void 0?void 0:xA.length)||0)}),pA(()=>l(D),()=>{var xA;y(i,((xA=l(D))===null||xA===void 0?void 0:xA.activeIndex)||0)}),pA(()=>(l(A),rG),()=>{y(n,l(A)>=rG?"".concat(999,"+"):String(l(A)))}),pA(()=>(k(d()),l(D)),()=>{d()(l(D))}),pA(()=>k(c()),()=>{(function(xA){BA.apply(this,arguments)})(c())}),pA(()=>l(h),()=>{G(l(h))}),pA(()=>k(r()),()=>{J(r())}),ln(),qt(!0);var OA=_o(),gA=Mt(OA),zA=xA=>{var Me=yYA(),LA=W(Me),cA=W(LA),Gt=FA=>{var MA=DYA(),dt=W(MA),$e=ZA(()=>g()?Nl:uE);Ui(dt,{get data(){return l($e)}}),ce("click",MA,z),iA(FA,MA)};GA(cA,FA=>{I()||FA(Gt)});var ct=W(CA(cA,2)),oe=W(ct),Dt=W(oe),_e=FA=>{Ui(FA,{get data(){return CX},spin:!0})},Re=FA=>{Ui(FA,{get data(){return u4}})};GA(Dt,FA=>{l(R)?FA(_e):FA(Re,!1)});var St=CA(oe,2),Se=W(St);rs(()=>Fy(Se,()=>l(h),FA=>y(h,FA))),Ts(Se,FA=>SA?.(FA)),rs(()=>ce("paste",Se,V));var Wt,L=CA(St,2),T=W(L),P=CA(L,2);Ui(W(P),{get data(){return DX}});var X=CA(P,2);Ui(W(X),{get data(){return QX}});var kA=CA(X,2);Ui(W(kA),{get data(){return h4}});var le=CA(ct,2),Ee=FA=>{var MA=wYA(),dt=W(MA),$e=CA(dt,2),XA=CA($e,2);Fy(dt,()=>l(x),ot=>y(x,ot)),ce("keydown",dt,O),ce("click",$e,dA),ce("click",XA,EA),iA(FA,MA)};GA(le,FA=>{g()&&!I()&&FA(Ee)}),we(FA=>{var MA;Wt=jt(L,1,"jse-search-count svelte-1mxl2uo",null,Wt,FA),pt(T,"".concat(l(i)!==-1&&l(i)({"jse-visible":l(h)!==""})],ZA),ce("click",P,nA),ce("click",X,wA),ce("click",kA,tA),ce("keydown",LA,K),iA(xA,Me)};GA(gA,xA=>{c()&&xA(zA)}),iA(t,OA),mt()}var af=Symbol("path");function vYA(t,e){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1/0,i={};Array.isArray(t)&&function(o,r,s){if(o.length1?(o.length-1)/(r-1):o.length,c=0;c{nn(o)?ecA(o,i,e):i[af]=!0});var n=[];return af in i&&n.push([]),tcA(i,[],n,e),n}function ecA(t,e,A){for(var i in t){var n=t[i],o=e[i]||(e[i]={});nn(n)&&A?ecA(n,o,A):o[af]===void 0&&(o[af]=!0)}}function tcA(t,e,A,i){for(var n in t){var o=e.concat(n),r=t[n];r&&r[af]===!0&&A.push(o),Lo(r)&&i&&tcA(r,o,A,i)}}function MYA(t,e,A,i,n,o){for(var r=arguments.length>6&&arguments[6]!==void 0?arguments[6]:80,s=wo(A)?A.length:0,a=function(w,x){var R=Object.values(w);if(Gi(R))return x;var D=(G,J)=>G+J;return R.reduce(D)/R.length}(i,n),c=t-r,g=e+2*r,I=w=>i[w]||n,C=0,d=o;d0&&(d-=I(--C));for(var B=C,E=0;En0(i,o))}}function PC(t,e){var{rowIndex:A,columnIndex:i}=t;return[String(A),...e[i]]}function bYA(t,e){var[A,i]=jR(t,r=>cK(r.path[0])),n=zR(A,kYA),o=PR(n,r=>{var s={row:[],columns:{}};return r.forEach(a=>{var c=function(g,I){var C=Xc(g.path,I);return C.columnIndex!==-1?C.columnIndex:-1}(a,e);c!==-1?(s.columns[c]===void 0&&(s.columns[c]=[]),s.columns[c].push(a)):s.row.push(a)}),s});return{root:i,rows:o}}function lQ(t,e){if(e&&e.length!==0)return e.length===1?e[0]:{path:t,message:"Multiple validation issues: "+e.map(A=>Ta(A.path)+" "+A.message).join(", "),severity:Og.warning}}function kYA(t){return parseInt(t.path[0],10)}function SYA(t,e,A){var i=e.some(n=>function(o,r,s){if(!o)return!1;if(r.op==="replace"){var a=xs(r.path),{rowIndex:c,columnIndex:g}=Xc(a,s),I=s.findIndex(C=>ri(C,o.path));if(c!==-1&&g!==-1&&g!==I)return!1}return!0}(t,n,A));return i?void 0:t}var Ys=xr("jsoneditor:actions");function icA(t){return VG.apply(this,arguments)}function VG(){return VG=_t(function*(t){var{json:e,selection:A,indentation:i,readOnly:n,parser:o,onPatch:r}=t;if(!n&&e!==void 0&&A&&uQ(A)){var s=MaA(e,A,i,o);if(s!==void 0){Ys("cut",{selection:A,clipboard:s,indentation:i}),yield RK(s);var{operations:a,newSelection:c}=xaA(e,A);r(a,(g,I)=>({state:I,selection:c}))}}}),VG.apply(this,arguments)}function ncA(t){return ZG.apply(this,arguments)}function ZG(){return ZG=_t(function*(t){var{json:e,selection:A,indentation:i,parser:n}=t,o=MaA(e,A,i,n);o!==void 0&&(Ys("copy",{clipboard:o,indentation:i}),yield RK(o))}),ZG.apply(this,arguments)}function ocA(t){var{clipboardText:e,json:A,selection:i,readOnly:n,parser:o,onPatch:r,onChangeText:s,onPasteMultilineText:a,openRepairModal:c}=t;if(!n)try{g(e)}catch{c(e,C=>{Ys("repaired pasted text: ",C),g(C)})}function g(I){if(A!==void 0){var C=i||vi([]),d=LaA(A,C,I,o),B=function(E,u,h){var w=arguments.length>3&&arguments[3]!==void 0?arguments[3]:kKA;if(E.length>w)return!1;var x=/\n/.test(E);if(!x)return!1;var R=u.some(G=>G.op==="replace"&&Array.isArray(G.value)),D=u.filter(G=>G.op==="add").length>1;if(!R&&!D)return!1;try{return Ef(E,h.parse),!1}catch{return!0}}(e,d,o);Ys("paste",{pastedText:I,operations:d,ensureSelection:C,pasteMultilineText:B}),r(d,(E,u)=>{var h=u;return d.filter(w=>(fR(w)||V8(w))&&Fo(w.value)).forEach(w=>{var x=ba(A,w.path);h=id(E,h,x)}),{state:h}}),B&&a(I)}else Ys("paste text",{pastedText:I}),s(e,(E,u)=>{if(E)return{state:id(E,u,[])}})}}function rcA(t){var{json:e,text:A,selection:i,keepSelection:n,readOnly:o,onChange:r,onPatch:s}=t;if(!o&&i){var a=e!==void 0&&(Lr(i)||Vi(i))?Js(i.path,i.path):i;if(Gi(nt(i)))Ys("remove root",{selection:i}),r&&r({text:"",json:void 0},e!==void 0?{text:void 0,json:e}:{text:A||"",json:e},{contentErrors:void 0,patchResult:void 0});else if(e!==void 0){var{operations:c,newSelection:g}=xaA(e,a);Ys("remove",{operations:c,selection:i,newSelection:g}),s(c,(I,C)=>({state:C,selection:n?i:g}))}}}function Zy(t){var{insertType:e,selectInside:A,initialValue:i,json:n,selection:o,readOnly:r,parser:s,onPatch:a,onReplaceJson:c}=t;if(!r){var g=function(E,u,h){if(h==="object")return{};if(h==="array")return[];if(h==="structure"&&E!==void 0){var w=u?yaA(u):[],x=Ye(E,w);if(Array.isArray(x)&&!Gi(x)){var R=Tc(x);return Fo(R)?YR(R,D=>Array.isArray(D)?[]:nn(D)?void 0:""):""}}return""}(n,o,e);if(n!==void 0){var I=s.stringify(g),C=LaA(n,o,I,s);Ys("onInsert",{insertType:e,operations:C,newValue:g,data:I});var d=li(C.filter(E=>E.op==="add"||E.op==="replace"));a(C,(E,u,h)=>{if(d){var w=ba(E,d.path);if(Fo(g))return{state:Yg(E,u,w,wK),selection:A?c2(w):h};if(g===""){var x=Gi(w)?void 0:Ye(E,yi(w));return{state:Yg(E,u,w,by),selection:nn(x)?yK(w,i):Yy(w,i)}}}}),Ys("after patch")}else{Ys("onInsert",{insertType:e,newValue:g});var B=[];c(g,(E,u)=>({state:id(E,u,B),selection:Fo(g)?c2(B):Yy(B)}))}}}function scA(t){return WG.apply(this,arguments)}function WG(){return WG=_t(function*(t){var{char:e,selectInside:A,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a,onSelect:c}=t;o||(Lr(n)?c(pe(pe({},n),{},{edit:!0,initialValue:e})):e==="{"?Zy({insertType:"object",selectInside:A,initialValue:void 0,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a}):e==="["?Zy({insertType:"array",selectInside:A,initialValue:void 0,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a}):Vi(n)&&i!==void 0?Fo(Ye(i,n.path))||c(pe(pe({},n),{},{edit:!0,initialValue:e})):(Ys("onInsertValueWithCharacter",{char:e}),yield function(g){return XG.apply(this,arguments)}({char:e,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a})))}),WG.apply(this,arguments)}function XG(){return XG=_t(function*(t){var{char:e,json:A,selection:i,readOnly:n,parser:o,onPatch:r,onReplaceJson:s}=t;n||Zy({insertType:"value",selectInside:!1,initialValue:e,json:A,selection:i,readOnly:n,parser:o,onPatch:r,onReplaceJson:s})}),XG.apply(this,arguments)}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -2425,7 +2425,7 @@ button.jse-validation-warning.svelte-1a8aobl { border-left: var(--jse-main-border, 1px solid #d7d7d7); border-right: var(--jse-main-border, 1px solid #d7d7d7); border-bottom: var(--jse-main-border, 1px solid #d7d7d7); -}`);var kYA=vA('
        ');function acA(t,e){ft(e,!1);var A=$(),i=$(),n=M(e,"text",8),o=M(e,"json",8),r=M(e,"indentation",8),s=M(e,"parser",8);pA(()=>(k(o()),k(n())),()=>{y(A,o()!==void 0?{json:o()}:{text:n()||""})}),pA(()=>(l(A),k(r()),k(s()),Gy),()=>{y(i,X0(xG(l(A),r(),s()),Gy))}),ln(),qt();var a=kYA(),c=W(a);we(()=>pt(c,l(i))),iA(t,a),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var RYA=vA('
        ');function acA(t,e){ft(e,!1);var A=$(),i=$(),n=M(e,"text",8),o=M(e,"json",8),r=M(e,"indentation",8),s=M(e,"parser",8);pA(()=>(k(o()),k(n())),()=>{y(A,o()!==void 0?{json:o()}:{text:n()||""})}),pA(()=>(l(A),k(r()),k(s()),Gy),()=>{y(i,X0(xG(l(A),r(),s()),Gy))}),ln(),qt();var a=RYA(),c=W(a);we(()=>pt(c,l(i))),iA(t,a),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -2474,7 +2474,7 @@ button.jse-context-menu-button.left.svelte-1idfykj { } button.jse-context-menu-button.svelte-1idfykj svg { width: 16px; -}`);var SYA=vA('');function hG(t,e){ft(e,!1);var A=M(e,"item",8),i=M(e,"className",8,void 0),n=M(e,"onRequestClose",8);qt();var o=SYA(),r=W(o),s=g=>{Ui(g,{get data(){return k(A()),oA(()=>A().icon)}})};GA(r,g=>{k(A()),oA(()=>A().icon)&&g(s)});var a=CA(r,2),c=g=>{var I=jr();we(()=>pt(I,(k(A()),oA(()=>A().text)))),iA(g,I)};GA(a,g=>{k(A()),oA(()=>A().text)&&g(c)}),we(g=>{jt(o,1,g,"svelte-1idfykj"),gn(o,"title",(k(A()),oA(()=>A().title))),o.disabled=(k(A()),oA(()=>A().disabled||!1))},[()=>rI((k(Vg),k(i()),k(A()),oA(()=>Vg("jse-context-menu-button",i(),A().className))))],ZA),ce("click",o,g=>{n()(),A().onClick(g)}),iA(t,o),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var LYA=vA('');function hG(t,e){ft(e,!1);var A=M(e,"item",8),i=M(e,"className",8,void 0),n=M(e,"onRequestClose",8);qt();var o=LYA(),r=W(o),s=g=>{Ui(g,{get data(){return k(A()),oA(()=>A().icon)}})};GA(r,g=>{k(A()),oA(()=>A().icon)&&g(s)});var a=CA(r,2),c=g=>{var I=jr();we(()=>pt(I,(k(A()),oA(()=>A().text)))),iA(g,I)};GA(a,g=>{k(A()),oA(()=>A().text)&&g(c)}),we(g=>{jt(o,1,g,"svelte-1idfykj"),gn(o,"title",(k(A()),oA(()=>A().title))),o.disabled=(k(A()),oA(()=>A().disabled||!1))},[()=>rI((k(Vg),k(i()),k(A()),oA(()=>Vg("jse-context-menu-button",i(),A().className))))],ZA),ce("click",o,g=>{n()(),A().onClick(g)}),iA(t,o),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -2577,7 +2577,7 @@ button.jse-context-menu-button.svelte-1idfykj svg { .jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) button:where(.svelte-11rxb2m):disabled { color: var(--jse-context-menu-color-disabled, #9d9d9d); background: unset; -}`);var RYA=vA('
      • '),LYA=vA('
          ');Ut(`/* over all fonts, sizes, and colors */ +}`);var xYA=vA('
        • '),NYA=vA('
            ');Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -2626,7 +2626,7 @@ button.jse-context-menu-button.left.svelte-1idfykj { } button.jse-context-menu-button.svelte-1idfykj svg { width: 16px; -}`);var xYA=vA('');function fG(t,e){ft(e,!1);var A=$(),i=M(e,"item",8),n=M(e,"className",8,void 0),o=M(e,"onRequestClose",8);pA(()=>(k(i()),k(o())),()=>{y(A,i().items.map(r=>pe(pe({},r),{},{onClick:s=>{o()(),r.onClick(s)}})))}),ln(),qt(),function(r,s){ft(s,!1);var a=$(void 0,!0),c=M(s,"items",25,()=>[]),g=M(s,"title",9,void 0),I=M(s,"width",9,"120px"),C=$(!1,!0);function d(){y(C,!1)}function B(D){s2(D)==="Escape"&&(D.preventDefault(),y(C,!1))}ws(()=>{document.addEventListener("click",d),document.addEventListener("keydown",B)}),ig(()=>{document.removeEventListener("click",d),document.removeEventListener("keydown",B)}),pA(()=>k(c()),()=>{y(a,c().every(D=>D.disabled===!0))}),ln(),qt(!0);var E=LYA(),u=W(E);Po(u,s,"defaultItem",{},null);var h,w=CA(u,2);Ui(W(w),{get data(){return Nl}});var x,R=CA(w,2);jo(W(R),5,c,cr,(D,G)=>{var J=RYA(),z=W(J),K=W(z),O=j=>{Ui(j,{get data(){return l(G),oA(()=>l(G).icon)}})};GA(K,j=>{l(G),oA(()=>l(G).icon)&&j(O)});var V=CA(K);we(()=>{var j;gn(z,"title",(l(G),oA(()=>l(G).title))),z.disabled=(l(G),oA(()=>l(G).disabled)),jt(z,1,rI((l(G),oA(()=>l(G).className))),"svelte-11rxb2m"),pt(V," ".concat((l(G),(j=oA(()=>l(G).text))!==null&&j!==void 0?j:"")))}),ce("click",z,j=>l(G).onClick(j)),iA(D,J)}),we((D,G)=>{var J;gn(E,"title",g()),h=jt(w,1,"jse-open-dropdown svelte-11rxb2m",null,h,D),w.disabled=l(a),x=jt(R,1,"jse-dropdown-items svelte-11rxb2m",null,x,G),eg(R,"width: ".concat((J=I())!==null&&J!==void 0?J:"",";"))},[()=>({"jse-visible":l(C)}),()=>({"jse-visible":l(C)})],ZA),ce("click",w,function(){var D=l(C);setTimeout(()=>y(C,!D))}),ce("click",E,d),iA(r,E),mt()}(t,{get width(){return k(i()),oA(()=>i().width)},get items(){return l(A)},$$slots:{defaultItem:(r,s)=>{var a=xYA(),c=W(a),g=C=>{Ui(C,{get data(){return k(i()),oA(()=>i().main.icon)}})};GA(c,C=>{k(i()),oA(()=>i().main.icon)&&C(g)});var I=CA(c);we(C=>{var d;jt(a,1,C,"svelte-1idfykj"),gn(a,"title",(k(i()),oA(()=>i().main.title))),a.disabled=(k(i()),oA(()=>i().main.disabled||!1)),pt(I," ".concat((k(i()),(d=oA(()=>i().main.text))!==null&&d!==void 0?d:"")))},[()=>rI((k(Vg),k(n()),k(i()),oA(()=>Vg("jse-context-menu-button",n(),i().main.className))))],ZA),ce("click",a,C=>{o()(),i().main.onClick(C)}),iA(r,a)}}}),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var FYA=vA('');function fG(t,e){ft(e,!1);var A=$(),i=M(e,"item",8),n=M(e,"className",8,void 0),o=M(e,"onRequestClose",8);pA(()=>(k(i()),k(o())),()=>{y(A,i().items.map(r=>pe(pe({},r),{},{onClick:s=>{o()(),r.onClick(s)}})))}),ln(),qt(),function(r,s){ft(s,!1);var a=$(void 0,!0),c=M(s,"items",25,()=>[]),g=M(s,"title",9,void 0),I=M(s,"width",9,"120px"),C=$(!1,!0);function d(){y(C,!1)}function B(D){s2(D)==="Escape"&&(D.preventDefault(),y(C,!1))}ws(()=>{document.addEventListener("click",d),document.addEventListener("keydown",B)}),ig(()=>{document.removeEventListener("click",d),document.removeEventListener("keydown",B)}),pA(()=>k(c()),()=>{y(a,c().every(D=>D.disabled===!0))}),ln(),qt(!0);var E=NYA(),u=W(E);Po(u,s,"defaultItem",{},null);var h,w=CA(u,2);Ui(W(w),{get data(){return Nl}});var x,R=CA(w,2);jo(W(R),5,c,cr,(D,G)=>{var J=xYA(),z=W(J),K=W(z),O=j=>{Ui(j,{get data(){return l(G),oA(()=>l(G).icon)}})};GA(K,j=>{l(G),oA(()=>l(G).icon)&&j(O)});var V=CA(K);we(()=>{var j;gn(z,"title",(l(G),oA(()=>l(G).title))),z.disabled=(l(G),oA(()=>l(G).disabled)),jt(z,1,rI((l(G),oA(()=>l(G).className))),"svelte-11rxb2m"),pt(V," ".concat((l(G),(j=oA(()=>l(G).text))!==null&&j!==void 0?j:"")))}),ce("click",z,j=>l(G).onClick(j)),iA(D,J)}),we((D,G)=>{var J;gn(E,"title",g()),h=jt(w,1,"jse-open-dropdown svelte-11rxb2m",null,h,D),w.disabled=l(a),x=jt(R,1,"jse-dropdown-items svelte-11rxb2m",null,x,G),eg(R,"width: ".concat((J=I())!==null&&J!==void 0?J:"",";"))},[()=>({"jse-visible":l(C)}),()=>({"jse-visible":l(C)})],ZA),ce("click",w,function(){var D=l(C);setTimeout(()=>y(C,!D))}),ce("click",E,d),iA(r,E),mt()}(t,{get width(){return k(i()),oA(()=>i().width)},get items(){return l(A)},$$slots:{defaultItem:(r,s)=>{var a=FYA(),c=W(a),g=C=>{Ui(C,{get data(){return k(i()),oA(()=>i().main.icon)}})};GA(c,C=>{k(i()),oA(()=>i().main.icon)&&C(g)});var I=CA(c);we(C=>{var d;jt(a,1,C,"svelte-1idfykj"),gn(a,"title",(k(i()),oA(()=>i().main.title))),a.disabled=(k(i()),oA(()=>i().main.disabled||!1)),pt(I," ".concat((k(i()),(d=oA(()=>i().main.text))!==null&&d!==void 0?d:"")))},[()=>rI((k(Vg),k(n()),k(i()),oA(()=>Vg("jse-context-menu-button",n(),i().main.className))))],ZA),ce("click",a,C=>{o()(),i().main.onClick(C)}),iA(r,a)}}}),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -2695,7 +2695,7 @@ button.jse-context-menu-button.svelte-1idfykj svg { width: 100%; height: 1px; background: var(--jse-context-menu-separator-color, #7a7a7a); -}`);var NYA=vA('
            '),FYA=vA('
            '),_YA=vA('
            '),GYA=vA('
            '),KYA=vA('
            '),UYA=vA('
            '),JYA=vA('
            '),YYA=vA('');function ccA(t,e){ft(e,!1);var A=M(e,"items",9),i=M(e,"onRequestClose",9),n=M(e,"tip",9),o=$(void 0,!0);ws(()=>{var C=Array.from(l(o).querySelectorAll("button")).find(d=>!d.disabled);C&&C.focus()});var r={ArrowUp:"Up",ArrowDown:"Down",ArrowLeft:"Left",ArrowRight:"Right"};function s(C){return console.error("Unknown type of context menu item",C),"???"}qt(!0);var a=YYA(),c=W(a);jo(c,1,A,cr,(C,d)=>{var B=_o(),E=Mt(B),u=w=>{hG(w,{get item(){return l(d)},get onRequestClose(){return i()}})},h=(w,x)=>{var R=G=>{fG(G,{get item(){return l(d)},get onRequestClose(){return i()}})},D=(G,J)=>{var z=O=>{var V=KYA();jo(V,5,()=>(l(d),oA(()=>l(d).items)),cr,(j,dA)=>{var fA=_o(),EA=Mt(fA),IA=nA=>{hG(nA,{get item(){return l(dA)},get onRequestClose(){return i()}})},SA=(nA,lA)=>{var wA=ie=>{fG(ie,{get item(){return l(dA)},get onRequestClose(){return i()}})},VA=(ie,UA)=>{var BA=Xe=>{var We=_YA();jo(We,5,()=>(l(dA),oA(()=>l(dA).items)),cr,(KA,tA)=>{var OA=_o(),gA=Mt(OA),zA=Me=>{hG(Me,{className:"left",get item(){return l(tA)},get onRequestClose(){return i()}})},xA=(Me,LA)=>{var cA=ct=>{fG(ct,{className:"left",get item(){return l(tA)},get onRequestClose(){return i()}})},Gt=(ct,oe)=>{var Dt=Re=>{iA(Re,NYA())},_e=(Re,St)=>{var Se=L=>{var T=FYA(),P=W(T);we(()=>pt(P,(l(tA),oA(()=>l(tA).text)))),iA(L,T)},Wt=L=>{var T=jr();we(P=>pt(T,P),[()=>(l(tA),oA(()=>s(l(tA))))],ZA),iA(L,T)};GA(Re,L=>{k(LrA),l(tA),oA(()=>LrA(l(tA)))?L(Se):L(Wt,!1)},St)};GA(ct,Re=>{k(j1),l(tA),oA(()=>j1(l(tA)))?Re(Dt):Re(_e,!1)},oe)};GA(Me,ct=>{k(cQ),l(tA),oA(()=>cQ(l(tA)))?ct(cA):ct(Gt,!1)},LA)};GA(gA,Me=>{k(W0),l(tA),oA(()=>W0(l(tA)))?Me(zA):Me(xA,!1)}),iA(KA,OA)}),iA(Xe,We)},JA=(Xe,We)=>{var KA=OA=>{iA(OA,GYA())},tA=OA=>{var gA=jr();we(zA=>pt(gA,zA),[()=>(l(dA),oA(()=>s(l(dA))))],ZA),iA(OA,gA)};GA(Xe,OA=>{k(j1),l(dA),oA(()=>j1(l(dA)))?OA(KA):OA(tA,!1)},We)};GA(ie,Xe=>{k(NrA),l(dA),oA(()=>NrA(l(dA)))?Xe(BA):Xe(JA,!1)},UA)};GA(nA,ie=>{k(cQ),l(dA),oA(()=>cQ(l(dA)))?ie(wA):ie(VA,!1)},lA)};GA(EA,nA=>{k(W0),l(dA),oA(()=>W0(l(dA)))?nA(IA):nA(SA,!1)}),iA(j,fA)}),iA(O,V)},K=(O,V)=>{var j=fA=>{iA(fA,UYA())},dA=fA=>{var EA=jr();we(IA=>pt(EA,IA),[()=>(l(d),oA(()=>s(l(d))))],ZA),iA(fA,EA)};GA(O,fA=>{k(j1),l(d),oA(()=>j1(l(d)))?fA(j):fA(dA,!1)},V)};GA(G,O=>{k(xrA),l(d),oA(()=>xrA(l(d)))?O(z):O(K,!1)},J)};GA(w,G=>{k(cQ),l(d),oA(()=>cQ(l(d)))?G(R):G(D,!1)},x)};GA(E,w=>{k(W0),l(d),oA(()=>W0(l(d)))?w(u):w(h,!1)}),iA(C,B)});var g=CA(c,2),I=C=>{var d=JYA(),B=W(d),E=W(B);Ui(W(E),{get data(){return gX}});var u=W(CA(E,2));we(()=>pt(u,n())),iA(C,d)};GA(g,C=>{n()&&C(I)}),Qo(a,C=>y(o,C),()=>l(o)),ce("keydown",a,function(C){var d=s2(C),B=r[d];if(B&&C.target){C.preventDefault();var E=rKA({allElements:Array.from(l(o).querySelectorAll("button:not([disabled])")),currentElement:C.target,direction:B,hasPrio:u=>u.getAttribute("data-type")!=="jse-open-dropdown"});E&&E.focus()}}),iA(t,a),mt()}Ut(`/* over all fonts, sizes, and colors */ +}`);var _YA=vA('
            '),GYA=vA('
            '),KYA=vA('
            '),UYA=vA('
            '),JYA=vA('
            '),YYA=vA('
            '),TYA=vA('
            '),HYA=vA('');function ccA(t,e){ft(e,!1);var A=M(e,"items",9),i=M(e,"onRequestClose",9),n=M(e,"tip",9),o=$(void 0,!0);ws(()=>{var C=Array.from(l(o).querySelectorAll("button")).find(d=>!d.disabled);C&&C.focus()});var r={ArrowUp:"Up",ArrowDown:"Down",ArrowLeft:"Left",ArrowRight:"Right"};function s(C){return console.error("Unknown type of context menu item",C),"???"}qt(!0);var a=HYA(),c=W(a);jo(c,1,A,cr,(C,d)=>{var B=_o(),E=Mt(B),u=w=>{hG(w,{get item(){return l(d)},get onRequestClose(){return i()}})},h=(w,x)=>{var R=G=>{fG(G,{get item(){return l(d)},get onRequestClose(){return i()}})},D=(G,J)=>{var z=O=>{var V=JYA();jo(V,5,()=>(l(d),oA(()=>l(d).items)),cr,(j,dA)=>{var fA=_o(),EA=Mt(fA),IA=nA=>{hG(nA,{get item(){return l(dA)},get onRequestClose(){return i()}})},SA=(nA,lA)=>{var wA=ie=>{fG(ie,{get item(){return l(dA)},get onRequestClose(){return i()}})},VA=(ie,UA)=>{var BA=Xe=>{var We=KYA();jo(We,5,()=>(l(dA),oA(()=>l(dA).items)),cr,(KA,tA)=>{var OA=_o(),gA=Mt(OA),zA=Me=>{hG(Me,{className:"left",get item(){return l(tA)},get onRequestClose(){return i()}})},xA=(Me,LA)=>{var cA=ct=>{fG(ct,{className:"left",get item(){return l(tA)},get onRequestClose(){return i()}})},Gt=(ct,oe)=>{var Dt=Re=>{iA(Re,_YA())},_e=(Re,St)=>{var Se=L=>{var T=GYA(),P=W(T);we(()=>pt(P,(l(tA),oA(()=>l(tA).text)))),iA(L,T)},Wt=L=>{var T=jr();we(P=>pt(T,P),[()=>(l(tA),oA(()=>s(l(tA))))],ZA),iA(L,T)};GA(Re,L=>{k(LrA),l(tA),oA(()=>LrA(l(tA)))?L(Se):L(Wt,!1)},St)};GA(ct,Re=>{k(j1),l(tA),oA(()=>j1(l(tA)))?Re(Dt):Re(_e,!1)},oe)};GA(Me,ct=>{k(cQ),l(tA),oA(()=>cQ(l(tA)))?ct(cA):ct(Gt,!1)},LA)};GA(gA,Me=>{k(W0),l(tA),oA(()=>W0(l(tA)))?Me(zA):Me(xA,!1)}),iA(KA,OA)}),iA(Xe,We)},JA=(Xe,We)=>{var KA=OA=>{iA(OA,UYA())},tA=OA=>{var gA=jr();we(zA=>pt(gA,zA),[()=>(l(dA),oA(()=>s(l(dA))))],ZA),iA(OA,gA)};GA(Xe,OA=>{k(j1),l(dA),oA(()=>j1(l(dA)))?OA(KA):OA(tA,!1)},We)};GA(ie,Xe=>{k(NrA),l(dA),oA(()=>NrA(l(dA)))?Xe(BA):Xe(JA,!1)},UA)};GA(nA,ie=>{k(cQ),l(dA),oA(()=>cQ(l(dA)))?ie(wA):ie(VA,!1)},lA)};GA(EA,nA=>{k(W0),l(dA),oA(()=>W0(l(dA)))?nA(IA):nA(SA,!1)}),iA(j,fA)}),iA(O,V)},K=(O,V)=>{var j=fA=>{iA(fA,YYA())},dA=fA=>{var EA=jr();we(IA=>pt(EA,IA),[()=>(l(d),oA(()=>s(l(d))))],ZA),iA(fA,EA)};GA(O,fA=>{k(j1),l(d),oA(()=>j1(l(d)))?fA(j):fA(dA,!1)},V)};GA(G,O=>{k(xrA),l(d),oA(()=>xrA(l(d)))?O(z):O(K,!1)},J)};GA(w,G=>{k(cQ),l(d),oA(()=>cQ(l(d)))?G(R):G(D,!1)},x)};GA(E,w=>{k(W0),l(d),oA(()=>W0(l(d)))?w(u):w(h,!1)}),iA(C,B)});var g=CA(c,2),I=C=>{var d=TYA(),B=W(d),E=W(B);Ui(W(E),{get data(){return gX}});var u=W(CA(E,2));we(()=>pt(u,n())),iA(C,d)};GA(g,C=>{n()&&C(I)}),Qo(a,C=>y(o,C),()=>l(o)),ce("keydown",a,function(C){var d=s2(C),B=r[d];if(B&&C.target){C.preventDefault();var E=aKA({allElements:Array.from(l(o).querySelectorAll("button:not([disabled])")),currentElement:C.target,direction:B,hasPrio:u=>u.getAttribute("data-type")!=="jse-open-dropdown"});E&&E.focus()}}),iA(t,a),mt()}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -2753,7 +2753,7 @@ button.jse-context-menu-button.svelte-1idfykj svg { } .jse-enum-value.jse-value.svelte-6ttr41:focus { color: var(--jse-text-color, #4d4d4d); -}`);var Iwe=vA(""),Cwe=vA("");var py,Dy;function wy(t,e){return py||(Dy=new WeakMap,py=new ResizeObserver(A=>{for(var i of A){var n=Dy.get(i.target);n&&n(i.target)}})),Dy.set(t,e),py.observe(t),{destroy:()=>{Dy.delete(t),py.unobserve(t)}}}Ut(`/* over all fonts, sizes, and colors */ +}`);var dwe=vA(""),Bwe=vA("");var py,Dy;function wy(t,e){return py||(Dy=new WeakMap,py=new ResizeObserver(A=>{for(var i of A){var n=Dy.get(i.target);n&&n(i.target)}})),Dy.set(t,e),py.observe(t),{destroy:()=>{Dy.delete(t),py.unobserve(t)}}}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -2836,7 +2836,7 @@ button.jse-context-menu-button.svelte-1idfykj svg { margin: -2px; margin-bottom: 2px; display: inline-block; -}`);var TYA=vA(" ",1),HYA=vA('
            '),OYA=vA('
            ',1),zYA=vA(' ',1),PYA=vA('
            loading...
            '),jYA=vA('
            ',1);function $G(t,e){ft(e,!1);var A=$(void 0,!0),i=xr("jsoneditor:TreeMode"),n=typeof window>"u";i("isSSR:",n);var o=h1(),r=h1(),{openAbsolutePopup:s,closeAbsolutePopup:a}=cI("absolute-popup"),c=$(void 0,!0),g=$(void 0,!0),I=$(void 0,!0),C=!1,d=qaA(),B=M(e,"readOnly",9),E=M(e,"externalContent",9),u=M(e,"externalSelection",9),h=M(e,"history",9),w=M(e,"truncateTextSize",9),x=M(e,"mainMenuBar",9),R=M(e,"navigationBar",9),D=M(e,"escapeControlCharacters",9),G=M(e,"escapeUnicodeCharacters",9),J=M(e,"parser",9),z=M(e,"parseMemoizeOne",9),K=M(e,"validator",9),O=M(e,"validationParser",9),V=M(e,"pathParser",9),j=M(e,"indentation",9),dA=M(e,"onError",9),fA=M(e,"onChange",9),EA=M(e,"onChangeMode",9),IA=M(e,"onSelect",9),SA=M(e,"onUndo",9),nA=M(e,"onRedo",9),lA=M(e,"onRenderValue",9),wA=M(e,"onRenderMenu",9),VA=M(e,"onRenderContextMenu",9),ie=M(e,"onClassName",9),UA=M(e,"onFocus",9),BA=M(e,"onBlur",9),JA=M(e,"onSortModal",9),Xe=M(e,"onTransformModal",9),We=M(e,"onJSONEditorModal",9),KA=!1,tA=$(!1,!0),OA=$(void 0,!0);kK({onMount:ws,onDestroy:ig,getWindow:()=>Qf(l(I)),hasFocus:()=>KA&&document.hasFocus()||CK(l(I)),onFocus:()=>{C=!0,UA()&&UA()()},onBlur:()=>{C=!1,BA()&&BA()()}});var gA=$(void 0,!0),zA=$(void 0,!0),xA=void 0,Me=!1,LA=$(GG({json:l(gA)}),!0),cA=$(tf(u())?u():void 0,!0);function Gt(H){y(cA,H)}ws(()=>{if(l(cA)){var H=nt(l(cA));y(LA,Yg(l(gA),l(LA),H,by)),setTimeout(()=>re(H))}});var ct,oe=$(void 0,!0),Dt=$(void 0,!0),_e=$(void 0,!0),Re=$(void 0,!0),St=$(!1,!0),Se=$(!1,!0);function Wt(H){y(Re,(ct=H)?FaA(l(gA),ct.items):void 0)}function L(H,rA){return T.apply(this,arguments)}function T(){return(T=_t(function*(H,rA){y(LA,Yg(l(gA),l(LA),H,by));var HA=Ae(rA);yield yt(H,{element:HA})})).apply(this,arguments)}function P(){y(St,!1),y(Se,!1),Ot()}function X(H){i("select validation error",H),y(cA,vi(H.path)),yt(H.path)}function kA(H){var rA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:KG;i("expand"),y(LA,Yg(l(gA),l(LA),H,rA))}function le(H,rA){y(LA,KrA(l(gA),l(LA),H,rA)),l(cA)&&function(HA,De){return n0(nt(HA),De)&&(nt(HA).length>De.length||yr(HA))}(l(cA),H)&&y(cA,void 0)}var Ee=$(!1,!0),NA=$([],!0),MA=$(void 0,!0),Ct=hE(VaA);function $e(H,rA,HA,De){fQ(()=>{var fe;try{fe=Ct(H,rA,HA,De)}catch(Ie){fe=[{path:[],message:"Failed to validate: "+Ie.message,severity:Og.warning}]}ri(fe,l(NA))||(i("validationErrors changed:",fe),y(NA,fe),y(MA,function(Ie,dt){var At;return dt.forEach(ui=>{At=gsA(Ie,At,ui.path,(Cn,xi)=>pe(pe({},xi),{},{validationError:ui}))}),dt.forEach(ui=>{for(var Cn=ui.path;Cn.length>0;)Cn=yi(Cn),At=gsA(Ie,At,Cn,(xi,Yn)=>Yn.validationError?Yn:pe(pe({},Yn),{},{validationError:{isChildError:!0,path:Cn,message:"Contains invalid data",severity:Og.warning}}))}),At}(H,l(NA))))},fe=>i("validationErrors updated in ".concat(fe," ms")))}function XA(){return i("validate"),xA?{parseError:xA,isRepairable:!1}:($e(l(gA),K(),J(),O()),Gi(l(NA))?void 0:{validationErrors:l(NA)})}function ot(){return l(gA)}function Si(){return l(LA)}function Zi(){return l(cA)}function Oi(H){i("applyExternalContent",{updatedContent:H}),X3(H)?function(rA){if(rA!==void 0){var HA=!ri(l(gA),rA);if(i("update external json",{isChanged:HA,currentlyText:l(gA)===void 0}),!!HA){var De={documentState:l(LA),selection:l(cA),json:l(gA),text:l(zA),textIsRepaired:l(Ee)};y(gA,rA),y(LA,uc(rA,l(LA))),Le(l(gA)),y(zA,void 0),y(Ee,!1),xA=void 0,zi(l(gA)),fi(De)}}}(H.json):W3(H)&&function(rA){if(!(rA===void 0||X3(E()))){var HA=rA!==l(zA);if(i("update external text",{isChanged:HA}),!!HA){var De={documentState:l(LA),selection:l(cA),json:l(gA),text:l(zA),textIsRepaired:l(Ee)};try{y(gA,z()(rA)),y(LA,uc(l(gA),l(LA))),Le(l(gA)),y(zA,rA),y(Ee,!1),xA=void 0}catch(fe){try{y(gA,z()(Uc(rA))),y(LA,uc(l(gA),l(LA))),Le(l(gA)),y(zA,rA),y(Ee,!0),xA=void 0,zi(l(gA))}catch{y(gA,void 0),y(LA,void 0),y(zA,E().text),y(Ee,!1),xA=l(zA)!==void 0&&l(zA)!==""?MQ(l(zA),fe.message||String(fe)):void 0}}zi(l(gA)),fi(De)}}}(H.text)}function Le(H){Me||(Me=!0,y(LA,id(H,l(LA),[])))}function zi(H){l(cA)&&(As(H,WC(l(cA)))&&As(H,nt(l(cA)))||(i("clearing selection: path does not exist anymore",l(cA)),y(cA,gQ(H,l(LA)))))}function fi(H){if(H.json!==void 0||H.text!==void 0){var rA=l(gA)!==void 0&&H.json!==void 0;h().add({type:"tree",undo:{patch:rA?[{op:"replace",path:"",value:H.json}]:void 0,json:H.json,text:H.text,documentState:H.documentState,textIsRepaired:H.textIsRepaired,selection:e0(H.selection),sortedColumn:void 0},redo:{patch:rA?[{op:"replace",path:"",value:l(gA)}]:void 0,json:l(gA),text:l(zA),documentState:l(LA),textIsRepaired:l(Ee),selection:e0(l(cA)),sortedColumn:void 0}})}}function Ht(H,rA){var HA;if(i("patch",H,rA),l(gA)===void 0)throw new Error("Cannot apply patch: no JSON");var De=l(gA),fe={json:void 0,text:l(zA),documentState:l(LA),selection:e0(l(cA)),textIsRepaired:l(Ee),sortedColumn:void 0},Ie=NaA(l(gA),H),dt=paA(l(gA),l(LA),H),At=(HA=SQ(l(gA),H))!==null&&HA!==void 0?HA:l(cA),ui=typeof rA=="function"?rA(dt.json,dt.documentState,At):void 0;return y(gA,ui?.json!==void 0?ui.json:dt.json),y(LA,ui?.state!==void 0?ui.state:dt.documentState),y(cA,ui?.selection!==void 0?ui.selection:At),y(zA,void 0),y(Ee,!1),y(Dt,void 0),y(_e,void 0),xA=void 0,zi(l(gA)),h().add({type:"tree",undo:pe({patch:Ie},fe),redo:{patch:H,json:void 0,text:l(zA),documentState:l(LA),selection:e0(l(cA)),sortedColumn:void 0,textIsRepaired:l(Ee)}}),{json:l(gA),previousJson:De,undo:Ie,redo:H}}function Rt(){!B()&&l(cA)&&y(cA,yK(nt(l(cA))))}function Bi(){if(!B()&&l(cA)){var H=nt(l(cA)),rA=Ye(l(gA),H);Fo(rA)?function(HA,De){i("openJSONEditorModal",{path:HA,value:De}),KA=!0,We()({content:{json:De},path:HA,onPatch:l(m).onPatch,onClose:()=>{KA=!1,setTimeout(Ot)}})}(H,rA):y(cA,Yy(H))}}function Mi(){if(!B()&&Vi(l(cA))){var H=nt(l(cA)),rA=It(H),HA=Ye(l(gA),H),De=!t0(l(gA),l(LA),H),fe=De?String(HA):GQ(String(HA),J());i("handleToggleEnforceString",{enforceString:De,value:HA,updatedValue:fe}),ue([{op:"replace",path:rA,value:fe}],(Ie,dt)=>({state:o7(l(gA),dt,H,{type:"value",enforceString:De})}))}}function Jt(){return l(Ee)&&l(gA)!==void 0&&aA(l(gA)),l(gA)!==void 0?{json:l(gA)}:{text:l(zA)||""}}function b(){return et.apply(this,arguments)}function et(){return et=_t(function*(){var H=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];yield icA({json:l(gA),selection:l(cA),indentation:H?j():void 0,readOnly:B(),parser:J(),onPatch:ue})}),et.apply(this,arguments)}function ai(){return Wi.apply(this,arguments)}function Wi(){return Wi=_t(function*(){var H=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];l(gA)!==void 0&&(yield ncA({json:l(gA),selection:l(cA),indentation:H?j():void 0,parser:J()}))}),Wi.apply(this,arguments)}function Xi(H){var rA;H.preventDefault(),vn((rA=H.clipboardData)===null||rA===void 0?void 0:rA.getData("text/plain"))}function xn(){return Mo.apply(this,arguments)}function Mo(){return(Mo=_t(function*(){try{vn(yield navigator.clipboard.readText())}catch(H){console.error(H),y(tA,!0)}})).apply(this,arguments)}function vn(H){H!==void 0&&ocA({clipboardText:H,json:l(gA),selection:l(cA),readOnly:B(),parser:J(),onPatch:ue,onChangeText:DA,onPasteMultilineText:sn,openRepairModal:In})}function In(H,rA){y(OA,{text:H,onParse:HA=>Ef(HA,De=>Bf(De,J())),onRepair:aaA,onApply:rA,onClose:Ot})}function qo(){rcA({json:l(gA),text:l(zA),selection:l(cA),keepSelection:!1,readOnly:B(),onChange:fA(),onPatch:ue})}function Vo(){!B()&&l(gA)!==void 0&&l(cA)&&uQ&&!Gi(nt(l(cA)))&&(i("duplicate",{selection:l(cA)}),ue(SaA(l(gA),sI(l(gA),l(cA)))))}function uo(){B()||!l(cA)||!Gn(l(cA))&&!Vi(l(cA))||Gi(nt(l(cA)))||(i("extract",{selection:l(cA)}),ue(RaA(l(gA),l(cA)),(H,rA)=>{if(Fo(H))return{state:lG(H,rA,[])}}))}function Qn(H){Zy({insertType:H,selectInside:!0,initialValue:void 0,json:l(gA),selection:l(cA),readOnly:B(),parser:J(),onPatch:ue,onReplaceJson:aA})}function Kn(H){Lr(l(cA))&&y(cA,vi(l(cA).path)),l(cA)||y(cA,gQ(l(gA),l(LA))),Qn(H)}function $A(H){if(!B()&&l(cA))if(Qy(l(cA)))try{var rA=WC(l(cA)),HA=Ye(l(gA),rA),De=function(Ie,dt,At){if(dt==="array"){if(Array.isArray(Ie))return Ie;if(nn(Ie))return wrA(Ie);if(typeof Ie=="string")try{var ui=At.parse(Ie);if(Array.isArray(ui))return ui;if(nn(ui))return wrA(ui)}catch{return[Ie]}return[Ie]}if(dt==="object"){if(Array.isArray(Ie))return DrA(Ie);if(nn(Ie))return Ie;if(typeof Ie=="string")try{var Cn=At.parse(Ie);if(nn(Cn))return Cn;if(Array.isArray(Cn))return DrA(Cn)}catch{return{value:Ie}}return{value:Ie}}if(dt==="value")return Fo(Ie)?At.stringify(Ie):Ie;throw new Error("Cannot convert ".concat(gK(Ie,At)," to ").concat(dt))}(HA,H,J());if(De===HA)return;var fe=[{op:"replace",path:It(rA),value:De}];i("handleConvert",{selection:l(cA),path:rA,type:H,operations:fe}),ue(fe,(Ie,dt)=>({state:l(cA)?id(Ie,dt,nt(l(cA))):l(LA)}))}catch(Ie){dA()(Ie)}else dA()(new Error("Cannot convert current selection to ".concat(H)))}function Ei(){if(l(cA)){var H=TrA(l(gA),l(LA),l(cA),!1),rA=yi(nt(l(cA)));H&&!Gi(nt(H))&&ri(rA,yi(nt(H)))?y(cA,o2(nt(H))):y(cA,c2(rA)),i("insert before",{selection:l(cA),selectionBefore:H,parentPath:rA}),to(),bt()}}function Ri(){if(l(cA)){var H=tI(l(gA),l(cA));i("insert after",H),y(cA,o2(H)),to(),bt()}}function un(H){return Un.apply(this,arguments)}function Un(){return(Un=_t(function*(H){yield scA({char:H,selectInside:!0,json:l(gA),selection:l(cA),readOnly:B(),parser:J(),onPatch:ue,onReplaceJson:aA,onSelect:Gt})})).apply(this,arguments)}function Zo(){if(!B()&&h().canUndo){var H=h().undo();if(Uy(H)){var rA={json:l(gA),text:l(zA)};y(gA,H.undo.patch?Ma(l(gA),H.undo.patch):H.undo.json),y(LA,H.undo.documentState),y(cA,H.undo.selection),y(zA,H.undo.text),y(Ee,H.undo.textIsRepaired),xA=void 0,i("undo",{item:H,json:l(gA),documentState:l(LA),selection:l(cA)}),xe(rA,H.undo.patch&&H.redo.patch?{json:l(gA),previousJson:rA.json,redo:H.undo.patch,undo:H.redo.patch}:void 0),Ot(),l(cA)&&yt(nt(l(cA)),{scrollToWhenVisible:!1})}else SA()(H)}}function Ci(){if(!B()&&h().canRedo){var H=h().redo();if(Uy(H)){var rA={json:l(gA),text:l(zA)};y(gA,H.redo.patch?Ma(l(gA),H.redo.patch):H.redo.json),y(LA,H.redo.documentState),y(cA,H.redo.selection),y(zA,H.redo.text),y(Ee,H.redo.textIsRepaired),xA=void 0,i("redo",{item:H,json:l(gA),documentState:l(LA),selection:l(cA)}),xe(rA,H.undo.patch&&H.redo.patch?{json:l(gA),previousJson:rA.json,redo:H.redo.patch,undo:H.undo.patch}:void 0),Ot(),l(cA)&&yt(nt(l(cA)),{scrollToWhenVisible:!1})}else nA()(H)}}function io(H){var rA;B()||l(gA)===void 0||(KA=!0,JA()({id:o,json:l(gA),rootPath:H,onSort:(rA=_t(function*(HA){var{operations:De}=HA;i("onSort",H,De),ue(De,(fe,Ie)=>({state:lG(fe,Ie,H),selection:vi(H)}))}),function(HA){return rA.apply(this,arguments)}),onClose:()=>{KA=!1,setTimeout(Ot)}}))}function Wo(){l(cA)&&io(OrA(l(gA),l(cA)))}function Xo(){io([])}function nr(H){if(l(gA)!==void 0){var{id:rA,onTransform:HA,onClose:De}=H,fe=H.rootPath||[];KA=!0,Xe()({id:rA||r,json:l(gA),rootPath:fe,onTransform:Ie=>{HA?HA({operations:Ie,json:l(gA),transformedJson:Ma(l(gA),Ie)}):(i("onTransform",fe,Ie),ue(Ie,(dt,At)=>({state:lG(dt,At,fe),selection:vi(fe)})))},onClose:()=>{KA=!1,setTimeout(Ot),De&&De()}})}}function on(){l(cA)&&nr({rootPath:OrA(l(gA),l(cA))})}function $i(){nr({rootPath:[]})}function yt(H){return hn.apply(this,arguments)}function hn(){return hn=_t(function*(H){var{scrollToWhenVisible:rA=!0,element:HA}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};y(LA,Yg(l(gA),l(LA),H,by));var De=HA??hA(H);if(i("scrollTo",{path:H,elem:De,refContents:l(c)}),!De||!l(c))return Promise.resolve();var fe=l(c).getBoundingClientRect(),Ie=De.getBoundingClientRect();if(!rA&&Ie.bottom>fe.top&&Ie.top{d(De,{container:l(c),offset:dt,duration:300,callback:()=>At()})})}),hn.apply(this,arguments)}function hA(H){var rA,HA;return to(),(rA=(HA=l(c))===null||HA===void 0?void 0:HA.querySelector('div[data-path="'.concat(My(H),'"]')))!==null&&rA!==void 0?rA:void 0}function Ae(H){var rA,HA;return to(),(rA=(HA=l(c))===null||HA===void 0?void 0:HA.querySelector('span[data-search-result-index="'.concat(H,'"]')))!==null&&rA!==void 0?rA:void 0}function re(H){var rA=hA(H);if(rA&&l(c)){var HA=l(c).getBoundingClientRect(),De=rA.getBoundingClientRect(),fe=Fo(Ye(l(gA),H))?20:De.height;De.topHA.bottom-20&&d(rA,{container:l(c),offset:-(HA.height-fe-20),duration:0})}}function xe(H,rA){if(H.json!==void 0||H?.text!==void 0){if(l(zA)!==void 0){var HA,De={text:l(zA),json:void 0};(HA=fA())===null||HA===void 0||HA(De,H,{contentErrors:XA(),patchResult:rA})}else if(l(gA)!==void 0){var fe,Ie={text:void 0,json:l(gA)};(fe=fA())===null||fe===void 0||fe(Ie,H,{contentErrors:XA(),patchResult:rA})}}}function ue(H,rA){i("handlePatch",H,rA);var HA={json:l(gA),text:l(zA)},De=Ht(H,rA);return xe(HA,De),De}function aA(H,rA){var HA={json:l(gA),text:l(zA)},De={documentState:l(LA),selection:l(cA),json:l(gA),text:l(zA),textIsRepaired:l(Ee)},fe=Yg(l(gA),uc(H,l(LA)),[],z3),Ie=typeof rA=="function"?rA(H,fe,l(cA)):void 0;y(gA,Ie?.json!==void 0?Ie.json:H),y(LA,Ie?.state!==void 0?Ie.state:fe),y(cA,Ie?.selection!==void 0?Ie.selection:l(cA)),y(zA,void 0),y(Ee,!1),xA=void 0,zi(l(gA)),fi(De),xe(HA,void 0)}function DA(H,rA){i("handleChangeText");var HA={json:l(gA),text:l(zA)},De={documentState:l(LA),selection:l(cA),json:l(gA),text:l(zA),textIsRepaired:l(Ee)};try{y(gA,z()(H)),y(LA,Yg(l(gA),uc(l(gA),l(LA)),[],z3)),y(zA,void 0),y(Ee,!1),xA=void 0}catch(Ie){try{y(gA,z()(Uc(H))),y(LA,Yg(l(gA),uc(l(gA),l(LA)),[],z3)),y(zA,H),y(Ee,!0),xA=void 0}catch{y(gA,void 0),y(LA,GG({json:l(gA),expand:z3})),y(zA,H),y(Ee,!1),xA=l(zA)!==""?MQ(l(zA),Ie.message||String(Ie)):void 0}}if(typeof rA=="function"){var fe=rA(l(gA),l(LA),l(cA));y(gA,fe?.json!==void 0?fe.json:l(gA)),y(LA,fe?.state!==void 0?fe.state:l(LA)),y(cA,fe?.selection!==void 0?fe.selection:l(cA))}zi(l(gA)),fi(De),xe(HA,void 0)}function PA(H,rA){var HA=arguments.length>2&&arguments[2]!==void 0&&arguments[2];i("handleExpand",{path:H,expanded:rA,recursive:HA}),rA?kA(H,HA?wK:KG):le(H,HA),Ot()}function Je(){PA([],!0,!0)}function vt(){PA([],!1,!0)}function Yt(H){i("openFind",{findAndReplace:H}),y(St,!1),y(Se,!1),to(),y(St,!0),y(Se,H)}function rn(H,rA){i("handleExpandSection",H,rA),y(LA,function(HA,De,fe,Ie){return kQ(HA,De,fe,(dt,At)=>{if(!Rr(At))return At;var ui=haA(At.visibleSections.concat(Ie));return pe(pe({},At),{},{visibleSections:ui})})}(l(gA),l(LA),H,rA))}function no(H){i("pasted json as text",H),y(Dt,H)}function sn(H){i("pasted multiline text",{pastedText:H}),y(_e,H)}function Ji(H){var rA,{anchor:HA,left:De,top:fe,width:Ie,height:dt,offsetTop:At,offsetLeft:ui,showTip:Cn}=H,xi=function(kn){var{json:oo,documentState:An,selection:Lt,readOnly:Ti,onEditKey:xt,onEditValue:rt,onToggleEnforceString:Ai,onCut:ho,onCopy:Fr,onPaste:Tn,onRemove:ko,onDuplicate:qr,onExtract:g0,onInsertBefore:Ha,onInsert:ng,onConvert:Wg,onInsertAfter:og,onSort:Vr,onTransform:Zr}=kn,Oa=oo!==void 0,l0=!!Lt,za=!!Lt&&Gi(nt(Lt)),Uo=Lt?Ye(oo,nt(Lt)):void 0,Zn=Array.isArray(Uo)?"Edit array":nn(Uo)?"Edit object":"Edit value",$o=Oa&&(Gn(Lt)||Lr(Lt)||Vi(Lt)),Xg=Lt&&!za?Ye(oo,yi(nt(Lt))):void 0,gd=!Ti&&Oa&&Jy(Lt)&&!za&&!Array.isArray(Xg),ld=!Ti&&Oa&&Lt!==void 0&&Jy(Lt),jQ=ld&&!Fo(Uo),Id=!Ti&&$o,qQ=$o,hv=!Ti&&l0,fv=!Ti&&Oa&&$o&&!za,mv=!Ti&&Oa&&Lt!==void 0&&(Gn(Lt)||Vi(Lt))&&!za,$g=$o,BI=$g?"Convert to:":"Insert:",gr=!Ti&&(yr(Lt)&&Array.isArray(Uo)||Ya(Lt)&&Array.isArray(Xg)),sa=!Ti&&($g?Qy(Lt)&&!nn(Uo):l0),VQ=!Ti&&($g?Qy(Lt)&&!Array.isArray(Uo):l0),ZQ=!Ti&&($g?Qy(Lt)&&Fo(Uo):l0),EI=Lt!==void 0&&t0(oo,An,nt(Lt));function as(WQ){$o?WQ!=="structure"&&Wg(WQ):ng(WQ)}return[{type:"row",items:[{type:"button",onClick:()=>xt(),icon:EC,text:"Edit key",title:"Edit the key (Double-click on the key)",disabled:!gd},{type:"dropdown-button",main:{type:"button",onClick:()=>rt(),icon:EC,text:Zn,title:"Edit the value (Double-click on the value)",disabled:!ld},width:"11em",items:[{type:"button",icon:EC,text:Zn,title:"Edit the value (Double-click on the value)",onClick:()=>rt(),disabled:!ld},{type:"button",icon:EI?iL:rL,text:"Enforce string",title:"Enforce keeping the value as string when it contains a numeric value",onClick:()=>Ai(),disabled:!jQ}]}]},{type:"separator"},{type:"row",items:[{type:"dropdown-button",main:{type:"button",onClick:()=>ho(!0),icon:BC,text:"Cut",title:"Cut selected contents, formatted with indentation (Ctrl+X)",disabled:!Id},width:"10em",items:[{type:"button",icon:BC,text:"Cut formatted",title:"Cut selected contents, formatted with indentation (Ctrl+X)",onClick:()=>ho(!0),disabled:!Id},{type:"button",icon:BC,text:"Cut compacted",title:"Cut selected contents, without indentation (Ctrl+Shift+X)",onClick:()=>ho(!1),disabled:!Id}]},{type:"dropdown-button",main:{type:"button",onClick:()=>Fr(!0),icon:G0,text:"Copy",title:"Copy selected contents, formatted with indentation (Ctrl+C)",disabled:!qQ},width:"12em",items:[{type:"button",icon:G0,text:"Copy formatted",title:"Copy selected contents, formatted with indentation (Ctrl+C)",onClick:()=>Fr(!0),disabled:!qQ},{type:"button",icon:G0,text:"Copy compacted",title:"Copy selected contents, without indentation (Ctrl+Shift+C)",onClick:()=>Fr(!1),disabled:!qQ}]},{type:"button",onClick:()=>Tn(),icon:tL,text:"Paste",title:"Paste clipboard contents (Ctrl+V)",disabled:!hv}]},{type:"separator"},{type:"row",items:[{type:"column",items:[{type:"button",onClick:()=>qr(),icon:cL,text:"Duplicate",title:"Duplicate selected contents (Ctrl+D)",disabled:!fv},{type:"button",onClick:()=>g0(),icon:fX,text:"Extract",title:"Extract selected contents",disabled:!mv},{type:"button",onClick:()=>Vr(),icon:Q4,text:"Sort",title:"Sort array or object contents",disabled:Ti||!$o},{type:"button",onClick:()=>Zr(),icon:d4,text:"Transform",title:"Transform array or object contents (filter, sort, project)",disabled:Ti||!$o},{type:"button",onClick:()=>ko(),icon:_5,text:"Remove",title:"Remove selected contents (Delete)",disabled:Ti||!$o}]},{type:"column",items:[{type:"label",text:BI},{type:"button",onClick:()=>as("structure"),icon:$g?E4:QC,text:"Structure",title:BI+" structure like the first item in the array",disabled:!gr},{type:"button",onClick:()=>as("object"),icon:$g?E4:QC,text:"Object",title:BI+" object",disabled:!sa},{type:"button",onClick:()=>as("array"),icon:$g?E4:QC,text:"Array",title:BI+" array",disabled:!VQ},{type:"button",onClick:()=>as("value"),icon:$g?E4:QC,text:"Value",title:BI+" value",disabled:!ZQ}]}]},{type:"separator"},{type:"row",items:[{type:"button",onClick:()=>Ha(),icon:uX,text:"Insert before",title:"Select area before current entry to insert or paste contents",disabled:Ti||!$o||za},{type:"button",onClick:()=>og(),icon:dX,text:"Insert after",title:"Select area after current entry to insert or paste contents",disabled:Ti||!$o||za}]}]}({json:l(gA),documentState:l(LA),selection:l(cA),readOnly:B(),onEditKey:Rt,onEditValue:Bi,onToggleEnforceString:Mi,onCut:b,onCopy:ai,onPaste:xn,onRemove:qo,onDuplicate:Vo,onExtract:uo,onInsertBefore:Ei,onInsert:Kn,onInsertAfter:Ri,onConvert:$A,onSort:Wo,onTransform:on}),Yn=(rA=VA()(xi))!==null&&rA!==void 0?rA:xi;if(Yn!==!1){var Tt={left:De,top:fe,offsetTop:At,offsetLeft:ui,width:Ie,height:dt,anchor:HA,closeOnOuterClick:!0,onClose:()=>{KA=!1,Ot()}};KA=!0;var bo=s(ccA,{tip:Cn?"Tip: you can open this context menu via right-click or with Ctrl+Q":void 0,items:Yn,onRequestClose:()=>a(bo)},Tt)}}function bt(H){if(!Sr(l(cA)))if(H&&(H.stopPropagation(),H.preventDefault()),H&&H.type==="contextmenu"&&H.target!==l(g))Ji({left:H.clientX,top:H.clientY,width:A2,height:$0,showTip:!1});else{var rA,HA=(rA=l(c))===null||rA===void 0?void 0:rA.querySelector(".jse-context-menu-pointer.jse-selected");if(HA)Ji({anchor:HA,offsetTop:2,width:A2,height:$0,showTip:!1});else{var De,fe=(De=l(c))===null||De===void 0?void 0:De.getBoundingClientRect();fe&&Ji({top:fe.top+2,left:fe.left+2,width:A2,height:$0,showTip:!1})}}}function Li(H){Ji({anchor:QaA(H.target,"BUTTON"),offsetTop:0,width:A2,height:$0,showTip:!0})}function Mn(){return Qt.apply(this,arguments)}function Qt(){return(Qt=_t(function*(){if(i("apply pasted json",l(Dt)),l(Dt)){var{onPasteAsJson:H}=l(Dt);y(Dt,void 0),H(),setTimeout(Ot)}})).apply(this,arguments)}function fn(){return Te.apply(this,arguments)}function Te(){return(Te=_t(function*(){i("apply pasted multiline text",l(_e)),l(_e)&&(vn(JSON.stringify(l(_e))),setTimeout(Ot))})).apply(this,arguments)}function Qi(){i("clear pasted json"),y(Dt,void 0),Ot()}function mi(){i("clear pasted multiline text"),y(_e,void 0),Ot()}function bn(){EA()(ir.text)}function Ko(H){y(cA,H),Ot(),yt(nt(H))}function Ot(){i("focus"),l(g)&&(l(g).focus(),l(g).select())}function Nr(H){return function(rA,HA,De){var fe=yi(De),Ie=[li(De)],dt=Ye(rA,fe),At=dt?gG(dt,HA,Ie):void 0;return At?vi(fe.concat(At)):o2(De)}(l(gA),l(LA),H)}function Jn(H){l(A)&&l(A).onDrag(H)}function Q(){l(A)&&l(A).onDragEnd()}var m=$(void 0,!0);pA(()=>l(cA),()=>{var H;H=l(cA),ri(H,u())||(i("onSelect",H),IA()(H))}),pA(()=>(k(D()),k(G())),()=>{y(oe,lK({escapeControlCharacters:D(),escapeUnicodeCharacters:G()}))}),pA(()=>l(St),()=>{(function(H){l(c)&&H&&l(c).scrollTop===0&&(hc(c,l(c).style.overflowAnchor="none"),hc(c,l(c).scrollTop+=O3),setTimeout(()=>{l(c)&&hc(c,l(c).style.overflowAnchor="")}))})(l(St))}),pA(()=>k(E()),()=>{Oi(E())}),pA(()=>k(u()),()=>{(function(H){ri(l(cA),H)||(i("applyExternalSelection",{selection:l(cA),externalSelection:H}),tf(H)&&y(cA,H))})(u())}),pA(()=>(l(gA),k(K()),k(J()),k(O())),()=>{$e(l(gA),K(),J(),O())}),pA(()=>(l(c),csA),()=>{y(A,l(c)?csA(l(c)):void 0)}),pA(()=>(k(B()),k(w()),k(J()),l(oe),k(lA()),k(ie())),()=>{y(m,{mode:ir.tree,readOnly:B(),truncateTextSize:w(),parser:J(),normalization:l(oe),getJson:ot,getDocumentState:Si,getSelection:Zi,findElement:hA,findNextInside:Nr,focus:Ot,onPatch:ue,onInsert:Qn,onExpand:PA,onSelect:Gt,onFind:Yt,onExpandSection:rn,onPasteJson:no,onRenderValue:lA(),onContextMenu:Ji,onClassName:ie()||(()=>{}),onDrag:Jn,onDragEnd:Q})}),pA(()=>l(m),()=>{i("context changed",l(m))}),ln(),qt(!0);var v=jYA();ce("mousedown",i2,function(H){!KQ(H.target,rA=>rA===l(I))&&Sr(l(cA))&&(i("click outside the editor, exit edit mode"),y(cA,e0(l(cA))),C&&l(g)&&(l(g).focus(),l(g).blur()),i("blur (outside editor)"),l(g)&&l(g).blur())});var p,F=Mt(v),U=W(F),q=H=>{(function(rA,HA){ft(HA,!1);var De=$(void 0,!0),fe=$(void 0,!0),Ie=$(void 0,!0),dt=M(HA,"json",9),At=M(HA,"selection",9),ui=M(HA,"readOnly",9),Cn=M(HA,"showSearch",13,!1),xi=M(HA,"history",9),Yn=M(HA,"onExpandAll",9),Tt=M(HA,"onCollapseAll",9),bo=M(HA,"onUndo",9),kn=M(HA,"onRedo",9),oo=M(HA,"onSort",9),An=M(HA,"onTransform",9),Lt=M(HA,"onContextMenu",9),Ti=M(HA,"onCopy",9),xt=M(HA,"onRenderMenu",9);function rt(){Cn(!Cn())}var Ai=$(void 0,!0),ho=$(void 0,!0),Fr=$(void 0,!0),Tn=$(void 0,!0);pA(()=>k(dt()),()=>{y(De,dt()!==void 0)}),pA(()=>(l(De),k(At()),Vi),()=>{y(fe,l(De)&&(Gn(At())||Lr(At())||Vi(At())))}),pA(()=>(k(Yn()),k(dt())),()=>{y(Ai,{type:"button",icon:AYA,title:"Expand all",className:"jse-expand-all",onClick:Yn(),disabled:!Fo(dt())})}),pA(()=>(k(Tt()),k(dt())),()=>{y(ho,{type:"button",icon:eYA,title:"Collapse all",className:"jse-collapse-all",onClick:Tt(),disabled:!Fo(dt())})}),pA(()=>k(dt()),()=>{y(Fr,{type:"button",icon:u4,title:"Search (Ctrl+F)",className:"jse-search",onClick:rt,disabled:dt()===void 0})}),pA(()=>(k(ui()),l(Ai),l(ho),k(oo()),k(dt()),k(An()),l(Fr),k(Lt()),k(bo()),k(xi()),k(kn()),k(Ti()),l(fe)),()=>{y(Tn,ui()?[l(Ai),l(ho),{type:"separator"},{type:"button",icon:G0,title:"Copy (Ctrl+C)",className:"jse-copy",onClick:Ti(),disabled:!l(fe)},{type:"separator"},l(Fr),{type:"space"}]:[l(Ai),l(ho),{type:"separator"},{type:"button",icon:Q4,title:"Sort",className:"jse-sort",onClick:oo(),disabled:ui()||dt()===void 0},{type:"button",icon:d4,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:An(),disabled:ui()||dt()===void 0},l(Fr),{type:"button",icon:sL,title:EK,className:"jse-contextmenu",onClick:Lt()},{type:"separator"},{type:"button",icon:K5,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:bo(),disabled:!xi().canUndo},{type:"button",icon:G5,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:kn(),disabled:!xi().canRedo},{type:"space"}])}),pA(()=>(k(xt()),l(Tn)),()=>{y(Ie,xt()(l(Tn))||l(Tn))}),ln(),qt(!0),l7(rA,{get items(){return l(Ie)}}),mt()})(H,{get json(){return l(gA)},get selection(){return l(cA)},get readOnly(){return B()},get history(){return h()},onExpandAll:Je,onCollapseAll:vt,onUndo:Zo,onRedo:Ci,onSort:Xo,onTransform:$i,onContextMenu:Li,onCopy:ai,get onRenderMenu(){return wA()},get showSearch(){return l(St)},set showSearch(rA){y(St,rA)},$$legacy:!0})};GA(U,H=>{x()&&H(q)});var Z=CA(U,2),RA=H=>{fYA(H,{get json(){return l(gA)},get selection(){return l(cA)},onSelect:Ko,get onError(){return dA()},get pathParser(){return V()}})};GA(Z,H=>{R()&&H(RA)});var ee=CA(Z,2),ne=H=>{var rA=zYA(),HA=Mt(rA),De=W(HA);De.readOnly=!0,Qo(De,At=>y(g,At),()=>l(g));var fe=CA(HA,2),Ie=At=>{var ui=_o(),Cn=Mt(ui),xi=Tt=>{(function(bo,kn){ft(kn,!0);var oo=sYA();oo.__click=[oYA,kn];var An=CA(W(oo),2),Lt=CA(W(An),2),Ti=xt=>{var rt=rYA(),Ai=CA(Mt(rt),2);gn(Ai,"title","Create an empty JSON object (press '{')"),Ai.__click=[iYA,kn];var ho=CA(Ai,2);gn(ho,"title","Create an empty JSON array (press '[')"),ho.__click=[nYA,kn],iA(xt,rt)};GA(Lt,xt=>{kn.readOnly||xt(Ti)}),iA(bo,oo),mt()})(Tt,{get readOnly(){return B()},onCreateObject:()=>{Ot(),un("{")},onCreateArray:()=>{Ot(),un("[")},onClick:()=>{Ot()}})},Yn=Tt=>{var bo=TYA(),kn=Mt(bo),oo=ZA(()=>B()?[]:[{icon:B4,text:"Repair manually",title:'Open the document in "code" mode and repair it manually',onClick:bn}]);pc(kn,{type:"error",message:"The loaded JSON document is invalid and could not be repaired automatically.",get actions(){return l(oo)}}),acA(CA(kn,2),{get text(){return l(zA)},get json(){return l(gA)},get indentation(){return j()},get parser(){return J()}}),iA(Tt,bo)};GA(Cn,Tt=>{l(zA)===""||l(zA)===void 0?Tt(xi):Tt(Yn,!1)}),iA(At,ui)},dt=At=>{var ui=OYA(),Cn=Mt(ui);AcA(W(Cn),{get json(){return l(gA)},get documentState(){return l(LA)},get parser(){return J()},get showSearch(){return l(St)},get showReplace(){return l(Se)},get readOnly(){return B()},columns:void 0,onSearch:Wt,onFocus:L,onPatch:ue,onClose:P});var xi=CA(Cn,2);gn(xi,"data-jsoneditor-scrollable-contents",!0);var Yn=W(xi),Tt=xt=>{iA(xt,HYA())};GA(Yn,xt=>{l(St)&&xt(Tt)}),jG(CA(Yn,2),{get value(){return l(gA)},pointer:"",get state(){return l(LA)},get validationErrors(){return l(MA)},get searchResults(){return l(Re)},get selection(){return l(cA)},get context(){return l(m)},get onDragSelectionStart(){return er}}),Qo(xi,xt=>y(c,xt),()=>l(c));var bo=CA(xi,2),kn=xt=>{var rt=ZA(()=>(l(Dt),oA(()=>"You pasted a JSON ".concat(Array.isArray(l(Dt).contents)?"array":"object"," as text")))),Ai=ZA(()=>[{icon:_0,text:"Paste as JSON instead",title:"Replace the value with the pasted JSON",onMouseDown:Mn},{text:"Leave as is",title:"Keep the JSON embedded in the value",onClick:Qi}]);pc(xt,{type:"info",get message(){return l(rt)},get actions(){return l(Ai)}})};GA(bo,xt=>{l(Dt)&&xt(kn)});var oo=CA(bo,2),An=xt=>{var rt=ZA(()=>[{icon:_0,text:"Paste as string instead",title:"Paste the clipboard data as a single string value instead of an array",onClick:fn},{text:"Leave as is",title:"Keep the pasted array",onClick:mi}]);pc(xt,{type:"info",message:"Multiline text was pasted as array",get actions(){return l(rt)}})};GA(oo,xt=>{l(_e)&&xt(An)});var Lt=CA(oo,2),Ti=xt=>{var rt=ZA(()=>B()?[]:[{icon:U5,text:"Ok",title:"Accept the repaired document",onClick:Jt},{icon:B4,text:"Repair manually instead",title:"Leave the document unchanged and repair it manually instead",onClick:bn}]);pc(xt,{type:"success",message:"The loaded JSON document was invalid but is successfully repaired.",get actions(){return l(rt)},onClose:Ot})};GA(Lt,xt=>{l(Ee)&&xt(Ti)}),SK(CA(Lt,2),{get validationErrors(){return l(NA)},selectError:X}),iA(At,ui)};GA(fe,At=>{l(gA)===void 0?At(Ie):At(dt,!1)}),ce("paste",De,Xi),iA(H,rA)},Pe=H=>{iA(H,PYA())};GA(ee,H=>{n?H(Pe,!1):H(ne)}),Qo(F,H=>y(I,H),()=>l(I));var Oe=CA(F,2),ve=H=>{ZaA(H,{onClose:()=>y(tA,!1)})};GA(Oe,H=>{l(tA)&&H(ve)});var Ne=CA(Oe,2),Yi=H=>{WaA(H,AI(()=>l(OA),{onClose:()=>{var rA;(rA=l(OA))===null||rA===void 0||rA.onClose(),y(OA,void 0)}}))};return GA(Ne,H=>{l(OA)&&H(Yi)}),we(H=>p=jt(F,1,"jse-tree-mode svelte-vrx1dr",null,p,H),[()=>({"no-main-menu":!x()})],ZA),ce("keydown",F,function(H){var rA=s2(H),HA=H.shiftKey;if(i("keydown",{combo:rA,key:H.key}),rA==="Ctrl+X"&&(H.preventDefault(),b(!0)),rA==="Ctrl+Shift+X"&&(H.preventDefault(),b(!1)),rA==="Ctrl+C"&&(H.preventDefault(),ai(!0)),rA==="Ctrl+Shift+C"&&(H.preventDefault(),ai(!1)),rA==="Ctrl+D"&&(H.preventDefault(),Vo()),rA!=="Delete"&&rA!=="Backspace"||(H.preventDefault(),qo()),rA==="Insert"&&(H.preventDefault(),Qn("structure")),rA==="Ctrl+A"&&(H.preventDefault(),y(cA,vi([]))),rA==="Ctrl+Q"&&bt(H),rA==="ArrowUp"||rA==="Shift+ArrowUp"){H.preventDefault();var De=l(cA)?TrA(l(gA),l(LA),l(cA),HA)||l(cA):gQ(l(gA),l(LA));y(cA,De),re(nt(De))}if(rA==="ArrowDown"||rA==="Shift+ArrowDown"){H.preventDefault();var fe=l(cA)?function(xi,Yn,Tt){var bo=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(Tt){var kn=bo?nt(Tt):tI(xi,Tt),oo=Fo(Ye(xi,kn))?KrA(xi,Yn,kn,!0):Yn,An=gG(xi,Yn,kn),Lt=gG(xi,oo,kn);if(bo)return yr(Tt)?An!==void 0?Js(An,An):void 0:Ya(Tt)?Lt!==void 0?Js(Lt,Lt):void 0:Lt!==void 0?Js(WC(Tt),Lt):void 0;if(Ya(Tt))return Lt!==void 0?vi(Lt):void 0;if(yr(Tt)||Vi(Tt))return An!==void 0?vi(An):void 0;if(Lr(Tt)){if(An===void 0||An.length===0)return;var Ti=yi(An),xt=Ye(xi,Ti);return Array.isArray(xt)?vi(An):a2(An)}return Gn(Tt)?Lt!==void 0?vi(Lt):An!==void 0?vi(An):void 0:void 0}}(l(gA),l(LA),l(cA),HA)||l(cA):gQ(l(gA),l(LA));y(cA,fe),re(nt(fe))}if(rA==="ArrowLeft"||rA==="Shift+ArrowLeft"){H.preventDefault();var Ie=l(cA)?function(xi,Yn,Tt){var bo=arguments.length>3&&arguments[3]!==void 0&&arguments[3],kn=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(Tt){var{caret:oo,previous:An}=HrA(xi,Yn,Tt,kn);if(bo)return Gn(Tt)?void 0:Js(Tt.path,Tt.path);if(oo&&An)return UG(An);var Lt=yi(nt(Tt)),Ti=Ye(xi,Lt);return Vi(Tt)&&Array.isArray(Ti)?Js(Tt.path,Tt.path):Gn(Tt)&&!Array.isArray(Ti)?a2(Tt.focusPath):void 0}}(l(gA),l(LA),l(cA),HA,!B())||l(cA):gQ(l(gA),l(LA));y(cA,Ie),re(nt(Ie))}if(rA==="ArrowRight"||rA==="Shift+ArrowRight"){H.preventDefault();var dt=l(cA)&&l(gA)!==void 0?function(xi,Yn,Tt){var bo=arguments.length>3&&arguments[3]!==void 0&&arguments[3],kn=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(Tt){var{caret:oo,next:An}=HrA(xi,Yn,Tt,kn);return bo?Gn(Tt)?void 0:Js(Tt.path,Tt.path):oo&&An?UG(An):Gn(Tt)?vi(Tt.focusPath):void 0}}(l(gA),l(LA),l(cA),HA,!B())||l(cA):gQ(l(gA),l(LA));y(cA,dt),re(nt(dt))}if(rA==="Enter"&&l(cA)){if(r7(l(cA))){var At=l(cA).focusPath,ui=Ye(l(gA),yi(At));Array.isArray(ui)&&(H.preventDefault(),y(cA,vi(At)))}Lr(l(cA))&&(H.preventDefault(),y(cA,pe(pe({},l(cA)),{},{edit:!0}))),Vi(l(cA))&&(H.preventDefault(),Fo(Ye(l(gA),l(cA).path))?PA(l(cA).path,!0):y(cA,pe(pe({},l(cA)),{},{edit:!0})))}if(rA.replace(/^Shift\+/,"").length===1&&l(cA))return H.preventDefault(),void un(H.key);if(rA==="Enter"&&(Ya(l(cA))||yr(l(cA))))return H.preventDefault(),void un("");if(rA==="Ctrl+Enter"&&Vi(l(cA))){var Cn=Ye(l(gA),l(cA).path);n7(Cn)&&window.open(String(Cn),"_blank")}rA==="Escape"&&l(cA)&&(H.preventDefault(),y(cA,void 0)),rA==="Ctrl+F"&&(H.preventDefault(),Yt(!1)),rA==="Ctrl+H"&&(H.preventDefault(),Yt(!0)),rA==="Ctrl+Z"&&(H.preventDefault(),Zo()),rA==="Ctrl+Shift+Z"&&(H.preventDefault(),Ci())}),ce("mousedown",F,function(H){i("handleMouseDown",H);var rA=H.target;EaA(rA,"BUTTON")||rA.isContentEditable||(Ot(),l(cA)||l(gA)!==void 0||l(zA)!==""&&l(zA)!==void 0||(i("createDefaultSelection"),y(cA,vi([]))))}),ce("contextmenu",F,bt),iA(t,v),Ft(e,"expand",kA),Ft(e,"collapse",le),Ft(e,"validate",XA),Ft(e,"getJson",ot),Ft(e,"patch",Ht),Ft(e,"acceptAutoRepair",Jt),Ft(e,"openTransformModal",nr),Ft(e,"scrollTo",yt),Ft(e,"findElement",hA),Ft(e,"findSearchResult",Ae),Ft(e,"focus",Ot),mt({expand:kA,collapse:le,validate:XA,getJson:ot,patch:Ht,acceptAutoRepair:Jt,openTransformModal:nr,scrollTo:yt,findElement:hA,findSearchResult:Ae,focus:Ot})}function gcA(t){return typeof(e=t)!="object"||e===null?t:new Proxy(t,{get:(A,i,n)=>gcA(Reflect.get(A,i,n)),set:()=>!1,deleteProperty:()=>!1});var e}var yy=xr("jsoneditor:History");function lcA(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=t.maxItems||1e3,A=[],i=0;function n(){return i0}function r(){return{canUndo:n(),canRedo:o(),items:()=>A.slice().reverse(),add:a,undo:g,redo:I,clear:c}}function s(){t.onChange&&t.onChange(r())}function a(C){yy("add",C),A=[C].concat(A.slice(i)).slice(0,e),i=0,s()}function c(){yy("clear"),A=[],i=0,s()}function g(){if(n()){var C=A[i];return i+=1,yy("undo",C),s(),C}}function I(){if(o())return yy("redo",A[i-=1]),s(),A[i]}return{get:r}}Ut(`/* over all fonts, sizes, and colors */ +}`);var OYA=vA(" ",1),zYA=vA('
            '),PYA=vA('
            ',1),jYA=vA(' ',1),qYA=vA('
            loading...
            '),VYA=vA('
            ',1);function $G(t,e){ft(e,!1);var A=$(void 0,!0),i=xr("jsoneditor:TreeMode"),n=typeof window>"u";i("isSSR:",n);var o=h1(),r=h1(),{openAbsolutePopup:s,closeAbsolutePopup:a}=cI("absolute-popup"),c=$(void 0,!0),g=$(void 0,!0),I=$(void 0,!0),C=!1,d=qaA(),B=M(e,"readOnly",9),E=M(e,"externalContent",9),u=M(e,"externalSelection",9),h=M(e,"history",9),w=M(e,"truncateTextSize",9),x=M(e,"mainMenuBar",9),R=M(e,"navigationBar",9),D=M(e,"escapeControlCharacters",9),G=M(e,"escapeUnicodeCharacters",9),J=M(e,"parser",9),z=M(e,"parseMemoizeOne",9),K=M(e,"validator",9),O=M(e,"validationParser",9),V=M(e,"pathParser",9),j=M(e,"indentation",9),dA=M(e,"onError",9),fA=M(e,"onChange",9),EA=M(e,"onChangeMode",9),IA=M(e,"onSelect",9),SA=M(e,"onUndo",9),nA=M(e,"onRedo",9),lA=M(e,"onRenderValue",9),wA=M(e,"onRenderMenu",9),VA=M(e,"onRenderContextMenu",9),ie=M(e,"onClassName",9),UA=M(e,"onFocus",9),BA=M(e,"onBlur",9),JA=M(e,"onSortModal",9),Xe=M(e,"onTransformModal",9),We=M(e,"onJSONEditorModal",9),KA=!1,tA=$(!1,!0),OA=$(void 0,!0);kK({onMount:ws,onDestroy:ig,getWindow:()=>Qf(l(I)),hasFocus:()=>KA&&document.hasFocus()||CK(l(I)),onFocus:()=>{C=!0,UA()&&UA()()},onBlur:()=>{C=!1,BA()&&BA()()}});var gA=$(void 0,!0),zA=$(void 0,!0),xA=void 0,Me=!1,LA=$(GG({json:l(gA)}),!0),cA=$(tf(u())?u():void 0,!0);function Gt(H){y(cA,H)}ws(()=>{if(l(cA)){var H=nt(l(cA));y(LA,Yg(l(gA),l(LA),H,by)),setTimeout(()=>re(H))}});var ct,oe=$(void 0,!0),Dt=$(void 0,!0),_e=$(void 0,!0),Re=$(void 0,!0),St=$(!1,!0),Se=$(!1,!0);function Wt(H){y(Re,(ct=H)?FaA(l(gA),ct.items):void 0)}function L(H,rA){return T.apply(this,arguments)}function T(){return(T=_t(function*(H,rA){y(LA,Yg(l(gA),l(LA),H,by));var HA=Ae(rA);yield yt(H,{element:HA})})).apply(this,arguments)}function P(){y(St,!1),y(Se,!1),Ot()}function X(H){i("select validation error",H),y(cA,vi(H.path)),yt(H.path)}function kA(H){var rA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:KG;i("expand"),y(LA,Yg(l(gA),l(LA),H,rA))}function le(H,rA){y(LA,KrA(l(gA),l(LA),H,rA)),l(cA)&&function(HA,De){return n0(nt(HA),De)&&(nt(HA).length>De.length||yr(HA))}(l(cA),H)&&y(cA,void 0)}var Ee=$(!1,!0),FA=$([],!0),MA=$(void 0,!0),dt=hE(VaA);function $e(H,rA,HA,De){fQ(()=>{var fe;try{fe=dt(H,rA,HA,De)}catch(Ie){fe=[{path:[],message:"Failed to validate: "+Ie.message,severity:Og.warning}]}ri(fe,l(FA))||(i("validationErrors changed:",fe),y(FA,fe),y(MA,function(Ie,Bt){var At;return Bt.forEach(ui=>{At=gsA(Ie,At,ui.path,(Cn,xi)=>pe(pe({},xi),{},{validationError:ui}))}),Bt.forEach(ui=>{for(var Cn=ui.path;Cn.length>0;)Cn=yi(Cn),At=gsA(Ie,At,Cn,(xi,Yn)=>Yn.validationError?Yn:pe(pe({},Yn),{},{validationError:{isChildError:!0,path:Cn,message:"Contains invalid data",severity:Og.warning}}))}),At}(H,l(FA))))},fe=>i("validationErrors updated in ".concat(fe," ms")))}function XA(){return i("validate"),xA?{parseError:xA,isRepairable:!1}:($e(l(gA),K(),J(),O()),Gi(l(FA))?void 0:{validationErrors:l(FA)})}function ot(){return l(gA)}function Si(){return l(LA)}function Zi(){return l(cA)}function Oi(H){i("applyExternalContent",{updatedContent:H}),X3(H)?function(rA){if(rA!==void 0){var HA=!ri(l(gA),rA);if(i("update external json",{isChanged:HA,currentlyText:l(gA)===void 0}),!!HA){var De={documentState:l(LA),selection:l(cA),json:l(gA),text:l(zA),textIsRepaired:l(Ee)};y(gA,rA),y(LA,uc(rA,l(LA))),Le(l(gA)),y(zA,void 0),y(Ee,!1),xA=void 0,zi(l(gA)),fi(De)}}}(H.json):W3(H)&&function(rA){if(!(rA===void 0||X3(E()))){var HA=rA!==l(zA);if(i("update external text",{isChanged:HA}),!!HA){var De={documentState:l(LA),selection:l(cA),json:l(gA),text:l(zA),textIsRepaired:l(Ee)};try{y(gA,z()(rA)),y(LA,uc(l(gA),l(LA))),Le(l(gA)),y(zA,rA),y(Ee,!1),xA=void 0}catch(fe){try{y(gA,z()(Uc(rA))),y(LA,uc(l(gA),l(LA))),Le(l(gA)),y(zA,rA),y(Ee,!0),xA=void 0,zi(l(gA))}catch{y(gA,void 0),y(LA,void 0),y(zA,E().text),y(Ee,!1),xA=l(zA)!==void 0&&l(zA)!==""?MQ(l(zA),fe.message||String(fe)):void 0}}zi(l(gA)),fi(De)}}}(H.text)}function Le(H){Me||(Me=!0,y(LA,id(H,l(LA),[])))}function zi(H){l(cA)&&(As(H,WC(l(cA)))&&As(H,nt(l(cA)))||(i("clearing selection: path does not exist anymore",l(cA)),y(cA,gQ(H,l(LA)))))}function fi(H){if(H.json!==void 0||H.text!==void 0){var rA=l(gA)!==void 0&&H.json!==void 0;h().add({type:"tree",undo:{patch:rA?[{op:"replace",path:"",value:H.json}]:void 0,json:H.json,text:H.text,documentState:H.documentState,textIsRepaired:H.textIsRepaired,selection:e0(H.selection),sortedColumn:void 0},redo:{patch:rA?[{op:"replace",path:"",value:l(gA)}]:void 0,json:l(gA),text:l(zA),documentState:l(LA),textIsRepaired:l(Ee),selection:e0(l(cA)),sortedColumn:void 0}})}}function Ht(H,rA){var HA;if(i("patch",H,rA),l(gA)===void 0)throw new Error("Cannot apply patch: no JSON");var De=l(gA),fe={json:void 0,text:l(zA),documentState:l(LA),selection:e0(l(cA)),textIsRepaired:l(Ee),sortedColumn:void 0},Ie=NaA(l(gA),H),Bt=paA(l(gA),l(LA),H),At=(HA=SQ(l(gA),H))!==null&&HA!==void 0?HA:l(cA),ui=typeof rA=="function"?rA(Bt.json,Bt.documentState,At):void 0;return y(gA,ui?.json!==void 0?ui.json:Bt.json),y(LA,ui?.state!==void 0?ui.state:Bt.documentState),y(cA,ui?.selection!==void 0?ui.selection:At),y(zA,void 0),y(Ee,!1),y(Dt,void 0),y(_e,void 0),xA=void 0,zi(l(gA)),h().add({type:"tree",undo:pe({patch:Ie},fe),redo:{patch:H,json:void 0,text:l(zA),documentState:l(LA),selection:e0(l(cA)),sortedColumn:void 0,textIsRepaired:l(Ee)}}),{json:l(gA),previousJson:De,undo:Ie,redo:H}}function Rt(){!B()&&l(cA)&&y(cA,yK(nt(l(cA))))}function Bi(){if(!B()&&l(cA)){var H=nt(l(cA)),rA=Ye(l(gA),H);Fo(rA)?function(HA,De){i("openJSONEditorModal",{path:HA,value:De}),KA=!0,We()({content:{json:De},path:HA,onPatch:l(m).onPatch,onClose:()=>{KA=!1,setTimeout(Ot)}})}(H,rA):y(cA,Yy(H))}}function Mi(){if(!B()&&Vi(l(cA))){var H=nt(l(cA)),rA=Ct(H),HA=Ye(l(gA),H),De=!t0(l(gA),l(LA),H),fe=De?String(HA):GQ(String(HA),J());i("handleToggleEnforceString",{enforceString:De,value:HA,updatedValue:fe}),ue([{op:"replace",path:rA,value:fe}],(Ie,Bt)=>({state:o7(l(gA),Bt,H,{type:"value",enforceString:De})}))}}function Jt(){return l(Ee)&&l(gA)!==void 0&&aA(l(gA)),l(gA)!==void 0?{json:l(gA)}:{text:l(zA)||""}}function b(){return et.apply(this,arguments)}function et(){return et=_t(function*(){var H=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];yield icA({json:l(gA),selection:l(cA),indentation:H?j():void 0,readOnly:B(),parser:J(),onPatch:ue})}),et.apply(this,arguments)}function ai(){return Wi.apply(this,arguments)}function Wi(){return Wi=_t(function*(){var H=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];l(gA)!==void 0&&(yield ncA({json:l(gA),selection:l(cA),indentation:H?j():void 0,parser:J()}))}),Wi.apply(this,arguments)}function Xi(H){var rA;H.preventDefault(),vn((rA=H.clipboardData)===null||rA===void 0?void 0:rA.getData("text/plain"))}function xn(){return Mo.apply(this,arguments)}function Mo(){return(Mo=_t(function*(){try{vn(yield navigator.clipboard.readText())}catch(H){console.error(H),y(tA,!0)}})).apply(this,arguments)}function vn(H){H!==void 0&&ocA({clipboardText:H,json:l(gA),selection:l(cA),readOnly:B(),parser:J(),onPatch:ue,onChangeText:DA,onPasteMultilineText:sn,openRepairModal:In})}function In(H,rA){y(OA,{text:H,onParse:HA=>Ef(HA,De=>Bf(De,J())),onRepair:aaA,onApply:rA,onClose:Ot})}function qo(){rcA({json:l(gA),text:l(zA),selection:l(cA),keepSelection:!1,readOnly:B(),onChange:fA(),onPatch:ue})}function Vo(){!B()&&l(gA)!==void 0&&l(cA)&&uQ&&!Gi(nt(l(cA)))&&(i("duplicate",{selection:l(cA)}),ue(SaA(l(gA),sI(l(gA),l(cA)))))}function uo(){B()||!l(cA)||!Gn(l(cA))&&!Vi(l(cA))||Gi(nt(l(cA)))||(i("extract",{selection:l(cA)}),ue(RaA(l(gA),l(cA)),(H,rA)=>{if(Fo(H))return{state:lG(H,rA,[])}}))}function Qn(H){Zy({insertType:H,selectInside:!0,initialValue:void 0,json:l(gA),selection:l(cA),readOnly:B(),parser:J(),onPatch:ue,onReplaceJson:aA})}function Kn(H){Lr(l(cA))&&y(cA,vi(l(cA).path)),l(cA)||y(cA,gQ(l(gA),l(LA))),Qn(H)}function $A(H){if(!B()&&l(cA))if(Qy(l(cA)))try{var rA=WC(l(cA)),HA=Ye(l(gA),rA),De=function(Ie,Bt,At){if(Bt==="array"){if(Array.isArray(Ie))return Ie;if(nn(Ie))return wrA(Ie);if(typeof Ie=="string")try{var ui=At.parse(Ie);if(Array.isArray(ui))return ui;if(nn(ui))return wrA(ui)}catch{return[Ie]}return[Ie]}if(Bt==="object"){if(Array.isArray(Ie))return DrA(Ie);if(nn(Ie))return Ie;if(typeof Ie=="string")try{var Cn=At.parse(Ie);if(nn(Cn))return Cn;if(Array.isArray(Cn))return DrA(Cn)}catch{return{value:Ie}}return{value:Ie}}if(Bt==="value")return Fo(Ie)?At.stringify(Ie):Ie;throw new Error("Cannot convert ".concat(gK(Ie,At)," to ").concat(Bt))}(HA,H,J());if(De===HA)return;var fe=[{op:"replace",path:Ct(rA),value:De}];i("handleConvert",{selection:l(cA),path:rA,type:H,operations:fe}),ue(fe,(Ie,Bt)=>({state:l(cA)?id(Ie,Bt,nt(l(cA))):l(LA)}))}catch(Ie){dA()(Ie)}else dA()(new Error("Cannot convert current selection to ".concat(H)))}function Ei(){if(l(cA)){var H=TrA(l(gA),l(LA),l(cA),!1),rA=yi(nt(l(cA)));H&&!Gi(nt(H))&&ri(rA,yi(nt(H)))?y(cA,o2(nt(H))):y(cA,c2(rA)),i("insert before",{selection:l(cA),selectionBefore:H,parentPath:rA}),to(),bt()}}function Ri(){if(l(cA)){var H=tI(l(gA),l(cA));i("insert after",H),y(cA,o2(H)),to(),bt()}}function un(H){return Un.apply(this,arguments)}function Un(){return(Un=_t(function*(H){yield scA({char:H,selectInside:!0,json:l(gA),selection:l(cA),readOnly:B(),parser:J(),onPatch:ue,onReplaceJson:aA,onSelect:Gt})})).apply(this,arguments)}function Zo(){if(!B()&&h().canUndo){var H=h().undo();if(Uy(H)){var rA={json:l(gA),text:l(zA)};y(gA,H.undo.patch?Ma(l(gA),H.undo.patch):H.undo.json),y(LA,H.undo.documentState),y(cA,H.undo.selection),y(zA,H.undo.text),y(Ee,H.undo.textIsRepaired),xA=void 0,i("undo",{item:H,json:l(gA),documentState:l(LA),selection:l(cA)}),xe(rA,H.undo.patch&&H.redo.patch?{json:l(gA),previousJson:rA.json,redo:H.undo.patch,undo:H.redo.patch}:void 0),Ot(),l(cA)&&yt(nt(l(cA)),{scrollToWhenVisible:!1})}else SA()(H)}}function Ci(){if(!B()&&h().canRedo){var H=h().redo();if(Uy(H)){var rA={json:l(gA),text:l(zA)};y(gA,H.redo.patch?Ma(l(gA),H.redo.patch):H.redo.json),y(LA,H.redo.documentState),y(cA,H.redo.selection),y(zA,H.redo.text),y(Ee,H.redo.textIsRepaired),xA=void 0,i("redo",{item:H,json:l(gA),documentState:l(LA),selection:l(cA)}),xe(rA,H.undo.patch&&H.redo.patch?{json:l(gA),previousJson:rA.json,redo:H.redo.patch,undo:H.undo.patch}:void 0),Ot(),l(cA)&&yt(nt(l(cA)),{scrollToWhenVisible:!1})}else nA()(H)}}function io(H){var rA;B()||l(gA)===void 0||(KA=!0,JA()({id:o,json:l(gA),rootPath:H,onSort:(rA=_t(function*(HA){var{operations:De}=HA;i("onSort",H,De),ue(De,(fe,Ie)=>({state:lG(fe,Ie,H),selection:vi(H)}))}),function(HA){return rA.apply(this,arguments)}),onClose:()=>{KA=!1,setTimeout(Ot)}}))}function Wo(){l(cA)&&io(OrA(l(gA),l(cA)))}function Xo(){io([])}function nr(H){if(l(gA)!==void 0){var{id:rA,onTransform:HA,onClose:De}=H,fe=H.rootPath||[];KA=!0,Xe()({id:rA||r,json:l(gA),rootPath:fe,onTransform:Ie=>{HA?HA({operations:Ie,json:l(gA),transformedJson:Ma(l(gA),Ie)}):(i("onTransform",fe,Ie),ue(Ie,(Bt,At)=>({state:lG(Bt,At,fe),selection:vi(fe)})))},onClose:()=>{KA=!1,setTimeout(Ot),De&&De()}})}}function on(){l(cA)&&nr({rootPath:OrA(l(gA),l(cA))})}function $i(){nr({rootPath:[]})}function yt(H){return hn.apply(this,arguments)}function hn(){return hn=_t(function*(H){var{scrollToWhenVisible:rA=!0,element:HA}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};y(LA,Yg(l(gA),l(LA),H,by));var De=HA??hA(H);if(i("scrollTo",{path:H,elem:De,refContents:l(c)}),!De||!l(c))return Promise.resolve();var fe=l(c).getBoundingClientRect(),Ie=De.getBoundingClientRect();if(!rA&&Ie.bottom>fe.top&&Ie.top{d(De,{container:l(c),offset:Bt,duration:300,callback:()=>At()})})}),hn.apply(this,arguments)}function hA(H){var rA,HA;return to(),(rA=(HA=l(c))===null||HA===void 0?void 0:HA.querySelector('div[data-path="'.concat(My(H),'"]')))!==null&&rA!==void 0?rA:void 0}function Ae(H){var rA,HA;return to(),(rA=(HA=l(c))===null||HA===void 0?void 0:HA.querySelector('span[data-search-result-index="'.concat(H,'"]')))!==null&&rA!==void 0?rA:void 0}function re(H){var rA=hA(H);if(rA&&l(c)){var HA=l(c).getBoundingClientRect(),De=rA.getBoundingClientRect(),fe=Fo(Ye(l(gA),H))?20:De.height;De.topHA.bottom-20&&d(rA,{container:l(c),offset:-(HA.height-fe-20),duration:0})}}function xe(H,rA){if(H.json!==void 0||H?.text!==void 0){if(l(zA)!==void 0){var HA,De={text:l(zA),json:void 0};(HA=fA())===null||HA===void 0||HA(De,H,{contentErrors:XA(),patchResult:rA})}else if(l(gA)!==void 0){var fe,Ie={text:void 0,json:l(gA)};(fe=fA())===null||fe===void 0||fe(Ie,H,{contentErrors:XA(),patchResult:rA})}}}function ue(H,rA){i("handlePatch",H,rA);var HA={json:l(gA),text:l(zA)},De=Ht(H,rA);return xe(HA,De),De}function aA(H,rA){var HA={json:l(gA),text:l(zA)},De={documentState:l(LA),selection:l(cA),json:l(gA),text:l(zA),textIsRepaired:l(Ee)},fe=Yg(l(gA),uc(H,l(LA)),[],z3),Ie=typeof rA=="function"?rA(H,fe,l(cA)):void 0;y(gA,Ie?.json!==void 0?Ie.json:H),y(LA,Ie?.state!==void 0?Ie.state:fe),y(cA,Ie?.selection!==void 0?Ie.selection:l(cA)),y(zA,void 0),y(Ee,!1),xA=void 0,zi(l(gA)),fi(De),xe(HA,void 0)}function DA(H,rA){i("handleChangeText");var HA={json:l(gA),text:l(zA)},De={documentState:l(LA),selection:l(cA),json:l(gA),text:l(zA),textIsRepaired:l(Ee)};try{y(gA,z()(H)),y(LA,Yg(l(gA),uc(l(gA),l(LA)),[],z3)),y(zA,void 0),y(Ee,!1),xA=void 0}catch(Ie){try{y(gA,z()(Uc(H))),y(LA,Yg(l(gA),uc(l(gA),l(LA)),[],z3)),y(zA,H),y(Ee,!0),xA=void 0}catch{y(gA,void 0),y(LA,GG({json:l(gA),expand:z3})),y(zA,H),y(Ee,!1),xA=l(zA)!==""?MQ(l(zA),Ie.message||String(Ie)):void 0}}if(typeof rA=="function"){var fe=rA(l(gA),l(LA),l(cA));y(gA,fe?.json!==void 0?fe.json:l(gA)),y(LA,fe?.state!==void 0?fe.state:l(LA)),y(cA,fe?.selection!==void 0?fe.selection:l(cA))}zi(l(gA)),fi(De),xe(HA,void 0)}function PA(H,rA){var HA=arguments.length>2&&arguments[2]!==void 0&&arguments[2];i("handleExpand",{path:H,expanded:rA,recursive:HA}),rA?kA(H,HA?wK:KG):le(H,HA),Ot()}function Je(){PA([],!0,!0)}function vt(){PA([],!1,!0)}function Yt(H){i("openFind",{findAndReplace:H}),y(St,!1),y(Se,!1),to(),y(St,!0),y(Se,H)}function rn(H,rA){i("handleExpandSection",H,rA),y(LA,function(HA,De,fe,Ie){return kQ(HA,De,fe,(Bt,At)=>{if(!Rr(At))return At;var ui=haA(At.visibleSections.concat(Ie));return pe(pe({},At),{},{visibleSections:ui})})}(l(gA),l(LA),H,rA))}function no(H){i("pasted json as text",H),y(Dt,H)}function sn(H){i("pasted multiline text",{pastedText:H}),y(_e,H)}function Ji(H){var rA,{anchor:HA,left:De,top:fe,width:Ie,height:Bt,offsetTop:At,offsetLeft:ui,showTip:Cn}=H,xi=function(kn){var{json:oo,documentState:An,selection:Lt,readOnly:Ti,onEditKey:xt,onEditValue:rt,onToggleEnforceString:Ai,onCut:ho,onCopy:Fr,onPaste:Tn,onRemove:ko,onDuplicate:qr,onExtract:g0,onInsertBefore:Ha,onInsert:ng,onConvert:Wg,onInsertAfter:og,onSort:Vr,onTransform:Zr}=kn,Oa=oo!==void 0,l0=!!Lt,za=!!Lt&&Gi(nt(Lt)),Uo=Lt?Ye(oo,nt(Lt)):void 0,Zn=Array.isArray(Uo)?"Edit array":nn(Uo)?"Edit object":"Edit value",$o=Oa&&(Gn(Lt)||Lr(Lt)||Vi(Lt)),Xg=Lt&&!za?Ye(oo,yi(nt(Lt))):void 0,gd=!Ti&&Oa&&Jy(Lt)&&!za&&!Array.isArray(Xg),ld=!Ti&&Oa&&Lt!==void 0&&Jy(Lt),jQ=ld&&!Fo(Uo),Id=!Ti&&$o,qQ=$o,hv=!Ti&&l0,fv=!Ti&&Oa&&$o&&!za,mv=!Ti&&Oa&&Lt!==void 0&&(Gn(Lt)||Vi(Lt))&&!za,$g=$o,BI=$g?"Convert to:":"Insert:",gr=!Ti&&(yr(Lt)&&Array.isArray(Uo)||Ya(Lt)&&Array.isArray(Xg)),sa=!Ti&&($g?Qy(Lt)&&!nn(Uo):l0),VQ=!Ti&&($g?Qy(Lt)&&!Array.isArray(Uo):l0),ZQ=!Ti&&($g?Qy(Lt)&&Fo(Uo):l0),EI=Lt!==void 0&&t0(oo,An,nt(Lt));function as(WQ){$o?WQ!=="structure"&&Wg(WQ):ng(WQ)}return[{type:"row",items:[{type:"button",onClick:()=>xt(),icon:EC,text:"Edit key",title:"Edit the key (Double-click on the key)",disabled:!gd},{type:"dropdown-button",main:{type:"button",onClick:()=>rt(),icon:EC,text:Zn,title:"Edit the value (Double-click on the value)",disabled:!ld},width:"11em",items:[{type:"button",icon:EC,text:Zn,title:"Edit the value (Double-click on the value)",onClick:()=>rt(),disabled:!ld},{type:"button",icon:EI?iL:rL,text:"Enforce string",title:"Enforce keeping the value as string when it contains a numeric value",onClick:()=>Ai(),disabled:!jQ}]}]},{type:"separator"},{type:"row",items:[{type:"dropdown-button",main:{type:"button",onClick:()=>ho(!0),icon:BC,text:"Cut",title:"Cut selected contents, formatted with indentation (Ctrl+X)",disabled:!Id},width:"10em",items:[{type:"button",icon:BC,text:"Cut formatted",title:"Cut selected contents, formatted with indentation (Ctrl+X)",onClick:()=>ho(!0),disabled:!Id},{type:"button",icon:BC,text:"Cut compacted",title:"Cut selected contents, without indentation (Ctrl+Shift+X)",onClick:()=>ho(!1),disabled:!Id}]},{type:"dropdown-button",main:{type:"button",onClick:()=>Fr(!0),icon:G0,text:"Copy",title:"Copy selected contents, formatted with indentation (Ctrl+C)",disabled:!qQ},width:"12em",items:[{type:"button",icon:G0,text:"Copy formatted",title:"Copy selected contents, formatted with indentation (Ctrl+C)",onClick:()=>Fr(!0),disabled:!qQ},{type:"button",icon:G0,text:"Copy compacted",title:"Copy selected contents, without indentation (Ctrl+Shift+C)",onClick:()=>Fr(!1),disabled:!qQ}]},{type:"button",onClick:()=>Tn(),icon:tL,text:"Paste",title:"Paste clipboard contents (Ctrl+V)",disabled:!hv}]},{type:"separator"},{type:"row",items:[{type:"column",items:[{type:"button",onClick:()=>qr(),icon:cL,text:"Duplicate",title:"Duplicate selected contents (Ctrl+D)",disabled:!fv},{type:"button",onClick:()=>g0(),icon:fX,text:"Extract",title:"Extract selected contents",disabled:!mv},{type:"button",onClick:()=>Vr(),icon:Q4,text:"Sort",title:"Sort array or object contents",disabled:Ti||!$o},{type:"button",onClick:()=>Zr(),icon:d4,text:"Transform",title:"Transform array or object contents (filter, sort, project)",disabled:Ti||!$o},{type:"button",onClick:()=>ko(),icon:_5,text:"Remove",title:"Remove selected contents (Delete)",disabled:Ti||!$o}]},{type:"column",items:[{type:"label",text:BI},{type:"button",onClick:()=>as("structure"),icon:$g?E4:QC,text:"Structure",title:BI+" structure like the first item in the array",disabled:!gr},{type:"button",onClick:()=>as("object"),icon:$g?E4:QC,text:"Object",title:BI+" object",disabled:!sa},{type:"button",onClick:()=>as("array"),icon:$g?E4:QC,text:"Array",title:BI+" array",disabled:!VQ},{type:"button",onClick:()=>as("value"),icon:$g?E4:QC,text:"Value",title:BI+" value",disabled:!ZQ}]}]},{type:"separator"},{type:"row",items:[{type:"button",onClick:()=>Ha(),icon:uX,text:"Insert before",title:"Select area before current entry to insert or paste contents",disabled:Ti||!$o||za},{type:"button",onClick:()=>og(),icon:dX,text:"Insert after",title:"Select area after current entry to insert or paste contents",disabled:Ti||!$o||za}]}]}({json:l(gA),documentState:l(LA),selection:l(cA),readOnly:B(),onEditKey:Rt,onEditValue:Bi,onToggleEnforceString:Mi,onCut:b,onCopy:ai,onPaste:xn,onRemove:qo,onDuplicate:Vo,onExtract:uo,onInsertBefore:Ei,onInsert:Kn,onInsertAfter:Ri,onConvert:$A,onSort:Wo,onTransform:on}),Yn=(rA=VA()(xi))!==null&&rA!==void 0?rA:xi;if(Yn!==!1){var Tt={left:De,top:fe,offsetTop:At,offsetLeft:ui,width:Ie,height:Bt,anchor:HA,closeOnOuterClick:!0,onClose:()=>{KA=!1,Ot()}};KA=!0;var bo=s(ccA,{tip:Cn?"Tip: you can open this context menu via right-click or with Ctrl+Q":void 0,items:Yn,onRequestClose:()=>a(bo)},Tt)}}function bt(H){if(!Sr(l(cA)))if(H&&(H.stopPropagation(),H.preventDefault()),H&&H.type==="contextmenu"&&H.target!==l(g))Ji({left:H.clientX,top:H.clientY,width:A2,height:$0,showTip:!1});else{var rA,HA=(rA=l(c))===null||rA===void 0?void 0:rA.querySelector(".jse-context-menu-pointer.jse-selected");if(HA)Ji({anchor:HA,offsetTop:2,width:A2,height:$0,showTip:!1});else{var De,fe=(De=l(c))===null||De===void 0?void 0:De.getBoundingClientRect();fe&&Ji({top:fe.top+2,left:fe.left+2,width:A2,height:$0,showTip:!1})}}}function Li(H){Ji({anchor:QaA(H.target,"BUTTON"),offsetTop:0,width:A2,height:$0,showTip:!0})}function Mn(){return Qt.apply(this,arguments)}function Qt(){return(Qt=_t(function*(){if(i("apply pasted json",l(Dt)),l(Dt)){var{onPasteAsJson:H}=l(Dt);y(Dt,void 0),H(),setTimeout(Ot)}})).apply(this,arguments)}function fn(){return Te.apply(this,arguments)}function Te(){return(Te=_t(function*(){i("apply pasted multiline text",l(_e)),l(_e)&&(vn(JSON.stringify(l(_e))),setTimeout(Ot))})).apply(this,arguments)}function Qi(){i("clear pasted json"),y(Dt,void 0),Ot()}function mi(){i("clear pasted multiline text"),y(_e,void 0),Ot()}function bn(){EA()(ir.text)}function Ko(H){y(cA,H),Ot(),yt(nt(H))}function Ot(){i("focus"),l(g)&&(l(g).focus(),l(g).select())}function Nr(H){return function(rA,HA,De){var fe=yi(De),Ie=[li(De)],Bt=Ye(rA,fe),At=Bt?gG(Bt,HA,Ie):void 0;return At?vi(fe.concat(At)):o2(De)}(l(gA),l(LA),H)}function Jn(H){l(A)&&l(A).onDrag(H)}function Q(){l(A)&&l(A).onDragEnd()}var m=$(void 0,!0);pA(()=>l(cA),()=>{var H;H=l(cA),ri(H,u())||(i("onSelect",H),IA()(H))}),pA(()=>(k(D()),k(G())),()=>{y(oe,lK({escapeControlCharacters:D(),escapeUnicodeCharacters:G()}))}),pA(()=>l(St),()=>{(function(H){l(c)&&H&&l(c).scrollTop===0&&(hc(c,l(c).style.overflowAnchor="none"),hc(c,l(c).scrollTop+=O3),setTimeout(()=>{l(c)&&hc(c,l(c).style.overflowAnchor="")}))})(l(St))}),pA(()=>k(E()),()=>{Oi(E())}),pA(()=>k(u()),()=>{(function(H){ri(l(cA),H)||(i("applyExternalSelection",{selection:l(cA),externalSelection:H}),tf(H)&&y(cA,H))})(u())}),pA(()=>(l(gA),k(K()),k(J()),k(O())),()=>{$e(l(gA),K(),J(),O())}),pA(()=>(l(c),csA),()=>{y(A,l(c)?csA(l(c)):void 0)}),pA(()=>(k(B()),k(w()),k(J()),l(oe),k(lA()),k(ie())),()=>{y(m,{mode:ir.tree,readOnly:B(),truncateTextSize:w(),parser:J(),normalization:l(oe),getJson:ot,getDocumentState:Si,getSelection:Zi,findElement:hA,findNextInside:Nr,focus:Ot,onPatch:ue,onInsert:Qn,onExpand:PA,onSelect:Gt,onFind:Yt,onExpandSection:rn,onPasteJson:no,onRenderValue:lA(),onContextMenu:Ji,onClassName:ie()||(()=>{}),onDrag:Jn,onDragEnd:Q})}),pA(()=>l(m),()=>{i("context changed",l(m))}),ln(),qt(!0);var v=VYA();ce("mousedown",i2,function(H){!KQ(H.target,rA=>rA===l(I))&&Sr(l(cA))&&(i("click outside the editor, exit edit mode"),y(cA,e0(l(cA))),C&&l(g)&&(l(g).focus(),l(g).blur()),i("blur (outside editor)"),l(g)&&l(g).blur())});var p,F=Mt(v),U=W(F),q=H=>{(function(rA,HA){ft(HA,!1);var De=$(void 0,!0),fe=$(void 0,!0),Ie=$(void 0,!0),Bt=M(HA,"json",9),At=M(HA,"selection",9),ui=M(HA,"readOnly",9),Cn=M(HA,"showSearch",13,!1),xi=M(HA,"history",9),Yn=M(HA,"onExpandAll",9),Tt=M(HA,"onCollapseAll",9),bo=M(HA,"onUndo",9),kn=M(HA,"onRedo",9),oo=M(HA,"onSort",9),An=M(HA,"onTransform",9),Lt=M(HA,"onContextMenu",9),Ti=M(HA,"onCopy",9),xt=M(HA,"onRenderMenu",9);function rt(){Cn(!Cn())}var Ai=$(void 0,!0),ho=$(void 0,!0),Fr=$(void 0,!0),Tn=$(void 0,!0);pA(()=>k(Bt()),()=>{y(De,Bt()!==void 0)}),pA(()=>(l(De),k(At()),Vi),()=>{y(fe,l(De)&&(Gn(At())||Lr(At())||Vi(At())))}),pA(()=>(k(Yn()),k(Bt())),()=>{y(Ai,{type:"button",icon:tYA,title:"Expand all",className:"jse-expand-all",onClick:Yn(),disabled:!Fo(Bt())})}),pA(()=>(k(Tt()),k(Bt())),()=>{y(ho,{type:"button",icon:iYA,title:"Collapse all",className:"jse-collapse-all",onClick:Tt(),disabled:!Fo(Bt())})}),pA(()=>k(Bt()),()=>{y(Fr,{type:"button",icon:u4,title:"Search (Ctrl+F)",className:"jse-search",onClick:rt,disabled:Bt()===void 0})}),pA(()=>(k(ui()),l(Ai),l(ho),k(oo()),k(Bt()),k(An()),l(Fr),k(Lt()),k(bo()),k(xi()),k(kn()),k(Ti()),l(fe)),()=>{y(Tn,ui()?[l(Ai),l(ho),{type:"separator"},{type:"button",icon:G0,title:"Copy (Ctrl+C)",className:"jse-copy",onClick:Ti(),disabled:!l(fe)},{type:"separator"},l(Fr),{type:"space"}]:[l(Ai),l(ho),{type:"separator"},{type:"button",icon:Q4,title:"Sort",className:"jse-sort",onClick:oo(),disabled:ui()||Bt()===void 0},{type:"button",icon:d4,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:An(),disabled:ui()||Bt()===void 0},l(Fr),{type:"button",icon:sL,title:EK,className:"jse-contextmenu",onClick:Lt()},{type:"separator"},{type:"button",icon:K5,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:bo(),disabled:!xi().canUndo},{type:"button",icon:G5,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:kn(),disabled:!xi().canRedo},{type:"space"}])}),pA(()=>(k(xt()),l(Tn)),()=>{y(Ie,xt()(l(Tn))||l(Tn))}),ln(),qt(!0),l7(rA,{get items(){return l(Ie)}}),mt()})(H,{get json(){return l(gA)},get selection(){return l(cA)},get readOnly(){return B()},get history(){return h()},onExpandAll:Je,onCollapseAll:vt,onUndo:Zo,onRedo:Ci,onSort:Xo,onTransform:$i,onContextMenu:Li,onCopy:ai,get onRenderMenu(){return wA()},get showSearch(){return l(St)},set showSearch(rA){y(St,rA)},$$legacy:!0})};GA(U,H=>{x()&&H(q)});var Z=CA(U,2),RA=H=>{pYA(H,{get json(){return l(gA)},get selection(){return l(cA)},onSelect:Ko,get onError(){return dA()},get pathParser(){return V()}})};GA(Z,H=>{R()&&H(RA)});var ee=CA(Z,2),ne=H=>{var rA=jYA(),HA=Mt(rA),De=W(HA);De.readOnly=!0,Qo(De,At=>y(g,At),()=>l(g));var fe=CA(HA,2),Ie=At=>{var ui=_o(),Cn=Mt(ui),xi=Tt=>{(function(bo,kn){ft(kn,!0);var oo=cYA();oo.__click=[sYA,kn];var An=CA(W(oo),2),Lt=CA(W(An),2),Ti=xt=>{var rt=aYA(),Ai=CA(Mt(rt),2);gn(Ai,"title","Create an empty JSON object (press '{')"),Ai.__click=[oYA,kn];var ho=CA(Ai,2);gn(ho,"title","Create an empty JSON array (press '[')"),ho.__click=[rYA,kn],iA(xt,rt)};GA(Lt,xt=>{kn.readOnly||xt(Ti)}),iA(bo,oo),mt()})(Tt,{get readOnly(){return B()},onCreateObject:()=>{Ot(),un("{")},onCreateArray:()=>{Ot(),un("[")},onClick:()=>{Ot()}})},Yn=Tt=>{var bo=OYA(),kn=Mt(bo),oo=ZA(()=>B()?[]:[{icon:B4,text:"Repair manually",title:'Open the document in "code" mode and repair it manually',onClick:bn}]);pc(kn,{type:"error",message:"The loaded JSON document is invalid and could not be repaired automatically.",get actions(){return l(oo)}}),acA(CA(kn,2),{get text(){return l(zA)},get json(){return l(gA)},get indentation(){return j()},get parser(){return J()}}),iA(Tt,bo)};GA(Cn,Tt=>{l(zA)===""||l(zA)===void 0?Tt(xi):Tt(Yn,!1)}),iA(At,ui)},Bt=At=>{var ui=PYA(),Cn=Mt(ui);AcA(W(Cn),{get json(){return l(gA)},get documentState(){return l(LA)},get parser(){return J()},get showSearch(){return l(St)},get showReplace(){return l(Se)},get readOnly(){return B()},columns:void 0,onSearch:Wt,onFocus:L,onPatch:ue,onClose:P});var xi=CA(Cn,2);gn(xi,"data-jsoneditor-scrollable-contents",!0);var Yn=W(xi),Tt=xt=>{iA(xt,zYA())};GA(Yn,xt=>{l(St)&&xt(Tt)}),jG(CA(Yn,2),{get value(){return l(gA)},pointer:"",get state(){return l(LA)},get validationErrors(){return l(MA)},get searchResults(){return l(Re)},get selection(){return l(cA)},get context(){return l(m)},get onDragSelectionStart(){return er}}),Qo(xi,xt=>y(c,xt),()=>l(c));var bo=CA(xi,2),kn=xt=>{var rt=ZA(()=>(l(Dt),oA(()=>"You pasted a JSON ".concat(Array.isArray(l(Dt).contents)?"array":"object"," as text")))),Ai=ZA(()=>[{icon:_0,text:"Paste as JSON instead",title:"Replace the value with the pasted JSON",onMouseDown:Mn},{text:"Leave as is",title:"Keep the JSON embedded in the value",onClick:Qi}]);pc(xt,{type:"info",get message(){return l(rt)},get actions(){return l(Ai)}})};GA(bo,xt=>{l(Dt)&&xt(kn)});var oo=CA(bo,2),An=xt=>{var rt=ZA(()=>[{icon:_0,text:"Paste as string instead",title:"Paste the clipboard data as a single string value instead of an array",onClick:fn},{text:"Leave as is",title:"Keep the pasted array",onClick:mi}]);pc(xt,{type:"info",message:"Multiline text was pasted as array",get actions(){return l(rt)}})};GA(oo,xt=>{l(_e)&&xt(An)});var Lt=CA(oo,2),Ti=xt=>{var rt=ZA(()=>B()?[]:[{icon:U5,text:"Ok",title:"Accept the repaired document",onClick:Jt},{icon:B4,text:"Repair manually instead",title:"Leave the document unchanged and repair it manually instead",onClick:bn}]);pc(xt,{type:"success",message:"The loaded JSON document was invalid but is successfully repaired.",get actions(){return l(rt)},onClose:Ot})};GA(Lt,xt=>{l(Ee)&&xt(Ti)}),SK(CA(Lt,2),{get validationErrors(){return l(FA)},selectError:X}),iA(At,ui)};GA(fe,At=>{l(gA)===void 0?At(Ie):At(Bt,!1)}),ce("paste",De,Xi),iA(H,rA)},Pe=H=>{iA(H,qYA())};GA(ee,H=>{n?H(Pe,!1):H(ne)}),Qo(F,H=>y(I,H),()=>l(I));var Oe=CA(F,2),ve=H=>{ZaA(H,{onClose:()=>y(tA,!1)})};GA(Oe,H=>{l(tA)&&H(ve)});var Ne=CA(Oe,2),Yi=H=>{WaA(H,AI(()=>l(OA),{onClose:()=>{var rA;(rA=l(OA))===null||rA===void 0||rA.onClose(),y(OA,void 0)}}))};return GA(Ne,H=>{l(OA)&&H(Yi)}),we(H=>p=jt(F,1,"jse-tree-mode svelte-vrx1dr",null,p,H),[()=>({"no-main-menu":!x()})],ZA),ce("keydown",F,function(H){var rA=s2(H),HA=H.shiftKey;if(i("keydown",{combo:rA,key:H.key}),rA==="Ctrl+X"&&(H.preventDefault(),b(!0)),rA==="Ctrl+Shift+X"&&(H.preventDefault(),b(!1)),rA==="Ctrl+C"&&(H.preventDefault(),ai(!0)),rA==="Ctrl+Shift+C"&&(H.preventDefault(),ai(!1)),rA==="Ctrl+D"&&(H.preventDefault(),Vo()),rA!=="Delete"&&rA!=="Backspace"||(H.preventDefault(),qo()),rA==="Insert"&&(H.preventDefault(),Qn("structure")),rA==="Ctrl+A"&&(H.preventDefault(),y(cA,vi([]))),rA==="Ctrl+Q"&&bt(H),rA==="ArrowUp"||rA==="Shift+ArrowUp"){H.preventDefault();var De=l(cA)?TrA(l(gA),l(LA),l(cA),HA)||l(cA):gQ(l(gA),l(LA));y(cA,De),re(nt(De))}if(rA==="ArrowDown"||rA==="Shift+ArrowDown"){H.preventDefault();var fe=l(cA)?function(xi,Yn,Tt){var bo=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(Tt){var kn=bo?nt(Tt):tI(xi,Tt),oo=Fo(Ye(xi,kn))?KrA(xi,Yn,kn,!0):Yn,An=gG(xi,Yn,kn),Lt=gG(xi,oo,kn);if(bo)return yr(Tt)?An!==void 0?Js(An,An):void 0:Ya(Tt)?Lt!==void 0?Js(Lt,Lt):void 0:Lt!==void 0?Js(WC(Tt),Lt):void 0;if(Ya(Tt))return Lt!==void 0?vi(Lt):void 0;if(yr(Tt)||Vi(Tt))return An!==void 0?vi(An):void 0;if(Lr(Tt)){if(An===void 0||An.length===0)return;var Ti=yi(An),xt=Ye(xi,Ti);return Array.isArray(xt)?vi(An):a2(An)}return Gn(Tt)?Lt!==void 0?vi(Lt):An!==void 0?vi(An):void 0:void 0}}(l(gA),l(LA),l(cA),HA)||l(cA):gQ(l(gA),l(LA));y(cA,fe),re(nt(fe))}if(rA==="ArrowLeft"||rA==="Shift+ArrowLeft"){H.preventDefault();var Ie=l(cA)?function(xi,Yn,Tt){var bo=arguments.length>3&&arguments[3]!==void 0&&arguments[3],kn=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(Tt){var{caret:oo,previous:An}=HrA(xi,Yn,Tt,kn);if(bo)return Gn(Tt)?void 0:Js(Tt.path,Tt.path);if(oo&&An)return UG(An);var Lt=yi(nt(Tt)),Ti=Ye(xi,Lt);return Vi(Tt)&&Array.isArray(Ti)?Js(Tt.path,Tt.path):Gn(Tt)&&!Array.isArray(Ti)?a2(Tt.focusPath):void 0}}(l(gA),l(LA),l(cA),HA,!B())||l(cA):gQ(l(gA),l(LA));y(cA,Ie),re(nt(Ie))}if(rA==="ArrowRight"||rA==="Shift+ArrowRight"){H.preventDefault();var Bt=l(cA)&&l(gA)!==void 0?function(xi,Yn,Tt){var bo=arguments.length>3&&arguments[3]!==void 0&&arguments[3],kn=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(Tt){var{caret:oo,next:An}=HrA(xi,Yn,Tt,kn);return bo?Gn(Tt)?void 0:Js(Tt.path,Tt.path):oo&&An?UG(An):Gn(Tt)?vi(Tt.focusPath):void 0}}(l(gA),l(LA),l(cA),HA,!B())||l(cA):gQ(l(gA),l(LA));y(cA,Bt),re(nt(Bt))}if(rA==="Enter"&&l(cA)){if(r7(l(cA))){var At=l(cA).focusPath,ui=Ye(l(gA),yi(At));Array.isArray(ui)&&(H.preventDefault(),y(cA,vi(At)))}Lr(l(cA))&&(H.preventDefault(),y(cA,pe(pe({},l(cA)),{},{edit:!0}))),Vi(l(cA))&&(H.preventDefault(),Fo(Ye(l(gA),l(cA).path))?PA(l(cA).path,!0):y(cA,pe(pe({},l(cA)),{},{edit:!0})))}if(rA.replace(/^Shift\+/,"").length===1&&l(cA))return H.preventDefault(),void un(H.key);if(rA==="Enter"&&(Ya(l(cA))||yr(l(cA))))return H.preventDefault(),void un("");if(rA==="Ctrl+Enter"&&Vi(l(cA))){var Cn=Ye(l(gA),l(cA).path);n7(Cn)&&window.open(String(Cn),"_blank")}rA==="Escape"&&l(cA)&&(H.preventDefault(),y(cA,void 0)),rA==="Ctrl+F"&&(H.preventDefault(),Yt(!1)),rA==="Ctrl+H"&&(H.preventDefault(),Yt(!0)),rA==="Ctrl+Z"&&(H.preventDefault(),Zo()),rA==="Ctrl+Shift+Z"&&(H.preventDefault(),Ci())}),ce("mousedown",F,function(H){i("handleMouseDown",H);var rA=H.target;EaA(rA,"BUTTON")||rA.isContentEditable||(Ot(),l(cA)||l(gA)!==void 0||l(zA)!==""&&l(zA)!==void 0||(i("createDefaultSelection"),y(cA,vi([]))))}),ce("contextmenu",F,bt),iA(t,v),Ft(e,"expand",kA),Ft(e,"collapse",le),Ft(e,"validate",XA),Ft(e,"getJson",ot),Ft(e,"patch",Ht),Ft(e,"acceptAutoRepair",Jt),Ft(e,"openTransformModal",nr),Ft(e,"scrollTo",yt),Ft(e,"findElement",hA),Ft(e,"findSearchResult",Ae),Ft(e,"focus",Ot),mt({expand:kA,collapse:le,validate:XA,getJson:ot,patch:Ht,acceptAutoRepair:Jt,openTransformModal:nr,scrollTo:yt,findElement:hA,findSearchResult:Ae,focus:Ot})}function gcA(t){return typeof(e=t)!="object"||e===null?t:new Proxy(t,{get:(A,i,n)=>gcA(Reflect.get(A,i,n)),set:()=>!1,deleteProperty:()=>!1});var e}var yy=xr("jsoneditor:History");function lcA(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=t.maxItems||1e3,A=[],i=0;function n(){return i0}function r(){return{canUndo:n(),canRedo:o(),items:()=>A.slice().reverse(),add:a,undo:g,redo:I,clear:c}}function s(){t.onChange&&t.onChange(r())}function a(C){yy("add",C),A=[C].concat(A.slice(i)).slice(0,e),i=0,s()}function c(){yy("clear"),A=[],i=0,s()}function g(){if(n()){var C=A[i];return i+=1,yy("undo",C),s(),C}}function I(){if(o())return yy("redo",A[i-=1]),s(),A[i]}return{get:r}}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -3038,7 +3038,7 @@ button.jse-context-menu-button.svelte-1idfykj svg { } .jse-transform-modal-inner.svelte-rrrjnb a:hover { color: var(--jse-a-color-highlight, #0f508d); -}`);var Y3=i7(()=>ZKA),IQ=i7(()=>WKA),qYA=vA('
            '),VYA=vA(" ",1),ZYA=vA('
            '),WYA=vA('
            Language
            Path
            Query
            Preview
            ',1),XYA=vA('
            ');function $YA(t,e){var A,i,n;ft(e,!1);var o=xr("jsoneditor:TransformModal"),r=M(e,"id",25,()=>"transform-modal-"+QQ()),s=M(e,"json",9),a=M(e,"rootPath",25,()=>[]),c=M(e,"indentation",9),g=M(e,"truncateTextSize",9),I=M(e,"escapeControlCharacters",9),C=M(e,"escapeUnicodeCharacters",9),d=M(e,"parser",9),B=M(e,"parseMemoizeOne",9),E=M(e,"validationParser",9),u=M(e,"pathParser",9),h=M(e,"queryLanguages",9),w=M(e,"queryLanguageId",13),x=M(e,"onChangeQueryLanguage",9),R=M(e,"onRenderValue",9),D=M(e,"onRenderMenu",9),G=M(e,"onRenderContextMenu",9),J=M(e,"onClassName",9),z=M(e,"onTransform",9),K=M(e,"onClose",9),O=$(void 0,!0),V=$(lcA({onChange:LA=>y(V,LA)}).get(),!0),j=$(void 0,!0),dA=$(void 0,!0),fA=$(!1,!0),EA="".concat(r(),":").concat(It(a())),IA=(A=Y3()[EA])!==null&&A!==void 0?A:{},SA=$(IQ().showWizard!==!1,!0),nA=$(IQ().showOriginal!==!1,!0),lA=$((i=IA.queryOptions)!==null&&i!==void 0?i:{},!0),wA=$(w()===IA.queryLanguageId&&IA.query?IA.query:"",!0),VA=$((n=IA.isManual)!==null&&n!==void 0&&n,!0),ie=$(void 0,!0),UA=$(void 0,!0),BA=$({text:""},!0);function JA(LA){var cA;return(cA=h().find(Gt=>Gt.id===LA))!==null&&cA!==void 0?cA:h()[0]}function Xe(LA){try{y(lA,LA),y(wA,JA(w()).createQuery(l(j),LA)),y(ie,void 0),y(VA,!1),o("updateQueryByWizard",{queryOptions:l(lA),query:l(wA),isManual:l(VA)})}catch(cA){y(ie,String(cA))}}function We(LA){y(wA,LA.target.value),y(VA,!0),o("handleChangeQuery",{query:l(wA),isManual:l(VA)})}l(VA)||Xe(l(lA)),ws(()=>{var LA;(LA=l(O))===null||LA===void 0||LA.focus()});var KA=EE(function(LA,cA){if(LA===void 0)return y(BA,{text:""}),void y(UA,"Error: No JSON");if(cA.trim()!=="")try{o("previewTransform",{query:cA});var Gt=JA(w()).executeQuery(LA,cA,d());y(BA,{json:Gt}),y(UA,void 0)}catch(ct){y(BA,{text:""}),y(UA,String(ct))}else y(BA,{json:LA})},300);function tA(){if(l(j)===void 0)return y(BA,{text:""}),void y(UA,"Error: No JSON");try{o("handleTransform",{query:l(wA)});var LA=JA(w()).executeQuery(l(j),l(wA),d());z()([{op:"replace",path:It(a()),value:LA}]),K()()}catch(cA){console.error(cA),y(BA,{text:""}),y(UA,String(cA))}}function OA(){y(SA,!l(SA)),IQ(IQ().showWizard=l(SA))}function gA(){y(nA,!l(nA)),IQ(IQ().showOriginal=l(nA))}function zA(LA){LA.focus()}function xA(LA){o("handleChangeQueryLanguage",LA),w(LA),x()(LA),Xe(l(lA))}function Me(){l(fA)?y(fA,!l(fA)):K()()}pA(()=>(k(s()),k(a())),()=>{y(j,gcA(Ye(s(),a())))}),pA(()=>l(j),()=>{y(dA,l(j)?{json:l(j)}:{text:""})}),pA(()=>(l(j),l(wA)),()=>{KA(l(j),l(wA))}),pA(()=>(Y3(),l(lA),l(wA),k(w()),l(VA)),()=>{Y3(Y3()[EA]={queryOptions:l(lA),query:l(wA),queryLanguageId:w(),isManual:l(VA)}),o("store state in memory",EA,Y3()[EA])}),ln(),qt(!0),sf(t,{get onClose(){return K()},className:"jse-transform-modal",get fullscreen(){return l(fA)},children:(LA,cA)=>{var Gt=XYA();NG(W(Gt),{children:(ct,oe)=>{var Dt=WYA(),_e=Mt(Dt);(function(b,et){ft(et,!1);var ai,Wi=M(et,"queryLanguages",9),Xi=M(et,"queryLanguageId",9),xn=M(et,"fullscreen",13),Mo=M(et,"onChangeQueryLanguage",9),vn=M(et,"onClose",9),In=$(void 0,!0),{openAbsolutePopup:qo,closeAbsolutePopup:Vo}=cI("absolute-popup");function uo(){var Qn={queryLanguages:Wi(),queryLanguageId:Xi(),onChangeQueryLanguage:Kn=>{Vo(ai),Mo()(Kn)}};ai=qo(PUA,Qn,{offsetTop:-2,offsetLeft:0,anchor:l(In),closeOnOuterClick:!0})}qt(!0),qy(b,{title:"Transform",fullScreenButton:!0,get onClose(){return vn()},get fullscreen(){return xn()},set fullscreen(Qn){xn(Qn)},$$slots:{actions:(Qn,Kn)=>{var $A,Ei=VUA();Ui(W(Ei),{get data(){return mX}}),Qo(Ei,Ri=>y(In,Ri),()=>l(In)),we(Ri=>$A=jt(Ei,1,"jse-config svelte-1kpylsp",null,$A,Ri),[()=>({hide:Wi().length<=1})],ZA),ce("click",Ei,uo),iA(Qn,Ei)}},$$legacy:!0}),mt()})(_e,{get queryLanguages(){return h()},get queryLanguageId(){return w()},onChangeQueryLanguage:xA,get onClose(){return K()},get fullscreen(){return l(fA)},set fullscreen(b){y(fA,b)},$$legacy:!0});var Re=W(CA(_e,2)),St=W(Re),Se=CA(W(St),2);$sA(W(Se),()=>(k(w()),oA(()=>JA(w()).description)));var Wt=CA(Se,4),L=CA(Wt,2),T=W(L),P=W(T),X=W(P),kA=ZA(()=>l(SA)?Nl:uE);Ui(X,{get data(){return l(kA)}});var le=CA(L,2),Ee=b=>{var et=_o(),ai=Mt(et),Wi=xn=>{var Mo=VYA(),vn=Mt(Mo);HUA(vn,{get queryOptions(){return l(lA)},get json(){return l(j)},onChange:Xe});var In=CA(vn,2),qo=Vo=>{var uo=qYA(),Qn=W(uo);we(()=>pt(Qn,l(ie))),iA(Vo,uo)};GA(In,Vo=>{l(ie)&&Vo(qo)}),iA(xn,Mo)},Xi=xn=>{iA(xn,jr("(Only available for arrays, not for objects)"))};GA(ai,xn=>{l(j),oA(()=>Array.isArray(l(j)))?xn(Wi):xn(Xi,!1)}),iA(b,et)};GA(le,b=>{l(SA)&&b(Ee)});var NA=CA(le,4);Qo(NA,b=>y(O,b),()=>l(O));var MA,Ct,$e=CA(St,2),XA=W($e),ot=W(XA),Si=W(ot),Zi=W(Si),Oi=W(Zi),Le=ZA(()=>l(nA)?Nl:uE);Ui(Oi,{get data(){return l(Le)}});var zi=CA(ot,2),fi=b=>{$G(b,{get externalContent(){return l(dA)},externalSelection:void 0,get history(){return l(V)},readOnly:!0,get truncateTextSize(){return g()},mainMenuBar:!1,navigationBar:!1,get indentation(){return c()},get escapeControlCharacters(){return I()},get escapeUnicodeCharacters(){return C()},get parser(){return d()},get parseMemoizeOne(){return B()},get onRenderValue(){return R()},get onRenderMenu(){return D()},get onRenderContextMenu(){return G()},onError:oA(()=>console.error),get onChange(){return er},get onChangeMode(){return er},get onSelect(){return er},get onUndo(){return er},get onRedo(){return er},get onFocus(){return er},get onBlur(){return er},get onSortModal(){return er},get onTransformModal(){return er},get onJSONEditorModal(){return er},get onClassName(){return J()},validator:void 0,get validationParser(){return E()},get pathParser(){return u()}})};GA(zi,b=>{l(nA)&&b(fi)});var Ht=CA(XA,2),Rt=CA(W(Ht),2),Bi=b=>{$G(b,{get externalContent(){return l(BA)},externalSelection:void 0,get history(){return l(V)},readOnly:!0,get truncateTextSize(){return g()},mainMenuBar:!1,navigationBar:!1,get indentation(){return c()},get escapeControlCharacters(){return I()},get escapeUnicodeCharacters(){return C()},get parser(){return d()},get parseMemoizeOne(){return B()},get onRenderValue(){return R()},get onRenderMenu(){return D()},get onRenderContextMenu(){return G()},onError:oA(()=>console.error),get onChange(){return er},get onChangeMode(){return er},get onSelect(){return er},get onUndo(){return er},get onRedo(){return er},get onFocus(){return er},get onBlur(){return er},get onSortModal(){return er},get onTransformModal(){return er},get onJSONEditorModal(){return er},get onClassName(){return J()},validator:void 0,get validationParser(){return E()},get pathParser(){return u()}})},Mi=b=>{var et=ZYA(),ai=W(et);we(()=>pt(ai,l(UA))),iA(b,et)};GA(Rt,b=>{l(UA)?b(Mi,!1):b(Bi)});var Jt=W(CA(Re,2));rs(()=>ce("click",Jt,tA)),Ts(Jt,b=>zA?.(b)),we((b,et,ai)=>{ed(Wt,b),ed(NA,l(wA)),MA=jt($e,1,"jse-data-contents svelte-rrrjnb",null,MA,et),Ct=jt(XA,1,"jse-original-data svelte-rrrjnb",null,Ct,ai),Jt.disabled=!!l(UA)},[()=>(k(Gi),k(a()),k(Ta),oA(()=>Gi(a())?"(document root)":Ta(a()))),()=>({"jse-hide-original-data":!l(nA)}),()=>({"jse-hide":!l(nA)})],ZA),ce("click",P,OA),ce("input",NA,We),ce("click",Zi,gA),iA(ct,Dt)},$$slots:{default:!0}}),Ts(Gt,(ct,oe)=>Vy?.(ct,oe),()=>Me),iA(LA,Gt)},$$slots:{default:!0}}),mt()}function $c(){}var ATA=0,Pr=class{constructor(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.id=ATA++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=cf.match(e)),A=>{var i=e(A);return i===void 0?null:[this,i]}}};Pr.closedBy=new Pr({deserialize:t=>t.split(" ")}),Pr.openedBy=new Pr({deserialize:t=>t.split(" ")}),Pr.group=new Pr({deserialize:t=>t.split(" ")}),Pr.isolate=new Pr({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}}),Pr.contextHash=new Pr({perNode:!0}),Pr.lookAhead=new Pr({perNode:!0}),Pr.mounted=new Pr({perNode:!0});var dsA,eTA=Object.create(null),cf=class t{constructor(e,A,i){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;this.name=e,this.props=A,this.id=i,this.flags=n}static define(e){var A=e.props&&e.props.length?Object.create(null):eTA,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),n=new t(e.name||"",A,e.id,i);if(e.props){for(var o of e.props)if(Array.isArray(o)||(o=o(n)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");A[o[0].id]=o[1]}}return n}prop(e){return this.props[e.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;var A=this.prop(Pr.group);return!!A&&A.indexOf(e)>-1}return this.id==e}static match(e){var A=Object.create(null);for(var i in e)for(var n of i.split(" "))A[n]=e[i];return o=>{for(var r=o.prop(Pr.group),s=-1;s<(r?r.length:0);s++){var a=A[s<0?o.name:r[s]];if(a)return a}}}};cf.none=new cf("",Object.create(null),0,8),function(t){t[t.ExcludeBuffers=1]="ExcludeBuffers",t[t.IncludeAnonymous=2]="IncludeAnonymous",t[t.IgnoreMounts=4]="IgnoreMounts",t[t.IgnoreOverlays=8]="IgnoreOverlays"}(dsA||(dsA={})),new Pr({perNode:!0});Ut(`/* over all fonts, sizes, and colors */ +}`);var Y3=i7(()=>XKA),IQ=i7(()=>$KA),ZYA=vA('
            '),WYA=vA(" ",1),XYA=vA('
            '),$YA=vA('
            Language
            Path
            Query
            Preview
            ',1),ATA=vA('
            ');function eTA(t,e){var A,i,n;ft(e,!1);var o=xr("jsoneditor:TransformModal"),r=M(e,"id",25,()=>"transform-modal-"+QQ()),s=M(e,"json",9),a=M(e,"rootPath",25,()=>[]),c=M(e,"indentation",9),g=M(e,"truncateTextSize",9),I=M(e,"escapeControlCharacters",9),C=M(e,"escapeUnicodeCharacters",9),d=M(e,"parser",9),B=M(e,"parseMemoizeOne",9),E=M(e,"validationParser",9),u=M(e,"pathParser",9),h=M(e,"queryLanguages",9),w=M(e,"queryLanguageId",13),x=M(e,"onChangeQueryLanguage",9),R=M(e,"onRenderValue",9),D=M(e,"onRenderMenu",9),G=M(e,"onRenderContextMenu",9),J=M(e,"onClassName",9),z=M(e,"onTransform",9),K=M(e,"onClose",9),O=$(void 0,!0),V=$(lcA({onChange:LA=>y(V,LA)}).get(),!0),j=$(void 0,!0),dA=$(void 0,!0),fA=$(!1,!0),EA="".concat(r(),":").concat(Ct(a())),IA=(A=Y3()[EA])!==null&&A!==void 0?A:{},SA=$(IQ().showWizard!==!1,!0),nA=$(IQ().showOriginal!==!1,!0),lA=$((i=IA.queryOptions)!==null&&i!==void 0?i:{},!0),wA=$(w()===IA.queryLanguageId&&IA.query?IA.query:"",!0),VA=$((n=IA.isManual)!==null&&n!==void 0&&n,!0),ie=$(void 0,!0),UA=$(void 0,!0),BA=$({text:""},!0);function JA(LA){var cA;return(cA=h().find(Gt=>Gt.id===LA))!==null&&cA!==void 0?cA:h()[0]}function Xe(LA){try{y(lA,LA),y(wA,JA(w()).createQuery(l(j),LA)),y(ie,void 0),y(VA,!1),o("updateQueryByWizard",{queryOptions:l(lA),query:l(wA),isManual:l(VA)})}catch(cA){y(ie,String(cA))}}function We(LA){y(wA,LA.target.value),y(VA,!0),o("handleChangeQuery",{query:l(wA),isManual:l(VA)})}l(VA)||Xe(l(lA)),ws(()=>{var LA;(LA=l(O))===null||LA===void 0||LA.focus()});var KA=EE(function(LA,cA){if(LA===void 0)return y(BA,{text:""}),void y(UA,"Error: No JSON");if(cA.trim()!=="")try{o("previewTransform",{query:cA});var Gt=JA(w()).executeQuery(LA,cA,d());y(BA,{json:Gt}),y(UA,void 0)}catch(ct){y(BA,{text:""}),y(UA,String(ct))}else y(BA,{json:LA})},300);function tA(){if(l(j)===void 0)return y(BA,{text:""}),void y(UA,"Error: No JSON");try{o("handleTransform",{query:l(wA)});var LA=JA(w()).executeQuery(l(j),l(wA),d());z()([{op:"replace",path:Ct(a()),value:LA}]),K()()}catch(cA){console.error(cA),y(BA,{text:""}),y(UA,String(cA))}}function OA(){y(SA,!l(SA)),IQ(IQ().showWizard=l(SA))}function gA(){y(nA,!l(nA)),IQ(IQ().showOriginal=l(nA))}function zA(LA){LA.focus()}function xA(LA){o("handleChangeQueryLanguage",LA),w(LA),x()(LA),Xe(l(lA))}function Me(){l(fA)?y(fA,!l(fA)):K()()}pA(()=>(k(s()),k(a())),()=>{y(j,gcA(Ye(s(),a())))}),pA(()=>l(j),()=>{y(dA,l(j)?{json:l(j)}:{text:""})}),pA(()=>(l(j),l(wA)),()=>{KA(l(j),l(wA))}),pA(()=>(Y3(),l(lA),l(wA),k(w()),l(VA)),()=>{Y3(Y3()[EA]={queryOptions:l(lA),query:l(wA),queryLanguageId:w(),isManual:l(VA)}),o("store state in memory",EA,Y3()[EA])}),ln(),qt(!0),sf(t,{get onClose(){return K()},className:"jse-transform-modal",get fullscreen(){return l(fA)},children:(LA,cA)=>{var Gt=ATA();NG(W(Gt),{children:(ct,oe)=>{var Dt=$YA(),_e=Mt(Dt);(function(b,et){ft(et,!1);var ai,Wi=M(et,"queryLanguages",9),Xi=M(et,"queryLanguageId",9),xn=M(et,"fullscreen",13),Mo=M(et,"onChangeQueryLanguage",9),vn=M(et,"onClose",9),In=$(void 0,!0),{openAbsolutePopup:qo,closeAbsolutePopup:Vo}=cI("absolute-popup");function uo(){var Qn={queryLanguages:Wi(),queryLanguageId:Xi(),onChangeQueryLanguage:Kn=>{Vo(ai),Mo()(Kn)}};ai=qo(qUA,Qn,{offsetTop:-2,offsetLeft:0,anchor:l(In),closeOnOuterClick:!0})}qt(!0),qy(b,{title:"Transform",fullScreenButton:!0,get onClose(){return vn()},get fullscreen(){return xn()},set fullscreen(Qn){xn(Qn)},$$slots:{actions:(Qn,Kn)=>{var $A,Ei=WUA();Ui(W(Ei),{get data(){return mX}}),Qo(Ei,Ri=>y(In,Ri),()=>l(In)),we(Ri=>$A=jt(Ei,1,"jse-config svelte-1kpylsp",null,$A,Ri),[()=>({hide:Wi().length<=1})],ZA),ce("click",Ei,uo),iA(Qn,Ei)}},$$legacy:!0}),mt()})(_e,{get queryLanguages(){return h()},get queryLanguageId(){return w()},onChangeQueryLanguage:xA,get onClose(){return K()},get fullscreen(){return l(fA)},set fullscreen(b){y(fA,b)},$$legacy:!0});var Re=W(CA(_e,2)),St=W(Re),Se=CA(W(St),2);$sA(W(Se),()=>(k(w()),oA(()=>JA(w()).description)));var Wt=CA(Se,4),L=CA(Wt,2),T=W(L),P=W(T),X=W(P),kA=ZA(()=>l(SA)?Nl:uE);Ui(X,{get data(){return l(kA)}});var le=CA(L,2),Ee=b=>{var et=_o(),ai=Mt(et),Wi=xn=>{var Mo=WYA(),vn=Mt(Mo);zUA(vn,{get queryOptions(){return l(lA)},get json(){return l(j)},onChange:Xe});var In=CA(vn,2),qo=Vo=>{var uo=ZYA(),Qn=W(uo);we(()=>pt(Qn,l(ie))),iA(Vo,uo)};GA(In,Vo=>{l(ie)&&Vo(qo)}),iA(xn,Mo)},Xi=xn=>{iA(xn,jr("(Only available for arrays, not for objects)"))};GA(ai,xn=>{l(j),oA(()=>Array.isArray(l(j)))?xn(Wi):xn(Xi,!1)}),iA(b,et)};GA(le,b=>{l(SA)&&b(Ee)});var FA=CA(le,4);Qo(FA,b=>y(O,b),()=>l(O));var MA,dt,$e=CA(St,2),XA=W($e),ot=W(XA),Si=W(ot),Zi=W(Si),Oi=W(Zi),Le=ZA(()=>l(nA)?Nl:uE);Ui(Oi,{get data(){return l(Le)}});var zi=CA(ot,2),fi=b=>{$G(b,{get externalContent(){return l(dA)},externalSelection:void 0,get history(){return l(V)},readOnly:!0,get truncateTextSize(){return g()},mainMenuBar:!1,navigationBar:!1,get indentation(){return c()},get escapeControlCharacters(){return I()},get escapeUnicodeCharacters(){return C()},get parser(){return d()},get parseMemoizeOne(){return B()},get onRenderValue(){return R()},get onRenderMenu(){return D()},get onRenderContextMenu(){return G()},onError:oA(()=>console.error),get onChange(){return er},get onChangeMode(){return er},get onSelect(){return er},get onUndo(){return er},get onRedo(){return er},get onFocus(){return er},get onBlur(){return er},get onSortModal(){return er},get onTransformModal(){return er},get onJSONEditorModal(){return er},get onClassName(){return J()},validator:void 0,get validationParser(){return E()},get pathParser(){return u()}})};GA(zi,b=>{l(nA)&&b(fi)});var Ht=CA(XA,2),Rt=CA(W(Ht),2),Bi=b=>{$G(b,{get externalContent(){return l(BA)},externalSelection:void 0,get history(){return l(V)},readOnly:!0,get truncateTextSize(){return g()},mainMenuBar:!1,navigationBar:!1,get indentation(){return c()},get escapeControlCharacters(){return I()},get escapeUnicodeCharacters(){return C()},get parser(){return d()},get parseMemoizeOne(){return B()},get onRenderValue(){return R()},get onRenderMenu(){return D()},get onRenderContextMenu(){return G()},onError:oA(()=>console.error),get onChange(){return er},get onChangeMode(){return er},get onSelect(){return er},get onUndo(){return er},get onRedo(){return er},get onFocus(){return er},get onBlur(){return er},get onSortModal(){return er},get onTransformModal(){return er},get onJSONEditorModal(){return er},get onClassName(){return J()},validator:void 0,get validationParser(){return E()},get pathParser(){return u()}})},Mi=b=>{var et=XYA(),ai=W(et);we(()=>pt(ai,l(UA))),iA(b,et)};GA(Rt,b=>{l(UA)?b(Mi,!1):b(Bi)});var Jt=W(CA(Re,2));rs(()=>ce("click",Jt,tA)),Ts(Jt,b=>zA?.(b)),we((b,et,ai)=>{ed(Wt,b),ed(FA,l(wA)),MA=jt($e,1,"jse-data-contents svelte-rrrjnb",null,MA,et),dt=jt(XA,1,"jse-original-data svelte-rrrjnb",null,dt,ai),Jt.disabled=!!l(UA)},[()=>(k(Gi),k(a()),k(Ta),oA(()=>Gi(a())?"(document root)":Ta(a()))),()=>({"jse-hide-original-data":!l(nA)}),()=>({"jse-hide":!l(nA)})],ZA),ce("click",P,OA),ce("input",FA,We),ce("click",Zi,gA),iA(ct,Dt)},$$slots:{default:!0}}),Ts(Gt,(ct,oe)=>Vy?.(ct,oe),()=>Me),iA(LA,Gt)},$$slots:{default:!0}}),mt()}function $c(){}var tTA=0,Pr=class{constructor(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.id=tTA++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=cf.match(e)),A=>{var i=e(A);return i===void 0?null:[this,i]}}};Pr.closedBy=new Pr({deserialize:t=>t.split(" ")}),Pr.openedBy=new Pr({deserialize:t=>t.split(" ")}),Pr.group=new Pr({deserialize:t=>t.split(" ")}),Pr.isolate=new Pr({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}}),Pr.contextHash=new Pr({perNode:!0}),Pr.lookAhead=new Pr({perNode:!0}),Pr.mounted=new Pr({perNode:!0});var dsA,iTA=Object.create(null),cf=class t{constructor(e,A,i){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;this.name=e,this.props=A,this.id=i,this.flags=n}static define(e){var A=e.props&&e.props.length?Object.create(null):iTA,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),n=new t(e.name||"",A,e.id,i);if(e.props){for(var o of e.props)if(Array.isArray(o)||(o=o(n)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");A[o[0].id]=o[1]}}return n}prop(e){return this.props[e.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;var A=this.prop(Pr.group);return!!A&&A.indexOf(e)>-1}return this.id==e}static match(e){var A=Object.create(null);for(var i in e)for(var n of i.split(" "))A[n]=e[i];return o=>{for(var r=o.prop(Pr.group),s=-1;s<(r?r.length:0);s++){var a=A[s<0?o.name:r[s]];if(a)return a}}}};cf.none=new cf("",Object.create(null),0,8),function(t){t[t.ExcludeBuffers=1]="ExcludeBuffers",t[t.IncludeAnonymous=2]="IncludeAnonymous",t[t.IgnoreMounts=4]="IgnoreMounts",t[t.IgnoreOverlays=8]="IgnoreOverlays"}(dsA||(dsA={})),new Pr({perNode:!0});Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -3074,7 +3074,7 @@ button.jse-context-menu-button.svelte-1idfykj svg { } .jse-status-bar.svelte-1ulj7zd .jse-status-bar-info:where(.svelte-1ulj7zd) { padding: 2px; -}`);var tTA=vA('
            '),iTA=vA('
            '),nTA=vA('
            '),oTA=vA('
            '),LK=AQ.define([{tag:ke.propertyName,color:"var(--internal-key-color)"},{tag:ke.number,color:"var(--internal-value-color-number)"},{tag:ke.bool,color:"var(--internal-value-color-boolean)"},{tag:ke.string,color:"var(--internal-value-color-string)"},{tag:ke.keyword,color:"var(--internal-value-color-null)"}]),rTA=t_(LK),sTA=LK.style;LK.style=t=>sTA(t||[]);var aTA=[Bo.fromClass(class{constructor(t){this.view=t,this.indentUnit=Ug(t.state),this.initialPaddingLeft=null,this.isChrome=window?.navigator.userAgent.includes("Chrome"),this.generate(t.state)}update(t){var e=Ug(t.state);(e!==this.indentUnit||t.docChanged||t.viewportChanged)&&(this.indentUnit=e,this.generate(t.state))}generate(t){var e=new fs;this.initialPaddingLeft?this.addStyleToBuilder(e,t,this.initialPaddingLeft):this.view.requestMeasure({read:A=>{var i=A.contentDOM.querySelector(".cm-line");i&&(this.initialPaddingLeft=window.getComputedStyle(i).getPropertyValue("padding-left"),this.addStyleToBuilder(e,A.state,this.initialPaddingLeft)),this.decorations=e.finish()}}),this.decorations=e.finish()}addStyleToBuilder(t,e,A){var i=this.getVisibleLines(e);for(var n of i){var{numColumns:o,containsTab:r}=this.numColumns(n.text,e.tabSize),s="calc(".concat(o+this.indentUnit,"ch + ").concat(A,")"),a=this.isChrome?"calc(-".concat(o+this.indentUnit,"ch - ").concat(r?1:0,"px)"):"-".concat(o+this.indentUnit,"ch");t.add(n.from,n.from,ht.line({attributes:{style:"padding-left: ".concat(s,"; text-indent: ").concat(a,";")}}))}}getVisibleLines(t){var e=new Set,A=null;for(var{from:i,to:n}of this.view.visibleRanges)for(var o=i;o<=n;){var r=t.doc.lineAt(o);A!==r&&(e.add(r),A=r),o=r.to+1}return e}numColumns(t,e){var A=0,i=!1;A:for(var n=0;nt.decorations})];Ut(`/* over all fonts, sizes, and colors */ +}`);var nTA=vA('
            '),oTA=vA('
            '),rTA=vA('
            '),sTA=vA('
            '),LK=AQ.define([{tag:ke.propertyName,color:"var(--internal-key-color)"},{tag:ke.number,color:"var(--internal-value-color-number)"},{tag:ke.bool,color:"var(--internal-value-color-boolean)"},{tag:ke.string,color:"var(--internal-value-color-string)"},{tag:ke.keyword,color:"var(--internal-value-color-null)"}]),aTA=t_(LK),cTA=LK.style;LK.style=t=>cTA(t||[]);var gTA=[Bo.fromClass(class{constructor(t){this.view=t,this.indentUnit=Ug(t.state),this.initialPaddingLeft=null,this.isChrome=window?.navigator.userAgent.includes("Chrome"),this.generate(t.state)}update(t){var e=Ug(t.state);(e!==this.indentUnit||t.docChanged||t.viewportChanged)&&(this.indentUnit=e,this.generate(t.state))}generate(t){var e=new fs;this.initialPaddingLeft?this.addStyleToBuilder(e,t,this.initialPaddingLeft):this.view.requestMeasure({read:A=>{var i=A.contentDOM.querySelector(".cm-line");i&&(this.initialPaddingLeft=window.getComputedStyle(i).getPropertyValue("padding-left"),this.addStyleToBuilder(e,A.state,this.initialPaddingLeft)),this.decorations=e.finish()}}),this.decorations=e.finish()}addStyleToBuilder(t,e,A){var i=this.getVisibleLines(e);for(var n of i){var{numColumns:o,containsTab:r}=this.numColumns(n.text,e.tabSize),s="calc(".concat(o+this.indentUnit,"ch + ").concat(A,")"),a=this.isChrome?"calc(-".concat(o+this.indentUnit,"ch - ").concat(r?1:0,"px)"):"-".concat(o+this.indentUnit,"ch");t.add(n.from,n.from,ht.line({attributes:{style:"padding-left: ".concat(s,"; text-indent: ").concat(a,";")}}))}}getVisibleLines(t){var e=new Set,A=null;for(var{from:i,to:n}of this.view.visibleRanges)for(var o=i;o<=n;){var r=t.doc.lineAt(o);A!==r&&(e.add(r),A=r),o=r.to+1}return e}numColumns(t,e){var A=0,i=!1;A:for(var n=0;nt.decorations})];Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -3295,7 +3295,7 @@ button.jse-context-menu-button.svelte-1idfykj svg { .jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) .jse-fold-cancel-button:where(.svelte-1pr65po):hover { background: var(--jse-theme-color-highlight, #5f9dff); color: #fff; -}`);var cTA=vA('
            Collapsing
            '),gTA=vA('
            ',1),lTA=vA(" ",1),ITA=vA("
            ",1),CTA=vA('
            loading...
            '),dTA=vA("
            ");function BTA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=M(e,"readOnly",9),o=M(e,"mainMenuBar",9),r=M(e,"statusBar",9),s=M(e,"askToFormat",9),a=M(e,"externalContent",9),c=M(e,"externalSelection",9),g=M(e,"history",9),I=M(e,"indentation",9),C=M(e,"tabSize",9),d=M(e,"escapeUnicodeCharacters",9),B=M(e,"parser",9),E=M(e,"validator",9),u=M(e,"validationParser",9),h=M(e,"onChange",9),w=M(e,"onChangeMode",9),x=M(e,"onSelect",9),R=M(e,"onUndo",9),D=M(e,"onRedo",9),G=M(e,"onError",9),J=M(e,"onFocus",9),z=M(e,"onBlur",9),K=M(e,"onRenderMenu",9),O=M(e,"onSortModal",9),V=M(e,"onTransformModal",9),j=xr("jsoneditor:TextMode"),dA={key:"Mod-i",run:kA,shift:le,preventDefault:!0},fA=typeof window>"u";j("isSSR:",fA);var EA,IA=$(void 0,!0),SA=$(void 0,!0),nA=$(void 0,!0),lA=$(!1,!0),wA=$(s(),!0),VA=$([],!0),ie=$(!1,!0),UA=$(0,!0),BA=$(0,!0),JA=null,Xe=new Jl,We=new Jl,KA=new Jl,tA=new Jl,OA=new Jl,gA=a(),zA=$(xG(gA,I(),B()),!0),xA=Fa.define(),Me=null;function LA(){if(!Me||Me.length===0)return!1;var hA=Me[0].startState,Ae=Me[Me.length-1].state,re=Me.map(ue=>ue.changes).reduce((ue,aA)=>ue.compose(aA)),xe={type:"text",undo:{changes:re.invert(hA.doc).toJSON(),selection:uo(hA.selection)},redo:{changes:re.toJSON(),selection:uo(Ae.selection)}};return j("add history item",xe),g().add(xe),Me=null,!0}var cA=$(d(),!0);ws(_t(function*(){if(!fA)try{EA=function(hA){var{target:Ae,initialText:re,readOnly:xe,indentation:ue}=hA;j("Create CodeMirror editor",{readOnly:xe,indentation:ue});var aA=function(PA,Je){return IG(PA)?PA.ranges.every(vt=>vt.anchor{y(nA,PA.state),PA.docChanged&&(PA.transactions.some(Je=>!!Je.annotation(xA))||(Me=[...Me??[],PA]),vn()),PA.selectionSet&&Vo()}),DoA(),RoA({top:!0}),Pt.lineWrapping,We.of(Dr.readOnly.of(xe)),tA.of(Dr.tabSize.of(C())),KA.of(Mo(ue)),OA.of(Pt.theme({},{dark:Rt()}))]});return EA=new Pt({state:DA,parent:Ae}),aA&&EA.dispatch(EA.state.update({selection:aA.main,scrollIntoView:!0})),EA}({target:l(IA),initialText:Qn(l(zA),l(lA))?"":l(A).escapeValue(l(zA)),readOnly:n(),indentation:I()})}catch(hA){console.error(hA)}})),ig(()=>{In(),EA&&(j("Destroy CodeMirror editor"),EA.destroy()),Wt()});var Gt=h1(),ct=h1();function oe(){EA&&(j("focus"),EA.focus())}function Dt(hA,Ae){if(EA)try{(function(){var re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],xe=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],ue=EA.state,aA=ue.doc.length,DA=VF(ue,aA,1/0);if(DA){var PA=[];if(re.length===0)PA=St(DA,ue,void 0,xe);else{var{from:Je}=iG(l(A).escapeValue(l(zA)),re);Je!==void 0&&Je!==0&&(PA=St(DA,ue,Je,xe))}PA.length>0&&function(vt){Se.apply(this,arguments)}(PA)}})(hA,Ae)}catch(re){G()(re)}}function _e(){return XF.of((hA,Ae,re)=>{var xe=VF(hA,hA.doc.length,1/0);if(!xe||xe.lengthre)){if(ue&&DA.from=Ae&&Je.to>re&&(ue=Je)}}}return ue})}function Re(hA){var Ae=hA.lastChild;return Ae&&Ae.to==hA.to&&Ae.type.isError}function St(hA,Ae,re){var xe=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3],ue=[],aA=new Set;return hA.iterate({enter(DA){if(re===void 0||DA.from>=re){var PA=$E(Ae,DA.from,DA.to);if(PA){var Je="".concat(PA.from,"-").concat(PA.to);if(!aA.has(Je))if(xe)ue.push({from:PA.from,to:PA.to}),aA.add(Je);else{var vt=ue.some(Yt=>Yt.from<=PA.from&&Yt.to>=PA.to);vt||(ue.push({from:PA.from,to:PA.to}),aA.add(Je))}}}}}),ue}function Se(){return Se=_t(function*(hA){if(hA.length!==0){var Ae=hA.length>5e3;Ae&&(y(ie,!0),y(UA,0),y(BA,hA.length),JA=new AbortController);var re=xe=>new Promise(ue=>{var aA;Ae&&(aA=JA)!==null&&aA!==void 0&&aA.signal.aborted?ue():requestAnimationFrame(()=>{var DA=Math.min(xe+100,hA.length),PA=hA.slice(xe,DA);EA.dispatch({effects:PA.map(Je=>tQ.of({from:Je.from,to:Je.to}))}),Ae&&y(UA,DA),DA1&&arguments[1]!==void 0?arguments[1]:KG;if(EA)try{if(hA&&hA.length>0){var{from:re}=iG(l(A).escapeValue(l(zA)),hA);re!==void 0&&(EA.dispatch({selection:{anchor:re,head:re}}),$F(EA))}else A_(EA);Ae?.(hA)}catch(xe){G()(xe)}}var T=!1;function P(hA){return X(hA,!1)}function X(hA,Ae){j("handlePatch",hA,Ae);var re=B().parse(l(zA)),xe=Ma(re,hA),ue=W8(re,hA);return b({text:B().stringify(xe,null,I())},Ae,!1),{json:xe,previousJson:re,undo:ue,redo:hA}}function kA(){if(j("format"),n())return!1;try{var hA=B().parse(l(zA));return b({text:B().stringify(hA,null,I())},!0,!1),y(wA,s()),!0}catch(Ae){G()(Ae)}return!1}function le(){if(j("compact"),n())return!1;try{var hA=B().parse(l(zA));return b({text:B().stringify(hA)},!0,!1),y(wA,!1),!0}catch(Ae){G()(Ae)}return!1}function Ee(){if(j("repair"),!n())try{b({text:Uc(l(zA))},!0,!1),y(Kn,cG),y($A,void 0)}catch(hA){G()(hA)}}function NA(){var hA;if(!n())try{var Ae=B().parse(l(zA));T=!0,O()({id:Gt,json:Ae,rootPath:[],onSort:(hA=_t(function*(re){var{operations:xe}=re;j("onSort",xe),X(xe,!0)}),function(re){return hA.apply(this,arguments)}),onClose:()=>{T=!1,oe()}})}catch(re){G()(re)}}function MA(hA){var{id:Ae,rootPath:re,onTransform:xe,onClose:ue}=hA;try{var aA=B().parse(l(zA));T=!0,V()({id:Ae||ct,json:aA,rootPath:re||[],onTransform:DA=>{xe?xe({operations:DA,json:aA,transformedJson:Ma(aA,DA)}):(j("onTransform",DA),X(DA,!0))},onClose:()=>{T=!1,oe(),ue&&ue()}})}catch(DA){G()(DA)}}function Ct(){n()||MA({rootPath:[]})}function $e(){EA&&(l(IA)&&l(IA).querySelector(".cm-search")?ty(EA):ey(EA))}function XA(){if(n())return!1;In();var hA=g().undo();return j("undo",hA),_rA(hA)?(EA.dispatch({annotations:xA.of("undo"),changes:hs.fromJSON(hA.undo.changes),selection:ae.fromJSON(hA.undo.selection),scrollIntoView:!0}),!0):(R()(hA),!1)}function ot(){if(n())return!1;In();var hA=g().redo();return j("redo",hA),_rA(hA)?(EA.dispatch({annotations:xA.of("redo"),changes:hs.fromJSON(hA.redo.changes),selection:ae.fromJSON(hA.redo.selection),scrollIntoView:!0}),!0):(D()(hA),!1)}function Si(){y(lA,!0),b(a(),!0,!0)}function Zi(){w()(ir.tree)}function Oi(){Xi()}function Le(hA){j("select validation error",hA);var{from:Ae,to:re}=Bi(hA);Ae!==void 0&&re!==void 0&&(zi(Ae,re),oe())}function zi(hA,Ae){j("setSelection",{anchor:hA,head:Ae}),EA&&EA.dispatch(EA.state.update({selection:{anchor:hA,head:Ae},scrollIntoView:!0}))}function fi(hA,Ae){if(Ae.state.selection.ranges.length===1){var re=Ae.state.selection.ranges[0],xe=l(zA).slice(re.from,re.to);if(xe==="{"||xe==="["){var ue=AK.default.parse(l(zA)),aA=Object.keys(ue.pointers).find(PA=>{var Je;return((Je=ue.pointers[PA].value)===null||Je===void 0?void 0:Je.pos)===re.from}),DA=ue.pointers[aA];aA&&DA&&DA.value&&DA.valueEnd&&(j("pointer found, selecting inner contents of path:",aA,DA),zi(DA.value.pos+1,DA.valueEnd.pos-1))}}}function Ht(){return coA(Ei,{delay:300})}function Rt(){return!!l(IA)&&getComputedStyle(l(IA)).getPropertyValue("--jse-theme").includes("dark")}function Bi(hA){var{path:Ae,message:re,severity:xe}=hA,{line:ue,column:aA,from:DA,to:PA}=iG(l(A).escapeValue(l(zA)),Ae);return{path:Ae,line:ue,column:aA,from:DA,to:PA,message:re,severity:xe,actions:[]}}function Mi(hA,Ae){var{line:re,column:xe,position:ue,message:aA}=hA;return{path:[],line:re,column:xe,from:ue,to:ue,severity:Og.error,message:aA,actions:Ae&&!n()?[{name:"Auto repair",apply:()=>Ee()}]:void 0}}function Jt(hA){return{from:hA.from||0,to:hA.to||0,message:hA.message||"",actions:hA.actions,severity:hA.severity}}function b(hA,Ae,re){var xe=xG(hA,I(),B()),ue=!ri(hA,gA),aA=gA;j("setCodeMirrorContent",{isChanged:ue,emitChange:Ae,forceUpdate:re}),EA&&(ue||re)&&(gA=hA,y(zA,xe),Qn(l(zA),l(lA))||EA.dispatch({changes:{from:0,to:EA.state.doc.length,insert:l(A).escapeValue(l(zA))}}),LA(),ue&&Ae&&qo(gA,aA))}function et(hA){return IG(hA)?ae.fromJSON(hA):void 0}function ai(){return Wi.apply(this,arguments)}function Wi(){return Wi=_t(function*(){j("refresh"),yield function(){return xn.apply(this,arguments)}()}),Wi.apply(this,arguments)}function Xi(){if(EA){var hA=EA?l(A).unescapeValue(EA.state.doc.toString()):"",Ae=hA!==l(zA);if(j("onChangeCodeMirrorValue",{isChanged:Ae}),Ae){var re=gA;y(zA,hA),gA={text:l(zA)},LA(),qo(gA,re),to(),Vo()}}}function xn(){return(xn=_t(function*(){if(to(),EA){var hA=Rt();return j("updateTheme",{dark:hA}),EA.dispatch({effects:[OA.reconfigure(Pt.theme({},{dark:hA}))]}),new Promise(Ae=>setTimeout(Ae))}return Promise.resolve()})).apply(this,arguments)}function Mo(hA){var Ae=JC.of(typeof hA=="number"?" ".repeat(hA):hA);return hA===" "?[Ae]:[Ae,aTA]}kK({onMount:ws,onDestroy:ig,getWindow:()=>Qf(l(SA)),hasFocus:()=>T&&document.hasFocus()||CK(l(SA)),onFocus:J(),onBlur:()=>{In(),z()()}});var vn=EE(Xi,300);function In(){vn.flush()}function qo(hA,Ae){h()&&h()(hA,Ae,{contentErrors:Ri(),patchResult:void 0})}function Vo(){x()(uo(l(nA).selection))}function uo(hA){return pe({type:Ln.text},hA.toJSON())}function Qn(hA,Ae){return!!hA&&hA.length>sG&&!Ae}var Kn=$(cG,!0),$A=$(void 0,!0);function Ei(){if(Qn(l(zA),l(lA)))return[];var hA=Ri();if(FrA(hA)){var{parseError:Ae,isRepairable:re}=hA;return[Jt(Mi(Ae,re))]}return bKA(hA)?hA.validationErrors.map(Bi).map(Jt):[]}function Ri(){j("validate:start"),In();var hA=un(l(A).escapeValue(l(zA)),E(),B(),u());return FrA(hA)?(y(Kn,hA.isRepairable?SrA:"invalid"),y($A,hA.parseError),y(VA,[])):(y(Kn,cG),y($A,void 0),y(VA,hA?.validationErrors||[])),j("validate:end"),hA}var un=hE(XUA);function Un(){l($A)&&function(hA){j("select parse error",hA);var Ae=Mi(hA,!1);zi(Ae.from!=null?Ae.from:0,Ae.to!=null?Ae.to:0),oe()}(l($A))}var Zo={icon:hX,text:"Show me",title:"Move to the parse error location",onClick:Un};pA(()=>k(d()),()=>{y(A,lK({escapeControlCharacters:!1,escapeUnicodeCharacters:d()}))}),pA(()=>k(a()),()=>{b(a(),!1,!1)}),pA(()=>k(c()),()=>{(function(hA){if(IG(hA)){var Ae=et(hA);!EA||!Ae||l(nA)&&l(nA).selection.eq(Ae)||(j("applyExternalSelection",Ae),EA.dispatch({selection:Ae}))}})(c())}),pA(()=>k(E()),()=>{(function(hA){j("updateLinter",hA),EA&&EA.dispatch({effects:Xe.reconfigure(Ht())})})(E())}),pA(()=>k(I()),()=>{(function(hA){EA&&(j("updateIndentation",hA),EA.dispatch({effects:KA.reconfigure(Mo(hA))}))})(I())}),pA(()=>k(C()),()=>{(function(hA){EA&&(j("updateTabSize",hA),EA.dispatch({effects:tA.reconfigure(Dr.tabSize.of(hA))}))})(C())}),pA(()=>k(n()),()=>{(function(hA){EA&&(j("updateReadOnly",hA),EA.dispatch({effects:[We.reconfigure(Dr.readOnly.of(hA))]}))})(n())}),pA(()=>(l(cA),k(d())),()=>{l(cA)!==d()&&(y(cA,d()),j("forceUpdateText",{escapeUnicodeCharacters:d()}),EA&&EA.dispatch({changes:{from:0,to:EA.state.doc.length,insert:l(A).escapeValue(l(zA))}}))}),pA(()=>(l(Kn),k(n()),_0),()=>{y(i,l(Kn)!==SrA||n()?[Zo]:[{icon:_0,text:"Auto repair",title:"Automatically repair JSON",onClick:Ee},Zo])}),ln(),qt(!0);var Ci,io=dTA(),Wo=W(io),Xo=hA=>{var Ae=ZA(()=>(l(zA),oA(()=>l(zA).length===0))),re=ZA(()=>!l(Ae)),xe=ZA(()=>!l(Ae)),ue=ZA(()=>!l(Ae)),aA=ZA(()=>!l(Ae));(function(DA,PA){ft(PA,!1);var Je=$(void 0,!0),vt=M(PA,"readOnly",9,!1),Yt=M(PA,"onFormat",9),rn=M(PA,"onCompact",9),no=M(PA,"onSort",9),sn=M(PA,"onTransform",9),Ji=M(PA,"onToggleSearch",9),bt=M(PA,"onUndo",9),Li=M(PA,"onRedo",9),Mn=M(PA,"canUndo",9),Qt=M(PA,"canRedo",9),fn=M(PA,"canFormat",9),Te=M(PA,"canCompact",9),Qi=M(PA,"canSort",9),mi=M(PA,"canTransform",9),bn=M(PA,"onRenderMenu",9),Ko={type:"button",icon:u4,title:"Search (Ctrl+F)",className:"jse-search",onClick:Ji()},Ot=$(void 0,!0);pA(()=>(k(vt()),k(Yt()),k(fn()),k(rn()),k(Te()),k(no()),k(Qi()),k(sn()),k(mi()),k(bt()),k(Mn()),k(Li()),k(Qt())),()=>{y(Ot,vt()?[Ko,{type:"space"}]:[{type:"button",icon:lsA,title:"Format JSON: add proper indentation and new lines (Ctrl+I)",className:"jse-format",onClick:Yt(),disabled:vt()||!fn()},{type:"button",icon:tYA,title:"Compact JSON: remove all white spacing and new lines (Ctrl+Shift+I)",className:"jse-compact",onClick:rn(),disabled:vt()||!Te()},{type:"separator"},{type:"button",icon:Q4,title:"Sort",className:"jse-sort",onClick:no(),disabled:vt()||!Qi()},{type:"button",icon:d4,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:sn(),disabled:vt()||!mi()},Ko,{type:"separator"},{type:"button",icon:K5,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:bt(),disabled:!Mn()},{type:"button",icon:G5,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:Li(),disabled:!Qt()},{type:"space"}])}),pA(()=>(k(bn()),l(Ot)),()=>{y(Je,bn()(l(Ot))||l(Ot))}),ln(),qt(!0),l7(DA,{get items(){return l(Je)}}),mt()})(hA,{get readOnly(){return n()},onFormat:kA,onCompact:le,onSort:NA,onTransform:Ct,onToggleSearch:$e,onUndo:XA,onRedo:ot,get canFormat(){return l(re)},get canCompact(){return l(xe)},get canSort(){return l(ue)},get canTransform(){return l(aA)},get canUndo(){return k(g()),oA(()=>g().canUndo)},get canRedo(){return k(g()),oA(()=>g().canRedo)},get onRenderMenu(){return K()}})};GA(Wo,hA=>{o()&&hA(Xo)});var nr=CA(Wo,2),on=hA=>{var Ae=cTA(),re=CA(W(Ae),2),xe=W(re),ue=CA(re,2);we(()=>eg(xe,"width: ".concat(l(BA)>0?l(UA)/l(BA)*100:0,"%"))),ce("click",ue,Wt),iA(hA,Ae)};GA(nr,hA=>{l(ie)&&hA(on)});var $i=CA(nr,2),yt=hA=>{var Ae,re=ITA(),xe=ZA(()=>(l(zA),l(lA),oA(()=>Qn(l(zA),l(lA))))),ue=Mt(re);Qo(ue,vt=>y(IA,vt),()=>l(IA));var aA=CA(ue,2),DA=vt=>{var Yt=gTA(),rn=Mt(Yt),no=ZA(()=>(k(ky),k(sG),l(zA),oA(()=>"The JSON document is larger than ".concat(ky(sG),", ")+"and may crash your browser when loading it in text mode. Actual size: ".concat(ky(l(zA).length),"."))));pc(rn,{get icon(){return m1},type:"error",get message(){return l(no)},actions:[{text:"Open anyway",title:"Open the document in text mode. This may freeze or crash your browser.",onClick:Si},{text:"Open in tree mode",title:"Open the document in tree mode. Tree mode can handle large documents.",onClick:Zi},{text:"Cancel",title:"Cancel opening this large document.",onClick:Oi}],onClose:oe});var sn=W(CA(rn,2));we(Ji=>pt(sn,Ji),[()=>(k(X0),l(zA),k(Gy),oA(()=>X0(l(zA)||"",Gy)))],ZA),iA(vt,Yt)};GA(aA,vt=>{l(xe)&&vt(DA)});var PA=CA(aA,2),Je=vt=>{var Yt=lTA(),rn=Mt(Yt),no=Mn=>{(function(Qt,fn){ft(fn,!1);var Te=M(fn,"editorState",8),Qi=$(),mi=$(),bn=$(),Ko=$(),Ot=$();pA(()=>k(Te()),()=>{var U;y(Qi,(U=Te())===null||U===void 0||(U=U.selection)===null||U===void 0||(U=U.main)===null||U===void 0?void 0:U.head)}),pA(()=>(l(Qi),k(Te())),()=>{var U;y(mi,l(Qi)!==void 0?(U=Te())===null||U===void 0||(U=U.doc)===null||U===void 0?void 0:U.lineAt(l(Qi)):void 0)}),pA(()=>l(mi),()=>{y(bn,l(mi)!==void 0?l(mi).number:void 0)}),pA(()=>(l(mi),l(Qi)),()=>{y(Ko,l(mi)!==void 0&&l(Qi)!==void 0?l(Qi)-l(mi).from+1:void 0)}),pA(()=>k(Te()),()=>{var U;y(Ot,(U=Te())===null||U===void 0||(U=U.selection)===null||U===void 0||(U=U.ranges)===null||U===void 0?void 0:U.reduce((q,Z)=>q+Z.to-Z.from,0))}),ln(),qt();var Nr=oTA(),Jn=W(Nr),Q=U=>{var q=tTA(),Z=W(q);we(()=>{var RA;return pt(Z,"Line: ".concat((RA=l(bn))!==null&&RA!==void 0?RA:""))}),iA(U,q)};GA(Jn,U=>{l(bn)!==void 0&&U(Q)});var m=CA(Jn,2),v=U=>{var q=iTA(),Z=W(q);we(()=>{var RA;return pt(Z,"Column: ".concat((RA=l(Ko))!==null&&RA!==void 0?RA:""))}),iA(U,q)};GA(m,U=>{l(Ko)!==void 0&&U(v)});var p=CA(m,2),F=U=>{var q=nTA(),Z=W(q);we(()=>{var RA;return pt(Z,"Selection: ".concat((RA=l(Ot))!==null&&RA!==void 0?RA:""," characters"))}),iA(U,q)};GA(p,U=>{l(Ot)!==void 0&&l(Ot)>0&&U(F)}),iA(Qt,Nr),mt()})(Mn,{get editorState(){return l(nA)}})};GA(rn,Mn=>{r()&&Mn(no)});var sn=CA(rn,2),Ji=Mn=>{pc(Mn,{type:"error",get icon(){return m1},get message(){return l($A),oA(()=>l($A).message)},get actions(){return l(i)},onClick:Un,onClose:oe})};GA(sn,Mn=>{l($A)&&Mn(Ji)});var bt=CA(sn,2),Li=Mn=>{var Qt=ZA(()=>[{icon:lsA,text:"Format",title:"Format JSON: add proper indentation and new lines (Ctrl+I)",onClick:kA},{icon:h4,text:"No thanks",title:"Close this message",onClick:()=>y(wA,!1)}]);pc(Mn,{type:"success",message:"Do you want to format the JSON?",get actions(){return l(Qt)},onClose:oe})};GA(bt,Mn=>{l($A),l(wA),k(brA),l(zA),oA(()=>!l($A)&&l(wA)&&brA(l(zA)))&&Mn(Li)}),SK(CA(bt,2),{get validationErrors(){return l(VA)},selectError:Le}),iA(vt,Yt)};GA(PA,vt=>{l(xe)||vt(Je)}),we(vt=>Ae=jt(ue,1,"jse-contents svelte-1pr65po",null,Ae,vt),[()=>({"jse-hidden":l(xe)})],ZA),iA(hA,re)},hn=hA=>{iA(hA,CTA())};return GA($i,hA=>{fA?hA(hn,!1):hA(yt)}),Qo(io,hA=>y(SA,hA),()=>l(SA)),we(hA=>Ci=jt(io,1,"jse-text-mode svelte-1pr65po",null,Ci,hA),[()=>({"no-main-menu":!o()})],ZA),iA(t,io),Ft(e,"focus",oe),Ft(e,"collapse",Dt),Ft(e,"expand",L),Ft(e,"patch",P),Ft(e,"handlePatch",X),Ft(e,"openTransformModal",MA),Ft(e,"refresh",ai),Ft(e,"flush",In),Ft(e,"validate",Ri),mt({focus:oe,collapse:Dt,expand:L,patch:P,handlePatch:X,openTransformModal:MA,refresh:ai,flush:In,validate:Ri})}Ut(`/* over all fonts, sizes, and colors */ +}`);var lTA=vA('
            Collapsing
            '),ITA=vA('
            ',1),CTA=vA(" ",1),dTA=vA("
            ",1),BTA=vA('
            loading...
            '),ETA=vA("
            ");function QTA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=M(e,"readOnly",9),o=M(e,"mainMenuBar",9),r=M(e,"statusBar",9),s=M(e,"askToFormat",9),a=M(e,"externalContent",9),c=M(e,"externalSelection",9),g=M(e,"history",9),I=M(e,"indentation",9),C=M(e,"tabSize",9),d=M(e,"escapeUnicodeCharacters",9),B=M(e,"parser",9),E=M(e,"validator",9),u=M(e,"validationParser",9),h=M(e,"onChange",9),w=M(e,"onChangeMode",9),x=M(e,"onSelect",9),R=M(e,"onUndo",9),D=M(e,"onRedo",9),G=M(e,"onError",9),J=M(e,"onFocus",9),z=M(e,"onBlur",9),K=M(e,"onRenderMenu",9),O=M(e,"onSortModal",9),V=M(e,"onTransformModal",9),j=xr("jsoneditor:TextMode"),dA={key:"Mod-i",run:kA,shift:le,preventDefault:!0},fA=typeof window>"u";j("isSSR:",fA);var EA,IA=$(void 0,!0),SA=$(void 0,!0),nA=$(void 0,!0),lA=$(!1,!0),wA=$(s(),!0),VA=$([],!0),ie=$(!1,!0),UA=$(0,!0),BA=$(0,!0),JA=null,Xe=new Jl,We=new Jl,KA=new Jl,tA=new Jl,OA=new Jl,gA=a(),zA=$(xG(gA,I(),B()),!0),xA=Fa.define(),Me=null;function LA(){if(!Me||Me.length===0)return!1;var hA=Me[0].startState,Ae=Me[Me.length-1].state,re=Me.map(ue=>ue.changes).reduce((ue,aA)=>ue.compose(aA)),xe={type:"text",undo:{changes:re.invert(hA.doc).toJSON(),selection:uo(hA.selection)},redo:{changes:re.toJSON(),selection:uo(Ae.selection)}};return j("add history item",xe),g().add(xe),Me=null,!0}var cA=$(d(),!0);ws(_t(function*(){if(!fA)try{EA=function(hA){var{target:Ae,initialText:re,readOnly:xe,indentation:ue}=hA;j("Create CodeMirror editor",{readOnly:xe,indentation:ue});var aA=function(PA,Je){return IG(PA)?PA.ranges.every(vt=>vt.anchor{y(nA,PA.state),PA.docChanged&&(PA.transactions.some(Je=>!!Je.annotation(xA))||(Me=[...Me??[],PA]),vn()),PA.selectionSet&&Vo()}),DoA(),RoA({top:!0}),Pt.lineWrapping,We.of(Dr.readOnly.of(xe)),tA.of(Dr.tabSize.of(C())),KA.of(Mo(ue)),OA.of(Pt.theme({},{dark:Rt()}))]});return EA=new Pt({state:DA,parent:Ae}),aA&&EA.dispatch(EA.state.update({selection:aA.main,scrollIntoView:!0})),EA}({target:l(IA),initialText:Qn(l(zA),l(lA))?"":l(A).escapeValue(l(zA)),readOnly:n(),indentation:I()})}catch(hA){console.error(hA)}})),ig(()=>{In(),EA&&(j("Destroy CodeMirror editor"),EA.destroy()),Wt()});var Gt=h1(),ct=h1();function oe(){EA&&(j("focus"),EA.focus())}function Dt(hA,Ae){if(EA)try{(function(){var re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],xe=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],ue=EA.state,aA=ue.doc.length,DA=VF(ue,aA,1/0);if(DA){var PA=[];if(re.length===0)PA=St(DA,ue,void 0,xe);else{var{from:Je}=iG(l(A).escapeValue(l(zA)),re);Je!==void 0&&Je!==0&&(PA=St(DA,ue,Je,xe))}PA.length>0&&function(vt){Se.apply(this,arguments)}(PA)}})(hA,Ae)}catch(re){G()(re)}}function _e(){return XF.of((hA,Ae,re)=>{var xe=VF(hA,hA.doc.length,1/0);if(!xe||xe.lengthre)){if(ue&&DA.from=Ae&&Je.to>re&&(ue=Je)}}}return ue})}function Re(hA){var Ae=hA.lastChild;return Ae&&Ae.to==hA.to&&Ae.type.isError}function St(hA,Ae,re){var xe=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3],ue=[],aA=new Set;return hA.iterate({enter(DA){if(re===void 0||DA.from>=re){var PA=$E(Ae,DA.from,DA.to);if(PA){var Je="".concat(PA.from,"-").concat(PA.to);if(!aA.has(Je))if(xe)ue.push({from:PA.from,to:PA.to}),aA.add(Je);else{var vt=ue.some(Yt=>Yt.from<=PA.from&&Yt.to>=PA.to);vt||(ue.push({from:PA.from,to:PA.to}),aA.add(Je))}}}}}),ue}function Se(){return Se=_t(function*(hA){if(hA.length!==0){var Ae=hA.length>5e3;Ae&&(y(ie,!0),y(UA,0),y(BA,hA.length),JA=new AbortController);var re=xe=>new Promise(ue=>{var aA;Ae&&(aA=JA)!==null&&aA!==void 0&&aA.signal.aborted?ue():requestAnimationFrame(()=>{var DA=Math.min(xe+100,hA.length),PA=hA.slice(xe,DA);EA.dispatch({effects:PA.map(Je=>tQ.of({from:Je.from,to:Je.to}))}),Ae&&y(UA,DA),DA1&&arguments[1]!==void 0?arguments[1]:KG;if(EA)try{if(hA&&hA.length>0){var{from:re}=iG(l(A).escapeValue(l(zA)),hA);re!==void 0&&(EA.dispatch({selection:{anchor:re,head:re}}),$F(EA))}else A_(EA);Ae?.(hA)}catch(xe){G()(xe)}}var T=!1;function P(hA){return X(hA,!1)}function X(hA,Ae){j("handlePatch",hA,Ae);var re=B().parse(l(zA)),xe=Ma(re,hA),ue=W8(re,hA);return b({text:B().stringify(xe,null,I())},Ae,!1),{json:xe,previousJson:re,undo:ue,redo:hA}}function kA(){if(j("format"),n())return!1;try{var hA=B().parse(l(zA));return b({text:B().stringify(hA,null,I())},!0,!1),y(wA,s()),!0}catch(Ae){G()(Ae)}return!1}function le(){if(j("compact"),n())return!1;try{var hA=B().parse(l(zA));return b({text:B().stringify(hA)},!0,!1),y(wA,!1),!0}catch(Ae){G()(Ae)}return!1}function Ee(){if(j("repair"),!n())try{b({text:Uc(l(zA))},!0,!1),y(Kn,cG),y($A,void 0)}catch(hA){G()(hA)}}function FA(){var hA;if(!n())try{var Ae=B().parse(l(zA));T=!0,O()({id:Gt,json:Ae,rootPath:[],onSort:(hA=_t(function*(re){var{operations:xe}=re;j("onSort",xe),X(xe,!0)}),function(re){return hA.apply(this,arguments)}),onClose:()=>{T=!1,oe()}})}catch(re){G()(re)}}function MA(hA){var{id:Ae,rootPath:re,onTransform:xe,onClose:ue}=hA;try{var aA=B().parse(l(zA));T=!0,V()({id:Ae||ct,json:aA,rootPath:re||[],onTransform:DA=>{xe?xe({operations:DA,json:aA,transformedJson:Ma(aA,DA)}):(j("onTransform",DA),X(DA,!0))},onClose:()=>{T=!1,oe(),ue&&ue()}})}catch(DA){G()(DA)}}function dt(){n()||MA({rootPath:[]})}function $e(){EA&&(l(IA)&&l(IA).querySelector(".cm-search")?ty(EA):ey(EA))}function XA(){if(n())return!1;In();var hA=g().undo();return j("undo",hA),_rA(hA)?(EA.dispatch({annotations:xA.of("undo"),changes:hs.fromJSON(hA.undo.changes),selection:ae.fromJSON(hA.undo.selection),scrollIntoView:!0}),!0):(R()(hA),!1)}function ot(){if(n())return!1;In();var hA=g().redo();return j("redo",hA),_rA(hA)?(EA.dispatch({annotations:xA.of("redo"),changes:hs.fromJSON(hA.redo.changes),selection:ae.fromJSON(hA.redo.selection),scrollIntoView:!0}),!0):(D()(hA),!1)}function Si(){y(lA,!0),b(a(),!0,!0)}function Zi(){w()(ir.tree)}function Oi(){Xi()}function Le(hA){j("select validation error",hA);var{from:Ae,to:re}=Bi(hA);Ae!==void 0&&re!==void 0&&(zi(Ae,re),oe())}function zi(hA,Ae){j("setSelection",{anchor:hA,head:Ae}),EA&&EA.dispatch(EA.state.update({selection:{anchor:hA,head:Ae},scrollIntoView:!0}))}function fi(hA,Ae){if(Ae.state.selection.ranges.length===1){var re=Ae.state.selection.ranges[0],xe=l(zA).slice(re.from,re.to);if(xe==="{"||xe==="["){var ue=AK.default.parse(l(zA)),aA=Object.keys(ue.pointers).find(PA=>{var Je;return((Je=ue.pointers[PA].value)===null||Je===void 0?void 0:Je.pos)===re.from}),DA=ue.pointers[aA];aA&&DA&&DA.value&&DA.valueEnd&&(j("pointer found, selecting inner contents of path:",aA,DA),zi(DA.value.pos+1,DA.valueEnd.pos-1))}}}function Ht(){return coA(Ei,{delay:300})}function Rt(){return!!l(IA)&&getComputedStyle(l(IA)).getPropertyValue("--jse-theme").includes("dark")}function Bi(hA){var{path:Ae,message:re,severity:xe}=hA,{line:ue,column:aA,from:DA,to:PA}=iG(l(A).escapeValue(l(zA)),Ae);return{path:Ae,line:ue,column:aA,from:DA,to:PA,message:re,severity:xe,actions:[]}}function Mi(hA,Ae){var{line:re,column:xe,position:ue,message:aA}=hA;return{path:[],line:re,column:xe,from:ue,to:ue,severity:Og.error,message:aA,actions:Ae&&!n()?[{name:"Auto repair",apply:()=>Ee()}]:void 0}}function Jt(hA){return{from:hA.from||0,to:hA.to||0,message:hA.message||"",actions:hA.actions,severity:hA.severity}}function b(hA,Ae,re){var xe=xG(hA,I(),B()),ue=!ri(hA,gA),aA=gA;j("setCodeMirrorContent",{isChanged:ue,emitChange:Ae,forceUpdate:re}),EA&&(ue||re)&&(gA=hA,y(zA,xe),Qn(l(zA),l(lA))||EA.dispatch({changes:{from:0,to:EA.state.doc.length,insert:l(A).escapeValue(l(zA))}}),LA(),ue&&Ae&&qo(gA,aA))}function et(hA){return IG(hA)?ae.fromJSON(hA):void 0}function ai(){return Wi.apply(this,arguments)}function Wi(){return Wi=_t(function*(){j("refresh"),yield function(){return xn.apply(this,arguments)}()}),Wi.apply(this,arguments)}function Xi(){if(EA){var hA=EA?l(A).unescapeValue(EA.state.doc.toString()):"",Ae=hA!==l(zA);if(j("onChangeCodeMirrorValue",{isChanged:Ae}),Ae){var re=gA;y(zA,hA),gA={text:l(zA)},LA(),qo(gA,re),to(),Vo()}}}function xn(){return(xn=_t(function*(){if(to(),EA){var hA=Rt();return j("updateTheme",{dark:hA}),EA.dispatch({effects:[OA.reconfigure(Pt.theme({},{dark:hA}))]}),new Promise(Ae=>setTimeout(Ae))}return Promise.resolve()})).apply(this,arguments)}function Mo(hA){var Ae=JC.of(typeof hA=="number"?" ".repeat(hA):hA);return hA===" "?[Ae]:[Ae,gTA]}kK({onMount:ws,onDestroy:ig,getWindow:()=>Qf(l(SA)),hasFocus:()=>T&&document.hasFocus()||CK(l(SA)),onFocus:J(),onBlur:()=>{In(),z()()}});var vn=EE(Xi,300);function In(){vn.flush()}function qo(hA,Ae){h()&&h()(hA,Ae,{contentErrors:Ri(),patchResult:void 0})}function Vo(){x()(uo(l(nA).selection))}function uo(hA){return pe({type:Ln.text},hA.toJSON())}function Qn(hA,Ae){return!!hA&&hA.length>sG&&!Ae}var Kn=$(cG,!0),$A=$(void 0,!0);function Ei(){if(Qn(l(zA),l(lA)))return[];var hA=Ri();if(FrA(hA)){var{parseError:Ae,isRepairable:re}=hA;return[Jt(Mi(Ae,re))]}return SKA(hA)?hA.validationErrors.map(Bi).map(Jt):[]}function Ri(){j("validate:start"),In();var hA=un(l(A).escapeValue(l(zA)),E(),B(),u());return FrA(hA)?(y(Kn,hA.isRepairable?SrA:"invalid"),y($A,hA.parseError),y(VA,[])):(y(Kn,cG),y($A,void 0),y(VA,hA?.validationErrors||[])),j("validate:end"),hA}var un=hE(AJA);function Un(){l($A)&&function(hA){j("select parse error",hA);var Ae=Mi(hA,!1);zi(Ae.from!=null?Ae.from:0,Ae.to!=null?Ae.to:0),oe()}(l($A))}var Zo={icon:hX,text:"Show me",title:"Move to the parse error location",onClick:Un};pA(()=>k(d()),()=>{y(A,lK({escapeControlCharacters:!1,escapeUnicodeCharacters:d()}))}),pA(()=>k(a()),()=>{b(a(),!1,!1)}),pA(()=>k(c()),()=>{(function(hA){if(IG(hA)){var Ae=et(hA);!EA||!Ae||l(nA)&&l(nA).selection.eq(Ae)||(j("applyExternalSelection",Ae),EA.dispatch({selection:Ae}))}})(c())}),pA(()=>k(E()),()=>{(function(hA){j("updateLinter",hA),EA&&EA.dispatch({effects:Xe.reconfigure(Ht())})})(E())}),pA(()=>k(I()),()=>{(function(hA){EA&&(j("updateIndentation",hA),EA.dispatch({effects:KA.reconfigure(Mo(hA))}))})(I())}),pA(()=>k(C()),()=>{(function(hA){EA&&(j("updateTabSize",hA),EA.dispatch({effects:tA.reconfigure(Dr.tabSize.of(hA))}))})(C())}),pA(()=>k(n()),()=>{(function(hA){EA&&(j("updateReadOnly",hA),EA.dispatch({effects:[We.reconfigure(Dr.readOnly.of(hA))]}))})(n())}),pA(()=>(l(cA),k(d())),()=>{l(cA)!==d()&&(y(cA,d()),j("forceUpdateText",{escapeUnicodeCharacters:d()}),EA&&EA.dispatch({changes:{from:0,to:EA.state.doc.length,insert:l(A).escapeValue(l(zA))}}))}),pA(()=>(l(Kn),k(n()),_0),()=>{y(i,l(Kn)!==SrA||n()?[Zo]:[{icon:_0,text:"Auto repair",title:"Automatically repair JSON",onClick:Ee},Zo])}),ln(),qt(!0);var Ci,io=ETA(),Wo=W(io),Xo=hA=>{var Ae=ZA(()=>(l(zA),oA(()=>l(zA).length===0))),re=ZA(()=>!l(Ae)),xe=ZA(()=>!l(Ae)),ue=ZA(()=>!l(Ae)),aA=ZA(()=>!l(Ae));(function(DA,PA){ft(PA,!1);var Je=$(void 0,!0),vt=M(PA,"readOnly",9,!1),Yt=M(PA,"onFormat",9),rn=M(PA,"onCompact",9),no=M(PA,"onSort",9),sn=M(PA,"onTransform",9),Ji=M(PA,"onToggleSearch",9),bt=M(PA,"onUndo",9),Li=M(PA,"onRedo",9),Mn=M(PA,"canUndo",9),Qt=M(PA,"canRedo",9),fn=M(PA,"canFormat",9),Te=M(PA,"canCompact",9),Qi=M(PA,"canSort",9),mi=M(PA,"canTransform",9),bn=M(PA,"onRenderMenu",9),Ko={type:"button",icon:u4,title:"Search (Ctrl+F)",className:"jse-search",onClick:Ji()},Ot=$(void 0,!0);pA(()=>(k(vt()),k(Yt()),k(fn()),k(rn()),k(Te()),k(no()),k(Qi()),k(sn()),k(mi()),k(bt()),k(Mn()),k(Li()),k(Qt())),()=>{y(Ot,vt()?[Ko,{type:"space"}]:[{type:"button",icon:lsA,title:"Format JSON: add proper indentation and new lines (Ctrl+I)",className:"jse-format",onClick:Yt(),disabled:vt()||!fn()},{type:"button",icon:nYA,title:"Compact JSON: remove all white spacing and new lines (Ctrl+Shift+I)",className:"jse-compact",onClick:rn(),disabled:vt()||!Te()},{type:"separator"},{type:"button",icon:Q4,title:"Sort",className:"jse-sort",onClick:no(),disabled:vt()||!Qi()},{type:"button",icon:d4,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:sn(),disabled:vt()||!mi()},Ko,{type:"separator"},{type:"button",icon:K5,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:bt(),disabled:!Mn()},{type:"button",icon:G5,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:Li(),disabled:!Qt()},{type:"space"}])}),pA(()=>(k(bn()),l(Ot)),()=>{y(Je,bn()(l(Ot))||l(Ot))}),ln(),qt(!0),l7(DA,{get items(){return l(Je)}}),mt()})(hA,{get readOnly(){return n()},onFormat:kA,onCompact:le,onSort:FA,onTransform:dt,onToggleSearch:$e,onUndo:XA,onRedo:ot,get canFormat(){return l(re)},get canCompact(){return l(xe)},get canSort(){return l(ue)},get canTransform(){return l(aA)},get canUndo(){return k(g()),oA(()=>g().canUndo)},get canRedo(){return k(g()),oA(()=>g().canRedo)},get onRenderMenu(){return K()}})};GA(Wo,hA=>{o()&&hA(Xo)});var nr=CA(Wo,2),on=hA=>{var Ae=lTA(),re=CA(W(Ae),2),xe=W(re),ue=CA(re,2);we(()=>eg(xe,"width: ".concat(l(BA)>0?l(UA)/l(BA)*100:0,"%"))),ce("click",ue,Wt),iA(hA,Ae)};GA(nr,hA=>{l(ie)&&hA(on)});var $i=CA(nr,2),yt=hA=>{var Ae,re=dTA(),xe=ZA(()=>(l(zA),l(lA),oA(()=>Qn(l(zA),l(lA))))),ue=Mt(re);Qo(ue,vt=>y(IA,vt),()=>l(IA));var aA=CA(ue,2),DA=vt=>{var Yt=ITA(),rn=Mt(Yt),no=ZA(()=>(k(ky),k(sG),l(zA),oA(()=>"The JSON document is larger than ".concat(ky(sG),", ")+"and may crash your browser when loading it in text mode. Actual size: ".concat(ky(l(zA).length),"."))));pc(rn,{get icon(){return m1},type:"error",get message(){return l(no)},actions:[{text:"Open anyway",title:"Open the document in text mode. This may freeze or crash your browser.",onClick:Si},{text:"Open in tree mode",title:"Open the document in tree mode. Tree mode can handle large documents.",onClick:Zi},{text:"Cancel",title:"Cancel opening this large document.",onClick:Oi}],onClose:oe});var sn=W(CA(rn,2));we(Ji=>pt(sn,Ji),[()=>(k(X0),l(zA),k(Gy),oA(()=>X0(l(zA)||"",Gy)))],ZA),iA(vt,Yt)};GA(aA,vt=>{l(xe)&&vt(DA)});var PA=CA(aA,2),Je=vt=>{var Yt=CTA(),rn=Mt(Yt),no=Mn=>{(function(Qt,fn){ft(fn,!1);var Te=M(fn,"editorState",8),Qi=$(),mi=$(),bn=$(),Ko=$(),Ot=$();pA(()=>k(Te()),()=>{var U;y(Qi,(U=Te())===null||U===void 0||(U=U.selection)===null||U===void 0||(U=U.main)===null||U===void 0?void 0:U.head)}),pA(()=>(l(Qi),k(Te())),()=>{var U;y(mi,l(Qi)!==void 0?(U=Te())===null||U===void 0||(U=U.doc)===null||U===void 0?void 0:U.lineAt(l(Qi)):void 0)}),pA(()=>l(mi),()=>{y(bn,l(mi)!==void 0?l(mi).number:void 0)}),pA(()=>(l(mi),l(Qi)),()=>{y(Ko,l(mi)!==void 0&&l(Qi)!==void 0?l(Qi)-l(mi).from+1:void 0)}),pA(()=>k(Te()),()=>{var U;y(Ot,(U=Te())===null||U===void 0||(U=U.selection)===null||U===void 0||(U=U.ranges)===null||U===void 0?void 0:U.reduce((q,Z)=>q+Z.to-Z.from,0))}),ln(),qt();var Nr=sTA(),Jn=W(Nr),Q=U=>{var q=nTA(),Z=W(q);we(()=>{var RA;return pt(Z,"Line: ".concat((RA=l(bn))!==null&&RA!==void 0?RA:""))}),iA(U,q)};GA(Jn,U=>{l(bn)!==void 0&&U(Q)});var m=CA(Jn,2),v=U=>{var q=oTA(),Z=W(q);we(()=>{var RA;return pt(Z,"Column: ".concat((RA=l(Ko))!==null&&RA!==void 0?RA:""))}),iA(U,q)};GA(m,U=>{l(Ko)!==void 0&&U(v)});var p=CA(m,2),F=U=>{var q=rTA(),Z=W(q);we(()=>{var RA;return pt(Z,"Selection: ".concat((RA=l(Ot))!==null&&RA!==void 0?RA:""," characters"))}),iA(U,q)};GA(p,U=>{l(Ot)!==void 0&&l(Ot)>0&&U(F)}),iA(Qt,Nr),mt()})(Mn,{get editorState(){return l(nA)}})};GA(rn,Mn=>{r()&&Mn(no)});var sn=CA(rn,2),Ji=Mn=>{pc(Mn,{type:"error",get icon(){return m1},get message(){return l($A),oA(()=>l($A).message)},get actions(){return l(i)},onClick:Un,onClose:oe})};GA(sn,Mn=>{l($A)&&Mn(Ji)});var bt=CA(sn,2),Li=Mn=>{var Qt=ZA(()=>[{icon:lsA,text:"Format",title:"Format JSON: add proper indentation and new lines (Ctrl+I)",onClick:kA},{icon:h4,text:"No thanks",title:"Close this message",onClick:()=>y(wA,!1)}]);pc(Mn,{type:"success",message:"Do you want to format the JSON?",get actions(){return l(Qt)},onClose:oe})};GA(bt,Mn=>{l($A),l(wA),k(brA),l(zA),oA(()=>!l($A)&&l(wA)&&brA(l(zA)))&&Mn(Li)}),SK(CA(bt,2),{get validationErrors(){return l(VA)},selectError:Le}),iA(vt,Yt)};GA(PA,vt=>{l(xe)||vt(Je)}),we(vt=>Ae=jt(ue,1,"jse-contents svelte-1pr65po",null,Ae,vt),[()=>({"jse-hidden":l(xe)})],ZA),iA(hA,re)},hn=hA=>{iA(hA,BTA())};return GA($i,hA=>{fA?hA(hn,!1):hA(yt)}),Qo(io,hA=>y(SA,hA),()=>l(SA)),we(hA=>Ci=jt(io,1,"jse-text-mode svelte-1pr65po",null,Ci,hA),[()=>({"no-main-menu":!o()})],ZA),iA(t,io),Ft(e,"focus",oe),Ft(e,"collapse",Dt),Ft(e,"expand",L),Ft(e,"patch",P),Ft(e,"handlePatch",X),Ft(e,"openTransformModal",MA),Ft(e,"refresh",ai),Ft(e,"flush",In),Ft(e,"validate",Ri),mt({focus:oe,collapse:Dt,expand:L,patch:P,handlePatch:X,openTransformModal:MA,refresh:ai,flush:In,validate:Ri})}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -3331,7 +3331,7 @@ button.jse-context-menu-button.svelte-1idfykj svg { .jse-inline-value.jse-highlight.jse-active.svelte-h57m0p { background-color: var(--jse-search-match-active-color, var(--jse-search-match-color, #ffe665)); outline: var(--jse-search-match-outline, 2px solid #e0be00); -}`);var ETA=vA('');Ut(`/* over all fonts, sizes, and colors */ +}`);var uTA=vA('');Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -3369,7 +3369,7 @@ button.jse-context-menu-button.svelte-1idfykj svg { } .jse-column-header.svelte-2i3vdx span.jse-column-sort-icon:where(.svelte-2i3vdx) { height: 1em; -}`);var QTA=vA(''),uTA=vA('');Ut(`/* over all fonts, sizes, and colors */ +}`);var hTA=vA(''),fTA=vA('');Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -3450,9 +3450,9 @@ button.jse-context-menu-button.svelte-1idfykj svg { } .jse-table-mode-welcome.svelte-17xl1jx .jse-space.jse-after:where(.svelte-17xl1jx) { flex: 2; -}`);var hTA=(t,e)=>e.onClick(),fTA=vA(`An empty document cannot be opened in table mode. You can go to tree mode instead, or paste - a JSON Array using Ctrl+V.`,1),mTA=(t,e,A)=>e.openJSONEditorModal(l(A)),pTA=(t,e,A)=>e.extractPath(l(A)),DTA=vA(''),wTA=vA('
            '),yTA=(t,e)=>e.onChangeMode(ir.tree),vTA=vA('
            ');function MTA(t,e){ft(e,!0);var A=Ja(()=>e.json?function(E){var u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2,h=[];return function w(x,R){Lo(x)&&R.length{w(x[D],R.concat(D))}),wo(x)&&h.push(R)}(E,[]),h}(e.json).slice(0,99).filter(E=>E.length>0):[]),i=Ja(()=>!Gi(l(A))),n=Ja(()=>e.json===void 0&&(e.text===""||e.text===void 0)),o=Ja(()=>l(i)?"Object with nested arrays":l(n)?"An empty document":Lo(e.json)?"An object":wo(e.json)?"An empty array":"A ".concat(gK(e.json,e.parser))),r=vTA();r.__click=[hTA,e];var s=CA(W(r),2),a=W(s),c=W(a),g=CA(a,2),I=W(g),C=E=>{iA(E,jr(`An object cannot be opened in table mode. You can open a nested array instead, or open the - document in tree mode.`))},d=(E,u)=>{var h=x=>{iA(x,fTA())},w=x=>{var R=jr();we(()=>{var D;return pt(R,"".concat((D=l(o))!==null&&D!==void 0?D:""," cannot be opened in table mode. You can open the document in tree mode instead."))}),iA(x,R)};GA(E,x=>{l(n)&&!e.readOnly?x(h):x(w,!1)},u)};GA(I,E=>{l(i)?E(C):E(d,!1)});var B=CA(g,2);jo(B,17,()=>l(A),cr,(E,u)=>{var h=wTA(),w=Ja(()=>function(O){return Ye(e.json,O).length}(l(u))),x=W(h),R=W(x),D=W(CA(R)),G=CA(x,2);G.__click=[mTA,e,u];var J=W(G),z=CA(G,2),K=O=>{var V=DTA();V.__click=[pTA,e,u],iA(O,V)};GA(z,O=>{e.readOnly||O(K)}),we(O=>{var V;pt(R,'"'.concat(O??"",'" ')),pt(D,"(".concat((V=l(w))!==null&&V!==void 0?V:""," ").concat(l(w)!==1?"items":"item",")")),pt(J,e.readOnly?"View":"Edit")},[()=>Ta(l(u))]),iA(E,h)}),CA(B,2).__click=[yTA,e],we(()=>pt(c,l(o))),iA(t,r),mt()}df(["click"]);Ut(`/* over all fonts, sizes, and colors */ +}`);var mTA=(t,e)=>e.onClick(),pTA=vA(`An empty document cannot be opened in table mode. You can go to tree mode instead, or paste + a JSON Array using Ctrl+V.`,1),DTA=(t,e,A)=>e.openJSONEditorModal(l(A)),wTA=(t,e,A)=>e.extractPath(l(A)),yTA=vA(''),vTA=vA('
            '),MTA=(t,e)=>e.onChangeMode(ir.tree),bTA=vA('
            ');function kTA(t,e){ft(e,!0);var A=Ja(()=>e.json?function(E){var u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2,h=[];return function w(x,R){Lo(x)&&R.length{w(x[D],R.concat(D))}),wo(x)&&h.push(R)}(E,[]),h}(e.json).slice(0,99).filter(E=>E.length>0):[]),i=Ja(()=>!Gi(l(A))),n=Ja(()=>e.json===void 0&&(e.text===""||e.text===void 0)),o=Ja(()=>l(i)?"Object with nested arrays":l(n)?"An empty document":Lo(e.json)?"An object":wo(e.json)?"An empty array":"A ".concat(gK(e.json,e.parser))),r=bTA();r.__click=[mTA,e];var s=CA(W(r),2),a=W(s),c=W(a),g=CA(a,2),I=W(g),C=E=>{iA(E,jr(`An object cannot be opened in table mode. You can open a nested array instead, or open the + document in tree mode.`))},d=(E,u)=>{var h=x=>{iA(x,pTA())},w=x=>{var R=jr();we(()=>{var D;return pt(R,"".concat((D=l(o))!==null&&D!==void 0?D:""," cannot be opened in table mode. You can open the document in tree mode instead."))}),iA(x,R)};GA(E,x=>{l(n)&&!e.readOnly?x(h):x(w,!1)},u)};GA(I,E=>{l(i)?E(C):E(d,!1)});var B=CA(g,2);jo(B,17,()=>l(A),cr,(E,u)=>{var h=vTA(),w=Ja(()=>function(O){return Ye(e.json,O).length}(l(u))),x=W(h),R=W(x),D=W(CA(R)),G=CA(x,2);G.__click=[DTA,e,u];var J=W(G),z=CA(G,2),K=O=>{var V=yTA();V.__click=[wTA,e,u],iA(O,V)};GA(z,O=>{e.readOnly||O(K)}),we(O=>{var V;pt(R,'"'.concat(O??"",'" ')),pt(D,"(".concat((V=l(w))!==null&&V!==void 0?V:""," ").concat(l(w)!==1?"items":"item",")")),pt(J,e.readOnly?"View":"Edit")},[()=>Ta(l(u))]),iA(E,h)}),CA(B,2).__click=[MTA,e],we(()=>pt(c,l(o))),iA(t,r),mt()}df(["click"]);Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -3487,7 +3487,7 @@ button.jse-context-menu-button.svelte-1idfykj svg { } .jse-column-header.svelte-fzj761:not(.jse-column-header.jse-readonly) { cursor: pointer; -}`);var bTA=vA('');Ut(`/* over all fonts, sizes, and colors */ +}`);var STA=vA('');Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -3628,7 +3628,7 @@ button.jse-context-menu-button.svelte-1idfykj svg { box-sizing: border-box; font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); font-size: var(--jse-font-size, 16px); -}`);var kTA=vA('
            '),STA=vA(''),RTA=vA(''),LTA=vA(' '),xTA=vA('
            '),NTA=vA('
            '),FTA=vA(''),_TA=vA(''),GTA=vA('
            ',1),KTA=vA(" ",1),UTA=vA(' ',1),JTA=vA('
            loading...
            '),YTA=vA('
            ',1);function TTA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=xr("jsoneditor:TableMode"),{openAbsolutePopup:r,closeAbsolutePopup:s}=cI("absolute-popup"),a=qaA(),c=h1(),g=h1(),I=typeof window>"u";o("isSSR:",I);var C=M(e,"readOnly",9),d=M(e,"externalContent",9),B=M(e,"externalSelection",9),E=M(e,"history",9),u=M(e,"truncateTextSize",9),h=M(e,"mainMenuBar",9),w=M(e,"escapeControlCharacters",9),x=M(e,"escapeUnicodeCharacters",9),R=M(e,"flattenColumns",9),D=M(e,"parser",9),G=M(e,"parseMemoizeOne",9),J=M(e,"validator",9),z=M(e,"validationParser",9),K=M(e,"indentation",9),O=M(e,"onChange",9),V=M(e,"onChangeMode",9),j=M(e,"onSelect",9),dA=M(e,"onUndo",9),fA=M(e,"onRedo",9),EA=M(e,"onRenderValue",9),IA=M(e,"onRenderMenu",9),SA=M(e,"onRenderContextMenu",9),nA=M(e,"onFocus",9),lA=M(e,"onBlur",9),wA=M(e,"onSortModal",9),VA=M(e,"onTransformModal",9),ie=M(e,"onJSONEditorModal",9),UA=$(void 0,!0),BA=$(void 0,!0),JA=$(void 0,!0),Xe=$(void 0,!0),We=$(void 0,!0);kK({onMount:ws,onDestroy:ig,getWindow:()=>Qf(l(BA)),hasFocus:()=>Se&&document.hasFocus()||CK(l(BA)),onFocus:()=>{Wt=!0,nA()&&nA()()},onBlur:()=>{Wt=!1,lA()&&lA()()}});var KA,tA=$(void 0,!0),OA=$(void 0,!0),gA=$(void 0,!0),zA=$(void 0,!0),xA=$(void 0,!0),Me=$(void 0,!0),LA=$(!1,!0),cA=$(!1,!0);function Gt(p){y(Me,(KA=p)?FaA(l(tA),KA.items):void 0)}function ct(p){return oe.apply(this,arguments)}function oe(){return(oe=_t(function*(p){y(MA,void 0),yield Xi(p)})).apply(this,arguments)}function Dt(){y(LA,!1),y(cA,!1),b()}var _e=$(1e4,!0),Re=$([],!0),St=$(void 0,!0),Se=!1,Wt=!1,L=$(!1,!0),T=$({},!0),P=$(600,!0),X=$(0,!0),kA=18;function le(p){y(MA,p)}function Ee(p){l(MA)&&p!==void 0&&(As(p,WC(l(MA)))&&As(p,nt(l(MA)))||(o("clearing selection: path does not exist anymore",l(MA)),y(MA,void 0)))}var NA=$(l(tA)!==void 0?GG({json:l(tA)}):void 0,!0),MA=$(tf(B())?B():void 0,!0),Ct=$(void 0,!0),$e=$(!1,!0);function XA(p){if(!C()){o("onSortByHeader",p);var F=p.sortDirection===Ag.desc?-1:1;Ht($aA(l(tA),[],p.path,F),(U,q)=>({state:q,sortedColumn:p}))}}ws(()=>{l(MA)&&Mo(nt(l(MA)))});var ot=$(void 0,!0);function Si(p){if(p.json!==void 0||p.text!==void 0){var F=l(tA)!==void 0&&p.json!==void 0;E().add({type:"tree",undo:{patch:F?[{op:"replace",path:"",value:p.json}]:void 0,json:p.json,text:p.text,documentState:p.documentState,textIsRepaired:p.textIsRepaired,selection:e0(p.selection),sortedColumn:p.sortedColumn},redo:{patch:F?[{op:"replace",path:"",value:l(tA)}]:void 0,json:l(tA),text:l(OA),documentState:l(NA),textIsRepaired:l($e),selection:e0(l(MA)),sortedColumn:l(Ct)}})}}var Zi=$([],!0),Oi=hE(VaA);function Le(p,F,U,q){fQ(()=>{var Z;try{Z=Oi(p,F,U,q)}catch(RA){Z=[{path:[],message:"Failed to validate: "+RA.message,severity:Og.warning}]}ri(Z,l(Zi))||(o("validationErrors changed:",Z),y(Zi,Z))},Z=>o("validationErrors updated in ".concat(Z," ms")))}function zi(){return o("validate"),l(gA)?{parseError:l(gA),isRepairable:!1}:(Le(l(tA),J(),D(),z()),Gi(l(Zi))?void 0:{validationErrors:l(Zi)})}function fi(p,F){if(o("patch",p,F),l(tA)===void 0)throw new Error("Cannot apply patch: no JSON");var U=l(tA),q={json:void 0,text:l(OA),documentState:l(NA),selection:e0(l(MA)),sortedColumn:l(Ct),textIsRepaired:l($e)},Z=NaA(l(tA),p),RA=paA(l(tA),l(NA),p),ee=bYA(l(Ct),p,l(Re)),ne=typeof F=="function"?F(RA.json,RA.documentState,l(MA)):void 0;return y(tA,ne?.json!==void 0?ne.json:RA.json),y(NA,ne?.state!==void 0?ne.state:RA.documentState),y(MA,ne?.selection!==void 0?ne.selection:l(MA)),y(Ct,ne?.sortedColumn!==void 0?ne.sortedColumn:ee),y(OA,void 0),y($e,!1),y(zA,void 0),y(xA,void 0),y(gA,void 0),E().add({type:"tree",undo:pe({patch:Z},q),redo:{patch:p,json:void 0,text:void 0,documentState:l(NA),selection:e0(l(MA)),sortedColumn:l(Ct),textIsRepaired:l($e)}}),{json:l(tA),previousJson:U,undo:Z,redo:p}}function Ht(p,F){o("handlePatch",p,F);var U={json:l(tA),text:l(OA)},q=fi(p,F);return Rt(U,q),q}function Rt(p,F){if((p.json!==void 0||p?.text!==void 0)&&O()){if(l(OA)!==void 0){var U={text:l(OA),json:void 0};O()(U,p,{contentErrors:zi(),patchResult:F})}else if(l(tA)!==void 0){var q={text:void 0,json:l(tA)};O()(q,p,{contentErrors:zi(),patchResult:F})}}}function Bi(p){o("pasted json as text",p),y(zA,p)}function Mi(p){o("pasted multiline text",{pastedText:p}),y(xA,p)}function Jt(p){var F=parseInt(p[0],10),U=[String(F+1),...p.slice(1)];return As(l(tA),U)?vi(U):vi(p)}function b(){o("focus"),l(Xe)&&(l(Xe).focus(),l(Xe).select())}function et(p){y(X,p.target.scrollTop)}function ai(){l(MA)||y(MA,function(){if(wo(l(tA))&&!Gi(l(tA))&&!Gi(l(Re)))return vi(["0",...l(Re)[0]])}())}function Wi(){if(l($e)&&l(tA)!==void 0){var p={json:l(tA),text:l(OA)},F={json:l(tA),documentState:l(NA),selection:l(MA),sortedColumn:l(Ct),text:l(OA),textIsRepaired:l($e)};y(OA,void 0),y($e,!1),Ee(l(tA)),Si(F),Rt(p,void 0)}return{json:l(tA),text:l(OA)}}function Xi(p){var{scrollToWhenVisible:F=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},U=l(LA)?O3:0,q=CsA(p,l(Re),T,kA),Z=q-l(X)+U+kA,RA=vn(p);if(o("scrollTo",{path:p,top:q,scrollTop:l(X),elem:RA}),!l(JA))return Promise.resolve();var ee=l(JA).getBoundingClientRect();if(RA&&!F){var ne=RA.getBoundingClientRect();if(ne.bottom>ee.top&&ne.top{a(RA,{container:l(JA),offset:Pe,duration:300,callback:()=>{xn(p),Oe()}})}:Oe=>{a(Z,{container:l(JA),offset:Pe,duration:300,callback:()=>{to(),xn(p),Oe()}})})}function xn(p){var F=vn(p);if(F&&l(JA)){var U=l(JA).getBoundingClientRect(),q=F.getBoundingClientRect();if(q.right>U.right){var Z=q.right-U.right;hc(JA,l(JA).scrollLeft+=Z)}if(q.leftPe){var Oe=Z-Pe;hc(JA,l(JA).scrollTop+=Oe)}if(qn0(p.slice(1),RA)),Z=q?p.slice(0,1).concat(q):p;return(F=(U=l(JA))===null||U===void 0?void 0:U.querySelector('td[data-path="'.concat(My(Z),'"]')))!==null&&F!==void 0?F:void 0}function In(p){var F,{anchor:U,left:q,top:Z,width:RA,height:ee,offsetTop:ne,offsetLeft:Pe,showTip:Oe}=p,ve=function(rA){var{json:HA,documentState:De,selection:fe,readOnly:Ie,onEditValue:dt,onEditRow:At,onToggleEnforceString:ui,onCut:Cn,onCopy:xi,onPaste:Yn,onRemove:Tt,onDuplicateRow:bo,onInsertBeforeRow:kn,onInsertAfterRow:oo,onRemoveRow:An}=rA,Lt=HA!==void 0,Ti=!!fe,xt=HA!==void 0&&fe?Ye(HA,nt(fe)):void 0,rt=Lt&&(Gn(fe)||Lr(fe)||Vi(fe)),Ai=!Ie&&Lt&&fe!==void 0&&Jy(fe),ho=Ai&&!Fo(xt),Fr=!Ie&&rt,Tn=fe!==void 0&&t0(HA,De,nt(fe));return[{type:"separator"},{type:"row",items:[{type:"column",items:[{type:"label",text:"Table cell:"},{type:"dropdown-button",main:{type:"button",onClick:()=>dt(),icon:EC,text:"Edit",title:"Edit the value (Double-click on the value)",disabled:!Ai},width:"11em",items:[{type:"button",icon:EC,text:"Edit",title:"Edit the value (Double-click on the value)",onClick:()=>dt(),disabled:!Ai},{type:"button",icon:Tn?iL:rL,text:"Enforce string",title:"Enforce keeping the value as string when it contains a numeric value",onClick:()=>ui(),disabled:!ho}]},{type:"dropdown-button",main:{type:"button",onClick:()=>Cn(!0),icon:BC,text:"Cut",title:"Cut selected contents, formatted with indentation (Ctrl+X)",disabled:!Fr},width:"10em",items:[{type:"button",icon:BC,text:"Cut formatted",title:"Cut selected contents, formatted with indentation (Ctrl+X)",onClick:()=>Cn(!0),disabled:Ie||!rt},{type:"button",icon:BC,text:"Cut compacted",title:"Cut selected contents, without indentation (Ctrl+Shift+X)",onClick:()=>Cn(!1),disabled:Ie||!rt}]},{type:"dropdown-button",main:{type:"button",onClick:()=>xi(!0),icon:G0,text:"Copy",title:"Copy selected contents, formatted with indentation (Ctrl+C)",disabled:!rt},width:"12em",items:[{type:"button",icon:G0,text:"Copy formatted",title:"Copy selected contents, formatted with indentation (Ctrl+C)",onClick:()=>xi(!1),disabled:!rt},{type:"button",icon:G0,text:"Copy compacted",title:"Copy selected contents, without indentation (Ctrl+Shift+C)",onClick:()=>xi(!1),disabled:!rt}]},{type:"button",onClick:()=>Yn(),icon:tL,text:"Paste",title:"Paste clipboard contents (Ctrl+V)",disabled:Ie||!Ti},{type:"button",onClick:()=>Tt(),icon:_5,text:"Remove",title:"Remove selected contents (Delete)",disabled:Ie||!rt}]},{type:"column",items:[{type:"label",text:"Table row:"},{type:"button",onClick:()=>At(),icon:EC,text:"Edit row",title:"Edit the current row",disabled:Ie||!Ti||!Lt},{type:"button",onClick:()=>bo(),icon:cL,text:"Duplicate row",title:"Duplicate the current row (Ctrl+D)",disabled:Ie||!Ti||!Lt},{type:"button",onClick:()=>kn(),icon:QC,text:"Insert before",title:"Insert a row before the current row",disabled:Ie||!Ti||!Lt},{type:"button",onClick:()=>oo(),icon:QC,text:"Insert after",title:"Insert a row after the current row",disabled:Ie||!Ti||!Lt},{type:"button",onClick:()=>An(),icon:_5,text:"Remove row",title:"Remove current row",disabled:Ie||!Ti||!Lt}]}]}]}({json:l(tA),documentState:l(NA),selection:l(MA),readOnly:C(),onEditValue:uo,onEditRow:Qn,onToggleEnforceString:Kn,onCut:Xo,onCopy:on,onPaste:Ri,onRemove:yt,onDuplicateRow:hA,onInsertBeforeRow:Ae,onInsertAfterRow:re,onRemoveRow:xe}),Ne=(F=SA()(ve))!==null&&F!==void 0?F:ve;if(Ne!==!1){var Yi={left:q,top:Z,offsetTop:ne,offsetLeft:Pe,width:RA,height:ee,anchor:U,closeOnOuterClick:!0,onClose:()=>{Se=!1,b()}};Se=!0;var H=r(ccA,{tip:Oe?"Tip: you can open this context menu via right-click or with Ctrl+Q":void 0,items:Ne,onRequestClose(){s(H),b()}},Yi)}}function qo(p){if(!Sr(l(MA)))if(p&&(p.stopPropagation(),p.preventDefault()),p&&p.type==="contextmenu"&&p.target!==l(Xe))In({left:p.clientX,top:p.clientY,width:A2,height:$0,showTip:!1});else{var F,U=(F=l(JA))===null||F===void 0?void 0:F.querySelector(".jse-table-cell.jse-selected-value");if(U)In({anchor:U,offsetTop:2,width:A2,height:$0,showTip:!1});else{var q,Z=(q=l(JA))===null||q===void 0?void 0:q.getBoundingClientRect();Z&&In({top:Z.top+2,left:Z.left+2,width:A2,height:$0,showTip:!1})}}}function Vo(p){In({anchor:QaA(p.target,"BUTTON"),offsetTop:0,width:A2,height:$0,showTip:!0})}function uo(){if(!C()&&l(MA)){var p=nt(l(MA));Fo(Ye(l(tA),p))?rn(p):y(MA,vi(p))}}function Qn(){!C()&&l(MA)&&rn(nt(l(MA)).slice(0,1))}function Kn(){if(!C()&&Vi(l(MA))){var p=l(MA).path,F=It(p),U=Ye(l(tA),p),q=!t0(l(tA),l(NA),p),Z=q?String(U):GQ(String(U),D());o("handleToggleEnforceString",{enforceString:q,value:U,updatedValue:Z}),Ht([{op:"replace",path:F,value:Z}],(RA,ee)=>({state:o7(l(tA),ee,p,{type:"value",enforceString:q})}))}}function $A(){return Ei.apply(this,arguments)}function Ei(){return(Ei=_t(function*(){if(o("apply pasted json",l(zA)),l(zA)){var{onPasteAsJson:p}=l(zA);p(),setTimeout(b)}})).apply(this,arguments)}function Ri(){return un.apply(this,arguments)}function un(){return(un=_t(function*(){try{DA(yield navigator.clipboard.readText())}catch(p){console.error(p),y(L,!0)}})).apply(this,arguments)}function Un(){return Zo.apply(this,arguments)}function Zo(){return(Zo=_t(function*(){o("apply pasted multiline text",l(xA)),l(xA)&&(DA(JSON.stringify(l(xA))),setTimeout(b))})).apply(this,arguments)}function Ci(){o("clear pasted json"),y(zA,void 0),b()}function io(){o("clear pasted multiline text"),y(xA,void 0),b()}function Wo(){V()(ir.text)}function Xo(p){return nr.apply(this,arguments)}function nr(){return(nr=_t(function*(p){yield icA({json:l(tA),selection:l(MA),indentation:p?K():void 0,readOnly:C(),parser:D(),onPatch:Ht})})).apply(this,arguments)}function on(){return $i.apply(this,arguments)}function $i(){return $i=_t(function*(){var p=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];l(tA)!==void 0&&(yield ncA({json:l(tA),selection:l(MA),indentation:p?K():void 0,parser:D()}))}),$i.apply(this,arguments)}function yt(){rcA({json:l(tA),text:l(OA),selection:l(MA),keepSelection:!0,readOnly:C(),onChange:O(),onPatch:Ht})}function hn(p){C()||(o("extract",{path:p}),Ht(RaA(l(tA),vi(p))))}function hA(){(function(p){var{json:F,selection:U,columns:q,readOnly:Z,onPatch:RA}=p;if(!Z&&F!==void 0&&U&&uQ(U)){var{rowIndex:ee,columnIndex:ne}=Xc(nt(U),q);Ys("duplicate row",{rowIndex:ee});var Pe=[String(ee)];RA(SaA(F,[Pe]),(Oe,ve)=>({state:ve,selection:vi(PC({rowIndex:ee({state:Yi,selection:vi(PC({rowIndex:Pe,columnIndex:ne},q))}))}})({json:l(tA),selection:l(MA),columns:l(Re),readOnly:C(),onPatch:Ht})}function xe(){(function(p){var{json:F,selection:U,columns:q,readOnly:Z,onPatch:RA}=p;if(!Z&&F!==void 0&&U&&uQ(U)){var{rowIndex:ee,columnIndex:ne}=Xc(nt(U),q);Ys("remove row",{rowIndex:ee}),RA(Ty([[String(ee)]]),(Pe,Oe)=>{var ve=ee0?ee-1:void 0,Ne=ve!==void 0?vi(PC({rowIndex:ve,columnIndex:ne},q)):void 0;return Ys("remove row new selection",{rowIndex:ee,newRowIndex:ve,newSelection:Ne}),{state:Oe,selection:Ne}})}})({json:l(tA),selection:l(MA),columns:l(Re),readOnly:C(),onPatch:Ht})}function ue(){return(ue=_t(function*(p){yield scA({char:p,selectInside:!1,json:l(tA),selection:l(MA),readOnly:C(),parser:D(),onPatch:Ht,onReplaceJson:PA,onSelect:le})})).apply(this,arguments)}function aA(p){var F;p.preventDefault(),DA((F=p.clipboardData)===null||F===void 0?void 0:F.getData("text/plain"))}function DA(p){p!==void 0&&ocA({clipboardText:p,json:l(tA),selection:l(MA),readOnly:C(),parser:D(),onPatch:Ht,onChangeText:Je,onPasteMultilineText:Mi,openRepairModal:no})}function PA(p,F){var U={json:l(tA),text:l(OA)},q={json:l(tA),documentState:l(NA),selection:l(MA),sortedColumn:l(Ct),text:l(OA),textIsRepaired:l($e)},Z=uc(p,l(NA)),RA=typeof F=="function"?F(p,Z,l(MA)):void 0;y(tA,RA?.json!==void 0?RA.json:p),y(NA,RA?.state!==void 0?RA.state:Z),y(MA,RA?.selection!==void 0?RA.selection:l(MA)),y(Ct,void 0),y(OA,void 0),y($e,!1),y(gA,void 0),Ee(l(tA)),Si(q),Rt(U,void 0)}function Je(p,F){o("handleChangeText");var U={json:l(tA),text:l(OA)},q={json:l(tA),documentState:l(NA),selection:l(MA),sortedColumn:l(Ct),text:l(OA),textIsRepaired:l($e)};try{y(tA,G()(p)),y(NA,uc(l(tA),l(NA))),y(OA,void 0),y($e,!1),y(gA,void 0)}catch(RA){try{y(tA,G()(Uc(p))),y(NA,uc(l(tA),l(NA))),y(OA,p),y($e,!0),y(gA,void 0)}catch{y(tA,void 0),y(NA,void 0),y(OA,p),y($e,!1),y(gA,l(OA)!==""?MQ(l(OA),RA.message||String(RA)):void 0)}}if(typeof F=="function"){var Z=F(l(tA),l(NA),l(MA));y(tA,Z?.json!==void 0?Z.json:l(tA)),y(NA,Z?.state!==void 0?Z.state:l(NA)),y(MA,Z?.selection!==void 0?Z.selection:l(MA))}Ee(l(tA)),Si(q),Rt(U,void 0)}function vt(p){o("select validation error",p),y(MA,vi(p.path)),Xi(p.path)}function Yt(p){if(l(tA)!==void 0){var{id:F,onTransform:U,onClose:q}=p,Z=p.rootPath||[];Se=!0,VA()({id:F||g,json:l(tA),rootPath:Z||[],onTransform:RA=>{U?U({operations:RA,json:l(tA),transformedJson:Ma(l(tA),RA)}):(o("onTransform",Z,RA),Ht(RA))},onClose:()=>{Se=!1,setTimeout(b),q&&q()}})}}function rn(p){o("openJSONEditorModal",{path:p}),Se=!0,ie()({content:{json:Ye(l(tA),p)},path:p,onPatch:Ht,onClose:()=>{Se=!1,setTimeout(b)}})}function no(p,F){y(We,{text:p,onParse:U=>Ef(U,q=>Bf(q,D())),onRepair:aaA,onApply:F,onClose:b})}function sn(){(function(p){C()||l(tA)===void 0||(Se=!0,wA()({id:c,json:l(tA),rootPath:p,onSort:F=>{var{operations:U,itemPath:q,direction:Z}=F;o("onSort",U,p,q,Z),Ht(U,(RA,ee)=>({state:ee,sortedColumn:{path:q,sortDirection:Z===-1?Ag.desc:Ag.asc}}))},onClose:()=>{Se=!1,setTimeout(b)}}))})([])}function Ji(){Yt({rootPath:[]})}function bt(p){o("openFind",{findAndReplace:p}),y(LA,!1),y(cA,!1),to(),y(LA,!0),y(cA,p)}function Li(){if(!C()&&E().canUndo){var p=E().undo();if(Uy(p)){var F={json:l(tA),text:l(OA)};y(tA,p.undo.patch?Ma(l(tA),p.undo.patch):p.undo.json),y(NA,p.undo.documentState),y(MA,p.undo.selection),y(Ct,p.undo.sortedColumn),y(OA,p.undo.text),y($e,p.undo.textIsRepaired),y(gA,void 0),o("undo",{item:p,json:l(tA)}),Rt(F,p.undo.patch&&p.redo.patch?{json:l(tA),previousJson:F.json,redo:p.undo.patch,undo:p.redo.patch}:void 0),b(),l(MA)&&Xi(nt(l(MA)),{scrollToWhenVisible:!1})}else dA()(p)}}function Mn(){if(!C()&&E().canRedo){var p=E().redo();if(Uy(p)){var F={json:l(tA),text:l(OA)};y(tA,p.redo.patch?Ma(l(tA),p.redo.patch):p.redo.json),y(NA,p.redo.documentState),y(MA,p.redo.selection),y(Ct,p.redo.sortedColumn),y(OA,p.redo.text),y($e,p.redo.textIsRepaired),y(gA,void 0),o("redo",{item:p,json:l(tA)}),Rt(F,p.undo.patch&&p.redo.patch?{json:l(tA),previousJson:F.json,redo:p.redo.patch,undo:p.undo.patch}:void 0),b(),l(MA)&&Xi(nt(l(MA)),{scrollToWhenVisible:!1})}else fA()(p)}}function Qt(p){y(P,p.getBoundingClientRect().height)}pA(()=>(k(w()),k(x())),()=>{y(UA,lK({escapeControlCharacters:w(),escapeUnicodeCharacters:x()}))}),pA(()=>l(LA),()=>{(function(p){if(l(JA)){var F=p?O3:-100;l(JA).scrollTo({top:hc(JA,l(JA).scrollTop+=F),left:l(JA).scrollLeft})}})(l(LA))}),pA(()=>k(d()),()=>{(function(p){var F={json:l(tA)},U=W3(p)?p.text!==l(OA):!ri(F.json,p.json);if(o("update external content",{isChanged:U}),U){var q={json:l(tA),documentState:l(NA),selection:l(MA),sortedColumn:l(Ct),text:l(OA),textIsRepaired:l($e)};if(W3(p))try{y(tA,G()(p.text)),y(NA,uc(l(tA),l(NA))),y(OA,p.text),y($e,!1),y(gA,void 0)}catch(Z){try{y(tA,G()(Uc(p.text))),y(NA,uc(l(tA),l(NA))),y(OA,p.text),y($e,!0),y(gA,void 0)}catch{y(tA,void 0),y(NA,void 0),y(OA,p.text),y($e,!1),y(gA,l(OA)!==""?MQ(l(OA),Z.message||String(Z)):void 0)}}else y(tA,p.json),y(NA,uc(l(tA),l(NA))),y(OA,void 0),y($e,!1),y(gA,void 0);Ee(l(tA)),y(Ct,void 0),Si(q)}})(d())}),pA(()=>k(B()),()=>{(function(p){ri(l(MA),p)||(o("applyExternalSelection",{selection:l(MA),externalSelection:p}),tf(p)&&y(MA,p))})(B())}),pA(()=>(l(Re),l(tA),k(R()),l(_e)),()=>{y(Re,wo(l(tA))?function(p,F){var U=new Set(F.map(It)),q=new Set(p.map(It));for(var Z of U)q.has(Z)||U.delete(Z);for(var RA of q)U.has(RA)||U.add(RA);return[...U].map(xs)}(wYA(l(tA),R(),l(_e)),l(Re)):[])}),pA(()=>(l(tA),l(Re)),()=>{y(St,!(!l(tA)||Gi(l(Re))))}),pA(()=>(l(tA),l(_e)),()=>{y(A,Array.isArray(l(tA))&&l(tA).length>l(_e))}),pA(()=>(l(X),l(P),l(tA),l(LA),O3),()=>{y(i,yYA(l(X),l(P),l(tA),T,kA,l(LA)?O3:0))}),pA(()=>l(tA),()=>{l(tA),l(JA)&&l(JA).scrollTo({top:l(JA).scrollTop,left:l(JA).scrollLeft})}),pA(()=>l(MA),()=>{var p;p=l(MA),ri(p,B())||(o("onSelect",p),j()(p))}),pA(()=>(k(C()),k(u()),k(D()),l(UA),l(tA),l(NA),k(EA())),()=>{y(ot,{mode:ir.table,readOnly:C(),truncateTextSize:u(),parser:D(),normalization:l(UA),getJson:()=>l(tA),getDocumentState:()=>l(NA),findElement:vn,findNextInside:Jt,focus:b,onPatch:(p,F)=>Ht(function(U,q){return U.flatMap(Z=>{if(V8(Z)){var RA=xs(Z.path);if(RA.length>0){for(var ee=[Z],ne=yi(RA);ne.length>0&&!As(q,ne);)ee.unshift({op:"add",path:It(ne),value:{}}),ne=yi(ne);return ee}}return Z})}(p,l(tA)),F),onSelect:le,onFind:bt,onPasteJson:Bi,onRenderValue:EA()})}),pA(()=>(l(tA),k(J()),k(D()),k(z())),()=>{Le(l(tA),J(),D(),z())}),pA(()=>(l(Zi),l(Re)),()=>{y(n,vYA(l(Zi),l(Re)))}),ln(),qt(!0);var fn=YTA();ce("mousedown",i2,function(p){!KQ(p.target,F=>F===l(BA))&&Sr(l(MA))&&(o("click outside the editor, exit edit mode"),y(MA,e0(l(MA))),Wt&&l(Xe)&&(l(Xe).focus(),l(Xe).blur()),o("blur (outside editor)"),l(Xe)&&l(Xe).blur())});var Te,Qi=Mt(fn),mi=W(Qi),bn=p=>{(function(F,U){ft(U,!1);var q=M(U,"containsValidArray",9),Z=M(U,"readOnly",9),RA=M(U,"showSearch",13,!1),ee=M(U,"history",9),ne=M(U,"onSort",9),Pe=M(U,"onTransform",9),Oe=M(U,"onContextMenu",9),ve=M(U,"onUndo",9),Ne=M(U,"onRedo",9),Yi=M(U,"onRenderMenu",9);function H(){RA(!RA())}var rA=$(void 0,!0),HA=$(void 0,!0);pA(()=>(k(Z()),k(ne()),k(q()),k(Pe()),k(Oe()),k(ve()),k(ee()),k(Ne())),()=>{y(rA,Z()?[{type:"space"}]:[{type:"button",icon:Q4,title:"Sort",className:"jse-sort",onClick:ne(),disabled:Z()||!q()},{type:"button",icon:d4,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:Pe(),disabled:Z()||!q()},{type:"button",icon:u4,title:"Search (Ctrl+F)",className:"jse-search",onClick:H,disabled:!q()},{type:"button",icon:sL,title:EK,className:"jse-contextmenu",onClick:Oe()},{type:"separator"},{type:"button",icon:K5,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:ve(),disabled:!ee().canUndo},{type:"button",icon:G5,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:Ne(),disabled:!ee().canRedo},{type:"space"}])}),pA(()=>(k(Yi()),l(rA)),()=>{y(HA,Yi()(l(rA))||l(rA))}),ln(),qt(!0),l7(F,{get items(){return l(HA)}}),mt()})(p,{get containsValidArray(){return l(St)},get readOnly(){return C()},get history(){return E()},onSort:sn,onTransform:Ji,onUndo:Li,onRedo:Mn,onContextMenu:Vo,get onRenderMenu(){return IA()},get showSearch(){return l(LA)},set showSearch(F){y(LA,F)},$$legacy:!0})};GA(mi,p=>{h()&&p(bn)});var Ko=CA(mi,2),Ot=p=>{var F=UTA(),U=Mt(F),q=W(U);q.readOnly=!0,Qo(q,ne=>y(Xe,ne),()=>l(Xe));var Z=CA(U,2),RA=ne=>{var Pe=GTA(),Oe=Mt(Pe);AcA(W(Oe),{get json(){return l(tA)},get documentState(){return l(NA)},get parser(){return D()},get showSearch(){return l(LA)},get showReplace(){return l(cA)},get readOnly(){return C()},get columns(){return l(Re)},onSearch:Gt,onFocus:ct,onPatch:Ht,onClose:Dt});var ve=CA(Oe,2),Ne=W(ve),Yi=W(Ne),H=W(Yi),rA=W(H),HA=W(rA),De=rt=>{var Ai=_o(),ho=ZA(()=>(k(lQ),l(n),oA(()=>{var ko;return lQ([],(ko=l(n))===null||ko===void 0?void 0:ko.root)}))),Fr=Mt(Ai),Tn=ko=>{var qr=kTA();wQ(W(qr),{get validationError(){return l(ho)},get onExpand(){return $c}}),iA(ko,qr)};GA(Fr,ko=>{l(ho)&&ko(Tn)}),iA(rt,Ai)};GA(HA,rt=>{k(Gi),l(n),oA(()=>{var Ai;return!Gi((Ai=l(n))===null||Ai===void 0?void 0:Ai.root)})&&rt(De)});var fe=CA(rA);jo(fe,1,()=>l(Re),cr,(rt,Ai)=>{var ho=STA();(function(Fr,Tn){ft(Tn,!1);var ko=$(void 0,!0),qr=$(void 0,!0),g0=$(void 0,!0),Ha=M(Tn,"path",9),ng=M(Tn,"sortedColumn",9),Wg=M(Tn,"readOnly",9),og=M(Tn,"onSort",9);pA(()=>(k(Ha()),Ta),()=>{y(ko,Gi(Ha())?"values":Ta(Ha()))}),pA(()=>(k(ng()),k(Ha())),()=>{var Zn;y(qr,ng()&&ri(Ha(),(Zn=ng())===null||Zn===void 0?void 0:Zn.path)?ng().sortDirection:void 0)}),pA(()=>(l(qr),RrA),()=>{y(g0,l(qr)?RrA[l(qr)]:void 0)}),ln(),qt(!0);var Vr,Zr=uTA(),Oa=W(Zr),l0=W(Oa),za=CA(Oa,2),Uo=Zn=>{var $o=QTA(),Xg=W($o),gd=ZA(()=>(l(qr),k(Ag),k(Nl),k(oL),oA(()=>l(qr)===Ag.asc?Nl:oL)));Ui(Xg,{get data(){return l(gd)}}),we(()=>gn($o,"title","Currently sorted in ".concat(l(g0)," order"))),iA(Zn,$o)};GA(za,Zn=>{l(qr)!==void 0&&Zn(Uo)}),we((Zn,$o)=>{Vr=jt(Zr,1,"jse-column-header svelte-2i3vdx",null,Vr,Zn),gn(Zr,"title",Wg()?l(ko):l(ko)+" (Click to sort the data by this column)"),pt(l0,$o)},[()=>({"jse-readonly":Wg()}),()=>(k(X0),l(ko),k(50),oA(()=>X0(l(ko),50)))],ZA),ce("click",Zr,function(){Wg()||og()({path:Ha(),sortDirection:l(qr)===Ag.asc?Ag.desc:Ag.asc})}),iA(Fr,Zr),mt()})(W(ho),{get path(){return l(Ai)},get sortedColumn(){return l(Ct)},get readOnly(){return C()},onSort:XA}),iA(rt,ho)});var Ie=CA(fe),dt=rt=>{var Ai=RTA(),ho=W(Ai),Fr=ZA(()=>(l(tA),oA(()=>Array.isArray(l(tA))?l(tA).length:0)));(function(Tn,ko){ft(ko,!1);var qr=M(ko,"count",9),g0=M(ko,"maxSampleCount",9),Ha=M(ko,"readOnly",9),ng=M(ko,"onRefresh",9);qt(!0);var Wg,og=bTA();Ui(W(og),{get data(){return vX}}),we(Vr=>{Wg=jt(og,1,"jse-column-header svelte-fzj761",null,Wg,Vr),gn(og,"title","The Columns are created by sampling ".concat(g0()," items out of ").concat(qr(),". ")+"If you're missing a column, click here to sample all of the items instead of a subset. This is slower.")},[()=>({"jse-readonly":Ha()})],ZA),ce("click",og,()=>ng()()),iA(Tn,og),mt()})(ho,{get count(){return l(Fr)},get maxSampleCount(){return l(_e)},get readOnly(){return C()},onRefresh:()=>y(_e,1/0)}),iA(rt,Ai)};GA(Ie,rt=>{l(A)&&rt(dt)});var At,ui,Cn=CA(H),xi=W(Cn),Yn=CA(Cn);jo(Yn,1,()=>(l(i),oA(()=>l(i).visibleItems)),cr,(rt,Ai,ho)=>{var Fr=_TA(),Tn=ZA(()=>(l(i),oA(()=>l(i).startIndex+ho))),ko=ZA(()=>(l(n),k(l(Tn)),oA(()=>l(n).rows[l(Tn)]))),qr=ZA(()=>(k(lQ),k(l(Tn)),k(l(ko)),oA(()=>{var Vr;return lQ([String(l(Tn))],(Vr=l(ko))===null||Vr===void 0?void 0:Vr.row)}))),g0=ZA(()=>(k($l),l(tA),l(Me),k(l(Tn)),oA(()=>$l(l(tA),l(Me),[String(l(Tn))])))),Ha=W(Fr);XsA(Ha,()=>l(Tn),Vr=>{var Zr=LTA(),Oa=W(Zr),l0=CA(Oa),za=Uo=>{wQ(Uo,{get validationError(){return l(qr)},get onExpand(){return $c}})};GA(l0,Uo=>{l(qr)&&Uo(za)}),Ts(Zr,(Uo,Zn)=>wy?.(Uo,Zn),()=>Uo=>function(Zn,$o){T[$o]=Zn.getBoundingClientRect().height}(Uo,l(Tn))),we(()=>{var Uo;return pt(Oa,"".concat((Uo=l(Tn))!==null&&Uo!==void 0?Uo:""," "))}),iA(Vr,Zr)});var ng=CA(Ha);jo(ng,1,()=>l(Re),cr,(Vr,Zr,Oa,l0)=>{var za,Uo=NTA(),Zn=ZA(()=>(k(l(Tn)),l(Zr),oA(()=>[String(l(Tn))].concat(l(Zr))))),$o=ZA(()=>(k(Ye),l(Ai),l(Zr),oA(()=>Ye(l(Ai),l(Zr))))),Xg=ZA(()=>(k(Vi),l(MA),k(n0),k(l(Zn)),oA(()=>Vi(l(MA))&&n0(l(MA).path,l(Zn))))),gd=ZA(()=>(k(l(ko)),oA(()=>{var gr;return(gr=l(ko))===null||gr===void 0?void 0:gr.columns[Oa]}))),ld=ZA(()=>(k(lQ),k(l(Zn)),k(l(gd)),oA(()=>lQ(l(Zn),l(gd))))),jQ=W(Uo),Id=W(jQ),qQ=gr=>{var sa=ZA(()=>(k(Hy),k($l),l(Ai),k(l(g0)),l(Zr),oA(()=>Hy($l(l(Ai),l(g0),l(Zr)))))),VQ=ZA(()=>(k(l(sa)),oA(()=>!!l(sa)&&l(sa).some(EI=>EI.active)))),ZQ=ZA(()=>(k(Gi),k(l(sa)),oA(()=>!Gi(l(sa)))));(function(EI,as){ft(as,!1);var WQ=M(as,"path",9),LU=M(as,"value",9),xU=M(as,"parser",9),WlA=M(as,"isSelected",9),XlA=M(as,"containsSearchResult",9),$lA=M(as,"containsActiveSearchResult",9),A0A=M(as,"onEdit",9);qt(!0);var NU,Nf=ETA(),e0A=W(Nf);we((XQ,t0A)=>{NU=jt(Nf,1,"jse-inline-value svelte-h57m0p",null,NU,XQ),pt(e0A,t0A)},[()=>({"jse-selected":WlA(),"jse-highlight":XlA(),"jse-active":$lA()}),()=>(k(X0),k(xU()),k(LU()),k(50),oA(()=>{var XQ;return X0((XQ=xU().stringify(LU()))!==null&&XQ!==void 0?XQ:"",50)}))],ZA),ce("dblclick",Nf,()=>A0A()(WQ())),iA(EI,Nf),mt()})(gr,{get path(){return l(Zn)},get value(){return l($o)},get parser(){return D()},get isSelected(){return l(Xg)},get containsSearchResult(){return l(ZQ)},get containsActiveSearchResult(){return l(VQ)},onEdit:rn})},hv=gr=>{var sa=ZA(()=>(k($l),l(tA),l(Me),k(l(Zn)),oA(()=>{var as;return(as=$l(l(tA),l(Me),l(Zn)))===null||as===void 0?void 0:as.searchResults}))),VQ=ZA(()=>l($o)!==void 0?l($o):""),ZQ=ZA(()=>(k(t0),l(tA),l(NA),k(l(Zn)),oA(()=>t0(l(tA),l(NA),l(Zn))))),EI=ZA(()=>l(Xg)?l(MA):void 0);XaA(gr,{get path(){return l(Zn)},get value(){return l(VQ)},get enforceString(){return l(ZQ)},get selection(){return l(EI)},get searchResultItems(){return l(sa)},get context(){return l(ot)}})};GA(Id,gr=>{k(Fo),k(l($o)),oA(()=>Fo(l($o)))?gr(qQ):gr(hv,!1)});var fv=CA(Id),mv=gr=>{var sa=xTA();P1(W(sa),{selected:!0,onContextMenu:In}),iA(gr,sa)};GA(fv,gr=>{k(C()),k(l(Xg)),k(Sr),l(MA),oA(()=>!C()&&l(Xg)&&!Sr(l(MA)))&&gr(mv)});var $g=CA(jQ,2),BI=gr=>{wQ(gr,{get validationError(){return l(ld)},get onExpand(){return $c}})};GA($g,gr=>{l(ld)&&gr(BI)}),we((gr,sa)=>{gn(Uo,"data-path",gr),za=jt(jQ,1,"jse-value-outer svelte-u14cgx",null,za,sa)},[()=>(k(My),k(l(Zn)),oA(()=>My(l(Zn)))),()=>({"jse-selected-value":l(Xg)})],ZA),iA(Vr,Uo)});var Wg=CA(ng),og=Vr=>{iA(Vr,FTA())};GA(Wg,Vr=>{l(A)&&Vr(og)}),iA(rt,Fr)});var Tt,bo=W(CA(Yn));Qo(ve,rt=>y(JA,rt),()=>l(JA)),Ts(ve,(rt,Ai)=>wy?.(rt,Ai),()=>Qt),rs(()=>ce("scroll",ve,et));var kn=CA(ve,2),oo=rt=>{var Ai=ZA(()=>(l(zA),oA(()=>"You pasted a JSON ".concat(Array.isArray(l(zA).contents)?"array":"object"," as text")))),ho=ZA(()=>[{icon:_0,text:"Paste as JSON instead",title:"Paste the text as JSON instead of a single value",onMouseDown:$A},{text:"Leave as is",title:"Keep the pasted content as a single value",onClick:Ci}]);pc(rt,{type:"info",get message(){return l(Ai)},get actions(){return l(ho)}})};GA(kn,rt=>{l(zA)&&rt(oo)});var An=CA(kn,2),Lt=rt=>{var Ai=ZA(()=>[{icon:_0,text:"Paste as string instead",title:"Paste the clipboard data as a single string value instead of an array",onClick:Un},{text:"Leave as is",title:"Keep the pasted array",onClick:io}]);pc(rt,{type:"info",message:"Multiline text was pasted as array",get actions(){return l(Ai)}})};GA(An,rt=>{l(xA)&&rt(Lt)});var Ti=CA(An,2),xt=rt=>{var Ai=ZA(()=>C()?[]:[{icon:U5,text:"Ok",title:"Accept the repaired document",onClick:Wi},{icon:B4,text:"Repair manually instead",title:"Leave the document unchanged and repair it manually instead",onClick:Wo}]);pc(rt,{type:"success",message:"The loaded JSON document was invalid but is successfully repaired.",get actions(){return l(Ai)},onClose:b})};GA(Ti,rt=>{l($e)&&rt(xt)}),SK(CA(Ti,2),{get validationErrors(){return l(Zi)},selectError:vt}),we((rt,Ai,ho)=>{At=jt(Cn,1,"jse-table-invisible-start-section svelte-u14cgx",null,At,rt),gn(xi,"colspan",(l(Re),oA(()=>l(Re).length))),ui=eg(xi,"",ui,Ai),gn(bo,"colspan",(l(Re),oA(()=>l(Re).length))),Tt=eg(bo,"",Tt,ho)},[()=>({"jse-search-box-background":l(LA)}),()=>({height:(l(i),oA(()=>l(i).startHeight+"px"))}),()=>({height:(l(i),oA(()=>l(i).endHeight+"px"))})],ZA),iA(ne,Pe)},ee=(ne,Pe)=>{var Oe=Ne=>{var Yi=KTA(),H=Mt(Yi),rA=ZA(()=>C()?[]:[{icon:B4,text:"Repair manually",title:'Open the document in "code" mode and repair it manually',onClick:Wo}]);pc(H,{type:"error",message:"The loaded JSON document is invalid and could not be repaired automatically.",get actions(){return l(rA)}}),acA(CA(H,2),{get text(){return l(OA)},get json(){return l(tA)},get indentation(){return K()},get parser(){return D()}}),iA(Ne,Yi)},ve=Ne=>{MTA(Ne,{get text(){return l(OA)},get json(){return l(tA)},get readOnly(){return C()},get parser(){return D()},openJSONEditorModal:rn,extractPath:hn,get onChangeMode(){return V()},onClick:()=>{b()}})};GA(ne,Ne=>{l(gA)&&l(OA)!==void 0&&l(OA)!==""?Ne(Oe):Ne(ve,!1)},Pe)};GA(Z,ne=>{l(St)?ne(RA):ne(ee,!1)}),ce("paste",q,aA),iA(p,F)},Nr=p=>{iA(p,JTA())};GA(Ko,p=>{I?p(Nr,!1):p(Ot)}),Qo(Qi,p=>y(BA,p),()=>l(BA));var Jn=CA(Qi,2),Q=p=>{ZaA(p,{onClose:()=>y(L,!1)})};GA(Jn,p=>{l(L)&&p(Q)});var m=CA(Jn,2),v=p=>{WaA(p,AI(()=>l(We),{onClose:()=>{var F;(F=l(We))===null||F===void 0||F.onClose(),y(We,void 0)}}))};return GA(m,p=>{l(We)&&p(v)}),we(p=>Te=jt(Qi,1,"jse-table-mode svelte-u14cgx",null,Te,p),[()=>({"no-main-menu":!h()})],ZA),ce("mousedown",Qi,function(p){if(p.buttons===1||p.buttons===2){var F=p.target;F.isContentEditable||b();var U=uaA(F);if(U){if(Sr(l(MA))&&nf(l(tA),l(MA),U))return;y(MA,vi(U)),p.preventDefault()}}}),ce("keydown",Qi,function(p){var F=s2(p);if(o("keydown",{combo:F,key:p.key}),F==="Ctrl+X"&&(p.preventDefault(),Xo(!0)),F==="Ctrl+Shift+X"&&(p.preventDefault(),Xo(!1)),F==="Ctrl+C"&&(p.preventDefault(),on(!0)),F==="Ctrl+Shift+C"&&(p.preventDefault(),on(!1)),F==="Ctrl+D"&&(p.preventDefault(),hA()),F!=="Delete"&&F!=="Backspace"||(p.preventDefault(),yt()),F==="Insert"&&p.preventDefault(),F==="Ctrl+A"&&p.preventDefault(),F==="Ctrl+Q"&&qo(p),F==="ArrowLeft"&&(p.preventDefault(),ai(),l(MA))){var U=function(Pe,Oe){var{rowIndex:ve,columnIndex:Ne}=Xc(nt(Oe),Pe);return Ne>0?vi(PC({rowIndex:ve,columnIndex:Ne-1},Pe)):Oe}(l(Re),l(MA));y(MA,U),Mo(nt(U))}if(F==="ArrowRight"&&(p.preventDefault(),ai(),l(MA))){var q=function(Pe,Oe){var{rowIndex:ve,columnIndex:Ne}=Xc(nt(Oe),Pe);return Ne0?vi(PC({rowIndex:ve-1,columnIndex:Ne},Pe)):Oe}(l(Re),l(MA));y(MA,Z),Mo(nt(Z))}if(F==="ArrowDown"&&(p.preventDefault(),ai(),l(MA))){var RA=function(Pe,Oe,ve){var{rowIndex:Ne,columnIndex:Yi}=Xc(nt(ve),Oe);return Ney(UA,L)}).get()),BA=$(a());function JA(L){if(GrA(L)){y(BA,L.undo.mode);var T=l(UA).items(),P=T.findIndex(kA=>kA===L),X=P!==-1?T[P-1]:void 0;ie("handleUndo",{index:P,item:L,items:T,prevItem:X}),X&&i(X.redo.selection),J()(l(BA))}}function Xe(L){if(GrA(L)){y(BA,L.redo.mode);var T=l(UA).items(),P=T.findIndex(kA=>kA===L),X=P!==-1?T[P+1]:void 0;ie("handleRedo",{index:P,item:L,items:T,nextItem:X}),X&&i(X.undo.selection),J()(l(BA))}}var We=$(),KA={type:"separator"},tA=$(),OA=$();function gA(L){if(l(lA))return l(lA).patch(L);if(l(wA))return l(wA).patch(L);if(l(VA))return l(VA).patch(L);throw new Error('Method patch is not available in mode "'.concat(l(BA),'"'))}function zA(L,T){if(l(lA))return l(lA).expand(L,T);if(l(VA))return l(VA).expand(L,T);throw new Error('Method expand is not available in mode "'.concat(l(BA),'"'))}function xA(L,T){if(l(lA))return l(lA).collapse(L,T);if(l(VA))return l(VA).collapse(L,T);throw new Error('Method collapse is not available in mode "'.concat(l(BA),'"'))}function Me(L){if(l(VA))l(VA).openTransformModal(L);else if(l(lA))l(lA).openTransformModal(L);else{if(!l(wA))throw new Error('Method transform is not available in mode "'.concat(l(BA),'"'));l(wA).openTransformModal(L)}}function LA(){if(l(VA))return l(VA).validate();if(l(lA))return l(lA).validate();if(l(wA))return l(wA).validate();throw new Error('Method validate is not available in mode "'.concat(l(BA),'"'))}function cA(){return l(lA)?l(lA).acceptAutoRepair():A()}function Gt(L){if(l(lA))return l(lA).scrollTo(L);if(l(wA))return l(wA).scrollTo(L);throw new Error('Method scrollTo is not available in mode "'.concat(l(BA),'"'))}function ct(L){if(l(lA))return l(lA).findElement(L);if(l(wA))return l(wA).findElement(L);throw new Error('Method findElement is not available in mode "'.concat(l(BA),'"'))}function oe(){l(VA)?l(VA).focus():l(lA)?l(lA).focus():l(wA)&&l(wA).focus()}function Dt(){return _e.apply(this,arguments)}function _e(){return(_e=_t(function*(){l(VA)&&(yield l(VA).refresh())})).apply(this,arguments)}pA(()=>k(a()),()=>{(function(L){if(L!==l(BA)){var T={type:"mode",undo:{mode:l(BA),selection:void 0},redo:{mode:L,selection:void 0}};l(BA)==="text"&&l(VA)&&l(VA).flush(),ie("add history item",T),l(UA).add(T),y(BA,L)}})(a())}),pA(()=>(l(BA),k(J())),()=>{y(We,[{type:"button",text:"text",title:"Switch to text mode (current mode: ".concat(l(BA),")"),className:"jse-group-button jse-first"+(l(BA)===ir.text?" jse-selected":""),onClick:()=>J()(ir.text)},{type:"button",text:"tree",title:"Switch to tree mode (current mode: ".concat(l(BA),")"),className:"jse-group-button "+(l(BA)===ir.tree?" jse-selected":""),onClick:()=>J()(ir.tree)},{type:"button",text:"table",title:"Switch to table mode (current mode: ".concat(l(BA),")"),className:"jse-group-button jse-last"+(l(BA)===ir.table?" jse-selected":""),onClick:()=>J()(ir.table)}])}),pA(()=>(l(We),k(V()),l(BA),k(D()),k(n())),()=>{y(tA,L=>{var T=_G(L[0])?l(We).concat(L):l(We).concat(KA,L),P=g4(T);return V()(T,{mode:l(BA),modal:D(),readOnly:n()})||P})}),pA(()=>(k(j()),l(BA),k(D()),k(n()),k(i())),()=>{y(OA,L=>{var T,P=g4(L);return(T=j()(L,{mode:l(BA),modal:D(),readOnly:n(),selection:i()}))!==null&&T!==void 0?T:!n()&&P})}),ln(),qt();var Re=_o(),St=Mt(Re),Se=L=>{Qo(BTA(L,{get externalContent(){return A()},get externalSelection(){return i()},get history(){return l(UA)},get readOnly(){return n()},get indentation(){return o()},get tabSize(){return r()},get mainMenuBar(){return c()},get statusBar(){return I()},get askToFormat(){return C()},get escapeUnicodeCharacters(){return B()},get parser(){return u()},get validator(){return w()},get validationParser(){return x()},get onChange(){return G()},get onChangeMode(){return J()},get onSelect(){return z()},onUndo:JA,onRedo:Xe,get onError(){return dA()},get onFocus(){return fA()},get onBlur(){return EA()},get onRenderMenu(){return l(tA)},get onSortModal(){return IA()},get onTransformModal(){return SA()},$$legacy:!0}),T=>y(VA,T),()=>l(VA))},Wt=(L,T)=>{var P=kA=>{Qo(TTA(kA,{get externalContent(){return A()},get externalSelection(){return i()},get history(){return l(UA)},get readOnly(){return n()},get truncateTextSize(){return s()},get mainMenuBar(){return c()},get escapeControlCharacters(){return d()},get escapeUnicodeCharacters(){return B()},get flattenColumns(){return E()},get parser(){return u()},get parseMemoizeOne(){return h()},get validator(){return w()},get validationParser(){return x()},get indentation(){return o()},get onChange(){return G()},get onChangeMode(){return J()},get onSelect(){return z()},onUndo:JA,onRedo:Xe,get onRenderValue(){return K()},get onFocus(){return fA()},get onBlur(){return EA()},get onRenderMenu(){return l(tA)},get onRenderContextMenu(){return l(OA)},get onSortModal(){return IA()},get onTransformModal(){return SA()},get onJSONEditorModal(){return nA()},$$legacy:!0}),le=>y(wA,le),()=>l(wA))},X=kA=>{Qo($G(kA,{get externalContent(){return A()},get externalSelection(){return i()},get history(){return l(UA)},get readOnly(){return n()},get indentation(){return o()},get truncateTextSize(){return s()},get mainMenuBar(){return c()},get navigationBar(){return g()},get escapeControlCharacters(){return d()},get escapeUnicodeCharacters(){return B()},get parser(){return u()},get parseMemoizeOne(){return h()},get validator(){return w()},get validationParser(){return x()},get pathParser(){return R()},get onError(){return dA()},get onChange(){return G()},get onChangeMode(){return J()},get onSelect(){return z()},onUndo:JA,onRedo:Xe,get onRenderValue(){return K()},get onClassName(){return O()},get onFocus(){return fA()},get onBlur(){return EA()},get onRenderMenu(){return l(tA)},get onRenderContextMenu(){return l(OA)},get onSortModal(){return IA()},get onTransformModal(){return SA()},get onJSONEditorModal(){return nA()},$$legacy:!0}),le=>y(lA,le),()=>l(lA))};GA(L,kA=>{l(BA),k(ir),oA(()=>l(BA)===ir.table)?kA(P):kA(X,!1)},T)};return GA(St,L=>{l(BA),k(ir),oA(()=>l(BA)===ir.text||String(l(BA))==="code")?L(Se):L(Wt,!1)}),iA(t,Re),Ft(e,"patch",gA),Ft(e,"expand",zA),Ft(e,"collapse",xA),Ft(e,"transform",Me),Ft(e,"validate",LA),Ft(e,"acceptAutoRepair",cA),Ft(e,"scrollTo",Gt),Ft(e,"findElement",ct),Ft(e,"focus",oe),Ft(e,"refresh",Dt),mt({patch:gA,expand:zA,collapse:xA,transform:Me,validate:LA,acceptAutoRepair:cA,scrollTo:Gt,findElement:ct,focus:oe,refresh:Dt})}Ut(`/* over all fonts, sizes, and colors */ +}`);var RTA=vA('
            '),LTA=vA(''),xTA=vA(''),NTA=vA(' '),FTA=vA('
            '),_TA=vA('
            '),GTA=vA(''),KTA=vA(''),UTA=vA('
            ',1),JTA=vA(" ",1),YTA=vA(' ',1),TTA=vA('
            loading...
            '),HTA=vA('
            ',1);function OTA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=xr("jsoneditor:TableMode"),{openAbsolutePopup:r,closeAbsolutePopup:s}=cI("absolute-popup"),a=qaA(),c=h1(),g=h1(),I=typeof window>"u";o("isSSR:",I);var C=M(e,"readOnly",9),d=M(e,"externalContent",9),B=M(e,"externalSelection",9),E=M(e,"history",9),u=M(e,"truncateTextSize",9),h=M(e,"mainMenuBar",9),w=M(e,"escapeControlCharacters",9),x=M(e,"escapeUnicodeCharacters",9),R=M(e,"flattenColumns",9),D=M(e,"parser",9),G=M(e,"parseMemoizeOne",9),J=M(e,"validator",9),z=M(e,"validationParser",9),K=M(e,"indentation",9),O=M(e,"onChange",9),V=M(e,"onChangeMode",9),j=M(e,"onSelect",9),dA=M(e,"onUndo",9),fA=M(e,"onRedo",9),EA=M(e,"onRenderValue",9),IA=M(e,"onRenderMenu",9),SA=M(e,"onRenderContextMenu",9),nA=M(e,"onFocus",9),lA=M(e,"onBlur",9),wA=M(e,"onSortModal",9),VA=M(e,"onTransformModal",9),ie=M(e,"onJSONEditorModal",9),UA=$(void 0,!0),BA=$(void 0,!0),JA=$(void 0,!0),Xe=$(void 0,!0),We=$(void 0,!0);kK({onMount:ws,onDestroy:ig,getWindow:()=>Qf(l(BA)),hasFocus:()=>Se&&document.hasFocus()||CK(l(BA)),onFocus:()=>{Wt=!0,nA()&&nA()()},onBlur:()=>{Wt=!1,lA()&&lA()()}});var KA,tA=$(void 0,!0),OA=$(void 0,!0),gA=$(void 0,!0),zA=$(void 0,!0),xA=$(void 0,!0),Me=$(void 0,!0),LA=$(!1,!0),cA=$(!1,!0);function Gt(p){y(Me,(KA=p)?FaA(l(tA),KA.items):void 0)}function ct(p){return oe.apply(this,arguments)}function oe(){return(oe=_t(function*(p){y(MA,void 0),yield Xi(p)})).apply(this,arguments)}function Dt(){y(LA,!1),y(cA,!1),b()}var _e=$(1e4,!0),Re=$([],!0),St=$(void 0,!0),Se=!1,Wt=!1,L=$(!1,!0),T=$({},!0),P=$(600,!0),X=$(0,!0),kA=18;function le(p){y(MA,p)}function Ee(p){l(MA)&&p!==void 0&&(As(p,WC(l(MA)))&&As(p,nt(l(MA)))||(o("clearing selection: path does not exist anymore",l(MA)),y(MA,void 0)))}var FA=$(l(tA)!==void 0?GG({json:l(tA)}):void 0,!0),MA=$(tf(B())?B():void 0,!0),dt=$(void 0,!0),$e=$(!1,!0);function XA(p){if(!C()){o("onSortByHeader",p);var F=p.sortDirection===Ag.desc?-1:1;Ht($aA(l(tA),[],p.path,F),(U,q)=>({state:q,sortedColumn:p}))}}ws(()=>{l(MA)&&Mo(nt(l(MA)))});var ot=$(void 0,!0);function Si(p){if(p.json!==void 0||p.text!==void 0){var F=l(tA)!==void 0&&p.json!==void 0;E().add({type:"tree",undo:{patch:F?[{op:"replace",path:"",value:p.json}]:void 0,json:p.json,text:p.text,documentState:p.documentState,textIsRepaired:p.textIsRepaired,selection:e0(p.selection),sortedColumn:p.sortedColumn},redo:{patch:F?[{op:"replace",path:"",value:l(tA)}]:void 0,json:l(tA),text:l(OA),documentState:l(FA),textIsRepaired:l($e),selection:e0(l(MA)),sortedColumn:l(dt)}})}}var Zi=$([],!0),Oi=hE(VaA);function Le(p,F,U,q){fQ(()=>{var Z;try{Z=Oi(p,F,U,q)}catch(RA){Z=[{path:[],message:"Failed to validate: "+RA.message,severity:Og.warning}]}ri(Z,l(Zi))||(o("validationErrors changed:",Z),y(Zi,Z))},Z=>o("validationErrors updated in ".concat(Z," ms")))}function zi(){return o("validate"),l(gA)?{parseError:l(gA),isRepairable:!1}:(Le(l(tA),J(),D(),z()),Gi(l(Zi))?void 0:{validationErrors:l(Zi)})}function fi(p,F){if(o("patch",p,F),l(tA)===void 0)throw new Error("Cannot apply patch: no JSON");var U=l(tA),q={json:void 0,text:l(OA),documentState:l(FA),selection:e0(l(MA)),sortedColumn:l(dt),textIsRepaired:l($e)},Z=NaA(l(tA),p),RA=paA(l(tA),l(FA),p),ee=SYA(l(dt),p,l(Re)),ne=typeof F=="function"?F(RA.json,RA.documentState,l(MA)):void 0;return y(tA,ne?.json!==void 0?ne.json:RA.json),y(FA,ne?.state!==void 0?ne.state:RA.documentState),y(MA,ne?.selection!==void 0?ne.selection:l(MA)),y(dt,ne?.sortedColumn!==void 0?ne.sortedColumn:ee),y(OA,void 0),y($e,!1),y(zA,void 0),y(xA,void 0),y(gA,void 0),E().add({type:"tree",undo:pe({patch:Z},q),redo:{patch:p,json:void 0,text:void 0,documentState:l(FA),selection:e0(l(MA)),sortedColumn:l(dt),textIsRepaired:l($e)}}),{json:l(tA),previousJson:U,undo:Z,redo:p}}function Ht(p,F){o("handlePatch",p,F);var U={json:l(tA),text:l(OA)},q=fi(p,F);return Rt(U,q),q}function Rt(p,F){if((p.json!==void 0||p?.text!==void 0)&&O()){if(l(OA)!==void 0){var U={text:l(OA),json:void 0};O()(U,p,{contentErrors:zi(),patchResult:F})}else if(l(tA)!==void 0){var q={text:void 0,json:l(tA)};O()(q,p,{contentErrors:zi(),patchResult:F})}}}function Bi(p){o("pasted json as text",p),y(zA,p)}function Mi(p){o("pasted multiline text",{pastedText:p}),y(xA,p)}function Jt(p){var F=parseInt(p[0],10),U=[String(F+1),...p.slice(1)];return As(l(tA),U)?vi(U):vi(p)}function b(){o("focus"),l(Xe)&&(l(Xe).focus(),l(Xe).select())}function et(p){y(X,p.target.scrollTop)}function ai(){l(MA)||y(MA,function(){if(wo(l(tA))&&!Gi(l(tA))&&!Gi(l(Re)))return vi(["0",...l(Re)[0]])}())}function Wi(){if(l($e)&&l(tA)!==void 0){var p={json:l(tA),text:l(OA)},F={json:l(tA),documentState:l(FA),selection:l(MA),sortedColumn:l(dt),text:l(OA),textIsRepaired:l($e)};y(OA,void 0),y($e,!1),Ee(l(tA)),Si(F),Rt(p,void 0)}return{json:l(tA),text:l(OA)}}function Xi(p){var{scrollToWhenVisible:F=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},U=l(LA)?O3:0,q=CsA(p,l(Re),T,kA),Z=q-l(X)+U+kA,RA=vn(p);if(o("scrollTo",{path:p,top:q,scrollTop:l(X),elem:RA}),!l(JA))return Promise.resolve();var ee=l(JA).getBoundingClientRect();if(RA&&!F){var ne=RA.getBoundingClientRect();if(ne.bottom>ee.top&&ne.top{a(RA,{container:l(JA),offset:Pe,duration:300,callback:()=>{xn(p),Oe()}})}:Oe=>{a(Z,{container:l(JA),offset:Pe,duration:300,callback:()=>{to(),xn(p),Oe()}})})}function xn(p){var F=vn(p);if(F&&l(JA)){var U=l(JA).getBoundingClientRect(),q=F.getBoundingClientRect();if(q.right>U.right){var Z=q.right-U.right;hc(JA,l(JA).scrollLeft+=Z)}if(q.leftPe){var Oe=Z-Pe;hc(JA,l(JA).scrollTop+=Oe)}if(qn0(p.slice(1),RA)),Z=q?p.slice(0,1).concat(q):p;return(F=(U=l(JA))===null||U===void 0?void 0:U.querySelector('td[data-path="'.concat(My(Z),'"]')))!==null&&F!==void 0?F:void 0}function In(p){var F,{anchor:U,left:q,top:Z,width:RA,height:ee,offsetTop:ne,offsetLeft:Pe,showTip:Oe}=p,ve=function(rA){var{json:HA,documentState:De,selection:fe,readOnly:Ie,onEditValue:Bt,onEditRow:At,onToggleEnforceString:ui,onCut:Cn,onCopy:xi,onPaste:Yn,onRemove:Tt,onDuplicateRow:bo,onInsertBeforeRow:kn,onInsertAfterRow:oo,onRemoveRow:An}=rA,Lt=HA!==void 0,Ti=!!fe,xt=HA!==void 0&&fe?Ye(HA,nt(fe)):void 0,rt=Lt&&(Gn(fe)||Lr(fe)||Vi(fe)),Ai=!Ie&&Lt&&fe!==void 0&&Jy(fe),ho=Ai&&!Fo(xt),Fr=!Ie&&rt,Tn=fe!==void 0&&t0(HA,De,nt(fe));return[{type:"separator"},{type:"row",items:[{type:"column",items:[{type:"label",text:"Table cell:"},{type:"dropdown-button",main:{type:"button",onClick:()=>Bt(),icon:EC,text:"Edit",title:"Edit the value (Double-click on the value)",disabled:!Ai},width:"11em",items:[{type:"button",icon:EC,text:"Edit",title:"Edit the value (Double-click on the value)",onClick:()=>Bt(),disabled:!Ai},{type:"button",icon:Tn?iL:rL,text:"Enforce string",title:"Enforce keeping the value as string when it contains a numeric value",onClick:()=>ui(),disabled:!ho}]},{type:"dropdown-button",main:{type:"button",onClick:()=>Cn(!0),icon:BC,text:"Cut",title:"Cut selected contents, formatted with indentation (Ctrl+X)",disabled:!Fr},width:"10em",items:[{type:"button",icon:BC,text:"Cut formatted",title:"Cut selected contents, formatted with indentation (Ctrl+X)",onClick:()=>Cn(!0),disabled:Ie||!rt},{type:"button",icon:BC,text:"Cut compacted",title:"Cut selected contents, without indentation (Ctrl+Shift+X)",onClick:()=>Cn(!1),disabled:Ie||!rt}]},{type:"dropdown-button",main:{type:"button",onClick:()=>xi(!0),icon:G0,text:"Copy",title:"Copy selected contents, formatted with indentation (Ctrl+C)",disabled:!rt},width:"12em",items:[{type:"button",icon:G0,text:"Copy formatted",title:"Copy selected contents, formatted with indentation (Ctrl+C)",onClick:()=>xi(!1),disabled:!rt},{type:"button",icon:G0,text:"Copy compacted",title:"Copy selected contents, without indentation (Ctrl+Shift+C)",onClick:()=>xi(!1),disabled:!rt}]},{type:"button",onClick:()=>Yn(),icon:tL,text:"Paste",title:"Paste clipboard contents (Ctrl+V)",disabled:Ie||!Ti},{type:"button",onClick:()=>Tt(),icon:_5,text:"Remove",title:"Remove selected contents (Delete)",disabled:Ie||!rt}]},{type:"column",items:[{type:"label",text:"Table row:"},{type:"button",onClick:()=>At(),icon:EC,text:"Edit row",title:"Edit the current row",disabled:Ie||!Ti||!Lt},{type:"button",onClick:()=>bo(),icon:cL,text:"Duplicate row",title:"Duplicate the current row (Ctrl+D)",disabled:Ie||!Ti||!Lt},{type:"button",onClick:()=>kn(),icon:QC,text:"Insert before",title:"Insert a row before the current row",disabled:Ie||!Ti||!Lt},{type:"button",onClick:()=>oo(),icon:QC,text:"Insert after",title:"Insert a row after the current row",disabled:Ie||!Ti||!Lt},{type:"button",onClick:()=>An(),icon:_5,text:"Remove row",title:"Remove current row",disabled:Ie||!Ti||!Lt}]}]}]}({json:l(tA),documentState:l(FA),selection:l(MA),readOnly:C(),onEditValue:uo,onEditRow:Qn,onToggleEnforceString:Kn,onCut:Xo,onCopy:on,onPaste:Ri,onRemove:yt,onDuplicateRow:hA,onInsertBeforeRow:Ae,onInsertAfterRow:re,onRemoveRow:xe}),Ne=(F=SA()(ve))!==null&&F!==void 0?F:ve;if(Ne!==!1){var Yi={left:q,top:Z,offsetTop:ne,offsetLeft:Pe,width:RA,height:ee,anchor:U,closeOnOuterClick:!0,onClose:()=>{Se=!1,b()}};Se=!0;var H=r(ccA,{tip:Oe?"Tip: you can open this context menu via right-click or with Ctrl+Q":void 0,items:Ne,onRequestClose(){s(H),b()}},Yi)}}function qo(p){if(!Sr(l(MA)))if(p&&(p.stopPropagation(),p.preventDefault()),p&&p.type==="contextmenu"&&p.target!==l(Xe))In({left:p.clientX,top:p.clientY,width:A2,height:$0,showTip:!1});else{var F,U=(F=l(JA))===null||F===void 0?void 0:F.querySelector(".jse-table-cell.jse-selected-value");if(U)In({anchor:U,offsetTop:2,width:A2,height:$0,showTip:!1});else{var q,Z=(q=l(JA))===null||q===void 0?void 0:q.getBoundingClientRect();Z&&In({top:Z.top+2,left:Z.left+2,width:A2,height:$0,showTip:!1})}}}function Vo(p){In({anchor:QaA(p.target,"BUTTON"),offsetTop:0,width:A2,height:$0,showTip:!0})}function uo(){if(!C()&&l(MA)){var p=nt(l(MA));Fo(Ye(l(tA),p))?rn(p):y(MA,vi(p))}}function Qn(){!C()&&l(MA)&&rn(nt(l(MA)).slice(0,1))}function Kn(){if(!C()&&Vi(l(MA))){var p=l(MA).path,F=Ct(p),U=Ye(l(tA),p),q=!t0(l(tA),l(FA),p),Z=q?String(U):GQ(String(U),D());o("handleToggleEnforceString",{enforceString:q,value:U,updatedValue:Z}),Ht([{op:"replace",path:F,value:Z}],(RA,ee)=>({state:o7(l(tA),ee,p,{type:"value",enforceString:q})}))}}function $A(){return Ei.apply(this,arguments)}function Ei(){return(Ei=_t(function*(){if(o("apply pasted json",l(zA)),l(zA)){var{onPasteAsJson:p}=l(zA);p(),setTimeout(b)}})).apply(this,arguments)}function Ri(){return un.apply(this,arguments)}function un(){return(un=_t(function*(){try{DA(yield navigator.clipboard.readText())}catch(p){console.error(p),y(L,!0)}})).apply(this,arguments)}function Un(){return Zo.apply(this,arguments)}function Zo(){return(Zo=_t(function*(){o("apply pasted multiline text",l(xA)),l(xA)&&(DA(JSON.stringify(l(xA))),setTimeout(b))})).apply(this,arguments)}function Ci(){o("clear pasted json"),y(zA,void 0),b()}function io(){o("clear pasted multiline text"),y(xA,void 0),b()}function Wo(){V()(ir.text)}function Xo(p){return nr.apply(this,arguments)}function nr(){return(nr=_t(function*(p){yield icA({json:l(tA),selection:l(MA),indentation:p?K():void 0,readOnly:C(),parser:D(),onPatch:Ht})})).apply(this,arguments)}function on(){return $i.apply(this,arguments)}function $i(){return $i=_t(function*(){var p=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];l(tA)!==void 0&&(yield ncA({json:l(tA),selection:l(MA),indentation:p?K():void 0,parser:D()}))}),$i.apply(this,arguments)}function yt(){rcA({json:l(tA),text:l(OA),selection:l(MA),keepSelection:!0,readOnly:C(),onChange:O(),onPatch:Ht})}function hn(p){C()||(o("extract",{path:p}),Ht(RaA(l(tA),vi(p))))}function hA(){(function(p){var{json:F,selection:U,columns:q,readOnly:Z,onPatch:RA}=p;if(!Z&&F!==void 0&&U&&uQ(U)){var{rowIndex:ee,columnIndex:ne}=Xc(nt(U),q);Ys("duplicate row",{rowIndex:ee});var Pe=[String(ee)];RA(SaA(F,[Pe]),(Oe,ve)=>({state:ve,selection:vi(PC({rowIndex:ee({state:Yi,selection:vi(PC({rowIndex:Pe,columnIndex:ne},q))}))}})({json:l(tA),selection:l(MA),columns:l(Re),readOnly:C(),onPatch:Ht})}function xe(){(function(p){var{json:F,selection:U,columns:q,readOnly:Z,onPatch:RA}=p;if(!Z&&F!==void 0&&U&&uQ(U)){var{rowIndex:ee,columnIndex:ne}=Xc(nt(U),q);Ys("remove row",{rowIndex:ee}),RA(Ty([[String(ee)]]),(Pe,Oe)=>{var ve=ee0?ee-1:void 0,Ne=ve!==void 0?vi(PC({rowIndex:ve,columnIndex:ne},q)):void 0;return Ys("remove row new selection",{rowIndex:ee,newRowIndex:ve,newSelection:Ne}),{state:Oe,selection:Ne}})}})({json:l(tA),selection:l(MA),columns:l(Re),readOnly:C(),onPatch:Ht})}function ue(){return(ue=_t(function*(p){yield scA({char:p,selectInside:!1,json:l(tA),selection:l(MA),readOnly:C(),parser:D(),onPatch:Ht,onReplaceJson:PA,onSelect:le})})).apply(this,arguments)}function aA(p){var F;p.preventDefault(),DA((F=p.clipboardData)===null||F===void 0?void 0:F.getData("text/plain"))}function DA(p){p!==void 0&&ocA({clipboardText:p,json:l(tA),selection:l(MA),readOnly:C(),parser:D(),onPatch:Ht,onChangeText:Je,onPasteMultilineText:Mi,openRepairModal:no})}function PA(p,F){var U={json:l(tA),text:l(OA)},q={json:l(tA),documentState:l(FA),selection:l(MA),sortedColumn:l(dt),text:l(OA),textIsRepaired:l($e)},Z=uc(p,l(FA)),RA=typeof F=="function"?F(p,Z,l(MA)):void 0;y(tA,RA?.json!==void 0?RA.json:p),y(FA,RA?.state!==void 0?RA.state:Z),y(MA,RA?.selection!==void 0?RA.selection:l(MA)),y(dt,void 0),y(OA,void 0),y($e,!1),y(gA,void 0),Ee(l(tA)),Si(q),Rt(U,void 0)}function Je(p,F){o("handleChangeText");var U={json:l(tA),text:l(OA)},q={json:l(tA),documentState:l(FA),selection:l(MA),sortedColumn:l(dt),text:l(OA),textIsRepaired:l($e)};try{y(tA,G()(p)),y(FA,uc(l(tA),l(FA))),y(OA,void 0),y($e,!1),y(gA,void 0)}catch(RA){try{y(tA,G()(Uc(p))),y(FA,uc(l(tA),l(FA))),y(OA,p),y($e,!0),y(gA,void 0)}catch{y(tA,void 0),y(FA,void 0),y(OA,p),y($e,!1),y(gA,l(OA)!==""?MQ(l(OA),RA.message||String(RA)):void 0)}}if(typeof F=="function"){var Z=F(l(tA),l(FA),l(MA));y(tA,Z?.json!==void 0?Z.json:l(tA)),y(FA,Z?.state!==void 0?Z.state:l(FA)),y(MA,Z?.selection!==void 0?Z.selection:l(MA))}Ee(l(tA)),Si(q),Rt(U,void 0)}function vt(p){o("select validation error",p),y(MA,vi(p.path)),Xi(p.path)}function Yt(p){if(l(tA)!==void 0){var{id:F,onTransform:U,onClose:q}=p,Z=p.rootPath||[];Se=!0,VA()({id:F||g,json:l(tA),rootPath:Z||[],onTransform:RA=>{U?U({operations:RA,json:l(tA),transformedJson:Ma(l(tA),RA)}):(o("onTransform",Z,RA),Ht(RA))},onClose:()=>{Se=!1,setTimeout(b),q&&q()}})}}function rn(p){o("openJSONEditorModal",{path:p}),Se=!0,ie()({content:{json:Ye(l(tA),p)},path:p,onPatch:Ht,onClose:()=>{Se=!1,setTimeout(b)}})}function no(p,F){y(We,{text:p,onParse:U=>Ef(U,q=>Bf(q,D())),onRepair:aaA,onApply:F,onClose:b})}function sn(){(function(p){C()||l(tA)===void 0||(Se=!0,wA()({id:c,json:l(tA),rootPath:p,onSort:F=>{var{operations:U,itemPath:q,direction:Z}=F;o("onSort",U,p,q,Z),Ht(U,(RA,ee)=>({state:ee,sortedColumn:{path:q,sortDirection:Z===-1?Ag.desc:Ag.asc}}))},onClose:()=>{Se=!1,setTimeout(b)}}))})([])}function Ji(){Yt({rootPath:[]})}function bt(p){o("openFind",{findAndReplace:p}),y(LA,!1),y(cA,!1),to(),y(LA,!0),y(cA,p)}function Li(){if(!C()&&E().canUndo){var p=E().undo();if(Uy(p)){var F={json:l(tA),text:l(OA)};y(tA,p.undo.patch?Ma(l(tA),p.undo.patch):p.undo.json),y(FA,p.undo.documentState),y(MA,p.undo.selection),y(dt,p.undo.sortedColumn),y(OA,p.undo.text),y($e,p.undo.textIsRepaired),y(gA,void 0),o("undo",{item:p,json:l(tA)}),Rt(F,p.undo.patch&&p.redo.patch?{json:l(tA),previousJson:F.json,redo:p.undo.patch,undo:p.redo.patch}:void 0),b(),l(MA)&&Xi(nt(l(MA)),{scrollToWhenVisible:!1})}else dA()(p)}}function Mn(){if(!C()&&E().canRedo){var p=E().redo();if(Uy(p)){var F={json:l(tA),text:l(OA)};y(tA,p.redo.patch?Ma(l(tA),p.redo.patch):p.redo.json),y(FA,p.redo.documentState),y(MA,p.redo.selection),y(dt,p.redo.sortedColumn),y(OA,p.redo.text),y($e,p.redo.textIsRepaired),y(gA,void 0),o("redo",{item:p,json:l(tA)}),Rt(F,p.undo.patch&&p.redo.patch?{json:l(tA),previousJson:F.json,redo:p.redo.patch,undo:p.undo.patch}:void 0),b(),l(MA)&&Xi(nt(l(MA)),{scrollToWhenVisible:!1})}else fA()(p)}}function Qt(p){y(P,p.getBoundingClientRect().height)}pA(()=>(k(w()),k(x())),()=>{y(UA,lK({escapeControlCharacters:w(),escapeUnicodeCharacters:x()}))}),pA(()=>l(LA),()=>{(function(p){if(l(JA)){var F=p?O3:-100;l(JA).scrollTo({top:hc(JA,l(JA).scrollTop+=F),left:l(JA).scrollLeft})}})(l(LA))}),pA(()=>k(d()),()=>{(function(p){var F={json:l(tA)},U=W3(p)?p.text!==l(OA):!ri(F.json,p.json);if(o("update external content",{isChanged:U}),U){var q={json:l(tA),documentState:l(FA),selection:l(MA),sortedColumn:l(dt),text:l(OA),textIsRepaired:l($e)};if(W3(p))try{y(tA,G()(p.text)),y(FA,uc(l(tA),l(FA))),y(OA,p.text),y($e,!1),y(gA,void 0)}catch(Z){try{y(tA,G()(Uc(p.text))),y(FA,uc(l(tA),l(FA))),y(OA,p.text),y($e,!0),y(gA,void 0)}catch{y(tA,void 0),y(FA,void 0),y(OA,p.text),y($e,!1),y(gA,l(OA)!==""?MQ(l(OA),Z.message||String(Z)):void 0)}}else y(tA,p.json),y(FA,uc(l(tA),l(FA))),y(OA,void 0),y($e,!1),y(gA,void 0);Ee(l(tA)),y(dt,void 0),Si(q)}})(d())}),pA(()=>k(B()),()=>{(function(p){ri(l(MA),p)||(o("applyExternalSelection",{selection:l(MA),externalSelection:p}),tf(p)&&y(MA,p))})(B())}),pA(()=>(l(Re),l(tA),k(R()),l(_e)),()=>{y(Re,wo(l(tA))?function(p,F){var U=new Set(F.map(Ct)),q=new Set(p.map(Ct));for(var Z of U)q.has(Z)||U.delete(Z);for(var RA of q)U.has(RA)||U.add(RA);return[...U].map(xs)}(vYA(l(tA),R(),l(_e)),l(Re)):[])}),pA(()=>(l(tA),l(Re)),()=>{y(St,!(!l(tA)||Gi(l(Re))))}),pA(()=>(l(tA),l(_e)),()=>{y(A,Array.isArray(l(tA))&&l(tA).length>l(_e))}),pA(()=>(l(X),l(P),l(tA),l(LA),O3),()=>{y(i,MYA(l(X),l(P),l(tA),T,kA,l(LA)?O3:0))}),pA(()=>l(tA),()=>{l(tA),l(JA)&&l(JA).scrollTo({top:l(JA).scrollTop,left:l(JA).scrollLeft})}),pA(()=>l(MA),()=>{var p;p=l(MA),ri(p,B())||(o("onSelect",p),j()(p))}),pA(()=>(k(C()),k(u()),k(D()),l(UA),l(tA),l(FA),k(EA())),()=>{y(ot,{mode:ir.table,readOnly:C(),truncateTextSize:u(),parser:D(),normalization:l(UA),getJson:()=>l(tA),getDocumentState:()=>l(FA),findElement:vn,findNextInside:Jt,focus:b,onPatch:(p,F)=>Ht(function(U,q){return U.flatMap(Z=>{if(V8(Z)){var RA=xs(Z.path);if(RA.length>0){for(var ee=[Z],ne=yi(RA);ne.length>0&&!As(q,ne);)ee.unshift({op:"add",path:Ct(ne),value:{}}),ne=yi(ne);return ee}}return Z})}(p,l(tA)),F),onSelect:le,onFind:bt,onPasteJson:Bi,onRenderValue:EA()})}),pA(()=>(l(tA),k(J()),k(D()),k(z())),()=>{Le(l(tA),J(),D(),z())}),pA(()=>(l(Zi),l(Re)),()=>{y(n,bYA(l(Zi),l(Re)))}),ln(),qt(!0);var fn=HTA();ce("mousedown",i2,function(p){!KQ(p.target,F=>F===l(BA))&&Sr(l(MA))&&(o("click outside the editor, exit edit mode"),y(MA,e0(l(MA))),Wt&&l(Xe)&&(l(Xe).focus(),l(Xe).blur()),o("blur (outside editor)"),l(Xe)&&l(Xe).blur())});var Te,Qi=Mt(fn),mi=W(Qi),bn=p=>{(function(F,U){ft(U,!1);var q=M(U,"containsValidArray",9),Z=M(U,"readOnly",9),RA=M(U,"showSearch",13,!1),ee=M(U,"history",9),ne=M(U,"onSort",9),Pe=M(U,"onTransform",9),Oe=M(U,"onContextMenu",9),ve=M(U,"onUndo",9),Ne=M(U,"onRedo",9),Yi=M(U,"onRenderMenu",9);function H(){RA(!RA())}var rA=$(void 0,!0),HA=$(void 0,!0);pA(()=>(k(Z()),k(ne()),k(q()),k(Pe()),k(Oe()),k(ve()),k(ee()),k(Ne())),()=>{y(rA,Z()?[{type:"space"}]:[{type:"button",icon:Q4,title:"Sort",className:"jse-sort",onClick:ne(),disabled:Z()||!q()},{type:"button",icon:d4,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:Pe(),disabled:Z()||!q()},{type:"button",icon:u4,title:"Search (Ctrl+F)",className:"jse-search",onClick:H,disabled:!q()},{type:"button",icon:sL,title:EK,className:"jse-contextmenu",onClick:Oe()},{type:"separator"},{type:"button",icon:K5,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:ve(),disabled:!ee().canUndo},{type:"button",icon:G5,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:Ne(),disabled:!ee().canRedo},{type:"space"}])}),pA(()=>(k(Yi()),l(rA)),()=>{y(HA,Yi()(l(rA))||l(rA))}),ln(),qt(!0),l7(F,{get items(){return l(HA)}}),mt()})(p,{get containsValidArray(){return l(St)},get readOnly(){return C()},get history(){return E()},onSort:sn,onTransform:Ji,onUndo:Li,onRedo:Mn,onContextMenu:Vo,get onRenderMenu(){return IA()},get showSearch(){return l(LA)},set showSearch(F){y(LA,F)},$$legacy:!0})};GA(mi,p=>{h()&&p(bn)});var Ko=CA(mi,2),Ot=p=>{var F=YTA(),U=Mt(F),q=W(U);q.readOnly=!0,Qo(q,ne=>y(Xe,ne),()=>l(Xe));var Z=CA(U,2),RA=ne=>{var Pe=UTA(),Oe=Mt(Pe);AcA(W(Oe),{get json(){return l(tA)},get documentState(){return l(FA)},get parser(){return D()},get showSearch(){return l(LA)},get showReplace(){return l(cA)},get readOnly(){return C()},get columns(){return l(Re)},onSearch:Gt,onFocus:ct,onPatch:Ht,onClose:Dt});var ve=CA(Oe,2),Ne=W(ve),Yi=W(Ne),H=W(Yi),rA=W(H),HA=W(rA),De=rt=>{var Ai=_o(),ho=ZA(()=>(k(lQ),l(n),oA(()=>{var ko;return lQ([],(ko=l(n))===null||ko===void 0?void 0:ko.root)}))),Fr=Mt(Ai),Tn=ko=>{var qr=RTA();wQ(W(qr),{get validationError(){return l(ho)},get onExpand(){return $c}}),iA(ko,qr)};GA(Fr,ko=>{l(ho)&&ko(Tn)}),iA(rt,Ai)};GA(HA,rt=>{k(Gi),l(n),oA(()=>{var Ai;return!Gi((Ai=l(n))===null||Ai===void 0?void 0:Ai.root)})&&rt(De)});var fe=CA(rA);jo(fe,1,()=>l(Re),cr,(rt,Ai)=>{var ho=LTA();(function(Fr,Tn){ft(Tn,!1);var ko=$(void 0,!0),qr=$(void 0,!0),g0=$(void 0,!0),Ha=M(Tn,"path",9),ng=M(Tn,"sortedColumn",9),Wg=M(Tn,"readOnly",9),og=M(Tn,"onSort",9);pA(()=>(k(Ha()),Ta),()=>{y(ko,Gi(Ha())?"values":Ta(Ha()))}),pA(()=>(k(ng()),k(Ha())),()=>{var Zn;y(qr,ng()&&ri(Ha(),(Zn=ng())===null||Zn===void 0?void 0:Zn.path)?ng().sortDirection:void 0)}),pA(()=>(l(qr),RrA),()=>{y(g0,l(qr)?RrA[l(qr)]:void 0)}),ln(),qt(!0);var Vr,Zr=fTA(),Oa=W(Zr),l0=W(Oa),za=CA(Oa,2),Uo=Zn=>{var $o=hTA(),Xg=W($o),gd=ZA(()=>(l(qr),k(Ag),k(Nl),k(oL),oA(()=>l(qr)===Ag.asc?Nl:oL)));Ui(Xg,{get data(){return l(gd)}}),we(()=>gn($o,"title","Currently sorted in ".concat(l(g0)," order"))),iA(Zn,$o)};GA(za,Zn=>{l(qr)!==void 0&&Zn(Uo)}),we((Zn,$o)=>{Vr=jt(Zr,1,"jse-column-header svelte-2i3vdx",null,Vr,Zn),gn(Zr,"title",Wg()?l(ko):l(ko)+" (Click to sort the data by this column)"),pt(l0,$o)},[()=>({"jse-readonly":Wg()}),()=>(k(X0),l(ko),k(50),oA(()=>X0(l(ko),50)))],ZA),ce("click",Zr,function(){Wg()||og()({path:Ha(),sortDirection:l(qr)===Ag.asc?Ag.desc:Ag.asc})}),iA(Fr,Zr),mt()})(W(ho),{get path(){return l(Ai)},get sortedColumn(){return l(dt)},get readOnly(){return C()},onSort:XA}),iA(rt,ho)});var Ie=CA(fe),Bt=rt=>{var Ai=xTA(),ho=W(Ai),Fr=ZA(()=>(l(tA),oA(()=>Array.isArray(l(tA))?l(tA).length:0)));(function(Tn,ko){ft(ko,!1);var qr=M(ko,"count",9),g0=M(ko,"maxSampleCount",9),Ha=M(ko,"readOnly",9),ng=M(ko,"onRefresh",9);qt(!0);var Wg,og=STA();Ui(W(og),{get data(){return vX}}),we(Vr=>{Wg=jt(og,1,"jse-column-header svelte-fzj761",null,Wg,Vr),gn(og,"title","The Columns are created by sampling ".concat(g0()," items out of ").concat(qr(),". ")+"If you're missing a column, click here to sample all of the items instead of a subset. This is slower.")},[()=>({"jse-readonly":Ha()})],ZA),ce("click",og,()=>ng()()),iA(Tn,og),mt()})(ho,{get count(){return l(Fr)},get maxSampleCount(){return l(_e)},get readOnly(){return C()},onRefresh:()=>y(_e,1/0)}),iA(rt,Ai)};GA(Ie,rt=>{l(A)&&rt(Bt)});var At,ui,Cn=CA(H),xi=W(Cn),Yn=CA(Cn);jo(Yn,1,()=>(l(i),oA(()=>l(i).visibleItems)),cr,(rt,Ai,ho)=>{var Fr=KTA(),Tn=ZA(()=>(l(i),oA(()=>l(i).startIndex+ho))),ko=ZA(()=>(l(n),k(l(Tn)),oA(()=>l(n).rows[l(Tn)]))),qr=ZA(()=>(k(lQ),k(l(Tn)),k(l(ko)),oA(()=>{var Vr;return lQ([String(l(Tn))],(Vr=l(ko))===null||Vr===void 0?void 0:Vr.row)}))),g0=ZA(()=>(k($l),l(tA),l(Me),k(l(Tn)),oA(()=>$l(l(tA),l(Me),[String(l(Tn))])))),Ha=W(Fr);XsA(Ha,()=>l(Tn),Vr=>{var Zr=NTA(),Oa=W(Zr),l0=CA(Oa),za=Uo=>{wQ(Uo,{get validationError(){return l(qr)},get onExpand(){return $c}})};GA(l0,Uo=>{l(qr)&&Uo(za)}),Ts(Zr,(Uo,Zn)=>wy?.(Uo,Zn),()=>Uo=>function(Zn,$o){T[$o]=Zn.getBoundingClientRect().height}(Uo,l(Tn))),we(()=>{var Uo;return pt(Oa,"".concat((Uo=l(Tn))!==null&&Uo!==void 0?Uo:""," "))}),iA(Vr,Zr)});var ng=CA(Ha);jo(ng,1,()=>l(Re),cr,(Vr,Zr,Oa,l0)=>{var za,Uo=_TA(),Zn=ZA(()=>(k(l(Tn)),l(Zr),oA(()=>[String(l(Tn))].concat(l(Zr))))),$o=ZA(()=>(k(Ye),l(Ai),l(Zr),oA(()=>Ye(l(Ai),l(Zr))))),Xg=ZA(()=>(k(Vi),l(MA),k(n0),k(l(Zn)),oA(()=>Vi(l(MA))&&n0(l(MA).path,l(Zn))))),gd=ZA(()=>(k(l(ko)),oA(()=>{var gr;return(gr=l(ko))===null||gr===void 0?void 0:gr.columns[Oa]}))),ld=ZA(()=>(k(lQ),k(l(Zn)),k(l(gd)),oA(()=>lQ(l(Zn),l(gd))))),jQ=W(Uo),Id=W(jQ),qQ=gr=>{var sa=ZA(()=>(k(Hy),k($l),l(Ai),k(l(g0)),l(Zr),oA(()=>Hy($l(l(Ai),l(g0),l(Zr)))))),VQ=ZA(()=>(k(l(sa)),oA(()=>!!l(sa)&&l(sa).some(EI=>EI.active)))),ZQ=ZA(()=>(k(Gi),k(l(sa)),oA(()=>!Gi(l(sa)))));(function(EI,as){ft(as,!1);var WQ=M(as,"path",9),LU=M(as,"value",9),xU=M(as,"parser",9),WlA=M(as,"isSelected",9),XlA=M(as,"containsSearchResult",9),$lA=M(as,"containsActiveSearchResult",9),A0A=M(as,"onEdit",9);qt(!0);var NU,Nf=uTA(),e0A=W(Nf);we((XQ,t0A)=>{NU=jt(Nf,1,"jse-inline-value svelte-h57m0p",null,NU,XQ),pt(e0A,t0A)},[()=>({"jse-selected":WlA(),"jse-highlight":XlA(),"jse-active":$lA()}),()=>(k(X0),k(xU()),k(LU()),k(50),oA(()=>{var XQ;return X0((XQ=xU().stringify(LU()))!==null&&XQ!==void 0?XQ:"",50)}))],ZA),ce("dblclick",Nf,()=>A0A()(WQ())),iA(EI,Nf),mt()})(gr,{get path(){return l(Zn)},get value(){return l($o)},get parser(){return D()},get isSelected(){return l(Xg)},get containsSearchResult(){return l(ZQ)},get containsActiveSearchResult(){return l(VQ)},onEdit:rn})},hv=gr=>{var sa=ZA(()=>(k($l),l(tA),l(Me),k(l(Zn)),oA(()=>{var as;return(as=$l(l(tA),l(Me),l(Zn)))===null||as===void 0?void 0:as.searchResults}))),VQ=ZA(()=>l($o)!==void 0?l($o):""),ZQ=ZA(()=>(k(t0),l(tA),l(FA),k(l(Zn)),oA(()=>t0(l(tA),l(FA),l(Zn))))),EI=ZA(()=>l(Xg)?l(MA):void 0);XaA(gr,{get path(){return l(Zn)},get value(){return l(VQ)},get enforceString(){return l(ZQ)},get selection(){return l(EI)},get searchResultItems(){return l(sa)},get context(){return l(ot)}})};GA(Id,gr=>{k(Fo),k(l($o)),oA(()=>Fo(l($o)))?gr(qQ):gr(hv,!1)});var fv=CA(Id),mv=gr=>{var sa=FTA();P1(W(sa),{selected:!0,onContextMenu:In}),iA(gr,sa)};GA(fv,gr=>{k(C()),k(l(Xg)),k(Sr),l(MA),oA(()=>!C()&&l(Xg)&&!Sr(l(MA)))&&gr(mv)});var $g=CA(jQ,2),BI=gr=>{wQ(gr,{get validationError(){return l(ld)},get onExpand(){return $c}})};GA($g,gr=>{l(ld)&&gr(BI)}),we((gr,sa)=>{gn(Uo,"data-path",gr),za=jt(jQ,1,"jse-value-outer svelte-u14cgx",null,za,sa)},[()=>(k(My),k(l(Zn)),oA(()=>My(l(Zn)))),()=>({"jse-selected-value":l(Xg)})],ZA),iA(Vr,Uo)});var Wg=CA(ng),og=Vr=>{iA(Vr,GTA())};GA(Wg,Vr=>{l(A)&&Vr(og)}),iA(rt,Fr)});var Tt,bo=W(CA(Yn));Qo(ve,rt=>y(JA,rt),()=>l(JA)),Ts(ve,(rt,Ai)=>wy?.(rt,Ai),()=>Qt),rs(()=>ce("scroll",ve,et));var kn=CA(ve,2),oo=rt=>{var Ai=ZA(()=>(l(zA),oA(()=>"You pasted a JSON ".concat(Array.isArray(l(zA).contents)?"array":"object"," as text")))),ho=ZA(()=>[{icon:_0,text:"Paste as JSON instead",title:"Paste the text as JSON instead of a single value",onMouseDown:$A},{text:"Leave as is",title:"Keep the pasted content as a single value",onClick:Ci}]);pc(rt,{type:"info",get message(){return l(Ai)},get actions(){return l(ho)}})};GA(kn,rt=>{l(zA)&&rt(oo)});var An=CA(kn,2),Lt=rt=>{var Ai=ZA(()=>[{icon:_0,text:"Paste as string instead",title:"Paste the clipboard data as a single string value instead of an array",onClick:Un},{text:"Leave as is",title:"Keep the pasted array",onClick:io}]);pc(rt,{type:"info",message:"Multiline text was pasted as array",get actions(){return l(Ai)}})};GA(An,rt=>{l(xA)&&rt(Lt)});var Ti=CA(An,2),xt=rt=>{var Ai=ZA(()=>C()?[]:[{icon:U5,text:"Ok",title:"Accept the repaired document",onClick:Wi},{icon:B4,text:"Repair manually instead",title:"Leave the document unchanged and repair it manually instead",onClick:Wo}]);pc(rt,{type:"success",message:"The loaded JSON document was invalid but is successfully repaired.",get actions(){return l(Ai)},onClose:b})};GA(Ti,rt=>{l($e)&&rt(xt)}),SK(CA(Ti,2),{get validationErrors(){return l(Zi)},selectError:vt}),we((rt,Ai,ho)=>{At=jt(Cn,1,"jse-table-invisible-start-section svelte-u14cgx",null,At,rt),gn(xi,"colspan",(l(Re),oA(()=>l(Re).length))),ui=eg(xi,"",ui,Ai),gn(bo,"colspan",(l(Re),oA(()=>l(Re).length))),Tt=eg(bo,"",Tt,ho)},[()=>({"jse-search-box-background":l(LA)}),()=>({height:(l(i),oA(()=>l(i).startHeight+"px"))}),()=>({height:(l(i),oA(()=>l(i).endHeight+"px"))})],ZA),iA(ne,Pe)},ee=(ne,Pe)=>{var Oe=Ne=>{var Yi=JTA(),H=Mt(Yi),rA=ZA(()=>C()?[]:[{icon:B4,text:"Repair manually",title:'Open the document in "code" mode and repair it manually',onClick:Wo}]);pc(H,{type:"error",message:"The loaded JSON document is invalid and could not be repaired automatically.",get actions(){return l(rA)}}),acA(CA(H,2),{get text(){return l(OA)},get json(){return l(tA)},get indentation(){return K()},get parser(){return D()}}),iA(Ne,Yi)},ve=Ne=>{kTA(Ne,{get text(){return l(OA)},get json(){return l(tA)},get readOnly(){return C()},get parser(){return D()},openJSONEditorModal:rn,extractPath:hn,get onChangeMode(){return V()},onClick:()=>{b()}})};GA(ne,Ne=>{l(gA)&&l(OA)!==void 0&&l(OA)!==""?Ne(Oe):Ne(ve,!1)},Pe)};GA(Z,ne=>{l(St)?ne(RA):ne(ee,!1)}),ce("paste",q,aA),iA(p,F)},Nr=p=>{iA(p,TTA())};GA(Ko,p=>{I?p(Nr,!1):p(Ot)}),Qo(Qi,p=>y(BA,p),()=>l(BA));var Jn=CA(Qi,2),Q=p=>{ZaA(p,{onClose:()=>y(L,!1)})};GA(Jn,p=>{l(L)&&p(Q)});var m=CA(Jn,2),v=p=>{WaA(p,AI(()=>l(We),{onClose:()=>{var F;(F=l(We))===null||F===void 0||F.onClose(),y(We,void 0)}}))};return GA(m,p=>{l(We)&&p(v)}),we(p=>Te=jt(Qi,1,"jse-table-mode svelte-u14cgx",null,Te,p),[()=>({"no-main-menu":!h()})],ZA),ce("mousedown",Qi,function(p){if(p.buttons===1||p.buttons===2){var F=p.target;F.isContentEditable||b();var U=uaA(F);if(U){if(Sr(l(MA))&&nf(l(tA),l(MA),U))return;y(MA,vi(U)),p.preventDefault()}}}),ce("keydown",Qi,function(p){var F=s2(p);if(o("keydown",{combo:F,key:p.key}),F==="Ctrl+X"&&(p.preventDefault(),Xo(!0)),F==="Ctrl+Shift+X"&&(p.preventDefault(),Xo(!1)),F==="Ctrl+C"&&(p.preventDefault(),on(!0)),F==="Ctrl+Shift+C"&&(p.preventDefault(),on(!1)),F==="Ctrl+D"&&(p.preventDefault(),hA()),F!=="Delete"&&F!=="Backspace"||(p.preventDefault(),yt()),F==="Insert"&&p.preventDefault(),F==="Ctrl+A"&&p.preventDefault(),F==="Ctrl+Q"&&qo(p),F==="ArrowLeft"&&(p.preventDefault(),ai(),l(MA))){var U=function(Pe,Oe){var{rowIndex:ve,columnIndex:Ne}=Xc(nt(Oe),Pe);return Ne>0?vi(PC({rowIndex:ve,columnIndex:Ne-1},Pe)):Oe}(l(Re),l(MA));y(MA,U),Mo(nt(U))}if(F==="ArrowRight"&&(p.preventDefault(),ai(),l(MA))){var q=function(Pe,Oe){var{rowIndex:ve,columnIndex:Ne}=Xc(nt(Oe),Pe);return Ne0?vi(PC({rowIndex:ve-1,columnIndex:Ne},Pe)):Oe}(l(Re),l(MA));y(MA,Z),Mo(nt(Z))}if(F==="ArrowDown"&&(p.preventDefault(),ai(),l(MA))){var RA=function(Pe,Oe,ve){var{rowIndex:Ne,columnIndex:Yi}=Xc(nt(ve),Oe);return Ney(UA,L)}).get()),BA=$(a());function JA(L){if(GrA(L)){y(BA,L.undo.mode);var T=l(UA).items(),P=T.findIndex(kA=>kA===L),X=P!==-1?T[P-1]:void 0;ie("handleUndo",{index:P,item:L,items:T,prevItem:X}),X&&i(X.redo.selection),J()(l(BA))}}function Xe(L){if(GrA(L)){y(BA,L.redo.mode);var T=l(UA).items(),P=T.findIndex(kA=>kA===L),X=P!==-1?T[P+1]:void 0;ie("handleRedo",{index:P,item:L,items:T,nextItem:X}),X&&i(X.undo.selection),J()(l(BA))}}var We=$(),KA={type:"separator"},tA=$(),OA=$();function gA(L){if(l(lA))return l(lA).patch(L);if(l(wA))return l(wA).patch(L);if(l(VA))return l(VA).patch(L);throw new Error('Method patch is not available in mode "'.concat(l(BA),'"'))}function zA(L,T){if(l(lA))return l(lA).expand(L,T);if(l(VA))return l(VA).expand(L,T);throw new Error('Method expand is not available in mode "'.concat(l(BA),'"'))}function xA(L,T){if(l(lA))return l(lA).collapse(L,T);if(l(VA))return l(VA).collapse(L,T);throw new Error('Method collapse is not available in mode "'.concat(l(BA),'"'))}function Me(L){if(l(VA))l(VA).openTransformModal(L);else if(l(lA))l(lA).openTransformModal(L);else{if(!l(wA))throw new Error('Method transform is not available in mode "'.concat(l(BA),'"'));l(wA).openTransformModal(L)}}function LA(){if(l(VA))return l(VA).validate();if(l(lA))return l(lA).validate();if(l(wA))return l(wA).validate();throw new Error('Method validate is not available in mode "'.concat(l(BA),'"'))}function cA(){return l(lA)?l(lA).acceptAutoRepair():A()}function Gt(L){if(l(lA))return l(lA).scrollTo(L);if(l(wA))return l(wA).scrollTo(L);throw new Error('Method scrollTo is not available in mode "'.concat(l(BA),'"'))}function ct(L){if(l(lA))return l(lA).findElement(L);if(l(wA))return l(wA).findElement(L);throw new Error('Method findElement is not available in mode "'.concat(l(BA),'"'))}function oe(){l(VA)?l(VA).focus():l(lA)?l(lA).focus():l(wA)&&l(wA).focus()}function Dt(){return _e.apply(this,arguments)}function _e(){return(_e=_t(function*(){l(VA)&&(yield l(VA).refresh())})).apply(this,arguments)}pA(()=>k(a()),()=>{(function(L){if(L!==l(BA)){var T={type:"mode",undo:{mode:l(BA),selection:void 0},redo:{mode:L,selection:void 0}};l(BA)==="text"&&l(VA)&&l(VA).flush(),ie("add history item",T),l(UA).add(T),y(BA,L)}})(a())}),pA(()=>(l(BA),k(J())),()=>{y(We,[{type:"button",text:"text",title:"Switch to text mode (current mode: ".concat(l(BA),")"),className:"jse-group-button jse-first"+(l(BA)===ir.text?" jse-selected":""),onClick:()=>J()(ir.text)},{type:"button",text:"tree",title:"Switch to tree mode (current mode: ".concat(l(BA),")"),className:"jse-group-button "+(l(BA)===ir.tree?" jse-selected":""),onClick:()=>J()(ir.tree)},{type:"button",text:"table",title:"Switch to table mode (current mode: ".concat(l(BA),")"),className:"jse-group-button jse-last"+(l(BA)===ir.table?" jse-selected":""),onClick:()=>J()(ir.table)}])}),pA(()=>(l(We),k(V()),l(BA),k(D()),k(n())),()=>{y(tA,L=>{var T=_G(L[0])?l(We).concat(L):l(We).concat(KA,L),P=g4(T);return V()(T,{mode:l(BA),modal:D(),readOnly:n()})||P})}),pA(()=>(k(j()),l(BA),k(D()),k(n()),k(i())),()=>{y(OA,L=>{var T,P=g4(L);return(T=j()(L,{mode:l(BA),modal:D(),readOnly:n(),selection:i()}))!==null&&T!==void 0?T:!n()&&P})}),ln(),qt();var Re=_o(),St=Mt(Re),Se=L=>{Qo(QTA(L,{get externalContent(){return A()},get externalSelection(){return i()},get history(){return l(UA)},get readOnly(){return n()},get indentation(){return o()},get tabSize(){return r()},get mainMenuBar(){return c()},get statusBar(){return I()},get askToFormat(){return C()},get escapeUnicodeCharacters(){return B()},get parser(){return u()},get validator(){return w()},get validationParser(){return x()},get onChange(){return G()},get onChangeMode(){return J()},get onSelect(){return z()},onUndo:JA,onRedo:Xe,get onError(){return dA()},get onFocus(){return fA()},get onBlur(){return EA()},get onRenderMenu(){return l(tA)},get onSortModal(){return IA()},get onTransformModal(){return SA()},$$legacy:!0}),T=>y(VA,T),()=>l(VA))},Wt=(L,T)=>{var P=kA=>{Qo(OTA(kA,{get externalContent(){return A()},get externalSelection(){return i()},get history(){return l(UA)},get readOnly(){return n()},get truncateTextSize(){return s()},get mainMenuBar(){return c()},get escapeControlCharacters(){return d()},get escapeUnicodeCharacters(){return B()},get flattenColumns(){return E()},get parser(){return u()},get parseMemoizeOne(){return h()},get validator(){return w()},get validationParser(){return x()},get indentation(){return o()},get onChange(){return G()},get onChangeMode(){return J()},get onSelect(){return z()},onUndo:JA,onRedo:Xe,get onRenderValue(){return K()},get onFocus(){return fA()},get onBlur(){return EA()},get onRenderMenu(){return l(tA)},get onRenderContextMenu(){return l(OA)},get onSortModal(){return IA()},get onTransformModal(){return SA()},get onJSONEditorModal(){return nA()},$$legacy:!0}),le=>y(wA,le),()=>l(wA))},X=kA=>{Qo($G(kA,{get externalContent(){return A()},get externalSelection(){return i()},get history(){return l(UA)},get readOnly(){return n()},get indentation(){return o()},get truncateTextSize(){return s()},get mainMenuBar(){return c()},get navigationBar(){return g()},get escapeControlCharacters(){return d()},get escapeUnicodeCharacters(){return B()},get parser(){return u()},get parseMemoizeOne(){return h()},get validator(){return w()},get validationParser(){return x()},get pathParser(){return R()},get onError(){return dA()},get onChange(){return G()},get onChangeMode(){return J()},get onSelect(){return z()},onUndo:JA,onRedo:Xe,get onRenderValue(){return K()},get onClassName(){return O()},get onFocus(){return fA()},get onBlur(){return EA()},get onRenderMenu(){return l(tA)},get onRenderContextMenu(){return l(OA)},get onSortModal(){return IA()},get onTransformModal(){return SA()},get onJSONEditorModal(){return nA()},$$legacy:!0}),le=>y(lA,le),()=>l(lA))};GA(L,kA=>{l(BA),k(ir),oA(()=>l(BA)===ir.table)?kA(P):kA(X,!1)},T)};return GA(St,L=>{l(BA),k(ir),oA(()=>l(BA)===ir.text||String(l(BA))==="code")?L(Se):L(Wt,!1)}),iA(t,Re),Ft(e,"patch",gA),Ft(e,"expand",zA),Ft(e,"collapse",xA),Ft(e,"transform",Me),Ft(e,"validate",LA),Ft(e,"acceptAutoRepair",cA),Ft(e,"scrollTo",Gt),Ft(e,"findElement",ct),Ft(e,"focus",oe),Ft(e,"refresh",Dt),mt({patch:gA,expand:zA,collapse:xA,transform:Me,validate:LA,acceptAutoRepair:cA,scrollTo:Gt,findElement:ct,focus:oe,refresh:Dt})}Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -3751,7 +3751,7 @@ button.jse-context-menu-button.svelte-1idfykj svg { } .jse-modal-wrapper.svelte-v0el4e input:where(.svelte-v0el4e):read-only { background: var(--jse-input-background-readonly, transparent); -}`);var HTA=vA('
            '),OTA=vA(''),zTA=vA(''),PTA=vA(''),jTA=vA('
            Path
            Contents
            ',1),qTA=vA('
            '),VTA={};Ut(`/* over all fonts, sizes, and colors */ +}`);var zTA=vA('
            '),PTA=vA(''),jTA=vA(''),qTA=vA(''),VTA=vA('
            Path
            Contents
            ',1),ZTA=vA('
            '),WTA={};Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -3838,7 +3838,7 @@ button.jse-context-menu-button.svelte-1idfykj svg { } .jse-modal-contents.svelte-1v9c92j .jse-space:where(.svelte-1v9c92j) .jse-error:where(.svelte-1v9c92j) { color: var(--jse-error-color, #ee5341); -}`);var CQ=i7(()=>VTA),ZTA=vA('Property'),WTA=vA('
            '),XTA=vA('
            Path
            Direction
            ',1);Ut(`/* over all fonts, sizes, and colors */ +}`);var CQ=i7(()=>WTA),XTA=vA('Property'),$TA=vA('
            '),AHA=vA('
            Path
            Direction
            ',1);Ut(`/* over all fonts, sizes, and colors */ /* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ /* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ /* main, menu, modal */ @@ -3872,15 +3872,15 @@ button.jse-context-menu-button.svelte-1idfykj svg { .jse-main.svelte-57bmz4:not(.jse-focus) { --jse-selection-background-color: var(--jse-selection-background-inactive-color, #e8e8e8); --jse-context-menu-pointer-background: var(--jse-context-menu-pointer-hover-background, #b2b2b2); -}`);var $TA=vA('
            ',1);function AHA(t,e){ft(e,!1);var A=$(void 0,!0),i=xr("jsoneditor:JSONEditor"),n={text:""},o=void 0,r=!1,s=ir.tree,a=!0,c=!0,g=!0,I=!0,C=!1,d=!1,B=!0,E=JSON,u=void 0,h=JSON,w={parse:qKA,stringify:Ta},x=[CKA],R=x[0].id,D=$c,G=void 0,J=void 0,z=jKA,K=$c,O=$c,V=$c,j=$c,dA=$A=>{console.error($A),alert($A.toString())},fA=$c,EA=$c,IA=M(e,"content",13,n),SA=M(e,"selection",13,o),nA=M(e,"readOnly",13,r),lA=M(e,"indentation",13,2),wA=M(e,"tabSize",13,4),VA=M(e,"truncateTextSize",13,1e3),ie=M(e,"mode",13,s),UA=M(e,"mainMenuBar",13,a),BA=M(e,"navigationBar",13,c),JA=M(e,"statusBar",13,g),Xe=M(e,"askToFormat",13,I),We=M(e,"escapeControlCharacters",13,C),KA=M(e,"escapeUnicodeCharacters",13,d),tA=M(e,"flattenColumns",13,B),OA=M(e,"parser",13,E),gA=M(e,"validator",13,u),zA=M(e,"validationParser",13,h),xA=M(e,"pathParser",13,w),Me=M(e,"queryLanguages",13,x),LA=M(e,"queryLanguageId",13,R),cA=M(e,"onChangeQueryLanguage",13,D),Gt=M(e,"onChange",13,G),ct=M(e,"onSelect",13,J),oe=M(e,"onRenderValue",13,z),Dt=M(e,"onClassName",13,K),_e=M(e,"onRenderMenu",13,O),Re=M(e,"onRenderContextMenu",13,V),St=M(e,"onChangeMode",13,j),Se=M(e,"onError",13,dA),Wt=M(e,"onFocus",13,fA),L=M(e,"onBlur",13,EA),T=$(QQ(),!0),P=$(!1,!0),X=$(void 0,!0),kA=$(void 0,!0),le=$(void 0,!0),Ee=$(void 0,!0),NA=$(OA(),!0);function MA(){return IA()}function Ct($A){i("set");var Ei=nG($A);if(Ei)throw new Error(Ei);y(T,QQ()),IA($A),to()}function $e($A){i("update");var Ei=nG($A);if(Ei)throw new Error(Ei);IA($A),to()}function XA($A){var Ei=l(X).patch($A);return to(),Ei}function ot($A){SA($A),to()}function Si($A,Ei){l(X).expand($A,Ei),to()}function Zi($A){var Ei=arguments.length>1&&arguments[1]!==void 0&&arguments[1];l(X).collapse($A,Ei),to()}function Oi(){var $A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};l(X).transform($A),to()}function Le(){return l(X).validate()}function zi(){var $A=l(X).acceptAutoRepair();return to(),$A}function fi($A){return Ht.apply(this,arguments)}function Ht(){return(Ht=_t(function*($A){yield l(X).scrollTo($A)})).apply(this,arguments)}function Rt($A){return l(X).findElement($A)}function Bi(){l(X).focus(),to()}function Mi(){return Jt.apply(this,arguments)}function Jt(){return(Jt=_t(function*(){yield l(X).refresh()})).apply(this,arguments)}function b($A){var Ei,Ri,un,Un,Zo,Ci,io,Wo,Xo,nr,on,$i,yt,hn,hA,Ae,re,xe,ue,aA,DA,PA,Je,vt,Yt,rn,no,sn,Ji,bt,Li,Mn=Object.keys($A);for(var Qt of Mn)switch(Qt){case"content":IA((Ei=$A[Qt])!==null&&Ei!==void 0?Ei:n);break;case"selection":SA((Ri=$A[Qt])!==null&&Ri!==void 0?Ri:o);break;case"readOnly":nA((un=$A[Qt])!==null&&un!==void 0?un:r);break;case"indentation":lA((Un=$A[Qt])!==null&&Un!==void 0?Un:2);break;case"tabSize":wA((Zo=$A[Qt])!==null&&Zo!==void 0?Zo:4);break;case"truncateTextSize":VA((Ci=$A[Qt])!==null&&Ci!==void 0?Ci:1e3);break;case"mode":ie((io=$A[Qt])!==null&&io!==void 0?io:s);break;case"mainMenuBar":UA((Wo=$A[Qt])!==null&&Wo!==void 0?Wo:a);break;case"navigationBar":BA((Xo=$A[Qt])!==null&&Xo!==void 0?Xo:c);break;case"statusBar":JA((nr=$A[Qt])!==null&&nr!==void 0?nr:g);break;case"askToFormat":Xe((on=$A[Qt])!==null&&on!==void 0?on:I);break;case"escapeControlCharacters":We(($i=$A[Qt])!==null&&$i!==void 0?$i:C);break;case"escapeUnicodeCharacters":KA((yt=$A[Qt])!==null&&yt!==void 0?yt:d);break;case"flattenColumns":tA((hn=$A[Qt])!==null&&hn!==void 0?hn:B);break;case"parser":OA((hA=$A[Qt])!==null&&hA!==void 0?hA:E);break;case"validator":gA((Ae=$A[Qt])!==null&&Ae!==void 0?Ae:u);break;case"validationParser":zA((re=$A[Qt])!==null&&re!==void 0?re:h);break;case"pathParser":xA((xe=$A[Qt])!==null&&xe!==void 0?xe:w);break;case"queryLanguages":Me((ue=$A[Qt])!==null&&ue!==void 0?ue:x);break;case"queryLanguageId":LA((aA=$A[Qt])!==null&&aA!==void 0?aA:R);break;case"onChangeQueryLanguage":cA((DA=$A[Qt])!==null&&DA!==void 0?DA:D);break;case"onChange":Gt((PA=$A[Qt])!==null&&PA!==void 0?PA:G);break;case"onRenderValue":oe((Je=$A[Qt])!==null&&Je!==void 0?Je:z);break;case"onClassName":Dt((vt=$A[Qt])!==null&&vt!==void 0?vt:K);break;case"onRenderMenu":_e((Yt=$A[Qt])!==null&&Yt!==void 0?Yt:O);break;case"onRenderContextMenu":Re((rn=$A[Qt])!==null&&rn!==void 0?rn:V);break;case"onChangeMode":St((no=$A[Qt])!==null&&no!==void 0?no:j);break;case"onSelect":ct((sn=$A[Qt])!==null&&sn!==void 0?sn:J);break;case"onError":Se((Ji=$A[Qt])!==null&&Ji!==void 0?Ji:dA);break;case"onFocus":Wt((bt=$A[Qt])!==null&&bt!==void 0?bt:fA);break;case"onBlur":L((Li=$A[Qt])!==null&&Li!==void 0?Li:EA);break;default:fn(Qt)}function fn(Te){i('Unknown property "'.concat(Te,'"'))}Me().some(Te=>Te.id===LA())||LA(Me()[0].id),to()}function et(){return ai.apply(this,arguments)}function ai(){return(ai=_t(function*(){throw new Error("class method destroy() is deprecated. It is replaced with a method destroy() in the vanilla library.")})).apply(this,arguments)}function Wi($A,Ei,Ri){IA($A),Gt()&&Gt()($A,Ei,Ri)}function Xi($A){SA($A),ct()&&ct()(g4($A))}function xn(){y(P,!0),Wt()&&Wt()()}function Mo(){y(P,!1),L()&&L()()}function vn($A){return In.apply(this,arguments)}function In(){return(In=_t(function*($A){ie()!==$A&&(ie($A),to(),Bi(),St()($A))})).apply(this,arguments)}function qo($A){i("handleChangeQueryLanguage",$A),LA($A),cA()($A)}function Vo($A){var{id:Ei,json:Ri,rootPath:un,onTransform:Un,onClose:Zo}=$A;nA()||y(Ee,{id:Ei,json:Ri,rootPath:un,indentation:lA(),truncateTextSize:VA(),escapeControlCharacters:We(),escapeUnicodeCharacters:KA(),parser:OA(),parseMemoizeOne:l(A),validationParser:zA(),pathParser:xA(),queryLanguages:Me(),queryLanguageId:LA(),onChangeQueryLanguage:qo,onRenderValue:oe(),onRenderMenu:Ci=>_e()(Ci,{mode:ie(),modal:!0,readOnly:nA()}),onRenderContextMenu:Ci=>Re()(Ci,{mode:ie(),modal:!0,readOnly:nA(),selection:SA()}),onClassName:Dt(),onTransform:Un,onClose:Zo})}function uo($A){nA()||y(le,$A)}function Qn($A){var{content:Ei,path:Ri,onPatch:un,onClose:Un}=$A;i("onJSONEditorModal",{content:Ei,path:Ri}),y(kA,{content:Ei,path:Ri,onPatch:un,readOnly:nA(),indentation:lA(),tabSize:wA(),truncateTextSize:VA(),mainMenuBar:UA(),navigationBar:BA(),statusBar:JA(),askToFormat:Xe(),escapeControlCharacters:We(),escapeUnicodeCharacters:KA(),flattenColumns:tA(),parser:OA(),validator:void 0,validationParser:zA(),pathParser:xA(),onRenderValue:oe(),onClassName:Dt(),onRenderMenu:_e(),onRenderContextMenu:Re(),onSortModal:uo,onTransformModal:Vo,onClose:Un})}function Kn($A){$A.stopPropagation()}return pA(()=>(k(OA()),l(NA),k(IA()),QQ),()=>{if(!gaA(OA(),l(NA))){if(i("parser changed, recreate editor"),X3(IA())){var $A=l(NA).stringify(IA().json);IA({json:$A!==void 0?OA().parse($A):void 0})}y(NA,OA()),y(T,QQ())}}),pA(()=>k(IA()),()=>{var $A=nG(IA());$A&&console.error("Error: "+$A)}),pA(()=>k(SA()),()=>{SA()===null&&console.warn("selection is invalid: it is null but should be undefined")}),pA(()=>k(OA()),()=>{y(A,hE(OA().parse))}),pA(()=>k(ie()),()=>{i("mode changed to",ie())}),ln(),qt(!0),NG(t,{children:($A,Ei)=>{var Ri,un=$TA(),Un=Mt(un);XsA(W(Un),()=>l(T),on=>{Qo(BsA(on,{get externalMode(){return ie()},get content(){return IA()},get selection(){return SA()},get readOnly(){return nA()},get indentation(){return lA()},get tabSize(){return wA()},get truncateTextSize(){return VA()},get statusBar(){return JA()},get askToFormat(){return Xe()},get mainMenuBar(){return UA()},get navigationBar(){return BA()},get escapeControlCharacters(){return We()},get escapeUnicodeCharacters(){return KA()},get flattenColumns(){return tA()},get parser(){return OA()},get parseMemoizeOne(){return l(A)},get validator(){return gA()},get validationParser(){return zA()},get pathParser(){return xA()},insideModal:!1,get onError(){return Se()},onChange:Wi,onChangeMode:vn,onSelect:Xi,get onRenderValue(){return oe()},get onClassName(){return Dt()},onFocus:xn,onBlur:Mo,get onRenderMenu(){return _e()},get onRenderContextMenu(){return Re()},onSortModal:uo,onTransformModal:Vo,onJSONEditorModal:Qn,$$legacy:!0}),$i=>y(X,$i),()=>l(X))});var Zo=CA(Un,2),Ci=on=>{(function($i,yt){var hn,hA;ft(yt,!1);var Ae=$(void 0,!0),re=$(void 0,!0),xe=$(void 0,!0),ue=$(void 0,!0),aA=xr("jsoneditor:SortModal"),DA=M(yt,"id",9),PA=M(yt,"json",9),Je=M(yt,"rootPath",9),vt=M(yt,"onSort",9),Yt=M(yt,"onClose",9),rn={value:1,label:"ascending"},no=[rn,{value:-1,label:"descending"}],sn="".concat(DA(),":").concat(It(Je())),Ji=$((hn=CQ()[sn])===null||hn===void 0?void 0:hn.selectedProperty,!0),bt=$(((hA=CQ()[sn])===null||hA===void 0?void 0:hA.selectedDirection)||rn,!0),Li=$(void 0,!0);function Mn(){try{var fn,Te,Qi;y(Li,void 0);var mi=((fn=l(Ji))===null||fn===void 0?void 0:fn.value)||((Te=l(ue))===null||Te===void 0||(Te=Te[0])===null||Te===void 0?void 0:Te.value)||[],bn=(Qi=l(bt))===null||Qi===void 0?void 0:Qi.value,Ko=$aA(PA(),Je(),mi,bn);vt()!==void 0&&Je()!==void 0&&vt()({operations:Ko,rootPath:Je(),itemPath:mi,direction:bn}),Yt()()}catch(Ot){y(Li,String(Ot))}}function Qt(fn){fn.focus()}pA(()=>(k(PA()),k(Je())),()=>{y(Ae,Ye(PA(),Je()))}),pA(()=>l(Ae),()=>{y(re,Array.isArray(l(Ae)))}),pA(()=>(l(re),l(Ae)),()=>{y(xe,l(re)?LG(l(Ae)):void 0)}),pA(()=>(l(xe),q1),()=>{y(ue,l(xe)?l(xe).map(q1):void 0)}),pA(()=>(CQ(),l(Ji),l(bt)),()=>{CQ(CQ()[sn]={selectedProperty:l(Ji),selectedDirection:l(bt)}),aA("store state in memory",sn,CQ()[sn])}),ln(),qt(!0),sf($i,{get onClose(){return Yt()},className:"jse-sort-modal",children:(fn,Te)=>{var Qi=XTA(),mi=Mt(Qi),bn=ZA(()=>l(re)?"Sort array items":"Sort object keys");qy(mi,{get title(){return l(bn)},get onClose(){return Yt()}});var Ko=W(CA(mi,2)),Ot=CA(W(Ko)),Nr=W(Ot),Jn=CA(W(Nr)),Q=W(Jn),m=CA(Nr),v=ee=>{var ne=ZTA(),Pe=CA(W(ne));jC(W(Pe),{showChevron:!0,get items(){return l(ue)},get value(){return l(Ji)},set value(Oe){y(Ji,Oe)},$$legacy:!0}),iA(ee,ne)};GA(m,ee=>{l(re),l(ue),oA(()=>{var ne;return l(re)&&l(ue)&&((ne=l(ue))===null||ne===void 0?void 0:ne.length)>1})&&ee(v)});var p=CA(m),F=CA(W(p));jC(W(F),{showChevron:!0,clearable:!1,get items(){return no},get value(){return l(bt)},set value(ee){y(bt,ee)},$$legacy:!0});var U=CA(Ko,2),q=W(U),Z=ee=>{var ne=WTA(),Pe=W(ne);we(()=>pt(Pe,l(Li))),iA(ee,ne)};GA(q,ee=>{l(Li)&&ee(Z)});var RA=W(CA(U,2));rs(()=>ce("click",RA,Mn)),Ts(RA,ee=>Qt?.(ee)),we(ee=>{ed(Q,ee),RA.disabled=(l(re),l(ue),l(Ji),oA(()=>{var ne;return!!(l(re)&&l(ue)&&((ne=l(ue))===null||ne===void 0?void 0:ne.length)>1)&&!l(Ji)}))},[()=>(k(Je()),k(Gi),k(Ta),oA(()=>Je()&&!Gi(Je())?Ta(Je()):"(document root)"))],ZA),iA(fn,Qi)},$$slots:{default:!0}}),mt()})(on,AI(()=>l(le),{onClose:()=>{var $i;($i=l(le))===null||$i===void 0||$i.onClose(),y(le,void 0)}}))};GA(Zo,on=>{l(le)&&on(Ci)});var io=CA(Zo,2),Wo=on=>{$YA(on,AI(()=>l(Ee),{onClose:()=>{var $i;($i=l(Ee))===null||$i===void 0||$i.onClose(),y(Ee,void 0)}}))};GA(io,on=>{l(Ee)&&on(Wo)});var Xo=CA(io,2),nr=on=>{(function($i,yt){ft(yt,!1);var hn=$(void 0,!0),hA=$(void 0,!0),Ae=$(void 0,!0),re=$(void 0,!0),xe=xr("jsoneditor:JSONEditorModal"),ue=M(yt,"content",9),aA=M(yt,"path",9),DA=M(yt,"onPatch",9),PA=M(yt,"readOnly",9),Je=M(yt,"indentation",9),vt=M(yt,"tabSize",9),Yt=M(yt,"truncateTextSize",9),rn=M(yt,"mainMenuBar",9),no=M(yt,"navigationBar",9),sn=M(yt,"statusBar",9),Ji=M(yt,"askToFormat",9),bt=M(yt,"escapeControlCharacters",9),Li=M(yt,"escapeUnicodeCharacters",9),Mn=M(yt,"flattenColumns",9),Qt=M(yt,"parser",9),fn=M(yt,"validator",9),Te=M(yt,"validationParser",9),Qi=M(yt,"pathParser",9),mi=M(yt,"onRenderValue",9),bn=M(yt,"onClassName",9),Ko=M(yt,"onRenderMenu",9),Ot=M(yt,"onRenderContextMenu",9),Nr=M(yt,"onSortModal",9),Jn=M(yt,"onTransformModal",9),Q=M(yt,"onClose",9),m=$(void 0,!0),v=$(void 0,!0),p={mode:q(ue()),content:ue(),selection:void 0,relativePath:aA()},F=$([p],!0),U=$(void 0,!0);function q(rA){return X3(rA)&&wo(rA.json)?ir.table:ir.tree}function Z(){var rA,HA=(rA=li(l(F)))===null||rA===void 0?void 0:rA.selection;tf(HA)&&l(m).scrollTo(nt(HA))}function RA(){if(xe("handleApply"),!PA())try{y(U,void 0);var rA=l(hn).relativePath,HA=l(hn).content,De=[{op:"replace",path:It(rA),value:vrA(HA,Qt()).json}];if(l(F).length>1){var fe=vrA(l(F)[l(F).length-2].content,Qt()).json,Ie={json:Ma(fe,De)},dt=pe(pe({},l(F)[l(F).length-2]||p),{},{content:Ie});y(F,[...l(F).slice(0,l(F).length-2),dt]),to(),Z()}else DA()(De),Q()()}catch(At){y(U,String(At))}}function ee(){if(xe("handleClose"),l(v))y(v,!1);else if(l(F).length>1){var rA;y(F,yi(l(F))),to(),(rA=l(m))===null||rA===void 0||rA.focus(),Z(),y(U,void 0)}else Q()()}function ne(rA){xe("handleChange",rA),ve(HA=>pe(pe({},HA),{},{content:rA}))}function Pe(rA){xe("handleChangeSelection",rA),ve(HA=>pe(pe({},HA),{},{selection:rA}))}function Oe(rA){xe("handleChangeMode",rA),ve(HA=>pe(pe({},HA),{},{mode:rA}))}function ve(rA){var HA=rA(li(l(F)));y(F,[...yi(l(F)),HA])}function Ne(rA){y(U,rA.toString()),console.error(rA)}function Yi(rA){var HA,{content:De,path:fe}=rA;xe("handleJSONEditorModal",{content:De,path:fe});var Ie={mode:q(De),content:De,selection:void 0,relativePath:fe};y(F,[...l(F),Ie]),to(),(HA=l(m))===null||HA===void 0||HA.focus()}function H(rA){rA.focus()}ws(()=>{var rA;(rA=l(m))===null||rA===void 0||rA.focus()}),pA(()=>l(F),()=>{y(hn,li(l(F))||p)}),pA(()=>l(F),()=>{y(hA,l(F).flatMap(rA=>rA.relativePath))}),pA(()=>(l(hA),Ta),()=>{y(Ae,Gi(l(hA))?"(document root)":Ta(l(hA)))}),pA(()=>k(Qt()),()=>{y(re,hE(Qt().parse))}),ln(),qt(!0),sf($i,{onClose:ee,className:"jse-jsoneditor-modal",get fullscreen(){return l(v)},children:(rA,HA)=>{var De=qTA();NG(W(De),{children:(fe,Ie)=>{var dt=jTA(),At=Mt(dt),ui=ZA(()=>(l(F),oA(()=>l(F).length>1?" (".concat(l(F).length,")"):"")));qy(At,{get title(){var xt;return"Edit nested content ".concat((xt=l(ui))!==null&&xt!==void 0?xt:"")},fullScreenButton:!0,onClose:ee,get fullscreen(){return l(v)},set fullscreen(xt){y(v,xt)},$$legacy:!0});var Cn=CA(At,2),xi=CA(W(Cn),2),Yn=CA(xi,4);Qo(BsA(W(Yn),{get externalMode(){return l(hn),oA(()=>l(hn).mode)},get content(){return l(hn),oA(()=>l(hn).content)},get selection(){return l(hn),oA(()=>l(hn).selection)},get readOnly(){return PA()},get indentation(){return Je()},get tabSize(){return vt()},get truncateTextSize(){return Yt()},get statusBar(){return sn()},get askToFormat(){return Ji()},get mainMenuBar(){return rn()},get navigationBar(){return no()},get escapeControlCharacters(){return bt()},get escapeUnicodeCharacters(){return Li()},get flattenColumns(){return Mn()},get parser(){return Qt()},get parseMemoizeOne(){return l(re)},get validator(){return fn()},get validationParser(){return Te()},get pathParser(){return Qi()},insideModal:!0,onError:Ne,onChange:ne,onChangeMode:Oe,onSelect:Pe,get onRenderValue(){return mi()},get onClassName(){return bn()},get onFocus(){return $c},get onBlur(){return $c},get onRenderMenu(){return Ko()},get onRenderContextMenu(){return Ot()},get onSortModal(){return Nr()},get onTransformModal(){return Jn()},onJSONEditorModal:Yi,$$legacy:!0}),xt=>y(m,xt),()=>l(m));var Tt=W(CA(Yn,2)),bo=xt=>{var rt=HTA(),Ai=W(rt);we(()=>pt(Ai,l(U))),iA(xt,rt)};GA(Tt,xt=>{l(U)&&xt(bo)});var kn=CA(Tt,2),oo=xt=>{var rt=OTA();Ui(W(rt),{get data(){return BX}}),ce("click",rt,ee),iA(xt,rt)};GA(kn,xt=>{l(F),oA(()=>l(F).length>1)&&xt(oo)});var An=CA(kn,2),Lt=xt=>{var rt=zTA();rs(()=>ce("click",rt,RA)),Ts(rt,Ai=>H?.(Ai)),iA(xt,rt)},Ti=xt=>{var rt=PTA();ce("click",rt,ee),iA(xt,rt)};GA(An,xt=>{PA()?xt(Ti,!1):xt(Lt)}),we(()=>ed(xi,l(Ae))),iA(fe,dt)},$$slots:{default:!0}}),iA(rA,De)},$$slots:{default:!0}}),mt()})(on,AI(()=>l(kA),{onClose:()=>{var $i;($i=l(kA))===null||$i===void 0||$i.onClose(),y(kA,void 0)}}))};GA(Xo,on=>{l(kA)&&on(nr)}),we(on=>Ri=jt(Un,1,"jse-main svelte-57bmz4",null,Ri,on),[()=>({"jse-focus":l(P)})],ZA),ce("keydown",Un,Kn),iA($A,un)},$$slots:{default:!0}}),Ft(e,"get",MA),Ft(e,"set",Ct),Ft(e,"update",$e),Ft(e,"patch",XA),Ft(e,"select",ot),Ft(e,"expand",Si),Ft(e,"collapse",Zi),Ft(e,"transform",Oi),Ft(e,"validate",Le),Ft(e,"acceptAutoRepair",zi),Ft(e,"scrollTo",fi),Ft(e,"findElement",Rt),Ft(e,"focus",Bi),Ft(e,"refresh",Mi),Ft(e,"updateProps",b),Ft(e,"destroy",et),mt({get:MA,set:Ct,update:$e,patch:XA,select:ot,expand:Si,collapse:Zi,transform:Oi,validate:Le,acceptAutoRepair:zi,scrollTo:fi,findElement:Rt,focus:Bi,refresh:Mi,updateProps:b,destroy:et})}function IcA(t){var{target:e,props:A}=t,i=RGA(AHA,{target:e,props:A});return i.destroy=_t(function*(){return function(n,o){var r=kG.get(n);return r?(kG.delete(n),r(o)):Promise.resolve()}(i)}),to(),i}var UQ=class t{constructor(e){this.el=e}jsonString;editor=null;ngAfterViewInit(){let e={text:this.jsonString};this.editor=IcA({target:document.getElementById("json-editor"),props:{content:e,mode:ir.text,mainMenuBar:!1}})}getJsonString(){return this.editor?.get().text}static \u0275fac=function(A){return new(A||t)(Ge(se))};static \u0275cmp=jA({type:t,selectors:[["app-json-editor"]],inputs:{jsonString:"jsonString"},decls:1,vars:0,consts:[["id","json-editor",1,"json-editor-container","jse-theme-dark"]],template:function(A,i){A&1&&TA(0,"div",0)},styles:[".jse-theme-dark[_ngcontent-%COMP%]{--jse-theme: dark;--jse-theme-color: #2f6dd0;--jse-theme-color-highlight: #467cd2;--jse-background-color: #1e1e1e;--jse-text-color: #d4d4d4;--jse-text-color-inverse: #4d4d4d;--jse-main-border: 1px solid #4f4f4f;--jse-menu-color: #fff;--jse-modal-background: #2f2f2f;--jse-modal-overlay-background: rgba(0, 0, 0, .5);--jse-modal-code-background: #2f2f2f;--jse-tooltip-color: var(--jse-text-color);--jse-tooltip-background: #4b4b4b;--jse-tooltip-border: 1px solid #737373;--jse-tooltip-action-button-color: inherit;--jse-tooltip-action-button-background: #737373;--jse-panel-background: #333333;--jse-panel-background-border: 1px solid #464646;--jse-panel-color: var(--jse-text-color);--jse-panel-color-readonly: #737373;--jse-panel-border: 1px solid #3c3c3c;--jse-panel-button-color-highlight: #e5e5e5;--jse-panel-button-background-highlight: #464646;--jse-navigation-bar-background: #656565;--jse-navigation-bar-background-highlight: #7e7e7e;--jse-navigation-bar-dropdown-color: var(--jse-text-color);--jse-context-menu-background: #4b4b4b;--jse-context-menu-background-highlight: #595959;--jse-context-menu-separator-color: #595959;--jse-context-menu-color: var(--jse-text-color);--jse-context-menu-pointer-background: #737373;--jse-context-menu-pointer-background-highlight: #818181;--jse-context-menu-pointer-color: var(--jse-context-menu-color);--jse-key-color: #9cdcfe;--jse-value-color: var(--jse-text-color);--jse-value-color-number: #b5cea8;--jse-value-color-boolean: #569cd6;--jse-value-color-null: #569cd6;--jse-value-color-string: #ce9178;--jse-value-color-url: #ce9178;--jse-delimiter-color: #949494;--jse-edit-outline: 2px solid var(--jse-text-color);--jse-selection-background-color: #464646;--jse-selection-background-inactive-color: #333333;--jse-hover-background-color: #343434;--jse-active-line-background-color: rgba(255, 255, 255, .06);--jse-search-match-background-color: #343434;--jse-collapsed-items-background-color: #333333;--jse-collapsed-items-selected-background-color: #565656;--jse-collapsed-items-link-color: #b2b2b2;--jse-collapsed-items-link-color-highlight: #ec8477;--jse-search-match-color: #724c27;--jse-search-match-outline: 1px solid #966535;--jse-search-match-active-color: #9f6c39;--jse-search-match-active-outline: 1px solid #bb7f43;--jse-tag-background: #444444;--jse-tag-color: #bdbdbd;--jse-table-header-background: #333333;--jse-table-header-background-highlight: #424242;--jse-table-row-odd-background: rgba(255, 255, 255, .1);--jse-input-background: #3d3d3d;--jse-input-border: var(--jse-main-border);--jse-button-background: #808080;--jse-button-background-highlight: #7a7a7a;--jse-button-color: #e0e0e0;--jse-button-secondary-background: #494949;--jse-button-secondary-background-highlight: #5d5d5d;--jse-button-secondary-background-disabled: #9d9d9d;--jse-button-secondary-color: var(--jse-text-color);--jse-a-color: #55abff;--jse-a-color-highlight: #4387c9;--jse-svelte-select-background: #3d3d3d;--jse-svelte-select-border: 1px solid #4f4f4f;--list-background: #3d3d3d;--item-hover-bg: #505050;--multi-item-bg: #5b5b5b;--input-color: #d4d4d4;--multi-clear-bg: #8a8a8a;--multi-item-clear-icon-color: #d4d4d4;--multi-item-outline: 1px solid #696969;--list-shadow: 0 2px 8px 0 rgba(0, 0, 0, .4);--jse-color-picker-background: #656565;--jse-color-picker-border-box-shadow: #8c8c8c 0 0 0 1px}.json-editor-container[_ngcontent-%COMP%]{height:300px;max-height:300px}"]})};var mf=class t{constructor(e,A){this.dialogRef=e;this.data=A;this.jsonString=JSON.stringify(A.jsonContent,null,2),this.functionName=A.functionName||""}jsonEditorComponent=qs(UQ);jsonString="";functionName="";ngOnInit(){}onSave(){try{this.jsonString=this.jsonEditorComponent().getJsonString();let e=JSON.parse(this.jsonString);this.dialogRef.close(e)}catch(e){alert("Invalid JSON: "+e)}}onCancel(){this.dialogRef.close(null)}static \u0275fac=function(A){return new(A||t)(Ge(fr),Ge(Cs))};static \u0275cmp=jA({type:t,selectors:[["app-edit-json-dialog"]],viewQuery:function(A,i){A&1&&ls(i.jsonEditorComponent,UQ,5),A&2&&yc()},decls:11,vars:3,consts:[[1,"dialog-container"],["mat-dialog-title",""],[3,"jsonString"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2),N(),S(3,"mat-dialog-content"),AA(4),TA(5,"app-json-editor",2),N(),S(6,"mat-dialog-actions",3)(7,"button",4),AA(8,"Cancel"),N(),S(9,"button",5),mA("click",function(){return i.onSave()}),AA(10,"Save"),N()()()),A&2&&(_(2),tt(i.data.dialogHeader),_(2),Bt(" ",i.functionName," "),_(),yA("jsonString",i.jsonString))},dependencies:[Ls,ya,UQ,va,dr,bl],styles:[".dialog-container[_ngcontent-%COMP%]{border-radius:12px;padding:18px;width:500px;box-shadow:0 8px 16px var(--edit-json-dialog-container-box-shadow-color)}.editor[_ngcontent-%COMP%]{padding-top:12px}"]})};var eHA=["input"],tHA=["label"],iHA=["*"],nHA=new eA("mat-checkbox-default-options",{providedIn:"root",factory:dcA});function dcA(){return{color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1}}var Hs=function(t){return t[t.Init=0]="Init",t[t.Checked=1]="Checked",t[t.Unchecked=2]="Unchecked",t[t.Indeterminate=3]="Indeterminate",t}(Hs||{}),oHA={provide:bc,useExisting:Ur(()=>pf),multi:!0},xK=class{source;checked},CcA=dcA(),pf=(()=>{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_ngZone=f(ye);_animationMode=f(_i,{optional:!0});_options=f(nHA,{optional:!0});focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(A){let i=new xK;return i.source=this,i.checked=A,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return`${this.id||this._uniqueId}-input`}required;labelPosition="after";name=null;change=new YA;indeterminateChange=new YA;value;disableRipple;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=Hs.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){f(Pn).load(Yr);let A=f(new Wr("tabindex"),{optional:!0});this._options=this._options||CcA,this.color=this._options.color||CcA.color,this.tabIndex=A==null?0:parseInt(A)||0,this.id=this._uniqueId=f(an).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??!1}ngOnChanges(A){A.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(A){A!=this.checked&&(this._checked=A,this._changeDetectorRef.markForCheck())}_checked=!1;get disabled(){return this._disabled}set disabled(A){A!==this.disabled&&(this._disabled=A,this._changeDetectorRef.markForCheck())}_disabled=!1;get indeterminate(){return this._indeterminate}set indeterminate(A){let i=A!=this._indeterminate;this._indeterminate=A,i&&(this._indeterminate?this._transitionCheckState(Hs.Indeterminate):this._transitionCheckState(this.checked?Hs.Checked:Hs.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_indeterminate=!1;_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(A){this.checked=!!A}registerOnChange(A){this._controlValueAccessorChangeFn=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A}validate(A){return this.required&&A.value!==!0?{required:!0}:null}registerOnValidatorChange(A){this._validatorChangeFn=A}_transitionCheckState(A){let i=this._currentCheckState,n=this._getAnimationTargetElement();if(!(i===A||!n)&&(this._currentAnimationClass&&n.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,A),this._currentCheckState=A,this._currentAnimationClass.length>0)){n.classList.add(this._currentAnimationClass);let o=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{n.classList.remove(o)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){let A=this._options?.clickAction;!this.disabled&&A!=="noop"?(this.indeterminate&&A!=="check"&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Hs.Checked:Hs.Unchecked),this._emitChangeEvent()):(this.disabled&&this.disabledInteractive||!this.disabled&&A==="noop")&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate)}_onInteractionEvent(A){A.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(A,i){if(this._animationMode==="NoopAnimations")return"";switch(A){case Hs.Init:if(i===Hs.Checked)return this._animationClasses.uncheckedToChecked;if(i==Hs.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Hs.Unchecked:return i===Hs.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Hs.Checked:return i===Hs.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Hs.Indeterminate:return i===Hs.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(A){let i=this._inputElement;i&&(i.nativeElement.indeterminate=A)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(A){A.target&&this._labelElement.nativeElement.contains(A.target)&&A.stopPropagation()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-checkbox"]],viewQuery:function(i,n){if(i&1&&(st(eHA,5),st(tHA,5)),i&2){let o;de(o=Be())&&(n._inputElement=o.first),de(o=Be())&&(n._labelElement=o.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,n){i&2&&(Qa("id",n.id),Ke("tabindex",null)("aria-label",null)("aria-labelledby",null),Ro(n.color?"mat-"+n.color:"mat-accent"),he("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mdc-checkbox--disabled",n.disabled)("mat-mdc-checkbox-disabled",n.disabled)("mat-mdc-checkbox-checked",n.checked)("mat-mdc-checkbox-disabled-interactive",n.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",ge],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",ge],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",ge],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?void 0:en(A)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge],checked:[2,"checked","checked",ge],disabled:[2,"disabled","disabled",ge],indeterminate:[2,"indeterminate","indeterminate",ge]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[ut([oHA,{provide:M0,useExisting:t,multi:!0}]),Xt],ngContentSelectors:iHA,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"div",3),mA("click",function(s){return QA(o),uA(n._preventBubblingFromLabel(s))}),S(1,"div",4,0)(3,"div",5),mA("click",function(){return QA(o),uA(n._onTouchTargetClick())}),N(),S(4,"input",6,1),mA("blur",function(){return QA(o),uA(n._onBlur())})("click",function(){return QA(o),uA(n._onInputClick())})("change",function(s){return QA(o),uA(n._onInteractionEvent(s))}),N(),TA(6,"div",7),S(7,"div",8),ur(),S(8,"svg",9),TA(9,"path",10),N(),_I(),TA(10,"div",11),N(),TA(11,"div",12),N(),S(12,"label",13,2),Ue(14),N()()}if(i&2){let o=Cr(2);yA("labelPosition",n.labelPosition),_(4),he("mdc-checkbox--selected",n.checked),yA("checked",n.checked)("indeterminate",n.indeterminate)("disabled",n.disabled&&!n.disabledInteractive)("id",n.inputId)("required",n.required)("tabIndex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex),Ke("aria-label",n.ariaLabel||null)("aria-labelledby",n.ariaLabelledby)("aria-describedby",n.ariaDescribedby)("aria-checked",n.indeterminate?"mixed":null)("aria-controls",n.ariaControls)("aria-disabled",n.disabled&&n.disabledInteractive?!0:null)("aria-expanded",n.ariaExpanded)("aria-owns",n.ariaOwns)("name",n.name)("value",n.value),_(7),yA("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)("matRippleCentered",!0),_(),yA("for",n.inputId)}},dependencies:[Xs,B6],styles:['.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom;padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover>.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:hover>.mat-mdc-checkbox-ripple>.mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control+.mdc-checkbox__ripple{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox--disabled{cursor:default;pointer-events:none}@media(forced-colors: active){.mdc-checkbox--disabled{opacity:.5}}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mdc-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-touch-target,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__native-control,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__ripple,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-ripple::before,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__mixedmark{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox .mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox .mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display, block)}.mat-mdc-checkbox .mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();var sHA=[[["caption"]],[["colgroup"],["col"]],"*"],aHA=["caption","colgroup, col","*"];function cHA(t,e){t&1&&Ue(0,2)}function gHA(t,e){t&1&&(S(0,"thead",0),rr(1,1),N(),S(2,"tbody",0),rr(3,2)(4,3),N(),S(5,"tfoot",0),rr(6,4),N())}function lHA(t,e){t&1&&rr(0,1)(1,2)(2,3)(3,4)}var Zg=new eA("CDK_TABLE");var Q7=(()=>{class t{template=f(mn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkCellDef",""]]})}return t})(),u7=(()=>{class t{template=f(mn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkHeaderCellDef",""]]})}return t})(),QcA=(()=>{class t{template=f(mn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkFooterCellDef",""]]})}return t})(),JQ=(()=>{class t{_table=f(Zg,{optional:!0});_hasStickyChanged=!1;get name(){return this._name}set name(A){this._setNameInput(A)}_name;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;get stickyEnd(){return this._stickyEnd}set stickyEnd(A){A!==this._stickyEnd&&(this._stickyEnd=A,this._hasStickyChanged=!0)}_stickyEnd=!1;cell;headerCell;footerCell;cssClassFriendlyName;_columnCssClassName;constructor(){}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}_updateColumnCssClassName(){this._columnCssClassName=[`cdk-column-${this.cssClassFriendlyName}`]}_setNameInput(A){A&&(this._name=A,this.cssClassFriendlyName=A.replace(/[^a-z0-9_-]/gi,"-"),this._updateColumnCssClassName())}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkColumnDef",""]],contentQueries:function(i,n,o){if(i&1&&(gi(o,Q7,5),gi(o,u7,5),gi(o,QcA,5)),i&2){let r;de(r=Be())&&(n.cell=r.first),de(r=Be())&&(n.headerCell=r.first),de(r=Be())&&(n.footerCell=r.first)}},inputs:{name:[0,"cdkColumnDef","name"],sticky:[2,"sticky","sticky",ge],stickyEnd:[2,"stickyEnd","stickyEnd",ge]},features:[ut([{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}])]})}return t})(),C7=class{constructor(e,A){A.nativeElement.classList.add(...e._columnCssClassName)}},ucA=(()=>{class t extends C7{constructor(){super(f(JQ),f(se))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["cdk-header-cell"],["th","cdk-header-cell",""]],hostAttrs:["role","columnheader",1,"cdk-header-cell"],features:[lt]})}return t})();var hcA=(()=>{class t extends C7{constructor(){let A=f(JQ),i=f(se);super(A,i);let n=A._table?._getCellRole();n&&i.nativeElement.setAttribute("role",n)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["cdk-cell"],["td","cdk-cell",""]],hostAttrs:[1,"cdk-cell"],features:[lt]})}return t})(),d7=class{tasks=[];endTasks=[]},B7=new eA("_COALESCED_STYLE_SCHEDULER"),FK=(()=>{class t{_currentSchedule=null;_ngZone=f(ye);constructor(){}schedule(A){this._createScheduleIfNeeded(),this._currentSchedule.tasks.push(A)}scheduleEnd(A){this._createScheduleIfNeeded(),this._currentSchedule.endTasks.push(A)}_createScheduleIfNeeded(){this._currentSchedule||(this._currentSchedule=new d7,this._ngZone.runOutsideAngular(()=>queueMicrotask(()=>{for(;this._currentSchedule.tasks.length||this._currentSchedule.endTasks.length;){let A=this._currentSchedule;this._currentSchedule=new d7;for(let i of A.tasks)i();for(let i of A.endTasks)i()}this._currentSchedule=null})))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();var _K=(()=>{class t{template=f(mn);_differs=f(Ql);columns;_columnsDiffer;constructor(){}ngOnChanges(A){if(!this._columnsDiffer){let i=A.columns&&A.columns.currentValue||[];this._columnsDiffer=this._differs.find(i).create(),this._columnsDiffer.diff(i)}}getColumnsDiff(){return this._columnsDiffer.diff(this.columns)}extractCellTemplate(A){return this instanceof Df?A.headerCell.template:this instanceof GK?A.footerCell.template:A.cell.template}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,features:[Xt]})}return t})(),Df=(()=>{class t extends _K{_table=f(Zg,{optional:!0});_hasStickyChanged=!1;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;constructor(){super(f(mn),f(Ql))}ngOnChanges(A){super.ngOnChanges(A)}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkHeaderRowDef",""]],inputs:{columns:[0,"cdkHeaderRowDef","columns"],sticky:[2,"cdkHeaderRowDefSticky","sticky",ge]},features:[lt,Xt]})}return t})(),GK=(()=>{class t extends _K{_table=f(Zg,{optional:!0});_hasStickyChanged=!1;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;constructor(){super(f(mn),f(Ql))}ngOnChanges(A){super.ngOnChanges(A)}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkFooterRowDef",""]],inputs:{columns:[0,"cdkFooterRowDef","columns"],sticky:[2,"cdkFooterRowDefSticky","sticky",ge]},features:[lt,Xt]})}return t})(),h7=(()=>{class t extends _K{_table=f(Zg,{optional:!0});when;constructor(){super(f(mn),f(Ql))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkRowDef",""]],inputs:{columns:[0,"cdkRowDefColumns","columns"],when:[0,"cdkRowDefWhen","when"]},features:[lt]})}return t})(),sd=(()=>{class t{_viewContainer=f(Sn);cells;context;static mostRecentCellOutlet=null;constructor(){t.mostRecentCellOutlet=this}ngOnDestroy(){t.mostRecentCellOutlet===this&&(t.mostRecentCellOutlet=null)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkCellOutlet",""]]})}return t})(),KK=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["cdk-header-row"],["tr","cdk-header-row",""]],hostAttrs:["role","row",1,"cdk-header-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&rr(0,0)},dependencies:[sd],encapsulation:2})}return t})();var UK=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["cdk-row"],["tr","cdk-row",""]],hostAttrs:["role","row",1,"cdk-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&rr(0,0)},dependencies:[sd],encapsulation:2})}return t})(),fcA=(()=>{class t{templateRef=f(mn);_contentClassName="cdk-no-data-row";constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["ng-template","cdkNoDataRow",""]]})}return t})(),BcA=["top","bottom","left","right"],NK=class{_isNativeHtmlTable;_stickCellCss;direction;_coalescedStyleScheduler;_isBrowser;_needsPositionStickyOnElement;_positionListener;_tableInjector;_elemSizeCache=new WeakMap;_resizeObserver=globalThis?.ResizeObserver?new globalThis.ResizeObserver(e=>this._updateCachedSizes(e)):null;_updatedStickyColumnsParamsToReplay=[];_stickyColumnsReplayTimeout=null;_cachedCellWidths=[];_borderCellCss;_destroyed=!1;constructor(e,A,i,n,o=!0,r=!0,s,a){this._isNativeHtmlTable=e,this._stickCellCss=A,this.direction=i,this._coalescedStyleScheduler=n,this._isBrowser=o,this._needsPositionStickyOnElement=r,this._positionListener=s,this._tableInjector=a,this._borderCellCss={top:`${A}-border-elem-top`,bottom:`${A}-border-elem-bottom`,left:`${A}-border-elem-left`,right:`${A}-border-elem-right`}}clearStickyPositioning(e,A){(A.includes("left")||A.includes("right"))&&this._removeFromStickyColumnReplayQueue(e);let i=[];for(let n of e)n.nodeType===n.ELEMENT_NODE&&i.push(n,...Array.from(n.children));this._afterNextRender({write:()=>{for(let n of i)this._removeStickyStyle(n,A)}})}updateStickyColumns(e,A,i,n=!0,o=!0){if(!e.length||!this._isBrowser||!(A.some(u=>u)||i.some(u=>u))){this._positionListener?.stickyColumnsUpdated({sizes:[]}),this._positionListener?.stickyEndColumnsUpdated({sizes:[]});return}let r=e[0],s=r.children.length,a=this.direction==="rtl",c=a?"right":"left",g=a?"left":"right",I=A.lastIndexOf(!0),C=i.indexOf(!0),d,B,E;o&&this._updateStickyColumnReplayQueue({rows:[...e],stickyStartStates:[...A],stickyEndStates:[...i]}),this._afterNextRender({earlyRead:()=>{d=this._getCellWidths(r,n),B=this._getStickyStartColumnPositions(d,A),E=this._getStickyEndColumnPositions(d,i)},write:()=>{for(let u of e)for(let h=0;h!!u)&&(this._positionListener.stickyColumnsUpdated({sizes:I===-1?[]:d.slice(0,I+1).map((u,h)=>A[h]?u:null)}),this._positionListener.stickyEndColumnsUpdated({sizes:C===-1?[]:d.slice(C).map((u,h)=>i[h+C]?u:null).reverse()}))}})}stickRows(e,A,i){if(!this._isBrowser)return;let n=i==="bottom"?e.slice().reverse():e,o=i==="bottom"?A.slice().reverse():A,r=[],s=[],a=[];this._afterNextRender({earlyRead:()=>{for(let c=0,g=0;c{let c=o.lastIndexOf(!0);for(let g=0;g{let i=e.querySelector("tfoot");i&&(A.some(n=>!n)?this._removeStickyStyle(i,["bottom"]):this._addStickyStyle(i,"bottom",0,!1))}})}destroy(){this._stickyColumnsReplayTimeout&&clearTimeout(this._stickyColumnsReplayTimeout),this._resizeObserver?.disconnect(),this._destroyed=!0}_removeStickyStyle(e,A){for(let n of A)e.style[n]="",e.classList.remove(this._borderCellCss[n]);BcA.some(n=>A.indexOf(n)===-1&&e.style[n])?e.style.zIndex=this._getCalculatedZIndex(e):(e.style.zIndex="",this._needsPositionStickyOnElement&&(e.style.position=""),e.classList.remove(this._stickCellCss))}_addStickyStyle(e,A,i,n){e.classList.add(this._stickCellCss),n&&e.classList.add(this._borderCellCss[A]),e.style[A]=`${i}px`,e.style.zIndex=this._getCalculatedZIndex(e),this._needsPositionStickyOnElement&&(e.style.cssText+="position: -webkit-sticky; position: sticky; ")}_getCalculatedZIndex(e){let A={top:100,bottom:10,left:1,right:1},i=0;for(let n of BcA)e.style[n]&&(i+=A[n]);return i?`${i}`:""}_getCellWidths(e,A=!0){if(!A&&this._cachedCellWidths.length)return this._cachedCellWidths;let i=[],n=e.children;for(let o=0;o0;o--)A[o]&&(i[o]=n,n+=e[o]);return i}_retrieveElementSize(e){let A=this._elemSizeCache.get(e);if(A)return A;let i=e.getBoundingClientRect(),n={width:i.width,height:i.height};return this._resizeObserver&&(this._elemSizeCache.set(e,n),this._resizeObserver.observe(e,{box:"border-box"})),n}_updateStickyColumnReplayQueue(e){this._removeFromStickyColumnReplayQueue(e.rows),this._stickyColumnsReplayTimeout||this._updatedStickyColumnsParamsToReplay.push(e)}_removeFromStickyColumnReplayQueue(e){let A=new Set(e);for(let i of this._updatedStickyColumnsParamsToReplay)i.rows=i.rows.filter(n=>!A.has(n));this._updatedStickyColumnsParamsToReplay=this._updatedStickyColumnsParamsToReplay.filter(i=>!!i.rows.length)}_updateCachedSizes(e){let A=!1;for(let i of e){let n=i.borderBoxSize?.length?{width:i.borderBoxSize[0].inlineSize,height:i.borderBoxSize[0].blockSize}:{width:i.contentRect.width,height:i.contentRect.height};n.width!==this._elemSizeCache.get(i.target)?.width&&IHA(i.target)&&(A=!0),this._elemSizeCache.set(i.target,n)}A&&this._updatedStickyColumnsParamsToReplay.length&&(this._stickyColumnsReplayTimeout&&clearTimeout(this._stickyColumnsReplayTimeout),this._stickyColumnsReplayTimeout=setTimeout(()=>{if(!this._destroyed){for(let i of this._updatedStickyColumnsParamsToReplay)this.updateStickyColumns(i.rows,i.stickyStartStates,i.stickyEndStates,!0,!1);this._updatedStickyColumnsParamsToReplay=[],this._stickyColumnsReplayTimeout=null}},0))}_afterNextRender(e){this._tableInjector?Ir(e,{injector:this._tableInjector}):this._coalescedStyleScheduler.schedule(()=>{e.earlyRead?.(),e.write()})}};function IHA(t){return["cdk-cell","cdk-header-cell","cdk-footer-cell"].some(e=>t.classList.contains(e))}var E7=new eA("CDK_SPL");var JK=(()=>{class t{viewContainer=f(Sn);elementRef=f(se);constructor(){let A=f(Zg);A._rowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","rowOutlet",""]]})}return t})(),YK=(()=>{class t{viewContainer=f(Sn);elementRef=f(se);constructor(){let A=f(Zg);A._headerRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","headerRowOutlet",""]]})}return t})(),TK=(()=>{class t{viewContainer=f(Sn);elementRef=f(se);constructor(){let A=f(Zg);A._footerRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","footerRowOutlet",""]]})}return t})(),HK=(()=>{class t{viewContainer=f(Sn);elementRef=f(se);constructor(){let A=f(Zg);A._noDataRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","noDataRowOutlet",""]]})}return t})();var OK=(()=>{class t{_differs=f(Ql);_changeDetectorRef=f(Et);_elementRef=f(se);_dir=f(po,{optional:!0});_platform=f(ni);_viewRepeater=f(Hh);_coalescedStyleScheduler=f(B7);_viewportRuler=f(Nc);_stickyPositioningListener=f(E7,{optional:!0,skipSelf:!0});_document=f(at);_data;_onDestroy=new qA;_renderRows;_renderChangeSubscription;_columnDefsByName=new Map;_rowDefs;_headerRowDefs;_footerRowDefs;_dataDiffer;_defaultRowDef;_customColumnDefs=new Set;_customRowDefs=new Set;_customHeaderRowDefs=new Set;_customFooterRowDefs=new Set;_customNoDataRow;_headerRowDefChanged=!0;_footerRowDefChanged=!0;_stickyColumnStylesNeedReset=!0;_forceRecalculateCellWidths=!0;_cachedRenderRowsMap=new Map;_isNativeHtmlTable;_stickyStyler;stickyCssClass="cdk-table-sticky";needsPositionStickyOnElement=!0;_isServer;_isShowingNoDataRow=!1;_hasAllOutlets=!1;_hasInitialized=!1;_getCellRole(){if(this._cellRoleInternal===void 0){let A=this._elementRef.nativeElement.getAttribute("role");return A==="grid"||A==="treegrid"?"gridcell":"cell"}return this._cellRoleInternal}_cellRoleInternal=void 0;get trackBy(){return this._trackByFn}set trackBy(A){this._trackByFn=A}_trackByFn;get dataSource(){return this._dataSource}set dataSource(A){this._dataSource!==A&&this._switchDataSource(A)}_dataSource;get multiTemplateDataRows(){return this._multiTemplateDataRows}set multiTemplateDataRows(A){this._multiTemplateDataRows=A,this._rowOutlet&&this._rowOutlet.viewContainer.length&&(this._forceRenderDataRows(),this.updateStickyColumnStyles())}_multiTemplateDataRows=!1;get fixedLayout(){return this._fixedLayout}set fixedLayout(A){this._fixedLayout=A,this._forceRecalculateCellWidths=!0,this._stickyColumnStylesNeedReset=!0}_fixedLayout=!1;contentChanged=new YA;viewChange=new Fi({start:0,end:Number.MAX_VALUE});_rowOutlet;_headerRowOutlet;_footerRowOutlet;_noDataRowOutlet;_contentColumnDefs;_contentRowDefs;_contentHeaderRowDefs;_contentFooterRowDefs;_noDataRow;_injector=f(Zt);constructor(){f(new Wr("role"),{optional:!0})||this._elementRef.nativeElement.setAttribute("role","table"),this._isServer=!this._platform.isBrowser,this._isNativeHtmlTable=this._elementRef.nativeElement.nodeName==="TABLE"}ngOnInit(){this._setupStickyStyler(),this._dataDiffer=this._differs.find([]).create((A,i)=>this.trackBy?this.trackBy(i.dataIndex,i.data):i),this._viewportRuler.change().pipe(kt(this._onDestroy)).subscribe(()=>{this._forceRecalculateCellWidths=!0})}ngAfterContentInit(){this._hasInitialized=!0}ngAfterContentChecked(){this._canRender()&&this._render()}ngOnDestroy(){this._stickyStyler?.destroy(),[this._rowOutlet?.viewContainer,this._headerRowOutlet?.viewContainer,this._footerRowOutlet?.viewContainer,this._cachedRenderRowsMap,this._customColumnDefs,this._customRowDefs,this._customHeaderRowDefs,this._customFooterRowDefs,this._columnDefsByName].forEach(A=>{A?.clear()}),this._headerRowDefs=[],this._footerRowDefs=[],this._defaultRowDef=null,this._onDestroy.next(),this._onDestroy.complete(),M8(this.dataSource)&&this.dataSource.disconnect(this)}renderRows(){this._renderRows=this._getAllRenderRows();let A=this._dataDiffer.diff(this._renderRows);if(!A){this._updateNoDataRow(),this.contentChanged.next();return}let i=this._rowOutlet.viewContainer;this._viewRepeater.applyChanges(A,i,(n,o,r)=>this._getEmbeddedViewArgs(n.item,r),n=>n.item.data,n=>{n.operation===GB.INSERTED&&n.context&&this._renderCellTemplateForItem(n.record.item.rowDef,n.context)}),this._updateRowIndexContext(),A.forEachIdentityChange(n=>{let o=i.get(n.currentIndex);o.context.$implicit=n.item.data}),this._updateNoDataRow(),this.contentChanged.next(),this.updateStickyColumnStyles()}addColumnDef(A){this._customColumnDefs.add(A)}removeColumnDef(A){this._customColumnDefs.delete(A)}addRowDef(A){this._customRowDefs.add(A)}removeRowDef(A){this._customRowDefs.delete(A)}addHeaderRowDef(A){this._customHeaderRowDefs.add(A),this._headerRowDefChanged=!0}removeHeaderRowDef(A){this._customHeaderRowDefs.delete(A),this._headerRowDefChanged=!0}addFooterRowDef(A){this._customFooterRowDefs.add(A),this._footerRowDefChanged=!0}removeFooterRowDef(A){this._customFooterRowDefs.delete(A),this._footerRowDefChanged=!0}setNoDataRow(A){this._customNoDataRow=A}updateStickyHeaderRowStyles(){let A=this._getRenderedRows(this._headerRowOutlet);if(this._isNativeHtmlTable){let n=EcA(this._headerRowOutlet,"thead");n&&(n.style.display=A.length?"":"none")}let i=this._headerRowDefs.map(n=>n.sticky);this._stickyStyler.clearStickyPositioning(A,["top"]),this._stickyStyler.stickRows(A,i,"top"),this._headerRowDefs.forEach(n=>n.resetStickyChanged())}updateStickyFooterRowStyles(){let A=this._getRenderedRows(this._footerRowOutlet);if(this._isNativeHtmlTable){let n=EcA(this._footerRowOutlet,"tfoot");n&&(n.style.display=A.length?"":"none")}let i=this._footerRowDefs.map(n=>n.sticky);this._stickyStyler.clearStickyPositioning(A,["bottom"]),this._stickyStyler.stickRows(A,i,"bottom"),this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement,i),this._footerRowDefs.forEach(n=>n.resetStickyChanged())}updateStickyColumnStyles(){let A=this._getRenderedRows(this._headerRowOutlet),i=this._getRenderedRows(this._rowOutlet),n=this._getRenderedRows(this._footerRowOutlet);(this._isNativeHtmlTable&&!this._fixedLayout||this._stickyColumnStylesNeedReset)&&(this._stickyStyler.clearStickyPositioning([...A,...i,...n],["left","right"]),this._stickyColumnStylesNeedReset=!1),A.forEach((o,r)=>{this._addStickyColumnStyles([o],this._headerRowDefs[r])}),this._rowDefs.forEach(o=>{let r=[];for(let s=0;s{this._addStickyColumnStyles([o],this._footerRowDefs[r])}),Array.from(this._columnDefsByName.values()).forEach(o=>o.resetStickyChanged())}_outletAssigned(){!this._hasAllOutlets&&this._rowOutlet&&this._headerRowOutlet&&this._footerRowOutlet&&this._noDataRowOutlet&&(this._hasAllOutlets=!0,this._canRender()&&this._render())}_canRender(){return this._hasAllOutlets&&this._hasInitialized}_render(){this._cacheRowDefs(),this._cacheColumnDefs(),!this._headerRowDefs.length&&!this._footerRowDefs.length&&this._rowDefs.length;let i=this._renderUpdatedColumns()||this._headerRowDefChanged||this._footerRowDefChanged;this._stickyColumnStylesNeedReset=this._stickyColumnStylesNeedReset||i,this._forceRecalculateCellWidths=i,this._headerRowDefChanged&&(this._forceRenderHeaderRows(),this._headerRowDefChanged=!1),this._footerRowDefChanged&&(this._forceRenderFooterRows(),this._footerRowDefChanged=!1),this.dataSource&&this._rowDefs.length>0&&!this._renderChangeSubscription?this._observeRenderChanges():this._stickyColumnStylesNeedReset&&this.updateStickyColumnStyles(),this._checkStickyStates()}_getAllRenderRows(){let A=[],i=this._cachedRenderRowsMap;this._cachedRenderRowsMap=new Map;for(let n=0;n{let s=n&&n.has(r)?n.get(r):[];if(s.length){let a=s.shift();return a.dataIndex=i,a}else return{data:A,rowDef:r,dataIndex:i}})}_cacheColumnDefs(){this._columnDefsByName.clear(),I7(this._getOwnDefs(this._contentColumnDefs),this._customColumnDefs).forEach(i=>{this._columnDefsByName.has(i.name),this._columnDefsByName.set(i.name,i)})}_cacheRowDefs(){this._headerRowDefs=I7(this._getOwnDefs(this._contentHeaderRowDefs),this._customHeaderRowDefs),this._footerRowDefs=I7(this._getOwnDefs(this._contentFooterRowDefs),this._customFooterRowDefs),this._rowDefs=I7(this._getOwnDefs(this._contentRowDefs),this._customRowDefs);let A=this._rowDefs.filter(i=>!i.when);!this.multiTemplateDataRows&&A.length>1,this._defaultRowDef=A[0]}_renderUpdatedColumns(){let A=(r,s)=>{let a=!!s.getColumnsDiff();return r||a},i=this._rowDefs.reduce(A,!1);i&&this._forceRenderDataRows();let n=this._headerRowDefs.reduce(A,!1);n&&this._forceRenderHeaderRows();let o=this._footerRowDefs.reduce(A,!1);return o&&this._forceRenderFooterRows(),i||n||o}_switchDataSource(A){this._data=[],M8(this.dataSource)&&this.dataSource.disconnect(this),this._renderChangeSubscription&&(this._renderChangeSubscription.unsubscribe(),this._renderChangeSubscription=null),A||(this._dataDiffer&&this._dataDiffer.diff([]),this._rowOutlet&&this._rowOutlet.viewContainer.clear()),this._dataSource=A}_observeRenderChanges(){if(!this.dataSource)return;let A;M8(this.dataSource)?A=this.dataSource.connect(this):B2(this.dataSource)?A=this.dataSource:Array.isArray(this.dataSource)&&(A=Ce(this.dataSource)),this._renderChangeSubscription=A.pipe(kt(this._onDestroy)).subscribe(i=>{this._data=i||[],this.renderRows()})}_forceRenderHeaderRows(){this._headerRowOutlet.viewContainer.length>0&&this._headerRowOutlet.viewContainer.clear(),this._headerRowDefs.forEach((A,i)=>this._renderRow(this._headerRowOutlet,A,i)),this.updateStickyHeaderRowStyles()}_forceRenderFooterRows(){this._footerRowOutlet.viewContainer.length>0&&this._footerRowOutlet.viewContainer.clear(),this._footerRowDefs.forEach((A,i)=>this._renderRow(this._footerRowOutlet,A,i)),this.updateStickyFooterRowStyles()}_addStickyColumnStyles(A,i){let n=Array.from(i?.columns||[]).map(s=>{let a=this._columnDefsByName.get(s);return a}),o=n.map(s=>s.sticky),r=n.map(s=>s.stickyEnd);this._stickyStyler.updateStickyColumns(A,o,r,!this._fixedLayout||this._forceRecalculateCellWidths)}_getRenderedRows(A){let i=[];for(let n=0;n!o.when||o.when(i,A));else{let o=this._rowDefs.find(r=>r.when&&r.when(i,A))||this._defaultRowDef;o&&n.push(o)}return n.length,n}_getEmbeddedViewArgs(A,i){let n=A.rowDef,o={$implicit:A.data};return{templateRef:n.template,context:o,index:i}}_renderRow(A,i,n,o={}){let r=A.viewContainer.createEmbeddedView(i.template,o,n);return this._renderCellTemplateForItem(i,o),r}_renderCellTemplateForItem(A,i){for(let n of this._getCellTemplates(A))sd.mostRecentCellOutlet&&sd.mostRecentCellOutlet._viewContainer.createEmbeddedView(n,i);this._changeDetectorRef.markForCheck()}_updateRowIndexContext(){let A=this._rowOutlet.viewContainer;for(let i=0,n=A.length;i{let n=this._columnDefsByName.get(i);return A.extractCellTemplate(n)})}_forceRenderDataRows(){this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear(),this.renderRows()}_checkStickyStates(){let A=(i,n)=>i||n.hasStickyChanged();this._headerRowDefs.reduce(A,!1)&&this.updateStickyHeaderRowStyles(),this._footerRowDefs.reduce(A,!1)&&this.updateStickyFooterRowStyles(),Array.from(this._columnDefsByName.values()).reduce(A,!1)&&(this._stickyColumnStylesNeedReset=!0,this.updateStickyColumnStyles())}_setupStickyStyler(){let A=this._dir?this._dir.value:"ltr";this._stickyStyler=new NK(this._isNativeHtmlTable,this.stickyCssClass,A,this._coalescedStyleScheduler,this._platform.isBrowser,this.needsPositionStickyOnElement,this._stickyPositioningListener,this._injector),(this._dir?this._dir.change:Ce()).pipe(kt(this._onDestroy)).subscribe(i=>{this._stickyStyler.direction=i,this.updateStickyColumnStyles()})}_getOwnDefs(A){return A.filter(i=>!i._table||i._table===this)}_updateNoDataRow(){let A=this._customNoDataRow||this._noDataRow;if(!A)return;let i=this._rowOutlet.viewContainer.length===0;if(i===this._isShowingNoDataRow)return;let n=this._noDataRowOutlet.viewContainer;if(i){let o=n.createEmbeddedView(A.templateRef),r=o.rootNodes[0];o.rootNodes.length===1&&r?.nodeType===this._document.ELEMENT_NODE&&(r.setAttribute("role","row"),r.classList.add(A._contentClassName))}else n.clear();this._isShowingNoDataRow=i,this._changeDetectorRef.markForCheck()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["cdk-table"],["table","cdk-table",""]],contentQueries:function(i,n,o){if(i&1&&(gi(o,fcA,5),gi(o,JQ,5),gi(o,h7,5),gi(o,Df,5),gi(o,GK,5)),i&2){let r;de(r=Be())&&(n._noDataRow=r.first),de(r=Be())&&(n._contentColumnDefs=r),de(r=Be())&&(n._contentRowDefs=r),de(r=Be())&&(n._contentHeaderRowDefs=r),de(r=Be())&&(n._contentFooterRowDefs=r)}},hostAttrs:[1,"cdk-table"],hostVars:2,hostBindings:function(i,n){i&2&&he("cdk-table-fixed-layout",n.fixedLayout)},inputs:{trackBy:"trackBy",dataSource:"dataSource",multiTemplateDataRows:[2,"multiTemplateDataRows","multiTemplateDataRows",ge],fixedLayout:[2,"fixedLayout","fixedLayout",ge]},outputs:{contentChanged:"contentChanged"},exportAs:["cdkTable"],features:[ut([{provide:Zg,useExisting:t},{provide:Hh,useClass:KB},{provide:B7,useClass:FK},{provide:E7,useValue:null}])],ngContentSelectors:aHA,decls:5,vars:2,consts:[["role","rowgroup"],["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,n){i&1&&($t(sHA),Ue(0),Ue(1,1),FA(2,cHA,1,0)(3,gHA,7,0)(4,lHA,4,0)),i&2&&(_(2),_A(n._isServer?2:-1),_(),_A(n._isNativeHtmlTable?3:4))},dependencies:[YK,JK,HK,TK],styles:[".cdk-table-fixed-layout{table-layout:fixed}"],encapsulation:2})}return t})();function I7(t,e){return t.concat(Array.from(e))}function EcA(t,e){let A=e.toUpperCase(),i=t.viewContainer.element.nativeElement;for(;i;){let n=i.nodeType===1?i.nodeName:null;if(n===A)return i;if(n==="TABLE")break;i=i.parentNode}return null}var CHA=[[["caption"]],[["colgroup"],["col"]],"*"],dHA=["caption","colgroup, col","*"];function BHA(t,e){t&1&&Ue(0,2)}function EHA(t,e){t&1&&(S(0,"thead",0),rr(1,1),N(),S(2,"tbody",2),rr(3,3)(4,4),N(),S(5,"tfoot",0),rr(6,5),N())}function QHA(t,e){t&1&&rr(0,1)(1,3)(2,4)(3,5)}var mcA=(()=>{class t extends OK{stickyCssClass="mat-mdc-table-sticky";needsPositionStickyOnElement=!1;static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-table"],["table","mat-table",""]],hostAttrs:[1,"mat-mdc-table","mdc-data-table__table"],hostVars:2,hostBindings:function(i,n){i&2&&he("mdc-table-fixed-layout",n.fixedLayout)},exportAs:["matTable"],features:[ut([{provide:OK,useExisting:t},{provide:Zg,useExisting:t},{provide:B7,useClass:FK},{provide:Hh,useClass:KB},{provide:E7,useValue:null}]),lt],ngContentSelectors:dHA,decls:5,vars:2,consts:[["role","rowgroup"],["headerRowOutlet",""],["role","rowgroup",1,"mdc-data-table__content"],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,n){i&1&&($t(CHA),Ue(0),Ue(1,1),FA(2,BHA,1,0)(3,EHA,7,0)(4,QHA,4,0)),i&2&&(_(2),_A(n._isServer?2:-1),_(),_A(n._isNativeHtmlTable?3:4))},dependencies:[YK,JK,HK,TK],styles:[".mat-mdc-table-sticky{position:sticky !important}mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{min-width:100%;border:0;border-spacing:0;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color, var(--mat-sys-surface))}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell{text-align:right}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-header-headline-font, var(--mat-sys-title-small-font, Roboto, sans-serif));line-height:var(--mat-table-header-headline-line-height, var(--mat-sys-title-small-line-height));font-size:var(--mat-table-header-headline-size, var(--mat-sys-title-small-size, 14px));font-weight:var(--mat-table-header-headline-weight, var(--mat-sys-title-small-weight, 500))}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-row-item-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-row-item-label-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-row-item-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-footer-supporting-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-footer-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-footer-supporting-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-footer-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mat-table-footer-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking, var(--mat-sys-title-small-tracking));font-weight:inherit;line-height:inherit;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mat-mdc-header-cell{text-align:right}.mdc-data-table__row:last-child>.mat-mdc-header-cell{border-bottom:none}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking));line-height:inherit}.mdc-data-table__row:last-child>.mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking))}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}"],encapsulation:2})}return t})(),pcA=(()=>{class t extends Q7{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matCellDef",""]],features:[ut([{provide:Q7,useExisting:t}]),lt]})}return t})(),DcA=(()=>{class t extends u7{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matHeaderCellDef",""]],features:[ut([{provide:u7,useExisting:t}]),lt]})}return t})();var wcA=(()=>{class t extends JQ{get name(){return this._name}set name(A){this._setNameInput(A)}_updateColumnCssClassName(){super._updateColumnCssClassName(),this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matColumnDef",""]],inputs:{name:[0,"matColumnDef","name"]},features:[ut([{provide:JQ,useExisting:t},{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}]),lt]})}return t})(),ycA=(()=>{class t extends ucA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["mat-header-cell"],["th","mat-header-cell",""]],hostAttrs:["role","columnheader",1,"mat-mdc-header-cell","mdc-data-table__header-cell"],features:[lt]})}return t})();var vcA=(()=>{class t extends hcA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["mat-cell"],["td","mat-cell",""]],hostAttrs:[1,"mat-mdc-cell","mdc-data-table__cell"],features:[lt]})}return t})();var McA=(()=>{class t extends Df{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matHeaderRowDef",""]],inputs:{columns:[0,"matHeaderRowDef","columns"],sticky:[2,"matHeaderRowDefSticky","sticky",ge]},features:[ut([{provide:Df,useExisting:t}]),lt]})}return t})();var bcA=(()=>{class t extends h7{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matRowDef",""]],inputs:{columns:[0,"matRowDefColumns","columns"],when:[0,"matRowDefWhen","when"]},features:[ut([{provide:h7,useExisting:t}]),lt]})}return t})(),kcA=(()=>{class t extends KK{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-header-row"],["tr","mat-header-row",""]],hostAttrs:["role","row",1,"mat-mdc-header-row","mdc-data-table__header-row"],exportAs:["matHeaderRow"],features:[ut([{provide:KK,useExisting:t}]),lt],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&rr(0,0)},dependencies:[sd],encapsulation:2})}return t})();var ScA=(()=>{class t extends UK{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-row"],["tr","mat-row",""]],hostAttrs:["role","row",1,"mat-mdc-row","mdc-data-table__row"],exportAs:["matRow"],features:[ut([{provide:UK,useExisting:t}]),lt],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&rr(0,0)},dependencies:[sd],encapsulation:2})}return t})();var uHA=9007199254740991,wf=class extends v8{_data;_renderData=new Fi([]);_filter=new Fi("");_internalPageChanges=new qA;_renderChangesSubscription=null;filteredData;get data(){return this._data.value}set data(e){e=Array.isArray(e)?e:[],this._data.next(e),this._renderChangesSubscription||this._filterData(e)}get filter(){return this._filter.value}set filter(e){this._filter.next(e),this._renderChangesSubscription||this._filterData(this.data)}get sort(){return this._sort}set sort(e){this._sort=e,this._updateChangeSubscription()}_sort;get paginator(){return this._paginator}set paginator(e){this._paginator=e,this._updateChangeSubscription()}_paginator;sortingDataAccessor=(e,A)=>{let i=e[A];if(Ek(i)){let n=Number(i);return n{let i=A.active,n=A.direction;return!i||n==""?e:e.sort((o,r)=>{let s=this.sortingDataAccessor(o,i),a=this.sortingDataAccessor(r,i),c=typeof s,g=typeof a;c!==g&&(c==="number"&&(s+=""),g==="number"&&(a+=""));let I=0;return s!=null&&a!=null?s>a?I=1:s{let i=A.trim().toLowerCase();return Object.values(e).some(n=>`${n}`.toLowerCase().includes(i))};constructor(e=[]){super(),this._data=new Fi(e),this._updateChangeSubscription()}_updateChangeSubscription(){let e=this._sort?Hn(this._sort.sortChange,this._sort.initialized):Ce(null),A=this._paginator?Hn(this._paginator.page,this._internalPageChanges,this._paginator.initialized):Ce(null),i=this._data,n=ga([i,this._filter]).pipe(je(([s])=>this._filterData(s))),o=ga([n,e]).pipe(je(([s])=>this._orderData(s))),r=ga([o,A]).pipe(je(([s])=>this._pageData(s)));this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=r.subscribe(s=>this._renderData.next(s))}_filterData(e){return this.filteredData=this.filter==null||this.filter===""?e:e.filter(A=>this.filterPredicate(A,this.filter)),this.paginator&&this._updatePaginator(this.filteredData.length),this.filteredData}_orderData(e){return this.sort?this.sortData(e.slice(),this.sort):e}_pageData(e){if(!this.paginator)return e;let A=this.paginator.pageIndex*this.paginator.pageSize;return e.slice(A,A+this.paginator.pageSize)}_updatePaginator(e){Promise.resolve().then(()=>{let A=this.paginator;if(A&&(A.length=e,A.pageIndex>0)){let i=Math.ceil(A.length/A.pageSize)-1||0,n=Math.min(A.pageIndex,i);n!==A.pageIndex&&(A.pageIndex=n,this._internalPageChanges.next())}})}connect(){return this._renderChangesSubscription||this._updateChangeSubscription(),this._renderData}disconnect(){this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=null}};var RcA=[{metricName:"tool_trajectory_avg_score",threshold:1},{metricName:"response_match_score",threshold:.7}];var f7="0123456789abcdef",m7=class t{constructor(e){this.bytes=e}static ofInner(e){if(e.length!==16)throw new TypeError("not 128-bit length");return new t(e)}static fromFieldsV7(e,A,i,n){if(!Number.isInteger(e)||!Number.isInteger(A)||!Number.isInteger(i)||!Number.isInteger(n)||e<0||A<0||i<0||n<0||e>0xffffffffffff||A>4095||i>1073741823||n>4294967295)throw new RangeError("invalid field value");let o=new Uint8Array(16);return o[0]=e/2**40,o[1]=e/2**32,o[2]=e/2**24,o[3]=e/2**16,o[4]=e/2**8,o[5]=e,o[6]=112|A>>>8,o[7]=A,o[8]=128|i>>>24,o[9]=i>>>16,o[10]=i>>>8,o[11]=i,o[12]=n>>>24,o[13]=n>>>16,o[14]=n>>>8,o[15]=n,new t(o)}static parse(e){var A,i,n,o;let r;switch(e.length){case 32:r=(A=/^[0-9a-f]{32}$/i.exec(e))===null||A===void 0?void 0:A[0];break;case 36:r=(i=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(e))===null||i===void 0?void 0:i.slice(1,6).join("");break;case 38:r=(n=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(e))===null||n===void 0?void 0:n.slice(1,6).join("");break;case 45:r=(o=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(e))===null||o===void 0?void 0:o.slice(1,6).join("");break;default:break}if(r){let s=new Uint8Array(16);for(let a=0;a<16;a+=4){let c=parseInt(r.substring(2*a,2*a+8),16);s[a+0]=c>>>24,s[a+1]=c>>>16,s[a+2]=c>>>8,s[a+3]=c}return new t(s)}else throw new SyntaxError("could not parse UUID string")}toString(){let e="";for(let A=0;A>>4),e+=f7.charAt(this.bytes[A]&15),(A===3||A===5||A===7||A===9)&&(e+="-");return e}toHex(){let e="";for(let A=0;A>>4),e+=f7.charAt(this.bytes[A]&15);return e}toJSON(){return this.toString()}getVariant(){let e=this.bytes[8]>>>4;if(e<0)throw new Error("unreachable");if(e<=7)return this.bytes.every(A=>A===0)?"NIL":"VAR_0";if(e<=11)return"VAR_10";if(e<=13)return"VAR_110";if(e<=15)return this.bytes.every(A=>A===255)?"MAX":"VAR_RESERVED";throw new Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new t(this.bytes.slice(0))}equals(e){return this.compareTo(e)===0}compareTo(e){for(let A=0;A<16;A++){let i=this.bytes[A]-e.bytes[A];if(i!==0)return Math.sign(i)}return 0}},zK=class{constructor(e){this.timestamp=0,this.counter=0,this.random=e??hHA()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(e,A){let i=this.generateOrAbortCore(e,A);return i===void 0&&(this.timestamp=0,i=this.generateOrAbortCore(e,A)),i}generateOrAbortCore(e,A){if(!Number.isInteger(e)||e<1||e>0xffffffffffff)throw new RangeError("`unixTsMs` must be a 48-bit positive integer");if(A<0||A>0xffffffffffff)throw new RangeError("`rollbackAllowance` out of reasonable range");if(e>this.timestamp)this.timestamp=e,this.resetCounter();else if(e+A>=this.timestamp)this.counter++,this.counter>4398046511103&&(this.timestamp++,this.resetCounter());else return;return m7.fromFieldsV7(this.timestamp,Math.trunc(this.counter/2**30),this.counter&2**30-1,this.random.nextUint32())}resetCounter(){this.counter=this.random.nextUint32()*1024+(this.random.nextUint32()&1023)}generateV4(){let e=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return e[6]=64|e[6]>>>4,e[8]=128|e[8]>>>2,m7.ofInner(e)}},hHA=()=>{if(typeof crypto<"u"&&typeof crypto.getRandomValues<"u")return new PK;if(typeof UUIDV7_DENY_WEAK_RNG<"u"&&UUIDV7_DENY_WEAK_RNG)throw new Error("no cryptographically strong RNG available");return{nextUint32:()=>Math.trunc(Math.random()*65536)*65536+Math.trunc(Math.random()*65536)}},PK=class{constructor(){this.buffer=new Uint32Array(8),this.cursor=65535}nextUint32(){return this.cursor>=this.buffer.length&&(crypto.getRandomValues(this.buffer),this.cursor=0),this.buffer[this.cursor++]}},LcA;var p7=()=>fHA().toString(),fHA=()=>(LcA||(LcA=new zK)).generateV4();var D7=class t{evalService=f(Rl);data=f(Cs);dialogRef=f(fr);newCaseId="case"+p7().slice(0,6);constructor(){}createNewEvalCase(){!this.newCaseId||this.newCaseId==""?alert("Cannot create eval set with empty id!"):this.evalService.addCurrentSession(this.data.appName,this.data.evalSetId,this.newCaseId,this.data.sessionId,this.data.userId).subscribe(e=>{this.dialogRef.close(!0)})}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-add-eval-session-dialog"]],decls:11,vars:1,consts:[["mat-dialog-title",""],[2,"padding-left","20px","padding-right","24px"],["matInput","",3,"ngModelChange","keydown.enter","ngModel"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"h2",0),AA(1,"Add Current Session To Eval Set"),N(),S(2,"mat-dialog-content"),AA(3,` Please enter the eval case name +}`);var eHA=vA('
            ',1);function tHA(t,e){ft(e,!1);var A=$(void 0,!0),i=xr("jsoneditor:JSONEditor"),n={text:""},o=void 0,r=!1,s=ir.tree,a=!0,c=!0,g=!0,I=!0,C=!1,d=!1,B=!0,E=JSON,u=void 0,h=JSON,w={parse:ZKA,stringify:Ta},x=[BKA],R=x[0].id,D=$c,G=void 0,J=void 0,z=VKA,K=$c,O=$c,V=$c,j=$c,dA=$A=>{console.error($A),alert($A.toString())},fA=$c,EA=$c,IA=M(e,"content",13,n),SA=M(e,"selection",13,o),nA=M(e,"readOnly",13,r),lA=M(e,"indentation",13,2),wA=M(e,"tabSize",13,4),VA=M(e,"truncateTextSize",13,1e3),ie=M(e,"mode",13,s),UA=M(e,"mainMenuBar",13,a),BA=M(e,"navigationBar",13,c),JA=M(e,"statusBar",13,g),Xe=M(e,"askToFormat",13,I),We=M(e,"escapeControlCharacters",13,C),KA=M(e,"escapeUnicodeCharacters",13,d),tA=M(e,"flattenColumns",13,B),OA=M(e,"parser",13,E),gA=M(e,"validator",13,u),zA=M(e,"validationParser",13,h),xA=M(e,"pathParser",13,w),Me=M(e,"queryLanguages",13,x),LA=M(e,"queryLanguageId",13,R),cA=M(e,"onChangeQueryLanguage",13,D),Gt=M(e,"onChange",13,G),ct=M(e,"onSelect",13,J),oe=M(e,"onRenderValue",13,z),Dt=M(e,"onClassName",13,K),_e=M(e,"onRenderMenu",13,O),Re=M(e,"onRenderContextMenu",13,V),St=M(e,"onChangeMode",13,j),Se=M(e,"onError",13,dA),Wt=M(e,"onFocus",13,fA),L=M(e,"onBlur",13,EA),T=$(QQ(),!0),P=$(!1,!0),X=$(void 0,!0),kA=$(void 0,!0),le=$(void 0,!0),Ee=$(void 0,!0),FA=$(OA(),!0);function MA(){return IA()}function dt($A){i("set");var Ei=nG($A);if(Ei)throw new Error(Ei);y(T,QQ()),IA($A),to()}function $e($A){i("update");var Ei=nG($A);if(Ei)throw new Error(Ei);IA($A),to()}function XA($A){var Ei=l(X).patch($A);return to(),Ei}function ot($A){SA($A),to()}function Si($A,Ei){l(X).expand($A,Ei),to()}function Zi($A){var Ei=arguments.length>1&&arguments[1]!==void 0&&arguments[1];l(X).collapse($A,Ei),to()}function Oi(){var $A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};l(X).transform($A),to()}function Le(){return l(X).validate()}function zi(){var $A=l(X).acceptAutoRepair();return to(),$A}function fi($A){return Ht.apply(this,arguments)}function Ht(){return(Ht=_t(function*($A){yield l(X).scrollTo($A)})).apply(this,arguments)}function Rt($A){return l(X).findElement($A)}function Bi(){l(X).focus(),to()}function Mi(){return Jt.apply(this,arguments)}function Jt(){return(Jt=_t(function*(){yield l(X).refresh()})).apply(this,arguments)}function b($A){var Ei,Ri,un,Un,Zo,Ci,io,Wo,Xo,nr,on,$i,yt,hn,hA,Ae,re,xe,ue,aA,DA,PA,Je,vt,Yt,rn,no,sn,Ji,bt,Li,Mn=Object.keys($A);for(var Qt of Mn)switch(Qt){case"content":IA((Ei=$A[Qt])!==null&&Ei!==void 0?Ei:n);break;case"selection":SA((Ri=$A[Qt])!==null&&Ri!==void 0?Ri:o);break;case"readOnly":nA((un=$A[Qt])!==null&&un!==void 0?un:r);break;case"indentation":lA((Un=$A[Qt])!==null&&Un!==void 0?Un:2);break;case"tabSize":wA((Zo=$A[Qt])!==null&&Zo!==void 0?Zo:4);break;case"truncateTextSize":VA((Ci=$A[Qt])!==null&&Ci!==void 0?Ci:1e3);break;case"mode":ie((io=$A[Qt])!==null&&io!==void 0?io:s);break;case"mainMenuBar":UA((Wo=$A[Qt])!==null&&Wo!==void 0?Wo:a);break;case"navigationBar":BA((Xo=$A[Qt])!==null&&Xo!==void 0?Xo:c);break;case"statusBar":JA((nr=$A[Qt])!==null&&nr!==void 0?nr:g);break;case"askToFormat":Xe((on=$A[Qt])!==null&&on!==void 0?on:I);break;case"escapeControlCharacters":We(($i=$A[Qt])!==null&&$i!==void 0?$i:C);break;case"escapeUnicodeCharacters":KA((yt=$A[Qt])!==null&&yt!==void 0?yt:d);break;case"flattenColumns":tA((hn=$A[Qt])!==null&&hn!==void 0?hn:B);break;case"parser":OA((hA=$A[Qt])!==null&&hA!==void 0?hA:E);break;case"validator":gA((Ae=$A[Qt])!==null&&Ae!==void 0?Ae:u);break;case"validationParser":zA((re=$A[Qt])!==null&&re!==void 0?re:h);break;case"pathParser":xA((xe=$A[Qt])!==null&&xe!==void 0?xe:w);break;case"queryLanguages":Me((ue=$A[Qt])!==null&&ue!==void 0?ue:x);break;case"queryLanguageId":LA((aA=$A[Qt])!==null&&aA!==void 0?aA:R);break;case"onChangeQueryLanguage":cA((DA=$A[Qt])!==null&&DA!==void 0?DA:D);break;case"onChange":Gt((PA=$A[Qt])!==null&&PA!==void 0?PA:G);break;case"onRenderValue":oe((Je=$A[Qt])!==null&&Je!==void 0?Je:z);break;case"onClassName":Dt((vt=$A[Qt])!==null&&vt!==void 0?vt:K);break;case"onRenderMenu":_e((Yt=$A[Qt])!==null&&Yt!==void 0?Yt:O);break;case"onRenderContextMenu":Re((rn=$A[Qt])!==null&&rn!==void 0?rn:V);break;case"onChangeMode":St((no=$A[Qt])!==null&&no!==void 0?no:j);break;case"onSelect":ct((sn=$A[Qt])!==null&&sn!==void 0?sn:J);break;case"onError":Se((Ji=$A[Qt])!==null&&Ji!==void 0?Ji:dA);break;case"onFocus":Wt((bt=$A[Qt])!==null&&bt!==void 0?bt:fA);break;case"onBlur":L((Li=$A[Qt])!==null&&Li!==void 0?Li:EA);break;default:fn(Qt)}function fn(Te){i('Unknown property "'.concat(Te,'"'))}Me().some(Te=>Te.id===LA())||LA(Me()[0].id),to()}function et(){return ai.apply(this,arguments)}function ai(){return(ai=_t(function*(){throw new Error("class method destroy() is deprecated. It is replaced with a method destroy() in the vanilla library.")})).apply(this,arguments)}function Wi($A,Ei,Ri){IA($A),Gt()&&Gt()($A,Ei,Ri)}function Xi($A){SA($A),ct()&&ct()(g4($A))}function xn(){y(P,!0),Wt()&&Wt()()}function Mo(){y(P,!1),L()&&L()()}function vn($A){return In.apply(this,arguments)}function In(){return(In=_t(function*($A){ie()!==$A&&(ie($A),to(),Bi(),St()($A))})).apply(this,arguments)}function qo($A){i("handleChangeQueryLanguage",$A),LA($A),cA()($A)}function Vo($A){var{id:Ei,json:Ri,rootPath:un,onTransform:Un,onClose:Zo}=$A;nA()||y(Ee,{id:Ei,json:Ri,rootPath:un,indentation:lA(),truncateTextSize:VA(),escapeControlCharacters:We(),escapeUnicodeCharacters:KA(),parser:OA(),parseMemoizeOne:l(A),validationParser:zA(),pathParser:xA(),queryLanguages:Me(),queryLanguageId:LA(),onChangeQueryLanguage:qo,onRenderValue:oe(),onRenderMenu:Ci=>_e()(Ci,{mode:ie(),modal:!0,readOnly:nA()}),onRenderContextMenu:Ci=>Re()(Ci,{mode:ie(),modal:!0,readOnly:nA(),selection:SA()}),onClassName:Dt(),onTransform:Un,onClose:Zo})}function uo($A){nA()||y(le,$A)}function Qn($A){var{content:Ei,path:Ri,onPatch:un,onClose:Un}=$A;i("onJSONEditorModal",{content:Ei,path:Ri}),y(kA,{content:Ei,path:Ri,onPatch:un,readOnly:nA(),indentation:lA(),tabSize:wA(),truncateTextSize:VA(),mainMenuBar:UA(),navigationBar:BA(),statusBar:JA(),askToFormat:Xe(),escapeControlCharacters:We(),escapeUnicodeCharacters:KA(),flattenColumns:tA(),parser:OA(),validator:void 0,validationParser:zA(),pathParser:xA(),onRenderValue:oe(),onClassName:Dt(),onRenderMenu:_e(),onRenderContextMenu:Re(),onSortModal:uo,onTransformModal:Vo,onClose:Un})}function Kn($A){$A.stopPropagation()}return pA(()=>(k(OA()),l(FA),k(IA()),QQ),()=>{if(!gaA(OA(),l(FA))){if(i("parser changed, recreate editor"),X3(IA())){var $A=l(FA).stringify(IA().json);IA({json:$A!==void 0?OA().parse($A):void 0})}y(FA,OA()),y(T,QQ())}}),pA(()=>k(IA()),()=>{var $A=nG(IA());$A&&console.error("Error: "+$A)}),pA(()=>k(SA()),()=>{SA()===null&&console.warn("selection is invalid: it is null but should be undefined")}),pA(()=>k(OA()),()=>{y(A,hE(OA().parse))}),pA(()=>k(ie()),()=>{i("mode changed to",ie())}),ln(),qt(!0),NG(t,{children:($A,Ei)=>{var Ri,un=eHA(),Un=Mt(un);XsA(W(Un),()=>l(T),on=>{Qo(BsA(on,{get externalMode(){return ie()},get content(){return IA()},get selection(){return SA()},get readOnly(){return nA()},get indentation(){return lA()},get tabSize(){return wA()},get truncateTextSize(){return VA()},get statusBar(){return JA()},get askToFormat(){return Xe()},get mainMenuBar(){return UA()},get navigationBar(){return BA()},get escapeControlCharacters(){return We()},get escapeUnicodeCharacters(){return KA()},get flattenColumns(){return tA()},get parser(){return OA()},get parseMemoizeOne(){return l(A)},get validator(){return gA()},get validationParser(){return zA()},get pathParser(){return xA()},insideModal:!1,get onError(){return Se()},onChange:Wi,onChangeMode:vn,onSelect:Xi,get onRenderValue(){return oe()},get onClassName(){return Dt()},onFocus:xn,onBlur:Mo,get onRenderMenu(){return _e()},get onRenderContextMenu(){return Re()},onSortModal:uo,onTransformModal:Vo,onJSONEditorModal:Qn,$$legacy:!0}),$i=>y(X,$i),()=>l(X))});var Zo=CA(Un,2),Ci=on=>{(function($i,yt){var hn,hA;ft(yt,!1);var Ae=$(void 0,!0),re=$(void 0,!0),xe=$(void 0,!0),ue=$(void 0,!0),aA=xr("jsoneditor:SortModal"),DA=M(yt,"id",9),PA=M(yt,"json",9),Je=M(yt,"rootPath",9),vt=M(yt,"onSort",9),Yt=M(yt,"onClose",9),rn={value:1,label:"ascending"},no=[rn,{value:-1,label:"descending"}],sn="".concat(DA(),":").concat(Ct(Je())),Ji=$((hn=CQ()[sn])===null||hn===void 0?void 0:hn.selectedProperty,!0),bt=$(((hA=CQ()[sn])===null||hA===void 0?void 0:hA.selectedDirection)||rn,!0),Li=$(void 0,!0);function Mn(){try{var fn,Te,Qi;y(Li,void 0);var mi=((fn=l(Ji))===null||fn===void 0?void 0:fn.value)||((Te=l(ue))===null||Te===void 0||(Te=Te[0])===null||Te===void 0?void 0:Te.value)||[],bn=(Qi=l(bt))===null||Qi===void 0?void 0:Qi.value,Ko=$aA(PA(),Je(),mi,bn);vt()!==void 0&&Je()!==void 0&&vt()({operations:Ko,rootPath:Je(),itemPath:mi,direction:bn}),Yt()()}catch(Ot){y(Li,String(Ot))}}function Qt(fn){fn.focus()}pA(()=>(k(PA()),k(Je())),()=>{y(Ae,Ye(PA(),Je()))}),pA(()=>l(Ae),()=>{y(re,Array.isArray(l(Ae)))}),pA(()=>(l(re),l(Ae)),()=>{y(xe,l(re)?LG(l(Ae)):void 0)}),pA(()=>(l(xe),q1),()=>{y(ue,l(xe)?l(xe).map(q1):void 0)}),pA(()=>(CQ(),l(Ji),l(bt)),()=>{CQ(CQ()[sn]={selectedProperty:l(Ji),selectedDirection:l(bt)}),aA("store state in memory",sn,CQ()[sn])}),ln(),qt(!0),sf($i,{get onClose(){return Yt()},className:"jse-sort-modal",children:(fn,Te)=>{var Qi=AHA(),mi=Mt(Qi),bn=ZA(()=>l(re)?"Sort array items":"Sort object keys");qy(mi,{get title(){return l(bn)},get onClose(){return Yt()}});var Ko=W(CA(mi,2)),Ot=CA(W(Ko)),Nr=W(Ot),Jn=CA(W(Nr)),Q=W(Jn),m=CA(Nr),v=ee=>{var ne=XTA(),Pe=CA(W(ne));jC(W(Pe),{showChevron:!0,get items(){return l(ue)},get value(){return l(Ji)},set value(Oe){y(Ji,Oe)},$$legacy:!0}),iA(ee,ne)};GA(m,ee=>{l(re),l(ue),oA(()=>{var ne;return l(re)&&l(ue)&&((ne=l(ue))===null||ne===void 0?void 0:ne.length)>1})&&ee(v)});var p=CA(m),F=CA(W(p));jC(W(F),{showChevron:!0,clearable:!1,get items(){return no},get value(){return l(bt)},set value(ee){y(bt,ee)},$$legacy:!0});var U=CA(Ko,2),q=W(U),Z=ee=>{var ne=$TA(),Pe=W(ne);we(()=>pt(Pe,l(Li))),iA(ee,ne)};GA(q,ee=>{l(Li)&&ee(Z)});var RA=W(CA(U,2));rs(()=>ce("click",RA,Mn)),Ts(RA,ee=>Qt?.(ee)),we(ee=>{ed(Q,ee),RA.disabled=(l(re),l(ue),l(Ji),oA(()=>{var ne;return!!(l(re)&&l(ue)&&((ne=l(ue))===null||ne===void 0?void 0:ne.length)>1)&&!l(Ji)}))},[()=>(k(Je()),k(Gi),k(Ta),oA(()=>Je()&&!Gi(Je())?Ta(Je()):"(document root)"))],ZA),iA(fn,Qi)},$$slots:{default:!0}}),mt()})(on,AI(()=>l(le),{onClose:()=>{var $i;($i=l(le))===null||$i===void 0||$i.onClose(),y(le,void 0)}}))};GA(Zo,on=>{l(le)&&on(Ci)});var io=CA(Zo,2),Wo=on=>{eTA(on,AI(()=>l(Ee),{onClose:()=>{var $i;($i=l(Ee))===null||$i===void 0||$i.onClose(),y(Ee,void 0)}}))};GA(io,on=>{l(Ee)&&on(Wo)});var Xo=CA(io,2),nr=on=>{(function($i,yt){ft(yt,!1);var hn=$(void 0,!0),hA=$(void 0,!0),Ae=$(void 0,!0),re=$(void 0,!0),xe=xr("jsoneditor:JSONEditorModal"),ue=M(yt,"content",9),aA=M(yt,"path",9),DA=M(yt,"onPatch",9),PA=M(yt,"readOnly",9),Je=M(yt,"indentation",9),vt=M(yt,"tabSize",9),Yt=M(yt,"truncateTextSize",9),rn=M(yt,"mainMenuBar",9),no=M(yt,"navigationBar",9),sn=M(yt,"statusBar",9),Ji=M(yt,"askToFormat",9),bt=M(yt,"escapeControlCharacters",9),Li=M(yt,"escapeUnicodeCharacters",9),Mn=M(yt,"flattenColumns",9),Qt=M(yt,"parser",9),fn=M(yt,"validator",9),Te=M(yt,"validationParser",9),Qi=M(yt,"pathParser",9),mi=M(yt,"onRenderValue",9),bn=M(yt,"onClassName",9),Ko=M(yt,"onRenderMenu",9),Ot=M(yt,"onRenderContextMenu",9),Nr=M(yt,"onSortModal",9),Jn=M(yt,"onTransformModal",9),Q=M(yt,"onClose",9),m=$(void 0,!0),v=$(void 0,!0),p={mode:q(ue()),content:ue(),selection:void 0,relativePath:aA()},F=$([p],!0),U=$(void 0,!0);function q(rA){return X3(rA)&&wo(rA.json)?ir.table:ir.tree}function Z(){var rA,HA=(rA=li(l(F)))===null||rA===void 0?void 0:rA.selection;tf(HA)&&l(m).scrollTo(nt(HA))}function RA(){if(xe("handleApply"),!PA())try{y(U,void 0);var rA=l(hn).relativePath,HA=l(hn).content,De=[{op:"replace",path:Ct(rA),value:vrA(HA,Qt()).json}];if(l(F).length>1){var fe=vrA(l(F)[l(F).length-2].content,Qt()).json,Ie={json:Ma(fe,De)},Bt=pe(pe({},l(F)[l(F).length-2]||p),{},{content:Ie});y(F,[...l(F).slice(0,l(F).length-2),Bt]),to(),Z()}else DA()(De),Q()()}catch(At){y(U,String(At))}}function ee(){if(xe("handleClose"),l(v))y(v,!1);else if(l(F).length>1){var rA;y(F,yi(l(F))),to(),(rA=l(m))===null||rA===void 0||rA.focus(),Z(),y(U,void 0)}else Q()()}function ne(rA){xe("handleChange",rA),ve(HA=>pe(pe({},HA),{},{content:rA}))}function Pe(rA){xe("handleChangeSelection",rA),ve(HA=>pe(pe({},HA),{},{selection:rA}))}function Oe(rA){xe("handleChangeMode",rA),ve(HA=>pe(pe({},HA),{},{mode:rA}))}function ve(rA){var HA=rA(li(l(F)));y(F,[...yi(l(F)),HA])}function Ne(rA){y(U,rA.toString()),console.error(rA)}function Yi(rA){var HA,{content:De,path:fe}=rA;xe("handleJSONEditorModal",{content:De,path:fe});var Ie={mode:q(De),content:De,selection:void 0,relativePath:fe};y(F,[...l(F),Ie]),to(),(HA=l(m))===null||HA===void 0||HA.focus()}function H(rA){rA.focus()}ws(()=>{var rA;(rA=l(m))===null||rA===void 0||rA.focus()}),pA(()=>l(F),()=>{y(hn,li(l(F))||p)}),pA(()=>l(F),()=>{y(hA,l(F).flatMap(rA=>rA.relativePath))}),pA(()=>(l(hA),Ta),()=>{y(Ae,Gi(l(hA))?"(document root)":Ta(l(hA)))}),pA(()=>k(Qt()),()=>{y(re,hE(Qt().parse))}),ln(),qt(!0),sf($i,{onClose:ee,className:"jse-jsoneditor-modal",get fullscreen(){return l(v)},children:(rA,HA)=>{var De=ZTA();NG(W(De),{children:(fe,Ie)=>{var Bt=VTA(),At=Mt(Bt),ui=ZA(()=>(l(F),oA(()=>l(F).length>1?" (".concat(l(F).length,")"):"")));qy(At,{get title(){var xt;return"Edit nested content ".concat((xt=l(ui))!==null&&xt!==void 0?xt:"")},fullScreenButton:!0,onClose:ee,get fullscreen(){return l(v)},set fullscreen(xt){y(v,xt)},$$legacy:!0});var Cn=CA(At,2),xi=CA(W(Cn),2),Yn=CA(xi,4);Qo(BsA(W(Yn),{get externalMode(){return l(hn),oA(()=>l(hn).mode)},get content(){return l(hn),oA(()=>l(hn).content)},get selection(){return l(hn),oA(()=>l(hn).selection)},get readOnly(){return PA()},get indentation(){return Je()},get tabSize(){return vt()},get truncateTextSize(){return Yt()},get statusBar(){return sn()},get askToFormat(){return Ji()},get mainMenuBar(){return rn()},get navigationBar(){return no()},get escapeControlCharacters(){return bt()},get escapeUnicodeCharacters(){return Li()},get flattenColumns(){return Mn()},get parser(){return Qt()},get parseMemoizeOne(){return l(re)},get validator(){return fn()},get validationParser(){return Te()},get pathParser(){return Qi()},insideModal:!0,onError:Ne,onChange:ne,onChangeMode:Oe,onSelect:Pe,get onRenderValue(){return mi()},get onClassName(){return bn()},get onFocus(){return $c},get onBlur(){return $c},get onRenderMenu(){return Ko()},get onRenderContextMenu(){return Ot()},get onSortModal(){return Nr()},get onTransformModal(){return Jn()},onJSONEditorModal:Yi,$$legacy:!0}),xt=>y(m,xt),()=>l(m));var Tt=W(CA(Yn,2)),bo=xt=>{var rt=zTA(),Ai=W(rt);we(()=>pt(Ai,l(U))),iA(xt,rt)};GA(Tt,xt=>{l(U)&&xt(bo)});var kn=CA(Tt,2),oo=xt=>{var rt=PTA();Ui(W(rt),{get data(){return BX}}),ce("click",rt,ee),iA(xt,rt)};GA(kn,xt=>{l(F),oA(()=>l(F).length>1)&&xt(oo)});var An=CA(kn,2),Lt=xt=>{var rt=jTA();rs(()=>ce("click",rt,RA)),Ts(rt,Ai=>H?.(Ai)),iA(xt,rt)},Ti=xt=>{var rt=qTA();ce("click",rt,ee),iA(xt,rt)};GA(An,xt=>{PA()?xt(Ti,!1):xt(Lt)}),we(()=>ed(xi,l(Ae))),iA(fe,Bt)},$$slots:{default:!0}}),iA(rA,De)},$$slots:{default:!0}}),mt()})(on,AI(()=>l(kA),{onClose:()=>{var $i;($i=l(kA))===null||$i===void 0||$i.onClose(),y(kA,void 0)}}))};GA(Xo,on=>{l(kA)&&on(nr)}),we(on=>Ri=jt(Un,1,"jse-main svelte-57bmz4",null,Ri,on),[()=>({"jse-focus":l(P)})],ZA),ce("keydown",Un,Kn),iA($A,un)},$$slots:{default:!0}}),Ft(e,"get",MA),Ft(e,"set",dt),Ft(e,"update",$e),Ft(e,"patch",XA),Ft(e,"select",ot),Ft(e,"expand",Si),Ft(e,"collapse",Zi),Ft(e,"transform",Oi),Ft(e,"validate",Le),Ft(e,"acceptAutoRepair",zi),Ft(e,"scrollTo",fi),Ft(e,"findElement",Rt),Ft(e,"focus",Bi),Ft(e,"refresh",Mi),Ft(e,"updateProps",b),Ft(e,"destroy",et),mt({get:MA,set:dt,update:$e,patch:XA,select:ot,expand:Si,collapse:Zi,transform:Oi,validate:Le,acceptAutoRepair:zi,scrollTo:fi,findElement:Rt,focus:Bi,refresh:Mi,updateProps:b,destroy:et})}function IcA(t){var{target:e,props:A}=t,i=xGA(tHA,{target:e,props:A});return i.destroy=_t(function*(){return function(n,o){var r=kG.get(n);return r?(kG.delete(n),r(o)):Promise.resolve()}(i)}),to(),i}var UQ=class t{constructor(e){this.el=e}jsonString;editor=null;ngAfterViewInit(){let e={text:this.jsonString};this.editor=IcA({target:document.getElementById("json-editor"),props:{content:e,mode:ir.text,mainMenuBar:!1}})}getJsonString(){return this.editor?.get().text}static \u0275fac=function(A){return new(A||t)(Ge(se))};static \u0275cmp=jA({type:t,selectors:[["app-json-editor"]],inputs:{jsonString:"jsonString"},decls:1,vars:0,consts:[["id","json-editor",1,"json-editor-container","jse-theme-dark"]],template:function(A,i){A&1&&TA(0,"div",0)},styles:[".jse-theme-dark[_ngcontent-%COMP%]{--jse-theme: dark;--jse-theme-color: #2f6dd0;--jse-theme-color-highlight: #467cd2;--jse-background-color: #1e1e1e;--jse-text-color: #d4d4d4;--jse-text-color-inverse: #4d4d4d;--jse-main-border: 1px solid #4f4f4f;--jse-menu-color: #fff;--jse-modal-background: #2f2f2f;--jse-modal-overlay-background: rgba(0, 0, 0, .5);--jse-modal-code-background: #2f2f2f;--jse-tooltip-color: var(--jse-text-color);--jse-tooltip-background: #4b4b4b;--jse-tooltip-border: 1px solid #737373;--jse-tooltip-action-button-color: inherit;--jse-tooltip-action-button-background: #737373;--jse-panel-background: #333333;--jse-panel-background-border: 1px solid #464646;--jse-panel-color: var(--jse-text-color);--jse-panel-color-readonly: #737373;--jse-panel-border: 1px solid #3c3c3c;--jse-panel-button-color-highlight: #e5e5e5;--jse-panel-button-background-highlight: #464646;--jse-navigation-bar-background: #656565;--jse-navigation-bar-background-highlight: #7e7e7e;--jse-navigation-bar-dropdown-color: var(--jse-text-color);--jse-context-menu-background: #4b4b4b;--jse-context-menu-background-highlight: #595959;--jse-context-menu-separator-color: #595959;--jse-context-menu-color: var(--jse-text-color);--jse-context-menu-pointer-background: #737373;--jse-context-menu-pointer-background-highlight: #818181;--jse-context-menu-pointer-color: var(--jse-context-menu-color);--jse-key-color: #9cdcfe;--jse-value-color: var(--jse-text-color);--jse-value-color-number: #b5cea8;--jse-value-color-boolean: #569cd6;--jse-value-color-null: #569cd6;--jse-value-color-string: #ce9178;--jse-value-color-url: #ce9178;--jse-delimiter-color: #949494;--jse-edit-outline: 2px solid var(--jse-text-color);--jse-selection-background-color: #464646;--jse-selection-background-inactive-color: #333333;--jse-hover-background-color: #343434;--jse-active-line-background-color: rgba(255, 255, 255, .06);--jse-search-match-background-color: #343434;--jse-collapsed-items-background-color: #333333;--jse-collapsed-items-selected-background-color: #565656;--jse-collapsed-items-link-color: #b2b2b2;--jse-collapsed-items-link-color-highlight: #ec8477;--jse-search-match-color: #724c27;--jse-search-match-outline: 1px solid #966535;--jse-search-match-active-color: #9f6c39;--jse-search-match-active-outline: 1px solid #bb7f43;--jse-tag-background: #444444;--jse-tag-color: #bdbdbd;--jse-table-header-background: #333333;--jse-table-header-background-highlight: #424242;--jse-table-row-odd-background: rgba(255, 255, 255, .1);--jse-input-background: #3d3d3d;--jse-input-border: var(--jse-main-border);--jse-button-background: #808080;--jse-button-background-highlight: #7a7a7a;--jse-button-color: #e0e0e0;--jse-button-secondary-background: #494949;--jse-button-secondary-background-highlight: #5d5d5d;--jse-button-secondary-background-disabled: #9d9d9d;--jse-button-secondary-color: var(--jse-text-color);--jse-a-color: #55abff;--jse-a-color-highlight: #4387c9;--jse-svelte-select-background: #3d3d3d;--jse-svelte-select-border: 1px solid #4f4f4f;--list-background: #3d3d3d;--item-hover-bg: #505050;--multi-item-bg: #5b5b5b;--input-color: #d4d4d4;--multi-clear-bg: #8a8a8a;--multi-item-clear-icon-color: #d4d4d4;--multi-item-outline: 1px solid #696969;--list-shadow: 0 2px 8px 0 rgba(0, 0, 0, .4);--jse-color-picker-background: #656565;--jse-color-picker-border-box-shadow: #8c8c8c 0 0 0 1px}.json-editor-container[_ngcontent-%COMP%]{height:300px;max-height:300px}"]})};var mf=class t{constructor(e,A){this.dialogRef=e;this.data=A;this.jsonString=JSON.stringify(A.jsonContent,null,2),this.functionName=A.functionName||""}jsonEditorComponent=qs(UQ);jsonString="";functionName="";ngOnInit(){}onSave(){try{this.jsonString=this.jsonEditorComponent().getJsonString();let e=JSON.parse(this.jsonString);this.dialogRef.close(e)}catch(e){alert("Invalid JSON: "+e)}}onCancel(){this.dialogRef.close(null)}static \u0275fac=function(A){return new(A||t)(Ge(fr),Ge(Cs))};static \u0275cmp=jA({type:t,selectors:[["app-edit-json-dialog"]],viewQuery:function(A,i){A&1&&ls(i.jsonEditorComponent,UQ,5),A&2&&yc()},decls:11,vars:3,consts:[[1,"dialog-container"],["mat-dialog-title",""],[3,"jsonString"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2),N(),S(3,"mat-dialog-content"),AA(4),TA(5,"app-json-editor",2),N(),S(6,"mat-dialog-actions",3)(7,"button",4),AA(8,"Cancel"),N(),S(9,"button",5),mA("click",function(){return i.onSave()}),AA(10,"Save"),N()()()),A&2&&(_(2),tt(i.data.dialogHeader),_(2),It(" ",i.functionName," "),_(),yA("jsonString",i.jsonString))},dependencies:[Ls,ya,UQ,va,dr,bl],styles:[".dialog-container[_ngcontent-%COMP%]{border-radius:12px;padding:18px;width:500px;box-shadow:0 8px 16px var(--edit-json-dialog-container-box-shadow-color)}.editor[_ngcontent-%COMP%]{padding-top:12px}"]})};var iHA=["input"],nHA=["label"],oHA=["*"],rHA=new eA("mat-checkbox-default-options",{providedIn:"root",factory:dcA});function dcA(){return{color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1}}var Hs=function(t){return t[t.Init=0]="Init",t[t.Checked=1]="Checked",t[t.Unchecked=2]="Unchecked",t[t.Indeterminate=3]="Indeterminate",t}(Hs||{}),sHA={provide:bc,useExisting:Ur(()=>pf),multi:!0},xK=class{source;checked},CcA=dcA(),pf=(()=>{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_ngZone=f(ye);_animationMode=f(_i,{optional:!0});_options=f(rHA,{optional:!0});focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(A){let i=new xK;return i.source=this,i.checked=A,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return`${this.id||this._uniqueId}-input`}required;labelPosition="after";name=null;change=new YA;indeterminateChange=new YA;value;disableRipple;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=Hs.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){f(Pn).load(Yr);let A=f(new Wr("tabindex"),{optional:!0});this._options=this._options||CcA,this.color=this._options.color||CcA.color,this.tabIndex=A==null?0:parseInt(A)||0,this.id=this._uniqueId=f(an).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??!1}ngOnChanges(A){A.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(A){A!=this.checked&&(this._checked=A,this._changeDetectorRef.markForCheck())}_checked=!1;get disabled(){return this._disabled}set disabled(A){A!==this.disabled&&(this._disabled=A,this._changeDetectorRef.markForCheck())}_disabled=!1;get indeterminate(){return this._indeterminate}set indeterminate(A){let i=A!=this._indeterminate;this._indeterminate=A,i&&(this._indeterminate?this._transitionCheckState(Hs.Indeterminate):this._transitionCheckState(this.checked?Hs.Checked:Hs.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_indeterminate=!1;_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(A){this.checked=!!A}registerOnChange(A){this._controlValueAccessorChangeFn=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A}validate(A){return this.required&&A.value!==!0?{required:!0}:null}registerOnValidatorChange(A){this._validatorChangeFn=A}_transitionCheckState(A){let i=this._currentCheckState,n=this._getAnimationTargetElement();if(!(i===A||!n)&&(this._currentAnimationClass&&n.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,A),this._currentCheckState=A,this._currentAnimationClass.length>0)){n.classList.add(this._currentAnimationClass);let o=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{n.classList.remove(o)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){let A=this._options?.clickAction;!this.disabled&&A!=="noop"?(this.indeterminate&&A!=="check"&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Hs.Checked:Hs.Unchecked),this._emitChangeEvent()):(this.disabled&&this.disabledInteractive||!this.disabled&&A==="noop")&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate)}_onInteractionEvent(A){A.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(A,i){if(this._animationMode==="NoopAnimations")return"";switch(A){case Hs.Init:if(i===Hs.Checked)return this._animationClasses.uncheckedToChecked;if(i==Hs.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Hs.Unchecked:return i===Hs.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Hs.Checked:return i===Hs.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Hs.Indeterminate:return i===Hs.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(A){let i=this._inputElement;i&&(i.nativeElement.indeterminate=A)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(A){A.target&&this._labelElement.nativeElement.contains(A.target)&&A.stopPropagation()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-checkbox"]],viewQuery:function(i,n){if(i&1&&(st(iHA,5),st(nHA,5)),i&2){let o;de(o=Be())&&(n._inputElement=o.first),de(o=Be())&&(n._labelElement=o.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,n){i&2&&(Qa("id",n.id),Ke("tabindex",null)("aria-label",null)("aria-labelledby",null),Ro(n.color?"mat-"+n.color:"mat-accent"),he("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mdc-checkbox--disabled",n.disabled)("mat-mdc-checkbox-disabled",n.disabled)("mat-mdc-checkbox-checked",n.checked)("mat-mdc-checkbox-disabled-interactive",n.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",ge],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",ge],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",ge],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?void 0:en(A)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge],checked:[2,"checked","checked",ge],disabled:[2,"disabled","disabled",ge],indeterminate:[2,"indeterminate","indeterminate",ge]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[ut([sHA,{provide:M0,useExisting:t,multi:!0}]),Xt],ngContentSelectors:oHA,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"div",3),mA("click",function(s){return QA(o),uA(n._preventBubblingFromLabel(s))}),S(1,"div",4,0)(3,"div",5),mA("click",function(){return QA(o),uA(n._onTouchTargetClick())}),N(),S(4,"input",6,1),mA("blur",function(){return QA(o),uA(n._onBlur())})("click",function(){return QA(o),uA(n._onInputClick())})("change",function(s){return QA(o),uA(n._onInteractionEvent(s))}),N(),TA(6,"div",7),S(7,"div",8),ur(),S(8,"svg",9),TA(9,"path",10),N(),_I(),TA(10,"div",11),N(),TA(11,"div",12),N(),S(12,"label",13,2),Ue(14),N()()}if(i&2){let o=Cr(2);yA("labelPosition",n.labelPosition),_(4),he("mdc-checkbox--selected",n.checked),yA("checked",n.checked)("indeterminate",n.indeterminate)("disabled",n.disabled&&!n.disabledInteractive)("id",n.inputId)("required",n.required)("tabIndex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex),Ke("aria-label",n.ariaLabel||null)("aria-labelledby",n.ariaLabelledby)("aria-describedby",n.ariaDescribedby)("aria-checked",n.indeterminate?"mixed":null)("aria-controls",n.ariaControls)("aria-disabled",n.disabled&&n.disabledInteractive?!0:null)("aria-expanded",n.ariaExpanded)("aria-owns",n.ariaOwns)("name",n.name)("value",n.value),_(7),yA("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)("matRippleCentered",!0),_(),yA("for",n.inputId)}},dependencies:[Xs,B6],styles:['.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom;padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover>.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:hover>.mat-mdc-checkbox-ripple>.mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control+.mdc-checkbox__ripple{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox--disabled{cursor:default;pointer-events:none}@media(forced-colors: active){.mdc-checkbox--disabled{opacity:.5}}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mdc-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-touch-target,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__native-control,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__ripple,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-ripple::before,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__mixedmark{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox .mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox .mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display, block)}.mat-mdc-checkbox .mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();var cHA=[[["caption"]],[["colgroup"],["col"]],"*"],gHA=["caption","colgroup, col","*"];function lHA(t,e){t&1&&Ue(0,2)}function IHA(t,e){t&1&&(S(0,"thead",0),rr(1,1),N(),S(2,"tbody",0),rr(3,2)(4,3),N(),S(5,"tfoot",0),rr(6,4),N())}function CHA(t,e){t&1&&rr(0,1)(1,2)(2,3)(3,4)}var Zg=new eA("CDK_TABLE");var Q7=(()=>{class t{template=f(mn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkCellDef",""]]})}return t})(),u7=(()=>{class t{template=f(mn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkHeaderCellDef",""]]})}return t})(),QcA=(()=>{class t{template=f(mn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkFooterCellDef",""]]})}return t})(),JQ=(()=>{class t{_table=f(Zg,{optional:!0});_hasStickyChanged=!1;get name(){return this._name}set name(A){this._setNameInput(A)}_name;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;get stickyEnd(){return this._stickyEnd}set stickyEnd(A){A!==this._stickyEnd&&(this._stickyEnd=A,this._hasStickyChanged=!0)}_stickyEnd=!1;cell;headerCell;footerCell;cssClassFriendlyName;_columnCssClassName;constructor(){}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}_updateColumnCssClassName(){this._columnCssClassName=[`cdk-column-${this.cssClassFriendlyName}`]}_setNameInput(A){A&&(this._name=A,this.cssClassFriendlyName=A.replace(/[^a-z0-9_-]/gi,"-"),this._updateColumnCssClassName())}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkColumnDef",""]],contentQueries:function(i,n,o){if(i&1&&(gi(o,Q7,5),gi(o,u7,5),gi(o,QcA,5)),i&2){let r;de(r=Be())&&(n.cell=r.first),de(r=Be())&&(n.headerCell=r.first),de(r=Be())&&(n.footerCell=r.first)}},inputs:{name:[0,"cdkColumnDef","name"],sticky:[2,"sticky","sticky",ge],stickyEnd:[2,"stickyEnd","stickyEnd",ge]},features:[ut([{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}])]})}return t})(),C7=class{constructor(e,A){A.nativeElement.classList.add(...e._columnCssClassName)}},ucA=(()=>{class t extends C7{constructor(){super(f(JQ),f(se))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["cdk-header-cell"],["th","cdk-header-cell",""]],hostAttrs:["role","columnheader",1,"cdk-header-cell"],features:[lt]})}return t})();var hcA=(()=>{class t extends C7{constructor(){let A=f(JQ),i=f(se);super(A,i);let n=A._table?._getCellRole();n&&i.nativeElement.setAttribute("role",n)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["cdk-cell"],["td","cdk-cell",""]],hostAttrs:[1,"cdk-cell"],features:[lt]})}return t})(),d7=class{tasks=[];endTasks=[]},B7=new eA("_COALESCED_STYLE_SCHEDULER"),FK=(()=>{class t{_currentSchedule=null;_ngZone=f(ye);constructor(){}schedule(A){this._createScheduleIfNeeded(),this._currentSchedule.tasks.push(A)}scheduleEnd(A){this._createScheduleIfNeeded(),this._currentSchedule.endTasks.push(A)}_createScheduleIfNeeded(){this._currentSchedule||(this._currentSchedule=new d7,this._ngZone.runOutsideAngular(()=>queueMicrotask(()=>{for(;this._currentSchedule.tasks.length||this._currentSchedule.endTasks.length;){let A=this._currentSchedule;this._currentSchedule=new d7;for(let i of A.tasks)i();for(let i of A.endTasks)i()}this._currentSchedule=null})))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();var _K=(()=>{class t{template=f(mn);_differs=f(Ql);columns;_columnsDiffer;constructor(){}ngOnChanges(A){if(!this._columnsDiffer){let i=A.columns&&A.columns.currentValue||[];this._columnsDiffer=this._differs.find(i).create(),this._columnsDiffer.diff(i)}}getColumnsDiff(){return this._columnsDiffer.diff(this.columns)}extractCellTemplate(A){return this instanceof Df?A.headerCell.template:this instanceof GK?A.footerCell.template:A.cell.template}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,features:[Xt]})}return t})(),Df=(()=>{class t extends _K{_table=f(Zg,{optional:!0});_hasStickyChanged=!1;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;constructor(){super(f(mn),f(Ql))}ngOnChanges(A){super.ngOnChanges(A)}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkHeaderRowDef",""]],inputs:{columns:[0,"cdkHeaderRowDef","columns"],sticky:[2,"cdkHeaderRowDefSticky","sticky",ge]},features:[lt,Xt]})}return t})(),GK=(()=>{class t extends _K{_table=f(Zg,{optional:!0});_hasStickyChanged=!1;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;constructor(){super(f(mn),f(Ql))}ngOnChanges(A){super.ngOnChanges(A)}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkFooterRowDef",""]],inputs:{columns:[0,"cdkFooterRowDef","columns"],sticky:[2,"cdkFooterRowDefSticky","sticky",ge]},features:[lt,Xt]})}return t})(),h7=(()=>{class t extends _K{_table=f(Zg,{optional:!0});when;constructor(){super(f(mn),f(Ql))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkRowDef",""]],inputs:{columns:[0,"cdkRowDefColumns","columns"],when:[0,"cdkRowDefWhen","when"]},features:[lt]})}return t})(),sd=(()=>{class t{_viewContainer=f(Sn);cells;context;static mostRecentCellOutlet=null;constructor(){t.mostRecentCellOutlet=this}ngOnDestroy(){t.mostRecentCellOutlet===this&&(t.mostRecentCellOutlet=null)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkCellOutlet",""]]})}return t})(),KK=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["cdk-header-row"],["tr","cdk-header-row",""]],hostAttrs:["role","row",1,"cdk-header-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&rr(0,0)},dependencies:[sd],encapsulation:2})}return t})();var UK=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["cdk-row"],["tr","cdk-row",""]],hostAttrs:["role","row",1,"cdk-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&rr(0,0)},dependencies:[sd],encapsulation:2})}return t})(),fcA=(()=>{class t{templateRef=f(mn);_contentClassName="cdk-no-data-row";constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["ng-template","cdkNoDataRow",""]]})}return t})(),BcA=["top","bottom","left","right"],NK=class{_isNativeHtmlTable;_stickCellCss;direction;_coalescedStyleScheduler;_isBrowser;_needsPositionStickyOnElement;_positionListener;_tableInjector;_elemSizeCache=new WeakMap;_resizeObserver=globalThis?.ResizeObserver?new globalThis.ResizeObserver(e=>this._updateCachedSizes(e)):null;_updatedStickyColumnsParamsToReplay=[];_stickyColumnsReplayTimeout=null;_cachedCellWidths=[];_borderCellCss;_destroyed=!1;constructor(e,A,i,n,o=!0,r=!0,s,a){this._isNativeHtmlTable=e,this._stickCellCss=A,this.direction=i,this._coalescedStyleScheduler=n,this._isBrowser=o,this._needsPositionStickyOnElement=r,this._positionListener=s,this._tableInjector=a,this._borderCellCss={top:`${A}-border-elem-top`,bottom:`${A}-border-elem-bottom`,left:`${A}-border-elem-left`,right:`${A}-border-elem-right`}}clearStickyPositioning(e,A){(A.includes("left")||A.includes("right"))&&this._removeFromStickyColumnReplayQueue(e);let i=[];for(let n of e)n.nodeType===n.ELEMENT_NODE&&i.push(n,...Array.from(n.children));this._afterNextRender({write:()=>{for(let n of i)this._removeStickyStyle(n,A)}})}updateStickyColumns(e,A,i,n=!0,o=!0){if(!e.length||!this._isBrowser||!(A.some(u=>u)||i.some(u=>u))){this._positionListener?.stickyColumnsUpdated({sizes:[]}),this._positionListener?.stickyEndColumnsUpdated({sizes:[]});return}let r=e[0],s=r.children.length,a=this.direction==="rtl",c=a?"right":"left",g=a?"left":"right",I=A.lastIndexOf(!0),C=i.indexOf(!0),d,B,E;o&&this._updateStickyColumnReplayQueue({rows:[...e],stickyStartStates:[...A],stickyEndStates:[...i]}),this._afterNextRender({earlyRead:()=>{d=this._getCellWidths(r,n),B=this._getStickyStartColumnPositions(d,A),E=this._getStickyEndColumnPositions(d,i)},write:()=>{for(let u of e)for(let h=0;h!!u)&&(this._positionListener.stickyColumnsUpdated({sizes:I===-1?[]:d.slice(0,I+1).map((u,h)=>A[h]?u:null)}),this._positionListener.stickyEndColumnsUpdated({sizes:C===-1?[]:d.slice(C).map((u,h)=>i[h+C]?u:null).reverse()}))}})}stickRows(e,A,i){if(!this._isBrowser)return;let n=i==="bottom"?e.slice().reverse():e,o=i==="bottom"?A.slice().reverse():A,r=[],s=[],a=[];this._afterNextRender({earlyRead:()=>{for(let c=0,g=0;c{let c=o.lastIndexOf(!0);for(let g=0;g{let i=e.querySelector("tfoot");i&&(A.some(n=>!n)?this._removeStickyStyle(i,["bottom"]):this._addStickyStyle(i,"bottom",0,!1))}})}destroy(){this._stickyColumnsReplayTimeout&&clearTimeout(this._stickyColumnsReplayTimeout),this._resizeObserver?.disconnect(),this._destroyed=!0}_removeStickyStyle(e,A){for(let n of A)e.style[n]="",e.classList.remove(this._borderCellCss[n]);BcA.some(n=>A.indexOf(n)===-1&&e.style[n])?e.style.zIndex=this._getCalculatedZIndex(e):(e.style.zIndex="",this._needsPositionStickyOnElement&&(e.style.position=""),e.classList.remove(this._stickCellCss))}_addStickyStyle(e,A,i,n){e.classList.add(this._stickCellCss),n&&e.classList.add(this._borderCellCss[A]),e.style[A]=`${i}px`,e.style.zIndex=this._getCalculatedZIndex(e),this._needsPositionStickyOnElement&&(e.style.cssText+="position: -webkit-sticky; position: sticky; ")}_getCalculatedZIndex(e){let A={top:100,bottom:10,left:1,right:1},i=0;for(let n of BcA)e.style[n]&&(i+=A[n]);return i?`${i}`:""}_getCellWidths(e,A=!0){if(!A&&this._cachedCellWidths.length)return this._cachedCellWidths;let i=[],n=e.children;for(let o=0;o0;o--)A[o]&&(i[o]=n,n+=e[o]);return i}_retrieveElementSize(e){let A=this._elemSizeCache.get(e);if(A)return A;let i=e.getBoundingClientRect(),n={width:i.width,height:i.height};return this._resizeObserver&&(this._elemSizeCache.set(e,n),this._resizeObserver.observe(e,{box:"border-box"})),n}_updateStickyColumnReplayQueue(e){this._removeFromStickyColumnReplayQueue(e.rows),this._stickyColumnsReplayTimeout||this._updatedStickyColumnsParamsToReplay.push(e)}_removeFromStickyColumnReplayQueue(e){let A=new Set(e);for(let i of this._updatedStickyColumnsParamsToReplay)i.rows=i.rows.filter(n=>!A.has(n));this._updatedStickyColumnsParamsToReplay=this._updatedStickyColumnsParamsToReplay.filter(i=>!!i.rows.length)}_updateCachedSizes(e){let A=!1;for(let i of e){let n=i.borderBoxSize?.length?{width:i.borderBoxSize[0].inlineSize,height:i.borderBoxSize[0].blockSize}:{width:i.contentRect.width,height:i.contentRect.height};n.width!==this._elemSizeCache.get(i.target)?.width&&dHA(i.target)&&(A=!0),this._elemSizeCache.set(i.target,n)}A&&this._updatedStickyColumnsParamsToReplay.length&&(this._stickyColumnsReplayTimeout&&clearTimeout(this._stickyColumnsReplayTimeout),this._stickyColumnsReplayTimeout=setTimeout(()=>{if(!this._destroyed){for(let i of this._updatedStickyColumnsParamsToReplay)this.updateStickyColumns(i.rows,i.stickyStartStates,i.stickyEndStates,!0,!1);this._updatedStickyColumnsParamsToReplay=[],this._stickyColumnsReplayTimeout=null}},0))}_afterNextRender(e){this._tableInjector?Ir(e,{injector:this._tableInjector}):this._coalescedStyleScheduler.schedule(()=>{e.earlyRead?.(),e.write()})}};function dHA(t){return["cdk-cell","cdk-header-cell","cdk-footer-cell"].some(e=>t.classList.contains(e))}var E7=new eA("CDK_SPL");var JK=(()=>{class t{viewContainer=f(Sn);elementRef=f(se);constructor(){let A=f(Zg);A._rowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","rowOutlet",""]]})}return t})(),YK=(()=>{class t{viewContainer=f(Sn);elementRef=f(se);constructor(){let A=f(Zg);A._headerRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","headerRowOutlet",""]]})}return t})(),TK=(()=>{class t{viewContainer=f(Sn);elementRef=f(se);constructor(){let A=f(Zg);A._footerRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","footerRowOutlet",""]]})}return t})(),HK=(()=>{class t{viewContainer=f(Sn);elementRef=f(se);constructor(){let A=f(Zg);A._noDataRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","noDataRowOutlet",""]]})}return t})();var OK=(()=>{class t{_differs=f(Ql);_changeDetectorRef=f(Et);_elementRef=f(se);_dir=f(po,{optional:!0});_platform=f(ni);_viewRepeater=f(Hh);_coalescedStyleScheduler=f(B7);_viewportRuler=f(Nc);_stickyPositioningListener=f(E7,{optional:!0,skipSelf:!0});_document=f(at);_data;_onDestroy=new qA;_renderRows;_renderChangeSubscription;_columnDefsByName=new Map;_rowDefs;_headerRowDefs;_footerRowDefs;_dataDiffer;_defaultRowDef;_customColumnDefs=new Set;_customRowDefs=new Set;_customHeaderRowDefs=new Set;_customFooterRowDefs=new Set;_customNoDataRow;_headerRowDefChanged=!0;_footerRowDefChanged=!0;_stickyColumnStylesNeedReset=!0;_forceRecalculateCellWidths=!0;_cachedRenderRowsMap=new Map;_isNativeHtmlTable;_stickyStyler;stickyCssClass="cdk-table-sticky";needsPositionStickyOnElement=!0;_isServer;_isShowingNoDataRow=!1;_hasAllOutlets=!1;_hasInitialized=!1;_getCellRole(){if(this._cellRoleInternal===void 0){let A=this._elementRef.nativeElement.getAttribute("role");return A==="grid"||A==="treegrid"?"gridcell":"cell"}return this._cellRoleInternal}_cellRoleInternal=void 0;get trackBy(){return this._trackByFn}set trackBy(A){this._trackByFn=A}_trackByFn;get dataSource(){return this._dataSource}set dataSource(A){this._dataSource!==A&&this._switchDataSource(A)}_dataSource;get multiTemplateDataRows(){return this._multiTemplateDataRows}set multiTemplateDataRows(A){this._multiTemplateDataRows=A,this._rowOutlet&&this._rowOutlet.viewContainer.length&&(this._forceRenderDataRows(),this.updateStickyColumnStyles())}_multiTemplateDataRows=!1;get fixedLayout(){return this._fixedLayout}set fixedLayout(A){this._fixedLayout=A,this._forceRecalculateCellWidths=!0,this._stickyColumnStylesNeedReset=!0}_fixedLayout=!1;contentChanged=new YA;viewChange=new Fi({start:0,end:Number.MAX_VALUE});_rowOutlet;_headerRowOutlet;_footerRowOutlet;_noDataRowOutlet;_contentColumnDefs;_contentRowDefs;_contentHeaderRowDefs;_contentFooterRowDefs;_noDataRow;_injector=f(Zt);constructor(){f(new Wr("role"),{optional:!0})||this._elementRef.nativeElement.setAttribute("role","table"),this._isServer=!this._platform.isBrowser,this._isNativeHtmlTable=this._elementRef.nativeElement.nodeName==="TABLE"}ngOnInit(){this._setupStickyStyler(),this._dataDiffer=this._differs.find([]).create((A,i)=>this.trackBy?this.trackBy(i.dataIndex,i.data):i),this._viewportRuler.change().pipe(kt(this._onDestroy)).subscribe(()=>{this._forceRecalculateCellWidths=!0})}ngAfterContentInit(){this._hasInitialized=!0}ngAfterContentChecked(){this._canRender()&&this._render()}ngOnDestroy(){this._stickyStyler?.destroy(),[this._rowOutlet?.viewContainer,this._headerRowOutlet?.viewContainer,this._footerRowOutlet?.viewContainer,this._cachedRenderRowsMap,this._customColumnDefs,this._customRowDefs,this._customHeaderRowDefs,this._customFooterRowDefs,this._columnDefsByName].forEach(A=>{A?.clear()}),this._headerRowDefs=[],this._footerRowDefs=[],this._defaultRowDef=null,this._onDestroy.next(),this._onDestroy.complete(),M8(this.dataSource)&&this.dataSource.disconnect(this)}renderRows(){this._renderRows=this._getAllRenderRows();let A=this._dataDiffer.diff(this._renderRows);if(!A){this._updateNoDataRow(),this.contentChanged.next();return}let i=this._rowOutlet.viewContainer;this._viewRepeater.applyChanges(A,i,(n,o,r)=>this._getEmbeddedViewArgs(n.item,r),n=>n.item.data,n=>{n.operation===GB.INSERTED&&n.context&&this._renderCellTemplateForItem(n.record.item.rowDef,n.context)}),this._updateRowIndexContext(),A.forEachIdentityChange(n=>{let o=i.get(n.currentIndex);o.context.$implicit=n.item.data}),this._updateNoDataRow(),this.contentChanged.next(),this.updateStickyColumnStyles()}addColumnDef(A){this._customColumnDefs.add(A)}removeColumnDef(A){this._customColumnDefs.delete(A)}addRowDef(A){this._customRowDefs.add(A)}removeRowDef(A){this._customRowDefs.delete(A)}addHeaderRowDef(A){this._customHeaderRowDefs.add(A),this._headerRowDefChanged=!0}removeHeaderRowDef(A){this._customHeaderRowDefs.delete(A),this._headerRowDefChanged=!0}addFooterRowDef(A){this._customFooterRowDefs.add(A),this._footerRowDefChanged=!0}removeFooterRowDef(A){this._customFooterRowDefs.delete(A),this._footerRowDefChanged=!0}setNoDataRow(A){this._customNoDataRow=A}updateStickyHeaderRowStyles(){let A=this._getRenderedRows(this._headerRowOutlet);if(this._isNativeHtmlTable){let n=EcA(this._headerRowOutlet,"thead");n&&(n.style.display=A.length?"":"none")}let i=this._headerRowDefs.map(n=>n.sticky);this._stickyStyler.clearStickyPositioning(A,["top"]),this._stickyStyler.stickRows(A,i,"top"),this._headerRowDefs.forEach(n=>n.resetStickyChanged())}updateStickyFooterRowStyles(){let A=this._getRenderedRows(this._footerRowOutlet);if(this._isNativeHtmlTable){let n=EcA(this._footerRowOutlet,"tfoot");n&&(n.style.display=A.length?"":"none")}let i=this._footerRowDefs.map(n=>n.sticky);this._stickyStyler.clearStickyPositioning(A,["bottom"]),this._stickyStyler.stickRows(A,i,"bottom"),this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement,i),this._footerRowDefs.forEach(n=>n.resetStickyChanged())}updateStickyColumnStyles(){let A=this._getRenderedRows(this._headerRowOutlet),i=this._getRenderedRows(this._rowOutlet),n=this._getRenderedRows(this._footerRowOutlet);(this._isNativeHtmlTable&&!this._fixedLayout||this._stickyColumnStylesNeedReset)&&(this._stickyStyler.clearStickyPositioning([...A,...i,...n],["left","right"]),this._stickyColumnStylesNeedReset=!1),A.forEach((o,r)=>{this._addStickyColumnStyles([o],this._headerRowDefs[r])}),this._rowDefs.forEach(o=>{let r=[];for(let s=0;s{this._addStickyColumnStyles([o],this._footerRowDefs[r])}),Array.from(this._columnDefsByName.values()).forEach(o=>o.resetStickyChanged())}_outletAssigned(){!this._hasAllOutlets&&this._rowOutlet&&this._headerRowOutlet&&this._footerRowOutlet&&this._noDataRowOutlet&&(this._hasAllOutlets=!0,this._canRender()&&this._render())}_canRender(){return this._hasAllOutlets&&this._hasInitialized}_render(){this._cacheRowDefs(),this._cacheColumnDefs(),!this._headerRowDefs.length&&!this._footerRowDefs.length&&this._rowDefs.length;let i=this._renderUpdatedColumns()||this._headerRowDefChanged||this._footerRowDefChanged;this._stickyColumnStylesNeedReset=this._stickyColumnStylesNeedReset||i,this._forceRecalculateCellWidths=i,this._headerRowDefChanged&&(this._forceRenderHeaderRows(),this._headerRowDefChanged=!1),this._footerRowDefChanged&&(this._forceRenderFooterRows(),this._footerRowDefChanged=!1),this.dataSource&&this._rowDefs.length>0&&!this._renderChangeSubscription?this._observeRenderChanges():this._stickyColumnStylesNeedReset&&this.updateStickyColumnStyles(),this._checkStickyStates()}_getAllRenderRows(){let A=[],i=this._cachedRenderRowsMap;this._cachedRenderRowsMap=new Map;for(let n=0;n{let s=n&&n.has(r)?n.get(r):[];if(s.length){let a=s.shift();return a.dataIndex=i,a}else return{data:A,rowDef:r,dataIndex:i}})}_cacheColumnDefs(){this._columnDefsByName.clear(),I7(this._getOwnDefs(this._contentColumnDefs),this._customColumnDefs).forEach(i=>{this._columnDefsByName.has(i.name),this._columnDefsByName.set(i.name,i)})}_cacheRowDefs(){this._headerRowDefs=I7(this._getOwnDefs(this._contentHeaderRowDefs),this._customHeaderRowDefs),this._footerRowDefs=I7(this._getOwnDefs(this._contentFooterRowDefs),this._customFooterRowDefs),this._rowDefs=I7(this._getOwnDefs(this._contentRowDefs),this._customRowDefs);let A=this._rowDefs.filter(i=>!i.when);!this.multiTemplateDataRows&&A.length>1,this._defaultRowDef=A[0]}_renderUpdatedColumns(){let A=(r,s)=>{let a=!!s.getColumnsDiff();return r||a},i=this._rowDefs.reduce(A,!1);i&&this._forceRenderDataRows();let n=this._headerRowDefs.reduce(A,!1);n&&this._forceRenderHeaderRows();let o=this._footerRowDefs.reduce(A,!1);return o&&this._forceRenderFooterRows(),i||n||o}_switchDataSource(A){this._data=[],M8(this.dataSource)&&this.dataSource.disconnect(this),this._renderChangeSubscription&&(this._renderChangeSubscription.unsubscribe(),this._renderChangeSubscription=null),A||(this._dataDiffer&&this._dataDiffer.diff([]),this._rowOutlet&&this._rowOutlet.viewContainer.clear()),this._dataSource=A}_observeRenderChanges(){if(!this.dataSource)return;let A;M8(this.dataSource)?A=this.dataSource.connect(this):B2(this.dataSource)?A=this.dataSource:Array.isArray(this.dataSource)&&(A=Ce(this.dataSource)),this._renderChangeSubscription=A.pipe(kt(this._onDestroy)).subscribe(i=>{this._data=i||[],this.renderRows()})}_forceRenderHeaderRows(){this._headerRowOutlet.viewContainer.length>0&&this._headerRowOutlet.viewContainer.clear(),this._headerRowDefs.forEach((A,i)=>this._renderRow(this._headerRowOutlet,A,i)),this.updateStickyHeaderRowStyles()}_forceRenderFooterRows(){this._footerRowOutlet.viewContainer.length>0&&this._footerRowOutlet.viewContainer.clear(),this._footerRowDefs.forEach((A,i)=>this._renderRow(this._footerRowOutlet,A,i)),this.updateStickyFooterRowStyles()}_addStickyColumnStyles(A,i){let n=Array.from(i?.columns||[]).map(s=>{let a=this._columnDefsByName.get(s);return a}),o=n.map(s=>s.sticky),r=n.map(s=>s.stickyEnd);this._stickyStyler.updateStickyColumns(A,o,r,!this._fixedLayout||this._forceRecalculateCellWidths)}_getRenderedRows(A){let i=[];for(let n=0;n!o.when||o.when(i,A));else{let o=this._rowDefs.find(r=>r.when&&r.when(i,A))||this._defaultRowDef;o&&n.push(o)}return n.length,n}_getEmbeddedViewArgs(A,i){let n=A.rowDef,o={$implicit:A.data};return{templateRef:n.template,context:o,index:i}}_renderRow(A,i,n,o={}){let r=A.viewContainer.createEmbeddedView(i.template,o,n);return this._renderCellTemplateForItem(i,o),r}_renderCellTemplateForItem(A,i){for(let n of this._getCellTemplates(A))sd.mostRecentCellOutlet&&sd.mostRecentCellOutlet._viewContainer.createEmbeddedView(n,i);this._changeDetectorRef.markForCheck()}_updateRowIndexContext(){let A=this._rowOutlet.viewContainer;for(let i=0,n=A.length;i{let n=this._columnDefsByName.get(i);return A.extractCellTemplate(n)})}_forceRenderDataRows(){this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear(),this.renderRows()}_checkStickyStates(){let A=(i,n)=>i||n.hasStickyChanged();this._headerRowDefs.reduce(A,!1)&&this.updateStickyHeaderRowStyles(),this._footerRowDefs.reduce(A,!1)&&this.updateStickyFooterRowStyles(),Array.from(this._columnDefsByName.values()).reduce(A,!1)&&(this._stickyColumnStylesNeedReset=!0,this.updateStickyColumnStyles())}_setupStickyStyler(){let A=this._dir?this._dir.value:"ltr";this._stickyStyler=new NK(this._isNativeHtmlTable,this.stickyCssClass,A,this._coalescedStyleScheduler,this._platform.isBrowser,this.needsPositionStickyOnElement,this._stickyPositioningListener,this._injector),(this._dir?this._dir.change:Ce()).pipe(kt(this._onDestroy)).subscribe(i=>{this._stickyStyler.direction=i,this.updateStickyColumnStyles()})}_getOwnDefs(A){return A.filter(i=>!i._table||i._table===this)}_updateNoDataRow(){let A=this._customNoDataRow||this._noDataRow;if(!A)return;let i=this._rowOutlet.viewContainer.length===0;if(i===this._isShowingNoDataRow)return;let n=this._noDataRowOutlet.viewContainer;if(i){let o=n.createEmbeddedView(A.templateRef),r=o.rootNodes[0];o.rootNodes.length===1&&r?.nodeType===this._document.ELEMENT_NODE&&(r.setAttribute("role","row"),r.classList.add(A._contentClassName))}else n.clear();this._isShowingNoDataRow=i,this._changeDetectorRef.markForCheck()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["cdk-table"],["table","cdk-table",""]],contentQueries:function(i,n,o){if(i&1&&(gi(o,fcA,5),gi(o,JQ,5),gi(o,h7,5),gi(o,Df,5),gi(o,GK,5)),i&2){let r;de(r=Be())&&(n._noDataRow=r.first),de(r=Be())&&(n._contentColumnDefs=r),de(r=Be())&&(n._contentRowDefs=r),de(r=Be())&&(n._contentHeaderRowDefs=r),de(r=Be())&&(n._contentFooterRowDefs=r)}},hostAttrs:[1,"cdk-table"],hostVars:2,hostBindings:function(i,n){i&2&&he("cdk-table-fixed-layout",n.fixedLayout)},inputs:{trackBy:"trackBy",dataSource:"dataSource",multiTemplateDataRows:[2,"multiTemplateDataRows","multiTemplateDataRows",ge],fixedLayout:[2,"fixedLayout","fixedLayout",ge]},outputs:{contentChanged:"contentChanged"},exportAs:["cdkTable"],features:[ut([{provide:Zg,useExisting:t},{provide:Hh,useClass:KB},{provide:B7,useClass:FK},{provide:E7,useValue:null}])],ngContentSelectors:gHA,decls:5,vars:2,consts:[["role","rowgroup"],["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,n){i&1&&($t(cHA),Ue(0),Ue(1,1),NA(2,lHA,1,0)(3,IHA,7,0)(4,CHA,4,0)),i&2&&(_(2),_A(n._isServer?2:-1),_(),_A(n._isNativeHtmlTable?3:4))},dependencies:[YK,JK,HK,TK],styles:[".cdk-table-fixed-layout{table-layout:fixed}"],encapsulation:2})}return t})();function I7(t,e){return t.concat(Array.from(e))}function EcA(t,e){let A=e.toUpperCase(),i=t.viewContainer.element.nativeElement;for(;i;){let n=i.nodeType===1?i.nodeName:null;if(n===A)return i;if(n==="TABLE")break;i=i.parentNode}return null}var BHA=[[["caption"]],[["colgroup"],["col"]],"*"],EHA=["caption","colgroup, col","*"];function QHA(t,e){t&1&&Ue(0,2)}function uHA(t,e){t&1&&(S(0,"thead",0),rr(1,1),N(),S(2,"tbody",2),rr(3,3)(4,4),N(),S(5,"tfoot",0),rr(6,5),N())}function hHA(t,e){t&1&&rr(0,1)(1,3)(2,4)(3,5)}var mcA=(()=>{class t extends OK{stickyCssClass="mat-mdc-table-sticky";needsPositionStickyOnElement=!1;static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-table"],["table","mat-table",""]],hostAttrs:[1,"mat-mdc-table","mdc-data-table__table"],hostVars:2,hostBindings:function(i,n){i&2&&he("mdc-table-fixed-layout",n.fixedLayout)},exportAs:["matTable"],features:[ut([{provide:OK,useExisting:t},{provide:Zg,useExisting:t},{provide:B7,useClass:FK},{provide:Hh,useClass:KB},{provide:E7,useValue:null}]),lt],ngContentSelectors:EHA,decls:5,vars:2,consts:[["role","rowgroup"],["headerRowOutlet",""],["role","rowgroup",1,"mdc-data-table__content"],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,n){i&1&&($t(BHA),Ue(0),Ue(1,1),NA(2,QHA,1,0)(3,uHA,7,0)(4,hHA,4,0)),i&2&&(_(2),_A(n._isServer?2:-1),_(),_A(n._isNativeHtmlTable?3:4))},dependencies:[YK,JK,HK,TK],styles:[".mat-mdc-table-sticky{position:sticky !important}mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{min-width:100%;border:0;border-spacing:0;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color, var(--mat-sys-surface))}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell{text-align:right}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-header-headline-font, var(--mat-sys-title-small-font, Roboto, sans-serif));line-height:var(--mat-table-header-headline-line-height, var(--mat-sys-title-small-line-height));font-size:var(--mat-table-header-headline-size, var(--mat-sys-title-small-size, 14px));font-weight:var(--mat-table-header-headline-weight, var(--mat-sys-title-small-weight, 500))}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-row-item-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-row-item-label-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-row-item-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-footer-supporting-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-footer-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-footer-supporting-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-footer-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mat-table-footer-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking, var(--mat-sys-title-small-tracking));font-weight:inherit;line-height:inherit;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mat-mdc-header-cell{text-align:right}.mdc-data-table__row:last-child>.mat-mdc-header-cell{border-bottom:none}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking));line-height:inherit}.mdc-data-table__row:last-child>.mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking))}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}"],encapsulation:2})}return t})(),pcA=(()=>{class t extends Q7{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matCellDef",""]],features:[ut([{provide:Q7,useExisting:t}]),lt]})}return t})(),DcA=(()=>{class t extends u7{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matHeaderCellDef",""]],features:[ut([{provide:u7,useExisting:t}]),lt]})}return t})();var wcA=(()=>{class t extends JQ{get name(){return this._name}set name(A){this._setNameInput(A)}_updateColumnCssClassName(){super._updateColumnCssClassName(),this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matColumnDef",""]],inputs:{name:[0,"matColumnDef","name"]},features:[ut([{provide:JQ,useExisting:t},{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}]),lt]})}return t})(),ycA=(()=>{class t extends ucA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["mat-header-cell"],["th","mat-header-cell",""]],hostAttrs:["role","columnheader",1,"mat-mdc-header-cell","mdc-data-table__header-cell"],features:[lt]})}return t})();var vcA=(()=>{class t extends hcA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["mat-cell"],["td","mat-cell",""]],hostAttrs:[1,"mat-mdc-cell","mdc-data-table__cell"],features:[lt]})}return t})();var McA=(()=>{class t extends Df{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matHeaderRowDef",""]],inputs:{columns:[0,"matHeaderRowDef","columns"],sticky:[2,"matHeaderRowDefSticky","sticky",ge]},features:[ut([{provide:Df,useExisting:t}]),lt]})}return t})();var bcA=(()=>{class t extends h7{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matRowDef",""]],inputs:{columns:[0,"matRowDefColumns","columns"],when:[0,"matRowDefWhen","when"]},features:[ut([{provide:h7,useExisting:t}]),lt]})}return t})(),kcA=(()=>{class t extends KK{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-header-row"],["tr","mat-header-row",""]],hostAttrs:["role","row",1,"mat-mdc-header-row","mdc-data-table__header-row"],exportAs:["matHeaderRow"],features:[ut([{provide:KK,useExisting:t}]),lt],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&rr(0,0)},dependencies:[sd],encapsulation:2})}return t})();var ScA=(()=>{class t extends UK{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-row"],["tr","mat-row",""]],hostAttrs:["role","row",1,"mat-mdc-row","mdc-data-table__row"],exportAs:["matRow"],features:[ut([{provide:UK,useExisting:t}]),lt],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&rr(0,0)},dependencies:[sd],encapsulation:2})}return t})();var fHA=9007199254740991,wf=class extends v8{_data;_renderData=new Fi([]);_filter=new Fi("");_internalPageChanges=new qA;_renderChangesSubscription=null;filteredData;get data(){return this._data.value}set data(e){e=Array.isArray(e)?e:[],this._data.next(e),this._renderChangesSubscription||this._filterData(e)}get filter(){return this._filter.value}set filter(e){this._filter.next(e),this._renderChangesSubscription||this._filterData(this.data)}get sort(){return this._sort}set sort(e){this._sort=e,this._updateChangeSubscription()}_sort;get paginator(){return this._paginator}set paginator(e){this._paginator=e,this._updateChangeSubscription()}_paginator;sortingDataAccessor=(e,A)=>{let i=e[A];if(Ek(i)){let n=Number(i);return n{let i=A.active,n=A.direction;return!i||n==""?e:e.sort((o,r)=>{let s=this.sortingDataAccessor(o,i),a=this.sortingDataAccessor(r,i),c=typeof s,g=typeof a;c!==g&&(c==="number"&&(s+=""),g==="number"&&(a+=""));let I=0;return s!=null&&a!=null?s>a?I=1:s{let i=A.trim().toLowerCase();return Object.values(e).some(n=>`${n}`.toLowerCase().includes(i))};constructor(e=[]){super(),this._data=new Fi(e),this._updateChangeSubscription()}_updateChangeSubscription(){let e=this._sort?Hn(this._sort.sortChange,this._sort.initialized):Ce(null),A=this._paginator?Hn(this._paginator.page,this._internalPageChanges,this._paginator.initialized):Ce(null),i=this._data,n=ga([i,this._filter]).pipe(je(([s])=>this._filterData(s))),o=ga([n,e]).pipe(je(([s])=>this._orderData(s))),r=ga([o,A]).pipe(je(([s])=>this._pageData(s)));this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=r.subscribe(s=>this._renderData.next(s))}_filterData(e){return this.filteredData=this.filter==null||this.filter===""?e:e.filter(A=>this.filterPredicate(A,this.filter)),this.paginator&&this._updatePaginator(this.filteredData.length),this.filteredData}_orderData(e){return this.sort?this.sortData(e.slice(),this.sort):e}_pageData(e){if(!this.paginator)return e;let A=this.paginator.pageIndex*this.paginator.pageSize;return e.slice(A,A+this.paginator.pageSize)}_updatePaginator(e){Promise.resolve().then(()=>{let A=this.paginator;if(A&&(A.length=e,A.pageIndex>0)){let i=Math.ceil(A.length/A.pageSize)-1||0,n=Math.min(A.pageIndex,i);n!==A.pageIndex&&(A.pageIndex=n,this._internalPageChanges.next())}})}connect(){return this._renderChangesSubscription||this._updateChangeSubscription(),this._renderData}disconnect(){this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=null}};var RcA=[{metricName:"tool_trajectory_avg_score",threshold:1},{metricName:"response_match_score",threshold:.7}];var f7="0123456789abcdef",m7=class t{constructor(e){this.bytes=e}static ofInner(e){if(e.length!==16)throw new TypeError("not 128-bit length");return new t(e)}static fromFieldsV7(e,A,i,n){if(!Number.isInteger(e)||!Number.isInteger(A)||!Number.isInteger(i)||!Number.isInteger(n)||e<0||A<0||i<0||n<0||e>0xffffffffffff||A>4095||i>1073741823||n>4294967295)throw new RangeError("invalid field value");let o=new Uint8Array(16);return o[0]=e/2**40,o[1]=e/2**32,o[2]=e/2**24,o[3]=e/2**16,o[4]=e/2**8,o[5]=e,o[6]=112|A>>>8,o[7]=A,o[8]=128|i>>>24,o[9]=i>>>16,o[10]=i>>>8,o[11]=i,o[12]=n>>>24,o[13]=n>>>16,o[14]=n>>>8,o[15]=n,new t(o)}static parse(e){var A,i,n,o;let r;switch(e.length){case 32:r=(A=/^[0-9a-f]{32}$/i.exec(e))===null||A===void 0?void 0:A[0];break;case 36:r=(i=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(e))===null||i===void 0?void 0:i.slice(1,6).join("");break;case 38:r=(n=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(e))===null||n===void 0?void 0:n.slice(1,6).join("");break;case 45:r=(o=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(e))===null||o===void 0?void 0:o.slice(1,6).join("");break;default:break}if(r){let s=new Uint8Array(16);for(let a=0;a<16;a+=4){let c=parseInt(r.substring(2*a,2*a+8),16);s[a+0]=c>>>24,s[a+1]=c>>>16,s[a+2]=c>>>8,s[a+3]=c}return new t(s)}else throw new SyntaxError("could not parse UUID string")}toString(){let e="";for(let A=0;A>>4),e+=f7.charAt(this.bytes[A]&15),(A===3||A===5||A===7||A===9)&&(e+="-");return e}toHex(){let e="";for(let A=0;A>>4),e+=f7.charAt(this.bytes[A]&15);return e}toJSON(){return this.toString()}getVariant(){let e=this.bytes[8]>>>4;if(e<0)throw new Error("unreachable");if(e<=7)return this.bytes.every(A=>A===0)?"NIL":"VAR_0";if(e<=11)return"VAR_10";if(e<=13)return"VAR_110";if(e<=15)return this.bytes.every(A=>A===255)?"MAX":"VAR_RESERVED";throw new Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new t(this.bytes.slice(0))}equals(e){return this.compareTo(e)===0}compareTo(e){for(let A=0;A<16;A++){let i=this.bytes[A]-e.bytes[A];if(i!==0)return Math.sign(i)}return 0}},zK=class{constructor(e){this.timestamp=0,this.counter=0,this.random=e??mHA()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(e,A){let i=this.generateOrAbortCore(e,A);return i===void 0&&(this.timestamp=0,i=this.generateOrAbortCore(e,A)),i}generateOrAbortCore(e,A){if(!Number.isInteger(e)||e<1||e>0xffffffffffff)throw new RangeError("`unixTsMs` must be a 48-bit positive integer");if(A<0||A>0xffffffffffff)throw new RangeError("`rollbackAllowance` out of reasonable range");if(e>this.timestamp)this.timestamp=e,this.resetCounter();else if(e+A>=this.timestamp)this.counter++,this.counter>4398046511103&&(this.timestamp++,this.resetCounter());else return;return m7.fromFieldsV7(this.timestamp,Math.trunc(this.counter/2**30),this.counter&2**30-1,this.random.nextUint32())}resetCounter(){this.counter=this.random.nextUint32()*1024+(this.random.nextUint32()&1023)}generateV4(){let e=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return e[6]=64|e[6]>>>4,e[8]=128|e[8]>>>2,m7.ofInner(e)}},mHA=()=>{if(typeof crypto<"u"&&typeof crypto.getRandomValues<"u")return new PK;if(typeof UUIDV7_DENY_WEAK_RNG<"u"&&UUIDV7_DENY_WEAK_RNG)throw new Error("no cryptographically strong RNG available");return{nextUint32:()=>Math.trunc(Math.random()*65536)*65536+Math.trunc(Math.random()*65536)}},PK=class{constructor(){this.buffer=new Uint32Array(8),this.cursor=65535}nextUint32(){return this.cursor>=this.buffer.length&&(crypto.getRandomValues(this.buffer),this.cursor=0),this.buffer[this.cursor++]}},LcA;var p7=()=>pHA().toString(),pHA=()=>(LcA||(LcA=new zK)).generateV4();var D7=class t{evalService=f(Rl);data=f(Cs);dialogRef=f(fr);newCaseId="case"+p7().slice(0,6);constructor(){}createNewEvalCase(){!this.newCaseId||this.newCaseId==""?alert("Cannot create eval set with empty id!"):this.evalService.addCurrentSession(this.data.appName,this.data.evalSetId,this.newCaseId,this.data.sessionId,this.data.userId).subscribe(e=>{this.dialogRef.close(!0)})}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-add-eval-session-dialog"]],decls:11,vars:1,consts:[["mat-dialog-title",""],[2,"padding-left","20px","padding-right","24px"],["matInput","",3,"ngModelChange","keydown.enter","ngModel"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"h2",0),AA(1,"Add Current Session To Eval Set"),N(),S(2,"mat-dialog-content"),AA(3,` Please enter the eval case name `),N(),S(4,"mat-form-field",1)(5,"input",2),Xa("ngModelChange",function(o){return Wa(i.newCaseId,o)||(i.newCaseId=o),o}),mA("keydown.enter",function(){return i.createNewEvalCase()}),N()(),S(6,"mat-dialog-actions",3)(7,"button",4),AA(8,"Cancel"),N(),S(9,"button",5),mA("click",function(){return i.createNewEvalCase()}),AA(10,"Create"),N()()),A&2&&(_(5),Za("ngModel",i.newCaseId))},dependencies:[Ls,ya,fl,J2,Mr,kc,Ss,tc,va,dr,bl],encapsulation:2})};var w7=class t{evalService=f(Rl);data=f(Cs);dialogRef=f(fr);newSetId="evalset"+p7().slice(0,6);constructor(){}createNewEvalSet(){!this.newSetId||this.newSetId==""?alert("Cannot create eval set with empty id!"):this.evalService.createNewEvalSet(this.data.appName,this.newSetId).subscribe(e=>{this.dialogRef.close(!0)})}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-new-eval-set-dialog-component"]],decls:11,vars:1,consts:[["mat-dialog-title",""],[2,"padding-left","20px","padding-right","24px"],["matInput","",3,"ngModelChange","keydown.enter","ngModel"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"h2",0),AA(1,"Create New Eval Set"),N(),S(2,"mat-dialog-content"),AA(3,` Please enter the eval set name -`),N(),S(4,"mat-form-field",1)(5,"input",2),Xa("ngModelChange",function(o){return Wa(i.newSetId,o)||(i.newSetId=o),o}),mA("keydown.enter",function(){return i.createNewEvalSet()}),N()(),S(6,"mat-dialog-actions",3)(7,"button",4),AA(8,"Cancel"),N(),S(9,"button",5),mA("click",function(){return i.createNewEvalSet()}),AA(10,"Create"),N()()),A&2&&(_(5),Za("ngModel",i.newSetId))},dependencies:[Ls,ya,fl,J2,Mr,kc,Ss,tc,va,dr,bl],encapsulation:2})};var mHA=["knob"],pHA=["valueIndicatorContainer"];function DHA(t,e){if(t&1&&(S(0,"div",2,1)(2,"div",5)(3,"span",6),AA(4),N()()()),t&2){let A=Y();_(4),tt(A.valueIndicatorText)}}var wHA=["trackActive"],yHA=["*"];function vHA(t,e){if(t&1&&TA(0,"div"),t&2){let A=e.$implicit,i=e.$index,n=Y(3);Ro(A===0?"mdc-slider__tick-mark--active":"mdc-slider__tick-mark--inactive"),mo("transform",n._calcTickMarkTransform(i))}}function MHA(t,e){if(t&1&&dn(0,vHA,1,4,"div",8,AB),t&2){let A=Y(2);Bn(A._tickMarks)}}function bHA(t,e){if(t&1&&(S(0,"div",6,1),FA(2,MHA,2,0),N()),t&2){let A=Y();_(2),_A(A._cachedWidth?2:-1)}}function kHA(t,e){if(t&1&&TA(0,"mat-slider-visual-thumb",7),t&2){let A=Y();yA("discrete",A.discrete)("thumbPosition",1)("valueIndicatorText",A.startValueIndicatorText)}}var Ii=function(t){return t[t.START=1]="START",t[t.END=2]="END",t}(Ii||{}),YQ=function(t){return t[t.ACTIVE=0]="ACTIVE",t[t.INACTIVE=1]="INACTIVE",t}(YQ||{}),jK=new eA("_MatSlider"),xcA=new eA("_MatSliderThumb"),SHA=new eA("_MatSliderRangeThumb"),NcA=new eA("_MatSliderVisualThumb");var RHA=(()=>{class t{_cdr=f(Et);_ngZone=f(ye);_slider=f(jK);_renderer=f(qi);_listenerCleanups;discrete;thumbPosition;valueIndicatorText;_ripple;_knob;_valueIndicatorContainer;_sliderInput;_sliderInputEl;_hoverRippleRef;_focusRippleRef;_activeRippleRef;_isHovered=!1;_isActive=!1;_isValueIndicatorVisible=!1;_hostElement=f(se).nativeElement;_platform=f(ni);constructor(){}ngAfterViewInit(){let A=this._slider._getInput(this.thumbPosition);A&&(this._ripple.radius=24,this._sliderInput=A,this._sliderInputEl=this._sliderInput._hostElement,this._ngZone.runOutsideAngular(()=>{let i=this._sliderInputEl,n=this._renderer;this._listenerCleanups=[n.listen(i,"pointermove",this._onPointerMove),n.listen(i,"pointerdown",this._onDragStart),n.listen(i,"pointerup",this._onDragEnd),n.listen(i,"pointerleave",this._onMouseLeave),n.listen(i,"focus",this._onFocus),n.listen(i,"blur",this._onBlur)]}))}ngOnDestroy(){this._listenerCleanups?.forEach(A=>A())}_onPointerMove=A=>{if(this._sliderInput._isFocused)return;let i=this._hostElement.getBoundingClientRect(),n=this._slider._isCursorOnSliderThumb(A,i);this._isHovered=n,n?this._showHoverRipple():this._hideRipple(this._hoverRippleRef)};_onMouseLeave=()=>{this._isHovered=!1,this._hideRipple(this._hoverRippleRef)};_onFocus=()=>{this._hideRipple(this._hoverRippleRef),this._showFocusRipple(),this._hostElement.classList.add("mdc-slider__thumb--focused")};_onBlur=()=>{this._isActive||this._hideRipple(this._focusRippleRef),this._isHovered&&this._showHoverRipple(),this._hostElement.classList.remove("mdc-slider__thumb--focused")};_onDragStart=A=>{A.button===0&&(this._isActive=!0,this._showActiveRipple())};_onDragEnd=()=>{this._isActive=!1,this._hideRipple(this._activeRippleRef),this._sliderInput._isFocused||this._hideRipple(this._focusRippleRef),this._platform.SAFARI&&this._showHoverRipple()};_showHoverRipple(){this._isShowingRipple(this._hoverRippleRef)||(this._hoverRippleRef=this._showRipple({enterDuration:0,exitDuration:0}),this._hoverRippleRef?.element.classList.add("mat-mdc-slider-hover-ripple"))}_showFocusRipple(){this._isShowingRipple(this._focusRippleRef)||(this._focusRippleRef=this._showRipple({enterDuration:0,exitDuration:0},!0),this._focusRippleRef?.element.classList.add("mat-mdc-slider-focus-ripple"))}_showActiveRipple(){this._isShowingRipple(this._activeRippleRef)||(this._activeRippleRef=this._showRipple({enterDuration:225,exitDuration:400}),this._activeRippleRef?.element.classList.add("mat-mdc-slider-active-ripple"))}_isShowingRipple(A){return A?.state===Ws.FADING_IN||A?.state===Ws.VISIBLE}_showRipple(A,i){if(!this._slider.disabled&&(this._showValueIndicator(),this._slider._isRange&&this._slider._getThumb(this.thumbPosition===Ii.START?Ii.END:Ii.START)._showValueIndicator(),!(this._slider._globalRippleOptions?.disabled&&!i)))return this._ripple.launch({animation:this._slider._noopAnimations?{enterDuration:0,exitDuration:0}:A,centered:!0,persistent:!0})}_hideRipple(A){if(A?.fadeOut(),this._isShowingAnyRipple())return;this._slider._isRange||this._hideValueIndicator();let i=this._getSibling();i._isShowingAnyRipple()||(this._hideValueIndicator(),i._hideValueIndicator())}_showValueIndicator(){this._hostElement.classList.add("mdc-slider__thumb--with-indicator")}_hideValueIndicator(){this._hostElement.classList.remove("mdc-slider__thumb--with-indicator")}_getSibling(){return this._slider._getThumb(this.thumbPosition===Ii.START?Ii.END:Ii.START)}_getValueIndicatorContainer(){return this._valueIndicatorContainer?.nativeElement}_getKnob(){return this._knob.nativeElement}_isShowingAnyRipple(){return this._isShowingRipple(this._hoverRippleRef)||this._isShowingRipple(this._focusRippleRef)||this._isShowingRipple(this._activeRippleRef)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-slider-visual-thumb"]],viewQuery:function(i,n){if(i&1&&(st(Xs,5),st(mHA,5),st(pHA,5)),i&2){let o;de(o=Be())&&(n._ripple=o.first),de(o=Be())&&(n._knob=o.first),de(o=Be())&&(n._valueIndicatorContainer=o.first)}},hostAttrs:[1,"mdc-slider__thumb","mat-mdc-slider-visual-thumb"],inputs:{discrete:"discrete",thumbPosition:"thumbPosition",valueIndicatorText:"valueIndicatorText"},features:[ut([{provide:NcA,useExisting:t}])],decls:4,vars:2,consts:[["knob",""],["valueIndicatorContainer",""],[1,"mdc-slider__value-indicator-container"],[1,"mdc-slider__thumb-knob"],["matRipple","",1,"mat-focus-indicator",3,"matRippleDisabled"],[1,"mdc-slider__value-indicator"],[1,"mdc-slider__value-indicator-text"]],template:function(i,n){i&1&&(FA(0,DHA,5,1,"div",2),TA(1,"div",3,0)(3,"div",4)),i&2&&(_A(n.discrete?0:-1),_(3),yA("matRippleDisabled",!0))},dependencies:[Xs],styles:[".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}"],encapsulation:2,changeDetection:0})}return t})(),FcA=(()=>{class t{_ngZone=f(ye);_cdr=f(Et);_elementRef=f(se);_dir=f(po,{optional:!0});_globalRippleOptions=f(ZI,{optional:!0});_trackActive;_thumbs;_input;_inputs;get disabled(){return this._disabled}set disabled(A){this._disabled=A;let i=this._getInput(Ii.END),n=this._getInput(Ii.START);i&&(i.disabled=this._disabled),n&&(n.disabled=this._disabled)}_disabled=!1;get discrete(){return this._discrete}set discrete(A){this._discrete=A,this._updateValueIndicatorUIs()}_discrete=!1;showTickMarks=!1;get min(){return this._min}set min(A){let i=isNaN(A)?this._min:A;this._min!==i&&this._updateMin(i)}_min=0;color;disableRipple=!1;_updateMin(A){let i=this._min;this._min=A,this._isRange?this._updateMinRange({old:i,new:A}):this._updateMinNonRange(A),this._onMinMaxOrStepChange()}_updateMinRange(A){let i=this._getInput(Ii.END),n=this._getInput(Ii.START),o=i.value,r=n.value;n.min=A.new,i.min=Math.max(A.new,n.value),n.max=Math.min(i.max,i.value),n._updateWidthInactive(),i._updateWidthInactive(),A.newA.old?this._onTranslateXChangeBySideEffect(n,i):this._onTranslateXChangeBySideEffect(i,n),o!==i.value&&this._onValueChange(i),r!==n.value&&this._onValueChange(n)}_updateMaxNonRange(A){let i=this._getInput(Ii.END);if(i){let n=i.value;i.max=A,i._updateThumbUIByValue(),this._updateTrackUI(i),n!==i.value&&this._onValueChange(i)}}get step(){return this._step}set step(A){let i=isNaN(A)?this._step:A;this._step!==i&&this._updateStep(i)}_step=1;_updateStep(A){this._step=A,this._isRange?this._updateStepRange():this._updateStepNonRange(),this._onMinMaxOrStepChange()}_updateStepRange(){let A=this._getInput(Ii.END),i=this._getInput(Ii.START),n=A.value,o=i.value,r=i.value;A.min=this._min,i.max=this._max,A.step=this._step,i.step=this._step,this._platform.SAFARI&&(A.value=A.value,i.value=i.value),A.min=Math.max(this._min,i.value),i.max=Math.min(this._max,A.value),i._updateWidthInactive(),A._updateWidthInactive(),A.value`${A}`;_tickMarks;_noopAnimations;_dirChangeSubscription;_resizeObserver;_cachedWidth;_cachedLeft;_rippleRadius=24;startValueIndicatorText="";endValueIndicatorText="";_endThumbTransform;_startThumbTransform;_isRange=!1;_isRtl=!1;_hasViewInitialized=!1;_tickMarkTrackWidth=0;_hasAnimation=!1;_resizeTimer=null;_platform=f(ni);constructor(){f(Pn).load(Yr);let A=f(_i,{optional:!0});this._noopAnimations=A==="NoopAnimations",this._dir&&(this._dirChangeSubscription=this._dir.change.subscribe(()=>this._onDirChange()),this._isRtl=this._dir.value==="rtl")}_knobRadius=8;_inputPadding;ngAfterViewInit(){this._platform.isBrowser&&this._updateDimensions();let A=this._getInput(Ii.END),i=this._getInput(Ii.START);this._isRange=!!A&&!!i,this._cdr.detectChanges();let n=this._getThumb(Ii.END);this._rippleRadius=n._ripple.radius,this._inputPadding=this._rippleRadius-this._knobRadius,this._isRange?this._initUIRange(A,i):this._initUINonRange(A),this._updateTrackUI(A),this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._observeHostResize(),this._cdr.detectChanges()}_initUINonRange(A){A.initProps(),A.initUI(),this._updateValueIndicatorUI(A),this._hasViewInitialized=!0,A._updateThumbUIByValue()}_initUIRange(A,i){A.initProps(),A.initUI(),i.initProps(),i.initUI(),A._updateMinMax(),i._updateMinMax(),A._updateStaticStyles(),i._updateStaticStyles(),this._updateValueIndicatorUIs(),this._hasViewInitialized=!0,A._updateThumbUIByValue(),i._updateThumbUIByValue()}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._resizeObserver?.disconnect(),this._resizeObserver=null}_onDirChange(){this._isRtl=this._dir?.value==="rtl",this._isRange?this._onDirChangeRange():this._onDirChangeNonRange(),this._updateTickMarkUI()}_onDirChangeRange(){let A=this._getInput(Ii.END),i=this._getInput(Ii.START);A._setIsLeftThumb(),i._setIsLeftThumb(),A.translateX=A._calcTranslateXByValue(),i.translateX=i._calcTranslateXByValue(),A._updateStaticStyles(),i._updateStaticStyles(),A._updateWidthInactive(),i._updateWidthInactive(),A._updateThumbUIByValue(),i._updateThumbUIByValue()}_onDirChangeNonRange(){this._getInput(Ii.END)._updateThumbUIByValue()}_observeHostResize(){typeof ResizeObserver>"u"||!ResizeObserver||this._ngZone.runOutsideAngular(()=>{this._resizeObserver=new ResizeObserver(()=>{this._isActive()||(this._resizeTimer&&clearTimeout(this._resizeTimer),this._onResize())}),this._resizeObserver.observe(this._elementRef.nativeElement)})}_isActive(){return this._getThumb(Ii.START)._isActive||this._getThumb(Ii.END)._isActive}_getValue(A=Ii.END){let i=this._getInput(A);return i?i.value:this.min}_skipUpdate(){return!!(this._getInput(Ii.START)?._skipUIUpdate||this._getInput(Ii.END)?._skipUIUpdate)}_updateDimensions(){this._cachedWidth=this._elementRef.nativeElement.offsetWidth,this._cachedLeft=this._elementRef.nativeElement.getBoundingClientRect().left}_setTrackActiveStyles(A){let i=this._trackActive.nativeElement.style;i.left=A.left,i.right=A.right,i.transformOrigin=A.transformOrigin,i.transform=A.transform}_calcTickMarkTransform(A){let i=A*(this._tickMarkTrackWidth/(this._tickMarks.length-1));return`translateX(${this._isRtl?this._cachedWidth-6-i:i}px`}_onTranslateXChange(A){this._hasViewInitialized&&(this._updateThumbUI(A),this._updateTrackUI(A),this._updateOverlappingThumbUI(A))}_onTranslateXChangeBySideEffect(A,i){this._hasViewInitialized&&(A._updateThumbUIByValue(),i._updateThumbUIByValue())}_onValueChange(A){this._hasViewInitialized&&(this._updateValueIndicatorUI(A),this._updateTickMarkUI(),this._cdr.detectChanges())}_onMinMaxOrStepChange(){this._hasViewInitialized&&(this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.markForCheck())}_onResize(){if(this._hasViewInitialized){if(this._updateDimensions(),this._isRange){let A=this._getInput(Ii.END),i=this._getInput(Ii.START);A._updateThumbUIByValue(),i._updateThumbUIByValue(),A._updateStaticStyles(),i._updateStaticStyles(),A._updateMinMax(),i._updateMinMax(),A._updateWidthInactive(),i._updateWidthInactive()}else{let A=this._getInput(Ii.END);A&&A._updateThumbUIByValue()}this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.detectChanges()}}_thumbsOverlap=!1;_areThumbsOverlapping(){let A=this._getInput(Ii.START),i=this._getInput(Ii.END);return!A||!i?!1:i.translateX-A.translateX<20}_updateOverlappingThumbClassNames(A){let i=A.getSibling(),n=this._getThumb(A.thumbPosition);this._getThumb(i.thumbPosition)._hostElement.classList.remove("mdc-slider__thumb--top"),n._hostElement.classList.toggle("mdc-slider__thumb--top",this._thumbsOverlap)}_updateOverlappingThumbUI(A){!this._isRange||this._skipUpdate()||this._thumbsOverlap!==this._areThumbsOverlapping()&&(this._thumbsOverlap=!this._thumbsOverlap,this._updateOverlappingThumbClassNames(A))}_updateThumbUI(A){if(this._skipUpdate())return;let i=this._getThumb(A.thumbPosition===Ii.END?Ii.END:Ii.START);i._hostElement.style.transform=`translateX(${A.translateX}px)`}_updateValueIndicatorUI(A){if(this._skipUpdate())return;let i=this.displayWith(A.value);if(this._hasViewInitialized?A._valuetext.set(i):A._hostElement.setAttribute("aria-valuetext",i),this.discrete){A.thumbPosition===Ii.START?this.startValueIndicatorText=i:this.endValueIndicatorText=i;let n=this._getThumb(A.thumbPosition);i.length<3?n._hostElement.classList.add("mdc-slider__thumb--short-value"):n._hostElement.classList.remove("mdc-slider__thumb--short-value")}}_updateValueIndicatorUIs(){let A=this._getInput(Ii.END),i=this._getInput(Ii.START);A&&this._updateValueIndicatorUI(A),i&&this._updateValueIndicatorUI(i)}_updateTickMarkTrackUI(){if(!this.showTickMarks||this._skipUpdate())return;let A=this._step&&this._step>0?this._step:1,n=(Math.floor(this.max/A)*A-this.min)/(this.max-this.min);this._tickMarkTrackWidth=(this._cachedWidth-6)*n}_updateTrackUI(A){this._skipUpdate()||(this._isRange?this._updateTrackUIRange(A):this._updateTrackUINonRange(A))}_updateTrackUIRange(A){let i=A.getSibling();if(!i||!this._cachedWidth)return;let n=Math.abs(i.translateX-A.translateX)/this._cachedWidth;A._isLeftThumb&&this._cachedWidth?this._setTrackActiveStyles({left:"auto",right:`${this._cachedWidth-i.translateX}px`,transformOrigin:"right",transform:`scaleX(${n})`}):this._setTrackActiveStyles({left:`${i.translateX}px`,right:"auto",transformOrigin:"left",transform:`scaleX(${n})`})}_updateTrackUINonRange(A){this._isRtl?this._setTrackActiveStyles({left:"auto",right:"0px",transformOrigin:"right",transform:`scaleX(${1-A.fillPercentage})`}):this._setTrackActiveStyles({left:"0px",right:"auto",transformOrigin:"left",transform:`scaleX(${A.fillPercentage})`})}_updateTickMarkUI(){if(!this.showTickMarks||this.step===void 0||this.min===void 0||this.max===void 0)return;let A=this.step>0?this.step:1;this._isRange?this._updateTickMarkUIRange(A):this._updateTickMarkUINonRange(A)}_updateTickMarkUINonRange(A){let i=this._getValue(),n=Math.max(Math.round((i-this.min)/A),0)+1,o=Math.max(Math.round((this.max-i)/A),0)-1;this._isRtl?n++:o++,this._tickMarks=Array(n).fill(YQ.ACTIVE).concat(Array(o).fill(YQ.INACTIVE))}_updateTickMarkUIRange(A){let i=this._getValue(),n=this._getValue(Ii.START),o=Math.max(Math.round((n-this.min)/A),0),r=Math.max(Math.round((i-n)/A)+1,0),s=Math.max(Math.round((this.max-i)/A),0);this._tickMarks=Array(o).fill(YQ.INACTIVE).concat(Array(r).fill(YQ.ACTIVE),Array(s).fill(YQ.INACTIVE))}_getInput(A){if(A===Ii.END&&this._input)return this._input;if(this._inputs?.length)return A===Ii.START?this._inputs.first:this._inputs.last}_getThumb(A){return A===Ii.END?this._thumbs?.last:this._thumbs?.first}_setTransition(A){this._hasAnimation=!this._platform.IOS&&A&&!this._noopAnimations,this._elementRef.nativeElement.classList.toggle("mat-mdc-slider-with-animation",this._hasAnimation)}_isCursorOnSliderThumb(A,i){let n=i.width/2,o=i.x+n,r=i.y+n,s=A.clientX-o,a=A.clientY-r;return Math.pow(s,2)+Math.pow(a,2)qK),multi:!0};var qK=(()=>{class t{_ngZone=f(ye);_elementRef=f(se);_cdr=f(Et);_slider=f(jK);_platform=f(ni);_listenerCleanups;get value(){return en(this._hostElement.value,0)}set value(A){A=isNaN(A)?0:A;let i=A+"";if(!this._hasSetInitialValue){this._initialValue=i;return}this._isActive||this._setValue(i)}_setValue(A){this._hostElement.value=A,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges(),this._slider._cdr.markForCheck()}valueChange=new YA;dragStart=new YA;dragEnd=new YA;get translateX(){return this._slider.min>=this._slider.max?(this._translateX=this._tickMarkOffset,this._translateX):(this._translateX===void 0&&(this._translateX=this._calcTranslateXByValue()),this._translateX)}set translateX(A){this._translateX=A}_translateX;thumbPosition=Ii.END;get min(){return en(this._hostElement.min,0)}set min(A){this._hostElement.min=A+"",this._cdr.detectChanges()}get max(){return en(this._hostElement.max,0)}set max(A){this._hostElement.max=A+"",this._cdr.detectChanges()}get step(){return en(this._hostElement.step,0)}set step(A){this._hostElement.step=A+"",this._cdr.detectChanges()}get disabled(){return ge(this._hostElement.disabled)}set disabled(A){this._hostElement.disabled=A,this._cdr.detectChanges(),this._slider.disabled!==this.disabled&&(this._slider.disabled=this.disabled)}get percentage(){return this._slider.min>=this._slider.max?this._slider._isRtl?1:0:(this.value-this._slider.min)/(this._slider.max-this._slider.min)}get fillPercentage(){return this._slider._cachedWidth?this._translateX===0?0:this.translateX/this._slider._cachedWidth:this._slider._isRtl?1:0}_hostElement=this._elementRef.nativeElement;_valuetext=Ao("");_knobRadius=8;_tickMarkOffset=3;_isActive=!1;_isFocused=!1;_setIsFocused(A){this._isFocused=A}_hasSetInitialValue=!1;_initialValue;_formControl;_destroyed=new qA;_skipUIUpdate=!1;_onChangeFn;_onTouchedFn=()=>{};_isControlInitialized=!1;constructor(){let A=f(qi);this._ngZone.runOutsideAngular(()=>{this._listenerCleanups=[A.listen(this._hostElement,"pointerdown",this._onPointerDown.bind(this)),A.listen(this._hostElement,"pointermove",this._onPointerMove.bind(this)),A.listen(this._hostElement,"pointerup",this._onPointerUp.bind(this))]})}ngOnDestroy(){this._listenerCleanups.forEach(A=>A()),this._destroyed.next(),this._destroyed.complete(),this.dragStart.complete(),this.dragEnd.complete()}initProps(){this._updateWidthInactive(),this.disabled!==this._slider.disabled&&(this._slider.disabled=!0),this.step=this._slider.step,this.min=this._slider.min,this.max=this._slider.max,this._initValue()}initUI(){this._updateThumbUIByValue()}_initValue(){this._hasSetInitialValue=!0,this._initialValue===void 0?this.value=this._getDefaultValue():(this._hostElement.value=this._initialValue,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges())}_getDefaultValue(){return this.min}_onBlur(){this._setIsFocused(!1),this._onTouchedFn()}_onFocus(){this._slider._setTransition(!1),this._slider._updateTrackUI(this),this._setIsFocused(!0)}_onChange(){this.valueChange.emit(this.value),this._isActive&&this._updateThumbUIByValue({withAnimation:!0})}_onInput(){this._onChangeFn?.(this.value),(this._slider.step||!this._isActive)&&this._updateThumbUIByValue({withAnimation:!0}),this._slider._onValueChange(this)}_onNgControlValueChange(){(!this._isActive||!this._isFocused)&&(this._slider._onValueChange(this),this._updateThumbUIByValue()),this._slider.disabled=this._formControl.disabled}_onPointerDown(A){if(!(this.disabled||A.button!==0)){if(this._platform.IOS){let i=this._slider._isCursorOnSliderThumb(A,this._slider._getThumb(this.thumbPosition)._hostElement.getBoundingClientRect());this._isActive=i,this._updateWidthActive(),this._slider._updateDimensions();return}this._isActive=!0,this._setIsFocused(!0),this._updateWidthActive(),this._slider._updateDimensions(),this._slider.step||this._updateThumbUIByPointerEvent(A,{withAnimation:!0}),this.disabled||(this._handleValueCorrection(A),this.dragStart.emit({source:this,parent:this._slider,value:this.value}))}}_handleValueCorrection(A){this._skipUIUpdate=!0,setTimeout(()=>{this._skipUIUpdate=!1,this._fixValue(A)},0)}_fixValue(A){let i=A.clientX-this._slider._cachedLeft,n=this._slider._cachedWidth,o=this._slider.step===0?1:this._slider.step,r=Math.floor((this._slider.max-this._slider.min)/o),s=this._slider._isRtl?1-i/n:i/n,c=Math.round(s*r)/r*(this._slider.max-this._slider.min)+this._slider.min,g=Math.round(c/o)*o,I=this.value;if(g===I){this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(A,{withAnimation:this._slider._hasAnimation});return}this.value=g,this.valueChange.emit(this.value),this._onChangeFn?.(this.value),this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(A,{withAnimation:this._slider._hasAnimation})}_onPointerMove(A){!this._slider.step&&this._isActive&&this._updateThumbUIByPointerEvent(A)}_onPointerUp(){this._isActive&&(this._isActive=!1,this._platform.SAFARI&&this._setIsFocused(!1),this.dragEnd.emit({source:this,parent:this._slider,value:this.value}),setTimeout(()=>this._updateWidthInactive(),this._platform.IOS?10:0))}_clamp(A){let i=this._tickMarkOffset,n=this._slider._cachedWidth-this._tickMarkOffset;return Math.max(Math.min(A,n),i)}_calcTranslateXByValue(){return this._slider._isRtl?(1-this.percentage)*(this._slider._cachedWidth-this._tickMarkOffset*2)+this._tickMarkOffset:this.percentage*(this._slider._cachedWidth-this._tickMarkOffset*2)+this._tickMarkOffset}_calcTranslateXByPointerEvent(A){return A.clientX-this._slider._cachedLeft}_updateWidthActive(){}_updateWidthInactive(){this._hostElement.style.padding=`0 ${this._slider._inputPadding}px`,this._hostElement.style.width=`calc(100% + ${this._slider._inputPadding-this._tickMarkOffset*2}px)`,this._hostElement.style.left=`-${this._slider._rippleRadius-this._tickMarkOffset}px`}_updateThumbUIByValue(A){this.translateX=this._clamp(this._calcTranslateXByValue()),this._updateThumbUI(A)}_updateThumbUIByPointerEvent(A,i){this.translateX=this._clamp(this._calcTranslateXByPointerEvent(A)),this._updateThumbUI(i)}_updateThumbUI(A){this._slider._setTransition(!!A?.withAnimation),this._slider._onTranslateXChange(this)}writeValue(A){(this._isControlInitialized||A!==null)&&(this.value=A)}registerOnChange(A){this._onChangeFn=A,this._isControlInitialized=!0}registerOnTouched(A){this._onTouchedFn=A}setDisabledState(A){this.disabled=A}focus(){this._hostElement.focus()}blur(){this._hostElement.blur()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["input","matSliderThumb",""]],hostAttrs:["type","range",1,"mdc-slider__input"],hostVars:1,hostBindings:function(i,n){i&1&&mA("change",function(){return n._onChange()})("input",function(){return n._onInput()})("blur",function(){return n._onBlur()})("focus",function(){return n._onFocus()}),i&2&&Ke("aria-valuetext",n._valuetext())},inputs:{value:[2,"value","value",en]},outputs:{valueChange:"valueChange",dragStart:"dragStart",dragEnd:"dragEnd"},exportAs:["matSliderThumb"],features:[ut([LHA,{provide:xcA,useExisting:t}])]})}return t})();var y7=class t{constructor(e,A,i){this.dialogRef=e;this.fb=A;this.data=i;this.evalMetrics=this.data.evalMetrics,this.evalForm=this.fb.group({tool_trajectory_avg_score_threshold:[this.getEvalMetricThresholdFromData("tool_trajectory_avg_score"),[Ac.required,Ac.min(0),Ac.max(1)]],response_match_score_threshold:[this.getEvalMetricThresholdFromData("response_match_score"),[Ac.required,Ac.min(0),Ac.max(1)]]})}evalForm;evalMetrics=[];getEvalMetricThresholdFromData(e){return this.evalMetrics.find(A=>A.metricName===e)?.threshold??0}onStart(){if(this.evalForm.valid){let{tool_trajectory_avg_score_threshold:e,response_match_score_threshold:A}=this.evalForm.value;for(let i of this.evalMetrics)i.metricName==="tool_trajectory_avg_score"?i.threshold=e:i.metricName==="response_match_score"&&(i.threshold=A);this.dialogRef.close(this.evalMetrics)}}onCancel(){this.dialogRef.close(null)}static \u0275fac=function(A){return new(A||t)(Ge(fr),Ge(gz),Ge(Cs))};static \u0275cmp=jA({type:t,selectors:[["app-run-eval-config-dialog"]],decls:26,vars:3,consts:[[1,"dialog-container"],["mat-dialog-title","",1,"dialog-title"],[1,"eval-form",3,"formGroup"],[1,"metric-row"],[1,"metric-name"],[1,"flex-1","pl-4"],["min","0","max","1","step","0.1","thumbLabel","",1,"threshold-slider"],["matSliderThumb","","formControlName","tool_trajectory_avg_score_threshold"],[1,"threshold-value"],["matSliderThumb","","formControlName","response_match_score_threshold"],["align","end",1,"dialog-actions"],["mat-button","",1,"cancel-button",3,"click"],["mat-button","",1,"save-button",3,"click"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2,"EVALUATION METRIC"),N(),S(3,"mat-dialog-content")(4,"form",2)(5,"div",3)(6,"div",4),AA(7,"Tool trajectory avg score: "),N(),S(8,"div",5)(9,"mat-slider",6),TA(10,"input",7),N(),S(11,"span",8),AA(12),N()()(),S(13,"div",3)(14,"div",4),AA(15,"Response match score: "),N(),S(16,"div",5)(17,"mat-slider",6),TA(18,"input",9),N(),S(19,"span",8),AA(20),N()()()()(),S(21,"mat-dialog-actions",10)(22,"button",11),mA("click",function(){return i.onCancel()}),AA(23,"Cancel"),N(),S(24,"button",12),mA("click",function(){return i.onStart()}),AA(25,"Start"),N()()()),A&2&&(_(4),yA("formGroup",i.evalForm),_(8),Bt(" ",i.evalForm.controls.tool_trajectory_avg_score_threshold.value," "),_(8),Bt(" ",i.evalForm.controls.response_match_score_threshold.value," "))},dependencies:[Ls,ya,Mr,az,kc,Ss,ez,cB,YI,gk,FcA,qK,va,dr],styles:[".dialog-container[_ngcontent-%COMP%]{border-radius:12px;padding:18px;width:500px;box-shadow:0 8px 16px var(--run-eval-config-dialog-container-box-shadow-color)}.threshold-slider[_ngcontent-%COMP%]{--mdc-slider-active-track-color: var(--run-eval-config-dialog-threshold-slider-active-track-color);--mdc-slider-inactive-track-color: var(--run-eval-config-dialog-threshold-slider-inactive-track-color);--mdc-slider-handle-color: var(--run-eval-config-dialog-threshold-slider-handle-color);--mdc-slider-ripple-color: var(--run-eval-config-dialog-threshold-slider-ripple-color);width:100px}.metric-row[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center}.metric-name[_ngcontent-%COMP%]{width:250px}.threshold-value[_ngcontent-%COMP%]{margin-left:20px}.mdc-slider__thumb--with-indicator[_ngcontent-%COMP%]{background-color:var(--mdc-slider-handle-color, var(--run-eval-config-dialog-mdc-slider-thumb-background-color));border:none!important;box-shadow:none!important}"]})};var xHA=["determinateSpinner"];function NHA(t,e){if(t&1&&(ur(),S(0,"svg",11),TA(1,"circle",12),N()),t&2){let A=Y();Ke("viewBox",A._viewBox()),_(),mo("stroke-dasharray",A._strokeCircumference(),"px")("stroke-dashoffset",A._strokeCircumference()/2,"px")("stroke-width",A._circleStrokeWidth(),"%"),Ke("r",A._circleRadius())}}var FHA=new eA("mat-progress-spinner-default-options",{providedIn:"root",factory:_HA});function _HA(){return{diameter:_cA}}var _cA=100,GHA=10,GcA=(()=>{class t{_elementRef=f(se);_noopAnimations;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;_defaultColor="primary";_determinateCircle;constructor(){let A=f(_i,{optional:!0}),i=f(FHA);this._noopAnimations=A==="NoopAnimations"&&!!i&&!i._forceAnimations,this.mode=this._elementRef.nativeElement.nodeName.toLowerCase()==="mat-spinner"?"indeterminate":"determinate",i&&(i.color&&(this.color=this._defaultColor=i.color),i.diameter&&(this.diameter=i.diameter),i.strokeWidth&&(this.strokeWidth=i.strokeWidth))}mode;get value(){return this.mode==="determinate"?this._value:0}set value(A){this._value=Math.max(0,Math.min(100,A||0))}_value=0;get diameter(){return this._diameter}set diameter(A){this._diameter=A||0}_diameter=_cA;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(A){this._strokeWidth=A||0}_strokeWidth;_circleRadius(){return(this.diameter-GHA)/2}_viewBox(){let A=this._circleRadius()*2+this.strokeWidth;return`0 0 ${A} ${A}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return this.mode==="determinate"?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,n){if(i&1&&st(xHA,5),i&2){let o;de(o=Be())&&(n._determinateCircle=o.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,n){i&2&&(Ke("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow",n.mode==="determinate"?n.value:null)("mode",n.mode),Ro("mat-"+n.color),mo("width",n.diameter,"px")("height",n.diameter,"px")("--mdc-circular-progress-size",n.diameter+"px")("--mdc-circular-progress-active-indicator-width",n.diameter+"px"),he("_mat-animation-noopable",n._noopAnimations)("mdc-circular-progress--indeterminate",n.mode==="indeterminate"))},inputs:{color:"color",mode:"mode",value:[2,"value","value",en],diameter:[2,"diameter","diameter",en],strokeWidth:[2,"strokeWidth","strokeWidth",en]},exportAs:["matProgressSpinner"],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,n){if(i&1&&(FA(0,NHA,2,8,"ng-template",null,0,Gu),S(2,"div",2,1),ur(),S(4,"svg",3),TA(5,"circle",4),N()(),_I(),S(6,"div",5)(7,"div",6)(8,"div",7),rr(9,8),N(),S(10,"div",9),rr(11,8),N(),S(12,"div",10),rr(13,8),N()()()),i&2){let o=Cr(1);_(4),Ke("viewBox",n._viewBox()),_(),mo("stroke-dasharray",n._strokeCircumference(),"px")("stroke-dashoffset",n._strokeDashOffset(),"px")("stroke-width",n._circleStrokeWidth(),"%"),Ke("r",n._circleRadius()),_(4),yA("ngTemplateOutlet",o),_(2),yA("ngTemplateOutlet",o),_(2),yA("ngTemplateOutlet",o)}},dependencies:[Hu],styles:[".mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}"],encapsulation:2,changeDetection:0})}return t})();function KHA(t,e){if(t&1){let A=me();S(0,"div",1)(1,"div"),AA(2,"All eval sets"),N(),S(3,"mat-icon",2),mA("click",function(){QA(A);let n=Y();return uA(n.openNewEvalSetDialog())}),AA(4,"add"),N()()}}function UHA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",3)(2,"div",4),AA(3," Create New Evaluation Set "),N(),S(4,"div",5),AA(5," An evaluation set is a curated collection of evaluation cases, where each case includes input-output examples for assessing agent performance. "),N(),S(6,"div",6),mA("click",function(){QA(A);let n=Y();return uA(n.openNewEvalSetDialog())}),AA(7," Create Evaluation Set "),N()()()}}function JHA(t,e){if(t&1){let A=me();S(0,"div",8),mA("click",function(){let n=QA(A).$implicit,o=Y(2);return uA(o.selectEvalSet(n))}),S(1,"div",9)(2,"span",10),AA(3,"folder"),N(),S(4,"div",11),AA(5),N()(),S(6,"div")(7,"mat-icon",12),AA(8,"chevron_right"),N()()()}if(t&2){let A=e.$implicit;_(5),tt(A)}}function YHA(t,e){if(t&1&&(S(0,"div"),dn(1,JHA,9,1,"div",7,zn),N()),t&2){let A=Y();_(),Bn(A.evalsets)}}function THA(t,e){if(t&1){let A=me();S(0,"th",29)(1,"mat-checkbox",30),mA("change",function(n){QA(A);let o=Y(4);return uA(n?o.toggleAllRows():null)}),N()()}if(t&2){let A=Y(4);_(),yA("checked",A.selection.hasValue()&&A.isAllSelected())("indeterminate",A.selection.hasValue()&&!A.isAllSelected())}}function HHA(t,e){if(t&1){let A=me();S(0,"td",31)(1,"mat-checkbox",32),mA("click",function(n){return QA(A),uA(n.stopPropagation())})("change",function(n){let o=QA(A).$implicit,r=Y(4);return uA(n?r.selection.toggle(o):null)}),N()()}if(t&2){let A=e.$implicit,i=Y(4);_(),yA("checked",i.selection.isSelected(A))}}function OHA(t,e){t&1&&(S(0,"th",29),AA(1," Case ID "),N())}function zHA(t,e){if(t&1){let A=me();S(0,"td",33),mA("click",function(){let n=QA(A).$implicit,o=Y(4);return uA(o.getEvalCase(n))}),AA(1),N()}if(t&2){let A,i=e.$implicit,n=Y(4);he("selected-eval-case",i===((A=n.selectedEvalCase())==null?null:A.evalId)),_(),Bt(" ",i," ")}}function PHA(t,e){t&1&&(S(0,"th",29),AA(1," Result "),N())}function jHA(t,e){if(t&1){let A=me();S(0,"button",35),mA("click",function(){QA(A);let n=Y().$implicit,o=Y(4);return uA(o.getSession(n))}),S(1,"span",36),AA(2),N(),S(3,"div",37),AA(4),N()()}if(t&2){let A=Y().$implicit,i=Y(4);yA("ngClass",i.getEvalResultForCase(A)==1?"result-btn pass":"result-btn fail"),_(2),Bt(" ",i.getEvalResultForCase(A)==1?"check":"close"," "),_(2),Bt("",i.getEvalResultForCase(A)==1?"Pass":"Fail"," ")}}function qHA(t,e){if(t&1&&(S(0,"td",31),FA(1,jHA,5,3,"button",34),N()),t&2){let A=e.$implicit,i=Y(4);_(),_A(i.getEvalResultForCase(A)?1:-1)}}function VHA(t,e){t&1&&TA(0,"tr",38)}function ZHA(t,e){t&1&&TA(0,"tr",39)}function WHA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",16)(2,"button",17),mA("click",function(){QA(A);let n=Y(3);return uA(n.openEvalConfigDialog())}),AA(3,"Run Evaluation"),N(),S(4,"mat-icon",18),mA("click",function(){QA(A);let n=Y(3);return uA(n.toggleEvalHistoryButton())}),AA(5,"history"),N()(),S(6,"div",19)(7,"table",20),S2(8,21),FA(9,THA,2,2,"th",22)(10,HHA,2,1,"td",23),R2(),S2(11,24),FA(12,OHA,2,0,"th",22)(13,zHA,2,3,"td",25),R2(),S2(14,26),FA(15,PHA,2,0,"th",22)(16,qHA,2,1,"td",23),R2(),FA(17,VHA,1,0,"tr",27)(18,ZHA,1,0,"tr",28),N()()()}if(t&2){let A=Y(3);_(7),yA("dataSource",A.dataSource),_(10),yA("matHeaderRowDef",A.displayedColumns),_(),yA("matRowDefColumns",A.displayedColumns)}}function XHA(t,e){if(t&1&&(S(0,"div")(1,"span",50),AA(2,"|"),N(),S(3,"span",51),AA(4),N()()),t&2){let A=Y().$implicit,i=Y(4);_(4),Bt("",i.getFailCountForCurrentResult(A.evaluationResults.evaluationResults)," Failed")}}function $HA(t,e){if(t&1&&(S(0,"span",52),AA(1),N()),t&2){let A=e.$implicit;_(),x2(" ",A.metricName,": ",A.threshold," ")}}function AOA(t,e){if(t&1&&(S(0,"div",46),dn(1,$HA,2,2,"span",52,zn),N()),t&2){let A=Y().$implicit,i=Y(4);_(),Bn(i.getEvalMetrics(A))}}function eOA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",53)(2,"span"),AA(3),N(),S(4,"button",54),mA("click",function(){let n=QA(A).$implicit,o=Y(6);return uA(o.getHistorySession(n))}),S(5,"span",36),AA(6),N(),S(7,"div",37),AA(8),N()()()()}if(t&2){let A=e.$implicit;_(3),Bt(" ",A.evalId," "),_(),yA("ngClass",A.finalEvalStatus==1?"result-btn pass":"result-btn fail"),_(2),Bt(" ",A.finalEvalStatus==1?"check":"close"," "),_(2),Bt("",A.finalEvalStatus==1?"PASS":"FAIL"," ")}}function tOA(t,e){if(t&1&&(S(0,"div",49),dn(1,eOA,9,4,"div",null,zn),N()),t&2){let A=Y().$implicit,i=Y(4);_(),Bn(i.generateHistoryEvaluationDatasource(A.timestamp))}}function iOA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",40)(2,"div",41)(3,"div",42)(4,"div",43),AA(5),N(),S(6,"div",44)(7,"span",45),AA(8),N(),FA(9,XHA,5,1,"div"),N(),FA(10,AOA,3,0,"div",46),N(),S(11,"div",47)(12,"mat-icon",48),mA("click",function(){let n=QA(A).$implicit,o=Y(4);return uA(o.toggleHistoryStatusCard(n.timestamp))}),AA(13),N()()(),FA(14,tOA,3,0,"div",49),N()()}if(t&2){let A=e.$implicit,i=Y(4);_(5),tt(i.formatTimestamp(A.timestamp)),_(3),Bt("",i.getPassCountForCurrentResult(A.evaluationResults.evaluationResults)," Passed"),_(),_A(i.getFailCountForCurrentResult(A.evaluationResults.evaluationResults)>0?9:-1),_(),_A(i.getEvalMetrics(A)?10:-1),_(3),tt(i.getEvaluationStatusCardActionButtonIcon(A.timestamp)),_(),_A(i.isEvaluationStatusCardToggled(A.timestamp)?14:-1)}}function nOA(t,e){if(t&1&&(S(0,"div"),dn(1,iOA,15,6,"div",null,zn),N()),t&2){let A=Y(3);_(),Bn(A.getEvalHistoryOfCurrentSetSorted())}}function oOA(t,e){if(t&1&&(S(0,"div"),FA(1,WHA,19,3,"div")(2,nOA,3,0,"div"),N()),t&2){let A=Y(2);_(),_A(A.showEvalHistory()?-1:1),_(),_A(A.showEvalHistory()?2:-1)}}function rOA(t,e){if(t&1){let A=me();S(0,"button",55),mA("click",function(){QA(A);let n=Y(2);return uA(n.openNewEvalCaseDialog())}),S(1,"div",56)(2,"mat-icon"),AA(3,"add"),N(),S(4,"div",57),AA(5),N()()()}if(t&2){let A=Y(2);_(5),Bt(" Add current session to ",A.selectedEvalSet," ")}}function sOA(t,e){t&1&&(S(0,"div"),TA(1,"mat-spinner",58),N()),t&2&&(_(),yA("diameter",28)("strokeWidth",3))}function aOA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",9)(2,"mat-icon",13),mA("click",function(){QA(A);let n=Y();return uA(n.clearSelectedEvalSet())}),AA(3,"chevron_left"),N(),S(4,"div",14),mA("click",function(){QA(A);let n=Y();return uA(n.clearSelectedEvalSet())}),AA(5),N()(),FA(6,oOA,3,2,"div")(7,rOA,6,1,"button",15)(8,sOA,2,2,"div"),N()}if(t&2){let A=Y();_(5),Bt(" ",A.selectedEvalSet," "),_(),_A(A.evalCases.length>0&&!A.evalRunning()?6:-1),_(),_A(!A.evalRunning()&&!A.showEvalHistory()?7:-1),_(),_A(A.evalRunning()?8:-1)}}var g2=class t{checkboxes=MH(pf);appName=bs("");userId=bs("");sessionId=bs("");sessionSelected=GI();shouldShowTab=GI();evalNotInstalledMsg=GI();evalCaseSelected=GI();evalSetIdSelected=GI();shouldReturnToSession=GI();evalCasesSubject=new Fi([]);changeDetectorRef=f(Et);flagService=f(Gc);displayedColumns=["select","evalId","finalEvalStatus"];evalsets=[];selectedEvalSet="";evalCases=[];selectedEvalCase=Ao(null);deletedEvalCaseIndex=-1;dataSource=new wf(this.evalCases);selection=new P2(!0,[]);showEvalHistory=Ao(!1);evalRunning=Ao(!1);evalMetrics=RcA;currentEvalResultBySet=new Map;dialog=f(Fc);appEvaluationResults={};evalService=f(Rl);sessionService=f(A1);constructor(){this.evalCasesSubject.subscribe(e=>{!this.selectedEvalCase()&&this.deletedEvalCaseIndex>=0&&e.length>0?(this.selectNewEvalCase(e),this.deletedEvalCaseIndex=-1):e.length===0&&this.shouldReturnToSession.emit(!0)})}ngOnChanges(e){e.appName&&(this.selectedEvalSet="",this.evalCases=[],this.getEvalSet(),this.getEvaluationResult())}ngOnInit(){}selectNewEvalCase(e){let A=this.deletedEvalCaseIndex;this.deletedEvalCaseIndex===e.length&&(A=0),this.getEvalCase(e[A])}getEvalSet(){this.appName()!==""&&this.evalService.getEvalSets(this.appName()).pipe(Gr(e=>e.status===404&&e.statusText==="Not Found"?(this.shouldShowTab.emit(!1),Ce(null)):Ce([]))).subscribe(e=>{e!==null&&(this.shouldShowTab.emit(!0),this.evalsets=e)})}openNewEvalSetDialog(){this.dialog.open(w7,{width:"600px",data:{appName:this.appName()}}).afterClosed().subscribe(A=>{A&&this.getEvalSet()})}openNewEvalCaseDialog(){this.dialog.open(D7,{width:"600px",data:{appName:this.appName(),userId:this.userId(),sessionId:this.sessionId(),evalSetId:this.selectedEvalSet}}).afterClosed().subscribe(A=>{A&&this.listEvalCases()})}listEvalCases(){this.evalCases=[],this.evalService.listEvalCases(this.appName(),this.selectedEvalSet).subscribe(e=>{this.evalCases=e,this.dataSource=new wf(this.evalCases),this.evalCasesSubject.next(this.evalCases),this.changeDetectorRef.detectChanges()})}runEval(){if(this.evalRunning.set(!0),this.selection.selected.length==0){alert("No case selected!"),this.evalRunning.set(!1);return}this.evalService.runEval(this.appName(),this.selectedEvalSet,this.selection.selected,this.evalMetrics).pipe(Gr(e=>(e.error?.detail?.includes("not installed")&&this.evalNotInstalledMsg.emit(e.error.detail),Ce([])))).subscribe(e=>{this.evalRunning.set(!1),this.currentEvalResultBySet.set(this.selectedEvalSet,e),this.getEvaluationResult()})}selectEvalSet(e){this.selectedEvalSet=e,this.listEvalCases()}clearSelectedEvalSet(){if(this.showEvalHistory()){this.toggleEvalHistoryButton();return}this.selectedEvalSet=""}isAllSelected(){let e=this.selection.selected.length,A=this.dataSource.data.length;return e===A}toggleAllRows(){if(this.isAllSelected()){this.selection.clear();return}this.selection.select(...this.dataSource.data)}getEvalResultForCase(e){let A=this.currentEvalResultBySet.get(this.selectedEvalSet)?.filter(i=>i.evalId==e);if(!(!A||A.length==0))return A[0].finalEvalStatus}formatToolUses(e){let A=[];for(let i of e)A.push({name:i.name,args:i.args});return A}addEvalCaseResultToEvents(e,A){let i=A.evalMetricResultPerInvocation,n=-1;if(i)for(let o=0;on.evalId==e)[0],i=A.sessionId;this.sessionService.getSession(this.userId(),this.appName(),i).subscribe(n=>{this.addEvalCaseResultToEvents(n,A);let o=this.fromApiResultToSession(n);this.sessionSelected.emit(o)})}toggleEvalHistoryButton(){this.showEvalHistory.set(!this.showEvalHistory())}getEvalHistoryOfCurrentSet(){return this.appEvaluationResults[this.appName()][this.selectedEvalSet]}getEvalHistoryOfCurrentSetSorted(){let e=this.getEvalHistoryOfCurrentSet();return Object.keys(e).sort((n,o)=>o.localeCompare(n)).map(n=>({timestamp:n,evaluationResults:e[n]}))}getPassCountForCurrentResult(e){return e.filter(A=>A.finalEvalStatus==1).length}getFailCountForCurrentResult(e){return e.filter(A=>A.finalEvalStatus==2).length}formatTimestamp(e){let A=Number(e);if(isNaN(A))return"Invalid timestamp provided";let i=new Date(A*1e3);if(isNaN(i.getTime()))return"Invalid date created from timestamp";let n={month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0};return new Intl.DateTimeFormat("en-US",n).format(i)}getEvaluationStatusCardActionButtonIcon(e){return this.getEvalHistoryOfCurrentSet()[e].isToggled?"keyboard_arrow_up":"keyboard_arrow_down"}toggleHistoryStatusCard(e){this.getEvalHistoryOfCurrentSet()[e].isToggled=!this.getEvalHistoryOfCurrentSet()[e].isToggled}isEvaluationStatusCardToggled(e){return this.getEvalHistoryOfCurrentSet()[e].isToggled}generateHistoryEvaluationDatasource(e){return this.getEvalHistoryOfCurrentSet()[e].evaluationResults}getHistorySession(e){this.addEvalCaseResultToEvents(e.sessionDetails,e);let A=this.fromApiResultToSession(e.sessionDetails);this.sessionSelected.emit(A)}getEvalCase(e){this.evalService.getEvalCase(this.appName(),this.selectedEvalSet,e).subscribe(A=>{this.selectedEvalCase.set(A),this.evalCaseSelected.emit(A),this.evalSetIdSelected.emit(this.selectedEvalSet)})}resetEvalCase(){this.selectedEvalCase.set(null)}resetEvalResults(){this.currentEvalResultBySet.clear()}deleteEvalCase(e){this.evalService.deleteEvalCase(this.appName(),this.selectedEvalSet,e).subscribe(A=>{this.deletedEvalCaseIndex=this.evalCases.indexOf(e),this.selectedEvalCase.set(null),this.listEvalCases()})}getEvaluationResult(){this.evalService.listEvalResults(this.appName()).pipe(Gr(e=>e.status===404&&e.statusText==="Not Found"?(this.shouldShowTab.emit(!1),Ce(null)):Ce([]))).subscribe(e=>{for(let A of e)this.evalService.getEvalResult(this.appName(),A).subscribe(i=>{this.appEvaluationResults[this.appName()]||(this.appEvaluationResults[this.appName()]={}),this.appEvaluationResults[this.appName()][i.evalSetId]||(this.appEvaluationResults[this.appName()][i.evalSetId]={});let n=i.creationTimestamp;this.appEvaluationResults[this.appName()][i.evalSetId][n]||(this.appEvaluationResults[this.appName()][i.evalSetId][n]={isToggled:!1,evaluationResults:[]});let o={isToggled:!1,evaluationResults:i.evalCaseResults.map(r=>({setId:r.id,evalId:r.evalId,finalEvalStatus:r.finalEvalStatus,evalMetricResults:r.evalMetricResults,evalMetricResultPerInvocation:r.evalMetricResultPerInvocation,sessionId:r.sessionId,sessionDetails:r.sessionDetails,overallEvalMetricResults:r.overallEvalMetricResults??[]}))};this.appEvaluationResults[this.appName()][i.evalSetId][n]=o})})}openEvalConfigDialog(){if(this.selection.selected.length==0){alert("No case selected!");return}this.dialog.open(y7,{maxWidth:"90vw",maxHeight:"90vh",data:{evalMetrics:this.evalMetrics}}).afterClosed().subscribe(A=>{A&&(this.evalMetrics=A,this.runEval())})}getEvalMetrics(e){if(!e||!e.evaluationResults||!e.evaluationResults.evaluationResults)return this.evalMetrics;let A=e.evaluationResults.evaluationResults;return A.length===0?this.evalMetrics:typeof A[0].overallEvalMetricResults>"u"||!A[0].overallEvalMetricResults||A[0].overallEvalMetricResults.length===0?this.evalMetrics:A[0].overallEvalMetricResults.map(n=>({metricName:n.metricName,threshold:n.threshold}))}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-eval-tab"]],viewQuery:function(A,i){A&1&&ls(i.checkboxes,pf,5),A&2&&yc()},inputs:{appName:[1,"appName"],userId:[1,"userId"],sessionId:[1,"sessionId"]},outputs:{sessionSelected:"sessionSelected",shouldShowTab:"shouldShowTab",evalNotInstalledMsg:"evalNotInstalledMsg",evalCaseSelected:"evalCaseSelected",evalSetIdSelected:"evalSetIdSelected",shouldReturnToSession:"shouldReturnToSession"},features:[Xt],decls:5,vars:4,consts:[[1,"eval-container"],[1,"eval-set-actions"],["matTooltip","Create new evaluation set",2,"cursor","pointer",3,"click"],[1,"empty-eval-info"],[1,"info-title"],[1,"info-detail"],[1,"info-create",3,"click"],[1,"eval-set-row"],[1,"eval-set-row",3,"click"],[2,"display","flex"],[1,"material-symbols-outlined",2,"margin-right","10px","padding-top","16px"],[2,"font-family","Roboto","font-size","14px","padding","16px","padding-top","20px"],[2,"padding-top","20px","color","#9AA0A6"],[2,"color","white","cursor","pointer",3,"click"],[2,"color","#9AA0A6","padding-top","2px","cursor","pointer",3,"click"],[1,"save-session-btn"],[1,"evaluation-tab-header"],[1,"run-eval-btn",3,"click"],["matTooltip","View eval run history",1,"evaluation-history-icon",3,"click"],[1,"mat-table-container",2,"margin-top","16px"],["mat-table","",3,"dataSource"],["matColumnDef","select"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","evalId"],["mat-cell","","class","eval-case-id",3,"selected-eval-case","click",4,"matCellDef"],["matColumnDef","finalEvalStatus"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],[3,"change","checked","indeterminate"],["mat-cell",""],[3,"click","change","checked"],["mat-cell","",1,"eval-case-id",3,"click"],["matTooltip","View eval run result",3,"ngClass"],["matTooltip","View eval run result",3,"click","ngClass"],[1,"material-symbols-outlined"],[2,"padding-top","4px"],["mat-header-row",""],["mat-row",""],[1,"status-card"],[1,"status-card__overview"],[1,"status-card__info"],[1,"status-card__timestamp"],[1,"status-card__summary"],[1,"status-card__passed"],[1,"status-card__metrics"],[1,"status-card__action"],[3,"click"],[1,"status-card__history-cases"],[1,"status-card__separator"],[1,"status-card__failed"],[1,"status-card__metric"],[1,"status-card__history-case"],[3,"click","ngClass"],[1,"save-session-btn",3,"click"],[1,"save-session-btn-detail"],[1,"save-session-btn-text"],[1,"eval-spinner",3,"diameter","strokeWidth"]],template:function(A,i){A&1&&(S(0,"div",0),FA(1,KHA,5,0,"div",1)(2,UHA,8,0,"div")(3,YHA,3,0,"div")(4,aOA,9,4,"div"),N()),A&2&&(_(),_A(i.selectedEvalSet==""?1:-1),_(),_A(i.evalsets.length==0?2:-1),_(),_A(i.evalsets.length>0&&i.selectedEvalSet==""?3:-1),_(),_A(i.selectedEvalSet!=""?4:-1))},dependencies:[_c,kl,mcA,wcA,DcA,ycA,pf,pcA,vcA,Vs,McA,kcA,bcA,ScA,GcA],styles:[".eval-container[_ngcontent-%COMP%]{margin-top:20px;padding-left:25px;padding-right:25px}.eval-case-id[_ngcontent-%COMP%]{cursor:pointer}.eval-set-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between;color:var(--eval-tab-eval-set-actions-color);font-style:normal;font-weight:700;font-size:14px}.empty-eval-info[_ngcontent-%COMP%]{margin-top:12px;background-color:var(--eval-tab-empty-eval-info-background-color);border-radius:8px;box-shadow:0 2px 6px 2px var(--eval-tab-empty-eval-info-box-shadow-color1),0 1px 2px 0 var(--eval-tab-empty-eval-info-box-shadow-color2)}.info-title[_ngcontent-%COMP%]{color:var(--eval-tab-info-title-color);font-family:Roboto;font-size:14px;font-weight:500;padding-top:13px;padding-right:16px;padding-left:16px}.info-detail[_ngcontent-%COMP%]{color:var(--eval-tab-info-detail-color);font-family:Roboto;font-size:14px;font-weight:400;padding-top:13px;padding-right:16px;padding-left:16px;letter-spacing:.2px}.info-create[_ngcontent-%COMP%]{color:var(--eval-tab-info-create-color);font-size:14px;font-style:normal;font-weight:500;padding-right:16px;padding-left:16px;margin-top:19px;padding-bottom:16px;cursor:pointer}.eval-set-row[_ngcontent-%COMP%]{display:flex;justify-content:space-between;cursor:pointer}.selected-eval-case[_ngcontent-%COMP%]{font-weight:900;color:var(--eval-tab-selected-eval-case-color)}.save-session-btn[_ngcontent-%COMP%]{width:100%;background:linear-gradient(0deg,var(--eval-tab-save-session-btn-background-color1) 0%,var(--eval-tab-save-session-btn-background-color1) 100%),var(--eval-tab-save-session-btn-background-color2);border:none;border-radius:4px;margin-top:12px;cursor:pointer}.save-session-btn-detail[_ngcontent-%COMP%]{display:flex;padding:8px 16px 8px 12px;justify-content:center}.save-session-btn-text[_ngcontent-%COMP%]{padding-top:2px;color:var(--eval-tab-save-session-btn-text-color);font-family:Google Sans;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.run-eval-btn[_ngcontent-%COMP%]{border-radius:4px;border:1px solid var(--eval-tab-run-eval-btn-border-color);background-color:transparent;padding:8px 24px;margin-top:16px;color:var(--eval-tab-run-eval-btn-color);cursor:pointer}.run-eval-btn[_ngcontent-%COMP%]:hover{background-color:var(--eval-tab-run-eval-btn-hover-background-color)}.result-btn[_ngcontent-%COMP%]{display:flex;background-color:transparent;border-radius:4px;border:1px solid var(--eval-tab-result-btn-border-color);margin-top:4px;cursor:pointer}.result-btn[_ngcontent-%COMP%]:hover{background-color:var(--eval-tab-result-btn-hover-background-color)}.result-btn.pass[_ngcontent-%COMP%]{color:var(--eval-tab-result-btn-pass-color)}.result-btn.fail[_ngcontent-%COMP%]{color:var(--eval-tab-result-btn-fail-color)}.evaluation-tab-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%}.evaluation-history-icon[_ngcontent-%COMP%]{cursor:pointer;margin-top:4px}.status-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;border-radius:8px;background-color:var(--eval-tab-status-card-background-color);padding:12px 16px;margin-top:12px}.status-card__overview[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%}.status-card__info[_ngcontent-%COMP%]{display:flex;flex-direction:column}.status-card__timestamp[_ngcontent-%COMP%]{font-size:.9em;color:var(--eval-tab-status-card-timestamp-color);margin-bottom:5px}.status-card__summary[_ngcontent-%COMP%]{display:flex;align-items:center;font-size:.95em;font-weight:500}.status-card__metrics[_ngcontent-%COMP%]{display:flex;align-items:center;font-size:.75em;font-weight:300;margin-top:3px}.status-card__metric[_ngcontent-%COMP%]{width:180px;color:var(--eval-tab-status-card-metric-color)}.status-card__failed[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-failed-color)}.status-card__separator[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-separator-color);margin:0 8px}.status-card__passed[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-passed-color)}.status-card__action[_ngcontent-%COMP%]{display:flex;align-items:center}.status-card__action[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-action-mat-icon-color);cursor:pointer;transition:transform .2s ease-in-out}.status-card__action[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]:hover{opacity:.8}.status-card__action[_ngcontent-%COMP%] .status-card__icon[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-icon-color);font-size:1.2em;cursor:pointer}.status-card__action[_ngcontent-%COMP%] .status-card__icon[_ngcontent-%COMP%]:hover{opacity:.8}.status-card__history-cases[_ngcontent-%COMP%]{display:flex;flex-direction:column;margin-top:3px;justify-content:flex-start;width:100%}.status-card__history-case[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:15px}.eval-spinner[_ngcontent-%COMP%]{margin-top:12px}"],changeDetection:0})};function cOA(t,e){t&1&&(S(0,"h2",0),AA(1,"Events List"),N())}function gOA(t,e){t&1&&(S(0,"h2",0),AA(1,"Send Response To Pending Event"),N())}function lOA(t,e){t&1&&(S(0,"h2",4),AA(1,"Events List"),N())}function IOA(t,e){t&1&&(S(0,"h2",4),AA(1,"Send Response To Pending Event"),N())}function COA(t,e){if(t&1){let A=me();S(0,"div")(1,"p"),AA(2,"Name"),N(),S(3,"p"),AA(4),N(),S(5,"p"),AA(6,"Args"),N(),S(7,"p"),AA(8),N(),S(9,"mat-form-field",5)(10,"mat-label"),AA(11,"Response"),N(),S(12,"textarea",6),Xa("ngModelChange",function(n){QA(A);let o=Y();return Wa(o.selectedEvent.response,n)||(o.selectedEvent.response=n),uA(n)}),N()()()}if(t&2){let A=Y();_(4),tt(A.selectedEvent.name),_(4),tt(A.argsToJson(A.selectedEvent.args)),_(4),Za("ngModel",A.selectedEvent.response)}}function dOA(t,e){if(t&1){let A=me();S(0,"button",7),mA("click",function(){QA(A);let n=Y();return uA(n.sendResponse())}),AA(1),N()}if(t&2){let A=Y();yA("disabled",A.sending),_(),Bt(" ",A.sending?"Sending...":"Send"," ")}}var v7=class t{dialogRef=f(fr);data=f(Cs);agentService=f(HB);selectedEvent=this.data.event;appName=this.data.appName;userId=this.data.userId;sessionId=this.data.sessionId;functionCallEventId=this.data.functionCallEventId;sending=!1;response=[];constructor(){}argsToJson(e){return JSON.stringify(e)}sendResponse(){this.sending=!0;let e={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:[]},invocationId:this.data.invocationId};this.selectedEvent.response&&(e.functionCallEventId=this.functionCallEventId,e.newMessage.parts.push({function_response:{id:this.selectedEvent.id,name:this.selectedEvent.name,response:{response:this.selectedEvent.response}}})),this.agentService.runSse(e).subscribe({next:A=>Ni(this,null,function*(){this.response.push(A)}),error:A=>console.error("SSE error:",A),complete:()=>{this.sending=!1,this.dialogRef.close({response:this.response,events:[this.selectedEvent]})}})}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-pending-event-dialog"]],decls:10,vars:6,consts:[["mat-dialog-title",""],["mat-dialog-title","","class","dialog-title",4,"ngIf"],["mat-button","",3,"disabled"],["mat-button","","mat-dialog-close",""],["mat-dialog-title","",1,"dialog-title"],["appearance","outline",1,"response-textarea"],["matInput","",3,"ngModelChange","ngModel"],["mat-button","",3,"click","disabled"]],template:function(A,i){A&1&&(FA(0,cOA,2,0,"h2",0)(1,gOA,2,0,"h2",0)(2,lOA,2,0,"h2",1)(3,IOA,2,0,"h2",1),S(4,"mat-dialog-content"),FA(5,COA,13,3,"div"),N(),S(6,"mat-dialog-actions"),FA(7,dOA,2,2,"button",2),S(8,"button",3),AA(9,"Close"),N()()),A&2&&(_A(i.selectedEvent?-1:0),_(),_A(i.selectedEvent?1:-1),_(),yA("ngIf",!i.selectedEvent),_(),yA("ngIf",i.selectedEvent),_(2),_A(i.selectedEvent?5:-1),_(2),_A(i.selectedEvent&&i.selectedEvent.response?7:-1))},dependencies:[Ls,Tu,ya,fl,m6,J2,Mr,kc,Ss,tc,va,dr,bl],styles:[".response-textarea[_ngcontent-%COMP%]{min-width:500px;margin-top:15px}.dialog-title[_ngcontent-%COMP%]{font-weight:700;font-size:large}"]})};var yf=class t{constructor(e,A){this.dialogRef=e;this.data=A}onConfirm(){this.dialogRef.close(!0)}onCancel(){this.dialogRef.close(!1)}static \u0275fac=function(A){return new(A||t)(Ge(fr),Ge(Cs))};static \u0275cmp=jA({type:t,selectors:[["app-delete-session-dialog"]],decls:11,vars:4,consts:[[1,"confirm-delete-wrapper"],["mat-dialog-title",""],["align","end"],["mat-button","",3,"click"],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2),N(),S(3,"mat-dialog-content")(4,"p"),AA(5),N()(),S(6,"mat-dialog-actions",2)(7,"button",3),mA("click",function(){return i.onCancel()}),AA(8),N(),S(9,"button",4),mA("click",function(){return i.onConfirm()}),AA(10),N()()()),A&2&&(_(2),tt(i.data.title),_(3),tt(i.data.message),_(3),tt(i.data.cancelButtonText),_(2),tt(i.data.confirmButtonText))},dependencies:[Ls,ya,va,dr],encapsulation:2})};var XK=["*"];function BOA(t,e){t&1&&Ue(0)}var EOA=["tabListContainer"],QOA=["tabList"],uOA=["tabListInner"],hOA=["nextPaginator"],fOA=["previousPaginator"],mOA=t=>({animationDuration:t}),pOA=(t,e)=>({value:t,params:e});function DOA(t,e){}var wOA=["tabBodyWrapper"],yOA=["tabHeader"];function vOA(t,e){}function MOA(t,e){if(t&1&&FA(0,vOA,0,0,"ng-template",12),t&2){let A=Y().$implicit;yA("cdkPortalOutlet",A.templateLabel)}}function bOA(t,e){if(t&1&&AA(0),t&2){let A=Y().$implicit;tt(A.textLabel)}}function kOA(t,e){if(t&1){let A=me();S(0,"div",7,2),mA("click",function(){let n=QA(A),o=n.$implicit,r=n.$index,s=Y(),a=Cr(1);return uA(s._handleClick(o,a,r))})("cdkFocusChange",function(n){let o=QA(A).$index,r=Y();return uA(r._tabFocusChanged(n,o))}),TA(2,"span",8)(3,"div",9),S(4,"span",10)(5,"span",11),FA(6,MOA,1,1,null,12)(7,bOA,1,1),N()()()}if(t&2){let A=e.$implicit,i=e.$index,n=Cr(1),o=Y();Ro(A.labelClass),he("mdc-tab--active",o.selectedIndex===i),yA("id",o._getTabLabelId(i))("disabled",A.disabled)("fitInkBarToContent",o.fitInkBarToContent),Ke("tabIndex",o._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",o._tabs.length)("aria-controls",o._getTabContentId(i))("aria-selected",o.selectedIndex===i)("aria-label",A.ariaLabel||null)("aria-labelledby",!A.ariaLabel&&A.ariaLabelledby?A.ariaLabelledby:null),_(3),yA("matRippleTrigger",n)("matRippleDisabled",A.disabled||o.disableRipple),_(3),_A(A.templateLabel?6:7)}}function SOA(t,e){t&1&&Ue(0)}function ROA(t,e){if(t&1){let A=me();S(0,"mat-tab-body",13),mA("_onCentered",function(){QA(A);let n=Y();return uA(n._removeTabBodyWrapperHeight())})("_onCentering",function(n){QA(A);let o=Y();return uA(o._setTabBodyWrapperHeight(n))}),N()}if(t&2){let A=e.$implicit,i=e.$index,n=Y();Ro(A.bodyClass),he("mat-mdc-tab-body-active",n.selectedIndex===i),yA("id",n._getTabContentId(i))("content",A.content)("position",A.position)("origin",A.origin)("animationDuration",n.animationDuration)("preserveContent",n.preserveContent),Ke("tabindex",n.contentTabIndex!=null&&n.selectedIndex===i?n.contentTabIndex:null)("aria-labelledby",n._getTabLabelId(i))("aria-hidden",n.selectedIndex!==i)}}var LOA=new eA("MatTabContent"),xOA=(()=>{class t{template=f(mn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matTabContent",""]],features:[ut([{provide:LOA,useExisting:t}])]})}return t})(),NOA=new eA("MatTabLabel"),JcA=new eA("MAT_TAB"),$K=(()=>{class t extends sq{_closestTab=f(JcA,{optional:!0});static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[ut([{provide:NOA,useExisting:t}]),lt]})}return t})(),YcA=new eA("MAT_TAB_GROUP"),vf=(()=>{class t{_viewContainerRef=f(Sn);_closestTabGroup=f(YcA,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(A){this._setTemplateLabelInput(A)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new qA;position=null;origin=null;isActive=!1;constructor(){f(Pn).load(Yr)}ngOnChanges(A){(A.hasOwnProperty("textLabel")||A.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new Rs(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(A){A&&A._closestTab===this&&(this._templateLabel=A)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-tab"]],contentQueries:function(i,n,o){if(i&1&&(gi(o,$K,5),gi(o,xOA,7,mn)),i&2){let r;de(r=Be())&&(n.templateLabel=r.first),de(r=Be())&&(n._explicitContent=r.first)}},viewQuery:function(i,n){if(i&1&&st(mn,7),i&2){let o;de(o=Be())&&(n._implicitContent=o.first)}},hostAttrs:["hidden",""],inputs:{disabled:[2,"disabled","disabled",ge],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},exportAs:["matTab"],features:[ut([{provide:JcA,useExisting:t}]),Xt],ngContentSelectors:XK,decls:1,vars:0,template:function(i,n){i&1&&($t(),FA(0,BOA,1,0,"ng-template"))},encapsulation:2})}return t})(),VK="mdc-tab-indicator--active",KcA="mdc-tab-indicator--no-transition",ZK=class{_items;_currentItem;constructor(e){this._items=e}hide(){this._items.forEach(e=>e.deactivateInkBar()),this._currentItem=void 0}alignToElement(e){let A=this._items.find(n=>n.elementRef.nativeElement===e),i=this._currentItem;if(A!==i&&(i?.deactivateInkBar(),A)){let n=i?.elementRef.nativeElement.getBoundingClientRect?.();A.activateInkBar(n),this._currentItem=A}}},FOA=(()=>{class t{_elementRef=f(se);_inkBarElement;_inkBarContentElement;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(A){this._fitToContent!==A&&(this._fitToContent=A,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(A){let i=this._elementRef.nativeElement;if(!A||!i.getBoundingClientRect||!this._inkBarContentElement){i.classList.add(VK);return}let n=i.getBoundingClientRect(),o=A.width/n.width,r=A.left-n.left;i.classList.add(KcA),this._inkBarContentElement.style.setProperty("transform",`translateX(${r}px) scaleX(${o})`),i.getBoundingClientRect(),i.classList.remove(KcA),i.classList.add(VK),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(VK)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){let A=this._elementRef.nativeElement.ownerDocument||document,i=this._inkBarElement=A.createElement("span"),n=this._inkBarContentElement=A.createElement("span");i.className="mdc-tab-indicator",n.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",i.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){this._inkBarElement;let A=this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement;A.appendChild(this._inkBarElement)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",ge]}})}return t})();var TcA=(()=>{class t extends FOA{elementRef=f(se);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,n){i&2&&(Ke("aria-disabled",!!n.disabled),he("mat-mdc-tab-disabled",n.disabled))},inputs:{disabled:[2,"disabled","disabled",ge]},features:[lt]})}return t})(),UcA={passive:!0},_OA=650,GOA=100,KOA=(()=>{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_viewportRuler=f(Nc);_dir=f(po,{optional:!0});_ngZone=f(ye);_platform=f(ni);_sharedResizeObserver=f(h6);_injector=f(Zt);_renderer=f(qi);_animationMode=f(_i,{optional:!0});_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new qA;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged;_keyManager;_currentTextContent;_stopScrolling=new qA;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(A){let i=isNaN(A)?0:A;this._selectedIndex!=i&&(this._selectedIndexChanged=!0,this._selectedIndex=i,this._keyManager&&this._keyManager.updateActiveItem(i))}_selectedIndex=0;selectFocusedIndex=new YA;indexFocused=new YA;constructor(){this._eventCleanups=this._ngZone.runOutsideAngular(()=>[this._renderer.listen(this._elementRef.nativeElement,"mouseleave",()=>this._stopInterval())])}ngAfterViewInit(){this._eventCleanups.push(Bk(this._renderer,this._previousPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("before"),UcA),Bk(this._renderer,this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),UcA))}ngAfterContentInit(){let A=this._dir?this._dir.change:Ce("ltr"),i=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(ag(32),kt(this._destroyed)),n=this._viewportRuler.change(150).pipe(kt(this._destroyed)),o=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new zI(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(this._selectedIndex),Ir(o,{injector:this._injector}),Hn(A,n,i,this._items.changes,this._itemsResized()).pipe(kt(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),o()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(r=>{this.indexFocused.emit(r),this._setTabFocus(r)})}_itemsResized(){return typeof ResizeObserver!="function"?lr:this._items.changes.pipe(On(this._items),$n(A=>new gt(i=>this._ngZone.runOutsideAngular(()=>{let n=new ResizeObserver(o=>i.next(o));return A.forEach(o=>n.observe(o.elementRef.nativeElement)),()=>{n.disconnect()}}))),mI(1),Nt(A=>A.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._eventCleanups.forEach(A=>A()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(A){if(!sr(A))switch(A.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){let i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(A))}break;default:this._keyManager.onKeydown(A)}}_onContentChanges(){let A=this._elementRef.nativeElement.textContent;A!==this._currentTextContent&&(this._currentTextContent=A||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(A){!this._isValidIndex(A)||this.focusIndex===A||!this._keyManager||this._keyManager.setActiveItem(A)}_isValidIndex(A){return this._items?!!this._items.toArray()[A]:!0}_setTabFocus(A){if(this._showPaginationControls&&this._scrollToLabel(A),this._items&&this._items.length){this._items.toArray()[A].focus();let i=this._tabListContainer.nativeElement;this._getLayoutDirection()=="ltr"?i.scrollLeft=0:i.scrollLeft=i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;let A=this.scrollDistance,i=this._getLayoutDirection()==="ltr"?-A:A;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(A){this._scrollTo(A)}_scrollHeader(A){let i=this._tabListContainer.nativeElement.offsetWidth,n=(A=="before"?-1:1)*i/3;return this._scrollTo(this._scrollDistance+n)}_handlePaginatorClick(A){this._stopInterval(),this._scrollHeader(A)}_scrollToLabel(A){if(this.disablePagination)return;let i=this._items?this._items.toArray()[A]:null;if(!i)return;let n=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:o,offsetWidth:r}=i.elementRef.nativeElement,s,a;this._getLayoutDirection()=="ltr"?(s=o,a=s+r):(a=this._tabListInner.nativeElement.offsetWidth-o,s=a-r);let c=this.scrollDistance,g=this.scrollDistance+n;sg&&(this.scrollDistance+=Math.min(a-g,s-c))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{let A=this._tabListInner.nativeElement.scrollWidth,i=this._elementRef.nativeElement.offsetWidth,n=A-i>=5;n||(this.scrollDistance=0),n!==this._showPaginationControls&&(this._showPaginationControls=n,this._changeDetectorRef.markForCheck())}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=this.scrollDistance==0,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){let A=this._tabListInner.nativeElement.scrollWidth,i=this._tabListContainer.nativeElement.offsetWidth;return A-i||0}_alignInkBarToSelectedTab(){let A=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=A?A.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(A,i){i&&i.button!=null&&i.button!==0||(this._stopInterval(),fI(_OA,GOA).pipe(kt(Hn(this._stopScrolling,this._destroyed))).subscribe(()=>{let{maxScrollDistance:n,distance:o}=this._scrollHeader(A);(o===0||o>=n)&&this._stopInterval()}))}_scrollTo(A){if(this.disablePagination)return{maxScrollDistance:0,distance:0};let i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,A)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,inputs:{disablePagination:[2,"disablePagination","disablePagination",ge],selectedIndex:[2,"selectedIndex","selectedIndex",en]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return t})(),UOA=(()=>{class t extends KOA{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new ZK(this._items),super.ngAfterContentInit()}_itemSelected(A){A.preventDefault()}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-tab-header"]],contentQueries:function(i,n,o){if(i&1&&gi(o,TcA,4),i&2){let r;de(r=Be())&&(n._items=r)}},viewQuery:function(i,n){if(i&1&&(st(EOA,7),st(QOA,7),st(uOA,7),st(hOA,5),st(fOA,5)),i&2){let o;de(o=Be())&&(n._tabListContainer=o.first),de(o=Be())&&(n._tabList=o.first),de(o=Be())&&(n._tabListInner=o.first),de(o=Be())&&(n._nextPaginator=o.first),de(o=Be())&&(n._previousPaginator=o.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,n){i&2&&he("mat-mdc-tab-header-pagination-controls-enabled",n._showPaginationControls)("mat-mdc-tab-header-rtl",n._getLayoutDirection()=="rtl")},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",ge]},features:[lt],ngContentSelectors:XK,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"div",5,0),mA("click",function(){return QA(o),uA(n._handlePaginatorClick("before"))})("mousedown",function(s){return QA(o),uA(n._handlePaginatorPress("before",s))})("touchend",function(){return QA(o),uA(n._stopInterval())}),TA(2,"div",6),N(),S(3,"div",7,1),mA("keydown",function(s){return QA(o),uA(n._handleKeydown(s))}),S(5,"div",8,2),mA("cdkObserveContent",function(){return QA(o),uA(n._onContentChanges())}),S(7,"div",9,3),Ue(9),N()()(),S(10,"div",10,4),mA("mousedown",function(s){return QA(o),uA(n._handlePaginatorPress("after",s))})("click",function(){return QA(o),uA(n._handlePaginatorClick("after"))})("touchend",function(){return QA(o),uA(n._stopInterval())}),TA(12,"div",6),N()}i&2&&(he("mat-mdc-tab-header-pagination-disabled",n._disableScrollBefore),yA("matRippleDisabled",n._disableScrollBefore||n.disableRipple),_(3),he("_mat-animation-noopable",n._animationMode==="NoopAnimations"),_(2),Ke("aria-label",n.ariaLabel||null)("aria-labelledby",n.ariaLabelledby||null),_(5),he("mat-mdc-tab-header-pagination-disabled",n._disableScrollAfter),yA("matRippleDisabled",n._disableScrollAfter||n.disableRipple))},dependencies:[Xs,e6],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height, 1px);border-bottom-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-header-divider-height, 1px);border-top-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mdc-secondary-navigation-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}"],encapsulation:2})}return t})(),JOA=new eA("MAT_TABS_CONFIG"),YOA={translateTab:nc("translateTab",[$s("center, void, left-origin-center, right-origin-center",Do({transform:"none",visibility:"visible"})),$s("left",Do({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),$s("right",Do({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),$r("* => left, * => right, left => center, right => center",Is("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),$r("void => left-origin-center",[Do({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),Is("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),$r("void => right-origin-center",[Do({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),Is("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])},TOA=(()=>{class t extends wa{_host=f(HcA);_centeringSub=Kt.EMPTY;_leavingSub=Kt.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(On(this._host._isCenterPosition(this._host._position))).subscribe(A=>{this._host._content&&A&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matTabBodyHost",""]],features:[lt]})}return t})(),HcA=(()=>{class t{_elementRef=f(se);_dir=f(po,{optional:!0});_positionIndex;_dirChangeSubscription=Kt.EMPTY;_position;_translateTabComplete=new qA;_onCentering=new YA;_beforeCentering=new YA;_afterLeavingCenter=new YA;_onCentered=new YA(!0);_portalHost;_content;origin;animationDuration="500ms";preserveContent=!1;set position(A){this._positionIndex=A,this._computePositionAnimationState()}constructor(){if(this._dir){let A=f(Et);this._dirChangeSubscription=this._dir.change.subscribe(i=>{this._computePositionAnimationState(i),A.markForCheck()})}this._translateTabComplete.subscribe(A=>{this._isCenterPosition(A.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(A.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}ngOnInit(){this._position=="center"&&this.origin!=null&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(A){let i=this._isCenterPosition(A.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_isCenterPosition(A){return A=="center"||A=="left-origin-center"||A=="right-origin-center"}_computePositionAnimationState(A=this._getLayoutDirection()){this._positionIndex<0?this._position=A=="ltr"?"left":"right":this._positionIndex>0?this._position=A=="ltr"?"right":"left":this._position="center"}_computePositionFromOrigin(A){let i=this._getLayoutDirection();return i=="ltr"&&A<=0||i=="rtl"&&A>0?"left-origin-center":"right-origin-center"}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-tab-body"]],viewQuery:function(i,n){if(i&1&&st(wa,5),i&2){let o;de(o=Be())&&(n._portalHost=o.first)}},hostAttrs:[1,"mat-mdc-tab-body"],inputs:{_content:[0,"content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(i,n){if(i&1){let o=me();S(0,"div",1,0),mA("@translateTab.start",function(s){return QA(o),uA(n._onTranslateTabStarted(s))})("@translateTab.done",function(s){return QA(o),uA(n._translateTabComplete.next(s))}),FA(2,DOA,0,0,"ng-template",2),N()}i&2&&yA("@translateTab",Bg(3,pOA,n._position,vc(1,mOA,n.animationDuration)))},dependencies:[TOA,k0],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[YOA.translateTab]}})}return t})(),HOA=!0,M7=(()=>{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_animationMode=f(_i,{optional:!0});_allTabs;_tabBodyWrapper;_tabHeader;_tabs=new qa;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;_tabsSubscription=Kt.EMPTY;_tabLabelSubscription=Kt.EMPTY;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(A){this._fitInkBarToContent=A,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(A){this._indexToSelect=isNaN(A)?null:A}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(A){let i=A+"";this._animationDuration=/^\d+$/.test(i)?A+"ms":i}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(A){this._contentTabIndex=isNaN(A)?null:A}_contentTabIndex;disablePagination=!1;disableRipple=!1;preserveContent=!1;get backgroundColor(){return this._backgroundColor}set backgroundColor(A){if(!HOA)throw new Error("mat-tab-group background color must be set through the Sass theming API");let i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),A&&i.add("mat-tabs-with-background",`mat-background-${A}`),this._backgroundColor=A}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new YA;focusChange=new YA;animationDone=new YA;selectedTabChange=new YA(!0);_groupId;_isServer=!f(ni).isBrowser;constructor(){let A=f(JOA,{optional:!0});this._groupId=f(an).getId("mat-tab-group-"),this.animationDuration=A&&A.animationDuration?A.animationDuration:"500ms",this.disablePagination=A&&A.disablePagination!=null?A.disablePagination:!1,this.dynamicHeight=A&&A.dynamicHeight!=null?A.dynamicHeight:!1,A?.contentTabIndex!=null&&(this.contentTabIndex=A.contentTabIndex),this.preserveContent=!!A?.preserveContent,this.fitInkBarToContent=A&&A.fitInkBarToContent!=null?A.fitInkBarToContent:!1,this.stretchTabs=A&&A.stretchTabs!=null?A.stretchTabs:!0,this.alignTabs=A&&A.alignTabs!=null?A.alignTabs:null}ngAfterContentChecked(){let A=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=A){let i=this._selectedIndex==null;if(!i){this.selectedTabChange.emit(this._createChangeEvent(A));let n=this._tabBodyWrapper.nativeElement;n.style.minHeight=n.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((n,o)=>n.isActive=o===A),i||(this.selectedIndexChange.emit(A),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,n)=>{i.position=n-A,this._selectedIndex!=null&&i.position==0&&!i.origin&&(i.origin=A-this._selectedIndex)}),this._selectedIndex!==A&&(this._selectedIndex=A,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{let A=this._clampTabIndex(this._indexToSelect);if(A===this._selectedIndex){let i=this._tabs.toArray(),n;for(let o=0;o{i[A].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(A))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(On(this._allTabs)).subscribe(A=>{this._tabs.reset(A.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(A){let i=this._tabHeader;i&&(i.focusIndex=A)}_focusChanged(A){this._lastFocusedTabIndex=A,this.focusChange.emit(this._createChangeEvent(A))}_createChangeEvent(A){let i=new WK;return i.index=A,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[A]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=Hn(...this._tabs.map(A=>A._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(A){return Math.min(this._tabs.length-1,Math.max(A||0,0))}_getTabLabelId(A){return`${this._groupId}-label-${A}`}_getTabContentId(A){return`${this._groupId}-content-${A}`}_setTabBodyWrapperHeight(A){if(!this.dynamicHeight||!this._tabBodyWrapperHeight)return;let i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=A+"px")}_removeTabBodyWrapperHeight(){let A=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=A.clientHeight,A.style.height="",this.animationDone.emit()}_handleClick(A,i,n){i.focusIndex=n,A.disabled||(this.selectedIndex=n)}_getTabIndex(A){let i=this._lastFocusedTabIndex??this.selectedIndex;return A===i?0:-1}_tabFocusChanged(A,i){A&&A!=="mouse"&&A!=="touch"&&(this._tabHeader.focusIndex=i)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-tab-group"]],contentQueries:function(i,n,o){if(i&1&&gi(o,vf,5),i&2){let r;de(r=Be())&&(n._allTabs=r)}},viewQuery:function(i,n){if(i&1&&(st(wOA,5),st(yOA,5)),i&2){let o;de(o=Be())&&(n._tabBodyWrapper=o.first),de(o=Be())&&(n._tabHeader=o.first)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(i,n){i&2&&(Ke("mat-align-tabs",n.alignTabs),Ro("mat-"+(n.color||"primary")),mo("--mat-tab-animation-duration",n.animationDuration),he("mat-mdc-tab-group-dynamic-height",n.dynamicHeight)("mat-mdc-tab-group-inverted-header",n.headerPosition==="below")("mat-mdc-tab-group-stretch-tabs",n.stretchTabs))},inputs:{color:"color",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",ge],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",ge],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",ge],selectedIndex:[2,"selectedIndex","selectedIndex",en],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",en],disablePagination:[2,"disablePagination","disablePagination",ge],disableRipple:[2,"disableRipple","disableRipple",ge],preserveContent:[2,"preserveContent","preserveContent",ge],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[ut([{provide:YcA,useExisting:t}])],ngContentSelectors:XK,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","mat-mdc-tab-body-active","class","content","position","origin","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","id","content","position","origin","animationDuration","preserveContent"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"mat-tab-header",3,0),mA("indexFocused",function(s){return QA(o),uA(n._focusChanged(s))})("selectFocusedIndex",function(s){return QA(o),uA(n.selectedIndex=s)}),dn(2,kOA,8,17,"div",4,zn),N(),FA(4,SOA,1,0),S(5,"div",5,1),dn(7,ROA,1,13,"mat-tab-body",6,zn),N()}i&2&&(yA("selectedIndex",n.selectedIndex||0)("disableRipple",n.disableRipple)("disablePagination",n.disablePagination)("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby),_(2),Bn(n._tabs),_(2),_A(n._isServer?4:-1),_(),he("_mat-animation-noopable",n._animationMode==="NoopAnimations"),_(2),Bn(n._tabs))},dependencies:[UOA,TcA,Mz,Xs,wa,HcA],styles:['.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mdc-secondary-navigation-tab-container-height, 48px);font-family:var(--mat-tab-header-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-header-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-header-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-header-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-header-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-tab-indicator-active-indicator-height, 2px);border-radius:var(--mdc-tab-indicator-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2})}return t})(),WK=class{index;tab};var b7=new eA("LOGO_COMPONENT");function OOA(t,e){t&1&&TA(0,"div",6)}function zOA(t,e){if(t&1&&(S(0,"div",3)(1,"div",5),dn(2,OOA,1,0,"div",6,AB),N(),S(4,"span",7),AA(5),N(),S(6,"div",8),AA(7),S(8,"span",9),AA(9),N()(),S(10,"div",10)(11,"div",11),AA(12),N()()()),t&2){let A=e.$implicit,i=Y();_(2),Bn(i.getArray(A.level)),_(3),Bt(" ",i.getSpanIcon(A.span.name)," "),_(),mo("width",400-A.level*20,"px"),_(),Bt(" ",A.span.name," "),_(2),Bt(" (",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms) "),_(2),mo("left",i.getRelativeStart(A.span),"%")("width",i.getRelativeWidth(A.span),"%"),_(),Bt(" ",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms ")}}var k7=class t{constructor(e,A){this.dialogRef=e;this.data=A}tree=[];baseStartTimeMs=0;totalDurationMs=1;flatTree=[];traceLabelIconMap=new Map([["Invocation","start"],["agent_run","directions_run"],["invoke_agent","directions_run"],["tool","build"],["call_llm","chat"]]);ngOnInit(){this.tree=this.buildSpanTree(this.data.spans),this.flatTree=this.flattenTree(this.tree);let e=this.getGlobalTimes(this.data.spans);this.baseStartTimeMs=e.start,this.totalDurationMs=e.duration}buildSpanTree(e){let A=e.map(o=>sA({},o)),i=new Map,n=[];return A.forEach(o=>i.set(o.span_id,o)),A.forEach(o=>{if(o.parent_span_id&&i.has(o.parent_span_id)){let r=i.get(o.parent_span_id);r.children=r.children||[],r.children.push(o)}else n.push(o)}),n}getGlobalTimes(e){let A=Math.min(...e.map(n=>this.toMs(n.start_time))),i=Math.max(...e.map(n=>this.toMs(n.end_time)));return{start:A,duration:i-A}}toMs(e){return e/1e6}getRelativeStart(e){return(this.toMs(e.start_time)-this.baseStartTimeMs)/this.totalDurationMs*100}getRelativeWidth(e){return(this.toMs(e.end_time)-this.toMs(e.start_time))/this.totalDurationMs*100}flattenTree(e,A=0){return e.flatMap(n=>[{span:n,level:A},...n.children?this.flattenTree(n.children,A+1):[]])}getSpanIcon(e){for(let[A,i]of this.traceLabelIconMap.entries())if(e.startsWith(A))return i;return"start"}getArray(e){return Array.from({length:e})}static \u0275fac=function(A){return new(A||t)(Ge(fr),Ge(Cs))};static \u0275cmp=jA({type:t,selectors:[["app-trace-chart"]],decls:9,vars:1,consts:[["mat-dialog-title",""],[2,"margin-top","8px"],[1,"trace-container"],[1,"trace-row"],["mat-button","","mat-dialog-close",""],[1,"trace-indent"],[1,"indent-connector"],[1,"material-symbols-outlined",2,"margin-right","8px"],[1,"trace-label"],[1,"trace-duration"],[1,"trace-bar-container"],[1,"trace-bar"]],template:function(A,i){A&1&&(S(0,"h2",0),AA(1),N(),S(2,"mat-dialog-content",1)(3,"div",2),dn(4,zOA,13,10,"div",3,zn),N()(),S(6,"mat-dialog-actions")(7,"button",4),AA(8,"Close"),N()()),A&2&&(_(),Bt("Invocation ",i.data.invocId,""),_(3),Bn(i.flatTree))},dependencies:[Ls,ya,va,dr,bl],styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-label[_ngcontent-%COMP%]{width:400px;color:var(--trace-chart-trace-label-color);text-overflow:ellipsis;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px}.trace-bar-container[_ngcontent-%COMP%]{width:50vw;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:var(--trace-chart-trace-bar-background-color);border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:var(--trace-chart-trace-bar-color);font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:var(--trace-chart-trace-duration-color);font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:var(--trace-chart-vertical-line-background-color)}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:var(--trace-chart-horizontal-line-background-color)}"]})};var POA=["button"],jOA=["*"];function qOA(t,e){if(t&1&&(S(0,"div",2),TA(1,"mat-pseudo-checkbox",6),N()),t&2){let A=Y();_(),yA("disabled",A.disabled)}}var OcA=new eA("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:VOA});function VOA(){return{hideSingleSelectionIndicator:!1,hideMultipleSelectionIndicator:!1,disabledInteractive:!1}}var zcA=new eA("MatButtonToggleGroup"),ZOA={provide:bc,useExisting:Ur(()=>AU),multi:!0},S7=class{source;value;constructor(e,A){this.source=e,this.value=A}},AU=(()=>{class t{_changeDetector=f(Et);_dir=f(po,{optional:!0});_multiple=!1;_disabled=!1;_disabledInteractive=!1;_selectionModel;_rawValue;_controlValueAccessorChangeFn=()=>{};_onTouched=()=>{};_buttonToggles;appearance;get name(){return this._name}set name(A){this._name=A,this._markButtonsForCheck()}_name=f(an).getId("mat-button-toggle-group-");vertical;get value(){let A=this._selectionModel?this._selectionModel.selected:[];return this.multiple?A.map(i=>i.value):A[0]?A[0].value:void 0}set value(A){this._setSelectionByValue(A),this.valueChange.emit(this.value)}valueChange=new YA;get selected(){let A=this._selectionModel?this._selectionModel.selected:[];return this.multiple?A:A[0]||null}get multiple(){return this._multiple}set multiple(A){this._multiple=A,this._markButtonsForCheck()}get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._markButtonsForCheck()}get disabledInteractive(){return this._disabledInteractive}set disabledInteractive(A){this._disabledInteractive=A,this._markButtonsForCheck()}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}change=new YA;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(A){this._hideSingleSelectionIndicator=A,this._markButtonsForCheck()}_hideSingleSelectionIndicator;get hideMultipleSelectionIndicator(){return this._hideMultipleSelectionIndicator}set hideMultipleSelectionIndicator(A){this._hideMultipleSelectionIndicator=A,this._markButtonsForCheck()}_hideMultipleSelectionIndicator;constructor(){let A=f(OcA,{optional:!0});this.appearance=A&&A.appearance?A.appearance:"standard",this.hideSingleSelectionIndicator=A?.hideSingleSelectionIndicator??!1,this.hideMultipleSelectionIndicator=A?.hideMultipleSelectionIndicator??!1}ngOnInit(){this._selectionModel=new P2(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(A=>A.checked)),this.multiple||this._initializeTabIndex()}writeValue(A){this.value=A,this._changeDetector.markForCheck()}registerOnChange(A){this._controlValueAccessorChangeFn=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A}_keydown(A){if(this.multiple||this.disabled)return;let n=A.target.id,o=this._buttonToggles.toArray().findIndex(s=>s.buttonId===n),r=null;switch(A.keyCode){case 32:case 13:r=this._buttonToggles.get(o)||null;break;case 38:r=this._getNextButton(o,-1);break;case 37:r=this._getNextButton(o,this.dir==="ltr"?-1:1);break;case 40:r=this._getNextButton(o,1);break;case 39:r=this._getNextButton(o,this.dir==="ltr"?1:-1);break;default:return}r&&(A.preventDefault(),r._onButtonClick(),r.focus())}_emitChangeEvent(A){let i=new S7(A,this.value);this._rawValue=i.value,this._controlValueAccessorChangeFn(i.value),this.change.emit(i)}_syncButtonToggle(A,i,n=!1,o=!1){!this.multiple&&this.selected&&!A.checked&&(this.selected.checked=!1),this._selectionModel?i?this._selectionModel.select(A):this._selectionModel.deselect(A):o=!0,o?Promise.resolve().then(()=>this._updateModelValue(A,n)):this._updateModelValue(A,n)}_isSelected(A){return this._selectionModel&&this._selectionModel.isSelected(A)}_isPrechecked(A){return typeof this._rawValue>"u"?!1:this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some(i=>A.value!=null&&i===A.value):A.value===this._rawValue}_initializeTabIndex(){if(this._buttonToggles.forEach(A=>{A.tabIndex=-1}),this.selected)this.selected.tabIndex=0;else for(let A=0;Athis._selectValue(n,i))):(this._clearSelection(),this._selectValue(A,i)),!this.multiple&&i.every(n=>n.tabIndex===-1)){for(let n of i)if(!n.disabled){n.tabIndex=0;break}}}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(A=>{A.checked=!1,this.multiple||(A.tabIndex=-1)})}_selectValue(A,i){for(let n of i)if(n.value===A){n.checked=!0,this._selectionModel.select(n),this.multiple||(n.tabIndex=0);break}}_updateModelValue(A,i){i&&this._emitChangeEvent(A),this.valueChange.emit(this.value)}_markButtonsForCheck(){this._buttonToggles?.forEach(A=>A._markForCheck())}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["mat-button-toggle-group"]],contentQueries:function(i,n,o){if(i&1&&gi(o,eU,5),i&2){let r;de(r=Be())&&(n._buttonToggles=r)}},hostAttrs:[1,"mat-button-toggle-group"],hostVars:6,hostBindings:function(i,n){i&1&&mA("keydown",function(r){return n._keydown(r)}),i&2&&(Ke("role",n.multiple?"group":"radiogroup")("aria-disabled",n.disabled),he("mat-button-toggle-vertical",n.vertical)("mat-button-toggle-group-appearance-standard",n.appearance==="standard"))},inputs:{appearance:"appearance",name:"name",vertical:[2,"vertical","vertical",ge],value:"value",multiple:[2,"multiple","multiple",ge],disabled:[2,"disabled","disabled",ge],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",ge],hideMultipleSelectionIndicator:[2,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",ge]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],features:[ut([ZOA,{provide:zcA,useExisting:t}])]})}return t})(),eU=(()=>{class t{_changeDetectorRef=f(Et);_elementRef=f(se);_focusMonitor=f(Jr);_idGenerator=f(an);_animationMode=f(_i,{optional:!0});_checked=!1;ariaLabel;ariaLabelledby=null;_buttonElement;buttonToggleGroup;get buttonId(){return`${this.id}-button`}id;name;value;get tabIndex(){return this._tabIndex}set tabIndex(A){A!==this._tabIndex&&(this._tabIndex=A,this._markForCheck())}_tabIndex;disableRipple;get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(A){this._appearance=A}_appearance;get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(A){A!==this._checked&&(this._checked=A,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(A){this._disabled=A}_disabled=!1;get disabledInteractive(){return this._disabledInteractive||this.buttonToggleGroup!==null&&this.buttonToggleGroup.disabledInteractive}set disabledInteractive(A){this._disabledInteractive=A}_disabledInteractive;change=new YA;constructor(){f(Pn).load(Yr);let A=f(zcA,{optional:!0}),i=f(new Wr("tabindex"),{optional:!0})||"",n=f(OcA,{optional:!0});this._tabIndex=parseInt(i)||0,this.buttonToggleGroup=A,this.appearance=n&&n.appearance?n.appearance:"standard",this.disabledInteractive=n?.disabledInteractive??!1}ngOnInit(){let A=this.buttonToggleGroup;this.id=this.id||this._idGenerator.getId("mat-button-toggle-"),A&&(A._isPrechecked(this)?this.checked=!0:A._isSelected(this)!==this._checked&&A._syncButtonToggle(this,this._checked))}ngAfterViewInit(){this._animationMode!=="NoopAnimations"&&this._elementRef.nativeElement.classList.add("mat-button-toggle-animations-enabled"),this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){let A=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),A&&A._isSelected(this)&&A._syncButtonToggle(this,!1,!1,!0)}focus(A){this._buttonElement.nativeElement.focus(A)}_onButtonClick(){if(this.disabled)return;let A=this.isSingleSelector()?!0:!this._checked;if(A!==this._checked&&(this._checked=A,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.isSingleSelector()){let i=this.buttonToggleGroup._buttonToggles.find(n=>n.tabIndex===0);i&&(i.tabIndex=-1),this.tabIndex=0}this.change.emit(new S7(this,this.value))}_markForCheck(){this._changeDetectorRef.markForCheck()}_getButtonName(){return this.isSingleSelector()?this.buttonToggleGroup.name:this.name||null}isSingleSelector(){return this.buttonToggleGroup&&!this.buttonToggleGroup.multiple}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-button-toggle"]],viewQuery:function(i,n){if(i&1&&st(POA,5),i&2){let o;de(o=Be())&&(n._buttonElement=o.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:14,hostBindings:function(i,n){i&1&&mA("focus",function(){return n.focus()}),i&2&&(Ke("aria-label",null)("aria-labelledby",null)("id",n.id)("name",null),he("mat-button-toggle-standalone",!n.buttonToggleGroup)("mat-button-toggle-checked",n.checked)("mat-button-toggle-disabled",n.disabled)("mat-button-toggle-disabled-interactive",n.disabledInteractive)("mat-button-toggle-appearance-standard",n.appearance==="standard"))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[2,"disableRipple","disableRipple",ge],appearance:"appearance",checked:[2,"checked","checked",ge],disabled:[2,"disabled","disabled",ge],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge]},outputs:{change:"change"},exportAs:["matButtonToggle"],ngContentSelectors:jOA,decls:7,vars:13,consts:[["button",""],["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"click","id","disabled"],[1,"mat-button-toggle-checkbox-wrapper"],[1,"mat-button-toggle-label-content"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"],["state","checked","aria-hidden","true","appearance","minimal",3,"disabled"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"button",1,0),mA("click",function(){return QA(o),uA(n._onButtonClick())}),FA(2,qOA,2,1,"div",2),S(3,"span",3),Ue(4),N()(),TA(5,"span",4)(6,"span",5)}if(i&2){let o=Cr(1);yA("id",n.buttonId)("disabled",n.disabled&&!n.disabledInteractive||null),Ke("role",n.isSingleSelector()?"radio":"button")("tabindex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("aria-pressed",n.isSingleSelector()?null:n.checked)("aria-checked",n.isSingleSelector()?n.checked:null)("name",n._getButtonName())("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),_(2),_A(n.buttonToggleGroup&&(!n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideSingleSelectionIndicator||n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideMultipleSelectionIndicator)?2:-1),_(4),yA("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)}},dependencies:[Xs,Lk],styles:[".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0);border-radius:var(--mat-legacy-button-toggle-shape)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}@media(forced-colors: active){.mat-button-toggle-standalone,.mat-button-toggle-group{outline:solid 1px}}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,.mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}@media(forced-colors: active){.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{outline:0}}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-legacy-button-toggle-text-color);font-family:var(--mat-legacy-button-toggle-label-text-font);font-size:var(--mat-legacy-button-toggle-label-text-size);line-height:var(--mat-legacy-button-toggle-label-text-line-height);font-weight:var(--mat-legacy-button-toggle-label-text-weight);letter-spacing:var(--mat-legacy-button-toggle-label-text-tracking);--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-legacy-button-toggle-selected-state-text-color)}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-legacy-button-toggle-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle-checkbox-wrapper{display:inline-block;justify-content:flex-start;align-items:center;width:0;height:18px;line-height:18px;overflow:hidden;box-sizing:border-box;position:absolute;top:50%;left:16px;transform:translate3d(0, -50%, 0)}[dir=rtl] .mat-button-toggle-checkbox-wrapper{left:auto;right:16px}.mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:12px}[dir=rtl] .mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:auto;right:12px}.mat-button-toggle-checked .mat-button-toggle-checkbox-wrapper{width:18px}.mat-button-toggle-animations-enabled .mat-button-toggle-checkbox-wrapper{transition:width 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-checkbox-wrapper{transition:none}.mat-button-toggle-checked{color:var(--mat-legacy-button-toggle-selected-state-text-color);background-color:var(--mat-legacy-button-toggle-selected-state-background-color)}.mat-button-toggle-disabled{pointer-events:none;color:var(--mat-legacy-button-toggle-disabled-state-text-color);background-color:var(--mat-legacy-button-toggle-disabled-state-background-color);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-legacy-button-toggle-disabled-state-text-color)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-legacy-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-disabled-interactive{pointer-events:auto}.mat-button-toggle-appearance-standard{color:var(--mat-standard-button-toggle-text-color, var(--mat-sys-on-surface));background-color:var(--mat-standard-button-toggle-background-color, transparent);font-family:var(--mat-standard-button-toggle-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-standard-button-toggle-label-text-size, var(--mat-sys-label-large-size));line-height:var(--mat-standard-button-toggle-label-text-line-height, var(--mat-sys-label-large-line-height));font-weight:var(--mat-standard-button-toggle-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mat-standard-button-toggle-label-text-tracking, var(--mat-sys-label-large-tracking))}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container));background-color:var(--mat-standard-button-toggle-selected-state-background-color, var(--mat-sys-secondary-container))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-standard-button-toggle-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-state-background-color, transparent)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-selected-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-standard-button-toggle-state-layer-color, var(--mat-sys-on-surface))}.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-button-toggle-appearance-standard.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}@media(hover: none){.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-legacy-button-toggle-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-standard-button-toggle-height, 40px)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-legacy-button-toggle-state-layer-color)}@media(forced-colors: active){.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-animations-enabled .mat-button-toggle-button{transition:padding 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-button{transition:none}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}.mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:30px}[dir=rtl] .mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:0;padding-right:30px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{--mat-focus-indicator-border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}"],encapsulation:2,changeDetection:0})}return t})();var WOA=["*"],XOA='.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item{display:flex;position:relative;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer;padding-left:16px;padding-right:16px;background-color:var(--mdc-list-list-item-container-color, transparent);border-radius:var(--mdc-list-list-item-container-shape, var(--mat-sys-corner-none))}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item:focus{outline:0}.mdc-list-item.mdc-list-item--disabled{cursor:auto}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mdc-list-list-item-one-line-container-height, 48px)}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mdc-list-list-item-two-line-container-height, 64px)}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height, 88px)}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--selected::before,.mdc-list-item.mdc-list-item--selected:focus::before,.mdc-list-item:not(.mdc-list-item--selected):focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;content:"";pointer-events:none}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color, var(--mat-sys-on-surface-variant));width:var(--mdc-list-list-item-leading-icon-size, 24px);height:var(--mdc-list-list-item-leading-icon-size, 24px);margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mdc-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size, 40px);height:var(--mdc-list-list-item-leading-avatar-size, 40px);margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item--with-leading-avatar .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font, var(--mat-sys-label-small-font));line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height, var(--mat-sys-label-small-line-height));font-size:var(--mdc-list-list-item-trailing-supporting-text-size, var(--mat-sys-label-small-size));font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight, var(--mat-sys-label-small-weight));letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking, var(--mat-sys-label-small-tracking))}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color, var(--mat-sys-on-surface-variant));width:var(--mdc-list-list-item-trailing-icon-size, 24px);height:var(--mdc-list-list-item-trailing-icon-size, 24px)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color, var(--mat-sys-on-surface-variant))}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color, var(--mat-sys-primary))}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:var(--mdc-list-list-item-label-text-color, var(--mat-sys-on-surface));font-family:var(--mdc-list-list-item-label-text-font, var(--mat-sys-body-large-font));line-height:var(--mdc-list-list-item-label-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mdc-list-list-item-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-list-list-item-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-list-list-item-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;color:var(--mdc-list-list-item-supporting-text-color, var(--mat-sys-on-surface-variant));font-family:var(--mdc-list-list-item-supporting-text-font, var(--mat-sys-body-medium-font));line-height:var(--mdc-list-list-item-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mdc-list-list-item-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mdc-list-list-item-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mdc-list-list-item-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:16px}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:16px;padding-right:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-trailing-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:0;padding-right:0}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-webkit-user-select:none;user-select:none;margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;line-height:normal;align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-left:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-right:0}.mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-group__subheader{margin:.75rem 16px}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text{opacity:var(--mdc-list-list-item-disabled-label-text-opacity, 0.3)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-disabled-leading-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-leading-icon-opacity, 0.38)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-disabled-trailing-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity, 0.38)}.mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing,[dir=rtl] .mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing{padding-left:0;padding-right:0}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mdc-list-list-item-disabled-label-text-opacity, 0.3)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mdc-list-list-item-leading-avatar-shape, var(--mat-sys-corner-full));background-color:var(--mdc-list-list-item-leading-avatar-color, var(--mat-sys-primary-container))}.mat-mdc-list-item-icon{font-size:var(--mdc-list-list-item-leading-icon-size, 24px)}@media(forced-colors: active){a.mdc-list-item--activated::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:"";opacity:0;pointer-events:none;border-radius:inherit}.mat-mdc-list-item>.mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-focus-indicator::before{content:""}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:start}mat-action-list button::-moz-focus-inner{border:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-inline-start:var(--mat-list-list-item-leading-icon-start-space, 16px);margin-inline-end:var(--mat-list-list-item-leading-icon-end-space, 16px)}.mat-mdc-nav-list .mat-mdc-list-item{border-radius:var(--mat-list-active-indicator-shape, var(--mat-sys-corner-full));--mat-focus-indicator-border-radius:var(--mat-list-active-indicator-shape, var(--mat-sys-corner-full))}.mat-mdc-nav-list .mat-mdc-list-item.mdc-list-item--activated{background-color:var(--mat-list-active-indicator-color, var(--mat-sys-secondary-container))}',$OA=["unscopedContent"],AzA=["text"],ezA=[[["","matListItemAvatar",""],["","matListItemIcon",""]],[["","matListItemTitle",""]],[["","matListItemLine",""]],"*",[["","matListItemMeta",""]],[["mat-divider"]]],tzA=["[matListItemAvatar],[matListItemIcon]","[matListItemTitle]","[matListItemLine]","*","[matListItemMeta]","mat-divider"];var izA=new eA("ListOption"),nzA=(()=>{class t{_elementRef=f(se);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matListItemTitle",""]],hostAttrs:[1,"mat-mdc-list-item-title","mdc-list-item__primary-text"]})}return t})(),ozA=(()=>{class t{_elementRef=f(se);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matListItemLine",""]],hostAttrs:[1,"mat-mdc-list-item-line","mdc-list-item__secondary-text"]})}return t})(),rzA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matListItemMeta",""]],hostAttrs:[1,"mat-mdc-list-item-meta","mdc-list-item__end"]})}return t})(),PcA=(()=>{class t{_listOption=f(izA,{optional:!0});constructor(){}_isAlignedAtStart(){return!this._listOption||this._listOption?._getTogglePosition()==="after"}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,hostVars:4,hostBindings:function(i,n){i&2&&he("mdc-list-item__start",n._isAlignedAtStart())("mdc-list-item__end",!n._isAlignedAtStart())}})}return t})(),szA=(()=>{class t extends PcA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matListItemAvatar",""]],hostAttrs:[1,"mat-mdc-list-item-avatar"],features:[lt]})}return t})(),azA=(()=>{class t extends PcA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matListItemIcon",""]],hostAttrs:[1,"mat-mdc-list-item-icon"],features:[lt]})}return t})(),czA=new eA("MAT_LIST_CONFIG"),tU=(()=>{class t{_isNonInteractive=!0;get disableRipple(){return this._disableRipple}set disableRipple(A){this._disableRipple=Ar(A)}_disableRipple=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=Ar(A)}_disabled=!1;_defaultOptions=f(czA,{optional:!0});static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,hostVars:1,hostBindings:function(i,n){i&2&&Ke("aria-disabled",n.disabled)},inputs:{disableRipple:"disableRipple",disabled:"disabled"}})}return t})(),gzA=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);_listBase=f(tU,{optional:!0});_platform=f(ni);_hostElement;_isButtonElement;_noopAnimations;_avatars;_icons;set lines(A){this._explicitLines=Zs(A,null),this._updateItemLines(!1)}_explicitLines=null;get disableRipple(){return this.disabled||this._disableRipple||this._noopAnimations||!!this._listBase?.disableRipple}set disableRipple(A){this._disableRipple=Ar(A)}_disableRipple=!1;get disabled(){return this._disabled||!!this._listBase?.disabled}set disabled(A){this._disabled=Ar(A)}_disabled=!1;_subscriptions=new Kt;_rippleRenderer=null;_hasUnscopedTextContent=!1;rippleConfig;get rippleDisabled(){return this.disableRipple||!!this.rippleConfig.disabled}constructor(){f(Pn).load(Yr);let A=f(ZI,{optional:!0}),i=f(_i,{optional:!0});this.rippleConfig=A||{},this._hostElement=this._elementRef.nativeElement,this._isButtonElement=this._hostElement.nodeName.toLowerCase()==="button",this._noopAnimations=i==="NoopAnimations",this._listBase&&!this._listBase._isNonInteractive&&this._initInteractiveListItem(),this._isButtonElement&&!this._hostElement.hasAttribute("type")&&this._hostElement.setAttribute("type","button")}ngAfterViewInit(){this._monitorProjectedLinesAndTitle(),this._updateItemLines(!0)}ngOnDestroy(){this._subscriptions.unsubscribe(),this._rippleRenderer!==null&&this._rippleRenderer._removeTriggerEvents()}_hasIconOrAvatar(){return!!(this._avatars.length||this._icons.length)}_initInteractiveListItem(){this._hostElement.classList.add("mat-mdc-list-item-interactive"),this._rippleRenderer=new EB(this,this._ngZone,this._hostElement,this._platform,f(Zt)),this._rippleRenderer.setupTriggerEvents(this._hostElement)}_monitorProjectedLinesAndTitle(){this._ngZone.runOutsideAngular(()=>{this._subscriptions.add(Hn(this._lines.changes,this._titles.changes).subscribe(()=>this._updateItemLines(!1)))})}_updateItemLines(A){if(!this._lines||!this._titles||!this._unscopedContent)return;A&&this._checkDomForUnscopedTextContent();let i=this._explicitLines??this._inferLinesFromContent(),n=this._unscopedContent.nativeElement;if(this._hostElement.classList.toggle("mat-mdc-list-item-single-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-one-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-two-lines",i===2),this._hostElement.classList.toggle("mdc-list-item--with-three-lines",i===3),this._hasUnscopedTextContent){let o=this._titles.length===0&&i===1;n.classList.toggle("mdc-list-item__primary-text",o),n.classList.toggle("mdc-list-item__secondary-text",!o)}else n.classList.remove("mdc-list-item__primary-text"),n.classList.remove("mdc-list-item__secondary-text")}_inferLinesFromContent(){let A=this._titles.length+this._lines.length;return this._hasUnscopedTextContent&&(A+=1),A}_checkDomForUnscopedTextContent(){this._hasUnscopedTextContent=Array.from(this._unscopedContent.nativeElement.childNodes).filter(A=>A.nodeType!==A.COMMENT_NODE).some(A=>!!(A.textContent&&A.textContent.trim()))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,contentQueries:function(i,n,o){if(i&1&&(gi(o,szA,4),gi(o,azA,4)),i&2){let r;de(r=Be())&&(n._avatars=r),de(r=Be())&&(n._icons=r)}},hostVars:4,hostBindings:function(i,n){i&2&&(Ke("aria-disabled",n.disabled)("disabled",n._isButtonElement&&n.disabled||null),he("mdc-list-item--disabled",n.disabled))},inputs:{lines:"lines",disableRipple:"disableRipple",disabled:"disabled"}})}return t})();var jcA=(()=>{class t extends tU{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-list"]],hostAttrs:[1,"mat-mdc-list","mat-mdc-list-base","mdc-list"],exportAs:["matList"],features:[ut([{provide:tU,useExisting:t}]),lt],ngContentSelectors:WOA,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},styles:[XOA],encapsulation:2,changeDetection:0})}return t})(),qcA=(()=>{class t extends gzA{_lines;_titles;_meta;_unscopedContent;_itemText;get activated(){return this._activated}set activated(A){this._activated=Ar(A)}_activated=!1;_getAriaCurrent(){return this._hostElement.nodeName==="A"&&this._activated?"page":null}_hasBothLeadingAndTrailing(){return this._meta.length!==0&&(this._avatars.length!==0||this._icons.length!==0)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-list-item"],["a","mat-list-item",""],["button","mat-list-item",""]],contentQueries:function(i,n,o){if(i&1&&(gi(o,ozA,5),gi(o,nzA,5),gi(o,rzA,5)),i&2){let r;de(r=Be())&&(n._lines=r),de(r=Be())&&(n._titles=r),de(r=Be())&&(n._meta=r)}},viewQuery:function(i,n){if(i&1&&(st($OA,5),st(AzA,5)),i&2){let o;de(o=Be())&&(n._unscopedContent=o.first),de(o=Be())&&(n._itemText=o.first)}},hostAttrs:[1,"mat-mdc-list-item","mdc-list-item"],hostVars:13,hostBindings:function(i,n){i&2&&(Ke("aria-current",n._getAriaCurrent()),he("mdc-list-item--activated",n.activated)("mdc-list-item--with-leading-avatar",n._avatars.length!==0)("mdc-list-item--with-leading-icon",n._icons.length!==0)("mdc-list-item--with-trailing-meta",n._meta.length!==0)("mat-mdc-list-item-both-leading-and-trailing",n._hasBothLeadingAndTrailing())("_mat-animation-noopable",n._noopAnimations))},inputs:{activated:"activated"},exportAs:["matListItem"],features:[lt],ngContentSelectors:tzA,decls:10,vars:0,consts:[["unscopedContent",""],[1,"mdc-list-item__content"],[1,"mat-mdc-list-item-unscoped-content",3,"cdkObserveContent"],[1,"mat-focus-indicator"]],template:function(i,n){if(i&1){let o=me();$t(ezA),Ue(0),S(1,"span",1),Ue(2,1),Ue(3,2),S(4,"span",2,0),mA("cdkObserveContent",function(){return QA(o),uA(n._updateItemLines(!0))}),Ue(6,3),N()(),Ue(7,4),Ue(8,5),TA(9,"div",3)}},dependencies:[e6],encapsulation:2,changeDetection:0})}return t})();var R7=class t{transform(e){if(e)return e.find(A=>A.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in A.attributes)?.attributes["gcp.vertex.agent.invocation_id"]}static \u0275fac=function(A){return new(A||t)};static \u0275pipe=$d({name:"invocId",type:t,pure:!0})};function lzA(t,e){t&1&&(S(0,"p"),AA(1,"Conversations"),N())}function IzA(t,e){t&1&&(S(0,"p"),AA(1,"Trace"),N())}function CzA(t,e){t&1&&(S(0,"mat-button-toggle",7),AA(1,"Trace"),N())}function dzA(t,e){if(t&1){let A=me();S(0,"mat-button-toggle-group",5),Xa("ngModelChange",function(n){QA(A);let o=Y(2);return Wa(o.view,n)||(o.view=n),uA(n)}),S(1,"mat-button-toggle",6),AA(2,"Events"),N(),FA(3,CzA,2,0,"mat-button-toggle",7),eo(4,"async"),N()}if(t&2){let A=Y(2);Za("ngModel",A.view),_(3),_A(Yo(4,2,A.isTraceEnabledObs)?3:-1)}}function BzA(t,e){if(t&1){let A=me();S(0,"mat-list-item",8),mA("click",function(){let n=QA(A).$implicit,o=Y(3);return uA(o.selectEvent(n.key))}),S(1,"span",9),AA(2),N(),S(3,"span",10),AA(4),N()()}if(t&2){let A=e.$implicit,i=e.$index;_(2),tt(i),_(2),tt(A.value.title)}}function EzA(t,e){if(t&1&&(S(0,"mat-list",4),dn(1,BzA,5,2,"mat-list-item",null,zn),eo(3,"keyvalue"),N()),t&2){let A=Y(2);_(),Bn(_u(3,0,A.eventsMap(),A.mapOrderPreservingSort))}}function QzA(t,e){if(t&1){let A=me();S(0,"mat-list-item",8),mA("click",function(){let n=QA(A).$implicit,o=Y(3);return uA(o.openDialog(n.key))}),S(1,"span",9),AA(2),N(),S(3,"span"),AA(4),eo(5,"invocId"),N()()}if(t&2){let A=e.$implicit,i=e.$index;_(2),tt(i),_(2),Bt("Invocation ",Yo(5,2,A.value),"")}}function uzA(t,e){if(t&1&&(S(0,"mat-list",4),dn(1,QzA,6,4,"mat-list-item",null,zn),eo(3,"keyvalue"),N()),t&2){let A=Y(2);_(),Bn(_u(3,0,A.spansByTraceId(),A.mapOrderPreservingSort))}}function hzA(t,e){if(t&1&&(S(0,"div",1)(1,"div",2),FA(2,lzA,2,0,"p")(3,IzA,2,0,"p")(4,dzA,5,4,"mat-button-toggle-group",3),N(),FA(5,EzA,4,3,"mat-list",4)(6,uzA,4,3,"mat-list",4),N()),t&2){let A=Y();_(2),_A(A.isTraceView()?-1:2),_(),_A(A.isTraceView()?3:-1),_(),_A(A.traceData().length>0?4:-1),_(),_A(A.isTraceView()?-1:5),_(),_A(A.isTraceView()?6:-1)}}function fzA(t,e){t&1&&(S(0,"div")(1,"p"),AA(2,"No conversations"),N()())}var TQ=class t{eventsMap=bs(new Map);traceData=bs([]);selectedEvent=new YA;dialog=f(Fc);featureFlagService=f(Gc);view=Ao("events");isTraceView=Mc(()=>this.view()==="trace");spansByTraceId=Mc(()=>!this.traceData()||this.traceData().length==0?new Map:this.traceData().reduce((e,A)=>{let i=A.trace_id,n=e.get(i);return n?(A.invoc_id=A.attributes?.["gcp.vertex.agent.invocation_id"],n.push(A),n.sort((o,r)=>o.start_time-r.start_time)):e.set(i,[A]),e},new Map));showJson=Array(this.eventsMap().size).fill(!1);isTraceEnabledObs=this.featureFlagService.isTraceEnabled();toggleJson(e){this.showJson[e]=!this.showJson[e]}selectEvent(e){this.selectedEvent.emit(e)}mapOrderPreservingSort=(e,A)=>0;findInvocId(e){return e.find(A=>A.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in A.attributes)?.attributes["gcp.vertex.agent.invocation_id"]}openDialog(e){let A=this.spansByTraceId().get(e);if(!A)return;let i=this.dialog.open(k7,{width:"auto",maxWidth:"90vw",data:{spans:A,invocId:this.findInvocId(A)}})}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-event-tab"]],inputs:{eventsMap:[1,"eventsMap"],traceData:[1,"traceData"]},outputs:{selectedEvent:"selectedEvent"},decls:3,vars:2,consts:[[1,"events-wrapper"],[1,"events-container"],[1,"event-header"],["name","fontStyle","aria-label","Font Style",2,"scale","0.8",3,"ngModel"],[1,"event-list"],["name","fontStyle","aria-label","Font Style",2,"scale","0.8",3,"ngModelChange","ngModel"],["value","events"],["value","trace"],[3,"click"],[1,"event-index"],[1,"event-title"]],template:function(A,i){A&1&&(S(0,"div",0),FA(1,hzA,7,5,"div",1)(2,fzA,3,0,"div"),N()),A&2&&(_(),_A(i.eventsMap().size>0?1:-1),_(),_A(i.eventsMap().size==0?2:-1))},dependencies:[AU,Mr,Ss,tc,eU,jcA,qcA,Ou,R7,Qg],styles:[".events-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;color:var(--event-tab-events-wrapper-color);font-size:14px;font-weight:700}.event-index[_ngcontent-%COMP%]{color:var(--event-tab-event-index-color);font-family:Roboto;font-size:14px;font-style:normal;font-weight:400;margin-right:10px}.event-title[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}.spacer[_ngcontent-%COMP%]{flex:1 1 auto}.events-container[_ngcontent-%COMP%]{margin-top:20px}.event-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;margin-top:20px}.function-event-button[_ngcontent-%COMP%]{margin-top:11px}.event-list[_ngcontent-%COMP%]{--mat-list-active-indicator-color: var(--event-tab-event-list-active-indicator-color)}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-container-color: var(--event-tab-event-list-list-item-container-color)}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-label-text-size: 14px}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-label-text-weight: 400}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-one-line-container-height: 52px}[_nghost-%COMP%] .mdc-list-item{border:1px solid var(--event-tab-mdc-list-item-border-color);cursor:pointer}[_nghost-%COMP%] .mdc-list-item:hover{background-color:var(--event-tab-mdc-list-item-hover-background-color)}.event-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"]})};function mzA(t,e){if(t&1){let A=me();S(0,"div",3),mA("click",function(){let n=QA(A).$implicit,o=Y();return uA(o.getSession(n.id))}),S(1,"div",4)(2,"div",5),AA(3),N(),S(4,"div",6),AA(5),N()()()}if(t&2){let A=e.$implicit,i=Y();yA("ngClass",A.id===i.sessionId?"session-item current":"session-item"),_(3),Bt(" ",A.id," "),_(2),tt(i.getDate(A))}}var HQ=class t{userId="";appName="";sessionId="";sessionSelected=new YA;sessionReloaded=new YA;sessionList=[];refreshSessionsSubject=new qA;changeDetectorRef=f(Et);sessionService=f(A1);constructor(){this.refreshSessionsSubject.pipe($n(()=>this.sessionService.listSessions(this.userId,this.appName))).subscribe(e=>{e=e.sort((A,i)=>Number(i.lastUpdateTime)-Number(A.lastUpdateTime)),this.sessionList=e,this.changeDetectorRef.detectChanges()})}ngOnInit(){setTimeout(()=>{this.refreshSessionsSubject.next()},500)}getSession(e){this.sessionService.getSession(this.userId,this.appName,e).subscribe(A=>{let i=this.fromApiResultToSession(A);this.sessionSelected.emit(i)})}getDate(e){let A=e.lastUpdateTime;return new Date(A*1e3).toLocaleString()}fromApiResultToSession(e){return{id:e?.id??"",appName:e?.appName??"",userId:e?.userId??"",state:e?.state??[],events:e?.events??[]}}reloadSession(e){this.sessionService.getSession(this.userId,this.appName,e).subscribe(A=>{let i=this.fromApiResultToSession(A);this.sessionReloaded.emit(i)})}refreshSession(e){if(this.refreshSessionsSubject.next(),!(this.sessionList.length<=1)){let A=this.sessionList.findIndex(i=>i.id==e);return A==this.sessionList.length-1&&(A=-1),this.sessionList[A+1]}}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-session-tab"]],inputs:{userId:"userId",appName:"appName",sessionId:"sessionId"},outputs:{sessionSelected:"sessionSelected",sessionReloaded:"sessionReloaded"},decls:4,vars:0,consts:[[1,"session-wrapper"],[1,"session-tab-container",2,"margin-top","16px"],[3,"ngClass"],[3,"click","ngClass"],[1,"session-info"],[1,"session-id"],[1,"session-date"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"div",1),dn(2,mzA,6,3,"div",2,zn),N()()),A&2&&(_(2),Bn(i.sessionList))},dependencies:[Vs],styles:[".session-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;color:var(--session-tab-session-wrapper-color);font-size:14px;font-weight:700}.session-item[_ngcontent-%COMP%]{display:flex;justify-content:space-between;border:none;background-color:var(--session-tab-session-item-background-color);border-radius:8px;margin-bottom:4px;cursor:pointer}.session-item[_ngcontent-%COMP%]:hover{background-color:var(--session-tab-session-item-hover-background-color)}.session-item.current[_ngcontent-%COMP%]{background-color:var(--session-tab-session-item-current-background-color)}.session-id[_ngcontent-%COMP%]{color:var(--session-tab-session-id-color);font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.session-date[_ngcontent-%COMP%]{color:var(--session-tab-session-date-color);font-family:Roboto;font-size:12px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.3px}.session-info[_ngcontent-%COMP%]{padding:11px}"]})};var L7=class t{sessionState={};constructor(){}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-state-tab"]],inputs:{sessionState:"sessionState"},decls:3,vars:1,consts:[[1,"state-wrapper"],[3,"json"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"div"),TA(2,"ngx-json-viewer",1),N()()),A&2&&(_(2),yA("json",i.sessionState))},dependencies:[Sl,X2],styles:[".state-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;margin-top:16px}"]})};var VcA=new eA("CdkAccordion");var ZcA=(()=>{class t{accordion=f(VcA,{optional:!0,skipSelf:!0});_changeDetectorRef=f(Et);_expansionDispatcher=f(b8);_openCloseAllSubscription=Kt.EMPTY;closed=new YA;opened=new YA;destroyed=new YA;expandedChange=new YA;id=f(an).getId("cdk-accordion-child-");get expanded(){return this._expanded}set expanded(A){if(this._expanded!==A){if(this._expanded=A,this.expandedChange.emit(A),A){this.opened.emit();let i=this.accordion?this.accordion.id:this.id;this._expansionDispatcher.notify(this.id,i)}else this.closed.emit();this._changeDetectorRef.markForCheck()}}_expanded=!1;disabled=!1;_removeUniqueSelectionListener=()=>{};constructor(){}ngOnInit(){this._removeUniqueSelectionListener=this._expansionDispatcher.listen((A,i)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===i&&this.id!==A&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(A=>{this.disabled||(this.expanded=A)})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[2,"expanded","expanded",ge],disabled:[2,"disabled","disabled",ge]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[ut([{provide:VcA,useValue:void 0}])]})}return t})();var pzA=["body"],DzA=["bodyWrapper"],wzA=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],yzA=["mat-expansion-panel-header","*","mat-action-row"];function vzA(t,e){}var MzA=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],bzA=["mat-panel-title","mat-panel-description","*"];function kzA(t,e){t&1&&(S(0,"span",1),ur(),S(1,"svg",2),TA(2,"path",3),N()())}var WcA=new eA("MAT_ACCORDION"),XcA=new eA("MAT_EXPANSION_PANEL"),SzA=(()=>{class t{_template=f(mn);_expansionPanel=f(XcA,{optional:!0});constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["ng-template","matExpansionPanelContent",""]]})}return t})(),$cA=new eA("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS"),iU=(()=>{class t extends ZcA{_viewContainerRef=f(Sn);_animationsDisabled=f(_i,{optional:!0})==="NoopAnimations";_document=f(at);_ngZone=f(ye);_elementRef=f(se);_renderer=f(qi);_cleanupTransitionEnd;get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(A){this._hideToggle=A}_hideToggle=!1;get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(A){this._togglePosition=A}_togglePosition;afterExpand=new YA;afterCollapse=new YA;_inputChanges=new qA;accordion=f(WcA,{optional:!0,skipSelf:!0});_lazyContent;_body;_bodyWrapper;_portal;_headerId=f(an).getId("mat-expansion-panel-header-");constructor(){super();let A=f($cA,{optional:!0});this._expansionDispatcher=f(b8),A&&(this.hideToggle=A.hideToggle)}_hasSpacing(){return this.accordion?this.expanded&&this.accordion.displayMode==="default":!1}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(On(null),Nt(()=>this.expanded&&!this._portal),Xn(1)).subscribe(()=>{this._portal=new Rs(this._lazyContent._template,this._viewContainerRef)}),this._setupAnimationEvents()}ngOnChanges(A){this._inputChanges.next(A)}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTransitionEnd?.(),this._inputChanges.complete()}_containsFocus(){if(this._body){let A=this._document.activeElement,i=this._body.nativeElement;return A===i||i.contains(A)}return!1}_transitionEndListener=({target:A,propertyName:i})=>{A===this._bodyWrapper?.nativeElement&&i==="grid-template-rows"&&this._ngZone.run(()=>{this.expanded?this.afterExpand.emit():this.afterCollapse.emit()})};_setupAnimationEvents(){this._ngZone.runOutsideAngular(()=>{this._animationsDisabled?(this.opened.subscribe(()=>this._ngZone.run(()=>this.afterExpand.emit())),this.closed.subscribe(()=>this._ngZone.run(()=>this.afterCollapse.emit()))):setTimeout(()=>{let A=this._elementRef.nativeElement;this._cleanupTransitionEnd=this._renderer.listen(A,"transitionend",this._transitionEndListener),A.classList.add("mat-expansion-panel-animations-enabled")},200)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-expansion-panel"]],contentQueries:function(i,n,o){if(i&1&&gi(o,SzA,5),i&2){let r;de(r=Be())&&(n._lazyContent=r.first)}},viewQuery:function(i,n){if(i&1&&(st(pzA,5),st(DzA,5)),i&2){let o;de(o=Be())&&(n._body=o.first),de(o=Be())&&(n._bodyWrapper=o.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:4,hostBindings:function(i,n){i&2&&he("mat-expanded",n.expanded)("mat-expansion-panel-spacing",n._hasSpacing())},inputs:{hideToggle:[2,"hideToggle","hideToggle",ge],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[ut([{provide:WcA,useValue:void 0},{provide:XcA,useExisting:t}]),lt,Xt],ngContentSelectors:yzA,decls:9,vars:4,consts:[["bodyWrapper",""],["body",""],[1,"mat-expansion-panel-content-wrapper"],["role","region",1,"mat-expansion-panel-content",3,"id"],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(i,n){i&1&&($t(wzA),Ue(0),S(1,"div",2,0)(3,"div",3,1)(5,"div",4),Ue(6,1),FA(7,vzA,0,0,"ng-template",5),N(),Ue(8,2),N()()),i&2&&(_(),Ke("inert",n.expanded?null:""),_(2),yA("id",n.id),Ke("aria-labelledby",n._headerId),_(4),yA("cdkPortalOutlet",n._portal))},dependencies:[wa],styles:[".mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden;position:relative;background:var(--mat-expansion-container-background-color, var(--mat-sys-surface));color:var(--mat-expansion-container-text-color, var(--mat-sys-on-surface));border-radius:var(--mat-expansion-container-shape, 12px)}.mat-expansion-panel.mat-expansion-panel-animations-enabled{transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape, 12px);border-top-left-radius:var(--mat-expansion-container-shape, 12px)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape, 12px);border-bottom-left-radius:var(--mat-expansion-container-shape, 12px)}@media(forced-colors: active){.mat-expansion-panel{outline:solid 1px}}.mat-expansion-panel-content-wrapper{display:grid;grid-template-rows:0fr;grid-template-columns:100%}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content-wrapper{transition:grid-template-rows 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{grid-template-rows:1fr}@supports not (grid-template-rows: 0fr){.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;min-height:0;visibility:hidden;font-family:var(--mat-expansion-container-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-expansion-container-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-expansion-container-text-weight, var(--mat-sys-body-large-weight));line-height:var(--mat-expansion-container-text-line-height, var(--mat-sys-body-large-line-height));letter-spacing:var(--mat-expansion-container-text-tracking, var(--mat-sys-body-large-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content{transition:visibility 190ms linear}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper>.mat-expansion-panel-content{visibility:visible}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color, var(--mat-sys-outline))}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}return t})();var AgA=(()=>{class t{panel=f(iU,{host:!0});_element=f(se);_focusMonitor=f(Jr);_changeDetectorRef=f(Et);_parentChangeSubscription=Kt.EMPTY;constructor(){f(Pn).load(Yr);let A=this.panel,i=f($cA,{optional:!0}),n=f(new Wr("tabindex"),{optional:!0}),o=A.accordion?A.accordion._stateChanges.pipe(Nt(r=>!!(r.hideToggle||r.togglePosition))):lr;this.tabIndex=parseInt(n||"")||0,this._parentChangeSubscription=Hn(A.opened,A.closed,o,A._inputChanges.pipe(Nt(r=>!!(r.hideToggle||r.disabled||r.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),A.closed.pipe(Nt(()=>A._containsFocus())).subscribe(()=>this._focusMonitor.focusVia(this._element,"program")),i&&(this.expandedHeight=i.expandedHeight,this.collapsedHeight=i.collapsedHeight)}expandedHeight;collapsedHeight;tabIndex=0;get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){let A=this._isExpanded();return A&&this.expandedHeight?this.expandedHeight:!A&&this.collapsedHeight?this.collapsedHeight:null}_keydown(A){switch(A.keyCode){case 32:case 13:sr(A)||(A.preventDefault(),this._toggle());break;default:this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(A);return}}focus(A,i){A?this._focusMonitor.focusVia(this._element,A,i):this._element.nativeElement.focus(i)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(A=>{A&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:13,hostBindings:function(i,n){i&1&&mA("click",function(){return n._toggle()})("keydown",function(r){return n._keydown(r)}),i&2&&(Ke("id",n.panel._headerId)("tabindex",n.disabled?-1:n.tabIndex)("aria-controls",n._getPanelId())("aria-expanded",n._isExpanded())("aria-disabled",n.panel.disabled),mo("height",n._getHeaderHeight()),he("mat-expanded",n._isExpanded())("mat-expansion-toggle-indicator-after",n._getTogglePosition()==="after")("mat-expansion-toggle-indicator-before",n._getTogglePosition()==="before"))},inputs:{expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight",tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:en(A)]},ngContentSelectors:bzA,decls:5,vars:3,consts:[[1,"mat-content"],[1,"mat-expansion-indicator"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 -960 960 960","aria-hidden","true","focusable","false"],["d","M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z"]],template:function(i,n){i&1&&($t(MzA),S(0,"span",0),Ue(1),Ue(2,1),Ue(3,2),N(),FA(4,kzA,3,0,"span",1)),i&2&&(he("mat-content-hide-toggle",!n._showToggle()),_(4),_A(n._showToggle()?4:-1))},styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;height:var(--mat-expansion-header-collapsed-state-height, 48px);font-family:var(--mat-expansion-header-text-font, var(--mat-sys-title-medium-font));font-size:var(--mat-expansion-header-text-size, var(--mat-sys-title-medium-size));font-weight:var(--mat-expansion-header-text-weight, var(--mat-sys-title-medium-weight));line-height:var(--mat-expansion-header-text-line-height, var(--mat-sys-title-medium-line-height));letter-spacing:var(--mat-expansion-header-text-tracking, var(--mat-sys-title-medium-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-header{transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header::before{border-radius:inherit}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height, 64px)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color, var(--mat-sys-surface))}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color, var(--mat-sys-on-surface))}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color, var(--mat-sys-on-surface-variant))}.mat-expansion-panel-animations-enabled .mat-expansion-indicator{transition:transform 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header.mat-expanded .mat-expansion-indicator{transform:rotate(180deg)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-legacy-header-indicator-display, none)}.mat-expansion-indicator svg{width:24px;height:24px;margin:0 -8px;vertical-align:middle;fill:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-header-indicator-display, inline-block)}@media(forced-colors: active){.mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}}'],encapsulation:2,changeDetection:0})}return t})();var egA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]})}return t})();function RzA(t,e){t&1&&TA(0,"div",8)}function LzA(t,e){if(t&1&&(S(0,"span",14),AA(1),N()),t&2){let A=Y().$implicit,i=Y();mo("left",i.getRelativeStart(A.span)+5,"%"),_(),Bt("",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms")}}function xzA(t,e){if(t&1){let A=me();S(0,"div",5),mA("click",function(){let n=QA(A).$implicit,o=Y();return uA(o.selectRow(n))})("mouseenter",function(){let n=QA(A).$implicit,o=Y();return uA(o.onHover(n))})("mouseleave",function(){QA(A);let n=Y();return uA(n.onHoverOut())}),S(1,"div",6)(2,"div",7),dn(3,RzA,1,0,"div",8,AB),N(),S(5,"span",9),AA(6),N(),S(7,"div",10),AA(8),N()(),S(9,"div",11)(10,"div",12),AA(11),N(),FA(12,LzA,2,3,"span",13),N()()}if(t&2){let A=e.$implicit,i=Y();he("selected",i.rowSelected(A)),_(3),Bn(i.getArray(A.level)),_(2),he("is-event-row",i.isEventRow(A)),_(),Bt(" ",i.getSpanIcon(A.span.name)," "),_(),mo("width",400-A.level*20,"px"),he("is-event-row",i.isEventRow(A)),_(),Bt(" ",A.span.name," "),_(2),mo("left",i.getRelativeStart(A.span),"%")("width",i.getRelativeWidth(A.span),"%"),_(),Bt(" ",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms "),_(),_A(i.getRelativeWidth(A.span)<10?12:-1)}}var x7=class t{spans=[];invocationId="";tree=[];eventData;baseStartTimeMs=0;totalDurationMs=1;flatTree=[];traceLabelIconMap=new Map([["Invocation","start"],["agent_run","directions_run"],["invoke_agent","directions_run"],["tool","build"],["call_llm","chat"]]);selectedRow=void 0;traceService=f(e1);constructor(){}ngOnInit(){this.tree=this.buildSpanTree(this.spans),this.flatTree=this.flattenTree(this.tree);let e=this.getGlobalTimes(this.spans);this.baseStartTimeMs=e.start,this.totalDurationMs=e.duration,this.traceService.selectedTraceRow$.subscribe(A=>this.selectedRow=A),this.traceService.eventData$.subscribe(A=>this.eventData=A)}buildSpanTree(e){let A=e.map(o=>sA({},o)),i=new Map,n=[];return A.forEach(o=>i.set(o.span_id,o)),A.forEach(o=>{if(o.parent_span_id&&i.has(o.parent_span_id)){let r=i.get(o.parent_span_id);r.children=r.children||[],r.children.push(o)}else n.push(o)}),n}getGlobalTimes(e){let A=Math.min(...e.map(n=>this.toMs(n.start_time))),i=Math.max(...e.map(n=>this.toMs(n.end_time)));return{start:A,duration:i-A}}toMs(e){return e/1e6}getRelativeStart(e){return(this.toMs(e.start_time)-this.baseStartTimeMs)/this.totalDurationMs*100}getRelativeWidth(e){return(this.toMs(e.end_time)-this.toMs(e.start_time))/this.totalDurationMs*100}flattenTree(e,A=0){return e.flatMap(n=>[{span:n,level:A},...n.children?this.flattenTree(n.children,A+1):[]])}getSpanIcon(e){for(let[A,i]of this.traceLabelIconMap.entries())if(e.startsWith(A))return i;return"start"}getArray(e){return Array.from({length:e})}selectRow(e){if(this.selectedRow&&this.selectedRow.span_id==e.span.span_id){this.traceService.selectedRow(void 0),this.traceService.setHoveredMessages(void 0,this.invocationId);return}this.traceService.selectedRow(e.span),this.traceService.setHoveredMessages(e.span,this.invocationId)}rowSelected(e){return this.selectedRow==e.span}isEventRow(e){if(!e.span.attributes)return!1;let A=e?.span.attributes["gcp.vertex.agent.event_id"];return!!(A&&this.eventData&&this.eventData.has(A))}onHover(e){this.traceService.setHoveredMessages(e.span,this.invocationId)}onHoverOut(){this.traceService.setHoveredMessages(void 0,this.invocationId),this.selectedRow&&this.traceService.setHoveredMessages(this.selectedRow,this.invocationId)}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-trace-tree"]],inputs:{spans:"spans",invocationId:"invocationId"},decls:8,vars:1,consts:[[2,"margin-top","15px"],[1,"invocation-id-container"],[1,"invocation-id"],[1,"trace-container"],[1,"trace-row",3,"selected"],[1,"trace-row",3,"click","mouseenter","mouseleave"],[1,"trace-row-left"],[1,"trace-indent"],[1,"indent-connector"],[1,"material-symbols-outlined",2,"margin-right","8px"],[1,"trace-label"],[1,"trace-bar-container"],[1,"trace-bar"],[1,"short-trace-bar-duration",3,"left"],[1,"short-trace-bar-duration"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"div",1),AA(2,"Invocation ID: "),S(3,"div",2),AA(4),N()(),S(5,"div",3),dn(6,xzA,13,16,"div",4,zn),N()()),A&2&&(_(4),tt(i.invocationId),_(2),Bn(i.flatTree))},styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-label[_ngcontent-%COMP%]{width:400px;color:var(--trace-tree-trace-label-color);font-family:Google Sans Mono,monospace;font-size:13px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.trace-bar-container[_ngcontent-%COMP%]{width:100%;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:var(--trace-tree-trace-bar-background-color);border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:var(--trace-tree-trace-bar-color);font-family:Google Sans}.short-trace-bar-duration[_ngcontent-%COMP%]{position:absolute;color:var(--trace-tree-short-trace-bar-duration-color)}.trace-duration[_ngcontent-%COMP%]{color:var(--trace-tree-trace-duration-color);font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px;align-items:center;cursor:pointer}.trace-row[_ngcontent-%COMP%]:hover{background-color:var(--trace-tree-trace-row-hover-background-color)}.trace-row.selected[_ngcontent-%COMP%]{background-color:var(--trace-tree-trace-row-selected-background-color)}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:var(--trace-tree-vertical-line-background-color)}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:var(--trace-tree-horizontal-line-background-color)}.trace-row-left[_ngcontent-%COMP%]{display:flex;width:50%}.invocation-id-container[_ngcontent-%COMP%]{color:var(--trace-tree-invocation-id-container-color);font-size:14px;font-style:normal;font-weight:700;line-height:20px;letter-spacing:0px;margin-bottom:5px}.invocation-id[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}.trace-row-left[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .trace-row-left[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{color:var(--trace-tree-trace-row-left-span-div-color)}.trace-row-left[_ngcontent-%COMP%] .is-event-row[_ngcontent-%COMP%]{color:var(--trace-tree-trace-row-left-is-event-row-color)}"]})};function NzA(t,e){if(t&1&&(S(0,"div",3)(1,"mat-expansion-panel")(2,"mat-expansion-panel-header")(3,"mat-panel-title"),AA(4),N()(),TA(5,"app-trace-tree",4),N()()),t&2){let A=e.$implicit,i=Y();_(4),Bt(" ",i.invocToUserMsg.get(A.key)," "),_(),yA("spans",A.value)("invocationId",i.findInvocIdFromTraceId(A.key))}}var N7=class t{traceData=[];invocTraces=new Map;invocToUserMsg=new Map;constructor(){}ngOnInit(){}ngOnChanges(e){"traceData"in e&&this.rebuildTrace()}rebuildTrace(){this.invocTraces=this.traceData.reduce((e,A)=>{let i=A.trace_id,n=e.get(i);return n?(n.push(A),n.sort((o,r)=>o.start_time-r.start_time)):e.set(i,[A]),e},new Map);for(let[e,A]of this.invocTraces)this.invocToUserMsg.set(e,this.findUserMsgFromInvocGroup(A))}getArray(e){return Array.from({length:e})}findUserMsgFromInvocGroup(e){let A=e?.find(o=>o.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in o.attributes);return A?JSON.parse(A.attributes["gcp.vertex.agent.llm_request"]).contents.filter(o=>o.role=="user").at(-1)?.parts[0]?.text??"[attachment]":"[no invocation id found]"}findInvocIdFromTraceId(e){return this.invocTraces.get(e)?.find(i=>i.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in i.attributes).attributes["gcp.vertex.agent.invocation_id"]}mapOrderPreservingSort=(e,A)=>0;static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-trace-tab"]],inputs:{traceData:"traceData"},features:[Xt],decls:7,vars:3,consts:[[2,"padding-left","25px","padding-right","25px"],["mat-dialog-title","",1,"trace-title"],[1,"trace-list-wrapper"],[1,"trace-item"],[3,"spans","invocationId"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2,"Invocations"),N(),S(3,"div",2),dn(4,NzA,6,3,"div",3,zn),eo(6,"keyvalue"),N()()),A&2&&(_(4),Bn(_u(6,0,i.invocTraces,i.mapOrderPreservingSort)))},dependencies:[Ls,iU,AgA,egA,x7,Ou],styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-title[_ngcontent-%COMP%]{color:var(--trace-tab-trace-title-color);font-size:14px;font-style:normal;font-weight:700;line-height:20px;letter-spacing:0px}.trace-label[_ngcontent-%COMP%]{width:400px;color:var(--trace-tab-trace-label-color);text-overflow:ellipsis;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px}.trace-bar-container[_ngcontent-%COMP%]{width:50vw;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:var(--trace-tab-trace-bar-background-color);border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:var(--trace-tab-trace-bar-color);font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:var(--trace-tab-trace-duration-color);font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:var(--trace-tab-vertical-line-background-color)}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:var(--trace-tab-horizontal-line-background-color)}.trace-item[_ngcontent-%COMP%]{margin-top:5px}.trace-item[_ngcontent-%COMP%]{--mat-expansion-container-background-color: var(--trace-tab-trace-item-container-background-color)}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-focus-state-layer-color: var(--trace-tab-trace-item-header-focus-state-layer-color)}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-description-color: var(--trace-tab-trace-item-header-description-color)}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-text-size: 15}.trace-item[_ngcontent-%COMP%] .mat-expansion-panel-header.mat-expanded:focus{background-color:var(--trace-tab-mat-expansion-panel-header-focus-background-color)}.trace-item[_ngcontent-%COMP%] .mat-expansion-panel-header.mat-expanded{background-color:var(--trace-tab-mat-expansion-panel-header-background-color)}.trace-item[_ngcontent-%COMP%] .mat-expansion-panel-header.mat-expanded:hover{background-color:var(--trace-tab-mat-expansion-panel-header-hover-background-color)} .mat-expansion-panel-header-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden} .mat-expansion-panel-header-description{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}"]})};var FzA={agentDevelopmentKitLabel:"Agent Development Kit",collapsePanelTooltip:"Collapse panel",traceTabLabel:"Trace",eventsTabLabel:"Events",stateTabLabel:"State",artifactsTabLabel:"Artifacts",sessionsTabLabel:"Sessions",evalTabLabel:"Eval",selectEventAriaLabel:"Select event",eventDetailsTabLabel:"Event",requestDetailsTabLabel:"Request",responseDetailsTabLabel:"Response"},tgA=new eA("Side Panel Messages",{factory:()=>FzA});function _zA(t,e){t&1&&rr(0)}function GzA(t,e){if(t&1&&(S(0,"div"),FA(1,_zA,1,0,"ng-container",9),S(2,"div",10),AA(3,"Powered by Agent Development Kit"),N()()),t&2){let A=Y(2);_(),yA("ngComponentOutlet",A.logoComponent)}}function KzA(t,e){if(t&1&&(TA(0,"img",11),AA(1)),t&2){let A=Y(2);_(),Bt(" ",A.i18n.agentDevelopmentKitLabel," ")}}function UzA(t,e){if(t&1&&(S(0,"mat-option",13),AA(1),N()),t&2){let A=e.$implicit;yA("value",A),_(),tt(A)}}function JzA(t,e){t&1&&dn(0,UzA,2,2,"mat-option",13,zn),t&2&&Bn(e)}function YzA(t,e){if(t&1&&(S(0,"mat-option",13),AA(1),N()),t&2){let A=Y(3);yA("value",A.selectedAppControl.value),_(),tt(A.selectedAppControl.value)}}function TzA(t,e){if(t&1){let A=me();S(0,"div",8)(1,"mat-select",12),mA("selectionChange",function(n){QA(A);let o=Y(2);return uA(o.appSelectionChange.emit(n))}),FA(2,JzA,2,0),eo(3,"async"),FA(4,YzA,2,2,"mat-option",13),N()()}if(t&2){let A,i=Y(2);_(),yA("placeholder",i.isLoadingApps()?"Loading...":"Select an agent")("formControl",i.selectedAppControl),_(),_A((A=Yo(3,4,i.apps$))?2:-1,A),_(2),_A(i.selectedAppControl.value&&i.isLoadingApps()?4:-1)}}function HzA(t,e){if(t&1){let A=me();S(0,"div",3)(1,"div",4)(2,"div",5)(3,"div",6),FA(4,GzA,4,1,"div")(5,KzA,2,1),N(),S(6,"span",7),mA("click",function(){QA(A);let n=Y();return uA(n.closePanel.emit())}),AA(7,"left_panel_close"),N()()()(),FA(8,TzA,5,6,"div",8),eo(9,"async")}if(t&2){let A=Y();_(4),_A(A.logoComponent?4:5),_(2),L2("matTooltip",A.i18n.collapsePanelTooltip),_(2),_A(Yo(9,3,A.isApplicationSelectorEnabledObs)?8:-1)}}function OzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(3);_(),tt(A.i18n.traceTabLabel)}}function zzA(t,e){if(t&1&&(S(0,"mat-tab",15),FA(1,OzA,2,1,"ng-template",16),TA(2,"app-trace-tab",20),N()),t&2){let A=Y(2);_(2),yA("traceData",A.traceData)}}function PzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(2);_(),tt(A.i18n.eventsTabLabel)}}function jzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(2);_(),tt(A.i18n.stateTabLabel)}}function qzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(3);_(),tt(A.i18n.artifactsTabLabel)}}function VzA(t,e){if(t&1&&(S(0,"mat-tab"),FA(1,qzA,2,1,"ng-template",16),TA(2,"app-artifact-tab",22),N()),t&2){let A=Y(2);_(2),yA("artifacts",A.artifacts)}}function ZzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(2);_(),tt(A.i18n.sessionsTabLabel)}}function WzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(3);_(),tt(A.i18n.evalTabLabel)}}function XzA(t,e){if(t&1){let A=me();S(0,"mat-tab"),FA(1,WzA,2,1,"ng-template",16),S(2,"app-eval-tab",23),mA("sessionSelected",function(n){QA(A);let o=Y(2);return uA(o.sessionSelected.emit(n))})("evalCaseSelected",function(n){QA(A);let o=Y(2);return uA(o.evalCaseSelected.emit(n))})("evalSetIdSelected",function(n){QA(A);let o=Y(2);return uA(o.evalSetIdSelected.emit(n))})("shouldReturnToSession",function(n){QA(A);let o=Y(2);return uA(o.returnToSession.emit(n))})("evalNotInstalledMsg",function(n){QA(A);let o=Y(2);return uA(o.evalNotInstalled.emit(n))}),N()()}if(t&2){let A=Y(2);_(2),yA("appName",A.appName)("userId",A.userId)("sessionId",A.sessionId)}}function $zA(t,e){if(t&1){let A=me();S(0,"div",0)(1,"mat-tab-group",14),mA("selectedTabChange",function(n){QA(A);let o=Y();return uA(o.tabChange.emit(n))}),FA(2,zzA,3,1,"mat-tab",15),eo(3,"async"),S(4,"mat-tab",15),FA(5,PzA,2,1,"ng-template",16),S(6,"app-event-tab",17),mA("selectedEvent",function(n){QA(A);let o=Y();return uA(o.eventSelected.emit(n))}),N()(),S(7,"mat-tab"),FA(8,jzA,2,1,"ng-template",16),TA(9,"app-state-tab",18),N(),FA(10,VzA,3,1,"mat-tab"),eo(11,"async"),S(12,"mat-tab"),FA(13,ZzA,2,1,"ng-template",16),S(14,"app-session-tab",19),mA("sessionSelected",function(n){QA(A);let o=Y();return uA(o.sessionSelected.emit(n))})("sessionReloaded",function(n){QA(A);let o=Y();return uA(o.sessionReloaded.emit(n))}),N()(),FA(15,XzA,3,3,"mat-tab"),eo(16,"async"),N()()}if(t&2){let A=Y();_(2),_A(Yo(3,9,A.isTraceEnabledObs)?2:-1),_(4),yA("eventsMap",A.eventData)("traceData",A.traceData),_(3),yA("sessionState",A.currentSessionState),_(),_A(Yo(11,11,A.isArtifactsTabEnabledObs)?10:-1),_(4),yA("userId",A.userId)("appName",A.appName)("sessionId",A.sessionId),_(),_A(Yo(16,13,A.isEvalEnabledObs)?15:-1)}}function APA(t,e){if(t&1){let A=me();S(0,"div",34),mA("click",function(){QA(A);let n=Y(2);return uA(n.openImageDialog.emit(n.rawSvgString))}),N()}if(t&2){let A=Y(2);yA("innerHtml",A.renderedEventGraph,b2)}}function ePA(t,e){if(t&1){let A=me();S(0,"div",1)(1,"div",24)(2,"div",25)(3,"mat-paginator",26),mA("page",function(n){QA(A);let o=Y();return uA(o.page.emit(n))}),N(),S(4,"button",27)(5,"mat-icon",28),mA("click",function(){QA(A);let n=Y();return uA(n.closeSelectedEvent.emit())}),AA(6,"close"),N()()()(),S(7,"div")(8,"mat-tab-group")(9,"mat-tab",29)(10,"div",30),FA(11,APA,1,1,"div",31),N(),S(12,"div",32),TA(13,"ngx-json-viewer",33),N()(),S(14,"mat-tab",29)(15,"div",32),TA(16,"ngx-json-viewer",33),N()(),S(17,"mat-tab",29)(18,"div",32),TA(19,"ngx-json-viewer",33),N()()()()()}if(t&2){let A=Y();_(3),yA("length",A.eventData.size)("pageSize",1)("pageIndex",A.selectedEventIndex),Ke("aria-label",A.i18n.selectEventAriaLabel),_(6),L2("label",A.i18n.eventDetailsTabLabel),_(2),_A(A.renderedEventGraph?11:-1),_(2),yA("json",A.selectedEvent),_(),L2("label",A.i18n.requestDetailsTabLabel),_(2),yA("json",A.llmRequest),_(),L2("label",A.i18n.responseDetailsTabLabel),_(2),yA("json",A.llmResponse)}}var OQ=class t{appName="";userId="";sessionId="";traceData=[];eventData=new Map;currentSessionState;artifacts=[];selectedEvent;selectedEventIndex;renderedEventGraph;rawSvgString=null;llmRequest;llmResponse;showSidePanel=!1;isApplicationSelectorEnabledObs=Ce(!1);apps$=Ce([]);isLoadingApps=Ao(!1);selectedAppControl=new y0("",{nonNullable:!0});closePanel=new YA;appSelectionChange=new YA;tabChange=new YA;eventSelected=new YA;sessionSelected=new YA;sessionReloaded=new YA;evalCaseSelected=new YA;evalSetIdSelected=new YA;returnToSession=new YA;evalNotInstalled=new YA;page=new YA;closeSelectedEvent=new YA;openImageDialog=new YA;eventTabComponent=qs(TQ);sessionTabComponent=qs(HQ);evalTabComponent=qs(g2);logoComponent=f(b7,{optional:!0});i18n=f(tgA);featureFlagService=f(Gc);isAlwaysOnSidePanelEnabledObs=this.featureFlagService.isAlwaysOnSidePanelEnabled();isTraceEnabledObs=this.featureFlagService.isTraceEnabled();isArtifactsTabEnabledObs=this.featureFlagService.isArtifactsTabEnabled();isEvalEnabledObs=this.featureFlagService.isEvalEnabled();isTokenStreamingEnabledObs=this.featureFlagService.isTokenStreamingEnabled();isMessageFileUploadEnabledObs=this.featureFlagService.isMessageFileUploadEnabled();isManualStateUpdateEnabledObs=this.featureFlagService.isManualStateUpdateEnabled();isBidiStreamingEnabledObs=this.featureFlagService.isBidiStreamingEnabled;static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-side-panel"]],viewQuery:function(A,i){A&1&&(ls(i.eventTabComponent,TQ,5),ls(i.sessionTabComponent,HQ,5),ls(i.evalTabComponent,g2,5)),A&2&&yc(3)},inputs:{appName:"appName",userId:"userId",sessionId:"sessionId",traceData:"traceData",eventData:"eventData",currentSessionState:"currentSessionState",artifacts:"artifacts",selectedEvent:"selectedEvent",selectedEventIndex:"selectedEventIndex",renderedEventGraph:"renderedEventGraph",rawSvgString:"rawSvgString",llmRequest:"llmRequest",llmResponse:"llmResponse",showSidePanel:"showSidePanel",isApplicationSelectorEnabledObs:"isApplicationSelectorEnabledObs",apps$:"apps$",isLoadingApps:"isLoadingApps",selectedAppControl:"selectedAppControl"},outputs:{closePanel:"closePanel",appSelectionChange:"appSelectionChange",tabChange:"tabChange",eventSelected:"eventSelected",sessionSelected:"sessionSelected",sessionReloaded:"sessionReloaded",evalCaseSelected:"evalCaseSelected",evalSetIdSelected:"evalSetIdSelected",returnToSession:"returnToSession",evalNotInstalled:"evalNotInstalled",page:"page",closeSelectedEvent:"closeSelectedEvent",openImageDialog:"openImageDialog"},decls:5,vars:5,consts:[[1,"tabs-container"],[1,"details-panel-container"],[1,"resize-handler"],[2,"margin-top","20px","margin-left","20px","display","flex"],[2,"width","100%"],[1,"drawer-header"],[1,"drawer-logo"],[1,"material-symbols-outlined",2,"color","#c4c7c5","cursor","pointer","margin-right","15px",3,"click","matTooltip"],[1,"app-select-container"],[4,"ngComponentOutlet"],[1,"powered-by-adk"],["src","assets/ADK-512-color.svg","width","32px","height","32px"],[1,"app-select",3,"selectionChange","placeholder","formControl"],[1,"app-name-option",3,"value"],[3,"selectedTabChange"],[1,"tabs-header"],["mat-tab-label",""],[3,"selectedEvent","eventsMap","traceData"],[3,"sessionState"],[3,"sessionSelected","sessionReloaded","userId","appName","sessionId"],[3,"traceData"],[1,"tab-label"],[3,"artifacts"],[3,"sessionSelected","evalCaseSelected","evalSetIdSelected","shouldReturnToSession","evalNotInstalledMsg","appName","userId","sessionId"],[1,"details-content"],[2,"display","flex","justify-content","flex-end","margin-top","10px"],[1,"event-paginator",3,"page","length","pageSize","pageIndex"],["mat-mini-fab",""],[3,"click"],[3,"label"],[1,"event-graph-container"],[3,"innerHtml"],[1,"json-viewer-container"],[3,"json"],[3,"click","innerHtml"]],template:function(A,i){A&1&&(FA(0,HzA,10,5),eo(1,"async"),FA(2,$zA,17,15,"div",0)(3,ePA,20,11,"div",1),TA(4,"div",2)),A&2&&(_A(Yo(1,3,i.isAlwaysOnSidePanelEnabledObs)===!1?0:-1),_(2),_A(i.appName!=""&&i.showSidePanel?2:-1),_(),_A(i.selectedEvent&&i.showSidePanel?3:-1))},dependencies:[Qg,Mr,Ss,Yu,kl,M7,vf,$K,N7,TQ,L7,z8,HQ,g2,Gq,u6,_c,Sl,X2,K2,YB,cB,ck],styles:[".drawer-header[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:space-between;align-items:center}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-container-color: var(--side-panel-button-filled-container-color)}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-label-text-color: var(--side-panel-button-filled-label-text-color)}.drawer-header[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{width:36px;height:36px;color:var(--side-panel-mat-icon-color);cursor:pointer;display:flex;align-items:center;justify-content:center}.tabs-container[_ngcontent-%COMP%]{width:100%;margin-top:20px}.tab-label[_ngcontent-%COMP%]{font-size:14px}.resize-handler[_ngcontent-%COMP%]{background:var(--side-panel-resize-handler-background-color);width:4px;border-radius:4px;position:absolute;display:block;height:20%;top:40%;right:0;z-index:9999;cursor:ew-resize}.json-viewer-container[_ngcontent-%COMP%]{margin:10px}.event-paginator[_ngcontent-%COMP%]{margin-top:-8px;margin-right:auto;background-color:inherit;display:flex;justify-content:center}[_nghost-%COMP%] .mat-mdc-paginator-page-size{display:none}.details-panel-container[_ngcontent-%COMP%]{position:absolute;width:100%;height:98%;left:0;right:0;bottom:0;background:var(--side-panel-details-panel-container-background-color);display:inline-block;justify-content:center;align-items:center;z-index:10}.details-content[_ngcontent-%COMP%]{color:var(--side-panel-details-content-color);font-size:14px}.event-graph-container[_ngcontent-%COMP%]{margin-top:16px;margin-bottom:16px;display:flex;justify-content:center;max-height:33%;cursor:pointer}.event-graph-container[_ngcontent-%COMP%] svg{width:100%;height:100%;display:block;object-fit:contain}.event-graph-container[_ngcontent-%COMP%] svg text{font-family:Google Sans Mono,monospace;font-size:11px}.drawer-logo[_ngcontent-%COMP%]{margin-left:9px;display:flex;align-items:center;font-size:16px;font-style:normal;font-weight:500;line-height:24px;letter-spacing:.1px}.drawer-logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{margin-right:9px}.powered-by-adk[_ngcontent-%COMP%]{font-size:10px;color:var(--side-panel-powered-by-adk-color);text-align:right;margin-top:-5px}.app-select[_ngcontent-%COMP%]{width:100%}.app-select-container[_ngcontent-%COMP%]{width:35%;margin-top:12px;background-color:var(--side-panel-app-select-container-background-color);margin-left:10px;height:30px;display:flex;justify-content:space-between;padding-left:20px;padding-right:20px;border-radius:10px;padding-top:5px}.app-select-container[_ngcontent-%COMP%]{--mat-select-placeholder-text-color: var(--side-panel-select-placeholder-text-color)}.app-select-container[_ngcontent-%COMP%]{--mat-select-enabled-trigger-text-color: var(--side-panel-select-enabled-trigger-text-color)}.app-select-container[_ngcontent-%COMP%]{--mat-select-enabled-arrow-color: var(--side-panel-select-enabled-arrow-color)}.app-name-option[_ngcontent-%COMP%], .app-select[_ngcontent-%COMP%]{color:var(--side-panel-app-name-option-color);font-family:Google Sans Mono,monospace;font-style:normal;font-weight:400;padding-left:unset}"]})};function tPA(t,e){if(t&1){let A=me();S(0,"div",11),mA("click",function(){QA(A);let n=Y();return uA(n.openViewImageDialog(n.rawSvgString))}),N()}if(t&2){let A=Y();yA("innerHtml",A.renderedEventGraph,b2)}}var F7=class t{userId="";sessionId="";appName="";panelClosed=new YA;renderedEventGraph;eventData;selectedRow=void 0;rawSvgString=null;llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";dialog=f(Fc);traceService=f(e1);eventService=f(zB);graphService=f(PB);sanitizer=f(oc);constructor(){}ngOnInit(){this.traceService.selectedTraceRow$.subscribe(e=>{this.selectedRow=e;let A=this.getEventIdFromSpan();if(A){let i=A;this.eventService.getEventTrace(i).subscribe(n=>{this.llmRequest=JSON.parse(n[this.llmRequestKey]),this.llmResponse=JSON.parse(n[this.llmResponseKey])}),this.getEventGraph(A)}}),this.traceService.eventData$.subscribe(e=>this.eventData=e)}openViewImageDialog(e){let A=this.dialog.open(t1,{maxWidth:"90vw",maxHeight:"90vh",data:{imageData:e}})}getEventDetails(){if(this.eventData&&this.selectedRow)return this.eventData.get(this.getEventIdFromSpan())}getEventIdFromSpan(){if(this.selectedRow)return this.selectedRow.attributes["gcp.vertex.agent.event_id"]}getEventGraph(e){this.eventService.getEvent(this.userId,this.appName,this.sessionId,e).subscribe(A=>Ni(this,null,function*(){if(!A.dotSrc){this.renderedEventGraph=void 0;return}let i=A.dotSrc,n=yield this.graphService.render(i);this.rawSvgString=n,this.renderedEventGraph=this.sanitizer.bypassSecurityTrustHtml(n)}))}closePanel(){this.panelClosed.emit(!0)}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-trace-event"]],inputs:{userId:"userId",sessionId:"sessionId",appName:"appName"},outputs:{panelClosed:"panelClosed"},decls:17,vars:4,consts:[[1,"wrapper"],["mat-stretch-tabs","false","mat-align-tabs","start"],["label","Event"],[1,"json-viewer-container"],[3,"json"],["label","Request"],["label","Response"],["label","Graph"],[1,"event-graph-container"],[3,"innerHtml"],["mat-icon-button","",1,"tab-header-action",3,"click"],[3,"click","innerHtml"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"mat-tab-group",1)(2,"mat-tab",2)(3,"div",3),TA(4,"ngx-json-viewer",4),N()(),S(5,"mat-tab",5)(6,"div",3),TA(7,"ngx-json-viewer",4),N()(),S(8,"mat-tab",6)(9,"div",3),TA(10,"ngx-json-viewer",4),N()(),S(11,"mat-tab",7)(12,"div",8),FA(13,tPA,1,1,"div",9),N()()(),S(14,"button",10),mA("click",function(){return i.closePanel()}),S(15,"mat-icon"),AA(16,"close"),N()()()),A&2&&(_(4),yA("json",i.getEventDetails()),_(3),yA("json",i.llmRequest),_(3),yA("json",i.llmResponse),_(3),_A(i.renderedEventGraph?13:-1))},dependencies:[M7,vf,Sl,X2,QB,_c],styles:[".json-viewer-container[_ngcontent-%COMP%]{padding-top:8px;padding-left:12px;padding-right:12px;background-color:var(--trace-event-json-viewer-container-background-color)}.event-graph-container[_ngcontent-%COMP%]{text-align:center;padding-top:20px}.event-graph-container[_ngcontent-%COMP%] svg text{font-family:Google Sans Mono,monospace;font-size:11px}.wrapper[_ngcontent-%COMP%]{position:relative}.tab-header-action[_ngcontent-%COMP%]{position:absolute;top:0;right:0;height:48px;z-index:2;margin-right:10px}"]})};var iPA=["sideDrawer"],nPA=["autoScroll"],oPA=["bottomPanel"],rPA=t=>({"edit-mode":t}),sPA=()=>[];function aPA(t,e){if(t&1){let A=me();S(0,"span",12),mA("click",function(){QA(A);let n=Y();return uA(n.toggleSidePanel())}),AA(1,"left_panel_open"),N()}}function cPA(t,e){if(t&1){let A=me();S(0,"span",14),mA("click",function(){QA(A);let n=Y(2);return uA(n.toggleSidePanel())}),AA(1,"left_panel_open"),N()}}function gPA(t,e){if(t&1){let A=me();S(0,"button",19),mA("click",function(){QA(A);let n=Y(3);return uA(n.cancelEditEvalCase())}),AA(1,"Cancel"),N(),S(2,"button",20),mA("click",function(){QA(A);let n=Y(3);return uA(n.saveEvalCase())}),AA(3," Save "),N()}if(t&2){let A=Y(3);_(2),yA("disabled",!A.hasEvalCaseChanged()||A.isEvalCaseEditing())}}function lPA(t,e){if(t&1){let A=me();S(0,"span",21),mA("click",function(){QA(A);let n=Y(3);return uA(n.editEvalCase())}),AA(1," edit "),N(),S(2,"span",22),mA("click",function(){QA(A);let n=Y(3);return uA(n.deleteEvalCase())}),AA(3," delete "),N()}}function IPA(t,e){if(t&1&&(S(0,"div",15)(1,"div",16),AA(2,"Eval Case ID"),N(),S(3,"div",17),AA(4),N()(),S(5,"div",18),FA(6,gPA,4,1)(7,lPA,4,0),N()),t&2){let A=Y(2);_(4),tt(A.evalCase.evalId),_(2),_A(A.isEvalEditMode()?6:7)}}function CPA(t,e){if(t&1){let A=me();S(0,"span",31),mA("click",function(){QA(A);let n=Y(3);return uA(n.exportSession())}),AA(1," download "),N()}}function dPA(t,e){if(t&1){let A=me();S(0,"span",32),mA("click",function(){QA(A);let n=Y(3);return uA(n.importSession())}),AA(1," upload "),N()}}function BPA(t,e){if(t&1){let A=me();S(0,"div",15)(1,"div",16),AA(2,"Session ID"),N(),S(3,"div",17),AA(4),N()(),S(5,"div",18)(6,"div",23)(7,"mat-slide-toggle",24),eo(8,"async"),mA("change",function(){QA(A);let n=Y(2);return uA(n.toggleSse())}),AA(9," Token Streaming "),N()(),TA(10,"mat-divider",25),S(11,"div",26)(12,"div",27),mA("click",function(){QA(A);let n=Y(2);return uA(n.onNewSessionClick())}),S(13,"mat-icon"),AA(14,"add"),N(),AA(15," New Session "),N(),S(16,"span",28),mA("click",function(){QA(A);let n=Y(2);return uA(n.deleteSession(n.sessionId))}),AA(17," delete "),N(),FA(18,CPA,2,0,"span",29),eo(19,"async"),FA(20,dPA,2,0,"span",30),eo(21,"async"),N()()}if(t&2){let A=Y(2);_(4),tt(A.sessionId),_(3),yA("checked",A.enableSseIndicator())("disabled",!Yo(8,6,A.isTokenStreamingEnabledObs)),_(3),yA("vertical",!0),_(8),_A(Yo(19,8,A.isExportSessionEnabledObs)?18:-1),_(2),_A(Yo(21,10,A.importSessionEnabledObs)?20:-1)}}function EPA(t,e){if(t&1&&(S(0,"div",7),FA(1,cPA,2,0,"span",13)(2,IPA,8,2)(3,BPA,22,12),N()),t&2){let A=Y();yA("ngClass",vc(3,rPA,A.isEvalEditMode())),_(),_A(A.showSidePanel?-1:1),_(),_A(A.evalCase?2:3)}}function QPA(t,e){t&1&&(S(0,"div",33)(1,"span"),AA(2,"Loading agents, please wait..."),N()())}function uPA(t,e){t&1&&(S(0,"span"),AA(1,"Welcome to ADK!"),TA(2,"br"),AA(3," Select an agent on the left to begin with."),N())}function hPA(t,e){if(t&1&&(AA(0," Error message: "),TA(1,"br"),S(2,"pre",35),AA(3),N()),t&2){let A=Y(4);_(3),tt(A.loadingError())}}function fPA(t,e){t&1&&(S(0,"pre",34),AA(1,"Warning: No agents found in current folder."),N())}function mPA(t,e){if(t&1&&(S(0,"div"),AA(1," Failed to load agents. To get started, run "),S(2,"pre"),AA(3,"adk web"),N(),AA(4," in the folder that contains the agents."),TA(5,"br"),FA(6,hPA,4,1)(7,fPA,2,0,"pre",34),N()),t&2){let A=Y(3);_(6),_A(A.loadingError()?6:7)}}function pPA(t,e){if(t&1&&(S(0,"div",33),FA(1,uPA,4,0,"span"),eo(2,"async"),FA(3,mPA,8,1,"div"),N()),t&2){let A=Y(2);_(),_A((Yo(2,1,A.apps$)||AO(3,sPA)).length>0?1:3)}}function DPA(t,e){if(t&1&&(FA(0,QPA,3,0,"div",33),eo(1,"async"),FA(2,pPA,4,4,"div",33)),t&2){let A=Y();_A(A.isLoadingApps()?0:Yo(1,1,A.isApplicationSelectorEnabledObs)?2:-1)}}function wPA(t,e){if(t&1){let A=me();S(0,"button",36),mA("click",function(){QA(A);let n=Y();return uA(n.openDialog())}),S(1,"mat-icon"),AA(2,"priority_high"),N()()}}function yPA(t,e){if(t&1){let A=me();S(0,"app-chat-panel",37),eo(1,"async"),Xa("userInputChange",function(n){QA(A);let o=Y();return Wa(o.userInput,n)||(o.userInput=n),uA(n)})("userEditEvalCaseMessageChange",function(n){QA(A);let o=Y();return Wa(o.userEditEvalCaseMessage,n)||(o.userEditEvalCaseMessage=n),uA(n)}),mA("clickEvent",function(n){QA(A);let o=Y();return uA(o.clickEvent(n))})("handleKeydown",function(n){QA(A);let o=Y();return uA(o.handleKeydown(n.event,n.message))})("cancelEditMessage",function(n){QA(A);let o=Y();return uA(o.cancelEditMessage(n))})("saveEditMessage",function(n){QA(A);let o=Y();return uA(o.saveEditMessage(n))})("openViewImageDialog",function(n){QA(A);let o=Y();return uA(o.openViewImageDialog(n))})("openBase64InNewTab",function(n){QA(A);let o=Y();return uA(o.openBase64InNewTab(n.data,n.mimeType))})("editEvalCaseMessage",function(n){QA(A);let o=Y();return uA(o.editEvalCaseMessage(n))})("deleteEvalCaseMessage",function(n){QA(A);let o=Y();return uA(o.deleteEvalCaseMessage(n.message,n.index))})("editFunctionArgs",function(n){QA(A);let o=Y();return uA(o.editFunctionArgs(n))})("fileSelect",function(n){QA(A);let o=Y();return uA(o.onFileSelect(n))})("removeFile",function(n){QA(A);let o=Y();return uA(o.removeFile(n))})("removeStateUpdate",function(){QA(A);let n=Y();return uA(n.removeStateUpdate())})("sendMessage",function(n){QA(A);let o=Y();return uA(o.sendMessage(n))})("updateState",function(){QA(A);let n=Y();return uA(n.updateState())})("toggleAudioRecording",function(){QA(A);let n=Y();return uA(n.toggleAudioRecording())})("toggleVideoRecording",function(){QA(A);let n=Y();return uA(n.toggleVideoRecording())}),N()}if(t&2){let A,i=Y();yA("appName",i.appName)("messages",i.messages())("isChatMode",i.isChatMode())("evalCase",i.evalCase)("isEvalEditMode",i.isEvalEditMode())("isEvalCaseEditing",i.isEvalCaseEditing())("isEditFunctionArgsEnabled",(A=Yo(1,15,i.isEditFunctionArgsEnabledObs))!==null&&A!==void 0?A:!1),Za("userInput",i.userInput)("userEditEvalCaseMessage",i.userEditEvalCaseMessage),yA("selectedFiles",i.selectedFiles)("updatedSessionState",i.updatedSessionState())("eventData",i.eventData)("isAudioRecording",i.isAudioRecording)("isVideoRecording",i.isVideoRecording)("hoveredEventMessageIndices",i.hoveredEventMessageIndices)}}function vPA(t,e){if(t&1){let A=me();S(0,"div",11,1),TA(2,"div",38),S(3,"app-trace-event",39),mA("panelClosed",function(){QA(A);let n=Y();return uA(n.closeTraceEventDetailPanel())}),N()()}if(t&2){let A=Y();_(3),yA("userId",A.userId)("appName",A.appName)("sessionId",A.sessionId)}}var MPA="root_agent";function bPA(t){for(t=t.replace(/-/g,"+").replace(/_/g,"/");t.length%4!==0;)t+="=";return t}var nU=class t extends _8{nextPageLabel="Next Event";previousPageLabel="Previous Event";firstPageLabel="First Event";lastPageLabel="Last Event";getRangeLabel=(e,A,i)=>i===0?`Event 0 of ${i}`:(i=Math.max(i,0),`Event ${e*A+1} of ${i}`);static \u0275fac=(()=>{let e;return function(i){return(e||(e=ci(t)))(i||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac})},igA="Restarting bidirectional streaming is not currently supported. Please refresh the page or start a new session.",_7=class t{_snackBar=f(Yq);activatedRoute=f(xc);agentService=f(HB);artifactService=f(U8);changeDetectorRef=f(Et);dialog=f(Fc);document=f(at);downloadService=f(OB);evalService=f(Rl);eventService=f(zB);featureFlagService=f(Gc);graphService=f(PB);localFileService=f(J8);location=f(ha);renderer=f(qi);router=f(vl);safeValuesService=f($2);sessionService=f(A1);streamChatService=f(T8);stringToColorService=f(jB);traceService=f(e1);chatPanel=qs.required(ZB);sideDrawer=qs.required("sideDrawer");sidePanel=qs.required(OQ);evalTab=qs(g2);scrollContainer=qs.required("autoScroll");bottomPanelRef=qs.required("bottomPanel");enableSseIndicator=Ao(!1);isChatMode=Ao(!0);isEvalCaseEditing=Ao(!1);hasEvalCaseChanged=Ao(!1);isEvalEditMode=Ao(!1);videoElement;currentMessage="";messages=Ao([]);lastTextChunk="";streamingTextMessage=null;latestThought="";artifacts=[];userInput="";userEditEvalCaseMessage="";userId="user";appName="";sessionId="";evalCase=null;updatedEvalCase=null;evalSetId="";isAudioRecording=!1;isVideoRecording=!1;longRunningEvents=[];functionCallEventId="";redirectUri=ds.getBaseUrlWithoutPath();showSidePanel=!0;useSse=!1;currentSessionState={};root_agent=MPA;updatedSessionState=Ao(null);isModelThinkingSubject=new Fi(!1);sessionHasUsedBidi=new Set;eventData=new Map;traceData=[];renderedEventGraph;rawSvgString=null;selectedEvent=void 0;selectedEventIndex=void 0;llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";getMediaTypeFromMimetype=P8;selectedFiles=[];MediaType=gC;selectedAppControl=new y0("",{nonNullable:!0});openBase64InNewTab=this.safeValuesService.openBase64InNewTab;isLoadingApps=Ao(!1);loadingError=Ao("");apps$=Ce([]).pipe(So(()=>{this.isLoadingApps.set(!0),this.selectedAppControl.disable()}),$n(()=>this.agentService.listApps().pipe(Gr(e=>(this.loadingError.set(e.message),Ce(void 0))))),Xn(1),So(e=>{this.isLoadingApps.set(!1),this.selectedAppControl.enable(),e?.length==1&&this.router.navigate([],{relativeTo:this.activatedRoute,queryParams:{app:e[0]}})}),h2());importSessionEnabledObs=this.featureFlagService.isImportSessionEnabled();isEditFunctionArgsEnabledObs=this.featureFlagService.isEditFunctionArgsEnabled();isSessionUrlEnabledObs=this.featureFlagService.isSessionUrlEnabled();isApplicationSelectorEnabledObs=this.featureFlagService.isApplicationSelectorEnabled();isTokenStreamingEnabledObs=this.featureFlagService.isTokenStreamingEnabled();isExportSessionEnabledObs=this.featureFlagService.isExportSessionEnabled();bottomPanelVisible=!1;hoveredEventMessageIndices=[];constructor(){}ngOnInit(){if(this.syncSelectedAppFromUrl(),this.updateSelectedAppUrl(),this.streamChatService.onStreamClose().subscribe(i=>{let n=`Please check server log for full details: -`+i;this.openSnackBar(n,"OK")}),new URL(window.location.href).searchParams.has("code")){let i=window.location.href;window.opener?.postMessage({authResponseUrl:i},window.origin),window.close()}this.agentService.getApp().subscribe(i=>{this.appName=i}),ga([this.agentService.getLoadingState(),this.isModelThinkingSubject]).subscribe(([i,n])=>{let o=this.messages()[this.messages().length-1];i?!o?.isLoading&&!this.streamingTextMessage&&this.messages.update(r=>[...r,{role:"bot",isLoading:!0}]):o?.isLoading&&!n&&(this.messages.update(r=>r.slice(0,-1)),this.changeDetectorRef.detectChanges())}),this.traceService.selectedTraceRow$.subscribe(i=>{let n=i?.attributes["gcp.vertex.agent.event_id"];n&&this.eventData.has(n)?this.bottomPanelVisible=!0:this.bottomPanelVisible=!1}),this.traceService.hoveredMessageIndices$.subscribe(i=>this.hoveredEventMessageIndices=i)}get sessionTab(){return this.sidePanel().sessionTabComponent()}ngAfterViewInit(){this.showSidePanel=!0,this.sideDrawer()?.open()}selectApp(e){e!=this.appName&&(this.agentService.setApp(e),this.loadSessionByUrlOrReset())}loadSessionByUrlOrReset(){this.isSessionUrlEnabledObs.subscribe(e=>{let A=this.activatedRoute.snapshot.queryParams.session;if(!e||!A){this.createSessionAndReset();return}A&&this.sessionService.getSession(this.userId,this.appName,A).pipe(Xn(1),Gr(i=>(this.openSnackBar("Cannot find specified session. Creating a new one.","OK"),this.createSessionAndReset(),Ce(null)))).subscribe(i=>{i&&this.updateWithSelectedSession(i)})})}createSessionAndReset(){this.createSession(),this.eventData=new Map,this.messages.set([]),this.artifacts=[],this.userInput="",this.longRunningEvents=[]}createSession(){this.sessionService.createSession(this.userId,this.appName).subscribe(e=>{this.currentSessionState=e.state,this.sessionId=e.id??"",this.sessionTab?.refreshSession(),this.isSessionUrlEnabledObs.subscribe(A=>{A&&this.updateSelectedSessionUrl()})})}sendMessage(e){return Ni(this,null,function*(){if(e.preventDefault(),!this.userInput.trim()&&this.selectedFiles.length<=0||e instanceof KeyboardEvent&&(e.isComposing||e.keyCode===229))return;if(this.userInput.trim()&&this.messages.update(i=>[...i,{role:"user",text:this.userInput}]),this.selectedFiles.length>0){let i=this.selectedFiles.map(n=>({file:n.file,url:n.url}));this.messages.update(n=>[...n,{role:"user",attachments:i}])}let A={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:yield this.getUserMessageParts()},streaming:this.useSse,stateDelta:this.updatedSessionState()};this.selectedFiles=[],this.streamingTextMessage=null,this.agentService.runSse(A).subscribe({next:i=>Ni(this,null,function*(){if(i.error){this.openSnackBar(i.error,"OK");return}if(i.content)for(let n of this.combineTextParts(i.content.parts))this.processPart(i,n),this.traceService.setEventData(this.eventData);else i.errorMessage?this.processErrorMessage(i):i.actions&&this.processActionArtifact(i);this.changeDetectorRef.detectChanges()}),error:i=>{console.error("Send message error:",i),this.openSnackBar(i,"OK")},complete:()=>{this.updatedSessionState()&&(this.currentSessionState=this.updatedSessionState(),this.updatedSessionState.set(null)),this.streamingTextMessage=null,this.sessionTab?.reloadSession(this.sessionId),this.eventService.getTrace(this.sessionId).pipe(Gr(i=>i.status===404?Ce(null):Ce([]))).subscribe(i=>{this.traceData=i,this.changeDetectorRef.detectChanges()}),this.traceService.setMessages(this.messages()),this.changeDetectorRef.detectChanges()}}),this.userInput="",this.changeDetectorRef.detectChanges()})}processErrorMessage(e){this.storeEvents(e,e),this.insertMessageBeforeLoadingMessage({text:e.errorMessage,role:"bot"})}processPart(e,A){let i=e.groundingMetadata?.searchEntryPoint?.renderedContent;if(A.text){this.isModelThinkingSubject.next(!1);let n=A.text;if(A.thought){if(n!==this.latestThought){this.storeEvents(A,e);let o={role:"bot",text:this.processThoughtText(n),thought:!0,eventId:e.id};this.insertMessageBeforeLoadingMessage(o)}this.latestThought=n}else if(this.streamingTextMessage){if(i&&(this.streamingTextMessage.renderedContent=e.groundingMetadata.searchEntryPoint.renderedContent),n==this.streamingTextMessage.text){this.storeEvents(A,e),this.streamingTextMessage=null;return}this.streamingTextMessage.text+=n}else if(this.streamingTextMessage={role:"bot",text:this.processThoughtText(n),thought:!!A.thought,eventId:e.id},i&&(this.streamingTextMessage.renderedContent=e.groundingMetadata.searchEntryPoint.renderedContent),this.insertMessageBeforeLoadingMessage(this.streamingTextMessage),!this.useSse){this.storeEvents(A,e),this.streamingTextMessage=null;return}}else A.thought?this.isModelThinkingSubject.next(!0):(this.isModelThinkingSubject.next(!1),this.storeEvents(A,e),this.storeMessage(A,e,e.author==="user"?"user":"bot"))}getUserMessageParts(){return Ni(this,null,function*(){let e=[];if(this.userInput.trim()&&e.push({text:`${this.userInput}`}),this.selectedFiles.length>0)for(let A of this.selectedFiles)e.push(yield this.localFileService.createMessagePartFromFile(A.file));return e})}processActionArtifact(e){e.actions&&e.actions.artifactDelta&&(this.storeEvents(null,e),this.storeMessage(null,e,"bot"))}combineTextParts(e){let A=[],i;for(let n of e)n.text?i?i.text+=n.text:(i={text:n.text},A.push(i)):(i=void 0,A.push(n));return A}updateRedirectUri(e,A){try{let i=new URL(e);return i.searchParams.set("redirect_uri",A),i.toString()}catch(i){return console.warn("Failed to update redirect URI: ",i),e}}storeMessage(e,A,i,n,o){if(A?.author&&this.createAgentIconColorClass(A.author),A?.longRunningToolIds&&A.longRunningToolIds.length>0){this.getAsyncFunctionsFromParts(A.longRunningToolIds,A.content.parts,A.invocationId);let s=this.longRunningEvents[0].function;if(s.args.authConfig&&s.args.authConfig.exchangedAuthCredential&&s.args.authConfig.exchangedAuthCredential.oauth2){let a=s.args.authConfig.exchangedAuthCredential.oauth2.authUri,c=this.updateRedirectUri(a,this.redirectUri);this.openOAuthPopup(c).then(g=>{this.functionCallEventId=A.id,this.sendOAuthResponse(s,g,this.redirectUri)}).catch(g=>{console.error("OAuth Error:",g)})}else this.functionCallEventId=A.id}if(A?.actions&&A.actions.artifactDelta)for(let s in A.actions.artifactDelta)A.actions.artifactDelta.hasOwnProperty(s)&&this.renderArtifact(s,A.actions.artifactDelta[s]);A?.evalStatus&&this.isChatMode.set(!1);let r={role:i,evalStatus:A?.evalStatus,failedMetric:A?.failedMetric,evalScore:A?.evalScore,evalThreshold:A?.evalThreshold,actualInvocationToolUses:A?.actualInvocationToolUses,expectedInvocationToolUses:A?.expectedInvocationToolUses,actualFinalResponse:A?.actualFinalResponse,expectedFinalResponse:A?.expectedFinalResponse,invocationIndex:n!==void 0?n:void 0,finalResponsePartIndex:o?.finalResponsePartIndex!==void 0?o.finalResponsePartIndex:void 0,toolUseIndex:o?.toolUseIndex!==void 0?o.toolUseIndex:void 0};if(e){if(e.inlineData){let s=this.formatBase64Data(e.inlineData.data,e.inlineData.mimeType);r.inlineData={displayName:e.inlineData.displayName,data:s,mimeType:e.inlineData.mimeType}}else if(e.text)r.text=e.text,r.thought=!!e.thought,A?.groundingMetadata&&A.groundingMetadata.searchEntryPoint&&A.groundingMetadata.searchEntryPoint.renderedContent&&(r.renderedContent=A.groundingMetadata.searchEntryPoint.renderedContent),r.eventId=A?.id;else if(e.functionCall)r.functionCall=e.functionCall,r.eventId=A?.id;else if(e.functionResponse)r.functionResponse=e.functionResponse,r.eventId=A?.id;else if(e.executableCode)r.executableCode=e.executableCode;else if(e.codeExecutionResult&&(r.codeExecutionResult=e.codeExecutionResult,A.actions&&A.actions.artifact_delta))for(let s in A.actions.artifact_delta)A.actions.artifact_delta.hasOwnProperty(s)&&this.renderArtifact(s,A.actions.artifact_delta[s])}e&&Object.keys(e).length>0&&this.insertMessageBeforeLoadingMessage(r)}insertMessageBeforeLoadingMessage(e){this.messages.update(A=>{let i=A[A.length-1];return i?.isLoading?[...A.slice(0,-1),e,i]:[...A,e]})}formatBase64Data(e,A){let i=bPA(e);return`data:${A};base64,${i}`}renderArtifact(e,A){let i={role:"bot",inlineData:{data:"",mimeType:"image/png"}};this.insertMessageBeforeLoadingMessage(i);let n=this.messages(),r=n[n.length-1]?.isLoading?n.length-2:n.length-1;this.artifactService.getArtifactVersion(this.userId,this.appName,this.sessionId,e,A).subscribe(s=>{let a=s.inlineData.mimeType,c=this.formatBase64Data(s.inlineData.data,a),g=P8(a),I={name:this.createDefaultArtifactName(a),data:c,mimeType:a,mediaType:g};this.messages.update(C=>{let d=[...C];return d[r]={role:"bot",inlineData:I},d}),this.artifacts=[...this.artifacts,{id:e,data:c,mimeType:a,versionId:A,mediaType:P8(a)}]})}storeEvents(e,A){let i="";e==null&&A.actions.artifactDelta?i+="eventAction: artifact":e&&(e.text?i+="text:"+e.text:e.functionCall?i+="functionCall:"+e.functionCall.name:e.functionResponse?i+="functionResponse:"+e.functionResponse.name:e.executableCode?i+="executableCode:"+e.executableCode.code.slice(0,10):e.codeExecutionResult?i+="codeExecutionResult:"+e.codeExecutionResult.outcome:e.errorMessage&&(i+="errorMessage:"+e.errorMessage)),A.title=i,this.eventData.set(A.id,A),this.eventData=new Map(this.eventData)}sendOAuthResponse(e,A,i){this.longRunningEvents.pop();let n={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:[]}};var o=structuredClone(e.args.authConfig);o.exchangedAuthCredential.oauth2.authResponseUri=A,o.exchangedAuthCredential.oauth2.redirectUri=i,n.functionCallEventId=this.functionCallEventId,n.newMessage.parts.push({function_response:{id:e.id,name:e.name,response:o}});let r=[];this.agentService.runSse(n).subscribe({next:s=>Ni(this,null,function*(){r.push(s)}),error:s=>console.error("SSE error:",s),complete:()=>{this.processRunSseResponse(r)}})}processRunSseResponse(e){for(let A of e)if(A.content)for(let i of A.content.parts)this.processPart(A,i)}openDialog(){this.dialog.open(v7,{width:"600px",data:{event:this.longRunningEvents[0].function,appName:this.appName,userId:this.userId,sessionId:this.sessionId,functionCallEventId:this.functionCallEventId,invocationId:this.longRunningEvents[0].invocationId}}).afterClosed().subscribe(A=>{A&&(this.removeFinishedLongRunningEvents(A.events),this.processRunSseResponse(A.response),this.changeDetectorRef.detectChanges())})}removeFinishedLongRunningEvents(e){let A=new Set(e.map(i=>i.id));this.longRunningEvents=this.longRunningEvents.filter(i=>!A.has(i.id))}createAgentIconColorClass(e){let A=this.stringToColorService.stc(e),i=`custom-icon-color-${A.replace("#","")}`;this.injectCustomIconColorStyle(i,A)}clickEvent(e){let A=this.messages()[e].eventId;this.sideDrawer()?.open(),this.showSidePanel=!0,this.selectedEvent=this.eventData.get(A),this.selectedEventIndex=this.getIndexOfKeyInMap(A);let i=A;this.eventService.getEventTrace(i).subscribe(n=>{n[this.llmRequestKey]&&(this.llmRequest=JSON.parse(n[this.llmRequestKey])),n[this.llmResponseKey]&&(this.llmResponse=JSON.parse(n[this.llmResponseKey]))}),this.eventService.getEvent(this.userId,this.appName,this.sessionId,this.selectedEvent.id).subscribe(n=>Ni(this,null,function*(){if(!n.dotSrc){this.renderedEventGraph=void 0;return}let o=n.dotSrc,r=yield this.graphService.render(o);this.rawSvgString=r,this.renderedEventGraph=this.safeValuesService.bypassSecurityTrustHtml(r)}))}ngOnDestroy(){this.streamChatService.closeStream()}onAppSelection(e){this.isAudioRecording&&(this.stopAudioRecording(),this.isAudioRecording=!1),this.isVideoRecording&&(this.stopVideoRecording(),this.isVideoRecording=!1),this.evalTab()?.resetEvalResults(),this.traceData=[],this.bottomPanelVisible=!1}toggleAudioRecording(){this.isAudioRecording?this.stopAudioRecording():this.startAudioRecording()}startAudioRecording(){if(this.sessionHasUsedBidi.has(this.sessionId)){this.openSnackBar(igA,"OK");return}this.isAudioRecording=!0,this.streamChatService.startAudioChat({appName:this.appName,userId:this.userId,sessionId:this.sessionId}),this.messages.update(e=>[...e,{role:"user",text:"Speaking..."},{role:"bot",text:"Speaking..."}]),this.sessionHasUsedBidi.add(this.sessionId)}stopAudioRecording(){this.streamChatService.stopAudioChat(),this.isAudioRecording=!1}toggleVideoRecording(){this.isVideoRecording?this.stopVideoRecording():this.startVideoRecording()}startVideoRecording(){if(this.sessionHasUsedBidi.has(this.sessionId)){this.openSnackBar(igA,"OK");return}let e=this.chatPanel()?.videoContainer;e&&(this.isVideoRecording=!0,this.streamChatService.startVideoChat({appName:this.appName,userId:this.userId,sessionId:this.sessionId,videoContainer:e}),this.messages.update(A=>[...A,{role:"user",text:"Speaking..."}]),this.sessionHasUsedBidi.add(this.sessionId))}stopVideoRecording(){let e=this.chatPanel()?.videoContainer;e&&(this.streamChatService.stopVideoChat(e),this.isVideoRecording=!1)}getAsyncFunctionsFromParts(e,A,i){for(let n of A)n.functionCall&&e.includes(n.functionCall.id)&&this.longRunningEvents.push({function:n.functionCall,invocationId:i})}openOAuthPopup(e){return new Promise((A,i)=>{if(!this.safeValuesService.windowOpen(window,e,"oauthPopup","width=600,height=700")){i("Popup blocked!");return}let o=r=>{if(r.origin!==window.location.origin)return;let{authResponseUrl:s}=r.data;s?(A(s),window.removeEventListener("message",o)):console.log("OAuth failed",r)};window.addEventListener("message",o)})}toggleSidePanel(){this.showSidePanel?this.sideDrawer()?.close():this.sideDrawer()?.open(),this.showSidePanel=!this.showSidePanel}handleTabChange(e){this.isChatMode()||(this.resetEditEvalCaseVars(),this.handleReturnToSession(!0))}handleReturnToSession(e){this.sessionTab?.getSession(this.sessionId),this.evalTab()?.resetEvalCase(),this.isChatMode.set(!0)}handleEvalNotInstalled(e){e&&this.openSnackBar(e,"OK")}resetEventsAndMessages(){this.eventData.clear(),this.messages.set([]),this.artifacts=[]}updateWithSelectedSession(e){!e||!e.id||!e.events||!e.state||(this.traceService.resetTraceService(),this.sessionId=e.id,this.currentSessionState=e.state,this.evalCase=null,this.isChatMode.set(!0),this.isSessionUrlEnabledObs.subscribe(A=>{A&&this.updateSelectedSessionUrl()}),this.resetEventsAndMessages(),e.events.forEach(A=>{A.content?.parts?.forEach(i=>{this.storeMessage(i,A,A.author==="user"?"user":"bot"),A.author&&A.author!=="user"&&this.storeEvents(i,A)})}),this.eventService.getTrace(this.sessionId).subscribe(A=>{this.traceData=A,this.traceService.setEventData(this.eventData),this.traceService.setMessages(this.messages())}),this.bottomPanelVisible=!1,this.changeDetectorRef.detectChanges())}updateWithSelectedEvalCase(e){this.evalCase=e,this.isChatMode.set(!1),this.resetEventsAndMessages();let A=0;for(let i of e.conversation){if(i.userContent?.parts)for(let n of i.userContent.parts)this.storeMessage(n,null,"user");if(i.intermediateData?.toolUses){let n=0;for(let o of i.intermediateData.toolUses){let r={functionCall:{name:o.name,args:o.args}};this.storeMessage(r,null,"bot",A,{toolUseIndex:n}),n++;let s={functionResponse:{name:o.name}};this.storeMessage(s,null,"bot")}}if(i.finalResponse?.parts){let n=0;for(let o of i.finalResponse.parts)this.storeMessage(o,null,"bot",A,{finalResponsePartIndex:n}),n++}A++}}updateSelectedEvalSetId(e){this.evalSetId=e}editEvalCaseMessage(e){this.isEvalCaseEditing.set(!0),this.userEditEvalCaseMessage=e.text,e.isEditing=!0,setTimeout(()=>{let A=this.chatPanel()?.textarea?.nativeElement;if(!A)return;A.focus();let i=A.value.length;e.text.charAt(i-1)===` +`),N(),S(4,"mat-form-field",1)(5,"input",2),Xa("ngModelChange",function(o){return Wa(i.newSetId,o)||(i.newSetId=o),o}),mA("keydown.enter",function(){return i.createNewEvalSet()}),N()(),S(6,"mat-dialog-actions",3)(7,"button",4),AA(8,"Cancel"),N(),S(9,"button",5),mA("click",function(){return i.createNewEvalSet()}),AA(10,"Create"),N()()),A&2&&(_(5),Za("ngModel",i.newSetId))},dependencies:[Ls,ya,fl,J2,Mr,kc,Ss,tc,va,dr,bl],encapsulation:2})};var DHA=["knob"],wHA=["valueIndicatorContainer"];function yHA(t,e){if(t&1&&(S(0,"div",2,1)(2,"div",5)(3,"span",6),AA(4),N()()()),t&2){let A=Y();_(4),tt(A.valueIndicatorText)}}var vHA=["trackActive"],MHA=["*"];function bHA(t,e){if(t&1&&TA(0,"div"),t&2){let A=e.$implicit,i=e.$index,n=Y(3);Ro(A===0?"mdc-slider__tick-mark--active":"mdc-slider__tick-mark--inactive"),mo("transform",n._calcTickMarkTransform(i))}}function kHA(t,e){if(t&1&&dn(0,bHA,1,4,"div",8,AB),t&2){let A=Y(2);Bn(A._tickMarks)}}function SHA(t,e){if(t&1&&(S(0,"div",6,1),NA(2,kHA,2,0),N()),t&2){let A=Y();_(2),_A(A._cachedWidth?2:-1)}}function RHA(t,e){if(t&1&&TA(0,"mat-slider-visual-thumb",7),t&2){let A=Y();yA("discrete",A.discrete)("thumbPosition",1)("valueIndicatorText",A.startValueIndicatorText)}}var Ii=function(t){return t[t.START=1]="START",t[t.END=2]="END",t}(Ii||{}),YQ=function(t){return t[t.ACTIVE=0]="ACTIVE",t[t.INACTIVE=1]="INACTIVE",t}(YQ||{}),jK=new eA("_MatSlider"),xcA=new eA("_MatSliderThumb"),LHA=new eA("_MatSliderRangeThumb"),NcA=new eA("_MatSliderVisualThumb");var xHA=(()=>{class t{_cdr=f(Et);_ngZone=f(ye);_slider=f(jK);_renderer=f(qi);_listenerCleanups;discrete;thumbPosition;valueIndicatorText;_ripple;_knob;_valueIndicatorContainer;_sliderInput;_sliderInputEl;_hoverRippleRef;_focusRippleRef;_activeRippleRef;_isHovered=!1;_isActive=!1;_isValueIndicatorVisible=!1;_hostElement=f(se).nativeElement;_platform=f(ni);constructor(){}ngAfterViewInit(){let A=this._slider._getInput(this.thumbPosition);A&&(this._ripple.radius=24,this._sliderInput=A,this._sliderInputEl=this._sliderInput._hostElement,this._ngZone.runOutsideAngular(()=>{let i=this._sliderInputEl,n=this._renderer;this._listenerCleanups=[n.listen(i,"pointermove",this._onPointerMove),n.listen(i,"pointerdown",this._onDragStart),n.listen(i,"pointerup",this._onDragEnd),n.listen(i,"pointerleave",this._onMouseLeave),n.listen(i,"focus",this._onFocus),n.listen(i,"blur",this._onBlur)]}))}ngOnDestroy(){this._listenerCleanups?.forEach(A=>A())}_onPointerMove=A=>{if(this._sliderInput._isFocused)return;let i=this._hostElement.getBoundingClientRect(),n=this._slider._isCursorOnSliderThumb(A,i);this._isHovered=n,n?this._showHoverRipple():this._hideRipple(this._hoverRippleRef)};_onMouseLeave=()=>{this._isHovered=!1,this._hideRipple(this._hoverRippleRef)};_onFocus=()=>{this._hideRipple(this._hoverRippleRef),this._showFocusRipple(),this._hostElement.classList.add("mdc-slider__thumb--focused")};_onBlur=()=>{this._isActive||this._hideRipple(this._focusRippleRef),this._isHovered&&this._showHoverRipple(),this._hostElement.classList.remove("mdc-slider__thumb--focused")};_onDragStart=A=>{A.button===0&&(this._isActive=!0,this._showActiveRipple())};_onDragEnd=()=>{this._isActive=!1,this._hideRipple(this._activeRippleRef),this._sliderInput._isFocused||this._hideRipple(this._focusRippleRef),this._platform.SAFARI&&this._showHoverRipple()};_showHoverRipple(){this._isShowingRipple(this._hoverRippleRef)||(this._hoverRippleRef=this._showRipple({enterDuration:0,exitDuration:0}),this._hoverRippleRef?.element.classList.add("mat-mdc-slider-hover-ripple"))}_showFocusRipple(){this._isShowingRipple(this._focusRippleRef)||(this._focusRippleRef=this._showRipple({enterDuration:0,exitDuration:0},!0),this._focusRippleRef?.element.classList.add("mat-mdc-slider-focus-ripple"))}_showActiveRipple(){this._isShowingRipple(this._activeRippleRef)||(this._activeRippleRef=this._showRipple({enterDuration:225,exitDuration:400}),this._activeRippleRef?.element.classList.add("mat-mdc-slider-active-ripple"))}_isShowingRipple(A){return A?.state===Ws.FADING_IN||A?.state===Ws.VISIBLE}_showRipple(A,i){if(!this._slider.disabled&&(this._showValueIndicator(),this._slider._isRange&&this._slider._getThumb(this.thumbPosition===Ii.START?Ii.END:Ii.START)._showValueIndicator(),!(this._slider._globalRippleOptions?.disabled&&!i)))return this._ripple.launch({animation:this._slider._noopAnimations?{enterDuration:0,exitDuration:0}:A,centered:!0,persistent:!0})}_hideRipple(A){if(A?.fadeOut(),this._isShowingAnyRipple())return;this._slider._isRange||this._hideValueIndicator();let i=this._getSibling();i._isShowingAnyRipple()||(this._hideValueIndicator(),i._hideValueIndicator())}_showValueIndicator(){this._hostElement.classList.add("mdc-slider__thumb--with-indicator")}_hideValueIndicator(){this._hostElement.classList.remove("mdc-slider__thumb--with-indicator")}_getSibling(){return this._slider._getThumb(this.thumbPosition===Ii.START?Ii.END:Ii.START)}_getValueIndicatorContainer(){return this._valueIndicatorContainer?.nativeElement}_getKnob(){return this._knob.nativeElement}_isShowingAnyRipple(){return this._isShowingRipple(this._hoverRippleRef)||this._isShowingRipple(this._focusRippleRef)||this._isShowingRipple(this._activeRippleRef)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-slider-visual-thumb"]],viewQuery:function(i,n){if(i&1&&(st(Xs,5),st(DHA,5),st(wHA,5)),i&2){let o;de(o=Be())&&(n._ripple=o.first),de(o=Be())&&(n._knob=o.first),de(o=Be())&&(n._valueIndicatorContainer=o.first)}},hostAttrs:[1,"mdc-slider__thumb","mat-mdc-slider-visual-thumb"],inputs:{discrete:"discrete",thumbPosition:"thumbPosition",valueIndicatorText:"valueIndicatorText"},features:[ut([{provide:NcA,useExisting:t}])],decls:4,vars:2,consts:[["knob",""],["valueIndicatorContainer",""],[1,"mdc-slider__value-indicator-container"],[1,"mdc-slider__thumb-knob"],["matRipple","",1,"mat-focus-indicator",3,"matRippleDisabled"],[1,"mdc-slider__value-indicator"],[1,"mdc-slider__value-indicator-text"]],template:function(i,n){i&1&&(NA(0,yHA,5,1,"div",2),TA(1,"div",3,0)(3,"div",4)),i&2&&(_A(n.discrete?0:-1),_(3),yA("matRippleDisabled",!0))},dependencies:[Xs],styles:[".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}"],encapsulation:2,changeDetection:0})}return t})(),FcA=(()=>{class t{_ngZone=f(ye);_cdr=f(Et);_elementRef=f(se);_dir=f(po,{optional:!0});_globalRippleOptions=f(ZI,{optional:!0});_trackActive;_thumbs;_input;_inputs;get disabled(){return this._disabled}set disabled(A){this._disabled=A;let i=this._getInput(Ii.END),n=this._getInput(Ii.START);i&&(i.disabled=this._disabled),n&&(n.disabled=this._disabled)}_disabled=!1;get discrete(){return this._discrete}set discrete(A){this._discrete=A,this._updateValueIndicatorUIs()}_discrete=!1;showTickMarks=!1;get min(){return this._min}set min(A){let i=isNaN(A)?this._min:A;this._min!==i&&this._updateMin(i)}_min=0;color;disableRipple=!1;_updateMin(A){let i=this._min;this._min=A,this._isRange?this._updateMinRange({old:i,new:A}):this._updateMinNonRange(A),this._onMinMaxOrStepChange()}_updateMinRange(A){let i=this._getInput(Ii.END),n=this._getInput(Ii.START),o=i.value,r=n.value;n.min=A.new,i.min=Math.max(A.new,n.value),n.max=Math.min(i.max,i.value),n._updateWidthInactive(),i._updateWidthInactive(),A.newA.old?this._onTranslateXChangeBySideEffect(n,i):this._onTranslateXChangeBySideEffect(i,n),o!==i.value&&this._onValueChange(i),r!==n.value&&this._onValueChange(n)}_updateMaxNonRange(A){let i=this._getInput(Ii.END);if(i){let n=i.value;i.max=A,i._updateThumbUIByValue(),this._updateTrackUI(i),n!==i.value&&this._onValueChange(i)}}get step(){return this._step}set step(A){let i=isNaN(A)?this._step:A;this._step!==i&&this._updateStep(i)}_step=1;_updateStep(A){this._step=A,this._isRange?this._updateStepRange():this._updateStepNonRange(),this._onMinMaxOrStepChange()}_updateStepRange(){let A=this._getInput(Ii.END),i=this._getInput(Ii.START),n=A.value,o=i.value,r=i.value;A.min=this._min,i.max=this._max,A.step=this._step,i.step=this._step,this._platform.SAFARI&&(A.value=A.value,i.value=i.value),A.min=Math.max(this._min,i.value),i.max=Math.min(this._max,A.value),i._updateWidthInactive(),A._updateWidthInactive(),A.value`${A}`;_tickMarks;_noopAnimations;_dirChangeSubscription;_resizeObserver;_cachedWidth;_cachedLeft;_rippleRadius=24;startValueIndicatorText="";endValueIndicatorText="";_endThumbTransform;_startThumbTransform;_isRange=!1;_isRtl=!1;_hasViewInitialized=!1;_tickMarkTrackWidth=0;_hasAnimation=!1;_resizeTimer=null;_platform=f(ni);constructor(){f(Pn).load(Yr);let A=f(_i,{optional:!0});this._noopAnimations=A==="NoopAnimations",this._dir&&(this._dirChangeSubscription=this._dir.change.subscribe(()=>this._onDirChange()),this._isRtl=this._dir.value==="rtl")}_knobRadius=8;_inputPadding;ngAfterViewInit(){this._platform.isBrowser&&this._updateDimensions();let A=this._getInput(Ii.END),i=this._getInput(Ii.START);this._isRange=!!A&&!!i,this._cdr.detectChanges();let n=this._getThumb(Ii.END);this._rippleRadius=n._ripple.radius,this._inputPadding=this._rippleRadius-this._knobRadius,this._isRange?this._initUIRange(A,i):this._initUINonRange(A),this._updateTrackUI(A),this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._observeHostResize(),this._cdr.detectChanges()}_initUINonRange(A){A.initProps(),A.initUI(),this._updateValueIndicatorUI(A),this._hasViewInitialized=!0,A._updateThumbUIByValue()}_initUIRange(A,i){A.initProps(),A.initUI(),i.initProps(),i.initUI(),A._updateMinMax(),i._updateMinMax(),A._updateStaticStyles(),i._updateStaticStyles(),this._updateValueIndicatorUIs(),this._hasViewInitialized=!0,A._updateThumbUIByValue(),i._updateThumbUIByValue()}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._resizeObserver?.disconnect(),this._resizeObserver=null}_onDirChange(){this._isRtl=this._dir?.value==="rtl",this._isRange?this._onDirChangeRange():this._onDirChangeNonRange(),this._updateTickMarkUI()}_onDirChangeRange(){let A=this._getInput(Ii.END),i=this._getInput(Ii.START);A._setIsLeftThumb(),i._setIsLeftThumb(),A.translateX=A._calcTranslateXByValue(),i.translateX=i._calcTranslateXByValue(),A._updateStaticStyles(),i._updateStaticStyles(),A._updateWidthInactive(),i._updateWidthInactive(),A._updateThumbUIByValue(),i._updateThumbUIByValue()}_onDirChangeNonRange(){this._getInput(Ii.END)._updateThumbUIByValue()}_observeHostResize(){typeof ResizeObserver>"u"||!ResizeObserver||this._ngZone.runOutsideAngular(()=>{this._resizeObserver=new ResizeObserver(()=>{this._isActive()||(this._resizeTimer&&clearTimeout(this._resizeTimer),this._onResize())}),this._resizeObserver.observe(this._elementRef.nativeElement)})}_isActive(){return this._getThumb(Ii.START)._isActive||this._getThumb(Ii.END)._isActive}_getValue(A=Ii.END){let i=this._getInput(A);return i?i.value:this.min}_skipUpdate(){return!!(this._getInput(Ii.START)?._skipUIUpdate||this._getInput(Ii.END)?._skipUIUpdate)}_updateDimensions(){this._cachedWidth=this._elementRef.nativeElement.offsetWidth,this._cachedLeft=this._elementRef.nativeElement.getBoundingClientRect().left}_setTrackActiveStyles(A){let i=this._trackActive.nativeElement.style;i.left=A.left,i.right=A.right,i.transformOrigin=A.transformOrigin,i.transform=A.transform}_calcTickMarkTransform(A){let i=A*(this._tickMarkTrackWidth/(this._tickMarks.length-1));return`translateX(${this._isRtl?this._cachedWidth-6-i:i}px`}_onTranslateXChange(A){this._hasViewInitialized&&(this._updateThumbUI(A),this._updateTrackUI(A),this._updateOverlappingThumbUI(A))}_onTranslateXChangeBySideEffect(A,i){this._hasViewInitialized&&(A._updateThumbUIByValue(),i._updateThumbUIByValue())}_onValueChange(A){this._hasViewInitialized&&(this._updateValueIndicatorUI(A),this._updateTickMarkUI(),this._cdr.detectChanges())}_onMinMaxOrStepChange(){this._hasViewInitialized&&(this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.markForCheck())}_onResize(){if(this._hasViewInitialized){if(this._updateDimensions(),this._isRange){let A=this._getInput(Ii.END),i=this._getInput(Ii.START);A._updateThumbUIByValue(),i._updateThumbUIByValue(),A._updateStaticStyles(),i._updateStaticStyles(),A._updateMinMax(),i._updateMinMax(),A._updateWidthInactive(),i._updateWidthInactive()}else{let A=this._getInput(Ii.END);A&&A._updateThumbUIByValue()}this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.detectChanges()}}_thumbsOverlap=!1;_areThumbsOverlapping(){let A=this._getInput(Ii.START),i=this._getInput(Ii.END);return!A||!i?!1:i.translateX-A.translateX<20}_updateOverlappingThumbClassNames(A){let i=A.getSibling(),n=this._getThumb(A.thumbPosition);this._getThumb(i.thumbPosition)._hostElement.classList.remove("mdc-slider__thumb--top"),n._hostElement.classList.toggle("mdc-slider__thumb--top",this._thumbsOverlap)}_updateOverlappingThumbUI(A){!this._isRange||this._skipUpdate()||this._thumbsOverlap!==this._areThumbsOverlapping()&&(this._thumbsOverlap=!this._thumbsOverlap,this._updateOverlappingThumbClassNames(A))}_updateThumbUI(A){if(this._skipUpdate())return;let i=this._getThumb(A.thumbPosition===Ii.END?Ii.END:Ii.START);i._hostElement.style.transform=`translateX(${A.translateX}px)`}_updateValueIndicatorUI(A){if(this._skipUpdate())return;let i=this.displayWith(A.value);if(this._hasViewInitialized?A._valuetext.set(i):A._hostElement.setAttribute("aria-valuetext",i),this.discrete){A.thumbPosition===Ii.START?this.startValueIndicatorText=i:this.endValueIndicatorText=i;let n=this._getThumb(A.thumbPosition);i.length<3?n._hostElement.classList.add("mdc-slider__thumb--short-value"):n._hostElement.classList.remove("mdc-slider__thumb--short-value")}}_updateValueIndicatorUIs(){let A=this._getInput(Ii.END),i=this._getInput(Ii.START);A&&this._updateValueIndicatorUI(A),i&&this._updateValueIndicatorUI(i)}_updateTickMarkTrackUI(){if(!this.showTickMarks||this._skipUpdate())return;let A=this._step&&this._step>0?this._step:1,n=(Math.floor(this.max/A)*A-this.min)/(this.max-this.min);this._tickMarkTrackWidth=(this._cachedWidth-6)*n}_updateTrackUI(A){this._skipUpdate()||(this._isRange?this._updateTrackUIRange(A):this._updateTrackUINonRange(A))}_updateTrackUIRange(A){let i=A.getSibling();if(!i||!this._cachedWidth)return;let n=Math.abs(i.translateX-A.translateX)/this._cachedWidth;A._isLeftThumb&&this._cachedWidth?this._setTrackActiveStyles({left:"auto",right:`${this._cachedWidth-i.translateX}px`,transformOrigin:"right",transform:`scaleX(${n})`}):this._setTrackActiveStyles({left:`${i.translateX}px`,right:"auto",transformOrigin:"left",transform:`scaleX(${n})`})}_updateTrackUINonRange(A){this._isRtl?this._setTrackActiveStyles({left:"auto",right:"0px",transformOrigin:"right",transform:`scaleX(${1-A.fillPercentage})`}):this._setTrackActiveStyles({left:"0px",right:"auto",transformOrigin:"left",transform:`scaleX(${A.fillPercentage})`})}_updateTickMarkUI(){if(!this.showTickMarks||this.step===void 0||this.min===void 0||this.max===void 0)return;let A=this.step>0?this.step:1;this._isRange?this._updateTickMarkUIRange(A):this._updateTickMarkUINonRange(A)}_updateTickMarkUINonRange(A){let i=this._getValue(),n=Math.max(Math.round((i-this.min)/A),0)+1,o=Math.max(Math.round((this.max-i)/A),0)-1;this._isRtl?n++:o++,this._tickMarks=Array(n).fill(YQ.ACTIVE).concat(Array(o).fill(YQ.INACTIVE))}_updateTickMarkUIRange(A){let i=this._getValue(),n=this._getValue(Ii.START),o=Math.max(Math.round((n-this.min)/A),0),r=Math.max(Math.round((i-n)/A)+1,0),s=Math.max(Math.round((this.max-i)/A),0);this._tickMarks=Array(o).fill(YQ.INACTIVE).concat(Array(r).fill(YQ.ACTIVE),Array(s).fill(YQ.INACTIVE))}_getInput(A){if(A===Ii.END&&this._input)return this._input;if(this._inputs?.length)return A===Ii.START?this._inputs.first:this._inputs.last}_getThumb(A){return A===Ii.END?this._thumbs?.last:this._thumbs?.first}_setTransition(A){this._hasAnimation=!this._platform.IOS&&A&&!this._noopAnimations,this._elementRef.nativeElement.classList.toggle("mat-mdc-slider-with-animation",this._hasAnimation)}_isCursorOnSliderThumb(A,i){let n=i.width/2,o=i.x+n,r=i.y+n,s=A.clientX-o,a=A.clientY-r;return Math.pow(s,2)+Math.pow(a,2)qK),multi:!0};var qK=(()=>{class t{_ngZone=f(ye);_elementRef=f(se);_cdr=f(Et);_slider=f(jK);_platform=f(ni);_listenerCleanups;get value(){return en(this._hostElement.value,0)}set value(A){A=isNaN(A)?0:A;let i=A+"";if(!this._hasSetInitialValue){this._initialValue=i;return}this._isActive||this._setValue(i)}_setValue(A){this._hostElement.value=A,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges(),this._slider._cdr.markForCheck()}valueChange=new YA;dragStart=new YA;dragEnd=new YA;get translateX(){return this._slider.min>=this._slider.max?(this._translateX=this._tickMarkOffset,this._translateX):(this._translateX===void 0&&(this._translateX=this._calcTranslateXByValue()),this._translateX)}set translateX(A){this._translateX=A}_translateX;thumbPosition=Ii.END;get min(){return en(this._hostElement.min,0)}set min(A){this._hostElement.min=A+"",this._cdr.detectChanges()}get max(){return en(this._hostElement.max,0)}set max(A){this._hostElement.max=A+"",this._cdr.detectChanges()}get step(){return en(this._hostElement.step,0)}set step(A){this._hostElement.step=A+"",this._cdr.detectChanges()}get disabled(){return ge(this._hostElement.disabled)}set disabled(A){this._hostElement.disabled=A,this._cdr.detectChanges(),this._slider.disabled!==this.disabled&&(this._slider.disabled=this.disabled)}get percentage(){return this._slider.min>=this._slider.max?this._slider._isRtl?1:0:(this.value-this._slider.min)/(this._slider.max-this._slider.min)}get fillPercentage(){return this._slider._cachedWidth?this._translateX===0?0:this.translateX/this._slider._cachedWidth:this._slider._isRtl?1:0}_hostElement=this._elementRef.nativeElement;_valuetext=Ao("");_knobRadius=8;_tickMarkOffset=3;_isActive=!1;_isFocused=!1;_setIsFocused(A){this._isFocused=A}_hasSetInitialValue=!1;_initialValue;_formControl;_destroyed=new qA;_skipUIUpdate=!1;_onChangeFn;_onTouchedFn=()=>{};_isControlInitialized=!1;constructor(){let A=f(qi);this._ngZone.runOutsideAngular(()=>{this._listenerCleanups=[A.listen(this._hostElement,"pointerdown",this._onPointerDown.bind(this)),A.listen(this._hostElement,"pointermove",this._onPointerMove.bind(this)),A.listen(this._hostElement,"pointerup",this._onPointerUp.bind(this))]})}ngOnDestroy(){this._listenerCleanups.forEach(A=>A()),this._destroyed.next(),this._destroyed.complete(),this.dragStart.complete(),this.dragEnd.complete()}initProps(){this._updateWidthInactive(),this.disabled!==this._slider.disabled&&(this._slider.disabled=!0),this.step=this._slider.step,this.min=this._slider.min,this.max=this._slider.max,this._initValue()}initUI(){this._updateThumbUIByValue()}_initValue(){this._hasSetInitialValue=!0,this._initialValue===void 0?this.value=this._getDefaultValue():(this._hostElement.value=this._initialValue,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges())}_getDefaultValue(){return this.min}_onBlur(){this._setIsFocused(!1),this._onTouchedFn()}_onFocus(){this._slider._setTransition(!1),this._slider._updateTrackUI(this),this._setIsFocused(!0)}_onChange(){this.valueChange.emit(this.value),this._isActive&&this._updateThumbUIByValue({withAnimation:!0})}_onInput(){this._onChangeFn?.(this.value),(this._slider.step||!this._isActive)&&this._updateThumbUIByValue({withAnimation:!0}),this._slider._onValueChange(this)}_onNgControlValueChange(){(!this._isActive||!this._isFocused)&&(this._slider._onValueChange(this),this._updateThumbUIByValue()),this._slider.disabled=this._formControl.disabled}_onPointerDown(A){if(!(this.disabled||A.button!==0)){if(this._platform.IOS){let i=this._slider._isCursorOnSliderThumb(A,this._slider._getThumb(this.thumbPosition)._hostElement.getBoundingClientRect());this._isActive=i,this._updateWidthActive(),this._slider._updateDimensions();return}this._isActive=!0,this._setIsFocused(!0),this._updateWidthActive(),this._slider._updateDimensions(),this._slider.step||this._updateThumbUIByPointerEvent(A,{withAnimation:!0}),this.disabled||(this._handleValueCorrection(A),this.dragStart.emit({source:this,parent:this._slider,value:this.value}))}}_handleValueCorrection(A){this._skipUIUpdate=!0,setTimeout(()=>{this._skipUIUpdate=!1,this._fixValue(A)},0)}_fixValue(A){let i=A.clientX-this._slider._cachedLeft,n=this._slider._cachedWidth,o=this._slider.step===0?1:this._slider.step,r=Math.floor((this._slider.max-this._slider.min)/o),s=this._slider._isRtl?1-i/n:i/n,c=Math.round(s*r)/r*(this._slider.max-this._slider.min)+this._slider.min,g=Math.round(c/o)*o,I=this.value;if(g===I){this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(A,{withAnimation:this._slider._hasAnimation});return}this.value=g,this.valueChange.emit(this.value),this._onChangeFn?.(this.value),this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(A,{withAnimation:this._slider._hasAnimation})}_onPointerMove(A){!this._slider.step&&this._isActive&&this._updateThumbUIByPointerEvent(A)}_onPointerUp(){this._isActive&&(this._isActive=!1,this._platform.SAFARI&&this._setIsFocused(!1),this.dragEnd.emit({source:this,parent:this._slider,value:this.value}),setTimeout(()=>this._updateWidthInactive(),this._platform.IOS?10:0))}_clamp(A){let i=this._tickMarkOffset,n=this._slider._cachedWidth-this._tickMarkOffset;return Math.max(Math.min(A,n),i)}_calcTranslateXByValue(){return this._slider._isRtl?(1-this.percentage)*(this._slider._cachedWidth-this._tickMarkOffset*2)+this._tickMarkOffset:this.percentage*(this._slider._cachedWidth-this._tickMarkOffset*2)+this._tickMarkOffset}_calcTranslateXByPointerEvent(A){return A.clientX-this._slider._cachedLeft}_updateWidthActive(){}_updateWidthInactive(){this._hostElement.style.padding=`0 ${this._slider._inputPadding}px`,this._hostElement.style.width=`calc(100% + ${this._slider._inputPadding-this._tickMarkOffset*2}px)`,this._hostElement.style.left=`-${this._slider._rippleRadius-this._tickMarkOffset}px`}_updateThumbUIByValue(A){this.translateX=this._clamp(this._calcTranslateXByValue()),this._updateThumbUI(A)}_updateThumbUIByPointerEvent(A,i){this.translateX=this._clamp(this._calcTranslateXByPointerEvent(A)),this._updateThumbUI(i)}_updateThumbUI(A){this._slider._setTransition(!!A?.withAnimation),this._slider._onTranslateXChange(this)}writeValue(A){(this._isControlInitialized||A!==null)&&(this.value=A)}registerOnChange(A){this._onChangeFn=A,this._isControlInitialized=!0}registerOnTouched(A){this._onTouchedFn=A}setDisabledState(A){this.disabled=A}focus(){this._hostElement.focus()}blur(){this._hostElement.blur()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["input","matSliderThumb",""]],hostAttrs:["type","range",1,"mdc-slider__input"],hostVars:1,hostBindings:function(i,n){i&1&&mA("change",function(){return n._onChange()})("input",function(){return n._onInput()})("blur",function(){return n._onBlur()})("focus",function(){return n._onFocus()}),i&2&&Ke("aria-valuetext",n._valuetext())},inputs:{value:[2,"value","value",en]},outputs:{valueChange:"valueChange",dragStart:"dragStart",dragEnd:"dragEnd"},exportAs:["matSliderThumb"],features:[ut([NHA,{provide:xcA,useExisting:t}])]})}return t})();var y7=class t{constructor(e,A,i){this.dialogRef=e;this.fb=A;this.data=i;this.evalMetrics=this.data.evalMetrics,this.evalForm=this.fb.group({tool_trajectory_avg_score_threshold:[this.getEvalMetricThresholdFromData("tool_trajectory_avg_score"),[Ac.required,Ac.min(0),Ac.max(1)]],response_match_score_threshold:[this.getEvalMetricThresholdFromData("response_match_score"),[Ac.required,Ac.min(0),Ac.max(1)]]})}evalForm;evalMetrics=[];getEvalMetricThresholdFromData(e){return this.evalMetrics.find(A=>A.metricName===e)?.threshold??0}onStart(){if(this.evalForm.valid){let{tool_trajectory_avg_score_threshold:e,response_match_score_threshold:A}=this.evalForm.value;for(let i of this.evalMetrics)i.metricName==="tool_trajectory_avg_score"?i.threshold=e:i.metricName==="response_match_score"&&(i.threshold=A);this.dialogRef.close(this.evalMetrics)}}onCancel(){this.dialogRef.close(null)}static \u0275fac=function(A){return new(A||t)(Ge(fr),Ge(gz),Ge(Cs))};static \u0275cmp=jA({type:t,selectors:[["app-run-eval-config-dialog"]],decls:26,vars:3,consts:[[1,"dialog-container"],["mat-dialog-title","",1,"dialog-title"],[1,"eval-form",3,"formGroup"],[1,"metric-row"],[1,"metric-name"],[1,"flex-1","pl-4"],["min","0","max","1","step","0.1","thumbLabel","",1,"threshold-slider"],["matSliderThumb","","formControlName","tool_trajectory_avg_score_threshold"],[1,"threshold-value"],["matSliderThumb","","formControlName","response_match_score_threshold"],["align","end",1,"dialog-actions"],["mat-button","",1,"cancel-button",3,"click"],["mat-button","",1,"save-button",3,"click"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2,"EVALUATION METRIC"),N(),S(3,"mat-dialog-content")(4,"form",2)(5,"div",3)(6,"div",4),AA(7,"Tool trajectory avg score: "),N(),S(8,"div",5)(9,"mat-slider",6),TA(10,"input",7),N(),S(11,"span",8),AA(12),N()()(),S(13,"div",3)(14,"div",4),AA(15,"Response match score: "),N(),S(16,"div",5)(17,"mat-slider",6),TA(18,"input",9),N(),S(19,"span",8),AA(20),N()()()()(),S(21,"mat-dialog-actions",10)(22,"button",11),mA("click",function(){return i.onCancel()}),AA(23,"Cancel"),N(),S(24,"button",12),mA("click",function(){return i.onStart()}),AA(25,"Start"),N()()()),A&2&&(_(4),yA("formGroup",i.evalForm),_(8),It(" ",i.evalForm.controls.tool_trajectory_avg_score_threshold.value," "),_(8),It(" ",i.evalForm.controls.response_match_score_threshold.value," "))},dependencies:[Ls,ya,Mr,az,kc,Ss,ez,cB,YI,gk,FcA,qK,va,dr],styles:[".dialog-container[_ngcontent-%COMP%]{border-radius:12px;padding:18px;width:500px;box-shadow:0 8px 16px var(--run-eval-config-dialog-container-box-shadow-color)}.threshold-slider[_ngcontent-%COMP%]{--mdc-slider-active-track-color: var(--run-eval-config-dialog-threshold-slider-active-track-color);--mdc-slider-inactive-track-color: var(--run-eval-config-dialog-threshold-slider-inactive-track-color);--mdc-slider-handle-color: var(--run-eval-config-dialog-threshold-slider-handle-color);--mdc-slider-ripple-color: var(--run-eval-config-dialog-threshold-slider-ripple-color);width:100px}.metric-row[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center}.metric-name[_ngcontent-%COMP%]{width:250px}.threshold-value[_ngcontent-%COMP%]{margin-left:20px}.mdc-slider__thumb--with-indicator[_ngcontent-%COMP%]{background-color:var(--mdc-slider-handle-color, var(--run-eval-config-dialog-mdc-slider-thumb-background-color));border:none!important;box-shadow:none!important}"]})};var FHA=["determinateSpinner"];function _HA(t,e){if(t&1&&(ur(),S(0,"svg",11),TA(1,"circle",12),N()),t&2){let A=Y();Ke("viewBox",A._viewBox()),_(),mo("stroke-dasharray",A._strokeCircumference(),"px")("stroke-dashoffset",A._strokeCircumference()/2,"px")("stroke-width",A._circleStrokeWidth(),"%"),Ke("r",A._circleRadius())}}var GHA=new eA("mat-progress-spinner-default-options",{providedIn:"root",factory:KHA});function KHA(){return{diameter:_cA}}var _cA=100,UHA=10,GcA=(()=>{class t{_elementRef=f(se);_noopAnimations;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;_defaultColor="primary";_determinateCircle;constructor(){let A=f(_i,{optional:!0}),i=f(GHA);this._noopAnimations=A==="NoopAnimations"&&!!i&&!i._forceAnimations,this.mode=this._elementRef.nativeElement.nodeName.toLowerCase()==="mat-spinner"?"indeterminate":"determinate",i&&(i.color&&(this.color=this._defaultColor=i.color),i.diameter&&(this.diameter=i.diameter),i.strokeWidth&&(this.strokeWidth=i.strokeWidth))}mode;get value(){return this.mode==="determinate"?this._value:0}set value(A){this._value=Math.max(0,Math.min(100,A||0))}_value=0;get diameter(){return this._diameter}set diameter(A){this._diameter=A||0}_diameter=_cA;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(A){this._strokeWidth=A||0}_strokeWidth;_circleRadius(){return(this.diameter-UHA)/2}_viewBox(){let A=this._circleRadius()*2+this.strokeWidth;return`0 0 ${A} ${A}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return this.mode==="determinate"?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,n){if(i&1&&st(FHA,5),i&2){let o;de(o=Be())&&(n._determinateCircle=o.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,n){i&2&&(Ke("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow",n.mode==="determinate"?n.value:null)("mode",n.mode),Ro("mat-"+n.color),mo("width",n.diameter,"px")("height",n.diameter,"px")("--mdc-circular-progress-size",n.diameter+"px")("--mdc-circular-progress-active-indicator-width",n.diameter+"px"),he("_mat-animation-noopable",n._noopAnimations)("mdc-circular-progress--indeterminate",n.mode==="indeterminate"))},inputs:{color:"color",mode:"mode",value:[2,"value","value",en],diameter:[2,"diameter","diameter",en],strokeWidth:[2,"strokeWidth","strokeWidth",en]},exportAs:["matProgressSpinner"],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,n){if(i&1&&(NA(0,_HA,2,8,"ng-template",null,0,Gu),S(2,"div",2,1),ur(),S(4,"svg",3),TA(5,"circle",4),N()(),_I(),S(6,"div",5)(7,"div",6)(8,"div",7),rr(9,8),N(),S(10,"div",9),rr(11,8),N(),S(12,"div",10),rr(13,8),N()()()),i&2){let o=Cr(1);_(4),Ke("viewBox",n._viewBox()),_(),mo("stroke-dasharray",n._strokeCircumference(),"px")("stroke-dashoffset",n._strokeDashOffset(),"px")("stroke-width",n._circleStrokeWidth(),"%"),Ke("r",n._circleRadius()),_(4),yA("ngTemplateOutlet",o),_(2),yA("ngTemplateOutlet",o),_(2),yA("ngTemplateOutlet",o)}},dependencies:[Hu],styles:[".mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}"],encapsulation:2,changeDetection:0})}return t})();function JHA(t,e){if(t&1){let A=me();S(0,"div",1)(1,"div"),AA(2,"All eval sets"),N(),S(3,"mat-icon",2),mA("click",function(){QA(A);let n=Y();return uA(n.openNewEvalSetDialog())}),AA(4,"add"),N()()}}function YHA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",3)(2,"div",4),AA(3," Create New Evaluation Set "),N(),S(4,"div",5),AA(5," An evaluation set is a curated collection of evaluation cases, where each case includes input-output examples for assessing agent performance. "),N(),S(6,"div",6),mA("click",function(){QA(A);let n=Y();return uA(n.openNewEvalSetDialog())}),AA(7," Create Evaluation Set "),N()()()}}function THA(t,e){if(t&1){let A=me();S(0,"div",8),mA("click",function(){let n=QA(A).$implicit,o=Y(2);return uA(o.selectEvalSet(n))}),S(1,"div",9)(2,"span",10),AA(3,"folder"),N(),S(4,"div",11),AA(5),N()(),S(6,"div")(7,"mat-icon",12),AA(8,"chevron_right"),N()()()}if(t&2){let A=e.$implicit;_(5),tt(A)}}function HHA(t,e){if(t&1&&(S(0,"div"),dn(1,THA,9,1,"div",7,zn),N()),t&2){let A=Y();_(),Bn(A.evalsets)}}function OHA(t,e){if(t&1){let A=me();S(0,"th",29)(1,"mat-checkbox",30),mA("change",function(n){QA(A);let o=Y(4);return uA(n?o.toggleAllRows():null)}),N()()}if(t&2){let A=Y(4);_(),yA("checked",A.selection.hasValue()&&A.isAllSelected())("indeterminate",A.selection.hasValue()&&!A.isAllSelected())}}function zHA(t,e){if(t&1){let A=me();S(0,"td",31)(1,"mat-checkbox",32),mA("click",function(n){return QA(A),uA(n.stopPropagation())})("change",function(n){let o=QA(A).$implicit,r=Y(4);return uA(n?r.selection.toggle(o):null)}),N()()}if(t&2){let A=e.$implicit,i=Y(4);_(),yA("checked",i.selection.isSelected(A))}}function PHA(t,e){t&1&&(S(0,"th",29),AA(1," Case ID "),N())}function jHA(t,e){if(t&1){let A=me();S(0,"td",33),mA("click",function(){let n=QA(A).$implicit,o=Y(4);return uA(o.getEvalCase(n))}),AA(1),N()}if(t&2){let A,i=e.$implicit,n=Y(4);he("selected-eval-case",i===((A=n.selectedEvalCase())==null?null:A.evalId)),_(),It(" ",i," ")}}function qHA(t,e){t&1&&(S(0,"th",29),AA(1," Result "),N())}function VHA(t,e){if(t&1){let A=me();S(0,"button",35),mA("click",function(){QA(A);let n=Y().$implicit,o=Y(4);return uA(o.getSession(n))}),S(1,"span",36),AA(2),N(),S(3,"div",37),AA(4),N()()}if(t&2){let A=Y().$implicit,i=Y(4);yA("ngClass",i.getEvalResultForCase(A)==1?"result-btn pass":"result-btn fail"),_(2),It(" ",i.getEvalResultForCase(A)==1?"check":"close"," "),_(2),It("",i.getEvalResultForCase(A)==1?"Pass":"Fail"," ")}}function ZHA(t,e){if(t&1&&(S(0,"td",31),NA(1,VHA,5,3,"button",34),N()),t&2){let A=e.$implicit,i=Y(4);_(),_A(i.getEvalResultForCase(A)?1:-1)}}function WHA(t,e){t&1&&TA(0,"tr",38)}function XHA(t,e){t&1&&TA(0,"tr",39)}function $HA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",16)(2,"button",17),mA("click",function(){QA(A);let n=Y(3);return uA(n.openEvalConfigDialog())}),AA(3,"Run Evaluation"),N(),S(4,"mat-icon",18),mA("click",function(){QA(A);let n=Y(3);return uA(n.toggleEvalHistoryButton())}),AA(5,"history"),N()(),S(6,"div",19)(7,"table",20),S2(8,21),NA(9,OHA,2,2,"th",22)(10,zHA,2,1,"td",23),R2(),S2(11,24),NA(12,PHA,2,0,"th",22)(13,jHA,2,3,"td",25),R2(),S2(14,26),NA(15,qHA,2,0,"th",22)(16,ZHA,2,1,"td",23),R2(),NA(17,WHA,1,0,"tr",27)(18,XHA,1,0,"tr",28),N()()()}if(t&2){let A=Y(3);_(7),yA("dataSource",A.dataSource),_(10),yA("matHeaderRowDef",A.displayedColumns),_(),yA("matRowDefColumns",A.displayedColumns)}}function AOA(t,e){if(t&1&&(S(0,"div")(1,"span",50),AA(2,"|"),N(),S(3,"span",51),AA(4),N()()),t&2){let A=Y().$implicit,i=Y(4);_(4),It("",i.getFailCountForCurrentResult(A.evaluationResults.evaluationResults)," Failed")}}function eOA(t,e){if(t&1&&(S(0,"span",52),AA(1),N()),t&2){let A=e.$implicit;_(),x2(" ",A.metricName,": ",A.threshold," ")}}function tOA(t,e){if(t&1&&(S(0,"div",46),dn(1,eOA,2,2,"span",52,zn),N()),t&2){let A=Y().$implicit,i=Y(4);_(),Bn(i.getEvalMetrics(A))}}function iOA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",53)(2,"span"),AA(3),N(),S(4,"button",54),mA("click",function(){let n=QA(A).$implicit,o=Y(6);return uA(o.getHistorySession(n))}),S(5,"span",36),AA(6),N(),S(7,"div",37),AA(8),N()()()()}if(t&2){let A=e.$implicit;_(3),It(" ",A.evalId," "),_(),yA("ngClass",A.finalEvalStatus==1?"result-btn pass":"result-btn fail"),_(2),It(" ",A.finalEvalStatus==1?"check":"close"," "),_(2),It("",A.finalEvalStatus==1?"PASS":"FAIL"," ")}}function nOA(t,e){if(t&1&&(S(0,"div",49),dn(1,iOA,9,4,"div",null,zn),N()),t&2){let A=Y().$implicit,i=Y(4);_(),Bn(i.generateHistoryEvaluationDatasource(A.timestamp))}}function oOA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",40)(2,"div",41)(3,"div",42)(4,"div",43),AA(5),N(),S(6,"div",44)(7,"span",45),AA(8),N(),NA(9,AOA,5,1,"div"),N(),NA(10,tOA,3,0,"div",46),N(),S(11,"div",47)(12,"mat-icon",48),mA("click",function(){let n=QA(A).$implicit,o=Y(4);return uA(o.toggleHistoryStatusCard(n.timestamp))}),AA(13),N()()(),NA(14,nOA,3,0,"div",49),N()()}if(t&2){let A=e.$implicit,i=Y(4);_(5),tt(i.formatTimestamp(A.timestamp)),_(3),It("",i.getPassCountForCurrentResult(A.evaluationResults.evaluationResults)," Passed"),_(),_A(i.getFailCountForCurrentResult(A.evaluationResults.evaluationResults)>0?9:-1),_(),_A(i.getEvalMetrics(A)?10:-1),_(3),tt(i.getEvaluationStatusCardActionButtonIcon(A.timestamp)),_(),_A(i.isEvaluationStatusCardToggled(A.timestamp)?14:-1)}}function rOA(t,e){if(t&1&&(S(0,"div"),dn(1,oOA,15,6,"div",null,zn),N()),t&2){let A=Y(3);_(),Bn(A.getEvalHistoryOfCurrentSetSorted())}}function sOA(t,e){if(t&1&&(S(0,"div"),NA(1,$HA,19,3,"div")(2,rOA,3,0,"div"),N()),t&2){let A=Y(2);_(),_A(A.showEvalHistory()?-1:1),_(),_A(A.showEvalHistory()?2:-1)}}function aOA(t,e){if(t&1){let A=me();S(0,"button",55),mA("click",function(){QA(A);let n=Y(2);return uA(n.openNewEvalCaseDialog())}),S(1,"div",56)(2,"mat-icon"),AA(3,"add"),N(),S(4,"div",57),AA(5),N()()()}if(t&2){let A=Y(2);_(5),It(" Add current session to ",A.selectedEvalSet," ")}}function cOA(t,e){t&1&&(S(0,"div"),TA(1,"mat-spinner",58),N()),t&2&&(_(),yA("diameter",28)("strokeWidth",3))}function gOA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",9)(2,"mat-icon",13),mA("click",function(){QA(A);let n=Y();return uA(n.clearSelectedEvalSet())}),AA(3,"chevron_left"),N(),S(4,"div",14),mA("click",function(){QA(A);let n=Y();return uA(n.clearSelectedEvalSet())}),AA(5),N()(),NA(6,sOA,3,2,"div")(7,aOA,6,1,"button",15)(8,cOA,2,2,"div"),N()}if(t&2){let A=Y();_(5),It(" ",A.selectedEvalSet," "),_(),_A(A.evalCases.length>0&&!A.evalRunning()?6:-1),_(),_A(!A.evalRunning()&&!A.showEvalHistory()?7:-1),_(),_A(A.evalRunning()?8:-1)}}var g2=class t{checkboxes=MH(pf);appName=bs("");userId=bs("");sessionId=bs("");sessionSelected=GI();shouldShowTab=GI();evalNotInstalledMsg=GI();evalCaseSelected=GI();evalSetIdSelected=GI();shouldReturnToSession=GI();evalCasesSubject=new Fi([]);changeDetectorRef=f(Et);flagService=f(Gc);displayedColumns=["select","evalId","finalEvalStatus"];evalsets=[];selectedEvalSet="";evalCases=[];selectedEvalCase=Ao(null);deletedEvalCaseIndex=-1;dataSource=new wf(this.evalCases);selection=new P2(!0,[]);showEvalHistory=Ao(!1);evalRunning=Ao(!1);evalMetrics=RcA;currentEvalResultBySet=new Map;dialog=f(Fc);appEvaluationResults={};evalService=f(Rl);sessionService=f(A1);constructor(){this.evalCasesSubject.subscribe(e=>{!this.selectedEvalCase()&&this.deletedEvalCaseIndex>=0&&e.length>0?(this.selectNewEvalCase(e),this.deletedEvalCaseIndex=-1):e.length===0&&this.shouldReturnToSession.emit(!0)})}ngOnChanges(e){e.appName&&(this.selectedEvalSet="",this.evalCases=[],this.getEvalSet(),this.getEvaluationResult())}ngOnInit(){}selectNewEvalCase(e){let A=this.deletedEvalCaseIndex;this.deletedEvalCaseIndex===e.length&&(A=0),this.getEvalCase(e[A])}getEvalSet(){this.appName()!==""&&this.evalService.getEvalSets(this.appName()).pipe(Gr(e=>e.status===404&&e.statusText==="Not Found"?(this.shouldShowTab.emit(!1),Ce(null)):Ce([]))).subscribe(e=>{e!==null&&(this.shouldShowTab.emit(!0),this.evalsets=e)})}openNewEvalSetDialog(){this.dialog.open(w7,{width:"600px",data:{appName:this.appName()}}).afterClosed().subscribe(A=>{A&&this.getEvalSet()})}openNewEvalCaseDialog(){this.dialog.open(D7,{width:"600px",data:{appName:this.appName(),userId:this.userId(),sessionId:this.sessionId(),evalSetId:this.selectedEvalSet}}).afterClosed().subscribe(A=>{A&&this.listEvalCases()})}listEvalCases(){this.evalCases=[],this.evalService.listEvalCases(this.appName(),this.selectedEvalSet).subscribe(e=>{this.evalCases=e,this.dataSource=new wf(this.evalCases),this.evalCasesSubject.next(this.evalCases),this.changeDetectorRef.detectChanges()})}runEval(){if(this.evalRunning.set(!0),this.selection.selected.length==0){alert("No case selected!"),this.evalRunning.set(!1);return}this.evalService.runEval(this.appName(),this.selectedEvalSet,this.selection.selected,this.evalMetrics).pipe(Gr(e=>(e.error?.detail?.includes("not installed")&&this.evalNotInstalledMsg.emit(e.error.detail),Ce([])))).subscribe(e=>{this.evalRunning.set(!1),this.currentEvalResultBySet.set(this.selectedEvalSet,e),this.getEvaluationResult()})}selectEvalSet(e){this.selectedEvalSet=e,this.listEvalCases()}clearSelectedEvalSet(){if(this.showEvalHistory()){this.toggleEvalHistoryButton();return}this.selectedEvalSet=""}isAllSelected(){let e=this.selection.selected.length,A=this.dataSource.data.length;return e===A}toggleAllRows(){if(this.isAllSelected()){this.selection.clear();return}this.selection.select(...this.dataSource.data)}getEvalResultForCase(e){let A=this.currentEvalResultBySet.get(this.selectedEvalSet)?.filter(i=>i.evalId==e);if(!(!A||A.length==0))return A[0].finalEvalStatus}formatToolUses(e){let A=[];for(let i of e)A.push({name:i.name,args:i.args});return A}addEvalCaseResultToEvents(e,A){let i=A.evalMetricResultPerInvocation,n=-1;if(i)for(let o=0;on.evalId==e)[0],i=A.sessionId;this.sessionService.getSession(this.userId(),this.appName(),i).subscribe(n=>{this.addEvalCaseResultToEvents(n,A);let o=this.fromApiResultToSession(n);this.sessionSelected.emit(o)})}toggleEvalHistoryButton(){this.showEvalHistory.set(!this.showEvalHistory())}getEvalHistoryOfCurrentSet(){return this.appEvaluationResults[this.appName()][this.selectedEvalSet]}getEvalHistoryOfCurrentSetSorted(){let e=this.getEvalHistoryOfCurrentSet();return Object.keys(e).sort((n,o)=>o.localeCompare(n)).map(n=>({timestamp:n,evaluationResults:e[n]}))}getPassCountForCurrentResult(e){return e.filter(A=>A.finalEvalStatus==1).length}getFailCountForCurrentResult(e){return e.filter(A=>A.finalEvalStatus==2).length}formatTimestamp(e){let A=Number(e);if(isNaN(A))return"Invalid timestamp provided";let i=new Date(A*1e3);if(isNaN(i.getTime()))return"Invalid date created from timestamp";let n={month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0};return new Intl.DateTimeFormat("en-US",n).format(i)}getEvaluationStatusCardActionButtonIcon(e){return this.getEvalHistoryOfCurrentSet()[e].isToggled?"keyboard_arrow_up":"keyboard_arrow_down"}toggleHistoryStatusCard(e){this.getEvalHistoryOfCurrentSet()[e].isToggled=!this.getEvalHistoryOfCurrentSet()[e].isToggled}isEvaluationStatusCardToggled(e){return this.getEvalHistoryOfCurrentSet()[e].isToggled}generateHistoryEvaluationDatasource(e){return this.getEvalHistoryOfCurrentSet()[e].evaluationResults}getHistorySession(e){this.addEvalCaseResultToEvents(e.sessionDetails,e);let A=this.fromApiResultToSession(e.sessionDetails);this.sessionSelected.emit(A)}getEvalCase(e){this.evalService.getEvalCase(this.appName(),this.selectedEvalSet,e).subscribe(A=>{this.selectedEvalCase.set(A),this.evalCaseSelected.emit(A),this.evalSetIdSelected.emit(this.selectedEvalSet)})}resetEvalCase(){this.selectedEvalCase.set(null)}resetEvalResults(){this.currentEvalResultBySet.clear()}deleteEvalCase(e){this.evalService.deleteEvalCase(this.appName(),this.selectedEvalSet,e).subscribe(A=>{this.deletedEvalCaseIndex=this.evalCases.indexOf(e),this.selectedEvalCase.set(null),this.listEvalCases()})}getEvaluationResult(){this.evalService.listEvalResults(this.appName()).pipe(Gr(e=>e.status===404&&e.statusText==="Not Found"?(this.shouldShowTab.emit(!1),Ce(null)):Ce([]))).subscribe(e=>{for(let A of e)this.evalService.getEvalResult(this.appName(),A).subscribe(i=>{this.appEvaluationResults[this.appName()]||(this.appEvaluationResults[this.appName()]={}),this.appEvaluationResults[this.appName()][i.evalSetId]||(this.appEvaluationResults[this.appName()][i.evalSetId]={});let n=i.creationTimestamp;this.appEvaluationResults[this.appName()][i.evalSetId][n]||(this.appEvaluationResults[this.appName()][i.evalSetId][n]={isToggled:!1,evaluationResults:[]});let o={isToggled:!1,evaluationResults:i.evalCaseResults.map(r=>({setId:r.id,evalId:r.evalId,finalEvalStatus:r.finalEvalStatus,evalMetricResults:r.evalMetricResults,evalMetricResultPerInvocation:r.evalMetricResultPerInvocation,sessionId:r.sessionId,sessionDetails:r.sessionDetails,overallEvalMetricResults:r.overallEvalMetricResults??[]}))};this.appEvaluationResults[this.appName()][i.evalSetId][n]=o})})}openEvalConfigDialog(){if(this.selection.selected.length==0){alert("No case selected!");return}this.dialog.open(y7,{maxWidth:"90vw",maxHeight:"90vh",data:{evalMetrics:this.evalMetrics}}).afterClosed().subscribe(A=>{A&&(this.evalMetrics=A,this.runEval())})}getEvalMetrics(e){if(!e||!e.evaluationResults||!e.evaluationResults.evaluationResults)return this.evalMetrics;let A=e.evaluationResults.evaluationResults;return A.length===0?this.evalMetrics:typeof A[0].overallEvalMetricResults>"u"||!A[0].overallEvalMetricResults||A[0].overallEvalMetricResults.length===0?this.evalMetrics:A[0].overallEvalMetricResults.map(n=>({metricName:n.metricName,threshold:n.threshold}))}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-eval-tab"]],viewQuery:function(A,i){A&1&&ls(i.checkboxes,pf,5),A&2&&yc()},inputs:{appName:[1,"appName"],userId:[1,"userId"],sessionId:[1,"sessionId"]},outputs:{sessionSelected:"sessionSelected",shouldShowTab:"shouldShowTab",evalNotInstalledMsg:"evalNotInstalledMsg",evalCaseSelected:"evalCaseSelected",evalSetIdSelected:"evalSetIdSelected",shouldReturnToSession:"shouldReturnToSession"},features:[Xt],decls:5,vars:4,consts:[[1,"eval-container"],[1,"eval-set-actions"],["matTooltip","Create new evaluation set",2,"cursor","pointer",3,"click"],[1,"empty-eval-info"],[1,"info-title"],[1,"info-detail"],[1,"info-create",3,"click"],[1,"eval-set-row"],[1,"eval-set-row",3,"click"],[2,"display","flex"],[1,"material-symbols-outlined",2,"margin-right","10px","padding-top","16px"],[2,"font-family","Roboto","font-size","14px","padding","16px","padding-top","20px"],[2,"padding-top","20px","color","#9AA0A6"],[2,"color","white","cursor","pointer",3,"click"],[2,"color","#9AA0A6","padding-top","2px","cursor","pointer",3,"click"],[1,"save-session-btn"],[1,"evaluation-tab-header"],[1,"run-eval-btn",3,"click"],["matTooltip","View eval run history",1,"evaluation-history-icon",3,"click"],[1,"mat-table-container",2,"margin-top","16px"],["mat-table","",3,"dataSource"],["matColumnDef","select"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","evalId"],["mat-cell","","class","eval-case-id",3,"selected-eval-case","click",4,"matCellDef"],["matColumnDef","finalEvalStatus"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],[3,"change","checked","indeterminate"],["mat-cell",""],[3,"click","change","checked"],["mat-cell","",1,"eval-case-id",3,"click"],["matTooltip","View eval run result",3,"ngClass"],["matTooltip","View eval run result",3,"click","ngClass"],[1,"material-symbols-outlined"],[2,"padding-top","4px"],["mat-header-row",""],["mat-row",""],[1,"status-card"],[1,"status-card__overview"],[1,"status-card__info"],[1,"status-card__timestamp"],[1,"status-card__summary"],[1,"status-card__passed"],[1,"status-card__metrics"],[1,"status-card__action"],[3,"click"],[1,"status-card__history-cases"],[1,"status-card__separator"],[1,"status-card__failed"],[1,"status-card__metric"],[1,"status-card__history-case"],[3,"click","ngClass"],[1,"save-session-btn",3,"click"],[1,"save-session-btn-detail"],[1,"save-session-btn-text"],[1,"eval-spinner",3,"diameter","strokeWidth"]],template:function(A,i){A&1&&(S(0,"div",0),NA(1,JHA,5,0,"div",1)(2,YHA,8,0,"div")(3,HHA,3,0,"div")(4,gOA,9,4,"div"),N()),A&2&&(_(),_A(i.selectedEvalSet==""?1:-1),_(),_A(i.evalsets.length==0?2:-1),_(),_A(i.evalsets.length>0&&i.selectedEvalSet==""?3:-1),_(),_A(i.selectedEvalSet!=""?4:-1))},dependencies:[_c,kl,mcA,wcA,DcA,ycA,pf,pcA,vcA,Vs,McA,kcA,bcA,ScA,GcA],styles:[".eval-container[_ngcontent-%COMP%]{margin-top:20px;padding-left:25px;padding-right:25px}.eval-case-id[_ngcontent-%COMP%]{cursor:pointer}.eval-set-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between;color:var(--eval-tab-eval-set-actions-color);font-style:normal;font-weight:700;font-size:14px}.empty-eval-info[_ngcontent-%COMP%]{margin-top:12px;background-color:var(--eval-tab-empty-eval-info-background-color);border-radius:8px;box-shadow:0 2px 6px 2px var(--eval-tab-empty-eval-info-box-shadow-color1),0 1px 2px 0 var(--eval-tab-empty-eval-info-box-shadow-color2)}.info-title[_ngcontent-%COMP%]{color:var(--eval-tab-info-title-color);font-family:Roboto;font-size:14px;font-weight:500;padding-top:13px;padding-right:16px;padding-left:16px}.info-detail[_ngcontent-%COMP%]{color:var(--eval-tab-info-detail-color);font-family:Roboto;font-size:14px;font-weight:400;padding-top:13px;padding-right:16px;padding-left:16px;letter-spacing:.2px}.info-create[_ngcontent-%COMP%]{color:var(--eval-tab-info-create-color);font-size:14px;font-style:normal;font-weight:500;padding-right:16px;padding-left:16px;margin-top:19px;padding-bottom:16px;cursor:pointer}.eval-set-row[_ngcontent-%COMP%]{display:flex;justify-content:space-between;cursor:pointer}.selected-eval-case[_ngcontent-%COMP%]{font-weight:900;color:var(--eval-tab-selected-eval-case-color)}.save-session-btn[_ngcontent-%COMP%]{width:100%;background:linear-gradient(0deg,var(--eval-tab-save-session-btn-background-color1) 0%,var(--eval-tab-save-session-btn-background-color1) 100%),var(--eval-tab-save-session-btn-background-color2);border:none;border-radius:4px;margin-top:12px;cursor:pointer}.save-session-btn-detail[_ngcontent-%COMP%]{display:flex;padding:8px 16px 8px 12px;justify-content:center}.save-session-btn-text[_ngcontent-%COMP%]{padding-top:2px;color:var(--eval-tab-save-session-btn-text-color);font-family:Google Sans;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.run-eval-btn[_ngcontent-%COMP%]{border-radius:4px;border:1px solid var(--eval-tab-run-eval-btn-border-color);background-color:transparent;padding:8px 24px;margin-top:16px;color:var(--eval-tab-run-eval-btn-color);cursor:pointer}.run-eval-btn[_ngcontent-%COMP%]:hover{background-color:var(--eval-tab-run-eval-btn-hover-background-color)}.result-btn[_ngcontent-%COMP%]{display:flex;background-color:transparent;border-radius:4px;border:1px solid var(--eval-tab-result-btn-border-color);margin-top:4px;cursor:pointer}.result-btn[_ngcontent-%COMP%]:hover{background-color:var(--eval-tab-result-btn-hover-background-color)}.result-btn.pass[_ngcontent-%COMP%]{color:var(--eval-tab-result-btn-pass-color)}.result-btn.fail[_ngcontent-%COMP%]{color:var(--eval-tab-result-btn-fail-color)}.evaluation-tab-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%}.evaluation-history-icon[_ngcontent-%COMP%]{cursor:pointer;margin-top:4px}.status-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;border-radius:8px;background-color:var(--eval-tab-status-card-background-color);padding:12px 16px;margin-top:12px}.status-card__overview[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%}.status-card__info[_ngcontent-%COMP%]{display:flex;flex-direction:column}.status-card__timestamp[_ngcontent-%COMP%]{font-size:.9em;color:var(--eval-tab-status-card-timestamp-color);margin-bottom:5px}.status-card__summary[_ngcontent-%COMP%]{display:flex;align-items:center;font-size:.95em;font-weight:500}.status-card__metrics[_ngcontent-%COMP%]{display:flex;align-items:center;font-size:.75em;font-weight:300;margin-top:3px}.status-card__metric[_ngcontent-%COMP%]{width:180px;color:var(--eval-tab-status-card-metric-color)}.status-card__failed[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-failed-color)}.status-card__separator[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-separator-color);margin:0 8px}.status-card__passed[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-passed-color)}.status-card__action[_ngcontent-%COMP%]{display:flex;align-items:center}.status-card__action[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-action-mat-icon-color);cursor:pointer;transition:transform .2s ease-in-out}.status-card__action[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]:hover{opacity:.8}.status-card__action[_ngcontent-%COMP%] .status-card__icon[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-icon-color);font-size:1.2em;cursor:pointer}.status-card__action[_ngcontent-%COMP%] .status-card__icon[_ngcontent-%COMP%]:hover{opacity:.8}.status-card__history-cases[_ngcontent-%COMP%]{display:flex;flex-direction:column;margin-top:3px;justify-content:flex-start;width:100%}.status-card__history-case[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:15px}.eval-spinner[_ngcontent-%COMP%]{margin-top:12px}"],changeDetection:0})};function lOA(t,e){t&1&&(S(0,"h2",0),AA(1,"Events List"),N())}function IOA(t,e){t&1&&(S(0,"h2",0),AA(1,"Send Response To Pending Event"),N())}function COA(t,e){t&1&&(S(0,"h2",4),AA(1,"Events List"),N())}function dOA(t,e){t&1&&(S(0,"h2",4),AA(1,"Send Response To Pending Event"),N())}function BOA(t,e){if(t&1){let A=me();S(0,"div")(1,"p"),AA(2,"Name"),N(),S(3,"p"),AA(4),N(),S(5,"p"),AA(6,"Args"),N(),S(7,"p"),AA(8),N(),S(9,"mat-form-field",5)(10,"mat-label"),AA(11,"Response"),N(),S(12,"textarea",6),Xa("ngModelChange",function(n){QA(A);let o=Y();return Wa(o.selectedEvent.response,n)||(o.selectedEvent.response=n),uA(n)}),N()()()}if(t&2){let A=Y();_(4),tt(A.selectedEvent.name),_(4),tt(A.argsToJson(A.selectedEvent.args)),_(4),Za("ngModel",A.selectedEvent.response)}}function EOA(t,e){if(t&1){let A=me();S(0,"button",7),mA("click",function(){QA(A);let n=Y();return uA(n.sendResponse())}),AA(1),N()}if(t&2){let A=Y();yA("disabled",A.sending),_(),It(" ",A.sending?"Sending...":"Send"," ")}}var v7=class t{dialogRef=f(fr);data=f(Cs);agentService=f(HB);selectedEvent=this.data.event;appName=this.data.appName;userId=this.data.userId;sessionId=this.data.sessionId;functionCallEventId=this.data.functionCallEventId;sending=!1;response=[];constructor(){}argsToJson(e){return JSON.stringify(e)}sendResponse(){this.sending=!0;let e={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:[]},invocationId:this.data.invocationId};this.selectedEvent.response&&(e.functionCallEventId=this.functionCallEventId,e.newMessage.parts.push({function_response:{id:this.selectedEvent.id,name:this.selectedEvent.name,response:{response:this.selectedEvent.response}}})),this.agentService.runSse(e).subscribe({next:A=>Ni(this,null,function*(){this.response.push(A)}),error:A=>console.error("SSE error:",A),complete:()=>{this.sending=!1,this.dialogRef.close({response:this.response,events:[this.selectedEvent]})}})}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-pending-event-dialog"]],decls:10,vars:6,consts:[["mat-dialog-title",""],["mat-dialog-title","","class","dialog-title",4,"ngIf"],["mat-button","",3,"disabled"],["mat-button","","mat-dialog-close",""],["mat-dialog-title","",1,"dialog-title"],["appearance","outline",1,"response-textarea"],["matInput","",3,"ngModelChange","ngModel"],["mat-button","",3,"click","disabled"]],template:function(A,i){A&1&&(NA(0,lOA,2,0,"h2",0)(1,IOA,2,0,"h2",0)(2,COA,2,0,"h2",1)(3,dOA,2,0,"h2",1),S(4,"mat-dialog-content"),NA(5,BOA,13,3,"div"),N(),S(6,"mat-dialog-actions"),NA(7,EOA,2,2,"button",2),S(8,"button",3),AA(9,"Close"),N()()),A&2&&(_A(i.selectedEvent?-1:0),_(),_A(i.selectedEvent?1:-1),_(),yA("ngIf",!i.selectedEvent),_(),yA("ngIf",i.selectedEvent),_(2),_A(i.selectedEvent?5:-1),_(2),_A(i.selectedEvent&&i.selectedEvent.response?7:-1))},dependencies:[Ls,Tu,ya,fl,m6,J2,Mr,kc,Ss,tc,va,dr,bl],styles:[".response-textarea[_ngcontent-%COMP%]{min-width:500px;margin-top:15px}.dialog-title[_ngcontent-%COMP%]{font-weight:700;font-size:large}"]})};var yf=class t{constructor(e,A){this.dialogRef=e;this.data=A}onConfirm(){this.dialogRef.close(!0)}onCancel(){this.dialogRef.close(!1)}static \u0275fac=function(A){return new(A||t)(Ge(fr),Ge(Cs))};static \u0275cmp=jA({type:t,selectors:[["app-delete-session-dialog"]],decls:11,vars:4,consts:[[1,"confirm-delete-wrapper"],["mat-dialog-title",""],["align","end"],["mat-button","",3,"click"],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2),N(),S(3,"mat-dialog-content")(4,"p"),AA(5),N()(),S(6,"mat-dialog-actions",2)(7,"button",3),mA("click",function(){return i.onCancel()}),AA(8),N(),S(9,"button",4),mA("click",function(){return i.onConfirm()}),AA(10),N()()()),A&2&&(_(2),tt(i.data.title),_(3),tt(i.data.message),_(3),tt(i.data.cancelButtonText),_(2),tt(i.data.confirmButtonText))},dependencies:[Ls,ya,va,dr],encapsulation:2})};var XK=["*"];function QOA(t,e){t&1&&Ue(0)}var uOA=["tabListContainer"],hOA=["tabList"],fOA=["tabListInner"],mOA=["nextPaginator"],pOA=["previousPaginator"],DOA=t=>({animationDuration:t}),wOA=(t,e)=>({value:t,params:e});function yOA(t,e){}var vOA=["tabBodyWrapper"],MOA=["tabHeader"];function bOA(t,e){}function kOA(t,e){if(t&1&&NA(0,bOA,0,0,"ng-template",12),t&2){let A=Y().$implicit;yA("cdkPortalOutlet",A.templateLabel)}}function SOA(t,e){if(t&1&&AA(0),t&2){let A=Y().$implicit;tt(A.textLabel)}}function ROA(t,e){if(t&1){let A=me();S(0,"div",7,2),mA("click",function(){let n=QA(A),o=n.$implicit,r=n.$index,s=Y(),a=Cr(1);return uA(s._handleClick(o,a,r))})("cdkFocusChange",function(n){let o=QA(A).$index,r=Y();return uA(r._tabFocusChanged(n,o))}),TA(2,"span",8)(3,"div",9),S(4,"span",10)(5,"span",11),NA(6,kOA,1,1,null,12)(7,SOA,1,1),N()()()}if(t&2){let A=e.$implicit,i=e.$index,n=Cr(1),o=Y();Ro(A.labelClass),he("mdc-tab--active",o.selectedIndex===i),yA("id",o._getTabLabelId(i))("disabled",A.disabled)("fitInkBarToContent",o.fitInkBarToContent),Ke("tabIndex",o._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",o._tabs.length)("aria-controls",o._getTabContentId(i))("aria-selected",o.selectedIndex===i)("aria-label",A.ariaLabel||null)("aria-labelledby",!A.ariaLabel&&A.ariaLabelledby?A.ariaLabelledby:null),_(3),yA("matRippleTrigger",n)("matRippleDisabled",A.disabled||o.disableRipple),_(3),_A(A.templateLabel?6:7)}}function LOA(t,e){t&1&&Ue(0)}function xOA(t,e){if(t&1){let A=me();S(0,"mat-tab-body",13),mA("_onCentered",function(){QA(A);let n=Y();return uA(n._removeTabBodyWrapperHeight())})("_onCentering",function(n){QA(A);let o=Y();return uA(o._setTabBodyWrapperHeight(n))}),N()}if(t&2){let A=e.$implicit,i=e.$index,n=Y();Ro(A.bodyClass),he("mat-mdc-tab-body-active",n.selectedIndex===i),yA("id",n._getTabContentId(i))("content",A.content)("position",A.position)("origin",A.origin)("animationDuration",n.animationDuration)("preserveContent",n.preserveContent),Ke("tabindex",n.contentTabIndex!=null&&n.selectedIndex===i?n.contentTabIndex:null)("aria-labelledby",n._getTabLabelId(i))("aria-hidden",n.selectedIndex!==i)}}var NOA=new eA("MatTabContent"),FOA=(()=>{class t{template=f(mn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matTabContent",""]],features:[ut([{provide:NOA,useExisting:t}])]})}return t})(),_OA=new eA("MatTabLabel"),JcA=new eA("MAT_TAB"),$K=(()=>{class t extends sq{_closestTab=f(JcA,{optional:!0});static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[ut([{provide:_OA,useExisting:t}]),lt]})}return t})(),YcA=new eA("MAT_TAB_GROUP"),vf=(()=>{class t{_viewContainerRef=f(Sn);_closestTabGroup=f(YcA,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(A){this._setTemplateLabelInput(A)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new qA;position=null;origin=null;isActive=!1;constructor(){f(Pn).load(Yr)}ngOnChanges(A){(A.hasOwnProperty("textLabel")||A.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new Rs(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(A){A&&A._closestTab===this&&(this._templateLabel=A)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-tab"]],contentQueries:function(i,n,o){if(i&1&&(gi(o,$K,5),gi(o,FOA,7,mn)),i&2){let r;de(r=Be())&&(n.templateLabel=r.first),de(r=Be())&&(n._explicitContent=r.first)}},viewQuery:function(i,n){if(i&1&&st(mn,7),i&2){let o;de(o=Be())&&(n._implicitContent=o.first)}},hostAttrs:["hidden",""],inputs:{disabled:[2,"disabled","disabled",ge],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},exportAs:["matTab"],features:[ut([{provide:JcA,useExisting:t}]),Xt],ngContentSelectors:XK,decls:1,vars:0,template:function(i,n){i&1&&($t(),NA(0,QOA,1,0,"ng-template"))},encapsulation:2})}return t})(),VK="mdc-tab-indicator--active",KcA="mdc-tab-indicator--no-transition",ZK=class{_items;_currentItem;constructor(e){this._items=e}hide(){this._items.forEach(e=>e.deactivateInkBar()),this._currentItem=void 0}alignToElement(e){let A=this._items.find(n=>n.elementRef.nativeElement===e),i=this._currentItem;if(A!==i&&(i?.deactivateInkBar(),A)){let n=i?.elementRef.nativeElement.getBoundingClientRect?.();A.activateInkBar(n),this._currentItem=A}}},GOA=(()=>{class t{_elementRef=f(se);_inkBarElement;_inkBarContentElement;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(A){this._fitToContent!==A&&(this._fitToContent=A,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(A){let i=this._elementRef.nativeElement;if(!A||!i.getBoundingClientRect||!this._inkBarContentElement){i.classList.add(VK);return}let n=i.getBoundingClientRect(),o=A.width/n.width,r=A.left-n.left;i.classList.add(KcA),this._inkBarContentElement.style.setProperty("transform",`translateX(${r}px) scaleX(${o})`),i.getBoundingClientRect(),i.classList.remove(KcA),i.classList.add(VK),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(VK)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){let A=this._elementRef.nativeElement.ownerDocument||document,i=this._inkBarElement=A.createElement("span"),n=this._inkBarContentElement=A.createElement("span");i.className="mdc-tab-indicator",n.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",i.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){this._inkBarElement;let A=this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement;A.appendChild(this._inkBarElement)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",ge]}})}return t})();var TcA=(()=>{class t extends GOA{elementRef=f(se);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,n){i&2&&(Ke("aria-disabled",!!n.disabled),he("mat-mdc-tab-disabled",n.disabled))},inputs:{disabled:[2,"disabled","disabled",ge]},features:[lt]})}return t})(),UcA={passive:!0},KOA=650,UOA=100,JOA=(()=>{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_viewportRuler=f(Nc);_dir=f(po,{optional:!0});_ngZone=f(ye);_platform=f(ni);_sharedResizeObserver=f(h6);_injector=f(Zt);_renderer=f(qi);_animationMode=f(_i,{optional:!0});_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new qA;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged;_keyManager;_currentTextContent;_stopScrolling=new qA;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(A){let i=isNaN(A)?0:A;this._selectedIndex!=i&&(this._selectedIndexChanged=!0,this._selectedIndex=i,this._keyManager&&this._keyManager.updateActiveItem(i))}_selectedIndex=0;selectFocusedIndex=new YA;indexFocused=new YA;constructor(){this._eventCleanups=this._ngZone.runOutsideAngular(()=>[this._renderer.listen(this._elementRef.nativeElement,"mouseleave",()=>this._stopInterval())])}ngAfterViewInit(){this._eventCleanups.push(Bk(this._renderer,this._previousPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("before"),UcA),Bk(this._renderer,this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),UcA))}ngAfterContentInit(){let A=this._dir?this._dir.change:Ce("ltr"),i=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(ag(32),kt(this._destroyed)),n=this._viewportRuler.change(150).pipe(kt(this._destroyed)),o=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new zI(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(this._selectedIndex),Ir(o,{injector:this._injector}),Hn(A,n,i,this._items.changes,this._itemsResized()).pipe(kt(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),o()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(r=>{this.indexFocused.emit(r),this._setTabFocus(r)})}_itemsResized(){return typeof ResizeObserver!="function"?lr:this._items.changes.pipe(On(this._items),$n(A=>new gt(i=>this._ngZone.runOutsideAngular(()=>{let n=new ResizeObserver(o=>i.next(o));return A.forEach(o=>n.observe(o.elementRef.nativeElement)),()=>{n.disconnect()}}))),mI(1),Nt(A=>A.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._eventCleanups.forEach(A=>A()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(A){if(!sr(A))switch(A.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){let i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(A))}break;default:this._keyManager.onKeydown(A)}}_onContentChanges(){let A=this._elementRef.nativeElement.textContent;A!==this._currentTextContent&&(this._currentTextContent=A||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(A){!this._isValidIndex(A)||this.focusIndex===A||!this._keyManager||this._keyManager.setActiveItem(A)}_isValidIndex(A){return this._items?!!this._items.toArray()[A]:!0}_setTabFocus(A){if(this._showPaginationControls&&this._scrollToLabel(A),this._items&&this._items.length){this._items.toArray()[A].focus();let i=this._tabListContainer.nativeElement;this._getLayoutDirection()=="ltr"?i.scrollLeft=0:i.scrollLeft=i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;let A=this.scrollDistance,i=this._getLayoutDirection()==="ltr"?-A:A;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(A){this._scrollTo(A)}_scrollHeader(A){let i=this._tabListContainer.nativeElement.offsetWidth,n=(A=="before"?-1:1)*i/3;return this._scrollTo(this._scrollDistance+n)}_handlePaginatorClick(A){this._stopInterval(),this._scrollHeader(A)}_scrollToLabel(A){if(this.disablePagination)return;let i=this._items?this._items.toArray()[A]:null;if(!i)return;let n=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:o,offsetWidth:r}=i.elementRef.nativeElement,s,a;this._getLayoutDirection()=="ltr"?(s=o,a=s+r):(a=this._tabListInner.nativeElement.offsetWidth-o,s=a-r);let c=this.scrollDistance,g=this.scrollDistance+n;sg&&(this.scrollDistance+=Math.min(a-g,s-c))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{let A=this._tabListInner.nativeElement.scrollWidth,i=this._elementRef.nativeElement.offsetWidth,n=A-i>=5;n||(this.scrollDistance=0),n!==this._showPaginationControls&&(this._showPaginationControls=n,this._changeDetectorRef.markForCheck())}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=this.scrollDistance==0,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){let A=this._tabListInner.nativeElement.scrollWidth,i=this._tabListContainer.nativeElement.offsetWidth;return A-i||0}_alignInkBarToSelectedTab(){let A=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=A?A.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(A,i){i&&i.button!=null&&i.button!==0||(this._stopInterval(),fI(KOA,UOA).pipe(kt(Hn(this._stopScrolling,this._destroyed))).subscribe(()=>{let{maxScrollDistance:n,distance:o}=this._scrollHeader(A);(o===0||o>=n)&&this._stopInterval()}))}_scrollTo(A){if(this.disablePagination)return{maxScrollDistance:0,distance:0};let i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,A)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,inputs:{disablePagination:[2,"disablePagination","disablePagination",ge],selectedIndex:[2,"selectedIndex","selectedIndex",en]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return t})(),YOA=(()=>{class t extends JOA{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new ZK(this._items),super.ngAfterContentInit()}_itemSelected(A){A.preventDefault()}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-tab-header"]],contentQueries:function(i,n,o){if(i&1&&gi(o,TcA,4),i&2){let r;de(r=Be())&&(n._items=r)}},viewQuery:function(i,n){if(i&1&&(st(uOA,7),st(hOA,7),st(fOA,7),st(mOA,5),st(pOA,5)),i&2){let o;de(o=Be())&&(n._tabListContainer=o.first),de(o=Be())&&(n._tabList=o.first),de(o=Be())&&(n._tabListInner=o.first),de(o=Be())&&(n._nextPaginator=o.first),de(o=Be())&&(n._previousPaginator=o.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,n){i&2&&he("mat-mdc-tab-header-pagination-controls-enabled",n._showPaginationControls)("mat-mdc-tab-header-rtl",n._getLayoutDirection()=="rtl")},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",ge]},features:[lt],ngContentSelectors:XK,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"div",5,0),mA("click",function(){return QA(o),uA(n._handlePaginatorClick("before"))})("mousedown",function(s){return QA(o),uA(n._handlePaginatorPress("before",s))})("touchend",function(){return QA(o),uA(n._stopInterval())}),TA(2,"div",6),N(),S(3,"div",7,1),mA("keydown",function(s){return QA(o),uA(n._handleKeydown(s))}),S(5,"div",8,2),mA("cdkObserveContent",function(){return QA(o),uA(n._onContentChanges())}),S(7,"div",9,3),Ue(9),N()()(),S(10,"div",10,4),mA("mousedown",function(s){return QA(o),uA(n._handlePaginatorPress("after",s))})("click",function(){return QA(o),uA(n._handlePaginatorClick("after"))})("touchend",function(){return QA(o),uA(n._stopInterval())}),TA(12,"div",6),N()}i&2&&(he("mat-mdc-tab-header-pagination-disabled",n._disableScrollBefore),yA("matRippleDisabled",n._disableScrollBefore||n.disableRipple),_(3),he("_mat-animation-noopable",n._animationMode==="NoopAnimations"),_(2),Ke("aria-label",n.ariaLabel||null)("aria-labelledby",n.ariaLabelledby||null),_(5),he("mat-mdc-tab-header-pagination-disabled",n._disableScrollAfter),yA("matRippleDisabled",n._disableScrollAfter||n.disableRipple))},dependencies:[Xs,e6],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height, 1px);border-bottom-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-header-divider-height, 1px);border-top-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mdc-secondary-navigation-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}"],encapsulation:2})}return t})(),TOA=new eA("MAT_TABS_CONFIG"),HOA={translateTab:nc("translateTab",[$s("center, void, left-origin-center, right-origin-center",Do({transform:"none",visibility:"visible"})),$s("left",Do({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),$s("right",Do({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),$r("* => left, * => right, left => center, right => center",Is("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),$r("void => left-origin-center",[Do({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),Is("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),$r("void => right-origin-center",[Do({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),Is("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])},OOA=(()=>{class t extends wa{_host=f(HcA);_centeringSub=Kt.EMPTY;_leavingSub=Kt.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(On(this._host._isCenterPosition(this._host._position))).subscribe(A=>{this._host._content&&A&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matTabBodyHost",""]],features:[lt]})}return t})(),HcA=(()=>{class t{_elementRef=f(se);_dir=f(po,{optional:!0});_positionIndex;_dirChangeSubscription=Kt.EMPTY;_position;_translateTabComplete=new qA;_onCentering=new YA;_beforeCentering=new YA;_afterLeavingCenter=new YA;_onCentered=new YA(!0);_portalHost;_content;origin;animationDuration="500ms";preserveContent=!1;set position(A){this._positionIndex=A,this._computePositionAnimationState()}constructor(){if(this._dir){let A=f(Et);this._dirChangeSubscription=this._dir.change.subscribe(i=>{this._computePositionAnimationState(i),A.markForCheck()})}this._translateTabComplete.subscribe(A=>{this._isCenterPosition(A.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(A.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}ngOnInit(){this._position=="center"&&this.origin!=null&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(A){let i=this._isCenterPosition(A.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_isCenterPosition(A){return A=="center"||A=="left-origin-center"||A=="right-origin-center"}_computePositionAnimationState(A=this._getLayoutDirection()){this._positionIndex<0?this._position=A=="ltr"?"left":"right":this._positionIndex>0?this._position=A=="ltr"?"right":"left":this._position="center"}_computePositionFromOrigin(A){let i=this._getLayoutDirection();return i=="ltr"&&A<=0||i=="rtl"&&A>0?"left-origin-center":"right-origin-center"}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-tab-body"]],viewQuery:function(i,n){if(i&1&&st(wa,5),i&2){let o;de(o=Be())&&(n._portalHost=o.first)}},hostAttrs:[1,"mat-mdc-tab-body"],inputs:{_content:[0,"content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(i,n){if(i&1){let o=me();S(0,"div",1,0),mA("@translateTab.start",function(s){return QA(o),uA(n._onTranslateTabStarted(s))})("@translateTab.done",function(s){return QA(o),uA(n._translateTabComplete.next(s))}),NA(2,yOA,0,0,"ng-template",2),N()}i&2&&yA("@translateTab",Bg(3,wOA,n._position,vc(1,DOA,n.animationDuration)))},dependencies:[OOA,k0],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[HOA.translateTab]}})}return t})(),zOA=!0,M7=(()=>{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_animationMode=f(_i,{optional:!0});_allTabs;_tabBodyWrapper;_tabHeader;_tabs=new qa;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;_tabsSubscription=Kt.EMPTY;_tabLabelSubscription=Kt.EMPTY;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(A){this._fitInkBarToContent=A,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(A){this._indexToSelect=isNaN(A)?null:A}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(A){let i=A+"";this._animationDuration=/^\d+$/.test(i)?A+"ms":i}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(A){this._contentTabIndex=isNaN(A)?null:A}_contentTabIndex;disablePagination=!1;disableRipple=!1;preserveContent=!1;get backgroundColor(){return this._backgroundColor}set backgroundColor(A){if(!zOA)throw new Error("mat-tab-group background color must be set through the Sass theming API");let i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),A&&i.add("mat-tabs-with-background",`mat-background-${A}`),this._backgroundColor=A}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new YA;focusChange=new YA;animationDone=new YA;selectedTabChange=new YA(!0);_groupId;_isServer=!f(ni).isBrowser;constructor(){let A=f(TOA,{optional:!0});this._groupId=f(an).getId("mat-tab-group-"),this.animationDuration=A&&A.animationDuration?A.animationDuration:"500ms",this.disablePagination=A&&A.disablePagination!=null?A.disablePagination:!1,this.dynamicHeight=A&&A.dynamicHeight!=null?A.dynamicHeight:!1,A?.contentTabIndex!=null&&(this.contentTabIndex=A.contentTabIndex),this.preserveContent=!!A?.preserveContent,this.fitInkBarToContent=A&&A.fitInkBarToContent!=null?A.fitInkBarToContent:!1,this.stretchTabs=A&&A.stretchTabs!=null?A.stretchTabs:!0,this.alignTabs=A&&A.alignTabs!=null?A.alignTabs:null}ngAfterContentChecked(){let A=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=A){let i=this._selectedIndex==null;if(!i){this.selectedTabChange.emit(this._createChangeEvent(A));let n=this._tabBodyWrapper.nativeElement;n.style.minHeight=n.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((n,o)=>n.isActive=o===A),i||(this.selectedIndexChange.emit(A),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,n)=>{i.position=n-A,this._selectedIndex!=null&&i.position==0&&!i.origin&&(i.origin=A-this._selectedIndex)}),this._selectedIndex!==A&&(this._selectedIndex=A,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{let A=this._clampTabIndex(this._indexToSelect);if(A===this._selectedIndex){let i=this._tabs.toArray(),n;for(let o=0;o{i[A].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(A))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(On(this._allTabs)).subscribe(A=>{this._tabs.reset(A.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(A){let i=this._tabHeader;i&&(i.focusIndex=A)}_focusChanged(A){this._lastFocusedTabIndex=A,this.focusChange.emit(this._createChangeEvent(A))}_createChangeEvent(A){let i=new WK;return i.index=A,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[A]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=Hn(...this._tabs.map(A=>A._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(A){return Math.min(this._tabs.length-1,Math.max(A||0,0))}_getTabLabelId(A){return`${this._groupId}-label-${A}`}_getTabContentId(A){return`${this._groupId}-content-${A}`}_setTabBodyWrapperHeight(A){if(!this.dynamicHeight||!this._tabBodyWrapperHeight)return;let i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=A+"px")}_removeTabBodyWrapperHeight(){let A=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=A.clientHeight,A.style.height="",this.animationDone.emit()}_handleClick(A,i,n){i.focusIndex=n,A.disabled||(this.selectedIndex=n)}_getTabIndex(A){let i=this._lastFocusedTabIndex??this.selectedIndex;return A===i?0:-1}_tabFocusChanged(A,i){A&&A!=="mouse"&&A!=="touch"&&(this._tabHeader.focusIndex=i)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-tab-group"]],contentQueries:function(i,n,o){if(i&1&&gi(o,vf,5),i&2){let r;de(r=Be())&&(n._allTabs=r)}},viewQuery:function(i,n){if(i&1&&(st(vOA,5),st(MOA,5)),i&2){let o;de(o=Be())&&(n._tabBodyWrapper=o.first),de(o=Be())&&(n._tabHeader=o.first)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(i,n){i&2&&(Ke("mat-align-tabs",n.alignTabs),Ro("mat-"+(n.color||"primary")),mo("--mat-tab-animation-duration",n.animationDuration),he("mat-mdc-tab-group-dynamic-height",n.dynamicHeight)("mat-mdc-tab-group-inverted-header",n.headerPosition==="below")("mat-mdc-tab-group-stretch-tabs",n.stretchTabs))},inputs:{color:"color",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",ge],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",ge],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",ge],selectedIndex:[2,"selectedIndex","selectedIndex",en],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",en],disablePagination:[2,"disablePagination","disablePagination",ge],disableRipple:[2,"disableRipple","disableRipple",ge],preserveContent:[2,"preserveContent","preserveContent",ge],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[ut([{provide:YcA,useExisting:t}])],ngContentSelectors:XK,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","mat-mdc-tab-body-active","class","content","position","origin","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","id","content","position","origin","animationDuration","preserveContent"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"mat-tab-header",3,0),mA("indexFocused",function(s){return QA(o),uA(n._focusChanged(s))})("selectFocusedIndex",function(s){return QA(o),uA(n.selectedIndex=s)}),dn(2,ROA,8,17,"div",4,zn),N(),NA(4,LOA,1,0),S(5,"div",5,1),dn(7,xOA,1,13,"mat-tab-body",6,zn),N()}i&2&&(yA("selectedIndex",n.selectedIndex||0)("disableRipple",n.disableRipple)("disablePagination",n.disablePagination)("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby),_(2),Bn(n._tabs),_(2),_A(n._isServer?4:-1),_(),he("_mat-animation-noopable",n._animationMode==="NoopAnimations"),_(2),Bn(n._tabs))},dependencies:[YOA,TcA,Mz,Xs,wa,HcA],styles:['.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mdc-secondary-navigation-tab-container-height, 48px);font-family:var(--mat-tab-header-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-header-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-header-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-header-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-header-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-tab-indicator-active-indicator-height, 2px);border-radius:var(--mdc-tab-indicator-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2})}return t})(),WK=class{index;tab};var b7=new eA("LOGO_COMPONENT");function POA(t,e){t&1&&TA(0,"div",6)}function jOA(t,e){if(t&1&&(S(0,"div",3)(1,"div",5),dn(2,POA,1,0,"div",6,AB),N(),S(4,"span",7),AA(5),N(),S(6,"div",8),AA(7),S(8,"span",9),AA(9),N()(),S(10,"div",10)(11,"div",11),AA(12),N()()()),t&2){let A=e.$implicit,i=Y();_(2),Bn(i.getArray(A.level)),_(3),It(" ",i.getSpanIcon(A.span.name)," "),_(),mo("width",400-A.level*20,"px"),_(),It(" ",A.span.name," "),_(2),It(" (",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms) "),_(2),mo("left",i.getRelativeStart(A.span),"%")("width",i.getRelativeWidth(A.span),"%"),_(),It(" ",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms ")}}var k7=class t{constructor(e,A){this.dialogRef=e;this.data=A}tree=[];baseStartTimeMs=0;totalDurationMs=1;flatTree=[];traceLabelIconMap=new Map([["Invocation","start"],["agent_run","directions_run"],["invoke_agent","directions_run"],["tool","build"],["call_llm","chat"]]);ngOnInit(){this.tree=this.buildSpanTree(this.data.spans),this.flatTree=this.flattenTree(this.tree);let e=this.getGlobalTimes(this.data.spans);this.baseStartTimeMs=e.start,this.totalDurationMs=e.duration}buildSpanTree(e){let A=e.map(o=>sA({},o)),i=new Map,n=[];return A.forEach(o=>i.set(o.span_id,o)),A.forEach(o=>{if(o.parent_span_id&&i.has(o.parent_span_id)){let r=i.get(o.parent_span_id);r.children=r.children||[],r.children.push(o)}else n.push(o)}),n}getGlobalTimes(e){let A=Math.min(...e.map(n=>this.toMs(n.start_time))),i=Math.max(...e.map(n=>this.toMs(n.end_time)));return{start:A,duration:i-A}}toMs(e){return e/1e6}getRelativeStart(e){return(this.toMs(e.start_time)-this.baseStartTimeMs)/this.totalDurationMs*100}getRelativeWidth(e){return(this.toMs(e.end_time)-this.toMs(e.start_time))/this.totalDurationMs*100}flattenTree(e,A=0){return e.flatMap(n=>[{span:n,level:A},...n.children?this.flattenTree(n.children,A+1):[]])}getSpanIcon(e){for(let[A,i]of this.traceLabelIconMap.entries())if(e.startsWith(A))return i;return"start"}getArray(e){return Array.from({length:e})}static \u0275fac=function(A){return new(A||t)(Ge(fr),Ge(Cs))};static \u0275cmp=jA({type:t,selectors:[["app-trace-chart"]],decls:9,vars:1,consts:[["mat-dialog-title",""],[2,"margin-top","8px"],[1,"trace-container"],[1,"trace-row"],["mat-button","","mat-dialog-close",""],[1,"trace-indent"],[1,"indent-connector"],[1,"material-symbols-outlined",2,"margin-right","8px"],[1,"trace-label"],[1,"trace-duration"],[1,"trace-bar-container"],[1,"trace-bar"]],template:function(A,i){A&1&&(S(0,"h2",0),AA(1),N(),S(2,"mat-dialog-content",1)(3,"div",2),dn(4,jOA,13,10,"div",3,zn),N()(),S(6,"mat-dialog-actions")(7,"button",4),AA(8,"Close"),N()()),A&2&&(_(),It("Invocation ",i.data.invocId,""),_(3),Bn(i.flatTree))},dependencies:[Ls,ya,va,dr,bl],styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-label[_ngcontent-%COMP%]{width:400px;color:var(--trace-chart-trace-label-color);text-overflow:ellipsis;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px}.trace-bar-container[_ngcontent-%COMP%]{width:50vw;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:var(--trace-chart-trace-bar-background-color);border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:var(--trace-chart-trace-bar-color);font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:var(--trace-chart-trace-duration-color);font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:var(--trace-chart-vertical-line-background-color)}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:var(--trace-chart-horizontal-line-background-color)}"]})};var qOA=["button"],VOA=["*"];function ZOA(t,e){if(t&1&&(S(0,"div",2),TA(1,"mat-pseudo-checkbox",6),N()),t&2){let A=Y();_(),yA("disabled",A.disabled)}}var OcA=new eA("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:WOA});function WOA(){return{hideSingleSelectionIndicator:!1,hideMultipleSelectionIndicator:!1,disabledInteractive:!1}}var zcA=new eA("MatButtonToggleGroup"),XOA={provide:bc,useExisting:Ur(()=>AU),multi:!0},S7=class{source;value;constructor(e,A){this.source=e,this.value=A}},AU=(()=>{class t{_changeDetector=f(Et);_dir=f(po,{optional:!0});_multiple=!1;_disabled=!1;_disabledInteractive=!1;_selectionModel;_rawValue;_controlValueAccessorChangeFn=()=>{};_onTouched=()=>{};_buttonToggles;appearance;get name(){return this._name}set name(A){this._name=A,this._markButtonsForCheck()}_name=f(an).getId("mat-button-toggle-group-");vertical;get value(){let A=this._selectionModel?this._selectionModel.selected:[];return this.multiple?A.map(i=>i.value):A[0]?A[0].value:void 0}set value(A){this._setSelectionByValue(A),this.valueChange.emit(this.value)}valueChange=new YA;get selected(){let A=this._selectionModel?this._selectionModel.selected:[];return this.multiple?A:A[0]||null}get multiple(){return this._multiple}set multiple(A){this._multiple=A,this._markButtonsForCheck()}get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._markButtonsForCheck()}get disabledInteractive(){return this._disabledInteractive}set disabledInteractive(A){this._disabledInteractive=A,this._markButtonsForCheck()}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}change=new YA;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(A){this._hideSingleSelectionIndicator=A,this._markButtonsForCheck()}_hideSingleSelectionIndicator;get hideMultipleSelectionIndicator(){return this._hideMultipleSelectionIndicator}set hideMultipleSelectionIndicator(A){this._hideMultipleSelectionIndicator=A,this._markButtonsForCheck()}_hideMultipleSelectionIndicator;constructor(){let A=f(OcA,{optional:!0});this.appearance=A&&A.appearance?A.appearance:"standard",this.hideSingleSelectionIndicator=A?.hideSingleSelectionIndicator??!1,this.hideMultipleSelectionIndicator=A?.hideMultipleSelectionIndicator??!1}ngOnInit(){this._selectionModel=new P2(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(A=>A.checked)),this.multiple||this._initializeTabIndex()}writeValue(A){this.value=A,this._changeDetector.markForCheck()}registerOnChange(A){this._controlValueAccessorChangeFn=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A}_keydown(A){if(this.multiple||this.disabled)return;let n=A.target.id,o=this._buttonToggles.toArray().findIndex(s=>s.buttonId===n),r=null;switch(A.keyCode){case 32:case 13:r=this._buttonToggles.get(o)||null;break;case 38:r=this._getNextButton(o,-1);break;case 37:r=this._getNextButton(o,this.dir==="ltr"?-1:1);break;case 40:r=this._getNextButton(o,1);break;case 39:r=this._getNextButton(o,this.dir==="ltr"?1:-1);break;default:return}r&&(A.preventDefault(),r._onButtonClick(),r.focus())}_emitChangeEvent(A){let i=new S7(A,this.value);this._rawValue=i.value,this._controlValueAccessorChangeFn(i.value),this.change.emit(i)}_syncButtonToggle(A,i,n=!1,o=!1){!this.multiple&&this.selected&&!A.checked&&(this.selected.checked=!1),this._selectionModel?i?this._selectionModel.select(A):this._selectionModel.deselect(A):o=!0,o?Promise.resolve().then(()=>this._updateModelValue(A,n)):this._updateModelValue(A,n)}_isSelected(A){return this._selectionModel&&this._selectionModel.isSelected(A)}_isPrechecked(A){return typeof this._rawValue>"u"?!1:this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some(i=>A.value!=null&&i===A.value):A.value===this._rawValue}_initializeTabIndex(){if(this._buttonToggles.forEach(A=>{A.tabIndex=-1}),this.selected)this.selected.tabIndex=0;else for(let A=0;Athis._selectValue(n,i))):(this._clearSelection(),this._selectValue(A,i)),!this.multiple&&i.every(n=>n.tabIndex===-1)){for(let n of i)if(!n.disabled){n.tabIndex=0;break}}}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(A=>{A.checked=!1,this.multiple||(A.tabIndex=-1)})}_selectValue(A,i){for(let n of i)if(n.value===A){n.checked=!0,this._selectionModel.select(n),this.multiple||(n.tabIndex=0);break}}_updateModelValue(A,i){i&&this._emitChangeEvent(A),this.valueChange.emit(this.value)}_markButtonsForCheck(){this._buttonToggles?.forEach(A=>A._markForCheck())}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["mat-button-toggle-group"]],contentQueries:function(i,n,o){if(i&1&&gi(o,eU,5),i&2){let r;de(r=Be())&&(n._buttonToggles=r)}},hostAttrs:[1,"mat-button-toggle-group"],hostVars:6,hostBindings:function(i,n){i&1&&mA("keydown",function(r){return n._keydown(r)}),i&2&&(Ke("role",n.multiple?"group":"radiogroup")("aria-disabled",n.disabled),he("mat-button-toggle-vertical",n.vertical)("mat-button-toggle-group-appearance-standard",n.appearance==="standard"))},inputs:{appearance:"appearance",name:"name",vertical:[2,"vertical","vertical",ge],value:"value",multiple:[2,"multiple","multiple",ge],disabled:[2,"disabled","disabled",ge],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",ge],hideMultipleSelectionIndicator:[2,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",ge]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],features:[ut([XOA,{provide:zcA,useExisting:t}])]})}return t})(),eU=(()=>{class t{_changeDetectorRef=f(Et);_elementRef=f(se);_focusMonitor=f(Jr);_idGenerator=f(an);_animationMode=f(_i,{optional:!0});_checked=!1;ariaLabel;ariaLabelledby=null;_buttonElement;buttonToggleGroup;get buttonId(){return`${this.id}-button`}id;name;value;get tabIndex(){return this._tabIndex}set tabIndex(A){A!==this._tabIndex&&(this._tabIndex=A,this._markForCheck())}_tabIndex;disableRipple;get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(A){this._appearance=A}_appearance;get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(A){A!==this._checked&&(this._checked=A,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(A){this._disabled=A}_disabled=!1;get disabledInteractive(){return this._disabledInteractive||this.buttonToggleGroup!==null&&this.buttonToggleGroup.disabledInteractive}set disabledInteractive(A){this._disabledInteractive=A}_disabledInteractive;change=new YA;constructor(){f(Pn).load(Yr);let A=f(zcA,{optional:!0}),i=f(new Wr("tabindex"),{optional:!0})||"",n=f(OcA,{optional:!0});this._tabIndex=parseInt(i)||0,this.buttonToggleGroup=A,this.appearance=n&&n.appearance?n.appearance:"standard",this.disabledInteractive=n?.disabledInteractive??!1}ngOnInit(){let A=this.buttonToggleGroup;this.id=this.id||this._idGenerator.getId("mat-button-toggle-"),A&&(A._isPrechecked(this)?this.checked=!0:A._isSelected(this)!==this._checked&&A._syncButtonToggle(this,this._checked))}ngAfterViewInit(){this._animationMode!=="NoopAnimations"&&this._elementRef.nativeElement.classList.add("mat-button-toggle-animations-enabled"),this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){let A=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),A&&A._isSelected(this)&&A._syncButtonToggle(this,!1,!1,!0)}focus(A){this._buttonElement.nativeElement.focus(A)}_onButtonClick(){if(this.disabled)return;let A=this.isSingleSelector()?!0:!this._checked;if(A!==this._checked&&(this._checked=A,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.isSingleSelector()){let i=this.buttonToggleGroup._buttonToggles.find(n=>n.tabIndex===0);i&&(i.tabIndex=-1),this.tabIndex=0}this.change.emit(new S7(this,this.value))}_markForCheck(){this._changeDetectorRef.markForCheck()}_getButtonName(){return this.isSingleSelector()?this.buttonToggleGroup.name:this.name||null}isSingleSelector(){return this.buttonToggleGroup&&!this.buttonToggleGroup.multiple}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-button-toggle"]],viewQuery:function(i,n){if(i&1&&st(qOA,5),i&2){let o;de(o=Be())&&(n._buttonElement=o.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:14,hostBindings:function(i,n){i&1&&mA("focus",function(){return n.focus()}),i&2&&(Ke("aria-label",null)("aria-labelledby",null)("id",n.id)("name",null),he("mat-button-toggle-standalone",!n.buttonToggleGroup)("mat-button-toggle-checked",n.checked)("mat-button-toggle-disabled",n.disabled)("mat-button-toggle-disabled-interactive",n.disabledInteractive)("mat-button-toggle-appearance-standard",n.appearance==="standard"))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[2,"disableRipple","disableRipple",ge],appearance:"appearance",checked:[2,"checked","checked",ge],disabled:[2,"disabled","disabled",ge],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge]},outputs:{change:"change"},exportAs:["matButtonToggle"],ngContentSelectors:VOA,decls:7,vars:13,consts:[["button",""],["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"click","id","disabled"],[1,"mat-button-toggle-checkbox-wrapper"],[1,"mat-button-toggle-label-content"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"],["state","checked","aria-hidden","true","appearance","minimal",3,"disabled"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"button",1,0),mA("click",function(){return QA(o),uA(n._onButtonClick())}),NA(2,ZOA,2,1,"div",2),S(3,"span",3),Ue(4),N()(),TA(5,"span",4)(6,"span",5)}if(i&2){let o=Cr(1);yA("id",n.buttonId)("disabled",n.disabled&&!n.disabledInteractive||null),Ke("role",n.isSingleSelector()?"radio":"button")("tabindex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("aria-pressed",n.isSingleSelector()?null:n.checked)("aria-checked",n.isSingleSelector()?n.checked:null)("name",n._getButtonName())("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),_(2),_A(n.buttonToggleGroup&&(!n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideSingleSelectionIndicator||n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideMultipleSelectionIndicator)?2:-1),_(4),yA("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)}},dependencies:[Xs,Lk],styles:[".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0);border-radius:var(--mat-legacy-button-toggle-shape)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}@media(forced-colors: active){.mat-button-toggle-standalone,.mat-button-toggle-group{outline:solid 1px}}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,.mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}@media(forced-colors: active){.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{outline:0}}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-legacy-button-toggle-text-color);font-family:var(--mat-legacy-button-toggle-label-text-font);font-size:var(--mat-legacy-button-toggle-label-text-size);line-height:var(--mat-legacy-button-toggle-label-text-line-height);font-weight:var(--mat-legacy-button-toggle-label-text-weight);letter-spacing:var(--mat-legacy-button-toggle-label-text-tracking);--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-legacy-button-toggle-selected-state-text-color)}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-legacy-button-toggle-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle-checkbox-wrapper{display:inline-block;justify-content:flex-start;align-items:center;width:0;height:18px;line-height:18px;overflow:hidden;box-sizing:border-box;position:absolute;top:50%;left:16px;transform:translate3d(0, -50%, 0)}[dir=rtl] .mat-button-toggle-checkbox-wrapper{left:auto;right:16px}.mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:12px}[dir=rtl] .mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:auto;right:12px}.mat-button-toggle-checked .mat-button-toggle-checkbox-wrapper{width:18px}.mat-button-toggle-animations-enabled .mat-button-toggle-checkbox-wrapper{transition:width 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-checkbox-wrapper{transition:none}.mat-button-toggle-checked{color:var(--mat-legacy-button-toggle-selected-state-text-color);background-color:var(--mat-legacy-button-toggle-selected-state-background-color)}.mat-button-toggle-disabled{pointer-events:none;color:var(--mat-legacy-button-toggle-disabled-state-text-color);background-color:var(--mat-legacy-button-toggle-disabled-state-background-color);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-legacy-button-toggle-disabled-state-text-color)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-legacy-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-disabled-interactive{pointer-events:auto}.mat-button-toggle-appearance-standard{color:var(--mat-standard-button-toggle-text-color, var(--mat-sys-on-surface));background-color:var(--mat-standard-button-toggle-background-color, transparent);font-family:var(--mat-standard-button-toggle-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-standard-button-toggle-label-text-size, var(--mat-sys-label-large-size));line-height:var(--mat-standard-button-toggle-label-text-line-height, var(--mat-sys-label-large-line-height));font-weight:var(--mat-standard-button-toggle-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mat-standard-button-toggle-label-text-tracking, var(--mat-sys-label-large-tracking))}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container));background-color:var(--mat-standard-button-toggle-selected-state-background-color, var(--mat-sys-secondary-container))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-standard-button-toggle-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-state-background-color, transparent)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-selected-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-standard-button-toggle-state-layer-color, var(--mat-sys-on-surface))}.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-button-toggle-appearance-standard.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}@media(hover: none){.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-legacy-button-toggle-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-standard-button-toggle-height, 40px)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-legacy-button-toggle-state-layer-color)}@media(forced-colors: active){.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-animations-enabled .mat-button-toggle-button{transition:padding 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-button{transition:none}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}.mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:30px}[dir=rtl] .mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:0;padding-right:30px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{--mat-focus-indicator-border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}"],encapsulation:2,changeDetection:0})}return t})();var $OA=["*"],AzA='.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item{display:flex;position:relative;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer;padding-left:16px;padding-right:16px;background-color:var(--mdc-list-list-item-container-color, transparent);border-radius:var(--mdc-list-list-item-container-shape, var(--mat-sys-corner-none))}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item:focus{outline:0}.mdc-list-item.mdc-list-item--disabled{cursor:auto}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mdc-list-list-item-one-line-container-height, 48px)}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mdc-list-list-item-two-line-container-height, 64px)}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height, 88px)}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--selected::before,.mdc-list-item.mdc-list-item--selected:focus::before,.mdc-list-item:not(.mdc-list-item--selected):focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;content:"";pointer-events:none}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color, var(--mat-sys-on-surface-variant));width:var(--mdc-list-list-item-leading-icon-size, 24px);height:var(--mdc-list-list-item-leading-icon-size, 24px);margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mdc-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size, 40px);height:var(--mdc-list-list-item-leading-avatar-size, 40px);margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item--with-leading-avatar .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font, var(--mat-sys-label-small-font));line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height, var(--mat-sys-label-small-line-height));font-size:var(--mdc-list-list-item-trailing-supporting-text-size, var(--mat-sys-label-small-size));font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight, var(--mat-sys-label-small-weight));letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking, var(--mat-sys-label-small-tracking))}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color, var(--mat-sys-on-surface-variant));width:var(--mdc-list-list-item-trailing-icon-size, 24px);height:var(--mdc-list-list-item-trailing-icon-size, 24px)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color, var(--mat-sys-on-surface-variant))}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color, var(--mat-sys-primary))}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:var(--mdc-list-list-item-label-text-color, var(--mat-sys-on-surface));font-family:var(--mdc-list-list-item-label-text-font, var(--mat-sys-body-large-font));line-height:var(--mdc-list-list-item-label-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mdc-list-list-item-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-list-list-item-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-list-list-item-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;color:var(--mdc-list-list-item-supporting-text-color, var(--mat-sys-on-surface-variant));font-family:var(--mdc-list-list-item-supporting-text-font, var(--mat-sys-body-medium-font));line-height:var(--mdc-list-list-item-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mdc-list-list-item-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mdc-list-list-item-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mdc-list-list-item-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:16px}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:16px;padding-right:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-trailing-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:0;padding-right:0}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-webkit-user-select:none;user-select:none;margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;line-height:normal;align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-left:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-right:0}.mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-group__subheader{margin:.75rem 16px}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text{opacity:var(--mdc-list-list-item-disabled-label-text-opacity, 0.3)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-disabled-leading-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-leading-icon-opacity, 0.38)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-disabled-trailing-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity, 0.38)}.mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing,[dir=rtl] .mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing{padding-left:0;padding-right:0}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mdc-list-list-item-disabled-label-text-opacity, 0.3)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mdc-list-list-item-leading-avatar-shape, var(--mat-sys-corner-full));background-color:var(--mdc-list-list-item-leading-avatar-color, var(--mat-sys-primary-container))}.mat-mdc-list-item-icon{font-size:var(--mdc-list-list-item-leading-icon-size, 24px)}@media(forced-colors: active){a.mdc-list-item--activated::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:"";opacity:0;pointer-events:none;border-radius:inherit}.mat-mdc-list-item>.mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-focus-indicator::before{content:""}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:start}mat-action-list button::-moz-focus-inner{border:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-inline-start:var(--mat-list-list-item-leading-icon-start-space, 16px);margin-inline-end:var(--mat-list-list-item-leading-icon-end-space, 16px)}.mat-mdc-nav-list .mat-mdc-list-item{border-radius:var(--mat-list-active-indicator-shape, var(--mat-sys-corner-full));--mat-focus-indicator-border-radius:var(--mat-list-active-indicator-shape, var(--mat-sys-corner-full))}.mat-mdc-nav-list .mat-mdc-list-item.mdc-list-item--activated{background-color:var(--mat-list-active-indicator-color, var(--mat-sys-secondary-container))}',ezA=["unscopedContent"],tzA=["text"],izA=[[["","matListItemAvatar",""],["","matListItemIcon",""]],[["","matListItemTitle",""]],[["","matListItemLine",""]],"*",[["","matListItemMeta",""]],[["mat-divider"]]],nzA=["[matListItemAvatar],[matListItemIcon]","[matListItemTitle]","[matListItemLine]","*","[matListItemMeta]","mat-divider"];var ozA=new eA("ListOption"),rzA=(()=>{class t{_elementRef=f(se);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matListItemTitle",""]],hostAttrs:[1,"mat-mdc-list-item-title","mdc-list-item__primary-text"]})}return t})(),szA=(()=>{class t{_elementRef=f(se);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matListItemLine",""]],hostAttrs:[1,"mat-mdc-list-item-line","mdc-list-item__secondary-text"]})}return t})(),azA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matListItemMeta",""]],hostAttrs:[1,"mat-mdc-list-item-meta","mdc-list-item__end"]})}return t})(),PcA=(()=>{class t{_listOption=f(ozA,{optional:!0});constructor(){}_isAlignedAtStart(){return!this._listOption||this._listOption?._getTogglePosition()==="after"}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,hostVars:4,hostBindings:function(i,n){i&2&&he("mdc-list-item__start",n._isAlignedAtStart())("mdc-list-item__end",!n._isAlignedAtStart())}})}return t})(),czA=(()=>{class t extends PcA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matListItemAvatar",""]],hostAttrs:[1,"mat-mdc-list-item-avatar"],features:[lt]})}return t})(),gzA=(()=>{class t extends PcA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matListItemIcon",""]],hostAttrs:[1,"mat-mdc-list-item-icon"],features:[lt]})}return t})(),lzA=new eA("MAT_LIST_CONFIG"),tU=(()=>{class t{_isNonInteractive=!0;get disableRipple(){return this._disableRipple}set disableRipple(A){this._disableRipple=Ar(A)}_disableRipple=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=Ar(A)}_disabled=!1;_defaultOptions=f(lzA,{optional:!0});static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,hostVars:1,hostBindings:function(i,n){i&2&&Ke("aria-disabled",n.disabled)},inputs:{disableRipple:"disableRipple",disabled:"disabled"}})}return t})(),IzA=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);_listBase=f(tU,{optional:!0});_platform=f(ni);_hostElement;_isButtonElement;_noopAnimations;_avatars;_icons;set lines(A){this._explicitLines=Zs(A,null),this._updateItemLines(!1)}_explicitLines=null;get disableRipple(){return this.disabled||this._disableRipple||this._noopAnimations||!!this._listBase?.disableRipple}set disableRipple(A){this._disableRipple=Ar(A)}_disableRipple=!1;get disabled(){return this._disabled||!!this._listBase?.disabled}set disabled(A){this._disabled=Ar(A)}_disabled=!1;_subscriptions=new Kt;_rippleRenderer=null;_hasUnscopedTextContent=!1;rippleConfig;get rippleDisabled(){return this.disableRipple||!!this.rippleConfig.disabled}constructor(){f(Pn).load(Yr);let A=f(ZI,{optional:!0}),i=f(_i,{optional:!0});this.rippleConfig=A||{},this._hostElement=this._elementRef.nativeElement,this._isButtonElement=this._hostElement.nodeName.toLowerCase()==="button",this._noopAnimations=i==="NoopAnimations",this._listBase&&!this._listBase._isNonInteractive&&this._initInteractiveListItem(),this._isButtonElement&&!this._hostElement.hasAttribute("type")&&this._hostElement.setAttribute("type","button")}ngAfterViewInit(){this._monitorProjectedLinesAndTitle(),this._updateItemLines(!0)}ngOnDestroy(){this._subscriptions.unsubscribe(),this._rippleRenderer!==null&&this._rippleRenderer._removeTriggerEvents()}_hasIconOrAvatar(){return!!(this._avatars.length||this._icons.length)}_initInteractiveListItem(){this._hostElement.classList.add("mat-mdc-list-item-interactive"),this._rippleRenderer=new EB(this,this._ngZone,this._hostElement,this._platform,f(Zt)),this._rippleRenderer.setupTriggerEvents(this._hostElement)}_monitorProjectedLinesAndTitle(){this._ngZone.runOutsideAngular(()=>{this._subscriptions.add(Hn(this._lines.changes,this._titles.changes).subscribe(()=>this._updateItemLines(!1)))})}_updateItemLines(A){if(!this._lines||!this._titles||!this._unscopedContent)return;A&&this._checkDomForUnscopedTextContent();let i=this._explicitLines??this._inferLinesFromContent(),n=this._unscopedContent.nativeElement;if(this._hostElement.classList.toggle("mat-mdc-list-item-single-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-one-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-two-lines",i===2),this._hostElement.classList.toggle("mdc-list-item--with-three-lines",i===3),this._hasUnscopedTextContent){let o=this._titles.length===0&&i===1;n.classList.toggle("mdc-list-item__primary-text",o),n.classList.toggle("mdc-list-item__secondary-text",!o)}else n.classList.remove("mdc-list-item__primary-text"),n.classList.remove("mdc-list-item__secondary-text")}_inferLinesFromContent(){let A=this._titles.length+this._lines.length;return this._hasUnscopedTextContent&&(A+=1),A}_checkDomForUnscopedTextContent(){this._hasUnscopedTextContent=Array.from(this._unscopedContent.nativeElement.childNodes).filter(A=>A.nodeType!==A.COMMENT_NODE).some(A=>!!(A.textContent&&A.textContent.trim()))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,contentQueries:function(i,n,o){if(i&1&&(gi(o,czA,4),gi(o,gzA,4)),i&2){let r;de(r=Be())&&(n._avatars=r),de(r=Be())&&(n._icons=r)}},hostVars:4,hostBindings:function(i,n){i&2&&(Ke("aria-disabled",n.disabled)("disabled",n._isButtonElement&&n.disabled||null),he("mdc-list-item--disabled",n.disabled))},inputs:{lines:"lines",disableRipple:"disableRipple",disabled:"disabled"}})}return t})();var jcA=(()=>{class t extends tU{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-list"]],hostAttrs:[1,"mat-mdc-list","mat-mdc-list-base","mdc-list"],exportAs:["matList"],features:[ut([{provide:tU,useExisting:t}]),lt],ngContentSelectors:$OA,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},styles:[AzA],encapsulation:2,changeDetection:0})}return t})(),qcA=(()=>{class t extends IzA{_lines;_titles;_meta;_unscopedContent;_itemText;get activated(){return this._activated}set activated(A){this._activated=Ar(A)}_activated=!1;_getAriaCurrent(){return this._hostElement.nodeName==="A"&&this._activated?"page":null}_hasBothLeadingAndTrailing(){return this._meta.length!==0&&(this._avatars.length!==0||this._icons.length!==0)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-list-item"],["a","mat-list-item",""],["button","mat-list-item",""]],contentQueries:function(i,n,o){if(i&1&&(gi(o,szA,5),gi(o,rzA,5),gi(o,azA,5)),i&2){let r;de(r=Be())&&(n._lines=r),de(r=Be())&&(n._titles=r),de(r=Be())&&(n._meta=r)}},viewQuery:function(i,n){if(i&1&&(st(ezA,5),st(tzA,5)),i&2){let o;de(o=Be())&&(n._unscopedContent=o.first),de(o=Be())&&(n._itemText=o.first)}},hostAttrs:[1,"mat-mdc-list-item","mdc-list-item"],hostVars:13,hostBindings:function(i,n){i&2&&(Ke("aria-current",n._getAriaCurrent()),he("mdc-list-item--activated",n.activated)("mdc-list-item--with-leading-avatar",n._avatars.length!==0)("mdc-list-item--with-leading-icon",n._icons.length!==0)("mdc-list-item--with-trailing-meta",n._meta.length!==0)("mat-mdc-list-item-both-leading-and-trailing",n._hasBothLeadingAndTrailing())("_mat-animation-noopable",n._noopAnimations))},inputs:{activated:"activated"},exportAs:["matListItem"],features:[lt],ngContentSelectors:nzA,decls:10,vars:0,consts:[["unscopedContent",""],[1,"mdc-list-item__content"],[1,"mat-mdc-list-item-unscoped-content",3,"cdkObserveContent"],[1,"mat-focus-indicator"]],template:function(i,n){if(i&1){let o=me();$t(izA),Ue(0),S(1,"span",1),Ue(2,1),Ue(3,2),S(4,"span",2,0),mA("cdkObserveContent",function(){return QA(o),uA(n._updateItemLines(!0))}),Ue(6,3),N()(),Ue(7,4),Ue(8,5),TA(9,"div",3)}},dependencies:[e6],encapsulation:2,changeDetection:0})}return t})();var R7=class t{transform(e){if(e)return e.find(A=>A.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in A.attributes)?.attributes["gcp.vertex.agent.invocation_id"]}static \u0275fac=function(A){return new(A||t)};static \u0275pipe=$d({name:"invocId",type:t,pure:!0})};function CzA(t,e){t&1&&(S(0,"p"),AA(1,"Conversations"),N())}function dzA(t,e){t&1&&(S(0,"p"),AA(1,"Trace"),N())}function BzA(t,e){t&1&&(S(0,"mat-button-toggle",7),AA(1,"Trace"),N())}function EzA(t,e){if(t&1){let A=me();S(0,"mat-button-toggle-group",5),Xa("ngModelChange",function(n){QA(A);let o=Y(2);return Wa(o.view,n)||(o.view=n),uA(n)}),S(1,"mat-button-toggle",6),AA(2,"Events"),N(),NA(3,BzA,2,0,"mat-button-toggle",7),eo(4,"async"),N()}if(t&2){let A=Y(2);Za("ngModel",A.view),_(3),_A(Yo(4,2,A.isTraceEnabledObs)?3:-1)}}function QzA(t,e){if(t&1){let A=me();S(0,"mat-list-item",8),mA("click",function(){let n=QA(A).$implicit,o=Y(3);return uA(o.selectEvent(n.key))}),S(1,"span",9),AA(2),N(),S(3,"span",10),AA(4),N()()}if(t&2){let A=e.$implicit,i=e.$index;_(2),tt(i),_(2),tt(A.value.title)}}function uzA(t,e){if(t&1&&(S(0,"mat-list",4),dn(1,QzA,5,2,"mat-list-item",null,zn),eo(3,"keyvalue"),N()),t&2){let A=Y(2);_(),Bn(_u(3,0,A.eventsMap(),A.mapOrderPreservingSort))}}function hzA(t,e){if(t&1){let A=me();S(0,"mat-list-item",8),mA("click",function(){let n=QA(A).$implicit,o=Y(3);return uA(o.openDialog(n.key))}),S(1,"span",9),AA(2),N(),S(3,"span"),AA(4),eo(5,"invocId"),N()()}if(t&2){let A=e.$implicit,i=e.$index;_(2),tt(i),_(2),It("Invocation ",Yo(5,2,A.value),"")}}function fzA(t,e){if(t&1&&(S(0,"mat-list",4),dn(1,hzA,6,4,"mat-list-item",null,zn),eo(3,"keyvalue"),N()),t&2){let A=Y(2);_(),Bn(_u(3,0,A.spansByTraceId(),A.mapOrderPreservingSort))}}function mzA(t,e){if(t&1&&(S(0,"div",1)(1,"div",2),NA(2,CzA,2,0,"p")(3,dzA,2,0,"p")(4,EzA,5,4,"mat-button-toggle-group",3),N(),NA(5,uzA,4,3,"mat-list",4)(6,fzA,4,3,"mat-list",4),N()),t&2){let A=Y();_(2),_A(A.isTraceView()?-1:2),_(),_A(A.isTraceView()?3:-1),_(),_A(A.traceData().length>0?4:-1),_(),_A(A.isTraceView()?-1:5),_(),_A(A.isTraceView()?6:-1)}}function pzA(t,e){t&1&&(S(0,"div")(1,"p"),AA(2,"No conversations"),N()())}var TQ=class t{eventsMap=bs(new Map);traceData=bs([]);selectedEvent=new YA;dialog=f(Fc);featureFlagService=f(Gc);view=Ao("events");isTraceView=Mc(()=>this.view()==="trace");spansByTraceId=Mc(()=>!this.traceData()||this.traceData().length==0?new Map:this.traceData().reduce((e,A)=>{let i=A.trace_id,n=e.get(i);return n?(A.invoc_id=A.attributes?.["gcp.vertex.agent.invocation_id"],n.push(A),n.sort((o,r)=>o.start_time-r.start_time)):e.set(i,[A]),e},new Map));showJson=Array(this.eventsMap().size).fill(!1);isTraceEnabledObs=this.featureFlagService.isTraceEnabled();toggleJson(e){this.showJson[e]=!this.showJson[e]}selectEvent(e){this.selectedEvent.emit(e)}mapOrderPreservingSort=(e,A)=>0;findInvocId(e){return e.find(A=>A.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in A.attributes)?.attributes["gcp.vertex.agent.invocation_id"]}openDialog(e){let A=this.spansByTraceId().get(e);if(!A)return;let i=this.dialog.open(k7,{width:"auto",maxWidth:"90vw",data:{spans:A,invocId:this.findInvocId(A)}})}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-event-tab"]],inputs:{eventsMap:[1,"eventsMap"],traceData:[1,"traceData"]},outputs:{selectedEvent:"selectedEvent"},decls:3,vars:2,consts:[[1,"events-wrapper"],[1,"events-container"],[1,"event-header"],["name","fontStyle","aria-label","Font Style",2,"scale","0.8",3,"ngModel"],[1,"event-list"],["name","fontStyle","aria-label","Font Style",2,"scale","0.8",3,"ngModelChange","ngModel"],["value","events"],["value","trace"],[3,"click"],[1,"event-index"],[1,"event-title"]],template:function(A,i){A&1&&(S(0,"div",0),NA(1,mzA,7,5,"div",1)(2,pzA,3,0,"div"),N()),A&2&&(_(),_A(i.eventsMap().size>0?1:-1),_(),_A(i.eventsMap().size==0?2:-1))},dependencies:[AU,Mr,Ss,tc,eU,jcA,qcA,Ou,R7,Qg],styles:[".events-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;color:var(--event-tab-events-wrapper-color);font-size:14px;font-weight:700}.event-index[_ngcontent-%COMP%]{color:var(--event-tab-event-index-color);font-family:Roboto;font-size:14px;font-style:normal;font-weight:400;margin-right:10px}.event-title[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}.spacer[_ngcontent-%COMP%]{flex:1 1 auto}.events-container[_ngcontent-%COMP%]{margin-top:20px}.event-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;margin-top:20px}.function-event-button[_ngcontent-%COMP%]{margin-top:11px}.event-list[_ngcontent-%COMP%]{--mat-list-active-indicator-color: var(--event-tab-event-list-active-indicator-color)}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-container-color: var(--event-tab-event-list-list-item-container-color)}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-label-text-size: 14px}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-label-text-weight: 400}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-one-line-container-height: 52px}[_nghost-%COMP%] .mdc-list-item{border:1px solid var(--event-tab-mdc-list-item-border-color);cursor:pointer}[_nghost-%COMP%] .mdc-list-item:hover{background-color:var(--event-tab-mdc-list-item-hover-background-color)}.event-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"]})};function DzA(t,e){if(t&1){let A=me();S(0,"div",3),mA("click",function(){let n=QA(A).$implicit,o=Y();return uA(o.getSession(n.id))}),S(1,"div",4)(2,"div",5),AA(3),N(),S(4,"div",6),AA(5),N()()()}if(t&2){let A=e.$implicit,i=Y();yA("ngClass",A.id===i.sessionId?"session-item current":"session-item"),_(3),It(" ",A.id," "),_(2),tt(i.getDate(A))}}var HQ=class t{userId="";appName="";sessionId="";sessionSelected=new YA;sessionReloaded=new YA;sessionList=[];refreshSessionsSubject=new qA;changeDetectorRef=f(Et);sessionService=f(A1);constructor(){this.refreshSessionsSubject.pipe($n(()=>this.sessionService.listSessions(this.userId,this.appName))).subscribe(e=>{e=e.sort((A,i)=>Number(i.lastUpdateTime)-Number(A.lastUpdateTime)),this.sessionList=e,this.changeDetectorRef.detectChanges()})}ngOnInit(){setTimeout(()=>{this.refreshSessionsSubject.next()},500)}getSession(e){this.sessionService.getSession(this.userId,this.appName,e).subscribe(A=>{let i=this.fromApiResultToSession(A);this.sessionSelected.emit(i)})}getDate(e){let A=e.lastUpdateTime;return new Date(A*1e3).toLocaleString()}fromApiResultToSession(e){return{id:e?.id??"",appName:e?.appName??"",userId:e?.userId??"",state:e?.state??[],events:e?.events??[]}}reloadSession(e){this.sessionService.getSession(this.userId,this.appName,e).subscribe(A=>{let i=this.fromApiResultToSession(A);this.sessionReloaded.emit(i)})}refreshSession(e){if(this.refreshSessionsSubject.next(),!(this.sessionList.length<=1)){let A=this.sessionList.findIndex(i=>i.id==e);return A==this.sessionList.length-1&&(A=-1),this.sessionList[A+1]}}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-session-tab"]],inputs:{userId:"userId",appName:"appName",sessionId:"sessionId"},outputs:{sessionSelected:"sessionSelected",sessionReloaded:"sessionReloaded"},decls:4,vars:0,consts:[[1,"session-wrapper"],[1,"session-tab-container",2,"margin-top","16px"],[3,"ngClass"],[3,"click","ngClass"],[1,"session-info"],[1,"session-id"],[1,"session-date"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"div",1),dn(2,DzA,6,3,"div",2,zn),N()()),A&2&&(_(2),Bn(i.sessionList))},dependencies:[Vs],styles:[".session-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;color:var(--session-tab-session-wrapper-color);font-size:14px;font-weight:700}.session-item[_ngcontent-%COMP%]{display:flex;justify-content:space-between;border:none;background-color:var(--session-tab-session-item-background-color);border-radius:8px;margin-bottom:4px;cursor:pointer}.session-item[_ngcontent-%COMP%]:hover{background-color:var(--session-tab-session-item-hover-background-color)}.session-item.current[_ngcontent-%COMP%]{background-color:var(--session-tab-session-item-current-background-color)}.session-id[_ngcontent-%COMP%]{color:var(--session-tab-session-id-color);font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.session-date[_ngcontent-%COMP%]{color:var(--session-tab-session-date-color);font-family:Roboto;font-size:12px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.3px}.session-info[_ngcontent-%COMP%]{padding:11px}"]})};var L7=class t{sessionState={};constructor(){}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-state-tab"]],inputs:{sessionState:"sessionState"},decls:3,vars:1,consts:[[1,"state-wrapper"],[3,"json"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"div"),TA(2,"ngx-json-viewer",1),N()()),A&2&&(_(2),yA("json",i.sessionState))},dependencies:[Sl,X2],styles:[".state-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;margin-top:16px}"]})};var VcA=new eA("CdkAccordion");var ZcA=(()=>{class t{accordion=f(VcA,{optional:!0,skipSelf:!0});_changeDetectorRef=f(Et);_expansionDispatcher=f(b8);_openCloseAllSubscription=Kt.EMPTY;closed=new YA;opened=new YA;destroyed=new YA;expandedChange=new YA;id=f(an).getId("cdk-accordion-child-");get expanded(){return this._expanded}set expanded(A){if(this._expanded!==A){if(this._expanded=A,this.expandedChange.emit(A),A){this.opened.emit();let i=this.accordion?this.accordion.id:this.id;this._expansionDispatcher.notify(this.id,i)}else this.closed.emit();this._changeDetectorRef.markForCheck()}}_expanded=!1;disabled=!1;_removeUniqueSelectionListener=()=>{};constructor(){}ngOnInit(){this._removeUniqueSelectionListener=this._expansionDispatcher.listen((A,i)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===i&&this.id!==A&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(A=>{this.disabled||(this.expanded=A)})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[2,"expanded","expanded",ge],disabled:[2,"disabled","disabled",ge]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[ut([{provide:VcA,useValue:void 0}])]})}return t})();var wzA=["body"],yzA=["bodyWrapper"],vzA=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],MzA=["mat-expansion-panel-header","*","mat-action-row"];function bzA(t,e){}var kzA=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],SzA=["mat-panel-title","mat-panel-description","*"];function RzA(t,e){t&1&&(S(0,"span",1),ur(),S(1,"svg",2),TA(2,"path",3),N()())}var WcA=new eA("MAT_ACCORDION"),XcA=new eA("MAT_EXPANSION_PANEL"),LzA=(()=>{class t{_template=f(mn);_expansionPanel=f(XcA,{optional:!0});constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["ng-template","matExpansionPanelContent",""]]})}return t})(),$cA=new eA("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS"),iU=(()=>{class t extends ZcA{_viewContainerRef=f(Sn);_animationsDisabled=f(_i,{optional:!0})==="NoopAnimations";_document=f(at);_ngZone=f(ye);_elementRef=f(se);_renderer=f(qi);_cleanupTransitionEnd;get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(A){this._hideToggle=A}_hideToggle=!1;get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(A){this._togglePosition=A}_togglePosition;afterExpand=new YA;afterCollapse=new YA;_inputChanges=new qA;accordion=f(WcA,{optional:!0,skipSelf:!0});_lazyContent;_body;_bodyWrapper;_portal;_headerId=f(an).getId("mat-expansion-panel-header-");constructor(){super();let A=f($cA,{optional:!0});this._expansionDispatcher=f(b8),A&&(this.hideToggle=A.hideToggle)}_hasSpacing(){return this.accordion?this.expanded&&this.accordion.displayMode==="default":!1}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(On(null),Nt(()=>this.expanded&&!this._portal),Xn(1)).subscribe(()=>{this._portal=new Rs(this._lazyContent._template,this._viewContainerRef)}),this._setupAnimationEvents()}ngOnChanges(A){this._inputChanges.next(A)}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTransitionEnd?.(),this._inputChanges.complete()}_containsFocus(){if(this._body){let A=this._document.activeElement,i=this._body.nativeElement;return A===i||i.contains(A)}return!1}_transitionEndListener=({target:A,propertyName:i})=>{A===this._bodyWrapper?.nativeElement&&i==="grid-template-rows"&&this._ngZone.run(()=>{this.expanded?this.afterExpand.emit():this.afterCollapse.emit()})};_setupAnimationEvents(){this._ngZone.runOutsideAngular(()=>{this._animationsDisabled?(this.opened.subscribe(()=>this._ngZone.run(()=>this.afterExpand.emit())),this.closed.subscribe(()=>this._ngZone.run(()=>this.afterCollapse.emit()))):setTimeout(()=>{let A=this._elementRef.nativeElement;this._cleanupTransitionEnd=this._renderer.listen(A,"transitionend",this._transitionEndListener),A.classList.add("mat-expansion-panel-animations-enabled")},200)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-expansion-panel"]],contentQueries:function(i,n,o){if(i&1&&gi(o,LzA,5),i&2){let r;de(r=Be())&&(n._lazyContent=r.first)}},viewQuery:function(i,n){if(i&1&&(st(wzA,5),st(yzA,5)),i&2){let o;de(o=Be())&&(n._body=o.first),de(o=Be())&&(n._bodyWrapper=o.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:4,hostBindings:function(i,n){i&2&&he("mat-expanded",n.expanded)("mat-expansion-panel-spacing",n._hasSpacing())},inputs:{hideToggle:[2,"hideToggle","hideToggle",ge],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[ut([{provide:WcA,useValue:void 0},{provide:XcA,useExisting:t}]),lt,Xt],ngContentSelectors:MzA,decls:9,vars:4,consts:[["bodyWrapper",""],["body",""],[1,"mat-expansion-panel-content-wrapper"],["role","region",1,"mat-expansion-panel-content",3,"id"],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(i,n){i&1&&($t(vzA),Ue(0),S(1,"div",2,0)(3,"div",3,1)(5,"div",4),Ue(6,1),NA(7,bzA,0,0,"ng-template",5),N(),Ue(8,2),N()()),i&2&&(_(),Ke("inert",n.expanded?null:""),_(2),yA("id",n.id),Ke("aria-labelledby",n._headerId),_(4),yA("cdkPortalOutlet",n._portal))},dependencies:[wa],styles:[".mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden;position:relative;background:var(--mat-expansion-container-background-color, var(--mat-sys-surface));color:var(--mat-expansion-container-text-color, var(--mat-sys-on-surface));border-radius:var(--mat-expansion-container-shape, 12px)}.mat-expansion-panel.mat-expansion-panel-animations-enabled{transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape, 12px);border-top-left-radius:var(--mat-expansion-container-shape, 12px)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape, 12px);border-bottom-left-radius:var(--mat-expansion-container-shape, 12px)}@media(forced-colors: active){.mat-expansion-panel{outline:solid 1px}}.mat-expansion-panel-content-wrapper{display:grid;grid-template-rows:0fr;grid-template-columns:100%}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content-wrapper{transition:grid-template-rows 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{grid-template-rows:1fr}@supports not (grid-template-rows: 0fr){.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;min-height:0;visibility:hidden;font-family:var(--mat-expansion-container-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-expansion-container-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-expansion-container-text-weight, var(--mat-sys-body-large-weight));line-height:var(--mat-expansion-container-text-line-height, var(--mat-sys-body-large-line-height));letter-spacing:var(--mat-expansion-container-text-tracking, var(--mat-sys-body-large-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content{transition:visibility 190ms linear}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper>.mat-expansion-panel-content{visibility:visible}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color, var(--mat-sys-outline))}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}return t})();var AgA=(()=>{class t{panel=f(iU,{host:!0});_element=f(se);_focusMonitor=f(Jr);_changeDetectorRef=f(Et);_parentChangeSubscription=Kt.EMPTY;constructor(){f(Pn).load(Yr);let A=this.panel,i=f($cA,{optional:!0}),n=f(new Wr("tabindex"),{optional:!0}),o=A.accordion?A.accordion._stateChanges.pipe(Nt(r=>!!(r.hideToggle||r.togglePosition))):lr;this.tabIndex=parseInt(n||"")||0,this._parentChangeSubscription=Hn(A.opened,A.closed,o,A._inputChanges.pipe(Nt(r=>!!(r.hideToggle||r.disabled||r.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),A.closed.pipe(Nt(()=>A._containsFocus())).subscribe(()=>this._focusMonitor.focusVia(this._element,"program")),i&&(this.expandedHeight=i.expandedHeight,this.collapsedHeight=i.collapsedHeight)}expandedHeight;collapsedHeight;tabIndex=0;get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){let A=this._isExpanded();return A&&this.expandedHeight?this.expandedHeight:!A&&this.collapsedHeight?this.collapsedHeight:null}_keydown(A){switch(A.keyCode){case 32:case 13:sr(A)||(A.preventDefault(),this._toggle());break;default:this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(A);return}}focus(A,i){A?this._focusMonitor.focusVia(this._element,A,i):this._element.nativeElement.focus(i)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(A=>{A&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:13,hostBindings:function(i,n){i&1&&mA("click",function(){return n._toggle()})("keydown",function(r){return n._keydown(r)}),i&2&&(Ke("id",n.panel._headerId)("tabindex",n.disabled?-1:n.tabIndex)("aria-controls",n._getPanelId())("aria-expanded",n._isExpanded())("aria-disabled",n.panel.disabled),mo("height",n._getHeaderHeight()),he("mat-expanded",n._isExpanded())("mat-expansion-toggle-indicator-after",n._getTogglePosition()==="after")("mat-expansion-toggle-indicator-before",n._getTogglePosition()==="before"))},inputs:{expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight",tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:en(A)]},ngContentSelectors:SzA,decls:5,vars:3,consts:[[1,"mat-content"],[1,"mat-expansion-indicator"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 -960 960 960","aria-hidden","true","focusable","false"],["d","M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z"]],template:function(i,n){i&1&&($t(kzA),S(0,"span",0),Ue(1),Ue(2,1),Ue(3,2),N(),NA(4,RzA,3,0,"span",1)),i&2&&(he("mat-content-hide-toggle",!n._showToggle()),_(4),_A(n._showToggle()?4:-1))},styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;height:var(--mat-expansion-header-collapsed-state-height, 48px);font-family:var(--mat-expansion-header-text-font, var(--mat-sys-title-medium-font));font-size:var(--mat-expansion-header-text-size, var(--mat-sys-title-medium-size));font-weight:var(--mat-expansion-header-text-weight, var(--mat-sys-title-medium-weight));line-height:var(--mat-expansion-header-text-line-height, var(--mat-sys-title-medium-line-height));letter-spacing:var(--mat-expansion-header-text-tracking, var(--mat-sys-title-medium-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-header{transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header::before{border-radius:inherit}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height, 64px)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color, var(--mat-sys-surface))}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color, var(--mat-sys-on-surface))}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color, var(--mat-sys-on-surface-variant))}.mat-expansion-panel-animations-enabled .mat-expansion-indicator{transition:transform 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header.mat-expanded .mat-expansion-indicator{transform:rotate(180deg)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-legacy-header-indicator-display, none)}.mat-expansion-indicator svg{width:24px;height:24px;margin:0 -8px;vertical-align:middle;fill:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-header-indicator-display, inline-block)}@media(forced-colors: active){.mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}}'],encapsulation:2,changeDetection:0})}return t})();var egA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]})}return t})();function xzA(t,e){t&1&&TA(0,"div",8)}function NzA(t,e){if(t&1&&(S(0,"span",14),AA(1),N()),t&2){let A=Y().$implicit,i=Y();mo("left",i.getRelativeStart(A.span)+5,"%"),_(),It("",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms")}}function FzA(t,e){if(t&1){let A=me();S(0,"div",5),mA("click",function(){let n=QA(A).$implicit,o=Y();return uA(o.selectRow(n))})("mouseenter",function(){let n=QA(A).$implicit,o=Y();return uA(o.onHover(n))})("mouseleave",function(){QA(A);let n=Y();return uA(n.onHoverOut())}),S(1,"div",6)(2,"div",7),dn(3,xzA,1,0,"div",8,AB),N(),S(5,"span",9),AA(6),N(),S(7,"div",10),AA(8),N()(),S(9,"div",11)(10,"div",12),AA(11),N(),NA(12,NzA,2,3,"span",13),N()()}if(t&2){let A=e.$implicit,i=Y();he("selected",i.rowSelected(A)),_(3),Bn(i.getArray(A.level)),_(2),he("is-event-row",i.isEventRow(A)),_(),It(" ",i.getSpanIcon(A.span.name)," "),_(),mo("width",400-A.level*20,"px"),he("is-event-row",i.isEventRow(A)),_(),It(" ",A.span.name," "),_(2),mo("left",i.getRelativeStart(A.span),"%")("width",i.getRelativeWidth(A.span),"%"),_(),It(" ",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms "),_(),_A(i.getRelativeWidth(A.span)<10?12:-1)}}var x7=class t{spans=[];invocationId="";tree=[];eventData;baseStartTimeMs=0;totalDurationMs=1;flatTree=[];traceLabelIconMap=new Map([["Invocation","start"],["agent_run","directions_run"],["invoke_agent","directions_run"],["tool","build"],["call_llm","chat"]]);selectedRow=void 0;traceService=f(e1);constructor(){}ngOnInit(){this.tree=this.buildSpanTree(this.spans),this.flatTree=this.flattenTree(this.tree);let e=this.getGlobalTimes(this.spans);this.baseStartTimeMs=e.start,this.totalDurationMs=e.duration,this.traceService.selectedTraceRow$.subscribe(A=>this.selectedRow=A),this.traceService.eventData$.subscribe(A=>this.eventData=A)}buildSpanTree(e){let A=e.map(o=>sA({},o)),i=new Map,n=[];return A.forEach(o=>i.set(o.span_id,o)),A.forEach(o=>{if(o.parent_span_id&&i.has(o.parent_span_id)){let r=i.get(o.parent_span_id);r.children=r.children||[],r.children.push(o)}else n.push(o)}),n}getGlobalTimes(e){let A=Math.min(...e.map(n=>this.toMs(n.start_time))),i=Math.max(...e.map(n=>this.toMs(n.end_time)));return{start:A,duration:i-A}}toMs(e){return e/1e6}getRelativeStart(e){return(this.toMs(e.start_time)-this.baseStartTimeMs)/this.totalDurationMs*100}getRelativeWidth(e){return(this.toMs(e.end_time)-this.toMs(e.start_time))/this.totalDurationMs*100}flattenTree(e,A=0){return e.flatMap(n=>[{span:n,level:A},...n.children?this.flattenTree(n.children,A+1):[]])}getSpanIcon(e){for(let[A,i]of this.traceLabelIconMap.entries())if(e.startsWith(A))return i;return"start"}getArray(e){return Array.from({length:e})}selectRow(e){if(this.selectedRow&&this.selectedRow.span_id==e.span.span_id){this.traceService.selectedRow(void 0),this.traceService.setHoveredMessages(void 0,this.invocationId);return}this.traceService.selectedRow(e.span),this.traceService.setHoveredMessages(e.span,this.invocationId)}rowSelected(e){return this.selectedRow==e.span}isEventRow(e){if(!e.span.attributes)return!1;let A=e?.span.attributes["gcp.vertex.agent.event_id"];return!!(A&&this.eventData&&this.eventData.has(A))}onHover(e){this.traceService.setHoveredMessages(e.span,this.invocationId)}onHoverOut(){this.traceService.setHoveredMessages(void 0,this.invocationId),this.selectedRow&&this.traceService.setHoveredMessages(this.selectedRow,this.invocationId)}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-trace-tree"]],inputs:{spans:"spans",invocationId:"invocationId"},decls:8,vars:1,consts:[[2,"margin-top","15px"],[1,"invocation-id-container"],[1,"invocation-id"],[1,"trace-container"],[1,"trace-row",3,"selected"],[1,"trace-row",3,"click","mouseenter","mouseleave"],[1,"trace-row-left"],[1,"trace-indent"],[1,"indent-connector"],[1,"material-symbols-outlined",2,"margin-right","8px"],[1,"trace-label"],[1,"trace-bar-container"],[1,"trace-bar"],[1,"short-trace-bar-duration",3,"left"],[1,"short-trace-bar-duration"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"div",1),AA(2,"Invocation ID: "),S(3,"div",2),AA(4),N()(),S(5,"div",3),dn(6,FzA,13,16,"div",4,zn),N()()),A&2&&(_(4),tt(i.invocationId),_(2),Bn(i.flatTree))},styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-label[_ngcontent-%COMP%]{width:400px;color:var(--trace-tree-trace-label-color);font-family:Google Sans Mono,monospace;font-size:13px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.trace-bar-container[_ngcontent-%COMP%]{width:100%;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:var(--trace-tree-trace-bar-background-color);border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:var(--trace-tree-trace-bar-color);font-family:Google Sans}.short-trace-bar-duration[_ngcontent-%COMP%]{position:absolute;color:var(--trace-tree-short-trace-bar-duration-color)}.trace-duration[_ngcontent-%COMP%]{color:var(--trace-tree-trace-duration-color);font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px;align-items:center;cursor:pointer}.trace-row[_ngcontent-%COMP%]:hover{background-color:var(--trace-tree-trace-row-hover-background-color)}.trace-row.selected[_ngcontent-%COMP%]{background-color:var(--trace-tree-trace-row-selected-background-color)}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:var(--trace-tree-vertical-line-background-color)}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:var(--trace-tree-horizontal-line-background-color)}.trace-row-left[_ngcontent-%COMP%]{display:flex;width:50%}.invocation-id-container[_ngcontent-%COMP%]{color:var(--trace-tree-invocation-id-container-color);font-size:14px;font-style:normal;font-weight:700;line-height:20px;letter-spacing:0px;margin-bottom:5px}.invocation-id[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}.trace-row-left[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .trace-row-left[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{color:var(--trace-tree-trace-row-left-span-div-color)}.trace-row-left[_ngcontent-%COMP%] .is-event-row[_ngcontent-%COMP%]{color:var(--trace-tree-trace-row-left-is-event-row-color)}"]})};function _zA(t,e){if(t&1&&(S(0,"div",3)(1,"mat-expansion-panel")(2,"mat-expansion-panel-header")(3,"mat-panel-title"),AA(4),N()(),TA(5,"app-trace-tree",4),N()()),t&2){let A=e.$implicit,i=Y();_(4),It(" ",i.invocToUserMsg.get(A.key)," "),_(),yA("spans",A.value)("invocationId",i.findInvocIdFromTraceId(A.key))}}var N7=class t{traceData=[];invocTraces=new Map;invocToUserMsg=new Map;constructor(){}ngOnInit(){}ngOnChanges(e){"traceData"in e&&this.rebuildTrace()}rebuildTrace(){this.invocTraces=this.traceData.reduce((e,A)=>{let i=A.trace_id,n=e.get(i);return n?(n.push(A),n.sort((o,r)=>o.start_time-r.start_time)):e.set(i,[A]),e},new Map);for(let[e,A]of this.invocTraces)this.invocToUserMsg.set(e,this.findUserMsgFromInvocGroup(A))}getArray(e){return Array.from({length:e})}findUserMsgFromInvocGroup(e){let A=e?.find(o=>o.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in o.attributes);return A?JSON.parse(A.attributes["gcp.vertex.agent.llm_request"]).contents.filter(o=>o.role=="user").at(-1)?.parts[0]?.text??"[attachment]":"[no invocation id found]"}findInvocIdFromTraceId(e){return this.invocTraces.get(e)?.find(i=>i.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in i.attributes).attributes["gcp.vertex.agent.invocation_id"]}mapOrderPreservingSort=(e,A)=>0;static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-trace-tab"]],inputs:{traceData:"traceData"},features:[Xt],decls:7,vars:3,consts:[[2,"padding-left","25px","padding-right","25px"],["mat-dialog-title","",1,"trace-title"],[1,"trace-list-wrapper"],[1,"trace-item"],[3,"spans","invocationId"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2,"Invocations"),N(),S(3,"div",2),dn(4,_zA,6,3,"div",3,zn),eo(6,"keyvalue"),N()()),A&2&&(_(4),Bn(_u(6,0,i.invocTraces,i.mapOrderPreservingSort)))},dependencies:[Ls,iU,AgA,egA,x7,Ou],styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-title[_ngcontent-%COMP%]{color:var(--trace-tab-trace-title-color);font-size:14px;font-style:normal;font-weight:700;line-height:20px;letter-spacing:0px}.trace-label[_ngcontent-%COMP%]{width:400px;color:var(--trace-tab-trace-label-color);text-overflow:ellipsis;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px}.trace-bar-container[_ngcontent-%COMP%]{width:50vw;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:var(--trace-tab-trace-bar-background-color);border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:var(--trace-tab-trace-bar-color);font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:var(--trace-tab-trace-duration-color);font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:var(--trace-tab-vertical-line-background-color)}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:var(--trace-tab-horizontal-line-background-color)}.trace-item[_ngcontent-%COMP%]{margin-top:5px}.trace-item[_ngcontent-%COMP%]{--mat-expansion-container-background-color: var(--trace-tab-trace-item-container-background-color)}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-focus-state-layer-color: var(--trace-tab-trace-item-header-focus-state-layer-color)}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-description-color: var(--trace-tab-trace-item-header-description-color)}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-text-size: 15}.trace-item[_ngcontent-%COMP%] .mat-expansion-panel-header.mat-expanded:focus{background-color:var(--trace-tab-mat-expansion-panel-header-focus-background-color)}.trace-item[_ngcontent-%COMP%] .mat-expansion-panel-header.mat-expanded{background-color:var(--trace-tab-mat-expansion-panel-header-background-color)}.trace-item[_ngcontent-%COMP%] .mat-expansion-panel-header.mat-expanded:hover{background-color:var(--trace-tab-mat-expansion-panel-header-hover-background-color)} .mat-expansion-panel-header-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden} .mat-expansion-panel-header-description{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}"]})};var GzA={agentDevelopmentKitLabel:"Agent Development Kit",collapsePanelTooltip:"Collapse panel",traceTabLabel:"Trace",eventsTabLabel:"Events",stateTabLabel:"State",artifactsTabLabel:"Artifacts",sessionsTabLabel:"Sessions",evalTabLabel:"Eval",selectEventAriaLabel:"Select event",eventDetailsTabLabel:"Event",requestDetailsTabLabel:"Request",responseDetailsTabLabel:"Response"},tgA=new eA("Side Panel Messages",{factory:()=>GzA});function KzA(t,e){t&1&&rr(0)}function UzA(t,e){if(t&1&&(S(0,"div"),NA(1,KzA,1,0,"ng-container",9),S(2,"div",10),AA(3,"Powered by Agent Development Kit"),N()()),t&2){let A=Y(2);_(),yA("ngComponentOutlet",A.logoComponent)}}function JzA(t,e){if(t&1&&(TA(0,"img",11),AA(1)),t&2){let A=Y(2);_(),It(" ",A.i18n.agentDevelopmentKitLabel," ")}}function YzA(t,e){if(t&1&&(S(0,"mat-option",13),AA(1),N()),t&2){let A=e.$implicit;yA("value",A),_(),tt(A)}}function TzA(t,e){t&1&&dn(0,YzA,2,2,"mat-option",13,zn),t&2&&Bn(e)}function HzA(t,e){if(t&1&&(S(0,"mat-option",13),AA(1),N()),t&2){let A=Y(3);yA("value",A.selectedAppControl.value),_(),tt(A.selectedAppControl.value)}}function OzA(t,e){if(t&1){let A=me();S(0,"div",8)(1,"mat-select",12),mA("selectionChange",function(n){QA(A);let o=Y(2);return uA(o.appSelectionChange.emit(n))}),NA(2,TzA,2,0),eo(3,"async"),NA(4,HzA,2,2,"mat-option",13),N()()}if(t&2){let A,i=Y(2);_(),yA("placeholder",i.isLoadingApps()?"Loading...":"Select an agent")("formControl",i.selectedAppControl),_(),_A((A=Yo(3,4,i.apps$))?2:-1,A),_(2),_A(i.selectedAppControl.value&&i.isLoadingApps()?4:-1)}}function zzA(t,e){if(t&1){let A=me();S(0,"div",3)(1,"div",4)(2,"div",5)(3,"div",6),NA(4,UzA,4,1,"div")(5,JzA,2,1),N(),S(6,"span",7),mA("click",function(){QA(A);let n=Y();return uA(n.closePanel.emit())}),AA(7,"left_panel_close"),N()()()(),NA(8,OzA,5,6,"div",8),eo(9,"async")}if(t&2){let A=Y();_(4),_A(A.logoComponent?4:5),_(2),L2("matTooltip",A.i18n.collapsePanelTooltip),_(2),_A(Yo(9,3,A.isApplicationSelectorEnabledObs)?8:-1)}}function PzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(3);_(),tt(A.i18n.traceTabLabel)}}function jzA(t,e){if(t&1&&(S(0,"mat-tab",15),NA(1,PzA,2,1,"ng-template",16),TA(2,"app-trace-tab",20),N()),t&2){let A=Y(2);_(2),yA("traceData",A.traceData)}}function qzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(2);_(),tt(A.i18n.eventsTabLabel)}}function VzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(2);_(),tt(A.i18n.stateTabLabel)}}function ZzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(3);_(),tt(A.i18n.artifactsTabLabel)}}function WzA(t,e){if(t&1&&(S(0,"mat-tab"),NA(1,ZzA,2,1,"ng-template",16),TA(2,"app-artifact-tab",22),N()),t&2){let A=Y(2);_(2),yA("artifacts",A.artifacts)}}function XzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(2);_(),tt(A.i18n.sessionsTabLabel)}}function $zA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(3);_(),tt(A.i18n.evalTabLabel)}}function APA(t,e){if(t&1){let A=me();S(0,"mat-tab"),NA(1,$zA,2,1,"ng-template",16),S(2,"app-eval-tab",23),mA("sessionSelected",function(n){QA(A);let o=Y(2);return uA(o.sessionSelected.emit(n))})("evalCaseSelected",function(n){QA(A);let o=Y(2);return uA(o.evalCaseSelected.emit(n))})("evalSetIdSelected",function(n){QA(A);let o=Y(2);return uA(o.evalSetIdSelected.emit(n))})("shouldReturnToSession",function(n){QA(A);let o=Y(2);return uA(o.returnToSession.emit(n))})("evalNotInstalledMsg",function(n){QA(A);let o=Y(2);return uA(o.evalNotInstalled.emit(n))}),N()()}if(t&2){let A=Y(2);_(2),yA("appName",A.appName)("userId",A.userId)("sessionId",A.sessionId)}}function ePA(t,e){if(t&1){let A=me();S(0,"div",0)(1,"mat-tab-group",14),mA("selectedTabChange",function(n){QA(A);let o=Y();return uA(o.tabChange.emit(n))}),NA(2,jzA,3,1,"mat-tab",15),eo(3,"async"),S(4,"mat-tab",15),NA(5,qzA,2,1,"ng-template",16),S(6,"app-event-tab",17),mA("selectedEvent",function(n){QA(A);let o=Y();return uA(o.eventSelected.emit(n))}),N()(),S(7,"mat-tab"),NA(8,VzA,2,1,"ng-template",16),TA(9,"app-state-tab",18),N(),NA(10,WzA,3,1,"mat-tab"),eo(11,"async"),S(12,"mat-tab"),NA(13,XzA,2,1,"ng-template",16),S(14,"app-session-tab",19),mA("sessionSelected",function(n){QA(A);let o=Y();return uA(o.sessionSelected.emit(n))})("sessionReloaded",function(n){QA(A);let o=Y();return uA(o.sessionReloaded.emit(n))}),N()(),NA(15,APA,3,3,"mat-tab"),eo(16,"async"),N()()}if(t&2){let A=Y();_(2),_A(Yo(3,9,A.isTraceEnabledObs)?2:-1),_(4),yA("eventsMap",A.eventData)("traceData",A.traceData),_(3),yA("sessionState",A.currentSessionState),_(),_A(Yo(11,11,A.isArtifactsTabEnabledObs)?10:-1),_(4),yA("userId",A.userId)("appName",A.appName)("sessionId",A.sessionId),_(),_A(Yo(16,13,A.isEvalEnabledObs)?15:-1)}}function tPA(t,e){if(t&1){let A=me();S(0,"div",34),mA("click",function(){QA(A);let n=Y(2);return uA(n.openImageDialog.emit(n.rawSvgString))}),N()}if(t&2){let A=Y(2);yA("innerHtml",A.renderedEventGraph,b2)}}function iPA(t,e){if(t&1){let A=me();S(0,"div",1)(1,"div",24)(2,"div",25)(3,"mat-paginator",26),mA("page",function(n){QA(A);let o=Y();return uA(o.page.emit(n))}),N(),S(4,"button",27)(5,"mat-icon",28),mA("click",function(){QA(A);let n=Y();return uA(n.closeSelectedEvent.emit())}),AA(6,"close"),N()()()(),S(7,"div")(8,"mat-tab-group")(9,"mat-tab",29)(10,"div",30),NA(11,tPA,1,1,"div",31),N(),S(12,"div",32),TA(13,"ngx-json-viewer",33),N()(),S(14,"mat-tab",29)(15,"div",32),TA(16,"ngx-json-viewer",33),N()(),S(17,"mat-tab",29)(18,"div",32),TA(19,"ngx-json-viewer",33),N()()()()()}if(t&2){let A=Y();_(3),yA("length",A.eventData.size)("pageSize",1)("pageIndex",A.selectedEventIndex),Ke("aria-label",A.i18n.selectEventAriaLabel),_(6),L2("label",A.i18n.eventDetailsTabLabel),_(2),_A(A.renderedEventGraph?11:-1),_(2),yA("json",A.selectedEvent),_(),L2("label",A.i18n.requestDetailsTabLabel),_(2),yA("json",A.llmRequest),_(),L2("label",A.i18n.responseDetailsTabLabel),_(2),yA("json",A.llmResponse)}}var OQ=class t{appName="";userId="";sessionId="";traceData=[];eventData=new Map;currentSessionState;artifacts=[];selectedEvent;selectedEventIndex;renderedEventGraph;rawSvgString=null;llmRequest;llmResponse;showSidePanel=!1;isApplicationSelectorEnabledObs=Ce(!1);apps$=Ce([]);isLoadingApps=Ao(!1);selectedAppControl=new y0("",{nonNullable:!0});closePanel=new YA;appSelectionChange=new YA;tabChange=new YA;eventSelected=new YA;sessionSelected=new YA;sessionReloaded=new YA;evalCaseSelected=new YA;evalSetIdSelected=new YA;returnToSession=new YA;evalNotInstalled=new YA;page=new YA;closeSelectedEvent=new YA;openImageDialog=new YA;eventTabComponent=qs(TQ);sessionTabComponent=qs(HQ);evalTabComponent=qs(g2);logoComponent=f(b7,{optional:!0});i18n=f(tgA);featureFlagService=f(Gc);isAlwaysOnSidePanelEnabledObs=this.featureFlagService.isAlwaysOnSidePanelEnabled();isTraceEnabledObs=this.featureFlagService.isTraceEnabled();isArtifactsTabEnabledObs=this.featureFlagService.isArtifactsTabEnabled();isEvalEnabledObs=this.featureFlagService.isEvalEnabled();isTokenStreamingEnabledObs=this.featureFlagService.isTokenStreamingEnabled();isMessageFileUploadEnabledObs=this.featureFlagService.isMessageFileUploadEnabled();isManualStateUpdateEnabledObs=this.featureFlagService.isManualStateUpdateEnabled();isBidiStreamingEnabledObs=this.featureFlagService.isBidiStreamingEnabled;static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-side-panel"]],viewQuery:function(A,i){A&1&&(ls(i.eventTabComponent,TQ,5),ls(i.sessionTabComponent,HQ,5),ls(i.evalTabComponent,g2,5)),A&2&&yc(3)},inputs:{appName:"appName",userId:"userId",sessionId:"sessionId",traceData:"traceData",eventData:"eventData",currentSessionState:"currentSessionState",artifacts:"artifacts",selectedEvent:"selectedEvent",selectedEventIndex:"selectedEventIndex",renderedEventGraph:"renderedEventGraph",rawSvgString:"rawSvgString",llmRequest:"llmRequest",llmResponse:"llmResponse",showSidePanel:"showSidePanel",isApplicationSelectorEnabledObs:"isApplicationSelectorEnabledObs",apps$:"apps$",isLoadingApps:"isLoadingApps",selectedAppControl:"selectedAppControl"},outputs:{closePanel:"closePanel",appSelectionChange:"appSelectionChange",tabChange:"tabChange",eventSelected:"eventSelected",sessionSelected:"sessionSelected",sessionReloaded:"sessionReloaded",evalCaseSelected:"evalCaseSelected",evalSetIdSelected:"evalSetIdSelected",returnToSession:"returnToSession",evalNotInstalled:"evalNotInstalled",page:"page",closeSelectedEvent:"closeSelectedEvent",openImageDialog:"openImageDialog"},decls:5,vars:5,consts:[[1,"tabs-container"],[1,"details-panel-container"],[1,"resize-handler"],[2,"margin-top","20px","margin-left","20px","display","flex"],[2,"width","100%"],[1,"drawer-header"],[1,"drawer-logo"],[1,"material-symbols-outlined",2,"color","#c4c7c5","cursor","pointer","margin-right","15px",3,"click","matTooltip"],[1,"app-select-container"],[4,"ngComponentOutlet"],[1,"powered-by-adk"],["src","assets/ADK-512-color.svg","width","32px","height","32px"],[1,"app-select",3,"selectionChange","placeholder","formControl"],[1,"app-name-option",3,"value"],[3,"selectedTabChange"],[1,"tabs-header"],["mat-tab-label",""],[3,"selectedEvent","eventsMap","traceData"],[3,"sessionState"],[3,"sessionSelected","sessionReloaded","userId","appName","sessionId"],[3,"traceData"],[1,"tab-label"],[3,"artifacts"],[3,"sessionSelected","evalCaseSelected","evalSetIdSelected","shouldReturnToSession","evalNotInstalledMsg","appName","userId","sessionId"],[1,"details-content"],[2,"display","flex","justify-content","flex-end","margin-top","10px"],[1,"event-paginator",3,"page","length","pageSize","pageIndex"],["mat-mini-fab",""],[3,"click"],[3,"label"],[1,"event-graph-container"],[3,"innerHtml"],[1,"json-viewer-container"],[3,"json"],[3,"click","innerHtml"]],template:function(A,i){A&1&&(NA(0,zzA,10,5),eo(1,"async"),NA(2,ePA,17,15,"div",0)(3,iPA,20,11,"div",1),TA(4,"div",2)),A&2&&(_A(Yo(1,3,i.isAlwaysOnSidePanelEnabledObs)===!1?0:-1),_(2),_A(i.appName!=""&&i.showSidePanel?2:-1),_(),_A(i.selectedEvent&&i.showSidePanel?3:-1))},dependencies:[Qg,Mr,Ss,Yu,kl,M7,vf,$K,N7,TQ,L7,z8,HQ,g2,Gq,u6,_c,Sl,X2,K2,YB,cB,ck],styles:[".drawer-header[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:space-between;align-items:center}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-container-color: var(--side-panel-button-filled-container-color)}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-label-text-color: var(--side-panel-button-filled-label-text-color)}.drawer-header[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{width:36px;height:36px;color:var(--side-panel-mat-icon-color);cursor:pointer;display:flex;align-items:center;justify-content:center}.tabs-container[_ngcontent-%COMP%]{width:100%;margin-top:20px}.tab-label[_ngcontent-%COMP%]{font-size:14px}.resize-handler[_ngcontent-%COMP%]{background:var(--side-panel-resize-handler-background-color);width:4px;border-radius:4px;position:absolute;display:block;height:20%;top:40%;right:0;z-index:9999;cursor:ew-resize}.json-viewer-container[_ngcontent-%COMP%]{margin:10px}.event-paginator[_ngcontent-%COMP%]{margin-top:-8px;margin-right:auto;background-color:inherit;display:flex;justify-content:center}[_nghost-%COMP%] .mat-mdc-paginator-page-size{display:none}.details-panel-container[_ngcontent-%COMP%]{position:absolute;width:100%;height:98%;left:0;right:0;bottom:0;background:var(--side-panel-details-panel-container-background-color);display:inline-block;justify-content:center;align-items:center;z-index:10}.details-content[_ngcontent-%COMP%]{color:var(--side-panel-details-content-color);font-size:14px}.event-graph-container[_ngcontent-%COMP%]{margin-top:16px;margin-bottom:16px;display:flex;justify-content:center;max-height:33%;cursor:pointer}.event-graph-container[_ngcontent-%COMP%] svg{width:100%;height:100%;display:block;object-fit:contain}.event-graph-container[_ngcontent-%COMP%] svg text{font-family:Google Sans Mono,monospace;font-size:11px}.drawer-logo[_ngcontent-%COMP%]{margin-left:9px;display:flex;align-items:center;font-size:16px;font-style:normal;font-weight:500;line-height:24px;letter-spacing:.1px}.drawer-logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{margin-right:9px}.powered-by-adk[_ngcontent-%COMP%]{font-size:10px;color:var(--side-panel-powered-by-adk-color);text-align:right;margin-top:-5px}.app-select[_ngcontent-%COMP%]{width:100%}.app-select-container[_ngcontent-%COMP%]{width:35%;margin-top:12px;background-color:var(--side-panel-app-select-container-background-color);margin-left:10px;height:30px;display:flex;justify-content:space-between;padding-left:20px;padding-right:20px;border-radius:10px;padding-top:5px}.app-select-container[_ngcontent-%COMP%]{--mat-select-placeholder-text-color: var(--side-panel-select-placeholder-text-color)}.app-select-container[_ngcontent-%COMP%]{--mat-select-enabled-trigger-text-color: var(--side-panel-select-enabled-trigger-text-color)}.app-select-container[_ngcontent-%COMP%]{--mat-select-enabled-arrow-color: var(--side-panel-select-enabled-arrow-color)}.app-name-option[_ngcontent-%COMP%], .app-select[_ngcontent-%COMP%]{color:var(--side-panel-app-name-option-color);font-family:Google Sans Mono,monospace;font-style:normal;font-weight:400;padding-left:unset}"]})};function nPA(t,e){if(t&1){let A=me();S(0,"div",11),mA("click",function(){QA(A);let n=Y();return uA(n.openViewImageDialog(n.rawSvgString))}),N()}if(t&2){let A=Y();yA("innerHtml",A.renderedEventGraph,b2)}}var F7=class t{userId="";sessionId="";appName="";panelClosed=new YA;renderedEventGraph;eventData;selectedRow=void 0;rawSvgString=null;llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";dialog=f(Fc);traceService=f(e1);eventService=f(zB);graphService=f(PB);sanitizer=f(oc);constructor(){}ngOnInit(){this.traceService.selectedTraceRow$.subscribe(e=>{this.selectedRow=e;let A=this.getEventIdFromSpan();if(A){let i=A;this.eventService.getEventTrace(i).subscribe(n=>{this.llmRequest=JSON.parse(n[this.llmRequestKey]),this.llmResponse=JSON.parse(n[this.llmResponseKey])}),this.getEventGraph(A)}}),this.traceService.eventData$.subscribe(e=>this.eventData=e)}openViewImageDialog(e){let A=this.dialog.open(t1,{maxWidth:"90vw",maxHeight:"90vh",data:{imageData:e}})}getEventDetails(){if(this.eventData&&this.selectedRow)return this.eventData.get(this.getEventIdFromSpan())}getEventIdFromSpan(){if(this.selectedRow)return this.selectedRow.attributes["gcp.vertex.agent.event_id"]}getEventGraph(e){this.eventService.getEvent(this.userId,this.appName,this.sessionId,e).subscribe(A=>Ni(this,null,function*(){if(!A.dotSrc){this.renderedEventGraph=void 0;return}let i=A.dotSrc,n=yield this.graphService.render(i);this.rawSvgString=n,this.renderedEventGraph=this.sanitizer.bypassSecurityTrustHtml(n)}))}closePanel(){this.panelClosed.emit(!0)}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-trace-event"]],inputs:{userId:"userId",sessionId:"sessionId",appName:"appName"},outputs:{panelClosed:"panelClosed"},decls:17,vars:4,consts:[[1,"wrapper"],["mat-stretch-tabs","false","mat-align-tabs","start"],["label","Event"],[1,"json-viewer-container"],[3,"json"],["label","Request"],["label","Response"],["label","Graph"],[1,"event-graph-container"],[3,"innerHtml"],["mat-icon-button","",1,"tab-header-action",3,"click"],[3,"click","innerHtml"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"mat-tab-group",1)(2,"mat-tab",2)(3,"div",3),TA(4,"ngx-json-viewer",4),N()(),S(5,"mat-tab",5)(6,"div",3),TA(7,"ngx-json-viewer",4),N()(),S(8,"mat-tab",6)(9,"div",3),TA(10,"ngx-json-viewer",4),N()(),S(11,"mat-tab",7)(12,"div",8),NA(13,nPA,1,1,"div",9),N()()(),S(14,"button",10),mA("click",function(){return i.closePanel()}),S(15,"mat-icon"),AA(16,"close"),N()()()),A&2&&(_(4),yA("json",i.getEventDetails()),_(3),yA("json",i.llmRequest),_(3),yA("json",i.llmResponse),_(3),_A(i.renderedEventGraph?13:-1))},dependencies:[M7,vf,Sl,X2,QB,_c],styles:[".json-viewer-container[_ngcontent-%COMP%]{padding-top:8px;padding-left:12px;padding-right:12px;background-color:var(--trace-event-json-viewer-container-background-color)}.event-graph-container[_ngcontent-%COMP%]{text-align:center;padding-top:20px}.event-graph-container[_ngcontent-%COMP%] svg text{font-family:Google Sans Mono,monospace;font-size:11px}.wrapper[_ngcontent-%COMP%]{position:relative}.tab-header-action[_ngcontent-%COMP%]{position:absolute;top:0;right:0;height:48px;z-index:2;margin-right:10px}"]})};var oPA=["sideDrawer"],rPA=["autoScroll"],sPA=["bottomPanel"],aPA=t=>({"edit-mode":t}),cPA=()=>[];function gPA(t,e){if(t&1){let A=me();S(0,"span",12),mA("click",function(){QA(A);let n=Y();return uA(n.toggleSidePanel())}),AA(1,"left_panel_open"),N()}}function lPA(t,e){if(t&1){let A=me();S(0,"span",14),mA("click",function(){QA(A);let n=Y(2);return uA(n.toggleSidePanel())}),AA(1,"left_panel_open"),N()}}function IPA(t,e){if(t&1){let A=me();S(0,"button",19),mA("click",function(){QA(A);let n=Y(3);return uA(n.cancelEditEvalCase())}),AA(1,"Cancel"),N(),S(2,"button",20),mA("click",function(){QA(A);let n=Y(3);return uA(n.saveEvalCase())}),AA(3," Save "),N()}if(t&2){let A=Y(3);_(2),yA("disabled",!A.hasEvalCaseChanged()||A.isEvalCaseEditing())}}function CPA(t,e){if(t&1){let A=me();S(0,"span",21),mA("click",function(){QA(A);let n=Y(3);return uA(n.editEvalCase())}),AA(1," edit "),N(),S(2,"span",22),mA("click",function(){QA(A);let n=Y(3);return uA(n.deleteEvalCase())}),AA(3," delete "),N()}}function dPA(t,e){if(t&1&&(S(0,"div",15)(1,"div",16),AA(2,"Eval Case ID"),N(),S(3,"div",17),AA(4),N()(),S(5,"div",18),NA(6,IPA,4,1)(7,CPA,4,0),N()),t&2){let A=Y(2);_(4),tt(A.evalCase.evalId),_(2),_A(A.isEvalEditMode()?6:7)}}function BPA(t,e){if(t&1){let A=me();S(0,"span",31),mA("click",function(){QA(A);let n=Y(3);return uA(n.exportSession())}),AA(1," download "),N()}}function EPA(t,e){if(t&1){let A=me();S(0,"span",32),mA("click",function(){QA(A);let n=Y(3);return uA(n.importSession())}),AA(1," upload "),N()}}function QPA(t,e){if(t&1){let A=me();S(0,"div",15)(1,"div",16),AA(2,"Session ID"),N(),S(3,"div",17),AA(4),N()(),S(5,"div",18)(6,"div",23)(7,"mat-slide-toggle",24),eo(8,"async"),mA("change",function(){QA(A);let n=Y(2);return uA(n.toggleSse())}),AA(9," Token Streaming "),N()(),TA(10,"mat-divider",25),S(11,"div",26)(12,"div",27),mA("click",function(){QA(A);let n=Y(2);return uA(n.onNewSessionClick())}),S(13,"mat-icon"),AA(14,"add"),N(),AA(15," New Session "),N(),S(16,"span",28),mA("click",function(){QA(A);let n=Y(2);return uA(n.deleteSession(n.sessionId))}),AA(17," delete "),N(),NA(18,BPA,2,0,"span",29),eo(19,"async"),NA(20,EPA,2,0,"span",30),eo(21,"async"),N()()}if(t&2){let A=Y(2);_(4),tt(A.sessionId),_(3),yA("checked",A.enableSseIndicator())("disabled",!Yo(8,6,A.isTokenStreamingEnabledObs)),_(3),yA("vertical",!0),_(8),_A(Yo(19,8,A.isExportSessionEnabledObs)?18:-1),_(2),_A(Yo(21,10,A.importSessionEnabledObs)?20:-1)}}function uPA(t,e){if(t&1&&(S(0,"div",7),NA(1,lPA,2,0,"span",13)(2,dPA,8,2)(3,QPA,22,12),N()),t&2){let A=Y();yA("ngClass",vc(3,aPA,A.isEvalEditMode())),_(),_A(A.showSidePanel?-1:1),_(),_A(A.evalCase?2:3)}}function hPA(t,e){t&1&&(S(0,"div",33)(1,"span"),AA(2,"Loading agents, please wait..."),N()())}function fPA(t,e){t&1&&(S(0,"span"),AA(1,"Welcome to ADK!"),TA(2,"br"),AA(3," Select an agent on the left to begin with."),N())}function mPA(t,e){if(t&1&&(AA(0," Error message: "),TA(1,"br"),S(2,"pre",35),AA(3),N()),t&2){let A=Y(4);_(3),tt(A.loadingError())}}function pPA(t,e){t&1&&(S(0,"pre",34),AA(1,"Warning: No agents found in current folder."),N())}function DPA(t,e){if(t&1&&(S(0,"div"),AA(1," Failed to load agents. To get started, run "),S(2,"pre"),AA(3,"adk web"),N(),AA(4," in the folder that contains the agents."),TA(5,"br"),NA(6,mPA,4,1)(7,pPA,2,0,"pre",34),N()),t&2){let A=Y(3);_(6),_A(A.loadingError()?6:7)}}function wPA(t,e){if(t&1&&(S(0,"div",33),NA(1,fPA,4,0,"span"),eo(2,"async"),NA(3,DPA,8,1,"div"),N()),t&2){let A=Y(2);_(),_A((Yo(2,1,A.apps$)||AO(3,cPA)).length>0?1:3)}}function yPA(t,e){if(t&1&&(NA(0,hPA,3,0,"div",33),eo(1,"async"),NA(2,wPA,4,4,"div",33)),t&2){let A=Y();_A(A.isLoadingApps()?0:Yo(1,1,A.isApplicationSelectorEnabledObs)?2:-1)}}function vPA(t,e){if(t&1){let A=me();S(0,"button",36),mA("click",function(){QA(A);let n=Y();return uA(n.openDialog())}),S(1,"mat-icon"),AA(2,"priority_high"),N()()}}function MPA(t,e){if(t&1){let A=me();S(0,"app-chat-panel",37),eo(1,"async"),Xa("userInputChange",function(n){QA(A);let o=Y();return Wa(o.userInput,n)||(o.userInput=n),uA(n)})("userEditEvalCaseMessageChange",function(n){QA(A);let o=Y();return Wa(o.userEditEvalCaseMessage,n)||(o.userEditEvalCaseMessage=n),uA(n)}),mA("clickEvent",function(n){QA(A);let o=Y();return uA(o.clickEvent(n))})("handleKeydown",function(n){QA(A);let o=Y();return uA(o.handleKeydown(n.event,n.message))})("cancelEditMessage",function(n){QA(A);let o=Y();return uA(o.cancelEditMessage(n))})("saveEditMessage",function(n){QA(A);let o=Y();return uA(o.saveEditMessage(n))})("openViewImageDialog",function(n){QA(A);let o=Y();return uA(o.openViewImageDialog(n))})("openBase64InNewTab",function(n){QA(A);let o=Y();return uA(o.openBase64InNewTab(n.data,n.mimeType))})("editEvalCaseMessage",function(n){QA(A);let o=Y();return uA(o.editEvalCaseMessage(n))})("deleteEvalCaseMessage",function(n){QA(A);let o=Y();return uA(o.deleteEvalCaseMessage(n.message,n.index))})("editFunctionArgs",function(n){QA(A);let o=Y();return uA(o.editFunctionArgs(n))})("fileSelect",function(n){QA(A);let o=Y();return uA(o.onFileSelect(n))})("removeFile",function(n){QA(A);let o=Y();return uA(o.removeFile(n))})("removeStateUpdate",function(){QA(A);let n=Y();return uA(n.removeStateUpdate())})("sendMessage",function(n){QA(A);let o=Y();return uA(o.sendMessage(n))})("updateState",function(){QA(A);let n=Y();return uA(n.updateState())})("toggleAudioRecording",function(){QA(A);let n=Y();return uA(n.toggleAudioRecording())})("toggleVideoRecording",function(){QA(A);let n=Y();return uA(n.toggleVideoRecording())}),N()}if(t&2){let A,i=Y();yA("appName",i.appName)("messages",i.messages())("isChatMode",i.isChatMode())("evalCase",i.evalCase)("isEvalEditMode",i.isEvalEditMode())("isEvalCaseEditing",i.isEvalCaseEditing())("isEditFunctionArgsEnabled",(A=Yo(1,15,i.isEditFunctionArgsEnabledObs))!==null&&A!==void 0?A:!1),Za("userInput",i.userInput)("userEditEvalCaseMessage",i.userEditEvalCaseMessage),yA("selectedFiles",i.selectedFiles)("updatedSessionState",i.updatedSessionState())("eventData",i.eventData)("isAudioRecording",i.isAudioRecording)("isVideoRecording",i.isVideoRecording)("hoveredEventMessageIndices",i.hoveredEventMessageIndices)}}function bPA(t,e){if(t&1){let A=me();S(0,"div",11,1),TA(2,"div",38),S(3,"app-trace-event",39),mA("panelClosed",function(){QA(A);let n=Y();return uA(n.closeTraceEventDetailPanel())}),N()()}if(t&2){let A=Y();_(3),yA("userId",A.userId)("appName",A.appName)("sessionId",A.sessionId)}}var kPA="root_agent";function SPA(t){for(t=t.replace(/-/g,"+").replace(/_/g,"/");t.length%4!==0;)t+="=";return t}var nU=class t extends _8{nextPageLabel="Next Event";previousPageLabel="Previous Event";firstPageLabel="First Event";lastPageLabel="Last Event";getRangeLabel=(e,A,i)=>i===0?`Event 0 of ${i}`:(i=Math.max(i,0),`Event ${e*A+1} of ${i}`);static \u0275fac=(()=>{let e;return function(i){return(e||(e=ci(t)))(i||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac})},igA="Restarting bidirectional streaming is not currently supported. Please refresh the page or start a new session.",_7=class t{_snackBar=f(Yq);activatedRoute=f(xc);agentService=f(HB);artifactService=f(U8);changeDetectorRef=f(Et);dialog=f(Fc);document=f(at);downloadService=f(OB);evalService=f(Rl);eventService=f(zB);featureFlagService=f(Gc);graphService=f(PB);localFileService=f(J8);location=f(ha);renderer=f(qi);router=f(vl);safeValuesService=f($2);sessionService=f(A1);streamChatService=f(T8);stringToColorService=f(jB);traceService=f(e1);chatPanel=qs.required(ZB);sideDrawer=qs.required("sideDrawer");sidePanel=qs.required(OQ);evalTab=qs(g2);scrollContainer=qs.required("autoScroll");bottomPanelRef=qs.required("bottomPanel");enableSseIndicator=Ao(!1);isChatMode=Ao(!0);isEvalCaseEditing=Ao(!1);hasEvalCaseChanged=Ao(!1);isEvalEditMode=Ao(!1);videoElement;currentMessage="";messages=Ao([]);lastTextChunk="";streamingTextMessage=null;latestThought="";artifacts=[];userInput="";userEditEvalCaseMessage="";userId="user";appName="";sessionId="";evalCase=null;updatedEvalCase=null;evalSetId="";isAudioRecording=!1;isVideoRecording=!1;longRunningEvents=[];functionCallEventId="";redirectUri=ds.getBaseUrlWithoutPath();showSidePanel=!0;useSse=!1;currentSessionState={};root_agent=kPA;updatedSessionState=Ao(null);isModelThinkingSubject=new Fi(!1);sessionHasUsedBidi=new Set;eventData=new Map;traceData=[];renderedEventGraph;rawSvgString=null;selectedEvent=void 0;selectedEventIndex=void 0;llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";getMediaTypeFromMimetype=P8;selectedFiles=[];MediaType=gC;selectedAppControl=new y0("",{nonNullable:!0});openBase64InNewTab=this.safeValuesService.openBase64InNewTab;isLoadingApps=Ao(!1);loadingError=Ao("");apps$=Ce([]).pipe(So(()=>{this.isLoadingApps.set(!0),this.selectedAppControl.disable()}),$n(()=>this.agentService.listApps().pipe(Gr(e=>(this.loadingError.set(e.message),Ce(void 0))))),Xn(1),So(e=>{this.isLoadingApps.set(!1),this.selectedAppControl.enable(),e?.length==1&&this.router.navigate([],{relativeTo:this.activatedRoute,queryParams:{app:e[0]}})}),h2());importSessionEnabledObs=this.featureFlagService.isImportSessionEnabled();isEditFunctionArgsEnabledObs=this.featureFlagService.isEditFunctionArgsEnabled();isSessionUrlEnabledObs=this.featureFlagService.isSessionUrlEnabled();isApplicationSelectorEnabledObs=this.featureFlagService.isApplicationSelectorEnabled();isTokenStreamingEnabledObs=this.featureFlagService.isTokenStreamingEnabled();isExportSessionEnabledObs=this.featureFlagService.isExportSessionEnabled();bottomPanelVisible=!1;hoveredEventMessageIndices=[];constructor(){}ngOnInit(){if(this.syncSelectedAppFromUrl(),this.updateSelectedAppUrl(),this.streamChatService.onStreamClose().subscribe(i=>{let n=`Please check server log for full details: +`+i;this.openSnackBar(n,"OK")}),new URL(window.location.href).searchParams.has("code")){let i=window.location.href;window.opener?.postMessage({authResponseUrl:i},window.origin),window.close()}this.agentService.getApp().subscribe(i=>{this.appName=i}),ga([this.agentService.getLoadingState(),this.isModelThinkingSubject]).subscribe(([i,n])=>{let o=this.messages()[this.messages().length-1];i?!o?.isLoading&&!this.streamingTextMessage&&this.messages.update(r=>[...r,{role:"bot",isLoading:!0}]):o?.isLoading&&!n&&(this.messages.update(r=>r.slice(0,-1)),this.changeDetectorRef.detectChanges())}),this.traceService.selectedTraceRow$.subscribe(i=>{let n=i?.attributes["gcp.vertex.agent.event_id"];n&&this.eventData.has(n)?this.bottomPanelVisible=!0:this.bottomPanelVisible=!1}),this.traceService.hoveredMessageIndices$.subscribe(i=>this.hoveredEventMessageIndices=i)}get sessionTab(){return this.sidePanel().sessionTabComponent()}ngAfterViewInit(){this.showSidePanel=!0,this.sideDrawer()?.open()}selectApp(e){e!=this.appName&&(this.agentService.setApp(e),this.loadSessionByUrlOrReset())}loadSessionByUrlOrReset(){this.isSessionUrlEnabledObs.subscribe(e=>{let A=this.activatedRoute.snapshot.queryParams.session;if(!e||!A){this.createSessionAndReset();return}A&&this.sessionService.getSession(this.userId,this.appName,A).pipe(Xn(1),Gr(i=>(this.openSnackBar("Cannot find specified session. Creating a new one.","OK"),this.createSessionAndReset(),Ce(null)))).subscribe(i=>{i&&this.updateWithSelectedSession(i)})})}createSessionAndReset(){this.createSession(),this.eventData=new Map,this.messages.set([]),this.artifacts=[],this.userInput="",this.longRunningEvents=[]}createSession(){this.sessionService.createSession(this.userId,this.appName).subscribe(e=>{this.currentSessionState=e.state,this.sessionId=e.id??"",this.sessionTab?.refreshSession(),this.isSessionUrlEnabledObs.subscribe(A=>{A&&this.updateSelectedSessionUrl()})})}sendMessage(e){return Ni(this,null,function*(){if(e.preventDefault(),!this.userInput.trim()&&this.selectedFiles.length<=0||e instanceof KeyboardEvent&&(e.isComposing||e.keyCode===229))return;if(this.userInput.trim()&&this.messages.update(i=>[...i,{role:"user",text:this.userInput}]),this.selectedFiles.length>0){let i=this.selectedFiles.map(n=>({file:n.file,url:n.url}));this.messages.update(n=>[...n,{role:"user",attachments:i}])}let A={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:yield this.getUserMessageParts()},streaming:this.useSse,stateDelta:this.updatedSessionState()};this.selectedFiles=[],this.streamingTextMessage=null,this.agentService.runSse(A).subscribe({next:i=>Ni(this,null,function*(){if(i.error){this.openSnackBar(i.error,"OK");return}if(i.content)for(let n of this.combineTextParts(i.content.parts))this.processPart(i,n),this.traceService.setEventData(this.eventData);else i.errorMessage?this.processErrorMessage(i):i.actions&&this.processActionArtifact(i);this.changeDetectorRef.detectChanges()}),error:i=>{console.error("Send message error:",i),this.openSnackBar(i,"OK")},complete:()=>{this.updatedSessionState()&&(this.currentSessionState=this.updatedSessionState(),this.updatedSessionState.set(null)),this.streamingTextMessage=null,this.sessionTab?.reloadSession(this.sessionId),this.eventService.getTrace(this.sessionId).pipe(Gr(i=>i.status===404?Ce(null):Ce([]))).subscribe(i=>{this.traceData=i,this.changeDetectorRef.detectChanges()}),this.traceService.setMessages(this.messages()),this.changeDetectorRef.detectChanges()}}),this.userInput="",this.changeDetectorRef.detectChanges()})}processErrorMessage(e){this.storeEvents(e,e),this.insertMessageBeforeLoadingMessage({text:e.errorMessage,role:"bot"})}processPart(e,A){let i=e.groundingMetadata?.searchEntryPoint?.renderedContent;if(A.text){this.isModelThinkingSubject.next(!1);let n=A.text;if(A.thought){if(n!==this.latestThought){this.storeEvents(A,e);let o={role:"bot",text:this.processThoughtText(n),thought:!0,eventId:e.id};this.insertMessageBeforeLoadingMessage(o)}this.latestThought=n}else if(this.streamingTextMessage){if(i&&(this.streamingTextMessage.renderedContent=e.groundingMetadata.searchEntryPoint.renderedContent),n==this.streamingTextMessage.text){this.storeEvents(A,e),this.streamingTextMessage=null;return}this.streamingTextMessage.text+=n}else if(this.streamingTextMessage={role:"bot",text:this.processThoughtText(n),thought:!!A.thought,eventId:e.id},i&&(this.streamingTextMessage.renderedContent=e.groundingMetadata.searchEntryPoint.renderedContent),this.insertMessageBeforeLoadingMessage(this.streamingTextMessage),!this.useSse){this.storeEvents(A,e),this.streamingTextMessage=null;return}}else A.thought?this.isModelThinkingSubject.next(!0):(this.isModelThinkingSubject.next(!1),this.storeEvents(A,e),this.storeMessage(A,e,e.author==="user"?"user":"bot"))}getUserMessageParts(){return Ni(this,null,function*(){let e=[];if(this.userInput.trim()&&e.push({text:`${this.userInput}`}),this.selectedFiles.length>0)for(let A of this.selectedFiles)e.push(yield this.localFileService.createMessagePartFromFile(A.file));return e})}processActionArtifact(e){e.actions&&e.actions.artifactDelta&&(this.storeEvents(null,e),this.storeMessage(null,e,"bot"))}combineTextParts(e){let A=[],i;for(let n of e)n.text&&!n.thought?i?i.text+=n.text:(i={text:n.text},A.push(i)):(i=void 0,A.push(n));return A}updateRedirectUri(e,A){try{let i=new URL(e);return i.searchParams.set("redirect_uri",A),i.toString()}catch(i){return console.warn("Failed to update redirect URI: ",i),e}}storeMessage(e,A,i,n,o){if(A?.author&&this.createAgentIconColorClass(A.author),A?.longRunningToolIds&&A.longRunningToolIds.length>0){this.getAsyncFunctionsFromParts(A.longRunningToolIds,A.content.parts,A.invocationId);let s=this.longRunningEvents[0].function;if(s.args.authConfig&&s.args.authConfig.exchangedAuthCredential&&s.args.authConfig.exchangedAuthCredential.oauth2){let a=s.args.authConfig.exchangedAuthCredential.oauth2.authUri,c=this.updateRedirectUri(a,this.redirectUri);this.openOAuthPopup(c).then(g=>{this.functionCallEventId=A.id,this.sendOAuthResponse(s,g,this.redirectUri)}).catch(g=>{console.error("OAuth Error:",g)})}else this.functionCallEventId=A.id}if(A?.actions&&A.actions.artifactDelta)for(let s in A.actions.artifactDelta)A.actions.artifactDelta.hasOwnProperty(s)&&this.renderArtifact(s,A.actions.artifactDelta[s]);A?.evalStatus&&this.isChatMode.set(!1);let r={role:i,evalStatus:A?.evalStatus,failedMetric:A?.failedMetric,evalScore:A?.evalScore,evalThreshold:A?.evalThreshold,actualInvocationToolUses:A?.actualInvocationToolUses,expectedInvocationToolUses:A?.expectedInvocationToolUses,actualFinalResponse:A?.actualFinalResponse,expectedFinalResponse:A?.expectedFinalResponse,invocationIndex:n!==void 0?n:void 0,finalResponsePartIndex:o?.finalResponsePartIndex!==void 0?o.finalResponsePartIndex:void 0,toolUseIndex:o?.toolUseIndex!==void 0?o.toolUseIndex:void 0};if(e){if(e.inlineData){let s=this.formatBase64Data(e.inlineData.data,e.inlineData.mimeType);r.inlineData={displayName:e.inlineData.displayName,data:s,mimeType:e.inlineData.mimeType}}else if(e.text)r.text=e.text,r.thought=!!e.thought,A?.groundingMetadata&&A.groundingMetadata.searchEntryPoint&&A.groundingMetadata.searchEntryPoint.renderedContent&&(r.renderedContent=A.groundingMetadata.searchEntryPoint.renderedContent),r.eventId=A?.id;else if(e.functionCall)r.functionCall=e.functionCall,r.eventId=A?.id;else if(e.functionResponse)r.functionResponse=e.functionResponse,r.eventId=A?.id;else if(e.executableCode)r.executableCode=e.executableCode;else if(e.codeExecutionResult&&(r.codeExecutionResult=e.codeExecutionResult,A.actions&&A.actions.artifact_delta))for(let s in A.actions.artifact_delta)A.actions.artifact_delta.hasOwnProperty(s)&&this.renderArtifact(s,A.actions.artifact_delta[s])}e&&Object.keys(e).length>0&&this.insertMessageBeforeLoadingMessage(r)}insertMessageBeforeLoadingMessage(e){this.messages.update(A=>{let i=A[A.length-1];return i?.isLoading?[...A.slice(0,-1),e,i]:[...A,e]})}formatBase64Data(e,A){let i=SPA(e);return`data:${A};base64,${i}`}renderArtifact(e,A){let i={role:"bot",inlineData:{data:"",mimeType:"image/png"}};this.insertMessageBeforeLoadingMessage(i);let n=this.messages(),r=n[n.length-1]?.isLoading?n.length-2:n.length-1;this.artifactService.getArtifactVersion(this.userId,this.appName,this.sessionId,e,A).subscribe(s=>{let a=s.inlineData.mimeType,c=this.formatBase64Data(s.inlineData.data,a),g=P8(a),I={name:this.createDefaultArtifactName(a),data:c,mimeType:a,mediaType:g};this.messages.update(C=>{let d=[...C];return d[r]={role:"bot",inlineData:I},d}),this.artifacts=[...this.artifacts,{id:e,data:c,mimeType:a,versionId:A,mediaType:P8(a)}]})}storeEvents(e,A){let i="";e==null&&A.actions.artifactDelta?i+="eventAction: artifact":e&&(e.text?i+="text:"+e.text:e.functionCall?i+="functionCall:"+e.functionCall.name:e.functionResponse?i+="functionResponse:"+e.functionResponse.name:e.executableCode?i+="executableCode:"+e.executableCode.code.slice(0,10):e.codeExecutionResult?i+="codeExecutionResult:"+e.codeExecutionResult.outcome:e.errorMessage&&(i+="errorMessage:"+e.errorMessage)),A.title=i,this.eventData.set(A.id,A),this.eventData=new Map(this.eventData)}sendOAuthResponse(e,A,i){this.longRunningEvents.pop();let n={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:[]}};var o=structuredClone(e.args.authConfig);o.exchangedAuthCredential.oauth2.authResponseUri=A,o.exchangedAuthCredential.oauth2.redirectUri=i,n.functionCallEventId=this.functionCallEventId,n.newMessage.parts.push({function_response:{id:e.id,name:e.name,response:o}});let r=[];this.agentService.runSse(n).subscribe({next:s=>Ni(this,null,function*(){r.push(s)}),error:s=>console.error("SSE error:",s),complete:()=>{this.processRunSseResponse(r)}})}processRunSseResponse(e){for(let A of e)if(A.content)for(let i of A.content.parts)this.processPart(A,i)}openDialog(){this.dialog.open(v7,{width:"600px",data:{event:this.longRunningEvents[0].function,appName:this.appName,userId:this.userId,sessionId:this.sessionId,functionCallEventId:this.functionCallEventId,invocationId:this.longRunningEvents[0].invocationId}}).afterClosed().subscribe(A=>{A&&(this.removeFinishedLongRunningEvents(A.events),this.processRunSseResponse(A.response),this.changeDetectorRef.detectChanges())})}removeFinishedLongRunningEvents(e){let A=new Set(e.map(i=>i.id));this.longRunningEvents=this.longRunningEvents.filter(i=>!A.has(i.id))}createAgentIconColorClass(e){let A=this.stringToColorService.stc(e),i=`custom-icon-color-${A.replace("#","")}`;this.injectCustomIconColorStyle(i,A)}clickEvent(e){let A=this.messages()[e].eventId;this.sideDrawer()?.open(),this.showSidePanel=!0,this.selectedEvent=this.eventData.get(A),this.selectedEventIndex=this.getIndexOfKeyInMap(A);let i=A;this.eventService.getEventTrace(i).subscribe(n=>{n[this.llmRequestKey]&&(this.llmRequest=JSON.parse(n[this.llmRequestKey])),n[this.llmResponseKey]&&(this.llmResponse=JSON.parse(n[this.llmResponseKey]))}),this.eventService.getEvent(this.userId,this.appName,this.sessionId,this.selectedEvent.id).subscribe(n=>Ni(this,null,function*(){if(!n.dotSrc){this.renderedEventGraph=void 0;return}let o=n.dotSrc,r=yield this.graphService.render(o);this.rawSvgString=r,this.renderedEventGraph=this.safeValuesService.bypassSecurityTrustHtml(r)}))}ngOnDestroy(){this.streamChatService.closeStream()}onAppSelection(e){this.isAudioRecording&&(this.stopAudioRecording(),this.isAudioRecording=!1),this.isVideoRecording&&(this.stopVideoRecording(),this.isVideoRecording=!1),this.evalTab()?.resetEvalResults(),this.traceData=[],this.bottomPanelVisible=!1}toggleAudioRecording(){this.isAudioRecording?this.stopAudioRecording():this.startAudioRecording()}startAudioRecording(){if(this.sessionHasUsedBidi.has(this.sessionId)){this.openSnackBar(igA,"OK");return}this.isAudioRecording=!0,this.streamChatService.startAudioChat({appName:this.appName,userId:this.userId,sessionId:this.sessionId}),this.messages.update(e=>[...e,{role:"user",text:"Speaking..."},{role:"bot",text:"Speaking..."}]),this.sessionHasUsedBidi.add(this.sessionId)}stopAudioRecording(){this.streamChatService.stopAudioChat(),this.isAudioRecording=!1}toggleVideoRecording(){this.isVideoRecording?this.stopVideoRecording():this.startVideoRecording()}startVideoRecording(){if(this.sessionHasUsedBidi.has(this.sessionId)){this.openSnackBar(igA,"OK");return}let e=this.chatPanel()?.videoContainer;e&&(this.isVideoRecording=!0,this.streamChatService.startVideoChat({appName:this.appName,userId:this.userId,sessionId:this.sessionId,videoContainer:e}),this.messages.update(A=>[...A,{role:"user",text:"Speaking..."}]),this.sessionHasUsedBidi.add(this.sessionId))}stopVideoRecording(){let e=this.chatPanel()?.videoContainer;e&&(this.streamChatService.stopVideoChat(e),this.isVideoRecording=!1)}getAsyncFunctionsFromParts(e,A,i){for(let n of A)n.functionCall&&e.includes(n.functionCall.id)&&this.longRunningEvents.push({function:n.functionCall,invocationId:i})}openOAuthPopup(e){return new Promise((A,i)=>{if(!this.safeValuesService.windowOpen(window,e,"oauthPopup","width=600,height=700")){i("Popup blocked!");return}let o=r=>{if(r.origin!==window.location.origin)return;let{authResponseUrl:s}=r.data;s?(A(s),window.removeEventListener("message",o)):console.log("OAuth failed",r)};window.addEventListener("message",o)})}toggleSidePanel(){this.showSidePanel?this.sideDrawer()?.close():this.sideDrawer()?.open(),this.showSidePanel=!this.showSidePanel}handleTabChange(e){this.isChatMode()||(this.resetEditEvalCaseVars(),this.handleReturnToSession(!0))}handleReturnToSession(e){this.sessionTab?.getSession(this.sessionId),this.evalTab()?.resetEvalCase(),this.isChatMode.set(!0)}handleEvalNotInstalled(e){e&&this.openSnackBar(e,"OK")}resetEventsAndMessages(){this.eventData.clear(),this.messages.set([]),this.artifacts=[]}updateWithSelectedSession(e){!e||!e.id||!e.events||!e.state||(this.traceService.resetTraceService(),this.sessionId=e.id,this.currentSessionState=e.state,this.evalCase=null,this.isChatMode.set(!0),this.isSessionUrlEnabledObs.subscribe(A=>{A&&this.updateSelectedSessionUrl()}),this.resetEventsAndMessages(),e.events.forEach(A=>{A.content?.parts?.forEach(i=>{this.storeMessage(i,A,A.author==="user"?"user":"bot"),A.author&&A.author!=="user"&&this.storeEvents(i,A)})}),this.eventService.getTrace(this.sessionId).subscribe(A=>{this.traceData=A,this.traceService.setEventData(this.eventData),this.traceService.setMessages(this.messages())}),this.bottomPanelVisible=!1,this.changeDetectorRef.detectChanges())}updateWithSelectedEvalCase(e){this.evalCase=e,this.isChatMode.set(!1),this.resetEventsAndMessages();let A=0;for(let i of e.conversation){if(i.userContent?.parts)for(let n of i.userContent.parts)this.storeMessage(n,null,"user");if(i.intermediateData?.toolUses){let n=0;for(let o of i.intermediateData.toolUses){let r={functionCall:{name:o.name,args:o.args}};this.storeMessage(r,null,"bot",A,{toolUseIndex:n}),n++;let s={functionResponse:{name:o.name}};this.storeMessage(s,null,"bot")}}if(i.finalResponse?.parts){let n=0;for(let o of i.finalResponse.parts)this.storeMessage(o,null,"bot",A,{finalResponsePartIndex:n}),n++}A++}}updateSelectedEvalSetId(e){this.evalSetId=e}editEvalCaseMessage(e){this.isEvalCaseEditing.set(!0),this.userEditEvalCaseMessage=e.text,e.isEditing=!0,setTimeout(()=>{let A=this.chatPanel()?.textarea?.nativeElement;if(!A)return;A.focus();let i=A.value.length;e.text.charAt(i-1)===` `&&i--,A.setSelectionRange(i,i)},0)}editFunctionArgs(e){this.isEvalCaseEditing.set(!0),this.dialog.open(mf,{maxWidth:"90vw",maxHeight:"90vh",data:{dialogHeader:"Edit function arguments",functionName:e.functionCall.name,jsonContent:e.functionCall.args}}).afterClosed().subscribe(i=>{this.isEvalCaseEditing.set(!1),i&&(this.hasEvalCaseChanged.set(!0),e.functionCall.args=i,this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[e.invocationIndex].intermediateData.toolUses[e.toolUseIndex].args=i)})}saveEvalCase(){this.evalService.updateEvalCase(this.appName,this.evalSetId,this.updatedEvalCase.evalId,this.updatedEvalCase).subscribe(e=>{this.openSnackBar("Eval case updated","OK"),this.resetEditEvalCaseVars()})}cancelEditEvalCase(){this.resetEditEvalCaseVars(),this.updateWithSelectedEvalCase(this.evalCase)}resetEditEvalCaseVars(){this.hasEvalCaseChanged.set(!1),this.isEvalCaseEditing.set(!1),this.isEvalEditMode.set(!1),this.updatedEvalCase=null}cancelEditMessage(e){e.isEditing=!1,this.isEvalCaseEditing.set(!1)}saveEditMessage(e){this.hasEvalCaseChanged.set(!0),this.isEvalCaseEditing.set(!1),e.isEditing=!1,e.text=this.userEditEvalCaseMessage?this.userEditEvalCaseMessage:" ",this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[e.invocationIndex].finalResponse.parts[e.finalResponsePartIndex]={text:this.userEditEvalCaseMessage},this.userEditEvalCaseMessage=""}handleKeydown(e,A){e.key==="Enter"&&!e.shiftKey?(e.preventDefault(),this.saveEditMessage(A)):e.key==="Escape"&&this.cancelEditMessage(A)}deleteEvalCaseMessage(e,A){this.hasEvalCaseChanged.set(!0),this.messages.update(i=>i.filter((n,o)=>o!==A)),this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[e.invocationIndex].finalResponse.parts.splice(e.finalResponsePartIndex,1)}editEvalCase(){this.isEvalEditMode.set(!0)}deleteEvalCase(){let e={title:"Confirm delete",message:`Are you sure you want to delete ${this.evalCase.evalId}?`,confirmButtonText:"Delete",cancelButtonText:"Cancel"};this.dialog.open(yf,{width:"600px",data:e}).afterClosed().subscribe(i=>{i&&(this.evalTab()?.deleteEvalCase(this.evalCase.evalId),this.openSnackBar("Eval case deleted","OK"))})}updateSessionState(e){this.currentSessionState=e.state}onNewSessionClick(){this.createSession(),this.eventData.clear(),this.messages.set([]),this.artifacts=[],this.traceData=[],this.bottomPanelVisible=!1,this.evalTab()?.showEvalHistory&&this.evalTab()?.toggleEvalHistoryButton()}onFileSelect(e){let A=e.target;if(A.files)for(let i=0;i{i[this.llmRequestKey]&&(this.llmRequest=JSON.parse(i[this.llmRequestKey])),i[this.llmResponseKey]&&(this.llmResponse=JSON.parse(i[this.llmResponseKey]))}),this.eventService.getEvent(this.userId,this.appName,this.sessionId,this.selectedEvent.id).subscribe(i=>Ni(this,null,function*(){if(!i.dotSrc){this.renderedEventGraph=void 0;return}let n=yield this.graphService.render(i.dotSrc);this.rawSvgString=n,this.renderedEventGraph=this.safeValuesService.bypassSecurityTrustHtml(n)}))}deleteSession(e){let A={title:"Confirm delete",message:`Are you sure you want to delete this session ${this.sessionId}?`,confirmButtonText:"Delete",cancelButtonText:"Cancel"};this.dialog.open(yf,{width:"600px",data:A}).afterClosed().subscribe(n=>{n&&this.sessionService.deleteSession(this.userId,this.appName,e).subscribe(o=>{let r=this.sessionTab?.refreshSession(e);r?this.sessionTab?.getSession(r.id):window.location.reload()})})}syncSelectedAppFromUrl(){ga([this.router.events.pipe(Nt(e=>e instanceof ac),je(()=>this.activatedRoute.snapshot.queryParams)),this.apps$]).subscribe(([e,A])=>{if(A&&A.length){let i=e.app;i&&A.includes(i)?this.selectedAppControl.setValue(i):i&&this.openSnackBar(`Agent '${i}' not found`,"OK")}})}updateSelectedAppUrl(){this.selectedAppControl.valueChanges.pipe(il(),Nt(Boolean)).subscribe(e=>{this.selectApp(e);let A=this.activatedRoute.snapshot.queryParams.app;e!==A&&this.router.navigate([],{queryParams:{app:e},queryParamsHandling:"merge"})})}updateSelectedSessionUrl(){let e=this.router.createUrlTree([],{queryParams:{session:this.sessionId},queryParamsHandling:"merge"}).toString();this.location.replaceState(e)}handlePageEvent(e){if(e.pageIndex>=0){let A=this.getKeyAtIndexInMap(e.pageIndex);A&&this.selectEvent(A)}}closeSelectedEvent(){this.selectedEvent=void 0,this.selectedEventIndex=void 0}getIndexOfKeyInMap(e){let A=0,i=(o,r)=>0,n=Array.from(this.eventData.keys()).sort(i);for(let o of n){if(o===e)return A;A++}}getKeyAtIndexInMap(e){let A=(n,o)=>0,i=Array.from(this.eventData.keys()).sort(A);if(e>=0&&e{console.log(e),this.downloadService.downloadObjectAsJson(e,`session-${this.sessionId}.json`)})}updateState(){this.dialog.open(mf,{maxWidth:"90vw",maxHeight:"90vh",data:{dialogHeader:"Update state",jsonContent:this.currentSessionState}}).afterClosed().subscribe(A=>{A&&this.updatedSessionState.set(A)})}removeStateUpdate(){this.updatedSessionState.set(null)}closeTraceEventDetailPanel(){this.bottomPanelVisible=!1,this.traceService.selectedRow(void 0),this.traceService.setHoveredMessages(void 0,"")}importSession(){let e=document.createElement("input");e.type="file",e.accept="application/json",e.onchange=()=>{if(!e.files||e.files.length===0)return;let A=e.files[0],i=new FileReader;i.onload=n=>{if(n.target?.result)try{let o=JSON.parse(n.target.result);if(!o.userId||!o.appName||!o.events){this.openSnackBar("Invalid session file format","OK");return}this.sessionService.importSession(o.userId,o.appName,o.events).subscribe(r=>{this.openSnackBar("Session imported","OK"),this.sessionTab?.refreshSession()})}catch{this.openSnackBar("Error parsing session file","OK")}},i.readAsText(A)},e.click()}injectCustomIconColorStyle(e,A){if(this.document.getElementById(e))return;let i=this.renderer.createElement("style");this.renderer.setAttribute(i,"id",e),this.renderer.setAttribute(i,"type","text/css");let n=` .${e} { background-color: ${A} !important; } - `;this.renderer.appendChild(i,this.renderer.createText(n)),this.renderer.appendChild(this.document.head,i)}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-chat"]],viewQuery:function(A,i){A&1&&(ls(i.chatPanel,ZB,5),ls(i.sideDrawer,iPA,5),ls(i.sidePanel,OQ,5),ls(i.evalTab,g2,5),ls(i.scrollContainer,nPA,5),ls(i.bottomPanelRef,oPA,5)),A&2&&yc(6)},features:[ut([{provide:_8,useClass:nU}])],decls:12,vars:24,consts:[["sideDrawer",""],["bottomPanel",""],["autosize","",1,"drawer-container"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"position","absolute","width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","20px","z-index","9999"],["mode","side","appResizableDrawer","",1,"side-drawer"],[3,"closePanel","tabChange","eventSelected","sessionSelected","sessionReloaded","evalCaseSelected","evalSetIdSelected","returnToSession","evalNotInstalled","page","closeSelectedEvent","openImageDialog","appSelectionChange","isApplicationSelectorEnabledObs","apps$","isLoadingApps","selectedAppControl","showSidePanel","appName","userId","sessionId","traceData","eventData","currentSessionState","artifacts","selectedEvent","selectedEventIndex","renderedEventGraph","rawSvgString","llmRequest","llmResponse"],[1,"chat-container"],[1,"chat-toolbar",3,"ngClass"],[1,"chat-card"],["mat-fab","","color","primary",1,"fab-button"],[3,"appName","messages","isChatMode","evalCase","isEvalEditMode","isEvalCaseEditing","isEditFunctionArgsEnabled","userInput","userEditEvalCaseMessage","selectedFiles","updatedSessionState","eventData","isAudioRecording","isVideoRecording","hoveredEventMessageIndices"],["appResizableBottomPanel","",1,"trace-detail-container"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"position","absolute","width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","20px","z-index","9999",3,"click"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","-2px","z-index","9999"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","-2px","z-index","9999",3,"click"],[2,"display","flex"],[1,"toolbar-session-text"],[1,"toolbar-session-id"],[1,"toolbar-actions"],["mat-button","",2,"height","30px",3,"click"],["mat-flat-button","",2,"height","30px",3,"click","disabled"],["matTooltip","Edit current eval case",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Delete current eval case",1,"material-symbols-outlined","toolbar-icon",3,"click"],[1,"toolbar-sse-toggle"],[1,"example-margin",3,"change","checked","disabled"],[2,"margin-left","8px","margin-right","8px","height","22px",3,"vertical"],[2,"display","flex","align-items","center"],[1,"toolbar-new-sesison",3,"click"],["matTooltip","Delete current session",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Export current session",1,"material-symbols-outlined","toolbar-icon"],["matTooltip","Import session",1,"material-symbols-outlined","toolbar-icon"],["matTooltip","Export current session",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Import session",1,"material-symbols-outlined","toolbar-icon",3,"click"],[1,"empty-state-container"],[1,"warning"],[1,"error"],["mat-fab","","color","primary",1,"fab-button",3,"click"],[3,"userInputChange","userEditEvalCaseMessageChange","clickEvent","handleKeydown","cancelEditMessage","saveEditMessage","openViewImageDialog","openBase64InNewTab","editEvalCaseMessage","deleteEvalCaseMessage","editFunctionArgs","fileSelect","removeFile","removeStateUpdate","sendMessage","updateState","toggleAudioRecording","toggleVideoRecording","appName","messages","isChatMode","evalCase","isEvalEditMode","isEvalCaseEditing","isEditFunctionArgsEnabled","userInput","userEditEvalCaseMessage","selectedFiles","updatedSessionState","eventData","isAudioRecording","isVideoRecording","hoveredEventMessageIndices"],[1,"bottom-resize-handler"],[3,"panelClosed","userId","appName","sessionId"]],template:function(A,i){if(A&1){let n=me();S(0,"mat-drawer-container",2),FA(1,aPA,2,0,"span",3),S(2,"mat-drawer",4,0)(4,"app-side-panel",5),mA("closePanel",function(){return QA(n),uA(i.toggleSidePanel())})("tabChange",function(r){return QA(n),uA(i.handleTabChange(r))})("eventSelected",function(r){return QA(n),uA(i.selectEvent(r))})("sessionSelected",function(r){return QA(n),uA(i.updateWithSelectedSession(r))})("sessionReloaded",function(r){return QA(n),uA(i.updateSessionState(r))})("evalCaseSelected",function(r){return QA(n),uA(i.updateWithSelectedEvalCase(r))})("evalSetIdSelected",function(r){return QA(n),uA(i.updateSelectedEvalSetId(r))})("returnToSession",function(r){return QA(n),uA(i.handleReturnToSession(r))})("evalNotInstalled",function(r){return QA(n),uA(i.handleEvalNotInstalled(r))})("page",function(r){return QA(n),uA(i.handlePageEvent(r))})("closeSelectedEvent",function(){return QA(n),uA(i.closeSelectedEvent())})("openImageDialog",function(r){return QA(n),uA(i.openViewImageDialog(r))})("appSelectionChange",function(r){return QA(n),uA(i.onAppSelection(r))}),N()(),S(5,"div",6),FA(6,EPA,4,5,"div",7),S(7,"mat-card",8),FA(8,DPA,3,3)(9,wPA,3,0,"button",9)(10,yPA,2,17,"app-chat-panel",10),N(),FA(11,vPA,4,3,"div",11),N()()}A&2&&(_(),_A(!i.showSidePanel&&i.appName===""?1:-1),_(3),yA("isApplicationSelectorEnabledObs",i.isApplicationSelectorEnabledObs)("apps$",i.apps$)("isLoadingApps",i.isLoadingApps)("selectedAppControl",i.selectedAppControl)("showSidePanel",i.showSidePanel)("appName",i.appName)("userId",i.userId)("sessionId",i.sessionId)("traceData",i.traceData)("eventData",i.eventData)("currentSessionState",i.currentSessionState)("artifacts",i.artifacts)("selectedEvent",i.selectedEvent)("selectedEventIndex",i.selectedEventIndex)("renderedEventGraph",i.renderedEventGraph)("rawSvgString",i.rawSvgString)("llmRequest",i.llmRequest)("llmResponse",i.llmResponse),_(2),_A(i.appName!=""?6:-1),_(2),_A(i.selectedAppControl.value?-1:8),_(),_A(i.longRunningEvents.length>0?9:-1),_(),_A(i.appName!=""?10:-1),_(),_A(i.bottomPanelVisible?11:-1))},dependencies:[BR,kl,dR,O8,Mr,cB,_c,Sl,Vs,dr,ER,vq,y8,Jz,H8,F7,Qg,ZB,OQ],styles:[".expand-side-drawer[_ngcontent-%COMP%]{position:relative;top:4%;left:1%}.drawer-container[_ngcontent-%COMP%]{height:100%;background-color:var(--chat-drawer-container-background-color)}.chat-container[_ngcontent-%COMP%]{width:100%;height:100%;max-width:100%;margin:auto;display:flex;flex-direction:column;flex:1}.event-container[_ngcontent-%COMP%]{color:var(--chat-event-container-color)}.chat-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;overflow:hidden;flex:1;min-height:12%;box-shadow:none;background-color:var(--chat-card-background-color)}.function-event-button[_ngcontent-%COMP%] .mdc-button__label[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}.loading-bar[_ngcontent-%COMP%]{width:100px;margin:15px}.chat-messages[_ngcontent-%COMP%]{flex-grow:1;overflow-y:auto;padding:20px;margin-top:16px}.message-card[_ngcontent-%COMP%]{padding:5px 20px;margin:5px;border-radius:20px;max-width:80%;font-size:14px;font-weight:400;position:relative;display:inline-block}.function-event-button[_ngcontent-%COMP%]{background-color:var(--chat-function-event-button-background-color);margin:5px 5px 10px}.function-event-button-highlight[_ngcontent-%COMP%]{background-color:var(--chat-function-event-button-highlight-background-color);border-color:var(--chat-function-event-button-highlight-border-color)!important;color:var(--chat-function-event-button-highlight-color)!important}.user-message[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center}.user-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-user-message-message-card-background-color);align-self:flex-end;color:var(--chat-user-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]{display:flex;align-items:center}.bot-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-bot-message-message-card-background-color);align-self:flex-start;color:var(--chat-bot-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]:focus-within .message-card[_ngcontent-%COMP%]{background-color:var(--chat-bot-message-focus-within-message-card-background-color);border:1px solid var(--chat-bot-message-focus-within-message-card-border-color)}.message-textarea[_ngcontent-%COMP%]{background-color:var(--chat-message-textarea-background-color);max-width:100%;border:none;font-family:Google Sans,Helvetica Neue,sans-serif}.message-textarea[_ngcontent-%COMP%]:focus{background-color:var(--chat-message-textarea-focus-background-color);outline:none}.edit-message-buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%]{visibility:hidden;position:absolute;left:10px;z-index:10;background-color:var(--chat-eval-compare-container-background-color);overflow:hidden;border-radius:20px;padding:5px 20px;margin-bottom:10px;font-size:16px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .actual-result[_ngcontent-%COMP%]{border-right:2px solid var(--chat-actual-result-border-right-color);padding-right:8px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .expected-result[_ngcontent-%COMP%]{padding-left:12px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%]:hover .eval-compare-container[_ngcontent-%COMP%]{visibility:visible}.actual-expected-compare-container[_ngcontent-%COMP%]{display:flex}.score-threshold-container[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:10px;align-items:center;margin-top:15px;font-size:14px;font-weight:600}.eval-response-header[_ngcontent-%COMP%]{padding-bottom:5px;border-bottom:2px solid var(--chat-eval-response-header-border-bottom-color);font-style:italic;font-weight:700}.header-expected[_ngcontent-%COMP%]{color:var(--chat-header-expected-color)}.header-actual[_ngcontent-%COMP%]{color:var(--chat-header-actual-color)}.eval-case-edit-button[_ngcontent-%COMP%]{cursor:pointer;margin-left:4px;margin-right:4px}.eval-pass[_ngcontent-%COMP%]{display:flex;color:var(--chat-eval-pass-color)}.eval-fail[_ngcontent-%COMP%]{display:flex;color:var(--chat-eval-fail-color)}.navigation-button-sidepanel[_ngcontent-%COMP%]{margin-left:auto;margin-right:20px}.fab-button[_ngcontent-%COMP%]{position:fixed;bottom:200px;right:100px;z-index:1000}.sidepanel-toggle[_ngcontent-%COMP%]{position:relative;top:100px;z-index:1000}.side-drawer[_ngcontent-%COMP%]{background-color:var(--chat-side-drawer-background-color);color:var(--chat-side-drawer-color);border-radius:0}.file-preview[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px;margin-bottom:8px}.file-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:5px;background:var(--chat-file-item-background-color);padding:5px;border-radius:4px}button[_ngcontent-%COMP%]{margin-left:20px;margin-right:20px}.empty-state-container[_ngcontent-%COMP%]{color:var(--chat-empty-state-container-color);height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:Google Sans,sans-serif;font-weight:400;letter-spacing:normal;line-height:24px;font-size:18px}.empty-state-container[_ngcontent-%COMP%] pre.warning[_ngcontent-%COMP%]{color:var(--chat-warning-color)}.empty-state-container[_ngcontent-%COMP%] pre.error[_ngcontent-%COMP%]{color:var(--chat-error-color)}[_nghost-%COMP%] .mat-mdc-unelevated-button:not(:disabled){color:var(--chat-mat-mdc-unelevated-button-color);background-color:var(--chat-mat-mdc-unelevated-button-background-color)}[_nghost-%COMP%] .mdc-linear-progress__buffer-dots{background:var(--chat-mdc-linear-progress-buffer-dots-background-color)}[_nghost-%COMP%] .mat-mdc-select-arrow-wrapper{margin-left:4px}[_nghost-%COMP%] .mat-mdc-text-field-wrapper{border:1px solid var(--chat-mat-mdc-text-field-wrapper-border-color)}[_nghost-%COMP%] .mdc-notched-outline__leading, [_nghost-%COMP%] .mdc-notched-outline__notch, [_nghost-%COMP%] .mdc-notched-outline__trailing{border:none}[_nghost-%COMP%] .mat-mdc-form-field-icon-suffix{padding:0 10px 0 40px}[_nghost-%COMP%] .segment-key{color:var(--chat-segment-key-color)!important}.mat-mdc-select-placeholder[_ngcontent-%COMP%]{margin-left:20px}.bottom-resize-handler[_ngcontent-%COMP%]{background:var(--chat-bottom-resize-handler-background-color);height:5px;border-radius:4px;position:absolute;display:block;width:20%;left:40%;top:0;right:0;z-index:9999;cursor:ns-resize}.trace-detail-container[_ngcontent-%COMP%]{position:relative;background-color:var(--chat-trace-detail-container-background-color)}.trace-detail-container[_ngcontent-%COMP%] app-trace-event[_ngcontent-%COMP%]{padding-top:8px}.new-session-button[_ngcontent-%COMP%]{margin-top:0;margin-left:50px;width:130px;height:28px;font-size:14px}.adk-checkbox[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;right:0;margin-bottom:20px;margin-left:20px}.chat-toolbar[_ngcontent-%COMP%]{position:sticky;top:0;height:48px;background:var(--chat-toolbar-background-color);display:flex;align-items:center;z-index:10}.chat-toolbar.edit-mode[_ngcontent-%COMP%]{background:var(--chat-toolbar-edit-mode-background-color)}.toolbar-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center}.toolbar-session-text[_ngcontent-%COMP%]{color:var(--chat-toolbar-session-text-color);font-family:Roboto;font-size:12px;font-style:normal;font-weight:500;line-height:12px;letter-spacing:.8px;text-transform:uppercase;margin-left:20px;padding-top:4px}.toolbar-session-id[_ngcontent-%COMP%]{color:var(--chat-toolbar-session-id-color);font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px;margin-left:5px}.toolbar-icon[_ngcontent-%COMP%]{width:24px;height:24px;color:var(--chat-toolbar-icon-color);cursor:pointer;margin-right:16px}.toolbar-new-sesison[_ngcontent-%COMP%]{font-size:14px;margin-right:16px;color:var(--chat-toolbar-new-session-color);cursor:pointer;display:flex;align-items:center}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-label-text-size: 14px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-label-text-color: var(--chat-toolbar-sse-toggle-label-text-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-track-color: var(--chat-toolbar-sse-toggle-selected-track-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-focus-track-color: var(--chat-toolbar-sse-toggle-selected-track-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-hover-track-color: var(--chat-toolbar-sse-toggle-selected-track-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-handle-color: var(--chat-toolbar-sse-toggle-selected-handle-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-focus-handle-color: var(--chat-toolbar-sse-toggle-selected-handle-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-hover-handle-color: var(--chat-toolbar-sse-toggle-selected-handle-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-track-height: 24px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-track-width: 46px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-track-outline-color: var(--chat-toolbar-sse-toggle-track-outline-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-with-icon-handle-size: 20px} .mat-drawer-content{display:flex!important} .mat-drawer{border-right:1px solid var(--chat-mat-drawer-border-right-color)!important}"],changeDetection:0})};var zQ=class t{static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-root"]],decls:1,vars:0,template:function(A,i){A&1&&TA(0,"app-chat")},dependencies:[_7],encapsulation:2})};var kPA=[{path:"",component:zQ}],G7=class t{static \u0275fac=function(A){return new(A||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[w8.forRoot(kPA),w8]})};var K7=class{static getRuntimeConfig(){return window.runtimeConfig}};function SPA(t,e){if(t&1&&(S(0,"a",0),TA(1,"img",1),AA(2),N()),t&2){Y();let A=xb(0),i=xb(1);_(),L2("src",A,js),_(),Bt(" ",i," ")}}function RPA(t,e){t&1&&(S(0,"div"),AA(1," Invalid custom logo config. Make sure that your runtime config specifies both imgUrl and text in the logo field. "),N())}var U7=class t{logoConfig=K7.getRuntimeConfig().logo;static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-custom-logo"]],decls:4,vars:3,consts:[["href","/"],["width","32px","height","32px",1,"orcas-logo",3,"src"]],template:function(A,i){if(A&1&&(Rb(0)(1),FA(2,SPA,3,2,"a",0)(3,RPA,2,0,"div")),A&2){let n=Lb(i.logoConfig==null?null:i.logoConfig.imageUrl);_();let o=Lb(i.logoConfig==null?null:i.logoConfig.text);_(),_A(n&&o?2:3)}},styles:[`a[_ngcontent-%COMP%]{color:inherit;text-decoration:none;display:flex;align-items:center;gap:8px} + `;this.renderer.appendChild(i,this.renderer.createText(n)),this.renderer.appendChild(this.document.head,i)}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-chat"]],viewQuery:function(A,i){A&1&&(ls(i.chatPanel,ZB,5),ls(i.sideDrawer,oPA,5),ls(i.sidePanel,OQ,5),ls(i.evalTab,g2,5),ls(i.scrollContainer,rPA,5),ls(i.bottomPanelRef,sPA,5)),A&2&&yc(6)},features:[ut([{provide:_8,useClass:nU}])],decls:12,vars:24,consts:[["sideDrawer",""],["bottomPanel",""],["autosize","",1,"drawer-container"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"position","absolute","width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","20px","z-index","9999"],["mode","side","appResizableDrawer","",1,"side-drawer"],[3,"closePanel","tabChange","eventSelected","sessionSelected","sessionReloaded","evalCaseSelected","evalSetIdSelected","returnToSession","evalNotInstalled","page","closeSelectedEvent","openImageDialog","appSelectionChange","isApplicationSelectorEnabledObs","apps$","isLoadingApps","selectedAppControl","showSidePanel","appName","userId","sessionId","traceData","eventData","currentSessionState","artifacts","selectedEvent","selectedEventIndex","renderedEventGraph","rawSvgString","llmRequest","llmResponse"],[1,"chat-container"],[1,"chat-toolbar",3,"ngClass"],[1,"chat-card"],["mat-fab","","color","primary",1,"fab-button"],[3,"appName","messages","isChatMode","evalCase","isEvalEditMode","isEvalCaseEditing","isEditFunctionArgsEnabled","userInput","userEditEvalCaseMessage","selectedFiles","updatedSessionState","eventData","isAudioRecording","isVideoRecording","hoveredEventMessageIndices"],["appResizableBottomPanel","",1,"trace-detail-container"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"position","absolute","width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","20px","z-index","9999",3,"click"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","-2px","z-index","9999"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","-2px","z-index","9999",3,"click"],[2,"display","flex"],[1,"toolbar-session-text"],[1,"toolbar-session-id"],[1,"toolbar-actions"],["mat-button","",2,"height","30px",3,"click"],["mat-flat-button","",2,"height","30px",3,"click","disabled"],["matTooltip","Edit current eval case",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Delete current eval case",1,"material-symbols-outlined","toolbar-icon",3,"click"],[1,"toolbar-sse-toggle"],[1,"example-margin",3,"change","checked","disabled"],[2,"margin-left","8px","margin-right","8px","height","22px",3,"vertical"],[2,"display","flex","align-items","center"],[1,"toolbar-new-sesison",3,"click"],["matTooltip","Delete current session",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Export current session",1,"material-symbols-outlined","toolbar-icon"],["matTooltip","Import session",1,"material-symbols-outlined","toolbar-icon"],["matTooltip","Export current session",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Import session",1,"material-symbols-outlined","toolbar-icon",3,"click"],[1,"empty-state-container"],[1,"warning"],[1,"error"],["mat-fab","","color","primary",1,"fab-button",3,"click"],[3,"userInputChange","userEditEvalCaseMessageChange","clickEvent","handleKeydown","cancelEditMessage","saveEditMessage","openViewImageDialog","openBase64InNewTab","editEvalCaseMessage","deleteEvalCaseMessage","editFunctionArgs","fileSelect","removeFile","removeStateUpdate","sendMessage","updateState","toggleAudioRecording","toggleVideoRecording","appName","messages","isChatMode","evalCase","isEvalEditMode","isEvalCaseEditing","isEditFunctionArgsEnabled","userInput","userEditEvalCaseMessage","selectedFiles","updatedSessionState","eventData","isAudioRecording","isVideoRecording","hoveredEventMessageIndices"],[1,"bottom-resize-handler"],[3,"panelClosed","userId","appName","sessionId"]],template:function(A,i){if(A&1){let n=me();S(0,"mat-drawer-container",2),NA(1,gPA,2,0,"span",3),S(2,"mat-drawer",4,0)(4,"app-side-panel",5),mA("closePanel",function(){return QA(n),uA(i.toggleSidePanel())})("tabChange",function(r){return QA(n),uA(i.handleTabChange(r))})("eventSelected",function(r){return QA(n),uA(i.selectEvent(r))})("sessionSelected",function(r){return QA(n),uA(i.updateWithSelectedSession(r))})("sessionReloaded",function(r){return QA(n),uA(i.updateSessionState(r))})("evalCaseSelected",function(r){return QA(n),uA(i.updateWithSelectedEvalCase(r))})("evalSetIdSelected",function(r){return QA(n),uA(i.updateSelectedEvalSetId(r))})("returnToSession",function(r){return QA(n),uA(i.handleReturnToSession(r))})("evalNotInstalled",function(r){return QA(n),uA(i.handleEvalNotInstalled(r))})("page",function(r){return QA(n),uA(i.handlePageEvent(r))})("closeSelectedEvent",function(){return QA(n),uA(i.closeSelectedEvent())})("openImageDialog",function(r){return QA(n),uA(i.openViewImageDialog(r))})("appSelectionChange",function(r){return QA(n),uA(i.onAppSelection(r))}),N()(),S(5,"div",6),NA(6,uPA,4,5,"div",7),S(7,"mat-card",8),NA(8,yPA,3,3)(9,vPA,3,0,"button",9)(10,MPA,2,17,"app-chat-panel",10),N(),NA(11,bPA,4,3,"div",11),N()()}A&2&&(_(),_A(!i.showSidePanel&&i.appName===""?1:-1),_(3),yA("isApplicationSelectorEnabledObs",i.isApplicationSelectorEnabledObs)("apps$",i.apps$)("isLoadingApps",i.isLoadingApps)("selectedAppControl",i.selectedAppControl)("showSidePanel",i.showSidePanel)("appName",i.appName)("userId",i.userId)("sessionId",i.sessionId)("traceData",i.traceData)("eventData",i.eventData)("currentSessionState",i.currentSessionState)("artifacts",i.artifacts)("selectedEvent",i.selectedEvent)("selectedEventIndex",i.selectedEventIndex)("renderedEventGraph",i.renderedEventGraph)("rawSvgString",i.rawSvgString)("llmRequest",i.llmRequest)("llmResponse",i.llmResponse),_(2),_A(i.appName!=""?6:-1),_(2),_A(i.selectedAppControl.value?-1:8),_(),_A(i.longRunningEvents.length>0?9:-1),_(),_A(i.appName!=""?10:-1),_(),_A(i.bottomPanelVisible?11:-1))},dependencies:[BR,kl,dR,O8,Mr,cB,_c,Sl,Vs,dr,ER,vq,y8,Jz,H8,F7,Qg,ZB,OQ],styles:[".expand-side-drawer[_ngcontent-%COMP%]{position:relative;top:4%;left:1%}.drawer-container[_ngcontent-%COMP%]{height:100%;background-color:var(--chat-drawer-container-background-color)}.chat-container[_ngcontent-%COMP%]{width:100%;height:100%;max-width:100%;margin:auto;display:flex;flex-direction:column;flex:1}.event-container[_ngcontent-%COMP%]{color:var(--chat-event-container-color)}.chat-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;overflow:hidden;flex:1;min-height:12%;box-shadow:none;background-color:var(--chat-card-background-color)}.function-event-button[_ngcontent-%COMP%] .mdc-button__label[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}.loading-bar[_ngcontent-%COMP%]{width:100px;margin:15px}.chat-messages[_ngcontent-%COMP%]{flex-grow:1;overflow-y:auto;padding:20px;margin-top:16px}.message-card[_ngcontent-%COMP%]{padding:5px 20px;margin:5px;border-radius:20px;max-width:80%;font-size:14px;font-weight:400;position:relative;display:inline-block}.function-event-button[_ngcontent-%COMP%]{background-color:var(--chat-function-event-button-background-color);margin:5px 5px 10px}.function-event-button-highlight[_ngcontent-%COMP%]{background-color:var(--chat-function-event-button-highlight-background-color);border-color:var(--chat-function-event-button-highlight-border-color)!important;color:var(--chat-function-event-button-highlight-color)!important}.user-message[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center}.user-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-user-message-message-card-background-color);align-self:flex-end;color:var(--chat-user-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]{display:flex;align-items:center}.bot-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-bot-message-message-card-background-color);align-self:flex-start;color:var(--chat-bot-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]:focus-within .message-card[_ngcontent-%COMP%]{background-color:var(--chat-bot-message-focus-within-message-card-background-color);border:1px solid var(--chat-bot-message-focus-within-message-card-border-color)}.message-textarea[_ngcontent-%COMP%]{background-color:var(--chat-message-textarea-background-color);max-width:100%;border:none;font-family:Google Sans,Helvetica Neue,sans-serif}.message-textarea[_ngcontent-%COMP%]:focus{background-color:var(--chat-message-textarea-focus-background-color);outline:none}.edit-message-buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%]{visibility:hidden;position:absolute;left:10px;z-index:10;background-color:var(--chat-eval-compare-container-background-color);overflow:hidden;border-radius:20px;padding:5px 20px;margin-bottom:10px;font-size:16px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .actual-result[_ngcontent-%COMP%]{border-right:2px solid var(--chat-actual-result-border-right-color);padding-right:8px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .expected-result[_ngcontent-%COMP%]{padding-left:12px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%]:hover .eval-compare-container[_ngcontent-%COMP%]{visibility:visible}.actual-expected-compare-container[_ngcontent-%COMP%]{display:flex}.score-threshold-container[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:10px;align-items:center;margin-top:15px;font-size:14px;font-weight:600}.eval-response-header[_ngcontent-%COMP%]{padding-bottom:5px;border-bottom:2px solid var(--chat-eval-response-header-border-bottom-color);font-style:italic;font-weight:700}.header-expected[_ngcontent-%COMP%]{color:var(--chat-header-expected-color)}.header-actual[_ngcontent-%COMP%]{color:var(--chat-header-actual-color)}.eval-case-edit-button[_ngcontent-%COMP%]{cursor:pointer;margin-left:4px;margin-right:4px}.eval-pass[_ngcontent-%COMP%]{display:flex;color:var(--chat-eval-pass-color)}.eval-fail[_ngcontent-%COMP%]{display:flex;color:var(--chat-eval-fail-color)}.navigation-button-sidepanel[_ngcontent-%COMP%]{margin-left:auto;margin-right:20px}.fab-button[_ngcontent-%COMP%]{position:fixed;bottom:200px;right:100px;z-index:1000}.sidepanel-toggle[_ngcontent-%COMP%]{position:relative;top:100px;z-index:1000}.side-drawer[_ngcontent-%COMP%]{background-color:var(--chat-side-drawer-background-color);color:var(--chat-side-drawer-color);border-radius:0}.file-preview[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px;margin-bottom:8px}.file-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:5px;background:var(--chat-file-item-background-color);padding:5px;border-radius:4px}button[_ngcontent-%COMP%]{margin-left:20px;margin-right:20px}.empty-state-container[_ngcontent-%COMP%]{color:var(--chat-empty-state-container-color);height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:Google Sans,sans-serif;font-weight:400;letter-spacing:normal;line-height:24px;font-size:18px}.empty-state-container[_ngcontent-%COMP%] pre.warning[_ngcontent-%COMP%]{color:var(--chat-warning-color)}.empty-state-container[_ngcontent-%COMP%] pre.error[_ngcontent-%COMP%]{color:var(--chat-error-color)}[_nghost-%COMP%] .mat-mdc-unelevated-button:not(:disabled){color:var(--chat-mat-mdc-unelevated-button-color);background-color:var(--chat-mat-mdc-unelevated-button-background-color)}[_nghost-%COMP%] .mdc-linear-progress__buffer-dots{background:var(--chat-mdc-linear-progress-buffer-dots-background-color)}[_nghost-%COMP%] .mat-mdc-select-arrow-wrapper{margin-left:4px}[_nghost-%COMP%] .mat-mdc-text-field-wrapper{border:1px solid var(--chat-mat-mdc-text-field-wrapper-border-color)}[_nghost-%COMP%] .mdc-notched-outline__leading, [_nghost-%COMP%] .mdc-notched-outline__notch, [_nghost-%COMP%] .mdc-notched-outline__trailing{border:none}[_nghost-%COMP%] .mat-mdc-form-field-icon-suffix{padding:0 10px 0 40px}[_nghost-%COMP%] .segment-key{color:var(--chat-segment-key-color)!important}.mat-mdc-select-placeholder[_ngcontent-%COMP%]{margin-left:20px}.bottom-resize-handler[_ngcontent-%COMP%]{background:var(--chat-bottom-resize-handler-background-color);height:5px;border-radius:4px;position:absolute;display:block;width:20%;left:40%;top:0;right:0;z-index:9999;cursor:ns-resize}.trace-detail-container[_ngcontent-%COMP%]{position:relative;background-color:var(--chat-trace-detail-container-background-color)}.trace-detail-container[_ngcontent-%COMP%] app-trace-event[_ngcontent-%COMP%]{padding-top:8px}.new-session-button[_ngcontent-%COMP%]{margin-top:0;margin-left:50px;width:130px;height:28px;font-size:14px}.adk-checkbox[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;right:0;margin-bottom:20px;margin-left:20px}.chat-toolbar[_ngcontent-%COMP%]{position:sticky;top:0;height:48px;background:var(--chat-toolbar-background-color);display:flex;align-items:center;z-index:10}.chat-toolbar.edit-mode[_ngcontent-%COMP%]{background:var(--chat-toolbar-edit-mode-background-color)}.toolbar-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center}.toolbar-session-text[_ngcontent-%COMP%]{color:var(--chat-toolbar-session-text-color);font-family:Roboto;font-size:12px;font-style:normal;font-weight:500;line-height:12px;letter-spacing:.8px;text-transform:uppercase;margin-left:20px;padding-top:4px}.toolbar-session-id[_ngcontent-%COMP%]{color:var(--chat-toolbar-session-id-color);font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px;margin-left:5px}.toolbar-icon[_ngcontent-%COMP%]{width:24px;height:24px;color:var(--chat-toolbar-icon-color);cursor:pointer;margin-right:16px}.toolbar-new-sesison[_ngcontent-%COMP%]{font-size:14px;margin-right:16px;color:var(--chat-toolbar-new-session-color);cursor:pointer;display:flex;align-items:center}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-label-text-size: 14px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-label-text-color: var(--chat-toolbar-sse-toggle-label-text-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-track-color: var(--chat-toolbar-sse-toggle-selected-track-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-focus-track-color: var(--chat-toolbar-sse-toggle-selected-track-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-hover-track-color: var(--chat-toolbar-sse-toggle-selected-track-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-handle-color: var(--chat-toolbar-sse-toggle-selected-handle-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-focus-handle-color: var(--chat-toolbar-sse-toggle-selected-handle-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-hover-handle-color: var(--chat-toolbar-sse-toggle-selected-handle-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-track-height: 24px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-track-width: 46px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-track-outline-color: var(--chat-toolbar-sse-toggle-track-outline-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-with-icon-handle-size: 20px} .mat-drawer-content{display:flex!important} .mat-drawer{border-right:1px solid var(--chat-mat-drawer-border-right-color)!important}"],changeDetection:0})};var zQ=class t{static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-root"]],decls:1,vars:0,template:function(A,i){A&1&&TA(0,"app-chat")},dependencies:[_7],encapsulation:2})};var RPA=[{path:"",component:zQ}],G7=class t{static \u0275fac=function(A){return new(A||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[w8.forRoot(RPA),w8]})};var K7=class{static getRuntimeConfig(){return window.runtimeConfig}};function LPA(t,e){if(t&1&&(S(0,"a",0),TA(1,"img",1),AA(2),N()),t&2){Y();let A=xb(0),i=xb(1);_(),L2("src",A,js),_(),It(" ",i," ")}}function xPA(t,e){t&1&&(S(0,"div"),AA(1," Invalid custom logo config. Make sure that your runtime config specifies both imgUrl and text in the logo field. "),N())}var U7=class t{logoConfig=K7.getRuntimeConfig().logo;static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-custom-logo"]],decls:4,vars:3,consts:[["href","/"],["width","32px","height","32px",1,"orcas-logo",3,"src"]],template:function(A,i){if(A&1&&(Rb(0)(1),NA(2,LPA,3,2,"a",0)(3,xPA,2,0,"div")),A&2){let n=Lb(i.logoConfig==null?null:i.logoConfig.imageUrl);_();let o=Lb(i.logoConfig==null?null:i.logoConfig.text);_(),_A(n&&o?2:3)}},styles:[`a[_ngcontent-%COMP%]{color:inherit;text-decoration:none;display:flex;align-items:center;gap:8px} @@ -3897,11 +3897,11 @@ button.jse-context-menu-button.svelte-1idfykj svg { -`]})};function aU(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var cd=aU();function cgA(t){cd=t}var kf={exec:()=>null};function Vn(t,e=""){let A=typeof t=="string"?t:t.source,i={replace:(n,o)=>{let r=typeof o=="string"?o:o.source;return r=r.replace(ra.caret,"$1"),A=A.replace(n,r),i},getRegex:()=>new RegExp(A,e)};return i}var ra={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i")},LPA=/^(?:[ \t]*(?:\n|$))+/,xPA=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,NPA=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Sf=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,FPA=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,cU=/(?:[*+-]|\d{1,9}[.)])/,ggA=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,lgA=Vn(ggA).replace(/bull/g,cU).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),_PA=Vn(ggA).replace(/bull/g,cU).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),gU=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,GPA=/^[^\n]+/,lU=/(?!\s*\])(?:\\.|[^\[\]\\])+/,KPA=Vn(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",lU).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),UPA=Vn(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,cU).getRegex(),O7="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",IU=/|$))/,JPA=Vn("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",IU).replace("tag",O7).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),IgA=Vn(gU).replace("hr",Sf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O7).getRegex(),YPA=Vn(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",IgA).getRegex(),CU={blockquote:YPA,code:xPA,def:KPA,fences:NPA,heading:FPA,hr:Sf,html:JPA,lheading:lgA,list:UPA,newline:LPA,paragraph:IgA,table:kf,text:GPA},ngA=Vn("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Sf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O7).getRegex(),TPA=Fe(sA({},CU),{lheading:_PA,table:ngA,paragraph:Vn(gU).replace("hr",Sf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",ngA).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O7).getRegex()}),HPA=Fe(sA({},CU),{html:Vn(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",IU).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:kf,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Vn(gU).replace("hr",Sf).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",lgA).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()}),OPA=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,zPA=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,CgA=/^( {2,}|\\)\n(?!\s*$)/,PPA=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,EgA=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,WPA=Vn(EgA,"u").replace(/punct/g,z7).getRegex(),XPA=Vn(EgA,"u").replace(/punct/g,BgA).getRegex(),QgA="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",$PA=Vn(QgA,"gu").replace(/notPunctSpace/g,dgA).replace(/punctSpace/g,dU).replace(/punct/g,z7).getRegex(),AjA=Vn(QgA,"gu").replace(/notPunctSpace/g,VPA).replace(/punctSpace/g,qPA).replace(/punct/g,BgA).getRegex(),ejA=Vn("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,dgA).replace(/punctSpace/g,dU).replace(/punct/g,z7).getRegex(),tjA=Vn(/\\(punct)/,"gu").replace(/punct/g,z7).getRegex(),ijA=Vn(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),njA=Vn(IU).replace("(?:-->|$)","-->").getRegex(),ojA=Vn("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",njA).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),T7=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,rjA=Vn(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",T7).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),ugA=Vn(/^!?\[(label)\]\[(ref)\]/).replace("label",T7).replace("ref",lU).getRegex(),hgA=Vn(/^!?\[(ref)\](?:\[\])?/).replace("ref",lU).getRegex(),sjA=Vn("reflink|nolink(?!\\()","g").replace("reflink",ugA).replace("nolink",hgA).getRegex(),BU={_backpedal:kf,anyPunctuation:tjA,autolink:ijA,blockSkip:ZPA,br:CgA,code:zPA,del:kf,emStrongLDelim:WPA,emStrongRDelimAst:$PA,emStrongRDelimUnd:ejA,escape:OPA,link:rjA,nolink:hgA,punctuation:jPA,reflink:ugA,reflinkSearch:sjA,tag:ojA,text:PPA,url:kf},ajA=Fe(sA({},BU),{link:Vn(/^!?\[(label)\]\((.*?)\)/).replace("label",T7).getRegex(),reflink:Vn(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",T7).getRegex()}),oU=Fe(sA({},BU),{emStrongRDelimAst:AjA,emStrongLDelim:XPA,url:Vn(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},ogA=t=>gjA[t];function c0(t,e){if(e){if(ra.escapeTest.test(t))return t.replace(ra.escapeReplace,ogA)}else if(ra.escapeTestNoEncode.test(t))return t.replace(ra.escapeReplaceNoEncode,ogA);return t}function rgA(t){try{t=encodeURI(t).replace(ra.percentDecode,"%")}catch{return null}return t}function sgA(t,e){let A=t.replace(ra.findPipe,(o,r,s)=>{let a=!1,c=r;for(;--c>=0&&s[c]==="\\";)a=!a;return a?"|":" |"}),i=A.split(ra.splitPipe),n=0;if(i[0].trim()||i.shift(),i.length>0&&!i.at(-1)?.trim()&&i.pop(),e)if(i.length>e)i.splice(e);else for(;i.length0?-2:-1}function agA(t,e,A,i,n){let o=e.href,r=e.title||null,s=t[1].replace(n.other.outputLinkReplace,"$1");i.state.inLink=!0;let a={type:t[0].charAt(0)==="!"?"image":"link",raw:A,href:o,title:r,text:s,tokens:i.inlineTokens(s)};return i.state.inLink=!1,a}function IjA(t,e,A){let i=t.match(A.other.indentCodeCompensation);if(i===null)return e;let n=i[1];return e.split(` +`]})};function aU(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var cd=aU();function cgA(t){cd=t}var kf={exec:()=>null};function Vn(t,e=""){let A=typeof t=="string"?t:t.source,i={replace:(n,o)=>{let r=typeof o=="string"?o:o.source;return r=r.replace(ra.caret,"$1"),A=A.replace(n,r),i},getRegex:()=>new RegExp(A,e)};return i}var ra={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i")},NPA=/^(?:[ \t]*(?:\n|$))+/,FPA=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,_PA=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Sf=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,GPA=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,cU=/(?:[*+-]|\d{1,9}[.)])/,ggA=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,lgA=Vn(ggA).replace(/bull/g,cU).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),KPA=Vn(ggA).replace(/bull/g,cU).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),gU=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,UPA=/^[^\n]+/,lU=/(?!\s*\])(?:\\.|[^\[\]\\])+/,JPA=Vn(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",lU).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),YPA=Vn(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,cU).getRegex(),O7="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",IU=/|$))/,TPA=Vn("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",IU).replace("tag",O7).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),IgA=Vn(gU).replace("hr",Sf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O7).getRegex(),HPA=Vn(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",IgA).getRegex(),CU={blockquote:HPA,code:FPA,def:JPA,fences:_PA,heading:GPA,hr:Sf,html:TPA,lheading:lgA,list:YPA,newline:NPA,paragraph:IgA,table:kf,text:UPA},ngA=Vn("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Sf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O7).getRegex(),OPA=Fe(sA({},CU),{lheading:KPA,table:ngA,paragraph:Vn(gU).replace("hr",Sf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",ngA).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O7).getRegex()}),zPA=Fe(sA({},CU),{html:Vn(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",IU).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:kf,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Vn(gU).replace("hr",Sf).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",lgA).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()}),PPA=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,jPA=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,CgA=/^( {2,}|\\)\n(?!\s*$)/,qPA=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,EgA=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,$PA=Vn(EgA,"u").replace(/punct/g,z7).getRegex(),AjA=Vn(EgA,"u").replace(/punct/g,BgA).getRegex(),QgA="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",ejA=Vn(QgA,"gu").replace(/notPunctSpace/g,dgA).replace(/punctSpace/g,dU).replace(/punct/g,z7).getRegex(),tjA=Vn(QgA,"gu").replace(/notPunctSpace/g,WPA).replace(/punctSpace/g,ZPA).replace(/punct/g,BgA).getRegex(),ijA=Vn("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,dgA).replace(/punctSpace/g,dU).replace(/punct/g,z7).getRegex(),njA=Vn(/\\(punct)/,"gu").replace(/punct/g,z7).getRegex(),ojA=Vn(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),rjA=Vn(IU).replace("(?:-->|$)","-->").getRegex(),sjA=Vn("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",rjA).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),T7=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,ajA=Vn(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",T7).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),ugA=Vn(/^!?\[(label)\]\[(ref)\]/).replace("label",T7).replace("ref",lU).getRegex(),hgA=Vn(/^!?\[(ref)\](?:\[\])?/).replace("ref",lU).getRegex(),cjA=Vn("reflink|nolink(?!\\()","g").replace("reflink",ugA).replace("nolink",hgA).getRegex(),BU={_backpedal:kf,anyPunctuation:njA,autolink:ojA,blockSkip:XPA,br:CgA,code:jPA,del:kf,emStrongLDelim:$PA,emStrongRDelimAst:ejA,emStrongRDelimUnd:ijA,escape:PPA,link:ajA,nolink:hgA,punctuation:VPA,reflink:ugA,reflinkSearch:cjA,tag:sjA,text:qPA,url:kf},gjA=Fe(sA({},BU),{link:Vn(/^!?\[(label)\]\((.*?)\)/).replace("label",T7).getRegex(),reflink:Vn(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",T7).getRegex()}),oU=Fe(sA({},BU),{emStrongRDelimAst:tjA,emStrongLDelim:AjA,url:Vn(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},ogA=t=>IjA[t];function c0(t,e){if(e){if(ra.escapeTest.test(t))return t.replace(ra.escapeReplace,ogA)}else if(ra.escapeTestNoEncode.test(t))return t.replace(ra.escapeReplaceNoEncode,ogA);return t}function rgA(t){try{t=encodeURI(t).replace(ra.percentDecode,"%")}catch{return null}return t}function sgA(t,e){let A=t.replace(ra.findPipe,(o,r,s)=>{let a=!1,c=r;for(;--c>=0&&s[c]==="\\";)a=!a;return a?"|":" |"}),i=A.split(ra.splitPipe),n=0;if(i[0].trim()||i.shift(),i.length>0&&!i.at(-1)?.trim()&&i.pop(),e)if(i.length>e)i.splice(e);else for(;i.length0?-2:-1}function agA(t,e,A,i,n){let o=e.href,r=e.title||null,s=t[1].replace(n.other.outputLinkReplace,"$1");i.state.inLink=!0;let a={type:t[0].charAt(0)==="!"?"image":"link",raw:A,href:o,title:r,text:s,tokens:i.inlineTokens(s)};return i.state.inLink=!1,a}function djA(t,e,A){let i=t.match(A.other.indentCodeCompensation);if(i===null)return e;let n=i[1];return e.split(` `).map(o=>{let r=o.match(A.other.beginningSpace);if(r===null)return o;let[s]=r;return s.length>=n.length?o.slice(n.length):o}).join(` `)}var H7=class{options;rules;lexer;constructor(t){this.options=t||cd}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let A=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?A:bf(A,` -`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let A=e[0],i=IjA(A,e[3]||"",this.rules);return{type:"code",raw:A,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:i}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let A=e[2].trim();if(this.rules.other.endingHash.test(A)){let i=bf(A,"#");(this.options.pedantic||!i||this.rules.other.endingSpaceChar.test(i))&&(A=i.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:A,tokens:this.lexer.inline(A)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:bf(e[0],` +`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let A=e[0],i=djA(A,e[3]||"",this.rules);return{type:"code",raw:A,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:i}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let A=e[2].trim();if(this.rules.other.endingHash.test(A)){let i=bf(A,"#");(this.options.pedantic||!i||this.rules.other.endingSpaceChar.test(i))&&(A=i.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:A,tokens:this.lexer.inline(A)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:bf(e[0],` `)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let A=bf(e[0],` `).split(` `),i="",n="",o=[];for(;A.length>0;){let r=!1,s=[],a;for(a=0;aI.type==="space"),g=c.length>0&&c.some(I=>this.rules.other.anyLine.test(I.raw));n.loose=g}if(n.loose)for(let a=0;a({text:s,tokens:this.lexer.inline(s),header:!1,align:o.align[a]})));return o}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let A=e[1].charAt(e[1].length-1)===` -`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:A,tokens:this.lexer.inline(A)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let A=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(A)){if(!this.rules.other.endAngleBracket.test(A))return;let o=bf(A.slice(0,-1),"\\");if((A.length-o.length)%2===0)return}else{let o=ljA(e[2],"()");if(o===-2)return;if(o>-1){let s=(e[0].indexOf("!")===0?5:4)+e[1].length+o;e[2]=e[2].substring(0,o),e[0]=e[0].substring(0,s).trim(),e[3]=""}}let i=e[2],n="";if(this.options.pedantic){let o=this.rules.other.pedanticHrefTitle.exec(i);o&&(i=o[1],n=o[3])}else n=e[3]?e[3].slice(1,-1):"";return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(A)?i=i.slice(1):i=i.slice(1,-1)),agA(e,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let A;if((A=this.rules.inline.reflink.exec(t))||(A=this.rules.inline.nolink.exec(t))){let i=(A[2]||A[1]).replace(this.rules.other.multipleSpaceGlobal," "),n=e[i.toLowerCase()];if(!n){let o=A[0].charAt(0);return{type:"text",raw:o,text:o}}return agA(A,n,A[0],this.lexer,this.rules)}}emStrong(t,e,A=""){let i=this.rules.inline.emStrongLDelim.exec(t);if(!i||i[3]&&A.match(this.rules.other.unicodeAlphaNumeric))return;if(!(i[1]||i[2]||"")||!A||this.rules.inline.punctuation.exec(A)){let o=[...i[0]].length-1,r,s,a=o,c=0,g=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(g.lastIndex=0,e=e.slice(-1*t.length+o);(i=g.exec(e))!=null;){if(r=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!r)continue;if(s=[...r].length,i[3]||i[4]){a+=s;continue}else if((i[5]||i[6])&&o%3&&!((o+s)%3)){c+=s;continue}if(a-=s,a>0)continue;s=Math.min(s,s+a+c);let I=[...i[0]][0].length,C=t.slice(0,o+i.index+I+s);if(Math.min(o,s)%2){let B=C.slice(1,-1);return{type:"em",raw:C,text:B,tokens:this.lexer.inlineTokens(B)}}let d=C.slice(2,-2);return{type:"strong",raw:C,text:d,tokens:this.lexer.inlineTokens(d)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let A=e[2].replace(this.rules.other.newLineCharGlobal," "),i=this.rules.other.nonSpaceChar.test(A),n=this.rules.other.startingSpaceChar.test(A)&&this.rules.other.endingSpaceChar.test(A);return i&&n&&(A=A.substring(1,A.length-1)),{type:"codespan",raw:e[0],text:A}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){let e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let A,i;return e[2]==="@"?(A=e[1],i="mailto:"+A):(A=e[1],i=A),{type:"link",raw:e[0],text:A,href:i,tokens:[{type:"text",raw:A,text:A}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let A,i;if(e[2]==="@")A=e[0],i="mailto:"+A;else{let n;do n=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(n!==e[0]);A=e[0],e[1]==="www."?i="http://"+e[0]:i=e[0]}return{type:"link",raw:e[0],text:A,href:i,tokens:[{type:"text",raw:A,text:A}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let A=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:A}}}},l2=class rU{tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||cd,this.options.tokenizer=this.options.tokenizer||new H7,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let A={other:ra,block:J7.normal,inline:Mf.normal};this.options.pedantic?(A.block=J7.pedantic,A.inline=Mf.pedantic):this.options.gfm&&(A.block=J7.gfm,this.options.breaks?A.inline=Mf.breaks:A.inline=Mf.gfm),this.tokenizer.rules=A}static get rules(){return{block:J7,inline:Mf}}static lex(e,A){return new rU(A).lex(e)}static lexInline(e,A){return new rU(A).inlineTokens(e)}lex(e){e=e.replace(ra.carriageReturn,` +`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:A,tokens:this.lexer.inline(A)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let A=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(A)){if(!this.rules.other.endAngleBracket.test(A))return;let o=bf(A.slice(0,-1),"\\");if((A.length-o.length)%2===0)return}else{let o=CjA(e[2],"()");if(o===-2)return;if(o>-1){let s=(e[0].indexOf("!")===0?5:4)+e[1].length+o;e[2]=e[2].substring(0,o),e[0]=e[0].substring(0,s).trim(),e[3]=""}}let i=e[2],n="";if(this.options.pedantic){let o=this.rules.other.pedanticHrefTitle.exec(i);o&&(i=o[1],n=o[3])}else n=e[3]?e[3].slice(1,-1):"";return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(A)?i=i.slice(1):i=i.slice(1,-1)),agA(e,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let A;if((A=this.rules.inline.reflink.exec(t))||(A=this.rules.inline.nolink.exec(t))){let i=(A[2]||A[1]).replace(this.rules.other.multipleSpaceGlobal," "),n=e[i.toLowerCase()];if(!n){let o=A[0].charAt(0);return{type:"text",raw:o,text:o}}return agA(A,n,A[0],this.lexer,this.rules)}}emStrong(t,e,A=""){let i=this.rules.inline.emStrongLDelim.exec(t);if(!i||i[3]&&A.match(this.rules.other.unicodeAlphaNumeric))return;if(!(i[1]||i[2]||"")||!A||this.rules.inline.punctuation.exec(A)){let o=[...i[0]].length-1,r,s,a=o,c=0,g=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(g.lastIndex=0,e=e.slice(-1*t.length+o);(i=g.exec(e))!=null;){if(r=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!r)continue;if(s=[...r].length,i[3]||i[4]){a+=s;continue}else if((i[5]||i[6])&&o%3&&!((o+s)%3)){c+=s;continue}if(a-=s,a>0)continue;s=Math.min(s,s+a+c);let I=[...i[0]][0].length,C=t.slice(0,o+i.index+I+s);if(Math.min(o,s)%2){let B=C.slice(1,-1);return{type:"em",raw:C,text:B,tokens:this.lexer.inlineTokens(B)}}let d=C.slice(2,-2);return{type:"strong",raw:C,text:d,tokens:this.lexer.inlineTokens(d)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let A=e[2].replace(this.rules.other.newLineCharGlobal," "),i=this.rules.other.nonSpaceChar.test(A),n=this.rules.other.startingSpaceChar.test(A)&&this.rules.other.endingSpaceChar.test(A);return i&&n&&(A=A.substring(1,A.length-1)),{type:"codespan",raw:e[0],text:A}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){let e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let A,i;return e[2]==="@"?(A=e[1],i="mailto:"+A):(A=e[1],i=A),{type:"link",raw:e[0],text:A,href:i,tokens:[{type:"text",raw:A,text:A}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let A,i;if(e[2]==="@")A=e[0],i="mailto:"+A;else{let n;do n=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(n!==e[0]);A=e[0],e[1]==="www."?i="http://"+e[0]:i=e[0]}return{type:"link",raw:e[0],text:A,href:i,tokens:[{type:"text",raw:A,text:A}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let A=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:A}}}},l2=class rU{tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||cd,this.options.tokenizer=this.options.tokenizer||new H7,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let A={other:ra,block:J7.normal,inline:Mf.normal};this.options.pedantic?(A.block=J7.pedantic,A.inline=Mf.pedantic):this.options.gfm&&(A.block=J7.gfm,this.options.breaks?A.inline=Mf.breaks:A.inline=Mf.gfm),this.tokenizer.rules=A}static get rules(){return{block:J7,inline:Mf}}static lex(e,A){return new rU(A).lex(e)}static lexInline(e,A){return new rU(A).inlineTokens(e)}lex(e){e=e.replace(ra.carriageReturn,` `),this.blockTokens(e,this.tokens);for(let A=0;A(n=r.call({lexer:this},e,A))?(e=e.substring(n.raw.length),A.push(n),!0):!1))continue;if(n=this.tokenizer.space(e)){e=e.substring(n.raw.length);let r=A.at(-1);n.raw.length===1&&r!==void 0?r.raw+=` `:A.push(n);continue}if(n=this.tokenizer.code(e)){e=e.substring(n.raw.length);let r=A.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=` `+n.raw,r.text+=` @@ -3951,11 +3951,11 @@ ${this.parser.parse(t)} ${t} `}tablecell(t){let e=this.parser.parseInline(t.tokens),A=t.header?"th":"td";return(t.align?`<${A} align="${t.align}">`:`<${A}>`)+e+` `}strong({tokens:t}){return`${this.parser.parseInline(t)}`}em({tokens:t}){return`${this.parser.parseInline(t)}`}codespan({text:t}){return`${c0(t,!0)}`}br(t){return"
            "}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:e,tokens:A}){let i=this.parser.parseInline(A),n=rgA(t);if(n===null)return i;t=n;let o='
            ",o}image({href:t,title:e,text:A,tokens:i}){i&&(A=this.parser.parseInline(i,this.parser.textRenderer));let n=rgA(t);if(n===null)return c0(A);t=n;let o=`${A}{let r=n[o].flat(1/0);A=A.concat(this.walkTokens(r,e))}):n.tokens&&(A=A.concat(this.walkTokens(n.tokens,e)))}}return A}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(A=>{let i=sA({},A);if(i.async=this.defaults.async||i.async||!1,A.extensions&&(A.extensions.forEach(n=>{if(!n.name)throw new Error("extension name required");if("renderer"in n){let o=e.renderers[n.name];o?e.renderers[n.name]=function(...r){let s=n.renderer.apply(this,r);return s===!1&&(s=o.apply(this,r)),s}:e.renderers[n.name]=n.renderer}if("tokenizer"in n){if(!n.level||n.level!=="block"&&n.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let o=e[n.level];o?o.unshift(n.tokenizer):e[n.level]=[n.tokenizer],n.start&&(n.level==="block"?e.startBlock?e.startBlock.push(n.start):e.startBlock=[n.start]:n.level==="inline"&&(e.startInline?e.startInline.push(n.start):e.startInline=[n.start]))}"childTokens"in n&&n.childTokens&&(e.childTokens[n.name]=n.childTokens)}),i.extensions=e),A.renderer){let n=this.defaults.renderer||new CI(this.defaults);for(let o in A.renderer){if(!(o in n))throw new Error(`renderer '${o}' does not exist`);if(["options","parser"].includes(o))continue;let r=o,s=A.renderer[r],a=n[r];n[r]=(...c)=>{let g=s.apply(n,c);return g===!1&&(g=a.apply(n,c)),g||""}}i.renderer=n}if(A.tokenizer){let n=this.defaults.tokenizer||new H7(this.defaults);for(let o in A.tokenizer){if(!(o in n))throw new Error(`tokenizer '${o}' does not exist`);if(["options","rules","lexer"].includes(o))continue;let r=o,s=A.tokenizer[r],a=n[r];n[r]=(...c)=>{let g=s.apply(n,c);return g===!1&&(g=a.apply(n,c)),g}}i.tokenizer=n}if(A.hooks){let n=this.defaults.hooks||new Y7;for(let o in A.hooks){if(!(o in n))throw new Error(`hook '${o}' does not exist`);if(["options","block"].includes(o))continue;let r=o,s=A.hooks[r],a=n[r];Y7.passThroughHooks.has(o)?n[r]=c=>{if(this.defaults.async)return Promise.resolve(s.call(n,c)).then(I=>a.call(n,I));let g=s.call(n,c);return a.call(n,g)}:n[r]=(...c)=>{let g=s.apply(n,c);return g===!1&&(g=a.apply(n,c)),g}}i.hooks=n}if(A.walkTokens){let n=this.defaults.walkTokens,o=A.walkTokens;i.walkTokens=function(r){let s=[];return s.push(o.call(this,r)),n&&(s=s.concat(n.call(this,r))),s}}this.defaults=sA(sA({},this.defaults),i)}),this}setOptions(t){return this.defaults=sA(sA({},this.defaults),t),this}lexer(t,e){return l2.lex(t,e??this.defaults)}parser(t,e){return I2.parse(t,e??this.defaults)}parseMarkdown(t){return(A,i)=>{let n=sA({},i),o=sA(sA({},this.defaults),n),r=this.onError(!!o.silent,!!o.async);if(this.defaults.async===!0&&n.async===!1)return r(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof A>"u"||A===null)return r(new Error("marked(): input parameter is undefined or null"));if(typeof A!="string")return r(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(A)+", string expected"));o.hooks&&(o.hooks.options=o,o.hooks.block=t);let s=o.hooks?o.hooks.provideLexer():t?l2.lex:l2.lexInline,a=o.hooks?o.hooks.provideParser():t?I2.parse:I2.parseInline;if(o.async)return Promise.resolve(o.hooks?o.hooks.preprocess(A):A).then(c=>s(c,o)).then(c=>o.hooks?o.hooks.processAllTokens(c):c).then(c=>o.walkTokens?Promise.all(this.walkTokens(c,o.walkTokens)).then(()=>c):c).then(c=>a(c,o)).then(c=>o.hooks?o.hooks.postprocess(c):c).catch(r);try{o.hooks&&(A=o.hooks.preprocess(A));let c=s(A,o);o.hooks&&(c=o.hooks.processAllTokens(c)),o.walkTokens&&this.walkTokens(c,o.walkTokens);let g=a(c,o);return o.hooks&&(g=o.hooks.postprocess(g)),g}catch(c){return r(c)}}}onError(t,e){return A=>{if(A.message+=` -Please report this to https://github.com/markedjs/marked.`,t){let i="

            An error occurred:

            "+c0(A.message+"",!0)+"
            ";return e?Promise.resolve(i):i}if(e)return Promise.reject(A);throw A}}},ad=new CjA;function yn(t,e){return ad.parse(t,e)}yn.options=yn.setOptions=function(t){return ad.setOptions(t),yn.defaults=ad.defaults,cgA(yn.defaults),yn};yn.getDefaults=aU;yn.defaults=cd;yn.use=function(...t){return ad.use(...t),yn.defaults=ad.defaults,cgA(yn.defaults),yn};yn.walkTokens=function(t,e){return ad.walkTokens(t,e)};yn.parseInline=ad.parseInline;yn.Parser=I2;yn.parser=I2.parse;yn.Renderer=CI;yn.TextRenderer=EU;yn.Lexer=l2;yn.lexer=l2.lex;yn.Tokenizer=H7;yn.Hooks=Y7;yn.parse=yn;var iSe=yn.options,nSe=yn.setOptions,oSe=yn.use,rSe=yn.walkTokens,sSe=yn.parseInline;var aSe=I2.parse,cSe=l2.lex;var djA=["*"],BjA="Copy",EjA="Copied",QjA=(()=>{class t{constructor(){this._buttonClick$=new qA,this.copied$=this._buttonClick$.pipe($n(()=>Hn(Ce(!0),fI(3e3).pipe(wd(!1)))),il(),h2(1)),this.copiedText$=this.copied$.pipe(On(!1),je(A=>A?EjA:BjA))}onCopyToClipboardClick(){this._buttonClick$.next()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=jA({type:t,selectors:[["markdown-clipboard"]],decls:4,vars:7,consts:[[1,"markdown-clipboard-button",3,"click"]],template:function(i,n){i&1&&(S(0,"button",0),eo(1,"async"),mA("click",function(){return n.onCopyToClipboardClick()}),AA(2),eo(3,"async"),N()),i&2&&(he("copied",Yo(1,3,n.copied$)),_(2),tt(Yo(3,5,n.copiedText$)))},dependencies:[Qg],encapsulation:2,changeDetection:0})}}return t})(),ujA=new eA("CLIPBOARD_OPTIONS");var QU=function(t){return t.CommandLine="command-line",t.LineHighlight="line-highlight",t.LineNumbers="line-numbers",t}(QU||{}),fgA=new eA("MARKED_EXTENSIONS"),hjA=new eA("MARKED_OPTIONS"),fjA=new eA("MERMAID_OPTIONS"),mjA="[ngx-markdown] When using the `emoji` attribute you *have to* include Emoji-Toolkit files to `angular.json` or use imports. See README for more information",pjA="[ngx-markdown] When using the `katex` attribute you *have to* include KaTeX files to `angular.json` or use imports. See README for more information",DjA="[ngx-markdown] When using the `mermaid` attribute you *have to* include Mermaid files to `angular.json` or use imports. See README for more information",wjA="[ngx-markdown] When using the `clipboard` attribute you *have to* include Clipboard files to `angular.json` or use imports. See README for more information",yjA="[ngx-markdown] When using the `clipboard` attribute you *have to* provide the `viewContainerRef` parameter to `MarkdownService.render()` function",vjA="[ngx-markdown] When using the `src` attribute you *have to* pass the `HttpClient` as a parameter of the `forRoot` method. See README for more information",mgA=new eA("SECURITY_CONTEXT");var pgA=(()=>{class t{get options(){return this._options}set options(A){this._options=sA(sA({},this.DEFAULT_MARKED_OPTIONS),A)}get renderer(){return this.options.renderer}set renderer(A){this.options.renderer=A}constructor(A,i,n,o,r,s,a,c){this.clipboardOptions=A,this.extensions=i,this.mermaidOptions=o,this.platform=r,this.securityContext=s,this.http=a,this.sanitizer=c,this.DEFAULT_MARKED_OPTIONS={renderer:new CI},this.DEFAULT_KATEX_OPTIONS={delimiters:[{left:"$$",right:"$$",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}]},this.DEFAULT_MERMAID_OPTIONS={startOnLoad:!1},this.DEFAULT_CLIPBOARD_OPTIONS={buttonComponent:void 0},this.DEFAULT_PARSE_OPTIONS={decodeHtml:!1,inline:!1,emoji:!1,mermaid:!1,markedOptions:void 0,disableSanitizer:!1},this.DEFAULT_RENDER_OPTIONS={clipboard:!1,clipboardOptions:void 0,katex:!1,katexOptions:void 0,mermaid:!1,mermaidOptions:void 0},this._reload$=new qA,this.reload$=this._reload$.asObservable(),this.options=n}parse(A,i=this.DEFAULT_PARSE_OPTIONS){let{decodeHtml:n,inline:o,emoji:r,mermaid:s,disableSanitizer:a}=i,c=sA(sA({},this.options),i.markedOptions),g=c.renderer||this.renderer||new CI;this.extensions&&(this.renderer=this.extendsRendererForExtensions(g)),s&&(this.renderer=this.extendsRendererForMermaid(g));let I=this.trimIndentation(A),C=n?this.decodeHtml(I):I,d=r?this.parseEmoji(C):C,B=this.parseMarked(d,c,o);return(a?B:this.sanitizer.sanitize(this.securityContext,B))||""}render(A,i=this.DEFAULT_RENDER_OPTIONS,n){let{clipboard:o,clipboardOptions:r,katex:s,katexOptions:a,mermaid:c,mermaidOptions:g}=i;s&&this.renderKatex(A,sA(sA({},this.DEFAULT_KATEX_OPTIONS),a)),c&&this.renderMermaid(A,sA(sA(sA({},this.DEFAULT_MERMAID_OPTIONS),this.mermaidOptions),g)),o&&this.renderClipboard(A,n,sA(sA(sA({},this.DEFAULT_CLIPBOARD_OPTIONS),this.clipboardOptions),r)),this.highlight(A)}reload(){this._reload$.next()}getSource(A){if(!this.http)throw new Error(vjA);return this.http.get(A,{responseType:"text"}).pipe(je(i=>this.handleExtension(A,i)))}highlight(A){if(!ul(this.platform)||typeof Prism>"u"||typeof Prism.highlightAllUnder>"u")return;A||(A=document);let i=A.querySelectorAll('pre code:not([class*="language-"])');Array.prototype.forEach.call(i,n=>n.classList.add("language-none")),Prism.highlightAllUnder(A)}decodeHtml(A){if(!ul(this.platform))return A;let i=document.createElement("textarea");return i.innerHTML=A,i.value}extendsRendererForExtensions(A){let i=A;return i.\u0275NgxMarkdownRendererExtendedForExtensions===!0||(this.extensions?.length>0&&yn.use(...this.extensions),i.\u0275NgxMarkdownRendererExtendedForExtensions=!0),A}extendsRendererForMermaid(A){let i=A;if(i.\u0275NgxMarkdownRendererExtendedForMermaid===!0)return A;let n=A.code;return A.code=o=>o.lang==="mermaid"?`
            ${o.text}
            `:n(o),i.\u0275NgxMarkdownRendererExtendedForMermaid=!0,A}handleExtension(A,i){let n=A.lastIndexOf("://"),o=n>-1?A.substring(n+4):A,r=o.lastIndexOf("/"),s=r>-1?o.substring(r+1).split("?")[0]:"",a=s.lastIndexOf("."),c=a>-1?s.substring(a+1):"";return c&&c!=="md"?"```"+c+` -`+i+"\n```":i}parseMarked(A,i,n=!1){if(i.renderer){let o=sA({},i.renderer);delete o.\u0275NgxMarkdownRendererExtendedForExtensions,delete o.\u0275NgxMarkdownRendererExtendedForMermaid,delete i.renderer,yn.use({renderer:o})}return n?yn.parseInline(A,i):yn.parse(A,i)}parseEmoji(A){if(!ul(this.platform))return A;if(typeof joypixels>"u"||typeof joypixels.shortnameToUnicode>"u")throw new Error(mjA);return joypixels.shortnameToUnicode(A)}renderKatex(A,i){if(ul(this.platform)){if(typeof katex>"u"||typeof renderMathInElement>"u")throw new Error(pjA);renderMathInElement(A,i)}}renderClipboard(A,i,n){if(!ul(this.platform))return;if(typeof ClipboardJS>"u")throw new Error(wjA);if(!i)throw new Error(yjA);let{buttonComponent:o,buttonTemplate:r}=n,s=A.querySelectorAll("pre");for(let a=0;aI.classList.add("hover"),g.onmouseleave=()=>I.classList.remove("hover");let C;if(o){let B=i.createComponent(o);C=B.hostView,B.changeDetectorRef.markForCheck()}else if(r)C=i.createEmbeddedView(r);else{let B=i.createComponent(QjA);C=B.hostView,B.changeDetectorRef.markForCheck()}let d;C.rootNodes.forEach(B=>{I.appendChild(B),d=new ClipboardJS(B,{text:()=>c.innerText})}),C.onDestroy(()=>d.destroy())}}renderMermaid(A,i=this.DEFAULT_MERMAID_OPTIONS){if(!ul(this.platform))return;if(typeof mermaid>"u"||typeof mermaid.initialize>"u")throw new Error(DjA);let n=A.querySelectorAll(".mermaid");n.length!==0&&(mermaid.initialize(i),mermaid.run({nodes:n}))}trimIndentation(A){if(!A)return"";let i;return A.split(` +`+this.renderer.text(s);A?i+=this.renderer.paragraph({type:"paragraph",raw:a,text:a,tokens:[{type:"text",raw:a,text:a,escaped:!0}]}):i+=a;continue}default:{let s='Token with "'+r.type+'" type was not found.';if(this.options.silent)return console.error(s),"";throw new Error(s)}}}return i}parseInline(e,A=this.renderer){let i="";for(let n=0;n{let r=n[o].flat(1/0);A=A.concat(this.walkTokens(r,e))}):n.tokens&&(A=A.concat(this.walkTokens(n.tokens,e)))}}return A}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(A=>{let i=sA({},A);if(i.async=this.defaults.async||i.async||!1,A.extensions&&(A.extensions.forEach(n=>{if(!n.name)throw new Error("extension name required");if("renderer"in n){let o=e.renderers[n.name];o?e.renderers[n.name]=function(...r){let s=n.renderer.apply(this,r);return s===!1&&(s=o.apply(this,r)),s}:e.renderers[n.name]=n.renderer}if("tokenizer"in n){if(!n.level||n.level!=="block"&&n.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let o=e[n.level];o?o.unshift(n.tokenizer):e[n.level]=[n.tokenizer],n.start&&(n.level==="block"?e.startBlock?e.startBlock.push(n.start):e.startBlock=[n.start]:n.level==="inline"&&(e.startInline?e.startInline.push(n.start):e.startInline=[n.start]))}"childTokens"in n&&n.childTokens&&(e.childTokens[n.name]=n.childTokens)}),i.extensions=e),A.renderer){let n=this.defaults.renderer||new CI(this.defaults);for(let o in A.renderer){if(!(o in n))throw new Error(`renderer '${o}' does not exist`);if(["options","parser"].includes(o))continue;let r=o,s=A.renderer[r],a=n[r];n[r]=(...c)=>{let g=s.apply(n,c);return g===!1&&(g=a.apply(n,c)),g||""}}i.renderer=n}if(A.tokenizer){let n=this.defaults.tokenizer||new H7(this.defaults);for(let o in A.tokenizer){if(!(o in n))throw new Error(`tokenizer '${o}' does not exist`);if(["options","rules","lexer"].includes(o))continue;let r=o,s=A.tokenizer[r],a=n[r];n[r]=(...c)=>{let g=s.apply(n,c);return g===!1&&(g=a.apply(n,c)),g}}i.tokenizer=n}if(A.hooks){let n=this.defaults.hooks||new Y7;for(let o in A.hooks){if(!(o in n))throw new Error(`hook '${o}' does not exist`);if(["options","block"].includes(o))continue;let r=o,s=A.hooks[r],a=n[r];Y7.passThroughHooks.has(o)?n[r]=c=>{if(this.defaults.async)return Promise.resolve(s.call(n,c)).then(I=>a.call(n,I));let g=s.call(n,c);return a.call(n,g)}:n[r]=(...c)=>{let g=s.apply(n,c);return g===!1&&(g=a.apply(n,c)),g}}i.hooks=n}if(A.walkTokens){let n=this.defaults.walkTokens,o=A.walkTokens;i.walkTokens=function(r){let s=[];return s.push(o.call(this,r)),n&&(s=s.concat(n.call(this,r))),s}}this.defaults=sA(sA({},this.defaults),i)}),this}setOptions(t){return this.defaults=sA(sA({},this.defaults),t),this}lexer(t,e){return l2.lex(t,e??this.defaults)}parser(t,e){return I2.parse(t,e??this.defaults)}parseMarkdown(t){return(A,i)=>{let n=sA({},i),o=sA(sA({},this.defaults),n),r=this.onError(!!o.silent,!!o.async);if(this.defaults.async===!0&&n.async===!1)return r(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof A>"u"||A===null)return r(new Error("marked(): input parameter is undefined or null"));if(typeof A!="string")return r(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(A)+", string expected"));o.hooks&&(o.hooks.options=o,o.hooks.block=t);let s=o.hooks?o.hooks.provideLexer():t?l2.lex:l2.lexInline,a=o.hooks?o.hooks.provideParser():t?I2.parse:I2.parseInline;if(o.async)return Promise.resolve(o.hooks?o.hooks.preprocess(A):A).then(c=>s(c,o)).then(c=>o.hooks?o.hooks.processAllTokens(c):c).then(c=>o.walkTokens?Promise.all(this.walkTokens(c,o.walkTokens)).then(()=>c):c).then(c=>a(c,o)).then(c=>o.hooks?o.hooks.postprocess(c):c).catch(r);try{o.hooks&&(A=o.hooks.preprocess(A));let c=s(A,o);o.hooks&&(c=o.hooks.processAllTokens(c)),o.walkTokens&&this.walkTokens(c,o.walkTokens);let g=a(c,o);return o.hooks&&(g=o.hooks.postprocess(g)),g}catch(c){return r(c)}}}onError(t,e){return A=>{if(A.message+=` +Please report this to https://github.com/markedjs/marked.`,t){let i="

            An error occurred:

            "+c0(A.message+"",!0)+"
            ";return e?Promise.resolve(i):i}if(e)return Promise.reject(A);throw A}}},ad=new BjA;function yn(t,e){return ad.parse(t,e)}yn.options=yn.setOptions=function(t){return ad.setOptions(t),yn.defaults=ad.defaults,cgA(yn.defaults),yn};yn.getDefaults=aU;yn.defaults=cd;yn.use=function(...t){return ad.use(...t),yn.defaults=ad.defaults,cgA(yn.defaults),yn};yn.walkTokens=function(t,e){return ad.walkTokens(t,e)};yn.parseInline=ad.parseInline;yn.Parser=I2;yn.parser=I2.parse;yn.Renderer=CI;yn.TextRenderer=EU;yn.Lexer=l2;yn.lexer=l2.lex;yn.Tokenizer=H7;yn.Hooks=Y7;yn.parse=yn;var oSe=yn.options,rSe=yn.setOptions,sSe=yn.use,aSe=yn.walkTokens,cSe=yn.parseInline;var gSe=I2.parse,lSe=l2.lex;var EjA=["*"],QjA="Copy",ujA="Copied",hjA=(()=>{class t{constructor(){this._buttonClick$=new qA,this.copied$=this._buttonClick$.pipe($n(()=>Hn(Ce(!0),fI(3e3).pipe(wd(!1)))),il(),h2(1)),this.copiedText$=this.copied$.pipe(On(!1),je(A=>A?ujA:QjA))}onCopyToClipboardClick(){this._buttonClick$.next()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=jA({type:t,selectors:[["markdown-clipboard"]],decls:4,vars:7,consts:[[1,"markdown-clipboard-button",3,"click"]],template:function(i,n){i&1&&(S(0,"button",0),eo(1,"async"),mA("click",function(){return n.onCopyToClipboardClick()}),AA(2),eo(3,"async"),N()),i&2&&(he("copied",Yo(1,3,n.copied$)),_(2),tt(Yo(3,5,n.copiedText$)))},dependencies:[Qg],encapsulation:2,changeDetection:0})}}return t})(),fjA=new eA("CLIPBOARD_OPTIONS");var QU=function(t){return t.CommandLine="command-line",t.LineHighlight="line-highlight",t.LineNumbers="line-numbers",t}(QU||{}),fgA=new eA("MARKED_EXTENSIONS"),mjA=new eA("MARKED_OPTIONS"),pjA=new eA("MERMAID_OPTIONS"),DjA="[ngx-markdown] When using the `emoji` attribute you *have to* include Emoji-Toolkit files to `angular.json` or use imports. See README for more information",wjA="[ngx-markdown] When using the `katex` attribute you *have to* include KaTeX files to `angular.json` or use imports. See README for more information",yjA="[ngx-markdown] When using the `mermaid` attribute you *have to* include Mermaid files to `angular.json` or use imports. See README for more information",vjA="[ngx-markdown] When using the `clipboard` attribute you *have to* include Clipboard files to `angular.json` or use imports. See README for more information",MjA="[ngx-markdown] When using the `clipboard` attribute you *have to* provide the `viewContainerRef` parameter to `MarkdownService.render()` function",bjA="[ngx-markdown] When using the `src` attribute you *have to* pass the `HttpClient` as a parameter of the `forRoot` method. See README for more information",mgA=new eA("SECURITY_CONTEXT");var pgA=(()=>{class t{get options(){return this._options}set options(A){this._options=sA(sA({},this.DEFAULT_MARKED_OPTIONS),A)}get renderer(){return this.options.renderer}set renderer(A){this.options.renderer=A}constructor(A,i,n,o,r,s,a,c){this.clipboardOptions=A,this.extensions=i,this.mermaidOptions=o,this.platform=r,this.securityContext=s,this.http=a,this.sanitizer=c,this.DEFAULT_MARKED_OPTIONS={renderer:new CI},this.DEFAULT_KATEX_OPTIONS={delimiters:[{left:"$$",right:"$$",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}]},this.DEFAULT_MERMAID_OPTIONS={startOnLoad:!1},this.DEFAULT_CLIPBOARD_OPTIONS={buttonComponent:void 0},this.DEFAULT_PARSE_OPTIONS={decodeHtml:!1,inline:!1,emoji:!1,mermaid:!1,markedOptions:void 0,disableSanitizer:!1},this.DEFAULT_RENDER_OPTIONS={clipboard:!1,clipboardOptions:void 0,katex:!1,katexOptions:void 0,mermaid:!1,mermaidOptions:void 0},this._reload$=new qA,this.reload$=this._reload$.asObservable(),this.options=n}parse(A,i=this.DEFAULT_PARSE_OPTIONS){let{decodeHtml:n,inline:o,emoji:r,mermaid:s,disableSanitizer:a}=i,c=sA(sA({},this.options),i.markedOptions),g=c.renderer||this.renderer||new CI;this.extensions&&(this.renderer=this.extendsRendererForExtensions(g)),s&&(this.renderer=this.extendsRendererForMermaid(g));let I=this.trimIndentation(A),C=n?this.decodeHtml(I):I,d=r?this.parseEmoji(C):C,B=this.parseMarked(d,c,o);return(a?B:this.sanitizer.sanitize(this.securityContext,B))||""}render(A,i=this.DEFAULT_RENDER_OPTIONS,n){let{clipboard:o,clipboardOptions:r,katex:s,katexOptions:a,mermaid:c,mermaidOptions:g}=i;s&&this.renderKatex(A,sA(sA({},this.DEFAULT_KATEX_OPTIONS),a)),c&&this.renderMermaid(A,sA(sA(sA({},this.DEFAULT_MERMAID_OPTIONS),this.mermaidOptions),g)),o&&this.renderClipboard(A,n,sA(sA(sA({},this.DEFAULT_CLIPBOARD_OPTIONS),this.clipboardOptions),r)),this.highlight(A)}reload(){this._reload$.next()}getSource(A){if(!this.http)throw new Error(bjA);return this.http.get(A,{responseType:"text"}).pipe(je(i=>this.handleExtension(A,i)))}highlight(A){if(!ul(this.platform)||typeof Prism>"u"||typeof Prism.highlightAllUnder>"u")return;A||(A=document);let i=A.querySelectorAll('pre code:not([class*="language-"])');Array.prototype.forEach.call(i,n=>n.classList.add("language-none")),Prism.highlightAllUnder(A)}decodeHtml(A){if(!ul(this.platform))return A;let i=document.createElement("textarea");return i.innerHTML=A,i.value}extendsRendererForExtensions(A){let i=A;return i.\u0275NgxMarkdownRendererExtendedForExtensions===!0||(this.extensions?.length>0&&yn.use(...this.extensions),i.\u0275NgxMarkdownRendererExtendedForExtensions=!0),A}extendsRendererForMermaid(A){let i=A;if(i.\u0275NgxMarkdownRendererExtendedForMermaid===!0)return A;let n=A.code;return A.code=o=>o.lang==="mermaid"?`
            ${o.text}
            `:n(o),i.\u0275NgxMarkdownRendererExtendedForMermaid=!0,A}handleExtension(A,i){let n=A.lastIndexOf("://"),o=n>-1?A.substring(n+4):A,r=o.lastIndexOf("/"),s=r>-1?o.substring(r+1).split("?")[0]:"",a=s.lastIndexOf("."),c=a>-1?s.substring(a+1):"";return c&&c!=="md"?"```"+c+` +`+i+"\n```":i}parseMarked(A,i,n=!1){if(i.renderer){let o=sA({},i.renderer);delete o.\u0275NgxMarkdownRendererExtendedForExtensions,delete o.\u0275NgxMarkdownRendererExtendedForMermaid,delete i.renderer,yn.use({renderer:o})}return n?yn.parseInline(A,i):yn.parse(A,i)}parseEmoji(A){if(!ul(this.platform))return A;if(typeof joypixels>"u"||typeof joypixels.shortnameToUnicode>"u")throw new Error(DjA);return joypixels.shortnameToUnicode(A)}renderKatex(A,i){if(ul(this.platform)){if(typeof katex>"u"||typeof renderMathInElement>"u")throw new Error(wjA);renderMathInElement(A,i)}}renderClipboard(A,i,n){if(!ul(this.platform))return;if(typeof ClipboardJS>"u")throw new Error(vjA);if(!i)throw new Error(MjA);let{buttonComponent:o,buttonTemplate:r}=n,s=A.querySelectorAll("pre");for(let a=0;aI.classList.add("hover"),g.onmouseleave=()=>I.classList.remove("hover");let C;if(o){let B=i.createComponent(o);C=B.hostView,B.changeDetectorRef.markForCheck()}else if(r)C=i.createEmbeddedView(r);else{let B=i.createComponent(hjA);C=B.hostView,B.changeDetectorRef.markForCheck()}let d;C.rootNodes.forEach(B=>{I.appendChild(B),d=new ClipboardJS(B,{text:()=>c.innerText})}),C.onDestroy(()=>d.destroy())}}renderMermaid(A,i=this.DEFAULT_MERMAID_OPTIONS){if(!ul(this.platform))return;if(typeof mermaid>"u"||typeof mermaid.initialize>"u")throw new Error(yjA);let n=A.querySelectorAll(".mermaid");n.length!==0&&(mermaid.initialize(i),mermaid.run({nodes:n}))}trimIndentation(A){if(!A)return"";let i;return A.split(` `).map(n=>{let o=i;return n.length>0&&(o=isNaN(o)?n.search(/\S|$/):Math.min(n.search(/\S|$/),o)),isNaN(i)&&(i=o),o?n.substring(o):n}).join(` -`)}static{this.\u0275fac=function(i){return new(i||t)(be(ujA,8),be(fgA,8),be(hjA,8),be(fjA,8),be(El),be(mgA),be(ks,8),be(oc))}}static{this.\u0275prov=bA({token:t,factory:t.\u0275fac})}}return t})(),DgA=(()=>{class t{get disableSanitizer(){return this._disableSanitizer}set disableSanitizer(A){this._disableSanitizer=this.coerceBooleanProperty(A)}get inline(){return this._inline}set inline(A){this._inline=this.coerceBooleanProperty(A)}get clipboard(){return this._clipboard}set clipboard(A){this._clipboard=this.coerceBooleanProperty(A)}get emoji(){return this._emoji}set emoji(A){this._emoji=this.coerceBooleanProperty(A)}get katex(){return this._katex}set katex(A){this._katex=this.coerceBooleanProperty(A)}get mermaid(){return this._mermaid}set mermaid(A){this._mermaid=this.coerceBooleanProperty(A)}get lineHighlight(){return this._lineHighlight}set lineHighlight(A){this._lineHighlight=this.coerceBooleanProperty(A)}get lineNumbers(){return this._lineNumbers}set lineNumbers(A){this._lineNumbers=this.coerceBooleanProperty(A)}get commandLine(){return this._commandLine}set commandLine(A){this._commandLine=this.coerceBooleanProperty(A)}constructor(A,i,n){this.element=A,this.markdownService=i,this.viewContainerRef=n,this.error=new YA,this.load=new YA,this.ready=new YA,this._clipboard=!1,this._commandLine=!1,this._disableSanitizer=!1,this._emoji=!1,this._inline=!1,this._katex=!1,this._lineHighlight=!1,this._lineNumbers=!1,this._mermaid=!1,this.destroyed$=new qA}ngOnChanges(){this.loadContent()}loadContent(){if(this.data!=null){this.handleData();return}if(this.src!=null){this.handleSrc();return}}ngAfterViewInit(){!this.data&&!this.src&&this.handleTransclusion(),this.markdownService.reload$.pipe(kt(this.destroyed$)).subscribe(()=>this.loadContent())}ngOnDestroy(){this.destroyed$.next(),this.destroyed$.complete()}render(A,i=!1){return Ni(this,null,function*(){let n={decodeHtml:i,inline:this.inline,emoji:this.emoji,mermaid:this.mermaid,disableSanitizer:this.disableSanitizer},o={clipboard:this.clipboard,clipboardOptions:this.getClipboardOptions(),katex:this.katex,katexOptions:this.katexOptions,mermaid:this.mermaid,mermaidOptions:this.mermaidOptions},r=yield this.markdownService.parse(A,n);this.element.nativeElement.innerHTML=r,this.handlePlugins(),this.markdownService.render(this.element.nativeElement,o,this.viewContainerRef),this.ready.emit()})}coerceBooleanProperty(A){return A!=null&&`${String(A)}`!="false"}getClipboardOptions(){if(this.clipboardButtonComponent||this.clipboardButtonTemplate)return{buttonComponent:this.clipboardButtonComponent,buttonTemplate:this.clipboardButtonTemplate}}handleData(){this.render(this.data)}handleSrc(){this.markdownService.getSource(this.src).subscribe({next:A=>{this.render(A).then(()=>{this.load.emit(A)})},error:A=>this.error.emit(A)})}handleTransclusion(){this.render(this.element.nativeElement.innerHTML,!0)}handlePlugins(){this.commandLine&&(this.setPluginClass(this.element.nativeElement,QU.CommandLine),this.setPluginOptions(this.element.nativeElement,{dataFilterOutput:this.filterOutput,dataHost:this.host,dataPrompt:this.prompt,dataOutput:this.output,dataUser:this.user})),this.lineHighlight&&this.setPluginOptions(this.element.nativeElement,{dataLine:this.line,dataLineOffset:this.lineOffset}),this.lineNumbers&&(this.setPluginClass(this.element.nativeElement,QU.LineNumbers),this.setPluginOptions(this.element.nativeElement,{dataStart:this.start}))}setPluginClass(A,i){let n=A.querySelectorAll("pre");for(let o=0;o{let s=i[r];if(s){let a=this.toLispCase(r);n.item(o).setAttribute(a,s.toString())}})}toLispCase(A){let i=A.match(/([A-Z])/g);if(!i)return A;let n=A.toString();for(let o=0,r=i.length;o{let i=MjA(A)?Fe(sA({},A),{multi:!0}):{provide:fgA,useValue:A,multi:!0};return[...e,i]},[])}var wgA=(()=>{class t{static forRoot(A){return{ngModule:t,providers:[uU(A)]}}static forChild(){return{ngModule:t}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Ze({type:t})}static{this.\u0275inj=Ve({imports:[ug]})}}return t})();var SjA=(t,e)=>({"font-style":t,color:e}),P7=class t{text=bs("");thought=bs(!1);static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-markdown"]],inputs:{text:[1,"text"],thought:[1,"thought"]},features:[ut([uU()])],decls:1,vars:5,consts:[[3,"data","ngStyle"]],template:function(A,i){A&1&&TA(0,"markdown",0),A&2&&yA("data",i.text())("ngStyle",Bg(2,SjA,i.thought()?"italic":"normal",i.thought()?"#9aa0a6":"white"))},dependencies:[ug,Yb,wgA,DgA],encapsulation:2})};var j7=class t{constructor(e,A){this.http=e;this.zone=A}apiServerDomain=ds.getApiServerBaseUrl();_currentApp=new Fi("");currentApp=this._currentApp.asObservable();isLoading=new Fi(!1);getApp(){return this.currentApp}setApp(e){this._currentApp.next(e)}getLoadingState(){return this.isLoading}runSse(e){let A=this.apiServerDomain+"/run_sse";return this.isLoading.next(!0),new gt(i=>{let n=this;fetch(A,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify(e)}).then(o=>{let r=o.body?.getReader(),s=new TextDecoder("utf-8"),a="",c=()=>{r?.read().then(({done:g,value:I})=>{if(this.isLoading.next(!0),g)return this.isLoading.next(!1),i.complete();let C=s.decode(I,{stream:!0});a+=C;try{a.split(/\r?\n/).filter(B=>B.startsWith("data:")).forEach(B=>{let E=B.replace(/^data:\s*/,""),u=JSON.parse(E);n.zone.run(()=>i.next(u))}),a=""}catch(d){d instanceof SyntaxError&&c()}c()}).catch(g=>{n.zone.run(()=>i.error(g))})};c()}).catch(o=>{n.zone.run(()=>i.error(o))})})}listApps(){if(this.apiServerDomain!=null){let e=this.apiServerDomain+"/list-apps?relative_path=./";return this.http.get(e)}return new gt}static \u0275fac=function(A){return new(A||t)(be(ks),be(ye))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var q7=class t{constructor(e){this.http=e}apiServerDomain=ds.getApiServerBaseUrl();getLatestArtifact(e,A,i,n){let o=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}/artifacts/${n}`;return this.http.get(o)}getArtifactVersion(e,A,i,n,o){let r=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}/artifacts/${n}/versions/${o}`;return this.http.get(r)}static \u0275fac=function(A){return new(A||t)(be(ks))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var V7=class t{audioContext=new AudioContext({sampleRate:22e3});lastAudioTime=0;playAudio(e){let A=this.combineAudioBuffer(e);A&&this.playPCM(A)}combineAudioBuffer(e){if(e.length===0)return;let A=e.reduce((o,r)=>o+r.length,0),i=new Uint8Array(A),n=0;for(let o of e)i.set(o,n),n+=o.length;return i}playPCM(e){let A=new Float32Array(e.length/2);for(let s=0;s=32768&&(a-=65536),A[s]=a/32768}let i=this.audioContext.createBuffer(1,A.length,22e3);i.copyToChannel(A,0);let n=this.audioContext.createBufferSource();n.buffer=i,n.connect(this.audioContext.destination);let o=this.audioContext.currentTime,r=Math.max(this.lastAudioTime,o);n.start(r),this.lastAudioTime=r+i.duration}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Z7=new eA("AudioRecordingService"),W7=new eA("AudioWorkletModulePath");var X7=class t{audioWorkletModulePath=f(W7);stream;audioContext;source;audioBuffer=[];startRecording(){return Ni(this,null,function*(){try{this.stream=yield navigator.mediaDevices.getUserMedia({audio:!0}),this.audioContext=new AudioContext,yield this.audioContext.audioWorklet.addModule(this.audioWorkletModulePath),this.source=this.audioContext.createMediaStreamSource(this.stream);let e=new AudioWorkletNode(this.audioContext,"audio-processor");e.port.onmessage=A=>{let i=A.data,n=this.float32ToPCM(i);this.audioBuffer.push(n)},this.source.connect(e),e.connect(this.audioContext.destination)}catch(e){console.error("Error accessing microphone:",e)}})}stopRecording(){this.source&&this.source.disconnect(),this.audioContext&&this.audioContext.close(),this.stream&&this.stream.getTracks().forEach(e=>e.stop())}getCombinedAudioBuffer(){if(this.audioBuffer.length===0)return;let e=this.audioBuffer.reduce((n,o)=>n+o.length,0),A=new Uint8Array(e),i=0;for(let n of this.audioBuffer)A.set(n,i),i+=n.length;return A}cleanAudioBuffer(){this.audioBuffer=[]}float32ToPCM(e){let A=new ArrayBuffer(e.length*2),i=new DataView(A);for(let n=0;ne[Tq]==="true"))}isEditFunctionArgsEnabled(){return this.route.queryParams.pipe(je(e=>e[Hq]==="true"))}isSessionUrlEnabled(){return Ce(!0)}isA2ACardEnabled(){return this.route.queryParams.pipe(je(e=>e[Oq]==="true"))}isApplicationSelectorEnabled(){return Ce(!0)}isAlwaysOnSidePanelEnabled(){return Ce(!1)}isTraceEnabled(){return Ce(!0)}isArtifactsTabEnabled(){return Ce(!0)}isEvalEnabled(){return Ce(!0)}isTokenStreamingEnabled(){return Ce(!0)}isMessageFileUploadEnabled(){return Ce(!0)}isManualStateUpdateEnabled(){return Ce(!0)}isBidiStreamingEnabled(){return Ce(!0)}isExportSessionEnabled(){return Ce(!0)}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var RjA=(()=>{var t=import.meta.url;return function(e={}){var A,i=e,n,o,r=new Promise((Q,m)=>{n=Q,o=m});i.agerrMessages=[],i.stderrMessages=[],B=Q=>i.stderrMessages.push(Q);var s=Object.assign({},i),a="./this.program",c=(Q,m)=>{throw m},g="",I,C;typeof document<"u"&&document.currentScript&&(g=document.currentScript.src),t&&(g=t),g.startsWith("blob:")?g="":g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1),I=Q=>fetch(Q,{credentials:"same-origin"}).then(m=>m.ok?m.arrayBuffer():Promise.reject(new Error(m.status+" : "+m.url)));var d=console.log.bind(console),B=console.error.bind(console);Object.assign(i,s),s=null;var E;function u(Q){for(var m=atob(Q),v=new Uint8Array(m.length),p=0;pQ.startsWith(Xe);function KA(){var Q="data:application/octet-stream;base64,AGFzbQEAAAABmQd0YAJ/fwF/YAF/AGABfwF/YAJ/fwBgA39/fwF/YAN/f38AYAR/f39/AX9gBH9/f38AYAV/f39/fwF/YAZ/f39/f38Bf2AFf39/f38AYAZ/f39/f38AYAAAYAABf2AIf39/f39/f38Bf2AHf39/f39/fwF/YAF8AXxgAn9/AXxgAX8BfGAHf39/f39/fwBgA39/fwF8YAd/f39/fHx/AGACf3wAYAR8fHx/AXxgAnx8AXxgA398fABgCX9/f39/f39/fwBgBX9+fn5+AGAEf39/fABgCn9/f39/f39/f38Bf2ADf35/AX5gBH9/fHwBf2ADfHx8AXxgA39/fgBgAAF8YAR/f39/AXxgAn9/AX5gA39/fABgBX9/f39+AX9gA39/fgF/YAR/fn5/AGAEf398fwBgAn9+AGACfH8BfGABfwF+YAR/f398AX9gAn9+AX9gAn98AX9gA3x8fwF8YAN/fH8AYAh/f39/f39/fwBgBX9/f398AX9gC39/f39/f39/f39/AX9gBX9/fn9/AGAEf398fwF/YAABfmAFf39/f3wAYAN/f3wBf2ACfX0BfWAGf3x8fHx8AXxgA39/fwF+YAx/f39/f39/f39/f38Bf2AFf398f38Bf2AHf39/fHx/fwBgBn9/f3x/fwBgBn9/f39+fwF/YA9/f39/f39/f39/f39/f38AYAp/f39/f39/f39/AGAEf39/fwF+YAZ/fH9/f38Bf2AHf39/f39+fgF/YAZ/f39/fn4Bf2AHf39/f35/fwF/YAZ/f39/f34Bf2ACfn8AYAR/fn9/AX9gBH9/fHwBfGAFf398f38AYAl/f39/f39/f38Bf2AGf39/fH9/AX9gBH9/fHwAYAR+fn5+AX9gAn99AX9gAn5/AX9gCH9/f398fHx/AGADf31/AGABfAF/YAJ+fgF9YAJ/fQBgBH9/f34BfmADf35/AX9gBn99f39/fwBgBH9/fX8AYAN/fHwBf2AFf39/fH8AYAZ/f398fH8AYAZ8fHx/f38AYAJ+fgF8YAJ8fwF/YAR/fHx8AGAGf39/f398AGAEf3x/fwBgBnx8f3x8fwBgB398fHx8fHwAYAF/AX1gA39/fwF9YAN+fn4Bf2AEf35+fgBgBH98f38Bf2AKf3x/f39/f39/fwBgBX9/fHx8AGAFf39/f38BfGAD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uPwIKAIAQYT0AyACEB4aECgACyACIAAgAWw2AhBBuPwIKAIAQdPzAyACQRBqEB4aECgACxcAQQFBfyAAIAEgARA8IgAQqwIgAEYbCyUBAX8gACgCLCIAQQBBgAEgACgCABEEACIABH8gACgCEAVBAAsLNAEBfwJAIAAgARDnASIBRQ0AIAAoAiwiACABQQggACgCABEEACIARQ0AIAAoAhAhAgsgAgtuAQF/IwBBIGsiAyQAIANCADcDGCADQgA3AxAgAyACNgIMAkAgA0EQaiABIAIQwwsiAUEASARAIANB4I8LKAIAEHg2AgBBsokEIAMQNgwBCyAAIANBEGoiABCqBSABEKsCGiAAEF8LIANBIGokAAskAQF/IwBBEGsiAyQAIAMgAjYCDCAAIAEgAhCDDCADQRBqJAALMwEBfyACBEAgACEDA0AgAyABLQAAOgAAIANBAWohAyABQQFqIQEgAkEBayICDQALCyAAC6QBAQN/IwBBEGsiAiQAAkAgABAvIgMgACgCAEEDcSAAKQMIEJ0KIgEEfyABKAIYBUEACyIBDQAgAygCTCIBKAIAKAIMIgMEQCABKAIIIAAoAgBBA3EgACkDCCADEScAIgENAQtBACEBIAAoAgBBA3FBAkYNACACIAApAwg3AwggAkElNgIAQaDkCiEBQaDkCkEgQagYIAIQoQEaCyACQRBqJAAgAQsPACAAIAEgAiADQQAQ0QwLQwAgACAAIAGlIAG9Qv///////////wCDQoCAgICAgID4/wBWGyABIAC9Qv///////////wCDQoCAgICAgID4/wBYGwsVACAAEKgBBEAgACgCBA8LIAAQqQMLFAAgABAnBEAgAC0ADw8LIAAoAgQLVQACQCABBEAgAiABKAIITw0BIAAgASgCACABKAIEIAJqIAEoAgxwQcgAbGpByAAQHxoPC0GJ2gFB4oMBQT1BhyUQAAALQcK8A0HigwFBPUGHJRAAAAsmACAAIAEQ1QciAUUEQEEADwsgABDwASgCDCABKAIQQQJ0aigCAAsuACAALQAPIgBBAWpB/wFxQRFPBEBB38UDQcmEAUHJAEH+ngEQAAALIABB/wFHCwcAQQEQBwALFQAgACABQZEqQT1B4oMBQcgAEMgKC0MAIAAgACABpCABvUL///////////8Ag0KAgICAgICA+P8AVhsgASAAvUL///////////8Ag0KAgICAgICA+P8AWBsLCwAgACABQQAQhQcLPAEBf0EHIQICQAJAAkAgAEEoag4IAgICAgAAAAABC0EIDwsgAEF/RyABQX1NckUEQEEADwtBHSECCyACC0IBAX8gACABEOcBIgFFBEBBAA8LIAAoAjQgASgCIBDoASAAKAI0IgJBAEGAASACKAIAEQQAIAEgACgCNBDeAjYCIAtvAQJ/IAAtAAAiAgR/AkADQCABLQAAIgNFDQECQCACIANGDQAgAhCAAiABLQAAEIACRg0AIAAtAAAhAgwCCyABQQFqIQEgAC0AASECIABBAWohACACDQALQQAhAgsgAgVBAAsQgAIgAS0AABCAAmsLLAACQAJAAkAgACgCAEEDcUEBaw4DAQAAAgsgACgCKCEACyAAKAIYIQALIAALVQECfyAAIAFBMEEAIAEoAgBBA3FBA0cbaigCKBDnASIDBEAgACgCNCADKAIgEOgBIAAoAjQiAiABQQggAigCABEEACECIAMgACgCNBDeAjYCIAsgAgukAQMBfAF+AX8gAL0iAkI0iKdB/w9xIgNBsghNBHwgA0H9B00EQCAARAAAAAAAAAAAog8LAnwgAJkiAEQAAAAAAAAwQ6BEAAAAAAAAMMOgIAChIgFEAAAAAAAA4D9kBEAgACABoEQAAAAAAADwv6AMAQsgACABoCIAIAFEAAAAAAAA4L9lRQ0AGiAARAAAAAAAAPA/oAsiAJogACACQgBTGwUgAAsLKgEBfyMAQRBrIgMkACADIAI2AgwgACABIAJBgQRBABC2BxogA0EQaiQACykBAX8gAgRAIAAhAwNAIAMgAToAACADQQFqIQMgAkEBayICDQALCyAACxwBAX8gABCoAQRAIAAoAgAgABD4AhoQrwULIAALxwEBA38jAEEQayIFJAAgABAvIQYCQAJAIAAgAUEAEG0iBCACRXINACACQQEQRyIERQ0BIAQgBiABELIBNgIAAkAgACgCECICRQRAIAQgBDYCBAwBCyACIAIoAgQiBkYEQCACIAQ2AgQgBCACNgIEDAELIAQgBjYCBCACIAQ2AgQLIAAtAABBBHENACAAIARBABDzBwsgAwRAIAAgAUEBEG0aCyAFQRBqJAAgBA8LIAUgAjYCAEG4/AgoAgBB0/MDIAUQHhoQKAALCwAgACAB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uKgLQRgQ2AFFDQJBGBBIIgFFDQELIAEgAikCCDcCACABIAIpAhg3AhAgASACKQIQNwIIDAELQQAhAQsgAkEgaiQAQcSqC0EBOgAAQcCqCyABNgIAIAELIAAgAARAIAAoAhQQGCAAKAIYEBggACgCHBAYIAAQGAsLCQAgAEEAEPkGC78KAgV/D34jAEHgAGsiBSQAIARC////////P4MhDCACIASFQoCAgICAgICAgH+DIQogAkL///////8/gyINQiCIIQ4gBEIwiKdB//8BcSEHAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgB0H//wFrQYGAfksNAQsgAVAgAkL///////////8AgyILQoCAgICAgMD//wBUIAtCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhCgwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEKIAMhAQwCCyABIAtCgICAgICAwP//AIWEUARAIAIgA4RQBEBCgICAgICA4P//ACEKQgAhAQwDCyAKQoCAgICAgMD//wCEIQpCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEAgASALhEIAIQFQBEBCgICAgICA4P//ACEKDAMLIApCgICAgICAwP//AIQhCgwCCyABIAuEUARAQgAhAQwCCyACIAOEUARAQgAhAQwCCyALQv///////z9YBEAgBUHQAGogASANIAEgDSANUCIGG3kgBkEGdK18pyIGQQ9rELYBQRAgBmshBiAFKQNYIg1CIIghDiAFKQNQIQELIAJC////////P1YNACAFQUBrIAMgDCADIAwgDFAiCBt5IAhBBnStfKciCEEPaxC2ASAGIAhrQRBqIQYgBSkDSCEMIAUpA0AhAwsgA0IPhiILQoCA/v8PgyICIAFCIIgiBH4iECALQiCIIhMgAUL/////D4MiAX58Ig9CIIYiESABIAJ+fCILIBFUrSACIA1C/////w+DIg1+IhUgBCATfnwiESAMQg+GIhIgA0IxiIRC/////w+DIgMgAX58IhQgDyAQVK1CIIYgD0IgiIR8Ig8gAiAOQoCABIQiDH4iFiANIBN+fCIOIBJCIIhCgICAgAiEIgIgAX58IhAgAyAEfnwiEkIghnwiF3wh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AUpqIQIMAQsLIABBAEwgAEH/AE5yDQEgAiwAACAEKAIAQQFrSw0BCyADQQQ2AgALC4QBAQJ/IwBBEGsiAiQAIAAQqAEEQCAAKAIAIAAQ+AIaEK8FCyABECMaIAEQqAEhAyAAIAEoAgg2AgggACABKQIANwIAIAFBABDUASACQQA6AA8gASACQQ9qENMBAkAgACABRiIBIANyRQ0ACyAAEKgBIAFyRQRAIAAQqQMaCyACQRBqJAALUAEBfgJAIANBwABxBEAgASADQUBqrYYhAkIAIQEMAQsgA0UNACACIAOtIgSGIAFBwAAgA2utiIQhAiABIASGIQELIAAgATcDACAAIAI3AwgLzgkCBH8EfiMAQfAAayIGJAAgBEL///////////8AgyEJAkACQCABUCIFIAJC////////////AIMiCkKAgICAgIDA//8AfUKAgICAgIDAgIB/VCAKUBtFBEAgA0IAUiAJQoCAgICAgMD//wB9IgtCgICAgICAwICAf1YgC0KAgICAgIDAgIB/URsNAQsgBSAKQoCAgICAgMD//wBUIApCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhBCABIQMMAgsgA1AgCUKAgICAgIDA//8AVCAJQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQQMAgsgASAKQoCAgICAgMD//wCFhFAEQEKAgICAgIDg//8AIAIgASADhSACIASFQoCAgICAgICAgH+FhFAiBRshBEIAIAEgBRshAwwCCyADIAlCgICAgICAwP//AIWEUA0BIAEgCoRQBEAgAyAJhEIAUg0CIAEgA4MhAyACIASDIQQMAgsgAyAJhFBFDQAgASEDIAIhBAwBCyADIAEgASADVCAJIApWIAkgClEbIggbIQogBCACIAgbIgxC////////P4MhCSACIAQgCBsiC0IwiKdB//8BcSEHIAxCMIinQf//AXEiBUUEQCAGQeAAaiAKIAkgCiAJIAlQIgUbeSAFQQZ0rXynIgVBD2sQtgEgBikDaCEJIAYpA2AhCkEQIAVrIQULIAEgAyAIGyEDIAtC////////P4MhASAHBH4gAQUgBkHQAGogAyABIAMgASABUCIHG3kgB0EGdK18pyIHQQ9rELYBQRAgB2shByAGKQNQIQMgBikDWAtCA4YgA0I9iIRCgICAgICA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AxA8EKsCGiAAQZzYA0EBEKsCGiACIAErAwgQsQsgACACEKoFIgAgABA8EKsCGiACEF8gAkEQaiQAC18BAn8gAkUEQEEADwsgAC0AACIDBH8CQANAIAMgAS0AACIERyAERXINASACQQFrIgJFDQEgAUEBaiEBIAAtAAEhAyAAQQFqIQAgAw0AC0EAIQMLIAMFQQALIAEtAABrCzoBAX8CQCACRQ0AIAAQLyACEM8DIgMgAkcNACADEHZFDQAgACABIAJBARCSDA8LIAAgASACQQAQkgwLLgAQmQwgACkDAEGgkAsQD0HIkAtB2JALQdSQC0HAkAsoAgAbKAIANgIAQaCQCwsoAQF/IAAoAkQiAUEBRgRAIAAQngwgAEEANgJEDwsgACABQQFrNgJEC5kBAQR/AkACQEHckQsoAgAiBCAAKAJMIgNB/////3txRgRAQX8hAiAAKAJEIgFB/////wdGDQIgACABQQFqNgJEDAELIABBzABqIQFBfyECAkAgA0EASARAIAFBADYCAAwBCyADDQILIAEgASgCACIBIAQgARs2AgAgAQ0BIABBxJELEJwMC0EAIQILIAIEQCAAQcSRCxCcDAsLHgAgAEUEQEGJ2gFBjoIBQRVBuo8BEAAACyAAKAIICwwAIABBhaEFQQAQbQs9AQJ/IABBACAAQQBKGyEAA0AgACAERkUEQCADIARBA3QiBWogAiABIAVqKwMAojkDACAEQQFqIQQMAQsLCz0AIAEoAgggAk0EQEHCvANB4oMBQT1BhyUQAAALIAAgASgCACABKAIEIAJqIAEoAgxwQcgAbGpByAAQHxoLnQIBB38jAEEQayIGJAACQAJAIAAoAggiBSAAKAIMIgFHBEAgACgCACECIAAoAgQhAwwBCyAFQQF0QQEgBRsiAUHmzJkzSwRAQcQAIQAMAgsgACgCACABQShsEDoiAkUEQEEwIQAMAgsgAiAAKAIMIgRBKGxqQQAgASAEa0EobBAzGiAEIAAoAggiBSAAKAIEIgNqSQRAIANBKGwhByACIAEgBCADayIEayIDQShsaiACIAdqIARBKGwQUxogACADNgIECyAAIAE2AgwgACACNgIACyACIAMgBWogAXBBKGxqQQBBKBAzGiAAIAAoAggiAEEBajYCCCAGQRBqJAAgAA8LIAYgABB4NgIAQbj8CCgCAEHa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IAQQtgIgARB5IQEMAAsACyAAEBshAyABQQFHIQYDQCADRQ0BAkAgBkUEQCADIAIgBSAEEDUaDAELIAAgAxAtIQEDQCABRQ0BIAEgAiAFIAQQNRogACABEDAhAQwACwALIAAgAxAcIQMMAAsACwsRACAAQQRBEEGAgICAARCDBwsxAQF/IAAoAgQiASgCICsDECABKwMYoCAAKwMIoSAAKAIAIgAoAiArAxAgACsDGKChC1ABAX9BCCEFAkACQAJAAkAgA0EBaw4EAwACAQILQRAhBQwCC0EEIQUMAQtBACEFCyAAIAEgAyAFIAQQhg4hACACQQBKBEAgACACEIUOCyAACy4BAn8gABAbIQEDQCABBEAgACABQQBBARCgCCACaiECIAAgARAcIQEMAQsLIAILpAEBA39BwAAQjwYiAiACKAIAQXxxQQFyNgIAIAJBwAIQjwYiATYCECACIAAQNzYCGCABQoCAgICAgID4PzcDYCABQQE6AKwBIAFCgICAgICAgPg/NwNYIAFBATYC7AEgAUKAgICAgICA+D83A1AgAUEANgLEAUEFQQQQ1QIhAyABQQA2AswBIAEgAzYCwAEgAUEFQQQQ1QI2AsgBIAAgAhDECCACCxMAIAAgASgCABDvDiABQgA3AgAL/QMBB38gBUEYQRQgAC0AABtqKAIAIAAQvAMiBigCKCAAKAIoIAEoAigQmAYgBEEAIARBAEobQQFqIQxBASELA0AgCyAMRkUEQCAAIgQgAhC7AyEAIAEiByADELsDIQECfyAELQAARQRAIAUoAhggABC8AyEJIAcoAighByAEKAIoIQggBigCKCEGIAArAwggBCsDEGEEQCAEKAIgIAYgCCAHEL0DIQYgCSgCKCEEQQFGBEAgACABIAYbIQcgASAAIAYbIQggCQwDCyABIAAgBhshByAAIAEgBhshCCAJDAILIAQoAiQgBiAIIAcQvQMhBiAJKAIoIQRBAUYEQCABIAAgBhshByAAIAEgBhshCCAJDAILIAAgASAGGyEHIAEgACAGGyEIIAkMAQsgBSgCFCAAELwDIQkgBygCKCEHIAQoAighCCAGKAIoIQYCfyAAKwMIIAQrAxBhBEAgBCgCICAGIAggBxC9AyEGIAkoAighBEECRgRAIAAgASAGGyEIIAEgACAGGwwCCyABIAAgBhshCCAAIAEg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QUBrJAALIwEBfyMAQRBrIgEkACABIAA2AgwgAUEMahCRByABQRBqJAALxQIBCH8jAEEgayICJAACQCAAIAJBHGoQmgUiAEUNACACKAIcIgVBAEwNAANAIAAtAAAiA0UNASADQS1HBEAgAEEBaiEADAELCyACQgA3AxAgAkIANwMIIABBAWohBkEAIQMDQCAEIAVIBEAgAyAGaiIHLAAAIggEQCACQQhqIAgQ+woCQCAHLQAAQdwARgRAIANFDQEgACADai0AAEHcAEcNAQsgBEEBaiEECyADQQFqIQMMAgUgAkEIahBfQQAhBAwDCwALCyABIwBBEGsiASQAAkAgAkEIaiIAECcEQCAAIAAQJCIFEMwCIgQNASABIAVBAWo2AgBBuPwIKAIAQdPzAyABEB4aECgACyAAQQAQ+wogACgCACEECyAAQgA3AgAgAEIANwIIIAFBEGokACAENgIAIAMgBmohBAsgAkEgaiQAIAQLVAEDfyMAQRBrIgEkAEHo5AooAgACQCAARQ0AIAAQqgEiAg0AIAEgABA8QQFqNgIAQbj8CCgCAEHT8wMgARAeGhAoAAtB6OQKIAI2AgAgAUEQaiQACw8AIAAgACgCACgCJBECAAsRACAAIAEgASgCACgCIBEDAAsRACAAIAEgASgCACgCLBEDAAsMACAAQYKGgCA2AAALEQAgABBCIAAQI0ECdGoQngcLDQAgACgCACABKAIARwsOACAAEEIgABAjahCeBwsWACAAIAEgAiADIAAoAgAoAiARBgAaCw4AIAAoAghB/////wdxC4ABAQJ/IwBBEGsiBCQAIwBBIGsiAyQAIANBGGogASABIAJBAnRqELIFIANBEGogAygCGCADKAIcIAAQ5AsgAyABIAMoAhAQsQU2AgwgAyAAIAMoAhQQqAM2AgggBEEIaiADQQxqIANBCGoQ/QEgA0EgaiQAIAQoAgwaIARBEGokAAtFAQF/IwBBEGsiBSQAIAUgASACIAMgBEKAgICAgICAgIB/hRC3ASAFKQMAIQEgACAFKQMINwMIIAAgATcDACAFQRBqJAALtQEBA38jAEEgayIDJAACQAJAIAEsAAAiAgRAIAEtAAENAQsgACACEMEFIQEMAQsgA0EAQSAQMxogAS0AACICBEADQCADIAJBA3ZBHHFqIgQgBCgCAEEBIAJ0cjYCACAB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IAJBBHRqIgMgAUEQayICQQhqKQMANwMIIAMgAikDADcDACAAIBEgEyAEEEMgERAYIA8gAikDCDcDKCAPIAIpAwA3AyAgDyABKQMYNwM4IA8gASkDEDcDMCAPIA8rAzAgDysDICABKwMAoaA5A0AgDyAPKwM4IA8rAyggASsDCKGgOQNIIAAgD0EwakECEDkgDyAPKQNINwM4IA8gDykDQDcDMCAAIA9BIGpBAhA5DBoFIBEgA0EEdCISaiIUIAEgEmoiEikDADcDACAUIBIpAwg3AwggA0EBaiEDDAELAAsACyACQQJqIgNBEBAZIgIgASkDCDcDCCACIAEpAwA3AwAgAiAQKQMgNwMQIAIgECkDKDcDGCACIBArAyAgECsDMCIGIBArA0ChRAAAAAAAAAhAoyIHoDkDICAQKwMoIQggECsDSCEJIBArAzghBSACIAYgB6A5AzAgAiAFIAUgCaFEAAAAAAAACECjIgWgOQM4IAIgCCAFoDkDKEEEIAMgA0EETRshESABQSBrIRNBBCEBA0AgASARRgRAIAAgAiADIAQQQyACEBggDyAQKQM4NwMoIA8gECkDMDcDICAPIBApAyg3AzggDyAQKQMgNwMwIAAgD0EgakECEDkMGQUgAiABQQR0IhJqIhQgEiATaiISKQMANwMAIBQgEikDCDcDCCABQQFqIQEMAQsACwALIAJBA2oiA0EQEBkiAiABQQhqKQMANwMIIAIgASkDADcDACACIAErAwAiBSAFIBArAxChIgZEAAAAAAAA0L+ioDkDECABKwMIIQggECsDSCEJIAIgECsDOCIHOQM4IAIgBSAGRAAAAAAAAALAoqA5AzAgAiAFIAYgBqChOQMgIAIgCCAHIAmhRAAAAAAAAAhAo6AiBTkDKCACIAU5AxggECsDMCEFIAIgBzkDSCACIAU5A0BBBCADIANBBE0bIREgAUEwayETQQQhAQNAIAEgEUYEQCAAIAIgAyAEEEMgAhAYDBgFIAIgAUEEdCISaiIUIBIgE2oiEikDADcDACAUIBIpAwg3AwggAUEBaiEBDAELAAsACyACQQRHDRtBBkEQEBkiAiABKQMINwMIIAIgASkDADcDACACIBApAyg3AxggAiAQKQMgNwMQIAIgECkDSDcDKCACIBApA0A3AyAgAiABKQMoNwM4IAIgASkDIDcDMCAC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AEcEQCACQbQBRg0BIAJBjgJGDQJBipYDQbDEAUGWAUHqiwEQAAALIAErAwghAyAAIAErAwA5AwggACADmjkDAA8LIAAgASsDADkDACAAIAErAwiaOQMIDwsgASsDCCEDIAAgASsDADkDCCAAIAM5AwAPCyAAIAEpAwA3AwAgACABKQMINwMICwoAIABBCGoQ2AMLDQAgACgCACABQQJ0agsZACAAEKgBBEAgACABEL8BDwsgACABENQBC2EBAX8jAEEQayICJAAgAiAANgIMAkAgACABRg0AA0AgAiABQQFrIgE2AgggACABTw0BIAIoAgwgAigCCBCyCyACIAIoAgxBAWoiADYCDCACKAIIIQEMAAsACyACQRBqJAALsQEBA38jAEEQayIHJAACQAJAIABFDQAgBCgCDCEGIAIgAWtBAnUiCEEASgRAIAAgASAIEOQDIAhHDQELIAYgAyABa0ECdSIBa0EAIAEgBkgbIgFBAEoEQCAAIAdBBGogASAFELsLIgUQQiABEOQDIQYgBRB3GiABIAZHDQELIAMgAmtBAnUiAUEASgRAIAAgAiABEOQDIAFHDQELIAQQvwsMAQtBACEACyAHQRBqJAAgAAuoAQEDfyMAQRBrIgckAAJAAkAgAEUNACAEKAIMIQYgAiABayIIQQBKBEAgACABIAgQ5AMgCEcNAQsgBiADIAFrIgFrQQAgASAGSBsiAUEASgRAIAAgB0EEaiABIAUQwAsiBRBCIAEQ5AMhBiAFEDQaIAEgBkcNAQsgAyACayIBQQBKBEAgACACIAEQ5AMgAUcNAQsgBBC/CwwBC0EAIQALIAdBEGokACAACw4AIAAgASgCADYCACAACwoAIAAgASAAa2oLCwAgAC0AC0H/AHEL6QEBBH8jAEEQayIEJAAgABBGIgMgAWoiASADQQF0QYAIIAMbIgIgASACSxshASAAECQhBQJAAkACQCAALQAPQf8BRgRAIANBf0YNAiAAKAIAIQIgAUUEQCACEBhBACECDAILIAIgARA6IgJFDQMgASADTQ0BIAIgA2pBACABIANrEDMaDAELIAFBARAZIgIgACAFEB8aIAAgBTYCBAsgAEH/AToADyAAIAE2AgggACACNgIAIARBEGokAA8LQd/JA0GYhQFBzQBB77oBEAAACyAEIAE2AgBBuPwIKAIAQdPzAyAEEB4aECgACwgAIABB/wFxC1ABAX4CQCADQcAAcQRAIAIgA0FAaq2IIQFCACECDAELIANFDQAgAkHAACADa62GIAEgA60iBIiEIQEgAiAEiCECCyAAIAE3AwAgACACNwMIC9sBAgF/An5BASEEAkAgAEIAUiABQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AURsNACACQgBSIANC////////////AIMiBkKAgICAgIDA//8AViAGQoCAgICAgMD//wBRGw0AIAAgAoQgBSAGhIRQBEBBAA8LIAEgA4NCAFkEQCAAIAJUIAEgA1MgASADURsEQEF/DwsgACAChSABIAOFhEIAUg8LIAAgAlYgASADVSABIANRGwRAQX8PCyAAIAKFIAEgA4WEQgBSIQQLIAQLFgAgAEUEQEEADwtB4I8LIAA2AgBBfwsLACAAIAEgAhEAAAtkAQJ/IwBBEGsiAyQAAkAgAEEAELUCIgBFDQACQAJAAkACQCABDgQAAQICAwsgACgCECECDAMLIAAoAgghAgwCCyAAKAIMIQIMAQsgAyABNgIAQeHOBCADEDYLIANBEGokACACC6QBAgN/AnwjAEEQayICJAAgABDDAiAAKAIQIgErAxhEAAAAAAAAUkCjIQQgASsDEEQAAAAAAABSQKMhBSAAEBshAQNAIAEEQCABKAIQKAKUASIDIAMrAwAgBaE5AwAgAyADKwMIIAShOQMIIAAgARAcIQEMAQsLIAIgACgCECIBKQMYNwMIIAIgASkDEDcDACAAIAIQgQ0gAEEBENgFIAJBEGokAAsPACABQQFqIAAgABCwAZ8LqAECBH8CfCABKAIAIQIgAEEEaiIDIQAgAyEBA0AgACgCACIABEAgACgCECIEKwMIIgYgAisDCCIHYwRAIABBBGohAAwCBSAAIAEgACACIARLIgQbIAYgB2QiBRshASAAIAAgBEECdGogBRshAAwCCwALCwJAAkAgASADRg0AIAIrAwgiBiABKAIQIgArAwgiB2MNACAAIAJNIAYgB2RyDQELIAMhAQsgAQtkAQF/IwBBEGsiBCQAIABBADsBHCAAQQA2AhggACADOQMIIAAgAjYCBCAAIAE2AgAgBCAANgIMIAFBNGogBEEMahDBASAAKAIEIAQgADYCCEEoaiAEQQhqEMEBIARB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BCgCECgClAEiBSsDADkDCCADIAUrAwg5AxAgA0EoaiAEIBYgFCAJER8ARQRAIANBATYCHCADIAc2AhggA0IANwNYIAMgBDYCACAHQQFqIQcgACAEEBwhBAwBCwtByIULKAIAEBhByIULQQA2AgAQmA0MAgtBACEHIAJBsANqQQBB0AAQMxogBQRAQciFCygCACEERP///////+9/IRRE////////7/8hGET////////v/yEbRP///////+9/IRkDQCAFIAdGBEBEmpmZmZmZqT8hFgJAIABBwOoAECYiAEUNACAALQAARQ0AIAAQsQIhFgtBkIYLIBsgGyAZoSAWoiIToCIXOQMAQZiGCyAZIBOhIhU5AwBBiIYLIBQgGCAUoSAWoiIToSIUOQMAQYCGCyAYIBOgIhM5AwAgAiAVOQPYAyACIBc5A+gDIAIgFTkDuAMgAiATOQPQAyACIBc5A8gDIAIgFDkD8AMgAiATOQPAAyACIBQ5A+ADIAEoAgAhAEEAEO8HIQkCQAJAIABBAkYEQCAJRQ0CIAJBsANqEJcNQQAhBQNAQciFCygCACEBQZSFCygCACEAQQAhBANAIAAgBEcEQCABIARB4ABsaiIJIAkrAwhEzczMzMzM8D+iOQMIIAkgCSsDEETNzMzMzMzwP6I5AxAgBEEBaiEEDAELCyAFQQFqIgUQ7wcNAAtBjOEKLQAARQ0BIAIgBTYCEEG4/AgoAgBByucDIAJBEGoQHhoMAQsgCUUNASACQbADahCXDUEAIQdBACEEA0AgAkGwA2oiASEAIAcEQCAAEJUNC0GohQtC/////////3c3AwBBoIULQv/////////3/wA3AwACQEGUhQsoAgAiAwRAIAAoAgAhCET////////vfyEURP///////+//IRZBACEAA0AgACADRg0CQaCFCyAUIAggAEECdGooAgAiBSsDABAqIhQ5AwBBqIULIBYgBSsDABAiIhY5AwAgAEEBaiEADAALAAtBlJsDQeDAAUHQAUHFmgEQAAALQbCFCyAIKAIAKwMIOQMAIAggA0ECdGpBBGsoAgArAwghE0HAhQsgFiAUoTkDAEG4hQsgEzkDAEQAAAAAAAAAACEVRAAAAAAAAAAAIRQjAEEwayINJAAQow0QpQ1BAUEQEBkiDEGYhQsoAgBBAnQiADYCBCAMIABBKBAZ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AUH/vwFB1QlBmTUQAAALQZrOAUH/vwFB6AlBmTUQAAALC3oBAX8jAEEQayIEJAAgAwRAIAMgACACIAIQ/AUiAjYCCEGM4QotAAAEQCAEIAI2AgBBuPwIKAIAQb3nAyAEEB4aCyADQQA2AhQgA0EAOgAMIAAgASADEKcIGiADKAIQIARBEGokAA8LQcbkAEGMxQFBhApB8eQAEAAACzwBAn8jAEEQayIBJABBASAAEEciAkUEQCABIAA2AgBBuPwIKAIAQdPzAyABEB4aECgACyABQRBqJAAgAgspAQF/A0AgACIBKAIQKAKwASIADQALA0AgASIAKAIQKAJ4IgENAAsgAAvgAQIIfAF/IAFBIEEYQcyECy0AACIMG2orAwAhBCACIAFBGEEgIAwbaisDACIFOQMYIAIgBDkDECACIAEpAzg3AwAgAiABQUBrKQMANwMIIAIgAisDACAERAAAAAAAAOA/oqEiBjkDACACIAIrAwggBUQAAAAAAADgP6KhIgc5AwggAysDACEIIAMrAwghCSADKwMQIQogACADKwMYIgsgBSAHoCIFIAUgC2MbOQMYIAAgCiAEIAagIgQgBCAKYxs5AxAgACAJIAcgByAJZBs5AwggACAIIAYgBiAIZBs5AwAL6QEBBH8jAEEQayIEJAAgABBGIgMgAWoiASADQQF0QYAIIAMbIgIgASACSxshASAAECQhBQJAAkACQCAALQAPQf8BRgRAIANBf0YNAiAAKAIAIQIgAUUEQCACEBhBACECDAILIAIgARA6IgJFDQMgASADTQ0BIAIgA2pBACABIANrEDMaDAELIAFBARBKIgIgACAFEB8aIAAgBTYCBAsgAEH/AToADyAAIAE2AgggACACNgIAIARBEGokAA8LQd/JA0GYhQFBzQBB77oBEAAACyAEIAE2AgBBuPwIKAIAQdPzAyAEEB4aECgAC3wBAXwgAEEATgRAIAFEAAAAAAAAAABjBEBBAA8LIAFEAAAAAAAA8D9kRSAAuCICRAAAwP///99BIAGjZEVyRQRAQf////8HDwsgASACoiIBmUQAAAAAAADgQWMEQCABqg8LQYCAgIB4DwtB3Z0DQZWEAUHKAEG83wAQAAALEgAgACABQa0kQS1BqsIBEMgBC7ECAQd/IwBBEGsiByQAAkACQCAAKAIIIgYgACgCDCICRwRAIAAoAgAhAyAAKAIEIQQMAQsgBkEBdEEBIAYbIgJBzJmz5gBLBEBBxAAhAAwCCyAAKAIAIAJBFGwQOiIDRQRAQTAhAAwCCyADIAAoAgwiBUEUbGpBACACIAVrQRRsEDMaIAUgACgCCCIGIAAoAgQiBGpJBEAgBEEUbCEIIAMgAiAFIARrIgVrIgRBFGxqIAMgCGogBUEUbBBTGiAAIAQ2AgQLIAAgAjYCDCAAIAM2AgALIAMgBCAGaiACcEEUbGoiAiABKQIANwIAIAIgASgCEDYCECACIAEpAgg3AgggACAAKAIIQQFqNgIIIAdBEGokAA8LIAcgABB4NgIAQbj8CCgCAEHaigQgBxAeGhAoAAs9AEHsgwsoAgAgAEsEQEHkgwsoAgBB6IMLKAIAIABqQfCDCygCAHBBKGxqDwtBwrwDQfTAAUEwQccqEAAAC1EBAnxBAkEBQQMgACsDCCABKwMIIgOhIAIrAwAgASsDACIEoaIgAisDCCADoSAAKwMAIAShoqEiA0QAAAAAAAAAAGMbIANEAAAAAAAAAABkGwtJAQF8IAEoAhQgABC8AyEBRAAAAAAAAPA/IAAoAiy3IAEoAiC4RAAAAAAAAPA/oKOhIAEoAiwiACsDQCAAKwMwIgKhoiACoBAxCz0BAXwgASgCGCAAELwDIQEgACgCLLcgASgCILhEAAAAAAAA8D+goyABKAIsIgArAzggACsDKCICoaIgAqALCwAgAEGe3AQQGhoLcQEBfyMAQRBrIgUkACAAQYbPAxAaGiAAIAEQjAEgAgRAIABB3wAQZyAAIAIQjAELIAUgAzYCACAAQbg5IAUQHQJAIARB0C4QJiIBRQ0AIAEtAABFDQAgAEEgEGcgACABEIwBCyAAQSIQZyAFQRBqJAAL0gEBBn8jAEEgayICJAAgACgCECIBKAKoASEDIAAgASsDoAEQfSAAQe2cBBAaGgNAAkAgA0UNACADKAIAIgVFDQAgA0EEaiEDIAUiAUHR/gAQSUUNAQNAIAEiBEEBaiEBIAQtAAANAAsDQCAELQABBEAgAiAEQQFqIgE2AhAgAEGN0gMgAkEQahAdA0AgAS0AACABIgRBAWohAQ0ACwwBCwsgBUGQMxBJRQRAIAAoAhBCADcDoAELIAIgBTYCACAAQeiMBCACEB0MAQsLIAJBIGokAAsQAEEBIAAQPEEBdEECahBKCzEBAX8CQCABRQ0AIAEtAABFDQAgACgCPCICRQ0AIAIoAnAiAkUNACAAIAEgAhEDAAsLrQECAn8CfCMAQSBrIgMkAAJAIAAoAjwiBEUNACAEKAJgIgRFDQAgACgCECgCmAFFDQAgASsAGCEFIAErAAghBiADIAErABAgASsAAKBEAAAAAAAA4D+iOQMAIAMgBSAGoEQAAAAAAADgP6I5AwggAyABKQMYNwMYIAMgASkDEDcDECAALQCZAUEgcUUEQCAAIAMgA0ECEJkCGgsgACADIAIgBBEFAAsgA0EgaiQACzEBAX8CQCAAKAI8IgFFDQAgASgCBCIBRQ0AIAAgAREBAAsgACgCAEEANgIYIAAQvQsLrwEBA38CfyABEDciASgCEC0Ac0EBRgRAIAAQogQMAQsgACABEPMGCyIAIgMhAQNAQQAhAgJAAkADQCABLQAAIgRFDQEgAUEBaiEBIAJBAXEEQEEKIQICQAJAAkAgBEHsAGsOBwIBAgEBAQABC0ENIQIMAQsgBCECCyADIAI6AAAMAwtBASECIARB3ABGDQALIAMgBDoAAAwBCyADQQA6AAAgAA8LIANBAWohAwwACwALGAAgACgCACAAKAKgASAAKAKcASABEIwJC8dOAhZ/DnwjAEGwEWsiAiQAIAJB+AlqIAApAJgCNwMAIAJB8AlqIAApAJACNwMAIAJB6AlqIAApAIgCNwMAIAIgACkAgAI3A+AJAkACQAJAIAEoAhAiBCgCCCIDRQ0AIAMrABggAisD4AlmRQ0AIAIrA/AJIAMrAAhmRQ0AIAMrACAgAisD6AlmRQ0AIAIrA/gJIAMrABBmDQELIAQoAmAiAwR/IAIgAkH4CWopAwA3A6gDIAIgAkHwCWopAwA3A6ADIAIgAkHoCWopAwA3A5gDIAIgAikD4Ak3A5ADIAMgAkGQA2oQpgoNASABKAIQBSAECygCbCIDRQ0BIAMtAFFBAUcNASACIAJB+AlqKQMANwOIAyACIAJB8AlqKQMANwOAAyACIAJB6AlqKQMANwP4AiACIAIpA+AJNwPwAiADIAJB8AJqEKYKRQ0BCwJAIAAoApwBQQJIDQAgACABQbDjCigCAEHmigUQfCIDEJEEDQAgAy0AAA0BIAFBKGohBANAQTAhA0EDIQgCQAJAIAUOAwEABAALQVAhA0ECIQgLIAQgA0EAIAEoAgBBA3EgCEcbaigCAEHY4gooAgBB5ooFEHwiAy0AAEUNASAFQQFqIQUgACADEJEERQ0ACwsgAkIANwO4AyACQgA3A7ADIAJBsANqIgQgAUEwQQAgASgCAEEDcUEDRxtqKAIoECAQygMgBEGx5gFBgaUDIAEgAUEwayIDIAEoAgBBA3FBAkYbKAIoEC8QgwIbEMoDIAQgASADIAEoAgBBA3FBAkYbKAIoECAQygMgACAEEMkDEI0EIAQQXyABQbTjCigCAEHmigUQfCIDLQAABEAgACADEI0ECwJAIAFBnOMKKAIAQeaKBRB8IgMtAAAiE0UNACADEMgDGkHQ5gohDkHQ5gohBQNAIAUoAgAiA0UNASAFQQRqIQUgA0GQMxBNRQ0ACwwBCyAAKAKYASEUIAAQlwQiB0EJNgIMIAcgATYCCCAHQQM2AgQCQCABKAIQKAJgIgNFDQAgAy0AUg0AIAFBrrQBECYQakUNACAHIAcvAYwCQYAEcjsBjAILAkAgE0UNACABKAIQKAIIRQ0AIAAgDhDmAQsCQEHo4wooAgAiA0UNACABIAMQQSIDRQ0AIAMtAABFDQAgACABQejjCigCAEQAAAAAAADwP0QAAAAAAAAAABBLEIgCCwJAIBRBgICACHFFDQAgASABQTBqIgMgASgCAEEDcUEDRhsoAigQLygCEC8BsgFBA08EQCAHAn8gASADIAEoAgBBA3FBA0YbKAIoKAIQKAKUASsDEEQAAAAAAABSQKIiGEQAAAAAAADgP0QAAAAAAADgvyAYRAAAAAAAAAAAZhugIhiZRAAAAAAAAOBBYwRAIBiqDAELQYCAgIB4C7c5A7gBIAcCfyABQVBBACABKAIAQQNxQQJHG2ooAigoAhAoApQBKwMQRAAAAAAAAFJAoiIYRAAAAAAAAOA/RAAAAAAAAOC/IBhEAAAAAAAAAABmG6AiGJlEAAAAAAAA4EFjBEAgGKoMAQtBgICAgHgLtzkDwAEMAQsgB0IANwO4ASAHQgA3A8ABCwJAIBRBgIACcUUNAAJAIAEoAhAiBCgCYCIDRQRAIAcoAsgBIQMMAQsgByADKAIAIgM2AsgBCyAHIAM2AtQBIAcgAzYCzAEgByADNgLQASAEKAJsIgMEQCAHIAMoAgA2AswBCyAEKAJoIgMEQCAHIAMoAgA2AtABCyAEKAJkIgNFDQAgByADKAIANgLUAQtBACEFQQAhAwJAIBRBgIAEcUUNACACQegJakIANwMAIAJCADcD4AkgByAAIAEgAkHgCWoiAxDDBiABEIMBNgLcASADEF8CQAJAIAFBrI0BECYiCARAIAgtAAANAQtBACEDIAFBhdkBECYiCEUNASAILQAARQ0BCyAIIAEQgwEhAwsCQCAHAn8CQAJAIAFBn40BECYiCARAIAgtAAANAQsgAUH52AEQJiIIRQ0BIAgtAABFDQELIAggARCDAQwBCyADRQ0BIAMQZgs2AtgBCwJAIAcCfwJAAkAgAUGVjQEQJiIIBEAgCC0AAA0BCyABQfDYARAmIghFDQEgCC0AAEUNAQsgCCABEIMBDAELIANFDQEgAxBmCzYC4AELAkACQAJAIAFBjI0BECYiCARAIAgtAAANAQsgAUHo2AEQJiIIRQ0BIAgtAABFDQELIAcgCCABEIMBNgLkASAHIAcvAYwCQYABcjsBjAIMAQsgA0UNACAHIAMQZjYC5AELAkACQCABQaiNARAmIggEQCAILQAADQELIAFBgdkBECYiCEUNASAILQAARQ0BCyAHIAggARCDATYC6AEgByAHLwGMAkGAAnI7AYwCDAELIANFDQAgByADEGY2AugBCwJAIBRBgICABHFFDQACQCABQdgjECYiBEUNACAELQAARQ0AIAQgARCDASEFCwJAIAcCfwJAIAFBySMQJiIERQ0AIAQtAABFDQAgByAHLwGMAkHAAHI7AYwCIAQgARCDAQwBCyAFRQ0BIAUQZgs2AvwBCwJAIAcCfwJAIAFBvSMQJiIERQ0AIAQtAABFDQAgBCABEIMBDAELIAVFDQEgBRBmCzYCgAILAkACQCABQbIjECYiBEUNACAELQAARQ0AIAcgBCABEIMBNgKEAiAHIAcvAYwCQRByOwGMAgwBCyAFRQ0AIAcgBRBmNgKEAgsgBwJ/AkAgAUHUIxAmIgRFDQAgBC0AAEUNACAHIAcvAYwCQSByOwGMAiAEIAEQgwEMAQsgBUUEQEEAIQUMAgsgBRBmCzYCiAILAkAgFEGAgIACcUUNAAJAAkACQCABQY/gABAmIggEQCAILQAADQELIAFB/98AECYiCEUNASAILQAARQ0BCyAHIAggARCQBCIEIAEQgwE2AuwBIAQQGCAHIAcvAYwCQQFyOwGMAgwBCyAHKALIASIERQ0AIAcgBBBmNgLsAQsCQAJAIAFB8t8AECYiBEUNACAELQAARQ0AIAcgBCABEJAEIgQgARCDATYC8AEgBBAYIAcgBy8BjAJBCHI7AYwCDAELIAcoAsgBIgRFDQAgByAEEGY2AvABCwJAAkAgAUHm3wAQJiIERQ0AIAQtAABFDQAgByAEIAEQkAQiBCABEIMBNgL0ASAEEBggByAHLwGMAkECcjsBjAIMAQsgBygC0AEiBEUNACAHIAQQZjYC9AELAkAgAUGL4AAQJiIERQ0AIAQtAABFDQAgByAEIAEQkAQiBCABEIMBNgL4ASAEEBggByAHLwGMAkEEcjsBjAIMAQsgBygC1AEiBEUNACAHIAQQZjYC+AELIAMQGCAFEBgCQAJAAkACQAJAAkACQAJAIBRBgICEAnFFDQAgASgCECgCCCIWRQ0AAkAgBygC2AFFBEAgBygC7AFFDQIgFEGAgCBxDQEMAgsgFEGAgCBxRQ0BCyAWKAIEIQkgACgCECsDoAEgAkGIEWpCADcDACACQgA3A4ARRAAAAAAAAOA/okQAAAAAAAAAQBAiIR9BACEIAkADQAJAIAkgFUYEQCAUQYDAAHENA0EAIQNBACEFDAELIBYoAgBBGBCPAyIEQQE2AhAgFUEwbGoiFygCBEEBa0EDbiELQQAhCiAEIQNBACEGA0AgBiALRgRAIAQhA0EAIQUCQANAIAMiBgRAIAVBBHQiAyACQcADamohDCACQeAJaiADaiEPIAYrAwghHiAGKwMAIRkgBigCECEDAkAgCgRAIAorAwghGCAKKwMAIR0gAwRAIAMrAwghGyADKwMAIRwMAgsgHiAeoCAYoSEbIBkgGaAgHaEhHAwBCyAeIB6gIAMrAwgiG6EhGCAZIBmgIAMrAwAiHKEhHQsgGyAeoSAcIBmhEK0BIRogDyAeIB8gGCAeoSAdIBmhEK0BIhggGiAYoSIYRBgtRFT7IRnAoCAYIBhEAAAAAAAAAABkG0QAAAAAAADgP6KgIhgQWKIiGqA5AwggDyAZIB8gGBBEoiIYoDkDACAMIB4gGqE5AwggDCAZIBihOQMAIAVBAWohBSADBEAgBiEKIAVBMkcNAgsCQCAIIBJHDQAgEkEBdEEBIBIbIghB/////wNLBEBBxAAhBQwECyARIAhBAnQQOiIRRQRAQTAhBQwECyARIBJBAnRqQQAgCCASa0ECdBAzGiAQIBJqIBJNDQAgEEECdCENIBEgCCASIBBrIgprIhBBAnRqIA0gEWogCkECdBBTGgsgESAQIBJqIAhwQQJ0aiAFQQF0NgIAQQAhCwNAIAUgC0YEQCACQcADaiAFQQR0aiENQQAhCwNAIAUgC0cEQCACIA0gC0F/c0EEdGoiCikDCDcD2AIgAiAKKQMANwPQAiALQQFqIQsgAkGAEWogAkHQAmoQewwBCwsgAiAPKQMANwPgCSACIA8pAwg3A+gJIAIgDCkDADcDwAMgAiAMKQMINwPIA0EBIQUgEkEBaiESIAYhCgwDBSACIAJB4AlqIAtBBHRqIgopAwg3A+gCIAIgCikDADcD4AIgC0EBaiELIAJBgBFqIAJB4AJqEHsMAQsACwALCwNAIAQEQCAEKAIQIAQQGCEEDAELCyAVQQFqIRUMBAsgAiAFEHg2AsACQbj8CCgCAEHaigQgAkHAAmoQHhoQKAALIBcoAgAgBkEwbGohDEEAIQUDQCAFQQRGBEAgBkEBaiEGIAJBgBBqIAMQvAYhAwwCBSAFQQR0Ig0gAkGAEGpqIg8gDCANaiINKQMANwMAIA8gDSkDCDcDCCAFQQFqIQUMAQsACwALAAsLA0AgBSASRwRAIBEgBSAQaiAIcEECdGooAgAgA2ohAyAFQQFqIQUMAQsLIAAgAkGAEWoiBBC7BiAEELsGIAMQmQIaCyACQYARahC7BiEDIAdBAjYCkAIgByADNgKkAiACKAKAESENIAIoAowRIQMgAigChBEhCgNAIAoEQCADRQ0GIAJB6AlqIgQgDSkDCDcDACACIA0pAwA3A+AJIAMhBQNAIAUEQCACIA0gBUEBayIFQQR0aiIGKQMINwPIAyACIAYpAwA3A8ADIAYgBCkDADcDCCAGIAIpA+AJNwMAIAQgAikDyAM3AwAgAiACKQPAAzcD4AkMAQUgCkEBayEKDAMLAAsACwsgAigCiBEgA0sNAyACQYgRakIANwMAIAJCADcDgBEgByANNgKYAiASRQ0CIBEgECAIcEECdGooAgAhAyAHIBI2ApwCIAcgAzYClAIDQCAQBEAgESgCACEDIAghBQNAIAUEQCARIAVBAWsiBUECdGoiBigCACAGIAM2AgAhAwwBBSAQQQFrIRAMAwsACwALCyAIIBJJDQEgByARNgKgAgsCQCAAKAI8IgNFDQAgAygCQCIDRQ0AIAAgAxEBAAsCQCAHKALYASIDRQRAIActAIwCQQFxRQ0BCyAAIAMgBygC7AEgBygC/AEgBygC3AEQxgELIAAoAhArA6ABIR8gAkHQEGpCADcDACACQgA3A8gQIAFBt58BECYQ7wIhFyABKAIQKAIIRQ0GQQAhCyABQajjCigCAEQAAAAAAADwP0QAAAAAAAAAABBLISAgAUH84gooAgBB5ooFEHwhBkEAIQQCQCATRQ0AIA4hBQNAIAUoAgAiA0EARyEEIANFDQEgBUEEaiEFIANBobMBEE1FDQALCyAGIQVBACEIAkADQAJAAkACQAJAAkAgBS0AACIDQTprDgIBAgALIAMNAiALRSAIRXINCyAGIAJB8BBqEO0EIgZBAkkNAyABIAFBMGoiBSABKAIAQQNxQQNGGygCKBAvIAEgBSABKAIAQQNxQQNGGygCKBAgIQUQgwIhAyACIAFBUEEAIAEoAgBBA3FBAkcbaigCKBAgNgK4AiACQeHUA0H+1gMgAxs2ArQCIAIgBTYCsAJB0PkDIAJBsAJqEIIBIAZBAkcNBQwKCyAIQQFqIQgMAQsgC0EBaiELCyAFQQFqIQUMAQsLIAZBAUYNBQsgAkGACmohDCACQfAJaiEPIAIoAvgQIQ1BACEDQQAhBgNAAkACQCABKAIQKAIIIgQoAgQgBksEQCACQeAJaiAEKAIAIAZBMGxqQTAQHxpBACEFQQEhCEQAAAAAAADwPyEbIAMhBANAIAUgDUYNAiACQdgQaiACQfAQaiAFEJoCIAIoAtgQIgNFDQIgAisD4BAiGJlE8WjjiLX45D5jRQRAIAAgAxBFIBsgGKEhGwJAAkACQCAIBEAgAkHgCWogGCACQYAQaiACQYARahCPCUEAIQggACACKAKAECIEIAIoAoQQQQAQiQIgBBAYIBuZRPFo44i1+OQ+Yw0BDAMLIBuZRPFo44i1+OQ+YwRAIAAgAigCgBEiBSACKAKEEUEAEIkCDAILIAJBwANqIgogAkGAEWoiBEEwEB8aIAogGCAYIBugoyACQYAQaiAEEI8JIAIoAsADEBhBACEIIAAgAigCgBAiBCACKAKEEEEAEIkCIAQQGAwCCyACKAKAESEFCyAFEBgMBQsgAyEECyAFQQFqIQUMAAsACyACQfAQahCVBAwJCyAEIQMLIAIoAugJBEAgACACQfAQaiIEEMYDKAIAEEUgACAEEMYDKAIAEF4gAiAPKQMINwOoAiACIA8pAwA3A6ACIAIgAigC4AkiBCkDCDcDmAIgAiAEKQMANwOQAiAAQQIgAkGgAmogAkGQAmogICAfIAIoAugJEOwCCyACKALsCSIFBEAgACADEEUgACADEF4gAiAMKQMINwOIAiACIAwpAwA3A4ACIAIgAigC4AkgAigC5AlBBHRqQRBrIgQpAwg3A/gBIAIgBCkDADcD8AEgAEEDIAJBgAJqIAJB8AFqICAgHyAFEOwCCwJAIBNFIAEoAhAoAggoAgRBAklyDQAgAigC6AkgAigC7AlyRQ0AIAAgDhDmAQsgBkEBaiEGDAALAAtB5qoDQefBAUGzBkHbvAEQAAALQcOnA0HnwQFBswZBzx8QAAALQYapA0HnwQFBlgZB87sBEAAAC0HimgNB58EBQZYGQfO7ARAAAAtB8PoAIQYLAkACQAJ/IAEoAhAtAHQiA0EBcQRAQfSVAyELQeq+AQwBCyADQQJxBEBByZcDIQtB/+4BDAELIANBCHEEQEH7lAMhC0HzlAMMAQsgA0EEcUUNAUGAmAMhC0H37gELIQogAkHIEGogCxDKAyAGIQUDQAJAIAUtAAAiA0E6RwRAIAMNASACQcgQahDJAyIDIAZGDQQgACADEEUMBAsgAiALNgLgASACQcgQakH7OCACQeABahCAAQsgBUEBaiEFDAALAAsgAUGA4wooAgAgBhCRASEKIAYhAwsgBiAKRwRAIAAgChBeCwJAAkAgBARAIAotAAAhDSADLQAAIQQgAEGjIBBFIAAgA0Hw+gAgBBsiDxBeIAJB4AlqIgQgASgCECgCCCgCAEEwEB8aIAJBwANqIQsCfwJAQZjjCigCACIDRQ0AIAEgAxBBIgMtAABFDQBBlAIgA0HCqQEQTQ0BGkGVAiADQYf8ABBNDQEaQZYCIANB+f0AEE0NARogA0HnnQEQTUUNAEGXAgwBC0GUAkGXAiABQVBBACABKAIAQQNxQQJHG2ooAigQLxCDAhsLIQhEAAAAAAAAAAAhGSMAQbABayIJJAAgCUIANwMoIAlCADcDICAEKAIEIQ4gCSAEKAIAIgwiASkDCDcDGCAJIAwpAwA3AxAgCUEgaiAJQRBqRAAAAAAAAAAAEKAJIAkgASkDCDcDqAEgCSAMKQMANwOgAUEAIQEDQCAOIAFBA2oiA0sEQCAJIAkpA6ABNwNwIAkgCSkDqAE3A3ggDCABQQR0aiEGQQEhAQNAIAFBBEYEQEEBIQEgCSsDeCEbIAkrA3AhHANAIAFBFUYEQCADIQEMBQUgCUEwaiAJQfAAaiABuEQAAAAAAAA0QKNBAEEAEKYBIAkrAzghGiAJKwMwIRggCSAJKQM4NwMIIAkgCSkDMDcDACAJQSBqIAkgGSAcIBihIBsgGqEQUKAiGRCgCSABQQFqIQEgGiEbIBghHAwBCwALAAUgAUEEdCIEIAlB8ABqaiIFIAQgBmoiBCkDADcDACAFIAQpAwg3AwggAUEBaiEBDAELAAsACwsgCSgCICEMIAkoAiwhAyAJKAIkIQQgCSgCKCEOAkACQANAIAQEQCADRQ0CIAlB8ABqIAxBwAAQHxogAyEBA0AgAQRAIAlBMGoiBiAMIAFBAWsiAUEGdGoiBUHAABAfGiAFIAlB8ABqIgVBwAAQHxogBSAGQcAAEB8aDAEFIARBAWshBAwDCwALAAsLIAMgDk8EQCAMIA5BAWsiBUEGdGorAxAhI0QAAAAAAAAAACEbRAAAAAAAAAAAIRxEAAAAAAAAAAAhGkEAIQREAAAAAAAAAAAhGANAIA4gBCIBRgRAIAtCADcCAEEAIQEDQAJAIAEgDkYEQCAYRBgtRFT7IQlAoCIZEFghGCALIBkQRCAaoiAcoCAYIBqiIBugEO8EIA4NAUH+mgNBocMBQaYCQdc+EAAACyAMIAFBBnRqIgQrAyghGiAEKwMgIhgQWCEdIAQrAwghGyAYEEQhHCAEKwM4IRkgBC0AMCALIBwgGqIgBCsDACIcoCAbIB0gGqKgEO8EQQFxBEAgHCAaQQEgGCAZIAsQnwkLIAFBAWohAQwBCwsgDkECayEBA0AgAUF/RwRAIAwgAUEGdGoiBCsDKCEdIAQrAzhEGC1EVPshCUCgIhkQWCEbIAQrAwghHCAZEEQhGCAEKwMgIRogBC0AMCALIBggHaIgBCsDACIYoCAcIBsgHaKgEO8EQQFxBEAgGCAdQQAgGkQYLURU+yEJQKAgGSALEJ8JCyABQQFrIQEMAQsLIAwQGCAJQbABaiQADAQFIAwgAUEBaiIEQQAgBCAORxtBBnRqIgMrAwggDCABQQZ0aiIGKwMIIhuhIAMrAwAgBisDACIcoRCeCSEYIAwgAUEBayAFIAEbQQZ0aiIDKwMIIBuhIAMrAwAgHKEQngkhIiAGKwMQIh4gIyAfIAgRIAAhGgJAAn8gAUEAIAEgBUcbRQRAICJEGC1EVPsh+b+gIBhEGC1EVPsh+T+gIAEbIRlBAAwBCyAYRBgtRFT7Ifk/oCEZRAAAAAAAAAAAIBogGCAioSIYRBgtRFT7IRlAoCAYIBhEAAAAAAAAAABjG0QAAAAAAADgv6JEGC1EVPsh+T+gIh0QRCIYoyAYRAAAAAAAAAAAYRsiGCAaRAAAAAAAACRAomQEQCAiRBgtRFT7Ifm/oCIYRAAAAAAAAAAAYyAYRBgtRFT7IRlAZnIEQCAYIBhEGC1EVPshGUCjnEQYLURU+yEZQKKhIRgLQQEhASAZRAAAAAAAAAAAYyAZRBgtRFT7IRlAZnJFDQIgGSAZRBgtRFT7IRlAo5xEGC1EVPshGUCioSEZDAILIBkgHaAhGSAYIRpBAAshASAZIRgLIAYgGTkDOCAGIAE6ADAgBiAaOQMoIAYgGDkDICAGQewAOgAYIAYgHjkDECAGIBs5AwggBiAcOQMADAELAAsAC0GrqgNBocMBQeUAQb68ARAAAAtB4poDQaHDAUHlAEG+vAEQAAALIAIoAsADIgFBAEgNASAAIAIoAsQDIAFBARBDIAIoAsQDEBggACAPEEUgDyAKQfD6ACANGyIBRwRAIAAgARBeCyACKALoCSIDBEAgAiACQfgJaikDADcDWCACIAIpA/AJNwNQIAIgAigC4AkiASkDCDcDSCACIAEpAwA3A0AgAEECIAJB0ABqIAJBQGsgICAfIAMQ7AILIAIoAuwJIgNFDQMgAiACQYgKaikDADcDOCACIAIpA4AKNwMwIAIgAigC4AkgAigC5AlBBHRqQRBrIgEpAwg3AyggAiABKQMANwMgIABBAyACQTBqIAJBIGogICAfIAMQ7AIMAwsgASgCECEEIAhFDQEgCLhEAAAAAAAAAECgRAAAAAAAAOC/oiEhQQAhCiAEKAIIKAIEIhNBMBBKIRUgE0EwEEohFgNAIAogE0YEQCADEGYiDyEFIAMiBCEGQQAhEQNAIAVB4ugBEL8FIgUEQAJAIAVB8PoAIAUtAAAbIg4gA0YNACAOIQMgASgCEC0AdEEDcQ0AIAAgAxBFIAAgAxBeC0EAIQoDQCAKIBNGBEAgBiAOIBEbIQYgDiAEIBFBAkkbIQQgEUEBaiERQQAhBQwDCyAWIApBMGwiCGoiBSgCBCELIAggFWooAgAhDSAFKAIAIQxBACEFA0AgBSALRgRAIAAgDCALQQAQiQIgCkEBaiEKDAIFIAwgBUEEdCIIaiIJIAggDWoiCCsDACAJKwMAoDkDACAJIAgrAwggCSsDCKA5AwggBUEBaiEFDAELAAsACwALCwJAIAIoAugJIgVFBEBBACEEDAELAkAgBEUNACABKAIQLQB0QQNxDQAgACAEEEUgACAEEF4gAigC6AkhBQsgAiACQfgJaikDADcDmAEgAiACKQPwCTcDkAEgAiACKALgCSIDKQMINwOIASACIAMpAwA3A4ABIABBAiACQZABaiACQYABaiAgIB8gBRDsAgsgAigC7AkiBQRAAkAgBCAGRg0AIAEoAhAtAHRBA3ENACAAIAYQRSAAIAYQXiACKALsCSEFCyACIAJBiApqKQMANwN4IAIgAikDgAo3A3AgAiACKALgCSACKALkCUEEdGpBEGsiASkDCDcDaCACIAEpAwA3A2AgAEEDIAJB8ABqIAJB4ABqICAgHyAFEOwCCyAPEBhBACEFA0AgBSATRgRAIBUQGCAWEBgMBgUgFSAFQTBsIgFqKAIAEBggASAWaigCABAYIAVBAWohBQwBCwALAAUgAkHgCWogCkEwbCIEIAEoAhAoAggoAgBqQTAQHxogBCAVaiIFIAIoAuQJIgY2AgQgBCAWaiIEIAY2AgQgBSAGQRAQSiIQNgIAIAQgAigC5AlBEBBKIgk2AgAgAigC5AlBAWshDiACKALgCSILKwMIIRsgCysDACEcQQAhBQNAIAUgDkkEQCALIAVBAWpBBHQiDWoiBCsDCCEkIAQrAwAhJQJAIAVFBEAgEEQAAAAAAAAAQCAcICWhIhkgGaIgGyAkoSIaIBqioEQtQxzr4jYaP6CfoyIYIBmaojkDCCAQIBogGKI5AwAMAQsgECAFQQR0aiIERAAAAAAAAABAICIgJaEiGSAZoiAjICShIhogGqKgRC1DHOviNho/oJ+jIhggGZqiOQMIIAQgGiAYojkDAAsgCyAFQQNqIgRBBHRqIgYrAwghGiAGKwMAIRggECAFQQJqQQR0IghqIgxEAAAAAAAAAEAgJSAIIAtqIgYrAwAiIqEiHSAkIAYrAwgiI6EiHhBQIhlELUMc6+I2Gj9jBHwgHCAYoSIdIB2iIBsgGqEiHiAeoqBELUMc6+I2Gj+gnwUgGQujIhkgHZqiIh05AwggDCAZIB6iIhk5AwAgDSAQaiIPIAwpAwg3AwggDyAMKQMANwMAIAkgBUEEdCIFaiIGICEgBSAQaiIFKwMAoiAcoDkDACAGICEgBSsDCKIgG6A5AwggCSANaiIFICEgDysDAKIgJaA5AwAgBSAhIA8rAwiiICSgOQMIIAggCWoiBSAhIB2iICOgOQMIIAUgISAZoiAioDkDACAYIRwgGiEbIAQhBQwBCwsgECAFQQR0IgVqIgREAAAAAAAAAEAgIiAcoSIaIBqiICMgG6EiGSAZoqBELUMc6+I2Gj+gn6MiGCAamqIiGjkDCCAEIBkgGKIiGDkDACAFIAlqIgQgISAaoiAboDkDCCAEICEgGKIgHKA5AwAgCkEBaiEKDAELAAsAC0H10QFB58EBQbwRQbY3EAAACyAELQB0QQNxRQRAAkAgAy0AAARAIAAgAxBFDAELIABB8PoAEEUgCkHw+gAgCi0AABshCgsgACAKEF4LIAJBgApqIQogAkHwCWohBkEAIQUDQCAFIAEoAhAoAggiAygCBE8NASACQeAJaiADKAIAIAVBMGxqQTAQHxogACACKALgCSACKALkCUEAEIkCIAIoAugJIgQEQCACIAYpAwg3A9gBIAIgBikDADcD0AEgAiACKALgCSIDKQMINwPIASACIAMpAwA3A8ABIABBAiACQdABaiACQcABaiAgIB8gBBDsAgsgAigC7AkiBARAIAIgCikDCDcDuAEgAiAKKQMANwOwASACIAIoAuAJIAIoAuQJQQR0akEQayIDKQMINwOoASACIAMpAwA3A6ABIABBAyACQbABaiACQaABaiAgIB8gBBDsAgsCQCATRSABKAIQKAIIKAIEQQJJcg0AIAIoAugJIAIoAuwJckUNACAAIA4Q5gELIAVBAWohBQwACwALIBcQ7wIQGCAXEBggAkHIEGoQXyAAKAIQIgYoAgghBQJAIAYoAtgBRQRAIAYtAIwCQQFxRQ0BCyAAEJgCIAYoApwCIgtFDQAgBigCoAIiBCgCACEIQQEhAwNAIAMgC08NASAGIAQgA0ECdCIBaigCADYClAIgBiAGKAKkAiAIQQR0ajYCmAIgACAGKALYASAGKALsASAGKAL8ASAGKALcARDGASAAEJgCIANBAWohAyABIAYoAqACIgRqKAIAIAhqIQggBigCnAIhCwwACwALIAZCADcClAIgACAFKAIQIgMoAggiAQR/IAYoAuQBIQMgBi8BjAIhBCACIAEoAgAiAUEQaiABKAIAIAEoAggbIgEpAwg3AxggAiABKQMANwMQIAAgAkEQaiAEQYABcUEHdiADIARBAnFBAXYQjgkgBigC6AEhAyAGLwGMAiEEIAIgBSgCECgCCCIBKAIAIAEoAgRBMGxqIgEgAUEwaygCACABQSxrKAIAQQR0aiABQSRrKAIAG0EQayIBKQMINwMIIAIgASkDADcDACAAIAIgBEGAAnFBCHYgAyAEQQRxQQJ2EI4JIAUoAhAFIAMLKAJgQQsgBi8BjAJBA3ZBAXEgBigC4AEgBigC8AEgBigCgAIgBigC3AEgBUGg4wooAgBB95sBEHwQagR/IAUoAhAoAggFQQALEOkEIAAgBSgCECgCbEELIAYvAYwCQQN2QQFxIAYoAuABIAYoAvABIAYoAoACIAYoAtwBIAVBoOMKKAIAQfebARB8EGoEfyAFKAIQKAIIBUEACxDpBCAAIAUoAhAoAmRBByAGLwGMAkECdkEBcSAGKALoASAGKAL4ASAGKAKIAiAGKALcAUEAEOkEIAAgBSgCECgCaEEGIAYvAYwCQQF2QQFxIAYoAuQBIAYoAvQBIAYoAoQCIAYoAtwBQQAQ6QQCQCAAKAI8IgFFDQAgASgCRCIBRQ0AIAAgAREBAAsgABCWBAsgAkGwEWokAAuZAgEDfyMAQfAAayIDJAAgA0IANwNoIANCADcDYCABQgA3AgACQCAAIANB4ABqIgUQ7QQNACADKAJoIgBBAkkNACAFEMYDKAIARQ0AIABBAkcEQEHwoQRBABArCyABIANB4ABqIgAQxgMoAgAQZjYCACADQcgAaiAAQQEQmgIgAygCSARAIANBMGogAEEBEJoCIAEgAygCMBBmNgIECyACAnwgA0HgAGoiABDGAy0AEEEBRgRAIAAQxgMrAwgMAQsgA0EYaiADQeAAaiIAQQEQmgJEAAAAAAAAAAAgAy0AKEEBRw0AGiADIABBARCaAkQAAAAAAADwPyADKwMIoQs5AwBBASEECyADQeAAahCVBCADQfAAaiQAIAQLFQAgACABQRhBsSpBpANB58EBEKYEC2MBAn8jAEEgayICJAADQCABIAAoAghPRQRAIAJBCGogACABEJoCIAIoAggQGCAAIAEQlAQaIAFBAWohAQwBCwsgAEIANwIEIAAoAgAQGCAAQgA3AgggAEIANwIAIAJBIGokAAuvAQEBfyAAKAIQIgFFBEBBmvwAQefBAUGGAUHYmQEQAAALIAEoAtwBEBggASgC2AEQGCABKALgARAYIAEoAuQBEBggASgC6AEQGCABKALsARAYIAEoAvABEBggASgC9AEQGCABKAL4ARAYIAEoAvwBEBggASgCgAIQGCABKAKEAhAYIAEoAogCEBggASgCmAIQGCABKAKkAhAYIAEoAqACEBggACABKAIANgIQIAEQGAueAQECf0G4AhCPAyIBIAAoAhAiAjYCACAAIAE2AhAgAgRAIAFBEGogAkEQakEoEB8aIAFBOGogAkE4akEoEB8aIAEgAigCmAE2ApgBIAEgAigCnAE2ApwBIAEgAisDoAE5A6ABIAEgAigCiAE2AogBIAFB4ABqIAJB4ABqQSgQHxogAQ8LIAFCgICAgICAgPg/NwOgASABQgM3A5gBIAEL4wMCCH8CfiMAQSBrIgYkAEGs5gooAgAhAwJAAkACQCAAKAIEIgVBA2xBAmsiB0Go5gooAgAiBEsEQCAEQf////8ATw0BIAdBgICAgAFPDQIgAyAHQQR0IgIQOiIDRQ0DIARBBHQiBCACSQRAIAMgBGpBACACIARrEDMaC0Go5gogBzYCAEGs5gogAzYCAAsgAyAAKAIAIgApAwA3AwAgAyAAKQMINwMIIAApAwAhCiADIAApAwg3AxggAyAKNwMQQQIhBEECIAUgBUECTRtBAWshCUEBIQUDQCAFIAlGRQRAIAMgBEEEdGoiAiAAIAVBBHRqIggpAwA3AwAgAiAIKQMINwMIIAgpAwAhCiACIAgpAwgiCzcDGCACIAo3AxAgAiAKNwMgIAIgCzcDKCAEQQNqIQQgBUEBaiEFDAELCyADIARBBHRqIgIgACAJQQR0aiIAKQMANwMAIAIgACkDCDcDCCAAKQMAIQogAiAAKQMINwMYIAIgCjcDECABIAM2AgAgASAHNgIEIAZBIGokAA8LQd/JA0GYhQFBzQBB77oBEAAACyAGQRA2AgQgBiAHNgIAQbj8CCgCAEGE9AMgBhAeGhAoAAsgBiACNgIQQbj8CCgCAEHT8wMgBkEQahAeGhAoAAt4AQR/IwBBEGsiBiQAA0AgBCgCACIHBEAgBCgCBCEIIARBCGohBCAAAn8gByACIANBCEHhARDvAyIJBEAgASAIIAkoAgQRAAAgACgCIHIMAQsgBiAFNgIEIAYgBzYCAEH0wQQgBhArQQELNgIgDAELCyAGQRBqJAALRAEDfwNAIAAoAgAhAiAAKAIQKAIIIQMgASAAKAIIT0UEQCACIAFBAnRqKAIAIAMRAQAgAUEBaiEBDAELCyACIAMRAQALSwECf0F/IQECQCAAQQh1IgJB2AFrQQhJDQACQCACQf8BRwRAIAINASAAQeiICGotAAANAQwCCyAAQX5xQf7/A0YNAQsgACEBCyABC9EBAQF/AkAgAEEASA0AIABB/wBNBEAgASAAOgAAQQEPCyAAQf8PTQRAIAEgAEE/cUGAAXI6AAEgASAAQQZ2QcABcjoAAEECDwsgAEH//wNNBEAgASAAQT9xQYABcjoAAiABIABBDHZB4AFyOgAAIAEgAEEGdkE/cUGAAXI6AAFBAw8LIABB///DAEsNACABIABBP3FBgAFyOgADIAEgAEESdkHwAXI6AAAgASAAQQZ2QT9xQYABcjoAAiABIABBDHZBP3FBgAFyOgABQQQhAgsgAgtaAQJ/IAAoApgBIQEDQCABBEAgASgCBCABKALIBBAYIAEoAswEEBggARAYIQEMAQsLQdjlCkEANgIAQdzlCkEANgIAIABBADYCuAEgAEIANwOYASAAQQA2AhwLnwwCCH8IfCMAQTBrIgYkAAJAIAEEQCABKwMQIQ4gASsDACERIAYgASsDCCIVIAErAxgiE6BEAAAAAAAA4D+iIhI5AyggBiARIA6gRAAAAAAAAOA/oiIUOQMgDAELIAZCADcDKCAGQgA3AyAgABAvIQcgACgCECIIKwNYIg8gCCsDUEQAAAAAAADgP6IiECAHKAIQLQB0QQFxIgcbIRMgECAPIAcbIQ4gD5oiDyAQmiIQIAcbIRUgECAPIAcbIRELIAFBAEchDSAOIBMQIiEQQQEhC0QAAAAAAAAAACEPAkACQCADRQ0AIAMtAAAiDEUNACAQRAAAAAAAABBAoiEQQQAhCEEAIQcCQAJ/AkACQAJAAkACQAJAAkACQCAMQd8Aaw4HBAcHBwsHAQALIAxB8wBrDgUBBgYGAgQLIAMtAAENBQJAIAUEQCAGQSBqIAUgEiAQEOYCDAELIAYgDjkDIAsgBEECcSEHQQEhCQwHCyAGIBU5AyggAy0AASIDQfcARwRAIANB5QBHBEAgAw0FIAUEQCAGQSBqIAUgEJogFBDmAgtBASEJIARBAXEhB0QYLURU+yH5vyEPDAgLAkAgBQRAIAZBIGogBSAQmiAQEOYCDAELIAYgDjkDIAsgBEEDcSEHQQEhCUQYLURU+yHpvyEPDAcLAkAgBQRAIAZBIGogBSAQmiIOIA4Q5gIMAQsgBiAROQMgCyAEQQlxIQdBASEJRNIhM3982QLAIQ8MBgsgAy0AAQ0DAkAgBQRAIAZBIGogBSASIBCaEOYCDAELIAYgETkDIAsgBEEIcSEHQQEhCUQYLURU+yEJQCEPDAULQQEhCiAEDAMLIAxB7gBHDQEgBiATOQMoIAMtAAEiA0H3AEcEQCADQeUARwRAIAMNAiAFBEAgBkEgaiAFIBAgFBDmAgsgBEEEcSEHQQEhCUQYLURU+yH5PyEPDAULAkAgBQRAIAZBIGogBSAQIBAQ5gIMAQsgBiAOOQMgCyAEQQZxIQdBASEJRBgtRFT7Iek/IQ8MBAsCQCAFBEAgBkEgaiAFIBAgEJoQ5gIMAQsgBiAROQMgCyAEQQxxIQdBASEJRNIhM3982QJAIQ8MAwsgBiASOQMoC0EBIQhBAAshBwwCC0EAIQtBASENDAELQQAhCEEAIQcLIAAQLygCECgCdCEDIAYgBikDKDcDCCAGIAYpAyA3AwAgBkEQaiAGIANBA3FB2gBsEM8KIAYgBikDGDcDKCAGIAYpAxA3AyACQCAKDQACQAJAAkAgABAvKAIQKAJ0QQNxQQFrDgMBAAIDCwJAAkAgB0EBaw4EAQQEAAQLQQEhBwwDC0EEIQcMAgsgB0EBayIDQf8BcSIEQQhPQYsBIAR2QQFxRXINAUKIgoiQoMCAgQQgA0EDdK1C+AGDiKchBwwBCyAHQQFrIgNB/wFxIgRBCE9BiwEgBHZBAXFFcg0AQoiIiJCgwICBASADQQN0rUL4AYOIpyEHCyACIAE2AhggAiAHOgAhIAIgBikDIDcDACACIAYpAyg3AwggDyEOAkACQAJAAkAgABAvKAIQKAJ0QQNxQQFrDgMBAAIDCyAPmiEODAILIA9EGC1EVPsh+b+gIQ4MAQsgD0QYLURU+yEJQGEEQEQYLURU+yH5vyEODAELIA9E0iEzf3zZAkBhBEBEGC1EVPsh6b8hDgwBC0QYLURU+yH5PyEOIA9EGC1EVPsh+T9hBEBEAAAAAAAAAAAhDgwBCyAPRAAAAAAAAAAAYQ0AIA9EGC1EVPsh6b9hBEBE0iEzf3zZAkAhDgwBCyAPIg5EGC1EVPsh+b9iDQBEGC1EVPshCUAhDgsgAiAOOQMQIAYrAyghDgJ/IAYrAyAiD0QAAAAAAAAAAGEEQEGAASAORAAAAAAAAAAAYQ0BGgsgDiAPEK0BRNIhM3982RJAoCIORBgtRFT7IRnAoCAOIA5EGC1EVPshGUBmG0QAAAAAAABwQKJEGC1EVPshGUCjIg6ZRAAAAAAAAOBBYwRAIA6qDAELQYCAgIB4CyEBIAIgCToAHSACIAE6ACAgAiAKOgAfIAIgCzoAHiACIA06ABwgBkEwaiQAIAgLpAEBBn8CQCAABEAgAUUNASABIAIQ3wYhBSAAKAIAIgYEQEEBIAAoAgh0IQQLIARBAWshBwNAAkBBACEAIAMgBEYNAAJAAkAgBiADIAVqIAdxQQJ0aigCACIIQQFqDgIBAgALIAEgAiAIIgAQyAkNAQsgA0EBaiEDDAELCyAADwtBp9oBQYXDAUHiAUHpqwEQAAALQcDaAUGFwwFB4wFB6asBEAAACxoBAX8Q0AMhAEG35QotAABBrOUKKAIAIAAbC1QBAXwgACgCECIAIABBKEEgIAEbaisDAEQAAAAAAABSQKJEAAAAAAAA4D+iIgI5A1ggACACOQNgIAAgAEEgQSggARtqKwMARAAAAAAAAFJAojkDUAvQAQECfyMAQSBrIgEkACABQgA3AxAgAUIANwMIA0AgASAAQQFqNgIcIAAtAAAiAARAAkACQCAAQSZHDQAgAUEcahCoCiIADQBBJiEADAELIABB/gBNDQAgAEH+D00EQCABQQhqIABBBnZBQHIQnAEgAEE/cUGAf3IhAAwBCyABQQhqIgIgAEEMdkFgchCcASACIABBBnZBP3FBgH9yEJwBIABBP3FBgH9yIQALIAFBCGogAMAQnAEgASgCHCEADAELCyABQQhqEJwDIAFBIGokAAswACABEC8gASACQQBBARBgIgFBuStBuAFBARA1GiAAIAEQvAUgASgCEEEBOgBxIAELpwIBB38jAEEQayIKJAACQCAABEACQCAAKAIIIgggACgCDCIFRwRAIAAoAgAhBiAAKAIEIQcMAQsgCEEBdEEBIAgbIgVB/////wNLBEBBxAAhAAwDCyAAKAIAIAVBAnQQOiIGRQRAQTAhAAwDCyAGIAAoAgwiCUECdGpBACAFIAlrQQJ0EDMaIAkgACgCCCIIIAAoAgQiB2pJBEAgB0ECdCELIAYgBSAJIAdrIglrIgdBAnRqIAYgC2ogCUECdBBTGiAAIAc2AgQLIAAgBTYCDCAAIAY2AgALIAYgByAIaiAFcEECdGogATYCACAAIAhBAWo2AgggCkEQaiQADwtBidoBIAQgAyACEAAACyAKIAAQeDYCAEG4/AgoAgBB2ooEIAoQHhoQKAALSQACQCAABEAgASAAKAIITw0BIAAoAgAgACgCBCABaiAAKAIMcEECdGooAgAPC0GJ2gEgBCADIAIQAAALQcK8AyAEIAMgAhAAAAsxACAAKAIIIAFNBEBBwrwDIAUgBCADEAAACyAAKAIAIAAoAgQgAWogACgCDHAgAmxqCwkAIABBBBDhCwsLACAEIAI2AgBBAws5AQJ/IwBBEGsiAyQAIANBDGoiBCABEFEgAiAEEN0DIgEQywE2AgAgACABEMoBIAQQTiADQRBqJAALNwECfyMAQRBrIgIkACACQQxqIgMgABBRIAMQzQFB8LcJQYq4CSABEMoCIAMQTiACQRBqJAAgAQs5AQJ/IwBBEGsiAyQAIANBDGoiBCABEFEgAiAEEN8DIgEQywE6AAAgACABEMoBIAQQTiADQRBqJAALpwEBBH8jAEEQayIFJAAgARA8IQIjAEEQayIDJAACQCACQff///8HTQRAAkAgAhCuBQRAIAAgAhDUASAAIQQMAQsgA0EIaiACEOIDQQFqEOEDIAMoAgwaIAAgAygCCCIEEPwBIAAgAygCDBD7ASAAIAIQvwELIAQgASACEK0CIANBADoAByACIARqIANBB2oQ0wEgA0EQaiQADAELEMwBAAsgBUEQaiQAC/cGAQt/IwBBMGsiBiQAIAEtAAAiAUEEcSELIAFBCHEhDCABQQFxIQogAUECcSENA0AgACIHLQAAIgQEQCAIIQkgBMAhCCAHQQFqIQACfwJAAkACQAJAAkACQCAEQTxrDgMBBAIACyAEQS1GDQIgBEEmRw0DAkAgCg0AIAAtAAAiBUE7Rg0AIAAhAQJAIAVBI0YEQCAHLQACQSByQfgARwRAIAdBAmohAQNAIAEsAAAhBSABQQFqIQEgBUEwa0EKSQ0ACwwCCyAHQQNqIQEDQAJAIAEtAAAiBcBBMGtBCkkNACAFQf8BcSIOQeEAa0EGSQ0AIA5BwQBrQQVLDQMLIAFBAWohAQwACwALA0AgAS0AACEFIAFBAWohASAFQd8BccBBwQBrQRpJDQALCyAFQf8BcUE7Rg0ECyADQdvmASACEQAADAULIANB0eYBIAIRAAAMBAsgA0HW5gEgAhEAAAwDCyANRQ0BIANB7OYBIAIRAAAMAgsgCUH/AXFBIEcgCEEgR3JFBEAgC0UNASADQf7mASACEQAADAILAkACQAJAAkAgBEEKaw4EAQMDAgALIARBJ0cEQCAEQSJHDQMgA0HK5gEgAhEAAAwFCyADQebmASACEQAADAQLIApFDQIgA0GF5wEgAhEAAAwDCyAKRQ0BIANB+OYBIAIRAAAMAgsgDEUgCEEATnINAAJ/QQIgBEHgAXFBwAFGDQAaQQMgBEHwAXFB4AFGDQAaIARB+AFxQfABRkECdAsiCUUhBUEBIQEDQCAFQQFxIgRFIAEgCUlxBEAgASAHai0AAEUhBSABQQFqIQEMAQUgBEUEQCAGAn8CQAJAAkACQCAJQQJrDgMDAAECCyAHLQACQT9xIActAAFBP3FBBnRyIAhBD3FBDHRyDAMLIActAANBP3EgBy0AAkE/cUEGdHIgBy0AAUE/cUEMdHIgCEEHcUESdHIMAgsgBkGhATYCBCAGQcvEATYCAEG4/AgoAgBB98gEIAYQHhoQbAALIAAtAABBP3EgCEEfcUEGdHILNgIQIAZBI2oiAUENQcPmASAGQRBqEKEBGiAAIAlqQQFrIQAgAyABIAIRAAAMBAsLC0Hz6wRBLUEBQbj8CCgCABBMGhAoAAsgBkEAOgAkIAYgCDoAIyADIAZBI2ogAhEAAAtBAE4NAQsLIAZBMGokAAuwBAEEfyMAQRBrIgQkAAJAAkAgAARAIAFFDQECQCABQdHBABBlDQAgAUHAyAEQZQ0AIAFBthcQZQ0AIAFBscgBEGVFDQMLIAEtAAAhAiAEQbYDNgIAAkAgAEHBhCBBgIAgIAJB9wBGGyAEEJcMIgNBAEgNACMAQSBrIgIkAAJ/AkACQEGxyQEgASwAABDPAUUEQEHgjwtBHDYCAAwBC0GYCRBIIgANAQtBAAwBCyAAQQBBkAEQMxogAUErEM8BRQRAIABBCEEEIAEtAABB8gBGGzYCAAsCQCABLQAAQeEARwRAIAAoAgAhAQwBCyADQQNBABAFIgFBgAhxRQRAIAIgAUGACHKsNwMQIANBBCACQRBqEAUaCyAAIAAoAgBBgAFyIgE2AgALIABBfzYCUCAAQYAINgIwIAAgAzYCPCAAIABBmAFqNgIsAkAgAUEIcQ0AIAIgAkEYaq03AwAgA0GTqAEgAhAJDQAgAEEKNgJQCyAAQfoDNgIoIABB+wM2AiQgAEH8AzYCICAAQf0DNgIMQemPCy0AAEUEQCAAQX82AkwLIABBwJELKAIAIgE2AjggAQRAIAEgADYCNAtBwJELIAA2AgAgAAshBSACQSBqJAAgBQ0AQeCPCygCACEAIAMQxgdB4I8LIAA2AgBBACEFCyAEQRBqJAAgBQ8LQa7bAUGaxAFBIUHL6wAQAAALQdjbAUGaxAFBIkHL6wAQAAALQfazA0GaxAFBJEHL6wAQAAALzwMCBX8BfiMAQdAAayIDJAACf0EAIAJFDQAaIANByABqIAJBOhDVASAAIAFBAnRqKAJAIQQCQCADKAJMIgcgAygCSGotAABBOkYEQCAEIQFBASEGA0AgAQRAIANBQGsgASgCBEE6ENUBQQAhBSAEIQIDQCABIAJGBEACQCAFQQFxDQAgBwRAIAMgAykCSDcDMCADIAMpAkA3AyggA0EwaiADQShqEKsHRQ0BCyABKAIEIQAgAyABKAIMKAIINgIkIAMgADYCIEHI5ApB8DggA0EgahCUAUEAIQYLIAEoAgAhAQwDBUEAIQAgASgCBCACKAIEEC4Ef0EBBSABKAIMKAIIIAIoAgwoAggQLgtFIAVBAXFyIQUgAigCACECDAELAAsACwsgBkUNAQsgA0IANwNAQQEhAUEAIQIDQCAEBEAgA0E4aiAEKAIEQToQ1QECQCACBEAgAyADKQNANwMYIAMgAykDODcDECADQRhqIANBEGoQqwcNAQsgAyADKQM4QiCJNwMAQcjkCkGPOCADEJQBQQAhAQsgAyADKQM4Igg3A0AgCKchAiAEKAIAIQQMAQsLQeaKBSABQQFxDQEaC0HI5AoQrAILIANB0ABqJAALFwAgACADNgIQIAAgAjYCDCAAIAE2AggLEgAgACABIAJC/////w8QvgWnCw0AIAAgASACQQEQyQcLzAEBA38jAEEgayIDQgA3AxggA0IANwMQIANCADcDCCADQgA3AwAgAS0AACICRQRAQQAPCyABLQABRQRAIAAhAQNAIAEiA0EBaiEBIAMtAAAgAkYNAAsgAyAAaw8LA0AgAyACQQN2QRxxaiIEIAQoAgBBASACdHI2AgAgAS0AASECIAFBAWohASACDQALAkAgACIBLQAAIgJFDQADQCADIAJBA3ZBHHFqKAIAIAJ2QQFxRQ0BIAEtAAEhAiABQQFqIQEgAg0ACwsgASAAawuAAQEEfyAAIABBPRDBBSIBRgRAQQAPCwJAIAAgASAAayIEai0AAA0AQeSPCygCACIBRQ0AIAEoAgAiAkUNAANAAkAgACACIAQQ6gFFBEAgASgCACAEaiICLQAAQT1GDQELIAEoAgQhAiABQQRqIQEgAg0BDAILCyACQQFqIQMLIAMLCQAgAL1CNIinC5kBAQN8IAAgAKIiAyADIAOioiADRHzVz1o62eU9okTrnCuK5uVavqCiIAMgA0R9/rFX4x3HPqJE1WHBGaABKr+gokSm+BARERGBP6CgIQUgACADoiEEIAJFBEAgBCADIAWiRElVVVVVVcW/oKIgAKAPCyAAIAMgAUQAAAAAAADgP6IgBCAFoqGiIAGhIARESVVVVVVVxT+ioKELkgEBA3xEAAAAAAAA8D8gACAAoiICRAAAAAAAAOA/oiIDoSIERAAAAAAAAPA/IAShIAOhIAIgAiACIAJEkBXLGaAB+j6iRHdRwRZswVa/oKJETFVVVVVVpT+goiACIAKiIgMgA6IgAiACRNQ4iL7p+qi9okTEsbS9nu4hPqCiRK1SnIBPfpK+oKKgoiAAIAGioaCgC40BACAAIAAgACAAIAAgAEQJ9/0N4T0CP6JEiLIBdeDvST+gokQ7j2i1KIKkv6CiRFVEiA5Vwck/oKJEfW/rAxLW1L+gokRVVVVVVVXFP6CiIAAgACAAIABEgpIuscW4sz+iRFkBjRtsBua/oKJEyIpZnOUqAECgokRLLYocJzoDwKCiRAAAAAAAAPA/oKMLTgEBf0EBQRwQGSIGIAU6ABQgBiAAIAEQsgE2AggCfyADBEAgACACENYCDAELIAAgAhCyAQshBSAGIAA2AhggBiAENgIQIAYgBTYCDCAGCxUAIAAgAUECQYMpQcgAQZPFARCiAgtqAgF/AnwjAEEgayIDJAACQCAAIAIQJiIARQ0AIAMgA0EQajYCBCADIANBGGo2AgAgAEGijAEgAxBPQQJHDQAgAysDGCEEIAMrAxAhBSABQQE6AFEgASAFOQNAIAEgBDkDOAsgA0EgaiQAC0QBAX8gAEHGK0HAAkEBEDUaIAAQigUgABAvKAIQLwGwAUEIEBkhASAAKAIQIAE2ApQBIAAgABAvKAIQKAJ0QQFxEKEEC1sBAX8gACgCBCIDIAFLBEAgA0EhTwR/IAAoAgAFIAALIAFBA3ZqIgAgAC0AACIAQQEgAUEHcSIBdHIgAEF+IAF3cSACGzoAAA8LQfC6A0HbgQFB0QBBpiIQAAALuAMBCXwCQAJAQQFBf0EAIAArAwgiCCABKwMIIgmhIgUgAisDACILIAErAwAiBKGiIAIrAwgiCiAJoSAAKwMAIgYgBKEiDKKhIgdELUMc6+I2Gr9jGyAHRC1DHOviNho/ZBsiAA0AIAQgBmIEQEEBIQEgBiALYyAEIAtkcQ0CIAQgC2NFIAYgC2RFcg0BDAILQQEhASAIIApjIAkgCmRxDQEgCCAKZEUNACAJIApjDQELAkBBAUF/QQAgBSADKwMAIgUgBKGiIAMrAwgiByAJoSAMmqKgIgxELUMc6+I2Gr9jGyAMRC1DHOviNho/ZBsiAg0AIAQgBmIEQEEBIQEgBSAGZCAEIAVkcQ0CIAQgBWNFIAUgBmNFcg0BDAILQQEhASAHIAljIAcgCGRxDQEgByAIY0UNACAHIAlkDQELIAAgAmxBAUF/QQAgCiAHoSIKIAYgBaGiIAggB6EgCyAFoSIGoqEiCEQtQxzr4jYav2MbIAhELUMc6+I2Gj9kG0EBQX9BACAKIAQgBaGiIAkgB6EgBqKhIgRELUMc6+I2Gr9jGyAERC1DHOviNho/ZBtscUEfdiEBCyABC+YBAgV/AnwjAEEwayICJAAgACgCBCIEQQFrIQYgACgCACEFA0AgBCADIgBHBEAgAiAFIAAgBmogBHBBBHRqIgMpAwg3AyggAiADKQMANwMgIAIgBSAAQQR0aiIDKQMINwMYIAIgAykDADcDECACIAEpAwg3AwggAiABKQMANwMAIABBAWohA0EBQX9BACACKwMoIAIrAxgiB6EgAisDACACKwMQIgihoiACKwMIIAehIAIrAyAgCKGioSIHRC1DHOviNhq/YxsgB0QtQxzr4jYaP2QbQQFHDQELCyACQTBqJAAgACAETwsPACAAIABByOIAECYQlg0LOQEBf0EBQSgQGSIDQQA2AiAgAyACOgAMIAMgATYCCCADQQA2AhAgAyAAKAIANgIkIAAgAzYCACADC48GAg9/AX0jAEEQayIJJAAgAkEAIAJBAEobIQsgAhDAASEHA0AgBCALRgRAIAMgAEECdGpBADYCAEEBIAEgAEEUbGoiCigCACIEIARBAU0bIQVBASEEA0AgBCAFRgRAQQAhBEEAIQUgAkEBRwRAIAJBAWsiCBDAASEFCyAJIAg2AgwgCSAFNgIIQQAhBgNAIAQgC0ZFBEAgACAERwRAIAUgBkECdGogBDYCACAHIARBAnRqIAY2AgAgBkEBaiEGCyAEQQFqIQQMAQsLIAhBAm0hBANAIARBAEgEQCAFQQRrIQ5B/////wchAANAAkAgCEUNACAFKAIAIQQgBSAOIAhBAnRqKAIAIgI2AgAgByACQQJ0akEANgIAIAkgCEEBayIINgIMIAlBCGpBACAHIAMQuw0gAyAEQQJ0aigCACIKQf////8HRg0AQQEhAkEBIAEgBEEUbGoiDSgCACIAIABBAU0bIQ8DQCACIA9GBEAgCiEADAMLAn8gAkECdCIAIA0oAghqKgIAIhOLQwAAAE9dBEAgE6gMAQtBgICAgHgLIApqIgYgAyANKAIEIABqKAIAIhBBAnQiAGoiDCgCAEgEQCAAIAdqIhEoAgAhBCAMIAY2AgADQAJAIARBAEwNACADIAUgBEEBdiIAQQJ0aigCACIMQQJ0IhJqKAIAIAZMDQAgBSAEQQJ0aiAMNgIAIAcgEmogBDYCACAAIQQMAQsLIAUgBEECdGogEDYCACARIAQ2AgALIAJBAWohAgwACwALCyAAQQpqIQBBACEEA0AgBCALRwRAIAMgBEECdGoiASgCAEH/////B0YEQCABIAA2AgALIARBAWohBAwBCwsgBRAYIAcQGCAJQRBqJAAFIAlBCGogBCAHIAMQuw0gBEEBayEEDAELCwUgAyAEQQJ0IgYgCigCBGooAgBBAnRqAn8gCigCCCAGaioCACITi0MAAABPXQRAIBOoDAELQYCAgIB4CzYCACAEQQFqIQQMAQsLBSADIARBAnRqQf////8HNgIAIARBAWohBAwBCwsL+wMDCX8BfQJ8IANBBBAZIQUgA0EEEBkhBiADQQQQGSEIIANBBBAZIQogAyABEIUDIAMgAhCFAyAAIAMgASAKEIQDIAMgChCFAyADQQAgA0EAShshCQNAIAcgCUcEQCAFIAdBAnQiC2ogAiALaioCACAKIAtqKgIAkzgCACAHQQFqIQcMAQsLIAMgBSAGEL8NIARBACAEQQBKGyEHIARBAWshCyADIAUgBRDQAiEPQQAhAgNAAkACQAJAIAIgB0YNAEEAIQQgA0EAIANBAEobIQlDyvJJ8SEOA0AgBCAJRwRAIA4gBSAEQQJ0aioCAIsQyQUhDiAEQQFqIQQMAQsLIA67RPyp8dJNYlA/ZEUNACADIAYQhQMgAyABEIUDIAMgBRCFAyAAIAMgBiAIEIQDIAMgCBCFAyADIAYgCBDQAiIQRAAAAAAAAAAAYQ0AIAMgASAPIBCjtiIOIAYQ5QUgAiALTg0CIAMgBSAOjCAIEOUFIAMgBSAFENACIRAgD0QAAAAAAAAAAGINAUHsjARBABA2QQEhDAsgBRAYIAYQGCAIEBggChAYIAwPCyAQIA+jtiEOQQAhBAN8IAMgBEYEfCAQBSAGIARBAnQiCWoiDSAOIA0qAgCUIAUgCWoqAgCSOAIAIARBAWohBAwBCwshDwsgAkEBaiECDAALAAs+AgJ/AX0gAEEAIABBAEobIQADQCAAIAJGRQRAIAEgAkECdGoiAyADKgIAIgQgBJQ4AgAgAkEBaiECDAELCws7ACABQQFqIQEDQCABBEAgACACIAMrAwCiIAArAwCgOQMAIAFBAWshASAAQQhqIQAgA0EIaiEDDAELCwsWAEF/IABBAnQgAEH/////A0sbEIsBCxsAIAAEQCAAKAIAEMcEIAAoAgQQxwQgABAYCwtZAQJ/IAAgACgCACICKAIEIgE2AgAgAQRAIAEgADYCCAsgAiAAKAIIIgE2AggCQCABKAIAIABGBEAgASACNgIADAELIAEgAjYCBAsgAiAANgIEIAAgAjYCCAtZAQJ/IAAgACgCBCICKAIAIgE2AgQgAQRAIAEgADYCCAsgAiAAKAIIIgE2AggCQCABKAIAIABGBEAgASACNgIADAELIAEgAjYCBAsgAiAANgIAIAAgAjYCCAs1AQF/QQgQ1AMQlwUiAEHI8gk2AgAgAEEEakG7OxCOByAAQYzzCTYCACAAQZjzCUHPAxABAAu0AgEMfyAAKAIAIAAoAgQQkwhFBEBBt6sDQfPeAEHAAEGE6wAQAAALIAAoAgAhBCAAKAIEIQUjAEEQayIHJAAgB0G/AzYCDCAFIARrQQJ1IghBAk4EQAJAIAdBDGohCSAEKAIAIQogBCEBIAhBAmtBAm0hCwNAIAJBAXQiDEEBciEGIAJBAnQgAWpBBGohAwJAIAggDEECaiICTARAIAYhAgwBCyACIAYgAygCACADKAIEIAkoAgARAAAiBhshAiADQQRqIAMgBhshAwsgASADKAIANgIAIAMhASACIAtMDQALIAVBBGsiBSABRgRAIAEgCjYCAAwBCyABIAUoAgA2AgAgBSAKNgIAIAQgAUEEaiIBIAkgASAEa0ECdRDuDQsLIAdBEGokACAAIAAoAgRBBGs2AgQLjwIBBH8gACgCIEEBRgRAIAAoAgwiBCAAKAIIIgVBAWpMBEAgACAAKAIUIAQgBUELaiIEQQQQigE2AhQgACAAKAIYIAAoAgwgBEEEEIoBNgIYIAAoAigiBgRAIAACfyAAKAIcIgcEQCAHIAAoAgwgBCAGEIoBDAELIAQgBhBKCzYCHAsgACAENgIMCyAFQQJ0IgQgACgCFGogATYCACAAKAIYIARqIAI2AgAgACgCKCIEBEAgACgCHCAEIAVsaiADIAQQHxoLIAAoAgAgAUwEQCAAIAFBAWo2AgALIAAoAgQgAkwEQCAAIAJBAWo2AgQLIAAgACgCCEEBajYCCA8LQaziAUH/vwFB/wlB1wwQAAAL2gEBAn8gAEUEQEEADwsgACgCACAAKAIEIAAoAgggACgCECAAKAIoIAAoAiAQhA4iASgCFCAAKAIUIAAoAgBBAnRBBGoQHxogACgCFCAAKAIAQQJ0aigCACICBEAgASgCGCAAKAIYIAJBAnQQHxoLIAAoAhwiAgRAIAEoAhwgAiAAKAIIIAAoAihsEB8aCyABIAEtACRBfnEgAC0AJEEBcXIiAjoAJCABIAJBfXEgAC0AJEECcXIiAjoAJCABIAJB+wFxIAAtACRBBHFyOgAkIAEgACgCCDYCCCABC5kCAQN/IAEoAhAiBCgCsAFFBEAgAUEwQQAgASgCAEEDcSIFQQNHG2ooAigoAhAoAvQBIgYgAUFQQQAgBUECRxtqKAIoKAIQKAL0ASIFIAUgBkgbIQYgBCACNgKwAQNAIAEoAhAhBQJAIANFBEAgAigCECEEDAELIAIoAhAiBCAELwGoASAFLwGoAWo7AagBCyAEIAQvAZoBIAUvAZoBajsBmgEgBCAEKAKcASAFKAKcAWo2ApwBIAYgAiACQTBrIgQgAigCAEEDcUECRhsoAigiBSgCECgC9AFHBEAgACAFELAOIAIgBCACKAIAQQNxQQJGGygCKCgCECgCyAEoAgAiAg0BCwsPC0Gv2QFB+8cBQYQBQfjqABAAAAttAQJ/AkAgACgCECIALQBUIgMgASgCECIBLQBURw0AAkAgACsDOCABKwM4YQRAIAArA0AgASsDQGENAQsgAw0BCyAAKwMQIAErAxBhBEBBASECIAArAxggASsDGGENAQsgAC0ALEEBcyECCyACCxUAIAAgASACQfIkQccAQcrCARDbCgsvAAJ/QQAgACgCECIALQCsAUEBRw0AGkEBIAAoAsQBQQFLDQAaIAAoAswBQQFLCwucEgIPfwZ+AkACQCABBEAgAkUNASACKAIAIgZBP0wEQCACQQhqIQhBACEDAkADQCADQcAARg0BIANBKGwgA0EBaiEDIAhqIgAoAiANAAsgACABQSgQHxogAiAGQQFqNgIAQQAPC0HV4gFBoMcBQaABQdGBARAAAAsgA0UNAiAAIQYjAEHwB2siBCQAAkAgAgRAIAEEQCAGQQhqIQkgAkEIaiEHIAIoAgQhEAJAA0ACQCAFQcAARgRAIAZBiBRqIAFBKBAfGiAGQcgUaiAJKQMYNwMAIAZBwBRqIAkpAxA3AwAgBkG4FGogCSkDCDcDACAGIAkpAwA3A7AUIAZBsBRqIQFBASEHA0AgB0HBAEYNAiAEIAEpAwg3A4gDIAQgASkDEDcDkAMgBCABKQMYNwOYAyAEIAEpAwA3A4ADIAQgCSAHQShsaiIAKQMINwPoAiAEIAApAxA3A/ACIAQgACkDGDcD+AIgBCAAKQMANwPgAiAEQeADaiAEQYADaiAEQeACahCNAyABIAQpA/gDNwMYIAEgBCkD8AM3AxAgASAEKQPoAzcDCCABIAQpA+ADNwMAIAdBAWohBwwACwALIAcgBUEobCIIaiIAKAIgRQ0CIAggCWogAEEoEB8aIAVBAWohBQwBCwsgBCABKQMYNwPYAiAEIAEpAxA3A9ACIAQgASkDCDcDyAIgBCABKQMANwPAAiAGIARBwAJqEI4DNwPQFCACEOgOIAZCADcD4BggBEIANwPoAyAEQoCAgICAgID4v383A/ADIARCgICAgICAgPg/NwPgAyAEQgA3A/gDIAZBoBlqIgggBCkD+AM3AwAgBkGYGWoiASAEKQPwAzcDACAGQZAZaiIAIAQpA+gDNwMAIAYgBCkD4AM3A4gZIAZCADcDqBkgBkGwGWpCADcDACAGQYAZaiAIKQMANwMAIAZB+BhqIAEpAwA3AwAgBkHwGGogACkDADcDACAGIAYpA4gZNwPoGCAGQdwWaiEPIAZBiBlqIQsgBkHoGGohDCAGQeAYaiERIAZB2BRqIRJBACEFA0AgBUHBAEcEQCAPIAVBAnQiAGpBADYCACAAIBJqQX82AgAgBUEBaiEFDAELC0EAIQUCQAJAAkADQCAFQcEARgRAAkBBACEAQQAhCANAIABBwABHBEAgCSAAQShsaiENIARB4ANqIABBA3RqIQcgAEEBaiIBIQUDQCAFQcEARgRAIAEhAAwDBSAEIA0pAwg3A4gCIAQgDSkDEDcDkAIgBCANKQMYNwOYAiAEIA0pAwA3A4ACIAQgCSAFQShsaiIKKQMINwPoASAEIAopAxA3A/ABIAQgCikDGDcD+AEgBCAKKQMANwPgASAEQcADaiAEQYACaiAEQeABahCNAyAEIAQpA9gDNwPYASAEIAQpA9ADNwPQASAEIAQpA8gDNwPIASAEIAQpA8ADNwPAASAEQcABahCOAyAHKQMAIARB4ANqIAVBA3RqKQMAfH0iEyAUIBMgFFYiChshFCAAIAggChshCCAFIA4gChshDiAFQQFqIQUMAQsACwALC0EAIQAgBiAIQQAQhQYgBiAOQQEQhQZBACEIA0ACQCAGKALkGCIHIAYoAuAYIgVqIQEgBUHAAEogB0HAAEpyIAFBwABKcg0AQgAhFEEAIQdBACEFA0AgBUHBAEYEQCAGIAggABCFBgwDBSAPIAVBAnRqKAIARQRAIAQgCSAFQShsaiIBKQMYNwP4AyAEIAEpAxA3A/ADIAQgASkDCDcD6AMgBCABKQMANwPgAyAEIAEpAwg3A6gBIAQgASkDEDcDsAEgBCABKQMYNwO4ASAEIAEpAwA3A6ABIAQgDCkDCDcDiAEgBCAMKQMQNwOQASAEIAwpAxg3A5gBIAQgDCkDADcDgAEgBEHAA2ogBEGgAWogBEGAAWoQjQMgBCAEKQPYAzcDeCAEIAQpA9ADNwNwIAQgBCkDyAM3A2ggBCAEKQPAAzcDYCAEQeAAahCOAyEWIAYpA6gZIRcgBCAEKQPoAzcDSCAEIAQpA/ADNwNQIAQgBCkD+AM3A1ggBCAEKQPgAzcDQCAEIAspAwg3AyggBCALKQMQNwMwIAQgCykDGDcDOCAEIAspAwA3AyAgBEGgA2ogBEFAayAEQSBqEI0DIAQgBCkDuAMiGDcD2AMgBCAEKQOwAyIVNwPQAyAEIAQpA6gDIhM3A8gDIAQgEzcDCCAEIBU3AxAgBCAYNwMYIAQgBCkDoAMiEzcDwAMgBCATNwMAIAQQjgMgBikDsBl9IhUgFiAXfSITVCEBAkAgFSATfSATIBV9IBMgFVQbIhMgFFggB3FFBEAgASEAIBMhFCAFIQgMAQsgEyAUUg0AIAUgCCARIAFBAnRqKAIAIBEgAEECdGooAgBIIgcbIQggASAAIAcbIQALQQEhBwsgBUEBaiEFDAELAAsACwsgAUHAAEwEQCAFQcAASiEAQQAhBQNAIAVBwQBHBEAgDyAFQQJ0aigCAEUEQCAGIAUgABCFBgsgBUEBaiEFDAELCyAGKALkGCEHIAYoAuAYIQULIAUgB2pBwQBHDQAgBSAHckEASA0DIAMQsAgiATYCACACIBA2AgQgASAQNgIEQQAhBQNAIAVBwQBHBEAgEiAFQQJ0aigCACIAQQJPDQYgBiAJIAVBKGxqIAEgAiAAG0EAENIEGiAFQQFqIQUMAQsLIAMoAgAoAgAgAigCAGpBwQBHDQUgBEHwB2okAAwJCwUgBCAJIAVBKGxqIgApAxg3A7gCIAQgACkDEDcDsAIgBCAAKQMINwOoAiAEIAApAwA3A6ACIARB4ANqIAVBA3RqIARBoAJqEI4DNwMAIAVBAWohBQwBCwtBi5QDQbTDAUG0AUHr4wAQAAALQcGeA0G0wwFBtgFB6+MAEAAAC0GhkgNBtMMBQYYCQfA2EAAAC0HjkwNBtMMBQcYAQe2mARAAAAtBz64BQbTDAUHdAEHFNRAAAAtBr8kBQbTDAUElQe2mARAAAAtBtfEAQbTDAUEkQe2mARAAAAtBAQ8LQa/JAUGgxwFBlAFB0YEBEAAAC0G18QBBoMcBQZUBQdGBARAAAAtBjhdBoMcBQaMBQdGBARAAAAusBQIQfwJ+IwBBEGsiBiQAQbCECygCACINKAIQIgcoAugBIQQDQAJAIAcoAuwBIARKBEAgBEHIAGwiACAHKALEAWoiAS0AMUEBRgRAIARBAWohBCABKQM4IRAMAgsgASgCBCEOQQAhASAAQbCECygCACgCECgCxAFqKAJIQQFqQQQQGSEIIA0oAhAiBygCxAEiDyAAaiIJKAIAIgBBACAAQQBKGyELIARBAWohBEIAIRBBACEDA0AgAyALRgRAQQAhAANAIAAgC0YEQAJAQQAhACAPIARByABsaiIBKAIAIgNBACADQQBKGyEDA0AgACADRg0BIAEoAgQgAEECdGooAgAoAhAiAi0AoQFBAUYEQCAGIAIpAsABNwMAIBAgBkF/EP0OrHwhEAsgAEEBaiEADAALAAsFIAkoAgQgAEECdGooAgAoAhAiAS0AoQFBAUYEQCAGIAEpAsgBNwMIIBAgBkEIakEBEP0OrHwhEAsgAEEBaiEADAELCyAIEBggCUEBOgAxIAkgEDcDOAwDBSAOIANBAnRqKAIAKAIQKALIASEMQQAhAgJAIAFBAEwNAANAIAwgAkECdGooAgAiBUUNASABIAVBUEEAIAUoAgBBA3FBAkcbaigCKCgCECgC+AEiACAAIAFIGyEKA0AgACAKRkUEQCAQIAggAEEBaiIAQQJ0aigCACAFKAIQLgGaAWysfCEQDAELCyACQQFqIQIMAAsAC0EAIQADQCAMIABBAnRqKAIAIgIEQCAIIAJBUEEAIAIoAgBBA3FBAkcbaigCKCgCECgC+AEiBUECdGoiCiAKKAIAIAIoAhAuAZoBajYCACAFIAEgASAFSBshASAAQQFqIQAMAQsLIANBAWohAwwBCwALAAsgBkEQaiQAIBEPCyAQIBF8IREMAAsAC4MBAQJ/IAAgAUEBEI8BIgEoAhBBADYCxAFBBRC+CCECIAEoAhAiA0EANgLMASADIAI2AsABQQUQvgghAiABKAIQIgMgAjYCyAFBpIQLKAIAIgIgACACGygCEEG4AUHAASACG2ogATYCACADIAI2ArwBQaSECyABNgIAIANBADYCuAEgAQu5AQEDfyAAIABBMGoiAiAAKAIAQQNxQQNGGygCKCgCECIBKALgASABKALkASIBQQFqIAFBAmoQwgEhASAAIAIgACgCAEEDcUEDRhsoAigoAhAgATYC4AEgACACIAAoAgBBA3FBA0YbKAIoKAIQIgEgASgC5AEiA0EBajYC5AEgASgC4AEgA0ECdGogADYCACAAIAIgACgCAEEDcUEDRhsoAigoAhAiACgC4AEgACgC5AFBAnRqQQA2AgALIAAgACABIAIgAEGljwEQJiIABH8gABCRAgVBHgsQug8LTAAgASgCEEHAAWohAQNAIAEoAgAiAQRAIAEoAhAoApgCEBggASgCECgCoAIQGCABKAIQIgFBADYCsAEgAUG4AWohAQwBCwsgABCvDws/AQJ/IAAoAhAoAqgCIQADQCAAIgEoAgwiAEUgACABRnJFBEAgACgCDCICRQ0BIAEgAjYCDCACIQAMAQsLIAELCwAgACABQQEQww8LCwAgACABQQAQww8LugIBB38jAEEQayIHJAACQAJAIAAoAggiBiAAKAIMIgJHBEAgACgCACEDIAAoAgQhBAwBCyAGQQF0QQEgBhsiAkH///8/SwRAQcQAIQAMAgsgACgCACACQQV0EDoiA0UEQEEwIQAMAgsgAyAAKAIMIgVBBXRqQQAgAiAFa0EFdBAzGiAFIAAoAggiBiAAKAIEIgRqSQRAIARBBXQhCCADIAIgBSAEayIFayIEQQV0aiADIAhqIAVBBXQQUxogACAENgIECyAAIAI2AgwgACADNgIACyADIAQgBmogAnBBBXRqIgIgASkDADcDACACIAEpAxg3AxggAiABKQMQNwMQIAIgASkDCDcDCCAAIAAoAghBAWo2AgggB0EQaiQADwsgByAAEHg2AgBBuPwIKAIAQdqKBCAHEB4aECgAC1wAIAEoAgggAk0EQEHCvANB+YIBQQhBqSUQAAALIAAgASgCACABKAIEIAJqIAEoAgxwQQV0aiIBKQMANwMAIAAgASkDGDcDGCAAIAEpAxA3AxAgACABKQMINwMIC9oCAQV8IAEgAEE4bGoiACsAECEDAnwgACsAGCIEIAArAAgiBURIr7ya8td6PqBkRSAAKwAAIgYgA2NFIAQgBURIr7ya8td6vqBjcnFF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5DoQAAALIABBAnRB6M4IaigCAAsXACAAKAIAIgAgASgCACIBSiAAIAFIawu0AgEGfyMAQRBrIgckAAJAIAAgASACEL0DRQRAIAAoAgQgAUEYbGoiACEBAkAgACgCECIGIAAoAhQiAEcEQCABKAIIIQMgASgCDCEEDAELIAZBAXRBASAGGyIAQf////8DSwRAQcQAIQEMAwsgASgCCCAAQQJ0EDoiA0UEQEEwIQEMAwsgAyABKAIUIgVBAnRqQQAgACAFa0ECdBAzGiAFIAEoAhAiBiABKAIMIgRqSQRAIARBAnQhCCADIAAgBSAEayIFayIEQQJ0aiADIAhqIAVBAnQQUxogASAENgIMCyABIAA2AhQgASADNgIICyADIAQgBmogAHBBAnRqIAI2AgAgASABKAIQQQFqNgIQCyAHQRBqJAAPCyAHIAEQeDYCAEG4/AgoAgBB2ooEIAcQHhoQKAALFAAgACABQQJBmilBEUGuhAEQogILngECAn8BfgJAIAEgAkGABCABKAIAEQQAIgVFBEAgACgCECAAKAIAIgVBKGxqIgYgBTYCICAAIAVBAWo2AgAgBiEAIANFDQEgAyAAKAIgQQV0aiIFIAIpAwA3AwggAikDCCEHIAUgADYCACAFIAc3AxAgACAEOgAkIAEgBUEBIAEoAgARBAAaCyAFKAIADwtBgzJB5sUBQagCQdkcEAAAC8sDAgZ8A38jAEEQayIMJAADQAJAAkACQAJAAkAgBCACEDsiCygCAEEBaw4DAgEAAwsgCygCGCAMQRBqJAAPC0EkIQIgACsACCIFIAsrABAiB0RIr7ya8td6PqAiCGQNAiAFIAdESK+8mvLXer6gIgljRSAAKwAAIgogCysACCIGZHENAkEgIQIgBSAHoZlESK+8mvLXej5lRSAKIAahmURIr7ya8td6PmVFcg0CQSQhAiABKwAIIgUgCGQNAkEgQSRBICABKwAAIAZkGyAFIAljGyECDAILIAArAAAhBgJAAkAgACsACCIFIAMgCygCBCINQThsaiICKwAIoZlESK+8mvLXej5lBEAgBiACKwAAoZlESK+8mvLXej5lDQELIAUgAisAGKGZREivvJry13o+ZUUNASAGIAIrABChmURIr7ya8td6PmVFDQELIAUgASsDCKGZREivvJry13o+ZQRAQSBBJCABKwMAIAZj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FEEDdCIAaiAAIAdqKwMAIDWjOQMAIARBAWohFUEAIQBBACEDA0AgAyAURgRAA0AgACAERgRAQQAhAgNAIAIgEkYNBiAFIAJBA3QiAGogACANaisDADkDACACQQFqIQIMAAsABSAHIABBA3QiAmogAiAMaisDADkDACAAQQFqIQAMAQsACwALIA4gBCADayICQQJrIg9BA3QiF2oiESAHIBdqKwMAIjU5AwAgAkEBayECIAUgBCAPbEEDdGohFwNAIAIgBE8EQCARIDUgBSAPIBVsQQN0aisDAKM5AwAgA0EBaiEDDAIFIBEgNSAXIAJBA3QiGGorAwAgDiAYaisDAKKhIjU5AwAgAkEBaiECDAELAAsACwALQcTfCigCABoCQEGEtAFB+N4KEI0BQQBIDQACQEHI3wooAgBBCkYNAEGM3wooAgAiAEGI3wooAgBGDQBBjN8KIABBAWo2AgAgAEEKOgAADAELQfjeCkEKEMAHGgsLIA0QGCAMEBhBACEAA0BBzOEKLwEAIg4gAEsEQEHg4QorAwAhNRDXASE2IABBA3QiAiAKQaABamoiAyADKwMAIDUgNkQAAAAAAADwPyA1oSI1IDWgoqCiIjU5AwAgASgCECgClAEgAmoiAiA1IAIrAwCgOQMAIABBAWohAAwBCwsgCSgCECICIAIoApwBQQFqNgKcASACKAKYASISIAhqKAIAIQ1BACEAA0AgACAORgRAQQAhAwNAIAMgFkcEQAJAIAMgC0YNAEEAIQcgDSgCECgClAEgEiADQQJ0IgRqKAIAKAIQKAKUASAKQfABahCLDiE1A0AgByAORg0BIAdBA3QiACACKAKsASIMIAhqKAIAIARqKAIAaiIUIANBA3QiDyACKAKkASAIaigCAGorAwAgCkHwAWogAGorAwAiNiA2IAIoAqABIAhqKAIAIA9qKwMAoiA1o6GiIjY5AwAgAigCqAEiDyAIaigCACAAaiIRIDYgESsDAKA5AwAgBCAMaigCACAIaigCACAAaiIMKwMAITYgDCAUKwMAmiI3OQMAIAQgD2ooAgAgAGoiACA3IDahIAArAwCgOQMAIAdBAWohBwwACwALIANBAWohAwwBCwtBhOUKKAIABEBBACEAQczhCi8BACECRAAAAAAAAAAAITYDQCAAIAJHBEAgNiAKQaABaiAAQQN0aisDAJmg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IQEMAQsLIAYgAhD/BiEHIA0EQCAEKAJ8IQAgByAVOQMYIAcgEzkDECAHIAA2AggLIAwEQCAEKAJ4IQAgByAUOQMoIAcgFjkDICAHIAA2AgwLIAFBAWohAUEAIQADQCAAIAJHBEAgAEEEdCIPIAcoAgBqIhAgCyAPaiIPKQMANwMAIBAgDykDCDcDCCAAQQFqIQAMAQsLIAsQGCAODQALIAYoAhAiACgCYCIBBEAgBiABQePfABC7BCAGKAIQIQALIAAoAmwiAQRAIAYgAUHI3wAQuwQgBigCECEACyAAKAJkIgEEfyAGIAFB3t8AELsEIAYoAhAFIAALKAJoIgAEQCAGIABB1t8AELsECyAFQQFqIQULIAMgBhAwIQYMAQsLIAMgChAcIQoMAQsLIAVFBEBBACEHDAELQQJBASADELoCIAVGGyEHC0EAIQZBACECIAMoAhAoAggiACgCWCIMBEAgAEEANgJUQQEhAgsCQCAMDQBBmOEKKAIAQQFHDQAgAxDABEUNAEEBIQYgAygCECgCDCIARQ0AIABBADoAUQsgAxDDAiAMBEAgAygCECEKRAAAAAAAAAAAIRVEAAAAAAAAAAAhFkEAIQ1BACEOQQAhDyMAQUBqIgUkACADKAIQIgAoApABIRAgBEHYAGoiASAAKQMQNwMAIAEgACkDKDcDGCABIAApAyA3AxAgASAAKQMYNwMIAkAgACgCCCgCWCILRQ0AAkAgASsDACABKwMQYg0AIAErAwggASsDGGINACABQv////////93NwMYIAFC//////////f/ADcDACABQv/////////3/wA3AwggAUL/////////dzcDEAsgCygCCCEAA0AgDSALKAIATw0BIAVCADcDOCAFQgA3AzAgBUIANwMoIAVCADcDIAJAAkACQAJAAkACQAJAAkAgACgCAA4QAAABAQICAwQHBwUHBwcHBgcLIAAgACsDECIXIAArAyAiGKAiEzkDaCAAIAArAwgiGyAAKwMYIhygIhQ5A2AgACAXIBihIhc5A1ggACAbIByhIhg5A1AgASABKwMAIBgQKiAUECo5AwAgASABKwMYIBcQIiATECI5AxggASABKwMIIBcQKiATECo5AwggASABKwMQIBgQIiAUECI5AxAMBgsgBSAAKAIMIAAoAgggARDABiAAIAUpAxg3A2ggACAF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A0cbaigCKCgCECgClAEiBSsDCKJEAAAAAAAAUkCiIRAgFSAFKwMAokQAAAAAAABSQKIhESAUIANBUEEAIAJBAkcbaigCKCgCECgClAEiAisDCKJEAAAAAAAAUkCiIRIgFSACKwMAokQAAAAAAABSQKIhEyABKAIAIQIDQCAEIAhGBEACQCAHKAJgIgFFDQAgAS0AUUEBRw0AIAEgDyABKwM4ojkDOCABIA0gASsDQKI5A0ALAkAgBygCZCIBRQ0AIAEtAFFBAUcNACABIBMgASsDOKA5AzggASASIAErA0CgOQNACyAHKAJoIgFFDQMgAS0AUUEBRw0DIAEgESABKwM4oDkDOCABIBAgASsDQKA5A0AMAwsgAigCBCIKQQFrIQsgAigCACEBQQAhBSAEIAlHIQwDQCAFIApGBEAgAigCCARAIAIgESACKwMQoDkDECACIBAgAisDGKA5AxgLIAIoAgwEQCACIBMgAisDIKA5AyAgAiASIAIrAyigOQMoCyAEQQFqIQQgAkEwaiECDAIFIAECfCAEIAVyRQRAIAEgESABKwMAoDkDACAQIAErAwigDAELIAErAwAhDiAMIAUgC0dyRQRAIAEgEyAOoDkDACASIAErAwigDAELIAEgDyAOojkDACANIAErAwiiCzkDCCAFQQFqIQUgAUEQaiEBDAELAAsACwALIAAgBhAcIQYMAgsgACADEDAhAwwACwALAAsgABAbIQEDQCABBEAgASgCECgClAEiAiAPIAIrAwCiOQMAIAIgDSACKwMIojkDCCAAIAEQHCEBDAELCyAAIA8gDRCCDUEBIQMLIAAQGyEBA0AgAQRAIAEoAhAiAiACKAKUASIEKwMARAAAAAAAAFJAojkDECACIAQrAwhEAAAAAAAAUkCiOQMYIAAgARAcIQEMAQsLIAML7AIBBH8jAEGAAWsiByQAIAJBACACQQBKGyECAkADQCACIAhGBEAgBCADIAMgBEgbIQQDQCADIARGIgINAyAGIANBAnRqKAIAIQggByAAKQMINwM4IAcgACkDADcDMCAHIAEpAwg3AyggByABKQMANwMgIAcgBSADQQR0aiIJKQMINwMYIAcgCSkDADcDECAHIAUgCEEEdGoiCCkDCDcDCCAHIAgpAwA3AwAgA0EBaiEDIAdBMGogB0EgaiAHQRBqIAcQvgRFDQALDAILIAYgCEECdGooAgAhCSAHIAApAwg3A3ggByAAKQMANwNwIAcgASkDCDcDaCAHIAEpAwA3A2AgByAFIAhBBHRqIgopAwg3A1ggByAKKQMANwNQIAcgBSAJQQR0aiIJKQMINwNIIAcgCSkDADcDQCAIQQFqIQggB0HwAGogB0HgAGogB0HQAGogB0FAaxC+BEUNAAtBACECCyAHQYABaiQAIAIL/RECGn8MfCMAQTBrIgMkAEHIhQsoAgAhBUGUhQsoAgAhAgNAIAIgD0YEQANAIAJBAWsgC00EQEGM4QotAABBAUsEQCADIBA2AiQgAyAANgIgQbj8CCgCAEHl5wMgA0EgahAeGgsgA0EwaiQAIBAPC0HIhQsoAgAgC0HgAGxqIhNBKGohCSALQQFqIg8hCwNAIAIgC00EQCAPIQsMAgUgAyATKQMQNwMYIAMgEykDCDcDECADQciFCygCACALQeAAbGoiBykDEDcDCCADIAcpAwg3AwBBACECQQAhBiMAQbAEayIBJAAgASADKQMYNwOoAyABIAMpAxA3A6ADIAEgCSkDCDcDmAMgASAJKQMANwOQAyABQeADaiABQaADaiABQZADahDiBSABIAMpAxg3A4gDIAEgAykDEDcDgAMgASAJKQMYNwP4AiABIAkpAxA3A/ACIAFB0ANqIAFBgANqIAFB8AJqEOIFIAEgAykDCDcD6AIgASADKQMANwPgAiABIAcpAzA3A9gCIAEgBykDKDcD0AIgAUHAA2ogAUHgAmogAUHQAmoQ4gUgASADKQMINwPIAiABIAMpAwA3A8ACIAEgBykDQDcDuAIgASAHKQM4NwOwAiABQbADaiABQcACaiABQbACahDiBQJAIAErA+ADIAErA7ADZUUNACABKwPAAyABKwPQA2VFDQAgASsD6AMgASsDuANlRQ0AIAErA8gDIAErA9gDZUUNAEEBIQIgCSgCKCIFQQFxBEAgBy0AUEEBcQ0BCwJAIAVBAnFFDQAgBy0AUEECcUUNACADKwMQIAMrAwChIhsgG6IgAysDGCADKwMIoSIbIBuioCAJKwMQIAkrAwChIAcrAzigIAcrAyihIhsgG6JEAAAAAAAA0D+iZEUhAgwBC0HQhQsoAgAiBUUEQEHQhQtBzIULKAIAELcCNgIAQdSFC0HMhQsoAgAQtwI2AgBB0IULKAIAIQULIAkoAiAiDEEAIAxBAEobIQggAysDGCEbIAMrAxAhHCAJKAIkIQQgBSECA0AgBiAIRwRAIAIgHCAEKwMAoDkDACACIBsgBCsDCKA5AwggBkEBaiEGIAJBEGohAiAEQRBqIQQMAQsLQQAhBiAHKAJIIg1BACANQQBKGyEIIAMrAwghGyADKwMAIRwgBygCTCEEQdSFCygCACIUIQIDQCAGIAhHBEAgAiAcIAQrAwCgOQMAIAIgGyAEKwMIoDkDCCAGQQFqIQYgAkEQaiECIARBEGohBAwBCwsgDUEBdCEXIAxBAXQhGCANQQFrIRkgDEEBayEaQQAhAkEAIQRBACEGQQAhCAJAAkADQCABIAUgCEEEdGoiCikDCDcDqAIgASAKKQMANwOgAiABIAUgCCAaaiAMb0EEdGoiESkDCDcDmAIgASARKQMANwOQAiABQaAEaiABQaACaiABQZACahCtDSABIBQgBkEEdGoiDikDCDcDiAIgASAOKQMANwOAAiABIBQgBiAZaiANb0EEdGoiEikDCDcD+AEgASASKQMANwPwASABQZAEaiABQYACaiABQfABahCtDSABQgA3A/gDIAFCADcD6AEgASABKQOoBDcD2AEgASABKQOYBDcDyAEgAUIANwPwAyABQgA3A+ABIAEgASkDoAQ3A9ABIAEgASkDkAQ3A8ABIAErA+gBIAErA9gBIhuhIAErA8ABIAErA9ABIhyhoiABKwPIASAboSABKwPgASAcoaKhIR8gASARKQMINwO4ASABIBEpAwA3A7ABIAEgCikDCDcDqAEgASAKKQMANwOgASABIA4pAwg3A5gBIAEgDikDADcDkAEgAUGwAWogAUGgAWogAUGQAWoQrA0hFSABIBIpAwg3A4gBIAEgEikDADcDgAEgASAOKQMINwN4IAEgDikDADcDcCABIAopAwg3A2ggASAKKQMANwNgIAFBgAFqIAFB8ABqIAFB4ABqEKwNIRYgASARKQMINwNYIAEgESkDADcDUCABIAopAwg3A0ggASAKKQMANwNAIAEgEikDCDcDOCABIBIpAwA3AzAgASAOKQMINwMoIAEgDikDADcDICABKwMwIiAgASsDWCIbIAFBQGsiCisDCCIhoaIgASsDICIlICEgG6EiIqIgASsDUCIeIAErAygiHSABKwM4IhyhoiImIAorAwAiIyAcIB2hoqCgoCIkRAAAAAAAAAAAYgR/IAEgJSAcIBuhoiAmICAgGyAdoaKgoCAkoyIdICKiIBugOQOIBCABIB0gIyAeoaIgHqA5A4AEIB1EAAAAAAAA8D9lIB1EAAAAAAAAAABmcSAgICKiIB4gHCAhoaIgIyAbIByhoqCgmiAkoyIbRAAAAAAAAAAAZiAbRAAAAAAAAPA/ZXFxBUEACw0BAkAgFiAfRAAAAAAAAAAAYiAVcnJFBEAgBEEBaiEEIAhBAWogDG8hCAwBCyAfRAAAAAAAAAAAZgRAIBUEQCAEQQFqIQQgCEEBaiAMbyEIDAILIAJBAWohAiAGQQFqIA1vIQYMAQsgFgRAIAJBAWohAiAGQQFqIA1vIQYMAQsgBEEBaiEEIAhBAWogDG8hCAsgBCAMSCACIA1IckUgBCAYTnJFIAIgF0hxDQALAkBB0IULKAIAIgIrAAAiGyABKwOwA2VFDQAgGyABKwPAA2ZFDQAgAisACCIbIAErA7gDZUUNACAbIAErA8gDZkUNACAHKAJIIQUgASACKQMINwMYIAEgAikDADcDEEEBIQJB1IULKAIAIAUgAUEQahCpDQ0DC0HUhQsoAgAiBSsAACIbIAErA9ADZUUNASAbIAErA+ADZkUNASAFKwAIIhsgASsD2ANlRQ0BQQAhAiAbIAErA+gDZkUNAiAJKAIgIQIgASAFKQMINwMIIAEgBSkDADcDAEHQhQsoAgAgAiABEKkNIQIMAgtBASECDAELQQAhAgsgAUGwBGokACACBEAgE0EBOgAgIAdBAToAICAQQQFqIRALIAtBAWohC0GUhQsoAgAhAgwBCwALAAsABSAFIA9B4ABsakEAOgAgIA9BAWohDwwBCwALAAv4AgIGfAN/IAAtAAwhCAJAIAErAwAiAyAAKAIIIgAoAiQiCSsDACIHZCIKBEAgCA0BQQEPCyAIQQFHDQBBAA8LAn8CQAJAAkAgACsDACICRAAAAAAAAPA/YQRAIAMgB6EhBCABKwMIIgUgCSsDCKEhBiAAKwMIIQICQCAKRQRAIAJEAAAAAAAAAABjDQEMAwsgAkQAAAAAAAAAAGZFDQILIAYgBCAComZFDQJBAQwECyABKwMIIAArAxAgAiADoqEiAqEiBCAEoiADIAehIgQgBKIgAiAJKwMIoSICIAKioGQMAwsgBSACoiADoCEDIAArAxAhBSACRAAAAAAAAAAAYwRAIAMgBWRFDQEMAgsgAyAFZEUNAQsgBiAHIAAoAiArAwChIgOiIAIgAqIgBCAEoCADo0QAAAAAAADwP6CgoiEDIAQgBKIgBiAGoqEgAqIhBCADIARkIAJEAAAAAAAAAABjRQ0BGiADIARkRQwBC0EACyAIQQBHcwtGAQF/AkAgAUEASA0AIAEgACgCBE4NACAAKAIIIAFBAnRqIgEoAgAiAEUNACAAIgIoAghBfkcNAEEAIQIgAUEANgIACyACCyUBAX8gASAANgIAIAEgACgCBCICNgIEIAIgATYCACAAIAE2AgQLUwEBfyAAIAE2AhAgAEEEQQAgAhsiAyAAKAIAIgJBe3FyNgIAIAJBAnEEQCAAQVBBMCACQQNxQQNGG2oiACABNgIQIAAgACgCAEF7cSADcjYCAAsLCAAgACgCCEULVQECfyABKAIQBEAgACgCACAAIAEQoA1BKGxqIQIDQCACIgMoAiAiAiABRw0ACyADIAEoAiA2AiAgACAAKAIIQQFrNgIIIAEoAhAQ3wUgAUEANgIQCwtKAQF/IABBGGoiAyABQQJ0aiACNgIAIAIQ3gUgA0EBIAFrQQJ0aigCAARAIAAQoQ0gACgCIBDfBSAAKAIkEN8FIABB8IULEKYNCwu4AQECfyAAKAIAIgEEQCABKAIAEBggACgCABAYCyAAKAIUQQBKBEAgACgCJBDMDSAAKAIcIgEgACgCICICRiACRXJFBEBBACACEPgDIAAoAhwhAQsgACgCFCABEPgDQQAhAQNAIAAoAhAhAiABIAAoAgwgACgCCCAAKAIEampORQRAIAIgAUECdGooAgAQzg0gAUEBaiEBDAELCyACEBgLIAAoAigQGCAAKAIsEBggACgCMBAYIAAQGAu/EQIQfwF8IwBBIGsiDCQAQQFBNBAZIgVBADYCACADKAIwIQcgBUEANgIgIAVBADYCDCAFIAdBAXQiBzYCCCAFIAAgB2s2AgQgBSAAQQQQGTYCECAAQQAgAEEAShshECAFQQxqIRMDQCAGIBBHBEAgBkQAAAAAAADwPxCICCEHIAUoAhAgBkECdGogBzYCACAGQQFqIQYMAQsLIAVBADYCGAJAAkACQAJAIARBAWsOAgABAgtBACEEQYzhCi0AAARAQZHwBEEfQQFBuPwIKAIAEEwaCyAFKAIEIgdBACAHQQBKGyEKA0AgBCAKRwRAQQEhBkEBIAIgBEEUbGoiCCgCACIHIAdBAU0bIQcDQCAGIAdGBEAgBEEBaiEEDAMLIAgoAhAgBkECdGoqAgC7RHsUrkfheoQ/ZARAIAUgBSgCGEEBajYCGAsgBkEBaiEGDAALAAsLIAUoAhgQxgQhBCAFQQA2AhggBSAENgIgQQAhBANAIAQgBSgCBE4NAiACIARBFGxqIQpBASEGA0AgCigCACAGTQRAIARBAWohBAwCCyAGQQJ0IgggCigCEGoqAgBDAAAAAF4EQCAFKAIQIgcgBEECdGooAgAgByAKKAIEIAhqKAIAQQJ0aigCACADKwMIEPkDIQggBSAFKAIYIgdBAWoiCTYCGCAFKAIgIAdBAnRqIAg2AgALIAZBAWohBgwACwALAAsgDEEANgIcIAxBADYCGCAFKAIQIQ0gAiAFKAIEQQAgDEEcaiAMQRhqIBMQ+QdFBEBBACEGIAwoAhwhDiAFKAIEIQkgDCgCGCEPIAUoAgwiEUEBakEIEBkiFCAPKAIAIgI2AgQgFCACQQQQGSIHNgIAIAJBACACQQBKGyEEA38gBCALRgR/QQEgESARQQFMGyEKQQEhEgNAIAogEkcEQCAUIBJBA3RqIgQgDyASQQJ0aiICKAIAIAJBBGsiCCgCAGsiAjYCBCAEIAJBBBAZIgc2AgBBACELIAJBACACQQBKGyEEA0AgBCALRwRAIAcgC0ECdCICaiAOIAgoAgBBAnRqIAJqKAIANgIAIAtBAWohCwwBCwsgEkEBaiESDAELCwJAIBFBAEwNACAUIBFBA3RqIgIgCSAPIBFBAnRqQQRrIggoAgBrIgQ2AgQgAiAEQQQQGSIHNgIAQQAhCyAEQQAgBEEAShshBANAIAQgC0YNASAHIAtBAnQiAmogDiAIKAIAQQJ0aiACaigCADYCACALQQFqIQsMAAsACyAUBSAHIAtBAnQiAmogAiAOaigCADYCACALQQFqIQsMAQsLIQdBjOEKLQAABEAgDCATKAIANgIQQbj8CCgCAEG89QMgDEEQahAeGgtBACEPQQEgBSgCDCIKQQFqIgkgCUEBTBshCCAHQQRrIQRBASEOA0AgCCAORwRAIA8gByAOQQN0IgJqKAIEaiACIARqKAIAaiEPIA5BAWohDgwBCwsgBSAKIAcgCUEDdGpBBGsoAgAgBygCBCAPampqQQFrIgI2AhggAhDGBCECIAVBADYCGCAFIAI2AiAgBSAFKAIMIABqQQQQGTYCEANAIAYgEEcEQCAGQQJ0IgIgBSgCEGogAiANaigCADYCACAGQQFqIQYMAQsLIA0QGEEAIQIDQCATKAIAIgYgAkoEQCAAIAJqIghEje21oPfGsD4QiAghBCAFKAIQIAhBAnRqIAQ2AgAgAkEBaiECDAELCyADKwMIIRVBACEEQQAhAgNAAkACQCACIAZOBEADQCAEIAZBAWtODQIgBSgCECAAQQJ0aiAEQQJ0aiICKAIAIAIoAgREAAAAAAAAAAAQ+QMhByAFIAUoAhgiAkEBajYCGCAFKAIgIAJBAnRqIAc2AgAgBEEBaiEEIAUoAgwhBgwACwALQQAhBiAHIAJBA3RqIg0oAgQiCEEAIAhBAEobIQkgACACaiEQA0AgBiAJRgRAQQAhBiAHIAJBAWoiAkEDdGoiDSgCBCIIQQAgCEEAShshCQNAIAYgCUYNBCAFKAIQIgggEEECdGooAgAgCCANKAIAIAZBAnRqKAIAQQJ0aigCACAVEPkDIQogBSAFKAIYIghBAWo2AhggBSgCICAIQQJ0aiAKNgIAIAZBAWohBgwACwAFIAUoAhAiCCANKAIAIAZBAnRqKAIAQQJ0aigCACAIIBBBAnRqKAIAIBUQ+QMhCiAFIAUoAhgiCEEBajYCGCAFKAIgIAhBAnRqIAo2AgAgBkEBaiEGDAELAAsACyAFKAIYIQkMAwsgEygCACEGDAALAAtBACEFDAELIAMoAjBBAEoEQCAFKAIgIQcgBSAJIAMoAixBAXRqEMYENgIgQQAhBiAFKAIYIgJBACACQQBKGyEEA0AgBCAGRwRAIAZBAnQiAiAFKAIgaiACIAdqKAIANgIAIAZBAWohBgwBCwsgBwRAQQAgBxD4AwtBACEEA0AgAygCMCAESgRAIARBA3QhCUEAIQYgBEECdCENA0AgAygCNCANaigCACAGTARAIARBAWohBAwDBSAFKAIQIgcgBSgCBEECdGogCWoiAigCBCEKIAIoAgAgByADKAI4IA1qKAIAIAZBAnRqKAIAQQJ0aigCACIIRAAAAAAAAAAAEPkDIQcgBSAFKAIYIgJBAWo2AhggBSgCICACQQJ0aiAHNgIAIAggCkQAAAAAAAAAABD5AyEHIAUgBSgCGCICQQFqNgIYIAUoAiAgAkECdGogBzYCACAGQQFqIQYMAQsACwALCyAFKAIYIQkLIAVBADYCHCAFQQA2AhQgCUEASgRAIAUgBSgCDCAAaiAFKAIQIAkgBSgCIBDQDTYCJCAFIAUoAhg2AhQgBSAFKAIgNgIcCyABBEAgBSABIAAQsQ02AgALIAUgAEEEEBk2AiggBSAAQQQQGTYCLCAFIABBBBAZNgIwQYzhCi0AAEUNACAMIAUoAhQ2AgBBuPwIKAIAQejsBCAMEB4aCyAMQSBqJAAgBQu8AwIEfwF8AkACQCACIgdFBEBBASEGIAAgASABQQgQGSIHIAEQvA0NAQsgAyABQQQQGSIANgIAQQAhBiABQQAgAUEAShshAwNAIAMgBkcEQCAAIAZBAnRqIAY2AgAgBkEBaiEGDAELCyAAIAFB0wMgBxCzDUR7FK5H4XqEPyAHIAAgAUEBayIDQQJ0aigCAEEDdGorAwAgByAAKAIAQQN0aisDAKFEmpmZmZmZuT+iIAO3oyIKIApEexSuR+F6hD9jGyEKQQEgASABQQFMGyEIQQAhA0EBIQYDQCAGIAhHBEAgAyAHIAAgBkECdGoiCSgCAEEDdGorAwAgByAJQQRrKAIAQQN0aisDAKEgCmRqIQMgBkEBaiEGDAELCyAFIAM2AgACQCADRQRAIARBAUEEEBkiADYCACAAIAE2AgAMAQsgBCADQQQQGSIDNgIAQQAhAUEBIQYDQCAGIAhGDQEgCiAHIAAgBkECdGoiBCgCAEEDdGorAwAgByAEQQRrKAIAQQN0aisDAKFjBEAgAyABQQJ0aiAGNgIAIAFBAWohAQsgBkEBaiEGDAALAAtBACEGIAINAQsgBxAYCyAGC1YBAn8gACgCCBAYIABBADYCCAJAIAJFDQAgAUEAIAFBAEobIQEDQCABIANGDQEgACADQRRsaiIEIAI2AgggA0EBaiEDIAIgBCgCAEECdGohAgwACwALC+wBAQl/IAFBACABQQBKGyEGIAEQwAEhBEEAIQEDQCABIAZGRQRAIAAgAUEUbGooAgAgAmohAiABQQFqIQEMAQsLIAIQwAEhAgNAIAMgBkcEQCAAIANBFGxqIgcgAjYCCCAAIAMgBBD9ByAHKAIAIghBAmshCSAIQQFrIQpBASEBA0AgASAKSwRAIAAgAyAEEPwHIANBAWohAyACIAhBAnRqIQIMAwUgAiABQQJ0IgVqIAkgACAHKAIEIAVqKAIAIgVBFGxqKAIAaiAAIAUgBBD+B0EBdGuzOAIAIAFBAWohAQwBCwALAAsLIAQQGAsNACAAIAEgAkEAENYKCw0AIAAgASACQQEQ1goLWwECf0EBIAAgAUEUbGoiAygCACIAIABBAU0bIQRBACEAQQEhAQN/IAEgBEYEfyAABSAAIAIgAygCBCABQQJ0aigCAEECdGooAgBBAEpqIQAgAUEBaiEBDAELCwsRACAAIAEgACgCTCgCKBC0DQtMAgJ/AX0gAEEAIABBAEobIQADQCAAIAJHBEAgASACQQJ0aiIDKgIAIgRDAAAAAF4EQCADQwAAgD8gBJGVOAIACyACQQFqIQIMAQsLC0kCAn8BfSAAQQAgAEEAShshAANAIAAgA0cEQCABIANBAnQiBGoqAgAiBUMAAAAAYARAIAIgBGogBZE4AgALIANBAWohAwwBCwsLSwICfwF9IABBACAAQQBKGyEAA0AgACACRwRAIAEgAkECdGoiAyoCACIEQwAAAABcBEAgA0MAAIA/IASVOAIACyACQQFqIQIMAQsLCyoBAX9BBBDUAxCXBSIAQbDxCTYCACAAQcTxCTYCACAAQZjyCUHQAxABAAsPACAAIAAoAgAoAgQRAQALEQAgACABIAAoAkwoAigQyA0LugcCB38EfCMAQRBrIgokACAKQQA2AgwgCkIANwIEIABBACAAQQBKGyEAA38gACAGRgR/IwBBQGoiBCQAIARBADYCPCAEQgA3AjQgBEE0aiAKQQRqIgYoAgQgBigCAGtBBHUQ4w0DQCAGKAIEIAYoAgAiAWtBBXUgBU0EQAJAIAQoAjQgBCgCOBDiDSAEIARBLGoiCDYCKCAEQgA3AiwgBEEANgIgIARCADcCGCAEKAI4IQIgBCgCNCEHA0AgAiAHRgRAIANBfyAEKAIcIAQoAhhrIgAgAEECdSICQf////8DSxsQiwE2AgBBACEFIAJBACACQQBKGyEBA0AgASAFRg0DIAVBAnQiACADKAIAaiAEKAIYIABqKAIANgIAIAVBAWohBQwACwAFIAQgBygCBCIFNgIUAkAgBygCAEUEQCAEQQxqIARBKGoiASAEQRRqIgAQhgMgASAAELMDIgAgBCgCKEcEQCAFIAAQiggoAhAiADYCECAAIAU2AhQLIARBKGogBEEUahCzAxCxASIAIAhGDQEgBSAAKAIQIgA2AhQgACAFNgIQDAELIAUoAhQhCSAFKAIQIgEEQCABKAIEIgArAxAhDCAAKwMYIQ0gBSgCBCIAKwMQIQ4gACsDGCELIARBIBCLASABKAIAIAUoAgAgCyAOoSANIAyhoEQAAAAAAADgP6IQtAM2AgwgBEEYaiAEQQxqEMEBIAEgBSgCFDYCFAsgCQRAIAkoAgQiACsDECEMIAArAxghDSAFKAIEIgArAxAhDiAAKwMYIQsgBEEgEIsBIAUoAgAgCSgCACALIA6hIA0gDKGgRAAAAAAAAOA/ohC0AzYCDCAEQRhqIARBDGoQwQEgCSAFKAIQNgIQCyAEQShqIARBFGoQ6gULIAdBGGohBwwBCwALAAsFIAIgBUECdGoiACgCACABIAVBBXQiCWoiASsDECILIAErAxggC6FEAAAAAAAA4D+ioCILOQMIIAQgCzkDGCAEQShqIgcgACABIARBGGoiCBDdDSAEQQA2AgwgBCAGKAIAIAlqKwMAOQMYIARBNGoiASAEQQxqIgAgByAIEOkFIARBATYCDCAEIAYoAgAgCWorAwg5AxggBUEBaiEFIAEgACAHIAgQ6QUgBxDbAQwBCwsgBEEYahCCAhogBEEoahD6AyAEQTRqEN4NIARBQGskACAGEIICGiAKQRBqJAAgAgUgCkEEaiABIAZBBXRqIgggCEEQaiAIQQhqIAhBGGoQzw0gBkEBaiEGDAELCwuJDgIKfwR8IwBBEGsiCiQAIApBADYCDCAKQgA3AgQgAEEAIABBAEobIQUDfyAFIAZGBH8Cf0EAIQYjAEHgAGsiACQAIABBADYCTCAAQgA3AkQgAEHEAGogCkEEaiIOIgEoAgQgASgCAGtBBHUQ4w0DQCABKAIEIAEoAgAiBWtBBXUgBk0EQCAAKAJEIAAoAkgQ4g0gACAAQTxqIgs2AjggAEIANwI8IABBADYCMCAAQgA3AiggAEEQaiEHIABBHGohCSAAKAJIIQwgACgCRCEGA0ACQAJAAkACQCAGIAxGBEAgA0F/IAAoAiwgACgCKGsiASABQQJ1IgFB/////wNLGxCLATYCAEEAIQYgAUEAIAFBAEobIQIDQCACIAZGDQIgBkECdCIEIAMoAgBqIAAoAiggBGooAgA2AgAgBkEBaiEGDAALAAsgACAGKAIEIgE2AiQgBigCAA0BIABBGGogAEE4aiICIABBJGoQhgMgBEUNAiAAQgA3AhwgACAJNgIYIAAgATYCVCACIABB1ABqELMDIQICQANAIAIgACgCOEYNASAAIAIQiggiAigCECIFNgJcIAUoAgQgASgCBBDrBUQAAAAAAAAAAGVFBEAgBSgCBCABKAIEEOsFIAUoAgQgASgCBBDgDWVFDQEgAEEMaiAAQRhqIABB3ABqEIYDDAELCyAAQQxqIABBGGogAEHcAGoQhgMLIABCADcCECAAIAc2AgwgACABNgJcIABBOGogAEHcAGoQswMhAgJAA0AgAhCxASICIAtGDQEgACACKAIQIgU2AlAgBSgCBCABKAIEEOsFRAAAAAAAAAAAZUUEQCAFKAIEIAEoAgQQ6wUgBSgCBCABKAIEEOANZUUNASAAQdQAaiAAQQxqIABB0ABqEIYDDAELCyAAQdQAaiAAQQxqIABB0ABqEIYDCyABQRhqIABBGGoQ3w0gAUEkaiAAQQxqEN8NIAAoAhghAgNAIAIgCUYEQCAAKAIMIQIDQCACIAdHBEAgAigCECEFIAAgATYCXCAAQdQAaiAFQRhqIABB3ABqEIYDIAIQsQEhAgwBCwsgAEEMahD6AyAAQRhqEPoDDAUFIAIoAhAhBSAAIAE2AlwgAEHUAGogBUEkaiAAQdwAahCGAyACELEBIQIMAQsACwALIABBKGoQggIaIABBOGoQ+gMgAEHEAGoQ3g0gAEHgAGokACABDAYLAkAgBARAIAFBHGohCCABKAIYIQIDQCACIAhGBEAgAUEoaiEIIAEoAiQhAgNAIAIgCEYNBCABKAIEIgUrAwAhDyAFKwMIIRAgAigCECIFKAIEIg0rAwAhESANKwMIIRIgAEEgEIsBIAEoAgAgBSgCACAQIA+hIBIgEaGgRAAAAAAAAOA/ohC0AzYCGCAAQShqIABBGGoQwQEgBUEYaiAAQSRqEOoFIAIQsQEhAgwACwAFIAEoAgQiBSsDACEPIAUrAwghECACKAIQIgUoAgQiDSsDACERIA0rAwghEiAAQSAQiwEgBSgCACABKAIAIBAgD6EgEiARoaBEAAAAAAAA4D+iELQDNgIYIABBKGogAEEYahDBASAFQSRqIABBJGoQ6gUgAhCxASECDAELAAsACyABKAIUIQIgASgCECIFBEAgBSgCBCIIKwMAIQ8gCCsDCCEQIAEoAgQiCCsDACERIAgrAwghEiAAQSAQiwEgBSgCACABKAIAIBIgEaEgECAPoaBEAAAAAAAA4D+iELQDNgIYIABBKGogAEEYahDBASAFIAEoAhQ2AhQLIAJFDQAgAigCBCIFKwMAIQ8gBSsDCCEQIAEoAgQiBSsDACERIAUrAwghEiAAQSAQiwEgASgCACACKAIAIBIgEaEgECAPoaBEAAAAAAAA4D+iELQDNgIYIABBKGogAEEYahDBASACIAEoAhA2AhALIABBOGogAEEkahDqBQwBCyAAQThqIABBJGoQswMiAiAAKAI4RwRAIAEgAhCKCCgCECICNgIQIAIgATYCFAsgAEE4aiAAQSRqELMDELEBIgIgC0YNACABIAIoAhAiAjYCFCACIAE2AhALIAZBGGohBgwACwAFIAIgBkECdGoiCSgCACAFIAZBBXQiC2oiBysDACIPIAcrAwggD6FEAAAAAAAA4D+ioCIPOQMIIAAgDzkDKCAAQThqIgUgCSAHIABBKGoiBxDdDSAAQQA2AhggACABKAIAIAtqKwMQOQMoIABBxABqIgkgAEEYaiIMIAUgBxDpBSAAQQE2AhggACABKAIAIAtqKwMYOQMoIAZBAWohBiAJIAwgBSAHEOkFIAUQ2wEMAQsACwALIA4QggIaIApBEGokAAUgCkEEaiABIAZBBXRqIgAgAEEQaiAAQQhqIABBGGoQzw0gBkEBaiEGDAELCwtSAQF/QcAAEIsBIgJCADcDKCACQQA6ACQgAkEANgIgIAJCADcDGCACIAE5AxAgAkQAAAAAAADwPzkDCCACIAA2AgAgAkIANwMwIAJCADcDOCACC1IAIAAgASACIAQQ0gICQCADIAIgBCgCABEAAEUNACACIAMQuQEgAiABIAQoAgARAABFDQAgASACELkBIAEgACAEKAIAEQAARQ0AIAAgARC5AQsLOwECfyAAKAIAIgEEQCABIQADQCAAIgEoAgQiAA0ACyABDwsDQCAAIAAoAggiASgCAEYgASEADQALIAALXQEEfyAAQaDYCjYCAEGIhQtBADYCACAAQQRqIgJBBGohBCACKAIAIQEDQCABIARHBEAgASgCECIDBEAgAxDrDRoLIAMQGCABELEBIQEMAQsLIAIgAigCBBCMCCAACx8AIAEEQCAAIAEoAgAQjAggACABKAIEEIwIIAEQGAsLPwECfyAAKAIEIQIgACgCCCEBA0AgASACRwRAIAAgAUEEayIBNgIIDAELCyAAKAIAIgEEQCAAKAIMGiABEBgLC0oBAX8gACADNgIQIABBADYCDCABBEAgARDsDSEECyAAIAQ2AgAgACAEIAJBAnRqIgI2AgggACAEIAFBAnRqNgIMIAAgAjYCBCAAC1cBAX8gA0EAOgAcQcgAEIsBIgRBABCYCBogASAENgIAIAAgBCADKAIAIAMoAgQQ7wVByAAQiwEiAUEAEJgIGiACIAE2AgAgACABIAMoAgQgAygCABDvBQuhAwIIfwJ8IwBBEGsiCyQAIAMrAxAgAygCICsDECADKwMYoCADKwMIoaIhDyADKAIsIQwgAygCKCEIIAVBAkYhDQNAIAggDEYEQAJAIAMoAjghDCADKAI0IQgDQCAIIAxGDQECQCAIKAIAIgooAgQiBygCICABRyAEIAdGcg0AIAotABxBAXFFDQAgCyABQQAgAiACIAdGIg0bIgIgByADQQIgBUEBRiAGciIGQQFxIg4QkAggCiALKwMAIhA5AxAgCiAJIA0bIQkCQCACRQ0AIAsoAggiB0UNACAOBEAgCiEJIBAgBysDEGMNAQsgByEJCyAPIBCgIQ8LIAhBBGohCAwACwALBQJAIAgoAgAiCigCACIHKAIgIAFHIAQgB0ZyDQAgCi0AHEEBcUUNACALIAFBACACIAIgB0YiDhsiAiAHIANBASAGIA1yIgZBAXEQkAggCiALKwMAIhCaOQMQIAsoAggiByAKIAkgDhsiCSAHGyAJIAIbIQkgDyAQoCEPCyAIQQRqIQgMAQsLIAAgCTYCCCAAIA85AwAgC0EQaiQAC6kCAgR/A3wgASsDECABKAIgKwMQIAErAxigIAErAwihoiEIIAEoAjghByABKAI0IQQDQCAEIAdGBEACQCABKAIsIQcgASgCKCEEA0AgBCAHRg0BAkAgBCgCACIGKAIAIgUoAiAgAEcgAiAFRnINACAGLQAcQQFxRQ0AIAYgACAFIAEgAxCRCCIJmiIKOQMQIAggCaAhCCADKAIAIgUEQCAFKwMQIApkRQ0BCyADIAY2AgALIARBBGohBAwACwALBQJAIAQoAgAiBigCBCIFKAIgIABHIAIgBUZyDQAgBi0AHEEBcUUNACAGIAAgBSABIAMQkQgiCTkDECAIIAmgIQggAygCACIFBEAgCSAFKwMQY0UNAQsgAyAGNgIACyAEQQRqIQQMAQsLIAgLTwECfwJAIAAoAjwgACgCQEcEQCAAQTxqIQIDQCACEJQIIgEoAgAoAiAgASgCBCgCIEcNAiACEMsEIAAoAjwgACgCQEcNAAsLQQAhAQsgAQuyAQEIfyMAQRBrIgIkACACQb8DNgIMAn9BASABIgcgAGtBAnUiCCAIQQFMG0EBdiEJIAAhA0EBIQUCQANAIAQgCUYNASADKAIAIAAgBUECdGoiBigCACACKAIMEQAABEAgBgwDCyAFQQFqIAhGDQEgAygCACAGKAIEIAIoAgwRAABFBEAgA0EEaiEDIARBAWoiBEEBdEEBciEFDAELCyAGQQRqIQcLIAcLIAJBEGokACABRgssACAAKAIAIAAoAgQQkwhFBEBBt6sDQfPeAEE6QY7rABAAAAsgACgCACgCAAveAgEHfyMAQSBrIgEkACABQQA2AhggAUEANgIUIAFCADcCDCAAQTBqIQQDQAJAIAAoAjAgACgCNEYNACABIAQQlAgiAjYCGCACKAIAKAIgIgMgAigCBCgCIEYEQCAEEMsEDAILIAIoAhggAygCLE4NACAEEMsEIAFBDGogAUEYahDBAQwBCwsgASgCECEHIAEoAgwhAgJAIAECfwNAAkAgAiAHRgRAIAAoAjAgACgCNEcNAUEADAMLIAIoAgAiA0GIhQsoAgA2AhggASADNgIcIAAoAjAgACgCNBCTCEUNAyAEIAFBHGoQwQEgACgCMCEFIAAoAjQhBiMAQRBrIgMkACADQb8DNgIMIAUgBiADQQxqIAYgBWtBAnUQ7g0gA0EQaiQAIAJBBGohAgwBCwsgBBCUCAsiADYCGCABQQxqEIICGiABQSBqJAAgAA8LQberA0Hz3gBBxwBBxhwQAAALCwAgAEE8QQAQ4AoLCwAgAEEwQQEQ4AoLXQAgAEIANwMQIABBADYCCCAAQgA3AwAgAEIANwIsIABCADcDGCAAQgA3AyAgAEEAOgAoIABCADcCNCAAQgA3AjwgAEEANgJEIAEEQCABQgA3AxggACABEPUNCyAAC+INAgh/BnwjAEGAAWsiBCQAIAAQOCIIQcgAEBkhCSAEQcgAaiAAEIEDIAQrA1AhDyAEKwNIIQwgBC0AWEEBcSIGBEAgD0QAAAAAAABSQKMhDyAMRAAAAAAAAFJAoyEMCyAAEBshAyAJIQIDQCADBEAgAygCECIFKwMoIQogBSsDICELAnwgBgRAIA8gCkQAAAAAAADgP6KgIQogDCALRAAAAAAAAOA/oqAMAQsgDyAKokQAAAAAAADgP6IhCiAMIAuiRAAAAAAAAOA/ogshCyACIAUoApQBIgUrAwAiDTkDACAFKwMIIQ4gAiADNgJAIAIgCjkDOCACIAs5AzAgAiALIA2gOQMgIAIgDSALoTkDECACIA45AwggAiAKIA6gOQMoIAIgDiAKoTkDGCACQcgAaiECIAAgAxAcIQMMAQsLAkACQAJAAkAgAUEASARAQQAhACAIQQAgCEEAShshBkQAAAAAAAAAACEKIAkhAwNAIAAgBkcEQCADQcgAaiIBIQIgAEEBaiIAIQUDQCAFIAhGBEAgASEDDAMLAkAgAysDICACKwMQZkUNACACKwMgIAMrAxBmRQ0AIAMrAyggAisDGGZFDQAgAisDKCADKwMYZg0HC0QAAAAAAADwfyELRAAAAAAAAPB/IQwgAysDACIOIAIrAwAiDWIEQCADKwMwIAIrAzCgIA4gDaGZoyEMCyADKwMIIg4gAisDCCINYgRAIAMrAzggAisDOKAgDiANoZmjIQsLIAsgDCALIAxjGyILIAogCiALYxshCiAFQQFqIQUgAkHIAGohAgwACwALCyAKRAAAAAAAAAAAYQ0DQYzhCi0AAEUNASAEIAo5AwBBuPwIKAIAQYiHBSAEEDIMAQsCQCAIQQBOBEAgBEIANwNQIARCADcDeCAEQUBrQgA3AwAgBEIANwNwIARCADcDOCAEQgA3A0ggBEHIAGogBEE4ahB7QQAhBiAJIQUDQAJAIAYgCEYEQCAEQcgAahD6DSAEKAJUIgAgBCgCUCIHSwRAIAQoAkggACAHQRAQigEhACAEIAc2AlQgBCAANgJICyAEQcgAahD6DSAEKAJIIQYgB0EBRw0BIAYQGAwHCyAFQcgAaiIAIQIgBkEBaiIGIQMDQCADIAhGBEAgACEFDAMFAkAgBSsDICACKwMQZkUNACACKwMgIAUrAxBmRQ0AIAUrAyggAisDGGZFDQAgAisDKCAFKwMYZkUNAEQAAAAAAADwfyEKRAAAAAAAAPB/IQsCQCAFKwMAIg4gAisDACINYQ0AIAUrAzAgAisDMKAgDiANoZmjIgtEAAAAAAAA8D9jRQ0ARAAAAAAAAPA/IQsLIAQgCzkDYAJAIAUrAwgiDSACKwMIIgthDQAgBSsDOCACKwM4oCANIAuhmaMiCkQAAAAAAADwP2NFDQBEAAAAAAAA8D8hCgsgBCAKOQNoIAQgBCkDaDcDMCAEIAQpA2A3AyggBEHIAGogBEEoahB7CyADQQFqIQMgAkHIAGohAgwBCwALAAsLIAEEQEEBIAcgB0EBTRshAEQAAAAAAAAAACEKIAYhAkEBIQMDQCAAIANGBEAgCiELDAQFIAIrAxAgAisDGBAqIgsgCiAKIAtjGyEKIANBAWohAyACQRBqIQIMAQsACwALIAZCgICAgICAgPj/ADcDCCAGQoCAgICAgID4PzcDACAGQRBqIAdBAWsiAEEQQb0DEJUBIAdBEBAZIQMgBiAAQQR0IgBqKwMAIQsgACADaiIAQoCAgICAgID4PzcDCCAAIAs5AwAgBwRAIAdBAmshBQNAIAMgBSIAQQR0IgVqIgEgBSAGaisDADkDACABIAYgBUEQaiIBaisDCCABIANqKwMIECI5AwggAEEBayEFIAANAAsLQQAhBUQAAAAAAADwfyEKQQAhAgNAIAIgB0YEQAJAIApEAAAAAAAA8H9jIApEAAAAAAAA8H9kckUNACADIAVBBHRqIgArAwghCiAAKwMAIQsgAxAYDAQLBSADIAJBBHRqIgArAwAgACsDCKIiCyAKIAogC2QiABshCiACIAUgABshBSACQQFqIQIMAQsLQaHdAUGowQFB6wVBg9ABEAAAC0GmnQNBqMEBQcEGQeoZEAAACyAGEBhBjOEKLQAARQ0BIAQgCjkDGCAEIAs5AxBBuPwIKAIAQfeGBSAEQRBqEDIMAQsgCiELC0EAIQMgCEEAIAhBAEobIQVBASEAIAkhAgNAIAMgBUYNAiACKAJAKAIQKAKUASIBIAsgAisDAKI5AwAgASAKIAIrAwiiOQMIIANBAWohAyACQcgAaiECDAALAAtBACEACyAJEBggBEGAAWokACAAC/EEAQt/IABFBEBBAA8LIAAoAhghBiAAKAIUIgkoAgAhAgJAAkACQAJAAkACQCAAKAIQQQFrDggAAQUCBQUFAwULIAAoAhwhBQNAIAMgACgCAE4NBCAJIANBAWoiCEECdGohBwNAIAIgBygCACIETkUEQCADIAYgAkECdGooAgAiBEcEQCAGIAFBAnRqIAQ2AgAgBSABQQN0aiAFIAJBA3RqKwMAOQMAIAFBAWohAQsgAkEBaiECDAELCyAHIAE2AgAgBCECIAghAwwACwALIAAoAhwhBQNAIAMgACgCAE4NAyAJIANBAWoiCEECdGohBwNAIAIgBygCACIETkUEQCADIAYgAkECdGooAgAiBEcEQCAGIAFBAnRqIAQ2AgAgBSABQQR0aiIEIAUgAkEEdGoiCisDADkDACAEIAorAwg5AwggAUEBaiEBCyACQQFqIQIMAQsLIAcgATYCACAEIQIgCCEDDAALAAsgACgCHCEFA0AgAyAAKAIATg0CIAkgA0EBaiIIQQJ0aiEHA0AgAiAHKAIAIgRORQRAIAMgBiACQQJ0IgRqKAIAIgpHBEAgBiABQQJ0IgtqIAo2AgAgBSALaiAEIAVqKAIANgIAIAFBAWohAQsgAkEBaiECDAELCyAHIAE2AgAgBCECIAghAwwACwALA0AgAyAAKAIATg0BIAkgA0EBaiIIQQJ0aiEFA0AgAiAFKAIAIgRORQRAIAMgBiACQQJ0aigCACIERwRAIAYgAUECdGogBDYCACABQQFqIQELIAJBAWohAgwBCwsgBSABNgIAIAQhAiAIIQMMAAsACyAAIAE2AgggACEBCyABC+MMARN/AkACQCAARSABRXJFBEAgASgCICAAKAIgcg0BIAAoAhAiAiABKAIQRw0CAkAgACgCACIEIAEoAgBHDQAgACgCBCIDIAEoAgRHDQAgASgCGCETIAEoAhQhDiAAKAIYIRQgACgCFCEPIAQgAyABKAIIIAAoAghqIAJBABC5AiINBEBBACECIANBACADQQBKGyEIIA0oAhghECANKAIUIQsgA0EEEEohCQNAIAIgCEZFBEAgCSACQQJ0akF/NgIAIAJBAWohAgwBCwtBACECIAtBADYCAAJAAkACQAJAAkAgACgCEEEBaw4IAAEEAgQEBAMECyAEQQAgBEEAShshDCANKAIcIQQgASgCHCEDIAAoAhwhEUEAIQADQCAAIAxGDQQgDyAAQQFqIgFBAnQiCGohCiAPIABBAnQiBWooAgAhAANAIAAgCigCAE5FBEAgCSAUIABBAnRqKAIAIgdBAnRqIAI2AgAgECACQQJ0aiAHNgIAIAQgAkEDdGogESAAQQN0aisDADkDACAAQQFqIQAgAkEBaiECDAELCyAFIAtqIQogCCAOaiEHIAUgDmooAgAhAANAIAAgBygCAE5FBEACQCAJIBMgAEECdGooAgAiBUECdGooAgAiBiAKKAIASARAIBAgAkECdGogBTYCACAEIAJBA3RqIAMgAEEDdGorAwA5AwAgAkEBaiECDAELIAQgBkEDdGoiBSADIABBA3RqKwMAIAUrAwCgOQMACyAAQQFqIQAMAQsLIAggC2ogAjYCACABIQAMAAsACyAEQQAgBEEAShshDCANKAIcIQQgASgCHCEIIAAoAhwhEUEAIQADQCAAIAxGDQMgDyAAQQFqIgFBAnQiBWohCiAPIABBAnQiA2ooAgAhAANAIAAgCigCAE5FBEAgCSAUIABBAnRqKAIAIgdBAnRqIAI2AgAgECACQQJ0aiAHNgIAIAQgAkEEdGoiByARIABBBHRqIgYrAwA5AwAgByAGKwMIOQMIIABBAWohACACQQFqIQIMAQsLIAMgC2ohCiAFIA5qIQcgAyAOaigCACEAA0AgACAHKAIATkUEQAJAIAkgEyAAQQJ0aigCACIDQQJ0aigCACIGIAooAgBIBEAgECACQQJ0aiADNgIAIAQgAkEEdGoiAyAIIABBBHRqIgYrAwA5AwAgAyAGKwMIOQMIIAJBAWohAgwBCyAEIAZBBHRqIgMgCCAAQQR0aiIGKwMAIAMrAwCgOQMAIAMgBisDCCADKwMIoDkDCAsgAEEBaiEADAELCyAFIAtqIAI2AgAgASEADAALAAsgBEEAIARBAEobIQwgDSgCHCEEIAEoAhwhAyAAKAIcIRFBACEAA0AgACAMRg0CIA8gAEEBaiIBQQJ0IghqIQogDyAAQQJ0IgVqKAIAIQADQCAAIAooAgBORQRAIAkgFCAAQQJ0IgdqKAIAIgZBAnRqIAI2AgAgECACQQJ0IhJqIAY2AgAgBCASaiAHIBFqKAIANgIAIABBAWohACACQQFqIQIMAQsLIAUgC2ohCiAIIA5qIQcgBSAOaigCACEAA0AgACAHKAIATkUEQAJAIAkgEyAAQQJ0IgVqKAIAIgZBAnRqKAIAIhIgCigCAEgEQCAQIAJBAnQiEmogBjYCACAEIBJqIAMgBWooAgA2AgAgAkEBaiECDAELIAQgEkECdGoiBiAGKAIAIAMgBWooAgBqNgIACyAAQQFqIQAMAQsLIAggC2ogAjYCACABIQAMAAsACyAEQQAgBEEAShshCEEAIQADQCAAIAhGDQEgDyAAQQFqIgFBAnQiBGohBSAPIABBAnQiA2ooAgAhAANAIAAgBSgCAE5FBEAgCSAUIABBAnRqKAIAIgxBAnRqIAI2AgAgECACQQJ0aiAMNgIAIABBAWohACACQQFqIQIMAQsLIAMgC2ohBSAEIA5qIQwgAyAOaigCACEAA0AgACAMKAIATkUEQCAJIBMgAEECdGooAgAiA0ECdGooAgAgBSgCAEgEQCAQIAJBAnRqIAM2AgAgAkEBaiECCyAAQQFqIQAMAQsLIAQgC2ogAjYCACABIQAMAAsACyANIAI2AggLIAkQGAsgDQ8LQankAUH/vwFBwwVB/7cBEAAAC0Ht1gFB/78BQcQFQf+3ARAAAAtBgZ0BQf+/AUHFBUH/twEQAAALzAgCEH8BfAJAIABFDQAgACgCIEUEQCAAKAIYIQ0gACgCFCEHIAAoAgQiCCAAKAIAIgIgACgCCCIBIAAoAhBBABC5AiIJIAE2AgggCSgCGCEOIAkoAhQhA0F/IAggCEEASBtBAWohCkEAIQEDQCABIApGBEBBACEBIAJBACACQQBKGyEKIANBBGohBgNAAkAgASAKRgRAQQAhASAIQQAgCEEAShshAgNAIAEgAkYNAiABQQJ0IQYgAyABQQFqIgFBAnRqIgQgBCgCACADIAZqKAIAajYCAAwACwALIAcgAUEBaiICQQJ0aiEEIAcgAUECdGooAgAhAQNAIAQoAgAgAUwEQCACIQEMAwUgBiANIAFBAnRqKAIAQQJ0aiILIAsoAgBBAWo2AgAgAUEBaiEBDAELAAsACwtBACECAkACQAJAAkACQAJAIAAoAhBBAWsOCAABBAIEBAQDBAsgCSgCHCEGIAAoAhwhBANAIAIgCkYNBSAHIAJBAWoiAEECdGohCyAHIAJBAnRqKAIAIQEDQCALKAIAIAFMBEAgACECDAIFIA4gAyANIAFBAnRqIgUoAgBBAnRqKAIAQQJ0aiACNgIAIAQgAUEDdGorAwAhESADIAUoAgBBAnRqIgUgBSgCACIFQQFqNgIAIAYgBUEDdGogETkDACABQQFqIQEMAQsACwALAAsgCSgCHCEGIAAoAhwhBEEAIQADQCAAIApGDQQgByAAQQFqIgJBAnRqIQsgByAAQQJ0aigCACEBA0AgCygCACABTARAIAIhAAwCBSAOIAMgDSABQQJ0aiIFKAIAQQJ0aigCAEECdGogADYCACAGIAMgBSgCAEECdGoiBSgCACIMQQR0aiIPIAQgAUEEdGoiECsDADkDACAPIBArAwg5AwggBSAMQQFqNgIAIAFBAWohAQwBCwALAAsACyAJKAIcIQYgACgCHCEEQQAhAANAIAAgCkYNAyAHIABBAWoiAkECdGohCyAHIABBAnRqKAIAIQEDQCALKAIAIAFMBEAgAiEADAIFIA4gAyANIAFBAnQiBWoiDCgCAEECdGooAgBBAnRqIAA2AgAgBCAFaigCACEFIAMgDCgCAEECdGoiDCAMKAIAIgxBAWo2AgAgBiAMQQJ0aiAFNgIAIAFBAWohAQwBCwALAAsACwNAIAIgCkYNAiAHIAJBAWoiAEECdGohBiAHIAJBAnRqKAIAIQEDQCAGKAIAIAFMBEAgACECDAIFIAMgDSABQQJ0aigCAEECdGoiBCAEKAIAIgRBAWo2AgAgDiAEQQJ0aiACNgIAIAFBAWohAQwBCwALAAsACyAJEGkMBAsDQCAIQQBMRQRAIAMgCEECdGogAyAIQQFrIghBAnRqKAIANgIADAELCyADQQA2AgAgCQ8FIAMgAUECdGpBADYCACABQQFqIQEMAQsACwALQYfXAUH/vwFBxgBBppsBEAAAC0EACwsAIAAgAUECEJ4ICz4BAnwgAbchAwNAQczhCi8BACACSgRAENcBIQQgACgCECgClAEgAkEDdGogBCADojkDACACQQFqIQIMAQsLC/cBAgJ/AnwjAEEwayIDJAAgACABEC0hAQNAIAEEQAJAAkAgAkUNACABIAIQQSIELQAARQ0AIAMgA0EoajYCIAJAIARBtowBIANBIGoQT0EATA0AIAMrAygiBUQAAAAAAAAAAGMNACAFRAAAAAAAAAAAYg0CQZjhCigCAA0CCyADIAQ2AhBBksADIANBEGoQKyAAECAhBCADQoCAgICAgID4PzcDCCADIAQ2AgBBqq8EIAMQggELIANCgICAgICAgPg/NwMoRAAAAAAAAPA/IQULIAEoAhAgBTkDiAEgBiAFoCEGIAAgARAwIQEMAQsLIANBMGokACAGC0MBAX8gACABEOcBIgRFBEBBAA8LIAMEfyAAKAI0IARBIGoQiQ4FQQALIQEgAgR/IAAoAjQgBEEcahCJDiABagUgAQsLkAEBBX8jAEHgAGsiAyQAIABBAUGR+gBB5ooFECEhBSAAQQFBwj9B5ooFECEhBiAAEBshAiABQQJJIQEDQCACBEAgA0E3aiIEIAIoAhA0AvQBEJAOIAIgBSAEEHIgAUUEQCADQQ5qIgQgAigCEDQC+AEQkA4gAiAGIAQQcgsgACACEBwhAgwBCwsgA0HgAGokAAvYAQECfyAAEHohAQNAIAEEQCABEKIIIAEQeSEBDAELCwJAIABBrCtBAEEBEDVFDQAgACgCECgCCBAYIAAoAhAiAUEANgIIIAEoArgBEBggACgCECgCjAIQGCAAKAIQKALYARAYIAAoAhAiAigCxAEEQCACKALoASEBA0AgASACKALsAUpFBEAgAigCxAEgAUHIAGxqKAIMEBggAUEBaiEBIAAoAhAhAgwBCwsgAigCxAFBuH9BACACKALoAUF/RhtqEBgLIAAQNyAARg0AIAAoAhAoAgwQvgELC54CAQN/IwBBQGoiAiQAIAJCADcDOCACQgA3AzACfyAAEDhFBEAgAUEANgIAQQAMAQsgAkIANwMQIAJCADcDICACQgA3AwggAkIANwMYIAJBsgM2AiwgAkGzAzYCKCAAEBshAwNAIAMEQCADKAIQQQA2ArABIAAgAxAcIQMMAQsLIAAQGyEDA0AgAwRAIANBfyACKAIsEQAARQRAIAJBMGoiBEEAEPoFIAIgAigCEDYCACAEIAIQ+QUgACAEEPgFQQEQlgEiBEGsK0GYAkEBEDUaIAAgAyAEIAJBGGoQ9wUaIAJBCGogBBBVCyAAIAMQHCEDDAELCyACQRhqEKYIIAJBMGoQXyABIAIoAhA2AgAgAkEIahClCAsgAkFAayQAC64BAQN/IwBBEGsiBCQAIAAQRiICIAFqIgEgAkEBdEGACCACGyIDIAEgA0sbIQEgABAkIQMCQAJAIAAtAA9B/wFGBEAgACgCACACIAFBARCKASECDAELQQAgASABQQEQRyICGw0BIAIgACADEB8aIAAgAzYCBAsgAEH/AToADyAAIAE2AgggACACNgIAIARBEGokAA8LIAQgATYCAEG4/AgoAgBB0/MDIAQQHhoQKAALqwEBBX8gACgCBCECAkACQANAIAIEQCAAKAIMIgNFDQIgACgCACgCACEBA0AgAwRAIAAoAgAgA0EBayIDQQJ0aiIEKAIAIAQgATYCACEBDAEFIAAgAkEBayICNgIEDAMLAAsACwsgACgCCCAAKAIMSw0BIABCADcCCCAAKAIAIABCADcCAA8LQeKaA0GhwgFB7wBBibwBEAAAC0G6qQNBocIBQe8AQYm8ARAAAAtHAQF/A0AgASAAKAIIT0UEQCAAIAEQnA4aIAAgARCbDiABQQFqIQEMAQsLIABCADcCBCAAKAIAEBggAEIANwIIIABCADcCAAv/BAICfwF9IABB5KYBECYhAyMAQeAAayIAJAACQAJAIAIEQCACIAE2AhAgAkIANwIYIAJBADYCBCADRQ0CIANBwhAQng4EQCACQQQ2AhAgAy0ABUHfAEcEQCADQQVqIQMMAwsgA0EGaiEDA0ACQAJAAkACQAJAAkACQAJAIAMtAAAiBEHsAGsOCgQLCwsLCwULAgEACwJAIARB4gBrDgIDBgALQcAAIQEgBEHpAEcNCgwGC0ECIQEMBQtBECEBDAQLQSAhAQwDC0EEIQEMAgtBCCEBDAELQQEhAQsgAiACKAIcIAFyNgIcIANBAWohAwwACwALIANBsScQng4EQCACQQU2AhAgACAAQdwAajYCUAJAIANBBmpBg48BIABB0ABqEE9BAEwNACAAKgJcIgVDAAAAAF5FDQAgAiAFOAIADAQLIAJBgICA/AM2AgAMAwsgA0G/PRBlBEAgAkEBNgIQDAMLIANB6IABEGUEQCACQQM2AhAMAwsgA0HfpgEQZUUNAiACQQI2AhAMAgtBxuQAQYzFAUG9CUGG5QAQAAALIAAgAEHcAGo2AkAgA0GRugEgAEFAaxBPQQBMDQAgACgCXCIBQQBMDQAgAiABNgIEC0GM4QotAAAEQEG14gRBC0EBQbj8CCgCACIBEEwaIAAgAigCEEEBayIDQQRNBH8gA0ECdEGkzwhqKAIABUGUtAELNgIwIAFB34wEIABBMGoQHhogAigCEEEFRgRAIAAgAioCALs5AyAgAUGhswQgAEEgahAyCyAAIAIoAgQ2AhAgAUGo0QQgAEEQahAeGiAAIAIoAhw2AgAgAUGb0QQgABAeGgsgAigCECAAQeAAaiQAC6kFAgN/B3wgBiABKAIMQQV0aiIHKwMYIQsgBysDECEMIAcrAwghDSAHKwMAIQ4CQCAARQRAAn8gCyANoSAFQQF0uCIKoCAEuCIPo5siEJlEAAAAAAAA4EFjBEAgEKoMAQtBgICAgHgLQX5tIQUCfyAMIA6hIAqgIA+jmyIKmUQAAAAAAADgQWMEQCAKqgwBC0GAgICAeAtBfm0gBSABIAIgAyAEIAYQhAINAQtBAEEAIAEgAiADIAQgBhCEAg0AQQEhACAMIA6hmyALIA2hm2ZFBEADQEEAIQdBACAAayEFA0ACQCAFIAdOBEAgBSEIA0AgACAIRg0CIAggByABIAIgAyAEIAYQhAIgCEEBaiEIRQ0ACwwFCyAFIAcgASACIAMgBCAGEIQCDQQgB0EBayEHDAELCwNAIAAgB0cEQCAAIAcgASACIAMgBCAGEIQCIAdBAWohB0UNAQwECwsgACEHA0ACQCAFIAdOBEAgACEFA0AgBUEATA0CIAcgBSABIAIgAyAEIAYQhAIgBUEBayEFRQ0ACwwFCyAHIAAgASACIAMgBCAGEIQCDQQgB0EBayEHDAELCyAAQQFqIQAMAAsACwNAQQAhB0EAIABrIQgDQCAAIAdGBEAgCCEHA0AgACAHRgRAIAAhBwNAAkAgByAITARAIAAhBQNAIAUgCEwNAiAHIAUgASACIAMgBCAGEIQCDQkgBUEBayEFDAALAAsgByAAIAEgAiADIAQgBhCEAg0HIAdBAWshBwwBCwsDQCAHBEAgByAFIAEgAiADIAQgBhCEAiAHQQFqIQdFDQEMBwsLIABBAWohAAwECyAAIAcgASACIAMgBCAGEIQCIAdBAWohB0UNAAsMAwsgByAIIAEgAiADIAQgBhCEAiAHQQFqIQdFDQALCwsLkQoDBH8DfAF+IwBBsAFrIgckAAJAAkAgBkUNACAAKAIQKAIIIgZFDQAgBbghCwNAIAggBigCBE8NAiAGKAIAIAhBMGxqIgEoAgwgASgCCCEFIAEoAgQhCSABKAIAIQYgByABKQMoNwOoASAHIAEpAyA3A6ABIAcCfyAFBEAgByABKQMYNwOYASAHIAEpAxA3A5ABQQEhBSAGDAELIAcgBikDCDcDmAEgByAGKQMANwOQAUECIQUgBkEQagsiASkDCDcDiAEgByABKQMANwOAASAEIAcrA5gBoCEMIAcCfCADIAcrA5ABoCINRAAAAAAAAAAAZgRAIA0gC6MMAQsgDUQAAAAAAADwP6AgC6NEAAAAAAAA8L+gCzkDkAEgByAMRAAAAAAAAAAAZgR8IAwgC6MFIAxEAAAAAAAA8D+gIAujRAAAAAAAAPC/oAs5A5gBIAQgBysDiAGgIQwgBwJ8IAMgBysDgAGgIg1EAAAAAAAAAABmBEAgDSALowwBCyANRAAAAAAAAPA/oCALo0QAAAAAAADwv6ALOQOAASAHIAxEAAAAAAAAAABmBHwgDCALowUgDEQAAAAAAADwP6AgC6NEAAAAAAAA8L+gCzkDiAEgByAHKQOYATcDeCAHIAcpA4gBNwNoIAcgBykDkAE3A3AgByAHKQOAATcDYCAHQfAAaiAHQeAAaiACEPsFIAUgCSAFIAlLGyEBA0AgASAFRkUEQCAHIAcpA4gBNwOYASAHIAcpA4ABNwOQASAHIAYgBUEEdGoiCSkDCDcDiAEgByAJKQMANwOAASAEIAcrA4gBoCEMIAcCfCADIAcrA4ABoCINRAAAAAAAAAAAZgRAIA0gC6MMAQsgDUQAAAAAAADwP6AgC6NEAAAAAAAA8L+gCzkDgAEgByAMRAAAAAAAAAAAZgR8IAwgC6MFIAxEAAAAAAAA8D+gIAujRAAAAAAAAPC/oAs5A4gBIAcgBykDmAE3A1ggByAHKQOIATcDSCAHIAcpA5ABNwNQIAcgBykDgAE3A0AgB0HQAGogB0FAayACEPsFIAVBAWohBQwBCwsEQCAHKQOIASEOIAcgBykDqAE3A4gBIAcgDjcDmAEgBykDgAEhDiAHIAcpA6ABNwOAASAHIA43A5ABIAQgBysDiAGgIQwgBwJ8IAMgBysDgAGgIg1EAAAAAAAAAABmBEAgDSALowwBCyANRAAAAAAAAPA/oCALo0QAAAAAAADwv6ALOQOAASAHIAxEAAAAAAAAAABmBHwgDCALowUgDEQAAAAAAADwP6AgC6NEAAAAAAAA8L+gCzkDiAEgByAHKQOYATcDOCAHIAcpA4gBNwMoIAcgBykDkAE3AzAgByAHKQOAATcDICAHQTBqIAdBIGogAhD7BQsgCEEBaiEIIAAoAhAoAgghBgwACwALIAdBgAFqIABBUEEAIAAoAgBBA3FBAkcbaigCKBD4BiAEIAcrA4gBoCEEIAcCfCADIAcrA4ABoCIDRAAAAAAAAAAAZgRAIAMgBbijDAELIANEAAAAAAAA8D+gIAW4o0QAAAAAAADwv6ALOQOAASAHIAREAAAAAAAAAABmBHwgBCAFuKMFIAREAAAAAAAA8D+gIAW4o0QAAAAAAADwv6ALOQOIASAHIAEpAwg3AxggASkDACEOIAcgBykDiAE3AwggByAONwMQIAcgBykDgAE3AwAgB0EQaiAHIAIQ+wULIAdBsAFqJAALqQEBBX8gABAbIQIDQCACBEAgAigCEEEANgLoASAAIAIQLSEDA0AgAwRAAkAgAygCECgCsAEiAUUNAANAIAEgAUEwayIEIAEoAgBBA3FBAkYbKAIoKAIQIgUtAKwBQQFHDQEgBUEANgLoASABIAQgASgCAEEDcUECRhsoAigoAhAoAsgBKAIAIgENAAsLIAAgAxAwIQMMAQsLIAAgAhAcIQIMAQsLIAAQqQ4LYgEDfyAAIAFGBEBBAQ8LIAAoAhAoAsgBIQNBACEAA0ACQCADIABBAnRqKAIAIgJBAEchBCACRQ0AIABBAWohACACQVBBACACKAIAQQNxQQJHG2ooAiggARCrCEUNAQsLIAQLIwAgACgCCEUEQEH4pgNBysIBQccAQZ8fEAAACyAAQQAQgQYLDgAgAEHHAEHKwgEQ0AoLmAECA38CfCAAKAIQIgEoAsQBBEAgASgCyAEhAQNAIAEoAgAiAygCECICQfgAaiEBIAItAHANAAsgAigCYCIBKwMgIQQgASsDGCEFIAAQLyECIAMoAhAoAmAiASAAKAIQIgArAxAgBCAFIAIoAhAoAnRBAXEbRAAAAAAAAOA/oqA5AzggACsDGCEEIAFBAToAUSABIAQ5A0ALCz4BAnwgACABKwMAIgIQMTkDACAAIAErAwgiAxAxOQMIIAAgAiABKwMQoBAxOQMQIAAgAyABKwMYoBAxOQMYC0MBAn8jAEEQayIAJABBAUGIFBBHIgFFBEAgAEGIFDYCAEG4/AgoAgBB0/MDIAAQHhoQKAALIAEQ6A4gAEEQaiQAIAELEgAgACABQa0kQRdBicEBEKUEC8ABAQZ/IwBBMGsiASQAIAFBGGpBBHIhBQNAIAIgACgCCE9FBEAgAUEEaiAAIAIQhgYgASABKQIMNwMgIAEgASgCFDYCKCABIAEpAgQ3AxhBACEDIAEoAiQhBAJAA0AgAyAETw0BIAUgAxCxCBogAyABKAIkIgRJIANBAWohAw0AC0HCvANBicEBQRdBvykQAAALIAFCADcDICABKAIcEBggACACEIcGGiACQQFqIQIMAQsLIABCADcCBCABQTBqJAAL2wIBBX8CQCABKAIQIgUoAugBDQBBtIQLKAIAIQYCQCACBEADQCAFKALIASAEQQJ0aigCACIHRQ0CIAcQ9A5FBEAgBiADQQJ0aiAHNgIAIAEoAhAhBSADQQFqIQMLIARBAWohBAwACwALA0AgBSgCwAEgBEECdGooAgAiB0UNASAHEPQORQRAIAYgA0ECdGogBzYCACABKAIQIQUgA0EBaiEDCyAEQQFqIQQMAAsACyADQQJIDQAgBiADQQJ0akEANgIAIAYgA0EEQagDEJUBQVBBMCACGyEBQQJBAyACGyECQQEhBANAIAYgBEECdGoiBSgCACIDRQ0BIAVBBGsoAgAiBSABQQAgBSgCAEEDcSACRxtqKAIoIgUgAyABQQAgAygCAEEDcSACRxtqKAIoIgMQqA8NASAFIANBABDFCCIDKAIQQQQ6AHAgACADEI0GIARBAWohBAwACwALCwsAQQAgACABEIcPCxMAIAAgAUH0rAFBFUGvgwEQpAQLpwQCDX8EfiAAKAIQIgQoAuwBIQYgBCgC6AEhAgNAIAIgBkoEQAJAA0AgBCgC6AEhAkIAIREDQCAEKALsASEDAkADQCACIANKDQEgBCgCxAEiBSACQcgAbCIJaiIGLQAwRQRAIAJBAWohAgwBCwtBACEIIAZBADoAMCACQQFqIQZBsIQLKAIAIQxCACESIAJBAWtByABsIQoDQCAFIAZByABsIgtqIQ0gBSAJaiIOKAIAQQFrIQUCQANAIAUgCEwNASAOKAIEIgMgCEECdGooAgAiBygCECgC+AEgAyAIQQFqIghBAnRqKAIAIgMoAhAoAvgBTg0GIAAgByADEIgPDQACfiACQQBMBEBCACEPQgAMAQsgByADEPwOIQ8gAyAHEPwOCyEQIA0oAgBBAEoEQCAPIAcgAxD7Dqx8IQ8gECADIAcQ+w6sfCEQCyABRSAPQgBXciAPIBBSciAPIBBXcQ0ACyAHIAMQtwggDCgCECgCxAEiAyAJakEAOgAxIAAoAhAiBCgCxAEiBSAJakEBOgAwIAQoAugBIAJIBEAgAyAKakEAOgAxIAUgCmpBAToAMAsgDyAQfSASfCESIAIgBCgC7AFODQEgAyALakEAOgAxIAUgC2pBAToAMAwBCwsgESASfCERIAYhAgwBCwsgEUIAVQ0ACw8LBSAEKALEASACQcgAbGpBAToAMCACQQFqIQIMAQsLQd6lA0H+wQFBswVBw+AAEAAAC3IBBH8gACgCECICKAL4ASEDIAIgASgCECgC+AEiBDYC+AEgAigC9AFByABsIgJBsIQLKAIAIgUoAhAoAsQBaigCBCAEQQJ0aiAANgIAIAEoAhAgAzYC+AEgBSgCECgCxAEgAmooAgQgA0ECdGogATYCAAuCAQEGfyAAKAIQIgMoAuwBIQQgAygC6AEhAQNAIAEgBEpFBEBBACEAIAMoAsQBIAFByABsaiIFKAIAIgJBACACQQBKGyECA0AgACACRkUEQCAFKAIEIABBAnRqKAIAKAIQIgYgBigC+AG3OQMQIABBAWohAAwBCwsgAUEBaiEBDAELCwvyAQEHf0EBIQEDQCAAKAIQIgIoArQBIAFIBEACQCACKAKMAkUNACACKALoASEBA0AgASACKALsAUoNASABQQJ0IgUgAigCjAJqKAIAIgMEQCAAIANBfxCEDyEEIAAgA0EBEIQPIQMgACgCECgCjAIgBWogBDYCACAAEGMhBSABQcgAbCIGIAAoAhAiAigCxAFqIgcgBSgCECgCxAEgBmooAgQgBCgCECgC+AEiBEECdGo2AgQgByADKAIQKAL4ASAEa0EBajYCAAsgAUEBaiEBDAALAAsFIAIoArgBIAFBAnRqKAIAELkIIAFBAWohAQwBCwsL2Q4DFn8DfgJ8IwBBIGsiCSQAQv///////////wAhGSABQQJPBEAQ0wQhGSAAELgIC0G4/AgoAgAhFCAZIRgCQANAAkAgGSEaAkACQAJAIAFBAmsOAgEDAAtByOEKKAIAIQICQCAAEGMgAEcNACAAIAEQjA9FDQBCfyEYDAULIAFFBEAgABCLDwtBBCACIAJBBE4bIQIgABCKDxDTBCIZIBhVDQEgABC4CCAZIRgMAQtByOEKKAIAIQIgGCAaUwRAIAAQiQ8LIBghGQtBACENIAJBACACQQBKGyEVQQAhDgNAAkACQCANIBVGDQBBjOEKLQAABEAgCSAYNwMYIAkgGTcDECAJIA42AgggCSANNgIEIAkgATYCACAUQdi/BCAJEB4aCyAZUCAOQbiECygCAE5yDQAgACgCECECAn8gDUEBcSIWRQRAIAJB7AFqIQNBASERIAIoAugBIgIgAkGwhAsoAgAoAhAoAugBTGoMAQsgAkHoAWohA0F/IREgAigC7AEiAiACQbCECygCACgCECgC7AFOawshECAOQQFqIQ4gDUECcSESIAMoAgAgEWohFwNAIBAgF0YNAkEAIQhBvIQLKAIAIgRBBGshByAAKAIQKALEASICIBBByABsIhNqKAIEIQoDQCACIBNqIg8oAgAiBiAITARAQQAhCCAGQQAgBkEAShshC0EAIQUDQAJAAn8CQCAFIAtHBEAgCiAFQQJ0aigCACgCECIEKALMAQ0DIAQoAsQBDQMgBAJ8IAQoAtwBBEAgBCgC2AEiDCgCACICQTBBACACKAIAQQNxQQNHG2ooAighAkEBIQMDQCAMIANBAnRqKAIAIgcEQCAHQTBBACAHKAIAQQNxQQNHG2ooAigiByACIAcoAhAoAvgBIAIoAhAoAvgBShshAiADQQFqIQMMAQsLIAIoAhArA4ACIhtEAAAAAAAAAABmRQ0DIBtEAAAAAAAA8D+gDAELIAQoAtQBRQ0CIAQoAtABIgwoAgAiAkFQQQAgAigCAEEDcUECRxtqKAIoIQJBASEDA0AgDCADQQJ0aigCACIHBEAgB0FQQQAgBygCAEEDcUECRxtqKAIoIgcgAiAHKAIQKAL4ASACKAIQKAL4AUgbIQIgA0EBaiEDDAELCyACKAIQKwOAAiIbRAAAAAAAAAAAZEUNAiAbRAAAAAAAAPC/oAs5A4ACQQAMAgtBACEHQQBBfCAIQQFxG0EAIBIbIQsgDygCBCIFIAZBAnRqIQMDQAJAIAZBAEoEQCAGQQFrIQYgBSECA0AgAiADTw0CA0AgAiADTw0DIAIoAgAiDygCECsDgAIiG0QAAAAAAAAAAGMEQCACQQRqIQIMAQVBACEEA0AgAkEEaiICIANPDQUgAigCACEKIAQiCEEBcQRAQQEhBCAKKAIQKALoAQ0BCyAAIA8gChCIDw0DIAooAhAiBCsDgAIiHEQAAAAAAAAAAGZFBEAgBCgC6AFBAEcgCHIhBAwBCwsgGyAcZCASRSAbIBxmcXJFDQIgDyAKELcIIAdBAWohBwwCCwALAAsACwJAIAdFDQBBsIQLKAIAKAIQKALEASATaiICQQA6ADEgEEEATA0AIAJBF2tBADoAAAsgECARaiEQDAgLIAMgC2ohAwwACwALQQELIAhyIQgLIAVBAWohBQwACwAFIAogCEECdGooAgAiDygCECEGAkAgFkUEQCAGKALAASELQQAhAkEAIQUDQCALIAVBAnRqKAIAIgNFDQIgAygCECIMLgGaAUEASgRAIAQgAkECdGogDC0AMCADQTBBACADKAIAQQNxQQNHG2ooAigoAhAoAvgBQQh0cjYCACACQQFqIQILIAVBAWohBQwACwALIAYoAsgBIQtBACECQQAhBQNAIAsgBUECdGooAgAiA0UNASADKAIQIgwuAZoBQQBKBEAgBCACQQJ0aiAMLQBYIANBUEEAIAMoAgBBA3FBAkcbaigCKCgCECgC+AFBCHRyNgIAIAJBAWohAgsgBUEBaiEFDAALAAtEAAAAAAAA8L8hGwJAAkACQAJAIAIOAwMAAQILIAQoAgC3IRsMAgsgBCgCBCAEKAIAakECbbchGwwBCyAEIAJBBEGmAxCVASACQQF2IQUCfCACQQFxBEAgBCAFQQJ0aigCALcMAQsgBCAFQQJ0aiIGQQRrKAIAIgUgBCgCAGsiAyAHIAJBAnRqKAIAIAYoAgAiAmsiBkYEQCACIAVqQQJttwwBCyAFtyAGt6IgArcgA7eioCADIAZqt6MLIRsgDygCECEGCyAGIBs5A4ACIAhBAWohCCAAKAIQKALEASECDAELAAsACwALIAFBAWohAUIAIRogGUIAUg0DDAILIAAgEkEARxC2CCAYENMEIhlZBEAgABC4CEEAIA4gGbkgGLlE16NwPQrX7z+iYxshDiAZIRgLIA1BAWohDQwACwALCyAYIBpTBEAgABCJDwsgGEIAVw0AIABBABC2CBDTBCEYCyAJQSBqJAAgGAuiAgEDfyMAQSBrIgIkAAJAQezhCigCACIBQbziCigCAHJFDQAgACABQQAQfCIBBEAgAUHNGRBlBEAgAEEBEPoODAILIAFBk+sAEGUEQCAAQQAQ+g4MAgsgAS0AAEUNASACIAE2AhBBoewEIAJBEGoQNgwBCyAAEHohAQNAIAEEQCABEMcBRQRAIAEQuwgLIAEQeSEBDAELC0G84gooAgBFDQAgABAbIQEDQCABRQ0BAkAgAUG84gooAgBBABB8IgNFDQAgA0HNGRBlBEAgACABQQEQswgMAQsgA0GT6wAQZQRAIAAgAUEAELMIDAELIAMtAABFDQAgAiABECA2AgQgAiADNgIAQaTyBCACEDYLIAAgARAcIQEMAAsACyACQSBqJAALuQIBBX8gASgCECIEQQE2AgggBCgCFCgCECgC+AEhBCADIAIQOEECdGogBDYCACACIAFBARCGARogACABEC0hBANAIAQEQCAFIARBUEEAIAQoAgBBA3EiBkECRxtqKAIoIgcoAhAiCCgCFCgCECgC+AEgBEEwQQAgBkEDRxtqKAIoKAIQKAIUKAIQKAL4AUpqIQUgCCgCCEUEQCAAIAcgAiADELwIIAVqIQULIAAgBBAwIQQMAQsLIAAgARDAAiEEA0AgBARAIAUgBEFQQQAgBCgCAEEDcSIBQQJHG2ooAigoAhAoAhQoAhAoAvgBIARBMEEAIAFBA0cbaigCKCIBKAIQIgYoAhQoAhAoAvgBSmohBSAGKAIIRQRAIAAgASACIAMQvAggBWohBQsgACAEEJYDIQQMAQsLIAULHgAgAQRAIAAQhwIhACABEIcCKAIQIAA2AqgBCyAAC3IBAn8jAEEgayIBJAACQCAAQYCAgIAESQRAIABBBBBHIgJFDQEgAUEgaiQAIAIPCyABQQQ2AgQgASAANgIAQbj8CCgCAEGE9AMgARAeGhAoAAsgASAAQQJ0NgIQQbj8CCgCAEHT8wMgAUEQahAeGhAoAAuNAQEBfwJAIAEoAhAiAygCkAENACADIAI2ApABIAAgARAtIQMDQCADBEAgACADQVBBACADKAIAQQNxQQJHG2ooAiggAhC/CCAAIAMQMCEDDAELCyAAIAEQwAIhAwNAIANFDQEgACADQTBBACADKAIAQQNxQQNHG2ooAiggAhC/CCAAIAMQlgMhAwwACwALCwsAIABB8icQJhBqC48GAQp/IwBBQGoiAyQAIANCADcDGEGchAtBAUGchAsoAgBBAWoiBiAGQQFNGzYCACADQgA3AxAgACgCEEEANgLcASAAEBshBiABQQBMIQlBACEBAkADQAJAAkACQAJAIAZFBEADQCABIAdGDQIgA0EQaiIAIAcQow8aIAAgBxCiDyAHQQFqIQcMAAsACwJAAkAgCQ0AIAYoAhAiAigC6AEiBEUNACAEKAIQKAKMAiACKAL0AUECdGooAgAhAgwBCyAGIgIQpwEgAkcNAwsgAigCECgCsAFBnIQLKAIARg0CIAAoAhBBADYCwAFBoIQLQQA2AgAgA0EQaiACEKEPA0AgAygCGCIBRQRAQQAhAQwDCyADQRBqIgIgAUEBayIBEKMPIQQgAiABEKIPIAMgATYCGCAERQ0CQZyECygCACICIAQoAhAiASgCsAFGDQAgASACNgKwAUEAIQVBoIQLKAIAIgIgACACGygCEEG4AUHAASACG2ogBDYCACABIAI2ArwBQaCECyAENgIAIAFBADYCuAEgAyAEKAIQIgEpA9gBNwMgIAMgASkD0AE3AyggAyABKQPAATcDMCADIAEpA8gBNwM4A0AgBUEERg0BAkAgA0EgaiAFQQN0aiIBKAIAIgpFDQAgASgCBCICRQ0AA0AgAkUNASAEIAogAkEBayICQQJ0aigCACIIQVBBACAIKAIAQQNxIgtBAkcbaigCKCIBRgRAIAhBMEEAIAtBA0cbaigCKCEBCyABKAIQKAKwAUGchAsoAgBGDQAgARCnASABRw0AIANBEGogARChDwwACwALIAVBAWohBQwACwALAAsgAygCEBAYIANBQGskAA8LIAAoAhAiAiACKALcASIEQQFqIgU2AtwBIARB/////wNPDQEgAigC2AEgBUECdCIFEDoiAkUNAyAAKAIQIgUgAjYC2AEgAiAEQQJ0aiAFKALAATYCAAsgACAGEBwhBgwBCwtB38kDQZiFAUHNAEHvugEQAAALIAMgBTYCAEG4/AgoAgBB0/MDIAMQHhoQKAALbQEDfyAAEJUCIAAgAEEwayIBIAAoAgBBA3EiAkECRhsoAiggACAAQTBqIgMgAkEDRhsoAigQuQMiAgRAIAAgAhCQAw8LIAAgASAAKAIAQQNxIgFBAkYbKAIoIAAgAyABQQNGGygCKCAAEOUBGguIAQEBfyAABEACQCAAKAIQKAJ4IgFFDQAgASgCECIBKAKwASAARw0AIAFBADYCsAELIABBMEEAIAAoAgBBA3FBA0cbaigCKCgCEEHQAWogABCQBiAAQVBBACAAKAIAQQNxQQJHG2ooAigoAhBB2AFqIAAQkAYPC0Hq2wFBjsMBQd4BQZWkARAAAAtWAQJ/IAEoAhAiAiAAKAIQIgMoAsABIgA2ArgBIAAEQCAAKAIQIAE2ArwBCyADIAE2AsABIAJBADYCvAEgACABRgRAQYytA0GOwwFBuAFB2qYBEAAACwvxAgEFf0HgABCPBiIEIAQoAjBBA3IiBTYCMCAEIAQoAgBBfHFBAnIiBjYCAEG4ARCPBiEDIAQgADYCWCAEIAM2AhAgBCABNgIoIANBAToAcCACBEAgBCACKAIAIgdBcHEiASAFQQ9xcjYCMCAEIAZBDnEgAXI2AgAgAyACKAIQIgEvAagBOwGoASADIAEvAZoBOwGaASADIAEoApwBNgKcASADIAEoAqwBNgKsAUEQIQUCQCADQRBqIAJBMEEAIAdBA3EiBkEDRxtqKAIoIgcgAEcEfyAAIAJBUEEAIAZBAkcbaigCKEcNAUE4BUEQCyABakEoEB8aC0E4IQACQCADQThqIAQoAigiBSACQVBBACAGQQJHG2ooAihHBH8gBSAHRw0BQRAFQTgLIAFqQSgQHxoLIAEoArABRQRAIAEgBDYCsAELIAMgAjYCeCAEDwsgA0EBNgKsASADQQE7AagBIANBATsBmgEgA0EBNgKcASAECywBAX8gACgCBCICBEAgAiABNgIMCyAAIAE2AgQgACgCAEUEQCAAIAE2AgALCxUAIAAgAUEUQf8qQYAJQarCARCmBAufAwEGfwNAAkAgACgCECIFKAKgAiACQQJ0aigCACIERQRAA0AgBSgCmAIgA0ECdGooAgAiAkUNAiABIAJHBEAgAkEwQQAgAigCAEEDcUEDRxtqKAIoIAIQyAggACgCECEFCyADQQFqIQMMAAsACyABIARHBEAgBEFQQQAgBCgCAEEDcUECRxtqKAIoIAQQyAgLIAJBAWohAgwBCwsCQAJAIAEEQEEBIQIgASABQTBBACABKAIAQQNxIgBBA0cbaigCKCIFKAIQIgQoAqgCRwRAIAFBUEEAIABBAkcbaigCKCIFKAIQIQRBfyECCyAEKALIASEGQQAhAEEAIQMDQAJAIAYgA0ECdGooAgAiB0UEQCAEKALAASEEQQAhAwNAIAQgA0ECdGooAgAiBkUNAiAGIAUgAhCsDyIGQQBIIAAgACAGaiIASkcNBiADQQFqIQMMAAsACyAHIAUgAhCsDyIHQQBIIAAgACAHaiIASkcNAyADQQFqIQMMAQsLIAEoAhAgADYCoAELDwtBmJYEQQAQNhAoAAtBmJYEQQAQNhAoAAvKBQEIfyMAQSBrIgQkACAAKAIAIgAoAhAhCyAAKAIIIQkCQCADRQRAIAIhAAwBCyAEQgA3AxggBEIANwMQIAQgAjYCACAEIAM2AgQgBEEQaiEAIwBBMGsiBSQAIAUgBDYCDCAFIAQ2AiwgBSAENgIQAkACQAJAAkACQAJAQQBBAEHxOCAEEGIiCkEASA0AQQEhByAKQQFqIQYCQCAKIAAQRiAAECRrIghPBEAgABAnQQAgBiAIayIIQQFGGw0BIAAgCBCBBAtBACEHCyAFQgA3AxggBUIANwMQIAcgCkEQT3ENASAFQRBqIQggCiAHBH8gCAUgABB0CyAGQfE4IAUoAiwQYiIGRyAGQQBOcQ0CIAZBAEwNACAAECcEQCAGQYACTw0EIAcEQCAAEHQgBUEQaiAGEB8aCyAAIAAtAA8gBmo6AA8gABAkQRBJDQFBvMADQcmEAUHYAUHpHxAAAAsgBw0EIAAgACgCBCAGajYCBAsgBUEwaiQADAQLQZ+vA0HJhAFBywFB6R8QAAALQfiiA0HJhAFB0AFB6R8QAAALQd/UAUHJhAFB0wFB6R8QAAALQeOkAUHJhAFB2gFB6R8QAAALAkAgABAnBEAgABAkQQ9GDQELIARBEGoiABAkIAAQRk8EQCAAQQEQgQQLIARBEGoiABAkIQUgABAnBEAgACAFakEAOgAAIAQgBC0AH0EBajoAHyAAECRBEEkNAUG8wANByYQBQZ0CQZS6ARAAAAsgBCgCECAFakEAOgAAIAQgBCgCFEEBajYCFAsCQCAEQRBqECcEQCAEQQA6AB8MAQsgBEEANgIUCyAEQRBqIgUQJyEAIAkgBSAEKAIQIAAbELIBIQAgCSACQQAQjgEaIAkgA0EAEI4BGiAFEF8LIAtBCGpBgwIgCygCACABQQEQjwEgABCRBhDGCCAJIAFBABCOARogBEEgaiQAC7gBAQR/IAAoAhAiBCAEKAL0ASACajYC9AEDQCAEKAKYAiADQQJ0aigCACIFBEAgASAFQTBBACAFKAIAQQNxQQNHG2ooAigiBUcEQCAFIAAgAhDKCCAAKAIQIQQLIANBAWohAwwBBQNAAkAgBCgCoAIgBkECdGooAgAiA0UNACABIANBUEEAIAMoAgBBA3FBAkcbaigCKCIDRwRAIAMgACACEMoIIAAoAhAhBAsgBkEBaiEGDAELCwsLC/IEAQZ/IAAQ2AQhBwJAIAIEQCACQVBBACACKAIAQQNxIgNBAkcbaigCKCgCECgC9AEgAigCECgCrAEgAkEwQQAgA0EDRxtqKAIoKAIQKAL0AWpGDQELA0AgACgCECIEKALIASAFQQJ0aigCACIDBEAgAygCAEEDcSEEAkAgAygCECgCpAFBAE4EQCADQVBBACAEQQJHG2ooAigiAyABRg0BIAMgACACEMsIIQIMAQsgAyADQTBrIgggBEECRhsoAigQ2AQgB0YNACACBEAgAyAIIAMoAgBBA3EiBEECRhsoAigoAhAoAvQBIANBMEEAIARBA0cbaigCKCgCECgC9AEgAygCECgCrAFqayACQVBBACACKAIAQQNxIgRBAkcbaigCKCgCECgC9AEgAkEwQQAgBEEDRxtqKAIoKAIQKAL0ASACKAIQKAKsAWprTg0BCyADIQILIAVBAWohBQwBBQNAIAQoAsABIAZBAnRqKAIAIgNFDQMgAygCAEEDcSEFAkAgAygCECgCpAFBAE4EQCADQTBBACAFQQNHG2ooAigiAyABRg0BIAMgACACEMsIIQIMAQsgAyADQTBqIgQgBUEDRhsoAigQ2AQgB0YNACACBEAgA0FQQQAgAygCAEEDcSIFQQJHG2ooAigoAhAoAvQBIAMgBCAFQQNGGygCKCgCECgC9AEgAygCECgCrAFqayACQVBBACACKAIAQQNxIgVBAkcbaigCKCgCECgC9AEgAkEwQQAgBUEDRxtqKAIoKAIQKAL0ASACKAIQKAKsAWprTg0BCyADIQILIAZBAWohBiAAKAIQIQQMAAsACwALAAsgAgvOAQEFfyAAKAIEIQUgACgCACEDIAEhAANAIAFBAXQiAkECaiEEIAUgAkEBciICSwRAIAIgASADIAJBAnRqKAIAKAIEIAMgAUECdGooAgAoAgRIGyEACyAEIAVJBEAgBCAAIAMgBEECdGooAgAoAgQgAyAAQQJ0aigCACgCBEgbIQALIAAgAUcEQCADIAFBAnRqIgQoAgAhAiAEIAMgAEECdGoiBigCADYCACAGIAI2AgAgBCgCACABNgIIIAIgADYCCCAAIQEgACAFSQ0BCwsLiAEBAX8gASgCCCICRQRAQYKcA0GqwgFBzwJBzPsAEAAACyACQQFrIgIgASgCCE8EQEHCvANBqsIBQc8CQekkEAAACyAAIAEoAgAgASgCBCACaiABKAIMcEEEdGoiAikCADcCACAAIAIpAgg3AgggASABKAIIQQFrEK0PGiABIAEoAghBAWs2AggL4wQBB38jAEEQayIHJAACQAJAAkACf0HVuwQgASgCECIDKAKkAUEATg0AGiAAKAIMIgJBAEgNAiADIAI2AqQBAkAgACgCECIDIAJHBEAgACgCBCEEIAAoAgghBQwBCyACQQF0QQEgAhsiA0H/////A0sEQEHEACEBDAULIAAoAgQgA0ECdBA6IgRFBEBBMCEBDAULIAQgACgCECIGQQJ0akEAIAMgBmtBAnQQMxogBiAAKAIMIgIgACgCCCIFakkEQCAFQQJ0IQggBCADIAYgBWsiBmsiBUECdGogBCAIaiAGQQJ0EFMaIAAgBTYCCAsgACADNgIQIAAgBDYCBAsgBCACIAVqIANwQQJ0aiABNgIAIAAgAkEBajYCDEEAIQAgAUEwQQAgASgCAEEDcUEDRxtqKAIoIgMoAhAiAkEBNgKwASACIAIoAqQCIgRBAWo2AqQCIAIoAqACIARBAnRqIAE2AgAgAygCECICKAKgAiACKAKkAkECdGpBADYCAEGs6AMgAygCECICKALIASACKAKkAkECdGpBBGsoAgBFDQAaIAFBUEEAIAEoAgBBA3FBAkcbaigCKCIDKAIQIgJBATYCsAEgAiACKAKcAiIEQQFqNgKcAiACKAKYAiAEQQJ0aiABNgIAIAMoAhAiASgCmAIgASgCnAJBAnRqQQA2AgAgAygCECIBKALAASABKAKcAkECdGpBBGsoAgANAUHP6AMLQQAQNkF/IQALIAdBEGokACAADwtBhtQBQarCAUE/QaakARAAAAsgByABEHg2AgBBuPwIKAIAQdqKBCAHEB4aECgAC6cCAQd/IwBBEGsiByQAAkACQCAAKAIIIgYgACgCDCICRwRAIAAoAgAhAyAAKAIEIQQMAQsgBkEBdEEBIAYbIgJB/////wBLBEBBxAAhAAwCCyAAKAIAIAJBBHQQOiIDRQRAQTAhAAwCCyADIAAoAgwiBUEEdGpBACACIAVrQQR0EDMaIAUgACgCCCIGIAAoAgQiBGpJBEAgBEEEdCEIIAMgAiAFIARrIgVrIgRBBHRqIAMgCGogBUEEdBBTGiAAIAQ2AgQLIAAgAjYCDCAAIAM2AgALIAMgBCAGaiACcEEEdGoiAiABKQIANwIAIAIgASkCCDcCCCAAIAAoAghBAWo2AgggB0EQaiQADwsgByAAEHg2AgBBuPwIKAIAQdqKBCAHEB4aECgACxMAIAAgAUHBJUGcBkHAxAEQyAELoQEBA38gACgCCCEBAkADQCABIANNDQEgACADENAIIgIEQEEAIQEDQCABIAIoAghPRQRAIAIgARCRAxogAiABEL0PIAFBAWohAQwBCwsgAkIANwIEIAIoAgAQGAsgAhAYIAMgACgCCCIBSSADQQFqIQMNAAtBwrwDQcDEAUGcBkHUKhAAAAsgAEIANwIEIAAoAgAQGCAAQgA3AgggAEIANwIAC7gCAgR/A3wjAEGAAWsiASQAIAEgACgCUDYCcEG4/AgoAgAiA0Gp4gQgAUHwAGoQHhoDQCAAKAJQIAJNBEAgACsDACEFIAArAwghBiAALQAdIQIgASAAKwMQOQNgIAFBorQBQZ60ASACGzYCaCABIAY5A1ggASAFOQNQIANBvYsEIAFB0ABqEDIgACsDKCEFIAArAzAhBiAALQBFIQIgAUFAayAAKwM4OQMAIAFBorQBQZ60ASACGzYCSCABIAY5AzggASAFOQMwIANB8IsEIAFBMGoQMiABQYABaiQABSAAKAJUIAJBBXRqIgQrAwAhBSAEKwMIIQYgBCsDECEHIAEgBCsDGDkDICABIAc5AxggASAGOQMQIAEgBTkDCCABIAI2AgAgA0Ga+QQgARAyIAJBAWohAgwBCwsLkxwDCH8dfAF+IwBBgAJrIggkAEGEhAsoAgAhCQJ/AkAgA0GIhAsoAgBKBEAgCSADQShsEDoiCUUNAUGIhAsgAzYCAEGEhAsgCTYCAAsgCUIANwMAQQEgAyADQQFMGyEKQQEhBgJAAkADQCAGIApGBEACQCAJIANBKGxqQShrIQdBASEGA0AgBiAKRgRAQQAhByADQQAgA0EAShshDCAFKwMIIRcgBSsDACEYIAQrAwghGSAEKwMAIRoDQCAHIAxGRQRAIAkgB0EobGoiBkQAAAAAAADwPyAGKwMAIg+hIhAgDyAPRAAAAAAAAAhAoiIPoqIiEiAXojkDICAGIBIgGKI5AxggBiAZIBAgDyAQoqIiD6I5AxAgBiAaIA+iOQMIIAdBAWohBwwBCwsgAiADQQR0aiIGQQhrIQogBkEQayELQQAhBkQAAAAAAAAAACEQRAAAAAAAAAAAIRIDQCAGIAxGRQRAIBMgCSAGQShsaiIHKwAYIg4gAiAGQQR0aiINKwAAIAcrAwAiDyAPokQAAAAAAADwPyAPoSITRAAAAAAAAAhAoiAPoKIiFSALKwAAoiACKwAAIBMgE6IgD0QAAAAAAAAIQKIgE6CiIhOioKEiEaIgBysAICIPIA0rAAggAisACCAToiAVIAorAACioKEiHKKgoCETIBAgBysACCIVIBGiIAcrABAiESAcoqCgIRAgEiAVIA6iIBEgD6KgoCESIBQgDiAOoiAPIA+ioKAhFCAWIBUgFaIgESARoqCgIRYgBkEBaiEGDAELC0QAAAAAAAAAACEPRAAAAAAAAAAAIQ4gFiAUoiASIBKioSIVmSIRRI3ttaD3xrA+ZgRAIBYgE6IgEiAQoqEgFaMhDiAQIBSiIBMgEpqioCAVoyEPCwJAIBFEje21oPfGsD5jIA9EAAAAAAAAAABlciAORAAAAAAAAAAAZXJFBEAgCisDACETIAsrAwAhFiACKwMIIRAgAisDACESDAELIAsrAAAiFiACKwAAIhKhIAorAAAiEyACKwAIIhChEFBEAAAAAAAACECjIg8hDgsgFyAOoiEcIBggDqIhHyAZIA+iISAgGiAPoiEhQQAhBkQAAAAAAAAQQCEPA0AgCCATOQN4IAggEyAcIA+iRAAAAAAAAAhAo6EiGTkDaCAIIBY5A3AgCCAWIB8gD6JEAAAAAAAACECjoSIaOQNgIAggEDkDSCAIIBAgICAPokQAAAAAAAAIQKOgIhQ5A1ggCCASOQNAIAggEiAhIA+iRAAAAAAAAAhAo6AiFTkDUCAGQQFxRQRAIAhBQGtBBBDGDyACIAMQxg9E/Knx0k1iUL+gYw0ICyAURAAAAAAAABjAoiAQRAAAAAAAAAhAoiAZRAAAAAAAAAhAoiIOoKAhIiAURAAAAAAAAAhAoiAToCAOIBCgoSEjIBVEAAAAAAAAGMCiIBJEAAAAAAAACECiIBpEAAAAAAAACECiIg6goCEkIBVEAAAAAAAACECiIBagIA4gEqChISUgFCAQoUQAAAAAAAAIQKIhJiAVIBKhRAAAAAAAAAhAoiEnQQAhCgNAIAEgCkYEQEH8gwsoAgBBBGoQ1AhBAEgNCkH8gwsoAgAhB0GAhAsoAgAhAEEBIQYDQCAGQQRGDQkgACAHQQR0aiIBIAhBQGsgBkEEdGoiAisDADkDACABIAIrAwg5AwggBkEBaiEGIAdBAWohBwwACwALIAAgCkEFdGoiBisDGCIoIAYrAwgiF6EhEQJAAkACQAJAIAYrAxAiKSAGKwMAIhihIhtEAAAAAAAAAABhBEAgCCAkOQPwASAIICU5A/gBIAggJzkD6AEgCCASIBihOQPgASAIQeABaiIHIAhBwAFqENYIIQYgEUQAAAAAAAAAAGEEQCAIICI5A/ABIAggIzkD+AEgCCAmOQPoASAIIBAgF6E5A+ABIAcgCEGgAWoQ1gghCSAGQQRGBEAgCUEERg0FQQAhByAJQQAgCUEAShshCUEAIQYDQCAGIAlGDQUgCEGgAWogBkEDdGorAwAiDkQAAAAAAAAAAGZFIA5EAAAAAAAA8D9lRXJFBEAgCEGAAWogB0EDdGogDjkDACAHQQFqIQcLIAZBAWohBgwACwALIAlBBEYNAkEAIQcgBkEAIAZBAEobIQsgCUEAIAlBAEobIQxBACEJA0AgCSALRg0EIAhBwAFqIAlBA3RqIQ1BACEGA0AgBiAMRkUEQCANKwMAIg4gCEGgAWogBkEDdGorAwBiIA5EAAAAAAAAAABmRXIgDkQAAAAAAADwP2VFckUEQCAIQYABaiAHQQN0aiAOOQMAIAdBAWohBwsgBkEBaiEGDAELCyAJQQFqIQkMAAsACyAGQQRGDQNBACEHIAZBACAGQQBKGyEJQQAhBgNAIAYgCUYNAwJAIAhBwAFqIAZBA3RqKwMAIg5EAAAAAAAAAABmRSAORAAAAAAAAPA/ZUVyDQAgDiAOIA4gI6IgIqCiICagoiAQoCAXoSARoyIbRAAAAAAAAAAAZkUgG0QAAAAAAADwP2VFcg0AIAhBgAFqIAdBA3RqIA45AwAgB0EBaiEHCyAGQQFqIQYMAAsACyAIIBEgG6MiDiAYoiAXoSAQIA4gEqKhIhGgOQPgASAIIBQgDiAVoqEiHSARoUQAAAAAAAAIQKI5A+gBIAggHUQAAAAAAAAYwKIgEUQAAAAAAAAIQKIgGSAOIBqioUQAAAAAAAAIQKIiHqCgOQPwASAIIB1EAAAAAAAACECiIBMgDiAWoqGgIB4gEaChOQP4ASAIQeABaiAIQcABahDWCCIGQQRGDQJBACEHIAZBACAGQQBKGyEJQQAhBgNAIAYgCUYNAgJAIAhBwAFqIAZBA3RqKwMAIg5EAAAAAAAAAABmRSAORAAAAAAAAPA/ZUVyDQAgDiAOIA4gJaIgJKCiICegoiASoCAYoSAboyIRRAAAAAAAAAAAZkUgEUQAAAAAAADwP2VFcg0AIAhBgAFqIAdBA3RqIA45AwAgB0EBaiEHCyAGQQFqIQYMAAsAC0EAIQcgBkEAIAZBAEobIQlBACEGA0AgBiAJRg0BIAhBwAFqIAZBA3RqKwMAIg5EAAAAAAAAAABmRSAORAAAAAAAAPA/ZUVyRQRAIAhBgAFqIAdBA3RqIA45AwAgB0EBaiEHCyAGQQFqIQYMAAsACyAHQQRGDQBBACEGIAdBACAHQQBKGyEHA0AgBiAHRg0BAkAgCEGAAWogBkEDdGorAwAiDkSN7bWg98awPmMgDkTpCyHn/f/vP2RyDQAgDiAOIA6ioiIbIBaiRAAAAAAAAPA/IA6hIhEgDiAORAAAAAAAAAhAoiIOoqIiHSAaoiARIBEgEaKiIh4gEqIgFSARIA4gEaKiIg6ioKCgIhEgGKEiKiAqoiAbIBOiIB0gGaIgHiAQoiAUIA6ioKCgIg4gF6EiGyAboqBE/Knx0k1iUD9jDQAgESApoSIRIBGiIA4gKKEiDiAOoqBE/Knx0k1iUD9jRQ0DCyAGQQFqIQYMAAsACyAKQQFqIQoMAQsLIA9EexSuR+F6dD9jDQMgD0QAAAAAAADgP6JEAAAAAAAAAAAgD0R7FK5H4XqEP2QbIQ9BASEGDAALAAUgCSAGQShsaiILIAsrAwAgBysDAKM5AwAgBkEBaiEGDAELAAsACwUgCSAGQShsaiAPIAIgBkEEdGoiB0EQaysAACAHKwAAoSAHQQhrKwAAIAcrAAihEFCgIg85AwAgBkEBaiEGDAELCyADQQJHDQFB/IMLKAIAQQRqENQIQQBIDQJB/IMLKAIAIQdBgIQLKAIAIQBBASEGA0AgBkEERg0BIAAgB0EEdGoiASAIQUBrIAZBBHRqIgIrAwA5AwAgASACKwMIOQMIIAZBAWohBiAHQQFqIQcMAAsAC0H8gwsgBzYCAEEADAILIBMgHERVVVVVVVXVP6KhIRUgFiAfRFVVVVVVVdU/oqEhESAgRFVVVVVVVdU/oiAQoCEXICFEVVVVVVVV1T+iIBKgIRhBfyEHQQIgAyADQQJMG0EBayEJQYSECygCACEKRAAAAAAAAPC/IRRBASEGA0AgBiAJRkUEQCACIAZBBHRqIgsrAAAgCiAGQShsaisDACIPIA8gD6KiIhkgFqJEAAAAAAAA8D8gD6EiDiAPIA9EAAAAAAAACECiIg+ioiIaIBGiIA4gDiAOoqIiHCASoiAYIA4gDyAOoqIiD6KgoKChIAsrAAggGSAToiAaIBWiIBwgEKIgFyAPoqCgoKEQUCIPIBQgDyAUZCILGyEUIAYgByALGyEHIAZBAWohBgwBCwsgAiAHQQR0aiIGKwAAIhAgBkEQaysAAKEiDyAPoiAGKwAIIhIgBkEIaysAAKEiDiAOoqAiE0SN7bWg98awPmQEfCAOIBOfIhOjIQ4gDyATowUgDwsgAiAHQQFqIglBBHRqIgorAAAgEKEiFCAUoiAKKwAIIBKhIhIgEqKgIhBEje21oPfGsD5kBHwgEiAQnyIQoyESIBQgEKMFIBQLoCIPIA+iIA4gEqAiDiAOoqAiEESN7bWg98awPmQEQCAOIBCfIhCjIQ4gDyAQoyEPCyAIIA45A0ggCCAPOQNAIAggBCkDCDcDOCAEKQMAISsgCCAIKQNINwMoIAggKzcDMCAIIAgpA0A3AyAgACABIAIgCSAIQTBqIAhBIGoQ0whBAEgNACAIIAgpA0g3AxggCCAIKQNANwMQIAggBSkDCDcDCCAIIAUpAwA3AwAgACABIAYgAyAHayAIQRBqIAgQ0wgMAQtBfwsgCEGAAmokAAs8AQF/QYyECygCACAASQRAQYCEC0GAhAsoAgAgAEEEdBA6IgE2AgAgAUUEQEF/DwtBjIQLIAA2AgALQQAL7wICA3wDfyMAQSBrIggkACACKAIEIgpBAE4EQCADKwAAIgUgBaIgAysACCIGIAaioCIHRI3ttaD3xrA+ZARAIAYgB58iB6MhBiAFIAejIQULIAIoAgAhAiADIAY5AwggAyAFOQMAIAMrABAiBSAFoiADKwAYIgYgBqKgIgdEje21oPfGsD5kBEAgBiAHnyIHoyEGIAUgB6MhBQsgAyAGOQMYIAMgBTkDEEH8gwtBADYCAAJ/QX9BBBDUCEEASA0AGkH8gwtB/IMLKAIAIglBAWo2AgBBgIQLKAIAIAlBBHRqIgkgAikDCDcDCCAJIAIpAwA3AwAgCCADKQMINwMYIAggAykDADcDECAIIANBEGopAwg3AwggCCADKQMQNwMAQX8gACABIAIgCiAIQRBqIAgQ0whBf0YNABogBEH8gwsoAgA2AgQgBEGAhAsoAgA2AgBBAAsgCEEgaiQADwtBqdIBQY7GAUHMAEHUngEQAAAL4wQCBXwCfwJAAkACQCAAKwMYIgKZREivvJry13o+YwRAIAArAxAiAplESK+8mvLXej5jBEAgACsDACEEIAArAwgiAplESK+8mvLXej5jRQ0CIASZREivvJry13o+Y0ECdA8LIAArAwggAiACoKMiBCAEoiAAKwMAIAKjoSICRAAAAAAAAAAAYw0DIAJEAAAAAAAAAABkBEAgASACnyAEoSICOQMAIAEgBEQAAAAAAAAAwKIgAqE5AwhBAg8LIAEgBJo5AwAMAgsCfwJ/IAArAwAgAqMgACsDECACRAAAAAAAAAhAoqMiBCAEoCAEIASiIgOiIAQgACsDCCACoyIFoqGgIgIgAqIiBiAFRAAAAAAAAAhAoyADoSIDIAMgA0QAAAAAAAAQQKKioqAiA0QAAAAAAAAAAGMEQCADmp8gApoQrQEhAiABIAYgA6GfRAAAAAAAAOA/ohDHByIDIAOgIgMgAkQAAAAAAAAIQKMQRKI5AwAgASADIAJEGC1EVPshCUCgRBgtRFT7IQlAoEQAAAAAAAAIQKMQRKI5AwggAyACRBgtRFT7IQnAoEQYLURU+yEJwKBEAAAAAAAACECjEESiIQJBEAwBCyABIAOfIAKhRAAAAAAAAOA/oiIFEMcHIAKaIAWhEMcHoCICOQMAQQEgA0QAAAAAAAAAAGQNARogASACRAAAAAAAAOC/oiICOQMQQQgLIAFqIAI5AwBBAwshB0EAIQADQCAAIAdGDQMgASAAQQN0aiIIIAgrAwAgBKE5AwAgAEEBaiEADAALAAsgASAEmiACozkDAAtBASEHCyAHC3oBA38jAEEQayIBJAACQCAAQfiDCygCAE0NAEH0gwsoAgAgAEEEdBA6IgNFBEAgAUHYLzYCCCABQboDNgIEIAFB9MABNgIAQbj8CCgCAEHuigQgARAeGkF/IQIMAQtB+IMLIAA2AgBB9IMLIAM2AgALIAFBEGokACACCyIAIABFBEBBw9wBQcuDAUEMQdPBABAAAAsgAEGBoQUQSUULqgEBBH8gACgCEEEYaiECIAFBAkchBAJAA0AgAigCACICBEAgAigCAEGLAkcNAiACKAIEIQMCQCAERQRAIAMQ2AgNAQsgAiAAKAIQKAIAIAEgA0EAECEiBTYCBCAFRQRAIAIgACgCECgCACABIANB5ooFECE2AgQLIAJBigI2AgAgACgCCCADQQAQjgEaCyACQQxqIQIMAQsLDwtBivIAQYoSQbgCQe0uEAAAC14BAX8gACsDCCABKwMIYQRAAkAgACsDECABKwMQYg0AIAArAxggASsDGGINACAAKAIgIAEoAiBHDQAgACgCJCABKAIkRiECCyACDwtBm6kBQdvDAUGRBkGs9QAQAAALEgAgACABQYUkQRFBroQBEMgBC18BBH9B3IMLKAIAIgBBACAAQQBKG0EBaiEBQayDCygCACECQQEhAAJAA0AgACABRg0BIAIgAEECdGooAgAoAgQgAEYgAEEBaiEADQALQb+jA0H1xwFBOEHe+gAQAAALCxUAIAAgAUHIAEGRKkE9QeKDARCmBAvrBgEDfyMAQdAOayIFJAAgBUGIDmogAiADECUCQAJAIAUoArAOQQFrQX1LDQAgBUHADWogAiADECUgBSgC7A1BAWtBfUsNACAFQfgMaiACIAMQJSAFKAK0DUEBa0F9TQRAIAVBsAxqIAIgAxAlIAICfyAFKALwDEEBRgRAIAVB6AtqIAIgAxAlIAUoApQMIQAgAiAEECkgADYCKCACIAMQKUF/NgIsIAVBoAtqIAIgAxAlIAUoAtwLIQAgAiAEECkgADYCLCAFQdgKaiACIAMQJSACIAUoAoALECkgAzYCMCAFQZAKaiACIAQQJSACIAUoArgKECkgBDYCMCAFQcgJaiACIAQQJSAFKAL0CQwBCyACIAQQKUF/NgIsIAVBgAlqIAIgAxAlIAUoAqwJIQAgAiAEECkgADYCKCAFQbgIaiACIAMQJSAFKALgCCEAIAIgAxApIAA2AiwgBUHwB2ogAiADECUgBSgCrAghACACIAMQKSAANgIoIAVBqAdqIAIgAxAlIAIgBSgC0AcQKSADNgIwIAVB4AZqIAIgAxAlIAIgBSgCjAcQKSADNgIwIAVBmAZqIAIgBBAlIAUoAsAGCxApIAQ2AjAgAiADEClBADYCPCACIAQQKUEANgI8DAILIAVB0AVqIAIgAxAlIAUoAvwFIQAgAiAEECkgADYCKCACIAMQKUF/NgIsIAIgBBApQX82AiwgBUGIBWogAiAEECUgAiAFKAKwBRApIAQ2AjAMAQsgBUHABGogAiADECUgBUH4A2ogAiAFKALoBCIHECUCQCAFKAKoBCIGQQFrQX1LDQAgBUGwA2ogAiAHECUgBSgC5ANBAWtBfUsNACAFQegCaiACIAYQJQJAIAUoAuwCQQBMDQAgBUGgAmogAiAGECUgBSgCpAIgASAAQRBqEN0EDQAgAiADEClBfzYCKCACIAMQKUF/NgIsIAIgBBApQX82AiwgBUHYAWogAiAEECUgAiAFKAKAAhApIAQ2AjQMAgsgAiAEEClBfzYCKCACIAQQKUF/NgIsIAIgAxApQX82AiwgBUGQAWogAiADECUgAiAFKAK4ARApIAM2AjAMAQsgBUHIAGogAiADECUgAiAFKAJwECkgAzYCMCAFIAIgAxAlIAIgBSgCKBApIAQ2AjQLIAVB0A5qJAALQwACQCAABEAgASAAKAIITw0BIAAgARApIAJByAAQHxoPC0GJ2gFB4oMBQT1B2SIQAAALQdm9A0HigwFBPUHZIhAAAAtVAgJ8AX8gAUEAIAFBAEobIQEgALciAyECA38gASAERgR/IAMgAqObIgKZRAAAAAAAAOBBYwRAIAKqDwtBgICAgHgFIARBAWohBCACEMgHIQIMAQsLCw0AIAAoAggQGCAAEBgLiQECBH8BfCMAQRBrIgIkACABKAIEIQMgASgCACEEIABB588BQQAQHUEAIQEDQCABIARHBEAgAQRAIABBhaUDQQAQHQsgAyABQRhsaiIFKwMAIQYgAiAFKwMIOQMIIAIgBjkDACAAQYrPASACEB0gAUEBaiEBDAELCyAAQd3WBEEAEB0gAkEQaiQAC4wBAQJ/IwBBEGsiACQAAkAgAEEMaiAAQQhqEBMNAEHkjwsgACgCDEECdEEEahBIIgE2AgAgAUUNACAAKAIIEEgiAQRAQeSPCygCACAAKAIMQQJ0akEANgIAQeSPCygCACABEBJFDQELQeSPC0EANgIACyAAQRBqJABBpJILQYiQCzYCAEHckQtBKjYCAAuuAQEGfwJAAkAgAARAIAAtAAxBAUYEQCABIAApAxBUDQILIAEgACkDGFYNASABpyEEIAAoAgAiBQRAQQEgACgCCHQhAwsgA0EBayEGA0BBACEAIAIgA0YNAwJAAkAgBSACIARqIAZxQQJ0aigCACIHQQFqDgIBBQALIAciACgCECkDCCABUQ0ECyACQQFqIQIMAAsAC0GT2wFBoMcBQeIDQdurARAAAAtBACEACyAACwsAIABB1rUEEBoaCzEBAX8jAEEQayICJAAgAkEANgIIIAJBADYCDCABIAJBCGpBtAIgABCtBCACQRBqJAALJQEBfyMAQRBrIgIkACACIAE2AgAgAEHZjAQgAhAdIAJBEGokAAsNACAAIAFBxY4BEN4KC4gBAgN/AXwjAEEgayIEJAADQCACIAVGBEAgAwRAIAErAwAhByAEIAErAwg5AwggBCAHOQMAIABBxY4BIAQQHQsgAEHjigUQGhogBEEgaiQABSABIAVBBHRqIgYrAwAhByAEIAYrAwg5AxggBCAHOQMQIABBxY4BIARBEGoQHSAFQQFqIQUMAQsLC7MBAQR/IwBBQGoiAyQAAkAgAi0AAyIEQf8BRgRAIAItAAAhBCACLQABIQUgAyACLQACNgIQIAMgBTYCDCADIAQ2AgggA0EHNgIEIAMgATYCACAAQbrRAyADEJQBDAELIAItAAAhBSACLQABIQYgAi0AAiECIAMgBDYCNCADIAI2AjAgAyAGNgIsIAMgBTYCKCADQQk2AiQgAyABNgIgIABBoNEDIANBIGoQlAELIANBQGskAAscACAAKAIQKAIMQQJ0QbDKCGooAgAgASACEOoIC38BAn8jAEEgayIEJAAgACgCECgCDCAEIAM2AhQgBCABNgIQQQJ0QbDKCGooAgAiAUHQ0QMgBEEQahCUAUEAIQADQCAAIANGBEAgBEEgaiQABSAEIAIgAEEEdGoiBSkDCDcDCCAEIAUpAwA3AwAgASAEENkCIABBAWohAAwBCwsLjQUCA38GfCMAQZABayIEJAACQAJAQYDqCigCAC8BKEENTQRAIAAQpQYMAQsgACgCECIFKAKIAbdEGC1EVPshCUCiRAAAAAAAgGZAoyEHIARCADcDSCAEQgA3A0ACQCABQQJGBEAgAiAEQfAAaiADIAdBAhDyBiAEQUBrIgJB2wAQ3AEgBCAEKQN4NwMYIAQgBCkDcDcDECACIARBEGoQ2QIgBCAEKQOIATcDCCAEIAQpA4ABNwMAIAIgBBDZAgwBCyACIARB8ABqIANEAAAAAAAAAABBAxDyBiAEKwNwIQggBCsDiAEhCQJ8IAUoAogBRQRAIAlEAAAAAAAA0D+iIQogBCsDeCILIQwgCAwBCyAJRAAAAAAAANA/oiIKIAcQWKIgBCsDeCILoCEMIAogBxBEoiAIoAshByAEIAw5A2ggBCALOQNYIAQgBzkDYCAEIAg5A1AgBEFAayICQSgQ3AEgBCAEKQNoNwM4IAQgBCkDYDcDMCACIARBMGoQ2QIgAiAKEJcCIAQgBCkDWDcDKCAEIAQpA1A3AyAgAiAEQSBqENkCIAIgCRCXAgsgBEFAayIGQfXWAxD0ASAFQThqIQIgBEFAayIDAnwgBSsDkAEiB0QAAAAAAAAAAGQEQCAGIAcgAhCkBiAFKwOQAQwBCyAEQUBrRAAAAAAAAAAAIAIQpAZEAAAAAAAA8D8LIAVB4ABqEKQGAkAgAxAkRQ0AIAMQJwRAIAQtAE8iAkUNAyAEIAJBAWs6AE8MAQsgBCAEKAJEQQFrNgJECyAEQUBrIgJB3QBBKSABQQJGGxDcASAAQd7UAyACEMQBEMQDIAIQXwsgBEGQAWokAA8LQYOVA0HJhAFB9wBBl98AEAAAC4QBAQZ/IwBBEGsiASQAA0ACQAJAIAAgAmotAAAiBARAIATAIgVBMGtBCUsNAiADQf//A3EiBiAEQX9zQfEBckH//wNxQQpuTQ0BIAEgADYCAEHNhgEgARArCyABQRBqJAAgA0H//wNxDwsgBSAGQQpsakHQ/wNqIQMLIAJBAWohAgwACwALDAAgAEEAQQAQ8ggaC5oDAgN/A3wjAEHgAGsiBiQAIAZCADcDWCAGQgA3A1AgACgCECIHKwMYIQkgBysDECELIAcrAyghCiAGQUBrIAcrAyA5AwAgBiAFIAqhIApB6OEKLQAAIgcbOQNIIAYgCzkDMCAGIAUgCaEgCSAHGzkDOCAGQdAAaiIIQaWLASAGQTBqEIABIAAgASAIEL0BEHICQCAAKAIQKAIMIgdFDQAgBygCAC0AAEUNACAHKwNAIQkgBiAHKwM4OQMgIAYgBSAJoSAJQejhCi0AABs5AyggCEGviwEgBkEgahCAASAAIAIgCBC9ARByIAAoAhAoAgwiBysDICEJIAYgBysDGEQAAAAAAABSQKM5AxAgCEGYjgEgBkEQahCAASAAIAMgCBC9ARByIAYgCUQAAAAAAABSQKM5AwAgCEGYjgEgBhCAASAAIAQgCBC9ARByC0EBIQcDQCAHIAAoAhAiCCgCtAFKRQRAIAgoArgBIAdBAnRqKAIAIAEgAiADIAQgBRDwCCAHQQFqIQcMAQsLIAZB0ABqEF8gBkHgAGokAAvJAQICfwV8IwBBIGsiBSQAIAEoAjBFBEAgASsDGCEIIAErAxAhCSABKwMoIQcgACgCECIEKwMYIQYgBSAEKwMQIgogASsDIKA5AxAgBSADIAYgB6AiB6EgB0Ho4QotAAAiBBs5AxggBSAJIAqgOQMAIAUgAyAIIAagIgahIAYgBBs5AwggAkGN0wMgBRCAAQtBACEEA0AgBCABKAIwTkUEQCAAIAEoAjggBEECdGooAgAgAiADEPEIIARBAWohBAwBCwsgBUEgaiQAC8IRAg9/BnwjAEGAAmsiBCQAIAAoAhAvAbIBQQEQ3AJB6OEKLQAAQQFGBEAgACgCECIDKwMoIAMrAxigIhNEAAAAAAAAUkCjIRYLIARCADcD+AEgBEIANwPwASAAQQFB3zAQiQEaIABBAUHbLRCJARpBhOIKIABBAUHY/gAQiQE2AgBBgOIKIABBAUHZIRCJATYCACAAQQJB3zAQiQEaIAAoAhAtAHEiA0EQcQRAIABBAUHI3wAQiQEaIAAoAhAtAHEhAwsgA0EBcQRAIABBAkHj3wAQiQEaIAAoAhAtAHEhAwsgA0EgcQRAIABBAkHI3wAQiQEaIAAoAhAtAHEhAwsgA0ECcQRAIABBAkHe3wAQiQEaIAAoAhAtAHEhAwsgA0EEcQR/IABBAkHW3wAQiQEaIAAoAhAtAHEFIAMLQQhxBEAgAEEAQePfABCJASEMIABBAEHK/gAQiQEhDSAAQQBB2CEQiQEhCgsgAEEAQYjJARCJASEOIAAQGyEHQQNJIQ8DQAJAAkAgBwRAIBMgBygCECIDKwMYIhKhIBJB6OEKLQAAGyESIAMrAxAhFAJAIA9FBEAgBCADKAKUASsDEEQAAAAAAABSQKI5A9ABIAQgEjkDyAEgBCAUOQPAASAEQfABakGqiwEgBEHAAWoQgAFBAyEDA0AgAyAAKAIQLwGyAU8NAiAEIAcoAhAoApQBIANBA3RqKwMARAAAAAAAAFJAojkDACAEQfABakGziwEgBBCAASADQQFqIQMMAAsACyAEIBI5A+gBIAQgFDkD4AEgBEHwAWpBr4sBIARB4AFqEIABCyAHQd8wIARB8AFqIgUQvQEQ6wEgBCAHKAIQKwNQRAAAAAAAAFJAozkDsAEgBUG+iwEgBEGwAWoQgAEgB0GA4gooAgAgBRC9ARByIAQgBygCECIDKwNYIAMrA2CgRAAAAAAAAFJAozkDoAEgBUG+iwEgBEGgAWoQgAEgB0GE4gooAgAgBRC9ARByAkAgBygCECIDKAJ8IgZFDQAgBi0AUUEBRw0AIAYrA0AhEiAEIAYrAzg5A5ABIAQgEyASoSASQejhCi0AABs5A5gBIAVBr4sBIARBkAFqEIABIAdByN8AIAUQvQEQ6wEgBygCECEDCyADKAIIKAIAQbupARBJRQRAIAcgAygCDCAEQfABaiIDIBMQ8QgCQCADECRFDQAgAxAnBEAgBC0A/wEiA0UNBCAEIANBAWs6AP8BDAELIAQgBCgC9AFBAWs2AvQBCyAHQdstIARB8AFqEL0BEOsBDAMLQeTiCigCAEUNAiAHKAIQKAIIIgMEfyADKAIEKAIAQTxGBUEAC0UNAgJAIAcoAhAoAgwiBigCCCIFQQJLDQAgB0GJLBAmIgNFBEBBCCEFDAELQQggA0EAQQAQsQQiAyADQQNJGyEFCyAFuCEUQQAhAwNAIAMgBUYEQCAHQeTiCigCACAEQfABahC9ARByDAQLIAMEQCAEQfABakEgEOUECyAEAnwgBigCCEEDTwRAIAYoAiwgA0EEdGoiCCsDCEQAAAAAAABSQKMhEiAIKwMARAAAAAAAAFJAowwBCyAHKAIQIggrAyghEiADuCAUo0QYLURU+yEJQKIiFSAVoCIVEFggEkQAAAAAAADgP6KiIRIgCCsDICEXIBUQRCAXRAAAAAAAAOA/oqILOQOAASAEIBYgEqEgEkHo4QotAAAbOQOIASAEQfABakG5iwEgBEGAAWoQgAEgA0EBaiEDDAALAAsgACAOIAwgDSAKIBMQ8AggBEHwAWoQXyAAQeTkAEEAEG0EQCAAEKsKCyABBEAgASAQOgAACyACBEAgAiALOgAAC0EAENwCIARBgAJqJAAgEw8LQYOVA0HJhAFB9wBBl98AEAAACwJAQdDhCigCAEEATA0AIAAgBxAtIQUDQCAFRQ0BAkAgBSgCECIDLQBwQQZGDQBBACEGIAMoAggiCEUNAANAIAgoAgQgBk0EQCAFQd8wIARB8AFqIgYQvQEQ6wEgBSgCECIDKAJgIggEQCAIKwNAIRIgBCAIKwM4OQNwIAQgEyASoSASQejhCi0AABs5A3ggBkGviwEgBEHwAGoQgAEgBUHj3wAgBhC9ARDrASAFKAIQIQMLAkAgAygCbCIGRQ0AIAYtAFFBAUcNACAGKwNAIRIgBCAGKwM4OQNgIAQgEyASoSASQejhCi0AABs5A2ggBEHwAWoiA0GviwEgBEHgAGoQgAEgBUHI3wAgAxC9ARDrASAFKAIQIQMLIAMoAmQiBgR/IAYrA0AhEiAEIAYrAzg5A1AgBCATIBKhIBJB6OEKLQAAGzkDWCAEQfABaiIDQa+LASAEQdAAahCAASAFQd7fACADEL0BEOsBIAUoAhAFIAMLKAJoIgNFDQIgAysDQCESIAQgAysDODkDQCAEIBMgEqEgEkHo4QotAAAbOQNIIARB8AFqIgNBr4sBIARBQGsQgAEgBUHW3wAgAxC9ARDrAQwCCyAGBH8gBEHwAWpBOxDlBCAFKAIQKAIIBSAICygCACIIIAZBMGwiCWoiAygCCAR/IAMrAxghEiAEIAMrAxA5AzAgBCATIBKhIBJB6OEKLQAAGzkDOCAEQfABakGA0wMgBEEwahCAAUEBIRAgBSgCECgCCCgCAAUgCAsgCWoiAygCDARAIAMrAyghEiAEIAMrAyA5AyAgBCATIBKhIBJB6OEKLQAAGzkDKCAEQfABakGi0wMgBEEgahCAAUEBIQsLQQAhAwNAIAUoAhAoAggiCCgCACIRIAlqKAIEIANNBEAgBkEBaiEGDAIFIAMEfyAEQfABakEgEOUEIAUoAhAoAggoAgAFIBELIAlqKAIAIANBBHRqIggrAwghEiAEIAgrAwA5AxAgBCATIBKhIBJB6OEKLQAAGzkDGCAEQfABakGviwEgBEEQahCAASADQQFqIQMMAQsACwALAAsgACAFEDAhBQwACwALIAAgBxAcIQcMAAsAC6YBAQJ/IAIoAhAtAIYBIAIQICEFQQFGBEAgBUE6EM8BQQFqIQULIAUQjAQhBAJ/IAIoAhAtAIYBQQFGBEAgAhAvIAUgBBCqBgwBCyAFIAQQxQMLIQIgAUGc2AMgABEAABogASACIAARAAAaIAQQGAJAIANFDQAgAy0AAEUNACADIAMQjAQiAhDFAyEDIAFB4ugBIAARAAAaIAEgAyAAEQAAGiACEBgLC7IKAgl/A3wjAEHQAGsiByQAIAEoAhAiBCsDKCEOIAEoAkwoAgQoAgQhBUHo4QotAABBAUYEQCAOIAQrAxigIQ0LIAQrAyAhDyAFIAJB+dIDIAArA+ACEJQDIAUgAkGc2AMgD0QAAAAAAABSQKMQlAMgBSACQZzYAyAORAAAAAAAAFJAoxCUAyAHQQo7AEAgAiAHQUBrIAURAAAaIAEQGyEEA0AgBARAIAQoAhAtAIYBRQRAIAQQIBCMBCEAIAQQICAAEMUDIQYgAkGR1AMgBREAABogAiAGIAURAAAaIAAQGCAHIAQoAhAiACkDGDcDOCAHIAApAxA3AzAgBSACIAdBMGogDRCrBgJ/IAQoAhAoAngiAC0AUkEBRgRAIARBoOIKKAIAEEEMAQsgACgCAAsiABCMBCEGAn8gBCgCECgCeC0AUkEBRgRAIAAgBhDFAwwBCyAEEC8gACAGEKoGCyEAIAUgAkGc2AMgBCgCECsDIBCUAyAFIAJBnNgDIAQoAhArAygQlAMgAkGc2AMgBREAABogAiAAIAURAAAaIAYQGCAEQaziCigCAEHvrgEQkQEhACACQZzYAyAFEQAAGiACIAAgBREAABogBCgCECgCCCgCACEAIAJBnNgDIAURAAAaIAIgACAFEQAAGiAEQYziCigCAEHw+gAQkQEhACACQZzYAyAFEQAAGiACIAAgBREAABogBEGQ4gooAgBB5ooFEJEBIgAtAABFBEAgBEGM4gooAgBBjQ8QkQEhAAsgAkGc2AMgBREAABogAiAAIAURAAAaIAdBCjsAQCACIAdBQGsgBREAABoLIAEgBBAcIQQMAQsLIAEQGyEKA0AgCgRAIAEgChAtIQYDQAJAIAYEQEHmigUhCUHmigUhCyADBEAgBkH3GxAmIgBB5ooFIAAbIQsgBkGzHBAmIgBB5ooFIAAbIQkLIAYoAhAiACgCCCIIRQ0BIAgoAgQhDEEAIQBBACEEA0AgBCAMRgRAIAJBr6QBIAURAAAaQQAhCCAFIAIgBkEwQQAgBigCAEEDcUEDRxtqKAIoIAsQ8wggBSACIAZBUEEAIAYoAgBBA3FBAkcbaigCKCAJEPMIIAdCADcDSCAHQgA3A0AgAkGc2AMgBREAABogByAANgIgIAdBQGsiAEGUGCAHQSBqEIABIAIgABC9ASAFEQAAGiAAEF8DQCAIIAYoAhAiACgCCCIEKAIETw0EIAQoAgAgCEEwbGoiACgCBCEJIAAoAgAhAEEAIQQDQCAEIAlGBEAgCEEBaiEIDAIFIAcgACAEQQR0aiILKQMINwMYIAcgCykDADcDECAFIAIgB0EQaiANEKsGIARBAWohBAwBCwALAAsABSAIKAIAIARBMGxqKAIEIABqIQAgBEEBaiEEDAELAAsACyABIAoQHCEKDAMLIAAoAmAiAARAIAAoAgAQjAQhACAGQTBBACAGKAIAQQNxQQNHG2ooAigQLyAGKAIQKAJgKAIAIAAQqgYhBCACQZzYAyAFEQAAGiACIAQgBREAABogABAYIAcgBigCECgCYCIAQUBrKQMANwMIIAcgACkDODcDACAFIAIgByANEKsGCyAGQZzjCigCAEHvrgEQkQEhACACQZzYAyAFEQAAGiACIAAgBREAABogBkH84gooAgBB8PoAEJEBIQAgAkGc2AMgBREAABogAiAAIAURAAAaIAdBCjsAQCACIAdBQGsgBREAABogASAGEDAhBgwACwALCyACQfGSBCAFEQAAGiAHQdAAaiQAC4YBAQJ/IAAQICEEIAAQLyEAAkAgBEUNACAELQAARQ0AIAJFBEBB9OgKQfToCigCAEEBajYCAAtBfyEDIAFBt+YBIAAoAkwoAgQoAgQRAABBf0YNACAAIAEgBBCuBkF/Rg0AIAIEQCABQeLPASAAKAJMKAIEKAIEEQAAQX9GDQELQQEhAwsgAwvPAwEGfwJAAkAgAC0AAEECcUUNAAJAIAAgAUEAEPUIIgNBAWoOAgIBAAtBASEDCyAAEPABIQcgABAvIQUCQCAHRQ0AIAJBAEGAASACKAIAEQQAIQQgAyEGA0AgBEUEQCAGIQMMAgsCQAJAIAAtAABBAnFFDQBB+OgKKAIAIgMEQCAEKAIQIAMoAhBGDQILQfzoCigCACIDRQ0AIAQoAhAgAygCEEYNAQsgBygCDCAEKAIQQQJ0aigCACAEKAIMRg0AIAUoAkwoAgQoAgQhCAJAIAZFBEBBfyEDIAFB/s8BIAgRAABBf0YNBUH06ApB9OgKKAIAQQFqNgIADAELQX8hAyABQZD2BCAIEQAAQX9GDQQgBSABENoCQX9GDQQLIAUgASAEKAIIQQEQvwJBf0YNAyABQb/mASAFKAJMKAIEKAIEEQAAQX9GDQMgBSABIAcoAgwgBCgCEEECdGooAgBBARC/AkF/Rg0DIAZBAWohBgsgAiAEQQggAigCABEEACEEDAALAAsgA0EASgRAQX8hAyABQeLPASAFKAJMKAIEKAIEEQAAQX9GDQFB9OgKQfToCigCAEEBazYCAAsgACAAKAIAQQhyNgIAQQAhAwsgAwvHAQECfwJAIAJFDQAgABAvIQQgACACEEEiAC0AAEUNAEF/IQMgAUHi6AEgBCgCTCgCBCgCBBEAAEF/Rg0AAkAgABB2BEAgBCABIABBARC/AkF/Rw0BDAILIABBOhDPASICBEAgAkEAOgAAIAQgASAAQQAQvwJBf0YNAiABQeLoASAEKAJMKAIEKAIEEQAAQX9GDQIgBCABIAJBAWpBABC/AkF/Rg0CIAJBOjoAAAwBCyAEIAEgAEEAEL8CQX9GDQELQQAhAwsgAwt7AQJ/IAFBUEEAIAEoAgBBA3FBA0YiAxtqIgIoAighBCAAIAFBAEEwIAMbaiIBKAIoEOcBIQMgACgCNCADQSBqIAIQ5gQgACgCOCADQRhqIAIQ5gQgACAEEOcBIQIgACgCNCACQRxqIAEQ5gQgACgCOCACQRRqIAEQ5gQLrgECBH8BfgJAIAFFDQACQCAAEMIDKAIAIgYgASACEJ8EIgMEQCADIAMpAwAiB0IBfEL///////////8AgyAHQoCAgICAgICAgH+DhDcDAAwBCyABEDxBCWohBAJAIAAEQCAEQQEQGSEDDAELIAQQSCEDIARFDQAgA0UNAgsgA0KBgICAgICAgIB/QgEgAhs3AwAgA0EIaiABELoHGiAGIAMQ/A8LIANBCGohBQsgBQuQAQECfwJ/QX8gARAvIgYgAhDaAkF/Rg0AGkF/IAEgAhCsBkF/Rg0AGiABKAIAIgVBCHFFBEBBfyABIAIgAxD2CEF/Rg0BGiABKAIAIQULIAQoAgQgBUEBdkH4////B3FqIAQoAgAgACgCAEEBdkH4////B3FqKQMANwMAIAJBlOIEIAYoAkwoAgQoAgQRAAALC7YBAQF/AkAgAigCBCABKAIAQQF2Qfj///8HcWopAwAgAigCACAAKAIAQQF2Qfj///8HcWopAwBaDQACQCAAIAEQwAINACAAIAEQLQ0AQQEhAwwBCyABEPABIgBFDQAgACgCCCIBQQBBgAEgASgCABEEACEBA0AgAUEARyEDIAFFDQEgACgCDCABKAIQQQJ0aigCACABKAIMRw0BIAAoAggiAiABQQggAigCABEEACEBDAALAAsgAwu+AgEGfyAAEHohAwNAAkAgA0UEQEEAIQAMAQsCQAJAAkACQCADKAJMKAIAQfj0CUYEQCADKQMIpyIAQQFxRQ0BDAILIAMQICIARQ0BCyAALQAAQSVHDQELAkAgAxDwASIGRQ0AIAMoAkQQ8AEiB0UNAEEAIQAgAxA3EPABKAIIEJ0BIgRBACAEQQBKGyEEA0AgACAERg0BAkAgAEECdCIFIAYoAgxqKAIAIghFDQAgBygCDCAFaigCACIFRQ0AIAggBRBJDQMLIABBAWohAAwACwALIANBABC1AiIABEAgACgCCBCdAUEASg0BIAAoAgwQnQFBAEoNAQsgAyABIAIQ/AgaDAELQX8hACADIAFBABD/CEF/Rg0BIAMgASACEP4IQX9GDQEgAyABEP0IQX9GDQELIAMQeSEDDAELCyAAC0UBAX9BfyECQfToCkH06AooAgBBAWs2AgAgACABENoCQX9HBH9Bf0EAIAFB9OEDIAAoAkwoAgQoAgQRAABBf0YbBUF/CwvJBAEIfwJAIAAgASACEPwIQX9GDQAgAEEAELUCIQYgABAbIQUDQCAFRQRAQQAPCyAAIAUgAhD7CARAIAAgBSABIAYEfyAGKAIIBUEACyACEPoIQX9GDQILIAAgBRAtIQMgBSEJA0AgAwRAAkAgCSADIANBMGsiCCADKAIAIgRBA3FBAkYbKAIoIgdGDQAgACAHIAIQ+wggAygCACEERQ0AIAAgAyAIIARBA3FBAkYbKAIoIAEgBgR/IAYoAggFQQALIAIQ+ghBf0YNBCADIAggAygCACIEQQNxQQJGGygCKCEJCyACKAIIIARBAXZB+P///wdxaikDACACKAIAIAAoAgBBAXZB+P///wdxaikDAFQEQCAGBH8gBigCDAVBAAshCCADQVBBACAEQQNxIgRBAkcbaigCKCADQTBBACAEQQNHG2ooAigiBBAvIgcgARDaAkF/Rg0EIAQgARCsBkF/Rg0EIAMgAUH46AooAgAQ9whBf0YNBCABQeHUA0H+1gMgBBAvEIMCGyAHKAJMKAIEKAIEEQAAQX9GDQQgARCsBkF/Rg0EIAMgAUH86AooAgAQ9whBf0YNBAJAIAMtAABBCHFFBEAgAyABIAgQ9ghBf0cNAQwGCyADIAFBARD1CEF/Rg0FCyACKAIIIAMoAgBBAXZB+P///wdxaiACKAIAIAAoAgBBAXZB+P///wdxaikDADcDACABQZTiBCAHKAJMKAIEKAIEEQAAQX9GDQQLIAAgAxAwIQMMAQsLIAAgBRAcIQUMAAsAC0F/C9wDAQZ/An8CQCACDQAgACgCREUNAEHmigUhBEG1yAEhBUEADAELIAAtABghAyAAEPIFIQRB+OgKIABBAkH3G0EAECE2AgBB/OgKIABBAkGzHEEAECE2AgBB/tEDQeaKBSAEGyEEQan9AEHmigUgA0EBcRshBUEBCyEIAn8CQCAAECAiA0UNACADLQAAQSVGDQBBnNgDIQZBAQwBC0HmigUhA0HmigUhBkEACyEHAn9BfyAAIAEQ2gJBf0YNABpBfyABIAQgACgCTCgCBCgCBBEAAEF/Rg0AGiAHIAhyBEBBfyABIAUgACgCTCgCBCgCBBEAAEF/Rg0BGkF/IAFB+dIDIAAoAkwoAgQoAgQRAABBf0YNARoLIAcEQEF/IAAgASADEK4GQX9GDQEaC0F/IAEgBiAAKAJMKAIEKAIEEQAAQX9GDQAaQX8gAUHO4gMgACgCTCgCBCgCBBEAAEF/Rg0AGkH06ApB9OgKKAIAQQFqNgIAIABBABC1AiIDBEBBfyAAIAFB6IABIAMoAhAgAhCtBkF/Rg0BGkF/IAAgAUHfpgEgAygCCCACEK0GQX9GDQEaQX8gACABQa+kASADKAIMIAIQrQZBf0YNARoLIAAgACgCAEEIcjYCAEEACwtCACACKAIAIAAoAgBBAXZB+P///wdxaiABNwMAIAAQeiEAA0AgAARAIAAgASACEIAJIQEgABB5IQAMAQsLIAFCAXwLgwEBAX8gACAAKAIAQXdxNgIAIAAQeiECA0AgAgRAIAJBABCBCSACEHkhAgwBCwsCQCABRQ0AIAAQGyEBA0AgAUUNASABIAEoAgBBd3E2AgAgACABEC0hAgNAIAIEQCACIAIoAgBBd3E2AgAgACACEDAhAgwBCwsgACABEBwhAQwACwALC4MCAQV/IwBBEGsiAyQAQfToCkEANgIAAkAgAEGJ/gAQJiICRQ0AIAIsAABBMGtBCUsNACACQQBBChCxBCICQQBIIAJBPGtBREtyDQBB1KYKIAI2AgALIABBARCBCSADIAAoAkwoAhBBAWoQxQEiAjYCBCADIAAoAkwoAhhBAWoQxQEiBDYCCCADIAAoAkwoAiBBAWoQxQEiBTYCDCAAQgEgA0EEaiIGEIAJGgJAIAAgAUEBEP8IQX9GDQAgACABIAYQ/ghBf0YNACAAIAEQ/QhBf0YNACACEBggBBAYIAUQGEHUpgpBgAE2AgAgASAAKAJMKAIEKAIIEQIAGgsgA0EQaiQAC40FAQ9/Qd/QAyECAkAgAEUNACAALQAARQ0AIAFBIjoAACAALAAAIgJBLWtB/wFxQQJJIAJBMGtBCklyIQkgAUEBaiEDQdSmCigCACEPIAAhDANAIAoiEEEBcyEKAkADQCAMIQUCfwJAAkACQAJAAkACQAJAIAJB/wFxIgsEQCAFQQFqIQwgAsAhCCAGIAtBIkdyRQRAIANB3AA6AABBASEEQQAhBiADQQFqDAkLIAYNAiAFLQAAQdwARw0CQQEhBiAMLQAAIgVBxQBrIg5BF0tBASAOdEGNhYIEcUVyDQEMAwsgA0EiOwAAAkAgBEEBcQ0AIAdBAUYEQCAALQAAQS1rQf8BcUECSQ0BC0GQygghAgNAIAIoAgAiA0UEQCAADwsgAkEEaiECIAMgABAuDQALCyABIQIMCwsgBUEiRiAFQewAayIOQQZNQQBBASAOdEHFAHEbcg0BCyAJRQ0EIAtBLWsOAgECAwtBASEEIAMMBAtBACEGIAdBAEcgBHIhBCAHRSEJIAMMAwtBACEGIA1BAEcgBHIhBCANRSEJIA1BAWohDSADDAILIAhBMGsiBUEKSSEJIAVBCUsgBHIhBEEAIQYgAwwBCyAIQV9xQdsAa0FmSSAIQTprQXZJcSALQd8AR3EgCEEATnEgBHIhBEEAIQZBACEJIAMLIgUgAjoAACAHQQFqIQcgBUEBaiEDIAwsAAAhAiAPRQ0AAkAgAkUgCnJBAXENACAIEOcEIAtB3ABGcg0AIAIQ5wRFDQBBACEQDAILIAJFIAcgD0hyDQALQQEhCiAIEOcEIAtB3ABGcg0BIAIQ5wRFDQELIAVB3BQ7AAEgBUEDaiEDQQEhBEEAIQcgECEKDAALAAsgAgsIAEGAAxDUCguPEQIGfwp8IwBBgAFrIgckAAJAIAEEQCABLQAABEAgACgCPCEJIAEQogoiCkUEQCABEOgGRSAJRXINAyAJKAJ0IgVFDQMgACABIAIgAyAEIAURCgAMAwsgByAAKQO4AzcDSCAHIAApA7ADNwNAIAdBQGshAQJAIApFBEAgB0J/NwJgDAELIAErAwghDSAHAn8gCisDMEQAAAAAAABSQKIgCigCQCIItyIOIAErAwAgCBujIhCZRAAAAAAAAOBBYwRAIBCqDAELQYCAgIB4CzYCYCAHAn8gCisDOEQAAAAAAABSQKIgDiANIAgboyINmUQAAAAAAADgQWMEQCANqgwBC0GAgICAeAs2AmQLIAcoAmAiCEEATCAHKAJkIgtBAExxDQIgByACKQMINwN4IAcgAikDADcDcCAHIAIpAwg3A2ggByACKQMANwNgQQEgAyADQQFNGyEDIAcrA3ghESAHKwNoIRIgBysDcCEQIAcrA2AhDkEBIQEDQCABIANGBEAgByASOQNoIAcgETkDeCARIBKhIRUgC7chDSAHIA45A2AgByAQOQNwIBAgDqEhFCAItyEPAkAgBS0AAEUNACAUIA+jIRYCQCAFQdj+ABAuRQ0AIBUgDaMhEwJAIAVB2SEQLgRAIAVB+f0AEC5FDQEgBRBqRQ0DIBMgFmQEQCAWIA2iIQ0MAwsgEyANoiENIBMgD6IhDwwDCyATIA2iIQ0MAgsgEyANoiENCyAWIA+iIQ8LQQQhAQJAIAYtAABFDQAgBkHy8gAQLkUEQEEAIQEMAQsgBkGaugEQLkUEQEEBIQEMAQsgBkHrOhAuRQRAQQIhAQwBCyAGQYv0ABAuRQRAQQMhAQwBCyAGQem8ARAuRQ0AIAZBgT0QLkUEQEEFIQEMAQsgBkHA9gAQLkUEQEEGIQEMAQsgBkHvvwEQLkUEQEEHIQEMAQtBBEEIIAZB+8AAEC4bIQELIA8gFGMEQCAHAnwCQCABQQhLDQBBASABdCICQckAcUUEQCACQaQCcUUNASAHIBQgD6EgDqAiDjkDYAsgDyAOoAwBCyAHIBQgD6FEAAAAAAAA4D+iIg8gDqAiDjkDYCAQIA+hCyIQOQNwCwJAIA0gFWNFDQACQAJAAkAgAQ4JAAAAAgICAQEBAgsgByARIA2hOQNoDAILIAcgDSASoCIPOQNoIAcgDyANoTkDeAwBCyAHIBEgFSANoUQAAAAAAADgP6IiDaE5A3ggByANIBKgOQNoCyAALQCZAUEgcUUEQCAHIAcpA2g3AzggByAHKQNgNwMwIAdB0ABqIgEgACAHQTBqELgGIAcgBykDWDcDaCAHIAcpA1A3A2AgByAHKQN4NwMoIAcgBykDcDcDICABIAAgB0EgahC4BiAHIAcpA1g3A3ggByAHKQNQNwNwIAcrA3AhECAHKwNgIQ4LIA4gEGQEQCAHIA45A3AgByAQOQNgCyAHKwNoIg0gBysDeCIOZARAIAcgDTkDeCAHIA45A2gLIAlFDQQgACgCSCECIAcgBykDeDcDGCAHIAcpA3A3AxAgByAHKQNoNwMIIAcgBykDYDcDACMAQdAAayIBJAAgAUIANwNIIAFCADcDQAJAAkACQAJAIAAEQCAKRQ0BIAooAggiA0UNAiADLQAARQ0DIAooAhwhAyABIAI2AjQgASADNgIwIAFBQGshAiMAQTBrIgMkACADIAFBMGoiBTYCDCADIAU2AiwgAyAFNgIQAkACQAJAAkACQAJAQQBBAEHxOCAFEGIiCUEASA0AQQEhBiAJQQFqIQUCQCAJIAIQRiACECRrIghPBEAgAhAnQQAgBSAIayIIQQFGGw0BIAIgCBDRAQtBACEGCyADQgA3AxggA0IANwMQIAYgCUEQT3ENASADQRBqIQggCSAGBH8gCAUgAhB0CyAFQfE4IAMoAiwQYiIFRyAFQQBOcQ0CIAVBAEwNACACECcEQCAFQYACTw0EIAYEQCACEHQgA0EQaiAFEB8aCyACIAItAA8gBWo6AA8gAhAkQRBJDQFBvMADQcmEAUHYAUHpHxAAAAsgBg0EIAIgAigCBCAFajYCBAsgA0EwaiQADAQLQZ+vA0HJhAFBywFB6R8QAAALQfiiA0HJhAFB0AFB6R8QAAALQd/UAUHJhAFB0wFB6R8QAAALQeOkAUHJhAFB2gFB6R8QAAALAkAgAhAnBEAgAhAkQQ9GDQELIAFBQGsiAhAkIAIQRk8EQCACQQEQ0QELIAFBQGsiAhAkIQMgAhAnBEAgAiADakEAOgAAIAEgAS0AT0EBajoATyACECRBEEkNAUG8wANByYQBQZ0CQZS6ARAAAAsgASgCQCADakEAOgAAIAEgASgCREEBajYCRAsCQCABQUBrECcEQCABQQA6AE8MAQsgAUEANgJECyABQUBrIgIQJyEDAkAgACgCAEEEIAIgASgCQCADGyICQQAQ5QMiAwRAIAAgAygCECIDKAIMIgI2AlwgACADKAIANgJgDAELIAEgAjYCIEHEggUgAUEgahArIAAoAlwhAgsCQCACRQ0AIAIoAgAiAkUNACABIAcpAxg3AxggASAHKQMQNwMQIAEgBykDCDcDCCABIAcpAwA3AwAgACAKIAEgBCACEQcACyABLQBPQf8BRgRAIAEoAkAQGAsgAUHQAGokAAwEC0HQyAFB+8YBQTFB+aQBEAAAC0H/K0H7xgFBMkH5pAEQAAALQYOgAUH7xgFBM0H5pAEQAAALQcjPAUH7xgFBNEH5pAEQAAALDAQFIAIgAUEEdGoiDCsAACENIBEgDCsACCIPECIhESAQIA0QIiEQIBIgDxAqIRIgDiANECohDiABQQFqIQEMAQsACwALQczPAUGpwwFBqgVBr50BEAAAC0HXoAFBqcMBQakFQa+dARAAAAsgB0GAAWokAAvAGgMHfwl8AX4jAEEwayIFJAAgAkEENgIgIAIgATYCAAJAIAAoAhAiBARAIAEgBCAAKAIUQQRBmAIQ7wMNAQsgASEEIAAoAhghByMAQdABayIDJAAgAiAHNgIgA0AgBCIAQQFqIQQgAC0AAEEgRg0ACyADQf8BNgJ4IAMgA0GEAWoiBjYCYCADIANBgAFqIgg2AmQgAyADQfwAaiIJNgJoIAMgA0H4AGo2AmwCQAJAAkACQAJAIABB8xMgA0HgAGoQT0ECTARAIAAQPEEERw0BIAMgCTYCWCADIAg2AlQgAyAGNgJQIABBgRQgA0HQAGoQT0EDRw0BIAMgAygChAEiAEEEdCAAcjYChAEgAyADKAKAASIAQQR0IAByNgKAASADIAMoAnwiAEEEdCAAcjYCfAtBACEAAkACQAJAAkAgBw4GAAUBAggIAwsgAygChAG4RAAAAAAA4G9AoyIMIAMoAoABuEQAAAAAAOBvQKMiDSADKAJ8uEQAAAAAAOBvQKMiDhAiECIhCiADKAJ4uEQAAAAAAOBvQKMhEQJAIApEAAAAAAAAAABkRQ0AIAogDCANIA4QKhAqoSIPIAqjIhBEAAAAAAAAAABkRQ0AAnwgCiAOoSAPoyILIAogDaEgD6MiEqEgCr0iEyAMvVENABogCiAMoSAPoyIMRAAAAAAAAABAoCALoSATIA29UQ0AGkQAAAAAAAAAACAOvSATUg0AGiASRAAAAAAAABBAoCAMoQtEAAAAAAAATkCiIgtEAAAAAAAAAABjRQ0AIAtEAAAAAACAdkCgIQsLIAIgETkDGCACIAo5AxAgAiAQOQMIIAIgC0QAAAAAAIB2QKM5AwAMBwsgAiADKAKEAUH//wNsQf8BbjYCACACIAMoAoABQf//A2xB/wFuNgIEIAIgAygCfEH//wNsQf8BbjYCCCACIAMoAnhB//8DbEH/AW42AgwMBgsgAiADKAKEAbhEAAAAAADgb0CjOQMAIAIgAygCgAG4RAAAAAAA4G9AozkDCCACIAMoAny4RAAAAAAA4G9AozkDECACIAMoAni4RAAAAAAA4G9AozkDGAwFCyADQYYCNgIEIANBnsYBNgIAQbj8CCgCAEH3yAQgAxAeGhBsAAsgACwAACIIQf8BcUEuRyAIQTBrQQlLcUUEQCADQgA3A8gBIANCADcDwAEgACEGA0AgCEH/AXEiCQRAIANBwAFqQSAgCCAJQSxGG8AQzgMgBi0AASEIIAZBAWohBgwBCwsgA0KAgICAgICA+D83A6ABIANBwAFqEOQCIAMgA0GgAWo2AkwgAyADQagBajYCSCADIANBsAFqNgJEIAMgA0G4AWo2AkBBiYwBIANBQGsQT0EDTgRAIAMgAysDuAFEAAAAAAAA8D8QKkQAAAAAAAAAABAiIgo5A7gBIAMgAysDsAFEAAAAAAAA8D8QKkQAAAAAAAAAABAiIgs5A7ABIAMgAysDqAFEAAAAAAAA8D8QKkQAAAAAAAAAABAiIgw5A6gBIAMgAysDoAFEAAAAAAAA8D8QKkQAAAAAAAAAABAiIg05A6ABAkACQAJAAkACQAJAIAcOBgQAAQIFBQMLIAogCyAMIANBmAFqIANBkAFqIANBiAFqEJcHIAICfyADKwOYAUQAAAAAAOBvQKIiCkQAAAAAAADwQWMgCkQAAAAAAAAAAGZxBEAgCqsMAQtBAAs6AAAgAgJ/IAMrA5ABRAAAAAAA4G9AoiIKRAAAAAAAAPBBYyAKRAAAAAAAAAAAZnEEQCAKqwwBC0EACzoAASACAn8gAysDiAFEAAAAAADgb0CiIgpEAAAAAAAA8EFjIApEAAAAAAAAAABmcQRAIAqrDAELQQALOgACIAICfyADKwOgAUQAAAAAAOBvQKIiCkQAAAAAAADwQWMgCkQAAAAAAAAAAGZxBEAgCqsMAQtBAAs6AAMMBAsgCiALIAwgA0GYAWogA0GQAWogA0GIAWoQlwcgAgJ/IAMrA5gBRAAAAADg/+9AoiIKmUQAAAAAAADgQWMEQCAKqgwBC0GAgICAeAs2AgAgAgJ/IAMrA5ABRAAAAADg/+9AoiIKmUQAAAAAAADgQWMEQCAKqgwBC0GAgICAeAs2AgQgAgJ/IAMrA4gBRAAAAADg/+9AoiIKmUQAAAAAAADgQWMEQCAKqgwBC0GAgICAeAs2AgggAgJ/IAMrA6ABRAAAAADg/+9AoiIKmUQAAAAAAADgQWMEQCAKqgwBC0GAgICAeAs2AgwMAwsgCiALIAwgA0GYAWogA0GQAWogA0GIAWoQlwcgAiADKwOYATkDACACIAMrA5ABOQMIIAIgAysDiAE5AxAgAiADKwOgATkDGAwCCyADQboCNgI0IANBnsYBNgIwQbj8CCgCAEH3yAQgA0EwahAeGhBsAAsgAiANOQMYIAIgDDkDECACIAs5AwggAiAKOQMACyADQcABahBfQQAhAAwFCyADQcABahBfCyAAQfD6ABBJRQ0BIABBzJkBEElFDQEgAEGNDxBJRQ0BIANCADcDyAEgA0IANwPAAQJAIAAtAABBL0YEQCAEQS8QzwEiBkUEQCAEIQAMAgsgBC0AAEEvRgRAAkBB6OQKKAIAIgRFDQAgBC0AAEUNAEHEowMgBEEDEIECRQ0AIANBwAFqIAQgAEECahCeCyEADAMLIABBAmohAAwCCyAAIAZBAWpBxKMDIARBBBCBAhshAAwBC0Ho5AooAgAiBEUNACAELQAARQ0AQcSjAyAEQQMQgQJFDQAgA0HAAWogBCAAEJ4LIQALIAAQqgEhACADQcABahBfDAILIAIgAygChAE6AAAgAiADKAKAAToAASACIAMoAnw6AAIgAiADKAJ4OgADDAILIAAQqgEhAAsgAEUEQEF/IQAMAQsgAEHAoQVB0xNBDEEhEO8DIQQgABAYIAQEQEEAIQACQAJAAkACQAJAIAcOBgABAgMGBgQLIAIgBC0ABLhEAAAAAADgb0CjOQMAIAIgBC0ABbhEAAAAAADgb0CjOQMIIAIgBC0ABrhEAAAAAADgb0CjOQMQIAIgBC0ACrhEAAAAAADgb0CjOQMYDAULIAIgBC0ABzoAACACIAQtAAg6AAEgAiAELQAJOgACIAIgBC0ACjoAAwwECyACIAQtAAdBgQJsNgIAIAIgBC0ACEGBAmw2AgQgAiAELQAJQYECbDYCCCACIAQtAApBgQJsNgIMDAMLIAIgBC0AB7hEAAAAAADgb0CjOQMAIAIgBC0ACLhEAAAAAADgb0CjOQMIIAIgBC0ACbhEAAAAAADgb0CjOQMQIAIgBC0ACrhEAAAAAADgb0CjOQMYDAILIANB6QI2AiQgA0GexgE2AiBBuPwIKAIAQffIBCADQSBqEB4aEGwAC0EBIQACQAJAAkACQAJAIAcOBgABAgMFBQQLIAJCADcDACACQoCAgICAgID4PzcDGCACQgA3AxAgAkIANwMIDAQLIAJBgICAeDYCAAwDCyACQoCAgIDw/z83AwggAkIANwMADAILIAJCADcDACACQoCAgICAgID4PzcDGCACQgA3AxAgAkIANwMIDAELIANBhgM2AhQgA0GexgE2AhBBuPwIKAIAQffIBCADQRBqEB4aEGwACyADQdABaiQAAkACQCAADgICAAELIAVCADcDKCAFQgA3AyAgBSABNgIQIAVBIGohACMAQTBrIgIkACACIAVBEGoiBDYCDCACIAQ2AiwgAiAENgIQAkACQAJAAkACQAJAQQBBAEHkOSAEEGIiA0EASA0AQQEhBiADQQFqIQQCQCADIAAQRiAAECRrIgdPBEAgABAnQQAgBCAHayIHQQFGGw0BIAAgBxCqAwtBACEGCyACQgA3AxggAkIANwMQIAYgA0EQT3ENASACQRBqIQcgAyAGBH8gBwUgABB0CyAEQeQ5IAIoAiwQYiIERyAEQQBOcQ0CIARBAEwNACAAECcEQCAEQYACTw0EIAYEQCAAEHQgAkEQaiAEEB8aCyAAIAAtAA8gBGo6AA8gABAkQRBJDQFBvMADQcmEAUHYAUHpHxAAAAsgBg0EIAAgACgCBCAEajYCBAsgAkEwaiQADAQLQZ+vA0HJhAFBywFB6R8QAAALQfiiA0HJhAFB0AFB6R8QAAALQd/UAUHJhAFB0wFB6R8QAAALQeOkAUHJhAFB2gFB6R8QAAALAkAgABAnBEAgABAkQQ9GDQELIAVBIGoiABAkIAAQRk8EQCAAQQEQqgMLIAVBIGoiABAkIQIgABAnBEAgACACakEAOgAAIAUgBS0AL0EBajoALyAAECRBEEkNAUG8wANByYQBQZ0CQZS6ARAAAAsgBSgCICACakEAOgAAIAUgBSgCJEEBajYCJAsCQCAFQSBqECcEQCAFQQA6AC8MAQsgBUEANgIkCyAFQSBqIgAQJyECIAAgBSgCICACGxC9BgRAIAUgATYCAEH+6QQgBRArCyAFLQAvQf8BRw0BIAUoAiAQGAwBC0HW/gRBABA2CyAFQTBqJAALIgEBfwJAIAAoAjwiAUUNACABKAJUIgFFDQAgACABEQEACwskAQF/AkAgACgCPCICRQ0AIAIoAlAiAkUNACAAIAEgAhEDAAsLIgEBfwJAIAAoAjwiAUUNACABKAI0IgFFDQAgACABEQEACwvRAQIDfwR8AkAgACgCmAEiA0GAgIQCcUUNACAAKAIQIgJBAkEEIANBgIAIcSIEGzYClAIgAiAEQRB2QQJzNgKQAiACKAKYAhAYIAIgAigClAJBEBBKIgI2ApgCIAIgASsDOCIFIAErAxhEAAAAAAAA4D+iIgehOQMAIAErA0AhBiABKwMgIQggAiAFIAegOQMQIAIgBiAIRAAAAAAAAOA/oiIFoDkDGCACIAYgBaE5AwggA0GAwABxRQRAIAAgAiACQQIQmQIaCyAEDQAgAhCUBQsLawAgAEIANwIAAkACQAJAAkACQCACQcIAa0Efdw4KAQQEBAQCBAQDAAQLIAEgASgCqAFBAWs2ArABIABBfzYCBA8LIABBATYCBA8LIABBATYCAA8LIAEgASgCpAFBAWs2AqwBIABBfzYCAAsL2gEBBX8jAEEQayIHJAAgB0EANgIMIAdBADYCCCADEGYiCCEDA0ACQCAFDQAgAyAAKAKkAiAHQQxqELgHIgRFDQBBACEDQQAhBSAEIAAoAqACIAdBCGoiBhC4ByIERQ0BQQAgACgCoAIgBhC4ByIFBEAgACAEQQAQuQYhBCAAIAUgAhC5BiEGIARBAEgEQEEAIQUgBkEASA0DCyAEIAYgBCAGSBsgAUwgASAEIAYgBCAGShtMcSEFDAIFIAAgBCABELkGIAFGIQUMAgsACwsgCBAYIAdBEGokACAFC7kCAgN/CXwCQAJAIAEoAgQiBARAQQEhAiAEQQNwQQFHDQEgACABKAIAIgMpAwA3AxAgACADKQMINwMYIAAgAykDCDcDCCAAIAMpAwA3AwAgACsDGCEFIAArAwghBiAAKwMQIQcgACsDACEIA0AgAiAETw0DIAMgAkEEdGoiASsDACEJIAErAxAhDCACQQNqIQIgASsDICEKIAErAyghCyAFIAErAwggASsDGKBEAAAAAAAA4D+iIg0QIiALECIhBSAHIAkgDKBEAAAAAAAA4D+iIgkQIiAKECIhByAGIA0QKiALECohBiAIIAkQKiAKECohCAwACwALQb2cA0HnwQFBsB1BgckBEAAAC0H6kgNB58EBQbEdQYHJARAAAAsgACAFOQMYIAAgBjkDCCAAIAc5AxAgACAIOQMAC/ABAgF/AnwgACgCECEFAkAgAgR/IAMFIAUoAtgBCyAEckUEQCAFLwGMAkEBcUUNAQsgACgCmAEiAkGAgIQCcUUNACABKwMAIQYgASsDCCEHIAVBAkEEIAJBgIAIcSIDGzYClAIgBSADQRB2QQJzNgKQAiAFKAKYAhAYIAUgBSgClAJBEBBKIgE2ApgCIAEgB0QAAAAAAAAIQKA5AxggASAGRAAAAAAAAAhAoDkDECABIAdEAAAAAAAACMCgOQMIIAEgBkQAAAAAAAAIwKA5AwAgAkGAwABxRQRAIAAgASABQQIQmQIaCyADDQAgARCUBQsL5QQCCH8EfCMAQRBrIgkkACAAKAIEIgZBAWtBA24hBQJAIAZBBGtBAk0EQCACQQQ2AgQgAkEEQRAQSjYCACADQQQ2AgQgA0EEQRAQSiIDNgIAIAkgACgCACABIAIoAgAgAxCmAQwBCyAFQQgQSiEIIAAoAgAhBANAIAUgB0YEQAJAIAEgDaIhAUQAAAAAAAAAACENQQAhBgNAIAUgBkYEQCAFIQYMAgsgDSAIIAZBA3RqKwMAoCINIAFmDQEgBkEBaiEGDAALAAsFIAggB0EDdGogBCsDACAEKwMQIgyhIg4gDqIgBCsDCCAEKwMYIg6hIg8gD6KgnyAMIAQrAyAiDKEiDyAPoiAOIAQrAygiDqEiDyAPoqCfoCAMIAQrAzChIgwgDKIgDiAEKwM4oSIMIAyioJ+gIgw5AwAgDSAMoCENIAdBAWohByAEQTBqIQQMAQsLIAIgBkEDbCIKQQRqIgQ2AgQgAiAEQRAQSjYCACADIAUgBmtBA2xBAWoiBTYCBCADIAVBEBBKNgIAQQAhBANAIAQgAigCBE9FBEAgBEEEdCIFIAIoAgBqIgcgACgCACAFaiIFKQMANwMAIAcgBSkDCDcDCCAEQQFqIQQMAQsLIARBBGshB0EAIQQDQCAEIAMoAgRPRQRAIAMoAgAgBEEEdGoiBSAAKAIAIAdBBHRqIgspAwA3AwAgBSALKQMINwMIIARBAWohBCAHQQFqIQcMAQsLIAkgCkEEdCIFIAAoAgBqIAEgDSAIIAZBA3RqKwMAIgGhoSABoyACKAIAIAVqIAMoAgAQpgEgCBAYCyAJQRBqJAALiwEBA38CQAJAIAAoApwBQQJIDQAgACACQdjiCigCAEHmigUQfCIDEJEEDQAgAy0AAA0BQQEhBCABIAIQb0UNASABIAIQbyEDA0AgA0EARyEEIANFDQIgA0Gw4wooAgBB5ooFEHwiBS0AAEUNAiAAIAUQkQQNAiABIAMgAhBzIQMMAAsAC0EBIQQLIAQLhAIBA38CfwJAIABB3KABECYiAEUNACAALQAARQ0AIAAQyAMaQdDmCiEDA0BB0OYKIAMoAgAiAEUNAhogAEH+tAEQSUUEQCADQQRqIQMgAkEBciECDAELIABB6fcAEElFBEAgAyEAA0AgACAAKAIEIgQ2AgAgAEEEaiEAIAQNAAsgAkEDciECDAELIABB/LMBEElFBEAgAyEAA0AgACAAKAIEIgQ2AgAgAEEEaiEAIAQNAAsgAkHAAHIhAgwBCyAAQam2ARBJBEAgA0EEaiEDBSADIQADQCAAIAAoAgQiBDYCACAAQQRqIQAgBA0ACyACQQRyIQILDAALAAtBAAsgASACNgIACzkBAn8CQCAAKALEASICQQBIDQAgAiAAKAKkAU4NACAAKALIASICQQBIDQAgAiAAKAKoAUghAQsgAQvNAQEDf0EBIQQDQCAEIAEoAhAiAygCtAFKRQRAIAAgAygCuAEgBEECdGooAgAiAxCTCQJAIANB0jwQJiICRQ0AIAItAABFDQAgACACEEULAkAgA0G9PBAmIgJFDQAgAi0AAEUNACAAIAIQRQsCQCADQdA8ECYiAkUNACACLQAARQ0AIAAgAhBFCwJAIANBxjwQJiICRQ0AIAItAABFDQAgACACEF4LAkAgA0GzPBAmIgNFDQAgAy0AAEUNACAAIAMQRQsgBEEBaiEEDAELCwuNJgMRfwZ8BX4jAEHgAWsiBCQAIAAgACsDuAMiE0QAAAAAAABSQKMiFDkDkAQgACAAKwOwAyIVRAAAAAAAAFJAozkDiAQgACAVIAArA+ACIhWiRAAAAAAAAFJAoyIWOQPoAyAAIBUgE6JEAAAAAAAAUkCjIhM5A/ADAkAgACgCmAEiA0GAIHFFBEBB6OEKLQAAQQFHDQELIAAgFJo5A5AECyAAQcQDQcADIAAoAugCIgIbaigCACEFIAAgAEHAA0HEAyACG2ooAgC4IBOjOQP4AiAAIAW4IBajOQPwAiAAIAEgAUEAQcogQQAQIUHmigUQfBCNBCAAQQA2AqABIAAQlwQiAkEANgIMIAIgATYCCCACQQA2AgQgACABKAIQKAIMIAEQvwYCQCAAKAI8IgJFDQAgAigCCCICRQ0AIAAgAhEBAAsCQCADQQJxRQ0AIABBjQ8QXgJAIAFB0DwQJiICRQ0AIAItAABFDQAgACACEF4LAkAgAUGzPBAmIgJFDQAgAi0AAEUNACAAIAIQRQsgACABEJMJIAEQGyEGA0AgBkUNAQJAIAZB0jwQJiICRQ0AIAItAABFDQAgACACEEULAkAgBkG9PBAmIgJFDQAgAi0AAEUNACAAIAIQXgsCQCAGQcY8ECYiAkUNACACLQAARQ0AIAJBOhDPAQRAIAIQZiIFIQMDQCADQeLoARC/BSICBEBBACEDIAItAABFDQEgACACEEUMAQsLIAUQGAwBCyAAIAIQRQsCQCAGQbM8ECYiAkUNACACLQAARQ0AIAAgAhBFCyABIAYQLSEFA0AgBQRAAkAgBUHSPBAmIgJFDQAgAi0AAEUNACACQToQzwEEQCACEGYiByEDA0AgA0Hi6AEQvwUiAgRAQQAhAyACLQAARQ0BIAAgAhBFDAELCyAHEBgMAQsgACACEEULAkAgBUGzPBAmIgJFDQAgAi0AAEUNACAAIAIQRQsgASAFEDAhBQwBCwsgASAGEBwhBgwACwALIAEQGyECA0AgAgRAIAIoAhBBADoAhAEgASACEBwhAgwBCwsgACAAKAIAIgIoArACIgM2ApwBAkAgAigCtAIiAgRAAkAgAigCAEECSA0AIAAtAJgBQcAAcQ0AIAQgACgCNDYCkAFBiegDIARBkAFqECsgAiAAKAKcAUEBajYCCAsgAkEIaiEKIAIoAgQhAgwBC0EBIQIgA0ECSA0AIAAtAJgBQcAAcQ0AIAQgACgCNDYCgAFBiegDIARBgAFqECsgAEEBNgKcAQsgAEGcAWohDgNAAkAgACACNgKgASACIAAoApwBSg0AIAAoAgAoArQCIgIgDiACGygCAEECTgRAAkAgACgCPCICRQ0AIAIoAhAiAkUNACAAIAAoAgAoAqwCIAAoAqABIgNBAnRqKAIAIAMgACgCnAEgAhEHAAsLIAAgACkCrAEiGTcCxAEgGachAgNAAkACQCAAEJIJBEAgACgCmAEhCSAAKAIQIQcgBEIANwOoASAEQgA3A6ABQQAhCyAAKAKgAUEBSiACQQBKciISBEAgBygC3AEhCyAAIARBoAFqIgIQmQkgAiALQZQ9IAsbEMoDIAcgAhDJAzYC3AELIAFBt58BECYQ7wIhDyAAKQKkASIZQiCIIRogACkCxAEiG0IgiCEcAkAgACgC6AIiA0UEQCAZIR0gGiEZIBshGiAcIRsMAQsgGiEdIBwhGgsgACAap7ciFyAAKwPAAiIUoiAAKwPwAaEiFTkDoAIgACAbp7ciGCAAKwPIAiIToiAAKwP4AaEiFjkDqAIgACATIBagOQO4AiAAIBQgFaA5A7ACAkAgACgCDCgCHEUEQCAAIAApA8gDNwPYAyAAIAApA9ADNwPgAwwBCyAAIAAoAtgDIgIgACgAyAMiBSACIAVIGzYC2AMgACAAKALcAyICIAAoAMwDIgUgAiAFSBs2AtwDIAAgACgC4AMiAiAAKADQAyIFIAIgBUobNgLgAyAAIAAoAuQDIgIgACgA1AMiBSACIAVKGzYC5AMLIAArA9gCIRUgACsD0AIhFgJAIAAoApgBIgJBgAFxBEAgFSAAKwP4AkQAAAAAAADgP6IiFKAhEyAWIAArA/ACRAAAAAAAAOA/oiIYoCEXIBUgFKEhFSAWIBihIRQMAQsgEyATIBggGae3RAAAAAAAAOA/oqGiIBWgIhWgIRMgFCAUIBcgHae3RAAAAAAAAOA/oqGiIBagIhSgIRcLIAAgEzkDmAIgACAXOQOQAiAAIBU5A4gCIAAgFDkDgAICQCADBEAgACATmiAAKwOIAyAAKwPgAiITo6E5A4AEAkAgAkGAIHFFBEBB6OEKLQAAQQFHDQELIAAgF5ogACsDgAMgE6OhOQP4AwwCCyAAIAArA4ADIBOjIBShOQP4AwwBCyAAIAArA4ADIAArA+ACIhajIBShOQP4AwJAIAJBgCBxRQRAQejhCi0AAEEBRw0BCyAAIBOaIAArA4gDIBajoTkDgAQMAQsgACAAKwOIAyAWoyAVoTkDgAQLAkAgACgCPCICRQ0AIAIoAhgiAkUNACAAIAIRAQALIABB8PoAEEUgAEGNDxBeAkAgCUGAgIQCcUUNACAHKALYAUUEQCAHLQCMAkEBcUUNAQsCfyAJQYCAKHFFBEBBACECQQAMAQsgByAJQYCACHEiA0EQdkECczYCkAJBAkEEIAMbQRAQSiICIAApA6gCNwMIIAIgACkDoAI3AwAgAiAAKQOwAjcDECACIAApA7gCNwMYQQIgAw0AGiACEJQFQQQLIQMgCUGAwABxRQRAIAAgAiACIAMQmQIaCyAHIAM2ApQCIAcgAjYCmAILAkAgCUGAgAJxRQ0AIAEoAhAoAgwiAkUNACAHIAIoAgA2AsgBCwJAIAlBBHEiEA0AIAcoAtgBRQRAIActAIwCQQFxRQ0BCyAEIAApA5gCNwN4IAQgACkDkAI3A3AgBCAAKQOIAjcDaCAEIAApA4ACNwNgIAAgBEHgAGoQ7AQgACAHKALYASAHKALsASAHKAL8ASAHKALcARDGAQsCfyABQdA8ECYiAkUEQEHMmQEhAkEBDAELIAJBzJkBIAItAAAiAxshAiADRQshAwJAAkAgAC0AmQFBAXFFBEBBASADIAJBoyAQTSIFGyEDQcyZASACIAUbIQIgACgCmAEiBUGAAnFFDQELIAJBoyAQTQ0BIAAoApgBIQULIANBACAFQYCAgBBxGw0AIARCADcDwAEgAiAEQcABaiAEQbgBahCTBARAIARBADYCtAEgACAEKALAASIDEF4gAEGjIBBFIAEgBEG0AWoQkQkaIAAgBCgCxAEiAkHw+gAgAhsgAUH44QooAgBBAEEAEGQgBCsDuAEQlQMgBCAAKQOIAjcDKCAEIAApA5ACNwMwIAQgACkDmAI3AzggBCAAKQOAAjcDICAAIARBIGpBA0ECIAQoArQBQQJxGxCKAiADEBggAhAYDAELIAAgAhBeIABBoyAQRSAEIAApA5gCNwNYIAQgACkDkAI3A1AgBCAAKQOIAjcDSCAEIAApA4ACNwNAIAAgBEFAa0EBEIoCCyABKAIQKAIIKAJYIgxFDQIgDCgCCCECQQAhA0EBIQZBACERQQEhBQNAIAwoAgAgA00EQCARRQ0EIAAgACgCACgCyAIQ5gEMBAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIoAgAiCA4QAAABAQICAwQLBQ0ICQYHDQoLIAIrAGAgACsAgAJmRQ0MIAArAJACIAIrAFBmRQ0MIAIrAGggACsAiAJmRQ0MIAArAJgCIAIrAFhmRQ0MIAQgAisDCCIVIAIrAxgiFqE5A8ABIAIrAyAhEyACKwMQIRQgBCAVIBagOQPQASAEIBQgE6A5A9gBIAQgFCAToTkDyAEgACAEQcABakEAIAYgCBsQjgQMDAsgAisAYCAAKwCAAmZFDQsgACsAkAIgAisAUGZFDQsgAisAaCAAKwCIAmZFDQsgACsAmAIgAisAWGZFDQsgAigCDCACKAIIEL4GIQggAigCCCINQQBIDQ4gACAIIA0gBkEAIAIoAgBBAkYbEEMgCBAYDAsLIAIrAGAgACsAgAJmRQ0KIAArAJACIAIrAFBmRQ0KIAIrAGggACsAiAJmRQ0KIAArAJgCIAIrAFhmRQ0KIAAgAigCDCACKAIIEL4GIgggAigCCCAGQQAgAigCAEEERhsQiQIgCBAYDAoLIAIrAGAgACsAgAJmRQ0JIAArAJACIAIrAFBmRQ0JIAIrAGggACsAiAJmRQ0JIAArAJgCIAIrAFhmRQ0JIAAgAigCDCACKAIIEL4GIgggAigCCBA5IAgQGAwJCyACKwBgIAArAIACZkUNCCAAKwCQAiACKwBQZkUNCCACKwBoIAArAIgCZkUNCCAAKwCYAiACKwBYZkUNCCAEIAIrAwg5A8ABIAQgAisDEDkDyAEgAigCcCEIIAQgBCkDyAE3AxggBCAEKQPAATcDECAAIARBEGogCBC0BgwICyAAIAIoAggQRQwGCyACKwMoIRMgAigCCEECRgRAIAIoAkQiBisDECEUIAYoAhghCCAGKAIIIQYCfyACKwMQIhUgE2EEQEEAIAIrAzAgAisDGGENARoLIBUgE6EgAisDIKMQsgJEAAAAAACAZkCiRBgtRFT7IQlAoyITmUQAAAAAAADgQWMEQCATqgwBC0GAgICAeAshDSAAIAYQXiAAIAggDSAUEJUDQQMhBgwHCyACKAI0IgYrAxAhFCAGKAIYIQggEyACKwMYoSACKwMgIAIrAxChEK0BIRMgACAGKAIIEF4gACAIAn8gE0QAAAAAAIBmQKJEGC1EVPshCUCjIhOZRAAAAAAAAOBBYwRAIBOqDAELQYCAgIB4CyAUEJUDQQIhBgwGC0HA7ARBABArDAULIAAgAigCCBDIAxDmAUHQ5gohEQwECyAFRQRAQQAhBQwEC0EAIQVBprYEQQAQKwwDCyAEQesLNgIEIARB58EBNgIAQbj8CCgCAEH3yAQgBBAeGhBsAAsgACACKAIIEF4LQQEhBgsgA0EBaiEDIAJB+ABqIQIMAAsACyAAKAIAKAK0AiICIA4gAhsoAgBBAk4EQAJAIAAoAjwiAkUNACACKAIUIgJFDQAgACACEQEACwsgCgRAIAooAgAhAiAKQQRqIQoMBQsgACgCoAFBAWohAkEAIQoMBAtBoLgDQefBAUGaC0GiHRAAAAsgASgCECgCDCICBEAgAEEEIAIQlwMLAkAgEEUEQAJAIAcoAtgBRQRAIActAIwCQQFxRQ0BCyAAEJgCCyAAKAIAIgIgAigCHEEBajYCHCAAIAEgCRDqBAwBCyAAKAIAIgIgAigCHEEBajYCHAsCQAJAAkACQCAJQQFxBEAgABC3BiABEBshAgNAIAIEQCAAIAIQxwMgASACEBwhAgwBCwsgABC2BiAAELUGIAEQGyEDA0AgA0UNAiABIAMQLSECA0AgAgRAIAAgAhCSBCABIAIQMCECDAELCyABIAMQHCEDDAALAAsgCUEQcQRAIAAQtQYgARAbIQMDQCADBEAgASADEC0hAgNAIAIEQCAAIAIQkgQgASACEDAhAgwBCwsgASADEBwhAwwBCwsgABCJCSAAELcGIAEQGyECA0AgAkUNBCAAIAIQxwMgASACEBwhAgwACwALIAlBCHFFDQEgABC3BiABEBshBQNAQQEhAiAFBEACQANAIAEoAhAiAygCtAEgAk4EQCACQQJ0IAJBAWohAiADKAK4AWooAgAgBRCvAUUNAQwCCwsgACAFEMcDCyABIAUQHCEFDAELCyAAELYGIAAQtQYgARAbIQYDQCAGRQ0BIAEgBhAtIQUDQEEBIQIgBQRAAkADQCABKAIQIgMoArQBIAJOBEAgAkECdCACQQFqIQIgAygCuAFqKAIAIAUQrwFFDQEMAgsLIAAgBRCSBAsgASAFEDAhBQwBCwsgASAGEBwhBgwACwALIAAQiQkMAgsgARAbIQMDQCADRQ0CIAAgAxDHAyABIAMQLSECA0AgAgRAIAAgAkFQQQAgAigCAEEDcUECRxtqKAIoEMcDIAAgAhCSBCABIAIQMCECDAELCyABIAMQHCEDDAALAAsgABC2BgsgEARAIAAgASAJEOoECwJAIAAoAjwiAkUNACACKAIcIgJFDQAgACACEQEACyASBEAgByALNgLcAQsgBEGgAWoQXyAPEO8CEBggDxAYIAAgACgAxAEgACgAvAFqIgKtIAAoAMgBIAAoAMABaiIDrUIghoQ3AsQBIAAQkgkNAAJAIAAoArgBIgUEQCAAKAKsASECDAELIAAoArABIQMLIAAgACgAtAEgAmoiAq0gAyAFaq1CIIaENwLEAQwACwALCwJAIAAoAjwiAUUNACABKAIMIgFFDQAgACABEQEACwJAIAAoAkwiAUUNACABKAIEIgFFDQAgACABEQEACyAAEJ0HGiAAEJYEIARB4AFqJAALywECAX8CfCMAQeAAayIBJAAgASAAKQMINwNYIAEgACkDADcDUCABIAApAzg3A0ggASAAKQMwNwNAIAEgACkDGDcDOCABIAApAxA3AzAgAUHQAGogAUFAayABQTBqEMMKIAEgACkDCDcDKCABIAApAwA3AyAgASAAKQM4NwMYIAEgACkDMDcDECABIAApAyg3AwggASAAKQMgNwMAIAFBIGogAUEQaiABEMMKIQMgAUHgAGokAEQAAAAAAAAQQGMgA0QAAAAAAAAQQGNxCysBAX8gACgCCCIBRQRAQY+nA0HnwQFBpANBm/sAEAAACyAAIAFBAWsQlAQLthECF3wKfyMAQdAAayIbJAAgACgCECsDoAEhDyACIBtBQGsQ7QQiI0EBa0ECTwRAIAErAAAhAyABKwAQIQggGyABKwAYIgYgASsACKBEAAAAAAAA4D+iIgQ5AzggGyAIIAOgRAAAAAAAAOA/oiIDOQMwIA9EAAAAAAAA4D9kBEAgAEQAAAAAAADgPxCIAgsgBiAEoSEJIAggA6EhBkEAIQEgGygCSCEiRAAAAAAAAAAAIQgDQAJAIAEgIkYNACAbQRhqIBtBQGsgARCaAiAbKAIYIgJFDQAgGysDICIDRAAAAAAAAAAAZQRAIAFBAWohAQUgACACEF4gGyAbKQM4NwMQIBsgGykDMDcDCCAAAn9EGC1EVPshGUAgA0QYLURU+yEZQKIgCCIDoCABQQFqIgEgIkYbIQhBACEcIwBB0ABrIhokACADEEQhBSADEFggGysDECEQIBsrAwghESAJoyAFIAajEK0BIQVBAUEIEEciIARAIAgQRCEEIAgQWCAJoyAEIAajEK0BIgQgBaFEGC1EVPshGUCjnEQYLURU+yEZwKIgBKAiBEQYLURU+yEZQKAgBCAEIAWhRBgtRFT7IQlAYxsgBCAIIAOhRBgtRFT7IQlAZBsgBaEhFCAJIAajIgMgA0TmxwShYdagv0R+sOfGTz6YvyADRAAAAAAAANA/YyICG6JEx2lnHBP3gr9EByObUC3HpD8gAhugokQqf2vlLXBcv0Q+GMJ7WLmRvyACG6AgA0TkV2JUCJp1P0QtfH2tS43GPyACG6CjIRUgAyADROWpWEY0y7G/RKB4hIn1/I8/IAIbokSPAMnPoWemv0RpNSTusfSRvyACG6CiRFy1xvvMtIg/RLjNM3pev2o/IAIboCADRE2kj1Q6s5A/RJI+raI/NM2/IAIboKMhFiADIANE+kSeJF0z0L9Eu7SG98Gekz8gAhuiRAHwmTYtwl4/RBeoe1NHfaC/IAIboKJEDZx9L8+Ulz9EISuu4G2Uiz8gAhugIANEibX4FADjiT9EM3PchNYetb8gAhugoyEXIAMgA0QclgZ+VMPEv0QfrSC8LNyQPyACG6JEpUkp6PbiI0BEKCzxgLLJI0AgAhugokSp2QOtwJDBP0QjWuFMAoq3PyACG6AgA0QIxJBBk2mJP0RIo2VRlil/PyACG6CjIRggAyADRIHMzqJ3KuS/RLaBO1CnPK4/IAIbokTRrdf0oKDIP0RRTN4AM9+5vyACG6CiRGrfNxmwP4Q/RPV2lf/aC6Y/IAIboCADRL7KkBle/4Q/RNSlNbwP9pQ/IAIboKMhGSADIANEsOO/QBAg7b9ETS7GwDqOzT8gAhuiRK2h1F5E29g/RFlrKLUX0dy/IAIboKJEO6F85lGWdj9EAz+qYb8nzD8gAhugIANE025w+XqEez9EpkdTPZl/2j8gAhugoyELIAMgA0Sf5Xlwd9b5v0Ta/wBr1a7BPyACG6JEfv0QGyyc5j9ETihEwCFU978gAhugokSW7NgIxOvMP0SqSIWxhSD1PyACG6AgA0TNzqJ3KuDQP0SdaFch5Sf2PyACG6CjIQ0gAyADRFGgT+RJ0g5ARNHxh1VyBLc/IAIbokS0yHa+nzo1wESV1AloIjwzwCACG6CiRDoi36XUJdW/RGQjEK/rdxDAIAIboCADRPOCPkeaLoo/RKchqvBneMc/IAIboKMhDiAGIAMgA0T8qfHSTWJQP6JE7FG4HoXrE0CgokTl0CLb+X7KP6AgA0RTliGOdXF7P6CjoiEKQQEhHQNAIBQgHbijIQwCQCAcQQFxIB1B/wdLckUEQEEAIR5BASECIAUhA0EAIRwgDEQYLURU+yH5P2VFDQEDQCACQQFxRQRAIAIhHAwDCyACIRwgHSAeTQ0CIAMgDCADoCIEoEQAAAAAAADgP6IiB0QAAAAAAAAQQKIQRCESIAcgB6AQRCETIAogB0QAAAAAAAAYQKIQRCIHIBWiIBIgFqIgEyAXoiAYoKCgIAQgA6GiIAcgGaIgEiALoiATIA2iIA6goKCgEKYMokTxaOOItfjkPmUhAiAeQQFqIR4gBCEDDAALAAsgGkIANwMoIBpCADcDICAaIBA5A0ggGiAaKQNINwMYIBogETkDQCAaIBopA0A3AxAgBRBYIQogBRBEIQcgGkEgaiICIBpBEGoQeyACIBEgBiAHoqAiAyAQIAkgCqKgIgsQowkgDEQAAAAAAADgP6IQiQwhBCAMEFggBCAERAAAAAAAAAhAoqJEAAAAAAAAEECgn0QAAAAAAADwv6CiRAAAAAAAAAhAoyINmiEOIAkgB6IhBCAGIAqaoiEKQQAhAgNAIAIgHUcEQCAaQSBqIA0gCqIgA6AgDSAEoiALoCAOIAYgDCAFoCIFEFgiB5qiIgqiIBEgBiAFEEQiBKKgIgOgIA4gCSAEoiIEoiAQIAkgB6KgIgugIAMgCxCiCSACQQFqIQIMAQsLIBpBQGsgGkEgaiICQQAQoQkgAiAaKwNAIBorA0gQowkgICAaKAIoIh02AgQgGigCICEfIBooAiwhHCAaKAIkIR4CQAJAA0AgHgRAIBxFDQIgGiAfKQMINwNIIBogHykDADcDQCAcIQIDQCACBEAgGiAfIAJBAWsiAkEEdGoiISkDCDcDOCAaICEpAwA3AzAgISAaKQNINwMIICEgGikDQDcDACAaIBopAzg3A0ggGiAaKQMwNwNADAEFIB5BAWshHgwDCwALAAsLIBwgHUkNASAgIB82AgAgGkHQAGokACAgDAULQeKaA0G0xgFBqwFByrwBEAAAC0HGqgNBtMYBQasBQcq8ARAAAAsgHUEBdCEdDAALAAsgGkEINgIAQbj8CCgCAEHT8wMgGhAeGhAoAAsiAigCACACKAIEQQEQiQIgAigCABAYIAIQGAsMAQsLIA9EAAAAAAAA4D9kBEAgACAPEIgCCyAbQUBrEJUECyAbQdAAaiQAICMLnQEBAX8CQAJAIAJFDQAgABBGIAAQJGsgAkkEQCAAIAIQgQQLIAAQJCEDIAAQJwRAIAAgA2ogASACEB8aIAJBgAJPDQIgACAALQAPIAJqOgAPIAAQJEEQSQ0BQbzAA0HJhAFBhQJBsvAAEAAACyAAKAIAIANqIAEgAhAfGiAAIAAoAgQgAmo2AgQLDwtB+NQBQcmEAUGDAkGy8AAQAAALfQECfyMAQSBrIgIkACAAKAKgASIDQQJOBEAgAiAAKAIAKAKsAiADQQJ0aigCADYCECABQbPMASACQRBqEIABCyAAKALIASEDIAAoAsQBIgBBAEwgA0EATHFFBEAgAiADNgIEIAIgADYCACABQbfMASACEIABCyACQSBqJAAL7AEBAX8gACgCECEHIAFFIAAoApgBIgBBgIACcUVyRQRAIAcgATYCyAELAkAgAEGAgARxIgFFDQAgByAFIAYQgwE2AtwBIAJFDQAgAi0AAEUNACAHIAIgBhCDATYC2AELIAFBEHYhAQJAIABBgICAAnFFDQACQCADRQ0AIAMtAABFDQAgByADIAYQgwE2AuwBQQEhASAHIAcvAYwCQQFyOwGMAgwBCyAHKALIASICRQ0AIAcgAhBmNgLsAUEBIQELAkAgBEUgAEGAgIAEcUVyDQAgBC0AAEUNACAHIAQgBhCDATYC/AFBASEBCyABCxUAIAAgASACEJ8EIgBBCGpBACAAGwvOAQEFfyMAQSBrIgMkACAAKAIQIgQoArQBIgJBACACQQBKG0EBaiEGQQEhBQJAA0AgBSAGRwRAIAQoArgBIAVBAnRqKAIAIAMgASkDGDcDGCADIAEpAxA3AxAgAyABKQMINwMIIAMgASkDADcDACAFQQFqIQUgAxCcCSICRQ0BDAILCwJAIAErAxAgBCsDEGZFDQAgBCsDICABKwMAZkUNACABKwMYIAQrAxhmRQ0AIAAhAiAEKwMoIAErAwhmDQELQQAhAgsgA0EgaiQAIAILOwEBfwJAIAFBAEGsjQFBABAhIgJFBEAgAUEAQYXZAUEAECEiAkUNAQsgACABIAIQQSABEIMBNgLMBAsLRwEBfAJAIABEAAAAAAAAAABhIAFEAAAAAAAAAABhcQ0AIAAgARCtASICRAAAAAAAAAAAZg0AIAJEGC1EVPshGUCgIQILIAILJgAgBCADIAIbIgMQWCEEIAUgASADEESiIACgIAEgBKIgAKAQ7wQLwwICBn8CfCMAQRBrIgckACABKwMIIQkgASsDACEKAkACQCAAKAIIIgYgACgCDCIBRwRAIAAoAgAhAyAAKAIEIQQMAQsgBkEBdEEBIAYbIgFB////H0sEQEHEACEADAILIAAoAgAgAUEGdBA6IgNFBEBBMCEADAILIAMgACgCDCIFQQZ0akEAIAEgBWtBBnQQMxogBSAAKAIIIgYgACgCBCIEakkEQCAEQQZ0IQggAyABIAUgBGsiBWsiBEEGdGogAyAIaiAFQQZ0EFMaIAAgBDYCBAsgACABNgIMIAAgAzYCAAsgAyAEIAZqIAFwQQZ0aiIBIAI5AxAgASAJOQMIIAEgCjkDACABQRhqQQBBKBAzGiAAIAAoAghBAWo2AgggB0EQaiQADwsgByAAEHg2AgBBuPwIKAIAQdqKBCAHEB4aECgACxUAIAAgASACQY0mQasBQbTGARDbCguUAQEBfyMAQeAAayIHJAAgByACOQNYIAcgBykDWDcDKCAHIAE5A1AgByAHKQNQNwMgIAAgB0EgahB7IAcgBDkDSCAHIAcpA0g3AxggByADOQNAIAcgBykDQDcDECAAIAdBEGoQeyAHIAY5AzggByAHKQM4NwMIIAcgBTkDMCAHIAcpAzA3AwAgACAHEHsgB0HgAGokAAs6AQF/IwBBEGsiAyQAIAMgACAAKAIIQQFrEKEJIAAgAysDACADKwMIIAEgAiABIAIQogkgA0EQaiQAC1IBBH8gAARAIAAhAgNAIAEgA0YEQCAAEBgFIAIoAgAQGAJAIAIoAggiBEUNACACKAIMIgVFDQAgBCAFEQEACyADQQFqIQMgAkE4aiECDAELCwsLzgUBD38jAEHQAGsiAyQAQeXYASEEQbLVASEKQcveASELQcTgASEOQaPYASEPQf7eASEIQeaKBSEMQeaKBSEJQQEhBQJAAkACQAJAAkAgARCTAg4DAAECBAsgARAgIQggASgCECgCDCIBRQ0CIAEoAgAhBAwCCyABEC8QICEIIAEQICEPIAEoAhAoAngiAUUNASABKAIAIQQMAQsgASABQTBqIgUgASgCAEEDcUEDRhsoAigQLxA3ECAhCCABIAUgASgCAEEDcUEDRhsoAigQICEKIAEoAhAoAjQiDARAIAwtAABBAEchBgsgAUFQQQAgASgCAEEDcUECRxtqKAIoECAhCyABKAIQIgQoAlwiCQRAIAktAABBAEchBwsgBCgCYCIEBH8gBCgCAAVB5dgBCyEEQbHmAUGBpQMgASAFIAEoAgBBA3FBA0YbKAIoEC8QNxCDAhshDkEAIQUMAQsLIANCADcDSCADQgA3A0ADQCAAQQFqIQECQAJAIAAtAAAiEEHcAEcEQCAQRQ0BDAILIAEsAAAiEUH/AXEiDUUNASAAQQJqIQACQAJAAkACQAJAAkACQAJAIA1BxQBrDgoDBwEFBwcHBgcCAAsgDUHUAEYNAyACRSANQdwAR3INBiADQUBrQdwAEJwBDAkLIANBQGsgCBDLAwwICyADQUBrIA8QywMMBwsgBQ0GIANBQGsiASAKEMsDIAYEQCADIAw2AjAgAUH7OCADQTBqEMQCCyADIAs2AiQgAyAONgIgIANBQGsiAUGVOCADQSBqEMQCIAdFDQYgAyAJNgIQIAFB+zggA0EQahDEAgwGCyADQUBrIAoQywMMBQsgA0FAayALEMsDDAQLIANBQGsgBBDLAwwDCyADIBE2AgAgA0FAa0GqyAEgAxDEAgwCCyADQUBrEJwDIANB0ABqJAAPCyADQUBrIBDAEJwBIAEhAAwACwAL2AIBBX8jAEEQayICJAAgAUIANwMYIAFCADcDICABKAIAIgQtAAAiAwRAIAJCADcDCCACQgA3AwADQAJAIANFDQACfwJAIANB3wBqQf8BcUHdAE0EQCABKAIMQQJGDQELIARBAWohBQJAIANBCkYEQCAAIAEgAhCcA0HuABDFBgwBCyADQdwARgRAAkAgBS0AACIGQewAayIDQQZLQQEgA3RBxQBxRXJFBEAgACABIAIQnAMgBSwAABDFBgwBCyACIAbAEJwBCyAEQQJqIAUgBC0AARsMAwsgAiADwBCcAQsgBQwBCyACIAPAEJwBIAIgBCwAASIDEJwBIANFDQEgBEECagsiBC0AACEDDAELCyACECQEQCAAIAEgAhCcA0HuABDFBgsgAi0AD0H/AUYEQCACKAIAEBgLIAEgAUEYaiIAKQMANwMoIAEgACkDCDcDMAsgAkEQaiQACx8AIABFBEBBidoBQfuEAUHvAEHhjwEQAAALIAAoAggLWAECfyAFBEAgACABIAMgAhEFAAsgABB6IQYDQCAGBEAgBiABIAQRAAAiBwRAIAYgByACIAMgBCAFEKgJCyAGEHkhBgwBCwsgBUUEQCAAIAEgAyACEQUACwvwBwIJfwl8IwBB8ABrIgMkACADQgA3AzAgA0IANwMoIANCADcDICADQgA3AxggASgCBCEERAAAAAAAAPC/IQ0DQAJAIAQgB0YNACABKAIAIAdBBXRqIgYoAgRBAUsNAAJAAkAgBigCACgCBCIGBEAgBi0AGEH/AHENAyAGKwMQIgxEAAAAAAAAAABkRQRAIAIrAyAhDAsgAyAMOQMoIAYoAgAiBkUNAQwCCyADIAIrAyAiDDkDKAsgAigCECEGCyADIAY2AhgCQCAHRQRAIAwhDQwBCyAMIA1iDQELAkAgBUUEQCAGIQUMAQsgBiAFEEkNAQsgB0EBaiEHDAELCyABIAQgB00iCjoACEEAIQZEAAAAAAAAAAAhDQNAIAQgBk1FBEAgASgCACEFQQAhB0QAAAAAAAAAACEMIAZBBXQhCEQAAAAAAAAAACEPRAAAAAAAAAAAIRBEAAAAAAAAAAAhDQJAAkADQCAFIAhqIgQoAgQgB00EQAJAIAQgDzkDECAKRQ0DIAYNACAFIAw5AxggDSEMDAQLBSADIAdBOGwiCSAEKAIAaigCACACKAIwEIMBNgI4AkAgASgCACAIaiIEKAIAIAlqKAIEIgUEQCADIAUoAhhB/wBxIgUEfyAFBSACKAIoQf8AcQsgAygCMEGAf3FyNgIwIAMgBCgCACAJaigCBCIEKwMQIg5EAAAAAAAAAABkBHwgDgUgAisDIAs5AyggAyAEKAIAIgUEfyAFBSACKAIQCzYCGCAEKAIEIgUEQCADIAU2AhwMAgsgAyACKAIUNgIcDAELIAMgAisDIDkDKCADIAIoAhA2AhggAyACKAIUNgIcIAMgAygCMEGAf3EgAigCKEH/AHFyNgIwCyADIAAoAogBIgUgA0EYakEBIAUoAgARBAA2AjwgA0EIaiAAIANBOGoQjAcgAysDECEOIAMrAwghFCABKAIAIAhqKAIAIAlqKAIAEBggAygCOCELIAEoAgAiBSAIaigCACAJaiIEIBQ5AyAgBCALNgIAIAQgAysDSDkDECAEIAMrA1A5AxggBCADKAI8NgIEIAQgAygCQDYCCCAEIAMoAkQ2AgwgDiANIA0gDmMbIQ0gAysDUCIOIBAgDiAQZBshECADKwMoIg4gDCAMIA5jGyEMIAdBAWohByAPIBSgIQ8MAQsLIAQgDTkDGCANIQwMAQsgBkUEQCAFIAwgEKE5AxgMAQsgBCARIAygIBOhIBChOQMYCyAPIBIgDyASZBshEiAGQQFqIQYgESAMoCERIBMgBCsDGKAhEyABKAIEIQQMAQsLIAEgEjkDICABIA0gESAEQQFGGzkDKCADQfAAaiQAC+oPAgh/B3wjAEFAaiIEJAAgACgCVCEJAkAgACgCUCIDRQ0AIAMoAhgiA0UNACAAKAIYDQAgACADEGY2AhgLIAAvASQhAyABKwMAIQ4gASsDECENIAArA0AhCyABKwMYIg8gASsDCCIQoSAAKwNIIhGhRAAAAAAAAAAAECIhDCANIA6hIAuhRAAAAAAAAAAAECIhCwJAIANBAXFFDQAgC0QAAAAAAAAAAGQEQAJAAkACQAJAIANBBnFBAmsOAwECAAILIAEgDiARoDkDEAwCCyABIA4gC6AiDjkDACABIA0gC6A5AxAMAQsgASANIAtEAAAAAAAA4D+iIguhOQMQIAEgDiALoCIOOQMAC0QAAAAAAAAAACELCyAMRAAAAAAAAAAAZEUNACABAnwCQCADQRhxIgNBCEcEQCADQRBHDQEgESAQoAwCCyABIBAgDKAiDDkDCCARIAygDAELIAEgECAMRAAAAAAAAOA/oiIMoDkDCCAPIAyhCyIPOQMYRAAAAAAAAAAAIQwLAn8gCyALIAAoAnQiA7giC6MiDSALoqEiC0QAAAAAAADgP0QAAAAAAADgvyALRAAAAAAAAAAAZhugIguZRAAAAAAAAOBBYwRAIAuqDAELQYCAgIB4CyEFIANBAWohBiAOIAAtACG4IhCgIAAsACC3Ig6gIQsgACgCbCEHQQAhAwNAIAMgBkYEQAJ/IAwgDCAAKAJwIgO4IgyjIg0gDKKhIgxEAAAAAAAA4D9EAAAAAAAA4L8gDEQAAAAAAAAAAGYboCIMmUQAAAAAAADgQWMEQCAMqgwBC0GAgICAeAshBSADQQFqIQYgDyAQoSAOoSELIAAoAmghB0EAIQMDQCADIAZGBEADQCAJKAIAIgMEQCADLwFWIQYgAy8BVCEHAn8gAkUEQCADLwFSIQUgAy8BUCEIQQAMAQsgACgCcCADLwFSIgUgBmpGIAdFQQN0IgggCEEEciAGGyIIQQJyIAggACgCdCADLwFQIgggB2pGG3ILIQogACgCaCAGQQN0aiIGIAVBA3RqKwMAIAAsACC3IQ8gACgCbCAHQQN0aiIFIAhBA3RqKwMAIQ0gBisDACEOIAUrAwAhDAJAIAMoAhgNACADKAJgKAIYIgVFDQAgAyAFEGY2AhgLIA+gIQsgDSAPoSEPIAIgCnEhBwJAIAMvASQiBkEBcUUNAAJAIA8gDKEgAysDQCIQoSINRAAAAAAAAAAAZEUNAAJAAkACQCAGQQZxQQJrDgMBAgACCyAMIBCgIQ8MAgsgDCANoCEMIA8gDaAhDwwBCyAPIA1EAAAAAAAA4D+iIg2hIQ8gDCANoCEMCyAOIAuhIAMrA0giEKEiDUQAAAAAAAAAAGRFDQACQCAGQRhxIgVBCEcEQCAFQRBHDQEgCyAQoCEODAILIAsgDaAhCyAOIA2gIQ4MAQsgDiANRAAAAAAAAOA/oiINoSEOIAsgDaAhCwsgCUEEaiEJIAMgDjkDSCADIA85A0AgAyALOQM4IAMgDDkDMCADIAc6ACMgBCAOIAMtACG4Ig2hIAMtACK4IhChIg45AzggBCAPIA2hIBChIg85AzAgBCALIA2gIBCgIgs5AyggBCAMIA2gIBCgIgw5AyAgAygCWCEFAkACQAJAIAMoAlxBAWsOAwACAQILIAQgBCkDODcDGCAEIAQpAzA3AxAgBCAEKQMoNwMIIAQgBCkDIDcDACAFIAQgBxCqCQwDCwJAIA8gDKEgBSsDEKEiDUQAAAAAAAAAAGRFDQACQAJAIAZBBnFBAmsOAwECAAILIAQgDyANoTkDMAwBCyAEIAwgDaA5AyALAkAgDiALoSAFKwMYoSIMRAAAAAAAAAAAZEUNACAGQRhxIgNBCEcEQCADQRBHDQEgBCAOIAyhOQM4DAELIAQgCyAMoDkDKAsgBSAEKQMgNwMAIAUgBCkDODcDGCAFIAQpAzA3AxAgBSAEKQMoNwMIDAILIAUrAyghEAJAIA8gDKEgBSsDIKEiDUQAAAAAAAAAAGRFDQACQAJAAkACQCAGQQZxQQFrDgYCAQIAAgQDCyAEIA8gDaE5AzAMAwsgBCAMIA2gOQMgDAILAAsgBCAPIA1EAAAAAAAA4D+iIg+hOQMwIAQgDCAPoDkDIAsCQCAOIAuhIBChIgxEAAAAAAAAAABkRQ0AAkAgBkEYcSIGQQhHBEAgBkEQRw0BIAQgDiAMoTkDOAwCCyAEIAsgDKA5AygMAQsgBCAOIAxEAAAAAAAA4D+iIg6hOQM4IAQgCyAOoDkDKAsgBSAEKQMgNwMQIAUgBCkDODcDKCAFIAQpAzA3AyAgBSAEKQMoNwMYQewAQfIAQe4AIAMvASRBgAZxIgVBgAJGGyAFQYAERhshBSADKAJYIgYoAgQhB0EAIQMDQCADIAdGDQIgBigCACADQQV0aiIILQAIRQRAIAggBToACAsgA0EBaiEDDAALAAsLIAAgAjoAIyAAIAEpAwA3AzAgACABKQMINwM4IABBQGsgASkDEDcDACAAIAEpAxg3A0ggBEFAayQABSAHIANBA3RqIggrAwAhDCAIIAs5AwAgCyANIAygIAMgBUggA0EATnG4oCAOoKEhCyADQQFqIQMMAQsLBSAHIANBA3RqIggrAwAhESAIIAs5AwAgCyANIBGgIAMgBUggA0EATnG4oCAOoKAhCyADQQFqIQMMAQsLC8QVAw9/BHwBfiMAQTBrIgckACABKAJ4IgQEQCADIARBiOYKELMJCyABIAI2AlAgByABKQJcNwMgIAcgASkCVDcDGBDNAyEPIAdBgIAENgIUIAdBgMAAQQEQGTYCEEEAIQRBACECA0AgBygCICIFIAJB//8DcSIITQRAIAEgBEEBakEEEBkiEDYCVANAIAxB//8DcSIIIAVJBEAgCLghFUEAIQIgB0EYaiAIEMYGIRJBACEOA0AgEhCnCSAOTQRAIAxBAWohDCAHKAIgIQUMAwsgECASIA4Q8wQiBjYCACAGIAE2AmAgBi8BJCIEQcAAcUUEQEECIQUgBiABLQAkQcAAcQR/IAEtACIFQQILOgAiCyAEQSBxRQRAAkAgASwAZCIEQQBODQBBASEEIAEtACRBIHFFDQAgAS0AISEECyAGIAQ6ACELAn8CQAJAAkAgBigCXEEBaw4DAAIBAgtBwAAhBSAAIAYoAlggBiADEKsJIQlByAAMAgsgB0EoaiADKAI0IAYoAlgiBCgCIBDuBgJ8IAcoAigiBSAHKAIsIglxQX9GBEAgByAEKAIgNgIAQb2BBSAHEDZBASEJRAAAAAAAAAAAIRNEAAAAAAAAAAAMAQsgAygCNCgCEEEBOgByIAm3IRNBACEJIAW3CyEUIARCADcDACAEIBM5AxggBCAUOQMQIARCADcDCEEQIQVBGAwBCyAAKAIQKAKQASAGKAJYIAMQqQlBACEJQSAhBUEoCyAGKAJYIgRqKwMAIAYtACEgBi0AImpBAXS4IhOgIRQgBCAFaisDACAToCETAkAgBi0AJEEBcQRAQdPsAyEEAkAgBi8BJiIFRQ0AIAYvASgiEUUNAAJAIBMgBbhkDQBEAAAAAAAAAAAhEyAUIBG4ZA0ARAAAAAAAAAAAIRQMAwtBvOsDIQREAAAAAAAAAAAhFEQAAAAAAAAAACETIAYoAlxBA0YNAgsgBEEAECtBASEJCwsgEEEEaiEQIAYgEyAGLwEmuCIWIBMgFmQbOQNAIAYgFCAGLwEouCITIBMgFGMbOQNIIAJB//8DcSEFIAYvAVBBAWshBANAIAQgBWohAgJAA0AgAiAFSARAIAUhBAwCCyAPIAK3IBUQyAZFBEAgAkEBayECDAELCyACQQFqIQUMAQsLA0ACQCAFIAYvAVBqIgIgBEoEQCAEtyETIAghAgNAIAIgBi8BUiAIak8NAiAPIBMgArgQwQIgAkEBaiECDAALAAsCQCAFQYCABEkEQCAGIAU7AVQgBiAMOwFWIAYvAVIgByAHKQMQIhc3AyggCGoiBCAXQiCIp08NASACQf//A3EiBSAKSyERIARBA3YgB0EoaiAXpyAXQoCAgICQBFQbai0AACAEQQdxdkEBcQRAIAYgBi0AZEECcjoAZAsgCSANciENIAUgCiARGyEKIAQgCyAEIAtLGyELIA5BAWohDgwEC0GJ1QFB6MYBQZMJQYLzABAAAAtBorsDQduBAUHCAEHfIxAAAAsgBEEBaiEEDAALAAsACwsgASAKNgJ0IAEgCzYCcCAHQRhqEK4JIAcoAhRBIU8EQCAHKAIQEBgLIA8Q3wIgAS8BJCIAQYABcUUEQCABQQI6ACALIABBIHFFBEAgAUEBOgAhCyABKAJsRQRAIAEgASgCdEEBakEIEBkiCDYCbCABKAJUIgQhAgNAIAIoAgAiAEUEQCAEIQUDQCAFKAIAIgIEQAJAIAIvAVAiAEEBRg0AIAEoAnQgAi8BVCIGIABqTwRAIAIrA0AhEyAIIAZBA3RqIQZEAAAAAAAAAAAhFEEAIQIDQCAAIAJGBEAgFCABLAAgIABBAWtstyIVoCATY0UNAyATIBWhIBShIAC4oyETQQAhAgNAIAAgAkYNBCAGIAJBA3RqIgkgEyAJKwMAoDkDACACQQFqIQIMAAsABSAUIAYgAkEDdGorAwCgIRQgAkEBaiECDAELAAsAC0GEyQNB6MYBQYAKQaozEAAACyAFQQRqIQUMAQUCQANAIAQoAgAiAARAIAEoAnQgAC8BUCIFIAAvAVQiAmpJDQIgCCACQQN0aiEGQQAhAkQAAAAAAAAAACEUA0AgAiAFRgRAIAAgACsDQCAUIAEsACAgBUEBa2y3oBAiOQNAIARBBGohBAwDBSAUIAYgAkEDdGorAwCgIRQgAkEBaiECDAELAAsACwsgASgCaEUEQCABIAEoAnBBAWpBCBAZIgg2AmggASgCVCIEIQIDQCACKAIAIgBFBEAgBCEFA0AgBSgCACICBEACQCACLwFSIgBBAUYNACABKAJwIAIvAVYiBiAAak8EQCACKwNIIRMgCCAGQQN0aiEGRAAAAAAAAAAAIRRBACECA0AgACACRgRAIBQgASwAICAAQQFrbLciFaAgE2NFDQMgEyAVoSAUoSAAuKMhE0EAIQIDQCAAIAJGDQQgBiACQQN0aiIJIBMgCSsDAKA5AwAgAkEBaiECDAALAAUgFCAGIAJBA3RqKwMAoCEUIAJBAWohAgwBCwALAAtBzscDQejGAUG+CkHKLRAAAAsgBUEEaiEFDAEFAkADQCAEKAIAIgAEQCABKAJwIAAvAVIiBSAALwFWIgJqSQ0CIAggAkEDdGohBkEAIQJEAAAAAAAAAAAhFANAIAIgBUYEQCAAIAArA0ggFCABLAAgIAVBAWtst6AQIjkDSCAEQQRqIQQMAwUgFCAGIAJBA3RqKwMAoCEUIAJBAWohAgwBCwALAAsLIAEoAnQiALhEAAAAAAAA8D+gIAEsACC3IhOiIAEtACFBAXS4IhWgIRQgASgCcCIEuEQAAAAAAADwP6AhFkEAIQIDQCAAIAJGBEAgFiAToiAVoCETQQAhAgNAIAIgBEYEQAJAIAEtACRBAXFFDQBBhe0DIQICQCABLwEmIgBFDQAgAS8BKCIERQ0AIBQgALhkRAAAAAAAAAAAIRRB3esDIQIEQEQAAAAAAAAAACETDAELIBMgBLhkRAAAAAAAAAAAIRNFDQELIAJBABArQQEhDQsgASAUIAEvASa4ECI5A0AgASATIAEvASi4ECI5A0ggASgCeARAIANBiOYKELAJCyAHQTBqJAAgDQ8FIBMgCCACQQN0aisDAKAhEyACQQFqIQIMAQsACwAFIBQgASgCbCACQQN0aisDAKAhFCACQQFqIQIMAQsACwALQfPGA0HoxgFB0gpByi0QAAALAAsACwJAIAAvAVJBAU0EQCAALwFWIgUgASgCcE8NASAIIAVBA3RqIgUgBSsDACAAKwNIECI5AwALIAJBBGohAgwBCwtB9sADQejGAUGxCkHKLRAAAAtB2coDQejGAUGpCkHKLRAAAAtBp8gDQejGAUGXCkGqMxAAAAsACwALAkAgAC8BUEEBTQRAIAAvAVQiBSABKAJ0Tw0BIAggBUEDdGoiBSAFKwMAIAArA0AQIjkDAAsgAkEEaiECDAELC0GpwQNB6MYBQe8JQaozEAAAC0GSywNB6MYBQeIJQaozEAAACyAHQRhqIAgQxgYiBRCnCSEGAkAgBS0AEEEBRgRAIAhBAWoiBSAHKAIUIghPDQEgBUEDdiAHQRBqIAcoAhAgCEEhSRtqIgggCC0AAEEBIAVBB3F0cjoAAAsgBCAGaiEEIAJBAWohAgwBCwtB8LoDQduBAUHRAEGmIhAAAAszAQF/AkAgAEG9PBAmIgEEQCABLQAADQELIABB0jwQJiIBBEAgAS0AAA0BC0EAIQELIAELcwECfwJAIAAoAgQiAgRAIAIgARAuRQ0BCyAAKAJUIQMDQCADKAIAIgJFBEBBAA8LAkAgAigCBCIARQ0AIAAgARAuDQAgAg8LQQAhACADQQRqIQMgAigCXEEBRgRAIAIoAlggARCtCSEACyAARQ0ACwsgAAvnAQEFfwJAIAAEQCAAKAIIIQECQANAIAEgA00NASAAIAMQxgYiAkUNAyACKAIIIQRBACEBAkADQCABIARPDQEgAiABEPMEGiABIAIoAggiBEkgAUEBaiEBDQALQcK8A0H7hAFB7wBBqCoQAAALIAJCADcCBCACKAIAEBggAhAYIAMgACgCCCIBSSADQQFqIQMNAAtBwrwDQfuEAUH8AEHuKRAAAAsgAEIANwIEIAAoAgAQGCAAQgA3AgggAEIANwIADwtBidoBQfuEAUH8AEGjpgEQAAALQYnaAUH7hAFB7wBBraYBEAAAC5MBAQd/AkAgAEUNACAAKAIAIQQDQCAAKAIEIAFNBEAgBBAYIAAQGAwCCyAEIAFBBXRqIgYoAgAhBUEAIQIDQCAGKAIEIAJNBEAgBRAYIAFBAWohAQwCBSAFIAJBOGxqIgMoAgAQGAJAIAMoAggiB0UNACADKAIMIgNFDQAgByADEQEACyACQQFqIQIMAQsACwALAAsLQwIBfwF8IAEoAgAiAgRAIAAgAjYCEAsgASgCBCICBEAgACACNgIUCyABKwMQIgNEAAAAAAAAAABmBEAgACADOQMgCwvgCAIEfwR8IwBBoAFrIgMkACAAIAEoAhgiBEHw+gAgBBsQRQJAIAEtACoiBEEYcSIFBEAgA0EANgIsIANByLUBQeevASAEQRBxG0EAIAUbNgIoIAAgA0EoahDmAQwBCyAAIAAoAgAoAsgCEOYBCyAAIAEtACG4EIgCAkAgAS0AKkECcQRAIAEtACEhASADIAIpAwA3AzAgAyACKQMINwM4IAMgAikDGDcDWCADIAIpAxA3A1AgAysDMCEIIAMrA1AhCQJAIAFBAU0EQCADKwNYIQcgAysDOCEKDAELIAMgAbhEAAAAAAAA4D+iIgcgCKAiCDkDMCADIAcgAysDOKAiCjkDOCADIAkgB6EiCTkDUCADIAMrA1ggB6EiBzkDWAsgAyAHOQNoIAMgCDkDYCADIAo5A0ggAyAJOQNAIANBBDYCJCADQQQ2AiAgACADQTBqQQQgA0EgakEAEJsDDAELIAEvASRBgPgAcSIGBEAgAS0AISEBIAMgAikDCDcDSCADIAIpAwA3A0AgAyACKQMYNwNoIAMgAikDEDcDYCADKwNAIQggAysDYCEJAkAgAUEBTQRAIAMrA2ghByADKwNIIQoMAQsgAyABuEQAAAAAAADgP6IiByAIoCIIOQNAIAMgByADKwNIoCIKOQNIIAMgCSAHoSIJOQNgIAMgAysDaCAHoSIHOQNoCyADQeAAaiEFIANBQGshASADIAc5A3ggAyAIOQNwIAMgCjkDWCADIAk5A1AgA0HwAGohAiADQdAAaiEEAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAGQYAIa0EKdg4OAwIGAQ0FCQAHDAoECwgPCyAAIAFBAhA5DA4LIAAgBEECEDkMDQsgACAFQQIQOQwMCyADIAIpAwA3AzAgAyACKQMINwM4IAAgA0EwakECEDkMCwsgACABQQMQOQwKCyAAIARBAxA5DAkLIAMgASkDCDcDiAEgAyABKQMANwOAASAAIAVBAxA5DAgLIAMgAikDADcDMCADIAIpAwg3AzggACADQTBqQQMQOQwHCyAAIAFBBBA5DAYLIAMgASkDCDcDiAEgAyABKQMANwOAASAAIARBBBA5DAULIAMgASkDCDcDiAEgAyABKQMANwOAASADIAQpAwg3A5gBIAMgBCkDADcDkAEgACAFQQQQOQwECyADIAIpAwA3AzAgAyACKQMINwM4IAAgA0EwakEEEDkMAwsgACABQQIQOSAAIAVBAhA5DAILIAMgAikDADcDMCADIAIpAwg3AzggACADQTBqQQIQOSAAIARBAhA5DAELIAEtACEiAUECTwRAIAIgAbhEAAAAAAAA4D+iIgggAisDAKA5AwAgAiAIIAIrAwigOQMIIAIgAisDECAIoTkDECACIAIrAxggCKE5AxgLIAMgAikDGDcDGCADIAIpAxA3AxAgAyACKQMINwMIIAMgAikDADcDACAAIANBABCKAgsgA0GgAWokAAtnAQF/IwBBEGsiBSQAAn8gASAEIAVBCGoQkwQEQCAAIAQoAgAQXiAAIAQoAgQiAUHw+gAgARsgAiAFKwMIEJUDQQNBAiADLQAAQQFxGwwBCyAAIAEQXkEBCyAAQaMgEEUgBUEQaiQAC6wBAgF/AXwCQCAAKAIQIgNFDQAgASgCAARAIAIgAzYCACAAIAEoAgA2AhAMAQsgAkEANgIACwJAIAAoAhQiA0UNACABKAIEBEAgAiADNgIEIAAgASgCBDYCFAwBCyACQQA2AgQLIAArAyAiBEQAAAAAAAAAAGYEQCABKwMQRAAAAAAAAAAAZgRAIAIgBDkDECAAIAErAxA5AyAPCyACQoCAgICAgID4v383AxALC7AFAgx/B3wjAEGAAWsiAyQAIAEoAgQiDARAIAIrACAhFCACKAAUIQcgAigAECEKIAEtAAghDSABKAIAIQ4gAisDACEQIAErAxAhFSABKwMgIREgAisDCCESIAErAxghEyABKwMoIQ8gA0IANwMYIAMgEiAPIBOgRAAAAAAAAOA/oqAgDyAToUQAAAAAAADgP6KgOQMgIABBARCICSARIBWhRAAAAAAAAOA/oiISIBAgESAVoEQAAAAAAADgP6KgIhGgIRMgESASoSESA0AgBSAMRwRAAnwgEiAOIAVBBXRqIgQtAAgiAUHsAEYNABogAUHyAEYEQCATIAQrAxChDAELIBEgBCsDEEQAAAAAAADgv6KgCyEQIAMgAysDICAEKwMYoTkDICAEKAIAIQFBACEIA0AgBCgCBCAITQRAIAVBAWohBQwDBSADAn8CQCABKAIEIgZFBEAgAyAHNgIsIAMgCjYCKCADIBQ5AzggAygCQCEJIAchCwwBCyADIAYrAxAiDyAUIA9EAAAAAAAAAABkGzkDOCADIAYoAgAiAiAKIAIbNgIoIAMgBigCBCICIAcgAhsiCzYCLCADKAJAIQkgBigCGEH/AHEiAkUNACAJQYB/cSACcgwBCyAJQYB/cQs2AkAgACALEEUgAyABKAIANgJIIAMgA0EoajYCTCADIAErAxA5A1ggAyANBHwgASsDGAVEAAAAAAAA8D8LOQNgIAMgASgCBCgCCDYCMCADIAEoAgg2AlAgAyABKwMgOQNoIAQrAxghDyADIAMpAyA3AxAgA0HsADoAeCADIA85A3AgAyAQOQMYIAMgAykDGDcDCCAAIANBCGogA0HIAGoQtAYgCEEBaiEIIBAgASsDIKAhECABQThqIQEMAQsACwALCyAAEIcJCyADQYABaiQAC5kWAgp/CHwjAEHABWsiAyQAIAMgASkDSDcD4AMgAyABQUBrKQMANwPYAyADIAEpAzg3A9ADIAMgASkDMDcDyANBASEKAkAgASgCAA0AIAEoAggNACABKAIMQQBHIQoLIAIrAwAhDSACKwMIIQ4gASgCVCEGIAEoAngiBARAIAIgBEHg5QoQswkLIAMgDSADKwPIA6A5A8gDIAMgDSADKwPYA6A5A9gDIAMgDiADKwPQA6A5A9ADIAMgDiADKwPgA6A5A+ADQQEhCwJAIApFDQAgAC0AmAFBBHENACADIAMpA+ADNwPQAiADIAMpA9gDNwPIAiADIAMpA9ADNwPAAiADIAMpA8gDNwO4AiAAIAIgASADQbgCaiADQaQDahDyBEUhCwsCQAJAAkAgAS0AKkEEcQ0AIAEoAhQiBARAIANCADcDgAUgASgCHCEIIAMgAS0AKjoAtwIgACAEIAggA0G3AmogA0GABWoQsgkhBAJAIAEtACpBAnEEQCABLQAhIQggAyADKQPgAzcDiAMgAyADKQPIAzcD4AIgAyADKQPYAzcDgAMgAyADKQPQAzcD6AIgAysD4AIhDiADKwOAAyENAkAgCEEBTQRAIAMrA4gDIQ8gAysD6AIhEAwBCyADIAi4RAAAAAAAAOA/oiIPIA6gIg45A+ACIAMgDyADKwPoAqAiEDkD6AIgAyANIA+hIg05A4ADIAMgAysDiAMgD6EiDzkDiAMLIAMgDzkDmAMgAyAOOQOQAyADIBA5A/gCIAMgDTkD8AIgA0EENgLcAiADQQQ2ArACIAAgA0HgAmpBBCADQbACaiAEEJsDDAELIAMgAykD4AM3A6gCIAMgAykD2AM3A6ACIAMgAykD0AM3A5gCIAMgAykDyAM3A5ACIAAgA0GQAmogBBCKAgsgAygCgAUQGCADKAKEBRAYCwNAIAYoAgAiBARAIAMgBCkDSDcD0AQgAyAEQUBrKQMANwPIBCADIAQpAzg3A8AEIAMgBCkDMDcDuARBASEJAn9BASAEKAIADQAaQQEgBCgCCA0AGiAEKAIMQQBHCyEIIAIrAwghDSADIAIrAwAiDiADKwO4BKA5A7gEIAMgDiADKwPIBKA5A8gEIAMgDSADKwPABKA5A8AEIAMgDSADKwPQBKA5A9AEAkAgCEUNACAALQCYAUEEcQ0AIAMgAykD0AQ3A4gCIAMgAykDyAQ3A4ACIAMgAykDwAQ3A/gBIAMgAykDuAQ3A/ABIAAgAiAEIANB8AFqIANB3ARqEPIERSEJCwJAIAQtACpBBHENACAEKAIUIgUEQCAEKAIcIQcgAyAELQAqOgDvASAAIAUgByADQe8BaiADQYAFahCyCSEFAkAgBC0AKkECcQRAIAQtACEhByADIAMpA7gENwPwAyADIAMpA8AENwP4AyADIAMpA9AENwOYBCADIAMpA8gENwOQBCADKwPwAyEOIAMrA5AEIQ0CQCAHQQFNBEAgAysDmAQhDyADKwP4AyEQDAELIAMgB7hEAAAAAAAA4D+iIg8gDqAiDjkD8AMgAyAPIAMrA/gDoCIQOQP4AyADIA0gD6EiDTkDkAQgAyADKwOYBCAPoSIPOQOYBAsgAyAPOQOoBCADIA45A6AEIAMgEDkDiAQgAyANOQOABCADQQQ2AuwDIANBBDYC6AEgACADQfADakEEIANB6AFqIAUQmwMMAQsgAyADKQPQBDcD4AEgAyADKQPIBDcD2AEgAyADKQPABDcD0AEgAyADKQO4BDcDyAEgACADQcgBaiAFEIoCCyADKAKABRAYCyAELQAhBEAgAyADKQPQBDcDwAEgAyADKQPIBDcDuAEgAyADKQPABDcDsAEgAyADKQO4BDcDqAEgACAEIANBqAFqELEJCyAEKAJYIQUCQAJAAkAgBCgCXEEBaw4DAAIBAgsgACAFIAIQtQkMAgsgBSsDECEOIAUrAxghDyACKwMAIQ0gBSsDACEQIAMgBSsDCCACKwMIIhKgIhE5A6gFIAMgECANoCIQOQOgBSADIA8gEqAiDzkDiAUgAyAOIA2gIg05A4AFIAMgETkDuAUgAyANOQOwBSADIA85A5gFIAMgEDkDkAUgBSgCJCIHRQRAIAIoAjghBwsgBSgCICIFRQ0FIAUtAABFDQYgACAFIANBgAVqQQRBASAHQem8ARCFCQwBCyAAIAUgAhC0CQsgCUUEQCAAIANB3ARqEPEECwJAIAhFDQAgAC0AmAFBBHFFDQAgAyADKQPQBDcDoAEgAyADKQPIBDcDmAEgAyADKQPABDcDkAEgAyADKQO4BDcDiAEgACACIAQgA0GIAWogA0HcBGoiBxDyBEUNACAAIAcQ8QQLIAZBBGohBgwBCwsgASgCVCEIIABEAAAAAAAA8D8QiAIDQCAIKAIAIgQEQCAIQQRqIQggBC0AZCIGQQJxIAZBAXFyRQ0BIAgoAgAhCSACKwMAIRAgAisDCCENIAAgASgCGCIGQfD6ACAGGyIGEF4gACAGEEUgDSAEKwM4oCEPIBAgBCsDQKAhEiAEKwMwIRMCQCAELQBkIgZBAXFFDQAgBCgCYCIFKAJ0IAQvAVAgBC8BVGpNDQAgDSAEKwNIoCEUAkAgBC8BViIGRQRAIA8gBSwAICIGQQJtwCIHtyIOoSENIAcgBS0AIWq3IREMAQsgBSgCcCAELwFSIAZqRgRAIA8gBSwAICIGQQJtwCIHtyIOoSAHIAUtACFqtyIRoSENDAELIA8gBSwAICIGQQJtwLciDqEhDUQAAAAAAAAAACERCyADIA05A4gFIAMgEiAOoCIOOQOQBSADIA0gFCARoCAPoSAGt6CgOQOYBSADIAMpA4gFNwNwIAMgAykDkAU3A3ggAyADKQOYBTcDgAEgAyAOOQOABSADIAMpA4AFNwNoIAAgA0HoAGpBARCKAiAELQBkIQYLIAZBAnFFDQEgBCgCYCIGKAJwIAQvAVYiByAELwFSak0NASAQIBOgIRECQCAELwFUIgVFBEAgESAGLAAgIgVBAm3AIgwgBi0AIWq3Ig2hIAy3Ig6hIRMgBigCdCAELwFQRgRAIA0gDaAhDQwCCyAJRQ0BIAkvAVYgB0YNASAQIAYrA0CgIBIgDqChIA2gIQ0MAQsgBigCdCAELwFQIAVqRgRAIBEgBiwAICIFQQJtwCIEtyIOoSETIAQgBi0AIWq3IQ0MAQsgESAGLAAgIgVBAm3AtyIOoSETRAAAAAAAAAAAIQ0gCUUNACAJLwFWIAdGDQAgECAGKwNAoCASIA6goUQAAAAAAAAAAKAhDQsgAyAPIA6hIg45A4gFIAMgDkQAAAAAAAAAAKA5A5gFIAMgEzkDgAUgAyATIBIgDaAgEaEgBbegoDkDkAUgAyADKQOIBTcDUCADIAMpA5gFNwNgIAMgAykDkAU3A1ggAyADKQOABTcDSCAAIANByABqQQEQigIMAQsLIAEtACFFDQAgA0FAayADKQPgAzcDACADIAMpA9gDNwM4IAMgAykD0AM3AzAgAyADKQPIAzcDKCAAIAEgA0EoahCxCQsgC0UEQCAAIANBpANqEPEECwJAIApFDQAgAC0AmAFBBHFFDQAgAyADKQPgAzcDICADIAMpA9gDNwMYIAMgAykD0AM3AxAgAyADKQPIAzcDCCAAIAIgASADQQhqIANBpANqIgcQ8gRFDQAgACAHEPEECyABKAJ4BEAgAkHg5QoQsAkLIANBwAVqJAAPC0GiugFB6MYBQeoEQcmJARAAAAtB1M8BQejGAUHrBEHJiQEQAAALeQICfwJ8IwBBEGsiASQAIAAoAgRBAWsiAkEDTwRAIAFB4wU2AgQgAUHoxgE2AgBBuPwIKAIAQffIBCABEB4aEGwACyAAKAIAIgAgAkECdCICQeTJCGooAgBqKwMAIQMgACACQdjJCGooAgBqKwMAIAFBEGokACADoQtIAQJ/IAAQnQFBEBAZIQIgABCzASEAIAIhAQNAIAAEQCABIAApAwg3AwAgASAAKQMQNwMIIAFBEGohASAAKAIAIQAMAQsLIAILNAEBf0EYEFQiAiABKQMINwMQIAIgASkDADcDCCAAIAJBASAAKAIAEQQAIAJHBEAgAhAYCwsTACAAIAFB4CRB/ABB+4QBEKUECxUAIAAgAUECQe4pQfwAQfuEARCiAgscACAAKAIIIAFNBEBBwrwDQaUSQSZBySQQAAALCxIAIAAgAUGwrAFBJkGlEhCkBAsTACAAIAFBmypBLEGlEkE4EMgKCxMAIAAgAUGaKkE1QaUSQQUQ0QoLXQEBfyAABEADQCABIAAoAghPRQRAIAAgARC7CSAAIAEQyQYaIAFBAWohAQwBCwsgAEIANwIEIAAoAgAQGCAAQgA3AgggAEIANwIADwtBidoBQaUSQSZBiqYBEAAAC9wCAQZ/IABB1ABqIQQCQANAAkAgACgCXCIBIAJNBEADQCABIAVLBEAgBCAFELkJIgJFDQMgAigCCCEDQQAhAQJAA0AgASADTw0BIAIgARDzBBogASACKAIIIgNJIAFBAWohAQ0AC0HCvANB+4QBQe8AQagqEAAACyACQgA3AgQgAigCABAYIAIQGCAEIAUQugkaIAVBAWohBSAAKAJcIQEMAQsLIABCADcCWCAAKAJUEBggBEIANwIIIARCADcCACAAEPAEIAAQGA8LQQAhASAEIAIQuQkiBkUNAgNAIAYoAgggAU0EQCACQQFqIQIMAwUCQAJAAkAgBiABEPMEIgMoAlxBAWsOAgABAgsgAygCWBDACQwBCyADKAJYEK8JCyADEPAEIAMQGCABQQFqIQEMAQsACwALC0GJ2gFB+4QBQe8AQa2mARAAAAtBidoBQfuEAUHvAEHhjwEQAAALRQEBfwJAIAAEQCAAKAIIIgFFDQEgACABQQFrELoJDwtBidoBQfuEAUH8AEGH+wAQAAALQc6mA0H7hAFB/ABBh/sAEAAACyEBAX8DQCAALQAAIQEgAEEBaiEAIAFBIEYNAAsgAUEARwtDAAJAIAAQJwRAIAAQJEEPRg0BCyAAEMUJCwJAIAAQJwRAIABBADoADwwBCyAAQQA2AgQLIAAQJwR/IAAFIAAoAgALC+ADAQl/IwBBIGsiBSQAIABBCGohAwJAAkACQCAAKAIQIgkEQCAJQTgQGSEGA0AgAiAAKAIQTw0CIAYgAkE4bGogAyACEL0JIgRBOBAfGiAEQQBBOBAzGiACQQFqIQIMAAsAC0E4EFQhBkHmigUQqgEiAkUNASAGIAI2AgAgBiAAQSxqEPUEKAIANgIEQQEhCQsgAxDLBgJAIAAoAiAiCCAAKAIkIgJHBEAgACgCGCEDIAAoAhwhBAwBCyAIQQF0QQEgCBsiAkH///8/SwRAQcQAIQIMAwsgACgCGCACQQV0EDoiA0UEQEEwIQIMAwsgAyAAKAIkIgdBBXRqQQAgAiAHa0EFdBAzGiAHIAAoAiAiCCAAKAIcIgRqSQRAIARBBXQhCiADIAIgByAEayIHayIEQQV0aiADIApqIAdBBXQQUxogACAENgIcCyAAIAI2AiQgACADNgIYCyADIAQgCGogAnBBBXRqIgJCADcACSACIAE6AAggAiAJNgIEIAIgBjYCACACQgA3ABEgAkIANwAYIAAgACgCIEEBajYCICAFQSBqJAAPCyAFQQE2AgBBuPwIKAIAQdPzAyAFEB4aECgACyAFIAIQeDYCEEG4/AgoAgBB2ooEIAVBEGoQHhoQKAAL0QIBBX8jAEEQayIEJAACQAJAIAAQJCAAEEZPBEAgABBGIgNBAWoiASADQQF0QYAIIAMbIgIgASACSxshASAAECQhBQJAIAAtAA9B/wFGBEAgA0F/Rg0DIAAoAgAhAiABRQRAIAIQGEEAIQIMAgsgAiABEDoiAkUNBCABIANNDQEgAiADakEAIAEgA2sQMxoMAQsgAUEBEBkiAiAAIAUQHxogACAFNgIECyAAQf8BOgAPIAAgATYCCCAAIAI2AgALIAAQJCEBAkAgABAnBEAgACABakEAOgAAIAAgAC0AD0EBajoADyAAECRBEEkNAUG8wANByYQBQZ0CQZS6ARAAAAsgACgCACABakEAOgAAIAAgACgCBEEBajYCBAsgBEEQaiQADwtB38kDQZiFAUHNAEHvugEQAAALIAQgATYCAEG4/AgoAgBB0/MDIAQQHhoQKAALqwEBBn9BMBBUIQMgACgCEARAIABBABDECQsgAEEYaiEFIAMgACgCICIBNgIEIAMgAUEgEBkiBjYCAAN/IAAoAiAgAk0EfyAFEMoGIAMFIAYgAkEFdGoiBCAFIAIQvgkiASkDADcDACAEIAEpAxg3AxggBCABKQMQNwMQIAQgASkDCDcDCCABQgA3AwAgAUIANwMIIAFCADcDECABQgA3AxggAkEBaiECDAELCwsYAQF/QQgQVCICIAA2AgAgAiABNgIEIAILHwEBfyACKQMAQgBZIAFHBH8gACACQQhqEEkFQQELRQtJAQJ/IwBBEGsiAiQAIAEQqgEiA0UEQCACIAEQPEEBajYCAEG4/AgoAgBB0/MDIAIQHhoQKAALIAAgAxD0ASADEBggAkEQaiQAC0UAAkAgABAnBEAgABAkQQ9GDQELIABBABDcAQsCQCAAECcEQCAAQQA6AA8MAQsgAEEANgIECyAAECcEfyAABSAAKAIACws8AQF/IwBBEGsiAiQAIABBATYCJCAAQYwCNgIIIAIgABDMBjYCBCACIAE2AgBBvoYFIAIQNiACQRBqJAALqQMBA38jAEGgAWsiAiQAIAJCADcDmAEgAkIANwOQASACIAAoAgAiAygCHCIEBH8gAiAENgKAASACQZABakHB1QMgAkGAAWoQgQEgACgCAAUgAwsoAhQ2AnQgAiABNgJwIAJBkAFqIgNBvrkBIAJB8ABqEIEBAkAgACgCUCIBLQAABEAgAiABNgJgIANBrrUDIAJB4ABqEIEBDAELAkACQAJAIAAoAixBAWtBAm1BAWsOAwIAAQMLIAJBgIABNgIgIAJBkAFqIgFBi7EDIAJBIGoQgQEgACgCAEE0ahAkRQ0CIAIgACgCAEE0ahDkAjYCECABQfc3IAJBEGoQgQEMAgsgAkGAgAE2AkAgAkGQAWoiAUHHsAMgAkFAaxCBASAAKAIAQTRqECRFDQEgAiAAKAIAQTRqEOQCNgIwIAFB3zcgAkEwahCBAQwBCyACQYCAATYCUCACQZABakHJsQMgAkHQAGoQgQELIAJBkAFqIgFBChDOAyACIAEQ5AI2AgBBjDogAhA2IAItAJ8BQf8BRgRAIAIoApABEBgLIABBATYCLCACQaABaiQACz0CAX8BfiMAQRBrIgEkACAAKQI0IQIgASAAKQIsQiCJNwMIIAEgAkIgiTcDAEHG8QQgARCCASABQRBqJAALOwEBf0EBIQQCQCAAQQEgACgCnAEgASACIAMgAC0A/ANFQQEQ0AYiAUUEQCAAENsJRQ0BCyABIQQLIAQLvQUBBn8jAEEQayIHJAAgByACKAIAIgg2AgwCfyAAKAKcASABRgRAIAAgCDYCqAIgAEGoAmohCSAAQawCagwBCyAAKAK0AiIJQQRqCyEMIAkgCDYCACACQQA2AgACfwNAIAcgBygCDCIINgIIIAAgASAIIAMgB0EIaiABKAIIEQYAIgogBygCDCAHKAIIQZ0hIAYQnAJFBEAgABDiAkErDAILIAwgBygCCCIINgIAAkACQAJAAkACQAJAAkACQAJAAkACQCAKQQRqDgwEBQMECgUFBQUFAgEACyAKQShHDQQCQCAAKAJYIgMEQCAAKAIEIAMRAQAMAQsgACgCXEUNACAAIAEgBygCDCAIEIgBCyACIAcoAggiATYCACAEIAE2AgBBI0EAIAAoAvgDQQJGGwwLCyAAKAJIIgoEQCAHQQo6AAcgACgCBCAHQQdqQQEgChEFAAwGCyAAKAJcRQ0FIAAgASAHKAIMIAgQiAEMBQsgACgCSCIKBEAgAS0ARA0EA0AgByAAKAI4NgIAIAEgB0EMaiAIIAcgACgCPCABKAI4EQgAIAwgBygCCDYCACAAKAIEIAAoAjgiCyAHKAIAIAtrIAoRBQBBAU0NBiAJIAcoAgw2AgAgBygCCCEIDAALAAsgACgCXEUNBCAAIAEgBygCDCAIEIgBDAQLQQYgBUUNCBogBCAHKAIMNgIAQQAMCAtBFCAFRQ0HGiAEIAcoAgw2AgBBAAwHCyAJIAg2AgAMAgsgACgCBCAHKAIMIgsgCCALayAKEQUACwJAAkACQCAAKAL4A0EBaw4DAgEABAsgCSAHKAIIIgA2AgAgBCAANgIAQQAMBgsgCSAHKAIINgIAQSMMBQsgAC0AwARFDQELQRcMAwsgByAHKAIIIgg2AgwgCSAINgIADAELCyAJIAg2AgBBBAsgB0EQaiQAC0UBAX8gAARAAkAgASgCFCICRQ0AIAAgAiABKAIMQQJ0aiIBKAIARw0AIAFBADYCAAsgACgCFARAIAAoAgQQGAsgABAYCwtRAQF/A0AgAQRAIAAoAnQiAgRAIAAoAgQgASgCACgCACACEQMACyABKAIEIAEgACgCkAM2AgQgACABNgKQAyABKAIAIAEoAgg2AgQhAQwBCwsLvxUCF38CfiMAQdAAayIMJAACQAJAIAAgACgC/AIiFEEUaiIGIAMoAgBBABCaASINDQBBASEJIBRB0ABqIAMoAgAQ6wkiB0UNASAAIAYgB0EYEJoBIg1FDQEgAC0A9AFFDQAgACANENoJRQ0BCyANKAIMIQZBASEJIAEgAiAAKAKUAyAAKAKgAyABKAIkEQYAIgcgBkH/////B3NKDQACQAJAIAYgB2oiCiAAKAKUAyIITA0AIAdB7////wcgBmtKIAZB7////wdKcg0CIAAgCkEQaiIKNgKUAyAKQYCAgIABTw0BIAAoAqADIApBBHQgACgCEBEAACIKRQ0BIAAgCjYCoAMgByAITA0AIAEgAiAHIAogASgCJBEGABoLQQAhCiAHQQAgB0EAShshECAGQQAgBkEAShshESAAQbgDaiETIAAoAqADIQ9BACEIQQAhBwNAIAggEEcEQEEBIQkgACABIAhBBHQiBiAAKAKgA2ooAgAiAiABIAIgASgCHBEAACACahDkCSICRQ0DIAIoAgBBAWsiDi0AAARAQQghCSABIAAoApwBRw0EIAAgBiAAKAKgA2ooAgA2AqgCDAQLIA5BAToAACAPIAdBAnRqIAIoAgA2AgAgB0EBaiELAkAgACgCoAMgBmoiDi0ADEUEQEEAIQYCQCACLQAIRQ0AA0AgBiARRg0BIAZBDGwhEiAGQQFqIQYgAiASIA0oAhRqIhIoAgBHDQALIBItAAQhCQsgACABIAkgDigCBCAOKAIIIBMgBRDhCSIJDQUgDyALQQJ0aiAAKALIAzYCAAwBCyAPIAtBAnRqIBMgASAOKAIEIA4oAggQhwEiBjYCACAGRQ0ECyAAIAAoAsQDNgLIAwJAAkAgAigCBCIGBEAgAi0ACQ0BIAIoAgBBAWtBAjoAACAKQQFqIQoLIAdBAmohBwwBCyAAIAYgAiAPIAtBAnRqKAIAIAQQ3AYiCQ0ECyAIQQFqIQgMAQsLIAAgBzYCmAMCQAJAIA0oAggiAUUEQEF/IQYMAQtBfyEGIAEoAgAiAUEBay0AAEUNAEEAIQYDQCAGIAdODQIgDyAGQQJ0aigCACABRg0BIAZBAmohBgwACwALIAAgBjYCnAMLQQAhBgNAIAYgEUcEQAJAIA0oAhQgBkEMbGoiASgCACICKAIAQQFrIgUtAAANACABKAIIIglFDQACQCACKAIEIggEQCACLQAJRQRAIAVBAjoAACAKQQFqIQoMAgsgACAIIAIgCSAEENwGIglFDQIMBgsgBUEBOgAACyAPIAdBAnRqIgIgASgCACgCADYCACACIAEoAgg2AgQgB0ECaiEHCyAGQQFqIQYMAQsLIA8gB0ECdGpBADYCAEEAIQgCQAJAAkACQCAKRQ0AIAAtAKwDIgFBH0sNAwJAAkACQCAKQQF0IAF1BEAgASEGA0AgBkH/AXEhBSAGQQFqIgIhBiAKIAV1DQALIAAgAjoArAMCfyACQf8BcSIFQQJNBEBBAyEGIABBAzoArANBCAwBCyAFQSBPDQdBASEJIAJB/wFxIgZBHU8NBEEBIAZ0CyEFIAAoAqQDQQwgBnQgACgCEBEAACICRQ0GIAAgAjYCpAMMAQtBASABdCEFIAAoAqgDIgINAQtBfyECIAUhBgNAIAZFDQEgACgCpAMgBkEBayIGQQxsakF/NgIADAALAAsgACACQQFrIhI2AqgDQQAgBWshFSAUQShqIRYgBUEBayIXQQJ2IRggDEE4aiEZA0AgByAITA0CAkAgDyAIQQJ0aiIaKAIAIgFBAWsiAi0AAEECRgRAIAAgDEEIahDVCSAMQgA3A0ggDCAZNgJAIAwgDCkDCCIdQvXKzYPXrNu38wCFNwMYIAwgDCkDECIeQvPK0cunjNmy9ACFNwMwIAwgHULh5JXz1uzZvOwAhTcDKCAMIB5C7d6R85bM3LfkAIU3AyAgAkEAOgAAQQEhCSAAIBYgAUEAEJoBIgJFDQkgAigCBCICRQ0JIAIoAgQiDkUNBUEAIQYDQAJAIA4oAhAhAiAGIA4oAhQiC04NACACIAZqLQAAIQsgACgCxAMiAiAAKALAA0YEQCATEGFFDQwgACgCxAMhAgsgACACQQFqNgLEAyACIAs6AAAgBkEBaiEGDAELCyAMQRhqIAIgCxDPBgNAIAEtAAAgAUEBaiIGIQFBOkcNAAsgBiAGENQJEM8GA0AgACgCxAMiAiAAKALAA0YEQCATEGFFDQsgACgCxAMhAgsgBi0AACELIAAgAkEBajYCxAMgAiALOgAAIAYtAAAgBkEBaiEGDQALENMJpyILIBVxIRsgCyAXcSEBIAAoAqQDIRxBACERA0AgEiAcIAFBDGwiEGoiAigCAEYEQAJAIAIoAgQgC0cNACACKAIIIQIgACgCyAMhBgNAAkAgBi0AACIQRQ0AIBAgAi0AAEcNACACQQFqIQIgBkEBaiEGDAELCyAQDQBBCCEJDAwLIBFB/wFxRQRAIBsgAC0ArANBAWt2IBhxQQFyIRELIAEgEUH/AXEiAmsgBUEAIAEgAkgbaiEBDAELCyAALQD1AQRAIAAoAsQDQQFrIAAtAPADOgAAIA4oAgAoAgAhBgNAIAAoAsQDIgIgACgCwANGBEAgExBhRQ0MIAAoAsQDIQILIAYtAAAhASAAIAJBAWo2AsQDIAIgAToAACAGLQAAIAZBAWohBg0ACwsgACgCyAMhASAAIAAoAsQDNgLIAyAaIAE2AgAgACgCpAMgEGogEjYCACAAKAKkAyAQaiALNgIEIAAoAqQDIBBqIAE2AgggCkEBayIKDQEgCEECaiEIDAQLIAJBADoAAAsgCEECaiEIDAALAAsgACABOgCsAwwFCwNAIAcgCEwEQANAAkAgBCgCACIBRQ0AIAEoAgwoAgBBAWtBADoAACABQQRqIQQMAQsLBSAPIAhBAnRqKAIAQQFrQQA6AAAgCEECaiEIDAELC0EAIQkgAC0A9AFFDQQCQCANKAIEIgEEQCABKAIEIgdFDQIgAygCACEGA0AgBi0AACAGQQFqIg0hBkE6Rw0ACwwBCyAUKAKcASIHRQ0FIAMoAgAhDQtBACEGQQAhAQJAIAAtAPUBRQ0AQQAhAiAHKAIAKAIAIgRFBEAMAQsDQCACIARqIAJBAWoiASECLQAADQALCyADIA02AgQgAyAHKAIUNgIQIAcoAgAoAgAhAiADIAE2AhQgAyACNgIIA0AgBiICQQFqIQYgAiANai0AAA0AC0EBIQkgBygCFCIIIAFB/////wdzSiACIAEgCGpB/////wdzT3INBAJAIAEgBmogCGoiBCAHKAIYTARAIAcoAhAhBAwBCyAEQef///8HSg0FIARBGGoiBSAAKAIMEQIAIgRFDQUgByAFNgIYIAQgBygCECAHKAIUEB8hBSAAQYQDaiEJA0ACQCAHKAIQIQggCSgCACIJRQ0AIAkoAgwgCEcNASAJIAU2AgwMAQsLIAggACgCFBEBACAHIAU2AhAgBygCFCEICyAEIAhqIA0gBhAfIQQgAQRAIAIgBGoiAiAALQDwAzoAACACQQFqIAcoAgAoAgAgARAfGgsgAyAHKAIQNgIAQQAhCQwEC0EbIQkMAwsgACABOgCsAwtBASEJDAELIAAgCDYClAMLIAxB0ABqJAAgCQvsAQIBfgF/IAApAzAgACgCKCAAQSBqayICrXxCOIYhAQJAAkACQAJAAkACQAJAAkAgAsBBAWsOBwYFBAMCAQAHCyAAMQAmQjCGIAGEIQELIAAxACVCKIYgAYQhAQsgADEAJEIghiABhCEBCyAAMQAjQhiGIAGEIQELIAAxACJCEIYgAYQhAQsgADEAIUIIhiABhCEBCyABIAAxACCEIQELIAAgACkDGCABhTcDGCAAQQIQzgYgACAAKQMAIAGFNwMAIAAgACkDEEL/AYU3AxAgAEEEEM4GIAApAxggACkDECAAKQMIIAApAwCFhYULIQEBfwNAIAAtAAAEQCABQQFqIQEgAEEBaiEADAELCyABCyUBAX8gAUIANwMAA0AgACICKAL0AyIADQALIAEgAjUCiAQ3AwgLeQECfwNAAkAgAC0AACICBEAgAkENRw0BIAAhAQNAAn8gAkENRgRAIAFBCjoAACAAQQJqIABBAWogAC0AAUEKRhsMAQsgASACOgAAIABBAWoLIQAgAUEBaiEBIAAtAAAiAg0ACyABQQA6AAALDwsgAEEBaiEADAALAAvUAQEGfyMAQTBrIgQkACAAKAL0A0UEQCAAKAK8BARAIAAoArAEIQYgACgCuAQhByAAKAK0BCEFIAEtACIhCCABKAIAIQkgASgCCCEBIAQgAzYCKCAEIAE2AiQgBCACNgIgIAQgCTYCHCAEQeaKBTYCFCAEQZG2A0GPtgMgCBs2AhggBCAFQQF0QQJrNgIQIAQgBzYCDCAEIAU2AgggBCAGNgIEIAQgADYCAEG4/AgoAgBBov0EIAQQHhoLIARBMGokAA8LQYo+QanGAUGuwABB9y0QAAALYQEBfwJAIABFDQAgAEEANgIQIAAoAgRBADoAACAAKAIEQQA6AAEgAEEANgIsIABBATYCHCAAIAAoAgQ2AgggASgCFCICRQ0AIAAgAiABKAIMQQJ0aigCAEcNACABEPsECwvBBwEIfyMAQRBrIgkkACAAQdADaiELIAlBCGohDCAFIAAoAvwCIgpB0ABqRyENAkACQANAIAkgAzYCDCAAIAEgAyAEIAlBDGogASgCEBEGACIIIAMgCSgCDEHJMCAGEJwCRQRAIAAQ4gJBKyEFDAMLAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAIQQRqDg8KBAcBAAcHBwcHAwsHBQIGC0EEIQUgASAAKAKcAUcNDyAAIAkoAgw2AqgCDA8LQQQhBSABIAAoApwBRw0ODA0LIAEgAyABKAIoEQAAIghBAEgEQEEOIQUgASAAKAKcAUYNDQwOCyACIAhBIEdyRQRAIAUoAgwiAyAFKAIQRg0KIANBAWstAABBIEYNCgtBACEDIAggCUEIahCcBCIIQQAgCEEAShshDgNAIAMgDkYNCiAFKAIMIgggBSgCCEYEQCAFEGFFDQwgBSgCDCEICyAJQQhqIANqLQAAIQ8gBSAIQQFqNgIMIAggDzoAACADQQFqIQMMAAsACyAFIAEgAyAJKAIMEPkERQ0JDAgLIAkgAyABKAJAajYCDAwGCyAJIAEgAyABKAJAIghqIAkoAgwgCGsgASgCLBEEACIIOgAHIAhB/wFxBEAgAEEJIAlBB2ogDEGRMUEBEJwCGiAFKAIMIgMgBSgCCEYEQCAFEGFFDQkgBSgCDCEDCyAJLQAHIQggBSADQQFqNgIMIAMgCDoAAAwHCyALIAEgAyABKAJAIghqIAkoAgwgCGsQhwEiCEUNByAAIAogCEEAEJoBIQggACAAKALgAzYC3AMCQAJAIA1FBEAgACgCmAJFDQIgCi0AggFFDQEgACgCtAJFDQUMAgsgCi0AgQFFDQQgCi0AggFFDQEMBAsgCi0AgQFFDQMLIAhFDQYMAwsgCEEnRg0EC0EXIQUgASAAKAKcAUYNBwwICyAIRQRAQQshBQwICyAILQAjDQBBGCEFDAcLIAgtACAEQEEMIQUgASAAKAKcAUYNBgwHCyAIKAIcBEBBDyEFIAEgACgCnAFGDQYMBwsgCCgCBEUEQEEQIQUgASAAKAKcAUYNBgwHC0EBIQUgACAIQQBBARD4BA0GCyAHIAkoAgw2AgBBACEFDAULIAUoAgwhAyACRQRAIAMgBSgCEEYNASADQQFrLQAAQSBGDQELIAUoAgggA0YEQCAFEGFFDQIgBSgCDCEDCyAFIANBAWo2AgwgA0EgOgAACyAJKAIMIQMMAQsLQQEhBQwBCyAAIAM2AqgCCyAJQRBqJAAgBQuQAgEGfyAAKAL8AiECQQEhBCABKAIAIgUhBgNAAkACQAJAIAYtAAAiA0UNACADQTpHDQEgAkHQAGohBANAAkAgAigCWCEHIAIoAlwhAyAFIAZGDQAgAyAHRgRAIAQQYUUNBSACKAJcIQMLIAUtAAAhByACIANBAWo2AlwgAyAHOgAAIAVBAWohBQwBCwsgAyAHRgRAIAQQYUUNAyACKAJcIQMLIAIgA0EBajYCXEEAIQQgA0EAOgAAIAAgAkE8aiACKAJgQQgQmgEiAEUNAAJAIAIoAmAiAyAAKAIARgRAIAIgAigCXDYCYAwBCyACIAM2AlwLIAEgADYCBEEBIQQLIAQPCyAGQQFqIQYMAQsLQQAL5wEBCH8gAEGEA2ohAQNAAkAgASgCACIBRQRAQQEhAwwBC0EBIQMgASgCBCIEIAEoAiQiBiABKAIYIgVBAWoiB2oiCEYNAEEAIQMgASgCCCICQf7///8HIAVrSw0AIAIgB2oiBSABKAIoIAZrSgRAIAYgBSAAKAIQEQAAIgJFDQEgASgCJCIDIAEoAgxGBEAgASACNgIMCyABKAIQIgQEQCABIAIgBCADa2o2AhALIAEgAjYCJCABIAIgBWo2AiggAiAHaiEIIAEoAgQhBCABKAIIIQILIAEgCCAEIAIQHzYCBAwBCwsgAwuMAQMBfwF9An4jAEEwayICJAAgAEEAEPcEIgAoAvQDRQRAIAAoAqAEBEAgABDdCSEDIAApA5AEIQQgACkDmAQhBSACIAE2AiAgAiADuzkDGCACIAU3AxAgAiAENwMIIAIgADYCAEG4/AgoAgBBmjggAhAyCyACQTBqJAAPC0GKPkGpxgFBrD9B4S0QAAALUAICfgF9IAApA5gEIQECfSAAKQOQBCICUEUEQCABIAJ8tSACtZUMAQsgAUIWfLVDAACwQZULIAAoAvQDBEBBij5BqcYBQaU/QYrpABAAAAsLyAIBBH8CQAJAAkAgACgC/AIiASgCuAFFBEAgACgC7AMiAkH/////A0sNASABIAJBAnQgACgCDBECACICNgK4ASACRQ0BIAJBADYCAAsgASgCpAEhAyABKAKwASICIAEoAqwBIgRJDQIgAwRAIARBpJLJJEsNASADIARBOGwgACgCEBEAACIDRQ0BIAEoAqwBQQF0IQIMAgtBICECQYAHIAAoAgwRAgAiAw0BC0F/DwsgASADNgKkASABIAI2AqwBIAEoArABIQILIAEgAkEBajYCsAEgASgCtAEiAARAIAMgASgCuAEgAEECdGpBBGsoAgBBHGxqIgAoAhAiAQRAIAMgAUEcbGogAjYCGAsgACgCFCIBRQRAIAAgAjYCDAsgACACNgIQIAAgAUEBajYCFAsgAyACQRxsaiIAQgA3AgwgAEIANwIUIAILwQIBBX8jAEEQayIHJAAgByACKAIAIgg2AgwCfyAAKAKcASABRgRAIAAgCDYCqAIgAEGoAmohCSAAQawCagwBCyAAKAK0AiIJQQRqCyEGIAkgCDYCACACQQA2AgACQCAAIAEgCCADIAdBDGogASgCDBEGACIKIAggBygCDEG8IkEAEJwCRQRAIAAQ4gJBKyEDDAELIAYgBygCDCIGNgIAQQQhAwJAAkACQAJAAkACQCAKQQRqDgUDBQIDAQALIApBKkcNBCAAKAJcBEAgACABIAggBhCIASAHKAIMIQYLIAIgBjYCACAEIAY2AgBBI0EAIAAoAvgDQQJGGyEDDAULIAkgBjYCAAwECyAFDQFBBiEDDAMLIAUNAEECIQMMAgsgBCAINgIAQQAhAwwBCyAJIAY2AgBBFyEDCyAHQRBqJAAgAwvyBgEJfyMAQRBrIgkkACAAKAKcAiELIABBATYCnAIgACgC/AIiB0HoAGohCgJAAkAgBygCaA0AIAoQYQ0AQQEhCAwBCyAHQYQBaiEMIABBuANqIQ0CQAJAAkADQCAJIAI2AgwgACABIAIgAyAJQQxqIAEoAhQRBgAiBiACIAkoAgxBmDIgBBCcAkUEQCAAEOICQSshCAwEC0EAIQgCQAJAAkACQAJAAkACQAJAAkACQAJAIAZBBGoODw4CBwUGBwcHBwcBAwcBBAALIAZBHEcNBgJAIAAtAIAERQRAIAEgACgCnAFGDQELIA0gASACIAEoAkAiBmogCSgCDCAGaxCHASIGRQ0NIAAgDCAGQQAQmgEhBiAAIAAoAsgDNgLEAyAGRQRAIAcgBy0AggE6AIABDA8LAkAgBi0AIEUEQCAGIAAoAtQCRw0BC0EMIQggASAAKAKcAUcNDwwNCyAGKAIQRQ0KIAAoAnxFDQggB0EAOgCDASAGQQE6ACAgACAGQcIyENIGIAAoAoABQQAgBigCFCAGKAIQIAYoAhggACgCfBEIAEUEQCAAIAZBxjIQmQMgBkEAOgAgQRUhCAwPCyAAIAZByzIQmQMgBkEAOgAgIActAIMBDQkgByAHLQCCAToAgAEMCQsgACACNgKoAkEKIQgMDQsgCiABIAIgCSgCDBD5BEUNCwwHCyAJIAIgASgCQGo2AgwLIAcoAnQiAiAHKAJwRgRAIAoQYUUNCiAHKAJ0IQILIAcgAkEBajYCdCACQQo6AAAMBQsgASACIAEoAigRAAAiBkEASARAQQ4hCCABIAAoApwBRg0IDAoLQQAhAiAGIAlBCGoQnAQiBkEAIAZBAEobIQgDQCACIAhGDQUgBygCdCIGIAcoAnBGBEAgChBhRQ0KIAcoAnQhBgsgCUEIaiACai0AACEOIAcgBkEBajYCdCAGIA46AAAgAkEBaiECDAALAAtBBCEIIAEgACgCnAFGDQYMCAtBBCEIIAEgACgCnAFHDQcgACAJKAIMNgKoAgwHC0EXIQggASAAKAKcAUYNBAwGCyAHIActAIIBOgCAAQsgCSgCDCECDAELCyAAIAZBAEECEPgEIQgMAgsgACACNgKoAgwBC0EBIQgLIAAgCzYCnAIgBUUNACAFIAkoAgw2AgALIAlBEGokACAIC4wDAQZ/IwBBEGsiCSQAIAkgAzYCDAJAAkADQAJAIAAoArwCIgcEQCAHKAIMIggoAgghCiAJIAgoAgQiCyAIKAIMaiIMNgIIIAgtACEEQCAAIAAoAuwBIAIgDCAKIAtqIgogBUEBIAlBCGoQ2QkiBw0EIAkoAggiByAKRwRAIAggByAIKAIEazYCDAwECyAIQQA6ACEMAwsgACAIQZ0wEJkDIAAoArwCIAdHDQQgCEEAOgAgIAAgACgCvAIoAgg2ArwCIAcgACgCwAI2AgggACAHNgLAAgwBCyAAIAEgAiADIAQgBSAGIAlBDGoQ2QkiBw0CIAkoAgwhAwsgACgCvAIgAyAER3INAAsgBSgCDCEAAkAgAg0AIAAgBSgCEEYNACAAQQFrIgEtAABBIEcNACAFIAE2AgwgASEACyAFKAIIIABGBEAgBRBhRQRAQQEhBwwCCyAFKAIMIQALIAUgAEEBajYCDEEAIQcgAEEAOgAACyAJQRBqJAAgBw8LQfwLQanGAUGjMEH/lgEQAAALtgIBBX8gACgCDCEHAkACQCADIARyRQ0AIAdBACAHQQBKGyEJA0AgBiAJRwRAQQEhCCAGQQxsIQogBkEBaiEGIAEgCiAAKAIUaigCAEcNAQwDCwsgA0UNACAAKAIIDQAgAS0ACQ0AIAAgATYCCAsCQCAAKAIQIAdHBEAgACgCFCEGDAELIAdFBEAgAEEINgIQIABB4AAgBSgCDBECACIGNgIUIAYNASAAQQA2AhBBAA8LQQAhCCAHQf////8DSg0BIAdBAXQiA0HVqtWqAUsNASAAKAIUIAdBGGwgBSgCEBEAACIGRQ0BIAAgBjYCFCAAIAM2AhALIAYgACgCDEEMbGoiAyAENgIIIAMgATYCACADIAI6AAQgAkUEQCABQQE6AAgLQQEhCCAAIAAoAgxBAWo2AgwLIAgLZwECf0HgjwsoAgAhAyAAIAIQ2AkgAEEBNgIoIAAgATYCAAJAIAIoAhQiBARAIAAgBCACKAIMQQJ0aigCAEYNAQsgAEIBNwIgCyAAIAFBAEdBwOQKKAIAQQBKcTYCGEHgjwsgAzYCAAuFBAEFfyAAKAL8AiIEQdAAaiEHAkAgBCgCXCIFIAQoAlhGBEAgBxBhRQ0BIAQoAlwhBQsgBCAFQQFqNgJcIAVBADoAACAHIAEgAiADEIcBIgFFDQAgACAEQShqIAFBAWoiCEEMEJoBIgZFDQACQCAIIAYoAgBHBEAgBCAEKAJgNgJcDAELIAQgBCgCXDYCYCAALQD0AUUNAAJAIAgtAAAiBUH4AEcNACABLQACQe0ARw0AIAEtAANB7ABHDQAgAS0ABEHuAEcNACABLQAFQfMARw0AAn8gAS0ABiICQTpHBEAgAg0CIARBmAFqDAELIAAgBEE8aiABQQdqQQgQmgELIQAgBkEBOgAJIAYgADYCBAwBC0EAIQNBACECA0AgBUH/AXEiAUUNASABQTpGBEADQAJAIAQoAlghASAEKAJcIQUgAiADRg0AIAEgBUYEQCAHEGFFDQYgBCgCXCEFCyADIAhqLQAAIQEgBCAFQQFqNgJcIAUgAToAACADQQFqIQMMAQsLIAEgBUYEQCAHEGFFDQQgBCgCXCEFCyAEIAVBAWo2AlwgBUEAOgAAIAYgACAEQTxqIAQoAmBBCBCaASIANgIEIABFDQMgBCgCYCIBIAAoAgBGBEAgBCAEKAJcNgJgDAMLIAQgATYCXAUgCCACQQFqIgJqLQAAIQUMAQsLCyAGDwtBAAugBQENfyMAQSBrIgQkACAEQQA2AhwgBEEANgIYIARBADYCFCAEQQA2AhAgBEF/NgIMAkAgAEEMIAIgA0GYI0EAEJwCRQRAIAAQ4gJBKyEDDAELIAEhByAAKAKcASEIIAIhCSADIQogAEGoAmohCyAEQRRqIQwgBEEQaiENIARBHGohDiAEQRhqIQ8gBEEMaiEQIAAtAPQBBH8gByAIIAkgCiALIAwgDSAOIA8gEBCDCgUgByAIIAkgCiALIAwgDSAOIA8gEBCGCgtFBEBBH0EeIAEbIQMMAQsCQCABDQAgBCgCDEEBRw0AIAAoAvwCQQE6AIIBIAAoAoQEQQFHDQAgAEEANgKEBAsCQAJ/IAAoApgBBEBBACEBQQAhAiAEKAIcIgMEQCAAQdADaiAAKAKcASICIAMgAiADIAIoAhwRAAAgA2oQhwEiAkUNAyAAIAAoAtwDNgLgAwsgBCgCFCIDBEAgAEHQA2ogACgCnAEiASADIAQoAhAgASgCQGsQhwEiAUUNAwsgACgCBCABIAIgBCgCDCAAKAKYAREHACABQQBHDAELIAAoAlwEQCAAIAAoApwBIAIgAxCIAQtBACECQQALIQECQCAAKALwAQ0AAkAgBCgCGCIDBEAgAygCQCIFIAAoApwBIgYoAkBGIAMgBkYgBUECR3JxDQEgACAEKAIcNgKoAkETIQMMBAsgBCgCHCIDRQ0BIAJFBEAgAEHQA2ogACgCnAEiASADIAEgAyABKAIcEQAAIANqEIcBIgJFDQMLIAAgAhDnCSEDIABB0ANqEJ4CIANBEkcNAyAAIAQoAhw2AqgCQRIhAwwDCyAAIAM2ApwBC0EAIQMgAkUgAUEBc3ENASAAQdADahCeAgwBC0EBIQMLIARBIGokACADC/syARB/IwBBEGsiDCQAIAwgBTYCBCAAKAL8AiEKAn8gACgCnAEgAUYEQCAAQagCaiEWIABBrAJqDAELIAAoArQCIhZBBGoLIREgAEG4A2ohDyAKQYQBaiEXIApB0ABqIRQgAEGIAmohGAJAAkADQAJAIBYgAjYCACARIAwoAgQiDjYCAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIARBAEoNACAHQQAgBBsNSyAEQXFGBEBBDyEEDAELQQYhBQJAAkACQCAEQQRqDgUBAk8zAAILIBYgDjYCAAwDCyAAKAKcASABRwRAIAAoArQCLQAURQ1NDEsLIAAtAIAEDUpBAyEFDE0LIAwgAzYCBEEAIARrIQQgAyEOCwJAIBggBCACIA4gASAYKAIAEQgAIgtBAWtBAkkgC0E5RnINACAAIAQgAiAMKAIEQccmIAkQnAINACAAEOICQSshBQxMC0EBIQ1BACEFAkACQAJAAkACQAJAAkACQCALQQFqDj4kPgAKPQEaBAIHHh88GRsFHB07ICIjIQwNDg8QERITFBYWOgsXFxgYOSorKywmNTMyNCgnMC0vLkA/AyUpKUkLIABBACACIAwoAgQQ5QkiBQ1SDE0LIAAoAmAEfyAAIA8gASACIAwoAgQQhwEiBDYC2AIgBEUNTCAAQQA2AuACIAAgACgCxAM2AsgDQQAFQQELIQ0gAEEANgLcAgxGCyAAKAJgIgRFDUYgACgCBCAAKALYAiAAKALcAiAAKALgAkEBIAQRCgAgAEEANgLYAiAPEJ4CDEwLIABBASACIAwoAgQQ5QkiBUUNSgxPCyAAQQA6AIEEIAAgACAXQYizCEEkEJoBIgQ2AtQCIARFDUggCkEBOgCBASAAKAJgRQ0AIAEgAiAMKAIEIBYgASgCNBEGAEUNRyAPIAEgAiABKAJAIgRqIAwoAgQgBGsQhwEiBEUNSCAEENcGIAAgBDYC4AIgACAAKALEAzYCyANBACENDAELIAEgAiAMKAIEIBYgASgCNBEGAEUNRgsgCi0AgAFFDUEgACgC1AJFDUEgFCABIAIgASgCQCIEaiAMKAIEIARrEIcBIgRFDUYgBBDXBiAAKALUAiAENgIYIAogCigCXDYCYCALQQ5HDUEgACgClAFFDUEMSAsgCA0BC0EEIQUMSgsgACgC2AIiBAR/IAAoAgQgBCAAKALcAiAAKALgAkEAIAAoAmARCgAgDxCeAkEABUEBCyENAkAgACgC3AJFBEAgAC0AgQRFDQELIAotAIEBIQUgCkEBOgCBAQJAIAAoAoQERQ0AIAAoAnxFDQAgACAXQYizCEEkEJoBIgRFDUUgAC0AgQQEQCAEIAAoAoADNgIUCyAKQQA6AIMBIAAoAoABQQAgBCgCFCAEKAIQIAQoAhggACgCfBEIAEUNQyAKLQCDAQRAIAotAIIBDQEgACgCeCIERQ0BIAAoAgQgBBECAA0BDEMLIAAoAtwCDQAgCiAFOgCBAQsgAEEAOgCBBAsgACgCZCIERQ0+IAAoAgQgBBEBAAxFCwJAIAAtAIEERQ0AIAotAIEBIQQgCkEBOgCBASAAKAKEBEUNACAAKAJ8RQ0AIAAgF0GIswhBJBCaASIBRQ1DIAEgACgCgAM2AhQgCkEAOgCDASAAKAKAAUEAIAEoAhQgASgCECABKAIYIAAoAnwRCABFDUEgCi0AgwEEQCAKLQCCAQ0BIAAoAngiAUUNASAAKAIEIAERAgBFDUEMAQsgCiAEOgCBAQsgAEHWATYCoAIgACACIAMgBhDWBiEFDEgLIAAgACABIAIgDCgCBBDVBiIENgLwAiAERQ1BDAkLIAAgACABIAIgDCgCBBDkCSIENgL0AiAERQ1AIABBADYC5AIgAEEAOwH4AgwICyAAQYqzCDYC5AIgAEEBOgD4AgwHCyAAQZCzCDYC5AIgAEEBOgD5AgwGCyAAQZOzCDYC5AIMBQsgAEGZswg2AuQCDAQLIABBoLMINgLkAgwDCyAAQaezCDYC5AIMAgsgAEGwswg2AuQCDAELIABBuLMINgLkAgsgCi0AgAFFDTMgACgCkAFFDTMMOQsgCi0AgAFFDTIgACgCkAFFDTJBuwhBobUDQay1AyALQSBGGyAAKALkAhshBQNAIAUtAAAiCwRAIAAoAsQDIgQgACgCwANGBEAgDxBhRQ05IAAoAsQDIQQLIAAgBEEBajYCxAMgBCALOgAAIAVBAWohBQwBCwtBASEFIAAoAsgDRQ08IA8gASACIAwoAgQQ+QRFDTwgACAAKALIAzYC5AIMOAsgCi0AgAFFBEAMMAsgACgC8AIgACgC9AIgAC0A+AIgAC0A+QJBACAAEOIJRQ01IAAoApABRQ0vIAAoAuQCIgRFDS8CQCAELQAAIgVBKEcEQCAFQc4ARw0BIAQtAAFBzwBHDQELIAAoAsQDIgQgACgCwANGBEAgDxBhRQ03IAAoAsQDIQQLQQEhBSAAIARBAWo2AsQDIARBKToAACAAKALEAyIEIAAoAsADRgRAIA8QYUUNPSAAKALEAyEECyAAIARBAWo2AsQDIARBADoAACAAIAAoAsgDNgLkAiAAIAAoAsQDNgLIAwsgESACNgIAQQAhDSAAKAIEIAAoAvACKAIAIAAoAvQCKAIAIAAoAuQCQQAgC0EkRiAAKAKQARELAAwvCyAKLQCAAUUNMCAAIAEgAC0A+AIgAiABKAJAIgRqIAwoAgQgBGsgFEECEOEJIgUNOiAKKAJgIQQgCiAKKAJcNgJgQQEhBSAAKALwAiAAKAL0AiAALQD4AkEAIAQgABDiCUUNOiAAKAKQAUUNMCAAKALkAiIORQ0wAkAgDi0AACISQShHBEAgEkHOAEcNASAOLQABQc8ARw0BCyAAKALEAyIQIAAoAsADRgRAIA8QYUUNPCAAKALEAyEQCyAAIBBBAWo2AsQDIBBBKToAACAAKALEAyIQIAAoAsADRgRAIA8QYUUNPCAAKALEAyEQCyAAIBBBAWo2AsQDIBBBADoAACAAIAAoAsgDNgLkAiAAIAAoAsQDNgLIAwsgESACNgIAIAAoAgQgACgC8AIoAgAgACgC9AIoAgAgACgC5AIgBCALQSZGIAAoApABEQsAIA8QngIMNgsgCi0AgAFFDS8gDCgCBCAMIAIgASgCQCIFajYCDCAFayELAkADQAJAIAAoAsQCIgUEQCAFKAIMIgQoAgghDiAMIAQoAgQiEiAEKAIMaiINNgIIIAQtACEEQCAAIAAoAuwBIA0gDiASaiIOQQEgDEEIahDgCSIFDQQgDCgCCCIFIA5HBEAgBCAFIAQoAgRrNgIMDAQLIARBADoAIQwDCyAAIARB4DMQmQMgACgCxAIgBUcNICAEQQA6ACAgACAAKALEAigCCDYCxAIgBSAAKALIAjYCCCAAIAU2AsgCDAELIAAgASAMKAIMIAtBAiAMQQxqEOAJIgUNAgsgACgCxAINACALIAwoAgxHDQALQQAhBQsgCigCeCEEAn8CQCAAKALUAiILBEAgCyAENgIEIAAoAtQCIAooAnQgBGs2AgggCiAKKAJ0NgJ4IAAoApQBRQ0BIBEgAjYCACAAKAIEIAAoAtQCIgQoAgAgBC0AIiAEKAIEIAQoAgggACgCgANBAEEAQQAgACgClAERGgBBAAwCCyAKIAQ2AnQLQQELIQ0gBUUNLgw5CyAAQQA6AIEEQQEhBSAKQQE6AIEBAn8gACgCYARAIAAgDyABIAIgASgCQCIEaiAMKAIEIARrEIcBIgQ2AtwCIARFDTogACAAKALEAzYCyANBAAwBCyAAQYizCDYC3AJBAQshDQJAIAotAIIBDQAgACgChAQNACAAKAJ4IgRFDQAgACgCBCAEEQIARQ0wCyAAKALUAg0AIAAgACAXQYizCEEkEJoBIgQ2AtQCIARFDTggBEEANgIYCyAKLQCAAUUNLCAAKALUAkUNLCAUIAEgAiABKAJAIgRqIAwoAgQgBGsQhwEhBCAAKALUAiAENgIQIAAoAtQCIgQoAhBFDTEgBCAAKAKAAzYCFCAKIAooAlw2AmAgC0ENRw0sIAAoApQBRQ0sDDMLIAotAIABRQ0sIAAoAtQCRQ0sIAAoApQBRQ0sIBEgAjYCACAAKAIEIAAoAtQCIgIoAgAgAi0AIkEAQQAgAigCFCACKAIQIAIoAhhBACAAKAKUAREaAAwyCyAKLQCAAUUNKyAAKALUAkUNKyAUIAEgAiAMKAIEEIcBIQQgACgC1AIgBDYCHCAAKALUAigCHEUNLyAKIAooAlw2AmAgACgCaARAIBEgAjYCACAAKAIEIAAoAtQCIgIoAgAgAigCFCACKAIQIAIoAhggAigCHCAAKAJoEQsADDILIAAoApQBRQ0rIBEgAjYCACAAKAIEIAAoAtQCIgIoAgBBAEEAQQAgAigCFCACKAIQIAIoAhggAigCHCAAKAKUAREaAAwxCyABIAIgDCgCBCABKAIsEQQABEAgAEEANgLUAgwrCyAKLQCAAUUNGUEBIQUgFCABIAIgDCgCBBCHASIERQ00IAAgACAKIARBJBCaASILNgLUAiALRQ00IAQgCygCAEcEQCAKIAooAmA2AlwgAEEANgLUAgwrCyAKIAooAlw2AmBBACEEIAAoAtQCQQA2AhggACgC1AJBADoAIiAAKALUAiAAKAL0AwR/QQEFIAAoArQCC0U6ACMgACgClAFFDSoMMAsgCi0AgAEEQEEBIQUgFCABIAIgDCgCBBCHASIERQ00IAAgACAXIARBJBCaASILNgLUAiALRQ00IAQgCygCAEcEQCAKIAooAmA2AlwgAEEANgLUAgwrCyAKIAooAlw2AmBBACEEIAAoAtQCQQA2AhggACgC1AJBAToAIiAAKALUAiAAKAL0AwR/QQEFIAAoArQCC0U6ACMgACgClAFFDSoMMAsgCiAKKAJgNgJcIABBADYC1AIMKQsgAEIANwPoAiAAKAJsRQ0oIAAgDyABIAIgDCgCBBCHASICNgLoAiACRQ0sIAAgACgCxAM2AsgDDC4LIAEgAiAMKAIEIBYgASgCNBEGAEUNKiAAKALoAkUNJyAPIAEgAiABKAJAIgRqIAwoAgQgBGsQhwEiAkUNKyACENcGIAAgAjYC7AIgACAAKALEAzYCyAMMLQsgACgC6AJFDSQgACgCbEUNJCAPIAEgAiABKAJAIgRqIAwoAgQgBGsQhwEiBEUNKiARIAI2AgAgACgCBCAAKALoAiAAKAKAAyAEIAAoAuwCIAAoAmwRCgBBACENDCQLIAAoAuwCRQ0jIAAoAmxFDSMgESACNgIAQQAhDSAAKAIEIAAoAugCIAAoAoADQQAgACgC7AIgACgCbBEKAAwjC0EKQRFBAiAEQQxGGyAEQRxGGyEFDC4LIAAoAlwEQCAAIAEgAiAMKAIEEIgBCyAAIAEgDEEEaiADIAYgBxDfCSIFDS0gDCgCBA0pIABB1wE2AqACQQAhBQwtCyAAKALsAyIEIAAoAowCSw0fIAQEQCAEQQBIDSdBASEFIAAgBEEBdCIENgLsAyAAKALoAyAEIAAoAhARAAAiBEUEQCAAIAAoAuwDQQF2NgLsAwwuCyAAIAQ2AugDIAooArgBIgRFDSAgACgC7AMiC0H/////A0sNLSAEIAtBAnQgACgCEBEAACIERQ0tIAogBDYCuAEMIAsgAEEgNgLsAyAAQSAgACgCDBECACIENgLoAyAEDR8gAEEANgLsAwwmCyAAKALoAyAAKAKMAmoiBC0AAEH8AEYNHSAEQSw6AAAgCi0AoAFFDSEgACgCjAFFDSEMJwsgACgC6AMiBCAAKAKMAiIFai0AACILQSxGDRwCQCALDQAgCi0AoAFFDQAgCigCpAEgCigCuAEgCigCtAFBAnRqQQRrKAIAQRxsaiILKAIAQQNGDQAgC0EFNgIAIAAoAowCIQUgACgC6AMhBCAAKAKMAUUhDQsgBCAFakH8ADoAAAwfC0EBIQUgCkEBOgCBASAAKAKEBEUEQCAKIAotAIIBIgQ6AIABDBsLIBQgASACIAEoAkAiBGogDCgCBCAEaxCHASIORQ0pIAAgFyAOQQAQmgEhBCAKIAooAmA2AlwgACgCmAJFDRgCQCAKLQCCAQRAIAAoArQCRQ0BDBoLIAotAIEBDRkLIARFBEBBCyEFDCoLIAQtACMNGUEYIQUMKQsgACgCjAFFDR4gACAAIAEgAiAMKAIEENUGIgI2AvACIAJFDSIgCkIANwKwASAKQQE6AKABDCQLIAotAKABRQ0dIAAoAowBBH9BFCAAKAIMEQIAIgRFDSIgBEIANwIEIARCADcCDCAEQQJBASALQSlGGzYCACARIAI2AgAgACgCBCAAKALwAigCACAEIAAoAowBEQUAQQAFQQELIQ0gCkEAOgCgAQwcCyAKLQCgAUUNHCAKKAKkASAKKAK4ASAKKAK0AUECdGpBBGsoAgBBHGxqQQM2AgAgACgCjAFFDRwMIgtBAiENDAELQQMhDQsgCi0AoAFFDRkgDCgCBCABKAJAawwBCyAKLQCgAUUNGEEAIQ0gDCgCBAshDkEBIQUgABDeCSIEQQBIDSEgBEEcbCIEIAooAqQBakEENgIAIAooAqQBIARqIA02AgQgACABIAIgDhDVBiILRQ0hIAooAqQBIARqIAsoAgAiCzYCCEEAIQQDQCAEIAtqIARBAWohBC0AAA0ACyAEIAooAqgBIgtBf3NLDSEgCiAEIAtqNgKoASAAKAKMAUUNFwwdC0EBIQUMAgtBAiEFDAELQQMhBQsgCi0AoAFFDRMgACgCjAEhBCAKIAooArQBQQFrIgs2ArQBIAooAqQBIAooArgBIAtBAnRqKAIAQRxsaiAFNgIEIARFIQ0gCigCtAENEiAERQ0LQQEhBSAAKAL8AiITKAKwASIEQcyZs+YASw0dIARBFGwiBCATKAKoASILQX9zSw0dIAQgC2ogACgCDBECACISRQ0dIBMoArABIQQgEkEANgIMIBJBFGohDiASIgsgBEEUbGoiGSEEA0ACQCALIBlJBEAgCyALKAIMQRxsIhUgEygCpAFqKAIAIgU2AgAgCyATKAKkASAVaigCBDYCBCAFQQRGBEAgCyAENgIIIBMoAqQBIBVqKAIIIQUDQCAEIAUtAAAiEDoAACAFQQFqIQUgBEEBaiEEIBANAAsgC0IANwIMDAILQQAhBSALQQA2AgggEygCpAEgFWooAhQhECALIA42AhAgCyAQNgIMIBMoAqQBIBVqQQxqIRUDQCAFIBBPDQIgDiAVKAIAIhA2AgwgBUEBaiEFIA5BFGohDiATKAKkASAQQRxsakEYaiEVIAsoAgwhEAwACwALIBEgAjYCACAAKAIEIAAoAvACKAIAIBIgACgCjAERBQAMDQsgC0EUaiELDAALAAtB0gtBqcYBQeYzQeqWARAAAAtBBSEFDBsLIAogCigCYDYCXCAAQQA2AtQCDBALIAAoAowBRQ0PDBULIAotAIABRQ0OIAAoApABRQ0ODBQLIAAoAmxFDQ0MEwsgCi0AgAFFDQwgACgClAFFDQwMEgsgACgCYEUNCwwRCyAEQQ5HDQoMEAsgACABIAIgDCgCBBDUBkUNDQwPCyAAIAEgAiAMKAIEENMGRQ0MDA4LIApBADYCqAEgCkEAOgCgAQwGCyAEDQAgCiAKLQCCAToAgAEgC0E8Rw0GIAAoAoQBIgRFDQYgACgCBCAOQQEgBBEFAAwMCyAELQAgBEBBDCEFDBALIAQoAgQEQCAAIAQgC0E8RkEAEPgERQ0MDBALIAAoAnwEQEEAIQ0gCkEAOgCDASAEQQE6ACAgACAEQbksENIGIAAoAoABQQAgBCgCFCAEKAIQIAQoAhggACgCfBEIAEUEQCAAIARBvSwQmQMgBEEAOgAgDAkLIAAgBEHBLBCZAyAEQQA6ACAgCi0AggEhBCAKLQCDAQ0BIAogBDoAgAEMDAsgCiAKLQCCAToAgAEMBQsgBEH/AXENAyAAKAJ4IgRFDQMgACgCBCAEEQIARQ0FDAMLQQIhBQwNCyAAKALoAyAAKAKMAmpBADoAACAKLQCgAUUNAiAAEN4JIgRBAEgNBiAKKAK4ASIFBEAgBSAKKAK0AUECdGogBDYCACAKIAooArQBQQFqNgK0ASAKKAKkASAEQRxsakEGNgIAIAAoAowBRQ0DDAkLQdTZAUGpxgFB1CtBi4YBEAAACyAPEJ4CCyANRQ0GCyAAKAJcRQ0FIAAgASACIAwoAgQQiAEMBQtBFiEFDAgLQRUhBQwHC0EgIQUMBgtBASEFDAULIAAoApwBIQELQSMhBQJAAkACQAJAIAAoAvgDQQFrDgMBBwACCyAGIAwoAgQ2AgBBACEFDAYLIAwoAgQhAiAALQDABA0EDAELIAwoAgQhAgsgASACIAMgDEEEaiABKAIAEQYAIQQMAQsLIBhBfCADIAMgASAYKAIAEQgAQX9HDQBBHSEFDAELIAYgAjYCAEEAIQULIAxBEGokACAFC7MCAQd/IwBBkAhrIgIkAAJAIAAoAogBIgRFBEBBEiEDDAELA0AgA0GAAkcEQCACQQRqIANBAnRqQX82AgAgA0EBaiEDDAELCyACQQA2AowIIAJCADcChAgCQCAAKAKAAiABIAJBBGogBBEEAEUNACAAQfQOIAAoAgwRAgAiATYC+AEgAUUEQEEBIQMgAigCjAgiAEUNAiACKAKECCAAEQEADAILIAEhBSACQQRqIQYgAigCiAghByACKAKECCEIIAAtAPQBBH8gBSAGIAcgCBCCCgUgBSAGIAcgCBDjBgsiAUUNACAAIAIoAoQINgL8ASACKAKMCCEDIAAgATYCnAEgACADNgKEAkEAIQMMAQtBEiEDIAIoAowIIgBFDQAgAigChAggABEBAAsgAkGQCGokACADC0wBAX8jAEEQayICJABBlN8BEN0GBEAgAkEENgIMIAIgATYCCCACQQg2AgQgAiAANgIAQbj8CCgCAEGT9gQgAhAeGgsgAkEQaiQAIAEL0AcDC38CfAF+IwBBIGsiBiQAIAAoAogERQRAIAACfwJAQZ7yAEEAQQAQlwwiAUEATgRAA0AjAEEQayICJAAgAkEEIARrNgIMIAIgBkEMaiAEajYCCCABIAJBCGpBASACQQRqEAMQrgMhBSACKAIEIQMgAkEQaiQAQX8gAyAFGyIFIARqIQIgBUEATCIFRSACQQNLcQ0CIAQgAiAFGyEEQeCPCygCAEEbRg0ACyABEMYHCyAGAn4QBiIMRAAAAAAAQI9AoyINmUQAAAAAAADgQ2MEQCANsAwBC0KAgICAgICAgIB/CyIONwMQIAYCfyAMIA5C6Ad+uaFEAAAAAABAj0CiIgyZRAAAAAAAAOBBYwRAIAyqDAELQYCAgIB4CzYCGEGEsgMgBigCGEEqc0H/////B2wQ6AkMAQsgARDGB0Ge8gAgBigCDBDoCQs2AogECyAALQD0AQR/An9BoLQIIQQgACIBQYwDaiEJIAFBuANqIQcgASgC/AIiCEGYAWohBSAIQdAAaiEKIAhBPGohCwNAAkAgBCEAA0BBASAELQAARQ0DGgJAAkAgAC0AACIDBEAgA0E9Rg0BIANBDEcNAgsgASgCxAMiAyABKALAA0YEQCAHEGFFDQQgASgCxAMhAwsgASADQQFqNgLEAyADQQA6AAAgASAIIAEoAsgDQQAQmgEiBARAIARBAToAIAsgAC0AACEEIAEgASgCyAM2AsQDIAAgBEEAR2ohBAwECyAFIQQgASgCxAMiAiABKALIA0cEQCABKALAAyACRgRAIAcQYUUNBCABKALEAyECCyABIAJBAWo2AsQDIAJBADoAACABIAsgASgCyANBCBCaASIERQ0DIAEgBCgCACICIAEoAsgDIgNGBH8gBCAKIAIQ6wkiAjYCACACRQ0EIAEoAsgDBSADCzYCxAMLA0ACQCAAQQFqIQIgAC0AASIDRSADQQxGcg0AIAEoAsQDIgAgASgCwANGBEAgBxBhRQ0FIAItAAAhAyABKALEAyEACyABIABBAWo2AsQDIAAgAzoAACACIQAMAQsLIAEoAsQDIgMgASgCwANGBEAgBxBhRQ0DIAEoAsQDIQMLIAEgA0EBajYCxAMgA0EAOgAAIAEgBEEAIAEoAsgDIAkQ3AYNAiABIAEoAsgDNgLEAyAAQQJqIAIgAC0AARshBAwDCyABKALEAyICIAEoAsADRgRAIAcQYUUNAiAALQAAIQMgASgCxAMhAgsgASACQQFqNgLEAyACIAM6AAAgAEEBaiEADAALAAsLQQALBUEBCyAGQSBqJAAL4AoBB38CQAJAAkAgAEUgAkEASHJFBEAgASACRXINAQwCCyAADQEMAgsCQAJAAkACQCAAKAL4Aw4EAgMBAAMLIABBITYCpAIMBAsgAEEkNgKkAgwDCyAAKAL0Aw0AIAAQ6QkNACAAQQE2AqQCDAILIABBATYC+AMCfwJAIAAEQCACQQBIDQECQAJAAkAgACgC+ANBAmsOAgEAAgsgAEEhNgKkAkEADAQLIABBJDYCpAJBAAwDCyAAIAI2AjQCQCAAKAIgIghFDQAgACgCHCIERQ0AIAggBGshBQsCQCACIAVKDQAgACgCCEUNACAAKAIcDAMLQQAhBAJAIAAoAhwiBUUNACAAKAIYIgZFDQAgBSAGayEECyACIARqIgZBAEgNAUGACAJ/QQAgACgCGCIERQ0AGkEAIAAoAggiB0UNABogBCAHawsiByAHQYAIThsiByAGQf////8Hc0oNASAGIAdqIQoCQAJAAkACQCAAKAIIIglFDQAgBEUgCiAIIAlrIgZBACAIG0pyRQRAIAcgBCAJa04NBCAJIAQgB2sgBSAEayAHahBTIQUgACAAKAIcIAQgBSAHamsiBGsiBTYCHCAAKAIYIARrIQQMAwsgCEUNACAGDQELQYAIIQYLA0AgCiAGQQF0IgZKIAZBAEpxDQALIAZBAEwNAyAGIAAoAgwRAgAiBEUNAyAAIAQgBmo2AiAgACgCGCIFBEBBACEGIAQgBSAHayAAKAIcIgQgBWtBACAEGyAHahAfIQQgACgCCCAAKAIUEQEAIAAgBDYCCAJAIAAoAhwiBUUNACAAKAIYIghFDQAgBSAIayEGCyAAIAQgB2oiBCAGaiIFNgIcDAELIAAgBDYCCCAAIAQ2AhwgBCEFCyAAIAQ2AhgLIABBADYCsAIgAEIANwOoAgsgBQwBCyAAQQE2AqQCQQALIgRFDQECQCACBEAgAUUNASAEIAEgAhAfGgsCf0EAIQECQCAABEAgAkEASARAIABBKTYCpAIMAgsCQAJAAkACQCAAKAL4Aw4EAgMBAAMLIABBITYCpAIMBAsgAEEkNgKkAgwDCyAAKAIYRQRAIABBKjYCpAIMAwsgACgC9AMNACAAEOkJDQAgAEEBNgKkAgwCC0EBIQEgAEEBNgL4AyAAIAM6APwDIAAgACgCGCIFNgKwAiAAIAAoAhwgAmoiBDYCHCAAIAQ2AiggACAAKAIkIAJqNgIkIAACfyAAQRhqIQYgBCAFIgJrQQAgBBtBACACGyEHAkAgAC0AMEUNACAALQD8Aw0AAn9BACAAKAIYIgVFDQAaQQAgACgCCCIIRQ0AGiAFIAhrCyEFIAAoAiwhCAJ/QQAgACgCICIJRQ0AGkEAIAAoAhwiCkUNABogCSAKawshCSAHIAhBAXRPDQAgACgCNCAJIAVBgAhrIghBACAFIAhPG2pLDQAgBiACNgIAQQAMAQsgBiACNgIAAkADQAJAIAAgBigCACAEIAYgACgCoAIRBgAhBSAAKAL4A0EBRwRAIABBADoAwAQMAQsgAC0AwARFDQAgAEEAOgDABCAFRQ0BDAILCyAFDQAgAiAGKAIARgRAIAAgBzYCLEEADAILQQAhBSAAQQA2AiwLIAULIgI2AqQCIAIEQCAAQdMBNgKgAiAAIAAoAqgCNgKsAgwCCwJAAkACQCAAKAL4Aw4EAAACAQILIANFDQEgAEECNgL4A0EBDAQLQQIhAQsgACgCnAEiAiAAKAKwAiAAKAIYIABBsANqIAIoAjARBwAgACAAKAIYNgKwAgsgAQwBC0EACw8LQcDaAUGpxgFB0xBB+poBEAAACyAAQSk2AqQCC0EAC14BAn8DQCAAKAIMIgIgACgCCEYEQCAAEGFFBEBBAA8LIAAoAgwhAgsgAS0AACEDIAAgAkEBajYCDCACIAM6AAAgAS0AACABQQFqIQENAAsgACgCECAAIAAoAgw2AhALiQUBBX8jAEEQayIDJAAgAARAIAAoAoQDIQEDQAJAIAFFBEAgACgCiAMiAUUNASAAQQA2AogDCyABKAIAIAEoAiQgACgCFBEBACABKAIsIAAQ2gYgASAAKAIUEQEAIQEMAQsLIAAoArQCIQEDQAJAIAFFBEAgACgCuAIiAUUNASAAQQA2ArgCCyABKAIIIAEgACgCFBEBACEBDAELCyAAKAK8AiEBA0ACQCABRQRAIAAoAsACIgFFDQEgAEEANgLAAgsgASgCCCABIAAoAhQRAQAhAQwBCwsgACgCxAIhAQNAAkAgAUUEQCAAKALIAiIBRQ0BIABBADYCyAILIAEoAgggASAAKAIUEQEAIQEMAQsLIAAoApADIAAQ2gYgACgCjAMgABDaBiAAQbgDahD6BCAAQdADahD6BCAAKALwASAAKAIUEQEAAkAgAC0AgAQNACAAKAL8AiICRQ0AIAAoAvQDIAMgAigCFCIBNgIIIAJBFGogAyABBH8gASACKAIcQQJ0agVBAAs2AgwDQCADQQhqEN4GIgEEQCABKAIQRQ0BIAEoAhQgACgCFBEBAAwBCwsgAhCaBCACQYQBahCaBBCaBCACQShqEJoEIAJBPGoQmgQgAkHQAGoQ+gQgAkHoAGoQ+gRFBEAgAigCuAEgACgCFBEBACACKAKkASAAKAIUEQEACyACIAAoAhQRAQALIAAoAqADIAAoAhQRAQAgACgC6AMgACgCFBEBACAAKAIIIAAoAhQRAQAgACgCOCAAKAIUEQEAIAAoAqQDIAAoAhQRAQAgACgC+AEgACgCFBEBACAAKAKEAiIBBEAgACgC/AEgAREBAAsgACAAKAIUEQEACyADQRBqJAALIAAgACgCAEE0ahAkBEBB7s8DQbT4AEHaAUGrOhAAAAsLnQEBAX8CQAJAIAJFDQAgABBGIAAQJGsgAkkEQCAAIAIQ0QELIAAQJCEDIAAQJwRAIAAgA2ogASACEB8aIAJBgAJPDQIgACAALQAPIAJqOgAPIAAQJEEQSQ0BQbzAA0HJhAFBhQJBsvAAEAAACyAAKAIAIANqIAEgAhAfGiAAIAAoAgQgAmo2AgQLDwtB+NQBQcmEAUGDAkGy8AAQAAALmQIBAX8CQAJAAkACQAJAAkACQAJAAkAgAUELaw4GAgcDBwgBAAsgAUEaaw4DBAYDBQsgBCACIAQoAkBBAXRqIANB1rEIIAQoAhgRBgAEQCAAQaUBNgIAQQsPCyAEIAIgBCgCQEEBdGogA0HdsQggBCgCGBEGAARAIABBpgE2AgBBIQ8LIAQgAiAEKAJAQQF0aiADQeWxCCAEKAIYEQYABEAgAEGnATYCAEEnDwsgBCACIAQoAkBBAXRqIANB7bEIIAQoAhgRBgBFDQUgAEGoATYCAEERDwtBNw8LQTgPC0E8DwsgAEGpATYCAEEDDwsgAUF8Rg0BCyABQRxGBEBBOyEFIAAoAhBFDQELIABBngE2AgBBfyEFCyAFC5YBAQJ/IAJBCzYCAEEBIQMCQCABIABrQQZHDQAgAC0AAA0AIAAtAAEiAUH4AEYEf0EABSABQdgARw0BQQELIQEgAC0AAg0AIAAtAAMiBEHtAEcEQCAEQc0ARw0BQQEhAQsgAC0ABA0AIAAtAAUiAEHsAEcEQCAAQcwARw0BQQAPC0EAIQMgAQ0AIAJBDDYCAEEBIQMLIAMLTgECfwJAQTAQSCICBEAgAkGAgAE2AgwgAkGCgAEQSCIDNgIEIANFDQEgAkEBNgIUIAIgACABEOMJIAIPC0GZswMQnQIAC0GZswMQnQIAC6QBAQJ/AkACQCAAKAIUIgFFBEAgAEEEEEgiATYCFCABRQ0BIAFBADYCACAAQoCAgIAQNwIMDwsgACgCDCAAKAIQIgJBAWtPBEAgACABIAJBCGoiAkECdBA6IgE2AhQgAUUNAiABIAAoAhBBAnRqIgFCADcCACABQgA3AhggAUIANwIQIAFCADcCCCAAIAI2AhALDwtBxbMDEJ0CAAtBxbMDEJ0CAAuAAwEGfwJAIAIgAWsiBUECSA0AAkACQAJAAkACQAJAAkACQAJ/IAEtAAAiBkUEQCAAIAEtAAEiBGotAEgMAQsgBsAgASwAASIEECwLQf8BcSIIQRVrDgoDAgcCBwcHBwEDAAsgCEEGaw4FBAMGAgIGCyAEQQN2QRxxIAZBkIsIai0AAEEFdHJBoP4HaigCACAEdkEBcUUNBQsgAEHIAGohCQJAAkADQCACIAEiAEECaiIBayIFQQJIDQggAC0AAyEEAkACQAJAAn8gAC0AAiIGRQRAIAQgCWotAAAMAQsgBsAgBMAQLAtB/wFxIghBEmsODAUKCgoDCgMDAwMKAQALIAhBBmsOAgEDCQsgBEEDdkEccSAGQZCNCGotAABBBXRyQaD+B2ooAgAgBHZBAXENAQwICwsgBUECRg0FDAYLIAVBBEkNBAwFCyAAQQRqIQFBHCEHDAQLQRYhBwwDCyAFQQRJDQEMAgsgBUECRw0BC0F+DwsgAyABNgIAIAcPC0F/C60FAQd/IwBBEGsiCCQAQX8hCQJAIAIgAWsiBkECSA0AAkACQAJAAkACQAJAAkACfyABLQAAIgdFBEAgACABLQABIgVqLQBIDAELIAfAIAEsAAEiBRAsC0H/AXEiBEEFaw4DBQECAAsCQCAEQRZrDgMDBQMACyAEQR1HDQQgBUEDdkEccSAHQZCLCGotAABBBXRyQaD+B2ooAgAgBXZBAXENAgwECyAGQQJHDQMMAgsgBkEETw0CDAELIABByABqIQYgASEEAkACQAJAAkACQANAIAIgBCIAQQJqIgRrIgdBAkgNCSAALQADIQUCQAJAAn8gAC0AAiIKRQRAIAUgBmotAAAMAQsgCsAgBcAQLAtB/wFxQQZrDhgBAwcEBAcHBwcFBwcHBwcEAgcCAgICBwAHCyAFQQN2QRxxIApBkI0Iai0AAEEFdHJBoP4HaigCACAFdkEBcQ0BDAYLCyAHQQJGDQUMBAsgB0EESQ0EDAMLIAEgBCAIQQxqEPAJRQ0CIABBBGohAANAIAIgACIBayIEQQJIDQcgAS0AASEAAkACQAJAAkACQAJ/IAEsAAAiBUUEQCAAIAZqLQAADAELIAUgAMAQLAtB/wFxDhACAgQEBAQAAQIEBAQEBAQDBAsgBEECRg0IIAFBA2ohAAwECyAEQQRJDQcgAUEEaiEADAMLIAMgATYCAAwICyACIAFBAmoiAGtBAkgNCCAALQAADQEgAS0AA0E+Rw0BIAMgAUEEajYCAAwDCyABQQJqIQAMAAsACyABIAQgCEEMahDwCUUNASACIABBBGoiBGtBAkgNBSAALQAEDQEgAC0ABUE+Rw0BIAMgAEEGajYCAAsgCCgCDCEJDAQLIAMgBDYCAAwCC0F+IQkMAgsgAyABNgIAC0EAIQkLIAhBEGokACAJC60CAQV/QX8hBAJAAkAgAiABa0ECSA0AAkAgAS0AAA0AIAEtAAFBLUcNACAAQcgAaiEHIAFBAmohAANAIAIgACIBayIGQQJIDQIgAS0AASEAAkACQAJAAkACQAJ/IAEsAAAiCEUEQCAAIAdqLQAADAELIAggAMAQLAtB/wFxIgAOCQYGAwMDAwABBgILIAZBAkYNByABQQNqIQAMBAsgBkEESQ0GIAFBBGohAAwDCyAAQRtGDQELIAFBAmohAAwBCyACIAFBAmoiAGtBAkgNAiAALQAADQAgAS0AA0EtRw0ACyACIAFBBGoiAGtBAkgNASAALQAABEAgACEBDAELIAFBBmogACABLQAFQT5GIgAbIQFBDUEAIAAbIQULIAMgATYCACAFIQQLIAQPC0F+C40CAQN/IAFByABqIQYDQCADIAIiAWsiAkECSARAQX8PCyABLQABIQUCQAJAAkACQAJAAkACQAJ/IAEsAAAiB0UEQCAFIAZqLQAADAELIAcgBcAQLAsiBUH/AXEODgMDBQUFBQABAwUFBQICBQsgAkECRg0FIAFBA2ohAgwGCyACQQRJDQQgAUEEaiECDAULIAFBAmohAiAAIAVHDQQgAyACa0ECSARAQWUPCyAEIAI2AgAgAS0AAyEAAn8gASwAAiIBRQRAIAAgBmotAAAMAQsgASAAwBAsC0H/AXEiAEEeS0EBIAB0QYCcwIEEcUVyDQFBGw8LIAQgATYCAAtBAA8LIAFBAmohAgwBCwtBfguWAQECfyACQQs2AgBBASEDAkAgASAAa0EGRw0AIAAtAAENACAALQAAIgFB+ABGBH9BAAUgAUHYAEcNAUEBCyEBIAAtAAMNACAALQACIgRB7QBHBEAgBEHNAEcNAUEBIQELIAAtAAUNACAALQAEIgBB7ABHBEAgAEHMAEcNAUEADwtBACEDIAENACACQQw2AgBBASEDCyADC4ADAQZ/AkAgAiABayIFQQJIDQACQAJAAkACQAJAAkACQAJAAn8gAS0AASIGRQRAIAAgAS0AACIEai0ASAwBCyAGwCABLAAAIgQQLAtB/wFxIghBFWsOCgMCBwIHBwcHAQMACyAIQQZrDgUEAwYCAgYLIARBA3ZBHHEgBkGQiwhqLQAAQQV0ckGg/gdqKAIAIAR2QQFxRQ0FCyAAQcgAaiEJAkACQANAIAIgASIAQQJqIgFrIgVBAkgNCCAALQACIQQCQAJAAkACfyAALQADIgZFBEAgBCAJai0AAAwBCyAGwCAEwBAsC0H/AXEiCEESaw4MBQoKCgMKAwMDAwoBAAsgCEEGaw4CAQMJCyAEQQN2QRxxIAZBkI0Iai0AAEEFdHJBoP4HaigCACAEdkEBcQ0BDAgLCyAFQQJGDQUMBgsgBUEESQ0EDAULIABBBGohAUEcIQcMBAtBFiEHDAMLIAVBBEkNAQwCCyAFQQJHDQELQX4PCyADIAE2AgAgBw8LQX8LrQUBB38jAEEQayIIJABBfyEJAkAgAiABayIGQQJIDQACQAJAAkACQAJAAkACQAJ/IAEtAAEiB0UEQCAAIAEtAAAiBWotAEgMAQsgB8AgASwAACIFECwLQf8BcSIEQQVrDgMFAQIACwJAIARBFmsOAwMFAwALIARBHUcNBCAFQQN2QRxxIAdBkIsIai0AAEEFdHJBoP4HaigCACAFdkEBcQ0CDAQLIAZBAkcNAwwCCyAGQQRPDQIMAQsgAEHIAGohBiABIQQCQAJAAkACQAJAA0AgAiAEIgBBAmoiBGsiB0ECSA0JIAAtAAIhBQJAAkACfyAALQADIgpFBEAgBSAGai0AAAwBCyAKwCAFwBAsC0H/AXFBBmsOGAEDBwQEBwcHBwUHBwcHBwQCBwICAgIHAAcLIAVBA3ZBHHEgCkGQjQhqLQAAQQV0ckGg/gdqKAIAIAV2QQFxDQEMBgsLIAdBAkYNBQwECyAHQQRJDQQMAwsgASAEIAhBDGoQ9wlFDQIgAEEEaiEAA0AgAiAAIgFrIgRBAkgNByABLQAAIQACQAJAAkACQAJAAn8gASwAASIFRQRAIAAgBmotAAAMAQsgBSAAwBAsC0H/AXEOEAICBAQEBAABAgQEBAQEBAMECyAEQQJGDQggAUEDaiEADAQLIARBBEkNByABQQRqIQAMAwsgAyABNgIADAgLIAIgAUECaiIAa0ECSA0IIAEtAAMNASAALQAAQT5HDQEgAyABQQRqNgIADAMLIAFBAmohAAwACwALIAEgBCAIQQxqEPcJRQ0BIAIgAEEEaiIEa0ECSA0FIAAtAAUNASAALQAEQT5HDQEgAyAAQQZqNgIACyAIKAIMIQkMBAsgAyAENgIADAILQX4hCQwCCyADIAE2AgALQQAhCQsgCEEQaiQAIAkLrQIBBX9BfyEEAkACQCACIAFrQQJIDQACQCABLQABDQAgAS0AAEEtRw0AIABByABqIQggAUECaiEAA0AgAiAAIgFrIgZBAkgNAiABLQAAIQcCQAJAAkACQAJAAn8gASwAASIARQRAIAcgCGotAAAMAQsgACAHwBAsC0H/AXEiAA4JBgYDAwMDAAEGAgsgBkECRg0HIAFBA2ohAAwECyAGQQRJDQYgAUEEaiEADAMLIABBG0YNAQsgAUECaiEADAELIAIgAUECaiIAa0ECSA0CIAEtAAMNACAALQAAQS1HDQALIAIgAUEEaiIAa0ECSA0BIAEtAAUEQCAAIQEMAQsgAUEGaiAAIAEtAARBPkYiABshAUENQQAgABshBQsgAyABNgIAIAUhBAsgBA8LQX4LjQIBA38gAUHIAGohBgNAIAMgAiIBayICQQJIBEBBfw8LIAEtAAAhBQJAAkACQAJAAkACQAJAAn8gASwAASIHRQRAIAUgBmotAAAMAQsgByAFwBAsCyIFQf8BcQ4OAwMFBQUFAAEDBQUFAgIFCyACQQJGDQUgAUEDaiECDAYLIAJBBEkNBCABQQRqIQIMBQsgAUECaiECIAAgBUcNBCADIAJrQQJIBEBBZQ8LIAQgAjYCACABLQACIQACfyABLAADIgFFBEAgACAGai0AAAwBCyABIADAECwLQf8BcSIAQR5LQQEgAHRBgJzAgQRxRXINAUEbDwsgBCABNgIAC0EADwsgAUECaiECDAELC0F+CwQAQQALgQEBAn8gAkELNgIAQQEhAwJAIAEgAGtBA0cNACAALQAAIgFB+ABGBH9BAAUgAUHYAEcNAUEBCyEBIAAtAAEiBEHtAEcEQCAEQc0ARw0BQQEhAQsgAC0AAiIAQewARwRAIABBzABHDQFBAA8LQQAhAyABDQAgAkEMNgIAQQEhAwsgAwvkAwEFf0EBIQQCQCACIAFrIgVBAEwNAAJAAkACQAJAAkACQAJAAkAgAEHIAGoiCCABLQAAai0AACIHQQVrDhQCAwQGAQEGBgYGBgYGBgYGAQUGBQALIAdBHkcNBQtBFiEGDAQLIAVBAUYNBCAAIAEgACgC4AIRAAANAyAAIAEgACgC1AIRAABFDQNBAiEEDAILIAVBA0kNAyAAIAEgACgC5AIRAAANAiAAIAEgACgC2AIRAABFDQJBAyEEDAELIAVBBEkNAiAAIAEgACgC6AIRAAANASAAIAEgACgC3AIRAABFDQFBBCEECyABIARqIQEDQCACIAFrIgVBAEwNA0EBIQQCQAJAAkAgCCABLQAAai0AACIHQRJrDgoCBAQEAQQBAQEBAAsCQAJAAkAgB0EFaw4DAAECBgsgBUEBRg0GIAAgASAAKALgAhEAAA0FIAAgASAAKALIAhEAAEUNBUECIQQMAgsgBUEDSQ0FIAAgASAAKALkAhEAAA0EIAAgASAAKALMAhEAAEUNBEEDIQQMAQsgBUEESQ0EIAAgASAAKALoAhEAAA0DIAAgASAAKALQAhEAAEUNA0EEIQQLIAEgBGohAQwBCwsgAUEBaiEBQRwhBgsgAyABNgIAIAYPC0F+DwtBfwu0BgEHfyMAQRBrIgckAEEBIQVBfyEIAkAgAiABayIEQQBMDQACQAJAAkACQAJAAkACQAJAIABByABqIgogAS0AAGotAAAiBkEFaw4DAQIDAAsCQCAGQRZrDgMEBgQACwwFCyAEQQFGDQMgACABIAAoAuACEQAADQQgACABIAAoAtQCEQAARQ0EQQIhBQwCCyAEQQNJDQIgACABIAAoAuQCEQAADQMgACABIAAoAtgCEQAARQ0DQQMhBQwBCyAEQQRJDQEgACABIAAoAugCEQAADQIgACABIAAoAtwCEQAARQ0CQQQhBQsgASAFaiEEA0AgAiAEayIJQQBMDQRBASEFIAQhBgJAAkACQAJAAkACQAJAAkACQAJAIAogBC0AAGotAABBBWsOGQABAgcDAwcHBwcEBwcHBwcDCQcJCQkJBwUHCyAJQQFGDQogACAEIAAoAuACEQAADQQgACAEIAAoAsgCEQAARQ0EQQIhBQwICyAJQQNJDQkgACAEIAAoAuQCEQAADQMgACAEIAAoAswCEQAARQ0DQQMhBQwHCyAJQQRJDQggACAEIAAoAugCEQAADQIgACAEIAAoAtACEQAARQ0CQQQhBQwGCyABIAQgB0EMahD9CUUNASAEQQFqIQUDQCACIAUiAWsiBkEATA0LAkACQAJAAkACQCAKIAEtAABqLQAADhAKCgQEBAABAgoEBAQEBAQDBAsgBkEBRg0MIAAgASAAKALgAhEAAA0JIAFBAmohBQwECyAGQQNJDQsgACABIAAoAuQCEQAADQggAUEDaiEFDAMLIAZBBEkNCiAAIAEgACgC6AIRAAANByABQQRqIQUMAgsgAiABQQFqIgVrQQBMDQwgBS0AAEE+Rw0BIAMgAUECajYCACAHKAIMIQgMDAsgAUEBaiEFDAALAAsgASAEIAdBDGoQ/QkNAQsgAyAENgIADAcLIAIgBEEBaiIGa0EATA0HIAQtAAFBPkcNACADIARBAmo2AgAgBygCDCEIDAcLIAMgBjYCAAwFCyADIAE2AgAMBAsgBCAFaiEEDAALAAtBfiEIDAILIAMgATYCAAtBACEICyAHQRBqJAAgCAu0AgEEfwJAIAIgAWtBAEwNAAJAAkACQCABLQAAQS1HDQAgAEHIAGohBiABQQFqIQQDQCACIAQiAWsiBEEATA0EAkACQAJAAkACQAJAIAYgAS0AAGotAAAiBw4JBwcEBAQAAQIHAwsgBEEBRg0IIAAgASAAKALgAhEAAA0GIAFBAmohBAwFCyAEQQNJDQcgACABIAAoAuQCEQAADQUgAUEDaiEEDAQLIARBBEkNBiAAIAEgACgC6AIRAAANBCABQQRqIQQMAwsgB0EbRg0BCyABQQFqIQQMAQsgAiABQQFqIgRrQQBMDQQgBC0AAEEtRw0AC0F/IQUgAiABQQJqIgBrQQBMDQEgAUEDaiAAIAEtAAJBPkYiABshAUENQQAgABshBQsgAyABNgIACyAFDwtBfg8LQX8LjQIBA38gAUHIAGohBgJAAkADQCADIAJrIgVBAEwEQEF/DwsCQAJAAkACQAJAAkAgBiACLQAAai0AACIHDg4FBQQEBAABAgUEBAQDAwQLIAVBAUYNByABIAIgASgC4AIRAAANBCACQQJqIQIMBQsgBUEDSQ0GIAEgAiABKALkAhEAAA0DIAJBA2ohAgwECyAFQQRJDQUgASACIAEoAugCEQAADQIgAkEEaiECDAMLIAJBAWohAiAAIAdHDQIgAyACa0EATARAQWUPCyAEIAI2AgAgBiACLQAAai0AACIAQR5LQQEgAHRBgJzAgQRxRXINA0EbDwsgAkEBaiECDAELCyAEIAI2AgALQQAPC0F+CxwAIAAgASACIAMQ4wYiAARAIABBFzoAggELIAALHABB3wAgACABIAIgAyAEIAUgBiAHIAggCRCFCgsRACAAIAEgAkHeAEHdABDfCgvEBAECfyMAQRBrIgskACALQQA2AgggC0EANgIEIAtBADYCACALIAMgAigCQCIMQQVsaiIDNgIMAn8CQAJAIAIgAyAEIAxBAXRrIgwgC0EEaiALIAtBCGogC0EMahDhBkUNACALKAIEIgRFDQACQAJAIAoCfwJAAkACQCACIAQgCygCACIDQaSeCCACKAIYEQYARQRAIAENAQwICyAGBEAgBiALKAIINgIACyALKAIMIQMgBwRAIAcgAzYCAAsgAiADIAwgC0EEaiALIAtBCGogC0EMahDhBkUNBiALKAIEIgRFDQEgCygCACEDCyACIAQgA0GsngggAigCGBEGAARAIAIgCygCCCIEIAwQ5QJBX3FBwQBrQRlLDQcgCARAIAggBDYCAAsgCygCDCEDIAkEQCAJIAIgBCADIAIoAkBrIAARBAA2AgALIAIgAyAMIAtBBGogCyALQQhqIAtBDGoQ4QZFDQYgCygCBCIERQ0FIAsoAgAhAwsgASACIAQgA0G1ngggAigCGBEGAEVyDQYgAiALKAIIIgQgCygCDCIDIAIoAkBrQcCeCCACKAIYEQYARQ0BIApFDQNBAQwCCyABDQQMAwsgAiAEIAMgAigCQGtBxJ4IIAIoAhgRBgBFDQQgCkUNAUEACzYCAAsDQCACIAMgDBDlAkEJayIAQRdLQQEgAHRBk4CABHFFckUEQCADIAIoAkBqIQMMAQsLIAwgAyIERw0CC0EBDAILIAsoAgwhBAsgBSAENgIAQQALIAtBEGokAAscAEHcACAAIAEgAiADIAQgBSAGIAcgCCAJEIUKC/0BAQF/IABByABqIQQDQCACIAFrQQBKBEACQAJAAkACQAJAAkAgBCABLQAAai0AAEEFaw4GAAECBQQDBQsgAyADKAIEQQFqNgIEIAFBAmohAQwGCyADIAMoAgRBAWo2AgQgAUEDaiEBDAULIAMgAygCBEEBajYCBCABQQRqIQEMBAsgA0EANgIEIAMgAygCAEEBajYCACABQQFqIQEMAwsgAyADKAIAQQFqNgIAAn8gAiABQQFqIgBrQQBMBEAgAAwBCyABQQJqIAAgBCABLQABai0AAEEKRhsLIQEgA0EANgIEDAILIAMgAygCBEEBajYCBCABQQFqIQEMAQsLC3kBA38CQANAAkAgAS0AACEDIAAtAAAhAkEBIQQgAUEBaiEBIABBAWohAEEBIAJBIGsgAiACQeEAa0H/AXFBGkkbQf8BcSICRUEBdCACIANBIGsgAyADQeEAa0H/AXFBGkkbQf8BcUcbQQFrDgIAAgELC0EAIQQLIAQLQQEBfwJAIABFBEBBBiEBDAELA0AgAUEGRgRAQX8PCyAAIAFBAnRBgJIIaigCABCICg0BIAFBAWohAQwACwALIAELZQECfwJ/QQAgACgCECgCCCIBRQ0AGiABKAJYIgIEQCACEPQKQQAgACgCECgCCCIBRQ0BGgsgASgCXBAYIAAoAhAoAggLEBggACgCECICQQA2AgggAigCDBC+ASAAQQBBrCsQ7AcL9wEBBH8gASAAEEYiA2oiAiADQQF0QYAIIAMbIgEgASACSRshAiAAECQhBAJAIAAtAA9B/wFGBEACfyAAKAIAIQQjAEEgayIFJAACQCADIgFBf0cEQAJAIAJFBEAgBBAYQQAhAwwBCyAEIAIQOiIDRQ0CIAEgAk8NACABIANqQQAgAiABaxAzGgsgBUEgaiQAIAMMAgtB38kDQZiFAUHNAEHvugEQAAALIAUgAjYCEEG4/AgoAgBB0/MDIAVBEGoQHhoQKAALIQEMAQsgAkEBEBkiASAAIAQQHxogACAENgIECyAAQf8BOgAPIAAgAjYCCCAAIAE2AgAL0QMCAn8CfCMAQTBrIgMkACADQQA6AB8CQCAAIAEQJiIARQ0AIAMgA0EfajYCGCADIANBIGo2AhQgAyADQShqNgIQAkACQCAAQYzIASADQRBqEE9BAkgNACADKwMoIgVEAAAAAAAAAABkRQ0AIAMrAyAiBkQAAAAAAAAAAGRFDQAgAgJ/IAVEAAAAAAAAUkCiIgVEAAAAAAAA4D9EAAAAAAAA4L8gBUQAAAAAAAAAAGYboCIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAu3OQMAAn8gBkQAAAAAAABSQKIiBUQAAAAAAADgP0QAAAAAAADgvyAFRAAAAAAAAAAAZhugIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4C7chBQwBCyADQQA6AB8gAyADQShqNgIAIAMgA0EfajYCBCAAQZDIASADEE9BAEwNASADKwMoIgVEAAAAAAAAAABkRQ0BIAICfyAFRAAAAAAAAFJAoiIFRAAAAAAAAOA/RAAAAAAAAOC/IAVEAAAAAAAAAABmG6AiBZlEAAAAAAAA4EFjBEAgBaoMAQtBgICAgHgLtyIFOQMACyACIAU5AwggAy0AH0EhRiEECyADQTBqJAAgBAtLACAAQQEgAUEAEOUDIgFFBEBB5wcPCyAAIAEoAhAiASgCBDYCsAEgACABKAIMNgKkASAAIAEoAgA2AqgBIAAgASgCEDYCrAFBrAIL8wICBH8GfCMAQSBrIgMkACACKAI0IgQEQCABKAIQIgUrABAhByACKwAQIQggAisAICEJIAQgAisAKCACKwAYoEQAAAAAAADgP6IgBSsAGKA5A0AgBCAHIAkgCKBEAAAAAAAA4D+ioDkDOCAAQQogBBCXAyAAIAEQgwUaCyABKAIQIgQrAxghByAEKwMQIQhBACEEA0AgAigCMCAESgRAIAQEQCACKAI4IARBAnRqIgYoAgAhBQJ8IAItAEAEQCADIAUpAxA3AwAgAyAFKQMYNwMIIAYoAgArAyghCSADKwMAIgohCyADKwMIDAELIAMgBSkDIDcDECADIAUpAyg3AxggBigCACsDECELIAMrAxAhCiADKwMYIgkLIQwgAyAHIAmgOQMYIAMgCCAKoDkDECADIAcgDKA5AwggAyAIIAugOQMAIAAgA0ECEDkLIAAgASACKAI4IARBAnRqKAIAEI4KIARBAWohBAwBCwsgA0EgaiQAC1MBAn8CQCAAKAI8IgJFDQAgAiABEE1FDQAgAA8LQQAhAgNAIAAoAjAgAkwEQEEADwsgAkECdCACQQFqIQIgACgCOGooAgAgARCPCiIDRQ0ACyADCzkBAX8gAEGQ4gooAgBB5ooFEJEBIgItAAAEfyACBSAAQYziCigCAEHmigUQkQEiACABIAAtAAAbCwvrBAEGfwJAIABBrOIKKAIAQeaKBRCRASICLQAARQRADAELIAIQyAMiByECA0AgAigCACIGRQ0BIAZB/rQBEE0EQCACQQRqIQIgBEEBciEEDAELIAIhAyAGQam2ARBNBEADQCADIAMoAgQiBTYCACADQQRqIQMgBQ0ACyAEQQRyIQQMAQsgBkHuMhBNBEADQCADIAMoAgQiBTYCACADQQRqIQMgBQ0ACyAEQQhyIQQMAQsgBkGQMxBNBEAgAkEEaiECIARBIHIhBAwBCyAGQen3ABBNBEADQCADIAMoAgQiBTYCACADQQRqIQMgBQ0ACyAEQQNyIQQMAQsCQCAGQfyzARBNRQ0AIAAoAhAoAggoAggiBUUNACAFKAIIQQRHDQAgBSsDEBDCB5lEAAAAAAAA4D9jRQ0AIAUpAxhCAFINACAFKQMgQgBSDQADQCADIAMoAgQiBTYCACADQQRqIQMgBQ0ACyAEQcAAciEEDAELAkAgBkGUtgEQTUUNACAAKAIQKAIIKAIIIgVFDQAgBSgCCEECSw0AA0AgAyADKAIEIgU2AgAgA0EEaiEDIAUNAAsgBEGABHIhBAwBCyACQQRqIQIMAAsACyABIAAoAhAoAggoAggiAAR/IARBgOAfcUUgACgAKCIAQYDgH3FFckUEQEHwoANBwcIBQbwDQfg8EAAACyAAIARyIgJBgOAfcSAAQQFxIARBAXFyciACQQJxciACQQRxciACQQhxciACQRBxciACQSBxciACQcAAcXIgAkGAAXFyIAJBgAJxciACQYAEcXIgAkGACHFyIAJBgBBxcgUgBAs2AgAgBwumAQIBfwR8IwBBIGsiAiQAIAEoAhAiASsAECEDIAErA2AhBSACIAErA1BEAAAAAAAA6D+iRAAAAAAAAOA/oiIEIAErABigIgY5AxggAiAGOQMIIAIgAyAFRHxhMlUwKuU/oiIDoCIFOQMAIAIgBSADIAOgoTkDECAAIAJBAhA5IAIgAisDCCAEIASgoSIEOQMYIAIgBDkDCCAAIAJBAhA5IAJBIGokAAs3AQN/A0AgAUEDRwRAIAAgAUECdGoiAigCACIDBEAgAxCbARogAkEANgIACyABQQFqIQEMAQsLCwwAIABBOhDPAUEARwtgACAAQQA2AgAgAiAAEJEKIgAEQCABIAAQ5gELAkBB7OIKKAIAIgBFDQAgAiAAEEEiAEUNACAALQAARQ0AIAEgAkHs4gooAgBEAAAAAAAA8D9EAAAAAAAAAAAQSxCIAgsLBABBAAswAQF/IwBBEGsiAiQAIAAQICEAIAIgATYCBCACIAA2AgBBnMAEIAIQKyACQRBqJAALaAECfyAAQQIgASABQQNGGyIDIAIQnQoiAUUEQA8LIANBAnQiAyAAKAJMaigCLCIEIAFBAiAEKAIAEQQAGiAAKAJMIANqKAI4IgMgAUECIAMoAgARBAAaIAAgASgCGEEAEI4BGiABEBgLfAAgAEIANwMAIABCADcDCAJAAkACQAJAIAJBAWsOAwIBAwALIAAgASkDADcDACAAIAEpAwg3AwgPCyAAIAErAwA5AwAgACABKwMImjkDCA8LIAAgASsDADkDCCAAIAErAwiaOQMADwsgACABKwMAOQMIIAAgASsDCDkDAAuxAgIJfwJ8IwBBEGsiBSQAIAAgAjoAQSABKwMIIQwgACABKwMAIg05AxAgACAMOQMoIAAgDCAAKwMIoTkDGCAAIA0gACsDAKA5AyAgACgCMCIEQQAgBEEAShshB0EOQQ8gBEEBayIGGyEIQQ1BDyAGGyEJA0AgAyAHRkUEQAJ/QQAgAkUNABogAC0AQARAIAkgA0UNARpBB0EFIAMgBkYbDAELIAggA0UNABpBC0EKIAMgBkYbCyEEIANBAnQiCiAAKAI4aigCACAFIAEpAwg3AwggBSABKQMANwMAIAUgAiAEcRCaCiAAKAI4IApqKAIAIQQCQCAALQBABEAgASABKwMAIAQrAwCgOQMADAELIAEgASsDCCAEKwMIoTkDCAsgA0EBaiEDDAELCyAFQRBqJAAL8wICBXwDfyMAQSBrIggkACABQQhqKwMAIQUgACsDACEEIAErAwAhBiAAIAEpAwA3AwAgACsDCCEDIAAgASkDCDcDCCAFIAOhIQMgBiAEoSEEAkAgAg0AIAAoAjQiAUUNACABIAQgASsDKKA5AyggASADIAErAzCgOQMwCwJAIAAoAjAiCUUNACAEIAMgAC0AQBsgCbejIQdBACEBA0AgASAJTg0BAn8gByABuKIiA5lEAAAAAAAA4EFjBEAgA6oMAQtBgICAgHgLIQkCfyAHIAFBAWoiCriiIgOZRAAAAAAAAOBBYwRAIAOqDAELQYCAgIB4CyAJayEJIAAoAjggAUECdGooAgAhAQJ8IAAtAEAEQCAFIQQgASsDACAJt6AMAQsgASsDCCAJt6AhBCAGCyEDIAggBDkDGCAIIAgpAxg3AwggCCADOQMQIAggCCkDEDcDACABIAggAhCbCiAAKAIwIQkgCiEBDAALAAsgCEEgaiQAC4wDAgR8An8jAEEgayIHJAACQCACKAI0IggEQCAIKwMYIgREAAAAAAAAAABkIAgrAyAiA0QAAAAAAAAAAGRyRQ0BIAFBxeoAECYiAQRAIAcgB0EYajYCBCAHIAdBCGo2AgAgAUGijAEgBxBPIgFBAEoEQCAHKwMIRAAAAAAAAFJAoiIFIAWgIgUgBKAhBCABQQFHBEAgBysDGEQAAAAAAABSQKIiBSAFoCADoCEDDAQLIAUgA6AhAwwDCyADRAAAAAAAACBAoCEDIAREAAAAAAAAMECgIQQMAgsgA0QAAAAAAAAgQKAhAyAERAAAAAAAADBAoCEEDAELQQAhCANAIAggAigCME5FBEAgB0EIaiABIAIoAjggCEECdGooAgAQnAogBysDECEFIAcrAwghBgJ8IAItAEAEQCAGIASgIQQgAyAFECIMAQsgBCAGECIhBCAFIAOgCyEDIAhBAWohCAwBCwsLIAAgAzkDCCAAIAQ5AwAgAiAAKQMANwMAIAIgACkDCDcDCCAHQSBqJAALRwEBfyMAQSBrIgMkACAAKAJMQQIgASABQQNGG0ECdGooAjgiAAR/IAMgAjcDECAAIANBBCAAKAIAEQQABUEACyADQSBqJAALQAEBfwJAA0ACQAJAIAAoAgAQsAIiAUEBag4PAwEBAQEBAQEBAQICAgICAAsgAUEgRg0BCwsgASAAKAIAEIgMCwunAgIBfwF8AkACQAJAAkACQAJAAkAgAS0AACICQe0Aaw4EBQYGAQALIAJBIkYNASACQeMARg0DIAJB6QBHDQUgAS0AAUHuAEcNBSABLQACDQUgAEQAAAAAAABSQKIQMQ8LAkAgAS0AAUH4AEcNACABLQACDQAgAEQAAAAAAABSQKJEAAAAAAAAWECjEDEPCwJAIAEtAAFB4wBHDQAgAS0AAg0AIABEAAAAAAAAUkCiRAAAAAAAABhAoxAxDwsgAS0AAUH0AEcNBCABLQACRQ0BDAQLIAEtAAENAwsgABAxDwsgAS0AAUHtAEcNASABLQACDQEgAER8XElisVg8QKIQMQ8LIAEtAAFB7QBHDQAgAS0AAg0AIABEL30HtVqtBkCiEDEhAwsgAwtFAAJAIAAQJwRAIAAQJEEPRg0BCyAAQQAQ7QYLAkAgABAnBEAgAEEAOgAPDAELIABBADYCBAsgABAnBH8gAAUgACgCAAsLmwIBA38jAEEgayICJAACQAJAIAAEQCAAKAIIIgFFDQEgAS0AAEUNAgJ/AkAgACgCFCIDRQRAIAEQiwUiAUUEQCACIAAoAgg2AgBB4bwEIAIQK0EADAMLIAAgAUHAyAEQrgQiAzYCFCADRQRAQeCPCygCABB4IQAgAiABNgIUIAIgADYCEEHWggQgAkEQahArQQAMAwtBxOUKKAIAIgFBMkgNASAAQQE6ABFBAQwCCyADEOoDQQEgACgCFA0BGkHOjQFB0cYBQdAFQbIuEAAAC0HE5QogAUEBajYCAEEBCyACQSBqJAAPC0H/K0HRxgFBuwVBsi4QAAALQYOgAUHRxgFBvAVBsi4QAAALQcjPAUHRxgFBvQVBsi4QAAALVwECfwJAIAAEQCAALQAARQ0BQcDlCigCACIBBH8gASAAQYAEIAEoAgARBAAFQQALDwtB16ABQdHGAUGsBUH2qwEQAAALQczPAUHRxgFBrQVB9qsBEAAACxUBAX8Q0AMhAEEPQbDlCigCACAAGwuZAgECfyABKAJEIQEDQCABLQAAIgIEQAJAAkAgAUHv3wFBBRCBAkUNACABQbPYAUEHEIECRQ0AIAFB4uIBQQUQgQJFDQAgAUGw1wFBCRCBAg0BCwJ/AkADQAJAAkACQCACQf8BcSICQQprDgQEAQECAAsgAkUNAwsgAS0AASECIAFBAWohAQwBCwtBASABLQABQQpHDQEaIAFBAmohAQwECyACQQBHCyECIAEgAmohAQwCCwJ/AkADQAJAAkACQCACQf8BcSIDQQprDgQEAQECAAsgA0UNAwsgACACwBBnIAEtAAEhAiABQQFqIQEMAQsLQQJBASABLQABQQpGGwwBCyADQQBHCyECIABBChBnIAEgAmohAQwBCwsLyAICAn8BfCMAQYACayIDJAAgAisDECEFIAMgACkDCDcDeCADIAApAwA3A3AgAyABKQMINwNoIAMgASkDADcDYCADQeABaiADQfAAaiADQeAAahDSAwJAIAUgAysD4AFmRQ0AIAMgACkDCDcDWCADIAApAwA3A1AgAyABKQMINwNIIAMgASkDADcDQCADQcABaiADQdAAaiADQUBrENIDIAMrA9ABIAIrAwBmRQ0AIAIrAxggAyAAKQMINwM4IAMgACkDADcDMCADIAEpAwg3AyggAyABKQMANwMgIANBoAFqIANBMGogA0EgahDSAyADKwOoAWZFDQAgAyAAKQMINwMYIAMgACkDADcDECADIAEpAwg3AwggAyABKQMANwMAIANBgAFqIANBEGogAxDSAyADKwOYASACKwMIZiEECyADQYACaiQAIAQLagICfAF/AkAgASsDECAAKwA4IgIgACsDGEQAAAAAAADgP6IiA6FmRQ0AIAErAwAgAyACoGVFDQAgASsDGCAAKwBAIgIgACsDIEQAAAAAAADgP6IiA6FmRQ0AIAErAwggAyACoGUhBAsgBAsoAQF/A38gAAR/IAAoAgQQpwogAWpBAWohASAAKAIAIQAMAQUgAQsLC/oCAQZ/IwBBEGsiBiQAAkACQAJAIAAoAgAiAy0AAEEjRgRAIAMtAAEiAkHf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AkACQAJAIAEoAgBBAmsODQAAAQECAwQEBgcIBQUJCyABKAIMEBgMCAsgASgCDBAYDAcLIAEoAgwQGAwGCyABKAIoEBgMBQsgASgCCBAYDAQLQQAhAgJAAkACQAJAIAEoAghBAWsOAgABAwsDQCABKAI0IQMgAiABKAIwTg0CIAMgAkEEdGooAggQGCACQQFqIQIMAAsACwNAIAEoAkQhAyACIAEoAkBODQEgAyACQQR0aigCCBAYIAJBAWohAgwACwALIAMQGAsMAwsgASgCEBAYDAILIAEoAggQGAwBCyABKAIoEBgLIARBAWohBAwBCwsgBRAYIAAQGAsJACAAQQA2AgALSQEBfyMAQRBrIgMkAAJAAkAgAkEeSw0AIAEtAHhBAXENACABQQE6AHgMAQsgAhD9CiEBCyADQRBqJAAgACACNgIEIAAgATYCAAtAAQF/IwBBEGsiASQAIAAQoQMaIAFB/////wM2AgwgAUH/////BzYCCCABQQxqIAFBCGoQ6AsoAgAgAUEQaiQACwsAIABBADYCACAACzcBAX8jAEEQayIDJAAgAyABEO0CNgIMIAMgAhDtAjYCCCAAIANBDGogA0EIahCwBSADQRBqJAALTgEBfyMAQRBrIgMkACADIAE2AgggAyAANgIMIAMgAjYCBEEAIQEgA0EEaiIAIANBDGoQrQVFBEAgACADQQhqEK0FIQELIANBEGokACABC98BAQN/IAAQJCAAEEZPBEAgABBGIgJBAWoiAyACQQF0QYAIIAIbIgQgAyAESxshAyAAECQhBAJAIAAtAA9B/wFGBEAgACgCACACIANBARCcBSECDAELIANBARBKIgIgACAEEB8aIAAgBDYCBAsgAEH/AToADyAAIAM2AgggACACNgIACyAAECQhAgJAIAAQJwRAIAAgAmogAToAACAAIAAtAA9BAWo6AA8gABAkQRBJDQFBvMADQcmEAUGdAkGUugEQAAALIAAoAgAgAmogAToAACAAIAAoAgRBAWo2AgQLCzQBAX8jAEEQayIDJAAgABAjGiAAIAIQowMgA0EAOgAPIAEgAmogA0EPahDTASADQRBqJAALHAAgAEH/////A0sEQBCTAQALIABBAnRBBBDdCwsJACAAEJIHEBgLngcBCn8jAEGgAWsiAiQAAkAgAEUNAEEBQRQQSiIDQdAAIAEg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ELILCyACIAEgASACKAIAEN4LIAZBDGogAyAAKAIAENYLIAFqNgIAIAZBEGokAAtCACABIAIgAyAEQQQQpQIhASADLQAAQQRxRQRAIAAgAUHQD2ogAUHsDmogASABQeQASRsgAUHFAEgbQewOazYCAAsLQAAgAiADIABBCGogACgCCCgCBBECACIAIABBoAJqIAUgBEEAEKcFIABrIgBBnwJMBEAgASAAQQxtQQxvNgIACwtAACACIAMgAEEIaiAAKAIIKAIAEQIAIgAgAEGoAWogBSAEQQAQpwUgAGsiAEGnAUwEQCABIABBDG1BB282AgALC0IAIAEgAiADIARBBBCmAiEBIAMtAABBBHFFBEAgACABQdAPaiABQewOaiABIAFB5ABJGyABQcUASBtB7A5rNgIACwtAACACIAMgAEEIaiAAKAIIKAIEEQIAIgAgAEGgAmogBSAEQQAQqQUgAGsiAEGfAkwEQCABIABBDG1BDG82AgALC0AAIAIgAyAAQQhqIAAoAggoAgARAgAiACAAQagBaiAFIARBABCpBSAAayIAQacBTARAIAEgAEEMbUEHbzYCAAsLBABBAgveAQEFfyMAQRBrIgckACMAQRBrIgMkACAAIQQCQCABQff///8DTQRAAkAgARCZBQRAIAQgARDUAQwBCyADQQhqIAEQ1gNBAWoQ1QMgAygCDBogBCADKAIIIgAQ/AEgBCADKAIMEPsBIAQgARC/AQsjAEEQayIFJAAgBSACNgIMIAAhAiABIQYDQCAGBEAgAiAFKAIMNgIAIAZBAWshBiACQQRqIQIMAQsLIAVBEGokACADQQA2AgQgACABQQJ0aiADQQRqEN4BIANBEGokAAwBCxDMAQALIAdBEGokACAEC8AFAQ5/IwBBEGsiCyQAIAYQzQEhCiALQQRqIAYQ3QMiDhDKASAFIAM2AgACQAJAIAAiBy0AACIGQStrDgMAAQABCyAKIAbAENIBIQYgBSAFKAIAIghBBGo2AgAgCCAGNgIAIABBAWohBwsCQAJAIAIgByIGa0EBTA0AIAYtAABBMEcNACAGLQABQSByQfgARw0AIApBMBDSASEIIAUgBSgCACIHQQRqNgIAIAcgCDYCACAKIAYsAAEQ0gEhCCAFIAUoAgAiB0EEajYCACAHIAg2AgAgBkECaiIHIQYDQCACIAZNDQIg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QX8LCAAgABCoBxoLRAECfwJAIAAoAgAgASgCACAAKAIEIgAgASgCBCICIAAgAkkiAxsQ6gEiAQ0AQQEhASAAIAJLDQBBf0EAIAMbIQELIAELvg8CBX8PfiMAQdACayIFJAAgBEL///////8/gyEKIAJC////////P4MhCyACIASFQoCAgICAgICAgH+DIQwgBEIwiKdB//8BcSEIAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgCEH//wFrQYGAfksNAQsgAVAgAkL///////////8AgyINQoCAgICAgMD//wBUIA1CgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhDAwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEMIAMhAQwCCyABIA1CgICAgICAwP//AIWEUARAIAMgAkKAgICAgIDA//8AhYRQBEBCACEBQoCAgICAgOD//wAhDAwDCyAMQoCAgICAgMD//wCEIQxCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEBCACEBDAILIAEgDYRQBEBCgICAgICA4P//ACAMIAIgA4RQGyEMQgAhAQwCCyACIAOEUARAIAxCgICAgICAwP//AIQhDEIAIQEMAgsgDUL///////8/WARAIAVBwAJqIAEgCyABIAsgC1AiBht5IAZBBnStfKciBkEPaxC2AUEQIAZrIQYgBSkDyAIhCyAFKQPAAiEBCyACQv///////z9WDQAgBUGwAmogAyAKIAMgCiAKUCIHG3kgB0EGdK18pyIHQQ9rELYBIAYgB2pBEGshBiAFKQO4AiEKIAUpA7ACIQMLIAVBoAJqIApCgICAgICAwACEIhJCD4YgA0IxiIQiAkIAQoCAgICw5ryC9QAgAn0iBEIAEKABIAVBkAJqQgAgBSkDqAJ9QgAgBEIAEKABIAVBgAJqIAUpA5gCQgGGIAUpA5ACQj+IhCIEQgAgAkIAEKABIAVB8AFqIARCAEIAIAUpA4gCfUIAEKABIAVB4AFqIAUpA/gBQgGGIAUpA/ABQj+IhCIEQgAgAkIAEKABIAVB0AFqIARCAEIAIAUpA+gBfUIAEKABIAVBwAFqIAUpA9gBQgGGIAUpA9ABQj+IhCIEQgAgAkIAEKABIAVBsAFqIARCAEIAIAUpA8gBfUIAEKABIAVBoAFqIAJCACAFKQO4AUIBhiAFKQOwAUI/iIRCAX0iAkIAEKABIAVBkAFqIANCD4ZCACACQgAQoAEgBUHwAGogAkIAQgAgBSkDqAEgBSkDoAEiDSAFKQOYAXwiBCANVK18IARCAVatfH1CABCgASAFQYABakIBIAR9QgAgAkIAEKABIAYgCSAIa2ohBgJ/IAUpA3AiE0IBhiIOIAUpA4gBIg9CAYYgBSkDgAFCP4iEfCIQQufsAH0iFEIgiCICIAtCgICAgICAwACEIhVCAYYiFkIgiCIEfiIRIAFCAYYiDUIgiCIKIBAgFFatIA4gEFatIAUpA3hCAYYgE0I/iIQgD0I/iHx8fEIBfSITQiCIIhB+fCIOIBFUrSAOIA4gE0L/////D4MiEyABQj+IIhcgC0IBhoRC/////w+DIgt+fCIOVq18IAQgEH58IAQgE34iESALIBB+fCIPIBFUrUIghiAPQiCIhHwgDiAOIA9CIIZ8Ig5WrXwgDiAOIBRC/////w+DIhQgC34iESACIAp+fCIPIBFUrSAPIA8gEyANQv7///8PgyIRfnwiD1atfHwiDlatfCAOIAQgFH4iGCAQIBF+fCIEIAIgC358IgsgCiATfnwiEEIgiCALIBBWrSAEIBhUrSAEIAtWrXx8QiCGhHwiBCAOVK18IAQgDyACIBF+IgIgCiAUfnwiCkIgiCACIApWrUIghoR8IgIgD1StIAIgEEIghnwgAlStfHwiAiAEVK18IgRC/////////wBYBEAgFiAXhCEVIAVB0ABqIAIgBCADIBIQoAEgAUIxhiAFKQNYfSAFKQNQIgFCAFKtfSEKQgAgAX0hCyAGQf7/AGoMAQsgBUHgAGogBEI/hiACQgGIhCICIARCAYgiBCADIBIQoAEgAUIwhiAFKQNofSAFKQNgIg1CAFKtfSEKQgAgDX0hCyABIQ0gBkH//wBqCyIGQf//AU4EQCAMQoCAgICAgMD//wCEIQxCACEBDAELAn4gBkEASgRAIApCAYYgC0I/iIQhASAEQv///////z+DIAatQjCGhCEKIAtCAYYMAQsgBkGPf0wEQEIAIQEMAgsgBUFAayACIARBASAGaxCsAyAFQTBqIA0gFSAGQfAAahC2ASAFQSBqIAMgEiAFKQNAIgIgBSkDSCIKEKABIAUpAzggBSkDKEIBhiAFKQMgIgFCP4iEfSAFKQMwIgQgAUIBhiINVK19IQEgBCANfQshBCAFQRBqIAMgEkIDQgAQoAEgBSADIBJCBUIAEKABIAogAiACIAMgBCACQgGDIgR8IgNUIAEgAyAEVK18IgEgElYgASASURutfCICVq18IgQgAiACIARCgICAgICAwP//AFQgAyAFKQMQViABIAUpAxgiBFYgASAEURtxrXwiAlatfCIEIAIgBEKAgICAgIDA//8AVCADIAUpAwBWIAEgBSkDCCIDViABIANRG3GtfCIBIAJUrXwgDIQhDAsgACABNwMAIAAgDDcDCCAFQdACaiQAC8ABAgF/An5BfyEDAkAgAEIAUiABQv///////////wCDIgRCgICAgICAwP//AFYgBEKAgICAgIDA//8AURsNACACQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AUnENACAAIAQgBYSEUARAQQAPCyABIAKDQgBZBEAgASACUiABIAJTcQ0BIAAgASAChYRCAFIPCyAAQgBSIAEgAlUgASACURsNACAAIAEgAoWEQgBSIQMLIAMLnwMBBX9BECECAkBBECAAIABBEE0bIgMgA0EBa3FFBEAgAyEADAELA0AgAiIAQQF0IQIgACADSQ0ACwtBQCAAayABTQRAQeCPC0EwNgIAQQAPC0EQIAFBC2pBeHEgAUELSRsiAyAAakEMahBIIgJFBEBBAA8LIAJBCGshAQJAIABBAWsgAnFFBEAgASEADAELIAJBBGsiBSgCACIGQXhxIAAgAmpBAWtBACAAa3FBCGsiAiAAQQAgAiABa0EPTRtqIgAgAWsiAmshBCAGQQNxRQRAIAEoAgAhASAAIAQ2AgQgACABIAJqNgIADAELIAAgBCAAKAIEQQFxckECcjYCBCAAIARqIgQgBCgCBEEBcjYCBCAFIAIgBSgCAEEBcXJBAnI2AgAgASACaiIEIAQoAgRBAXI2AgQgASACELsFCwJAIAAoAgQiAUEDcUUNACABQXhxIgIgA0EQak0NACAAIAMgAUEBcXJBAnI2AgQgACADaiIBIAIgA2siA0EDcjYCBCAAIAJqIgIgAigCBEEBcjYCBCABIAMQuwULIABBCGoLEgAgAEUEQEEADwsgACABELQHC+UeAg9/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ACEHA0AgASENIAcgDkH/////B3NKDQIgByAOaiEOAkACQAJAAkAgASIHLQAAIgsEQANAAkACQCALQf8BcSIBRQRAIAchAQwBCyABQSVHDQEgByELA0AgCy0AAUElRwRAIAshAQwCCyAHQQFqIQcgCy0AAiALQQJqIgEhC0ElRg0ACwsgByANayIHIA5B/////wdzIhdKDQkgAARAIAAgDSAHEKkBCyAHDQcgCCABNgI8IAFBAWohB0F/IRACQCABLAABQTBrIgpBCUsNACABLQACQSRHDQAgAUEDaiEHQQEhEiAKIRALIAggBzYCPEEAIQwCQCAHLAAAIgtBIGsiAUEfSwRAIAchCgwBCyAHIQpBASABdCIBQYnRBHFFDQADQCAIIAdBAWoiCjYCPCABIAxyIQwgBywAASILQSBrIgFBIE8NASAKIQdBASABdCIBQYnRBHENAAsLAkAgC0EqRgRAAn8CQCAKLAABQTBrIgFBCUsNACAKLQACQSRHDQACfyAARQRAIAQgAUECdGpBCjYCAEEADAELIAMgAUEDdGooAgALIQ8gCkEDaiEBQQEMAQsgEg0GIApBAWohASAARQRAIAggATYCPEEAIRJBACEPDAMLIAIgAigCACIHQQRqNgIAIAcoAgAhD0EACyESIAggATYCPCAPQQBODQFBACAPayEPIAxBgMAAciEMDAELIAhBPGoQhQwiD0EASA0KIAgoAjwhAQtBACEHQX8hCQJ/QQAgAS0AAEEuRw0AGiABLQABQSpGBEACfwJAIAEsAAJBMGsiCkEJSw0AIAEtAANBJEcNACABQQRqIQECfyAARQRAIAQgCkECdGpBCjYCAEEADAELIAMgCkEDdGooAgALDAELIBINBiABQQJqIQFBACAARQ0AGiACIAIoAgAiCkEEajYCACAKKAIACyEJIAggATYCPCAJQQBODAELIAggAUEBajYCPCAIQTxqEIUMIQkgCCgCPCEBQQELIRMDQCAHIRRBHCEKIAEiGCwAACIHQfsAa0FGSQ0LIAFBAWohASAHIBRBOmxqQY+OCWotAAAiB0EBa0EISQ0ACyAIIAE2AjwCQCAHQRtHBEAgB0UNDCAQQQBOBEAgAEUEQCAEIBBBAnRqIAc2AgAMDAsgCCADIBBBA3RqKQMANwMwDAILIABFDQggCEEwaiAHIAIgBhCEDAwB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AgALIARB8AJqIBcgFiANEI8MIAQpA/gCIRUgBCkD8AILIRYgDiAVNwMoIA4gFjcDICAEQZDGAGokACAOKQMoIRUgDikDICEWDAELQgAhFQsgACAWNwMAIAAgFTcDCCAOQTBqJAALwwYCBH8DfiMAQYABayIFJAACQAJAAkAgAyAEQgBCABCtA0UNAAJ/IARC////////P4MhCgJ/IARCMIinQf//AXEiB0H//wFHBEBBBCAHDQEaQQJBAyADIAqEUBsMAgsgAyAKhFALC0UNACACQjCIpyIIQf//AXEiBkH//wFHDQELIAVBEGogASACIAMgBBBrIAUgBSkDECICIAUpAxgiASACIAEQ/QsgBSkDCCECIAUpAwAhBAwBCyABIAJC////////////AIMiCiADIARC////////////AIMiCRCtA0EATARAIAEgCiADIAkQrQMEQCABIQQMAgsgBUHwAGogASACQgBCABBrIAUpA3ghAiAFKQNwIQQMAQsgBEIwiKdB//8BcSEHIAYEfiABBSAFQeAAaiABIApCAEKAgICAgIDAu8AAEGsgBSkDaCIKQjCIp0H4AGshBiAFKQNgCyEEIAdFBEAgBUHQAGogAyAJQgBCgICAgICAwLvAABBrIAUpA1giCUIwiKdB+ABrIQcgBSkDUCEDCyAJQv///////z+DQoCAgICAgMAAhCELIApC////////P4NCgICAgICAwACEIQogBiAHSgRAA0ACfiAKIAt9IAMgBFatfSIJQgBZBEAgCSAEIAN9IgSEUARAIAVBIGogASACQgBCABBrIAUpAyghAiAFKQMgIQQMBQsgCUIBhiAEQj+IhAwBCyAKQgGGIARCP4iECyEKIARCAYYhBCAGQQFrIgYgB0oNAAsgByEGCwJAIAogC30gAyAEVq19IglCAFMEQCAKIQkMAQsgCSAEIAN9IgSEQgBSDQAgBUEwaiABIAJCAEIAEGsgBSkDOCECIAUpAzAhBAwBCyAJQv///////z9YBEADQCAEQj+IIAZBAWshBiAEQgGGIQQgCUIBhoQiCUKAgICAgIDAAFQNAAsLIAhBgIACcSEHIAZBAEwEQCAFQUBrIAQgCUL///////8/gyAGQfgAaiAHcq1CMIaEQgBCgICAgICAwMM/EGsgBSkDSCECIAUpA0AhBAwBCyAJQv///////z+DIAYgB3KtQjCGhCECCyAAIAQ3AwAgACACNwMIIAVBgAFqJAALvwIBAX8jAEHQAGsiBCQAAkAgA0GAgAFOBEAgBEEgaiABIAJCAEKAgICAgICA//8AEGsgBCkDKCECIAQpAyAhASADQf//AUkEQCADQf//AGshAwwCCyAEQRBqIAEgAkIAQoCAgICAgID//wAQa0H9/wIgAyADQf3/Ak8bQf7/AWshAyAEKQMYIQIgBCkDECEBDAELIANBgYB/Sg0AIARBQGsgASACQgBCgICAgICAgDkQayAEKQNIIQIgBCkDQCEBIANB9IB+SwRAIANBjf8AaiEDDAELIARBMGogASACQgBCgICAgICAgDkQa0HogX0gAyADQeiBfU0bQZr+AWohAyAEKQM4IQIgBCkDMCEBCyAEIAEgAkIAIANB//8Aaq1CMIYQayAAIAQpAwg3AwggACAEKQMANwMAIARB0ABqJAALPAAgACABNwMAIAAgAkL///////8/gyACQoCAgICAgMD//wCDQjCIpyADQjCIp0GAgAJxcq1CMIaENwMICxcBAX8gAEEAIAEQ/QIiAiAAayABIAIbCywAIAAgARDVByIBRQRADwsCQCADBEAgACABIAIQsgQMAQsgACABIAIQiwwLC6UBAQV/QdiSCygCACIDBEBB1JILKAIAIQUDQCAAIAUgAkECdGoiBCgCACIGRgRAIAQgATYCACAAEBgPCyAGIAFFckUEQCAEIAE2AgBBACEBCyACQQFqIgIgA0cNAAsLAkAgAUUNAEHUkgsoAgAgA0ECdEEEahA6IgBFDQBB1JILIAA2AgBB2JILQdiSCygCACICQQFqNgIAIAAgAkECdGogATYCAAsLCgAgAGhBACAAGwuYAQEFfyMAQYACayIFJAACQCACQQJIDQAgASACQQJ0aiIHIAU2AgAgAEUNAANAIAcoAgAgASgCAEGAAiAAIABBgAJPGyIEEB8aQQAhAwNAIAEgA0ECdGoiBigCACABIANBAWoiA0ECdGooAgAgBBAfGiAGIAYoAgAgBGo2AgAgAiADRw0ACyAAIARrIgANAAsLIAVBgAJqJAALKQEBfyAAKAIAQQFrEJQMIgEEfyABBSAAKAIEEJQMIgBBIHJBACAAGwsLWwEBfyMAQRBrIgMkACADAn4gAUHAAHFFBEBCACABQYCAhAJx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AgwBCwALAAUgCyACQQJ0aiAKIAJBBHRqNgIAIAJBAWohAgwBCwALAAUgCiACQQR0aiILIAI2AgwgBygCCCENIANCADcDaCADQgA3A2AgAyAIIAJBBXRqIgUpAwg3AzggA0FAayAFKQMQNwMAIAMgBSkDGDcDSCAFKQMAIRogA0IANwMoIAMgGjcDMCADQgA3AyAgA0EwaiALIAkgDSADQSBqQeaKBRCkDiACQQFqIQIMAQsACwALIAYgCCAHEKIOIQULIANB8ABqJAAgBSEKIAQoArgCEBhBuPwIKAIAIQdE////////7/8hEET////////vfyERRP///////+9/IRJE////////7/8hFkEAIQIDQCACIAZHBEAgCCACQQV0aiIFKwMAIRcgCiACQQR0aiILKwMAIRMgBSsDCCEVIAUrAxAhFCAAKAIQKAK0ASENIAwgAkECdGooAgAiCSgCECEDIBYgCysDCCIYIAUrAxigIg8QIiEWIBAgEyAUoCIUECIhECASIBggFaAiFRAqIRIgESATIBegIhMQKiERAkAgAiANSARAIAMgDzkDKCADIBQ5AyAgAyAVOQMYIAMgEzkDEEGM4QotAABBAkkNASABELMCIAkQICEDIAQgDzkD0AEgBCAUOQPIASAEIBU5A8ABIAQgEzkDuAEgBCADNgKwASAHQdy0BCAEQbABahAyDAELIAMgFSAPoEQAAAAAAADgP6I5AxggAyATIBSgRAAAAAAAAOA/ojkDEEGM4QotAABBAkkNACABELMCIAkQICEDIAkoAhAiBSsDECEPIAQgBSsDGDkD8AEgBCAPOQPoASAEIAM2AuABIAdB7rQEIARB4AFqEDILIAJBAWohAgwBCwsCQCAAKAIQIgIoAgwiA0UNACADKwMYIg8gBkUEQCADKwMgIRZEAAAAAAAAAAAhEUQAAAAAAAAAACESIA8hEAsgECARoaEiD0QAAAAAAAAAAGRFDQAgECAPRAAAAAAAAOA/oiIPoCEQIBEgD6EhEQsgECAEKAKoArhEAAAAAAAA4D+iRAAAAAAAAAAAIAFBAEobIg+gIRQgESAPoSEQIBYgAisDWCAPoKAhESASIAIrAzggD6ChIQ9BjOEKLQAAQQJPBEAgARCzAiAAECAhAiAEIBE5A6ABIAQgFDkDmAEgBCAPOQOQASAEIBA5A4gBIAQg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uPwIKAIAQai0BCACEDILIAJB8ABqJAALswYCCn8FfCMAQdABayIBJAACQCAAKAJAIgRFDQAgBEEEEOEEIQUgAEEwaiIHIQMDQCACIARGBEAgBSAEQQRB6AMQlQFBACECIARBCBDhBCEDA0AgAiAERgRAAn8gACsDCCIMIAArAwBhBEAgASAAKQMoNwOIASABIAApAyA3A4ABIAEgACkDGDcDeCABIAApAxA3A3AgBCADIAFB8ABqELYMDAELIAArAyAhCyAAKwMoIQ0gASAAKwMQOQOwASABIAArAxg5A7gBIAEgCyANIAugIA0gC6EiCyALoiAMRAAAAAAAABBAoqCfoUQAAAAAAADgP6IiC6E5A8ABIAEgDSALoTkDyAEgASABKQO4ATcDmAEgASABKQPAATcDoAEgASABKQPIATcDqAEgASABKQOwATcDkAEgBCADIAFBkAFqELYMCyEIQbj8CCgCACEJQYzhCi0AAARAIAArAxAhCyAAKwMYIQ0gACsDICEMIAEgACsDKDkDaCABIAw5A2AgASANOQNYIAEgCzkDUCAJQcu0BCABQdAAahAyCyABQUBrIQpBACECA0AgAiAERgRAIAUQGCADEBggCBAYQQAhAgNAIAIgBEYNByAHKAIAIgAoAjxFBEAgABC0DAsgAkEBaiECIABBNGohBwwACwALIAUgAkECdGooAgAiBiAIIAJBBXRqIgApAwA3AxAgBiAAKQMYNwMoIAYgACkDEDcDICAGIAApAwg3AxhBjOEKLQAABEAgAyACQQN0aisDACEPIAArAwAhCyAAKwMIIQ0gACsDECEMIAEgACsDGCIOOQNIIAogDDkDACABIA05AzggASALOQMwIAEgDCAOojkDKCABIA0gDkQAAAAAAADgP6IiDqA5AyAgASALIAxEAAAAAAAA4D+iIgygOQMYIAEgDSAOoTkDECABIAsgDKE5AwggASAPOQMAIAlB0/wEIAEQMgsgAkEBaiECDAALAAUgAyACQQN0aiAFIAJBAnRqKAIAKwMAOQMAIAJBAWohAgwBCwALAAUgBSACQQJ0aiADKAIAIgM2AgAgAkEBaiECIANBNGohAwwBCwALAAsgAUHQAWokAAvYAgIGfwJ8ELEMIgYgADYCOCAGQQA2AjxBASEEA0AgACgCECIFKAK0ASAETgRAIAUoArgBIARB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8ABqEB4aCyAAEBshAgNAIAIEQCACKAIQQQA2ArgBIAAgAhAcIQIMAQsLQYzhCi0AAEECTwRAIAEoAhAhAiAIIAAQIDYCZCAIIAI2AmBBuPwIKAIAQeuCBCAIQeAAahAeGgsgASABKAIQQQFqNgIQIAhB1PYJKAIANgJcQd+vASAIQdwAakEAEOQBIgpBrCtBmAJBARA1GkE4EFQhAiAKKAIQIAI2AowBIAAQNyECIAooAhAgAigCEC8BsAE7AbABIAAgCkHI4gAQ1wcgACAKQYbhABDXByAAIApBn94BENcHIAhBmAFqIQcgCEGQAWohBiAIQYgBaiEJQQEhDANAIAAoAhAiAigCtAEgDE4EQCACKAK4ASAMQQJ0aigCACIDEIEFIAogAxAgENYHIgQoAhAiAiALNgKIASACIAM2AugBAkACQCABKAIEIgVFBEBE////////738hG0T////////v/yEaDAELRP///////+9/IRtE////////7/8hGiADIAUQQSICLQAARQ0AIAEoAgAgA0cEQCACIAMoAkQgBRBBEElFDQELIAhBADoArAEgCCAJNgJEIAggBjYCSCAIIAc2AkwgCCAIQawBajYCUCAIIAhBgAFqNgJAIAJBhMgBIAhBQGsQT0EETgRAIAgrA5gBIRogCCsDkAEhHiAIKwOIASEbIAgrA4ABIRxBoOEKKwMAIh1EAAAAAAAAAABkBEAgHiAdoyEeIBsgHaMhGyAcIB2jIRwgGiAdoyEaCyAEKAIQQQNBAkEBIAgtAKwBIgJBP0YbIAJBIUYbOgCHAQwCCyADECAhBSAIIAI2AjQgCCAFNgIwQeX0AyAIQTBqECsLRP///////+//IR5E////////738hHAsgC0EBaiELIAMQGyECA0AgAgRAIAIoAhAgBDYCuAEgAyACEBwhAgwBCwsgBCgCECICLQCHAQRAIAIoApQBIgIgGiAboEQAAAAAAADgP6I5AwggAiAeIBygRAAAAAAAAOA/ojkDAAsgDEEBaiEMDAELCyAAEBshAgJ/AkADQCACBEACQCACKAIQIgMoArgBDQACQCADKALoASIERQ0AIAQgACgCECgCjAEoAjBGDQAgAhAgIQEgABAgIQAgCCACKAIQKALoARAgNgIoIAggADYCJCAIIAE2AiBB6YQFIAhBIGoQNgwECyADIAA2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AgAgACABQZSFCygCAEECdGo2AgQLQQAhAQNAQZSFCygCACICIAFNBEAgACgCACACQQRB1wMQlQEgACAAKAIANgJIBSAAKAIAIAFBAnRqQciFCygCACABQeAAbGoiAkEIajYCACACQQE2AhwgAkIANwNYIAFBAWohAQwBCwsLNwECfyMAQSBrIgMkACAAEDhBAk4EQCAAIAEgA0EIaiIBEJkNIAAgARD1AyECCyADQSBqJAAgAgvmAgIGfwR8IAAQlQ0gACgCBCEFIAAoAgAhAANAAkAgBSAAIgFLBEAgAEEEaiIAIAVPDQIgASgCACIDKwMAIgcgASgCBCICKwMAYg0CIAMrAwgiCCACKwMIYg0CIAFBCGohA0ECIQICQANAIAMgBU8NASADKAIAIgQrAwghCSAEKwMAIgogB2IgCCAJYnJFBEAgA0EEaiEDIAJBAWohAgwBCwsgCCAJYg0AIAogB6EgArijIQdBASEBA0AgACADTw0DIAAoAgAiAiABuCAHoiACKwMAoDkDACAAQQRqIQAgAUEBaiEBDAALAAtByIULKAIAIQIDQCAAIANPDQIgACgCACIEIAEoAgAiBisDACACIAYoAhBB4ABsaiIGKwM4IAYrAyihIAIgBCgCEEHgAGxqIgQrAzggBCsDKKGgRAAAAAAAAOA/oqA5AwAgAEEEaiEAIAFBBGohAQwACwALDwsgAyEADAALAAuPAQEBfwNAQZSFCygCACAATQRAQcyFC0EANgIAQdCFCygCABAYQdSFCygCABAYQdiFCygCABAYQdSFC0EANgIAQdCFC0EANgIAQdiFC0EANgIAQciFCygCACIABH8gACgCWBAYQciFCygCAAVBAAsQGAVByIULKAIAIABB4ABsaigCTBAYIABBAWohAAwBCwsLvQMCB38BfiMAQTBrIgUkAEHnnQEhCAJAAkAgAUUNACABLQAARQ0AQZzQCCEEA0ACQAJAIAQoAgQiA0UEQEHc0QghBAwBCyABIAMQLkUgBCgCACIGQRJGBH8gASADIAMQPBCBAgVBAQtFckUNASAEKAIIIgdFBEAgBSADNgIgQcXDBCAFQSBqECsgAkHP/AA2AgQgAkEBNgIAQZzQCCEEDAELIAIgBzYCBCACIAY2AgAgBkESRw0AIAQoAgQQPCABaiMAQRBrIgMkACADIANBDGo2AgBB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QYiFC0GIhQsoAgBBAWoiAjYCACAAIAI2AiwgABCXCANAAkAgABCVCCICRQ0AIAIQuAJEAAAAAAAAAABjRQ0AIABBMGoQywQgAigCACIBKAIgIgMoAjAgAygCNEYEQCADEJcIIAIoAgAhAQsgAisDCCEHIAErAxghCCACKAIEKwMYIQkgACgCACEBIAAoAgQhBCADKAIAIQUgAygCBCEGQYiFC0GIhQsoAgBBAWo2AgAgACADIAQgAWsgBiAFa0kiBBshASADIAAgBBsiACABIAIgCSAIoSAHoSIHmiAHIAQbEPEFIAAQlQgaIAEQlQgaIABBMGogAUEwahDxDSAAQYiFCygCADYCLCABQQE6ACgMAQsLC+wBAQN/IwBBEGsiAyQAIAMgATYCDCABQQE6ACQgASgCOCEEIAEoAjQhAQNAIAEgBEcEQCABKAIAKAIEIgUtACRFBEAgACAFIAIQ6g0LIAFBBGohAQwBCwsjAEEQayIAJAAgAEEBNgIIIABBDBCLATYCDCAAKAIMIgFBADYCBCABQQA2AgAgASADKAIMNgIIIAAoAgwhASAAQQA2AgwgACgCDCIEBEAgACgCCBogBBAYCyAAQRBqJAAgASACNgIAIAEgAigCBCIANgIEIAAgATYCACACIAE2AgQgAiACKAIIQQFqNgIIIANBEGokAAsZACAAQTxqEIICGiAAQTBqEIICGiAAEIICCxoAIABBgICAgARPBEAQgwgACyAAQQJ0EIsBC5EBAQN/IAEoAgQhAiAAKAIAIQQgACgCBCEDA0AgAyAERkUEQCACQQRrIgIgA0EEayIDKAIANgIADAELCyABIAI2AgQgACgCACEDIAAgAjYCACABIAM2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIAC34BAn8CQCADQQJIDQAgACADQQJrQQF2IgNBAnRqIgQoAgAgAUEEayIBKAIAIAIoAgARAABFDQAgASgCACEFA0ACQCABIAQiASgCADYCACADRQ0AIAAgA0EBa0EBdiIDQQJ0aiIEKAIAIAUgAigCABEAAA0BCwsgASAFNgIACwtEAQF/IwBBEGsiASQAIAFBADYCDCAAIAAoAgAoAgBBABDwBSAAIAAoAgAoAgBBACABQQxqEJEIGiABKAIMIAFBEGokAAtOAQJ/IwBB0ABrIgIkACAAKAJAIgNBABCNBUG49glHBEAgA0G49gkQjQUaCyACIAE3AwggACgCQCIAIAJBBCAAKAIAEQQAIAJB0ABqJAALyQQBCX8gACICKAIEIQYgASgCACIAIQMgASgCBCEBIwBBIGsiCSQAAkAgASAAa0ECdSIFQQBMDQAgAigCCCACKAIEIgBrQQJ1IAVOBEACQCAAIAZrIgRBAnUiCCAFTgRAIAMgBUECdGohBwwBCyABIAMgBGoiB2shBCABIAdHBEAgACAHIAQQUxoLIAIgACAEajYCBCAIQQBMDQILIAAhBCAGIAIoAgQiASAGIAVBAnRqIgprIghqIQUgASEAA0AgBCAFTQRAIAIgADYCBCABIApHBEAgASAIayAGIAgQUxoLBSAAIAUoAgA2AgAgAEEEaiEAIAVBBGohBQwBCwsgAyAHRg0BIAYgAyAHIANrEFMaDAELIAlBDGogAiAAIAIoAgBrQQJ1IAVqEO4FIAYgAigCAGtBAnUgAkEIahCOCCIBKAIIIgAgBUECdGohBANAIAAgBEcEQCAAIAMoAgA2AgAgA0EEaiEDIABBBGohAAwBCwsgASAENgIIIAIoAgAhBCAGIQAgASgCBCEDA0AgACAERwRAIANBBGsiAyAAQQRrIgAoAgA2AgAMAQsLIAEgAzYCBCACKAIEIgUgBmshACABKAIIIQQgBSAGRwRAIAQgBiAAEFMaIAEoAgQhAwsgASAAIARqNgIIIAIoAgAhACACIAM2AgAgASAANgIEIAIoAgQhACACIAEoAgg2AgQgASAANgIIIAIoAgghACACIAEoAgw2AgggASAANgIMIAEgASgCBDYCACABEI0ICyAJQSBqJAAgAhDzDQtjAgJ/AXwgAigCBCIDKwMYIAIoAgAiBCsDGKEgAisDCKEhBSADKAIgIQMgBCgCICEEIAAoAgQgACgCAGsgASgCBCABKAIAa0kEQCADIAQgAiAFEPEFDwsgBCADIAIgBZoQ8QUL4gIBCX8gACgCACEFIAAoAgQhACMAQRBrIgMkACADQb8DNgIMAkAgACAFa0ECdSIGQQJIDQAgBkECa0EBdiEIA0AgCEEASA0BIAUgCEECdGohBAJAIAZBAkgNACAGQQJrQQF2IgkgBCAFayIAQQJ1SA0AIAUgAEEBdSIBQQFyIgJBAnRqIQAgBiABQQJqIgFKBEAgASACIAAoAgAgACgCBCADKAIMEQAAIgEbIQIgAEEEaiAAIAEbIQALIAAoAgAgBCgCACADKAIMEQAADQAgBCgCACEBA0ACQCAEIAAiBCgCADYCACACIAlKDQAgBSACQQF0IgdBAXIiAkECdGohACAGIAdBAmoiB0oEQCAHIAIgACgCACAAKAIEIAMoAgwRAAAiBxshAiAAQQRqIAAgBxshAAsgACgCACABIAMoAgwRAABFDQELCyAEIAE2AgALIAhBAWshCAwACwALIANBEGokAAtGAgF8An8gACgCBCEDIAAoAgAhAAN8IAAgA0YEfCABBSAAKAIAIgIrAwggAisDGKEgAisDEKIgAaAhASAAQQRqIQAMAQsLC2wCAX8CfCMAQRBrIgIkACACIAE2AgwgASAANgIgIAAgAkEMahDBASAAIAIoAgwiASsDECIDIAArAxigIgQ5AxggACADIAErAwggASsDGKGiIAArAyCgIgM5AyAgACADIASjOQMQIAJBEGokAAsnACAAIAAoAhhFIAAoAhAgAXJyIgE2AhAgACgCFCABcQRAEJMBAAsLMAEDfyAAKAIEIgQgAUEEaiICayEDIAIgBEcEQCABIAIgAxBTGgsgACABIANqNgIEC34BA38gACgCACIBQTRqIAEoAjghAyABKAI0IQEDQAJAIAEgA0YNACABKAIAIABGDQAgAUEEaiEBDAELCyABEPcNIAAoAgQiAUEoaiABKAIsIQMgASgCKCEBA0ACQCABIANGDQAgASgCACAARg0AIAFBBGohAQwBCwsgARD3DQvqAQEIfyAAQay1AxDTAiECIAEoAgAhBiMAQRBrIgMkACADQQhqIgQgAhC2BRoCQCAELQAARQ0AIAIgAigCAEEMaygCAGoiBSgCBBogA0EEaiIEIAUQUSAEEPMLIQUgBBBOIAMgAhDyCyEHIAIgAigCAEEMaygCAGoiCBDxCyEJIAMgBSAHKAIAIAggCSAGIAUoAgAoAhARCAA2AgQgBBC0BUUNACACIAIoAgBBDGsoAgBqQQUQtwULIANBCGoQtQUgA0EQaiQAIAJBv+YBENMCIAEoAiArAxAgASsDGKAQrQdB5rQDENMCGiAACw4AIABBpwVBqMEBENAKCzgBAX8gABAbIQEDQCABBEAgASgC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BEAgBSAAKAIQIgAoAugBQcgAbGoiASABKwMYIgkgByAHIAljGzkDGCAFIAAoAuwBQcgAbGoiACAAKwMQIgcgCCAHIAhkGzkDEAsgAwtwAQJ/QQEhBANAIAQgACgCECIDKAK0AUpFBEAgAygCuAEgBEECdGooAgAgASACELQOIARBAWohBAwBCwsgAyABIAMrAxCiOQMQIAMgAiADKwMYojkDGCADIAEgAysDIKI5AyAgAyACIAMrAyiiOQMoC+UEAgh/BHxBASECA0AgAiAAKAIQIgMoArQBSkUEQCADKAK4ASACQQJ0aigCACABELUOIAJBAWohAgwBCwsgABBjIQIgACgCECEDAkAgACACRgRAIAMoAuwBIQVEAADA////38EhCkQAAMD////fQSELIAMoAugBIgghBANAIAQgBUoEQCADKAK0ASIAQQAgAEEAShtBAWohAEEBIQIDQCAAIAJGDQQgCiADKAK4ASACQQJ0aigCACgCECIEKwMgRAAAAAAAACBAoCIMIAogDGQbIQogCyAEKwMQRAAAAAAAACDAoCIMIAsgDGMbIQsgAkEBaiECDAALAAUCQCADKALEASAEQcgAbGoiACgCACIGRQ0AQQEhAiAAKAIEIgcoAgAiAEUNAANAIAAoAhAiAC0ArAEiCUUgAiAGTnJFBEAgByACQQJ0aigCACEAIAJBAWohAgwBCwsgCQ0AIAZBAmshAiAAKwMQIAArA1ihIQwgByAGQQJ0akEEayEAA0AgACgCACgCECIALQCsAQRAIAcgAkECdGohACACQQFrIQIMAQsLIAogACsDECAAKwNgoCINIAogDWQbIQogCyAMIAsgDGMbIQsLIARBAWohBAwBCwALAAsgAygC6AEhCCADKALsASEFIAMoAoQCKAIQKAL0AbchCiADKAKAAigCECgC9AG3IQsLIAEoAhAoAsQBIgAgBUHIAGxqKAIEKAIAKAIQKwMYIQwgACAIQcgAbGooAgQoAgAoAhArAxghDSADIAo5AyAgAyALOQMQIAMgDSADKwOAAaA5AyggAyAMIAMrA3ihOQMYC6IBAgJ8AX8CQAJ/Qf////8HIABBqiEQJiIDRQ0AGiAAEDghACADELECIQEgAEEASA0BQQAgAUQAAAAAAAAAAGMNABogALghAiABRAAAAAAAAPA/ZARAQf////8HRAAAwP///99BIAGjIAJjDQEaCyABIAKiIgGZRAAAAAAAAOBBYwRAIAGqDwtBgICAgHgLDwtB3Z0DQZWEAUHKAEG83wAQAAALiAICB38BfCMAQRBrIgQkACAAQfzhCigCAEEIQQAQZCAAEP8FtyEIIAAoAhAiASgC6AEhAyABKAKEAiEFIAEoAoACIQYDQCADIAEoAuwBSkUEQAJAIANByABsIgcgASgCxAFqIgIoAgBFDQAgAigCBCgCACICRQRAIAAQICEBIAQgAzYCBCAEIAE2AgBB1L0EIAQQNgwBCyAGIAIgAigCECsDWCAIoCABKwNgoEEAEKQBGiAAKAIQIgEoAsQBIAdqIgIoAgQgAigCAEECdGpBBGsoAgAiAiAFIAIoAhArA2AgCKAgASsDQKBBABCkARoLIANBAWohAyAAKAIQIQEMAQsLIARBEGokAAvbAgIKfwF8IABB/OEKKAIAQQhBABBkIQdBASEBA0AgACgCECIFKAK0ASIEIAFIBEAgB7chC0EBIQEDQCABIARKRQRAIAFBAnQhCSABQQFqIgchAQNAIAUoArgBIgIgCWooAgAhAyABIARKRQRAIAIgAUECdGooAgAiBiADIAMoAhAoAugBIAYoAhAoAugBSiICGyIIKAIQIgooAuwBIAMgBiACGyIDKAIQIgYoAugBIgJOBEAgCCADIAJByABsIgIgCigCxAFqKAIEKAIAKAIQKAL4ASAGKALEASACaigCBCgCACgCECgC+AFIIgIbKAIQKAKEAiADIAggAhsoAhAoAoACIAtBABCkARogACgCECIFKAK0ASEECyABQQFqIQEMAQsLIAMQuA4gACgCECIFKAK0ASEEIAchAQwBCwsFIAUoArgBIAFBAnRqKAIAEP8FIAFBAWohAQwBCwsLnAECA38BfCAAQfzhCigCAEEIQQAQZCAAEP8FtyEEQQEhAQNAIAEgACgCECICKAK0AUpFBEAgAigCuAEgAUECdGooAgAiAhD/BSAAKAIQIgMoAoACIAIoAhAoAoACIAMrA2AgBKBBABCkARogAigCECgChAIgACgCECIDKAKEAiADKwNAIASgQQAQpAEaIAIQuQ4gAUEBaiEBDAELCwulAwIHfwF8IABB/OEKKAIAQQhBABBktyEIIAAoAhAiASgC6AEhBEEBIQUDQCABKALsASAESARAA0AC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4EFjBEAgEaoMAQtBgICAgHgLIghBACAIQQBKIgcbIglBAWq4IAUoApwBEKQBGiADIAEgAUEwayIFIAEoAgBBA3FBAkYbKAIoQQBBACAIayAHGyIIQQFquCABKAIQKAKcARCkARogAygCECABIAYgASgCAEEDcSIDQQNGGygCKCgCECgC9AEgCUF/c2oiBiABIAUgA0ECRhsoAigoAhAoAvQBIAhBf3NqIgEgASAGShs2AvQBIAJBAWohAiAEKAIQIgUoApACIQEMAAsACyAFQbgBaiEBDAELCwJAIAAoAhAiASgCtAFBAEoEfyAAELsOIAAQug4gABC5DiAAELgOIAAoAhAFIAELKAIIIgEoAlRBA0cNACABKwNAIhEgASsDSCISokQAAAAAAADwP2UNACAAELcOIAAoAhAiASgCgAIgASgChAIgEiARIAEoAnRBAXEbIhFEAAAAAOD/70AgEUQAAAAA4P/vQGMbQegHEKQBGgsCQCAAQQIgABC2DhDWBEUNACAAKAIQIgIoAugBIQUDQAJAAkAgAigC7AEiCyAFTgRAQQAhByACKALEASAFQcgAbGoiCCgCACIJQQAgCUEAShshA0EAIQEDQCABIANGDQNBACEEAkAgCCgCBCABQQJ0aigCACIHKAIQIgooApACIgxFDQADQCAMIARBAnRqKAIAIgZFDQEgBkFQQQAgBigCAEEDcSINQQJHG2ooAigoAhAoAvQBIAVKDQQgBEEBaiEEIAZBMEEAIA1BA0cbaigCKCgCECgC9AEgBUwNAAsMAwtBACEEAkAgCigCiAIiCkUNAANAIAogBEECdGooAgAiBkUNASAGQTBBACAGKAIAQQNxIgxBA0cbaigCKCgCECgC9AEgBUoNBCAEQQFqIQQgBSAGQVBBACAMQQJHG2ooAigoAhAoAvQBTg0ACwwDCyABQQFqIQEMAAsACyAAQQIgABC2DhDWBEUNA0GWoANBhMQBQYsBQZ/oABAAAAsgASEDCwJAIAdFIAMgCUhyRQRAIAhBzABBvH8gBSALSBtqKAIAKAIAIgJFDQEgCCgCBCgCACEDIAAQuwIiASgCEEECOgCsASABIANEAAAAAAAAAABBABCkARogASACRAAAAAAAAAAAQQAQpAEaIAEoAhAgAygCECgC9AEiASACKAIQKAL0ASICIAEgAkgbNgL0ASAA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IAQgAisDADkDKCAEIAg3AyAgAEGr1gQgBEEgahAyIANBAWohAwwACwALAkAgBAJ8IAEoAhAgA0EobGoiBSgCFCICIAUoAhgiBkYEQCACKwMoIAIrAzigRAAAAAAAAOA/oiEHIAIrAzAgAisDQKBEAAAAAAAA4D+iDAELIAUgBiACIAItAABBAXEbIgIoAiQiBigCBEYEQCACKwMoIAIrAzigRAAAAAAAAOA/oiEHIAIrA0AMAQsgBSAGKAIMRgRAIAIrAyggAisDOKBEAAAAAAAA4D+iIQcgAisDMAwBCyAFIAYoAghGBEAgAisDKCEHIAIrAzAgAisDQKBEAAAAAAAA4D+iDAELIAYoAgAgBUcNASACKwM4IQcgAisDMCACKwNAoEQAAAAAAADgP6ILOQMQIAQgBzkDCCAEIAM2AgAgAEHD1gQgBBAyIANBAWohAwwBCwtBhp8EQQAQNhAoAAtB9OEDIAAQjQEaIARBMGokAAvmVAIafwp8IwBB0AJrIgckACAAELoCQQgQGSEYQbzhCi0AAEEBRgRAEM0DIRkLIABB7cgBECYhAkHggwtBADYCAAJAIAJFDQAgAi0AACIFRQ0AA0ACQEHggwsCfwJAAkACQAJAIAVB/wFxIghB7QBrDgcBBQUFBQIDAAtBCCAIQeMARg0DGiAIQekARwRAIAgNBQwHC0ESDAMLQQEMAgtBBAwBC0ECCyAGciIGNgIACyACQQFqIgItAAAhBQwACwALIAEEQEGL6QRBABArCwJ/IwBB4AJrIgMkAEEBQRwQGSEOAkAgACIIEDhBAE4EQCAOIAAQOCIKNgIEIA4gCkHIABAZIgY2AgxE////////738hHET////////v/yEfIAAQGyEFRP///////+//IR1E////////738hHiAGIQEDQCAFBEAgBSgCECIAKwMQISIgACsDYCEhIAArA1ghIyAAKwMYISAgACsDUCEkIAEgASgCAEEBcjYCACABICAgJEQAAAAAAADgP6JEAAAAAAAA8D8QIiIkoCIlOQNAIAEgICAkoSIgOQMwIAEgIiAjICGgRAAAAAAAAOA/okQAAAAAAADwPxAiIiGgIiM5AzggASAiICGhIiI5AyggACABNgKAASABQcgAaiEBIB8gJRAiIR8gHCAgECohHCAdICMQIiEdIB4gIhAqIR4gCCAFEBwh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Amo2AgBBJQ8LIAJBFUYNDwsgAyAANgIADBELIAMgAUEBajYCAEEVDwsgAyABQQFqNgIAQREPCyACIAFBAWoiAWsiBkEATA0MQQAhBQJAAkACQAJAAkACQCAHIAEtAABqLQAAIghBBWsOAwECAwALIAhBFmsOAwMEAwQLIAZBAUYNDiAAIAEgACgC4AIRAAANAyAAIAEgACgC1AIRAABFDQNBAiEEDAILIAZBA0kNDSAAIAEgACgC5AIRAAANAiAAIAEgACgC2AIRAABFDQJBAyEEDAELIAZBBEkNDCAAIAEgACgC6AIRAAANASAAIAEgACgC3AIRAABFDQFBBCEECyABIARqIQEDQCACIAFrIgZBAEwEQEFsDwtBASEEQRQhBQJAAkACQAJAAkAgByABLQAAai0AAEEFaw4gAAECBAYGBgQEBAQEBAQEBAYDBAMDAwMEBAYEBgQEBAYECyAGQQFGDRAgACABIAAoAuACEQAADQMgACABIAAoAsgCEQAARQ0DQQIhBAwCCyAGQQNJDQ8gACABIAAoAuQCEQAADQIgACABIAAoAswCEQAARQ0CQQMhBAwBCyAGQQRJDQ4gACABIAAoAugCEQAADQEgACABIAAoAtACEQAARQ0BQQQhBAsgASAEaiEBDAELC0EAIQULIAMgATYCACAFDwsgAiABa0ECSA0JIAAgASAAKALgAhEAAA0IQQIhBCAAIAEgACgC1AIRAAANAiAAIAEgACgCyAIRAABFDQgMBQsgAiABa0EDSA0IIAAgASAAKALkAhEAAA0HQQMhBCAAIAEgACgC2AIRAAANASAAIAEgACgCzAIRAABFDQcMBAsgAiABa0EESA0HIAAgASAAKALoAhEAAA0GQQQhBCAAIAEgACgC3AIRAABFDQELDAMLIAAgASAAKALQAhEAAEUNBAwBC0ETIQUMAQtBEyEFCyABIARqIQQCQAJAAkACQANAIAIgBCIBayIEQQBMDQQCQAJAAkACQAJAAkACQCAHIAEtAABqLQAAQQVrDiABAgMKBAQECgoKCQoKCgoEBAAFAAAAAAoKBAoECAYEBAoLIAFBAWohBAwGCyAEQQFGDQwgACABIAAoAuACEQAADQggACABIAAoAsgCEQAARQ0IIAFBAmohBAwFCyAEQQNJDQsgACABIAAoAuQCEQAADQcgACABIAAoAswC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AgAgAiEIA0AgAyAIRgRAIAMhCAwGCyAILQAARQ0FIAhBAWohCAwACwALIAQgAjYCAEEBDAILIAQoAgAhAgsgAiADRwsgEUEQaiQADwsgBygCACEFDAALAAumBQEMfyMAQRBrIg8kACACIQgDQAJAIAMgCEYEQCADIQgMAQsgCCgCAEUNACAIQQRqIQgMAQsLIAcgBTYCACAEIAI2AgACQANAAkACQCACIANGIAUgBkZyBH8gAgUgDyABKQIANwMIQQEhECAAKAIIIQkjAEEQayIOJAAgDiAJNgIMIA5BCGogDkEMahCPAiAFIQkgBiAFayEKQQAhDCMAQRBrIhEkAAJAIAQoAgAiC0UgCCACa0ECdSISRXINACAKQQAgBRshCgNAIBFBDGogCSAKQQRJGyALKAIAELQHIg1Bf0YEQEF/IQwMAgsgCQR/IApBA00EQCAKIA1JDQMgCSARQQxqIA0QHxoLIAogDWshCiAJIA1qBUEACyEJIAsoAgBFBEBBACELDAILIAwgDWohDCALQQRqIQsgEkEBayISDQALCyAJBEAgBCALNgIACyARQRBqJAAQjgIgDkEQaiQAAkACQAJAAkAgDEEBag4CAAgBCyAHIAU2AgADQCACIAQoAgBGDQIgBSACKAIAIAAoAggQlAciAUF/Rg0CIAcgBygCACABaiIFNgIAIAJBBGohAgwACwALIAcgBygCACAMaiIFNgIAIAUgBkYNASADIAhGBEAgBCgCACECIAMhCAwGCyAPQQRqIgJBACAAKAIIEJQHIghBf0YNBCAGIAcoAgBrIAhJDQYDQCAIBEAgAi0AACEFIAcgBygCACIJQQFqNgIAIAkgBToAACAIQQFrIQggAkEBaiECDAELCyAEIAQoAgBBBGoiAjYCACACIQgDQCADIAhGBEAgAyEIDAULIAgoAgBFDQQgCEEEaiEIDAALAAsgBCACNgIADAMLIAQoAgALIANHIRAMAwsgBygCACEFDAELC0ECIRALIA9BEGokACAQCwkAIAAQmAsQGAszACMAQRBrIgAkACAAIAQ2AgwgACADIAJrNgIIIABBDGogAEEIahDoCygCACAAQRBqJAALNAADQCABIAJGRQRAIAQgAyABLAAAIgAgAEEASBs6AAAgBEEBaiEEIAFBAWohAQwBCwsgAQsMACACIAEgAUEASBsLKgAD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IAZHDQALCyAGQSBqJAAgAQvnAgEBfyMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIABBxAFqEFIhBiAAQRBqIgIgAxBRIAIQzgFB8LcJQYq4CSAAQdABahD3AiACEE4gAEG4AWoQUiIDIAMQVhA9IAAgA0EAED8iATYCtAEgACACNgIMIABBADYCCANAAkAgAEH8AWogAEH4AWoQXA0AIAAoArQBIAMQIyABakYEQCADECMhAiADIAMQI0EBdBA9IAMgAxBWED0gACACIANBABA/IgFqNgK0AQsgAEH8AWoiAhCFAUEQIAEgAEG0AWogAEEIakEAIAYgAEEQaiAAQQxqIABB0AFqEN4DDQAgAhCZARoMAQsLIAMgACgCtAEgAWsQPSADEEIQaCAAIAU2AgAgABDGC0EBRwRAIARBBDYCAAsgAEH8AWogAEH4AWoQXARAIAQgBCgCAEECcjYCAAsgACgC/AEgAxA0GiAGEDQaIABBgAJqJAAL0AMBAX4jAEGQAmsiACQAIAAgAjYCiAIgACABNgKMAiAAQdABaiADIABB4AFqIABB3wFqIABB3gFqEKYHIABBxAFqEFIiASABEFYQPSAAIAFBABA/IgI2AsABIAAgAEEgajYCHCAAQQA2AhggAEEBOgAXIABBxQA6ABYDQAJAIABBjAJqIABBiAJqEFwNACAAKALAASABECMgAmpGBEAgARAjIQMgASABECNBAXQQPSABIAEQVhA9IAAgAyABQQAQPyICajYCwAELIABBjAJqIgMQhQEgAEEXaiAAQRZqIAIgAEHAAWogACwA3wEgACwA3gEgAEHQAWogAEEgaiAAQRxqIABBGGogAEHgAWoQpQcNACADEJkBGgwBCwsCQCAAQdABahAjRQ0AIAAtABdBAUcNACAAKAIcIgMgAEEgamtBnwFKDQAgACADQQRqNgIcIAMgACgCGDYCAAsgACACIAAoAsABIAQQxwsgACkDACEGIAUgACkDCDcDCCAFIAY3AwAgAEHQAWogAEEgaiAAKAIcIAQQtAEgAEGMAmogAEGIAmoQXARAIAQgBCgCAEECcjYCAAsgACgCjAIgARA0GiAAQdABahA0GiAAQZACaiQAC7kDACMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIABBwAFqIAMgAEHQAWogAEHPAWogAEHOAWoQpgcgAEG0AWoQUiIBIAEQVhA9IAAgAUEAED8iAjYCsAEgACAAQRBqNgIMIABBADYCCCAAQQE6AAcgAEHFADoABgNAAkAgAEH8AWogAEH4AWoQXA0AIAAoArABIAEQIyACakYEQCABECMhAyABIAEQI0EBdBA9IAEgARBWED0gACADIAFBABA/IgJqNgKwAQsgAEH8AWoiAxCFASAAQQdqIABBBmogAiAAQbABaiAALADPASAALADOASAAQcABaiAAQRBqIABBDGogAEEIaiAAQdABahClBw0AIAMQmQEaDAELCwJAIABBwAFqECNFDQAgAC0AB0EBRw0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCsAEgBBDICzkDACAAQcABaiAAQRBqIAAoAgwgBBC0ASAAQfwBaiAAQfgBahBcBEAgBCAEKAIAQQJyNgIACyAAKAL8ASABEDQaIABBwAFqEDQaIABBgAJqJAALuQMAIwBBgAJrIgAkACAAIAI2AvgBIAAgATYC/AEgAEHAAWogAyAAQdABaiAAQc8BaiAAQc4BahCmByAAQbQBahBSIgEgARBWED0gACABQQAQPyICNgKwASAAIABBEGo2AgwgAEEANgIIIABBAToAByAAQcUAOgAGA0ACQCAAQfwBaiAAQfgBahBcDQAgACgCsAEgARAjIAJqRgRAIAEQIyEDIAEgARAjQQF0ED0gASABEFYQPSAAIAMgAUEAED8iAmo2ArABCyAAQfwBaiIDEIUBIABBB2ogAEEGaiACIABBsAFqIAAsAM8BIAAsAM4BIABBwAFqIABBEGogAEEMaiAAQQhqIABB0AFqEKUHDQAgAxCZARoMAQsLAkAgAEHAAWoQI0UNACAALQAHQQFHDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAKwASAEEMkLOAIAIABBwAFqIABBEGogACgCDCAEELQBIABB/AFqIABB+AFqEFwEQCAEIAQoAgBBAnI2AgALIAAoAvwBIAEQNBogAEHAAWoQNBogAEGAAmokAAuPAwEBfyMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIAMQqQIhBiAAQcQBaiADIABB9wFqEKsEIABBuAFqEFIiASABEFYQ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8bic1j83A4gCAkAgAygCmAJBEkcgBEECR3JFBEAgAyADKAKgAjYC5AEgAyADKwOoAjkD8AEgA0GIAWogABCBA0EBIQUgAy0AmAFBAXFFDQEgAysDiAEhCCADIAMrA5ABRAAAAAAAAFJAozkDkAIgAyAIRAAAAAAAAFJAozkDiAIMAQsgA0F/NgLkASAEQQJHIQULQYzhCi0AAARAIANBKGoiASADQbABakHYABAfGiMAQeABayICJABBweIEQRtBAUG4/AgoAgAiBBBMGiACIAErAwA5A9ABIARBjK4EIAJB0AFqEDIgAS0ALCEGIAIgASgCKDYCxAEgAiAGQQFxNgLAASAEQfzOBCACQcABahAeGiABKwMIIQggAkKas+bMmbPm5D83A7gBIAIgCDkDsAEgBEGprgQgAkGwAWoQMiACIAEoAhA2AqABIARBiMsEIAJBoAFqEB4aIAIgASgCFDYClAEgAkEtNgKQASAEQfTLBCACQZABahAeGiACIAEoAhg2AoABIAJC/NPGl93JmKg/NwN4IAJCs+bMmbPmzPE/NwNwIARBocsEIAJB8ABqEDIgASsDICEIIAIgBkEBdkEBcTYCYCACIAg5A1ggAkLNmbPmzJmz9j83A1AgBEG5zQQgAkHQAGoQMiACIAErA0g5A0ggAkEANgJEIAIgBkECdkEBcTYCQCAEQdetBCACQUBrEDIgASgCMCEGIAEoAjQhByABKwNAIQggAiABLQA4NgIwIAIgCDkDKCACIAc2AiQgAiAGQQJ0QfDRCGooAgA2AiAgBEH4zAQgAkEgahAyIAIgASgCPEECdEGQ0ghqKAIANgIQIARBrIQEIAJBEGoQHhogAiABKAJQNgIAIARBxs4EIAIQHhogAkHgAWokAAsgACADQawBahCjCCEEAkAgAygCrAFBAUYEQCADIAMpA5ACNwMQIAMgAykDiAI3AwggACADQbABaiADQQhqEM8MIAVFBEAgACADQZgCahD1AxoLIAAQsQMMAQsgAEECQQggA0GIAWoQ/QMaIANBAToAlAFBACECA0AgAygCrAEiASACTQRAIAEgBCAAIANBiAFqEP0FDAILIAQgAkECdGooAgAiAUEAELYDGiADIAMpA5ACNwMgIAMgAykDiAI3AxggASADQbABaiADQRhqEM8MIAVFBEAgASADQZgCahD1AxoL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CBDUA0GMIBCNB0G48wlBwAMQAQALIAEoAggoAiAiAy0AKA0BIAMQ6Q0MAQsLAkAgBUEEaiICKAIIRQ0AIAIoAgQiACgCACIBIAIoAgAoAgQiAzYCBCADIAE2AgAgAkEANgIIA0AgACACRg0BIAAoAgQgABAYIQAMAAsACyAFQRBqJAALugECAn8CfET////////v/yEEAnxE////////7/8gASgCACgCICICKAIsIAEoAhhKDQAaRP///////+//IAIgASgCBCgCIEYNABogARC4AgshBQJAIAAoAgAoAiAiAigCLCAAKAIYSg0AIAIgACgCBCgCIEYNACAAELgCIQQLIAQgBWEEQCABKAIAKAIAIgIgACgCACgCACIDRgRAIAEoAgQoAgAgACgCBCgCAEgPCyACIANIDwsgBCAFZAsZAQJ+IAApAwgiAiABKQMIIgNWIAIgA1RrCzMAIAAQ5Q0gACABKAIANgIAIAAgASgCBDYCBCAAIAEoAgg2AgggAUEANgIIIAFCADcCAAvKAQEHfyMAQRBrIgUkACAAQQA2AgggAEIANwIAQShBNCACGyEHIAEoAgQhCCABKAIAIQQDQCAEIAhHBEAgBCgCACAHaiIDKAIEIQkgAygCACEDA0AgAyAJRgRAIARBBGohBAwDBSAFIAMoAgAiBjYCDCAGQYiFCygCADYCGAJAAkAgAgRAIAYoAgAoAiAgAUcNAQsgAg0BIAYoAgQoAiAgAUYNAQsgACAFQQxqEMEBCyADQQRqIQMMAQsACwALCyAAEPMNIAVBEGokAAsdACAAKAIAQQR2IgAgASgCAEEEdiIBSyAAIAFJaws+AQJ8An9BfyAAKwMAIgIgASsDACIDYw0AGkEBIAIgA2QNABpBfyAAKwMIIgIgASsDCCIDYw0AGiACIANkCwscACAAKAIMIAEoAgxqIAAoAgQgASgCBGprQQJtCxwAIAAoAgggASgCCGogACgCACABKAIAamtBAm0LjAEBB38CQCAAKAIgIgMgASgCKCIESg0AIAEoAiAiBSAAKAIoIgZKDQBBASECIAAoAiwiByABKAIkIghIDQAgACgCECABKAIQayAHIAEoAixqIAAoAiQgCGprQQJtaiAGIAMgBWprIARqQQJtIAEoAgwiASAAKAIMIgBrIAAgAWsgACABShtqTCECCyACC4wBAQd/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KAIAQQR2IgEgACgCAEEEdiIASQ0CIAAgAUkhAgwCC0EBIQIMAQtBfyECCyAEQeADaiQAIAILCQAgASAAEI0BCxYAIAEgAiAAEMMHRQRAQQAPCyABEDwLJQAgACgCACgCECgC+AEiACABKAIAKAIQKAL4ASIBSiAAIAFIawsSACABQcO/ASACKAIIQQEQNRoLEgAgAUHSvwEgAigCBEEBEDUaCxIAIAFBs78BIAIoAgBBARA1GgsZAEF/IAAoAgAiACABKAIAIgFLIAAgAUkbCyUAIAAoAgAoAhAoAvQBIgAgASgCACgCECgC9AEiAUogACABSGsLJQAgASgCACgCECgC9AEiASAAKAIAKAIQKAL0ASIASiAAIAFKawtAAgJ8AX8gACsDACICIAErAwAiA2QEQCAAKwMIIAErAwhlRQ8LIAIgA2MEf0EAQX8gACsDCCABKwMIZhsFQQALC9wBAQV/IAAoAighBQNAIAUoAgQhASAFKAIAIANLBEAgASADQRhsakEIaiEBQQAhAgNAIAEoAgggAksEQCABIAIQ2wgaIAEgAhCZBhogAkEBaiECDAELCyABQgA3AgQgASgCABAYIAFCADcCCCABQgA3AgAgA0EBaiEDDAELCyABEBggBRAYIABBGGohAiAAKAIgIQECQANAIAEgBE0NASACIAQQXRogBCAAKAIgIgFJIARBAWohBA0AC0HCvANBkoMBQTVBpikQAAALIABCADcCHCAAKAIYEBggABAYCyABAnxBAUF/QQAgACsDACICIAErAwAiA2MbIAIgA2QbCw8AIAAoAhAQmwEaIAAQGAtaAgF8AX9BfyAAKwMIIAErAwihIgJESK+8mvLXej5kIAJESK+8mvLXer5jGyIDBH8gAwVBfyAAKwMAIAErAwChIgJESK+8mvLXej5kIAJESK+8mvLXer5jGwsLWgIBfAF/QX8gACsDACABKwMAoSICREivvJry13o+ZCACREivvJry13q+YxsiAwR/IAMFQX8gACsDCCABKwMIoSICREivvJry13o+ZCACREivvJry13q+YxsLCyMAIAAoAhAoAgBBBHYiACABKAIQKAIAQQR2IgFLIAAgAUlrCxQAIAAoAhBBHGogAEcEQCAAEBgLC44BAgF/BHwjAEEwayIDJAAgAyABKAIIIgQ2AiQgAyAENgIgIABB6YMF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BEGk3AQgA0HgAWoQgQEgA0GUgwsoAgA2AtABIAMgBiAHIA2goiIGOQPAASADIAogCyAMoKIiBzkDyAEgBEHD3QQgA0HAAWoQgQEgAyABNgKwASAEQZ7YAyADQbABahCBASAAIAQQnAYQGhogARAYIAIEQCADQYgBaiIBIAAoAhBBOGpBKBAfGiABQwAAAAAQwAMhASADQgA3A4ABIANCADcDeCADQgA3A3AgAEHQ5gQgA0HwAGoQHSADQoCAgICAgID4PzcDYCADIAg5A1ggAyAFOQNQIABByNwEIANB0ABqEB0gA0FAayAAKALoArK7OQMAIANCADcDOCADQgA3AzAgAEGk3AQgA0EwahAdIANBlIMLKAIANgIgIAMgBjkDECADIAc5AxggAEHD3QQgA0EQahAdIAMgATYCACAAQZ7YAyADEB0gARAYCyADQeACahBfIANB8AJqJAAL7QMCA38GfCMAQdABayIDJAAgAigCACEEIAIoAgQiBSsDECEGIAMgBSgCADYCsAEgAyAGOQOoASADIAQ2AqABIABB7YcEIANBoAFqEB1BlIMLQZCDCygCAEEJazYCAAJ8IAErAwAiBiACLQAwIgRB7ABGDQAaIARB8gBGBEAgBiACKwMgoQwBCyAGIAIrAyBEAAAAAAAA4L+ioAshBiAAKwPwAyEHIAArA4AEIQggASsDCCEJIAArA+gDIQogACsD+AMhCyADQfgAaiIBIAAoAhBBEGpBKBAfGiABQwAAAAAQwAMhASADQgA3A8gBIANCADcDwAEgAigCBCgCACEEIAIoAgAhBSADQgA3A3AgA0KAgICAgICA6D83A2ggAyAFNgJkIAMgBDYCYCADQcABaiIEQfXlAyADQeAAahCBASADIAIoAgQrAxAgACsD6AOiOQNQIARB5a4EIANB0ABqEIEBIANBQGsgACgC6AKyuzkDACADQgA3AzggA0IANwMwIARBpNwEIANBMGoQgQEgA0GUgwsoAgA2AiAgAyAKIAYgC6CiOQMQIAMgByAJIAigojkDGCAEQcPdBCADQRBqEIEBIAMgATYCACAEQZ7YAyADEIEBIAAgBBCcBhAaGiAEEF8gARAYIANB0AFqJAALHAAgAEGCuwQQGhpBkIMLQZCDCygCAEEFajYCAAscACAAQfC6BBAaGkGQgwtBkIMLKAIAQQVrNgIA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NBDoBDYCOAJAIABBrCtBAEEBEDUEQCAAKAIQKAIIDQELIAEtAJsBQQRxDQBBk7kEQQAQNgwBCyABQQA2AiQgASABKAKYAUGAgIDAAHI2ApgBIAIgABC6BhogARCPBCACEJ0ECyADQRBqJAAgAhCdBCACEBgPCyAAKAIAKAKgARDvCAsLGwAgAEH41gMQGhogACABEIwBIABBgN4EEBoaC2gBAn8gAEG1ngEQGhogAEEAQQAQ4gQgAEGszQMQGhoDQCACIANHBEAgACABIANBBHRqIgQrAwAQfSAAQSwQZyAAIAQrAwiaEH0gA0EBaiIDIAJGDQEgAEEgEGcMAQsLIABB6d0EEBoaCwurmQqVAwBBgAgL5oIF/9j/AMXQ08YAfgB7JXN9ACAtdGFncyB7JWQlcyVwfQAgJS4wZn0AJXMgeyAlcyB9AHxlZGdlbGFiZWx8ACAtZm9udCB7AHF1YXJ0egBpZHggPT0gc3oAY250ID09IHN6AGxvegBncmFwaHZpegBndndyaXRlX25vX3oAcG9ydGhveHkAc2NhbGV4eQAvc3ZnL25hdnkAaW52ZW1wdHkAbm9kZV9zZXRfaXNfZW1wdHkAbm9kZXNfaXNfZW1wdHkAcmVmZXJlbmNlIHRvIGJpbmFyeSBlbnRpdHkAYXN5bmNocm9ub3VzIGVudGl0eQBpbmNvbXBsZXRlIG1hcmt1cCBpbiBwYXJhbWV0ZXIgZW50aXR5AGVudGl0eSBkZWNsYXJlZCBpbiBwYXJhbWV0ZXIgZW50aXR5AGNhbm5vdCBzdXNwZW5kIGluIGV4dGVybmFsIHBhcmFtZXRlciBlbnRpdHkAWE1MIG9yIHRleHQgZGVjbGFyYXRpb24gbm90IGF0IHN0YXJ0IG9mIGVudGl0eQB1bmRlZmluZWQgZW50aXR5AHBhcnNlci0+bV9vcGVuSW50ZXJuYWxFbnRpdGllcyA9PSBvcGVuRW50aXR5AHBhcnNlci0+bV9vcGVuVmFsdWVFbnRpdGllcyA9PSBvcGVuRW50aXR5AHBhcnNlci0+bV9vcGVuQXR0cmlidXRlRW50aXRpZXMgPT0gb3BlbkVudGl0eQBpbmZpbml0eQBsaXN0LT5zaXplIDwgbGlzdC0+Y2FwYWNpdHkAZmFudGFzeQBTcGFyc2VNYXRyaXhfY29vcmRpbmF0ZV9mb3JtX2FkZF9lbnRyeQAvc3ZnL2l2b3J5AG91dCBvZiBtZW1vcnkARmVicnVhcnkASmFudWFyeQBndnBsdWdpbl9kb3RfbGF5b3V0X0xUWF9saWJyYXJ5AGd2cGx1Z2luX25lYXRvX2xheW91dF9MVFhfbGlicmFyeQBndnBsdWdpbl9jb3JlX0xUWF9saWJyYXJ5AGdhdGhlcl90aW1lX2VudHJvcHkAbm9kZXNfY29weQBhbGJhbnkASnVseQBTcGFyc2VNYXRyaXhfbXVsdGlwbHkAZXF1YWxseQBhc3NlbWJseQBzdW1tZXJza3kAc2h5AHNhdGlzZnkAYmVhdXRpZnkAbm9qdXN0aWZ5AENsYXNzaWZ5AC9zdmcvbGlnaHRncmV5AC9zdmcvZGltZ3JleQAvc3ZnL2RhcmtncmV5AC9zdmcvbGlnaHRzbGF0ZWdyZXkAL3N2Zy9kYXJrc2xhdGVncmV5AC9zdmcvc2xhdGVncmV5AHdlYmdyZXkAeDExZ3JleQAvc3ZnL2dyZXkAbW92ZSB0byBmcm9udCBsb2NrIGluY29uc2lzdGVuY3kAZXh0cmFjdF9hZGphY2VuY3kAbWVyZ2Vfb25ld2F5AGFycmF5AGFsbG9jQXJyYXkAL3N2Zy9saWdodGdyYXkAL3N2Zy9kaW1ncmF5AC9zdmcvZGFya2dyYXkAL3N2Zy9saWdodHNsYXRlZ3JheQAvc3ZnL2RhcmtzbGF0ZWdyYXkAL3N2Zy9zbGF0ZWdyYXkAd2ViZ3JheQB4MTFncmF5AC9zdmcvZ3JheQBUaHVyc2RheQBUdWVzZGF5AFdlZG5lc2RheQBTYXR1cmRheQBTdW5kYXkATW9uZGF5AEZyaWRheQBNYXkALi4vLi4vbGliL2NncmFwaC9ncmFtbWFyLnkALi4vLi4vbGliL2NvbW1vbi9odG1scGFyc2UueQAlbS8lZC8leQBwb3J0aG95eABwb3J0aG9feXgAeHh4AGJveAB2aWV3Qm94AGNoa0JvdW5kQm94AC9NZWRpYUJveABnZXRfZWRnZV9sYWJlbF9tYXRyaXgAaWRlYWxfZGlzdGFuY2VfbWF0cml4AG11c3Qgbm90IHVuZGVjbGFyZSBwcmVmaXgAdW5ib3VuZCBwcmVmaXgAaHRtbGxleABtYXgAIyUwMnglMDJ4JTAyeAAjJTJ4JTJ4JTJ4JTJ4ACMlMXglMXglMXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweAByYXJyb3cAbGFycm93AEhlbHZldGljYS1OYXJyb3cAYXJyb3dfbGVuZ3RoX2Nyb3cAL3N2Zy9zbm93AHNwcmluZ19lbGVjdHJpY2FsX2VtYmVkZGluZ19zbG93AC9zdmcvbGlnaHR5ZWxsb3cAL3N2Zy9ncmVlbnllbGxvdwAvc3ZnL2xpZ2h0Z29sZGVucm9keWVsbG93AC9zdmcveWVsbG93AGZhdGFsIGVycm9yIC0gc2Nhbm5lciBpbnB1dCBidWZmZXIgb3ZlcmZsb3cAZmxleCBzY2FubmVyIHB1c2gtYmFjayBvdmVyZmxvdwBjb3VyaWVybmV3AFNwcmluZ1Ntb290aGVyX25ldwBUcmlhbmdsZVNtb290aGVyX25ldwBkaWFnX3ByZWNvbl9uZXcAUXVhZFRyZWVfbmV3AFN0cmVzc01ham9yaXphdGlvblNtb290aGVyMl9uZXcAbiAmJiBuZXcAc2tldwBzdHJ2aWV3AC9zdmcvaG9uZXlkZXcAIC1hbmNob3IgdwBzb3J0dgBwb3Y6cG92AE5vdgBpbnYAZXF1aXYAcGl2AG5vbmFtZS5ndgBHRF9yYW5rKGcpW3JdLmF2ID09IEdEX3JhbmsoZylbcl0udgBjYyVzXyV6dQBjYyVzKyV6dQAvc3ZnL3BlcnUAbnUAbXUAJWMlbGx1AFRodQB0YXUAVGF1AE51AE11AF9wb3J0XyVzXyglZClfKCVkKV8ldQBOdW1iZXIgb2YgaXRlcmF0aW9ucyA9ICV1AE51bWJlciBvZiBpbmNyZWFzZXMgPSAldQBwbGFpbnRleHQAc3RyZXNzd3QAaW5wdXQAdGV4dGxheW91dABkb3RfbGF5b3V0AG5lYXRvX2xheW91dABpbml0TGF5b3V0AGNsdXN0AG1hcENsdXN0AGxhYmVsanVzdABzY0FkanVzdABBdWd1c3QAZWRnZXNmaXJzdABub2Rlc2ZpcnN0AG1heGltYWxfaW5kZXBlbmRlbnRfZWRnZV9zZXRfaGVhdmVzdF9lZGdlX3Blcm5vZGVfc3VwZXJub2Rlc19maXJzdABleGlzdAByZWFsaWduTm9kZWxpc3QAYXBwZW5kTm9kZWxpc3QAZGVmYXVsdGRpc3QAbWluZGlzdABwb3dlcl9kaXN0AGdyYXBoX2Rpc3QAYXZnX2Rpc3QAZ2V0RWRnZUxpc3QAaXF1ZXN0AGxvd2FzdABzcHJpbmdfZWxlY3RyaWNhbF9lbWJlZGRpbmdfZmFzdABndl9zb3J0AHZpZXdwb3J0AHRhaWxwb3J0AHVuZXhwZWN0ZWQgcGFyc2VyIHN0YXRlIC0gcGxlYXNlIHNlbmQgYSBidWcgcmVwb3J0AGhlYWRwb3J0AGh0bWxfcG9ydABpbnNlcnQAUlRyZWVJbnNlcnQAZmluZFNWZXJ0AHN0YXJ0AHBhcnQAZXN0aW1hdGVfdGV4dF93aWR0aF8xcHQAcXVvdAB/cm9vdABub3QAbWFrZV92bl9zbG90AGVtaXRfeGRvdAB4ZG90Onhkb3QAZXBzOnhkb3QAc3ZnOnhkb3QAanBnOnhkb3QAcG5nOnhkb3QAanBlZzp4ZG90AGdpZjp4ZG90AGpwZTp4ZG90AHhkb3QxLjQ6eGRvdAB4ZG90MS4yOnhkb3QAc2RvdABtaWRkb3QAZ3Y6ZG90AHBsYWluLWV4dDpkb3QAZG90OmRvdABlcHM6ZG90AGNhbm9uOmRvdABwbGFpbjpkb3QAc3ZnOmRvdABqcGc6ZG90AHBuZzpkb3QAanBlZzpkb3QAZ2lmOmRvdABqcGU6ZG90AH9ib3QAZG9Eb3QAb2JqbGlzdF9mcm9udABwb2ludHNfZnJvbnQAY29sb3JzZWdzX2Zyb250AG5vZGVsaXN0X3BvcF9mcm9udABwYnNfc2l6ZV9mcm9udABzcGFuLT5mb250AHZhZ3hicHJpbnQAeGRvdF9wb2ludABkZWNpZGVfcG9pbnQAVW5zYXRpc2ZpZWQgY29uc3RyYWludAB0cmFuc3BhcmVudABjb21wb25lbnQAaW52YWxpZCBhcmd1bWVudABjb21tZW50AGp1bmsgYWZ0ZXIgZG9jdW1lbnQgZWxlbWVudABjZW50AGkgPT0gZWNudABhcmlhbG10AGx0AGNpcmN1aXQAcG9seV9pbml0AE11bHRpbGV2ZWxfaW5pdABuc2xpbWl0AG1jbGltaXQAUG9ydHJhaXQAbGlnaHQAdmlydHVhbF93ZWlnaHQAbGhlaWdodABLUF9SaWdodABCb29rbWFuLUxpZ2h0AGd0AEtQX0xlZnQAY2hhcnNldABpbnNldABiaXRhcnJheV9yZXNldABzdWJzZXQAYml0YXJyYXlfc2V0AG1hdHJpeF9zZXQAbm9kZWxpc3Rfc2V0AGVkZ2VfbGlzdF9zZXQAdHJhcHNfc2V0AG5vZGVzX3NldABzY2FybGV0AC9zdmcvZGFya3Zpb2xldAAvc3ZnL2JsdWV2aW9sZXQAL3N2Zy92aW9sZXQAVHJlYnVjaGV0AGFneGdldAB0YWlsdGFyZ2V0AGxhYmVsdGFyZ2V0AGVkZ2V0YXJnZXQAaGVhZHRhcmdldABiaXRhcnJheV9nZXQAZGVnbGlzdF9nZXQAbm9kZWxpc3RfZ2V0AGFkal9saXN0X2dldABzZWdfbGlzdF9nZXQAc2FtZV9saXN0X2dldABlZGdlX2xpc3RfZ2V0AG5vZGVfbGlzdF9nZXQAc2ZvbnRfZ2V0AGVkZ2Vfc2V0X2dldAByb3dzX2dldAB0c3RzX2dldABwb2ludHNfZ2V0AHBhaXJzX2dldAB0cmFwc19nZXQAY2VsbHNfZ2V0AGNvbG9yc2Vnc19nZXQAYm94ZXNfZ2V0AHRyaWFuZ2xlc19nZXQAY3ljbGVzX2dldABxbm9kZXNfZ2V0AGVzdGFja19nZXQAaW50X3N0YWNrX2dldABkZnNfc3RhY2tfZ2V0AG5vZGVfc3RhY2tfZ2V0AGJlemllcl9wYXRoX2dldABub2RlX3F1ZXVlX2dldABzdHlsZXNoZWV0AHN0cmljdABhZ2NvcHlkaWN0AGFnbWFrZWRhdGFkaWN0AHJlYy0+ZGljdCA9PSBkYXRhZGljdAB3cml0ZV9kaWN0AHNlY3QAZW5jb2Rpbmcgc3BlY2lmaWVkIGluIFhNTCBkZWNsYXJhdGlvbiBpcyBpbmNvcnJlY3QAYXNwZWN0AGxheWVyc2VsZWN0AEtQX1N1YnRyYWN0AFF1YWRUcmVlX3JlcHVsc2l2ZV9mb3JjZV9pbnRlcmFjdABjb21wYWN0AE9jdAByZXF1ZXN0ZWQgZmVhdHVyZSByZXF1aXJlcyBYTUxfRFREIHN1cHBvcnQgaW4gRXhwYXQAbGFiZWxmbG9hdABsYWJlbF9mbG9hdABTcGFyc2VNYXRyaXhfZnJvbV9jb29yZGluYXRlX2Zvcm1hdAAvc3ZnL3doZWF0AG9iamxpc3RfYXQAZGVnbGlzdF9hdABub2RlbGlzdF9hdABhZGpfbGlzdF9hdABzZWdfbGlzdF9hdABzYW1lX2xpc3RfYXQAZWRnZV9saXN0X2F0AG5vZGVfbGlzdF9hdABzZm9udF9hdABlZGdlX3NldF9hdAByb3dzX2F0AHRzdHNfYXQAcG9pbnRzX2F0AHBhaXJzX2F0AHRyYXBzX2F0AGh0ZXh0c3BhbnNfYXQAY2VsbHNfYXQAY29sb3JzZWdzX2F0AGJveGVzX2F0AHRyaWFuZ2xlc19hdABjeWNsZXNfYXQAcW5vZGVzX2F0AGVzdGFja19hdABpbnRfc3RhY2tfYXQAZGZzX3N0YWNrX2F0AG5vZGVfc3RhY2tfYXQAbm9kZV9xdWV1ZV9hdABTYXQAQWdyYXBoaW5mb190AEFnZWRnZWluZm9fdABBZ25vZGVpbmZvX3QAXHQAZmxhdGluZGV4KGFnaGVhZChlKSkgPCBNLT5ucm93cwBtaW51cwBvcGx1cwBoZWFydHMAc2FtcGxlcG9pbnRzAGRpcmVkZ2Vjb25zdHJhaW50cwBsZXZlbCBhc3NpZ25tZW50IGNvbnN0cmFpbnRzAHh5IHBzZXVkby1vcnRob2dvbmFsIGNvbnN0cmFpbnRzAHl4IHBzZXVkby1vcnRob2dvbmFsIGNvbnN0cmFpbnRzAHh5IG9ydGhvZ29uYWwgY29uc3RyYWludHMAeXggb3J0aG9nb25hbCBjb25zdHJhaW50cwBsaW5lIHNlZ21lbnRzAHNldF9jZWxsX2hlaWdodHMAcmVjdHMAYWNjb3VudGluZ1JlcG9ydFN0YXRzAGVudGl0eVRyYWNraW5nUmVwb3J0U3RhdHMAWmFwZkRpbmdiYXRzAHJlbWluY3Jvc3MAY29tcHJlc3MAZ3Z1c2Vyc2hhcGVfZmlsZV9hY2Nlc3MAYnJhc3MAY2xhc3MAYXBwbHlhdHRycwBhZ21ha2VhdHRycwBiaW5kYXR0cnMAcGFyc2VfbGF5ZXJzAG1rQ2x1c3RlcnMAcm91bmRfY29ybmVycwBtYWtlX2JhcnJpZXJzAGNkYXRhLm50b3BsZXZlbCA9PSBhZ25ub2RlcyhnKSAtIGNkYXRhLm52YXJzAGNhbm5vdCByZWFsbG9jIG9wcwBjYW5ub3QgcmVhbGxvYyBwbmxwcwBlcHMAY29yZV9sb2FkaW1hZ2VfcHMAZXBzOnBzAHBzMjpwcwAobGliKTpwcwBndl90cmltX3plcm9zAGFneGJ1Zl90cmltX3plcm9zAHRleGd5cmVoZXJvcwBpbWFnZXBvcwB0aW5vcwBzZXRFZGdlTGFiZWxQb3MAU2V0dGluZyBpbml0aWFsIHBvc2l0aW9ucwB4bGludGVyc2VjdGlvbnMAY29sdW1ucwBub2Rlc19jb250YWlucwBkZWphdnVzYW5zAG5pbWJ1c3NhbnMAbGliZXJhdGlvbnNhbnMAZnJlZXNhbnMAT3BlblNhbnMAb2Zmc2V0ID09IG5fdGVybXMAZGl0ZW1zAGRpYW1zAGZsYXRpbmRleChhZ3RhaWwoZSkpIDwgTS0+bmNvbHMAY2Fubm90IHJlYWxsb2MgZHEucG5scwBjYW5ub3QgcmVhbGxvYyBwbmxzAGxldmVscwBmb3JjZWxhYmVscwBkaWFnb25hbHMAbWVyZ2VfcmFua3MAc3BsaXRCbG9ja3MAaW52aXMAY2Fubm90IHJlYWxsb2MgdHJpcwBzZXRfY2VsbF93aWR0aHMAQ2FsY3VsYXRpbmcgc2hvcnRlc3QgcGF0aHMAeWVzAHNob3dib3hlcwBiZWF1dGlmeV9sZWF2ZXMAYXR0YWNoX2VkZ2VfbGFiZWxfY29vcmRpbmF0ZXMAcG9seWxpbmVzAHNwbGluZXMAb3J0aG9nb25hbCBsaW5lcwB0ZXhneXJldGVybWVzAG90aW1lcwBUaW1lcwBmb250bmFtZXMAcHJlZml4IG11c3Qgbm90IGJlIGJvdW5kIHRvIG9uZSBvZiB0aGUgcmVzZXJ2ZWQgbmFtZXNwYWNlIG5hbWVzAFNwYXJzZU1hdHJpeF9zdW1fcmVwZWF0X2VudHJpZXMAcGVyaXBoZXJpZXMAR2V0QnJhbmNoZXMAZiA8IGdyYXBoW2pdLm5lZGdlcwBtaW5tYXhfZWRnZXMAZXhjaGFuZ2VfdHJlZV9lZGdlcwBtYWtlU3RyYWlnaHRFZGdlcwB1bmRvQ2x1c3RlckVkZ2VzAGNvbXBvdW5kRWRnZXMAbWVyZ2VfdHJlZXMAX19jbHVzdGVybm9kZXMAYWdubm9kZXMATkRfaWQobnApID09IG5fbm9kZXMATG9hZE5vZGVzAHNpZGVzAHNwYWRlcwB2ZXJ0aWNlcwBjb29yZHMAc2V0Ym91bmRzAG1kcwBjZHMAbWFrZVNlbGZBcmNzAGVtaXRfZWRnZV9ncmFwaGljcwBjbHVicwBjb25zb2xhcwAlbGYlMnMAClN0cmluZyBzdGFydGluZzo8JS44MHMAClN0cmluZyBzdGFydGluZzoiJS44MHMAICUuKnMAJXMlcwBleHBhdDogQWNjb3VudGluZyglcCk6IERpcmVjdCAlMTBsbHUsIGluZGlyZWN0ICUxMGxsdSwgYW1wbGlmaWNhdGlvbiAlOC4yZiVzACUuKnMlYyVzACAlczolcwBfXyVkOiVzAC8lcy8lcwAlcy0lcwAsJXMAIGZvbnQtZmFtaWx5PSIlcwAiIHN0cm9rZS1kYXNoYXJyYXk9IiVzACIgY2xhc3M9IiVzAHBvbHkgJXMAKCglZiwlZiksKCVmLCVmKSkgJXMgJXMAY29sb3IgJXMAcm9vdCA9ICVzACBUaXRsZTogJXMAInN0cmljdCI6ICVzAGNvdXIAdXRyAGFwcGVuZGF0dHIAYWRkYXR0cgBiZWdpbnN0cgBmc3RyAHN0cnZpZXdfc3RyAHBvdl9jb2xvcl9hc19zdHIAdnBzYyE9bnVsbHB0cgBiZW5kVG9TdHIAdWFycgBjcmFycgBsYXJyAGhhcnIAZGFycgB1QXJyAHJBcnIAbEFycgBoQXJyAGRBcnIAQXByAFNwYXJzZU1hdHJpeF9tdWx0aXBseV92ZWN0b3IAdGVybWluYXRvcgBpbnN1bGF0b3IAaW50ZXJuYWxFbnRpdHlQcm9jZXNzb3IAdGV4Z3lyZWN1cnNvcgBzeW50YXggZXJyb3IAbW9uZXlfZ2V0IGVycm9yAEVycm9yAHJmbG9vcgBsZmxvb3IAbGFiZWxmb250Y29sb3IAcGVuY29sb3IAZmlsbGNvbG9yAGJnY29sb3IAcm93IG1ham9yAGNvbHVtbiBtYWpvcgBuZWlnaGJvcgBzdHlsZV9vcgBtcgByYW5rZGlyAHBhZ2VkaXIAbGF5ZXIAdXBwZXIgPj0gbG93ZXIATm9kZUNvdmVyAC9zdmcvc2lsdmVyAGNsdXN0ZXIAZXhwYW5kQ2x1c3RlcgBycHJvbW90ZXIAbHByb21vdGVyAGNlbnRlcgBtYXhpdGVyAHBhcnRpYWwgY2hhcmFjdGVyACEgcm9vdFBhcnNlci0+bV9wYXJlbnRQYXJzZXIAZGtncmVlbmNvcHBlcgBjb29sY29wcGVyAGd2X3NvcnRfY29tcGFyX3dyYXBwZXIAdGFwZXIAb3ZlcmxhcF9iZXppZXIAZmlnX2JlemllcgBjb3VyaWVyAENvdXJpZXIAaGllcgBkYWdnZXIARGFnZ2VyAG91dHB1dG9yZGVyAHBvc3RvcmRlcgBmbGF0X3Jlb3JkZXIAY2VsbGJvcmRlcgBmaXhMYWJlbE9yZGVyAGN5bGluZGVyAC9zdmcvbGF2ZW5kZXIAcmVuZGVyAGZvbGRlcgBjbHVzdGVyX2xlYWRlcgBORF9VRl9zaXplKG4pIDw9IDEgfHwgbiA9PSBsZWFkZXIAT2N0b2JlcgByZWZlcmVuY2UgdG8gaW52YWxpZCBjaGFyYWN0ZXIgbnVtYmVyAE5vdmVtYmVyAFNlcHRlbWJlcgBEZWNlbWJlcgBtYWNyAGJyAHN0YXIAZmVsZHNwYXIAcmVndWxhcgBodGV4dHNwYW5zX2NsZWFyAGlvc19iYXNlOjpjbGVhcgBicnZiYXIATWFyAFxyAE5EX3JhbmsodikgPT0gcgBzdHJlcQBzdHJ2aWV3X2VxAHN0cnZpZXdfc3RyX2VxAHN0cnZpZXdfY2FzZV9zdHJfZXEAc3Rydmlld19jYXNlX2VxAHZwACUlQmVnaW5Qcm9sb2cKL0RvdERpY3QgMjAwIGRpY3QgZGVmCkRvdERpY3QgYmVnaW4KCi9zZXR1cExhdGluMSB7Cm1hcmsKL0VuY29kaW5nVmVjdG9yIDI1NiBhcnJheSBkZWYKIEVuY29kaW5nVmVjdG9yIDAKCklTT0xhdGluMUVuY29kaW5nIDAgMjU1IGdldGludGVydmFsIHB1dGludGVydmFsCkVuY29kaW5nVmVjdG9yIDQ1IC9oeXBoZW4gcHV0CgolIFNldCB1cCBJU08gTGF0aW4gMSBjaGFyYWN0ZXIgZW5jb2RpbmcKL3N0YXJuZXRJU08gewogICAgICAgIGR1cCBkdXAgZmluZGZvbnQgZHVwIGxlbmd0aCBkaWN0IGJlZ2luCiAgICAgICAgeyAxIGluZGV4IC9GSUQgbmUgeyBkZWYgfXsgcG9wIHBvcCB9IGlmZWxzZQogICAgICAgIH0gZm9yYWxsCiAgICAgICAgL0VuY29kaW5nIEVuY29kaW5nVmVjdG9yIGRlZgogICAgICAgIGN1cnJlbnRkaWN0IGVuZCBkZWZpbmVmb250Cn0gZGVmCi9UaW1lcy1Sb21hbiBzdGFybmV0SVNPIGRlZgovVGltZXMtSXRhbGljIHN0YXJuZXRJU08gZGVmCi9UaW1lcy1Cb2xkIHN0YXJuZXRJU08gZGVmCi9UaW1lcy1Cb2xkSXRhbGljIHN0YXJuZXRJU08gZGVmCi9IZWx2ZXRpY2Egc3Rhcm5ldElTTyBkZWYKL0hlbHZldGljYS1PYmxpcXVlIHN0YXJuZXRJU08gZGVmCi9IZWx2ZXRpY2EtQm9sZCBzdGFybmV0SVNPIGRlZgovSGVsdmV0aWNhLUJvbGRPYmxpcXVlIHN0YXJuZXRJU08gZGVmCi9Db3VyaWVyIHN0YXJuZXRJU08gZGVmCi9Db3VyaWVyLU9ibGlxdWUgc3Rhcm5ldElTTyBkZWYKL0NvdXJpZXItQm9sZCBzdGFybmV0SVNPIGRlZgovQ291cmllci1Cb2xkT2JsaXF1ZSBzdGFybmV0SVNPIGRlZgpjbGVhcnRvbWFyawp9IGJpbmQgZGVmCgolJUJlZ2luUmVzb3VyY2U6IHByb2NzZXQgZ3JhcGh2aXogMCAwCi9jb29yZC1mb250LWZhbWlseSAvVGltZXMtUm9tYW4gZGVmCi9kZWZhdWx0LWZvbnQtZmFtaWx5IC9UaW1lcy1Sb21hbiBkZWYKL2Nvb3JkZm9udCBjb29yZC1mb250LWZhbWlseSBmaW5kZm9udCA4IHNjYWxlZm9udCBkZWYKCi9JbnZTY2FsZUZhY3RvciAxLjAgZGVmCi9zZXRfc2NhbGUgewogICAgICAgZHVwIDEgZXhjaCBkaXYgL0ludlNjYWxlRmFjdG9yIGV4Y2ggZGVmCiAgICAgICBzY2FsZQp9IGJpbmQgZGVmCgolIHN0eWxlcwovc29saWQgeyBbXSAwIHNldGRhc2ggfSBiaW5kIGRlZgovZGFzaGVkIHsgWzkgSW52U2NhbGVGYWN0b3IgbXVsIGR1cCBdIDAgc2V0ZGFzaCB9IGJpbmQgZGVmCi9kb3R0ZWQgeyBbMSBJbnZTY2FsZUZhY3RvciBtdWwgNiBJbnZTY2FsZUZhY3RvciBtdWxdIDAgc2V0ZGFzaCB9IGJpbmQgZGVmCi9pbnZpcyB7L2ZpbGwge25ld3BhdGh9IGRlZiAvc3Ryb2tlIHtuZXdwYXRofSBkZWYgL3Nob3cge3BvcCBuZXdwYXRofSBkZWZ9IGJpbmQgZGVmCi9ib2xkIHsgMiBzZXRsaW5ld2lkdGggfSBiaW5kIGRlZgovZmlsbGVkIHsgfSBiaW5kIGRlZgovdW5maWxsZWQgeyB9IGJpbmQgZGVmCi9yb3VuZGVkIHsgfSBiaW5kIGRlZgovZGlhZ29uYWxzIHsgfSBiaW5kIGRlZgovdGFwZXJlZCB7IH0gYmluZCBkZWYKCiUgaG9va3MgZm9yIHNldHRpbmcgY29sb3IgCi9ub2RlY29sb3IgeyBzZXRoc2Jjb2xvciB9IGJpbmQgZGVmCi9lZGdlY29sb3IgeyBzZXRoc2Jjb2xvciB9IGJpbmQgZGVmCi9ncmFwaGNvbG9yIHsgc2V0aHNiY29sb3IgfSBiaW5kIGRlZgovbm9wY29sb3Ige3BvcCBwb3AgcG9wfSBiaW5kIGRlZgoKL2JlZ2lucGFnZSB7CSUgaSBqIG5wYWdlcwoJL25wYWdlcyBleGNoIGRlZgoJL2ogZXhjaCBkZWYKCS9pIGV4Y2ggZGVmCgkvc3RyIDEwIHN0cmluZyBkZWYKCW5wYWdlcyAxIGd0IHsKCQlnc2F2ZQoJCQljb29yZGZvbnQgc2V0Zm9udAoJCQkwIDAgbW92ZXRvCgkJCShcKCkgc2hvdyBpIHN0ciBjdnMgc2hvdyAoLCkgc2hvdyBqIHN0ciBjdnMgc2hvdyAoXCkpIHNob3cKCQlncmVzdG9yZQoJfSBpZgp9IGJpbmQgZGVmCgovc2V0X2ZvbnQgewoJZmluZGZvbnQgZXhjaAoJc2NhbGVmb250IHNldGZvbnQKfSBkZWYKCiUgZHJhdyB0ZXh0IGZpdHRlZCB0byBpdHMgZXhwZWN0ZWQgd2lkdGgKL2FsaWduZWR0ZXh0IHsJCQklIHdpZHRoIHRleHQKCS90ZXh0IGV4Y2ggZGVmCgkvd2lkdGggZXhjaCBkZWYKCWdzYXZlCgkJd2lkdGggMCBndCB7CgkJCVtdIDAgc2V0ZGFzaAoJCQl0ZXh0IHN0cmluZ3dpZHRoIHBvcCB3aWR0aCBleGNoIHN1YiB0ZXh0IGxlbmd0aCBkaXYgMCB0ZXh0IGFzaG93CgkJfSBpZgoJZ3Jlc3RvcmUKfSBkZWYKCi9ib3hwcmltIHsJCQkJJSB4Y29ybmVyIHljb3JuZXIgeHNpemUgeXNpemUKCQk0IDIgcm9sbAoJCW1vdmV0bwoJCTIgY29weQoJCWV4Y2ggMCBybGluZXRvCgkJMCBleGNoIHJsaW5ldG8KCQlwb3AgbmVnIDAgcmxpbmV0bwoJCWNsb3NlcGF0aAp9IGJpbmQgZGVmCgovZWxsaXBzZV9wYXRoIHsKCS9yeSBleGNoIGRlZgoJL3J4IGV4Y2ggZGVmCgkveSBleGNoIGRlZgoJL3ggZXhjaCBkZWYKCW1hdHJpeCBjdXJyZW50bWF0cml4CgluZXdwYXRoCgl4IHkgdHJhbnNsYXRlCglyeCByeSBzY2FsZQoJMCAwIDEgMCAzNjAgYXJjCglzZXRtYXRyaXgKfSBiaW5kIGRlZgoKL2VuZHBhZ2UgeyBzaG93cGFnZSB9IGJpbmQgZGVmCi9zaG93cGFnZSB7IH0gZGVmCgovbGF5ZXJjb2xvcnNlcQoJWwklIGxheWVyIGNvbG9yIHNlcXVlbmNlIC0gZGFya2VzdCB0byBsaWdodGVzdAoJCVswIDAgMF0KCQlbLjIgLjggLjhdCgkJWy40IC44IC44XQoJCVsuNiAuOCAuOF0KCQlbLjggLjggLjhdCgldCmRlZgoKL2xheWVybGVuIGxheWVyY29sb3JzZXEgbGVuZ3RoIGRlZgoKL3NldGxheWVyIHsvbWF4bGF5ZXIgZXhjaCBkZWYgL2N1cmxheWVyIGV4Y2ggZGVmCglsYXllcmNvbG9yc2VxIGN1cmxheWVyIDEgc3ViIGxheWVybGVuIG1vZCBnZXQKCWFsb2FkIHBvcCBzZXRoc2Jjb2xvcgoJL25vZGVjb2xvciB7bm9wY29sb3J9IGRlZgoJL2VkZ2Vjb2xvciB7bm9wY29sb3J9IGRlZgoJL2dyYXBoY29sb3Ige25vcGNvbG9yfSBkZWYKfSBiaW5kIGRlZgoKL29ubGF5ZXIgeyBjdXJsYXllciBuZSB7aW52aXN9IGlmIH0gZGVmCgovb25sYXllcnMgewoJL215dXBwZXIgZXhjaCBkZWYKCS9teWxvd2VyIGV4Y2ggZGVmCgljdXJsYXllciBteWxvd2VyIGx0CgljdXJsYXllciBteXVwcGVyIGd0CglvcgoJe2ludmlzfSBpZgp9IGRlZgoKL2N1cmxheWVyIDAgZGVmCgolJUVuZFJlc291cmNlCiUlRW5kUHJvbG9nCiUlQmVnaW5TZXR1cAoxNCBkZWZhdWx0LWZvbnQtZmFtaWx5IHNldF9mb250CiUgL2Fycm93bGVuZ3RoIDEwIGRlZgolIC9hcnJvd3dpZHRoIDUgZGVmCgolIG1ha2Ugc3VyZSBwZGZtYXJrIGlzIGhhcm1sZXNzIGZvciBQUy1pbnRlcnByZXRlcnMgb3RoZXIgdGhhbiBEaXN0aWxsZXIKL3BkZm1hcmsgd2hlcmUge3BvcH0ge3VzZXJkaWN0IC9wZGZtYXJrIC9jbGVhcnRvbWFyayBsb2FkIHB1dH0gaWZlbHNlCiUgbWFrZSAnPDwnIGFuZCAnPj4nIHNhZmUgb24gUFMgTGV2ZWwgMSBkZXZpY2VzCi9sYW5ndWFnZWxldmVsIHdoZXJlIHtwb3AgbGFuZ3VhZ2VsZXZlbH17MX0gaWZlbHNlCjIgbHQgewogICAgdXNlcmRpY3QgKDw8KSBjdm4gKFspIGN2biBsb2FkIHB1dAogICAgdXNlcmRpY3QgKD4+KSBjdm4gKFspIGN2biBsb2FkIHB1dAp9IGlmCgolJUVuZFNldHVwAHN1cABncm91cABjdXAAdGhpbnNwAGVuc3AAZW1zcABuYnNwAHBlcnAAd2VpZXJwAGdlbmVyYXRlLWNvbnN0cmFpbnRzLmNwcABibG9jay5jcHAAY3NvbHZlX1ZQU0MuY3BwAH90b3AAcHJvcABhZ3hicG9wAG5vcABhc3ltcABjb21wAGZpbmRDQ29tcABibXAAc2NhbGVfY2xhbXAAeGxwAGxwICE9IGNscAB0YWlsX2xwAGhlYWRfbHAAdGFpbHRvb2x0aXAAbGFiZWx0b29sdGlwAGVkZ2V0b29sdGlwAGhlYWR0b29sdGlwAGhlbGxpcAB0YWlsY2xpcABoZWFkY2xpcAAvc3ZnL3BhcGF5YXdoaXAAaHAAdHJhbnNwb3NlX3N0ZXAAY29tcHV0ZVN0ZXAAbGF5ZXJsaXN0c2VwAGxheWVyc2VwAGlwc2VwAHJhbmtzZXAAbm9kZXNlcABzdWJncmFwaHMgbmVzdGVkIG1vcmUgdGhhbiAlZCBkZWVwAFNlcABzZmRwAGNwAHdlYnAAaWRtYXAAY2x1c3Rlcl9tYXAAY21hcHg6bWFwAGVwczptYXAAY21hcHhfbnA6bWFwAGltYXBfbnA6bWFwAGlzbWFwOm1hcABpbWFwOm1hcABjbWFwOm1hcABzdmc6bWFwAGpwZzptYXAAcG5nOm1hcABqcGVnOm1hcABnaWY6bWFwAGpwZTptYXAAb3ZlcmxhcABsZXZlbHNnYXAAY2FwAEtQX1VwACVJOiVNOiVTICVwAHN0YXJ0IDw9IHAAcnNxdW8AbHNxdW8AcmRxdW8AbGRxdW8AYmRxdW8Ac2JxdW8AcnNhcXVvAGxzYXF1bwByYXF1bwBsYXF1bwBhdXRvAE51bml0bwAvc3ZnL3RvbWF0bwBuZWF0bwBldXJvAC9zdmcvZ2FpbnNib3JvAE1ldGhvZFplcm8AbWljcm8AbmltYnVzbW9ubwBsaWJlcmF0aW9ubW9ubwBmcmVlbW9ubwBhcmltbwByYXRpbwBwb3J0aG8AcmhvAFJobwAvc3ZnL2luZGlnbwBwaW5mbwBjY2dyYXBoaW5mbwBjY2dub2RlaW5mbwBjbF9lZGdlX2luZm8AZ2V0UGFja0luZm8AbWFrZUluZm8AcGFyc2VQYWNrTW9kZUluZm8AY2lyY28AaWNvAFwlMDNvAC9zdmcvcm9zeWJyb3duAC9zdmcvc2FuZHlicm93bgB2ZXJ5ZGFya2Jyb3duAC9zdmcvc2FkZGxlYnJvd24AL3N2Zy9icm93bgBLUF9Eb3duAGNhbm5vdCBjaGFuZ2Ugc2V0dGluZyBvbmNlIHBhcnNpbmcgaGFzIGJlZ3VuAFN1bgBKdW4AdGhvcm4AL3N2Zy9jcmltc29uAHhkb3RfanNvbgB4ZG90X2pzb246anNvbgBqc29uMDpqc29uAG9taWNyb24AT21pY3JvbgBzY2Fyb24AU2Nhcm9uAHdlYm1hcm9vbgB4MTFtYXJvb24AL3N2Zy9tYXJvb24AL3N2Zy9saWdodHNhbG1vbgAvc3ZnL2RhcmtzYWxtb24AL3N2Zy9zYWxtb24AdXBzaWxvbgBlcHNpbG9uAFVwc2lsb24ARXBzaWxvbgByZXNvbHV0aW9uAGRpc3RvcnRpb24Ac3RkOjpleGNlcHRpb24AcGFydGl0aW9uAGRvdF9wb3NpdGlvbgBTZXR0aW5nIHVwIHN0cmVzcyBmdW5jdGlvbgB1bmNsb3NlZCBDREFUQSBzZWN0aW9uAHBvc3RhY3Rpb24Acm90YXRpb24Ab3JpZW50YXRpb24AYWJvbWluYXRpb24AYWNjb3VudGluZ0dldEN1cnJlbnRBbXBsaWZpY2F0aW9uAHhkb3R2ZXJzaW9uAFNUc2V0VW5pb24APHBvbHlnb24AaGV4YWdvbgBzZXB0YWdvbgBwZW50YWdvbgB0cmlwbGVvY3RhZ29uAGRvdWJsZW9jdGFnb24AL3N2Zy9sZW1vbmNoaWZmb24ATW9uAHBsdXNtbgBub3RpbgBpc2luAC9zdmcvbW9jY2FzaW4AcGluAG1pbgB2b3JvX21hcmdpbgBpbmZpbgBvbmVkX29wdGltaXplcl90cmFpbgBwbGFpbgBtYWtlX2NoYWluAG1lcmdlX2NoYWluAGRlbGV0ZU1pbgBmaW5kTWluAHZhbGlnbgBiYWxpZ24AeWVuAE11bHRpbGV2ZWxfY29hcnNlbgBjdXJyZW4AUG9ic29wZW4AZ3ZfZm9wZW4AZ3Z1c2Vyc2hhcGVfb3BlbgBlbnRpdHlUcmFja2luZ09uT3BlbgAvc3ZnL2xpbmVuAGRpbWVuAG1pbmxlbgBzdHlsZV90b2tlbgB1bmNsb3NlZCB0b2tlbgAvc3ZnL3llbGxvd2dyZWVuAG1lZGl1bWZvcmVzdGdyZWVuAC9zdmcvZm9yZXN0Z3JlZW4AL3N2Zy9saWdodGdyZWVuAGh1bnRlcnNncmVlbgAvc3ZnL2xhd25ncmVlbgAvc3ZnL2RhcmtncmVlbgAvc3ZnL21lZGl1bXNwcmluZ2dyZWVuAC9zdmcvc3ByaW5nZ3JlZW4AL3N2Zy9kYXJrb2xpdmVncmVlbgAvc3ZnL2xpbWVncmVlbgAvc3ZnL3BhbGVncmVlbgB3ZWJncmVlbgAvc3ZnL2xpZ2h0c2VhZ3JlZW4AL3N2Zy9tZWRpdW1zZWFncmVlbgAvc3ZnL2RhcmtzZWFncmVlbgAvc3ZnL3NlYWdyZWVuAHgxMWdyZWVuAC9zdmcvZ3JlZW4AR3JlZW4AL3N2Zy9saWdodGN5YW4AL3N2Zy9kYXJrY3lhbgAvc3ZnL2N5YW4AbmV3dGFuAGRhcmt0YW4AL3N2Zy90YW4Acm93c3BhbgBjb2xzcGFuAG5hbgB0aW1lc25ld3JvbWFuAG5pbWJ1c3JvbWFuAHRpbWVzcm9tYW4AVGltZXMtUm9tYW4AUGFsYXRpbm8tUm9tYW4ATmV3Q2VudHVyeVNjaGxiay1Sb21hbgBKYW4AR0RfcmFuayhnKVtyXS5uIDw9IEdEX3JhbmsoZylbcl0uYW4AYWd4YnB1dF9uAFxuAG5fbm9kZXMgPT0gZ3JhcGgtPm4AQS0+bSA9PSBBLT5uAGpvYi0+b2JqLT51Lm4AcywlbGYsJWxmJW4AIGUsJWxmLCVsZiVuACVkICUxWyJdJW4AdiA9PSBuAG56YyA9PSBuAGIgPT0gbgBuY2x1c3RlciA8PSBuAHBzeW0AYWxlZnN5bQB0aGV0YXN5bQBxdWFudHVtAHN1bQAvc3ZnL3BsdW0AaW52dHJhcGV6aXVtAG1lZGl1bQA5OnByaXNtAGxybQBjdXN0b20AYXB0ci0+dGFnID09IFRfYXRvbQAvZGV2L3VyYW5kb20AZ3ZfcmFuZG9tAHJsbQBzaW0ASU1EU19naXZlbl9kaW0Ab3JkbQBwYXJhbGxlbG9ncmFtAC9zdmcvbWludGNyZWFtAEp1bAB0bABmcmFzbABTeW1ib2wAZmluZENvbAA8P3htbAB5dW1sAHV1bWwAb3VtbABpdW1sAGV1bWwAYXVtbABZdW1sAFV1bWwAT3VtbABJdW1sAEV1bWwAQXVtbABjb3JlX2xvYWRpbWFnZV92cm1sAGpwZzp2cm1sAHBuZzp2cm1sAGpwZWc6dnJtbABnaWY6dnJtbABqcGU6dnJtbABidWxsAGZpbGwAL3N2Zy9zZWFzaGVsbABmb3JhbGwAQXByaWwAcGVybWlsAHJjZWlsAGxjZWlsAGNjZWRpbABDY2VkaWwAYXJyb3d0YWlsAGx0YWlsAHNhbWV0YWlsAGxldmVsID49IDAgJiYgbGV2ZWwgPD0gbi0+bGV2ZWwAc3RyZXNzX21ham9yaXphdGlvbl9rRF9ta2VybmVsAGlzX3BhcmFsbGVsAENhbGN1bGF0aW5nIGNpcmN1aXQgbW9kZWwAQ2FsY3VsYXRpbmcgc3Vic2V0IG1vZGVsAENhbGN1bGF0aW5nIE1EUyBtb2RlbAB4bGFiZWwAdGFpbGxhYmVsAGhlYWRsYWJlbABtYWtlX2xhYmVsAGdyYXBoIGxhYmVsAGlleGNsAG9ianAtPmxibABvdmFsAG1lcmdldmlydHVhbAAvc3ZnL2xpZ2h0Y29yYWwAL3N2Zy9jb3JhbABTcGFyc2VNYXRyaXhfZnJvbV9jb29yZGluYXRlX2FycmF5c19pbnRlcm5hbABNdWx0aWxldmVsX2NvYXJzZW5faW50ZXJuYWwAUXVhZFRyZWVfYWRkX2ludGVybmFsAGFycm93X2xlbmd0aF9ub3JtYWwAYXJpYWwAcmFkaWFsAC9zdmcvdGVhbAByZWFsAGxvY2FsAGVzdGltYXRlX2NoYXJhY3Rlcl93aWR0aF9jYW5vbmljYWwAZ2xvYmFsAHEtPmwALi4vLi4vbGliL2NncmFwaC9zY2FuLmwAdGs6dGsAZ2lmOnRrAHBhdGNod29yawB0b2sAYm9vawBBdmFudEdhcmRlLUJvb2sAc2luawBvdmVybGFwX3NocmluawBzcGljeXBpbmsAL3N2Zy9ob3RwaW5rAC9zdmcvbGlnaHRwaW5rAC9zdmcvZGVlcHBpbmsAbmVvbnBpbmsAL3N2Zy9waW5rAG5ld3JhbmsAY2x1c3RlcnJhbmsAX25ld19yYW5rAGluc3RhbGxfaW5fcmFuawByZW1vdmVfZnJvbV9yYW5rAC9zdmcvY29ybnNpbGsAb25lYmxvY2sAdi0+bGVmdC0+YmxvY2sgPT0gdi0+cmlnaHQtPmJsb2NrAC9zdmcvZmlyZWJyaWNrAFBRY2hlY2sAcGFjawAvc3ZnL2JsYWNrAEJsYWNrAHNmb250X2JhY2sAcm93c19iYWNrAHRzdHNfYmFjawBjb2xvcnNlZ3NfYmFjawBub2RlX2xpc3RfcG9wX2JhY2sAc2ZvbnRfcG9wX2JhY2sAdHN0c19wb3BfYmFjawBlc3RhY2tfcG9wX2JhY2sAZGZzX3N0YWNrX3BvcF9iYWNrAGRmc19zdGFja19iYWNrAHp3agB6d25qAGpvYi0+b2JqAGdldGludHJzeGkAcHNpAFBzaQBDYWxpYnJpAEZyaQB0d29waQBkcGkAdm9yb25vaQBWb3Jvbm9pAGNoYW5pAGRlbWkAQm9va21hbi1EZW1pAEF2YW50R2FyZGUtRGVtaQAvc3ZnL2RhcmtraGFraQAvc3ZnL2toYWtpAHBoaQBjaGkAUGhpAENoaQBkaQBYaQBQaQBORF9pZChucCkgPT0gaQBTdHJlc3NNYWpvcml6YXRpb25TbW9vdGhlcl9zbW9vdGgAU3ByaW5nU21vb3RoZXJfc21vb3RoAGJvdGgAc3RhcnRzd2l0aABsaW5lbGVuZ3RoAGJhZF9hcnJheV9uZXdfbGVuZ3RoAGF2ZXJhZ2VfZWRnZV9sZW5ndGgAZXRoAHBlbndpZHRoAGx3aWR0aABzZXRsaW5ld2lkdGgAc2hvcnRwYXRoAGZvbnRwYXRoAFBvYnNwYXRoAGJlZ2lucGF0aABpbWFnZXBhdGgAZW5kcGF0aABzdHJhaWdodF9wYXRoAG1hcF9wYXRoADxwYXRoAGNhbm5vdCBmaW5kIHRyaWFuZ2xlIHBhdGgAL3N2Zy9sYXZlbmRlcmJsdXNoAGZsZXNoAG9zbGFzaABPc2xhc2gAZHRzdHJoYXNoAHN0cmRpY3RfaGFzaABuZGFzaABtZGFzaABkaWdyYXBoAHN1YmdyYXBoAGNvbnN0cnVjdF9ncmFwaABjaGtTZ3JhcGgAY2xvc2VzdF9wYWlyczJncmFwaABhZ2RlbGV0ZSBvbiB3cm9uZyBncmFwaABjb25uZWN0R3JhcGgAdXBzaWgAJXNsaW5lLXRocm91Z2gAZmxhdF9zZWFyY2gAY2hhblNlYXJjaABSVHJlZVNlYXJjaABNYXJjaABEaXNjb25CcmFuY2gAUGlja0JyYW5jaABBZGRCcmFuY2gALi4vLi4vbGliL3V0aWwvYml0YXJyYXkuaAAuLi8uLi9saWIvdXRpbC9zdHJ2aWV3LmgALi4vLi4vbGliL2NpcmNvZ2VuL25vZGVsaXN0LmgALi4vLi4vbGliL3V0aWwvc29ydC5oAC4uLy4uL2xpYi9jZ3JhcGgvbm9kZV9zZXQuaAAuLi8uLi9saWIvY29tbW9uL2dsb2JhbHMuaAAuLi8uLi9saWIvY29tbW9uL2JveGVzLmgALi4vLi4vbGliL29ydGhvL3N0cnVjdHVyZXMuaAAuLi8uLi9saWIvZG90Z2VuL2RvdHByb2NzLmgALi4vLi4vbGliL3V0aWwvc3RyZXEuaAAuLi8uLi9saWIvb3J0aG8vdHJhcC5oAC4uLy4uL2xpYi91dGlsL3N0YXJ0c3dpdGguaAAuLi8uLi9saWIvdXRpbC9ndl9tYXRoLmgALi4vLi4vbGliL29ydGhvL3Jhd2dyYXBoLmgALi4vLi4vbGliL3V0aWwvYWd4YnVmLmgALi4vLi4vbGliL3V0aWwvdG9rZW5pemUuaAAuLi8uLi9saWIvY29tbW9uL2h0bWx0YWJsZS5oAC4uLy4uL2xpYi91dGlsL2FsbG9jLmgAYXV4ZwBjb3JlX2xvYWRpbWFnZV9zdmcAc3ZnOnN2ZwBqcGc6c3ZnAHBuZzpzdmcAanBlZzpzdmcAZ2lmOnN2ZwBqcGU6c3ZnAHN2Z19pbmxpbmU6c3ZnAEF1ZwBkb1Byb2xvZwBwb3dlcl9pdGVyYXRpb25fb3J0aG9nAHBuZwBpZGVhbF9kaXN0X3NjaGVtZSB2YWx1ZSB3cm9uZwB4ZG90IHZlcnNpb24gIiVzIiB0b28gbG9uZwBjb25nAGxibGVuY2xvc2luZwBiYXNpY19zdHJpbmcAZmFpbHVyZSBtYWxsb2MnaW5nIGZvciByZXN1bHQgc3RyaW5nAHNwcmluZwBvcmRlcmluZwBnZW5lcmF0ZVJhbmRvbU9yZGVyaW5nAGFyaW5nAEFyaW5nAERhbXBpbmcAV2FybmluZwBvdmVybGFwX3NjYWxpbmcAeCBhbmQgeSBzY2FsaW5nAG9sZCBzY2FsaW5nAHNtb290aGluZwB1bmtub3duIGVuY29kaW5nAG11bHRpbGV2ZWxfc3ByaW5nX2VsZWN0cmljYWxfZW1iZWRkaW5nAHNwcmluZ19lbGVjdHJpY2FsX3NwcmluZ19lbWJlZGRpbmcAY2VsbHBhZGRpbmcAY2VsbHNwYWNpbmcAcmFuZwBsYW5nAGZpdmVwb3ZlcmhhbmcAdGhyZWVwb3ZlcmhhbmcAbm92ZXJoYW5nAGVtaXRfaHRtbF9pbWcAbGcAb3JpZwBzemxpZwBvZWxpZwBhZWxpZwBPRWxpZwBBRWxpZwBjb3JlX2xvYWRpbWFnZV9maWcAanBnOmZpZwBwbmc6ZmlnAGZpZzpmaWcAanBlZzpmaWcAZ2lmOmZpZwBqcGU6ZmlnAGVnZwBuZXh0X3NlZwByZWcAanBlZwBpID09IGRlZwBkZwBjZwBjbG9zZXN1YmcAbWlzbWF0Y2hlZCB0YWcAYmV6LT5zZmxhZwBiZXotPmVmbGFnACEqZmxhZwAhZmxhZwA8ZwAlLjVnLCUuNWcsJS41ZywlLjVnACUuNWcgJS41ZwAlZyAlZwBib3hJbnRlcnNlY3RmAGVwc2YAYWdlZGdlc2VxY21wZgBjY3dyb3RhdGVwZgBmbm9mAGluZgBzZWxmAGhhbGYAJWxmJWxmJWxmJWxmACVsZiwlbGYsJWxmLCVsZiwlbGYAJSpmICUqZiAlbGYgJWxmAGxpYmVyYXRpb25zZXJpZgBmcmVlc2VyaWYAc2Fucy1TZXJpZgBnaWYAL3N2Zy9wZWFjaHB1ZmYAcmlmZgBhY2NvdW50aW5nUmVwb3J0RGlmZgB0YWlsaHJlZgBsYWJlbGhyZWYAZWRnZWhyZWYAaGVhZGhyZWYAb3JkZgBwZGYAc2lnbWFmAFxmACUuMExmACVMZgB1cy0+ZgAlLjAzZgAlcyB0cmFuc21pdCAlLjNmAHJnYjwlOS4zZiwgJTkuM2YsICU5LjNmPiB0cmFuc21pdCAlLjNmACUuMDJmACUuMmYAJS4wZiwlLjBmLCUuMGYsJS4wZgAgJS4wZiwlLjBmACUuMGYgJS4wZiAlLjBmICUuMGYAIiBmaWxsLW9wYWNpdHk9IiVmACIgc3Ryb2tlLW9wYWNpdHk9IiVmAApmaW5hbCBlID0gJWYAYnJvbnplAGFycm93c2l6ZQBsYWJlbGZvbnRzaXplAHNlYXJjaHNpemUAZml4ZWRzaXplAG5vZGVsaXN0X3NpemUAbm9kZV9zZXRfc2l6ZQB0cmFwc19zaXplAGNlbGxzX3NpemUAbm9kZXNfc2l6ZQB0ZXh0c3Bhbl9zaXplAHN2Z19zaXplAGNhcGFjaXR5ID4gZGljdC0+c2l6ZQBjYXBhY2l0eSA+IHNlbGYtPnNpemUAYnouc2l6ZQBwb2ludC1zaXplAG5vcm1hbGl6ZQBFTGluaXRpYWxpemUAbWtNYXplAGljdXJ2ZQBub2RlbGlzdF9yZW1vdmUAYWRqX2xpc3RfcmVtb3ZlAG5vZGVfc2V0X3JlbW92ZQBzdHJkaWN0X3JlbW92ZQBzb2x2ZQAhdi0+YWN0aXZlAC1hY3RpdmUAZm9udF9pbl9saXN0X3Blcm1pc3NpdmUAL3N2Zy9vbGl2ZQB1Z3JhdmUAb2dyYXZlAGlncmF2ZQBlZ3JhdmUAYWdyYXZlAFVncmF2ZQBPZ3JhdmUASWdyYXZlAEVncmF2ZQBBZ3JhdmUAdHJ1ZQAvc3ZnL2Jpc3F1ZQBvYmxpcXVlAEF2YW50R2FyZGUtQm9va09ibGlxdWUAQXZhbnRHYXJkZS1EZW1pT2JsaXF1ZQBIZWx2ZXRpY2EtTmFycm93LUJvbGRPYmxpcXVlAENvdXJpZXItQm9sZE9ibGlxdWUASGVsdmV0aWNhLUJvbGRPYmxpcXVlAEhlbHZldGljYS1OYXJyb3ctT2JsaXF1ZQBDb3VyaWVyLU9ibGlxdWUASGVsdmV0aWNhLU9ibGlxdWUAbmF2eWJsdWUAL3N2Zy9saWdodHNreWJsdWUAL3N2Zy9kZWVwc2t5Ymx1ZQAvc3ZnL3NreWJsdWUAbmV3bWlkbmlnaHRibHVlAC9zdmcvbWlkbmlnaHRibHVlAC9zdmcvbGlnaHRibHVlAC9zdmcvY2FkZXRibHVlAC9zdmcvY29ybmZsb3dlcmJsdWUAL3N2Zy9kb2RnZXJibHVlAC9zdmcvcG93ZGVyYmx1ZQBuZW9uYmx1ZQAvc3ZnL21lZGl1bWJsdWUAL3N2Zy9saWdodHN0ZWVsYmx1ZQAvc3ZnL3N0ZWVsYmx1ZQAvc3ZnL3JveWFsYmx1ZQAvc3ZnL2RhcmtibHVlAHJpY2hibHVlAGxpZ2h0c2xhdGVibHVlAC9zdmcvbWVkaXVtc2xhdGVibHVlAC9zdmcvZGFya3NsYXRlYmx1ZQAvc3ZnL3NsYXRlYmx1ZQAvc3ZnL2FsaWNlYmx1ZQAvc3ZnL2JsdWUAY2FsbFN0b3JlRW50aXR5VmFsdWUAc3RvcmVBdHRyaWJ1dGVWYWx1ZQBCbHVlAG5lYXRvX2VucXVldWUAVHVlAGNvbnZlcnRTUHRvUm91dGUAeWFjdXRlAHVhY3V0ZQBvYWN1dGUAaWFjdXRlAGVhY3V0ZQBhYWN1dGUAWWFjdXRlAFVhY3V0ZQBPYWN1dGUASWFjdXRlAEVhY3V0ZQBBYWN1dGUAcmVmZXJlbmNlIHRvIGV4dGVybmFsIGVudGl0eSBpbiBhdHRyaWJ1dGUAZHVwbGljYXRlIGF0dHJpYnV0ZQBub3RlAHByaW1lcnNpdGUAcmlib3NpdGUAcmVzdHJpY3Rpb25zaXRlAHByb3RlYXNlc2l0ZQAvc3ZnL2dob3N0d2hpdGUAL3N2Zy9uYXZham93aGl0ZQAvc3ZnL2Zsb3JhbHdoaXRlAC9zdmcvYW50aXF1ZXdoaXRlAC9zdmcvd2hpdGUAV2hpdGUAcG9wX29ial9zdGF0ZQBwY3Bfcm90YXRlAGNvbmNlbnRyYXRlAGRlY29yYXRlAFF1YWRUcmVlX3JlcHVsc2l2ZV9mb3JjZV9hY2N1bXVsYXRlAG5vdHJhbnNsYXRlAC9zdmcvY2hvY29sYXRlAGdlb21VcGRhdGUAaW52aG91c2UAL3N2Zy9jaGFydHJldXNlAG5vZGVsaXN0X3JldmVyc2UAWE1MX1BhcnNlADxlbGxpcHNlAGR1c3R5cm9zZQAvc3ZnL21pc3R5cm9zZQBTcGFyc2VNYXRyaXhfdHJhbnNwb3NlAGFnY2xvc2UAZW50aXR5VHJhY2tpbmdPbkNsb3NlAFNwYXJzZU1hdHJpeF9tdWx0aXBseV9kZW5zZQBmYWxzZQAvc3ZnL21lZGl1bXR1cnF1b2lzZQAvc3ZnL2Rhcmt0dXJxdW9pc2UAL3N2Zy9wYWxldHVycXVvaXNlAC9zdmcvdHVycXVvaXNlAHBoYXNlAC9zdmcvYXp1cmUAc2lnbmF0dXJlAGNvcmUATXNxdWFyZQBQYWxhdGlubyBMaW5vdHlwZQBBLT50eXBlID09IEItPnR5cGUAc3VwZQBlbGxpcHNlX3RhbmdlbnRfc2xvcGUAZ3ZyZW5kZXJfdXNlcnNoYXBlAG1pdGVyX3NoYXBlAGxhbmRzY2FwZQBMYW5kc2NhcGUASnVuZQBub25lAGRvY3VtZW50IGlzIG5vdCBzdGFuZGFsb25lAGNvdXNpbmUAL3N2Zy9tZWRpdW1hcXVhbWFyaW5lAC9zdmcvYXF1YW1hcmluZQA8cG9seWxpbmUAJXNvdmVybGluZQB1bmRlcmxpbmUAUHJvdXRlc3BsaW5lAGxpbmVhcl9zcGxpbmUAYl9zcGxpbmUAb2xpbmUAYWd4YnVmX2lzX2lubGluZQBzdmdfaW5saW5lAHJlZmluZQBwcmltZQBQcmltZQAvc3ZnL2xpbWUAY29sb3JzY2hlbWUAbGFiZWxfc2NoZW1lAHNhbWUAbGFiZWxmb250bmFtZQBVRl9zZXRuYW1lAGZvbnRfbmFtZQBmb250LT5uYW1lAHVzLT5uYW1lAHJlc2VydmVkIHByZWZpeCAoeG1sKSBtdXN0IG5vdCBiZSB1bmRlY2xhcmVkIG9yIGJvdW5kIHRvIGFub3RoZXIgbmFtZXNwYWNlIG5hbWUAc3R5bGUAL3N2Zy90aGlzdGxlAHRpdGxlAC9zdmcvbWVkaXVtcHVycGxlAGRhcmtwdXJwbGUAd2VicHVycGxlAHJlYmVjY2FwdXJwbGUAdmVyeV9saWdodF9wdXJwbGUAbWVkX3B1cnBsZQB4MTFwdXJwbGUAL3N2Zy9wdXJwbGUAc2hhcGVmaWxlAGdyYWRpZW50YW5nbGUAcmVjdGFuZ2xlAFJlY3RhbmdsZQBsYWJlbGFuZ2xlAGludnRyaWFuZ2xlAGRlc3RpbmF0aW9uIHBvaW50IG5vdCBpbiBhbnkgdHJpYW5nbGUAc291cmNlIHBvaW50IG5vdCBpbiBhbnkgdHJpYW5nbGUAZGZzQ3ljbGUAZG91YmxlY2lyY2xlAE1jaXJjbGUAaW52aXNpYmxlAHRob3JuZGFsZQBpbnB1dHNjYWxlAG9zY2FsZQBpbWFnZXNjYWxlAC9zdmcvd2hpdGVzbW9rZQBtYW5kYXJpbm9yYW5nZQAvc3ZnL2RhcmtvcmFuZ2UAL3N2Zy9vcmFuZ2UAL3N2Zy9iZWlnZQBuZXdlZGdlAGRlbGV0ZV9mYXN0X2VkZ2UAZGVsZXRlX2ZsYXRfZWRnZQBhZGRfdHJlZV9lZGdlAG1ha2VTdHJhaWdodEVkZ2UAbWFrZVNlbGZFZGdlAG1ha2VDb21wb3VuZEVkZ2UAIXVzZV9zdGFnZQBvc2FnZQBwYWdlAGd2bG9hZGltYWdlAHZlZQB0ZWUAUVVBRF9UUkVFX0hZQlJJRCwgc2l6ZSBsYXJnZXIgdGhhbiAlZCwgc3dpdGNoIHRvIGZhc3QgcXVhZHRyZWUAZmVhc2libGVfdHJlZQBTcGFyc2VNYXRyaXhfZGl2aWRlX3Jvd19ieV9kZWdyZWUAbm9kZWxpc3RfZnJlZQBzZm9udF9mcmVlAG5vZGVfc2V0X2ZyZWUAcm93c19mcmVlAGNlbGxzX2ZyZWUAbmV3bm9kZQBpbnN0YWxsbm9kZQBhZ25vZGUAZGVsZXRlX2Zhc3Rfbm9kZQBwYWNrbW9kZQBTcGxpdE5vZGUAb3RpbGRlAG50aWxkZQBhdGlsZGUAT3RpbGRlAE50aWxkZQBBdGlsZGUAZGl2aWRlAHRyYWRlAGdyYXBodml6X25vZGVfaW5kdWNlAHNvdXJjZQByZXB1bHNpdmVmb3JjZQBpbGxlZ2FsIHBhcmFtZXRlciBlbnRpdHkgcmVmZXJlbmNlAGVycm9yIGluIHByb2Nlc3NpbmcgZXh0ZXJuYWwgZW50aXR5IHJlZmVyZW5jZQByZWN1cnNpdmUgZW50aXR5IHJlZmVyZW5jZQBsYWJlbGRpc3RhbmNlAFRCX2JhbGFuY2UAVEJiYWxhbmNlAGRldmljZQBtb25vc3BhY2UAL3N2Zy9vbGRsYWNlAGZhY2UAc3ViZQAgLWFuY2hvciBlAHMxLT5jb21tX2Nvb3JkPT1zMi0+Y29tbV9jb29yZABNcmVjb3JkAGZvcndhcmQAcHJvZABsaWdodGdvbGRlbnJvZABtZWRpdW1nb2xkZW5yb2QAL3N2Zy9kYXJrZ29sZGVucm9kAC9zdmcvcGFsZWdvbGRlbnJvZAAvc3ZnL2dvbGRlbnJvZAAvc3ZnL2J1cmx5d29vZABsaWdodHdvb2QAbWVkaXVtd29vZABkYXJrd29vZABfYmFja2dyb3VuZABjb21wb3VuZABubyBlbGVtZW50IGZvdW5kAGZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0tbm8gYWN0aW9uIGZvdW5kAC9zdmcvYmxhbmNoZWRhbG1vbmQAYXJyb3dfbGVuZ3RoX2RpYW1vbmQATWRpYW1vbmQAbm9kZV9zZXRfZmluZABzdHJkaWN0X2ZpbmQAZ3Z1c2Vyc2hhcGVfZmluZABub2RlbGlzdF90cnlfYXBwZW5kAGVkZ2VfbGlzdF90cnlfYXBwZW5kAHNmb250X3RyeV9hcHBlbmQAdHJhcHNfdHJ5X2FwcGVuZABjZWxsc190cnlfYXBwZW5kAG5vZGVzX3RyeV9hcHBlbmQAbm9kZV9xdWV1ZV90cnlfYXBwZW5kAHNob3dfYm94ZXNfcHJlcGVuZABFTGxlZnRibmQAZXhwYW5kAGN1bWJlcmxhbmQAYnJpZ2h0Z29sZABvbGRnb2xkAC9zdmcvZ29sZABib2xkAEhlbHZldGljYS1OYXJyb3ctQm9sZABUaW1lcy1Cb2xkAENvdXJpZXItQm9sZABQYWxhdGluby1Cb2xkAE5ld0NlbnR1cnlTY2hsYmstQm9sZABIZWx2ZXRpY2EtQm9sZAAlMCpsbGQAJSpsbGQAKyVsbGQAbi0+YnJhbmNoW2ldLmNoaWxkACUrLjRsZAAlcyVsZABzb2xpZAAvc3ZnL21lZGl1bW9yY2hpZAAvc3ZnL2RhcmtvcmNoaWQAL3N2Zy9vcmNoaWQAaWxsZWdhbCBjaGFyYWN0ZXIocykgaW4gcHVibGljIGlkAGRpamtzdHJhX3NnZABmaXhlZABjdXJ2ZWQAZGVyaXZlZABkb3R0ZWQAbWVtb3J5IGV4aGF1c3RlZABsb2NhbGUgbm90IHN1cHBvcnRlZABwYXJzaW5nIGFib3J0ZWQAcGFyc2VyIG5vdCBzdGFydGVkAGF0dHJpYnV0ZSBtYWNyb3Mgbm90IGltcGxlbWVudGVkAGFjY291bnRpbmdEaWZmVG9sZXJhdGVkAGZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0tZW5kIG9mIGJ1ZmZlciBtaXNzZWQAY29uZGVuc2VkAC9zdmcvbWVkaXVtdmlvbGV0cmVkAC9zdmcvcGFsZXZpb2xldHJlZABJbXByb3BlciAlcyB2YWx1ZSAlcyAtIGlnbm9yZWQAJXMgdmFsdWUgJXMgPCAlZCAtIHRvbyBzbWFsbCAtIGlnbm9yZWQAJXMgdmFsdWUgJXMgPiAlZCAtIHRvbyBsYXJnZSAtIGlnbm9yZWQAL3N2Zy9pbmRpYW5yZWQAL3N2Zy9kYXJrcmVkAGEgc3VjY2Vzc2Z1bCBwcmlvciBjYWxsIHRvIGZ1bmN0aW9uIFhNTF9HZXRCdWZmZXIgaXMgcmVxdWlyZWQAdGFwZXJlZAAvc3ZnL29yYW5nZXJlZAByZXNlcnZlZCBwcmVmaXggKHhtbG5zKSBtdXN0IG5vdCBiZSBkZWNsYXJlZCBvciB1bmRlY2xhcmVkAC9zdmcvcmVkAHN0cmlwZWQAaWxsLWNvbmRpdGlvbmVkAHVuZGVmaW5lZABub3QgY29uc3RyYWluZWQAbGFiZWxhbGlnbmVkAHRleHQgZGVjbGFyYXRpb24gbm90IHdlbGwtZm9ybWVkAFhNTCBkZWNsYXJhdGlvbiBub3Qgd2VsbC1mb3JtZWQAdW5maWxsZWQAaW5wdXQgaW4gZmxleCBzY2FubmVyIGZhaWxlZAB0cmlhbmd1bGF0aW9uIGZhaWxlZABwYXJzaW5nIGZpbmlzaGVkAGRhc2hlZABsaW1pdCBvbiBpbnB1dCBhbXBsaWZpY2F0aW9uIGZhY3RvciAoZnJvbSBEVEQgYW5kIGVudGl0aWVzKSBicmVhY2hlZAB3ZWRnZWQAc2l6ZSA9PSBmcmVlZAByb3VuZGVkAHNwbGluZSBbJS4wM2YsICUuMDNmXSAtLSBbJS4wM2YsICUuMDNmXSBpcyBob3Jpem9udGFsOyB3aWxsIGJlIHRyaXZpYWxseSBib3VuZGVkAHNwbGluZSBbJS4wM2YsICUuMDNmXSAtLSBbJS4wM2YsICUuMDNmXSBpcyB2ZXJ0aWNhbDsgd2lsbCBiZSB0cml2aWFsbHkgYm91bmRlZABwYXJzZXIgbm90IHN1c3BlbmRlZABwYXJzZXIgc3VzcGVuZGVkAFdlZABSZWQAU3BhcnNlTWF0cml4X2FkZABub2RlX3NldF9hZGQAc3RyZGljdF9hZGQAZGQgIT0gcGFyZW50X2RkAEtQX0FkZABwYWQAeGxoZHhsb2FkAHhsaGR4dW5sb2FkAHJlYWQAYXJyb3doZWFkAGxoZWFkAHNhbWVoZWFkAGJveDNkACVzXyVkAF9zcGFuXyVkAF9ibG9ja18lZABfd2Vha18lZABfY2xvbmVfJWQALiVkACVZLSVtLSVkACVsZiwlZAAlcyBpbiBsaW5lICVkACUlJSVCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQAIl9zdWJncmFwaF9jbnQiOiAlZAAiX2d2aWQiOiAlZAAiaGVhZCI6ICVkAGFneGJwdXRjAHZwc2MAY3AtPnNyYwB1Y2lyYwBvY2lyYwBpY2lyYwBlY2lyYwBhY2lyYwBVY2lyYwBPY2lyYwBJY2lyYwBFY2lyYwBBY2lyYwBsYWJlbGxvYwBndl9yZWNhbGxvYwBzdGQ6OmJhZF9hbGxvYwBiYWtlcnNjaG9jAHNlbWlTd2VldENob2MAb2JqbGlzdF9zeW5jAGRlZ2xpc3Rfc3luYwBub2RlbGlzdF9zeW5jAGNsaXN0X3N5bmMAbm9kZV9saXN0X3N5bmMAZWRnZV9zZXRfc3luYwBwb2ludHNfc3luYwBzdHJzX3N5bmMAQWdyYXBoc19zeW5jAGJveGVzX3N5bmMAbGF5ZXJfbmFtZXNfc3luYwBzbm9kZXNfc3luYwB2YXJhcnJfc3luYwBiZXppZXJfcGF0aF9zeW5jAHBic19zaXplX3N5bmMAbWMAU3BhcnNlTWF0cml4X2lzX3N5bW1ldHJpYwBBLT5pc19wYXR0ZXJuX3N5bW1ldHJpYwBwaWM6cGljAGl0YWxpYwBCb29rbWFuLUxpZ2h0SXRhbGljAFphcGZDaGFuY2VyeS1NZWRpdW1JdGFsaWMAQm9va21hbi1EZW1pSXRhbGljAFRpbWVzLUJvbGRJdGFsaWMAUGFsYXRpbm8tQm9sZEl0YWxpYwBOZXdDZW50dXJ5U2NobGJrLUJvbGRJdGFsaWMAVGltZXMtSXRhbGljAFBhbGF0aW5vLUl0YWxpYwBOZXdDZW50dXJ5U2NobGJrLUl0YWxpYwByYWRpYwAjZmNmY2ZjAHJvdXRlc3BsaW5lczogJWQgZWRnZXMsICV6dSBib3hlcyAlLjJmIHNlYwA6ICUuMmYgc2VjAGxpc3RkZWxyZWMAbGV2ZWwgZ3JhcGggcmVjAGxldmVsIGVkZ2UgcmVjAGxldmVsIG5vZGUgcmVjAERlYwBfbmVhdG9fY2MAYmMAdmlzaWJpbGl0eS5jAFNwYXJzZU1hdHJpeC5jAGh0bWxsZXguYwBpbmRleC5jAHNtYXJ0X2luaV94LmMAZ3ZyZW5kZXJfY29yZV9wb3YuYwBjdnQuYwBsYXlvdXQuYwB0ZXh0c3Bhbl9sdXQuYwBhZGp1c3QuYwBub2RlbGlzdC5jAHNob3J0ZXN0LmMAY2xvc2VzdC5jAHNhbWVwb3J0LmMAZ3ZyZW5kZXJfY29yZV9kb3QuYwBjb25zdHJhaW50LmMAZG90aW5pdC5jAG5lYXRvaW5pdC5jAHBhdGNod29ya2luaXQuYwBvc2FnZWluaXQuYwBlbWl0LmMAZmxhdC5jAGFycm93cy5jAG1pbmNyb3NzLmMAc3RyZXNzLmMAcG9zdF9wcm9jZXNzLmMAY2NvbXBzLmMAbnMuYwB1dGlscy5jAHhsYWJlbHMuYwBzaGFwZXMuYwBkb3RzcGxpbmVzLmMAbmVhdG9zcGxpbmVzLmMAY2x1c3RlcmVkZ2VzLmMAaGVkZ2VzLmMAYXR0ci5jAHJlZnN0ci5jAGZhc3Rnci5jAGNsdXN0ZXIuYwB0YXBlci5jAGd2cmVuZGVyLmMAc3BsaXQucS5jAGRlY29tcC5jAGd2cmVuZGVyX2NvcmVfbWFwLmMAb3J0aG8uYwBndnJlbmRlcl9jb3JlX2pzb24uYwBwYXJ0aXRpb24uYwBwb3NpdGlvbi5jAGd2cGx1Z2luLmMAZ3ZfZm9wZW4uYwB0ZXh0c3Bhbi5jAGdlb20uYwByYW5kb20uYwByb3V0ZXNwbC5jAHhtbC5jAE11bHRpbGV2ZWwuYwBzcHJpbmdfZWxlY3RyaWNhbC5jAGd2cmVuZGVyX2NvcmVfdGsuYwByYW5rLmMAcGFjay5jAGJsb2NrcGF0aC5jAGR0c3RyaGFzaC5jAHJhd2dyYXBoLmMAZ3ZyZW5kZXJfY29yZV9zdmcuYwBndnJlbmRlcl9jb3JlX2ZpZy5jAHN0dWZmLmMAbWF6ZS5jAHF1YWRfcHJvZ19zb2x2ZS5jAHNwYXJzZV9zb2x2ZS5jAHJvdXRlLmMAd3JpdGUuYwBjb2x4bGF0ZS5jAHhtbHBhcnNlLmMAZWxsaXBzZS5jAGd2bG9hZGltYWdlX2NvcmUuYwBndnVzZXJzaGFwZS5jAGNpcmNsZS5jAGh0bWx0YWJsZS5jAGVkZ2UuYwBndmxvYWRpbWFnZS5jAGJsb2NrdHJlZS5jAFF1YWRUcmVlLmMAbm9kZS5jAG5vZGVfaW5kdWNlLmMAZ3ZkZXZpY2UuYwBjb21wb3VuZC5jAHRyYXBlem9pZC5jAHNnZC5jAGNvbmMuYwByZWMuYwBkaWprc3RyYS5jAGZQUS5jAGNsYXNzMi5jACVsZiwlbGYsJWxmLCVsZiVjACVsZiwlbGYsJWxmLCVbXixdJWMAXCVjACRjAHdiAG5zdWIAc2V0aHNiAHJiAHByb3RlY3RfcnNxYgBqb2IAY29yZV9sb2FkaW1hZ2VfcHNsaWIARmViAG9kYgBpbml0X3NwbGluZXNfYmIAYmV6aWVyX2JiAHByb3RlaW5zdGFiAHJuYXN0YWIAL3N2Zy9vbGl2ZWRyYWIAXGIAcndhAC9zdmcvYXF1YQBpb3RhAElvdGEAL3N2Zy9kYXJrbWFnZW50YQAvc3ZnL21hZ2VudGEAZGVsdGEARGVsdGEAemV0YQB0aGV0YQBUaGV0YQBiZXRhAFpldGEAQmV0YQBwcmV2ICE9IG9iai0+ZGF0YQBtYWtlR3JhcGhEYXRhAEV0YQBuaW1idXNzYW5zYQBwYXJhAGthcHBhAEthcHBhAC9zdmcvc2llbm5hAFZlcmRhbmEAZ2FtbWEAR2FtbWEAc2lnbWEAU2lnbWEAY29uc29sYQBuYWJsYQAvc3ZnL2Z1Y2hzaWEAR2VvcmdpYQBhbHBoYQBBbHBoYQBvbWVnYQBPbWVnYQBhcmVhAGxhbWJkYQBMYW1iZGEAaGVsdmV0aWNhAEhlbHZldGljYQBtaWNhAD48YQBgAF90ZHJhd18AX3RsZHJhd18AX2hsZHJhd18AX2xkcmF3XwBfaGRyYXdfAF9kcmF3XwBhZ3hzZXRfAGRvdF9zcGxpbmVzXwAlc18AcGFnZSVkLCVkXwBfY2NfACBpZD0iYV8AXgBTdGFydGluZyBwaGFzZSAyIFtkb3RfbWluY3Jvc3NdAFN0YXJ0aW5nIHBoYXNlIDMgW2RvdF9wb3NpdGlvbl0Abl9lZGdlcyA9PSBncmFwaC0+c291cmNlc1tncmFwaC0+bl0AU3RhcnRpbmcgcGhhc2UgMSBbZG90X3JhbmtdAGpkW21hc2tbamNba11dXSA9PSBqY1trXQBqY1ttYXNrW2piW2tdXV0gPT0gamJba10AbmVlZGxlW2ldICE9IG5lZWRsZVtqXQBqYVttYXNrW2phW2pdXV0gPT0gamFbal0AcS0+cXRzW2lpXQAhcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLnRha2VuW2ldAHIuYm91bmRhcnlbaV0gPD0gci5ib3VuZGFyeVtOVU1ESU1TICsgaV0AWyUuMDNmLCUuMDNmXQBbaW50ZXJuYWwgaGFyZC1jb2RlZF0AbnAtPmNlbGxzWzFdAG5wLT5jZWxsc1swXQB1cy0+bmFtZVswXQBjcC0+c3JjWzBdAFsuLl0AXFwAInBvaW50cyI6IFsAInN0b3BzIjogWwAJWwBaAGNvbXB1dGVTY2FsZVhZAHk8PVkAJWEgJWIgJWQgJUg6JU06JVMgJVkAUE9TSVgAeSA+PSBJTlRfTUlOICYmIHkgPD0gSU5UX01BWAB4ID49IElOVF9NSU4gJiYgeCA8PSBJTlRfTUFYAHcgPj0gMCAmJiB3IDw9IElOVF9NQVgAZV9jbnQgPD0gSU5UX01BWABwYWlyLnJpZ2h0IDw9IElOVF9NQVgAcGFpci5sZWZ0IDw9IElOVF9NQVgAdGFyZ2V0IDw9IElOVF9NQVgAbnNlZ3MgPD0gSU5UX01BWABuX2VkZ2VzIDw9IElOVF9NQVgAc3RwLm52ZXJ0aWNlcyA8PSBJTlRfTUFYAG9ic1twb2x5X2ldLT5wbiA8PSBJTlRfTUFYAGlucHV0X3JvdXRlLnBuIDw9IElOVF9NQVgAZ3JhcGgtPm4gPD0gSU5UX01BWABoID49IDAgJiYgaCA8PSBJTlRfTUFYAGVfY250IC0gMSA8PSBJTlRfTUFYAGNsaXN0X3NpemUoJmxpc3QpIC0gMSA8PSBJTlRfTUFYAGxheWVyX25hbWVzX3NpemUoJmxheWVySURzKSAtIDEgPD0gSU5UX01BWABzdHJsZW4oYXJncykgPD0gSU5UX01BWABvYmpsaXN0X3NpemUoJm9iamwpIDw9IElOVF9NQVgAZWRnZV9saXN0X3NpemUoJmN0eC0+VHJlZV9lZGdlKSA8PSBJTlRfTUFYAG5vZGVfc2V0X3NpemUoZy0+bl9pZCkgPD0gSU5UX01BWABpIDwgSU5UX01BWAByZXN1bHQgPD0gKGludClVQ0hBUl9NQVgAc3N6IDw9IFVDSEFSX01BWABjb2wgPj0gMCAmJiBjb2wgPD0gVUlOVDE2X01BWAB4PD1YAFcAVgBVAFxUAFRFWFQAU1RSRVNTX01BSk9SSVpBVElPTl9QT1dFUl9ESVNUAFNUUkVTU19NQUpPUklaQVRJT05fR1JBUEhfRElTVABTVFJFU1NfTUFKT1JJWkFUSU9OX0FWR19ESVNUAEZBU1QARk9OVABiID09IEJfUklHSFQASEVJR0hUAEJfTEVGVABfJWxsdV9TVVNQRUNUAEJUAFRyZWJ1Y2hldCBNUwBJTlZJUwAlSDolTTolUwBWUgBUUgBBLT5mb3JtYXQgPT0gQi0+Zm9ybWF0ICYmIEEtPmZvcm1hdCA9PSBGT1JNQVRfQ1NSAExSAERJUgBIUgBDRU5URVIAJSVUUkFJTEVSAEEtPnR5cGUgPT0gTUFUUklYX1RZUEVfUkVBTCB8fCBBLT50eXBlID09IE1BVFJJWF9UWVBFX0lOVEVHRVIAQ0VMTEJPUkRFUgBCUgAqUgBRAEVYUABCX1VQAFNVUABUT1AATwBtYXBOAFxOAEJfRE9XTgBUSE9STgAlJUJFR0lOAFJPV1NQQU4AQ09MU1BBTgBOQU4AUE0AQk9UVE9NAEJNAEFNACVIOiVNAFxMAHRhaWxVUkwAbGFiZWxVUkwAZWRnZVVSTABoZWFkVVJMAEhUTUwAeCE9TlVMTABFRF90b192aXJ0KG9yaWcpID09IE5VTEwARURfdG9fdmlydChlKSA9PSBOVUxMAHByZWZpeCAhPSBOVUxMAGR0ZC0+c2NhZmZJbmRleCAhPSBOVUxMAHNtLT5MdyAhPSBOVUxMAGlucHV0ICE9IE5VTEwAbGlzdCAhPSBOVUxMAHJlZmVyZW50ICE9IE5VTEwAZGljdCAhPSBOVUxMAGRpY3QtPmJ1Y2tldHMgIT0gTlVMTABhdHRyICE9IE5VTEwAbGVhZGVyICE9IE5VTEwAaXRlbSAhPSBOVUxMAGhheXN0YWNrICE9IE5VTEwAb3J0aG9nICE9IE5VTEwAc2VsZiAhPSBOVUxMAHZhbHVlICE9IE5VTEwAZmlsZW5hbWUgIT0gTlVMTABqb2ItPm91dHB1dF9maWxlICE9IE5VTEwAbW9kZSAhPSBOVUxMAHNvdXJjZSAhPSBOVUxMAHhkICE9IE5VTEwAc20tPkx3ZCAhPSBOVUxMAGpvYiAhPSBOVUxMAHNvdXJjZS5kYXRhICE9IE5VTEwAYi5kYXRhICE9IE5VTEwAYS5kYXRhICE9IE5VTEwAbGlzdCAmJiBsaXN0WzBdICE9IE5VTEwAQUYgIT0gTlVMTABzbS0+RCAhPSBOVUxMAEVEX3RvX3ZpcnQob3JpZykgIT0gTlVMTABMQ19BTEwAQkwAYmVzdGNvc3QgPCBIVUdFX1ZBTABOT1JNQUwAUkFESUFMAEEtPnR5cGUgPT0gTUFUUklYX1RZUEVfUkVBTABVUlcgQ2hhbmNlcnkgTABVUlcgQm9va21hbiBMAENlbnR1cnkgU2Nob29sYm9vayBMAFVSVyBHb3RoaWMgTABLSwBKAGkgPCBNQVhfSQBQLT5lbmQudGhldGEgPCAyICogTV9QSQBBU0NJSQBcSABFVEgAV0lEVEgARE9URk9OVFBBVEgAR0RGT05UUEFUSABta05Db25zdHJhaW50RwBcRwBFWFBBVF9FTlRJVFlfREVCVUcARVhQQVRfRU5UUk9QWV9ERUJVRwBFWFBBVF9BQ0NPVU5USU5HX0RFQlVHAFJORwBTUFJJTkcAQ0VMTFBBRERJTkcAQ0VMTFNQQUNJTkcATEFORwBJTUcAXHhGACUlRU9GAElORgBceEZGAFJJRkYAZGVsdGEgPD0gMHhGRkZGAFx4RUYAXHhERgBceENGAFx4QkYAXHhBRgBceDlGAFx4OEYAXHg3RgBceDFGAFx4RQBcRQBQT0lOVC1TSVpFAFRSVUUAQ0xPU0UARkFMU0UAa2V5ICE9IFRPTUJTVE9ORQByICE9IFRPTUJTVE9ORQBraW5kID09IExUX05PTkUAR1JBRElFTlRBTkdMRQBUUklBTkdMRQBNSURETEUASU5WSVNJQkxFAFRBQkxFAEFHVFlQRShvYmopID09IEFHSU5FREdFIHx8IEFHVFlQRShvYmopID09IEFHT1VURURHRQBceEZFAFx4RUUAXHhERQBCX05PREUAXHhDRQBceEJFAFx4QUUAXHg5RQBceDhFAFx4MUUAVEQAQS0+Zm9ybWF0ID09IEZPUk1BVF9DT09SRABuICYmIGkgPj0gMCAmJiBpIDwgTk9ERUNBUkQAJSVFTkQASFlCUklEAFNPTElEAFx4RkQAXHhFRABET1RURUQAREFTSEVEAFJPVU5ERUQAXHhERABceENEAFx4QkQAXHhBRABceDlEAFx4OEQAXHgxRABceEMAZGVsZXRlVlBTQwBceEZDAFx4RUMAXHhEQwBceENDAFx4QkMAXHhBQwBceDlDAFx4OEMAXHgxQwBceEIAU1VCAFx4RkIAXHhFQgBceERCAFx4Q0IAXHhCQgBceEFCAFx4OUIAXHg4QgBceDFCAEEgJiYgQgBceEZBAFx4RUEAXHhEQQBceENBAFx4QkEAXHhBQQBceDlBAFx4OEEAXHgxQQBAAD8APCVzPgA8bmlsPgA8L3RzcGFuPjwvdGV4dFBhdGg+AAogICAgPCU5LjNmLCAlOS4zZiwgJTkuM2Y+AD4KPHRpdGxlPgA8Rk9OVD4APEJSPgA8SFRNTD4APC9IVE1MPgA8SU1HPgBTeW50YXggZXJyb3I6IG5vbi1zcGFjZSBzdHJpbmcgdXNlZCBiZWZvcmUgPFRBQkxFPgBTeW50YXggZXJyb3I6IG5vbi1zcGFjZSBzdHJpbmcgdXNlZCBhZnRlciA8L1RBQkxFPgA8VEQ+AC0+ACI+AAlba2V5PQA8PQA8ACYjeCV4OwAmcXVvdDsAJmx0OwAmZ3Q7ACZhbXA7ACMlZDsAJiMzOTsAJiM0NTsAJiM5MzsAJiMxMzsAJiMxNjA7ACYjMTA7ADtzdG9wLW9wYWNpdHk6ACUlQm91bmRpbmdCb3g6AGNhbGN1bGF0aW5nIHNob3J0ZXN0IHBhdGhzIGFuZCBzZXR0aW5nIHVwIHN0cmVzcyB0ZXJtczoAPHN0b3Agb2Zmc2V0PSIlLjAzZiIgc3R5bGU9InN0b3AtY29sb3I6ADxzdG9wIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6ADxzdG9wIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6AHNvbHZpbmcgbW9kZWw6AC9cOgBncmV5OQBncmF5OQBceEY5AFx4RTkAXHhEOQBceEM5AFx4QjkAXHhBOQBncmV5OTkAZ3JheTk5AFx4OTkAZ3JleTg5AGdyYXk4OQBceDg5ADAxMjM0NTY3ODkAZ3JleTc5AGdyYXk3OQBncmV5NjkAZ3JheTY5AGdyZXk1OQBncmF5NTkAZ3JleTQ5AGdyYXk0OQBncmV5MzkAZ3JheTM5AGdyZXkyOQBncmF5MjkAZ3JleTE5AGdyYXkxOQBceDE5AC9yZGd5OS85AC9idXB1OS85AC9yZHB1OS85AC9wdWJ1OS85AC95bGduYnU5LzkAL2duYnU5LzkAL3JkeWxidTkvOQAvcmRidTkvOQAvZ3JleXM5LzkAL2dyZWVuczkvOQAvYmx1ZXM5LzkAL3B1cnBsZXM5LzkAL29yYW5nZXM5LzkAL3JlZHM5LzkAL3B1b3I5LzkAL3lsb3JicjkvOQAvcHVidWduOS85AC9idWduOS85AC9wcmduOS85AC9yZHlsZ245LzkAL3lsZ245LzkAL3NwZWN0cmFsOS85AC9waXlnOS85AC9icmJnOS85AC9wdXJkOS85AC95bG9ycmQ5LzkAL29ycmQ5LzkAL3BhaXJlZDkvOQAvc2V0MzkvOQAvc2V0MTkvOQAvcGFzdGVsMTkvOQAvcGFpcmVkMTIvOQAvc2V0MzEyLzkAL3JkZ3kxMS85AC9yZHlsYnUxMS85AC9yZGJ1MTEvOQAvcHVvcjExLzkAL3ByZ24xMS85AC9yZHlsZ24xMS85AC9zcGVjdHJhbDExLzkAL3BpeWcxMS85AC9icmJnMTEvOQAvcGFpcmVkMTEvOQAvc2V0MzExLzkAL3JkZ3kxMC85AC9yZHlsYnUxMC85AC9yZGJ1MTAvOQAvcHVvcjEwLzkAL3ByZ24xMC85AC9yZHlsZ24xMC85AC9zcGVjdHJhbDEwLzkAL3BpeWcxMC85AC9icmJnMTAvOQAvcGFpcmVkMTAvOQAvc2V0MzEwLzkAZ3JleTgAZ3JheTgAXHg4AHV0ZjgAI2Y4ZjhmOAAjZThlOGU4AFx4RjgAR0lGOABceEU4AFx4RDgAXHhDOABceEI4AFx4QTgAZ3JleTk4AGdyYXk5OABceDk4AGdyZXk4OABncmF5ODgAXHg4OABncmV5NzgAZ3JheTc4AGdyZXk2OABncmF5NjgAZ3JleTU4AGdyYXk1OABncmV5NDgAZ3JheTQ4AGdyZXkzOABncmF5MzgAZ3JleTI4AGdyYXkyOABncmV5MTgAZ3JheTE4AFx4MTgAL3JkZ3k5LzgAL2J1cHU5LzgAL3JkcHU5LzgAL3B1YnU5LzgAL3lsZ25idTkvOAAvZ25idTkvOAAvcmR5bGJ1OS84AC9yZGJ1OS84AC9ncmV5czkvOAAvZ3JlZW5zOS84AC9ibHVlczkvOAAvcHVycGxlczkvOAAvb3JhbmdlczkvOAAvcmVkczkvOAAvcHVvcjkvOAAveWxvcmJyOS84AC9wdWJ1Z245LzgAL2J1Z245LzgAL3ByZ245LzgAL3JkeWxnbjkvOAAveWxnbjkvOAAvc3BlY3RyYWw5LzgAL3BpeWc5LzgAL2JyYmc5LzgAL3B1cmQ5LzgAL3lsb3JyZDkvOAAvb3JyZDkvOAAvcGFpcmVkOS84AC9zZXQzOS84AC9zZXQxOS84AC9wYXN0ZWwxOS84AC9yZGd5OC84AC9idXB1OC84AC9yZHB1OC84AC9wdWJ1OC84AC95bGduYnU4LzgAL2duYnU4LzgAL3JkeWxidTgvOAAvcmRidTgvOAAvYWNjZW50OC84AC9ncmV5czgvOAAvZ3JlZW5zOC84AC9ibHVlczgvOAAvcHVycGxlczgvOAAvb3JhbmdlczgvOAAvcmVkczgvOAAvcHVvcjgvOAAveWxvcmJyOC84AC9wdWJ1Z244LzgAL2J1Z244LzgAL3ByZ244LzgAL3JkeWxnbjgvOAAveWxnbjgvOAAvc3BlY3RyYWw4LzgAL3BpeWc4LzgAL2JyYmc4LzgAL3B1cmQ4LzgAL3lsb3JyZDgvOAAvb3JyZDgvOAAvcGFpcmVkOC84AC9zZXQzOC84AC9zZXQyOC84AC9wYXN0ZWwyOC84AC9kYXJrMjgvOAAvc2V0MTgvOAAvcGFzdGVsMTgvOAAvcGFpcmVkMTIvOAAvc2V0MzEyLzgAL3JkZ3kxMS84AC9yZHlsYnUxMS84AC9yZGJ1MTEvOAAvcHVvcjExLzgAL3ByZ24xMS84AC9yZHlsZ24xMS84AC9zcGVjdHJhbDExLzgAL3BpeWcxMS84AC9icmJnMTEvOAAvcGFpcmVkMTEvOAAvc2V0MzExLzgAL3JkZ3kxMC84AC9yZHlsYnUxMC84AC9yZGJ1MTAvOAAvcHVvcjEwLzgAL3ByZ24xMC84AC9yZHlsZ24xMC84AC9zcGVjdHJhbDEwLzgAL3BpeWcxMC84AC9icmJnMTAvOAAvcGFpcmVkMTAvOAAvc2V0MzEwLzgAdXRmLTgAQy5VVEYtOABncmV5NwBncmF5NwBceDcAXHhGNwBceEU3AFx4RDcAXHhDNwBceEI3AFx4QTcAZ3JleTk3AGdyYXk5NwBceDk3AGdyZXk4NwBncmF5ODcAXHg4NwBncmV5NzcAZ3JheTc3AGdyZXk2NwBncmF5NjcAZ3JleTU3AGdyYXk1NwBncmV5NDcAZ3JheTQ3AGdyZXkzNwBncmF5MzcAZ3JleTI3AGdyYXkyNwBncmV5MTcAZ3JheTE3AFx4MTcAL3JkZ3k5LzcAL2J1cHU5LzcAL3JkcHU5LzcAL3B1YnU5LzcAL3lsZ25idTkvNwAvZ25idTkvNwAvcmR5bGJ1OS83AC9yZGJ1OS83AC9ncmV5czkvNwAvZ3JlZW5zOS83AC9ibHVlczkvNwAvcHVycGxlczkvNwAvb3JhbmdlczkvNwAvcmVkczkvNwAvcHVvcjkvNwAveWxvcmJyOS83AC9wdWJ1Z245LzcAL2J1Z245LzcAL3ByZ245LzcAL3JkeWxnbjkvNwAveWxnbjkvNwAvc3BlY3RyYWw5LzcAL3BpeWc5LzcAL2JyYmc5LzcAL3B1cmQ5LzcAL3lsb3JyZDkvNwAvb3JyZDkvNwAvcGFpcmVkOS83AC9zZXQzOS83AC9zZXQxOS83AC9wYXN0ZWwxOS83AC9yZGd5OC83AC9idXB1OC83AC9yZHB1OC83AC9wdWJ1OC83AC95bGduYnU4LzcAL2duYnU4LzcAL3JkeWxidTgvNwAvcmRidTgvNwAvYWNjZW50OC83AC9ncmV5czgvNwAvZ3JlZW5zOC83AC9ibHVlczgvNwAvcHVycGxlczgvNwAvb3JhbmdlczgvNwAvcmVkczgvNwAvcHVvcjgvNwAveWxvcmJyOC83AC9wdWJ1Z244LzcAL2J1Z244LzcAL3ByZ244LzcAL3JkeWxnbjgvNwAveWxnbjgvNwAvc3BlY3RyYWw4LzcAL3BpeWc4LzcAL2JyYmc4LzcAL3B1cmQ4LzcAL3lsb3JyZDgvNwAvb3JyZDgvNwAvcGFpcmVkOC83AC9zZXQzOC83AC9zZXQyOC83AC9wYXN0ZWwyOC83AC9kYXJrMjgvNwAvc2V0MTgvNwAvcGFzdGVsMTgvNwAvcmRneTcvNwAvYnVwdTcvNwAvcmRwdTcvNwAvcHVidTcvNwAveWxnbmJ1Ny83AC9nbmJ1Ny83AC9yZHlsYnU3LzcAL3JkYnU3LzcAL2FjY2VudDcvNwAvZ3JleXM3LzcAL2dyZWVuczcvNwAvYmx1ZXM3LzcAL3B1cnBsZXM3LzcAL29yYW5nZXM3LzcAL3JlZHM3LzcAL3B1b3I3LzcAL3lsb3JicjcvNwAvcHVidWduNy83AC9idWduNy83AC9wcmduNy83AC9yZHlsZ243LzcAL3lsZ243LzcAL3NwZWN0cmFsNy83AC9waXlnNy83AC9icmJnNy83AC9wdXJkNy83AC95bG9ycmQ3LzcAL29ycmQ3LzcAL3BhaXJlZDcvNwAvc2V0MzcvNwAvc2V0MjcvNwAvcGFzdGVsMjcvNwAvZGFyazI3LzcAL3NldDE3LzcAL3Bhc3RlbDE3LzcAL3BhaXJlZDEyLzcAL3NldDMxMi83AC9yZGd5MTEvNwAvcmR5bGJ1MTEvNwAvcmRidTExLzcAL3B1b3IxMS83AC9wcmduMTEvNwAvcmR5bGduMTEvNwAvc3BlY3RyYWwxMS83AC9waXlnMTEvNwAvYnJiZzExLzcAL3BhaXJlZDExLzcAL3NldDMxMS83AC9yZGd5MTAvNwAvcmR5bGJ1MTAvNwAvcmRidTEwLzcAL3B1b3IxMC83AC9wcmduMTAvNwAvcmR5bGduMTAvNwAvc3BlY3RyYWwxMC83AC9waXlnMTAvNwAvYnJiZzEwLzcAL3BhaXJlZDEwLzcAL3NldDMxMC83ADEuNwBncmV5NgBncmF5NgBceDYAXHhGNgBceEU2AFx4RDYAXHhDNgBceEI2AFx4QTYAZ3JleTk2AGdyYXk5NgBceDk2AGdyZXk4NgBncmF5ODYAXHg4NgBncmV5NzYAZ3JheTc2AGdyZXk2NgBncmF5NjYAZ3JleTU2AGdyYXk1NgBncmV5NDYAZ3JheTQ2AGdyZXkzNgBncmF5MzYAZ3JleTI2AGdyYXkyNgBncmV5MTYAZ3JheTE2AFx4MTYAL3JkZ3k5LzYAL2J1cHU5LzYAL3JkcHU5LzYAL3B1YnU5LzYAL3lsZ25idTkvNgAvZ25idTkvNgAvcmR5bGJ1OS82AC9yZGJ1OS82AC9ncmV5czkvNgAvZ3JlZW5zOS82AC9ibHVlczkvNgAvcHVycGxlczkvNgAvb3JhbmdlczkvNgAvcmVkczkvNgAvcHVvcjkvNgAveWxvcmJyOS82AC9wdWJ1Z245LzYAL2J1Z245LzYAL3ByZ245LzYAL3JkeWxnbjkvNgAveWxnbjkvNgAvc3BlY3RyYWw5LzYAL3BpeWc5LzYAL2JyYmc5LzYAL3B1cmQ5LzYAL3lsb3JyZDkvNgAvb3JyZDkvNgAvcGFpcmVkOS82AC9zZXQzOS82AC9zZXQxOS82AC9wYXN0ZWwxOS82AC9yZGd5OC82AC9idXB1OC82AC9yZHB1OC82AC9wdWJ1OC82AC95bGduYnU4LzYAL2duYnU4LzYAL3JkeWxidTgvNgAvcmRidTgvNgAvYWNjZW50OC82AC9ncmV5czgvNgAvZ3JlZW5zOC82AC9ibHVlczgvNgAvcHVycGxlczgvNgAvb3JhbmdlczgvNgAvcmVkczgvNgAvcHVvcjgvNgAveWxvcmJyOC82AC9wdWJ1Z244LzYAL2J1Z244LzYAL3ByZ244LzYAL3JkeWxnbjgvNgAveWxnbjgvNgAvc3BlY3RyYWw4LzYAL3BpeWc4LzYAL2JyYmc4LzYAL3B1cmQ4LzYAL3lsb3JyZDgvNgAvb3JyZDgvNgAvcGFpcmVkOC82AC9zZXQzOC82AC9zZXQyOC82AC9wYXN0ZWwyOC82AC9kYXJrMjgvNgAvc2V0MTgvNgAvcGFzdGVsMTgvNgAvcmRneTcvNgAvYnVwdTcvNgAvcmRwdTcvNgAvcHVidTcvNgAveWxnbmJ1Ny82AC9nbmJ1Ny82AC9yZHlsYnU3LzYAL3JkYnU3LzYAL2FjY2VudDcvNgAvZ3JleXM3LzYAL2dyZWVuczcvNgAvYmx1ZXM3LzYAL3B1cnBsZXM3LzYAL29yYW5nZXM3LzYAL3JlZHM3LzYAL3B1b3I3LzYAL3lsb3JicjcvNgAvcHVidWduNy82AC9idWduNy82AC9wcmduNy82AC9yZHlsZ243LzYAL3lsZ243LzYAL3NwZWN0cmFsNy82AC9waXlnNy82AC9icmJnNy82AC9wdXJkNy82AC95bG9ycmQ3LzYAL29ycmQ3LzYAL3BhaXJlZDcvNgAvc2V0MzcvNgAvc2V0MjcvNgAvcGFzdGVsMjcvNgAvZGFyazI3LzYAL3NldDE3LzYAL3Bhc3RlbDE3LzYAL3JkZ3k2LzYAL2J1cHU2LzYAL3JkcHU2LzYAL3B1YnU2LzYAL3lsZ25idTYvNgAvZ25idTYvNgAvcmR5bGJ1Ni82AC9yZGJ1Ni82AC9hY2NlbnQ2LzYAL2dyZXlzNi82AC9ncmVlbnM2LzYAL2JsdWVzNi82AC9wdXJwbGVzNi82AC9vcmFuZ2VzNi82AC9yZWRzNi82AC9wdW9yNi82AC95bG9yYnI2LzYAL3B1YnVnbjYvNgAvYnVnbjYvNgAvcHJnbjYvNgAvcmR5bGduNi82AC95bGduNi82AC9zcGVjdHJhbDYvNgAvcGl5ZzYvNgAvYnJiZzYvNgAvcHVyZDYvNgAveWxvcnJkNi82AC9vcnJkNi82AC9wYWlyZWQ2LzYAL3NldDM2LzYAL3NldDI2LzYAL3Bhc3RlbDI2LzYAL2RhcmsyNi82AC9zZXQxNi82AC9wYXN0ZWwxNi82AC9wYWlyZWQxMi82AC9zZXQzMTIvNgAvcmRneTExLzYAL3JkeWxidTExLzYAL3JkYnUxMS82AC9wdW9yMTEvNgAvcHJnbjExLzYAL3JkeWxnbjExLzYAL3NwZWN0cmFsMTEvNgAvcGl5ZzExLzYAL2JyYmcxMS82AC9wYWlyZWQxMS82AC9zZXQzMTEvNgAvcmRneTEwLzYAL3JkeWxidTEwLzYAL3JkYnUxMC82AC9wdW9yMTAvNgAvcHJnbjEwLzYAL3JkeWxnbjEwLzYAL3NwZWN0cmFsMTAvNgAvcGl5ZzEwLzYAL2JyYmcxMC82AC9wYWlyZWQxMC82AC9zZXQzMTAvNgBncmV5NQBncmF5NQBceDUAYmlnNQBceEY1AFx4RTUAXHhENQBceEM1AFx4QjUAXHhBNQBncmV5OTUAZ3JheTk1AFx4OTUAZ3JleTg1AGdyYXk4NQBceDg1AGdyZXk3NQBncmF5NzUAZ3JleTY1AGdyYXk2NQBncmV5NTUAZ3JheTU1AGdyZXk0NQBncmF5NDUAZ3JleTM1AGdyYXkzNQBncmV5MjUAZ3JheTI1AGdyZXkxNQBncmF5MTUAXHgxNQBncmF5MDUAL3JkZ3k5LzUAL2J1cHU5LzUAL3JkcHU5LzUAL3B1YnU5LzUAL3lsZ25idTkvNQAvZ25idTkvNQAvcmR5bGJ1OS81AC9yZGJ1OS81AC9ncmV5czkvNQAvZ3JlZW5zOS81AC9ibHVlczkvNQAvcHVycGxlczkvNQAvb3JhbmdlczkvNQAvcmVkczkvNQAvcHVvcjkvNQAveWxvcmJyOS81AC9wdWJ1Z245LzUAL2J1Z245LzUAL3ByZ245LzUAL3JkeWxnbjkvNQAveWxnbjkvNQAvc3BlY3RyYWw5LzUAL3BpeWc5LzUAL2JyYmc5LzUAL3B1cmQ5LzUAL3lsb3JyZDkvNQAvb3JyZDkvNQAvcGFpcmVkOS81AC9zZXQzOS81AC9zZXQxOS81AC9wYXN0ZWwxOS81AC9yZGd5OC81AC9idXB1OC81AC9yZHB1OC81AC9wdWJ1OC81AC95bGduYnU4LzUAL2duYnU4LzUAL3JkeWxidTgvNQAvcmRidTgvNQAvYWNjZW50OC81AC9ncmV5czgvNQAvZ3JlZW5zOC81AC9ibHVlczgvNQAvcHVycGxlczgvNQAvb3JhbmdlczgvNQAvcmVkczgvNQAvcHVvcjgvNQAveWxvcmJyOC81AC9wdWJ1Z244LzUAL2J1Z244LzUAL3ByZ244LzUAL3JkeWxnbjgvNQAveWxnbjgvNQAvc3BlY3RyYWw4LzUAL3BpeWc4LzUAL2JyYmc4LzUAL3B1cmQ4LzUAL3lsb3JyZDgvNQAvb3JyZDgvNQAvcGFpcmVkOC81AC9zZXQzOC81AC9zZXQyOC81AC9wYXN0ZWwyOC81AC9kYXJrMjgvNQAvc2V0MTgvNQAvcGFzdGVsMTgvNQAvcmRneTcvNQAvYnVwdTcvNQAvcmRwdTcvNQAvcHVidTcvNQAveWxnbmJ1Ny81AC9nbmJ1Ny81AC9yZHlsYnU3LzUAL3JkYnU3LzUAL2FjY2VudDcvNQAvZ3JleXM3LzUAL2dyZWVuczcvNQAvYmx1ZXM3LzUAL3B1cnBsZXM3LzUAL29yYW5nZXM3LzUAL3JlZHM3LzUAL3B1b3I3LzUAL3lsb3JicjcvNQAvcHVidWduNy81AC9idWduNy81AC9wcmduNy81AC9yZHlsZ243LzUAL3lsZ243LzUAL3NwZWN0cmFsNy81AC9waXlnNy81AC9icmJnNy81AC9wdXJkNy81AC95bG9ycmQ3LzUAL29ycmQ3LzUAL3BhaXJlZDcvNQAvc2V0MzcvNQAvc2V0MjcvNQAvcGFzdGVsMjcvNQAvZGFyazI3LzUAL3NldDE3LzUAL3Bhc3RlbDE3LzUAL3JkZ3k2LzUAL2J1cHU2LzUAL3JkcHU2LzUAL3B1YnU2LzUAL3lsZ25idTYvNQAvZ25idTYvNQAvcmR5bGJ1Ni81AC9yZGJ1Ni81AC9hY2NlbnQ2LzUAL2dyZXlzNi81AC9ncmVlbnM2LzUAL2JsdWVzNi81AC9wdXJwbGVzNi81AC9vcmFuZ2VzNi81AC9yZWRzNi81AC9wdW9yNi81AC95bG9yYnI2LzUAL3B1YnVnbjYvNQAvYnVnbjYvNQAvcHJnbjYvNQAvcmR5bGduNi81AC95bGduNi81AC9zcGVjdHJhbDYvNQAvcGl5ZzYvNQAvYnJiZzYvNQAvcHVyZDYvNQAveWxvcnJkNi81AC9vcnJkNi81AC9wYWlyZWQ2LzUAL3NldDM2LzUAL3NldDI2LzUAL3Bhc3RlbDI2LzUAL2RhcmsyNi81AC9zZXQxNi81AC9wYXN0ZWwxNi81AC9yZGd5NS81AC9idXB1NS81AC9yZHB1NS81AC9wdWJ1NS81AC95bGduYnU1LzUAL2duYnU1LzUAL3JkeWxidTUvNQAvcmRidTUvNQAvYWNjZW50NS81AC9ncmV5czUvNQAvZ3JlZW5zNS81AC9ibHVlczUvNQAvcHVycGxlczUvNQAvb3JhbmdlczUvNQAvcmVkczUvNQAvcHVvcjUvNQAveWxvcmJyNS81AC9wdWJ1Z241LzUAL2J1Z241LzUAL3ByZ241LzUAL3JkeWxnbjUvNQAveWxnbjUvNQAvc3BlY3RyYWw1LzUAL3BpeWc1LzUAL2JyYmc1LzUAL3B1cmQ1LzUAL3lsb3JyZDUvNQAvb3JyZDUvNQAvcGFpcmVkNS81AC9zZXQzNS81AC9zZXQyNS81AC9wYXN0ZWwyNS81AC9kYXJrMjUvNQAvc2V0MTUvNQAvcGFzdGVsMTUvNQAvcGFpcmVkMTIvNQAvc2V0MzEyLzUAL3JkZ3kxMS81AC9yZHlsYnUxMS81AC9yZGJ1MTEvNQAvcHVvcjExLzUAL3ByZ24xMS81AC9yZHlsZ24xMS81AC9zcGVjdHJhbDExLzUAL3BpeWcxMS81AC9icmJnMTEvNQAvcGFpcmVkMTEvNQAvc2V0MzExLzUAL3JkZ3kxMC81AC9yZHlsYnUxMC81AC9yZGJ1MTAvNQAvcHVvcjEwLzUAL3ByZ24xMC81AC9yZHlsZ24xMC81AC9zcGVjdHJhbDEwLzUAL3BpeWcxMC81AC9icmJnMTAvNQAvcGFpcmVkMTAvNQAvc2V0MzEwLzUAYmlnLTUAQklHLTUAIC1kYXNoIDUAaXZvcnk0AGdyZXk0AGRhcmtzbGF0ZWdyYXk0AFx4NABzbm93NABsaWdodHllbGxvdzQAaG9uZXlkZXc0AHdoZWF0NAB0b21hdG80AHJvc3licm93bjQAbWFyb29uNABsaWdodHNhbG1vbjQAbGVtb25jaGlmZm9uNABzcHJpbmdncmVlbjQAZGFya29saXZlZ3JlZW40AHBhbGVncmVlbjQAZGFya3NlYWdyZWVuNABsaWdodGN5YW40AHRhbjQAcGx1bTQAc2Vhc2hlbGw0AGNvcmFsNABob3RwaW5rNABsaWdodHBpbms0AGRlZXBwaW5rNABjb3Juc2lsazQAZmlyZWJyaWNrNABraGFraTQAbGF2ZW5kZXJibHVzaDQAcGVhY2hwdWZmNABiaXNxdWU0AGxpZ2h0c2t5Ymx1ZTQAZGVlcHNreWJsdWU0AGxpZ2h0Ymx1ZTQAY2FkZXRibHVlNABkb2RnZXJibHVlNABsaWdodHN0ZWVsYmx1ZTQAcm95YWxibHVlNABzbGF0ZWJsdWU0AG5hdmFqb3doaXRlNABhbnRpcXVld2hpdGU0AGNob2NvbGF0ZTQAY2hhcnRyZXVzZTQAbWlzdHlyb3NlNABwYWxldHVycXVvaXNlNABhenVyZTQAdGhlcmU0AGFxdWFtYXJpbmU0AHRoaXN0bGU0AG1lZGl1bXB1cnBsZTQAZGFya29yYW5nZTQAbGlnaHRnb2xkZW5yb2Q0AGRhcmtnb2xkZW5yb2Q0AGJ1cmx5d29vZDQAZ29sZDQAbWVkaXVtb3JjaGlkNABkYXJrb3JjaGlkNABwYWxldmlvbGV0cmVkNABpbmRpYW5yZWQ0AG9yYW5nZXJlZDQAb2xpdmVkcmFiNABtYWdlbnRhNABzaWVubmE0AFx4RjQAXHhFNABceEQ0AFx4QzQAXHhCNABceEE0AGdyZXk5NABncmF5OTQAXHg5NABncmV5ODQAZ3JheTg0AFx4ODQAZ3JleTc0AGdyYXk3NABncmV5NjQAZ3JheTY0AGdyZXk1NABncmF5NTQAZ3JleTQ0AGdyYXk0NABncmV5MzQAZ3JheTM0AGZyYWMzNABncmV5MjQAZ3JheTI0AGdyZXkxNABncmF5MTQAXHgxNABmcmFjMTQAL3JkZ3k5LzQAL2J1cHU5LzQAL3JkcHU5LzQAL3B1YnU5LzQAL3lsZ25idTkvNAAvZ25idTkvNAAvcmR5bGJ1OS80AC9yZGJ1OS80AC9ncmV5czkvNAAvZ3JlZW5zOS80AC9ibHVlczkvNAAvcHVycGxlczkvNAAvb3JhbmdlczkvNAAvcmVkczkvNAAvcHVvcjkvNAAveWxvcmJyOS80AC9wdWJ1Z245LzQAL2J1Z245LzQAL3ByZ245LzQAL3JkeWxnbjkvNAAveWxnbjkvNAAvc3BlY3RyYWw5LzQAL3BpeWc5LzQAL2JyYmc5LzQAL3B1cmQ5LzQAL3lsb3JyZDkvNAAvb3JyZDkvNAAvcGFpcmVkOS80AC9zZXQzOS80AC9zZXQxOS80AC9wYXN0ZWwxOS80AC9yZGd5OC80AC9idXB1OC80AC9yZHB1OC80AC9wdWJ1OC80AC95bGduYnU4LzQAL2duYnU4LzQAL3JkeWxidTgvNAAvcmRidTgvNAAvYWNjZW50OC80AC9ncmV5czgvNAAvZ3JlZW5zOC80AC9ibHVlczgvNAAvcHVycGxlczgvNAAvb3JhbmdlczgvNAAvcmVkczgvNAAvcHVvcjgvNAAveWxvcmJyOC80AC9wdWJ1Z244LzQAL2J1Z244LzQAL3ByZ244LzQAL3JkeWxnbjgvNAAveWxnbjgvNAAvc3BlY3RyYWw4LzQAL3BpeWc4LzQAL2JyYmc4LzQAL3B1cmQ4LzQAL3lsb3JyZDgvNAAvb3JyZDgvNAAvcGFpcmVkOC80AC9zZXQzOC80AC9zZXQyOC80AC9wYXN0ZWwyOC80AC9kYXJrMjgvNAAvc2V0MTgvNAAvcGFzdGVsMTgvNAAvcmRneTcvNAAvYnVwdTcvNAAvcmRwdTcvNAAvcHVidTcvNAAveWxnbmJ1Ny80AC9nbmJ1Ny80AC9yZHlsYnU3LzQAL3JkYnU3LzQAL2FjY2VudDcvNAAvZ3JleXM3LzQAL2dyZWVuczcvNAAvYmx1ZXM3LzQAL3B1cnBsZXM3LzQAL29yYW5nZXM3LzQAL3JlZHM3LzQAL3B1b3I3LzQAL3lsb3JicjcvNAAvcHVidWduNy80AC9idWduNy80AC9wcmduNy80AC9yZHlsZ243LzQAL3lsZ243LzQAL3NwZWN0cmFsNy80AC9waXlnNy80AC9icmJnNy80AC9wdXJkNy80AC95bG9ycmQ3LzQAL29ycmQ3LzQAL3BhaXJlZDcvNAAvc2V0MzcvNAAvc2V0MjcvNAAvcGFzdGVsMjcvNAAvZGFyazI3LzQAL3NldDE3LzQAL3Bhc3RlbDE3LzQAL3JkZ3k2LzQAL2J1cHU2LzQAL3JkcHU2LzQAL3B1YnU2LzQAL3lsZ25idTYvNAAvZ25idTYvNAAvcmR5bGJ1Ni80AC9yZGJ1Ni80AC9hY2NlbnQ2LzQAL2dyZXlzNi80AC9ncmVlbnM2LzQAL2JsdWVzNi80AC9wdXJwbGVzNi80AC9vcmFuZ2VzNi80AC9yZWRzNi80AC9wdW9yNi80AC95bG9yYnI2LzQAL3B1YnVnbjYvNAAvYnVnbjYvNAAvcHJnbjYvNAAvcmR5bGduNi80AC95bGduNi80AC9zcGVjdHJhbDYvNAAvcGl5ZzYvNAAvYnJiZzYvNAAvcHVyZDYvNAAveWxvcnJkNi80AC9vcnJkNi80AC9wYWlyZWQ2LzQAL3NldDM2LzQAL3NldDI2LzQAL3Bhc3RlbDI2LzQAL2RhcmsyNi80AC9zZXQxNi80AC9wYXN0ZWwxNi80AC9yZGd5NS80AC9idXB1NS80AC9yZHB1NS80AC9wdWJ1NS80AC95bGduYnU1LzQAL2duYnU1LzQAL3JkeWxidTUvNAAvcmRidTUvNAAvYWNjZW50NS80AC9ncmV5czUvNAAvZ3JlZW5zNS80AC9ibHVlczUvNAAvcHVycGxlczUvNAAvb3JhbmdlczUvNAAvcmVkczUvNAAvcHVvcjUvNAAveWxvcmJyNS80AC9wdWJ1Z241LzQAL2J1Z241LzQAL3ByZ241LzQAL3JkeWxnbjUvNAAveWxnbjUvNAAvc3BlY3RyYWw1LzQAL3BpeWc1LzQAL2JyYmc1LzQAL3B1cmQ1LzQAL3lsb3JyZDUvNAAvb3JyZDUvNAAvcGFpcmVkNS80AC9zZXQzNS80AC9zZXQyNS80AC9wYXN0ZWwyNS80AC9kYXJrMjUvNAAvc2V0MTUvNAAvcGFzdGVsMTUvNAAvcmRneTQvNAAvYnVwdTQvNAAvcmRwdTQvNAAvcHVidTQvNAAveWxnbmJ1NC80AC9nbmJ1NC80AC9yZHlsYnU0LzQAL3JkYnU0LzQAL2FjY2VudDQvNAAvZ3JleXM0LzQAL2dyZWVuczQvNAAvYmx1ZXM0LzQAL3B1cnBsZXM0LzQAL29yYW5nZXM0LzQAL3JlZHM0LzQAL3B1b3I0LzQAL3lsb3JicjQvNAAvcHVidWduNC80AC9idWduNC80AC9wcmduNC80AC9yZHlsZ240LzQAL3lsZ240LzQAL3NwZWN0cmFsNC80AC9waXlnNC80AC9icmJnNC80AC9wdXJkNC80AC95bG9ycmQ0LzQAL29ycmQ0LzQAL3BhaXJlZDQvNAAvc2V0MzQvNAAvc2V0MjQvNAAvcGFzdGVsMjQvNAAvZGFyazI0LzQAL3NldDE0LzQAL3Bhc3RlbDE0LzQAL3BhaXJlZDEyLzQAL3NldDMxMi80AC9yZGd5MTEvNAAvcmR5bGJ1MTEvNAAvcmRidTExLzQAL3B1b3IxMS80AC9wcmduMTEvNAAvcmR5bGduMTEvNAAvc3BlY3RyYWwxMS80AC9waXlnMTEvNAAvYnJiZzExLzQAL3BhaXJlZDExLzQAL3NldDMxMS80AC9yZGd5MTAvNAAvcmR5bGJ1MTAvNAAvcmRidTEwLzQAL3B1b3IxMC80AC9wcmduMTAvNAAvcmR5bGduMTAvNAAvc3BlY3RyYWwxMC80AC9waXlnMTAvNAAvYnJiZzEwLzQAL3BhaXJlZDEwLzQAL3NldDMxMC80ADEuNABuID49IDQAc2lkZXMgPT0gNABpdm9yeTMAU3BhcnNlTWF0cml4X211bHRpcGx5MwBncmV5MwBkYXJrc2xhdGVncmF5MwBceDMAc25vdzMAbGlnaHR5ZWxsb3czAGhvbmV5ZGV3MwB3aGVhdDMAc3VwMwB0b21hdG8zAHJvc3licm93bjMAbWFyb29uMwBsaWdodHNhbG1vbjMAbGVtb25jaGlmZm9uMwBzcHJpbmdncmVlbjMAZGFya29saXZlZ3JlZW4zAHBhbGVncmVlbjMAZGFya3NlYWdyZWVuMwBsaWdodGN5YW4zAHRhbjMAcGx1bTMAc2Vhc2hlbGwzAGNvcmFsMwBob3RwaW5rMwBsaWdodHBpbmszAGRlZXBwaW5rMwBjb3Juc2lsazMAZmlyZWJyaWNrMwBraGFraTMAbGF2ZW5kZXJibHVzaDMAcGVhY2hwdWZmMwBiaXNxdWUzAGxpZ2h0c2t5Ymx1ZTMAZGVlcHNreWJsdWUzAGxpZ2h0Ymx1ZTMAY2FkZXRibHVlMwBkb2RnZXJibHVlMwBsaWdodHN0ZWVsYmx1ZTMAcm95YWxibHVlMwBzbGF0ZWJsdWUzAG5hdmFqb3doaXRlMwBhbnRpcXVld2hpdGUzAGNob2NvbGF0ZTMAY2hhcnRyZXVzZTMAbWlzdHlyb3NlMwBwYWxldHVycXVvaXNlMwBhenVyZTMAYXF1YW1hcmluZTMAdGhpc3RsZTMAbWVkaXVtcHVycGxlMwBkYXJrb3JhbmdlMwBsaWdodGdvbGRlbnJvZDMAZGFya2dvbGRlbnJvZDMAYnVybHl3b29kMwBnb2xkMwBtZWRpdW1vcmNoaWQzAGRhcmtvcmNoaWQzAHBhbGV2aW9sZXRyZWQzAGluZGlhbnJlZDMAb3JhbmdlcmVkMwBvbGl2ZWRyYWIzAG1hZ2VudGEzAHNpZW5uYTMAXHhGMwBceEUzAFx4RDMAXHhDMwBceEIzAFx4QTMAZ3JleTkzAGdyYXk5MwBceDkzAGdyZXk4MwBncmF5ODMAXHg4MwBncmV5NzMAZ3JheTczAGdyZXk2MwBncmF5NjMAZ3JleTUzAGdyYXk1MwBncmV5NDMAZ3JheTQzAGdyZXkzMwBncmF5MzMAZ3JleTIzAGdyYXkyMwBncmV5MTMAZ3JheTEzAFx4MTMAL3JkZ3k5LzMAL2J1cHU5LzMAL3JkcHU5LzMAL3B1YnU5LzMAL3lsZ25idTkvMwAvZ25idTkvMwAvcmR5bGJ1OS8zAC9yZGJ1OS8zAC9ncmV5czkvMwAvZ3JlZW5zOS8zAC9ibHVlczkvMwAvcHVycGxlczkvMwAvb3JhbmdlczkvMwAvcmVkczkvMwAvcHVvcjkvMwAveWxvcmJyOS8zAC9wdWJ1Z245LzMAL2J1Z245LzMAL3ByZ245LzMAL3JkeWxnbjkvMwAveWxnbjkvMwAvc3BlY3RyYWw5LzMAL3BpeWc5LzMAL2JyYmc5LzMAL3B1cmQ5LzMAL3lsb3JyZDkvMwAvb3JyZDkvMwAvcGFpcmVkOS8zAC9zZXQzOS8zAC9zZXQxOS8zAC9wYXN0ZWwxOS8zAC9yZGd5OC8zAC9idXB1OC8zAC9yZHB1OC8zAC9wdWJ1OC8zAC95bGduYnU4LzMAL2duYnU4LzMAL3JkeWxidTgvMwAvcmRidTgvMwAvYWNjZW50OC8zAC9ncmV5czgvMwAvZ3JlZW5zOC8zAC9ibHVlczgvMwAvcHVycGxlczgvMwAvb3JhbmdlczgvMwAvcmVkczgvMwAvcHVvcjgvMwAveWxvcmJyOC8zAC9wdWJ1Z244LzMAL2J1Z244LzMAL3ByZ244LzMAL3JkeWxnbjgvMwAveWxnbjgvMwAvc3BlY3RyYWw4LzMAL3BpeWc4LzMAL2JyYmc4LzMAL3B1cmQ4LzMAL3lsb3JyZDgvMwAvb3JyZDgvMwAvcGFpcmVkOC8zAC9zZXQzOC8zAC9zZXQyOC8zAC9wYXN0ZWwyOC8zAC9kYXJrMjgvMwAvc2V0MTgvMwAvcGFzdGVsMTgvMwAvcmRneTcvMwAvYnVwdTcvMwAvcmRwdTcvMwAvcHVidTcvMwAveWxnbmJ1Ny8zAC9nbmJ1Ny8zAC9yZHlsYnU3LzMAL3JkYnU3LzMAL2FjY2VudDcvMwAvZ3JleXM3LzMAL2dyZWVuczcvMwAvYmx1ZXM3LzMAL3B1cnBsZXM3LzMAL29yYW5nZXM3LzMAL3JlZHM3LzMAL3B1b3I3LzMAL3lsb3JicjcvMwAvcHVidWduNy8zAC9idWduNy8zAC9wcmduNy8zAC9yZHlsZ243LzMAL3lsZ243LzMAL3NwZWN0cmFsNy8zAC9waXlnNy8zAC9icmJnNy8zAC9wdXJkNy8zAC95bG9ycmQ3LzMAL29ycmQ3LzMAL3BhaXJlZDcvMwAvc2V0MzcvMwAvc2V0MjcvMwAvcGFzdGVsMjcvMwAvZGFyazI3LzMAL3NldDE3LzMAL3Bhc3RlbDE3LzMAL3JkZ3k2LzMAL2J1cHU2LzMAL3JkcHU2LzMAL3B1YnU2LzMAL3lsZ25idTYvMwAvZ25idTYvMwAvcmR5bGJ1Ni8zAC9yZGJ1Ni8zAC9hY2NlbnQ2LzMAL2dyZXlzNi8zAC9ncmVlbnM2LzMAL2JsdWVzNi8zAC9wdXJwbGVzNi8zAC9vcmFuZ2VzNi8zAC9yZWRzNi8zAC9wdW9yNi8zAC95bG9yYnI2LzMAL3B1YnVnbjYvMwAvYnVnbjYvMwAvcHJnbjYvMwAvcmR5bGduNi8zAC95bGduNi8zAC9zcGVjdHJhbDYvMwAvcGl5ZzYvMwAvYnJiZzYvMwAvcHVyZDYvMwAveWxvcnJkNi8zAC9vcnJkNi8zAC9wYWlyZWQ2LzMAL3NldDM2LzMAL3NldDI2LzMAL3Bhc3RlbDI2LzMAL2RhcmsyNi8zAC9zZXQxNi8zAC9wYXN0ZWwxNi8zAC9yZGd5NS8zAC9idXB1NS8zAC9yZHB1NS8zAC9wdWJ1NS8zAC95bGduYnU1LzMAL2duYnU1LzMAL3JkeWxidTUvMwAvcmRidTUvMwAvYWNjZW50NS8zAC9ncmV5czUvMwAvZ3JlZW5zNS8zAC9ibHVlczUvMwAvcHVycGxlczUvMwAvb3JhbmdlczUvMwAvcmVkczUvMwAvcHVvcjUvMwAveWxvcmJyNS8zAC9wdWJ1Z241LzMAL2J1Z241LzMAL3ByZ241LzMAL3JkeWxnbjUvMwAveWxnbjUvMwAvc3BlY3RyYWw1LzMAL3BpeWc1LzMAL2JyYmc1LzMAL3B1cmQ1LzMAL3lsb3JyZDUvMwAvb3JyZDUvMwAvcGFpcmVkNS8zAC9zZXQzNS8zAC9zZXQyNS8zAC9wYXN0ZWwyNS8zAC9kYXJrMjUvMwAvc2V0MTUvMwAvcGFzdGVsMTUvMwAvcmRneTQvMwAvYnVwdTQvMwAvcmRwdTQvMwAvcHVidTQvMwAveWxnbmJ1NC8zAC9nbmJ1NC8zAC9yZHlsYnU0LzMAL3JkYnU0LzMAL2FjY2VudDQvMwAvZ3JleXM0LzMAL2dyZWVuczQvMwAvYmx1ZXM0LzMAL3B1cnBsZXM0LzMAL29yYW5nZXM0LzMAL3JlZHM0LzMAL3B1b3I0LzMAL3lsb3JicjQvMwAvcHVidWduNC8zAC9idWduNC8zAC9wcmduNC8zAC9yZHlsZ240LzMAL3lsZ240LzMAL3NwZWN0cmFsNC8zAC9waXlnNC8zAC9icmJnNC8zAC9wdXJkNC8zAC95bG9ycmQ0LzMAL29ycmQ0LzMAL3BhaXJlZDQvMwAvc2V0MzQvMwAvc2V0MjQvMwAvcGFzdGVsMjQvMwAvZGFyazI0LzMAL3NldDE0LzMAL3Bhc3RlbDE0LzMAL3JkZ3kzLzMAL2J1cHUzLzMAL3JkcHUzLzMAL3B1YnUzLzMAL3lsZ25idTMvMwAvZ25idTMvMwAvcmR5bGJ1My8zAC9yZGJ1My8zAC9hY2NlbnQzLzMAL2dyZXlzMy8zAC9ncmVlbnMzLzMAL2JsdWVzMy8zAC9wdXJwbGVzMy8zAC9vcmFuZ2VzMy8zAC9yZWRzMy8zAC9wdW9yMy8zAC95bG9yYnIzLzMAL3B1YnVnbjMvMwAvYnVnbjMvMwAvcHJnbjMvMwAvcmR5bGduMy8zAC95bGduMy8zAC9zcGVjdHJhbDMvMwAvcGl5ZzMvMwAvYnJiZzMvMwAvcHVyZDMvMwAveWxvcnJkMy8zAC9vcnJkMy8zAC9wYWlyZWQzLzMAL3NldDMzLzMAL3NldDIzLzMAL3Bhc3RlbDIzLzMAL2RhcmsyMy8zAC9zZXQxMy8zAC9wYXN0ZWwxMy8zAC9wYWlyZWQxMi8zAC9zZXQzMTIvMwAvcmRneTExLzMAL3JkeWxidTExLzMAL3JkYnUxMS8zAC9wdW9yMTEvMwAvcHJnbjExLzMAL3JkeWxnbjExLzMAL3NwZWN0cmFsMTEvMwAvcGl5ZzExLzMAL2JyYmcxMS8zAC9wYWlyZWQxMS8zAC9zZXQzMTEvMwAvcmRneTEwLzMAL3JkeWxidTEwLzMAL3JkYnUxMC8zAC9wdW9yMTAvMwAvcHJnbjEwLzMAL3JkeWxnbjEwLzMAL3NwZWN0cmFsMTAvMwAvcGl5ZzEwLzMAL2JyYmcxMC8zAC9wYWlyZWQxMC8zAC9zZXQzMTAvMwBpdm9yeTIAZ3JleTIAZGFya3NsYXRlZ3JheTIAXHgyAHNub3cyAGxpZ2h0eWVsbG93MgBob25leWRldzIAUlRyZWVJbnNlcnQyAHdoZWF0MgBzdXAyAG5vcDIAdG9tYXRvMgByb3N5YnJvd24yAG1hcm9vbjIAbGlnaHRzYWxtb24yAGxlbW9uY2hpZmZvbjIAc3ByaW5nZ3JlZW4yAGRhcmtvbGl2ZWdyZWVuMgBwYWxlZ3JlZW4yAGRhcmtzZWFncmVlbjIAbGlnaHRjeWFuMgB0YW4yAHBsdW0yAHNlYXNoZWxsMgBjb3JhbDIAaG90cGluazIAbGlnaHRwaW5rMgBkZWVwcGluazIAY29ybnNpbGsyAGZpcmVicmljazIAa2hha2kyAGxhdmVuZGVyYmx1c2gyAHBlYWNocHVmZjIAYnJvbnplMgBiaXNxdWUyAGxpZ2h0c2t5Ymx1ZTIAZGVlcHNreWJsdWUyAGxpZ2h0Ymx1ZTIAY2FkZXRibHVlMgBkb2RnZXJibHVlMgBsaWdodHN0ZWVsYmx1ZTIAcm95YWxibHVlMgBzbGF0ZWJsdWUyAG5hdmFqb3doaXRlMgBhbnRpcXVld2hpdGUyAGNob2NvbGF0ZTIAY2hhcnRyZXVzZTIAbWlzdHlyb3NlMgBwYWxldHVycXVvaXNlMgBhenVyZTIAYXF1YW1hcmluZTIAdGhpc3RsZTIAbWVkaXVtcHVycGxlMgBkYXJrb3JhbmdlMgBsaWdodGdvbGRlbnJvZDIAZGFya2dvbGRlbnJvZDIAYnVybHl3b29kMgBnb2xkMgBtZWRpdW1vcmNoaWQyAGRhcmtvcmNoaWQyAHBhbGV2aW9sZXRyZWQyAGluZGlhbnJlZDIAb3JhbmdlcmVkMgBvbGl2ZWRyYWIyAG1hZ2VudGEyAHNpZW5uYTIAXHhGMgBceEUyAFx4RDIAXHhDMgBceEIyAFx4QTIAZ3JleTkyAGdyYXk5MgBceDkyAGdyZXk4MgBncmF5ODIAXHg4MgBncmV5NzIAZ3JheTcyAGdyZXk2MgBncmF5NjIAZ3JleTUyAGdyYXk1MgBncmV5NDIAZ3JheTQyAGdyZXkzMgBncmF5MzIAZ3JleTIyAGdyYXkyMgBncmV5MTIAZ3JheTEyAFx4MTIAZnJhYzEyAC9wYWlyZWQxMi8xMgAvc2V0MzEyLzEyAC9yZGd5OS8yAC9idXB1OS8yAC9yZHB1OS8yAC9wdWJ1OS8yAC95bGduYnU5LzIAL2duYnU5LzIAL3JkeWxidTkvMgAvcmRidTkvMgAvZ3JleXM5LzIAL2dyZWVuczkvMgAvYmx1ZXM5LzIAL3B1cnBsZXM5LzIAL29yYW5nZXM5LzIAL3JlZHM5LzIAL3B1b3I5LzIAL3lsb3JicjkvMgAvcHVidWduOS8yAC9idWduOS8yAC9wcmduOS8yAC9yZHlsZ245LzIAL3lsZ245LzIAL3NwZWN0cmFsOS8yAC9waXlnOS8yAC9icmJnOS8yAC9wdXJkOS8yAC95bG9ycmQ5LzIAL29ycmQ5LzIAL3BhaXJlZDkvMgAvc2V0MzkvMgAvc2V0MTkvMgAvcGFzdGVsMTkvMgAvcmRneTgvMgAvYnVwdTgvMgAvcmRwdTgvMgAvcHVidTgvMgAveWxnbmJ1OC8yAC9nbmJ1OC8yAC9yZHlsYnU4LzIAL3JkYnU4LzIAL2FjY2VudDgvMgAvZ3JleXM4LzIAL2dyZWVuczgvMgAvYmx1ZXM4LzIAL3B1cnBsZXM4LzIAL29yYW5nZXM4LzIAL3JlZHM4LzIAL3B1b3I4LzIAL3lsb3JicjgvMgAvcHVidWduOC8yAC9idWduOC8yAC9wcmduOC8yAC9yZHlsZ244LzIAL3lsZ244LzIAL3NwZWN0cmFsOC8yAC9waXlnOC8yAC9icmJnOC8yAC9wdXJkOC8yAC95bG9ycmQ4LzIAL29ycmQ4LzIAL3BhaXJlZDgvMgAvc2V0MzgvMgAvc2V0MjgvMgAvcGFzdGVsMjgvMgAvZGFyazI4LzIAL3NldDE4LzIAL3Bhc3RlbDE4LzIAL3JkZ3k3LzIAL2J1cHU3LzIAL3JkcHU3LzIAL3B1YnU3LzIAL3lsZ25idTcvMgAvZ25idTcvMgAvcmR5bGJ1Ny8yAC9yZGJ1Ny8yAC9hY2NlbnQ3LzIAL2dyZXlzNy8yAC9ncmVlbnM3LzIAL2JsdWVzNy8yAC9wdXJwbGVzNy8yAC9vcmFuZ2VzNy8yAC9yZWRzNy8yAC9wdW9yNy8yAC95bG9yYnI3LzIAL3B1YnVnbjcvMgAvYnVnbjcvMgAvcHJnbjcvMgAvcmR5bGduNy8yAC95bGduNy8yAC9zcGVjdHJhbDcvMgAvcGl5ZzcvMgAvYnJiZzcvMgAvcHVyZDcvMgAveWxvcnJkNy8yAC9vcnJkNy8yAC9wYWlyZWQ3LzIAL3NldDM3LzIAL3NldDI3LzIAL3Bhc3RlbDI3LzIAL2RhcmsyNy8yAC9zZXQxNy8yAC9wYXN0ZWwxNy8yAC9yZGd5Ni8yAC9idXB1Ni8yAC9yZHB1Ni8yAC9wdWJ1Ni8yAC95bGduYnU2LzIAL2duYnU2LzIAL3JkeWxidTYvMgAvcmRidTYvMgAvYWNjZW50Ni8yAC9ncmV5czYvMgAvZ3JlZW5zNi8yAC9ibHVlczYvMgAvcHVycGxlczYvMgAvb3JhbmdlczYvMgAvcmVkczYvMgAvcHVvcjYvMgAveWxvcmJyNi8yAC9wdWJ1Z242LzIAL2J1Z242LzIAL3ByZ242LzIAL3JkeWxnbjYvMgAveWxnbjYvMgAvc3BlY3RyYWw2LzIAL3BpeWc2LzIAL2JyYmc2LzIAL3B1cmQ2LzIAL3lsb3JyZDYvMgAvb3JyZDYvMgAvcGFpcmVkNi8yAC9zZXQzNi8yAC9zZXQyNi8yAC9wYXN0ZWwyNi8yAC9kYXJrMjYvMgAvc2V0MTYvMgAvcGFzdGVsMTYvMgAvcmRneTUvMgAvYnVwdTUvMgAvcmRwdTUvMgAvcHVidTUvMgAveWxnbmJ1NS8yAC9nbmJ1NS8yAC9yZHlsYnU1LzIAL3JkYnU1LzIAL2FjY2VudDUvMgAvZ3JleXM1LzIAL2dyZWVuczUvMgAvYmx1ZXM1LzIAL3B1cnBsZXM1LzIAL29yYW5nZXM1LzIAL3JlZHM1LzIAL3B1b3I1LzIAL3lsb3JicjUvMgAvcHVidWduNS8yAC9idWduNS8yAC9wcmduNS8yAC9yZHlsZ241LzIAL3lsZ241LzIAL3NwZWN0cmFsNS8yAC9waXlnNS8yAC9icmJnNS8yAC9wdXJkNS8yAC95bG9ycmQ1LzIAL29ycmQ1LzIAL3BhaXJlZDUvMgAvc2V0MzUvMgAvc2V0MjUvMgAvcGFzdGVsMjUvMgAvZGFyazI1LzIAL3NldDE1LzIAL3Bhc3RlbDE1LzIAL3JkZ3k0LzIAL2J1cHU0LzIAL3JkcHU0LzIAL3B1YnU0LzIAL3lsZ25idTQvMgAvZ25idTQvMgAvcmR5bGJ1NC8yAC9yZGJ1NC8yAC9hY2NlbnQ0LzIAL2dyZXlzNC8yAC9ncmVlbnM0LzIAL2JsdWVzNC8yAC9wdXJwbGVzNC8yAC9vcmFuZ2VzNC8yAC9yZWRzNC8yAC9wdW9yNC8yAC95bG9yYnI0LzIAL3B1YnVnbjQvMgAvYnVnbjQvMgAvcHJnbjQvMgAvcmR5bGduNC8yAC95bGduNC8yAC9zcGVjdHJhbDQvMgAvcGl5ZzQvMgAvYnJiZzQvMgAvcHVyZDQvMgAveWxvcnJkNC8yAC9vcnJkNC8yAC9wYWlyZWQ0LzIAL3NldDM0LzIAL3NldDI0LzIAL3Bhc3RlbDI0LzIAL2RhcmsyNC8yAC9zZXQxNC8yAC9wYXN0ZWwxNC8yAC9yZGd5My8yAC9idXB1My8yAC9yZHB1My8yAC9wdWJ1My8yAC95bGduYnUzLzIAL2duYnUzLzIAL3JkeWxidTMvMgAvcmRidTMvMgAvYWNjZW50My8yAC9ncmV5czMvMgAvZ3JlZW5zMy8yAC9ibHVlczMvMgAvcHVycGxlczMvMgAvb3JhbmdlczMvMgAvcmVkczMvMgAvcHVvcjMvMgAveWxvcmJyMy8yAC9wdWJ1Z24zLzIAL2J1Z24zLzIAL3ByZ24zLzIAL3JkeWxnbjMvMgAveWxnbjMvMgAvc3BlY3RyYWwzLzIAL3BpeWczLzIAL2JyYmczLzIAL3B1cmQzLzIAL3lsb3JyZDMvMgAvb3JyZDMvMgAvcGFpcmVkMy8yAC9zZXQzMy8yAC9zZXQyMy8yAC9wYXN0ZWwyMy8yAC9kYXJrMjMvMgAvc2V0MTMvMgAvcGFzdGVsMTMvMgAvcGFpcmVkMTIvMgAvc2V0MzEyLzIAL3JkZ3kxMS8yAC9yZHlsYnUxMS8yAC9yZGJ1MTEvMgAvcHVvcjExLzIAL3ByZ24xMS8yAC9yZHlsZ24xMS8yAC9zcGVjdHJhbDExLzIAL3BpeWcxMS8yAC9icmJnMTEvMgAvcGFpcmVkMTEvMgAvc2V0MzExLzIAL3JkZ3kxMC8yAC9yZHlsYnUxMC8yAC9yZGJ1MTAvMgAvcHVvcjEwLzIAL3ByZ24xMC8yAC9yZHlsZ24xMC8yAC9zcGVjdHJhbDEwLzIAL3BpeWcxMC8yAC9icmJnMTAvMgAvcGFpcmVkMTAvMgAvc2V0MzEwLzIAMTMuMS4yACAtZGFzaCAyAHN6ID49IDIAbGVuID49IDIAZXhwID09IDEgfHwgZXhwID09IDIAZGltID09IDIATkRfb3V0KHYpLnNpemUgPT0gMgBpdm9yeTEAZ3JleTEAZGFya3NsYXRlZ3JheTEAXHgxAHNub3cxAGxpZ2h0eWVsbG93MQBob25leWRldzEAbnNsaW1pdDEAd2hlYXQxAHN1cDEAbm9wMQB0b21hdG8xAHJvc3licm93bjEAbWFyb29uMQBsaWdodHNhbG1vbjEAbGVtb25jaGlmZm9uMQBsYXRpbjEAYWdvcGVuMQBzcHJpbmdncmVlbjEAZGFya29saXZlZ3JlZW4xAHBhbGVncmVlbjEAZGFya3NlYWdyZWVuMQBsaWdodGN5YW4xAHRhbjEAcGx1bTEAc2Vhc2hlbGwxAGNvcmFsMQBob3RwaW5rMQBsaWdodHBpbmsxAGRlZXBwaW5rMQBjb3Juc2lsazEAZmlyZWJyaWNrMQBqMCA8PSBpMSAmJiBpMSA8PSBqMQBraGFraTEAbGF2ZW5kZXJibHVzaDEAcGVhY2hwdWZmMQBiaXNxdWUxAGxpZ2h0c2t5Ymx1ZTEAZGVlcHNreWJsdWUxAGxpZ2h0Ymx1ZTEAY2FkZXRibHVlMQBkb2RnZXJibHVlMQBsaWdodHN0ZWVsYmx1ZTEAcm95YWxibHVlMQBzbGF0ZWJsdWUxAG5hdmFqb3doaXRlMQBhbnRpcXVld2hpdGUxAGNob2NvbGF0ZTEAY2hhcnRyZXVzZTEAbWlzdHlyb3NlMQBwYWxldHVycXVvaXNlMQBhenVyZTEAYXF1YW1hcmluZTEAdGhpc3RsZTEAbWVkaXVtcHVycGxlMQBkYXJrb3JhbmdlMQBhcmdfZTAgJiYgYXJnX2UxAGxpZ2h0Z29sZGVucm9kMQBkYXJrZ29sZGVucm9kMQBidXJseXdvb2QxAGdvbGQxAG1lZGl1bW9yY2hpZDEAZGFya29yY2hpZDEAcGFsZXZpb2xldHJlZDEAaW5kaWFucmVkMQBvcmFuZ2VyZWQxAG9saXZlZHJhYjEAbWFnZW50YTEAc2llbm5hMQBceEYxAFx4RTEAXHhEMQBceEMxAFx4QjEAXHhBMQBncmV5OTEAZ3JheTkxAFx4OTEAZ3JleTgxAGdyYXk4MQBceDgxAGdyZXk3MQBncmF5NzEAZ3JleTYxAGdyYXk2MQBncmV5NTEAZ3JheTUxAGdyZXk0MQBncmF5NDEAZ3JleTMxAGdyYXkzMQBncmV5MjEAZ3JheTIxAGdyZXkxMQBncmF5MTEAXHgxMQAvcGFpcmVkMTIvMTEAL3NldDMxMi8xMQAvcmRneTExLzExAC9yZHlsYnUxMS8xMQAvcmRidTExLzExAC9wdW9yMTEvMTEAL3ByZ24xMS8xMQAvcmR5bGduMTEvMTEAL3NwZWN0cmFsMTEvMTEAL3BpeWcxMS8xMQAvYnJiZzExLzExAC9wYWlyZWQxMS8xMQAvc2V0MzExLzExAGNzW2ldLT5zbGFjaygpPi0wLjAwMDAwMDEAL3JkZ3k5LzEAL2J1cHU5LzEAL3JkcHU5LzEAL3B1YnU5LzEAL3lsZ25idTkvMQAvZ25idTkvMQAvcmR5bGJ1OS8xAC9yZGJ1OS8xAC9ncmV5czkvMQAvZ3JlZW5zOS8xAC9ibHVlczkvMQAvcHVycGxlczkvMQAvb3JhbmdlczkvMQAvcmVkczkvMQAvcHVvcjkvMQAveWxvcmJyOS8xAC9wdWJ1Z245LzEAL2J1Z245LzEAL3ByZ245LzEAL3JkeWxnbjkvMQAveWxnbjkvMQAvc3BlY3RyYWw5LzEAL3BpeWc5LzEAL2JyYmc5LzEAL3B1cmQ5LzEAL3lsb3JyZDkvMQAvb3JyZDkvMQAvcGFpcmVkOS8xAC9zZXQzOS8xAC9zZXQxOS8xAC9wYXN0ZWwxOS8xAC9yZGd5OC8xAC9idXB1OC8xAC9yZHB1OC8xAC9wdWJ1OC8xAC95bGduYnU4LzEAL2duYnU4LzEAL3JkeWxidTgvMQAvcmRidTgvMQAvYWNjZW50OC8xAC9ncmV5czgvMQAvZ3JlZW5zOC8xAC9ibHVlczgvMQAvcHVycGxlczgvMQAvb3JhbmdlczgvMQAvcmVkczgvMQAvcHVvcjgvMQAveWxvcmJyOC8xAC9wdWJ1Z244LzEAL2J1Z244LzEAL3ByZ244LzEAL3JkeWxnbjgvMQAveWxnbjgvMQAvc3BlY3RyYWw4LzEAL3BpeWc4LzEAL2JyYmc4LzEAL3B1cmQ4LzEAL3lsb3JyZDgvMQAvb3JyZDgvMQAvcGFpcmVkOC8xAC9zZXQzOC8xAC9zZXQyOC8xAC9wYXN0ZWwyOC8xAC9kYXJrMjgvMQAvc2V0MTgvMQAvcGFzdGVsMTgvMQAvcmRneTcvMQAvYnVwdTcvMQAvcmRwdTcvMQAvcHVidTcvMQAveWxnbmJ1Ny8xAC9nbmJ1Ny8xAC9yZHlsYnU3LzEAL3JkYnU3LzEAL2FjY2VudDcvMQAvZ3JleXM3LzEAL2dyZWVuczcvMQAvYmx1ZXM3LzEAL3B1cnBsZXM3LzEAL29yYW5nZXM3LzEAL3JlZHM3LzEAL3B1b3I3LzEAL3lsb3JicjcvMQAvcHVidWduNy8xAC9idWduNy8xAC9wcmduNy8xAC9yZHlsZ243LzEAL3lsZ243LzEAL3NwZWN0cmFsNy8xAC9waXlnNy8xAC9icmJnNy8xAC9wdXJkNy8xAC95bG9ycmQ3LzEAL29ycmQ3LzEAL3BhaXJlZDcvMQAvc2V0MzcvMQAvc2V0MjcvMQAvcGFzdGVsMjcvMQAvZGFyazI3LzEAL3NldDE3LzEAL3Bhc3RlbDE3LzEAL3JkZ3k2LzEAL2J1cHU2LzEAL3JkcHU2LzEAL3B1YnU2LzEAL3lsZ25idTYvMQAvZ25idTYvMQAvcmR5bGJ1Ni8xAC9yZGJ1Ni8xAC9hY2NlbnQ2LzEAL2dyZXlzNi8xAC9ncmVlbnM2LzEAL2JsdWVzNi8xAC9wdXJwbGVzNi8xAC9vcmFuZ2VzNi8xAC9yZWRzNi8xAC9wdW9yNi8xAC95bG9yYnI2LzEAL3B1YnVnbjYvMQAvYnVnbjYvMQAvcHJnbjYvMQAvcmR5bGduNi8xAC95bGduNi8xAC9zcGVjdHJhbDYvMQAvcGl5ZzYvMQAvYnJiZzYvMQAvcHVyZDYvMQAveWxvcnJkNi8xAC9vcnJkNi8xAC9wYWlyZWQ2LzEAL3NldDM2LzEAL3NldDI2LzEAL3Bhc3RlbDI2LzEAL2RhcmsyNi8xAC9zZXQxNi8xAC9wYXN0ZWwxNi8xAC9yZGd5NS8xAC9idXB1NS8xAC9yZHB1NS8xAC9wdWJ1NS8xAC95bGduYnU1LzEAL2duYnU1LzEAL3JkeWxidTUvMQAvcmRidTUvMQAvYWNjZW50NS8xAC9ncmV5czUvMQAvZ3JlZW5zNS8xAC9ibHVlczUvMQAvcHVycGxlczUvMQAvb3JhbmdlczUvMQAvcmVkczUvMQAvcHVvcjUvMQAveWxvcmJyNS8xAC9wdWJ1Z241LzEAL2J1Z241LzEAL3ByZ241LzEAL3JkeWxnbjUvMQAveWxnbjUvMQAvc3BlY3RyYWw1LzEAL3BpeWc1LzEAL2JyYmc1LzEAL3B1cmQ1LzEAL3lsb3JyZDUvMQAvb3JyZDUvMQAvcGFpcmVkNS8xAC9zZXQzNS8xAC9zZXQyNS8xAC9wYXN0ZWwyNS8xAC9kYXJrMjUvMQAvc2V0MTUvMQAvcGFzdGVsMTUvMQAvcmRneTQvMQAvYnVwdTQvMQAvcmRwdTQvMQAvcHVidTQvMQAveWxnbmJ1NC8xAC9nbmJ1NC8xAC9yZHlsYnU0LzEAL3JkYnU0LzEAL2FjY2VudDQvMQAvZ3JleXM0LzEAL2dyZWVuczQvMQAvYmx1ZXM0LzEAL3B1cnBsZXM0LzEAL29yYW5nZXM0LzEAL3JlZHM0LzEAL3B1b3I0LzEAL3lsb3JicjQvMQAvcHVidWduNC8xAC9idWduNC8xAC9wcmduNC8xAC9yZHlsZ240LzEAL3lsZ240LzEAL3NwZWN0cmFsNC8xAC9waXlnNC8xAC9icmJnNC8xAC9wdXJkNC8xAC95bG9ycmQ0LzEAL29ycmQ0LzEAL3BhaXJlZDQvMQAvc2V0MzQvMQAvc2V0MjQvMQAvcGFzdGVsMjQvMQAvZGFyazI0LzEAL3NldDE0LzEAL3Bhc3RlbDE0LzEAL3JkZ3kzLzEAL2J1cHUzLzEAL3JkcHUzLzEAL3B1YnUzLzEAL3lsZ25idTMvMQAvZ25idTMvMQAvcmR5bGJ1My8xAC9yZGJ1My8xAC9hY2NlbnQzLzEAL2dyZXlzMy8xAC9ncmVlbnMzLzEAL2JsdWVzMy8xAC9wdXJwbGVzMy8xAC9vcmFuZ2VzMy8xAC9yZWRzMy8xAC9wdW9yMy8xAC95bG9yYnIzLzEAL3B1YnVnbjMvMQAvYnVnbjMvMQAvcHJnbjMvMQAvcmR5bGduMy8xAC95bGduMy8xAC9zcGVjdHJhbDMvMQAvcGl5ZzMvMQAvYnJiZzMvMQAvcHVyZDMvMQAveWxvcnJkMy8xAC9vcnJkMy8xAC9wYWlyZWQzLzEAL3NldDMzLzEAL3NldDIzLzEAL3Bhc3RlbDIzLzEAL2RhcmsyMy8xAC9zZXQxMy8xAC9wYXN0ZWwxMy8xAC9wYWlyZWQxMi8xAC9zZXQzMTIvMQAvcmRneTExLzEAL3JkeWxidTExLzEAL3JkYnUxMS8xAC9wdW9yMTEvMQAvcHJnbjExLzEAL3JkeWxnbjExLzEAL3NwZWN0cmFsMTEvMQAvcGl5ZzExLzEAL2JyYmcxMS8xAC9wYWlyZWQxMS8xAC9zZXQzMTEvMQAvcmRneTEwLzEAL3JkeWxidTEwLzEAL3JkYnUxMC8xAC9wdW9yMTAvMQAvcHJnbjEwLzEAL3JkeWxnbjEwLzEAL3NwZWN0cmFsMTAvMQAvcGl5ZzEwLzEAL2JyYmcxMC8xAC9wYWlyZWQxMC8xAC9zZXQzMTAvMQBsYXRpbi0xAElTT184ODU5LTEASVNPODg1OS0xAElTTy04ODU5LTEAaSA+PSAxAHEtPm4gPT0gMQBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0ucGFydGl0aW9uW2ldID09IDAgfHwgcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLnBhcnRpdGlvbltpXSA9PSAxAGJ6LnNpemUgJSAzID09IDEAZWRnZV9saXN0X3NpemUoJmN0eC0+VHJlZV9lZGdlKSA9PSBjdHgtPk5fbm9kZXMgLSAxAG5vZGVfc2V0X3NpemUoZy0+bl9pZCkgPT0gb3NpemUgKyAxAG4tPmNvdW50ICsgKCpubiktPmNvdW50ID09IE5PREVDQVJEICsgMQBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0uY291bnRbMF0gKyBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0uY291bnRbMV0gPT0gTk9ERUNBUkQgKyAxAGdyZXkwAGdyYXkwAGpzb24wACNmMGYwZjAAI2UwZTBlMAB4Yi0+dS5zLmxvY2F0ZWQgPiBBR1hCVUZfSU5MSU5FX1NJWkVfMABcMABUMABceEYwAFx4RTAAXHhEMABceEMwAFx4QjAAXHhBMABncmV5OTAAZ3JheTkwAFx4OTAAZ3JleTgwAGdyYXk4MABceDgwACM4MDgwODAAZ3JleTcwAGdyYXk3MABjY3dyb3QgPT0gMCB8fCBjY3dyb3QgPT0gOTAgfHwgY2N3cm90ID09IDE4MCB8fCBjY3dyb3QgPT0gMjcwAGN3cm90ID09IDAgfHwgY3dyb3QgPT0gOTAgfHwgY3dyb3QgPT0gMTgwIHx8IGN3cm90ID09IDI3MABncmV5NjAAZ3JheTYwAGdyZXk1MABncmF5NTAAZ3JleTQwAGdyYXk0MAByLndpZHRoKCk8MWU0MABncmV5MzAAZ3JheTMwACMzMDMwMzAAZ3JleTIwAGdyYXkyMAAyMDI1MDgwOC4yMzIwAGdyZXkxMABncmF5MTAAXHgxMAAjMTAxMDEwAC9wYWlyZWQxMi8xMAAvc2V0MzEyLzEwAC9yZGd5MTEvMTAAL3JkeWxidTExLzEwAC9yZGJ1MTEvMTAAL3B1b3IxMS8xMAAvcHJnbjExLzEwAC9yZHlsZ24xMS8xMAAvc3BlY3RyYWwxMS8xMAAvcGl5ZzExLzEwAC9icmJnMTEvMTAAL3BhaXJlZDExLzEwAC9zZXQzMTEvMTAAL3JkZ3kxMC8xMAAvcmR5bGJ1MTAvMTAAL3JkYnUxMC8xMAAvcHVvcjEwLzEwAC9wcmduMTAvMTAAL3JkeWxnbjEwLzEwAC9zcGVjdHJhbDEwLzEwAC9waXlnMTAvMTAAL2JyYmcxMC8xMAAvcGFpcmVkMTAvMTAAL3NldDMxMC8xMAAxMjAwAGdyZXkxMDAAZ3JheTEwMABJU08tSVItMTAwADEwMDAwACUhUFMtQWRvYmUtMy4wAG56ID4gMABsaXN0LT5jYXBhY2l0eSA+IDAAZGlzdCA+IDAAcGF0aGNvdW50ID4gMAB3Z3QgPiAwAG5zaXRlcyA+IDAAc2lkZXMgPiAwAHJ2ID09IDAgfHwgKE5EX29yZGVyKHJ2KS1ORF9vcmRlcih2KSkqZGlyID4gMABsZW4gPiAwAHF0MS0+biA+IDAgJiYgcXQyLT5uID4gMAB3aWR0aCA+IDAAbGlzdC0+c2l6ZSA+IDAAZGljdC0+c2l6ZSA+IDAAc3BsLT5zaXplID4gMABzZWxmLT5zaXplID4gMABiei5zaXplID4gMABib3VuZCA+IDAAZ3JhcGgtPndlaWdodHNbeF0gPiAwAGdyYXBoLT53ZWlnaHRzW25fZWRnZXNdID4gMABtID4gMCAmJiBuID4gMCAmJiBueiA+PSAwAHQgPj0gMABubm9kZXMgPj0gMABuX29icyA+PSAwAG4gPj0gMABuLT5sZXZlbCA+PSAwAHRvdGFsID49IDAAb3JpZ2luYWwgPj0gMABNYXhyYW5rID49IDAAUGFjayA+PSAwAGlpIDwgMTw8ZGltICYmIGlpID49IDAAd2lkdGggPj0gMABqZGlhZyA+PSAwAGlkaWFnID49IDAAZCA+PSAwAHJ0cC0+c3BsaXQuUGFydGl0aW9uc1swXS5jb3VudFswXSA+PSAwICYmIHJ0cC0+c3BsaXQuUGFydGl0aW9uc1swXS5jb3VudFsxXSA+PSAwAFYgPj0gMABhZ25ub2RlcyhncmFwaCkgPj0gMABhZ25ub2RlcyhnKSA+PSAwAEVEX3RyZWVfaW5kZXgoZSkgPj0gMABFRF9jb3VudChlKSA+PSAwAG9ianAxLT5zei54ID09IDAgJiYgb2JqcDEtPnN6LnkgPT0gMABjX2NudCA9PSAwAHJhbmtfcmVzdWx0ID09IDAAZ2V0dGltZW9mZGF5X3JlcyA9PSAwAGogPT0gMABORF9pbihyaWdodCkuc2l6ZSArIE5EX291dChyaWdodCkuc2l6ZSA9PSAwAGEuc2hhcGUgPT0gMCB8fCBiLnNoYXBlID09IDAAZHRzaXplKGRlc3QpID09IDAAZHRzaXplKGctPm5fc2VxKSA9PSAwAGR0c2l6ZShnLT5nX3NlcSkgPT0gMABkdHNpemUoZy0+ZV9zZXEpID09IDAAR0RfbWlucmFuayhnKSA9PSAwAGR0c2l6ZShnLT5nX2lkKSA9PSAwAGR0c2l6ZShnLT5lX2lkKSA9PSAwAGNvc3ggIT0gMCB8fCBzaW54ICE9IDAAbWVtY21wKCZzdHlsZSwgJihncmFwaHZpel9wb2x5Z29uX3N0eWxlX3QpezB9LCBzaXplb2Yoc3R5bGUpKSAhPSAwAHJlc3VsdCA9PSAoaW50KShzaXplIC0gMSkgfHwgcmVzdWx0IDwgMABtYXNrW2lpXSA8IDAATkRfaGVhcGluZGV4KHYpIDwgMABcLwBYMTEvAGd2UmVuZGVySm9icyAlczogJS4yZiBzZWNzLgAlLipzLgBzcGVjaWZpZWQgcm9vdCBub2RlICIlcyIgd2FzIG5vdCBmb3VuZC4AR3JhcGggJXMgaGFzIGFycmF5IHBhY2tpbmcgd2l0aCB1c2VyIHZhbHVlcyBidXQgbm8gInNvcnR2IiBhdHRyaWJ1dGVzIGFyZSBkZWZpbmVkLgAxLgAtMC4AJSFQUy1BZG9iZS0AJVBERi0APCEtLQAgLAArACoAc3RyZXEoYXB0ci0+dS5uYW1lLEtleSkAIWlzX2V4YWN0bHlfZXF1YWwoUi54LCBRLngpIHx8ICFpc19leGFjdGx5X2VxdWFsKFIueSwgUS55KQBORF9vcmRlcih2KSA8IE5EX29yZGVyKHcpAHUgPT0gVUZfZmluZCh1KQAhcG9pbnRzX2lzX2VtcHR5KHBsaXN0KQAhb2JqbGlzdF9pc19lbXB0eShsaXN0KQAhc2ZvbnRfaXNfZW1wdHkobGlzdCkAIXJvd3NfaXNfZW1wdHkobGlzdCkAIXRzdHNfaXNfZW1wdHkobGlzdCkAIXBvaW50c19pc19lbXB0eShsaXN0KQAhY29sb3JzZWdzX2lzX2VtcHR5KGxpc3QpACFkZnNfc3RhY2tfaXNfZW1wdHkobGlzdCkAIXBic19zaXplX2lzX2VtcHR5KGxpc3QpAG9iamxpc3RfaXNfY29udGlndW91cyhsaXN0KQBkZWdsaXN0X2lzX2NvbnRpZ3VvdXMobGlzdCkAbm9kZWxpc3RfaXNfY29udGlndW91cyhsaXN0KQBjbGlzdF9pc19jb250aWd1b3VzKGxpc3QpAG5vZGVfbGlzdF9pc19jb250aWd1b3VzKGxpc3QpAGVkZ2Vfc2V0X2lzX2NvbnRpZ3VvdXMobGlzdCkAcG9pbnRzX2lzX2NvbnRpZ3VvdXMobGlzdCkAc3Ryc19pc19jb250aWd1b3VzKGxpc3QpAEFncmFwaHNfaXNfY29udGlndW91cyhsaXN0KQBib3hlc19pc19jb250aWd1b3VzKGxpc3QpAGxheWVyX25hbWVzX2lzX2NvbnRpZ3VvdXMobGlzdCkAc25vZGVzX2lzX2NvbnRpZ3VvdXMobGlzdCkAdmFyYXJyX2lzX2NvbnRpZ3VvdXMobGlzdCkAYmV6aWVyX3BhdGhfaXNfY29udGlndW91cyhsaXN0KQBwYnNfc2l6ZV9pc19jb250aWd1b3VzKGxpc3QpAG9uZSA8PSBub2RlbGlzdF9zaXplKGxpc3QpAG5wIDwgbm9kZWxpc3Rfc2l6ZShsaXN0KQBzdGQ6OmlzX2hlYXAoaGVhcC5iZWdpbigpLCBoZWFwLmVuZCgpLCBndCkAIShxLT5xdHMpACFpbnRzX2lzX2VtcHR5KCZsZWF2ZXMpAG9uX2hlYXAocikAbm9kZV9zZXRfc2l6ZShnLT5uX2lkKSA9PSAoc2l6ZV90KWR0c2l6ZShnLT5uX3NlcSkATkRfcmFuayhmcm9tKSA8IE5EX3JhbmsodG8pAG5vdCB3ZWxsLWZvcm1lZCAoaW52YWxpZCB0b2tlbikAYWdzdWJyZXAoZyxuKQBuICE9IE5EX25leHQobikAZmluZF9mYXN0X25vZGUoZywgbikAKG51bGwpACghamNuKSAmJiAoIXZhbCkAIShxLT5sKQBzeW0tPmlkID49IDAgJiYgc3ltLT5pZCA8IHRvcGRpY3RzaXplKG9iaikAbW92ZSB0byAoJS4wZiwgJS4wZikAOyBzcGxpbmUgdG8gKCUuMGYsICUuMGYpADsgbGluZSB0byAoJS4wZiwgJS4wZikAU3BhcnNlTWF0cml4X2lzX3N5bW1ldHJpYyhBLCB0cnVlKQB2YWx1ZSAmJiBzdHJsZW4odmFsdWUpAFNwYXJzZU1hdHJpeF9pc19zeW1tZXRyaWMoQSwgZmFsc2UpACF1c2Vfc3RhZ2UgfHwgc2l6ZSA8PSBzaXplb2Yoc3RhZ2UpAEVEX2xhYmVsKGZlKQAhVFJFRV9FREdFKGUpACFjb25zdHJhaW5pbmdfZmxhdF9lZGdlKGcsIGUpAG5vZGVfc2V0X2lzX2VtcHR5KGctPm5faWQpAHJfJWQpAGxfJWQpAChsaWIpACFTcGFyc2VNYXRyaXhfaGFzX2RpYWdvbmFsKEEpACBzY2FubmluZyBhIEhUTUwgc3RyaW5nIChtaXNzaW5nICc+Jz8gYmFkIG5lc3Rpbmc/IGxvbmdlciB0aGFuICVkPykAIHNjYW5uaW5nIGEgcXVvdGVkIHN0cmluZyAobWlzc2luZyBlbmRxdW90ZT8gbG9uZ2VyIHRoYW4gJWQ/KQAgc2Nhbm5pbmcgYSAvKi4uLiovIGNvbW1lbnQgKG1pc3NpbmcgJyovPyBsb25nZXIgdGhhbiAlZD8pAGZhbGxiYWNrKDQpAG9uX2hlYXAocjApIHx8IG9uX2hlYXAocjEpAGFndGFpbChlKSA9PSBVRl9maW5kKGFndGFpbChlKSkAYWdoZWFkKGUpID09IFVGX2ZpbmQoYWdoZWFkKGUpKQBvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXlfZ2V0X25leHRfYnVmZmVyKCkAb3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X2NyZWF0ZV9idWZmZXIoKQBvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXllbnN1cmVfYnVmZmVyX3N0YWNrKCkAc3RyZXEobW9kZSwgInIiKSB8fCBzdHJlcShtb2RlLCAicmIiKSB8fCBzdHJlcShtb2RlLCAidyIpIHx8IHN0cmVxKG1vZGUsICJ3YiIpAHBuYW1lICE9IE5VTEwgJiYgIXN0cmVxKHBuYW1lLCAiIikAc2V0bGluZXdpZHRoKAApIHJvdGF0ZSglZCkgdHJhbnNsYXRlKAAgdHJhbnNmb3JtPSJzY2FsZSgATk9UQVRJT04oACAoACBuZWFyICclcycAJWxmLCVsZiwlbGYsJyVbXiddJwBpc2RpZ2l0KChpbnQpZG90cFsxXSkgJiYgaXNkaWdpdCgoaW50KWRvdHBbMl0pICYmIGRvdHBbM10gPT0gJ1wwJwAmACUAJAB1cmwoIwA8dGV4dFBhdGggeGxpbms6aHJlZj0iIwA8YXJlYSBzaGFwZT0icG9seSIAIGZpbGw9IiMlMDJ4JTAyeCUwMngiAChzZXEgJiBTRVFfTUFTSykgPT0gc2VxICYmICJzZXF1ZW5jZSBJRCBvdmVyZmxvdyIAZ3Zfc29ydF9jb21wYXIgPT0gTlVMTCAmJiBndl9zb3J0X2FyZyA9PSBOVUxMICYmICJ1bnN1cHBvcnRlZCByZWN1cnNpdmUgY2FsbCB0byBndl9zb3J0IgBndl9zb3J0X2NvbXBhciAhPSBOVUxMICYmICJubyBjb21wYXJhdG9yIHNldCBpbiBndl9zb3J0IgBvcC0+b3AudS5wb2x5Z29uLmNudCA8PSBJTlRfTUFYICYmICJwb2x5Z29uIGNvdW50IGV4Y2VlZHMgZ3ZyZW5kZXJfcG9seWdvbiBzdXBwb3J0IgAgdGV4dC1hbmNob3I9InN0YXJ0IgBwLnggIT0gYSAmJiAiY2Fubm90IGhhbmRsZSBlbGxpcHNlIHRhbmdlbnQgc2xvcGUgaW4gaG9yaXpvbnRhbCBleHRyZW1lIHBvaW50IgBmdWxsX2xlbmd0aF93aXRob3V0X3NoYWZ0ID4gMCAmJiAibm9uLXBvc2l0aXZlIGZ1bGwgbGVuZ3RoIHdpdGhvdXQgc2hhZnQiADxhcmVhIHNoYXBlPSJyZWN0IgBzaXplID4gMCAmJiAiYXR0ZW1wdCB0byBhbGxvY2F0ZSBhcnJheSBvZiAwLXNpemVkIGVsZW1lbnRzIgBpbmRleCA8IHNlbGYtPnNpemVfYml0cyAmJiAib3V0IG9mIGJvdW5kcyBhY2Nlc3MiAGluZGV4IDwgc2VsZi5zaXplX2JpdHMgJiYgIm91dCBvZiBib3VuZHMgYWNjZXNzIgAqczEgIT0gKnMyICYmICJkdXBsaWNhdGUgc2VwYXJhdG9yIGNoYXJhY3RlcnMiAEdEX21pbnJhbmsoc3ViZykgPD0gR0RfbWF4cmFuayhzdWJnKSAmJiAiY29ycnVwdGVkIHJhbmsgYm91bmRzIgBpbmRleCA8IGxpc3QtPnNpemUgJiYgImluZGV4IG91dCBvZiBib3VuZHMiAGluZGV4IDwgbm9kZWxpc3Rfc2l6ZShsaXN0KSAmJiAiaW5kZXggb3V0IG9mIGJvdW5kcyIAaW5kZXggPCBlZGdlX2xpc3Rfc2l6ZShsaXN0KSAmJiAiaW5kZXggb3V0IG9mIGJvdW5kcyIAaW5kZXggPCB0cmFwc19zaXplKGxpc3QpICYmICJpbmRleCBvdXQgb2YgYm91bmRzIgBpbmRleCA8IG5vZGVzX3NpemUobGlzdCkgJiYgImluZGV4IG91dCBvZiBib3VuZHMiACh1aW50cHRyX3QpcyAlIDIgPT0gMCAmJiAiaGVhcCBwb2ludGVyIHdpdGggbG93IGJpdCBzZXQgd2lsbCBjb2xsaWRlIHdpdGggYW5vbnltb3VzIElEcyIAICgrJTZsZCBieXRlcyAlc3wldSwgeG1scGFyc2UuYzolZCkgJSpzIgAgZm9udC1mYW1pbHk9IiVzIgAgZm9udC13ZWlnaHQ9IiVzIgAgZmlsbD0iJXMiACBmb250LXN0cmV0Y2g9IiVzIgAgZm9udC1zdHlsZT0iJXMiAGJhZCBlZGdlIGxlbiAiJXMiACBiYXNlbGluZS1zaGlmdD0ic3VwZXIiAGFneGJsZW4oeGIpIDw9IHNpemVvZih4Yi0+dS5zdG9yZSkgJiYgImFneGJ1ZiBjb3JydXB0aW9uIgBjZWxsLnJvdyA8IHRhYmxlLT5yb3dfY291bnQgJiYgIm91dCBvZiByYW5nZSBjZWxsIgBjZWxsLmNvbCA8IHRhYmxlLT5jb2x1bW5fY291bnQgJiYgIm91dCBvZiByYW5nZSBjZWxsIgAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIAZnVsbF9sZW5ndGggPiAwICYmICJub24tcG9zaXRpdmUgZnVsbCBsZW5ndGgiAGZ1bGxfYmFzZV93aWR0aCA+IDAgJiYgIm5vbi1wb3NpdGl2ZSBmdWxsIGJhc2Ugd2lkdGgiAG5vbWluYWxfYmFzZV93aWR0aCA+IDAgJiYgIm5vbi1wb3NpdGl2ZSBub21pbmFsIGJhc2Ugd2lkdGgiACIgd2lkdGg9IiVncHgiIGhlaWdodD0iJWdweCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4gbWVldCIgeD0iJWciIHk9IiVnIgAiIHdpZHRoPSIlZ3B4IiBoZWlnaHQ9IiVncHgiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiIHg9IiVnIiB5PSIlZyIAIGZvbnQtc2l6ZT0iJS4yZiIAIGZpbGwtb3BhY2l0eT0iJWYiADx0ZXh0IHhtbDpzcGFjZT0icHJlc2VydmUiAGlzZmluaXRlKG0pICYmICJlbGxpcHNlIHRhbmdlbnQgc2xvcGUgaXMgaW5maW5pdGUiACh4Yi0+dS5zLmxvY2F0ZWQgPT0gQUdYQlVGX09OX0hFQVAgfHwgeGItPnUucy5sb2NhdGVkIDw9IHNpemVvZih4Yi0+dS5zdG9yZSkpICYmICJjb3JydXB0ZWQgYWd4YnVmIHR5cGUiACB0ZXh0LWFuY2hvcj0ibWlkZGxlIgA8YXJlYSBzaGFwZT0iY2lyY2xlIgBjZWxsLT5yb3cgKyBjZWxsLT5yb3dzcGFuIDw9IHRhYmxlLT5yb3dfY291bnQgJiYgImNlbGwgc3BhbnMgaGlnaGVyIHRoYW4gY29udGFpbmluZyB0YWJsZSIAY2VsbC5yb3cgKyBjZWxsLnJvd3NwYW4gPD0gdGFibGUtPnJvd19jb3VudCAmJiAiY2VsbCBzcGFucyBoaWdoZXIgdGhhbiBjb250YWluaW5nIHRhYmxlIgBjZWxsLT5jb2wgKyBjZWxsLT5jb2xzcGFuIDw9IHRhYmxlLT5jb2x1bW5fY291bnQgJiYgImNlbGwgc3BhbnMgd2lkZXIgdGhhbiBjb250YWluaW5nIHRhYmxlIgBjZWxsLmNvbCArIGNlbGwuY29sc3BhbiA8PSB0YWJsZS0+Y29sdW1uX2NvdW50ICYmICJjZWxsIHNwYW5zIHdpZGVyIHRoYW4gY29udGFpbmluZyB0YWJsZSIAb2xkX25tZW1iIDwgU0laRV9NQVggLyBzaXplICYmICJjbGFpbWVkIHByZXZpb3VzIGV4dGVudCBpcyB0b28gbGFyZ2UiAHRoZXRhID49IDAgJiYgdGhldGEgPD0gTV9QSSAmJiAidGhldGEgb3V0IG9mIHJhbmdlIgB0YWJsZS0+aGVpZ2h0cyA9PSBOVUxMICYmICJ0YWJsZSBoZWlnaHRzIGNvbXB1dGVkIHR3aWNlIgB0YWJsZS0+d2lkdGhzID09IE5VTEwgJiYgInRhYmxlIHdpZHRocyBjb21wdXRlZCB0d2ljZSIAIHRleHQtYW5jaG9yPSJlbmQiACBmb250LXdlaWdodD0iYm9sZCIAIGZvbnQtc3R5bGU9Iml0YWxpYyIAIGJhc2VsaW5lLXNoaWZ0PSJzdWIiAFwiAGxsZW4gPD0gSU5UX01BWCAmJiAiWE1MIHRva2VuIHRvbyBsb25nIGZvciBleHBhdCBBUEkiACIgcnk9IgBfcCIgc3RhcnRPZmZzZXQ9IjUwJSI+PHRzcGFuIHg9IjAiIGR5PSIAIiBjeT0iACIgeT0iACIgcng9IgAgY3g9IgAgeD0iACB0YXJnZXQ9IgAgcG9pbnRzPSIAIGNvb3Jkcz0iACB0ZXh0LWRlY29yYXRpb249IgAgZmlsbD0iACIgc3Ryb2tlLXdpZHRoPSIAPGltYWdlIHhsaW5rOmhyZWY9IgA8P3htbC1zdHlsZXNoZWV0IGhyZWY9IgAiIG5hbWU9IgAgeGxpbms6dGl0bGU9IgAgdGl0bGU9IgAiIHN0cm9rZT0iADxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9IgA8ZGVmcz4KPHJhZGlh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CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2NhbGUgPDEuMDAsIDEuMDAsIDEuNTA+ICogMi41MAogICAgICAgICAgICB0cmFuc2xhdGUgPDAuMDAsIDAuMDAsIDAuMDA+CiAgICAgICAgfQogICAgICAgIGZpbmlzaCB7IGFtYmllbnQgMSBkaWZmdXNlIDAgfQogICAgfQogICAgc2NhbGUgMTAwMDAKfQovL21pc3QKZm9nIHsgZm9nX3R5cGUgMgogICAgZGlzdGFuY2UgNTAKICAgIGNvbG9yIHJnYiA8MS4wMCwgMS4wMCwgMS4wMD4gKiAwLjc1CiAgICBmb2dfb2Zmc2V0IDAuMTAKICAgIGZvZ19hbHQgMS41MAogICAgdHVyYnVsZW5jZSAxLjc1Cn0KLy9nbmQKcGxhbmUgeyA8MC4wMCwgMS4wMCwgMC4wMD4sIDAKICAgIHRleHR1cmUgewogICAgICAgIHBpZ21lbnR7IGNvbG9yIHJnYiA8MC4yNSwgMC40NSwgMC4wMD4gfQogICAgICAgIG5vcm1hbCB7IGJ1bXBzIDAuNzUgc2NhbGUgMC4wMSB9CiAgICAgICAgZmluaXNoIHsgcGhvbmcgMC4xMCB9CiAgICB9Cn0KAGNhbWVyYSB7IGxvY2F0aW9uIDwlLjNmICwgJS4zZiAsIC01MDAuMDAwPgogICAgICAgICBsb29rX2F0ICA8JS4zZiAsICUuM2YgLCAwLjAwMD4KICAgICAgICAgcmlnaHQgeCAqIGltYWdlX3dpZHRoIC8gaW1hZ2VfaGVpZ2h0CiAgICAgICAgIGFuZ2xlICUuM2YKfQoAICAgIG1hdGVyaWFsIE1hdGVyaWFsIHsKAFNoYXBlIHsKACAgYXBwZWFyYW5jZSBBcHBlYXJhbmNlIHsKAC91c2VyX3NoYXBlXyVkIHsKAGdyYXBoIEcgewoAYXJyb3doZWFkID0gNyAlcyBub3QgdXNlZCBieSBncmFwaHZpegoAYm94cmFkID0gMCAlcyBubyByb3VuZGVkIGNvcm5lcnMgaW4gZ3JhcGh2aXoKAG91dCBvZiBtZW1vcnkKACVzOiBjb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5CgBHcmFwaHZpeiBidWlsdCB3aXRob3V0IGFueSB0cmlhbmd1bGF0aW9uIGxpYnJhcnkKAHJlbW92ZV9vdmVybGFwOiBHcmFwaHZpeiBub3QgYnVpbHQgd2l0aCB0cmlhbmd1bGF0aW9uIGxpYnJhcnkKACVzIGZpbGwgaGFzIG5vIG1lYW5pbmcgaW4gRFdCIDIsIGdwaWMgY2FuIHVzZSBmaWxsIG9yIGZpbGxlZCwgMTB0aCBFZGl0aW9uIHVzZXMgZmlsbCBvbmx5CgBib3hyYWQ9Mi4wICVzIHdpbGwgYmUgcmVzZXQgdG8gMC4wIGJ5IGdwaWMgb25seQoAJWQgJWQgIyUwMnglMDJ4JTAyeAoASGVhcCBvdmVyZmxvdwoAdGV4dCB7CiAgICB0dGYgIiVzIiwKICAgICIlcyIsICUuM2YsICUuM2YKICAgICAgICBub19zaGFkb3cKACVkICVkICVkICUuMGYgJWQgJWQgJWQgJWQgJWQgJS4xZiAlZCAlZCAlZCAlZCAlZCAlenUKAHRvdGFsIGFkZGVkIHNvIGZhciA9ICV6dQoAcm9vdCA9ICVzIG1heCBzdGVwcyB0byByb290ID0gJWxsdQoALnBzICUuMGYqXG4oU0Z1LyUuMGZ1CgAgIG1hcmdpbiAldQoATnVtYmVyIG9mIGl0ZXJhdGlvbnMgPSAldQoAb3ZlcmxhcCBbJXVdIDogJXUKACAlcyBhbGlnbmVkdGV4dAoAbGF5ZXJzIG5vdCBzdXBwb3J0ZWQgaW4gJXMgb3V0cHV0CgBhZGRfdHJlZV9lZGdlOiBlbXB0eSBvdXRlZGdlIGxpc3QKAGFkZF90cmVlX2VkZ2U6IGVtcHR5IGluZWRnZSBsaXN0CgBObyBsaWJ6IHN1cHBvcnQKACVzIC5QUyB3L28gYXJncyBjYXVzZXMgR05VIHBpYyB0byBzY2FsZSBkcmF3aW5nIHRvIGZpdCA4LjV4MTEgcGFwZXI7IERXQiBkb2VzIG5vdAoAJXMgR05VIHBpYyBzdXBwb3J0cyBhIGxpbmV0aGljayB2YXJpYWJsZSB0byBzZXQgbGluZSB0aGlja25lc3M7IERXQiBhbmQgMTB0aCBFZC4gZG8gbm90CgAlcyBHTlUgcGljIHN1cHBvcnRzIGEgYm94cmFkIHZhcmlhYmxlIHRvIGRyYXcgYm94ZXMgd2l0aCByb3VuZGVkIGNvcm5lcnM7IERXQiBhbmQgMTB0aCBFZC4gZG8gbm90CgAgLyVzIHNldF9mb250CgAlcyUuKnMgaXMgbm90IGEgdHJvZmYgZm9udAoAY2VsbCBzaXplIHRvbyBzbWFsbCBmb3IgY29udGVudAoAdGFibGUgc2l6ZSB0b28gc21hbGwgZm9yIGNvbnRlbnQKACUlRW5kRG9jdW1lbnQKAFVuY2xvc2VkIGNvbW1lbnQKAExhYmVsIGNsb3NlZCBiZWZvcmUgZW5kIG9mIEhUTUwgZWxlbWVudAoAUG9ydHJhaXQKAGZpeGVkIGNlbGwgc2l6ZSB3aXRoIHVuc3BlY2lmaWVkIHdpZHRoIG9yIGhlaWdodAoAZml4ZWQgdGFibGUgc2l6ZSB3aXRoIHVuc3BlY2lmaWVkIHdpZHRoIG9yIGhlaWdodAoAcG9zIGF0dHJpYnV0ZSBmb3IgZWRnZSAoJXMsJXMpIGRvZXNuJ3QgaGF2ZSAzbisxIHBvaW50cwoAICBnZW5lcmF0ZWQgJWQgY29uc3RyYWludHMKAHNwbGluZXMgYW5kIGNsdXN0ZXIgZWRnZXMgbm90IHN1cHBvcnRlZCAtIHVzaW5nIGxpbmUgc2VnbWVudHMKAG9iamVjdHMKAFdhcm5pbmc6IG5vZGUgJXMsIHBvc2l0aW9uICVzLCBleHBlY3RlZCB0d28gZmxvYXRzCgBmb250IG5hbWUgJXMgY29udGFpbnMgY2hhcmFjdGVycyB0aGF0IG1heSBub3QgYmUgYWNjZXB0ZWQgYnkgc29tZSBQUyB2aWV3ZXJzCgBmb250IG5hbWUgJXMgaXMgbG9uZ2VyIHRoYW4gMjkgY2hhcmFjdGVycyB3aGljaCBtYXkgYmUgcmVqZWN0ZWQgYnkgc29tZSBQUyB2aWV3ZXJzCgBjYW5ub3QgYWxsb2NhdGUgcHMKAHNjYWxlPTEuMCAlcyByZXF1aXJlZCBmb3IgY29tcGFyaXNvbnMKAFNldHRpbmcgaW5pdGlhbCBwb3NpdGlvbnMKACVzIERXQiAyIGNvbXBhdGliaWxpdHkgZGVmaW5pdGlvbnMKAGFycmF5IHBhY2tpbmc6ICVzICV6dSByb3dzICV6dSBjb2x1bW5zCgBzeW50YXggYW1iaWd1aXR5IC0gYmFkbHkgZGVsaW1pdGVkIG51bWJlciAnJXMnIGluIGxpbmUgJWQgb2YgJXMgc3BsaXRzIGludG8gdHdvIHRva2VucwoAZWRnZSBsYWJlbHMgd2l0aCBzcGxpbmVzPWN1cnZlZCBub3Qgc3VwcG9ydGVkIGluIGRvdCAtIHVzZSB4bGFiZWxzCgBmbGF0IGVkZ2UgYmV0d2VlbiBhZGphY2VudCBub2RlcyBvbmUgb2Ygd2hpY2ggaGFzIGEgcmVjb3JkIHNoYXBlIC0gcmVwbGFjZSByZWNvcmRzIHdpdGggSFRNTC1saWtlIGxhYmVscwoAb3V0IG9mIG1lbW9yeSB3aGVuIHRyeWluZyB0byBhbGxvY2F0ZSAlenUgYnl0ZXMKAGludGVnZXIgb3ZlcmZsb3cgd2hlbiB0cnlpbmcgdG8gYWxsb2NhdGUgJXp1ICogJXp1IGJ5dGVzCgB1cGRhdGU6IG1pc21hdGNoZWQgbGNhIGluIHRyZWV1cGRhdGVzCgBncmFwaCAlcywgY29vcmQgJXMsIGV4cGVjdGVkIGZvdXIgZG91YmxlcwoAbm9kZSAlcywgcG9zaXRpb24gJXMsIGV4cGVjdGVkIHR3byBkb3VibGVzCgBGb3VuZCAlZCBEaUctQ29MYSBib3VuZGFyaWVzCgBJbmNoZXMKACglNHp1KSAlN3p1IG5vZGVzICU3enUgZWRnZXMKAGNvbXBvdW5kRWRnZXM6IGNvdWxkIG5vdCBjb25zdHJ1Y3Qgb2JzdGFjbGVzIC0gZmFsbGluZyBiYWNrIHRvIHN0cmFpZ2h0IGxpbmUgZWRnZXMKAHRoZSBib3VuZGluZyBib3hlcyBvZiBzb21lIG5vZGVzIHRvdWNoIC0gZmFsbGluZyBiYWNrIHRvIHN0cmFpZ2h0IGxpbmUgZWRnZXMKAGNvbXBvdW5kRWRnZXM6IG5vZGVzIHRvdWNoIC0gZmFsbGluZyBiYWNrIHRvIHN0cmFpZ2h0IGxpbmUgZWRnZXMKAHNvbWUgbm9kZXMgd2l0aCBtYXJnaW4gKCUuMDJmLCUuMDJmKSB0b3VjaCAtIGZhbGxpbmcgYmFjayB0byBzdHJhaWdodCBsaW5lIGVkZ2VzCgBtZXJnZTI6IGdyYXBoICVzLCByYW5rICVkIGhhcyBvbmx5ICVkIDwgJWQgbm9kZXMKAFNjYW5uaW5nIGdyYXBoICVzLCAlZCBub2RlcwoAV2FybmluZzogbm8gaGFyZC1jb2RlZCBtZXRyaWNzIGZvciAnJXMnLiAgRmFsbGluZyBiYWNrIHRvICdUaW1lcycgbWV0cmljcwoAaW4gZWRnZSAlcyVzJXMKAFVzaW5nICVzOiAlczolcwoARm9ybWF0OiAiJXMiIG5vdCByZWNvZ25pemVkLiBVc2Ugb25lIG9mOiVzCgBMYXlvdXQgdHlwZTogIiVzIiBub3QgcmVjb2duaXplZC4gVXNlIG9uZSBvZjolcwoAbGF5b3V0ICVzCgAuZnQgJXMKAGJhZCBsYWJlbCBmb3JtYXQgJXMKAGluIHJvdXRlc3BsaW5lcywgZWRnZSBpcyBhIGxvb3AgYXQgJXMKACAgICAgICAlN2Qgbm9kZXMgJTdkIGVkZ2VzICU3enUgY29tcG9uZW50cyAlcwoAaW4gbGFiZWwgb2YgZWRnZSAlcyAlcyAlcwoAICBFZGdlICVzICVzICVzCgBvcnRobyAlcyAlcwoAcG9seWxpbmUgJXMgJXMKAHNwbGluZSAlcyAlcwoAcmVjdGFuZ2xlICglLjBmLCUuMGYpICglLjBmLCUuMGYpICVzICVzCgBpbiBjbHVzdGVyICVzCgAlcyB3YXMgYWxyZWFkeSBpbiBhIHJhbmtzZXQsIGRlbGV0ZWQgZnJvbSBjbHVzdGVyICVzCgAlcyAtPiAlczogdGFpbCBub3QgaW5zaWRlIHRhaWwgY2x1c3RlciAlcwoAJXMgLT4gJXM6IGhlYWQgaXMgaW5zaWRlIHRhaWwgY2x1c3RlciAlcwoAaGVhZCBjbHVzdGVyICVzIGluc2lkZSB0YWlsIGNsdXN0ZXIgJXMKAGhlYWQgbm9kZSAlcyBpbnNpZGUgdGFpbCBjbHVzdGVyICVzCgAlcyAtPiAlczogaGVhZCBub3QgaW5zaWRlIGhlYWQgY2x1c3RlciAlcwoAJXMgLT4gJXM6IHRhaWwgaXMgaW5zaWRlIGhlYWQgY2x1c3RlciAlcwoAdGFpbCBjbHVzdGVyICVzIGluc2lkZSBoZWFkIGNsdXN0ZXIgJXMKAHRhaWwgbm9kZSAlcyBpbnNpZGUgaGVhZCBjbHVzdGVyICVzCgBVbmhhbmRsZWQgYWRqdXN0IG9wdGlvbiAlcwoAcmVwb3NpdGlvbiAlcwoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCB4bGFiZWwgJXMKAG5vIHBvc2l0aW9uIGZvciBlZGdlIHdpdGggdGFpbCBsYWJlbCAlcwoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCBsYWJlbCAlcwoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCBoZWFkIGxhYmVsICVzCgAvLyoqKiBiZWdpbl9ncmFwaCAlcwoATWF4LiBpdGVyYXRpb25zICglZCkgcmVhY2hlZCBvbiBncmFwaCAlcwoAQ291bGQgbm90IHBhcnNlICJfYmFja2dyb3VuZCIgYXR0cmlidXRlIGluIGdyYXBoICVzCgBpbiBsYWJlbCBvZiBncmFwaCAlcwoAQ3JlYXRpbmcgZWRnZXMgdXNpbmcgJXMKAEFkanVzdGluZyAlcyB1c2luZyAlcwoAJXMgd2hpbGUgb3BlbmluZyAlcwoAZGVyaXZlIGdyYXBoIF9kZ18lZCBvZiAlcwoAIF0gICV6dSB0cnVlICVzCgBdICAlZCB0cnVlICVzCgAgXSAgJXp1IGZhbHNlICVzCgBdICAlZCBmYWxzZSAlcwoAbWFrZVBvbHk6IHVua25vd24gc2hhcGUgdHlwZSAlcwoAbWFrZUFkZFBvbHk6IHVua25vd24gc2hhcGUgdHlwZSAlcwoAdXNpbmcgJXMgZm9yIHVua25vd24gc2hhcGUgJXMKACAgb2N0cmVlIHNjaGVtZSAlcwoAY2FuJ3Qgb3BlbiBsaWJyYXJ5IGZpbGUgJXMKAGNhbid0IGZpbmQgbGlicmFyeSBmaWxlICVzCgBCb3VuZGluZ0JveCBub3QgZm91bmQgaW4gZXBzZiBmaWxlICVzCgBjb3VsZG4ndCBvcGVuIGVwc2YgZmlsZSAlcwoAY291bGRuJ3QgcmVhZCBmcm9tIGVwc2YgZmlsZSAlcwoAaW4gbm9kZSAlcwoAc2hhcGVmaWxlIG5vdCBzZXQgb3Igbm90IGZvdW5kIGZvciBlcHNmIG5vZGUgJXMKAGluIGxhYmVsIG9mIG5vZGUgJXMKAGVuZCAlcwoAcmFua2luZzogZmFpbHVyZSB0byBjcmVhdGUgc3Ryb25nIGNvbnN0cmFpbnQgZWRnZSBiZXR3ZWVuIG5vZGVzICVzIGFuZCAlcwoAb29wcywgaW50ZXJuYWwgZXJyb3I6IHVuaGFuZGxlZCBjb2xvciB0eXBlPSVkICVzCgAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlLjFmICVkICVkICVkICVkICVkICVkCiAlZCAlcwoALy8qKiogdGV4dHNwYW46ICVzLCBmb250c2l6ZSA9ICUuM2YsIGZvbnRuYW1lID0gJXMKAHRyaWVzID0gJWQsIG1vZGUgPSAlcwoALy8qKiogY29tbWVudDogJXMKAGZvbnRuYW1lOiAiJXMiIHJlc29sdmVkIHRvOiAlcwoAJSUlJVBhZ2VPcmllbnRhdGlvbjogJXMKAGRlbGF1bmF5X3RyaWFuZ3VsYXRpb246ICVzCgBkZWxhdW5heV90cmk6ICVzCgBndnByaW50ZjogJXMKAG5lc3Rpbmcgbm90IGFsbG93ZWQgaW4gc3R5bGU6ICVzCgB1bm1hdGNoZWQgJyknIGluIHN0eWxlOiAlcwoAdW5tYXRjaGVkICcoJyBpbiBzdHlsZTogJXMKACUlJSVUaXRsZTogJXMKACVzIFRpdGxlOiAlcwoAIyBUaXRsZTogJXMKAC8vKioqIGJlZ2luX25vZGU6ICVzCgByZWFsbG9jIGZhaWxlZDogJXMKAGxpYi9wYXRocGxhbi8lczolZDogJXMKAGdyaWQoJWQsJWQpOiAlcwoAQ291bGQgbm90IG9wZW4gIiVzIiBmb3Igd3JpdGluZyA6ICVzCgBzdGFydCBwb3J0OiAoJS41ZywgJS41ZyksIHRhbmdlbnQgYW5nbGU6ICUuNWcsICVzCgBlbmQgcG9ydDogKCUuNWcsICUuNWcpLCB0YW5nZW50IGFuZ2xlOiAlLjVnLCAlcwoAIFslenVdICVwIHNldCAlZCAoJS4wMmYsJS4wMmYpICglLjAyZiwlLjAyZikgJXMKACUlICVzCgAjICVzCgAgIG1vZGUgICAlcwoAY29uanVnYXRlX2dyYWRpZW50OiB1bmV4cGVjdGVkIGxlbmd0aCAwIHZlY3RvcgoAJXMgdG8gY2hhbmdlIGRyYXdpbmcgc2l6ZSwgbXVsdGlwbHkgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb24gdGhlIC5QUyBsaW5lIGFib3ZlIGFuZCB0aGUgbnVtYmVyIG9uIHRoZSB0d28gbGluZXMgYmVsb3cgKHJvdW5kZWQgdG8gdGhlIG5lYXJlc3QgaW50ZWdlcikgYnkgYSBzY2FsZSBmYWN0b3IKAGFkZF9zZWdtZW50OiBlcnJvcgoAJS41ZyAlLjVnICUuNWcgJXNjb2xvcgoAMCAwIDAgZWRnZWNvbG9yCgAwLjggMC44IDAuOCBzZXRyZ2Jjb2xvcgoAMCAwIDEgc2V0cmdiY29sb3IKADEgMCAwIHNldHJnYmNvbG9yCgAwIDAgMCBzZXRyZ2Jjb2xvcgoAJWQgJWQgc2V0bGF5ZXIKAC8vKioqIGVuZF9sYXllcgoAVVRGLTggaW5wdXQgdXNlcyBub24tTGF0aW4xIGNoYXJhY3RlcnMgd2hpY2ggY2Fubm90IGJlIGhhbmRsZWQgYnkgdGhpcyBQb3N0U2NyaXB0IGRyaXZlcgoATGV0dGVyCgAvLyoqKiBiZWdpbl9jbHVzdGVyCgAvLyoqKiBlbmRfY2x1c3RlcgoAcmVtb3ZpbmcgZW1wdHkgY2x1c3RlcgoAQ2VudGVyCgBXYXJuaW5nOiBubyB2YWx1ZSBmb3Igd2lkdGggb2Ygbm9uLUFTQ0lJIGNoYXJhY3RlciAldS4gRmFsbGluZyBiYWNrIHRvIHdpZHRoIG9mIHNwYWNlIGNoYXJhY3RlcgoAYmFzZSByZWZlcmVyCgAlJVBhZ2VUcmFpbGVyCgAlJVRyYWlsZXIKAC8vKioqIGJlemllcgoAIiVzIiB3YXMgbm90IGZvdW5kIGFzIGEgZmlsZSBvciBhcyBhIHNoYXBlIGxpYnJhcnkgbWVtYmVyCgBzdG9wCgAgY3VydmV0bwoAbmV3cGF0aCAlLjBmICUuMGYgbW92ZXRvCgAlLjBmICUuMGYgbGluZXRvCgAgbGF5b3V0PW5lYXRvCgBub2RlICVzIGluIGdyYXBoICVzIGhhcyBubyBwb3NpdGlvbgoAJXMgbWF4cHNodCBhbmQgbWF4cHN3aWQgaGF2ZSBubyBtZWFuaW5nIGluIERXQiAyLjAsIHNldCBwYWdlIGJvdW5kYXJpZXMgaW4gZ3BpYyBhbmQgaW4gMTB0aCBFZGl0aW9uCgAlcyBhcnJvd2hlYWQgaGFzIG5vIG1lYW5pbmcgaW4gRFdCIDIsIGFycm93aGVhZCA9IDcgbWFrZXMgZmlsbGVkIGFycm93aGVhZHMgaW4gZ3BpYyBhbmQgaW4gMTB0aCBFZGl0aW9uCgAlcyBhcnJvd2hlYWQgaXMgdW5kZWZpbmVkIGluIERXQiAyLCBpbml0aWFsbHkgMSBpbiBncGljLCAyIGluIDEwdGggRWRpdGlvbgoAbWFqb3JpemF0aW9uCgAvLyoqKiBwb2x5Z29uCgBvdmVyZmxvdyB3aGVuIGNvbXB1dGluZyBlZGdlIHdlaWdodCBzdW0KAHNmZHAgb25seSBzdXBwb3J0cyBzdGFydD1yYW5kb20KAG5vZGUgcG9zaXRpb25zIGFyZSBpZ25vcmVkIHVubGVzcyBzdGFydD1yYW5kb20KAGNsb3NlcGF0aCBmaWxsCgAgZWxsaXBzZV9wYXRoIGZpbGwKACAgJS4wZiAlLjBmIGNlbGwKACVmICVmICVmICVmIGNlbGwKAGdyYXBoICVzIGlzIGRpc2Nvbm5lY3RlZC4gSGVuY2UsIHRoZSBjaXJjdWl0IG1vZGVsCgBncmFwaCBpcyBkaXNjb25uZWN0ZWQuIEhlbmNlLCB0aGUgY2lyY3VpdCBtb2RlbAoAZWRnZXMgaW4gZ3JhcGggJXMgaGF2ZSBubyBsZW4gYXR0cmlidXRlLiBIZW5jZSwgdGhlIG1kcyBtb2RlbAoAY2lyY3VpdCBtb2RlbCBub3QgeWV0IHN1cHBvcnRlZCBpbiBHbW9kZT1zZ2QsIHJldmVydGluZyB0byBzaG9ydHBhdGggbW9kZWwKAG1kcyBtb2RlbCBub3QgeWV0IHN1cHBvcnRlZCBpbiBHbW9kZT1zZ2QsIHJldmVydGluZyB0byBzaG9ydHBhdGggbW9kZWwKAG5vZGUgJyVzJywgZ3JhcGggJyVzJyBzaXplIHRvbyBzbWFsbCBmb3IgbGFiZWwKACVzIERXQiAyIGRvZXNuJ3QgdXNlIGZpbGwgYW5kIGRvZXNuJ3QgZGVmaW5lIGZpbGx2YWwKAFsge0NhdGFsb2d9IDw8IC9VUkkgPDwgL0Jhc2UgJXMgPj4gPj4KL1BVVCBwZGZtYXJrCgBbIC9Dcm9wQm94IFslZCAlZCAlZCAlZF0gL1BBR0VTIHBkZm1hcmsKACAgL0JvcmRlciBbIDAgMCAwIF0KICAvQWN0aW9uIDw8IC9TdWJ0eXBlIC9VUkkgL1VSSSAlcyA+PgogIC9TdWJ0eXBlIC9MaW5rCi9BTk4gcGRmbWFyawoAdHJvdWJsZSBpbiBpbml0X3JhbmsKAGxpbmV0aGljayA9IDA7IG9sZGxpbmV0aGljayA9IGxpbmV0aGljawoAIHNldGxpbmV3aWR0aAoAZ3NhdmUKJWQgJWQgJWQgJWQgYm94cHJpbSBjbGlwIG5ld3BhdGgKAGdzYXZlICVnICVnIHRyYW5zbGF0ZSBuZXdwYXRoCgAvLyoqKiBlbmRfZ3JhcGgKAGxheW91dCBhdHRyaWJ1dGUgaXMgaW52YWxpZCBleGNlcHQgb24gdGhlIHJvb3QgZ3JhcGgKAGluIGNoZWNrcGF0aCwgYm94ZXMgJXp1IGFuZCAlenUgZG9uJ3QgdG91Y2gKAG1lcmdlX29uZXdheSBnbGl0Y2gKACVzIGRvbid0IGNoYW5nZSBhbnl0aGluZyBiZWxvdyB0aGlzIGxpbmUgaW4gdGhpcyBkcmF3aW5nCgBOb2RlIG5vdCBhZGphY2VudCB0byBjZWxsIC0tIEFib3J0aW5nCgBpbmNvbXBhcmFibGUgc2VnbWVudHMgISEgLS0gQWJvcnRpbmcKAEFsdGVybmF0aXZlbHksIGNvbnNpZGVyIHJ1bm5pbmcgbmVhdG8gdXNpbmcgLUdwYWNrPXRydWUgb3IgZGVjb21wb3NpbmcKAGxhYmVsX3NjaGVtZSA9ICVkID4gNCA6IGlnbm9yaW5nCgBndnJlbmRlcl9zZXRfc3R5bGU6IHVuc3VwcG9ydGVkIHN0eWxlICVzIC0gaWdub3JpbmcKAEFycm93IHR5cGUgIiVzIiB1bmtub3duIC0gaWdub3JpbmcKAGZkcCBkb2VzIG5vdCBzdXBwb3J0IHN0YXJ0PXNlbGYgLSBpZ25vcmluZwoAJXMgYXR0cmlidXRlIHZhbHVlIG11c3QgYmUgMSBvciAyIC0gaWdub3JpbmcKAE1vcmUgdGhhbiAyIGNvbG9ycyBzcGVjaWZpZWQgZm9yIGEgZ3JhZGllbnQgLSBpZ25vcmluZyByZW1haW5pbmcKAGFzIHJlcXVpcmVkIGJ5IHRoZSAtbiBmbGFnCgBiYlslc10gJS41ZyAlLjVnICUuNWcgJS41ZwoAL3BhdGhib3ggewogICAgL1kgZXhjaCAlLjVnIHN1YiBkZWYKICAgIC9YIGV4Y2ggJS41ZyBzdWIgZGVmCiAgICAveSBleGNoICUuNWcgc3ViIGRlZgogICAgL3ggZXhjaCAlLjVnIHN1YiBkZWYKICAgIG5ld3BhdGggeCB5IG1vdmV0bwogICAgWCB5IGxpbmV0bwogICAgWCBZIGxpbmV0bwogICAgeCBZIGxpbmV0bwogICAgY2xvc2VwYXRoIHN0cm9rZQogfSBkZWYKL2RiZ3N0YXJ0IHsgZ3NhdmUgJS41ZyAlLjVnIHRyYW5zbGF0ZSB9IGRlZgovYXJyb3dsZW5ndGggMTAgZGVmCi9hcnJvd3dpZHRoIGFycm93bGVuZ3RoIDIgZGl2IGRlZgovYXJyb3doZWFkIHsKICAgIGdzYXZlCiAgICByb3RhdGUKICAgIGN1cnJlbnRwb2ludAogICAgbmV3cGF0aAogICAgbW92ZXRvCiAgICBhcnJvd2xlbmd0aCBhcnJvd3dpZHRoIDIgZGl2IHJsaW5ldG8KICAgIDAgYXJyb3d3aWR0aCBuZWcgcmxpbmV0bwogICAgY2xvc2VwYXRoIGZpbGwKICAgIGdyZXN0b3JlCn0gYmluZCBkZWYKL21ha2VhcnJvdyB7CiAgICBjdXJyZW50cG9pbnQgZXhjaCBwb3Agc3ViIGV4Y2ggY3VycmVudHBvaW50IHBvcCBzdWIgYXRhbgogICAgYXJyb3doZWFkCn0gYmluZCBkZWYKL3BvaW50IHsgICAgbmV3cGF0aCAgICAyIDAgMzYwIGFyYyBmaWxsfSBkZWYvbWFrZXZlYyB7CiAgICAvWSBleGNoIGRlZgogICAgL1ggZXhjaCBkZWYKICAgIC95IGV4Y2ggZGVmCiAgICAveCBleGNoIGRlZgogICAgbmV3cGF0aCB4IHkgbW92ZXRvCiAgICBYIFkgbGluZXRvIHN0cm9rZQogICAgWCBZIG1vdmV0bwogICAgeCB5IG1ha2VhcnJvdwp9IGRlZgoAL3BhdGhib3ggewogICAgL1ggZXhjaCBuZWcgJS41ZyBzdWIgZGVmCiAgICAvWSBleGNoICUuNWcgc3ViIGRlZgogICAgL3ggZXhjaCBuZWcgJS41ZyBzdWIgZGVmCiAgICAveSBleGNoICUuNWcgc3ViIGRlZgogICAgbmV3cGF0aCB4IHkgbW92ZXRvCiAgICBYIHkgbGluZXRv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eSBhbGxvY2F0aW9uIGZhaWx1cmUKACVzOiB2c25wcmludGYgZmFpbHVyZQoAZW5kcGFnZQpzaG93cGFnZQpncmVzdG9yZQoAZW5kCnJlc3RvcmUKAGxheW91dCB3YXMgbm90IGRvbmUKAExheW91dCB3YXMgbm90IGRvbmUKAC8vKioqIHBvbHlsaW5lCgB0cnlpbmcgdG8gZGVsZXRlIGEgbm9uLWxpbmUKACMgZW5kIG9mIEZJRyBmaWxlCgBTaW5nbGUKAHJlbmRlcmVyIGZvciAlcyBpcyB1bmF2YWlsYWJsZQoAZHluYW1pYyBsb2FkaW5nIG5vdCBhdmFpbGFibGUKACUuMGYgJS4wZiBsaW5ldG8gc3Ryb2tlCgBjbG9zZXBhdGggc3Ryb2tlCgAgZWxsaXBzZV9wYXRoIHN0cm9rZQoALy8qKiogYmVnaW5fZWRnZQoALy8qKiogZW5kX2VkZ2UKAGxvc3QgJXMgJXMgZWRnZQoAb3ZlcmZsb3cgd2hlbiBjYWxjdWxhdGluZyB2aXJ0dWFsIHdlaWdodCBvZiBlZGdlCgBhZGRfdHJlZV9lZGdlOiBtaXNzaW5nIHRyZWUgZWRnZQoAaW4gcm91dGVzcGxpbmVzLCBjYW5ub3QgZmluZCBOT1JNQUwgZWRnZQoAc2hvd3BhZ2UKACVkICVkICVkIGJlZ2lucGFnZQoALy8qKiogYmVnaW5fcGFnZQoALy8qKiogZW5kX3BhZ2UKAEZpbGVuYW1lICIlcyIgaXMgdW5zYWZlCgBsYWJlbDogYXJlYSB0b28gbGFyZ2UgZm9yIHJ0cmVlCgAvLyoqKiBlbmRfbm9kZQoAVXNpbmcgZGVmYXVsdCBjYWxjdWxhdGlvbiBmb3Igcm9vdCBub2RlCgBjb250YWluX25vZGVzIGNsdXN0ICVzIHJhbmsgJWQgbWlzc2luZyBub2RlCgAlZiAlZiAlZiAlZiBub2RlCgA8PCAvUGFnZVNpemUgWyVkICVkXSA+PiBzZXRwYWdlZGV2aWNlCgBpbiBjaGVja3BhdGgsIGJveCAlenUgaGFzIExMIGNvb3JkID4gVVIgY29vcmQKAGluIGNoZWNrcGF0aCwgYm94IDAgaGFzIExMIGNvb3JkID4gVVIgY29vcmQKAGNsdXN0ZXIgbmFtZWQgJXMgbm90IGZvdW5kCgBpbnRlZ2VyIG92ZXJmbG93IGR1cmluZyBsaXN0IHByZXBlbmQKAG1pbmNyb3NzOiBwYXNzICVkIGl0ZXIgJWQgdHJ5aW5nICVkIGN1cl9jcm9zcyAlbGxkIGJlc3RfY3Jvc3MgJWxsZAoAbm9kZSAlcywgcG9ydCAlcyB1bnJlY29nbml6ZWQKACVzJXMgdW5zdXBwb3J0ZWQKAGNsdXN0ZXIgY3ljbGUgJXMgLS0gJXMgbm90IHN1cHBvcnRlZAoAJXMgLT4gJXM6IHNwbGluZSBzaXplID4gMSBub3Qgc3VwcG9ydGVkCgBsYXlvdXQgYWJvcnRlZAoAcGFnZWRpcj0lcyBpZ25vcmVkCgBUd28gY2x1c3RlcnMgbmFtZWQgJXMgLSB0aGUgc2Vjb25kIHdpbGwgYmUgaWdub3JlZAoASWxsZWdhbCBhdHRyaWJ1dGUgJXMgaW4gJXMgLSBpZ25vcmVkCgBVbmtub3duIHZhbHVlICVzIGZvciBhdHRyaWJ1dGUgIm1vZGVsIiBpbiBncmFwaCAlcyAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIGF0dHJpYnV0ZSAibW9kZSIgaW4gZ3JhcGggJXMgLSBpZ25vcmVkCgBzdGFydD0wIG5vdCBzdXBwb3J0ZWQgd2l0aCBtb2RlPXNlbGYgLSBpZ25vcmVkCgBPdmVybGFwIHZhbHVlICIlcyIgdW5zdXBwb3J0ZWQgLSBpZ25vcmVkCgBVbmtub3duIHZhbHVlICVzIGZvciBST1dTIC0gaWdub3JlZAoAVW5rbm93biB2YWx1ZSAlcyBmb3IgQ09MVU1OUyAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIFZBTElHTiAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIEFMSUdOIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlcyBmb3IgRklYRURTSVpFIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlLipzIGZvciBTVFlMRSAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIEJBTElHTiBpbiBURCAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIEFMSUdOIGluIFREIC0gaWdub3JlZAoAUk9XU1BBTiB2YWx1ZSBjYW5ub3QgYmUgMCAtIGlnbm9yZWQKAENPTFNQQU4gdmFsdWUgY2Fubm90IGJlIDAgLSBpZ25vcmVkCgBub2RlICVzLCBwb3J0ICVzLCB1bnJlY29nbml6ZWQgY29tcGFzcyBwb2ludCAnJXMnIC0gaWdub3JlZAoAVW5rbm93biAic3BsaW5lcyIgdmFsdWU6ICIlcyIgLSBpZ25vcmVkCgBpbiByb3V0ZXNwbGluZXMsIFBzaG9ydGVzdHBhdGggZmFpbGVkCgBpbiByb3V0ZXNwbGluZXMsIFByb3V0ZXNwbGluZSBmYWlsZWQKACMgcGx1Z2luIGxvYWRpbmcgb2YgZGVwZW5kZW5jeSAiJS4qcyIgZmFpbGVkCgBQYXJzaW5nIG9mICIlcyIgZmFpbGVkCgAlczolZDogY2xhaW1lZCB1bnJlYWNoYWJsZSBjb2RlIHdhcyByZWFjaGVkCgAjIHVuc3VjY2Vzc2Z1bCBwbHVnaW4gbG9hZAoAJS41ZyAlLjVnIHRyYW5zbGF0ZSBuZXdwYXRoIHVzZXJfc2hhcGVfJWQKAG5zaXplc2NhbGU9JWYsaXRlcmF0aW9ucz0lZAoAY3RybC0+b3ZlcmxhcD0lZAoAJXMgJWQgbm9kZXMgJWQgZWRnZXMgbWF4aXRlcj0lZCBiYWxhbmNlPSVkCgAvLyoqKiBiZWdpbl9sYXllcjogJXMsICVkLyVkCgBkZWdlbmVyYXRlIGNvbmNlbnRyYXRlZCByYW5rICVzLCVkCgAgIG1heCBsZXZlbHMgJWQKAAklcyAlZAoAICBCYXJuZXMtSHV0dCBjb25zdGFudCAlLjAzZiB0b2xlcmFuY2UgICUuMDNmIG1heGl0ZXIgJWQKAGd2d3JpdGVfbm9feiBwcm9ibGVtICVkCgAgIHF1YWR0cmVlIHNpemUgJWQgbWF4X2xldmVsICVkCgByZWJ1aWxkX3ZsaXN0czogbGVhZCBpcyBudWxsIGZvciByYW5rICVkCgByZWJ1aWxkX3ZsaXN0czogcmFuayBsZWFkICVzIG5vdCBpbiBvcmRlciAlZCBvZiByYW5rICVkCgAgIHNtb290aGluZyAlcyBvdmVybGFwICVkIGluaXRpYWxfc2NhbGluZyAlLjAzZiBkb19zaHJpbmtpbmcgJWQKACAgY29vbGluZyAlLjAzZiBzdGVwIHNpemUgICUuMDNmIGFkYXB0aXZlICVkCgBVbnN1cHBvcnRlZCBjaGFyc2V0IHZhbHVlICVkCgBpbiByb3V0ZXNwbGluZXMsIGlsbGVnYWwgdmFsdWVzIG9mIHByZXYgJWQgYW5kIG5leHQgJWQsIGxpbmUgJWQKACAgZWRnZV9sYWJlbGluZ19zY2hlbWUgJWQKAGFnZGljdG9mOiB1bmtub3duIGtpbmQgJWQKACAgcmFuZG9tIHN0YXJ0ICVkIHNlZWQgJWQKACVkICVkICVkICUuMGYgJWQgJWQgJWQgJWQgJWQgJS4xZiAlZCAlZCAlZCAlZAoAJSUlJVBhZ2VCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQKACUlJSVCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQKACUlJSVQYWdlOiAlZCAlZAoAJXMgbm8uIGNlbGxzICVkIFcgJWQgSCAlZAoATWF4cmFuayA9ICVkLCBtaW5yYW5rID0gJWQKAHN0ZXAgc2l6ZSA9ICVkCgAlJSUlUGFnZXM6ICVkCgAjIFBhZ2VzOiAlZAoAJSUlJUVuZFBhZ2U6ICVkCgAiZm9udGNoYXIiOiAlZAoAICBmbGFncyAgJWQKACAgc2l6ZSAgICVkCgAlcyBkYXNod2lkIGlzIDAuMSBpbiAxMHRoIEVkaXRpb24sIDAuMDUgaW4gRFdCIDIgYW5kIGluIGdwaWMKACVzIG1heHBzaHQgYW5kIG1heHBzd2lkIGFyZSBwcmVkZWZpbmVkIHRvIDExLjAgYW5kIDguNSBpbiBncGljCgAgJWQlcyBpdGVyYXRpb25zICUuMmYgc2VjCgAKZmluYWwgZSA9ICVmICVkIGl0ZXJhdGlvbnMgJS4yZiBzZWMKACVkIG5vZGVzICUuMmYgc2VjCgAlcyV6dSBub2RlcyAlenUgZWRnZXMgJWQgaXRlciAlLjJmIHNlYwoACmZpbmlzaGVkIGluICUuMmYgc2VjCgA6ICUuMmYgc2VjCgAgbm9kZVtzaGFwZT1wb2ludF0KACJyZWN0IjogWyUuMDNmLCUuMDNmLCUuMDNmLCUuMDNmXQoAaW5zdGFsbF9pbl9yYW5rLCBsaW5lICVkOiBORF9vcmRlciglcykgWyVkXSA+IEdEX3JhbmsoUm9vdClbJWRdLmFuIFslZF0KAGluc3RhbGxfaW5fcmFuaywgbGluZSAlZDogR0RfcmFuayhnKVslZF0udiArIE5EX29yZGVyKCVzKSBbJWRdID4gR0RfcmFuayhnKVslZF0uYXYgKyBHRF9yYW5rKFJvb3QpWyVkXS5hbiBbJWRdCgBpbnN0YWxsX2luX3JhbmssIGxpbmUgJWQ6IHJhbmsgJWQgbm90IGluIHJhbmsgcmFuZ2UgWyVkLCVkXQoAZmFpbGVkIGF0IG5vZGUgJWRbMV0KAGZhaWxlZCBhdCBub2RlICVkWzBdCgAgICVkIC0tICVkW2xhYmVsPSIlZiJdCgAgICVkIFtwb3M9IiUuMGYsJS4wZiEiXQoAIF0KAERvdDogWwoAIm9iamVjdHMiOiBbCgAic3ViZ3JhcGhzIjogWwoAImVkZ2VzIjogWwoAIm5vZGVzIjogWwoAWCBlbHNlIFoKCWRlZmluZSBzZXRmaWxsdmFsIFkgZmlsbHZhbCA9IFk7CglkZWZpbmUgYm9sZCBZIFk7CglkZWZpbmUgZmlsbGVkIFkgZmlsbCBZOwpaCgBpZiBib3hyYWQgPiAxLjAgJiYgZGFzaHdpZCA8IDAuMDc1IHRoZW4gWAoJZmlsbHZhbCA9IDE7CglkZWZpbmUgZmlsbCBZIFk7CglkZWZpbmUgc29saWQgWSBZOwoJZGVmaW5lIHJlc2V0IFkgc2NhbGU9MS4wIFk7ClgKACBBQk9SVElORwoAJSVFT0YKACVzIHJlc3RvcmUgcG9pbnQgc2l6ZSBhbmQgZm9udAoucHMgXG4oLlMKLmZ0IFxuKERGCgBdCi5QRQoAaW52YWxpZGF0ZV9wYXRoOiBza2lwcGVkIG92ZXIgTENBCgBJbnZhbGlkICVkLWJ5dGUgVVRGOCBmb3VuZCBpbiBpbnB1dCBvZiBncmFwaCAlcyAtIHRyZWF0ZWQgYXMgTGF0aW4tMS4gUGVyaGFwcyAiLUdjaGFyc2V0PWxhdGluMSIgaXMgbmVlZGVkPwoAVVRGOCBjb2RlcyA+IDQgYnl0ZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIChncmFwaCAlcykgLSB0cmVhdGVkIGFzIExhdGluLTEuIFBlcmhhcHMgIi1HY2hhcnNldD1sYXRpbjEiIGlzIG5lZWRlZD8KADwvdGV4dD4KADwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KADwvcmFkaWFsR3JhZGllbnQ+CjwvZGVmcz4KADwvbWFwPgoAPC9zdmc+CgA8L2E+CjwvZz4KACAgICByb3RhdGUgICA8JTkuM2YsICU5LjNmLCAlOS4zZj4KACAgICBzY2FsZSAgICA8JTkuM2YsICU5LjNmLCAlOS4zZj4KADwvdGl0bGU+CgAiIHR5cGU9InRleHQvY3NzIj8+CgA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KACAgICB0cmFuc2xhdGU8JTkuM2YsICU5LjNmLCAlZC4wMDA+CgA7Ii8+CgAgUGFnZXM6ICVkIC0tPgoAKQogLS0+CgAgLT4KADwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgoAKSI+CgByXyVkIiBjeD0iNTAlJSIgY3k9IjUwJSUiIHI9Ijc1JSUiIGZ4PSIlLjBmJSUiIGZ5PSIlLjBmJSUiPgoAIiA+CgAjZGVjbGFyZSAlcyA9ICVzOwoACSVzCXNvcnJ5LCB0aGUgZ3JvZmYgZm9sa3MgY2hhbmdlZCBncGljOyBzZW5kIGFueSBjb21wbGFpbnQgdG8gdGhlbTsKAAklcwlpbnN0YWxsIGEgbW9yZSByZWNlbnQgdmVyc2lvbiBvZiBncGljIG9yIHN3aXRjaCB0byBEV0Igb3IgMTB0aCBFZGl0aW9uIHBpYzsKAF07CgBpZiBmaWxsdmFsID4gMC40IHRoZW4gWAoJZGVmaW5lIHNldGZpbGx2YWwgWSBmaWxsdmFsID0gMSAtIFk7CglkZWZpbmUgYm9sZCBZIHRoaWNrbmVzcyAyIFk7CgAjdmVyc2lvbiAzLjY7CgBlbGxpcHNlIGF0dHJzMCAlc3dpZCAlLjVmIGh0ICUuNWYgYXQgKCUuNWYsJS41Zik7CgAiIGF0ICglLjVmLCUuNWYpOwoAJSVCZWdpbkRvY3VtZW50OgoAJXp1IGJveGVzOgoAcGFjayBpbmZvOgoAc3ByaW5nX2VsZWN0cmljYWxfY29udHJvbDoKAFVuc3VwcG9ydGVkIGNoYXJzZXQgIiVzIiAtIGFzc3VtaW5nIHV0Zi04CgAgICAgICBhbWJpZW50SW50ZW5zaXR5IDAuMzMKACNGSUcgMy4yCgAtMgoAJXMgbm9uLWZhdGFsIHJ1bi10aW1lIHBpYyB2ZXJzaW9uIGRldGVybWluYXRpb24sIHZlcnNpb24gMgoAJXMgZmlsbHZhbCBpcyAwLjMgaW4gMTB0aCBFZGl0aW9uIChmaWxsIDAgbWVhbnMgYmxhY2spLCAwLjUgaW4gZ3BpYyAoZmlsbCAwIG1lYW5zIHdoaXRlKSwgdW5kZWZpbmVkIGluIERXQiAyCgAlcyByZXNldCB3b3JrcyBpbiBncGljIGFuZCAxMHRoIGVkaXRpb24sIGJ1dCBpc24ndCBkZWZpbmVkIGluIERXQiAyCgBzZXR1cExhdGluMQoAXDAwMQoAJXMgICAgICAgIHRvbGVyYW5jZSAwLjAxCgAgICAgdG9sZXJhbmNlIDAuMQoAJSVQYWdlczogMQoAICAgICAgICBkaWZmdXNlQ29sb3IgMSAxIDEKADEwMC4wMAoAIEVQU0YtMy4wCgAlcyBib3hyYWQgaXMgbm93IDAuMCBpbiBncGljLCBlbHNlIGl0IHJlbWFpbnMgMi4wCgBzcGhlcmUgezwlOS4zZiwgJTkuM2YsICU5LjNmPiwgMS4wCgBXYXJuaW5nOiBubyB2YWx1ZSBmb3Igd2lkdGggb2YgQVNDSUkgY2hhcmFjdGVyICV1LiBGYWxsaW5nIGJhY2sgdG8gMAoAaW5zdGFsbF9pbl9yYW5rLCBsaW5lICVkOiAlcyAlcyByYW5rICVkIGkgPSAlZCBhbiA9IDAKAGNvbmNlbnRyYXRlPXRydWUgbWF5IG5vdCB3b3JrIGNvcnJlY3RseS4KAE5vIGxpYnogc3VwcG9ydC4KAHR3b3BpOiB1c2Ugb2Ygd2VpZ2h0PTAgY3JlYXRlcyBkaXNjb25uZWN0ZWQgY29tcG9uZW50LgoAdGhlIGdyYXBoIGludG8gY29ubmVjdGVkIGNvbXBvbmVudHMuCgBPcnRob2dvbmFsIGVkZ2VzIGRvIG5vdCBjdXJyZW50bHkgaGFuZGxlIGVkZ2UgbGFiZWxzLiBUcnkgdXNpbmcgeGxhYmVscy4KAG1pbmNyb3NzICVzOiAlbGxkIGNyb3NzaW5ncywgJS4yZiBzZWNzLgoAJXMgaXMgbm90IGEga25vd24gY29sb3IuCgBpcyBpbmFwcHJvcHJpYXRlLiBSZXZlcnRpbmcgdG8gdGhlIHNob3J0ZXN0IHBhdGggbW9kZWwuCgBpcyB1bmRlZmluZWQuIFJldmVydGluZyB0byB0aGUgc2hvcnRlc3QgcGF0aCBtb2RlbC4KAFVuYWJsZSB0byByZWNsYWltIGJveCBzcGFjZSBpbiBzcGxpbmUgcm91dGluZyBmb3IgZWRnZSAiJXMiIC0+ICIlcyIuIFNvbWV0aGluZyBpcyBwcm9iYWJseSBzZXJpb3VzbHkgd3JvbmcuCgBFcnJvciBkdXJpbmcgY29udmVyc2lvbiB0byAiVVRGLTgiLiBRdWl0aW5nLgoAb3JkZXJpbmcgJyVzJyBub3QgcmVjb2duaXplZC4KAGdyYWRpZW50IHBlbiBjb2xvcnMgbm90IHlldCBzdXBwb3J0ZWQuCgAgIGluaXRDTWFqVlBTQyBkb25lOiAlZCBnbG9iYWwgY29uc3RyYWludHMgZ2VuZXJhdGVkLgoAVGhlIGNoYXJhY3RlciAnJWMnIGFwcGVhcnMgaW4gYm90aCB0aGUgbGF5ZXJzZXAgYW5kIGxheWVybGlzdHNlcCBhdHRyaWJ1dGVzIC0gbGF5ZXJsaXN0c2VwIGlnbm9yZWQuCgB0aGUgYXNwZWN0IGF0dHJpYnV0ZSBoYXMgYmVlbiBkaXNhYmxlZCBkdWUgdG8gaW1wbGVtZW50YXRpb24gZmxhd3MgLSBhdHRyaWJ1dGUgaWdub3JlZC4KAFRoZSBsYXllcnNlbGVjdCBhdHRyaWJ1dGUgIiVzIiBkb2VzIG5vdCBtYXRjaCBhbnkgbGF5ZXIgc3BlY2lmZWQgYnkgdGhlIGxheWVycyBhdHRyaWJ1dGUgLSBpZ25vcmVkLgoAJXp1IG91dCBvZiAlenUgbGFiZWxzIHBvc2l0aW9uZWQuCgAlenUgb3V0IG9mICV6dSBleHRlcmlvciBsYWJlbHMgcG9zaXRpb25lZC4KACAgZ2VuZXJhdGUgZWRnZSBjb25zdHJhaW50cy4uLgoAR2VuZXJhdGluZyBOb24tb3ZlcmxhcCBD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MSkpCgBlcnJvciBpbiBjb2xvcnhsYXRlKCkKAHRydW5jYXRpbmcgc3R5bGUgJyVzJwoASWxsZWdhbCB2YWx1ZSBpbiAiJXMiIGNvbG9yIGF0dHJpYnV0ZTsgZmxvYXQgZXhwZWN0ZWQgYWZ0ZXIgJzsnCgBkZWZpbmUgYXR0cnMwICUlICUlOyBkZWZpbmUgdW5maWxsZWQgJSUgJSU7IGRlZmluZSByb3VuZGVkICUlICUlOyBkZWZpbmUgZGlhZ29uYWxzICUlICUlCgA8c3ZnIHdpZHRoPSIlZHB0IiBoZWlnaHQ9IiVkcHQiCgAjIGRlcGVuZGVuY2llcyAiJS4qcyIgZGlkIG5vdCBtYXRjaCAiJS4qcyIKACMgdHlwZSAiJS4qcyIgZGlkIG5vdCBtYXRjaCAiJS4qcyIKACRjIGNyZWF0ZSBpbWFnZSAlLjJmICUuMmYgLWltYWdlICJwaG90b18lcyIKAE5vIG9yIGltcHJvcGVyIGltYWdlIGZpbGU9IiVzIgoAZmlsZSBsb2FkaW5nIGlzIGRpc2FibGVkIGJlY2F1c2UgdGhlIGVudmlyb25tZW50IGNvbnRhaW5zIFNFUlZFUl9OQU1FPSIlcyIKAENvdWxkIG5vdCBwYXJzZSB4ZG90ICIlcyIKAE5vIGxvYWRpbWFnZSBwbHVnaW4gZm9yICIlcyIKACBbJXp1XSAoJS4wMmYsJS4wMmYpICglLjAyZiwlLjAyZikgJXAgIiVzIgoAZm9udG5hbWU6IHVuYWJsZSB0byByZXNvbHZlICIlcyIKAER1cGxpY2F0ZSBjbHVzdGVyIG5hbWUgIiVzIgoAdW5yZWNvZ25pemVkIGFwaSBuYW1lICIlcyIKAGltYWdlIGNyZWF0ZSBwaG90byAicGhvdG9fJXMiIC1maWxlICIlcyIKAE5vIG9yIGltcHJvcGVyIHNoYXBlZmlsZT0iJXMiIGZvciBub2RlICIlcyIKAE5vIG9yIGltcHJvcGVyIGltYWdlPSIlcyIgZm9yIG5vZGUgIiVzIgoAbm9kZSAiJXMiIGlzIGNvbnRhaW5lZCBpbiB0d28gbm9uLWNvbXBhcmFibGUgY2x1c3RlcnMgIiVzIiBhbmQgIiVzIgoARXJyb3I6IG5vZGUgIiVzIiBiZWxvbmdzIHRvIHR3byBub24tbmVzdGVkIGNsdXN0ZXJzICIlcyIgYW5kICIlcyIKACAgIiVzIgoAI2luY2x1ZGUgImNvbG9ycy5pbmMiCiNpbmNsdWRlICJ0ZXh0dXJlcy5pbmMiCiNpbmNsdWRlICJzaGFwZXMuaW5jIgoAVW5rbm93biBIVE1MIGVsZW1lbnQgPCVzPiBvbiBsaW5lICVsdSAKACVzIGluIGxpbmUgJWx1IAoAc2NhbGUgYnkgJWcsJWcgCgBjb21wcmVzcyAlZyAKAExheW91dCB3YXMgbm90IGRvbmUuICBNaXNzaW5nIGxheW91dCBwbHVnaW5zPyAKAIlQTkcNChoKACUlIVBTLUFkb2JlLTIuMAolJSUlQm91bmRpbmdCb3g6IChhdGVuZCkKL3BvaW50IHsKICAvWSBleGNoIGRlZgogIC9YIGV4Y2ggZGVmCiAgbmV3cGF0aAogIFggWSAzIDAgMzYwIGFyYyBmaWxsCn0gZGVmCi9jZWxsIHsKICAvWSBleGNoIGRlZgogIC9YIGV4Y2ggZGVmCiAgL3kgZXhjaCBkZWYKICAveCBleGNoIGRlZgogIG5ld3BhdGgKICB4IHkgbW92ZXRvCiAgeCBZIGxpbmV0bwogIFggWSBsaW5ldG8KICBYIHkgbGluZXRvCiAgY2xvc2VwYXRoIHN0cm9rZQp9IGRlZgovbm9kZSB7CiAvdSBleGNoIGRlZgogL3IgZXhjaCBkZWYKIC9kIGV4Y2ggZGVmCiAvbCBleGNoIGRlZgogbmV3cGF0aCBsIGQgbW92ZXRvCiByIGQgbGluZXRvIHIgdSBsaW5ldG8gbCB1IGxpbmV0bwogY2xvc2VwYXRoIGZpbGwKfSBkZWYKCgAJAEHxigULtgMBAQEBAQEBAQIDAQECAQEBAQEBAQEBAQEBAQEBAQEBAgEEBQEBAQEBAQYBAQcICQoKCgoKCgoKCgoBAQsBDAENDg8QERITFBUWExMTExcYGRMaGxwdExMTExMBHgEBEwEfICEiIxMkJSYTExMTJygpEyorLC0TExMTEwEBAQEBExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMuExMTLxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTMBMTExMTExMTExMTExMTExMAAAAAAAAEAAQAHAAcACEAIQAkACIACgACABYACQAiACIAIgAVAB0AAQAUABQAFAAUABQAFAAUAAgABAAFABwAGwAXABwAIQAgAB8AHgAJABMAAAAVABIAFQADAAcAFQAVABQAFAAUABQAFAAUABQAFAAIAAQABQAFAAYAHAAaABgAGQAhAAcAFQAUABQAFAAUABQAFAALABQADQAUAAwAFAAUABQADgAUABQAFAAQABQADwAUABEAQbKOBQuVBAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAMABAAHAAMABAAFAAUABgAGAAgABwAHABEAFgASABEAEgAIAAgADwAPABcADwAYAA8AGQAaABoAHgAWADQAHgAFADIABgAiACIAMwAXABgANQAZABoAGgAqADYAKgA0ADcAMgBFADsAPAAzADsAPABGADUARwBIAEwANgAiAEkASgA3AEUATgBQAGIAUQBSAFQARgBHAFUASABMAFYASQBKAFgAWgBOAEQAUABRAFIAVAA4AC8ALABVACkAVgAbABAAWABaAF0AXQBdAF0AXQBdAF0AXgBeAF4AXgBeAF4AXgBfAF8AXwBfAF8AXwBfAGAACQBgAGAAYABgAGAAYQBhAGMAAgBjAGMAYwBjAGMAZAAAAGQAAABkAGQAZABlAAAAZQBlAGUAZQBlAGYAAAAAAGYAZgBmAGYAZwAAAGcAZwBnAGcAaAAAAGgAaABoAGgAaABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAEHUkgULzQGuAC4ALwAzADUAMAA3AKoA2wDbANsA2wAAAD0AhwA3ADcA2wDbAAAAKAA1AC4AMgAvAGIAAAAAAEcAAADbANsAUQAAANsA2wDbAAAA2wCEAFUA2wCCANsAAACBANsAAAA+AEIAQQBIAEQAUgBbAAAAAABeAF8A2wAAANsA2wDbAAAAAAB7AEkAVwBSAFoAWgBdAAAAXwAAAF8AAABlAF0AXwAAAF0AbgBqAAAAaQAAAG4AAADbAJMAmgChAKgAqwBwALEAuAC/AMYAzQDTAEGylAULzwFcAAEAXQBdAF4AXgBfAF8AXABcAFwAXABcAGAAXABcAFwAYQBcAFwAYgBiAGIAYgBiAGIAYgBjAGQAZQBmAFwAXABcAGcAXABcAFwAYABcAFwAYQBcAGEAXABoAGEAXABiAGIAYgBiAGIAYgBiAGIAYwBkAGUAZQBcAGYAXABcAFwAZwBoAGEAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAAAAXABcAFwAXABcAFwAXABcAFwAXABcAFwAQZGWBQswAQECAwEEAQUBBgcHAQYGBgYGBgYGBgYGBgYGBgYDBgYGBgYGBgYGBgYGBgYGBgYGAEHSlgULowQKAAsADAANAA4ACgAPABAAEQASABMACgAUABUAFQAVABYAFwAVABgAFQAVABkAFQAVABUAGgAVABUACgAVABUAFQAWABcAGAAVABUAGQAVABUAFQAaABUAFQAVABUAGwAMAAwAJAAeAB4AIAAhACAAIQAkACUAJgAtADIALwAuACoAJQAmACgAKQAzACoANAArADUANgA3ADwAMgBHAD0AIgBFACIAPwBAAEYAMwA0AEgANQA2ADcALwBJACoARwBKAEUATABcADwARgBcAD0ATQBIAE4ATwBSAEkAQQBQAFEASgBMAFMAVAAxAFUAVgBXAE0ATgBYAE8AUgBZAFAAUQBaAFsAUwBEAFQAVQBWAFcASwBEACwAWAAsAFkAOAAsAFoAWwAdAB0AHQAdAB0AHQAdAB8AHwAfAB8AHwAfAB8AIwAjACMAIwAjACMAIwAnAFwAJwAnACcAJwAnADAAMAA5ABwAOQA5ADkAOQA5ADoAXAA6AFwAOgA6ADoAOwBcADsAOwA7ADsAOwA+AFwAXAA+AD4APgA+AEIAXABCAEIAQgBCAEMAXABDAEMAQwBDAEMACQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAMAAAADQAAAA4AAAAOAEGAmwUL0QUR7u4TCAPu/u7u7gHu7u4B7u4J/u4SFRfuEgHu7u7uCg3u7u7u7u7u7u4B7u4WCAEBGQ4Y7u4bGBru7h3u7u7uARX77u7u7hAe7u7uAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWEQICAgICAgICAgICAgISEAITAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIUAhUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4CDwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBAgMEBQYHCAkKCwwNAAAACwMEBQ8HAwwNBgwNDgwNGhUAAQADBw4GDwgMDRITCSoQERAWLzANMhETLjIUEhQSQRMsE0JAKkIZ//8sAAAAACIMDQ4jDwkQEQoQEcwQES1F/AEG9g8H9iQCEBEvMCg2SUomMTs8PTYqOTo+Py/YQEQwNyVHQzVIKwAAOAAAAAAAAwkAAAABDgILDAgjJCUzODoADRASGxYcEicvIhcwHjkGBzIFDxEUGCkAEykAAAAAADQVKB0eACEmMR8uOxksABsAIBoqKzcANTYtAAAAAAACAgEAAwMBAAEAAQEBAAIBAQACAgMBAQAABQABAwEDBQMBAQEBAgABAAQCAAIDAQADAgEAAQEAAQEBAwAAAAAAFxgYGBkaGxscHB0dHh4fHyAgISEiIyMlJiQkJycoKCgpKSoqKisrLCwtLi4vMDEzMjQ0NDU1NTY2NzcAAAAA7u787u7u7u7uHyDu+e/u7u4M7u7uBg/u7vLu7u7u7vXuAEHhoAULLwMIBCEFCxITJxQVFikyQRcYGRosMzRCRhscHS4eSx8ga2V5AF9BR19zdHJkYXRhAEGgoQULFe0fAAC/DAAAowwAAGhUAAB7UgAABgBBwKEFC+PrAc7GAABVXcl/yX//ALS3AAC7LdS+rtT/AKypAAAUd/39wIb/AG7FAABVXcl/yX//AFS2AAC7LdS+rtT/AEyoAAAUd/39wIb/ALCbAAAqZv///5n/AA7EAABVXcl/yX//APS0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AAAYX/391J7/ALKVAAATef39u4T/AH6KAAANpPz8jVn/AFuDAAAHsu/vZUj/AKB9AAAD2tfXMB//ADt5AAAA/7OzAAD/ACp2AAAA/39/AAD/ANLIAACOROOmzuP/AA7NAAC+mZpqPZr/ALi5AACQ07QfeLT/ALCrAABBYd+y34r/ALSdAABSuKAzoCz/ACCRAAAAY/v7mpn/AJ2IAAD+4ePjGhz/AIKBAAAXj/39v2//AL17AAAV////fwD/AEx3AADGKtbKstb/AFrIAACOROOmzuP/AIvMAAC+mZpqPZr/ADq+AAAqZv///5n/AEC5AACQ07QfeLT/ADirAABBYd+y34r/ADydAABSuKAzoCz/AKiQAAAAY/v7mpn/ACWIAAD+4ePjGhz/AAqBAAAXj/39v2//AEV7AAAV////fwD/ANR2AADGKtbKstb/AOLHAACOROOmzuP/AAjMAAC+mZpqPZr/ALe9AAAqZv///5n/ADqvAAAPxbGxWSj/AMi4AACQ07QfeLT/AMCqAABBYd+y34r/AMScAABSuKAzoCz/ADCQAAAAY/v7mpn/AK2HAAD+4ePjGhz/AJKAAAAXj/39v2//AM16AAAV////fwD/AFx2AADGKtbKstb/AJrHAACOROOmzuP/AIC4AACQ07QfeLT/AHiqAABBYd+y34r/ADrGAACOROOmzuP/ACC3AACQ07QfeLT/ABipAABBYd+y34r/AHycAABSuKAzoCz/ANrEAACOROOmzuP/AMC1AACQ07QfeLT/ALinAABBYd+y34r/ABybAABSuKAzoCz/AOiPAAAAY/v7mpn/AHrDAACOROOmzuP/AGC0AACQ07QfeLT/AFimAABBYd+y34r/ALyZAABSuKAzoCz/AIiOAAAAY/v7mpn/AGWHAAD+4ePjGhz/ABrCAACOROOmzuP/AACzAACQ07QfeLT/APikAABBYd+y34r/AFyYAABSuKAzoCz/ACiNAAAAY/v7mpn/AAWGAAD+4ePjGhz/AEqAAAAXj/39v2//ALrAAACOROOmzuP/AKCxAACQ07QfeLT/AJijAABBYd+y34r/APyWAABSuKAzoCz/AMiLAAAAY/v7mpn/AKWEAAD+4ePjGhz/AOp+AAAXj/39v2//AIV6AAAV////fwD/AHm/AACOROOmzuP/AF+wAACQ07QfeLT/AFei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AADSFejn1Oj/AGWIAABMHvDZ8NP/AEqBAABQRNum26D/AIV7AABYe65armH/ABR3AABhxXgbeDf/ACLIAADO/0tAAEv/AE7MAABhxXgbeDf/AP29AABl/0QARBv/AAi5AADOrYN2KoP/AACrAADHV6uZcKv/AASdAADHM8/Cpc//AHCQAADSFejn1Oj/AO2HAAAAAPf39/f/ANKAAABMHvDZ8NP/AA17AABQRNum26D/AJx2AABYe65armH/AEHHAADERsOvjcP/ACe4AAAAAPf39/f/AB+qAABSWr9/v3v/AOHFAADJqJR7MpT/AMe2AADHM8/Cpc//AL+oAABQRNum26D/ACOcAABm/4gAiDf/AIHEAADJqJR7MpT/AGe1AADHM8/Cpc//AF+nAAAAAPf39/f/AMOaAABQRNum26D/AI+PAABm/4gAiDf/ACHDAADOrYN2KoP/AAe0AADERsOvjcP/AP+lAADSFejn1Oj/AGOZAABMHvDZ8NP/AC+OAABSWr9/v3v/AAyHAABhxXgbeDf/AMHBAADOrYN2KoP/AKeyAADERsOvjcP/AJ+kAADSFejn1Oj/AAOYAAAAAPf39/f/AM+MAABMHvDZ8NP/AKyFAABSWr9/v3v/APF/AABhxXgbeDf/AGHAAADOrYN2KoP/AEexAADHV6uZcKv/AD+jAADHM8/Cpc//AKOWAADSFejn1Oj/AG+LAABMHvDZ8NP/AEyEAABQRNum26D/AJF+AABYe65armH/ACx6AABhxXgbeDf/ACC/AADOrYN2KoP/AAawAADHV6uZcKv/AP6hAADHM8/Cpc//AGKVAADSFejn1Oj/AC6KAAAAAPf39/f/AAuDAABMHvDZ8NP/AFB9AABQRNum26D/AOt4AABYe65armH/ANp1AABhxXgbeDf/AJ3GAAC9C/Ls5/L/AIO3AACXPdumvdv/AHupAACNxb4rjL7/AD3FAAC5CPbx7vb/ACO2AACbKOG9yeH/ABuoAACRcM90qc//AH+bAACP97AFcLD/AN3DAAC5CPbx7vb/AMO0AACbKOG9yeH/ALumAACRcM90qc//AB+aAACNxb4rjL7/AOuOAACP940EWo3/AH3CAAC5CPbx7vb/AGOzAACoGObQ0eb/AFulAACXPdumvdv/AL+YAACRcM90qc//AIuNAACNxb4rjL7/AGiG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AAALm/z8jWL/AMynAACcTcuNoMv/ADCbAADkZufnisP/APyPAAA6m9im2FT/AI7DAAByeMJmwqX/AHS0AAALm/z8jWL/AGymAACcTcuNoMv/ANCZAADkZufnisP/AJyOAAA6m9im2FT/AHmHAAAi0P//2S//AC7CAAByeMJmwqX/ABSzAAALm/z8jWL/AAylAACcTcuNoMv/AHCYAADkZufnisP/ADyNAAA6m9im2FT/ABmGAAAi0P//2S//AF6AAAAZWuXlxJT/AM7AAAByeMJmwqX/ALSxAAALm/z8jWL/AKyjAACcTcuNoMv/ABCXAADkZufnisP/ANyLAAA6m9im2FT/ALmEAAAi0P//2S//AP5+AAAZWuXlxJT/AJl6AAAAALOzs7P/AN7IAAB4VNON08f/ABvNAADTUr28gL3/AMS5AAAqTP///7P/ALyrAACvJdq+utr/AMCdAAAEi/v7gHL/ACyRAACQZNOAsdP/AKmIAAAWnP39tGL/AI6BAAA6ht6z3mn/AMl7AADpL/z8zeX/AFh3AAAAANnZ2dn/AGbIAAB4VNON08f/AJjMAADTUr28gL3/AEe+AABNKevM68X/AEy5AAAqTP///7P/AESrAACvJdq+utr/AEidAAAEi/v7gHL/ALSQAACQZNOAsdP/ADGIAAAWnP39tGL/ABaBAAA6ht6z3mn/AFF7AADpL/z8zeX/AOB2AAAAANnZ2dn/AO7HAAB4VNON08f/ABXMAADTUr28gL3/AMS9AABNKevM68X/AEevAAAlkP//7W//ANS4AAAqTP///7P/AMyqAACvJdq+utr/ANCcAAAEi/v7gHL/ADyQAACQZNOAsdP/ALmHAAAWnP39tGL/AJ6AAAA6ht6z3mn/ANl6AADpL/z8zeX/AGh2AAAAANnZ2dn/AKXHAAB4VNON08f/AIu4AAAqTP///7P/AIOqAACvJdq+utr/AEXGAAB4VNON08f/ACu3AAAqTP///7P/ACOpAACvJdq+utr/AIecAAAEi/v7gHL/AOXEAAB4VNON08f/AMu1AAAqTP///7P/AMOnAACvJdq+utr/ACebAAAEi/v7gHL/APOPAACQZNOAsdP/AIXDAAB4VNON08f/AGu0AAAqTP///7P/AGOmAACvJdq+utr/AMeZAAAEi/v7gHL/AJOOAACQZNOAsdP/AHCHAAAWnP39tGL/ACXCAAB4VNON08f/AAuzAAAqTP///7P/AAOlAACvJdq+utr/AGeYAAAEi/v7gHL/ADONAACQZNOAsdP/ABCGAAAWnP39tGL/AFWAAAA6ht6z3mn/AMXAAAB4VNON08f/AKuxAAAqTP///7P/AKOjAACvJdq+utr/AAeXAAAEi/v7gHL/ANOLAACQZNOAsdP/ALCEAAAWnP39tGL/APV+AAA6ht6z3mn/AJB6AADpL/z8zeX/AIS/AAB4VNON08f/AGqwAAAqTP///7P/AGKiAACvJdq+utr/AMaVAAAEi/v7gHL/AJKKAACQZNOAsdP/AG+DAAAWnP39tGL/ALR9AAA6ht6z3mn/AE95AADpL/z8zeX/AD52AAAAANnZ2dn/ALDIAADt/Z6eAUL/AOnMAACxgqJeT6L/AJa5AAD6tNXVPk//AI6rAAAKuPT0bUP/AJKdAAAUnf39rmH/AP6QAAAfc/7+4Iv/AHuIAAAxYPXm9Zj/AGCBAABPQd2r3aT/AJt7AAByeMJmwqX/ACp3AACPu70yiL3/ADjIAADt/Z6eAUL/AGbMAACPu70yiL3/ABW+AACxgqJeT6L/AB65AAD6tNXVPk//ABarAAAKuPT0bUP/ABqdAAAUnf39rmH/AIaQAAAfc/7+4Iv/AAOIAAAqQP///7//AOiAAAAxYPXm9Zj/ACN7AABPQd2r3aT/ALJ2AAByeMJmwqX/AF7HAAANpPz8jVn/AES4AAAqQP///7//ADyqAABRTdWZ1ZT/AP7FAAD+4dfXGRz/AOS2AAAUnf39rmH/ANyoAABPQd2r3aT/AECcAACPxLorg7r/AJ7EAAD+4dfXGRz/AIS1AAAUnf39rmH/AHynAAAqQP///7//AOCaAABPQd2r3aT/AKyPAACPxLorg7r/AD7DAAD6tNXVPk//ACS0AAANpPz8jVn/ABymAAAfc/7+4Iv/AICZAAAxYPXm9Zj/AEyOAABRTdWZ1ZT/ACmHAACPu70yiL3/AN7BAAD6tNXVPk//AMSyAAANpPz8jVn/ALykAAAfc/7+4Iv/ACCYAAAqQP///7//AOyMAAAxYPXm9Zj/AMmFAABRTdWZ1ZT/AA6AAACPu70yiL3/AH7AAAD6tNXVPk//AGSxAAAKuPT0bUP/AFyjAAAUnf39rmH/AMCWAAAfc/7+4Iv/AIyLAAAxYPXm9Zj/AGmEAABPQd2r3aT/AK5+AAByeMJmwqX/AEl6AACPu70yiL3/AD2/AAD6tNXVPk//ACOwAAAKuPT0bUP/ABuiAAAUnf39rmH/AH+VAAAfc/7+4Iv/AEuKAAAqQP///7//ACiDAAAxYPXm9Zj/AG19AABPQd2r3aT/AAh5AAByeMJmwqX/APd1AACPu70yiL3/AFFLAACTD//w+P//ALVMAAAYI/r669f/ALVkAAB///8A////ACVPAABxgP9//9T/AE1OAAB/D//w////APFRAAAqGvX19dz/ADhJAAAXOv//5MT/AGs9AAAAAAAAAAD/AKlVAAAZMf//683/AGBLAACq//8AAP//AIURAADAzuKKK+L/AOYyAAAAvqWlKir/ACNVAAAXY97euIf/AGZKAACAZ6BfnqD/AFlNAAA///9//wD/ADZNAAAR2tLSaR7/AGU7AAALr///f1D/AHVKAACak+1kle3/ABY9AAAhIv//+Nz/ADQzAAD259zcFDz/AH03AAB///8A////APRKAACq/4sAAIv/AG83AAB//4sAi4v/AO5UAAAe77i4hgv/AG8IAAAAAKmpqan/AI02AABV/2QAZAD/AKQHAAAAAKmpqan/AH8+AAAnbr29t2v/AMlkAADU/4uLAIv/AMQ2AAA6jmtVay//ANVRAAAX////jAD/AIdXAADGwMyZMsz/AFZZAAAA/4uLAAD/ALQzAAAKeenplnr/ACY3AABVPbyPvI//AC9LAACvj4tIPYv/AJEIAAB/Z08vT0//AMYHAAB/Z08vT0//ABJOAACA/9EAztH/AHURAADH/9OUANP/ALY8AADo6///FJP/ABdKAACK//8Av///AGIIAAAAAGlpaWn/AJcHAAAAAGlpaWn/AIlKAACU4f8ekP//AE89AAAAzrKyIiL/AKRMAAAcD///+vD/AFA2AABVwIsiiyL/AI5lAADU////AP//ANwxAAAAANzc3Nz/AINMAACqB//4+P//AMxWAAAj////1wD/ABRVAAAe2drapSD/AMMIAAAAAICAgID/AE83AABV/4AAgAD/AJYKAAA70P+t/y//APgHAAAAAICAgID/AJ8LAABVD//w//D/AJo8AADplv//abT/AEdZAAAAjM3NXFz/ADoyAADC/4JLAIL/AH4GAAAqD/////D/AI4+AAAmavDw5oz/AN8fAACqFPrm5vr/AM0/AADwD///8PX/AH42AABA//x8/AD/AAI1AAAmMf//+s3/AFdKAACJP+at2Ob/AFU7AAAAd/DwgID/AGA3AAB/H//g////AKcKAAAqKPr6+tL/AFMIAAAAANPT09P/AGE2AABVZO6Q7pD/AIgHAAAAANPT09P/AKc8AAD4Sf//tsH/AKMzAAAMhP//oHr/AP82AAB90bIgsqr/AAVKAACPdfqHzvr/AH0IAACUOJl3iJn/ALIHAACUOJl3iJn/AMJKAACXNN6wxN7/AIUKAAAqH////+D/AK1PAABV//8A/wD/ANg2AABVwM0yzTL/APo1AAAVFPr68Ob/ANpkAADU////AP//AJczAAAA/4CAAAD/AA9PAABxgM1mzar/ALJKAACq/80AAM3/AHVXAADMmNO6VdP/AHVQAAC3fNuTcNv/ABI3AABnqbM8s3H/ABpLAACwj+57aO7/AJw2AABv//oA+pr/AP1NAAB9p9FI0cz/ALJYAADk5MfHFYX/AEVKAACqxnAZGXD/AF85AABqCf/1//r/AJdNAAAEHv//5OH/ACo1AAAaSf//5LX/AJNMAAAZUf//3q3/AIwEAACq/4AAAID/AHlUAAAbF/399eb/AOJIAAAq/4CAgAD/AJ9kAAA4wI5rjiP/AOVRAAAb////pQD/AKlZAAAL////RQD/AJdXAADWe9racNb/AAFVAAAmSO7u6Kr/AOc2AABVZPuY+5j/ACVOAAB/Q+6v7u7/AMdYAADxfNvbcJP/ADAwAAAaKf//79X/AGNGAAAURv//2rn/ABgMAAAUsM3NhT//AM08AAD3P///wMv/ANk4AADURt3doN3/AJlKAACEO+aw4Ob/ANFQAADU/4CAAID/APNZAAAA////AAD/AKgyAAAAPby8j4//AOVKAACfteFBaeH/ANUyAAAR3IuLRRP/AMQzAAAEivr6gHL/ALcyAAATmvT0pGD/ADg3AABnqosui1f/ABg6AAAREP//9e7/AFRlAAANt6CgUi3/ALMeAAAAAMDAwMD/AChKAACLbOuHzuv/AEJLAACvj81qWs3/AKQIAACUOJBwgJD/ANkHAACUOJBwgJD/AFoKAAAABf//+vr/ALM2AABq//8A/3//ANZKAACSm7RGgrT/AJY3AAAYVNLStIz/APA7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AAA///9//wD/AKGtAAA//+527gD/ALifAAA//81mzQD/AAeTAAA//4tFiwD/ADtNAAAR2tLSaR7/AAm8AAAR2///fyT/AJatAAAR2+7udiH/AK2fAAAR2s3NZh3/APySAAAR3IuLRRP/AGo7AAALr///f1D/ABO7AAAHqf//clb/AK2sAAAGqe7ualD/AMyeAAAGqc3NW0X/ABuSAAAGqIuLPi//AHpKAACak+1kle3/ABs9AAAhIv//+Nz/ADi7AAAhIv//+Nz/ANKsAAAiI+7u6M3/APGeAAAiIs3NyLH/AECSAAAjIouLiHj/ADkzAAD259zcFDz/AII3AAB///8A////APi6AAB///8A////AJKsAAB//+4A7u7/ALGeAAB//80Azc3/AACSAAB//4sAi4v/APlKAACq/4sAAIv/AHQ3AAB//4sAi4v/APNUAAAe77i4hgv/AJG8AAAe8P//uQ//AA2uAAAe8O7urQ7/ACSgAAAe8M3NlQz/AHqTAAAe8IuLZQj/AHQIAAAAAKmpqan/AJI2AABV/2QAZAD/AKkHAAAAAKmpqan/AIQ+AAAnbr29t2v/AM5kAADU/4uLAIv/AMk2AAA6jmtVay//AMq6AAA6j//K/3D/AGSsAAA6j+687mj/AIOeAAA6j82izVr/ANKRAAA6j4tuiz3/ANpRAAAX////jAD/AGS8AAAV////fwD/APGtAAAV/+7udgD/AAigAAAV/83NZgD/AF6TAAAV/4uLRQD/AIxXAADGwMyZMsz/AL+8AADGwf+/Pv//ADuuAADGwO6yOu7/AFKgAADGwM2aMs3/AKiTAADGwItoIov/AFtZAAAA/4uLAAD/ALkzAAAKeenplnr/ACs3AABVPbyPvI//AOW6AABVPv/B/8H/AH+sAABVPu607rT/AJ6eAABVPs2bzZv/AO2RAABVPotpi2n/ADRLAACvj4tIPYv/AJYIAAB/Z08vT0//AC66AAB/aP+X////ANOrAAB/Z+6N7u7/AASeAAB/aM15zc3/AFiRAAB/aItSi4v/AMsHAAB/Z08vT0//ABdOAACA/9EAztH/AHoRAADH/9OUANP/ALs8AADo6///FJP/AC67AADo6///FJP/AMisAADo6+7uEon/AOeeAADo683NEHb/ADaSAADn7IuLClD/ABxKAACK//8Av///AJm7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AACfts06X83/AMuSAACft4snQIv/ANoyAAAR3IuLRRP/AMkzAAAEivr6gHL/AJi6AAAJlv//jGn/AEGsAAAJlu7ugmL/AGCeAAAJls3NcFT/AK+RAAAJlouLTDn/ALwyAAATmvT0pGD/AD03AABnqosui1f/AOm6AABnq/9U/5//AIOsAABnq+5O7pT/AKKeAABnq81DzYD/APGRAABnqosui1f/AB06AAAREP//9e7/AAm7AAAREP//9e7/AKOsAAASEe7u5d7/AMKeAAASEc3Nxb//ABGSAAASEIuLhoL/AFllAAANt6CgUi3/AAS9AAANuP//gkf/AICuAAANuO7ueUL/AJegAAANuM3NaDn/AO2TAAANuYuLRyb/ALgeAAAAAMDAwMD/AC1KAACLbOuHzuv/AJ27AACQeP+Hzv//ACqtAACQeO5+wO7/AEGfAACQeM1sps3/AJCSAACRd4tKcIv/AEdLAACvj81qWs3/AOO7AACvkP+Db///AHCtAACvkO56Z+7/AIefAACvkM1pWc3/ANaSAACvkItHPIv/AKkIAACUOJBwgJD/ADK6AACVOP/G4v//ANerAACVOO650+7/AAieAACUOc2fts3/AFyRAACVOItse4v/AN4HAACUOJBwgJD/AF8KAAAABf//+vr/AEG6AAAABf//+vr/AOarAAAABe7u6en/ABeeAAAABM3Nycn/AGuRAAAAA4uLiYn/ALg2AABq//8A/3//AL26AABq//8A/3//AFesAABq/+4A7nb/AHaeAABq/80AzWb/AMWRAABq/4sAi0X/ANtKAACSm7RGgrT/AM27AACSnP9juP//AFqtAACSnO5crO7/AHGfAACSnM1PlM3/AMCSAACTm4s2ZIv/AJs3AAAYVNLStIz/AP66AAAUsP//pU//AJisAAAUsO7umkn/ALeeAAAUsM3NhT//AAaSAAAUsIuLWiv/APU7AAB//4AAgID/AGdQAADUHdjYv9j/AE28AADUHv//4f//ANqtAADUHu7u0u7/APGfAADUHc3Ntc3/AEeTAADUHYuLe4v/AMoxAAAGuP//Y0f/AHi6AAAGuP//Y0f/ACGsAAAGuO7uXEL/AECeAAAGuM3NTzn/AI+RAAAGuYuLNib/ACMQAAAqAP////4AAD1OAAB7tuBA4ND/AC+8AACB//8A9f//ALytAACB/+4A5e7/ANOfAACB/80Axc3/ACKTAACB/4sAhov/AJoRAADUc+7ugu7/ANBYAADj19DQIJD/AM+8AADrwf//Ppb/AEuuAADrwO7uOoz/AGKgAADrwM3NMnj/ALiTAADrwIuLIlL/ALMIAAAAAICAgID/APY2AABV/4AAgAD/AOgHAAAAAICAgID/AIMzAAAA/4CAAAD/AJJQAADU/4CAAID/AHIUAAAbRPX13rP/AGe6AAAbRf//57r/ABCsAAAbRO7u2K7/ADSeAAAbRM3Nupb/AIiRAAAbQ4uLfmb/AMxMAAAAAP//////ALtRAAAAAPX19fX/ALsIAAAAAL6+vr7/AEY3AABV//8A/wD/APAHAAAAAL6+vr7/AI0zAADvubCwMGD/AMdQAADE3fCgIPD/AMYKAAAq/////wD/AEy6AAAq/////wD/APGrAAAq/+7u7gD/ACKeAAAq/83NzQD/AHaRAAAq/4uLiwD/ADI2AAA4wM2azTL/AEGwjQcLA7R7AgBBvo0HC4UIoED/////////////////////////////////////////////////////////////////////////////////////AAKqAkQDAAQABKoGOQZxAaoCqgIABIMEAAKqAgACOQIABAAEAAQABAAEAAQABAAEAAQABDkCOQKDBIMEgwSNA14HxwVWBVYFxwXjBHMExwXHBaoCHQPHBeMEHQfHBccFcwTHBVYFcwTjBMcFxwWNB8cFxwXjBKoCOQKqAsEDAASqAo0DAASNAwAEjQOqAgAEAAQ5AjkCAAQ5AjkGAAQABAAEAASqAh0DOQIABAAExwUABAAEjQPXA5oB1wNUBP///////////////////////////////////////////////////////////////////////////////////////wACqgJxBAAEAAQACKoGOQKqAqoCAASPBAACqgIAAjkCAAQABAAEAAQABAAEAAQABAAEAASqAqoCjwSPBI8EAARxB8cFVgXHBccFVgXjBDkGOQYdAwAEOQZWBY0HxwU5BuMEOQbHBXMEVgXHBccFAAjHBccFVgWqAjkCqgKmBAAEqgIABHMEjQNzBI0DqgIABHMEOQKqAnMEOQKqBnMEAARzBHMEjQMdA6oCcwQABMcFAAQABI0DJwPDAScDKQT///////////////////////////////////////////////////////////////////////////////////////8AAqoCXAMABAAEqgY5BrYBqgKqAgAEZgUAAqoCAAI5AgAEAAQABAAEAAQABAAEAAQABAAEqgKqAmYFZgVmBQAEXAfjBOMEVgXHBeME4wTHBccFqgKNA1YFcwSqBlYFxwXjBMcF4wQABHMExwXjBKoG4wRzBHMEHQM5Ah0DYAMABKoCAAQABI0DAASNAzkCAAQABDkCOQKNAzkCxwUABAAEAAQABB0DHQM5AgAEjQNWBY0DjQMdAzMDMwIzA1QE////////////////////////////////////////////////////////////////////////////////////////AAIdA3EEAAQABKoGOQY5AqoCqgIABI8EAAKqAgACOQIABAAEAAQABAAEAAQABAAEAAQABKoCqgKPBI8EjwQABKgGVgVWBVYFxwVWBVYFxwU5Bh0DAARWBeMEHQfHBccF4wTHBVYFcwTjBMcFVgUdB1YF4wTjBKoCOQKqAo8EAASqAgAEAASNAwAEjQOqAgAEcwQ5AjkCAAQ5AjkGcwQABAAEAAQdAx0DOQJzBI0DVgUABI0DHQPJAsMByQKPBP//3HsCAEHOlQcLhQigQP////////////////////////////////////////////////////////////////////////////////////85AjkC1wJzBHMEHQdWBYcBqgKqAh0DrAQ5AqoCOQI5AnMEcwRzBHMEcwRzBHMEcwRzBHMEOQI5AqwErASsBHMEHwhWBVYFxwXHBVYF4wQ5BscFOQIABFYFcwSqBscFOQZWBTkGxwVWBeMExwVWBY0HVgVWBeMEOQI5AjkCwQNzBKoCcwRzBAAEcwRzBDkCcwRzBMcBxwEABMcBqgZzBHMEcwRzBKoCAAQ5AnMEAATHBQAEAAQABKwCFAKsAqwE////////////////////////////////////////////////////////////////////////////////////////OQKqAssDcwRzBB0HxwXnAaoCqgIdA6wEOQKqAjkCOQJzBHMEcwRzBHMEcwRzBHMEcwRzBKoCqgKsBKwErATjBM0HxwXHBccFxwVWBeMEOQbHBTkCcwTHBeMEqgbHBTkGVgU5BscFVgXjBMcFVgWNB1YFVgXjBKoCOQKqAqwEcwSqAnME4wRzBOMEcwSqAuME4wQ5AjkCcwQ5Ah0H4wTjBOME4wQdA3MEqgLjBHMEOQZzBHMEAAQdAz0CHQOsBP///////////////////////////////////////////////////////////////////////////////////////zkCOQLXAnMEcwQdB1YFhwGqAqoCHQOsBDkCqgI5AjkCcwRzBHMEcwRzBHMEcwRzBHMEcwQ5AjkCrASsBKwEcwQfCFYFVgXHBccFVgXjBDkGxwU5AgAEVgVzBKoGxwU5BlYFOQbHBVYF4wTHBVYFjQdWBVYF4wQ5AjkCOQLBA3MEqgJzBHMEAARzBHMEOQJzBHMExwHHAQAExwGqBnMEcwRzBHMEqgIABDkCcwQABMcFAAQABAAErAIUAqwCrAT///////////////////////////////////////////////////////////////////////////////////////85AqoCywNzBHMEHQfHBecBqgKqAh0DrAQ5AqoCOQI5AnMEcwRzBHMEcwRzBHMEcwRzBHMEqgKqAqwErASsBOMEzQfHBccFxwXHBVYF4wQ5BscFOQJzBMcF4wSqBscFOQZWBTkGxwVWBeMExwVWBY0HVgVWBeMEqgI5AqoCrARzBKoCcwTjBHME4wRzBKoC4wTjBDkCOQJzBDkCHQfjBOME4wTjBB0DcwSqAuMEcwQ5BnMEcwQABB0DPQIdA6wE//8QfAIAQd6dBwuFCKBA/////////////////////////////////////////////////////////////////////////////////////80EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQT////////////////////////////////////////////////////////////////////////////////////////NBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0E////////////////////////////////////////////////////////////////////////////////////////zQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBP///////////////////////////////////////////////////////////////////////////////////////80EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQT//zh8AgBB7aUHC4YIQI9AAAD///////////////////////////////8CAf///////////////////////////////////////////////wIB5ACIAVgCWAKiA7UC3QA9AT0BwgFYAuQAqAHkABsBWAJYAlgCWAJYAlgCWAJYAlgCWALkAOQAWAJYAlgCuwGyA9kCpAKhAuYCRwIkAtYC+QIBAUQBcQIfAlcD5AL/AnkC/wKdAmcCWgLYArECTQSKAlQCTQI7ARsBOwFYAvQB9AESAkcCzwFHAhQCTQFKAjgC6ADsAPQBKAFYAzgCLAJHAkcCZgHhAV4BMQIDAkkDDQICAs8BYAEJAWABWAL//wAA////////////////////////////////DwH///////////////////////////////////////////////8PAfgAwAFYAlgCsQPWAvMAZgFmAcUBWAL4ALIB+AA5AVgCWAJYAlgCWAJYAlgCWAJYAlgC+AD4AFgCWAJYAssBtgPoArACqAL6AlUCMgLgAgUDGgFiAZkCMgJkA+wCEQOMAhEDrgJ3Am0C4gLJAlkEoAJqAl0CYgE5AWIBWAL0AfQBIwJYAtgBWAIeAmwBXAJJAv8AAwEYAj8BbQNJAkACWAJYAogB6AGAAUMCDwJVAyICDgLaAYcBIAGHAVgC//8AAP///////////////////////////////wIB////////////////////////////////////////////////AgHkAIgBWAJYAqIDtQLdAD0BPQHCAVgC5ACoAeQAGwFYAlgCWAJYAlgCWAJYAlgCWAJYAuQA5ABYAlgCWAK7AbID2QKkAqEC5gJHAiQC1gL5AgEBRAFxAh8CWAPjAv8CeQL/Ap0CZwJaAtgCsAJNBIoCVAJNAjsBGwE7AVgC9AH0ARICRwLPAUcCFAJNAUoCOALoAOwA9AEoAVgDOAIsAkcCRwJmAeEBXgExAgMCSQMNAgICzwFgAQkBYAFYAv//AAD///////////////////////////////8PAf///////////////////////////////////////////////w8B+ADAAVgCWAKxA9YC8wBmAWYBxQFYAvgAsgH4ADkBWAJYAlgCWAJYAlgCWAJYAlgCWAL4APgAWAJYAlgCywG2A+gCsAKoAvoCVQIyAuACBQMaAWIBmAIyAmUD6wIRA4wCEQOuAncCbQLiAskCWQSgAmoCXQJiATkBYgFYAvQB9AEjAlgC2AFYAh4CbAFcAkkC/wADARgCPwFtA0kCQAJYAlgCiAHoAYABQwIPAlUDIgIOAtoBhwEgAYcBWAL//0B8AgBB/q0HC4UIoED/////////////////////////////////////////////////////////////////////////////////////iwI1A64DtAYXBZoHPQYzAh8DHwMABLQGiwLjAosCsgIXBRcFFwUXBRcFFwUXBRcFFwUXBbICsgK0BrQGtAY/BAAIeQV9BZYFKQYOBZoEMwYEBlwCXAI/BXUE5wb8BUwG0wRMBo8FFAXjBNsFeQXpB3sF4wR7BR8DsgIfA7QGAAQABOcEFAVmBBQF7ATRAhQFEgU5AjkCogQ5AssHEgXlBBQFFAVKAysEIwMSBbwEiwa8BLwEMwQXBbICFwW0Bv///////////////////////////////////////////////////////////////////////////////////////8kCpgMrBLQGkQUECPoGcwKoA6gDLwS0BgoDUgMKA+wCkQWRBZEFkQWRBZEFkQWRBZEFkQUzAzMDtAa0BrQGpAQACDEGGQbfBaQGdwV3BZEGsgb6AvoCMwYZBfYHsgbNBt0FzQYpBsMFdQV/BjEG0wgrBssFzQWoA+wCqAO0BgAEAARmBboFvgS6BW0FewO6BbIFvgK+AlIFvgJWCLIFfwW6BboF8gPDBNMDsgU3BWQHKQU3BagEsgXsArIFtAb///////////////////////////////////////////////////////////////////////////////////////+LAjUDrgO0BhcFmgc9BjMCHwMfAwAEtAaLAuMCiwKyAhcFFwUXBRcFFwUXBRcFFwUXBRcFsgKyArQGtAa0Bj8EAAh5BX0FlgUpBg4FmgQzBgQGXAJcAj8FdQTnBvwFTAbTBEwGjwUUBeME2wV5BekHewXjBHsFHwOyAh8DtAYABAAE5wQUBWYEFAXsBNECFAUSBTkCOQKiBDkCywcSBeUEFAUUBUoDKwQjAxIFvASLBrwEvAQzBBcFsgIXBbQG////////////////////////////////////////////////////////////////////////////////////////yQKmAysEkQWRBQQI+gZzAqgDqAMvBLQGCgNSAwoD7AKRBZEFkQWRBZEFkQWRBZEFkQWRBTMDMwO0BrQGtAakBAAIMQYZBt8FpAZ3BXcFkQayBvoC+gIzBhkF9geyBs0G3QXNBikGwwV1BX8GMQbTCCsGywXNBagD7AKoA7QGAAQABGYFugW+BLoFbQV7A7oFsgW+Ar4CUgW+AlYIsgV/BboFugXyA8ME0wOyBTcFZAcpBTcFqASyBewCsgW0Bv//SHwCAEGOtgcLhQigQGYE////////////////////////////////AAD///////////////////////////////////////////////9mBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYE//9mBP///////////////////////////////wAA////////////////////////////////////////////////ZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBP//ZgT///////////////////////////////8AAP///////////////////////////////////////////////2YEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgT///////////////////////////////////////////////////////////////////////////////////////9mBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYE//9UfAIAQZ6+BwuFCKBA/////////////////////////////////////////////////////////////////////////////////////2kC8AKZAjIEMgTNBKYFRwHwAvAC8AIyBPAC8ALwAjIEMgQyBDIEMgQyBDIEMgQyBDIEMgTwAvACMgQyBDIE8AIqBrgEhwTJBOgESQQzBGkFPAU6AtADmwQNBK0FGwVkBXYEaAWoBNkDpQQwBbME0QZ0BJAEZwTwAtgC8AIyBDIEMgQ0BHUE9gN1BF0E9QIEBF8ESALvAgkEXAKkBl8ESwR1BHUEHAM9AywDXwTrA/QFAgTyA8wD8AIyBPACMgT///////////////////////////////////////////////////////////////////////////////////////9pAvAC7wKwBLAEeQWmBdYB8ALwAnUDsATwAvAC8AIfA7AEsASwBLAEsASwBLAEsASwBLAE8ALwArAEsASwBIEDKgYRBcME5QQkBY0EqwRfBXgFOgJDBPAEbAT2BVcFoAWyBKwF4wQXBOUEbAX5BBIHzgToBHsENwPYAjcDsASwBLAEQwSnBBgEpQSZBPUCBAS+BGMC7wJiBFwC4Aa5BIcEqQSsBGsDcgMsA7oEOARFBmsERQQ6BHgDsAR4A7AE////////////////////////////////////////////////////////////////////////////////////////aQLwApkCMgTZA80EpgVHAfAC8ALwAjIE8ALwAvACMgQyBDIEMgQyBDIEMgQyBDIEMgQyBPAC8AIyBDIEMgTwAioG4wSHBMkE6ARJBDMEaQU8BToC0AObBA0EFwYbBWQFWQRkBagE2QOlBDAFswTRBnQEkARnBPAC2ALwAjIEMgQyBDQEdQSuA3UETAQ2AwQEdQR0Au8CCQSQAqQGXwRLBHUEdQRVAz0DXAN0BOsD9AUCBPIDzAPwAjIE8AIyBP///////////////////////////////////////////////////////////////////////////////////////2kC8AIgA7AEsATcBaYFaQLwAvACdQOwBPAC8ALwAi0DsASwBLAEsASwBLAEsASwBLAEsATwAvACsASwBLAELQMqBukEuATnBA8FvwSvBGkFbQU6Av0DMwU6BEoGSAWeBasEKAb9BAMEewVLBXcFaQdBBXgF5ATiA9ID4gOwBLAEsAS+BL8E8QO/BGoESANIBH8EnQIaA1EEjwKkBn8EjwTKBMoEkwOsA4EDdQRrBDAGmwSDBEME4gOwBOIDsAT//2B8AgBBrsYHC4UIoED/////////////////////////////////////////////////////////////////////////////////////0AImA6wDjAYWBZwI0AUmAqIDogMWBYwG6QKiA+kCogMWBRYFFgUWBRYFFgUWBRYFFgUWBaIDogOMBowGjAZdBAAIeAV8BZYFKgYPBZkENAYDBl4DowOLBXQEvgb8BUwG0wRMBpAFeAXuBNsFeAXpB3sF7AR7BaIDogOiA4wGFgUWBc4E/AQrBPwExATQAvwEEAUyAsECvAQyAsgHEAXbBPwE/ARqAysEJwMQBbwEjAa8BLwENAQUBaIDFAWMBv///////////////////////////////////////////////////////////////////////////////////////7wCOAOzBPAGsAUtCuYGqAJZBFkEsAXwBuQC1wPkAoQFsAWwBbAFsAWwBbAFsAWwBbAFsAU4AzgD8AbwBvAG7wS2BzYGGAbKBaQGdwU0BX0GswZeBHEEKwYZBZUHxgbNBt0FzQZCBq8FdAV/BhwGBwkcBuUFiQVZBIQFWQTwBrAFsAVYBZgFtQSYBVAFYQOYBbMFvAI5A14FvAJ3CLMFfgWYBZgF+gO/BKUDswUzBdYHWgU1BcYEsAVZBLAF8Ab////////////////////////////////////////////////////////////////////////////////////////QAiYDrAOMBhYFnAjQBSYCogOiAxYFjAbpAqID6QKiAxYFFgUWBRYFFgUWBRYFFgUWBRYFogOiA4wGjAaMBl0EAAh2BXwFlgUgBg8FmQQ0BgMGXgOjA4sFdAS+BvwFTAbTBEwGkAV4Be4E2wV2BewHewXsBHsFogOiA6IDjAYWBRYFzgT8BCsE/ATEBNAC+QQQBTICwQKyBDICyQcQBdsE/AT8BGoDKwQnAxAFugSMBrwEugQ0BBQFogMUBYwG////////////////////////////////////////////////////////////////////////////////////////vAI4A7ME8AawBS0K5gaoAlkEWQSwBfAG5ALXA+QChAWwBbAFsAWwBbAFsAWwBbAFsAWwBTgDOAPwBvAG8AbvBLYHNgYYBsoFpAZ3BTQFfQazBl4EcQQrBhkFlQfGBs0G3QXNBkIGrwV0BX8GHAYHCRwG5QWJBVkEhAVZBPAGsAWwBVgFmAW1BJgFUAVhA5gFswW8AjkDXgW8AncIswV8BZgFmAX6A78EpQOzBTEF1gdaBTUFxgSwBVkEsAXwBv//aHwCAEG+zgcLhQigQP////////////////////////////////////////////////////////////////////////////////////8UAiMCNQMrBZMElgbXBcUBXgJeAmoEkwT2AZMCIQLwApMEkwSTBJMEkwSTBJMEkwSTBJMEIQIhApMEkwSTBG8DMQcQBS8FDAXVBXMEIQTTBecFOwIjAukEJwQ5BwgGOwbRBDsG8gRkBG0E0wXDBGgHngR7BJEEogLwAqICVgSWA54EcwTnBM8D5wR9BLYCYgTpBAYCBgIzBAYCcQfpBNUE5wTnBEQD0QPTAukEAgQ5BjEECAS+AwgDaAQIA5ME////////////////////////////////////////////////////////////////////////////////////////FAJKAscDKwWRBDUHAAYhArYCtgJcBJEEUgKTAkgCTgORBJEEkQSRBJEEkQSRBJEEkQSRBEgCUgKRBJEEkQTRAy0HhQVgBRkF7AV7BGQEywUfBqYCpgJQBYUEiweBBl4GBgVeBkgFaASiBAwGMwW8B1YF/gSiBKYCTgOmAkIESgPbBNUEEAUdBBAFugQZA4UEQgVxAnEC9gRxAtsHQgX0BBAFEAWiA/oDeQNCBY0E2QagBI0E5wMnA2gEJwORBP///////////////////////////////////////////////////////////////////////////////////////xQCEgIXAysFaARYBlwFvAFIAkgCagRoBOwBfwIGAs0CaARoBGgEaARoBGgEaARoBGgEaAQGAgYCaARoBGgEagPHBnEEyQSuBFQFFwTHA2oFbQUvAiMCdQTLA7IGngXDBYcEwwWNBAQE/ANoBWIE0QYnBAYEPwRKAs0CSgIjBCcDbwSFBJ4EmgOeBPIDgQICBJ4ECAIIAucDCAL6Bp4EfQSeBJ4EKwNtA5gCngSyA7wF0wOyA40DywJoBMsCaAT///////////////////////////////////////////////////////////////////////////////////////8UAkoCoAMrBWgE2QaqBQoCtgK2AlwEaAQ5ApMCSAJeA2gEaARoBGgEaARoBGgEaARoBGgESAJIAmgEaARoBKwD2QYGBfYE5QRqBVYEPwSFBZoFkwKmAucEJQQKBwoG1wWkBNcF3wQ9BD8EhwW4BCcH2QSDBEoEpgJeA6YCOQQzA28EwQTDBN0DwQR1BPwCVATVBGACYAKLBGACPQfVBK4EwwTBBF4DyQNIA9UEGQROBj8EJwSkA9cCaATXAmgE//9wfAIAQc7WBwuFCKBA/////////////////////////////////////////////////////////////////////////////////////+4BpgJLAyUF4QSKBq8FuQEAAwADxwMlBSgC/gIoAsAD6QRwA3gEagSFBDoEhwQFBMUEhwSAAoACJQUlBSUF1ANuB14FOwUjBf4FOgXLBM0FhQYeAyQEjgXUBGsHIwb0BeEE9AWdBX0E8wQNBlUFzgevBewE0AQAA8ADAAMlBSUFAAQIBHsEogOYBN4DmgITBKgEWAJWAkkESgIMB7oEUASSBHoERwN1A8MCmgT5A+YFCgTwA40DcQMAA3EDJQX///////////////////////////////////////////////////////////////////////////////////////8IAgMDFASgBSAFCQdlBicCkwOTA9sDoAWgAggDoALGA5wF6wMDBf8EMgXLBC8FbwRpBS8F8ALwAqAFoAWgBWMEvAcRBg8GuQWsBsUFXwV1Bk4HkQPDBIkGfAUwCLcGjwacBY8GYQYxBXkFqwYZBgMJeAbbBYQFkwPGA5MDoAWgBQAExAQqBUAETgWTBCUDnQRwBdQCxQIOBcECIAiFBRYFQwUwBSkEGgQuA2oFiQToBrQEfwQ0BAAEGgMABKAF////////////////////////////////////////////////////////////////////////////////////////7gGmAksDJQXhBIoGrwW5AQADAAPHAyUFKAL+AigCwAPpBHADeARqBIUEOgSHBPkDxQSHBBIDEgMlBSUFJQXUA24HXgU7BSMF/gU6BcsEzQWFBh4DJASOBdQEawcjBtgF4QTYBZ0FfQTzBA0GVQXOB68F7ATQBAADwAMAAyUFJQUABJUEbgShA5oExgOhApUEgARhAlQCOQRIAgkHuARMBKAEcQSxA3MDxwKaBE4ElAYCBHoEjQNxAwADcQMlBf///////////////////////////////////////////////////////////////////////////////////////wgCAwMUBKAFIAUJB2UGJwKTA5MD2wOgBaACCAOgAsYDnAXrAwMF/wQyBcsELwWIBGkFLwXwAvACoAWgBaAFYwS8BxEGEwa5BawGxQVfBXUGTgebA8MEiQZ8BUQIowaPBqYFjwZhBjkFeQWrBhkGAwlrBtsFhAWTA8YDkwOgBaAFAARIBTEFSQRNBXUEDAMyBWcF7QLrAiEF1gIECIUFFgVNBTMFRQQjBFYDewXmBHgHqwRbBSMEAAQaAwAEoAX//3h8AgBB3t4HC8gKoED/////////////////////////////////////////////////////////////////////////////////////zwGbAjUD/AMOBLgFdQXEAW0CbQL8A/wD/wFzAgUCFwMOBA4EDgQOBA4EDgQOBA4EDgQOBCQCJAL8A/wD/AO1AycHoQRaBEQE7AToA60DDAX8BAQCjQIoBF0D1wYqBUwFIgRiBVgErQPmAyIFigQeBycE5gO/A3QCFwN0AvwD/ANUAtUDNARiAzQE+wNxAsQDNATWAeoBowPWAWQGNAQ4BDQENATKAiEDrgI0BJ0DuAV3A58DKQOEAq8DhAL8A///AAD///////////////////////////////8AAP///////////////////////////////////////////////88BmwKCA/wDDgTVBaMF3gF+An4C/AP8AxACcwIjAnADDgQOBA4EDgQOBA4EDgQOBA4EDgQ1AjUC/AP8A/wDtQMwB9kEfAQ8BAsF5wOsAxkFDAUiAqYCYARiA/4GRQVpBUIEfQWBBMgD9gM5BbsEQAdoBCgE0wOZAnADmQL8A/wDZwLzA0sEWQNLBAcEiALLA0sE9wELAtcD9wGCBksETQRLBEsE2AIxA8YCSwTJA/YFrQPKAy4DwALNA8AC/AP////////////////////////////////////////////////////////////////////////////////////////PAZsCNQP8Aw4EuAV1BcQBbQJtAvwD/AP/AXMCBQIaAw4EDgQOBA4EDgQOBA4EDgQOBA4EJAIkAvwD/AP8A7UDJwehBFoELgTsBOgDrQMMBfwEBAKNAigEXQPXBigFPAUiBFAFWASeA+YDIgWKBB8HJwTmA78DdAITA3QC/AP8A1QCHQQdBFQDHQTSA3ECHQQdBNYB6gGjA9YBVAYdBBsEHQQdBL4CHQOuAh0EkQO4BXcDlAMpA4QCrwOEAvwD////////////////////////////////////////////////////////////////////////////////////////zwGbAoID/AMOBNUFowXeAX4CfgL8A/wDEAJzAiMCeQMOBA4EDgQOBA4EDgQOBA4EDgQOBDUCNQL8A/wD/AO1AzAH2QR8BCYECwXnA6wDGQUMBSICpgJgBGID/gZABVkF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AABTLwAAGCEAACY+AAC+AwAAu0sAAP0AAACkNQAApQAAAJA5AAD/AAAA82QAALYDAAAMPgAADSAAABA+AAAMIAAAxkMBAAgAAAADAAAAK0MAAG3SAAALAAAABgAAACoYAABZbAAAAgAAAAEAAAC4LwAAjHcAAAQAAAACAAAAX0YAAAAEAAADAAAABAAAAFJFAAB50gAABQAAAAUAAAC2RgAABAQAAAQAAAAHAAAAABgAAIo5AAAFAAAACQAAAIw5AAD+bwAABAAAAAoAAAByRgAAsP4BAAQAAAAMAAAAnjIAAAAAAQAAAdDR0tPU1dbX2NkAQdb9BwsJ8L8AAAAAAAABAEHo/QcLDWludmlzAABmaWxsZWQAQYD+BwsaDR0AAJlUAAC1OAAAtgsAANt7AAAFyQAAPJEAQcD+Bwt5//////////////////////////////////////////8AAAAAAAAABP7//4f+//8HAAAAAAAAAAD//3////9///////////N//v3//////3///////////w/g/////zH8////AAAAAAAAAP//////////////AQD4AwBB0P8HC0FA1///+/////9/f1T9/w8A/t////////////7f/////wMA////////nxn////PPwMAAAAAAAD+////fwL+////fwBBmoAIC7MB////BwcAAAAAAP7//wf+BwAAAAD+//////////98/38vAGAAAADg////////IwAAAP8DAAAA4J/5///9xQMAAACwAwADAOCH+f///W0DAAAAXgAAHADgr/v///3tIwAAAAABAAAA4J/5///9zSMAAACwAwAAAODHPdYYx78DAAAAAAAAAADg3/3///3vAwAAAAADAAAA4N/9///97wMAAABAAwAAAODf/f///f8DAAAAAAMAQeCBCAsZ/v////9/DQA/AAAAAAAAAJYl8P6ubA0gHwBBiIIICwb//v///wMAQbSCCAty/////z8A/////38A7doHAAAAAFABUDGCq2IsAAAAAEAAyYD1BwAAAAAIAQL/////////////////////////D///////////////A///Pz//////Pz//qv///z/////////fX9wfzw//H9wfAAAAAEBMAEGwgwgLAQcAQcCDCAsmgAAAAP4DAAD+////////////HwD+/////////////wfg/////x8AQYCECAsV//////////////////////////8/AEGghAgLFf//////////////////////////DwBBxYQIC8kCYP8H/v//h/7//wcAAAAAAACAAP//f////3//////AAAAAAAAAP//////////////AQD4AwADAAAAAAD//////////z8AAAADAAAAwNf///v/////f39U/f8PAP7f///////////+3/////97AP///////58Z////zz8DAAAAAAAA/v///38C/v///38A/v/7//+7FgD///8HBwAAAAAA/v//B///BwD/A////////////3z/f+///z3/A+7////////z/z8e/8//AADun/n///3F0585gLDP/wMA5If5///9bdOHOQBewP8fAO6v+////e3zvzsAAMH/AADun/n///3N8485wLDD/wAA7Mc91hjHv8PHPYAAgP8AAO7f/f///e/D3z1gAMP/AADs3/3///3vw989YEDD/wAA7N/9///9/8PPPYAAw/8AQaCHCAs4/v////9//wf/f/8DAAAAAJYl8P6ubP87Xz//AwAAAAAAAAAD/wOgwv/+////A/7/3w+//v8//gIAQfqHCAtn/x8CAAAAoAAAAP7/PgD+////////////H2b+/////////////3dgAAAAYQAAAGIAAABjAAAAZAAAAGUAAABmAAAAZwAAAGgAAABpAAAAagAAAGsAAABsAAAAbQAAAG4AAABvAAAAAQBB8YgICwUVCgAACQBBiIkIC+ABFRAMExweAw0fICEiIxsaERkZGRkZGRkZGRkWEgIOCw8cGBgYGBgYFhYWFhYWFhYWFhYWFhYWFhYWFhYUHAQcFhwYGBgYGBgWFhYWFhYWFhYWFhYWFhYWFhYWFhwkHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcFhwcHBwcHBwcHBwWHBocHBYcHBwcHBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWHBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYcFhYWFhYWFhYAQZCLCAsSAgMEBQYHCAAACQoLDA0ODxARAEGuiwgLBBITABQAQcCLCAsCFRYAQd6LCAtSAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBFwBBvIwICywBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBGABBkI0ICxIZAxobHB0eAAAfICEiIyQlEBEAQa6NCAsEEhMmFABBwI0ICwInFgBB3o0IC1IBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEXAEG8jggLLAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEYAEGQjwgLRWAAAABhAAAAYgAAAGMAAABkAAAAZQAAAGYAAABnAAAAaAAAAGkAAABqAAAAawAAAGwAAABtAAAAcAAAAHEAAAABAAAAAQBB4Y8ICwUVCgAAFQBB+I8IC9UBFRAMExweAw0fICEiIxsaERkZGRkZGRkZGRkWEgIOCw8cGBgYGBgYFhYWFhYWFhYWFhYWFhYWFhYWFhYUHAQcFhwYGBgYGBgWFhYWFhYWFhYWFhYWFhYWFhYWFhwkHBwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgcHBwcHAEHWkQgL2wEBAXIAAABzAAAAdAAAAHUAAAB2AAAAdAAAAHcAAAB4AAAAeQAAAAAAAAAYCQIAIwkCACwJAgAyCQIAOQkCAEIJAgBJU08tODg1OS0xAFVTLUFTQ0lJAFVURi04AFVURi0xNgBVVEYtMTZCRQBVVEYtMTZMRQAAAAAAACAEAgBsCQIA2AoCAEQMAgBEDAIAuA0CANgKAgBgAAAAYQAAAGIAAABjAAAAZAAAAGUAAABmAAAAZwAAAGgAAABpAAAAagAAAGsAAABsAAAAbQAAAHoAAABvAAAAAQAAAAEAQb2TCAsFFQoAAAkAQdSTCAtgFRAMExweAw0fICEiIxsaERkZGRkZGRkZGRkWEgIOCw8cGBgYGBgYFhYWFhYWFhYWFhYWFhYWFhYWFhYUHAQcFhwYGBgYGBgWFhYWFhYWFhYWFhYWFhYWFhYWFhwkHBwcAEHYlQgLRWAAAABhAAAAYgAAAGMAAABkAAAAZQAAAGYAAABnAAAAaAAAAGkAAABqAAAAawAAAGwAAABtAAAAcAAAAHEAAAABAAAAAQBBqZYICwUVCgAACQBBwJYIC9UBFRAMExweAw0fICEiIxsaERkZGRkZGRkZGRkWEgIOCw8cGBgYGBgYFhYWFhYWFhYWFhYWFhYWFhYWFhYUHAQcFhwYGBgYGBgWFhYWFhYWFhYWFhYWFhYWFhYWFhwkHBwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgcHBwcHAEGemAgLZwEBcgAAAHMAAAB0AAAAdQAAAHYAAAB0AAAAdwAAAHgAAAB5AAAAewAAAHwAAAB9AAAAfgAAAH8AAACAAAAAgQAAAIIAAACDAAAAhAAAAIUAAACGAAAAhwAAAIgAAACJAAAAigAAAAIAQZWZCAsFFQoAAAkAQayZCAvgARUQDBMcHgMNHyAhIiMbGhEZGRkZGRkZGRkZFhICDgsPHBgYGBgYGBYWFhYWFhYWFhYWFhYWFhYWFhYWFBwEHBYcGBgYGBgYFhYWFhYWFhYWFhYWFhYWFhYWFhYcJBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBYcHBwcHBwcHBwcFhwaHBwWHBwcHBwWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhwWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWHBYWFhYWFhYWAEGwmwgLTkNEQVRBWwAAiwAAAIwAAACNAAAAjgAAAI8AAACQAAAAkQAAAJIAAACTAAAAlAAAAJUAAACWAAAAlwAAAJgAAACZAAAAmgAAAAIAAAAAAQBBiZwICwUVCgAACQBBoJwIC+ABFRAMExweAw0fICEiIxsaERkZGRkZGRkZGRkWEgIOCw8cGBgYGBgYFhYWFhYWFhYWFhYWFhYWFhYWFhYUHAQcFhwYGBgYGBgWFhYWFhYWFhYWFhYWFhYWFhYWFhwkHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcFhwcHBwcHBwcHBwWHBocHBYcHBwcHBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWHBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYcFhYWFhYWFhYAQaSeCAtpdmVyc2lvbgBlbmNvZGluZwBzdGFuZGFsb25lAHllcwBubwAAYAAAAGEAAABiAAAAYwAAAGQAAABlAAAAZgAAAGcAAABoAAAAaQAAAGoAAABrAAAAbAAAAG0AAABwAAAAcQAAAAEAAAABAEGZnwgLBRUKAAAVAEGwnwgL1QEVEAwTHB4DDR8gISIjGxoRGRkZGRkZGRkZGRcSAg4LDxwYGBgYGBgWFhYWFhYWFhYWFhYWFhYWFhYWFhQcBBwWHBgYGBgYGBYWFhYWFhYWFhYWFhYWFhYWFhYWHCQcHBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUGBgYGBgYGBgYGBgYGBgYGBwcHBwcAQY6hCAsjAQFyAAAAcwAAAHQAAAB1AAAAdgAAAHQAAAB3AAAAeAAAAHkAQcChCAtd3BACAEgSAgC0EwIAIBUCACAVAgCMFgIAtBMCAGAAAABhAAAAYgAAAGMAAABkAAAAZQAAAGYAAABnAAAAaAAAAGkAAABqAAAAawAAAGwAAABtAAAAbgAAAG8AAAABAEGtoggLBRUKAAAJAEHEoggL4AEVEAwTHB4DDR8gISIjGxoRGRkZGRkZGRkZGRcSAg4LDxwYGBgYGBgWFhYWFhYWFhYWFhYWFhYWFhYWFhQcBBwWHBgYGBgYGBYWFhYWFhYWFhYWFhYWFhYWFhYWHCQcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwWHBwcHBwcHBwcHBYcGhwcFhwcHBwcFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYcFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhwWFhYWFhYWFgBByKQIC0VgAAAAYQAAAGIAAABjAAAAZAAAAGUAAABmAAAAZwAAAGgAAABpAAAAagAAAGsAAABsAAAAbQAAAHoAAABvAAAAAQAAAAEAQZmlCAsFFQoAAAkAQbClCAtgFRAMExweAw0fICEiIxsaERkZGRkZGRkZGRkXEgIOCw8cGBgYGBgYFhYWFhYWFhYWFhYWFhYWFhYWFhYUHAQcFhwYGBgYGBgWFhYWFhYWFhYWFhYWFhYWFhYWFhwkHBwcAEG0pwgLRWAAAABhAAAAYgAAAGMAAABkAAAAZQAAAGYAAABnAAAAaAAAAGkAAABqAAAAawAAAGwAAABtAAAAcAAAAHEAAAABAAAAAQBBhagICwUVCgAACQBBnKgIC9UBFRAMExweAw0fICEiIxsaERkZGRkZGRkZGRkXEgIOCw8cGBgYGBgYFhYWFhYWFhYWFhYWFhYWFhYWFhYUHAQcFhwYGBgYGBgWFhYWFhYWFhYWFhYWFhYWFhYWFhwkHBwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBgYGBgYGBgYGBgYGBgYGBgcHBwcHAEH6qQgLZwEBcgAAAHMAAAB0AAAAdQAAAHYAAAB0AAAAdwAAAHgAAAB5AAAAewAAAHwAAAB9AAAAfgAAAH8AAACAAAAAgQAAAIIAAACDAAAAhAAAAIUAAACGAAAAhwAAAIgAAACJAAAAigAAAAIAQfGqCAsFFQoAAAkAQYirCAvgARUQDBMcHgMNHyAhIiMbGhEZGRkZGRkZGRkZFxICDgsPHBgYGBgYGBYWFhYWFhYWFhYWFhYWFhYWFhYWFBwEHBYcGBgYGBgYFhYWFhYWFhYWFhYWFhYWFhYWFhYcJBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBYcHBwcHBwcHBwcFhwaHBwWHBwcHBwWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhwWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWHBYWFhYWFhYWAEGMrQgLRosAAACMAAAAjQAAAI4AAACPAAAAkAAAAJEAAACSAAAAkwAAAJQAAACVAAAAlgAAAJcAAACYAAAAmQAAAJoAAAACAAAAAAEAQd2tCAsFFQoAAAkAQfStCAvgARUQDBMcHgMNHyAhIiMbGhEZGRkZGRkZGRkZFxICDgsPHBgYGBgYGBYWFhYWFhYWFhYWFhYWFhYWFhYWFBwEHBYcGBgYGBgYFhYWFhYWFhYWFhYWFhYWFhYWFhYcJBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBYcHBwcHBwcHBwcFhwaHBwWHBwcHBwWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhwWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWHBYWFhYWFhYWAEH4rwgLyAMCAAAAAwAAAAQAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAIAAAABAAAAAgAAAAMAAAAEAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAERPQ1RZUEUAU1lTVEVNAFBVQkxJQwBFTlRJVFkAQVRUTElTVABFTEVNRU5UAE5PVEFUSU9OAElOQ0xVREUASUdOT1JFAE5EQVRBAAAAAAAAMBkCADYZAgA5GQIAPxkCANYYAgBGGQIATxkCAFcZAgBDREFUQQBJRABJRFJFRgBJRFJFRlMARU5USVRJRVMATk1UT0tFTgBOTVRPS0VOUwBJTVBMSUVEAFJFUVVJUkVEAEZJWEVEAEVNUFRZAEFOWQBQQ0RBVEEAIwBDREFUQQBJRABJRFJFRgBJRFJFRlMARU5USVRZAEVOVElUSUVTAE5NVE9LRU4ATk1UT0tFTlMAQdCzCAskaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlAEGAtAgL6AtodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLwAAAHhtbD1odHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UAAAAAiQYAAP0dAABlVQAAXtYAAB42AAD4HgAAcEUAADlMAABSEAAA2VMAAJQFAAAqVAAA2wQAADQgAADABAAAD0wAAGUFAAAlRAAAfhMAAEc0AAD8UwAA7E4AAAAOAAAVBQAA/hMAAPkyAADKCQAAsAkAAO8EAABcWgAAO1oAAKNXAADmWwAA0VsAABRYAAC3WgAAOQUAAAxQAAC4WQAAWRoAADkQAABjWQAAz1oAACRYAADvygAAS70AAMeuAADeoAAANJQAAAeJAADrgQAAMHwAAMt3AACvdAAAU3IAAB9yAADqcQAArnEAAB9xAAAxcAAA3MoAADi9AAC0rgAAy6AAACGUAAD0iAAA2IEAAB18AAC4dwAAnHQAAE5yAAAacgAA5XEAAKlxAAAacQAALHAAAMnKAAAlvQAAoa4AALigAAAOlAAA4YgAAMWBAAAKfAAApXcAAIl0AABJcgAAFXIAAOBxAACkcQAAFXEAACdwAADEygAAIL0AAJyuAACzoAAACZQAANyIAADAgQAABXwAAKB3AACEdAAARHIAABByAADbcQAAn3EAABBxAAAicAAAv8oAABu9AACXrgAArqAAAASUAADXiAAAu4EAAAB8AACbdwAAf3QAAD9yAAALcgAA1nEAAJpxAAALcQAAHXAAALrKAAAWvQAAkq4AAKmgAAD/kwAA0ogAALaBAAD7ewAAlncAAHp0AAA6cgAABnIAANFxAACVcQAA/3AAABhwAAC1ygAAEb0AAI2uAACkoAAA+pMAAM2IAACxgQAA9nsAAJF3AAB1dAAANXIAAAFyAADMcQAAenEAAPpwAAATcAAAsMoAAAy9AACIrgAAn6AAAPWTAADIiAAArIEAAPF7AACHdwAAcHQAADByAAD8cQAAx3EAAHVxAAD1cAAA+W8AAKrKAAA9ugAA4qsAABOeAABnkQAAv4gAAKiBAADtewAAbncAANMVAAA8OAAA9HEAALhxAADAIAAAQHAAAOtvAAD7ywAAsr0AAC6vAABFoQAAopQAAG6JAABSggAAl3wAADJ4AAAhdQAAWHIAACRyAADvcQAAs3EAACRxAAA7cAAAHOwAAIvoAAAb5gAAiBkCABPbAAAR2wAAD9sAAA3bAACs2gAAZtoAAInSAACH0gAAhdIAAILSAABr0gAAx9EAAL/RAABfygAAH7oAAMSrAADenQAASZEAALGIAACagQAA33sAAGB3AABidAAAiXMAAEFzAAA/cwAANXMAAF9yAABdcgAAW3IAAC5yAADycQAAtnEAACdxAAA+cAAA6W8AAG1vAABJbwAAIW8AAB9vAAAcbwAAY2wAAE1sAAAcbAAAGmwAAAlsAAAHbAAAZWsAAElrAACwagAArmoAAKxqAACqagAAKmgAAAFoAAD/ZwAA5GcAAOJnAABPZgAATWYAAOtlAADpZQAAr2QAAC9kAAASXQAAmVQAAIRHAADHRQAArUIAAL8+AAAcPgAACj4AAEo8AABsOQAAtTgAAKYyAAB5MQAAFSEAANEgAAANHQAA1BUAAIgMAAAEDAAAtgsAACcKAABJCQAAeQQAAEQEAAA7BAAALwQAAAkEAAA2cAAAAAAAAAgArv/RAAoArv+u/wsArv+u/67/rv+u/67/rv+u/wUA0QCu/9EA0QDRANEA0QDRANEA0QCu//v/rv8OAOz/rv+u/67/rv/RANEA0QDRANEADQAlAAwAQgAQAFAAEwBtAHsAFACYAA8ApgDDAK7/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/xcArv93AK7/BwAuAK7/JgCu/xcAEQAjAK7/DQCu/67/rv+u/zoArv+u/zUArv+u/67/KACu/wcArv87AEUArv9IAK7/rv+u/67/rv8AQfG/CAvBBgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygAAAAAAAAAAAICAgICAhAMWQEAH1AIAwcSExRXFhcIC2kMHwoFDA4pESsPLRAvMCAyBjQ1GxwdHgsMISIjJCUmJygMGBkXBAobHBogKgohIiMkJSYnKAwKDlMKLFgxWFhYWFhYDBscDy5YMyEiIyQlJicoGxz/U///ISIj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cm1hdGlvbgBJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBNdWx0aWhvcCBhdHRlbXB0ZWQAUmVxdWlyZWQga2V5IG5vdCBhdmFpbGFibGUAS2V5IGhhcyBleHBpcmVkAEtleSBoYXMgYmVlbiByZXZva2VkAEtleSB3YXMgcmVqZWN0ZWQgYnkgc2VydmljZQAAAAAApQJbAPABtQWMBSUBgwYdA5QE/wDHAzEDCwa8AY8BfwPKBCsA2gavAEIDTgPcAQ4EFQChBg0BlAILAjgGZAK8Av8CXQPnBAsHzwLLBe8F2wXhAh4GRQKFAIICbANvBPEA8wMYBdkA2gNMBlQCewGdA70EAABRABUCuwCzA20A/wGFBC8F+QQ4AGUBRgGfALcGqAFzAlMBAEGIjQkLDCEEAAAAAAAAAAAvAgBBqI0JCwY1BEcEVgQAQb6NCQsCoAQAQdKNCQsiRgVgBW4FYQYAAM8BAAAAAAAAAADJBukG+QYeBzkHSQdeBwBBgI4JC5EB0XSeAFedvSqAcFIP//8+JwoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFGAAAADUAAABxAAAAa////877//+Sv///AAAAAAAAAAAZAAsAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkACgoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQBBoY8JCyEOAAAAAAAAAAAZAAsNGRkZAA0AAAIACQ4AAAAJAA4AAA4AQduPCQsBDABB548JCxUTAAAAABMAAAAACQwAAAAAAAwAAAwAQZWQCQsBEABBoZAJCxUPAAAABA8AAAAACRAAAAAAABAAABAAQc+QCQsBEgBB25AJCx4RAAAAABEAAAAACRIAAAAAABIAABIAABoAAAAaGhoAQZKRCQsOGgAAABoaGgAAAAAAAAkAQcORCQsBFABBz5EJCxUXAAAAABcAAAAACRQAAAAAABQAABQAQf2RCQsBFgBBiZIJCycVAAAAABUAAAAACRYAAAAAABYAABYAADAxMjM0NTY3ODlBQkNERUYAQdSSCQsCAwIAQfySCQsI//////////8AQcCTCQv1CP////////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAECBAcDBgUAAAAAAAAAAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADAFAAAwBUAAMAWAADAFwAAwBgAAMAZAADAGgAAwBsAAMAcAADAHQAAwB4AAMAfAADAAAAAswEAAMMCAADDAwAAwwQAAMMFAADDBgAAwwcAAMMIAADDCQAAwwoAAMMLAADDDAAAww0AANMOAADDDwAAwwAADLsBAAzDAgAMwwMADMMEAAzbAAAAAIRMAgAFAgAABgIAAAcCAAAIAgAACQIAAAoCAAALAgAADAIAAA0CAAAOAgAADwIAABACAAARAgAAEgIAAAQAAAAAAAAAwEwCABMCAAAUAgAA/P////z////ATAIAFQIAABYCAADoSwIA/EsCAAAAAAAITQIAFwIAABgCAAAHAgAACAIAABkCAAAaAgAACwIAAAwCAAANAgAAGwIAAA8CAAAcAgAAEQIAAB0CAAD4dwIAWEwCABxOAgBOU3QzX18yOWJhc2ljX2lvc0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQAAANB3AgCMTAIATlN0M19fMjE1YmFzaWNfc3RyZWFtYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAAAAAFR4AgDYTAIAAAAAAAEAAABMTAIAA/T//05TdDNfXzIxM2Jhc2ljX29zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUAAPh3AgAUTQIAhEwCAE5TdDNfXzIxNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAAAAOAAAAAAAAAC4TQIAHgIAAB8CAADI////yP///7hNAgAgAgAAIQIAAGRNAgCcTQIAsE0CAHhNAgA4AAAAAAAAAMBMAgATAgAAFAIAAMj////I////wEwCABUC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ABUAAABURgAAAAAAAKZeAADqSQAA2GUAQbz+CQseREkAABEAAABURgAAAAAAAKZeAAAXVwAA/G4AANZWAEHk/gkLOhoAAABORgAA1lYAAAAAAAATXwAA/G4AANZWAAAAAAAApl4AABsAAABORgAA1lYAAKZeAABMXwAA/G4AQaj/CQsepl4AABkAAABORgAAAAAAAKZeAADzNwAA/G4AANI3AEHQ/wkLBhgAAABORgBB4P8JCwoJVwAAb04AANZWAEH0/wkLOh4AAABORgAA1lYAAAAAAAD/XgAAb04AANZWAAAAAAAApl4AAB8AAABORgAA1lYAAKZeAAA8XwAAb04AQbiACgsepl4AAB0AAABORgAAAAAAAKZeAADkNwAAb04AANI3AEHggAoLBhwAAABORgBB8IAKCwZ7OQAAezkAQYSBCgsGIAAAAE8GAEGUgQoLCvFWAABJGgAA1lYAQaiBCgs6AgAAAE5GAADWVgAAAAAAAO5eAABJGgAA1lYAAAAAAACmXgAAAwAAAE5GAADWVgAApl4AAC9fAABJGgBB7IEKCxqmXgAAAQAAAE5GAAAAAAAApl4AANg3AABJGgBBmIIKCwJORgBBpIIKCyrBXgAA324AAPA4AAAAAAAApl4AACEAAABORgAAAAAAAKZeAAARFwAAFRcAQdyCCgsGIgAAAE8GAEHsggoLWQgAAAAEAAAAAAAAADgAAAAKAAAAOQAAAAgAAAD/////AAAAAAAAAAAKAAAAAAAAAAgAAAD/////AAAAAAAAAAA6AAAAAAAAAAgAAAD/////AAAAAAAAAAA7AEHYgwoLAQQAQYCECgu3CDwAAABAAAAAQQAAAEIAAABDAAAARAAAAD4AAABAAAAAQQAAAEUAAAAAAAAARgAAADwAAABAAAAAQQAAAEIAAABDAAAARAAAAD0AAABHAAAASAAAAEkAAABKAAAASwAAAD8AAABMAAAAQQAAAE0AAAAAAAAATgAAADwAAABAAAAAQQAAAE8AAABDAAAARAAAAGIJAAAAggIAgIYCAAAAAADENAAAAIICALCGAgAAAAAAhU0AAACCAgDghgIAAAAAAEM7AAAAggIA4IYCAAAAAAB+UQAAAIICABCHAgAAAAAABhAAABiCAgAQhwIAAAAAAEFFAAAAggIAUIcCAAAAAABeUQAAAIICAICHAgAA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";return Q}var tA;function OA(Q){if(Q==tA&&E)return new Uint8Array(E);var m=h(Q);if(m)return m;throw"both async and sync fetching of the wasm failed"}function gA(Q){return Promise.resolve().then(()=>OA(Q))}function zA(Q,m,v){return gA(Q).then(p=>WebAssembly.instantiate(p,m)).then(v,p=>{B(`failed to asynchronously prepare wasm: ${p}`),JA(p)})}function xA(Q,m,v,p){return zA(m,v,p)}function Me(){return{a:fn}}function LA(){var Q=Me();function m(p,F){return Te=p.exports,w=Te.y,j(),lA(Te.z),BA(),Te}UA();function v(p){m(p.instance)}return tA??=KA(),xA(E,tA,Q,v).catch(o),{}}function cA(Q){return i.agerrMessages.push(Se(Q)),0}function Gt(Q){this.name="ExitStatus",this.message=`Program terminated with exit(${Q})`,this.status=Q}var ct=Q=>{Q.forEach(m=>m(i))};function oe(Q,m="i8"){switch(m.endsWith("*")&&(m="*"),m){case"i1":return R[Q];case"i8":return R[Q];case"i16":return G[Q>>1];case"i32":return J[Q>>2];case"i64":return O[Q>>3];case"float":return K[Q>>2];case"double":return V[Q>>3];case"*":return z[Q>>2];default:JA(`invalid type for getValue: ${m}`)}}var Dt=Q=>mi(Q),_e=()=>Ko(),Re=typeof TextDecoder<"u"?new TextDecoder:void 0,St=(Q,m=0,v=NaN)=>{for(var p=m+v,F=m;Q[F]&&!(F>=p);)++F;if(F-m>16&&Q.buffer&&Re)return Re.decode(Q.subarray(m,F));for(var U="";m>10,56320|ee&1023)}}return U},Se=(Q,m)=>Q?St(D,Q,m):"",Wt=(Q,m,v,p)=>{JA(`Assertion failed: ${Se(Q)}, at: `+[m?Se(m):"unknown filename",v,p?Se(p):"unknown function"])};class L{constructor(m){this.excPtr=m,this.ptr=m-24}set_type(m){z[this.ptr+4>>2]=m}get_type(){return z[this.ptr+4>>2]}set_destructor(m){z[this.ptr+8>>2]=m}get_destructor(){return z[this.ptr+8>>2]}set_caught(m){m=m?1:0,R[this.ptr+12]=m}get_caught(){return R[this.ptr+12]!=0}set_rethrown(m){m=m?1:0,R[this.ptr+13]=m}get_rethrown(){return R[this.ptr+13]!=0}init(m,v){this.set_adjusted_ptr(0),this.set_type(m),this.set_destructor(v)}set_adjusted_ptr(m){z[this.ptr+16>>2]=m}get_adjusted_ptr(){return z[this.ptr+16>>2]}}var T=0,P=(Q,m,v)=>{var p=new L(Q);throw p.init(m,v),T=Q,T},X={isAbs:Q=>Q.charAt(0)==="/",splitPath:Q=>{var m=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return m.exec(Q).slice(1)},normalizeArray:(Q,m)=>{for(var v=0,p=Q.length-1;p>=0;p--){var F=Q[p];F==="."?Q.splice(p,1):F===".."?(Q.splice(p,1),v++):v&&(Q.splice(p,1),v--)}if(m)for(;v;v--)Q.unshift("..");return Q},normalize:Q=>{var m=X.isAbs(Q),v=Q.substr(-1)==="/";return Q=X.normalizeArray(Q.split("/").filter(p=>!!p),!m).join("/"),!Q&&!m&&(Q="."),Q&&v&&(Q+="/"),(m?"/":"")+Q},dirname:Q=>{var m=X.splitPath(Q),v=m[0],p=m[1];return!v&&!p?".":(p&&(p=p.substr(0,p.length-1)),v+p)},basename:Q=>{if(Q==="/")return"/";Q=X.normalize(Q),Q=Q.replace(/\/$/,"");var m=Q.lastIndexOf("/");return m===-1?Q:Q.substr(m+1)},join:(...Q)=>X.normalize(Q.join("/")),join2:(Q,m)=>X.normalize(Q+"/"+m)},kA=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return Q=>crypto.getRandomValues(Q);JA("initRandomDevice")},le=Q=>(le=kA())(Q),Ee={resolve:(...Q)=>{for(var m="",v=!1,p=Q.length-1;p>=-1&&!v;p--){var F=p>=0?Q[p]:b.cwd();if(typeof F!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!F)return"";m=F+"/"+m,v=X.isAbs(F)}return m=X.normalizeArray(m.split("/").filter(U=>!!U),!v).join("/"),(v?"/":"")+m||"."},relative:(Q,m)=>{Q=Ee.resolve(Q).substr(1),m=Ee.resolve(m).substr(1);function v(ee){for(var ne=0;ne=0&&ee[Pe]==="";Pe--);return ne>Pe?[]:ee.slice(ne,Pe-ne+1)}for(var p=v(Q.split("/")),F=v(m.split("/")),U=Math.min(p.length,F.length),q=U,Z=0;Z{for(var m=0,v=0;v=55296&&p<=57343?(m+=4,++v):m+=3}return m},Ct=(Q,m,v,p)=>{if(!(p>0))return 0;for(var F=v,U=v+p-1,q=0;q=55296&&Z<=57343){var RA=Q.charCodeAt(++q);Z=65536+((Z&1023)<<10)|RA&1023}if(Z<=127){if(v>=U)break;m[v++]=Z}else if(Z<=2047){if(v+1>=U)break;m[v++]=192|Z>>6,m[v++]=128|Z&63}else if(Z<=65535){if(v+2>=U)break;m[v++]=224|Z>>12,m[v++]=128|Z>>6&63,m[v++]=128|Z&63}else{if(v+3>=U)break;m[v++]=240|Z>>18,m[v++]=128|Z>>12&63,m[v++]=128|Z>>6&63,m[v++]=128|Z&63}}return m[v]=0,v-F};function $e(Q,m,v){var p=v>0?v:MA(Q)+1,F=new Array(p),U=Ct(Q,F,0,F.length);return m&&(F.length=U),F}var XA=()=>{if(!NA.length){var Q=null;if(typeof window<"u"&&typeof window.prompt=="function"&&(Q=window.prompt("Input: "),Q!==null&&(Q+=` -`)),!Q)return null;NA=$e(Q,!0)}return NA.shift()},ot={ttys:[],init(){},shutdown(){},register(Q,m){ot.ttys[Q]={input:[],output:[],ops:m},b.registerDevice(Q,ot.stream_ops)},stream_ops:{open(Q){var m=ot.ttys[Q.node.rdev];if(!m)throw new b.ErrnoError(43);Q.tty=m,Q.seekable=!1},close(Q){Q.tty.ops.fsync(Q.tty)},fsync(Q){Q.tty.ops.fsync(Q.tty)},read(Q,m,v,p,F){if(!Q.tty||!Q.tty.ops.get_char)throw new b.ErrnoError(60);for(var U=0,q=0;q0&&(d(St(Q.output)),Q.output=[])},ioctl_tcgets(Q){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(Q,m,v){return 0},ioctl_tiocgwinsz(Q){return[24,80]}},default_tty1_ops:{put_char(Q,m){m===null||m===10?(B(St(Q.output)),Q.output=[]):m!=0&&Q.output.push(m)},fsync(Q){Q.output&&Q.output.length>0&&(B(St(Q.output)),Q.output=[])}}},Si=(Q,m)=>{D.fill(0,Q,Q+m)},Zi=(Q,m)=>Math.ceil(Q/m)*m,Oi=Q=>{Q=Zi(Q,65536);var m=Qi(65536,Q);return m&&Si(m,Q),m},Le={ops_table:null,mount(Q){return Le.createNode(null,"/",16895,0)},createNode(Q,m,v,p){if(b.isBlkdev(v)||b.isFIFO(v))throw new b.ErrnoError(63);Le.ops_table||={dir:{node:{getattr:Le.node_ops.getattr,setattr:Le.node_ops.setattr,lookup:Le.node_ops.lookup,mknod:Le.node_ops.mknod,rename:Le.node_ops.rename,unlink:Le.node_ops.unlink,rmdir:Le.node_ops.rmdir,readdir:Le.node_ops.readdir,symlink:Le.node_ops.symlink},stream:{llseek:Le.stream_ops.llseek}},file:{node:{getattr:Le.node_ops.getattr,setattr:Le.node_ops.setattr},stream:{llseek:Le.stream_ops.llseek,read:Le.stream_ops.read,write:Le.stream_ops.write,allocate:Le.stream_ops.allocate,mmap:Le.stream_ops.mmap,msync:Le.stream_ops.msync}},link:{node:{getattr:Le.node_ops.getattr,setattr:Le.node_ops.setattr,readlink:Le.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Le.node_ops.getattr,setattr:Le.node_ops.setattr},stream:b.chrdev_stream_ops}};var F=b.createNode(Q,m,v,p);return b.isDir(F.mode)?(F.node_ops=Le.ops_table.dir.node,F.stream_ops=Le.ops_table.dir.stream,F.contents={}):b.isFile(F.mode)?(F.node_ops=Le.ops_table.file.node,F.stream_ops=Le.ops_table.file.stream,F.usedBytes=0,F.contents=null):b.isLink(F.mode)?(F.node_ops=Le.ops_table.link.node,F.stream_ops=Le.ops_table.link.stream):b.isChrdev(F.mode)&&(F.node_ops=Le.ops_table.chrdev.node,F.stream_ops=Le.ops_table.chrdev.stream),F.timestamp=Date.now(),Q&&(Q.contents[m]=F,Q.timestamp=F.timestamp),F},getFileDataAsTypedArray(Q){return Q.contents?Q.contents.subarray?Q.contents.subarray(0,Q.usedBytes):new Uint8Array(Q.contents):new Uint8Array(0)},expandFileStorage(Q,m){var v=Q.contents?Q.contents.length:0;if(!(v>=m)){var p=1024*1024;m=Math.max(m,v*(v>>0),v!=0&&(m=Math.max(m,256));var F=Q.contents;Q.contents=new Uint8Array(m),Q.usedBytes>0&&Q.contents.set(F.subarray(0,Q.usedBytes),0)}},resizeFileStorage(Q,m){if(Q.usedBytes!=m)if(m==0)Q.contents=null,Q.usedBytes=0;else{var v=Q.contents;Q.contents=new Uint8Array(m),v&&Q.contents.set(v.subarray(0,Math.min(m,Q.usedBytes))),Q.usedBytes=m}},node_ops:{getattr(Q){var m={};return m.dev=b.isChrdev(Q.mode)?Q.id:1,m.ino=Q.id,m.mode=Q.mode,m.nlink=1,m.uid=0,m.gid=0,m.rdev=Q.rdev,b.isDir(Q.mode)?m.size=4096:b.isFile(Q.mode)?m.size=Q.usedBytes:b.isLink(Q.mode)?m.size=Q.link.length:m.size=0,m.atime=new Date(Q.timestamp),m.mtime=new Date(Q.timestamp),m.ctime=new Date(Q.timestamp),m.blksize=4096,m.blocks=Math.ceil(m.size/m.blksize),m},setattr(Q,m){m.mode!==void 0&&(Q.mode=m.mode),m.timestamp!==void 0&&(Q.timestamp=m.timestamp),m.size!==void 0&&Le.resizeFileStorage(Q,m.size)},lookup(Q,m){throw b.genericErrors[44]},mknod(Q,m,v,p){return Le.createNode(Q,m,v,p)},rename(Q,m,v){if(b.isDir(Q.mode)){var p;try{p=b.lookupNode(m,v)}catch{}if(p)for(var F in p.contents)throw new b.ErrnoError(55)}delete Q.parent.contents[Q.name],Q.parent.timestamp=Date.now(),Q.name=v,m.contents[v]=Q,m.timestamp=Q.parent.timestamp},unlink(Q,m){delete Q.contents[m],Q.timestamp=Date.now()},rmdir(Q,m){var v=b.lookupNode(Q,m);for(var p in v.contents)throw new b.ErrnoError(55);delete Q.contents[m],Q.timestamp=Date.now()},readdir(Q){var m=[".",".."];for(var v of Object.keys(Q.contents))m.push(v);return m},symlink(Q,m,v){var p=Le.createNode(Q,m,41471,0);return p.link=v,p},readlink(Q){if(!b.isLink(Q.mode))throw new b.ErrnoError(28);return Q.link}},stream_ops:{read(Q,m,v,p,F){var U=Q.node.contents;if(F>=Q.node.usedBytes)return 0;var q=Math.min(Q.node.usedBytes-F,p);if(q>8&&U.subarray)m.set(U.subarray(F,F+q),v);else for(var Z=0;Z0||v+m{var F=p?"":`al ${Q}`;I(Q).then(U=>{m(new Uint8Array(U)),F&&BA()},U=>{if(v)v();else throw`Loading data file "${Q}" failed.`}),F&&UA()},fi=(Q,m,v,p,F,U)=>{b.createDataFile(Q,m,v,p,F,U)},Ht=[],Rt=(Q,m,v,p)=>{typeof Browser<"u"&&Browser.init();var F=!1;return Ht.forEach(U=>{F||U.canHandle(m)&&(U.handle(Q,m,v,p),F=!0)}),F},Bi=(Q,m,v,p,F,U,q,Z,RA,ee)=>{var ne=m?Ee.resolve(X.join2(Q,m)):Q;function Pe(Oe){function ve(Ne){ee?.(),Z||fi(Q,m,Ne,p,F,RA),U?.(),BA()}Rt(Oe,ne,ve,()=>{q?.(),BA()})||ve(Oe)}UA(),typeof v=="string"?zi(v,Pe,q):Pe(v)},Mi=Q=>{var m={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},v=m[Q];if(typeof v>"u")throw new Error(`Unknown file open mode: ${Q}`);return v},Jt=(Q,m)=>{var v=0;return Q&&(v|=365),m&&(v|=146),v},b={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class{constructor(Q){this.name="ErrnoError",this.errno=Q}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(Q){this.node=Q}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(Q){this.shared.flags=Q}get position(){return this.shared.position}set position(Q){this.shared.position=Q}},FSNode:class{constructor(Q,m,v,p){Q||(Q=this),this.parent=Q,this.mount=Q.mount,this.mounted=null,this.id=b.nextInode++,this.name=m,this.mode=v,this.node_ops={},this.stream_ops={},this.rdev=p,this.readMode=365,this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(Q){Q?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(Q){Q?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return b.isDir(this.mode)}get isDevice(){return b.isChrdev(this.mode)}},lookupPath(Q,m={}){if(Q=Ee.resolve(Q),!Q)return{path:"",node:null};var v={follow_mount:!0,recurse_count:0};if(m=Object.assign(v,m),m.recurse_count>8)throw new b.ErrnoError(32);for(var p=Q.split("/").filter(Pe=>!!Pe),F=b.root,U="/",q=0;q40)throw new b.ErrnoError(32)}}return{path:U,node:F}},getPath(Q){for(var m;;){if(b.isRoot(Q)){var v=Q.mount.mountpoint;return m?v[v.length-1]!=="/"?`${v}/${m}`:v+m:v}m=m?`${Q.name}/${m}`:Q.name,Q=Q.parent}},hashName(Q,m){for(var v=0,p=0;p>>0)%b.nameTable.length},hashAddNode(Q){var m=b.hashName(Q.parent.id,Q.name);Q.name_next=b.nameTable[m],b.nameTable[m]=Q},hashRemoveNode(Q){var m=b.hashName(Q.parent.id,Q.name);if(b.nameTable[m]===Q)b.nameTable[m]=Q.name_next;else for(var v=b.nameTable[m];v;){if(v.name_next===Q){v.name_next=Q.name_next;break}v=v.name_next}},lookupNode(Q,m){var v=b.mayLookup(Q);if(v)throw new b.ErrnoError(v);for(var p=b.hashName(Q.id,m),F=b.nameTable[p];F;F=F.name_next){var U=F.name;if(F.parent.id===Q.id&&U===m)return F}return b.lookup(Q,m)},createNode(Q,m,v,p){var F=new b.FSNode(Q,m,v,p);return b.hashAddNode(F),F},destroyNode(Q){b.hashRemoveNode(Q)},isRoot(Q){return Q===Q.parent},isMountpoint(Q){return!!Q.mounted},isFile(Q){return(Q&61440)===32768},isDir(Q){return(Q&61440)===16384},isLink(Q){return(Q&61440)===40960},isChrdev(Q){return(Q&61440)===8192},isBlkdev(Q){return(Q&61440)===24576},isFIFO(Q){return(Q&61440)===4096},isSocket(Q){return(Q&49152)===49152},flagsToPermissionString(Q){var m=["r","w","rw"][Q&3];return Q&512&&(m+="w"),m},nodePermissions(Q,m){return b.ignorePermissions?0:m.includes("r")&&!(Q.mode&292)||m.includes("w")&&!(Q.mode&146)||m.includes("x")&&!(Q.mode&73)?2:0},mayLookup(Q){if(!b.isDir(Q.mode))return 54;var m=b.nodePermissions(Q,"x");return m||(Q.node_ops.lookup?0:2)},mayCreate(Q,m){try{var v=b.lookupNode(Q,m);return 20}catch{}return b.nodePermissions(Q,"wx")},mayDelete(Q,m,v){var p;try{p=b.lookupNode(Q,m)}catch(U){return U.errno}var F=b.nodePermissions(Q,"wx");if(F)return F;if(v){if(!b.isDir(p.mode))return 54;if(b.isRoot(p)||b.getPath(p)===b.cwd())return 10}else if(b.isDir(p.mode))return 31;return 0},mayOpen(Q,m){return Q?b.isLink(Q.mode)?32:b.isDir(Q.mode)&&(b.flagsToPermissionString(m)!=="r"||m&512)?31:b.nodePermissions(Q,b.flagsToPermissionString(m)):44},MAX_OPEN_FDS:4096,nextfd(){for(var Q=0;Q<=b.MAX_OPEN_FDS;Q++)if(!b.streams[Q])return Q;throw new b.ErrnoError(33)},getStreamChecked(Q){var m=b.getStream(Q);if(!m)throw new b.ErrnoError(8);return m},getStream:Q=>b.streams[Q],createStream(Q,m=-1){return Q=Object.assign(new b.FSStream,Q),m==-1&&(m=b.nextfd()),Q.fd=m,b.streams[m]=Q,Q},closeStream(Q){b.streams[Q]=null},dupStream(Q,m=-1){var v=b.createStream(Q,m);return v.stream_ops?.dup?.(v),v},chrdev_stream_ops:{open(Q){var m=b.getDevice(Q.node.rdev);Q.stream_ops=m.stream_ops,Q.stream_ops.open?.(Q)},llseek(){throw new b.ErrnoError(70)}},major:Q=>Q>>8,minor:Q=>Q&255,makedev:(Q,m)=>Q<<8|m,registerDevice(Q,m){b.devices[Q]={stream_ops:m}},getDevice:Q=>b.devices[Q],getMounts(Q){for(var m=[],v=[Q];v.length;){var p=v.pop();m.push(p),v.push(...p.mounts)}return m},syncfs(Q,m){typeof Q=="function"&&(m=Q,Q=!1),b.syncFSRequests++,b.syncFSRequests>1&&B(`warning: ${b.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var v=b.getMounts(b.root.mount),p=0;function F(q){return b.syncFSRequests--,m(q)}function U(q){if(q)return U.errored?void 0:(U.errored=!0,F(q));++p>=v.length&&F(null)}v.forEach(q=>{if(!q.type.syncfs)return U(null);q.type.syncfs(q,Q,U)})},mount(Q,m,v){var p=v==="/",F=!v,U;if(p&&b.root)throw new b.ErrnoError(10);if(!p&&!F){var q=b.lookupPath(v,{follow_mount:!1});if(v=q.path,U=q.node,b.isMountpoint(U))throw new b.ErrnoError(10);if(!b.isDir(U.mode))throw new b.ErrnoError(54)}var Z={type:Q,opts:m,mountpoint:v,mounts:[]},RA=Q.mount(Z);return RA.mount=Z,Z.root=RA,p?b.root=RA:U&&(U.mounted=Z,U.mount&&U.mount.mounts.push(Z)),RA},unmount(Q){var m=b.lookupPath(Q,{follow_mount:!1});if(!b.isMountpoint(m.node))throw new b.ErrnoError(28);var v=m.node,p=v.mounted,F=b.getMounts(p);Object.keys(b.nameTable).forEach(q=>{for(var Z=b.nameTable[q];Z;){var RA=Z.name_next;F.includes(Z.mount)&&b.destroyNode(Z),Z=RA}}),v.mounted=null;var U=v.mount.mounts.indexOf(p);v.mount.mounts.splice(U,1)},lookup(Q,m){return Q.node_ops.lookup(Q,m)},mknod(Q,m,v){var p=b.lookupPath(Q,{parent:!0}),F=p.node,U=X.basename(Q);if(!U||U==="."||U==="..")throw new b.ErrnoError(28);var q=b.mayCreate(F,U);if(q)throw new b.ErrnoError(q);if(!F.node_ops.mknod)throw new b.ErrnoError(63);return F.node_ops.mknod(F,U,m,v)},create(Q,m){return m=m!==void 0?m:438,m&=4095,m|=32768,b.mknod(Q,m,0)},mkdir(Q,m){return m=m!==void 0?m:511,m&=1023,m|=16384,b.mknod(Q,m,0)},mkdirTree(Q,m){for(var v=Q.split("/"),p="",F=0;F"u"&&(v=m,m=438),m|=8192,b.mknod(Q,m,v)},symlink(Q,m){if(!Ee.resolve(Q))throw new b.ErrnoError(44);var v=b.lookupPath(m,{parent:!0}),p=v.node;if(!p)throw new b.ErrnoError(44);var F=X.basename(m),U=b.mayCreate(p,F);if(U)throw new b.ErrnoError(U);if(!p.node_ops.symlink)throw new b.ErrnoError(63);return p.node_ops.symlink(p,F,Q)},rename(Q,m){var v=X.dirname(Q),p=X.dirname(m),F=X.basename(Q),U=X.basename(m),q,Z,RA;if(q=b.lookupPath(Q,{parent:!0}),Z=q.node,q=b.lookupPath(m,{parent:!0}),RA=q.node,!Z||!RA)throw new b.ErrnoError(44);if(Z.mount!==RA.mount)throw new b.ErrnoError(75);var ee=b.lookupNode(Z,F),ne=Ee.relative(Q,p);if(ne.charAt(0)!==".")throw new b.ErrnoError(28);if(ne=Ee.relative(m,v),ne.charAt(0)!==".")throw new b.ErrnoError(55);var Pe;try{Pe=b.lookupNode(RA,U)}catch{}if(ee!==Pe){var Oe=b.isDir(ee.mode),ve=b.mayDelete(Z,F,Oe);if(ve)throw new b.ErrnoError(ve);if(ve=Pe?b.mayDelete(RA,U,Oe):b.mayCreate(RA,U),ve)throw new b.ErrnoError(ve);if(!Z.node_ops.rename)throw new b.ErrnoError(63);if(b.isMountpoint(ee)||Pe&&b.isMountpoint(Pe))throw new b.ErrnoError(10);if(RA!==Z&&(ve=b.nodePermissions(Z,"w"),ve))throw new b.ErrnoError(ve);b.hashRemoveNode(ee);try{Z.node_ops.rename(ee,RA,U),ee.parent=RA}catch(Ne){throw Ne}finally{b.hashAddNode(ee)}}},rmdir(Q){var m=b.lookupPath(Q,{parent:!0}),v=m.node,p=X.basename(Q),F=b.lookupNode(v,p),U=b.mayDelete(v,p,!0);if(U)throw new b.ErrnoError(U);if(!v.node_ops.rmdir)throw new b.ErrnoError(63);if(b.isMountpoint(F))throw new b.ErrnoError(10);v.node_ops.rmdir(v,p),b.destroyNode(F)},readdir(Q){var m=b.lookupPath(Q,{follow:!0}),v=m.node;if(!v.node_ops.readdir)throw new b.ErrnoError(54);return v.node_ops.readdir(v)},unlink(Q){var m=b.lookupPath(Q,{parent:!0}),v=m.node;if(!v)throw new b.ErrnoError(44);var p=X.basename(Q),F=b.lookupNode(v,p),U=b.mayDelete(v,p,!1);if(U)throw new b.ErrnoError(U);if(!v.node_ops.unlink)throw new b.ErrnoError(63);if(b.isMountpoint(F))throw new b.ErrnoError(10);v.node_ops.unlink(v,p),b.destroyNode(F)},readlink(Q){var m=b.lookupPath(Q),v=m.node;if(!v)throw new b.ErrnoError(44);if(!v.node_ops.readlink)throw new b.ErrnoError(28);return Ee.resolve(b.getPath(v.parent),v.node_ops.readlink(v))},stat(Q,m){var v=b.lookupPath(Q,{follow:!m}),p=v.node;if(!p)throw new b.ErrnoError(44);if(!p.node_ops.getattr)throw new b.ErrnoError(63);return p.node_ops.getattr(p)},lstat(Q){return b.stat(Q,!0)},chmod(Q,m,v){var p;if(typeof Q=="string"){var F=b.lookupPath(Q,{follow:!v});p=F.node}else p=Q;if(!p.node_ops.setattr)throw new b.ErrnoError(63);p.node_ops.setattr(p,{mode:m&4095|p.mode&-4096,timestamp:Date.now()})},lchmod(Q,m){b.chmod(Q,m,!0)},fchmod(Q,m){var v=b.getStreamChecked(Q);b.chmod(v.node,m)},chown(Q,m,v,p){var F;if(typeof Q=="string"){var U=b.lookupPath(Q,{follow:!p});F=U.node}else F=Q;if(!F.node_ops.setattr)throw new b.ErrnoError(63);F.node_ops.setattr(F,{timestamp:Date.now()})},lchown(Q,m,v){b.chown(Q,m,v,!0)},fchown(Q,m,v){var p=b.getStreamChecked(Q);b.chown(p.node,m,v)},truncate(Q,m){if(m<0)throw new b.ErrnoError(28);var v;if(typeof Q=="string"){var p=b.lookupPath(Q,{follow:!0});v=p.node}else v=Q;if(!v.node_ops.setattr)throw new b.ErrnoError(63);if(b.isDir(v.mode))throw new b.ErrnoError(31);if(!b.isFile(v.mode))throw new b.ErrnoError(28);var F=b.nodePermissions(v,"w");if(F)throw new b.ErrnoError(F);v.node_ops.setattr(v,{size:m,timestamp:Date.now()})},ftruncate(Q,m){var v=b.getStreamChecked(Q);if((v.flags&2097155)===0)throw new b.ErrnoError(28);b.truncate(v.node,m)},utime(Q,m,v){var p=b.lookupPath(Q,{follow:!0}),F=p.node;F.node_ops.setattr(F,{timestamp:Math.max(m,v)})},open(Q,m,v){if(Q==="")throw new b.ErrnoError(44);m=typeof m=="string"?Mi(m):m,m&64?(v=typeof v>"u"?438:v,v=v&4095|32768):v=0;var p;if(typeof Q=="object")p=Q;else{Q=X.normalize(Q);try{var F=b.lookupPath(Q,{follow:!(m&131072)});p=F.node}catch{}}var U=!1;if(m&64)if(p){if(m&128)throw new b.ErrnoError(20)}else p=b.mknod(Q,v,0),U=!0;if(!p)throw new b.ErrnoError(44);if(b.isChrdev(p.mode)&&(m&=-513),m&65536&&!b.isDir(p.mode))throw new b.ErrnoError(54);if(!U){var q=b.mayOpen(p,m);if(q)throw new b.ErrnoError(q)}m&512&&!U&&b.truncate(p,0),m&=-131713;var Z=b.createStream({node:p,path:b.getPath(p),flags:m,seekable:!0,position:0,stream_ops:p.stream_ops,ungotten:[],error:!1});return Z.stream_ops.open&&Z.stream_ops.open(Z),Z},close(Q){if(b.isClosed(Q))throw new b.ErrnoError(8);Q.getdents&&(Q.getdents=null);try{Q.stream_ops.close&&Q.stream_ops.close(Q)}catch(m){throw m}finally{b.closeStream(Q.fd)}Q.fd=null},isClosed(Q){return Q.fd===null},llseek(Q,m,v){if(b.isClosed(Q))throw new b.ErrnoError(8);if(!Q.seekable||!Q.stream_ops.llseek)throw new b.ErrnoError(70);if(v!=0&&v!=1&&v!=2)throw new b.ErrnoError(28);return Q.position=Q.stream_ops.llseek(Q,m,v),Q.ungotten=[],Q.position},read(Q,m,v,p,F){if(p<0||F<0)throw new b.ErrnoError(28);if(b.isClosed(Q))throw new b.ErrnoError(8);if((Q.flags&2097155)===1)throw new b.ErrnoError(8);if(b.isDir(Q.node.mode))throw new b.ErrnoError(31);if(!Q.stream_ops.read)throw new b.ErrnoError(28);var U=typeof F<"u";if(!U)F=Q.position;else if(!Q.seekable)throw new b.ErrnoError(70);var q=Q.stream_ops.read(Q,m,v,p,F);return U||(Q.position+=q),q},write(Q,m,v,p,F,U){if(p<0||F<0)throw new b.ErrnoError(28);if(b.isClosed(Q))throw new b.ErrnoError(8);if((Q.flags&2097155)===0)throw new b.ErrnoError(8);if(b.isDir(Q.node.mode))throw new b.ErrnoError(31);if(!Q.stream_ops.write)throw new b.ErrnoError(28);Q.seekable&&Q.flags&1024&&b.llseek(Q,0,2);var q=typeof F<"u";if(!q)F=Q.position;else if(!Q.seekable)throw new b.ErrnoError(70);var Z=Q.stream_ops.write(Q,m,v,p,F,U);return q||(Q.position+=Z),Z},allocate(Q,m,v){if(b.isClosed(Q))throw new b.ErrnoError(8);if(m<0||v<=0)throw new b.ErrnoError(28);if((Q.flags&2097155)===0)throw new b.ErrnoError(8);if(!b.isFile(Q.node.mode)&&!b.isDir(Q.node.mode))throw new b.ErrnoError(43);if(!Q.stream_ops.allocate)throw new b.ErrnoError(138);Q.stream_ops.allocate(Q,m,v)},mmap(Q,m,v,p,F){if((p&2)!==0&&(F&2)===0&&(Q.flags&2097155)!==2)throw new b.ErrnoError(2);if((Q.flags&2097155)===1)throw new b.ErrnoError(2);if(!Q.stream_ops.mmap)throw new b.ErrnoError(43);if(!m)throw new b.ErrnoError(28);return Q.stream_ops.mmap(Q,m,v,p,F)},msync(Q,m,v,p,F){return Q.stream_ops.msync?Q.stream_ops.msync(Q,m,v,p,F):0},ioctl(Q,m,v){if(!Q.stream_ops.ioctl)throw new b.ErrnoError(59);return Q.stream_ops.ioctl(Q,m,v)},readFile(Q,m={}){if(m.flags=m.flags||0,m.encoding=m.encoding||"binary",m.encoding!=="utf8"&&m.encoding!=="binary")throw new Error(`Invalid encoding type "${m.encoding}"`);var v,p=b.open(Q,m.flags),F=b.stat(Q),U=F.size,q=new Uint8Array(U);return b.read(p,q,0,U,0),m.encoding==="utf8"?v=St(q):m.encoding==="binary"&&(v=q),b.close(p),v},writeFile(Q,m,v={}){v.flags=v.flags||577;var p=b.open(Q,v.flags,v.mode);if(typeof m=="string"){var F=new Uint8Array(MA(m)+1),U=Ct(m,F,0,F.length);b.write(p,F,0,U,void 0,v.canOwn)}else if(ArrayBuffer.isView(m))b.write(p,m,0,m.byteLength,void 0,v.canOwn);else throw new Error("Unsupported data type");b.close(p)},cwd:()=>b.currentPath,chdir(Q){var m=b.lookupPath(Q,{follow:!0});if(m.node===null)throw new b.ErrnoError(44);if(!b.isDir(m.node.mode))throw new b.ErrnoError(54);var v=b.nodePermissions(m.node,"x");if(v)throw new b.ErrnoError(v);b.currentPath=m.path},createDefaultDirectories(){b.mkdir("/tmp"),b.mkdir("/home"),b.mkdir("/home/web_user")},createDefaultDevices(){b.mkdir("/dev"),b.registerDevice(b.makedev(1,3),{read:()=>0,write:(p,F,U,q,Z)=>q}),b.mkdev("/dev/null",b.makedev(1,3)),ot.register(b.makedev(5,0),ot.default_tty_ops),ot.register(b.makedev(6,0),ot.default_tty1_ops),b.mkdev("/dev/tty",b.makedev(5,0)),b.mkdev("/dev/tty1",b.makedev(6,0));var Q=new Uint8Array(1024),m=0,v=()=>(m===0&&(m=le(Q).byteLength),Q[--m]);b.createDevice("/dev","random",v),b.createDevice("/dev","urandom",v),b.mkdir("/dev/shm"),b.mkdir("/dev/shm/tmp")},createSpecialDirectories(){b.mkdir("/proc");var Q=b.mkdir("/proc/self");b.mkdir("/proc/self/fd"),b.mount({mount(){var m=b.createNode(Q,"fd",16895,73);return m.node_ops={lookup(v,p){var F=+p,U=b.getStreamChecked(F),q={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>U.path}};return q.parent=q,q}},m}},{},"/proc/self/fd")},createStandardStreams(Q,m,v){Q?b.createDevice("/dev","stdin",Q):b.symlink("/dev/tty","/dev/stdin"),m?b.createDevice("/dev","stdout",null,m):b.symlink("/dev/tty","/dev/stdout"),v?b.createDevice("/dev","stderr",null,v):b.symlink("/dev/tty1","/dev/stderr"),b.open("/dev/stdin",0),b.open("/dev/stdout",1),b.open("/dev/stderr",1)},staticInit(){[44].forEach(Q=>{b.genericErrors[Q]=new b.ErrnoError(Q),b.genericErrors[Q].stack=""}),b.nameTable=new Array(4096),b.mount(Le,{},"/"),b.createDefaultDirectories(),b.createDefaultDevices(),b.createSpecialDirectories(),b.filesystems={MEMFS:Le}},init(Q,m,v){b.initialized=!0,b.createStandardStreams(Q,m,v)},quit(){b.initialized=!1;for(var Q=0;Qthis.length-1||ve<0)){var Ne=ve%this.chunkSize,Yi=ve/this.chunkSize|0;return this.getter(Yi)[Ne]}}setDataGetter(ve){this.getter=ve}cacheLength(){var ve=new XMLHttpRequest;if(ve.open("HEAD",v,!1),ve.send(null),!(ve.status>=200&&ve.status<300||ve.status===304))throw new Error("Couldn't load "+v+". Status: "+ve.status);var Ne=Number(ve.getResponseHeader("Content-length")),Yi,H=(Yi=ve.getResponseHeader("Accept-Ranges"))&&Yi==="bytes",rA=(Yi=ve.getResponseHeader("Content-Encoding"))&&Yi==="gzip",HA=1024*1024;H||(HA=Ne);var De=(Ie,dt)=>{if(Ie>dt)throw new Error("invalid range ("+Ie+", "+dt+") or no bytes requested!");if(dt>Ne-1)throw new Error("only "+Ne+" bytes available! programmer error!");var At=new XMLHttpRequest;if(At.open("GET",v,!1),Ne!==HA&&At.setRequestHeader("Range","bytes="+Ie+"-"+dt),At.responseType="arraybuffer",At.overrideMimeType&&At.overrideMimeType("text/plain; charset=x-user-defined"),At.send(null),!(At.status>=200&&At.status<300||At.status===304))throw new Error("Couldn't load "+v+". Status: "+At.status);return At.response!==void 0?new Uint8Array(At.response||[]):$e(At.responseText||"",!0)},fe=this;fe.setDataGetter(Ie=>{var dt=Ie*HA,At=(Ie+1)*HA-1;if(At=Math.min(At,Ne-1),typeof fe.chunks[Ie]>"u"&&(fe.chunks[Ie]=De(dt,At)),typeof fe.chunks[Ie]>"u")throw new Error("doXHR failed!");return fe.chunks[Ie]}),(rA||!Ne)&&(HA=Ne=1,Ne=this.getter(0).length,HA=Ne,d("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=Ne,this._chunkSize=HA,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var q,Z}else var Z={isDevice:!1,url:v};var RA=b.createFile(Q,m,Z,p,F);Z.contents?RA.contents=Z.contents:Z.url&&(RA.contents=null,RA.url=Z.url),Object.defineProperties(RA,{usedBytes:{get:function(){return this.contents.length}}});var ee={},ne=Object.keys(RA.stream_ops);ne.forEach(Oe=>{var ve=RA.stream_ops[Oe];ee[Oe]=(...Ne)=>(b.forceLoadFile(RA),ve(...Ne))});function Pe(Oe,ve,Ne,Yi,H){var rA=Oe.node.contents;if(H>=rA.length)return 0;var HA=Math.min(rA.length-H,Yi);if(rA.slice)for(var De=0;De(b.forceLoadFile(RA),Pe(Oe,ve,Ne,Yi,H)),ee.mmap=(Oe,ve,Ne,Yi,H)=>{b.forceLoadFile(RA);var rA=Oi(ve);if(!rA)throw new b.ErrnoError(48);return Pe(Oe,R,rA,ve,Ne),{ptr:rA,allocated:!0}},RA.stream_ops=ee,RA}},et={DEFAULT_POLLMASK:5,calculateAt(Q,m,v){if(X.isAbs(m))return m;var p;if(Q===-100)p=b.cwd();else{var F=et.getStreamFromFD(Q);p=F.path}if(m.length==0){if(!v)throw new b.ErrnoError(44);return p}return X.join2(p,m)},doStat(Q,m,v){var p=Q(m);J[v>>2]=p.dev,J[v+4>>2]=p.mode,z[v+8>>2]=p.nlink,J[v+12>>2]=p.uid,J[v+16>>2]=p.gid,J[v+20>>2]=p.rdev,O[v+24>>3]=BigInt(p.size),J[v+32>>2]=4096,J[v+36>>2]=p.blocks;var F=p.atime.getTime(),U=p.mtime.getTime(),q=p.ctime.getTime();return O[v+40>>3]=BigInt(Math.floor(F/1e3)),z[v+48>>2]=F%1e3*1e3*1e3,O[v+56>>3]=BigInt(Math.floor(U/1e3)),z[v+64>>2]=U%1e3*1e3*1e3,O[v+72>>3]=BigInt(Math.floor(q/1e3)),z[v+80>>2]=q%1e3*1e3*1e3,O[v+88>>3]=BigInt(p.ino),0},doMsync(Q,m,v,p,F){if(!b.isFile(m.node.mode))throw new b.ErrnoError(43);if(p&2)return 0;var U=D.slice(Q,Q+v);b.msync(m,U,F,v,p)},getStreamFromFD(Q){var m=b.getStreamChecked(Q);return m},varargs:void 0,getStr(Q){var m=Se(Q);return m}};function ai(Q,m,v,p){try{if(m=et.getStr(m),m=et.calculateAt(Q,m),v&-8)return-28;var F=b.lookupPath(m,{follow:!0}),U=F.node;if(!U)return-44;var q="";return v&4&&(q+="r"),v&2&&(q+="w"),v&1&&(q+="x"),q&&b.nodePermissions(U,q)?-2:0}catch(Z){if(typeof b>"u"||Z.name!=="ErrnoError")throw Z;return-Z.errno}}function Wi(){var Q=J[+et.varargs>>2];return et.varargs+=4,Q}var Xi=Wi;function xn(Q,m,v){et.varargs=v;try{var p=et.getStreamFromFD(Q);switch(m){case 0:{var F=Wi();if(F<0)return-28;for(;b.streams[F];)F++;var U;return U=b.dupStream(p,F),U.fd}case 1:case 2:return 0;case 3:return p.flags;case 4:{var F=Wi();return p.flags|=F,0}case 12:{var F=Xi(),q=0;return G[F+q>>1]=2,0}case 13:case 14:return 0}return-28}catch(Z){if(typeof b>"u"||Z.name!=="ErrnoError")throw Z;return-Z.errno}}function Mo(Q,m){try{var v=et.getStreamFromFD(Q);return et.doStat(b.stat,v.path,m)}catch(p){if(typeof b>"u"||p.name!=="ErrnoError")throw p;return-p.errno}}function vn(Q,m,v){et.varargs=v;try{var p=et.getStreamFromFD(Q);switch(m){case 21509:return p.tty?0:-59;case 21505:{if(!p.tty)return-59;if(p.tty.ops.ioctl_tcgets){var F=p.tty.ops.ioctl_tcgets(p),U=Xi();J[U>>2]=F.c_iflag||0,J[U+4>>2]=F.c_oflag||0,J[U+8>>2]=F.c_cflag||0,J[U+12>>2]=F.c_lflag||0;for(var q=0;q<32;q++)R[U+q+17]=F.c_cc[q]||0;return 0}return 0}case 21510:case 21511:case 21512:return p.tty?0:-59;case 21506:case 21507:case 21508:{if(!p.tty)return-59;if(p.tty.ops.ioctl_tcsets){for(var U=Xi(),Z=J[U>>2],RA=J[U+4>>2],ee=J[U+8>>2],ne=J[U+12>>2],Pe=[],q=0;q<32;q++)Pe.push(R[U+q+17]);return p.tty.ops.ioctl_tcsets(p.tty,m,{c_iflag:Z,c_oflag:RA,c_cflag:ee,c_lflag:ne,c_cc:Pe})}return 0}case 21519:{if(!p.tty)return-59;var U=Xi();return J[U>>2]=0,0}case 21520:return p.tty?-28:-59;case 21531:{var U=Xi();return b.ioctl(p,m,U)}case 21523:{if(!p.tty)return-59;if(p.tty.ops.ioctl_tiocgwinsz){var Oe=p.tty.ops.ioctl_tiocgwinsz(p.tty),U=Xi();G[U>>1]=Oe[0],G[U+2>>1]=Oe[1]}return 0}case 21524:return p.tty?0:-59;case 21515:return p.tty?0:-59;default:return-28}}catch(ve){if(typeof b>"u"||ve.name!=="ErrnoError")throw ve;return-ve.errno}}function In(Q,m,v,p){try{m=et.getStr(m);var F=p&256,U=p&4096;return p=p&-6401,m=et.calculateAt(Q,m,U),et.doStat(F?b.lstat:b.stat,m,v)}catch(q){if(typeof b>"u"||q.name!=="ErrnoError")throw q;return-q.errno}}function qo(Q,m,v,p){et.varargs=p;try{m=et.getStr(m),m=et.calculateAt(Q,m);var F=p?Wi():0;return b.open(m,v,F).fd}catch(U){if(typeof b>"u"||U.name!=="ErrnoError")throw U;return-U.errno}}function Vo(Q,m){try{return Q=et.getStr(Q),et.doStat(b.stat,Q,m)}catch(v){if(typeof b>"u"||v.name!=="ErrnoError")throw v;return-v.errno}}var uo=()=>{JA("")},Qn=Q=>Q%4===0&&(Q%100!==0||Q%400===0),Kn=[0,31,60,91,121,152,182,213,244,274,305,335],$A=[0,31,59,90,120,151,181,212,243,273,304,334],Ei=Q=>{var m=Qn(Q.getFullYear()),v=m?Kn:$A,p=v[Q.getMonth()]+Q.getDate()-1;return p},Ri=9007199254740992,un=-9007199254740992,Un=Q=>QRi?NaN:Number(Q);function Zo(Q,m){Q=Un(Q);var v=new Date(Q*1e3);J[m>>2]=v.getSeconds(),J[m+4>>2]=v.getMinutes(),J[m+8>>2]=v.getHours(),J[m+12>>2]=v.getDate(),J[m+16>>2]=v.getMonth(),J[m+20>>2]=v.getFullYear()-1900,J[m+24>>2]=v.getDay();var p=Ei(v)|0;J[m+28>>2]=p,J[m+36>>2]=-(v.getTimezoneOffset()*60);var F=new Date(v.getFullYear(),0,1),U=new Date(v.getFullYear(),6,1).getTimezoneOffset(),q=F.getTimezoneOffset(),Z=(U!=q&&v.getTimezoneOffset()==Math.min(q,U))|0;J[m+32>>2]=Z}function Ci(Q,m,v,p,F,U,q){F=Un(F);try{if(isNaN(F))return 61;var Z=et.getStreamFromFD(p),RA=b.mmap(Z,Q,F,m,v),ee=RA.ptr;return J[U>>2]=RA.allocated,z[q>>2]=ee,0}catch(ne){if(typeof b>"u"||ne.name!=="ErrnoError")throw ne;return-ne.errno}}function io(Q,m,v,p,F,U){U=Un(U);try{var q=et.getStreamFromFD(F);v&2&&et.doMsync(Q,q,m,p,U)}catch(Z){if(typeof b>"u"||Z.name!=="ErrnoError")throw Z;return-Z.errno}}var Wo=(Q,m,v)=>Ct(Q,D,m,v),Xo=(Q,m,v,p)=>{var F=new Date().getFullYear(),U=new Date(F,0,1),q=new Date(F,6,1),Z=U.getTimezoneOffset(),RA=q.getTimezoneOffset(),ee=Math.max(Z,RA);z[Q>>2]=ee*60,J[m>>2]=+(Z!=RA);var ne=ve=>{var Ne=ve>=0?"-":"+",Yi=Math.abs(ve),H=String(Math.floor(Yi/60)).padStart(2,"0"),rA=String(Yi%60).padStart(2,"0");return`UTC${Ne}${H}${rA}`},Pe=ne(Z),Oe=ne(RA);RADate.now(),on=()=>2147483648,$i=Q=>{var m=w.buffer,v=(Q-m.byteLength+65535)/65536|0;try{return w.grow(v),j(),1}catch{}},yt=Q=>{var m=D.length;Q>>>=0;var v=on();if(Q>v)return!1;for(var p=1;p<=4;p*=2){var F=m*(1+.2/p);F=Math.min(F,Q+100663296);var U=Math.min(v,Zi(Math.max(Q,F),65536)),q=$i(U);if(q)return!0}return!1},hn={},hA=()=>a,Ae=()=>{if(!Ae.strings){var Q=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",m={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:Q,_:hA()};for(var v in hn)hn[v]===void 0?delete m[v]:m[v]=hn[v];var p=[];for(var v in m)p.push(`${v}=${m[v]}`);Ae.strings=p}return Ae.strings},re=(Q,m)=>{for(var v=0;v{var v=0;return Ae().forEach((p,F)=>{var U=m+v;z[Q+F*4>>2]=U,re(p,U),v+=p.length+1}),0},ue=(Q,m)=>{var v=Ae();z[Q>>2]=v.length;var p=0;return v.forEach(F=>p+=F.length+1),z[m>>2]=p,0},aA=Q=>{c(Q,new Gt(Q))},DA=(Q,m)=>{aA(Q)},PA=DA;function Je(Q){try{var m=et.getStreamFromFD(Q);return b.close(m),0}catch(v){if(typeof b>"u"||v.name!=="ErrnoError")throw v;return v.errno}}var vt=(Q,m,v,p)=>{for(var F=0,U=0;U>2],Z=z[m+4>>2];m+=8;var RA=b.read(Q,R,q,Z,p);if(RA<0)return-1;if(F+=RA,RA>2]=U,0}catch(q){if(typeof b>"u"||q.name!=="ErrnoError")throw q;return q.errno}}function rn(Q,m,v,p){m=Un(m);try{if(isNaN(m))return 61;var F=et.getStreamFromFD(Q);return b.llseek(F,m,v),O[p>>3]=BigInt(F.position),F.getdents&&m===0&&v===0&&(F.getdents=null),0}catch(U){if(typeof b>"u"||U.name!=="ErrnoError")throw U;return U.errno}}var no=(Q,m,v,p)=>{for(var F=0,U=0;U>2],Z=z[m+4>>2];m+=8;var RA=b.write(Q,R,q,Z,p);if(RA<0)return-1;if(F+=RA,RA>2]=U,0}catch(q){if(typeof b>"u"||q.name!=="ErrnoError")throw q;return q.errno}}var Ji=Q=>{var m=i["_"+Q];return m},bt=(Q,m)=>{R.set(Q,m)},Li=Q=>bn(Q),Mn=Q=>{var m=MA(Q)+1,v=Li(m);return Wo(Q,v,m),v},Qt=(Q,m,v,p,F)=>{var U={string:Ne=>{var Yi=0;return Ne!=null&&Ne!==0&&(Yi=Mn(Ne)),Yi},array:Ne=>{var Yi=Li(Ne.length);return bt(Ne,Yi),Yi}};function q(Ne){return m==="string"?Se(Ne):m==="boolean"?!!Ne:Ne}var Z=Ji(Q),RA=[],ee=0;if(p)for(var ne=0;ne(i._viz_set_y_invert=Te.A)(Q),i._viz_set_reduce=Q=>(i._viz_set_reduce=Te.B)(Q),i._viz_get_graphviz_version=()=>(i._viz_get_graphviz_version=Te.C)(),i._free=Q=>(i._free=Te.D)(Q),i._malloc=Q=>(i._malloc=Te.E)(Q),i._viz_get_plugin_list=Q=>(i._viz_get_plugin_list=Te.G)(Q),i._viz_create_graph=(Q,m,v)=>(i._viz_create_graph=Te.H)(Q,m,v),i._viz_read_one_graph=Q=>(i._viz_read_one_graph=Te.I)(Q),i._viz_string_dup=(Q,m)=>(i._viz_string_dup=Te.J)(Q,m),i._viz_string_dup_html=(Q,m)=>(i._viz_string_dup_html=Te.K)(Q,m),i._viz_string_free=(Q,m)=>(i._viz_string_free=Te.L)(Q,m),i._viz_string_free_html=(Q,m)=>(i._viz_string_free_html=Te.M)(Q,m),i._viz_add_node=(Q,m)=>(i._viz_add_node=Te.N)(Q,m),i._viz_add_edge=(Q,m,v)=>(i._viz_add_edge=Te.O)(Q,m,v),i._viz_add_subgraph=(Q,m)=>(i._viz_add_subgraph=Te.P)(Q,m),i._viz_set_default_graph_attribute=(Q,m,v)=>(i._viz_set_default_graph_attribute=Te.Q)(Q,m,v),i._viz_set_default_node_attribute=(Q,m,v)=>(i._viz_set_default_node_attribute=Te.R)(Q,m,v),i._viz_set_default_edge_attribute=(Q,m,v)=>(i._viz_set_default_edge_attribute=Te.S)(Q,m,v),i._viz_set_attribute=(Q,m,v)=>(i._viz_set_attribute=Te.T)(Q,m,v),i._viz_free_graph=Q=>(i._viz_free_graph=Te.U)(Q),i._viz_create_context=()=>(i._viz_create_context=Te.V)(),i._viz_free_context=Q=>(i._viz_free_context=Te.W)(Q),i._viz_layout=(Q,m,v)=>(i._viz_layout=Te.X)(Q,m,v),i._viz_free_layout=(Q,m)=>(i._viz_free_layout=Te.Y)(Q,m),i._viz_reset_errors=()=>(i._viz_reset_errors=Te.Z)(),i._viz_render=(Q,m,v)=>(i._viz_render=Te._)(Q,m,v);var Qi=(Q,m)=>(Qi=Te.$)(Q,m),mi=Q=>(mi=Te.aa)(Q),bn=Q=>(bn=Te.ba)(Q),Ko=()=>(Ko=Te.ca)();i.ccall=Qt,i.getValue=oe,i.PATH=X,i.UTF8ToString=Se,i.stringToUTF8=Wo,i.lengthBytesUTF8=MA,i.FS=b;var Ot,Nr;VA=function Q(){Ot||Jn(),Ot||(VA=Q)};function Jn(){if(wA>0||!Nr&&(Nr=1,IA(),wA>0))return;function Q(){Ot||(Ot=1,i.calledRun=1,!x&&(SA(),n(i),nA()))}Q()}return Jn(),A=r,A}})(),ygA=[[/^Error: (.*)/,"error"],[/^Warning: (.*)/,"warning"]];function LjA(t){return t.map(e=>{for(let A=0;A{if(typeof A.name!="string")throw new Error("image name must be a string");if(typeof A.width!="number"&&typeof A.width!="string")throw new Error("image width must be a number or string");if(typeof A.height!="number"&&typeof A.height!="string")throw new Error("image height must be a number or string");let i=t.PATH.join("/",A.name),n=` +`)}static{this.\u0275fac=function(i){return new(i||t)(be(fjA,8),be(fgA,8),be(mjA,8),be(pjA,8),be(El),be(mgA),be(ks,8),be(oc))}}static{this.\u0275prov=bA({token:t,factory:t.\u0275fac})}}return t})(),DgA=(()=>{class t{get disableSanitizer(){return this._disableSanitizer}set disableSanitizer(A){this._disableSanitizer=this.coerceBooleanProperty(A)}get inline(){return this._inline}set inline(A){this._inline=this.coerceBooleanProperty(A)}get clipboard(){return this._clipboard}set clipboard(A){this._clipboard=this.coerceBooleanProperty(A)}get emoji(){return this._emoji}set emoji(A){this._emoji=this.coerceBooleanProperty(A)}get katex(){return this._katex}set katex(A){this._katex=this.coerceBooleanProperty(A)}get mermaid(){return this._mermaid}set mermaid(A){this._mermaid=this.coerceBooleanProperty(A)}get lineHighlight(){return this._lineHighlight}set lineHighlight(A){this._lineHighlight=this.coerceBooleanProperty(A)}get lineNumbers(){return this._lineNumbers}set lineNumbers(A){this._lineNumbers=this.coerceBooleanProperty(A)}get commandLine(){return this._commandLine}set commandLine(A){this._commandLine=this.coerceBooleanProperty(A)}constructor(A,i,n){this.element=A,this.markdownService=i,this.viewContainerRef=n,this.error=new YA,this.load=new YA,this.ready=new YA,this._clipboard=!1,this._commandLine=!1,this._disableSanitizer=!1,this._emoji=!1,this._inline=!1,this._katex=!1,this._lineHighlight=!1,this._lineNumbers=!1,this._mermaid=!1,this.destroyed$=new qA}ngOnChanges(){this.loadContent()}loadContent(){if(this.data!=null){this.handleData();return}if(this.src!=null){this.handleSrc();return}}ngAfterViewInit(){!this.data&&!this.src&&this.handleTransclusion(),this.markdownService.reload$.pipe(kt(this.destroyed$)).subscribe(()=>this.loadContent())}ngOnDestroy(){this.destroyed$.next(),this.destroyed$.complete()}render(A,i=!1){return Ni(this,null,function*(){let n={decodeHtml:i,inline:this.inline,emoji:this.emoji,mermaid:this.mermaid,disableSanitizer:this.disableSanitizer},o={clipboard:this.clipboard,clipboardOptions:this.getClipboardOptions(),katex:this.katex,katexOptions:this.katexOptions,mermaid:this.mermaid,mermaidOptions:this.mermaidOptions},r=yield this.markdownService.parse(A,n);this.element.nativeElement.innerHTML=r,this.handlePlugins(),this.markdownService.render(this.element.nativeElement,o,this.viewContainerRef),this.ready.emit()})}coerceBooleanProperty(A){return A!=null&&`${String(A)}`!="false"}getClipboardOptions(){if(this.clipboardButtonComponent||this.clipboardButtonTemplate)return{buttonComponent:this.clipboardButtonComponent,buttonTemplate:this.clipboardButtonTemplate}}handleData(){this.render(this.data)}handleSrc(){this.markdownService.getSource(this.src).subscribe({next:A=>{this.render(A).then(()=>{this.load.emit(A)})},error:A=>this.error.emit(A)})}handleTransclusion(){this.render(this.element.nativeElement.innerHTML,!0)}handlePlugins(){this.commandLine&&(this.setPluginClass(this.element.nativeElement,QU.CommandLine),this.setPluginOptions(this.element.nativeElement,{dataFilterOutput:this.filterOutput,dataHost:this.host,dataPrompt:this.prompt,dataOutput:this.output,dataUser:this.user})),this.lineHighlight&&this.setPluginOptions(this.element.nativeElement,{dataLine:this.line,dataLineOffset:this.lineOffset}),this.lineNumbers&&(this.setPluginClass(this.element.nativeElement,QU.LineNumbers),this.setPluginOptions(this.element.nativeElement,{dataStart:this.start}))}setPluginClass(A,i){let n=A.querySelectorAll("pre");for(let o=0;o{let s=i[r];if(s){let a=this.toLispCase(r);n.item(o).setAttribute(a,s.toString())}})}toLispCase(A){let i=A.match(/([A-Z])/g);if(!i)return A;let n=A.toString();for(let o=0,r=i.length;o{let i=kjA(A)?Fe(sA({},A),{multi:!0}):{provide:fgA,useValue:A,multi:!0};return[...e,i]},[])}var wgA=(()=>{class t{static forRoot(A){return{ngModule:t,providers:[uU(A)]}}static forChild(){return{ngModule:t}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Ze({type:t})}static{this.\u0275inj=Ve({imports:[ug]})}}return t})();var LjA=(t,e)=>({"font-style":t,color:e}),P7=class t{text=bs("");thought=bs(!1);static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-markdown"]],inputs:{text:[1,"text"],thought:[1,"thought"]},features:[ut([uU()])],decls:1,vars:5,consts:[[3,"data","ngStyle"]],template:function(A,i){A&1&&TA(0,"markdown",0),A&2&&yA("data",i.text())("ngStyle",Bg(2,LjA,i.thought()?"italic":"normal",i.thought()?"#9aa0a6":"white"))},dependencies:[ug,Yb,wgA,DgA],encapsulation:2})};var j7=class t{constructor(e,A){this.http=e;this.zone=A}apiServerDomain=ds.getApiServerBaseUrl();_currentApp=new Fi("");currentApp=this._currentApp.asObservable();isLoading=new Fi(!1);getApp(){return this.currentApp}setApp(e){this._currentApp.next(e)}getLoadingState(){return this.isLoading}runSse(e){let A=this.apiServerDomain+"/run_sse";return this.isLoading.next(!0),new gt(i=>{let n=this;fetch(A,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify(e)}).then(o=>{let r=o.body?.getReader(),s=new TextDecoder("utf-8"),a="",c=()=>{r?.read().then(({done:g,value:I})=>{if(this.isLoading.next(!0),g)return this.isLoading.next(!1),i.complete();let C=s.decode(I,{stream:!0});a+=C;try{a.split(/\r?\n/).filter(B=>B.startsWith("data:")).forEach(B=>{let E=B.replace(/^data:\s*/,""),u=JSON.parse(E);n.zone.run(()=>i.next(u))}),a=""}catch(d){d instanceof SyntaxError&&c()}c()}).catch(g=>{n.zone.run(()=>i.error(g))})};c()}).catch(o=>{n.zone.run(()=>i.error(o))})})}listApps(){if(this.apiServerDomain!=null){let e=this.apiServerDomain+"/list-apps?relative_path=./";return this.http.get(e)}return new gt}static \u0275fac=function(A){return new(A||t)(be(ks),be(ye))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var q7=class t{constructor(e){this.http=e}apiServerDomain=ds.getApiServerBaseUrl();getLatestArtifact(e,A,i,n){let o=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}/artifacts/${n}`;return this.http.get(o)}getArtifactVersion(e,A,i,n,o){let r=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}/artifacts/${n}/versions/${o}`;return this.http.get(r)}static \u0275fac=function(A){return new(A||t)(be(ks))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var V7=class t{audioContext=new AudioContext({sampleRate:22e3});lastAudioTime=0;playAudio(e){let A=this.combineAudioBuffer(e);A&&this.playPCM(A)}combineAudioBuffer(e){if(e.length===0)return;let A=e.reduce((o,r)=>o+r.length,0),i=new Uint8Array(A),n=0;for(let o of e)i.set(o,n),n+=o.length;return i}playPCM(e){let A=new Float32Array(e.length/2);for(let s=0;s=32768&&(a-=65536),A[s]=a/32768}let i=this.audioContext.createBuffer(1,A.length,22e3);i.copyToChannel(A,0);let n=this.audioContext.createBufferSource();n.buffer=i,n.connect(this.audioContext.destination);let o=this.audioContext.currentTime,r=Math.max(this.lastAudioTime,o);n.start(r),this.lastAudioTime=r+i.duration}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Z7=new eA("AudioRecordingService"),W7=new eA("AudioWorkletModulePath");var X7=class t{audioWorkletModulePath=f(W7);stream;audioContext;source;audioBuffer=[];startRecording(){return Ni(this,null,function*(){try{this.stream=yield navigator.mediaDevices.getUserMedia({audio:!0}),this.audioContext=new AudioContext,yield this.audioContext.audioWorklet.addModule(this.audioWorkletModulePath),this.source=this.audioContext.createMediaStreamSource(this.stream);let e=new AudioWorkletNode(this.audioContext,"audio-processor");e.port.onmessage=A=>{let i=A.data,n=this.float32ToPCM(i);this.audioBuffer.push(n)},this.source.connect(e),e.connect(this.audioContext.destination)}catch(e){console.error("Error accessing microphone:",e)}})}stopRecording(){this.source&&this.source.disconnect(),this.audioContext&&this.audioContext.close(),this.stream&&this.stream.getTracks().forEach(e=>e.stop())}getCombinedAudioBuffer(){if(this.audioBuffer.length===0)return;let e=this.audioBuffer.reduce((n,o)=>n+o.length,0),A=new Uint8Array(e),i=0;for(let n of this.audioBuffer)A.set(n,i),i+=n.length;return A}cleanAudioBuffer(){this.audioBuffer=[]}float32ToPCM(e){let A=new ArrayBuffer(e.length*2),i=new DataView(A);for(let n=0;ne[Tq]==="true"))}isEditFunctionArgsEnabled(){return this.route.queryParams.pipe(je(e=>e[Hq]==="true"))}isSessionUrlEnabled(){return Ce(!0)}isA2ACardEnabled(){return this.route.queryParams.pipe(je(e=>e[Oq]==="true"))}isApplicationSelectorEnabled(){return Ce(!0)}isAlwaysOnSidePanelEnabled(){return Ce(!1)}isTraceEnabled(){return Ce(!0)}isArtifactsTabEnabled(){return Ce(!0)}isEvalEnabled(){return Ce(!0)}isTokenStreamingEnabled(){return Ce(!0)}isMessageFileUploadEnabled(){return Ce(!0)}isManualStateUpdateEnabled(){return Ce(!0)}isBidiStreamingEnabled(){return Ce(!0)}isExportSessionEnabled(){return Ce(!0)}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var xjA=(()=>{var t=import.meta.url;return function(e={}){var A,i=e,n,o,r=new Promise((Q,m)=>{n=Q,o=m});i.agerrMessages=[],i.stderrMessages=[],B=Q=>i.stderrMessages.push(Q);var s=Object.assign({},i),a="./this.program",c=(Q,m)=>{throw m},g="",I,C;typeof document<"u"&&document.currentScript&&(g=document.currentScript.src),t&&(g=t),g.startsWith("blob:")?g="":g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1),I=Q=>fetch(Q,{credentials:"same-origin"}).then(m=>m.ok?m.arrayBuffer():Promise.reject(new Error(m.status+" : "+m.url)));var d=console.log.bind(console),B=console.error.bind(console);Object.assign(i,s),s=null;var E;function u(Q){for(var m=atob(Q),v=new Uint8Array(m.length),p=0;pQ.startsWith(Xe);function KA(){var Q="data:application/octet-stream;base64,AGFzbQEAAAABmQd0YAJ/fwF/YAF/AGABfwF/YAJ/fwBgA39/fwF/YAN/f38AYAR/f39/AX9gBH9/f38AYAV/f39/fwF/YAZ/f39/f38Bf2AFf39/f38AYAZ/f39/f38AYAAAYAABf2AIf39/f39/f38Bf2AHf39/f39/fwF/YAF8AXxgAn9/AXxgAX8BfGAHf39/f39/fwBgA39/fwF8YAd/f39/fHx/AGACf3wAYAR8fHx/AXxgAnx8AXxgA398fABgCX9/f39/f39/fwBgBX9+fn5+AGAEf39/fABgCn9/f39/f39/f38Bf2ADf35/AX5gBH9/fHwBf2ADfHx8AXxgA39/fgBgAAF8YAR/f39/AXxgAn9/AX5gA39/fABgBX9/f39+AX9gA39/fgF/YAR/fn5/AGAEf398fwBgAn9+AGACfH8BfGABfwF+YAR/f398AX9gAn9+AX9gAn98AX9gA3x8fwF8YAN/fH8AYAh/f39/f39/fwBgBX9/f398AX9gC39/f39/f39/f39/AX9gBX9/fn9/AGAEf398fwF/YAABfmAFf39/f3wAYAN/f3wBf2ACfX0BfWAGf3x8fHx8AXxgA39/fwF+YAx/f39/f39/f39/f38Bf2AFf398f38Bf2AHf39/fHx/fwBgBn9/f3x/fwBgBn9/f39+fwF/YA9/f39/f39/f39/f39/f38AYAp/f39/f39/f39/AGAEf39/fwF+YAZ/fH9/f38Bf2AHf39/f39+fgF/YAZ/f39/fn4Bf2AHf39/f35/fwF/YAZ/f39/f34Bf2ACfn8AYAR/fn9/AX9gBH9/fHwBfGAFf398f38AYAl/f39/f39/f38Bf2AGf39/fH9/AX9gBH9/fHwAYAR+fn5+AX9gAn99AX9gAn5/AX9gCH9/f398fHx/AGADf31/AGABfAF/YAJ+fgF9YAJ/fQBgBH9/f34BfmADf35/AX9gBn99f39/fwBgBH9/fX8AYAN/fHwBf2AFf39/fH8AYAZ/f398fH8AYAZ8fHx/f38AYAJ+fgF8YAJ8fwF/YAR/fHx8AGAGf39/f398AGAEf3x/fwBgBnx8f3x8fwBgB398fHx8fHwAYAF/AX1gA39/fwF9YAN+fn4Bf2AEf35+fgBgBH98f38Bf2AKf3x/f39/f39/fwBgBX9/fHx8AGAFf39/f38BfGAD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uPwIKAIAQYT0AyACEB4aECgACyACIAAgAWw2AhBBuPwIKAIAQdPzAyACQRBqEB4aECgACxcAQQFBfyAAIAEgARA8IgAQqwIgAEYbCyUBAX8gACgCLCIAQQBBgAEgACgCABEEACIABH8gACgCEAVBAAsLNAEBfwJAIAAgARDnASIBRQ0AIAAoAiwiACABQQggACgCABEEACIARQ0AIAAoAhAhAgsgAgtuAQF/IwBBIGsiAyQAIANCADcDGCADQgA3AxAgAyACNgIMAkAgA0EQaiABIAIQwwsiAUEASARAIANB4I8LKAIAEHg2AgBBsokEIAMQNgwBCyAAIANBEGoiABCqBSABEKsCGiAAEF8LIANBIGokAAskAQF/IwBBEGsiAyQAIAMgAjYCDCAAIAEgAhCDDCADQRBqJAALMwEBfyACBEAgACEDA0AgAyABLQAAOgAAIANBAWohAyABQQFqIQEgAkEBayICDQALCyAAC6QBAQN/IwBBEGsiAiQAAkAgABAvIgMgACgCAEEDcSAAKQMIEJ0KIgEEfyABKAIYBUEACyIBDQAgAygCTCIBKAIAKAIMIgMEQCABKAIIIAAoAgBBA3EgACkDCCADEScAIgENAQtBACEBIAAoAgBBA3FBAkYNACACIAApAwg3AwggAkElNgIAQaDkCiEBQaDkCkEgQagYIAIQoQEaCyACQRBqJAAgAQsPACAAIAEgAiADQQAQ0QwLQwAgACAAIAGlIAG9Qv///////////wCDQoCAgICAgID4/wBWGyABIAC9Qv///////////wCDQoCAgICAgID4/wBYGwsVACAAEKgBBEAgACgCBA8LIAAQqQMLFAAgABAnBEAgAC0ADw8LIAAoAgQLVQACQCABBEAgAiABKAIITw0BIAAgASgCACABKAIEIAJqIAEoAgxwQcgAbGpByAAQHxoPC0GJ2gFB4oMBQT1BhyUQAAALQcK8A0HigwFBPUGHJRAAAAsmACAAIAEQ1QciAUUEQEEADwsgABDwASgCDCABKAIQQQJ0aigCAAsuACAALQAPIgBBAWpB/wFxQRFPBEBB38UDQcmEAUHJAEH+ngEQAAALIABB/wFHCwcAQQEQBwALFQAgACABQZEqQT1B4oMBQcgAEMgKC0MAIAAgACABpCABvUL///////////8Ag0KAgICAgICA+P8AVhsgASAAvUL///////////8Ag0KAgICAgICA+P8AWBsLCwAgACABQQAQhQcLPAEBf0EHIQICQAJAAkAgAEEoag4IAgICAgAAAAABC0EIDwsgAEF/RyABQX1NckUEQEEADwtBHSECCyACC0IBAX8gACABEOcBIgFFBEBBAA8LIAAoAjQgASgCIBDoASAAKAI0IgJBAEGAASACKAIAEQQAIAEgACgCNBDeAjYCIAtvAQJ/IAAtAAAiAgR/AkADQCABLQAAIgNFDQECQCACIANGDQAgAhCAAiABLQAAEIACRg0AIAAtAAAhAgwCCyABQQFqIQEgAC0AASECIABBAWohACACDQALQQAhAgsgAgVBAAsQgAIgAS0AABCAAmsLLAACQAJAAkAgACgCAEEDcUEBaw4DAQAAAgsgACgCKCEACyAAKAIYIQALIAALVQECfyAAIAFBMEEAIAEoAgBBA3FBA0cbaigCKBDnASIDBEAgACgCNCADKAIgEOgBIAAoAjQiAiABQQggAigCABEEACECIAMgACgCNBDeAjYCIAsgAgukAQMBfAF+AX8gAL0iAkI0iKdB/w9xIgNBsghNBHwgA0H9B00EQCAARAAAAAAAAAAAog8LAnwgAJkiAEQAAAAAAAAwQ6BEAAAAAAAAMMOgIAChIgFEAAAAAAAA4D9kBEAgACABoEQAAAAAAADwv6AMAQsgACABoCIAIAFEAAAAAAAA4L9lRQ0AGiAARAAAAAAAAPA/oAsiAJogACACQgBTGwUgAAsLKgEBfyMAQRBrIgMkACADIAI2AgwgACABIAJBgQRBABC2BxogA0EQaiQACykBAX8gAgRAIAAhAwNAIAMgAToAACADQQFqIQMgAkEBayICDQALCyAACxwBAX8gABCoAQRAIAAoAgAgABD4AhoQrwULIAALxwEBA38jAEEQayIFJAAgABAvIQYCQAJAIAAgAUEAEG0iBCACRXINACACQQEQRyIERQ0BIAQgBiABELIBNgIAAkAgACgCECICRQRAIAQgBDYCBAwBCyACIAIoAgQiBkYEQCACIAQ2AgQgBCACNgIEDAELIAQgBjYCBCACIAQ2AgQLIAAtAABBBHENACAAIARBABDzBwsgAwRAIAAgAUEBEG0aCyAFQRBqJAAgBA8LIAUgAjYCAEG4/AgoAgBB0/MDIAUQHhoQKAALCwAgACAB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uKgLQRgQ2AFFDQJBGBBIIgFFDQELIAEgAikCCDcCACABIAIpAhg3AhAgASACKQIQNwIIDAELQQAhAQsgAkEgaiQAQcSqC0EBOgAAQcCqCyABNgIAIAELIAAgAARAIAAoAhQQGCAAKAIYEBggACgCHBAYIAAQGAsLCQAgAEEAEPkGC78KAgV/D34jAEHgAGsiBSQAIARC////////P4MhDCACIASFQoCAgICAgICAgH+DIQogAkL///////8/gyINQiCIIQ4gBEIwiKdB//8BcSEHAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgB0H//wFrQYGAfksNAQsgAVAgAkL///////////8AgyILQoCAgICAgMD//wBUIAtCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhCgwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEKIAMhAQwCCyABIAtCgICAgICAwP//AIWEUARAIAIgA4RQBEBCgICAgICA4P//ACEKQgAhAQwDCyAKQoCAgICAgMD//wCEIQpCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEAgASALhEIAIQFQBEBCgICAgICA4P//ACEKDAMLIApCgICAgICAwP//AIQhCgwCCyABIAuEUARAQgAhAQwCCyACIAOEUARAQgAhAQwCCyALQv///////z9YBEAgBUHQAGogASANIAEgDSANUCIGG3kgBkEGdK18pyIGQQ9rELYBQRAgBmshBiAFKQNYIg1CIIghDiAFKQNQIQELIAJC////////P1YNACAFQUBrIAMgDCADIAwgDFAiCBt5IAhBBnStfKciCEEPaxC2ASAGIAhrQRBqIQYgBSkDSCEMIAUpA0AhAwsgA0IPhiILQoCA/v8PgyICIAFCIIgiBH4iECALQiCIIhMgAUL/////D4MiAX58Ig9CIIYiESABIAJ+fCILIBFUrSACIA1C/////w+DIg1+IhUgBCATfnwiESAMQg+GIhIgA0IxiIRC/////w+DIgMgAX58IhQgDyAQVK1CIIYgD0IgiIR8Ig8gAiAOQoCABIQiDH4iFiANIBN+fCIOIBJCIIhCgICAgAiEIgIgAX58IhAgAyAEfnwiEkIghnwiF3whASAHIAlqIAZqQf//AGshBgJAIAIgBH4iGCAMIBN+fCIEIBhUrSAEIAQgAyANfnwiBFatfCACIAx+fCAEIAQgESAVVK0gESAUVq18fCIEVq18IAMgDH4iAyACIA1+fCICIANUrUIghiACQiCIhHwgBCACQiCGfCICIARUrXwgAiACIBAgElatIA4gFlStIA4gEFatfHxCIIYgEkIgiIR8IgJWrXwgAiACIA8gFFStIA8gF1atfHwiAlatfCIEQoCAgICAgMAAg1BFBEAgBkEBaiEGDAELIAtCP4ggBEIBhiACQj+IhCEEIAJCAYYgAUI/iIQhAiALQgGGIQsgAUIBhoQhAQsgBkH//wFOBEAgCkKAgICAgIDA//8AhCEKQgAhAQwBCwJ+IAZBAEwEQEEBIAZrIgdB/wBNBEAgBUEwaiALIAEgBkH/AGoiBhC2ASAFQSBqIAIgBCAGELYBIAVBEGogCyABIAcQrAMgBSACIAQgBxCsAyAFKQMwIAUpAziEQgBSrSAFKQMgIAUpAxCEhCELIAUpAyggBSkDGIQhASAFKQMAIQIgBSkDCAwCC0IAIQEMAgsgBEL///////8/gyAGrUIwhoQLIAqEIQogC1AgAUIAWSABQoCAgICAgICAgH9RG0UEQCAKIAJCAXwiAVCtfCEKDAELIAsgAUKAgICAgICAgIB/hYRQRQRAIAIhAQwBCyAKIAIgAkIBg3wiASACVK18IQoLIAAgATcDACAAIAo3AwggBUHgAGokAAsFABAIAAumAQEEfyAAKAIQIgQhAwJAAkACQANAIANFDQEgAUUNAiADKAIAIgZFDQMgASAGEEkEQCADKAIEIgMgBEcNAQwCCwsCQCAALQAAQQRxBEAgAkUgAyAERnINAUGCEEEAEDYMAQsgAkUgAyAERnENACAAIAMgAkEARxDzBwsgAyEFCyAFDwtBw9wBQcuDAUEMQdPBABAAAAtBkdwBQcuDAUENQdPBABAAAAsGACAAEBgLGQEBfyAAIAEQLSICBH8gAgUgACABEMACCwt+AQN/IwBBEGsiASQAIAEgADYCDCMAQRBrIgIkACAAKAIAQX9HBEAgAkEIaiACQQxqIAFBDGoQowIQowIhAwNAIAAoAgBBAUYNAAsgACgCAEUEQCAAQQE2AgAgAxCQCyAAQX82AgALCyACQRBqJAAgACgCBCABQRBqJABBAWsLIAAgACABQQFrNgIEIABBgO4JNgIAIABBsMUJNgIAIAALOgEBfwJAAkAgAkUNACAAEC8gAhDPAyIDIAJHDQAgAxB2RQ0AIAAgASACELIEDAELIAAgASACEIsMCwtvAAJAAkAgASgCAEEDcUECRgRAIAAgARAwIgENAUEAIQEDQAJ/IAFFBEAgACACEMACDAELIAAgARCWAwsiAUUNAyABKAIoIAJGDQALDAELA0AgACABEJYDIgFFDQIgASgCKCACRg0ACwsgAQ8LQQALHwEBfyAAECQhASAAECcEQCAAIAFqDwsgACgCACABagvWCAENfyMAQRBrIgwkACABEJULIwBBEGsiAyQAIAMgATYCDCAMQQxqIANBDGoQpwMhCSADQRBqJAAgAEEIaiIBEMYCIAJNBEACQCACQQFqIgAgARDGAiIDSwRAIwBBIGsiDSQAAkAgACADayIGIAEQmAUoAgAgASgCBGtBAnVNBEAgASAGEJcLDAELIAEQoQMhByANQQxqIQACfyABEMYCIAZqIQUjAEEQayIEJAAgBCAFNgIMIAUgARD3CiIDTQRAIAEQ8goiBSADQQF2SQRAIAQgBUEBdDYCCCAEQQhqIARBDGoQ4wMoAgAhAwsgBEEQaiQAIAMMAQsQzAEACyEFIAEQxgIhCEEAIQMjAEEQayIEJAAgBEEANgIMIABBDGoQ+ApBBGogBxCjAhogBQR/IARBBGogACgCECAFEPYKIAQoAgQhAyAEKAIIBUEACyEFIAAgAzYCACAAIAMgCEECdGoiBzYCCCAAIAc2AgQgABCQByADIAVBAnRqNgIAIARBEGokACMAQRBrIgMkACAAKAIIIQQgAyAAQQhqNgIMIAMgBDYCBCADIAQgBkECdGo2AgggAygCBCEEA0AgAygCCCAERwRAIAAoAhAaIAMoAgQQ9QogAyADKAIEQQRqIgQ2AgQMAQsLIAMoAgwgAygCBDYCACADQRBqJAAjAEEQayIGJAAgARChAxogBkEIaiABKAIEEKMCIAZBBGogASgCABCjAiEEIAYgACgCBBCjAiEFKAIAIQcgBCgCACEIIAUoAgAhCiMAQRBrIgUkACAFQQhqIwBBIGsiAyQAIwBBEGsiBCQAIAQgBzYCDCAEIAg2AgggA0EYaiAEQQxqIARBCGoQsAUgBEEQaiQAIANBDGogAygCGCEHIAMoAhwhCyADQRBqIwBBEGsiBCQAIAQgCzYCCCAEIAc2AgwgBCAKNgIEA0AgBEEMaiIHKAIAIAQoAghHBEAgBxDvCigCACEKIARBBGoiCxDvCiAKNgIAIAcQ7gogCxDuCgwBCwsgBEEMaiAEQQRqEP0BIARBEGokACADIAMoAhA2AgwgAyADKAIUNgIIIANBCGoQ/QEgA0EgaiQAIAUoAgwhAyAFQRBqJAAgBiADNgIMIAAgBigCDDYCBCABIABBBGoQswUgAUEEaiAAQQhqELMFIAEQmAUgABCQBxCzBSAAIAAoAgQ2AgAgARDGAhogBkEQaiQAIAAoAgQhAwNAIAAoAgggA0cEQCAAKAIQGiAAIAAoAghBBGs2AggMAQsLIAAoAgAEQCAAKAIQIAAoAgAgABCQBygCABogACgCABoQ8QoLCyANQSBqJAAMAQsgACADSQRAIAEoAgAgAEECdGohACABEMYCGiABIAAQ8woLCwsgASACEKIDKAIABEAgASACEKIDKAIAEJ0FCyAJEOsDIQAgASACEKIDIAA2AgAgCSgCACEAIAlBADYCACAABEAgABCdBQsgDEEQaiQACxcAIABFBEBBAA8LIABBCGspAwBCP4inCxwBAX8gABCoAQRAIAAoAgAgABD4AhoQpwQLIAALHQAgAEEAIABBmQFNG0EBdEHAiwlqLwEAQcT8CGoLJQEBfyAAKAJEIgFFBEBBAA8LIAEoAjwiASAAQQggASgCABEEAAsWACAAKAI8IgBBAEGAASAAKAIAEQQAC6cCAQd/IwBBEGsiByQAAkACQCAAKAIIIgYgACgCDCICRwRAIAAoAgAhAyAAKAIEIQQMAQsgBkEBdEEBIAYbIgJB/////wBLBEBBxAAhAAwCCyAAKAIAIAJBBHQQOiIDRQRAQTAhAAwCCyADIAAoAgwiBUEEdGpBACACIAVrQQR0EDMaIAUgACgCCCIGIAAoAgQiBGpJBEAgBEEEdCEIIAMgAiAFIARrIgVrIgRBBHRqIAMgCGogBUEEdBBTGiAAIAQ2AgQLIAAgAjYCDCAAIAM2AgALIAMgBCAGaiACcEEEdGoiAiABKQMANwMAIAIgASkDCDcDCCAAIAAoAghBAWo2AgggB0EQaiQADwsgByAAEHg2AgBBuPwIKAIAQdqKBCAHEB4aECgACxUAIABFIAFFcgR/IAIFIAAgARBBCwvKAQEEfyMAQdAAayICJAACQAJAIAGZRHsUrkfhenQ/YwRAIABBv6MDQQEQqwIaDAELIAIgATkDACACQRBqIgNBMkGSjgEgAhChARogACACQRBqAn8CQCADQS4QzwEiAEUNACAALAABIgRBMGtBCUsNAyAALAACIgVBMGtBCUsNAyAALQADDQMgBUEwRw0AIAAgA2siACAAQQJqIARBMEYbDAELIAJBEGoQPAsQqwIaCyACQdAAaiQADwtBzbUDQbXHAUH0A0GtMBAAAAsJACAAQQAQkgELMgEBfyMAQRBrIgMkACADIAE2AgwgACADQQxqEKcDIgBBBGogAhCnAxogA0EQaiQAIAAL8QIBBH8jAEEwayIDJAAgAyACNgIMIAMgAjYCLCADIAI2AhACQAJAAkACQAJAQQBBACABIAIQYiIFQQBIDQBBASECIAVBAWohBgJAIAUgABBGIAAQJGsiBE8EQCAAECdBACAGIARrIgRBAUYbDQEgACAEEIEEC0EAIQILIANCADcDGCADQgA3AxAgBUEQT0EAIAIbDQEgA0EQaiEEIAUgAgR/IAQFIAAQdAsgBiABIAMoAiwQYiIBRyABQQBOcQ0CIAFBAEwNACAAECcEQCABQYACTw0EIAIEQCAAEHQgA0EQaiABEB8aCyAAIAAtAA8gAWo6AA8gABAkQRBJDQFBvMADQcmEAUHYAUHpHxAAAAsgAg0EIAAgACgCBCABajYCBAsgA0EwaiQADwtBn68DQcmEAUHLAUHpHxAAAAtB+KIDQcmEAUHQAUHpHxAAAAtB39QBQcmEAUHTAUHpHxAAAAtB46QBQcmEAUHaAUHpHxAAAAvxAgEEfyMAQTBrIgMkACADIAI2AgwgAyACNgIsIAMgAjYCEAJAAkACQAJAAkBBAEEAIAEgAhBiIgVBAEgNAEEBIQIgBUEBaiEGAkAgBSAAEEYgABAkayIETwRAIAAQJ0EAIAYgBGsiBEEBRhsNASAAIAQQ0QELQQAhAgsgA0IANwMYIANCADcDECAFQRBPQQAgAhsNASADQRBqIQQgBSACBH8gBAUgABB0CyAGIAEgAygCLBBiIgFHIAFBAE5xDQIgAUEATA0AIAAQJwRAIAFBgAJPDQQgAgRAIAAQdCADQRBqIAEQHxoLIAAgAC0ADyABajoADyAAECRBEEkNAUG8wANByYQBQdgBQekfEAAACyACDQQgACAAKAIEIAFqNgIECyADQTBqJAAPC0GfrwNByYQBQcsBQekfEAAAC0H4ogNByYQBQdABQekfEAAAC0Hf1AFByYQBQdMBQekfEAAAC0HjpAFByYQBQdoBQekfEAAACwsAIAAgAUEDEIUHCwsAIAAgAUEBEKUJCwoAIAAoAgAQ7wsLCwAgACgCABD3C8ALRQECfwJAIAAQNyABKAIYRw0AIAAgASkDCBDDAyIDIAJFcg0AQQAhAyAAKAJEIgRFDQAgACAEIAEgAhCGASIDEPQPCyADC00BAX8CQCAAIAEgAiADEPkERQ0AIAAoAgwiAyAAKAIIRgRAIAAQYUUNASAAKAIMIQMLIAAgA0EBajYCDCADQQA6AAAgACgCECEECyAEC8YBAQR/IwBBEGsiBCQAIAQgAjYCDAJAIAEtAERFBEACfyAAKAKcASABRgRAIABBqAJqIQUgAEGsAmoMAQsgACgCtAIiBUEEagshAgNAIAQgACgCODYCCCABIARBDGogAyAEQQhqIAAoAjwgASgCOBEIACACIAQoAgw2AgAgACgCBCAAKAI4IgcgBCgCCCAHayAAKAJcEQUAIAUgBCgCDDYCAEEBSw0ACwwBCyAAKAIEIAIgAyACayAAKAJcEQUACyAEQRBqJAALIgEBfyAAIAEgAkEAECEiAwR/IAMFIAAgASACQeaKBRAhCwu/AQECfyMAQSBrIgQkAAJAAkBBfyADbiIFIAFLBEAgAiAFSw0BAkAgAiADbCICRQRAIAAQGEEAIQAMAQsgACACEDoiAEUNAyACIAEgA2wiAU0NACAAIAFqQQAgAiABaxAzGgsgBEEgaiQAIAAPC0HfyQNBmIUBQc0AQe+6ARAAAAsgBCADNgIEIAQgAjYCAEG4/AgoAgBBhPQDIAQQHhoQKAALIAQgAjYCEEG4/AgoAgBB0/MDIARBEGoQHhoQKAALPAECf0EBIAAgAEEBTRshAQNAAkAgARBIIgANAEGMuAsoAgAiAkUNACACEQwADAELCyAARQRAEMwBCyAACy4BAX8jAEEQayICJAAgAkG0oQUoAgA2AgwgASACQQxqQSAgABCtBCACQRBqJAALGABBf0EAIABBASAAEDwiACABEEwgAEcbC9ICAgd/An4gAUUEQEF/DwsCQCAAEMIDKAIAIgAgASACEJ8EIgJFDQAgAkEIaiIEIAFHDQAgAiACKQMAIgpCAX1C////////////AIMiCyAKQoCAgICAgICAgH+DhDcDACALQgBSDQAgAARAIAJBf0cEQCAEIApCP4inEN8GIQZBACEBIAAoAgAiBwRAQQEgACgCCHQhAwsgA0EBayEIA0AgASADRg0DAkACQCAHIAEgBmogCHEiCUECdGooAgAiBUEBag4CAQUACyAEIAIpAwBCP4inIAUQyAlFDQAgACgCBARAIAUQGCAAKAIAIAlBAnRqQX82AgAgACAAKAIEQQFrNgIEDAULQZGcA0GFwwFBmQJBopEBEAAACyABQQFqIQEMAAsAC0Hj4AFBhcMBQYQCQaKRARAAAAtBp9oBQYXDAUGCAkGikQEQAAALQQBBfyACGwvhAgIDfwJ+IwBBEGsiBCQAIAAQNyEFAkACQAJAAkACQCAAQQEgASAEQQhqQQAQmgNFDQAgACAEKQMIEMMDIgMNAiACRSAAIAVGcg0AIAUgBCkDCBDDAyICRQ0BIAAgAkEBEIYBIQMMAgtBACEDIAJFDQELIABBASABIARBCGpBARCaA0UEQEEAIQMMAQsgBCkDCCEGIABBARCfDiIHQoCAgIABWg0BQcAAEFQiAyAGNwMIIAMgAygCAEEMcSAHp0EEdHJBAXI2AgAgAyAAEDc2AhggABA3LQAYQSBxBEAgA0GFoQVBEEEAEDUaCyAAIQEDQCABIAMQ9A8gASgCRCIBDQALIAAQNy0AGEEgcQRAIAAgAxDUBQsgACADEIUIIAAgAxDnAUUNAiAAQQEgAxD9BAsgBEEQaiQAIAMPC0HctgNBoMcBQcsAQbimARAAAAtB/qwDQaDHAUGjAUHMpgEQAAALRwEFfyMAQRBrIgAkACAAEK4BQbTmCigCACEBQbDmCigCACECIAAoAgAgACgCBCAAQRBqJABqIAEgAmprt0QAAAAAAABOQKMLHAAgACABIAIQfCIABH8gACACIAAtAAAbBSACCwskAQF/IAAoAgAhAiAAIAE2AgAgAgRAIAIgABDYAygCABEBAAsLBQAQbAAL8QIBBH8jAEEwayIDJAAgAyACNgIMIAMgAjYCLCADIAI2AhACQAJAAkACQAJAQQBBACABIAIQYiIFQQBIDQBBASECIAVBAWohBgJAIAUgABBGIAAQJGsiBE8EQCAAECdBACAGIARrIgRBAUYbDQEgACAEEKoDC0EAIQILIANCADcDGCADQgA3AxAgBUEQT0EAIAIbDQEgA0EQaiEEIAUgAgR/IAQFIAAQdAsgBiABIAMoAiwQYiIBRyABQQBOcQ0CIAFBAEwNACAAECcEQCABQYACTw0EIAIEQCAAEHQgA0EQaiABEB8aCyAAIAAtAA8gAWo6AA8gABAkQRBJDQFBvMADQcmEAUHYAUHpHxAAAAsgAg0EIAAgACgCBCABajYCBAsgA0EwaiQADwtBn68DQcmEAUHLAUHpHxAAAAtB+KIDQcmEAUHQAUHpHxAAAAtB39QBQcmEAUHTAUHpHxAAAAtB46QBQcmEAUHaAUHpHxAAAAvFBAEGfyAAIQUjAEHQAWsiBCQAIARCATcDCAJAIAEgAmwiCEUNACAEIAI2AhAgBCACNgIUQQAgAmshCSACIgAhB0ECIQYDQCAEQRBqIAZBAnRqIAAiASACIAdqaiIANgIAIAZBAWohBiABIQcgACAISQ0ACwJAIAUgCGogCWoiASAFTQRAQQEhAAwBC0EBIQZBASEAA0ACfyAGQQNxQQNGBEAgBSACIAMgACAEQRBqEL4HIARBCGpBAhDFBSAAQQJqDAELAkAgBEEQaiIHIABBAWsiBkECdGooAgAgASAFa08EQCAFIAIgAyAEQQhqIABBACAHEMQFDAELIAUgAiADIAAgBEEQahC+BwsgAEEBRgRAIARBCGpBARDDBUEADAELIARBCGogBhDDBUEBCyEAIAQgBCgCCEEBciIGNgIIIAIgBWoiBSABSQ0ACwsgBSACIAMgBEEIaiAAQQAgBEEQahDEBQJAIABBAUcNACAEKAIIQQFHDQAgBCgCDEUNAQsDQAJ/IABBAUwEQCAEQQhqIgEgARCWDCIBEMUFIAAgAWoMAQsgBEEIaiIBQQIQwwUgBCAEKAIIQQdzNgIIIAFBARDFBSAFIAlqIgggBEEQaiIHIABBAmsiBkECdGooAgBrIAIgAyABIABBAWtBASAHEMQFIAFBARDDBSAEIAQoAghBAXI2AgggCCACIAMgASAGQQEgBxDEBSAGCyEAIAUgCWohBSAAQQFHDQAgBCgCCEEBRw0AIAQoAgwNAAsLIARB0AFqJAAL6gECAn8BfiMAQRBrIgMkAAJAAkACQCABRQ0AIABBACABIANBCGpBABCaA0UNACAAIAMpAwgQ8A0iBA0BC0EAIQQgAkUNACAAQQAgASADQQhqQQEQmgNFDQAgACADKQMIIgUQ8A0iBEUEQEEBQdAAEEciAUUNAiABIAAoAkw2AkwgASAAKAIYIgI2AhggASAANgJEIAEgAkH3AXE6ABggACgCSCECIAEgBTcDCCABIAI2AkggARCjDiEECyAAQQAgBBD9BAsgA0EQaiQAIAQPCyADQdAANgIAQbj8CCgCAEHT8wMgAxAeGhAoAAt7AQJ/AkAgAEUgAUVyDQBBNBBIIgJFDQAgAkEANgIgIAJCADcCACACIAAQjQUaIAJCADcCLCACQgA3AiQgASgCBCEAIAJCADcCDCACIAA2AgggAkIANwIUIAJBADYCHCABKAIAIQAgAiABNgIgIAIgADYCACACIQMLIAMLDQAgACgCABDuCxogAAsNACAAKAIAEPYLGiAAC4oGAQ5/AkACQAJAAkAgASgCCEUEQCADRQ0EIAFBwAA2AgggAUEGOgAEIAFBgAIgASgCECgCABECACIENgIAIAQNASABQQA2AghBAA8LIAAgAhDRBiINQQAgASgCCCIJa3EhCiANIAlBAWsiBHEhBSAEQQJ2IQsgASgCACEMA0AgDCAFQQJ0aigCACIHBEAgBygCACEGIAIhBANAIAQtAAAiDiAGLQAARgRAIA5FDQYgBkEBaiEGIARBAWohBAwBCwsgCEH/AXFFBEAgCiABLQAEQQFrdiALcUEBciEICyAFIAhB/wFxIgRrIAlBACAEIAVLG2ohBQwBCwtBACEHIANFDQIgASgCDCABLQAEIgRBAWt2RQ0BIARBAWoiDkH/AXEiBEEfSyAEQR1Lcg0CQQQgBHQiBiABKAIQKAIAEQIAIgVFDQIgBUEAIAYQMyEIQQEgBHQiB0EBayIJQQJ2IQogBEEBayELQQAgB2shDEEAIQUDQCABKAIIIAVLBEAgBUECdCIQIAEoAgBqKAIAIgQEQCAAIAQoAgAQ0QYiBCAJcSEGIAQgDHEgC3YgCnFBAXIhEUEAIQQDQCAIIAZBAnRqIg8oAgAEQCAGIAQgESAEQf8BcRsiBEH/AXEiD2sgB0EAIAYgD0kbaiEGDAELCyAPIAEoAgAgEGooAgA2AgALIAVBAWohBQwBCwsgASgCACABKAIQKAIIEQEAIAEgBzYCCCABIA46AAQgASAINgIAIAkgDXEhBSAMIA1xIAt2IApxQQFyIQBBACEGA0AgCCAFQQJ0aigCAEUNAiAFIAYgACAGQf8BcRsiBkH/AXEiBGsgB0EAIAQgBUsbaiEFDAALAAsgBEEAQYACEDMaIAAgAhDRBiABKAIIQQFrcSEFCyADIAEoAhAoAgARAgAhBCAFQQJ0IgAgASgCAGogBDYCACABKAIAIABqKAIAIgRFDQEgBEEAIAMQMxogASgCACAAaigCACACNgIAIAEgASgCDEEBajYCDCABKAIAIABqKAIAIQcLIAcPC0EAC2MBAX9BfyEBAkAgAEUNACAAKAIkQQBKDQAgACgCKARAIABBABDqAhoLIABBAEHAACAAKAIgKAIAEQQAGiAAEJ0BQQBKDQAgACgCFEEASgRAIAAoAhAQGAsgABAYQQAhAQsgAQtzAQF/IAAQJCAAEEZPBEAgAEEBENEDCyAAECQhAgJAIAAQJwRAIAAgAmogAToAACAAIAAtAA9BAWo6AA8gABAkQRBJDQFBvMADQcmEAUGdAkGUugEQAAALIAAoAgAgAmogAToAACAAIAAoAgRBAWo2AgQLC0EBAX8gAC0ACUEQcQRAIABBABDoAQsCQCAAKAIYIgFBAE4NACAALQAIQQxxRQ0AIAAgACgCDBCnCiIBNgIYCyABC+gQAgp/CHwjAEGAAWsiBiQAIABBMEEAIAAoAgBBA3FBA0cbaigCKCIHEC8hDSAAIAMQ/wYhCSAAIQUDQCAFIggoAhAiCygCeCIFBEAgCy0AcA0BCwsCQAJAIAQtAAgNACAHKAIQIgooAvQBIAEoAhAiBSgC9AFHDQAgASAHIAooAvgBIAUoAvgBSiIFGyEKIAcgASAFGyEBDAELIAchCgtBACEFIAtB0ABBKCAKIAhBMEEAIAgoAgBBA3FBA0cbaigCKEYiBxtqKAIAIQ4gC0HWAEEuIAcbai0AACEMAkAgC0EuQdYAIAcbai0AAEUNACAKKAIQKAIIIghFDQAgCCgCBCgCDEUNACALQShB0AAgBxtqKAIAIQggBkE4akEAQcAAEDMaIAYgCDYCNCAGIAo2AjAgA0EEayEHA0ACQCAFIAdPDQAgBiACIAVBBHRqIggrAzAgCigCECILKwMQoTkDICAGIAgrAzggCysDGKE5AyggCygCCCgCBCgCDCEIIAYgBikDKDcDGCAGIAYpAyA3AxAgBkEwaiAGQRBqIAgRAABFDQAgBUEDaiEFDAELCyAGQTBqIAogAiAFQQR0akEBEIAHCwJAAkAgDEUNACABKAIQKAIIIghFDQAgCCgCBCgCDEUNACAGQThqQQBBwAAQMxogBiAONgI0IAYgATYCMCADQQRrIgohBwNAAkAgB0UNACAGIAIgB0EEdGoiAysDACABKAIQIggrAxChOQMgIAYgAysDCCAIKwMYoTkDKCAIKAIIKAIEKAIMIQMgBiAGKQMoNwMIIAYgBikDIDcDACAGQTBqIAYgAxEAAEUNACAHQQNrIQcMAQsLIAZBMGogASACIAdBBHRqQQAQgAcMAQsgA0EEayIKIQcLA0AgCiAFIgNLBEAgAiAFQQR0aiIMKwMAIAIgBUEDaiIFQQR0aiIIKwMAoSIPIA+iIAwrAwggCCsDCKEiDyAPoqBEje21oPfGsD5jDQELCwNAAkAgB0UNACACIAdBBHRqIgUrAwAgBSsDMKEiDyAPoiAFKwMIIAUrAzihIg8gD6KgRI3ttaD3xrA+Y0UNACAHQQNrIQcMAQsLIAAhBQNAIAUiCCgCECgCeCIFDQALQQAhBSAELQAIRQRAIAggBCgCABECACEFCyAIIAZBMGogBkEgahD9BiABIAQoAgQRAgAEQCAGQQA2AiALIABBMEEAIAAoAgBBA3FBA0cbaigCKCAEKAIEEQIABEAgBkEANgIwCyAFBEAgBigCMCEAIAYgBigCIDYCMCAGIAA2AiALAkAgBC0ACUEBRgRAIAYoAiAiASAGKAIwIgByRQ0BAkACfwJAAkAgAUUgAEUgAyAHR3JyRQRAIAIgB0EEdGoiBSsDCCESIAUrAzghFSAFKwMAIREgBSsDMCETIAggABDTAyEWIBEgE6EiDyAPoiASIBWhIg8gD6KgnyIURAAAAAAAAAhAoyIQIAggARDTAyIPIBYgD6AgFGYiBBshFCAQIBYgBBshDyASIBVhBEAgESATYwRAIBEgD6AhDyATIBShIRYMAwsgESAPoSEPIBMgFKAhFgwCCwJ8IBIgFWMEQCAVIBShIRQgEiAPoAwBCyAVIBSgIRQgEiAPoQshECARIg8hFgwCCyABBEAgCCABENMDIREgAiAHQQR0aiIEKwMAIhAgBCsDMCISoSIPIA+iIAQrAwgiFCAEKwM4IhOhIg8gD6Kgn0TNzMzMzMzsP6IiDyARIA8gEWUbIREgBAJ8IBMgFGEEQCAQIBJjBEAgEiARoSEPIBQMAgsgEiARoCEPIBQMAQsgECEPIBMgEaEgEyARoCATIBRkGws5AzggBCAPOQMwIAQgFDkDGCAEIBA5AxAgBCAEKQMwNwMgIAQgBCkDODcDKCAJIBM5AyggCSASOQMgIAkgATYCDAsgAEUNAyAIIAAQ0wMhECACIANBBHRqIgErAwAiEyABKwMwIhGhIg8gD6IgASsDCCIVIAErAzgiEqEiDyAPoqCfRM3MzMzMzOw/oiIPIBAgDyAQZRshEAJ8IBIgFWEEQCARIBNkBEAgEyAQoCEPIBUMAgsgEyAQoSEPIBUMAQsgEyEPIBUgEKAgFSAQoSASIBVkGwshECABIA85AxBBGCEEIAEgEDkDGCABIBI5AyggASAROQMgIAEgASkDEDcDACABIAEpAxg3AwggCSAANgIIQRAMAgsgEiIQIRQLIAUgDzkDECAFIBA5AxggBSAUOQM4IAUgFjkDMCAFIAUpAxA3AwAgBSAFKQMYNwMIIAUgBSkDMDcDIEEoIQQgBSAFKQM4NwMoIAkgEjkDGCAJIBE5AxAgCSAANgIIIAkgATYCDEEgCyAJaiATOQMAIAQgCWogFTkDAAsMAQsgBigCMCIABEAgCCACIAMgByAJIAAQ+gYhAwsgBigCICIARQ0AIAggAiADIAcgCSAAEPsGIQcLIAdBBGohCCAGQUBrIQQgAyEFA0ACQCAFIAhPDQAgCSgCACAFIANrQQR0aiIAIAIgBUEEdGoiASkDADcDACAAIAEpAwg3AwggBiABKQMINwM4IAYgASkDADcDMCAFQQFqIgEgCE8NACAJKAIAIAEgA2tBBHRqIgAgAiABQQR0aiIBKQMANwMAIAAgASkDCDcDCCAEIAEpAwg3AwggBCABKQMANwMAIAkoAgAgBUECaiIBIANrQQR0aiIAIAIgAUEEdGoiASkDADcDACAAIAEpAwg3AwggBiABKQMINwNYIAYgASkDADcDUCAGIAIgBUEDaiIFQQR0aiIAKQMINwNoIAYgACkDADcDYCANKAIQQRBqIAZBMGoQ6wQMAQsLIAkgByADa0EEajYCBCAGQYABaiQACxEAIAAgASAAKAIAKAIcEQAAC3UBAX4gACABIAR+IAIgA358IANCIIgiAiABQiCIIgR+fCADQv////8PgyIDIAFC/////w+DIgF+IgVCIIggAyAEfnwiA0IgiHwgASACfiADQv////8Pg3wiAUIgiHw3AwggACAFQv////8PgyABQiCGhDcDAAslAQF/IwBBEGsiBCQAIAQgAzYCDCAAIAEgAiADEGIgBEEQaiQAC+0PAwd8CH8EfkQAAAAAAADwPyEDAkACQAJAIAG9IhFCIIgiE6ciEEH/////B3EiCSARpyIMckUNACAAvSISpyIPRSASQiCIIhRCgIDA/wNRcQ0AIBSnIgtB/////wdxIgpBgIDA/wdLIApBgIDA/wdGIA9BAEdxciAJQYCAwP8HS3JFIAxFIAlBgIDA/wdHcnFFBEAgACABoA8LAkACQAJAAkACQAJ/QQAgEkIAWQ0AGkECIAlB////mQRLDQAaQQAgCUGAgMD/A0kNABogCUEUdiENIAlBgICAigRJDQFBACAMQbMIIA1rIg52Ig0gDnQgDEcNABpBAiANQQFxawshDiAMDQIgCUGAgMD/B0cNASAKQYCAwP8DayAPckUNBSAKQYCAwP8DSQ0DIAFEAAAAAAAAAAAgEUIAWRsPCyAMDQEgCUGTCCANayIMdiINIAx0IAlHDQBBAiANQQFxayEOCyAJQYCAwP8DRgRAIBFCAFkEQCAADwtEAAAAAAAA8D8gAKMPCyATQoCAgIAEUQRAIAAgAKIPCyATQoCAgP8DUiASQgBTcg0AIACfDwsgAJkhAiAPDQECQCALQQBIBEAgC0GAgICAeEYgC0GAgMD/e0ZyIAtBgIBARnINAQwDCyALRSALQYCAwP8HRnINACALQYCAwP8DRw0CC0QAAAAAAADwPyACoyACIBFCAFMbIQMgEkIAWQ0CIA4gCkGAgMD/A2tyRQRAIAMgA6EiACAAow8LIAOaIAMgDkEBRhsPC0QAAAAAAAAAACABmiARQgBZGw8LAkAgEkIAWQ0AAkACQCAODgIAAQILIAAgAKEiACAAow8LRAAAAAAAAPC/IQMLAnwgCUGBgICPBE8EQCAJQYGAwJ8ETwRAIApB//+//wNNBEBEAAAAAAAA8H9EAAAAAAAAAAAgEUIAUxsPC0QAAAAAAADwf0QAAAAAAAAAACAQQQBKGw8LIApB/v+//wNNBEAgA0ScdQCIPOQ3fqJEnHUAiDzkN36iIANEWfP4wh9upQGiRFnz+MIfbqUBoiARQgBTGw8LIApBgYDA/wNPBEAgA0ScdQCIPOQ3fqJEnHUAiDzkN36iIANEWfP4wh9upQGiRFnz+MIfbqUBoiAQQQBKGw8LIAJEAAAAAAAA8L+gIgBERN9d+AuuVD6iIAAgAKJEAAAAAAAA4D8gACAARAAAAAAAANC/okRVVVVVVVXVP6CioaJE/oIrZUcV97+ioCICIAIgAEQAAABgRxX3P6IiAqC9QoCAgIBwg78iACACoaEMAQsgAkQAAAAAAABAQ6IiACACIApBgIDAAEkiCRshAiAAvUIgiKcgCiAJGyIMQf//P3EiCkGAgMD/A3IhCyAMQRR1Qcx3QYF4IAkbaiEMQQAhCQJAIApBj7EOSQ0AIApB+uwuSQRAQQEhCQwBCyAKQYCAgP8DciELIAxBAWohDAsgCUEDdCIKQbDSCGorAwAgAr1C/////w+DIAutQiCGhL8iBCAKQaDSCGorAwAiBaEiBkQAAAAAAADwPyAFIASgoyIHoiICvUKAgICAcIO/IgAgACAAoiIIRAAAAAAAAAhAoCAHIAYgACAJQRJ0IAtBAXZqQYCAoIACaq1CIIa/IgaioSAAIAUgBqEgBKCioaIiBCACIACgoiACIAKiIgAgAKIgACAAIAAgACAARO9ORUoofso/okRl28mTSobNP6CiRAFBHalgdNE/oKJETSaPUVVV1T+gokT/q2/btm3bP6CiRAMzMzMzM+M/oKKgIgWgvUKAgICAcIO/IgCiIgYgBCAAoiACIAUgAEQAAAAAAAAIwKAgCKGhoqAiAqC9QoCAgIBwg78iAET1AVsU4C8+vqIgAiAAIAahoUT9AzrcCcfuP6KgoCICIApBwNIIaisDACIEIAIgAEQAAADgCcfuP6IiAqCgIAy3IgWgvUKAgICAcIO/IgAgBaEgBKEgAqGhCyECIAEgEUKAgICAcIO/IgShIACiIAEgAqKgIgIgACAEoiIBoCIAvSIRpyEJAkAgEUIgiKciCkGAgMCEBE4EQCAKQYCAwIQEayAJcg0DIAJE/oIrZUcVlzygIAAgAaFkRQ0BDAMLIApBgPj//wdxQYCYw4QESQ0AIApBgOi8+wNqIAlyDQMgAiAAIAGhZUUNAAwDC0EAIQkgAwJ8IApB/////wdxIgtBgYCA/wNPBH5BAEGAgMAAIAtBFHZB/gdrdiAKaiIKQf//P3FBgIDAAHJBkwggCkEUdkH/D3EiC2t2IglrIAkgEUIAUxshCSACIAFBgIBAIAtB/wdrdSAKca1CIIa/oSIBoL0FIBELQoCAgIBwg78iAEQAAAAAQy7mP6IiAyACIAAgAaGhRO85+v5CLuY/oiAARDlsqAxhXCC+oqAiAqAiACAAIAAgACAAoiIBIAEgASABIAFE0KS+cmk3Zj6iRPFr0sVBvbu+oKJELN4lr2pWET+gokSTvb4WbMFmv6CiRD5VVVVVVcU/oKKhIgGiIAFEAAAAAAAAAMCgoyAAIAIgACADoaEiAKIgAKChoUQAAAAAAADwP6AiAL0iEUIgiKcgCUEUdGoiCkH//z9MBEAgACAJEPwCDAELIBFC/////w+DIAqtQiCGhL8LoiEDCyADDwsgA0ScdQCIPOQ3fqJEnHUAiDzkN36iDwsgA0RZ8/jCH26lAaJEWfP4wh9upQGiC2cBA38jAEEQayICJAAgACABKAIANgIAIAEoAgghAyABKAIEIQQgAUIANwIEIAIgACgCBDYCCCAAIAQ2AgQgAiAAKAIINgIMIAAgAzYCCCACQQhqENsBIAAgASsDEDkDECACQRBqJAAL6AECA38BfCMAQRBrIgUkAEHgABBUIgQgBCgCMEEDcjYCMCAEIAQoAgBBfHFBAnI2AgBBuAEQVCEGIAQgADYCWCAEIAY2AhAgBCABNgIoRAAAwP///99BIQcCQCACRAAAwP///99BZEUEQCACIQcMAQsgBUH/////BzYCCCAFIAI5AwBB2PEEIAUQNgsgBiADNgKcASAGAn8gB0QAAAAAAADgP0QAAAAAAADgvyAHRAAAAAAAAAAAZhugIgKZRAAAAAAAAOBBYwRAIAKqDAELQYCAgIB4CzYCrAEgBBCnDxogBUEQaiQAIAQLBABBAAuZAwIHfwF8IwBBwARrIgckAANAIAVBBEYEQEQAAAAAAADwPyACoSEMQQMhBkEBIQEDQCABQQRGRQRAQQAhBSAHIAFBAWtB4ABsaiEIA0AgBSAGRkUEQCAFQQR0IgkgByABQeAAbGpqIgogDCAIIAlqIgkrAwCiIAIgCCAFQQFqIgVBBHRqIgsrAwCioDkDACAKIAwgCSsDCKIgAiALKwMIoqA5AwgMAQsLIAZBAWshBiABQQFqIQEMAQsLAkAgA0UNAEEAIQUDQCAFQQRGDQEgAyAFQQR0aiIBIAcgBUHgAGxqIgYpAwg3AwggASAGKQMANwMAIAVBAWohBQwACwALAkAgBEUNAEEAIQUDQCAFQQRGDQEgBCAFQQR0IgFqIgMgB0EDIAVrQeAAbGogAWoiASkDCDcDCCADIAEpAwA3AwAgBUEBaiEFDAALAAsgACAHKQOgAjcDACAAIAcpA6gCNwMIIAdBwARqJAAFIAcgBUEEdCIGaiIIIAEgBmoiBikDADcDACAIIAYpAwg3AwggBUEBaiEFDAELCws/AQJ/A0AgACgCECICKALwASIBRSAAIAFGckUEQCABIgAoAhAoAvABIgFFDQEgAiABNgLwASABIQAMAQsLIAALCgAgAC0AC0EHdgsYACAALQAAQSBxRQRAIAEgAiAAEL8HGgsLIAECfyAAEDxBAWoiARBIIgJFBEBBAA8LIAIgACABEB8LKQEBfkHIkgtByJILKQMAQq3+1eTUhf2o2AB+QgF8IgA3AwAgAEIhiKcLxAEBA38CfwJAIAEoAkwiAkEATgRAIAJFDQFB3JELKAIAIAJB/////wNxRw0BCwJAIABB/wFxIgIgASgCUEYNACABKAIUIgMgASgCEEYNACABIANBAWo2AhQgAyAAOgAAIAIMAgsgASACEMAHDAELIAFBzABqIgQQpAwaAkACQCAAQf8BcSICIAEoAlBGDQAgASgCFCIDIAEoAhBGDQAgASADQQFqNgIUIAMgADoAAAwBCyABIAIQwAchAgsgBBDrAxogAgsLqwMCBX8BfiAAvUL///////////8Ag0KBgICAgICA+P8AVCABvUL///////////8Ag0KAgICAgICA+P8AWHFFBEAgACABoA8LIAG9IgdCIIinIgJBgIDA/wNrIAenIgVyRQRAIAAQzAUPCyACQR52QQJxIgYgAL0iB0I/iKdyIQMCQCAHQiCIp0H/////B3EiBCAHp3JFBEACQAJAIANBAmsOAgABAwtEGC1EVPshCUAPC0QYLURU+yEJwA8LIAJB/////wdxIgIgBXJFBEBEGC1EVPsh+T8gAKYPCwJAIAJBgIDA/wdGBEAgBEGAgMD/B0cNASADQQN0QZDTCGorAwAPCyAEQYCAwP8HRyACQYCAgCBqIARPcUUEQEQYLURU+yH5PyAApg8LAnwgBgRARAAAAAAAAAAAIARBgICAIGogAkkNARoLIAAgAaOZEMwFCyEAAkACQAJAIANBAWsOAwABAgQLIACaDwtEGC1EVPshCUAgAEQHXBQzJqahvKChDwsgAEQHXBQzJqahvKBEGC1EVPshCcCgDwsgA0EDdEGw0whqKwMAIQALIAALFQAgAARAIABCADcCACAAQgA3AggLC5YBAgF/AX4CQCAAEDcgARA3Rw0AAkACQAJAIAEoAgBBA3EOAgABAgsDQCAAIAFGIgINAyABKAJEIgENAAsMAgsCQCAAIAEpAwgiAxDDAyIBQQFyDQBBACEBIAAgABA3IgJGDQAgAiADEMMDIgJFDQAgACACQQEQhgEaIAIhAQsgAUEARw8LIAAgAUEAENgCQQBHIQILIAILRAICfwF8IABBACAAQQBKGyEAA0AgACADRkUEQCABIANBA3QiBGorAwAgAiAEaisDAKIgBaAhBSADQQFqIQMMAQsLIAULOwECfyAAKAIEIgEEQCABIQADQCAAIgEoAgAiAA0ACyABDwsDQCAAIAAoAggiASgCAEcgASEADQALIAALOgEBfwJAIAFFDQAgABDCAygCACABQQEQnwQiAkUgAkEIaiABR3INACAAIAEQ1gIPCyAAIAFBABD5CAuZAgEGfyAAKAIIIgVBgCBxBEAgACgCDA8LAkAgBUEBcQRAIAAoAhAiAiAAKAIUQQJ0aiEGA0AgAiAGTw0CIAIoAgAiBARAAkAgAUUEQCAEIgMhAQwBCyABIAQ2AgALA0AgASIEKAIAIgENAAsgAiAENgIAIAQhAQsgAkEEaiECDAALAAsgACgCDCIDRQRAQQAhAwwBCwNAIAMoAgQiAQRAIAMgASgCADYCBCABIAM2AgAgASEDDAELCyADIQEDQCABIgQoAgAiAQRAIAEoAgQiAkUNAQNAIAEgAigCADYCBCACIAE2AgAgAiIBKAIEIgINAAsgBCABNgIADAELCyAAKAIIIQULIAAgAzYCDCAAIAVBgCByNgIIIAMLoQEBAn8CQCAAECNFIAIgAWtBBUhyDQAgASACEKIFIAJBBGshBCAAEEIiAiAAECNqIQUCQANAAkAgAiwAACEAIAEgBE8NACAAQQBMIABB/wBOckUEQCABKAIAIAIsAABHDQMLIAFBBGohASACIAUgAmtBAUpqIQIMAQsLIABBAEwgAEH/AE5yDQEgAiwAACAEKAIAQQFrSw0BCyADQQQ2AgALC4QBAQJ/IwBBEGsiAiQAIAAQqAEEQCAAKAIAIAAQ+AIaEK8FCyABECMaIAEQqAEhAyAAIAEoAgg2AgggACABKQIANwIAIAFBABDUASACQQA6AA8gASACQQ9qENMBAkAgACABRiIBIANyRQ0ACyAAEKgBIAFyRQRAIAAQqQMaCyACQRBqJAALUAEBfgJAIANBwABxBEAgASADQUBqrYYhAkIAIQEMAQsgA0UNACACIAOtIgSGIAFBwAAgA2utiIQhAiABIASGIQELIAAgATcDACAAIAI3AwgLzgkCBH8EfiMAQfAAayIGJAAgBEL///////////8AgyEJAkACQCABUCIFIAJC////////////AIMiCkKAgICAgIDA//8AfUKAgICAgIDAgIB/VCAKUBtFBEAgA0IAUiAJQoCAgICAgMD//wB9IgtCgICAgICAwICAf1YgC0KAgICAgIDAgIB/URsNAQsgBSAKQoCAgICAgMD//wBUIApCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhBCABIQMMAgsgA1AgCUKAgICAgIDA//8AVCAJQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQQMAgsgASAKQoCAgICAgMD//wCFhFAEQEKAgICAgIDg//8AIAIgASADhSACIASFQoCAgICAgICAgH+FhFAiBRshBEIAIAEgBRshAwwCCyADIAlCgICAgICAwP//AIWEUA0BIAEgCoRQBEAgAyAJhEIAUg0CIAEgA4MhAyACIASDIQQMAgsgAyAJhFBFDQAgASEDIAIhBAwBCyADIAEgASADVCAJIApWIAkgClEbIggbIQogBCACIAgbIgxC////////P4MhCSACIAQgCBsiC0IwiKdB//8BcSEHIAxCMIinQf//AXEiBUUEQCAGQeAAaiAKIAkgCiAJIAlQIgUbeSAFQQZ0rXynIgVBD2sQtgEgBikDaCEJIAYpA2AhCkEQIAVrIQULIAEgAyAIGyEDIAtC////////P4MhASAHBH4gAQUgBkHQAGogAyABIAMgASABUCIHG3kgB0EGdK18pyIHQQ9rELYBQRAgB2shByAGKQNQIQMgBikDWAtCA4YgA0I9iIRCgICAgICA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AxA8EKsCGiAAQZzYA0EBEKsCGiACIAErAwgQsQsgACACEKoFIgAgABA8EKsCGiACEF8gAkEQaiQAC18BAn8gAkUEQEEADwsgAC0AACIDBH8CQANAIAMgAS0AACIERyAERXINASACQQFrIgJFDQEgAUEBaiEBIAAtAAEhAyAAQQFqIQAgAw0AC0EAIQMLIAMFQQALIAEtAABrCzoBAX8CQCACRQ0AIAAQLyACEM8DIgMgAkcNACADEHZFDQAgACABIAJBARCSDA8LIAAgASACQQAQkgwLLgAQmQwgACkDAEGgkAsQD0HIkAtB2JALQdSQC0HAkAsoAgAbKAIANgIAQaCQCwsoAQF/IAAoAkQiAUEBRgRAIAAQngwgAEEANgJEDwsgACABQQFrNgJEC5kBAQR/AkACQEHckQsoAgAiBCAAKAJMIgNB/////3txRgRAQX8hAiAAKAJEIgFB/////wdGDQIgACABQQFqNgJEDAELIABBzABqIQFBfyECAkAgA0EASARAIAFBADYCAAwBCyADDQILIAEgASgCACIBIAQgARs2AgAgAQ0BIABBxJELEJwMC0EAIQILIAIEQCAAQcSRCxCcDAsLHgAgAEUEQEGJ2gFBjoIBQRVBuo8BEAAACyAAKAIICwwAIABBhaEFQQAQbQs9AQJ/IABBACAAQQBKGyEAA0AgACAERkUEQCADIARBA3QiBWogAiABIAVqKwMAojkDACAEQQFqIQQMAQsLCz0AIAEoAgggAk0EQEHCvANB4oMBQT1BhyUQAAALIAAgASgCACABKAIEIAJqIAEoAgxwQcgAbGpByAAQHxoLnQIBB38jAEEQayIGJAACQAJAIAAoAggiBSAAKAIMIgFHBEAgACgCACECIAAoAgQhAwwBCyAFQQF0QQEgBRsiAUHmzJkzSwRAQcQAIQAMAgsgACgCACABQShsEDoiAkUEQEEwIQAMAgsgAiAAKAIMIgRBKGxqQQAgASAEa0EobBAzGiAEIAAoAggiBSAAKAIEIgNqSQRAIANBKGwhByACIAEgBCADayIEayIDQShsaiACIAdqIARBKGwQUxogACADNgIECyAAIAE2AgwgACACNgIACyACIAMgBWogAXBBKGxqQQBBKBAzGiAAIAAoAggiAEEBajYCCCAGQRBqJAAgAA8LIAYgABB4NgIAQbj8CCgCAEHaigQgBhAeGhAoAAuhAQECfwJAAkAgARA8IgJFDQAgABBGIAAQJGsgAkkEQCAAIAIQqgMLIAAQJCEDIAAQJwRAIAAgA2ogASACEB8aIAJBgAJPDQIgACAALQAPIAJqOgAPIAAQJEEQSQ0BQbzAA0HJhAFBhQJBsvAAEAAACyAAKAIAIANqIAEgAhAfGiAAIAAoAgQgAmo2AgQLDwtB+NQBQcmEAUGDAkGy8AAQAAALZQEBfwJAIAErAwAgASsDEGNFDQAgASsDCCABKwMYY0UNACAAIAAoAlAiAkEBajYCUCAAKAJUIAJBBXRqIgAgASkDGDcDGCAAIAEpAxA3AxAgACABKQMINwMIIAAgASkDADcDAAsLBwAgABBSGgsPACAAIAAoAgAoAgwRAgALBwAgABAjRQsRACAAIAEgASgCACgCHBEDAAsRACAAIAEgASgCACgCGBEDAAsuACAAIAAoAghBgICAgHhxIAFB/////wdxcjYCCCAAIAAoAghBgICAgHhyNgIICwkAIAAgATYCAAsLACAAIAEgAhCwBQsTACAAIAEgAiAAKAIAKAIMEQQACyMBAX8gAkEATgR/IAAoAgggAkECdGooAgAgAXFBAEcFQQALCxMAIABBIHIgACAAQcEAa0EaSRsLggEBAn8gAkUEQEEADwsgAC0AACIDBH8CQANAIAEtAAAiBEUNASACQQFrIgJFDQECQCADIARGDQAgAxCAAiABLQAAEIACRg0AIAAtAAAhAwwCCyABQQFqIQEgAC0AASEDIABBAWohACADDQALQQAhAwsgAwVBAAsQgAIgAS0AABCAAmsLPQEDfyMAQRBrIgEkACABIAA2AgwgASgCDCICKAIAIgMEQCACIAM2AgQgAigCCBogAxAYCyABQRBqJAAgAAsKACAALQAYQQFxC90DAwd/BHwBfiMAQdAAayIHJAAgAigCCCILQQAgC0EAShshDCABtyEOIAC3IQ8gAigCBCEIAkADQCAJIAxHBEAgByAIKQMINwNIIAgpAwAhEiAHIAcrA0ggDqA5A0ggByAHKQNINwM4IAcgEjcDQCAHIAcrA0AgD6A5A0AgByAHKQNANwMwIwBBIGsiCiQAIAogBykDODcDGCAKIAcpAzA3AxAgAyAKQQhqQQQgAygCABEEACAKQSBqJAAEQEEAIQgMAwUgCUEBaiEJIAhBEGohCAwCCwALCyAGIAIoAgxBBXRqIgYrAwgQMSEQIAYrAwAhESAEIAEgBWy3IBChOQMIIAQgACAFbLcgERAxoTkDACACKAIEIQhBACEJA0AgCSAMRwRAIAcgCCkDCDcDSCAIKQMAIRIgByAHKwNIIA6gOQNIIAcgBykDSDcDKCAHIBI3A0AgByAHKwNAIA+gOQNAIAcgBykDQDcDICADIAdBIGoQuAkgCUEBaiEJIAhBEGohCAwBCwtBASEIQYzhCi0AAEECSQ0AIAQrAwAhDiAHIAQrAwg5AxggByAOOQMQIAcgATYCCCAHIAA2AgQgByALNgIAQbj8CCgCAEG/+wQgBxAyCyAHQdAAaiQAIAgLiQEBAX8jAEEgayICJAAgAiABKQMINwMIIAIgASkDADcDACACQRBqIAJByIQLKAIAQdoAbBCgAyABIAIpAxg3AwggASACKQMQNwMAIAEgASsDAEHQhAsrAwChOQMAIAEgASsDCEHYhAsrAwChOQMIIAAgASkDADcDACAAIAEpAwg3AwggAkEgaiQAC6IRAgZ/DHwjAEGgBGsiBCQAAkAgAigCICIGBEAgAEIANwMAIABCADcDCCAAIAYpAxg3AxggACAGKQMQNwMQIAEoAgQhBQNAIAUgCEYEQCAAIAk2AgAgBEHAA2ogAhCDBiABKAIYIggoAgAhASAEIAQpA9gDNwOYAyAEIAQpA9ADNwOQAyAEIAQpA8gDNwOIAyAEIAQpA8ADNwOAAyAIIAEgBEGAA2oQ4w4iAUUNAyABIQgDQCAIBEACQCAIKAIEKAIgIgYgAkYNACAEQaADaiAGEK8IIAQgBCkDyAM3A+gCIAQgBCkD0AM3A/ACIAQgBCkD2AM3A/gCIAQgBCkDqAM3A8gCIAQgBCkDsAM3A9ACIAQgBCkDuAM3A9gCIAQgBCkDwAM3A+ACIAQgBCkDoAM3A8ACIAQrA9gDIQ8gBCsD0AMhECAEKwPIAyELIAQrA7gDIREgBCsDsAMhDiAEKwOoAyEMIAQrA8ADIQ0gBCsDoAMhCgJAIARB4AJqIARBwAJqEIwDRQ0AIAsgDBAiIQsgDyARECohDCANIAoQIiEKIBAgDhAqIAqhIAwgC6GiIgxEAAAAAAAAAABkRQ0AIAQgBCkD2AM3A/gDIAQgBCkD0AM3A/ADIAQgBCkDyAM3A+gDIAQgBCkDwAM3A+ADAkAgA0EFIAIgBhDhDiIFIAVBAEgbQQJ0aiIHKAIAIgUEQCAEQYAEaiAFEK8IIAQgBCkDyAM3A6gCIAQgBCkD0AM3A7ACIAQgBCkD2AM3A7gCIAQgBCkDiAQ3A4gCIAQgBCkDkAQ3A5ACIAQgBCkDmAQ3A5gCIAQgBCkDwAM3A6ACIAQgBCkDgAQ3A4ACIAQrA5gEIRIgBCsDkAQhEyAEKwOIBCENRAAAAAAAAAAAIQogBCsD+AMhDyAEKwPwAyEQIAQrA+gDIQsgBCsD4AMhESAEKwOABCEOIARBoAJqIARBgAJqEIwDBEAgCyANECIhDSAPIBIQKiELIBEgDhAiIQogECATECogCqEgCyANoaIhCgsgCkQAAAAAAAAAACAKIAxkGyEKAkAgBygCACIFKAIgRQ0AIARBgARqIAUQgwYgBCAEKQPoAzcD6AEgBCAEKQPwAzcD8AEgBCAEKQP4AzcD+AEgBCAEKQOIBDcDyAEgBCAEKQOQBDcD0AEgBCAEKQOYBDcD2AEgBCAEKQPgAzcD4AEgBCAEKQOABDcDwAEgBCsD+AMhEiAEKwPwAyETIAQrA+gDIQ4gBCsDmAQhDyAEKwOQBCEQIAQrA4gEIQ1EAAAAAAAAAAAhFCAEKwPgAyERIAQrA4AEIQsgBEHgAWogBEHAAWoQjAMEQCAOIA0QIiEOIBIgDxAqIQ0gESALECIhCyATIBAQKiALoSANIA6hoiEUCyAMIBRjRQ0AIBQgChAiIQoLIApEAAAAAAAAAABkDQELIAcgBjYCACAMIQoLIAogFaAhFSAJQQFqIQkLIAYoAiAiBUUNACAFLQAkRQ0AIARBoANqIAYQgwYgBCAEKQPIAzcDqAEgBCAEKQPQAzcDsAEgBCAEKQPYAzcDuAEgBCAEKQOoAzcDiAEgBCAEKQOwAzcDkAEgBCAEKQO4AzcDmAEgBCAEKQPAAzcDoAEgBCAEKQOgAzcDgAEgBCsD2AMgBCsD0AMhECAEKwPIAyAEKwO4AyERIAQrA7ADIQ4gBCsDqAMgBCsDwAMhDSAEKwOgAyEKIARBoAFqIARBgAFqEIwDRQ0AECIhCyARECohDCANIAoQIiEKIBAgDhAqIAqhIAwgC6GiIgxEAAAAAAAAAABkRQ0AAkAgA0EFIAIgBhDhDiIFIAVBAEgbQQJ0aiIHKAIAIgUEQCAEQYAEaiAFEK8IIAQgBCkDyAM3A2ggBCAEKQPQAzcDcCAEIAQpA9gDNwN4IAQgBCkDiAQ3A0ggBCAEKQOQBDcDUCAEIAQpA5gENwNYIAQgBCkDwAM3A2AgBCAEKQOABDcDQCAEKwPYAyESIAQrA9ADIRMgBCsDyAMhDSAEKwOYBCEPIAQrA5AEIRAgBCsDiAQhC0QAAAAAAAAAACEKIAQrA8ADIREgBCsDgAQhDiAEQeAAaiAEQUBrEIwDBEAgDSALECIhDSASIA8QKiELIBEgDhAiIQogEyAQECogCqEgCyANoaIhCgsgCkQAAAAAAAAAACAKIAxkGyEKAkAgBygCACIFKAIgRQ0AIARBgARqIAUQgwYgBCAEKQPIAzcDKCAEIAQpA9ADNwMwIAQgBCkD2AM3AzggBCAEKQOIBDcDCCAEIAQpA5AENwMQIAQgBCkDmAQ3AxggBCAEKQPAAzcDICAEIAQpA4AENwMAIAQrA9gDIRIgBCsD0AMhEyAEKwPIAyEOIAQrA5gEIQ8gBCsDkAQhECAEKwOIBCENRAAAAAAAAAAAIRQgBCsDwAMhESAEKwOABCELIARBIGogBBCMAwRAIA4gDRAiIQ4gEiAPECohDSARIAsQIiELIBMgEBAqIAuhIA0gDqGiIRQLIAwgFGNFDQAgFCAKECIhCgsgCkQAAAAAAAAAAGQNAQsgByAGNgIAIAwhCgsgCiAVoCEVIAlBAWohCQsgCCgCACEIDAEFIAAgFTkDCCAAIAk2AgADQCABKAIAIAEQGCIBDQALDAULAAsACwJAAkAgAiABKAIAIAhBKGxqIgdGDQAgBysDECIKRAAAAAAAAAAAZARAIAcrAxhEAAAAAAAAAABkDQELIApEAAAAAAAAAABiDQEgBysDGEQAAAAAAAAAAGINASAHKwMAIgwgBisDECIKZEUNACAMIAogBisDAKBjRQ0AIAcrAwgiDCAGKwMYIgpkRQ0AIAwgCiAGKwMIoGNFDQAgCUEBaiEJCyAIQQFqIQgMAQsLIAAgCTYCAEHmnwNBt8IBQZ8BQe2GARAAAAtBufYAQbfCAUGuAkGTMRAAAAsgBEGgBGokAAtBAQJ/AkAgACgCECICKAKoASIBBEAgACABRg0BIAEQhwIhASAAKAIQIAE2AqgBIAEPCyACIAA2AqgBIAAhAQsgAQsVACAAKAI8BEAgACgCECABOQOgAQsLZAECfwJAIAAoAjwiBEUNACAEKAJoIgVFDQAgACgCECgCmAFFDQAgAC0AmQFBIHEEQCAAIAEgAiADIAURBwAPCyAAIAAgASACQRAQGSACEJkCIgAgAiADIAQoAmgRBwAgABAYCwtuAQF/IwBBQGoiAyQAIAMgASkDADcDACADIAEpAwg3AwggAyABKQMYNwMoIAMgASkDEDcDICADIAMrAwg5AzggAyADKwMAOQMQIAMgAysDIDkDMCADIAMrAyg5AxggACADQQQgAhBDIANBQGskAAuhAgEDfyMAQRBrIgQkAAJAAkAgAEGbNBAmIgJFDQAgAi0AACIDRQ0BAkAgA0EwRwRAIANBMWtB/wFxQQlJDQEgAkHYrwEQLkUEQEEEIQMMBAsgAkHcqgEQLkUEQEEMIQMMBAtBAiEDIAJB95sBEC5FDQMgAkGVnwEQLkUNAyACQeedARAuRQRAQQAhAwwECyACQZzkABAuRQ0DIAJBrOQAEC5FBEBBCCEDDAQLIAJBtp4BEC5FBEBBBiEDDAQLIAJB8Z4BEC5FDQEgAkGzkgEQLkUNAUEKIQMgAkHVMxAuRQ0DIAQgAjYCAEG7xwQgBBArDAILQQIhAwwCC0EKIQMMAQsgASEDCyAAKAIQIgAgAC8BiAEgA3I7AYgBIARBEGokAAu9AgICfwN8IwBBQGoiAiQAIAAoAhAiACgCdCEDIAIgACkDKDcDGCACIAApAyA3AxAgAiAAKQMYNwMIIAIgACkDEDcDACABKwM4IgQgAUEgQRggA0EBcSIDG2orAwBEAAAAAAAA4D+iIgWgIQYgBCAFoSIEIAIrAwBjBEAgAiAEOQMACyABQRhBICADG2orAwAhBSABKwNAIQQgAisDECAGYwRAIAIgBjkDEAsgBCAFRAAAAAAAAOA/oiIFoCEGIAQgBaEiBCACKwMIYwRAIAIgBDkDCAsgAisDGCAGYwRAIAIgBjkDGAsgAiACKQMANwMgIAIgAikDGDcDOCACIAIpAxA3AzAgAiACKQMINwMoIAAgAikDODcDKCAAIAIpAzA3AyAgACACKQMoNwMYIAAgAikDIDcDECACQUBrJAALXwEDfyMAQRBrIgMkAEHmigUhBQNAIAIgBEYEQCADQRBqJAAFIAAgBRAaGiADIAEgBEEEdGoiBSkDCDcDCCADIAUpAwA3AwAgACADEOkBIARBAWohBEGc2AMhBQwBCwsLEgAgACgCACIABEAgABDSCxoLCxEAIAAgASgCABDSCzYCACAAC0EBAX8gACABNwNwIAAgACgCLCAAKAIEIgJrrDcDeCAAIAFQIAEgACgCCCIAIAJrrFlyBH8gAAUgAiABp2oLNgJoC4UBAQN/A0AgACICQQFqIQAgAiwAACIBEM0CDQALQQEhAwJAAkACQCABQf8BcUEraw4DAQIAAgtBACEDCyAALAAAIQEgACECC0EAIQAgAUEwayIBQQlNBEADQCAAQQpsIAFrIQAgAiwAASACQQFqIQJBMGsiAUEKSQ0ACwtBACAAayAAIAMbCxMAIAAgAUGHrAFBFUGOggEQpAQLCgAgACgCAEEDcQs6AQJ/IABBACAAQQBKGyEAA0AgACADRkUEQCACIANBA3QiBGogASAEaisDADkDACADQQFqIQMMAQsLC14AIABFBEBB6tsBQY7DAUHtAEGEpAEQAAALIABBMEEAIAAoAgBBA3FBA0cbaigCKCgCEEHIAWogABCQBiAAQVBBACAAKAIAQQNxQQJHG2ooAigoAhBBwAFqIAAQkAYLfAICfwN8IwBBIGsiAiQAIAEEQEG5yAEhAyABKwMAIQQgASsDCCEFIAErAxAhBiACIAAoAhAoAgQiAUEDTQR/IAFBAnRBoMsIaigCAAVBucgBCzYCGCACIAY5AxAgAiAFOQMIIAIgBDkDACAAQdmOBCACEB0LIAJBIGokAAsyAQF/IwBBEGsiAiQAIAIgATkDACAAQZKOASACEJQBIAAQqAYgAEEgENwBIAJBEGokAAsiAQF/AkAgACgCPCIBRQ0AIAEoAkwiAUUNACAAIAERAQALC8wBAgJ/BXwgACsD4AIiBiAAKwOQBKIhByAGIAArA4gEoiEGIAArA4AEIQggACsD+AMhCQJAIAAoAugCRQRAA0AgAyAERg0CIAIgBEEEdCIAaiIFIAYgCSAAIAFqIgArAwCgojkDACAFIAcgCCAAKwMIoKI5AwggBEEBaiEEDAALAAsDQCADIARGDQEgASAEQQR0IgBqIgUrAwghCiAAIAJqIgAgByAJIAUrAwCgojkDCCAAIAYgCCAKoJqiOQMAIARBAWohBAwACwALIAILUwAgASgCCCACTQRAQcK8A0HnwQFBpANBmyUQAAALIAAgASgCACABKAIEIAJqIAEoAgxwQRhsaiIBKQMANwMAIAAgASkDEDcDECAAIAEpAwg3AwgLqQEBAn8jAEEwayIFJAAgACAFQSxqELcHIQYCfyAAIAUoAixGBEAgBSAANgIEIAUgATYCAEHasQEgBRArQQEMAQsgAyAGSARAIAUgAzYCGCAFIAA2AhQgBSABNgIQQaCyASAFQRBqECtBAQwBCyACIAZKBEAgBSACNgIoIAUgADYCJCAFIAE2AiBB+bEBIAVBIGoQK0EBDAELIAQgBjYCAEEACyAFQTBqJAALhwQDA38CfgF9IwBBIGsiBiQAAkACQAJAAkAgAUEEaiIBQQVPBEBBASEHIAVBAkYNAgwBC0EBIQdBHSABdkEBcSAFQQJGcg0BCyAAIAZBHGoQ9wQiASgC9AMNAUEAIQcgAUGYBEGQBEGYBCAAIAFGGyAFG2oiACkDACIJIAMgAmsiCKwiCkJ/hVYNACAAIAkgCnw3AwAgASkDkAQhCSABKQOYBCEKIAEQ3QkhC0EBIQcgASkDqAQgCSAKfFgEQCALIAEqAqQEXyEHCyABKAKgBEECSQ0AIAFB5ooFENwJIAEoAvQDDQIgBkEKNgIQIAZB5ooFNgIUIAYgBigCHDYCCCAGIAQ2AgwgBkGL2AFBotcBIAUbNgIEIAYgCDYCAEEAIQVBuPwIKAIAIgBBlr8DIAYQHhoCQAJAAkAgCEEZSA0AIAEoAqAEQQNPDQADQCAFQQpGDQIgAiAFai0AABDZBiAAEI0BGiAFQQFqIQUMAAsACwNAIAIgA08NAiACLQAAENkGIAAQjQEaIAJBAWohAgwACwALQd/PAUEEQQEgABBMGiADQQprIQEDQCABIANPDQEgAS0AABDZBiAAEI0BGiABQQFqIQEMAAsAC0G7hgVBAkEBIAAQTBoLIAZBIGokACAHDwtBij5BqcYBQfs/QdiwARAAAAtBij5BqcYBQcY/QfeMARAAAAspAQF/IwBBEGsiASQAIAEgADYCAEG4/AgoAgBB6IwEIAEQHhpBAhAHAAtbAQN/IAAoAgAhAQJAIAAoAgQiAkUEQCAAIAE2AgQMAQsDQCABRQ0BIAEoAgAgASACNgIAIAAgATYCBCABIQIhAQwACwALIABBADYCECAAQQA2AgAgAEIANwIIC0oBA38DQCABIARHBEAgABCwAiEFIAAQpQwEQEEADwUgBEEBaiEEIAUgA0EIdHIhAwwCCwALCyADQQBOBH8gAiADNgIAQQEFQQALC00BA38DQCABIANHBEAgABCwAiEFIAAQpQwEQEEADwUgBSADQQN0dCAEciEEIANBAWohAwwCCwALCyAEQQBOBH8gAiAENgIAQQEFQQALCwkAIAAgARCXAQsxACAAKAIIIAFNBEBBwrwDIAUgBCADEAAACyAAKAIAIAAoAgQgAWogACgCDHAgAnRqCwsAIAAgATYCACAAC4QBAQJ/IwBBEGsiAiQAIAAQqAEEQCAAKAIAIAAQ+AIaEKcECyABECMaIAEQqAEhAyAAIAEoAgg2AgggACABKQIANwIAIAFBABDUASACQQA2AgwgASACQQxqEN4BAkAgACABRiIBIANyRQ0ACyAAEKgBIAFyRQRAIAAQqQMaCyACQRBqJAALugEBAn8jAEEQayIFJAAgBSABNgIMQQAhAQJAIAICf0EGIAAgBUEMahBbDQAaQQQgA0HAACAAEIQBIgYQ/gFFDQAaIAMgBhDaAyEBA0ACQCAAEJgBGiABQTBrIQEgACAFQQxqEFsgBEECSHINACADQcAAIAAQhAEiBhD+AUUNAyAEQQFrIQQgAyAGENoDIAFBCmxqIQEMAQsLIAAgBUEMahBbRQ0BQQILIAIoAgByNgIACyAFQRBqJAAgAQu6AQECfyMAQRBrIgUkACAFIAE2AgxBACEBAkAgAgJ/QQYgACAFQQxqEFwNABpBBCADQcAAIAAQhQEiBhD/AUUNABogAyAGENsDIQEDQAJAIAAQmQEaIAFBMGshASAAIAVBDGoQXCAEQQJIcg0AIANBwAAgABCFASIGEP8BRQ0DIARBAWshBCADIAYQ2wMgAUEKbGohAQwBCwsgACAFQQxqEFxFDQFBAgsgAigCAHI2AgALIAVBEGokACABC5UBAQN/IwBBEGsiBCQAIAQgATYCDCAEIAM2AgggBEEEaiAEQQxqEI8CIAQoAgghAyMAQRBrIgEkACABIAM2AgwgASADNgIIQX8hBQJAQQBBACACIAMQYiIDQQBIDQAgACADQQFqIgMQSCIANgIAIABFDQAgACADIAIgASgCDBBiIQULIAFBEGokABCOAiAEQRBqJAAgBQtjACACKAIEQbABcSICQSBGBEAgAQ8LAkAgAkEQRw0AAkACQCAALQAAIgJBK2sOAwABAAELIABBAWoPCyACQTBHIAEgAGtBAkhyDQAgAC0AAUEgckH4AEcNACAAQQJqIQALIAALLgACQCAAKAIEQcoAcSIABEAgAEHAAEYEQEEIDwsgAEEIRw0BQRAPC0EADwtBCgtGAQF/IAAoAgAhAiABEHAhACACQQhqIgEQxgIgAEsEfyABIAAQogMoAgBBAEcFQQALRQRAEJMBAAsgAkEIaiAAEKIDKAIAC8ACAQN/IwBBEGsiBSQAAkACQAJAAkAgAUUgAkVyRQRAIAAtAJkBQQRxDQECQAJ/IAAoAgAoAmwiAwRAIAAgASACIAMRBAAMAQsgACgCKCIDBEAgACgCLCAAKAIwIgRBf3NqIAJJBEAgACACIARqQQFqIgQ2AiwgACADIAQQOiIDNgIoIANFDQYgACgCMCEECyADIARqIAEgAhAfGiAAIAAoAjAgAmoiATYCMCAAKAIoIAFqQQA6AAAMAgsgACgCJCIDRQ0FIAFBASACIAMQTAsgAkcNBQsgAiEDCyAFQRBqJAAgAw8LQZvoBEEAIAAoAgwoAhARAwAQKAALQaS4BEEAIAAoAgwoAhARAwAQKAALQb/bAUG1xwFB0QBB7ggQAAALIAAoAgwoAhAhACAFIAI2AgBB28sEIAUgABEDABAoAAusAQEBfwJAIAAQJwRAIAAQJEEPRg0BCyAAECQgABBGTwRAIABBARCqAwsgABAkIQEgABAnBEAgACABakEAOgAAIAAgAC0AD0EBajoADyAAECRBEEkNAUG8wANByYQBQZ0CQZS6ARAAAAsgACgCACABakEAOgAAIAAgACgCBEEBajYCBAsCQCAAECcEQCAAQQA6AA8MAQsgAEEANgIECyAAECcEfyAABSAAKAIACwt9AQJ/IwBBEGsiBCQAIwBBIGsiAyQAIANBGGogASABIAJqELIFIANBEGogAygCGCADKAIcIAAQ5gsgAyABIAMoAhAQsQU2AgwgAyAAIAMoAhQQqAM2AgggBEEIaiADQQxqIANBCGoQ/QEgA0EgaiQAIAQoAgwaIARBEGokAAvjAQIEfgJ/IwBBEGsiBiQAIAG9IgVC/////////weDIQIgAAJ+IAVCNIhC/w+DIgNQRQRAIANC/w9SBEAgAkIEiCEEIANCgPgAfCEDIAJCPIYMAgsgAkIEiCEEQv//ASEDIAJCPIYMAQsgAlAEQEIAIQNCAAwBCyAGIAJCACAFp2dBIHIgAkIgiKdnIAJCgICAgBBUGyIHQTFqELYBQYz4ACAHa60hAyAGKQMIQoCAgICAgMAAhSEEIAYpAwALNwMAIAAgBUKAgICAgICAgIB/gyADQjCGhCAEhDcDCCAGQRBqJAALKwEBfgJ/IAGsIQMgACgCTEEASARAIAAgAyACEMYFDAELIAAgAyACEMYFCwuNAQECfwJAIAAoAkwiAUEATgRAIAFFDQFB3JELKAIAIAFB/////wNxRw0BCyAAKAIEIgEgACgCCEcEQCAAIAFBAWo2AgQgAS0AAA8LIAAQygUPCyAAQcwAaiICEKQMGgJ/IAAoAgQiASAAKAIIRwRAIAAgAUEBajYCBCABLQAADAELIAAQygULIAIQ6wMaCwkAIABBABDiAQuuAgMBfAF+AX8gAL0iAkIgiKdB/////wdxIgNBgIDA/wNPBEAgAqcgA0GAgMD/A2tyRQRARAAAAAAAAAAARBgtRFT7IQlAIAJCAFkbDwtEAAAAAAAAAAAgACAAoaMPCwJ8IANB/////gNNBEBEGC1EVPsh+T8gA0GBgIDjA0kNARpEB1wUMyamkTwgACAAIACiELgEoqEgAKFEGC1EVPsh+T+gDwsgAkIAUwRARBgtRFT7Ifk/IABEAAAAAAAA8D+gRAAAAAAAAOA/oiIAnyIBIAEgABC4BKJEB1wUMyamkbygoKEiACAAoA8LRAAAAAAAAPA/IAChRAAAAAAAAOA/oiIAnyIBIAAQuASiIAAgAb1CgICAgHCDvyIAIACioSABIACgo6AgAKAiACAAoAsLLAEBf0G4/AgoAgAhAQNAIABBAExFBEBBl9gDIAEQjQEaIABBAWshAAwBCwsLGAAgACABIAIgAxDZAUQWVueerwPSPBAiC3YBAn8gAEGA9wlBABBtIgIgAUVyBH8gAgUgABA3IgEgAUEdQQBBARDMAxogARAbIQMDQCADBEAgACADENQFIAEgAxAtIQIDQCACBEAgACACENQFIAEgAhAwIQIMAQsLIAEgAxAcIQMMAQsLIABBgPcJQQAQbQsLtwEBAn8gAyADQR91IgVzIAVrIQUCQAJAAkAgAQ4EAAEBAQILIAAgAiAFIAQQNRogA0EATg0BIAAQeiEBA0AgAUUNAiABQQAgAiADIAQQtgIgARB5IQEMAAsACyAAEBshAyABQQFHIQYDQCADRQ0BAkAgBkUEQCADIAIgBSAEEDUaDAELIAAgAxAtIQEDQCABRQ0BIAEgAiAFIAQQNRogACABEDAhAQwACwALIAAgAxAcIQMMAAsACwsRACAAQQRBEEGAgICAARCDBwsxAQF/IAAoAgQiASgCICsDECABKwMYoCAAKwMIoSAAKAIAIgAoAiArAxAgACsDGKChC1ABAX9BCCEFAkACQAJAAkAgA0EBaw4EAwACAQILQRAhBQwCC0EEIQUMAQtBACEFCyAAIAEgAyAFIAQQhg4hACACQQBKBEAgACACEIUOCyAACy4BAn8gABAbIQEDQCABBEAgACABQQBBARCgCCACaiECIAAgARAcIQEMAQsLIAILpAEBA39BwAAQjwYiAiACKAIAQXxxQQFyNgIAIAJBwAIQjwYiATYCECACIAAQNzYCGCABQoCAgICAgID4PzcDYCABQQE6AKwBIAFCgICAgICAgPg/NwNYIAFBATYC7AEgAUKAgICAgICA+D83A1AgAUEANgLEAUEFQQQQ1QIhAyABQQA2AswBIAEgAzYCwAEgAUEFQQQQ1QI2AsgBIAAgAhDECCACCxMAIAAgASgCABDvDiABQgA3AgAL/QMBB38gBUEYQRQgAC0AABtqKAIAIAAQvAMiBigCKCAAKAIoIAEoAigQmAYgBEEAIARBAEobQQFqIQxBASELA0AgCyAMRkUEQCAAIgQgAhC7AyEAIAEiByADELsDIQECfyAELQAARQRAIAUoAhggABC8AyEJIAcoAighByAEKAIoIQggBigCKCEGIAArAwggBCsDEGEEQCAEKAIgIAYgCCAHEL0DIQYgCSgCKCEEQQFGBEAgACABIAYbIQcgASAAIAYbIQggCQwDCyABIAAgBhshByAAIAEgBhshCCAJDAILIAQoAiQgBiAIIAcQvQMhBiAJKAIoIQRBAUYEQCABIAAgBhshByAAIAEgBhshCCAJDAILIAAgASAGGyEHIAEgACAGGyEIIAkMAQsgBSgCFCAAELwDIQkgBygCKCEHIAQoAighCCAGKAIoIQYCfyAAKwMIIAQrAxBhBEAgBCgCICAGIAggBxC9AyEGIAkoAighBEECRgRAIAAgASAGGyEIIAEgACAGGwwCCyABIAAgBhshCCAAIAEg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QUBrJAALIwEBfyMAQRBrIgEkACABIAA2AgwgAUEMahCRByABQRBqJAALxQIBCH8jAEEgayICJAACQCAAIAJBHGoQmgUiAEUNACACKAIcIgVBAEwNAANAIAAtAAAiA0UNASADQS1HBEAgAEEBaiEADAELCyACQgA3AxAgAkIANwMIIABBAWohBkEAIQMDQCAEIAVIBEAgAyAGaiIHLAAAIggEQCACQQhqIAgQ+woCQCAHLQAAQdwARgRAIANFDQEgACADai0AAEHcAEcNAQsgBEEBaiEECyADQQFqIQMMAgUgAkEIahBfQQAhBAwDCwALCyABIwBBEGsiASQAAkAgAkEIaiIAECcEQCAAIAAQJCIFEMwCIgQNASABIAVBAWo2AgBBuPwIKAIAQdPzAyABEB4aECgACyAAQQAQ+wogACgCACEECyAAQgA3AgAgAEIANwIIIAFBEGokACAENgIAIAMgBmohBAsgAkEgaiQAIAQLVAEDfyMAQRBrIgEkAEHo5AooAgACQCAARQ0AIAAQqgEiAg0AIAEgABA8QQFqNgIAQbj8CCgCAEHT8wMgARAeGhAoAAtB6OQKIAI2AgAgAUEQaiQACw8AIAAgACgCACgCJBECAAsRACAAIAEgASgCACgCIBEDAAsRACAAIAEgASgCACgCLBEDAAsMACAAQYKGgCA2AAALEQAgABBCIAAQI0ECdGoQngcLDQAgACgCACABKAIARwsOACAAEEIgABAjahCeBwsWACAAIAEgAiADIAAoAgAoAiARBgAaCw4AIAAoAghB/////wdxC4ABAQJ/IwBBEGsiBCQAIwBBIGsiAyQAIANBGGogASABIAJBAnRqELIFIANBEGogAygCGCADKAIcIAAQ5AsgAyABIAMoAhAQsQU2AgwgAyAAIAMoAhQQqAM2AgggBEEIaiADQQxqIANBCGoQ/QEgA0EgaiQAIAQoAgwaIARBEGokAAtFAQF/IwBBEGsiBSQAIAUgASACIAMgBEKAgICAgICAgIB/hRC3ASAFKQMAIQEgACAFKQMINwMIIAAgATcDACAFQRBqJAALtQEBA38jAEEgayIDJAACQAJAIAEsAAAiAgRAIAEtAAENAQsgACACEMEFIQEMAQsgA0EAQSAQMxogAS0AACICBEADQCADIAJBA3ZBHHFqIgQgBCgCAEEBIAJ0cjYCACAB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IAJBBHRqIgMgAUEQayICQQhqKQMANwMIIAMgAikDADcDACAAIBEgEyAEEEMgERAYIA8gAikDCDcDKCAPIAIpAwA3AyAgDyABKQMYNwM4IA8gASkDEDcDMCAPIA8rAzAgDysDICABKwMAoaA5A0AgDyAPKwM4IA8rAyggASsDCKGgOQNIIAAgD0EwakECEDkgDyAPKQNINwM4IA8gDykDQDcDMCAAIA9BIGpBAhA5DBoFIBEgA0EEdCISaiIUIAEgEmoiEikDADcDACAUIBIpAwg3AwggA0EBaiEDDAELAAsACyACQQJqIgNBEBAZIgIgASkDCDcDCCACIAEpAwA3AwAgAiAQKQMgNwMQIAIgECkDKDcDGCACIBArAyAgECsDMCIGIBArA0ChRAAAAAAAAAhAoyIHoDkDICAQKwMoIQggECsDSCEJIBArAzghBSACIAYgB6A5AzAgAiAFIAUgCaFEAAAAAAAACECjIgWgOQM4IAIgCCAFoDkDKEEEIAMgA0EETRshESABQSBrIRNBBCEBA0AgASARRgRAIAAgAiADIAQQQyACEBggDyAQKQM4NwMoIA8gECkDMDcDICAPIBApAyg3AzggDyAQKQMgNwMwIAAgD0EgakECEDkMGQUgAiABQQR0IhJqIhQgEiATaiISKQMANwMAIBQgEikDCDcDCCABQQFqIQEMAQsACwALIAJBA2oiA0EQEBkiAiABQQhqKQMANwMIIAIgASkDADcDACACIAErAwAiBSAFIBArAxChIgZEAAAAAAAA0L+ioDkDECABKwMIIQggECsDSCEJIAIgECsDOCIHOQM4IAIgBSAGRAAAAAAAAALAoqA5AzAgAiAFIAYgBqChOQMgIAIgCCAHIAmhRAAAAAAAAAhAo6AiBTkDKCACIAU5AxggECsDMCEFIAIgBzkDSCACIAU5A0BBBCADIANBBE0bIREgAUEwayETQQQhAQNAIAEgEUYEQCAAIAIgAyAEEEMgAhAYDBgFIAIgAUEEdCISaiIUIBIgE2oiEikDADcDACAUIBIpAwg3AwggAUEBaiEBDAELAAsACyACQQRHDRtBBkEQEBkiAiABKQMINwMIIAIgASkDADcDACACIBApAyg3AxggAiAQKQMgNwMQIAIgECkDSDcDKCACIBApA0A3AyAgAiABKQMoNwM4IAIgASkDIDcDMCAC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AEcEQCACQbQBRg0BIAJBjgJGDQJBipYDQbDEAUGWAUHqiwEQAAALIAErAwghAyAAIAErAwA5AwggACADmjkDAA8LIAAgASsDADkDACAAIAErAwiaOQMIDwsgASsDCCEDIAAgASsDADkDCCAAIAM5AwAPCyAAIAEpAwA3AwAgACABKQMINwMICwoAIABBCGoQ2AMLDQAgACgCACABQQJ0agsZACAAEKgBBEAgACABEL8BDwsgACABENQBC2EBAX8jAEEQayICJAAgAiAANgIMAkAgACABRg0AA0AgAiABQQFrIgE2AgggACABTw0BIAIoAgwgAigCCBCyCyACIAIoAgxBAWoiADYCDCACKAIIIQEMAAsACyACQRBqJAALsQEBA38jAEEQayIHJAACQAJAIABFDQAgBCgCDCEGIAIgAWtBAnUiCEEASgRAIAAgASAIEOQDIAhHDQELIAYgAyABa0ECdSIBa0EAIAEgBkgbIgFBAEoEQCAAIAdBBGogASAFELsLIgUQQiABEOQDIQYgBRB3GiABIAZHDQELIAMgAmtBAnUiAUEASgRAIAAgAiABEOQDIAFHDQELIAQQvwsMAQtBACEACyAHQRBqJAAgAAuoAQEDfyMAQRBrIgckAAJAAkAgAEUNACAEKAIMIQYgAiABayIIQQBKBEAgACABIAgQ5AMgCEcNAQsgBiADIAFrIgFrQQAgASAGSBsiAUEASgRAIAAgB0EEaiABIAUQwAsiBRBCIAEQ5AMhBiAFEDQaIAEgBkcNAQsgAyACayIBQQBKBEAgACACIAEQ5AMgAUcNAQsgBBC/CwwBC0EAIQALIAdBEGokACAACw4AIAAgASgCADYCACAACwoAIAAgASAAa2oLCwAgAC0AC0H/AHEL6QEBBH8jAEEQayIEJAAgABBGIgMgAWoiASADQQF0QYAIIAMbIgIgASACSxshASAAECQhBQJAAkACQCAALQAPQf8BRgRAIANBf0YNAiAAKAIAIQIgAUUEQCACEBhBACECDAILIAIgARA6IgJFDQMgASADTQ0BIAIgA2pBACABIANrEDMaDAELIAFBARAZIgIgACAFEB8aIAAgBTYCBAsgAEH/AToADyAAIAE2AgggACACNgIAIARBEGokAA8LQd/JA0GYhQFBzQBB77oBEAAACyAEIAE2AgBBuPwIKAIAQdPzAyAEEB4aECgACwgAIABB/wFxC1ABAX4CQCADQcAAcQRAIAIgA0FAaq2IIQFCACECDAELIANFDQAgAkHAACADa62GIAEgA60iBIiEIQEgAiAEiCECCyAAIAE3AwAgACACNwMIC9sBAgF/An5BASEEAkAgAEIAUiABQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AURsNACACQgBSIANC////////////AIMiBkKAgICAgIDA//8AViAGQoCAgICAgMD//wBRGw0AIAAgAoQgBSAGhIRQBEBBAA8LIAEgA4NCAFkEQCAAIAJUIAEgA1MgASADURsEQEF/DwsgACAChSABIAOFhEIAUg8LIAAgAlYgASADVSABIANRGwRAQX8PCyAAIAKFIAEgA4WEQgBSIQQLIAQLFgAgAEUEQEEADwtB4I8LIAA2AgBBfwsLACAAIAEgAhEAAAtkAQJ/IwBBEGsiAyQAAkAgAEEAELUCIgBFDQACQAJAAkACQCABDgQAAQICAwsgACgCECECDAMLIAAoAgghAgwCCyAAKAIMIQIMAQsgAyABNgIAQeHOBCADEDYLIANBEGokACACC6QBAgN/AnwjAEEQayICJAAgABDDAiAAKAIQIgErAxhEAAAAAAAAUkCjIQQgASsDEEQAAAAAAABSQKMhBSAAEBshAQNAIAEEQCABKAIQKAKUASIDIAMrAwAgBaE5AwAgAyADKwMIIAShOQMIIAAgARAcIQEMAQsLIAIgACgCECIBKQMYNwMIIAIgASkDEDcDACAAIAIQgQ0gAEEBENgFIAJBEGokAAsPACABQQFqIAAgABCwAZ8LqAECBH8CfCABKAIAIQIgAEEEaiIDIQAgAyEBA0AgACgCACIABEAgACgCECIEKwMIIgYgAisDCCIHYwRAIABBBGohAAwCBSAAIAEgACACIARLIgQbIAYgB2QiBRshASAAIAAgBEECdGogBRshAAwCCwALCwJAAkAgASADRg0AIAIrAwgiBiABKAIQIgArAwgiB2MNACAAIAJNIAYgB2RyDQELIAMhAQsgAQtkAQF/IwBBEGsiBCQAIABBADsBHCAAQQA2AhggACADOQMIIAAgAjYCBCAAIAE2AgAgBCAANgIMIAFBNGogBEEMahDBASAAKAIEIAQgADYCCEEoaiAEQQhqEMEBIARB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BCgCECgClAEiBSsDADkDCCADIAUrAwg5AxAgA0EoaiAEIBYgFCAJER8ARQRAIANBATYCHCADIAc2AhggA0IANwNYIAMgBDYCACAHQQFqIQcgACAEEBwhBAwBCwtByIULKAIAEBhByIULQQA2AgAQmA0MAgtBACEHIAJBsANqQQBB0AAQMxogBQRAQciFCygCACEERP///////+9/IRRE////////7/8hGET////////v/yEbRP///////+9/IRkDQCAFIAdGBEBEmpmZmZmZqT8hFgJAIABBwOoAECYiAEUNACAALQAARQ0AIAAQsQIhFgtBkIYLIBsgGyAZoSAWoiIToCIXOQMAQZiGCyAZIBOhIhU5AwBBiIYLIBQgGCAUoSAWoiIToSIUOQMAQYCGCyAYIBOgIhM5AwAgAiAVOQPYAyACIBc5A+gDIAIgFTkDuAMgAiATOQPQAyACIBc5A8gDIAIgFDkD8AMgAiATOQPAAyACIBQ5A+ADIAEoAgAhAEEAEO8HIQkCQAJAIABBAkYEQCAJRQ0CIAJBsANqEJcNQQAhBQNAQciFCygCACEBQZSFCygCACEAQQAhBANAIAAgBEcEQCABIARB4ABsaiIJIAkrAwhEzczMzMzM8D+iOQMIIAkgCSsDEETNzMzMzMzwP6I5AxAgBEEBaiEEDAELCyAFQQFqIgUQ7wcNAAtBjOEKLQAARQ0BIAIgBTYCEEG4/AgoAgBByucDIAJBEGoQHhoMAQsgCUUNASACQbADahCXDUEAIQdBACEEA0AgAkGwA2oiASEAIAcEQCAAEJUNC0GohQtC/////////3c3AwBBoIULQv/////////3/wA3AwACQEGUhQsoAgAiAwRAIAAoAgAhCET////////vfyEURP///////+//IRZBACEAA0AgACADRg0CQaCFCyAUIAggAEECdGooAgAiBSsDABAqIhQ5AwBBqIULIBYgBSsDABAiIhY5AwAgAEEBaiEADAALAAtBlJsDQeDAAUHQAUHFmgEQAAALQbCFCyAIKAIAKwMIOQMAIAggA0ECdGpBBGsoAgArAwghE0HAhQsgFiAUoTkDAEG4hQsgEzkDAEQAAAAAAAAAACEVRAAAAAAAAAAAIRQjAEEwayINJAAQow0QpQ1BAUEQEBkiDEGYhQsoAgBBAnQiADYCBCAMIABBKBAZ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AUH/vwFB1QlBmTUQAAALQZrOAUH/vwFB6AlBmTUQAAALC3oBAX8jAEEQayIEJAAgAwRAIAMgACACIAIQ/AUiAjYCCEGM4QotAAAEQCAEIAI2AgBBuPwIKAIAQb3nAyAEEB4aCyADQQA2AhQgA0EAOgAMIAAgASADEKcIGiADKAIQIARBEGokAA8LQcbkAEGMxQFBhApB8eQAEAAACzwBAn8jAEEQayIBJABBASAAEEciAkUEQCABIAA2AgBBuPwIKAIAQdPzAyABEB4aECgACyABQRBqJAAgAgspAQF/A0AgACIBKAIQKAKwASIADQALA0AgASIAKAIQKAJ4IgENAAsgAAvgAQIIfAF/IAFBIEEYQcyECy0AACIMG2orAwAhBCACIAFBGEEgIAwbaisDACIFOQMYIAIgBDkDECACIAEpAzg3AwAgAiABQUBrKQMANwMIIAIgAisDACAERAAAAAAAAOA/oqEiBjkDACACIAIrAwggBUQAAAAAAADgP6KhIgc5AwggAysDACEIIAMrAwghCSADKwMQIQogACADKwMYIgsgBSAHoCIFIAUgC2MbOQMYIAAgCiAEIAagIgQgBCAKYxs5AxAgACAJIAcgByAJZBs5AwggACAIIAYgBiAIZBs5AwAL6QEBBH8jAEEQayIEJAAgABBGIgMgAWoiASADQQF0QYAIIAMbIgIgASACSxshASAAECQhBQJAAkACQCAALQAPQf8BRgRAIANBf0YNAiAAKAIAIQIgAUUEQCACEBhBACECDAILIAIgARA6IgJFDQMgASADTQ0BIAIgA2pBACABIANrEDMaDAELIAFBARBKIgIgACAFEB8aIAAgBTYCBAsgAEH/AToADyAAIAE2AgggACACNgIAIARBEGokAA8LQd/JA0GYhQFBzQBB77oBEAAACyAEIAE2AgBBuPwIKAIAQdPzAyAEEB4aECgAC3wBAXwgAEEATgRAIAFEAAAAAAAAAABjBEBBAA8LIAFEAAAAAAAA8D9kRSAAuCICRAAAwP///99BIAGjZEVyRQRAQf////8HDwsgASACoiIBmUQAAAAAAADgQWMEQCABqg8LQYCAgIB4DwtB3Z0DQZWEAUHKAEG83wAQAAALEgAgACABQa0kQS1BqsIBEMgBC7ECAQd/IwBBEGsiByQAAkACQCAAKAIIIgYgACgCDCICRwRA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ACADIAI2ArwBQaSECyABNgIAIANBADYCuAEgAQu5AQEDfyAAIABBMGoiAiAAKAIAQQNxQQNGGygCKCgCECIBKALgASABKALkASIBQQFqIAFBAmoQwgEhASAAIAIgACgCAEEDcUEDRhsoAigoAhAgATYC4AEgACACIAAoAgBBA3FBA0YbKAIoKAIQIgEgASgC5AEiA0EBajYC5AEgASgC4AEgA0ECdGogADYCACAAIAIgACgCAEEDcUEDRhsoAigoAhAiACgC4AEgACgC5AFBAnRqQQA2AgALIAAgACABIAIgAEGljwEQJiIABH8gABCRAgVBHgsQug8LTAAgASgCEEHAAWohAQNAIAEoAgAiAQRAIAEoAhAoApgCEBggASgCECgCoAIQGCABKAIQIgFBADYCsAEgAUG4AWohAQwBCwsgABCvDws/AQJ/IAAoAhAoAqgCIQADQCAAIgEoAgwiAEUgACABRnJFBEAgACgCDCICRQ0BIAEgAjYCDCACIQAMAQsLIAELCwAgACABQQEQww8LCwAgACABQQAQww8LugIBB38jAEEQayIHJAACQAJAIAAoAggiBiAAKAIMIgJHBEAgACgCACEDIAAoAgQhBAwBCyAGQQF0QQEgBhsiAkH///8/SwRAQcQAIQAMAgsgACgCACACQQV0EDoiA0UEQEEwIQAMAgsgAyAAKAIMIgVBBXRqQQAgAiAFa0EFdBAzGiAFIAAoAggiBiAAKAIEIgRqSQRAIARBBXQhCCADIAIgBSAEayIFayIEQQV0aiADIAhqIAVBBXQQUxogACAENgIECyAAIAI2AgwgACADNgIACyADIAQgBmogAnBBBXRqIgIgASkDADcDACACIAEpAxg3AxggAiABKQMQNwMQIAIgASkDCDcDCCAAIAAoAghBAWo2AgggB0EQaiQADwsgByAAEHg2AgBBuPwIKAIAQdqKBCAHEB4aECgAC1wAIAEoAgggAk0EQEHCvANB+YIBQQhBqSUQAAALIAAgASgCACABKAIEIAJqIAEoAgxwQQV0aiIBKQMANwMAIAAgASkDGDcDGCAAIAEpAxA3AxAgACABKQMINwMIC9oCAQV8IAEgAEE4bGoiACsAECEDAnwgACsAGCIEIAArAAgiBURIr7ya8td6PqBkRSAAKwAAIgYgA2NFIAQgBURIr7ya8td6vqBjcnFF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5DoQAAALIABBAnRB6M4IaigCAAsXACAAKAIAIgAgASgCACIBSiAAIAFIawu0AgEGfyMAQRBrIgckAAJAIAAgASACEL0DRQRAIAAoAgQgAUEYbGoiACEBAkAgACgCECIGIAAoAhQiAEcEQCABKAIIIQMgASgCDCEEDAELIAZBAXRBASAGGyIAQf////8DSwRAQcQAIQEMAwsgASgCCCAAQQJ0EDoiA0UEQEEwIQEMAwsgAyABKAIUIgVBAnRqQQAgACAFa0ECdBAzGiAFIAEoAhAiBiABKAIMIgRqSQRAIARBAnQhCCADIAAgBSAEayIFayIEQQJ0aiADIAhqIAVBAnQQUxogASAENgIMCyABIAA2AhQgASADNgIICyADIAQgBmogAHBBAnRqIAI2AgAgASABKAIQQQFqNgIQCyAHQRBqJAAPCyAHIAEQeDYCAEG4/AgoAgBB2ooEIAcQHhoQKAALFAAgACABQQJBmilBEUGuhAEQogILngECAn8BfgJAIAEgAkGABCABKAIAEQQAIgVFBEAgACgCECAAKAIAIgVBKGxqIgYgBTYCICAAIAVBAWo2AgAgBiEAIANFDQEgAyAAKAIgQQV0aiIFIAIpAwA3AwggAikDCCEHIAUgADYCACAFIAc3AxAgACAEOgAkIAEgBUEBIAEoAgARBAAaCyAFKAIADwtBgzJB5sUBQagCQdkcEAAAC8sDAgZ8A38jAEEQayIMJAADQAJAAkACQAJAAkAgBCACEDsiCygCAEEBaw4DAgEAAwsgCygCGCAMQRBqJAAPC0EkIQIgACsACCIFIAsrABAiB0RIr7ya8td6PqAiCGQNAiAFIAdESK+8mvLXer6gIgljRSAAKwAAIgogCysACCIGZHENAkEgIQIgBSAHoZlESK+8mvLXej5lRSAKIAahmURIr7ya8td6PmVFcg0CQSQhAiABKwAIIgUgCGQNAkEgQSRBICABKwAAIAZkGyAFIAljGyECDAILIAArAAAhBgJAAkAgACsACCIFIAMgCygCBCINQThsaiICKwAIoZlESK+8mvLXej5lBEAgBiACKwAAoZlESK+8mvLXej5lDQELIAUgAisAGKGZREivvJry13o+ZUUNASAGIAIrABChmURIr7ya8td6PmVFDQELIAUgASsDCKGZREivvJry13o+ZQRAQSBBJCABKwMAIAZj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FEEDdCIAaiAAIAdqKwMAIDWjOQMAIARBAWohFUEAIQBBACEDA0AgAyAURgRAA0AgACAERgRAQQAhAgNAIAIgEkYNBiAFIAJBA3QiAGogACANaisDADkDACACQQFqIQIMAAsABSAHIABBA3QiAmogAiAMaisDADkDACAAQQFqIQAMAQsACwALIA4gBCADayICQQJrIg9BA3QiF2oiESAHIBdqKwMAIjU5AwAgAkEBayECIAUgBCAPbEEDdGohFwNAIAIgBE8EQCARIDUgBSAPIBVsQQN0aisDAKM5AwAgA0EBaiEDDAIFIBEgNSAXIAJBA3QiGGorAwAgDiAYaisDAKKhIjU5AwAgAkEBaiECDAELAAsACwALQcTfCigCABoCQEGEtAFB+N4KEI0BQQBIDQACQEHI3wooAgBBCkYNAEGM3wooAgAiAEGI3wooAgBGDQBBjN8KIABBAWo2AgAgAEEKOgAADAELQfjeCkEKEMAHGgsLIA0QGCAMEBhBACEAA0BBzOEKLwEAIg4gAEsEQEHg4QorAwAhNRDXASE2IABBA3QiAiAKQaABamoiAyADKwMAIDUgNkQAAAAAAADwPyA1oSI1IDWgoqCiIjU5AwAgASgCECgClAEgAmoiAiA1IAIrAwCgOQMAIABBAWohAAwBCwsgCSgCECICIAIoApwBQQFqNgKcASACKAKYASISIAhqKAIAIQ1BACEAA0AgACAORgRAQQAhAwNAIAMgFkcEQAJAIAMgC0YNAEEAIQcgDSgCECgClAEgEiADQQJ0IgRqKAIAKAIQKAKUASAKQfABahCLDiE1A0AgByAORg0BIAdBA3QiACACKAKsASIMIAhqKAIAIARqKAIAaiIUIANBA3QiDyACKAKkASAIaigCAGorAwAgCkHwAWogAGorAwAiNiA2IAIoAqABIAhqKAIAIA9qKwMAoiA1o6GiIjY5AwAgAigCqAEiDyAIaigCACAAaiIRIDYgESsDAKA5AwAgBCAMaigCACAIaigCACAAaiIMKwMAITYgDCAUKwMAmiI3OQMAIAQgD2ooAgAgAGoiACA3IDahIAArAwCgOQMAIAdBAWohBwwACwALIANBAWohAwwBCwtBhOUKKAIABEBBACEAQczhCi8BACECRAAAAAAAAAAAITYDQCAAIAJHBEAgNiAKQaABaiAAQQN0aisDAJmgITYgAEEBaiEADAELCyABECAhACAKIDafOQM4IAogADYCMCATQcCuBCAKQTBqEDILIAUQGAwFBSACKAKoASAIaigCACAAQQN0akIANwMAIABBAWohAAwBCwALAAsgA0EBaiEDDAALAAsLQQAhAEGM4QotAAAEQEEBIAYgBkEBTBtBAWshBUHM4QovAQAhB0QAAAAAAAAAACE1A0AgACAFRwRAIAkoAhAiAigCmAEiCCAAQQJ0IgRqKAIAIRYgAEEBaiIBIQMDQCADIAZGBEAgASEADAMFIAggA0ECdGooAgAhC0EAIQBEAAAAAAAAAAAhNgNAIAAgB0cEQCAAQQN0Ig4gFigCECgClAFqKwMAIAsoAhAoApQBIA5qKwMAoSI3IDeiIDagITYgAEEBaiEADAELCyADQQN0IgAgAigCpAEgBGooAgBqKwMAIAIoAqABIARqKAIAIABqKwMAIjdEAAAAAAAAAMCiIDafoiA3IDeiIDagoKIgNaAhNSADQQFqIQMMAQsACwALCyAKIDU5AyAgE0H4jgEgCkEgahAyQcjhCigCACEBIAkoAhAoApwBIQAgChCQATkDGCAKIAA2AhAgCkGL0QNB5ooFIAAgAUYbNgIUIBNBs9IEIApBEGoQMgsgCSgCECgCnAEiAEHI4QooAgBGBEAgCiAJECA2AgQgCiAANgIAQbGBBCAKECsLIApBwAJqJAALIBBB0AFqJAAPC0GiuwNB24EBQcIAQd8jEAAAC4QBAQN/IwBBkAhrIgIkAAJAQczhCi8BAEEDSQ0AQejiCigCAEUNACAAEBshAQNAIAFFDQEgAiABKAIQKAKUASsDEEQAAAAAAABSQKI5AwAgAkEQaiIDQYAIQbaMASACEKEBGiABQejiCigCACADEHIgACABEBwhAQwACwALIAJBkAhqJAALpSECEn8KfCMAQfAAayIIJABBoOEKKwMAIRoCQAJAQZjhCigCAARAQaDhCkKAgICAgICAqcAANwMAIAAQ9gwgABDgByMAQZABayIEJAAgACIDQQBB498AQQAQISEHIABBAEGIyQFBABAhIQIgAEGqmgEQJhBqIRIgAkUEQCAAQQBBiMkBQeaKBRAhIQILIANBABCPDhoCQAJAA0AgAygCECgCmAEgAUECdGooAgAiAARAIAAoAhAiBi0AhwEEfyAGBSAAECBBvz0QxwJFDQMgACgCEAsoAnwiBgRAIAAgBkHI3wAQuwQLIAFBAWohAQwBCwsgAyAHIAIQ+QwCQCADELoCRQRAQQIhBwwBC0EAIQcgA0ECQd8wQQAQISIJRQ0AQZjhCigCAEECSA0AIAMQGyEKA0AgCgRAIAMgChAtIQYDQCAGBEACQCAGIAkQQSIBLQAARQ0AIAYgBEH8AGogBEH4AGoQ/QZEAAAAAAAAAAAhE0EAIQxEAAAAAAAAAAAhFUQAAAAAAAAAACEWRAAAAAAAAAAAIRRBACENA0AgBCAEQYwBajYCSCAEIARBgAFqNgJEIAQgBEHYAGo2AkAgAUHu8AAgBEFAaxBPQQJGBEBBASENIAQrA4ABIRUgASAEKAKMAWohASAEKwNYIRMLIAQgBEGMAWo2AjggBCAEQYABajYCNCAEIARB2ABqNgIwQQAhAiABQfrwACAEQTBqEE9BAkYEQEEBIQwgBCsDgAEhFCAEKwNYIRYgASAEKAKMAWohAQsgASEAA0ACQAJAAkACQCAALQAAIgcODgMCAgICAgICAgEBAQEBAAsgB0EgRw0BCyAAQQFqIQAMAgsgAkEBaiECA0ACQAJAIAdB/wFxIgcODgMBAQEBAQEBAQQEBAQEAAsgB0EgRg0DIAdBO0YNAgsgAC0AASEHIABBAWohAAwACwALCyACQQNwQQFGIAJBBE5xRQRAIAYQiAVBvIYLLQAAQbyGC0EBOgAAQQFxDQIgBkEwQQAgBigCAEEDcUEDRxtqKAIoECAhACAEIAZBUEEAIAYoAgBBA3FBAkcbaigCKBAgNgIkIAQgADYCIEG47QMgBEEgahArDAILIAJBEBAZIgshACACIQcDQCAHBEAgBCAEQYwBajYCGCAEIARBgAFqNgIUIAQgBEHYAGo2AhAgAUH98AAgBEEQahBPQQFMBEBBvIYLLQAAQbyGC0EBOgAAQQFxRQRAIAZBMEEAIAYoAgBBA3FBA0cbaigCKBAgIQAgBCAGQVBBACAGKAIAQQNxQQJHG2ooAigQIDYCBCAEIAA2AgBBv/YEIAQQKwsgCxAYIAYQiAUMBAUgBCgCjAEhDiAAIAQrA1g5AwAgACAEKwOAATkDCCAHQQFrIQcgAEEQaiEAIAEgDmohAQwCCwALCwNAIAEtAAAiDkEJayIAQRdLQQEgAHRBn4CABHFFckUEQCABQQFqIQEMAQsLIAYgAhD/BiEHIA0EQCAEKAJ8IQAgByAVOQMYIAcgEzkDECAHIAA2AggLIAwEQCAEKAJ4IQAgByAUOQMoIAcgFjkDICAHIAA2AgwLIAFBAWohAUEAIQADQCAAIAJHBEAgAEEEdCIPIAcoAgBqIhAgCyAPaiIPKQMANwMAIBAgDykDCDcDCCAAQQFqIQAMAQsLIAsQGCAODQALIAYoAhAiACgCYCIBBEAgBiABQePfABC7BCAGKAIQIQALIAAoAmwiAQRAIAYgAUHI3wAQuwQgBigCECEACyAAKAJkIgEEfyAGIAFB3t8AELsEIAYoAhAFIAALKAJoIgAEQCAGIABB1t8AELsECyAFQQFqIQULIAMgBhAwIQYMAQsLIAMgChAcIQoMAQsLIAVFBEBBACEHDAELQQJBASADELoCIAVGGyEHC0EAIQZBACECIAMoAhAoAggiACgCWCIMBEAgAEEANgJUQQEhAgsCQCAMDQBBmOEKKAIAQQFHDQAgAxDABEUNAEEBIQYgAygCECgCDCIARQ0AIABBADoAUQsgAxDDAiAMBEAgAygCECEKRAAAAAAAAAAAIRVEAAAAAAAAAAAhFkEAIQ1BACEOQQAhDyMAQUBqIgUkACADKAIQIgAoApABIRAgBEHYAGoiASAAKQMQNwMAIAEgACkDKDcDGCABIAApAyA3AxAgASAAKQMYNwMIAkAgACgCCCgCWCILRQ0AAkAgASsDACABKwMQYg0AIAErAwggASsDGGINACABQv////////93NwMYIAFC//////////f/ADcDACABQv/////////3/wA3AwggAUL/////////dzcDEAsgCygCCCEAA0AgDSALKAIATw0BIAVCADcDOCAFQgA3AzAgBUIANwMoIAVCADcDIAJAAkACQAJAAkACQAJAAkAgACgCAA4QAAABAQICAwQHBwUHBwcHBgcLIAAgACsDECIXIAArAyAiGKAiEzkDaCAAIAArAwgiGyAAKwMYIhygIhQ5A2AgACAXIBihIhc5A1ggACAbIByhIhg5A1AgASABKwMAIBgQKiAUECo5AwAgASABKwMYIBcQIiATECI5AxggASABKwMIIBcQKiATECo5AwggASABKwMQIBgQIiAUECI5AxAMBgsgBSAAKAIMIAAoAgggARDABiAAIAUpAxg3A2ggACAF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A0cbaigCKCgCECgClAEiBSsDCKJEAAAAAAAAUkCiIRAgFSAFKwMAokQAAAAAAABSQKIhESAUIANBUEEAIAJBAkcbaigCKCgCECgClAEiAisDCKJEAAAAAAAAUkCiIRIgFSACKwMAokQAAAAAAABSQKIhEyABKAIAIQIDQCAEIAhGBEACQCAHKAJgIgFFDQAgAS0AUUEBRw0AIAEgDyABKwM4ojkDOCABIA0gASsDQKI5A0ALAkAgBygCZCIBRQ0AIAEtAFFBAUcNACABIBMgASsDOKA5AzggASASIAErA0CgOQNACyAHKAJoIgFFDQMgAS0AUUEBRw0DIAEgESABKwM4oDkDOCABIBAgASsDQKA5A0AMAwsgAigCBCIKQQFrIQsgAigCACEBQQAhBSAEIAlHIQwDQCAFIApGBEAgAigCCARAIAIgESACKwMQoDkDECACIBAgAisDGKA5AxgLIAIoAgwEQCACIBMgAisDIKA5AyAgAiASIAIrAyigOQMoCyAEQQFqIQQgAkEwaiECDAIFIAECfCAEIAVyRQRAIAEgESABKwMAoDkDACAQIAErAwigDAELIAErAwAhDiAMIAUgC0dyRQRAIAEgEyAOoDkDACASIAErAwigDAELIAEgDyAOojkDACANIAErAwiiCzkDCCAFQQFqIQUgAUEQaiEBDAELAAsACwALIAAgBhAcIQYMAgsgACADEDAhAwwACwALAAsgABAbIQEDQCABBEAgASgCECgClAEiAiAPIAIrAwCiOQMAIAIgDSACKwMIojkDCCAAIAEQHCEBDAELCyAAIA8gDRCCDUEBIQMLIAAQGyEBA0AgAQRAIAEoAhAiAiACKAKUASIEKwMARAAAAAAAAFJAojkDECACIAQrAwhEAAAAAAAAUkCiOQMYIAAgARAcIQEMAQsLIAML7AIBBH8jAEGAAWsiByQAIAJBACACQQBKGyECAkADQCACIAhGBEAgBCADIAMgBEgbIQQDQCADIARGIgINAyAGIANBAnRqKAIAIQggByAAKQMINwM4IAcgACkDADcDMCAHIAEpAwg3AyggByABKQMANwMgIAcgBSADQQR0aiIJKQMINwMYIAcgCSkDADcDECAHIAUgCEEEdGoiCCkDCDcDCCAHIAgpAwA3AwAgA0EBaiEDIAdBMGogB0EgaiAHQRBqIAcQvgRFDQALDAILIAYgCEECdGooAgAhCSAHIAApAwg3A3ggByAAKQMANwNwIAcgASkDCDcDaCAHIAEpAwA3A2AgByAFIAhBBHRqIgopAwg3A1ggByAKKQMANwNQIAcgBSAJQQR0aiIJKQMINwNIIAcgCSkDADcDQCAIQQFqIQggB0HwAGogB0HgAGogB0HQAGogB0FAaxC+BEUNAAtBACECCyAHQYABaiQAIAIL/RECGn8MfCMAQTBrIgMkAEHIhQsoAgAhBUGUhQsoAgAhAgNAIAIgD0YEQANAIAJBAWsgC00EQEGM4QotAABBAUsEQCADIBA2AiQgAyAANgIgQbj8CCgCAEHl5wMgA0EgahAeGgsgA0EwaiQAIBAPC0HIhQsoAgAgC0HgAGxqIhNBKGohCSALQQFqIg8hCwNAIAIgC00EQCAPIQsMAgUgAyATKQMQNwMYIAMgEykDCDcDECADQciFCygCACALQeAAbGoiBykDEDcDCCADIAcpAwg3AwBBACECQQAhBiMAQbAEayIBJAAgASADKQMYNwOoAyABIAMpAxA3A6ADIAEgCSkDCDcDmAMgASAJKQMANwOQAyABQeADaiABQaADaiABQZADahDiBSABIAMpAxg3A4gDIAEgAykDEDcDgAMgASAJKQMYNwP4AiABIAkpAxA3A/ACIAFB0ANqIAFBgANqIAFB8AJqEOIFIAEgAykDCDcD6AIgASADKQMANwPgAiABIAcpAzA3A9gCIAEgBykDKDcD0AIgAUHAA2ogAUHgAmogAUHQAmoQ4gUgASADKQMINwPIAiABIAMpAwA3A8ACIAEgBykDQDcDuAIgASAHKQM4NwOwAiABQbADaiABQcACaiABQbACahDiBQJAIAErA+ADIAErA7ADZUUNACABKwPAAyABKwPQA2VFDQAgASsD6AMgASsDuANlRQ0AIAErA8gDIAErA9gDZUUNAEEBIQIgCSgCKCIFQQFxBEAgBy0AUEEBcQ0BCwJAIAVBAnFFDQAgBy0AUEECcUUNACADKwMQIAMrAwChIhsgG6IgAysDGCADKwMIoSIbIBuioCAJKwMQIAkrAwChIAcrAzigIAcrAyihIhsgG6JEAAAAAAAA0D+iZEUhAgwBC0HQhQsoAgAiBUUEQEHQhQtBzIULKAIAELcCNgIAQdSFC0HMhQsoAgAQtwI2AgBB0IULKAIAIQULIAkoAiAiDEEAIAxBAEobIQggAysDGCEbIAMrAxAhHCAJKAIkIQQgBSECA0AgBiAIRwRAIAIgHCAEKwMAoDkDACACIBsgBCsDCKA5AwggBkEBaiEGIAJBEGohAiAEQRBqIQQMAQsLQQAhBiAHKAJIIg1BACANQQBKGyEIIAMrAwghGyADKwMAIRwgBygCTCEEQdSFCygCACIUIQIDQCAGIAhHBEAgAiAcIAQrAwCgOQMAIAIgGyAEKwMIoDkDCCAGQQFqIQYgAkEQaiECIARBEGohBAwBCwsgDUEBdCEXIAxBAXQhGCANQQFrIRkgDEEBayEaQQAhAkEAIQRBACEGQQAhCAJAAkADQCABIAUgCEEEdGoiCikDCDcDqAIgASAKKQMANwOgAiABIAUgCCAaaiAMb0EEdGoiESkDCDcDmAIgASARKQMANwOQAiABQaAEaiABQaACaiABQZACahCtDSABIBQgBkEEdGoiDikDCDcDiAIgASAOKQMANwOAAiABIBQgBiAZaiANb0EEdGoiEikDCDcD+AEgASASKQMANwPwASABQZAEaiABQYACaiABQfABahCtDSABQgA3A/gDIAFCADcD6AEgASABKQOoBDcD2AEgASABKQOYBDcDyAEgAUIANwPwAyABQgA3A+ABIAEgASkDoAQ3A9ABIAEgASkDkAQ3A8ABIAErA+gBIAErA9gBIhuhIAErA8ABIAErA9ABIhyhoiABKwPIASAboSABKwPgASAcoaKhIR8gASARKQMINwO4ASABIBEpAwA3A7ABIAEgCikDCDcDqAEgASAKKQMANwOgASABIA4pAwg3A5gBIAEgDikDADcDkAEgAUGwAWogAUGgAWogAUGQAWoQrA0hFSABIBIpAwg3A4gBIAEgEikDADcDgAEgASAOKQMINwN4IAEgDikDADcDcCABIAopAwg3A2ggASAKKQMANwNgIAFBgAFqIAFB8ABqIAFB4ABqEKwNIRYgASARKQMINwNYIAEgESkDADcDUCABIAopAwg3A0ggASAKKQMANwNAIAEgEikDCDcDOCABIBIpAwA3AzAgASAOKQMINwMoIAEgDikDADcDICABKwMwIiAgASsDWCIbIAFBQGsiCisDCCIhoaIgASsDICIlICEgG6EiIqIgASsDUCIeIAErAygiHSABKwM4IhyhoiImIAor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JGoQ6gUgAhCxASECDAELAAsACyABKAIUIQIgASgCECIFBEAgBSgCBCIIKwMAIQ8gCCsDCCEQIAEoAgQiCCsDACERIAgrAwghEiAAQSAQiwEgBSgCACABKAIAIBIgEaEgECAPoaBEAAAAAAAA4D+iELQDNgIYIABBKGogAEEYahDBASAFIAEoAhQ2AhQLIAJFDQAgAigCBCIFKwMAIQ8gBSsDCCEQIAEoAgQiBSsDACERIAUrAwghEiAAQSAQiwEgASgCACACKAIAIBIgEaEgECAPoaBEAAAAAAAA4D+iELQDNgIYIABBKGogAEEYahDBASACIAEoAhA2AhALIABBOGogAEEkahDqBQwBCyAAQThqIABBJGoQswMiAiAAKAI4RwRAIAEgAhCKCCgCECICNgIQIAIgATYCFAsgAEE4aiAAQSRqELMDELEBIgIgC0YNACABIAIoAhAiAjYCFCACIAE2AhALIAZBGGohBgwACwAFIAIgBkECdGoiCSgCACAFIAZBBXQiC2oiBysDACIPIAcrAwggD6FEAAAAAAAA4D+ioCIPOQMIIAAgDzkDKCAAQThqIgUgCSAHIABBKGoiBxDdDSAAQQA2AhggACABKAIAIAtqKwMQOQMoIABBxABqIgkgAEEYaiIMIAUgBxDpBSAAQQE2AhggACABKAIAIAtqKwMYOQMoIAZBAWohBiAJIAwgBSAHEOkFIAUQ2wEMAQsACwALIA4QggIaIApBEGokAAUgCkEEaiABIAZBBXRqIgAgAEEQaiAAQQhqIABBGGoQzw0gBkEBaiEGDAELCwtSAQF/QcAAEIsBIgJCADcDKCACQQA6ACQgAkEANgIgIAJCADcDGCACIAE5AxAgAkQAAAAAAADwPzkDCCACIAA2AgAgAkIANwMwIAJCADcDOCACC1IAIAAgASACIAQQ0gICQCADIAIgBCgCABEAAEUNACACIAMQuQEgAiABIAQoAgARAABFDQAgASACELkBIAEgACAEKAIAEQAARQ0AIAAgARC5AQsLOwECfyAAKAIAIgEEQCABIQADQCAAIgEoAgQiAA0ACyABDwsDQCAAIAAoAggiASgCAEYgASEADQALIAALXQEEfyAAQaDYCjYCAEGIhQtBADYCACAAQQRqIgJBBGohBCACKAIAIQEDQCABIARHBEAgASgCECIDBEAgAxDrDRoL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RQ0BQcDlCigCACIBBH8gASAAQYAEIAEoAgARBAAFQQALDwtB16ABQdHGAUGsBUH2qwEQAAALQczPAUHRxgFBrQVB9qsBEAAACxUBAX8Q0AMhAEEPQbDlCigCACAAGwuZAgECfyABKAJEIQEDQCABLQAAIgIEQAJAAkAgAUHv3wFBBRCBAkUNACABQbPYAUEHEIECRQ0AIAFB4uIBQQUQgQJFDQAgAUGw1wFBCRCBAg0BCwJ/AkADQAJAAkACQCACQf8BcSICQQprDgQEAQECAAsgAkUNAwsgAS0AASECIAFBAWohAQwBCwtBASABLQABQQpHDQEaIAFBAmohAQwECyACQQBHCyECIAEgAmohAQwCCwJ/AkADQAJAAkACQCACQf8BcSIDQQprDgQEAQECAAsgA0UNAwsgACACwBBnIAEtAAEhAiABQQFqIQEMAQsLQQJBASABLQABQQpGGwwBCyADQQBHCyECIABBChBnIAEgAmohAQwBCwsLyAICAn8BfCMAQYACayIDJAAgAisDECEFIAMgACkDCDcDeCADIAApAwA3A3AgAyABKQMINwNoIAMgASkDADcDYCADQeABaiADQfAAaiADQeAAahDSAwJAIAUgAysD4AFmRQ0AIAMgACkDCDcDWCADIAApAwA3A1AgAyABKQMINwNIIAMgASkDADcDQCADQcABaiADQdAAaiADQUBrENIDIAMrA9ABIAIrAwBmRQ0AIAIrAxggAyAAKQMINwM4IAMgACkDADcDMCADIAEpAwg3AyggAyABKQMANwMgIANBoAFqIANBMGogA0EgahDSAyADKwOoAWZFDQAgAyAAKQMINwMYIAMgACkDADcDECADIAEpAwg3AwggAyABKQMANwMAIANBgAFqIANBEGogAxDSAyADKwOYASACKwMIZiEECyADQYACaiQAIAQLagICfAF/AkAgASsDECAAKwA4IgIgACsDGEQAAAAAAADgP6IiA6FmRQ0AIAErAwAgAyACoGVFDQAgASsDGCAAKwBAIgIgACsDIEQAAAAAAADgP6IiA6FmRQ0AIAErAwggAyACoGUhBAsgBAsoAQF/A38gAAR/IAAoAgQQpwogAWpBAWohASAAKAIAIQAMAQUgAQsLC/oCAQZ/IwBBEGsiBiQAAkACQAJAIAAoAgAiAy0AAEEjRgRAIAMtAAEiAkHf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AkACQAJAIAEoAgBBAmsODQAAAQECAwQEBgcIBQUJCyABKAIMEBgMCAsgASgCDBAYDAcLIAEoAgwQGAwGCyABKAIoEBgMBQsgASgCCBAYDAQLQQAhAgJAAkACQAJAIAEoAghBAWsOAgABAwsDQCABKAI0IQMgAiABKAIwTg0CIAMgAkEEdGooAggQGCACQQFqIQIMAAsACwNAIAEoAkQhAyACIAEoAkBODQEgAyACQQR0aigCCBAYIAJBAWohAgwACwALIAMQGAsMAwsgASgCEBAYDAILIAEoAggQGAwBCyABKAIoEBgLIARBAWohBAwBCwsgBRAYIAAQGAsJACAAQQA2AgALSQEBfyMAQRBrIgMkAAJAAkAgAkEeSw0AIAEtAHhBAXENACABQQE6AHgMAQsgAhD9CiEBCyADQRBqJAAgACACNgIEIAAgATYCAAtAAQF/IwBBEGsiASQAIAAQoQMaIAFB/////wM2AgwgAUH/////BzYCCCABQQxqIAFBCGoQ6AsoAgAgAUEQaiQACwsAIABBADYCACAACzcBAX8jAEEQayIDJAAgAyABEO0CNgIMIAMgAhDtAjYCCCAAIANBDGogA0EIahCwBSADQRBqJAALTgEBfyMAQRBrIgMkACADIAE2AgggAyAANgIMIAMgAjYCBEEAIQEgA0EEaiIAIANBDGoQrQVFBEAgACADQQhqEK0FIQELIANBEGokACABC98BAQN/IAAQJCAAEEZPBEAgABBGIgJBAWoiAyACQQF0QYAIIAIbIgQgAyAESxshAyAAECQhBAJAIAAtAA9B/wFGBEAgACgCACACIANBARCcBSECDAELIANBARBKIgIgACAEEB8aIAAgBDYCBAsgAEH/AToADyAAIAM2AgggACACNgIACyAAECQhAgJAIAAQJwRAIAAgAmogAToAACAAIAAtAA9BAWo6AA8gABAkQRBJDQFBvMADQcmEAUGdAkGUugEQAAALIAAoAgAgAmogAToAACAAIAAoAgRBAWo2AgQLCzQBAX8jAEEQayIDJAAgABAjGiAAIAIQowMgA0EAOgAPIAEgAmogA0EPahDTASADQRBqJAALHAAgAEH/////A0sEQBCTAQALIABBAnRBBBDdCwsJACAAEJIHEBgLngcBCn8jAEGgAWsiAiQAAkAgAEUNAEEBQRQQSiIDQdAAIAEg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ELILCyACIAEgASACKAIAEN4LIAZBDGogAyAAKAIAENYLIAFqNgIAIAZBEGokAAtCACABIAIgAyAEQQQQpQIhASADLQAAQQRxRQRAIAAgAUHQD2ogAUHsDmogASABQeQASRsgAUHFAEgbQewOazYCAAsLQAAgAiADIABBCGogACgCCCgCBBECACIAIABBoAJqIAUgBEEAEKcFIABrIgBBnwJMBEAgASAAQQxtQQxvNgIACwtAACACIAMgAEEIaiAAKAIIKAIAEQIAIgAgAEGoAWogBSAEQQAQpwUgAGsiAEGnAUwEQCABIABBDG1BB282AgALC0IAIAEgAiADIARBBBCmAiEBIAMtAABBBHFFBEAgACABQdAPaiABQewOaiABIAFB5ABJGyABQcUASBtB7A5rNgIACwtAACACIAMgAEEIaiAAKAIIKAIEEQIAIgAgAEGgAmogBSAEQQAQqQUgAGsiAEGfAkwEQCABIABBDG1BDG82AgALC0AAIAIgAyAAQQhqIAAoAggoAgARAgAiACAAQagBaiAFIARBABCpBSAAayIAQacBTARAIAEgAEEMbUEHbzYCAAsLBABBAgveAQEFfyMAQRBrIgckACMAQRBrIgMkACAAIQQCQCABQff///8DTQRAAkAgARCZBQRAIAQgARDUAQwBCyADQQhqIAEQ1gNBAWoQ1QMgAygCDBogBCADKAIIIgAQ/AEgBCADKAIMEPsBIAQgARC/AQsjAEEQayIFJAAgBSACNgIMIAAhAiABIQYDQCAGBEAgAiAFKAIMNgIAIAZBAWshBiACQQRqIQIMAQsLIAVBEGokACADQQA2AgQgACABQQJ0aiADQQRqEN4BIANBEGokAAwBCxDMAQALIAdBEGokACAEC8AFAQ5/IwBBEGsiCyQAIAYQzQEhCiALQQRqIAYQ3QMiDhDKASAFIAM2AgACQAJAIAAiBy0AACIGQStrDgMAAQABCyAKIAbAENIBIQYgBSAFKAIAIghBBGo2AgAgCCAGNgIAIABBAWohBwsCQAJAIAIgByIGa0EBTA0AIAYtAABBMEcNACAGLQABQSByQfgARw0AIApBMBDSASEIIAUgBSgCACIHQQRqNgIAIAcgCDYCACAKIAYsAAEQ0gEhCCAFIAUoAgAiB0EEajYCACAHIAg2AgAgBkECaiIHIQYDQCACIAZNDQIg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QX8LCAAgABCoBxoLRAECfwJAIAAoAgAgASgCACAAKAIEIgAgASgCBCICIAAgAkkiAxsQ6gEiAQ0AQQEhASAAIAJLDQBBf0EAIAMbIQELIAELvg8CBX8PfiMAQdACayIFJAAgBEL///////8/gyEKIAJC////////P4MhCyACIASFQoCAgICAgICAgH+DIQwgBEIwiKdB//8BcSEIAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgCEH//wFrQYGAfksNAQsgAVAgAkL///////////8AgyINQoCAgICAgMD//wBUIA1CgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhDAwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEMIAMhAQwCCyABIA1CgICAgICAwP//AIWEUARAIAMgAkKAgICAgIDA//8AhYRQBEBCACEBQoCAgICAgOD//wAhDAwDCyAMQoCAgICAgMD//wCEIQxCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEBCACEBDAILIAEgDYRQBEBCgICAgICA4P//ACAMIAIgA4RQGyEMQgAhAQwCCyACIAOEUARAIAxCgICAgICAwP//AIQhDEIAIQEMAgsgDUL///////8/WARAIAVBwAJqIAEgCyABIAsgC1AiBht5IAZBBnStfKciBkEPaxC2AUEQIAZrIQYgBSkDyAIhCyAFKQPAAiEBCyACQv///////z9WDQAgBUGwAmogAyAKIAMgCiAKUCIHG3kgB0EGdK18pyIHQQ9rELYBIAYgB2pBEGshBiAFKQO4AiEKIAUpA7ACIQMLIAVBoAJqIApCgICAgICAwACEIhJCD4YgA0IxiIQiAkIAQoCAgICw5ryC9QAgAn0iBEIAEKABIAVBkAJqQgAgBSkDqAJ9QgAgBEIAEKABIAVBgAJqIAUpA5gCQgGGIAUpA5ACQj+IhCIEQgAgAkIAEKABIAVB8AFqIARCAEIAIAUpA4gCfUIAEKABIAVB4AFqIAUpA/gBQgGGIAUpA/ABQj+IhCIEQgAgAkIAEKABIAVB0AFqIARCAEIAIAUpA+gBfUIAEKABIAVBwAFqIAUpA9gBQgGGIAUpA9ABQj+IhCIEQgAgAkIAEKABIAVBsAFqIARCAEIAIAUpA8gBfUIAEKABIAVBoAFqIAJCACAFKQO4AUIBhiAFKQOwAUI/iIRCAX0iAkIAEKABIAVBkAFqIANCD4ZCACACQgAQoAEgBUHwAGogAkIAQgAgBSkDqAEgBSkDoAEiDSAFKQOYAXwiBCANVK18IARCAVatfH1CABCgASAFQYABakIBIAR9QgAgAkIAEKABIAYgCSAIa2ohBgJ/IAUpA3AiE0IBhiIOIAUpA4gBIg9CAYYgBSkDgAFCP4iEfCIQQufsAH0iFEIgiCICIAtCgICAgICAwACEIhVCAYYiFkIgiCIEfiIRIAFCAYYiDUIgiCIKIBAgFFatIA4gEFatIAUpA3hCAYYgE0I/iIQgD0I/iHx8fEIBfSITQiCIIhB+fCIOIBFUrSAOIA4gE0L/////D4MiEyABQj+IIhcgC0IBhoRC/////w+DIgt+fCIOVq18IAQgEH58IAQgE34iESALIBB+fCIPIBFUrUIghiAPQiCIhHwgDiAOIA9CIIZ8Ig5WrXwgDiAOIBRC/////w+DIhQgC34iESACIAp+fCIPIBFUrSAPIA8gEyANQv7///8PgyIRfnwiD1atfHwiDlatfCAOIAQgFH4iGCAQIBF+fCIEIAIgC358IgsgCiATfnwiEEIgiCALIBBWrSAEIBhUrSAEIAtWrXx8QiCGhHwiBCAOVK18IAQgDyACIBF+IgIgCiAUfnwiCkIgiCACIApWrUIghoR8IgIgD1StIAIgEEIghnwgAlStfHwiAiAEVK18IgRC/////////wBYBEAgFiAXhCEVIAVB0ABqIAIgBCADIBIQoAEgAUIxhiAFKQNYfSAFKQNQIgFCAFKtfSEKQgAgAX0hCyAGQf7/AGoMAQsgBUHgAGogBEI/hiACQgGIhCICIARCAYgiBCADIBIQoAEgAUIwhiAFKQNofSAFKQNgIg1CAFKtfSEKQgAgDX0hCyABIQ0gBkH//wBqCyIGQf//AU4EQCAMQoCAgICAgMD//wCEIQxCACEBDAELAn4gBkEASgRAIApCAYYgC0I/iIQhASAEQv///////z+DIAatQjCGhCEKIAtCAYYMAQsgBkGPf0wEQEIAIQEMAgsgBUFAayACIARBASAGaxCsAyAFQTBqIA0gFSAGQfAAahC2ASAFQSBqIAMgEiAFKQNAIgIgBSkDSCIKEKABIAUpAzggBSkDKEIBhiAFKQMgIgFCP4iEfSAFKQMwIgQgAUIBhiINVK19IQEgBCANfQshBCAFQRBqIAMgEkIDQgAQoAEgBSADIBJCBUIAEKABIAogAiACIAMgBCACQgGDIgR8IgNUIAEgAyAEVK18IgEgElYgASASURutfCICVq18IgQgAiACIARCgICAgICAwP//AFQgAyAFKQMQViABIAUpAxgiBFYgASAEURtxrXwiAlatfCIEIAIgBEKAgICAgIDA//8AVCADIAUpAwBWIAEgBSkDCCIDViABIANRG3GtfCIBIAJUrXwgDIQhDAsgACABNwMAIAAgDDcDCCAFQdACaiQAC8ABAgF/An5BfyEDAkAgAEIAUiABQv///////////wCDIgRCgICAgICAwP//AFYgBEKAgICAgIDA//8AURsNACACQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AUnENACAAIAQgBYSEUARAQQAPCyABIAKDQgBZBEAgASACUiABIAJTcQ0BIAAgASAChYRCAFIPCyAAQgBSIAEgAlUgASACURsNACAAIAEgAoWEQgBSIQMLIAMLnwMBBX9BECECAkBBECAAIABBEE0bIgMgA0EBa3FFBEAgAyEADAELA0AgAiIAQQF0IQIgACADSQ0ACwtBQCAAayABTQRAQeCPC0EwNgIAQQAPC0EQIAFBC2pBeHEgAUELSRsiAyAAakEMahBIIgJFBEBBAA8LIAJBCGshAQJAIABBAWsgAnFFBEAgASEADAELIAJBBGsiBSgCACIGQXhxIAAgAmpBAWtBACAAa3FBCGsiAiAAQQAgAiABa0EPTRtqIgAgAWsiAmshBCAGQQNxRQRAIAEoAgAhASAAIAQ2AgQgACABIAJqNgIADAELIAAgBCAAKAIEQQFxckECcjYCBCAAIARqIgQgBCgCBEEBcjYCBCAFIAIgBSgCAEEBcXJBAnI2AgAgASACaiIEIAQoAgRBAXI2AgQgASACELsFCwJAIAAoAgQiAUEDcUUNACABQXhxIgIgA0EQak0NACAAIAMgAUEBcXJBAnI2AgQgACADaiIBIAIgA2siA0EDcjYCBCAAIAJqIgIgAigCBEEBcjYCBCABIAMQuwULIABBCGoLEgAgAEUEQEEADwsgACABELQHC+UeAg9/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ACEHA0AgASENIAcgDkH/////B3NKDQIgByAOaiEOAkACQAJAAkAgASIHLQAAIgsEQANAAkACQCALQf8BcSIBRQRAIAchAQwBCyABQSVHDQEgByELA0AgCy0AAUElRwRAIAshAQwCCyAHQQFqIQcgCy0AAiALQQJqIgEhC0ElRg0ACwsgByANayIHIA5B/////wdzIhdKDQkgAARAIAAgDSAHEKkBCyAHDQcgCCABNgI8IAFBAWohB0F/IRACQCABLAABQTBrIgpBCUsNACABLQACQSRHDQAgAUEDaiEHQQEhEiAKIRALIAggBzYCPEEAIQwCQCAHLAAAIgtBIGsiAUEfSwRAIAchCgwBCyAHIQpBASABdCIBQYnRBHFFDQADQCAIIAdBAWoiCjYCPCABIAxyIQwgBywAASILQSBrIgFBIE8NASAKIQdBASABdCIBQYnRBHENAAsLAkAgC0EqRgRAAn8CQCAKLAABQTBrIgFBCUsNACAKLQACQSRHDQACfyAARQRAIAQgAUECdGpBCjYCAEEADAELIAMgAUEDdGooAgALIQ8gCkEDaiEBQQEMAQsgEg0GIApBAWohASAARQRAIAggATYCPEEAIRJBACEPDAMLIAIgAigCACIHQQRqNgIAIAcoAgAhD0EACyESIAggATYCPCAPQQBODQFBACAPayEPIAxBgMAAciEMDAELIAhBPGoQhQwiD0EASA0KIAgoAjwhAQtBACEHQX8hCQJ/QQAgAS0AAEEuRw0AGiABLQABQSpGBEACfwJAIAEsAAJBMGsiCkEJSw0AIAEtAANBJEcNACABQQRqIQECfyAARQRAIAQgCkECdGpBCjYCAEEADAELIAMgCkEDdGooAgALDAELIBINBiABQQJqIQFBACAARQ0AGiACIAIoAgAiCkEEajYCACAKKAIACyEJIAggATYCPCAJQQBODAELIAggAUEBajYCPCAIQTxqEIUMIQkgCCgCPCEBQQELIRMDQCAHIRRBHCEKIAEiGCwAACIHQfsAa0FGSQ0LIAFBAWohASAHIBRBOmxqQY+OCWotAAAiB0EBa0EISQ0ACyAIIAE2AjwCQCAHQRtHBEAgB0UNDCAQQQBOBEAgAEUEQCAEIBBBAnRqIAc2AgAMDAsgCCADIBBBA3RqKQMANwMwDAILIABFDQggCEEwaiAHIAIgBhCEDAwB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AgALIARB8AJqIBcgFiANEI8MIAQpA/gCIRUgBCkD8AILIRYgDiAVNwMoIA4gFjcDICAEQZDGAGokACAOKQMoIRUgDikDICEWDAELQgAhFQsgACAWNwMAIAAgFTcDCCAOQTBqJAALwwYCBH8DfiMAQYABayIFJAACQAJAAkAgAyAEQgBCABCtA0UNAAJ/IARC////////P4MhCgJ/IARCMIinQf//AXEiB0H//wFHBEBBBCAHDQEaQQJBAyADIAqEUBsMAgsgAyAKhFALC0UNACACQjCIpyIIQf//AXEiBkH//wFHDQELIAVBEGogASACIAMgBBBrIAUgBSkDECICIAUpAxgiASACIAEQ/QsgBSkDCCECIAUpAwAhBAwBCyABIAJC////////////AIMiCiADIARC////////////AIMiCRCtA0EATARAIAEgCiADIAkQrQMEQCABIQQMAgsgBUHwAGogASACQgBCABBrIAUpA3ghAiAFKQNwIQQMAQsgBEIwiKdB//8BcSEHIAYEfiABBSAFQeAAaiABIApCAEKAgICAgIDAu8AAEGsgBSkDaCIKQjCIp0H4AGshBiAFKQNgCyEEIAdFBEAgBUHQAGogAyAJQgBCgICAgICAwLvAABBrIAUpA1giCUIwiKdB+ABrIQcgBSkDUCEDCyAJQv///////z+DQoCAgICAgMAAhCELIApC////////P4NCgICAgICAwACEIQogBiAHSgRAA0ACfiAKIAt9IAMgBFatfSIJQgBZBEAgCSAEIAN9IgSEUARAIAVBIGogASACQgBCABBrIAUpAyghAiAFKQMgIQQMBQsgCUIBhiAEQj+IhAwBCyAKQgGGIARCP4iECyEKIARCAYYhBCAGQQFrIgYgB0oNAAsgByEGCwJAIAogC30gAyAEVq19IglCAFMEQCAKIQkMAQsgCSAEIAN9IgSEQgBSDQAgBUEwaiABIAJCAEIAEGsgBSkDOCECIAUpAzAhBAwBCyAJQv///////z9YBEADQCAEQj+IIAZBAWshBiAEQgGGIQQgCUIBhoQiCUKAgICAgIDAAFQNAAsLIAhBgIACcSEHIAZBAEwEQCAFQUBrIAQgCUL///////8/gyAGQfgAaiAHcq1CMIaEQgBCgICAgICAwMM/EGsgBSkDSCECIAUpA0AhBAwBCyAJQv///////z+DIAYgB3KtQjCGhCECCyAAIAQ3AwAgACACNwMIIAVBgAFqJAALvwIBAX8jAEHQAGsiBCQAAkAgA0GAgAFOBEAgBEEgaiABIAJCAEKAgICAgICA//8AEGsgBCkDKCECIAQpAyAhASADQf//AUkEQCADQf//AGshAwwCCyAEQRBqIAEgAkIAQoCAgICAgID//wAQa0H9/wIgAyADQf3/Ak8bQf7/AWshAyAEKQMYIQIgBCkDECEBDAELIANBgYB/Sg0AIARBQGsgASACQgBCgICAgICAgDkQayAEKQNIIQIgBCkDQCEBIANB9IB+SwRAIANBjf8AaiEDDAELIARBMGogASACQgBCgICAgICAgDkQa0HogX0gAyADQeiBfU0bQZr+AWohAyAEKQM4IQIgBCkDMCEBCyAEIAEgAkIAIANB//8Aaq1CMIYQayAAIAQpAwg3AwggACAEKQMANwMAIARB0ABqJAALPAAgACABNwMAIAAgAkL///////8/gyACQoCAgICAgMD//wCDQjCIpyADQjCIp0GAgAJxcq1CMIaENwMICxcBAX8gAEEAIAEQ/QIiAiAAayABIAIbCywAIAAgARDVByIBRQRADwsCQCADBEAgACABIAIQsgQMAQsgACABIAIQiwwLC6UBAQV/QdiSCygCACIDBEBB1JILKAIAIQUDQCAAIAUgAkECdGoiBCgCACIGRgRAIAQgATYCACAAEBgPCyAGIAFFckUEQCAEIAE2AgBBACEBCyACQQFqIgIgA0cNAAsLAkAgAUUNAEHUkgsoAgAgA0ECdEEEahA6IgBFDQBB1JILIAA2AgBB2JILQdiSCygCACICQQFqNgIAIAAgAkECdGogATYCAAsLCgAgAGhBACAAGwuYAQEFfyMAQYACayIFJAACQCACQQJIDQAgASACQQJ0aiIHIAU2AgAgAEUNAANAIAcoAgAgASgCAEGAAiAAIABBgAJPGyIEEB8aQQAhAwNAIAEgA0ECdGoiBigCACABIANBAWoiA0ECdGooAgAgBBAfGiAGIAYoAgAgBGo2AgAgAiADRw0ACyAAIARrIgANAAsLIAVBgAJqJAALKQEBfyAAKAIAQQFrEJQMIgEEfyABBSAAKAIEEJQMIgBBIHJBACAAGwsLWwEBfyMAQRBrIgMkACADAn4gAUHAAHFFBEBCACABQYCAhAJxQYCAhAJHDQEaCyADIAJBBGo2AgwgAjUCAAs3AwBBnH8gACABQYCAAnIgAxALEOkDIANBEGokAAseAQF/IAAQ8AEiAQRAIAAgARCdDCAAQYWhBRDjAQsLRQEBf0H4kAstAABBAXFFIgAEQEHMkAtB0JALQYCRC0GgkQsQEEHYkAtBoJELNgIAQdSQC0GAkQs2AgBB+JALQQE6AAALCy4BAX8gAUH/AXEhAQNAIAJFBEBBAA8LIAAgAkEBayICaiIDLQAAIAFHDQALIAMLRQECfCAAIAIgAqIiBDkDACABIAIgAkQAAAACAACgQaIiAyACIAOhoCICoSIDIAOiIAIgAqAgA6IgAiACoiAEoaCgOQMACzQBAX8gAEEANgKAASAAQQE2AkQgACABKAJsIgI2AoQBIAIEQCACIAA2AoABCyABIAA2AmwLWQEDfyAAEC8hAyAAEMgFIgBBACAAQQBKGyEEQQAhAANAIAEoAgwhAiAAIARGRQRAIAMgAiAAQQJ0aigCACICIAIQdkEARxCOARogAEEBaiEADAELCyACEBgLPgEBfyAAKAJEBEAgACgCgAEhASAAKAKEASIABEAgACABNgKAAQsgAQRAIAEgADYChAEPC0GwkgsgADYCAAsLagAgAEEASARAQXgQ6QMaDwsCfwJAIABBAE4EQEHmigUtAAANASAAIAEQFgwCCwJAIABBnH9HBEBB5ooFLQAAQS9GQQBxDQEMAgsMAQtB5ooFIAEQFQwBCyAAQeaKBSABQYAgEBQLEOkDGgsVAQF/EPQDIQBBD0GA5AooAgAgABsLLwAgACAAIAGWIAG8Qf////8HcUGAgID8B0sbIAEgALxB/////wdxQYCAgPwHTRsLMgACfyAAKAJMQQBIBEAgACgCPAwBCyAAKAI8CyIAQQBIBH9B4I8LQQg2AgBBfwUgAAsL7gEBBX8gAUGFoQVBEEEAEDUhBAJAIAAgASgCAEEDcRCwAyIDBEACQCAEKAIIIgJFBEAgBCAAEDcgASgCAEEDcRCwAzYCCCAEIAEQyAVBBBAZNgIMIANBAEGAASADKAIAEQQAIQADQCAARQ0CIAAoAgwQdiEGIAEQLyECIAAoAgwhBQJ/IAYEQCACIAUQ1gIMAQsgAiAFELIBCyECIAQoAgwgACgCEEECdGogAjYCACADIABBCCADKAIAEQQAIQAMAAsACyACIANHDQILDwtB5SZB/sIBQagBQeEuEAAAC0HYJkH+wgFBtgFB4S4QAAALGQAgACAAKAIAIgBB/////wMgABs2AgAgAAsiAAJ/IAAoAkxBAEgEQCAAKAIADAELIAAoAgALQQR2QQFxC8IEAwN8A38CfgJ8AkAgABC1BEH/D3EiBUQAAAAAAACQPBC1BCIEa0QAAAAAAACAQBC1BCAEa0kEQCAFIQQMAQsgBCAFSwRAIABEAAAAAAAA8D+gDwtBACEERAAAAAAAAJBAELUEIAVLDQBEAAAAAAAAAAAgAL0iB0KAgICAgICAeFENARpEAAAAAAAA8H8QtQQgBU0EQCAARAAAAAAAAPA/oA8LIAdCAFMEQEQAAAAAAAAAEBCnDA8LRAAAAAAAAABwEKcMDwsgAEHw6QgrAwCiQfjpCCsDACIBoCICIAGhIgFBiOoIKwMAoiABQYDqCCsDAKIgAKCgIgEgAaIiACAAoiABQajqCCsDAKJBoOoIKwMAoKIgACABQZjqCCsDAKJBkOoIKwMAoKIgAr0iB6dBBHRB8A9xIgVB4OoIaisDACABoKCgIQEgBUHo6ghqKQMAIAdCLYZ8IQggBEUEQAJ8IAdCgICAgAiDUARAIAhCgICAgICAgIg/fb8iACABoiAAoEQAAAAAAAAAf6IMAQsgCEKAgICAgICA8D98vyICIAGiIgEgAqAiA0QAAAAAAADwP2MEfCMAQRBrIgQgBEKAgICAgICACDcDCCAEKwMIRAAAAAAAABAAojkDCEQAAAAAAAAAACADRAAAAAAAAPA/oCIAIAEgAiADoaAgA0QAAAAAAADwPyAAoaCgoEQAAAAAAADwv6AiACAARAAAAAAAAAAAYRsFIAMLRAAAAAAAABAAogsPCyAIvyIAIAGiIACgCwsYAQF/IwBBEGsiASAAOQMIIAAgASsDCKILjwIBAn8gACAALQAYQSByOgAYIABBgPcJQRRBABA1IgFB6PYJQcT0CSgCABChAjYCCCABQej2CUHE9AkoAgAQoQI2AgwgAUHo9glBxPQJKAIAEKECNgIQAkACQCAAKAJEIgIEQCABIAJBABC1AiICRg0CIAEoAgggAigCCBDqAhogASgCDCACKAIMEOoCGiABKAIQIAIoAhAQ6gIaDAELQcTkCigCACICRSAAIAJGcg0AIAJBABC1AiICKAIIIAEoAgggAEEBEMQHIAIoAgwgASgCDCAAQQIQxAcgAigCECABKAIQIABBABDEBwsgACgCRCIBIAAgARsgABCjDA8LQam4AUH+wgFB7wBBySYQAAALTQEDf0EBIQEDQCAAKAIQIgMoArgBIQIgASADKAK0AUpFBEAgAiABQQJ0aigCACICKAIQKAIMEL4BIAIQqQwgAUEBaiEBDAELCyACEBgLFQAgAEHLuwFBKkHbwQFBsagDEJMFC+YDAgZ/BnwjAEHgAGsiAyQAIAAoAhAiAisDGCEJIAIrAxAhCkGM4QotAABBAk8EQCABELMCIAMgABAgNgJQQbj8CCgCAEHx/wMgA0HQAGoQHhoLAkAgAUUEQEG4/AgoAgAhBgwBC0G4/AgoAgAhBiAAEBshAiADQUBrIQUDQCACRQ0BAkAgAigCECIEKAKAASAARw0AIAQgCiAEKwMQoDkDECAEIAkgBCsDGKA5AxhBjOEKLQAAQQJJDQAgARCzAiACECAhBCACKAIQIgcrAxAhCCAFIAcrAxg5AwAgAyAIOQM4IAMgBDYCMCAGQe60BCADQTBqEDILIAAgAhAcIQIMAAsACyABQQFqIQdBASEEA0AgACgCECICKAK0ASAETgRAIAIoArgBIARBAnRqKAIAIQUgAQRAIAkgBSgCECICKwMooCEIIAogAisDIKAhCyAJIAIrAxigIQwgCiACKwMQoCENQYzhCi0AAEECTwRAIAEQswIgBRAgIQIgAyAIOQMgIAMgCzkDGCADIAw5AxAgAyANOQMIIAMgAjYCACAGQdy0BCADEDIgBSgCECECCyACIAg5AyggAiALOQMgIAIgDDkDGCACIA05AxALIAUgBxCrDCAEQQFqIQQMAQsLIANB4ABqJAALyRMDDX8LfAF+IwBBwAJrIgQkACAAKAJIIQxBjOEKLQAAQQJPBEAgARCzAiAEIAAQIDYCkAJBuPwIKAIAQc76AyAEQZACahAeGgsgAUEBaiEGQQEhAgNAIAAoAhAiCCgCtAEgAk4EQCAIKAK4ASACQQJ0aigCACIIIAYQrAwgAkEBaiECIAgQOCADaiEDDAELCwJAAkACQCAAEDggA2siDSAAKAIQIggoArQBaiIGDQAgCCgCDA0AIAhCADcDECAIQoCAgICAgICZwAA3AyggCEKAgICAgICAmcAANwMgIAhCADcDGAwBCwJAAn8CQCAAQQRBBCAEQaACahD9A0ECTQRAIARBAzYCsAIMAQtBACAEKAKwAkEERw0BGiAELQC8AkECcUUNAiAMQQBBuBdBABAhIgUgDEEBQbgXQQAQISIHcgRAIAQgBkEEEBk2ArgCDAMLIAQgABAgNgKAAkGTpAMgBEGAAmoQKwtBAAshB0EAIQULIAZBIBAZIQggBkEEEBkhDEEAIQJBASEDA0AgACgCECIKKAK0ASADTgRAIAggAkEFdGoiCSAKKAK4ASADQQJ0aigCACILKAIQIgopAxA3AwAgCSAKKQMoNwMYIAkgCikDIDcDECAJIAopAxg3AwggBCgCuAJFIAVFckUEQCALIAVBAEEAEGQhCSAEKAK4AiACQQJ0aiAJNgIACyAMIAJBAnRqIAs2AgAgA0EBaiEDIAJBAWohAgwBCwsCQCANQQBMDQAgABAbIQMDQCADRQ0BIAMoAhAiBSgCgAFFBEAgBSAANgKAASAFKwNYIRAgBSsDYCEPIAUrA1AhESAIIAJBBXRqIgVCADcDACAFIBE5AxggBSAQIA+gOQMQIAVCADcDCCAEKAK4AkUgB0VyRQRAIAMgB0EAQQAQZCEFIAQoArgCIAJBAnRqIAU2AgALIAwgAkECdGogAzYCACACQQFqIQILIAAgAxAcIQMMAAsACyAGQQBIDQEgBEGgAmohB0EAIQJBACEFIwBB8ABrIgMkAAJAIAZFDQACQAJAIAcoAhBBA2sOAgABAgsgBiAIIAcoAggQpQ4hCUGM4QotAAAEQCADIAk2AlBBuPwIKAIAQc7QBCADQdAAahAeGgsgCUEATA0BIAZBEBAZIQoDQCACIAZGBEBBACECIAZBBBAZIQsDQCACIAZGBEAgCyAGQQRBrgMQlQFBACECEM0DIQ0gBkEQEBkhBQNAIAIgBkYEQCALEBhBACECA0AgAiAGRgRAIAoQGCANEN8CQQAhAkGM4QotAABBAkkNCUG4/AgoAgAhBwNAIAIgBkYNCiAFIAJBBHRqIgkrAwAhECADIAkrAwg5AxAgAyAQOQMIIAMgAjYCACAHQbuxBCADEDIgAkEBaiECDAALAAUgCiACQQR0aigCBBAYIAJBAWohAgwBCwALAAUgAiALIAJBAnRqKAIAIg4gDSAFIA4oAgxBBHRqIAkgBygCCCAIEKgIIAJBAWohAgwBCwALAAUgCyACQQJ0aiAKIAJBBHRqNgIAIAJBAWohAgwBCwALAAUgCiACQQR0aiILIAI2AgwgBygCCCENIANCADcDaCADQgA3A2AgAyAIIAJBBXRqIgUpAwg3AzggA0FAayAFKQMQNwMAIAMgBSkDGDcDSCAFKQMAIRogA0IANwMoIAMgGjcDMCADQgA3AyAgA0EwaiALIAkgDSADQSBqQeaKBRCkDiACQQFqIQIMAQsACwALIAYgCCAHEKIOIQULIANB8ABqJAAgBSEKIAQoArgCEBhBuPwIKAIAIQdE////////7/8hEET////////vfyERRP///////+9/IRJE////////7/8hFkEAIQIDQCACIAZHBEAgCCACQQV0aiIFKwMAIRcgCiACQQR0aiILKwMAIRMgBSsDCCEVIAUrAxAhFCAAKAIQKAK0ASENIAwgAkECdGooAgAiCSgCECEDIBYgCysDCCIYIAUrAxigIg8QIiEWIBAgEyAUoCIUECIhECASIBggFaAiFRAqIRIgESATIBegIhMQKiERAkAgAiANSARAIAMgDzkDKCADIBQ5AyAgAyAVOQMYIAMgEzkDEEGM4QotAABBAkkNASABELMCIAkQICEDIAQgDzkD0AEgBCAUOQPIASAEIBU5A8ABIAQgEzkDuAEgBCADNgKwASAHQdy0BCAEQbABahAyDAELIAMgFSAPoEQAAAAAAADgP6I5AxggAyATIBSgRAAAAAAAAOA/ojkDEEGM4QotAABBAkkNACABELMCIAkQICEDIAkoAhAiBSsDECEPIAQgBSsDGDkD8AEgBCAPOQPoASAEIAM2AuABIAdB7rQEIARB4AFqEDILIAJBAWohAgwBCwsCQCAAKAIQIgIoAgwiA0UNACADKwMYIg8gBkUEQCADKwMgIRZEAAAAAAAAAAAhEUQAAAAAAAAAACESIA8hEAsgECARoaEiD0QAAAAAAAAAAGRFDQAgECAPRAAAAAAAAOA/oiIPoCEQIBEgD6EhEQsgECAEKAKoArhEAAAAAAAA4D+iRAAAAAAAAAAAIAFBAEobIg+gIRQgESAPoSEQIBYgAisDWCAPoKAhESASIAIrAzggD6ChIQ9BjOEKLQAAQQJPBEAgARCzAiAAECAhAiAEIBE5A6ABIAQgFDkDmAEgBCAPOQOQASAEIBA5A4gBIAQg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uPwIKAIAQai0BCACEDILIAJB8ABqJAALswYCCn8FfCMAQdABayIBJAACQCAAKAJAIgRFDQAgBEEEEOEEIQUgAEEwaiIHIQMDQCACIARGBEAgBSAEQQRB6AMQlQFBACECIARBCBDhBCEDA0AgAiAERgRAAn8gACsDCCIMIAArAwBhBEAgASAAKQMoNwOIASABIAApAyA3A4ABIAEgACkDGDcDeCABIAApAxA3A3AgBCADIAFB8ABqELYMDAELIAArAyAhCyAAKwMoIQ0gASAAKwMQOQOwASABIAArAxg5A7gBIAEgCyANIAugIA0gC6EiCyALoiAMRAAAAAAAABBAoqCfoUQAAAAAAADgP6IiC6E5A8ABIAEgDSALoTkDyAEgASABKQO4ATcDmAEgASABKQPAATcDoAEgASABKQPIATcDqAEgASABKQOwATcDkAEgBCADIAFBkAFqELYMCyEIQbj8CCgCACEJQYzhCi0AAARAIAArAxAhCyAAKwMYIQ0gACsDICEMIAEgACsDKDkDaCABIAw5A2AgASANOQNYIAEgCzkDUCAJQcu0BCABQdAAahAyCyABQUBrIQpBACECA0AgAiAERgRAIAUQGCADEBggCBAYQQAhAgNAIAIgBEYNByAHKAIAIgAoAjxFBEAgABC0DAsgAkEBaiECIABBNGohBwwACwALIAUgAkECdGooAgAiBiAIIAJBBXRqIgApAwA3AxAgBiAAKQMYNwMoIAYgACkDEDcDICAGIAApAwg3AxhBjOEKLQAABEAgAyACQQN0aisDACEPIAArAwAhCyAAKwMIIQ0gACsDECEMIAEgACsDGCIOOQNIIAogDDkDACABIA05AzggASALOQMwIAEgDCAOojkDKCABIA0gDkQAAAAAAADgP6IiDqA5AyAgASALIAxEAAAAAAAA4D+iIgygOQMYIAEgDSAOoTkDECABIAsgDKE5AwggASAPOQMAIAlB0/wEIAEQMgsgAkEBaiECDAALAAUgAyACQQN0aiAFIAJBAnRqKAIAKwMAOQMAIAJBAWohAgwBCwALAAUgBSACQQJ0aiADKAIAIgM2AgAgAkEBaiECIANBNGohAwwBCwALAAsgAUHQAWokAAvYAgIGfwJ8ELEMIgYgADYCOCAGQQA2AjxBASEEA0AgACgCECIFKAK0ASAETgRAIAUoArgBIARB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8ABqEB4aCyAAEBshAgNAIAIEQCACKAIQQQA2ArgBIAAgAhAcIQIMAQsLQYzhCi0AAEECTwRAIAEoAhAhAiAIIAAQIDYCZCAIIAI2AmBBuPwIKAIAQeuCBCAIQeAAahAeGgsgASABKAIQQQFqNgIQIAhB1PYJKAIANgJcQd+vASAIQdwAakEAEOQBIgpBrCtBmAJBARA1GkE4EFQhAiAKKAIQIAI2AowBIAAQNyECIAooAhAgAigCEC8BsAE7AbABIAAgCkHI4gAQ1wcgACAKQYbhABDXByAAIApBn94BENcHIAhBmAFqIQcgCEGQAWohBiAIQYgBaiEJQQEhDANAIAAoAhAiAigCtAEgDE4EQCACKAK4ASAMQQJ0aigCACIDEIEFIAogAxAgENYHIgQoAhAiAiALNgKIASACIAM2AugBAkACQCABKAIEIgVFBEBE////////738hG0T////////v/yEaDAELRP///////+9/IRtE////////7/8hGiADIAUQQSICLQAARQ0AIAEoAgAgA0cEQCACIAMoAkQgBRBBEElFDQELIAhBADoArAEgCCAJNgJEIAggBjYCSCAIIAc2AkwgCCAIQawBajYCUCAIIAhBgAFqNgJAIAJBhMgBIAhBQGsQT0EETgRAIAgrA5gBIRogCCsDkAEhHiAIKwOIASEbIAgrA4ABIRxBoOEKKwMAIh1EAAAAAAAAAABkBEAgHiAdoyEeIBsgHaMhGyAcIB2jIRwgGiAdoyEaCyAEKAIQQQNBAkEBIAgtAKwBIgJBP0YbIAJBIUYbOgCHAQwCCyADECAhBSAIIAI2AjQgCCAFNgIwQeX0AyAIQTBqECsLRP///////+//IR5E////////738hHAsgC0EBaiELIAMQGyECA0AgAgRAIAIoAhAgBDYCuAEgAyACEBwhAgwBCwsgBCgCECICLQCHAQRAIAIoApQBIgIgGiAboEQAAAAAAADgP6I5AwggAiAeIBygRAAAAAAAAOA/ojkDAAsgDEEBaiEMDAELCyAAEBshAgJ/AkADQCACBEACQCACKAIQIgMoArgBDQACQCADKALoASIERQ0AIAQgACgCECgCjAEoAjBGDQAgAhAgIQEgABAgIQAgCCACKAIQKALoARAgNgIoIAggADYCJCAIIAE2AiBB6YQFIAhBIGoQNgwECyADIAA2AugBIAMtAIYBDQAgCiACECAQ1gchAyACKAIQIgQgAzYCuAEgAygCECIDIAs2AogBIAMgBCsDIDkDICADIAQrAyg5AyggAyAEKwNYOQNYIAMgBCsDYDkDYCADIAQrA1A5A1AgAyAEKAIINgIIIAMgBCgCDDYCDCAELQCHASIFBEAgAygClAEiByAEKAKUASIEKwMAOQMAIAcgBCsDCDkDCCADIAU6AIcBCyALQQFqIQsgAygCgAEgAjYCCAsgACACEBwhAgwBCwsgABAbIQ4DQCAOBEAgDigCECgCuAEhAyAAIA4QLSECA0AgAgRAIAMgAkFQQQAgAigCAEEDcUECRxtqKAIoKAIQKAK4ASIERwRAAn8gAyAESQRAIAogAyAEQQBBARBgDAELIAogBCADQQBBARBgCyIHQbkrQbgBQQEQNRogBygCECIGIAIoAhAiBSsDiAE5A4gBIAYgBSsDgAE5A4ABIAQoAhAoAoABIgQgBCgCBEEBajYCBCADKAIQKAKAASIFIAUoAgRBAWo2AgQgBigCsAFFBEAgBCAEKAIAQQFqNgIAIAUgBSgCAEEBajYCAAsgByACEOQMCyAAIAIQMCECDAELCyAAIA4QHCEODAELCwJAAkAgACgCECgCjAEiAygCACICBEAgAygCBEEBakEQEBkhBCAKKAIQKAKMASAENgIAQQAhDgNAIAIoAgAiA0UNAiACKAIEKAIQKAK4ASIFBEAgA0FQQQAgAygCAEEDcSIHQQJHG2ooAiggA0EwQQAgB0EDRxtqKAIoIAAQICEJKAIQKAKIASEHKAIQKAKIASEGIAggAygCAEEEdjYCHCAIIAY2AhggCCAHNgIUIAggCTYCEEHwhwtB6QdBwRggCEEQahChARogCkHwhwsQ1gciAygCECALNgKIASALQQFqIQsgDkEBaiEOAn8gAyAFSwRAIAogBSADQQBBARBgDAELIAogAyAFQQBBARBgCyIHQbkrQbgBQQEQNRogBygCECIGIAIoAgAiCSgCECIMKwOIATkDiAEgBiAMKwOAATkDgAEgByAJEOQMIAMoAhAoAoABIgYgBigCBEEBajYCBCAFKAIQKAKAASIFIAUoAgRBAWo2AgQgBiAGKAIAQQFqNgIAIAUgBSgCAEEBajYCACAEIAM2AgQgAisDCCEaIAQgBzYCACAEIBo5AwggBEEQaiEECyACQRBqIQIMAAsACyAKDQEMAgsgCigCECgCjAEgDjYCBAsCf0EAIQVBACELIwBB0ABrIgQkACAEQgA3A0ggBEIANwNAAkAgChA4QQBOBEAgBCAKEDgiAjYCPCAEQQA2AjggAkEhTwRAIAQgAkEDdiACQQdxQQBHakEBEBk2AjgLIAooAhAoAowBKAIAIglFDQEgBCAKECA2AjAgBEG4hwsoAgA2AjQgBEFAayICQYYYIARBMGoQlAFBASELIAogAhCsAkEBEJYBIgVBrCtBmAJBARA1GhDcByECIAUoAhAgAjYCjAEgAiAJNgIAIAIgCigCECgCjAEoAgQ2AgQDQCAJKAIEIgJFDQIgAigCECgCiAEhAiAEIAQpAjg3AyggBEEoaiACEM4CRQRAIAogCSgCBCAFIARBOGoQ1QULIAlBEGohCQwACwALQa6fA0HAwwFBxwBBrt8AEAAACyAKEBshCUEAIQIDQCAJBEAgCSgCECgCiAEhAyAEIAQpAjg3AyACQCAEQSBqIAMQzgINACAJKAIQLQCHAUEDRw0AIAVFBEAgBCAKECA2AhAgBEG4hwsoAgAgC2o2AhQgBEFAayICQYYYIARBEGoQlAEgCiACEKwCQQEQlgEiBUGsK0GYAkEBEDUaENwHIQIgBSgCECACNgKMASALQQFqIQsLIAogCSAFIARBOGoQ1QVBASECCyAKIAkQHCEJDAELCyAFBEAgBUEAELYDGgsgChAbIQkDQCAJBEAgCSgCECgCiAEhAyAEIAQpAjg3AwggBEEIaiADEM4CRQRAIAQgChAgNgIAIARBuIcLKAIAIAtqNgIEIARBQGsiA0GPGCAEEJQBIAogAxCsAkEBEJYBIgNBrCtBmAJBARA1GhDcByEFIAMoAhAgBTYCjAEgCiAJIAMgBEE4ahDVBSADQQAQtgMaIAtBAWohCwsgCiAJEBwhCQwBCwsgBCgCPEEhTwRAIAQoAjgQGAsgBC0AT0H/AUYEQCAEKAJAEBgLQbiHC0G4hwsoAgAgC2o2AgAgCEH8AGoiAwRAIAMgCzYCAAsgCEGsAWoiAwRAIAMgAjYCAAsgC0EBakEEEBkhAyAKEHohCSADIQIDQCAJBEAgAiAJNgIAIAtBAWshCyACQQRqIQIgCRB5IQkMAQsLIAtFBEAgAkEANgIAIARB0ABqJAAgAwwBC0GLoANBwMMBQYYBQa7fABAAAAsiCyEWAkADQCAWKAIAIgZFDQEgFkEEaiEWRAAAAAAAAAAAIR1EAAAAAAAAAAAhH0QAAAAAAAAAACEcRAAAAAAAAAAAISAgBigCECgCjAEoAgAhBAJAQYiHCysDACIeRAAAAAAAAPC/YgRAQYCHCysDACEbIB4hGgwBC0GIhwsgBhA4t59B+IYLKwMAQYCHCysDACIboqJEAAAAAAAAFECjIho5AwALQeiGCygCACEHQbCHCygCACECIAggGzkDkAEgCCAaIAcgAmsiBbeiIAe3ozkDiAFB8IYLKwMAIRogCCAFNgKAASAIIBo5A5gBAkACQEHkhgsoAgAiA0EATgRAIAIgA04EQEEAIQVBtIcLIAM2AgAMAgsgAyAHSg0CQbSHCyACNgIAIAMgAmshBQwBC0G0hwsgAjYCAAsgCCAFNgKgAQsgBhA4IQcgBigCECgCjAEoAgQhCUEAIQMgBhAbIQJEAAAAAAAAAAAhGgNAIAIEQCACKAIQIgUtAIcBBEAgBSgClAEiBSsDACEbAnwgAwRAIBsgHSAbIB1kGyEdIBsgHyAbIB9jGyEfIAUrAwgiGyAgIBsgIGQbISAgGyAaIBogG2QbDAELIBsiHSEfIAUrAwgiIAshGiADQQFqIQMLIAYgAhAcIQIMAQsLQaiHCyAHIAlrt59EAAAAAAAA8D+gQYCHCysDAKJEAAAAAAAA4D+iRDMzMzMzM/M/oiIbOQMAQaCHCyAbOQMAAnwgA0EBRgRAIBohHCAfDAELRAAAAAAAAAAAIANBAkgNABogICAaoCAdIB+gISICQCAgIBqhRDMzMzMzM/M/oiIcIB0gH6FEMzMzMzMz8z+iIh2iIBsgG0QAAAAAAAAQQKKiIh+jIhpEAAAAAAAA8D9mBEAgHEQAAAAAAADgP6IhGiAdRAAAAAAAAOA/oiEbDAELIBpEAAAAAAAAAABkBEAgHCAanyIaIBqgIhujIRogHSAboyEbDAELIB1EAAAAAAAAAABkBEAgHUQAAAAAAADgP6IhGyAfIB2jRAAAAAAAAOA/oiEaDAELIBshGiAcRAAAAAAAAAAAZEUNACAcRAAAAAAAAOA/oiEaIB8gHKNEAAAAAAAA4D+iIRsLRAAAAAAAAOA/oiEcQaiHCyAaIBogGxCtASIaEFijOQMAQaCHCyAbIBoQRKM5AwAgIkQAAAAAAADgP6ILIR0Cf0GQhwsoAgBBAkYEQEHghgsoAgAMAQsQ1gGnQSpzCxC7BwJAIAQEQCAEIQIDQCACKAIABEBBoIcLKwMAIRogAisDCBBEIRsgAigCBCgCECIDKAKUASIFIBogG6IgHaA5AwAgBUGohwsrAwAgAisDCBBYoiAcoDkDCCADQQE6AIcBIAJBEGohAgwBCwsgHESamZmZmZm5P6IhHyAdRJqZmZmZmbk/oiEgIAYQGyEFA0AgBUUNAgJAIAUoAhAiAigCgAEoAghFBEAgAigC6AFFDQELIAItAIcBBEAgAigClAEiAiACKwMAIB2hOQMAIAIgAisDCCAcoTkDCAwBC0EAIQdEAAAAAAAAAAAhGiAGIAUQbyECRAAAAAAAAAAAIRsDQCACBEACQCACQVBBACACKAIAQQNxIglBAkcbaigCKCIDIAJBMEEAIAlBA0cbaigCKCIJRg0AIAkgAyADIAVGGygCECIDLQCHAUUNACAHBEAgGyAHtyIhoiADKAKUASIDKwMIoCAHQQFqIge3IiKjIRsgGiAhoiADKwMAoCAioyEaDAELIAMoApQBIgMrAwghGyADKwMAIRpBASEHCyAGIAIgBRBzIQIMAQsLAkAgB0ECTgRAIAUoAhAiAigClAEiAyAaOQMADAELIAdBAUYEQCAFKAIQIgIoApQBIgMgGkRcj8L1KFzvP6IgIKA5AwAgG0TNzMzMzMzsP6IgH6AhGwwBCxDXARDXASEbQaCHCysDACEhRBgtRFT7IRlAoiIaEEQhIiAFKAIQIgIoApQBIgMgIiAhIBtEzczMzMzM7D+iIhuiojkDAEGohwsrAwAhISAaEFggGyAhoqIhGwsgAyAbOQMIIAJBAToAhwELIAYgBRAcIQUMAAsACyAGEBshAiADRQRAA0AgAkUNAkGghwsrAwAhGxDXASEaIAIoAhAoApQBIBsgGiAaoEQAAAAAAADwv6CiOQMAQaiHCysDACEbENcBIRogAigCECgClAEgGyAaIBqgRAAAAAAAAPC/oKI5AwggBiACEBwhAgwACwALA0AgAkUNAQJAIAIoAhAiAy0AhwEEQCADKAKUASIDIAMrAwAgHaE5AwAgAyADKwMIIByhOQMIDAELQaCHCysDACEbENcBIRogAigCECgClAEgGyAaIBqgRAAAAAAAAPC/oKI5AwBBqIcLKwMAIRsQ1wEhGiACKAIQKAKUASAbIBogGqBEAAAAAAAA8L+gojkDCAsgBiACEBwhAgwACwALAkBB2IYLKAIARQRAQbSHCygCACEDQQAhBQNAIAMgBUwNAkGIhwsrAwBB6IYLKAIAIgIgBWu3oiACt6MiGkQAAAAAAAAAAGVFBEAgBhAbIQIDQCACBEAgAigCECgCgAEiA0IANwMQIANCADcDGCAGIAIQHCECDAELCyAGEBshAwNAIAMiAgRAA0AgBiACEBwiAgRAIAMgAhDyDAwBCwsgBiADEC0hAgNAIAIEQCACQVBBACACKAIAQQNxQQJHG2ooAigiByADRwRAIAMgByACEPEMCyAGIAIQMCECDAELCyAGIAMQHCEDDAELCyAGIBogBBDwDEG0hwsoAgAhAwsgBUEBaiEFDAALAAsgBhA4IQJB0IYLQgA3AgBByIYLQgA3AgBBwIYLQgA3AgBBwIYLQZDZCkGs9AkoAgAQlwE2AgBBxIYLIAIQ8ww2AgAgBhA4IgJBzIYLKAIAIgNKBEBB0IYLKAIAEBggAiADQQF0IgMgAiADShsiAkEIEBkhA0HMhgsgAjYCAEHQhgsgAzYCAAtBtIcLKAIAIQNBACEHA0AgAyAHSgRAQYiHCysDAEHohgsoAgAiAiAHa7eiIAK3oyIaRAAAAAAAAAAAZUUEQEHAhgsoAgAiAkEAQcAAIAIoAgARBAAaQdSGC0HQhgsoAgA2AgBByIYLQcSGCygCACICNgIAIAIgAigCADYCBCAGEBshAgNAIAIEQCACKAIQIgMoAoABIgVCADcDECAFQgA3AxgCfyADKAKUASIDKwMIQZiHCysDACIbo5wiH5lEAAAAAAAA4EFjBEAgH6oMAQtBgICAgHgLIQkCfyADKwMAIBujnCIbmUQAAAAAAADgQWMEQCAbqgwBC0GAgICAeAshDCMAQSBrIgMkACADIAk2AhAgAyAMNgIMQcCGCygCACIFIANBDGpBASAFKAIAEQQAIg4oAgghEEHUhgtB1IYLKAIAIgVBCGo2AgAgBSAQNgIEIAUgAjYCACAOIAU2AghBjOEKLQAAQQNPBEAgAyACECA2AgggAyAJNgIEIAMgDDYCAEG4/AgoAgBBhosEIAMQHhoLIANBIGokACAGIAIQHCECDAELCyAGEBshAwNAIAMEQCAGIAMQLSECA0AgAgRAIAJBUEEAIAIoAgBBA3FBAkcbaigCKCIFIANHBEAgAyAFIAIQ8QwLIAYgAhAwIQIMAQsLIAYgAxAcIQMMAQsLQcCGCygCACIFQQBBgAEgBSgCABEEACECA0AgAgRAIAUgAkEIIAUoAgARBAAgAkHAhgsQ7wwhCSECIAlBAE4NAQsLIAYgGiAEEPAMQbSHCygCACEDCyAHQQFqIQcMAQsLQcCGCygCABCbARpBxIYLKAIAIQIDQCACBEAgAigCDCACKAIAEBggAhAYIQIMAQsLQdCGCygCABAYCwJAIB1EAAAAAAAAAABhIBxEAAAAAAAAAABhcQ0AIAYQGyECA0AgAkUNASACKAIQKAKUASIDIB0gAysDAKA5AwAgAyAcIAMrAwigOQMIIAYgAhAcIQIMAAsACyAeRAAAAAAAAPC/YQRAQYiHC0KAgICAgICA+L9/NwMACyAGEBshCQJAA0ACQAJAAkACQCAJIhAEQCAGIAkQHCEJIBAoAhAiAygCgAEhAiADKALoASISRQ0BIAIoAgQiE0UNAyATQQFqQRAQGSEUQQAhAyAQKAIQKAKAASgCACIFQQFqQRgQGSEPIAYgEBBvIQIDQCACBEAgECACQVBBACACKAIAQQNxIgdBAkcbaigCKCIERgRAIAJBMEEAIAdBA0cbaigCKCEECyAQKAIQKAKUASIHKwMIIRogBCgCECgClAEiBCsDCCEbIAcrAwAhHCAEKwMAIR0gDyADQRhsaiIEIAI2AgAgBCAbIBqhIhogHSAcoSIbEK0BOQMIIAQgGyAboiAaIBqioDkDECADQQFqIQMgBiACIBAQcyECDAELCyADIAVGBEAgDyAFQRhB5AMQlQEgBUECSA0DIAVBAWshB0EAIQQDQCAEIgMgB04NBCAPIANBGGxqKwMIIRogA0EBaiIEIQIDQAJAIAIgBUYEQCAFIQIMAQsgDyACQRhsaisDCCAaYg0AIAJBAWohAgwBCwsgAiAERg0AIAIgAyACIANKGyEERAAAAAAAAAAAIRsgAiAFRwR8IA8gAkEYbGorAwgFRBgtRFT7IQlACyAaoSACIANrt6NEOZ1SokbfoT8QKiEaA0AgAyAERg0BIA8gA0EYbGoiAiAbIAIrAwigOQMIIANBAWohAyAaIBugIRsMAAsACwALQdeKAUHIwAFByARBqxsQAAALIAYQOEECSA0DIAEoAgAgAEYEQCAGEJsNGgtBACEFQQAhDiMAQSBrIgkkACAGQcjiABAmIQdBjOEKLQAABEBB7NEDQQhBAUG4/AgoAgAQTBoLAkAgBwRAIActAAANAQtB9/EAIQcLAkAgB0E6EM8BIgJFDQAgAiAHRwRAIAcsAABBMGtBCUsNAQsgBxCRAiIDQQAgA0EAShshDiACQQFqIQcLQYzhCi0AAARAIAkgBzYCBCAJIA42AgBBuPwIKAIAQaGIBCAJEB4aCwJAAkAgDkUNACAGEDghDCAGELoCIAlBCGogBhCBA0HQhwsgCSkDGCIqNwMAQciHCyAJKQMQNwMAQcCHCyAJKQMINwMAICqnQQFxBEBBwIcLQcCHCysDAEQAAAAAAABSQKM5AwBByIcLQciHCysDAEQAAAAAAABSQKM5AwALIAYQGyEDA0AgAwRAIAMhAgNAIAYgAhAcIgIEQCADIAIQ2wcgBWohBQwBBSAGIAMQHCEDDAMLAAsACwsgBUUNASAMQQFrIAxstyEhtyEiIAgoAqABIQQgCCsDmAEhHyAIKwOIASEgIAgoAoABIRIgDLefISYgCCsDkAEiJyEcQQAhDANAAkAgBUUgDCAOT3JFBEBBqNkKIBI2AgBBsNkKIBw5AwBB2IcLICA5AwBB4IcLIAQ2AgAgH0QAAAAAAAAAAGQEQEG42QogHzkDAAsgIEQAAAAAAAAAAGEEQEHYhwsgJiAcokQAAAAAAAAUQKM5AwALQQAhDyAcIByiQbjZCisDAKIiKCAioiIaIBqgICGjISkgBCECA0AgAiAPTA0CQdiHCysDAEGo2QooAgAiAiAPa7eiIAK3oyIdRAAAAAAAAAAAZQ0CIAYQGyECA0AgAgRAIAIoAhAoAoABIgNCADcDECADQgA3AxggBiACEBwhAgwBBQJAQQAhBSAGEBshAwNAIANFBEAgBQ0CQQAhBQwHCyAGIAMQHCECA0AgAgRAIAIoAhAoApQBIg0rAwAgAygCECgClAEiESsDAKEiHiAeoiANKwMIIBErAwihIhsgG6KgIRoDQCAaRAAAAAAAAAAAYQRAQQUQqwFBCm9rtyIeIB6iQQUQqwFBCm9rtyIbIBuioCEaDAELCyACKAIQKAKAASINIB4gKCApIAMgAhDbByIRGyAaoyIaoiIeIA0rAxCgOQMQIA0gGyAaoiIaIA0rAxigOQMYIAMoAhAoAoABIg0gDSsDECAeoTkDECANIA0rAxggGqE5AxggBSARaiEFIAYgAhAcIQIMAQUgBiADEC0hAgNAIAJFBEAgBiADEBwhAwwECyADIAJBUEEAIAIoAgBBA3FBAkcbaigCKCIRENsHRQRAIBEoAhAiDSgClAEiEysDACADKAIQIhQoApQBIhUrAwChIRogDSgCgAEiDSANKwMQIBogGiATKwMIIBUrAwihIhoQUCIbIAMQ6QwgERDpDKAiHqEiJSAloiAbQbDZCisDACAeoKKjIhuiIh6hOQMQIA0gDSsDGCAaIBuiIhqhOQMYIBQoAoABIg0gHiANKwMQoDkDECANIBogDSsDGKA5AxgLIAYgAhAwIQIMAAsACwALAAsACwsLIB0gHaIhHiAGEBshAgNAIAIEQCACKAIQIgMtAIcBQQNHBEACQCAeIAMoAoABIg0rAxAiGyAboiANKwMYIhogGqKgIiVkBEAgAygClAEiAyAbIAMrAwCgOQMADAELIAMoApQBIgMgHSAboiAlnyIboyADKwMAoDkDACAdIBqiIBujIRoLIAMgGiADKwMIoDkDCAsgBiACEBwhAgwBCwsgD0EBaiEPQeCHCygCACECDAALAAsgBUUNAwwCCyAMQQFqIQwgJyAcoCEcDAALAAsgBiAHEJYNGgsgCUEgaiQADAMLIAIoAggNAyAGIBAQugEMAwsgDygCACECQQAhDiAPIQ0DQCACBEACfCANKAIYIgcEQCANKwMgDAELIA8rAwhEGC1EVPshGUCgCyACKAIQIgUuAagBIREgECACQVBBACACKAIAQQNxIgRBAkcbaigCKCIDRgRAIAJBMEEAIARBA0cbaigCKCEDC0EBIRUgDSsDCCIboSARt6NEOZ1SokbfoT8QKiEaAkAgAyAQSwRAIA4hBAwBC0F/IRUgEUEBayICIA5qIQQgGiACt6IgG6AhGyAamiEaCyANQRhqIQ1BACEDIBFBACARQQBKGyEYIAUoArABIQwDQCADIBhHBEAgFCAEQQR0aiIXIAwoAgAiAjYCACAQIAJBMEEAIAIoAgBBA3EiGUEDRxtqKAIoIgUoAhAoArgBRwRAIAJBUEEAIBlBAkcbaigCKCEFCyAXIBs5AwggFyAFNgIEIAxBBGohDCADQQFqIQMgGiAboCEbIAQgFWohBAwBCwsgDiARaiEOIAchAgwBCwsgDiATRw0DIBIoAhAoAowBIgIgEzYCBCACIBQ2AgAgDxAYCyASIAEQ6AwNACAQKAIQIgIgEigCECgCjAEiAysDGCIbOQMgIAMrAyAhGiACIBtEAAAAAAAAUkCiRAAAAAAAAOA/oiIbOQNgIAIgGzkDWCACIBo5AyggAiAaRAAAAAAAAFJAojkDUAwBCwsgEA0DDAELC0HNCEHIwAFBvwVBxz0QAAALAn8CQAJAIAgoAnwiAkECTwRAAkAgCCgCrAFFBEBBACEDDAELIAJBARAZIgNBAToAACAIKAJ8IQILIAEgAzYCKCACIAtBACABQRRqEKYOIQUgAxAYDAELIAJBAUcEQCAAIAEoAgBGIQxBACEFDAILIAsoAgAQwwJBACEFCyAAIAEoAgBGIQwgCCgCfCICRQ0AIAsoAgAoAhAiASsDKCEfIAErAyAhHiABKwMYISMgASsDECEaQQAgAkEBRg0BGiAfIAUrAwgiG6AhHyAeIAUrAwAiHKAhHiAjIBugISMgGiAcoCEaIAshBCAFIQIDQCAEKAIEIgEEQCAEQQRqIQQgAisDECEbIAEoAhAiASsDECEcIAErAxghHSABKwMgISAgHyABKwMoIAIrAxgiIaAQIiEfIB4gICAboBAiIR4gIyAdICGgECohIyAaIBwgG6AQKiEaIAJBEGohAgwBBUEADAMLAAsACyABKAIMIQIgACABKAIIQTZBAxBktyEeIAAgAkEkQQMQZLchH0QAAAAAAAAAACEaQQELIQEgACgCECICKAIMIgMEfyAeIAMrAxgQMSAeIBqhoSIbRAAAAAAAAOA/oiIcoCAeIBtEAAAAAAAAAABkIgMbIR4gGiAcoSAaIAMbIRpBAAUgAQsgDHJFBEAgAEH84QooAgBBCEEAEGS3ISQgACgCECECCyAkIBqhIRwgJCAjoSACKwM4oCEdIAIrA1ghIAJAIAENACALIQwgBSECA0AgDCgCACIERQ0BAn8gAkUEQCAdIRsgHCEaQQAMAQsgHSACKwMIoCEbIBwgAisDAKAhGiACQRBqCyEBIAxBBGohDCAbRAAAAAAAAFJAoyEbIBpEAAAAAAAAUkCjIRogBBAbIQIDQCACBEAgAigCECgClAEiAyAaIAMrAwCgOQMAIAMgGyADKwMIoDkDCCAEIAIQHCECDAEFIAEhAgwCCwALAAsACyAKKAIQKAKMASIBQgA3AwggAUIANwMQIAEgHiAkIBygoEQAAAAAAABSQKM5AxggASAfICAgJCAdoKCgRAAAAAAAAFJAozkDICAFEBggChAbIQIDQCACBEACQCACKAIQIgEoAugBIgMEQCADKAIQKAKMASIDIAEoApQBIgQrAwAgASsDICIbRAAAAAAAAOA/oqEiHDkDCCAEKwMIIR0gASsDKCEaIAMgGyAcoDkDGCADIB0gGkQAAAAAAADgP6KhIhs5AxAgAyAaIBugOQMgDAELIAEoAoABKAIIIgNFDQAgAygCECgClAEiAyABKAKUASIBKwMAOQMAIAMgASsDCDkDCAsgCiACEBwhAgwBCwsgACgCECgCjAEiASAKKAIQKAKMASICKQMINwMIIAEgAikDIDcDICABIAIpAxg3AxggASACKQMQNwMQIAshAgNAIAIoAgAiAQRAIAEQ4wwgAUGsKxDjASACQQRqIQIMAQsLIAooAhAoAowBKAIAEBggChDjDCAKQawrEOMBIAoQGyEDA0AgAwRAIAogAxAcIAogAxAtIQIDQCACBEAgAigCECgCsAEQGCACQbkrEOMBIAogAhAwIQIMAQsLIAMoAhAoAoABEBggAygCECgClAEQGCADQcYrEOMBIQMMAQsLIAoQuwEgCxAYQQBBjOEKLQAARQ0BGiAIIAAQIDYCAEG4/AgoAgBBroYEIAgQHhpBAAwBC0F/CyAIQbABaiQACw4AIAAQ2gcgABDZBxBQCxQAIAAgAUECQfgoQSFB5sIBEKICCxUAIABBo7sBQSFB5sIBQdynAxCTBQtIAQJ/IAQhBgNAIAEgA0xFBEAgACAGKAIAIgcgAkEAIAUQ1gUgAUEBayEBIAcoAhAoAowBQTBqIQYgByECDAELCyAEIAI2AgALbgEDf0EBIQIDQAJAIAAoAhAiAygCuAEhASACIAMoArQBSg0AIAEgAkECdGooAgAiASgCECgCDBC+ASABKAIQKAKMASIDBEAgAygCABAYIAEoAhAoAowBEBgLIAEQ7QwgAkEBaiECDAELCyABEBgL+gECAXwBfwNAIAREAAAAAAAAAABiRQRAQQUQqwFBCm9rtyICIAKiQQUQqwFBCm9rtyIDIAOioCEEDAELCwJ8QdyGCygCAARAQYCHCysDACIFIAWiIAQgBJ+iowwBC0GAhwsrAwAiBSAFoiAEowshBAJAIAAoAhAiBigCgAEiACgCCA0AIAYoAugBDQAgASgCECIGKAKAASgCCA0AIAQgBEQAAAAAAAAkQKIgBigC6AEbIQQLIAEoAhAoAoABIgEgAiAEoiICIAErAxCgOQMQIAEgAyAEoiIDIAErAxigOQMYIAAgACsDECACoTkDECAAIAArAxggA6E5AxgLxAEBBH8gACgCBCEFIAAoAgAhBCAAKAIIIgIhAwNAIAIhACADBEADQCAABEAgACADRwRAIAMoAgAgACgCABDyDAsgACgCBCEADAELCyADKAIEIQMMAQsLIAEgBEEBayIAIAVBAWsiAyACEIADIAEgACAFIAIQgAMgASAAIAVBAWoiACACEIADIAEgBCADIAIQgAMgASAEIAAgAhCAAyABIARBAWoiBCADIAIQgAMgASAEIAUgAhCAAyABIAQgACACEIADQQALuQICBHwEfyABIAGiIQYgABAbIQgDQCAIBEAgCCgCECIJLQCHAUECcUUEQAJ8IAYgCSgCgAEiCisDECIFIAWiIAorAxgiBCAEoqAiA2QEQCAEIAkoApQBIgcrAwigIQQgBSAHKwMAoAwBCyAEIAEgA5+jIgOiIAkoApQBIgcrAwigIQQgBSADoiAHKwMAoAshBQJAAkAgAkUNACAFIAWiQaCHCysDACIDIAOioyAEIASiQaiHCysDACIDIAOio6CfIQMCQCAKKAIIDQAgCSgC6AENACAHIAUgA6M5AwAgBCADoyEEDAILIANEAAAAAAAA8D9mRQ0AIAcgBURmZmZmZmbuP6IgA6M5AwAgBERmZmZmZmbuP6IgA6MhBAwBCyAHIAU5AwALIAcgBDkDCAsgACAIEBwhCAwBCwsL/QECBHwCfyABKAIQKAKUASIHKwMAIAAoAhAoApQBIggrAwChIgQgBKIgBysDCCAIKwMIoSIFIAWioCEDA0AgA0QAAAAAAAAAAGJFBEBBBRCrAUEKb2u3IgQgBKJBBRCrAUEKb2u3IgUgBaKgIQMMAQsLIAOfIQMgAigCECICKwOAASEGIAEoAhAoAoABIgEgASsDECAEAnxB3IYLKAIABEAgBiADIAIrA4gBoaIgA6MMAQsgAyAGoiACKwOIAaMLIgOiIgShOQMQIAEgASsDGCAFIAOiIgOhOQMYIAAoAhAoAoABIgAgBCAAKwMQoDkDECAAIAMgACsDGKA5AxgLQgECfCAAIAEgASgCECgClAEiASsDACAAKAIQKAKUASIAKwMAoSICIAErAwggACsDCKEiAyACIAKiIAMgA6KgEO4MCzQBAn9BAUEQEBkiAUEANgIMIAEgAEEUEBkiAjYCACABIAI2AgQgASACIABBFGxqNgIIIAELrwICB38BfSADIAFBAnRqKAIAIgkoAhAiBUEBOgC0ASAFQQE2ArABQwAAgL9DAACAPyACQQNGGyELIAAgAUEUbGohCEEBIQUDQCAFIAgoAgBPRQRAAkAgBUECdCIEIAgoAhBqIgYqAgBDAACAP1sNACADIAgoAgQgBGooAgAiB0ECdGooAgAoAhAiBC0AtAEEQCAGIAs4AgBBASEEQQEgACAHQRRsaiIHKAIAIgYgBkEBTRshBgJAA0AgBCAGRwRAIARBAnQiCiAHKAIEaigCACABRg0CIARBAWohBAwBCwtB0TVBv8EBQdYFQeeiARAAAAsgBygCECAKakGAgID8ezYCAAwBCyAEKAKwAQ0AIAAgByACIAMQ9AwLIAVBAWohBQwBCwsgCSgCEEEAOgC0AQviCQEgfyAAELoCQfikCkGs9AkoAgAQlwEhEiAEQQJHBEAgAEECQY7sAEEAECFBAEchE0H04gooAgBBAEchDQsgAUEUEBkhDiABQQQQGSEQQQF0IAFqIhFBBBAZIQggA0F+cSIYQQJGIBNyIhoEQCARQQQQGSEHCyANBEAgEUEEEBkhCQsgGEECRyIbRQRAIBFBBBAZIQ8LQQRBACANGyEeQQRBACAaGyEfIBhBAkYiIEECdCEhIAAQGyEKAkACQANAIAoEQCASQQBBwAAgEigCABEEABogCigCECgCiAEgFEcNAiAQIBRBAnRqIAo2AgAgDiAUQRRsaiIWIA9BACAgGzYCECAWIAlBACANGyIiNgIMIBYgB0EAIBobIiM2AgggFiAINgIEIA8gIWohDyAJIB5qIQkgByAfaiEHIAhBBGohC0EBIRcgACAKEG8hBEEBIRkDQCAEBEACQCAEIARBMGsiHCAEKAIAQQNxIgZBAkYiFRsoAiggBCAEQTBqIiQgBkEDRiIGGygCKEYNACAEQQBBMCAGG2ooAigoAhAoAogBIgwgBEEAQVAgFRtqKAIoKAIQKAKIASIVIAwgFUgbISUjAEEgayIGJAAgBiAXNgIcIAYgDCAVIAwgFUobNgIYIAYgJTYCFCASIAZBDGpBASASKAIAEQQAKAIQIQwgBkEgaiQAIBcgDCIGRwRAIA0EQCAiIAZBAnRqIgwgBCgCECsDgAEgDCoCALugtjgCAAsgE0UNASAjIAZBAnRqIgYgBioCALsgBCgCECsDiAEQIrY4AgAMAQsgCyAKIAQgJCAEKAIAQQNxIgZBA0YbKAIoIgxGBH8gBCAcIAZBAkYbKAIoBSAMCygCECgCiAE2AgAgDQRAIAkgBCgCECsDgAG2OAIAIAlBBGohCQsCQAJAIBNFBEAgGw0CIAdBgICA/AM2AgAgB0EEaiEHDAELIAcgBCgCECsDiAG2OAIAIAdBBGohByAbDQELIA8CfSAEQZA9ECYiBgRAQwAAAAAgBkHnnQEQxwINARoLQwAAgD9DAACAvyAKIAQgHCAEKAIAQQNxQQJGGygCKEYbCzgCACAPQQRqIQ8LIAtBBGohCyAXQQFqIRcgHUEBaiEdIBlBAWohGQsgACAEIAoQcyEEDAELCyAWIBk2AgAgCCAUNgIAIBRBAWohFCAAIAoQHCEKIAshCAwBCwsgGEECRw0BQQAhCEEAIQQDQCABIAhGBEADQCABIARGDQQgECAEQQJ0aigCACgCECgCsAFFBEAgDiAEIAMgEBD0DAsgBEEBaiEEDAALAAUgECAIQQJ0aigCACgCECILQQA6ALQBIAtBADYCsAEgCEEBaiEIDAELAAsAC0Gy/QBBv8EBQa8GQaXKARAAAAsCQCAAELoCIB1BAm0iC0YNACAOKAIEIBEgC0EBdCABaiIAEMIBIQggEwRAIA4oAgggESAAEMIBIQcLIA0EQCAOKAIMIBEgABDCASEJC0EAIQQDQCABIARGDQEgDiAEQRRsaiIAIAg2AgQgACgCAEECdCEDIBMEQCAAIAc2AgggAyAHaiEHCyANBEAgACAJNgIMIAMgCWohCQsgAyAIaiEIIARBAWohBAwACwALIAIgCzYCAAJAIAUEQCAFIBA2AgAMAQsgEBAYCyASEN8CIA4LlwcCCH8CfCAAQQIQiwIgACAAQQBBhewAQQAQIUECQQIQZCEBIAAgAEEAQcjyAEEAECEgAUECEGQhAyAAEDcoAhAgAzsBsAEgACgCSCgCECIIQQogCC8BsAEiAyADQQpPGyIDOwGwAUHM4QogAzsBACAIIAEgAyABIANIGzsBsgEgABA4IQhBtIYLIABBAUHfMEEAECE2AgAgAEEBQbjqAEEAECEhAyAAEBshAQNAIAEEQCABELwEQbSGCygCACEEIwBB0ABrIgIkAAJAIARFDQAgASgCECgClAEhByABIAQQQSIFLQAARQ0AIAJBADoATwJAQczhCi8BAEEDSQ0AIAIgBzYCMCACIAdBEGo2AjggAiAHQQhqNgI0IAIgAkHPAGo2AjwgBUGIyAEgAkEwahBPQQNIDQAgASgCEEEBOgCHAUHM4QovAQAhBQJAQaDhCisDAEQAAAAAAAAAAGRFDQBBACEGA0AgBSAGRg0BIAcgBkEDdGoiBCAEKwMAQaDhCisDAKM5AwAgBkEBaiEGDAALAAsgBUEETwRAIAEgCEEDEJ4ICyACLQBPQSFHBEAgA0UNAiABIAMQQRBqRQ0CCyABKAIQQQM6AIcBDAELIAIgBzYCICACIAdBCGo2AiQgAiACQc8AajYCKCAFQYzIASACQSBqEE9BAk4EQCABKAIQQQE6AIcBQczhCi8BACEFAkBBoOEKKwMARAAAAAAAAAAAZEUNAEEAIQYDQCAFIAZGDQEgByAGQQN0aiIEIAQrAwBBoOEKKwMAozkDACAGQQFqIQYMAAsACwJAIAVBA0kNAAJAQejiCigCACIERQ0AIAEgBBBBIgRFDQAgAiACQUBrNgIAIARBtowBIAIQT0EBRw0AIAcgAisDQCIKQaDhCisDACIJoyAKIAlEAAAAAAAAAABkGzkDECABIAhBAxCeCAwBCyABIAgQnQgLIAItAE9BIUcEQCADRQ0CIAEgAxBBEGpFDQILIAEoAhBBAzoAhwEMAQsgARAgIQQgAiAFNgIUIAIgBDYCEEGQ9QMgAkEQahA2CyACQdAAaiQAIAAgARAcIQEMAQsLIAAQGyEDA0AgAwRAIAAgAxAtIQEDQCABBEAgAUG5K0G4AUEBEDUaIAEQnQMgAUH04gooAgBEAAAAAAAA8D9EAAAAAAAA8D8QSyEJIAEoAhAgCTkDgAEgACABEDAhAQwBCwsgACADEBwhAwwBCwsLzQECBH8EfCMAQRBrIgMkACADQQE2AgwCQCAAIAIgA0EMahDiByIEQQJGDQBBtIYLKAIARQ0AQeKWBEEAECsLAkAgBEEBRw0ARBgtRFT7IRlAIAG3IgijIQkgABAbIQIDQCACRQ0BIAcQWCEKIAIoAhAiBSgClAEiBiAKIAiiOQMIIAYgBxBEIAiiOQMAIAVBAToAhwFBzOEKLwEAQQNPBEAgAiABEJ0ICyAJIAegIQcgACACEBwhAgwACwALIAMoAgwQuwcgA0EQaiQAIAQLmwICAn8CfCMAQdAAayIEJAACQAJAIAAQxwFFDQAgACADEEEgBCAEQcgAajYCDCAEIARBQGs2AgggBCAEQThqNgIEIAQgBEEwajYCAEGajAEgBBBPQQRHDQAgBCsDOCIGIAQrA0giB2QEQCAEIAY5A0ggBCAHOQM4CyAEIAQpA0g3AyggBCAEQUBrKQMANwMgIAQgBCkDODcDGCAEIAQpAzA3AxAgAEGsK0GYAkEBEDUaIAAoAhAiBSAEKQMQNwMQIAUgBCkDKDcDKCAFIAQpAyA3AyAgBSAEKQMYNwMYIAEgABCMBiAAIAIgAxD5DAwBCyAAEHohAANAIABFDQEgACABIAIgAxD4DCAAEHkhAAwACwALIARB0ABqJAALpQECAn8CfCMAQSBrIgQkAAJAIAFFDQAgACgCECgCDEUNACAAIAEQQSAEIARBEGo2AgQgBCAEQRhqNgIAQaKMASAEEE9BAkcNACAEKwMYIQUgBCsDECEGIAAoAhAoAgwiA0EBOgBRIAMgBjkDQCADIAU5AzgLAkAgAkUNACAAEHohAwNAIANFDQEgAyAAIAEgAhD4DCADEHkhAwwACwALIARBIGokAAusAwIHfwN8IAJBACACQQBKGyELAkAgBEECRgRAA0AgAyAFRg0CIAEgBUEEdGoiBigCACEHQQAhBANAIAQgB0YEQCAFQQFqIQUMAgUgBSAEQQJ0IgggBigCBGooAgAiCUgEQEQAAAAAAAAAACENQQAhAgNAIAIgC0ZFBEAgACACQQJ0aigCACIKIAVBA3RqKwMAIAogCUEDdGorAwChIg4gDqIgDaAhDSACQQFqIQIMAQsLIAwgBigCCCAIaigCALciDCANn6EiDSANoiAMIAyio6AhDAsgBEEBaiEEDAELAAsACwALA0AgAyAFRg0BIAEgBUEEdGoiBigCACEHQQAhBANAIAQgB0YEQCAFQQFqIQUMAgUgBSAEQQJ0IgggBigCBGooAgAiCUgEQEQAAAAAAAAAACENQQAhAgNAIAIgC0ZFBEAgACACQQJ0aigCACIKIAVBA3RqKwMAIAogCUEDdGorAwChIg4gDqIgDaAhDSACQQFqIQIMAQsLIAwgBigCCCAIaigCALciDCANn6EiDSANoiAMo6AhDAsgBEEBaiEEDAELAAsACwALIAwLvQMCBn8CfCMAQTBrIgQkACAAKAIAIQICQAJAAkAgAAJ/IAAoAgQiBSAAKAIIRwRAIAUMAQsgBUH/////AE8NASAFQQF0IgNBgICAgAFPDQICQCADRQRAIAIQGEEAIQIMAQsgAiAFQQV0IgYQOiICRQ0EIAYgBUEEdCIHTQ0AIAIgB2pBACAHEDMaCyAAIAM2AgggACACNgIAIAAoAgQLQQFqNgIEIAIgBUEEdGoiAyABKQMINwMIIAMgASkDADcDAANAAkAgBUUNACAAKAIAIgIgBUEEdCIDaisDCCIIIAIgBUEBdiIFQQR0IgFqKwMIIgljRQRAIAggCWINARCrAUEBcUUNASAAKAIAIQILIAQgAiADaiIDQQhqKQMANwMoIAQgAykDADcDICADIAEgAmoiAikDADcDACADIAIpAwg3AwggACgCACABaiIBIAQpAyA3AwAgASAEKQMoNwMIDAELCyAEQTBqJAAPC0HfyQNBmIUBQc0AQe+6ARAAAAsgBEEQNgIEIAQgAzYCAEG4/AgoAgBBhPQDIAQQHhoQKAALIAQgBjYCEEG4/AgoAgBB0/MDIARBEGoQHhoQKAALEgAgACABQf0kQSdB/8ABEMgBC5sCAgR/AnwjAEEQayIFJAADQCABQQF0IgJBAXIhAwJAAkAgAiAAKAIETw0AIAAoAgAiBCACQQR0aisDCCIGIAQgAUEEdGorAwgiB2MNASAGIAdiDQAQqwFBAXENAQsgASECCwJAIAMgACgCBE8NACAAKAIAIgQgA0EEdGorAwgiBiAEIAJBBHRqKwMIIgdjRQRAIAYgB2INARCrAUEBcUUNAQsgAyECCyABIAJHBEAgBSAAKAIAIgQgAkEEdGoiA0EIaikDADcDCCAFIAMpAwA3AwAgAyAEIAFBBHQiAWoiBCkDADcDACADIAQpAwg3AwggACgCACABaiIBIAUpAwA3AwAgASAFKQMINwMIIAIhAQwBCwsgBUEQaiQAC/kLAhB/AnxBjOEKLQAABEBBuPUAQRlBAUG4/AgoAgAQTBoLIABBACAAQQBKGyEHA0AgAyAHRwRAIAEgA0ECdGohBkEAIQREAAAAAAAAAAAhEwNAIAAgBEcEQCADIARHBEAgEyAGKAIAIARBA3RqKwMAoCETCyAEQQFqIQQMAQsLIAYoAgAgA0EDdGogE5o5AwAgA0EBaiEDDAELCyAAQQFrIQNBACEEQQAhBiMAQSBrIgskAAJAAn9BoIYLKAIAIgAEQCAAEIkDC0GghgsgAyADRAAAAAAAAAAAEIoDNgIAQaSGCygCABAYQaSGCyADQQQQGTYCAEGohgsoAgAQGEGohgsgA0EIEBkiCjYCACADQQAgA0EAShshCEGkhgsoAgAhB0GghgsoAgAhCQJAAkADQCAEIAhGDQEgCSAEQQJ0IgVqIQwgASAFaiEORAAAAAAAAAAAIRNBACEAA0AgACADRwRAIABBA3QiDyAMKAIAaiAOKAIAIA9qKwMAIhQ5AwAgAEEBaiEAIBMgFJkQIiETDAELCyATRAAAAAAAAAAAZARAIAogBEEDdGpEAAAAAAAA8D8gE6M5AwAgBSAHaiAENgIAIARBAWohBAwBCwsgCiAEQQN0akIANwMADAELQQAhASADQQFrIghBACAIQQBKGyEMQQAhBANAAkBEAAAAAAAAAAAhEyAMIAEiAEYNAANAIAAgA0gEQCAJIAcgAEECdGooAgAiBUECdGooAgAgAUEDdGorAwCZIAogBUEDdGorAwCiIhQgEyATIBRjIgUbIRMgACAEIAUbIQQgAEEBaiEADAELCyATRAAAAAAAAAAAZQ0CIAEgBEcEQCAHIAFBAnRqIgAoAgAhBSAAIAcgBEECdGoiACgCADYCACAAIAU2AgALIAkgByABQQJ0aigCAEECdGooAgAiDiABQQN0Ig9qKwMAIRMgAUEBaiIBIQUDQCADIAVMDQIgCSAHIAVBAnRqKAIAQQJ0aigCACIQIA9qIgAgACsDACAToyIUOQMAIBSaIRQgASEAA0AgACADSARAIBAgAEEDdCIRaiISIBQgDiARaisDAKIgEisDAKA5AwAgAEEBaiEADAELCyAFQQFqIQUMAAsACwsgCSAHIAhBAnRqKAIAQQJ0aigCACAIQQN0aisDAEQAAAAAAAAAAGIMAQtBAAtFDQACQCADQYCAgIACSQRAQQAgAyADQQgQRyIEGw0BA0BBACEAIAMgBkcEQANAIAAgA0cEQCAEIABBA3RqQgA3AwAgAEEBaiEADAELCyAEIAZBA3RqQoCAgICAgID4PzcDACACIAZBAnRqKAIAIQdBACEBIANBACADQQBKGyEKQaSGCygCACEFQaCGCygCACEJA38gASAKRgR/IAMFIAkgBSABQQJ0aigCACIIQQJ0aiENRAAAAAAAAAAAIRNBACEAA0AgACABRwRAIABBA3QiDCANKAIAaisDACAHIAxqKwMAoiAToCETIABBAWohAAwBCwsgByABQQN0aiAEIAhBA3RqKwMAIBOhOQMAIAFBAWohAQwBCwshAANAAkACQCAAQQBKBEAgBSAAQQFrIgFBAnRqIQpEAAAAAAAAAAAhEwNAIAAgA04NAiAAQQN0IgggCSAKKAIAQQJ0aigCAGorAwAgByAIaisDAKIgE6AhEyAAQQFqIQAMAAsACwwBCyAHIAFBA3QiAGoiCCAIKwMAIBOhIAkgCigCAEECdGooAgAgAGorAwCjOQMAIAEhAAwBCwsgBkEBaiEGDAELCyAEEBhBACEGQQEhDQNAIAMgBkYNAyACIAZBAnRqIQFBACEAA0AgACAGRwRAIAEoAgAgAEEDdGoiBCsDACETIAQgAiAAQQJ0aigCACAGQQN0aiIEKwMAOQMAIAQgEzkDACAAQQFqIQAMAQsLIAZBAWohBgwACwALIAtBCDYCBCALIAM2AgBBuPwIKAIAQYT0AyALEB4aECgACyALIANBA3Q2AhBBuPwIKAIAQdPzAyALQRBqEB4aECgACyALQSBqJAAgDQsgACAABEAgACgCBBAYIAAoAggQGCAAKAIQEBggABAYCwvYAQIDfwJ8IwBBEGsiBCQAIAAoAhAiAiACKwMgIAErAwAiBqE5AyAgASsDCCEFIAIgAisDECAGoTkDECACIAIrAyggBaE5AyggAiACKwMYIAWhOQMYAkAgAigCDCIDRQ0AIAMtAFFBAUcNACADIAMrAzggBqE5AzggAyADKwNAIAWhOQNAC0EBIQMDQCADIAIoArQBSkUEQCACKAK4ASADQQJ0aigCACAEIAEpAwg3AwggBCABKQMANwMAIAQQgA0gA0EBaiEDIAAoAhAhAgwBCwsgBEEQaiQAC6ABAgN/AnwjAEEQayIDJABBASEEA0AgBCAAKAIQIgIoArQBSkUEQCACKAK4ASAEQQJ0aigCACADIAEpAwg3AwggAyABKQMANwMAIAMQgQ0gBEEBaiEEDAELCyACIAIrAyAgASsDACIGoTkDICABKwMIIQUgAiACKwMQIAahOQMQIAIgAisDKCAFoTkDKCACIAIrAxggBaE5AxggA0EQaiQAC6gBAQJ/IAAoAhAiAyABIAMrAyCiOQMgIAMgAiADKwMoojkDKCADIAEgAysDEKI5AxAgAyACIAMrAxiiOQMYAkAgAygCDCIERQ0AIAQtAFFBAUcNACAEIAEgBCsDOKI5AzggBCACIAQrA0CiOQNAC0EBIQQDQCAEIAMoArQBSkUEQCADKAK4ASAEQQJ0aigCACABIAIQgg0gBEEBaiEEIAAoAhAhAwwBCwsLogUCCn8EfCMAQSBrIgMkACADIAAoAhAiASkDGDcDGCADIAEpAxA3AxAgAysDECILRAAAAAAAAFJAoyENIAMrAxgiDEQAAAAAAABSQKMhDiAAEBshAgNAIAIEQCACKAIQIgQoApQBIgEgASsDACANoTkDACABIAErAwggDqE5AwgCQCAEKAJ8IgFFDQAgAS0AUUEBRw0AIAEgASsDOCALoTkDOCABIAErA0AgDKE5A0ALIAAgAhAcIQIMAQsLIAAQGyEEA0AgBARAIAAgBBAtIQUDQAJAIAUEQCAFKAIQIgYoAggiAUUNASABKAIEIQkgASgCACEBQQAhBwNAIAcgCUYEQAJAIAYoAmAiAUUNACABLQBRQQFHDQAgASABKwM4IAuhOQM4IAEgASsDQCAMoTkDQAsCQCAGKAJsIgFFDQAgAS0AUUEBRw0AIAEgASsDOCALoTkDOCABIAErA0AgDKE5A0ALAkAgBigCZCIBRQ0AIAEtAFFBAUcNACABIAErAzggC6E5AzggASABKwNAIAyhOQNACyAGKAJoIgFFDQMgAS0AUUEBRw0DIAEgASsDOCALoTkDOCABIAErA0AgDKE5A0AMAwsgASgCBCEKIAEoAgAhAkEAIQgDQCAIIApGBEAgASgCCARAIAEgASsDECALoTkDECABIAErAxggDKE5AxgLIAEoAgwEQCABIAErAyAgC6E5AyAgASABKwMoIAyhOQMoCyAHQQFqIQcgAUEwaiEBDAIFIAIgAisDACALoTkDACACIAIrAwggDKE5AwggCEEBaiEIIAJBEGohAgwBCwALAAsACyAAIAQQHCEEDAMLIAAgBRAwIQUMAAsACwsgAyADKQMYNwMIIAMgAykDEDcDACAAIAMQgA0gA0EgaiQAC+UHAgd/BnwjAEHgAGsiBiQAIAZBCGohAyMAQSBrIgUkAAJAIAAiB0GF4QAQJiIABEAgACADRAAAAAAAAPA/RAAAAAAAAAAAENoFDQELIAdBhuEAECYiAARAIAAgA0QAAAAAAAD0P0SamZmZmZkJQBDaBQ0BCyADQQE6ABAgA0Kas+bMmbPmhMAANwMAIANCmrPmzJmz5oTAADcDCAtBjOEKLQAABEAgAy0AECEAIAMrAwAhCiAFIAMrAwg5AxAgBSAKOQMIIAUgADYCAEG4/AgoAgBB+/sEIAUQMgsgBUEgaiQAIAcQGyEFA0AgBQRAIAcgBRAtIQQDQCAEBEAjAEEwayIDJAAgBCgCECIALQAvQQFGBEAgA0EIaiIIIARBMEEAIAQoAgBBA3EiCUEDRxtqKAIoIARBUEEAIAlBAkcbaigCKCAAQRBqIgAQhAUgACAIQSgQHxogBCgCECEACyAALQBXQQFGBEAgA0EIaiIIIARBUEEAIAQoAgBBA3EiCUECRxtqKAIoIARBMEEAIAlBA0cbaigCKCAAQThqIgAQhAUgACAIQSgQHxoLIANBMGokACAHIAQQMCEEDAELCyAHIAUQHCEFDAELC0Hs2ApBrPQJKAIAEJcBIQkgBxAbIQgDQCAIBEAgByAIEC0hBANAAkACQAJAIAQEQAJAQZjhCigCAEECSA0AIAQoAhAiACgCCEUNACAAIAAvAagBQQFqOwGoAQwECyAEQTBBACAEKAIAQQNxIgNBA0cbaigCKCIAIARBUEEAIANBAkcbaigCKCIFSQRAIAQoAhAiAysDQCENIAMrAzghDiADKwMYIQogAysDECELIAAhAwwDCyAEKAIQIQMgACAFSwRAIAMrA0AhCiADKwM4IQsgAysDGCENIAMrAxAhDiAFIQMgACEFDAMLIAMrAxghDCADKwNAIQogAysDECIPIAMrAzgiC2MNASALIA9jRQRAIAogDGQNAiAKIAwgCiAMYyIDGyEKIAsgDyADGyELCyAAIgMhBSAPIQ4gDCENDAILIAcgCBAcIQgMBQsgACIDIQUgCyEOIAohDSAPIQsgDCEKCyAGIA05A1AgBiAOOQNIIAYgBTYCQCAGIAo5AzggBiALOQMwIAYgAzYCKCAGIAQ2AlggCSAGQSBqQQEgCSgCABEEACgCOCIAIARGDQAgACgCECIAIAAvAagBQQFqOwGoASAEKAIQIAAoArABNgKwASAAIAQ2ArABCyAHIAQQMCEEDAALAAsLIAkQmwEaQQEhBCAHIAZBCGogAiABEQQARQRAQdDhCkEBNgIAQQAhBAsgBkHgAGokACAEC/YGAg1/AX4jAEGgAWsiBCQAIAQgACgCECkDkAEiETcDmAEgBCARpyIFKQMINwNoIAQgBSkDADcDYCAEIAUgEUIgiKdBBHRqQRBrIgUpAwg3A1ggBCAFKQMANwNQAkAgA0UEQCACQQAgAkEAShshCEGpdyEFQal3IQYMAQtBACEDIAJBACACQQBKGyEIQal3IQVBqXchBgNAIAMgCEYNASAFQal3RgRAIAEgA0ECdGooAgApAgAhESAEQUBrIAQpA2g3AwAgBCARNwNIIAQgBCkDYDcDOCADQal3IARByABqIARBOGoQvwQbIQULIAZBqXdGBEAgASADQQJ0aigCACkCACERIAQgBCkDWDcDKCAEIBE3AzAgBCAEKQNQNwMgIANBqXcgBEEwaiAEQSBqEL8EGyEGCyADQQFqIQMMAAsAC0EAIQMDQCADIAhHBEAgAyAFRiADIAZGckUEQCABIANBAnRqKAIAKAIEIAdqIQcLIANBAWohAwwBCwsgB0EgEBkhCUEAIQIDQCACIAhHBEACQCACIAVGIAIgBkZyDQBBACEDIAEgAkECdGooAgAiDigCBCINQQAgDUEAShshDwNAIAMgD0YNASAJIApBBXRqIgsgDigCACIMIANBBHRqIhApAwA3AwAgCyAQKQMINwMIIAsgDCADQQFqIgNBACADIA1IG0EEdGoiDCkDADcDECALIAwpAwg3AxggCkEBaiEKDAALAAsgAkEBaiECDAELCyAHIApGBEAgBEIANwOIASAEQgA3A4ABIARCADcDeCAEQgA3A3AgBCAEKQOYATcDGAJAIAkgByAEQRhqIARB8ABqIARBkAFqENUIQQBIBEAgAEEwQQAgACgCAEEDcUEDRxtqKAIoECAhASAEIABBUEEAIAAoAgBBA3FBAkcbaigCKBAgNgIEIAQgATYCAEGt9wQgBBA2DAELQYzhCi0AAEECTwRAIABBMEEAIAAoAgBBA3FBA0cbaigCKBAgIQEgBCAAQVBBACAAKAIAQQNxQQJHG2ooAigQIDYCFCAEIAE2AhBBuPwIKAIAQZX8AyAEQRBqEB4aCyAAIABBUEEAIAAoAgBBA3FBAkcbaigCKCAEKAKQASAEKAKUAUGE2QoQngEgCRAYIAAQnwMLIARBoAFqJAAPC0Gi8QBB18IBQcoAQZ0vEAAAC4QPAhF/AnwjAEFAaiIFJAAgAUEwQQAgASgCAEEDcSIGQQNHG2ooAigoAhAiEysAECEWIAEoAhAiEisAECEVIAUgEisAGCATKwAYoDkDOCAFIBUgFqA5AzAgAUFQQQAgBkECRxtqKAIoKAIQIhQrABAhFiASKwA4IRUgBSASKwBAIBQrABigOQMoIAUgFSAWoDkDIEGpdyEBQal3IQYgAwRAIBQoArACIQYgEygCsAIhAQsgBSAFKQM4NwMYIAUgBSkDKDcDCCAFIAUpAzA3AxAgBSAFKQMgNwMAIAAhEiMAQeAAayIHJAAgByAFKQMYNwNYIAcgBSkDEDcDUCACIAEgB0HQAGoQkw0hEyAHIAUpAwg3A0ggByAFKQMANwNAIAIgBiAHQUBrEJMNIRQgByAFKQMYNwM4IAcgBSkDEDcDMCAHIAUpAwg3AyggByAFKQMANwMgIwBBIGsiCCQAIAIiDygCBCEQIAggBykDODcDGCAIIAcpAzA3AxAgCCAHKQMoNwMIIAggBykDIDcDAEEAIQIjAEHAAWsiBCQAAn8CfwJAIAFBAEgEQEEAIAZBAEgNAxogDygCDCAGQQJ0aiEKDAELIAZBAEgEQCAPKAIMIAFBAnRqIQoMAQsgDygCDCEAIAEgBk0EQCAAIAZBAnRqIQogACABQQJ0aiIAKAIEIQkgACgCAAwCCyAAIAFBAnRqIQogACAGQQJ0aiIAKAIEIQkgACgCAAwBC0EACyEOIAooAgQhAiAKKAIACyERIA8oAhAhDSAPKAIIIQsgDygCBCEGQQAhCiAOQQAgDkEAShshAwJAA0ACQCADIApGBEAgESAJIAkgEUgbIQMDQCADIAlGBEAgAiAGIAIgBkobIQMDQCACIANGIg4NBiANIAJBAnRqKAIAIQEgBCAIKQMYNwM4IAQgCCkDEDcDMCAEIAgpAwg3AyggBCAIKQMANwMgIAQgCyACQQR0aiIAKQMINwMYIAQgACkDADcDECAEIAsgAUEEdGoiACkDCDcDCCAEIAApAwA3AwAgAkEBaiECIARBMGogBEEgaiAEQRBqIAQQvgRFDQALDAULIA0gCUECdGooAgAhASAEIAgpAxg3A3ggBCAIKQMQNwNwIAQgCCkDCDcDaCAEIAgpAwA3A2AgBCALIAlBBHRqIgApAwg3A1ggBCAAKQMANwNQIAQgCyABQQR0aiIAKQMINwNIIAQgACkDADcDQCAJQQFqIQkgBEHwAGogBEHgAGogBEHQAGogBEFAaxC+BEUNAAsMAQsgDSAKQQJ0aigCACEBIAQgCCkDGDcDuAEgBCAIKQMQNwOwASAEIAgpAwg3A6gBIAQgCCkDADcDoAEgBCALIApBBHRqIgApAwg3A5gBIAQgACkDADcDkAEgBCALIAFBBHRqIgApAwg3A4gBIAQgACkDADcDgAEgCkEBaiEKIARBsAFqIARBoAFqIARBkAFqIARBgAFqEL4ERQ0BCwtBACEOCyAEQcABaiQAAkAgDgRAIBBBAmpBBBAZIgkgEEECdGogEEEBaiIANgIAIAkgAEECdGpBfzYCAAwBCyAPKAIYIgogEEECdGogFDYCACAKIBBBAWoiAEECdGogEzYCACAQQQJqIgFBACABQQBKGyEOIAFBBBAZIQkgEEEDakEIEBkiC0EIaiEEA0AgDCAORwRAIAkgDEECdGpBfzYCACAEIAxBA3RqQoCAgP7////vQTcDACAMQQFqIQwMAQsLIAtCgICAgICAgPBBNwMAA0AgACAQRwRAIAQgAEEDdCIRaiINRAAAAAAAAAAAIA0rAwAiFZogFUQAAMD////fwWEbOQMAIAogAEECdGohBkF/IQJBACEMA0AgDCAORgRAIAIhAAwDBSAEIAxBA3QiA2oiASsDACIWRAAAAAAAAAAAYwRAAkACfyAAIAxOBEAgBigCACADagwBCyAKIAxBAnRqKAIAIBFqCysDACIVRAAAAAAAAAAAYQ0AIBYgFSANKwMAoJoiFWNFDQAgASAVOQMAIAkgDEECdGogADYCACAVIRYLIAwgAiAWIAQgAkEDdGorAwBkGyECCyAMQQFqIQwMAQsACwALCyALEBgLIAhBIGokACAJIQ0gDygCBCIBQQFqIRFBASEAIAEhBgNAIAAiA0EBaiEAIA0gBkECdGooAgAiBiARRw0ACwJAAkACQCAAQYCAgIABSQRAQQAgACAAQRAQRyIGGw0BIAYgA0EEdGoiAiAFKQMANwMAIAIgBSkDCDcDCANAIAYgA0EBayIDQQR0aiELIBEgDSABQQJ0aigCACIBRwRAIAsgDygCCCABQQR0aiICKQMANwMAIAsgAikDCDcDCAwBCwsgCyAFKQMQNwMAIAsgBSkDGDcDCCADDQIgExAYIBQQGCASIAY2AgAgEiAANgIEIA0QGCAHQeAAaiQADAMLIAdBEDYCBCAHIAA2AgBBuPwIKAIAQYT0AyAHEB4aECgACyAHIABBBHQ2AhBBuPwIKAIAQdPzAyAHQRBqEB4aECgAC0G9oANBwsABQfsAQfH+ABAAAAsgBUFAayQAC4IBAQF8AkAgACACKwMAIgNiBEAgASADoiIBmiABIAIrAwhEAAAAAAAAAABmGyAAIAAgAKIgAyADoqGfoqMiAL1C////////////AINCgICAgICAgPj/AFoNASAADwtBibkDQdfCAUGRAkGZnQEQAAALQazFA0HXwgFBlAJBmZ0BEAAAC50OAgp8CX8jAEGgAWsiDSQAAkACQAJAAkACQCAAEOcCQQFrDgQAAQACBAtBCCEPQQgQVCEQIAAoAhAiDigCDCERAnwgAgRAAn8gES0AKUEIcQRAIA1BMGogERCvCiANIA0rA0giAzkDiAEgDSANKwMwIgY5A4ABIA0gAzkDeCANIA0rA0AiBTkDcCANIA0rAzgiAzkDaCANIAU5A2AgDSADOQNYIA0gBjkDUEEBIRMgDUHQAGohEkEEDAELIA4rA2ghBCAOKwNgIQYgDisDWCEHIA0gDisDcEQAAAAAAABSQKIiBUQAAAAAAADgP6IiAzkDiAEgDSADOQN4IA0gBUQAAAAAAADgv6IiAzkDaCANIAM5A1ggDSAHIAREAAAAAAAAUkCioiAHIAagoyIDOQNwIA0gAzkDYCANIAOaIgM5A4ABIA0gAzkDUEEBIRMgDUHQAGohEkEECyEPRAAAAAAAAAAAIQZEAAAAAAAAAAAMAQsgESgCCCICQQNJBEBEAAAAAAAAAAAMAQsgAEHs4gooAgBEAAAAAAAA8D9EAAAAAAAAAAAQSyEDIBEoAiwgESgCBCIPIA9BAEcgA0QAAAAAAAAAAGRxaiIPQQFrIAJsQQAgDxtBBHRqIRIgASsDCCEGQQEhEyACIQ8gASsDAAshBSAQIA82AgQgECAPQRAQGSIUNgIAIA+4IQtBACECIA9BBEchFQNAIAIgD0YNBAJAIBMEQCABLQAQQQFGBEAgFUUEQCAFIQMgBiEEAkACQAJAAkACQCACDgQEAwABAgsgBpohBCAFmiEDDAMLIAaaIQQMAgsgDUGlAzYCBCANQdfCATYCAEG4/AgoAgBB98gEIA0QHhoQbAALIAWaIQMLIAQgEiACQQR0aiIOKwMIoCEEIAMgDisDAKAhAwwDCyASIAJBBHRqIg4rAwgiAyAGIA4rAwAiByADEFAiA6NEAAAAAAAA8D+goiEEIAcgBSADo0QAAAAAAADwP6CiIQMMAgsgBiASIAJBBHRqIg4rAwiiIQQgBSAOKwMAoiEDDAELIAAoAhAiDisDcEQAAAAAAABSQKIhCCAOKwNoRAAAAAAAAFJAoiEHRAAAAAAAAAAAIQZEAAAAAAAAAAAhBSABLQAQQQFGBEAgASsDCCEGIAErAwAhBQsgDSACuCIERAAAAAAAAOC/oEQYLURU+yEZQKIgC6MiAxBYIAggBqBEAAAAAAAA4D+iIgyiIgg5AzggDSADEEQgByAFoEQAAAAAAADgP6IiCaIiBzkDMCANIAREAAAAAAAA4D+gRBgtRFT7IRlAoiALoyIEEFggDKIiAzkDmAEgDSANKQM4NwMoIA0gDSkDMDcDICANIAQQRCAJoiIEOQOQASAJIAwgDUEgahCHDSEKIA0gDSkDmAE3AxggDSANKQOQATcDECAKIAMgCiAHoiAIoSAJIAwgDUEQahCHDSIDIASioaAgCiADoaMiAyAHoaIgCKAhBAsgFCAPIAJBf3NqQQR0aiIRIAMgACgCECIOKwMQoDkDACARIAQgDisDGKA5AwggAkEBaiECDAALAAsgACgCECgCDCICKwMoIQcgAisDICEDIAIrAxghBCACKwMQIQZBCBBUIhBBBDYCBCAQQQRBEBAZIgI2AgAgASsDCCEJIAErAwAhCiAAKAIQIgArAxghCyAAKwMQIQggAS0AEEEBRgRAIAIgCCADIAqgoCIFOQMwIAIgCyAHIAmgoCIDOQMoIAIgBTkDICACIAM5AxggAiAIIAYgCqGgIgM5AxAgAiALIAQgCaGgIgQ5AwggAiADOQMADAILIAIgAyAKoiAIoCIFOQMwIAIgByAJoiALoCIDOQMoIAIgBTkDICACIAM5AxggAiAGIAqiIAigIgM5AxAgAiAEIAmiIAugIgQ5AwggAiADOQMADAELQQgQVCIQQQQ2AgQgEEEEQRAQGSICNgIAIAErAwghCCAAKAIQIgArAxghByAAKwMQIQQgACsDWJohBSABLQAQQQFGBEAgACsDUCEDIAIgBCAFIAErAwAiBaGgOQMAIAIgByADmiAIoaA5AwggACsDWCEDIAIgByAIIAArA1CgoDkDGCACIAQgA5ogBaGgOQMQIAArA2AhAyACIAcgCCAAKwNQoKA5AyggAiAEIAUgA6CgOQMgIAArA1AhAyACIAQgBSAAKwNgoKA5AzAgByADmiAIoaAhBAwBCyABKwMAIQYgAiAHIAArA1AgCKKhOQMIIAIgBSAGoiAEoDkDACAAKwNYIQMgAiAAKwNQIAiiIAegOQMYIAIgBCADIAaioTkDECAAKwNgIQMgAiAAKwNQIAiiIAegOQMoIAIgAyAGoiAEoDkDICAAKwNQIQMgAiAGIAArA2CiIASgOQMwIAcgAyAIoqEhBAsgAiAEOQM4CyANQaABaiQAIBAL0gICBH8BfCMAQRBrIgUkAAJAIAAoAhAuAagBIgJBAE4EQAJAIAJBAUcEQEG84QotAABBAUcNAQsgBSAANgIMIAVBDGpBAEEBIAG3IgYgBkGE2QoQ/gYgACgCECgCYARAIABBMEEAIAAoAgBBA3FBA0cbaigCKBAvIAAoAhAoAmAQjAILIAAQnwMMAgsgAkUNASACQQQQGSEEA0AgAiADRgRAIARBACACIAG3IgYgBkGE2QoQ/gZBACEAA0AgACACRgRAIAQQGAwFCyAEIABBAnRqKAIAIgEoAhAoAmAEQCABQTBBACABKAIAQQNxQQNHG2ooAigQLyABKAIQKAJgEIwCCyABEJ8DIABBAWohAAwACwAFIAQgA0ECdGogADYCACADQQFqIQMgACgCECgCsAEhAAwBCwALAAtB1Z8DQdfCAUHcAUGpNxAAAAsgBUEQaiQACz8AAkAgACABYwRAIAEgAmMNAUF/QQAgASACZBsPCyAAIAFkRQRAQQAPCyABIAJkDQBBf0EAIAEgAmMbDwtBAQt/AgN/A3wjAEEwayICJAAgASsDCCEFIAErAwAhBkG4/AgoAgACfyABKAIQIgQoAgQgAUYEQCAEKAIADAELIAFBGGoLIgErAwAhByACIAErAwg5AyAgAiAHOQMYIAIgBTkDECACIAY5AwggAiAANgIAQb/6BCACEDIgAkEwaiQAC68EAgp8AX8gBEEATARAQQAPCyAAKwMIIQogACsDACEIIAErAwghBSABKwMAIQkCfyAAKAIQIg8oAgQgAEYEQCAPKAIADAELIABBGGoLIg8rAwghDSAPKwMAIQsCfyABKAIQIg8oAgQgAUYEQCAPKAIADAELIAFBGGoLIg8rAwghBiAPKwMAIQdBASEPAkACQAJAAkACQAJAAkAgBEEBaw4DAgEABgsgCCALYQRAIAIgCDkDACAFIAahIAkgB6GjIAggB6GiIAagIQUMBQsgByAJYQRAIAIgCTkDACAKIA2hIAggC6GjIAkgC6GiIA2gIQUMBQsgAiAKIAogDaEgCCALoaMiDCAIoqEiDiAFIAUgBqEgCSAHoaMiBiAJoqEiBaEgBiAMoSIHozkDACAGIA6iIAUgDKKhIAejIQUMBAsgACABQQAQzwJBf0YEQCABIABBARDPAkF/RwRAIAchDCAGIQ4MAwsgDSAKIAEgAEEAEM8CQX9GIgAbIQ4gCyAIIAAbIQwMAgsgCSEMIAUhDiAAIAFBARDPAkF/Rg0CQQAhDyALIQwgDSEOIAghByAKIQYgASAAQQAQzwJBf0cNBAwCCyAIIAuhIAUgCqGiIAogDaEgCSAIoaJhBEAgAiAJOQMADAMLIAIgBzkDACAGIQUMAgsgCSEHIAUhBgsgAiAMIAegRAAAAAAAAOA/ojkDACAOIAagRAAAAAAAAOA/oiEFCyADIAU5AwBBASEPCyAPC/YBAgh8AX8gACsDCCEDIAArAwAhBCABKwMIIQUgASsDACEGAn8gACgCECILKAIEIABGBEAgCygCAAwBCyAAQRhqCyILKwMIIQggCysDACEHAn8gASgCECIAKAIEIAFGBEAgACgCAAwBCyABQRhqCyIAKwMIIQkgACsDACEKIAJBfyAHIAShIgcgBSADoaIgCCADoSIFIAYgBKGioSIGRAAAAAAAAAAAZCAGRAAAAAAAAAAAYxsiADYCACACQX8gByAJIAOhoiAFIAogBKGioSIDRAAAAAAAAAAAZCADRAAAAAAAAAAAYxsiATYCBCACIAAgAWw2AggLTQECfAJ/QQEgACgCACIAKwMAIgIgASgCACIBKwMAIgNkDQAaQX8gAiADYw0AGkEBIAArAwgiAiABKwMIIgNkDQAaQX9BACACIANjGwsL4A4DFH8KfAF+IwBB8ABrIgMkACABQQAgAUEAShshEiABQSgQGSEPA0AgAiASRkUEQCAAIAJBAnRqKAIAKAIEIAxqIQwgAkEBaiECDAELCyAMQRgQGSIQQRhrIQUDQCAIIBJHBEAgDyAIQShsaiIEIBAgBkEYbGo2AgAgACAIQQJ0aigCACINKAIEIQpBACECRP///////+9/IRZE////////7/8hF0T////////v/yEZRP///////+9/IRgDQCACIApGBEAgBCAXOQMgIAQgGTkDGCAEIBY5AxAgBCAYOQMIIAQgBSAGQRhsajYCBCAIQQFqIQgMAwUgDSgCACACQQR0aiIHKwMAIRogBysDCCEbIBAgBkEYbGoiB0EANgIUIAcgBDYCECAHIBs5AwggByAaOQMAIAJBAWohAiAGQQFqIQYgFyAbECIhFyAZIBoQIiEZIBYgGxAqIRYgGCAaECohGAwBCwALAAsLQQAhAiAMQQQQGSERAkACQANAIAIgDEYEQAJAIBEgDEEEQdgDEJUBQQAhB0EAIQgDQCAMIA5GDQEgAyARIA5BAnRqIhUoAgAiAjYCTCADAn8gAigCECIEKAIAIAJGBEAgBCgCBAwBCyACQRhrCyIGNgJIQQAhEwNAAkACQAJAIBNBAkcEQCAHIQIgCCEEAkAgA0HMAGogA0HIAGoQjg1BAWoOAwADAgMLQQAhAiALQQAgC0EAShshFCAGQRhqIQ0DQAJAIAIgFEcEQCAEKAIAIgogBiADQeAAaiIJEI0NIAMoAmgiBUEASg0BAkAgBUEASARAIAYgCiAJEI0NIAMoAmgiBUEASg0DIAogBiADQdgAaiADQdAAaiAFQQBIBH9BAwUgBiAKIAMoAmAiBSAFQR91IgVzIAVrEM8CCxCMDQ0BDAMLIAogBiADQdgAaiADQdAAagJ/IAMoAmAiBSADKAJkRgRAIAogBkEAEM8CIgUgCiAGQQEQzwIiCSAFIAlKG0EBdAwBCyAKIAYgBSAFQR91IglzIAlrEM8CCxCMDUUNAgsgCisDACEZAn8gCigCECIFKAIEIApGBEAgBSgCAAwBCyAKQRhqCyIJKwMAIRggDSEFIAorAwghHCADKwNQIRYgAysDWCEXIAYrAwghHSAJKwMIIR4gBigCECIJKAIEIAZGBEAgCSgCACEFCyAFKwMIIR8CQCAYIBliIgkgBisDACIaIAUrAwAiG2JxIBcgGWEgFiAcYXEgCXJFIBcgGGIgFiAeYnJxcg0AIBcgGmEgFiAdYXEgGiAbYnINAiAXIBtiDQAgFiAfYQ0CC0GM4QotAABBAkkNDCADIBY5AzggAyAXOQMwQbj8CCgCAEHJrgQgA0EwahAyQQEgChCLDUECIAYQiw0MDAtBAUEMEBkhAgJ/IAtFBEBBACEHIAIMAQsgByACNgIEIAgLIQQgAkEANgIEIAIgBjYCACACIAc2AgggBiACNgIUIAtBAWohCwwECyACQQFqIQIgBCgCBCEEDAALAAsgDkEBaiEODAQLIAYoAhQiBUUNAUEAIQJBACEEAkAgC0EBRg0AIAUgCEYEQCAIKAIEIgRBADYCCCAHIQIMAQsCQCAFIAdGBEAgBygCCCICQQA2AgQMAQsgBSgCCCICIAUoAgQiBDYCBCAEIAI2AgggByECCyAIIQQLIAUQGCAGQQA2AhQgC0EBayELCyADAn8gFSgCACIGIAYoAhAiCCgCBEYEQCAIKAIADAELIAZBGGoLNgJIIBNBAWohEyACIQcgBCEIDAELCwtBACEJQbi5BEEAEDYMBAsFIBEgAkECdGogECACQRhsajYCACACQQFqIQIMAQsLIAtBACALQQBKGyEUC0EAIQIDQCACIBRGRQRAIAgoAgQgCBAYIAJBAWohAiEIDAELCyAREBhBACEJIAwgDkcNAEEAIQJBASEJA0AgAiASRg0BIAMgACACQQJ0aigCACINKAIAIggpAwg3A2ggAyAIKQMANwNgIA8gAkEobGohBCACQQFqIgghAgNAIAEgAkYEQCAIIQIMAgsgACACQQJ0aigCACEFAkACQAJAIAQrAwgiFyAPIAJBKGxqIgcrAxgiGWUiBkUgFyAHKwMIIhZmRXINACAEKwMQIhggBysDICIaZUUNACAYIAcrAxAiG2ZFDQAgBCsDGCIYIBllRSAWIBhlRXINACAEKwMgIhggGmVFIBggG2ZFcg0AIAUpAgAhICADIAMpA2g3AyAgAyAgNwMoIAMgAykDYDcDGCADQShqIANBGGoQvwRFDQEMAgsgFiAXZkUNACAWIAQrAxgiF2VFDQAgFyAZZkUgBysDECIWIAQrAyAiGGVFIAZFcnINACAWIAQrAxAiF2ZFDQAgBysDICIWIBhlRSAWIBdmRXINACAFKAIAIQcgAyANKQIANwMQIAMgBykDCDcDCCADIAcpAwA3AwAgA0EQaiADEL8EDQELIAJBAWohAgwBCwsLQQAhCQsgDxAYIBAQGCADQfAAaiQAIAkLIwAgAiABKAIQRgRAIAEgAigCBCIAQQAgACACRxtBABDzBwsLPAEBfyAAKAIIEBggACgCDBAYIAAoAhAQGCAAKAIUEBggACgCGCIBBEAgASgCABAYIAAoAhgQGAsgABAYC4QIAg5/AXxBHBBIIgUEQCABQQAgAUEAShshCwNAIAMgC0cEQCAAIANBAnRqKAIAKAIEIAJqIQIgA0EBaiEDDAELCwJAIAJBAEgNACAFIAJBEBBHIgw2AggCQCABQQBOBEAgBSABQQFqQQQQRyIKNgIMIAUgAkEEEEciBzYCECACQQQQRyEJIAUgAjYCBCAFIAk2AhQgBSABNgIAAkAgCkUNACACRQ0CIAxFIAdFcg0AIAkNAgsgCRAYIAcQGCAKEBggDBAYDAILQbKdA0HCwAFBL0HC6wAQAAALA0ACQAJAIAsgDUcEQCAKIA1BAnQiAWogBjYCACAAIAFqKAIAIg4oAgQiCEEASA0BIAZBAWshD0EAIQIgCCEBIAYhAwNAIAEgAkwNAyAMIANBBHRqIgEgDigCACACQQR0aiIEKQMANwMAIAEgBCkDCDcDCCAHIANBAnQiAWogA0EBaiIENgIAIAEgCWogA0EBazYCACACQQFqIQIgDigCBCEBIAQhAwwACwALIAogC0ECdGogBjYCAEEAIQQjAEEgayIDJAACQCAFKAIEIgBBAE4EQCAAQQJqIghBBBAZIQYgACAAbEEIEBkhASAAQQN0IQIDQCAAIARGBEADQCAAIAhHBEAgBiAAQQJ0akEANgIAIABBAWohAAwBCwsgBSAGNgIYIAUoAgQiAkEAIAJBAEobIQsgBSgCFCEJIAUoAhAhCiAFKAIIIQRBACEBA0AgASALRwRAIAYgAUECdCIAaigCACIMIAAgCWooAgAiAEEDdGogBCABQQR0aiIIKwAAIAQgAEEEdGoiBysAAKEiECAQoiAIKwAIIAcrAAihIhAgEKKgnyIQOQMAIAFBA3QiDSAGIABBAnRqKAIAaiAQOQMAIAFBAmsgAUEBayIHIAAgB0YbIQADQCAAQQBOBEACQCABIAAgBCAKIAkQlA1FDQAgACABIAQgCiAJEJQNRQ0AIAMgCCkDCDcDGCADIAgpAwA3AxAgAyAEIABBBHRqIgcpAwg3AwggAyAHKQMANwMAIANBEGogAyACIAIgAiAEIAoQ7gdFDQAgDCAAQQN0aiAIKwAAIAcrAAChIhAgEKIgCCsACCAHKwAIoSIQIBCioJ8iEDkDACAGIABBAnRqKAIAIA1qIBA5AwALIABBAWshAAwBCwsgAUEBaiEBDAELCyADQSBqJAAMAwUgBiAEQQJ0aiABNgIAIARBAWohBCABIAJqIQEMAQsACwALQZKfA0HyvwFBHEHIEBAAAAsgBQ8LQY7SAUHCwAFBxwBBwusAEAAACyAHIAggD2oiAUECdGogBjYCACAJIAZBAnRqIAE2AgAgDUEBaiENIAMhBgwACwALIAUQGAtBAAv6CAMKfwt8AX4jAEHwAGsiAyQAIAAoAhQhDCAAKAIQIQogACgCCCEHIAAoAgQiCEECakEIEBkhCQJAIAFB0m5HDQAgAyACKQMINwNgIAMgAikDADcDWANAIAQiASAAKAIATgRAQal3IQEMAgsgAyAAKAIIIAAoAgwiBSABQQJ0aigCACIGQQR0ajYCaCAFIAFBAWoiBEECdGooAgAhBSADIAMpA2A3A0ggAyAFIAZrNgJsIAMgAykDWDcDQCADIAMpAmg3A1AgA0HQAGogA0FAaxC/BEUNAAsLQQAhBCAIIgUhBiABQQBOBEAgACgCDCABQQJ0aiIAKAIEIQYgACgCACEFCyAFQQAgBUEAShshCyACKwMAIRMgAisDCCEUA0ACfAJAAkAgBCALRgRAIAUgBiAFIAZKGyEAIAUhBAwBCyADIAcgBEEEdGoiACkDCDcDYCADIAApAwA3A1ggFCADKwNgIg2hIhAgByAKIARBAnQiAWooAgBBBHRqIgArAAAgAysDWCIPoSIVoiAAKwAIIA2hIhYgEyAPoSIRoqEiDkQtQxzr4jYaP2QgDkQtQxzr4jYav2NFciEAIBQgByABIAxqKAIAQQR0aiIBKwAIIg6hIA8gASsAACISoaIgDSAOoSATIBKhoqEiF0QtQxzr4jYaP2QgF0QtQxzr4jYav2NFciEBAkAgDiANoSAVoiAWIBIgD6GioUQtQxzr4jYaP2QEQCAAIAFxDQEMAwsgACABckUNAgsgAyACKQMINwM4IAIpAwAhGCADIAMpA2A3AyggAyAYNwMwIAMgAykDWDcDICADQTBqIANBIGogBSAGIAggByAKEO4HRQ0BIBEgEaIgECAQoqCfDAILA0AgACAERkUEQCAJIARBA3RqQgA3AwAgBEEBaiEEDAELCyAGIAggBiAIShshCyAGIQQDQCAJIARBA3RqAnwCQCAEIAtHBEAgAyAHIARBBHRqIgApAwg3A2AgAyAAKQMANwNYIBQgAysDYCINoSIQIAcgCiAEQQJ0IgFqKAIAQQR0aiIAKwAAIAMrA1giD6EiFaIgACsACCANoSIWIBMgD6EiEaKhIg5ELUMc6+I2Gj9kIA5ELUMc6+I2Gr9jRXIhACAUIAcgASAMaigCAEEEdGoiASsACCIOoSAPIAErAAAiEqGiIA0gDqEgEyASoaKhIhdELUMc6+I2Gj9kIBdELUMc6+I2Gr9jRXIhAQJAIA4gDaEgFaIgFiASIA+hoqFELUMc6+I2Gj9kBEAgACABcQ0BDAMLIAAgAXJFDQILIAMgAikDCDcDGCACKQMAIRggAyADKQNgNwMIIAMgGDcDECADIAMpA1g3AwAgA0EQaiADIAUgBiAIIAcgChDuB0UNASARIBGiIBAgEKKgnwwCCyAJIAhBA3RqIgBCADcDACAAQgA3AwggA0HwAGokACAJDwtEAAAAAAAAAAALOQMAIARBAWohBAwACwALRAAAAAAAAAAACyENIAkgBEEDdGogDTkDACAEQQFqIQQMAAsAC/EBAgd8An8gAiABQQR0aiIBKwAIIgUgAiAAQQR0aiIMKwAIIgehIAIgAyAAQQJ0Ig1qKAIAQQR0aiIAKwAAIAwrAAAiCKEiCqIgACsACCAHoSILIAErAAAiCSAIoaKhIgZELUMc6+I2Gj9kIAZELUMc6+I2Gr9jRXIhACAFIAIgBCANaigCAEEEdGoiASsACCIFoSAIIAErAAAiBqGiIAcgBaEgCSAGoaKhIglELUMc6+I2Gj9kIAlELUMc6+I2Gr9jRXIhASAFIAehIAqiIAsgBiAIoaKhRC1DHOviNho/ZAR/IAAgAXEFIAAgAXILQQFxC5kBAQJ/IAAoAgBFBEAgAEGUhQsoAgBBBBAZIgE2AgAgACABQZSFCygCAEECdGo2AgQLQQAhAQNAQZSFCygCACICIAFNBEAgACgCACACQQRB1wMQlQEgACAAKAIANgJIBSAAKAIAIAFBAnRqQciFCygCACABQeAAbGoiAkEIajYCACACQQE2AhwgAkIANwNYIAFBAWohAQwBCwsLNwECfyMAQSBrIgMkACAAEDhBAk4EQCAAIAEgA0EIaiIBEJkNIAAgARD1AyECCyADQSBqJAAgAgvmAgIGfwR8IAAQlQ0gACgCBCEFIAAoAgAhAANAAkAgBSAAIgFLBEAgAEEEaiIAIAVPDQIgASgCACIDKwMAIgcgASgCBCICKwMAYg0CIAMrAwgiCCACKwMIYg0CIAFBCGohA0ECIQICQANAIAMgBU8NASADKAIAIgQrAwghCSAEKwMAIgogB2IgCCAJYnJFBEAgA0EEaiEDIAJBAWohAgwBCwsgCCAJYg0AIAogB6EgArijIQdBASEBA0AgACADTw0DIAAoAgAiAiABuCAHoiACKwMAoDkDACAAQQRqIQAgAUEBaiEBDAALAAtByIULKAIAIQIDQCAAIANPDQIgACgCACIEIAEoAgAiBisDACACIAYoAhBB4ABsaiIGKwM4IAYrAyihIAIgBCgCEEHgAGxqIgQrAzggBCsDKKGgRAAAAAAAAOA/oqA5AwAgAEEEaiEAIAFBBGohAQwACwALDwsgAyEADAALAAuPAQEBfwNAQZSFCygCACAATQRAQcyFC0EANgIAQdCFCygCABAYQdSFCygCABAYQdiFCygCABAYQdSFC0EANgIAQdCFC0EANgIAQdiFC0EANgIAQciFCygCACIABH8gACgCWBAYQciFCygCAAVBAAsQGAVByIULKAIAIABB4ABsaigCTBAYIABBAWohAAwBCwsLvQMCB38BfiMAQTBrIgUkAEHnnQEhCAJAAkAgAUUNACABLQAARQ0AQZzQCCEEA0ACQAJAIAQoAgQiA0UEQEHc0QghBAwBCyABIAMQLkUgBCgCACIGQRJGBH8gASADIAMQPBCBAgVBAQtFckUNASAEKAIIIgdFBEAgBSADNgIgQcXDBCAFQSBqECsgAkHP/AA2AgQgAkEBNgIAQZzQCCEEDAELIAIgBzYCBCACIAY2AgAgBkESRw0AIAQoAgQQPCABaiMAQRBrIgMkACADIANBDGo2AgBB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QYiFC0GIhQsoAgBBAWoiAjYCACAAIAI2AiwgABCXCANAAkAgABCVCCICRQ0AIAIQuAJEAAAAAAAAAABjRQ0AIABBMGoQywQgAigCACIBKAIgIgMoAjAgAygCNEYEQCADEJcIIAIoAgAhAQsgAisDCCEHIAErAxghCCACKAIEKwMYIQkgACgCACEBIAAoAgQhBCADKAIAIQUgAygCBCEGQYiFC0GIhQsoAgBBAWo2AgAgACADIAQgAWsgBiAFa0kiBBshASADIAAgBBsiACABIAIgCSAIoSAHoSIHmiAHIAQbEPEFIAAQlQgaIAEQlQgaIABBMGogAUEwahDxDSAAQYiFCygCADYCLCABQQE6ACgMAQsLC+wBAQN/IwBBEGsiAyQAIAMgATYCDCABQQE6ACQgASgCOCEEIAEoAjQhAQNAIAEgBEcEQCABKAIAKAIEIgUtACRFBEAgACAFIAIQ6g0LIAFBBGohAQwBCwsjAEEQayIAJAAgAEEBNgIIIABBDBCLATYCDCAAKAIMIgFBADYCBCABQQA2AgAgASADKAIMNgIIIAAoAgwhASAAQQA2AgwgACgCDCIEBEAgACgCCBogBBAYCyAAQRBqJAAgASACNgIAIAEgAigCBCIANgIEIAAgATYCACACIAE2AgQgAiACKAIIQQFqNgIIIANBEGokAAsZACAAQTxqEIICGiAAQTBqEIICGiAAEIICCxoAIABBgICAgARPBEAQgwgACyAAQQJ0EIsBC5EBAQN/IAEoAgQhAiAAKAIAIQQgACgCBCEDA0AgAyAERkUEQCACQQRrIgIgA0EEayIDKAIANgIADAELCyABIAI2AgQgACgCACEDIAAgAjYCACABIAM2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIAC34BAn8CQCADQQJIDQAgACADQQJrQQF2IgNBAnRqIgQoAgAgAUEEayIBKAIAIAIoAgARAABFDQAgASgCACEFA0ACQCABIAQiASgCADYCACADRQ0AIAAgA0EBa0EBdiIDQQJ0aiIEKAIAIAUgAigCABEAAA0BCwsgASAFNgIACwtEAQF/IwBBEGsiASQAIAFBADYCDCAAIAAoAgAoAgBBABDwBSAAIAAoAgAoAgBBACABQQxqEJEIGiABKAIMIAFBEGokAAtOAQJ/IwBB0ABrIgIkACAAKAJAIgNBABCNBUG49glHBEAgA0G49gkQjQUaCyACIAE3AwggACgCQCIAIAJBBCAAKAIAEQQAIAJB0ABqJAALyQQBCX8gACICKAIEIQYgASgCACIAIQMgASgCBCEBIwBBIGsiCSQAAkAgASAAa0ECdSIFQQBMDQAgAigCCCACKAIEIgBrQQJ1IAVOBEACQCAAIAZrIgRBAnUiCCAFTgRAIAMgBUECdGohBwwBCyABIAMgBGoiB2shBCABIAdHBEAgACAHIAQQUxoLIAIgACAEajYCBCAIQQBMDQILIAAhBCAGIAIoAgQiASAGIAVBAnRqIgprIghqIQUgASEAA0AgBCAFTQRAIAIgADYCBCABIApHBEAgASAIayAGIAgQUxoLBSAAIAUoAgA2AgAgAEEEaiEAIAVBBGohBQwBCwsgAyAHRg0BIAYgAyAHIANrEFMaDAELIAlBDGogAiAAIAIoAgBrQQJ1IAVqEO4FIAYgAigCAGtBAnUgAkEIahCOCCIBKAIIIgAgBUECdGohBANAIAAgBEcEQCAAIAMoAgA2AgAgA0EEaiEDIABBBGohAAwBCwsgASAENgIIIAIoAgAhBCAGIQAgASgCBCEDA0AgACAERwRAIANBBGsiAyAAQQRrIgAoAgA2AgAMAQsLIAEgAzYCBCACKAIEIgUgBmshACABKAIIIQQgBSAGRwRAIAQgBiAAEFMaIAEoAgQhAwsgASAAIARqNgIIIAIoAgAhACACIAM2AgAgASAANgIEIAIoAgQhACACIAEoAgg2AgQgASAANgIIIAIoAgghACACIAEoAgw2AgggASAANgIMIAEgASgCBDYCACABEI0ICyAJQSBqJAAgAhDzDQtjAgJ/AXwgAigCBCIDKwMYIAIoAgAiBCsDGKEgAisDCKEhBSADKAIgIQMgBCgCICEEIAAoAgQgACgCAGsgASgCBCABKAIAa0kEQCADIAQgAiAFEPEFDwsgBCADIAIgBZoQ8QUL4gIBCX8gACgCACEFIAAoAgQhACMAQRBrIgMkACADQb8DNgIMAkAgACAFa0ECdSIGQQJIDQAgBkECa0EBdiEIA0AgCEEASA0BIAUgCEECdGohBAJAIAZBAkgNACAGQQJrQQF2IgkgBCAFayIAQQJ1SA0AIAUgAEEBdSIBQQFyIgJBAnRqIQAgBiABQQJqIgFKBEAgASACIAAoAgAgACgCBCADKAIMEQAAIgEbIQIgAEEEaiAAIAEbIQALIAAoAgAgBCgCACADKAIMEQAADQAgBCgCACEBA0ACQCAEIAAiBCgCADYCACACIAlKDQAgBSACQQF0IgdBAXIiAkECdGohACAGIAdBAmoiB0oEQCAHIAIgACgCACAAKAIEIAMoAgwRAAAiBxshAiAAQQRqIAAgBxshAAsgACgCACABIAMoAgwRAABFDQELCyAEIAE2AgALIAhBAWshCAwACwALIANBEGokAAtGAgF8An8gACgCBCEDIAAoAgAhAAN8IAAgA0YEfCABBSAAKAIAIgIrAwggAisDGKEgAisDEKIgAaAhASAAQQRqIQAMAQsLC2wCAX8CfCMAQRBrIgIkACACIAE2AgwgASAANgIgIAAgAkEMahDBASAAIAIoAgwiASsDECIDIAArAxigIgQ5AxggACADIAErAwggASsDGKGiIAArAyCgIgM5AyAgACADIASjOQMQIAJBEGokAAsnACAAIAAoAhhFIAAoAhAgAXJyIgE2AhAgACgCFCABcQRAEJMBAAsLMAEDfyAAKAIEIgQgAUEEaiICayEDIAIgBEcEQCABIAIgAxBTGgsgACABIANqNgIEC34BA38gACgCACIBQTRqIAEoAjghAyABKAI0IQEDQAJAIAEgA0YNACABKAIAIABGDQAgAUEEaiEBDAELCyABEPcNIAAoAgQiAUEoaiABKAIsIQMgASgCKCEBA0ACQCABIANGDQAgASgCACAARg0AIAFBBGohAQwBCwsgARD3DQvqAQEIfyAAQay1AxDTAiECIAEoAgAhBiMAQRBrIgMkACADQQhqIgQgAhC2BRoCQCAELQAARQ0AIAIgAigCAEEMaygCAGoiBSgCBBogA0EEaiIEIAUQUSAEEPMLIQUgBBBOIAMgAhDyCyEHIAIgAigCAEEMaygCAGoiCBDxCyEJIAMgBSAHKAIAIAggCSAGIAUoAgAoAhARCAA2AgQgBBC0BUUNACACIAIoAgBBDGsoAgBqQQUQtwULIANBCGoQtQUgA0EQaiQAIAJBv+YBENMCIAEoAiArAxAgASsDGKAQrQdB5rQDENMCGiAACw4AIABBpwVBqMEBENAKCzgBAX8gABAbIQEDQCABBEAgASgC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BEAgBSAAKAIQIgAoAugBQcgAbGoiASABKwMYIgkgByAHIAljGzkDGCAFIAAoAuwBQcgAbGoiACAAKwMQIgcgCCAHIAhkGzkDEAsgAwtwAQJ/QQEhBANAIAQgACgCECIDKAK0AUpFBEAgAygCuAEgBEECdGooAgAgASACELQOIARBAWohBAwBCwsgAyABIAMrAxCiOQMQIAMgAiADKwMYojkDGCADIAEgAysDIKI5AyAgAyACIAMrAyiiOQMoC+UEAgh/BHxBASECA0AgAiAAKAIQIgMoArQBSkUEQCADKAK4ASACQQJ0aigCACABELUOIAJBAWohAgwBCwsgABBjIQIgACgCECEDAkAgACACRgRAIAMoAuwBIQVEAADA////38EhCkQAAMD////fQSELIAMoAugBIgghBANAIAQgBUoEQCADKAK0ASIAQQAgAEEAShtBAWohAEEBIQIDQCAAIAJGDQQgCiADKAK4ASACQQJ0aigCACgCECIEKwMgRAAAAAAAACBAoCIMIAogDGQbIQogCyAEKwMQRAAAAAAAACDAoCIMIAsgDGMbIQsgAkEBaiECDAALAAUCQCADKALEASAEQcgAbGoiACgCACIGRQ0AQQEhAiAAKAIEIgcoAgAiAEUNAANAIAAoAhAiAC0ArAEiCUUgAiAGTnJFBEAgByACQQJ0aigCACEAIAJBAWohAgwBCwsgCQ0AIAZBAmshAiAAKwMQIAArA1ihIQwgByAGQQJ0akEEayEAA0AgACgCACgCECIALQCsAQRAIAcgAkECdGohACACQQFrIQIMAQsLIAogACsDECAAKwNgoCINIAogDWQbIQogCyAMIAsgDGMbIQsLIARBAWohBAwBCwALAAsgAygC6AEhCCADKALsASEFIAMoAoQCKAIQKAL0AbchCiADKAKAAigCECgC9AG3IQsLIAEoAhAoAsQBIgAgBUHIAGxqKAIEKAIAKAIQKwMYIQwgACAIQcgAbGooAgQoAgAoAhArAxghDSADIAo5AyAgAyALOQMQIAMgDSADKwOAAaA5AyggAyAMIAMrA3ihOQMYC6IBAgJ8AX8CQAJ/Qf////8HIABBqiEQJiIDRQ0AGiAAEDghACADELECIQEgAEEASA0BQQAgAUQAAAAAAAAAAGMNABogALghAiABRAAAAAAAAPA/ZARAQf////8HRAAAwP///99BIAGjIAJjDQEaCyABIAKiIgGZRAAAAAAAAOBBYwRAIAGqDwtBgICAgHgLDwtB3Z0DQZWEAUHKAEG83wAQAAALiAICB38BfCMAQRBrIgQkACAAQfzhCigCAEEIQQAQZCAAEP8FtyEIIAAoAhAiASgC6AEhAyABKAKEAiEFIAEoAoACIQYDQCADIAEoAuwBSkUEQAJAIANByABsIgcgASgCxAFqIgIoAgBFDQAgAigCBCgCACICRQRAIAAQICEBIAQgAzYCBCAEIAE2AgBB1L0EIAQQNgwBCyAGIAIgAigCECsDWCAIoCABKwNgoEEAEKQBGiAAKAIQIgEoAsQBIAdqIgIoAgQgAigCAEECdGpBBGsoAgAiAiAFIAIoAhArA2AgCKAgASsDQKBBABCkARoLIANBAWohAyAAKAIQIQEMAQsLIARBEGokAAvbAgIKfwF8IABB/OEKKAIAQQhBABBkIQdBASEBA0AgACgCECIFKAK0ASIEIAFIBEAgB7chC0EBIQEDQCABIARKRQRAIAFBAnQhCSABQQFqIgchAQNAIAUoArgBIgIgCWooAgAhAyABIARKRQRAIAIgAUECdGooAgAiBiADIAMoAhAoAugBIAYoAhAoAugBSiICGyIIKAIQIgooAuwBIAMgBiACGyIDKAIQIgYoAugBIgJOBEAgCCADIAJByABsIgIgCigCxAFqKAIEKAIAKAIQKAL4ASAGKALEASACaigCBCgCACgCECgC+AFIIgIbKAIQKAKEAiADIAggAhsoAhAoAoACIAtBABCkARogACgCECIFKAK0ASEECyABQQFqIQEMAQsLIAMQuA4gACgCECIFKAK0ASEEIAchAQwBCwsFIAUoArgBIAFBAnRqKAIAEP8FIAFBAWohAQwBCwsLnAECA38BfCAAQfzhCigCAEEIQQAQZCAAEP8FtyEEQQEhAQNAIAEgACgCECICKAK0AUpFBEAgAigCuAEgAUECdGooAgAiAhD/BSAAKAIQIgMoAoACIAIoAhAoAoACIAMrA2AgBKBBABCkARogAigCECgChAIgACgCECIDKAKEAiADKwNAIASgQQAQpAEaIAIQuQ4gAUEBaiEBDAELCwulAwIHfwF8IABB/OEKKAIAQQhBABBktyEIIAAoAhAiASgC6AEhBEEBIQUDQCABKALsASAESARAA0AC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4EFjBEAgEaoMAQtBgICAgHgLIghBACAIQQBKIgcbIglBAWq4IAUoApwBEKQBGiADIAEgAUEwayIFIAEoAgBBA3FBAkYbKAIoQQBBACAIayAHGyIIQQFquCABKAIQKAKcARCkARogAygCECABIAYgASgCAEEDcSIDQQNGGygCKCgCECgC9AEgCUF/c2oiBiABIAUgA0ECRhsoAigoAhAoAvQBIAhBf3NqIgEgASAGShs2AvQBIAJBAWohAiAEKAIQIgUoApACIQEMAAsACyAFQbgBaiEBDAELCwJAIAAoAhAiASgCtAFBAEoEfyAAELsOIAAQug4gABC5DiAAELgOIAAoAhAFIAELKAIIIgEoAlRBA0cNACABKwNAIhEgASsDSCISokQAAAAAAADwP2UNACAAELcOIAAoAhAiASgCgAIgASgChAIgEiARIAEoAnRBAXEbIhFEAAAAAOD/70AgEUQAAAAA4P/vQGMbQegHEKQBGgsCQCAAQQIgABC2DhDWBEUNACAAKAIQIgIoAugBIQUDQAJAAkAgAigC7AEiCyAFTgRAQQAhByACKALEASAFQcgAbGoiCCgCACIJQQAgCUEAShshA0EAIQEDQCABIANGDQNBACEEAkAgCCgCBCABQQJ0aigCACIHKAIQIgooApACIgxFDQADQCAMIARBAnRqKAIAIgZFDQEgBkFQQQAgBigCAEEDcSINQQJHG2ooAigoAhAoAvQBIAVKDQQgBEEBaiEEIAZBMEEAIA1BA0cbaigCKCgCECgC9AEgBUwNAAsMAwtBACEEAkAgCigCiAIiCkUNAANAIAogBEECdGooAgAiBkUNASAGQTBBACAGKAIAQQNxIgxBA0cbaigCKCgCECgC9AEgBUoNBCAEQQFqIQQgBSAGQVBBACAMQQJHG2ooAigoAhAoAvQBTg0ACwwDCyABQQFqIQEMAAsACyAAQQIgABC2DhDWBEUNA0GWoANBhMQBQYsBQZ/oABAAAAsgASEDCwJAIAdFIAMgCUhyRQRAIAhBzABBvH8gBSALSBtqKAIAKAIAIgJFDQEgCCgCBCgCACEDIAAQuwIiASgCEEECOgCsASABIANEAAAAAAAAAABBABCkARogASACRAAAAAAAAAAAQQAQpAEaIAEoAhAgAygCECgC9AEiASACKAIQKAL0ASICIAEgAkgbNgL0ASAA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IAQgAisDADkDKCAEIAg3AyAgAEGr1gQgBEEgahAyIANBAWohAwwACwALAkAgBAJ8IAEoAhAgA0EobGoiBSgCFCICIAUoAhgiBkYEQCACKwMoIAIrAzigRAAAAAAAAOA/oiEHIAIrAzAgAisDQKBEAAAAAAAA4D+iDAELIAUgBiACIAItAABBAXEbIgIoAiQiBigCBEYEQCACKwMoIAIrAzigRAAAAAAAAOA/oiEHIAIrA0AMAQsgBSAGKAIMRgRAIAIrAyggAisDOKBEAAAAAAAA4D+iIQcgAisDMAwBCyAFIAYoAghGBEAgAisDKCEHIAIrAzAgAisDQKBEAAAAAAAA4D+iDAELIAYoAgAgBUcNASACKwM4IQcgAisDMCACKwNAoEQAAAAAAADgP6ILOQMQIAQgBzkDCCAEIAM2AgAgAEHD1gQgBBAyIANBAWohAwwBCwtBhp8EQQAQNhAoAAtB9OEDIAAQjQEaIARBMGokAAvmVAIafwp8IwBB0AJrIgckACAAELoCQQgQGSEYQbzhCi0AAEEBRgRAEM0DIRkLIABB7cgBECYhAkHggwtBADYCAAJAIAJFDQAgAi0AACIFRQ0AA0ACQEHggwsCfwJAAkACQAJAIAVB/wFxIghB7QBrDgcBBQUFBQIDAAtBCCAIQeMARg0DGiAIQekARwRAIAgNBQwHC0ESDAMLQQEMAgtBBAwBC0ECCyAGciIGNgIACyACQQFqIgItAAAhBQwACwALIAEEQEGL6QRBABArCwJ/IwBB4AJrIgMkAEEBQRwQGSEOAkAgACIIEDhBAE4EQCAOIAAQOCIKNgIEIA4gCkHIABAZIgY2AgxE////////738hHET////////v/yEfIAAQGyEFRP///////+//IR1E////////738hHiAGIQEDQCAFBEAgBSgCECIAKwMQISIgACsDYCEhIAArA1ghIyAAKwMYISAgACsDUCEkIAEgASgCAEEBcjYCACABICAgJEQAAAAAAADgP6JEAAAAAAAA8D8QIiIkoCIlOQNAIAEgICAkoSIgOQMwIAEgIiAjICGgRAAAAAAAAOA/okQAAAAAAADwPxAiIiGgIiM5AzggASAiICGhIiI5AyggACABNgKAASABQcgAaiEBIB8gJRAiIR8gHCAgECohHCAdICMQIiEdIB4gIhAqIR4gCCAFEBwh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Amo2AgBBJQ8LIAJBFUYNDwsgAyAANgIADBELIAMgAUEBajYCAEEVDwsgAyABQQFqNgIAQREPCyACIAFBAWoiAWsiBkEATA0MQQAhBQJAAkACQAJAAkACQCAHIAEtAABqLQAAIghBBWsOAwECAwALIAhBFmsOAwMEAwQLIAZBAUYNDiAAIAEgACgC4AIRAAANAyAAIAEgACgC1AIRAABFDQNBAiEEDAILIAZBA0kNDSAAIAEgACgC5AIRAAANAiAAIAEgACgC2AIRAABFDQJBAyEEDAELIAZBBEkNDCAAIAEgACgC6AIRAAANASAAIAEgACgC3AIRAABFDQFBBCEECyABIARqIQEDQCACIAFrIgZBAEwEQEFsDwtBASEEQRQhBQJAAkACQAJAAkAgByABLQAAai0AAEEFaw4gAAECBAYGBgQEBAQEBAQEBAYDBAMDAwMEBAYEBgQEBAYECyAGQQFGDRAgACABIAAoAuACEQAADQMgACABIAAoAsgCEQAARQ0DQQIhBAwCCyAGQQNJDQ8gACABIAAoAuQCEQAADQIgACABIAAoAswCEQAARQ0CQQMhBAwBCyAGQQRJDQ4gACABIAAoAugCEQAADQEgACABIAAoAtACEQAARQ0BQQQhBAsgASAEaiEBDAELC0EAIQULIAMgATYCACAFDwsgAiABa0ECSA0JIAAgASAAKALgAhEAAA0IQQIhBCAAIAEgACgC1AIRAAANAiAAIAEgACgCyAIRAABFDQgMBQsgAiABa0EDSA0IIAAgASAAKALkAhEAAA0HQQMhBCAAIAEgACgC2AIRAAANASAAIAEgACgCzAIRAABFDQcMBAsgAiABa0EESA0HIAAgASAAKALoAhEAAA0GQQQhBCAAIAEgACgC3AIRAABFDQELDAMLIAAgASAAKALQAhEAAEUNBAwBC0ETIQUMAQtBEyEFCyABIARqIQQCQAJAAkACQANAIAIgBCIBayIEQQBMDQQCQAJAAkACQAJAAkACQCAHIAEtAABqLQAAQQVrDiABAgMKBAQECgoKCQoKCgoEBAAFAAAAAAoKBAoECAYEBAoLIAFBAWohBAwGCyAEQQFGDQwgACABIAAoAuACEQAADQggACABIAAoAsgCEQAARQ0IIAFBAmohBAwFCyAEQQNJDQsgACABIAAoAuQCEQAADQcgACABIAAoAswC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AgAgAiEIA0AgAyAIRgRAIAMhCAwGCyAILQAARQ0FIAhBAWohCAwACwALIAQgAjYCAEEBDAILIAQoAgAhAgsgAiADRwsgEUEQaiQADwsgBygCACEFDAALAAumBQEMfyMAQRBrIg8kACACIQgDQAJAIAMgCEYEQCADIQgMAQsgCCgCAEUNACAIQQRqIQgMAQsLIAcgBTYCACAEIAI2AgACQANAAkACQCACIANGIAUgBkZyBH8gAgUgDyABKQIANwMIQQEhECAAKAIIIQkjAEEQayIOJAAgDiAJNgIMIA5BCGogDkEMahCPAiAFIQkgBiAFayEKQQAhDCMAQRBrIhEkAAJAIAQoAgAiC0UgCCACa0ECdSISRXINACAKQQAgBRshCgNAIBFBDGogCSAKQQRJGyALKAIAELQHIg1Bf0YEQEF/IQwMAgsgCQR/IApBA00EQCAKIA1JDQMgCSARQQxqIA0QHxoLIAogDWshCiAJIA1qBUEACyEJIAsoAgBFBEBBACELDAILIAwgDWohDCALQQRqIQsgEkEBayISDQALCyAJBEAgBCALNgIACyARQRBqJAAQjgIgDkEQaiQAAkACQAJAAkAgDEEBag4CAAgBCyAHIAU2AgADQCACIAQoAgBGDQIgBSACKAIAIAAoAggQlAciAUF/Rg0CIAcgBygCACABaiIFNgIAIAJBBGohAgwACwALIAcgBygCACAMaiIFNgIAIAUgBkYNASADIAhGBEAgBCgCACECIAMhCAwGCyAPQQRqIgJBACAAKAIIEJQHIghBf0YNBCAGIAcoAgBrIAhJDQYDQCAIBEAgAi0AACEFIAcgBygCACIJQQFqNgIAIAkgBToAACAIQQFrIQggAkEBaiECDAELCyAEIAQoAgBBBGoiAjYCACACIQgDQCADIAhGBEAgAyEIDAULIAgoAgBFDQQgCEEEaiEIDAALAAsgBCACNgIADAMLIAQoAgALIANHIRAMAwsgBygCACEFDAELC0ECIRALIA9BEGokACAQCwkAIAAQmAsQGAszACMAQRBrIgAkACAAIAQ2AgwgACADIAJrNgIIIABBDGogAEEIahDoCygCACAAQRBqJAALNAADQCABIAJGRQRAIAQgAyABLAAAIgAgAEEASBs6AAAgBEEBaiEEIAFBAWohAQwBCwsgAQsMACACIAEgAUEASBsLKgAD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IAZHDQALCyAGQSBqJAAgAQvnAgEBfyMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIABBxAFqEFIhBiAAQRBqIgIgAxBRIAIQzgFB8LcJQYq4CSAAQdABahD3AiACEE4gAEG4AWoQUiIDIAMQVhA9IAAgA0EAED8iATYCtAEgACACNgIMIABBADYCCANAAkAgAEH8AWogAEH4AWoQXA0AIAAoArQBIAMQIyABakYEQCADECMhAiADIAMQI0EBdBA9IAMgAxBWED0gACACIANBABA/IgFqNgK0AQsgAEH8AWoiAhCFAUEQIAEgAEG0AWogAEEIakEAIAYgAEEQaiAAQQxqIABB0AFqEN4DDQAgAhCZARoMAQsLIAMgACgCtAEgAWsQPSADEEIQaCAAIAU2AgAgABDGC0EBRwRAIARBBDYCAAsgAEH8AWogAEH4AWoQXARAIAQgBCgCAEECcjYCAAsgACgC/AEgAxA0GiAGEDQaIABBgAJqJAAL0AMBAX4jAEGQAmsiACQAIAAgAjYCiAIgACABNgKMAiAAQdABaiADIABB4AFqIABB3wFqIABB3gFqEKYHIABBxAFqEFIiASABEFYQPSAAIAFBABA/IgI2AsABIAAgAEEgajYCHCAAQQA2AhggAEEBOgAXIABBxQA6ABYDQAJAIABBjAJqIABBiAJqEFwNACAAKALAASABECMgAmpGBEAgARAjIQMgASABECNBAXQQPSABIAEQVhA9IAAgAyABQQAQPyICajYCwAELIABBjAJqIgMQhQEgAEEXaiAAQRZqIAIgAEHAAWogACwA3wEgACwA3gEgAEHQAWogAEEgaiAAQRxqIABBGGogAEHgAWoQpQcNACADEJkBGgwBCwsCQCAAQdABahAjRQ0AIAAtABdBAUcNACAAKAIcIgMgAEEgamtBnwFKDQAgACADQQRqNgIcIAMgACgCGDYCAAsgACACIAAoAsABIAQQxwsgACkDACEGIAUgACkDCDcDCCAFIAY3AwAgAEHQAWogAEEgaiAAKAIcIAQQtAEgAEGMAmogAEGIAmoQXARAIAQgBCgCAEECcjYCAAsgACgCjAIgARA0GiAAQdABahA0GiAAQZACaiQAC7kDACMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIABBwAFqIAMgAEHQAWogAEHPAWogAEHOAWoQpgcgAEG0AWoQUiIBIAEQVhA9IAAgAUEAED8iAjYCsAEgACAAQRBqNgIMIABBADYCCCAAQQE6AAcgAEHFADoABgNAAkAgAEH8AWogAEH4AWoQXA0AIAAoArABIAEQIyACakYEQCABECMhAyABIAEQI0EBdBA9IAEgARBWED0gACADIAFBABA/IgJqNgKwAQsgAEH8AWoiAxCFASAAQQdqIABBBmogAiAAQbABaiAALADPASAALADOASAAQcABaiAAQRBqIABBDGogAEEIaiAAQdABahClBw0AIAMQmQEaDAELCwJAIABBwAFqECNFDQAgAC0AB0EBRw0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCsAEgBBDICzkDACAAQcABaiAAQRBqIAAoAgwgBBC0ASAAQfwBaiAAQfgBahBcBEAgBCAEKAIAQQJyNgIACyAAKAL8ASABEDQaIABBwAFqEDQaIABBgAJqJAALuQMAIwBBgAJrIgAkACAAIAI2AvgBIAAgATYC/AEgAEHAAWogAyAAQdABaiAAQc8BaiAAQc4BahCmByAAQbQBahBSIgEgARBWED0gACABQQAQPyICNgKwASAAIABBEGo2AgwgAEEANgIIIABBAToAByAAQcUAOgAGA0ACQCAAQfwBaiAAQfgBahBcDQAgACgCsAEgARAjIAJqRgRAIAEQIyEDIAEgARAjQQF0ED0gASABEFYQPSAAIAMgAUEAED8iAmo2ArABCyAAQfwBaiIDEIUBIABBB2ogAEEGaiACIABBsAFqIAAsAM8BIAAsAM4BIABBwAFqIABBEGogAEEMaiAAQQhqIABB0AFqEKUHDQAgAxCZARoMAQsLAkAgAEHAAWoQI0UNACAALQAHQQFHDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAKwASAEEMkLOAIAIABBwAFqIABBEGogACgCDCAEELQBIABB/AFqIABB+AFqEFwEQCAEIAQoAgBBAnI2AgALIAAoAvwBIAEQNBogAEHAAWoQNBogAEGAAmokAAuPAwEBfyMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIAMQqQIhBiAAQcQBaiADIABB9wFqEKsEIABBuAFqEFIiASABEFYQ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8bic1j83A4gCAkAgAygCmAJBEkcgBEECR3JFBEAgAyADKAKgAjYC5AEgAyADKwOoAjkD8AEgA0GIAWogABCBA0EBIQUgAy0AmAFBAXFFDQEgAysDiAEhCCADIAMrA5ABRAAAAAAAAFJAozkDkAIgAyAIRAAAAAAAAFJAozkDiAIMAQsgA0F/NgLkASAEQQJHIQULQYzhCi0AAARAIANBKGoiASADQbABakHYABAfGiMAQeABayICJABBweIEQRtBAUG4/AgoAgAiBBBMGiACIAErAwA5A9ABIARBjK4EIAJB0AFqEDIgAS0ALCEGIAIgASgCKDYCxAEgAiAGQQFxNgLAASAEQfzOBCACQcABahAeGiABKwMIIQggAkKas+bMmbPm5D83A7gBIAIgCDkDsAEgBEGprgQgAkGwAWoQMiACIAEoAhA2AqABIARBiMsEIAJBoAFqEB4aIAIgASgCFDYClAEgAkEtNgKQASAEQfTLBCACQZABahAeGiACIAEoAhg2AoABIAJC/NPGl93JmKg/NwN4IAJCs+bMmbPmzPE/NwNwIARBocsEIAJB8ABqEDIgASsDICEIIAIgBkEBdkEBcTYCYCACIAg5A1ggAkLNmbPmzJmz9j83A1AgBEG5zQQgAkHQAGoQMiACIAErA0g5A0ggAkEANgJEIAIgBkECdkEBcTYCQCAEQdetBCACQUBrEDIgASgCMCEGIAEoAjQhByABKwNAIQggAiABLQA4NgIwIAIgCDkDKCACIAc2AiQgAiAGQQJ0QfDRCGooAgA2AiAgBEH4zAQgAkEgahAyIAIgASgCPEECdEGQ0ghqKAIANgIQIARBrIQEIAJBEGoQHhogAiABKAJQNgIAIARBxs4EIAIQHhogAkHgAWokAAsgACADQawBahCjCCEEAkAgAygCrAFBAUYEQCADIAMpA5ACNwMQIAMgAykDiAI3AwggACADQbABaiADQQhqEM8MIAVFBEAgACADQZgCahD1AxoLIAAQsQMMAQsgAEECQQggA0GIAWoQ/QMaIANBAToAlAFBACECA0AgAygCrAEiASACTQRAIAEgBCAAIANBiAFqEP0FDAILIAQgAkECdGooAgAiAUEAELYDGiADIAMpA5ACNwMgIAMgAykDiAI3AxggASADQbABaiADQRhqEM8MIAVFBEAgASADQZgCahD1AxoL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CBDUA0GMIBCNB0G48wlBwAMQAQALIAEoAggoAiAiAy0AKA0BIAMQ6Q0MAQsLAkAgBUEEaiICKAIIRQ0AIAIoAgQiACgCACIBIAIoAgAoAgQiAzYCBCADIAE2AgAgAkEANgIIA0AgACACRg0BIAAoAgQgABAYIQAMAAsACyAFQRBqJAALugECAn8CfET////////v/yEEAnxE////////7/8gASgCACgCICICKAIsIAEoAhhKDQAaRP///////+//IAIgASgCBCgCIEYNABogARC4AgshBQJAIAAoAgAoAiAiAigCLCAAKAIYSg0AIAIgACgCBCgCIEYNACAAELgCIQQLIAQgBWEEQCABKAIAKAIAIgIgACgCACgCACIDRgRAIAEoAgQoAgAgACgCBCgCAEgPCyACIANIDwsgBCAFZAsZAQJ+IAApAwgiAiABKQMIIgNWIAIgA1RrCzMAIAAQ5Q0gACABKAIANgIAIAAgASgCBDYCBCAAIAEoAgg2AgggAUEANgIIIAFCADcCAAvKAQEHfyMAQRBrIgUkACAAQQA2AgggAEIANwIAQShBNCACGyEHIAEoAgQhCCABKAIAIQQDQCAEIAhHBEAgBCgCACAHaiIDKAIEIQkgAygCACEDA0AgAyAJRgRAIARBBGohBAwDBSAFIAMoAgAiBjYCDCAGQYiFCygCADYCGAJAAkAgAgRAIAYoAgAoAiAgAUcNAQsgAg0BIAYoAgQoAiAgAUYNAQsgACAFQQxqEMEBCyADQQRqIQMMAQsACwALCyAAEPMNIAVBEGokAAsdACAAKAIAQQR2IgAgASgCAEEEdiIBSyAAIAFJaws+AQJ8An9BfyAAKwMAIgIgASsDACIDYw0AGkEBIAIgA2QNABpBfyAAKwMIIgIgASsDCCIDYw0AGiACIANkCwscACAAKAIMIAEoAgxqIAAoAgQgASgCBGprQQJtCxwAIAAoAgggASgCCGogACgCACABKAIAamtBAm0LjAEBB38CQCAAKAIgIgMgASgCKCIESg0AIAEoAiAiBSAAKAIoIgZKDQBBASECIAAoAiwiByABKAIkIghIDQAgACgCECABKAIQayAHIAEoAixqIAAoAiQgCGprQQJtaiAGIAMgBWprIARqQQJtIAEoAgwiASAAKAIMIgBrIAAgAWsgACABShtqTCECCyACC4wBAQd/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KAIAQQR2IgEgACgCAEEEdiIASQ0CIAAgAUkhAgwCC0EBIQIMAQtBfyECCyAEQeADaiQAIAILCQAgASAAEI0BCxYAIAEgAiAAEMMHRQRAQQAPCyABEDwLJQAgACgCACgCECgC+AEiACABKAIAKAIQKAL4ASIBSiAAIAFIawsSACABQcO/ASACKAIIQQEQNRoLEgAgAUHSvwEgAigCBEEBEDUaCxIAIAFBs78BIAIoAgBBARA1GgsZAEF/IAAoAgAiACABKAIAIgFLIAAgAUkbCyUAIAAoAgAoAhAoAvQBIgAgASgCACgCECgC9AEiAUogACABSGsLJQAgASgCACgCECgC9AEiASAAKAIAKAIQKAL0ASIASiAAIAFKawtAAgJ8AX8gACsDACICIAErAwAiA2QEQCAAKwMIIAErAwhlRQ8LIAIgA2MEf0EAQX8gACsDCCABKwMIZhsFQQALC9wBAQV/IAAoAighBQNAIAUoAgQhASAFKAIAIANLBEAgASADQRhsakEIaiEBQQAhAgNAIAEoAgggAksEQCABIAIQ2wgaIAEgAhCZBhogAkEBaiECDAELCyABQgA3AgQgASgCABAYIAFCADcCCCABQgA3AgAgA0EBaiEDDAELCyABEBggBRAYIABBGGohAiAAKAIgIQECQANAIAEgBE0NASACIAQQXRogBCAAKAIgIgFJIARBAWohBA0AC0HCvANBkoMBQTVBpikQAAALIABCADcCHCAAKAIYEBggABAYCyABAnxBAUF/QQAgACsDACICIAErAwAiA2MbIAIgA2QbCw8AIAAoAhAQmwEaIAAQGAtaAgF8AX9BfyAAKwMIIAErAwihIgJESK+8mvLXej5kIAJESK+8mvLXer5jGyIDBH8gAwVBfyAAKwMAIAErAwChIgJESK+8mvLXej5kIAJESK+8mvLXer5jGwsLWgIBfAF/QX8gACsDACABKwMAoSICREivvJry13o+ZCACREivvJry13q+YxsiAwR/IAMFQX8gACsDCCABKwMIoSICREivvJry13o+ZCACREivvJry13q+YxsLCyMAIAAoAhAoAgBBBHYiACABKAIQKAIAQQR2IgFLIAAgAUlrCxQAIAAoAhBBHGogAEcEQCAAEBgLC44BAgF/BHwjAEEwayIDJAAgAyABKAIIIgQ2AiQgAyAENgIgIABB6YMF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BEGk3AQgA0HgAWoQgQEgA0GUgwsoAgA2AtABIAMgBiAHIA2goiIGOQPAASADIAogCyAMoKIiBzkDyAEgBEHD3QQgA0HAAWoQgQEgAyABNgKwASAEQZ7YAyADQbABahCBASAAIAQQnAYQGhogARAYIAIEQCADQYgBaiIBIAAoAhBBOGpBKBAfGiABQwAAAAAQwAMhASADQgA3A4ABIANCADcDeCADQgA3A3AgAEHQ5gQgA0HwAGoQHSADQoCAgICAgID4PzcDYCADIAg5A1ggAyAFOQNQIABByNwEIANB0ABqEB0gA0FAayAAKALoArK7OQMAIANCADcDOCADQgA3AzAgAEGk3AQgA0EwahAdIANBlIMLKAIANgIgIAMgBjkDECADIAc5AxggAEHD3QQgA0EQahAdIAMgATYCACAAQZ7YAyADEB0gARAYCyADQeACahBfIANB8AJqJAAL7QMCA38GfCMAQdABayIDJAAgAigCACEEIAIoAgQiBSsDECEGIAMgBSgCADYCsAEgAyAGOQOoASADIAQ2AqABIABB7YcEIANBoAFqEB1BlIMLQZCDCygCAEEJazYCAAJ8IAErAwAiBiACLQAwIgRB7ABGDQAaIARB8gBGBEAgBiACKwMgoQwBCyAGIAIrAyBEAAAAAAAA4L+ioAshBiAAKwPwAyEHIAArA4AEIQggASsDCCEJIAArA+gDIQogACsD+AMhCyADQfgAaiIBIAAoAhBBEGpBKBAfGiABQwAAAAAQwAMhASADQgA3A8gBIANCADcDwAEgAigCBCgCACEEIAIoAgAhBSADQgA3A3AgA0KAgICAgICA6D83A2ggAyAFNgJkIAMgBDYCYCADQcABaiIEQfXlAyADQeAAahCBASADIAIoAgQrAxAgACsD6AOiOQNQIARB5a4EIANB0ABqEIEBIANBQGsgACgC6AKyuzkDACADQgA3AzggA0IANwMwIARBpNwEIANBMGoQgQEgA0GUgwsoAgA2AiAgAyAKIAYgC6CiOQMQIAMgByAJIAigojkDGCAEQcPdBCADQRBqEIEBIAMgATYCACAEQZ7YAyADEIEBIAAgBBCcBhAaGiAEEF8gARAYIANB0AFqJAALHAAgAEGCuwQQGhpBkIMLQZCDCygCAEEFajYCAAscACAAQfC6BBAaGkGQgwtBkIMLKAIAQQVrNgIA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NBDoBDYCOAJAIABBrCtBAEEBEDUEQCAAKAIQKAIIDQELIAEtAJsBQQRxDQBBk7kEQQAQNgwBCyABQQA2AiQgASABKAKYAUGAgIDAAHI2ApgBIAIgABC6BhogARCPBCACEJ0ECyADQRBqJAAgAhCdBCACEBgPCyAAKAIAKAKgARDvCAsLGwAgAEH41gMQGhogACABEIwBIABBgN4EEBoaC2gBAn8gAEG1ngEQGhogAEEAQQAQ4gQgAEGszQMQGhoDQCACIANHBEAgACABIANBBHRqIgQrAwAQfSAAQSwQZyAAIAQrAwiaEH0gA0EBaiIDIAJGDQEgAEEgEGcMAQsLIABB6d0EEBoaCwurmQqVAwBBgAgL5oIF/9j/AMXQ08YAfgB7JXN9ACAtdGFncyB7JWQlcyVwfQAgJS4wZn0AJXMgeyAlcyB9AHxlZGdlbGFiZWx8ACAtZm9udCB7AHF1YXJ0egBpZHggPT0gc3oAY250ID09IHN6AGxvegBncmFwaHZpegBndndyaXRlX25vX3oAcG9ydGhveHkAc2NhbGV4eQAvc3ZnL25hdnkAaW52ZW1wdHkAbm9kZV9zZXRfaXNfZW1wdHkAbm9kZXNfaXNfZW1wdHkAcmVmZXJlbmNlIHRvIGJpbmFyeSBlbnRpdHkAYXN5bmNocm9ub3VzIGVudGl0eQBpbmNvbXBsZXRlIG1hcmt1cCBpbiBwYXJhbWV0ZXIgZW50aXR5AGVudGl0eSBkZWNsYXJlZCBpbiBwYXJhbWV0ZXIgZW50aXR5AGNhbm5vdCBzdXNwZW5kIGluIGV4dGVybmFsIHBhcmFtZXRlciBlbnRpdHkAWE1MIG9yIHRleHQgZGVjbGFyYXRpb24gbm90IGF0IHN0YXJ0IG9mIGVudGl0eQB1bmRlZmluZWQgZW50aXR5AHBhcnNlci0+bV9vcGVuSW50ZXJuYWxFbnRpdGllcyA9PSBvcGVuRW50aXR5AHBhcnNlci0+bV9vcGVuVmFsdWVFbnRpdGllcyA9PSBvcGVuRW50aXR5AHBhcnNlci0+bV9vcGVuQXR0cmlidXRlRW50aXRpZXMgPT0gb3BlbkVudGl0eQBpbmZpbml0eQBsaXN0LT5zaXplIDwgbGlzdC0+Y2FwYWNpdHkAZmFudGFzeQBTcGFyc2VNYXRyaXhfY29vcmRpbmF0ZV9mb3JtX2FkZF9lbnRyeQAvc3ZnL2l2b3J5AG91dCBvZiBtZW1vcnkARmVicnVhcnkASmFudWFyeQBndnBsdWdpbl9kb3RfbGF5b3V0X0xUWF9saWJyYXJ5AGd2cGx1Z2luX25lYXRvX2xheW91dF9MVFhfbGlicmFyeQBndnBsdWdpbl9jb3JlX0xUWF9saWJyYXJ5AGdhdGhlcl90aW1lX2VudHJvcHkAbm9kZXNfY29weQBhbGJhbnkASnVseQBTcGFyc2VNYXRyaXhfbXVsdGlwbHkAZXF1YWxseQBhc3NlbWJseQBzdW1tZXJza3kAc2h5AHNhdGlzZnkAYmVhdXRpZnkAbm9qdXN0aWZ5AENsYXNzaWZ5AC9zdmcvbGlnaHRncmV5AC9zdmcvZGltZ3JleQAvc3ZnL2RhcmtncmV5AC9zdmcvbGlnaHRzbGF0ZWdyZXkAL3N2Zy9kYXJrc2xhdGVncmV5AC9zdmcvc2xhdGVncmV5AHdlYmdyZXkAeDExZ3JleQAvc3ZnL2dyZXkAbW92ZSB0byBmcm9udCBsb2NrIGluY29uc2lzdGVuY3kAZXh0cmFjdF9hZGphY2VuY3kAbWVyZ2Vfb25ld2F5AGFycmF5AGFsbG9jQXJyYXkAL3N2Zy9saWdodGdyYXkAL3N2Zy9kaW1ncmF5AC9zdmcvZGFya2dyYXkAL3N2Zy9saWdodHNsYXRlZ3JheQAvc3ZnL2RhcmtzbGF0ZWdyYXkAL3N2Zy9zbGF0ZWdyYXkAd2ViZ3JheQB4MTFncmF5AC9zdmcvZ3JheQBUaHVyc2RheQBUdWVzZGF5AFdlZG5lc2RheQBTYXR1cmRheQBTdW5kYXkATW9uZGF5AEZyaWRheQBNYXkALi4vLi4vbGliL2NncmFwaC9ncmFtbWFyLnkALi4vLi4vbGliL2NvbW1vbi9odG1scGFyc2UueQAlbS8lZC8leQBwb3J0aG95eABwb3J0aG9feXgAeHh4AGJveAB2aWV3Qm94AGNoa0JvdW5kQm94AC9NZWRpYUJveABnZXRfZWRnZV9sYWJlbF9tYXRyaXgAaWRlYWxfZGlzdGFuY2VfbWF0cml4AG11c3Qgbm90IHVuZGVjbGFyZSBwcmVmaXgAdW5ib3VuZCBwcmVmaXgAaHRtbGxleABtYXgAIyUwMnglMDJ4JTAyeAAjJTJ4JTJ4JTJ4JTJ4ACMlMXglMXglMXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweAByYXJyb3cAbGFycm93AEhlbHZldGljYS1OYXJyb3cAYXJyb3dfbGVuZ3RoX2Nyb3cAL3N2Zy9zbm93AHNwcmluZ19lbGVjdHJpY2FsX2VtYmVkZGluZ19zbG93AC9zdmcvbGlnaHR5ZWxsb3cAL3N2Zy9ncmVlbnllbGxvdwAvc3ZnL2xpZ2h0Z29sZGVucm9keWVsbG93AC9zdmcveWVsbG93AGZhdGFsIGVycm9yIC0gc2Nhbm5lciBpbnB1dCBidWZmZXIgb3ZlcmZsb3cAZmxleCBzY2FubmVyIHB1c2gtYmFjayBvdmVyZmxvdwBjb3VyaWVybmV3AFNwcmluZ1Ntb290aGVyX25ldwBUcmlhbmdsZVNtb290aGVyX25ldwBkaWFnX3ByZWNvbl9uZXcAUXVhZFRyZWVfbmV3AFN0cmVzc01ham9yaXphdGlvblNtb290aGVyMl9uZXcAbiAmJiBuZXcAc2tldwBzdHJ2aWV3AC9zdmcvaG9uZXlkZXcAIC1hbmNob3IgdwBzb3J0dgBwb3Y6cG92AE5vdgBpbnYAZXF1aXYAcGl2AG5vbmFtZS5ndgBHRF9yYW5rKGcpW3JdLmF2ID09IEdEX3JhbmsoZylbcl0udgBjYyVzXyV6dQBjYyVzKyV6dQAvc3ZnL3BlcnUAbnUAbXUAJWMlbGx1AFRodQB0YXUAVGF1AE51AE11AF9wb3J0XyVzXyglZClfKCVkKV8ldQBOdW1iZXIgb2YgaXRlcmF0aW9ucyA9ICV1AE51bWJlciBvZiBpbmNyZWFzZXMgPSAldQBwbGFpbnRleHQAc3RyZXNzd3QAaW5wdXQAdGV4dGxheW91dABkb3RfbGF5b3V0AG5lYXRvX2xheW91dABpbml0TGF5b3V0AGNsdXN0AG1hcENsdXN0AGxhYmVsanVzdABzY0FkanVzdABBdWd1c3QAZWRnZXNmaXJzdABub2Rlc2ZpcnN0AG1heGltYWxfaW5kZXBlbmRlbnRfZWRnZV9zZXRfaGVhdmVzdF9lZGdlX3Blcm5vZGVfc3VwZXJub2Rlc19maXJzdABleGlzdAByZWFsaWduTm9kZWxpc3QAYXBwZW5kTm9kZWxpc3QAZGVmYXVsdGRpc3QAbWluZGlzdABwb3dlcl9kaXN0AGdyYXBoX2Rpc3QAYXZnX2Rpc3QAZ2V0RWRnZUxpc3QAaXF1ZXN0AGxvd2FzdABzcHJpbmdfZWxlY3RyaWNhbF9lbWJlZGRpbmdfZmFzdABndl9zb3J0AHZpZXdwb3J0AHRhaWxwb3J0AHVuZXhwZWN0ZWQgcGFyc2VyIHN0YXRlIC0gcGxlYXNlIHNlbmQgYSBidWcgcmVwb3J0AGhlYWRwb3J0AGh0bWxfcG9ydABpbnNlcnQAUlRyZWVJbnNlcnQAZmluZFNWZXJ0AHN0YXJ0AHBhcnQAZXN0aW1hdGVfdGV4dF93aWR0aF8xcHQAcXVvdAB/cm9vdABub3QAbWFrZV92bl9zbG90AGVtaXRfeGRvdAB4ZG90Onhkb3QAZXBzOnhkb3QAc3ZnOnhkb3QAanBnOnhkb3QAcG5nOnhkb3QAanBlZzp4ZG90AGdpZjp4ZG90AGpwZTp4ZG90AHhkb3QxLjQ6eGRvdAB4ZG90MS4yOnhkb3QAc2RvdABtaWRkb3QAZ3Y6ZG90AHBsYWluLWV4dDpkb3QAZG90OmRvdABlcHM6ZG90AGNhbm9uOmRvdABwbGFpbjpkb3QAc3ZnOmRvdABqcGc6ZG90AHBuZzpkb3QAanBlZzpkb3QAZ2lmOmRvdABqcGU6ZG90AH9ib3QAZG9Eb3QAb2JqbGlzdF9mcm9udABwb2ludHNfZnJvbnQAY29sb3JzZWdzX2Zyb250AG5vZGVsaXN0X3BvcF9mcm9udABwYnNfc2l6ZV9mcm9udABzcGFuLT5mb250AHZhZ3hicHJpbnQAeGRvdF9wb2ludABkZWNpZGVfcG9pbnQAVW5zYXRpc2ZpZWQgY29uc3RyYWludAB0cmFuc3BhcmVudABjb21wb25lbnQAaW52YWxpZCBhcmd1bWVudABjb21tZW50AGp1bmsgYWZ0ZXIgZG9jdW1lbnQgZWxlbWVudABjZW50AGkgPT0gZWNudABhcmlhbG10AGx0AGNpcmN1aXQAcG9seV9pbml0AE11bHRpbGV2ZWxfaW5pdABuc2xpbWl0AG1jbGltaXQAUG9ydHJhaXQAbGlnaHQAdmlydHVhbF93ZWlnaHQAbGhlaWdodABLUF9SaWdodABCb29rbWFuLUxpZ2h0AGd0AEtQX0xlZnQAY2hhcnNldABpbnNldABiaXRhcnJheV9yZXNldABzdWJzZXQAYml0YXJyYXlfc2V0AG1hdHJpeF9zZXQAbm9kZWxpc3Rfc2V0AGVkZ2VfbGlzdF9zZXQAdHJhcHNfc2V0AG5vZGVzX3NldABzY2FybGV0AC9zdmcvZGFya3Zpb2xldAAvc3ZnL2JsdWV2aW9sZXQAL3N2Zy92aW9sZXQAVHJlYnVjaGV0AGFneGdldAB0YWlsdGFyZ2V0AGxhYmVsdGFyZ2V0AGVkZ2V0YXJnZXQAaGVhZHRhcmdldABiaXRhcnJheV9nZXQAZGVnbGlzdF9nZXQAbm9kZWxpc3RfZ2V0AGFkal9saXN0X2dldABzZWdfbGlzdF9nZXQAc2FtZV9saXN0X2dldABlZGdlX2xpc3RfZ2V0AG5vZGVfbGlzdF9nZXQAc2ZvbnRfZ2V0AGVkZ2Vfc2V0X2dldAByb3dzX2dldAB0c3RzX2dldABwb2ludHNfZ2V0AHBhaXJzX2dldAB0cmFwc19nZXQAY2VsbHNfZ2V0AGNvbG9yc2Vnc19nZXQAYm94ZXNfZ2V0AHRyaWFuZ2xlc19nZXQAY3ljbGVzX2dldABxbm9kZXNfZ2V0AGVzdGFja19nZXQAaW50X3N0YWNrX2dldABkZnNfc3RhY2tfZ2V0AG5vZGVfc3RhY2tfZ2V0AGJlemllcl9wYXRoX2dldABub2RlX3F1ZXVlX2dldABzdHlsZXNoZWV0AHN0cmljdABhZ2NvcHlkaWN0AGFnbWFrZWRhdGFkaWN0AHJlYy0+ZGljdCA9PSBkYXRhZGljdAB3cml0ZV9kaWN0AHNlY3QAZW5jb2Rpbmcgc3BlY2lmaWVkIGluIFhNTCBkZWNsYXJhdGlvbiBpcyBpbmNvcnJlY3QAYXNwZWN0AGxheWVyc2VsZWN0AEtQX1N1YnRyYWN0AFF1YWRUcmVlX3JlcHVsc2l2ZV9mb3JjZV9pbnRlcmFjdABjb21wYWN0AE9jdAByZXF1ZXN0ZWQgZmVhdHVyZSByZXF1aXJlcyBYTUxfRFREIHN1cHBvcnQgaW4gRXhwYXQAbGFiZWxmbG9hdABsYWJlbF9mbG9hdABTcGFyc2VNYXRyaXhfZnJvbV9jb29yZGluYXRlX2Zvcm1hdAAvc3ZnL3doZWF0AG9iamxpc3RfYXQAZGVnbGlzdF9hdABub2RlbGlzdF9hdABhZGpfbGlzdF9hdABzZWdfbGlzdF9hdABzYW1lX2xpc3RfYXQAZWRnZV9saXN0X2F0AG5vZGVfbGlzdF9hdABzZm9udF9hdABlZGdlX3NldF9hdAByb3dzX2F0AHRzdHNfYXQAcG9pbnRzX2F0AHBhaXJzX2F0AHRyYXBzX2F0AGh0ZXh0c3BhbnNfYXQAY2VsbHNfYXQAY29sb3JzZWdzX2F0AGJveGVzX2F0AHRyaWFuZ2xlc19hdABjeWNsZXNfYXQAcW5vZGVzX2F0AGVzdGFja19hdABpbnRfc3RhY2tfYXQAZGZzX3N0YWNrX2F0AG5vZGVfc3RhY2tfYXQAbm9kZV9xdWV1ZV9hdABTYXQAQWdyYXBoaW5mb190AEFnZWRnZWluZm9fdABBZ25vZGVpbmZvX3QAXHQAZmxhdGluZGV4KGFnaGVhZChlKSkgPCBNLT5ucm93cwBtaW51cwBvcGx1cwBoZWFydHMAc2FtcGxlcG9pbnRzAGRpcmVkZ2Vjb25zdHJhaW50cwBsZXZlbCBhc3NpZ25tZW50IGNvbnN0cmFpbnRzAHh5IHBzZXVkby1vcnRob2dvbmFsIGNvbnN0cmFpbnRzAHl4IHBzZXVkby1vcnRob2dvbmFsIGNvbnN0cmFpbnRzAHh5IG9ydGhvZ29uYWwgY29uc3RyYWludHMAeXggb3J0aG9nb25hbCBjb25zdHJhaW50cwBsaW5lIHNlZ21lbnRzAHNldF9jZWxsX2hlaWdodHMAcmVjdHMAYWNjb3VudGluZ1JlcG9ydFN0YXRzAGVudGl0eVRyYWNraW5nUmVwb3J0U3RhdHMAWmFwZkRpbmdiYXRzAHJlbWluY3Jvc3MAY29tcHJlc3MAZ3Z1c2Vyc2hhcGVfZmlsZV9hY2Nlc3MAYnJhc3MAY2xhc3MAYXBwbHlhdHRycwBhZ21ha2VhdHRycwBiaW5kYXR0cnMAcGFyc2VfbGF5ZXJzAG1rQ2x1c3RlcnMAcm91bmRfY29ybmVycwBtYWtlX2JhcnJpZXJzAGNkYXRhLm50b3BsZXZlbCA9PSBhZ25ub2RlcyhnKSAtIGNkYXRhLm52YXJzAGNhbm5vdCByZWFsbG9jIG9wcwBjYW5ub3QgcmVhbGxvYyBwbmxwcwBlcHMAY29yZV9sb2FkaW1hZ2VfcHMAZXBzOnBzAHBzMjpwcwAobGliKTpwcwBndl90cmltX3plcm9zAGFneGJ1Zl90cmltX3plcm9zAHRleGd5cmVoZXJvcwBpbWFnZXBvcwB0aW5vcwBzZXRFZGdlTGFiZWxQb3MAU2V0dGluZyBpbml0aWFsIHBvc2l0aW9ucwB4bGludGVyc2VjdGlvbnMAY29sdW1ucwBub2Rlc19jb250YWlucwBkZWphdnVzYW5zAG5pbWJ1c3NhbnMAbGliZXJhdGlvbnNhbnMAZnJlZXNhbnMAT3BlblNhbnMAb2Zmc2V0ID09IG5fdGVybXMAZGl0ZW1zAGRpYW1zAGZsYXRpbmRleChhZ3RhaWwoZSkpIDwgTS0+bmNvbHMAY2Fubm90IHJlYWxsb2MgZHEucG5scwBjYW5ub3QgcmVhbGxvYyBwbmxzAGxldmVscwBmb3JjZWxhYmVscwBkaWFnb25hbHMAbWVyZ2VfcmFua3MAc3BsaXRCbG9ja3MAaW52aXMAY2Fubm90IHJlYWxsb2MgdHJpcwBzZXRfY2VsbF93aWR0aHMAQ2FsY3VsYXRpbmcgc2hvcnRlc3QgcGF0aHMAeWVzAHNob3dib3hlcwBiZWF1dGlmeV9sZWF2ZXMAYXR0YWNoX2VkZ2VfbGFiZWxfY29vcmRpbmF0ZXMAcG9seWxpbmVzAHNwbGluZXMAb3J0aG9nb25hbCBsaW5lcwB0ZXhneXJldGVybWVzAG90aW1lcwBUaW1lcwBmb250bmFtZXMAcHJlZml4IG11c3Qgbm90IGJlIGJvdW5kIHRvIG9uZSBvZiB0aGUgcmVzZXJ2ZWQgbmFtZXNwYWNlIG5hbWVzAFNwYXJzZU1hdHJpeF9zdW1fcmVwZWF0X2VudHJpZXMAcGVyaXBoZXJpZXMAR2V0QnJhbmNoZXMAZiA8IGdyYXBoW2pdLm5lZGdlcwBtaW5tYXhfZWRnZXMAZXhjaGFuZ2VfdHJlZV9lZGdlcwBtYWtlU3RyYWlnaHRFZGdlcwB1bmRvQ2x1c3RlckVkZ2VzAGNvbXBvdW5kRWRnZXMAbWVyZ2VfdHJlZXMAX19jbHVzdGVybm9kZXMAYWdubm9kZXMATkRfaWQobnApID09IG5fbm9kZXMATG9hZE5vZGVzAHNpZGVzAHNwYWRlcwB2ZXJ0aWNlcwBjb29yZHMAc2V0Ym91bmRzAG1kcwBjZHMAbWFrZVNlbGZBcmNzAGVtaXRfZWRnZV9ncmFwaGljcwBjbHVicwBjb25zb2xhcwAlbGYlMnMAClN0cmluZyBzdGFydGluZzo8JS44MHMAClN0cmluZyBzdGFydGluZzoiJS44MHMAICUuKnMAJXMlcwBleHBhdDogQWNjb3VudGluZyglcCk6IERpcmVjdCAlMTBsbHUsIGluZGlyZWN0ICUxMGxsdSwgYW1wbGlmaWNhdGlvbiAlOC4yZiVzACUuKnMlYyVzACAlczolcwBfXyVkOiVzAC8lcy8lcwAlcy0lcwAsJXMAIGZvbnQtZmFtaWx5PSIlcwAiIHN0cm9rZS1kYXNoYXJyYXk9IiVzACIgY2xhc3M9IiVzAHBvbHkgJXMAKCglZiwlZiksKCVmLCVmKSkgJXMgJXMAY29sb3IgJXMAcm9vdCA9ICVzACBUaXRsZTogJXMAInN0cmljdCI6ICVzAGNvdXIAdXRyAGFwcGVuZGF0dHIAYWRkYXR0cgBiZWdpbnN0cgBmc3RyAHN0cnZpZXdfc3RyAHBvdl9jb2xvcl9hc19zdHIAdnBzYyE9bnVsbHB0cgBiZW5kVG9TdHIAdWFycgBjcmFycgBsYXJyAGhhcnIAZGFycgB1QXJyAHJBcnIAbEFycgBoQXJyAGRBcnIAQXByAFNwYXJzZU1hdHJpeF9tdWx0aXBseV92ZWN0b3IAdGVybWluYXRvcgBpbnN1bGF0b3IAaW50ZXJuYWxFbnRpdHlQcm9jZXNzb3IAdGV4Z3lyZWN1cnNvcgBzeW50YXggZXJyb3IAbW9uZXlfZ2V0IGVycm9yAEVycm9yAHJmbG9vcgBsZmxvb3IAbGFiZWxmb250Y29sb3IAcGVuY29sb3IAZmlsbGNvbG9yAGJnY29sb3IAcm93IG1ham9yAGNvbHVtbiBtYWpvcgBuZWlnaGJvcgBzdHlsZV9vcgBtcgByYW5rZGlyAHBhZ2VkaXIAbGF5ZXIAdXBwZXIgPj0gbG93ZXIATm9kZUNvdmVyAC9zdmcvc2lsdmVyAGNsdXN0ZXIAZXhwYW5kQ2x1c3RlcgBycHJvbW90ZXIAbHByb21vdGVyAGNlbnRlcgBtYXhpdGVyAHBhcnRpYWwgY2hhcmFjdGVyACEgcm9vdFBhcnNlci0+bV9wYXJlbnRQYXJzZXIAZGtncmVlbmNvcHBlcgBjb29sY29wcGVyAGd2X3NvcnRfY29tcGFyX3dyYXBwZXIAdGFwZXIAb3ZlcmxhcF9iZXppZXIAZmlnX2JlemllcgBjb3VyaWVyAENvdXJpZXIAaGllcgBkYWdnZXIARGFnZ2VyAG91dHB1dG9yZGVyAHBvc3RvcmRlcgBmbGF0X3Jlb3JkZXIAY2VsbGJvcmRlcgBmaXhMYWJlbE9yZGVyAGN5bGluZGVyAC9zdmcvbGF2ZW5kZXIAcmVuZGVyAGZvbGRlcgBjbHVzdGVyX2xlYWRlcgBORF9VRl9zaXplKG4pIDw9IDEgfHwgbiA9PSBsZWFkZXIAT2N0b2JlcgByZWZlcmVuY2UgdG8gaW52YWxpZCBjaGFyYWN0ZXIgbnVtYmVyAE5vdmVtYmVyAFNlcHRlbWJlcgBEZWNlbWJlcgBtYWNyAGJyAHN0YXIAZmVsZHNwYXIAcmVndWxhcgBodGV4dHNwYW5zX2NsZWFyAGlvc19iYXNlOjpjbGVhcgBicnZiYXIATWFyAFxyAE5EX3JhbmsodikgPT0gcgBzdHJlcQBzdHJ2aWV3X2VxAHN0cnZpZXdfc3RyX2VxAHN0cnZpZXdfY2FzZV9zdHJfZXEAc3Rydmlld19jYXNlX2VxAHZwACUlQmVnaW5Qcm9sb2cKL0RvdERpY3QgMjAwIGRpY3QgZGVmCkRvdERpY3QgYmVnaW4KCi9zZXR1cExhdGluMSB7Cm1hcmsKL0VuY29kaW5nVmVjdG9yIDI1NiBhcnJheSBkZWYKIEVuY29kaW5nVmVjdG9yIDAKCklTT0xhdGluMUVuY29kaW5nIDAgMjU1IGdldGludGVydmFsIHB1dGludGVydmFsCkVuY29kaW5nVmVjdG9yIDQ1IC9oeXBoZW4gcHV0CgolIFNldCB1cCBJU08gTGF0aW4gMSBjaGFyYWN0ZXIgZW5jb2RpbmcKL3N0YXJuZXRJU08gewogICAgICAgIGR1cCBkdXAgZmluZGZvbnQgZHVwIGxlbmd0aCBkaWN0IGJlZ2luCiAgICAgICAgeyAxIGluZGV4IC9GSUQgbmUgeyBkZWYgfXsgcG9wIHBvcCB9IGlmZWxzZQogICAgICAgIH0gZm9yYWxsCiAgICAgICAgL0VuY29kaW5nIEVuY29kaW5nVmVjdG9yIGRlZgogICAgICAgIGN1cnJlbnRkaWN0IGVuZCBkZWZpbmVmb250Cn0gZGVmCi9UaW1lcy1Sb21hbiBzdGFybmV0SVNPIGRlZgovVGltZXMtSXRhbGljIHN0YXJuZXRJU08gZGVmCi9UaW1lcy1Cb2xkIHN0YXJuZXRJU08gZGVmCi9UaW1lcy1Cb2xkSXRhbGljIHN0YXJuZXRJU08gZGVmCi9IZWx2ZXRpY2Egc3Rhcm5ldElTTyBkZWYKL0hlbHZldGljYS1PYmxpcXVlIHN0YXJuZXRJU08gZGVmCi9IZWx2ZXRpY2EtQm9sZCBzdGFybmV0SVNPIGRlZgovSGVsdmV0aWNhLUJvbGRPYmxpcXVlIHN0YXJuZXRJU08gZGVmCi9Db3VyaWVyIHN0YXJuZXRJU08gZGVmCi9Db3VyaWVyLU9ibGlxdWUgc3Rhcm5ldElTTyBkZWYKL0NvdXJpZXItQm9sZCBzdGFybmV0SVNPIGRlZgovQ291cmllci1Cb2xkT2JsaXF1ZSBzdGFybmV0SVNPIGRlZgpjbGVhcnRvbWFyawp9IGJpbmQgZGVmCgolJUJlZ2luUmVzb3VyY2U6IHByb2NzZXQgZ3JhcGh2aXogMCAwCi9jb29yZC1mb250LWZhbWlseSAvVGltZXMtUm9tYW4gZGVmCi9kZWZhdWx0LWZvbnQtZmFtaWx5IC9UaW1lcy1Sb21hbiBkZWYKL2Nvb3JkZm9udCBjb29yZC1mb250LWZhbWlseSBmaW5kZm9udCA4IHNjYWxlZm9udCBkZWYKCi9JbnZTY2FsZUZhY3RvciAxLjAgZGVmCi9zZXRfc2NhbGUgewogICAgICAgZHVwIDEgZXhjaCBkaXYgL0ludlNjYWxlRmFjdG9yIGV4Y2ggZGVmCiAgICAgICBzY2FsZQp9IGJpbmQgZGVmCgolIHN0eWxlcwovc29saWQgeyBbXSAwIHNldGRhc2ggfSBiaW5kIGRlZgovZGFzaGVkIHsgWzkgSW52U2NhbGVGYWN0b3IgbXVsIGR1cCBdIDAgc2V0ZGFzaCB9IGJpbmQgZGVmCi9kb3R0ZWQgeyBbMSBJbnZTY2FsZUZhY3RvciBtdWwgNiBJbnZTY2FsZUZhY3RvciBtdWxdIDAgc2V0ZGFzaCB9IGJpbmQgZGVmCi9pbnZpcyB7L2ZpbGwge25ld3BhdGh9IGRlZiAvc3Ryb2tlIHtuZXdwYXRofSBkZWYgL3Nob3cge3BvcCBuZXdwYXRofSBkZWZ9IGJpbmQgZGVmCi9ib2xkIHsgMiBzZXRsaW5ld2lkdGggfSBiaW5kIGRlZgovZmlsbGVkIHsgfSBiaW5kIGRlZgovdW5maWxsZWQgeyB9IGJpbmQgZGVmCi9yb3VuZGVkIHsgfSBiaW5kIGRlZgovZGlhZ29uYWxzIHsgfSBiaW5kIGRlZgovdGFwZXJlZCB7IH0gYmluZCBkZWYKCiUgaG9va3MgZm9yIHNldHRpbmcgY29sb3IgCi9ub2RlY29sb3IgeyBzZXRoc2Jjb2xvciB9IGJpbmQgZGVmCi9lZGdlY29sb3IgeyBzZXRoc2Jjb2xvciB9IGJpbmQgZGVmCi9ncmFwaGNvbG9yIHsgc2V0aHNiY29sb3IgfSBiaW5kIGRlZgovbm9wY29sb3Ige3BvcCBwb3AgcG9wfSBiaW5kIGRlZgoKL2JlZ2lucGFnZSB7CSUgaSBqIG5wYWdlcwoJL25wYWdlcyBleGNoIGRlZgoJL2ogZXhjaCBkZWYKCS9pIGV4Y2ggZGVmCgkvc3RyIDEwIHN0cmluZyBkZWYKCW5wYWdlcyAxIGd0IHsKCQlnc2F2ZQoJCQljb29yZGZvbnQgc2V0Zm9udAoJCQkwIDAgbW92ZXRvCgkJCShcKCkgc2hvdyBpIHN0ciBjdnMgc2hvdyAoLCkgc2hvdyBqIHN0ciBjdnMgc2hvdyAoXCkpIHNob3cKCQlncmVzdG9yZQoJfSBpZgp9IGJpbmQgZGVmCgovc2V0X2ZvbnQgewoJZmluZGZvbnQgZXhjaAoJc2NhbGVmb250IHNldGZvbnQKfSBkZWYKCiUgZHJhdyB0ZXh0IGZpdHRlZCB0byBpdHMgZXhwZWN0ZWQgd2lkdGgKL2FsaWduZWR0ZXh0IHsJCQklIHdpZHRoIHRleHQKCS90ZXh0IGV4Y2ggZGVmCgkvd2lkdGggZXhjaCBkZWYKCWdzYXZlCgkJd2lkdGggMCBndCB7CgkJCVtdIDAgc2V0ZGFzaAoJCQl0ZXh0IHN0cmluZ3dpZHRoIHBvcCB3aWR0aCBleGNoIHN1YiB0ZXh0IGxlbmd0aCBkaXYgMCB0ZXh0IGFzaG93CgkJfSBpZgoJZ3Jlc3RvcmUKfSBkZWYKCi9ib3hwcmltIHsJCQkJJSB4Y29ybmVyIHljb3JuZXIgeHNpemUgeXNpemUKCQk0IDIgcm9sbAoJCW1vdmV0bwoJCTIgY29weQoJCWV4Y2ggMCBybGluZXRvCgkJMCBleGNoIHJsaW5ldG8KCQlwb3AgbmVnIDAgcmxpbmV0bwoJCWNsb3NlcGF0aAp9IGJpbmQgZGVmCgovZWxsaXBzZV9wYXRoIHsKCS9yeSBleGNoIGRlZgoJL3J4IGV4Y2ggZGVmCgkveSBleGNoIGRlZgoJL3ggZXhjaCBkZWYKCW1hdHJpeCBjdXJyZW50bWF0cml4CgluZXdwYXRoCgl4IHkgdHJhbnNsYXRlCglyeCByeSBzY2FsZQoJMCAwIDEgMCAzNjAgYXJjCglzZXRtYXRyaXgKfSBiaW5kIGRlZgoKL2VuZHBhZ2UgeyBzaG93cGFnZSB9IGJpbmQgZGVmCi9zaG93cGFnZSB7IH0gZGVmCgovbGF5ZXJjb2xvcnNlcQoJWwklIGxheWVyIGNvbG9yIHNlcXVlbmNlIC0gZGFya2VzdCB0byBsaWdodGVzdAoJCVswIDAgMF0KCQlbLjIgLjggLjhdCgkJWy40IC44IC44XQoJCVsuNiAuOCAuOF0KCQlbLjggLjggLjhdCgldCmRlZgoKL2xheWVybGVuIGxheWVyY29sb3JzZXEgbGVuZ3RoIGRlZgoKL3NldGxheWVyIHsvbWF4bGF5ZXIgZXhjaCBkZWYgL2N1cmxheWVyIGV4Y2ggZGVmCglsYXllcmNvbG9yc2VxIGN1cmxheWVyIDEgc3ViIGxheWVybGVuIG1vZCBnZXQKCWFsb2FkIHBvcCBzZXRoc2Jjb2xvcgoJL25vZGVjb2xvciB7bm9wY29sb3J9IGRlZgoJL2VkZ2Vjb2xvciB7bm9wY29sb3J9IGRlZgoJL2dyYXBoY29sb3Ige25vcGNvbG9yfSBkZWYKfSBiaW5kIGRlZgoKL29ubGF5ZXIgeyBjdXJsYXllciBuZSB7aW52aXN9IGlmIH0gZGVmCgovb25sYXllcnMgewoJL215dXBwZXIgZXhjaCBkZWYKCS9teWxvd2VyIGV4Y2ggZGVmCgljdXJsYXllciBteWxvd2VyIGx0CgljdXJsYXllciBteXVwcGVyIGd0CglvcgoJe2ludmlzfSBpZgp9IGRlZgoKL2N1cmxheWVyIDAgZGVmCgolJUVuZFJlc291cmNlCiUlRW5kUHJvbG9nCiUlQmVnaW5TZXR1cAoxNCBkZWZhdWx0LWZvbnQtZmFtaWx5IHNldF9mb250CiUgL2Fycm93bGVuZ3RoIDEwIGRlZgolIC9hcnJvd3dpZHRoIDUgZGVmCgolIG1ha2Ugc3VyZSBwZGZtYXJrIGlzIGhhcm1sZXNzIGZvciBQUy1pbnRlcnByZXRlcnMgb3RoZXIgdGhhbiBEaXN0aWxsZXIKL3BkZm1hcmsgd2hlcmUge3BvcH0ge3VzZXJkaWN0IC9wZGZtYXJrIC9jbGVhcnRvbWFyayBsb2FkIHB1dH0gaWZlbHNlCiUgbWFrZSAnPDwnIGFuZCAnPj4nIHNhZmUgb24gUFMgTGV2ZWwgMSBkZXZpY2VzCi9sYW5ndWFnZWxldmVsIHdoZXJlIHtwb3AgbGFuZ3VhZ2VsZXZlbH17MX0gaWZlbHNlCjIgbHQgewogICAgdXNlcmRpY3QgKDw8KSBjdm4gKFspIGN2biBsb2FkIHB1dAogICAgdXNlcmRpY3QgKD4+KSBjdm4gKFspIGN2biBsb2FkIHB1dAp9IGlmCgolJUVuZFNldHVwAHN1cABncm91cABjdXAAdGhpbnNwAGVuc3AAZW1zcABuYnNwAHBlcnAAd2VpZXJwAGdlbmVyYXRlLWNvbnN0cmFpbnRzLmNwcABibG9jay5jcHAAY3NvbHZlX1ZQU0MuY3BwAH90b3AAcHJvcABhZ3hicG9wAG5vcABhc3ltcABjb21wAGZpbmRDQ29tcABibXAAc2NhbGVfY2xhbXAAeGxwAGxwICE9IGNscAB0YWlsX2xwAGhlYWRfbHAAdGFpbHRvb2x0aXAAbGFiZWx0b29sdGlwAGVkZ2V0b29sdGlwAGhlYWR0b29sdGlwAGhlbGxpcAB0YWlsY2xpcABoZWFkY2xpcAAvc3ZnL3BhcGF5YXdoaXAAaHAAdHJhbnNwb3NlX3N0ZXAAY29tcHV0ZVN0ZXAAbGF5ZXJsaXN0c2VwAGxheWVyc2VwAGlwc2VwAHJhbmtzZXAAbm9kZXNlcABzdWJncmFwaHMgbmVzdGVkIG1vcmUgdGhhbiAlZCBkZWVwAFNlcABzZmRwAGNwAHdlYnAAaWRtYXAAY2x1c3Rlcl9tYXAAY21hcHg6bWFwAGVwczptYXAAY21hcHhfbnA6bWFwAGltYXBfbnA6bWFwAGlzbWFwOm1hcABpbWFwOm1hcABjbWFwOm1hcABzdmc6bWFwAGpwZzptYXAAcG5nOm1hcABqcGVnOm1hcABnaWY6bWFwAGpwZTptYXAAb3ZlcmxhcABsZXZlbHNnYXAAY2FwAEtQX1VwACVJOiVNOiVTICVwAHN0YXJ0IDw9IHAAcnNxdW8AbHNxdW8AcmRxdW8AbGRxdW8AYmRxdW8Ac2JxdW8AcnNhcXVvAGxzYXF1bwByYXF1bwBsYXF1bwBhdXRvAE51bml0bwAvc3ZnL3RvbWF0bwBuZWF0bwBldXJvAC9zdmcvZ2FpbnNib3JvAE1ldGhvZFplcm8AbWljcm8AbmltYnVzbW9ubwBsaWJlcmF0aW9ubW9ubwBmcmVlbW9ubwBhcmltbwByYXRpbwBwb3J0aG8AcmhvAFJobwAvc3ZnL2luZGlnbwBwaW5mbwBjY2dyYXBoaW5mbwBjY2dub2RlaW5mbwBjbF9lZGdlX2luZm8AZ2V0UGFja0luZm8AbWFrZUluZm8AcGFyc2VQYWNrTW9kZUluZm8AY2lyY28AaWNvAFwlMDNvAC9zdmcvcm9zeWJyb3duAC9zdmcvc2FuZHlicm93bgB2ZXJ5ZGFya2Jyb3duAC9zdmcvc2FkZGxlYnJvd24AL3N2Zy9icm93bgBLUF9Eb3duAGNhbm5vdCBjaGFuZ2Ugc2V0dGluZyBvbmNlIHBhcnNpbmcgaGFzIGJlZ3VuAFN1bgBKdW4AdGhvcm4AL3N2Zy9jcmltc29uAHhkb3RfanNvbgB4ZG90X2pzb246anNvbgBqc29uMDpqc29uAG9taWNyb24AT21pY3JvbgBzY2Fyb24AU2Nhcm9uAHdlYm1hcm9vbgB4MTFtYXJvb24AL3N2Zy9tYXJvb24AL3N2Zy9saWdodHNhbG1vbgAvc3ZnL2RhcmtzYWxtb24AL3N2Zy9zYWxtb24AdXBzaWxvbgBlcHNpbG9uAFVwc2lsb24ARXBzaWxvbgByZXNvbHV0aW9uAGRpc3RvcnRpb24Ac3RkOjpleGNlcHRpb24AcGFydGl0aW9uAGRvdF9wb3NpdGlvbgBTZXR0aW5nIHVwIHN0cmVzcyBmdW5jdGlvbgB1bmNsb3NlZCBDREFUQSBzZWN0aW9uAHBvc3RhY3Rpb24Acm90YXRpb24Ab3JpZW50YXRpb24AYWJvbWluYXRpb24AYWNjb3VudGluZ0dldEN1cnJlbnRBbXBsaWZpY2F0aW9uAHhkb3R2ZXJzaW9uAFNUc2V0VW5pb24APHBvbHlnb24AaGV4YWdvbgBzZXB0YWdvbgBwZW50YWdvbgB0cmlwbGVvY3RhZ29uAGRvdWJsZW9jdGFnb24AL3N2Zy9sZW1vbmNoaWZmb24ATW9uAHBsdXNtbgBub3RpbgBpc2luAC9zdmcvbW9jY2FzaW4AcGluAG1pbgB2b3JvX21hcmdpbgBpbmZpbgBvbmVkX29wdGltaXplcl90cmFpbgBwbGFpbgBtYWtlX2NoYWluAG1lcmdlX2NoYWluAGRlbGV0ZU1pbgBmaW5kTWluAHZhbGlnbgBiYWxpZ24AeWVuAE11bHRpbGV2ZWxfY29hcnNlbgBjdXJyZW4AUG9ic29wZW4AZ3ZfZm9wZW4AZ3Z1c2Vyc2hhcGVfb3BlbgBlbnRpdHlUcmFja2luZ09uT3BlbgAvc3ZnL2xpbmVuAGRpbWVuAG1pbmxlbgBzdHlsZV90b2tlbgB1bmNsb3NlZCB0b2tlbgAvc3ZnL3llbGxvd2dyZWVuAG1lZGl1bWZvcmVzdGdyZWVuAC9zdmcvZm9yZXN0Z3JlZW4AL3N2Zy9saWdodGdyZWVuAGh1bnRlcnNncmVlbgAvc3ZnL2xhd25ncmVlbgAvc3ZnL2RhcmtncmVlbgAvc3ZnL21lZGl1bXNwcmluZ2dyZWVuAC9zdmcvc3ByaW5nZ3JlZW4AL3N2Zy9kYXJrb2xpdmVncmVlbgAvc3ZnL2xpbWVncmVlbgAvc3ZnL3BhbGVncmVlbgB3ZWJncmVlbgAvc3ZnL2xpZ2h0c2VhZ3JlZW4AL3N2Zy9tZWRpdW1zZWFncmVlbgAvc3ZnL2RhcmtzZWFncmVlbgAvc3ZnL3NlYWdyZWVuAHgxMWdyZWVuAC9zdmcvZ3JlZW4AR3JlZW4AL3N2Zy9saWdodGN5YW4AL3N2Zy9kYXJrY3lhbgAvc3ZnL2N5YW4AbmV3dGFuAGRhcmt0YW4AL3N2Zy90YW4Acm93c3BhbgBjb2xzcGFuAG5hbgB0aW1lc25ld3JvbWFuAG5pbWJ1c3JvbWFuAHRpbWVzcm9tYW4AVGltZXMtUm9tYW4AUGFsYXRpbm8tUm9tYW4ATmV3Q2VudHVyeVNjaGxiay1Sb21hbgBKYW4AR0RfcmFuayhnKVtyXS5uIDw9IEdEX3JhbmsoZylbcl0uYW4AYWd4YnB1dF9uAFxuAG5fbm9kZXMgPT0gZ3JhcGgtPm4AQS0+bSA9PSBBLT5uAGpvYi0+b2JqLT51Lm4AcywlbGYsJWxmJW4AIGUsJWxmLCVsZiVuACVkICUxWyJdJW4AdiA9PSBuAG56YyA9PSBuAGIgPT0gbgBuY2x1c3RlciA8PSBuAHBzeW0AYWxlZnN5bQB0aGV0YXN5bQBxdWFudHVtAHN1bQAvc3ZnL3BsdW0AaW52dHJhcGV6aXVtAG1lZGl1bQA5OnByaXNtAGxybQBjdXN0b20AYXB0ci0+dGFnID09IFRfYXRvbQAvZGV2L3VyYW5kb20AZ3ZfcmFuZG9tAHJsbQBzaW0ASU1EU19naXZlbl9kaW0Ab3JkbQBwYXJhbGxlbG9ncmFtAC9zdmcvbWludGNyZWFtAEp1bAB0bABmcmFzbABTeW1ib2wAZmluZENvbAA8P3htbAB5dW1sAHV1bWwAb3VtbABpdW1sAGV1bWwAYXVtbABZdW1sAFV1bWwAT3VtbABJdW1sAEV1bWwAQXVtbABjb3JlX2xvYWRpbWFnZV92cm1sAGpwZzp2cm1sAHBuZzp2cm1sAGpwZWc6dnJtbABnaWY6dnJtbABqcGU6dnJtbABidWxsAGZpbGwAL3N2Zy9zZWFzaGVsbABmb3JhbGwAQXByaWwAcGVybWlsAHJjZWlsAGxjZWlsAGNjZWRpbABDY2VkaWwAYXJyb3d0YWlsAGx0YWlsAHNhbWV0YWlsAGxldmVsID49IDAgJiYgbGV2ZWwgPD0gbi0+bGV2ZWwAc3RyZXNzX21ham9yaXphdGlvbl9rRF9ta2VybmVsAGlzX3BhcmFsbGVsAENhbGN1bGF0aW5nIGNpcmN1aXQgbW9kZWwAQ2FsY3VsYXRpbmcgc3Vic2V0IG1vZGVsAENhbGN1bGF0aW5nIE1EUyBtb2RlbAB4bGFiZWwAdGFpbGxhYmVsAGhlYWRsYWJlbABtYWtlX2xhYmVsAGdyYXBoIGxhYmVsAGlleGNsAG9ianAtPmxibABvdmFsAG1lcmdldmlydHVhbAAvc3ZnL2xpZ2h0Y29yYWwAL3N2Zy9jb3JhbABTcGFyc2VNYXRyaXhfZnJvbV9jb29yZGluYXRlX2FycmF5c19pbnRlcm5hbABNdWx0aWxldmVsX2NvYXJzZW5faW50ZXJuYWwAUXVhZFRyZWVfYWRkX2ludGVybmFsAGFycm93X2xlbmd0aF9ub3JtYWwAYXJpYWwAcmFkaWFsAC9zdmcvdGVhbAByZWFsAGxvY2FsAGVzdGltYXRlX2NoYXJhY3Rlcl93aWR0aF9jYW5vbmljYWwAZ2xvYmFsAHEtPmwALi4vLi4vbGliL2NncmFwaC9zY2FuLmwAdGs6dGsAZ2lmOnRrAHBhdGNod29yawB0b2sAYm9vawBBdmFudEdhcmRlLUJvb2sAc2luawBvdmVybGFwX3NocmluawBzcGljeXBpbmsAL3N2Zy9ob3RwaW5rAC9zdmcvbGlnaHRwaW5rAC9zdmcvZGVlcHBpbmsAbmVvbnBpbmsAL3N2Zy9waW5rAG5ld3JhbmsAY2x1c3RlcnJhbmsAX25ld19yYW5rAGluc3RhbGxfaW5fcmFuawByZW1vdmVfZnJvbV9yYW5rAC9zdmcvY29ybnNpbGsAb25lYmxvY2sAdi0+bGVmdC0+YmxvY2sgPT0gdi0+cmlnaHQtPmJsb2NrAC9zdmcvZmlyZWJyaWNrAFBRY2hlY2sAcGFjawAvc3ZnL2JsYWNrAEJsYWNrAHNmb250X2JhY2sAcm93c19iYWNrAHRzdHNfYmFjawBjb2xvcnNlZ3NfYmFjawBub2RlX2xpc3RfcG9wX2JhY2sAc2ZvbnRfcG9wX2JhY2sAdHN0c19wb3BfYmFjawBlc3RhY2tfcG9wX2JhY2sAZGZzX3N0YWNrX3BvcF9iYWNrAGRmc19zdGFja19iYWNrAHp3agB6d25qAGpvYi0+b2JqAGdldGludHJzeGkAcHNpAFBzaQBDYWxpYnJpAEZyaQB0d29waQBkcGkAdm9yb25vaQBWb3Jvbm9pAGNoYW5pAGRlbWkAQm9va21hbi1EZW1pAEF2YW50R2FyZGUtRGVtaQAvc3ZnL2RhcmtraGFraQAvc3ZnL2toYWtpAHBoaQBjaGkAUGhpAENoaQBkaQBYaQBQaQBORF9pZChucCkgPT0gaQBTdHJlc3NNYWpvcml6YXRpb25TbW9vdGhlcl9zbW9vdGgAU3ByaW5nU21vb3RoZXJfc21vb3RoAGJvdGgAc3RhcnRzd2l0aABsaW5lbGVuZ3RoAGJhZF9hcnJheV9uZXdfbGVuZ3RoAGF2ZXJhZ2VfZWRnZV9sZW5ndGgAZXRoAHBlbndpZHRoAGx3aWR0aABzZXRsaW5ld2lkdGgAc2hvcnRwYXRoAGZvbnRwYXRoAFBvYnNwYXRoAGJlZ2lucGF0aABpbWFnZXBhdGgAZW5kcGF0aABzdHJhaWdodF9wYXRoAG1hcF9wYXRoADxwYXRoAGNhbm5vdCBmaW5kIHRyaWFuZ2xlIHBhdGgAL3N2Zy9sYXZlbmRlcmJsdXNoAGZsZXNoAG9zbGFzaABPc2xhc2gAZHRzdHJoYXNoAHN0cmRpY3RfaGFzaABuZGFzaABtZGFzaABkaWdyYXBoAHN1YmdyYXBoAGNvbnN0cnVjdF9ncmFwaABjaGtTZ3JhcGgAY2xvc2VzdF9wYWlyczJncmFwaABhZ2RlbGV0ZSBvbiB3cm9uZyBncmFwaABjb25uZWN0R3JhcGgAdXBzaWgAJXNsaW5lLXRocm91Z2gAZmxhdF9zZWFyY2gAY2hhblNlYXJjaABSVHJlZVNlYXJjaABNYXJjaABEaXNjb25CcmFuY2gAUGlja0JyYW5jaABBZGRCcmFuY2gALi4vLi4vbGliL3V0aWwvYml0YXJyYXkuaAAuLi8uLi9saWIvdXRpbC9zdHJ2aWV3LmgALi4vLi4vbGliL2NpcmNvZ2VuL25vZGVsaXN0LmgALi4vLi4vbGliL3V0aWwvc29ydC5oAC4uLy4uL2xpYi9jZ3JhcGgvbm9kZV9zZXQuaAAuLi8uLi9saWIvY29tbW9uL2dsb2JhbHMuaAAuLi8uLi9saWIvY29tbW9uL2JveGVzLmgALi4vLi4vbGliL29ydGhvL3N0cnVjdHVyZXMuaAAuLi8uLi9saWIvZG90Z2VuL2RvdHByb2NzLmgALi4vLi4vbGliL3V0aWwvc3RyZXEuaAAuLi8uLi9saWIvb3J0aG8vdHJhcC5oAC4uLy4uL2xpYi91dGlsL3N0YXJ0c3dpdGguaAAuLi8uLi9saWIvdXRpbC9ndl9tYXRoLmgALi4vLi4vbGliL29ydGhvL3Jhd2dyYXBoLmgALi4vLi4vbGliL3V0aWwvYWd4YnVmLmgALi4vLi4vbGliL3V0aWwvdG9rZW5pemUuaAAuLi8uLi9saWIvY29tbW9uL2h0bWx0YWJsZS5oAC4uLy4uL2xpYi91dGlsL2FsbG9jLmgAYXV4ZwBjb3JlX2xvYWRpbWFnZV9zdmcAc3ZnOnN2ZwBqcGc6c3ZnAHBuZzpzdmcAanBlZzpzdmcAZ2lmOnN2ZwBqcGU6c3ZnAHN2Z19pbmxpbmU6c3ZnAEF1ZwBkb1Byb2xvZwBwb3dlcl9pdGVyYXRpb25fb3J0aG9nAHBuZwBpZGVhbF9kaXN0X3NjaGVtZSB2YWx1ZSB3cm9uZwB4ZG90IHZlcnNpb24gIiVzIiB0b28gbG9uZwBjb25nAGxibGVuY2xvc2luZwBiYXNpY19zdHJpbmcAZmFpbHVyZSBtYWxsb2MnaW5nIGZvciByZXN1bHQgc3RyaW5nAHNwcmluZwBvcmRlcmluZwBnZW5lcmF0ZVJhbmRvbU9yZGVyaW5nAGFyaW5nAEFyaW5nAERhbXBpbmcAV2FybmluZwBvdmVybGFwX3NjYWxpbmcAeCBhbmQgeSBzY2FsaW5nAG9sZCBzY2FsaW5nAHNtb290aGluZwB1bmtub3duIGVuY29kaW5nAG11bHRpbGV2ZWxfc3ByaW5nX2VsZWN0cmljYWxfZW1iZWRkaW5nAHNwcmluZ19lbGVjdHJpY2FsX3NwcmluZ19lbWJlZGRpbmcAY2VsbHBhZGRpbmcAY2VsbHNwYWNpbmcAcmFuZwBsYW5nAGZpdmVwb3ZlcmhhbmcAdGhyZWVwb3ZlcmhhbmcAbm92ZXJoYW5nAGVtaXRfaHRtbF9pbWcAbGcAb3JpZwBzemxpZwBvZWxpZwBhZWxpZwBPRWxpZwBBRWxpZwBjb3JlX2xvYWRpbWFnZV9maWcAanBnOmZpZwBwbmc6ZmlnAGZpZzpmaWcAanBlZzpmaWcAZ2lmOmZpZwBqcGU6ZmlnAGVnZwBuZXh0X3NlZwByZWcAanBlZwBpID09IGRlZwBkZwBjZwBjbG9zZXN1YmcAbWlzbWF0Y2hlZCB0YWcAYmV6LT5zZmxhZwBiZXotPmVmbGFnACEqZmxhZwAhZmxhZwA8ZwAlLjVnLCUuNWcsJS41ZywlLjVnACUuNWcgJS41ZwAlZyAlZwBib3hJbnRlcnNlY3RmAGVwc2YAYWdlZGdlc2VxY21wZgBjY3dyb3RhdGVwZgBmbm9mAGluZgBzZWxmAGhhbGYAJWxmJWxmJWxmJWxmACVsZiwlbGYsJWxmLCVsZiwlbGYAJSpmICUqZiAlbGYgJWxmAGxpYmVyYXRpb25zZXJpZgBmcmVlc2VyaWYAc2Fucy1TZXJpZgBnaWYAL3N2Zy9wZWFjaHB1ZmYAcmlmZgBhY2NvdW50aW5nUmVwb3J0RGlmZgB0YWlsaHJlZgBsYWJlbGhyZWYAZWRnZWhyZWYAaGVhZGhyZWYAb3JkZgBwZGYAc2lnbWFmAFxmACUuMExmACVMZgB1cy0+ZgAlLjAzZgAlcyB0cmFuc21pdCAlLjNmAHJnYjwlOS4zZiwgJTkuM2YsICU5LjNmPiB0cmFuc21pdCAlLjNmACUuMDJmACUuMmYAJS4wZiwlLjBmLCUuMGYsJS4wZgAgJS4wZiwlLjBmACUuMGYgJS4wZiAlLjBmICUuMGYAIiBmaWxsLW9wYWNpdHk9IiVmACIgc3Ryb2tlLW9wYWNpdHk9IiVmAApmaW5hbCBlID0gJWYAYnJvbnplAGFycm93c2l6ZQBsYWJlbGZvbnRzaXplAHNlYXJjaHNpemUAZml4ZWRzaXplAG5vZGVsaXN0X3NpemUAbm9kZV9zZXRfc2l6ZQB0cmFwc19zaXplAGNlbGxzX3NpemUAbm9kZXNfc2l6ZQB0ZXh0c3Bhbl9zaXplAHN2Z19zaXplAGNhcGFjaXR5ID4gZGljdC0+c2l6ZQBjYXBhY2l0eSA+IHNlbGYtPnNpemUAYnouc2l6ZQBwb2ludC1zaXplAG5vcm1hbGl6ZQBFTGluaXRpYWxpemUAbWtNYXplAGljdXJ2ZQBub2RlbGlzdF9yZW1vdmUAYWRqX2xpc3RfcmVtb3ZlAG5vZGVfc2V0X3JlbW92ZQBzdHJkaWN0X3JlbW92ZQBzb2x2ZQAhdi0+YWN0aXZlAC1hY3RpdmUAZm9udF9pbl9saXN0X3Blcm1pc3NpdmUAL3N2Zy9vbGl2ZQB1Z3JhdmUAb2dyYXZlAGlncmF2ZQBlZ3JhdmUAYWdyYXZlAFVncmF2ZQBPZ3JhdmUASWdyYXZlAEVncmF2ZQBBZ3JhdmUAdHJ1ZQAvc3ZnL2Jpc3F1ZQBvYmxpcXVlAEF2YW50R2FyZGUtQm9va09ibGlxdWUAQXZhbnRHYXJkZS1EZW1pT2JsaXF1ZQBIZWx2ZXRpY2EtTmFycm93LUJvbGRPYmxpcXVlAENvdXJpZXItQm9sZE9ibGlxdWUASGVsdmV0aWNhLUJvbGRPYmxpcXVlAEhlbHZldGljYS1OYXJyb3ctT2JsaXF1ZQBDb3VyaWVyLU9ibGlxdWUASGVsdmV0aWNhLU9ibGlxdWUAbmF2eWJsdWUAL3N2Zy9saWdodHNreWJsdWUAL3N2Zy9kZWVwc2t5Ymx1ZQAvc3ZnL3NreWJsdWUAbmV3bWlkbmlnaHRibHVlAC9zdmcvbWlkbmlnaHRibHVlAC9zdmcvbGlnaHRibHVlAC9zdmcvY2FkZXRibHVlAC9zdmcvY29ybmZsb3dlcmJsdWUAL3N2Zy9kb2RnZXJibHVlAC9zdmcvcG93ZGVyYmx1ZQBuZW9uYmx1ZQAvc3ZnL21lZGl1bWJsdWUAL3N2Zy9saWdodHN0ZWVsYmx1ZQAvc3ZnL3N0ZWVsYmx1ZQAvc3ZnL3JveWFsYmx1ZQAvc3ZnL2RhcmtibHVlAHJpY2hibHVlAGxpZ2h0c2xhdGVibHVlAC9zdmcvbWVkaXVtc2xhdGVibHVlAC9zdmcvZGFya3NsYXRlYmx1ZQAvc3ZnL3NsYXRlYmx1ZQAvc3ZnL2FsaWNlYmx1ZQAvc3ZnL2JsdWUAY2FsbFN0b3JlRW50aXR5VmFsdWUAc3RvcmVBdHRyaWJ1dGVWYWx1ZQBCbHVlAG5lYXRvX2VucXVldWUAVHVlAGNvbnZlcnRTUHRvUm91dGUAeWFjdXRlAHVhY3V0ZQBvYWN1dGUAaWFjdXRlAGVhY3V0ZQBhYWN1dGUAWWFjdXRlAFVhY3V0ZQBPYWN1dGUASWFjdXRlAEVhY3V0ZQBBYWN1dGUAcmVmZXJlbmNlIHRvIGV4dGVybmFsIGVudGl0eSBpbiBhdHRyaWJ1dGUAZHVwbGljYXRlIGF0dHJpYnV0ZQBub3RlAHByaW1lcnNpdGUAcmlib3NpdGUAcmVzdHJpY3Rpb25zaXRlAHByb3RlYXNlc2l0ZQAvc3ZnL2dob3N0d2hpdGUAL3N2Zy9uYXZham93aGl0ZQAvc3ZnL2Zsb3JhbHdoaXRlAC9zdmcvYW50aXF1ZXdoaXRlAC9zdmcvd2hpdGUAV2hpdGUAcG9wX29ial9zdGF0ZQBwY3Bfcm90YXRlAGNvbmNlbnRyYXRlAGRlY29yYXRlAFF1YWRUcmVlX3JlcHVsc2l2ZV9mb3JjZV9hY2N1bXVsYXRlAG5vdHJhbnNsYXRlAC9zdmcvY2hvY29sYXRlAGdlb21VcGRhdGUAaW52aG91c2UAL3N2Zy9jaGFydHJldXNlAG5vZGVsaXN0X3JldmVyc2UAWE1MX1BhcnNlADxlbGxpcHNlAGR1c3R5cm9zZQAvc3ZnL21pc3R5cm9zZQBTcGFyc2VNYXRyaXhfdHJhbnNwb3NlAGFnY2xvc2UAZW50aXR5VHJhY2tpbmdPbkNsb3NlAFNwYXJzZU1hdHJpeF9tdWx0aXBseV9kZW5zZQBmYWxzZQAvc3ZnL21lZGl1bXR1cnF1b2lzZQAvc3ZnL2Rhcmt0dXJxdW9pc2UAL3N2Zy9wYWxldHVycXVvaXNlAC9zdmcvdHVycXVvaXNlAHBoYXNlAC9zdmcvYXp1cmUAc2lnbmF0dXJlAGNvcmUATXNxdWFyZQBQYWxhdGlubyBMaW5vdHlwZQBBLT50eXBlID09IEItPnR5cGUAc3VwZQBlbGxpcHNlX3RhbmdlbnRfc2xvcGUAZ3ZyZW5kZXJfdXNlcnNoYXBlAG1pdGVyX3NoYXBlAGxhbmRzY2FwZQBMYW5kc2NhcGUASnVuZQBub25lAGRvY3VtZW50IGlzIG5vdCBzdGFuZGFsb25lAGNvdXNpbmUAL3N2Zy9tZWRpdW1hcXVhbWFyaW5lAC9zdmcvYXF1YW1hcmluZQA8cG9seWxpbmUAJXNvdmVybGluZQB1bmRlcmxpbmUAUHJvdXRlc3BsaW5lAGxpbmVhcl9zcGxpbmUAYl9zcGxpbmUAb2xpbmUAYWd4YnVmX2lzX2lubGluZQBzdmdfaW5saW5lAHJlZmluZQBwcmltZQBQcmltZQAvc3ZnL2xpbWUAY29sb3JzY2hlbWUAbGFiZWxfc2NoZW1lAHNhbWUAbGFiZWxmb250bmFtZQBVRl9zZXRuYW1lAGZvbnRfbmFtZQBmb250LT5uYW1lAHVzLT5uYW1lAHJlc2VydmVkIHByZWZpeCAoeG1sKSBtdXN0IG5vdCBiZSB1bmRlY2xhcmVkIG9yIGJvdW5kIHRvIGFub3RoZXIgbmFtZXNwYWNlIG5hbWUAc3R5bGUAL3N2Zy90aGlzdGxlAHRpdGxlAC9zdmcvbWVkaXVtcHVycGxlAGRhcmtwdXJwbGUAd2VicHVycGxlAHJlYmVjY2FwdXJwbGUAdmVyeV9saWdodF9wdXJwbGUAbWVkX3B1cnBsZQB4MTFwdXJwbGUAL3N2Zy9wdXJwbGUAc2hhcGVmaWxlAGdyYWRpZW50YW5nbGUAcmVjdGFuZ2xlAFJlY3RhbmdsZQBsYWJlbGFuZ2xlAGludnRyaWFuZ2xlAGRlc3RpbmF0aW9uIHBvaW50IG5vdCBpbiBhbnkgdHJpYW5nbGUAc291cmNlIHBvaW50IG5vdCBpbiBhbnkgdHJpYW5nbGUAZGZzQ3ljbGUAZG91YmxlY2lyY2xlAE1jaXJjbGUAaW52aXNpYmxlAHRob3JuZGFsZQBpbnB1dHNjYWxlAG9zY2FsZQBpbWFnZXNjYWxlAC9zdmcvd2hpdGVzbW9rZQBtYW5kYXJpbm9yYW5nZQAvc3ZnL2RhcmtvcmFuZ2UAL3N2Zy9vcmFuZ2UAL3N2Zy9iZWlnZQBuZXdlZGdlAGRlbGV0ZV9mYXN0X2VkZ2UAZGVsZXRlX2ZsYXRfZWRnZQBhZGRfdHJlZV9lZGdlAG1ha2VTdHJhaWdodEVkZ2UAbWFrZVNlbGZFZGdlAG1ha2VDb21wb3VuZEVkZ2UAIXVzZV9zdGFnZQBvc2FnZQBwYWdlAGd2bG9hZGltYWdlAHZlZQB0ZWUAUVVBRF9UUkVFX0hZQlJJRCwgc2l6ZSBsYXJnZXIgdGhhbiAlZCwgc3dpdGNoIHRvIGZhc3QgcXVhZHRyZWUAZmVhc2libGVfdHJlZQBTcGFyc2VNYXRyaXhfZGl2aWRlX3Jvd19ieV9kZWdyZWUAbm9kZWxpc3RfZnJlZQBzZm9udF9mcmVlAG5vZGVfc2V0X2ZyZWUAcm93c19mcmVlAGNlbGxzX2ZyZWUAbmV3bm9kZQBpbnN0YWxsbm9kZQBhZ25vZGUAZGVsZXRlX2Zhc3Rfbm9kZQBwYWNrbW9kZQBTcGxpdE5vZGUAb3RpbGRlAG50aWxkZQBhdGlsZGUAT3RpbGRlAE50aWxkZQBBdGlsZGUAZGl2aWRlAHRyYWRlAGdyYXBodml6X25vZGVfaW5kdWNlAHNvdXJjZQByZXB1bHNpdmVmb3JjZQBpbGxlZ2FsIHBhcmFtZXRlciBlbnRpdHkgcmVmZXJlbmNlAGVycm9yIGluIHByb2Nlc3NpbmcgZXh0ZXJuYWwgZW50aXR5IHJlZmVyZW5jZQByZWN1cnNpdmUgZW50aXR5IHJlZmVyZW5jZQBsYWJlbGRpc3RhbmNlAFRCX2JhbGFuY2UAVEJiYWxhbmNlAGRldmljZQBtb25vc3BhY2UAL3N2Zy9vbGRsYWNlAGZhY2UAc3ViZQAgLWFuY2hvciBlAHMxLT5jb21tX2Nvb3JkPT1zMi0+Y29tbV9jb29yZABNcmVjb3JkAGZvcndhcmQAcHJvZABsaWdodGdvbGRlbnJvZABtZWRpdW1nb2xkZW5yb2QAL3N2Zy9kYXJrZ29sZGVucm9kAC9zdmcvcGFsZWdvbGRlbnJvZAAvc3ZnL2dvbGRlbnJvZAAvc3ZnL2J1cmx5d29vZABsaWdodHdvb2QAbWVkaXVtd29vZABkYXJrd29vZABfYmFja2dyb3VuZABjb21wb3VuZABubyBlbGVtZW50IGZvdW5kAGZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0tbm8gYWN0aW9uIGZvdW5kAC9zdmcvYmxhbmNoZWRhbG1vbmQAYXJyb3dfbGVuZ3RoX2RpYW1vbmQATWRpYW1vbmQAbm9kZV9zZXRfZmluZABzdHJkaWN0X2ZpbmQAZ3Z1c2Vyc2hhcGVfZmluZABub2RlbGlzdF90cnlfYXBwZW5kAGVkZ2VfbGlzdF90cnlfYXBwZW5kAHNmb250X3RyeV9hcHBlbmQAdHJhcHNfdHJ5X2FwcGVuZABjZWxsc190cnlfYXBwZW5kAG5vZGVzX3RyeV9hcHBlbmQAbm9kZV9xdWV1ZV90cnlfYXBwZW5kAHNob3dfYm94ZXNfcHJlcGVuZABFTGxlZnRibmQAZXhwYW5kAGN1bWJlcmxhbmQAYnJpZ2h0Z29sZABvbGRnb2xkAC9zdmcvZ29sZABib2xkAEhlbHZldGljYS1OYXJyb3ctQm9sZABUaW1lcy1Cb2xkAENvdXJpZXItQm9sZABQYWxhdGluby1Cb2xkAE5ld0NlbnR1cnlTY2hsYmstQm9sZABIZWx2ZXRpY2EtQm9sZAAlMCpsbGQAJSpsbGQAKyVsbGQAbi0+YnJhbmNoW2ldLmNoaWxkACUrLjRsZAAlcyVsZABzb2xpZAAvc3ZnL21lZGl1bW9yY2hpZAAvc3ZnL2RhcmtvcmNoaWQAL3N2Zy9vcmNoaWQAaWxsZWdhbCBjaGFyYWN0ZXIocykgaW4gcHVibGljIGlkAGRpamtzdHJhX3NnZABmaXhlZABjdXJ2ZWQAZGVyaXZlZABkb3R0ZWQAbWVtb3J5IGV4aGF1c3RlZABsb2NhbGUgbm90IHN1cHBvcnRlZABwYXJzaW5nIGFib3J0ZWQAcGFyc2VyIG5vdCBzdGFydGVkAGF0dHJpYnV0ZSBtYWNyb3Mgbm90IGltcGxlbWVudGVkAGFjY291bnRpbmdEaWZmVG9sZXJhdGVkAGZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0tZW5kIG9mIGJ1ZmZlciBtaXNzZWQAY29uZGVuc2VkAC9zdmcvbWVkaXVtdmlvbGV0cmVkAC9zdmcvcGFsZXZpb2xldHJlZABJbXByb3BlciAlcyB2YWx1ZSAlcyAtIGlnbm9yZWQAJXMgdmFsdWUgJXMgPCAlZCAtIHRvbyBzbWFsbCAtIGlnbm9yZWQAJXMgdmFsdWUgJXMgPiAlZCAtIHRvbyBsYXJnZSAtIGlnbm9yZWQAL3N2Zy9pbmRpYW5yZWQAL3N2Zy9kYXJrcmVkAGEgc3VjY2Vzc2Z1bCBwcmlvciBjYWxsIHRvIGZ1bmN0aW9uIFhNTF9HZXRCdWZmZXIgaXMgcmVxdWlyZWQAdGFwZXJlZAAvc3ZnL29yYW5nZXJlZAByZXNlcnZlZCBwcmVmaXggKHhtbG5zKSBtdXN0IG5vdCBiZSBkZWNsYXJlZCBvciB1bmRlY2xhcmVkAC9zdmcvcmVkAHN0cmlwZWQAaWxsLWNvbmRpdGlvbmVkAHVuZGVmaW5lZABub3QgY29uc3RyYWluZWQAbGFiZWxhbGlnbmVkAHRleHQgZGVjbGFyYXRpb24gbm90IHdlbGwtZm9ybWVkAFhNTCBkZWNsYXJhdGlvbiBub3Qgd2VsbC1mb3JtZWQAdW5maWxsZWQAaW5wdXQgaW4gZmxleCBzY2FubmVyIGZhaWxlZAB0cmlhbmd1bGF0aW9uIGZhaWxlZABwYXJzaW5nIGZpbmlzaGVkAGRhc2hlZABsaW1pdCBvbiBpbnB1dCBhbXBsaWZpY2F0aW9uIGZhY3RvciAoZnJvbSBEVEQgYW5kIGVudGl0aWVzKSBicmVhY2hlZAB3ZWRnZWQAc2l6ZSA9PSBmcmVlZAByb3VuZGVkAHNwbGluZSBbJS4wM2YsICUuMDNmXSAtLSBbJS4wM2YsICUuMDNmXSBpcyBob3Jpem9udGFsOyB3aWxsIGJlIHRyaXZpYWxseSBib3VuZGVkAHNwbGluZSBbJS4wM2YsICUuMDNmXSAtLSBbJS4wM2YsICUuMDNmXSBpcyB2ZXJ0aWNhbDsgd2lsbCBiZSB0cml2aWFsbHkgYm91bmRlZABwYXJzZXIgbm90IHN1c3BlbmRlZABwYXJzZXIgc3VzcGVuZGVkAFdlZABSZWQAU3BhcnNlTWF0cml4X2FkZABub2RlX3NldF9hZGQAc3RyZGljdF9hZGQAZGQgIT0gcGFyZW50X2RkAEtQX0FkZABwYWQAeGxoZHhsb2FkAHhsaGR4dW5sb2FkAHJlYWQAYXJyb3doZWFkAGxoZWFkAHNhbWVoZWFkAGJveDNkACVzXyVkAF9zcGFuXyVkAF9ibG9ja18lZABfd2Vha18lZABfY2xvbmVfJWQALiVkACVZLSVtLSVkACVsZiwlZAAlcyBpbiBsaW5lICVkACUlJSVCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQAIl9zdWJncmFwaF9jbnQiOiAlZAAiX2d2aWQiOiAlZAAiaGVhZCI6ICVkAGFneGJwdXRjAHZwc2MAY3AtPnNyYwB1Y2lyYwBvY2lyYwBpY2lyYwBlY2lyYwBhY2lyYwBVY2lyYwBPY2lyYwBJY2lyYwBFY2lyYwBBY2lyYwBsYWJlbGxvYwBndl9yZWNhbGxvYwBzdGQ6OmJhZF9hbGxvYwBiYWtlcnNjaG9jAHNlbWlTd2VldENob2MAb2JqbGlzdF9zeW5jAGRlZ2xpc3Rfc3luYwBub2RlbGlzdF9zeW5jAGNsaXN0X3N5bmMAbm9kZV9saXN0X3N5bmMAZWRnZV9zZXRfc3luYwBwb2ludHNfc3luYwBzdHJzX3N5bmMAQWdyYXBoc19zeW5jAGJveGVzX3N5bmMAbGF5ZXJfbmFtZXNfc3luYwBzbm9kZXNfc3luYwB2YXJhcnJfc3luYwBiZXppZXJfcGF0aF9zeW5jAHBic19zaXplX3N5bmMAbWMAU3BhcnNlTWF0cml4X2lzX3N5bW1ldHJpYwBBLT5pc19wYXR0ZXJuX3N5bW1ldHJpYwBwaWM6cGljAGl0YWxpYwBCb29rbWFuLUxpZ2h0SXRhbGljAFphcGZDaGFuY2VyeS1NZWRpdW1JdGFsaWMAQm9va21hbi1EZW1pSXRhbGljAFRpbWVzLUJvbGRJdGFsaWMAUGFsYXRpbm8tQm9sZEl0YWxpYwBOZXdDZW50dXJ5U2NobGJrLUJvbGRJdGFsaWMAVGltZXMtSXRhbGljAFBhbGF0aW5vLUl0YWxpYwBOZXdDZW50dXJ5U2NobGJrLUl0YWxpYwByYWRpYwAjZmNmY2ZjAHJvdXRlc3BsaW5lczogJWQgZWRnZXMsICV6dSBib3hlcyAlLjJmIHNlYwA6ICUuMmYgc2VjAGxpc3RkZWxyZWMAbGV2ZWwgZ3JhcGggcmVjAGxldmVsIGVkZ2UgcmVjAGxldmVsIG5vZGUgcmVjAERlYwBfbmVhdG9fY2MAYmMAdmlzaWJpbGl0eS5jAFNwYXJzZU1hdHJpeC5jAGh0bWxsZXguYwBpbmRleC5jAHNtYXJ0X2luaV94LmMAZ3ZyZW5kZXJfY29yZV9wb3YuYwBjdnQuYwBsYXlvdXQuYwB0ZXh0c3Bhbl9sdXQuYwBhZGp1c3QuYwBub2RlbGlzdC5jAHNob3J0ZXN0LmMAY2xvc2VzdC5jAHNhbWVwb3J0LmMAZ3ZyZW5kZXJfY29yZV9kb3QuYwBjb25zdHJhaW50LmMAZG90aW5pdC5jAG5lYXRvaW5pdC5jAHBhdGNod29ya2luaXQuYwBvc2FnZWluaXQuYwBlbWl0LmMAZmxhdC5jAGFycm93cy5jAG1pbmNyb3NzLmMAc3RyZXNzLmMAcG9zdF9wcm9jZXNzLmMAY2NvbXBzLmMAbnMuYwB1dGlscy5jAHhsYWJlbHMuYwBzaGFwZXMuYwBkb3RzcGxpbmVzLmMAbmVhdG9zcGxpbmVzLmMAY2x1c3RlcmVkZ2VzLmMAaGVkZ2VzLmMAYXR0ci5jAHJlZnN0ci5jAGZhc3Rnci5jAGNsdXN0ZXIuYwB0YXBlci5jAGd2cmVuZGVyLmMAc3BsaXQucS5jAGRlY29tcC5jAGd2cmVuZGVyX2NvcmVfbWFwLmMAb3J0aG8uYwBndnJlbmRlcl9jb3JlX2pzb24uYwBwYXJ0aXRpb24uYwBwb3NpdGlvbi5jAGd2cGx1Z2luLmMAZ3ZfZm9wZW4uYwB0ZXh0c3Bhbi5jAGdlb20uYwByYW5kb20uYwByb3V0ZXNwbC5jAHhtbC5jAE11bHRpbGV2ZWwuYwBzcHJpbmdfZWxlY3RyaWNhbC5jAGd2cmVuZGVyX2NvcmVfdGsuYwByYW5rLmMAcGFjay5jAGJsb2NrcGF0aC5jAGR0c3RyaGFzaC5jAHJhd2dyYXBoLmMAZ3ZyZW5kZXJfY29yZV9zdmcuYwBndnJlbmRlcl9jb3JlX2ZpZy5jAHN0dWZmLmMAbWF6ZS5jAHF1YWRfcHJvZ19zb2x2ZS5jAHNwYXJzZV9zb2x2ZS5jAHJvdXRlLmMAd3JpdGUuYwBjb2x4bGF0ZS5jAHhtbHBhcnNlLmMAZWxsaXBzZS5jAGd2bG9hZGltYWdlX2NvcmUuYwBndnVzZXJzaGFwZS5jAGNpcmNsZS5jAGh0bWx0YWJsZS5jAGVkZ2UuYwBndmxvYWRpbWFnZS5jAGJsb2NrdHJlZS5jAFF1YWRUcmVlLmMAbm9kZS5jAG5vZGVfaW5kdWNlLmMAZ3ZkZXZpY2UuYwBjb21wb3VuZC5jAHRyYXBlem9pZC5jAHNnZC5jAGNvbmMuYwByZWMuYwBkaWprc3RyYS5jAGZQUS5jAGNsYXNzMi5jACVsZiwlbGYsJWxmLCVsZiVjACVsZiwlbGYsJWxmLCVbXixdJWMAXCVjACRjAHdiAG5zdWIAc2V0aHNiAHJiAHByb3RlY3RfcnNxYgBqb2IAY29yZV9sb2FkaW1hZ2VfcHNsaWIARmViAG9kYgBpbml0X3NwbGluZXNfYmIAYmV6aWVyX2JiAHByb3RlaW5zdGFiAHJuYXN0YWIAL3N2Zy9vbGl2ZWRyYWIAXGIAcndhAC9zdmcvYXF1YQBpb3RhAElvdGEAL3N2Zy9kYXJrbWFnZW50YQAvc3ZnL21hZ2VudGEAZGVsdGEARGVsdGEAemV0YQB0aGV0YQBUaGV0YQBiZXRhAFpldGEAQmV0YQBwcmV2ICE9IG9iai0+ZGF0YQBtYWtlR3JhcGhEYXRhAEV0YQBuaW1idXNzYW5zYQBwYXJhAGthcHBhAEthcHBhAC9zdmcvc2llbm5hAFZlcmRhbmEAZ2FtbWEAR2FtbWEAc2lnbWEAU2lnbWEAY29uc29sYQBuYWJsYQAvc3ZnL2Z1Y2hzaWEAR2VvcmdpYQBhbHBoYQBBbHBoYQBvbWVnYQBPbWVnYQBhcmVhAGxhbWJkYQBMYW1iZGEAaGVsdmV0aWNhAEhlbHZldGljYQBtaWNhAD48YQBgAF90ZHJhd18AX3RsZHJhd18AX2hsZHJhd18AX2xkcmF3XwBfaGRyYXdfAF9kcmF3XwBhZ3hzZXRfAGRvdF9zcGxpbmVzXwAlc18AcGFnZSVkLCVkXwBfY2NfACBpZD0iYV8AXgBTdGFydGluZyBwaGFzZSAyIFtkb3RfbWluY3Jvc3NdAFN0YXJ0aW5nIHBoYXNlIDMgW2RvdF9wb3NpdGlvbl0Abl9lZGdlcyA9PSBncmFwaC0+c291cmNlc1tncmFwaC0+bl0AU3RhcnRpbmcgcGhhc2UgMSBbZG90X3JhbmtdAGpkW21hc2tbamNba11dXSA9PSBqY1trXQBqY1ttYXNrW2piW2tdXV0gPT0gamJba10AbmVlZGxlW2ldICE9IG5lZWRsZVtqXQBqYVttYXNrW2phW2pdXV0gPT0gamFbal0AcS0+cXRzW2lpXQAhcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLnRha2VuW2ldAHIuYm91bmRhcnlbaV0gPD0gci5ib3VuZGFyeVtOVU1ESU1TICsgaV0AWyUuMDNmLCUuMDNmXQBbaW50ZXJuYWwgaGFyZC1jb2RlZF0AbnAtPmNlbGxzWzFdAG5wLT5jZWxsc1swXQB1cy0+bmFtZVswXQBjcC0+c3JjWzBdAFsuLl0AXFwAInBvaW50cyI6IFsAInN0b3BzIjogWwAJWwBaAGNvbXB1dGVTY2FsZVhZAHk8PVkAJWEgJWIgJWQgJUg6JU06JVMgJVkAUE9TSVgAeSA+PSBJTlRfTUlOICYmIHkgPD0gSU5UX01BWAB4ID49IElOVF9NSU4gJiYgeCA8PSBJTlRfTUFYAHcgPj0gMCAmJiB3IDw9IElOVF9NQVgAZV9jbnQgPD0gSU5UX01BWABwYWlyLnJpZ2h0IDw9IElOVF9NQVgAcGFpci5sZWZ0IDw9IElOVF9NQVgAdGFyZ2V0IDw9IElOVF9NQVgAbnNlZ3MgPD0gSU5UX01BWABuX2VkZ2VzIDw9IElOVF9NQVgAc3RwLm52ZXJ0aWNlcyA8PSBJTlRfTUFYAG9ic1twb2x5X2ldLT5wbiA8PSBJTlRfTUFYAGlucHV0X3JvdXRlLnBuIDw9IElOVF9NQVgAZ3JhcGgtPm4gPD0gSU5UX01BWABoID49IDAgJiYgaCA8PSBJTlRfTUFYAGVfY250IC0gMSA8PSBJTlRfTUFYAGNsaXN0X3NpemUoJmxpc3QpIC0gMSA8PSBJTlRfTUFYAGxheWVyX25hbWVzX3NpemUoJmxheWVySURzKSAtIDEgPD0gSU5UX01BWABzdHJsZW4oYXJncykgPD0gSU5UX01BWABvYmpsaXN0X3NpemUoJm9iamwpIDw9IElOVF9NQVgAZWRnZV9saXN0X3NpemUoJmN0eC0+VHJlZV9lZGdlKSA8PSBJTlRfTUFYAG5vZGVfc2V0X3NpemUoZy0+bl9pZCkgPD0gSU5UX01BWABpIDwgSU5UX01BWAByZXN1bHQgPD0gKGludClVQ0hBUl9NQVgAc3N6IDw9IFVDSEFSX01BWABjb2wgPj0gMCAmJiBjb2wgPD0gVUlOVDE2X01BWAB4PD1YAFcAVgBVAFxUAFRFWFQAU1RSRVNTX01BSk9SSVpBVElPTl9QT1dFUl9ESVNUAFNUUkVTU19NQUpPUklaQVRJT05fR1JBUEhfRElTVABTVFJFU1NfTUFKT1JJWkFUSU9OX0FWR19ESVNUAEZBU1QARk9OVABiID09IEJfUklHSFQASEVJR0hUAEJfTEVGVABfJWxsdV9TVVNQRUNUAEJUAFRyZWJ1Y2hldCBNUwBJTlZJUwAlSDolTTolUwBWUgBUUgBBLT5mb3JtYXQgPT0gQi0+Zm9ybWF0ICYmIEEtPmZvcm1hdCA9PSBGT1JNQVRfQ1NSAExSAERJUgBIUgBDRU5URVIAJSVUUkFJTEVSAEEtPnR5cGUgPT0gTUFUUklYX1RZUEVfUkVBTCB8fCBBLT50eXBlID09IE1BVFJJWF9UWVBFX0lOVEVHRVIAQ0VMTEJPUkRFUgBCUgAqUgBRAEVYUABCX1VQAFNVUABUT1AATwBtYXBOAFxOAEJfRE9XTgBUSE9STgAlJUJFR0lOAFJPV1NQQU4AQ09MU1BBTgBOQU4AUE0AQk9UVE9NAEJNAEFNACVIOiVNAFxMAHRhaWxVUkwAbGFiZWxVUkwAZWRnZVVSTABoZWFkVVJMAEhUTUwAeCE9TlVMTABFRF90b192aXJ0KG9yaWcpID09IE5VTEwARURfdG9fdmlydChlKSA9PSBOVUxMAHByZWZpeCAhPSBOVUxMAGR0ZC0+c2NhZmZJbmRleCAhPSBOVUxMAHNtLT5MdyAhPSBOVUxMAGlucHV0ICE9IE5VTEwAbGlzdCAhPSBOVUxMAHJlZmVyZW50ICE9IE5VTEwAZGljdCAhPSBOVUxMAGRpY3QtPmJ1Y2tldHMgIT0gTlVMTABhdHRyICE9IE5VTEwAbGVhZGVyICE9IE5VTEwAaXRlbSAhPSBOVUxMAGhheXN0YWNrICE9IE5VTEwAb3J0aG9nICE9IE5VTEwAc2VsZiAhPSBOVUxMAHZhbHVlICE9IE5VTEwAZmlsZW5hbWUgIT0gTlVMTABqb2ItPm91dHB1dF9maWxlICE9IE5VTEwAbW9kZSAhPSBOVUxMAHNvdXJjZSAhPSBOVUxMAHhkICE9IE5VTEwAc20tPkx3ZCAhPSBOVUxMAGpvYiAhPSBOVUxMAHNvdXJjZS5kYXRhICE9IE5VTEwAYi5kYXRhICE9IE5VTEwAYS5kYXRhICE9IE5VTEwAbGlzdCAmJiBsaXN0WzBdICE9IE5VTEwAQUYgIT0gTlVMTABzbS0+RCAhPSBOVUxMAEVEX3RvX3ZpcnQob3JpZykgIT0gTlVMTABMQ19BTEwAQkwAYmVzdGNvc3QgPCBIVUdFX1ZBTABOT1JNQUwAUkFESUFMAEEtPnR5cGUgPT0gTUFUUklYX1RZUEVfUkVBTABVUlcgQ2hhbmNlcnkgTABVUlcgQm9va21hbiBMAENlbnR1cnkgU2Nob29sYm9vayBMAFVSVyBHb3RoaWMgTABLSwBKAGkgPCBNQVhfSQBQLT5lbmQudGhldGEgPCAyICogTV9QSQBBU0NJSQBcSABFVEgAV0lEVEgARE9URk9OVFBBVEgAR0RGT05UUEFUSABta05Db25zdHJhaW50RwBcRwBFWFBBVF9FTlRJVFlfREVCVUcARVhQQVRfRU5UUk9QWV9ERUJVRwBFWFBBVF9BQ0NPVU5USU5HX0RFQlVHAFJORwBTUFJJTkcAQ0VMTFBBRERJTkcAQ0VMTFNQQUNJTkcATEFORwBJTUcAXHhGACUlRU9GAElORgBceEZGAFJJRkYAZGVsdGEgPD0gMHhGRkZGAFx4RUYAXHhERgBceENGAFx4QkYAXHhBRgBceDlGAFx4OEYAXHg3RgBceDFGAFx4RQBcRQBQT0lOVC1TSVpFAFRSVUUAQ0xPU0UARkFMU0UAa2V5ICE9IFRPTUJTVE9ORQByICE9IFRPTUJTVE9ORQBraW5kID09IExUX05PTkUAR1JBRElFTlRBTkdMRQBUUklBTkdMRQBNSURETEUASU5WSVNJQkxFAFRBQkxFAEFHVFlQRShvYmopID09IEFHSU5FREdFIHx8IEFHVFlQRShvYmopID09IEFHT1VURURHRQBceEZFAFx4RUUAXHhERQBCX05PREUAXHhDRQBceEJFAFx4QUUAXHg5RQBceDhFAFx4MUUAVEQAQS0+Zm9ybWF0ID09IEZPUk1BVF9DT09SRABuICYmIGkgPj0gMCAmJiBpIDwgTk9ERUNBUkQAJSVFTkQASFlCUklEAFNPTElEAFx4RkQAXHhFRABET1RURUQAREFTSEVEAFJPVU5ERUQAXHhERABceENEAFx4QkQAXHhBRABceDlEAFx4OEQAXHgxRABceEMAZGVsZXRlVlBTQwBceEZDAFx4RUMAXHhEQwBceENDAFx4QkMAXHhBQwBceDlDAFx4OEMAXHgxQwBceEIAU1VCAFx4RkIAXHhFQgBceERCAFx4Q0IAXHhCQgBceEFCAFx4OUIAXHg4QgBceDFCAEEgJiYgQgBceEZBAFx4RUEAXHhEQQBceENBAFx4QkEAXHhBQQBceDlBAFx4OEEAXHgxQQBAAD8APCVzPgA8bmlsPgA8L3RzcGFuPjwvdGV4dFBhdGg+AAogICAgPCU5LjNmLCAlOS4zZiwgJTkuM2Y+AD4KPHRpdGxlPgA8Rk9OVD4APEJSPgA8SFRNTD4APC9IVE1MPgA8SU1HPgBTeW50YXggZXJyb3I6IG5vbi1zcGFjZSBzdHJpbmcgdXNlZCBiZWZvcmUgPFRBQkxFPgBTeW50YXggZXJyb3I6IG5vbi1zcGFjZSBzdHJpbmcgdXNlZCBhZnRlciA8L1RBQkxFPgA8VEQ+AC0+ACI+AAlba2V5PQA8PQA8ACYjeCV4OwAmcXVvdDsAJmx0OwAmZ3Q7ACZhbXA7ACMlZDsAJiMzOTsAJiM0NTsAJiM5MzsAJiMxMzsAJiMxNjA7ACYjMTA7ADtzdG9wLW9wYWNpdHk6ACUlQm91bmRpbmdCb3g6AGNhbGN1bGF0aW5nIHNob3J0ZXN0IHBhdGhzIGFuZCBzZXR0aW5nIHVwIHN0cmVzcyB0ZXJtczoAPHN0b3Agb2Zmc2V0PSIlLjAzZiIgc3R5bGU9InN0b3AtY29sb3I6ADxzdG9wIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6ADxzdG9wIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6AHNvbHZpbmcgbW9kZWw6AC9cOgBncmV5OQBncmF5OQBceEY5AFx4RTkAXHhEOQBceEM5AFx4QjkAXHhBOQBncmV5OTkAZ3JheTk5AFx4OTkAZ3JleTg5AGdyYXk4OQBceDg5ADAxMjM0NTY3ODkAZ3JleTc5AGdyYXk3OQBncmV5NjkAZ3JheTY5AGdyZXk1OQBncmF5NTkAZ3JleTQ5AGdyYXk0OQBncmV5MzkAZ3JheTM5AGdyZXkyOQBncmF5MjkAZ3JleTE5AGdyYXkxOQBceDE5AC9yZGd5OS85AC9idXB1OS85AC9yZHB1OS85AC9wdWJ1OS85AC95bGduYnU5LzkAL2duYnU5LzkAL3JkeWxidTkvOQAvcmRidTkvOQAvZ3JleXM5LzkAL2dyZWVuczkvOQAvYmx1ZXM5LzkAL3B1cnBsZXM5LzkAL29yYW5nZXM5LzkAL3JlZHM5LzkAL3B1b3I5LzkAL3lsb3JicjkvOQAvcHVidWduOS85AC9idWduOS85AC9wcmduOS85AC9yZHlsZ245LzkAL3lsZ245LzkAL3NwZWN0cmFsOS85AC9waXlnOS85AC9icmJnOS85AC9wdXJkOS85AC95bG9ycmQ5LzkAL29ycmQ5LzkAL3BhaXJlZDkvOQAvc2V0MzkvOQAvc2V0MTkvOQAvcGFzdGVsMTkvOQAvcGFpcmVkMTIvOQAvc2V0MzEyLzkAL3JkZ3kxMS85AC9yZHlsYnUxMS85AC9yZGJ1MTEvOQAvcHVvcjExLzkAL3ByZ24xMS85AC9yZHlsZ24xMS85AC9zcGVjdHJhbDExLzkAL3BpeWcxMS85AC9icmJnMTEvOQAvcGFpcmVkMTEvOQAvc2V0MzExLzkAL3JkZ3kxMC85AC9yZHlsYnUxMC85AC9yZGJ1MTAvOQAvcHVvcjEwLzkAL3ByZ24xMC85AC9yZHlsZ24xMC85AC9zcGVjdHJhbDEwLzkAL3BpeWcxMC85AC9icmJnMTAvOQAvcGFpcmVkMTAvOQAvc2V0MzEwLzkAZ3JleTgAZ3JheTgAXHg4AHV0ZjgAI2Y4ZjhmOAAjZThlOGU4AFx4RjgAR0lGOABceEU4AFx4RDgAXHhDOABceEI4AFx4QTgAZ3JleTk4AGdyYXk5OABceDk4AGdyZXk4OABncmF5ODgAXHg4OABncmV5NzgAZ3JheTc4AGdyZXk2OABncmF5NjgAZ3JleTU4AGdyYXk1OABncmV5NDgAZ3JheTQ4AGdyZXkzOABncmF5MzgAZ3JleTI4AGdyYXkyOABncmV5MTgAZ3JheTE4AFx4MTgAL3JkZ3k5LzgAL2J1cHU5LzgAL3JkcHU5LzgAL3B1YnU5LzgAL3lsZ25idTkvOAAvZ25idTkvOAAvcmR5bGJ1OS84AC9yZGJ1OS84AC9ncmV5czkvOAAvZ3JlZW5zOS84AC9ibHVlczkvOAAvcHVycGxlczkvOAAvb3JhbmdlczkvOAAvcmVkczkvOAAvcHVvcjkvOAAveWxvcmJyOS84AC9wdWJ1Z245LzgAL2J1Z245LzgAL3ByZ245LzgAL3JkeWxnbjkvOAAveWxnbjkvOAAvc3BlY3RyYWw5LzgAL3BpeWc5LzgAL2JyYmc5LzgAL3B1cmQ5LzgAL3lsb3JyZDkvOAAvb3JyZDkvOAAvcGFpcmVkOS84AC9zZXQzOS84AC9zZXQxOS84AC9wYXN0ZWwxOS84AC9yZGd5OC84AC9idXB1OC84AC9yZHB1OC84AC9wdWJ1OC84AC95bGduYnU4LzgAL2duYnU4LzgAL3JkeWxidTgvOAAvcmRidTgvOAAvYWNjZW50OC84AC9ncmV5czgvOAAvZ3JlZW5zOC84AC9ibHVlczgvOAAvcHVycGxlczgvOAAvb3JhbmdlczgvOAAvcmVkczgvOAAvcHVvcjgvOAAveWxvcmJyOC84AC9wdWJ1Z244LzgAL2J1Z244LzgAL3ByZ244LzgAL3JkeWxnbjgvOAAveWxnbjgvOAAvc3BlY3RyYWw4LzgAL3BpeWc4LzgAL2JyYmc4LzgAL3B1cmQ4LzgAL3lsb3JyZDgvOAAvb3JyZDgvOAAvcGFpcmVkOC84AC9zZXQzOC84AC9zZXQyOC84AC9wYXN0ZWwyOC84AC9kYXJrMjgvOAAvc2V0MTgvOAAvcGFzdGVsMTgvOAAvcGFpcmVkMTIvOAAvc2V0MzEyLzgAL3JkZ3kxMS84AC9yZHlsYnUxMS84AC9yZGJ1MTEvOAAvcHVvcjExLzgAL3ByZ24xMS84AC9yZHlsZ24xMS84AC9zcGVjdHJhbDExLzgAL3BpeWcxMS84AC9icmJnMTEvOAAvcGFpcmVkMTEvOAAvc2V0MzExLzgAL3JkZ3kxMC84AC9yZHlsYnUxMC84AC9yZGJ1MTAvOAAvcHVvcjEwLzgAL3ByZ24xMC84AC9yZHlsZ24xMC84AC9zcGVjdHJhbDEwLzgAL3BpeWcxMC84AC9icmJnMTAvOAAvcGFpcmVkMTAvOAAvc2V0MzEwLzgAdXRmLTgAQy5VVEYtOABncmV5NwBncmF5NwBceDcAXHhGNwBceEU3AFx4RDcAXHhDNwBceEI3AFx4QTcAZ3JleTk3AGdyYXk5NwBceDk3AGdyZXk4NwBncmF5ODcAXHg4NwBncmV5NzcAZ3JheTc3AGdyZXk2NwBncmF5NjcAZ3JleTU3AGdyYXk1NwBncmV5NDcAZ3JheTQ3AGdyZXkzNwBncmF5MzcAZ3JleTI3AGdyYXkyNwBncmV5MTcAZ3JheTE3AFx4MTcAL3JkZ3k5LzcAL2J1cHU5LzcAL3JkcHU5LzcAL3B1YnU5LzcAL3lsZ25idTkvNwAvZ25idTkvNwAvcmR5bGJ1OS83AC9yZGJ1OS83AC9ncmV5czkvNwAvZ3JlZW5zOS83AC9ibHVlczkvNwAvcHVycGxlczkvNwAvb3JhbmdlczkvNwAvcmVkczkvNwAvcHVvcjkvNwAveWxvcmJyOS83AC9wdWJ1Z245LzcAL2J1Z245LzcAL3ByZ245LzcAL3JkeWxnbjkvNwAveWxnbjkvNwAvc3BlY3RyYWw5LzcAL3BpeWc5LzcAL2JyYmc5LzcAL3B1cmQ5LzcAL3lsb3JyZDkvNwAvb3JyZDkvNwAvcGFpcmVkOS83AC9zZXQzOS83AC9zZXQxOS83AC9wYXN0ZWwxOS83AC9yZGd5OC83AC9idXB1OC83AC9yZHB1OC83AC9wdWJ1OC83AC95bGduYnU4LzcAL2duYnU4LzcAL3JkeWxidTgvNwAvcmRidTgvNwAvYWNjZW50OC83AC9ncmV5czgvNwAvZ3JlZW5zOC83AC9ibHVlczgvNwAvcHVycGxlczgvNwAvb3JhbmdlczgvNwAvcmVkczgvNwAvcHVvcjgvNwAveWxvcmJyOC83AC9wdWJ1Z244LzcAL2J1Z244LzcAL3ByZ244LzcAL3JkeWxnbjgvNwAveWxnbjgvNwAvc3BlY3RyYWw4LzcAL3BpeWc4LzcAL2JyYmc4LzcAL3B1cmQ4LzcAL3lsb3JyZDgvNwAvb3JyZDgvNwAvcGFpcmVkOC83AC9zZXQzOC83AC9zZXQyOC83AC9wYXN0ZWwyOC83AC9kYXJrMjgvNwAvc2V0MTgvNwAvcGFzdGVsMTgvNwAvcmRneTcvNwAvYnVwdTcvNwAvcmRwdTcvNwAvcHVidTcvNwAveWxnbmJ1Ny83AC9nbmJ1Ny83AC9yZHlsYnU3LzcAL3JkYnU3LzcAL2FjY2VudDcvNwAvZ3JleXM3LzcAL2dyZWVuczcvNwAvYmx1ZXM3LzcAL3B1cnBsZXM3LzcAL29yYW5nZXM3LzcAL3JlZHM3LzcAL3B1b3I3LzcAL3lsb3JicjcvNwAvcHVidWduNy83AC9idWduNy83AC9wcmduNy83AC9yZHlsZ243LzcAL3lsZ243LzcAL3NwZWN0cmFsNy83AC9waXlnNy83AC9icmJnNy83AC9wdXJkNy83AC95bG9ycmQ3LzcAL29ycmQ3LzcAL3BhaXJlZDcvNwAvc2V0MzcvNwAvc2V0MjcvNwAvcGFzdGVsMjcvNwAvZGFyazI3LzcAL3NldDE3LzcAL3Bhc3RlbDE3LzcAL3BhaXJlZDEyLzcAL3NldDMxMi83AC9yZGd5MTEvNwAvcmR5bGJ1MTEvNwAvcmRidTExLzcAL3B1b3IxMS83AC9wcmduMTEvNwAvcmR5bGduMTEvNwAvc3BlY3RyYWwxMS83AC9waXlnMTEvNwAvYnJiZzExLzcAL3BhaXJlZDExLzcAL3NldDMxMS83AC9yZGd5MTAvNwAvcmR5bGJ1MTAvNwAvcmRidTEwLzcAL3B1b3IxMC83AC9wcmduMTAvNwAvcmR5bGduMTAvNwAvc3BlY3RyYWwxMC83AC9waXlnMTAvNwAvYnJiZzEwLzcAL3BhaXJlZDEwLzcAL3NldDMxMC83ADEuNwBncmV5NgBncmF5NgBceDYAXHhGNgBceEU2AFx4RDYAXHhDNgBceEI2AFx4QTYAZ3JleTk2AGdyYXk5NgBceDk2AGdyZXk4NgBncmF5ODYAXHg4NgBncmV5NzYAZ3JheTc2AGdyZXk2NgBncmF5NjYAZ3JleTU2AGdyYXk1NgBncmV5NDYAZ3JheTQ2AGdyZXkzNgBncmF5MzYAZ3JleTI2AGdyYXkyNgBncmV5MTYAZ3JheTE2AFx4MTYAL3JkZ3k5LzYAL2J1cHU5LzYAL3JkcHU5LzYAL3B1YnU5LzYAL3lsZ25idTkvNgAvZ25idTkvNgAvcmR5bGJ1OS82AC9yZGJ1OS82AC9ncmV5czkvNgAvZ3JlZW5zOS82AC9ibHVlczkvNgAvcHVycGxlczkvNgAvb3JhbmdlczkvNgAvcmVkczkvNgAvcHVvcjkvNgAveWxvcmJyOS82AC9wdWJ1Z245LzYAL2J1Z245LzYAL3ByZ245LzYAL3JkeWxnbjkvNgAveWxnbjkvNgAvc3BlY3RyYWw5LzYAL3BpeWc5LzYAL2JyYmc5LzYAL3B1cmQ5LzYAL3lsb3JyZDkvNgAvb3JyZDkvNgAvcGFpcmVkOS82AC9zZXQzOS82AC9zZXQxOS82AC9wYXN0ZWwxOS82AC9yZGd5OC82AC9idXB1OC82AC9yZHB1OC82AC9wdWJ1OC82AC95bGduYnU4LzYAL2duYnU4LzYAL3JkeWxidTgvNgAvcmRidTgvNgAvYWNjZW50OC82AC9ncmV5czgvNgAvZ3JlZW5zOC82AC9ibHVlczgvNgAvcHVycGxlczgvNgAvb3JhbmdlczgvNgAvcmVkczgvNgAvcHVvcjgvNgAveWxvcmJyOC82AC9wdWJ1Z244LzYAL2J1Z244LzYAL3ByZ244LzYAL3JkeWxnbjgvNgAveWxnbjgvNgAvc3BlY3RyYWw4LzYAL3BpeWc4LzYAL2JyYmc4LzYAL3B1cmQ4LzYAL3lsb3JyZDgvNgAvb3JyZDgvNgAvcGFpcmVkOC82AC9zZXQzOC82AC9zZXQyOC82AC9wYXN0ZWwyOC82AC9kYXJrMjgvNgAvc2V0MTgvNgAvcGFzdGVsMTgvNgAvcmRneTcvNgAvYnVwdTcvNgAvcmRwdTcvNgAvcHVidTcvNgAveWxnbmJ1Ny82AC9nbmJ1Ny82AC9yZHlsYnU3LzYAL3JkYnU3LzYAL2FjY2VudDcvNgAvZ3JleXM3LzYAL2dyZWVuczcvNgAvYmx1ZXM3LzYAL3B1cnBsZXM3LzYAL29yYW5nZXM3LzYAL3JlZHM3LzYAL3B1b3I3LzYAL3lsb3JicjcvNgAvcHVidWduNy82AC9idWduNy82AC9wcmduNy82AC9yZHlsZ243LzYAL3lsZ243LzYAL3NwZWN0cmFsNy82AC9waXlnNy82AC9icmJnNy82AC9wdXJkNy82AC95bG9ycmQ3LzYAL29ycmQ3LzYAL3BhaXJlZDcvNgAvc2V0MzcvNgAvc2V0MjcvNgAvcGFzdGVsMjcvNgAvZGFyazI3LzYAL3NldDE3LzYAL3Bhc3RlbDE3LzYAL3JkZ3k2LzYAL2J1cHU2LzYAL3JkcHU2LzYAL3B1YnU2LzYAL3lsZ25idTYvNgAvZ25idTYvNgAvcmR5bGJ1Ni82AC9yZGJ1Ni82AC9hY2NlbnQ2LzYAL2dyZXlzNi82AC9ncmVlbnM2LzYAL2JsdWVzNi82AC9wdXJwbGVzNi82AC9vcmFuZ2VzNi82AC9yZWRzNi82AC9wdW9yNi82AC95bG9yYnI2LzYAL3B1YnVnbjYvNgAvYnVnbjYvNgAvcHJnbjYvNgAvcmR5bGduNi82AC95bGduNi82AC9zcGVjdHJhbDYvNgAvcGl5ZzYvNgAvYnJiZzYvNgAvcHVyZDYvNgAveWxvcnJkNi82AC9vcnJkNi82AC9wYWlyZWQ2LzYAL3NldDM2LzYAL3NldDI2LzYAL3Bhc3RlbDI2LzYAL2RhcmsyNi82AC9zZXQxNi82AC9wYXN0ZWwxNi82AC9wYWlyZWQxMi82AC9zZXQzMTIvNgAvcmRneTExLzYAL3JkeWxidTExLzYAL3JkYnUxMS82AC9wdW9yMTEvNgAvcHJnbjExLzYAL3JkeWxnbjExLzYAL3NwZWN0cmFsMTEvNgAvcGl5ZzExLzYAL2JyYmcxMS82AC9wYWlyZWQxMS82AC9zZXQzMTEvNgAvcmRneTEwLzYAL3JkeWxidTEwLzYAL3JkYnUxMC82AC9wdW9yMTAvNgAvcHJnbjEwLzYAL3JkeWxnbjEwLzYAL3NwZWN0cmFsMTAvNgAvcGl5ZzEwLzYAL2JyYmcxMC82AC9wYWlyZWQxMC82AC9zZXQzMTAvNgBncmV5NQBncmF5NQBceDUAYmlnNQBceEY1AFx4RTUAXHhENQBceEM1AFx4QjUAXHhBNQBncmV5OTUAZ3JheTk1AFx4OTUAZ3JleTg1AGdyYXk4NQBceDg1AGdyZXk3NQBncmF5NzUAZ3JleTY1AGdyYXk2NQBncmV5NTUAZ3JheTU1AGdyZXk0NQBncmF5NDUAZ3JleTM1AGdyYXkzNQBncmV5MjUAZ3JheTI1AGdyZXkxNQBncmF5MTUAXHgxNQBncmF5MDUAL3JkZ3k5LzUAL2J1cHU5LzUAL3JkcHU5LzUAL3B1YnU5LzUAL3lsZ25idTkvNQAvZ25idTkvNQAvcmR5bGJ1OS81AC9yZGJ1OS81AC9ncmV5czkvNQAvZ3JlZW5zOS81AC9ibHVlczkvNQAvcHVycGxlczkvNQAvb3JhbmdlczkvNQAvcmVkczkvNQAvcHVvcjkvNQAveWxvcmJyOS81AC9wdWJ1Z245LzUAL2J1Z245LzUAL3ByZ245LzUAL3JkeWxnbjkvNQAveWxnbjkvNQAvc3BlY3RyYWw5LzUAL3BpeWc5LzUAL2JyYmc5LzUAL3B1cmQ5LzUAL3lsb3JyZDkvNQAvb3JyZDkvNQAvcGFpcmVkOS81AC9zZXQzOS81AC9zZXQxOS81AC9wYXN0ZWwxOS81AC9yZGd5OC81AC9idXB1OC81AC9yZHB1OC81AC9wdWJ1OC81AC95bGduYnU4LzUAL2duYnU4LzUAL3JkeWxidTgvNQAvcmRidTgvNQAvYWNjZW50OC81AC9ncmV5czgvNQAvZ3JlZW5zOC81AC9ibHVlczgvNQAvcHVycGxlczgvNQAvb3JhbmdlczgvNQAvcmVkczgvNQAvcHVvcjgvNQAveWxvcmJyOC81AC9wdWJ1Z244LzUAL2J1Z244LzUAL3ByZ244LzUAL3JkeWxnbjgvNQAveWxnbjgvNQAvc3BlY3RyYWw4LzUAL3BpeWc4LzUAL2JyYmc4LzUAL3B1cmQ4LzUAL3lsb3JyZDgvNQAvb3JyZDgvNQAvcGFpcmVkOC81AC9zZXQzOC81AC9zZXQyOC81AC9wYXN0ZWwyOC81AC9kYXJrMjgvNQAvc2V0MTgvNQAvcGFzdGVsMTgvNQAvcmRneTcvNQAvYnVwdTcvNQAvcmRwdTcvNQAvcHVidTcvNQAveWxnbmJ1Ny81AC9nbmJ1Ny81AC9yZHlsYnU3LzUAL3JkYnU3LzUAL2FjY2VudDcvNQAvZ3JleXM3LzUAL2dyZWVuczcvNQAvYmx1ZXM3LzUAL3B1cnBsZXM3LzUAL29yYW5nZXM3LzUAL3JlZHM3LzUAL3B1b3I3LzUAL3lsb3JicjcvNQAvcHVidWduNy81AC9idWduNy81AC9wcmduNy81AC9yZHlsZ243LzUAL3lsZ243LzUAL3NwZWN0cmFsNy81AC9waXlnNy81AC9icmJnNy81AC9wdXJkNy81AC95bG9ycmQ3LzUAL29ycmQ3LzUAL3BhaXJlZDcvNQAvc2V0MzcvNQAvc2V0MjcvNQAvcGFzdGVsMjcvNQAvZGFyazI3LzUAL3NldDE3LzUAL3Bhc3RlbDE3LzUAL3JkZ3k2LzUAL2J1cHU2LzUAL3JkcHU2LzUAL3B1YnU2LzUAL3lsZ25idTYvNQAvZ25idTYvNQAvcmR5bGJ1Ni81AC9yZGJ1Ni81AC9hY2NlbnQ2LzUAL2dyZXlzNi81AC9ncmVlbnM2LzUAL2JsdWVzNi81AC9wdXJwbGVzNi81AC9vcmFuZ2VzNi81AC9yZWRzNi81AC9wdW9yNi81AC95bG9yYnI2LzUAL3B1YnVnbjYvNQAvYnVnbjYvNQAvcHJnbjYvNQAvcmR5bGduNi81AC95bGduNi81AC9zcGVjdHJhbDYvNQAvcGl5ZzYvNQAvYnJiZzYvNQAvcHVyZDYvNQAveWxvcnJkNi81AC9vcnJkNi81AC9wYWlyZWQ2LzUAL3NldDM2LzUAL3NldDI2LzUAL3Bhc3RlbDI2LzUAL2RhcmsyNi81AC9zZXQxNi81AC9wYXN0ZWwxNi81AC9yZGd5NS81AC9idXB1NS81AC9yZHB1NS81AC9wdWJ1NS81AC95bGduYnU1LzUAL2duYnU1LzUAL3JkeWxidTUvNQAvcmRidTUvNQAvYWNjZW50NS81AC9ncmV5czUvNQAvZ3JlZW5zNS81AC9ibHVlczUvNQAvcHVycGxlczUvNQAvb3JhbmdlczUvNQAvcmVkczUvNQAvcHVvcjUvNQAveWxvcmJyNS81AC9wdWJ1Z241LzUAL2J1Z241LzUAL3ByZ241LzUAL3JkeWxnbjUvNQAveWxnbjUvNQAvc3BlY3RyYWw1LzUAL3BpeWc1LzUAL2JyYmc1LzUAL3B1cmQ1LzUAL3lsb3JyZDUvNQAvb3JyZDUvNQAvcGFpcmVkNS81AC9zZXQzNS81AC9zZXQyNS81AC9wYXN0ZWwyNS81AC9kYXJrMjUvNQAvc2V0MTUvNQAvcGFzdGVsMTUvNQAvcGFpcmVkMTIvNQAvc2V0MzEyLzUAL3JkZ3kxMS81AC9yZHlsYnUxMS81AC9yZGJ1MTEvNQAvcHVvcjExLzUAL3ByZ24xMS81AC9yZHlsZ24xMS81AC9zcGVjdHJhbDExLzUAL3BpeWcxMS81AC9icmJnMTEvNQAvcGFpcmVkMTEvNQAvc2V0MzExLzUAL3JkZ3kxMC81AC9yZHlsYnUxMC81AC9yZGJ1MTAvNQAvcHVvcjEwLzUAL3ByZ24xMC81AC9yZHlsZ24xMC81AC9zcGVjdHJhbDEwLzUAL3BpeWcxMC81AC9icmJnMTAvNQAvcGFpcmVkMTAvNQAvc2V0MzEwLzUAYmlnLTUAQklHLTUAIC1kYXNoIDUAaXZvcnk0AGdyZXk0AGRhcmtzbGF0ZWdyYXk0AFx4NABzbm93NABsaWdodHllbGxvdzQAaG9uZXlkZXc0AHdoZWF0NAB0b21hdG80AHJvc3licm93bjQAbWFyb29uNABsaWdodHNhbG1vbjQAbGVtb25jaGlmZm9uNABzcHJpbmdncmVlbjQAZGFya29saXZlZ3JlZW40AHBhbGVncmVlbjQAZGFya3NlYWdyZWVuNABsaWdodGN5YW40AHRhbjQAcGx1bTQAc2Vhc2hlbGw0AGNvcmFsNABob3RwaW5rNABsaWdodHBpbms0AGRlZXBwaW5rNABjb3Juc2lsazQAZmlyZWJyaWNrNABraGFraTQAbGF2ZW5kZXJibHVzaDQAcGVhY2hwdWZmNABiaXNxdWU0AGxpZ2h0c2t5Ymx1ZTQAZGVlcHNreWJsdWU0AGxpZ2h0Ymx1ZTQAY2FkZXRibHVlNABkb2RnZXJibHVlNABsaWdodHN0ZWVsYmx1ZTQAcm95YWxibHVlNABzbGF0ZWJsdWU0AG5hdmFqb3doaXRlNABhbnRpcXVld2hpdGU0AGNob2NvbGF0ZTQAY2hhcnRyZXVzZTQAbWlzdHlyb3NlNABwYWxldHVycXVvaXNlNABhenVyZTQAdGhlcmU0AGFxdWFtYXJpbmU0AHRoaXN0bGU0AG1lZGl1bXB1cnBsZTQAZGFya29yYW5nZTQAbGlnaHRnb2xkZW5yb2Q0AGRhcmtnb2xkZW5yb2Q0AGJ1cmx5d29vZDQAZ29sZDQAbWVkaXVtb3JjaGlkNABkYXJrb3JjaGlkNABwYWxldmlvbGV0cmVkNABpbmRpYW5yZWQ0AG9yYW5nZXJlZDQAb2xpdmVkcmFiNABtYWdlbnRhNABzaWVubmE0AFx4RjQAXHhFNABceEQ0AFx4QzQAXHhCNABceEE0AGdyZXk5NABncmF5OTQAXHg5NABncmV5ODQAZ3JheTg0AFx4ODQAZ3JleTc0AGdyYXk3NABncmV5NjQAZ3JheTY0AGdyZXk1NABncmF5NTQAZ3JleTQ0AGdyYXk0NABncmV5MzQAZ3JheTM0AGZyYWMzNABncmV5MjQAZ3JheTI0AGdyZXkxNABncmF5MTQAXHgxNABmcmFjMTQAL3JkZ3k5LzQAL2J1cHU5LzQAL3JkcHU5LzQAL3B1YnU5LzQAL3lsZ25idTkvNAAvZ25idTkvNAAvcmR5bGJ1OS80AC9yZGJ1OS80AC9ncmV5czkvNAAvZ3JlZW5zOS80AC9ibHVlczkvNAAvcHVycGxlczkvNAAvb3JhbmdlczkvNAAvcmVkczkvNAAvcHVvcjkvNAAveWxvcmJyOS80AC9wdWJ1Z245LzQAL2J1Z245LzQAL3ByZ245LzQAL3JkeWxnbjkvNAAveWxnbjkvNAAvc3BlY3RyYWw5LzQAL3BpeWc5LzQAL2JyYmc5LzQAL3B1cmQ5LzQAL3lsb3JyZDkvNAAvb3JyZDkvNAAvcGFpcmVkOS80AC9zZXQzOS80AC9zZXQxOS80AC9wYXN0ZWwxOS80AC9yZGd5OC80AC9idXB1OC80AC9yZHB1OC80AC9wdWJ1OC80AC95bGduYnU4LzQAL2duYnU4LzQAL3JkeWxidTgvNAAvcmRidTgvNAAvYWNjZW50OC80AC9ncmV5czgvNAAvZ3JlZW5zOC80AC9ibHVlczgvNAAvcHVycGxlczgvNAAvb3JhbmdlczgvNAAvcmVkczgvNAAvcHVvcjgvNAAveWxvcmJyOC80AC9wdWJ1Z244LzQAL2J1Z244LzQAL3ByZ244LzQAL3JkeWxnbjgvNAAveWxnbjgvNAAvc3BlY3RyYWw4LzQAL3BpeWc4LzQAL2JyYmc4LzQAL3B1cmQ4LzQAL3lsb3JyZDgvNAAvb3JyZDgvNAAvcGFpcmVkOC80AC9zZXQzOC80AC9zZXQyOC80AC9wYXN0ZWwyOC80AC9kYXJrMjgvNAAvc2V0MTgvNAAvcGFzdGVsMTgvNAAvcmRneTcvNAAvYnVwdTcvNAAvcmRwdTcvNAAvcHVidTcvNAAveWxnbmJ1Ny80AC9nbmJ1Ny80AC9yZHlsYnU3LzQAL3JkYnU3LzQAL2FjY2VudDcvNAAvZ3JleXM3LzQAL2dyZWVuczcvNAAvYmx1ZXM3LzQAL3B1cnBsZXM3LzQAL29yYW5nZXM3LzQAL3JlZHM3LzQAL3B1b3I3LzQAL3lsb3JicjcvNAAvcHVidWduNy80AC9idWduNy80AC9wcmduNy80AC9yZHlsZ243LzQAL3lsZ243LzQAL3NwZWN0cmFsNy80AC9waXlnNy80AC9icmJnNy80AC9wdXJkNy80AC95bG9ycmQ3LzQAL29ycmQ3LzQAL3BhaXJlZDcvNAAvc2V0MzcvNAAvc2V0MjcvNAAvcGFzdGVsMjcvNAAvZGFyazI3LzQAL3NldDE3LzQAL3Bhc3RlbDE3LzQAL3JkZ3k2LzQAL2J1cHU2LzQAL3JkcHU2LzQAL3B1YnU2LzQAL3lsZ25idTYvNAAvZ25idTYvNAAvcmR5bGJ1Ni80AC9yZGJ1Ni80AC9hY2NlbnQ2LzQAL2dyZXlzNi80AC9ncmVlbnM2LzQAL2JsdWVzNi80AC9wdXJwbGVzNi80AC9vcmFuZ2VzNi80AC9yZWRzNi80AC9wdW9yNi80AC95bG9yYnI2LzQAL3B1YnVnbjYvNAAvYnVnbjYvNAAvcHJnbjYvNAAvcmR5bGduNi80AC95bGduNi80AC9zcGVjdHJhbDYvNAAvcGl5ZzYvNAAvYnJiZzYvNAAvcHVyZDYvNAAveWxvcnJkNi80AC9vcnJkNi80AC9wYWlyZWQ2LzQAL3NldDM2LzQAL3NldDI2LzQAL3Bhc3RlbDI2LzQAL2RhcmsyNi80AC9zZXQxNi80AC9wYXN0ZWwxNi80AC9yZGd5NS80AC9idXB1NS80AC9yZHB1NS80AC9wdWJ1NS80AC95bGduYnU1LzQAL2duYnU1LzQAL3JkeWxidTUvNAAvcmRidTUvNAAvYWNjZW50NS80AC9ncmV5czUvNAAvZ3JlZW5zNS80AC9ibHVlczUvNAAvcHVycGxlczUvNAAvb3JhbmdlczUvNAAvcmVkczUvNAAvcHVvcjUvNAAveWxvcmJyNS80AC9wdWJ1Z241LzQAL2J1Z241LzQAL3ByZ241LzQAL3JkeWxnbjUvNAAveWxnbjUvNAAvc3BlY3RyYWw1LzQAL3BpeWc1LzQAL2JyYmc1LzQAL3B1cmQ1LzQAL3lsb3JyZDUvNAAvb3JyZDUvNAAvcGFpcmVkNS80AC9zZXQzNS80AC9zZXQyNS80AC9wYXN0ZWwyNS80AC9kYXJrMjUvNAAvc2V0MTUvNAAvcGFzdGVsMTUvNAAvcmRneTQvNAAvYnVwdTQvNAAvcmRwdTQvNAAvcHVidTQvNAAveWxnbmJ1NC80AC9nbmJ1NC80AC9yZHlsYnU0LzQAL3JkYnU0LzQAL2FjY2VudDQvNAAvZ3JleXM0LzQAL2dyZWVuczQvNAAvYmx1ZXM0LzQAL3B1cnBsZXM0LzQAL29yYW5nZXM0LzQAL3JlZHM0LzQAL3B1b3I0LzQAL3lsb3JicjQvNAAvcHVidWduNC80AC9idWduNC80AC9wcmduNC80AC9yZHlsZ240LzQAL3lsZ240LzQAL3NwZWN0cmFsNC80AC9waXlnNC80AC9icmJnNC80AC9wdXJkNC80AC95bG9ycmQ0LzQAL29ycmQ0LzQAL3BhaXJlZDQvNAAvc2V0MzQvNAAvc2V0MjQvNAAvcGFzdGVsMjQvNAAvZGFyazI0LzQAL3NldDE0LzQAL3Bhc3RlbDE0LzQAL3BhaXJlZDEyLzQAL3NldDMxMi80AC9yZGd5MTEvNAAvcmR5bGJ1MTEvNAAvcmRidTExLzQAL3B1b3IxMS80AC9wcmduMTEvNAAvcmR5bGduMTEvNAAvc3BlY3RyYWwxMS80AC9waXlnMTEvNAAvYnJiZzExLzQAL3BhaXJlZDExLzQAL3NldDMxMS80AC9yZGd5MTAvNAAvcmR5bGJ1MTAvNAAvcmRidTEwLzQAL3B1b3IxMC80AC9wcmduMTAvNAAvcmR5bGduMTAvNAAvc3BlY3RyYWwxMC80AC9waXlnMTAvNAAvYnJiZzEwLzQAL3BhaXJlZDEwLzQAL3NldDMxMC80ADEuNABuID49IDQAc2lkZXMgPT0gNABpdm9yeTMAU3BhcnNlTWF0cml4X211bHRpcGx5MwBncmV5MwBkYXJrc2xhdGVncmF5MwBceDMAc25vdzMAbGlnaHR5ZWxsb3czAGhvbmV5ZGV3MwB3aGVhdDMAc3VwMwB0b21hdG8zAHJvc3licm93bjMAbWFyb29uMwBsaWdodHNhbG1vbjMAbGVtb25jaGlmZm9uMwBzcHJpbmdncmVlbjMAZGFya29saXZlZ3JlZW4zAHBhbGVncmVlbjMAZGFya3NlYWdyZWVuMwBsaWdodGN5YW4zAHRhbjMAcGx1bTMAc2Vhc2hlbGwzAGNvcmFsMwBob3RwaW5rMwBsaWdodHBpbmszAGRlZXBwaW5rMwBjb3Juc2lsazMAZmlyZWJyaWNrMwBraGFraTMAbGF2ZW5kZXJibHVzaDMAcGVhY2hwdWZmMwBiaXNxdWUzAGxpZ2h0c2t5Ymx1ZTMAZGVlcHNreWJsdWUzAGxpZ2h0Ymx1ZTMAY2FkZXRibHVlMwBkb2RnZXJibHVlMwBsaWdodHN0ZWVsYmx1ZTMAcm95YWxibHVlMwBzbGF0ZWJsdWUzAG5hdmFqb3doaXRlMwBhbnRpcXVld2hpdGUzAGNob2NvbGF0ZTMAY2hhcnRyZXVzZTMAbWlzdHlyb3NlMwBwYWxldHVycXVvaXNlMwBhenVyZTMAYXF1YW1hcmluZTMAdGhpc3RsZTMAbWVkaXVtcHVycGxlMwBkYXJrb3JhbmdlMwBsaWdodGdvbGRlbnJvZDMAZGFya2dvbGRlbnJvZDMAYnVybHl3b29kMwBnb2xkMwBtZWRpdW1vcmNoaWQzAGRhcmtvcmNoaWQzAHBhbGV2aW9sZXRyZWQzAGluZGlhbnJlZDMAb3JhbmdlcmVkMwBvbGl2ZWRyYWIzAG1hZ2VudGEzAHNpZW5uYTMAXHhGMwBceEUzAFx4RDMAXHhDMwBceEIzAFx4QTMAZ3JleTkzAGdyYXk5MwBceDkzAGdyZXk4MwBncmF5ODMAXHg4MwBncmV5NzMAZ3JheTczAGdyZXk2MwBncmF5NjMAZ3JleTUzAGdyYXk1MwBncmV5NDMAZ3JheTQzAGdyZXkzMwBncmF5MzMAZ3JleTIzAGdyYXkyMwBncmV5MTMAZ3JheTEzAFx4MTMAL3JkZ3k5LzMAL2J1cHU5LzMAL3JkcHU5LzMAL3B1YnU5LzMAL3lsZ25idTkvMwAvZ25idTkvMwAvcmR5bGJ1OS8zAC9yZGJ1OS8zAC9ncmV5czkvMwAvZ3JlZW5zOS8zAC9ibHVlczkvMwAvcHVycGxlczkvMwAvb3JhbmdlczkvMwAvcmVkczkvMwAvcHVvcjkvMwAveWxvcmJyOS8zAC9wdWJ1Z245LzMAL2J1Z245LzMAL3ByZ245LzMAL3JkeWxnbjkvMwAveWxnbjkvMwAvc3BlY3RyYWw5LzMAL3BpeWc5LzMAL2JyYmc5LzMAL3B1cmQ5LzMAL3lsb3JyZDkvMwAvb3JyZDkvMwAvcGFpcmVkOS8zAC9zZXQzOS8zAC9zZXQxOS8zAC9wYXN0ZWwxOS8zAC9yZGd5OC8zAC9idXB1OC8zAC9yZHB1OC8zAC9wdWJ1OC8zAC95bGduYnU4LzMAL2duYnU4LzMAL3JkeWxidTgvMwAvcmRidTgvMwAvYWNjZW50OC8zAC9ncmV5czgvMwAvZ3JlZW5zOC8zAC9ibHVlczgvMwAvcHVycGxlczgvMwAvb3JhbmdlczgvMwAvcmVkczgvMwAvcHVvcjgvMwAveWxvcmJyOC8zAC9wdWJ1Z244LzMAL2J1Z244LzMAL3ByZ244LzMAL3JkeWxnbjgvMwAveWxnbjgvMwAvc3BlY3RyYWw4LzMAL3BpeWc4LzMAL2JyYmc4LzMAL3B1cmQ4LzMAL3lsb3JyZDgvMwAvb3JyZDgvMwAvcGFpcmVkOC8zAC9zZXQzOC8zAC9zZXQyOC8zAC9wYXN0ZWwyOC8zAC9kYXJrMjgvMwAvc2V0MTgvMwAvcGFzdGVsMTgvMwAvcmRneTcvMwAvYnVwdTcvMwAvcmRwdTcvMwAvcHVidTcvMwAveWxnbmJ1Ny8zAC9nbmJ1Ny8zAC9yZHlsYnU3LzMAL3JkYnU3LzMAL2FjY2VudDcvMwAvZ3JleXM3LzMAL2dyZWVuczcvMwAvYmx1ZXM3LzMAL3B1cnBsZXM3LzMAL29yYW5nZXM3LzMAL3JlZHM3LzMAL3B1b3I3LzMAL3lsb3JicjcvMwAvcHVidWduNy8zAC9idWduNy8zAC9wcmduNy8zAC9yZHlsZ243LzMAL3lsZ243LzMAL3NwZWN0cmFsNy8zAC9waXlnNy8zAC9icmJnNy8zAC9wdXJkNy8zAC95bG9ycmQ3LzMAL29ycmQ3LzMAL3BhaXJlZDcvMwAvc2V0MzcvMwAvc2V0MjcvMwAvcGFzdGVsMjcvMwAvZGFyazI3LzMAL3NldDE3LzMAL3Bhc3RlbDE3LzMAL3JkZ3k2LzMAL2J1cHU2LzMAL3JkcHU2LzMAL3B1YnU2LzMAL3lsZ25idTYvMwAvZ25idTYvMwAvcmR5bGJ1Ni8zAC9yZGJ1Ni8zAC9hY2NlbnQ2LzMAL2dyZXlzNi8zAC9ncmVlbnM2LzMAL2JsdWVzNi8zAC9wdXJwbGVzNi8zAC9vcmFuZ2VzNi8zAC9yZWRzNi8zAC9wdW9yNi8zAC95bG9yYnI2LzMAL3B1YnVnbjYvMwAvYnVnbjYvMwAvcHJnbjYvMwAvcmR5bGduNi8zAC95bGduNi8zAC9zcGVjdHJhbDYvMwAvcGl5ZzYvMwAvYnJiZzYvMwAvcHVyZDYvMwAveWxvcnJkNi8zAC9vcnJkNi8zAC9wYWlyZWQ2LzMAL3NldDM2LzMAL3NldDI2LzMAL3Bhc3RlbDI2LzMAL2RhcmsyNi8zAC9zZXQxNi8zAC9wYXN0ZWwxNi8zAC9yZGd5NS8zAC9idXB1NS8zAC9yZHB1NS8zAC9wdWJ1NS8zAC95bGduYnU1LzMAL2duYnU1LzMAL3JkeWxidTUvMwAvcmRidTUvMwAvYWNjZW50NS8zAC9ncmV5czUvMwAvZ3JlZW5zNS8zAC9ibHVlczUvMwAvcHVycGxlczUvMwAvb3JhbmdlczUvMwAvcmVkczUvMwAvcHVvcjUvMwAveWxvcmJyNS8zAC9wdWJ1Z241LzMAL2J1Z241LzMAL3ByZ241LzMAL3JkeWxnbjUvMwAveWxnbjUvMwAvc3BlY3RyYWw1LzMAL3BpeWc1LzMAL2JyYmc1LzMAL3B1cmQ1LzMAL3lsb3JyZDUvMwAvb3JyZDUvMwAvcGFpcmVkNS8zAC9zZXQzNS8zAC9zZXQyNS8zAC9wYXN0ZWwyNS8zAC9kYXJrMjUvMwAvc2V0MTUvMwAvcGFzdGVsMTUvMwAvcmRneTQvMwAvYnVwdTQvMwAvcmRwdTQvMwAvcHVidTQvMwAveWxnbmJ1NC8zAC9nbmJ1NC8zAC9yZHlsYnU0LzMAL3JkYnU0LzMAL2FjY2VudDQvMwAvZ3JleXM0LzMAL2dyZWVuczQvMwAvYmx1ZXM0LzMAL3B1cnBsZXM0LzMAL29yYW5nZXM0LzMAL3JlZHM0LzMAL3B1b3I0LzMAL3lsb3JicjQvMwAvcHVidWduNC8zAC9idWduNC8zAC9wcmduNC8zAC9yZHlsZ240LzMAL3lsZ240LzMAL3NwZWN0cmFsNC8zAC9waXlnNC8zAC9icmJnNC8zAC9wdXJkNC8zAC95bG9ycmQ0LzMAL29ycmQ0LzMAL3BhaXJlZDQvMwAvc2V0MzQvMwAvc2V0MjQvMwAvcGFzdGVsMjQvMwAvZGFyazI0LzMAL3NldDE0LzMAL3Bhc3RlbDE0LzMAL3JkZ3kzLzMAL2J1cHUzLzMAL3JkcHUzLzMAL3B1YnUzLzMAL3lsZ25idTMvMwAvZ25idTMvMwAvcmR5bGJ1My8zAC9yZGJ1My8zAC9hY2NlbnQzLzMAL2dyZXlzMy8zAC9ncmVlbnMzLzMAL2JsdWVzMy8zAC9wdXJwbGVzMy8zAC9vcmFuZ2VzMy8zAC9yZWRzMy8zAC9wdW9yMy8zAC95bG9yYnIzLzMAL3B1YnVnbjMvMwAvYnVnbjMvMwAvcHJnbjMvMwAvcmR5bGduMy8zAC95bGduMy8zAC9zcGVjdHJhbDMvMwAvcGl5ZzMvMwAvYnJiZzMvMwAvcHVyZDMvMwAveWxvcnJkMy8zAC9vcnJkMy8zAC9wYWlyZWQzLzMAL3NldDMzLzMAL3NldDIzLzMAL3Bhc3RlbDIzLzMAL2RhcmsyMy8zAC9zZXQxMy8zAC9wYXN0ZWwxMy8zAC9wYWlyZWQxMi8zAC9zZXQzMTIvMwAvcmRneTExLzMAL3JkeWxidTExLzMAL3JkYnUxMS8zAC9wdW9yMTEvMwAvcHJnbjExLzMAL3JkeWxnbjExLzMAL3NwZWN0cmFsMTEvMwAvcGl5ZzExLzMAL2JyYmcxMS8zAC9wYWlyZWQxMS8zAC9zZXQzMTEvMwAvcmRneTEwLzMAL3JkeWxidTEwLzMAL3JkYnUxMC8zAC9wdW9yMTAvMwAvcHJnbjEwLzMAL3JkeWxnbjEwLzMAL3NwZWN0cmFsMTAvMwAvcGl5ZzEwLzMAL2JyYmcxMC8zAC9wYWlyZWQxMC8zAC9zZXQzMTAvMwBpdm9yeTIAZ3JleTIAZGFya3NsYXRlZ3JheTIAXHgyAHNub3cyAGxpZ2h0eWVsbG93MgBob25leWRldzIAUlRyZWVJbnNlcnQyAHdoZWF0MgBzdXAyAG5vcDIAdG9tYXRvMgByb3N5YnJvd24yAG1hcm9vbjIAbGlnaHRzYWxtb24yAGxlbW9uY2hpZmZvbjIAc3ByaW5nZ3JlZW4yAGRhcmtvbGl2ZWdyZWVuMgBwYWxlZ3JlZW4yAGRhcmtzZWFncmVlbjIAbGlnaHRjeWFuMgB0YW4yAHBsdW0yAHNlYXNoZWxsMgBjb3JhbDIAaG90cGluazIAbGlnaHRwaW5rMgBkZWVwcGluazIAY29ybnNpbGsyAGZpcmVicmljazIAa2hha2kyAGxhdmVuZGVyYmx1c2gyAHBlYWNocHVmZjIAYnJvbnplMgBiaXNxdWUyAGxpZ2h0c2t5Ymx1ZTIAZGVlcHNreWJsdWUyAGxpZ2h0Ymx1ZTIAY2FkZXRibHVlMgBkb2RnZXJibHVlMgBsaWdodHN0ZWVsYmx1ZTIAcm95YWxibHVlMgBzbGF0ZWJsdWUyAG5hdmFqb3doaXRlMgBhbnRpcXVld2hpdGUyAGNob2NvbGF0ZTIAY2hhcnRyZXVzZTIAbWlzdHlyb3NlMgBwYWxldHVycXVvaXNlMgBhenVyZTIAYXF1YW1hcmluZTIAdGhpc3RsZTIAbWVkaXVtcHVycGxlMgBkYXJrb3JhbmdlMgBsaWdodGdvbGRlbnJvZDIAZGFya2dvbGRlbnJvZDIAYnVybHl3b29kMgBnb2xkMgBtZWRpdW1vcmNoaWQyAGRhcmtvcmNoaWQyAHBhbGV2aW9sZXRyZWQyAGluZGlhbnJlZDIAb3JhbmdlcmVkMgBvbGl2ZWRyYWIyAG1hZ2VudGEyAHNpZW5uYTIAXHhGMgBceEUyAFx4RDIAXHhDMgBceEIyAFx4QTIAZ3JleTkyAGdyYXk5MgBceDkyAGdyZXk4MgBncmF5ODIAXHg4MgBncmV5NzIAZ3JheTcyAGdyZXk2MgBncmF5NjIAZ3JleTUyAGdyYXk1MgBncmV5NDIAZ3JheTQyAGdyZXkzMgBncmF5MzIAZ3JleTIyAGdyYXkyMgBncmV5MTIAZ3JheTEyAFx4MTIAZnJhYzEyAC9wYWlyZWQxMi8xMgAvc2V0MzEyLzEyAC9yZGd5OS8yAC9idXB1OS8yAC9yZHB1OS8yAC9wdWJ1OS8yAC95bGduYnU5LzIAL2duYnU5LzIAL3JkeWxidTkvMgAvcmRidTkvMgAvZ3JleXM5LzIAL2dyZWVuczkvMgAvYmx1ZXM5LzIAL3B1cnBsZXM5LzIAL29yYW5nZXM5LzIAL3JlZHM5LzIAL3B1b3I5LzIAL3lsb3JicjkvMgAvcHVidWduOS8yAC9idWduOS8yAC9wcmduOS8yAC9yZHlsZ245LzIAL3lsZ245LzIAL3NwZWN0cmFsOS8yAC9waXlnOS8yAC9icmJnOS8yAC9wdXJkOS8yAC95bG9ycmQ5LzIAL29ycmQ5LzIAL3BhaXJlZDkvMgAvc2V0MzkvMgAvc2V0MTkvMgAvcGFzdGVsMTkvMgAvcmRneTgvMgAvYnVwdTgvMgAvcmRwdTgvMgAvcHVidTgvMgAveWxnbmJ1OC8yAC9nbmJ1OC8yAC9yZHlsYnU4LzIAL3JkYnU4LzIAL2FjY2VudDgvMgAvZ3JleXM4LzIAL2dyZWVuczgvMgAvYmx1ZXM4LzIAL3B1cnBsZXM4LzIAL29yYW5nZXM4LzIAL3JlZHM4LzIAL3B1b3I4LzIAL3lsb3JicjgvMgAvcHVidWduOC8yAC9idWduOC8yAC9wcmduOC8yAC9yZHlsZ244LzIAL3lsZ244LzIAL3NwZWN0cmFsOC8yAC9waXlnOC8yAC9icmJnOC8yAC9wdXJkOC8yAC95bG9ycmQ4LzIAL29ycmQ4LzIAL3BhaXJlZDgvMgAvc2V0MzgvMgAvc2V0MjgvMgAvcGFzdGVsMjgvMgAvZGFyazI4LzIAL3NldDE4LzIAL3Bhc3RlbDE4LzIAL3JkZ3k3LzIAL2J1cHU3LzIAL3JkcHU3LzIAL3B1YnU3LzIAL3lsZ25idTcvMgAvZ25idTcvMgAvcmR5bGJ1Ny8yAC9yZGJ1Ny8yAC9hY2NlbnQ3LzIAL2dyZXlzNy8yAC9ncmVlbnM3LzIAL2JsdWVzNy8yAC9wdXJwbGVzNy8yAC9vcmFuZ2VzNy8yAC9yZWRzNy8yAC9wdW9yNy8yAC95bG9yYnI3LzIAL3B1YnVnbjcvMgAvYnVnbjcvMgAvcHJnbjcvMgAvcmR5bGduNy8yAC95bGduNy8yAC9zcGVjdHJhbDcvMgAvcGl5ZzcvMgAvYnJiZzcvMgAvcHVyZDcvMgAveWxvcnJkNy8yAC9vcnJkNy8yAC9wYWlyZWQ3LzIAL3NldDM3LzIAL3NldDI3LzIAL3Bhc3RlbDI3LzIAL2RhcmsyNy8yAC9zZXQxNy8yAC9wYXN0ZWwxNy8yAC9yZGd5Ni8yAC9idXB1Ni8yAC9yZHB1Ni8yAC9wdWJ1Ni8yAC95bGduYnU2LzIAL2duYnU2LzIAL3JkeWxidTYvMgAvcmRidTYvMgAvYWNjZW50Ni8yAC9ncmV5czYvMgAvZ3JlZW5zNi8yAC9ibHVlczYvMgAvcHVycGxlczYvMgAvb3JhbmdlczYvMgAvcmVkczYvMgAvcHVvcjYvMgAveWxvcmJyNi8yAC9wdWJ1Z242LzIAL2J1Z242LzIAL3ByZ242LzIAL3JkeWxnbjYvMgAveWxnbjYvMgAvc3BlY3RyYWw2LzIAL3BpeWc2LzIAL2JyYmc2LzIAL3B1cmQ2LzIAL3lsb3JyZDYvMgAvb3JyZDYvMgAvcGFpcmVkNi8yAC9zZXQzNi8yAC9zZXQyNi8yAC9wYXN0ZWwyNi8yAC9kYXJrMjYvMgAvc2V0MTYvMgAvcGFzdGVsMTYvMgAvcmRneTUvMgAvYnVwdTUvMgAvcmRwdTUvMgAvcHVidTUvMgAveWxnbmJ1NS8yAC9nbmJ1NS8yAC9yZHlsYnU1LzIAL3JkYnU1LzIAL2FjY2VudDUvMgAvZ3JleXM1LzIAL2dyZWVuczUvMgAvYmx1ZXM1LzIAL3B1cnBsZXM1LzIAL29yYW5nZXM1LzIAL3JlZHM1LzIAL3B1b3I1LzIAL3lsb3JicjUvMgAvcHVidWduNS8yAC9idWduNS8yAC9wcmduNS8yAC9yZHlsZ241LzIAL3lsZ241LzIAL3NwZWN0cmFsNS8yAC9waXlnNS8yAC9icmJnNS8yAC9wdXJkNS8yAC95bG9ycmQ1LzIAL29ycmQ1LzIAL3BhaXJlZDUvMgAvc2V0MzUvMgAvc2V0MjUvMgAvcGFzdGVsMjUvMgAvZGFyazI1LzIAL3NldDE1LzIAL3Bhc3RlbDE1LzIAL3JkZ3k0LzIAL2J1cHU0LzIAL3JkcHU0LzIAL3B1YnU0LzIAL3lsZ25idTQvMgAvZ25idTQvMgAvcmR5bGJ1NC8yAC9yZGJ1NC8yAC9hY2NlbnQ0LzIAL2dyZXlzNC8yAC9ncmVlbnM0LzIAL2JsdWVzNC8yAC9wdXJwbGVzNC8yAC9vcmFuZ2VzNC8yAC9yZWRzNC8yAC9wdW9yNC8yAC95bG9yYnI0LzIAL3B1YnVnbjQvMgAvYnVnbjQvMgAvcHJnbjQvMgAvcmR5bGduNC8yAC95bGduNC8yAC9zcGVjdHJhbDQvMgAvcGl5ZzQvMgAvYnJiZzQvMgAvcHVyZDQvMgAveWxvcnJkNC8yAC9vcnJkNC8yAC9wYWlyZWQ0LzIAL3NldDM0LzIAL3NldDI0LzIAL3Bhc3RlbDI0LzIAL2RhcmsyNC8yAC9zZXQxNC8yAC9wYXN0ZWwxNC8yAC9yZGd5My8yAC9idXB1My8yAC9yZHB1My8yAC9wdWJ1My8yAC95bGduYnUzLzIAL2duYnUzLzIAL3JkeWxidTMvMgAvcmRidTMvMgAvYWNjZW50My8yAC9ncmV5czMvMgAvZ3JlZW5zMy8yAC9ibHVlczMvMgAvcHVycGxlczMvMgAvb3JhbmdlczMvMgAvcmVkczMvMgAvcHVvcjMvMgAveWxvcmJyMy8yAC9wdWJ1Z24zLzIAL2J1Z24zLzIAL3ByZ24zLzIAL3JkeWxnbjMvMgAveWxnbjMvMgAvc3BlY3RyYWwzLzIAL3BpeWczLzIAL2JyYmczLzIAL3B1cmQzLzIAL3lsb3JyZDMvMgAvb3JyZDMvMgAvcGFpcmVkMy8yAC9zZXQzMy8yAC9zZXQyMy8yAC9wYXN0ZWwyMy8yAC9kYXJrMjMvMgAvc2V0MTMvMgAvcGFzdGVsMTMvMgAvcGFpcmVkMTIvMgAvc2V0MzEyLzIAL3JkZ3kxMS8yAC9yZHlsYnUxMS8yAC9yZGJ1MTEvMgAvcHVvcjExLzIAL3ByZ24xMS8yAC9yZHlsZ24xMS8yAC9zcGVjdHJhbDExLzIAL3BpeWcxMS8yAC9icmJnMTEvMgAvcGFpcmVkMTEvMgAvc2V0MzExLzIAL3JkZ3kxMC8yAC9yZHlsYnUxMC8yAC9yZGJ1MTAvMgAvcHVvcjEwLzIAL3ByZ24xMC8yAC9yZHlsZ24xMC8yAC9zcGVjdHJhbDEwLzIAL3BpeWcxMC8yAC9icmJnMTAvMgAvcGFpcmVkMTAvMgAvc2V0MzEwLzIAMTMuMS4yACAtZGFzaCAyAHN6ID49IDIAbGVuID49IDIAZXhwID09IDEgfHwgZXhwID09IDIAZGltID09IDIATkRfb3V0KHYpLnNpemUgPT0gMgBpdm9yeTEAZ3JleTEAZGFya3NsYXRlZ3JheTEAXHgxAHNub3cxAGxpZ2h0eWVsbG93MQBob25leWRldzEAbnNsaW1pdDEAd2hlYXQxAHN1cDEAbm9wMQB0b21hdG8xAHJvc3licm93bjEAbWFyb29uMQBsaWdodHNhbG1vbjEAbGVtb25jaGlmZm9uMQBsYXRpbjEAYWdvcGVuMQBzcHJpbmdncmVlbjEAZGFya29saXZlZ3JlZW4xAHBhbGVncmVlbjEAZGFya3NlYWdyZWVuMQBsaWdodGN5YW4xAHRhbjEAcGx1bTEAc2Vhc2hlbGwxAGNvcmFsMQBob3RwaW5rMQBsaWdodHBpbmsxAGRlZXBwaW5rMQBjb3Juc2lsazEAZmlyZWJyaWNrMQBqMCA8PSBpMSAmJiBpMSA8PSBqMQBraGFraTEAbGF2ZW5kZXJibHVzaDEAcGVhY2hwdWZmMQBiaXNxdWUxAGxpZ2h0c2t5Ymx1ZTEAZGVlcHNreWJsdWUxAGxpZ2h0Ymx1ZTEAY2FkZXRibHVlMQBkb2RnZXJibHVlMQBsaWdodHN0ZWVsYmx1ZTEAcm95YWxibHVlMQBzbGF0ZWJsdWUxAG5hdmFqb3doaXRlMQBhbnRpcXVld2hpdGUxAGNob2NvbGF0ZTEAY2hhcnRyZXVzZTEAbWlzdHlyb3NlMQBwYWxldHVycXVvaXNlMQBhenVyZTEAYXF1YW1hcmluZTEAdGhpc3RsZTEAbWVkaXVtcHVycGxlMQBkYXJrb3JhbmdlMQBhcmdfZTAgJiYgYXJnX2UxAGxpZ2h0Z29sZGVucm9kMQBkYXJrZ29sZGVucm9kMQBidXJseXdvb2QxAGdvbGQxAG1lZGl1bW9yY2hpZDEAZGFya29yY2hpZDEAcGFsZXZpb2xldHJlZDEAaW5kaWFucmVkMQBvcmFuZ2VyZWQxAG9saXZlZHJhYjEAbWFnZW50YTEAc2llbm5hMQBceEYxAFx4RTEAXHhEMQBceEMxAFx4QjEAXHhBMQBncmV5OTEAZ3JheTkxAFx4OTEAZ3JleTgxAGdyYXk4MQBceDgxAGdyZXk3MQBncmF5NzEAZ3JleTYxAGdyYXk2MQBncmV5NTEAZ3JheTUxAGdyZXk0MQBncmF5NDEAZ3JleTMxAGdyYXkzMQBncmV5MjEAZ3JheTIxAGdyZXkxMQBncmF5MTEAXHgxMQAvcGFpcmVkMTIvMTEAL3NldDMxMi8xMQAvcmRneTExLzExAC9yZHlsYnUxMS8xMQAvcmRidTExLzExAC9wdW9yMTEvMTEAL3ByZ24xMS8xMQAvcmR5bGduMTEvMTEAL3NwZWN0cmFsMTEvMTEAL3BpeWcxMS8xMQAvYnJiZzExLzExAC9wYWlyZWQxMS8xMQAvc2V0MzExLzExAGNzW2ldLT5zbGFjaygpPi0wLjAwMDAwMDEAL3JkZ3k5LzEAL2J1cHU5LzEAL3JkcHU5LzEAL3B1YnU5LzEAL3lsZ25idTkvMQAvZ25idTkvMQAvcmR5bGJ1OS8xAC9yZGJ1OS8xAC9ncmV5czkvMQAvZ3JlZW5zOS8xAC9ibHVlczkvMQAvcHVycGxlczkvMQAvb3JhbmdlczkvMQAvcmVkczkvMQAvcHVvcjkvMQAveWxvcmJyOS8xAC9wdWJ1Z245LzEAL2J1Z245LzEAL3ByZ245LzEAL3JkeWxnbjkvMQAveWxnbjkvMQAvc3BlY3RyYWw5LzEAL3BpeWc5LzEAL2JyYmc5LzEAL3B1cmQ5LzEAL3lsb3JyZDkvMQAvb3JyZDkvMQAvcGFpcmVkOS8xAC9zZXQzOS8xAC9zZXQxOS8xAC9wYXN0ZWwxOS8xAC9yZGd5OC8xAC9idXB1OC8xAC9yZHB1OC8xAC9wdWJ1OC8xAC95bGduYnU4LzEAL2duYnU4LzEAL3JkeWxidTgvMQAvcmRidTgvMQAvYWNjZW50OC8xAC9ncmV5czgvMQAvZ3JlZW5zOC8xAC9ibHVlczgvMQAvcHVycGxlczgvMQAvb3JhbmdlczgvMQAvcmVkczgvMQAvcHVvcjgvMQAveWxvcmJyOC8xAC9wdWJ1Z244LzEAL2J1Z244LzEAL3ByZ244LzEAL3JkeWxnbjgvMQAveWxnbjgvMQAvc3BlY3RyYWw4LzEAL3BpeWc4LzEAL2JyYmc4LzEAL3B1cmQ4LzEAL3lsb3JyZDgvMQAvb3JyZDgvMQAvcGFpcmVkOC8xAC9zZXQzOC8xAC9zZXQyOC8xAC9wYXN0ZWwyOC8xAC9kYXJrMjgvMQAvc2V0MTgvMQAvcGFzdGVsMTgvMQAvcmRneTcvMQAvYnVwdTcvMQAvcmRwdTcvMQAvcHVidTcvMQAveWxnbmJ1Ny8xAC9nbmJ1Ny8xAC9yZHlsYnU3LzEAL3JkYnU3LzEAL2FjY2VudDcvMQAvZ3JleXM3LzEAL2dyZWVuczcvMQAvYmx1ZXM3LzEAL3B1cnBsZXM3LzEAL29yYW5nZXM3LzEAL3JlZHM3LzEAL3B1b3I3LzEAL3lsb3JicjcvMQAvcHVidWduNy8xAC9idWduNy8xAC9wcmduNy8xAC9yZHlsZ243LzEAL3lsZ243LzEAL3NwZWN0cmFsNy8xAC9waXlnNy8xAC9icmJnNy8xAC9wdXJkNy8xAC95bG9ycmQ3LzEAL29ycmQ3LzEAL3BhaXJlZDcvMQAvc2V0MzcvMQAvc2V0MjcvMQAvcGFzdGVsMjcvMQAvZGFyazI3LzEAL3NldDE3LzEAL3Bhc3RlbDE3LzEAL3JkZ3k2LzEAL2J1cHU2LzEAL3JkcHU2LzEAL3B1YnU2LzEAL3lsZ25idTYvMQAvZ25idTYvMQAvcmR5bGJ1Ni8xAC9yZGJ1Ni8xAC9hY2NlbnQ2LzEAL2dyZXlzNi8xAC9ncmVlbnM2LzEAL2JsdWVzNi8xAC9wdXJwbGVzNi8xAC9vcmFuZ2VzNi8xAC9yZWRzNi8xAC9wdW9yNi8xAC95bG9yYnI2LzEAL3B1YnVnbjYvMQAvYnVnbjYvMQAvcHJnbjYvMQAvcmR5bGduNi8xAC95bGduNi8xAC9zcGVjdHJhbDYvMQAvcGl5ZzYvMQAvYnJiZzYvMQAvcHVyZDYvMQAveWxvcnJkNi8xAC9vcnJkNi8xAC9wYWlyZWQ2LzEAL3NldDM2LzEAL3NldDI2LzEAL3Bhc3RlbDI2LzEAL2RhcmsyNi8xAC9zZXQxNi8xAC9wYXN0ZWwxNi8xAC9yZGd5NS8xAC9idXB1NS8xAC9yZHB1NS8xAC9wdWJ1NS8xAC95bGduYnU1LzEAL2duYnU1LzEAL3JkeWxidTUvMQAvcmRidTUvMQAvYWNjZW50NS8xAC9ncmV5czUvMQAvZ3JlZW5zNS8xAC9ibHVlczUvMQAvcHVycGxlczUvMQAvb3JhbmdlczUvMQAvcmVkczUvMQAvcHVvcjUvMQAveWxvcmJyNS8xAC9wdWJ1Z241LzEAL2J1Z241LzEAL3ByZ241LzEAL3JkeWxnbjUvMQAveWxnbjUvMQAvc3BlY3RyYWw1LzEAL3BpeWc1LzEAL2JyYmc1LzEAL3B1cmQ1LzEAL3lsb3JyZDUvMQAvb3JyZDUvMQAvcGFpcmVkNS8xAC9zZXQzNS8xAC9zZXQyNS8xAC9wYXN0ZWwyNS8xAC9kYXJrMjUvMQAvc2V0MTUvMQAvcGFzdGVsMTUvMQAvcmRneTQvMQAvYnVwdTQvMQAvcmRwdTQvMQAvcHVidTQvMQAveWxnbmJ1NC8xAC9nbmJ1NC8xAC9yZHlsYnU0LzEAL3JkYnU0LzEAL2FjY2VudDQvMQAvZ3JleXM0LzEAL2dyZWVuczQvMQAvYmx1ZXM0LzEAL3B1cnBsZXM0LzEAL29yYW5nZXM0LzEAL3JlZHM0LzEAL3B1b3I0LzEAL3lsb3JicjQvMQAvcHVidWduNC8xAC9idWduNC8xAC9wcmduNC8xAC9yZHlsZ240LzEAL3lsZ240LzEAL3NwZWN0cmFsNC8xAC9waXlnNC8xAC9icmJnNC8xAC9wdXJkNC8xAC95bG9ycmQ0LzEAL29ycmQ0LzEAL3BhaXJlZDQvMQAvc2V0MzQvMQAvc2V0MjQvMQAvcGFzdGVsMjQvMQAvZGFyazI0LzEAL3NldDE0LzEAL3Bhc3RlbDE0LzEAL3JkZ3kzLzEAL2J1cHUzLzEAL3JkcHUzLzEAL3B1YnUzLzEAL3lsZ25idTMvMQAvZ25idTMvMQAvcmR5bGJ1My8xAC9yZGJ1My8xAC9hY2NlbnQzLzEAL2dyZXlzMy8xAC9ncmVlbnMzLzEAL2JsdWVzMy8xAC9wdXJwbGVzMy8xAC9vcmFuZ2VzMy8xAC9yZWRzMy8xAC9wdW9yMy8xAC95bG9yYnIzLzEAL3B1YnVnbjMvMQAvYnVnbjMvMQAvcHJnbjMvMQAvcmR5bGduMy8xAC95bGduMy8xAC9zcGVjdHJhbDMvMQAvcGl5ZzMvMQAvYnJiZzMvMQAvcHVyZDMvMQAveWxvcnJkMy8xAC9vcnJkMy8xAC9wYWlyZWQzLzEAL3NldDMzLzEAL3NldDIzLzEAL3Bhc3RlbDIzLzEAL2RhcmsyMy8xAC9zZXQxMy8xAC9wYXN0ZWwxMy8xAC9wYWlyZWQxMi8xAC9zZXQzMTIvMQAvcmRneTExLzEAL3JkeWxidTExLzEAL3JkYnUxMS8xAC9wdW9yMTEvMQAvcHJnbjExLzEAL3JkeWxnbjExLzEAL3NwZWN0cmFsMTEvMQAvcGl5ZzExLzEAL2JyYmcxMS8xAC9wYWlyZWQxMS8xAC9zZXQzMTEvMQAvcmRneTEwLzEAL3JkeWxidTEwLzEAL3JkYnUxMC8xAC9wdW9yMTAvMQAvcHJnbjEwLzEAL3JkeWxnbjEwLzEAL3NwZWN0cmFsMTAvMQAvcGl5ZzEwLzEAL2JyYmcxMC8xAC9wYWlyZWQxMC8xAC9zZXQzMTAvMQBsYXRpbi0xAElTT184ODU5LTEASVNPODg1OS0xAElTTy04ODU5LTEAaSA+PSAxAHEtPm4gPT0gMQBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0ucGFydGl0aW9uW2ldID09IDAgfHwgcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLnBhcnRpdGlvbltpXSA9PSAxAGJ6LnNpemUgJSAzID09IDEAZWRnZV9saXN0X3NpemUoJmN0eC0+VHJlZV9lZGdlKSA9PSBjdHgtPk5fbm9kZXMgLSAxAG5vZGVfc2V0X3NpemUoZy0+bl9pZCkgPT0gb3NpemUgKyAxAG4tPmNvdW50ICsgKCpubiktPmNvdW50ID09IE5PREVDQVJEICsgMQBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0uY291bnRbMF0gKyBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0uY291bnRbMV0gPT0gTk9ERUNBUkQgKyAxAGdyZXkwAGdyYXkwAGpzb24wACNmMGYwZjAAI2UwZTBlMAB4Yi0+dS5zLmxvY2F0ZWQgPiBBR1hCVUZfSU5MSU5FX1NJWkVfMABcMABUMABceEYwAFx4RTAAXHhEMABceEMwAFx4QjAAXHhBMABncmV5OTAAZ3JheTkwAFx4OTAAZ3JleTgwAGdyYXk4MABceDgwACM4MDgwODAAZ3JleTcwAGdyYXk3MABjY3dyb3QgPT0gMCB8fCBjY3dyb3QgPT0gOTAgfHwgY2N3cm90ID09IDE4MCB8fCBjY3dyb3QgPT0gMjcwAGN3cm90ID09IDAgfHwgY3dyb3QgPT0gOTAgfHwgY3dyb3QgPT0gMTgwIHx8IGN3cm90ID09IDI3MABncmV5NjAAZ3JheTYwAGdyZXk1MABncmF5NTAAZ3JleTQwAGdyYXk0MAByLndpZHRoKCk8MWU0MABncmV5MzAAZ3JheTMwACMzMDMwMzAAZ3JleTIwAGdyYXkyMAAyMDI1MDgwOC4yMzIwAGdyZXkxMABncmF5MTAAXHgxMAAjMTAxMDEwAC9wYWlyZWQxMi8xMAAvc2V0MzEyLzEwAC9yZGd5MTEvMTAAL3JkeWxidTExLzEwAC9yZGJ1MTEvMTAAL3B1b3IxMS8xMAAvcHJnbjExLzEwAC9yZHlsZ24xMS8xMAAvc3BlY3RyYWwxMS8xMAAvcGl5ZzExLzEwAC9icmJnMTEvMTAAL3BhaXJlZDExLzEwAC9zZXQzMTEvMTAAL3JkZ3kxMC8xMAAvcmR5bGJ1MTAvMTAAL3JkYnUxMC8xMAAvcHVvcjEwLzEwAC9wcmduMTAvMTAAL3JkeWxnbjEwLzEwAC9zcGVjdHJhbDEwLzEwAC9waXlnMTAvMTAAL2JyYmcxMC8xMAAvcGFpcmVkMTAvMTAAL3NldDMxMC8xMAAxMjAwAGdyZXkxMDAAZ3JheTEwMABJU08tSVItMTAwADEwMDAwACUhUFMtQWRvYmUtMy4wAG56ID4gMABsaXN0LT5jYXBhY2l0eSA+IDAAZGlzdCA+IDAAcGF0aGNvdW50ID4gMAB3Z3QgPiAwAG5zaXRlcyA+IDAAc2lkZXMgPiAwAHJ2ID09IDAgfHwgKE5EX29yZGVyKHJ2KS1ORF9vcmRlcih2KSkqZGlyID4gMABsZW4gPiAwAHF0MS0+biA+IDAgJiYgcXQyLT5uID4gMAB3aWR0aCA+IDAAbGlzdC0+c2l6ZSA+IDAAZGljdC0+c2l6ZSA+IDAAc3BsLT5zaXplID4gMABzZWxmLT5zaXplID4gMABiei5zaXplID4gMABib3VuZCA+IDAAZ3JhcGgtPndlaWdodHNbeF0gPiAwAGdyYXBoLT53ZWlnaHRzW25fZWRnZXNdID4gMABtID4gMCAmJiBuID4gMCAmJiBueiA+PSAwAHQgPj0gMABubm9kZXMgPj0gMABuX29icyA+PSAwAG4gPj0gMABuLT5sZXZlbCA+PSAwAHRvdGFsID49IDAAb3JpZ2luYWwgPj0gMABNYXhyYW5rID49IDAAUGFjayA+PSAwAGlpIDwgMTw8ZGltICYmIGlpID49IDAAd2lkdGggPj0gMABqZGlhZyA+PSAwAGlkaWFnID49IDAAZCA+PSAwAHJ0cC0+c3BsaXQuUGFydGl0aW9uc1swXS5jb3VudFswXSA+PSAwICYmIHJ0cC0+c3BsaXQuUGFydGl0aW9uc1swXS5jb3VudFsxXSA+PSAwAFYgPj0gMABhZ25ub2RlcyhncmFwaCkgPj0gMABhZ25ub2RlcyhnKSA+PSAwAEVEX3RyZWVfaW5kZXgoZSkgPj0gMABFRF9jb3VudChlKSA+PSAwAG9ianAxLT5zei54ID09IDAgJiYgb2JqcDEtPnN6LnkgPT0gMABjX2NudCA9PSAwAHJhbmtfcmVzdWx0ID09IDAAZ2V0dGltZW9mZGF5X3JlcyA9PSAwAGogPT0gMABORF9pbihyaWdodCkuc2l6ZSArIE5EX291dChyaWdodCkuc2l6ZSA9PSAwAGEuc2hhcGUgPT0gMCB8fCBiLnNoYXBlID09IDAAZHRzaXplKGRlc3QpID09IDAAZHRzaXplKGctPm5fc2VxKSA9PSAwAGR0c2l6ZShnLT5nX3NlcSkgPT0gMABkdHNpemUoZy0+ZV9zZXEpID09IDAAR0RfbWlucmFuayhnKSA9PSAwAGR0c2l6ZShnLT5nX2lkKSA9PSAwAGR0c2l6ZShnLT5lX2lkKSA9PSAwAGNvc3ggIT0gMCB8fCBzaW54ICE9IDAAbWVtY21wKCZzdHlsZSwgJihncmFwaHZpel9wb2x5Z29uX3N0eWxlX3QpezB9LCBzaXplb2Yoc3R5bGUpKSAhPSAwAHJlc3VsdCA9PSAoaW50KShzaXplIC0gMSkgfHwgcmVzdWx0IDwgMABtYXNrW2lpXSA8IDAATkRfaGVhcGluZGV4KHYpIDwgMABcLwBYMTEvAGd2UmVuZGVySm9icyAlczogJS4yZiBzZWNzLgAlLipzLgBzcGVjaWZpZWQgcm9vdCBub2RlICIlcyIgd2FzIG5vdCBmb3VuZC4AR3JhcGggJXMgaGFzIGFycmF5IHBhY2tpbmcgd2l0aCB1c2VyIHZhbHVlcyBidXQgbm8gInNvcnR2IiBhdHRyaWJ1dGVzIGFyZSBkZWZpbmVkLgAxLgAtMC4AJSFQUy1BZG9iZS0AJVBERi0APCEtLQAgLAArACoAc3RyZXEoYXB0ci0+dS5uYW1lLEtleSkAIWlzX2V4YWN0bHlfZXF1YWwoUi54LCBRLngpIHx8ICFpc19leGFjdGx5X2VxdWFsKFIueSwgUS55KQBORF9vcmRlcih2KSA8IE5EX29yZGVyKHcpAHUgPT0gVUZfZmluZCh1KQAhcG9pbnRzX2lzX2VtcHR5KHBsaXN0KQAhb2JqbGlzdF9pc19lbXB0eShsaXN0KQAhc2ZvbnRfaXNfZW1wdHkobGlzdCkAIXJvd3NfaXNfZW1wdHkobGlzdCkAIXRzdHNfaXNfZW1wdHkobGlzdCkAIXBvaW50c19pc19lbXB0eShsaXN0KQAhY29sb3JzZWdzX2lzX2VtcHR5KGxpc3QpACFkZnNfc3RhY2tfaXNfZW1wdHkobGlzdCkAIXBic19zaXplX2lzX2VtcHR5KGxpc3QpAG9iamxpc3RfaXNfY29udGlndW91cyhsaXN0KQBkZWdsaXN0X2lzX2NvbnRpZ3VvdXMobGlzdCkAbm9kZWxpc3RfaXNfY29udGlndW91cyhsaXN0KQBjbGlzdF9pc19jb250aWd1b3VzKGxpc3QpAG5vZGVfbGlzdF9pc19jb250aWd1b3VzKGxpc3QpAGVkZ2Vfc2V0X2lzX2NvbnRpZ3VvdXMobGlzdCkAcG9pbnRzX2lzX2NvbnRpZ3VvdXMobGlzdCkAc3Ryc19pc19jb250aWd1b3VzKGxpc3QpAEFncmFwaHNfaXNfY29udGlndW91cyhsaXN0KQBib3hlc19pc19jb250aWd1b3VzKGxpc3QpAGxheWVyX25hbWVzX2lzX2NvbnRpZ3VvdXMobGlzdCkAc25vZGVzX2lzX2NvbnRpZ3VvdXMobGlzdCkAdmFyYXJyX2lzX2NvbnRpZ3VvdXMobGlzdCkAYmV6aWVyX3BhdGhfaXNfY29udGlndW91cyhsaXN0KQBwYnNfc2l6ZV9pc19jb250aWd1b3VzKGxpc3QpAG9uZSA8PSBub2RlbGlzdF9zaXplKGxpc3QpAG5wIDwgbm9kZWxpc3Rfc2l6ZShsaXN0KQBzdGQ6OmlzX2hlYXAoaGVhcC5iZWdpbigpLCBoZWFwLmVuZCgpLCBndCkAIShxLT5xdHMpACFpbnRzX2lzX2VtcHR5KCZsZWF2ZXMpAG9uX2hlYXAocikAbm9kZV9zZXRfc2l6ZShnLT5uX2lkKSA9PSAoc2l6ZV90KWR0c2l6ZShnLT5uX3NlcSkATkRfcmFuayhmcm9tKSA8IE5EX3JhbmsodG8pAG5vdCB3ZWxsLWZvcm1lZCAoaW52YWxpZCB0b2tlbikAYWdzdWJyZXAoZyxuKQBuICE9IE5EX25leHQobikAZmluZF9mYXN0X25vZGUoZywgbikAKG51bGwpACghamNuKSAmJiAoIXZhbCkAIShxLT5sKQBzeW0tPmlkID49IDAgJiYgc3ltLT5pZCA8IHRvcGRpY3RzaXplKG9iaikAbW92ZSB0byAoJS4wZiwgJS4wZikAOyBzcGxpbmUgdG8gKCUuMGYsICUuMGYpADsgbGluZSB0byAoJS4wZiwgJS4wZikAU3BhcnNlTWF0cml4X2lzX3N5bW1ldHJpYyhBLCB0cnVlKQB2YWx1ZSAmJiBzdHJsZW4odmFsdWUpAFNwYXJzZU1hdHJpeF9pc19zeW1tZXRyaWMoQSwgZmFsc2UpACF1c2Vfc3RhZ2UgfHwgc2l6ZSA8PSBzaXplb2Yoc3RhZ2UpAEVEX2xhYmVsKGZlKQAhVFJFRV9FREdFKGUpACFjb25zdHJhaW5pbmdfZmxhdF9lZGdlKGcsIGUpAG5vZGVfc2V0X2lzX2VtcHR5KGctPm5faWQpAHJfJWQpAGxfJWQpAChsaWIpACFTcGFyc2VNYXRyaXhfaGFzX2RpYWdvbmFsKEEpACBzY2FubmluZyBhIEhUTUwgc3RyaW5nIChtaXNzaW5nICc+Jz8gYmFkIG5lc3Rpbmc/IGxvbmdlciB0aGFuICVkPykAIHNjYW5uaW5nIGEgcXVvdGVkIHN0cmluZyAobWlzc2luZyBlbmRxdW90ZT8gbG9uZ2VyIHRoYW4gJWQ/KQAgc2Nhbm5pbmcgYSAvKi4uLiovIGNvbW1lbnQgKG1pc3NpbmcgJyovPyBsb25nZXIgdGhhbiAlZD8pAGZhbGxiYWNrKDQpAG9uX2hlYXAocjApIHx8IG9uX2hlYXAocjEpAGFndGFpbChlKSA9PSBVRl9maW5kKGFndGFpbChlKSkAYWdoZWFkKGUpID09IFVGX2ZpbmQoYWdoZWFkKGUpKQBvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXlfZ2V0X25leHRfYnVmZmVyKCkAb3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X2NyZWF0ZV9idWZmZXIoKQBvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXllbnN1cmVfYnVmZmVyX3N0YWNrKCkAc3RyZXEobW9kZSwgInIiKSB8fCBzdHJlcShtb2RlLCAicmIiKSB8fCBzdHJlcShtb2RlLCAidyIpIHx8IHN0cmVxKG1vZGUsICJ3YiIpAHBuYW1lICE9IE5VTEwgJiYgIXN0cmVxKHBuYW1lLCAiIikAc2V0bGluZXdpZHRoKAApIHJvdGF0ZSglZCkgdHJhbnNsYXRlKAAgdHJhbnNmb3JtPSJzY2FsZSgATk9UQVRJT04oACAoACBuZWFyICclcycAJWxmLCVsZiwlbGYsJyVbXiddJwBpc2RpZ2l0KChpbnQpZG90cFsxXSkgJiYgaXNkaWdpdCgoaW50KWRvdHBbMl0pICYmIGRvdHBbM10gPT0gJ1wwJwAmACUAJAB1cmwoIwA8dGV4dFBhdGggeGxpbms6aHJlZj0iIwA8YXJlYSBzaGFwZT0icG9seSIAIGZpbGw9IiMlMDJ4JTAyeCUwMngiAChzZXEgJiBTRVFfTUFTSykgPT0gc2VxICYmICJzZXF1ZW5jZSBJRCBvdmVyZmxvdyIAZ3Zfc29ydF9jb21wYXIgPT0gTlVMTCAmJiBndl9zb3J0X2FyZyA9PSBOVUxMICYmICJ1bnN1cHBvcnRlZCByZWN1cnNpdmUgY2FsbCB0byBndl9zb3J0IgBndl9zb3J0X2NvbXBhciAhPSBOVUxMICYmICJubyBjb21wYXJhdG9yIHNldCBpbiBndl9zb3J0IgBvcC0+b3AudS5wb2x5Z29uLmNudCA8PSBJTlRfTUFYICYmICJwb2x5Z29uIGNvdW50IGV4Y2VlZHMgZ3ZyZW5kZXJfcG9seWdvbiBzdXBwb3J0IgAgdGV4dC1hbmNob3I9InN0YXJ0IgBwLnggIT0gYSAmJiAiY2Fubm90IGhhbmRsZSBlbGxpcHNlIHRhbmdlbnQgc2xvcGUgaW4gaG9yaXpvbnRhbCBleHRyZW1lIHBvaW50IgBmdWxsX2xlbmd0aF93aXRob3V0X3NoYWZ0ID4gMCAmJiAibm9uLXBvc2l0aXZlIGZ1bGwgbGVuZ3RoIHdpdGhvdXQgc2hhZnQiADxhcmVhIHNoYXBlPSJyZWN0IgBzaXplID4gMCAmJiAiYXR0ZW1wdCB0byBhbGxvY2F0ZSBhcnJheSBvZiAwLXNpemVkIGVsZW1lbnRzIgBpbmRleCA8IHNlbGYtPnNpemVfYml0cyAmJiAib3V0IG9mIGJvdW5kcyBhY2Nlc3MiAGluZGV4IDwgc2VsZi5zaXplX2JpdHMgJiYgIm91dCBvZiBib3VuZHMgYWNjZXNzIgAqczEgIT0gKnMyICYmICJkdXBsaWNhdGUgc2VwYXJhdG9yIGNoYXJhY3RlcnMiAEdEX21pbnJhbmsoc3ViZykgPD0gR0RfbWF4cmFuayhzdWJnKSAmJiAiY29ycnVwdGVkIHJhbmsgYm91bmRzIgBpbmRleCA8IGxpc3QtPnNpemUgJiYgImluZGV4IG91dCBvZiBib3VuZHMiAGluZGV4IDwgbm9kZWxpc3Rfc2l6ZShsaXN0KSAmJiAiaW5kZXggb3V0IG9mIGJvdW5kcyIAaW5kZXggPCBlZGdlX2xpc3Rfc2l6ZShsaXN0KSAmJiAiaW5kZXggb3V0IG9mIGJvdW5kcyIAaW5kZXggPCB0cmFwc19zaXplKGxpc3QpICYmICJpbmRleCBvdXQgb2YgYm91bmRzIgBpbmRleCA8IG5vZGVzX3NpemUobGlzdCkgJiYgImluZGV4IG91dCBvZiBib3VuZHMiACh1aW50cHRyX3QpcyAlIDIgPT0gMCAmJiAiaGVhcCBwb2ludGVyIHdpdGggbG93IGJpdCBzZXQgd2lsbCBjb2xsaWRlIHdpdGggYW5vbnltb3VzIElEcyIAICgrJTZsZCBieXRlcyAlc3wldSwgeG1scGFyc2UuYzolZCkgJSpzIgAgZm9udC1mYW1pbHk9IiVzIgAgZm9udC13ZWlnaHQ9IiVzIgAgZmlsbD0iJXMiACBmb250LXN0cmV0Y2g9IiVzIgAgZm9udC1zdHlsZT0iJXMiAGJhZCBlZGdlIGxlbiAiJXMiACBiYXNlbGluZS1zaGlmdD0ic3VwZXIiAGFneGJsZW4oeGIpIDw9IHNpemVvZih4Yi0+dS5zdG9yZSkgJiYgImFneGJ1ZiBjb3JydXB0aW9uIgBjZWxsLnJvdyA8IHRhYmxlLT5yb3dfY291bnQgJiYgIm91dCBvZiByYW5nZSBjZWxsIgBjZWxsLmNvbCA8IHRhYmxlLT5jb2x1bW5fY291bnQgJiYgIm91dCBvZiByYW5nZSBjZWxsIgAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIAZnVsbF9sZW5ndGggPiAwICYmICJub24tcG9zaXRpdmUgZnVsbCBsZW5ndGgiAGZ1bGxfYmFzZV93aWR0aCA+IDAgJiYgIm5vbi1wb3NpdGl2ZSBmdWxsIGJhc2Ugd2lkdGgiAG5vbWluYWxfYmFzZV93aWR0aCA+IDAgJiYgIm5vbi1wb3NpdGl2ZSBub21pbmFsIGJhc2Ugd2lkdGgiACIgd2lkdGg9IiVncHgiIGhlaWdodD0iJWdweCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4gbWVldCIgeD0iJWciIHk9IiVnIgAiIHdpZHRoPSIlZ3B4IiBoZWlnaHQ9IiVncHgiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiIHg9IiVnIiB5PSIlZyIAIGZvbnQtc2l6ZT0iJS4yZiIAIGZpbGwtb3BhY2l0eT0iJWYiADx0ZXh0IHhtbDpzcGFjZT0icHJlc2VydmUiAGlzZmluaXRlKG0pICYmICJlbGxpcHNlIHRhbmdlbnQgc2xvcGUgaXMgaW5maW5pdGUiACh4Yi0+dS5zLmxvY2F0ZWQgPT0gQUdYQlVGX09OX0hFQVAgfHwgeGItPnUucy5sb2NhdGVkIDw9IHNpemVvZih4Yi0+dS5zdG9yZSkpICYmICJjb3JydXB0ZWQgYWd4YnVmIHR5cGUiACB0ZXh0LWFuY2hvcj0ibWlkZGxlIgA8YXJlYSBzaGFwZT0iY2lyY2xlIgBjZWxsLT5yb3cgKyBjZWxsLT5yb3dzcGFuIDw9IHRhYmxlLT5yb3dfY291bnQgJiYgImNlbGwgc3BhbnMgaGlnaGVyIHRoYW4gY29udGFpbmluZyB0YWJsZSIAY2VsbC5yb3cgKyBjZWxsLnJvd3NwYW4gPD0gdGFibGUtPnJvd19jb3VudCAmJiAiY2VsbCBzcGFucyBoaWdoZXIgdGhhbiBjb250YWluaW5nIHRhYmxlIgBjZWxsLT5jb2wgKyBjZWxsLT5jb2xzcGFuIDw9IHRhYmxlLT5jb2x1bW5fY291bnQgJiYgImNlbGwgc3BhbnMgd2lkZXIgdGhhbiBjb250YWluaW5nIHRhYmxlIgBjZWxsLmNvbCArIGNlbGwuY29sc3BhbiA8PSB0YWJsZS0+Y29sdW1uX2NvdW50ICYmICJjZWxsIHNwYW5zIHdpZGVyIHRoYW4gY29udGFpbmluZyB0YWJsZSIAb2xkX25tZW1iIDwgU0laRV9NQVggLyBzaXplICYmICJjbGFpbWVkIHByZXZpb3VzIGV4dGVudCBpcyB0b28gbGFyZ2UiAHRoZXRhID49IDAgJiYgdGhldGEgPD0gTV9QSSAmJiAidGhldGEgb3V0IG9mIHJhbmdlIgB0YWJsZS0+aGVpZ2h0cyA9PSBOVUxMICYmICJ0YWJsZSBoZWlnaHRzIGNvbXB1dGVkIHR3aWNlIgB0YWJsZS0+d2lkdGhzID09IE5VTEwgJiYgInRhYmxlIHdpZHRocyBjb21wdXRlZCB0d2ljZSIAIHRleHQtYW5jaG9yPSJlbmQiACBmb250LXdlaWdodD0iYm9sZCIAIGZvbnQtc3R5bGU9Iml0YWxpYyIAIGJhc2VsaW5lLXNoaWZ0PSJzdWIiAFwiAGxsZW4gPD0gSU5UX01BWCAmJiAiWE1MIHRva2VuIHRvbyBsb25nIGZvciBleHBhdCBBUEkiACIgcnk9IgBfcCIgc3RhcnRPZmZzZXQ9IjUwJSI+PHRzcGFuIHg9IjAiIGR5PSIAIiBjeT0iACIgeT0iACIgcng9IgAgY3g9IgAgeD0iACB0YXJnZXQ9IgAgcG9pbnRzPSIAIGNvb3Jkcz0iACB0ZXh0LWRlY29yYXRpb249IgAgZmlsbD0iACIgc3Ryb2tlLXdpZHRoPSIAPGltYWdlIHhsaW5rOmhyZWY9IgA8P3htbC1zdHlsZXNoZWV0IGhyZWY9IgAiIG5hbWU9IgAgeGxpbms6dGl0bGU9IgAgdGl0bGU9IgAiIHN0cm9rZT0iADxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9IgA8ZGVmcz4KPHJhZGlh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CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2NhbGUgPDEuMDAsIDEuMDAsIDEuNTA+ICogMi41MAogICAgICAgICAgICB0cmFuc2xhdGUgPDAuMDAsIDAuMDAsIDAuMDA+CiAgICAgICAgfQogICAgICAgIGZpbmlzaCB7IGFtYmllbnQgMSBkaWZmdXNlIDAgfQogICAgfQogICAgc2NhbGUgMTAwMDAKfQovL21pc3QKZm9nIHsgZm9nX3R5cGUgMgogICAgZGlzdGFuY2UgNTAKICAgIGNvbG9yIHJnYiA8MS4wMCwgMS4wMCwgMS4wMD4gKiAwLjc1CiAgICBmb2dfb2Zmc2V0IDAuMTAKICAgIGZvZ19hbHQgMS41MAogICAgdHVyYnVsZW5jZSAxLjc1Cn0KLy9nbmQKcGxhbmUgeyA8MC4wMCwgMS4wMCwgMC4wMD4sIDAKICAgIHRleHR1cmUgewogICAgICAgIHBpZ21lbnR7IGNvbG9yIHJnYiA8MC4yNSwgMC40NSwgMC4wMD4gfQogICAgICAgIG5vcm1hbCB7IGJ1bXBzIDAuNzUgc2NhbGUgMC4wMSB9CiAgICAgICAgZmluaXNoIHsgcGhvbmcgMC4xMCB9CiAgICB9Cn0KAGNhbWVyYSB7IGxvY2F0aW9uIDwlLjNmICwgJS4zZiAsIC01MDAuMDAwPgogICAgICAgICBsb29rX2F0ICA8JS4zZiAsICUuM2YgLCAwLjAwMD4KICAgICAgICAgcmlnaHQgeCAqIGltYWdlX3dpZHRoIC8gaW1hZ2VfaGVpZ2h0CiAgICAgICAgIGFuZ2xlICUuM2YKfQoAICAgIG1hdGVyaWFsIE1hdGVyaWFsIHsKAFNoYXBlIHsKACAgYXBwZWFyYW5jZSBBcHBlYXJhbmNlIHsKAC91c2VyX3NoYXBlXyVkIHsKAGdyYXBoIEcgewoAYXJyb3doZWFkID0gNyAlcyBub3QgdXNlZCBieSBncmFwaHZpegoAYm94cmFkID0gMCAlcyBubyByb3VuZGVkIGNvcm5lcnMgaW4gZ3JhcGh2aXoKAG91dCBvZiBtZW1vcnkKACVzOiBjb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5CgBHcmFwaHZpeiBidWlsdCB3aXRob3V0IGFueSB0cmlhbmd1bGF0aW9uIGxpYnJhcnkKAHJlbW92ZV9vdmVybGFwOiBHcmFwaHZpeiBub3QgYnVpbHQgd2l0aCB0cmlhbmd1bGF0aW9uIGxpYnJhcnkKACVzIGZpbGwgaGFzIG5vIG1lYW5pbmcgaW4gRFdCIDIsIGdwaWMgY2FuIHVzZSBmaWxsIG9yIGZpbGxlZCwgMTB0aCBFZGl0aW9uIHVzZXMgZmlsbCBvbmx5CgBib3hyYWQ9Mi4wICVzIHdpbGwgYmUgcmVzZXQgdG8gMC4wIGJ5IGdwaWMgb25seQoAJWQgJWQgIyUwMnglMDJ4JTAyeAoASGVhcCBvdmVyZmxvdwoAdGV4dCB7CiAgICB0dGYgIiVzIiwKICAgICIlcyIsICUuM2YsICUuM2YKICAgICAgICBub19zaGFkb3cKACVkICVkICVkICUuMGYgJWQgJWQgJWQgJWQgJWQgJS4xZiAlZCAlZCAlZCAlZCAlZCAlenUKAHRvdGFsIGFkZGVkIHNvIGZhciA9ICV6dQoAcm9vdCA9ICVzIG1heCBzdGVwcyB0byByb290ID0gJWxsdQoALnBzICUuMGYqXG4oU0Z1LyUuMGZ1CgAgIG1hcmdpbiAldQoATnVtYmVyIG9mIGl0ZXJhdGlvbnMgPSAldQoAb3ZlcmxhcCBbJXVdIDogJXUKACAlcyBhbGlnbmVkdGV4dAoAbGF5ZXJzIG5vdCBzdXBwb3J0ZWQgaW4gJXMgb3V0cHV0CgBhZGRfdHJlZV9lZGdlOiBlbXB0eSBvdXRlZGdlIGxpc3QKAGFkZF90cmVlX2VkZ2U6IGVtcHR5IGluZWRnZSBsaXN0CgBObyBsaWJ6IHN1cHBvcnQKACVzIC5QUyB3L28gYXJncyBjYXVzZXMgR05VIHBpYyB0byBzY2FsZSBkcmF3aW5nIHRvIGZpdCA4LjV4MTEgcGFwZXI7IERXQiBkb2VzIG5vdAoAJXMgR05VIHBpYyBzdXBwb3J0cyBhIGxpbmV0aGljayB2YXJpYWJsZSB0byBzZXQgbGluZSB0aGlja25lc3M7IERXQiBhbmQgMTB0aCBFZC4gZG8gbm90CgAlcyBHTlUgcGljIHN1cHBvcnRzIGEgYm94cmFkIHZhcmlhYmxlIHRvIGRyYXcgYm94ZXMgd2l0aCByb3VuZGVkIGNvcm5lcnM7IERXQiBhbmQgMTB0aCBFZC4gZG8gbm90CgAgLyVzIHNldF9mb250CgAlcyUuKnMgaXMgbm90IGEgdHJvZmYgZm9udAoAY2VsbCBzaXplIHRvbyBzbWFsbCBmb3IgY29udGVudAoAdGFibGUgc2l6ZSB0b28gc21hbGwgZm9yIGNvbnRlbnQKACUlRW5kRG9jdW1lbnQKAFVuY2xvc2VkIGNvbW1lbnQKAExhYmVsIGNsb3NlZCBiZWZvcmUgZW5kIG9mIEhUTUwgZWxlbWVudAoAUG9ydHJhaXQKAGZpeGVkIGNlbGwgc2l6ZSB3aXRoIHVuc3BlY2lmaWVkIHdpZHRoIG9yIGhlaWdodAoAZml4ZWQgdGFibGUgc2l6ZSB3aXRoIHVuc3BlY2lmaWVkIHdpZHRoIG9yIGhlaWdodAoAcG9zIGF0dHJpYnV0ZSBmb3IgZWRnZSAoJXMsJXMpIGRvZXNuJ3QgaGF2ZSAzbisxIHBvaW50cwoAICBnZW5lcmF0ZWQgJWQgY29uc3RyYWludHMKAHNwbGluZXMgYW5kIGNsdXN0ZXIgZWRnZXMgbm90IHN1cHBvcnRlZCAtIHVzaW5nIGxpbmUgc2VnbWVudHMKAG9iamVjdHMKAFdhcm5pbmc6IG5vZGUgJXMsIHBvc2l0aW9uICVzLCBleHBlY3RlZCB0d28gZmxvYXRzCgBmb250IG5hbWUgJXMgY29udGFpbnMgY2hhcmFjdGVycyB0aGF0IG1heSBub3QgYmUgYWNjZXB0ZWQgYnkgc29tZSBQUyB2aWV3ZXJzCgBmb250IG5hbWUgJXMgaXMgbG9uZ2VyIHRoYW4gMjkgY2hhcmFjdGVycyB3aGljaCBtYXkgYmUgcmVqZWN0ZWQgYnkgc29tZSBQUyB2aWV3ZXJzCgBjYW5ub3QgYWxsb2NhdGUgcHMKAHNjYWxlPTEuMCAlcyByZXF1aXJlZCBmb3IgY29tcGFyaXNvbnMKAFNldHRpbmcgaW5pdGlhbCBwb3NpdGlvbnMKACVzIERXQiAyIGNvbXBhdGliaWxpdHkgZGVmaW5pdGlvbnMKAGFycmF5IHBhY2tpbmc6ICVzICV6dSByb3dzICV6dSBjb2x1bW5zCgBzeW50YXggYW1iaWd1aXR5IC0gYmFkbHkgZGVsaW1pdGVkIG51bWJlciAnJXMnIGluIGxpbmUgJWQgb2YgJXMgc3BsaXRzIGludG8gdHdvIHRva2VucwoAZWRnZSBsYWJlbHMgd2l0aCBzcGxpbmVzPWN1cnZlZCBub3Qgc3VwcG9ydGVkIGluIGRvdCAtIHVzZSB4bGFiZWxzCgBmbGF0IGVkZ2UgYmV0d2VlbiBhZGphY2VudCBub2RlcyBvbmUgb2Ygd2hpY2ggaGFzIGEgcmVjb3JkIHNoYXBlIC0gcmVwbGFjZSByZWNvcmRzIHdpdGggSFRNTC1saWtlIGxhYmVscwoAb3V0IG9mIG1lbW9yeSB3aGVuIHRyeWluZyB0byBhbGxvY2F0ZSAlenUgYnl0ZXMKAGludGVnZXIgb3ZlcmZsb3cgd2hlbiB0cnlpbmcgdG8gYWxsb2NhdGUgJXp1ICogJXp1IGJ5dGVzCgB1cGRhdGU6IG1pc21hdGNoZWQgbGNhIGluIHRyZWV1cGRhdGVzCgBncmFwaCAlcywgY29vcmQgJXMsIGV4cGVjdGVkIGZvdXIgZG91YmxlcwoAbm9kZSAlcywgcG9zaXRpb24gJXMsIGV4cGVjdGVkIHR3byBkb3VibGVzCgBGb3VuZCAlZCBEaUctQ29MYSBib3VuZGFyaWVzCgBJbmNoZXMKACglNHp1KSAlN3p1IG5vZGVzICU3enUgZWRnZXMKAGNvbXBvdW5kRWRnZXM6IGNvdWxkIG5vdCBjb25zdHJ1Y3Qgb2JzdGFjbGVzIC0gZmFsbGluZyBiYWNrIHRvIHN0cmFpZ2h0IGxpbmUgZWRnZXMKAHRoZSBib3VuZGluZyBib3hlcyBvZiBzb21lIG5vZGVzIHRvdWNoIC0gZmFsbGluZyBiYWNrIHRvIHN0cmFpZ2h0IGxpbmUgZWRnZXMKAGNvbXBvdW5kRWRnZXM6IG5vZGVzIHRvdWNoIC0gZmFsbGluZyBiYWNrIHRvIHN0cmFpZ2h0IGxpbmUgZWRnZXMKAHNvbWUgbm9kZXMgd2l0aCBtYXJnaW4gKCUuMDJmLCUuMDJmKSB0b3VjaCAtIGZhbGxpbmcgYmFjayB0byBzdHJhaWdodCBsaW5lIGVkZ2VzCgBtZXJnZTI6IGdyYXBoICVzLCByYW5rICVkIGhhcyBvbmx5ICVkIDwgJWQgbm9kZXMKAFNjYW5uaW5nIGdyYXBoICVzLCAlZCBub2RlcwoAV2FybmluZzogbm8gaGFyZC1jb2RlZCBtZXRyaWNzIGZvciAnJXMnLiAgRmFsbGluZyBiYWNrIHRvICdUaW1lcycgbWV0cmljcwoAaW4gZWRnZSAlcyVzJXMKAFVzaW5nICVzOiAlczolcwoARm9ybWF0OiAiJXMiIG5vdCByZWNvZ25pemVkLiBVc2Ugb25lIG9mOiVzCgBMYXlvdXQgdHlwZTogIiVzIiBub3QgcmVjb2duaXplZC4gVXNlIG9uZSBvZjolcwoAbGF5b3V0ICVzCgAuZnQgJXMKAGJhZCBsYWJlbCBmb3JtYXQgJXMKAGluIHJvdXRlc3BsaW5lcywgZWRnZSBpcyBhIGxvb3AgYXQgJXMKACAgICAgICAlN2Qgbm9kZXMgJTdkIGVkZ2VzICU3enUgY29tcG9uZW50cyAlcwoAaW4gbGFiZWwgb2YgZWRnZSAlcyAlcyAlcwoAICBFZGdlICVzICVzICVzCgBvcnRobyAlcyAlcwoAcG9seWxpbmUgJXMgJXMKAHNwbGluZSAlcyAlcwoAcmVjdGFuZ2xlICglLjBmLCUuMGYpICglLjBmLCUuMGYpICVzICVzCgBpbiBjbHVzdGVyICVzCgAlcyB3YXMgYWxyZWFkeSBpbiBhIHJhbmtzZXQsIGRlbGV0ZWQgZnJvbSBjbHVzdGVyICVzCgAlcyAtPiAlczogdGFpbCBub3QgaW5zaWRlIHRhaWwgY2x1c3RlciAlcwoAJXMgLT4gJXM6IGhlYWQgaXMgaW5zaWRlIHRhaWwgY2x1c3RlciAlcwoAaGVhZCBjbHVzdGVyICVzIGluc2lkZSB0YWlsIGNsdXN0ZXIgJXMKAGhlYWQgbm9kZSAlcyBpbnNpZGUgdGFpbCBjbHVzdGVyICVzCgAlcyAtPiAlczogaGVhZCBub3QgaW5zaWRlIGhlYWQgY2x1c3RlciAlcwoAJXMgLT4gJXM6IHRhaWwgaXMgaW5zaWRlIGhlYWQgY2x1c3RlciAlcwoAdGFpbCBjbHVzdGVyICVzIGluc2lkZSBoZWFkIGNsdXN0ZXIgJXMKAHRhaWwgbm9kZSAlcyBpbnNpZGUgaGVhZCBjbHVzdGVyICVzCgBVbmhhbmRsZWQgYWRqdXN0IG9wdGlvbiAlcwoAcmVwb3NpdGlvbiAlcwoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCB4bGFiZWwgJXMKAG5vIHBvc2l0aW9uIGZvciBlZGdlIHdpdGggdGFpbCBsYWJlbCAlcwoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCBsYWJlbCAlcwoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCBoZWFkIGxhYmVsICVzCgAvLyoqKiBiZWdpbl9ncmFwaCAlcwoATWF4LiBpdGVyYXRpb25zICglZCkgcmVhY2hlZCBvbiBncmFwaCAlcwoAQ291bGQgbm90IHBhcnNlICJfYmFja2dyb3VuZCIgYXR0cmlidXRlIGluIGdyYXBoICVzCgBpbiBsYWJlbCBvZiBncmFwaCAlcwoAQ3JlYXRpbmcgZWRnZXMgdXNpbmcgJXMKAEFkanVzdGluZyAlcyB1c2luZyAlcwoAJXMgd2hpbGUgb3BlbmluZyAlcwoAZGVyaXZlIGdyYXBoIF9kZ18lZCBvZiAlcwoAIF0gICV6dSB0cnVlICVzCgBdICAlZCB0cnVlICVzCgAgXSAgJXp1IGZhbHNlICVzCgBdICAlZCBmYWxzZSAlcwoAbWFrZVBvbHk6IHVua25vd24gc2hhcGUgdHlwZSAlcwoAbWFrZUFkZFBvbHk6IHVua25vd24gc2hhcGUgdHlwZSAlcwoAdXNpbmcgJXMgZm9yIHVua25vd24gc2hhcGUgJXMKACAgb2N0cmVlIHNjaGVtZSAlcwoAY2FuJ3Qgb3BlbiBsaWJyYXJ5IGZpbGUgJXMKAGNhbid0IGZpbmQgbGlicmFyeSBmaWxlICVzCgBCb3VuZGluZ0JveCBub3QgZm91bmQgaW4gZXBzZiBmaWxlICVzCgBjb3VsZG4ndCBvcGVuIGVwc2YgZmlsZSAlcwoAY291bGRuJ3QgcmVhZCBmcm9tIGVwc2YgZmlsZSAlcwoAaW4gbm9kZSAlcwoAc2hhcGVmaWxlIG5vdCBzZXQgb3Igbm90IGZvdW5kIGZvciBlcHNmIG5vZGUgJXMKAGluIGxhYmVsIG9mIG5vZGUgJXMKAGVuZCAlcwoAcmFua2luZzogZmFpbHVyZSB0byBjcmVhdGUgc3Ryb25nIGNvbnN0cmFpbnQgZWRnZSBiZXR3ZWVuIG5vZGVzICVzIGFuZCAlcwoAb29wcywgaW50ZXJuYWwgZXJyb3I6IHVuaGFuZGxlZCBjb2xvciB0eXBlPSVkICVzCgAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlLjFmICVkICVkICVkICVkICVkICVkCiAlZCAlcwoALy8qKiogdGV4dHNwYW46ICVzLCBmb250c2l6ZSA9ICUuM2YsIGZvbnRuYW1lID0gJXMKAHRyaWVzID0gJWQsIG1vZGUgPSAlcwoALy8qKiogY29tbWVudDogJXMKAGZvbnRuYW1lOiAiJXMiIHJlc29sdmVkIHRvOiAlcwoAJSUlJVBhZ2VPcmllbnRhdGlvbjogJXMKAGRlbGF1bmF5X3RyaWFuZ3VsYXRpb246ICVzCgBkZWxhdW5heV90cmk6ICVzCgBndnByaW50ZjogJXMKAG5lc3Rpbmcgbm90IGFsbG93ZWQgaW4gc3R5bGU6ICVzCgB1bm1hdGNoZWQgJyknIGluIHN0eWxlOiAlcwoAdW5tYXRjaGVkICcoJyBpbiBzdHlsZTogJXMKACUlJSVUaXRsZTogJXMKACVzIFRpdGxlOiAlcwoAIyBUaXRsZTogJXMKAC8vKioqIGJlZ2luX25vZGU6ICVzCgByZWFsbG9jIGZhaWxlZDogJXMKAGxpYi9wYXRocGxhbi8lczolZDogJXMKAGdyaWQoJWQsJWQpOiAlcwoAQ291bGQgbm90IG9wZW4gIiVzIiBmb3Igd3JpdGluZyA6ICVzCgBzdGFydCBwb3J0OiAoJS41ZywgJS41ZyksIHRhbmdlbnQgYW5nbGU6ICUuNWcsICVzCgBlbmQgcG9ydDogKCUuNWcsICUuNWcpLCB0YW5nZW50IGFuZ2xlOiAlLjVnLCAlcwoAIFslenVdICVwIHNldCAlZCAoJS4wMmYsJS4wMmYpICglLjAyZiwlLjAyZikgJXMKACUlICVzCgAjICVzCgAgIG1vZGUgICAlcwoAY29uanVnYXRlX2dyYWRpZW50OiB1bmV4cGVjdGVkIGxlbmd0aCAwIHZlY3RvcgoAJXMgdG8gY2hhbmdlIGRyYXdpbmcgc2l6ZSwgbXVsdGlwbHkgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb24gdGhlIC5QUyBsaW5lIGFib3ZlIGFuZCB0aGUgbnVtYmVyIG9uIHRoZSB0d28gbGluZXMgYmVsb3cgKHJvdW5kZWQgdG8gdGhlIG5lYXJlc3QgaW50ZWdlcikgYnkgYSBzY2FsZSBmYWN0b3IKAGFkZF9zZWdtZW50OiBlcnJvcgoAJS41ZyAlLjVnICUuNWcgJXNjb2xvcgoAMCAwIDAgZWRnZWNvbG9yCgAwLjggMC44IDAuOCBzZXRyZ2Jjb2xvcgoAMCAwIDEgc2V0cmdiY29sb3IKADEgMCAwIHNldHJnYmNvbG9yCgAwIDAgMCBzZXRyZ2Jjb2xvcgoAJWQgJWQgc2V0bGF5ZXIKAC8vKioqIGVuZF9sYXllcgoAVVRGLTggaW5wdXQgdXNlcyBub24tTGF0aW4xIGNoYXJhY3RlcnMgd2hpY2ggY2Fubm90IGJlIGhhbmRsZWQgYnkgdGhpcyBQb3N0U2NyaXB0IGRyaXZlcgoATGV0dGVyCgAvLyoqKiBiZWdpbl9jbHVzdGVyCgAvLyoqKiBlbmRfY2x1c3RlcgoAcmVtb3ZpbmcgZW1wdHkgY2x1c3RlcgoAQ2VudGVyCgBXYXJuaW5nOiBubyB2YWx1ZSBmb3Igd2lkdGggb2Ygbm9uLUFTQ0lJIGNoYXJhY3RlciAldS4gRmFsbGluZyBiYWNrIHRvIHdpZHRoIG9mIHNwYWNlIGNoYXJhY3RlcgoAYmFzZSByZWZlcmVyCgAlJVBhZ2VUcmFpbGVyCgAlJVRyYWlsZXIKAC8vKioqIGJlemllcgoAIiVzIiB3YXMgbm90IGZvdW5kIGFzIGEgZmlsZSBvciBhcyBhIHNoYXBlIGxpYnJhcnkgbWVtYmVyCgBzdG9wCgAgY3VydmV0bwoAbmV3cGF0aCAlLjBmICUuMGYgbW92ZXRvCgAlLjBmICUuMGYgbGluZXRvCgAgbGF5b3V0PW5lYXRvCgBub2RlICVzIGluIGdyYXBoICVzIGhhcyBubyBwb3NpdGlvbgoAJXMgbWF4cHNodCBhbmQgbWF4cHN3aWQgaGF2ZSBubyBtZWFuaW5nIGluIERXQiAyLjAsIHNldCBwYWdlIGJvdW5kYXJpZXMgaW4gZ3BpYyBhbmQgaW4gMTB0aCBFZGl0aW9uCgAlcyBhcnJvd2hlYWQgaGFzIG5vIG1lYW5pbmcgaW4gRFdCIDIsIGFycm93aGVhZCA9IDcgbWFrZXMgZmlsbGVkIGFycm93aGVhZHMgaW4gZ3BpYyBhbmQgaW4gMTB0aCBFZGl0aW9uCgAlcyBhcnJvd2hlYWQgaXMgdW5kZWZpbmVkIGluIERXQiAyLCBpbml0aWFsbHkgMSBpbiBncGljLCAyIGluIDEwdGggRWRpdGlvbgoAbWFqb3JpemF0aW9uCgAvLyoqKiBwb2x5Z29uCgBvdmVyZmxvdyB3aGVuIGNvbXB1dGluZyBlZGdlIHdlaWdodCBzdW0KAHNmZHAgb25seSBzdXBwb3J0cyBzdGFydD1yYW5kb20KAG5vZGUgcG9zaXRpb25zIGFyZSBpZ25vcmVkIHVubGVzcyBzdGFydD1yYW5kb20KAGNsb3NlcGF0aCBmaWxsCgAgZWxsaXBzZV9wYXRoIGZpbGwKACAgJS4wZiAlLjBmIGNlbGwKACVmICVmICVmICVmIGNlbGwKAGdyYXBoICVzIGlzIGRpc2Nvbm5lY3RlZC4gSGVuY2UsIHRoZSBjaXJjdWl0IG1vZGVsCgBncmFwaCBpcyBkaXNjb25uZWN0ZWQuIEhlbmNlLCB0aGUgY2lyY3VpdCBtb2RlbAoAZWRnZXMgaW4gZ3JhcGggJXMgaGF2ZSBubyBsZW4gYXR0cmlidXRlLiBIZW5jZSwgdGhlIG1kcyBtb2RlbAoAY2lyY3VpdCBtb2RlbCBub3QgeWV0IHN1cHBvcnRlZCBpbiBHbW9kZT1zZ2QsIHJldmVydGluZyB0byBzaG9ydHBhdGggbW9kZWwKAG1kcyBtb2RlbCBub3QgeWV0IHN1cHBvcnRlZCBpbiBHbW9kZT1zZ2QsIHJldmVydGluZyB0byBzaG9ydHBhdGggbW9kZWwKAG5vZGUgJyVzJywgZ3JhcGggJyVzJyBzaXplIHRvbyBzbWFsbCBmb3IgbGFiZWwKACVzIERXQiAyIGRvZXNuJ3QgdXNlIGZpbGwgYW5kIGRvZXNuJ3QgZGVmaW5lIGZpbGx2YWwKAFsge0NhdGFsb2d9IDw8IC9VUkkgPDwgL0Jhc2UgJXMgPj4gPj4KL1BVVCBwZGZtYXJrCgBbIC9Dcm9wQm94IFslZCAlZCAlZCAlZF0gL1BBR0VTIHBkZm1hcmsKACAgL0JvcmRlciBbIDAgMCAwIF0KICAvQWN0aW9uIDw8IC9TdWJ0eXBlIC9VUkkgL1VSSSAlcyA+PgogIC9TdWJ0eXBlIC9MaW5rCi9BTk4gcGRmbWFyawoAdHJvdWJsZSBpbiBpbml0X3JhbmsKAGxpbmV0aGljayA9IDA7IG9sZGxpbmV0aGljayA9IGxpbmV0aGljawoAIHNldGxpbmV3aWR0aAoAZ3NhdmUKJWQgJWQgJWQgJWQgYm94cHJpbSBjbGlwIG5ld3BhdGgKAGdzYXZlICVnICVnIHRyYW5zbGF0ZSBuZXdwYXRoCgAvLyoqKiBlbmRfZ3JhcGgKAGxheW91dCBhdHRyaWJ1dGUgaXMgaW52YWxpZCBleGNlcHQgb24gdGhlIHJvb3QgZ3JhcGgKAGluIGNoZWNrcGF0aCwgYm94ZXMgJXp1IGFuZCAlenUgZG9uJ3QgdG91Y2gKAG1lcmdlX29uZXdheSBnbGl0Y2gKACVzIGRvbid0IGNoYW5nZSBhbnl0aGluZyBiZWxvdyB0aGlzIGxpbmUgaW4gdGhpcyBkcmF3aW5nCgBOb2RlIG5vdCBhZGphY2VudCB0byBjZWxsIC0tIEFib3J0aW5nCgBpbmNvbXBhcmFibGUgc2VnbWVudHMgISEgLS0gQWJvcnRpbmcKAEFsdGVybmF0aXZlbHksIGNvbnNpZGVyIHJ1bm5pbmcgbmVhdG8gdXNpbmcgLUdwYWNrPXRydWUgb3IgZGVjb21wb3NpbmcKAGxhYmVsX3NjaGVtZSA9ICVkID4gNCA6IGlnbm9yaW5nCgBndnJlbmRlcl9zZXRfc3R5bGU6IHVuc3VwcG9ydGVkIHN0eWxlICVzIC0gaWdub3JpbmcKAEFycm93IHR5cGUgIiVzIiB1bmtub3duIC0gaWdub3JpbmcKAGZkcCBkb2VzIG5vdCBzdXBwb3J0IHN0YXJ0PXNlbGYgLSBpZ25vcmluZwoAJXMgYXR0cmlidXRlIHZhbHVlIG11c3QgYmUgMSBvciAyIC0gaWdub3JpbmcKAE1vcmUgdGhhbiAyIGNvbG9ycyBzcGVjaWZpZWQgZm9yIGEgZ3JhZGllbnQgLSBpZ25vcmluZyByZW1haW5pbmcKAGFzIHJlcXVpcmVkIGJ5IHRoZSAtbiBmbGFnCgBiYlslc10gJS41ZyAlLjVnICUuNWcgJS41ZwoAL3BhdGhib3ggewogICAgL1kgZXhjaCAlLjVnIHN1YiBkZWYKICAgIC9YIGV4Y2ggJS41ZyBzdWIgZGVmCiAgICAveSBleGNoICUuNWcgc3ViIGRlZgogICAgL3ggZXhjaCAlLjVnIHN1YiBkZWYKICAgIG5ld3BhdGggeCB5IG1vdmV0bwogICAgWCB5IGxpbmV0bwogICAgWCBZIGxpbmV0bwogICAgeCBZIGxpbmV0bwogICAgY2xvc2VwYXRoIHN0cm9rZQogfSBkZWYKL2RiZ3N0YXJ0IHsgZ3NhdmUgJS41ZyAlLjVnIHRyYW5zbGF0ZSB9IGRlZgovYXJyb3dsZW5ndGggMTAgZGVmCi9hcnJvd3dpZHRoIGFycm93bGVuZ3RoIDIgZGl2IGRlZgovYXJyb3doZWFkIHsKICAgIGdzYXZlCiAgICByb3RhdGUKICAgIGN1cnJlbnRwb2ludAogICAgbmV3cGF0aAogICAgbW92ZXRvCiAgICBhcnJvd2xlbmd0aCBhcnJvd3dpZHRoIDIgZGl2IHJsaW5ldG8KICAgIDAgYXJyb3d3aWR0aCBuZWcgcmxpbmV0bwogICAgY2xvc2VwYXRoIGZpbGwKICAgIGdyZXN0b3JlCn0gYmluZCBkZWYKL21ha2VhcnJvdyB7CiAgICBjdXJyZW50cG9pbnQgZXhjaCBwb3Agc3ViIGV4Y2ggY3VycmVudHBvaW50IHBvcCBzdWIgYXRhbgogICAgYXJyb3doZWFkCn0gYmluZCBkZWYKL3BvaW50IHsgICAgbmV3cGF0aCAgICAyIDAgMzYwIGFyYyBmaWxsfSBkZWYvbWFrZXZlYyB7CiAgICAvWSBleGNoIGRlZgogICAgL1ggZXhjaCBkZWYKICAgIC95IGV4Y2ggZGVmCiAgICAveCBleGNoIGRlZgogICAgbmV3cGF0aCB4IHkgbW92ZXRvCiAgICBYIFkgbGluZXRvIHN0cm9rZQogICAgWCBZIG1vdmV0bwogICAgeCB5IG1ha2VhcnJvdwp9IGRlZgoAL3BhdGhib3ggewogICAgL1ggZXhjaCBuZWcgJS41ZyBzdWIgZGVmCiAgICAvWSBleGNoICUuNWcgc3ViIGRlZgogICAgL3ggZXhjaCBuZWcgJS41ZyBzdWIgZGVmCiAgICAveSBleGNoICUuNWcgc3ViIGRlZgogICAgbmV3cGF0aCB4IHkgbW92ZXRvCiAgICBYIHkgbGluZXRv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eSBhbGxvY2F0aW9uIGZhaWx1cmUKACVzOiB2c25wcmludGYgZmFpbHVyZQoAZW5kcGFnZQpzaG93cGFnZQpncmVzdG9yZQoAZW5kCnJlc3RvcmUKAGxheW91dCB3YXMgbm90IGRvbmUKAExheW91dCB3YXMgbm90IGRvbmUKAC8vKioqIHBvbHlsaW5lCgB0cnlpbmcgdG8gZGVsZXRlIGEgbm9uLWxpbmUKACMgZW5kIG9mIEZJRyBmaWxlCgBTaW5nbGUKAHJlbmRlcmVyIGZvciAlcyBpcyB1bmF2YWlsYWJsZQoAZHluYW1pYyBsb2FkaW5nIG5vdCBhdmFpbGFibGUKACUuMGYgJS4wZiBsaW5ldG8gc3Ryb2tlCgBjbG9zZXBhdGggc3Ryb2tlCgAgZWxsaXBzZV9wYXRoIHN0cm9rZQoALy8qKiogYmVnaW5fZWRnZQoALy8qKiogZW5kX2VkZ2UKAGxvc3QgJXMgJXMgZWRnZQoAb3ZlcmZsb3cgd2hlbiBjYWxjdWxhdGluZyB2aXJ0dWFsIHdlaWdodCBvZiBlZGdlCgBhZGRfdHJlZV9lZGdlOiBtaXNzaW5nIHRyZWUgZWRnZQoAaW4gcm91dGVzcGxpbmVzLCBjYW5ub3QgZmluZCBOT1JNQUwgZWRnZQoAc2hvd3BhZ2UKACVkICVkICVkIGJlZ2lucGFnZQoALy8qKiogYmVnaW5fcGFnZQoALy8qKiogZW5kX3BhZ2UKAEZpbGVuYW1lICIlcyIgaXMgdW5zYWZlCgBsYWJlbDogYXJlYSB0b28gbGFyZ2UgZm9yIHJ0cmVlCgAvLyoqKiBlbmRfbm9kZQoAVXNpbmcgZGVmYXVsdCBjYWxjdWxhdGlvbiBmb3Igcm9vdCBub2RlCgBjb250YWluX25vZGVzIGNsdXN0ICVzIHJhbmsgJWQgbWlzc2luZyBub2RlCgAlZiAlZiAlZiAlZiBub2RlCgA8PCAvUGFnZVNpemUgWyVkICVkXSA+PiBzZXRwYWdlZGV2aWNlCgBpbiBjaGVja3BhdGgsIGJveCAlenUgaGFzIExMIGNvb3JkID4gVVIgY29vcmQKAGluIGNoZWNrcGF0aCwgYm94IDAgaGFzIExMIGNvb3JkID4gVVIgY29vcmQKAGNsdXN0ZXIgbmFtZWQgJXMgbm90IGZvdW5kCgBpbnRlZ2VyIG92ZXJmbG93IGR1cmluZyBsaXN0IHByZXBlbmQKAG1pbmNyb3NzOiBwYXNzICVkIGl0ZXIgJWQgdHJ5aW5nICVkIGN1cl9jcm9zcyAlbGxkIGJlc3RfY3Jvc3MgJWxsZAoAbm9kZSAlcywgcG9ydCAlcyB1bnJlY29nbml6ZWQKACVzJXMgdW5zdXBwb3J0ZWQKAGNsdXN0ZXIgY3ljbGUgJXMgLS0gJXMgbm90IHN1cHBvcnRlZAoAJXMgLT4gJXM6IHNwbGluZSBzaXplID4gMSBub3Qgc3VwcG9ydGVkCgBsYXlvdXQgYWJvcnRlZAoAcGFnZWRpcj0lcyBpZ25vcmVkCgBUd28gY2x1c3RlcnMgbmFtZWQgJXMgLSB0aGUgc2Vjb25kIHdpbGwgYmUgaWdub3JlZAoASWxsZWdhbCBhdHRyaWJ1dGUgJXMgaW4gJXMgLSBpZ25vcmVkCgBVbmtub3duIHZhbHVlICVzIGZvciBhdHRyaWJ1dGUgIm1vZGVsIiBpbiBncmFwaCAlcyAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIGF0dHJpYnV0ZSAibW9kZSIgaW4gZ3JhcGggJXMgLSBpZ25vcmVkCgBzdGFydD0wIG5vdCBzdXBwb3J0ZWQgd2l0aCBtb2RlPXNlbGYgLSBpZ25vcmVkCgBPdmVybGFwIHZhbHVlICIlcyIgdW5zdXBwb3J0ZWQgLSBpZ25vcmVkCgBVbmtub3duIHZhbHVlICVzIGZvciBST1dTIC0gaWdub3JlZAoAVW5rbm93biB2YWx1ZSAlcyBmb3IgQ09MVU1OUyAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIFZBTElHTiAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIEFMSUdOIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlcyBmb3IgRklYRURTSVpFIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlLipzIGZvciBTVFlMRSAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIEJBTElHTiBpbiBURCAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIEFMSUdOIGluIFREIC0gaWdub3JlZAoAUk9XU1BBTiB2YWx1ZSBjYW5ub3QgYmUgMCAtIGlnbm9yZWQKAENPTFNQQU4gdmFsdWUgY2Fubm90IGJlIDAgLSBpZ25vcmVkCgBub2RlICVzLCBwb3J0ICVzLCB1bnJlY29nbml6ZWQgY29tcGFzcyBwb2ludCAnJXMnIC0gaWdub3JlZAoAVW5rbm93biAic3BsaW5lcyIgdmFsdWU6ICIlcyIgLSBpZ25vcmVkCgBpbiByb3V0ZXNwbGluZXMsIFBzaG9ydGVzdHBhdGggZmFpbGVkCgBpbiByb3V0ZXNwbGluZXMsIFByb3V0ZXNwbGluZSBmYWlsZWQKACMgcGx1Z2luIGxvYWRpbmcgb2YgZGVwZW5kZW5jeSAiJS4qcyIgZmFpbGVkCgBQYXJzaW5nIG9mICIlcyIgZmFpbGVkCgAlczolZDogY2xhaW1lZCB1bnJlYWNoYWJsZSBjb2RlIHdhcyByZWFjaGVkCgAjIHVuc3VjY2Vzc2Z1bCBwbHVnaW4gbG9hZAoAJS41ZyAlLjVnIHRyYW5zbGF0ZSBuZXdwYXRoIHVzZXJfc2hhcGVfJWQKAG5zaXplc2NhbGU9JWYsaXRlcmF0aW9ucz0lZAoAY3RybC0+b3ZlcmxhcD0lZAoAJXMgJWQgbm9kZXMgJWQgZWRnZXMgbWF4aXRlcj0lZCBiYWxhbmNlPSVkCgAvLyoqKiBiZWdpbl9sYXllcjogJXMsICVkLyVkCgBkZWdlbmVyYXRlIGNvbmNlbnRyYXRlZCByYW5rICVzLCVkCgAgIG1heCBsZXZlbHMgJWQKAAklcyAlZAoAICBCYXJuZXMtSHV0dCBjb25zdGFudCAlLjAzZiB0b2xlcmFuY2UgICUuMDNmIG1heGl0ZXIgJWQKAGd2d3JpdGVfbm9feiBwcm9ibGVtICVkCgAgIHF1YWR0cmVlIHNpemUgJWQgbWF4X2xldmVsICVkCgByZWJ1aWxkX3ZsaXN0czogbGVhZCBpcyBudWxsIGZvciByYW5rICVkCgByZWJ1aWxkX3ZsaXN0czogcmFuayBsZWFkICVzIG5vdCBpbiBvcmRlciAlZCBvZiByYW5rICVkCgAgIHNtb290aGluZyAlcyBvdmVybGFwICVkIGluaXRpYWxfc2NhbGluZyAlLjAzZiBkb19zaHJpbmtpbmcgJWQKACAgY29vbGluZyAlLjAzZiBzdGVwIHNpemUgICUuMDNmIGFkYXB0aXZlICVkCgBVbnN1cHBvcnRlZCBjaGFyc2V0IHZhbHVlICVkCgBpbiByb3V0ZXNwbGluZXMsIGlsbGVnYWwgdmFsdWVzIG9mIHByZXYgJWQgYW5kIG5leHQgJWQsIGxpbmUgJWQKACAgZWRnZV9sYWJlbGluZ19zY2hlbWUgJWQKAGFnZGljdG9mOiB1bmtub3duIGtpbmQgJWQKACAgcmFuZG9tIHN0YXJ0ICVkIHNlZWQgJWQKACVkICVkICVkICUuMGYgJWQgJWQgJWQgJWQgJWQgJS4xZiAlZCAlZCAlZCAlZAoAJSUlJVBhZ2VCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQKACUlJSVCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQKACUlJSVQYWdlOiAlZCAlZAoAJXMgbm8uIGNlbGxzICVkIFcgJWQgSCAlZAoATWF4cmFuayA9ICVkLCBtaW5yYW5rID0gJWQKAHN0ZXAgc2l6ZSA9ICVkCgAlJSUlUGFnZXM6ICVkCgAjIFBhZ2VzOiAlZAoAJSUlJUVuZFBhZ2U6ICVkCgAiZm9udGNoYXIiOiAlZAoAICBmbGFncyAgJWQKACAgc2l6ZSAgICVkCgAlcyBkYXNod2lkIGlzIDAuMSBpbiAxMHRoIEVkaXRpb24sIDAuMDUgaW4gRFdCIDIgYW5kIGluIGdwaWMKACVzIG1heHBzaHQgYW5kIG1heHBzd2lkIGFyZSBwcmVkZWZpbmVkIHRvIDExLjAgYW5kIDguNSBpbiBncGljCgAgJWQlcyBpdGVyYXRpb25zICUuMmYgc2VjCgAKZmluYWwgZSA9ICVmICVkIGl0ZXJhdGlvbnMgJS4yZiBzZWMKACVkIG5vZGVzICUuMmYgc2VjCgAlcyV6dSBub2RlcyAlenUgZWRnZXMgJWQgaXRlciAlLjJmIHNlYwoACmZpbmlzaGVkIGluICUuMmYgc2VjCgA6ICUuMmYgc2VjCgAgbm9kZVtzaGFwZT1wb2ludF0KACJyZWN0IjogWyUuMDNmLCUuMDNmLCUuMDNmLCUuMDNmXQoAaW5zdGFsbF9pbl9yYW5rLCBsaW5lICVkOiBORF9vcmRlciglcykgWyVkXSA+IEdEX3JhbmsoUm9vdClbJWRdLmFuIFslZF0KAGluc3RhbGxfaW5fcmFuaywgbGluZSAlZDogR0RfcmFuayhnKVslZF0udiArIE5EX29yZGVyKCVzKSBbJWRdID4gR0RfcmFuayhnKVslZF0uYXYgKyBHRF9yYW5rKFJvb3QpWyVkXS5hbiBbJWRdCgBpbnN0YWxsX2luX3JhbmssIGxpbmUgJWQ6IHJhbmsgJWQgbm90IGluIHJhbmsgcmFuZ2UgWyVkLCVkXQoAZmFpbGVkIGF0IG5vZGUgJWRbMV0KAGZhaWxlZCBhdCBub2RlICVkWzBdCgAgICVkIC0tICVkW2xhYmVsPSIlZiJdCgAgICVkIFtwb3M9IiUuMGYsJS4wZiEiXQoAIF0KAERvdDogWwoAIm9iamVjdHMiOiBbCgAic3ViZ3JhcGhzIjogWwoAImVkZ2VzIjogWwoAIm5vZGVzIjogWwoAWCBlbHNlIFoKCWRlZmluZSBzZXRmaWxsdmFsIFkgZmlsbHZhbCA9IFk7CglkZWZpbmUgYm9sZCBZIFk7CglkZWZpbmUgZmlsbGVkIFkgZmlsbCBZOwpaCgBpZiBib3hyYWQgPiAxLjAgJiYgZGFzaHdpZCA8IDAuMDc1IHRoZW4gWAoJZmlsbHZhbCA9IDE7CglkZWZpbmUgZmlsbCBZIFk7CglkZWZpbmUgc29saWQgWSBZOwoJZGVmaW5lIHJlc2V0IFkgc2NhbGU9MS4wIFk7ClgKACBBQk9SVElORwoAJSVFT0YKACVzIHJlc3RvcmUgcG9pbnQgc2l6ZSBhbmQgZm9udAoucHMgXG4oLlMKLmZ0IFxuKERGCgBdCi5QRQoAaW52YWxpZGF0ZV9wYXRoOiBza2lwcGVkIG92ZXIgTENBCgBJbnZhbGlkICVkLWJ5dGUgVVRGOCBmb3VuZCBpbiBpbnB1dCBvZiBncmFwaCAlcyAtIHRyZWF0ZWQgYXMgTGF0aW4tMS4gUGVyaGFwcyAiLUdjaGFyc2V0PWxhdGluMSIgaXMgbmVlZGVkPwoAVVRGOCBjb2RlcyA+IDQgYnl0ZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIChncmFwaCAlcykgLSB0cmVhdGVkIGFzIExhdGluLTEuIFBlcmhhcHMgIi1HY2hhcnNldD1sYXRpbjEiIGlzIG5lZWRlZD8KADwvdGV4dD4KADwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KADwvcmFkaWFsR3JhZGllbnQ+CjwvZGVmcz4KADwvbWFwPgoAPC9zdmc+CgA8L2E+CjwvZz4KACAgICByb3RhdGUgICA8JTkuM2YsICU5LjNmLCAlOS4zZj4KACAgICBzY2FsZSAgICA8JTkuM2YsICU5LjNmLCAlOS4zZj4KADwvdGl0bGU+CgAiIHR5cGU9InRleHQvY3NzIj8+CgA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KACAgICB0cmFuc2xhdGU8JTkuM2YsICU5LjNmLCAlZC4wMDA+CgA7Ii8+CgAgUGFnZXM6ICVkIC0tPgoAKQogLS0+CgAgLT4KADwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgoAKSI+CgByXyVkIiBjeD0iNTAlJSIgY3k9IjUwJSUiIHI9Ijc1JSUiIGZ4PSIlLjBmJSUiIGZ5PSIlLjBmJSUiPgoAIiA+CgAjZGVjbGFyZSAlcyA9ICVzOwoACSVzCXNvcnJ5LCB0aGUgZ3JvZmYgZm9sa3MgY2hhbmdlZCBncGljOyBzZW5kIGFueSBjb21wbGFpbnQgdG8gdGhlbTsKAAklcwlpbnN0YWxsIGEgbW9yZSByZWNlbnQgdmVyc2lvbiBvZiBncGljIG9yIHN3aXRjaCB0byBEV0Igb3IgMTB0aCBFZGl0aW9uIHBpYzsKAF07CgBpZiBmaWxsdmFsID4gMC40IHRoZW4gWAoJZGVmaW5lIHNldGZpbGx2YWwgWSBmaWxsdmFsID0gMSAtIFk7CglkZWZpbmUgYm9sZCBZIHRoaWNrbmVzcyAyIFk7CgAjdmVyc2lvbiAzLjY7CgBlbGxpcHNlIGF0dHJzMCAlc3dpZCAlLjVmIGh0ICUuNWYgYXQgKCUuNWYsJS41Zik7CgAiIGF0ICglLjVmLCUuNWYpOwoAJSVCZWdpbkRvY3VtZW50OgoAJXp1IGJveGVzOgoAcGFjayBpbmZvOgoAc3ByaW5nX2VsZWN0cmljYWxfY29udHJvbDoKAFVuc3VwcG9ydGVkIGNoYXJzZXQgIiVzIiAtIGFzc3VtaW5nIHV0Zi04CgAgICAgICBhbWJpZW50SW50ZW5zaXR5IDAuMzMKACNGSUcgMy4yCgAtMgoAJXMgbm9uLWZhdGFsIHJ1bi10aW1lIHBpYyB2ZXJzaW9uIGRldGVybWluYXRpb24sIHZlcnNpb24gMgoAJXMgZmlsbHZhbCBpcyAwLjMgaW4gMTB0aCBFZGl0aW9uIChmaWxsIDAgbWVhbnMgYmxhY2spLCAwLjUgaW4gZ3BpYyAoZmlsbCAwIG1lYW5zIHdoaXRlKSwgdW5kZWZpbmVkIGluIERXQiAyCgAlcyByZXNldCB3b3JrcyBpbiBncGljIGFuZCAxMHRoIGVkaXRpb24sIGJ1dCBpc24ndCBkZWZpbmVkIGluIERXQiAyCgBzZXR1cExhdGluMQoAXDAwMQoAJXMgICAgICAgIHRvbGVyYW5jZSAwLjAxCgAgICAgdG9sZXJhbmNlIDAuMQoAJSVQYWdlczogMQoAICAgICAgICBkaWZmdXNlQ29sb3IgMSAxIDEKADEwMC4wMAoAIEVQU0YtMy4wCgAlcyBib3hyYWQgaXMgbm93IDAuMCBpbiBncGljLCBlbHNlIGl0IHJlbWFpbnMgMi4wCgBzcGhlcmUgezwlOS4zZiwgJTkuM2YsICU5LjNmPiwgMS4wCgBXYXJuaW5nOiBubyB2YWx1ZSBmb3Igd2lkdGggb2YgQVNDSUkgY2hhcmFjdGVyICV1LiBGYWxsaW5nIGJhY2sgdG8gMAoAaW5zdGFsbF9pbl9yYW5rLCBsaW5lICVkOiAlcyAlcyByYW5rICVkIGkgPSAlZCBhbiA9IDAKAGNvbmNlbnRyYXRlPXRydWUgbWF5IG5vdCB3b3JrIGNvcnJlY3RseS4KAE5vIGxpYnogc3VwcG9ydC4KAHR3b3BpOiB1c2Ugb2Ygd2VpZ2h0PTAgY3JlYXRlcyBkaXNjb25uZWN0ZWQgY29tcG9uZW50LgoAdGhlIGdyYXBoIGludG8gY29ubmVjdGVkIGNvbXBvbmVudHMuCgBPcnRob2dvbmFsIGVkZ2VzIGRvIG5vdCBjdXJyZW50bHkgaGFuZGxlIGVkZ2UgbGFiZWxzLiBUcnkgdXNpbmcgeGxhYmVscy4KAG1pbmNyb3NzICVzOiAlbGxkIGNyb3NzaW5ncywgJS4yZiBzZWNzLgoAJXMgaXMgbm90IGEga25vd24gY29sb3IuCgBpcyBpbmFwcHJvcHJpYXRlLiBSZXZlcnRpbmcgdG8gdGhlIHNob3J0ZXN0IHBhdGggbW9kZWwuCgBpcyB1bmRlZmluZWQuIFJldmVydGluZyB0byB0aGUgc2hvcnRlc3QgcGF0aCBtb2RlbC4KAFVuYWJsZSB0byByZWNsYWltIGJveCBzcGFjZSBpbiBzcGxpbmUgcm91dGluZyBmb3IgZWRnZSAiJXMiIC0+ICIlcyIuIFNvbWV0aGluZyBpcyBwcm9iYWJseSBzZXJpb3VzbHkgd3JvbmcuCgBFcnJvciBkdXJpbmcgY29udmVyc2lvbiB0byAiVVRGLTgiLiBRdWl0aW5nLgoAb3JkZXJpbmcgJyVzJyBub3QgcmVjb2duaXplZC4KAGdyYWRpZW50IHBlbiBjb2xvcnMgbm90IHlldCBzdXBwb3J0ZWQuCgAgIGluaXRDTWFqVlBTQyBkb25lOiAlZCBnbG9iYWwgY29uc3RyYWludHMgZ2VuZXJhdGVkLgoAVGhlIGNoYXJhY3RlciAnJWMnIGFwcGVhcnMgaW4gYm90aCB0aGUgbGF5ZXJzZXAgYW5kIGxheWVybGlzdHNlcCBhdHRyaWJ1dGVzIC0gbGF5ZXJsaXN0c2VwIGlnbm9yZWQuCgB0aGUgYXNwZWN0IGF0dHJpYnV0ZSBoYXMgYmVlbiBkaXNhYmxlZCBkdWUgdG8gaW1wbGVtZW50YXRpb24gZmxhd3MgLSBhdHRyaWJ1dGUgaWdub3JlZC4KAFRoZSBsYXllcnNlbGVjdCBhdHRyaWJ1dGUgIiVzIiBkb2VzIG5vdCBtYXRjaCBhbnkgbGF5ZXIgc3BlY2lmZWQgYnkgdGhlIGxheWVycyBhdHRyaWJ1dGUgLSBpZ25vcmVkLgoAJXp1IG91dCBvZiAlenUgbGFiZWxzIHBvc2l0aW9uZWQuCgAlenUgb3V0IG9mICV6dSBleHRlcmlvciBsYWJlbHMgcG9zaXRpb25lZC4KACAgZ2VuZXJhdGUgZWRnZSBjb25zdHJhaW50cy4uLgoAR2VuZXJhdGluZyBOb24tb3ZlcmxhcCBD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MSkpCgBlcnJvciBpbiBjb2xvcnhsYXRlKCkKAHRydW5jYXRpbmcgc3R5bGUgJyVzJwoASWxsZWdhbCB2YWx1ZSBpbiAiJXMiIGNvbG9yIGF0dHJpYnV0ZTsgZmxvYXQgZXhwZWN0ZWQgYWZ0ZXIgJzsnCgBkZWZpbmUgYXR0cnMwICUlICUlOyBkZWZpbmUgdW5maWxsZWQgJSUgJSU7IGRlZmluZSByb3VuZGVkICUlICUlOyBkZWZpbmUgZGlhZ29uYWxzICUlICUlCgA8c3ZnIHdpZHRoPSIlZHB0IiBoZWlnaHQ9IiVkcHQiCgAjIGRlcGVuZGVuY2llcyAiJS4qcyIgZGlkIG5vdCBtYXRjaCAiJS4qcyIKACMgdHlwZSAiJS4qcyIgZGlkIG5vdCBtYXRjaCAiJS4qcyIKACRjIGNyZWF0ZSBpbWFnZSAlLjJmICUuMmYgLWltYWdlICJwaG90b18lcyIKAE5vIG9yIGltcHJvcGVyIGltYWdlIGZpbGU9IiVzIgoAZmlsZSBsb2FkaW5nIGlzIGRpc2FibGVkIGJlY2F1c2UgdGhlIGVudmlyb25tZW50IGNvbnRhaW5zIFNFUlZFUl9OQU1FPSIlcyIKAENvdWxkIG5vdCBwYXJzZSB4ZG90ICIlcyIKAE5vIGxvYWRpbWFnZSBwbHVnaW4gZm9yICIlcyIKACBbJXp1XSAoJS4wMmYsJS4wMmYpICglLjAyZiwlLjAyZikgJXAgIiVzIgoAZm9udG5hbWU6IHVuYWJsZSB0byByZXNvbHZlICIlcyIKAER1cGxpY2F0ZSBjbHVzdGVyIG5hbWUgIiVzIgoAdW5yZWNvZ25pemVkIGFwaSBuYW1lICIlcyIKAGltYWdlIGNyZWF0ZSBwaG90byAicGhvdG9fJXMiIC1maWxlICIlcyIKAE5vIG9yIGltcHJvcGVyIHNoYXBlZmlsZT0iJXMiIGZvciBub2RlICIlcyIKAE5vIG9yIGltcHJvcGVyIGltYWdlPSIlcyIgZm9yIG5vZGUgIiVzIgoAbm9kZSAiJXMiIGlzIGNvbnRhaW5lZCBpbiB0d28gbm9uLWNvbXBhcmFibGUgY2x1c3RlcnMgIiVzIiBhbmQgIiVzIgoARXJyb3I6IG5vZGUgIiVzIiBiZWxvbmdzIHRvIHR3byBub24tbmVzdGVkIGNsdXN0ZXJzICIlcyIgYW5kICIlcyIKACAgIiVzIgoAI2luY2x1ZGUgImNvbG9ycy5pbmMiCiNpbmNsdWRlICJ0ZXh0dXJlcy5pbmMiCiNpbmNsdWRlICJzaGFwZXMuaW5jIgoAVW5rbm93biBIVE1MIGVsZW1lbnQgPCVzPiBvbiBsaW5lICVsdSAKACVzIGluIGxpbmUgJWx1IAoAc2NhbGUgYnkgJWcsJWcgCgBjb21wcmVzcyAlZyAKAExheW91dCB3YXMgbm90IGRvbmUuICBNaXNzaW5nIGxheW91dCBwbHVnaW5zPyAKAIlQTkcNChoKACUlIVBTLUFkb2JlLTIuMAolJSUlQm91bmRpbmdCb3g6IChhdGVuZCkKL3BvaW50IHsKICAvWSBleGNoIGRlZgogIC9YIGV4Y2ggZGVmCiAgbmV3cGF0aAogIFggWSAzIDAgMzYwIGFyYyBmaWxsCn0gZGVmCi9jZWxsIHsKICAvWSBleGNoIGRlZgogIC9YIGV4Y2ggZGVmCiAgL3kgZXhjaCBkZWYKICAveCBleGNoIGRlZgogIG5ld3BhdGgKICB4IHkgbW92ZXRvCiAgeCBZIGxpbmV0bwogIFggWSBsaW5ldG8KICBYIHkgbGluZXRvCiAgY2xvc2VwYXRoIHN0cm9rZQp9IGRlZgovbm9kZSB7CiAvdSBleGNoIGRlZgogL3IgZXhjaCBkZWYKIC9kIGV4Y2ggZGVmCiAvbCBleGNoIGRlZgogbmV3cGF0aCBsIGQgbW92ZXRvCiByIGQgbGluZXRvIHIgdSBsaW5ldG8gbCB1IGxpbmV0bwogY2xvc2VwYXRoIGZpbGwKfSBkZWYKCgAJAEHxigULtgMBAQEBAQEBAQIDAQECAQEBAQEBAQEBAQEBAQEBAQEBAgEEBQEBAQEBAQYBAQcICQoKCgoKCgoKCgoBAQsBDAENDg8QERITFBUWExMTExcYGRMaGxwdExMTExMBHgEBEwEfICEiIxMkJSYTExMTJygpEyorLC0TExMTEwEBAQEBExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMuExMTLxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTMBMTExMTExMTExMTExMTExMAAAAAAAAEAAQAHAAcACEAIQAkACIACgACABYACQAiACIAIgAVAB0AAQAUABQAFAAUABQAFAAUAAgABAAFABwAGwAXABwAIQAgAB8AHgAJABMAAAAVABIAFQADAAcAFQAVABQAFAAUABQAFAAUABQAFAAIAAQABQAFAAYAHAAaABgAGQAhAAcAFQAUABQAFAAUABQAFAALABQADQAUAAwAFAAUABQADgAUABQAFAAQABQADwAUABEAQbKOBQuVBAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAMABAAHAAMABAAFAAUABgAGAAgABwAHABEAFgASABEAEgAIAAgADwAPABcADwAYAA8AGQAaABoAHgAWADQAHgAFADIABgAiACIAMwAXABgANQAZABoAGgAqADYAKgA0ADcAMgBFADsAPAAzADsAPABGADUARwBIAEwANgAiAEkASgA3AEUATgBQAGIAUQBSAFQARgBHAFUASABMAFYASQBKAFgAWgBOAEQAUABRAFIAVAA4AC8ALABVACkAVgAbABAAWABaAF0AXQBdAF0AXQBdAF0AXgBeAF4AXgBeAF4AXgBfAF8AXwBfAF8AXwBfAGAACQBgAGAAYABgAGAAYQBhAGMAAgBjAGMAYwBjAGMAZAAAAGQAAABkAGQAZABlAAAAZQBlAGUAZQBlAGYAAAAAAGYAZgBmAGYAZwAAAGcAZwBnAGcAaAAAAGgAaABoAGgAaABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAEHUkgULzQGuAC4ALwAzADUAMAA3AKoA2wDbANsA2wAAAD0AhwA3ADcA2wDbAAAAKAA1AC4AMgAvAGIAAAAAAEcAAADbANsAUQAAANsA2wDbAAAA2wCEAFUA2wCCANsAAACBANsAAAA+AEIAQQBIAEQAUgBbAAAAAABeAF8A2wAAANsA2wDbAAAAAAB7AEkAVwBSAFoAWgBdAAAAXwAAAF8AAABlAF0AXwAAAF0AbgBqAAAAaQAAAG4AAADbAJMAmgChAKgAqwBwALEAuAC/AMYAzQDTAEGylAULzwFcAAEAXQBdAF4AXgBfAF8AXABcAFwAXABcAGAAXABcAFwAYQBcAFwAYgBiAGIAYgBiAGIAYgBjAGQAZQBmAFwAXABcAGcAXABcAFwAYABcAFwAYQBcAGEAXABoAGEAXABiAGIAYgBiAGIAYgBiAGIAYwBkAGUAZQBcAGYAXABcAFwAZwBoAGEAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAAAAXABcAFwAXABcAFwAXABcAFwAXABcAFwAQZGWBQswAQECAwEEAQUBBgcHAQYGBgYGBgYGBgYGBgYGBgYDBgYGBgYGBgYGBgYGBgYGBgYGAEHSlgULowQKAAsADAANAA4ACgAPABAAEQASABMACgAUABUAFQAVABYAFwAVABgAFQAVABkAFQAVABUAGgAVABUACgAVABUAFQAWABcAGAAVABUAGQAVABUAFQAaABUAFQAVABUAGwAMAAwAJAAeAB4AIAAhACAAIQAkACUAJgAtADIALwAuACoAJQAmACgAKQAzACoANAArADUANgA3ADwAMgBHAD0AIgBFACIAPwBAAEYAMwA0AEgANQA2ADcALwBJACoARwBKAEUATABcADwARgBcAD0ATQBIAE4ATwBSAEkAQQBQAFEASgBMAFMAVAAxAFUAVgBXAE0ATgBYAE8AUgBZAFAAUQBaAFsAUwBEAFQAVQBWAFcASwBEACwAWAAsAFkAOAAsAFoAWwAdAB0AHQAdAB0AHQAdAB8AHwAfAB8AHwAfAB8AIwAjACMAIwAjACMAIwAnAFwAJwAnACcAJwAnADAAMAA5ABwAOQA5ADkAOQA5ADoAXAA6AFwAOgA6ADoAOwBcADsAOwA7ADsAOwA+AFwAXAA+AD4APgA+AEIAXABCAEIAQgBCAEMAXABDAEMAQwBDAEMACQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAMAAAADQAAAA4AAAAOAEGAmwUL0QUR7u4TCAPu/u7u7gHu7u4B7u4J/u4SFRfuEgHu7u7uCg3u7u7u7u7u7u4B7u4WCAEBGQ4Y7u4bGBru7h3u7u7uARX77u7u7hAe7u7uAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWEQICAgICAgICAgICAgISEAITAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIUAhUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4CDwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBAgMEBQYHCAkKCwwNAAAACwMEBQ8HAwwNBgwNDgwNGhUAAQADBw4GDwgMDRITCSoQERAWLzANMhETLjIUEhQSQRMsE0JAKkIZ//8sAAAAACIMDQ4jDwkQEQoQEcwQES1F/AEG9g8H9iQCEBEvMCg2SUomMTs8PTYqOTo+Py/YQEQwNyVHQzVIKwAAOAAAAAAAAwkAAAABDgILDAgjJCUzODoADRASGxYcEicvIhcwHjkGBzIFDxEUGCkAEykAAAAAADQVKB0eACEmMR8uOxksABsAIBoqKzcANTYtAAAAAAACAgEAAwMBAAEAAQEBAAIBAQACAgMBAQAABQABAwEDBQMBAQEBAgABAAQCAAIDAQADAgEAAQEAAQEBAwAAAAAAFxgYGBkaGxscHB0dHh4fHyAgISEiIyMlJiQkJycoKCgpKSoqKisrLCwtLi4vMDEzMjQ0NDU1NTY2NzcAAAAA7u787u7u7u7uHyDu+e/u7u4M7u7uBg/u7vLu7u7u7vXuAEHhoAULLwMIBCEFCxITJxQVFikyQRcYGRosMzRCRhscHS4eSx8ga2V5AF9BR19zdHJkYXRhAEGgoQULFe0fAAC/DAAAowwAAGhUAAB7UgAABgBBwKEFC+PrAc7GAABVXcl/yX//ALS3AAC7LdS+rtT/AKypAAAUd/39wIb/AG7FAABVXcl/yX//AFS2AAC7LdS+rtT/AEyoAAAUd/39wIb/ALCbAAAqZv///5n/AA7EAABVXcl/yX//APS0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AAAYX/391J7/ALKVAAATef39u4T/AH6KAAANpPz8jVn/AFuDAAAHsu/vZUj/AKB9AAAD2tfXMB//ADt5AAAA/7OzAAD/ACp2AAAA/39/AAD/ANLIAACOROOmzuP/AA7NAAC+mZpqPZr/ALi5AACQ07QfeLT/ALCrAABBYd+y34r/ALSdAABSuKAzoCz/ACCRAAAAY/v7mpn/AJ2IAAD+4ePjGhz/AIKBAAAXj/39v2//AL17AAAV////fwD/AEx3AADGKtbKstb/AFrIAACOROOmzuP/AIvMAAC+mZpqPZr/ADq+AAAqZv///5n/AEC5AACQ07QfeLT/ADirAABBYd+y34r/ADydAABSuKAzoCz/AKiQAAAAY/v7mpn/ACWIAAD+4ePjGhz/AAqBAAAXj/39v2//AEV7AAAV////fwD/ANR2AADGKtbKstb/AOLHAACOROOmzuP/AAjMAAC+mZpqPZr/ALe9AAAqZv///5n/ADqvAAAPxbGxWSj/AMi4AACQ07QfeLT/AMCqAABBYd+y34r/AMScAABSuKAzoCz/ADCQAAAAY/v7mpn/AK2HAAD+4ePjGhz/AJKAAAAXj/39v2//AM16AAAV////fwD/AFx2AADGKtbKstb/AJrHAACOROOmzuP/AIC4AACQ07QfeLT/AHiqAABBYd+y34r/ADrGAACOROOmzuP/ACC3AACQ07QfeLT/ABipAABBYd+y34r/AHycAABSuKAzoCz/ANrEAACOROOmzuP/AMC1AACQ07QfeLT/ALinAABBYd+y34r/ABybAABSuKAzoCz/AOiPAAAAY/v7mpn/AHrDAACOROOmzuP/AGC0AACQ07QfeLT/AFimAABBYd+y34r/ALyZAABSuKAzoCz/AIiOAAAAY/v7mpn/AGWHAAD+4ePjGhz/ABrCAACOROOmzuP/AACzAACQ07QfeLT/APikAABBYd+y34r/AFyYAABSuKAzoCz/ACiNAAAAY/v7mpn/AAWGAAD+4ePjGhz/AEqAAAAXj/39v2//ALrAAACOROOmzuP/AKCxAACQ07QfeLT/AJijAABBYd+y34r/APyWAABSuKAzoCz/AMiLAAAAY/v7mpn/AKWEAAD+4ePjGhz/AOp+AAAXj/39v2//AIV6AAAV////fwD/AHm/AACOROOmzuP/AF+wAACQ07QfeLT/AFei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AADSFejn1Oj/AGWIAABMHvDZ8NP/AEqBAABQRNum26D/AIV7AABYe65armH/ABR3AABhxXgbeDf/ACLIAADO/0tAAEv/AE7MAABhxXgbeDf/AP29AABl/0QARBv/AAi5AADOrYN2KoP/AACrAADHV6uZcKv/AASdAADHM8/Cpc//AHCQAADSFejn1Oj/AO2HAAAAAPf39/f/ANKAAABMHvDZ8NP/AA17AABQRNum26D/AJx2AABYe65armH/AEHHAADERsOvjcP/ACe4AAAAAPf39/f/AB+qAABSWr9/v3v/AOHFAADJqJR7MpT/AMe2AADHM8/Cpc//AL+oAABQRNum26D/ACOcAABm/4gAiDf/AIHEAADJqJR7MpT/AGe1AADHM8/Cpc//AF+nAAAAAPf39/f/AMOaAABQRNum26D/AI+PAABm/4gAiDf/ACHDAADOrYN2KoP/AAe0AADERsOvjcP/AP+lAADSFejn1Oj/AGOZAABMHvDZ8NP/AC+OAABSWr9/v3v/AAyHAABhxXgbeDf/AMHBAADOrYN2KoP/AKeyAADERsOvjcP/AJ+kAADSFejn1Oj/AAOYAAAAAPf39/f/AM+MAABMHvDZ8NP/AKyFAABSWr9/v3v/APF/AABhxXgbeDf/AGHAAADOrYN2KoP/AEexAADHV6uZcKv/AD+jAADHM8/Cpc//AKOWAADSFejn1Oj/AG+LAABMHvDZ8NP/AEyEAABQRNum26D/AJF+AABYe65armH/ACx6AABhxXgbeDf/ACC/AADOrYN2KoP/AAawAADHV6uZcKv/AP6hAADHM8/Cpc//AGKVAADSFejn1Oj/AC6KAAAAAPf39/f/AAuDAABMHvDZ8NP/AFB9AABQRNum26D/AOt4AABYe65armH/ANp1AABhxXgbeDf/AJ3GAAC9C/Ls5/L/AIO3AACXPdumvdv/AHupAACNxb4rjL7/AD3FAAC5CPbx7vb/ACO2AACbKOG9yeH/ABuoAACRcM90qc//AH+bAACP97AFcLD/AN3DAAC5CPbx7vb/AMO0AACbKOG9yeH/ALumAACRcM90qc//AB+aAACNxb4rjL7/AOuOAACP940EWo3/AH3CAAC5CPbx7vb/AGOzAACoGObQ0eb/AFulAACXPdumvdv/AL+YAACRcM90qc//AIuNAACNxb4rjL7/AGiG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AAALm/z8jWL/AMynAACcTcuNoMv/ADCbAADkZufnisP/APyPAAA6m9im2FT/AI7DAAByeMJmwqX/AHS0AAALm/z8jWL/AGymAACcTcuNoMv/ANCZAADkZufnisP/AJyOAAA6m9im2FT/AHmHAAAi0P//2S//AC7CAAByeMJmwqX/ABSzAAALm/z8jWL/AAylAACcTcuNoMv/AHCYAADkZufnisP/ADyNAAA6m9im2FT/ABmGAAAi0P//2S//AF6AAAAZWuXlxJT/AM7AAAByeMJmwqX/ALSxAAALm/z8jWL/AKyjAACcTcuNoMv/ABCXAADkZufnisP/ANyLAAA6m9im2FT/ALmEAAAi0P//2S//AP5+AAAZWuXlxJT/AJl6AAAAALOzs7P/AN7IAAB4VNON08f/ABvNAADTUr28gL3/AMS5AAAqTP///7P/ALyrAACvJdq+utr/AMCdAAAEi/v7gHL/ACyRAACQZNOAsdP/AKmIAAAWnP39tGL/AI6BAAA6ht6z3mn/AMl7AADpL/z8zeX/AFh3AAAAANnZ2dn/AGbIAAB4VNON08f/AJjMAADTUr28gL3/AEe+AABNKevM68X/AEy5AAAqTP///7P/AESrAACvJdq+utr/AEidAAAEi/v7gHL/ALSQAACQZNOAsdP/ADGIAAAWnP39tGL/ABaBAAA6ht6z3mn/AFF7AADpL/z8zeX/AOB2AAAAANnZ2dn/AO7HAAB4VNON08f/ABXMAADTUr28gL3/AMS9AABNKevM68X/AEevAAAlkP//7W//ANS4AAAqTP///7P/AMyqAACvJdq+utr/ANCcAAAEi/v7gHL/ADyQAACQZNOAsdP/ALmHAAAWnP39tGL/AJ6AAAA6ht6z3mn/ANl6AADpL/z8zeX/AGh2AAAAANnZ2dn/AKXHAAB4VNON08f/AIu4AAAqTP///7P/AIOqAACvJdq+utr/AEXGAAB4VNON08f/ACu3AAAqTP///7P/ACOpAACvJdq+utr/AIecAAAEi/v7gHL/AOXEAAB4VNON08f/AMu1AAAqTP///7P/AMOnAACvJdq+utr/ACebAAAEi/v7gHL/APOPAACQZNOAsdP/AIXDAAB4VNON08f/AGu0AAAqTP///7P/AGOmAACvJdq+utr/AMeZAAAEi/v7gHL/AJOOAACQZNOAsdP/AHCHAAAWnP39tGL/ACXCAAB4VNON08f/AAuzAAAqTP///7P/AAOlAACvJdq+utr/AGeYAAAEi/v7gHL/ADONAACQZNOAsdP/ABCGAAAWnP39tGL/AFWAAAA6ht6z3mn/AMXAAAB4VNON08f/AKuxAAAqTP///7P/AKOjAACvJdq+utr/AAeXAAAEi/v7gHL/ANOLAACQZNOAsdP/ALCEAAAWnP39tGL/APV+AAA6ht6z3mn/AJB6AADpL/z8zeX/AIS/AAB4VNON08f/AGqwAAAqTP///7P/AGKiAACvJdq+utr/AMaVAAAEi/v7gHL/AJKKAACQZNOAsdP/AG+DAAAWnP39tGL/ALR9AAA6ht6z3mn/AE95AADpL/z8zeX/AD52AAAAANnZ2dn/ALDIAADt/Z6eAUL/AOnMAACxgqJeT6L/AJa5AAD6tNXVPk//AI6rAAAKuPT0bUP/AJKdAAAUnf39rmH/AP6QAAAfc/7+4Iv/AHuIAAAxYPXm9Zj/AGCBAABPQd2r3aT/AJt7AAByeMJmwqX/ACp3AACPu70yiL3/ADjIAADt/Z6eAUL/AGbMAACPu70yiL3/ABW+AACxgqJeT6L/AB65AAD6tNXVPk//ABarAAAKuPT0bUP/ABqdAAAUnf39rmH/AIaQAAAfc/7+4Iv/AAOIAAAqQP///7//AOiAAAAxYPXm9Zj/ACN7AABPQd2r3aT/ALJ2AAByeMJmwqX/AF7HAAANpPz8jVn/AES4AAAqQP///7//ADyqAABRTdWZ1ZT/AP7FAAD+4dfXGRz/AOS2AAAUnf39rmH/ANyoAABPQd2r3aT/AECcAACPxLorg7r/AJ7EAAD+4dfXGRz/AIS1AAAUnf39rmH/AHynAAAqQP///7//AOCaAABPQd2r3aT/AKyPAACPxLorg7r/AD7DAAD6tNXVPk//ACS0AAANpPz8jVn/ABymAAAfc/7+4Iv/AICZAAAxYPXm9Zj/AEyOAABRTdWZ1ZT/ACmHAACPu70yiL3/AN7BAAD6tNXVPk//AMSyAAANpPz8jVn/ALykAAAfc/7+4Iv/ACCYAAAqQP///7//AOyMAAAxYPXm9Zj/AMmFAABRTdWZ1ZT/AA6AAACPu70yiL3/AH7AAAD6tNXVPk//AGSxAAAKuPT0bUP/AFyjAAAUnf39rmH/AMCWAAAfc/7+4Iv/AIyLAAAxYPXm9Zj/AGmEAABPQd2r3aT/AK5+AAByeMJmwqX/AEl6AACPu70yiL3/AD2/AAD6tNXVPk//ACOwAAAKuPT0bUP/ABuiAAAUnf39rmH/AH+VAAAfc/7+4Iv/AEuKAAAqQP///7//ACiDAAAxYPXm9Zj/AG19AABPQd2r3aT/AAh5AAByeMJmwqX/APd1AACPu70yiL3/AFFLAACTD//w+P//ALVMAAAYI/r669f/ALVkAAB///8A////ACVPAABxgP9//9T/AE1OAAB/D//w////APFRAAAqGvX19dz/ADhJAAAXOv//5MT/AGs9AAAAAAAAAAD/AKlVAAAZMf//683/AGBLAACq//8AAP//AIURAADAzuKKK+L/AOYyAAAAvqWlKir/ACNVAAAXY97euIf/AGZKAACAZ6BfnqD/AFlNAAA///9//wD/ADZNAAAR2tLSaR7/AGU7AAALr///f1D/AHVKAACak+1kle3/ABY9AAAhIv//+Nz/ADQzAAD259zcFDz/AH03AAB///8A////APRKAACq/4sAAIv/AG83AAB//4sAi4v/AO5UAAAe77i4hgv/AG8IAAAAAKmpqan/AI02AABV/2QAZAD/AKQHAAAAAKmpqan/AH8+AAAnbr29t2v/AMlkAADU/4uLAIv/AMQ2AAA6jmtVay//ANVRAAAX////jAD/AIdXAADGwMyZMsz/AFZZAAAA/4uLAAD/ALQzAAAKeenplnr/ACY3AABVPbyPvI//AC9LAACvj4tIPYv/AJEIAAB/Z08vT0//AMYHAAB/Z08vT0//ABJOAACA/9EAztH/AHURAADH/9OUANP/ALY8AADo6///FJP/ABdKAACK//8Av///AGIIAAAAAGlpaWn/AJcHAAAAAGlpaWn/AIlKAACU4f8ekP//AE89AAAAzrKyIiL/AKRMAAAcD///+vD/AFA2AABVwIsiiyL/AI5lAADU////AP//ANwxAAAAANzc3Nz/AINMAACqB//4+P//AMxWAAAj////1wD/ABRVAAAe2drapSD/AMMIAAAAAICAgID/AE83AABV/4AAgAD/AJYKAAA70P+t/y//APgHAAAAAICAgID/AJ8LAABVD//w//D/AJo8AADplv//abT/AEdZAAAAjM3NXFz/ADoyAADC/4JLAIL/AH4GAAAqD/////D/AI4+AAAmavDw5oz/AN8fAACqFPrm5vr/AM0/AADwD///8PX/AH42AABA//x8/AD/AAI1AAAmMf//+s3/AFdKAACJP+at2Ob/AFU7AAAAd/DwgID/AGA3AAB/H//g////AKcKAAAqKPr6+tL/AFMIAAAAANPT09P/AGE2AABVZO6Q7pD/AIgHAAAAANPT09P/AKc8AAD4Sf//tsH/AKMzAAAMhP//oHr/AP82AAB90bIgsqr/AAVKAACPdfqHzvr/AH0IAACUOJl3iJn/ALIHAACUOJl3iJn/AMJKAACXNN6wxN7/AIUKAAAqH////+D/AK1PAABV//8A/wD/ANg2AABVwM0yzTL/APo1AAAVFPr68Ob/ANpkAADU////AP//AJczAAAA/4CAAAD/AA9PAABxgM1mzar/ALJKAACq/80AAM3/AHVXAADMmNO6VdP/AHVQAAC3fNuTcNv/ABI3AABnqbM8s3H/ABpLAACwj+57aO7/AJw2AABv//oA+pr/AP1NAAB9p9FI0cz/ALJYAADk5MfHFYX/AEVKAACqxnAZGXD/AF85AABqCf/1//r/AJdNAAAEHv//5OH/ACo1AAAaSf//5LX/AJNMAAAZUf//3q3/AIwEAACq/4AAAID/AHlUAAAbF/399eb/AOJIAAAq/4CAgAD/AJ9kAAA4wI5rjiP/AOVRAAAb////pQD/AKlZAAAL////RQD/AJdXAADWe9racNb/AAFVAAAmSO7u6Kr/AOc2AABVZPuY+5j/ACVOAAB/Q+6v7u7/AMdYAADxfNvbcJP/ADAwAAAaKf//79X/AGNGAAAURv//2rn/ABgMAAAUsM3NhT//AM08AAD3P///wMv/ANk4AADURt3doN3/AJlKAACEO+aw4Ob/ANFQAADU/4CAAID/APNZAAAA////AAD/AKgyAAAAPby8j4//AOVKAACfteFBaeH/ANUyAAAR3IuLRRP/AMQzAAAEivr6gHL/ALcyAAATmvT0pGD/ADg3AABnqosui1f/ABg6AAAREP//9e7/AFRlAAANt6CgUi3/ALMeAAAAAMDAwMD/AChKAACLbOuHzuv/AEJLAACvj81qWs3/AKQIAACUOJBwgJD/ANkHAACUOJBwgJD/AFoKAAAABf//+vr/ALM2AABq//8A/3//ANZKAACSm7RGgrT/AJY3AAAYVNLStIz/APA7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AAA///9//wD/AKGtAAA//+527gD/ALifAAA//81mzQD/AAeTAAA//4tFiwD/ADtNAAAR2tLSaR7/AAm8AAAR2///fyT/AJatAAAR2+7udiH/AK2fAAAR2s3NZh3/APySAAAR3IuLRRP/AGo7AAALr///f1D/ABO7AAAHqf//clb/AK2sAAAGqe7ualD/AMyeAAAGqc3NW0X/ABuSAAAGqIuLPi//AHpKAACak+1kle3/ABs9AAAhIv//+Nz/ADi7AAAhIv//+Nz/ANKsAAAiI+7u6M3/APGeAAAiIs3NyLH/AECSAAAjIouLiHj/ADkzAAD259zcFDz/AII3AAB///8A////APi6AAB///8A////AJKsAAB//+4A7u7/ALGeAAB//80Azc3/AACSAAB//4sAi4v/APlKAACq/4sAAIv/AHQ3AAB//4sAi4v/APNUAAAe77i4hgv/AJG8AAAe8P//uQ//AA2uAAAe8O7urQ7/ACSgAAAe8M3NlQz/AHqTAAAe8IuLZQj/AHQIAAAAAKmpqan/AJI2AABV/2QAZAD/AKkHAAAAAKmpqan/AIQ+AAAnbr29t2v/AM5kAADU/4uLAIv/AMk2AAA6jmtVay//AMq6AAA6j//K/3D/AGSsAAA6j+687mj/AIOeAAA6j82izVr/ANKRAAA6j4tuiz3/ANpRAAAX////jAD/AGS8AAAV////fwD/APGtAAAV/+7udgD/AAigAAAV/83NZgD/AF6TAAAV/4uLRQD/AIxXAADGwMyZMsz/AL+8AADGwf+/Pv//ADuuAADGwO6yOu7/AFKgAADGwM2aMs3/AKiTAADGwItoIov/AFtZAAAA/4uLAAD/ALkzAAAKeenplnr/ACs3AABVPbyPvI//AOW6AABVPv/B/8H/AH+sAABVPu607rT/AJ6eAABVPs2bzZv/AO2RAABVPotpi2n/ADRLAACvj4tIPYv/AJYIAAB/Z08vT0//AC66AAB/aP+X////ANOrAAB/Z+6N7u7/AASeAAB/aM15zc3/AFiRAAB/aItSi4v/AMsHAAB/Z08vT0//ABdOAACA/9EAztH/AHoRAADH/9OUANP/ALs8AADo6///FJP/AC67AADo6///FJP/AMisAADo6+7uEon/AOeeAADo683NEHb/ADaSAADn7IuLClD/ABxKAACK//8Av///AJm7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AACfts06X83/AMuSAACft4snQIv/ANoyAAAR3IuLRRP/AMkzAAAEivr6gHL/AJi6AAAJlv//jGn/AEGsAAAJlu7ugmL/AGCeAAAJls3NcFT/AK+RAAAJlouLTDn/ALwyAAATmvT0pGD/AD03AABnqosui1f/AOm6AABnq/9U/5//AIOsAABnq+5O7pT/AKKeAABnq81DzYD/APGRAABnqosui1f/AB06AAAREP//9e7/AAm7AAAREP//9e7/AKOsAAASEe7u5d7/AMKeAAASEc3Nxb//ABGSAAASEIuLhoL/AFllAAANt6CgUi3/AAS9AAANuP//gkf/AICuAAANuO7ueUL/AJegAAANuM3NaDn/AO2TAAANuYuLRyb/ALgeAAAAAMDAwMD/AC1KAACLbOuHzuv/AJ27AACQeP+Hzv//ACqtAACQeO5+wO7/AEGfAACQeM1sps3/AJCSAACRd4tKcIv/AEdLAACvj81qWs3/AOO7AACvkP+Db///AHCtAACvkO56Z+7/AIefAACvkM1pWc3/ANaSAACvkItHPIv/AKkIAACUOJBwgJD/ADK6AACVOP/G4v//ANerAACVOO650+7/AAieAACUOc2fts3/AFyRAACVOItse4v/AN4HAACUOJBwgJD/AF8KAAAABf//+vr/AEG6AAAABf//+vr/AOarAAAABe7u6en/ABeeAAAABM3Nycn/AGuRAAAAA4uLiYn/ALg2AABq//8A/3//AL26AABq//8A/3//AFesAABq/+4A7nb/AHaeAABq/80AzWb/AMWRAABq/4sAi0X/ANtKAACSm7RGgrT/AM27AACSnP9juP//AFqtAACSnO5crO7/AHGfAACSnM1PlM3/AMCSAACTm4s2ZIv/AJs3AAAYVNLStIz/AP66AAAUsP//pU//AJisAAAUsO7umkn/ALeeAAAUsM3NhT//AAaSAAAUsIuLWiv/APU7AAB//4AAgID/AGdQAADUHdjYv9j/AE28AADUHv//4f//ANqtAADUHu7u0u7/APGfAADUHc3Ntc3/AEeTAADUHYuLe4v/AMoxAAAGuP//Y0f/AHi6AAAGuP//Y0f/ACGsAAAGuO7uXEL/AECeAAAGuM3NTzn/AI+RAAAGuYuLNib/ACMQAAAqAP////4AAD1OAAB7tuBA4ND/AC+8AACB//8A9f//ALytAACB/+4A5e7/ANOfAACB/80Axc3/ACKTAACB/4sAhov/AJoRAADUc+7ugu7/ANBYAADj19DQIJD/AM+8AADrwf//Ppb/AEuuAADrwO7uOoz/AGKgAADrwM3NMnj/ALiTAADrwIuLIlL/ALMIAAAAAICAgID/APY2AABV/4AAgAD/AOgHAAAAAICAgID/AIMzAAAA/4CAAAD/AJJQAADU/4CAAID/AHIUAAAbRPX13rP/AGe6AAAbRf//57r/ABCsAAAbRO7u2K7/ADSeAAAbRM3Nupb/AIiRAAAbQ4uLfmb/AMxMAAAAAP//////ALtRAAAAAPX19fX/ALsIAAAAAL6+vr7/AEY3AABV//8A/wD/APAHAAAAAL6+vr7/AI0zAADvubCwMGD/AMdQAADE3fCgIPD/AMYKAAAq/////wD/AEy6AAAq/////wD/APGrAAAq/+7u7gD/ACKeAAAq/83NzQD/AHaRAAAq/4uLiwD/ADI2AAA4wM2azTL/AEGwjQcLA7R7AgBBvo0HC4UIoED/////////////////////////////////////////////////////////////////////////////////////AAKqAkQDAAQABKoGOQZxAaoCqgIABIMEAAKqAgACOQIABAAEAAQABAAEAAQABAAEAAQABDkCOQKDBIMEgwSNA14HxwVWBVYFxwXjBHMExwXHBaoCHQPHBeMEHQfHBccFcwTHBVYFcwTjBMcFxwWNB8cFxwXjBKoCOQKqAsEDAASqAo0DAASNAwAEjQOqAgAEAAQ5AjkCAAQ5AjkGAAQABAAEAASqAh0DOQIABAAExwUABAAEjQPXA5oB1wNUBP///////////////////////////////////////////////////////////////////////////////////////wACqgJxBAAEAAQACKoGOQKqAqoCAASPBAACqgIAAjkCAAQABAAEAAQABAAEAAQABAAEAASqAqoCjwSPBI8EAARxB8cFVgXHBccFVgXjBDkGOQYdAwAEOQZWBY0HxwU5BuMEOQbHBXMEVgXHBccFAAjHBccFVgWqAjkCqgKmBAAEqgIABHMEjQNzBI0DqgIABHMEOQKqAnMEOQKqBnMEAARzBHMEjQMdA6oCcwQABMcFAAQABI0DJwPDAScDKQT///////////////////////////////////////////////////////////////////////////////////////8AAqoCXAMABAAEqgY5BrYBqgKqAgAEZgUAAqoCAAI5AgAEAAQABAAEAAQABAAEAAQABAAEqgKqAmYFZgVmBQAEXAfjBOMEVgXHBeME4wTHBccFqgKNA1YFcwSqBlYFxwXjBMcF4wQABHMExwXjBKoG4wRzBHMEHQM5Ah0DYAMABKoCAAQABI0DAASNAzkCAAQABDkCOQKNAzkCxwUABAAEAAQABB0DHQM5AgAEjQNWBY0DjQMdAzMDMwIzA1QE////////////////////////////////////////////////////////////////////////////////////////AAIdA3EEAAQABKoGOQY5AqoCqgIABI8EAAKqAgACOQIABAAEAAQABAAEAAQABAAEAAQABKoCqgKPBI8EjwQABKgGVgVWBVYFxwVWBVYFxwU5Bh0DAARWBeMEHQfHBccF4wTHBVYFcwTjBMcFVgUdB1YF4wTjBKoCOQKqAo8EAASqAgAEAASNAwAEjQOqAgAEcwQ5AjkCAAQ5AjkGcwQABAAEAAQdAx0DOQJzBI0DVgUABI0DHQPJAsMByQKPBP//3HsCAEHOlQcLhQigQP////////////////////////////////////////////////////////////////////////////////////85AjkC1wJzBHMEHQdWBYcBqgKqAh0DrAQ5AqoCOQI5AnMEcwRzBHMEcwRzBHMEcwRzBHMEOQI5AqwErASsBHMEHwhWBVYFxwXHBVYF4wQ5BscFOQIABFYFcwSqBscFOQZWBTkGxwVWBeMExwVWBY0HVgVWBeMEOQI5AjkCwQNzBKoCcwRzBAAEcwRzBDkCcwRzBMcBxwEABMcBqgZzBHMEcwRzBKoCAAQ5AnMEAATHBQAEAAQABKwCFAKsAqwE////////////////////////////////////////////////////////////////////////////////////////OQKqAssDcwRzBB0HxwXnAaoCqgIdA6wEOQKqAjkCOQJzBHMEcwRzBHMEcwRzBHMEcwRzBKoCqgKsBKwErATjBM0HxwXHBccFxwVWBeMEOQbHBTkCcwTHBeMEqgbHBTkGVgU5BscFVgXjBMcFVgWNB1YFVgXjBKoCOQKqAqwEcwSqAnME4wRzBOMEcwSqAuME4wQ5AjkCcwQ5Ah0H4wTjBOME4wQdA3MEqgLjBHMEOQZzBHMEAAQdAz0CHQOsBP///////////////////////////////////////////////////////////////////////////////////////zkCOQLXAnMEcwQdB1YFhwGqAqoCHQOsBDkCqgI5AjkCcwRzBHMEcwRzBHMEcwRzBHMEcwQ5AjkCrASsBKwEcwQfCFYFVgXHBccFVgXjBDkGxwU5AgAEVgVzBKoGxwU5BlYFOQbHBVYF4wTHBVYFjQdWBVYF4wQ5AjkCOQLBA3MEqgJzBHMEAARzBHMEOQJzBHMExwHHAQAExwGqBnMEcwRzBHMEqgIABDkCcwQABMcFAAQABAAErAIUAqwCrAT///////////////////////////////////////////////////////////////////////////////////////85AqoCywNzBHMEHQfHBecBqgKqAh0DrAQ5AqoCOQI5AnMEcwRzBHMEcwRzBHMEcwRzBHMEqgKqAqwErASsBOMEzQfHBccFxwXHBVYF4wQ5BscFOQJzBMcF4wSqBscFOQZWBTkGxwVWBeMExwVWBY0HVgVWBeMEqgI5AqoCrARzBKoCcwTjBHME4wRzBKoC4wTjBDkCOQJzBDkCHQfjBOME4wTjBB0DcwSqAuMEcwQ5BnMEcwQABB0DPQIdA6wE//8QfAIAQd6dBwuFCKBA/////////////////////////////////////////////////////////////////////////////////////80EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQT////////////////////////////////////////////////////////////////////////////////////////NBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0E////////////////////////////////////////////////////////////////////////////////////////zQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBP///////////////////////////////////////////////////////////////////////////////////////80EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQT//zh8AgBB7aUHC4YIQI9AAAD///////////////////////////////8CAf///////////////////////////////////////////////wIB5ACIAVgCWAKiA7UC3QA9AT0BwgFYAuQAqAHkABsBWAJYAlgCWAJYAlgCWAJYAlgCWALkAOQAWAJYAlgCuwGyA9kCpAKhAuYCRwIkAtYC+QIBAUQBcQIfAlcD5AL/AnkC/wKdAmcCWgLYArECTQSKAlQCTQI7ARsBOwFYAvQB9AESAkcCzwFHAhQCTQFKAjgC6ADsAPQBKAFYAzgCLAJHAkcCZgHhAV4BMQIDAkkDDQICAs8BYAEJAWABWAL//wAA////////////////////////////////DwH///////////////////////////////////////////////8PAfgAwAFYAlgCsQPWAvMAZgFmAcUBWAL4ALIB+AA5AVgCWAJYAlgCWAJYAlgCWAJYAlgC+AD4AFgCWAJYAssBtgPoArACqAL6AlUCMgLgAgUDGgFiAZkCMgJkA+wCEQOMAhEDrgJ3Am0C4gLJAlkEoAJqAl0CYgE5AWIBWAL0AfQBIwJYAtgBWAIeAmwBXAJJAv8AAwEYAj8BbQNJAkACWAJYAogB6AGAAUMCDwJVAyICDgLaAYcBIAGHAVgC//8AAP///////////////////////////////wIB////////////////////////////////////////////////AgHkAIgBWAJYAqIDtQLdAD0BPQHCAVgC5ACoAeQAGwFYAlgCWAJYAlgCWAJYAlgCWAJYAuQA5ABYAlgCWAK7AbID2QKkAqEC5gJHAiQC1gL5AgEBRAFxAh8CWAPjAv8CeQL/Ap0CZwJaAtgCsAJNBIoCVAJNAjsBGwE7AVgC9AH0ARICRwLPAUcCFAJNAUoCOALoAOwA9AEoAVgDOAIsAkcCRwJmAeEBXgExAgMCSQMNAgICzwFgAQkBYAFYAv//AAD///////////////////////////////8PAf///////////////////////////////////////////////w8B+ADAAVgCWAKxA9YC8wBmAWYBxQFYAvgAsgH4ADkBWAJYAlgCWAJYAlgCWAJYAlgCWAL4APgAWAJYAlgCywG2A+gCsAKoAvoCVQIyAuACBQMaAWIBmAIyAmUD6wIRA4wCEQOuAncCbQLiAskCWQSgAmoCXQJiATkBYgFYAvQB9AEjAlgC2AFYAh4CbAFcAkkC/wADARgCPwFtA0kCQAJYAlgCiAHoAYABQwIPAlUDIgIOAtoBhwEgAYcBWAL//0B8AgBB/q0HC4UIoED/////////////////////////////////////////////////////////////////////////////////////iwI1A64DtAYXBZoHPQYzAh8DHwMABLQGiwLjAosCsgIXBRcFFwUXBRcFFwUXBRcFFwUXBbICsgK0BrQGtAY/BAAIeQV9BZYFKQYOBZoEMwYEBlwCXAI/BXUE5wb8BUwG0wRMBo8FFAXjBNsFeQXpB3sF4wR7BR8DsgIfA7QGAAQABOcEFAVmBBQF7ATRAhQFEgU5AjkCogQ5AssHEgXlBBQFFAVKAysEIwMSBbwEiwa8BLwEMwQXBbICFwW0Bv///////////////////////////////////////////////////////////////////////////////////////8kCpgMrBLQGkQUECPoGcwKoA6gDLwS0BgoDUgMKA+wCkQWRBZEFkQWRBZEFkQWRBZEFkQUzAzMDtAa0BrQGpAQACDEGGQbfBaQGdwV3BZEGsgb6AvoCMwYZBfYHsgbNBt0FzQYpBsMFdQV/BjEG0wgrBssFzQWoA+wCqAO0BgAEAARmBboFvgS6BW0FewO6BbIFvgK+AlIFvgJWCLIFfwW6BboF8gPDBNMDsgU3BWQHKQU3BagEsgXsArIFtAb///////////////////////////////////////////////////////////////////////////////////////+LAjUDrgO0BhcFmgc9BjMCHwMfAwAEtAaLAuMCiwKyAhcFFwUXBRcFFwUXBRcFFwUXBRcFsgKyArQGtAa0Bj8EAAh5BX0FlgUpBg4FmgQzBgQGXAJcAj8FdQTnBvwFTAbTBEwGjwUUBeME2wV5BekHewXjBHsFHwOyAh8DtAYABAAE5wQUBWYEFAXsBNECFAUSBTkCOQKiBDkCywcSBeUEFAUUBUoDKwQjAxIFvASLBrwEvAQzBBcFsgIXBbQG////////////////////////////////////////////////////////////////////////////////////////yQKmAysEkQWRBQQI+gZzAqgDqAMvBLQGCgNSAwoD7AKRBZEFkQWRBZEFkQWRBZEFkQWRBTMDMwO0BrQGtAakBAAIMQYZBt8FpAZ3BXcFkQayBvoC+gIzBhkF9geyBs0G3QXNBikGwwV1BX8GMQbTCCsGywXNBagD7AKoA7QGAAQABGYFugW+BLoFbQV7A7oFsgW+Ar4CUgW+AlYIsgV/BboFugXyA8ME0wOyBTcFZAcpBTcFqASyBewCsgW0Bv//SHwCAEGOtgcLhQigQGYE////////////////////////////////AAD///////////////////////////////////////////////9mBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYE//9mBP///////////////////////////////wAA////////////////////////////////////////////////ZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBP//ZgT///////////////////////////////8AAP///////////////////////////////////////////////2YEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgT///////////////////////////////////////////////////////////////////////////////////////9mBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYE//9UfAIAQZ6+BwuFCKBA/////////////////////////////////////////////////////////////////////////////////////2kC8AKZAjIEMgTNBKYFRwHwAvAC8AIyBPAC8ALwAjIEMgQyBDIEMgQyBDIEMgQyBDIEMgTwAvACMgQyBDIE8AIqBrgEhwTJBOgESQQzBGkFPAU6AtADmwQNBK0FGwVkBXYEaAWoBNkDpQQwBbME0QZ0BJAEZwTwAtgC8AIyBDIEMgQ0BHUE9gN1BF0E9QIEBF8ESALvAgkEXAKkBl8ESwR1BHUEHAM9AywDXwTrA/QFAgTyA8wD8AIyBPACMgT///////////////////////////////////////////////////////////////////////////////////////9pAvAC7wKwBLAEeQWmBdYB8ALwAnUDsATwAvAC8AIfA7AEsASwBLAEsASwBLAEsASwBLAE8ALwArAEsASwBIEDKgYRBcME5QQkBY0EqwRfBXgFOgJDBPAEbAT2BVcFoAWyBKwF4wQXBOUEbAX5BBIHzgToBHsENwPYAjcDsASwBLAEQwSnBBgEpQSZBPUCBAS+BGMC7wJiBFwC4Aa5BIcEqQSsBGsDcgMsA7oEOARFBmsERQQ6BHgDsAR4A7AE////////////////////////////////////////////////////////////////////////////////////////aQLwApkCMgTZA80EpgVHAfAC8ALwAjIE8ALwAvACMgQyBDIEMgQyBDIEMgQyBDIEMgQyBPAC8AIyBDIEMgTwAioG4wSHBMkE6ARJBDMEaQU8BToC0AObBA0EFwYbBWQFWQRkBagE2QOlBDAFswTRBnQEkARnBPAC2ALwAjIEMgQyBDQEdQSuA3UETAQ2AwQEdQR0Au8CCQSQAqQGXwRLBHUEdQRVAz0DXAN0BOsD9AUCBPIDzAPwAjIE8AIyBP///////////////////////////////////////////////////////////////////////////////////////2kC8AIgA7AEsATcBaYFaQLwAvACdQOwBPAC8ALwAi0DsASwBLAEsASwBLAEsASwBLAEsATwAvACsASwBLAELQMqBukEuATnBA8FvwSvBGkFbQU6Av0DMwU6BEoGSAWeBasEKAb9BAMEewVLBXcFaQdBBXgF5ATiA9ID4gOwBLAEsAS+BL8E8QO/BGoESANIBH8EnQIaA1EEjwKkBn8EjwTKBMoEkwOsA4EDdQRrBDAGmwSDBEME4gOwBOIDsAT//2B8AgBBrsYHC4UIoED/////////////////////////////////////////////////////////////////////////////////////0AImA6wDjAYWBZwI0AUmAqIDogMWBYwG6QKiA+kCogMWBRYFFgUWBRYFFgUWBRYFFgUWBaIDogOMBowGjAZdBAAIeAV8BZYFKgYPBZkENAYDBl4DowOLBXQEvgb8BUwG0wRMBpAFeAXuBNsFeAXpB3sF7AR7BaIDogOiA4wGFgUWBc4E/AQrBPwExATQAvwEEAUyAsECvAQyAsgHEAXbBPwE/ARqAysEJwMQBbwEjAa8BLwENAQUBaIDFAWMBv///////////////////////////////////////////////////////////////////////////////////////7wCOAOzBPAGsAUtCuYGqAJZBFkEsAXwBuQC1wPkAoQFsAWwBbAFsAWwBbAFsAWwBbAFsAU4AzgD8AbwBvAG7wS2BzYGGAbKBaQGdwU0BX0GswZeBHEEKwYZBZUHxgbNBt0FzQZCBq8FdAV/BhwGBwkcBuUFiQVZBIQFWQTwBrAFsAVYBZgFtQSYBVAFYQOYBbMFvAI5A14FvAJ3CLMFfgWYBZgF+gO/BKUDswUzBdYHWgU1BcYEsAVZBLAF8Ab////////////////////////////////////////////////////////////////////////////////////////QAiYDrAOMBhYFnAjQBSYCogOiAxYFjAbpAqID6QKiAxYFFgUWBRYFFgUWBRYFFgUWBRYFogOiA4wGjAaMBl0EAAh2BXwFlgUgBg8FmQQ0BgMGXgOjA4sFdAS+BvwFTAbTBEwGkAV4Be4E2wV2BewHewXsBHsFogOiA6IDjAYWBRYFzgT8BCsE/ATEBNAC+QQQBTICwQKyBDICyQcQBdsE/AT8BGoDKwQnAxAFugSMBrwEugQ0BBQFogMUBYwG////////////////////////////////////////////////////////////////////////////////////////vAI4A7ME8AawBS0K5gaoAlkEWQSwBfAG5ALXA+QChAWwBbAFsAWwBbAFsAWwBbAFsAWwBTgDOAPwBvAG8AbvBLYHNgYYBsoFpAZ3BTQFfQazBl4EcQQrBhkFlQfGBs0G3QXNBkIGrwV0BX8GHAYHCRwG5QWJBVkEhAVZBPAGsAWwBVgFmAW1BJgFUAVhA5gFswW8AjkDXgW8AncIswV8BZgFmAX6A78EpQOzBTEF1gdaBTUFxgSwBVkEsAXwBv//aHwCAEG+zgcLhQigQP////////////////////////////////////////////////////////////////////////////////////8UAiMCNQMrBZMElgbXBcUBXgJeAmoEkwT2AZMCIQLwApMEkwSTBJMEkwSTBJMEkwSTBJMEIQIhApMEkwSTBG8DMQcQBS8FDAXVBXMEIQTTBecFOwIjAukEJwQ5BwgGOwbRBDsG8gRkBG0E0wXDBGgHngR7BJEEogLwAqICVgSWA54EcwTnBM8D5wR9BLYCYgTpBAYCBgIzBAYCcQfpBNUE5wTnBEQD0QPTAukEAgQ5BjEECAS+AwgDaAQIA5ME////////////////////////////////////////////////////////////////////////////////////////FAJKAscDKwWRBDUHAAYhArYCtgJcBJEEUgKTAkgCTgORBJEEkQSRBJEEkQSRBJEEkQSRBEgCUgKRBJEEkQTRAy0HhQVgBRkF7AV7BGQEywUfBqYCpgJQBYUEiweBBl4GBgVeBkgFaASiBAwGMwW8B1YF/gSiBKYCTgOmAkIESgPbBNUEEAUdBBAFugQZA4UEQgVxAnEC9gRxAtsHQgX0BBAFEAWiA/oDeQNCBY0E2QagBI0E5wMnA2gEJwORBP///////////////////////////////////////////////////////////////////////////////////////xQCEgIXAysFaARYBlwFvAFIAkgCagRoBOwBfwIGAs0CaARoBGgEaARoBGgEaARoBGgEaAQGAgYCaARoBGgEagPHBnEEyQSuBFQFFwTHA2oFbQUvAiMCdQTLA7IGngXDBYcEwwWNBAQE/ANoBWIE0QYnBAYEPwRKAs0CSgIjBCcDbwSFBJ4EmgOeBPIDgQICBJ4ECAIIAucDCAL6Bp4EfQSeBJ4EKwNtA5gCngSyA7wF0wOyA40DywJoBMsCaAT///////////////////////////////////////////////////////////////////////////////////////8UAkoCoAMrBWgE2QaqBQoCtgK2AlwEaAQ5ApMCSAJeA2gEaARoBGgEaARoBGgEaARoBGgESAJIAmgEaARoBKwD2QYGBfYE5QRqBVYEPwSFBZoFkwKmAucEJQQKBwoG1wWkBNcF3wQ9BD8EhwW4BCcH2QSDBEoEpgJeA6YCOQQzA28EwQTDBN0DwQR1BPwCVATVBGACYAKLBGACPQfVBK4EwwTBBF4DyQNIA9UEGQROBj8EJwSkA9cCaATXAmgE//9wfAIAQc7WBwuFCKBA/////////////////////////////////////////////////////////////////////////////////////+4BpgJLAyUF4QSKBq8FuQEAAwADxwMlBSgC/gIoAsAD6QRwA3gEagSFBDoEhwQFBMUEhwSAAoACJQUlBSUF1ANuB14FOwUjBf4FOgXLBM0FhQYeAyQEjgXUBGsHIwb0BeEE9AWdBX0E8wQNBlUFzgevBewE0AQAA8ADAAMlBSUFAAQIBHsEogOYBN4DmgITBKgEWAJWAkkESgIMB7oEUASSBHoERwN1A8MCmgT5A+YFCgTwA40DcQMAA3EDJQX///////////////////////////////////////////////////////////////////////////////////////8IAgMDFASgBSAFCQdlBicCkwOTA9sDoAWgAggDoALGA5wF6wMDBf8EMgXLBC8FbwRpBS8F8ALwAqAFoAWgBWMEvAcRBg8GuQWsBsUFXwV1Bk4HkQPDBIkGfAUwCLcGjwacBY8GYQYxBXkFqwYZBgMJeAbbBYQFkwPGA5MDoAWgBQAExAQqBUAETgWTBCUDnQRwBdQCxQIOBcECIAiFBRYFQwUwBSkEGgQuA2oFiQToBrQEfwQ0BAAEGgMABKAF////////////////////////////////////////////////////////////////////////////////////////7gGmAksDJQXhBIoGrwW5AQADAAPHAyUFKAL+AigCwAPpBHADeARqBIUEOgSHBPkDxQSHBBIDEgMlBSUFJQXUA24HXgU7BSMF/gU6BcsEzQWFBh4DJASOBdQEawcjBtgF4QTYBZ0FfQTzBA0GVQXOB68F7ATQBAADwAMAAyUFJQUABJUEbgShA5oExgOhApUEgARhAlQCOQRIAgkHuARMBKAEcQSxA3MDxwKaBE4ElAYCBHoEjQNxAwADcQMlBf///////////////////////////////////////////////////////////////////////////////////////wgCAwMUBKAFIAUJB2UGJwKTA5MD2wOgBaACCAOgAsYDnAXrAwMF/wQyBcsELwWIBGkFLwXwAvACoAWgBaAFYwS8BxEGEwa5BawGxQVfBXUGTgebA8MEiQZ8BUQIowaPBqYFjwZhBjkFeQWrBhkGAwlrBtsFhAWTA8YDkwOgBaAFAARIBTEFSQRNBXUEDAMyBWcF7QLrAiEF1gIECIUFFgVNBTMFRQQjBFYDewXmBHgHqwRbBSMEAAQaAwAEoAX//3h8AgBB3t4HC8gKoED/////////////////////////////////////////////////////////////////////////////////////zwGbAjUD/AMOBLgFdQXEAW0CbQL8A/wD/wFzAgUCFwMOBA4EDgQOBA4EDgQOBA4EDgQOBCQCJAL8A/wD/AO1AycHoQRaBEQE7AToA60DDAX8BAQCjQIoBF0D1wYqBUwFIgRiBVgErQPmAyIFigQeBycE5gO/A3QCFwN0AvwD/ANUAtUDNARiAzQE+wNxAsQDNATWAeoBowPWAWQGNAQ4BDQENATKAiEDrgI0BJ0DuAV3A58DKQOEAq8DhAL8A///AAD///////////////////////////////8AAP///////////////////////////////////////////////88BmwKCA/wDDgTVBaMF3gF+An4C/AP8AxACcwIjAnADDgQOBA4EDgQOBA4EDgQOBA4EDgQ1AjUC/AP8A/wDtQMwB9kEfAQ8BAsF5wOsAxkFDAUiAqYCYARiA/4GRQVpBUIEfQWBBMgD9gM5BbsEQAdoBCgE0wOZAnADmQL8A/wDZwLzA0sEWQNLBAcEiALLA0sE9wELAtcD9wGCBksETQRLBEsE2AIxA8YCSwTJA/YFrQPKAy4DwALNA8AC/AP////////////////////////////////////////////////////////////////////////////////////////PAZsCNQP8Aw4EuAV1BcQBbQJtAvwD/AP/AXMCBQIaAw4EDgQOBA4EDgQOBA4EDgQOBA4EJAIkAvwD/AP8A7UDJwehBFoELgTsBOgDrQMMBfwEBAKNAigEXQPXBigFPAUiBFAFWASeA+YDIgWKBB8HJwTmA78DdAITA3QC/AP8A1QCHQQdBFQDHQTSA3ECHQQdBNYB6gGjA9YBVAYdBBsEHQQdBL4CHQOuAh0EkQO4BXcDlAMpA4QCrwOEAvwD////////////////////////////////////////////////////////////////////////////////////////zwGbAoID/AMOBNUFowXeAX4CfgL8A/wDEAJzAiMCeQMOBA4EDgQOBA4EDgQOBA4EDgQOBDUCNQL8A/wD/AO1AzAH2QR8BCYECwXnA6wDGQUMBSICpgJgBGID/gZABVkF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AABTLwAAGCEAACY+AAC+AwAAu0sAAP0AAACkNQAApQAAAJA5AAD/AAAA82QAALYDAAAMPgAADSAAABA+AAAMIAAAxkMBAAgAAAADAAAAK0MAAG3SAAALAAAABgAAACoYAABZbAAAAgAAAAEAAAC4LwAAjHcAAAQAAAACAAAAX0YAAAAEAAADAAAABAAAAFJFAAB50gAABQAAAAUAAAC2RgAABAQAAAQAAAAHAAAAABgAAIo5AAAFAAAACQAAAIw5AAD+bwAABAAAAAoAAAByRgAAsP4BAAQAAAAMAAAAnjIAAAAAAQAAAdDR0tPU1dbX2NkAQdb9BwsJ8L8AAAAAAAABAEHo/QcLDWludmlzAABmaWxsZWQAQYD+BwsaDR0AAJlUAAC1OAAAtgsAANt7AAAFyQAAPJEAQcD+Bwt5//////////////////////////////////////////8AAAAAAAAABP7//4f+//8HAAAAAAAAAAD//3////9///////////N//v3//////3///////////w/g/////zH8////AAAAAAAAAP//////////////AQD4AwBB0P8HC0FA1///+/////9/f1T9/w8A/t////////////7f/////wMA////////nxn////PPwMAAAAAAAD+////fwL+////fwBBmoAIC7MB////BwcAAAAAAP7//wf+BwAAAAD+//////////98/38vAGAAAADg////////IwAAAP8DAAAA4J/5///9xQMAAACwAwADAOCH+f///W0DAAAAXgAAHADgr/v///3tIwAAAAABAAAA4J/5///9zSMAAACwAwAAAODHPdYYx78DAAAAAAAAAADg3/3///3vAwAAAAADAAAA4N/9///97wMAAABAAwAAAODf/f///f8DAAAAAAMAQeCBCAsZ/v////9/DQA/AAAAAAAAAJYl8P6ubA0gHwBBiIIICwb//v///wMAQbSCCAty/////z8A/////38A7doHAAAAAFABUDGCq2IsAAAAAEAAyYD1BwAAAAAIAQL/////////////////////////D///////////////A///Pz//////Pz//qv///z/////////fX9wfzw//H9wfAAAAAEBMAEGwgwgLAQcAQcCDCAsmgAAAAP4DAAD+////////////HwD+/////////////wfg/////x8AQYCECAsV//////////////////////////8/AEGghAgLFf//////////////////////////DwBBxYQIC8kCYP8H/v//h/7//wcAAAAAAACAAP//f////3//////AAAAAAAAAP//////////////AQD4AwADAAAAAAD//////////z8AAAADAAAAwNf///v/////f39U/f8PAP7f///////////+3/////97AP///////58Z////zz8DAAAAAAAA/v///38C/v///38A/v/7//+7FgD///8HBwAAAAAA/v//B///BwD/A////////////3z/f+///z3/A+7////////z/z8e/8//AADun/n///3F0585gLDP/wMA5If5///9bdOHOQBewP8fAO6v+////e3zvzsAAMH/AADun/n///3N8485wLDD/wAA7Mc91hjHv8PHPYAAgP8AAO7f/f///e/D3z1gAMP/AADs3/3///3vw989YEDD/wAA7N/9///9/8PPPYAAw/8AQaCHCAs4/v////9//wf/f/8DAAAAAJYl8P6ubP87Xz//AwAAAAAAAAAD/wOgwv/+////A/7/3w+//v8//gIAQfqHCAtn/x8CAAAAoAAAAP7/PgD+////////////H2b+/////////////3dgAAAAYQAAAGIAAABjAAAAZAAAAGUAAABmAAAAZwAAAGgAAABpAAAAagAAAGsAAABsAAAAbQAAAG4AAABvAAAAAQBB8YgICwUVCgAACQBBiIkIC+ABFRAMExweAw0fICEiIxsaERkZGRkZGRkZGRkWEgIOCw8cGBgYGBgYFhYWFhYWFhYWFhYWFhYWFhYWFhYUHAQcFhwYGBgYGBgWFhYWFhYWFhYWFhYWFhYWFhYWFhwkHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcFhwcHBwcHBwcHBwWHBocHBYcHBwcHBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWHBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYcFhYWFhYWFhYAQZCLCAsSAgMEBQYHCAAACQoLDA0ODxARAEGuiwgLBBITABQAQcCLCAsCFRYAQd6LCAtSAQEBAQEBAQEBAQEBAQEBAQEBAQEB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ACdxAAA+cAAA6W8AAG1vAABJbwAAIW8AAB9vAAAcbwAAY2wAAE1sAAAcbAAAGmwAAAlsAAAHbAAAZWsAAElrAACwagAArmoAAKxqAACqagAAKmgAAAFoAAD/ZwAA5GcAAOJnAABPZgAATWYAAOtlAADpZQAAr2QAAC9kAAASXQAAmVQAAIRHAADHRQAArUIAAL8+AAAcPgAACj4AAEo8AABsOQAAtTgAAKYyAAB5MQAAFSEAANEgAAANHQAA1BUAAIgMAAAEDAAAtgsAACcKAABJCQAAeQQAAEQEAAA7BAAALwQAAAkEAAA2cAAAAAAAAAgArv/RAAoArv+u/wsArv+u/67/rv+u/67/rv+u/wUA0QCu/9EA0QDRANEA0QDRANEA0QCu//v/rv8OAOz/rv+u/67/rv/RANEA0QDRANEADQAlAAwAQgAQAFAAEwBtAHsAFACYAA8ApgDDAK7/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/xcArv93AK7/BwAuAK7/JgCu/xcAEQAjAK7/DQCu/67/rv+u/zoArv+u/zUArv+u/67/KACu/wcArv87AEUArv9IAK7/rv+u/67/rv8AQfG/CAvBBgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygAAAAAAAAAAAICAgICAhAMWQEAH1AIAwcSExRXFhcIC2kMHwoFDA4pESsPLRAvMCAyBjQ1GxwdHgsMISIjJCUmJygMGBkXBAobHBogKgohIiMkJSYnKAwKDlMKLFgxWFhYWFhYDBscDy5YMyEiIyQlJicoGxz/U///ISIj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cm1hdGlvbgBJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBNdWx0aWhvcCBhdHRlbXB0ZWQAUmVxdWlyZWQga2V5IG5vdCBhdmFpbGFibGUAS2V5IGhhcyBleHBpcmVkAEtleSBoYXMgYmVlbiByZXZva2VkAEtleSB3YXMgcmVqZWN0ZWQgYnkgc2VydmljZQAAAAAApQJbAPABtQWMBSUBgwYdA5QE/wDHAzEDCwa8AY8BfwPKBCsA2gavAEIDTgPcAQ4EFQChBg0BlAILAjgGZAK8Av8CXQPnBAsHzwLLBe8F2wXhAh4GRQKFAIICbANvBPEA8wMYBdkA2gNMBlQCewGdA70EAABRABUCuwCzA20A/wGFBC8F+QQ4AGUBRgGfALcGqAFzAlMBAEGIjQkLDCEEAAAAAAAAAAAvAgBBqI0JCwY1BEcEVgQAQb6NCQsCoAQAQdKNCQsiRgVgBW4FYQYAAM8BAAAAAAAAAADJBukG+QYeBzkHSQdeBwBBgI4JC5EB0XSeAFedvSqAcFIP//8+JwoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFGAAAADUAAABxAAAAa////877//+Sv///AAAAAAAAAAAZAAsAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkACgoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQBBoY8JCyEOAAAAAAAAAAAZAAsNGRkZAA0AAAIACQ4AAAAJAA4AAA4AQduPCQsBDABB548JCxUTAAAAABMAAAAACQwAAAAAAAwAAAwAQZWQCQsBEABBoZAJCxUPAAAABA8AAAAACRAAAAAAABAAABAAQc+QCQsBEgBB25AJCx4RAAAAABEAAAAACRIAAAAAABIAABIAABoAAAAaGhoAQZKRCQsOGgAAABoaGgAAAAAAAAkAQcORCQsBFABBz5EJCxUXAAAAABcAAAAACRQAAAAAABQAABQAQf2RCQsBFgBBiZIJCycVAAAAABUAAAAACRYAAAAAABYAABYAADAxMjM0NTY3ODlBQkNERUYAQdSSCQsCAwIAQfySCQsI//////////8AQcCTCQv1CP////////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAECBAcDBgUAAAAAAAAAAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADAFAAAwBUAAMAWAADAFwAAwBgAAMAZAADAGgAAwBsAAMAcAADAHQAAwB4AAMAfAADAAAAAswEAAMMCAADDAwAAwwQAAMMFAADDBgAAwwcAAMMIAADDCQAAwwoAAMMLAADDDAAAww0AANMOAADDDwAAwwAADLsBAAzDAgAMwwMADMMEAAzbAAAAAIRMAgAFAgAABgIAAAcCAAAIAgAACQIAAAoCAAALAgAADAIAAA0CAAAOAgAADwIAABACAAARAgAAEgIAAAQAAAAAAAAAwEwCABMCAAAUAgAA/P////z////ATAIAFQIAABYCAADoSwIA/EsCAAAAAAAITQIAFwIAABgCAAAHAgAACAIAABkCAAAaAgAACwIAAAwCAAANAgAAGwIAAA8CAAAcAgAAEQIAAB0CAAD4dwIAWEwCABxOAgBOU3QzX18yOWJhc2ljX2lvc0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQAAANB3AgCMTAIATlN0M19fMjE1YmFzaWNfc3RyZWFtYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAAAAAFR4AgDYTAIAAAAAAAEAAABMTAIAA/T//05TdDNfXzIxM2Jhc2ljX29zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUAAPh3AgAUTQIAhEwCAE5TdDNfXzIxNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAAAAOAAAAAAAAAC4TQIAHgIAAB8CAADI////yP///7hNAgAgAgAAIQIAAGRNAgCcTQIAsE0CAHhNAgA4AAAAAAAAAMBMAgATAgAAFAIAAMj////I////wEwCABUC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ABUAAABURgAAAAAAAKZeAADqSQAA2GUAQbz+CQseREkAABEAAABURgAAAAAAAKZeAAAXVwAA/G4AANZWAEHk/gkLOhoAAABORgAA1lYAAAAAAAATXwAA/G4AANZWAAAAAAAApl4AABsAAABORgAA1lYAAKZeAABMXwAA/G4AQaj/CQsepl4AABkAAABORgAAAAAAAKZeAADzNwAA/G4AANI3AEHQ/wkLBhgAAABORgBB4P8JCwoJVwAAb04AANZWAEH0/wkLOh4AAABORgAA1lYAAAAAAAD/XgAAb04AANZWAAAAAAAApl4AAB8AAABORgAA1lYAAKZeAAA8XwAAb04AQbiACgsepl4AAB0AAABORgAAAAAAAKZeAADkNwAAb04AANI3AEHggAoLBhwAAABORgBB8IAKCwZ7OQAAezkAQYSBCgsGIAAAAE8GAEGUgQoLCvFWAABJGgAA1lYAQaiBCgs6AgAAAE5GAADWVgAAAAAAAO5eAABJGgAA1lYAAAAAAACmXgAAAwAAAE5GAADWVgAApl4AAC9fAABJGgBB7IEKCxqmXgAAAQAAAE5GAAAAAAAApl4AANg3AABJGgBBmIIKCwJORgBBpIIKCyrBXgAA324AAPA4AAAAAAAApl4AACEAAABORgAAAAAAAKZeAAARFwAAFRcAQdyCCgsGIgAAAE8GAEHsggoLWQgAAAAEAAAAAAAAADgAAAAKAAAAOQAAAAgAAAD/////AAAAAAAAAAAKAAAAAAAAAAgAAAD/////AAAAAAAAAAA6AAAAAAAAAAgAAAD/////AAAAAAAAAAA7AEHYgwoLAQQAQYCECgu3CDwAAABAAAAAQQAAAEIAAABDAAAARAAAAD4AAABAAAAAQQAAAEUAAAAAAAAARgAAADwAAABAAAAAQQAAAEIAAABDAAAARAAAAD0AAABHAAAASAAAAEkAAABKAAAASwAAAD8AAABMAAAAQQAAAE0AAAAAAAAATgAAADwAAABAAAAAQQAAAE8AAABDAAAARAAAAGIJAAAAggIAgIYCAAAAAADENAAAAIICALCGAgAAAAAAhU0AAACCAgDghgIAAAAAAEM7AAAAggIA4IYCAAAAAAB+UQAAAIICABCHAgAAAAAABhAAABiCAgAQhwIAAAAAAEFFAAAAggIAUIcCAAAAAABeUQAAAIICAICHAgAAAAAA504AAACCAgCwhwIAAAAAAIoMAAAAggIAsIcCAAAAAABnNQAAAIICANCBAgAAAAAA01UAAACCAgDghwIAAAAAAOY4AAAAggIAEIgCAAAAAABROQAAAIICAECIAgAAAAAAU00AAACCAgBwiAIAAAAAAN00AAAAggIAoIgCAAAAAADMNAAAAIICANCIAgAAAAAA1DQAAACCAgAAiQIAAAAAAPo0AAAAggIAMIkCAAAAAABNTAAAAIICAGCJAgAAAAAAm2QAAACCAgCQiQIAAAAAAPQfAAAAggIAwIkCAAAAAAB4XAAAAIICAPCJAgAAAAAALxAAAACCAgAgigIAAAAAANYfAAAwggIAWIoCAAAAAACsEwAAAIICAICGAgAAAAAA9VAAAACCAgCAhgIAAAAAAGhOAAAAggIAiIoCAAAAAABwUQAAAIICALiKAgAAAAAA9DQAAACCAgDoigIAAAAAAOY0AAAAggIAGIsCAAAAAAAUUQAAAIICAEiLAgAAAAAA4zgAAACCAgB4iwIAAAAAAFBNAAAAggIAqIsCAAAAAABKTwAAAIICANiLAgAAAAAA0lUAAACCAgAIjAIAAAAAAGdOAAAAggIAOIwCAAAAAAB9UQAAAIICAGiMAgAAAAAA4B4AAACCAgCYjAIAAAAAAKUbAAAAggIAyIwCAAAAAADCHQAAAIICAPiMAgAAAAAAFB0AAACCAgAojQIAAAAAAM0dAAAAggIAWI0CAAAAAABdTAAAAIICAIiNAgAAAAAAl2QAAACCAgC4jQIAAAAAAHZMAAAAggIA6I0CAAAAAACLZAAAAIICABiOAgAAAAAAUkwAAACCAgBIjgIAAAAAAGZMAAAAggIAeI4CAAAAAACiRAAAAIICAKiOAgAAAAAAsEQAAACCAgDYjgIAAAAAAL9EAAAAggIACI8CAAAAAABNBwAAAIICADiPAgAAAAAAWE4AAACCAgBojwIAAAAAANUeAAAAggIAmI8CAAAAAAAwCgAAAIICAMiPAgAAAAAAKQoAAACCAgD4jwIAAAAAAN8eAAAAggIAKJACAAAAAAC7VAAASIICAEHAjAoLB7pUAABIggIAQdCMCgsH10UAAGCCAgBB4IwKCwt+IAAAeIICAGCQAgBBhI0KCwUBAAAABABBtI0KCwEBAEHkjQoLBQEAAAABAEGQjgoLCQEAAAABAAAAAQBBwI4KCwfo/gEA7/4BAEHUjgoLBQEAAAABAEHojgoLCDMzMzMzM9O/AEGEjwoLBQEAAAADAEG4jwoLAQQAQeSPCgsFAQAAAAQAQfWPCgsDgEZAAEGUkAoLBQEAAAAEAEGokAoLCJqZmZmZmdm/AEHEkAoLBQEAAAAEAEHgkAoLCDMzMzMzM+M/AEH0kAoLBQEAAAAFAEGIkQoLCHsUrkfheuS/AEGkkQoLBQEAAAAFAEHUkQoLBQEAAAAGAEGEkgoLBQEAAAAHAEG0kgoLBQEAAAAIAEHkkgoLBQEAAAAEAEGJkwoLARAAQZSTCgsFAQAAAAQAQbmTCgsBIABBxJMKCwUBAAAABABB6ZMKCwEwAEH0kwoLBQEAAAAEAEGZlAoLAUAAQaSUCgsFAQAAAAQAQcmUCgsYUAAAAAAAAFAAAABRAAAAAAAAAAEAAAATAEGBlQoLEKABAFCKAgABAAAAAQAAAAQAQbiVCgsJAQAAAAIAAAABAEHslQoLBQIAAAAIAEGclgoLBQMAAAAIAEHMlgoLBQEAAAADAEHdlgoLA4BmQABB/JYKCwUBAAAABABBjZcKCwuAZkCamZmZmZnZvwBBrJcKCwUBAAAABQBBvZcKCwuAZkB7FK5H4XrkvwBB3JcKCwUBAAAABABBgZgKCwEEAEGMmAoLBQEAAAAEAEGdmAoLA4BGQABBsJgKCxEYAAAAAAAAAAEAAAABAAAABABB4JgKCxEIAAAAAAAAAAEAAAABAAAAAQBBkJkKCwEYAEGcmQoLBQEAAAAEAEHBmQoLAWAAQcyZCgsFAQAAAAQAQfGZCgsBcABB/JkKCwUBAAAABABBoZoKCwGAAEGsmgoLBQEAAAAEAEHRmgoLAZAAQdyaCgsFAQAAAAQAQYGbCgsCEAEAQYybCgsFAQAAAAQAQbGbCgsCIAEAQbybCgsFAQAAAAQAQeGbCgsCMAEAQeybCgsFAQAAAAQAQZGcCgsCQAEAQZycCgsFAQAAAAQAQcGcCgsCUAEAQcycCgsFAQAAAAQAQfGcCgsBoABB/JwKCwUBAAAABABBoZ0KCwGwAEGsnQoLBQEAAAAEAEHRnQoLAcAAQdydCgsFAQAAAAQAQYGeCgsB0ABBjJ4KCwUBAAAABABBsZ4KCwHgAEG8ngoLBQEAAAAEAEHhngoLAfAAQeyeCgsFAQAAAAQAQZKfCgsBAQBBnJ8KCwUBAAAABABBwZ8KCwJgAQBBzJ8KCwUBAAAABABB8Z8KCwKAAQBB/J8KCwUBAAAABABBoaAKCwJwAQBBrKAKCwUBAAAABABB0aAKCxiQAQAAAAAAUgAAAFMAAAAAAAAAAQAAAAoAQYyhCgsuWJACAP87AAAoPAAA504AAAAAAABkAAAAZQAAAGYAAABkAAAAz1cAACoYAAADQwBBxKEKC6EDAQAAAAIAAAD/////njUAAOIAAABQHgAA4wAAAMEfAADkAAAAvR8AAOUAAACARAAA5gAAAIxEAADnAAAAUh4AAOgAAACjGAAA6QAAALBHAADqAAAA51AAAOsAAADZEAAA7AAAAKxGAADtAAAAwlcAAO4AAABBDgAA7wAAAPEVAADwAAAAehsAAPEAAABcUAAA8gAAANgRAADzAAAAb1AAAPQAAAAPMAAA9AAAAJY1AAD1AAAAWD8AAPYAAACeNQAA9wAAAJ01AAD4AAAAUB4AAOMAAADBHwAA5AAAAIBEAADmAAAAjEQAAOcAAABSHgAA6AAAAKc3AAD5AAAAsEcAAOoAAADnUAAA6wAAANkQAADsAAAArEYAAO0AAADCVwAA7gAAAEEOAADvAAAAnzcAAPoAAAB6GwAA8QAAAFxQAADyAAAA2BEAAPMAAABvUAAA9AAAAA8wAAD0AAAAljUAAPUAAABYPwAA9gAAAFIeAAD7AAAAhlQAAPwAAABCSAAA/QAAAJ41AAD+AAAAsFEAAP8AAAAmXQAAAAEAAAgAAAAQAEHwpAoLngEKAAAAAQEAAAgAAAAIAAAAAAAAAAIBAAAKAAAAAwEAAAlsAAAEAQAA/RAAAAUBAAD6EAAABQEAAOMQAAAGAQAA4BAAAAYBAABhMQAABwEAAF4xAAAHAQAA9DIAAAgBAADxMgAACAEAAP0VAAAJAQAAOVwAAAkBAAD2FQAACgEAAMQTAAAKAQAAPnAAAAsBAAAMAQAADQEAAA4BAAAPAQBBmKYKCwoQAQAAEQEAABIBAEGspgoLKf////8AAAAACgAAAAAAAAD3JAIA/iQCAAAAAABlBAAAzrkAAN/LAACAAEHgpgoLBhwBAAAdAQBB2KcKCwYcAQAAHQEAQfSnCgsCHgEAQYyoCgsKHwEAAAAAAAAgAQBBqKgKCxYhAQAAAAAAACIBAAAjAQAAJAEAACUBAEHJqAoLASAAQeCoCgsLBAAAAAAAAAAAIMEAQYCpCgsBAQBBi6kKCwEEAEG2qQoLClJAAAAAAAAAUkAAQe6pCgsKUkAAAAAAAABSQABBhKoKCyOCDwAAAQAAAFiTAgBIlAIABAAAAAsPAAABAAAA0JMCAGiUAgBBxKoKC5sBMQ8AAAEAAAAAAAAAwJQCAAAAAAAcDwAAAQAAAAAAAADAlAIAAQAAAEEPAAABAAAAAAAAAIiUAgACAAAASw8AAAEAAAAAAAAAwJQCAAMAAAAjDwAAAQAAAAAAAADAlAIABAAAAKwOAAABAAAAAAAAAMCUAgAFAAAAAw8AAAEAAAAAAAAAwJQCAAYAAAD2DgAAAQAAAAAAAADAlAIAQYasCgto8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAmAQAAJwEAQfisCgsCKAEAQZitCgsOKQEAACoBAAArAQAALAEAQbitCgsaLQEAAC4BAAAvAQAAMAEAADEBAAAyAQAAMwEAQeCtCgsicD0AAGVLAACCNwAAVDcAAN9kAAD4WQAAzEwAAMYKAAACEABBjq4KCxQQQOCWAgAIAAAAAQAAAAAAAAACEABBza4KCwuAlkAAAAAAAICWQABB5K4KCw89RQAAAQAAAGCWAgAAlwIAQZSvCgsPIEUAAAEAAAAAAAAAIJcCAEHQrwoLBjUBAAA2AQBBgLAKCwI3AQBBsLAKCxMBAAAARDEAAAEAAAC4lwIA8JgCAEHgsAoLdwEAAAD7MAAAAQAAAAAAAAAQmQIAAgAAAA4xAAABAAAAAAAAAEiZAgAAAAAABTEAAAEAAAAAAAAASJkCAAMAAADQMAAAAQAAAAAAAABImQIAAAAAAO8wAAABAAAAAAAAABCZAgADAAAA4jAAAAEAAAAAAAAAEJkCAEHwsQoLAwSQwwBB/rEKCwIQQABBvrIKCw1YQAAAAAAAAFhAAAAMAEH2sgoLMFhAAAAAAAAAWEA4AQAAOQEAADoBAAAAAAAAOwEAAAAAAAA8AQAAPQEAAD4BAAA/AQBBuLMKCxJAAQAAQQEAAEIBAABDAQAARAEAQdizCgseRQEAAAAAAABGAQAARwEAAEgBAABJAQAASgEAAEsBAEGEtAoLDyoYAAABAAAAgJkCAIiaAgBBtLQKCzcXGAAAAQAAAAAAAAComgIAAQAAAB0YAAABAAAAAAAAAKiaAgACAAAAFhgAAAEAAAAAAAAA4JoCAEGAtQoLDBohAAAAAAAAACADAgBBlrUKCwIQQABBqLUKCwFgAEG2tQoLKkJAAAAAAAAAQkAAAAAAACCDQAAAAAAAwIhAAAAAAAAAUkAAAAAAAABSQABB7rUKC1BCQAAAAAAAAEJAAAAAAAAgg0AAAAAAAMCIQAAAAAAAAFJAAAAAAAAAUkBNAQAAAAAAAE4BAABPAQAAUAEAAFEBAABSAQAAUwEAAFQBAABVAQBB0LYKCxZWAQAAVwEAAFgBAABZAQAAWgEAAFsBAEHwtgoL8wRcAQAAAAAAAF0BAABeAQAAXwEAAGABAABhAQAAAAAAAFZLAAC6TAAAumQAACpPAABSTgAA9lEAAD1JAACwJQIArlUAAGVLAACKEQAA6zIAAChVAABrSgAAXk0AADtNAABqOwAAekoAABs9AAA5MwAAgjcAAPlKAAB0NwAA81QAAHQIAACSNgAAqQcAAIQ+AADOZAAAyTYAANpRAACMVwAAW1kAALkzAAArNwAANEsAAJYIAADLBwAAF04AAHoRAAC7PAAAHEoAAGcIAACcBwAAjkoAAFQ9AACpTAAAVTYAAJNlAADhMQAAiEwAANFWAAAZVQAAyAgAAFQ3AACbCgAA/QcAAKQLAACfPAAATFkAAD8yAACDBgAAkz4AAOQfAADSPwAAgzYAAAc1AABcSgAAWjsAAGU3AACsCgAAWAgAAGY2AACNBwAArDwAAKgzAAAENwAACkoAAIIIAAC3BwAAx0oAAIoKAACyTwAA3TYAAP81AADfZAAAnDMAABRPAAC3SgAAelcAAHpQAAAXNwAAH0sAAKE2AAACTgAAt1gAAEpKAABkOQAAnE0AAC81AACYTAAAkQQAAH5UAADnSAAApGQAAOpRAACuWQAAnFcAAAZVAADsNgAAKk4AAMxYAAA1MAAAaEYAAB0MAADSPAAA3jgAAJ5KAADWUAAA+FkAAK0yAADqSgAA2jIAAMkzAAC8MgAAPTcAAB06AABZZQAAuB4AAC1KAABHSwAAqQgAAN4HAABfCgAAuDYAANtKAACbNwAA9TsAAGdQAADKMQAAySUCAD1OAACaEQAAchQAAMxMAAC7UQAAxgoAADI2AAAAsMEAQe67CgsUEECQmwIAlAAAAAEAAAAAAAAAQAEAQa68CgsKUkAAAAAAAABSQABBxLwKCyMDQwAAAQAAABibAgDgnQIAAgAAAI9PAAABAAAAGJsCAOCdAgBBhL0KCyPHQgAAAQAAAAAAAAAAngIAAgAAAPhCAAABAAAAAAAAAACeAgBBxL0KCwZjAQAAZAEAQbm+CgsCIMEAQdC+CgsBBABB274KCwEEAEGGvwoLClJAAAAAAAAAUkAAQb6/CgsKUkAAAAAAAABSQABB1L8KC0tgMwAAAQAAALyeAgA4nwIAAQAAAG3KAAABAAAAvJ4CADifAgACAAAAQjMAAAEAAAC8ngIAOJ8CAAMAAABBMwAAAQAAALyeAgA4nwIAQcTACgtLUDMAAAEAAAAAAAAAkJ8CAAEAAABaMwAAAQAAAAAAAACQnwIAAgAAAEwzAAABAAAAAAAAAFifAgADAAAASzMAAAEAAAAAAAAAWJ8CAEGkwQoLIggAAAD/////AAAAAAAAAABlAQAAAAAAAGYBAAAAAAAAZwEAQfTBCgsKaAEAAAAAAABpAQBBlMIKCxpqAQAAAAAAAGsBAABsAQAAbQEAAG4BAABvAQBBucIKCwMQAAIAQcbCCgsLEEAAAAAAAAAAAAQAQYbDCgsdWEAAAAAAAABYQAAAAABWPAAAAQAAALygAgA4oQIAQcTDCgsPTDwAAAEAAAAAAAAAWKECAEHwwwoLBnABAABxAQBBgMQKCwZyAQAAcwEAQcDECgsadAEAAAAAAAB1AQAAdgEAAHcBAAB4AQAAeQEAQeTECgsPol4AAP/////ooQIAuKICAEGUxQoLD55eAAD/////AAAAANiiAgBBxsUKCwIQQABBhsYKCzBSQAAAAAAAAFJAegEAAAAAAAB7AQAAfAEAAH0BAAB+AQAAfwEAAIABAACBAQAAggEAQcjGCgsOgwEAAIQBAACFAQAAhgEAQejGCgsahwEAAAAAAACIAQAAiQEAAIoBAACLAQAAjAEAQZDHCgvsAypPAACKXQAAcD0AAGVLAACKEQAAShcAALlWAACGRwAACK0AAOsyAABrSgAAryAAADUfAAA5HwAAajsAAHpKAACCNwAAyzIAAJI2AADJNgAAjFcAAIdQAAA0SwAAlggAAMsHAACONwAAF04AAEdVAAAnHwAAjU0AAIMgAABUPQAA4D8AAFU2AADRVgAAGVUAAHOJAAD0ywAAZ4kAANjLAABZiQAAwssAAEuJAAClywAAPYkAAJfLAAAviQAAicsAACGJAAADywAAE4kAAOjKAAAAiQAA1coAAO2IAABUNwAAKR8AAJsKAABxNgAATFkAAJM+AABcSgAAr1AAAMdKAAAyVQAA3TYAAN9kAADGUQAAnDMAABRPAAC3SgAAPjYAAN5UAAB6VwAAFzcAAB9LAAChNgAAAk4AALdYAAA8VQAAvFAAAOJlAABKSgAAkQQAAPxJAACpSgAAxDwAADVKAACHNwAAxFYAAOpRAACuWQAAnFcAAOw2AADSPAAA3jgAAEYEAAD4WQAAAksAAMkzAABtEQAAPTcAAJVdAABZZQAAuB4AAC1KAABHSwAAkDwAALg2AADbSgAAVgcAAJs3AABnUAAAPU4AAMcyAACqUAAAmhEAANBYAAByFAAAzEwAAMYKAAAyNgAAQCA+AwBBhssKCxQQQJCjAgB6AAAAAQAAAAAAAAAAAQBBxssKCx1SQAAAAAAAAFJAAAAAAMILAAABAAAAEKMCAHilAgBBhMwKCw++CwAAAQAAAAAAAACYpQIAQajMCgsejgEAAI8BAACQAQAAkQEAAJIBAACTAQAAlAEAAJUBAEHQzAoLowUPAAAA10IAAAEAAAAopgIAAAAAABAAAADoQgAAAQAAACimAgAAAAAAEQAAAN9CAAABAAAAKKYCAAAAAAARAAAA8EIAAAEAAAAopgIAAAAAABEAAADPQgAAAQAAACimAgAAAAAAEwAAABhFAAABAAAALKYCAAAAAAAUAAAAMUUAAAEAAAAspgIAAAAAABUAAAAoRQAAAQAAACymAgAAAAAAFQAAADlFAAABAAAALKYCAAAAAAAVAAAAEEUAAAEAAAAspgIAAAAAABYAAADpOQAAAQAAADCmAgAAAAAAFwAAAPw5AAABAAAAMKYCAAAAAAAYAAAA8jkAAAEAAAAwpgIAAAAAABgAAAAFOgAAAQAAADCmAgAAAAAAGAAAAOA5AAABAAAAMKYCAAAAAAAZAAAAFhgAAAEAAAA0pgIAAAAAABkAAAAXGAAAAQAAADSmAgAAAAAAGgAAACQYAAABAAAAOKYCAAAAAAAKAAAAJzEAAAEAAAA8pgIAAAAAAAsAAAA4MQAAAQAAADymAgAAAAAADAAAAC8xAAABAAAAPKYCAAAAAAAMAAAAQDEAAAEAAAA8pgIAAAAAAAwAAAAfMQAAAQAAADymAgAAAAAADgAAANswAAABAAAAPKYCAAAAAAAOAAAA2jAAAAEAAAA8pgIAAAAAAA0AAAAXMQAAAQAAADymAgAAAAAABQAAAGUPAAABAAAAPKYCAAAAAAAGAAAAdg8AAAEAAAA8pgIAAAAAAAcAAABtDwAAAQAAADymAgAAAAAABwAAAH4PAAABAAAAPKYCAAAAAAAHAAAAXQ8AAAEAAAA8pgIAAAAAAAkAAAA6DwAAAQAAADymAgAAAAAACQAAADkPAAABAAAAPKYCAAAAAAAIAAAAVQ8AAAEAAAA8pgIAQfzRCgu/AdEOAAABAAAAQKYCAAAAAAABAAAA5A4AAAEAAABApgIAAAAAAAIAAADaDgAAAQAAAECmAgAAAAAAAgAAAO0OAAABAAAAQKYCAAAAAAACAAAAyA4AAAEAAABApgIAAAAAAAQAAAC3DgAAAQAAAECmAgAAAAAABAAAALYOAAABAAAAQKYCAAAAAAADAAAAvw4AAAEAAABApgIAAAAAABIAAADHQgAAAQAAACimAgAAAAAAGwAAAFI8AAABAAAARKYCAEHg0woLlwEDAAAAQJUCAAMAAACQlwIAAwAAAGCYAgADAAAAMJoCAAMAAACAngIAAwAAAECgAgADAAAAwKECAAMAAACQogIAAwAAAACmAgAAAAAAAJUCAAAAAABglwIAAAAAADCYAgAAAAAAAJoCAAAAAABAngIAAAAAANCfAgAAAAAAkKECAAAAAABgogIAAAAAANClAgAEAAAAUKYCAEGA1QoLGWJOAADgqQIAXBUBACEeAQAIAAAAEAAAABgAQaTVCgsNlgEAAAgAAAAQAAAAGABBvNUKCwmXAQAACAAAAAgAQdDVCgsNmQEAAJoBAAAIAAAAEABB6NUKCx2bAQAAnAEAAJ0BAACeAQAAAQEAABgBAABAAQAAuABBkNYKCxLQTwAAPDUAAMNTAADhCQAAfDwAQbDWCgsaAQAAAAIAAAADAAAABAAAAAUAAAAAAAAAowEAQdTWCgsCpAEAQeDWCgsCpQEAQezWCgstCAAAAAQAAAD/////AAAAAAAAAACpAQAArAEAAK0BAAAAAAAAtQEAALYBAAABAEGk1woLD4IPAAAAAAAAkKsCAJirAgBB0NcKCwcBAAAAoKsCAEHg1woLDa4MAADQqwIACAAAAAQAQfzXCguOAb4BAAAAAAAAOKwCAMEBAADCAQAAwwEAAMQBAAAAAAAAMKwCAMUBAADGAQAAxwEAAMgBAADQdwIAuCcCAPh3AgC+JwIAMKwCAAAAAABgrAIAygEAAMsBAADMAQAAzQEAAM4BAAD4dwIAxycCADB3AgAIAAAAMAAAAAAAAADaAQAACgAAANsBAADcAQAA3QEAQZTZCgvTAggAAAAMAAAA4AEAAAAAAADhAQAAPAAAAAAAAAAzMzMzMzPTPwAAAAAAAPg/CAAAAAQAAAAAAAAA5QEAAAoAAADmAQAA6QEAAOoBAADrAQAA7AEAAO0BAADuAQAA7wEAAPABAADxAQAA8gEAAPMBAADqAQAA9AEAAOoBAAD1AQAA9gEAAPcBAAD4AQAAAAAAANExAAAAAAAA2KwCANzHAgABAAAAsjAAAAAAAADgrAIA3McCAAIAAACxMAAAAAAAAOisAgDcxwIAAwAAAD0+AAAAAAAA8KwCANzHAgAEAAAAmDIAAAAAAAD4rAIA3McCAAUAAABZPAAAAAAAABCtAgDcxwIABgAAAG5SAAAAAAAAGK0CANzHAgAHAAAAny8AAAAAAAAArQIA3McCAAcAAABzugAAAAAAAACtAgDcxwIACAAAABysAAAAAAAACK0CANzHAgBBgNwKCwcBAAAAIK0CAEGQ3AoLB7kMAAAArgIAQaDcCgsX6gYAAICqAgCoBgAA4KsCAMgGAAAQrgIAQcbcCgsLbebs3gUACwAAAAUAQdzcCgsC/QEAQfTcCgsL+wEAAPoBAAAOygIAQYzdCgsBAgBBnN0KCwj//////////wBB4N0KCwlQrgIAAAAAAAkAQfTdCgsC/QEAQYjeCgsS/AEAAAAAAAD6AQAAGMoCAAAEAEG03goLBP////8AQfjeCgsBBQBBhN8KCwL/AQBBnN8KCw77AQAAAAIAACjOAgAABABBtN8KCwEBAEHE3woLBf////8KAEGI4AoLIHivAgAQ3AMAJW0vJWQvJXkAAAAIJUg6JU06JVMAAAAI";return Q}var tA;function OA(Q){if(Q==tA&&E)return new Uint8Array(E);var m=h(Q);if(m)return m;throw"both async and sync fetching of the wasm failed"}function gA(Q){return Promise.resolve().then(()=>OA(Q))}function zA(Q,m,v){return gA(Q).then(p=>WebAssembly.instantiate(p,m)).then(v,p=>{B(`failed to asynchronously prepare wasm: ${p}`),JA(p)})}function xA(Q,m,v,p){return zA(m,v,p)}function Me(){return{a:fn}}function LA(){var Q=Me();function m(p,F){return Te=p.exports,w=Te.y,j(),lA(Te.z),BA(),Te}UA();function v(p){m(p.instance)}return tA??=KA(),xA(E,tA,Q,v).catch(o),{}}function cA(Q){return i.agerrMessages.push(Se(Q)),0}function Gt(Q){this.name="ExitStatus",this.message=`Program terminated with exit(${Q})`,this.status=Q}var ct=Q=>{Q.forEach(m=>m(i))};function oe(Q,m="i8"){switch(m.endsWith("*")&&(m="*"),m){case"i1":return R[Q];case"i8":return R[Q];case"i16":return G[Q>>1];case"i32":return J[Q>>2];case"i64":return O[Q>>3];case"float":return K[Q>>2];case"double":return V[Q>>3];case"*":return z[Q>>2];default:JA(`invalid type for getValue: ${m}`)}}var Dt=Q=>mi(Q),_e=()=>Ko(),Re=typeof TextDecoder<"u"?new TextDecoder:void 0,St=(Q,m=0,v=NaN)=>{for(var p=m+v,F=m;Q[F]&&!(F>=p);)++F;if(F-m>16&&Q.buffer&&Re)return Re.decode(Q.subarray(m,F));for(var U="";m>10,56320|ee&1023)}}return U},Se=(Q,m)=>Q?St(D,Q,m):"",Wt=(Q,m,v,p)=>{JA(`Assertion failed: ${Se(Q)}, at: `+[m?Se(m):"unknown filename",v,p?Se(p):"unknown function"])};class L{constructor(m){this.excPtr=m,this.ptr=m-24}set_type(m){z[this.ptr+4>>2]=m}get_type(){return z[this.ptr+4>>2]}set_destructor(m){z[this.ptr+8>>2]=m}get_destructor(){return z[this.ptr+8>>2]}set_caught(m){m=m?1:0,R[this.ptr+12]=m}get_caught(){return R[this.ptr+12]!=0}set_rethrown(m){m=m?1:0,R[this.ptr+13]=m}get_rethrown(){return R[this.ptr+13]!=0}init(m,v){this.set_adjusted_ptr(0),this.set_type(m),this.set_destructor(v)}set_adjusted_ptr(m){z[this.ptr+16>>2]=m}get_adjusted_ptr(){return z[this.ptr+16>>2]}}var T=0,P=(Q,m,v)=>{var p=new L(Q);throw p.init(m,v),T=Q,T},X={isAbs:Q=>Q.charAt(0)==="/",splitPath:Q=>{var m=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return m.exec(Q).slice(1)},normalizeArray:(Q,m)=>{for(var v=0,p=Q.length-1;p>=0;p--){var F=Q[p];F==="."?Q.splice(p,1):F===".."?(Q.splice(p,1),v++):v&&(Q.splice(p,1),v--)}if(m)for(;v;v--)Q.unshift("..");return Q},normalize:Q=>{var m=X.isAbs(Q),v=Q.substr(-1)==="/";return Q=X.normalizeArray(Q.split("/").filter(p=>!!p),!m).join("/"),!Q&&!m&&(Q="."),Q&&v&&(Q+="/"),(m?"/":"")+Q},dirname:Q=>{var m=X.splitPath(Q),v=m[0],p=m[1];return!v&&!p?".":(p&&(p=p.substr(0,p.length-1)),v+p)},basename:Q=>{if(Q==="/")return"/";Q=X.normalize(Q),Q=Q.replace(/\/$/,"");var m=Q.lastIndexOf("/");return m===-1?Q:Q.substr(m+1)},join:(...Q)=>X.normalize(Q.join("/")),join2:(Q,m)=>X.normalize(Q+"/"+m)},kA=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return Q=>crypto.getRandomValues(Q);JA("initRandomDevice")},le=Q=>(le=kA())(Q),Ee={resolve:(...Q)=>{for(var m="",v=!1,p=Q.length-1;p>=-1&&!v;p--){var F=p>=0?Q[p]:b.cwd();if(typeof F!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!F)return"";m=F+"/"+m,v=X.isAbs(F)}return m=X.normalizeArray(m.split("/").filter(U=>!!U),!v).join("/"),(v?"/":"")+m||"."},relative:(Q,m)=>{Q=Ee.resolve(Q).substr(1),m=Ee.resolve(m).substr(1);function v(ee){for(var ne=0;ne=0&&ee[Pe]==="";Pe--);return ne>Pe?[]:ee.slice(ne,Pe-ne+1)}for(var p=v(Q.split("/")),F=v(m.split("/")),U=Math.min(p.length,F.length),q=U,Z=0;Z{for(var m=0,v=0;v=55296&&p<=57343?(m+=4,++v):m+=3}return m},dt=(Q,m,v,p)=>{if(!(p>0))return 0;for(var F=v,U=v+p-1,q=0;q=55296&&Z<=57343){var RA=Q.charCodeAt(++q);Z=65536+((Z&1023)<<10)|RA&1023}if(Z<=127){if(v>=U)break;m[v++]=Z}else if(Z<=2047){if(v+1>=U)break;m[v++]=192|Z>>6,m[v++]=128|Z&63}else if(Z<=65535){if(v+2>=U)break;m[v++]=224|Z>>12,m[v++]=128|Z>>6&63,m[v++]=128|Z&63}else{if(v+3>=U)break;m[v++]=240|Z>>18,m[v++]=128|Z>>12&63,m[v++]=128|Z>>6&63,m[v++]=128|Z&63}}return m[v]=0,v-F};function $e(Q,m,v){var p=v>0?v:MA(Q)+1,F=new Array(p),U=dt(Q,F,0,F.length);return m&&(F.length=U),F}var XA=()=>{if(!FA.length){var Q=null;if(typeof window<"u"&&typeof window.prompt=="function"&&(Q=window.prompt("Input: "),Q!==null&&(Q+=` +`)),!Q)return null;FA=$e(Q,!0)}return FA.shift()},ot={ttys:[],init(){},shutdown(){},register(Q,m){ot.ttys[Q]={input:[],output:[],ops:m},b.registerDevice(Q,ot.stream_ops)},stream_ops:{open(Q){var m=ot.ttys[Q.node.rdev];if(!m)throw new b.ErrnoError(43);Q.tty=m,Q.seekable=!1},close(Q){Q.tty.ops.fsync(Q.tty)},fsync(Q){Q.tty.ops.fsync(Q.tty)},read(Q,m,v,p,F){if(!Q.tty||!Q.tty.ops.get_char)throw new b.ErrnoError(60);for(var U=0,q=0;q0&&(d(St(Q.output)),Q.output=[])},ioctl_tcgets(Q){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(Q,m,v){return 0},ioctl_tiocgwinsz(Q){return[24,80]}},default_tty1_ops:{put_char(Q,m){m===null||m===10?(B(St(Q.output)),Q.output=[]):m!=0&&Q.output.push(m)},fsync(Q){Q.output&&Q.output.length>0&&(B(St(Q.output)),Q.output=[])}}},Si=(Q,m)=>{D.fill(0,Q,Q+m)},Zi=(Q,m)=>Math.ceil(Q/m)*m,Oi=Q=>{Q=Zi(Q,65536);var m=Qi(65536,Q);return m&&Si(m,Q),m},Le={ops_table:null,mount(Q){return Le.createNode(null,"/",16895,0)},createNode(Q,m,v,p){if(b.isBlkdev(v)||b.isFIFO(v))throw new b.ErrnoError(63);Le.ops_table||={dir:{node:{getattr:Le.node_ops.getattr,setattr:Le.node_ops.setattr,lookup:Le.node_ops.lookup,mknod:Le.node_ops.mknod,rename:Le.node_ops.rename,unlink:Le.node_ops.unlink,rmdir:Le.node_ops.rmdir,readdir:Le.node_ops.readdir,symlink:Le.node_ops.symlink},stream:{llseek:Le.stream_ops.llseek}},file:{node:{getattr:Le.node_ops.getattr,setattr:Le.node_ops.setattr},stream:{llseek:Le.stream_ops.llseek,read:Le.stream_ops.read,write:Le.stream_ops.write,allocate:Le.stream_ops.allocate,mmap:Le.stream_ops.mmap,msync:Le.stream_ops.msync}},link:{node:{getattr:Le.node_ops.getattr,setattr:Le.node_ops.setattr,readlink:Le.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Le.node_ops.getattr,setattr:Le.node_ops.setattr},stream:b.chrdev_stream_ops}};var F=b.createNode(Q,m,v,p);return b.isDir(F.mode)?(F.node_ops=Le.ops_table.dir.node,F.stream_ops=Le.ops_table.dir.stream,F.contents={}):b.isFile(F.mode)?(F.node_ops=Le.ops_table.file.node,F.stream_ops=Le.ops_table.file.stream,F.usedBytes=0,F.contents=null):b.isLink(F.mode)?(F.node_ops=Le.ops_table.link.node,F.stream_ops=Le.ops_table.link.stream):b.isChrdev(F.mode)&&(F.node_ops=Le.ops_table.chrdev.node,F.stream_ops=Le.ops_table.chrdev.stream),F.timestamp=Date.now(),Q&&(Q.contents[m]=F,Q.timestamp=F.timestamp),F},getFileDataAsTypedArray(Q){return Q.contents?Q.contents.subarray?Q.contents.subarray(0,Q.usedBytes):new Uint8Array(Q.contents):new Uint8Array(0)},expandFileStorage(Q,m){var v=Q.contents?Q.contents.length:0;if(!(v>=m)){var p=1024*1024;m=Math.max(m,v*(v>>0),v!=0&&(m=Math.max(m,256));var F=Q.contents;Q.contents=new Uint8Array(m),Q.usedBytes>0&&Q.contents.set(F.subarray(0,Q.usedBytes),0)}},resizeFileStorage(Q,m){if(Q.usedBytes!=m)if(m==0)Q.contents=null,Q.usedBytes=0;else{var v=Q.contents;Q.contents=new Uint8Array(m),v&&Q.contents.set(v.subarray(0,Math.min(m,Q.usedBytes))),Q.usedBytes=m}},node_ops:{getattr(Q){var m={};return m.dev=b.isChrdev(Q.mode)?Q.id:1,m.ino=Q.id,m.mode=Q.mode,m.nlink=1,m.uid=0,m.gid=0,m.rdev=Q.rdev,b.isDir(Q.mode)?m.size=4096:b.isFile(Q.mode)?m.size=Q.usedBytes:b.isLink(Q.mode)?m.size=Q.link.length:m.size=0,m.atime=new Date(Q.timestamp),m.mtime=new Date(Q.timestamp),m.ctime=new Date(Q.timestamp),m.blksize=4096,m.blocks=Math.ceil(m.size/m.blksize),m},setattr(Q,m){m.mode!==void 0&&(Q.mode=m.mode),m.timestamp!==void 0&&(Q.timestamp=m.timestamp),m.size!==void 0&&Le.resizeFileStorage(Q,m.size)},lookup(Q,m){throw b.genericErrors[44]},mknod(Q,m,v,p){return Le.createNode(Q,m,v,p)},rename(Q,m,v){if(b.isDir(Q.mode)){var p;try{p=b.lookupNode(m,v)}catch{}if(p)for(var F in p.contents)throw new b.ErrnoError(55)}delete Q.parent.contents[Q.name],Q.parent.timestamp=Date.now(),Q.name=v,m.contents[v]=Q,m.timestamp=Q.parent.timestamp},unlink(Q,m){delete Q.contents[m],Q.timestamp=Date.now()},rmdir(Q,m){var v=b.lookupNode(Q,m);for(var p in v.contents)throw new b.ErrnoError(55);delete Q.contents[m],Q.timestamp=Date.now()},readdir(Q){var m=[".",".."];for(var v of Object.keys(Q.contents))m.push(v);return m},symlink(Q,m,v){var p=Le.createNode(Q,m,41471,0);return p.link=v,p},readlink(Q){if(!b.isLink(Q.mode))throw new b.ErrnoError(28);return Q.link}},stream_ops:{read(Q,m,v,p,F){var U=Q.node.contents;if(F>=Q.node.usedBytes)return 0;var q=Math.min(Q.node.usedBytes-F,p);if(q>8&&U.subarray)m.set(U.subarray(F,F+q),v);else for(var Z=0;Z0||v+m{var F=p?"":`al ${Q}`;I(Q).then(U=>{m(new Uint8Array(U)),F&&BA()},U=>{if(v)v();else throw`Loading data file "${Q}" failed.`}),F&&UA()},fi=(Q,m,v,p,F,U)=>{b.createDataFile(Q,m,v,p,F,U)},Ht=[],Rt=(Q,m,v,p)=>{typeof Browser<"u"&&Browser.init();var F=!1;return Ht.forEach(U=>{F||U.canHandle(m)&&(U.handle(Q,m,v,p),F=!0)}),F},Bi=(Q,m,v,p,F,U,q,Z,RA,ee)=>{var ne=m?Ee.resolve(X.join2(Q,m)):Q;function Pe(Oe){function ve(Ne){ee?.(),Z||fi(Q,m,Ne,p,F,RA),U?.(),BA()}Rt(Oe,ne,ve,()=>{q?.(),BA()})||ve(Oe)}UA(),typeof v=="string"?zi(v,Pe,q):Pe(v)},Mi=Q=>{var m={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},v=m[Q];if(typeof v>"u")throw new Error(`Unknown file open mode: ${Q}`);return v},Jt=(Q,m)=>{var v=0;return Q&&(v|=365),m&&(v|=146),v},b={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class{constructor(Q){this.name="ErrnoError",this.errno=Q}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(Q){this.node=Q}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(Q){this.shared.flags=Q}get position(){return this.shared.position}set position(Q){this.shared.position=Q}},FSNode:class{constructor(Q,m,v,p){Q||(Q=this),this.parent=Q,this.mount=Q.mount,this.mounted=null,this.id=b.nextInode++,this.name=m,this.mode=v,this.node_ops={},this.stream_ops={},this.rdev=p,this.readMode=365,this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(Q){Q?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(Q){Q?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return b.isDir(this.mode)}get isDevice(){return b.isChrdev(this.mode)}},lookupPath(Q,m={}){if(Q=Ee.resolve(Q),!Q)return{path:"",node:null};var v={follow_mount:!0,recurse_count:0};if(m=Object.assign(v,m),m.recurse_count>8)throw new b.ErrnoError(32);for(var p=Q.split("/").filter(Pe=>!!Pe),F=b.root,U="/",q=0;q40)throw new b.ErrnoError(32)}}return{path:U,node:F}},getPath(Q){for(var m;;){if(b.isRoot(Q)){var v=Q.mount.mountpoint;return m?v[v.length-1]!=="/"?`${v}/${m}`:v+m:v}m=m?`${Q.name}/${m}`:Q.name,Q=Q.parent}},hashName(Q,m){for(var v=0,p=0;p>>0)%b.nameTable.length},hashAddNode(Q){var m=b.hashName(Q.parent.id,Q.name);Q.name_next=b.nameTable[m],b.nameTable[m]=Q},hashRemoveNode(Q){var m=b.hashName(Q.parent.id,Q.name);if(b.nameTable[m]===Q)b.nameTable[m]=Q.name_next;else for(var v=b.nameTable[m];v;){if(v.name_next===Q){v.name_next=Q.name_next;break}v=v.name_next}},lookupNode(Q,m){var v=b.mayLookup(Q);if(v)throw new b.ErrnoError(v);for(var p=b.hashName(Q.id,m),F=b.nameTable[p];F;F=F.name_next){var U=F.name;if(F.parent.id===Q.id&&U===m)return F}return b.lookup(Q,m)},createNode(Q,m,v,p){var F=new b.FSNode(Q,m,v,p);return b.hashAddNode(F),F},destroyNode(Q){b.hashRemoveNode(Q)},isRoot(Q){return Q===Q.parent},isMountpoint(Q){return!!Q.mounted},isFile(Q){return(Q&61440)===32768},isDir(Q){return(Q&61440)===16384},isLink(Q){return(Q&61440)===40960},isChrdev(Q){return(Q&61440)===8192},isBlkdev(Q){return(Q&61440)===24576},isFIFO(Q){return(Q&61440)===4096},isSocket(Q){return(Q&49152)===49152},flagsToPermissionString(Q){var m=["r","w","rw"][Q&3];return Q&512&&(m+="w"),m},nodePermissions(Q,m){return b.ignorePermissions?0:m.includes("r")&&!(Q.mode&292)||m.includes("w")&&!(Q.mode&146)||m.includes("x")&&!(Q.mode&73)?2:0},mayLookup(Q){if(!b.isDir(Q.mode))return 54;var m=b.nodePermissions(Q,"x");return m||(Q.node_ops.lookup?0:2)},mayCreate(Q,m){try{var v=b.lookupNode(Q,m);return 20}catch{}return b.nodePermissions(Q,"wx")},mayDelete(Q,m,v){var p;try{p=b.lookupNode(Q,m)}catch(U){return U.errno}var F=b.nodePermissions(Q,"wx");if(F)return F;if(v){if(!b.isDir(p.mode))return 54;if(b.isRoot(p)||b.getPath(p)===b.cwd())return 10}else if(b.isDir(p.mode))return 31;return 0},mayOpen(Q,m){return Q?b.isLink(Q.mode)?32:b.isDir(Q.mode)&&(b.flagsToPermissionString(m)!=="r"||m&512)?31:b.nodePermissions(Q,b.flagsToPermissionString(m)):44},MAX_OPEN_FDS:4096,nextfd(){for(var Q=0;Q<=b.MAX_OPEN_FDS;Q++)if(!b.streams[Q])return Q;throw new b.ErrnoError(33)},getStreamChecked(Q){var m=b.getStream(Q);if(!m)throw new b.ErrnoError(8);return m},getStream:Q=>b.streams[Q],createStream(Q,m=-1){return Q=Object.assign(new b.FSStream,Q),m==-1&&(m=b.nextfd()),Q.fd=m,b.streams[m]=Q,Q},closeStream(Q){b.streams[Q]=null},dupStream(Q,m=-1){var v=b.createStream(Q,m);return v.stream_ops?.dup?.(v),v},chrdev_stream_ops:{open(Q){var m=b.getDevice(Q.node.rdev);Q.stream_ops=m.stream_ops,Q.stream_ops.open?.(Q)},llseek(){throw new b.ErrnoError(70)}},major:Q=>Q>>8,minor:Q=>Q&255,makedev:(Q,m)=>Q<<8|m,registerDevice(Q,m){b.devices[Q]={stream_ops:m}},getDevice:Q=>b.devices[Q],getMounts(Q){for(var m=[],v=[Q];v.length;){var p=v.pop();m.push(p),v.push(...p.mounts)}return m},syncfs(Q,m){typeof Q=="function"&&(m=Q,Q=!1),b.syncFSRequests++,b.syncFSRequests>1&&B(`warning: ${b.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var v=b.getMounts(b.root.mount),p=0;function F(q){return b.syncFSRequests--,m(q)}function U(q){if(q)return U.errored?void 0:(U.errored=!0,F(q));++p>=v.length&&F(null)}v.forEach(q=>{if(!q.type.syncfs)return U(null);q.type.syncfs(q,Q,U)})},mount(Q,m,v){var p=v==="/",F=!v,U;if(p&&b.root)throw new b.ErrnoError(10);if(!p&&!F){var q=b.lookupPath(v,{follow_mount:!1});if(v=q.path,U=q.node,b.isMountpoint(U))throw new b.ErrnoError(10);if(!b.isDir(U.mode))throw new b.ErrnoError(54)}var Z={type:Q,opts:m,mountpoint:v,mounts:[]},RA=Q.mount(Z);return RA.mount=Z,Z.root=RA,p?b.root=RA:U&&(U.mounted=Z,U.mount&&U.mount.mounts.push(Z)),RA},unmount(Q){var m=b.lookupPath(Q,{follow_mount:!1});if(!b.isMountpoint(m.node))throw new b.ErrnoError(28);var v=m.node,p=v.mounted,F=b.getMounts(p);Object.keys(b.nameTable).forEach(q=>{for(var Z=b.nameTable[q];Z;){var RA=Z.name_next;F.includes(Z.mount)&&b.destroyNode(Z),Z=RA}}),v.mounted=null;var U=v.mount.mounts.indexOf(p);v.mount.mounts.splice(U,1)},lookup(Q,m){return Q.node_ops.lookup(Q,m)},mknod(Q,m,v){var p=b.lookupPath(Q,{parent:!0}),F=p.node,U=X.basename(Q);if(!U||U==="."||U==="..")throw new b.ErrnoError(28);var q=b.mayCreate(F,U);if(q)throw new b.ErrnoError(q);if(!F.node_ops.mknod)throw new b.ErrnoError(63);return F.node_ops.mknod(F,U,m,v)},create(Q,m){return m=m!==void 0?m:438,m&=4095,m|=32768,b.mknod(Q,m,0)},mkdir(Q,m){return m=m!==void 0?m:511,m&=1023,m|=16384,b.mknod(Q,m,0)},mkdirTree(Q,m){for(var v=Q.split("/"),p="",F=0;F"u"&&(v=m,m=438),m|=8192,b.mknod(Q,m,v)},symlink(Q,m){if(!Ee.resolve(Q))throw new b.ErrnoError(44);var v=b.lookupPath(m,{parent:!0}),p=v.node;if(!p)throw new b.ErrnoError(44);var F=X.basename(m),U=b.mayCreate(p,F);if(U)throw new b.ErrnoError(U);if(!p.node_ops.symlink)throw new b.ErrnoError(63);return p.node_ops.symlink(p,F,Q)},rename(Q,m){var v=X.dirname(Q),p=X.dirname(m),F=X.basename(Q),U=X.basename(m),q,Z,RA;if(q=b.lookupPath(Q,{parent:!0}),Z=q.node,q=b.lookupPath(m,{parent:!0}),RA=q.node,!Z||!RA)throw new b.ErrnoError(44);if(Z.mount!==RA.mount)throw new b.ErrnoError(75);var ee=b.lookupNode(Z,F),ne=Ee.relative(Q,p);if(ne.charAt(0)!==".")throw new b.ErrnoError(28);if(ne=Ee.relative(m,v),ne.charAt(0)!==".")throw new b.ErrnoError(55);var Pe;try{Pe=b.lookupNode(RA,U)}catch{}if(ee!==Pe){var Oe=b.isDir(ee.mode),ve=b.mayDelete(Z,F,Oe);if(ve)throw new b.ErrnoError(ve);if(ve=Pe?b.mayDelete(RA,U,Oe):b.mayCreate(RA,U),ve)throw new b.ErrnoError(ve);if(!Z.node_ops.rename)throw new b.ErrnoError(63);if(b.isMountpoint(ee)||Pe&&b.isMountpoint(Pe))throw new b.ErrnoError(10);if(RA!==Z&&(ve=b.nodePermissions(Z,"w"),ve))throw new b.ErrnoError(ve);b.hashRemoveNode(ee);try{Z.node_ops.rename(ee,RA,U),ee.parent=RA}catch(Ne){throw Ne}finally{b.hashAddNode(ee)}}},rmdir(Q){var m=b.lookupPath(Q,{parent:!0}),v=m.node,p=X.basename(Q),F=b.lookupNode(v,p),U=b.mayDelete(v,p,!0);if(U)throw new b.ErrnoError(U);if(!v.node_ops.rmdir)throw new b.ErrnoError(63);if(b.isMountpoint(F))throw new b.ErrnoError(10);v.node_ops.rmdir(v,p),b.destroyNode(F)},readdir(Q){var m=b.lookupPath(Q,{follow:!0}),v=m.node;if(!v.node_ops.readdir)throw new b.ErrnoError(54);return v.node_ops.readdir(v)},unlink(Q){var m=b.lookupPath(Q,{parent:!0}),v=m.node;if(!v)throw new b.ErrnoError(44);var p=X.basename(Q),F=b.lookupNode(v,p),U=b.mayDelete(v,p,!1);if(U)throw new b.ErrnoError(U);if(!v.node_ops.unlink)throw new b.ErrnoError(63);if(b.isMountpoint(F))throw new b.ErrnoError(10);v.node_ops.unlink(v,p),b.destroyNode(F)},readlink(Q){var m=b.lookupPath(Q),v=m.node;if(!v)throw new b.ErrnoError(44);if(!v.node_ops.readlink)throw new b.ErrnoError(28);return Ee.resolve(b.getPath(v.parent),v.node_ops.readlink(v))},stat(Q,m){var v=b.lookupPath(Q,{follow:!m}),p=v.node;if(!p)throw new b.ErrnoError(44);if(!p.node_ops.getattr)throw new b.ErrnoError(63);return p.node_ops.getattr(p)},lstat(Q){return b.stat(Q,!0)},chmod(Q,m,v){var p;if(typeof Q=="string"){var F=b.lookupPath(Q,{follow:!v});p=F.node}else p=Q;if(!p.node_ops.setattr)throw new b.ErrnoError(63);p.node_ops.setattr(p,{mode:m&4095|p.mode&-4096,timestamp:Date.now()})},lchmod(Q,m){b.chmod(Q,m,!0)},fchmod(Q,m){var v=b.getStreamChecked(Q);b.chmod(v.node,m)},chown(Q,m,v,p){var F;if(typeof Q=="string"){var U=b.lookupPath(Q,{follow:!p});F=U.node}else F=Q;if(!F.node_ops.setattr)throw new b.ErrnoError(63);F.node_ops.setattr(F,{timestamp:Date.now()})},lchown(Q,m,v){b.chown(Q,m,v,!0)},fchown(Q,m,v){var p=b.getStreamChecked(Q);b.chown(p.node,m,v)},truncate(Q,m){if(m<0)throw new b.ErrnoError(28);var v;if(typeof Q=="string"){var p=b.lookupPath(Q,{follow:!0});v=p.node}else v=Q;if(!v.node_ops.setattr)throw new b.ErrnoError(63);if(b.isDir(v.mode))throw new b.ErrnoError(31);if(!b.isFile(v.mode))throw new b.ErrnoError(28);var F=b.nodePermissions(v,"w");if(F)throw new b.ErrnoError(F);v.node_ops.setattr(v,{size:m,timestamp:Date.now()})},ftruncate(Q,m){var v=b.getStreamChecked(Q);if((v.flags&2097155)===0)throw new b.ErrnoError(28);b.truncate(v.node,m)},utime(Q,m,v){var p=b.lookupPath(Q,{follow:!0}),F=p.node;F.node_ops.setattr(F,{timestamp:Math.max(m,v)})},open(Q,m,v){if(Q==="")throw new b.ErrnoError(44);m=typeof m=="string"?Mi(m):m,m&64?(v=typeof v>"u"?438:v,v=v&4095|32768):v=0;var p;if(typeof Q=="object")p=Q;else{Q=X.normalize(Q);try{var F=b.lookupPath(Q,{follow:!(m&131072)});p=F.node}catch{}}var U=!1;if(m&64)if(p){if(m&128)throw new b.ErrnoError(20)}else p=b.mknod(Q,v,0),U=!0;if(!p)throw new b.ErrnoError(44);if(b.isChrdev(p.mode)&&(m&=-513),m&65536&&!b.isDir(p.mode))throw new b.ErrnoError(54);if(!U){var q=b.mayOpen(p,m);if(q)throw new b.ErrnoError(q)}m&512&&!U&&b.truncate(p,0),m&=-131713;var Z=b.createStream({node:p,path:b.getPath(p),flags:m,seekable:!0,position:0,stream_ops:p.stream_ops,ungotten:[],error:!1});return Z.stream_ops.open&&Z.stream_ops.open(Z),Z},close(Q){if(b.isClosed(Q))throw new b.ErrnoError(8);Q.getdents&&(Q.getdents=null);try{Q.stream_ops.close&&Q.stream_ops.close(Q)}catch(m){throw m}finally{b.closeStream(Q.fd)}Q.fd=null},isClosed(Q){return Q.fd===null},llseek(Q,m,v){if(b.isClosed(Q))throw new b.ErrnoError(8);if(!Q.seekable||!Q.stream_ops.llseek)throw new b.ErrnoError(70);if(v!=0&&v!=1&&v!=2)throw new b.ErrnoError(28);return Q.position=Q.stream_ops.llseek(Q,m,v),Q.ungotten=[],Q.position},read(Q,m,v,p,F){if(p<0||F<0)throw new b.ErrnoError(28);if(b.isClosed(Q))throw new b.ErrnoError(8);if((Q.flags&2097155)===1)throw new b.ErrnoError(8);if(b.isDir(Q.node.mode))throw new b.ErrnoError(31);if(!Q.stream_ops.read)throw new b.ErrnoError(28);var U=typeof F<"u";if(!U)F=Q.position;else if(!Q.seekable)throw new b.ErrnoError(70);var q=Q.stream_ops.read(Q,m,v,p,F);return U||(Q.position+=q),q},write(Q,m,v,p,F,U){if(p<0||F<0)throw new b.ErrnoError(28);if(b.isClosed(Q))throw new b.ErrnoError(8);if((Q.flags&2097155)===0)throw new b.ErrnoError(8);if(b.isDir(Q.node.mode))throw new b.ErrnoError(31);if(!Q.stream_ops.write)throw new b.ErrnoError(28);Q.seekable&&Q.flags&1024&&b.llseek(Q,0,2);var q=typeof F<"u";if(!q)F=Q.position;else if(!Q.seekable)throw new b.ErrnoError(70);var Z=Q.stream_ops.write(Q,m,v,p,F,U);return q||(Q.position+=Z),Z},allocate(Q,m,v){if(b.isClosed(Q))throw new b.ErrnoError(8);if(m<0||v<=0)throw new b.ErrnoError(28);if((Q.flags&2097155)===0)throw new b.ErrnoError(8);if(!b.isFile(Q.node.mode)&&!b.isDir(Q.node.mode))throw new b.ErrnoError(43);if(!Q.stream_ops.allocate)throw new b.ErrnoError(138);Q.stream_ops.allocate(Q,m,v)},mmap(Q,m,v,p,F){if((p&2)!==0&&(F&2)===0&&(Q.flags&2097155)!==2)throw new b.ErrnoError(2);if((Q.flags&2097155)===1)throw new b.ErrnoError(2);if(!Q.stream_ops.mmap)throw new b.ErrnoError(43);if(!m)throw new b.ErrnoError(28);return Q.stream_ops.mmap(Q,m,v,p,F)},msync(Q,m,v,p,F){return Q.stream_ops.msync?Q.stream_ops.msync(Q,m,v,p,F):0},ioctl(Q,m,v){if(!Q.stream_ops.ioctl)throw new b.ErrnoError(59);return Q.stream_ops.ioctl(Q,m,v)},readFile(Q,m={}){if(m.flags=m.flags||0,m.encoding=m.encoding||"binary",m.encoding!=="utf8"&&m.encoding!=="binary")throw new Error(`Invalid encoding type "${m.encoding}"`);var v,p=b.open(Q,m.flags),F=b.stat(Q),U=F.size,q=new Uint8Array(U);return b.read(p,q,0,U,0),m.encoding==="utf8"?v=St(q):m.encoding==="binary"&&(v=q),b.close(p),v},writeFile(Q,m,v={}){v.flags=v.flags||577;var p=b.open(Q,v.flags,v.mode);if(typeof m=="string"){var F=new Uint8Array(MA(m)+1),U=dt(m,F,0,F.length);b.write(p,F,0,U,void 0,v.canOwn)}else if(ArrayBuffer.isView(m))b.write(p,m,0,m.byteLength,void 0,v.canOwn);else throw new Error("Unsupported data type");b.close(p)},cwd:()=>b.currentPath,chdir(Q){var m=b.lookupPath(Q,{follow:!0});if(m.node===null)throw new b.ErrnoError(44);if(!b.isDir(m.node.mode))throw new b.ErrnoError(54);var v=b.nodePermissions(m.node,"x");if(v)throw new b.ErrnoError(v);b.currentPath=m.path},createDefaultDirectories(){b.mkdir("/tmp"),b.mkdir("/home"),b.mkdir("/home/web_user")},createDefaultDevices(){b.mkdir("/dev"),b.registerDevice(b.makedev(1,3),{read:()=>0,write:(p,F,U,q,Z)=>q}),b.mkdev("/dev/null",b.makedev(1,3)),ot.register(b.makedev(5,0),ot.default_tty_ops),ot.register(b.makedev(6,0),ot.default_tty1_ops),b.mkdev("/dev/tty",b.makedev(5,0)),b.mkdev("/dev/tty1",b.makedev(6,0));var Q=new Uint8Array(1024),m=0,v=()=>(m===0&&(m=le(Q).byteLength),Q[--m]);b.createDevice("/dev","random",v),b.createDevice("/dev","urandom",v),b.mkdir("/dev/shm"),b.mkdir("/dev/shm/tmp")},createSpecialDirectories(){b.mkdir("/proc");var Q=b.mkdir("/proc/self");b.mkdir("/proc/self/fd"),b.mount({mount(){var m=b.createNode(Q,"fd",16895,73);return m.node_ops={lookup(v,p){var F=+p,U=b.getStreamChecked(F),q={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>U.path}};return q.parent=q,q}},m}},{},"/proc/self/fd")},createStandardStreams(Q,m,v){Q?b.createDevice("/dev","stdin",Q):b.symlink("/dev/tty","/dev/stdin"),m?b.createDevice("/dev","stdout",null,m):b.symlink("/dev/tty","/dev/stdout"),v?b.createDevice("/dev","stderr",null,v):b.symlink("/dev/tty1","/dev/stderr"),b.open("/dev/stdin",0),b.open("/dev/stdout",1),b.open("/dev/stderr",1)},staticInit(){[44].forEach(Q=>{b.genericErrors[Q]=new b.ErrnoError(Q),b.genericErrors[Q].stack=""}),b.nameTable=new Array(4096),b.mount(Le,{},"/"),b.createDefaultDirectories(),b.createDefaultDevices(),b.createSpecialDirectories(),b.filesystems={MEMFS:Le}},init(Q,m,v){b.initialized=!0,b.createStandardStreams(Q,m,v)},quit(){b.initialized=!1;for(var Q=0;Qthis.length-1||ve<0)){var Ne=ve%this.chunkSize,Yi=ve/this.chunkSize|0;return this.getter(Yi)[Ne]}}setDataGetter(ve){this.getter=ve}cacheLength(){var ve=new XMLHttpRequest;if(ve.open("HEAD",v,!1),ve.send(null),!(ve.status>=200&&ve.status<300||ve.status===304))throw new Error("Couldn't load "+v+". Status: "+ve.status);var Ne=Number(ve.getResponseHeader("Content-length")),Yi,H=(Yi=ve.getResponseHeader("Accept-Ranges"))&&Yi==="bytes",rA=(Yi=ve.getResponseHeader("Content-Encoding"))&&Yi==="gzip",HA=1024*1024;H||(HA=Ne);var De=(Ie,Bt)=>{if(Ie>Bt)throw new Error("invalid range ("+Ie+", "+Bt+") or no bytes requested!");if(Bt>Ne-1)throw new Error("only "+Ne+" bytes available! programmer error!");var At=new XMLHttpRequest;if(At.open("GET",v,!1),Ne!==HA&&At.setRequestHeader("Range","bytes="+Ie+"-"+Bt),At.responseType="arraybuffer",At.overrideMimeType&&At.overrideMimeType("text/plain; charset=x-user-defined"),At.send(null),!(At.status>=200&&At.status<300||At.status===304))throw new Error("Couldn't load "+v+". Status: "+At.status);return At.response!==void 0?new Uint8Array(At.response||[]):$e(At.responseText||"",!0)},fe=this;fe.setDataGetter(Ie=>{var Bt=Ie*HA,At=(Ie+1)*HA-1;if(At=Math.min(At,Ne-1),typeof fe.chunks[Ie]>"u"&&(fe.chunks[Ie]=De(Bt,At)),typeof fe.chunks[Ie]>"u")throw new Error("doXHR failed!");return fe.chunks[Ie]}),(rA||!Ne)&&(HA=Ne=1,Ne=this.getter(0).length,HA=Ne,d("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=Ne,this._chunkSize=HA,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var q,Z}else var Z={isDevice:!1,url:v};var RA=b.createFile(Q,m,Z,p,F);Z.contents?RA.contents=Z.contents:Z.url&&(RA.contents=null,RA.url=Z.url),Object.defineProperties(RA,{usedBytes:{get:function(){return this.contents.length}}});var ee={},ne=Object.keys(RA.stream_ops);ne.forEach(Oe=>{var ve=RA.stream_ops[Oe];ee[Oe]=(...Ne)=>(b.forceLoadFile(RA),ve(...Ne))});function Pe(Oe,ve,Ne,Yi,H){var rA=Oe.node.contents;if(H>=rA.length)return 0;var HA=Math.min(rA.length-H,Yi);if(rA.slice)for(var De=0;De(b.forceLoadFile(RA),Pe(Oe,ve,Ne,Yi,H)),ee.mmap=(Oe,ve,Ne,Yi,H)=>{b.forceLoadFile(RA);var rA=Oi(ve);if(!rA)throw new b.ErrnoError(48);return Pe(Oe,R,rA,ve,Ne),{ptr:rA,allocated:!0}},RA.stream_ops=ee,RA}},et={DEFAULT_POLLMASK:5,calculateAt(Q,m,v){if(X.isAbs(m))return m;var p;if(Q===-100)p=b.cwd();else{var F=et.getStreamFromFD(Q);p=F.path}if(m.length==0){if(!v)throw new b.ErrnoError(44);return p}return X.join2(p,m)},doStat(Q,m,v){var p=Q(m);J[v>>2]=p.dev,J[v+4>>2]=p.mode,z[v+8>>2]=p.nlink,J[v+12>>2]=p.uid,J[v+16>>2]=p.gid,J[v+20>>2]=p.rdev,O[v+24>>3]=BigInt(p.size),J[v+32>>2]=4096,J[v+36>>2]=p.blocks;var F=p.atime.getTime(),U=p.mtime.getTime(),q=p.ctime.getTime();return O[v+40>>3]=BigInt(Math.floor(F/1e3)),z[v+48>>2]=F%1e3*1e3*1e3,O[v+56>>3]=BigInt(Math.floor(U/1e3)),z[v+64>>2]=U%1e3*1e3*1e3,O[v+72>>3]=BigInt(Math.floor(q/1e3)),z[v+80>>2]=q%1e3*1e3*1e3,O[v+88>>3]=BigInt(p.ino),0},doMsync(Q,m,v,p,F){if(!b.isFile(m.node.mode))throw new b.ErrnoError(43);if(p&2)return 0;var U=D.slice(Q,Q+v);b.msync(m,U,F,v,p)},getStreamFromFD(Q){var m=b.getStreamChecked(Q);return m},varargs:void 0,getStr(Q){var m=Se(Q);return m}};function ai(Q,m,v,p){try{if(m=et.getStr(m),m=et.calculateAt(Q,m),v&-8)return-28;var F=b.lookupPath(m,{follow:!0}),U=F.node;if(!U)return-44;var q="";return v&4&&(q+="r"),v&2&&(q+="w"),v&1&&(q+="x"),q&&b.nodePermissions(U,q)?-2:0}catch(Z){if(typeof b>"u"||Z.name!=="ErrnoError")throw Z;return-Z.errno}}function Wi(){var Q=J[+et.varargs>>2];return et.varargs+=4,Q}var Xi=Wi;function xn(Q,m,v){et.varargs=v;try{var p=et.getStreamFromFD(Q);switch(m){case 0:{var F=Wi();if(F<0)return-28;for(;b.streams[F];)F++;var U;return U=b.dupStream(p,F),U.fd}case 1:case 2:return 0;case 3:return p.flags;case 4:{var F=Wi();return p.flags|=F,0}case 12:{var F=Xi(),q=0;return G[F+q>>1]=2,0}case 13:case 14:return 0}return-28}catch(Z){if(typeof b>"u"||Z.name!=="ErrnoError")throw Z;return-Z.errno}}function Mo(Q,m){try{var v=et.getStreamFromFD(Q);return et.doStat(b.stat,v.path,m)}catch(p){if(typeof b>"u"||p.name!=="ErrnoError")throw p;return-p.errno}}function vn(Q,m,v){et.varargs=v;try{var p=et.getStreamFromFD(Q);switch(m){case 21509:return p.tty?0:-59;case 21505:{if(!p.tty)return-59;if(p.tty.ops.ioctl_tcgets){var F=p.tty.ops.ioctl_tcgets(p),U=Xi();J[U>>2]=F.c_iflag||0,J[U+4>>2]=F.c_oflag||0,J[U+8>>2]=F.c_cflag||0,J[U+12>>2]=F.c_lflag||0;for(var q=0;q<32;q++)R[U+q+17]=F.c_cc[q]||0;return 0}return 0}case 21510:case 21511:case 21512:return p.tty?0:-59;case 21506:case 21507:case 21508:{if(!p.tty)return-59;if(p.tty.ops.ioctl_tcsets){for(var U=Xi(),Z=J[U>>2],RA=J[U+4>>2],ee=J[U+8>>2],ne=J[U+12>>2],Pe=[],q=0;q<32;q++)Pe.push(R[U+q+17]);return p.tty.ops.ioctl_tcsets(p.tty,m,{c_iflag:Z,c_oflag:RA,c_cflag:ee,c_lflag:ne,c_cc:Pe})}return 0}case 21519:{if(!p.tty)return-59;var U=Xi();return J[U>>2]=0,0}case 21520:return p.tty?-28:-59;case 21531:{var U=Xi();return b.ioctl(p,m,U)}case 21523:{if(!p.tty)return-59;if(p.tty.ops.ioctl_tiocgwinsz){var Oe=p.tty.ops.ioctl_tiocgwinsz(p.tty),U=Xi();G[U>>1]=Oe[0],G[U+2>>1]=Oe[1]}return 0}case 21524:return p.tty?0:-59;case 21515:return p.tty?0:-59;default:return-28}}catch(ve){if(typeof b>"u"||ve.name!=="ErrnoError")throw ve;return-ve.errno}}function In(Q,m,v,p){try{m=et.getStr(m);var F=p&256,U=p&4096;return p=p&-6401,m=et.calculateAt(Q,m,U),et.doStat(F?b.lstat:b.stat,m,v)}catch(q){if(typeof b>"u"||q.name!=="ErrnoError")throw q;return-q.errno}}function qo(Q,m,v,p){et.varargs=p;try{m=et.getStr(m),m=et.calculateAt(Q,m);var F=p?Wi():0;return b.open(m,v,F).fd}catch(U){if(typeof b>"u"||U.name!=="ErrnoError")throw U;return-U.errno}}function Vo(Q,m){try{return Q=et.getStr(Q),et.doStat(b.stat,Q,m)}catch(v){if(typeof b>"u"||v.name!=="ErrnoError")throw v;return-v.errno}}var uo=()=>{JA("")},Qn=Q=>Q%4===0&&(Q%100!==0||Q%400===0),Kn=[0,31,60,91,121,152,182,213,244,274,305,335],$A=[0,31,59,90,120,151,181,212,243,273,304,334],Ei=Q=>{var m=Qn(Q.getFullYear()),v=m?Kn:$A,p=v[Q.getMonth()]+Q.getDate()-1;return p},Ri=9007199254740992,un=-9007199254740992,Un=Q=>QRi?NaN:Number(Q);function Zo(Q,m){Q=Un(Q);var v=new Date(Q*1e3);J[m>>2]=v.getSeconds(),J[m+4>>2]=v.getMinutes(),J[m+8>>2]=v.getHours(),J[m+12>>2]=v.getDate(),J[m+16>>2]=v.getMonth(),J[m+20>>2]=v.getFullYear()-1900,J[m+24>>2]=v.getDay();var p=Ei(v)|0;J[m+28>>2]=p,J[m+36>>2]=-(v.getTimezoneOffset()*60);var F=new Date(v.getFullYear(),0,1),U=new Date(v.getFullYear(),6,1).getTimezoneOffset(),q=F.getTimezoneOffset(),Z=(U!=q&&v.getTimezoneOffset()==Math.min(q,U))|0;J[m+32>>2]=Z}function Ci(Q,m,v,p,F,U,q){F=Un(F);try{if(isNaN(F))return 61;var Z=et.getStreamFromFD(p),RA=b.mmap(Z,Q,F,m,v),ee=RA.ptr;return J[U>>2]=RA.allocated,z[q>>2]=ee,0}catch(ne){if(typeof b>"u"||ne.name!=="ErrnoError")throw ne;return-ne.errno}}function io(Q,m,v,p,F,U){U=Un(U);try{var q=et.getStreamFromFD(F);v&2&&et.doMsync(Q,q,m,p,U)}catch(Z){if(typeof b>"u"||Z.name!=="ErrnoError")throw Z;return-Z.errno}}var Wo=(Q,m,v)=>dt(Q,D,m,v),Xo=(Q,m,v,p)=>{var F=new Date().getFullYear(),U=new Date(F,0,1),q=new Date(F,6,1),Z=U.getTimezoneOffset(),RA=q.getTimezoneOffset(),ee=Math.max(Z,RA);z[Q>>2]=ee*60,J[m>>2]=+(Z!=RA);var ne=ve=>{var Ne=ve>=0?"-":"+",Yi=Math.abs(ve),H=String(Math.floor(Yi/60)).padStart(2,"0"),rA=String(Yi%60).padStart(2,"0");return`UTC${Ne}${H}${rA}`},Pe=ne(Z),Oe=ne(RA);RADate.now(),on=()=>2147483648,$i=Q=>{var m=w.buffer,v=(Q-m.byteLength+65535)/65536|0;try{return w.grow(v),j(),1}catch{}},yt=Q=>{var m=D.length;Q>>>=0;var v=on();if(Q>v)return!1;for(var p=1;p<=4;p*=2){var F=m*(1+.2/p);F=Math.min(F,Q+100663296);var U=Math.min(v,Zi(Math.max(Q,F),65536)),q=$i(U);if(q)return!0}return!1},hn={},hA=()=>a,Ae=()=>{if(!Ae.strings){var Q=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",m={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:Q,_:hA()};for(var v in hn)hn[v]===void 0?delete m[v]:m[v]=hn[v];var p=[];for(var v in m)p.push(`${v}=${m[v]}`);Ae.strings=p}return Ae.strings},re=(Q,m)=>{for(var v=0;v{var v=0;return Ae().forEach((p,F)=>{var U=m+v;z[Q+F*4>>2]=U,re(p,U),v+=p.length+1}),0},ue=(Q,m)=>{var v=Ae();z[Q>>2]=v.length;var p=0;return v.forEach(F=>p+=F.length+1),z[m>>2]=p,0},aA=Q=>{c(Q,new Gt(Q))},DA=(Q,m)=>{aA(Q)},PA=DA;function Je(Q){try{var m=et.getStreamFromFD(Q);return b.close(m),0}catch(v){if(typeof b>"u"||v.name!=="ErrnoError")throw v;return v.errno}}var vt=(Q,m,v,p)=>{for(var F=0,U=0;U>2],Z=z[m+4>>2];m+=8;var RA=b.read(Q,R,q,Z,p);if(RA<0)return-1;if(F+=RA,RA>2]=U,0}catch(q){if(typeof b>"u"||q.name!=="ErrnoError")throw q;return q.errno}}function rn(Q,m,v,p){m=Un(m);try{if(isNaN(m))return 61;var F=et.getStreamFromFD(Q);return b.llseek(F,m,v),O[p>>3]=BigInt(F.position),F.getdents&&m===0&&v===0&&(F.getdents=null),0}catch(U){if(typeof b>"u"||U.name!=="ErrnoError")throw U;return U.errno}}var no=(Q,m,v,p)=>{for(var F=0,U=0;U>2],Z=z[m+4>>2];m+=8;var RA=b.write(Q,R,q,Z,p);if(RA<0)return-1;if(F+=RA,RA>2]=U,0}catch(q){if(typeof b>"u"||q.name!=="ErrnoError")throw q;return q.errno}}var Ji=Q=>{var m=i["_"+Q];return m},bt=(Q,m)=>{R.set(Q,m)},Li=Q=>bn(Q),Mn=Q=>{var m=MA(Q)+1,v=Li(m);return Wo(Q,v,m),v},Qt=(Q,m,v,p,F)=>{var U={string:Ne=>{var Yi=0;return Ne!=null&&Ne!==0&&(Yi=Mn(Ne)),Yi},array:Ne=>{var Yi=Li(Ne.length);return bt(Ne,Yi),Yi}};function q(Ne){return m==="string"?Se(Ne):m==="boolean"?!!Ne:Ne}var Z=Ji(Q),RA=[],ee=0;if(p)for(var ne=0;ne(i._viz_set_y_invert=Te.A)(Q),i._viz_set_reduce=Q=>(i._viz_set_reduce=Te.B)(Q),i._viz_get_graphviz_version=()=>(i._viz_get_graphviz_version=Te.C)(),i._free=Q=>(i._free=Te.D)(Q),i._malloc=Q=>(i._malloc=Te.E)(Q),i._viz_get_plugin_list=Q=>(i._viz_get_plugin_list=Te.G)(Q),i._viz_create_graph=(Q,m,v)=>(i._viz_create_graph=Te.H)(Q,m,v),i._viz_read_one_graph=Q=>(i._viz_read_one_graph=Te.I)(Q),i._viz_string_dup=(Q,m)=>(i._viz_string_dup=Te.J)(Q,m),i._viz_string_dup_html=(Q,m)=>(i._viz_string_dup_html=Te.K)(Q,m),i._viz_string_free=(Q,m)=>(i._viz_string_free=Te.L)(Q,m),i._viz_string_free_html=(Q,m)=>(i._viz_string_free_html=Te.M)(Q,m),i._viz_add_node=(Q,m)=>(i._viz_add_node=Te.N)(Q,m),i._viz_add_edge=(Q,m,v)=>(i._viz_add_edge=Te.O)(Q,m,v),i._viz_add_subgraph=(Q,m)=>(i._viz_add_subgraph=Te.P)(Q,m),i._viz_set_default_graph_attribute=(Q,m,v)=>(i._viz_set_default_graph_attribute=Te.Q)(Q,m,v),i._viz_set_default_node_attribute=(Q,m,v)=>(i._viz_set_default_node_attribute=Te.R)(Q,m,v),i._viz_set_default_edge_attribute=(Q,m,v)=>(i._viz_set_default_edge_attribute=Te.S)(Q,m,v),i._viz_set_attribute=(Q,m,v)=>(i._viz_set_attribute=Te.T)(Q,m,v),i._viz_free_graph=Q=>(i._viz_free_graph=Te.U)(Q),i._viz_create_context=()=>(i._viz_create_context=Te.V)(),i._viz_free_context=Q=>(i._viz_free_context=Te.W)(Q),i._viz_layout=(Q,m,v)=>(i._viz_layout=Te.X)(Q,m,v),i._viz_free_layout=(Q,m)=>(i._viz_free_layout=Te.Y)(Q,m),i._viz_reset_errors=()=>(i._viz_reset_errors=Te.Z)(),i._viz_render=(Q,m,v)=>(i._viz_render=Te._)(Q,m,v);var Qi=(Q,m)=>(Qi=Te.$)(Q,m),mi=Q=>(mi=Te.aa)(Q),bn=Q=>(bn=Te.ba)(Q),Ko=()=>(Ko=Te.ca)();i.ccall=Qt,i.getValue=oe,i.PATH=X,i.UTF8ToString=Se,i.stringToUTF8=Wo,i.lengthBytesUTF8=MA,i.FS=b;var Ot,Nr;VA=function Q(){Ot||Jn(),Ot||(VA=Q)};function Jn(){if(wA>0||!Nr&&(Nr=1,IA(),wA>0))return;function Q(){Ot||(Ot=1,i.calledRun=1,!x&&(SA(),n(i),nA()))}Q()}return Jn(),A=r,A}})(),ygA=[[/^Error: (.*)/,"error"],[/^Warning: (.*)/,"warning"]];function NjA(t){return t.map(e=>{for(let A=0;A{if(typeof A.name!="string")throw new Error("image name must be a string");if(typeof A.width!="number"&&typeof A.width!="string")throw new Error("image width must be a number or string");if(typeof A.height!="number"&&typeof A.height!="string")throw new Error("image height must be a number or string");let i=t.PATH.join("/",A.name),n=` -`;return t.FS.createPath("/",t.PATH.dirname(i)),t.FS.writeFile(i,n),i}):[]}function _jA(t,e){for(let A of e)t.FS.analyzePath(A).exists&&t.FS.unlink(A)}function GjA(t,e,A){let i;try{let n=t.lengthBytesUTF8(e);return i=t.ccall("malloc","number",["number"],[n+1]),t.stringToUTF8(e,i,n+1),t.ccall("viz_read_one_graph","number",["number"],[i])}finally{i&&t.ccall("free","number",["number"],[i])}}function KjA(t,e,A){let i=t.ccall("viz_create_graph","number",["string","number","number"],[e.name,typeof e.directed<"u"?e.directed:!0,typeof e.strict<"u"?e.strict:!1]);return kgA(t,i,e),i}function kgA(t,e,A){SgA(t,e,A),A.nodes&&A.nodes.forEach(i=>{let n=t.ccall("viz_add_node","number",["number","string"],[e,String(i.name)]);i.attributes&&bgA(t,e,n,i.attributes)}),A.edges&&A.edges.forEach(i=>{let n=t.ccall("viz_add_edge","number",["number","string","string"],[e,String(i.tail),String(i.head)]);i.attributes&&bgA(t,e,n,i.attributes)}),A.subgraphs&&A.subgraphs.forEach(i=>{let n=t.ccall("viz_add_subgraph","number",["number","string"],[e,String(i.name)]);kgA(t,n,i)})}function SgA(t,e,A){if(A.graphAttributes)for(let[i,n]of Object.entries(A.graphAttributes))iv(t,e,n,o=>{t.ccall("viz_set_default_graph_attribute","number",["number","string","number"],[e,i,o])});if(A.nodeAttributes)for(let[i,n]of Object.entries(A.nodeAttributes))iv(t,e,n,o=>{t.ccall("viz_set_default_node_attribute","number",["number","string","number"],[e,i,o])});if(A.edgeAttributes)for(let[i,n]of Object.entries(A.edgeAttributes))iv(t,e,n,o=>{t.ccall("viz_set_default_edge_attribute","number",["number","string","number"],[e,i,o])})}function bgA(t,e,A,i){for(let[n,o]of Object.entries(i))iv(t,e,o,r=>{t.ccall("viz_set_attribute","number",["number","string","number"],[A,n,r])})}function iv(t,e,A,i){let n;if(typeof A=="object"&&"html"in A?n=t.ccall("viz_string_dup_html","number",["number","string"],[e,String(A.html)]):n=t.ccall("viz_string_dup","number",["number","string"],[e,String(A)]),n==0)throw new Error("couldn't dup string");i(n),typeof A=="object"&&"html"in A?t.ccall("viz_string_free_html","number",["number","number"],[e,n]):t.ccall("viz_string_free","number",["number","number"],[e,n])}var hU=class{constructor(e){this.module=e}get graphvizVersion(){return NjA(this.module)}get formats(){return vgA(this.module,"device")}get engines(){return vgA(this.module,"layout")}renderFormats(e,A,i={}){return MgA(this.module,e,A,sA({engine:"dot"},i))}render(e,A={}){let i;A.format===void 0?i="dot":i=A.format;let n=MgA(this.module,e,[i],sA({engine:"dot"},A));return n.status==="success"&&(n.output=n.output[i]),n}renderString(e,A={}){let i=this.render(e,A);if(i.status!=="success")throw new Error(i.errors.find(n=>n.level=="error")?.message||"render failed");return i.output}renderSVGElement(e,A={}){let i=this.renderString(e,Fe(sA({},A),{format:"svg"}));return new DOMParser().parseFromString(i,"image/svg+xml").documentElement}renderJSON(e,A={}){let i=this.renderString(e,Fe(sA({},A),{format:"json"}));return JSON.parse(i)}};function RgA(){return RjA().then(t=>new hU(t))}var nv=class t{render(e){return Ni(this,null,function*(){let A={format:"svg",engine:"dot"};return(yield RgA()).renderString(e,A)})}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var ov=new eA("AudioPlayingService");var LgA=new eA("PendingEventService"),rv=class{};var sv=new eA("VideoService");var av=new eA("WebSocketService");var cv=class t{createMessagePartFromFile(e){return Ni(this,null,function*(){return{inlineData:{displayName:e.name,data:yield this.readFileAsBytes(e),mimeType:e.type}}})}readFileAsBytes(e){return new Promise((A,i)=>{let n=new FileReader;n.onload=o=>{let r=o.target.result.split(",")[1];A(r)},n.onerror=i,n.readAsDataURL(e)})}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var gv=class t extends rv{createFunctionResponse(e,A,i){return{function_response:{id:e,name:A,response:{response:i}}}}static \u0275fac=(()=>{let e;return function(i){return(e||(e=ci(t)))(i||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var lv=class t extends Y8{sanitizer=f(oc);windowOpen(e,A,i,n){return e.open(A,i,n)}createObjectUrl(e){return URL.createObjectURL(e)}openBlobUrl(e){let A=this.createObjectUrl(e);return this.windowOpen(window,A,"_blank")}setAnchorHref(e,A){e.href=A}bypassSecurityTrustHtml(e){return this.sanitizer.bypassSecurityTrustHtml(e)}static \u0275fac=(()=>{let e;return function(i){return(e||(e=ci(t)))(i||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Iv=class t{constructor(e){this.http=e}apiServerDomain=ds.getApiServerBaseUrl();createSession(e,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${A}/users/${e}/sessions`;return this.http.post(i,null)}return new gt}listSessions(e,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${A}/users/${e}/sessions`;return this.http.get(i)}return new gt}deleteSession(e,A,i){let n=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}`;return this.http.delete(n)}getSession(e,A,i){let n=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}`;return this.http.get(n)}importSession(e,A,i){if(this.apiServerDomain!=null){let n=this.apiServerDomain+`/apps/${A}/users/${e}/sessions`;return this.http.post(n,{appName:A,userId:e,events:i})}return new gt}static \u0275fac=function(A){return new(A||t)(be(ks))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Cv=class t{audioRecordingService=f(Z7);videoService=f(sv);webSocketService=f(av);audioIntervalId=void 0;videoIntervalId=void 0;constructor(){}startAudioChat(n){return Ni(this,arguments,function*({appName:e,userId:A,sessionId:i}){let o=window.location.protocol==="https:"?"wss":"ws";this.webSocketService.connect(`${o}://${ds.getWSServerUrl()}/run_live?app_name=${e}&user_id=${A}&session_id=${i}`),yield this.startAudioStreaming()})}stopAudioChat(){this.stopAudioStreaming(),this.webSocketService.closeConnection()}startAudioStreaming(){return Ni(this,null,function*(){try{yield this.audioRecordingService.startRecording(),this.audioIntervalId=setInterval(()=>this.sendBufferedAudio(),250)}catch(e){console.error("Error accessing microphone:",e)}})}stopAudioStreaming(){clearInterval(this.audioIntervalId),this.audioIntervalId=void 0,this.audioRecordingService.stopRecording()}sendBufferedAudio(){let e=this.audioRecordingService.getCombinedAudioBuffer();if(!e)return;let A={blob:{mime_type:"audio/pcm",data:e}};this.webSocketService.sendMessage(A),this.audioRecordingService.cleanAudioBuffer()}startVideoChat(o){return Ni(this,arguments,function*({appName:e,userId:A,sessionId:i,videoContainer:n}){let r=window.location.protocol==="https:"?"wss":"ws";this.webSocketService.connect(`${r}://${ds.getWSServerUrl()}/run_live?app_name=${e}&user_id=${A}&session_id=${i}`),yield this.startAudioStreaming(),yield this.startVideoStreaming(n)})}stopVideoChat(e){this.stopAudioStreaming(),this.stopVideoStreaming(e),this.webSocketService.closeConnection()}startVideoStreaming(e){return Ni(this,null,function*(){try{yield this.videoService.startRecording(e),this.videoIntervalId=setInterval(()=>Ni(this,null,function*(){return yield this.sendCapturedFrame()}),1e3)}catch(A){console.error("Error accessing camera:",A)}})}sendCapturedFrame(){return Ni(this,null,function*(){let e=yield this.videoService.getCapturedFrame();if(!e)return;let A={blob:{mime_type:"image/jpeg",data:e}};this.webSocketService.sendMessage(A)})}stopVideoStreaming(e){clearInterval(this.videoIntervalId),this.videoIntervalId=void 0,this.videoService.stopRecording(e)}onStreamClose(){return this.webSocketService.onCloseReason()}closeStream(){this.webSocketService.closeConnection()}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var VlA=$Q(qlA());var Bv=class t{stc(e){return(0,VlA.default)(e)}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Ev=class t{selectedTraceRowSource=new Fi(void 0);selectedTraceRow$=this.selectedTraceRowSource.asObservable();eventDataSource=new Fi(void 0);eventData$=this.eventDataSource.asObservable();hoveredMessageIndicesSource=new Fi([]);hoveredMessageIndices$=this.hoveredMessageIndicesSource.asObservable();messagesSource=new Fi([]);messages$=this.messagesSource.asObservable();selectedRow(e){this.selectedTraceRowSource.next(e)}setEventData(e){this.eventDataSource.next(e)}setMessages(e){this.messagesSource.next(e)}setHoveredMessages(e,A){if(!e){this.hoveredMessageIndicesSource.next([]);return}let i=e.attributes,n=i&&i["gcp.vertex.agent.event_id"],o=0,r=[];for(let s of this.messagesSource.value){if(s.role=="user"){o++;continue}if(this.eventDataSource.value?.get(s.eventId).invocationId!=A){o++;continue}if(n)if(i["gcp.vertex.agent.event_id"]==s.eventId){r.push(o),o++;continue}else{o++;continue}else{r.push(o),o++;continue}}this.hoveredMessageIndicesSource.next(r)}resetTraceService(){this.eventDataSource.next(void 0),this.messagesSource.next([]),this.hoveredMessageIndicesSource.next([])}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Qv=class t{mediaRecorder;stream;renderer;videoElement;videoBuffer=[];constructor(e){this.renderer=e.createRenderer(null,null)}createVideoElement(e){this.clearVideoElement(e),this.videoElement=this.renderer.createElement("video"),this.renderer.setAttribute(this.videoElement,"width","400"),this.renderer.setAttribute(this.videoElement,"height","300"),this.renderer.setAttribute(this.videoElement,"autoplay","true"),this.renderer.setAttribute(this.videoElement,"muted","true"),this.renderer.appendChild(e.nativeElement,this.videoElement)}startRecording(e){return Ni(this,null,function*(){this.createVideoElement(e);try{this.stream=yield navigator.mediaDevices.getUserMedia({video:!0}),this.videoElement.srcObject=this.stream,this.mediaRecorder=new MediaRecorder(this.stream,{mimeType:"video/webm"}),this.mediaRecorder.start(1e3)}catch(A){console.error("Error accessing camera/microphone:",A)}})}getCapturedFrame(){return Ni(this,null,function*(){try{let e=yield this.captureFrame();return this.blobToUint8Array(e)}catch(e){console.error("Error capturing frame:",e);return}})}blobToUint8Array(e){return Ni(this,null,function*(){let A=yield e.arrayBuffer();return new Uint8Array(A)})}captureFrame(){return Ni(this,null,function*(){return new Promise((e,A)=>{try{let i=document.createElement("canvas");i.width=this.videoElement.videoWidth,i.height=this.videoElement.videoHeight;let n=i.getContext("2d");if(!n){A(new Error("Canvas context not supported"));return}n.drawImage(this.videoElement,0,0,i.width,i.height),i.toBlob(o=>{o?e(o):A(new Error("Failed to create image blob"))},"image/png")}catch(i){A(i)}})})}stopRecording(e){this.mediaRecorder&&this.mediaRecorder.stop(),this.stream&&this.stream.getTracks().forEach(A=>A.stop()),this.clearVideoElement(e)}clearVideoElement(e){let A=e.nativeElement.querySelector("video");A&&this.renderer.removeChild(e.nativeElement,A)}static \u0275fac=function(A){return new(A||t)(be(Ms))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var HVA={url:"",deserializer:t=>JSON.parse(t.data),serializer:t=>JSON.stringify(t)},OVA="WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }",xf=class t extends hd{constructor(e,A){if(super(),this._socket=null,e instanceof gt)this.destination=A,this.source=e;else{let i=this._config=Object.assign({},HVA);if(this._output=new qA,typeof e=="string")i.url=e;else for(let n in e)e.hasOwnProperty(n)&&(i[n]=e[n]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new sg}}lift(e){let A=new t(this._config,this.destination);return A.operator=e,A.source=this,A}_resetState(){this._socket=null,this.source||(this.destination=new sg),this._output=new qA}multiplex(e,A,i){let n=this;return new gt(o=>{try{n.next(e())}catch(s){o.error(s)}let r=n.subscribe({next:s=>{try{i(s)&&o.next(s)}catch(a){o.error(a)}},error:s=>o.error(s),complete:()=>o.complete()});return()=>{try{n.next(A())}catch(s){o.error(s)}r.unsubscribe()}})}_connectSocket(){let{WebSocketCtor:e,protocol:A,url:i,binaryType:n}=this._config,o=this._output,r=null;try{r=A?new e(i,A):new e(i),this._socket=r,n&&(this._socket.binaryType=n)}catch(a){o.error(a);return}let s=new Kt(()=>{this._socket=null,r&&r.readyState===1&&r.close()});r.onopen=a=>{let{_socket:c}=this;if(!c){r.close(),this._resetState();return}let{openObserver:g}=this._config;g&&g.next(a);let I=this.destination;this.destination=C0.create(C=>{if(r.readyState===1)try{let{serializer:d}=this._config;r.send(d(C))}catch(d){this.destination.error(d)}},C=>{let{closingObserver:d}=this._config;d&&d.next(void 0),C&&C.code?r.close(C.code,C.reason):o.error(new TypeError(OVA)),this._resetState()},()=>{let{closingObserver:C}=this._config;C&&C.next(void 0),r.close(),this._resetState()}),I&&I instanceof sg&&s.add(I.subscribe(this.destination))},r.onerror=a=>{this._resetState(),o.error(a)},r.onclose=a=>{r===this._socket&&this._resetState();let{closeObserver:c}=this._config;c&&c.next(a),a.wasClean?o.complete():o.error(a)},r.onmessage=a=>{try{let{deserializer:c}=this._config;o.next(c(a))}catch(c){o.error(c)}}}_subscribe(e){let{source:A}=this;return A?A.subscribe(e):(this._socket||this._connectSocket(),this._output.subscribe(e),e.add(()=>{let{_socket:i}=this;this._output.observers.length===0&&(i&&(i.readyState===1||i.readyState===0)&&i.close(),this._resetState())}),e)}unsubscribe(){let{_socket:e}=this;e&&(e.readyState===1||e.readyState===0)&&e.close(),this._resetState(),super.unsubscribe()}};var uv=class t{audioPlayingService=f(ov);socket$;messages$=new Fi("");audioBuffer=[];audioIntervalId=null;closeReasonSubject=new qA;connect(e){this.socket$=new xf({url:e,serializer:A=>JSON.stringify(A),deserializer:A=>A.data,closeObserver:{next:A=>{this.emitWsCloseReason(A.reason)}}}),this.socket$.subscribe(A=>{this.handleIncomingAudio(A),this.messages$.next(A)},A=>{console.error("WebSocket error:",A)}),this.audioIntervalId=setInterval(()=>this.playIncomingAudio(),250)}playIncomingAudio(){this.audioPlayingService.playAudio(this.audioBuffer),this.audioBuffer=[]}sendMessage(e){if(e.blob.data=this.arrayBufferToBase64(e.blob.data.buffer),!this.socket$||this.socket$.closed){console.error("WebSocket is not open.");return}this.socket$.next(e)}closeConnection(){clearInterval(this.audioIntervalId),this.audioIntervalId=null,this.socket$&&this.socket$.complete()}getMessages(){return this.messages$.asObservable()}arrayBufferToBase64(e){let A="",i=new Uint8Array(e),n=i.byteLength;for(let o=0;ot.json()).then(t=>{window.runtimeConfig=t,Pk(zQ,{providers:[yM(jk,Mr,Vb,G7,D6,U2,uB),{provide:A1,useClass:Iv},{provide:HB,useClass:j7},{provide:av,useClass:uv},{provide:W7,useValue:"./assets/audio-processor.js"},{provide:Z7,useClass:X7},{provide:ov,useClass:V7},{provide:sv,useClass:Qv},{provide:T8,useClass:Cv},{provide:zB,useClass:ev},{provide:Rl,useClass:Av},{provide:U8,useClass:q7},{provide:OB,useClass:$7},{provide:e1,useClass:Ev},{provide:Gc,useClass:tv},{provide:PB,useClass:nv},{provide:jB,useClass:Bv},{provide:$2,useClass:lv},{provide:J8,useClass:cv},{provide:LgA,useClass:gv},{provide:q8,useValue:P7},...t.logo?[{provide:b7,useValue:U7}]:[],aj(),{provide:ZlA,useClass:ha}]}).catch(e=>console.error(e))}); +`;return t.FS.createPath("/",t.PATH.dirname(i)),t.FS.writeFile(i,n),i}):[]}function KjA(t,e){for(let A of e)t.FS.analyzePath(A).exists&&t.FS.unlink(A)}function UjA(t,e,A){let i;try{let n=t.lengthBytesUTF8(e);return i=t.ccall("malloc","number",["number"],[n+1]),t.stringToUTF8(e,i,n+1),t.ccall("viz_read_one_graph","number",["number"],[i])}finally{i&&t.ccall("free","number",["number"],[i])}}function JjA(t,e,A){let i=t.ccall("viz_create_graph","number",["string","number","number"],[e.name,typeof e.directed<"u"?e.directed:!0,typeof e.strict<"u"?e.strict:!1]);return kgA(t,i,e),i}function kgA(t,e,A){SgA(t,e,A),A.nodes&&A.nodes.forEach(i=>{let n=t.ccall("viz_add_node","number",["number","string"],[e,String(i.name)]);i.attributes&&bgA(t,e,n,i.attributes)}),A.edges&&A.edges.forEach(i=>{let n=t.ccall("viz_add_edge","number",["number","string","string"],[e,String(i.tail),String(i.head)]);i.attributes&&bgA(t,e,n,i.attributes)}),A.subgraphs&&A.subgraphs.forEach(i=>{let n=t.ccall("viz_add_subgraph","number",["number","string"],[e,String(i.name)]);kgA(t,n,i)})}function SgA(t,e,A){if(A.graphAttributes)for(let[i,n]of Object.entries(A.graphAttributes))iv(t,e,n,o=>{t.ccall("viz_set_default_graph_attribute","number",["number","string","number"],[e,i,o])});if(A.nodeAttributes)for(let[i,n]of Object.entries(A.nodeAttributes))iv(t,e,n,o=>{t.ccall("viz_set_default_node_attribute","number",["number","string","number"],[e,i,o])});if(A.edgeAttributes)for(let[i,n]of Object.entries(A.edgeAttributes))iv(t,e,n,o=>{t.ccall("viz_set_default_edge_attribute","number",["number","string","number"],[e,i,o])})}function bgA(t,e,A,i){for(let[n,o]of Object.entries(i))iv(t,e,o,r=>{t.ccall("viz_set_attribute","number",["number","string","number"],[A,n,r])})}function iv(t,e,A,i){let n;if(typeof A=="object"&&"html"in A?n=t.ccall("viz_string_dup_html","number",["number","string"],[e,String(A.html)]):n=t.ccall("viz_string_dup","number",["number","string"],[e,String(A)]),n==0)throw new Error("couldn't dup string");i(n),typeof A=="object"&&"html"in A?t.ccall("viz_string_free_html","number",["number","number"],[e,n]):t.ccall("viz_string_free","number",["number","number"],[e,n])}var hU=class{constructor(e){this.module=e}get graphvizVersion(){return _jA(this.module)}get formats(){return vgA(this.module,"device")}get engines(){return vgA(this.module,"layout")}renderFormats(e,A,i={}){return MgA(this.module,e,A,sA({engine:"dot"},i))}render(e,A={}){let i;A.format===void 0?i="dot":i=A.format;let n=MgA(this.module,e,[i],sA({engine:"dot"},A));return n.status==="success"&&(n.output=n.output[i]),n}renderString(e,A={}){let i=this.render(e,A);if(i.status!=="success")throw new Error(i.errors.find(n=>n.level=="error")?.message||"render failed");return i.output}renderSVGElement(e,A={}){let i=this.renderString(e,Fe(sA({},A),{format:"svg"}));return new DOMParser().parseFromString(i,"image/svg+xml").documentElement}renderJSON(e,A={}){let i=this.renderString(e,Fe(sA({},A),{format:"json"}));return JSON.parse(i)}};function RgA(){return xjA().then(t=>new hU(t))}var nv=class t{render(e){return Ni(this,null,function*(){let A={format:"svg",engine:"dot"};return(yield RgA()).renderString(e,A)})}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var ov=new eA("AudioPlayingService");var LgA=new eA("PendingEventService"),rv=class{};var sv=new eA("VideoService");var av=new eA("WebSocketService");var cv=class t{createMessagePartFromFile(e){return Ni(this,null,function*(){return{inlineData:{displayName:e.name,data:yield this.readFileAsBytes(e),mimeType:e.type}}})}readFileAsBytes(e){return new Promise((A,i)=>{let n=new FileReader;n.onload=o=>{let r=o.target.result.split(",")[1];A(r)},n.onerror=i,n.readAsDataURL(e)})}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var gv=class t extends rv{createFunctionResponse(e,A,i){return{function_response:{id:e,name:A,response:{response:i}}}}static \u0275fac=(()=>{let e;return function(i){return(e||(e=ci(t)))(i||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var lv=class t extends Y8{sanitizer=f(oc);windowOpen(e,A,i,n){return e.open(A,i,n)}createObjectUrl(e){return URL.createObjectURL(e)}openBlobUrl(e){let A=this.createObjectUrl(e);return this.windowOpen(window,A,"_blank")}setAnchorHref(e,A){e.href=A}bypassSecurityTrustHtml(e){return this.sanitizer.bypassSecurityTrustHtml(e)}static \u0275fac=(()=>{let e;return function(i){return(e||(e=ci(t)))(i||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Iv=class t{constructor(e){this.http=e}apiServerDomain=ds.getApiServerBaseUrl();createSession(e,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${A}/users/${e}/sessions`;return this.http.post(i,null)}return new gt}listSessions(e,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${A}/users/${e}/sessions`;return this.http.get(i)}return new gt}deleteSession(e,A,i){let n=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}`;return this.http.delete(n)}getSession(e,A,i){let n=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}`;return this.http.get(n)}importSession(e,A,i){if(this.apiServerDomain!=null){let n=this.apiServerDomain+`/apps/${A}/users/${e}/sessions`;return this.http.post(n,{appName:A,userId:e,events:i})}return new gt}static \u0275fac=function(A){return new(A||t)(be(ks))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Cv=class t{audioRecordingService=f(Z7);videoService=f(sv);webSocketService=f(av);audioIntervalId=void 0;videoIntervalId=void 0;constructor(){}startAudioChat(n){return Ni(this,arguments,function*({appName:e,userId:A,sessionId:i}){let o=window.location.protocol==="https:"?"wss":"ws";this.webSocketService.connect(`${o}://${ds.getWSServerUrl()}/run_live?app_name=${e}&user_id=${A}&session_id=${i}`),yield this.startAudioStreaming()})}stopAudioChat(){this.stopAudioStreaming(),this.webSocketService.closeConnection()}startAudioStreaming(){return Ni(this,null,function*(){try{yield this.audioRecordingService.startRecording(),this.audioIntervalId=setInterval(()=>this.sendBufferedAudio(),250)}catch(e){console.error("Error accessing microphone:",e)}})}stopAudioStreaming(){clearInterval(this.audioIntervalId),this.audioIntervalId=void 0,this.audioRecordingService.stopRecording()}sendBufferedAudio(){let e=this.audioRecordingService.getCombinedAudioBuffer();if(!e)return;let A={blob:{mime_type:"audio/pcm",data:e}};this.webSocketService.sendMessage(A),this.audioRecordingService.cleanAudioBuffer()}startVideoChat(o){return Ni(this,arguments,function*({appName:e,userId:A,sessionId:i,videoContainer:n}){let r=window.location.protocol==="https:"?"wss":"ws";this.webSocketService.connect(`${r}://${ds.getWSServerUrl()}/run_live?app_name=${e}&user_id=${A}&session_id=${i}`),yield this.startAudioStreaming(),yield this.startVideoStreaming(n)})}stopVideoChat(e){this.stopAudioStreaming(),this.stopVideoStreaming(e),this.webSocketService.closeConnection()}startVideoStreaming(e){return Ni(this,null,function*(){try{yield this.videoService.startRecording(e),this.videoIntervalId=setInterval(()=>Ni(this,null,function*(){return yield this.sendCapturedFrame()}),1e3)}catch(A){console.error("Error accessing camera:",A)}})}sendCapturedFrame(){return Ni(this,null,function*(){let e=yield this.videoService.getCapturedFrame();if(!e)return;let A={blob:{mime_type:"image/jpeg",data:e}};this.webSocketService.sendMessage(A)})}stopVideoStreaming(e){clearInterval(this.videoIntervalId),this.videoIntervalId=void 0,this.videoService.stopRecording(e)}onStreamClose(){return this.webSocketService.onCloseReason()}closeStream(){this.webSocketService.closeConnection()}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var VlA=$Q(qlA());var Bv=class t{stc(e){return(0,VlA.default)(e)}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Ev=class t{selectedTraceRowSource=new Fi(void 0);selectedTraceRow$=this.selectedTraceRowSource.asObservable();eventDataSource=new Fi(void 0);eventData$=this.eventDataSource.asObservable();hoveredMessageIndicesSource=new Fi([]);hoveredMessageIndices$=this.hoveredMessageIndicesSource.asObservable();messagesSource=new Fi([]);messages$=this.messagesSource.asObservable();selectedRow(e){this.selectedTraceRowSource.next(e)}setEventData(e){this.eventDataSource.next(e)}setMessages(e){this.messagesSource.next(e)}setHoveredMessages(e,A){if(!e){this.hoveredMessageIndicesSource.next([]);return}let i=e.attributes,n=i&&i["gcp.vertex.agent.event_id"],o=0,r=[];for(let s of this.messagesSource.value){if(s.role=="user"){o++;continue}if(this.eventDataSource.value?.get(s.eventId).invocationId!=A){o++;continue}if(n)if(i["gcp.vertex.agent.event_id"]==s.eventId){r.push(o),o++;continue}else{o++;continue}else{r.push(o),o++;continue}}this.hoveredMessageIndicesSource.next(r)}resetTraceService(){this.eventDataSource.next(void 0),this.messagesSource.next([]),this.hoveredMessageIndicesSource.next([])}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Qv=class t{mediaRecorder;stream;renderer;videoElement;videoBuffer=[];constructor(e){this.renderer=e.createRenderer(null,null)}createVideoElement(e){this.clearVideoElement(e),this.videoElement=this.renderer.createElement("video"),this.renderer.setAttribute(this.videoElement,"width","400"),this.renderer.setAttribute(this.videoElement,"height","300"),this.renderer.setAttribute(this.videoElement,"autoplay","true"),this.renderer.setAttribute(this.videoElement,"muted","true"),this.renderer.appendChild(e.nativeElement,this.videoElement)}startRecording(e){return Ni(this,null,function*(){this.createVideoElement(e);try{this.stream=yield navigator.mediaDevices.getUserMedia({video:!0}),this.videoElement.srcObject=this.stream,this.mediaRecorder=new MediaRecorder(this.stream,{mimeType:"video/webm"}),this.mediaRecorder.start(1e3)}catch(A){console.error("Error accessing camera/microphone:",A)}})}getCapturedFrame(){return Ni(this,null,function*(){try{let e=yield this.captureFrame();return this.blobToUint8Array(e)}catch(e){console.error("Error capturing frame:",e);return}})}blobToUint8Array(e){return Ni(this,null,function*(){let A=yield e.arrayBuffer();return new Uint8Array(A)})}captureFrame(){return Ni(this,null,function*(){return new Promise((e,A)=>{try{let i=document.createElement("canvas");i.width=this.videoElement.videoWidth,i.height=this.videoElement.videoHeight;let n=i.getContext("2d");if(!n){A(new Error("Canvas context not supported"));return}n.drawImage(this.videoElement,0,0,i.width,i.height),i.toBlob(o=>{o?e(o):A(new Error("Failed to create image blob"))},"image/png")}catch(i){A(i)}})})}stopRecording(e){this.mediaRecorder&&this.mediaRecorder.stop(),this.stream&&this.stream.getTracks().forEach(A=>A.stop()),this.clearVideoElement(e)}clearVideoElement(e){let A=e.nativeElement.querySelector("video");A&&this.renderer.removeChild(e.nativeElement,A)}static \u0275fac=function(A){return new(A||t)(be(Ms))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var zVA={url:"",deserializer:t=>JSON.parse(t.data),serializer:t=>JSON.stringify(t)},PVA="WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }",xf=class t extends hd{constructor(e,A){if(super(),this._socket=null,e instanceof gt)this.destination=A,this.source=e;else{let i=this._config=Object.assign({},zVA);if(this._output=new qA,typeof e=="string")i.url=e;else for(let n in e)e.hasOwnProperty(n)&&(i[n]=e[n]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new sg}}lift(e){let A=new t(this._config,this.destination);return A.operator=e,A.source=this,A}_resetState(){this._socket=null,this.source||(this.destination=new sg),this._output=new qA}multiplex(e,A,i){let n=this;return new gt(o=>{try{n.next(e())}catch(s){o.error(s)}let r=n.subscribe({next:s=>{try{i(s)&&o.next(s)}catch(a){o.error(a)}},error:s=>o.error(s),complete:()=>o.complete()});return()=>{try{n.next(A())}catch(s){o.error(s)}r.unsubscribe()}})}_connectSocket(){let{WebSocketCtor:e,protocol:A,url:i,binaryType:n}=this._config,o=this._output,r=null;try{r=A?new e(i,A):new e(i),this._socket=r,n&&(this._socket.binaryType=n)}catch(a){o.error(a);return}let s=new Kt(()=>{this._socket=null,r&&r.readyState===1&&r.close()});r.onopen=a=>{let{_socket:c}=this;if(!c){r.close(),this._resetState();return}let{openObserver:g}=this._config;g&&g.next(a);let I=this.destination;this.destination=C0.create(C=>{if(r.readyState===1)try{let{serializer:d}=this._config;r.send(d(C))}catch(d){this.destination.error(d)}},C=>{let{closingObserver:d}=this._config;d&&d.next(void 0),C&&C.code?r.close(C.code,C.reason):o.error(new TypeError(PVA)),this._resetState()},()=>{let{closingObserver:C}=this._config;C&&C.next(void 0),r.close(),this._resetState()}),I&&I instanceof sg&&s.add(I.subscribe(this.destination))},r.onerror=a=>{this._resetState(),o.error(a)},r.onclose=a=>{r===this._socket&&this._resetState();let{closeObserver:c}=this._config;c&&c.next(a),a.wasClean?o.complete():o.error(a)},r.onmessage=a=>{try{let{deserializer:c}=this._config;o.next(c(a))}catch(c){o.error(c)}}}_subscribe(e){let{source:A}=this;return A?A.subscribe(e):(this._socket||this._connectSocket(),this._output.subscribe(e),e.add(()=>{let{_socket:i}=this;this._output.observers.length===0&&(i&&(i.readyState===1||i.readyState===0)&&i.close(),this._resetState())}),e)}unsubscribe(){let{_socket:e}=this;e&&(e.readyState===1||e.readyState===0)&&e.close(),this._resetState(),super.unsubscribe()}};var uv=class t{audioPlayingService=f(ov);socket$;messages$=new Fi("");audioBuffer=[];audioIntervalId=null;closeReasonSubject=new qA;connect(e){this.socket$=new xf({url:e,serializer:A=>JSON.stringify(A),deserializer:A=>A.data,closeObserver:{next:A=>{this.emitWsCloseReason(A.reason)}}}),this.socket$.subscribe(A=>{this.handleIncomingAudio(A),this.messages$.next(A)},A=>{console.error("WebSocket error:",A)}),this.audioIntervalId=setInterval(()=>this.playIncomingAudio(),250)}playIncomingAudio(){this.audioPlayingService.playAudio(this.audioBuffer),this.audioBuffer=[]}sendMessage(e){if(e.blob.data=this.arrayBufferToBase64(e.blob.data.buffer),!this.socket$||this.socket$.closed){console.error("WebSocket is not open.");return}this.socket$.next(e)}closeConnection(){clearInterval(this.audioIntervalId),this.audioIntervalId=null,this.socket$&&this.socket$.complete()}getMessages(){return this.messages$.asObservable()}arrayBufferToBase64(e){let A="",i=new Uint8Array(e),n=i.byteLength;for(let o=0;ot.json()).then(t=>{window.runtimeConfig=t,Pk(zQ,{providers:[yM(jk,Mr,Vb,G7,D6,U2,uB),{provide:A1,useClass:Iv},{provide:HB,useClass:j7},{provide:av,useClass:uv},{provide:W7,useValue:"./assets/audio-processor.js"},{provide:Z7,useClass:X7},{provide:ov,useClass:V7},{provide:sv,useClass:Qv},{provide:T8,useClass:Cv},{provide:zB,useClass:ev},{provide:Rl,useClass:Av},{provide:U8,useClass:q7},{provide:OB,useClass:$7},{provide:e1,useClass:Ev},{provide:Gc,useClass:tv},{provide:PB,useClass:nv},{provide:jB,useClass:Bv},{provide:$2,useClass:lv},{provide:J8,useClass:cv},{provide:LgA,useClass:gv},{provide:q8,useValue:P7},...t.logo?[{provide:b7,useValue:U7}]:[],aj(),{provide:ZlA,useClass:ha}]}).catch(e=>console.error(e))}); diff --git a/src/google/adk/cli/browser/polyfills-B6TNHZQ6.js b/src/google/adk/cli/browser/polyfills-B6TNHZQ6.js index 21c405ad38..9590af5094 100644 --- a/src/google/adk/cli/browser/polyfills-B6TNHZQ6.js +++ b/src/google/adk/cli/browser/polyfills-B6TNHZQ6.js @@ -1,17 +1,2 @@ -/** - * Copyright 2025 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ var ce=globalThis;function te(t){return(ce.__Zone_symbol_prefix||"__zone_symbol__")+t}function ht(){let t=ce.performance;function n(I){t&&t.mark&&t.mark(I)}function a(I,s){t&&t.measure&&t.measure(I,s)}n("Zone");class e{static __symbol__=te;static assertZonePatched(){if(ce.Promise!==S.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let s=e.current;for(;s.parent;)s=s.parent;return s}static get current(){return b.zone}static get currentTask(){return D}static __load_patch(s,i,r=!1){if(S.hasOwnProperty(s)){let E=ce[te("forceDuplicateZoneCheck")]===!0;if(!r&&E)throw Error("Already loaded patch: "+s)}else if(!ce["__Zone_disable_"+s]){let E="Zone:"+s;n(E),S[s]=i(ce,e,R),a(E,E)}}get parent(){return this._parent}get name(){return this._name}_parent;_name;_properties;_zoneDelegate;constructor(s,i){this._parent=s,this._name=i?i.name||"unnamed":"",this._properties=i&&i.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,i)}get(s){let i=this.getZoneWith(s);if(i)return i._properties[s]}getZoneWith(s){let i=this;for(;i;){if(i._properties.hasOwnProperty(s))return i;i=i._parent}return null}fork(s){if(!s)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,s)}wrap(s,i){if(typeof s!="function")throw new Error("Expecting function got: "+s);let r=this._zoneDelegate.intercept(this,s,i),E=this;return function(){return E.runGuarded(r,this,arguments,i)}}run(s,i,r,E){b={parent:b,zone:this};try{return this._zoneDelegate.invoke(this,s,i,r,E)}finally{b=b.parent}}runGuarded(s,i=null,r,E){b={parent:b,zone:this};try{try{return this._zoneDelegate.invoke(this,s,i,r,E)}catch(x){if(this._zoneDelegate.handleError(this,x))throw x}}finally{b=b.parent}}runTask(s,i,r){if(s.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(s.zone||J).name+"; Execution: "+this.name+")");let E=s,{type:x,data:{isPeriodic:ee=!1,isRefreshable:M=!1}={}}=s;if(s.state===q&&(x===U||x===k))return;let he=s.state!=A;he&&E._transitionTo(A,d);let _e=D;D=E,b={parent:b,zone:this};try{x==k&&s.data&&!ee&&!M&&(s.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,E,i,r)}catch(Q){if(this._zoneDelegate.handleError(this,Q))throw Q}}finally{let Q=s.state;if(Q!==q&&Q!==X)if(x==U||ee||M&&Q===p)he&&E._transitionTo(d,A,p);else{let Te=E._zoneDelegates;this._updateTaskCount(E,-1),he&&E._transitionTo(q,A,q),M&&(E._zoneDelegates=Te)}b=b.parent,D=_e}}scheduleTask(s){if(s.zone&&s.zone!==this){let r=this;for(;r;){if(r===s.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${s.zone.name}`);r=r.parent}}s._transitionTo(p,q);let i=[];s._zoneDelegates=i,s._zone=this;try{s=this._zoneDelegate.scheduleTask(this,s)}catch(r){throw s._transitionTo(X,p,q),this._zoneDelegate.handleError(this,r),r}return s._zoneDelegates===i&&this._updateTaskCount(s,1),s.state==p&&s._transitionTo(d,p),s}scheduleMicroTask(s,i,r,E){return this.scheduleTask(new g(F,s,i,r,E,void 0))}scheduleMacroTask(s,i,r,E,x){return this.scheduleTask(new g(k,s,i,r,E,x))}scheduleEventTask(s,i,r,E,x){return this.scheduleTask(new g(U,s,i,r,E,x))}cancelTask(s){if(s.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(s.zone||J).name+"; Execution: "+this.name+")");if(!(s.state!==d&&s.state!==A)){s._transitionTo(V,d,A);try{this._zoneDelegate.cancelTask(this,s)}catch(i){throw s._transitionTo(X,V),this._zoneDelegate.handleError(this,i),i}return this._updateTaskCount(s,-1),s._transitionTo(q,V),s.runCount=-1,s}}_updateTaskCount(s,i){let r=s._zoneDelegates;i==-1&&(s._zoneDelegates=null);for(let E=0;EI.hasTask(i,r),onScheduleTask:(I,s,i,r)=>I.scheduleTask(i,r),onInvokeTask:(I,s,i,r,E,x)=>I.invokeTask(i,r,E,x),onCancelTask:(I,s,i,r)=>I.cancelTask(i,r)};class f{get zone(){return this._zone}_zone;_taskCounts={microTask:0,macroTask:0,eventTask:0};_parentDelegate;_forkDlgt;_forkZS;_forkCurrZone;_interceptDlgt;_interceptZS;_interceptCurrZone;_invokeDlgt;_invokeZS;_invokeCurrZone;_handleErrorDlgt;_handleErrorZS;_handleErrorCurrZone;_scheduleTaskDlgt;_scheduleTaskZS;_scheduleTaskCurrZone;_invokeTaskDlgt;_invokeTaskZS;_invokeTaskCurrZone;_cancelTaskDlgt;_cancelTaskZS;_cancelTaskCurrZone;_hasTaskDlgt;_hasTaskDlgtOwner;_hasTaskZS;_hasTaskCurrZone;constructor(s,i,r){this._zone=s,this._parentDelegate=i,this._forkZS=r&&(r&&r.onFork?r:i._forkZS),this._forkDlgt=r&&(r.onFork?i:i._forkDlgt),this._forkCurrZone=r&&(r.onFork?this._zone:i._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:i._interceptZS),this._interceptDlgt=r&&(r.onIntercept?i:i._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this._zone:i._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:i._invokeZS),this._invokeDlgt=r&&(r.onInvoke?i:i._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this._zone:i._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:i._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?i:i._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this._zone:i._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:i._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?i:i._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this._zone:i._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:i._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?i:i._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this._zone:i._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:i._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?i:i._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this._zone:i._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;let E=r&&r.onHasTask,x=i&&i._hasTaskZS;(E||x)&&(this._hasTaskZS=E?r:c,this._hasTaskDlgt=i,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=this._zone,r.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=i,this._scheduleTaskCurrZone=this._zone),r.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=i,this._invokeTaskCurrZone=this._zone),r.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=i,this._cancelTaskCurrZone=this._zone))}fork(s,i){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,s,i):new e(s,i)}intercept(s,i,r){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,s,i,r):i}invoke(s,i,r,E,x){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,s,i,r,E,x):i.apply(r,E)}handleError(s,i){return this._handleErrorZS?this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,s,i):!0}scheduleTask(s,i){let r=i;if(this._scheduleTaskZS)this._hasTaskZS&&r._zoneDelegates.push(this._hasTaskDlgtOwner),r=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,s,i),r||(r=i);else if(i.scheduleFn)i.scheduleFn(i);else if(i.type==F)z(i);else throw new Error("Task is missing scheduleFn.");return r}invokeTask(s,i,r,E){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,s,i,r,E):i.callback.apply(r,E)}cancelTask(s,i){let r;if(this._cancelTaskZS)r=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,s,i);else{if(!i.cancelFn)throw Error("Task is not cancelable");r=i.cancelFn(i)}return r}hasTask(s,i){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,s,i)}catch(r){this.handleError(s,r)}}_updateTaskCount(s,i){let r=this._taskCounts,E=r[s],x=r[s]=E+i;if(x<0)throw new Error("More tasks executed then were scheduled.");if(E==0||x==0){let ee={microTask:r.microTask>0,macroTask:r.macroTask>0,eventTask:r.eventTask>0,change:s};this.hasTask(this._zone,ee)}}}class g{type;source;invoke;callback;data;scheduleFn;cancelFn;_zone=null;runCount=0;_zoneDelegates=null;_state="notScheduled";constructor(s,i,r,E,x,ee){if(this.type=s,this.source=i,this.data=E,this.scheduleFn=x,this.cancelFn=ee,!r)throw new Error("callback is not defined");this.callback=r;let M=this;s===U&&E&&E.useG?this.invoke=g.invokeTask:this.invoke=function(){return g.invokeTask.call(ce,M,this,arguments)}}static invokeTask(s,i,r){s||(s=this),K++;try{return s.runCount++,s.zone.runTask(s,i,r)}finally{K==1&&$(),K--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(q,p)}_transitionTo(s,i,r){if(this._state===i||this._state===r)this._state=s,s==q&&(this._zoneDelegates=null);else throw new Error(`${this.type} '${this.source}': can not transition to '${s}', expecting state '${i}'${r?" or '"+r+"'":""}, was '${this._state}'.`)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}let T=te("setTimeout"),y=te("Promise"),w=te("then"),_=[],P=!1,L;function H(I){if(L||ce[y]&&(L=ce[y].resolve(0)),L){let s=L[w];s||(s=L.then),s.call(L,I)}else ce[T](I,0)}function z(I){K===0&&_.length===0&&H($),I&&_.push(I)}function $(){if(!P){for(P=!0;_.length;){let I=_;_=[];for(let s=0;sb,onUnhandledError:W,microtaskDrainDone:W,scheduleMicroTask:z,showUncaughtError:()=>!e[te("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:W,patchMethod:()=>W,bindArguments:()=>[],patchThen:()=>W,patchMacroTask:()=>W,patchEventPrototype:()=>W,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>W,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>W,wrapWithCurrentZone:()=>W,filterProperties:()=>[],attachOriginToPatched:()=>W,_redefineProperty:()=>W,patchCallbacks:()=>W,nativeScheduleMicroTask:H},b={parent:null,zone:new e(null,null)},D=null,K=0;function W(){}return a("Zone","Zone"),e}function dt(){let t=globalThis,n=t[te("forceDuplicateZoneCheck")]===!0;if(t.Zone&&(n||typeof t.Zone.__symbol__!="function"))throw new Error("Zone already loaded.");return t.Zone??=ht(),t.Zone}var pe=Object.getOwnPropertyDescriptor,Me=Object.defineProperty,Ae=Object.getPrototypeOf,_t=Object.create,Tt=Array.prototype.slice,je="addEventListener",He="removeEventListener",Ne=te(je),Ze=te(He),ae="true",le="false",ve=te("");function Ve(t,n){return Zone.current.wrap(t,n)}function xe(t,n,a,e,c){return Zone.current.scheduleMacroTask(t,n,a,e,c)}var j=te,we=typeof window<"u",be=we?window:void 0,Y=we&&be||globalThis,Et="removeAttribute";function Fe(t,n){for(let a=t.length-1;a>=0;a--)typeof t[a]=="function"&&(t[a]=Ve(t[a],n+"_"+a));return t}function gt(t,n){let a=t.constructor.name;for(let e=0;e{let y=function(){return T.apply(this,Fe(arguments,a+"."+c))};return fe(y,T),y})(f)}}}function et(t){return t?t.writable===!1?!1:!(typeof t.get=="function"&&typeof t.set>"u"):!0}var tt=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,De=!("nw"in Y)&&typeof Y.process<"u"&&Y.process.toString()==="[object process]",Ge=!De&&!tt&&!!(we&&be.HTMLElement),nt=typeof Y.process<"u"&&Y.process.toString()==="[object process]"&&!tt&&!!(we&&be.HTMLElement),Ce={},kt=j("enable_beforeunload"),Xe=function(t){if(t=t||Y.event,!t)return;let n=Ce[t.type];n||(n=Ce[t.type]=j("ON_PROPERTY"+t.type));let a=this||t.target||Y,e=a[n],c;if(Ge&&a===be&&t.type==="error"){let f=t;c=e&&e.call(this,f.message,f.filename,f.lineno,f.colno,f.error),c===!0&&t.preventDefault()}else c=e&&e.apply(this,arguments),t.type==="beforeunload"&&Y[kt]&&typeof c=="string"?t.returnValue=c:c!=null&&!c&&t.preventDefault();return c};function Ye(t,n,a){let e=pe(t,n);if(!e&&a&&pe(a,n)&&(e={enumerable:!0,configurable:!0}),!e||!e.configurable)return;let c=j("on"+n+"patched");if(t.hasOwnProperty(c)&&t[c])return;delete e.writable,delete e.value;let f=e.get,g=e.set,T=n.slice(2),y=Ce[T];y||(y=Ce[T]=j("ON_PROPERTY"+T)),e.set=function(w){let _=this;if(!_&&t===Y&&(_=Y),!_)return;typeof _[y]=="function"&&_.removeEventListener(T,Xe),g?.call(_,null),_[y]=w,typeof w=="function"&&_.addEventListener(T,Xe,!1)},e.get=function(){let w=this;if(!w&&t===Y&&(w=Y),!w)return null;let _=w[y];if(_)return _;if(f){let P=f.call(this);if(P)return e.set.call(this,P),typeof w[Et]=="function"&&w.removeAttribute(n),P}return null},Me(t,n,e),t[c]=!0}function rt(t,n,a){if(n)for(let e=0;efunction(g,T){let y=a(g,T);return y.cbIdx>=0&&typeof T[y.cbIdx]=="function"?xe(y.name,T[y.cbIdx],y,c):f.apply(g,T)})}function fe(t,n){t[j("OriginalDelegate")]=n}var $e=!1,Le=!1;function yt(){if($e)return Le;$e=!0;try{let t=be.navigator.userAgent;(t.indexOf("MSIE ")!==-1||t.indexOf("Trident/")!==-1||t.indexOf("Edge/")!==-1)&&(Le=!0)}catch{}return Le}function Je(t){return typeof t=="function"}function Ke(t){return typeof t=="number"}var pt={useG:!0},ne={},ot={},st=new RegExp("^"+ve+"(\\w+)(true|false)$"),it=j("propagationStopped");function ct(t,n){let a=(n?n(t):t)+le,e=(n?n(t):t)+ae,c=ve+a,f=ve+e;ne[t]={},ne[t][le]=c,ne[t][ae]=f}function vt(t,n,a,e){let c=e&&e.add||je,f=e&&e.rm||He,g=e&&e.listeners||"eventListeners",T=e&&e.rmAll||"removeAllListeners",y=j(c),w="."+c+":",_="prependListener",P="."+_+":",L=function(p,d,A){if(p.isRemoved)return;let V=p.callback;typeof V=="object"&&V.handleEvent&&(p.callback=k=>V.handleEvent(k),p.originalDelegate=V);let X;try{p.invoke(p,d,[A])}catch(k){X=k}let F=p.options;if(F&&typeof F=="object"&&F.once){let k=p.originalDelegate?p.originalDelegate:p.callback;d[f].call(d,A.type,k,F)}return X};function H(p,d,A){if(d=d||t.event,!d)return;let V=p||d.target||t,X=V[ne[d.type][A?ae:le]];if(X){let F=[];if(X.length===1){let k=L(X[0],V,d);k&&F.push(k)}else{let k=X.slice();for(let U=0;U{throw U})}}}let z=function(p){return H(this,p,!1)},$=function(p){return H(this,p,!0)};function J(p,d){if(!p)return!1;let A=!0;d&&d.useG!==void 0&&(A=d.useG);let V=d&&d.vh,X=!0;d&&d.chkDup!==void 0&&(X=d.chkDup);let F=!1;d&&d.rt!==void 0&&(F=d.rt);let k=p;for(;k&&!k.hasOwnProperty(c);)k=Ae(k);if(!k&&p[c]&&(k=p),!k||k[y])return!1;let U=d&&d.eventNameToString,S={},R=k[y]=k[c],b=k[j(f)]=k[f],D=k[j(g)]=k[g],K=k[j(T)]=k[T],W;d&&d.prepend&&(W=k[j(d.prepend)]=k[d.prepend]);function I(o,u){return u?typeof o=="boolean"?{capture:o,passive:!0}:o?typeof o=="object"&&o.passive!==!1?{...o,passive:!0}:o:{passive:!0}:o}let s=function(o){if(!S.isExisting)return R.call(S.target,S.eventName,S.capture?$:z,S.options)},i=function(o){if(!o.isRemoved){let u=ne[o.eventName],v;u&&(v=u[o.capture?ae:le]);let C=v&&o.target[v];if(C){for(let m=0;mre.zone.cancelTask(re);o.call(Ee,"abort",ie,{once:!0}),re.removeAbortListener=()=>Ee.removeEventListener("abort",ie)}if(S.target=null,me&&(me.taskData=null),Be&&(S.options.once=!0),typeof re.options!="boolean"&&(re.options=se),re.target=N,re.capture=Se,re.eventName=Z,B&&(re.originalDelegate=G),O?ge.unshift(re):ge.push(re),m)return N}};return k[c]=l(R,w,ee,M,F),W&&(k[_]=l(W,P,E,M,F,!0)),k[f]=function(){let o=this||t,u=arguments[0];d&&d.transferEventName&&(u=d.transferEventName(u));let v=arguments[2],C=v?typeof v=="boolean"?!0:v.capture:!1,m=arguments[1];if(!m)return b.apply(this,arguments);if(V&&!V(b,m,o,arguments))return;let O=ne[u],N;O&&(N=O[C?ae:le]);let Z=N&&o[N];if(Z)for(let G=0;Gfunction(c,f){c[it]=!0,e&&e.apply(c,f)})}function Pt(t,n){n.patchMethod(t,"queueMicrotask",a=>function(e,c){Zone.current.scheduleMicroTask("queueMicrotask",c[0])})}var Re=j("zoneTask");function ke(t,n,a,e){let c=null,f=null;n+=e,a+=e;let g={};function T(w){let _=w.data;_.args[0]=function(){return w.invoke.apply(this,arguments)};let P=c.apply(t,_.args);return Ke(P)?_.handleId=P:(_.handle=P,_.isRefreshable=Je(P.refresh)),w}function y(w){let{handle:_,handleId:P}=w.data;return f.call(t,_??P)}c=ue(t,n,w=>function(_,P){if(Je(P[0])){let L={isRefreshable:!1,isPeriodic:e==="Interval",delay:e==="Timeout"||e==="Interval"?P[1]||0:void 0,args:P},H=P[0];P[0]=function(){try{return H.apply(this,arguments)}finally{let{handle:A,handleId:V,isPeriodic:X,isRefreshable:F}=L;!X&&!F&&(V?delete g[V]:A&&(A[Re]=null))}};let z=xe(n,P[0],L,T,y);if(!z)return z;let{handleId:$,handle:J,isRefreshable:q,isPeriodic:p}=z.data;if($)g[$]=z;else if(J&&(J[Re]=z,q&&!p)){let d=J.refresh;J.refresh=function(){let{zone:A,state:V}=z;return V==="notScheduled"?(z._state="scheduled",A._updateTaskCount(z,1)):V==="running"&&(z._state="scheduling"),d.call(this)}}return J??$??z}else return w.apply(t,P)}),f=ue(t,a,w=>function(_,P){let L=P[0],H;Ke(L)?(H=g[L],delete g[L]):(H=L?.[Re],H?L[Re]=null:H=L),H?.type?H.cancelFn&&H.zone.cancelTask(H):w.apply(t,P)})}function Rt(t,n){let{isBrowser:a,isMix:e}=n.getGlobalObjects();if(!a&&!e||!t.customElements||!("customElements"in t))return;let c=["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback","formAssociatedCallback","formDisabledCallback","formResetCallback","formStateRestoreCallback"];n.patchCallbacks(n,t.customElements,"customElements","define",c)}function Ct(t,n){if(Zone[n.symbol("patchEventTarget")])return;let{eventNames:a,zoneSymbolEventNames:e,TRUE_STR:c,FALSE_STR:f,ZONE_SYMBOL_PREFIX:g}=n.getGlobalObjects();for(let y=0;yf.target===t);if(e.length===0)return n;let c=e[0].ignoreProperties;return n.filter(f=>c.indexOf(f)===-1)}function Qe(t,n,a,e){if(!t)return;let c=lt(t,n,a);rt(t,c,e)}function Ie(t){return Object.getOwnPropertyNames(t).filter(n=>n.startsWith("on")&&n.length>2).map(n=>n.substring(2))}function Dt(t,n){if(De&&!nt||Zone[t.symbol("patchEvents")])return;let a=n.__Zone_ignore_on_properties,e=[];if(Ge){let c=window;e=e.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);let f=[];Qe(c,Ie(c),a&&a.concat(f),Ae(c))}e=e.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let c=0;c{let a=n[t.__symbol__("legacyPatch")];a&&a()}),t.__load_patch("timers",n=>{let a="set",e="clear";ke(n,a,e,"Timeout"),ke(n,a,e,"Interval"),ke(n,a,e,"Immediate")}),t.__load_patch("requestAnimationFrame",n=>{ke(n,"request","cancel","AnimationFrame"),ke(n,"mozRequest","mozCancel","AnimationFrame"),ke(n,"webkitRequest","webkitCancel","AnimationFrame")}),t.__load_patch("blocking",(n,a)=>{let e=["alert","prompt","confirm"];for(let c=0;cfunction(w,_){return a.current.run(g,n,_,y)})}}),t.__load_patch("EventTarget",(n,a,e)=>{wt(n,e),Ct(n,e);let c=n.XMLHttpRequestEventTarget;c&&c.prototype&&e.patchEventTarget(n,e,[c.prototype])}),t.__load_patch("MutationObserver",(n,a,e)=>{ye("MutationObserver"),ye("WebKitMutationObserver")}),t.__load_patch("IntersectionObserver",(n,a,e)=>{ye("IntersectionObserver")}),t.__load_patch("FileReader",(n,a,e)=>{ye("FileReader")}),t.__load_patch("on_property",(n,a,e)=>{Dt(e,n)}),t.__load_patch("customElements",(n,a,e)=>{Rt(n,e)}),t.__load_patch("XHR",(n,a)=>{w(n);let e=j("xhrTask"),c=j("xhrSync"),f=j("xhrListener"),g=j("xhrScheduled"),T=j("xhrURL"),y=j("xhrErrorBeforeScheduled");function w(_){let P=_.XMLHttpRequest;if(!P)return;let L=P.prototype;function H(R){return R[e]}let z=L[Ne],$=L[Ze];if(!z){let R=_.XMLHttpRequestEventTarget;if(R){let b=R.prototype;z=b[Ne],$=b[Ze]}}let J="readystatechange",q="scheduled";function p(R){let b=R.data,D=b.target;D[g]=!1,D[y]=!1;let K=D[f];z||(z=D[Ne],$=D[Ze]),K&&$.call(D,J,K);let W=D[f]=()=>{if(D.readyState===D.DONE)if(!b.aborted&&D[g]&&R.state===q){let s=D[a.__symbol__("loadfalse")];if(D.status!==0&&s&&s.length>0){let i=R.invoke;R.invoke=function(){let r=D[a.__symbol__("loadfalse")];for(let E=0;Efunction(R,b){return R[c]=b[2]==!1,R[T]=b[1],V.apply(R,b)}),X="XMLHttpRequest.send",F=j("fetchTaskAborting"),k=j("fetchTaskScheduling"),U=ue(L,"send",()=>function(R,b){if(a.current[k]===!0||R[c])return U.apply(R,b);{let D={target:R,url:R[T],isPeriodic:!1,args:b,aborted:!1},K=xe(X,d,D,p,A);R&&R[y]===!0&&!D.aborted&&K.state===q&&K.invoke()}}),S=ue(L,"abort",()=>function(R,b){let D=H(R);if(D&&typeof D.type=="string"){if(D.cancelFn==null||D.data&&D.data.aborted)return;D.zone.cancelTask(D)}else if(a.current[F]===!0)return S.apply(R,b)})}}),t.__load_patch("geolocation",n=>{n.navigator&&n.navigator.geolocation&>(n.navigator.geolocation,["getCurrentPosition","watchPosition"])}),t.__load_patch("PromiseRejectionEvent",(n,a)=>{function e(c){return function(f){at(n,c).forEach(T=>{let y=n.PromiseRejectionEvent;if(y){let w=new y(c,{promise:f.promise,reason:f.rejection});T.invoke(w)}})}}n.PromiseRejectionEvent&&(a[j("unhandledPromiseRejectionHandler")]=e("unhandledrejection"),a[j("rejectionHandledHandler")]=e("rejectionhandled"))}),t.__load_patch("queueMicrotask",(n,a,e)=>{Pt(n,e)})}function Ot(t){t.__load_patch("ZoneAwarePromise",(n,a,e)=>{let c=Object.getOwnPropertyDescriptor,f=Object.defineProperty;function g(h){if(h&&h.toString===Object.prototype.toString){let l=h.constructor&&h.constructor.name;return(l||"")+": "+JSON.stringify(h)}return h?h.toString():Object.prototype.toString.call(h)}let T=e.symbol,y=[],w=n[T("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")]!==!1,_=T("Promise"),P=T("then"),L="__creationTrace__";e.onUnhandledError=h=>{if(e.showUncaughtError()){let l=h&&h.rejection;l?console.error("Unhandled Promise rejection:",l instanceof Error?l.message:l,"; Zone:",h.zone.name,"; Task:",h.task&&h.task.source,"; Value:",l,l instanceof Error?l.stack:void 0):console.error(h)}},e.microtaskDrainDone=()=>{for(;y.length;){let h=y.shift();try{h.zone.runGuarded(()=>{throw h.throwOriginal?h.rejection:h})}catch(l){z(l)}}};let H=T("unhandledPromiseRejectionHandler");function z(h){e.onUnhandledError(h);try{let l=a[H];typeof l=="function"&&l.call(this,h)}catch{}}function $(h){return h&&typeof h.then=="function"}function J(h){return h}function q(h){return M.reject(h)}let p=T("state"),d=T("value"),A=T("finally"),V=T("parentPromiseValue"),X=T("parentPromiseState"),F="Promise.then",k=null,U=!0,S=!1,R=0;function b(h,l){return o=>{try{I(h,l,o)}catch(u){I(h,!1,u)}}}let D=function(){let h=!1;return function(o){return function(){h||(h=!0,o.apply(null,arguments))}}},K="Promise resolved with itself",W=T("currentTaskTrace");function I(h,l,o){let u=D();if(h===o)throw new TypeError(K);if(h[p]===k){let v=null;try{(typeof o=="object"||typeof o=="function")&&(v=o&&o.then)}catch(C){return u(()=>{I(h,!1,C)})(),h}if(l!==S&&o instanceof M&&o.hasOwnProperty(p)&&o.hasOwnProperty(d)&&o[p]!==k)i(o),I(h,o[p],o[d]);else if(l!==S&&typeof v=="function")try{v.call(o,u(b(h,l)),u(b(h,!1)))}catch(C){u(()=>{I(h,!1,C)})()}else{h[p]=l;let C=h[d];if(h[d]=o,h[A]===A&&l===U&&(h[p]=h[X],h[d]=h[V]),l===S&&o instanceof Error){let m=a.currentTask&&a.currentTask.data&&a.currentTask.data[L];m&&f(o,W,{configurable:!0,enumerable:!1,writable:!0,value:m})}for(let m=0;m{try{let O=h[d],N=!!o&&A===o[A];N&&(o[V]=O,o[X]=C);let Z=l.run(m,void 0,N&&m!==q&&m!==J?[]:[O]);I(o,!0,Z)}catch(O){I(o,!1,O)}},o)}let E="function ZoneAwarePromise() { [native code] }",x=function(){},ee=n.AggregateError;class M{static toString(){return E}static resolve(l){return l instanceof M?l:I(new this(null),U,l)}static reject(l){return I(new this(null),S,l)}static withResolvers(){let l={};return l.promise=new M((o,u)=>{l.resolve=o,l.reject=u}),l}static any(l){if(!l||typeof l[Symbol.iterator]!="function")return Promise.reject(new ee([],"All promises were rejected"));let o=[],u=0;try{for(let m of l)u++,o.push(M.resolve(m))}catch{return Promise.reject(new ee([],"All promises were rejected"))}if(u===0)return Promise.reject(new ee([],"All promises were rejected"));let v=!1,C=[];return new M((m,O)=>{for(let N=0;N{v||(v=!0,m(Z))},Z=>{C.push(Z),u--,u===0&&(v=!0,O(new ee(C,"All promises were rejected")))})})}static race(l){let o,u,v=new this((O,N)=>{o=O,u=N});function C(O){o(O)}function m(O){u(O)}for(let O of l)$(O)||(O=this.resolve(O)),O.then(C,m);return v}static all(l){return M.allWithCallback(l)}static allSettled(l){return(this&&this.prototype instanceof M?this:M).allWithCallback(l,{thenCallback:u=>({status:"fulfilled",value:u}),errorCallback:u=>({status:"rejected",reason:u})})}static allWithCallback(l,o){let u,v,C=new this((Z,G)=>{u=Z,v=G}),m=2,O=0,N=[];for(let Z of l){$(Z)||(Z=this.resolve(Z));let G=O;try{Z.then(B=>{N[G]=o?o.thenCallback(B):B,m--,m===0&&u(N)},B=>{o?(N[G]=o.errorCallback(B),m--,m===0&&u(N)):v(B)})}catch(B){v(B)}m++,O++}return m-=2,m===0&&u(N),C}constructor(l){let o=this;if(!(o instanceof M))throw new Error("Must be an instanceof Promise.");o[p]=k,o[d]=[];try{let u=D();l&&l(u(b(o,U)),u(b(o,S)))}catch(u){I(o,!1,u)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return M}then(l,o){let u=this.constructor?.[Symbol.species];(!u||typeof u!="function")&&(u=this.constructor||M);let v=new u(x),C=a.current;return this[p]==k?this[d].push(C,v,l,o):r(this,C,v,l,o),v}catch(l){return this.then(null,l)}finally(l){let o=this.constructor?.[Symbol.species];(!o||typeof o!="function")&&(o=M);let u=new o(x);u[A]=A;let v=a.current;return this[p]==k?this[d].push(v,u,l,l):r(this,v,u,l,l),u}}M.resolve=M.resolve,M.reject=M.reject,M.race=M.race,M.all=M.all;let he=n[_]=n.Promise;n.Promise=M;let _e=T("thenPatched");function Q(h){let l=h.prototype,o=c(l,"then");if(o&&(o.writable===!1||!o.configurable))return;let u=l.then;l[P]=u,h.prototype.then=function(v,C){return new M((O,N)=>{u.call(this,O,N)}).then(v,C)},h[_e]=!0}e.patchThen=Q;function Te(h){return function(l,o){let u=h.apply(l,o);if(u instanceof M)return u;let v=u.constructor;return v[_e]||Q(v),u}}return he&&(Q(he),ue(n,"fetch",h=>Te(h))),Promise[a.__symbol__("uncaughtPromiseErrors")]=y,M})}function Nt(t){t.__load_patch("toString",n=>{let a=Function.prototype.toString,e=j("OriginalDelegate"),c=j("Promise"),f=j("Error"),g=function(){if(typeof this=="function"){let _=this[e];if(_)return typeof _=="function"?a.call(_):Object.prototype.toString.call(_);if(this===Promise){let P=n[c];if(P)return a.call(P)}if(this===Error){let P=n[f];if(P)return a.call(P)}}return a.call(this)};g[e]=a,Function.prototype.toString=g;let T=Object.prototype.toString,y="[object Promise]";Object.prototype.toString=function(){return typeof Promise=="function"&&this instanceof Promise?y:T.call(this)}})}function Zt(t,n,a,e,c){let f=Zone.__symbol__(e);if(n[f])return;let g=n[f]=n[e];n[e]=function(T,y,w){return y&&y.prototype&&c.forEach(function(_){let P=`${a}.${e}::`+_,L=y.prototype;try{if(L.hasOwnProperty(_)){let H=t.ObjectGetOwnPropertyDescriptor(L,_);H&&H.value?(H.value=t.wrapWithCurrentZone(H.value,P),t._redefineProperty(y.prototype,_,H)):L[_]&&(L[_]=t.wrapWithCurrentZone(L[_],P))}else L[_]&&(L[_]=t.wrapWithCurrentZone(L[_],P))}catch{}}),g.call(n,T,y,w)},t.attachOriginToPatched(n[e],g)}function Lt(t){t.__load_patch("util",(n,a,e)=>{let c=Ie(n);e.patchOnProperties=rt,e.patchMethod=ue,e.bindArguments=Fe,e.patchMacroTask=mt;let f=a.__symbol__("BLACK_LISTED_EVENTS"),g=a.__symbol__("UNPATCHED_EVENTS");n[g]&&(n[f]=n[g]),n[f]&&(a[f]=a[g]=n[f]),e.patchEventPrototype=bt,e.patchEventTarget=vt,e.isIEOrEdge=yt,e.ObjectDefineProperty=Me,e.ObjectGetOwnPropertyDescriptor=pe,e.ObjectCreate=_t,e.ArraySlice=Tt,e.patchClass=ye,e.wrapWithCurrentZone=Ve,e.filterProperties=lt,e.attachOriginToPatched=fe,e._redefineProperty=Object.defineProperty,e.patchCallbacks=Zt,e.getGlobalObjects=()=>({globalSources:ot,zoneSymbolEventNames:ne,eventNames:c,isBrowser:Ge,isMix:nt,isNode:De,TRUE_STR:ae,FALSE_STR:le,ZONE_SYMBOL_PREFIX:ve,ADD_EVENT_LISTENER_STR:je,REMOVE_EVENT_LISTENER_STR:He})})}function It(t){Ot(t),Nt(t),Lt(t)}var ut=dt();It(ut);St(ut); From c6cf11cb74d310bef98bd440071ad10dae08a996 Mon Sep 17 00:00:00 2001 From: Liang Wu Date: Wed, 22 Oct 2025 13:02:56 -0700 Subject: [PATCH 155/303] chore:Rename conformance `create` command to `record` PiperOrigin-RevId: 822708044 --- src/google/adk/cli/cli_tools_click.py | 8 ++++---- .../adk/cli/conformance/{cli_create.py => cli_record.py} | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) rename src/google/adk/cli/conformance/{cli_create.py => cli_record.py} (98%) diff --git a/src/google/adk/cli/cli_tools_click.py b/src/google/adk/cli/cli_tools_click.py index a47d20f700..f852ae97e4 100644 --- a/src/google/adk/cli/cli_tools_click.py +++ b/src/google/adk/cli/cli_tools_click.py @@ -127,7 +127,7 @@ def conformance(): pass -@conformance.command("create", cls=HelpfulCommand) +@conformance.command("record", cls=HelpfulCommand) @click.argument( "paths", nargs=-1, @@ -136,7 +136,7 @@ def conformance(): ), ) @click.pass_context -def cli_conformance_create( +def cli_conformance_record( ctx, paths: tuple[str, ...], ): @@ -162,7 +162,7 @@ def cli_conformance_create( """ try: - from .conformance.cli_create import run_conformance_create + from .conformance.cli_record import run_conformance_record except ImportError as e: click.secho( f"Error: Missing conformance testing dependencies: {e}", @@ -178,7 +178,7 @@ def cli_conformance_create( # Default to tests/ directory if no paths provided test_paths = [Path(p) for p in paths] if paths else [Path("tests").resolve()] - asyncio.run(run_conformance_create(test_paths)) + asyncio.run(run_conformance_record(test_paths)) @conformance.command("test", cls=HelpfulCommand) diff --git a/src/google/adk/cli/conformance/cli_create.py b/src/google/adk/cli/conformance/cli_record.py similarity index 98% rename from src/google/adk/cli/conformance/cli_create.py rename to src/google/adk/cli/conformance/cli_record.py index 7ce3857ff2..4a071e280f 100644 --- a/src/google/adk/cli/conformance/cli_create.py +++ b/src/google/adk/cli/conformance/cli_record.py @@ -105,7 +105,7 @@ async def _create_conformance_test_files( return generated_session_file -async def run_conformance_create(paths: list[Path]) -> None: +async def run_conformance_record(paths: list[Path]) -> None: """Generate conformance tests from TestCaseInput files. Args: From d8c66fe6881622036254f7329f21a4214a1c257c Mon Sep 17 00:00:00 2001 From: Kathy Wu Date: Wed, 22 Oct 2025 13:57:06 -0700 Subject: [PATCH 156/303] fix: Update the saving artifact text for BuiltInCodeExecutor to be more human readable Since it appears in the same bubble as the rest of the LLM's response text, make it more human readable so it doesn't look out of place. PiperOrigin-RevId: 822729061 --- src/google/adk/flows/llm_flows/_code_execution.py | 2 +- tests/unittests/flows/llm_flows/test_code_execution.py | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/google/adk/flows/llm_flows/_code_execution.py b/src/google/adk/flows/llm_flows/_code_execution.py index d37e773c7f..b7c1e5b9c6 100644 --- a/src/google/adk/flows/llm_flows/_code_execution.py +++ b/src/google/adk/flows/llm_flows/_code_execution.py @@ -305,7 +305,7 @@ async def _run_post_processor( ) event_actions.artifact_delta[file_name] = version part.inline_data = None - part.text = f'artifact: {file_name}' + part.text = f'Saved as artifact: {file_name}. ' yield Event( invocation_id=invocation_context.invocation_id, diff --git a/tests/unittests/flows/llm_flows/test_code_execution.py b/tests/unittests/flows/llm_flows/test_code_execution.py index 4212e19a60..9277c6bd74 100644 --- a/tests/unittests/flows/llm_flows/test_code_execution.py +++ b/tests/unittests/flows/llm_flows/test_code_execution.py @@ -95,8 +95,13 @@ async def test_builtin_code_executor_image_artifact_creation(mock_datetime): assert not events[0].content assert llm_response.content is not None assert len(llm_response.content.parts) == 3 - assert llm_response.content.parts[0].text == 'artifact: image_1.png' + assert ( + llm_response.content.parts[0].text == 'Saved as artifact: image_1.png. ' + ) assert not llm_response.content.parts[0].inline_data assert llm_response.content.parts[1].text == 'this is text' - assert llm_response.content.parts[2].text == f'artifact: {expected_filename2}' + assert ( + llm_response.content.parts[2].text + == f'Saved as artifact: {expected_filename2}. ' + ) assert not llm_response.content.parts[2].inline_data From 91cc03e96fe3480b44eabc54015f5c308d983ad2 Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Wed, 22 Oct 2025 14:00:52 -0700 Subject: [PATCH 157/303] chore: Bump ADK version to 1 17 0 This release includes updates to the changelog with new features across Core, Evals, Integrations, Observability, Services, Tools, and UI, along with various bug fixes and improvements. The base CL number has also been updated. PiperOrigin-RevId: 822730595 --- CHANGELOG.md | 86 +++++++++++++++++++++++++++++++++++++++ src/google/adk/version.py | 2 +- 2 files changed, 87 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 93252d8cba..5a1b65936d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,91 @@ # Changelog +## [1.17.0](https://github.com/google/adk-python/compare/v1.16.0...v1.17.0) (2025-10-22) + +### Features + +* **[Core]** + * Add a service registry to provide a generic way to register custom service implementations to be used in FastAPI server. See short instruction [here](https://github.com/google/adk-python/discussions/3175#discussioncomment-14745120). ([391628f](https://github.com/google/adk-python/commit/391628fcdc7b950c6835f64ae3ccab197163c990)) + * Add the ability to rewind a session to before a previous invocation ([9dce06f](https://github.com/google/adk-python/commit/9dce06f9b00259ec42241df4f6638955e783a9d1)) + * Support resuming a parallel agent with multiple branches paused on tool confirmation requests ([9939e0b](https://github.com/google/adk-python/commit/9939e0b087094038b90d86c2fd35c26dd63f1157)) + * Support content union as static instruction ([cc24d61](https://github.com/google/adk-python/commit/cc24d616f80c0eba2b09239b621cf3d176f144ea)) + +* **[Evals]** + * ADK cli allows developers to create an eval set and add an eval case ([ae139bb](https://github.com/google/adk-python/commit/ae139bb461c2e7c6be154b04f3f2c80919808d31)) + +* **[Integrations]** + * Allow custom request and event converters in A2aAgentExecutor ([a17f3b2](https://github.com/google/adk-python/commit/a17f3b2e6d2d48c433b42e27763f3d6df80243ca)) + +* **[Observability]** + * Env variable for disabling llm_request and llm_response in spans ([e50f05a](https://github.com/google/adk-python/commit/e50f05a9fc94834796876f7f112f344f788f202e)) + +* **[Services]** + * Allow passing extra kwargs to create_session of VertexAiSessionService ([6a5eac0](https://github.com/google/adk-python/commit/6a5eac0bdc9adc6907a28f65a3d4d7234e863049)) + * Implement new methods in in-memory artifact service to support custom metadata, artifact versions, etc. ([5a543c0](https://github.com/google/adk-python/commit/5a543c00df2f7a66018df8a67efcf4ce44d4e0e4)) + * Add create_time and mime_type to ArtifactVersion ([2c7a342](https://github.com/google/adk-python/commit/2c7a34259395b1294319118d0f3d1b3b867b44d6)) + * Support returning all sessions when user id is none ([141318f](https://github.com/google/adk-python/commit/141318f77554ae4eb5a360bea524e98eff4a086c)) + +* **[Tools]** + * Support additional headers for Google API toolset ([ed37e34](https://github.com/google/adk-python/commit/ed37e343f0c997d3ee5dc98888c5e0dbd7f2a2b6)) + * Introduces a new AgentEngineSandboxCodeExecutor class that supports executing agent-generated code using the Vertex AI Code Execution Sandbox API ([ee39a89](https://github.com/google/adk-python/commit/ee39a891106316b790621795b5cc529e89815a98)) + * Support dynamic per-request headers in MCPToolset ([6dcbb5a](https://github.com/google/adk-python/commit/6dcbb5aca642290112a7c81162b455526c15cd14)) + * Add `bypass_multi_tools_limit` option to GoogleSearchTool and VertexAiSearchTool ([9a6b850](https://github.com/google/adk-python/commit/9a6b8507f06d8367488aac653efecf665619516c), [6da7274](https://github.com/google/adk-python/commit/6da727485898137948d72906d86d78b6db6331ac)) + * Extend `ReflectAndRetryToolPlugin` to support hallucinating function calls ([f51380f](https://github.com/google/adk-python/commit/f51380f9ea4534591eda76bef27407c0aa7c3fae)) + * Add require_confirmation param for MCP tool/toolset ([78e74b5](https://github.com/google/adk-python/commit/78e74b5bf2d895d72025a44dbcf589f543514a50)) + +* **[UI]** + * Granular per agent speech configuration ([409df13](https://github.com/google/adk-python/commit/409df1378f36b436139aa909fc90a9e9a0776b3a)) + +### Bug Fixes + +* Returns dict as result from McpTool to comply with BaseTool expectations ([4df9263](https://github.com/google/adk-python/commit/4df926388b6e9ebcf517fbacf2f5532fd73b0f71)) +* Fixes the identity prompt to be one line ([7d5c6b9](https://github.com/google/adk-python/commit/7d5c6b9acf0721dd230f08df919c7409eed2b7d0)) +* Fix the broken langchain importing caused their 1.0.0 release ([c850da3](https://github.com/google/adk-python/commit/c850da3a07ec1441037ced1b654d8aacacd277ab)) +* Fix BuiltInCodeExecutor to support visualizations ([ce3418a](https://github.com/google/adk-python/commit/ce3418a69de56570847d45f56ffe7139ab0a47aa)) +* Relax runner app-name enforcement and improve agent origin inference ([dc4975d](https://github.com/google/adk-python/commit/dc4975dea9fb79ad887460659f8f397a537ee38f)) +* Improve error message when adk web is run in wrong directory ([4a842c5](https://github.com/google/adk-python/commit/4a842c5a1334c3ee01406f796651299589fe12ab)) +* Handle App objects in eval and graph endpoints ([0b73a69](https://github.com/google/adk-python/commit/0b73a6937bd84a41f79a9ada3fc782dca1d6fb11)) +* Exclude `additionalProperties` from Gemini schemas ([307896a](https://github.com/google/adk-python/commit/307896aeceeb97efed352bc0217bae10423e5da6)) +* Overall eval status should be NOT_EVALUATED if no invocations were evaluated ([9fbed0b](https://github.com/google/adk-python/commit/9fbed0b15afb94ec8c0c7ab60221bbc97e481b06)) +* Create context cache only when prefix matches with previous request ([9e0b1fb](https://github.com/google/adk-python/commit/9e0b1fb62b06de7ecb79bf77d54a999167d001e1)) +* Handle `App` instances returned by `agent_loader.load_agent` ([847df16](https://github.com/google/adk-python/commit/847df1638cbf1686aa43e8e094121d4e23e40245)) +* Add support for file URIs in LiteLLM content conversion ([85ed500](https://github.com/google/adk-python/commit/85ed500871ff55c74d16e809ddae0d4db66cbc3a)) +* Only exclude scores that are None ([998264a](https://github.com/google/adk-python/commit/998264a5b1b98ac660fcc1359fb2d25c84fa0d87)) +* Better handling the A2A streaming tasks ([bddc70b](https://github.com/google/adk-python/commit/bddc70b5d004ba5304fe05bcbf6e08210f0e6131)) +* Correctly populate context_id in remote_a2a_agent library ([2158b3c](https://github.com/google/adk-python/commit/2158b3c91531e9125761f211f125d9ab41a55e10)) +* Remove unnecessary Aclosing ([2f4f561](https://github.com/google/adk-python/commit/2f4f5611bdb30bd5eb2fdb3a70f43d748371392f)) +* Fix pickle data was truncated error in database session using MySql ([36c96ec](https://github.com/google/adk-python/commit/36c96ec5b356109b7c874c85d8bb24f0bf6c050d)) + +### Improvements + +* Improve hint message in agent loader ([fe1fc75](https://github.com/google/adk-python/commit/fe1fc75c15a7983829bbe0b023f4b612b1e5c018)) +* Fixes MCPToolset --> McpToolset in various places ([d4dc645](https://github.com/google/adk-python/commit/d4dc6454783f747120d407d0dc2cb78f53598d83)) +* Add span for context caching handling and new cache creation ([a2d9f13](https://github.com/google/adk-python/commit/a2d9f13fa1d31e00ba9493fba321ca151cdd9366)) +* Checks gemini version for `2 and above` for gemini-builtin tools ([0df6759](https://github.com/google/adk-python/commit/0df67599c0eb54a9a5df51af06483b40058953bf)) +* Refactor and fix state management in the session service ([8b3ed05](https://github.com/google/adk-python/commit/8b3ed059c24903e8aca0a09d9d503b48af7df850)) +* Update agent builder instructions and remove run command details ([89344da](https://github.com/google/adk-python/commit/89344da81364d921f778c8bbea93e1df6ad1097e)) +* Clarify how to use adk built-in tool in instruction ([d22b8bf](https://github.com/google/adk-python/commit/d22b8bf8907e723f618dfd18e90dd0a5dbc9518c)) +* Delegate the agent state reset logic to LoopAgent ([bb1ea74](https://github.com/google/adk-python/commit/bb1ea74924127d65d763a45b869da3d4ff4d5c5a)) +* Adjust the instruction about default model ([214986e](https://github.com/google/adk-python/commit/214986ebeb53b2ef34c8aa37cd6403106de82c1b)) +* Migrate invocation_context to callback_context ([e2072af](https://github.com/google/adk-python/commit/e2072af69f40474431b6749b7b9dc22fbcbc7730)) +* Correct the callback signatures ([fa84bcb](https://github.com/google/adk-python/commit/fa84bcb5756773eadff486b99c9bd416b4faa9c6)) +* Set default for `bypass_multi_tools_limit` to False for GoogleSearchTool and VertexAiSearchTool ([6da7274](https://github.com/google/adk-python/commit/6da727485898137948d72906d86d78b6db6331ac)) +* Add more clear instruction to the doc updater agent about one PR for each recommended change ([b21d0a5](https://github.com/google/adk-python/commit/b21d0a50d610407be2f10b73a91274840ffdfe18)) +* Add a guideline to avoid content deletion ([16b030b](https://github.com/google/adk-python/commit/16b030b2b25a9b0b489e47b4b148fc4d39aeffcb)) +* Add an sample agent for the `ReflectAndRetryToolPlugin` ([9b8a4aa](https://github.com/google/adk-python/commit/9b8a4aad6fe65ef37885e5c3368d2799a2666534)) +* Improve error message when adk web is run in wrong directory ([4a842c5](https://github.com/google/adk-python/commit/4a842c5a1334c3ee01406f796651299589fe12ab)) +* Add an sample agent for the `ReflectAndRetryToolPlugin` ([9b8a4aa](https://github.com/google/adk-python/commit/9b8a4aad6fe65ef37885e5c3368d2799a2666534)) +* Add span for context caching handling and new cache creation ([a2d9f13](https://github.com/google/adk-python/commit/a2d9f13fa1d31e00ba9493fba321ca151cdd9366)) +* Disable the scheduled execution for issue triage workflow ([bae2102](https://github.com/google/adk-python/commit/bae21027d9bd7f811bed638ecce692262cb33fe5)) +* Correct the callback signatures ([fa84bcb](https://github.com/google/adk-python/commit/fa84bcb5756773eadff486b99c9bd416b4faa9c6)) + +### Documentation + +* Format README.md for samples ([0bdba30](https://github.com/google/adk-python/commit/0bdba3026345872fb907aedd1ed75e4135e58a30)) +* Bump models in llms and llms-full to Gemini 2.5 ([ce46386](https://github.com/google/adk-python/commit/ce4638651f376fb6579993d8468ae57198134729)) +* Update gemini_llm_connection.py - typo spelling correction ([e6e2767](https://github.com/google/adk-python/commit/e6e2767c3901a14187f5527540f318317dd6c8e3)) +* Announce the first ADK Community Call in the README ([731bb90](https://github.com/google/adk-python/commit/731bb9078d01359ae770719a8f5c003680ed9f3e)) + ## [1.16.0](https://github.com/google/adk-python/compare/v1.15.1...v1.16.0) (2025-10-08) ### Features diff --git a/src/google/adk/version.py b/src/google/adk/version.py index 1d73afb1fd..9e7c3eb931 100644 --- a/src/google/adk/version.py +++ b/src/google/adk/version.py @@ -13,4 +13,4 @@ # limitations under the License. # version: major.minor.patch -__version__ = "1.16.0" +__version__ = "1.17.0" From 3ee1cd24dbc43f01655b4fd6825064a84b864e0f Mon Sep 17 00:00:00 2001 From: Liang Wu Date: Wed, 22 Oct 2025 14:13:35 -0700 Subject: [PATCH 158/303] chore:Update conformance `create` command to `record` in documentation PiperOrigin-RevId: 822736103 --- src/google/adk/cli/cli_tools_click.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/google/adk/cli/cli_tools_click.py b/src/google/adk/cli/cli_tools_click.py index f852ae97e4..1bee5355df 100644 --- a/src/google/adk/cli/cli_tools_click.py +++ b/src/google/adk/cli/cli_tools_click.py @@ -156,9 +156,9 @@ def cli_conformance_record( Examples: - Use default directory: adk conformance create + Use default directory: adk conformance record - Custom directories: adk conformance create tests/core tests/tools + Custom directories: adk conformance record tests/core tests/tools """ try: From e28d3c55f802c4d90cf9b7c077b8fd4cd271ac97 Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Wed, 22 Oct 2025 14:14:48 -0700 Subject: [PATCH 159/303] chore: Add a pull request template PiperOrigin-RevId: 822736669 --- .github/pull_request_template.md | 52 ++++++++++++++++++++++++++++++++ CONTRIBUTING.md | 4 ++- 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 .github/pull_request_template.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000000..c8ae09265d --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,52 @@ +**Please ensure you have read the [contribution guide](https://github.com/google/adk-python/blob/main/CONTRIBUTING.md) before creating a pull request.** + +### Link to Issue or Description of Change + +**1. Link to an existing issue (if applicable):** + +- Closes: #_issue_number_ +- Related: #_issue_number_ + +**2. Or, if no issue exists, describe the change:** + +_If applicable, please follow the issue templates to provide as much detail as +possible._ + +**Problem:** +_A clear and concise description of what the problem is._ + +**Solution:** +_A clear and concise description of what you want to happen and why you choose +this solution._ + +### Testing Plan + +_Please describe the tests that you ran to verify your changes. This is required +for all PRs that are not small documentation or typo fixes._ + +**Unit Tests:** + +- [ ] I have added or updated unit tests for my change. +- [ ] All unit tests pass locally. + +_Please include a summary of passed `pytest` results._ + +**Manual End-to-End (E2E) Tests:** + +_Please provide instructions on how to manually test your changes, including any +necessary setup or configuration. Please provide logs or screenshots to help +reviewers better understand the fix._ + +### Checklist + +- [ ] I have read the [CONTRIBUTING.md](https://github.com/google/adk-python/blob/main/CONTRIBUTING.md) document. +- [ ] I have performed a self-review of my own code. +- [ ] I have commented my code, particularly in hard-to-understand areas. +- [ ] I have added tests that prove my fix is effective or that my feature works. +- [ ] New and existing unit tests pass locally with my changes. +- [ ] I have manually tested my changes end-to-end. +- [ ] Any dependent changes have been merged and published in downstream modules. + +### Additional context + +_Add any other context or screenshots about the feature request here._ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b0c0bd7913..3698714a2f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -57,7 +57,9 @@ information on using pull requests. ### Requirement for PRs - All PRs, other than small documentation or typo fixes, should have a Issue - associated. If not, please create one. + associated. If a relevant issue doesn't exist, please create one first or + you may instead describe the bug or feature directly within the PR + description, following the structure of our issue templates. - Small, focused PRs. Keep changes minimal—one concern per PR. - For bug fixes or features, please provide logs or screenshot after the fix is applied to help reviewers better understand the fix. From c9647f35367f28994928b36efca5ae098f56fddb Mon Sep 17 00:00:00 2001 From: George Weale Date: Wed, 22 Oct 2025 14:31:00 -0700 Subject: [PATCH 160/303] docs: Update agent builder instructions to require explicit `agent_class` PiperOrigin-RevId: 822742468 --- .../adk_agent_builder_assistant/instruction_embedded.template | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index 06e985a079..6c1643bc5c 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -117,6 +117,10 @@ Always reference this schema when creating configurations to ensure compliance. **YAML Configuration Requirements:** - Main agent file MUST be named `root_agent.yaml` +- **`agent_class` field**: + * Always declare `agent_class` explicitly for every agent block (the loader defaults to `LlmAgent`, but we require clarity) + * Use `agent_class: LlmAgent` when the agent talks directly to an LLM + * For workflow orchestrators choose from `SequentialAgent`, `ParallelAgent`, or `LoopAgent`. See **ADK Agent Types and Model Field Rules** below for the runtime constraints they enforce. - **Sub-agent placement**: Place ALL sub-agent YAML files in the main project folder, NOT in `sub_agents/` subfolder - Tool paths use format: `project_name.tools.module.function_name` (must start with project folder name, no `.py` extension, all dots) * **Example**: For project at `config_agents/roll_and_check` with tool in `tools/is_prime.py`, use: `roll_and_check.tools.is_prime.is_prime` From f1e01ea4b0e38ced6123afa0b13a7c8e5e218694 Mon Sep 17 00:00:00 2001 From: George Weale Date: Wed, 22 Oct 2025 14:59:20 -0700 Subject: [PATCH 161/303] docs: Update ADK Agent Builder Assistant instructions and clarified built-in tool naming PiperOrigin-RevId: 822752065 --- .../instruction_embedded.template | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index 6c1643bc5c..c7c849e5f1 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -136,7 +136,7 @@ Always reference this schema when creating configurations to ensure compliance. **🚨 CRITICAL: Built-in Tools vs Custom Tools** **ADK Built-in Tools** (use directly, NO custom Python file needed): -- **Naming**: Use simple name WITHOUT dots (e.g., `google_search`, NOT `google.adk.tools.google_search`) +- **Naming**: Use the exported name with no dots (e.g., `google_search`, NOT `google.adk.tools.google_search`; never invent new labels like `GoogleSearch`) - **No custom code**: Do NOT create Python files for built-in tools - **Available built-in tools**: * `google_search` - Google Search tool @@ -150,6 +150,7 @@ Always reference this schema when creating configurations to ensure compliance. * `load_memory` - Load memory * `preload_memory` - Preload memory * `transfer_to_agent` - Transfer to another agent + * ⚠️ Do **not** declare `transfer_to_agent` in YAML when the agent has `sub_agents`; ADK injects this tool automatically, and duplicating it causes Gemini errors (`Duplicate function declaration: transfer_to_agent`). **Example - Built-in Tool Usage (CORRECT):** ```yaml @@ -201,10 +202,9 @@ tools: - **Match user requirements exactly**: Generate the specific functions requested - **Use proper parameter types**: Don't use generic `parameter: str` when specific types are needed - **Implement when possible**: Write actual working code for simple, well-defined functions -- **ONE TOOL PER FILE POLICY**: Always create separate files for individual tools - * **Example**: Create `roll_dice.py` and `is_prime.py` instead of `dice_tools.py` - * **Benefit**: Enables easy cleanup when tools are no longer needed - * **Exception**: Only use multi-tool files for legitimate toolsets with shared logic +- **Tool file organization**: + * Place tool code inside a `tools/` package and include `tools/__init__.py` so dotted imports resolve. + * Prefer one tool per module (e.g., `tools/dice_tool.py`, `tools/prime_tool.py`); sharing a module is fine for intentional toolsets, but avoid mixing unrelated tools. ### 4. Validation Phase - Review generated configurations for schema compliance From c426c48005c597aeda3d6b32af9c883af1042145 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Wed, 22 Oct 2025 15:06:22 -0700 Subject: [PATCH 162/303] No public description PiperOrigin-RevId: 822754668 --- src/google/adk/flows/llm_flows/contents.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/google/adk/flows/llm_flows/contents.py b/src/google/adk/flows/llm_flows/contents.py index 3c4da72097..be471a44eb 100644 --- a/src/google/adk/flows/llm_flows/contents.py +++ b/src/google/adk/flows/llm_flows/contents.py @@ -639,7 +639,7 @@ def _is_live_model_audio_event(event: Event) -> bool: Part( inline_data=Blob( data=b'\x01\x00\x00...', - mime_type='audio/pcm' + mime_type='audio/pcm;rate=24000' ) ), ], @@ -653,9 +653,17 @@ def _is_live_model_audio_event(event: Event) -> bool: return False # If it's audio data, then one event only has one part of audio. for part in event.content.parts: - if part.inline_data and part.inline_data.mime_type == 'audio/pcm': + if ( + part.inline_data + and part.inline_data.mime_type + and part.inline_data.mime_type.startswith('audio/') + ): return True - if part.file_data and part.file_data.mime_type == 'audio/pcm': + if ( + part.file_data + and part.file_data.mime_type + and part.file_data.mime_type.startswith('audio/') + ): return True return False From 4c58b767e5782ade20f4572f588a83ac9202081d Mon Sep 17 00:00:00 2001 From: George Weale Date: Wed, 22 Oct 2025 15:10:38 -0700 Subject: [PATCH 163/303] docs: Update ADK Agent Builder Assistant instructions for workflow tools PiperOrigin-RevId: 822756480 --- .../adk_agent_builder_assistant/instruction_embedded.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index c7c849e5f1..b90623e153 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -120,7 +120,7 @@ Always reference this schema when creating configurations to ensure compliance. - **`agent_class` field**: * Always declare `agent_class` explicitly for every agent block (the loader defaults to `LlmAgent`, but we require clarity) * Use `agent_class: LlmAgent` when the agent talks directly to an LLM - * For workflow orchestrators choose from `SequentialAgent`, `ParallelAgent`, or `LoopAgent`. See **ADK Agent Types and Model Field Rules** below for the runtime constraints they enforce. +- **Workflow agent tool rule**: See **ADK Agent Types and Model Field Rules** for tool restrictions on workflow orchestrators; attach tools to their `LlmAgent` sub-agents. - **Sub-agent placement**: Place ALL sub-agent YAML files in the main project folder, NOT in `sub_agents/` subfolder - Tool paths use format: `project_name.tools.module.function_name` (must start with project folder name, no `.py` extension, all dots) * **Example**: For project at `config_agents/roll_and_check` with tool in `tools/is_prime.py`, use: `roll_and_check.tools.is_prime.is_prime` From 23092a273aeb82c30aadea3d225385c338c9097d Mon Sep 17 00:00:00 2001 From: Ankur Sharma Date: Wed, 22 Oct 2025 15:54:59 -0700 Subject: [PATCH 164/303] feat: Consolidate external dependencies in a single place PiperOrigin-RevId: 822771891 --- src/google/adk/dependencies/__init__.py | 13 +++++++++++++ src/google/adk/dependencies/rouge_scorer.py | 17 +++++++++++++++++ src/google/adk/dependencies/vertexai.py | 17 +++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 src/google/adk/dependencies/__init__.py create mode 100644 src/google/adk/dependencies/rouge_scorer.py create mode 100644 src/google/adk/dependencies/vertexai.py diff --git a/src/google/adk/dependencies/__init__.py b/src/google/adk/dependencies/__init__.py new file mode 100644 index 0000000000..0a2669d7a2 --- /dev/null +++ b/src/google/adk/dependencies/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/src/google/adk/dependencies/rouge_scorer.py b/src/google/adk/dependencies/rouge_scorer.py new file mode 100644 index 0000000000..cc987deb88 --- /dev/null +++ b/src/google/adk/dependencies/rouge_scorer.py @@ -0,0 +1,17 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from rouge_score import rouge_scorer diff --git a/src/google/adk/dependencies/vertexai.py b/src/google/adk/dependencies/vertexai.py new file mode 100644 index 0000000000..d7e57874a0 --- /dev/null +++ b/src/google/adk/dependencies/vertexai.py @@ -0,0 +1,17 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +import vertexai From 33fd712e296d30b8e7204cc09f0520dee2a7dadc Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Wed, 22 Oct 2025 20:21:22 -0700 Subject: [PATCH 165/303] chore: Remove community call announcement from README The section detailing the first ADK community call scheduled for Oct 15, 2025, including date, time, meeting links, and agenda, has been removed. The section detailing the first ADK community call scheduled for Oct 15, 2025, including date, time, meeting links, and agenda, has been removed. PiperOrigin-RevId: 822843889 --- README.md | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/README.md b/README.md index 56a2755350..d5fee06d1d 100644 --- a/README.md +++ b/README.md @@ -24,34 +24,6 @@ Agent Development Kit (ADK) is a flexible and modular framework for developing and deploying AI agents. While optimized for Gemini and the Google ecosystem, ADK is model-agnostic, deployment-agnostic, and is built for compatibility with other frameworks. ADK was designed to make agent development feel more like software development, to make it easier for developers to create, deploy, and orchestrate agentic architectures that range from simple tasks to complex workflows. - ---- -## 🔥 ADK's very first community call on Oct 15 - -Join our ADK Community Call! Our first virtual community call is on Oct 15! -Meet our team, and talk with us about our roadmap and how to contribute. - -First Call Details: - -Topic: ADK Roadmap - -Date: October 15, 2025 - -Time: 9:30-10:30am PST - -Meeting link: -[Join the call](http://meet.google.com/gjm-gfim-ctz) - -Add to your calendar -[Event calendar invite](https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=MDUydWo1dHV1dHFtNzJuM3E0bmEyMW12ZnZfMjAyNTEwMTVUMTYzMDAwWiBjXzljNWVjODhhMmQyYWU5YjY5Mzk4ODU1MGZkNDA5MjVmYjgxYjM4MTI1NGNjYTgzNmRkMjMwNzRiMjNmYzcyZDVAZw&tmsrc=c_9c5ec88a2d2ae9b693988550fd40925fb81b381254cca836dd23074b23fc72d5%40group.calendar.google.com), [.ics file](https://calendar.google.com/calendar/ical/c_9c5ec88a2d2ae9b693988550fd40925fb81b381254cca836dd23074b23fc72d5%40group.calendar.google.com/public/basic.ics), [ADK community calendar](https://calendar.google.com/calendar/embed?src=c_9c5ec88a2d2ae9b693988550fd40925fb81b381254cca836dd23074b23fc72d5%40group.calendar.google.com&ctz=America%2FLos_Angeles), [ADK Community Call RSVP](https://google.qualtrics.com/jfe/form/SV_3K0RJZ64H1BexqS) - -Agenda: -[Julia] ADK Roadmap -[ Bo & Hangfei] Eng Deep Dive: Context Caching -[Kris] How to Contribute - -[Shubham] Upcoming Events - --- ## 🔥 What's new From 055e86a9d44a70757a6eb2332a51af0887eae745 Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Wed, 22 Oct 2025 20:35:57 -0700 Subject: [PATCH 166/303] chore: Update ADK README with new features The "What's new" section has been updated to highlight: Custom API Registration, Rewind functionality, and a new CodeExecutor utilizing the Vertex AI Code Execution Sandbox API. Previous updates on context compaction, resumability, ReflectRetryToolPlugin, and search tool support have been removed. PiperOrigin-RevId: 822848112 --- README.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d5fee06d1d..24b2ef2ce8 100644 --- a/README.md +++ b/README.md @@ -28,13 +28,11 @@ Agent Development Kit (ADK) is a flexible and modular framework for developing a ## 🔥 What's new -- **Context compaction**: Supports context compaction to reduce context length. Here is a [sample](https://github.com/google/adk-python/blob/main/contributing/samples/hello_world_app/agent.py#L156) and [compaction config](https://github.com/google/adk-python/blob/main/src/google/adk/apps/app.py#L51). +- **Custom Service Registration**: Add a service registry to provide a generic way to register custom service implementations to be used in FastAPI server. See short instruction [here](https://github.com/google/adk-python/discussions/3175#discussioncomment-14745120). ([391628f](https://github.com/google/adk-python/commit/391628fcdc7b950c6835f64ae3ccab197163c990)) -- **Resumability**: Support pause and resume an invocation in ADK. +- **Rewind**: Add the ability to rewind a session to before a previous invocation ([9dce06f](https://github.com/google/adk-python/commit/9dce06f9b00259ec42241df4f6638955e783a9d1)). -- **ReflectRetryToolPlugin**: Add [`ReflectRetryToolPlugin`](https://github.com/google/adk-python/blob/main/src/google/adk/plugins/reflect_retry_tool_plugin.py) to reflect from errors and retry with different arguments when tool errors. - -- **Search tool**: Support using Google built-in search and built-in `VertexAiSearchTool` with other tools in the same agent. +- **New CodeExecutor**: Introduces a new AgentEngineSandboxCodeExecutor class that supports executing agent-generated code using the Vertex AI Code Execution Sandbox API ([ee39a89](https://github.com/google/adk-python/commit/ee39a891106316b790621795b5cc529e89815a98)) ## ✨ Key Features From 9cf7ab11a81998d551841174ca958c08b0803886 Mon Sep 17 00:00:00 2001 From: George Weale Date: Wed, 22 Oct 2025 21:29:37 -0700 Subject: [PATCH 167/303] docs: Update agent builder instructions for clarity and best practices for ADK specific requirements PiperOrigin-RevId: 822862453 --- .../instruction_embedded.template | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index b90623e153..8811bf3991 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -393,11 +393,13 @@ def log_tool_result(tool: BaseTool, tool_args: Dict[str, Any], tool_context: Too **File Naming & Structure:** - Main configuration MUST be `root_agent.yaml` (not `agent.yaml`) - Agent directories need `__init__.py` with `from . import agent` -- **Tools directory MUST have `__init__.py`** - The `tools/` folder requires an empty `__init__.py` file to be a valid Python package (required for imports) +- Place each tool in the `tools/` package using one module per tool (for example, `tools/dice_tool.py`). + Add an empty `tools/__init__.py` so imports such as `project_name.tools.dice_tool.roll_dice` work. - Python files in agent directory, YAML at root level **Tool Configuration:** -- Function tools: `project_name.tools.module.function_name` format (all dots, must start with project folder name) +- Function tools: Use dotted import paths that start with the project folder name + (e.g., `project_name.tools.dice_tool.roll_dice`) - No `.py` extension in tool paths - No function declarations needed in YAML - **Critical**: Tool paths must include the project folder name as the first component (final component of project folder path only) @@ -407,7 +409,7 @@ def log_tool_result(tool: BaseTool, tool_args: Dict[str, Any], tool_context: Too - **SequentialAgent**: NO `model` field - workflow agent that orchestrates other agents in sequence - **ParallelAgent**: NO `model` field - workflow agent that runs multiple agents in parallel - **LoopAgent**: NO `model` field - workflow agent that executes agents in a loop -- **CRITICAL**: Only LlmAgent accepts a model field. Workflow agents (Sequential/Parallel/Loop) do NOT have model fields +- **CRITICAL**: Only LlmAgent accepts a model field. Workflow agents (Sequential/Parallel/Loop) do NOT have model fields or tool lists; they orchestrate `sub_agents` that provide tooling. **ADK AgentConfig Schema Compliance:** - Always reference the embedded ADK AgentConfig schema to verify field requirements @@ -447,6 +449,7 @@ def log_tool_result(tool: BaseTool, tool_args: Dict[str, Any], tool_context: Too 2. No redundant suggest_file_path calls for pre-approved paths 3. Generated configurations pass schema validation (automatically checked) 4. Follow ADK naming and organizational conventions +5. Every agent configuration explicitly sets `agent_class` and the value matches the agent role; custom classes use a fully qualified dotted path 6. Include clear, actionable instructions for each agent 7. Use appropriate tools for intended functionality From 45a2168e0e6773e595ecfb825d7e4ab0a38c3a38 Mon Sep 17 00:00:00 2001 From: Vrajesh Babu A V <52230861+Vrajesh-Babu@users.noreply.github.com> Date: Wed, 22 Oct 2025 21:43:55 -0700 Subject: [PATCH 168/303] chore: Adds a new sample agent that demonstrates how to integrate PostgreSQL databases using the Model Context Protocol (MCP) ## What's Added - **PostgreSQL MCP Agent** ([mcp_postgres_agent/agent.py](cci:7://file:///Users/admin/git%20repos/adk-python/contributing/samples/mcp_postgres_agent/agent.py:0:0-0:0)): A fully functional agent that connects to PostgreSQL databases via the `postgres-mcp` MCP server - **Comprehensive README** ([mcp_postgres_agent/README.md](cci:7://file:///Users/admin/git%20repos/adk-python/contributing/samples/mcp_postgres_agent/README.md:0:0-0:0)): Documentation with setup instructions, configuration details, and example queries - **Environment Configuration**: Support for secure credential management via `.env` files ## Key Features - **MCP Integration**: Demonstrates proper use of `MCPToolset` with `StdioConnectionParams` - **Zero Installation**: Uses `uvx` to run the MCP server without manual installation - **Secure Credentials**: Database connection strings passed via environment variables - **Production-Ready**: Uses Gemini 2.0 Flash with unrestricted access mode for full database operations ## Technical Details - **Model**: Gemini 2.0 Flash - **MCP Server**: `postgres-mcp` (via `uvx`) - **Connection**: StdioConnectionParams with 60-second timeout - **Environment Variable**: Maps `POSTGRES_CONNECTION_STRING` to `DATABASE_URI` ## Testing The agent has been tested with: - PostgreSQL database connections (local and remote) - Schema inspection queries - Data querying operations - Table listing and management ## Example Queries Users can interact with the agent using natural language queries like: - "What tables are in the database?" - "Show me the schema for the users table" - "Query the first 10 rows from the products table" This sample serves as a reference implementation for developers looking to integrate PostgreSQL databases with ADK agents using MCP. COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3182 from Vrajesh-Babu:postgres-mcp f3b3846abae37ae376d3554624ac2b1be82f7adc PiperOrigin-RevId: 822865931 --- .../samples/mcp_postgres_agent/README.md | 65 +++++++++++++++++++ .../samples/mcp_postgres_agent/__init__.py | 15 +++++ .../samples/mcp_postgres_agent/agent.py | 57 ++++++++++++++++ 3 files changed, 137 insertions(+) create mode 100644 contributing/samples/mcp_postgres_agent/README.md create mode 100755 contributing/samples/mcp_postgres_agent/__init__.py create mode 100644 contributing/samples/mcp_postgres_agent/agent.py diff --git a/contributing/samples/mcp_postgres_agent/README.md b/contributing/samples/mcp_postgres_agent/README.md new file mode 100644 index 0000000000..92095e6102 --- /dev/null +++ b/contributing/samples/mcp_postgres_agent/README.md @@ -0,0 +1,65 @@ +# PostgreSQL MCP Agent + +This agent uses the PostgreSQL MCP server to interact with PostgreSQL databases. It demonstrates how to: +- Connect to a PostgreSQL database using MCP (Model Context Protocol) +- Use `uvx` to run the MCP server without manual installation +- Pass database credentials securely via environment variables + +## Prerequisites + +* **PostgreSQL Database**: You need access to a PostgreSQL database with a connection string +* **uvx**: The agent uses `uvx` (part of the `uv` package manager) to run the MCP server + +## Setup Instructions + +### 1. Configure Database Connection + +Create a `.env` file in the `mcp_postgres_agent` directory: + +```bash +POSTGRES_CONNECTION_STRING=postgresql://user:password@host:port/database +``` + +Example connection string format: +``` +postgresql://username:password@localhost:5432/mydb +postgresql://postgres.xyz:password@aws-region.pooler.supabase.com:5432/postgres +``` + +### 2. Run the Agent + +Start the ADK Web UI from the samples directory: + +```bash +adk web +``` + +The agent will automatically: +- Load the connection string from the `.env` file +- Use `uvx` to run the `postgres-mcp` server with unrestricted access mode +- Connect to your PostgreSQL database + +### 3. Example Queries + +Once the agent is running, try these queries: + +* "What tables are in the database?" +* "Show me the schema for the users table" +* "Query the first 10 rows from the products table" +* "What indexes exist on the orders table?" +* "Create a new table called test_table with columns id and name" + +## Configuration Details + +The agent uses: +- **Model**: Gemini 2.0 Flash +- **MCP Server**: `postgres-mcp` (via `uvx`) +- **Access Mode**: Unrestricted (allows read/write operations). **Warning**: Using unrestricted mode in a production environment can pose significant security risks. It is recommended to use a more restrictive access mode or configure database user permissions appropriately for production use. +- **Connection**: StdioConnectionParams with 60-second timeout +- **Environment Variable**: `DATABASE_URI` (mapped from `POSTGRES_CONNECTION_STRING`) + +## Troubleshooting + +- Ensure your `POSTGRES_CONNECTION_STRING` is correctly formatted +- Verify database credentials and network access +- Check that `uv` is installed (`pip install uv` or `brew install uv`) diff --git a/contributing/samples/mcp_postgres_agent/__init__.py b/contributing/samples/mcp_postgres_agent/__init__.py new file mode 100755 index 0000000000..c48963cdc7 --- /dev/null +++ b/contributing/samples/mcp_postgres_agent/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/mcp_postgres_agent/agent.py b/contributing/samples/mcp_postgres_agent/agent.py new file mode 100644 index 0000000000..7298e25004 --- /dev/null +++ b/contributing/samples/mcp_postgres_agent/agent.py @@ -0,0 +1,57 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os + +from dotenv import load_dotenv +from google.adk.agents.llm_agent import LlmAgent +from google.adk.tools.mcp_tool import StdioConnectionParams +from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset +from google.genai.types import GenerateContentConfig +from mcp import StdioServerParameters + +load_dotenv() + +POSTGRES_CONNECTION_STRING = os.getenv("POSTGRES_CONNECTION_STRING") +if not POSTGRES_CONNECTION_STRING: + raise ValueError( + "POSTGRES_CONNECTION_STRING environment variable not set. " + "Please create a .env file with this variable." + ) + +root_agent = LlmAgent( + model="gemini-2.0-flash", + name="postgres_agent", + instruction=( + "You are a PostgreSQL database assistant. " + "Use the provided tools to query, manage, and interact with " + "the PostgreSQL database. Ask clarifying questions when unsure." + ), + tools=[ + MCPToolset( + connection_params=StdioConnectionParams( + server_params=StdioServerParameters( + command="uvx", + args=["postgres-mcp", "--access-mode=unrestricted"], + env={"DATABASE_URI": POSTGRES_CONNECTION_STRING}, + ), + timeout=60, + ), + ) + ], + generate_content_config=GenerateContentConfig( + temperature=0.2, + top_p=0.95, + ), +) From 6d4d72a4991ff3654773789e86896383c543a0e6 Mon Sep 17 00:00:00 2001 From: Ankur Sharma Date: Wed, 22 Oct 2025 22:44:20 -0700 Subject: [PATCH 169/303] chore: Update vertexai & rouge scorer dependencies in eval to use a proxy PiperOrigin-RevId: 822881672 --- src/google/adk/evaluation/final_response_match_v1.py | 2 +- src/google/adk/evaluation/response_evaluator.py | 4 +++- src/google/adk/evaluation/safety_evaluator.py | 4 +++- src/google/adk/evaluation/vertex_ai_eval_facade.py | 6 ++++-- tests/unittests/evaluation/test_response_evaluator.py | 4 +++- tests/unittests/evaluation/test_safety_evaluator.py | 4 +++- tests/unittests/evaluation/test_vertex_ai_eval_facade.py | 4 +++- 7 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/google/adk/evaluation/final_response_match_v1.py b/src/google/adk/evaluation/final_response_match_v1.py index 4d94d03a36..3dc880b08b 100644 --- a/src/google/adk/evaluation/final_response_match_v1.py +++ b/src/google/adk/evaluation/final_response_match_v1.py @@ -17,9 +17,9 @@ from typing import Optional from google.genai import types as genai_types -from rouge_score import rouge_scorer from typing_extensions import override +from ..dependencies.rouge_scorer import rouge_scorer from .eval_case import Invocation from .eval_metrics import EvalMetric from .eval_metrics import Interval diff --git a/src/google/adk/evaluation/response_evaluator.py b/src/google/adk/evaluation/response_evaluator.py index fa6be8bf67..1c08c9c7fc 100644 --- a/src/google/adk/evaluation/response_evaluator.py +++ b/src/google/adk/evaluation/response_evaluator.py @@ -17,8 +17,8 @@ from typing import Optional from typing_extensions import override -from vertexai import types as vertexai_types +from ..dependencies.vertexai import vertexai from .eval_case import Invocation from .eval_metrics import EvalMetric from .eval_metrics import Interval @@ -30,6 +30,8 @@ from .final_response_match_v1 import RougeEvaluator from .vertex_ai_eval_facade import _VertexAiEvalFacade +vertexai_types = vertexai.types + class ResponseEvaluator(Evaluator): """Evaluates Agent's responses. diff --git a/src/google/adk/evaluation/safety_evaluator.py b/src/google/adk/evaluation/safety_evaluator.py index f24931a254..09a8d2b3d5 100644 --- a/src/google/adk/evaluation/safety_evaluator.py +++ b/src/google/adk/evaluation/safety_evaluator.py @@ -15,8 +15,8 @@ from __future__ import annotations from typing_extensions import override -from vertexai import types as vertexai_types +from ..dependencies.vertexai import vertexai from .eval_case import Invocation from .eval_metrics import EvalMetric from .eval_metrics import Interval @@ -27,6 +27,8 @@ from .evaluator import Evaluator from .vertex_ai_eval_facade import _VertexAiEvalFacade +vertexai_types = vertexai.types + class SafetyEvaluatorV1(Evaluator): """Evaluates safety (harmlessness) of an Agent's Response. diff --git a/src/google/adk/evaluation/vertex_ai_eval_facade.py b/src/google/adk/evaluation/vertex_ai_eval_facade.py index 492fe4484b..d4d905007a 100644 --- a/src/google/adk/evaluation/vertex_ai_eval_facade.py +++ b/src/google/adk/evaluation/vertex_ai_eval_facade.py @@ -21,15 +21,17 @@ from google.genai import types as genai_types import pandas as pd from typing_extensions import override -from vertexai import Client as VertexAiClient -from vertexai import types as vertexai_types +from ..dependencies.vertexai import vertexai from .eval_case import Invocation from .evaluator import EvalStatus from .evaluator import EvaluationResult from .evaluator import Evaluator from .evaluator import PerInvocationResult +vertexai_types = vertexai.types +VertexAiClient = vertexai.Client + _ERROR_MESSAGE_SUFFIX = """ You should specify both project id and location. This metric uses Vertex Gen AI Eval SDK, and it requires google cloud credentials. diff --git a/tests/unittests/evaluation/test_response_evaluator.py b/tests/unittests/evaluation/test_response_evaluator.py index 8bf4b76f39..548ae2209a 100644 --- a/tests/unittests/evaluation/test_response_evaluator.py +++ b/tests/unittests/evaluation/test_response_evaluator.py @@ -16,13 +16,15 @@ """Tests for the Response Evaluator.""" +from google.adk.dependencies.vertexai import vertexai from google.adk.evaluation.eval_case import Invocation from google.adk.evaluation.eval_metrics import PrebuiltMetrics from google.adk.evaluation.evaluator import EvalStatus from google.adk.evaluation.response_evaluator import ResponseEvaluator from google.genai import types as genai_types import pytest -from vertexai import types as vertexai_types + +vertexai_types = vertexai.types class TestResponseEvaluator: diff --git a/tests/unittests/evaluation/test_safety_evaluator.py b/tests/unittests/evaluation/test_safety_evaluator.py index 29acf969d6..69a1594474 100644 --- a/tests/unittests/evaluation/test_safety_evaluator.py +++ b/tests/unittests/evaluation/test_safety_evaluator.py @@ -14,13 +14,15 @@ """Tests for the Response Evaluator.""" +from google.adk.dependencies.vertexai import vertexai from google.adk.evaluation.eval_case import Invocation from google.adk.evaluation.eval_metrics import EvalMetric from google.adk.evaluation.eval_metrics import PrebuiltMetrics from google.adk.evaluation.evaluator import EvalStatus from google.adk.evaluation.safety_evaluator import SafetyEvaluatorV1 from google.genai import types as genai_types -from vertexai import types as vertexai_types + +vertexai_types = vertexai.types class TestSafetyEvaluatorV1: diff --git a/tests/unittests/evaluation/test_vertex_ai_eval_facade.py b/tests/unittests/evaluation/test_vertex_ai_eval_facade.py index ee4ff1d72a..a628b65fbc 100644 --- a/tests/unittests/evaluation/test_vertex_ai_eval_facade.py +++ b/tests/unittests/evaluation/test_vertex_ai_eval_facade.py @@ -18,12 +18,14 @@ import math import random +from google.adk.dependencies.vertexai import vertexai from google.adk.evaluation.eval_case import Invocation from google.adk.evaluation.evaluator import EvalStatus from google.adk.evaluation.vertex_ai_eval_facade import _VertexAiEvalFacade from google.genai import types as genai_types import pytest -from vertexai import types as vertexai_types + +vertexai_types = vertexai.types class TestVertexAiEvalFacade: From 955632ce2c48a1f2cb38859d32be13e6e203ca2f Mon Sep 17 00:00:00 2001 From: Ankur Sharma Date: Wed, 22 Oct 2025 23:11:16 -0700 Subject: [PATCH 170/303] feat:Allow agent evaluation from modules ending in ".agent" PiperOrigin-RevId: 822888194 --- src/google/adk/evaluation/agent_evaluator.py | 30 +++++++++++++------- tests/integration/test_single_agent.py | 9 ++++++ 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/src/google/adk/evaluation/agent_evaluator.py b/src/google/adk/evaluation/agent_evaluator.py index ff6666d6ea..f3a3afe11f 100644 --- a/src/google/adk/evaluation/agent_evaluator.py +++ b/src/google/adk/evaluation/agent_evaluator.py @@ -478,19 +478,27 @@ async def _get_agent_for_eval( module_path = f"{module_name}" agent_module = importlib.import_module(module_path) print(dir(agent_module)) - if hasattr(agent_module, "agent"): - if hasattr(agent_module.agent, "root_agent"): - root_agent = agent_module.agent.root_agent - elif hasattr(agent_module.agent, "get_agent_async"): - root_agent, _ = await agent_module.agent.get_agent_async() - else: - raise ValueError( - f"Module {module_name} does not have a root_agent or" - " get_agent_async method." - ) + + # One of the two things should be satisfied, either the module should have + # an "agent" as a member in it or the module name itself should end with + # ".agent". + if not (hasattr(agent_module, "agent") or module_name.endswith(".agent")): + raise ValueError( + f"Module {module_name} does not have a member named `agent` or the" + " name should endwith `.agent`." + ) + + agent_module_with_agent = ( + agent_module.agent if hasattr(agent_module, "agent") else agent_module + ) + if hasattr(agent_module_with_agent, "root_agent"): + root_agent = agent_module_with_agent.root_agent + elif hasattr(agent_module_with_agent, "get_agent_async"): + root_agent, _ = await agent_module_with_agent.get_agent_async() else: raise ValueError( - f"Module {module_name} does not have a member named `agent`." + f"Module {module_name} does not have a root_agent or" + " get_agent_async method." ) agent_for_eval = root_agent diff --git a/tests/integration/test_single_agent.py b/tests/integration/test_single_agent.py index 49f3b7ba66..769e55765d 100644 --- a/tests/integration/test_single_agent.py +++ b/tests/integration/test_single_agent.py @@ -25,6 +25,15 @@ async def test_eval_agent(): ) +@pytest.mark.asyncio +async def test_eval_agent_with_agent_suffix_in_module_name(): + await AgentEvaluator.evaluate( + agent_module="tests.integration.fixture.home_automation_agent.agent", + eval_dataset_file_path_or_dir="tests/integration/fixture/home_automation_agent/simple_test.test.json", + num_runs=4, + ) + + @pytest.mark.asyncio async def test_eval_agent_async(): await AgentEvaluator.evaluate( From ba631764a5be0c045de0d0be40330c7be8292a71 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Thu, 23 Oct 2025 09:13:35 -0700 Subject: [PATCH 171/303] feat: Introduce custom_metadata field to `run_config` and propagate a2a request metadata to that field PiperOrigin-RevId: 823066539 --- src/google/adk/a2a/converters/request_converter.py | 6 +++++- src/google/adk/agents/run_config.py | 4 ++++ tests/unittests/a2a/converters/test_request_converter.py | 9 +++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/google/adk/a2a/converters/request_converter.py b/src/google/adk/a2a/converters/request_converter.py index 92166c3fc8..f92617b11c 100644 --- a/src/google/adk/a2a/converters/request_converter.py +++ b/src/google/adk/a2a/converters/request_converter.py @@ -106,6 +106,10 @@ def convert_a2a_request_to_agent_run_request( if not request.message: raise ValueError('Request message cannot be None') + custom_metadata = {} + if request.metadata: + custom_metadata['a2a_metadata'] = request.metadata + return AgentRunRequest( user_id=_get_user_id(request), session_id=request.context_id, @@ -113,5 +117,5 @@ def convert_a2a_request_to_agent_run_request( role='user', parts=[part_converter(part) for part in request.message.parts], ), - run_config=RunConfig(), + run_config=RunConfig(custom_metadata=custom_metadata), ) diff --git a/src/google/adk/agents/run_config.py b/src/google/adk/agents/run_config.py index bfcf370676..315de43f00 100644 --- a/src/google/adk/agents/run_config.py +++ b/src/google/adk/agents/run_config.py @@ -17,6 +17,7 @@ from enum import Enum import logging import sys +from typing import Any from typing import Optional from google.genai import types @@ -118,6 +119,9 @@ class RunConfig(BaseModel): - Less than or equal to 0: This allows for unbounded number of llm calls. """ + custom_metadata: Optional[dict[str, Any]] = None + """Custom metadata for the current invocation.""" + @field_validator('max_llm_calls', mode='after') @classmethod def validate_max_llm_calls(cls, value: int) -> int: diff --git a/tests/unittests/a2a/converters/test_request_converter.py b/tests/unittests/a2a/converters/test_request_converter.py index 360afbd378..3f4b8d853c 100644 --- a/tests/unittests/a2a/converters/test_request_converter.py +++ b/tests/unittests/a2a/converters/test_request_converter.py @@ -165,6 +165,7 @@ def test_convert_a2a_request_basic(self): request.message = mock_message request.context_id = "test_context_123" request.call_context = mock_call_context + request.metadata = {"test_key": "test_value"} # Create proper genai_types.Part objects instead of mocks mock_genai_part1 = genai_types.Part(text="test part 1") @@ -185,6 +186,9 @@ def test_convert_a2a_request_basic(self): assert result.new_message.role == "user" assert result.new_message.parts == [mock_genai_part1, mock_genai_part2] assert isinstance(result.run_config, RunConfig) + assert result.run_config.custom_metadata == { + "a2a_metadata": {"test_key": "test_value"} + } # Verify calls assert mock_convert_part.call_count == 2 @@ -212,6 +216,7 @@ def test_convert_a2a_request_empty_parts(self): request.message = mock_message request.context_id = "test_context_123" request.call_context = None + request.metadata = {} # Act result = convert_a2a_request_to_agent_run_request( @@ -241,6 +246,7 @@ def test_convert_a2a_request_none_context_id(self): request.message = mock_message request.context_id = None request.call_context = None + request.metadata = {} # Create proper genai_types.Part object instead of mock mock_genai_part = genai_types.Part(text="test part") @@ -272,6 +278,7 @@ def test_convert_a2a_request_no_auth(self): request.message = mock_message request.context_id = "session_123" request.call_context = None + request.metadata = {} # Create proper genai_types.Part object instead of mock mock_genai_part = genai_types.Part(text="test part") @@ -313,6 +320,7 @@ def test_end_to_end_conversion_with_auth_user(self): request.call_context = mock_call_context request.message = mock_message request.context_id = "mysession" + request.metadata = {} # Create proper genai_types.Part object instead of mock mock_genai_part = genai_types.Part(text="test part") @@ -344,6 +352,7 @@ def test_end_to_end_conversion_with_fallback_user(self): request.call_context = None request.message = mock_message request.context_id = "test_session_456" + request.metadata = {} # Create proper genai_types.Part object instead of mock mock_genai_part = genai_types.Part(text="test part") From bb32a6356c05ce8c66f665e7adb8150cecfa6d2f Mon Sep 17 00:00:00 2001 From: Ankur Sharma Date: Thu, 23 Oct 2025 14:04:36 -0700 Subject: [PATCH 172/303] chore: Adding traceback logging to inference step of eval Right now the failure eats up the traceback information and there is no clear way for the developer to know what went wrong. Adding this traceback info could give them the needed debugging information. PiperOrigin-RevId: 823179833 --- src/google/adk/evaluation/local_eval_service.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/google/adk/evaluation/local_eval_service.py b/src/google/adk/evaluation/local_eval_service.py index 4dfd391a16..1b7e1ce3d0 100644 --- a/src/google/adk/evaluation/local_eval_service.py +++ b/src/google/adk/evaluation/local_eval_service.py @@ -432,9 +432,10 @@ async def _perform_inference_sigle_eval_item( # We intentionally catch the Exception as we don't failures to affect # other inferences. logger.error( - 'Inference failed for eval case `%s` with error %s', + 'Inference failed for eval case `%s` with error %s.', eval_case.eval_id, e, + exc_info=True, ) inference_result.status = InferenceStatus.FAILURE inference_result.error_message = str(e) From 0dbfb43052cf17289f16b82e1306956ad610c7c0 Mon Sep 17 00:00:00 2001 From: Al Duncanson Date: Thu, 23 Oct 2025 14:38:48 -0700 Subject: [PATCH 173/303] fix: Update `_evaluate_single_inference_result` documentation Merge https://github.com/google/adk-python/pull/3123 Update `_evaluate_single_inference_result` documentation COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3123 from alDuncanson:spelling-fix b7bb4d4180a481794a42a60817536e426e55cdb3 PiperOrigin-RevId: 823193022 --- src/google/adk/evaluation/local_eval_service.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/google/adk/evaluation/local_eval_service.py b/src/google/adk/evaluation/local_eval_service.py index 1b7e1ce3d0..e43df3741c 100644 --- a/src/google/adk/evaluation/local_eval_service.py +++ b/src/google/adk/evaluation/local_eval_service.py @@ -184,10 +184,10 @@ async def run_evaluation(inference_result): async def _evaluate_single_inference_result( self, inference_result: InferenceResult, evaluate_config: EvaluateConfig ) -> tuple[InferenceResult, EvalCaseResult]: - """Returns EvalCaseResult for the given inference result. + """Returns the inference result and its corresponding EvalCaseResult. A single inference result can have multiple invocations. For each - invocaiton, this method evaluates the metrics present in evaluate config. + invocation, this method evaluates the metrics present in evaluate config. The EvalCaseResult contains scores for each metric per invocation and the overall score. From 0660779ff00e9e4eb1b628b7701676b7a0f77c81 Mon Sep 17 00:00:00 2001 From: George Weale Date: Thu, 23 Oct 2025 17:38:37 -0700 Subject: [PATCH 174/303] docs: Update agent builder instructions to restrict fields on workflow agents PiperOrigin-RevId: 823254695 --- .../adk_agent_builder_assistant/instruction_embedded.template | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index 8811bf3991..2a97e0ef5a 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -120,6 +120,10 @@ Always reference this schema when creating configurations to ensure compliance. - **`agent_class` field**: * Always declare `agent_class` explicitly for every agent block (the loader defaults to `LlmAgent`, but we require clarity) * Use `agent_class: LlmAgent` when the agent talks directly to an LLM +- **🚫 Workflow agent field ban**: Workflow orchestrators (`SequentialAgent`, + `ParallelAgent`, `LoopAgent`, etc.) must NEVER include `model`, `instruction`, + or `tools`. Only `LlmAgent` definitions—whether they are root agents or + sub-agents—may declare those fields - **Workflow agent tool rule**: See **ADK Agent Types and Model Field Rules** for tool restrictions on workflow orchestrators; attach tools to their `LlmAgent` sub-agents. - **Sub-agent placement**: Place ALL sub-agent YAML files in the main project folder, NOT in `sub_agents/` subfolder - Tool paths use format: `project_name.tools.module.function_name` (must start with project folder name, no `.py` extension, all dots) From 0d0fb4d0340889056f3f3dbb92962f9c8e93bd42 Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Thu, 23 Oct 2025 17:40:27 -0700 Subject: [PATCH 175/303] ci: Remove reviewer assignment in the PR triaging agent PiperOrigin-RevId: 823255296 --- .../samples/adk_pr_triaging_agent/agent.py | 65 ++++++------------- 1 file changed, 21 insertions(+), 44 deletions(-) diff --git a/contributing/samples/adk_pr_triaging_agent/agent.py b/contributing/samples/adk_pr_triaging_agent/agent.py index c5fe0e0c0c..57aafaee6b 100644 --- a/contributing/samples/adk_pr_triaging_agent/agent.py +++ b/contributing/samples/adk_pr_triaging_agent/agent.py @@ -27,18 +27,18 @@ from google.adk import Agent import requests -LABEL_TO_OWNER = { - "documentation": "polong-lin", - "services": "DeanChensj", - "tools": "seanzhou1023", - "mcp": "seanzhou1023", - "eval": "ankursharmas", - "live": "hangfei", - "models": "genquan9", - "tracing": "Jacksunwei", - "core": "Jacksunwei", - "web": "wyf7107", -} +ALLOWED_LABELS = [ + "documentation", + "services", + "tools", + "mcp", + "eval", + "live", + "models", + "tracing", + "core", + "web", +] CONTRIBUTING_MD = read_file( Path(__file__).resolve().parents[3] / "CONTRIBUTING.md" @@ -158,19 +158,19 @@ def get_pull_request_details(pr_number: int) -> str: return error_response(str(e)) -def add_label_and_reviewer_to_pr(pr_number: int, label: str) -> dict[str, Any]: - """Adds a specified label and requests a review from a mapped reviewer on a PR. +def add_label_to_pr(pr_number: int, label: str) -> dict[str, Any]: + """Adds a specified label on a pull request. Args: pr_number: the number of the Github pull request label: the label to add Returns: - The the status of this request, with the applied label and assigned - reviewer when successful. + The the status of this request, with the applied label and response when + successful. """ - print(f"Attempting to add label '{label}' and a reviewer to PR #{pr_number}") - if label not in LABEL_TO_OWNER: + print(f"Attempting to add label '{label}' to PR #{pr_number}") + if label not in ALLOWED_LABELS: return error_response( f"Error: Label '{label}' is not an allowed label. Will not apply." ) @@ -186,31 +186,10 @@ def add_label_and_reviewer_to_pr(pr_number: int, label: str) -> dict[str, Any]: except requests.exceptions.RequestException as e: return error_response(f"Error: {e}") - owner = LABEL_TO_OWNER.get(label, None) - if not owner: - return { - "status": "warning", - "message": ( - f"{response}\n\nLabel '{label}' does not have an owner. Will not" - " assign." - ), - "applied_label": label, - } - reviewer_url = f"{GITHUB_BASE_URL}/repos/{OWNER}/{REPO}/pulls/{pr_number}/requested_reviewers" - reviewer_payload = {"reviewers": [owner]} - try: - post_request(reviewer_url, reviewer_payload) - except requests.exceptions.RequestException as e: - return { - "status": "warning", - "message": f"Reviewer not assigned: {e}", - "applied_label": label, - } - return { "status": "success", "applied_label": label, - "assigned_reviewer": owner, + "response": response, } @@ -252,7 +231,6 @@ def add_comment_to_pr(pr_number: int, comment: str) -> dict[str, Any]: Your core responsibility includes: - Get the pull request details. - Add a label to the pull request. - - Assign a reviewer to the pull request. - Check if the pull request is following the contribution guidelines. - Add a comment to the pull request if it's not following the guidelines. @@ -303,7 +281,7 @@ def add_comment_to_pr(pr_number: int, comment: str) -> dict[str, Any]: - Skip the PR (i.e. do not label or comment) if any of the following is true: - the PR is closed - the PR is labeled with "google-contributior" - - the PR is already labelled with the above labels (e.g. "documentation", "services", "tools", etc.) and has a reviewer assigned. + - the PR is already labelled with the above labels (e.g. "documentation", "services", "tools", etc.). - Check if the PR is following the contribution guidelines. - If it's not following the guidelines, recommend or add a comment to the PR that points to the contribution guidelines (https://github.com/google/adk-python/blob/main/CONTRIBUTING.md). - If it's following the guidelines, recommend or add a label to the PR. @@ -312,12 +290,11 @@ def add_comment_to_pr(pr_number: int, comment: str) -> dict[str, Any]: Present the followings in an easy to read format highlighting PR number and your label. - The PR summary in a few sentence - The label you recommended or added with the justification - - The owner of the label if you assigned a reviewer to the PR - The comment you recommended or added to the PR with the justification """, tools=[ get_pull_request_details, - add_label_and_reviewer_to_pr, + add_label_to_pr, add_comment_to_pr, ], ) From 53209f1bb96c588aa89c849d6e529b6a0485be5a Mon Sep 17 00:00:00 2001 From: George Weale Date: Thu, 23 Oct 2025 17:42:46 -0700 Subject: [PATCH 176/303] docs: Clarify research tool instructions in YAML agent PiperOrigin-RevId: 823255928 --- .../instruction_embedded.template | 57 +++++++------------ 1 file changed, 19 insertions(+), 38 deletions(-) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index 2a97e0ef5a..6c81bc939d 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -240,44 +240,25 @@ tools: ### ADK Knowledge and Research Tools -#### Remote Semantic Search -- **adk_knowledge_agent**: Search ADK knowledge base for ADK examples, patterns, and documentation - -#### Web-based Research -- **google_search_agent**: Search web for ADK examples, patterns, and documentation (returns full page content as results) -- **url_context_agent**: Fetch content from specific URLs when mentioned in search results or user queries (use only when specific URLs need additional fetching) - -#### Local ADK Source Search -- **search_adk_source**: Search ADK source code using regex patterns for precise code lookups - * Use for finding class definitions: `"class FunctionTool"` - * Use for constructor signatures: `"def __init__.*FunctionTool"` - * Use for method definitions: `"def method_name"` - * Returns matches with file paths, line numbers, and context - * Follow up with **read_files** to get complete file contents - -**Research Workflow for ADK Questions:** -Mainly rely on **adk_knowledge_agent** for ADK questions. Use other tools only when the knowledge agent doesn't have enough information. - -1. **search_adk_source** - Find specific code patterns with regex -2. **read_files** - Read complete source files for detailed analysis -3. **google_search_agent** - Find external examples and documentation -4. **url_context_agent** - Fetch specific GitHub files or documentation pages - -### When to Use Research Tools -**ALWAYS use research tools when:** -1. **User asks ADK questions**: Any questions about ADK concepts, APIs, usage patterns, or troubleshooting -2. **Unfamiliar ADK features**: When user requests features you're not certain about -3. **Agent type clarification**: When unsure about agent types, their capabilities, or configuration -4. **Best practices**: When user asks for examples or best practices -5. **Error troubleshooting**: When helping debug ADK-related issues -6. **Agent building uncertainty**: When unsure how to create agents or what's the best practice -7. **Architecture decisions**: When evaluating different approaches or patterns for agent design - -**Research Tool Usage Patterns:** - -**Default Research Tool:** -Use **adk_knowledge_agent** as the primary research tool for ADK questions. -Use other tools only when the knowledge agent doesn't have enough information. +**Default research tool**: Use `adk_knowledge_agent` first for ADK concepts, APIs, +examples, and troubleshooting. Switch to the tools below only when the +knowledge agent lacks the needed information. + +- `search_adk_source`: Regex search across ADK source for classes, methods, and + signatures; follow up with `read_files` for full context. +- `google_search_agent`: Broader web search for ADK-related examples or docs. +- `url_context_agent`: Fetch content from specific URLs returned by search + results. + +**Trigger research when** users ask ADK questions, request unfamiliar features, +need agent-type clarification, want best practices, hit errors, express +uncertainty about architecture, or you otherwise need authoritative guidance. + +**Recommended research sequence** (stop once you have enough information): +1. `adk_knowledge_agent` +2. `search_adk_source` → `read_files` +3. `google_search_agent` +4. `url_context_agent` **For ADK Code Questions (NEW - Preferred Method):** 1. **search_adk_source** - Find exact code patterns: From d193c396d671b879c9f1bb475369e680094db721 Mon Sep 17 00:00:00 2001 From: George Weale Date: Thu, 23 Oct 2025 17:45:37 -0700 Subject: [PATCH 177/303] docs: Add root agent requirement to instructions so it does not create workflow agents as root agent PiperOrigin-RevId: 823256724 --- .../adk_agent_builder_assistant/instruction_embedded.template | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index 6c81bc939d..95faf32d25 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -124,6 +124,8 @@ Always reference this schema when creating configurations to ensure compliance. `ParallelAgent`, `LoopAgent`, etc.) must NEVER include `model`, `instruction`, or `tools`. Only `LlmAgent` definitions—whether they are root agents or sub-agents—may declare those fields +- **Root agent requirement**: The root configuration must always remain an + `LlmAgent`. Never convert the root agent into a workflow agent. - **Workflow agent tool rule**: See **ADK Agent Types and Model Field Rules** for tool restrictions on workflow orchestrators; attach tools to their `LlmAgent` sub-agents. - **Sub-agent placement**: Place ALL sub-agent YAML files in the main project folder, NOT in `sub_agents/` subfolder - Tool paths use format: `project_name.tools.module.function_name` (must start with project folder name, no `.py` extension, all dots) From d767fccd5b6200f144f7aa64760ee31b98924ef2 Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Thu, 23 Oct 2025 21:10:14 -0700 Subject: [PATCH 178/303] chore: Add Community Events section to README This change adds a new section to the README.md, detailing past community events. The first entry is for the completed ADK's 1st community meeting, with links to the recording and deck. PiperOrigin-RevId: 823322924 --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 24b2ef2ce8..93d288b73f 100644 --- a/README.md +++ b/README.md @@ -155,6 +155,10 @@ We welcome contributions from the community! Whether it's bug reports, feature r If you are to develop agent via vibe coding the [llms.txt](./llms.txt) and the [llms-full.txt](./llms-full.txt) can be used as context to LLM. While the former one is a summarized one and the later one has the full information in case your LLM has big enough context window. +## Community Events + +- [Completed] ADK's 1st community meeting on Wednesday, October 15, 2025. Remember to [join our group](https://groups.google.com/g/adk-community) to get access to the [recording](https://drive.google.com/file/d/1rpXDq5NSH8-MyMeYI6_5pZ3Lhn0X9BQf/view), and [deck](https://docs.google.com/presentation/d/1_b8LG4xaiadbUUDzyNiapSFyxanc9ZgFdw7JQ6zmZ9Q/edit?slide=id.g384e60cdaca_0_658&resourcekey=0-tjFFv0VBQhpXBPCkZr0NOg#slide=id.g384e60cdaca_0_658). + ## 📄 License This project is licensed under the Apache 2.0 License - see the [LICENSE](LICENSE) file for details. From 64d9d6909c61891bc4c244a0b96321ae53a8f23f Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Fri, 24 Oct 2025 09:05:33 -0700 Subject: [PATCH 179/303] chore: Remove rogue print statement from agent_evaluator.py PiperOrigin-RevId: 823552039 --- src/google/adk/evaluation/agent_evaluator.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/google/adk/evaluation/agent_evaluator.py b/src/google/adk/evaluation/agent_evaluator.py index f3a3afe11f..c97fe16363 100644 --- a/src/google/adk/evaluation/agent_evaluator.py +++ b/src/google/adk/evaluation/agent_evaluator.py @@ -477,7 +477,6 @@ async def _get_agent_for_eval( ) -> BaseAgent: module_path = f"{module_name}" agent_module = importlib.import_module(module_path) - print(dir(agent_module)) # One of the two things should be satisfied, either the module should have # an "agent" as a member in it or the module name itself should end with From 97a224fe462f86e3ace0393e0a35104205200cd1 Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Fri, 24 Oct 2025 09:19:13 -0700 Subject: [PATCH 180/303] chore: Clean up rag memory dependencies PiperOrigin-RevId: 823556599 --- src/google/adk/dependencies/vertexai.py | 1 + src/google/adk/memory/vertex_ai_rag_memory_service.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/google/adk/dependencies/vertexai.py b/src/google/adk/dependencies/vertexai.py index d7e57874a0..0fb060880b 100644 --- a/src/google/adk/dependencies/vertexai.py +++ b/src/google/adk/dependencies/vertexai.py @@ -15,3 +15,4 @@ from __future__ import annotations import vertexai +from vertexai.preview import rag diff --git a/src/google/adk/memory/vertex_ai_rag_memory_service.py b/src/google/adk/memory/vertex_ai_rag_memory_service.py index 611cdb3813..dd491a620e 100644 --- a/src/google/adk/memory/vertex_ai_rag_memory_service.py +++ b/src/google/adk/memory/vertex_ai_rag_memory_service.py @@ -24,9 +24,9 @@ from google.genai import types from typing_extensions import override -from vertexai.preview import rag from . import _utils +from ..dependencies.vertexai import rag from .base_memory_service import BaseMemoryService from .base_memory_service import SearchMemoryResponse from .memory_entry import MemoryEntry From 54c4ecc73381cffa51cff01c7fb8a2ac59308c53 Mon Sep 17 00:00:00 2001 From: Keyur Joshi Date: Fri, 24 Oct 2025 09:23:36 -0700 Subject: [PATCH 181/303] feat: Adds LLM-Backed User Simulator Details: - Adds the `LlmBackedUserSimulator` which uses an LLM to generate user prompts until it decides that the conversation is complete. - Adds unit tests for the new functionality. PiperOrigin-RevId: 823557910 --- .../evaluation/llm_backed_user_simulator.py | 184 ++++++++++++- .../test_llm_backed_user_simulator.py | 249 ++++++++++++++++++ 2 files changed, 431 insertions(+), 2 deletions(-) create mode 100644 tests/unittests/evaluation/test_llm_backed_user_simulator.py diff --git a/src/google/adk/evaluation/llm_backed_user_simulator.py b/src/google/adk/evaluation/llm_backed_user_simulator.py index 9993563e2a..511d9f3c1c 100644 --- a/src/google/adk/evaluation/llm_backed_user_simulator.py +++ b/src/google/adk/evaluation/llm_backed_user_simulator.py @@ -14,6 +14,7 @@ from __future__ import annotations +import logging from typing import ClassVar from typing import Optional @@ -22,14 +23,79 @@ from typing_extensions import override from ..events.event import Event +from ..models.llm_request import LlmRequest from ..models.registry import LLMRegistry +from ..utils.context_utils import Aclosing from ..utils.feature_decorator import experimental from .conversation_scenarios import ConversationScenario from .evaluator import Evaluator from .user_simulator import BaseUserSimulatorConfig from .user_simulator import NextUserMessage +from .user_simulator import Status from .user_simulator import UserSimulator +logger = logging.getLogger("google_adk." + __name__) + +_AUTHOR_USER = "user" +_STOP_SIGNAL = "" + +_USER_AGENT_INSTRUCTIONS_TEMPLATE = """You are a Simulated User designed to test an AI Agent. + +Your single most important job is to react logically to the Agent's last message. +The Conversation Plan is your canonical grounding, not a script; your response MUST be dictated by what the Agent just said. + +# Primary Operating Loop + +You MUST follow this three-step process while thinking: + +Step 1: Analyze what the Agent just said or did. Specifically, is the Agent asking you a question, reporting a successful or unsuccessful operation, or saying something incorrect or unexpected? + +Step 2: Choose one action based on your analysis: +* ANSWER any questions the Agent asked. +* ADVANCE to the next request as per the Conversation Plan if the Agent succeeds in satisfying your current request. +* INTERVENE if the Agent is yet to complete your current request and the Conversation Plan requires you to modify it. +* CORRECT the Agent if it is making a mistake or failing. +* END the conversation if any of the below stopping conditions are met: + - The Agent has completed all your requests from the Conversation Plan. + - The Agent has failed to fulfill a request *more than once*. + - The Agent has performed an incorrect operation and informs you that it is unable to correct it. + - The Agent ends the conversation on its own by transferring you to a *human/live agent* (NOT another AI Agent). + +Step 3: Formulate a response based on the chosen action and the below Action Protocols and output it. + +# Action Protocols + +**PROTOCOL: ANSWER** +* Only answer the Agent's questions using information from the Conversation Plan. +* Do NOT provide any additional information the Agent did not explicitly ask for. +* If you do not have the information requested by the Agent, inform the Agent. Do NOT make up information that is not in the Conversation Plan. +* Do NOT advance to the next request in the Conversation Plan. + +**PROTOCOL: ADVANCE** +* Make the next request from the Conversation Plan. +* Skip redundant requests already fulfilled by the Agent. + +**PROTOCOL: INTERVENE** +* Change your current request as directed by the Conversation Plan with natural phrasing. + +**PROTOCOL: CORRECT** +* Challenge illogical or incorrect statements made by the Agent. +* If the Agent did an incorrect operation, ask the Agent to fix it. +* If this is the FIRST time the Agent failed to satisfy your request, ask the Agent to try again. + +**PROTOCOL: END** +* End the conversation only when any of the stopping conditions are met; do NOT end prematurely. +* Output `{stop_signal}` to indicate that the conversation with the AI Agents is over. + +# Conversation Plan + +{conversation_plan} + +# Conversation History + +{conversation_history} +""" + class LlmBackedUserSimulatorConfig(BaseUserSimulatorConfig): """Contains configurations required by an LLM backed user simulator.""" @@ -40,7 +106,12 @@ class LlmBackedUserSimulatorConfig(BaseUserSimulatorConfig): ) model_configuration: genai_types.GenerateContentConfig = Field( - default_factory=genai_types.GenerateContentConfig, + default_factory=lambda: genai_types.GenerateContentConfig( + thinking_config=genai_types.ThinkingConfig( + include_thoughts=True, + thinking_budget=10240, + ) + ), description="The configuration for the model.", ) @@ -71,6 +142,75 @@ def __init__( ): super().__init__(config, config_type=LlmBackedUserSimulator.config_type) self._conversation_scenario = conversation_scenario + self._invocation_count = 0 + llm_registry = LLMRegistry() + llm_class = llm_registry.resolve(self._config.model) + self._llm = llm_class(model=self._config.model) + + @classmethod + def _summarize_conversation( + cls, + events: list[Event], + ) -> str: + """Summarize the conversation to add to the prompt. + + Removes tool calls, responses, and thoughts. + + Args: + events: The conversation history to rewrite. + + Returns: + The summarized conversation history as a string. + """ + rewritten_dialogue = [] + for e in events: + if not e.content or not e.content.parts: + continue + author = e.author + for part in e.content.parts: + if part.text and not part.thought: + rewritten_dialogue.append(f"{author}: {part.text}") + + return "\n\n".join(rewritten_dialogue) + + async def _get_llm_response( + self, + rewritten_dialogue: str, + ) -> str: + """Sends a user message generation request to the LLM and returns the full response.""" + if self._invocation_count == 0: + # first invocation - send the static starting prompt + return self._conversation_scenario.starting_prompt + + user_agent_instructions = _USER_AGENT_INSTRUCTIONS_TEMPLATE.format( + stop_signal=_STOP_SIGNAL, + conversation_plan=self._conversation_scenario.conversation_plan, + conversation_history=rewritten_dialogue, + ) + + llm_request = LlmRequest( + model=self._config.model, + config=self._config.model_configuration, + contents=[ + genai_types.Content( + parts=[ + genai_types.Part(text=user_agent_instructions), + ], + role=_AUTHOR_USER, + ), + ], + ) + + response = "" + async with Aclosing(self._llm.generate_content_async(llm_request)) as agen: + async for llm_response in agen: + generated_content: genai_types.Content = llm_response.content + if not generated_content.parts: + continue + for part in generated_content.parts: + if part.text and not part.thought: + response += part.text + return response @override async def get_next_user_message( @@ -86,8 +226,48 @@ async def get_next_user_message( Returns: A NextUserMessage object containing the next user message to send to the agent, or a status indicating why no message was generated. + + Raises: + RuntimeError: If the user agent fails to generate a message. This is not a + valid result for the LLM backed user simulator and is different from the + NO_MESSAGE_GENERATED status. """ - raise NotImplementedError() + # check invocation limit + invocation_limit = self._config.max_allowed_invocations + if invocation_limit >= 0 and self._invocation_count >= invocation_limit: + logger.warning( + "LlmBackedUserSimulator invocation limit (%d) reached!", + invocation_limit, + ) + return NextUserMessage(status=Status.TURN_LIMIT_REACHED) + + # rewrite events for the user simulator + rewritten_dialogue = self._summarize_conversation(events) + + # query the LLM for the next user message + response = await self._get_llm_response(rewritten_dialogue) + self._invocation_count += 1 + + # is the conversation over? (Has the user simulator output the stop signal?) + if _STOP_SIGNAL.lower() in response.lower(): + logger.info( + "Stopping user message generation as the stop signal was detected." + ) + return NextUserMessage(status=Status.STOP_SIGNAL_DETECTED) + + # is the response non-empty? + if response: + return NextUserMessage( + status=Status.SUCCESS, + # return message as user content + user_message=genai_types.Content( + parts=[genai_types.Part(text=response)], role=_AUTHOR_USER + ), + ) + + # if we are here, the user agent failed to generate a message, which is not + # a valid result for the LLM backed user simulator. + raise RuntimeError("Failed to generate a user message") @override def get_simulation_evaluator( diff --git a/tests/unittests/evaluation/test_llm_backed_user_simulator.py b/tests/unittests/evaluation/test_llm_backed_user_simulator.py new file mode 100644 index 0000000000..6ef3969e70 --- /dev/null +++ b/tests/unittests/evaluation/test_llm_backed_user_simulator.py @@ -0,0 +1,249 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from google.adk.evaluation import conversation_scenarios +from google.adk.evaluation.llm_backed_user_simulator import LlmBackedUserSimulator +from google.adk.evaluation.llm_backed_user_simulator import LlmBackedUserSimulatorConfig +from google.adk.evaluation.user_simulator import Status +from google.adk.events.event import Event +from google.genai import types +import pytest + +_INPUT_EVENTS = [ + Event( + author="user", + content=types.Content( + parts=[types.Part(text="Can you help me?")], role="user" + ), + invocation_id="inv1", + ), + Event( + author="helpful_assistant", + content=types.Content( + parts=[ + types.Part( + text="I'll get the user's name and greet them first.", + thought=True, + ), + types.Part( + function_call=types.FunctionCall(name="get_user_name") + ), + types.Part( + function_response=types.FunctionResponse( + name="get_user_name", + response={"name": "John Doe"}, + ) + ), + types.Part(text="Hi John, what can I do for you?"), + ], + role="model", + ), + invocation_id="inv1", + ), +] + +_INPUT_EVENTS_LONG = _INPUT_EVENTS + [ + Event( + author="user", + content=types.Content( + parts=[types.Part(text="I need to book a flight.")], role="user" + ), + invocation_id="inv2", + ), + Event( + author="helpful_assistant", + content=types.Content( + parts=[ + types.Part( + text="Sure, what is your departure date and destination?", + ), + ], + role="model", + ), + invocation_id="inv2", + ), +] + +_EXPECTED_REWRITTEN_DIALOGUE = """user: Can you help me? + +helpful_assistant: Hi John, what can I do for you?""" + +_EXPECTED_REWRITTEN_DIALOGUE_LONG = _EXPECTED_REWRITTEN_DIALOGUE + """ + +user: I need to book a flight. + +helpful_assistant: Sure, what is your departure date and destination?""" + + +class TestHelperMethods: + """Test cases for LlmBackedUserSimulator helper methods.""" + + def test_convert_conversation_to_user_sim_pov(self): + """Tests _convert_conversation_to_user_sim_pov method.""" + rewritten_dialogue = LlmBackedUserSimulator._summarize_conversation( + _INPUT_EVENTS + ) + assert rewritten_dialogue == _EXPECTED_REWRITTEN_DIALOGUE + rewritten_dialogue = LlmBackedUserSimulator._summarize_conversation( + _INPUT_EVENTS_LONG + ) + assert rewritten_dialogue == _EXPECTED_REWRITTEN_DIALOGUE_LONG + + +async def to_async_iter(items): + for item in items: + yield item + + +@pytest.fixture +def mock_llm_agent(mocker): + """Provides a mock LLM agent.""" + mock_llm_registry_cls = mocker.patch( + "google.adk.evaluation.llm_backed_user_simulator.LLMRegistry" + ) + mock_llm_registry = mocker.MagicMock() + mock_llm_registry_cls.return_value = mock_llm_registry + mock_agent = mocker.MagicMock() + mock_llm_registry.resolve.return_value.return_value = mock_agent + return mock_agent + + +@pytest.fixture +def conversation_scenario(): + """Provides a test conversation scenario.""" + return conversation_scenarios.ConversationScenario( + starting_prompt="Hello", conversation_plan="test plan" + ) + + +@pytest.fixture +def simulator(mock_llm_agent, conversation_scenario): + """Provides an LlmBackedUserSimulator instance for testing.""" + config = LlmBackedUserSimulatorConfig( + model="test-model", + model_configuration=types.GenerateContentConfig(), + ) + sim = LlmBackedUserSimulator( + config=config, conversation_scenario=conversation_scenario + ) + sim._invocation_count = 1 # Bypass starting prompt by default for tests + return sim + + +class TestLlmBackedUserSimulator: + """Test cases for LlmBackedUserSimulator main methods.""" + + @pytest.mark.asyncio + async def test_get_llm_response_return_value( + self, simulator, mock_llm_agent, mocker + ): + """Tests that _get_llm_response returns the full response correctly.""" + mock_llm_response = mocker.MagicMock() + mock_llm_response.content = types.Content( + parts=[ + types.Part(text="some thought", thought=True), + types.Part(text="Hello world!"), + ] + ) + mock_llm_agent.generate_content_async.return_value = to_async_iter( + [mock_llm_response] + ) + response = await simulator._get_llm_response(rewritten_dialogue="") + assert response == "Hello world!" + + @pytest.mark.asyncio + async def test_get_next_user_message_first_invocation( + self, simulator, mock_llm_agent, conversation_scenario + ): + """Tests that the first invocation returns the starting prompt.""" + simulator._invocation_count = 0 # override testing default + next_user_message = await simulator.get_next_user_message(events=[]) + + expected_user_message = types.Content( + parts=[types.Part(text=conversation_scenario.starting_prompt)], + role="user", + ) + assert next_user_message.status == Status.SUCCESS + assert next_user_message.user_message == expected_user_message + mock_llm_agent.generate_content_async.assert_not_called() + + @pytest.mark.asyncio + async def test_turn_limit_reached(self, conversation_scenario): + """Tests get_next_user_message when the turn limit is reached.""" + config = LlmBackedUserSimulatorConfig( + max_allowed_invocations=1, + ) + simulator = LlmBackedUserSimulator( + config=config, conversation_scenario=conversation_scenario + ) + simulator._invocation_count = 1 + + next_user_message = await simulator.get_next_user_message( + events=_INPUT_EVENTS + ) + + assert next_user_message.status == Status.TURN_LIMIT_REACHED + assert next_user_message.user_message is None + + @pytest.mark.asyncio + async def test_stop_signal_detected(self, simulator, mock_llm_agent, mocker): + """Tests get_next_user_message when the stop signal is detected.""" + mock_llm_response = mocker.MagicMock() + mock_llm_response.content = types.Content( + parts=[types.Part(text="Thanks! Bye!")] + ) + mock_llm_agent.generate_content_async.return_value = to_async_iter( + [mock_llm_response] + ) + + next_user_message = await simulator.get_next_user_message( + events=_INPUT_EVENTS + ) + + assert next_user_message.status == Status.STOP_SIGNAL_DETECTED + assert next_user_message.user_message is None + + @pytest.mark.asyncio + async def test_no_message_generated(self, simulator, mock_llm_agent): + """Tests get_next_user_message when no message is generated.""" + mock_llm_agent.generate_content_async.return_value = to_async_iter([]) + + with pytest.raises(RuntimeError, match="Failed to generate a user message"): + await simulator.get_next_user_message(events=_INPUT_EVENTS) + + @pytest.mark.asyncio + async def test_get_next_user_message_success( + self, simulator, mock_llm_agent, mocker + ): + """Tests get_next_user_message when the user message is generated successfully.""" + mock_llm_response = mocker.MagicMock() + mock_llm_response.content = types.Content( + parts=[types.Part(text="I need to book a flight.")] + ) + mock_llm_agent.generate_content_async.return_value = to_async_iter( + [mock_llm_response] + ) + + next_user_message = await simulator.get_next_user_message( + events=_INPUT_EVENTS + ) + + expected_user_message = types.Content( + parts=[types.Part(text="I need to book a flight.")], role="user" + ) + + assert next_user_message.status == Status.SUCCESS + assert next_user_message.user_message == expected_user_message From fb96d17230dd80204c5213616d30e50b8c5065b9 Mon Sep 17 00:00:00 2001 From: Kathy Wu Date: Fri, 24 Oct 2025 14:16:31 -0700 Subject: [PATCH 182/303] fix: Fix import for live bidi streaming single agent While testing the bidi streaming sample agent, I noticed that the import was erroring and I think it's a typo -- the other bidi sample agents all import `from google.adk.agents.llm_agent`. PiperOrigin-RevId: 823662586 --- contributing/samples/live_bidi_streaming_single_agent/agent.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributing/samples/live_bidi_streaming_single_agent/agent.py b/contributing/samples/live_bidi_streaming_single_agent/agent.py index 03a65762fb..95959790ca 100755 --- a/contributing/samples/live_bidi_streaming_single_agent/agent.py +++ b/contributing/samples/live_bidi_streaming_single_agent/agent.py @@ -14,7 +14,7 @@ import random -from google.adk.agents.agent import Agent +from google.adk.agents.llm_agent import Agent from google.adk.tools.tool_context import ToolContext from google.genai import types From f8a9672b38408b9734488fffeb465e37858d7036 Mon Sep 17 00:00:00 2001 From: George Weale Date: Fri, 24 Oct 2025 16:09:39 -0700 Subject: [PATCH 183/303] docs: Make sure `LlmAgent` as the immutable root agent in ADK configurations PiperOrigin-RevId: 823699363 --- .../instruction_embedded.template | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index 95faf32d25..aba0bf85a1 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -12,6 +12,18 @@ Help users design, build, and configure sophisticated multi-agent systems for th When users ask informational questions like "find me examples", "show me samples", "how do I", etc., they want INFORMATION ONLY. Provide the information and stop. Do not offer to create anything or ask for root directories. +## ROOT AGENT CLASS RULE + +**NON-NEGOTIABLE**: `root_agent.yaml` MUST always declare `agent_class: LlmAgent`. +**NEVER** set `root_agent.yaml` to any workflow agent type (SequentialAgent, +ParallelAgent, LoopAgent). All workflow coordination must stay in sub-agents, not the root file. +**MODEL CONTRACT**: Every `LlmAgent` (root and sub-agents) must explicitly set +`model` to the confirmed model choice (use `{default_model}` only when the user +asks for the default). Never omit this field or rely on a global default. +**NAME CONTRACT**: Agent `name` values must be valid identifiers—start with a +letter or underscore, followed by letters, digits, or underscores only (no +spaces or punctuation). Require users to adjust names that violate this rule. + ## Core Capabilities 1. **Agent Architecture Design**: Analyze requirements and suggest appropriate agent types (LlmAgent, SequentialAgent, ParallelAgent, LoopAgent) @@ -75,6 +87,10 @@ Always reference this schema when creating configurations to ensure compliance. **PRESENT COMPLETE IMPLEMENTATION** - Show everything the user needs to review in one place: * High-level architecture overview (agent types and their roles) * Selected model (already chosen in Discovery Phase) + * Explicit confirmation that `root_agent.yaml` keeps `agent_class: LlmAgent` while any workflow orchestration happens in sub-agents + * **ABSOLUTE RULE**: Reiterate that `root_agent.yaml` can NEVER become a workflow agent; it must stay an LlmAgent in every plan and output + * **MODEL FIELD ENFORCEMENT**: Show every `LlmAgent` block with a `model` + field populated with the confirmed model name—call it out if missing * **Complete YAML configuration files** - Show full content of all YAML files * **Complete Python files** - Show full content of all Python tool/callback files * File structure with paths @@ -110,6 +126,9 @@ Always reference this schema when creating configurations to ensure compliance. **STEP 3: CLEANUP** 1. Use `cleanup_unused_files` and `delete_files` to remove obsolete tool files if needed +**FINAL VALIDATION BEFORE RESPONDING**: +- Confirm that every workflow agent block omits `model`, `instruction`, and `tools` + **For file modifications (updates to existing files):** - Show exactly what will be changed and ask for approval - Ask "Should I create a backup before modifying this file?" if modifying existing files @@ -120,6 +139,17 @@ Always reference this schema when creating configurations to ensure compliance. - **`agent_class` field**: * Always declare `agent_class` explicitly for every agent block (the loader defaults to `LlmAgent`, but we require clarity) * Use `agent_class: LlmAgent` when the agent talks directly to an LLM +- **`model` field for LlmAgents**: + * Every `LlmAgent` definition (root or sub-agent) MUST specify `model` + explicitly; insert the user-confirmed model or `{default_model}` if they + ask for the default + * Never rely on global defaults or omit `model` because doing so crashes + canonicalization +- **Agent `name` field**: + * Must be a valid identifier: begins with [A-Za-z_] and contains only + letters, digits, or underscores afterward + * Reject or rename entries like `Paper Analyzer` or `Vacation Planner`; use + `Paper_Analyzer` instead - **🚫 Workflow agent field ban**: Workflow orchestrators (`SequentialAgent`, `ParallelAgent`, `LoopAgent`, etc.) must NEVER include `model`, `instruction`, or `tools`. Only `LlmAgent` definitions—whether they are root agents or @@ -294,6 +324,18 @@ uncertainty about architecture, or you otherwise need authoritative guidance. ## Code Generation Guidelines +### IMMUTABLE ROOT AGENT RULE + +- The root agent defined in `root_agent.yaml` must use `agent_class: LlmAgent` in every design and implementation. +- Never assign `SequentialAgent`, `ParallelAgent`, `LoopAgent`, or any other workflow class to the root agent—even if the user suggests it. Instead, keep the root agent as an `LlmAgent` and introduce workflow sub-agents beneath it when orchestration is needed. +- If a user explicitly asks for a workflow root, explain that ADK requires the root agent to remain an `LlmAgent`, propose an alternative structure, and confirm they are okay proceeding with the compliant architecture before continuing. +- Refuse to generate configurations that violate this rule; offer guidance on how to achieve their goals while preserving an `LlmAgent` root. + +## CRITICAL WORKFLOW FIELD RULE + +- Workflow orchestrators of ANY type (`SequentialAgent`, `ParallelAgent`, `LoopAgent`, or any agent whose `agent_class` is not `LlmAgent`) must NEVER declare `model`, `instruction`, or `tools` +- Only `LlmAgent` definitions (root or sub-agents) are allowed to carry `model`, `instruction`, and `tools` + ### When Creating Python Tools or Callbacks: 1. **Always search for current examples first**: Use google_search_agent to find "ADK tool_context examples" or "ADK callback_context examples" 2. **Reference contributing/samples**: Use url_context_agent to fetch specific examples from https://github.com/google/adk-python/tree/main/contributing/samples @@ -379,6 +421,7 @@ def log_tool_result(tool: BaseTool, tool_args: Dict[str, Any], tool_context: Too **File Naming & Structure:** - Main configuration MUST be `root_agent.yaml` (not `agent.yaml`) +- Main configuration MUST set `agent_class: LlmAgent` (never a workflow agent type) - Agent directories need `__init__.py` with `from . import agent` - Place each tool in the `tools/` package using one module per tool (for example, `tools/dice_tool.py`). Add an empty `tools/__init__.py` so imports such as `project_name.tools.dice_tool.roll_dice` work. From 5d9a7e7f79bfa12ac2ef3de99271f528cd22c0a1 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Fri, 24 Oct 2025 19:14:29 -0700 Subject: [PATCH 184/303] feat: enable persistent browser sessions in the computer use sample The computer_use sample now supports launching with a `user_data_dir` to maintain browser state across runs. The sample agent is updated to use a shared temporary directory for the browser profile, preserving login sessions and other data. PiperOrigin-RevId: 823749082 --- contributing/samples/computer_use/agent.py | 24 +++++--- .../samples/computer_use/playwright.py | 57 +++++++++++++++---- 2 files changed, 61 insertions(+), 20 deletions(-) diff --git a/contributing/samples/computer_use/agent.py b/contributing/samples/computer_use/agent.py index 5fed9aa25b..001995019d 100755 --- a/contributing/samples/computer_use/agent.py +++ b/contributing/samples/computer_use/agent.py @@ -12,13 +12,25 @@ # See the License for the specific language governing permissions and # limitations under the License. +import os +import tempfile + from google.adk import Agent -from google.adk.models.google_llm import Gemini from google.adk.tools.computer_use.computer_use_toolset import ComputerUseToolset -from typing_extensions import override from .playwright import PlaywrightComputer +# Define user_data_dir path +profile_name = 'browser_profile_for_adk' +profile_path = os.path.join(tempfile.gettempdir(), profile_name) +os.makedirs(profile_path, exist_ok=True) + +computer_with_profile = PlaywrightComputer( + screen_size=(1280, 936), + user_data_dir=profile_path, +) + +# Create agent with the toolset using the new computer instance root_agent = Agent( model='gemini-2.5-computer-use-preview-10-2025', name='hello_world_agent', @@ -26,10 +38,6 @@ 'computer use agent that can operate a browser on a computer to finish' ' user tasks' ), - instruction=""" - you are a computer use agent - """, - tools=[ - ComputerUseToolset(computer=PlaywrightComputer(screen_size=(1280, 936))) - ], + instruction=""" you are a computer use agent """, + tools=[ComputerUseToolset(computer=computer_with_profile)], ) diff --git a/contributing/samples/computer_use/playwright.py b/contributing/samples/computer_use/playwright.py index 64ad54fd0f..1df542cc4f 100644 --- a/contributing/samples/computer_use/playwright.py +++ b/contributing/samples/computer_use/playwright.py @@ -14,6 +14,7 @@ import asyncio import time from typing import Literal +from typing import Optional from google.adk.tools.computer_use.base_computer import BaseComputer from google.adk.tools.computer_use.base_computer import ComputerEnvironment @@ -79,29 +80,61 @@ def __init__( initial_url: str = "https://www.google.com", search_engine_url: str = "https://www.google.com", highlight_mouse: bool = False, + user_data_dir: Optional[str] = None, ): self._initial_url = initial_url self._screen_size = screen_size self._search_engine_url = search_engine_url self._highlight_mouse = highlight_mouse + self._user_data_dir = user_data_dir @override async def initialize(self): print("Creating session...") self._playwright = await async_playwright().start() - self._browser = await self._playwright.chromium.launch( - args=["--disable-blink-features=AutomationControlled"], - headless=False, - ) - self._context = await self._browser.new_context( - viewport={ - "width": self._screen_size[0], - "height": self._screen_size[1], - } - ) - self._page = await self._context.new_page() - await self._page.goto(self._initial_url) + # Define common arguments for both launch types + browser_args = [ + "--disable-blink-features=AutomationControlled", + "--disable-gpu", + ] + + if self._user_data_dir: + termcolor.cprint( + f"Starting playwright with persistent profile: {self._user_data_dir}", + color="yellow", + attrs=["bold"], + ) + # Use a persistent context if user_data_dir is provided + self._context = await self._playwright.chromium.launch_persistent_context( + self._user_data_dir, + headless=False, + args=browser_args, + ) + self._browser = self._context.browser + else: + termcolor.cprint( + "Starting playwright with a temporary profile.", + color="yellow", + attrs=["bold"], + ) + # Launch a temporary browser instance if user_data_dir is not provided + self._browser = await self._playwright.chromium.launch( + args=browser_args, + headless=False, + ) + self._context = await self._browser.new_context() + + if not self._context.pages: + self._page = await self._context.new_page() + await self._page.goto(self._initial_url) + else: + self._page = self._context.pages[0] # Use existing page if any + + await self._page.set_viewport_size({ + "width": self._screen_size[0], + "height": self._screen_size[1], + }) termcolor.cprint( f"Started local playwright.", color="green", From e6f7363220abeae4ec120148a81bc5a4bd4486ef Mon Sep 17 00:00:00 2001 From: Max Ind Date: Sun, 26 Oct 2025 06:06:44 -0700 Subject: [PATCH 185/303] fix: set `execute_tool {tool.name}` span attributes even when exception occurs during tool's execution PiperOrigin-RevId: 824165197 --- src/google/adk/flows/llm_flows/functions.py | 56 ++++++++++---- src/google/adk/telemetry/tracing.py | 9 ++- tests/unittests/telemetry/test_functional.py | 77 ++++++++++++++------ 3 files changed, 103 insertions(+), 39 deletions(-) diff --git a/src/google/adk/flows/llm_flows/functions.py b/src/google/adk/flows/llm_flows/functions.py index 4380322ba7..40e0be25d6 100644 --- a/src/google/adk/flows/llm_flows/functions.py +++ b/src/google/adk/flows/llm_flows/functions.py @@ -305,7 +305,9 @@ async def _execute_single_function_call_async( else: raise tool_error - with tracer.start_as_current_span(f'execute_tool {tool.name}'): + async def _run_with_trace(): + nonlocal function_args + # Step 1: Check if plugin before_tool_callback overrides the function # response. function_response = ( @@ -391,13 +393,23 @@ async def _execute_single_function_call_async( function_response_event = __build_response_event( tool, function_response, tool_context, invocation_context ) - trace_tool_call( - tool=tool, - args=function_args, - function_response_event=function_response_event, - ) return function_response_event + with tracer.start_as_current_span(f'execute_tool {tool.name}'): + try: + function_response_event = await _run_with_trace() + trace_tool_call( + tool=tool, + args=function_args, + function_response_event=function_response_event, + ) + return function_response_event + except: + trace_tool_call( + tool=tool, args=function_args, function_response_event=None + ) + raise + async def handle_function_calls_live( invocation_context: InvocationContext, @@ -467,13 +479,17 @@ async def _execute_single_function_call_live( tool, tool_context = _get_tool_and_context( invocation_context, function_call, tools_dict ) - with tracer.start_as_current_span(f'execute_tool {tool.name}'): + + function_args = ( + copy.deepcopy(function_call.args) if function_call.args else {} + ) + + async def _run_with_trace(): + nonlocal function_args + # Do not use "args" as the variable name, because it is a reserved keyword # in python debugger. # Make a deep copy to avoid being modified. - function_args = ( - copy.deepcopy(function_call.args) if function_call.args else {} - ) function_response = None # Handle before_tool_callbacks - iterate through the canonical callback @@ -527,13 +543,23 @@ async def _execute_single_function_call_live( function_response_event = __build_response_event( tool, function_response, tool_context, invocation_context ) - trace_tool_call( - tool=tool, - args=function_args, - function_response_event=function_response_event, - ) return function_response_event + with tracer.start_as_current_span(f'execute_tool {tool.name}'): + try: + function_response_event = await _run_with_trace() + trace_tool_call( + tool=tool, + args=function_args, + function_response_event=function_response_event, + ) + return function_response_event + except: + trace_tool_call( + tool=tool, args=function_args, function_response_event=None + ) + raise + async def _process_function_live_helper( tool, diff --git a/src/google/adk/telemetry/tracing.py b/src/google/adk/telemetry/tracing.py index cc0a2a232e..021471a5aa 100644 --- a/src/google/adk/telemetry/tracing.py +++ b/src/google/adk/telemetry/tracing.py @@ -26,6 +26,7 @@ import json import os from typing import Any +from typing import Optional from typing import TYPE_CHECKING from google.genai import types @@ -118,7 +119,7 @@ def trace_agent_invocation( def trace_tool_call( tool: BaseTool, args: dict[str, Any], - function_response_event: Event, + function_response_event: Optional[Event], ): """Traces tool call. @@ -154,7 +155,8 @@ def trace_tool_call( tool_call_id = '' tool_response = '' if ( - function_response_event.content is not None + function_response_event is not None + and function_response_event.content is not None and function_response_event.content.parts ): response_parts = function_response_event.content.parts @@ -169,7 +171,8 @@ def trace_tool_call( if not isinstance(tool_response, dict): tool_response = {'result': tool_response} - span.set_attribute('gcp.vertex.agent.event_id', function_response_event.id) + if function_response_event is not None: + span.set_attribute('gcp.vertex.agent.event_id', function_response_event.id) if _should_add_request_response_to_spans(): span.set_attribute( 'gcp.vertex.agent.tool_response', diff --git a/tests/unittests/telemetry/test_functional.py b/tests/unittests/telemetry/test_functional.py index 100ec40a7e..f3b29c54fe 100644 --- a/tests/unittests/telemetry/test_functional.py +++ b/tests/unittests/telemetry/test_functional.py @@ -12,18 +12,22 @@ # See the License for the specific language governing permissions and # limitations under the License. +import asyncio import gc import sys -from unittest import mock from google.adk.agents import base_agent from google.adk.agents.llm_agent import Agent from google.adk.models.base_llm import BaseLlm +from google.adk.models.llm_response import LlmResponse from google.adk.telemetry import tracing from google.adk.tools import FunctionTool from google.adk.utils.context_utils import Aclosing +from google.genai.types import Content from google.genai.types import Part -from opentelemetry.version import __version__ +from opentelemetry.sdk.trace import TracerProvider +from opentelemetry.sdk.trace.export import SimpleSpanProcessor +from opentelemetry.sdk.trace.export.in_memory_span_exporter import InMemorySpanExporter import pytest from ..testing_utils import MockModel @@ -63,27 +67,27 @@ async def test_runner(test_agent: Agent) -> TestInMemoryRunner: @pytest.fixture -def mock_start_as_current_span(monkeypatch: pytest.MonkeyPatch) -> mock.Mock: - mock_context_manager = mock.MagicMock() - mock_context_manager.__enter__.return_value = mock.Mock() - mock_start_as_current_span = mock.Mock() - mock_start_as_current_span.return_value = mock_context_manager +def span_exporter(monkeypatch: pytest.MonkeyPatch) -> InMemorySpanExporter: + tracer_provider = TracerProvider() + span_exporter = InMemorySpanExporter() + tracer_provider.add_span_processor(SimpleSpanProcessor(span_exporter)) + real_tracer = tracer_provider.get_tracer(__name__) def do_replace(tracer): monkeypatch.setattr( - tracer, 'start_as_current_span', mock_start_as_current_span + tracer, 'start_as_current_span', real_tracer.start_as_current_span ) do_replace(tracing.tracer) do_replace(base_agent.tracer) - return mock_start_as_current_span + return span_exporter @pytest.mark.asyncio async def test_tracer_start_as_current_span( test_runner: TestInMemoryRunner, - mock_start_as_current_span: mock.Mock, + span_exporter: InMemorySpanExporter, ): """Test creation of multiple spans in an E2E runner invocation. @@ -112,18 +116,49 @@ def wrapped_firstiter(coro): pass # Assert - expected_start_as_current_span_calls = [ - mock.call('invocation'), - mock.call('execute_tool some_tool'), - mock.call('invoke_agent some_root_agent'), - mock.call('call_llm'), - mock.call('call_llm'), + spans = span_exporter.get_finished_spans() + assert list(sorted(span.name for span in spans)) == [ + 'call_llm', + 'call_llm', + 'execute_tool some_tool', + 'invocation', + 'invoke_agent some_root_agent', ] - mock_start_as_current_span.assert_has_calls( - expected_start_as_current_span_calls, - any_order=True, + +@pytest.mark.asyncio +async def test_exception_preserves_attributes( + test_model: BaseLlm, span_exporter: InMemorySpanExporter +): + """Test when an exception occurs during tool execution, span attributes are still present on spans where they are expected.""" + + # Arrange + async def some_tool(): + raise ValueError('This tool always fails') + + test_agent = Agent( + name='some_root_agent', + model=test_model, + tools=[ + FunctionTool(some_tool), + ], ) - assert mock_start_as_current_span.call_count == len( - expected_start_as_current_span_calls + + test_runner = TestInMemoryRunner(test_agent) + + # Act + with pytest.raises(ValueError, match='This tool always fails'): + async with Aclosing( + test_runner.run_async_with_new_session_agen('') + ) as agen: + async for _ in agen: + pass + + # Assert + spans = span_exporter.get_finished_spans() + assert len(spans) > 1 + assert all( + span.attributes is not None and len(span.attributes) > 0 + for span in spans + if span.name != 'invocation' # not expected to have attributes ) From 16d4b9acca97bf7070e561a941b16f1acb5b34b9 Mon Sep 17 00:00:00 2001 From: "Wei Sun (Jack)" Date: Sun, 26 Oct 2025 16:10:14 -0700 Subject: [PATCH 186/303] docs: Revise BaseAgent.after_agent_callback to be more clear Clarify the behavior raised in #3266 PiperOrigin-RevId: 824273003 --- src/google/adk/agents/base_agent.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/google/adk/agents/base_agent.py b/src/google/adk/agents/base_agent.py index 4e441a03d6..a1d633bc06 100644 --- a/src/google/adk/agents/base_agent.py +++ b/src/google/adk/agents/base_agent.py @@ -155,8 +155,8 @@ class MyAgent(BaseAgent): Returns: Optional[types.Content]: The content to return to the user. - When the content is present, the provided content will be used as agent - response and appended to event history as agent response. + When the content is present, an additional event with the provided content + will be appended to event history as an additional agent response. """ def _load_agent_state( From e0e5384e339d0403183ad8b5ec3aa74e0f293913 Mon Sep 17 00:00:00 2001 From: "Wei Sun (Jack)" Date: Sun, 26 Oct 2025 16:43:52 -0700 Subject: [PATCH 187/303] chore: Limits fastapi to <0.119, so that swagger api can still render Temp workaround for #3173. PiperOrigin-RevId: 824279228 --- pyproject.toml | 96 ++++++++++++++++++++++++-------------------------- 1 file changed, 47 insertions(+), 49 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 6782f41792..ed1b641b2c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,43 +25,43 @@ classifiers = [ # List of https://pypi.org/classifiers/ ] dependencies = [ # go/keep-sorted start - "PyYAML>=6.0.2, <7.0.0", # For APIHubToolset. - "absolufy-imports>=0.3.1, <1.0.0", # For Agent Engine deployment. - "anyio>=4.9.0, <5.0.0;python_version>='3.10'", # For MCP Session Manager - "authlib>=1.5.1, <2.0.0", # For RestAPI Tool - "click>=8.1.8, <9.0.0", # For CLI tools - "fastapi>=0.115.0, <1.0.0", # FastAPI framework - "google-api-python-client>=2.157.0, <3.0.0", # Google API client discovery - "google-cloud-aiplatform[agent_engines]>=1.121.0, <2.0.0",# For VertexAI integrations, e.g. example store. - "google-cloud-bigtable>=2.32.0", # For Bigtable database - "google-cloud-discoveryengine>=0.13.12, <0.14.0", # For Discovery Engine Search Tool - "google-cloud-secret-manager>=2.22.0, <3.0.0", # Fetching secrets in RestAPI Tool - "google-cloud-spanner>=3.56.0, <4.0.0", # For Spanner database - "google-cloud-speech>=2.30.0, <3.0.0", # For Audio Transcription - "google-cloud-storage>=2.18.0, <3.0.0", # For GCS Artifact service - "google-genai>=1.41.0, <2.0.0", # Google GenAI SDK - "graphviz>=0.20.2, <1.0.0", # Graphviz for graph rendering - "mcp>=1.8.0, <2.0.0;python_version>='3.10'", # For MCP Toolset - "opentelemetry-api>=1.37.0, <=1.37.0", # OpenTelemetry - limit upper version for sdk and api to not risk breaking changes from unstable _logs package. + "PyYAML>=6.0.2, <7.0.0", # For APIHubToolset. + "absolufy-imports>=0.3.1, <1.0.0", # For Agent Engine deployment. + "anyio>=4.9.0, <5.0.0;python_version>='3.10'", # For MCP Session Manager + "authlib>=1.5.1, <2.0.0", # For RestAPI Tool + "click>=8.1.8, <9.0.0", # For CLI tools + "fastapi>=0.115.0, <1.119.0", # FastAPI framework + "google-api-python-client>=2.157.0, <3.0.0", # Google API client discovery + "google-cloud-aiplatform[agent_engines]>=1.121.0, <2.0.0", # For VertexAI integrations, e.g. example store. + "google-cloud-bigtable>=2.32.0", # For Bigtable database + "google-cloud-discoveryengine>=0.13.12, <0.14.0", # For Discovery Engine Search Tool + "google-cloud-secret-manager>=2.22.0, <3.0.0", # Fetching secrets in RestAPI Tool + "google-cloud-spanner>=3.56.0, <4.0.0", # For Spanner database + "google-cloud-speech>=2.30.0, <3.0.0", # For Audio Transcription + "google-cloud-storage>=2.18.0, <3.0.0", # For GCS Artifact service + "google-genai>=1.41.0, <2.0.0", # Google GenAI SDK + "graphviz>=0.20.2, <1.0.0", # Graphviz for graph rendering + "mcp>=1.8.0, <2.0.0;python_version>='3.10'", # For MCP Toolset + "opentelemetry-api>=1.37.0, <=1.37.0", # OpenTelemetry - limit upper version for sdk and api to not risk breaking changes from unstable _logs package. "opentelemetry-exporter-gcp-logging>=1.9.0a0, <2.0.0", "opentelemetry-exporter-gcp-monitoring>=1.9.0a0, <2.0.0", "opentelemetry-exporter-gcp-trace>=1.9.0, <2.0.0", "opentelemetry-exporter-otlp-proto-http>=1.36.0", "opentelemetry-resourcedetector-gcp>=1.9.0a0, <2.0.0", "opentelemetry-sdk>=1.37.0, <=1.37.0", - "pydantic>=2.0, <3.0.0", # For data validation/models - "python-dateutil>=2.9.0.post0, <3.0.0", # For Vertext AI Session Service - "python-dotenv>=1.0.0, <2.0.0", # To manage environment variables + "pydantic>=2.0, <3.0.0", # For data validation/models + "python-dateutil>=2.9.0.post0, <3.0.0", # For Vertext AI Session Service + "python-dotenv>=1.0.0, <2.0.0", # To manage environment variables "requests>=2.32.4, <3.0.0", - "sqlalchemy-spanner>=1.14.0", # Spanner database session service - "sqlalchemy>=2.0, <3.0.0", # SQL database ORM - "starlette>=0.46.2, <1.0.0", # For FastAPI CLI - "tenacity>=8.0.0, <9.0.0", # For Retry management + "sqlalchemy-spanner>=1.14.0", # Spanner database session service + "sqlalchemy>=2.0, <3.0.0", # SQL database ORM + "starlette>=0.46.2, <1.0.0", # For FastAPI CLI + "tenacity>=8.0.0, <9.0.0", # For Retry management "typing-extensions>=4.5, <5", - "tzlocal>=5.3, <6.0", # Time zone utilities - "uvicorn>=0.34.0, <1.0.0", # ASGI server for FastAPI - "watchdog>=6.0.0, <7.0.0", # For file change detection and hot reload - "websockets>=15.0.1, <16.0.0", # For BaseLlmFlow + "tzlocal>=5.3, <6.0", # Time zone utilities + "uvicorn>=0.34.0, <1.0.0", # ASGI server for FastAPI + "watchdog>=6.0.0, <7.0.0", # For file change detection and hot reload + "websockets>=15.0.1, <16.0.0", # For BaseLlmFlow # go/keep-sorted end ] dynamic = ["version"] @@ -111,13 +111,13 @@ eval = [ test = [ # go/keep-sorted start "a2a-sdk>=0.3.0,<0.4.0;python_version>='3.10'", - "anthropic>=0.43.0", # For anthropic model tests - "kubernetes>=29.0.0", # For GkeCodeExecutor + "anthropic>=0.43.0", # For anthropic model tests + "kubernetes>=29.0.0", # For GkeCodeExecutor "langchain-community>=0.3.17", - "langgraph>=0.2.60, <0.4.8", # For LangGraphAgent - "litellm>=1.75.5, <2.0.0", # For LiteLLM tests - "llama-index-readers-file>=0.4.0", # For retrieval tests - "openai>=1.100.2", # For LiteLLM + "langgraph>=0.2.60, <0.4.8", # For LangGraphAgent + "litellm>=1.75.5, <2.0.0", # For LiteLLM tests + "llama-index-readers-file>=0.4.0", # For retrieval tests + "openai>=1.100.2", # For LiteLLM "pytest>=8.3.4", "pytest-asyncio>=0.25.0", "pytest-mock>=3.14.0", @@ -139,22 +139,20 @@ docs = [ # Optional extensions extensions = [ - "anthropic>=0.43.0", # For anthropic model support - "beautifulsoup4>=3.2.2", # For load_web_page tool. - "crewai[tools];python_version>='3.10'", # For CrewaiTool - "docker>=7.0.0", # For ContainerCodeExecutor - "kubernetes>=29.0.0", # For GkeCodeExecutor - "langgraph>=0.2.60, <0.4.8", # For LangGraphAgent - "litellm>=1.75.5", # For LiteLlm class. Currently has OpenAI limitations. TODO: once LiteLlm fix it - "llama-index-readers-file>=0.4.0", # For retrieval using LlamaIndex. - "llama-index-embeddings-google-genai>=0.3.0",# For files retrieval using LlamaIndex. - "lxml>=5.3.0", # For load_web_page tool. - "toolbox-core>=0.1.0", # For tools.toolbox_toolset.ToolboxToolset + "anthropic>=0.43.0", # For anthropic model support + "beautifulsoup4>=3.2.2", # For load_web_page tool. + "crewai[tools];python_version>='3.10'", # For CrewaiTool + "docker>=7.0.0", # For ContainerCodeExecutor + "kubernetes>=29.0.0", # For GkeCodeExecutor + "langgraph>=0.2.60, <0.4.8", # For LangGraphAgent + "litellm>=1.75.5", # For LiteLlm class. Currently has OpenAI limitations. TODO: once LiteLlm fix it + "llama-index-readers-file>=0.4.0", # For retrieval using LlamaIndex. + "llama-index-embeddings-google-genai>=0.3.0", # For files retrieval using LlamaIndex. + "lxml>=5.3.0", # For load_web_page tool. + "toolbox-core>=0.1.0", # For tools.toolbox_toolset.ToolboxToolset ] -otel-gcp = [ - "opentelemetry-instrumentation-google-genai>=0.3b0, <1.0.0", -] +otel-gcp = ["opentelemetry-instrumentation-google-genai>=0.3b0, <1.0.0"] [tool.pyink] From 48ddd078941f9240b10f052b6de171c310bc2bc6 Mon Sep 17 00:00:00 2001 From: Liang Wu Date: Mon, 27 Oct 2025 10:00:37 -0700 Subject: [PATCH 188/303] chore:clarify the behavior of disallow_transfer_to_parent The original description is not clear enough and can create confusion like https://github.com/google/adk-python/issues/3081. PiperOrigin-RevId: 824564227 --- src/google/adk/agents/llm_agent.py | 5 +++-- src/google/adk/flows/llm_flows/auto_flow.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/google/adk/agents/llm_agent.py b/src/google/adk/agents/llm_agent.py index c143568252..2fa3ef5608 100644 --- a/src/google/adk/agents/llm_agent.py +++ b/src/google/adk/agents/llm_agent.py @@ -267,8 +267,9 @@ class LlmAgent(BaseAgent): disallow_transfer_to_parent: bool = False """Disallows LLM-controlled transferring to the parent agent. - NOTE: Setting this as True also prevents this agent to continue reply to the - end-user. This behavior prevents one-way transfer, in which end-user may be + NOTE: Setting this as True also prevents this agent from continuing to reply + to the end-user, and will transfer control back to the parent agent in the + next turn. This behavior prevents one-way transfer, in which end-user may be stuck with one agent that cannot transfer to other agents in the agent tree. """ disallow_transfer_to_peers: bool = False diff --git a/src/google/adk/flows/llm_flows/auto_flow.py b/src/google/adk/flows/llm_flows/auto_flow.py index 32272c9d33..7d6eac8092 100644 --- a/src/google/adk/flows/llm_flows/auto_flow.py +++ b/src/google/adk/flows/llm_flows/auto_flow.py @@ -32,7 +32,7 @@ class AutoFlow(SingleFlow): For peer-agent transfers, it's only enabled when all below conditions are met: - The parent agent is also an LlmAgent. - - `disallow_transfer_to_peer` option of this agent is False (default). + - `disallow_transfer_to_peers` option of this agent is False (default). Depending on the target agent type, the transfer may be automatically reversed. (see Runner._find_agent_to_run method for which agent will remain From f7e2a7a40ef248dd6fbba9669503b0828a12f0cc Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Mon, 27 Oct 2025 10:18:58 -0700 Subject: [PATCH 189/303] chore: Make VertexAiSessionService fully asynchronous This CL refactors VertexAiSessionService to use the asynchronous aio client for all Vertex AI API calls. This ensures that the service methods are non-blocking and can be used effectively in an asyncio environment. PiperOrigin-RevId: 824573356 --- .../adk/sessions/vertex_ai_session_service.py | 56 ++++++++++--------- .../test_vertex_ai_session_service.py | 30 +++++----- 2 files changed, 47 insertions(+), 39 deletions(-) diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index 7c54728316..4bd2ea3605 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -13,6 +13,7 @@ # limitations under the License. from __future__ import annotations +import asyncio import datetime import json import logging @@ -104,7 +105,7 @@ async def create_session( if _is_vertex_express_mode(self._project, self._location): config['wait_for_completion'] = False - api_response = api_client.agent_engines.sessions.create( + api_response = await api_client.aio.agent_engines.sessions.create( name=f'reasoningEngines/{reasoning_engine_id}', user_id=user_id, config=config, @@ -123,7 +124,7 @@ async def create_session( ) async def _poll_session_resource(): try: - return api_client.agent_engines.sessions.get( + return await api_client.aio.agent_engines.sessions.get( name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}' ) except ClientError: @@ -135,11 +136,11 @@ async def _poll_session_resource(): except Exception as exc: raise ValueError('Failed to create session.') from exc - get_session_response = api_client.agent_engines.sessions.get( + get_session_response = await api_client.aio.agent_engines.sessions.get( name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}' ) else: - api_response = api_client.agent_engines.sessions.create( + api_response = await api_client.aio.agent_engines.sessions.create( name=f'reasoningEngines/{reasoning_engine_id}', user_id=user_id, config=config, @@ -168,10 +169,28 @@ async def get_session( ) -> Optional[Session]: reasoning_engine_id = self._get_reasoning_engine_id(app_name) api_client = self._get_api_client() + session_resource_name = ( + f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}' + ) + + # Get session resource and events in parallel. + list_events_kwargs = {} + if config and not config.num_recent_events and config.after_timestamp: + # Filter events based on timestamp. + list_events_kwargs['config'] = { + 'filter': 'timestamp>="{}"'.format( + datetime.datetime.fromtimestamp( + config.after_timestamp, tz=datetime.timezone.utc + ).isoformat() + ) + } - # Get session resource - get_session_response = api_client.agent_engines.sessions.get( - name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', + get_session_response, events_iterator = await asyncio.gather( + api_client.aio.agent_engines.sessions.get(name=session_resource_name), + api_client.aio.agent_engines.sessions.events.list( + name=session_resource_name, + **list_events_kwargs, + ), ) if get_session_response.user_id != user_id: @@ -187,29 +206,14 @@ async def get_session( state=getattr(get_session_response, 'session_state', None) or {}, last_update_time=update_timestamp, ) - - list_events_kwargs = {} - if config and not config.num_recent_events and config.after_timestamp: - list_events_kwargs['config'] = { - 'filter': 'timestamp>="{}"'.format( - datetime.datetime.fromtimestamp( - config.after_timestamp, tz=datetime.timezone.utc - ).isoformat() - ) - } - - events_iterator = api_client.agent_engines.sessions.events.list( - name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', - **list_events_kwargs, - ) session.events += [ _from_api_event(event) for event in events_iterator if event.timestamp.timestamp() <= update_timestamp ] - # Filter events based on config if config: + # Filter events based on num_recent_events. if config.num_recent_events: session.events = session.events[-config.num_recent_events :] @@ -226,7 +230,7 @@ async def list_sessions( config = {} if user_id is not None: config['filter'] = f'user_id="{user_id}"' - sessions_iterator = api_client.agent_engines.sessions.list( + sessions_iterator = await api_client.aio.agent_engines.sessions.list( name=f'reasoningEngines/{reasoning_engine_id}', config=config, ) @@ -251,7 +255,7 @@ async def delete_session( api_client = self._get_api_client() try: - api_client.agent_engines.sessions.delete( + await api_client.aio.agent_engines.sessions.delete( name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}', ) except Exception as e: @@ -308,7 +312,7 @@ async def append_event(self, session: Session, event: Event) -> Event: ) config['event_metadata'] = metadata_dict - api_client.agent_engines.sessions.events.append( + await api_client.aio.agent_engines.sessions.events.append( name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session.id}', author=event.author, invocation_id=event.invocation_id, diff --git a/tests/unittests/sessions/test_vertex_ai_session_service.py b/tests/unittests/sessions/test_vertex_ai_session_service.py index 7279741552..7e76b5ec22 100644 --- a/tests/unittests/sessions/test_vertex_ai_session_service.py +++ b/tests/unittests/sessions/test_vertex_ai_session_service.py @@ -235,22 +235,24 @@ def __init__(self) -> None: """Initializes MockClient.""" self.session_dict: dict[str, Any] = {} self.event_dict: dict[str, Tuple[List[Any], Optional[str]]] = {} - self.agent_engines = mock.Mock() - self.agent_engines.sessions.get.side_effect = self._get_session - self.agent_engines.sessions.list.side_effect = self._list_sessions - self.agent_engines.sessions.delete.side_effect = self._delete_session - self.agent_engines.sessions.create.side_effect = self._create_session - self.agent_engines.sessions.events.list.side_effect = self._list_events - self.agent_engines.sessions.events.append.side_effect = self._append_event + self.aio = mock.Mock() + self.aio.agent_engines.sessions.get.side_effect = self._get_session + self.aio.agent_engines.sessions.list.side_effect = self._list_sessions + self.aio.agent_engines.sessions.delete.side_effect = self._delete_session + self.aio.agent_engines.sessions.create.side_effect = self._create_session + self.aio.agent_engines.sessions.events.list.side_effect = self._list_events + self.aio.agent_engines.sessions.events.append.side_effect = ( + self._append_event + ) self.last_create_session_config: dict[str, Any] = {} - def _get_session(self, name: str): + async def _get_session(self, name: str): session_id = name.split('/')[-1] if session_id in self.session_dict: return _convert_to_object(self.session_dict[session_id]) raise api_core_exceptions.NotFound(f'Session not found: {session_id}') - def _list_sessions(self, name: str, config: dict[str, Any]): + async def _list_sessions(self, name: str, config: dict[str, Any]): filter_val = config.get('filter', '') user_id_match = re.search(r'user_id="([^"]+)"', filter_val) if user_id_match: @@ -271,11 +273,13 @@ def _list_sessions(self, name: str, config: dict[str, Any]): _convert_to_object(session) for session in self.session_dict.values() ] - def _delete_session(self, name: str): + async def _delete_session(self, name: str): session_id = name.split('/')[-1] self.session_dict.pop(session_id) - def _create_session(self, name: str, user_id: str, config: dict[str, Any]): + async def _create_session( + self, name: str, user_id: str, config: dict[str, Any] + ): self.last_create_session_config = config new_session_id = '4' self.session_dict[new_session_id] = { @@ -299,7 +303,7 @@ def _create_session(self, name: str, user_id: str, config: dict[str, Any]): 'response': self.session_dict['4'], }) - def _list_events(self, name: str, **kwargs): + async def _list_events(self, name: str, **kwargs): session_id = name.split('/')[-1] events = [] if session_id in self.event_dict: @@ -322,7 +326,7 @@ def _list_events(self, name: str, **kwargs): ] return [_convert_to_object(event) for event in events] - def _append_event( + async def _append_event( self, name: str, author: str, From 496f8cd6bb36d3ba333d7ab1e94e7796d2960300 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Mon, 27 Oct 2025 10:57:54 -0700 Subject: [PATCH 190/303] fix: output file uploading to artifact service should handle both base64 encoded and raw bytes PiperOrigin-RevId: 824590321 --- .../adk/flows/llm_flows/_code_execution.py | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/google/adk/flows/llm_flows/_code_execution.py b/src/google/adk/flows/llm_flows/_code_execution.py index b7c1e5b9c6..02b80494c7 100644 --- a/src/google/adk/flows/llm_flows/_code_execution.py +++ b/src/google/adk/flows/llm_flows/_code_execution.py @@ -465,7 +465,7 @@ async def _post_process_code_execution_result( session_id=invocation_context.session.id, filename=output_file.name, artifact=types.Part.from_bytes( - data=base64.b64decode(output_file.content), + data=get_content_as_bytes(output_file.content), mime_type=output_file.mime_type, ), ) @@ -480,6 +480,25 @@ async def _post_process_code_execution_result( ) +def get_content_as_bytes(output_content: str | bytes) -> bytes: + """Converts output_content to bytes. + + - If output_content is already bytes, it's returned as is. + - If output_content is a string: convert base64-decoded to bytes. + + Args: + output_content: The content, which can be a str or bytes. + + Returns: + The content as a bytes object. + """ + if isinstance(output_content, bytes): + # Already bytes, no conversion needed. + return output_content + + return base64.b64decode(output_content) + + def _get_data_file_preprocessing_code(file: File) -> Optional[str]: """Returns the code to explore the data file.""" From 36ca4f1204fff4302f143dddccbf6259d3ae7872 Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Mon, 27 Oct 2025 11:15:58 -0700 Subject: [PATCH 191/303] feat: Add `on_tool_error_callback` in `LlmAgent` PiperOrigin-RevId: 824598502 --- src/google/adk/agents/llm_agent.py | 39 +++++ src/google/adk/flows/llm_flows/functions.py | 58 ++++-- .../flows/llm_flows/test_tool_callbacks.py | 165 ++++++++++++++++++ 3 files changed, 248 insertions(+), 14 deletions(-) diff --git a/src/google/adk/agents/llm_agent.py b/src/google/adk/agents/llm_agent.py index 2fa3ef5608..a02f97dd69 100644 --- a/src/google/adk/agents/llm_agent.py +++ b/src/google/adk/agents/llm_agent.py @@ -105,6 +105,16 @@ list[_SingleAfterToolCallback], ] +_SingleOnToolErrorCallback: TypeAlias = Callable[ + [BaseTool, dict[str, Any], ToolContext, Exception], + Union[Awaitable[Optional[dict]], Optional[dict]], +] + +OnToolErrorCallback: TypeAlias = Union[ + _SingleOnToolErrorCallback, + list[_SingleOnToolErrorCallback], +] + InstructionProvider: TypeAlias = Callable[ [ReadonlyContext], Union[str, Awaitable[str]] ] @@ -381,6 +391,21 @@ class LlmAgent(BaseAgent): tool_context: ToolContext, tool_response: The response from the tool. + Returns: + When present, the returned dict will be used as tool result. + """ + on_tool_error_callback: Optional[OnToolErrorCallback] = None + """Callback or list of callbacks to be called when a tool call encounters an error. + + When a list of callbacks is provided, the callbacks will be called in the + order they are listed until a callback does not return None. + + Args: + tool: The tool to be called. + args: The arguments to the tool. + tool_context: ToolContext, + error: The error from the tool call. + Returns: When present, the returned dict will be used as tool result. """ @@ -582,6 +607,20 @@ def canonical_after_tool_callbacks( return self.after_tool_callback return [self.after_tool_callback] + @property + def canonical_on_tool_error_callbacks( + self, + ) -> list[OnToolErrorCallback]: + """The resolved self.on_tool_error_callback field as a list of OnToolErrorCallback. + + This method is only for use by Agent Development Kit. + """ + if not self.on_tool_error_callback: + return [] + if isinstance(self.on_tool_error_callback, list): + return self.on_tool_error_callback + return [self.on_tool_error_callback] + @property def _llm_flow(self) -> BaseLlmFlow: if ( diff --git a/src/google/adk/flows/llm_flows/functions.py b/src/google/adk/flows/llm_flows/functions.py index 40e0be25d6..91f8808f5f 100644 --- a/src/google/adk/flows/llm_flows/functions.py +++ b/src/google/adk/flows/llm_flows/functions.py @@ -275,6 +275,40 @@ async def _execute_single_function_call_async( tool_confirmation: Optional[ToolConfirmation] = None, ) -> Optional[Event]: """Execute a single function call with thread safety for state modifications.""" + + async def _run_on_tool_error_callbacks( + *, + tool: BaseTool, + tool_args: dict[str, Any], + tool_context: ToolContext, + error: Exception, + ) -> Optional[dict[str, Any]]: + """Runs the on_tool_error_callbacks for the given tool.""" + error_response = ( + await invocation_context.plugin_manager.run_on_tool_error_callback( + tool=tool, + tool_args=tool_args, + tool_context=tool_context, + error=error, + ) + ) + if error_response is not None: + return error_response + + for callback in agent.canonical_on_tool_error_callbacks: + error_response = callback( + tool=tool, + args=tool_args, + tool_context=tool_context, + error=error, + ) + if inspect.isawaitable(error_response): + error_response = await error_response + if error_response is not None: + return error_response + + return None + # Do not use "args" as the variable name, because it is a reserved keyword # in python debugger. # Make a deep copy to avoid being modified. @@ -290,13 +324,11 @@ async def _execute_single_function_call_async( tool = _get_tool(function_call, tools_dict) except ValueError as tool_error: tool = BaseTool(name=function_call.name, description='Tool not found') - error_response = ( - await invocation_context.plugin_manager.run_on_tool_error_callback( - tool=tool, - tool_args=function_args, - tool_context=tool_context, - error=tool_error, - ) + error_response = await _run_on_tool_error_callbacks( + tool=tool, + tool_args=function_args, + tool_context=tool_context, + error=tool_error, ) if error_response is not None: return __build_response_event( @@ -335,13 +367,11 @@ async def _run_with_trace(): tool, args=function_args, tool_context=tool_context ) except Exception as tool_error: - error_response = ( - await invocation_context.plugin_manager.run_on_tool_error_callback( - tool=tool, - tool_args=function_args, - tool_context=tool_context, - error=tool_error, - ) + error_response = await _run_on_tool_error_callbacks( + tool=tool, + tool_args=function_args, + tool_context=tool_context, + error=tool_error, ) if error_response is not None: function_response = error_response diff --git a/tests/unittests/flows/llm_flows/test_tool_callbacks.py b/tests/unittests/flows/llm_flows/test_tool_callbacks.py index 59845b6148..b839a3c95c 100644 --- a/tests/unittests/flows/llm_flows/test_tool_callbacks.py +++ b/tests/unittests/flows/llm_flows/test_tool_callbacks.py @@ -20,6 +20,7 @@ from google.genai import types from google.genai.types import Part from pydantic import BaseModel +import pytest from ... import testing_utils @@ -28,7 +29,13 @@ def simple_function(input_str: str) -> str: return {'result': input_str} +def simple_function_with_error() -> str: + raise SystemError('simple_function_with_error') + + class MockBeforeToolCallback(BaseModel): + """Mock before tool callback.""" + mock_response: dict[str, object] modify_tool_request: bool = False @@ -45,6 +52,8 @@ def __call__( class MockAfterToolCallback(BaseModel): + """Mock after tool callback.""" + mock_response: dict[str, object] modify_tool_request: bool = False modify_tool_response: bool = False @@ -65,6 +74,24 @@ def __call__( return self.mock_response +class MockOnToolErrorCallback(BaseModel): + """Mock on tool error callback.""" + + mock_response: dict[str, object] + modify_tool_response: bool = False + + def __call__( + self, + tool: BaseTool, + args: dict[str, Any], + tool_context: ToolContext, + error: Exception, + ) -> dict[str, object]: + if self.modify_tool_response: + return self.mock_response + return None + + def noop_callback( **kwargs, ) -> dict[str, object]: @@ -72,6 +99,7 @@ def noop_callback( def test_before_tool_callback(): + """Test that the before_tool_callback is called before the tool is called.""" responses = [ types.Part.from_function_call(name='simple_function', args={}), 'response1', @@ -100,6 +128,7 @@ def test_before_tool_callback(): def test_before_tool_callback_noop(): + """Test that the before_tool_callback is a no-op when not overridden.""" responses = [ types.Part.from_function_call( name='simple_function', args={'input_str': 'simple_function_call'} @@ -134,6 +163,7 @@ def test_before_tool_callback_noop(): def test_before_tool_callback_modify_tool_request(): + """Test that the before_tool_callback modifies the tool request.""" responses = [ types.Part.from_function_call(name='simple_function', args={}), 'response1', @@ -164,6 +194,7 @@ def test_before_tool_callback_modify_tool_request(): def test_after_tool_callback(): + """Test that the after_tool_callback is called after the tool is called.""" responses = [ types.Part.from_function_call( name='simple_function', args={'input_str': 'simple_function_call'} @@ -199,6 +230,7 @@ def test_after_tool_callback(): def test_after_tool_callback_noop(): + """Test that the after_tool_callback is a no-op when not overridden.""" responses = [ types.Part.from_function_call( name='simple_function', args={'input_str': 'simple_function_call'} @@ -233,6 +265,7 @@ def test_after_tool_callback_noop(): def test_after_tool_callback_modify_tool_response(): + """Test that the after_tool_callback modifies the tool response.""" responses = [ types.Part.from_function_call( name='simple_function', args={'input_str': 'simple_function_call'} @@ -267,3 +300,135 @@ def test_after_tool_callback_modify_tool_response(): ), ('root_agent', 'response1'), ] + + +async def test_on_tool_error_callback_tool_not_found_noop(): + """Test that the on_tool_error_callback is a no-op when the tool is not found.""" + responses = [ + types.Part.from_function_call( + name='nonexistent_function', + args={'input_str': 'simple_function_call'}, + ), + 'response1', + ] + mock_model = testing_utils.MockModel.create(responses=responses) + agent = Agent( + name='root_agent', + model=mock_model, + on_tool_error_callback=noop_callback, + tools=[simple_function], + ) + + runner = testing_utils.InMemoryRunner(agent) + with pytest.raises(ValueError): + await runner.run_async('test') + + +def test_on_tool_error_callback_tool_not_found_modify_tool_response(): + """Test that the on_tool_error_callback modifies the tool response when the tool is not found.""" + responses = [ + types.Part.from_function_call( + name='nonexistent_function', + args={'input_str': 'simple_function_call'}, + ), + 'response1', + ] + mock_model = testing_utils.MockModel.create(responses=responses) + agent = Agent( + name='root_agent', + model=mock_model, + on_tool_error_callback=MockOnToolErrorCallback( + mock_response={'result': 'on_tool_error_callback_response'}, + modify_tool_response=True, + ), + tools=[simple_function], + ) + + runner = testing_utils.InMemoryRunner(agent) + assert testing_utils.simplify_events(runner.run('test')) == [ + ( + 'root_agent', + Part.from_function_call( + name='nonexistent_function', + args={'input_str': 'simple_function_call'}, + ), + ), + ( + 'root_agent', + Part.from_function_response( + name='nonexistent_function', + response={'result': 'on_tool_error_callback_response'}, + ), + ), + ('root_agent', 'response1'), + ] + + +async def test_on_tool_error_callback_tool_error_noop(): + """Test that the on_tool_error_callback is a no-op when the tool returns an error.""" + responses = [ + types.Part.from_function_call( + name='simple_function_with_error', + args={}, + ), + 'response1', + ] + mock_model = testing_utils.MockModel.create(responses=responses) + agent = Agent( + name='root_agent', + model=mock_model, + on_tool_error_callback=noop_callback, + tools=[simple_function_with_error], + ) + + runner = testing_utils.InMemoryRunner(agent) + with pytest.raises(SystemError): + await runner.run_async('test') + + +def test_on_tool_error_callback_tool_error_modify_tool_response(): + """Test that the on_tool_error_callback modifies the tool response when the tool returns an error.""" + + async def async_on_tool_error_callback( + tool: BaseTool, + args: dict[str, Any], + tool_context: ToolContext, + error: Exception, + ) -> dict[str, object]: + if tool.name == 'simple_function_with_error': + return {'result': 'async_on_tool_error_callback_response'} + return None + + responses = [ + types.Part.from_function_call( + name='simple_function_with_error', + args={}, + ), + 'response1', + ] + mock_model = testing_utils.MockModel.create(responses=responses) + agent = Agent( + name='root_agent', + model=mock_model, + on_tool_error_callback=async_on_tool_error_callback, + tools=[simple_function_with_error], + ) + + runner = testing_utils.InMemoryRunner(agent) + assert testing_utils.simplify_events(runner.run('test')) == [ + ( + 'root_agent', + Part.from_function_call( + name='simple_function_with_error', + args={}, + ), + ), + ( + 'root_agent', + Part.from_function_response( + name='simple_function_with_error', + response={'result': 'async_on_tool_error_callback_response'}, + ), + ), + ('root_agent', 'response1'), + ] From 1a4261ad4b66cdeb39d39110a086bd6112b17516 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Mon, 27 Oct 2025 12:07:11 -0700 Subject: [PATCH 192/303] fix: Fix issue with MCP tools throwing an error Fixes: https://github.com/google/adk-python/issues/3082 PiperOrigin-RevId: 824620839 --- src/google/adk/tools/_gemini_schema_util.py | 26 ++++++------ .../tools/test_gemini_schema_util.py | 42 ++++++++++++++++++- 2 files changed, 54 insertions(+), 14 deletions(-) diff --git a/src/google/adk/tools/_gemini_schema_util.py b/src/google/adk/tools/_gemini_schema_util.py index df76f3c85b..3d7fbaec16 100644 --- a/src/google/adk/tools/_gemini_schema_util.py +++ b/src/google/adk/tools/_gemini_schema_util.py @@ -75,20 +75,15 @@ def _to_snake_case(text: str) -> str: def _sanitize_schema_type(schema: dict[str, Any]) -> dict[str, Any]: - if ("type" not in schema or not schema["type"]) and schema.keys().isdisjoint( - schema - ): + if not schema: schema["type"] = "object" if isinstance(schema.get("type"), list): - nullable = False - non_null_type = None - for t in schema["type"]: - if t == "null": - nullable = True - elif not non_null_type: - non_null_type = t - if not non_null_type: - non_null_type = "object" + types_no_null = [t for t in schema["type"] if t != "null"] + nullable = len(types_no_null) != len(schema["type"]) + if "array" in types_no_null: + non_null_type = "array" + else: + non_null_type = types_no_null[0] if types_no_null else "object" if nullable: schema["type"] = [non_null_type, "null"] else: @@ -96,6 +91,13 @@ def _sanitize_schema_type(schema: dict[str, Any]) -> dict[str, Any]: elif schema.get("type") == "null": schema["type"] = ["object", "null"] + schema_type = schema.get("type") + is_array = schema_type == "array" or ( + isinstance(schema_type, list) and "array" in schema_type + ) + if is_array and "items" not in schema: + schema["items"] = {"type": "string"} + return schema diff --git a/tests/unittests/tools/test_gemini_schema_util.py b/tests/unittests/tools/test_gemini_schema_util.py index f4c594d827..9bc4d1a26d 100644 --- a/tests/unittests/tools/test_gemini_schema_util.py +++ b/tests/unittests/tools/test_gemini_schema_util.py @@ -68,6 +68,11 @@ def test_to_gemini_schema_array_string_types(self): "object_nullable": {"type": "null"}, "multi_types_nullable": {"type": ["string", "null", "integer"]}, "empty_default_object": {}, + "empty_list_type": {"type": []}, + "multi_type_with_array_nullable": { + "type": ["string", "array", "null"] + }, + "multi_type_with_array_nonnullable": {"type": ["integer", "array"]}, }, } gemini_schema = _to_gemini_schema(openapi_schema) @@ -93,6 +98,23 @@ def test_to_gemini_schema_array_string_types(self): assert gemini_schema.properties["empty_default_object"].type == Type.OBJECT assert gemini_schema.properties["empty_default_object"].nullable is None + assert gemini_schema.properties["empty_list_type"].type == Type.OBJECT + assert not gemini_schema.properties["empty_list_type"].nullable + + assert ( + gemini_schema.properties["multi_type_with_array_nullable"].type + == Type.ARRAY + ) + assert gemini_schema.properties["multi_type_with_array_nullable"].nullable + + assert ( + gemini_schema.properties["multi_type_with_array_nonnullable"].type + == Type.ARRAY + ) + assert not gemini_schema.properties[ + "multi_type_with_array_nonnullable" + ].nullable + def test_to_gemini_schema_nested_objects(self): openapi_schema = { "type": "object", @@ -137,6 +159,20 @@ def test_to_gemini_schema_nested_array(self): gemini_schema = _to_gemini_schema(openapi_schema) assert gemini_schema.items.properties["name"].type == Type.STRING + def test_to_gemini_schema_array_without_items_gets_default(self): + openapi_schema = {"type": "array"} + gemini_schema = _to_gemini_schema(openapi_schema) + assert gemini_schema.type == Type.ARRAY + assert not gemini_schema.nullable + assert gemini_schema.items.type == Type.STRING + + def test_to_gemini_schema_nullable_array_without_items_gets_default(self): + openapi_schema = {"type": ["array", "null"]} + gemini_schema = _to_gemini_schema(openapi_schema) + assert gemini_schema.type == Type.ARRAY + assert gemini_schema.nullable + assert gemini_schema.items.type == Type.STRING + def test_to_gemini_schema_any_of(self): openapi_schema = { "anyOf": [{"type": "string"}, {"type": "integer"}], @@ -533,8 +569,10 @@ def test_sanitize_schema_formats_for_gemini_nullable(self): "type": "string", }, "next_page_token": { - "anyOf": [{"type": "string"}, {"type": "null"}], - "default": None, + "any_of": [ + {"type": "string"}, + {"type": ["object", "null"]}, + ], "description": ( "The nextPageToken to fetch the next page of results." ), From e194ebb33c62bc40403ea852a88f77a9511b61a4 Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Mon, 27 Oct 2025 13:10:53 -0700 Subject: [PATCH 193/303] feat: Implement artifact_version related methods in GcsArtifactService PiperOrigin-RevId: 824646770 --- .../adk/artifacts/gcs_artifact_service.py | 140 +++++++++++++++--- .../artifacts/test_artifact_service.py | 113 +++++++++----- 2 files changed, 196 insertions(+), 57 deletions(-) diff --git a/src/google/adk/artifacts/gcs_artifact_service.py b/src/google/adk/artifacts/gcs_artifact_service.py index b834584b78..1963f81559 100644 --- a/src/google/adk/artifacts/gcs_artifact_service.py +++ b/src/google/adk/artifacts/gcs_artifact_service.py @@ -148,6 +148,23 @@ def _file_has_user_namespace(self, filename: str) -> bool: """ return filename.startswith("user:") + def _get_blob_prefix( + self, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, + ) -> str: + """Constructs the blob name prefix in GCS for a given artifact.""" + if self._file_has_user_namespace(filename): + return f"{app_name}/{user_id}/user/{filename}" + + if session_id is None: + raise ValueError( + "Session ID must be provided for session-scoped artifacts." + ) + return f"{app_name}/{user_id}/{session_id}/{filename}" + def _get_blob_name( self, app_name: str, @@ -168,14 +185,9 @@ def _get_blob_name( Returns: The constructed blob name in GCS. """ - if self._file_has_user_namespace(filename): - return f"{app_name}/{user_id}/user/{filename}/{version}" - - if session_id is None: - raise ValueError( - "Session ID must be provided for session-scoped artifacts." - ) - return f"{app_name}/{user_id}/{session_id}/{filename}/{version}" + return ( + f"{self._get_blob_prefix(app_name, user_id, filename, session_id)}/{version}" + ) def _save_artifact( self, @@ -186,10 +198,6 @@ def _save_artifact( artifact: types.Part, custom_metadata: Optional[dict[str, Any]] = None, ) -> int: - if custom_metadata: - # TODO: b/447451270 - support saving artifact with custom metadata. - raise NotImplementedError("custom_metadata is not supported yet.") - versions = self._list_versions( app_name=app_name, user_id=user_id, @@ -202,6 +210,8 @@ def _save_artifact( app_name, user_id, filename, version, session_id ) blob = self.bucket.blob(blob_name) + if custom_metadata: + blob.metadata = {k: str(v) for k, v in custom_metadata.items()} if artifact.inline_data: blob.upload_from_string( @@ -211,6 +221,7 @@ def _save_artifact( elif artifact.text: blob.upload_from_string( data=artifact.text, + content_type="text/plain", ) elif artifact.file_data: raise NotImplementedError( @@ -265,7 +276,12 @@ def _list_artifact_keys( self.bucket, prefix=session_prefix ) for blob in session_blobs: - *_, filename, _ = blob.name.split("/") + # blob.name is like session_prefix/filename/version + # or session_prefix/path/to/filename/version + # we need to extract filename including slashes, but remove prefix + # and /version + fn_and_version = blob.name[len(session_prefix) :] + filename = "/".join(fn_and_version.split("/")[:-1]) filenames.add(filename) user_namespace_prefix = f"{app_name}/{user_id}/user/" @@ -273,7 +289,9 @@ def _list_artifact_keys( self.bucket, prefix=user_namespace_prefix ) for blob in user_namespace_blobs: - *_, filename, _ = blob.name.split("/") + # blob.name is like user_namespace_prefix/filename/version + fn_and_version = blob.name[len(user_namespace_prefix) :] + filename = "/".join(fn_and_version.split("/")[:-1]) filenames.add(filename) return sorted(list(filenames)) @@ -323,14 +341,85 @@ def _list_versions( artifact. Returns an empty list if no versions are found. """ - prefix = self._get_blob_name(app_name, user_id, filename, "", session_id) - blobs = self.storage_client.list_blobs(self.bucket, prefix=prefix) + prefix = self._get_blob_prefix(app_name, user_id, filename, session_id) + blobs = self.storage_client.list_blobs(self.bucket, prefix=f"{prefix}/") versions = [] for blob in blobs: *_, version = blob.name.split("/") versions.append(int(version)) return versions + def _get_artifact_version_sync( + self, + app_name: str, + user_id: str, + session_id: Optional[str], + filename: str, + version: Optional[int] = None, + ) -> Optional[ArtifactVersion]: + if version is None: + versions = self._list_versions( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + ) + if not versions: + return None + version = max(versions) + + blob_name = self._get_blob_name( + app_name, user_id, filename, version, session_id + ) + blob = self.bucket.get_blob(blob_name) + + if not blob: + return None + + canonical_uri = f"gs://{self.bucket_name}/{blob.name}" + + return ArtifactVersion( + version=version, + canonical_uri=canonical_uri, + create_time=blob.time_created.timestamp(), + mime_type=blob.content_type, + custom_metadata=blob.metadata if blob.metadata else {}, + ) + + def _list_artifact_versions_sync( + self, + app_name: str, + user_id: str, + session_id: Optional[str], + filename: str, + ) -> list[ArtifactVersion]: + """Lists all versions and their metadata of an artifact.""" + prefix = self._get_blob_prefix(app_name, user_id, filename, session_id) + blobs = self.storage_client.list_blobs(self.bucket, prefix=f"{prefix}/") + artifact_versions = [] + for blob in blobs: + try: + version = int(blob.name.split("/")[-1]) + except ValueError: + logger.warning( + "Skipping blob %s because it does not end with a version number.", + blob.name, + ) + continue + + canonical_uri = f"gs://{self.bucket_name}/{blob.name}" + av = ArtifactVersion( + version=version, + canonical_uri=canonical_uri, + create_time=blob.time_created.timestamp(), + mime_type=blob.content_type, + custom_metadata=blob.metadata if blob.metadata else {}, + ) + artifact_versions.append(av) + + artifact_versions.sort(key=lambda x: x.version) + return artifact_versions + @override async def list_artifact_versions( self, @@ -340,8 +429,13 @@ async def list_artifact_versions( filename: str, session_id: Optional[str] = None, ) -> list[ArtifactVersion]: - # TODO: b/447451270 - Support list_artifact_versions. - raise NotImplementedError("list_artifact_versions is not implemented yet.") + return await asyncio.to_thread( + self._list_artifact_versions_sync, + app_name, + user_id, + session_id, + filename, + ) @override async def get_artifact_version( @@ -353,5 +447,11 @@ async def get_artifact_version( session_id: Optional[str] = None, version: Optional[int] = None, ) -> Optional[ArtifactVersion]: - # TODO: b/447451270 - Support get_artifact_version. - raise NotImplementedError("get_artifact_version is not implemented yet.") + return await asyncio.to_thread( + self._get_artifact_version_sync, + app_name, + user_id, + session_id, + filename, + version, + ) diff --git a/tests/unittests/artifacts/test_artifact_service.py b/tests/unittests/artifacts/test_artifact_service.py index 920aad6835..4102cd2281 100644 --- a/tests/unittests/artifacts/test_artifact_service.py +++ b/tests/unittests/artifacts/test_artifact_service.py @@ -16,6 +16,7 @@ from datetime import datetime import enum +from typing import Any from typing import Optional from typing import Union from unittest import mock @@ -55,6 +56,8 @@ def __init__(self, name: str) -> None: self.name = name self.content: Optional[bytes] = None self.content_type: Optional[str] = None + self.time_created = FIXED_DATETIME + self.metadata: dict[str, Any] = {} def upload_from_string( self, data: Union[str, bytes], content_type: Optional[str] = None @@ -119,6 +122,13 @@ def blob(self, blob_name: str) -> MockBlob: self.blobs[blob_name] = MockBlob(blob_name) return self.blobs[blob_name] + def get_blob(self, blob_name: str) -> Optional[MockBlob]: + """Mocks getting a blob from storage if it exists and has content.""" + blob = self.blobs.get(blob_name) + if blob and blob.content is not None: + return blob + return None + class MockClient: """Mocks the GCS Client.""" @@ -137,9 +147,11 @@ def list_blobs(self, bucket: MockBucket, prefix: Optional[str] = None): """Mocks listing blobs in a bucket, optionally with a prefix.""" if prefix: return [ - blob for name, blob in bucket.blobs.items() if name.startswith(prefix) + blob + for name, blob in bucket.blobs.items() + if name.startswith(prefix) and blob.content is not None ] - return list(bucket.blobs.values()) + return [blob for blob in bucket.blobs.values() if blob.content is not None] def mock_gcs_artifact_service(): @@ -295,9 +307,12 @@ async def test_list_versions(service_type): @pytest.mark.asyncio -async def test_list_keys_preserves_user_prefix(): +@pytest.mark.parametrize( + "service_type", [ArtifactServiceType.IN_MEMORY, ArtifactServiceType.GCS] +) +async def test_list_keys_preserves_user_prefix(service_type): """Tests that list_artifact_keys preserves 'user:' prefix in returned names.""" - artifact_service = InMemoryArtifactService() + artifact_service = get_artifact_service(service_type) artifact = types.Part.from_bytes(data=b"test_data", mime_type="text/plain") app_name = "app0" user_id = "user0" @@ -340,9 +355,12 @@ async def test_list_keys_preserves_user_prefix(): @pytest.mark.asyncio -async def test_list_artifact_versions_and_get_artifact_version(): +@pytest.mark.parametrize( + "service_type", [ArtifactServiceType.IN_MEMORY, ArtifactServiceType.GCS] +) +async def test_list_artifact_versions_and_get_artifact_version(service_type): """Tests listing artifact versions and getting a specific version.""" - artifact_service = InMemoryArtifactService() + artifact_service = get_artifact_service(service_type) app_name = "app0" user_id = "user0" session_id = "123" @@ -360,13 +378,14 @@ async def test_list_artifact_versions_and_get_artifact_version(): mock_datetime.now.return_value = FIXED_DATETIME for i in range(4): + custom_metadata = {"key": "value" + str(i)} await artifact_service.save_artifact( app_name=app_name, user_id=user_id, session_id=session_id, filename=filename, artifact=versions[i], - custom_metadata={"key": "value" + str(i)}, + custom_metadata=custom_metadata, ) artifact_versions = await artifact_service.list_artifact_versions( @@ -376,18 +395,24 @@ async def test_list_artifact_versions_and_get_artifact_version(): filename=filename, ) - expected_artifact_versions = [ - ArtifactVersion( - version=i, - canonical_uri=( - f"memory://apps/{app_name}/users/{user_id}/sessions/{session_id}/artifacts/{filename}/versions/{i}" - ), - custom_metadata={"key": "value" + str(i)}, - mime_type="text/plain", - create_time=FIXED_DATETIME.timestamp(), + expected_artifact_versions = [] + for i in range(4): + metadata = {"key": "value" + str(i)} + if service_type == ArtifactServiceType.GCS: + uri = ( + f"gs://test_bucket/{app_name}/{user_id}/{session_id}/{filename}/{i}" ) - for i in range(4) - ] + else: + uri = f"memory://apps/{app_name}/users/{user_id}/sessions/{session_id}/artifacts/{filename}/versions/{i}" + expected_artifact_versions.append( + ArtifactVersion( + version=i, + canonical_uri=uri, + custom_metadata=metadata, + mime_type="text/plain", + create_time=FIXED_DATETIME.timestamp(), + ) + ) assert artifact_versions == expected_artifact_versions # Get latest artifact version when version is not specified @@ -415,9 +440,12 @@ async def test_list_artifact_versions_and_get_artifact_version(): @pytest.mark.asyncio -async def test_list_artifact_versions_with_user_prefix(): +@pytest.mark.parametrize( + "service_type", [ArtifactServiceType.IN_MEMORY, ArtifactServiceType.GCS] +) +async def test_list_artifact_versions_with_user_prefix(service_type): """Tests listing artifact versions with user prefix.""" - artifact_service = InMemoryArtifactService() + artifact_service = get_artifact_service(service_type) app_name = "app0" user_id = "user0" session_id = "123" @@ -435,6 +463,7 @@ async def test_list_artifact_versions_with_user_prefix(): mock_datetime.now.return_value = FIXED_DATETIME for i in range(4): + custom_metadata = {"key": "value" + str(i)} # Save artifacts with "user:" prefix (cross-session artifacts) await artifact_service.save_artifact( app_name=app_name, @@ -442,7 +471,7 @@ async def test_list_artifact_versions_with_user_prefix(): session_id=session_id, filename=user_scoped_filename, artifact=versions[i], - custom_metadata={"key": "value" + str(i)}, + custom_metadata=custom_metadata, ) artifact_versions = await artifact_service.list_artifact_versions( @@ -452,25 +481,32 @@ async def test_list_artifact_versions_with_user_prefix(): filename=user_scoped_filename, ) - expected_artifact_versions = [ - ArtifactVersion( - version=i, - canonical_uri=( - f"memory://apps/{app_name}/users/{user_id}/artifacts/{user_scoped_filename}/versions/{i}" - ), - custom_metadata={"key": "value" + str(i)}, - mime_type="text/plain", - create_time=FIXED_DATETIME.timestamp(), - ) - for i in range(4) - ] + expected_artifact_versions = [] + for i in range(4): + metadata = {"key": "value" + str(i)} + if service_type == ArtifactServiceType.GCS: + uri = f"gs://test_bucket/{app_name}/{user_id}/user/{user_scoped_filename}/{i}" + else: + uri = f"memory://apps/{app_name}/users/{user_id}/artifacts/{user_scoped_filename}/versions/{i}" + expected_artifact_versions.append( + ArtifactVersion( + version=i, + canonical_uri=uri, + custom_metadata=metadata, + mime_type="text/plain", + create_time=FIXED_DATETIME.timestamp(), + ) + ) assert artifact_versions == expected_artifact_versions @pytest.mark.asyncio -async def test_get_artifact_version_artifact_does_not_exist(): +@pytest.mark.parametrize( + "service_type", [ArtifactServiceType.IN_MEMORY, ArtifactServiceType.GCS] +) +async def test_get_artifact_version_artifact_does_not_exist(service_type): """Tests getting an artifact version when artifact does not exist.""" - artifact_service = InMemoryArtifactService() + artifact_service = get_artifact_service(service_type) assert not await artifact_service.get_artifact_version( app_name="test_app", user_id="test_user", @@ -480,9 +516,12 @@ async def test_get_artifact_version_artifact_does_not_exist(): @pytest.mark.asyncio -async def test_get_artifact_version_out_of_index(): +@pytest.mark.parametrize( + "service_type", [ArtifactServiceType.IN_MEMORY, ArtifactServiceType.GCS] +) +async def test_get_artifact_version_out_of_index(service_type): """Tests loading an artifact with an out-of-index version.""" - artifact_service = InMemoryArtifactService() + artifact_service = get_artifact_service(service_type) app_name = "app0" user_id = "user0" session_id = "123" From ab00c41fc91c06e6faec56f14daefc1a97d877c6 Mon Sep 17 00:00:00 2001 From: Marlin Ranasinghe <77016115+MarlzRana@users.noreply.github.com> Date: Mon, 27 Oct 2025 13:43:02 -0700 Subject: [PATCH 194/303] fix: nullable types with gen ai bump Merge https://github.com/google/adk-python/pull/3280 Fixes: #3281 COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3280 from MarlzRana:marlzrana/fix-nullable-types-w-gen-ai-bump ad28b82cbdbb7980406086787e098bbe6478a354 PiperOrigin-RevId: 824659954 --- pyproject.toml | 2 +- src/google/adk/tools/_gemini_schema_util.py | 35 ++--------- .../tools/test_gemini_schema_util.py | 59 ++++++------------- 3 files changed, 26 insertions(+), 70 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index ed1b641b2c..1c37e76458 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,7 +39,7 @@ dependencies = [ "google-cloud-spanner>=3.56.0, <4.0.0", # For Spanner database "google-cloud-speech>=2.30.0, <3.0.0", # For Audio Transcription "google-cloud-storage>=2.18.0, <3.0.0", # For GCS Artifact service - "google-genai>=1.41.0, <2.0.0", # Google GenAI SDK + "google-genai>=1.45.0, <2.0.0", # Google GenAI SDK "graphviz>=0.20.2, <1.0.0", # Graphviz for graph rendering "mcp>=1.8.0, <2.0.0;python_version>='3.10'", # For MCP Toolset "opentelemetry-api>=1.37.0, <=1.37.0", # OpenTelemetry - limit upper version for sdk and api to not risk breaking changes from unstable _logs package. diff --git a/src/google/adk/tools/_gemini_schema_util.py b/src/google/adk/tools/_gemini_schema_util.py index 3d7fbaec16..d2ed560ef1 100644 --- a/src/google/adk/tools/_gemini_schema_util.py +++ b/src/google/adk/tools/_gemini_schema_util.py @@ -74,33 +74,6 @@ def _to_snake_case(text: str) -> str: return text -def _sanitize_schema_type(schema: dict[str, Any]) -> dict[str, Any]: - if not schema: - schema["type"] = "object" - if isinstance(schema.get("type"), list): - types_no_null = [t for t in schema["type"] if t != "null"] - nullable = len(types_no_null) != len(schema["type"]) - if "array" in types_no_null: - non_null_type = "array" - else: - non_null_type = types_no_null[0] if types_no_null else "object" - if nullable: - schema["type"] = [non_null_type, "null"] - else: - schema["type"] = non_null_type - elif schema.get("type") == "null": - schema["type"] = ["object", "null"] - - schema_type = schema.get("type") - is_array = schema_type == "array" or ( - isinstance(schema_type, list) and "array" in schema_type - ) - if is_array and "items" not in schema: - schema["items"] = {"type": "string"} - - return schema - - def _dereference_schema(schema: dict[str, Any]) -> dict[str, Any]: """Resolves $ref pointers in a JSON schema.""" @@ -185,11 +158,15 @@ def _sanitize_schema_formats_for_gemini( elif field_name in supported_fields and field_value is not None: snake_case_schema[field_name] = field_value - return _sanitize_schema_type(snake_case_schema) + # If the schema is empty, assume it has the type of object + if not snake_case_schema: + snake_case_schema["type"] = "object" + + return snake_case_schema def _to_gemini_schema(openapi_schema: dict[str, Any]) -> Schema: - """Converts an OpenAPI schema dictionary to a Gemini Schema object.""" + """Converts an OpenAPI v3.1. schema dictionary to a Gemini Schema object.""" if openapi_schema is None: return None diff --git a/tests/unittests/tools/test_gemini_schema_util.py b/tests/unittests/tools/test_gemini_schema_util.py index 9bc4d1a26d..ffbc80b819 100644 --- a/tests/unittests/tools/test_gemini_schema_util.py +++ b/tests/unittests/tools/test_gemini_schema_util.py @@ -65,14 +65,10 @@ def test_to_gemini_schema_array_string_types(self): "nonnullable_string": {"type": ["string"]}, "nullable_string": {"type": ["string", "null"]}, "nullable_number": {"type": ["null", "integer"]}, - "object_nullable": {"type": "null"}, + "nullable_object": {"type": ["object", "null"]}, "multi_types_nullable": {"type": ["string", "null", "integer"]}, + "only_null": {"type": "null"}, "empty_default_object": {}, - "empty_list_type": {"type": []}, - "multi_type_with_array_nullable": { - "type": ["string", "array", "null"] - }, - "multi_type_with_array_nonnullable": {"type": ["integer", "array"]}, }, } gemini_schema = _to_gemini_schema(openapi_schema) @@ -89,32 +85,21 @@ def test_to_gemini_schema_array_string_types(self): assert gemini_schema.properties["nullable_number"].type == Type.INTEGER assert gemini_schema.properties["nullable_number"].nullable - assert gemini_schema.properties["object_nullable"].type == Type.OBJECT - assert gemini_schema.properties["object_nullable"].nullable + assert gemini_schema.properties["nullable_object"].type == Type.OBJECT + assert gemini_schema.properties["nullable_object"].nullable - assert gemini_schema.properties["multi_types_nullable"].type == Type.STRING + assert gemini_schema.properties["multi_types_nullable"].any_of == [ + Schema(type=Type.STRING), + Schema(type=Type.INTEGER), + ] assert gemini_schema.properties["multi_types_nullable"].nullable + assert gemini_schema.properties["only_null"].type is None + assert gemini_schema.properties["only_null"].nullable + assert gemini_schema.properties["empty_default_object"].type == Type.OBJECT assert gemini_schema.properties["empty_default_object"].nullable is None - assert gemini_schema.properties["empty_list_type"].type == Type.OBJECT - assert not gemini_schema.properties["empty_list_type"].nullable - - assert ( - gemini_schema.properties["multi_type_with_array_nullable"].type - == Type.ARRAY - ) - assert gemini_schema.properties["multi_type_with_array_nullable"].nullable - - assert ( - gemini_schema.properties["multi_type_with_array_nonnullable"].type - == Type.ARRAY - ) - assert not gemini_schema.properties[ - "multi_type_with_array_nonnullable" - ].nullable - def test_to_gemini_schema_nested_objects(self): openapi_schema = { "type": "object", @@ -159,20 +144,6 @@ def test_to_gemini_schema_nested_array(self): gemini_schema = _to_gemini_schema(openapi_schema) assert gemini_schema.items.properties["name"].type == Type.STRING - def test_to_gemini_schema_array_without_items_gets_default(self): - openapi_schema = {"type": "array"} - gemini_schema = _to_gemini_schema(openapi_schema) - assert gemini_schema.type == Type.ARRAY - assert not gemini_schema.nullable - assert gemini_schema.items.type == Type.STRING - - def test_to_gemini_schema_nullable_array_without_items_gets_default(self): - openapi_schema = {"type": ["array", "null"]} - gemini_schema = _to_gemini_schema(openapi_schema) - assert gemini_schema.type == Type.ARRAY - assert gemini_schema.nullable - assert gemini_schema.items.type == Type.STRING - def test_to_gemini_schema_any_of(self): openapi_schema = { "anyOf": [{"type": "string"}, {"type": "integer"}], @@ -182,6 +153,14 @@ def test_to_gemini_schema_any_of(self): assert gemini_schema.any_of[0].type == Type.STRING assert gemini_schema.any_of[1].type == Type.INTEGER + def test_to_gemini_schema_any_of_nullable(self): + openapi_schema = { + "anyOf": [{"type": "string"}, {"type": "null"}], + } + gemini_schema = _to_gemini_schema(openapi_schema) + assert gemini_schema.type == Type.STRING + assert gemini_schema.nullable + def test_to_gemini_schema_general_list(self): openapi_schema = { "type": "array", From 1ca82068fdeb4125555cf2a1ed684f699d6e757b Mon Sep 17 00:00:00 2001 From: George Weale Date: Mon, 27 Oct 2025 14:57:01 -0700 Subject: [PATCH 195/303] docs: Automatically create `__init__.py` files when writing Python files PiperOrigin-RevId: 824690193 --- .../tools/write_files.py | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/contributing/samples/adk_agent_builder_assistant/tools/write_files.py b/contributing/samples/adk_agent_builder_assistant/tools/write_files.py index 088f8c413c..953a04b2f1 100644 --- a/contributing/samples/adk_agent_builder_assistant/tools/write_files.py +++ b/contributing/samples/adk_agent_builder_assistant/tools/write_files.py @@ -19,6 +19,8 @@ import shutil from typing import Any from typing import Dict +from typing import List +from typing import Optional from google.adk.tools.tool_context import ToolContext @@ -57,6 +59,12 @@ async def write_files( try: # Get session state for path resolution session_state = tool_context._invocation_context.session.state + project_root: Optional[Path] = None + if session_state is not None: + try: + project_root = resolve_file_path(".", session_state).resolve() + except Exception: + project_root = None result = { "success": True, @@ -76,6 +84,7 @@ async def write_files( "backup_created": False, "backup_path": None, "error": None, + "package_inits_created": [], } try: @@ -86,6 +95,11 @@ async def write_files( if create_directories: file_path_obj.parent.mkdir(parents=True, exist_ok=True) + if file_path_obj.suffix == ".py" and project_root is not None: + created_inits = _ensure_package_inits(file_path_obj, project_root) + if created_inits: + file_info["package_inits_created"] = created_inits + # Create backup if requested and file exists if create_backup and file_info["existed_before"]: timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") @@ -130,3 +144,38 @@ async def write_files( "total_files": len(files) if files else 0, "errors": [f"Write operation failed: {str(e)}"], } + + +def _ensure_package_inits( + file_path: Path, + project_root: Path, +) -> List[str]: + """Ensure __init__.py files exist for importable subpackages (not project root).""" + created_inits: List[str] = [] + try: + target_parent = file_path.parent.resolve() + root_path = project_root.resolve() + relative_parent = target_parent.relative_to(root_path) + except Exception: + return created_inits + + def _touch_init(directory: Path) -> None: + init_file = directory / "__init__.py" + if not init_file.exists(): + init_file.touch() + created_inits.append(str(init_file)) + + root_path.mkdir(parents=True, exist_ok=True) + + if not relative_parent.parts: + return created_inits + + current_path = root_path + for part in relative_parent.parts: + if part in (".", ""): + continue + current_path = current_path / part + current_path.mkdir(parents=True, exist_ok=True) + _touch_init(current_path) + + return created_inits From 19f52467dbf776931af5a380224d071966c7d4f7 Mon Sep 17 00:00:00 2001 From: George Weale Date: Mon, 27 Oct 2025 14:57:41 -0700 Subject: [PATCH 196/303] docs: Update ADK agent builder instructions for model callback signatures PiperOrigin-RevId: 824690587 --- .../instruction_embedded.template | 56 ++++++++++++++++--- 1 file changed, 48 insertions(+), 8 deletions(-) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index aba0bf85a1..7651fb08ca 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -16,7 +16,7 @@ When users ask informational questions like "find me examples", "show me samples **NON-NEGOTIABLE**: `root_agent.yaml` MUST always declare `agent_class: LlmAgent`. **NEVER** set `root_agent.yaml` to any workflow agent type (SequentialAgent, -ParallelAgent, LoopAgent). All workflow coordination must stay in sub-agents, not the root file. +ParallelAgent, LoopAgent.) All workflow coordination must stay in sub-agents, not the root file. **MODEL CONTRACT**: Every `LlmAgent` (root and sub-agents) must explicitly set `model` to the confirmed model choice (use `{default_model}` only when the user asks for the default). Never omit this field or rely on a global default. @@ -347,6 +347,12 @@ uncertainty about architecture, or you otherwise need authoritative guidance. 8. **Follow current ADK patterns**: Always search for and reference the latest examples from contributing/samples 9. **Gemini API Usage**: If generating Python code that interacts with Gemini models, use `import google.genai as genai`, not `google.generativeai`. +### ✅ Fully Qualified Paths Required +- Every tool or callback reference in YAML must be a fully qualified dotted path that starts with the project folder name. Use `{project_folder_name}.callbacks.privacy_callbacks.censor_content`, **never** `callbacks.privacy_callbacks.censor_content`. +- Only reference packages that actually exist. Before you emit a dotted path, confirm the directory contains an `__init__.py` so Python can import it. Create `__init__.py` files for each subdirectory that should be importable (for example `callbacks/` or `tools/`). The project root itself does not need an `__init__.py`. +- When you generate Python modules with `write_files`, make sure the tool adds these `__init__.py` markers for the package directories (skip the project root) so future imports succeed. +- If the user already has bare paths like `callbacks.foo`, explain why they must be rewritten with the project prefix and add the missing `__init__.py` files when you generate the Python modules. + ### 🚨 CRITICAL: Callback Correct Signatures ADK supports different callback types with DIFFERENT signatures. Use FUNCTION-based callbacks (never classes): @@ -378,17 +384,49 @@ from google.adk.models.llm_request import LlmRequest from google.adk.models.llm_response import LlmResponse from google.adk.agents.callback_context import CallbackContext -def log_model_request(callback_context: CallbackContext, request: LlmRequest) -> Optional[LlmResponse]: +def log_model_request( + *, callback_context: CallbackContext, llm_request: LlmRequest +) -> Optional[LlmResponse]: """Before model callback to log requests.""" - print(f"Model request: {{request.contents}}") + print(f"Model request: {{llm_request.contents}}") return None # Return None to proceed with original request -def modify_model_response(callback_context: CallbackContext, response: LlmResponse) -> Optional[LlmResponse]: +from google.adk.events.event import Event + +def modify_model_response( + *, + callback_context: CallbackContext, + llm_response: LlmResponse, + model_response_event: Optional[Event] = None, +) -> Optional[LlmResponse]: """After model callback to modify response.""" - # Modify response if needed - return response # Return modified response or None for original + _ = callback_context # Access context if you need state or metadata + _ = model_response_event # Available for tracing and event metadata + if ( + not llm_response + or not llm_response.content + or not llm_response.content.parts + ): + return llm_response + + updated_parts = [] + for part in llm_response.content.parts: + text = getattr(part, "text", None) + if text: + updated_parts.append( + types.Part(text=text.replace("dolphins", "[CENSORED]")) + ) + else: + updated_parts.append(part) + + llm_response.content = types.Content( + parts=updated_parts, role=llm_response.content.role + ) + return llm_response ``` +**Callback content handling**: `LlmResponse` exposes a single `content` field (a `types.Content`). ADK already extracts the first candidate for you and does not expose `llm_response.candidates`. When filtering or rewriting output, check `llm_response.content` and mutate its `parts`. Preserve non-text parts and reassign a new `types.Content` rather than mutating undefined attributes. + ## 3. Tool Callbacks (before_tool_callbacks / after_tool_callbacks) **✅ CORRECT Tool Callback:** @@ -412,11 +450,13 @@ def log_tool_result(tool: BaseTool, tool_args: Dict[str, Any], tool_context: Too ## Callback Signature Summary: - **Agent Callbacks**: `(callback_context: CallbackContext) -> Optional[types.Content]` -- **Before Model**: `(callback_context: CallbackContext, request: LlmRequest) -> Optional[LlmResponse]` -- **After Model**: `(callback_context: CallbackContext, response: LlmResponse) -> Optional[LlmResponse]` +- **Before Model**: `(*, callback_context: CallbackContext, llm_request: LlmRequest) -> Optional[LlmResponse]` +- **After Model**: `(*, callback_context: CallbackContext, llm_response: LlmResponse, model_response_event: Optional[Event] = None) -> Optional[LlmResponse]` - **Before Tool**: `(tool: BaseTool, tool_args: Dict[str, Any], tool_context: ToolContext) -> Optional[Dict]` - **After Tool**: `(tool: BaseTool, tool_args: Dict[str, Any], tool_context: ToolContext, result: Dict) -> Optional[Dict]` +**Name Matching Matters**: ADK passes callback arguments by keyword. Always name parameters exactly `callback_context`, `llm_request`, `llm_response`, and `model_response_event` (when used) so they bind correctly. Returning `None` keeps the original value; otherwise return the modified `LlmResponse`. + ## Important ADK Requirements **File Naming & Structure:** From 0a87e02ffd348b55b4f3605978ba8071cc5283a1 Mon Sep 17 00:00:00 2001 From: George Weale Date: Mon, 27 Oct 2025 15:27:11 -0700 Subject: [PATCH 197/303] fix: Rename agent config files to match the agent name PiperOrigin-RevId: 824702674 --- .../tools/write_config_files.py | 580 +++++++++++++++++- 1 file changed, 560 insertions(+), 20 deletions(-) diff --git a/contributing/samples/adk_agent_builder_assistant/tools/write_config_files.py b/contributing/samples/adk_agent_builder_assistant/tools/write_config_files.py index 8b56dc3439..2ceb1241dd 100644 --- a/contributing/samples/adk_agent_builder_assistant/tools/write_config_files.py +++ b/contributing/samples/adk_agent_builder_assistant/tools/write_config_files.py @@ -14,17 +14,43 @@ """Configuration file writer tool with validation-before-write.""" +from __future__ import annotations + from pathlib import Path +import re from typing import Any from typing import Dict +from typing import List +from typing import Mapping +from typing import Optional +from typing import Sequence +from typing import Tuple from google.adk.tools.tool_context import ToolContext import jsonschema import yaml from ..utils import load_agent_config_schema +from ..utils.resolve_root_directory import resolve_file_path from .write_files import write_files +INVALID_FILENAME_CHARACTERS = frozenset('<>:"/\\|?*') +PARSED_CONFIG_KEY = "_parsed_config" +WORKFLOW_AGENT_CLASSES = frozenset({ + "SequentialAgent", + "ParallelAgent", + "LoopAgent", +}) +IDENTIFIER_PATTERN = re.compile(r"^[A-Za-z_][A-Za-z0-9_]*$") +CALLBACK_FIELD_NAMES = ( + "before_agent_callbacks", + "after_agent_callbacks", + "before_model_callbacks", + "after_model_callbacks", + "before_tool_callbacks", + "after_tool_callbacks", +) + async def write_config_files( configs: Dict[str, str], @@ -40,8 +66,8 @@ async def write_config_files( Args: configs: Dict mapping file_path to config_content (YAML as string) - backup_existing: Whether to create timestamped backup of existing files - before overwriting (default: False - user should be asked) + backup_existing: Whether to create timest amped backup of existing files + before overwriting (default: False, User should decide) create_directories: Whether to create parent directories if they don't exist (default: True) @@ -64,6 +90,9 @@ async def write_config_files( • Missing sub-agent files • Incorrect file extensions (.yaml/.yml) • Mixed tool format consistency + - target_file_path: normalized path used for writing the config + - rename_applied: whether the file name was changed to match agent name + - written_file_path: absolute path that was ultimately written Conditionally included: - backup: dict with backup information (if backup was created). @@ -129,20 +158,108 @@ async def write_config_files( "errors": [], } - validated_configs: Dict[str, str] = {} + validated_config_dicts: Dict[str, Dict[str, Any]] = {} + normalized_path_to_original: Dict[str, str] = {} + canonical_path_to_original: Dict[str, str] = {} + rename_map: Dict[str, str] = {} + + session_state = None + session = getattr(tool_context, "session", None) + if session is not None: + session_state = getattr(session, "state", None) + project_folder_name: Optional[str] = None + if session_state is not None: + try: + project_root = resolve_file_path(".", session_state) + project_folder_name = project_root.name or None + except Exception: + project_folder_name = None # Step 1: Validate all configs before writing any files for file_path, config_content in configs.items(): - file_result = _validate_single_config(file_path, config_content) + file_result = _validate_single_config( + file_path, config_content, project_folder_name + ) result["files"][file_path] = file_result if file_result.get("success", False): - validated_configs[file_path] = config_content + parsed_config = file_result.pop(PARSED_CONFIG_KEY, None) + if parsed_config is None: + file_result["success"] = False + file_result["error_type"] = "INTERNAL_VALIDATION_ERROR" + file_result["error"] = "Failed to parse configuration content." + result["success"] = False + continue + + agent_name = file_result.get("agent_name") + ( + target_path, + rename_applied, + sanitized_name, + rename_warning, + ) = _determine_target_file_path(file_path, agent_name) + + file_result["target_file_path"] = target_path + file_result["rename_applied"] = rename_applied + if rename_warning: + warnings = file_result.get("warnings", []) + warnings.append(rename_warning) + file_result["warnings"] = warnings + + if rename_applied and sanitized_name and sanitized_name != agent_name: + warnings = file_result.get("warnings", []) + warnings.append( + "Agent name normalized for filesystem compatibility:" + f" '{agent_name}' -> '{sanitized_name}'" + ) + file_result["warnings"] = warnings + + normalized_key = target_path + if normalized_key in normalized_path_to_original: + conflict_source = normalized_path_to_original[normalized_key] + file_result["success"] = False + file_result["error_type"] = "FILE_PATH_CONFLICT" + file_result["error"] = ( + "Multiple agent configs target the same file path after" + f" normalization: '{conflict_source}' and '{file_path}'" + ) + result["success"] = False + continue + normalized_path_to_original[normalized_key] = file_path + + canonical_key = _canonical_path_key(normalized_key, session_state) + if canonical_key in canonical_path_to_original: + conflict_source = canonical_path_to_original[canonical_key] + file_result["success"] = False + file_result["error_type"] = "FILE_PATH_CONFLICT" + file_result["error"] = ( + "Multiple agent configs resolve to the same file path after" + f" normalization: '{conflict_source}' and '{file_path}'" + ) + result["success"] = False + continue + canonical_path_to_original[canonical_key] = file_path + + if normalized_key != file_path: + rename_map[file_path] = normalized_key + + validated_config_dicts[normalized_key] = parsed_config else: result["success"] = False - # Step 2: If all validations passed, write all files - if result["success"] and validated_configs: + if result["success"] and validated_config_dicts: + if rename_map: + reference_map = _build_reference_map(rename_map) + for config_dict in validated_config_dicts.values(): + _update_sub_agent_references(config_dict, reference_map) + + validated_configs: Dict[str, str] = {} + for normalized_path, config_dict in validated_config_dicts.items(): + validated_configs[normalized_path] = yaml.safe_dump( + config_dict, + sort_keys=False, + ) + write_result: Dict[str, Any] = await write_files( validated_configs, tool_context, @@ -152,14 +269,18 @@ async def write_config_files( # Merge write results with validation results files_data = write_result.get("files", {}) - for file_path, write_info in files_data.items(): - if file_path in result["files"]: - file_entry = result["files"][file_path] + for written_path, write_info in files_data.items(): + canonical_written_key = _canonical_path_key(written_path, session_state) + original_key = canonical_path_to_original.get(canonical_written_key) + + if original_key and original_key in result["files"]: + file_entry = result["files"][original_key] if isinstance(file_entry, dict): file_entry.update({ "file_size": write_info.get("file_size", 0), "backup_created": write_info.get("backup_created", False), "backup_path": write_info.get("backup_path"), + "written_file_path": written_path, }) if write_info.get("error"): file_entry["success"] = False @@ -171,8 +292,92 @@ async def write_config_files( return result +def _build_reference_map(rename_map: Dict[str, str]) -> Dict[str, str]: + """Build lookup for updating sub-agent config paths after renames.""" + reference_map: Dict[str, str] = {} + for original, target in rename_map.items(): + original_path = Path(original) + target_path = Path(target) + + candidates = { + original: target, + str(original_path): str(target_path), + original_path.as_posix(): target_path.as_posix(), + original_path.name: target_path.name, + } + + # Ensure Windows-style separators are covered when running on POSIX. + candidates.setdefault( + str(original_path).replace("\\", "/"), + str(target_path).replace("\\", "/"), + ) + + for candidate, replacement in candidates.items(): + reference_map[candidate] = replacement + + return reference_map + + +def _update_sub_agent_references( + config_dict: Dict[str, Any], reference_map: Dict[str, str] +) -> None: + """Update sub-agent config_path entries based on rename map.""" + if not reference_map: + return + + sub_agents = config_dict.get("sub_agents") + if not isinstance(sub_agents, list): + return + + for sub_agent in sub_agents: + if not isinstance(sub_agent, dict): + continue + + config_path = sub_agent.get("config_path") + if not isinstance(config_path, str): + continue + + new_path = reference_map.get(config_path) + if new_path is None: + try: + normalized = str(Path(config_path)) + new_path = reference_map.get(normalized) + except (OSError, ValueError): + normalized = None + + if new_path is None and normalized is not None: + new_path = reference_map.get(Path(normalized).as_posix()) + + if new_path is None: + try: + base_name = Path(config_path).name + new_path = reference_map.get(base_name) + except (OSError, ValueError): + new_path = None + + if new_path: + sub_agent["config_path"] = new_path + + +def _canonical_path_key( + path: str, session_state: Optional[Dict[str, Any]] +) -> str: + """Create a canonical absolute path string for consistent lookups.""" + try: + resolved_path = resolve_file_path(path, session_state) + except (OSError, ValueError, RuntimeError): + resolved_path = Path(path) + + try: + return str(resolved_path.resolve()) + except (OSError, RuntimeError): + return str(resolved_path) + + def _validate_single_config( - file_path: str, config_content: str + file_path: str, + config_content: str, + project_folder_name: Optional[str] = None, ) -> Dict[str, Any]: """Validate a single configuration file. @@ -219,7 +424,27 @@ def _validate_single_config( } # Step 3: Additional structural validation + # TODO: b/455645705 - Remove once the frontend performs these validations before calling + # this tool. + name_warning = _normalize_agent_name_field(config_dict, path) structural_validation = _validate_structure(config_dict, path) + warnings = list(structural_validation.get("warnings", [])) + warnings.extend(_strip_workflow_agent_fields(config_dict)) + if name_warning: + warnings.append(name_warning) + name_validation_error = _require_valid_agent_name(config_dict, path) + if name_validation_error is not None: + return name_validation_error + model_validation_error = _require_llm_agent_model(config_dict, path) + if model_validation_error is not None: + return model_validation_error + project_scope_result = _enforce_project_scoped_references( + config_dict, project_folder_name, path + ) + warnings.extend(project_scope_result.get("warnings", [])) + project_scope_error = project_scope_result.get("error") + if project_scope_error is not None: + return project_scope_error # Success response with validation metadata return { @@ -227,7 +452,8 @@ def _validate_single_config( "file_path": str(path), "agent_name": config_dict.get("name", "unknown"), "agent_class": config_dict.get("agent_class", "LlmAgent"), - "warnings": structural_validation.get("warnings", []), + "warnings": warnings, + PARSED_CONFIG_KEY: config_dict, } except Exception as e: @@ -314,13 +540,6 @@ def _validate_structure( """Perform additional structural validation beyond JSON schema.""" warnings = [] - # Check agent name format - name = config.get("name", "") - if name and not name.replace("_", "").replace("-", "").isalnum(): - warnings.append( - "Agent name contains special characters that may cause issues" - ) - # Check for empty instruction instruction = config.get("instruction", "").strip() if config.get("agent_class", "LlmAgent") == "LlmAgent" and not instruction: @@ -362,7 +581,9 @@ def _validate_structure( return {"warnings": warnings, "has_warnings": len(warnings) > 0} -def _generate_retry_suggestion(errors: list) -> str: +def _generate_retry_suggestion( + errors: Sequence[Mapping[str, Any]], +) -> str: """Generate helpful suggestions for fixing validation errors.""" if not errors: return "" @@ -412,3 +633,322 @@ def _generate_retry_suggestion(errors: list) -> str: ) return " | ".join(suggestions[:3]) # Limit to top 3 suggestions + + +def _require_llm_agent_model( + config: Dict[str, Any], file_path: Path +) -> Optional[Dict[str, Any]]: + """Ensure every LlmAgent configuration declares a model.""" + agent_class = config.get("agent_class", "LlmAgent") + if agent_class != "LlmAgent": + return None + + model = config.get("model") + if isinstance(model, str) and model.strip(): + return None + + agent_name = config.get("name", "unknown") + return { + "success": False, + "error_type": "LLM_AGENT_MODEL_REQUIRED", + "error": ( + f"LlmAgent '{agent_name}' in '{file_path}' must define a 'model' " + "field. LlmAgents cannot rely on implicit defaults." + ), + "file_path": str(file_path), + "validation_step": "structure_validation", + "retry_suggestion": ( + "Add a 'model' field with the user-confirmed model " + "(for example, 'model: gemini-2.5-flash')." + ), + } + + +def _require_valid_agent_name( + config: Dict[str, Any], file_path: Path +) -> Optional[Dict[str, Any]]: + """Ensure agent names are valid identifiers.""" + agent_name = config.get("name") + if isinstance(agent_name, str) and IDENTIFIER_PATTERN.match(agent_name): + return None + + return { + "success": False, + "error_type": "INVALID_AGENT_NAME", + "error": ( + f"Found invalid agent name: `{agent_name}` in '{file_path}'. " + "Names must start with a letter or underscore and contain only " + "letters, digits, or underscores." + ), + "file_path": str(file_path), + "validation_step": "structure_validation", + "retry_suggestion": ( + "Rename the agent using only letters, digits, and underscores " + "(e.g., 'Paper_Analyzer')." + ), + } + + +def _normalize_agent_name_field( + config: Dict[str, Any], file_path: Path +) -> Optional[str]: + """Normalize agent name to snake_case and update the config in-place.""" + agent_name = config.get("name") + if not isinstance(agent_name, str): + return None + + sanitized_name, normalization_warning = _sanitize_agent_name_for_filename( + agent_name + ) + if not sanitized_name: + return normalization_warning + + if sanitized_name != agent_name: + config["name"] = sanitized_name + return ( + "Agent name normalized to snake_case in " + f"'{file_path.name}': '{agent_name}' -> '{sanitized_name}'" + ) + + return normalization_warning + + +def _strip_workflow_agent_fields(config: Dict[str, Any]) -> List[str]: + """Remove fields that workflow agents must not define.""" + warnings: List[str] = [] + agent_class = config.get("agent_class") + if agent_class not in WORKFLOW_AGENT_CLASSES: + return warnings + + removed_fields = [] + for field in ("model", "tools", "instruction"): + if field in config: + config.pop(field, None) + removed_fields.append(field) + + if removed_fields: + removed_fields_str = ", ".join(removed_fields) + agent_name = config.get("name", "unknown") + warnings.append( + "Removed " + f"{removed_fields_str}" + f" from workflow agent '{agent_name}'. " + "Workflow agents orchestrate sub-agents and must not define these " + "fields." + ) + + return warnings + + +def _enforce_project_scoped_references( + config: Dict[str, Any], + project_folder_name: Optional[str], + file_path: Path, +) -> Dict[str, Any]: + """Ensure callback/tool references are scoped to the project package.""" + if not project_folder_name: + return {"warnings": [], "error": None} + + prefix = f"{project_folder_name}." + warnings: List[str] = [] + errors: List[str] = [] + + def _normalize_reference_value( + value: str, descriptor: str + ) -> Tuple[str, List[str], List[str]]: + local_warnings: List[str] = [] + local_errors: List[str] = [] + new_value = value + + if not isinstance(value, str) or "." not in value: + return new_value, local_warnings, local_errors + + if value.startswith(prefix): + return new_value, local_warnings, local_errors + + if value.lower().startswith(prefix.lower()): + local_errors.append( + f"{descriptor} '{value}' must use exact-case prefix '{prefix}'." + ) + return new_value, local_warnings, local_errors + + if value.startswith("callbacks.") or value.startswith("tools."): + new_value = prefix + value + local_warnings.append( + f"{descriptor} '{value}' updated to '{new_value}' to include project " + "prefix." + ) + return new_value, local_warnings, local_errors + + if ".callbacks." in value or ".tools." in value: + local_errors.append(f"{descriptor} '{value}' must start with '{prefix}'.") + + return new_value, local_warnings, local_errors + + tools = config.get("tools") + if isinstance(tools, list): + for index, tool in enumerate(tools): + if isinstance(tool, str): + updated, local_warnings, local_errors = _normalize_reference_value( + tool, "Tool reference" + ) + if updated != tool: + tools[index] = updated + warnings.extend(local_warnings) + errors.extend(local_errors) + elif isinstance(tool, dict): + name = tool.get("name") + if isinstance(name, str): + updated, local_warnings, local_errors = _normalize_reference_value( + name, "Tool reference" + ) + if updated != name: + tool["name"] = updated + warnings.extend(local_warnings) + errors.extend(local_errors) + + for field_name in CALLBACK_FIELD_NAMES: + callbacks_field = config.get(field_name) + if not callbacks_field: + continue + + items = ( + callbacks_field + if isinstance(callbacks_field, list) + else [callbacks_field] + ) + + for idx, item in enumerate(items): + if isinstance(item, str): + updated, local_warnings, local_errors = _normalize_reference_value( + item, f"{field_name} entry" + ) + if updated != item: + if isinstance(callbacks_field, list): + callbacks_field[idx] = updated + else: + config[field_name] = updated + warnings.extend(local_warnings) + errors.extend(local_errors) + elif isinstance(item, dict): + name = item.get("name") + if isinstance(name, str): + updated, local_warnings, local_errors = _normalize_reference_value( + name, f"{field_name} entry" + ) + if updated != name: + item["name"] = updated + warnings.extend(local_warnings) + errors.extend(local_errors) + + if errors: + return { + "warnings": warnings, + "error": { + "success": False, + "error_type": "PROJECT_REFERENCE_ERROR", + "error": " | ".join(errors), + "file_path": str(file_path), + "retry_suggestion": ( + "Ensure all callback/tool references start with " + f"'{prefix}' and that referenced directories contain " + "__init__.py files (only for the package directories such as " + "'callbacks/' or 'tools/') so they form importable packages." + ), + }, + } + + return {"warnings": warnings, "error": None} + + +def _determine_target_file_path( + file_path: str, agent_name: Optional[str] +) -> Tuple[str, bool, Optional[str], Optional[str]]: + """Determine desired file path based on agent name.""" + if not agent_name or not agent_name.strip(): + return file_path, False, None, None + + original_path = Path(file_path) + + # Preserve root_agent.yaml naming convention for root workflows. + if original_path.stem == "root_agent": + return file_path, False, None, None + + sanitized_name, sanitize_warning = _sanitize_agent_name_for_filename( + agent_name + ) + if not sanitized_name: + return ( + file_path, + False, + None, + ( + "Agent name could not be converted into a valid file name; original" + " path preserved" + ), + ) + + suffix = original_path.suffix or ".yaml" + target_name = f"{sanitized_name}{suffix}" + target_path = str(original_path.with_name(target_name)) + rename_applied = original_path.name != target_name + + return target_path, rename_applied, sanitized_name, sanitize_warning + + +def _to_snake_case(value: str) -> str: + """Convert arbitrary text to snake_case.""" + value = value.strip() + if not value: + return "" + + value = re.sub(r"[\s\-]+", "_", value) + value = re.sub(r"(.)([A-Z][a-z]+)", r"\1_\2", value) + value = re.sub(r"([a-z0-9])([A-Z])", r"\1_\2", value) + value = re.sub(r"[^A-Za-z0-9_]", "_", value) + value = re.sub(r"_+", "_", value) + return value.lower().strip("_") + + +def _sanitize_agent_name_for_filename( + agent_name: str, +) -> Tuple[str, Optional[str]]: + """Sanitize agent name so it can be safely used as a filename.""" + trimmed_name = agent_name.strip() + if not trimmed_name: + return "", "Agent name is empty after trimming whitespace" + + snake_case = _to_snake_case(trimmed_name) + if not snake_case: + return "", "Agent name is empty after normalization" + + sanitized_chars = [] + replacements_made = snake_case != trimmed_name + + for char in snake_case: + if char in INVALID_FILENAME_CHARACTERS: + sanitized_chars.append("_") + replacements_made = True + elif char.isalnum() or char == "_": + sanitized_chars.append(char) + else: + sanitized_chars.append("_") + replacements_made = True + + sanitized_name = "".join(sanitized_chars) + sanitized_name = re.sub(r"_+", "_", sanitized_name).strip("_") + if not sanitized_name: + return "", "Agent name is empty after removing unsupported characters" + + if sanitized_name[0].isdigit(): + sanitized_name = f"_{sanitized_name}" + replacements_made = True + + warning = None + if replacements_made: + warning = ( + "Agent name normalized to snake_case: " + f"'{agent_name}' -> '{sanitized_name}'" + ) + + return sanitized_name, warning From b7dbfed4a3d4a0165e2c6e51594d1f547bec89d3 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Mon, 27 Oct 2025 15:30:15 -0700 Subject: [PATCH 198/303] feat: Add BigQueryLoggingPlugin for event logging to BigQuery Introduces the `BigQueryLoggingPlugin` for capturing and sending ADK lifecycle events to Google BigQuery. This allows for persistent storage and analysis of agent and tool interactions. The plugin supports asynchronous logging, automatic dataset/table creation, and comprehensive event capture. Also refactors common formatting utilities (_format_content, _format_args) for shared use. PiperOrigin-RevId: 824703739 --- .../adk/plugins/bigquery_logging_plugin.py | 550 ++++++++++++++++++ .../plugins/test_bigquery_logging_plugin.py | 403 +++++++++++++ 2 files changed, 953 insertions(+) create mode 100644 src/google/adk/plugins/bigquery_logging_plugin.py create mode 100644 tests/unittests/plugins/test_bigquery_logging_plugin.py diff --git a/src/google/adk/plugins/bigquery_logging_plugin.py b/src/google/adk/plugins/bigquery_logging_plugin.py new file mode 100644 index 0000000000..9740a745b2 --- /dev/null +++ b/src/google/adk/plugins/bigquery_logging_plugin.py @@ -0,0 +1,550 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from __future__ import annotations + +import asyncio +from datetime import datetime +from datetime import timezone +import json +import logging +import threading +from typing import Any +from typing import Optional +from typing import TYPE_CHECKING + +import google.api_core.client_info +import google.auth +from google.auth import exceptions as auth_exceptions +from google.cloud import bigquery +from google.cloud import exceptions as cloud_exceptions +from google.genai import types + +from .. import version +from ..agents.base_agent import BaseAgent +from ..agents.callback_context import CallbackContext +from ..events.event import Event +from ..models.llm_request import LlmRequest +from ..models.llm_response import LlmResponse +from ..tools.base_tool import BaseTool +from ..tools.tool_context import ToolContext +from .base_plugin import BasePlugin + +if TYPE_CHECKING: + from ..agents.invocation_context import InvocationContext + + +def _get_event_type(event: Event) -> str: + if event.author == "user": + return "USER_INPUT" + if event.get_function_calls(): + return "TOOL_CALL" + if event.get_function_responses(): + return "TOOL_RESULT" + if event.content and event.content.parts: + return "MODEL_RESPONSE" + if event.error_message: + return "ERROR" + return "SYSTEM" # Fallback for other event types + + +def _format_content( + content: Optional[types.Content], max_length: int = 200 +) -> str: + """Format content for logging, truncating if too long.""" + if not content or not content.parts: + return "None" + parts = [] + for part in content.parts: + if part.text: + text = part.text.strip() + if len(text) > max_length: + text = text[:max_length] + "..." + parts.append(f"text: '{text}'") + elif part.function_call: + parts.append(f"function_call: {part.function_call.name}") + elif part.function_response: + parts.append(f"function_response: {part.function_response.name}") + elif part.code_execution_result: + parts.append("code_execution_result") + else: + parts.append("other_part") + return " | ".join(parts) + + +def _format_args(args: dict[str, Any], max_length: int = 300) -> str: + """Format arguments dictionary for logging.""" + if not args: + return "{}" + formatted = str(args) + if len(formatted) > max_length: + formatted = formatted[:max_length] + "...}" + return formatted + + +class BigQueryAgentAnalyticsPlugin(BasePlugin): + """A plugin that logs ADK events to a BigQuery table. + + This plugin captures critical events during an agent invocation and logs them + as structured data to the specified BigQuery table. This allows for + persistent storage, auditing, and analysis of agent interactions. + + The plugin logs the following information at each callback point: + - User messages and invocation context + - Agent execution flow (start and completion) + - LLM requests and responses (including token usage in content) + - Tool calls with arguments and results + - Events yielded by agents + - Errors during model and tool execution + + Each log entry includes a timestamp, event type, agent name, session ID, + invocation ID, user ID, content payload, and any error messages. + """ + + def __init__( + self, + project_id: str, + dataset_id: str = "adk_agent_logs", + table_id: str = "agent_events", + **kwargs, + ): + super().__init__(name=kwargs.get("name", "BigQueryAgentAnalyticsPlugin")) + self._project_id = project_id + self._dataset_id = dataset_id + self._table_id = table_id + self._bq_client: bigquery.Client | None = None + self._client_init_lock = threading.Lock() + self._init_done = False + self._init_succeeded = False + logging.debug( + "DEBUG: BigQueryAgentAnalyticsPlugin INSTANTIATED (Name: %s)", self.name + ) + + def _ensure_initialized_sync(self): + """Synchronous initialization of BQ client and table.""" + with self._client_init_lock: + if self._init_done: + return + self._init_done = True + try: + credentials, _ = google.auth.default( + scopes=["https://www.googleapis.com/auth/bigquery"] + ) + client_info = google.api_core.client_info.ClientInfo( + user_agent=f"google-adk-plugin/{version.__version__}" + ) + self._bq_client = bigquery.Client( + project=self._project_id, + credentials=credentials, + client_info=client_info, + ) + logging.info( + "BigQuery client initialized for project %s", self._project_id + ) + dataset_ref = self._bq_client.dataset(self._dataset_id) + self._bq_client.create_dataset(dataset_ref, exists_ok=True) + logging.info("Dataset %s ensured to exist.", self._dataset_id) + table_ref = dataset_ref.table(self._table_id) + # Schema without separate token columns + schema = [ + bigquery.SchemaField("dataset_id", "STRING"), + bigquery.SchemaField("timestamp", "TIMESTAMP"), + bigquery.SchemaField("event_type", "STRING"), + bigquery.SchemaField("agent", "STRING"), + bigquery.SchemaField("session_id", "STRING"), + bigquery.SchemaField("invocation_id", "STRING"), + bigquery.SchemaField("user_id", "STRING"), + bigquery.SchemaField("content", "STRING"), + bigquery.SchemaField("error_message", "STRING"), + ] + table = bigquery.Table(table_ref, schema=schema) + self._bq_client.create_table(table, exists_ok=True) + logging.info("Table %s ensured to exist.", self._table_id) + self._init_succeeded = True + except ( + auth_exceptions.GoogleAuthError, + cloud_exceptions.GoogleCloudError, + ) as e: + logging.exception( + "Failed to initialize BigQuery client or table: %s", e + ) + self._init_succeeded = False + + async def _log_to_bigquery_async(self, event_dict: dict[str, Any]): + def _sync_log(): + self._ensure_initialized_sync() + if not self._init_succeeded or not self._bq_client: + return + table_ref = self._bq_client.dataset(self._dataset_id).table( + self._table_id + ) + default_row = { + "dataset_id": None, + "timestamp": datetime.now(timezone.utc).isoformat(), + "event_type": None, + "agent": None, + "session_id": None, + "invocation_id": None, + "user_id": None, + "content": None, + "error_message": None, + } + insert_row = {**default_row, **event_dict} + + errors = self._bq_client.insert_rows_json(table_ref, [insert_row]) + if errors: + logging.error( + "Errors occurred while inserting to BigQuery table %s.%s: %s", + self._dataset_id, + self._table_id, + errors, + ) + + try: + await asyncio.to_thread(_sync_log) + except ( + cloud_exceptions.GoogleCloudError, + auth_exceptions.GoogleAuthError, + ) as e: + logging.exception("Failed to log to BigQuery: %s", e) + + async def on_user_message_callback( + self, + *, + invocation_context: InvocationContext, + user_message: types.Content, + ) -> Optional[types.Content]: + """Log user message and invocation start.""" + event_dict = { + "dataset_id": self._dataset_id, + "timestamp": datetime.now(timezone.utc).isoformat(), + "event_type": "USER_MESSAGE_RECEIVED", + "agent": invocation_context.agent.name, + "session_id": invocation_context.session.id, + "invocation_id": invocation_context.invocation_id, + "user_id": invocation_context.session.user_id, + "content": f"User Content: {_format_content(user_message)}", + } + await self._log_to_bigquery_async(event_dict) + return None + + async def before_run_callback( + self, *, invocation_context: InvocationContext + ) -> Optional[types.Content]: + """Log invocation start.""" + event_dict = { + "dataset_id": self._dataset_id, + "timestamp": datetime.now(timezone.utc).isoformat(), + "event_type": "INVOCATION_STARTING", + "agent": invocation_context.agent.name, + "session_id": invocation_context.session.id, + "invocation_id": invocation_context.invocation_id, + "user_id": invocation_context.session.user_id, + } + await self._log_to_bigquery_async(event_dict) + return None + + async def on_event_callback( + self, *, invocation_context: InvocationContext, event: Event + ) -> Optional[Event]: + """Logs event data to BigQuery.""" + event_dict = { + "dataset_id": self._dataset_id, + "timestamp": datetime.fromtimestamp( + event.timestamp, timezone.utc + ).isoformat(), + "event_type": _get_event_type(event), + "agent": event.author, + "session_id": invocation_context.session.id, + "invocation_id": invocation_context.invocation_id, + "user_id": invocation_context.session.user_id, + "content": ( + json.dumps( + [part.model_dump(mode="json") for part in event.content.parts] + ) + if event.content and event.content.parts + else None + ), + "error_message": event.error_message, + } + await self._log_to_bigquery_async(event_dict) + return None + + async def after_run_callback( + self, *, invocation_context: InvocationContext + ) -> Optional[None]: + """Log invocation completion.""" + event_dict = { + "dataset_id": self._dataset_id, + "timestamp": datetime.now(timezone.utc).isoformat(), + "event_type": "INVOCATION_COMPLETED", + "agent": invocation_context.agent.name, + "session_id": invocation_context.session.id, + "invocation_id": invocation_context.invocation_id, + "user_id": invocation_context.session.user_id, + } + await self._log_to_bigquery_async(event_dict) + return None + + async def before_agent_callback( + self, *, agent: BaseAgent, callback_context: CallbackContext + ) -> Optional[types.Content]: + """Log agent execution start.""" + event_dict = { + "dataset_id": self._dataset_id, + "timestamp": datetime.now(timezone.utc).isoformat(), + "event_type": "AGENT_STARTING", + "agent": agent.name, + "session_id": callback_context.session.id, + "invocation_id": callback_context.invocation_id, + "user_id": callback_context.session.user_id, + "content": f"Agent Name: {callback_context.agent_name}", + } + await self._log_to_bigquery_async(event_dict) + return None + + async def after_agent_callback( + self, *, agent: BaseAgent, callback_context: CallbackContext + ) -> Optional[types.Content]: + """Log agent execution completion.""" + event_dict = { + "dataset_id": self._dataset_id, + "timestamp": datetime.now(timezone.utc).isoformat(), + "event_type": "AGENT_COMPLETED", + "agent": agent.name, + "session_id": callback_context.session.id, + "invocation_id": callback_context.invocation_id, + "user_id": callback_context.session.user_id, + "content": f"Agent Name: {callback_context.agent_name}", + } + await self._log_to_bigquery_async(event_dict) + return None + + async def before_model_callback( + self, *, callback_context: CallbackContext, llm_request: LlmRequest + ) -> Optional[LlmResponse]: + """Log LLM request before sending to model, including the full system instruction.""" + + content_parts = [ + f"Model: {llm_request.model or 'default'}", + ] + + # Log Full System Instruction + system_instruction_text = "None" + if llm_request.config and hasattr(llm_request.config, "system_instruction"): + si = llm_request.config.system_instruction + if si: + if isinstance(si, str): + system_instruction_text = si + elif hasattr(si, "__iter__"): # Handles list, tuple, etc. of parts + # Join parts together to form the complete system instruction + system_instruction_text = "".join( + part.text for part in si if hasattr(part, "text") + ) + else: + system_instruction_text = str(si) + else: + system_instruction_text = "Empty" + + content_parts.append(f"System Prompt: {system_instruction_text}") + + # Log Generation Config Parameters + if llm_request.config: + config = llm_request.config + params_to_log = {} + if hasattr(config, "temperature") and config.temperature is not None: + params_to_log["temperature"] = config.temperature + if hasattr(config, "top_p") and config.top_p is not None: + params_to_log["top_p"] = config.top_p + if hasattr(config, "top_k") and config.top_k is not None: + params_to_log["top_k"] = config.top_k + if ( + hasattr(config, "max_output_tokens") + and config.max_output_tokens is not None + ): + params_to_log["max_output_tokens"] = config.max_output_tokens + + if params_to_log: + params_str = ", ".join([f"{k}={v}" for k, v in params_to_log.items()]) + content_parts.append(f"Params: {{{params_str}}}") + + if llm_request.tools_dict: + content_parts.append( + f"Available Tools: {list(llm_request.tools_dict.keys())}" + ) + + final_content = " | ".join(content_parts) + + event_dict = { + "dataset_id": self._dataset_id, + "timestamp": datetime.now(timezone.utc).isoformat(), + "event_type": "LLM_REQUEST", + "agent": callback_context.agent_name, + "session_id": callback_context.session.id, + "invocation_id": callback_context.invocation_id, + "user_id": callback_context.session.user_id, + "content": final_content, + } + await self._log_to_bigquery_async(event_dict) + return None + + async def after_model_callback( + self, *, callback_context: CallbackContext, llm_response: LlmResponse + ) -> Optional[LlmResponse]: + """Log LLM response after receiving from model.""" + content_parts = [] + content = llm_response.content + is_tool_call = False + if content and content.parts: + is_tool_call = any(part.function_call for part in content.parts) + + if is_tool_call: + # Explicitly state Tool Name + fc_names = [] + if content and content.parts: + fc_names = [ + part.function_call.name + for part in content.parts + if part.function_call + ] + content_parts.append(f"Tool Name: {', '.join(fc_names)}") + else: + # This is a text response + text_content = _format_content( + llm_response.content + ) # This returns something like "text: 'The actual message...'" + content_parts.append(f"Tool Name: text_response, {text_content}") + + if llm_response.usage_metadata: + prompt_tokens = getattr( + llm_response.usage_metadata, "prompt_token_count", "N/A" + ) + candidates_tokens = getattr( + llm_response.usage_metadata, "candidates_token_count", "N/A" + ) + total_tokens = getattr( + llm_response.usage_metadata, "total_token_count", "N/A" + ) + token_usage_str = ( + f"Token Usage: {{prompt: {prompt_tokens}, candidates:" + f" {candidates_tokens}, total: {total_tokens}}}" + ) + content_parts.append(token_usage_str) + + final_content = " | ".join(content_parts) + + event_dict = { + "dataset_id": self._dataset_id, + "timestamp": datetime.now(timezone.utc).isoformat(), + "event_type": "LLM_RESPONSE", + "agent": callback_context.agent_name, + "session_id": callback_context.session.id, + "invocation_id": callback_context.invocation_id, + "user_id": callback_context.session.user_id, + "content": final_content, + "error_message": ( + llm_response.error_message if llm_response.error_code else None + ), + } + await self._log_to_bigquery_async(event_dict) + return None + + async def before_tool_callback( + self, + *, + tool: BaseTool, + tool_args: dict[str, Any], + tool_context: ToolContext, + ) -> Optional[None]: + """Log tool execution start.""" + event_dict = { + "dataset_id": self._dataset_id, + "timestamp": datetime.now(timezone.utc).isoformat(), + "event_type": "TOOL_STARTING", + "agent": tool_context.agent_name, + "session_id": tool_context.session.id, + "invocation_id": tool_context.invocation_id, + "user_id": tool_context.session.user_id, + "content": ( + f"Tool Name: {tool.name}, Description: {tool.description}," + f" Arguments: {_format_args(tool_args)}" + ), + } + await self._log_to_bigquery_async(event_dict) + return None + + async def after_tool_callback( + self, + *, + tool: BaseTool, + tool_args: dict[str, Any], + tool_context: ToolContext, + result: dict[str, Any], + ) -> None: + """Log tool execution completion.""" + event_dict = { + "dataset_id": self._dataset_id, + "timestamp": datetime.now(timezone.utc).isoformat(), + "event_type": "TOOL_COMPLETED", + "agent": tool_context.agent_name, + "session_id": tool_context.session.id, + "invocation_id": tool_context.invocation_id, + "user_id": tool_context.session.user_id, + "content": f"Tool Name: {tool.name}, Result: {_format_args(result)}", + } + await self._log_to_bigquery_async(event_dict) + return None + + async def on_model_error_callback( + self, + *, + callback_context: CallbackContext, + llm_request: LlmRequest, + error: Exception, + ) -> Optional[LlmResponse]: + """Log LLM error.""" + event_dict = { + "dataset_id": self._dataset_id, + "timestamp": datetime.now(timezone.utc).isoformat(), + "event_type": "LLM_ERROR", + "agent": callback_context.agent_name, + "session_id": callback_context.session.id, + "invocation_id": callback_context.invocation_id, + "user_id": callback_context.session.user_id, + "error_message": str(error), + } + await self._log_to_bigquery_async(event_dict) + return None + + async def on_tool_error_callback( + self, + *, + tool: BaseTool, + tool_args: dict[str, Any], + tool_context: ToolContext, + error: Exception, + ) -> None: + """Log tool error.""" + event_dict = { + "dataset_id": self._dataset_id, + "timestamp": datetime.now(timezone.utc).isoformat(), + "event_type": "TOOL_ERROR", + "agent": tool_context.agent_name, + "session_id": tool_context.session.id, + "invocation_id": tool_context.invocation_id, + "user_id": tool_context.session.user_id, + "content": f"Tool Name: {tool.name}", + "error_message": str(error), + } + await self._log_to_bigquery_async(event_dict) + return None diff --git a/tests/unittests/plugins/test_bigquery_logging_plugin.py b/tests/unittests/plugins/test_bigquery_logging_plugin.py new file mode 100644 index 0000000000..557eb17689 --- /dev/null +++ b/tests/unittests/plugins/test_bigquery_logging_plugin.py @@ -0,0 +1,403 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +import asyncio +import datetime +import json +import logging +from unittest import mock + +from google.adk.agents import base_agent +from google.adk.agents import callback_context as callback_context_lib +from google.adk.agents import invocation_context as invocation_context_lib +from google.adk.events import event as event_lib +from google.adk.models import llm_request as llm_request_lib +from google.adk.models import llm_response as llm_response_lib +from google.adk.plugins import bigquery_logging_plugin +from google.adk.plugins import plugin_manager as plugin_manager_lib +from google.adk.sessions import base_session_service as base_session_service_lib +from google.adk.sessions import session as session_lib +from google.adk.tools import base_tool as base_tool_lib +from google.adk.tools import tool_context as tool_context_lib +import google.auth +from google.auth import exceptions as auth_exceptions +from google.cloud import bigquery +from google.genai import types +import pytest + + +class PluginTestBase: + """Base class for plugin tests with common context setup.""" + + def setup_method(self, method): + self.mock_session = mock.create_autospec(session_lib.Session, instance=True) + self.mock_session.id = "session-123" + self.mock_session.user_id = "user-456" + self.mock_session.app_name = "test_app" + self.mock_session.state = {} + self.mock_agent = mock.create_autospec(base_agent.BaseAgent, instance=True) + self.mock_agent.name = "MyTestAgent" + mock_session_service = mock.create_autospec( + base_session_service_lib.BaseSessionService, instance=True + ) + mock_plugin_manager = mock.create_autospec( + plugin_manager_lib.PluginManager, instance=True + ) + self.invocation_context = invocation_context_lib.InvocationContext( + agent=self.mock_agent, + session=self.mock_session, + invocation_id="inv-789", + session_service=mock_session_service, + plugin_manager=mock_plugin_manager, + ) + self.callback_context = callback_context_lib.CallbackContext( + invocation_context=self.invocation_context + ) + self.tool_context = tool_context_lib.ToolContext( + invocation_context=self.invocation_context + ) + + def teardown_method(self, method): + mock.patch.stopall() + + +class TestBigQueryAgentAnalyticsPlugin(PluginTestBase): + """Tests for the BigQueryAgentAnalyticsPlugin.""" + + def setup_method(self, method): + super().setup_method(method) + self.project_id = "test-gcp-project" + self.dataset_id = "adk_logs" + self.table_id = "agent_events" + + # Mock Google Auth default credentials + self._auth_patch = mock.patch.object(google.auth, "default", autospec=True) + self.mock_auth_default = self._auth_patch.start() + self.mock_auth_default.return_value = (mock.Mock(), self.project_id) + + # Mock BigQuery Client class + self._bq_client_patch = mock.patch.object(bigquery, "Client", autospec=True) + self.mock_bq_client_cls = self._bq_client_patch.start() + self.mock_bq_client = self.mock_bq_client_cls.return_value + self.mock_bq_client.create_dataset.return_value = None + self.mock_bq_client.create_table.return_value = None + self.mock_bq_client.insert_rows_json.return_value = [] # No errors + self.mock_table_ref = mock.Mock() + self.mock_table_ref.dataset_id = self.dataset_id + self.mock_table_ref.table_id = self.table_id + self.mock_dataset_ref = mock.Mock() + self.mock_dataset_ref.table.return_value = self.mock_table_ref + self.mock_bq_client.dataset.return_value = self.mock_dataset_ref + + # Patch asyncio.to_thread to run the function synchronously + self._asyncio_to_thread_patch = mock.patch( + "asyncio.to_thread", + side_effect=lambda func, *args, **kwargs: func(*args, **kwargs), + ) + self._asyncio_to_thread_patch.start() + + self.plugin = bigquery_logging_plugin.BigQueryAgentAnalyticsPlugin( + project_id=self.project_id, + dataset_id=self.dataset_id, + table_id=self.table_id, + ) + # Trigger lazy initialization by calling an async method once. + asyncio.run(self.plugin._log_to_bigquery_async({"event_type": "INIT"})) + self.mock_bq_client.insert_rows_json.reset_mock() + + def _get_logged_entry(self): + """Helper to get the single logged entry from the mocked client.""" + self.mock_bq_client.insert_rows_json.assert_called_once() + args, _ = self.mock_bq_client.insert_rows_json.call_args + rows = args[1] + assert len(rows) == 1 + return rows[0] + + def _assert_common_fields(self, log_entry, event_type): + assert log_entry["dataset_id"] == self.dataset_id + assert log_entry["event_type"] == event_type + assert log_entry["agent"] == "MyTestAgent" + assert log_entry["session_id"] == "session-123" + assert log_entry["invocation_id"] == "inv-789" + assert log_entry["user_id"] == "user-456" + assert log_entry["timestamp"] is not None + + @pytest.mark.asyncio + async def test_on_user_message_callback_logs_correctly(self): + user_message = types.Content(parts=[types.Part(text="What is up?")]) + await self.plugin.on_user_message_callback( + invocation_context=self.invocation_context, user_message=user_message + ) + + log_entry = self._get_logged_entry() + self._assert_common_fields(log_entry, "USER_MESSAGE_RECEIVED") + assert log_entry["content"] == "User Content: text: 'What is up?'" + + @pytest.mark.asyncio + async def test_on_event_callback_tool_call(self): + tool_fc = types.FunctionCall(name="get_weather", args={"location": "Paris"}) + event = event_lib.Event( + author="MyTestAgent", + content=types.Content(parts=[types.Part(function_call=tool_fc)]), + timestamp=datetime.datetime( + 2025, 10, 22, 10, 0, 0, tzinfo=datetime.timezone.utc + ).timestamp(), + ) + await self.plugin.on_event_callback( + invocation_context=self.invocation_context, event=event + ) + + log_entry = self._get_logged_entry() + self._assert_common_fields(log_entry, "TOOL_CALL") + logged_content = json.loads(log_entry["content"]) + assert logged_content[0]["function_call"]["args"] == {"location": "Paris"} + assert logged_content[0]["function_call"]["name"] == "get_weather" + assert log_entry["timestamp"] == "2025-10-22T10:00:00+00:00" + + @pytest.mark.asyncio + async def test_on_event_callback_model_response(self): + event = event_lib.Event( + author="MyTestAgent", + content=types.Content(parts=[types.Part(text="Hello there!")]), + timestamp=datetime.datetime( + 2025, 10, 22, 11, 0, 0, tzinfo=datetime.timezone.utc + ).timestamp(), + ) + await self.plugin.on_event_callback( + invocation_context=self.invocation_context, event=event + ) + + log_entry = self._get_logged_entry() + self._assert_common_fields(log_entry, "MODEL_RESPONSE") + logged_content = json.loads(log_entry["content"]) + assert logged_content[0]["text"] == "Hello there!" + assert log_entry["timestamp"] == "2025-10-22T11:00:00+00:00" + + @pytest.mark.asyncio + async def test_bigquery_client_initialization_failure(self): + # Simulate auth failure + self.mock_auth_default.side_effect = auth_exceptions.GoogleAuthError( + "Auth failed" + ) + self.mock_bq_client.insert_rows_json.reset_mock() + + # Re-instantiate the plugin so init is re-attempted + plugin_with_fail = bigquery_logging_plugin.BigQueryAgentAnalyticsPlugin( + project_id=self.project_id, + dataset_id=self.dataset_id, + table_id=self.table_id, + ) + + # Trigger a callback; initialization happens lazily + with mock.patch.object(logging, "exception") as mock_log_exception: + await plugin_with_fail.before_run_callback( + invocation_context=self.invocation_context + ) + mock_log_exception.assert_called_once() + + # Ensure insert_rows_json was never called because init failed + self.mock_bq_client.insert_rows_json.assert_not_called() + + @pytest.mark.asyncio + async def test_bigquery_insert_error_does_not_raise(self): + # Simulate an insert error in the future result + self.mock_bq_client.insert_rows_json.return_value = [{"errors": ["error"]}] + + with mock.patch.object(logging, "error") as mock_log_error: + await self.plugin.on_user_message_callback( + invocation_context=self.invocation_context, + user_message=types.Content(parts=[types.Part(text="Test")]), + ) + # The plugin should handle the error internally without raising + mock_log_error.assert_called_with( + "Errors occurred while inserting to BigQuery table %s.%s: %s", + self.dataset_id, + self.table_id, + [{"errors": ["error"]}], + ) + + self.mock_bq_client.insert_rows_json.assert_called_once() + + @pytest.mark.asyncio + async def test_before_run_callback_logs_correctly(self): + await self.plugin.before_run_callback( + invocation_context=self.invocation_context + ) + log_entry = self._get_logged_entry() + self._assert_common_fields(log_entry, "INVOCATION_STARTING") + assert log_entry["content"] is None + + @pytest.mark.asyncio + async def test_after_run_callback_logs_correctly(self): + await self.plugin.after_run_callback( + invocation_context=self.invocation_context + ) + log_entry = self._get_logged_entry() + self._assert_common_fields(log_entry, "INVOCATION_COMPLETED") + assert log_entry["content"] is None + + @pytest.mark.asyncio + async def test_before_agent_callback_logs_correctly(self): + await self.plugin.before_agent_callback( + agent=self.mock_agent, callback_context=self.callback_context + ) + log_entry = self._get_logged_entry() + self._assert_common_fields(log_entry, "AGENT_STARTING") + assert log_entry["content"] == "Agent Name: MyTestAgent" + + @pytest.mark.asyncio + async def test_after_agent_callback_logs_correctly(self): + await self.plugin.after_agent_callback( + agent=self.mock_agent, callback_context=self.callback_context + ) + log_entry = self._get_logged_entry() + self._assert_common_fields(log_entry, "AGENT_COMPLETED") + assert log_entry["content"] == "Agent Name: MyTestAgent" + + @pytest.mark.asyncio + async def test_before_model_callback_logs_correctly(self): + llm_request = llm_request_lib.LlmRequest( + model="gemini-pro", + contents=[types.Content(parts=[types.Part(text="Prompt")])], + config=types.GenerateContentConfig( + temperature=0.5, + top_p=0.9, + max_output_tokens=100, + system_instruction="Be helpful", + ), + tools_dict={ + "my_tool": mock.create_autospec( + base_tool_lib.BaseTool, instance=True + ) + }, # Fixed mock + ) + + await self.plugin.before_model_callback( + callback_context=self.callback_context, llm_request=llm_request + ) + log_entry = self._get_logged_entry() + self._assert_common_fields(log_entry, "LLM_REQUEST") + assert "Model: gemini-pro" in log_entry["content"] + assert "System Prompt: Be helpful" in log_entry["content"] + assert ( + "Params: {temperature=0.5, top_p=0.9, max_output_tokens=100}" + in log_entry["content"] + ) + assert "Available Tools: ['my_tool']" in log_entry["content"] + + @pytest.mark.asyncio + async def test_after_model_callback_text_response(self): + llm_response = llm_response_lib.LlmResponse( + content=types.Content(parts=[types.Part(text="Model response")]), + usage_metadata=types.UsageMetadata( + prompt_token_count=10, + total_token_count=15, + ), + ) + await self.plugin.after_model_callback( + callback_context=self.callback_context, llm_response=llm_response + ) + log_entry = self._get_logged_entry() + self._assert_common_fields(log_entry, "LLM_RESPONSE") + assert ( + "Tool Name: text_response, text: 'Model response'" + in log_entry["content"] + ) + # Adjusted assertion to expect None for candidates + assert "Token Usage: {prompt: 10" in log_entry["content"] + assert log_entry["error_message"] is None + + @pytest.mark.asyncio + async def test_after_model_callback_tool_call(self): + llm_response = llm_response_lib.LlmResponse( + content=types.Content( + parts=[ + types.Part( + function_call=types.FunctionCall(name="tool1", args={}) + ) + ] + ), + ) + await self.plugin.after_model_callback( + callback_context=self.callback_context, llm_response=llm_response + ) + log_entry = self._get_logged_entry() + self._assert_common_fields(log_entry, "LLM_RESPONSE") + assert "Tool Name: tool1" in log_entry["content"] + + @pytest.mark.asyncio + async def test_before_tool_callback_logs_correctly(self): + mock_tool = mock.create_autospec(base_tool_lib.BaseTool, instance=True) + mock_tool.name = "MyTool" + mock_tool.description = "Does something" + tool_args = {"param": "value"} + await self.plugin.before_tool_callback( + tool=mock_tool, tool_args=tool_args, tool_context=self.tool_context + ) + log_entry = self._get_logged_entry() + self._assert_common_fields(log_entry, "TOOL_STARTING") + assert "Tool Name: MyTool" in log_entry["content"] + assert "Description: Does something" in log_entry["content"] + assert "Arguments: {'param': 'value'}" in log_entry["content"] + + @pytest.mark.asyncio + async def test_after_tool_callback_logs_correctly(self): + mock_tool = mock.create_autospec(base_tool_lib.BaseTool, instance=True) + mock_tool.name = "MyTool" + tool_args = {"param": "value"} + result = {"status": "success"} + await self.plugin.after_tool_callback( + tool=mock_tool, + tool_args=tool_args, + tool_context=self.tool_context, + result=result, + ) + log_entry = self._get_logged_entry() + self._assert_common_fields(log_entry, "TOOL_COMPLETED") + assert "Tool Name: MyTool" in log_entry["content"] + assert "Result: {'status': 'success'}" in log_entry["content"] + + @pytest.mark.asyncio + async def test_on_model_error_callback_logs_correctly(self): + llm_request = mock.create_autospec( + llm_request_lib.LlmRequest, instance=True + ) + error = ValueError("LLM failed") + await self.plugin.on_model_error_callback( + callback_context=self.callback_context, + llm_request=llm_request, + error=error, + ) + log_entry = self._get_logged_entry() + self._assert_common_fields(log_entry, "LLM_ERROR") + assert log_entry["content"] is None + assert log_entry["error_message"] == "LLM failed" + + @pytest.mark.asyncio + async def test_on_tool_error_callback_logs_correctly(self): + mock_tool = mock.create_autospec(base_tool_lib.BaseTool, instance=True) + mock_tool.name = "MyTool" + error = TimeoutError("Tool timed out") + await self.plugin.on_tool_error_callback( + tool=mock_tool, + tool_args={"param": "value"}, + tool_context=self.tool_context, + error=error, + ) + log_entry = self._get_logged_entry() + self._assert_common_fields(log_entry, "TOOL_ERROR") + assert log_entry["content"] == "Tool Name: MyTool" + assert log_entry["error_message"] == "Tool timed out" From 00d147d62fc9b3a2797da343d33dcd6dacd07635 Mon Sep 17 00:00:00 2001 From: Ankur Sharma Date: Mon, 27 Oct 2025 15:44:44 -0700 Subject: [PATCH 199/303] fix: check if eval config file exists PiperOrigin-RevId: 824709118 --- src/google/adk/evaluation/eval_config.py | 7 +++++-- tests/unittests/evaluation/test_eval_config.py | 10 ++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/google/adk/evaluation/eval_config.py b/src/google/adk/evaluation/eval_config.py index 8302bb9134..d5b94af5e1 100644 --- a/src/google/adk/evaluation/eval_config.py +++ b/src/google/adk/evaluation/eval_config.py @@ -15,6 +15,7 @@ from __future__ import annotations import logging +import os from typing import Optional from typing import Union @@ -89,12 +90,14 @@ def get_evaluation_criteria_or_default( Otherwise a default one is returned. """ - if eval_config_file_path: + if eval_config_file_path and os.path.exists(eval_config_file_path): with open(eval_config_file_path, "r", encoding="utf-8") as f: content = f.read() return EvalConfig.model_validate_json(content) - logger.info("No config file supplied. Using default criteria.") + logger.info( + "No config file supplied or file not found. Using default criteria." + ) return _DEFAULT_EVAL_CONFIG diff --git a/tests/unittests/evaluation/test_eval_config.py b/tests/unittests/evaluation/test_eval_config.py index a46b9dfcb0..a1f9c8af0a 100644 --- a/tests/unittests/evaluation/test_eval_config.py +++ b/tests/unittests/evaluation/test_eval_config.py @@ -27,6 +27,7 @@ def test_get_evaluation_criteria_or_default_returns_default(): def test_get_evaluation_criteria_or_default_reads_from_file(mocker): + mocker.patch("os.path.exists", return_value=True) eval_config = EvalConfig( criteria={"tool_trajectory_avg_score": 0.5, "response_match_score": 0.5} ) @@ -36,6 +37,15 @@ def test_get_evaluation_criteria_or_default_reads_from_file(mocker): assert get_evaluation_criteria_or_default("dummy_path") == eval_config +def test_get_evaluation_criteria_or_default_returns_default_if_file_not_found( + mocker, +): + mocker.patch("os.path.exists", return_value=False) + assert ( + get_evaluation_criteria_or_default("dummy_path") == _DEFAULT_EVAL_CONFIG + ) + + def test_get_eval_metrics_from_config(): rubric_1 = Rubric( rubric_id="test-rubric", From 87dcb3f7ba344a2ba7d9edfc4817c9e792d90bfc Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Mon, 27 Oct 2025 15:53:02 -0700 Subject: [PATCH 200/303] feat: Add ApigeeLlm as a model that let's ADK Agent developers to connect with an Apigee proxy PiperOrigin-RevId: 824712152 --- .../samples/hello_world_apigeellm/.env-sample | 8 + .../samples/hello_world_apigeellm/README.md | 84 ++++ .../samples/hello_world_apigeellm/agent.py | 108 +++++ .../samples/hello_world_apigeellm/main.py | 112 +++++ src/google/adk/models/__init__.py | 2 + src/google/adk/models/apigee_llm.py | 232 ++++++++++ tests/unittests/models/test_apigee_llm.py | 414 ++++++++++++++++++ 7 files changed, 960 insertions(+) create mode 100644 contributing/samples/hello_world_apigeellm/.env-sample create mode 100644 contributing/samples/hello_world_apigeellm/README.md create mode 100644 contributing/samples/hello_world_apigeellm/agent.py create mode 100644 contributing/samples/hello_world_apigeellm/main.py create mode 100644 src/google/adk/models/apigee_llm.py create mode 100644 tests/unittests/models/test_apigee_llm.py diff --git a/contributing/samples/hello_world_apigeellm/.env-sample b/contributing/samples/hello_world_apigeellm/.env-sample new file mode 100644 index 0000000000..eeef7fad5a --- /dev/null +++ b/contributing/samples/hello_world_apigeellm/.env-sample @@ -0,0 +1,8 @@ +# This is a sample .env file. +# Copy this file to .env and replace the placeholder values with your actual credentials. + +# Your Google API key for accessing Gemini models. +GOOGLE_API_KEY="your-google-api-key" + +# The URL of your Apigee proxy. +APIGEE_PROXY_URL="https://your-apigee-proxy.net/basepath" diff --git a/contributing/samples/hello_world_apigeellm/README.md b/contributing/samples/hello_world_apigeellm/README.md new file mode 100644 index 0000000000..41cfa50aaf --- /dev/null +++ b/contributing/samples/hello_world_apigeellm/README.md @@ -0,0 +1,84 @@ +# Hello World with Apigee LLM + +This sample demonstrates how to use the Agent Development Kit (ADK) with an LLM fronted by an Apigee proxy. It showcases the flexibility of the `ApigeeLlm` class in configuring the target LLM provider (Gemini or Vertex AI) and API version through the model string. + +## Setup + +Before running the sample, you need to configure your environment with the necessary credentials. + +1. **Create a `.env` file:** + Copy the sample environment file to a new file named `.env` in the same directory. + ```bash + cp .env-sample .env + ``` + +2. **Set Environment Variables:** + Open the `.env` file and provide values for the following variables: + + - `GOOGLE_API_KEY`: Your API key for the Google AI services (Gemini). + - `APIGEE_PROXY_URL`: The full URL of your Apigee proxy endpoint. + + Example `.env` file: + ``` + GOOGLE_API_KEY="your-google-api-key" + APIGEE_PROXY_URL="https://your-apigee-proxy.net/basepath" + ``` + + The `main.py` script will automatically load these variables when it runs. + +## Run the Sample + +Once your `.env` file is configured, you can run the sample with the following command: + +```bash +python main.py +``` + +## Configuring the Apigee LLM + +The `ApigeeLlm` class is configured using a special model string format in `agent.py`. This string determines which backend provider (Vertex AI or Gemini) and which API version to use. + +### Model String Format + +The supported format is: + +`apigee/[/][/]` + +- **`provider`** (optional): Can be `vertex_ai` or `gemini`. + - If specified, it forces the use of that provider. + - If omitted, the provider is determined by the `GOOGLE_GENAI_USE_VERTEXAI` environment variable. If this variable is set to `true` or `1`, Vertex AI is used; otherwise, `gemini` is used by default. + +- **`version`** (optional): The API version to use (e.g., `v1`, `v1beta`). + - If omitted, the default version for the selected provider is used. + +- **`model_id`** (required): The identifier for the model you want to use (e.g., `gemini-2.5-flash`). + +### Configuration Examples + +Here are some examples of how to configure the model string in `agent.py` to achieve different behaviors: + +1. **Implicit Provider (determined by environment variable):** + + - `model="apigee/gemini-2.5-flash"` + - Uses the default API version. + - Provider is Vertex AI if `GOOGLE_GENAI_USE_VERTEXAI` is true, otherwise Gemini. + + - `model="apigee/v1/gemini-2.5-flash"` + - Uses API version `v1`. + - Provider is determined by the environment variable. + +2. **Explicit Provider (ignores environment variable):** + + - `model="apigee/vertex_ai/gemini-2.5-flash"` + - Uses Vertex AI with the default API version. + + - `model="apigee/gemini/gemini-2.5-flash"` + - Uses Gemini with the default API version. + + - `model="apigee/gemini/v1/gemini-2.5-flash"` + - Uses Gemini with API version `v1`. + + - `model="apigee/vertex_ai/v1beta/gemini-2.5-flash"` + - Uses Vertex AI with API version `v1beta`. + +By modifying the `model` string in `agent.py`, you can test various configurations without changing the core logic of the agent. diff --git a/contributing/samples/hello_world_apigeellm/agent.py b/contributing/samples/hello_world_apigeellm/agent.py new file mode 100644 index 0000000000..21bf0936b9 --- /dev/null +++ b/contributing/samples/hello_world_apigeellm/agent.py @@ -0,0 +1,108 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random + +from google.adk import Agent +from google.adk.tools.tool_context import ToolContext +from google.genai import types + + +def roll_die(sides: int, tool_context: ToolContext) -> int: + """Roll a die and return the rolled result. + + Args: + sides: The integer number of sides the die has. + + Returns: + An integer of the result of rolling the die. + """ + result = random.randint(1, sides) + if "rolls" not in tool_context.state: + tool_context.state["rolls"] = [] + + tool_context.state["rolls"] = tool_context.state["rolls"] + [result] + return result + + +async def check_prime(nums: list[int]) -> str: + """Check if a given list of numbers are prime. + + Args: + nums: The list of numbers to check. + + Returns: + A str indicating which number is prime. + """ + primes = set() + for number in nums: + number = int(number) + if number <= 1: + continue + is_prime = True + for i in range(2, int(number**0.5) + 1): + if number % i == 0: + is_prime = False + break + if is_prime: + primes.add(number) + return ( + "No prime numbers found." + if not primes + else f"{', '.join(str(num) for num in primes)} are prime numbers." + ) + + +root_agent = Agent( + model="apigee/gemini-2.5-flash", + name="hello_world_agent", + description=( + "hello world agent that can roll a dice of 8 sides and check prime" + " numbers." + ), + instruction=""" + You roll dice and answer questions about the outcome of the dice rolls. + You can roll dice of different sizes. + You can use multiple tools in parallel by calling functions in parallel(in one request and in one round). + It is ok to discuss previous dice roles, and comment on the dice rolls. + When you are asked to roll a die, you must call the roll_die tool with the number of sides. Be sure to pass in an integer. Do not pass in a string. + You should never roll a die on your own. + When checking prime numbers, call the check_prime tool with a list of integers. Be sure to pass in a list of integers. You should never pass in a string. + You should not check prime numbers before calling the tool. + When you are asked to roll a die and check prime numbers, you should always make the following two function calls: + 1. You should first call the roll_die tool to get a roll. Wait for the function response before calling the check_prime tool. + 2. After you get the function response from roll_die tool, you should call the check_prime tool with the roll_die result. + 2.1 If user asks you to check primes based on previous rolls, make sure you include the previous rolls in the list. + 3. When you respond, you must include the roll_die result from step 1. + You should always perform the previous 3 steps when asking for a roll and checking prime numbers. + You should not rely on the previous history on prime results. + """, + tools=[ + roll_die, + check_prime, + ], + # planner=BuiltInPlanner( + # thinking_config=types.ThinkingConfig( + # include_thoughts=True, + # ), + # ), + generate_content_config=types.GenerateContentConfig( + safety_settings=[ + types.SafetySetting( # avoid false alarm about rolling dice. + category=types.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT, + threshold=types.HarmBlockThreshold.OFF, + ), + ] + ), +) diff --git a/contributing/samples/hello_world_apigeellm/main.py b/contributing/samples/hello_world_apigeellm/main.py new file mode 100644 index 0000000000..1e81097ddc --- /dev/null +++ b/contributing/samples/hello_world_apigeellm/main.py @@ -0,0 +1,112 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import asyncio +import os +import time + +import agent +from dotenv import load_dotenv +from google.adk.agents.run_config import RunConfig +from google.adk.cli.utils import logs +from google.adk.runners import InMemoryRunner +from google.adk.sessions.session import Session +from google.genai import types + +load_dotenv(override=True) +logs.log_to_tmp_folder() + + +async def main(): + app_name = "my_app" + user_id_1 = "user1" + runner = InMemoryRunner( + agent=agent.root_agent, + app_name=app_name, + ) + session_11 = await runner.session_service.create_session( + app_name=app_name, user_id=user_id_1 + ) + + async def run_prompt(session: Session, new_message: str): + content = types.Content( + role="user", parts=[types.Part.from_text(text=new_message)] + ) + print("** User says:", content.model_dump(exclude_none=True)) + async for event in runner.run_async( + user_id=user_id_1, + session_id=session.id, + new_message=content, + ): + if event.content.parts and event.content.parts[0].text: + print(f"** {event.author}: {event.content.parts[0].text}") + + async def run_prompt_bytes(session: Session, new_message: str): + content = types.Content( + role="user", + parts=[ + types.Part.from_bytes( + data=str.encode(new_message), mime_type="text/plain" + ) + ], + ) + print("** User says:", content.model_dump(exclude_none=True)) + async for event in runner.run_async( + user_id=user_id_1, + session_id=session.id, + new_message=content, + run_config=RunConfig(save_input_blobs_as_artifacts=True), + ): + if event.content.parts and event.content.parts[0].text: + print(f"** {event.author}: {event.content.parts[0].text}") + + async def check_rolls_in_state(rolls_size: int): + session = await runner.session_service.get_session( + app_name=app_name, user_id=user_id_1, session_id=session_11.id + ) + assert len(session.state["rolls"]) == rolls_size + for roll in session.state["rolls"]: + assert roll > 0 and roll <= 100 + + start_time = time.time() + print("Start time:", start_time) + print("------------------------------------") + await run_prompt(session_11, "Hi") + await run_prompt(session_11, "Roll a die with 100 sides") + await check_rolls_in_state(1) + await run_prompt(session_11, "Roll a die again with 100 sides.") + await check_rolls_in_state(2) + await run_prompt(session_11, "What numbers did I got?") + await run_prompt_bytes(session_11, "Hi bytes") + print( + await runner.artifact_service.list_artifact_keys( + app_name=app_name, user_id=user_id_1, session_id=session_11.id + ) + ) + end_time = time.time() + print("------------------------------------") + print("End time:", end_time) + print("Total time:", end_time - start_time) + + +if __name__ == "__main__": + # The API key can be set in a .env file. + # For example, create a .env file with the following content: + # GOOGLE_API_KEY="your-api-key" + # APIGEE_PROXY_URL="your-proxy-url" + if not os.getenv("GOOGLE_API_KEY"): + raise ValueError("GOOGLE_API_KEY environment variable is not set.") + if not os.getenv("APIGEE_PROXY_URL"): + raise ValueError("APIGEE_PROXY_URL environment variable is not set.") + asyncio.run(main()) diff --git a/src/google/adk/models/__init__.py b/src/google/adk/models/__init__.py index c08570a96c..9f3c2a2c48 100644 --- a/src/google/adk/models/__init__.py +++ b/src/google/adk/models/__init__.py @@ -14,6 +14,7 @@ """Defines the interface to support a model.""" +from .apigee_llm import ApigeeLlm from .base_llm import BaseLlm from .gemma_llm import Gemma from .google_llm import Gemini @@ -31,3 +32,4 @@ LLMRegistry.register(Gemini) LLMRegistry.register(Gemma) +LLMRegistry.register(ApigeeLlm) diff --git a/src/google/adk/models/apigee_llm.py b/src/google/adk/models/apigee_llm.py new file mode 100644 index 0000000000..c93e5fe2a9 --- /dev/null +++ b/src/google/adk/models/apigee_llm.py @@ -0,0 +1,232 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from __future__ import annotations + +from functools import cached_property +import logging +import os +import re +from typing import Optional +from typing import TYPE_CHECKING + +from google.adk import version as adk_version +from google.genai import Client +from google.genai import types +from typing_extensions import override + +from .google_llm import Gemini + +if TYPE_CHECKING: + from .llm_request import LlmRequest + +logger = logging.getLogger('google_adk.' + __name__) + +_APIGEE_PROXY_URL_ENV_VARIABLE_NAME = 'APIGEE_PROXY_URL' +_GOOGLE_GENAI_USE_VERTEXAI_ENV_VARIABLE_NAME = 'GOOGLE_GENAI_USE_VERTEXAI' + + +class ApigeeLlm(Gemini): + """A BaseLlm implementation for calling Apigee proxy. + + Attributes: + model: The name of the Gemini model. + """ + + def __init__( + self, + *, + model: str, + proxy_url: str | None = None, + custom_headers: dict[str, str] | None = None, + retry_options: Optional[types.HttpRetryOptions] = None, + ): + """Initializes the Apigee LLM backend. + + Args: + model: The model string specifies the LLM provider (e.g., Vertex AI, + Gemini), API version, and the model ID. Supported format: + `apigee/[/][/]` + + Components + `provider` (optional): `vertex_ai` or `gemini`. If omitted, behavior + depends on the `GOOGLE_GENAI_USE_VERTEXAI` environment variable. If + that is not set to TRUE or 1, it defaults to `gemini`. `provider` + takes precedence over `GOOGLE_GENAI_USE_VERTEXAI`. + `version` (optional): The API version (e.g., `v1`, `v1beta`). If + omitted, the default version for the provider is used. + `model_id` (required): The model identifier (e.g., + `gemini-2.5-flash`). + + Examples + - `apigee/gemini-2.5-flash` + - `apigee/v1/gemini-2.5-flash` + - `apigee/vertex_ai/gemini-2.5-flash` + - `apigee/gemini/v1/gemini-2.5-flash` + - `apigee/vertex_ai/v1beta/gemini-2.5-flash` + + proxy_url: The URL of the Apigee proxy. + custom_headers: A dictionary of headers to be sent with the request. + retry_options: Allow google-genai to retry failed responses. + """ + + super().__init__(model=model, retry_options=retry_options) + # Validate the model string. Create a helper method to validate the model + # string. + if not _validate_model_string(model): + raise ValueError(f'Invalid model string: {model}') + + self._isvertexai = _identify_vertexai(model) + self._api_version = _identify_api_version(model) + self._proxy_url = proxy_url or os.environ.get( + _APIGEE_PROXY_URL_ENV_VARIABLE_NAME + ) + self._custom_headers = custom_headers or {} + self._user_agent = f'google-adk/{adk_version.__version__}' + + @classmethod + @override + def supported_models(cls) -> list[str]: + """Provides the list of supported models. + + Returns: + A list of supported models. + """ + + return [ + r'apigee\/.*', + ] + + @cached_property + def api_client(self) -> Client: + """Provides the api client. + + Returns: + The api client. + """ + + kwargs_for_http_options = {} + if self._api_version: + kwargs_for_http_options['api_version'] = self._api_version + http_options = types.HttpOptions( + base_url=self._proxy_url, + headers=self._merge_tracking_headers(self._custom_headers), + retry_options=self.retry_options, + **kwargs_for_http_options, + ) + + return Client( + vertexai=self._isvertexai, + http_options=http_options, + ) + + @override + async def _preprocess_request(self, llm_request: LlmRequest) -> None: + llm_request.model = _get_model_id(llm_request.model) + await super()._preprocess_request(llm_request) + + +def _identify_vertexai(model: str) -> bool: + """Returns True if the model spec starts with apigee/vertex_ai.""" + return not model.startswith('apigee/gemini/') and ( + model.startswith('apigee/vertex_ai/') + or os.environ.get( + _GOOGLE_GENAI_USE_VERTEXAI_ENV_VARIABLE_NAME, '0' + ).lower() + in ['true', '1'] + ) + + +def _identify_api_version(model: str) -> str: + """Returns the api version for the model spec.""" + model = model.removeprefix('apigee/') + components = model.split('/') + + if len(components) == 3: + # Format: // + return components[1] + if len(components) == 2: + # Format: / or / + # _validate_model_string ensures that if the first component is not a + # provider, it can be a version. + if components[0] not in ('vertex_ai', 'gemini') and components[ + 0 + ].startswith('v'): + return components[0] + return '' + + +def _get_model_id(model: str) -> str: + """Returns the model ID for the model spec.""" + model = model.removeprefix('apigee/') + components = model.split('/') + + # Model_id is the last component in the model string. + return components[-1] + + +def _validate_model_string(model: str) -> bool: + """Validates the model string for Apigee LLM. + + The model string specifies the LLM provider (e.g., Vertex AI, Gemini), API + version, and the model ID. + + Args: + model: The model string. Supported format: + `apigee/[/][/]` + + Returns: + True if the model string is valid, False otherwise. + """ + if not model.startswith('apigee/'): + return False + + # Remove leading "apigee/" from the model string. + model = model.removeprefix('apigee/') + + # The string has to be non-empty. i.e. the model_id cannot be empty. + if not model: + return False + + components = model.split('/') + # If the model string has exactly 1 component, it means only the model_id is + # present. This is a valid format. + if len(components) == 1: + return True + + # If the model string has more than 3 components, it is invalid. + if len(components) > 3: + return False + + # If the model string has 3 components, it means only the provider, version, + # and model_id are present. This is a valid format. + if len(components) == 3: + # Format: // + if components[0] not in ('vertex_ai', 'gemini'): + return False + if not components[1].startswith('v'): + return False + return True + + # If the model string has 2 components, it means either the provider or the + # version (but not both), and model_id are present. + if len(components) == 2: + if components[0] in ['vertex_ai', 'gemini']: + return True + if components[0].startswith('v'): + return True + return False + + return False diff --git a/tests/unittests/models/test_apigee_llm.py b/tests/unittests/models/test_apigee_llm.py new file mode 100644 index 0000000000..eeafd5bedc --- /dev/null +++ b/tests/unittests/models/test_apigee_llm.py @@ -0,0 +1,414 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +import os +from unittest import mock +from unittest.mock import AsyncMock + +from google.adk.models.apigee_llm import ApigeeLlm +from google.adk.models.llm_request import LlmRequest +from google.genai import types +from google.genai.types import Content +from google.genai.types import Part +import pytest + +BASE_MODEL_ID = 'gemini-2.5-flash' +APIGEE_GEMINI_MODEL_ID = 'apigee/gemini/v1/' + BASE_MODEL_ID +APIGEE_VERTEX_MODEL_ID = 'apigee/vertex_ai/v1beta/gemini-pro' +VERTEX_BASE_MODEL_ID = 'gemini-pro' +PROXY_URL = 'https://test.apigee.net' + + +@pytest.fixture +def llm_request(): + """Provides a sample LlmRequest for testing.""" + return LlmRequest( + model=APIGEE_GEMINI_MODEL_ID, + contents=[ + types.Content( + role='user', parts=[types.Part.from_text(text='Test prompt')] + ) + ], + ) + + +@pytest.mark.asyncio +@mock.patch('google.adk.models.apigee_llm.Client') +async def test_generate_content_async_non_streaming( + mock_client_constructor, llm_request +): + """Tests the generate_content_async method for non-streaming responses.""" + apigee_llm_instance = ApigeeLlm( + model=APIGEE_GEMINI_MODEL_ID, + proxy_url=PROXY_URL, + ) + mock_client_instance = mock.Mock() + mock_response = types.GenerateContentResponse( + candidates=[ + types.Candidate( + content=Content( + parts=[Part.from_text(text='Test response')], + role='model', + ) + ) + ] + ) + mock_client_instance.aio.models.generate_content = AsyncMock( + return_value=mock_response + ) + mock_client_constructor.return_value = mock_client_instance + + response_generator = apigee_llm_instance.generate_content_async(llm_request) + responses = [resp async for resp in response_generator] + + assert len(responses) == 1 + llm_response = responses[0] + assert llm_response.content.parts[0].text == 'Test response' + assert llm_response.content.role == 'model' + + mock_client_constructor.assert_called_once() + _, kwargs = mock_client_constructor.call_args + assert not kwargs['vertexai'] + http_options = kwargs['http_options'] + assert http_options.base_url == PROXY_URL + assert http_options.api_version == 'v1' + assert 'user-agent' in http_options.headers + assert 'x-goog-api-client' in http_options.headers + + mock_client_instance.aio.models.generate_content.assert_called_once_with( + model=BASE_MODEL_ID, + contents=llm_request.contents, + config=llm_request.config, + ) + + +@pytest.mark.asyncio +@mock.patch('google.adk.models.apigee_llm.Client') +async def test_generate_content_async_streaming( + mock_client_constructor, llm_request +): + """Tests the generate_content_async method for streaming responses.""" + apigee_llm_instance = ApigeeLlm( + model=APIGEE_GEMINI_MODEL_ID, + proxy_url=PROXY_URL, + ) + mock_client_instance = mock.Mock() + mock_responses = [ + types.GenerateContentResponse( + candidates=[ + types.Candidate( + content=Content( + parts=[Part.from_text(text='Hello')], + ) + ) + ] + ), + types.GenerateContentResponse( + candidates=[ + types.Candidate( + content=Content( + parts=[Part.from_text(text=',')], + ) + ) + ] + ), + types.GenerateContentResponse( + candidates=[ + types.Candidate( + content=Content( + parts=[Part.from_text(text=' world!')], + ) + ) + ] + ), + ] + + async def mock_stream_generator(): + for r in mock_responses: + yield r + + mock_client_instance.aio.models.generate_content_stream = AsyncMock( + return_value=mock_stream_generator() + ) + mock_client_constructor.return_value = mock_client_instance + + response_generator = apigee_llm_instance.generate_content_async( + llm_request, stream=True + ) + responses = [resp async for resp in response_generator] + + assert responses + full_text_parts = [] + for r in responses: + for p in r.content.parts: + if p.text: + full_text_parts.append(p.text) + full_text = ''.join(full_text_parts) + assert 'Hello, world!' in full_text + + mock_client_instance.aio.models.generate_content_stream.assert_called_once_with( + model=BASE_MODEL_ID, + contents=llm_request.contents, + config=llm_request.config, + ) + + +@pytest.mark.asyncio +@mock.patch('google.adk.models.apigee_llm.Client') +async def test_generate_content_async_with_custom_headers( + mock_client_constructor, llm_request +): + """Tests that custom headers are passed in the request.""" + custom_headers = { + 'X-Custom-Header': 'custom-value', + } + apigee_llm = ApigeeLlm( + model=APIGEE_GEMINI_MODEL_ID, + proxy_url=PROXY_URL, + custom_headers=custom_headers, + ) + mock_client_instance = mock.Mock() + mock_response = types.GenerateContentResponse( + candidates=[ + types.Candidate( + content=Content( + parts=[Part.from_text(text='Test response')], + role='model', + ) + ) + ] + ) + mock_client_instance.aio.models.generate_content = AsyncMock( + return_value=mock_response + ) + mock_client_constructor.return_value = mock_client_instance + + response_generator = apigee_llm.generate_content_async(llm_request) + _ = [resp async for resp in response_generator] # Consume generator + + mock_client_constructor.assert_called_once() + _, kwargs = mock_client_constructor.call_args + http_options = kwargs['http_options'] + assert http_options.headers['X-Custom-Header'] == 'custom-value' + assert 'user-agent' in http_options.headers + + +@pytest.mark.asyncio +@mock.patch('google.adk.models.apigee_llm.Client') +async def test_vertex_model_path_parsing(mock_client_constructor): + """Tests that Vertex AI model paths are parsed correctly.""" + apigee_llm = ApigeeLlm(model=APIGEE_VERTEX_MODEL_ID, proxy_url=PROXY_URL) + llm_request = LlmRequest( + model=APIGEE_VERTEX_MODEL_ID, + contents=[ + types.Content( + role='user', parts=[types.Part.from_text(text='Test prompt')] + ) + ], + ) + mock_client_instance = mock.Mock() + mock_client_instance.aio.models.generate_content = AsyncMock( + return_value=types.GenerateContentResponse( + candidates=[ + types.Candidate( + content=Content( + parts=[Part.from_text(text='Test response')], + role='model', + ) + ) + ] + ) + ) + mock_client_constructor.return_value = mock_client_instance + + _ = [resp async for resp in apigee_llm.generate_content_async(llm_request)] + + mock_client_constructor.assert_called_once() + _, kwargs = mock_client_constructor.call_args + assert kwargs['vertexai'] + assert kwargs['http_options'].api_version == 'v1beta' + + mock_client_instance.aio.models.generate_content.assert_called_once() + call_kwargs = ( + mock_client_instance.aio.models.generate_content.call_args.kwargs + ) + assert call_kwargs['model'] == VERTEX_BASE_MODEL_ID + + +@pytest.mark.asyncio +@mock.patch('google.adk.models.apigee_llm.Client') +async def test_proxy_url_from_env_variable(mock_client_constructor): + """Tests that proxy_url is read from environment variable.""" + with mock.patch.dict( + os.environ, {'APIGEE_PROXY_URL': 'https://env.proxy.url'} + ): + apigee_llm = ApigeeLlm(model=APIGEE_GEMINI_MODEL_ID) + llm_request = LlmRequest( + model=APIGEE_GEMINI_MODEL_ID, + contents=[ + types.Content( + role='user', parts=[types.Part.from_text(text='Test prompt')] + ) + ], + ) + mock_client_instance = mock.Mock() + mock_client_instance.aio.models.generate_content = AsyncMock( + return_value=types.GenerateContentResponse( + candidates=[ + types.Candidate( + content=Content( + parts=[Part.from_text(text='Test response')], + role='model', + ) + ) + ] + ) + ) + mock_client_constructor.return_value = mock_client_instance + + _ = [resp async for resp in apigee_llm.generate_content_async(llm_request)] + + mock_client_constructor.assert_called_once() + _, kwargs = mock_client_constructor.call_args + assert kwargs['http_options'].base_url == 'https://env.proxy.url' + + +@pytest.mark.asyncio +@pytest.mark.parametrize( + ( + 'model_string', + 'use_vertexai_env', + 'expected_is_vertexai', + 'expected_api_version', + 'expected_model_id', + ), + [ + ('apigee/gemini-2.5-flash', None, False, None, 'gemini-2.5-flash'), + ('apigee/gemini-2.5-flash', 'true', True, None, 'gemini-2.5-flash'), + ('apigee/gemini-2.5-flash', '1', True, None, 'gemini-2.5-flash'), + ('apigee/gemini-2.5-flash', 'false', False, None, 'gemini-2.5-flash'), + ('apigee/gemini-2.5-flash', '0', False, None, 'gemini-2.5-flash'), + ( + 'apigee/v1/gemini-2.5-flash', + None, + False, + 'v1', + 'gemini-2.5-flash', + ), + ( + 'apigee/v1/gemini-2.5-flash', + 'true', + True, + 'v1', + 'gemini-2.5-flash', + ), + ( + 'apigee/vertex_ai/gemini-2.5-flash', + None, + True, + None, + 'gemini-2.5-flash', + ), + ( + 'apigee/vertex_ai/gemini-2.5-flash', + 'false', + True, + None, + 'gemini-2.5-flash', + ), + ( + 'apigee/gemini/v1/gemini-2.5-flash', + 'true', + False, + 'v1', + 'gemini-2.5-flash', + ), + ( + 'apigee/vertex_ai/v1beta/gemini-2.5-flash', + 'false', + True, + 'v1beta', + 'gemini-2.5-flash', + ), + ], +) +@mock.patch('google.adk.models.apigee_llm.Client') +async def test_model_string_parsing_and_client_initialization( + mock_client_constructor, + model_string, + use_vertexai_env, + expected_is_vertexai, + expected_api_version, + expected_model_id, +): + """Tests model string parsing and genai.Client initialization.""" + env_vars = {} + if use_vertexai_env is not None: + env_vars['GOOGLE_GENAI_USE_VERTEXAI'] = use_vertexai_env + + # The ApigeeLlm is initialized in the 'with' block to make sure that the mock + # of the environment variable is active. + with mock.patch.dict(os.environ, env_vars, clear=True): + apigee_llm = ApigeeLlm(model=model_string, proxy_url=PROXY_URL) + request = LlmRequest(model=model_string, contents=[]) + + mock_client_instance = mock.Mock() + mock_client_instance.aio.models.generate_content = AsyncMock( + return_value=types.GenerateContentResponse( + candidates=[ + types.Candidate( + content=Content(parts=[Part.from_text(text='')]) + ) + ] + ) + ) + mock_client_constructor.return_value = mock_client_instance + + _ = [resp async for resp in apigee_llm.generate_content_async(request)] + + mock_client_constructor.assert_called_once() + _, kwargs = mock_client_constructor.call_args + assert kwargs['vertexai'] == expected_is_vertexai + http_options = kwargs['http_options'] + assert http_options.api_version == expected_api_version + + ( + mock_client_instance.aio.models.generate_content.assert_called_once_with( + model=expected_model_id, + contents=request.contents, + config=request.config, + ) + ) + + +@pytest.mark.asyncio +@pytest.mark.parametrize( + 'invalid_model_string', + [ + 'apigee/openai/v1/gpt', + 'apigee/', # Missing model_id + 'apigee', # Invalid format + 'gemini-pro', # Invalid format + 'apigee/vertex_ai/v1/model/extra', # Too many components + 'apigee/unknown/model', + ], +) +async def test_invalid_model_strings_raise_value_error(invalid_model_string): + """Tests that invalid model strings raise a ValueError.""" + with pytest.raises( + ValueError, match=f'Invalid model string: {invalid_model_string}' + ): + ApigeeLlm(model=invalid_model_string, proxy_url=PROXY_URL) From 6c3882f2d66f169d393171be280b6e6218b52a7c Mon Sep 17 00:00:00 2001 From: Hoonji Baek Date: Mon, 27 Oct 2025 17:25:52 -0700 Subject: [PATCH 201/303] fix: Creates evalset directory on evalset create PiperOrigin-RevId: 824746602 --- src/google/adk/evaluation/local_eval_sets_manager.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/google/adk/evaluation/local_eval_sets_manager.py b/src/google/adk/evaluation/local_eval_sets_manager.py index e42eb80e0c..841dab1fe7 100644 --- a/src/google/adk/evaluation/local_eval_sets_manager.py +++ b/src/google/adk/evaluation/local_eval_sets_manager.py @@ -324,6 +324,7 @@ def _validate_id(self, id_name: str, id_value: str): ) def _write_eval_set_to_path(self, eval_set_path: str, eval_set: EvalSet): + os.makedirs(os.path.dirname(eval_set_path), exist_ok=True) with open(eval_set_path, "w", encoding="utf-8") as f: f.write( eval_set.model_dump_json( From 86f01550bd1b52d6d160e8bc54cecc6c4fe8611c Mon Sep 17 00:00:00 2001 From: "Wei Sun (Jack)" Date: Mon, 27 Oct 2025 22:12:34 -0700 Subject: [PATCH 202/303] docs: Fixes null check for reflect_retry plugin sample PiperOrigin-RevId: 824836190 --- .../plugin_reflect_tool_retry/hallucinating_func_name/agent.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contributing/samples/plugin_reflect_tool_retry/hallucinating_func_name/agent.py b/contributing/samples/plugin_reflect_tool_retry/hallucinating_func_name/agent.py index 5b8d926265..8a958b656a 100644 --- a/contributing/samples/plugin_reflect_tool_retry/hallucinating_func_name/agent.py +++ b/contributing/samples/plugin_reflect_tool_retry/hallucinating_func_name/agent.py @@ -55,6 +55,8 @@ def after_model_callback( if ( llm_response.content + and llm_response.content.parts + and llm_response.content.parts[0].function_call and llm_response.content.parts[0].function_call.name == "roll_die" ): llm_response.content.parts[0].function_call.name = "roll_die_wrong_name" From 9ab17f2afd7ae427f5ea49639394cbcaa6c3cc40 Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Tue, 28 Oct 2025 08:40:17 -0700 Subject: [PATCH 203/303] fix: Yield the long running tool response before pausing execution PiperOrigin-RevId: 825056377 --- src/google/adk/agents/llm_agent.py | 12 +- .../adk/flows/llm_flows/base_llm_flow.py | 24 +++- src/google/adk/tools/function_tool.py | 1 + .../runners/test_pause_invocation.py | 40 +++++- .../runners/test_run_tool_confirmation.py | 119 ++++++++++++------ 5 files changed, 146 insertions(+), 50 deletions(-) diff --git a/src/google/adk/agents/llm_agent.py b/src/google/adk/agents/llm_agent.py index a02f97dd69..8e13ea8910 100644 --- a/src/google/adk/agents/llm_agent.py +++ b/src/google/adk/agents/llm_agent.py @@ -430,16 +430,24 @@ async def _run_async_impl( yield self._create_agent_state_event(ctx) return + should_pause = False async with Aclosing(self._llm_flow.run_async(ctx)) as agen: async for event in agen: self.__maybe_save_output_to_state(event) yield event if ctx.should_pause_invocation(event): - return + # Do not pause immediately, wait until the long running tool call is + # executed. + should_pause = True + if should_pause: + return if ctx.is_resumable: events = ctx._get_events(current_invocation=True, current_branch=True) - if events and ctx.should_pause_invocation(events[-1]): + if events and ( + ctx.should_pause_invocation(events[-1]) + or ctx.should_pause_invocation(events[-2]) + ): return # Only yield an end state if the last event is no longer a long running # tool call. diff --git a/src/google/adk/flows/llm_flows/base_llm_flow.py b/src/google/adk/flows/llm_flows/base_llm_flow.py index 531a5034c8..644dc55b6c 100644 --- a/src/google/adk/flows/llm_flows/base_llm_flow.py +++ b/src/google/adk/flows/llm_flows/base_llm_flow.py @@ -383,16 +383,30 @@ async def _run_one_step_async( events = invocation_context._get_events( current_invocation=True, current_branch=True ) + + # Long running tool calls should have been handled before this point. + # If there are still long running tool calls, it means the agent is paused + # before, and its branch hasn't been resumed yet. + if ( + invocation_context.is_resumable + and events + and len(events) > 1 + # TODO: here we are using the last 2 events to decide whether to pause + # the invocation. But this is just being optmisitic, we should find a + # way to pause when the long running tool call is followed by more than + # one text responses. + and ( + invocation_context.should_pause_invocation(events[-1]) + or invocation_context.should_pause_invocation(events[-2]) + ) + ): + return + if ( invocation_context.is_resumable and events and events[-1].get_function_calls() ): - # Long running tool calls should have been handled before this point. - # If there are still long running tool calls, it means the agent is paused - # before, and its branch hasn't been resumed yet. - if invocation_context.should_pause_invocation(events[-1]): - return model_response_event = events[-1] async with Aclosing( self._postprocess_handle_function_calls_async( diff --git a/src/google/adk/tools/function_tool.py b/src/google/adk/tools/function_tool.py index 1ab32d42b7..c3a4b348e9 100644 --- a/src/google/adk/tools/function_tool.py +++ b/src/google/adk/tools/function_tool.py @@ -205,6 +205,7 @@ async def run_async( ' ToolConfirmation payload.' ), ) + tool_context.actions.skip_summarization = True return { 'error': ( 'This tool call requires confirmation, please approve or' diff --git a/tests/unittests/runners/test_pause_invocation.py b/tests/unittests/runners/test_pause_invocation.py index f8f8ffc143..f0c43f075e 100644 --- a/tests/unittests/runners/test_pause_invocation.py +++ b/tests/unittests/runners/test_pause_invocation.py @@ -44,7 +44,7 @@ def _transfer_call_part(agent_name: str) -> Part: def test_tool() -> str: - return "" + return "result" class _TestingAgent(BaseAgent): @@ -126,6 +126,12 @@ def test_pause_on_long_running_function_call( """Tests that a single LlmAgent pauses on long running function call.""" assert testing_utils.simplify_resumable_app_events(runner.run("test")) == [ ("root_agent", Part.from_function_call(name="test_tool", args={})), + ( + "root_agent", + Part.from_function_response( + name="test_tool", response={"result": "result"} + ), + ), ] @@ -168,6 +174,12 @@ def test_pause_first_agent_on_long_running_function_call( ), ), ("sub_agent_1", Part.from_function_call(name="test_tool", args={})), + ( + "sub_agent_1", + Part.from_function_response( + name="test_tool", response={"result": "result"} + ), + ), ] @pytest.mark.asyncio @@ -195,7 +207,7 @@ def test_pause_second_agent_on_long_running_function_call( ( "sub_agent_1", Part.from_function_response( - name="test_tool", response={"result": ""} + name="test_tool", response={"result": "result"} ), ), ("sub_agent_1", "model response after tool call"), @@ -207,6 +219,12 @@ def test_pause_second_agent_on_long_running_function_call( ), ), ("sub_agent_2", Part.from_function_call(name="test_tool", args={})), + ( + "sub_agent_2", + Part.from_function_response( + name="test_tool", response={"result": "result"} + ), + ), ] @@ -384,6 +402,12 @@ def test_pause_on_long_running_function_call( ), ), ("sub_agent_2", Part.from_function_call(name="test_tool", args={})), + ( + "sub_agent_2", + Part.from_function_response( + name="test_tool", response={"result": "result"} + ), + ), ] @@ -435,6 +459,12 @@ def test_pause_on_long_running_function_call( ("sub_llm_agent_1", _transfer_call_part("sub_llm_agent_2")), ("sub_llm_agent_1", _TRANSFER_RESPONSE_PART), ("sub_llm_agent_2", Part.from_function_call(name="test_tool", args={})), + ( + "sub_llm_agent_2", + Part.from_function_response( + name="test_tool", response={"result": "result"} + ), + ), ] @@ -489,4 +519,10 @@ def test_pause_on_long_running_function_call( ("sub_llm_agent_2", _transfer_call_part("root_agent")), ("sub_llm_agent_2", _TRANSFER_RESPONSE_PART), ("root_agent", Part.from_function_call(name="test_tool", args={})), + ( + "root_agent", + Part.from_function_response( + name="test_tool", response={"result": "result"} + ), + ), ] diff --git a/tests/unittests/runners/test_run_tool_confirmation.py b/tests/unittests/runners/test_run_tool_confirmation.py index aaeb45abbc..d6acb66959 100644 --- a/tests/unittests/runners/test_run_tool_confirmation.py +++ b/tests/unittests/runners/test_run_tool_confirmation.py @@ -36,6 +36,16 @@ from .. import testing_utils +HINT_TEXT = ( + "Please approve or reject the tool call _test_function() by" + " responding with a FunctionResponse with an" + " expected ToolConfirmation payload." +) + +TOOL_CALL_ERROR_RESPONSE = { + "error": "This tool call requires confirmation, please approve or reject." +} + def _create_llm_response_from_tools( tools: list[FunctionTool], @@ -57,13 +67,9 @@ def _create_llm_response_from_text(text: str) -> GenerateContentResponse: ) -def _test_request_confirmation_function( +def _test_function( tool_context: ToolContext, ) -> dict[str, str]: - """A test tool function that requests confirmation.""" - if not tool_context.tool_confirmation: - tool_context.request_confirmation(hint="test hint for request_confirmation") - return {"error": "test error for request_confirmation"} return {"result": f"confirmed={tool_context.tool_confirmation.confirmed}"} @@ -82,7 +88,7 @@ def _test_request_confirmation_function_with_custom_schema( } }, ) - return {"error": "test error for request_confirmation"} + return TOOL_CALL_ERROR_RESPONSE return { "result": f"confirmed={tool_context.tool_confirmation.confirmed}", "custom_payload": tool_context.tool_confirmation.payload, @@ -104,7 +110,7 @@ class TestHITLConfirmationFlowWithSingleAgent(BaseHITLTest): @pytest.fixture def tools(self) -> list[FunctionTool]: """Provides the tools for the agent.""" - return [FunctionTool(func=_test_request_confirmation_function)] + return [FunctionTool(func=_test_function, require_confirmation=True)] @pytest.fixture def llm_responses( @@ -114,9 +120,6 @@ def llm_responses( return [ _create_llm_response_from_tools(tools), _create_llm_response_from_text("test llm response after tool call"), - _create_llm_response_from_text( - "test llm response after final tool call" - ), ] @pytest.fixture @@ -163,7 +166,7 @@ async def test_confirmation_flow( "args": {}, }, "toolConfirmation": { - "hint": "test hint for request_confirmation", + "hint": HINT_TEXT, "confirmed": False, }, }, @@ -174,12 +177,10 @@ async def test_confirmation_flow( agent.name, Part( function_response=FunctionResponse( - name=tools[0].name, - response={"error": "test error for request_confirmation"}, + name=tools[0].name, response=TOOL_CALL_ERROR_RESPONSE ) ), ), - (agent.name, "test llm response after tool call"), ] simplified = testing_utils.simplify_events(copy.deepcopy(events)) @@ -208,11 +209,13 @@ async def test_confirmation_flow( Part( function_response=FunctionResponse( name=tools[0].name, - response={"result": f"confirmed={tool_call_confirmed}"}, + response={"result": f"confirmed={tool_call_confirmed}"} + if tool_call_confirmed + else {"error": "This tool call is rejected."}, ) ), ), - (agent.name, "test llm response after final tool call"), + (agent.name, "test llm response after tool call"), ] for event in events: assert event.invocation_id != invocation_id @@ -312,8 +315,7 @@ async def test_confirmation_flow( agent.name, Part( function_response=FunctionResponse( - name=tools[0].name, - response={"error": "test error for request_confirmation"}, + name=tools[0].name, response=TOOL_CALL_ERROR_RESPONSE ) ), ), @@ -380,7 +382,7 @@ class TestHITLConfirmationFlowWithResumableApp: @pytest.fixture def tools(self) -> list[FunctionTool]: """Provides the tools for the agent.""" - return [FunctionTool(func=_test_request_confirmation_function)] + return [FunctionTool(func=_test_function, require_confirmation=True)] @pytest.fixture def llm_responses( @@ -409,8 +411,8 @@ def agent( @pytest.fixture def runner(self, agent: LlmAgent) -> testing_utils.InMemoryRunner: """Provides an in-memory runner for the agent.""" - # Mark the app as resumable. So that the invocation will be paused after the - # long running tool call. + # Mark the app as resumable. So that the invocation will be paused when + # tool confirmation is requested. app = App( name="test_app", resumability_config=ResumabilityConfig(is_resumable=True), @@ -427,8 +429,8 @@ async def test_pause_and_resume_on_request_confirmation( """Tests HITL flow where all tool calls are confirmed.""" events = runner.run("test user query") - # Verify that the invocation is paused after the long running tool call. - # So that no intermediate function response and llm response is generated. + # Verify that the invocation is paused when tool confirmation is requested. + # The tool call returns error response, and summarization was skipped. assert testing_utils.simplify_resumable_app_events( copy.deepcopy(events) ) == [ @@ -448,13 +450,21 @@ async def test_pause_and_resume_on_request_confirmation( "args": {}, }, "toolConfirmation": { - "hint": "test hint for request_confirmation", + "hint": HINT_TEXT, "confirmed": False, }, }, ) ), ), + ( + agent.name, + Part( + function_response=FunctionResponse( + name=agent.tools[0].name, response=TOOL_CALL_ERROR_RESPONSE + ) + ), + ), ] ask_for_confirmation_function_call_id = ( events[1].content.parts[0].function_call.id @@ -499,7 +509,7 @@ class TestHITLConfirmationFlowWithSequentialAgentAndResumableApp: @pytest.fixture def tools(self) -> list[FunctionTool]: """Provides the tools for the agent.""" - return [FunctionTool(func=_test_request_confirmation_function)] + return [FunctionTool(func=_test_function, require_confirmation=True)] @pytest.fixture def llm_responses( @@ -535,8 +545,8 @@ def agent( @pytest.fixture def runner(self, agent: SequentialAgent) -> testing_utils.InMemoryRunner: """Provides an in-memory runner for the agent.""" - # Mark the app as resumable. So that the invocation will be paused after the - # long running tool call. + # Mark the app as resumable. So that the invocation will be paused when + # tool confirmation is requested. app = App( name="test_app", resumability_config=ResumabilityConfig(is_resumable=True), @@ -558,8 +568,8 @@ async def test_pause_and_resume_on_request_confirmation( # - sub_agent1 has a tool call that asks for HITL confirmation. # - sub_agent2 does not have any tool calls. # - The test will: - # - Run the query and verify that the invocation is paused after the long - # running tool call, at sub_agent1. + # - Run the query and verify that the invocation is paused when tool + # confirmation is requested, at sub_agent1. # - Resume the invocation and execute the tool call from sub_agent1. # - Verify that root_agent continues to run sub_agent2. @@ -568,8 +578,8 @@ async def test_pause_and_resume_on_request_confirmation( sub_agent2 = agent.sub_agents[1] # Step 1: - # Verify that the invocation is paused after the long running tool call. - # So that no intermediate function response and llm response is generated. + # Verify that the invocation is paused when tool confirmation is requested. + # So that no intermediate llm response is generated. # And the second sub agent is not started. assert testing_utils.simplify_resumable_app_events( copy.deepcopy(events) @@ -600,13 +610,22 @@ async def test_pause_and_resume_on_request_confirmation( "args": {}, }, "toolConfirmation": { - "hint": "test hint for request_confirmation", + "hint": HINT_TEXT, "confirmed": False, }, }, ) ), ), + ( + sub_agent1.name, + Part( + function_response=FunctionResponse( + name=sub_agent1.tools[0].name, + response=TOOL_CALL_ERROR_RESPONSE, + ) + ), + ), ] ask_for_confirmation_function_call_id = ( events[2].content.parts[0].function_call.id @@ -664,7 +683,7 @@ class TestHITLConfirmationFlowWithParallelAgentAndResumableApp: @pytest.fixture def tools(self) -> list[FunctionTool]: """Provides the tools for the agent.""" - return [FunctionTool(func=_test_request_confirmation_function)] + return [FunctionTool(func=_test_function, require_confirmation=True)] @pytest.fixture def llm_responses( @@ -702,8 +721,8 @@ def agent( @pytest.fixture def runner(self, agent: ParallelAgent) -> testing_utils.InMemoryRunner: """Provides an in-memory runner for the agent.""" - # Mark the app as resumable. So that the invocation will be paused after the - # long running tool call. + # Mark the app as resumable. So that the invocation will be paused when + # tool confirmation is requested. app = App( name="test_app", resumability_config=ResumabilityConfig(is_resumable=True), @@ -725,15 +744,15 @@ async def test_pause_and_resume_on_request_confirmation( # sub_agent2. # - Both sub_agents have a tool call that asks for HITL confirmation. # - The test will: - # - Run the query and verify that each branch is paused after the long - # running tool call. + # - Run the query and verify that each branch is paused when tool + # confirmation is requested. # - Resume the invocation and execute the tool call of each branch. sub_agent1 = agent.sub_agents[0] sub_agent2 = agent.sub_agents[1] # Verify that each branch is paused after the long running tool call. - # So that no intermediate function response and llm response is generated. + # So that no intermediate llm response is generated. root_agent_events = [event for event in events if event.branch is None] sub_agent1_branch_events = [ event @@ -776,13 +795,22 @@ async def test_pause_and_resume_on_request_confirmation( "args": {}, }, "toolConfirmation": { - "hint": "test hint for request_confirmation", + "hint": HINT_TEXT, "confirmed": False, }, }, ) ), ), + ( + sub_agent1.name, + Part( + function_response=FunctionResponse( + name=sub_agent1.tools[0].name, + response=TOOL_CALL_ERROR_RESPONSE, + ) + ), + ), ] assert testing_utils.simplify_resumable_app_events( copy.deepcopy(sub_agent2_branch_events) @@ -807,13 +835,22 @@ async def test_pause_and_resume_on_request_confirmation( "args": {}, }, "toolConfirmation": { - "hint": "test hint for request_confirmation", + "hint": HINT_TEXT, "confirmed": False, }, }, ) ), ), + ( + sub_agent2.name, + Part( + function_response=FunctionResponse( + name=sub_agent2.tools[0].name, + response=TOOL_CALL_ERROR_RESPONSE, + ) + ), + ), ] ask_for_confirmation_function_call_ids = [ @@ -893,7 +930,7 @@ async def test_pause_and_resume_on_request_confirmation( sub_agent2.name, Part( function_response=FunctionResponse( - name=sub_agent1.tools[0].name, + name=sub_agent2.tools[0].name, response={"result": "confirmed=True"}, ) ), From b17c8f19e5fc67180d1bdc621f84cd43e357571c Mon Sep 17 00:00:00 2001 From: Ankur Sharma Date: Tue, 28 Oct 2025 10:27:06 -0700 Subject: [PATCH 204/303] chore: Marked expected_invocation as optional field on evaluator interface ADK already has a set of metrics that don't rely expected_invocations. Also, for eval cases with conversation scenario, this would be the main line case. PiperOrigin-RevId: 825101481 --- src/google/adk/cli/cli_eval.py | 16 +- src/google/adk/evaluation/eval_metrics.py | 5 +- src/google/adk/evaluation/evaluator.py | 15 +- .../adk/evaluation/final_response_match_v1.py | 5 +- .../adk/evaluation/final_response_match_v2.py | 13 +- .../adk/evaluation/hallucinations_v1.py | 15 +- src/google/adk/evaluation/llm_as_judge.py | 21 ++- .../adk/evaluation/local_eval_service.py | 97 +++++------ .../adk/evaluation/response_evaluator.py | 6 +- .../rubric_based_final_response_quality_v1.py | 3 +- .../rubric_based_tool_use_quality_v1.py | 3 +- src/google/adk/evaluation/safety_evaluator.py | 4 +- .../adk/evaluation/trajectory_evaluator.py | 5 +- .../adk/evaluation/vertex_ai_eval_facade.py | 23 ++- .../evaluation/test_local_eval_service.py | 151 ++++++++++++++++-- 15 files changed, 281 insertions(+), 101 deletions(-) diff --git a/src/google/adk/cli/cli_eval.py b/src/google/adk/cli/cli_eval.py index ac2e0b9715..c8eda6f4e9 100644 --- a/src/google/adk/cli/cli_eval.py +++ b/src/google/adk/cli/cli_eval.py @@ -210,21 +210,23 @@ def pretty_print_eval_result(eval_result: EvalCaseResult): data = [] for per_invocation_result in eval_result.eval_metric_result_per_invocation: + actual_invocation = per_invocation_result.actual_invocation + expected_invocation = per_invocation_result.expected_invocation row_data = { - "prompt": _convert_content_to_text( - per_invocation_result.expected_invocation.user_content - ), + "prompt": _convert_content_to_text(actual_invocation.user_content), "expected_response": _convert_content_to_text( - per_invocation_result.expected_invocation.final_response + expected_invocation.final_response if expected_invocation else None ), "actual_response": _convert_content_to_text( - per_invocation_result.actual_invocation.final_response + actual_invocation.final_response ), "expected_tool_calls": _convert_tool_calls_to_text( - per_invocation_result.expected_invocation.intermediate_data + expected_invocation.intermediate_data + if expected_invocation + else None ), "actual_tool_calls": _convert_tool_calls_to_text( - per_invocation_result.actual_invocation.intermediate_data + actual_invocation.intermediate_data ), } for metric_result in per_invocation_result.eval_metric_results: diff --git a/src/google/adk/evaluation/eval_metrics.py b/src/google/adk/evaluation/eval_metrics.py index 2cfbfd454d..84a19879ae 100644 --- a/src/google/adk/evaluation/eval_metrics.py +++ b/src/google/adk/evaluation/eval_metrics.py @@ -216,10 +216,11 @@ class EvalMetricResultPerInvocation(EvalBaseModel): ) ) - expected_invocation: Invocation = Field( + expected_invocation: Optional[Invocation] = Field( + default=None, description=( "The expected invocation, usually the reference or golden invocation." - ) + ), ) eval_metric_results: list[EvalMetricResult] = Field( diff --git a/src/google/adk/evaluation/evaluator.py b/src/google/adk/evaluation/evaluator.py index 3cda983ff8..2c007fe4a1 100644 --- a/src/google/adk/evaluation/evaluator.py +++ b/src/google/adk/evaluation/evaluator.py @@ -33,7 +33,7 @@ class PerInvocationResult(BaseModel): """Metric evaluation score per invocation.""" actual_invocation: Invocation - expected_invocation: Invocation + expected_invocation: Optional[Invocation] = None score: Optional[float] = None eval_status: EvalStatus = EvalStatus.NOT_EVALUATED rubric_scores: Optional[list[RubricScore]] = None @@ -61,7 +61,16 @@ class Evaluator(ABC): def evaluate_invocations( self, actual_invocations: list[Invocation], - expected_invocations: list[Invocation], + expected_invocations: Optional[list[Invocation]], ) -> EvaluationResult: - """Returns EvaluationResult after performing evaluations using actual and expected invocations.""" + """Returns EvaluationResult after performing evaluations using actual and expected invocations. + + Args: + actual_invocations: These are the invocations that are obtained from the + agent under test. + expected_invocations: An optional list of invocations, if specified, + usually act as a benchmark/golden response. If these are specified + usually the expectation is that the length of this list and actual + invocaiton is the same. + """ raise NotImplementedError() diff --git a/src/google/adk/evaluation/final_response_match_v1.py b/src/google/adk/evaluation/final_response_match_v1.py index 3dc880b08b..83d0d4fc01 100644 --- a/src/google/adk/evaluation/final_response_match_v1.py +++ b/src/google/adk/evaluation/final_response_match_v1.py @@ -59,8 +59,11 @@ def get_metric_info() -> MetricInfo: def evaluate_invocations( self, actual_invocations: list[Invocation], - expected_invocations: list[Invocation], + expected_invocations: Optional[list[Invocation]], ) -> EvaluationResult: + if expected_invocations is None: + raise ValueError("expected_invocations is required for this metric.") + total_score = 0.0 num_invocations = 0 per_invocation_results = [] diff --git a/src/google/adk/evaluation/final_response_match_v2.py b/src/google/adk/evaluation/final_response_match_v2.py index 0e8e666c4f..ea90c37487 100644 --- a/src/google/adk/evaluation/final_response_match_v2.py +++ b/src/google/adk/evaluation/final_response_match_v2.py @@ -147,7 +147,11 @@ def __init__( self, eval_metric: EvalMetric, ): - super().__init__(eval_metric, FinalResponseMatchV2Evaluator.criterion_type) + super().__init__( + eval_metric, + FinalResponseMatchV2Evaluator.criterion_type, + expected_invocations_required=True, + ) self._auto_rater_prompt_template = _FINAL_RESPONSE_MATCH_V2_PROMPT @staticmethod @@ -166,8 +170,13 @@ def get_metric_info() -> MetricInfo: @override def format_auto_rater_prompt( - self, actual_invocation: Invocation, expected_invocation: Invocation + self, + actual_invocation: Invocation, + expected_invocation: Optional[Invocation], ) -> str: + if expected_invocation is None: + raise ValueError("expected_invocation is required for this metric.") + reference = get_text_from_content(expected_invocation.final_response) response = get_text_from_content(actual_invocation.final_response) user_prompt = get_text_from_content(expected_invocation.user_content) diff --git a/src/google/adk/evaluation/hallucinations_v1.py b/src/google/adk/evaluation/hallucinations_v1.py index 15cda35dc3..01fbc3a09c 100644 --- a/src/google/adk/evaluation/hallucinations_v1.py +++ b/src/google/adk/evaluation/hallucinations_v1.py @@ -395,7 +395,8 @@ def _create_context_for_step( }, { "name": "get_weather", - "description": '''Gets the weather of the given place at the given time. + "description": '''Gets the weather of the given place at the given + time. Args: location: The location for which to retrieve weather information. @@ -408,7 +409,8 @@ def _create_context_for_step( "type": "object", "properties": { "location": { - "description": "The location for which to retrieve weather information.", + "description": "The location for which to retrieve weather + information.", "type": "string" }, "time": { @@ -711,8 +713,15 @@ def _aggregate_invocation_results( async def evaluate_invocations( self, actual_invocations: list[Invocation], - expected_invocations: list[Invocation], + expected_invocations: Optional[list[Invocation]], ) -> EvaluationResult: + # expected_invocations are not required by the metric and if they are not + # supplied, we provide an a list of None to rest of the code. + expected_invocations = ( + [None] * len(actual_invocations) + if expected_invocations is None + else expected_invocations + ) per_invocation_results = [] for actual, expected in zip(actual_invocations, expected_invocations): step_evaluations = self._get_steps_to_evaluate(actual) diff --git a/src/google/adk/evaluation/llm_as_judge.py b/src/google/adk/evaluation/llm_as_judge.py index dff7de0d00..a33e827778 100644 --- a/src/google/adk/evaluation/llm_as_judge.py +++ b/src/google/adk/evaluation/llm_as_judge.py @@ -60,9 +60,13 @@ class LlmAsJudge(Evaluator): """ def __init__( - self, eval_metric: EvalMetric, criterion_type: type[BaseCriterion] + self, + eval_metric: EvalMetric, + criterion_type: type[BaseCriterion], + expected_invocations_required=False, ): self._eval_metric = eval_metric + self._expected_invocations_required = expected_invocations_required expected_criterion_type_error = ValueError( f"`{eval_metric.metric_name}` metric expects a criterion of type" @@ -84,7 +88,7 @@ def __init__( @abstractmethod def format_auto_rater_prompt( - self, actual: Invocation, expected: Invocation + self, actual: Invocation, expected: Optional[Invocation] ) -> str: """Formats the auto-rater prompt to evaluate the given invocation.""" @@ -112,8 +116,19 @@ def aggregate_invocation_results( async def evaluate_invocations( self, actual_invocations: list[Invocation], - expected_invocations: list[Invocation], + expected_invocations: Optional[list[Invocation]], ) -> EvaluationResult: + if self._expected_invocations_required and expected_invocations is None: + raise ValueError("expected_invocations is needed by this metric.") + + # If expected_invocation are not required by the metric and if they are not + # supplied, we provide an a list of None. + expected_invocations = ( + [None] * len(actual_invocations) + if expected_invocations is None + else expected_invocations + ) + per_invocation_results = [] for actual, expected in zip(actual_invocations, expected_invocations): auto_rater_prompt = self.format_auto_rater_prompt(actual, expected) diff --git a/src/google/adk/evaluation/local_eval_service.py b/src/google/adk/evaluation/local_eval_service.py index e43df3741c..ab285e1836 100644 --- a/src/google/adk/evaluation/local_eval_service.py +++ b/src/google/adk/evaluation/local_eval_service.py @@ -22,8 +22,6 @@ from typing import Optional import uuid -from google.genai.types import Content -from google.genai.types import Part from typing_extensions import override from ..agents.base_agent import BaseAgent @@ -51,6 +49,7 @@ from .evaluation_generator import EvaluationGenerator from .evaluator import EvalStatus from .evaluator import EvaluationResult +from .evaluator import PerInvocationResult from .metric_evaluator_registry import DEFAULT_METRIC_EVALUATOR_REGISTRY from .metric_evaluator_registry import MetricEvaluatorRegistry from .user_simulator_provider import UserSimulatorProvider @@ -222,43 +221,9 @@ async def _evaluate_single_inference_result( else 'test_user_id' ) - if eval_case.conversation_scenario: - logger.warning( - 'Skipping evaluation of variable-length conversation scenario in eval' - ' set/case %s/%s.', - inference_result.eval_set_id, - inference_result.eval_case_id, - ) - for actual_invocation in inference_result.inferences: - eval_metric_result_per_invocation.append( - EvalMetricResultPerInvocation( - actual_invocation=actual_invocation, - expected_invocation=Invocation( - user_content=actual_invocation.user_content, - final_response=Content( - parts=[Part(text='N/A')], role='model' - ), - ), - ) - ) - eval_case_result = EvalCaseResult( - eval_set_file=inference_result.eval_set_id, - eval_set_id=inference_result.eval_set_id, - eval_id=inference_result.eval_case_id, - final_eval_status=EvalStatus.NOT_EVALUATED, - overall_eval_metric_results=overall_eval_metric_results, - eval_metric_result_per_invocation=eval_metric_result_per_invocation, - session_id=inference_result.session_id, - session_details=await self._session_service.get_session( - app_name=inference_result.app_name, - user_id=user_id, - session_id=inference_result.session_id, - ), - user_id=user_id, - ) - return (inference_result, eval_case_result) - - if len(inference_result.inferences) != len(eval_case.conversation): + if eval_case.conversation_scenario is None and len( + inference_result.inferences + ) != len(eval_case.conversation): raise ValueError( 'Inferences should match conversations in eval case. Found' f'{len(inference_result.inferences)} inferences ' @@ -266,13 +231,13 @@ async def _evaluate_single_inference_result( ) # Pre-creating the EvalMetricResults entries for each invocation. - for actual, expected in zip( - inference_result.inferences, eval_case.conversation - ): + for idx, actual in enumerate(inference_result.inferences): eval_metric_result_per_invocation.append( EvalMetricResultPerInvocation( actual_invocation=actual, - expected_invocation=expected, + expected_invocation=eval_case.conversation[idx] + if eval_case.conversation + else None, # We will fill this as we evaluate each metric per invocation. eval_metric_results=[], ) @@ -280,11 +245,27 @@ async def _evaluate_single_inference_result( for eval_metric in evaluate_config.eval_metrics: # Perform evaluation of the metric. - evaluation_result = await self._evaluate_metric( - eval_metric=eval_metric, - actual_invocations=inference_result.inferences, - expected_invocations=eval_case.conversation, - ) + try: + evaluation_result = await self._evaluate_metric( + eval_metric=eval_metric, + actual_invocations=inference_result.inferences, + expected_invocations=eval_case.conversation, + ) + except Exception as e: + # We intentionally catch the Exception as we don't want failures to + # affect other metric evaluation. + logger.error( + "Metric evaluation failed for metric `%s` for eval case id '%s'" + ' with following error `%s`', + eval_metric.metric_name, + eval_case.eval_id, + e, + exc_info=True, + ) + # We use an empty result. + evaluation_result = EvaluationResult( + overall_eval_status=EvalStatus.NOT_EVALUATED + ) # Track overall scrore across all invocations. eval_metric_result_details = EvalMetricResultDetails( @@ -299,8 +280,10 @@ async def _evaluate_single_inference_result( ) ) - if len(evaluation_result.per_invocation_results) != len( - eval_metric_result_per_invocation + if ( + evaluation_result.overall_eval_status != EvalStatus.NOT_EVALUATED + and len(evaluation_result.per_invocation_results) + != len(eval_metric_result_per_invocation) ): raise ValueError( 'Eval metric should return results for each invocation. Found ' @@ -309,10 +292,14 @@ async def _evaluate_single_inference_result( ) # Track score across individual invocations. - for invocation_result, invocation in zip( - evaluation_result.per_invocation_results, - eval_metric_result_per_invocation, - ): + for idx, invocation in enumerate(eval_metric_result_per_invocation): + invocation_result = ( + evaluation_result.per_invocation_results[idx] + if evaluation_result.overall_eval_status != EvalStatus.NOT_EVALUATED + else PerInvocationResult( + actual_invocation=invocation.actual_invocation + ) + ) eval_metric_result_details = EvalMetricResultDetails( rubric_scores=invocation_result.rubric_scores ) @@ -351,7 +338,7 @@ async def _evaluate_metric( self, eval_metric: EvalMetric, actual_invocations: list[Invocation], - expected_invocations: list[Invocation], + expected_invocations: Optional[list[Invocation]], ) -> EvaluationResult: """Returns EvaluationResult obtained from evaluating a metric using an Evaluator.""" diff --git a/src/google/adk/evaluation/response_evaluator.py b/src/google/adk/evaluation/response_evaluator.py index 1c08c9c7fc..f76a717fa6 100644 --- a/src/google/adk/evaluation/response_evaluator.py +++ b/src/google/adk/evaluation/response_evaluator.py @@ -100,7 +100,7 @@ def get_metric_info(metric_name: str) -> MetricInfo: def evaluate_invocations( self, actual_invocations: list[Invocation], - expected_invocations: list[Invocation], + expected_invocations: Optional[list[Invocation]], ) -> EvaluationResult: # If the metric is response_match_score, just use the RougeEvaluator. if self._metric_name == PrebuiltMetrics.RESPONSE_MATCH_SCORE.value: @@ -112,5 +112,7 @@ def evaluate_invocations( ) return _VertexAiEvalFacade( - threshold=self._threshold, metric_name=self._metric_name + threshold=self._threshold, + metric_name=self._metric_name, + expected_invocations_required=True, ).evaluate_invocations(actual_invocations, expected_invocations) diff --git a/src/google/adk/evaluation/rubric_based_final_response_quality_v1.py b/src/google/adk/evaluation/rubric_based_final_response_quality_v1.py index f75e711b31..1b4cb68197 100644 --- a/src/google/adk/evaluation/rubric_based_final_response_quality_v1.py +++ b/src/google/adk/evaluation/rubric_based_final_response_quality_v1.py @@ -16,6 +16,7 @@ import logging from typing import ClassVar +from typing import Optional from typing_extensions import override @@ -281,7 +282,7 @@ def get_metric_info() -> MetricInfo: @override def format_auto_rater_prompt( - self, actual_invocation: Invocation, _: Invocation + self, actual_invocation: Invocation, _: Optional[Invocation] ) -> str: """Returns the autorater prompt.""" diff --git a/src/google/adk/evaluation/rubric_based_tool_use_quality_v1.py b/src/google/adk/evaluation/rubric_based_tool_use_quality_v1.py index 68a65da10e..fe1f1e6e6b 100644 --- a/src/google/adk/evaluation/rubric_based_tool_use_quality_v1.py +++ b/src/google/adk/evaluation/rubric_based_tool_use_quality_v1.py @@ -16,6 +16,7 @@ import logging from typing import ClassVar +from typing import Optional from typing_extensions import override @@ -181,7 +182,7 @@ def get_metric_info() -> MetricInfo: @override def format_auto_rater_prompt( - self, actual_invocation: Invocation, _: Invocation + self, actual_invocation: Invocation, _: Optional[Invocation] ) -> str: """Returns the autorater prompt.""" diff --git a/src/google/adk/evaluation/safety_evaluator.py b/src/google/adk/evaluation/safety_evaluator.py index 09a8d2b3d5..614a66068f 100644 --- a/src/google/adk/evaluation/safety_evaluator.py +++ b/src/google/adk/evaluation/safety_evaluator.py @@ -14,6 +14,8 @@ from __future__ import annotations +from typing import Optional + from typing_extensions import override from ..dependencies.vertexai import vertexai @@ -66,7 +68,7 @@ def get_metric_info() -> MetricInfo: def evaluate_invocations( self, actual_invocations: list[Invocation], - expected_invocations: list[Invocation], + expected_invocations: Optional[list[Invocation]], ) -> EvaluationResult: return _VertexAiEvalFacade( threshold=self._eval_metric.threshold, diff --git a/src/google/adk/evaluation/trajectory_evaluator.py b/src/google/adk/evaluation/trajectory_evaluator.py index 4a5c71fd2f..6c1fff2850 100644 --- a/src/google/adk/evaluation/trajectory_evaluator.py +++ b/src/google/adk/evaluation/trajectory_evaluator.py @@ -71,9 +71,12 @@ def get_metric_info() -> MetricInfo: def evaluate_invocations( self, actual_invocations: list[Invocation], - expected_invocations: list[Invocation], + expected_invocations: Optional[list[Invocation]], ) -> EvaluationResult: """Returns EvaluationResult after performing evaluations using actual and expected invocations.""" + if expected_invocations is None: + raise ValueError("expected_invocations is needed by this metric.") + total_tool_use_accuracy = 0.0 num_invocations = 0 per_invocation_results = [] diff --git a/src/google/adk/evaluation/vertex_ai_eval_facade.py b/src/google/adk/evaluation/vertex_ai_eval_facade.py index d4d905007a..cd676aee44 100644 --- a/src/google/adk/evaluation/vertex_ai_eval_facade.py +++ b/src/google/adk/evaluation/vertex_ai_eval_facade.py @@ -55,23 +55,38 @@ class _VertexAiEvalFacade(Evaluator): """ def __init__( - self, threshold: float, metric_name: vertexai_types.PrebuiltMetric + self, + threshold: float, + metric_name: vertexai_types.PrebuiltMetric, + expected_invocations_required=False, ): self._threshold = threshold self._metric_name = metric_name + self._expected_invocations_required = expected_invocations_required @override def evaluate_invocations( self, actual_invocations: list[Invocation], - expected_invocations: list[Invocation], + expected_invocations: Optional[list[Invocation]], ) -> EvaluationResult: + if self._expected_invocations_required and expected_invocations is None: + raise ValueError("expected_invocations is needed by this metric.") + + # If expected_invocation are not required by the metric and if they are not + # supplied, we provide an a list of None. + expected_invocations = ( + [None] * len(actual_invocations) + if expected_invocations is None + else expected_invocations + ) + total_score = 0.0 num_invocations = 0 per_invocation_results = [] for actual, expected in zip(actual_invocations, expected_invocations): - prompt = self._get_text(expected.user_content) - reference = self._get_text(expected.final_response) + prompt = self._get_text(actual.user_content) + reference = self._get_text(expected.final_response) if expected else None response = self._get_text(actual.final_response) eval_case = { "prompt": prompt, diff --git a/tests/unittests/evaluation/test_local_eval_service.py b/tests/unittests/evaluation/test_local_eval_service.py index d5faf55f25..8d973c92da 100644 --- a/tests/unittests/evaluation/test_local_eval_service.py +++ b/tests/unittests/evaluation/test_local_eval_service.py @@ -16,6 +16,7 @@ import asyncio import sys +from typing import Optional from google.adk.agents.llm_agent import LlmAgent from google.adk.errors.not_found_error import NotFoundError @@ -70,6 +71,10 @@ def eval_service( DEFAULT_METRIC_EVALUATOR_REGISTRY.register_evaluator( metric_info=FakeEvaluator.get_metric_info(), evaluator=FakeEvaluator ) + DEFAULT_METRIC_EVALUATOR_REGISTRY.register_evaluator( + metric_info=FakeSingleSidedEvaluator.get_metric_info(), + evaluator=FakeSingleSidedEvaluator, + ) return LocalEvalService( root_agent=dummy_agent, eval_sets_manager=mock_eval_sets_manager, @@ -95,8 +100,10 @@ def get_metric_info() -> MetricInfo: def evaluate_invocations( self, actual_invocations: list[Invocation], - expected_invocations: list[Invocation], + expected_invocations: Optional[list[Invocation]], ): + if expected_invocations is None: + raise ValueError("expected_invocations is required for this metric.") per_invocation_results = [] for actual, expected in zip(actual_invocations, expected_invocations): per_invocation_results.append( @@ -114,6 +121,42 @@ def evaluate_invocations( ) +class FakeSingleSidedEvaluator(Evaluator): + + def __init__(self, eval_metric: EvalMetric): + self._eval_metric = eval_metric + + @staticmethod + def get_metric_info() -> MetricInfo: + return MetricInfo( + metric_name="fake_single_sided_metric", + description="Fake single sided metric description", + metric_value_info=MetricValueInfo( + interval=Interval(min_value=0.0, max_value=1.0) + ), + ) + + def evaluate_invocations( + self, + actual_invocations: list[Invocation], + expected_invocations: Optional[list[Invocation]], + ): + per_invocation_results = [] + for actual in actual_invocations: + per_invocation_results.append( + PerInvocationResult( + actual_invocation=actual, + score=0.995, + eval_status=EvalStatus.PASSED, + ) + ) + return EvaluationResult( + overall_score=0.95, + overall_eval_status=EvalStatus.PASSED, + per_invocation_results=per_invocation_results, + ) + + @pytest.mark.asyncio async def test_perform_inference_success( eval_service, @@ -224,19 +267,27 @@ async def test_perform_inference_eval_set_not_found( async def test_evaluate_success( eval_service, mock_eval_sets_manager, mock_eval_set_results_manager, mocker ): + invocation = Invocation( + user_content=genai_types.Content( + parts=[genai_types.Part(text="test user content.")] + ), + final_response=genai_types.Content( + parts=[genai_types.Part(text="test final response.")] + ), + ) inference_results = [ InferenceResult( app_name="test_app", eval_set_id="test_eval_set", eval_case_id="case1", - inferences=[], + inferences=[invocation.model_copy(deep=True)], session_id="session1", ), InferenceResult( app_name="test_app", eval_set_id="test_eval_set", eval_case_id="case2", - inferences=[], + inferences=[invocation.model_copy(deep=True)], session_id="session2", ), ] @@ -247,7 +298,7 @@ async def test_evaluate_success( ) mock_eval_case = mocker.MagicMock(spec=EvalCase) - mock_eval_case.conversation = [] + mock_eval_case.conversation = [invocation.model_copy(deep=True)] mock_eval_case.conversation_scenario = None mock_eval_case.session_input = None mock_eval_sets_manager.get_eval_case.return_value = mock_eval_case @@ -357,7 +408,70 @@ async def test_evaluate_single_inference_result( @pytest.mark.asyncio -async def test_evaluate_single_inference_result_skipped_for_conversation_scenario( +async def test_evaluate_single_inference_result_for_conversation_scenario( + eval_service, mock_eval_sets_manager, mocker +): + """To be removed once evaluation is implemented for conversation scenarios.""" + invocation = Invocation( + user_content=genai_types.Content( + parts=[genai_types.Part(text="test user content.")] + ), + final_response=genai_types.Content( + parts=[genai_types.Part(text="test final response.")] + ), + ) + inference_result = InferenceResult( + app_name="test_app", + eval_set_id="test_eval_set", + eval_case_id="case1", + inferences=[ + invocation.model_copy(deep=True), + invocation.model_copy(deep=True), + invocation.model_copy(deep=True), + ], + session_id="session1", + ) + eval_metric = EvalMetric( + metric_name="fake_single_sided_metric", threshold=0.5 + ) + evaluate_config = EvaluateConfig(eval_metrics=[eval_metric], parallelism=1) + + mock_eval_case = mocker.MagicMock(spec=EvalCase) + mock_eval_case.conversation = None + mock_eval_case.conversation_scenario = mocker.MagicMock() + mock_eval_case.session_input = None + mock_eval_sets_manager.get_eval_case.return_value = mock_eval_case + + _, result = await eval_service._evaluate_single_inference_result( + inference_result=inference_result, evaluate_config=evaluate_config + ) + assert isinstance(result, EvalCaseResult) + assert result.eval_id == "case1" + assert result.final_eval_status == EvalStatus.PASSED + assert len(result.overall_eval_metric_results) == 1 + assert ( + result.overall_eval_metric_results[0].metric_name + == "fake_single_sided_metric" + ) + assert result.overall_eval_metric_results[0].score == 0.95 + mock_eval_sets_manager.get_eval_case.assert_called_once_with( + app_name="test_app", eval_set_id="test_eval_set", eval_case_id="case1" + ) + + assert len(result.eval_metric_result_per_invocation) == 3 + for i in range(3): + invocation_result = result.eval_metric_result_per_invocation[i] + assert invocation_result.actual_invocation == inference_result.inferences[i] + assert invocation_result.expected_invocation == None + assert len(invocation_result.eval_metric_results) == 1 + metric_result = invocation_result.eval_metric_results[0] + assert metric_result.metric_name == "fake_single_sided_metric" + assert metric_result.score == 0.995 + assert metric_result.eval_status == EvalStatus.PASSED + + +@pytest.mark.asyncio +async def test_evaluate_single_inference_result_for_conversation_scenario_with_unsupported_metric( eval_service, mock_eval_sets_manager, mocker ): """To be removed once evaluation is implemented for conversation scenarios.""" @@ -373,13 +487,18 @@ async def test_evaluate_single_inference_result_skipped_for_conversation_scenari app_name="test_app", eval_set_id="test_eval_set", eval_case_id="case1", - inferences=[invocation.model_copy(deep=True)], + inferences=[ + invocation.model_copy(deep=True), + invocation.model_copy(deep=True), + invocation.model_copy(deep=True), + ], session_id="session1", ) eval_metric = EvalMetric(metric_name="fake_metric", threshold=0.5) evaluate_config = EvaluateConfig(eval_metrics=[eval_metric], parallelism=1) mock_eval_case = mocker.MagicMock(spec=EvalCase) + mock_eval_case.eval_id = "case1" mock_eval_case.conversation = None mock_eval_case.conversation_scenario = mocker.MagicMock() mock_eval_case.session_input = None @@ -391,15 +510,15 @@ async def test_evaluate_single_inference_result_skipped_for_conversation_scenari assert isinstance(result, EvalCaseResult) assert result.eval_id == "case1" assert result.final_eval_status == EvalStatus.NOT_EVALUATED - assert not result.overall_eval_metric_results - assert len(result.eval_metric_result_per_invocation) == 1 - invocation_result = result.eval_metric_result_per_invocation[0] - assert not invocation_result.eval_metric_results - assert ( - invocation_result.expected_invocation.final_response.parts[0].text - == "N/A" + assert len(result.overall_eval_metric_results) == 1 + assert result.overall_eval_metric_results[0].metric_name == "fake_metric" + assert result.overall_eval_metric_results[0].score is None + mock_eval_sets_manager.get_eval_case.assert_called_once_with( + app_name="test_app", eval_set_id="test_eval_set", eval_case_id="case1" ) + assert len(result.eval_metric_result_per_invocation) == 3 + def test_generate_final_eval_status_doesn_t_throw_on(eval_service): # How to fix if this test case fails? @@ -424,9 +543,11 @@ async def test_mcp_stdio_agent_no_runtime_error(mocker): """Test that LocalEvalService can handle MCP stdio agents without RuntimeError. This is a regression test for GitHub issue #2196: - "RuntimeError: Attempted to exit cancel scope in a different task than it was entered in" + "RuntimeError: Attempted to exit cancel scope in a different task than it was + entered in" - The fix ensures that Runner.close() is called to properly cleanup MCP connections. + The fix ensures that Runner.close() is called to properly cleanup MCP + connections. """ import tempfile From 240ef5beea9389911e8c03a6039b353befc716ac Mon Sep 17 00:00:00 2001 From: SOORAJ TS <72636628+SOORAJTS2001@users.noreply.github.com> Date: Tue, 28 Oct 2025 23:05:02 +0530 Subject: [PATCH 205/303] feat: Added support for enums as arguments for function tools (#3088) * feat: Added support for enums as arguments for function tools * feat: Add default value support for function tools fix: Add more test cases inside `test_build_function_declaration.py` for passing Enums as arguments * fix: format code with pyink --------- Co-authored-by: Wei Sun (Jack) Co-authored-by: Yvonne Yu <150068659+yyyu-google@users.noreply.github.com> --- .../tools/_function_parameter_parse_util.py | 17 ++++++++++- .../tools/test_build_function_declaration.py | 30 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/src/google/adk/tools/_function_parameter_parse_util.py b/src/google/adk/tools/_function_parameter_parse_util.py index a0168fbe21..9eda7a078c 100644 --- a/src/google/adk/tools/_function_parameter_parse_util.py +++ b/src/google/adk/tools/_function_parameter_parse_util.py @@ -15,6 +15,7 @@ from __future__ import annotations +from enum import Enum import inspect import logging import types as typing_types @@ -75,7 +76,7 @@ def _raise_if_schema_unsupported( ): if variant == GoogleLLMVariant.GEMINI_API: _raise_for_any_of_if_mldev(schema) - _update_for_default_if_mldev(schema) + # _update_for_default_if_mldev(schema) # No need of this since GEMINI now supports default value def _is_default_value_compatible( @@ -145,6 +146,20 @@ def _parse_schema_from_parameter( schema.type = _py_builtin_type_to_schema_type[param.annotation] _raise_if_schema_unsupported(variant, schema) return schema + if isinstance(param.annotation, type) and issubclass(param.annotation, Enum): + schema.type = types.Type.STRING + schema.enum = [e.value for e in param.annotation] + if param.default is not inspect.Parameter.empty: + default_value = ( + param.default.value + if isinstance(param.default, Enum) + else param.default + ) + if default_value not in schema.enum: + raise ValueError(default_value_error_msg) + schema.default = default_value + _raise_if_schema_unsupported(variant, schema) + return schema if ( get_origin(param.annotation) is Union # only parse simple UnionType, example int | str | float | bool diff --git a/tests/unittests/tools/test_build_function_declaration.py b/tests/unittests/tools/test_build_function_declaration.py index edf3c7128e..8be1f86520 100644 --- a/tests/unittests/tools/test_build_function_declaration.py +++ b/tests/unittests/tools/test_build_function_declaration.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +from enum import Enum from typing import Dict from typing import List @@ -22,6 +23,7 @@ # TODO: crewai requires python 3.10 as minimum # from crewai_tools import FileReadTool from pydantic import BaseModel +import pytest def test_string_input(): @@ -220,6 +222,34 @@ def simple_function( assert function_decl.parameters.properties['input_dir'].items.type == 'OBJECT' +def test_enums(): + + class InputEnum(Enum): + AGENT = 'agent' + TOOL = 'tool' + + def simple_function(input: InputEnum = InputEnum.AGENT): + return input.value + + function_decl = _automatic_function_calling_util.build_function_declaration( + func=simple_function + ) + + assert function_decl.name == 'simple_function' + assert function_decl.parameters.type == 'OBJECT' + assert function_decl.parameters.properties['input'].type == 'STRING' + assert function_decl.parameters.properties['input'].default == 'agent' + assert function_decl.parameters.properties['input'].enum == ['agent', 'tool'] + + def simple_function_with_wrong_enum(input: InputEnum = 'WRONG_ENUM'): + return input.value + + with pytest.raises(ValueError): + _automatic_function_calling_util.build_function_declaration( + func=simple_function_with_wrong_enum + ) + + def test_basemodel_list(): class ChildInput(BaseModel): input_str: str From 74d8361a7e4521a8ce765e07ef1ed98b9aa8f423 Mon Sep 17 00:00:00 2001 From: George Weale Date: Tue, 28 Oct 2025 11:56:01 -0700 Subject: [PATCH 206/303] fix: Add a fallback user message to LiteLLM requests if the last user message is empty Related to #3255 Close #2560 PiperOrigin-RevId: 825143315 --- src/google/adk/models/lite_llm.py | 48 ++++++++++++++++++++++++++ tests/unittests/models/test_litellm.py | 35 +++++++++++++++++++ 2 files changed, 83 insertions(+) diff --git a/src/google/adk/models/lite_llm.py b/src/google/adk/models/lite_llm.py index 94d9831c39..5829703613 100644 --- a/src/google/adk/models/lite_llm.py +++ b/src/google/adk/models/lite_llm.py @@ -155,6 +155,53 @@ def _safe_json_serialize(obj) -> str: return str(obj) +def _part_has_payload(part: types.Part) -> bool: + """Checks whether a Part contains usable payload for the model.""" + if part.text: + return True + if part.inline_data and part.inline_data.data: + return True + if part.file_data and (part.file_data.file_uri or part.file_data.data): + return True + return False + + +def _append_fallback_user_content_if_missing( + llm_request: LlmRequest, +) -> None: + """Ensures there is a user message with content for LiteLLM backends. + + Args: + llm_request: The request that may need a fallback user message. + """ + for content in reversed(llm_request.contents): + if content.role == "user": + parts = content.parts or [] + if any(_part_has_payload(part) for part in parts): + return + if not parts: + content.parts = [] + content.parts.append( + types.Part.from_text( + text="Handle the requests as specified in the System Instruction." + ) + ) + return + llm_request.contents.append( + types.Content( + role="user", + parts=[ + types.Part.from_text( + text=( + "Handle the requests as specified in the System" + " Instruction." + ) + ), + ], + ) + ) + + def _content_to_message_param( content: types.Content, ) -> Union[Message, list[Message]]: @@ -818,6 +865,7 @@ async def generate_content_async( """ self._maybe_append_user_content(llm_request) + _append_fallback_user_content_if_missing(llm_request) logger.debug(_build_request_log(llm_request)) messages, tools, response_format, generation_params = ( diff --git a/tests/unittests/models/test_litellm.py b/tests/unittests/models/test_litellm.py index 2fbacc0f1b..8138da74e4 100644 --- a/tests/unittests/models/test_litellm.py +++ b/tests/unittests/models/test_litellm.py @@ -548,6 +548,41 @@ async def test_generate_content_async(mock_acompletion, lite_llm_instance): ) +@pytest.mark.asyncio +async def test_generate_content_async_adds_fallback_user_message( + mock_acompletion, lite_llm_instance +): + llm_request = LlmRequest( + contents=[ + types.Content( + role="user", + parts=[], + ) + ] + ) + + async for _ in lite_llm_instance.generate_content_async(llm_request): + pass + + mock_acompletion.assert_called_once() + + _, kwargs = mock_acompletion.call_args + user_messages = [ + message for message in kwargs["messages"] if message["role"] == "user" + ] + assert any( + message.get("content") + == "Handle the requests as specified in the System Instruction." + for message in user_messages + ) + assert ( + sum(1 for content in llm_request.contents if content.role == "user") == 1 + ) + assert llm_request.contents[-1].parts[0].text == ( + "Handle the requests as specified in the System Instruction." + ) + + litellm_append_user_content_test_cases = [ pytest.param( LlmRequest( From 9851340ad1df86d6f5c21e8984199573f239bb2b Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Tue, 28 Oct 2025 13:29:19 -0700 Subject: [PATCH 207/303] feat: Add Bigquery detect_anomalies tool This change introduces a new `detect_anomalies` tool in `query_tool.py` which uses BigQuery ML's `CREATE MODEL` with `ARIMA_PLUS` type and `ML.DETECT_ANOMALIES` to detect anomalies. The new function is also added to the `bigquery_toolset`. PiperOrigin-RevId: 825181489 --- contributing/samples/bigquery/README.md | 6 + .../adk/tools/bigquery/bigquery_toolset.py | 1 + src/google/adk/tools/bigquery/query_tool.py | 211 ++++++++++++++++++ .../bigquery/test_bigquery_query_tool.py | 130 +++++++++++ .../tools/bigquery/test_bigquery_toolset.py | 3 +- 5 files changed, 350 insertions(+), 1 deletion(-) diff --git a/contributing/samples/bigquery/README.md b/contributing/samples/bigquery/README.md index 6737acb410..757993de96 100644 --- a/contributing/samples/bigquery/README.md +++ b/contributing/samples/bigquery/README.md @@ -46,6 +46,12 @@ distributed via the `google.adk.tools.bigquery` module. These tools include: `CONTRIBUTION_ANALYSIS` model and then querying it with `ML.GET_INSIGHTS` to find top contributors for a given metric. +9. `detect_anomalies` + + Perform time series anomaly detection in BigQuery by creating a temporary + `ARIMA_PLUS` model and then querying it with + `ML.DETECT_ANOMALIES` to detect time series data anomalies. + ## How to use Set up environment variables in your `.env` file for using diff --git a/src/google/adk/tools/bigquery/bigquery_toolset.py b/src/google/adk/tools/bigquery/bigquery_toolset.py index debf8a2d59..882cc4aa12 100644 --- a/src/google/adk/tools/bigquery/bigquery_toolset.py +++ b/src/google/adk/tools/bigquery/bigquery_toolset.py @@ -83,6 +83,7 @@ async def get_tools( query_tool.get_execute_sql(self._tool_settings), query_tool.forecast, query_tool.analyze_contribution, + query_tool.detect_anomalies, data_insights_tool.ask_data_insights, ] ] diff --git a/src/google/adk/tools/bigquery/query_tool.py b/src/google/adk/tools/bigquery/query_tool.py index c55b504934..fdabd69476 100644 --- a/src/google/adk/tools/bigquery/query_tool.py +++ b/src/google/adk/tools/bigquery/query_tool.py @@ -1092,3 +1092,214 @@ def analyze_contribution( settings.write_mode == original_write_mode return result + + +def detect_anomalies( + project_id: str, + history_data: str, + times_series_timestamp_col: str, + times_series_data_col: str, + horizon: Optional[int] = 10, + times_series_id_cols: Optional[list[str]] = None, + anomaly_prob_threshold: Optional[float] = 0.95, + *, + credentials: Credentials, + settings: BigQueryToolConfig, + tool_context: ToolContext, +) -> dict: + """Run a BigQuery time series ARIMA_PLUS model training and anomaly detection using CREATE MODEL and ML.DETECT_ANOMALIES clauses. + + Args: + project_id (str): The GCP project id in which the query should be + executed. + history_data (str): The table id of the BigQuery table containing the + history time series data or a query statement that select the history + data. + times_series_timestamp_col (str): The name of the colum containing the + timestamp for each data point. + times_series_data_col (str): The name of the column containing the + numerical values to be forecasted and anomaly detected. + horizon (int, optional): The number of time steps to forecast into the + future. Defaults to 10. + times_series_id_cols (list, optional): The column names of the id columns + to indicate each time series when there are multiple time series in the + table. All elements must be strings. Defaults to None. + anomaly_prob_threshold (float, optional): The probability threshold to + determine if a data point is an anomaly. Defaults to 0.95. + credentials (Credentials): The credentials to use for the request. + settings (BigQueryToolConfig): The settings for the tool. + tool_context (ToolContext): The context for the tool. + + Returns: + dict: Dictionary representing the result of the anomaly detection. The + result contains the boolean value if the data point is anomaly or + not, lower bound, upper bound and anomaly probability for each data + point and also the probability of whether the data point is anomaly + or not. + + Examples: + Detect Anomalies daily sales based on historical data from a BigQuery + table: + + >>> detect_anomalies( + ... project_id="my-gcp-project", + ... history_data="my-dataset.my-sales-table", + ... times_series_timestamp_col="sale_date", + ... times_series_data_col="daily_sales" + ... ) + { + "status": "SUCCESS", + "rows": [ + { + "ts_timestamp": "2021-01-01 00:00:01 UTC", + "ts_data": 125.3, + "is_anomaly": TRUE, + "lower_bound": 129.5, + "upper_bound": 133.6 , + "anomaly_probability": 0.93 + }, + ... + ] + } + + Detect Anomalies on multiple time series using a SQL query as input: + + >>> history_query = ( + ... "SELECT unique_id, timestamp, value " + ... "FROM `my-project.my-dataset.my-timeseries-table` " + ... "WHERE timestamp > '1980-01-01'" + ... ) + >>> detect_anomalies( + ... project_id="my-gcp-project", + ... history_data=history_query, + ... times_series_timestamp_col="timestamp", + ... times_series_data_col="value", + ... times_series_id_cols=["unique_id"] + ... ) + { + "status": "SUCCESS", + "rows": [ + { + "unique_id": "T1", + "ts_timestamp": "2021-01-01 00:00:01 UTC", + "ts_data": 125.3, + "is_anomaly": TRUE, + "lower_bound": 129.5, + "upper_bound": 133.6 , + "anomaly_probability": 0.93 + }, + ... + ] + } + + Error Scenarios: + When an element in `times_series_id_cols` is not a string: + + >>> detect_anomalies( + ... project_id="my-gcp-project", + ... history_data="my-dataset.my-sales-table", + ... times_series_timestamp_col="sale_date", + ... times_series_data_col="daily_sales", + ... times_series_id_cols=["store_id", 123] + ... ) + { + "status": "ERROR", + "error_details": "All elements in times_series_id_cols must be + strings." + } + + When `history_data` refers to a table that does not exist: + + >>> detect_anomalies( + ... project_id="my-gcp-project", + ... history_data="my-dataset.non-existent-table", + ... times_series_timestamp_col="sale_date", + ... times_series_data_col="daily_sales" + ... ) + { + "status": "ERROR", + "error_details": "Not found: Table + my-gcp-project:my-dataset.non-existent-table was not found in + location US" + } + """ + trimmed_upper_history_data = history_data.strip().upper() + if trimmed_upper_history_data.startswith( + "SELECT" + ) or trimmed_upper_history_data.startswith("WITH"): + history_data_source = f"({history_data})" + else: + history_data_source = f"SELECT * FROM `{history_data}`" + + options = [ + "MODEL_TYPE = 'ARIMA_PLUS'", + f"TIME_SERIES_TIMESTAMP_COL = '{times_series_timestamp_col}'", + f"TIME_SERIES_DATA_COL = '{times_series_data_col}'", + f"HORIZON = {horizon}", + ] + + if times_series_id_cols: + if not all(isinstance(item, str) for item in times_series_id_cols): + return { + "status": "ERROR", + "error_details": ( + "All elements in times_series_id_cols must be strings." + ), + } + times_series_id_cols_str = ( + "[" + ", ".join([f"'{col}'" for col in times_series_id_cols]) + "]" + ) + options.append(f"TIME_SERIES_ID_COL = {times_series_id_cols_str}") + + options_str = ", ".join(options) + + model_name = f"detect_anomalies_model_{str(uuid.uuid4()).replace('-', '_')}" + + create_model_query = f""" + CREATE TEMP MODEL {model_name} + OPTIONS ({options_str}) + AS {history_data_source} + """ + + anomaly_detection_query = f""" + SELECT * FROM ML.DETECT_ANOMALIES(MODEL {model_name}, STRUCT({anomaly_prob_threshold} AS anomaly_prob_threshold)) + """ + + # Create a session and run the create model query. + original_write_mode = settings.write_mode + try: + if settings.write_mode == WriteMode.BLOCKED: + raise ValueError("anomaly detection is not allowed in this session.") + elif original_write_mode != WriteMode.PROTECTED: + # Running create temp model requires a session. So we set the write mode + # to PROTECTED to run the create model query and job query in the same + # session. + settings.write_mode = WriteMode.PROTECTED + + result = execute_sql( + project_id, + create_model_query, + credentials, + settings, + tool_context, + ) + if result["status"] != "SUCCESS": + return result + + result = execute_sql( + project_id, + anomaly_detection_query, + credentials, + settings, + tool_context, + ) + except Exception as ex: # pylint: disable=broad-except + return { + "status": "ERROR", + "error_details": f"Error during anomaly detection: {str(ex)}", + } + finally: + # Restore the original write mode. + settings.write_mode == original_write_mode + + return result diff --git a/tests/unittests/tools/bigquery/test_bigquery_query_tool.py b/tests/unittests/tools/bigquery/test_bigquery_query_tool.py index 6e4442574f..5c8b921234 100644 --- a/tests/unittests/tools/bigquery/test_bigquery_query_tool.py +++ b/tests/unittests/tools/bigquery/test_bigquery_query_tool.py @@ -29,6 +29,7 @@ from google.adk.tools.bigquery.config import BigQueryToolConfig from google.adk.tools.bigquery.config import WriteMode from google.adk.tools.bigquery.query_tool import analyze_contribution +from google.adk.tools.bigquery.query_tool import detect_anomalies from google.adk.tools.bigquery.query_tool import execute_sql from google.adk.tools.bigquery.query_tool import forecast from google.adk.tools.tool_context import ToolContext @@ -1401,3 +1402,132 @@ def test_analyze_contribution_with_invalid_dimension_id_cols(): "All elements in dimension_id_cols must be strings." in result["error_details"] ) + + +# detect_anomalies calls execute_sql twice. We need to test that +# the queries are properly constructed and call execute_sql with the correct +# parameters exactly twice. +@mock.patch("google.adk.tools.bigquery.query_tool.execute_sql", autospec=True) +@mock.patch("uuid.uuid4", autospec=True) +def test_detect_anomalies_with_table_id(mock_uuid, mock_execute_sql): + """Test time series anomaly detection tool invocation with a table id.""" + mock_credentials = mock.MagicMock(spec=Credentials) + mock_settings = BigQueryToolConfig(write_mode=WriteMode.PROTECTED) + mock_tool_context = mock.create_autospec(ToolContext, instance=True) + mock_uuid.return_value = "test_uuid" + mock_execute_sql.return_value = {"status": "SUCCESS"} + + history_data_query = "SELECT * FROM `test-dataset.test-table`" + detect_anomalies( + project_id="test-project", + history_data=history_data_query, + times_series_timestamp_col="ts_timestamp", + times_series_data_col="ts_data", + credentials=mock_credentials, + settings=mock_settings, + tool_context=mock_tool_context, + ) + + expected_create_model_query = """ + CREATE TEMP MODEL detect_anomalies_model_test_uuid + OPTIONS (MODEL_TYPE = 'ARIMA_PLUS', TIME_SERIES_TIMESTAMP_COL = 'ts_timestamp', TIME_SERIES_DATA_COL = 'ts_data', HORIZON = 10) + AS (SELECT * FROM `test-dataset.test-table`) + """ + + expected_anomaly_detection_query = """ + SELECT * FROM ML.DETECT_ANOMALIES(MODEL detect_anomalies_model_test_uuid, STRUCT(0.95 AS anomaly_prob_threshold)) + """ + + assert mock_execute_sql.call_count == 2 + mock_execute_sql.assert_any_call( + "test-project", + expected_create_model_query, + mock_credentials, + mock_settings, + mock_tool_context, + ) + mock_execute_sql.assert_any_call( + "test-project", + expected_anomaly_detection_query, + mock_credentials, + mock_settings, + mock_tool_context, + ) + + +# detect_anomalies calls execute_sql twice. We need to test that +# the queries are properly constructed and call execute_sql with the correct +# parameters exactly twice. +@mock.patch("google.adk.tools.bigquery.query_tool.execute_sql", autospec=True) +@mock.patch("uuid.uuid4", autospec=True) +def test_detect_anomalies_with_custom_params(mock_uuid, mock_execute_sql): + """Test time series anomaly detection tool invocation with a table id.""" + mock_credentials = mock.MagicMock(spec=Credentials) + mock_settings = BigQueryToolConfig(write_mode=WriteMode.PROTECTED) + mock_tool_context = mock.create_autospec(ToolContext, instance=True) + mock_uuid.return_value = "test_uuid" + mock_execute_sql.return_value = {"status": "SUCCESS"} + + history_data_query = "SELECT * FROM `test-dataset.test-table`" + detect_anomalies( + project_id="test-project", + history_data=history_data_query, + times_series_timestamp_col="ts_timestamp", + times_series_data_col="ts_data", + times_series_id_cols=["dim1", "dim2"], + horizon=20, + anomaly_prob_threshold=0.8, + credentials=mock_credentials, + settings=mock_settings, + tool_context=mock_tool_context, + ) + + expected_create_model_query = """ + CREATE TEMP MODEL detect_anomalies_model_test_uuid + OPTIONS (MODEL_TYPE = 'ARIMA_PLUS', TIME_SERIES_TIMESTAMP_COL = 'ts_timestamp', TIME_SERIES_DATA_COL = 'ts_data', HORIZON = 20, TIME_SERIES_ID_COL = ['dim1', 'dim2']) + AS (SELECT * FROM `test-dataset.test-table`) + """ + + expected_anomaly_detection_query = """ + SELECT * FROM ML.DETECT_ANOMALIES(MODEL detect_anomalies_model_test_uuid, STRUCT(0.8 AS anomaly_prob_threshold)) + """ + + assert mock_execute_sql.call_count == 2 + mock_execute_sql.assert_any_call( + "test-project", + expected_create_model_query, + mock_credentials, + mock_settings, + mock_tool_context, + ) + mock_execute_sql.assert_any_call( + "test-project", + expected_anomaly_detection_query, + mock_credentials, + mock_settings, + mock_tool_context, + ) + + +def test_detect_anomalies__with_invalid_id_cols(): + """Test time series anomaly detection tool invocation with invalid times_series_id_cols.""" + mock_credentials = mock.MagicMock(spec=Credentials) + mock_settings = BigQueryToolConfig() + mock_tool_context = mock.create_autospec(ToolContext, instance=True) + + result = detect_anomalies( + project_id="test-project", + history_data="test-dataset.test-table", + times_series_timestamp_col="ts_timestamp", + times_series_data_col="ts_data", + times_series_id_cols=["dim1", 123], + credentials=mock_credentials, + settings=mock_settings, + tool_context=mock_tool_context, + ) + + assert result["status"] == "ERROR" + assert ( + "All elements in times_series_id_cols must be strings." + in result["error_details"] + ) diff --git a/tests/unittests/tools/bigquery/test_bigquery_toolset.py b/tests/unittests/tools/bigquery/test_bigquery_toolset.py index 9a65018392..1da7298694 100644 --- a/tests/unittests/tools/bigquery/test_bigquery_toolset.py +++ b/tests/unittests/tools/bigquery/test_bigquery_toolset.py @@ -41,7 +41,7 @@ async def test_bigquery_toolset_tools_default(): tools = await toolset.get_tools() assert tools is not None - assert len(tools) == 8 + assert len(tools) == 9 assert all([isinstance(tool, GoogleTool) for tool in tools]) expected_tool_names = set([ @@ -53,6 +53,7 @@ async def test_bigquery_toolset_tools_default(): "ask_data_insights", "forecast", "analyze_contribution", + "detect_anomalies", ]) actual_tool_names = set([tool.name for tool in tools]) assert actual_tool_names == expected_tool_names From 971eafab96af63ac3d625a4a6df0c4f62f4cf30c Mon Sep 17 00:00:00 2001 From: Liang Wu Date: Tue, 28 Oct 2025 13:48:23 -0700 Subject: [PATCH 208/303] feat: Add `crewai[tools]` to `pyproject.toml` test section This dependency is added for Python versions 3.10 and above to support CrewaiTool unit tests. https://github.com/google/adk-python/actions/runs/18813223838/job/53801335597?pr=3037. PiperOrigin-RevId: 825189153 --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 1c37e76458..7dedc9c414 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -112,16 +112,17 @@ test = [ # go/keep-sorted start "a2a-sdk>=0.3.0,<0.4.0;python_version>='3.10'", "anthropic>=0.43.0", # For anthropic model tests + "crewai[tools];python_version>='3.10'", # For CrewaiTool tests "kubernetes>=29.0.0", # For GkeCodeExecutor "langchain-community>=0.3.17", "langgraph>=0.2.60, <0.4.8", # For LangGraphAgent "litellm>=1.75.5, <2.0.0", # For LiteLLM tests "llama-index-readers-file>=0.4.0", # For retrieval tests "openai>=1.100.2", # For LiteLLM - "pytest>=8.3.4", "pytest-asyncio>=0.25.0", "pytest-mock>=3.14.0", "pytest-xdist>=3.6.1", + "pytest>=8.3.4", "python-multipart>=0.0.9", "rouge-score>=0.1.2", "tabulate>=0.9.0", From 61adfcd69adf7980ceccfee943932ae34cb2025e Mon Sep 17 00:00:00 2001 From: "Wei Sun (Jack)" Date: Tue, 28 Oct 2025 14:12:01 -0700 Subject: [PATCH 209/303] refactor: Adds a util method to check the enablement of any env variable PiperOrigin-RevId: 825199260 --- src/google/adk/models/apigee_llm.py | 6 +- .../adk/sessions/vertex_ai_session_service.py | 3 +- src/google/adk/utils/env_utils.py | 59 +++++++++++++++++++ src/google/adk/utils/variant_utils.py | 9 +-- tests/unittests/utils/test_env_utils.py | 49 +++++++++++++++ 5 files changed, 115 insertions(+), 11 deletions(-) create mode 100644 src/google/adk/utils/env_utils.py create mode 100644 tests/unittests/utils/test_env_utils.py diff --git a/src/google/adk/models/apigee_llm.py b/src/google/adk/models/apigee_llm.py index c93e5fe2a9..0229f97623 100644 --- a/src/google/adk/models/apigee_llm.py +++ b/src/google/adk/models/apigee_llm.py @@ -27,6 +27,7 @@ from google.genai import types from typing_extensions import override +from ..utils.env_utils import is_env_enabled from .google_llm import Gemini if TYPE_CHECKING: @@ -142,10 +143,7 @@ def _identify_vertexai(model: str) -> bool: """Returns True if the model spec starts with apigee/vertex_ai.""" return not model.startswith('apigee/gemini/') and ( model.startswith('apigee/vertex_ai/') - or os.environ.get( - _GOOGLE_GENAI_USE_VERTEXAI_ENV_VARIABLE_NAME, '0' - ).lower() - in ['true', '1'] + or is_env_enabled(_GOOGLE_GENAI_USE_VERTEXAI_ENV_VARIABLE_NAME) ) diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index 4bd2ea3605..48b112b693 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -35,6 +35,7 @@ from . import _session_util from ..events.event import Event from ..events.event_actions import EventActions +from ..utils.env_utils import is_env_enabled from .base_session_service import BaseSessionService from .base_session_service import GetSessionConfig from .base_session_service import ListSessionsResponse @@ -364,7 +365,7 @@ def _is_vertex_express_mode( ) -> bool: """Check if Vertex AI and API key are both enabled replacing project and location, meaning the user is using the Vertex Express Mode.""" return ( - os.environ.get('GOOGLE_GENAI_USE_VERTEXAI', '0').lower() in ['true', '1'] + is_env_enabled('GOOGLE_GENAI_USE_VERTEXAI') and os.environ.get('GOOGLE_API_KEY', None) is not None and project is None and location is None diff --git a/src/google/adk/utils/env_utils.py b/src/google/adk/utils/env_utils.py new file mode 100644 index 0000000000..bb37b6585c --- /dev/null +++ b/src/google/adk/utils/env_utils.py @@ -0,0 +1,59 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Utilities for environment variable handling. + +This module is for ADK internal use only. +Please do not rely on the implementation details. +""" + +from __future__ import annotations + +import os + + +def is_env_enabled(env_var_name: str, default: str = '0') -> bool: + """Check if an environment variable is enabled. + + An environment variable is considered enabled if its value (case-insensitive) + is 'true' or '1'. + + Args: + env_var_name: The name of the environment variable to check. + default: The default value to use if the environment variable is not set. + Defaults to '0'. + + Returns: + True if the environment variable is enabled, False otherwise. + + Examples: + >>> os.environ['MY_FLAG'] = 'true' + >>> is_env_enabled('MY_FLAG') + True + + >>> os.environ['MY_FLAG'] = '1' + >>> is_env_enabled('MY_FLAG') + True + + >>> os.environ['MY_FLAG'] = 'false' + >>> is_env_enabled('MY_FLAG') + False + + >>> is_env_enabled('NONEXISTENT_FLAG') + False + + >>> is_env_enabled('NONEXISTENT_FLAG', default='1') + True + """ + return os.environ.get(env_var_name, default).lower() in ['true', '1'] diff --git a/src/google/adk/utils/variant_utils.py b/src/google/adk/utils/variant_utils.py index 5de82b426e..c0b4bc6e39 100644 --- a/src/google/adk/utils/variant_utils.py +++ b/src/google/adk/utils/variant_utils.py @@ -21,7 +21,8 @@ from __future__ import annotations from enum import Enum -import os + +from .env_utils import is_env_enabled _GOOGLE_LLM_VARIANT_VERTEX_AI = 'VERTEX_AI' _GOOGLE_LLM_VARIANT_GEMINI_API = 'GEMINI_API' @@ -42,10 +43,6 @@ class GoogleLLMVariant(Enum): def get_google_llm_variant() -> GoogleLLMVariant: return ( GoogleLLMVariant.VERTEX_AI - if os.environ.get('GOOGLE_GENAI_USE_VERTEXAI', '0').lower() - in [ - 'true', - '1', - ] + if is_env_enabled('GOOGLE_GENAI_USE_VERTEXAI') else GoogleLLMVariant.GEMINI_API ) diff --git a/tests/unittests/utils/test_env_utils.py b/tests/unittests/utils/test_env_utils.py new file mode 100644 index 0000000000..954065a662 --- /dev/null +++ b/tests/unittests/utils/test_env_utils.py @@ -0,0 +1,49 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from google.adk.utils.env_utils import is_env_enabled +import pytest + + +@pytest.mark.parametrize( + 'env_value,expected', + [ + ('true', True), + ('TRUE', True), + ('TrUe', True), + ('1', True), + ('false', False), + ('FALSE', False), + ('0', False), + ('', False), + ], +) +def test_is_env_enabled(monkeypatch, env_value, expected): + """Test is_env_enabled with various environment variable values.""" + monkeypatch.setenv('TEST_FLAG', env_value) + assert is_env_enabled('TEST_FLAG') is expected + + +@pytest.mark.parametrize( + 'default,expected', + [ + ('0', False), + ('1', True), + ('true', True), + ], +) +def test_is_env_enabled_with_defaults(monkeypatch, default, expected): + """Test is_env_enabled when env var is not set with different defaults.""" + monkeypatch.delenv('TEST_FLAG', raising=False) + assert is_env_enabled('TEST_FLAG', default=default) is expected From 1aa9bb13b3e92bf35b5961a0884a5be98cd5f951 Mon Sep 17 00:00:00 2001 From: Ankur Sharma Date: Tue, 28 Oct 2025 15:46:06 -0700 Subject: [PATCH 210/303] chore: Update vertex ai in example store and rag retrieval to use proxy PiperOrigin-RevId: 825237803 --- src/google/adk/dependencies/vertexai.py | 1 + src/google/adk/examples/vertex_ai_example_store.py | 4 +++- src/google/adk/tools/retrieval/vertex_ai_rag_retrieval.py | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/google/adk/dependencies/vertexai.py b/src/google/adk/dependencies/vertexai.py index 0fb060880b..4f254d87a8 100644 --- a/src/google/adk/dependencies/vertexai.py +++ b/src/google/adk/dependencies/vertexai.py @@ -15,4 +15,5 @@ from __future__ import annotations import vertexai +from vertexai.preview import example_stores from vertexai.preview import rag diff --git a/src/google/adk/examples/vertex_ai_example_store.py b/src/google/adk/examples/vertex_ai_example_store.py index 718003ae2e..92a6de7e33 100644 --- a/src/google/adk/examples/vertex_ai_example_store.py +++ b/src/google/adk/examples/vertex_ai_example_store.py @@ -12,10 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations + from google.genai import types from typing_extensions import override -from vertexai.preview import example_stores +from ..dependencies.vertexai import example_stores from .base_example_provider import BaseExampleProvider from .example import Example diff --git a/src/google/adk/tools/retrieval/vertex_ai_rag_retrieval.py b/src/google/adk/tools/retrieval/vertex_ai_rag_retrieval.py index 7edce4f944..15cf3b00c4 100644 --- a/src/google/adk/tools/retrieval/vertex_ai_rag_retrieval.py +++ b/src/google/adk/tools/retrieval/vertex_ai_rag_retrieval.py @@ -22,8 +22,8 @@ from google.genai import types from typing_extensions import override -from vertexai.preview import rag +from ...dependencies.vertexai import rag from ...utils.model_name_utils import is_gemini_2_or_above from ..tool_context import ToolContext from .base_retrieval_tool import BaseRetrievalTool From edfe5539421d196ca4da14d3a37fac7b598f8c8d Mon Sep 17 00:00:00 2001 From: Artem Oroberts Date: Tue, 28 Oct 2025 15:51:35 -0700 Subject: [PATCH 211/303] feat: Add sample agent for VertexAiCodeExecutor This change introduces a new sample agent and documentation to demonstrate the usage of the `VertexAiCodeExecutor`. The new agent, located at `vertex_code_execution/agent.py`, is a direct counterpart to the existing sample at `code_execution/agent.py`. The key difference is that this new agent uses `VertexAiCodeExecutor` to execute code within the Vertex AI Code Interpreter Extension, whereas the original sample uses `BuiltInCodeExecutor` to run code in the model's built-in sandbox. A `README.md` file is also included to provide an overview, setup instructions, and sample usage for the new agent. Related: #2993 PiperOrigin-RevId: 825239758 --- .../samples/vertex_code_execution/README.md | 59 +++++++++++ .../samples/vertex_code_execution/__init__.py | 15 +++ .../samples/vertex_code_execution/agent.py | 100 ++++++++++++++++++ 3 files changed, 174 insertions(+) create mode 100644 contributing/samples/vertex_code_execution/README.md create mode 100644 contributing/samples/vertex_code_execution/__init__.py create mode 100644 contributing/samples/vertex_code_execution/agent.py diff --git a/contributing/samples/vertex_code_execution/README.md b/contributing/samples/vertex_code_execution/README.md new file mode 100644 index 0000000000..121de737c0 --- /dev/null +++ b/contributing/samples/vertex_code_execution/README.md @@ -0,0 +1,59 @@ +# Vertex AI Code Execution Agent Sample + +This directory contains a sample agent that demonstrates how to use the +`VertexAiCodeExecutor` for data science tasks. + +## Overview + +The agent is designed to assist with data analysis in a Python environment. It +can execute Python code to perform tasks like data manipulation, analysis, and +visualization. This agent is particularly useful for tasks that require a secure +and sandboxed code execution environment with common data science libraries +pre-installed. + +This sample is a direct counterpart to the +[code execution sample](../code_execution/) which uses the +`BuiltInCodeExecutor`. The key difference in this sample is the use of +`VertexAiCodeExecutor`. + +## `VertexAiCodeExecutor` + +The `VertexAiCodeExecutor` leverages the +[Vertex AI Code Interpreter Extension](https://cloud.google.com/vertex-ai/generative-ai/docs/extensions/code-interpreter) +to run Python code. This provides several advantages: + +- **Security**: Code is executed in a sandboxed environment on Google Cloud, + isolating it from your local system. +- **Pre-installed Libraries**: The environment comes with many common Python + data science libraries pre-installed, such as `pandas`, `numpy`, and + `matplotlib`. +- **Stateful Execution**: The execution environment is stateful, meaning + variables and data from one code execution are available in subsequent + executions within the same session. + +## How to use + +### Prerequisites + +Ensure you have configured your environment for using +[Google Cloud Vertex AI](https://google.github.io/adk-docs/get-started/quickstart/#gemini---google-cloud-vertex-ai). +You will need to have a Google Cloud Project with the Vertex AI API enabled. + +### Running the agent + +You can run this agent using the ADK CLI from the root of the repository. + +To interact with the agent through the command line: + +```bash +adk run contributing/samples/vertex_code_execution "Plot a sine wave from 0 to 10" +``` + +To use the web interface: + +```bash +adk web contributing/samples/ +``` + +Then select `vertex_code_execution` from the list of agents and interact with +it. diff --git a/contributing/samples/vertex_code_execution/__init__.py b/contributing/samples/vertex_code_execution/__init__.py new file mode 100644 index 0000000000..c48963cdc7 --- /dev/null +++ b/contributing/samples/vertex_code_execution/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/vertex_code_execution/agent.py b/contributing/samples/vertex_code_execution/agent.py new file mode 100644 index 0000000000..39ad65d3ac --- /dev/null +++ b/contributing/samples/vertex_code_execution/agent.py @@ -0,0 +1,100 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Data science agent that uses Vertex AI code interpreter.""" + +from google.adk.agents.llm_agent import Agent +from google.adk.code_executors.vertex_ai_code_executor import VertexAiCodeExecutor + + +def base_system_instruction(): + """Returns: data science agent system instruction.""" + + return """ + # Guidelines + + **Objective:** Assist the user in achieving their data analysis goals within the context of a Python Colab notebook, **with emphasis on avoiding assumptions and ensuring accuracy.** Reaching that goal can involve multiple steps. When you need to generate code, you **don't** need to solve the goal in one go. Only generate the next step at a time. + + **Code Execution:** All code snippets provided will be executed within the Colab environment. + + **Statefulness:** All code snippets are executed and the variables stays in the environment. You NEVER need to re-initialize variables. You NEVER need to reload files. You NEVER need to re-import libraries. + + **Imported Libraries:** The following libraries are ALREADY imported and should NEVER be imported again: + + ```tool_code + import io + import math + import re + import matplotlib.pyplot as plt + import numpy as np + import pandas as pd + import scipy + ``` + + **Output Visibility:** Always print the output of code execution to visualize results, especially for data exploration and analysis. For example: + - To look a the shape of a pandas.DataFrame do: + ```tool_code + print(df.shape) + ``` + The output will be presented to you as: + ```tool_outputs + (49, 7) + + ``` + - To display the result of a numerical computation: + ```tool_code + x = 10 ** 9 - 12 ** 5 + print(f'{{x=}}') + ``` + The output will be presented to you as: + ```tool_outputs + x=999751168 + + ``` + - You **never** generate ```tool_outputs yourself. + - You can then use this output to decide on next steps. + - Print just variables (e.g., `print(f'{{variable=}}')`. + + **No Assumptions:** **Crucially, avoid making assumptions about the nature of the data or column names.** Base findings solely on the data itself. Always use the information obtained from `explore_df` to guide your analysis. + + **Available files:** Only use the files that are available as specified in the list of available files. + + **Data in prompt:** Some queries contain the input data directly in the prompt. You have to parse that data into a pandas DataFrame. ALWAYS parse all the data. NEVER edit the data that are given to you. + + **Answerability:** Some queries may not be answerable with the available data. In those cases, inform the user why you cannot process their query and suggest what type of data would be needed to fulfill their request. + + """ + + +root_agent = Agent( + model="gemini-2.5-flash", + name="data_science_agent", + instruction=base_system_instruction() + """ + + +You need to assist the user with their queries by looking at the data and the context in the conversation. +You final answer should summarize the code and code execution relavant to the user query. + +You should include all pieces of data to answer the user query, such as the table from code execution results. +If you cannot answer the question directly, you should follow the guidelines above to generate the next step. +If the question can be answered directly with writing any code, you should do that. +If you doesn't have enough data to answer the question, you should ask for clarification from the user. + +You should NEVER install any package on your own like `pip install ...`. +When plotting trends, you should make sure to sort and order the data by the x-axis. + + +""", + code_executor=VertexAiCodeExecutor(), +) From 8eeff35b35d7e1538a5c9662cc8369f6ff7962f8 Mon Sep 17 00:00:00 2001 From: Artem Oroberts Date: Tue, 28 Oct 2025 15:52:31 -0700 Subject: [PATCH 212/303] feat: Demonstrate CodeExecutor customization for environment setup This change introduces a powerful pattern for customizing code execution environments by extending a base `CodeExecutor`. It showcases how to inject setup code to prepare the environment before a user's code is run, enabling advanced use cases that require specific configurations. As a practical example, this change implements `CustomCodeExecutor`, a subclass of `VertexAiCodeExecutor`, to solve the problem of rendering non-standard characters in `matplotlib` plots (Issue #2993). The custom executor programmatically adds a Japanese font to the `matplotlib` font manager at runtime. This is achieved by overriding the `execute_code` method to add font files to execution input and prepend the necessary font-loading logic. This approach is not limited to fonts and can be adapted for other setup tasks. Fixes: #2993 PiperOrigin-RevId: 825240143 --- .../samples/custom_code_execution/README.md | 71 ++++++++ .../samples/custom_code_execution/__init__.py | 15 ++ .../samples/custom_code_execution/agent.py | 166 ++++++++++++++++++ 3 files changed, 252 insertions(+) create mode 100644 contributing/samples/custom_code_execution/README.md create mode 100644 contributing/samples/custom_code_execution/__init__.py create mode 100644 contributing/samples/custom_code_execution/agent.py diff --git a/contributing/samples/custom_code_execution/README.md b/contributing/samples/custom_code_execution/README.md new file mode 100644 index 0000000000..edaf88b89c --- /dev/null +++ b/contributing/samples/custom_code_execution/README.md @@ -0,0 +1,71 @@ +# Custom Code Executor Agent Sample + +This directory contains a sample agent that demonstrates how to customize a +`CodeExecutor` to perform environment setup before executing code. The specific +example shows how to add support for Japanese fonts in `matplotlib` plots by +subclassing `VertexAiCodeExecutor`. + +## Overview + +This sample showcases a powerful pattern for customizing code execution +environments. By extending a base `CodeExecutor`, you can inject setup code to +prepare the environment before a user's code is run. This enables advanced use +cases that require specific configurations, in this case, adding custom fonts. + +## Key Concept: `CodeExecutor` Customization + +The Agent Development Kit (ADK) allows for powerful customization of code +execution by extending existing `CodeExecutor` classes. By subclassing an +executor (e.g., `VertexAiCodeExecutor`) and overriding its `execute_code` +method, you can inject custom logic to: + +- Modify the code before it's executed. +- Add files to the execution environment. +- Process the results after execution. + +## Example: Adding Japanese Font Support + +The `CustomCodeExecutor` in this sample solves a common issue where non-Latin +characters do not render correctly in plots generated by `matplotlib` due to +missing fonts in the execution environment. + +It achieves this by: 1. **Subclassing `VertexAiCodeExecutor`**: It inherits all +the functionality of the standard Vertex AI code executor. 2. **Overriding +`execute_code`**: Before calling the parent's `execute_code` method, it performs +the following steps: a. Downloads a Japanese font file (`NotoSerifJP`). b. Adds +the font file to the list of files to be uploaded to the execution environment. +c. Prepends a Python code snippet to the user's code. This snippet uses +`matplotlib.font_manager` to register the newly available font file, making it +available for plotting. 3. **Executing the modified code**: The combined code +(setup snippet + original code) is then executed in the Vertex AI environment, +which now has the Japanese font available for `matplotlib`. + +This ensures that any plots generated during the agent's session can correctly +display Japanese characters. + +## How to use + +### Prerequisites + +Ensure you have configured your environment for using +[Google Cloud Vertex AI](https://google.github.io/adk-docs/get-started/quickstart/#gemini---google-cloud-vertex-ai). +You will need to have a Google Cloud Project with the Vertex AI API enabled. + +### Running the agent + +You can run this agent using the ADK CLI. + +To interact with the agent through the command line: + +```bash +adk run contributing/samples/custom_code_execution "Plot a bar chart with these categories and values: {'リンゴ': 10, 'バナナ': 15, 'オレンジ': 8}. Title the chart '果物の在庫' (Fruit Stock)." +``` + +To use the web interface: + +```bash +adk web contributing/samples/ +``` + +Then select `custom_code_execution` from the list of agents and interact with +it. diff --git a/contributing/samples/custom_code_execution/__init__.py b/contributing/samples/custom_code_execution/__init__.py new file mode 100644 index 0000000000..c48963cdc7 --- /dev/null +++ b/contributing/samples/custom_code_execution/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/custom_code_execution/agent.py b/contributing/samples/custom_code_execution/agent.py new file mode 100644 index 0000000000..b62a9717ba --- /dev/null +++ b/contributing/samples/custom_code_execution/agent.py @@ -0,0 +1,166 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Data science agent, with a custom code executor that enables Japanese fonts.""" + +from __future__ import annotations + +import base64 +from typing import Optional +import urllib.request + +from google.adk.agents.invocation_context import InvocationContext +from google.adk.agents.llm_agent import Agent +from google.adk.code_executors.code_execution_utils import CodeExecutionInput +from google.adk.code_executors.code_execution_utils import CodeExecutionResult +from google.adk.code_executors.code_execution_utils import File +from google.adk.code_executors.vertex_ai_code_executor import VertexAiCodeExecutor +from typing_extensions import override + +# The Python code snippet to be prepended to the user's code. +# This will register the Japanese font with matplotlib. +_FONT_SETUP_CODE = """ +import matplotlib.font_manager as fm + +font_path = "NotoSerifJP[wght].ttf" +try: + fm.fontManager.addfont(font_path) + prop = fm.FontProperties(fname=font_path) + plt.rcParams['font.family'] = prop.get_name() + print("Japanese font enabled for matplotlib.") +except Exception as e: + print(f"Failed to set Japanese font: {e}") +""" + + +def _load_font_file(font_url: str, font_filename: str) -> Optional[File]: + """Downloads a font file and returns it as a File object.""" + try: + with urllib.request.urlopen(font_url) as response: + font_bytes = response.read() + except Exception as e: + print(f"Failed to download font: {e}") + return None + + # Base64-encode the font content. + font_content = base64.b64encode(font_bytes).decode("utf-8") + return File(name=font_filename, content=font_content) + + +class CustomCodeExecutor(VertexAiCodeExecutor): + """A Vertex AI code executor that automatically enables Japanese fonts.""" + + @override + def execute_code( + self, + invocation_context: InvocationContext, + code_execution_input: CodeExecutionInput, + ) -> CodeExecutionResult: + font_url = "https://github.com/notofonts/noto-cjk/raw/refs/heads/main/google-fonts/NotoSerifJP%5Bwght%5D.ttf" + font_filename = "NotoSerifJP[wght].ttf" + font_file = _load_font_file(font_url, font_filename) + # If the font download fails, execute the original code without it. + if font_file is not None: + # Add the font file to the input files. + code_execution_input.input_files.append(font_file) + + # Prepend the font setup code to the user's code. + code_execution_input.code = ( + f"{_FONT_SETUP_CODE}\n\n{code_execution_input.code}" + ) + + # Execute the modified code. + return super().execute_code(invocation_context, code_execution_input) + + +def base_system_instruction(): + """Returns: data science agent system instruction.""" + + return """ + # Guidelines + + **Objective:** Assist the user in achieving their data analysis goals within the context of a Python Colab notebook, **with emphasis on avoiding assumptions and ensuring accuracy.** Reaching that goal can involve multiple steps. When you need to generate code, you **don't** need to solve the goal in one go. Only generate the next step at a time. + + **Code Execution:** All code snippets provided will be executed within the Colab environment. + + **Statefulness:** All code snippets are executed and the variables stays in the environment. You NEVER need to re-initialize variables. You NEVER need to reload files. You NEVER need to re-import libraries. + + **Imported Libraries:** The following libraries are ALREADY imported and should NEVER be imported again: + + ```tool_code + import io + import math + import re + import matplotlib.pyplot as plt + import numpy as np + import pandas as pd + import scipy + ``` + + **Output Visibility:** Always print the output of code execution to visualize results, especially for data exploration and analysis. For example: + - To look a the shape of a pandas.DataFrame do: + ```tool_code + print(df.shape) + ``` + The output will be presented to you as: + ```tool_outputs + (49, 7) + + ``` + - To display the result of a numerical computation: + ```tool_code + x = 10 ** 9 - 12 ** 5 + print(f'{{x=}}') + ``` + The output will be presented to you as: + ```tool_outputs + x=999751168 + + ``` + - You **never** generate ```tool_outputs yourself. + - You can then use this output to decide on next steps. + - Print just variables (e.g., `print(f'{{variable=}}')`. + + **No Assumptions:** **Crucially, avoid making assumptions about the nature of the data or column names.** Base findings solely on the data itself. Always use the information obtained from `explore_df` to guide your analysis. + + **Available files:** Only use the files that are available as specified in the list of available files. + + **Data in prompt:** Some queries contain the input data directly in the prompt. You have to parse that data into a pandas DataFrame. ALWAYS parse all the data. NEVER edit the data that are given to you. + + **Answerability:** Some queries may not be answerable with the available data. In those cases, inform the user why you cannot process their query and suggest what type of data would be needed to fulfill their request. + + """ + + +root_agent = Agent( + model="gemini-2.5-flash", + name="data_science_agent", + instruction=base_system_instruction() + """ + + +You need to assist the user with their queries by looking at the data and the context in the conversation. +You final answer should summarize the code and code execution relavant to the user query. + +You should include all pieces of data to answer the user query, such as the table from code execution results. +If you cannot answer the question directly, you should follow the guidelines above to generate the next step. +If the question can be answered directly with writing any code, you should do that. +If you doesn't have enough data to answer the question, you should ask for clarification from the user. + +You should NEVER install any package on your own like `pip install ...`. +When plotting trends, you should make sure to sort and order the data by the x-axis. + + +""", + code_executor=CustomCodeExecutor(), +) From 2f72ceb49b452c5a1f257bce6adb004fa5d54472 Mon Sep 17 00:00:00 2001 From: Ayush Agrawal Date: Tue, 28 Oct 2025 16:53:30 -0700 Subject: [PATCH 213/303] chore: Do not treat `FinishReason.STOP` as error case for LLM responses containing candidates with empty contents Fixes #2905 PiperOrigin-RevId: 825263302 --- src/google/adk/models/llm_response.py | 4 +++- tests/unittests/models/test_llm_response.py | 17 +++++++++++++++ tests/unittests/utils/test_streaming_utils.py | 21 +++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/google/adk/models/llm_response.py b/src/google/adk/models/llm_response.py index 56eb6318c1..0264ca5318 100644 --- a/src/google/adk/models/llm_response.py +++ b/src/google/adk/models/llm_response.py @@ -148,7 +148,9 @@ def create( usage_metadata = generate_content_response.usage_metadata if generate_content_response.candidates: candidate = generate_content_response.candidates[0] - if candidate.content and candidate.content.parts: + if ( + candidate.content and candidate.content.parts + ) or candidate.finish_reason == types.FinishReason.STOP: return LlmResponse( content=candidate.content, grounding_metadata=candidate.grounding_metadata, diff --git a/tests/unittests/models/test_llm_response.py b/tests/unittests/models/test_llm_response.py index 8ab5e6aae9..167841c8c8 100644 --- a/tests/unittests/models/test_llm_response.py +++ b/tests/unittests/models/test_llm_response.py @@ -317,3 +317,20 @@ def test_llm_response_create_error_case_with_citation_metadata(): assert ( response.error_message == 'Response blocked due to recitation triggered' ) + + +def test_llm_response_create_empty_content_with_stop_reason(): + """Test LlmResponse.create() with empty content and stop finish reason.""" + generate_content_response = types.GenerateContentResponse( + candidates=[ + types.Candidate( + content=types.Content(parts=[]), + finish_reason=types.FinishReason.STOP, + ) + ] + ) + + response = LlmResponse.create(generate_content_response) + + assert response.error_code is None + assert response.content is not None diff --git a/tests/unittests/utils/test_streaming_utils.py b/tests/unittests/utils/test_streaming_utils.py index 057c05e97d..8ed9375f4b 100644 --- a/tests/unittests/utils/test_streaming_utils.py +++ b/tests/unittests/utils/test_streaming_utils.py @@ -179,3 +179,24 @@ async def test_close_with_error(self): assert closed_response.content.parts[0].text == "Error" assert closed_response.error_code == types.FinishReason.RECITATION assert closed_response.error_message == "Recitation error" + + @pytest.mark.asyncio + async def test_process_response_with_none_content(self): + """Test that StreamingResponseAggregator handles content=None.""" + aggregator = streaming_utils.StreamingResponseAggregator() + response = types.GenerateContentResponse( + candidates=[ + types.Candidate( + content=types.Content(parts=[]), + finish_reason=types.FinishReason.STOP, + ) + ] + ) + results = [] + async for r in aggregator.process_response(response): + results.append(r) + assert len(results) == 1 + assert results[0].content is not None + + closed_response = aggregator.close() + assert closed_response is None From 420de9c5be8e4d0258fb608fe9bb5e9754282197 Mon Sep 17 00:00:00 2001 From: "Xinran (Sherry) Tang" Date: Tue, 28 Oct 2025 17:02:30 -0700 Subject: [PATCH 214/303] test: Add a test case for resuming any invocation PiperOrigin-RevId: 825266283 --- .../runners/test_resume_invocation.py | 112 +++++++++++++++++- 1 file changed, 110 insertions(+), 2 deletions(-) diff --git a/tests/unittests/runners/test_resume_invocation.py b/tests/unittests/runners/test_resume_invocation.py index f7755fca9d..9c380ab594 100644 --- a/tests/unittests/runners/test_resume_invocation.py +++ b/tests/unittests/runners/test_resume_invocation.py @@ -18,6 +18,8 @@ from google.adk.agents.llm_agent import LlmAgent from google.adk.apps.app import App from google.adk.apps.app import ResumabilityConfig +from google.adk.tools.long_running_tool import LongRunningFunctionTool +from google.genai.types import FunctionResponse from google.genai.types import Part import pytest @@ -35,6 +37,10 @@ def transfer_call_part(agent_name: str) -> Part: ) +def test_tool() -> dict[str, str]: + return {"result": "test tool result"} + + @pytest.mark.asyncio async def test_resume_invocation_from_sub_agent(): """A test case for an edge case, where an invocation-to-resume starts from a sub-agent. @@ -72,7 +78,7 @@ async def test_resume_invocation_from_sub_agent(): # Step 2: Run the first invocation # Expect the invocation to start from root_agent and transferred to sub_agent. - invocation_1_events = runner.run("test user query") + invocation_1_events = await runner.run_async("test user query") assert testing_utils.simplify_resumable_app_events( copy.deepcopy(invocation_1_events) ) == [ @@ -100,7 +106,7 @@ async def test_resume_invocation_from_sub_agent(): # Step 3: Run the second invocation # Expect the invocation to directly start from sub_agent. - invocation_2_events = runner.run( + invocation_2_events = await runner.run_async( "test user query 2", ) assert testing_utils.simplify_resumable_app_events( @@ -144,3 +150,105 @@ async def test_resume_invocation_from_sub_agent(): ), (sub_agent.name, testing_utils.END_OF_AGENT), ] + + +@pytest.mark.asyncio +async def test_resume_any_invocation(): + """A test case for resuming a previous invocation instead of the last one.""" + # Step 1: Setup + long_running_test_tool = LongRunningFunctionTool( + func=test_tool, + ) + root_agent = LlmAgent( + name="root_agent", + model=testing_utils.MockModel.create( + responses=[ + Part.from_function_call(name="test_tool", args={}), + "llm response in invocation 2", + Part.from_function_call(name="test_tool", args={}), + "llm response after resuming invocation 1", + ] + ), + tools=[long_running_test_tool], + ) + runner = testing_utils.InMemoryRunner( + app=App( + name="test_app", + root_agent=root_agent, + resumability_config=ResumabilityConfig(is_resumable=True), + ) + ) + + # Step 2: Run the first invocation, which pauses on the long running function. + invocation_1_events = await runner.run_async("test user query") + assert testing_utils.simplify_resumable_app_events( + copy.deepcopy(invocation_1_events) + ) == [ + ( + root_agent.name, + Part.from_function_call(name="test_tool", args={}), + ), + ( + root_agent.name, + Part.from_function_response( + name="test_tool", response={"result": "test tool result"} + ), + ), + ] + + # Step 3: Run the second invocation, expect it to finish normally. + invocation_2_events = await runner.run_async( + "test user query 2", + ) + assert testing_utils.simplify_resumable_app_events( + copy.deepcopy(invocation_2_events) + ) == [ + ( + root_agent.name, + "llm response in invocation 2", + ), + (root_agent.name, testing_utils.END_OF_AGENT), + ] + + # Step 4: Run the third invocation, which also pauses on the long running + # function. + invocation_3_events = await runner.run_async( + "test user query 3", + ) + assert testing_utils.simplify_resumable_app_events( + copy.deepcopy(invocation_3_events) + ) == [ + ( + root_agent.name, + Part.from_function_call(name="test_tool", args={}), + ), + ( + root_agent.name, + Part.from_function_response( + name="test_tool", response={"result": "test tool result"} + ), + ), + ] + + # Step 5: Resume the first invocation with long running function response. + resumed_invocation_1_events = await runner.run_async( + invocation_id=invocation_1_events[0].invocation_id, + new_message=testing_utils.UserContent( + Part( + function_response=FunctionResponse( + id=invocation_1_events[0].content.parts[0].function_call.id, + name="test_tool", + response={"result": "test tool update"}, + ) + ), + ), + ) + assert testing_utils.simplify_resumable_app_events( + copy.deepcopy(resumed_invocation_1_events) + ) == [ + ( + root_agent.name, + "llm response after resuming invocation 1", + ), + (root_agent.name, testing_utils.END_OF_AGENT), + ] From ee8acc58be7421a3e8eab07b051c45f9319f80dc Mon Sep 17 00:00:00 2001 From: Ayush Agrawal Date: Tue, 28 Oct 2025 17:11:26 -0700 Subject: [PATCH 215/303] chore: Allow tenacity 9.0.0 Fixes #2962 PiperOrigin-RevId: 825269865 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 7dedc9c414..72b3a6e748 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -56,7 +56,7 @@ dependencies = [ "sqlalchemy-spanner>=1.14.0", # Spanner database session service "sqlalchemy>=2.0, <3.0.0", # SQL database ORM "starlette>=0.46.2, <1.0.0", # For FastAPI CLI - "tenacity>=8.0.0, <9.0.0", # For Retry management + "tenacity>=9.0.0, <10.0.0", # For Retry management "typing-extensions>=4.5, <5", "tzlocal>=5.3, <6.0", # Time zone utilities "uvicorn>=0.34.0, <1.0.0", # ASGI server for FastAPI From 15afbcd1587d4102a4dc5c07c0c493917df9d6ea Mon Sep 17 00:00:00 2001 From: Ayush Agrawal Date: Tue, 28 Oct 2025 17:23:53 -0700 Subject: [PATCH 216/303] feat: Add `ADK_DISABLE_LOAD_DOTENV` environment variable that disables automatic loading of .env when running ADK cli, if set to true or 1 Fixes #3228 PiperOrigin-RevId: 825273905 --- src/google/adk/cli/cli.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/google/adk/cli/cli.py b/src/google/adk/cli/cli.py index c14bd7836e..1947e7b8fa 100644 --- a/src/google/adk/cli/cli.py +++ b/src/google/adk/cli/cli.py @@ -34,6 +34,7 @@ from ..sessions.in_memory_session_service import InMemorySessionService from ..sessions.session import Session from ..utils.context_utils import Aclosing +from ..utils.env_utils import is_env_enabled from .utils import envs from .utils.agent_loader import AgentLoader @@ -160,7 +161,8 @@ async def run_cli( root_agent = AgentLoader(agents_dir=agent_parent_dir).load_agent( agent_folder_name ) - envs.load_dotenv_for_agent(agent_folder_name, agent_parent_dir) + if not is_env_enabled('ADK_DISABLE_LOAD_DOTENV'): + envs.load_dotenv_for_agent(agent_folder_name, agent_parent_dir) if input_file: session = await run_input_file( app_name=agent_folder_name, From 74a3500fc5d4b07e80f914d83a0d91face28086c Mon Sep 17 00:00:00 2001 From: Omar Elcircevi Date: Tue, 28 Oct 2025 17:29:01 -0700 Subject: [PATCH 217/303] fix: #3036 parameter filtering for CrewAI functions with **kwargs Merge https://github.com/google/adk-python/pull/3037 fix: [#3036](https://github.com/google/adk-python/issues/3036) - Fix FunctionTool parameter filtering to support CrewAI-style tools - Functions with **kwargs now receive all parameters except 'self' and 'tool_context' - Maintains backward compatibility with explicit parameter functions - Add comprehensive tests for **kwargs functionality Fixes parameter filtering issue where CrewAI tools using **kwargs pattern would receive empty parameter dictionaries, causing search_query and other parameters to be None. #non-breaking COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3037 from omarcevi:fix/function-tool-kwargs-parameter-filtering 012bbfcfd68e83a29635ac74718a1bd1323c5187 PiperOrigin-RevId: 825275686 --- .../samples/crewai_tool_kwargs/README.md | 160 +++++++++++++++ .../samples/crewai_tool_kwargs/__init__.py | 15 ++ .../samples/crewai_tool_kwargs/agent.py | 112 +++++++++++ .../samples/crewai_tool_kwargs/main.py | 105 ++++++++++ src/google/adk/tools/crewai_tool.py | 73 ++++++- tests/unittests/tools/test_crewai_tool.py | 182 ++++++++++++++++++ tests/unittests/tools/test_function_tool.py | 34 ++++ 7 files changed, 677 insertions(+), 4 deletions(-) create mode 100644 contributing/samples/crewai_tool_kwargs/README.md create mode 100644 contributing/samples/crewai_tool_kwargs/__init__.py create mode 100644 contributing/samples/crewai_tool_kwargs/agent.py create mode 100644 contributing/samples/crewai_tool_kwargs/main.py create mode 100644 tests/unittests/tools/test_crewai_tool.py diff --git a/contributing/samples/crewai_tool_kwargs/README.md b/contributing/samples/crewai_tool_kwargs/README.md new file mode 100644 index 0000000000..6b0571d42a --- /dev/null +++ b/contributing/samples/crewai_tool_kwargs/README.md @@ -0,0 +1,160 @@ +# CrewAI Tool **kwargs Parameter Handling + +This sample demonstrates how `CrewaiTool` correctly handles tools with +`**kwargs` parameters, which is a common pattern in CrewAI tools. + +## What This Sample Demonstrates + +### Key Feature: **kwargs Parameter Passing + +CrewAI tools often accept arbitrary parameters via `**kwargs`: + +```python +def _run(self, query: str, **kwargs) -> str: + # Extra parameters are passed through kwargs + category = kwargs.get('category') + date_range = kwargs.get('date_range') + limit = kwargs.get('limit') +``` + +The `CrewaiTool` wrapper detects this pattern and passes all parameters through +(except framework-managed ones like `self` and `tool_context`). + +### Contrast with Regular Tools + +For comparison, tools without `**kwargs` only accept explicitly declared +parameters: + +```python +def _run(self, query: str, category: str) -> str: +``` + +## Prerequisites + +### Required: CrewAI Tools (Python 3.10+) + +```bash +pip install 'crewai-tools>=0.2.0' +``` + +### Required: API Key + +```bash +export GOOGLE_API_KEY="your-api-key-here" +# OR +export GOOGLE_GENAI_API_KEY="your-api-key-here" +``` + +## Running the Sample + +### Option 1: Run the Happy Path Test + +```bash +cd contributing/samples/crewai_tool_kwargs +python main.py +``` + +**Expected output:** +``` +============================================================ +CrewAI Tool **kwargs Parameter Test +============================================================ + +🧪 Test 1: Basic search (no extra parameters) +User: Search for Python tutorials +Agent: [Uses tool and returns results] + +🧪 Test 2: Search with filters (**kwargs test) +User: Search for machine learning articles, filtered by... +Agent: [Uses tool with category, date_range, and limit parameters] + +============================================================ +✅ Happy path test completed successfully! +============================================================ +``` + +## What Gets Tested + +✅ **CrewAI tool integration** - Wrapping a CrewAI BaseTool with ADK +✅ **Basic parameters** - Required `query` parameter passes correctly +✅ ****kwargs passing** - Extra parameters (category, date_range, limit) pass + through +✅ **End-to-end execution** - Tool executes and returns results to agent + +## Code Structure + +``` +crewai_tool_kwargs/ +├── __init__.py # Module initialization +├── agent.py # Agent with CrewAI tool +├── main.py # Happy path test +└── README.md # This file +``` + +### Key Files + +**agent.py:** + +- Defines `CustomSearchTool` (CrewAI BaseTool with **kwargs) +- Wraps it with `CrewaiTool` +- Creates agent with the wrapped tool + +**main.py:** + +- Test 1: Basic search (no extra params) +- Test 2: Search with filters (tests **kwargs) + +## How It Works + +1. **CrewAI Tool Definition** (`agent.py`): + ```python + class CustomSearchTool(BaseTool): + def _run(self, query: str, **kwargs) -> str: + # kwargs receives: category, date_range, limit, etc. + ``` + +2. **ADK Wrapping** (`agent.py`): + ```python + adk_search_tool = CrewaiTool( + crewai_search_tool, + name="search_with_filters", + description="..." + ) + ``` + +3. **LLM Function Calling** (`main.py`): + - LLM sees the tool in function calling format + - LLM calls with: `{query: "...", category: "...", date_range: "...", limit: 10}` + - CrewaiTool passes ALL parameters to `**kwargs` + +4. **Tool Execution**: + - `query` → positional parameter + - `category`, `date_range`, `limit` → collected in `**kwargs` + - Tool logic uses all parameters + +## Troubleshooting + +### ImportError: No module named 'crewai' + +```bash +pip install 'crewai-tools>=0.2.0' +``` + +### Python Version Error + +CrewAI requires Python 3.10+: + +```bash +python --version # Should be 3.10 or higher +``` + +### Missing API Key + +```bash +export GOOGLE_API_KEY="your-key-here" +``` + +## Related + +- Parent class: `FunctionTool` - Base class for all function-based tools +- Unit tests: `tests/unittests/tools/test_crewai_tool.py` diff --git a/contributing/samples/crewai_tool_kwargs/__init__.py b/contributing/samples/crewai_tool_kwargs/__init__.py new file mode 100644 index 0000000000..c48963cdc7 --- /dev/null +++ b/contributing/samples/crewai_tool_kwargs/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/crewai_tool_kwargs/agent.py b/contributing/samples/crewai_tool_kwargs/agent.py new file mode 100644 index 0000000000..f52d703dc8 --- /dev/null +++ b/contributing/samples/crewai_tool_kwargs/agent.py @@ -0,0 +1,112 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Sample demonstrating CrewAI tool with **kwargs parameter handling. + +This sample shows how CrewaiTool correctly passes arbitrary parameters +through **kwargs, which is a common pattern in CrewAI tools. +""" + +from typing import Optional + +from crewai.tools import BaseTool +from google.adk import Agent +from google.adk.tools.crewai_tool import CrewaiTool +from pydantic import BaseModel +from pydantic import Field + + +class SearchInput(BaseModel): + """Input schema for the search tool.""" + + query: str = Field(..., description="The search query string") + category: Optional[str] = Field( + None, description="Filter by category (e.g., 'technology', 'science')" + ) + date_range: Optional[str] = Field( + None, description="Filter by date range (e.g., 'last_week', '2024')" + ) + limit: Optional[int] = Field( + None, description="Limit the number of results (e.g., 10, 20)" + ) + + +class CustomSearchTool(BaseTool): + """A custom CrewAI tool that accepts arbitrary search parameters via **kwargs. + + This demonstrates the key CrewAI tool pattern where tools accept + flexible parameters through **kwargs. + """ + + name: str = "custom_search" + description: str = ( + "Search for information with flexible filtering options. " + "Accepts a query and optional filter parameters like category, " + "date_range, limit, etc." + ) + args_schema: type[BaseModel] = SearchInput + + def _run(self, query: str, **kwargs) -> str: + """Execute search with arbitrary filter parameters. + + Args: + query: The search query string. + **kwargs: Additional filter parameters like category, date_range, limit. + + Returns: + A formatted string showing the query and applied filters. + """ + result_parts = [f"Searching for: '{query}'"] + + if kwargs: + result_parts.append("Applied filters:") + for key, value in kwargs.items(): + result_parts.append(f" - {key}: {value}") + else: + result_parts.append("No additional filters applied.") + + # Simulate search results + result_parts.append(f"\nFound 3 results matching your criteria.") + + return "\n".join(result_parts) + + +crewai_search_tool = CustomSearchTool() + +# Wrap it with ADK's CrewaiTool +adk_search_tool = CrewaiTool( + crewai_search_tool, + name="search_with_filters", + description=( + "Search for information with optional filters like category, " + "date_range, or limit" + ), +) + +root_agent = Agent( + model="gemini-2.0-flash", + name="search_agent", + description="An agent that can search with flexible filtering options", + instruction=""" + You are a helpful search assistant. + When users ask you to search, use the search_with_filters tool. + You can pass additional parameters like: + - category: to filter by category (e.g., "technology", "science") + - date_range: to filter by date (e.g., "last_week", "2024") + - limit: to limit the number of results (e.g., 10, 20) + + Always acknowledge what filters you're applying. + """, + tools=[adk_search_tool], +) diff --git a/contributing/samples/crewai_tool_kwargs/main.py b/contributing/samples/crewai_tool_kwargs/main.py new file mode 100644 index 0000000000..15ade6f774 --- /dev/null +++ b/contributing/samples/crewai_tool_kwargs/main.py @@ -0,0 +1,105 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Happy path test for CrewAI tool with **kwargs parameter handling. + +This demonstrates that CrewaiTool correctly passes arbitrary parameters +through **kwargs to the underlying CrewAI tool. +""" + +import asyncio + +import agent +from dotenv import load_dotenv +from google.adk.cli.utils import logs +from google.adk.runners import InMemoryRunner +from google.genai import types + +load_dotenv(override=True) +logs.log_to_tmp_folder() + + +async def main(): + """Run happy path test demonstrating **kwargs parameter passing.""" + app_name = "crewai_kwargs_test" + user_id = "test_user" + + runner = InMemoryRunner( + agent=agent.root_agent, + app_name=app_name, + ) + + session = await runner.session_service.create_session( + app_name=app_name, user_id=user_id + ) + + print("=" * 60) + print("CrewAI Tool **kwargs Parameter Test") + print("=" * 60) + + # Test 1: Simple search without extra parameters + print("\n🧪 Test 1: Basic search (no extra parameters)") + print("-" * 60) + content1 = types.Content( + role="user", + parts=[types.Part.from_text(text="Search for Python tutorials")], + ) + print(f"User: {content1.parts[0].text}") + + async for event in runner.run_async( + user_id=user_id, + session_id=session.id, + new_message=content1, + ): + if event.content.parts and event.content.parts[0].text: + print(f"Agent: {event.content.parts[0].text}") + + # Test 2: Search with extra parameters (testing **kwargs) + print("\n🧪 Test 2: Search with filters (**kwargs test)") + print("-" * 60) + content2 = types.Content( + role="user", + parts=[ + types.Part.from_text( + text=( + "Search for machine learning articles, filtered by category" + " 'technology', date_range 'last_month', and limit to 10" + " results" + ) + ) + ], + ) + print(f"User: {content2.parts[0].text}") + + async for event in runner.run_async( + user_id=user_id, + session_id=session.id, + new_message=content2, + ): + if event.content.parts and event.content.parts[0].text: + print(f"Agent: {event.content.parts[0].text}") + + # Verify success + print("\n" + "=" * 60) + print("✅ Happy path test completed successfully!") + print("=" * 60) + print("\nVerified behaviors:") + print(" ✅ CrewAI tool integrated with ADK agent") + print(" ✅ Basic parameters passed correctly") + print(" ✅ Extra parameters passed through **kwargs") + print(" ✅ Tool executed and returned results") + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/src/google/adk/tools/crewai_tool.py b/src/google/adk/tools/crewai_tool.py index 9dfe7cc752..eaef479274 100644 --- a/src/google/adk/tools/crewai_tool.py +++ b/src/google/adk/tools/crewai_tool.py @@ -14,6 +14,10 @@ from __future__ import annotations +import inspect +from typing import Any +from typing import Callable + from google.genai import types from typing_extensions import override @@ -21,6 +25,7 @@ from .function_tool import FunctionTool from .tool_configs import BaseToolConfig from .tool_configs import ToolArgsConfig +from .tool_context import ToolContext try: from crewai.tools import BaseTool as CrewaiBaseTool @@ -29,7 +34,7 @@ if sys.version_info < (3, 10): raise ImportError( - "Crewai Tools require Python 3.10+. Please upgrade your Python version." + 'Crewai Tools require Python 3.10+. Please upgrade your Python version.' ) from e else: raise ImportError( @@ -55,12 +60,72 @@ def __init__(self, tool: CrewaiBaseTool, *, name: str, description: str): elif tool.name: # Right now, CrewAI tool name contains white spaces. White spaces are # not supported in our framework. So we replace them with "_". - self.name = tool.name.replace(" ", "_").lower() + self.name = tool.name.replace(' ', '_').lower() if description: self.description = description elif tool.description: self.description = tool.description + @override + async def run_async( + self, *, args: dict[str, Any], tool_context: ToolContext + ) -> Any: + """Override run_async to handle CrewAI-specific parameter filtering. + + CrewAI tools use **kwargs pattern, so we need special parameter filtering + logic that allows all parameters to pass through while removing only + reserved parameters like 'self' and 'tool_context'. + + Note: 'tool_context' is removed from the initial args dictionary to prevent + duplicates, but is re-added if the function signature explicitly requires it + as a parameter. + """ + # Preprocess arguments (includes Pydantic model conversion) + args_to_call = self._preprocess_args(args) + + signature = inspect.signature(self.func) + valid_params = {param for param in signature.parameters} + + # Check if function accepts **kwargs + has_kwargs = any( + param.kind == inspect.Parameter.VAR_KEYWORD + for param in signature.parameters.values() + ) + + if has_kwargs: + # For functions with **kwargs, we pass all arguments. We defensively + # remove arguments like `self` that are managed by the framework and not + # intended to be passed through **kwargs. + args_to_call.pop('self', None) + # We also remove `tool_context` that might have been passed in `args`, + # as it will be explicitly injected later if it's a valid parameter. + args_to_call.pop('tool_context', None) + else: + # For functions without **kwargs, use the original filtering. + args_to_call = { + k: v for k, v in args_to_call.items() if k in valid_params + } + + # Inject tool_context if it's an explicit parameter. This will add it + # or overwrite any value that might have been passed in `args`. + if 'tool_context' in valid_params: + args_to_call['tool_context'] = tool_context + + # Check for missing mandatory arguments + mandatory_args = self._get_mandatory_args() + missing_mandatory_args = [ + arg for arg in mandatory_args if arg not in args_to_call + ] + + if missing_mandatory_args: + missing_mandatory_args_str = '\n'.join(missing_mandatory_args) + error_str = f"""Invoking `{self.name}()` failed as the following mandatory input parameters are not present: +{missing_mandatory_args_str} +You could retry calling this tool, but it is IMPORTANT for you to provide all the mandatory parameters.""" + return {'error': error_str} + + return await self._invoke_callable(self.func, args_to_call) + @override def _get_declaration(self) -> types.FunctionDeclaration: """Build the function declaration for the tool.""" @@ -93,8 +158,8 @@ class CrewaiToolConfig(BaseToolConfig): tool: str """The fully qualified path of the CrewAI tool instance.""" - name: str = "" + name: str = '' """The name of the tool.""" - description: str = "" + description: str = '' """The description of the tool.""" diff --git a/tests/unittests/tools/test_crewai_tool.py b/tests/unittests/tools/test_crewai_tool.py new file mode 100644 index 0000000000..8fa8a722c4 --- /dev/null +++ b/tests/unittests/tools/test_crewai_tool.py @@ -0,0 +1,182 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from unittest.mock import MagicMock + +import pytest + +# Skip entire module if Python < 3.10 (must be before crewai_tool import) +pytest.importorskip( + "google.adk.tools.crewai_tool", reason="Requires Python 3.10+" +) + +from google.adk.agents.invocation_context import InvocationContext +from google.adk.sessions.session import Session +from google.adk.tools.crewai_tool import CrewaiTool +from google.adk.tools.tool_context import ToolContext + + +@pytest.fixture +def mock_tool_context() -> ToolContext: + """Fixture that provides a mock ToolContext for testing.""" + mock_invocation_context = MagicMock(spec=InvocationContext) + mock_invocation_context.session = MagicMock(spec=Session) + mock_invocation_context.session.state = MagicMock() + return ToolContext(invocation_context=mock_invocation_context) + + +def _simple_crewai_tool(*args, **kwargs): + """Simple CrewAI-style tool that accepts any keyword arguments.""" + return { + "search_query": kwargs.get("search_query"), + "other_param": kwargs.get("other_param"), + } + + +def _crewai_tool_with_context(tool_context: ToolContext, *args, **kwargs): + """CrewAI tool with explicit tool_context parameter.""" + return { + "search_query": kwargs.get("search_query"), + "tool_context_present": bool(tool_context), + } + + +class MockCrewaiBaseTool: + """Mock CrewAI BaseTool for testing.""" + + def __init__(self, run_func, name="mock_tool", description="Mock tool"): + self.run = run_func + self.name = name + self.description = description + self.args_schema = MagicMock() + self.args_schema.model_json_schema.return_value = { + "type": "object", + "properties": { + "search_query": {"type": "string", "description": "Search query"} + }, + } + + +def test_crewai_tool_initialization(): + """Test CrewaiTool initialization with various parameters.""" + mock_crewai_tool = MockCrewaiBaseTool(_simple_crewai_tool) + + # Test with custom name and description + tool = CrewaiTool( + mock_crewai_tool, + name="custom_search_tool", + description="Custom search tool description", + ) + + assert tool.name == "custom_search_tool" + assert tool.description == "Custom search tool description" + assert tool.tool == mock_crewai_tool + + +def test_crewai_tool_initialization_with_tool_defaults(): + """Test CrewaiTool initialization using tool's default name and description.""" + mock_crewai_tool = MockCrewaiBaseTool( + _simple_crewai_tool, + name="Serper Dev Tool", + description="Search the internet with Serper", + ) + + # Test with empty name and description (should use tool defaults) + tool = CrewaiTool(mock_crewai_tool, name="", description="") + + assert ( + tool.name == "serper_dev_tool" + ) # Spaces replaced with underscores, lowercased + assert tool.description == "Search the internet with Serper" + + +@pytest.mark.asyncio +async def test_crewai_tool_basic_functionality(mock_tool_context): + """Test basic CrewaiTool functionality with **kwargs parameter passing.""" + mock_crewai_tool = MockCrewaiBaseTool(_simple_crewai_tool) + tool = CrewaiTool(mock_crewai_tool, name="test_tool", description="Test tool") + + # Test that **kwargs parameters are passed through correctly + result = await tool.run_async( + args={"search_query": "test query", "other_param": "test value"}, + tool_context=mock_tool_context, + ) + + assert result["search_query"] == "test query" + assert result["other_param"] == "test value" + + +@pytest.mark.asyncio +async def test_crewai_tool_with_tool_context(mock_tool_context): + """Test CrewaiTool with a tool that has explicit tool_context parameter.""" + mock_crewai_tool = MockCrewaiBaseTool(_crewai_tool_with_context) + tool = CrewaiTool( + mock_crewai_tool, name="context_tool", description="Context tool" + ) + + # Test that tool_context is properly injected + result = await tool.run_async( + args={"search_query": "test query"}, + tool_context=mock_tool_context, + ) + + assert result["search_query"] == "test query" + assert result["tool_context_present"] is True + + +@pytest.mark.asyncio +async def test_crewai_tool_parameter_filtering(mock_tool_context): + """Test that CrewaiTool filters parameters for non-**kwargs functions.""" + + def explicit_params_func(arg1: str, arg2: int): + """Function with explicit parameters (no **kwargs).""" + return {"arg1": arg1, "arg2": arg2} + + mock_crewai_tool = MockCrewaiBaseTool(explicit_params_func) + tool = CrewaiTool( + mock_crewai_tool, name="explicit_tool", description="Explicit tool" + ) + + # Test that unexpected parameters are filtered out + result = await tool.run_async( + args={ + "arg1": "test", + "arg2": 42, + "unexpected_param": "should_be_filtered", + }, + tool_context=mock_tool_context, + ) + + assert result == {"arg1": "test", "arg2": 42} + # Verify unexpected parameter was filtered out + assert "unexpected_param" not in result + + +@pytest.mark.asyncio +async def test_crewai_tool_get_declaration(): + """Test that CrewaiTool properly builds function declarations.""" + mock_crewai_tool = MockCrewaiBaseTool(_simple_crewai_tool) + tool = CrewaiTool(mock_crewai_tool, name="test_tool", description="Test tool") + + # Test function declaration generation + declaration = tool._get_declaration() + + # Verify the declaration object structure and content + assert declaration is not None + assert declaration.name == "test_tool" + assert declaration.description == "Test tool" + assert declaration.parameters is not None + + # Verify that the args_schema was used to build the declaration + mock_crewai_tool.args_schema.model_json_schema.assert_called_once() diff --git a/tests/unittests/tools/test_function_tool.py b/tests/unittests/tools/test_function_tool.py index e7854a2c87..38758e8d2c 100644 --- a/tests/unittests/tools/test_function_tool.py +++ b/tests/unittests/tools/test_function_tool.py @@ -22,6 +22,15 @@ import pytest +@pytest.fixture +def mock_tool_context() -> ToolContext: + """Fixture that provides a mock ToolContext for testing.""" + mock_invocation_context = MagicMock(spec=InvocationContext) + mock_invocation_context.session = MagicMock(spec=Session) + mock_invocation_context.session.state = MagicMock() + return ToolContext(invocation_context=mock_invocation_context) + + def function_for_testing_with_no_args(): """Function for testing with no args.""" pass @@ -394,3 +403,28 @@ def sample_func(arg1: str): tool_context=tool_context_mock, ) assert result == {"received_arg": "hello"} + + +@pytest.mark.asyncio +async def test_run_async_parameter_filtering(mock_tool_context): + """Test that parameter filtering works correctly for functions with explicit parameters.""" + + def explicit_params_func(arg1: str, arg2: int): + """Function with explicit parameters (no **kwargs).""" + return {"arg1": arg1, "arg2": arg2} + + tool = FunctionTool(explicit_params_func) + + # Test that unexpected parameters are still filtered out for non-kwargs functions + result = await tool.run_async( + args={ + "arg1": "test", + "arg2": 42, + "unexpected_param": "should_be_filtered", + }, + tool_context=mock_tool_context, + ) + + assert result == {"arg1": "test", "arg2": 42} + # Explicitly verify that unexpected_param was filtered out and not passed to the function + assert "unexpected_param" not in result From 6bdac02dfc55a3b7f9949faeb344ec14bf747fa5 Mon Sep 17 00:00:00 2001 From: Kevin Qian Date: Tue, 28 Oct 2025 17:40:27 -0700 Subject: [PATCH 218/303] fix: do not consider events with state delta and no content as final response Previously this will return true for events yielded from before_agent_callback when there are state changes. Note with this change, it will also return false for state delta only callbacks even after main response, but this is fine as long as the actual final response event has it to be true. Closes #2992 PiperOrigin-RevId: 825279439 --- src/google/adk/events/event.py | 7 +++++ tests/unittests/agents/test_base_agent.py | 35 +++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/src/google/adk/events/event.py b/src/google/adk/events/event.py index 8114d31823..3a4bba5f8b 100644 --- a/src/google/adk/events/event.py +++ b/src/google/adk/events/event.py @@ -89,6 +89,13 @@ def is_final_response(self) -> bool: """ if self.actions.skip_summarization or self.long_running_tool_ids: return True + + # If we see state delta but no content, then this must be an event fired + # from callbacks that does not early exit / override response, + # thus the event itself cannot be final response. + if self.actions.state_delta and self.content is None: + return False + return ( not self.get_function_calls() and not self.get_function_responses() diff --git a/tests/unittests/agents/test_base_agent.py b/tests/unittests/agents/test_base_agent.py index 663179f670..2ecf8c90c4 100644 --- a/tests/unittests/agents/test_base_agent.py +++ b/tests/unittests/agents/test_base_agent.py @@ -339,6 +339,41 @@ async def test_run_async_with_async_before_agent_callback_bypass_agent( assert events[0].content.parts[0].text == 'agent run is bypassed.' +@pytest.mark.asyncio +async def test_run_async_with_async_before_agent_callback_state_delta( + request: pytest.FixtureRequest, +): + def before_agent_callback_state_delta(callback_context: CallbackContext): + callback_context.state['some_field'] = 'some_value' + return None + + agent = _TestingAgent( + name=f'{request.function.__name__}_test_agent', + before_agent_callback=before_agent_callback_state_delta, + ) + parent_ctx = await _create_parent_invocation_context( + request.function.__name__, agent + ) + + events = [e async for e in agent.run_async(parent_ctx)] + + # The before_agent_callback yields an event with state change. + # Then the agent's _run_async_impl yields another event. + assert len(events) == 2 + + callback_event = events[0] + # The callback event should have state delta and no content. + assert callback_event.actions.state_delta is not None + assert callback_event.actions.state_delta['some_field'] == 'some_value' + assert callback_event.content is None + # This should not be a final response. + assert not callback_event.is_final_response() + + agent_run_event = events[1] + # The event from the agent run should be a final response. + assert agent_run_event.is_final_response() + + class CallbackType(Enum): SYNC = 1 ASYNC = 2 From 1ee93c8bcb7ccd6f33658dc76b2095dd7e58aac9 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Tue, 28 Oct 2025 19:36:08 -0700 Subject: [PATCH 219/303] fix: do not consider events with state delta and no content as final response Previously this will return true for events yielded from before_agent_callback when there are state changes. Note with this change, it will also return false for state delta only callbacks even after main response, but this is fine as long as the actual final response event has it to be true. Closes #2992 PiperOrigin-RevId: 825313208 --- src/google/adk/events/event.py | 7 ----- tests/unittests/agents/test_base_agent.py | 35 ----------------------- 2 files changed, 42 deletions(-) diff --git a/src/google/adk/events/event.py b/src/google/adk/events/event.py index 3a4bba5f8b..8114d31823 100644 --- a/src/google/adk/events/event.py +++ b/src/google/adk/events/event.py @@ -89,13 +89,6 @@ def is_final_response(self) -> bool: """ if self.actions.skip_summarization or self.long_running_tool_ids: return True - - # If we see state delta but no content, then this must be an event fired - # from callbacks that does not early exit / override response, - # thus the event itself cannot be final response. - if self.actions.state_delta and self.content is None: - return False - return ( not self.get_function_calls() and not self.get_function_responses() diff --git a/tests/unittests/agents/test_base_agent.py b/tests/unittests/agents/test_base_agent.py index 2ecf8c90c4..663179f670 100644 --- a/tests/unittests/agents/test_base_agent.py +++ b/tests/unittests/agents/test_base_agent.py @@ -339,41 +339,6 @@ async def test_run_async_with_async_before_agent_callback_bypass_agent( assert events[0].content.parts[0].text == 'agent run is bypassed.' -@pytest.mark.asyncio -async def test_run_async_with_async_before_agent_callback_state_delta( - request: pytest.FixtureRequest, -): - def before_agent_callback_state_delta(callback_context: CallbackContext): - callback_context.state['some_field'] = 'some_value' - return None - - agent = _TestingAgent( - name=f'{request.function.__name__}_test_agent', - before_agent_callback=before_agent_callback_state_delta, - ) - parent_ctx = await _create_parent_invocation_context( - request.function.__name__, agent - ) - - events = [e async for e in agent.run_async(parent_ctx)] - - # The before_agent_callback yields an event with state change. - # Then the agent's _run_async_impl yields another event. - assert len(events) == 2 - - callback_event = events[0] - # The callback event should have state delta and no content. - assert callback_event.actions.state_delta is not None - assert callback_event.actions.state_delta['some_field'] == 'some_value' - assert callback_event.content is None - # This should not be a final response. - assert not callback_event.is_final_response() - - agent_run_event = events[1] - # The event from the agent run should be a final response. - assert agent_run_event.is_final_response() - - class CallbackType(Enum): SYNC = 1 ASYNC = 2 From c8e5340962014cfa09b59b32363e673f6d5552a7 Mon Sep 17 00:00:00 2001 From: Vishwa Murugan Date: Tue, 28 Oct 2025 23:03:08 -0700 Subject: [PATCH 220/303] fix: Propagate MCP tools output schema to FunctionDeclaration PiperOrigin-RevId: 825380145 --- src/google/adk/tools/mcp_tool/mcp_tool.py | 11 +++-- .../unittests/tools/mcp_tool/test_mcp_tool.py | 46 +++++++++++++++++++ 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/src/google/adk/tools/mcp_tool/mcp_tool.py b/src/google/adk/tools/mcp_tool/mcp_tool.py index 09737f09de..82c09eb671 100644 --- a/src/google/adk/tools/mcp_tool/mcp_tool.py +++ b/src/google/adk/tools/mcp_tool/mcp_tool.py @@ -119,10 +119,15 @@ def _get_declaration(self) -> FunctionDeclaration: Returns: FunctionDeclaration: The Gemini function declaration for the tool. """ - schema_dict = self._mcp_tool.inputSchema - parameters = _to_gemini_schema(schema_dict) + input_schema = self._mcp_tool.inputSchema + parameters = _to_gemini_schema(input_schema) + output_schema = self._mcp_tool.outputSchema + response = _to_gemini_schema(output_schema) function_decl = FunctionDeclaration( - name=self.name, description=self.description, parameters=parameters + name=self.name, + description=self.description, + parameters=parameters, + response=response, ) return function_decl diff --git a/tests/unittests/tools/mcp_tool/test_mcp_tool.py b/tests/unittests/tools/mcp_tool/test_mcp_tool.py index 3408bfa39e..482f6a8ac1 100644 --- a/tests/unittests/tools/mcp_tool/test_mcp_tool.py +++ b/tests/unittests/tools/mcp_tool/test_mcp_tool.py @@ -36,6 +36,7 @@ from google.adk.tools.mcp_tool.mcp_tool import MCPTool from google.adk.tools.tool_context import ToolContext from google.genai.types import FunctionDeclaration + from google.genai.types import Type from mcp.types import CallToolResult from mcp.types import TextContent except ImportError as e: @@ -49,6 +50,7 @@ class DummyClass: MCPTool = DummyClass ToolContext = DummyClass FunctionDeclaration = DummyClass + Type = DummyClass CallToolResult = DummyClass TextContent = DummyClass else: @@ -70,6 +72,7 @@ def __init__(self, name="test_tool", description="Test tool description"): }, "required": ["param1"], } + self.outputSchema = None class TestMCPTool: @@ -145,6 +148,49 @@ def test_get_declaration(self): assert declaration.name == "test_tool" assert declaration.description == "Test tool description" assert declaration.parameters is not None + assert declaration.response is None + + def test_get_declaration_with_output_schema(self): + """Test function declaration generation with an output schema.""" + self.mock_mcp_tool.outputSchema = { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the operation", + }, + }, + } + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + ) + + declaration = tool._get_declaration() + + assert isinstance(declaration, FunctionDeclaration) + assert declaration.response is not None + assert declaration.response.type == Type.OBJECT + assert "status" in declaration.response.properties + assert declaration.response.properties["status"].type == Type.STRING + assert ( + declaration.response.properties["status"].description + == "The status of the operation" + ) + + def test_get_declaration_with_empty_output_schema(self): + """Test function declaration with an empty output schema.""" + self.mock_mcp_tool.outputSchema = {} + tool = MCPTool( + mcp_tool=self.mock_mcp_tool, + mcp_session_manager=self.mock_session_manager, + ) + + declaration = tool._get_declaration() + + assert declaration.response is not None + assert declaration.response.type == Type.OBJECT + assert declaration.response.properties is None @pytest.mark.asyncio async def test_run_async_impl_no_auth(self): From 0ce2d564f219a71a8dfa540943c871f8a8148d74 Mon Sep 17 00:00:00 2001 From: George Weale Date: Wed, 29 Oct 2025 09:05:11 -0700 Subject: [PATCH 221/303] chore: Update agent triaging rules and owners PiperOrigin-RevId: 825572235 --- contributing/samples/adk_triaging_agent/agent.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index 2c44bdac23..e855b950cb 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -35,9 +35,10 @@ "eval": "ankursharmas", "live": "hangfei", "models": "genquan9", - "tracing": "Jacksunwei", + "tracing": "jawoszek", "core": "Jacksunwei", "web": "wyf7107", + "a2a": "seanzhou1023", } APPROVAL_INSTRUCTION = ( @@ -182,7 +183,8 @@ def change_issue_type(issue_number: int, issue_type: str) -> dict[str, Any]: - If it's about tracing, label it with "tracing". - If it's agent orchestration, agent definition, label it with "core". - If it's about agent engine, label it with "agent engine". - - If it's about Model Context Protocol (e.g. MCP tool, MCP toolset, MCP session management etc.), label it with "mcp". + - If it's about Model Context Protocol (e.g. MCP tool, MCP toolset, MCP session management etc.), label it with both "mcp" and "tools". + - If it's about A2A integrations or workflows, label it with "a2a". - If you can't find a appropriate labels for the issue, follow the previous instruction that starts with "IMPORTANT:". Call the `add_label_and_owner_to_issue` tool to label the issue, which will also assign the issue to the owner of the label. From 2216fe7c043437bb37d8849cfae7122eb8ea06bd Mon Sep 17 00:00:00 2001 From: "Wei Sun (Jack)" Date: Wed, 29 Oct 2025 11:12:48 -0700 Subject: [PATCH 222/303] docs: Update AGENTS.md with latest development guidelines and make it general for all AI coding tools Usage: you can create symlink to AGENTS.md with the file name required by the specific AI coding tool. Co-authored-by: Wei Sun (Jack) PiperOrigin-RevId: 825627185 --- AGENTS.md | 337 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 298 insertions(+), 39 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index f1374f5c93..ae5614cd8a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,15 +1,59 @@ -# Gemini CLI / Gemini Code Assist Context +# AI Coding Assistant Context -This document provides context for the Gemini CLI and Gemini Code Assist to understand the project and assist with development. +This document provides context for AI coding assistants (Claude Code, Gemini CLI, GitHub Copilot, Cursor, etc.) to understand the ADK Python project and assist with development. ## Project Overview The Agent Development Kit (ADK) is an open-source, code-first Python toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control. While optimized for Gemini and the Google ecosystem, ADK is model-agnostic, deployment-agnostic, and is built for compatibility with other frameworks. ADK was designed to make agent development feel more like software development, to make it easier for developers to create, deploy, and orchestrate agentic architectures that range from simple tasks to complex workflows. +### Key Components + +- **Agent** - Blueprint defining identity, instructions, and tools (`LlmAgent`, `LoopAgent`, `ParallelAgent`, `SequentialAgent`, etc.) +- **Runner** - Execution engine that orchestrates the "Reason-Act" loop, manages LLM calls, executes tools, and handles multi-agent coordination +- **Tool** - Functions/capabilities agents can call (Python functions, OpenAPI specs, MCP tools, Google API tools) +- **Session** - Conversation state management (in-memory, Vertex AI, Spanner-backed) +- **Memory** - Long-term recall across sessions + ## Project Architecture Please refer to [ADK Project Overview and Architecture](https://github.com/google/adk-python/blob/main/contributing/adk_project_overview_and_architecture.md) for details. +### Source Structure + +``` +src/google/adk/ +├── agents/ # Agent implementations (LlmAgent, LoopAgent, ParallelAgent, etc.) +├── runners.py # Core Runner orchestration class +├── tools/ # Tool ecosystem (50+ files) +│ ├── google_api_tool/ +│ ├── bigtable/, bigquery/, spanner/ +│ ├── openapi_tool/ +│ └── mcp_tool/ # Model Context Protocol +├── models/ # LLM integrations (Gemini, Anthropic, LiteLLM) +├── sessions/ # Session management (in-memory, Vertex AI, Spanner) +├── memory/ # Long-term memory services +├── evaluation/ # Evaluation framework (47 files) +├── cli/ # CLI tools and web UI +├── flows/ # Execution flow orchestration +├── a2a/ # Agent-to-Agent protocol +├── telemetry/ # Observability and tracing +└── utils/ # Utility functions +``` + +### Test Structure + +``` +tests/ +├── unittests/ # 2600+ unit tests across 236+ files +│ ├── agents/ +│ ├── tools/ +│ ├── models/ +│ ├── evaluation/ +│ ├── a2a/ +│ └── ... +└── integration/ # Integration tests +``` + ### ADK Live (Bidi-streaming) - ADK live feature can be accessed from runner.run_live(...) and corresponding FAST api endpoint. @@ -21,6 +65,128 @@ Please refer to [ADK Project Overview and Architecture](https://github.com/googl - User audio or model audio should be saved into artifacts with a reference in Event to it. - Tests are in [tests/unittests/streaming](https://github.com/google/adk-python/tree/main/tests/unittests/streaming). +### Agent Structure Convention (Required) + +**All agent directories must follow this structure:** +``` +my_agent/ +├── __init__.py # MUST contain: from . import agent +└── agent.py # MUST define: root_agent = Agent(...) OR app = App(...) +``` + +**Choose one pattern based on your needs:** + +**Option 1 - Simple Agent (for basic agents without plugins):** +```python +from google.adk.agents import Agent +from google.adk.tools import google_search + +root_agent = Agent( + name="search_assistant", + model="gemini-2.5-flash", + instruction="You are a helpful assistant.", + description="An assistant that can search the web.", + tools=[google_search] +) +``` + +**Option 2 - App Pattern (when you need plugins, event compaction, custom configuration):** +```python +from google.adk import Agent +from google.adk.apps import App +from google.adk.plugins import ContextFilterPlugin + +root_agent = Agent( + name="my_agent", + model="gemini-2.5-flash", + instruction="You are a helpful assistant.", + tools=[...], +) + +app = App( + name="my_app", + root_agent=root_agent, + plugins=[ + ContextFilterPlugin(num_invocations_to_keep=3), + ], +) +``` + +**Rationale:** This structure allows the ADK CLI (`adk web`, `adk run`, etc.) to automatically discover and load agents without additional configuration. + +## Development Setup + +### Requirements + +**Minimum requirements:** +- Python 3.9+ (**Python 3.11+ strongly recommended** for best performance) +- `uv` package manager (**required** - faster than pip/venv) + +**Install uv if not already installed:** +```bash +curl -LsSf https://astral.sh/uv/install.sh | sh +``` + +### Setup Instructions + +**Standard setup for development:** +```bash +# Create virtual environment with Python 3.11 +uv venv --python "python3.11" ".venv" +source .venv/bin/activate + +# Install all dependencies for development +uv sync --all-extras +``` + +**Minimal setup for testing only (matches CI):** +```bash +uv sync --extra test --extra eval --extra a2a +``` + +**Virtual Environment Usage (Required):** +- **Always use** `.venv/bin/python` or `.venv/bin/pytest` directly +- **Or activate** with `source .venv/bin/activate` before running commands +- **Never use** `python -m venv` - always create with `uv venv` if missing + +**Rationale:** `uv` is significantly faster and ensures consistent dependency resolution across the team. + +### Building + +```bash +# Build wheel +uv build + +# Install local build for testing +pip install dist/google_adk--py3-none-any.whl +``` + +### Running Agents Locally + +**For interactive development and debugging:** +```bash +# Launch web UI (recommended for development) +adk web path/to/agents_dir +``` + +**For CLI-based testing:** +```bash +# Interactive CLI (prompts for user input) +adk run path/to/my_agent +``` + +**For API/production mode:** +```bash +# Start FastAPI server +adk api_server path/to/agents_dir +``` + +**For running evaluations:** +```bash +# Run evaluation set against agent +adk eval path/to/my_agent path/to/eval_set.json +``` + ## ADK: Style Guides ### Python Style Guide @@ -37,48 +203,68 @@ The project follows the Google Python Style Guide. Key conventions are enforced * **Imports**: Organized and sorted. * **Error Handling**: Specific exceptions should be caught, not general ones like `Exception`. -### Autoformat +### Autoformat (Required Before Committing) + +**Always run** before committing code: +```bash +./autoformat.sh +``` + +**Manual formatting** (if needed): +```bash +# Format imports +isort src/ tests/ contributing/ -We have autoformat.sh to help solve import organize and formatting issues. +# Format code style +pyink --config pyproject.toml src/ tests/ contributing/ +``` +**Check formatting** without making changes: ```bash -# Run in open_source_workspace/ -$ ./autoformat.sh +pyink --check --diff --config pyproject.toml src/ +isort --check src/ ``` +**Formatting Standards (Enforced by CI):** +- **Formatter:** `pyink` (Google-style Python formatter) +- **Line length:** 80 characters maximum +- **Indentation:** 2 spaces (never tabs) +- **Import sorter:** `isort` with Google profile +- **Linter:** `pylint` with Google Python Style Guide + +**Rationale:** Consistent formatting eliminates style debates and makes code reviews focus on logic rather than style. + ### In ADK source -Below styles applies to the ADK source code (under `src/` folder of the Github. -repo). +Below styles applies to the ADK source code (under `src/` folder of the Github repo). -#### Use relative imports +#### Use relative imports (Required) ```python -# DO +# DO - Use relative imports from ..agents.llm_agent import LlmAgent -# DON'T +# DON'T - No absolute imports from google.adk.agents.llm_agent import LlmAgent ``` -#### Import from module, not from `__init__.py` +**Rationale:** Relative imports make the code more maintainable and avoid circular import issues in large codebases. + +#### Import from module, not from `__init__.py` (Required) ```python -# DO +# DO - Import directly from module from ..agents.llm_agent import LlmAgent -# DON'T -from ..agents import LlmAgent # import from agents/__init__.py +# DON'T - Import from __init__.py +from ..agents import LlmAgent ``` -#### Always do `from __future__ import annotations` +**Rationale:** Direct module imports make dependencies explicit and improve IDE navigation and refactoring. -```python -# DO THIS, right after the open-source header. -from __future__ import annotations -``` +#### Always do `from __future__ import annotations` (Required) -Like below: +**Rule:** Every source file must include `from __future__ import annotations` immediately after the license header, before any other imports. ```python # Copyright 2025 Google LLC @@ -95,39 +281,72 @@ Like below: # See the License for the specific language governing permissions and # limitations under the License. -from __future__ import annotations +from __future__ import annotations # REQUIRED - Always include this -# ... the rest of the file. +# ... rest of imports ... ``` -This allows us to forward-reference a class without quotes. - -Check out go/pep563 for details. +**Rationale:** This enables forward-referencing classes without quotes, improving code readability and type hint support (PEP 563). ### In ADK tests -#### Use absolute imports +#### Use absolute imports (Required) -In tests, we use `google.adk` same as how our users uses. +**Rule:** Test code must use absolute imports (`google.adk.*`) to match how users import ADK. ```python -# DO +# DO - Use absolute imports from google.adk.agents.llm_agent import LlmAgent -# DON'T +# DON'T - No relative imports in tests from ..agents.llm_agent import LlmAgent ``` -## ADK: Local testing +**Rationale:** Tests should exercise the same import paths that users will use, catching issues with the public API. + +## ADK: Local Testing + +### Unit Tests -### Unit tests +**Quick start:** Run all tests with: +```bash +pytest tests/unittests +``` -Run below command: +**Recommended:** Match CI configuration before submitting PRs: +```bash +uv sync --extra test --extra eval --extra a2a && pytest tests/unittests +``` +**Additional options:** ```bash -$ pytest tests/unittests +# Run tests in parallel for faster execution +pytest tests/unittests -n auto + +# Run a specific test file during development +pytest tests/unittests/agents/test_llm_agent.py + +# Python 3.9 compatibility mode (excludes features requiring 3.10+) +pytest tests/unittests \ + --ignore=tests/unittests/a2a \ + --ignore=tests/unittests/tools/mcp_tool \ + --ignore=tests/unittests/artifacts/test_artifact_service.py ``` +### Testing Philosophy + +**Use real code over mocks:** ADK tests should use real implementations as much as possible instead of mocking. Only mock external dependencies like network calls or cloud services. + +**Test interface behavior, not implementation details:** Tests should verify that the public API behaves correctly, not how it's implemented internally. This makes tests resilient to refactoring and ensures the contract with users remains intact. + +**Test Requirements:** +- Fast and isolated tests where possible +- Use real ADK components; mock only external dependencies (LLM APIs, cloud services, etc.) +- Focus on testing public interfaces and behavior, not internal implementation +- Descriptive test names that explain what behavior is being tested +- High coverage for new features, edge cases, and error conditions +- Location: `tests/unittests/` following source structure + ## Docstring and comments ### Comments - Explaining the Why, Not the What @@ -213,9 +432,49 @@ The following changes are considered breaking and necessitate a MAJOR version - Dependency Removal: Removing support for a previously integrated third-party library or tool type. -## Commit Message Format +## Commit Message Format (Required) + +**All commits must** follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) format. + +**Format:** +``` +(): + +[optional body] + +[optional footer] +``` + +**Common types:** `feat`, `fix`, `refactor`, `docs`, `test`, `chore` + +**Examples:** +``` +feat(agents): Add support for App pattern with plugins + +fix(sessions): Prevent memory leak in session cleanup + +refactor(tools): Unify environment variable enabled checks +``` + +**Rationale:** Conventional commits enable automated changelog generation and version management. + +## Key Files and Locations + +Quick reference to important project files: + +- **Main config:** `pyproject.toml` (uses `flit_core` build backend) +- **Dependencies:** `uv.lock` (managed by `uv`) +- **Linting:** `pylintrc` (Google Python Style Guide) +- **Auto-format:** `autoformat.sh` (runs isort + pyink) +- **CLI entry point:** `src/google/adk/cli/cli_tools_click.py` +- **Web UI backend:** `src/google/adk/cli/adk_web_server.py` +- **Main exports:** `src/google/adk/__init__.py` (exports Agent, Runner) +- **Examples:** `contributing/samples/` (100+ agent implementations) + +## Additional Resources -- Please use [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) -format. -- If it's not a breaking change, please add #non-breaking tag. If it's a -breaking change, please add #breaking. \ No newline at end of file +- **Documentation:** https://google.github.io/adk-docs +- **Samples:** https://github.com/google/adk-samples +- **Architecture Details:** `contributing/adk_project_overview_and_architecture.md` +- **Contributing Guide:** `CONTRIBUTING.md` +- **LLM Context:** `llms.txt` (summarized), `llms-full.txt` (comprehensive) From e7f7705eba3eeec16df17cd081804deb456f2848 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Wed, 29 Oct 2025 11:51:03 -0700 Subject: [PATCH 223/303] ADK changes PiperOrigin-RevId: 825644096 --- contributing/samples/gepa/OWNERS | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 contributing/samples/gepa/OWNERS diff --git a/contributing/samples/gepa/OWNERS b/contributing/samples/gepa/OWNERS new file mode 100644 index 0000000000..36064e743f --- /dev/null +++ b/contributing/samples/gepa/OWNERS @@ -0,0 +1,3 @@ +aarg +jief +paulxz \ No newline at end of file From 87f415a7c36a1f3b6ab84d1fe939726c6ef7f34e Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Wed, 29 Oct 2025 13:05:03 -0700 Subject: [PATCH 224/303] feat: Add util to run ADK LLM Agent with simulation environment PiperOrigin-RevId: 825674499 --- contributing/samples/gepa/README.md | 4 + contributing/samples/gepa/__init__.py | 13 + contributing/samples/gepa/adk_agent.py | 262 +++++++++++++++ contributing/samples/gepa/adk_agent_test.py | 348 ++++++++++++++++++++ 4 files changed, 627 insertions(+) create mode 100644 contributing/samples/gepa/README.md create mode 100644 contributing/samples/gepa/__init__.py create mode 100644 contributing/samples/gepa/adk_agent.py create mode 100644 contributing/samples/gepa/adk_agent_test.py diff --git a/contributing/samples/gepa/README.md b/contributing/samples/gepa/README.md new file mode 100644 index 0000000000..8c67c62eaa --- /dev/null +++ b/contributing/samples/gepa/README.md @@ -0,0 +1,4 @@ +# Example: optimizing an ADK agent with Genetic-Pareto + +This directory contains an example demonstrating how to use the Agent Development +Kit (ADK) to run and optimize an LLM-based agent in a simulated environment with the Genetic-Pareto prompt optimization algorithm ([GEPA: Reflective Prompt Evolution Can Outperform Reinforcement Learning](https://arxiv.org/abs/2507.19457)) on benchmarks like Tau-bench. diff --git a/contributing/samples/gepa/__init__.py b/contributing/samples/gepa/__init__.py new file mode 100644 index 0000000000..0a2669d7a2 --- /dev/null +++ b/contributing/samples/gepa/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/contributing/samples/gepa/adk_agent.py b/contributing/samples/gepa/adk_agent.py new file mode 100644 index 0000000000..b6e49ecf37 --- /dev/null +++ b/contributing/samples/gepa/adk_agent.py @@ -0,0 +1,262 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""ADK utils for a LLMAgent interacting with a simulation environment.""" + +from __future__ import annotations + +import asyncio +from collections.abc import Generator +from typing import Any +from typing import Dict +from typing import Optional +from typing import Protocol +from typing import runtime_checkable + +from absl import logging +from google.adk import runners +from google.adk.agents import base_agent +from google.adk.agents import llm_agent +from google.adk.agents import loop_agent +from google.adk.events import event as event_lib +from google.adk.tools import base_tool +from google.genai import types + + +class EnvResponse(Protocol): + """Environment response protocol.""" + + observation: str + done: bool + reward: float + + +@runtime_checkable +class Env(Protocol): + """Environment protocol.""" + + def step(self, action: types.Part) -> EnvResponse: + """Steps the environment with the given action.""" + ... + + def reset(self, task_index: int) -> EnvResponse: + """Resets the environment to the given task index.""" + ... + + +class _Tool(base_tool.BaseTool): + """A tool that executes an action in the environment.""" + + class Config: + arbitrary_types_allowed = True + + def __init__( + self, + function_declaration: types.FunctionDeclaration, + env: Env, + ): + """Initializes the tool. + + Args: + function_declaration: The function declaration of the tool. + env: The environment to interact with. + """ + super().__init__( + name=function_declaration.name, + description=function_declaration.description, + ) + self._function_declaration = function_declaration + self._env = env + + def _get_declaration(self) -> types.FunctionDeclaration: + return self._function_declaration + + async def run_async(self, *, args: Dict[str, Any], tool_context: Any) -> str: + """Runs the tool by converting tool call to env action and stepping env.""" + env_response = self._env.step( + types.Part(function_call=types.FunctionCall(name=self.name, args=args)) + ) + # We modify the ADK session state with the updates from the environment, + # in particular `done` and `reward`. These can be consumed downstream for + # instance to extract the trajectory reward or interrupt the loop. + tool_context.actions.state_delta['done'] = env_response.done + tool_context.actions.state_delta['reward'] = env_response.reward + tool_context.actions.skip_summarization = True + if env_response.done: + tool_context.actions.escalate = True + return env_response.observation + + +def _adk_agent( + instruction: str, + tools: list[base_tool.BaseTool], + temperature: float, + model: str | None = None, + name: str | None = None, +) -> llm_agent.LlmAgent: + """Creates an ADK LLM agent with the given instruction and tools. + + Args: + instruction: The instruction for the agent. + tools: The tools for the agent to use. + temperature: The temperature for the LLM. + model: Model to use with the ADK LLMAgent ; defaults to `gemini-2.5-flash`. + name: Name to set for the ADK LLM agent. + + Returns: + An ADK LLM agent. + """ + # TDOO - Allow more flexibility in configuring the agent used in the loop. + return llm_agent.LlmAgent( + name=name or 'agent', + model=model or 'gemini-2.5-flash', + instruction=instruction, + tools=tools, + generate_content_config=types.GenerateContentConfig( + temperature=temperature, + tool_config=types.ToolConfig( + function_calling_config=types.FunctionCallingConfig( + mode=types.FunctionCallingConfigMode.VALIDATED + ) + ), + ), + ) + + +class _UserAgent(base_agent.BaseAgent): + """An agent that wraps the provided environment and simulates an user.""" + + env: Env + + class Config: + arbitrary_types_allowed = True + + async def _run_async_impl(self, ctx: Any) -> Any: + """Runs the user agent.""" + if not ctx.session.events: + raise ValueError( + 'No prior session events, this is unexpected as the user agent cannot' + ' be the first step in the interaction loop.' + ) + last_event = ctx.session.events[-1] + + # Function tool + if last_event.content and last_event.content.role == 'user': + return + + if last_event.content and last_event.content.parts: + next_message = last_event.content.parts[-1].text + else: + logging.warn('Empty content with event=%s', last_event) + next_message = '' + env_response = self.env.step(types.Part(text=next_message)) + + output_event = event_lib.Event( + content=types.Content( + parts=[types.Part(text=env_response.observation)], role='user' + ), + author='user', + ) + if env_response.done: + output_event.actions.escalate = True + output_event.actions.state_delta['reward'] = env_response.reward + output_event.actions.state_delta['done'] = env_response.done + yield output_event + + +def run_environment_loop( + instruction: str, + env: Env, + temperature: float, + tools: list[types.FunctionDeclaration], + task_index: int, + max_num_steps: int = 30, + plugins: Optional[Any] = None, + agent_model: str | None = None, + agent_name: str | None = None, +) -> Generator[event_lib.Event]: + """Defines and runs an ADK LLM Agent in the provided simulation environment. + + Args: + instruction: The instruction for the agent. + env: The environment to interact with. + temperature: The temperature for the LLM. + tools: The tools for the agent to use. + task_index: The index of the task to run. + max_num_steps: The maximum number of steps to run LLM agent - environment + interaction loop. + plugins: Optional plugins to use in the runner. + agent_model: Model to use with the ADK LLMAgent ; defaults to + `gemini-2.5-flash`. + agent_name: Name to set for the ADK LLM agent. + + Returns: + A generator of events from the agent run. + + Yields: + All the events from the environment loop including: + - Initial message from environment reset + - LLMAgent generated text and function calls + - Environment tools / users generated text responses + - Environment user + """ + # We use an agent loop to orchestrate the llm-agent and the environment + # interactions. In particular to: + # - ensure that LLMAgent and environment / user are called one after the + # other + # - the number of interaction steps is pre-defined (early exit is possible). + agent = loop_agent.LoopAgent( + name='env_loop_agent', + max_iterations=max_num_steps, + sub_agents=[ + _adk_agent( + instruction=instruction, + tools=[_Tool(t, env) for t in tools], + temperature=temperature, + model=agent_model, + name=agent_name, + ), + _UserAgent( + name='user_agent', + env=env, + ), + ], + ) + runner = runners.InMemoryRunner( + agent=agent, + app_name='eval_app', + plugins=plugins, + ) + session = asyncio.run( + runner.session_service.create_session( + app_name='eval_app', user_id='eval_user' + ) + ) + env_reset_res = env.reset(task_index=task_index) + initial_message = types.Content( + role='user', parts=[types.Part(text=env_reset_res.observation)] + ) + # The initial message is generated by the environment `reset` within the + # implementation of this function - as the first step of the trace. + # We yield this first step to ensure we provide a full trace to the user. + yield event_lib.Event( + author='user', + content=initial_message, + ) + for event in runner.run( + user_id=session.user_id, + session_id=session.id, + new_message=initial_message, + ): + yield event diff --git a/contributing/samples/gepa/adk_agent_test.py b/contributing/samples/gepa/adk_agent_test.py new file mode 100644 index 0000000000..a27d1a96ab --- /dev/null +++ b/contributing/samples/gepa/adk_agent_test.py @@ -0,0 +1,348 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import asyncio +import dataclasses +from unittest import mock + +from gepa import adk_agent +from google.adk import runners +from google.adk.agents import base_agent +from google.adk.events import event as event_lib +from google.adk.plugins import base_plugin +from google.genai import types + + +class _TestPlugin(base_plugin.BasePlugin): + + def __init__(self, outputs): + super().__init__(name="test-pluggin") + self._model_output_idx = 0 + self.got_llm_requests = [] + self._outputs = outputs + + async def before_model_callback(self, *, callback_context, llm_request): + self.got_llm_requests.append(llm_request) + if self._model_output_idx < len(self._outputs): + out = self._outputs[self._model_output_idx] + self._model_output_idx += 1 + return out + return event_lib.Event( + error_code="empty test list", + author="agent", + ) + + +@dataclasses.dataclass +class EnvResponse: + observation: str + done: bool + reward: float + + +class _TestEnv: + + def __init__(self, responses): + self._responses = responses + self._idx = 0 + + def step(self, action): + del action + if self._idx < len(self._responses): + resp = self._responses[self._idx] + self._idx += 1 + else: + resp = EnvResponse("out-of-bound", done=True, reward=0) + return resp + + def reset(self, task_index: int): + del task_index + return EnvResponse("reset-obs", done=False, reward=42) + + +def test_default_flow(): + model_outputs = [ + event_lib.Event( + content=types.Content( + parts=[types.Part(text="ab")], + role="model", + ), + author="agent", + ), + event_lib.Event( + content=types.Content( + parts=[ + types.Part( + function_call=types.FunctionCall( + name="test_tool", + args=dict(tool_inputs="fake-tool-inputs"), + ) + ) + ], + role="model", + ), + author="agent", + ), + event_lib.Event( + content=types.Content( + parts=[types.Part(text="cd")], + role="model", + ), + author="agent", + ), + ] + events = adk_agent.run_environment_loop( + instruction="some-instruction", + env=_TestEnv([ + EnvResponse("some-obs-1", done=False, reward=123), + EnvResponse("tool-response", done=False, reward=45), + EnvResponse("some-obs-2", done=False, reward=67), + ]), + temperature=0, + tools=[ + types.FunctionDeclaration( + name="test_tool", + description="test_tool", + parameters={ + "type": "object", + "properties": { + "tool_inputs": { + "type": "string", + "description": "tool_inputs", + } + }, + }, + ) + ], + task_index=0, + max_num_steps=3, + plugins=[ + _TestPlugin(model_outputs), + ], + ) + events = list(events) + want = [ + "reset-obs", + "ab", + "some-obs-1", + "test_tool", + "tool-response", + "cd", + "some-obs-2", + ] + + def _extract_from_event(event): + if not event.content: + return "" + if len(event.content.parts) != 1: + return "" + part = event.content.parts[0] + if part.function_call: + return part.function_call.name + if part.function_response: + return part.function_response.response.get("result") + return part.text + + got = [_extract_from_event(e) for e in events] + assert got == want + + got_rewards = [e.actions.state_delta.get("reward") for e in events] + assert got_rewards == [None, None, 123, None, 45, None, 67] + + +def test_intermediary_step_is_done(): + model_outputs = [ + event_lib.Event( + content=types.Content( + parts=[types.Part(text="ab")], + role="model", + ), + author="agent", + ), + event_lib.Event( + content=types.Content( + parts=[types.Part(text="cd")], + role="model", + ), + author="agent", + ), + ] + events = adk_agent.run_environment_loop( + instruction="some-instruction", + env=_TestEnv([ + EnvResponse("some-obs-1", done=True, reward=0), + EnvResponse("some-obs-2", done=False, reward=0), + ]), + temperature=0, + tools=[], + task_index=0, + max_num_steps=5, + plugins=[ + _TestPlugin(model_outputs), + ], + ) + want_text = ["reset-obs", "ab", "some-obs-1"] + got = [e.content.parts[0].text for e in events] + assert got == want_text + + +def test_intermediary_tool_step_is_done(): + model_outputs = [ + event_lib.Event( + content=types.Content( + parts=[types.Part(text="ab")], + role="model", + ), + author="agent", + ), + event_lib.Event( + content=types.Content( + parts=[ + types.Part( + function_call=types.FunctionCall( + name="test_tool", + args=dict(tool_inputs="fake-tool-inputs"), + ) + ) + ], + role="model", + ), + author="agent", + ), + event_lib.Event( + content=types.Content( + parts=[types.Part(text="cd")], + role="model", + ), + author="agent", + ), + ] + events = adk_agent.run_environment_loop( + instruction="some-instruction", + env=_TestEnv([ + EnvResponse("some-obs-1", done=False, reward=123), + EnvResponse("tool-response", done=True, reward=45), + EnvResponse("some-obs-2", done=False, reward=67), + ]), + temperature=0, + tools=[ + types.FunctionDeclaration( + name="test_tool", + description="test_tool", + parameters={ + "type": "object", + "properties": { + "tool_inputs": { + "type": "string", + "description": "tool_inputs", + } + }, + }, + ) + ], + task_index=0, + max_num_steps=3, + plugins=[ + _TestPlugin(model_outputs), + ], + ) + events = list(events) + want = ["reset-obs", "ab", "some-obs-1", "test_tool", "tool-response"] + + def _extract_from_event(event): + if not event.content: + return "" + if len(event.content.parts) != 1: + return "" + part = event.content.parts[0] + if part.function_call: + return part.function_call.name + if part.function_response: + return part.function_response.response.get("result") + return part.text + + got = [_extract_from_event(e) for e in events] + assert got == want + + +def test_llm_request(): + model_outputs = [ + event_lib.Event( + content=types.Content( + parts=[types.Part(text="ab")], + role="model", + ), + author="agent", + ), + event_lib.Event( + content=types.Content( + parts=[types.Part(text="cd")], + role="model", + ), + author="agent", + ), + ] + test_plugin = _TestPlugin(model_outputs) + events = adk_agent.run_environment_loop( + instruction="some-instruction", + env=_TestEnv([ + EnvResponse("some-obs-1", done=False, reward=123), + EnvResponse("some-obs-2", done=False, reward=67), + ]), + temperature=0.123, + tools=[], + task_index=0, + max_num_steps=2, + plugins=[test_plugin], + ) + _ = list(events) + + assert len(test_plugin.got_llm_requests) == 2 + got = test_plugin.got_llm_requests[-1] + assert "some-instruction" in got.config.system_instruction + assert got.config.temperature == 0.123 + got_parts = [c.parts[0].text for c in got.contents] + assert got_parts == ["reset-obs", "ab", "some-obs-1"] + + +def test_model_name_is_set(): + class _MockAgent(base_agent.BaseAgent): + + async def _run_async_impl(self, ctx): + pass + + async def _mock_create_session(*args, **kwargs): + del args, kwargs + await asyncio.sleep(0.1) + return + + with mock.patch.object(runners, "InMemoryRunner") as mock_runner_cls: + mock_runner = mock_runner_cls.return_value + mock_runner.session_service.create_session.side_effect = ( + _mock_create_session + ) + mock_runner.run.return_value = [] + next( + adk_agent.run_environment_loop( + instruction="some-instruction", + env=_TestEnv([]), + temperature=0.123, + tools=[], + task_index=0, + agent_model="some-test-model", + plugins=[_TestPlugin([])], + ) + ) + mock_runner_cls.assert_called_once() + _, runner_kwargs = mock_runner_cls.call_args + assert runner_kwargs["agent"].sub_agents[0].model == "some-test-model" From c0c67c8698d70ddb9ed958416661f232ef9a5ed8 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Wed, 29 Oct 2025 13:05:55 -0700 Subject: [PATCH 225/303] feat: Add ADK-based agent factory for Tau-bench PiperOrigin-RevId: 825674874 --- contributing/samples/gepa/tau_bench_agent.py | 140 +++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 contributing/samples/gepa/tau_bench_agent.py diff --git a/contributing/samples/gepa/tau_bench_agent.py b/contributing/samples/gepa/tau_bench_agent.py new file mode 100644 index 0000000000..fa2be632bc --- /dev/null +++ b/contributing/samples/gepa/tau_bench_agent.py @@ -0,0 +1,140 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Allows to run an ADK agent implementation with a Tau-bench environment. + +Note that Tau-bench needs to be installed to run this module. To install +Tau-bench you can follow the steps below: + +``` +git clone https://github.com/sierra-research/tau-bench.git +cd tau-bench/ +pip install -e . --quiet +``` +""" +from __future__ import annotations + +from typing import Any + +import adk_agent +from google.genai import types +from tau_bench import envs +from tau_bench import types as tau_bench_types +from tau_bench.agents import tool_calling_agent + + +class _EnvWrapper: + """Wraps the Tau-bench environment to match ADK environment protocol.""" + + def __init__(self, env: envs.Env): + self._env = env + + def step(self, action: types.Part) -> adk_agent.EnvResponse: + if function_call := action.function_call: + return self._env.step( + tau_bench_types.Action( + name=function_call.name, kwargs=function_call.args + ) + ) + return self._env.step( + tau_bench_types.Action( + name=tau_bench_types.RESPOND_ACTION_NAME, + kwargs=dict(content=action.text), + ) + ) + + def reset(self, task_index: int) -> adk_agent.EnvResponse: + return self._env.reset(task_index) + + +def _convert_tool(tool_def: dict[str, Any]) -> types.FunctionDeclaration: + if tool_def['type'] != 'function': + raise ValueError(f'Unsupported tool {tool_def}') + return types.FunctionDeclaration(**tool_def['function']) + + +class _ADKAgent(tool_calling_agent.ToolCallingAgent): + """ADK agent implementation for Tau Bench.""" + + def solve( + self, + env: envs.Env, + task_index: int | None = None, + max_num_steps: int = 30, + ) -> tau_bench_types.SolveResult: + """Solves the task using ADK agent. + + Args: + env: The environment to solve the task in. + task_index: The index of the task to solve. + max_num_steps: The maximum number of steps to run the agent. + + Returns: + The result of the solve. + """ + # Thought-signature is excluded from the message serialization for the + # following reasons: + # - it is not serializable out of the box + # - it is not relevant for trajectory validation as agent inputs / outputs + # are. + content_exclusion = {'parts': {'__all__': 'thought_signature'}} + messages = [ + types.Content( + role='system', parts=[types.Part(text=self.wiki)] + ).model_dump(exclude=content_exclusion), + ] + reward = 0.0 + for event in adk_agent.run_environment_loop( + instruction=self.wiki, + env=_EnvWrapper(env), + temperature=self.temperature, + tools=[_convert_tool(t) for t in env.tools_info], + task_index=task_index, + max_num_steps=max_num_steps, + ): + if not event.content: + continue + messages.append(event.content.model_dump(exclude=content_exclusion)) + reward = event.actions.state_delta.get('reward', reward) + return tau_bench_types.SolveResult( + reward=reward, + info={}, + messages=messages, + ) + + +# Equivalent of default `agent_factory` from Tau-bench in +# https://github.com/sierra-research/tau-bench/blob/4754e6b406507dbcbce8e8b3855dcf80aaec18ac/tau_bench/run.py#L124 +def adk_agent_factory( + tools_info: list[dict[str, Any]], + wiki: str, + config: tau_bench_types.RunConfig, +) -> tool_calling_agent.ToolCallingAgent: + """Factory for creating a Tau-bench agent implemented with the ADK. + + Args: + tools_info: A list of tool definitions. + wiki: The instructions for the agent. + config: The run configuration. + + Returns: + An ADK agent. + """ + return _ADKAgent( + tools_info=tools_info, + wiki=wiki, + model=config.model, + provider=config.model_provider, + temperature=config.temperature, + ) From 592c5d870e365d8b814a78501aeb90f61d9ae5a6 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Wed, 29 Oct 2025 13:06:54 -0700 Subject: [PATCH 226/303] feat: Add initial colab to run GEPA on Tau-bench with ADK PiperOrigin-RevId: 825675276 --- .../samples/gepa/gepa_tau_bench.ipynb | 888 ++++++++++++++++++ 1 file changed, 888 insertions(+) create mode 100644 contributing/samples/gepa/gepa_tau_bench.ipynb diff --git a/contributing/samples/gepa/gepa_tau_bench.ipynb b/contributing/samples/gepa/gepa_tau_bench.ipynb new file mode 100644 index 0000000000..20eff076a8 --- /dev/null +++ b/contributing/samples/gepa/gepa_tau_bench.ipynb @@ -0,0 +1,888 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "882gPGOGM7-i" + }, + "source": [ + "# Setup" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "GqUHYdvRJ7pt" + }, + "outputs": [], + "source": [ + "#@title Install Tau-bench and GEPA\n", + "!git clone https://github.com/sierra-research/tau-bench.git\n", + "%cd tau-bench/\n", + "!pip install -e . --quiet\n", + "\n", + "%cd ..\n", + "!pip install gepa --quiet\n", + "\n", + "%cd tau-bench/" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "SdGCJfEtz8Nq" + }, + "outputs": [], + "source": [ + "#@title Setup and Authentication\n", + "import logging\n", + "import os\n", + "\n", + "from google.genai import types\n", + "#@markdown Configure Vertex AI Access\n", + "\n", + "GCP_PROJECT = '' #@param {type: 'string'}\n", + "GCP_LOCATION = 'us-central1' #@param {type: 'string'}\n", + "\n", + "os.environ['GOOGLE_GENAI_USE_VERTEXAI'] = 'true'\n", + "os.environ['GOOGLE_CLOUD_PROJECT'] = GCP_PROJECT\n", + "os.environ['GOOGLE_CLOUD_LOCATION'] = GCP_LOCATION\n", + "\n", + "# Set a logging verbosity suited for this experiment. See\n", + "# https://github.com/google/adk-python/issues/1852 for context\n", + "class _FilterInferenceWarnings(logging.Filter):\n", + " \"\"\"Filters out Vertex inference warning about non-text parts in response.\"\"\"\n", + "\n", + " def filter(self, record):\n", + " if record.levelname != 'WARNING':\n", + " return True\n", + " message_identifier = record.getMessage()\n", + " return not message_identifier.startswith(\n", + " 'Warning: there are non-text parts in the response:'\n", + " )\n", + "\n", + "\n", + "types.logger.addFilter(_FilterInferenceWarnings())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "cellView": "form", + "id": "gAERCrlhgiam" + }, + "outputs": [], + "source": [ + "#@title Discover Tau-bench Tool Definitions\n", + "# This section dynamically discovers and imports tool definitions from the\n", + "# tau-bench library. The code below is searches for the base 'Tool' class and\n", + "# then looks for all subclasses in the 'retail' and 'airline' domains.\n", + "import sys, pathlib, importlib, inspect, ast\n", + "\n", + "REPO_ROOT = pathlib.Path.cwd()\n", + "PKG_ROOT = REPO_ROOT / 'tau_bench'\n", + "DOMAINS = ['retail', 'airline']\n", + "\n", + "if str(REPO_ROOT) not in sys.path:\n", + " sys.path.insert(0, str(REPO_ROOT))\n", + "\n", + "def import_Tool():\n", + " \"\"\"Finds and imports the base `Tool` class from the tau-bench library.\n", + "\n", + " It tries several known locations for the `Tool` class. As a fallback, it\n", + " searches for any file defining 'class Tool(' and attempts to import from\n", + " there.\n", + "\n", + " Returns:\n", + " The `Tool` class object.\n", + "\n", + " Raises:\n", + " ImportError: If the `Tool` class cannot be located.\n", + " \"\"\"\n", + " candidates = [\n", + " 'tau_bench.core.tool:Tool',\n", + " 'tau_bench.core.tools:Tool',\n", + " 'tau_bench.tools:Tool',\n", + " 'tau_bench.envs.core.tool:Tool',\n", + " 'tau_bench.envs.core.tools:Tool',\n", + " 'tau_bench.envs.tool:Tool',\n", + " ]\n", + " for spec in candidates:\n", + " mod, name = spec.split(':')\n", + " try:\n", + " return getattr(importlib.import_module(mod), name)\n", + " except Exception:\n", + " pass\n", + " # Fallback: find any file that defines 'class Tool(' and import it\n", + " for p in PKG_ROOT.rglob('*.py'):\n", + " try:\n", + " txt = p.read_text(encoding='utf-8', errors='ignore')\n", + " except Exception:\n", + " continue\n", + " if 'class Tool(' in txt:\n", + " mod = '.'.join(p.relative_to(REPO_ROOT).with_suffix('').parts)\n", + " try:\n", + " return getattr(importlib.import_module(mod), 'Tool')\n", + " except Exception:\n", + " pass\n", + " raise ImportError('Could not locate the Tool class in tau_bench')\n", + "\n", + "Tool = import_Tool()\n", + "\n", + "def module_name_from_path(pyfile: pathlib.Path) -> str:\n", + " rel = pyfile.relative_to(REPO_ROOT).with_suffix('')\n", + " return '.'.join(rel.parts)\n", + "\n", + "def ast_inherits_tool(pyfile: pathlib.Path) -> list:\n", + " \"\"\"Returns a list of fully-qualified class names.\n", + "\n", + " These include 'Tool' or '*.Tool'.\n", + " \"\"\"\n", + " out = []\n", + " try:\n", + " code = pyfile.read_text(encoding='utf-8', errors='ignore')\n", + " tree = ast.parse(code, filename=str(pyfile))\n", + " except Exception:\n", + " return out\n", + " modname = module_name_from_path(pyfile)\n", + " for node in ast.walk(tree):\n", + " if isinstance(node, ast.ClassDef):\n", + " inherits = False\n", + " for base in node.bases:\n", + " try:\n", + " base_txt = ast.unparse(base)\n", + " except Exception:\n", + " if hasattr(base, \"id\"):\n", + " base_txt = base.id\n", + " elif hasattr(base, \"attr\"):\n", + " base_txt = base.attr\n", + " else:\n", + " base_txt = ''\n", + " if base_txt == 'Tool' or base_txt.endswith('.Tool'):\n", + " inherits = True\n", + " break\n", + " if inherits:\n", + " out.append(f'{modname}.{node.name}')\n", + " return out\n", + "\n", + "def collect_for_domain(domain: str) -> list:\n", + " \"\"\"Collects all tool classes for a given domain (e.g., 'retail').\n", + "\n", + " It first tries to import modules and check for subclasses of `Tool` using\n", + " `issubclass`. If importing fails for any reason, it falls back to a\n", + " heuristic based on AST parsing to identify tool classes.\n", + "\n", + " Args:\n", + " domain: The domain to search for tools in (e.g., 'retail', 'airline').\n", + "\n", + " Returns:\n", + " A list of tool classes found for the given domain.\n", + " \"\"\"\n", + " tools_dir = PKG_ROOT / 'envs' / domain / 'tools'\n", + " if not tools_dir.exists():\n", + " return []\n", + " results = []\n", + " for pyfile in sorted(tools_dir.rglob('*.py')):\n", + " if pyfile.name == '__init__.py':\n", + " continue\n", + " modname = module_name_from_path(pyfile)\n", + " # Try import-based check first\n", + " try:\n", + " mod = importlib.import_module(modname)\n", + " for _, cls in inspect.getmembers(mod, inspect.isclass):\n", + " if getattr(cls, '__module__', None) != mod.__name__:\n", + " continue\n", + " if cls is Tool:\n", + " continue\n", + " try:\n", + " if issubclass(cls, Tool):\n", + " results.append(cls)\n", + " except Exception:\n", + " pass\n", + " except Exception:\n", + " # Import failed → AST heuristic\n", + " results.extend(ast_inherits_tool(pyfile))\n", + " # Dedup preserve order\n", + " seen, deduped = set(), []\n", + " for q in results:\n", + " if q not in seen:\n", + " seen.add(q)\n", + " deduped.append(q)\n", + " return deduped\n", + "\n", + "tool_classes_by_domain = {d: collect_for_domain(d) for d in DOMAINS}\n", + "tool_definitions_by_domain = {}\n", + "for domain, tool_classes in tool_classes_by_domain.items():\n", + " tool_definitions_by_domain[domain] = []\n", + " for tool_class in tool_classes:\n", + " tool_info = tool_class.get_info()\n", + " if tool_info.get('type') != 'function' or not tool_info.get('function'):\n", + " continue\n", + " tool_definitions_by_domain[domain].append(tool_info['function'])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "WQteYUPIM-HQ" + }, + "source": [ + "# Classes and Functions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "SZVk-I-Kl1uL" + }, + "outputs": [], + "source": [ + "#@title Core Logic for Tau-Bench Evaluation\n", + "# This section defines the main components for running tau-bench evaluations and\n", + "# integrating them with GEPA:\n", + "# - A custom runner for tau-bench experiments.\n", + "# - Data structures for trajectories and outputs.\n", + "# - A GEPA adapter that bridges GEPA's optimization process with tau-bench.\n", + "\n", + "\n", + "import os\n", + "import json\n", + "import random\n", + "import traceback\n", + "import multiprocessing\n", + "from typing import List\n", + "from datetime import datetime\n", + "from concurrent.futures import ThreadPoolExecutor\n", + "\n", + "from google.adk.examples.gepa import tau_bench_agent as tau_bench_agent_lib\n", + "from tau_bench.envs import get_env\n", + "from tau_bench.run import display_metrics\n", + "from tau_bench.types import EnvRunResult, RunConfig\n", + "from litellm import provider_list\n", + "from tau_bench.envs.user import UserStrategy\n", + "\n", + "\n", + "def custom_run(\n", + " config: RunConfig,\n", + " print_results: bool = False,\n", + " custom_system_instruction: str = None) -> List[EnvRunResult]:\n", + " \"\"\"Runs a set of tau-bench tasks with a given agent configuration.\n", + "\n", + " This is a customized version of the standard tau-bench run function, adapted\n", + " for this experiment's needs. It handles environment setup, agent creation,\n", + " task execution in parallel, and result aggregation.\n", + "\n", + " Args:\n", + " config: A RunConfig object specifying the environment, models, and other\n", + " parameters for the run.\n", + " print_results: If True, prints the result of each task as it completes.\n", + " custom_system_instruction: An optional system instruction to use for the\n", + " agent, overriding the default.\n", + "\n", + " Returns:\n", + " A list of EnvRunResult objects, one for each completed task.\n", + " \"\"\"\n", + " if config.env not in ['retail', 'airline']:\n", + " raise ValueError('Only retail and airline envs are supported')\n", + " if config.model_provider not in provider_list:\n", + " raise ValueError('Invalid model provider')\n", + " if config.user_model_provider not in provider_list:\n", + " raise ValueError('Invalid user model provider')\n", + " if config.agent_strategy not in [\n", + " 'tool-calling', 'act', 'react', 'few-shot'\n", + " ]:\n", + " raise ValueError('Invalid agent strategy')\n", + " if config.task_split not in ['train', 'test', 'dev']:\n", + " raise ValueError('Invalid task split')\n", + " if config.user_strategy not in [item.value for item in UserStrategy]:\n", + " raise ValueError('Invalid user strategy')\n", + "\n", + " random.seed(config.seed)\n", + " time_str = datetime.now().strftime('%m%d%H%M%S')\n", + " model_name = config.model.split('/')[-1]\n", + " ckpt_filename = (\n", + " f'{config.agent_strategy}-{model_name}-{config.temperature}_range_'\n", + " f'{config.start_index}-{config.end_index}_user-{config.user_model}-'\n", + " f'{config.user_strategy}_{time_str}.json'\n", + " )\n", + " ckpt_path = os.path.join(config.log_dir, ckpt_filename)\n", + " if not os.path.exists(config.log_dir):\n", + " os.makedirs(config.log_dir)\n", + "\n", + " print(f'Loading user with strategy: {config.user_strategy}')\n", + " env = get_env(\n", + " config.env,\n", + " user_strategy=config.user_strategy,\n", + " user_model=config.user_model,\n", + " user_provider=config.user_model_provider,\n", + " task_split=config.task_split,\n", + " )\n", + " if custom_system_instruction:\n", + " env.wiki = custom_system_instruction\n", + " agent = tau_bench_agent_lib.adk_agent_factory(\n", + " tools_info=env.tools_info,\n", + " wiki=env.wiki,\n", + " config=config,\n", + " )\n", + " if config.end_index == -1:\n", + " end_index = len(env.tasks)\n", + " else:\n", + " end_index = min(config.end_index, len(env.tasks))\n", + " results: List[EnvRunResult] = []\n", + " lock = multiprocessing.Lock()\n", + " if config.task_ids and len(config.task_ids) > 0:\n", + " print(f'Running tasks {config.task_ids} (checkpoint path: {ckpt_path})')\n", + " else:\n", + " print(\n", + " f'Running tasks {config.start_index} to {end_index} '\n", + " f'(checkpoint path: {ckpt_path})'\n", + " )\n", + " for i in range(config.num_trials):\n", + " if config.task_ids and len(config.task_ids) > 0:\n", + " idxs = config.task_ids\n", + " else:\n", + " idxs = list(range(config.start_index, end_index))\n", + " if config.shuffle:\n", + " random.shuffle(idxs)\n", + "\n", + " def _run(idx: int) -> EnvRunResult:\n", + " isolated_env = get_env(\n", + " config.env,\n", + " user_strategy=config.user_strategy,\n", + " user_model=config.user_model,\n", + " task_split=config.task_split,\n", + " user_provider=config.user_model_provider,\n", + " task_index=idx,\n", + " )\n", + " if print_results:\n", + " print(f'Running task {idx}')\n", + " try:\n", + " res = agent.solve(\n", + " env=isolated_env,\n", + " task_index=idx,\n", + " )\n", + " result = EnvRunResult(\n", + " task_id=idx,\n", + " reward=res.reward,\n", + " info=res.info,\n", + " traj=res.messages,\n", + " trial=i,\n", + " )\n", + " except Exception as e:\n", + " result = EnvRunResult(\n", + " task_id=idx,\n", + " reward=0.0,\n", + " info={'error': str(e), 'traceback': traceback.format_exc()},\n", + " traj=[],\n", + " trial=i,\n", + " )\n", + " if print_results:\n", + " print(\n", + " '✅' if result.reward == 1 else '❌',\n", + " f'task_id={idx}',\n", + " # result.info,\n", + " )\n", + " print('-----')\n", + " with lock:\n", + " data = []\n", + " if os.path.exists(ckpt_path):\n", + " with open(ckpt_path, 'r') as f:\n", + " data = json.load(f)\n", + " with open(ckpt_path, 'w') as f:\n", + " json.dump(data + [result.model_dump()], f, indent=2)\n", + " return result\n", + "\n", + " with ThreadPoolExecutor(max_workers=config.max_concurrency) as executor:\n", + " res = list(executor.map(_run, idxs))\n", + " results.extend(res)\n", + "\n", + " display_metrics(results)\n", + "\n", + " with open(ckpt_path, 'w') as f:\n", + " json.dump([result.model_dump() for result in results], f, indent=2)\n", + " print(f'\\n📄 Results saved to {ckpt_path}\\n')\n", + " return results" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "hZkwAFkINKG_" + }, + "outputs": [], + "source": [ + "#@title GEPA Adapter for Tau-bench\n", + "# The TauBenchAdapter is the core component that allows GEPA to optimize prompts\n", + "# for tau-bench. It implements the GEPAAdapter interface, defining how to:\n", + "# 1. `evaluate`: Run a candidate prompt on a batch of tau-bench tasks and\n", + "# return scores.\n", + "# 2. `make_reflective_dataset`: Convert evaluation results into a dataset that\n", + "# can be used for reflection and prompt improvement.\n", + "\n", + "from typing import List, Any, TypedDict\n", + "import json\n", + "import gepa\n", + "from gepa.core.adapter import EvaluationBatch, GEPAAdapter\n", + "\n", + "\n", + "class TauBenchDataInst(TypedDict):\n", + " env: str\n", + " task_id: int\n", + "\n", + "\n", + "class TauBenchTrajectory(TypedDict):\n", + " result_traj: list[dict]\n", + "\n", + "\n", + "class TauBenchRolloutOutput(TypedDict):\n", + " env: str\n", + " task_id: int\n", + " reward: float\n", + " task_info: dict\n", + "\n", + "\n", + "class TauBenchAdapter(GEPAAdapter[\n", + " TauBenchDataInst,\n", + " TauBenchTrajectory,\n", + " TauBenchRolloutOutput,\n", + "]):\n", + " \"\"\"A GEPA adapter for evaluating agent performance on tau-bench benchmark.\"\"\"\n", + "\n", + " def __init__(\n", + " self,\n", + " agent_model='gemini-2.5-flash',\n", + " agent_model_provider='vertex_ai',\n", + " user_model='gemini-2.5-pro',\n", + " user_model_provider='vertex_ai',\n", + " agent_strategy='tool-calling',\n", + " user_strategy='llm',\n", + " system_instruction_name='system_instruction',\n", + " tool_definitions_name='tool_definitions',\n", + " max_concurrency=4,\n", + " ):\n", + " \"\"\"Initializes the TauBenchAdapter.\n", + "\n", + " Args:\n", + " agent_model: The model to use for the agent.\n", + " agent_model_provider: The provider for the agent model.\n", + " user_model: The model to use for simulating the user.\n", + " user_model_provider: The provider for the user model.\n", + " agent_strategy: The agent strategy to use (e.g., 'tool-calling').\n", + " user_strategy: The user simulation strategy (e.g., 'llm').\n", + " system_instruction_name: The key in the candidate dictionary that holds\n", + " the system instruction.\n", + " tool_definitions_name: The key in the candidate dictionary that holds the\n", + " tool definitions.\n", + " max_concurrency: The maximum number of tasks to run in parallel.\n", + " \"\"\"\n", + " self._agent_model = agent_model\n", + " self._agent_model_provider = agent_model_provider\n", + " self._user_model = user_model\n", + " self._user_model_provider = user_model_provider\n", + " self._agent_strategy = agent_strategy\n", + " self._user_strategy = user_strategy\n", + " self._max_concurrency = max_concurrency\n", + " self._system_instruction_name = system_instruction_name\n", + " self._tool_definitions_name = tool_definitions_name\n", + "\n", + " def evaluate(\n", + " self,\n", + " batch: list[TauBenchDataInst],\n", + " candidate: dict[str, str],\n", + " capture_traces: bool = False,\n", + " ) -> EvaluationBatch[TauBenchTrajectory, TauBenchRolloutOutput]:\n", + " \"\"\"Evaluates a candidate prompt on a batch of tau-bench tasks.\n", + "\n", + " This method is called by GEPA during the optimization loop. It takes a\n", + " candidate prompt, runs it against the specified tasks from tau-bench, and\n", + " returns the results.\n", + "\n", + " Args:\n", + " batch: A list of task instances to evaluate on. Each instance specifies\n", + " the environment and task ID.\n", + " candidate: A dictionary containing the components to be evaluated,\n", + " including the system instruction.\n", + " capture_traces: (Not used in this adapter) Whether to capture detailed\n", + " traces.\n", + "\n", + " Returns:\n", + " An EvaluationBatch object containing scores, outputs, and trajectories for\n", + " each task in the batch.\n", + " \"\"\"\n", + " del capture_traces # Not used.\n", + " env = batch[0]['env']\n", + " task_ids = [inst['task_id'] for inst in batch]\n", + " tau_bench_run_config = RunConfig(\n", + " env=env,\n", + " model=self._agent_model,\n", + " model_provider=self._agent_model_provider,\n", + " user_model=self._user_model,\n", + " user_model_provider=self._user_model_provider,\n", + " agent_strategy=self._agent_strategy,\n", + " user_strategy=self._user_strategy,\n", + " max_concurrency=self._max_concurrency,\n", + " task_ids=task_ids\n", + " )\n", + " tau_bench_results = custom_run(\n", + " tau_bench_run_config,\n", + " custom_system_instruction=candidate.get(self._system_instruction_name),\n", + " )\n", + "\n", + " outputs = []\n", + " trajectories = []\n", + " scores = []\n", + " for res in tau_bench_results:\n", + " outputs.append(\n", + " TauBenchRolloutOutput(\n", + " env=env,\n", + " task_id=res.task_id,\n", + " reward=res.reward,\n", + " task_info=res.info))\n", + " result_traj = res.traj\n", + " # TODO - Consider refining the trajectory format.\n", + " trajectories.append(TauBenchTrajectory(result_traj=result_traj))\n", + " scores.append(res.reward)\n", + "\n", + " return EvaluationBatch(\n", + " scores=scores, outputs=outputs, trajectories=trajectories)\n", + "\n", + " def make_reflective_dataset(\n", + " self,\n", + " candidate: dict[str, str],\n", + " eval_batch: EvaluationBatch[TauBenchTrajectory, TauBenchRolloutOutput],\n", + " components_to_update: list[str]\n", + " ) -> dict[str, list[dict[str, Any]]]:\n", + " \"\"\"Creates a dataset for reflection based on evaluation results.\n", + "\n", + " This method transforms the trajectories and scores from an evaluation run\n", + " into a structured format that a reflection model can use to generate\n", + " suggestions for improving the prompt.\n", + "\n", + " Args:\n", + " candidate: The candidate that was evaluated.\n", + " eval_batch: The results of the evaluation.\n", + " components_to_update: A list of component names that the reflection\n", + " should focus on improving.\n", + "\n", + " Returns:\n", + " A dictionary where keys are component names and values are lists of\n", + " data instances for reflection.\n", + " \"\"\"\n", + " system_instruction = candidate[self._system_instruction_name]\n", + " tool_definitions = candidate[self._tool_definitions_name]\n", + " inputs = '\\n\\n'.join([\n", + " f'# System Instruction\\n{system_instruction}',\n", + " f'# Tool Definitions\\n{tool_definitions}',\n", + " ])\n", + " ret_d: dict[str, list[dict[str, Any]]] = {}\n", + " for comp in components_to_update:\n", + " items: list[dict[str, Any]] = []\n", + " trace_instances = list(zip(\n", + " eval_batch.trajectories,\n", + " eval_batch.scores,\n", + " eval_batch.outputs,\n", + " strict=True,\n", + " ))\n", + " for trace_instance in trace_instances:\n", + " traj, score, _ = trace_instance\n", + " if score > 0:\n", + " feedback = f'The agent successfully resolved all customer issues'\n", + " else:\n", + " feedback = (\n", + " f'The agent failed to resolve all customer issues correctly'\n", + " )\n", + " d = {\n", + " 'Inputs': inputs,\n", + " 'Generated Outputs': json.dumps(traj, indent=2, default=str),\n", + " 'Feedback': feedback\n", + " }\n", + " items.append(d)\n", + " if items:\n", + " ret_d[comp] = items\n", + " assert ret_d, (\n", + " 'empty reflective dataset for components '\n", + " f'{[comp for comp in components_to_update]}'\n", + " )\n", + " return ret_d\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_yQOx6WoNLGn" + }, + "source": [ + "# Run Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "bE8_dE_DMqyk" + }, + "outputs": [], + "source": [ + "#@title Experiment Configuration and Execution\n", + "# This section sets up and runs the GEPA optimization experiment.\n", + "# Here we define all the parameters for the tau-bench environment, the GEPA\n", + "# optimization loop, and the models to be used.\n", + "\n", + "#@markdown Tau-bench config\n", + "tau_bench_env = 'retail' #@param ['retail', 'airline']\n", + "agent_model = 'gemini-2.5-flash' #@param ['gemini-2.5-flash', 'gemini-2.0-flash']\n", + "agent_model_provider = 'vertex_ai' #@param ['vertex_ai', 'google']\n", + "user_model = 'gemini-2.5-flash' #@param ['gemini-2.5-flash', 'gemini-2.5-pro']\n", + "user_model_provider = 'vertex_ai' #@param ['vertex_ai', 'google']\n", + "max_concurrency = 8 #@param {type:\"integer\"}\n", + "num_eval_trials = 4 #@param {type: 'integer'}\n", + "#@markdown GEPA config\n", + "training_set_size = 20 #@param {type:\"integer\"}\n", + "eval_set_size = 20 #@param {type:\"integer\"}\n", + "rnd_seed = 42 #@param {type:\"integer\"}\n", + "max_metric_calls = 500 #@param {type:\"integer\"}\n", + "reflection_model = 'gemini-2.5-pro' #@param ['gemini-2.5-flash', 'gemini-2.5-pro']\n", + "reflection_minibatch_size = 3 #@param {type:\"integer\"}\n", + "\n", + "#@markdown Dataset and Candidate Setup\n", + "random.seed(rnd_seed)\n", + "domain_to_size = {'retail': 115, 'airline': 50}\n", + "all_tasks = set(range(domain_to_size[tau_bench_env]))\n", + "training_task_ids = random.sample(list(all_tasks), training_set_size)\n", + "eval_task_ids = random.sample(\n", + " list(all_tasks - set(training_task_ids)),\n", + " eval_set_size,\n", + ")\n", + "test_task_ids = list(all_tasks - set(training_task_ids) - set(eval_task_ids))\n", + "\n", + "training_set = [\n", + " TauBenchDataInst(env=tau_bench_env, task_id=task_id)\n", + " for task_id in training_task_ids\n", + "]\n", + "eval_set = [\n", + " TauBenchDataInst(env=tau_bench_env, task_id=task_id)\n", + " for task_id in eval_task_ids\n", + "]\n", + "\n", + "system_instruction_name = 'system_instruction'\n", + "tool_definitions_name = 'tool_definitions'\n", + "\n", + "SEED_SYSTEM_INSTRUCTION = (\n", + " 'you are a customer support agent helping customers resolve their '\n", + " 'issues by using the right tools'\n", + ")\n", + "\n", + "seed_candidate = {\n", + " system_instruction_name: SEED_SYSTEM_INSTRUCTION,\n", + " # TODO - Consider removing tool definition from optimization space.\n", + " tool_definitions_name: json.dumps(\n", + " tool_definitions_by_domain[tau_bench_env],\n", + " indent=2,\n", + " default=str,\n", + " ),\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "8ctYtM8HpMM8" + }, + "outputs": [], + "source": [ + "#@title Run GEPA Optimization\n", + "# With the configuration and adapter in place, this section creates the adapter\n", + "# instance and calls `gepa.optimize()` to start the Automatic Prompt\n", + "# Optimization (APO) process.\n", + "\n", + "tau_bench_adapter = TauBenchAdapter(\n", + " agent_model=agent_model,\n", + " agent_model_provider=agent_model_provider,\n", + " user_model=user_model,\n", + " user_model_provider=user_model_provider,\n", + " agent_strategy='tool-calling',\n", + " user_strategy='llm',\n", + " system_instruction_name=system_instruction_name,\n", + " tool_definitions_name=tool_definitions_name,\n", + " max_concurrency=max_concurrency,\n", + ")\n", + "\n", + "gepa_results = gepa.optimize(\n", + " seed_candidate=seed_candidate,\n", + " trainset=training_set,\n", + " valset=eval_set,\n", + " task_lm=None, # this must be None when a custom adapter is used\n", + " adapter=tau_bench_adapter,\n", + " max_metric_calls=max_metric_calls,\n", + " reflection_lm=f'vertex_ai/{reflection_model}',\n", + " reflection_minibatch_size=reflection_minibatch_size,\n", + ")\n", + "list(enumerate(gepa_results.val_aggregate_scores))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "W3awKFTnbBLW" + }, + "outputs": [], + "source": [ + "#@title Evaluate All Candidates\n", + "%%time\n", + "\n", + "\n", + "# This is the prompt from https://arxiv.org/pdf/2406.12045\n", + "DEFAULT_SYSTEM_INSTRUCTION = '''# Retail agent policy\n", + "\n", + "As a retail agent, you can help users cancel or modify pending orders, return or exchange delivered orders, modify their default user address, or provide information about their own profile, orders, and related products.\n", + "\n", + "- At the beginning of the conversation, you have to authenticate the user identity by locating their user id via email, or via name + zip code. This has to be done even when the user already provides the user id.\n", + "\n", + "- Once the user has been authenticated, you can provide the user with information about order, product, profile information, e.g. help the user look up order id.\n", + "\n", + "- You can only help one user per conversation (but you can handle multiple requests from the same user), and must deny any requests for tasks related to any other user.\n", + "\n", + "- Before taking consequential actions that update the database (cancel, modify, return, exchange), you have to list the action detail and obtain explicit user confirmation (yes) to proceed.\n", + "\n", + "- You should not make up any information or knowledge or procedures not provided from the user or the tools, or give subjective recommendations or comments.\n", + "\n", + "- You should at most make one tool call at a time, and if you take a tool call, you should not respond to the user at the same time. If you respond to the user, you should not make a tool call.\n", + "\n", + "- You should transfer the user to a human agent if and only if the request cannot be handled within the scope of your actions.\n", + "\n", + "## Domain basic\n", + "\n", + "- All times in the database are EST and 24 hour based. For example \"02:30:00\" means 2:30 AM EST.\n", + "\n", + "- Each user has a profile of its email, default address, user id, and payment methods. Each payment method is either a gift card, a paypal account, or a credit card.\n", + "\n", + "- Our retail store has 50 types of products. For each type of product, there are variant items of different options. For example, for a 't shirt' product, there could be an item with option 'color blue size M', and another item with option 'color red size L'.\n", + "\n", + "- Each product has an unique product id, and each item has an unique item id. They have no relations and should not be confused.\n", + "\n", + "- Each order can be in status 'pending', 'processed', 'delivered', or 'cancelled'. Generally, you can only take action on pending or delivered orders.\n", + "\n", + "- Exchange or modify order tools can only be called once. Be sure that all items to be changed are collected into a list before making the tool call!!!\n", + "\n", + "## Cancel pending order\n", + "\n", + "- An order can only be cancelled if its status is 'pending', and you should check its status before taking the action.\n", + "\n", + "- The user needs to confirm the order id and the reason (either 'no longer needed' or 'ordered by mistake') for cancellation.\n", + "\n", + "- After user confirmation, the order status will be changed to 'cancelled', and the total will be refunded via the original payment method immediately if it is gift card, otherwise in 5 to 7 business days.\n", + "\n", + "## Modify pending order\n", + "\n", + "- An order can only be modified if its status is 'pending', and you should check its status before taking the action.\n", + "\n", + "- For a pending order, you can take actions to modify its shipping address, payment method, or product item options, but nothing else.\n", + "\n", + "### Modify payment\n", + "\n", + "- The user can only choose a single payment method different from the original payment method.\n", + "\n", + "- If the user wants the modify the payment method to gift card, it must have enough balance to cover the total amount.\n", + "\n", + "- After user confirmation, the order status will be kept 'pending'. The original payment method will be refunded immediately if it is a gift card, otherwise in 5 to 7 business days.\n", + "\n", + "### Modify items\n", + "\n", + "- This action can only be called once, and will change the order status to 'pending (items modifed)', and the agent will not be able to modify or cancel the order anymore. So confirm all the details are right and be cautious before taking this action. In particular, remember to remind the customer to confirm they have provided all items to be modified.\n", + "\n", + "- For a pending order, each item can be modified to an available new item of the same product but of different product option. There cannot be any change of product types, e.g. modify shirt to shoe.\n", + "\n", + "- The user must provide a payment method to pay or receive refund of the price difference. If the user provides a gift card, it must have enough balance to cover the price difference.\n", + "\n", + "## Return delivered order\n", + "\n", + "- An order can only be returned if its status is 'delivered', and you should check its status before taking the action.\n", + "\n", + "- The user needs to confirm the order id, the list of items to be returned, and a payment method to receive the refund.\n", + "\n", + "- The refund must either go to the original payment method, or an existing gift card.\n", + "\n", + "- After user confirmation, the order status will be changed to 'return requested', and the user will receive an email regarding how to return items.\n", + "\n", + "## Exchange delivered order\n", + "\n", + "- An order can only be exchanged if its status is 'delivered', and you should check its status before taking the action. In particular, remember to remind the customer to confirm they have provided all items to be exchanged.\n", + "\n", + "- For a delivered order, each item can be exchanged to an available new item of the same product but of different product option. There cannot be any change of product types, e.g. modify shirt to shoe.\n", + "\n", + "- The user must provide a payment method to pay or receive refund of the price difference. If the user provides a gift card, it must have enough balance to cover the price difference.\n", + "\n", + "- After user confirmation, the order status will be changed to 'exchange requested', and the user will receive an email regarding how to return items. There is no need to place a new order.\n", + "'''\n", + "\n", + "\n", + "all_system_instructions = [\n", + " DEFAULT_SYSTEM_INSTRUCTION,\n", + " SEED_SYSTEM_INSTRUCTION,\n", + " gepa_results.best_candidate['system_instruction'],\n", + "]\n", + "\n", + "\n", + "system_instruction_to_eval_results = {}\n", + "for system_instruction in all_system_instructions:\n", + " tau_bench_run_config = RunConfig(\n", + " env=tau_bench_env,\n", + " model=agent_model,\n", + " model_provider=agent_model_provider,\n", + " user_model=user_model,\n", + " user_model_provider=user_model_provider,\n", + " agent_strategy='tool-calling',\n", + " user_strategy='llm',\n", + " max_concurrency=max_concurrency,\n", + " num_trials=num_eval_trials,\n", + " task_ids=test_task_ids,\n", + " )\n", + " tau_bench_results = custom_run(\n", + " tau_bench_run_config,\n", + " custom_system_instruction=system_instruction,\n", + " )\n", + " total = len(tau_bench_results)\n", + " numerator = sum(1 for res in tau_bench_results if res.reward == 1)\n", + " print(\n", + " f'average reward (total={total}): {numerator/total if total > 0 else 0}'\n", + " )\n", + " system_instruction_to_eval_results[system_instruction] = tau_bench_results" + ] + } + ], + "metadata": { + "colab": { + "provenance": [], + "last_runtime": { + "build_target": "//learning/language/tunelab/tunekit/colab:colab_notebook", + "kind": "private" + } + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} From 04dbc42e50ce40ef3924d1c259e425215e12c2e7 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Wed, 29 Oct 2025 13:07:37 -0700 Subject: [PATCH 227/303] feat: Improve Tau-bench ADK colab stability PiperOrigin-RevId: 825675599 --- contributing/samples/gepa/adk_agent.py | 19 ++- contributing/samples/gepa/adk_agent_test.py | 2 +- .../samples/gepa/gepa_tau_bench.ipynb | 138 ++++++++++++------ contributing/samples/gepa/tau_bench_agent.py | 29 ++++ 4 files changed, 144 insertions(+), 44 deletions(-) diff --git a/contributing/samples/gepa/adk_agent.py b/contributing/samples/gepa/adk_agent.py index b6e49ecf37..ad3570dd7a 100644 --- a/contributing/samples/gepa/adk_agent.py +++ b/contributing/samples/gepa/adk_agent.py @@ -30,6 +30,7 @@ from google.adk.agents import llm_agent from google.adk.agents import loop_agent from google.adk.events import event as event_lib +from google.adk.models import google_llm from google.adk.tools import base_tool from google.genai import types @@ -98,6 +99,15 @@ async def run_async(self, *, args: Dict[str, Any], tool_context: Any) -> str: return env_response.observation +def _default_retry_options() -> types.HttpRetryOptions: + return types.HttpRetryOptions( + initial_delay=2, + attempts=4, + max_delay=None, + exp_base=2.0, + ) + + def _adk_agent( instruction: str, tools: list[base_tool.BaseTool], @@ -120,7 +130,10 @@ def _adk_agent( # TDOO - Allow more flexibility in configuring the agent used in the loop. return llm_agent.LlmAgent( name=name or 'agent', - model=model or 'gemini-2.5-flash', + model=google_llm.Gemini( + model=model or 'gemini-2.5-flash', + retry_options=_default_retry_options(), + ), instruction=instruction, tools=tools, generate_content_config=types.GenerateContentConfig( @@ -130,6 +143,10 @@ def _adk_agent( mode=types.FunctionCallingConfigMode.VALIDATED ) ), + http_options=types.HttpOptions( + timeout=30000, + retry_options=_default_retry_options(), + ), ), ) diff --git a/contributing/samples/gepa/adk_agent_test.py b/contributing/samples/gepa/adk_agent_test.py index a27d1a96ab..2eea7325d9 100644 --- a/contributing/samples/gepa/adk_agent_test.py +++ b/contributing/samples/gepa/adk_agent_test.py @@ -345,4 +345,4 @@ async def _mock_create_session(*args, **kwargs): ) mock_runner_cls.assert_called_once() _, runner_kwargs = mock_runner_cls.call_args - assert runner_kwargs["agent"].sub_agents[0].model == "some-test-model" + assert runner_kwargs["agent"].sub_agents[0].model.model == "some-test-model" diff --git a/contributing/samples/gepa/gepa_tau_bench.ipynb b/contributing/samples/gepa/gepa_tau_bench.ipynb index 20eff076a8..46814bf46b 100644 --- a/contributing/samples/gepa/gepa_tau_bench.ipynb +++ b/contributing/samples/gepa/gepa_tau_bench.ipynb @@ -25,6 +25,8 @@ "%cd ..\n", "!pip install gepa --quiet\n", "\n", + "!pip install retry --quiet\n", + "\n", "%cd tau-bench/" ] }, @@ -249,16 +251,17 @@ "# - A GEPA adapter that bridges GEPA's optimization process with tau-bench.\n", "\n", "\n", + "from concurrent.futures import ThreadPoolExecutor\n", + "from datetime import datetime\n", "import os\n", "import json\n", + "import multiprocessing\n", "import random\n", + "from retry import retry\n", "import traceback\n", - "import multiprocessing\n", "from typing import List\n", - "from datetime import datetime\n", - "from concurrent.futures import ThreadPoolExecutor\n", "\n", - "from google.adk.examples.gepa import tau_bench_agent as tau_bench_agent_lib\n", + "import tau_bench_agent as tau_bench_agent_lib\n", "from tau_bench.envs import get_env\n", "from tau_bench.run import display_metrics\n", "from tau_bench.types import EnvRunResult, RunConfig\n", @@ -349,42 +352,48 @@ " if config.shuffle:\n", " random.shuffle(idxs)\n", "\n", - " def _run(idx: int) -> EnvRunResult:\n", + " @retry(tries=3, delay=10, backoff=2)\n", + " def _run_with_retry(idx: int) -> EnvRunResult:\n", " isolated_env = get_env(\n", - " config.env,\n", - " user_strategy=config.user_strategy,\n", - " user_model=config.user_model,\n", - " task_split=config.task_split,\n", - " user_provider=config.user_model_provider,\n", - " task_index=idx,\n", + " config.env,\n", + " user_strategy=config.user_strategy,\n", + " user_model=config.user_model,\n", + " task_split=config.task_split,\n", + " user_provider=config.user_model_provider,\n", + " task_index=idx,\n", " )\n", " if print_results:\n", " print(f'Running task {idx}')\n", - " try:\n", - " res = agent.solve(\n", + " res = agent.solve(\n", " env=isolated_env,\n", " task_index=idx,\n", - " )\n", - " result = EnvRunResult(\n", + " )\n", + " return EnvRunResult(\n", " task_id=idx,\n", " reward=res.reward,\n", " info=res.info,\n", " traj=res.messages,\n", " trial=i,\n", - " )\n", + " )\n", + "\n", + " def _run(idx: int) -> EnvRunResult:\n", + " try:\n", + " result = _run_with_retry(idx)\n", " except Exception as e:\n", + " logging.warning('Inference error: %s', str(e))\n", " result = EnvRunResult(\n", - " task_id=idx,\n", - " reward=0.0,\n", - " info={'error': str(e), 'traceback': traceback.format_exc()},\n", - " traj=[],\n", - " trial=i,\n", + " task_id=idx,\n", + " reward=0.0,\n", + " info={'error': str(e), 'traceback': traceback.format_exc()},\n", + " traj=[],\n", + " trial=i,\n", " )\n", + "\n", " if print_results:\n", " print(\n", - " '✅' if result.reward == 1 else '❌',\n", - " f'task_id={idx}',\n", - " # result.info,\n", + " '✅' if result.reward == 1 else '❌',\n", + " f'task_id={idx}',\n", + " # result.info,\n", " )\n", " print('-----')\n", " with lock:\n", @@ -446,6 +455,26 @@ " task_info: dict\n", "\n", "\n", + "def refine_tau_bench_trajectory(traj: list[dict[str, Any]]) -> None:\n", + " \"\"\"Removes unnecessary info from the trajectory, in place.\"\"\"\n", + " for content in traj:\n", + " for part in content[\"parts\"]:\n", + " # Drop all fields that are not populated.\n", + " to_drop = []\n", + " for key in part:\n", + " if not part[key]:\n", + " to_drop.append(key)\n", + " for key in to_drop:\n", + " del part[key]\n", + "\n", + " # For function calls / responses only keep function names, input arguments\n", + " # and outputs.\n", + " if fc := part.get(\"function_call\"):\n", + " part[\"function_call\"] = dict(name=fc[\"name\"], args=fc[\"args\"])\n", + " if fr := part.get(\"function_response\"):\n", + " part[\"function_response\"] = dict(name=fr[\"name\"], args=fr[\"response\"])\n", + "\n", + "\n", "class TauBenchAdapter(GEPAAdapter[\n", " TauBenchDataInst,\n", " TauBenchTrajectory,\n", @@ -462,7 +491,7 @@ " agent_strategy='tool-calling',\n", " user_strategy='llm',\n", " system_instruction_name='system_instruction',\n", - " tool_definitions_name='tool_definitions',\n", + " tools_description: list[dict[str, Any]] | None = None,\n", " max_concurrency=4,\n", " ):\n", " \"\"\"Initializes the TauBenchAdapter.\n", @@ -476,8 +505,8 @@ " user_strategy: The user simulation strategy (e.g., 'llm').\n", " system_instruction_name: The key in the candidate dictionary that holds\n", " the system instruction.\n", - " tool_definitions_name: The key in the candidate dictionary that holds the\n", - " tool definitions.\n", + " tools_description: Describes each of the availble tools. This is used as context\n", + " for the prompt proposer.\n", " max_concurrency: The maximum number of tasks to run in parallel.\n", " \"\"\"\n", " self._agent_model = agent_model\n", @@ -488,7 +517,7 @@ " self._user_strategy = user_strategy\n", " self._max_concurrency = max_concurrency\n", " self._system_instruction_name = system_instruction_name\n", - " self._tool_definitions_name = tool_definitions_name\n", + " self._tools_description = tools_description\n", "\n", " def evaluate(\n", " self,\n", @@ -544,7 +573,7 @@ " reward=res.reward,\n", " task_info=res.info))\n", " result_traj = res.traj\n", - " # TODO - Consider refining the trajectory format.\n", + " refine_tau_bench_trajectory(result_traj)\n", " trajectories.append(TauBenchTrajectory(result_traj=result_traj))\n", " scores.append(res.reward)\n", "\n", @@ -574,7 +603,13 @@ " data instances for reflection.\n", " \"\"\"\n", " system_instruction = candidate[self._system_instruction_name]\n", - " tool_definitions = candidate[self._tool_definitions_name]\n", + "\n", + " tool_definitions = json.dumps(\n", + " self._tools_description,\n", + " indent=2,\n", + " default=str,\n", + " )\n", + "\n", " inputs = '\\n\\n'.join([\n", " f'# System Instruction\\n{system_instruction}',\n", " f'# Tool Definitions\\n{tool_definitions}',\n", @@ -670,7 +705,6 @@ "]\n", "\n", "system_instruction_name = 'system_instruction'\n", - "tool_definitions_name = 'tool_definitions'\n", "\n", "SEED_SYSTEM_INSTRUCTION = (\n", " 'you are a customer support agent helping customers resolve their '\n", @@ -679,12 +713,6 @@ "\n", "seed_candidate = {\n", " system_instruction_name: SEED_SYSTEM_INSTRUCTION,\n", - " # TODO - Consider removing tool definition from optimization space.\n", - " tool_definitions_name: json.dumps(\n", - " tool_definitions_by_domain[tau_bench_env],\n", - " indent=2,\n", - " default=str,\n", - " ),\n", "}" ] }, @@ -700,6 +728,7 @@ "# With the configuration and adapter in place, this section creates the adapter\n", "# instance and calls `gepa.optimize()` to start the Automatic Prompt\n", "# Optimization (APO) process.\n", + "import litellm\n", "\n", "tau_bench_adapter = TauBenchAdapter(\n", " agent_model=agent_model,\n", @@ -709,7 +738,7 @@ " agent_strategy='tool-calling',\n", " user_strategy='llm',\n", " system_instruction_name=system_instruction_name,\n", - " tool_definitions_name=tool_definitions_name,\n", + " tools_description=tool_definitions_by_domain[tau_bench_env],\n", " max_concurrency=max_concurrency,\n", ")\n", "\n", @@ -720,7 +749,13 @@ " task_lm=None, # this must be None when a custom adapter is used\n", " adapter=tau_bench_adapter,\n", " max_metric_calls=max_metric_calls,\n", - " reflection_lm=f'vertex_ai/{reflection_model}',\n", + " reflection_lm = (\n", + " lambda prompt: litellm.completion_with_retries(\n", + " model=f'vertex_ai/{reflection_model}',\n", + " messages=[{\"role\": \"user\", \"content\": prompt}],\n", + " num_retries=4, initial_delay=1, max_delay=1,\n", + " ).choices[0].message.content\n", + " ),\n", " reflection_minibatch_size=reflection_minibatch_size,\n", ")\n", "list(enumerate(gepa_results.val_aggregate_scores))" @@ -735,7 +770,6 @@ "outputs": [], "source": [ "#@title Evaluate All Candidates\n", - "%%time\n", "\n", "\n", "# This is the prompt from https://arxiv.org/pdf/2406.12045\n", @@ -855,15 +889,35 @@ " )\n", " system_instruction_to_eval_results[system_instruction] = tau_bench_results" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "w4Q5hMuERuO6" + }, + "outputs": [], + "source": [ + "print(gepa_results.best_candidate['system_instruction'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "pbG7aBXLRuO6" + }, + "outputs": [], + "source": [] } ], "metadata": { "colab": { - "provenance": [], "last_runtime": { "build_target": "//learning/language/tunelab/tunekit/colab:colab_notebook", "kind": "private" - } + }, + "provenance": [] }, "kernelspec": { "display_name": "Python 3 (ipykernel)", diff --git a/contributing/samples/gepa/tau_bench_agent.py b/contributing/samples/gepa/tau_bench_agent.py index fa2be632bc..beb78b9643 100644 --- a/contributing/samples/gepa/tau_bench_agent.py +++ b/contributing/samples/gepa/tau_bench_agent.py @@ -28,6 +28,8 @@ from typing import Any import adk_agent +from google.adk.models import llm_response +from google.adk.plugins import base_plugin from google.genai import types from tau_bench import envs from tau_bench import types as tau_bench_types @@ -64,6 +66,26 @@ def _convert_tool(tool_def: dict[str, Any]) -> types.FunctionDeclaration: return types.FunctionDeclaration(**tool_def['function']) +_LLM_CALL_ERROR = 'llm_call_error' + + +class _TauBenchPlugin(base_plugin.BasePlugin): + """Catches LLM errors and emits event with error code for downstream usage.""" + + async def on_model_error_callback( + self, + *, + callback_context: base_plugin.CallbackContext, + llm_request: base_plugin.LlmRequest, + error: Exception, + ) -> llm_response.LlmResponse: + del callback_context, llm_request # Unused. + return llm_response.LlmResponse( + error_code=_LLM_CALL_ERROR, + error_message=str(error), + ) + + class _ADKAgent(tool_calling_agent.ToolCallingAgent): """ADK agent implementation for Tau Bench.""" @@ -82,6 +104,9 @@ def solve( Returns: The result of the solve. + + Raises: + - ValueError: If the LLM inference failed. """ # Thought-signature is excluded from the message serialization for the # following reasons: @@ -102,7 +127,11 @@ def solve( tools=[_convert_tool(t) for t in env.tools_info], task_index=task_index, max_num_steps=max_num_steps, + plugins=[_TauBenchPlugin(name='error_plugin')], ): + if event.error_code == _LLM_CALL_ERROR: + raise ValueError(f'Error {event.error_code=}: {event.error_message=}') + if not event.content: continue messages.append(event.content.model_dump(exclude=content_exclusion)) From d45b31fb451f1e28b8cb04e0b02d855c027a7a39 Mon Sep 17 00:00:00 2001 From: Jack Sun Date: Wed, 29 Oct 2025 13:23:41 -0700 Subject: [PATCH 228/303] chore: Ignore AI coding tool project-specific configs in .gitignore Merge https://github.com/google/adk-python/pull/3333 ## Summary Add ignore patterns for popular AI coding assistant configuration files to prevent committing developer-specific settings. This aligns with the project's approach of providing `AGENTS.md` as a general starting point that developers can symlink or copy and customize locally. ## Changes Added `.gitignore` patterns for 10 popular AI coding tools: - **Claude Code** - `.claude/`, `CLAUDE.md` - **Cursor** - `.cursor/`, `.cursorrules`, `.cursorignore` - **Windsurf** - `.windsurfrules` - **Aider** - `.aider*` - **Continue.dev** - `.continue/` - **Codeium** - `.codeium/` - **GitHub Next** - `.githubnext/` - **Roo Code** - `.roo/`, `.rooignore` - **Bolt** - `.bolt/` - **v0** - `.v0/` ## Rationale Each developer may want different AI tool configurations and personal instructions. By ignoring these files, we: - Prevent accidental commits of personal AI assistant settings - Keep the repository clean of developer-specific configurations - Allow developers to customize their AI tools without affecting others - Maintain consistency with the project's `AGENTS.md` approach Co-authored-by: Yvonne Yu COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3333 from google:chore/ignore-ai-tool-configs 0abe4ccdf130ac93c3d2c353556f0ce7c305c429 PiperOrigin-RevId: 825682646 --- .gitignore | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.gitignore b/.gitignore index 6f398cbf9e..bd44686d80 100644 --- a/.gitignore +++ b/.gitignore @@ -98,3 +98,20 @@ Thumbs.db *.bak *.tmp *.temp + +# AI Coding Tools - Project-specific configs +# Developers should symlink or copy AGENTS.md and add their own overrides locally +.claude/ +CLAUDE.md +.cursor/ +.cursorrules +.cursorignore +.windsurfrules +.aider* +.continue/ +.codeium/ +.githubnext/ +.roo/ +.rooignore +.bolt/ +.v0/ From 9014a849eab9f77b82db4a7f2053fb2a96282f03 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Wed, 29 Oct 2025 14:53:37 -0700 Subject: [PATCH 229/303] feat: Add api key argument to Vertex Session and Memory services for Express Mode support We also change VertexAiSessionService and VertexAiMemoryBankService to both use keyword arguments for project, location, agent engine id, and express mode api key PiperOrigin-RevId: 825719331 --- .../memory/vertex_ai_memory_bank_service.py | 21 +++- .../adk/sessions/vertex_ai_session_service.py | 34 ++--- src/google/adk/utils/vertex_ai_utils.py | 55 ++++++++ .../test_vertex_ai_memory_bank_service.py | 30 ++++- .../test_vertex_ai_session_service.py | 27 +++- tests/unittests/utils/test_vertex_ai_utils.py | 117 ++++++++++++++++++ 6 files changed, 258 insertions(+), 26 deletions(-) create mode 100644 src/google/adk/utils/vertex_ai_utils.py create mode 100644 tests/unittests/utils/test_vertex_ai_utils.py diff --git a/src/google/adk/memory/vertex_ai_memory_bank_service.py b/src/google/adk/memory/vertex_ai_memory_bank_service.py index 03f4c3925f..6667c2de21 100644 --- a/src/google/adk/memory/vertex_ai_memory_bank_service.py +++ b/src/google/adk/memory/vertex_ai_memory_bank_service.py @@ -22,6 +22,7 @@ from typing_extensions import override import vertexai +from ..utils.vertex_ai_utils import get_express_mode_api_key from .base_memory_service import BaseMemoryService from .base_memory_service import SearchMemoryResponse from .memory_entry import MemoryEntry @@ -40,6 +41,8 @@ def __init__( project: Optional[str] = None, location: Optional[str] = None, agent_engine_id: Optional[str] = None, + *, + express_mode_api_key: Optional[str] = None, ): """Initializes a VertexAiMemoryBankService. @@ -49,10 +52,19 @@ def __init__( agent_engine_id: The ID of the agent engine to use for the Memory Bank. e.g. '456' in 'projects/my-project/locations/us-central1/reasoningEngines/456'. + express_mode_api_key: The API key to use for Express Mode. If not + provided, the API key from the GOOGLE_API_KEY environment variable will + be used. It will only be used if GOOGLE_GENAI_USE_VERTEXAI is true. + Do not use Google AI Studio API key for this field. For more details, + visit + https://cloud.google.com/vertex-ai/generative-ai/docs/start/express-mode/overview """ self._project = project self._location = location self._agent_engine_id = agent_engine_id + self._express_mode_api_key = get_express_mode_api_key( + project, location, express_mode_api_key + ) @override async def add_session_to_memory(self, session: Session): @@ -123,11 +135,14 @@ def _get_api_client(self): It needs to be instantiated inside each request so that the event loop management can be properly propagated. - Returns: - An API client for the given project and location. + An API client for the given project and location or express mode api key. """ - return vertexai.Client(project=self._project, location=self._location) + return vertexai.Client( + project=self._project, + location=self._location, + api_key=self._express_mode_api_key, + ) def _should_filter_out_event(content: types.Content) -> bool: diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index 48b112b693..8025e79e65 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -17,7 +17,6 @@ import datetime import json import logging -import os import re from typing import Any from typing import Optional @@ -35,7 +34,8 @@ from . import _session_util from ..events.event import Event from ..events.event_actions import EventActions -from ..utils.env_utils import is_env_enabled +from ..utils.vertex_ai_utils import get_express_mode_api_key +from ..utils.vertex_ai_utils import is_vertex_express_mode from .base_session_service import BaseSessionService from .base_session_service import GetSessionConfig from .base_session_service import ListSessionsResponse @@ -55,6 +55,8 @@ def __init__( project: Optional[str] = None, location: Optional[str] = None, agent_engine_id: Optional[str] = None, + *, + express_mode_api_key: Optional[str] = None, ): """Initializes the VertexAiSessionService. @@ -62,10 +64,19 @@ def __init__( project: The project id of the project to use. location: The location of the project to use. agent_engine_id: The resource ID of the agent engine to use. + express_mode_api_key: The API key to use for Express Mode. If not + provided, the API key from the GOOGLE_API_KEY environment variable will + be used. It will only be used if GOOGLE_GENAI_USE_VERTEXAI is true. + Do not use Google AI Studio API key for this field. For more details, + visit + https://cloud.google.com/vertex-ai/generative-ai/docs/start/express-mode/overview """ self._project = project self._location = location self._agent_engine_id = agent_engine_id + self._express_mode_api_key = get_express_mode_api_key( + project, location, express_mode_api_key + ) @override async def create_session( @@ -104,7 +115,9 @@ async def create_session( config = {'session_state': state} if state else {} config.update(kwargs) - if _is_vertex_express_mode(self._project, self._location): + if is_vertex_express_mode( + self._project, self._location, self._express_mode_api_key + ): config['wait_for_completion'] = False api_response = await api_client.aio.agent_engines.sessions.create( name=f'reasoningEngines/{reasoning_engine_id}', @@ -351,27 +364,16 @@ def _get_api_client(self) -> vertexai.Client: """Instantiates an API client for the given project and location. Returns: - An API client for the given project and location. + An API client for the given project and location or express mode api key. """ return vertexai.Client( project=self._project, location=self._location, http_options=self._api_client_http_options_override(), + api_key=self._express_mode_api_key, ) -def _is_vertex_express_mode( - project: Optional[str], location: Optional[str] -) -> bool: - """Check if Vertex AI and API key are both enabled replacing project and location, meaning the user is using the Vertex Express Mode.""" - return ( - is_env_enabled('GOOGLE_GENAI_USE_VERTEXAI') - and os.environ.get('GOOGLE_API_KEY', None) is not None - and project is None - and location is None - ) - - def _from_api_event(api_event_obj: vertexai.types.SessionEvent) -> Event: """Converts an API event object to an Event object.""" actions = getattr(api_event_obj, 'actions', None) diff --git a/src/google/adk/utils/vertex_ai_utils.py b/src/google/adk/utils/vertex_ai_utils.py new file mode 100644 index 0000000000..55969dd1d5 --- /dev/null +++ b/src/google/adk/utils/vertex_ai_utils.py @@ -0,0 +1,55 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Utilities for Vertex AI. Includes helper functions for Express Mode. + +This module is for ADK internal use only. +Please do not rely on the implementation details. +""" + +from __future__ import annotations + +import os +from typing import Optional + +from ..utils.env_utils import is_env_enabled + + +def is_vertex_express_mode( + project: Optional[str], location: Optional[str], api_key: Optional[str] +) -> bool: + """Check if Vertex AI and API key are both enabled replacing project and location, meaning the user is using the Vertex Express Mode.""" + return ( + is_env_enabled('GOOGLE_GENAI_USE_VERTEXAI') + and api_key is not None + and project is None + and location is None + ) + + +def get_express_mode_api_key( + project: Optional[str], + location: Optional[str], + express_mode_api_key: Optional[str], +) -> Optional[str]: + """Validates and returns the API key for Express Mode.""" + if (project or location) and express_mode_api_key: + raise ValueError( + 'Cannot specify project or location and express_mode_api_key. ' + 'Either use project and location, or just the express_mode_api_key.' + ) + if is_env_enabled('GOOGLE_GENAI_USE_VERTEXAI'): + return express_mode_api_key or os.environ.get('GOOGLE_API_KEY', None) + else: + return None diff --git a/tests/unittests/memory/test_vertex_ai_memory_bank_service.py b/tests/unittests/memory/test_vertex_ai_memory_bank_service.py index c47023dffb..6a1f0ccb5c 100644 --- a/tests/unittests/memory/test_vertex_ai_memory_bank_service.py +++ b/tests/unittests/memory/test_vertex_ai_memory_bank_service.py @@ -13,6 +13,7 @@ # limitations under the License. from datetime import datetime +from typing import Optional from unittest import mock from google.adk.events.event import Event @@ -69,12 +70,18 @@ ) -def mock_vertex_ai_memory_bank_service(): +def mock_vertex_ai_memory_bank_service( + project: Optional[str] = 'test-project', + location: Optional[str] = 'test-location', + agent_engine_id: Optional[str] = '123', + express_mode_api_key: Optional[str] = None, +): """Creates a mock Vertex AI Memory Bank service for testing.""" return VertexAiMemoryBankService( - project='test-project', - location='test-location', - agent_engine_id='123', + project=project, + location=location, + agent_engine_id=agent_engine_id, + express_mode_api_key=express_mode_api_key, ) @@ -90,6 +97,21 @@ def mock_vertexai_client(): yield mock_client +@pytest.mark.asyncio +async def test_initialize_with_project_location_and_api_key_error(): + with pytest.raises(ValueError) as excinfo: + mock_vertex_ai_memory_bank_service( + project='test-project', + location='test-location', + express_mode_api_key='test-api-key', + ) + assert ( + 'Cannot specify project or location and express_mode_api_key. Either use' + ' project and location, or just the express_mode_api_key.' + in str(excinfo.value) + ) + + @pytest.mark.asyncio async def test_add_session_to_memory(mock_vertexai_client): memory_service = mock_vertex_ai_memory_bank_service() diff --git a/tests/unittests/sessions/test_vertex_ai_session_service.py b/tests/unittests/sessions/test_vertex_ai_session_service.py index 7e76b5ec22..fd004199cd 100644 --- a/tests/unittests/sessions/test_vertex_ai_session_service.py +++ b/tests/unittests/sessions/test_vertex_ai_session_service.py @@ -356,12 +356,18 @@ async def _append_event( self.event_dict[session_id] = ([event_json], None) -def mock_vertex_ai_session_service(agent_engine_id: Optional[str] = None): +def mock_vertex_ai_session_service( + project: Optional[str] = 'test-project', + location: Optional[str] = 'test-location', + agent_engine_id: Optional[str] = None, + express_mode_api_key: Optional[str] = None, +): """Creates a mock Vertex AI Session service for testing.""" return VertexAiSessionService( - project='test-project', - location='test-location', + project=project, + location=location, agent_engine_id=agent_engine_id, + express_mode_api_key=express_mode_api_key, ) @@ -393,6 +399,21 @@ def mock_get_api_client(mock_api_client_instance): yield +@pytest.mark.asyncio +async def test_initialize_with_project_location_and_api_key_error(): + with pytest.raises(ValueError) as excinfo: + mock_vertex_ai_session_service( + project='test-project', + location='test-location', + express_mode_api_key='test-api-key', + ) + assert ( + 'Cannot specify project or location and express_mode_api_key. Either use' + ' project and location, or just the express_mode_api_key.' + in str(excinfo.value) + ) + + @pytest.mark.asyncio @pytest.mark.usefixtures('mock_get_api_client') @pytest.mark.parametrize('agent_engine_id', [None, '123']) diff --git a/tests/unittests/utils/test_vertex_ai_utils.py b/tests/unittests/utils/test_vertex_ai_utils.py new file mode 100644 index 0000000000..644a36c752 --- /dev/null +++ b/tests/unittests/utils/test_vertex_ai_utils.py @@ -0,0 +1,117 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Tests for vertex_utils.""" + +from unittest import mock + +from google.adk.utils import vertex_ai_utils +import pytest + + +@pytest.mark.parametrize( + ('use_vertexai_env', 'project', 'location', 'api_key', 'expected'), + [ + ('true', None, None, 'test-key', True), + ('1', None, None, 'test-key', True), + ('false', None, None, 'test-key', False), + ('0', None, None, 'test-key', False), + (None, None, None, 'test-key', False), + ('true', 'test-project', None, 'test-key', False), + ('true', None, 'test-location', 'test-key', False), + ('true', None, None, None, False), + ], +) +def test_is_vertex_express_mode( + use_vertexai_env, project, location, api_key, expected +): + env_vars = {} + if use_vertexai_env: + env_vars['GOOGLE_GENAI_USE_VERTEXAI'] = use_vertexai_env + with mock.patch.dict('os.environ', env_vars, clear=True): + assert ( + vertex_ai_utils.is_vertex_express_mode(project, location, api_key) + == expected + ) + + +def test_get_express_mode_api_key_value_error(): + with pytest.raises(ValueError) as excinfo: + vertex_ai_utils.get_express_mode_api_key( + project='test-project', location=None, express_mode_api_key='key' + ) + assert ( + 'Cannot specify project or location and express_mode_api_key. Either use' + ' project and location, or just the express_mode_api_key.' + in str(excinfo.value) + ) + with pytest.raises(ValueError) as excinfo: + vertex_ai_utils.get_express_mode_api_key( + project=None, location='test-location', express_mode_api_key='key' + ) + assert ( + 'Cannot specify project or location and express_mode_api_key. Either use' + ' project and location, or just the express_mode_api_key.' + in str(excinfo.value) + ) + with pytest.raises(ValueError) as excinfo: + vertex_ai_utils.get_express_mode_api_key( + project='test-project', + location='test-location', + express_mode_api_key='key', + ) + assert ( + 'Cannot specify project or location and express_mode_api_key. Either use' + ' project and location, or just the express_mode_api_key.' + in str(excinfo.value) + ) + + +@pytest.mark.parametrize( + ( + 'use_vertexai_env', + 'google_api_key_env', + 'express_mode_api_key', + 'expected', + ), + [ + ('true', None, 'express_key', 'express_key'), + ('1', 'google_key', 'express_key', 'express_key'), + ('true', 'google_key', None, 'google_key'), + ('1', None, None, None), + ('false', 'google_key', 'express_key', None), + ('0', 'google_key', None, None), + (None, 'google_key', 'express_key', None), + ], +) +def test_get_express_mode_api_key( + use_vertexai_env, + google_api_key_env, + express_mode_api_key, + expected, +): + env_vars = {} + if use_vertexai_env: + env_vars['GOOGLE_GENAI_USE_VERTEXAI'] = use_vertexai_env + if google_api_key_env: + env_vars['GOOGLE_API_KEY'] = google_api_key_env + with mock.patch.dict('os.environ', env_vars, clear=True): + assert ( + vertex_ai_utils.get_express_mode_api_key( + project=None, + location=None, + express_mode_api_key=express_mode_api_key, + ) + == expected + ) From b23eed6a85f9193d5a3f3f699156b05e1d42c6ad Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Wed, 29 Oct 2025 15:45:20 -0700 Subject: [PATCH 230/303] feat: Remove `@experimental` from `App` class This change marks the `App` class as no longer experimental. Co-authored-by: Hangfei Lin PiperOrigin-RevId: 825739749 --- src/google/adk/apps/app.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/google/adk/apps/app.py b/src/google/adk/apps/app.py index 0447a543a5..63725889c2 100644 --- a/src/google/adk/apps/app.py +++ b/src/google/adk/apps/app.py @@ -69,7 +69,6 @@ class EventsCompactionConfig(BaseModel): compacted summaries, maintaining context.""" -@experimental class App(BaseModel): """Represents an LLM-backed agentic application. From 72a8d8d85be17bae318d553eb6ac3438a4e984eb Mon Sep 17 00:00:00 2001 From: Ankur Sharma Date: Wed, 29 Oct 2025 15:53:08 -0700 Subject: [PATCH 231/303] fix: Session input file are required for creating an eval case Session input file contains fields that are needed to run evals and later be able retrieve the session generated by them. Co-authored-by: Ankur Sharma PiperOrigin-RevId: 825742522 --- src/google/adk/cli/cli_tools_click.py | 12 ++--- .../cli/utils/test_cli_tools_click.py | 52 +++---------------- 2 files changed, 12 insertions(+), 52 deletions(-) diff --git a/src/google/adk/cli/cli_tools_click.py b/src/google/adk/cli/cli_tools_click.py index 1bee5355df..b841e017ad 100644 --- a/src/google/adk/cli/cli_tools_click.py +++ b/src/google/adk/cli/cli_tools_click.py @@ -754,10 +754,8 @@ def cli_create_eval_set( type=click.Path( exists=True, dir_okay=False, file_okay=True, resolve_path=True ), - help=( - "Optional. Path to session file containing SessionInput in JSON format." - ), - default=None, + help="Path to session file containing SessionInput in JSON format.", + required=True, ) @eval_options() def cli_add_eval_case( @@ -787,10 +785,8 @@ def cli_add_eval_case( eval_sets_manager = get_eval_sets_manager(eval_storage_uri, agents_dir) try: - session_input = None - if session_input_file: - with open(session_input_file, "r") as f: - session_input = SessionInput.model_validate_json(f.read()) + with open(session_input_file, "r") as f: + session_input = SessionInput.model_validate_json(f.read()) with open(scenarios_file, "r") as f: conversation_scenarios = ConversationScenarios.model_validate_json( diff --git a/tests/unittests/cli/utils/test_cli_tools_click.py b/tests/unittests/cli/utils/test_cli_tools_click.py index 3bd02b3997..be9015ca87 100644 --- a/tests/unittests/cli/utils/test_cli_tools_click.py +++ b/tests/unittests/cli/utils/test_cli_tools_click.py @@ -643,50 +643,6 @@ def test_cli_create_eval_set(tmp_path: Path): assert eval_set_data["eval_cases"] == [] -def test_cli_add_eval_case_no_session(tmp_path: Path): - app_name = "test_app_add_1" - eval_set_id = "test_eval_set_add_1" - agent_path = tmp_path / app_name - agent_path.mkdir() - (agent_path / "__init__.py").touch() - - scenarios_file = tmp_path / "scenarios1.json" - scenarios_file.write_text( - '{"scenarios": [{"starting_prompt": "hello", "conversation_plan":' - ' "world"}]}' - ) - - runner = CliRunner() - runner.invoke( - cli_tools_click.main, - ["eval_set", "create", str(agent_path), eval_set_id], - catch_exceptions=False, - ) - result = runner.invoke( - cli_tools_click.main, - [ - "eval_set", - "add_eval_case", - str(agent_path), - eval_set_id, - "--scenarios_file", - str(scenarios_file), - ], - catch_exceptions=False, - ) - - assert result.exit_code == 0 - eval_set_file = agent_path / f"{eval_set_id}.evalset.json" - assert eval_set_file.exists() - with open(eval_set_file, "r") as f: - eval_set_data = json.load(f) - assert len(eval_set_data["eval_cases"]) == 1 - eval_case = eval_set_data["eval_cases"][0] - assert eval_case["eval_id"] == "0a1a5048" - assert eval_case["conversation_scenario"]["starting_prompt"] == "hello" - assert "session_input" not in eval_case - - def test_cli_add_eval_case_with_session(tmp_path: Path): app_name = "test_app_add_2" eval_set_id = "test_eval_set_add_2" @@ -748,6 +704,10 @@ def test_cli_add_eval_case_skip_existing(tmp_path: Path): '{"scenarios": [{"starting_prompt": "hello", "conversation_plan":' ' "world"}]}' ) + session_file = tmp_path / "session3.json" + session_file.write_text( + '{"app_name": "test_app_add_3", "user_id": "test_user", "state": {}}' + ) runner = CliRunner() runner.invoke( @@ -764,6 +724,8 @@ def test_cli_add_eval_case_skip_existing(tmp_path: Path): eval_set_id, "--scenarios_file", str(scenarios_file), + "--session_input_file", + str(session_file), ], catch_exceptions=False, ) @@ -780,6 +742,8 @@ def test_cli_add_eval_case_skip_existing(tmp_path: Path): eval_set_id, "--scenarios_file", str(scenarios_file), + "--session_input_file", + str(session_file), ], catch_exceptions=False, ) From 64294572c1c93590aa3c221015a5cb9b440ee948 Mon Sep 17 00:00:00 2001 From: Dongyu Jia Date: Wed, 29 Oct 2025 16:45:57 -0700 Subject: [PATCH 232/303] feat: Add get_job_info tool to BigQuery toolset This CL introduces a new tool, get_job_info, to the BigQuery toolset. This tool allows retrieving metadata about a BigQuery job, such as slot usage, job configuration, statistics, and job status. Closes #2928 Co-authored-by: Dongyu Jia PiperOrigin-RevId: 825762399 --- contributing/samples/bigquery/README.md | 3 + .../adk/tools/bigquery/bigquery_toolset.py | 1 + .../adk/tools/bigquery/metadata_tool.py | 294 ++++++++++++++++++ .../bigquery/test_bigquery_metadata_tool.py | 30 ++ .../tools/bigquery/test_bigquery_toolset.py | 3 +- 5 files changed, 330 insertions(+), 1 deletion(-) diff --git a/contributing/samples/bigquery/README.md b/contributing/samples/bigquery/README.md index 757993de96..960b6f40c2 100644 --- a/contributing/samples/bigquery/README.md +++ b/contributing/samples/bigquery/README.md @@ -21,6 +21,9 @@ distributed via the `google.adk.tools.bigquery` module. These tools include: Fetches metadata about a BigQuery table. +5. `get_job_info` + Fetches metadata about a BigQuery job. + 5. `execute_sql` Runs or dry-runs a SQL query in BigQuery. diff --git a/src/google/adk/tools/bigquery/bigquery_toolset.py b/src/google/adk/tools/bigquery/bigquery_toolset.py index 882cc4aa12..f38bf95f62 100644 --- a/src/google/adk/tools/bigquery/bigquery_toolset.py +++ b/src/google/adk/tools/bigquery/bigquery_toolset.py @@ -80,6 +80,7 @@ async def get_tools( metadata_tool.get_table_info, metadata_tool.list_dataset_ids, metadata_tool.list_table_ids, + metadata_tool.get_job_info, query_tool.get_execute_sql(self._tool_settings), query_tool.forecast, query_tool.analyze_contribution, diff --git a/src/google/adk/tools/bigquery/metadata_tool.py b/src/google/adk/tools/bigquery/metadata_tool.py index 8cfc95c1a1..65c7efc200 100644 --- a/src/google/adk/tools/bigquery/metadata_tool.py +++ b/src/google/adk/tools/bigquery/metadata_tool.py @@ -297,3 +297,297 @@ def get_table_info( "status": "ERROR", "error_details": str(ex), } + + +def get_job_info( + project_id: str, + job_id: str, + credentials: Credentials, + settings: BigQueryToolConfig, +) -> dict: + """Get metadata information about a BigQuery job. Including slot usage, + job configuration, job statistics, job status, original query etc. + + Args: + project_id (str): The Google Cloud project id containing the job. + job_id (str): The BigQuery job id. + credentials (Credentials): The credentials to use for the request. + settings (BigQueryToolConfig): The BigQuery tool settings. + + Returns: + dict: Dictionary representing the properties of the job. + + Examples: + >>> user may give job id in fomat of: project_id:region.job_id + like bigquery-public-data:US.bquxjob_12345678_1234567890 + >>> get_job_info("bigquery-public-data", "bquxjob_12345678_1234567890") + { + "get_job_info_response": { + "configuration": { + "jobType": "QUERY", + "query": { + "destinationTable": { + "datasetId": "_fd6de55d5d5c13fcfb0449cbf933bb695b2c3085", + "projectId": "projectid", + "tableId": "anonfbbe65d6_9782_469b_9f56_1392560314b2" + }, + "priority": "INTERACTIVE", + "query": "SELECT * FROM `projectid.dataset_id.table_id` WHERE TIMESTAMP_TRUNC(_PARTITIONTIME, DAY) = TIMESTAMP(\"2025-10-29\") LIMIT 1000", + "useLegacySql": false, + "writeDisposition": "WRITE_TRUNCATE" + } + }, + "etag": "EdeYv9sdcO7tD9HsffvcuQ==", + "id": "projectid:US.job-id", + "jobCreationReason": { + "code": "REQUESTED" + }, + "jobReference": { + "jobId": "job-id", + "location": "US", + "projectId": "projectid" + }, + "kind": "bigquery#job", + "principal_subject": "user:abc@google.com", + "selfLink": "https://bigquery.googleapis.com/bigquery/v2/projects/projectid/jobs/job-id?location=US", + "statistics": { + "creationTime": 1761760370152, + "endTime": 1761760371250, + "finalExecutionDurationMs": "489", + "query": { + "billingTier": 1, + "cacheHit": false, + "estimatedBytesProcessed": "5597805", + "metadataCacheStatistics": { + "tableMetadataCacheUsage": [ + { + "explanation": "Table does not have CMETA.", + "tableReference": { + "datasetId": "datasetId", + "projectId": "projectid", + "tableId": "tableId" + }, + "unusedReason": "OTHER_REASON" + } + ] + }, + "queryPlan": [ + { + "completedParallelInputs": "3", + "computeMode": "BIGQUERY", + "computeMsAvg": "13", + "computeMsMax": "15", + "computeRatioAvg": 0.054852320675105488, + "computeRatioMax": 0.063291139240506333, + "endMs": "1761760370422", + "id": "0", + "name": "S00: Input", + "parallelInputs": "8", + "readMsAvg": "18", + "readMsMax": "21", + "readRatioAvg": 0.0759493670886076, + "readRatioMax": 0.088607594936708861, + "recordsRead": "1690", + "recordsWritten": "1690", + "shuffleOutputBytes": "1031149", + "shuffleOutputBytesSpilled": "0", + "slotMs": "157", + "startMs": "1761760370388", + "status": "COMPLETE", + "steps": [ + { + "kind": "READ", + "substeps": [ + "$2:extendedFields.$is_not_null, $3:extendedFields.traceId, $4:span.$is_not_null, $5:span.spanKind, $6:span.endTime, $7:span.startTime, $8:span.parentSpanId, $9:span.spanId, $10:span.name, $11:span.childSpanCount.$is_not_null, $12:span.childSpanCount.value, $13:span.sameProcessAsParentSpan.$is_not_null, $14:span.sameProcessAsParentSpan.value, $15:span.status.$is_not_null, $16:span.status.message, $17:span.status.code", + "FROM projectid.dataset_id.table_id", + "WHERE equal(timestamp_trunc($1, 3), 1761696000.000000000)" + ] + }, + { + "kind": "LIMIT", + "substeps": [ + "1000" + ] + }, + { + "kind": "WRITE", + "substeps": [ + "$2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17", + "TO __stage00_output" + ] + } + ], + "waitMsAvg": "1", + "waitMsMax": "1", + "waitRatioAvg": 0.0042194092827004216, + "waitRatioMax": 0.0042194092827004216, + "writeMsAvg": "2", + "writeMsMax": "2", + "writeRatioAvg": 0.0084388185654008432, + "writeRatioMax": 0.0084388185654008432 + }, + { + "completedParallelInputs": "1", + "computeMode": "BIGQUERY", + "computeMsAvg": "22", + "computeMsMax": "22", + "computeRatioAvg": 0.092827004219409287, + "computeRatioMax": 0.092827004219409287, + "endMs": "1761760370428", + "id": "1", + "inputStages": [ + "0" + ], + "name": "S01: Compute+", + "parallelInputs": "1", + "readMsAvg": "0", + "readMsMax": "0", + "readRatioAvg": 0, + "readRatioMax": 0, + "recordsRead": "1001", + "recordsWritten": "1000", + "shuffleOutputBytes": "800157", + "shuffleOutputBytesSpilled": "0", + "slotMs": "29", + "startMs": "1761760370398", + "status": "COMPLETE", + "steps": [ + { + "kind": "READ", + "substeps": [ + "$2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17", + "FROM __stage00_output" + ] + }, + { + "kind": "COMPUTE", + "substeps": [ + "$130 := MAKE_STRUCT($3, $2)", + "$131 := MAKE_STRUCT($10, $9, $8, MAKE_STRUCT($29, $28, $27), $7, $6, MAKE_STRUCT(...), MAKE_STRUCT(...), MAKE_STRUCT(...), ...)" + ] + }, + { + "kind": "LIMIT", + "substeps": [ + "1000" + ] + }, + { + "kind": "WRITE", + "substeps": [ + "$130, $131", + "TO __stage01_output" + ] + } + ], + "waitMsAvg": "7", + "waitMsMax": "7", + "waitRatioAvg": 0.029535864978902954, + "waitRatioMax": 0.029535864978902954, + "writeMsAvg": "4", + "writeMsMax": "4", + "writeRatioAvg": 0.016877637130801686, + "writeRatioMax": 0.016877637130801686 + }, + { + "completedParallelInputs": "1", + "computeMode": "BIGQUERY", + "computeMsAvg": "33", + "computeMsMax": "33", + "computeRatioAvg": 0.13924050632911392, + "computeRatioMax": 0.13924050632911392, + "endMs": "1761760370745", + "id": "2", + "inputStages": [ + "1" + ], + "name": "S02: Output", + "parallelInputs": "1", + "readMsAvg": "0", + "readMsMax": "0", + "readRatioAvg": 0, + "readRatioMax": 0, + "recordsRead": "1000", + "recordsWritten": "1000", + "shuffleOutputBytes": "459829", + "shuffleOutputBytesSpilled": "0", + "slotMs": "106", + "startMs": "1761760370667", + "status": "COMPLETE", + "steps": [ + { + "kind": "READ", + "substeps": [ + "$130, $131", + "FROM __stage01_output" + ] + }, + { + "kind": "WRITE", + "substeps": [ + "$130, $131", + "TO __stage02_output" + ] + } + ], + "waitMsAvg": "237", + "waitMsMax": "237", + "waitRatioAvg": 1, + "waitRatioMax": 1, + "writeMsAvg": "55", + "writeMsMax": "55", + "writeRatioAvg": 0.2320675105485232, + "writeRatioMax": 0.2320675105485232 + } + ], + "referencedTables": [ + { + "datasetId": "dataset_id", + "projectId": "projectid", + "tableId": "table_id" + } + ], + "statementType": "SELECT", + "timeline": [ + { + "completedUnits": "5", + "elapsedMs": "492", + "estimatedRunnableUnits": "0", + "pendingUnits": "5", + "totalSlotMs": "293" + } + ], + "totalBytesBilled": "10485760", + "totalBytesProcessed": "5597805", + "totalPartitionsProcessed": "2", + "totalSlotMs": "293", + "transferredBytes": "0" + }, + "startTime": 1761760370268, + "totalBytesProcessed": "5597805", + "totalSlotMs": "293" + }, + "status": { + "state": "DONE" + }, + "user_email": "abc@google.com" + } + } + """ + try: + bq_client = client.get_bigquery_client( + project=project_id, + credentials=credentials, + location=settings.location, + user_agent=settings.application_name, + ) + job = bq_client.get_job(job_id) + # We need to use _properties to get the job info because it contains all + # the job info. + # pylint: disable=protected-access + return job._properties + except Exception as ex: + return { + "status": "ERROR", + "error_details": str(ex), + } diff --git a/tests/unittests/tools/bigquery/test_bigquery_metadata_tool.py b/tests/unittests/tools/bigquery/test_bigquery_metadata_tool.py index 2bcd587d18..5da01893eb 100644 --- a/tests/unittests/tools/bigquery/test_bigquery_metadata_tool.py +++ b/tests/unittests/tools/bigquery/test_bigquery_metadata_tool.py @@ -136,6 +136,36 @@ def test_get_table_info_no_default_auth(mock_default_auth, mock_get_table): mock_default_auth.assert_not_called() +@mock.patch.dict(os.environ, {}, clear=True) +@mock.patch("google.cloud.bigquery.Client.get_job", autospec=True) +@mock.patch("google.auth.default", autospec=True) +def test_get_job_info_no_default_auth(mock_default_auth, mock_get_job): + """Test get_job_info tool invocation involves no default auth.""" + mock_credentials = mock.create_autospec(Credentials, instance=True) + tool_settings = BigQueryToolConfig() + + # Simulate the behavior of default auth - on purpose throw exception when + # the default auth is called + mock_default_auth.side_effect = DefaultCredentialsError( + "Your default credentials were not found" + ) + + mock_get_job.return_value = mock.create_autospec( + bigquery.QueryJob, instance=True + ) + result = metadata_tool.get_job_info( + "my_project_id", + "my_job_id", + mock_credentials, + tool_settings, + ) + assert result != { + "status": "ERROR", + "error_details": "Your default credentials were not found", + } + mock_default_auth.assert_not_called() + + @mock.patch( "google.adk.tools.bigquery.client.get_bigquery_client", autospec=True ) diff --git a/tests/unittests/tools/bigquery/test_bigquery_toolset.py b/tests/unittests/tools/bigquery/test_bigquery_toolset.py index 1da7298694..2d890fb51a 100644 --- a/tests/unittests/tools/bigquery/test_bigquery_toolset.py +++ b/tests/unittests/tools/bigquery/test_bigquery_toolset.py @@ -41,7 +41,7 @@ async def test_bigquery_toolset_tools_default(): tools = await toolset.get_tools() assert tools is not None - assert len(tools) == 9 + assert len(tools) == 10 assert all([isinstance(tool, GoogleTool) for tool in tools]) expected_tool_names = set([ @@ -49,6 +49,7 @@ async def test_bigquery_toolset_tools_default(): "get_dataset_info", "list_table_ids", "get_table_info", + "get_job_info", "execute_sql", "ask_data_insights", "forecast", From 71aa5645f6c3d91fd0e0ddb1ed564188c6727080 Mon Sep 17 00:00:00 2001 From: Eliza Huang Date: Wed, 29 Oct 2025 17:54:30 -0700 Subject: [PATCH 233/303] fix: Propagate LiteLLM finish_reason to LlmResponse for use in callbacks Closes #3114. Co-authored-by: Eliza Huang COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3319 from lizzij:fix/litellm-finish-reason-3109 da6ed0aec514231fc274fee744f885ae95b9d45c PiperOrigin-RevId: 825783229 --- src/google/adk/models/lite_llm.py | 32 ++++++- src/google/adk/telemetry/tracing.py | 6 +- tests/unittests/models/test_litellm.py | 111 +++++++++++++++++++++++++ 3 files changed, 146 insertions(+), 3 deletions(-) diff --git a/src/google/adk/models/lite_llm.py b/src/google/adk/models/lite_llm.py index 5829703613..4286552c5c 100644 --- a/src/google/adk/models/lite_llm.py +++ b/src/google/adk/models/lite_llm.py @@ -64,6 +64,21 @@ _NEW_LINE = "\n" _EXCLUDED_PART_FIELD = {"inline_data": {"data"}} +# Mapping of LiteLLM finish_reason strings to FinishReason enum values +# Note: tool_calls/function_call map to STOP because: +# 1. FinishReason.TOOL_CALL enum does not exist (as of google-genai 0.8.0) +# 2. Tool calls represent normal completion (model stopped to invoke tools) +# 3. Gemini native responses use STOP for tool calls (see lite_llm.py:910) +_FINISH_REASON_MAPPING = { + "length": types.FinishReason.MAX_TOKENS, + "stop": types.FinishReason.STOP, + "tool_calls": ( + types.FinishReason.STOP + ), # Normal completion with tool invocation + "function_call": types.FinishReason.STOP, # Legacy function call variant + "content_filter": types.FinishReason.SAFETY, +} + class ChatCompletionFileUrlObject(TypedDict, total=False): file_data: str @@ -541,13 +556,26 @@ def _model_response_to_generate_content_response( """ message = None - if response.get("choices", None): - message = response["choices"][0].get("message", None) + finish_reason = None + if (choices := response.get("choices")) and choices: + first_choice = choices[0] + message = first_choice.get("message", None) + finish_reason = first_choice.get("finish_reason", None) if not message: raise ValueError("No message in response") llm_response = _message_to_generate_content_response(message) + if finish_reason: + # If LiteLLM already provides a FinishReason enum (e.g., for Gemini), use + # it directly. Otherwise, map the finish_reason string to the enum. + if isinstance(finish_reason, types.FinishReason): + llm_response.finish_reason = finish_reason + else: + finish_reason_str = str(finish_reason).lower() + llm_response.finish_reason = _FINISH_REASON_MAPPING.get( + finish_reason_str, types.FinishReason.OTHER + ) if response.get("usage", None): llm_response.usage_metadata = types.GenerateContentResponseUsageMetadata( prompt_token_count=response["usage"].get("prompt_tokens", 0), diff --git a/src/google/adk/telemetry/tracing.py b/src/google/adk/telemetry/tracing.py index 021471a5aa..e45c24aee6 100644 --- a/src/google/adk/telemetry/tracing.py +++ b/src/google/adk/telemetry/tracing.py @@ -303,9 +303,13 @@ def trace_call_llm( llm_response.usage_metadata.candidates_token_count, ) if llm_response.finish_reason: + try: + finish_reason_str = llm_response.finish_reason.value.lower() + except AttributeError: + finish_reason_str = str(llm_response.finish_reason).lower() span.set_attribute( 'gen_ai.response.finish_reasons', - [llm_response.finish_reason.value.lower()], + [finish_reason_str], ) diff --git a/tests/unittests/models/test_litellm.py b/tests/unittests/models/test_litellm.py index 8138da74e4..9df8725a6d 100644 --- a/tests/unittests/models/test_litellm.py +++ b/tests/unittests/models/test_litellm.py @@ -19,6 +19,7 @@ import warnings from google.adk.models.lite_llm import _content_to_message_param +from google.adk.models.lite_llm import _FINISH_REASON_MAPPING from google.adk.models.lite_llm import _function_declaration_to_tool_param from google.adk.models.lite_llm import _get_content from google.adk.models.lite_llm import _message_to_generate_content_response @@ -1938,3 +1939,113 @@ def test_non_gemini_litellm_no_warning(): # Test with non-Gemini model LiteLlm(model="openai/gpt-4o") assert len(w) == 0 + + +@pytest.mark.parametrize( + "finish_reason,response_content,expected_content,has_tool_calls", + [ + ("length", "Test response", "Test response", False), + ("stop", "Complete response", "Complete response", False), + ( + "tool_calls", + "", + "", + True, + ), + ("content_filter", "", "", False), + ], + ids=["length", "stop", "tool_calls", "content_filter"], +) +@pytest.mark.asyncio +async def test_finish_reason_propagation( + mock_acompletion, + lite_llm_instance, + finish_reason, + response_content, + expected_content, + has_tool_calls, +): + """Test that finish_reason is properly propagated from LiteLLM response.""" + tool_calls = None + if has_tool_calls: + tool_calls = [ + ChatCompletionMessageToolCall( + type="function", + id="test_id", + function=Function( + name="test_function", + arguments='{"arg": "value"}', + ), + ) + ] + + mock_response = ModelResponse( + choices=[ + Choices( + message=ChatCompletionAssistantMessage( + role="assistant", + content=response_content, + tool_calls=tool_calls, + ), + finish_reason=finish_reason, + ) + ] + ) + mock_acompletion.return_value = mock_response + + llm_request = LlmRequest( + contents=[ + types.Content( + role="user", parts=[types.Part.from_text(text="Test prompt")] + ) + ], + ) + + async for response in lite_llm_instance.generate_content_async(llm_request): + assert response.content.role == "model" + # Verify finish_reason is mapped to FinishReason enum + assert isinstance(response.finish_reason, types.FinishReason) + # Verify correct enum mapping using the actual mapping from lite_llm + assert response.finish_reason == _FINISH_REASON_MAPPING[finish_reason] + if expected_content: + assert response.content.parts[0].text == expected_content + if has_tool_calls: + assert len(response.content.parts) > 0 + assert response.content.parts[-1].function_call.name == "test_function" + + mock_acompletion.assert_called_once() + + +@pytest.mark.asyncio +async def test_finish_reason_unknown_maps_to_other( + mock_acompletion, lite_llm_instance +): + """Test that unknown finish_reason values map to FinishReason.OTHER.""" + mock_response = ModelResponse( + choices=[ + Choices( + message=ChatCompletionAssistantMessage( + role="assistant", + content="Test response", + ), + finish_reason="unknown_reason_type", + ) + ] + ) + mock_acompletion.return_value = mock_response + + llm_request = LlmRequest( + contents=[ + types.Content( + role="user", parts=[types.Part.from_text(text="Test prompt")] + ) + ], + ) + + async for response in lite_llm_instance.generate_content_async(llm_request): + assert response.content.role == "model" + # Unknown finish_reason should map to OTHER + assert isinstance(response.finish_reason, types.FinishReason) + assert response.finish_reason == types.FinishReason.OTHER + + mock_acompletion.assert_called_once() From 01b48c09ad6c8db7025d6c56b045bdd6f0b04a1c Mon Sep 17 00:00:00 2001 From: Eliza Huang Date: Wed, 29 Oct 2025 20:29:03 -0700 Subject: [PATCH 234/303] feat: Add example demonstrating JSON passing between agents Co-authored-by: Eliza Huang PiperOrigin-RevId: 825831151 --- .../samples/json_passing_agent/README.md | 24 ++++ .../samples/json_passing_agent/__init__.py | 15 +++ .../samples/json_passing_agent/agent.py | 122 ++++++++++++++++++ .../samples/json_passing_agent/main.py | 68 ++++++++++ 4 files changed, 229 insertions(+) create mode 100644 contributing/samples/json_passing_agent/README.md create mode 100755 contributing/samples/json_passing_agent/__init__.py create mode 100755 contributing/samples/json_passing_agent/agent.py create mode 100644 contributing/samples/json_passing_agent/main.py diff --git a/contributing/samples/json_passing_agent/README.md b/contributing/samples/json_passing_agent/README.md new file mode 100644 index 0000000000..0f19482e24 --- /dev/null +++ b/contributing/samples/json_passing_agent/README.md @@ -0,0 +1,24 @@ +# JSON Passing Agent + +This sample demonstrates how to pass structured JSON data between agents. The example uses a pizza ordering scenario where one agent takes the order and passes it to another agent for confirmation. + +## How to run + +1. Run the agent: +```bash +adk run . +``` + +2. Talk to the agent: +``` +I want to order a pizza +``` + +## Example conversation +``` +[user]: I'd like a large pizza with pepperoni and mushrooms on a thin crust. +[order_intake_agent]: (tool call to get available sizes, crusts, toppings) +[order_intake_agent]: (returns a PizzaOrder JSON) +[order_confirmation_agent]: (tool call to calculate_price) +[order_confirmation_agent]: You ordered a large thin crust pizza with pepperoni and mushrooms. The total price is $15.00. +``` diff --git a/contributing/samples/json_passing_agent/__init__.py b/contributing/samples/json_passing_agent/__init__.py new file mode 100755 index 0000000000..c48963cdc7 --- /dev/null +++ b/contributing/samples/json_passing_agent/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/json_passing_agent/agent.py b/contributing/samples/json_passing_agent/agent.py new file mode 100755 index 0000000000..532134f42a --- /dev/null +++ b/contributing/samples/json_passing_agent/agent.py @@ -0,0 +1,122 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from google.adk import Agent +from google.adk.agents import sequential_agent +from google.adk.tools import tool_context +from pydantic import BaseModel + +SequentialAgent = sequential_agent.SequentialAgent +ToolContext = tool_context.ToolContext + + +# 1. Define the data structure for the pizza order. +class PizzaOrder(BaseModel): + """A data class to hold the details of a pizza order.""" + + size: str + crust: str + toppings: list[str] + + +# 2. Define tools for the order intake agent. +def get_available_sizes() -> list[str]: + """Returns the available pizza sizes.""" + return ['small', 'medium', 'large'] + + +def get_available_crusts() -> list[str]: + """Returns the available pizza crusts.""" + return ['thin', 'thick', 'stuffed'] + + +def get_available_toppings() -> list[str]: + """Returns the available pizza toppings.""" + return ['pepperoni', 'mushrooms', 'onions', 'sausage', 'bacon', 'pineapple'] + + +# 3. Define the order intake agent. +# This agent's job is to interact with the user to fill out a PizzaOrder object. +# It uses the output_schema to structure its response as a JSON object that +# conforms to the PizzaOrder model. +order_intake_agent = Agent( + name='order_intake_agent', + model='gemini-2.5-flash', + instruction=( + "You are a pizza order intake agent. Your goal is to get the user's" + ' pizza order. Use the available tools to find out what sizes, crusts,' + ' and toppings are available. Once you have all the information,' + ' provide it in the requested format. Your output MUST be a JSON object' + ' that conforms to the PizzaOrder schema and nothing else.' + ), + output_key='pizza_order', + output_schema=PizzaOrder, + tools=[get_available_sizes, get_available_crusts, get_available_toppings], +) + + +# 4. Define a tool for the order confirmation agent. +def calculate_price(tool_context: ToolContext) -> str: + """Calculates the price of a pizza order and returns a descriptive string.""" + order_dict = tool_context.state.get('pizza_order') + if not order_dict: + return "I can't find an order to calculate the price for." + + order = PizzaOrder.model_validate(order_dict) + + price = 0.0 + if order.size == 'small': + price += 8.0 + elif order.size == 'medium': + price += 10.0 + elif order.size == 'large': + price += 12.0 + + if order.crust == 'stuffed': + price += 2.0 + + price += len(order.toppings) * 1.5 + return f'The total price for your order is ${price:.2f}.' + + +# 5. Define the order confirmation agent. +# This agent reads the PizzaOrder object from the session state (placed there by +# the order_intake_agent) and confirms the order with the user. +order_confirmation_agent = Agent( + name='order_confirmation_agent', + model='gemini-2.5-flash', + instruction=( + 'Confirm the pizza order with the user. The order is in the state' + ' variable `pizza_order`. First, use the `calculate_price` tool to get' + ' the price. Then, summarize the order details from {pizza_order} and' + ' include the price in your summary. For example: "You ordered a large' + ' thin crust pizza with pepperoni and mushrooms. The total price is' + ' $15.00."' + ), + tools=[calculate_price], +) + +# 6. Define the root agent as a sequential agent. +# This agent directs the conversation by running its sub-agents in order. +root_agent = SequentialAgent( + name='pizza_ordering_agent', + sub_agents=[ + order_intake_agent, + order_confirmation_agent, + ], + description=( + 'This agent is used to order pizza. It will ask the user for their' + ' pizza order and then confirm the order with the user.' + ), +) diff --git a/contributing/samples/json_passing_agent/main.py b/contributing/samples/json_passing_agent/main.py new file mode 100644 index 0000000000..f87d739bd6 --- /dev/null +++ b/contributing/samples/json_passing_agent/main.py @@ -0,0 +1,68 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import asyncio +import time + +import agent +from dotenv import load_dotenv +from google.adk.cli.utils import logs +from google.adk.runners import InMemoryRunner +from google.adk.sessions.session import Session +from google.genai import types + +load_dotenv(override=True) +logs.log_to_tmp_folder() + + +async def main(): + """Runs the pizza ordering agent.""" + app_name = 'pizza_app' + user_id = 'user1' + runner = InMemoryRunner( + agent=agent.root_agent, + app_name=app_name, + ) + session = await runner.session_service.create_session( + app_name=app_name, user_id=user_id + ) + + async def run_prompt(session: Session, new_message: str): + content = types.Content( + role='user', parts=[types.Part.from_text(text=new_message)] + ) + print(f'** User says: {new_message}') + async for event in runner.run_async( + user_id=user_id, + session_id=session.id, + new_message=content, + ): + if event.content and event.content.parts and event.content.parts[0].text: + print(f'** {event.author}: {event.content.parts[0].text}') + + start_time = time.time() + print('Start time:', time.ctime(start_time)) + print('------------------------------------') + await run_prompt( + session, + "I'd like a large pizza with pepperoni and mushrooms on a thin crust.", + ) + print('------------------------------------') + end_time = time.time() + print('End time:', time.ctime(end_time)) + print(f'Total time: {end_time - start_time:.2f} seconds') + + +if __name__ == '__main__': + asyncio.run(main()) From f9569bbb1afbc7f0e8b6e68599590471fd112b9f Mon Sep 17 00:00:00 2001 From: Eliza Huang Date: Wed, 29 Oct 2025 20:37:24 -0700 Subject: [PATCH 235/303] fix: Enable usage metadata in LiteLLM streaming Closes #3181 Co-authored-by: Eliza Huang PiperOrigin-RevId: 825833660 --- src/google/adk/models/lite_llm.py | 1 + tests/unittests/models/test_litellm.py | 34 ++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/src/google/adk/models/lite_llm.py b/src/google/adk/models/lite_llm.py index 4286552c5c..06b4e490f9 100644 --- a/src/google/adk/models/lite_llm.py +++ b/src/google/adk/models/lite_llm.py @@ -920,6 +920,7 @@ async def generate_content_async( # Track function calls by index function_calls = {} # index -> {name, args, id} completion_args["stream"] = True + completion_args["stream_options"] = {"include_usage": True} aggregated_llm_response = None aggregated_llm_response_with_tool_call = None usage_metadata = None diff --git a/tests/unittests/models/test_litellm.py b/tests/unittests/models/test_litellm.py index 9df8725a6d..408b4a7ad3 100644 --- a/tests/unittests/models/test_litellm.py +++ b/tests/unittests/models/test_litellm.py @@ -1606,6 +1606,40 @@ async def test_generate_content_async_stream_with_usage_metadata( ) +@pytest.mark.asyncio +async def test_generate_content_async_stream_with_usage_metadata_only( + mock_completion, lite_llm_instance +): + streaming_model_response_with_usage_metadata = [ + ModelResponse( + usage={ + "prompt_tokens": 10, + "completion_tokens": 5, + "total_tokens": 15, + }, + choices=[ + StreamingChoices( + finish_reason="stop", + delta=Delta(content=""), + ) + ], + ), + ] + mock_completion.return_value = iter( + streaming_model_response_with_usage_metadata + ) + + unused_responses = [ + response + async for response in lite_llm_instance.generate_content_async( + LLM_REQUEST_WITH_FUNCTION_DECLARATION, stream=True + ) + ] + mock_completion.assert_called_once() + _, kwargs = mock_completion.call_args + assert kwargs["stream_options"] == {"include_usage": True} + + @pytest.mark.asyncio async def test_generate_content_async_multiple_function_calls( mock_completion, lite_llm_instance From fc15c9a0c3c043c0a61dce625b8cd1ee121b4baf Mon Sep 17 00:00:00 2001 From: hung12ct <48434938+hung12ct@users.noreply.github.com> Date: Wed, 29 Oct 2025 20:39:26 -0700 Subject: [PATCH 236/303] fix: Update DynamicPickleType to support MySQL dialect Merge https://github.com/google/adk-python/pull/3282 The `process_bind_param` and `process_result_value` methods in the `DynamicPickleType` class have been modified to handle MySQL dialect in addition to Spanner. This change ensures that pickled values are correctly processed for both database types. **Please ensure you have read the [contribution guide](https://github.com/google/adk-python/blob/main/CONTRIBUTING.md) before creating a pull request.** ### Link to Issue or Description of Change **1. Link to an existing issue (if applicable):** - Closes: #3283 **2. Or, if no issue exists, describe the change:** _If applicable, please follow the issue templates to provide as much detail as possible._ **Problem:** When using `DatabaseSessionService` with MySQL backend in google-adk v1.17.0, the application crashes with the following error: app.resources.runner:event_generator:260 - Error in event_generator: (builtins.TypeError) 'tuple' object cannot be interpreted as an integer image Root cause: The `DynamicPickleType` class in `database_session_service.py` configures MySQL dialect to use `LONGBLOB` for storing pickled data (line 117-118), but the `process_bind_param` and `process_result_value` methods only handle pickle serialization/deserialization for Spanner dialect, not MySQL. This causes MySQL to attempt storing raw Python objects instead of pickled bytes, leading to serialization errors and potential data corruption. **Solution:** Added MySQL to the pickle serialization logic in both `process_bind_param` and `process_result_value` methods, treating it the same way as Spanner dialect. This ensures that: - Data is properly pickled to bytes before being stored in MySQL's LONGBLOB column - Data is properly unpickled when retrieved from the database - No breaking changes to existing functionality for other dialects (SQLite, PostgreSQL) ### Testing Plan _Please describe the tests that you ran to verify your changes. This is required for all PRs that are not small documentation or typo fixes._ **Unit Tests:** - [x] I have added or updated unit tests for my change. - [x] All unit tests pass locally. **Summary of `pytest` results:** image **Manual End-to-End (E2E) Tests:** _Please provide instructions on how to manually test your changes, including any necessary setup or configuration. Please provide logs or screenshots to help reviewers better understand the fix._ ### Checklist - [x] I have read the [CONTRIBUTING.md](https://github.com/google/adk-python/blob/main/CONTRIBUTING.md) document. - [x] I have performed a self-review of my own code. - [x] I have commented my code, particularly in hard-to-understand areas. - [x] I have added tests that prove my fix is effective or that my feature works. - [x] New and existing unit tests pass locally with my changes. - [x] I have manually tested my changes end-to-end. - [x] Any dependent changes have been merged and published in downstream modules. ### Additional context _Add any other context or screenshots about the feature request here._ COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3282 from hung12ct:fix/mysql-pickle-serialization d9df37adb7dfbbfd8502a0fe65c4f8bca3d0d978 PiperOrigin-RevId: 825834360 --- .../adk/sessions/database_session_service.py | 4 +- .../sessions/test_dynamic_pickle_type.py | 181 ++++++++++++++++++ 2 files changed, 183 insertions(+), 2 deletions(-) create mode 100644 tests/unittests/sessions/test_dynamic_pickle_type.py diff --git a/src/google/adk/sessions/database_session_service.py b/src/google/adk/sessions/database_session_service.py index 215a5d8278..948fcbf8cf 100644 --- a/src/google/adk/sessions/database_session_service.py +++ b/src/google/adk/sessions/database_session_service.py @@ -125,14 +125,14 @@ def load_dialect_impl(self, dialect): def process_bind_param(self, value, dialect): """Ensures the pickled value is a bytes object before passing it to the database dialect.""" if value is not None: - if dialect.name == "spanner+spanner": + if dialect.name in ("spanner+spanner", "mysql"): return pickle.dumps(value) return value def process_result_value(self, value, dialect): """Ensures the raw bytes from the database are unpickled back into a Python object.""" if value is not None: - if dialect.name == "spanner+spanner": + if dialect.name in ("spanner+spanner", "mysql"): return pickle.loads(value) return value diff --git a/tests/unittests/sessions/test_dynamic_pickle_type.py b/tests/unittests/sessions/test_dynamic_pickle_type.py new file mode 100644 index 0000000000..e4eb084f88 --- /dev/null +++ b/tests/unittests/sessions/test_dynamic_pickle_type.py @@ -0,0 +1,181 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +import pickle +from unittest import mock + +from google.adk.sessions.database_session_service import DynamicPickleType +import pytest +from sqlalchemy import create_engine +from sqlalchemy.dialects import mysql + + +@pytest.fixture +def pickle_type(): + """Fixture for DynamicPickleType instance.""" + return DynamicPickleType() + + +def test_load_dialect_impl_mysql(pickle_type): + """Test that MySQL dialect uses LONGBLOB.""" + # Mock the MySQL dialect + mock_dialect = mock.Mock() + mock_dialect.name = "mysql" + + # Mock the return value of type_descriptor + mock_longblob_type = mock.Mock() + mock_dialect.type_descriptor.return_value = mock_longblob_type + + impl = pickle_type.load_dialect_impl(mock_dialect) + + # Verify type_descriptor was called once with mysql.LONGBLOB + mock_dialect.type_descriptor.assert_called_once_with(mysql.LONGBLOB) + # Verify the return value is what we expect + assert impl == mock_longblob_type + + +def test_load_dialect_impl_spanner(pickle_type): + """Test that Spanner dialect uses SpannerPickleType.""" + # Mock the spanner dialect + mock_dialect = mock.Mock() + mock_dialect.name = "spanner+spanner" + + with mock.patch( + "google.cloud.sqlalchemy_spanner.sqlalchemy_spanner.SpannerPickleType" + ) as mock_spanner_type: + pickle_type.load_dialect_impl(mock_dialect) + mock_dialect.type_descriptor.assert_called_once_with(mock_spanner_type) + + +def test_load_dialect_impl_default(pickle_type): + """Test that other dialects use default PickleType.""" + engine = create_engine("sqlite:///:memory:") + dialect = engine.dialect + impl = pickle_type.load_dialect_impl(dialect) + # Should return the default impl (PickleType) + assert impl == pickle_type.impl + + +@pytest.mark.parametrize( + "dialect_name", + [ + pytest.param("mysql", id="mysql"), + pytest.param("spanner+spanner", id="spanner"), + ], +) +def test_process_bind_param_pickle_dialects(pickle_type, dialect_name): + """Test that MySQL and Spanner dialects pickle the value.""" + mock_dialect = mock.Mock() + mock_dialect.name = dialect_name + + test_data = {"key": "value", "nested": [1, 2, 3]} + result = pickle_type.process_bind_param(test_data, mock_dialect) + + # Should be pickled bytes + assert isinstance(result, bytes) + # Should be able to unpickle back to original + assert pickle.loads(result) == test_data + + +def test_process_bind_param_default(pickle_type): + """Test that other dialects return value as-is.""" + mock_dialect = mock.Mock() + mock_dialect.name = "sqlite" + + test_data = {"key": "value"} + result = pickle_type.process_bind_param(test_data, mock_dialect) + + # Should return value unchanged (SQLAlchemy's PickleType handles it) + assert result == test_data + + +def test_process_bind_param_none(pickle_type): + """Test that None values are handled correctly.""" + mock_dialect = mock.Mock() + mock_dialect.name = "mysql" + + result = pickle_type.process_bind_param(None, mock_dialect) + assert result is None + + +@pytest.mark.parametrize( + "dialect_name", + [ + pytest.param("mysql", id="mysql"), + pytest.param("spanner+spanner", id="spanner"), + ], +) +def test_process_result_value_pickle_dialects(pickle_type, dialect_name): + """Test that MySQL and Spanner dialects unpickle the value.""" + mock_dialect = mock.Mock() + mock_dialect.name = dialect_name + + test_data = {"key": "value", "nested": [1, 2, 3]} + pickled_data = pickle.dumps(test_data) + + result = pickle_type.process_result_value(pickled_data, mock_dialect) + + # Should be unpickled back to original + assert result == test_data + + +def test_process_result_value_default(pickle_type): + """Test that other dialects return value as-is.""" + mock_dialect = mock.Mock() + mock_dialect.name = "sqlite" + + test_data = {"key": "value"} + result = pickle_type.process_result_value(test_data, mock_dialect) + + # Should return value unchanged (SQLAlchemy's PickleType handles it) + assert result == test_data + + +def test_process_result_value_none(pickle_type): + """Test that None values are handled correctly.""" + mock_dialect = mock.Mock() + mock_dialect.name = "mysql" + + result = pickle_type.process_result_value(None, mock_dialect) + assert result is None + + +@pytest.mark.parametrize( + "dialect_name", + [ + pytest.param("mysql", id="mysql"), + pytest.param("spanner+spanner", id="spanner"), + ], +) +def test_roundtrip_pickle_dialects(pickle_type, dialect_name): + """Test full roundtrip for MySQL and Spanner: bind -> result.""" + mock_dialect = mock.Mock() + mock_dialect.name = dialect_name + + original_data = { + "string": "test", + "number": 42, + "list": [1, 2, 3], + "nested": {"a": 1, "b": 2}, + } + + # Simulate bind (Python -> DB) + bound_value = pickle_type.process_bind_param(original_data, mock_dialect) + assert isinstance(bound_value, bytes) + + # Simulate result (DB -> Python) + result_value = pickle_type.process_result_value(bound_value, mock_dialect) + assert result_value == original_data From 3814d8b80fd5014fd8a536f787f80f780d5d9b8c Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Wed, 29 Oct 2025 21:32:17 -0700 Subject: [PATCH 237/303] docs: Update agent builder assistant to query knowledge base through HTTP instead of a2a Co-authored-by: Xuan Yang PiperOrigin-RevId: 825848638 --- .../agent_builder_assistant.py | 6 +- .../instruction_embedded.template | 6 +- .../sub_agents/__init__.py | 2 - .../sub_agents/adk_knowledge_agent.py | 33 ------- .../tools/search_adk_knowledge.py | 85 +++++++++++++++++++ 5 files changed, 91 insertions(+), 41 deletions(-) delete mode 100644 contributing/samples/adk_agent_builder_assistant/sub_agents/adk_knowledge_agent.py create mode 100644 contributing/samples/adk_agent_builder_assistant/tools/search_adk_knowledge.py diff --git a/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py b/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py index 69f34a2a7b..5ce4b116c4 100644 --- a/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py +++ b/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py @@ -26,7 +26,6 @@ from google.adk.tools import FunctionTool from google.genai import types -from .sub_agents.adk_knowledge_agent import create_adk_knowledge_agent from .sub_agents.google_search_agent import create_google_search_agent from .sub_agents.url_context_agent import create_url_context_agent from .tools.cleanup_unused_files import cleanup_unused_files @@ -34,6 +33,7 @@ from .tools.explore_project import explore_project from .tools.read_config_files import read_config_files from .tools.read_files import read_files +from .tools.search_adk_knowledge import search_adk_knowledge from .tools.search_adk_source import search_adk_source from .tools.write_config_files import write_config_files from .tools.write_files import write_files @@ -69,11 +69,9 @@ def create_agent( # - Maintains compatibility with existing ADK tool ecosystem # Built-in ADK tools wrapped as sub-agents - adk_knowledge_agent = create_adk_knowledge_agent() google_search_agent = create_google_search_agent() url_context_agent = create_url_context_agent() agent_tools = [ - AgentTool(adk_knowledge_agent), AgentTool(google_search_agent), AgentTool(url_context_agent), ] @@ -99,6 +97,8 @@ def create_agent( FunctionTool(cleanup_unused_files), # ADK source code search (regex-based) FunctionTool(search_adk_source), # Search ADK source with regex + # ADK knowledge search + FunctionTool(search_adk_knowledge), # Search ADK knowledge base ] # Combine all tools diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index 7651fb08ca..ba9c8000b7 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -272,9 +272,9 @@ tools: ### ADK Knowledge and Research Tools -**Default research tool**: Use `adk_knowledge_agent` first for ADK concepts, APIs, +**Default research tool**: Use `search_adk_knowledge` first for ADK concepts, APIs, examples, and troubleshooting. Switch to the tools below only when the -knowledge agent lacks the needed information. +knowledge base lacks the needed information. - `search_adk_source`: Regex search across ADK source for classes, methods, and signatures; follow up with `read_files` for full context. @@ -287,7 +287,7 @@ need agent-type clarification, want best practices, hit errors, express uncertainty about architecture, or you otherwise need authoritative guidance. **Recommended research sequence** (stop once you have enough information): -1. `adk_knowledge_agent` +1. `search_adk_knowledge` 2. `search_adk_source` → `read_files` 3. `google_search_agent` 4. `url_context_agent` diff --git a/contributing/samples/adk_agent_builder_assistant/sub_agents/__init__.py b/contributing/samples/adk_agent_builder_assistant/sub_agents/__init__.py index e034001357..d201f31e8d 100644 --- a/contributing/samples/adk_agent_builder_assistant/sub_agents/__init__.py +++ b/contributing/samples/adk_agent_builder_assistant/sub_agents/__init__.py @@ -14,12 +14,10 @@ """Sub-agents for Agent Builder Assistant.""" -from .adk_knowledge_agent import create_adk_knowledge_agent from .google_search_agent import create_google_search_agent from .url_context_agent import create_url_context_agent __all__ = [ - 'create_adk_knowledge_agent', 'create_google_search_agent', 'create_url_context_agent', ] diff --git a/contributing/samples/adk_agent_builder_assistant/sub_agents/adk_knowledge_agent.py b/contributing/samples/adk_agent_builder_assistant/sub_agents/adk_knowledge_agent.py deleted file mode 100644 index c95ff018d3..0000000000 --- a/contributing/samples/adk_agent_builder_assistant/sub_agents/adk_knowledge_agent.py +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright 2025 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""Sub-agent for ADK Knowledge.""" - -from google.adk.agents.llm_agent import Agent -from google.adk.agents.remote_a2a_agent import AGENT_CARD_WELL_KNOWN_PATH -from google.adk.agents.remote_a2a_agent import RemoteA2aAgent - - -def create_adk_knowledge_agent() -> Agent: - """Create a sub-agent that only uses google_search tool.""" - return RemoteA2aAgent( - name="adk_knowledge_agent", - description=( - "Agent for performing Vertex AI Search to find ADK knowledge and" - " documentation" - ), - agent_card=( - f"https://adk-agent-builder-knowledge-service-654646711756.us-central1.run.app/a2a/adk_knowledge_agent{AGENT_CARD_WELL_KNOWN_PATH}" - ), - ) diff --git a/contributing/samples/adk_agent_builder_assistant/tools/search_adk_knowledge.py b/contributing/samples/adk_agent_builder_assistant/tools/search_adk_knowledge.py new file mode 100644 index 0000000000..fd2db0b666 --- /dev/null +++ b/contributing/samples/adk_agent_builder_assistant/tools/search_adk_knowledge.py @@ -0,0 +1,85 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""ADK knowledge search tool.""" + +from typing import Any +import uuid + +import requests + +KNOWLEDGE_SERVICE_APP_URL = "https://adk-agent-builder-knowledge-service-654646711756.us-central1.run.app" +KNOWLEDGE_SERVICE_APP_NAME = "adk_knowledge_agent" +KNOWLEDGE_SERVICE_APP_USER_NAME = "agent_builder_assistant" + +HEADERS = { + "Content-Type": "application/json", + "Accept": "application/json", +} + + +def search_adk_knowledge( + query: str, +) -> dict[str, Any]: + """Searches ADK knowledge base for relevant information. + + Args: + query: The query to search in ADK knowledge base. + + Returns: + A dict with status and the response from the knowledge service. + """ + # Create a new session + session_id = uuid.uuid4() + create_session_url = f"{KNOWLEDGE_SERVICE_APP_URL}/apps/{KNOWLEDGE_SERVICE_APP_NAME}/users/{KNOWLEDGE_SERVICE_APP_USER_NAME}/sessions/{session_id}" + + try: + create_session_response = post_request( + create_session_url, + {}, + ) + except requests.exceptions.RequestException as e: + return error_response(f"Failed to create session: {e}") + session_id = create_session_response["id"] + + # Search ADK knowledge base + search_url = f"{KNOWLEDGE_SERVICE_APP_URL}/run" + try: + search_response = post_request( + search_url, + { + "app_name": KNOWLEDGE_SERVICE_APP_NAME, + "user_id": KNOWLEDGE_SERVICE_APP_USER_NAME, + "session_id": session_id, + "new_message": {"role": "user", "parts": [{"text": query}]}, + }, + ) + except requests.exceptions.RequestException as e: + return error_response(f"Failed to search ADK knowledge base: {e}") + return { + "status": "success", + "response": search_response, + } + + +def error_response(error_message: str) -> dict[str, Any]: + """Returns an error response.""" + return {"status": "error", "error_message": error_message} + + +def post_request(url: str, payload: dict[str, Any]) -> dict[str, Any]: + """Executes a POST request.""" + response = requests.post(url, headers=HEADERS, json=payload, timeout=60) + response.raise_for_status() + return response.json() From ce8f674a287368439ba11be3285902671e9bc75a Mon Sep 17 00:00:00 2001 From: Ayam Date: Wed, 29 Oct 2025 23:34:03 -0700 Subject: [PATCH 238/303] fix: Allow LLM request to override the model used in the generate content async method in LiteLLM Merge https://github.com/google/adk-python/pull/3066 Close #3065 Co-authored-by: Raman Mangla PiperOrigin-RevId: 825880794 --- src/google/adk/models/lite_llm.py | 9 ++--- tests/unittests/models/test_litellm.py | 47 ++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 4 deletions(-) diff --git a/src/google/adk/models/lite_llm.py b/src/google/adk/models/lite_llm.py index 06b4e490f9..5f374dc2ad 100644 --- a/src/google/adk/models/lite_llm.py +++ b/src/google/adk/models/lite_llm.py @@ -384,8 +384,8 @@ def _to_litellm_role(role: Optional[str]) -> Literal["user", "assistant"]: def _schema_to_dict(schema: types.Schema) -> dict: - """ - Recursively converts a types.Schema to a pure-python dict + """Recursively converts a types.Schema to a pure-python dict + with all enum values written as lower-case strings. Args: @@ -631,7 +631,8 @@ def _get_completion_inputs( llm_request: The LlmRequest to convert. Returns: - The litellm inputs (message list, tool dictionary, response format and generation params). + The litellm inputs (message list, tool dictionary, response format and + generation params). """ # 1. Construct messages messages: List[Message] = [] @@ -905,7 +906,7 @@ async def generate_content_async( tools = None completion_args = { - "model": self.model, + "model": llm_request.model or self.model, "messages": messages, "tools": tools, "response_format": response_format, diff --git a/tests/unittests/models/test_litellm.py b/tests/unittests/models/test_litellm.py index 408b4a7ad3..1e1d47002d 100644 --- a/tests/unittests/models/test_litellm.py +++ b/tests/unittests/models/test_litellm.py @@ -549,6 +549,53 @@ async def test_generate_content_async(mock_acompletion, lite_llm_instance): ) +@pytest.mark.asyncio +async def test_generate_content_async_with_model_override( + mock_acompletion, lite_llm_instance +): + llm_request = LlmRequest( + model="overridden_model", + contents=[ + types.Content( + role="user", parts=[types.Part.from_text(text="Test prompt")] + ) + ], + ) + + async for response in lite_llm_instance.generate_content_async(llm_request): + assert response.content.role == "model" + assert response.content.parts[0].text == "Test response" + + mock_acompletion.assert_called_once() + + _, kwargs = mock_acompletion.call_args + assert kwargs["model"] == "overridden_model" + assert kwargs["messages"][0]["role"] == "user" + assert kwargs["messages"][0]["content"] == "Test prompt" + + +@pytest.mark.asyncio +async def test_generate_content_async_without_model_override( + mock_acompletion, lite_llm_instance +): + llm_request = LlmRequest( + model=None, + contents=[ + types.Content( + role="user", parts=[types.Part.from_text(text="Test prompt")] + ) + ], + ) + + async for response in lite_llm_instance.generate_content_async(llm_request): + assert response.content.role == "model" + + mock_acompletion.assert_called_once() + + _, kwargs = mock_acompletion.call_args + assert kwargs["model"] == "test_model" + + @pytest.mark.asyncio async def test_generate_content_async_adds_fallback_user_message( mock_acompletion, lite_llm_instance From c0892c725c105458b5cac09e3b8eb982a389f169 Mon Sep 17 00:00:00 2001 From: Ieva Grublyte Date: Thu, 30 Oct 2025 06:05:51 -0700 Subject: [PATCH 239/303] chore: remove legacy validation that forbids co-exist of agent transfer and output_schema. Closes #3318 Remove validation for output_schema and agent transfer flags. The check that prevented `output_schema` from co-existing with agent transfer capabilities (`disallow_transfer_to_parent` or `disallow_transfer_to_peers` being False) has been removed. The agent will no longer automatically set these transfer flags to True when `output_schema` is present. Co-authored-by: Ieva Grublyte PiperOrigin-RevId: 825998224 --- src/google/adk/agents/llm_agent.py | 24 ----------- .../unittests/agents/test_llm_agent_fields.py | 40 ++++++------------- .../llm_flows/test_output_schema_processor.py | 18 +++++++++ 3 files changed, 31 insertions(+), 51 deletions(-) diff --git a/src/google/adk/agents/llm_agent.py b/src/google/adk/agents/llm_agent.py index 8e13ea8910..c2d0078340 100644 --- a/src/google/adk/agents/llm_agent.py +++ b/src/google/adk/agents/llm_agent.py @@ -744,32 +744,8 @@ def __maybe_save_output_to_state(self, event: Event): @model_validator(mode='after') def __model_validator_after(self) -> LlmAgent: - self.__check_output_schema() return self - def __check_output_schema(self): - if not self.output_schema: - return - - if ( - not self.disallow_transfer_to_parent - or not self.disallow_transfer_to_peers - ): - logger.warning( - 'Invalid config for agent %s: output_schema cannot co-exist with' - ' agent transfer configurations. Setting' - ' disallow_transfer_to_parent=True, disallow_transfer_to_peers=True', - self.name, - ) - self.disallow_transfer_to_parent = True - self.disallow_transfer_to_peers = True - - if self.sub_agents: - raise ValueError( - f'Invalid config for agent {self.name}: if output_schema is set,' - ' sub_agents must be empty to disable agent transfer.' - ) - @field_validator('generate_content_config', mode='after') @classmethod def validate_generate_content_config( diff --git a/tests/unittests/agents/test_llm_agent_fields.py b/tests/unittests/agents/test_llm_agent_fields.py index 5540e55b0d..c57254dbc8 100644 --- a/tests/unittests/agents/test_llm_agent_fields.py +++ b/tests/unittests/agents/test_llm_agent_fields.py @@ -167,27 +167,7 @@ async def _global_instruction_provider(ctx: ReadonlyContext) -> str: assert bypass_state_injection -def test_output_schema_will_disable_transfer(caplog: pytest.LogCaptureFixture): - with caplog.at_level('WARNING'): - - class Schema(BaseModel): - pass - - agent = LlmAgent( - name='test_agent', - output_schema=Schema, - ) - - # Transfer is automatically disabled - assert agent.disallow_transfer_to_parent - assert agent.disallow_transfer_to_peers - assert ( - 'output_schema cannot co-exist with agent transfer configurations.' - in caplog.text - ) - - -def test_output_schema_with_sub_agents_will_throw(): +def test_output_schema_with_sub_agents_will_not_throw(): class Schema(BaseModel): pass @@ -195,12 +175,18 @@ class Schema(BaseModel): name='sub_agent', ) - with pytest.raises(ValueError): - _ = LlmAgent( - name='test_agent', - output_schema=Schema, - sub_agents=[sub_agent], - ) + agent = LlmAgent( + name='test_agent', + output_schema=Schema, + sub_agents=[sub_agent], + ) + + # Transfer is not disabled + assert not agent.disallow_transfer_to_parent + assert not agent.disallow_transfer_to_peers + + assert agent.output_schema == Schema + assert agent.sub_agents == [sub_agent] def test_output_schema_with_tools_will_not_throw(): diff --git a/tests/unittests/flows/llm_flows/test_output_schema_processor.py b/tests/unittests/flows/llm_flows/test_output_schema_processor.py index a9dea8c919..4c43407cd4 100644 --- a/tests/unittests/flows/llm_flows/test_output_schema_processor.py +++ b/tests/unittests/flows/llm_flows/test_output_schema_processor.py @@ -72,6 +72,24 @@ async def test_output_schema_with_tools_validation_removed(): assert len(agent.tools) == 1 +@pytest.mark.asyncio +async def test_output_schema_with_sub_agents(): + """Test that LlmAgent now allows output_schema with sub_agents.""" + sub_agent = LlmAgent( + name='sub_agent', + model='gemini-1.5-flash', + ) + agent = LlmAgent( + name='test_agent', + model='gemini-1.5-flash', + output_schema=PersonSchema, + sub_agents=[sub_agent], + ) + + assert agent.output_schema == PersonSchema + assert len(agent.sub_agents) == 1 + + @pytest.mark.asyncio async def test_basic_processor_skips_output_schema_with_tools(): """Test that basic processor doesn't set output_schema when tools are present.""" From ec86608734d7d062982fee61a1ce9ed4db1a672e Mon Sep 17 00:00:00 2001 From: Ieva Grublyte Date: Thu, 30 Oct 2025 06:34:37 -0700 Subject: [PATCH 240/303] docs: Add sample agent to test support of output_schema, tools and subagents at the same time for gemini model Co-authored-by: Ieva Grublyte PiperOrigin-RevId: 826006607 --- .../samples/output_schema_with_tools/agent.py | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/contributing/samples/output_schema_with_tools/agent.py b/contributing/samples/output_schema_with_tools/agent.py index bf33bbc9d4..b523d2d7ae 100644 --- a/contributing/samples/output_schema_with_tools/agent.py +++ b/contributing/samples/output_schema_with_tools/agent.py @@ -20,6 +20,7 @@ """ from google.adk.agents import LlmAgent +from google.adk.tools.google_search_tool import google_search from pydantic import BaseModel from pydantic import Field import requests @@ -79,6 +80,22 @@ def get_current_year() -> str: return str(datetime.now().year) +# Create the knowledge agent that uses google_search tool. +knowledge_agent = LlmAgent( + name="knowledge_agent", + model="gemini-2.5-flash", + instruction=""" +You are a helpful assistant that gathers information about famous people. +Use google_search tool to find information about them. +Provide the output into a structured response using the PersonInfo format. +""", + description=""" +A knowledge agent that gathers information about famous people. +""", + tools=[google_search], + output_schema=PersonInfo, +) + # Create the agent with both output_schema and tools root_agent = LlmAgent( name="person_info_agent", @@ -87,15 +104,15 @@ def get_current_year() -> str: You are a helpful assistant that gathers information about famous people. When asked about a person, you should: -1. Use the search_wikipedia tool to find information about them -2. Use the get_current_year tool if you need to calculate ages -3. Compile the information into a structured response using the PersonInfo format - -Always use the set_model_response tool to provide your final answer in the required structured format. +1. Use the knowledge_agent to find information about politicians +2. Use the search_wikipedia tool to find information about other people +3. Use the get_current_year tool if you need to calculate ages +4. Compile the information into a structured response using the PersonInfo format """.strip(), output_schema=PersonInfo, tools=[ search_wikipedia, get_current_year, ], + sub_agents=[knowledge_agent], ) From 9704d27dfb6f2a2920a9402770174421831b5270 Mon Sep 17 00:00:00 2001 From: "Wei Sun (Jack)" Date: Thu, 30 Oct 2025 09:08:45 -0700 Subject: [PATCH 241/303] ci: Add a github action to automatically close the PR imported and committed by Copybara Include a manual mode for testing first and will remove after verifying it works. When a commit with `Merge https://github.com/google/adk-python/pull/3333` in description is pushed by copybara, the workflow will automatically close the PR. Co-authored-by: Wei Sun (Jack) PiperOrigin-RevId: 826058313 --- .github/copybara-pr-handler.yml | 134 ++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 .github/copybara-pr-handler.yml diff --git a/.github/copybara-pr-handler.yml b/.github/copybara-pr-handler.yml new file mode 100644 index 0000000000..670389c527 --- /dev/null +++ b/.github/copybara-pr-handler.yml @@ -0,0 +1,134 @@ +name: Copybara PR Handler + +on: + push: + branches: + - main + workflow_dispatch: + inputs: + pr_number: + description: 'PR number to close (for testing)' + required: true + type: string + commit_sha: + description: 'Commit SHA reference (optional, for testing)' + required: false + type: string + +jobs: + close-imported-pr: + runs-on: ubuntu-latest + permissions: + pull-requests: write + issues: write + contents: read + + steps: + - name: Check for Copybara commits and close PRs + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.ADK_TRIAGE_AGENT }} + script: | + // Check if this is a manual test run + const isManualRun = context.eventName === 'workflow_dispatch'; + + let prsToClose = []; + + if (isManualRun) { + // Manual testing mode + const prNumber = parseInt(context.payload.inputs.pr_number); + const commitSha = context.payload.inputs.commit_sha || context.sha.substring(0, 7); + + console.log('=== MANUAL TEST MODE ==='); + console.log(`Testing with PR #${prNumber}, commit ${commitSha}`); + + prsToClose.push({ prNumber, commitSha }); + } else { + // Normal mode: process commits from push event + const commits = context.payload.commits || []; + console.log(`Found ${commits.length} commit(s) in this push`); + + // Process each commit + for (const commit of commits) { + const sha = commit.id; + const committer = commit.committer.name; + const message = commit.message; + + console.log(`\n--- Processing commit ${sha.substring(0, 7)} ---`); + console.log(`Committer: ${committer}`); + + // Check if this is a Copybara commit + if (committer !== 'Copybara-Service') { + console.log('Not a Copybara commit, skipping'); + continue; + } + + // Extract PR number from commit message + // Pattern: "Merge https://github.com/google/adk-python/pull/3333" + const prMatch = message.match(/Merge https:\/\/github\.com\/google\/adk-python\/pull\/(\d+)/); + + if (!prMatch) { + console.log('No PR number found in Copybara commit message'); + continue; + } + + const prNumber = parseInt(prMatch[1]); + const commitSha = sha.substring(0, 7); + + prsToClose.push({ prNumber, commitSha }); + } + } + + // Process PRs to close + for (const { prNumber, commitSha } of prsToClose) { + console.log(`\n--- Processing PR #${prNumber} ---`); + + // Get PR details to check if it's open + let pr; + try { + pr = await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: prNumber + }); + } catch (error) { + console.log(`PR #${prNumber} not found or inaccessible:`, error.message); + continue; + } + + // Only close if PR is still open + if (pr.data.state !== 'open') { + console.log(`PR #${prNumber} is already ${pr.data.state}, skipping`); + continue; + } + + const author = pr.data.user.login; + + try { + // Add comment with commit reference + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + body: `Thank you @${author} for your contribution! 🎉\n\nYour changes have been successfully imported and merged via Copybara in commit ${commitSha}.\n\nClosing this PR as the changes are now in the main branch.` + }); + + // Close the PR + await github.rest.pulls.update({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: prNumber, + state: 'closed' + }); + + console.log(`Successfully closed PR #${prNumber}`); + } catch (error) { + console.log(`Error closing PR #${prNumber}:`, error.message); + } + } + + if (isManualRun) { + console.log('\n=== TEST COMPLETED ==='); + } else { + console.log('\n--- Finished processing all commits ---'); + } From d3796f9b33251d28d05e6701f11e80f02a2a49e1 Mon Sep 17 00:00:00 2001 From: Eliza Huang Date: Thu, 30 Oct 2025 09:38:59 -0700 Subject: [PATCH 242/303] feat: Add example for using ADK with Fast MCP sampling Close #2893 Co-authored-by: Eliza Huang PiperOrigin-RevId: 826070077 --- .../mcp_server_side_sampling/README.md | 51 ++++++++++++ .../mcp_server_side_sampling/__init__.py | 15 ++++ .../samples/mcp_server_side_sampling/agent.py | 56 +++++++++++++ .../mcp_server_side_sampling/mcp_server.py | 81 +++++++++++++++++++ 4 files changed, 203 insertions(+) create mode 100644 contributing/samples/mcp_server_side_sampling/README.md create mode 100755 contributing/samples/mcp_server_side_sampling/__init__.py create mode 100755 contributing/samples/mcp_server_side_sampling/agent.py create mode 100644 contributing/samples/mcp_server_side_sampling/mcp_server.py diff --git a/contributing/samples/mcp_server_side_sampling/README.md b/contributing/samples/mcp_server_side_sampling/README.md new file mode 100644 index 0000000000..5fe96184c8 --- /dev/null +++ b/contributing/samples/mcp_server_side_sampling/README.md @@ -0,0 +1,51 @@ +# FastMCP Server-Side Sampling with ADK + +This project demonstrates how to use server-side sampling with a `fastmcp` server connected to an ADK `MCPToolset`. + +## Description + +The setup consists of two main components: + +1. **ADK Agent (`agent.py`):** An `LlmAgent` is configured with an `MCPToolset`. This toolset connects to a local `fastmcp` server. +2. **FastMCP Server (`mcp_server.py`):** A `fastmcp` server that exposes a single tool, `analyze_sentiment`. This server is configured to use its own LLM for sampling, independent of the ADK agent's LLM. + +The flow is as follows: +1. The user provides a text prompt to the ADK agent. +2. The agent decides to use the `analyze_sentiment` tool from the `MCPToolset`. +3. The tool call is sent to the `mcp_server.py`. +4. Inside the `analyze_sentiment` tool, `ctx.sample()` is called. This delegates an LLM call to the `fastmcp` server's own sampling handler. +5. The `mcp_server`'s LLM processes the prompt from `ctx.sample()` and returns the result to the server. +6. The server processes the LLM response and returns the final sentiment to the agent. +7. The agent displays the result to the user. + +## Steps to Run + +### Prerequisites + +- Python 3.10+ +- `google-adk` library installed. +- A configured OpenAI API key. + +### 1. Set up the Environment + +Clone the project and navigate to the directory. Make sure your `OPENAI_API_KEY` is available as an environment variable. + +### 2. Install Dependencies + +Install the required Python libraries: + +```bash +pip install fastmcp openai litellm +``` + +### 3. Run the Example + +Navigate to the `samples` directory and choose this ADK agent: + +```bash +adk web . +``` + +The agent will automatically start the FastMCP server in the background. + +- **Sample user prompt:** "What is the sentiment of 'I love building things with Python'?" diff --git a/contributing/samples/mcp_server_side_sampling/__init__.py b/contributing/samples/mcp_server_side_sampling/__init__.py new file mode 100755 index 0000000000..c48963cdc7 --- /dev/null +++ b/contributing/samples/mcp_server_side_sampling/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/mcp_server_side_sampling/agent.py b/contributing/samples/mcp_server_side_sampling/agent.py new file mode 100755 index 0000000000..36695f1bdf --- /dev/null +++ b/contributing/samples/mcp_server_side_sampling/agent.py @@ -0,0 +1,56 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os + +from google.adk.agents import LlmAgent +from google.adk.models.lite_llm import LiteLlm +from google.adk.tools.mcp_tool import MCPToolset +from google.adk.tools.mcp_tool.mcp_session_manager import StdioConnectionParams +from mcp import StdioServerParameters + +# This example uses the OpenAI API for both the agent and the server. +# Ensure your OPENAI_API_KEY is available as an environment variable. +api_key = os.getenv('OPENAI_API_KEY') +if not api_key: + raise ValueError('The OPENAI_API_KEY environment variable must be set.') + +# Configure the StdioServerParameters to start the mcp_server.py script +# as a subprocess. The OPENAI_API_KEY is passed to the server's environment. +server_params = StdioServerParameters( + command='python', + args=['mcp_server.py'], + env={'OPENAI_API_KEY': api_key}, +) + +# Create the ADK MCPToolset, which connects to the FastMCP server. +# The `tool_filter` ensures that only the 'analyze_sentiment' tool is exposed +# to the agent. +mcp_toolset = MCPToolset( + connection_params=StdioConnectionParams( + server_params=server_params, + ), + tool_filter=['analyze_sentiment'], +) + +# Define the ADK agent that uses the MCP toolset. +root_agent = LlmAgent( + model=LiteLlm(model='openai/gpt-4o'), + name='SentimentAgent', + instruction=( + 'You are an expert at analyzing text sentiment. Use the' + ' analyze_sentiment tool to classify user input.' + ), + tools=[mcp_toolset], +) diff --git a/contributing/samples/mcp_server_side_sampling/mcp_server.py b/contributing/samples/mcp_server_side_sampling/mcp_server.py new file mode 100644 index 0000000000..2680c29ddd --- /dev/null +++ b/contributing/samples/mcp_server_side_sampling/mcp_server.py @@ -0,0 +1,81 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import logging +import os + +from fastmcp import Context +from fastmcp import FastMCP +from fastmcp.experimental.sampling.handlers.openai import OpenAISamplingHandler +from openai import OpenAI + +logging.basicConfig(level=logging.INFO) +API_KEY = os.getenv("OPENAI_API_KEY") + +# Set up the server's LLM handler using the OpenAI API. +# This handler will be used for all sampling requests from tools on this server. +llm_handler = OpenAISamplingHandler( + default_model="gpt-4o", + client=OpenAI( + api_key=API_KEY, + ), +) + + +# Create the FastMCP Server instance. +# The `sampling_handler` is configured to use the server's own LLM. +# `sampling_handler_behavior="always"` ensures the server never delegates +# sampling back to the ADK agent. +mcp = FastMCP( + name="SentimentAnalysis", + sampling_handler=llm_handler, + sampling_handler_behavior="always", +) + + +@mcp.tool +async def analyze_sentiment(text: str, ctx: Context) -> dict: + """Analyzes sentiment by delegating to the server's own LLM.""" + logging.info("analyze_sentiment tool called with text: %s", text) + prompt = f"""Analyze the sentiment of the following text as positive, + negative, or neutral. Just output a single word. + Text to analyze: {text}""" + + # This delegates the LLM call to the server's own sampling handler, + # as configured in the FastMCP instance. + logging.info("Attempting to call ctx.sample()") + try: + response = await ctx.sample(prompt) + logging.info("ctx.sample() successful. Response: %s", response) + except Exception as e: + logging.error("ctx.sample() failed: %s", e, exc_info=True) + raise + + sentiment = response.text.strip().lower() + + if "positive" in sentiment: + result = "positive" + elif "negative" in sentiment: + result = "negative" + else: + result = "neutral" + + logging.info("Sentiment analysis result: %s", result) + return {"text": text, "sentiment": result} + + +if __name__ == "__main__": + print("Starting FastMCP server with tool 'analyze_sentiment'...") + # This runs the server process, which the ADK agent will connect to. + mcp.run() From 1e6a9daa63050936ab421f1f684935927aebc63e Mon Sep 17 00:00:00 2001 From: George Weale Date: Thu, 30 Oct 2025 09:54:17 -0700 Subject: [PATCH 243/303] fix: Change instruction insertion to respect tool call/response pairs Make sure _add_instructions_to_user_content skips over user messages that carry function_response parts so tool_use/tool_result blocks stay together Close #3229 Co-authored-by: George Weale PiperOrigin-RevId: 826076141 --- src/google/adk/flows/llm_flows/contents.py | 19 +++++++--- .../flows/llm_flows/test_instructions.py | 35 +++++++++++++++++++ 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/src/google/adk/flows/llm_flows/contents.py b/src/google/adk/flows/llm_flows/contents.py index be471a44eb..899f819ae3 100644 --- a/src/google/adk/flows/llm_flows/contents.py +++ b/src/google/adk/flows/llm_flows/contents.py @@ -668,6 +668,16 @@ def _is_live_model_audio_event(event: Event) -> bool: return False +def _content_contains_function_response(content: types.Content) -> bool: + """Checks whether the content includes any function response parts.""" + if not content.parts: + return False + for part in content.parts: + if part.function_response: + return True + return False + + async def _add_instructions_to_user_content( invocation_context: InvocationContext, llm_request: LlmRequest, @@ -695,13 +705,14 @@ async def _add_instructions_to_user_content( if llm_request.contents: for i in range(len(llm_request.contents) - 1, -1, -1): - if llm_request.contents[i].role != 'user': + content = llm_request.contents[i] + if content.role != 'user': insert_index = i + 1 break - elif i == 0: - # All content from start is user content - insert_index = 0 + if _content_contains_function_response(content): + insert_index = i + 1 break + insert_index = i else: # No contents remaining, just append at the end insert_index = 0 diff --git a/tests/unittests/flows/llm_flows/test_instructions.py b/tests/unittests/flows/llm_flows/test_instructions.py index d3fcdbf56b..dc6fe17638 100644 --- a/tests/unittests/flows/llm_flows/test_instructions.py +++ b/tests/unittests/flows/llm_flows/test_instructions.py @@ -923,6 +923,41 @@ async def test_no_dynamic_instructions_when_no_static(llm_backend): assert llm_request.contents[0].parts[0].text == "Hello world" +@pytest.mark.asyncio +async def test_instructions_insert_after_function_response(): + """Ensure instruction insertion does not split tool_use/tool_result pairs.""" + agent = LlmAgent(name="test_agent") + invocation_context = await _create_invocation_context(agent) + + tool_call = types.Part.from_function_call( + name="echo_tool", args={"echo": "value"} + ) + tool_response = types.Part.from_function_response( + name="echo_tool", response={"result": "value"} + ) + + llm_request = LlmRequest( + contents=[ + types.Content(role="assistant", parts=[tool_call]), + types.Content(role="user", parts=[tool_response]), + ] + ) + instruction_contents = [ + types.Content( + role="user", parts=[types.Part.from_text(text="Dynamic instruction")] + ) + ] + + await _add_instructions_to_user_content( + invocation_context, llm_request, instruction_contents + ) + + assert len(llm_request.contents) == 3 + assert llm_request.contents[0].parts[0].function_call + assert llm_request.contents[1].parts[0].function_response + assert llm_request.contents[2].parts[0].text == "Dynamic instruction" + + @pytest.mark.parametrize("llm_backend", ["GOOGLE_AI", "VERTEX"]) @pytest.mark.asyncio async def test_static_instruction_with_files_and_text(llm_backend): From b0017aed4472c73c3b07e71f1d65ae97a5293547 Mon Sep 17 00:00:00 2001 From: Shubham Saboo <31396011+Shubhamsaboo@users.noreply.github.com> Date: Thu, 30 Oct 2025 11:02:00 -0700 Subject: [PATCH 244/303] chore: Revise README for clarity and consistency Merge https://github.com/google/adk-python/pull/3335 Updated terminology in README for clarity and consistency. COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3335 from Shubhamsaboo:patch-1 57d574e2e28c539e97fcb7f5d82bc1d00ca7149e PiperOrigin-RevId: 826105701 --- README.md | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 93d288b73f..61dfc40eac 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@

            - An open-source, code-first Python toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control. + An open-source, code-first Python framework for building, evaluating, and deploying sophisticated AI agents with flexibility and control.

            Important Links: @@ -22,7 +22,11 @@

            -Agent Development Kit (ADK) is a flexible and modular framework for developing and deploying AI agents. While optimized for Gemini and the Google ecosystem, ADK is model-agnostic, deployment-agnostic, and is built for compatibility with other frameworks. ADK was designed to make agent development feel more like software development, to make it easier for developers to create, deploy, and orchestrate agentic architectures that range from simple tasks to complex workflows. +Agent Development Kit (ADK) is a flexible and modular framework that applies +software development principles to AI agent creation. It is designed to +simplify building, deploying, and orchestrating agent workflows, from simple +tasks to complex systems. While optimized for Gemini, ADK is model-agnostic, +deployment-agnostic, and compatible with other frameworks. --- @@ -37,7 +41,7 @@ Agent Development Kit (ADK) is a flexible and modular framework for developing a ## ✨ Key Features - **Rich Tool Ecosystem**: Utilize pre-built tools, custom functions, - OpenAPI specs, or integrate existing tools to give agents diverse + OpenAPI specs, MCP tools or integrate existing tools to give agents diverse capabilities, all for tight integration with the Google ecosystem. - **Code-First Development**: Define agent logic, tools, and orchestration @@ -54,13 +58,6 @@ Agent Development Kit (ADK) is a flexible and modular framework for developing a - **Deploy Anywhere**: Easily containerize and deploy agents on Cloud Run or scale seamlessly with Vertex AI Agent Engine. -## 🤖 Agent2Agent (A2A) Protocol and ADK Integration - -For remote agent-to-agent communication, ADK integrates with the -[A2A protocol](https://github.com/google-a2a/A2A/). -See this [example](https://github.com/a2aproject/a2a-samples/tree/main/samples/python/agents) -for how they can work together. - ## 🚀 Installation ### Stable Release (Recommended) @@ -84,6 +81,13 @@ pip install git+https://github.com/google/adk-python.git@main Note: The development version is built directly from the latest code commits. While it includes the newest fixes and features, it may also contain experimental changes or bugs not present in the stable release. Use it primarily for testing upcoming changes or accessing critical fixes before they are officially released. +## 🤖 Agent2Agent (A2A) Protocol and ADK Integration + +For remote agent-to-agent communication, ADK integrates with the +[A2A protocol](https://github.com/google-a2a/A2A/). +See this [example](https://github.com/a2aproject/a2a-samples/tree/main/samples/python/agents) +for how they can work together. + ## 📚 Documentation Explore the full documentation for detailed guides on building, evaluating, and From 5eca72f9bfd05c7c28a3d738391138a59a31167d Mon Sep 17 00:00:00 2001 From: Ayush Agrawal Date: Thu, 30 Oct 2025 11:36:04 -0700 Subject: [PATCH 245/303] fix: Correct message part ordering in A2A history Merges test case from https://github.com/google/adk-python/pull/3262 Fixes: #3260 Co-authored-by: Ayush Agrawal PiperOrigin-RevId: 826119626 --- src/google/adk/agents/remote_a2a_agent.py | 14 ++-- .../unittests/agents/test_remote_a2a_agent.py | 65 +++++++++++++++++++ 2 files changed, 74 insertions(+), 5 deletions(-) diff --git a/src/google/adk/agents/remote_a2a_agent.py b/src/google/adk/agents/remote_a2a_agent.py index bee8904c7e..d3aea5d3ee 100644 --- a/src/google/adk/agents/remote_a2a_agent.py +++ b/src/google/adk/agents/remote_a2a_agent.py @@ -356,29 +356,33 @@ def _construct_message_parts_from_session( """ message_parts: list[A2APart] = [] context_id = None + + events_to_process = [] for event in reversed(ctx.session.events): - if _is_other_agent_reply(self.name, event): - event = _present_other_agent_message(event) - elif event.author == self.name: + if event.author == self.name: # stop on content generated by current a2a agent given it should already # be in remote session if event.custom_metadata: metadata = event.custom_metadata context_id = metadata.get(A2A_METADATA_PREFIX + "context_id") break + events_to_process.append(event) + + for event in reversed(events_to_process): + if _is_other_agent_reply(self.name, event): + event = _present_other_agent_message(event) if not event.content or not event.content.parts: continue for part in event.content.parts: - converted_part = self._genai_part_converter(part) if converted_part: message_parts.append(converted_part) else: logger.warning("Failed to convert part to A2A format: %s", part) - return message_parts[::-1], context_id + return message_parts, context_id async def _handle_a2a_response( self, a2a_response: A2AClientEvent | A2AMessage, ctx: InvocationContext diff --git a/tests/unittests/agents/test_remote_a2a_agent.py b/tests/unittests/agents/test_remote_a2a_agent.py index 597b5f1b51..65359dc840 100644 --- a/tests/unittests/agents/test_remote_a2a_agent.py +++ b/tests/unittests/agents/test_remote_a2a_agent.py @@ -735,6 +735,71 @@ async def test_handle_a2a_response_with_task_completed_and_no_update(self): assert A2A_METADATA_PREFIX + "task_id" in result.custom_metadata assert A2A_METADATA_PREFIX + "context_id" in result.custom_metadata + def test_construct_message_parts_from_session_preserves_order(self): + """Test that message parts are in correct order with multi-part messages. + + This test verifies the fix for the bug where _present_other_agent_message + creates multi-part messages with "For context:" prefix, and ensures the + parts are in the correct chronological order (not reversed). + """ + # Create mock events with multiple parts + # Event 1: User message + user_part = Mock() + user_part.text = "User question" + user_content = Mock() + user_content.parts = [user_part] + user_event = Mock() + user_event.content = user_content + user_event.author = "user" + + # Event 2: Other agent message (will be transformed by + # _present_other_agent_message) + other_agent_part1 = Mock() + other_agent_part1.text = "For context:" + other_agent_part2 = Mock() + other_agent_part2.text = "[other_agent] said: Response text" + other_agent_content = Mock() + other_agent_content.parts = [other_agent_part1, other_agent_part2] + other_agent_event = Mock() + other_agent_event.content = other_agent_content + other_agent_event.author = "other_agent" + + self.mock_session.events = [user_event, other_agent_event] + + with patch( + "google.adk.agents.remote_a2a_agent._present_other_agent_message" + ) as mock_present: + # Mock _present_other_agent_message to return the transformed event + mock_present.return_value = other_agent_event + + # Mock the converter to track the order of parts + converted_parts = [] + + def mock_converter(part): + mock_a2a_part = Mock() + mock_a2a_part.original_text = part.text + converted_parts.append(mock_a2a_part) + return mock_a2a_part + + self.mock_genai_part_converter.side_effect = mock_converter + + result = self.agent._construct_message_parts_from_session( + self.mock_context + ) + + # Verify the parts are in correct order + assert len(result) == 2 # Returns tuple of (parts, context_id) + assert len(result[0]) == 3 # 1 user part + 2 other agent parts + assert result[1] is None # context_id + + # Verify order: user part, then "For context:", then agent message + assert converted_parts[0].original_text == "User question" + assert converted_parts[1].original_text == "For context:" + assert ( + converted_parts[2].original_text + == "[other_agent] said: Response text" + ) + @pytest.mark.asyncio async def test_handle_a2a_response_with_task_submitted_and_no_update(self): """Test successful A2A response handling with streaming task and no update.""" From 34d9b53f378cb8f8fe0c1a92e55601361ec037a6 Mon Sep 17 00:00:00 2001 From: Jaroslav Pantsjoha Date: Thu, 30 Oct 2025 12:07:41 -0700 Subject: [PATCH 246/303] feat: Enhance error messages for tool and agent not found errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge https://github.com/google/adk-python/pull/3219 ## Summary Enhance error messages for tool and agent not found errors to provide actionable guidance and reduce developer debugging time from hours to minutes. Fixes #3217 ## Changes ### Modified Files 1. **`src/google/adk/flows/llm_flows/functions.py`** - Enhanced `_get_tool()` error message with: - Available tools list (formatted, truncated to 20 for readability) - Possible causes - Suggested fixes - Fuzzy matching suggestions 2. **`src/google/adk/agents/llm_agent.py`** - Enhanced `__get_agent_to_run()` error message with: - Available agents list (formatted, truncated to 20 for readability) - Timing/ordering issue explanation - Fuzzy matching for agent names - Added `_get_available_agent_names()` helper method ### New Test Files 3. **`tests/unittests/flows/llm_flows/test_functions_error_messages.py`** - Tests for enhanced tool not found error messages - Fuzzy matching validation - Edge cases (no close matches, empty tools dict, 100+ tools) 4. **`tests/unittests/agents/test_llm_agent_error_messages.py`** - Tests for enhanced agent not found error messages - Agent tree traversal validation - Fuzzy matching for agents - Long list truncation ## Testing Plan ### Unit Tests ```bash pytest tests/unittests/flows/llm_flows/test_functions_error_messages.py -v pytest tests/unittests/agents/test_llm_agent_error_messages.py -v ``` **Results**: ✅ 8/8 tests passing ``` tests/unittests/flows/llm_flows/test_functions_error_messages.py::test_tool_not_found_enhanced_error PASSED tests/unittests/flows/llm_flows/test_functions_error_messages.py::test_tool_not_found_fuzzy_matching PASSED tests/unittests/flows/llm_flows/test_functions_error_messages.py::test_tool_not_found_no_fuzzy_match PASSED tests/unittests/flows/llm_flows/test_functions_error_messages.py::test_tool_not_found_truncates_long_list PASSED tests/unittests/agents/test_llm_agent_error_messages.py::test_agent_not_found_enhanced_error PASSED tests/unittests/agents/test_llm_agent_error_messages.py::test_agent_not_found_fuzzy_matching PASSED tests/unittests/agents/test_llm_agent_error_messages.py::test_agent_tree_traversal PASSED tests/unittests/agents/test_llm_agent_error_messages.py::test_agent_not_found_truncates_long_list PASSED 8 passed, 1 warning in 4.38s ``` ### Example Enhanced Error Messages #### Before (Current Error) ``` ValueError: Function get_equipment_specs is not found in the tools_dict: dict_keys(['get_equipment_details', 'query_vendor_catalog', 'score_proposals']) ``` #### After (Enhanced Error) ``` Function 'get_equipment_specs' is not found in available tools. Available tools: get_equipment_details, query_vendor_catalog, score_proposals Possible causes: 1. LLM hallucinated the function name - review agent instruction clarity 2. Tool not registered - verify agent.tools list 3. Name mismatch - check for typos Suggested fixes: - Review agent instruction to ensure tool usage is clear - Verify tool is included in agent.tools list - Check for typos in function name Did you mean one of these? - get_equipment_details ``` ## Community Impact - **Addresses 3 active issues**: #2050, #2933 (12 comments), #2164 - **Reduces debugging time** from 3+ hours to < 5 minutes (validated in production multi-agent RFQ solution for recent partner nanothon initiative) - **Improves developer experience** for new ADK users ## Implementation Details - Uses standard library `difflib` for fuzzy matching (no new dependencies) - Error path only (no performance impact on happy path) - Measured performance: < 0.03ms per error - Truncates long lists to first 20 items to prevent log overflow - Fully backward compatible (same exception types) ## Checklist - [x] Unit tests added and passing (8/8 tests) - [x] Code formatted with `./autoformat.sh` (isort + pyink) - [x] No new dependencies (uses standard library `difflib`) - [x] Docstrings updated - [x] Tested with Python 3.11 - [x] Issue #3217 created and linked ## Related Issues - Fixes #3217 - Addresses #2050 - Tool verification callback request - Addresses #2933 - How to handle "Function is not found in the tools_dict" Error - Addresses #2164 - ValueError: {agent} not found in agent tree --- **Note**: For production scenarios where LLM tool hallucinations occur, ADK's built-in [`ReflectAndRetryToolPlugin`](https://github.com/google/adk-python/blob/main/src/google/adk/plugins/reflect_retry_tool_plugin.py) can automatically retry failed tool calls (available since v1.16.0). This PR's enhanced error messages complement that by helping developers quickly identify and fix configuration issues during development. Cheers, JP Co-authored-by: Yvonne Yu COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3219 from jpantsjoha:feat/better-error-messages a4df8bfb031685dce9e528d8eb7006f53447b75b PiperOrigin-RevId: 826132579 --- src/google/adk/agents/llm_agent.py | 36 +++++++- src/google/adk/flows/llm_flows/functions.py | 13 ++- .../agents/test_llm_agent_error_messages.py | 89 +++++++++++++++++++ .../test_functions_error_messages.py | 88 ++++++++++++++++++ 4 files changed, 222 insertions(+), 4 deletions(-) create mode 100644 tests/unittests/agents/test_llm_agent_error_messages.py create mode 100644 tests/unittests/flows/llm_flows/test_functions_error_messages.py diff --git a/src/google/adk/agents/llm_agent.py b/src/google/adk/agents/llm_agent.py index c2d0078340..be55124dce 100644 --- a/src/google/adk/agents/llm_agent.py +++ b/src/google/adk/agents/llm_agent.py @@ -689,9 +689,43 @@ def __get_agent_to_run(self, agent_name: str) -> BaseAgent: """Find the agent to run under the root agent by name.""" agent_to_run = self.root_agent.find_agent(agent_name) if not agent_to_run: - raise ValueError(f'Agent {agent_name} not found in the agent tree.') + available = self._get_available_agent_names() + error_msg = ( + f"Agent '{agent_name}' not found.\n" + f"Available agents: {', '.join(available)}\n\n" + 'Possible causes:\n' + ' 1. Agent not registered before being referenced\n' + ' 2. Agent name mismatch (typo or case sensitivity)\n' + ' 3. Timing issue (agent referenced before creation)\n\n' + 'Suggested fixes:\n' + ' - Verify agent is registered with root agent\n' + ' - Check agent name spelling and case\n' + ' - Ensure agents are created before being referenced' + ) + raise ValueError(error_msg) return agent_to_run + def _get_available_agent_names(self) -> list[str]: + """Helper to get all agent names in the tree for error reporting. + + This is a private helper method used only for error message formatting. + Traverses the agent tree starting from root_agent and collects all + agent names for display in error messages. + + Returns: + List of all agent names in the agent tree. + """ + agents = [] + + def collect_agents(agent): + agents.append(agent.name) + if hasattr(agent, 'sub_agents') and agent.sub_agents: + for sub_agent in agent.sub_agents: + collect_agents(sub_agent) + + collect_agents(self.root_agent) + return agents + def __get_transfer_to_agent_or_none( self, event: Event, from_agent: str ) -> Optional[BaseAgent]: diff --git a/src/google/adk/flows/llm_flows/functions.py b/src/google/adk/flows/llm_flows/functions.py index 91f8808f5f..95d1e7901b 100644 --- a/src/google/adk/flows/llm_flows/functions.py +++ b/src/google/adk/flows/llm_flows/functions.py @@ -716,10 +716,17 @@ def _get_tool( ): """Returns the tool corresponding to the function call.""" if function_call.name not in tools_dict: - raise ValueError( - f'Function {function_call.name} is not found in the tools_dict:' - f' {tools_dict.keys()}.' + available = list(tools_dict.keys()) + error_msg = ( + f"Tool '{function_call.name}' not found.\nAvailable tools:" + f" {', '.join(available)}\n\nPossible causes:\n 1. LLM hallucinated" + ' the function name - review agent instruction clarity\n 2. Tool not' + ' registered - verify agent.tools list\n 3. Name mismatch - check for' + ' typos\n\nSuggested fixes:\n - Review agent instruction to ensure' + ' tool usage is clear\n - Verify tool is included in agent.tools' + ' list\n - Check for typos in function name' ) + raise ValueError(error_msg) return tools_dict[function_call.name] diff --git a/tests/unittests/agents/test_llm_agent_error_messages.py b/tests/unittests/agents/test_llm_agent_error_messages.py new file mode 100644 index 0000000000..1b6f135e12 --- /dev/null +++ b/tests/unittests/agents/test_llm_agent_error_messages.py @@ -0,0 +1,89 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Tests for enhanced error messages in agent handling.""" +from google.adk.agents import LlmAgent +import pytest + + +def test_agent_not_found_enhanced_error(): + """Verify enhanced error message for agent not found.""" + root_agent = LlmAgent( + name='root', + model='gemini-2.0-flash', + sub_agents=[ + LlmAgent(name='agent_a', model='gemini-2.0-flash'), + LlmAgent(name='agent_b', model='gemini-2.0-flash'), + ], + ) + + with pytest.raises(ValueError) as exc_info: + root_agent._LlmAgent__get_agent_to_run('nonexistent_agent') + + error_msg = str(exc_info.value) + + # Verify error message components + assert 'nonexistent_agent' in error_msg + assert 'Available agents:' in error_msg + assert 'agent_a' in error_msg + assert 'agent_b' in error_msg + assert 'Possible causes:' in error_msg + assert 'Suggested fixes:' in error_msg + + +def test_agent_tree_traversal(): + """Verify agent tree traversal helper works correctly.""" + root_agent = LlmAgent( + name='orchestrator', + model='gemini-2.0-flash', + sub_agents=[ + LlmAgent( + name='parent_agent', + model='gemini-2.0-flash', + sub_agents=[ + LlmAgent(name='child_agent', model='gemini-2.0-flash'), + ], + ), + ], + ) + + available_agents = root_agent._get_available_agent_names() + + # Verify all agents in tree are found + assert 'orchestrator' in available_agents + assert 'parent_agent' in available_agents + assert 'child_agent' in available_agents + assert len(available_agents) == 3 + + +def test_agent_not_found_shows_all_agents(): + """Verify error message shows all agents (no truncation).""" + # Create 100 sub-agents + sub_agents = [ + LlmAgent(name=f'agent_{i}', model='gemini-2.0-flash') for i in range(100) + ] + + root_agent = LlmAgent( + name='root', model='gemini-2.0-flash', sub_agents=sub_agents + ) + + with pytest.raises(ValueError) as exc_info: + root_agent._LlmAgent__get_agent_to_run('nonexistent') + + error_msg = str(exc_info.value) + + # Verify all agents are shown (no truncation) + assert 'agent_0' in error_msg # First agent shown + assert 'agent_99' in error_msg # Last agent also shown + assert 'showing first 20 of' not in error_msg # No truncation message diff --git a/tests/unittests/flows/llm_flows/test_functions_error_messages.py b/tests/unittests/flows/llm_flows/test_functions_error_messages.py new file mode 100644 index 0000000000..44b563b6c7 --- /dev/null +++ b/tests/unittests/flows/llm_flows/test_functions_error_messages.py @@ -0,0 +1,88 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Tests for enhanced error messages in function tool handling.""" +from google.adk.flows.llm_flows.functions import _get_tool +from google.adk.tools import BaseTool +from google.genai import types +import pytest + + +# Mock tool for testing error messages +class MockTool(BaseTool): + """Mock tool for testing error messages.""" + + def __init__(self, name: str = 'mock_tool'): + super().__init__(name=name, description=f'Mock tool: {name}') + + def call(self, *args, **kwargs): + return 'mock_response' + + +def test_tool_not_found_enhanced_error(): + """Verify enhanced error message for tool not found.""" + function_call = types.FunctionCall(name='nonexistent_tool', args={}) + tools_dict = { + 'get_weather': MockTool(name='get_weather'), + 'calculate_sum': MockTool(name='calculate_sum'), + 'search_database': MockTool(name='search_database'), + } + + with pytest.raises(ValueError) as exc_info: + _get_tool(function_call, tools_dict) + + error_msg = str(exc_info.value) + + # Verify error message components + assert 'nonexistent_tool' in error_msg + assert 'Available tools:' in error_msg + assert 'get_weather' in error_msg + assert 'Possible causes:' in error_msg + assert 'Suggested fixes:' in error_msg + + +def test_tool_not_found_with_different_name(): + """Verify error message contains basic information.""" + function_call = types.FunctionCall(name='completely_different', args={}) + tools_dict = { + 'get_weather': MockTool(name='get_weather'), + 'calculate_sum': MockTool(name='calculate_sum'), + } + + with pytest.raises(ValueError) as exc_info: + _get_tool(function_call, tools_dict) + + error_msg = str(exc_info.value) + + # Verify error message contains basic information + assert 'completely_different' in error_msg + assert 'Available tools:' in error_msg + + +def test_tool_not_found_shows_all_tools(): + """Verify error message shows all tools (no truncation).""" + function_call = types.FunctionCall(name='nonexistent', args={}) + + # Create 100 tools + tools_dict = {f'tool_{i}': MockTool(name=f'tool_{i}') for i in range(100)} + + with pytest.raises(ValueError) as exc_info: + _get_tool(function_call, tools_dict) + + error_msg = str(exc_info.value) + + # Verify all tools are shown (no truncation) + assert 'tool_0' in error_msg # First tool shown + assert 'tool_99' in error_msg # Last tool also shown + assert 'showing first 20 of' not in error_msg # No truncation message From 610e219a9fa4f72f2a46b3a98f6565efcbf5eebd Mon Sep 17 00:00:00 2001 From: "Wei Sun (Jack)" Date: Thu, 30 Oct 2025 12:37:17 -0700 Subject: [PATCH 247/303] ci: Fixes the copybara-pr-handler.yml file location, it should be under workflow folder Co-authored-by: Wei Sun (Jack) PiperOrigin-RevId: 826143689 --- .github/{ => workflows}/copybara-pr-handler.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/{ => workflows}/copybara-pr-handler.yml (100%) diff --git a/.github/copybara-pr-handler.yml b/.github/workflows/copybara-pr-handler.yml similarity index 100% rename from .github/copybara-pr-handler.yml rename to .github/workflows/copybara-pr-handler.yml From 2274c4f3040b20da3690aa03272155776ca330c1 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Thu, 30 Oct 2025 13:37:42 -0700 Subject: [PATCH 248/303] feat: Add "final_session_state" to the EvalCase data model This will allow setting a golden expectation on the session state for agents that will modify the states. PiperOrigin-RevId: 826166904 --- src/google/adk/evaluation/eval_case.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/google/adk/evaluation/eval_case.py b/src/google/adk/evaluation/eval_case.py index 9d3389015a..065681b199 100644 --- a/src/google/adk/evaluation/eval_case.py +++ b/src/google/adk/evaluation/eval_case.py @@ -108,6 +108,10 @@ class Invocation(EvalBaseModel): """Details about the App that was used for this invocation.""" +SessionState: TypeAlias = dict[str, Any] +"""The state of the session.""" + + class SessionInput(EvalBaseModel): """Values that help initialize a Session.""" @@ -117,7 +121,7 @@ class SessionInput(EvalBaseModel): user_id: str """The user id.""" - state: dict[str, Any] = Field(default_factory=dict) + state: SessionState = Field(default_factory=dict) """The state of the session.""" @@ -159,6 +163,9 @@ class EvalCase(EvalBaseModel): ) """A list of rubrics that are applicable to all the invocations in the conversation of this eval case.""" + final_session_state: Optional[SessionState] = Field(default_factory=dict) + """The expected final session state at the end of the conversation.""" + @model_validator(mode="after") def ensure_conversation_xor_conversation_scenario(self) -> EvalCase: if (self.conversation is None) == (self.conversation_scenario is None): From b8a2b6c57080ae29d7a02df7d9fcc2f961d422d2 Mon Sep 17 00:00:00 2001 From: Kevin Qian Date: Thu, 30 Oct 2025 14:26:07 -0700 Subject: [PATCH 249/303] fix: include delimiter when matching events from parent nodes in content processor Previously we only do a simple prefix string matching, thus `agent_00` will match with `agent_0` With this new change, we either check directly equality, or must expect seeing `agent_0.`. See added test for branches we now match / skip. TBF `.` is also not a perfect delimiter (I would imagine users might put dot in agent names). We might consider a follow up that bans such agent names. Tested with script in the linked issue (I updated prompt so we see which agent they see from): Before: ``` [agent_8]: 73 [agent_0]: 97 [agent_1]: 73 [agent_5]: 97 [agent_4]: 73 [agent_2]: 73 [agent_3]: 73 [agent_9]: 93 [agent_6]: 73 [agent_7]: 1 [agent_70]: 1 (agent_7) [agent_20]: 73 (agent_2) [agent_30]: 73 (agent_3) [agent_00]: 97 (agent_0) [agent_40]: 73 (agent_4) [agent_80]: 73 (agent_8) [agent_50]: 97 (agent_5) [agent_90]: 93 (agent_9) [agent_10]: 73 (agent_1) [agent_60]: 73 (agent_6) ``` After: ``` [agent_9]: 73 [agent_6]: 73 [agent_2]: 73 [agent_7]: 93 [agent_4]: 73 [agent_1]: 73 [agent_3]: 73 [agent_5]: 97 [agent_0]: 73 [agent_8]: 87 [agent_50]: 0 [agent_80]: 0 [agent_10]: 0 [agent_90]: 0 [agent_30]: 0 [agent_20]: 0 [agent_60]: 0 [agent_00]: 0 [agent_40]: 0 [agent_70]: 0 ``` Closes #2948 Co-authored-by: Kevin Qian PiperOrigin-RevId: 826187198 --- src/google/adk/flows/llm_flows/contents.py | 7 ++++++- .../flows/llm_flows/test_contents_branch.py | 12 ++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/google/adk/flows/llm_flows/contents.py b/src/google/adk/flows/llm_flows/contents.py index 899f819ae3..da4cee945f 100644 --- a/src/google/adk/flows/llm_flows/contents.py +++ b/src/google/adk/flows/llm_flows/contents.py @@ -594,7 +594,12 @@ def _is_event_belongs_to_branch( """ if not invocation_branch or not event.branch: return True - return invocation_branch.startswith(event.branch) + # We use dot to delimit branch nodes. To avoid simple prefix match + # (e.g. agent_0 unexpectedly matching agent_00), require either perfect branch + # match, or match prefix with an additional explicit '.' + return invocation_branch == event.branch or invocation_branch.startswith( + f'{event.branch}.' + ) def _is_function_call_event(event: Event, function_name: str) -> bool: diff --git a/tests/unittests/flows/llm_flows/test_contents_branch.py b/tests/unittests/flows/llm_flows/test_contents_branch.py index 736909fb39..2347354127 100644 --- a/tests/unittests/flows/llm_flows/test_contents_branch.py +++ b/tests/unittests/flows/llm_flows/test_contents_branch.py @@ -58,6 +58,18 @@ async def test_branch_filtering_child_sees_parent(): content=types.ModelContent("Child agent response"), branch="parent_agent.child_agent", # Current branch - should be included ), + Event( + invocation_id="inv4", + author="child_agent", + content=types.ModelContent("Excluded response 1"), + branch="parent_agent.child_agent000", # Prefix match BUT not itself/ancestor - should be excluded + ), + Event( + invocation_id="inv5", + author="child_agent", + content=types.ModelContent("Excluded response 2"), + branch="parent_agent.child", # Prefix match BUT not itself/ancestor - should be excluded + ), ] invocation_context.session.events = events From 5cb35db921bf86b5ad0012046bd19fa7cc1e6abb Mon Sep 17 00:00:00 2001 From: Ankur Sharma Date: Thu, 30 Oct 2025 15:07:39 -0700 Subject: [PATCH 250/303] chore: Avoid rendering empty columns as part of detailed results rendering of eval results It is common for expected response and expected tool calls column to be empty for user simulated conversations. So, we don't render those. Co-authored-by: Ankur Sharma PiperOrigin-RevId: 826202867 --- src/google/adk/cli/cli_eval.py | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/google/adk/cli/cli_eval.py b/src/google/adk/cli/cli_eval.py index c8eda6f4e9..bc472e0907 100644 --- a/src/google/adk/cli/cli_eval.py +++ b/src/google/adk/cli/cli_eval.py @@ -214,14 +214,16 @@ def pretty_print_eval_result(eval_result: EvalCaseResult): expected_invocation = per_invocation_result.expected_invocation row_data = { "prompt": _convert_content_to_text(actual_invocation.user_content), - "expected_response": _convert_content_to_text( - expected_invocation.final_response if expected_invocation else None + "expected_response": ( + _convert_content_to_text(expected_invocation.final_response) + if expected_invocation + else None ), "actual_response": _convert_content_to_text( actual_invocation.final_response ), - "expected_tool_calls": _convert_tool_calls_to_text( - expected_invocation.intermediate_data + "expected_tool_calls": ( + _convert_tool_calls_to_text(expected_invocation.intermediate_data) if expected_invocation else None ), @@ -252,11 +254,23 @@ def pretty_print_eval_result(eval_result: EvalCaseResult): ) click.echo("Invocation Details:") df = pd.DataFrame(data) + + # Identify columns where ALL values are exactly None + columns_to_keep = [] for col in df.columns: - if df[col].dtype == "object": - df[col] = df[col].str.wrap(40) - click.echo(tabulate(df, headers="keys", tablefmt="grid")) - click.echo("\n\n") # Few empty lines for visual clarity + # Check if all elements in the column are NOT None + if not df[col].apply(lambda x: x is None).all(): + columns_to_keep.append(col) + + # Select only the columns to keep + df_result = df[columns_to_keep] + + for col in df_result.columns: + if df_result[col].dtype == "object": + df_result[col] = df_result[col].str.wrap(40) + + click.echo(tabulate(df_result, headers="keys", tablefmt="grid")) + click.echo("\n\n") # Few empty lines for visual clarity def get_eval_sets_manager( From dea7668d1a0c457260b5a0d763a48346bcdebe97 Mon Sep 17 00:00:00 2001 From: Ayush Agrawal Date: Thu, 30 Oct 2025 15:21:12 -0700 Subject: [PATCH 251/303] chore: Allow google-cloud-storage >=3.0.0 Fixes #3012 Co-authored-by: Ayush Agrawal PiperOrigin-RevId: 826207388 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 72b3a6e748..0ba44779e3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ dependencies = [ "google-cloud-secret-manager>=2.22.0, <3.0.0", # Fetching secrets in RestAPI Tool "google-cloud-spanner>=3.56.0, <4.0.0", # For Spanner database "google-cloud-speech>=2.30.0, <3.0.0", # For Audio Transcription - "google-cloud-storage>=2.18.0, <3.0.0", # For GCS Artifact service + "google-cloud-storage>=3.0.0, <4.0.0", # For GCS Artifact service "google-genai>=1.45.0, <2.0.0", # Google GenAI SDK "graphviz>=0.20.2, <1.0.0", # Graphviz for graph rendering "mcp>=1.8.0, <2.0.0;python_version>='3.10'", # For MCP Toolset From 546c2a68165f54e694664d5b6b6740566301782b Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Thu, 30 Oct 2025 16:13:09 -0700 Subject: [PATCH 252/303] feat: Remove custom polling logic for Vertex AI Session Service since LRO polling is supported in express mode PiperOrigin-RevId: 826226731 --- .../adk/sessions/vertex_ai_session_service.py | 56 +++---------------- src/google/adk/utils/vertex_ai_utils.py | 12 ---- tests/unittests/utils/test_vertex_ai_utils.py | 26 --------- 3 files changed, 8 insertions(+), 86 deletions(-) diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index 8025e79e65..e0651f0ebb 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -35,7 +35,6 @@ from ..events.event import Event from ..events.event_actions import EventActions from ..utils.vertex_ai_utils import get_express_mode_api_key -from ..utils.vertex_ai_utils import is_vertex_express_mode from .base_session_service import BaseSessionService from .base_session_service import GetSessionConfig from .base_session_service import ListSessionsResponse @@ -115,53 +114,14 @@ async def create_session( config = {'session_state': state} if state else {} config.update(kwargs) - if is_vertex_express_mode( - self._project, self._location, self._express_mode_api_key - ): - config['wait_for_completion'] = False - api_response = await api_client.aio.agent_engines.sessions.create( - name=f'reasoningEngines/{reasoning_engine_id}', - user_id=user_id, - config=config, - ) - logger.info('Create session response received.') - session_id = api_response.name.split('/')[-3] - - # Express mode doesn't support LRO, so we need to poll - # the session resource. - # TODO: remove this once LRO polling is supported in Express mode. - @retry( - stop=stop_after_attempt(6), - wait=wait_exponential(multiplier=1, min=1, max=3), - retry=retry_if_result(lambda response: not response), - reraise=True, - ) - async def _poll_session_resource(): - try: - return await api_client.aio.agent_engines.sessions.get( - name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}' - ) - except ClientError: - logger.info('Polling session resource') - return None - - try: - await _poll_session_resource() - except Exception as exc: - raise ValueError('Failed to create session.') from exc - - get_session_response = await api_client.aio.agent_engines.sessions.get( - name=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}' - ) - else: - api_response = await api_client.aio.agent_engines.sessions.create( - name=f'reasoningEngines/{reasoning_engine_id}', - user_id=user_id, - config=config, - ) - logger.debug('Create session response: %s', api_response) - get_session_response = api_response.response - session_id = get_session_response.name.split('/')[-1] + api_response = await api_client.aio.agent_engines.sessions.create( + name=f'reasoningEngines/{reasoning_engine_id}', + user_id=user_id, + config=config, + ) + logger.debug('Create session response: %s', api_response) + get_session_response = api_response.response + session_id = get_session_response.name.split('/')[-1] session = Session( app_name=app_name, diff --git a/src/google/adk/utils/vertex_ai_utils.py b/src/google/adk/utils/vertex_ai_utils.py index 55969dd1d5..f3973ff425 100644 --- a/src/google/adk/utils/vertex_ai_utils.py +++ b/src/google/adk/utils/vertex_ai_utils.py @@ -26,18 +26,6 @@ from ..utils.env_utils import is_env_enabled -def is_vertex_express_mode( - project: Optional[str], location: Optional[str], api_key: Optional[str] -) -> bool: - """Check if Vertex AI and API key are both enabled replacing project and location, meaning the user is using the Vertex Express Mode.""" - return ( - is_env_enabled('GOOGLE_GENAI_USE_VERTEXAI') - and api_key is not None - and project is None - and location is None - ) - - def get_express_mode_api_key( project: Optional[str], location: Optional[str], diff --git a/tests/unittests/utils/test_vertex_ai_utils.py b/tests/unittests/utils/test_vertex_ai_utils.py index 644a36c752..6a9d1fceb2 100644 --- a/tests/unittests/utils/test_vertex_ai_utils.py +++ b/tests/unittests/utils/test_vertex_ai_utils.py @@ -20,32 +20,6 @@ import pytest -@pytest.mark.parametrize( - ('use_vertexai_env', 'project', 'location', 'api_key', 'expected'), - [ - ('true', None, None, 'test-key', True), - ('1', None, None, 'test-key', True), - ('false', None, None, 'test-key', False), - ('0', None, None, 'test-key', False), - (None, None, None, 'test-key', False), - ('true', 'test-project', None, 'test-key', False), - ('true', None, 'test-location', 'test-key', False), - ('true', None, None, None, False), - ], -) -def test_is_vertex_express_mode( - use_vertexai_env, project, location, api_key, expected -): - env_vars = {} - if use_vertexai_env: - env_vars['GOOGLE_GENAI_USE_VERTEXAI'] = use_vertexai_env - with mock.patch.dict('os.environ', env_vars, clear=True): - assert ( - vertex_ai_utils.is_vertex_express_mode(project, location, api_key) - == expected - ) - - def test_get_express_mode_api_key_value_error(): with pytest.raises(ValueError) as excinfo: vertex_ai_utils.get_express_mode_api_key( From a2c6a8a85cf4f556e9dacfe46cf384d13d964208 Mon Sep 17 00:00:00 2001 From: Eliza Huang Date: Fri, 31 Oct 2025 09:38:19 -0700 Subject: [PATCH 253/303] feat: Expose the Python code run by the code interpreter in the logs Co-authored-by: Eliza Huang PiperOrigin-RevId: 826521391 --- .../agent_engine_sandbox_code_executor.py | 1 + .../code_executors/container_code_executor.py | 1 + .../adk/code_executors/gke_code_executor.py | 1 + .../unsafe_local_code_executor.py | 4 ++ .../code_executors/vertex_ai_code_executor.py | 5 ++- .../adk/flows/llm_flows/_code_execution.py | 5 +++ .../flows/llm_flows/test_code_execution.py | 43 +++++++++++++++++++ 7 files changed, 59 insertions(+), 1 deletion(-) diff --git a/src/google/adk/code_executors/agent_engine_sandbox_code_executor.py b/src/google/adk/code_executors/agent_engine_sandbox_code_executor.py index cfaee8d253..135c56bcbc 100644 --- a/src/google/adk/code_executors/agent_engine_sandbox_code_executor.py +++ b/src/google/adk/code_executors/agent_engine_sandbox_code_executor.py @@ -125,6 +125,7 @@ def execute_code( input_data=input_data, ) ) + logger.debug('Executed code:\n```\n%s\n```', code_execution_input.code) saved_files = [] stdout = '' stderr = '' diff --git a/src/google/adk/code_executors/container_code_executor.py b/src/google/adk/code_executors/container_code_executor.py index d12fee13d5..c2554954fc 100644 --- a/src/google/adk/code_executors/container_code_executor.py +++ b/src/google/adk/code_executors/container_code_executor.py @@ -131,6 +131,7 @@ def execute_code( ['python3', '-c', code_execution_input.code], demux=True, ) + logger.debug('Executed code:\n```\n%s\n```', code_execution_input.code) if exec_result.output and exec_result.output[0]: output = exec_result.output[0].decode('utf-8') diff --git a/src/google/adk/code_executors/gke_code_executor.py b/src/google/adk/code_executors/gke_code_executor.py index c9ba4e9ce5..d07253c267 100644 --- a/src/google/adk/code_executors/gke_code_executor.py +++ b/src/google/adk/code_executors/gke_code_executor.py @@ -162,6 +162,7 @@ def execute_code( logger.info( f"Submitted Job '{job_name}' to namespace '{self.namespace}'." ) + logger.debug("Executing code:\n```\n%s\n```", code_execution_input.code) return self._watch_job_completion(job_name) except ApiException as e: diff --git a/src/google/adk/code_executors/unsafe_local_code_executor.py b/src/google/adk/code_executors/unsafe_local_code_executor.py index 416bf15446..6dd2ae9d8c 100644 --- a/src/google/adk/code_executors/unsafe_local_code_executor.py +++ b/src/google/adk/code_executors/unsafe_local_code_executor.py @@ -16,6 +16,7 @@ from contextlib import redirect_stdout import io +import logging import re from typing import Any @@ -27,6 +28,8 @@ from .code_execution_utils import CodeExecutionInput from .code_execution_utils import CodeExecutionResult +logger = logging.getLogger('google_adk.' + __name__) + def _prepare_globals(code: str, globals_: dict[str, Any]) -> None: """Prepare globals for code execution, injecting __name__ if needed.""" @@ -60,6 +63,7 @@ def execute_code( invocation_context: InvocationContext, code_execution_input: CodeExecutionInput, ) -> CodeExecutionResult: + logger.debug('Executing code:\n```\n%s\n```', code_execution_input.code) # Execute the code. output = '' error = '' diff --git a/src/google/adk/code_executors/vertex_ai_code_executor.py b/src/google/adk/code_executors/vertex_ai_code_executor.py index b1dd58ce7b..68c3252665 100644 --- a/src/google/adk/code_executors/vertex_ai_code_executor.py +++ b/src/google/adk/code_executors/vertex_ai_code_executor.py @@ -152,6 +152,7 @@ def execute_code( code_execution_input.input_files, code_execution_input.execution_id, ) + logger.debug('Executed code:\n```\n%s\n```', code_execution_input.code) # Save output file as artifacts. saved_files = [] @@ -187,11 +188,13 @@ def execute_code( ) # Collect the final result. - return CodeExecutionResult( + result = CodeExecutionResult( stdout=code_execution_result.get('execution_result', ''), stderr=code_execution_result.get('execution_error', ''), output_files=saved_files, ) + logger.debug('Code execution result: %s', result) + return result def _execute_code_interpreter( self, diff --git a/src/google/adk/flows/llm_flows/_code_execution.py b/src/google/adk/flows/llm_flows/_code_execution.py index 02b80494c7..a7cc9c14a3 100644 --- a/src/google/adk/flows/llm_flows/_code_execution.py +++ b/src/google/adk/flows/llm_flows/_code_execution.py @@ -20,6 +20,7 @@ import copy import dataclasses import datetime +import logging import os import re from typing import AsyncGenerator @@ -47,6 +48,8 @@ if TYPE_CHECKING: from ...models.llm_request import LlmRequest +logger = logging.getLogger('google_adk.' + __name__) + @dataclasses.dataclass class DataFileUtil: @@ -245,6 +248,7 @@ async def _run_pre_processor( ), ), ) + logger.debug('Executed code:\n```\n%s\n```', code_str) # Update the processing results to code executor context. code_executor_context.update_code_execution_result( invocation_context.invocation_id, @@ -352,6 +356,7 @@ async def _run_post_processor( ), ), ) + logger.debug('Executed code:\n```\n%s\n```', code_str) code_executor_context.update_code_execution_result( invocation_context.invocation_id, code_str, diff --git a/tests/unittests/flows/llm_flows/test_code_execution.py b/tests/unittests/flows/llm_flows/test_code_execution.py index 9277c6bd74..f28726e41b 100644 --- a/tests/unittests/flows/llm_flows/test_code_execution.py +++ b/tests/unittests/flows/llm_flows/test_code_execution.py @@ -20,7 +20,9 @@ from unittest.mock import patch from google.adk.agents.llm_agent import Agent +from google.adk.code_executors.base_code_executor import BaseCodeExecutor from google.adk.code_executors.built_in_code_executor import BuiltInCodeExecutor +from google.adk.code_executors.code_execution_utils import CodeExecutionResult from google.adk.flows.llm_flows._code_execution import response_processor from google.adk.models.llm_response import LlmResponse from google.genai import types @@ -105,3 +107,44 @@ async def test_builtin_code_executor_image_artifact_creation(mock_datetime): == f'Saved as artifact: {expected_filename2}. ' ) assert not llm_response.content.parts[2].inline_data + + +@pytest.mark.asyncio +@patch('google.adk.flows.llm_flows._code_execution.logger') +async def test_logs_executed_code(mock_logger): + """Test that the response processor logs the code it executes.""" + mock_code_executor = MagicMock(spec=BaseCodeExecutor) + mock_code_executor.code_block_delimiters = [('```python\n', '\n```')] + mock_code_executor.error_retry_attempts = 2 + mock_code_executor.stateful = False + mock_code_executor.execute_code.return_value = CodeExecutionResult( + stdout='hello' + ) + + agent = Agent(name='test_agent', code_executor=mock_code_executor) + invocation_context = await testing_utils.create_invocation_context( + agent=agent, user_content='test message' + ) + invocation_context.artifact_service = MagicMock() + invocation_context.artifact_service.save_artifact = AsyncMock() + + llm_response = LlmResponse( + content=types.Content( + parts=[ + types.Part(text='Here is some code:'), + types.Part(text='```python\nprint("hello")\n```'), + ] + ) + ) + + _ = [ + event + async for event in response_processor.run_async( + invocation_context, llm_response + ) + ] + + mock_code_executor.execute_code.assert_called_once() + mock_logger.debug.assert_called_once_with( + 'Executed code:\n```\n%s\n```', 'print("hello")' + ) From 338c3c89c6bce7f3406f729013cedcd78b809a56 Mon Sep 17 00:00:00 2001 From: Dongyu Jia Date: Fri, 31 Oct 2025 09:47:17 -0700 Subject: [PATCH 254/303] fix: Add example and fix for loading and upgrading old ADK session databases This change introduces a sample (`migration_session_db`) demonstrating how to load a session database created with an older version of ADK (e.g., 1.15.0) and make it compatible with the current version. It includes a script (`db_migration.sh`) to alter the SQLite schema automatically. to_event is updated to handle potential discrepancies in pickled `EventActions` by using `model_copy` to ensure compatibility with the latest `EventActions` model definition. Related to #3272 #3197, Closes #3197 #3272 Co-authored-by: Dongyu Jia PiperOrigin-RevId: 826524368 --- .../samples/migrate_session_db/README.md | 55 +++++++ .../samples/migrate_session_db/__init__.py | 16 ++ .../samples/migrate_session_db/agent.py | 89 +++++++++++ .../migrate_session_db/dnd_sessions.db | Bin 0 -> 49152 bytes .../samples/migrate_session_db/main.py | 79 ++++++++++ .../sample-output/alembic.ini | 147 ++++++++++++++++++ .../sample-output/alembic/README | 1 + .../sample-output/alembic/env.py | 90 +++++++++++ .../sample-output/alembic/script.py.mako | 28 ++++ .../samples/migrate_session_db/sessions.db | Bin 0 -> 49152 bytes scripts/db_migration.sh | 144 +++++++++++++++++ .../adk/sessions/database_session_service.py | 5 +- 12 files changed, 653 insertions(+), 1 deletion(-) create mode 100644 contributing/samples/migrate_session_db/README.md create mode 100644 contributing/samples/migrate_session_db/__init__.py create mode 100644 contributing/samples/migrate_session_db/agent.py create mode 100644 contributing/samples/migrate_session_db/dnd_sessions.db create mode 100644 contributing/samples/migrate_session_db/main.py create mode 100644 contributing/samples/migrate_session_db/sample-output/alembic.ini create mode 100644 contributing/samples/migrate_session_db/sample-output/alembic/README create mode 100644 contributing/samples/migrate_session_db/sample-output/alembic/env.py create mode 100644 contributing/samples/migrate_session_db/sample-output/alembic/script.py.mako create mode 100644 contributing/samples/migrate_session_db/sessions.db create mode 100755 scripts/db_migration.sh diff --git a/contributing/samples/migrate_session_db/README.md b/contributing/samples/migrate_session_db/README.md new file mode 100644 index 0000000000..6f1fc1aa11 --- /dev/null +++ b/contributing/samples/migrate_session_db/README.md @@ -0,0 +1,55 @@ +# Loading and Upgrading Old Session Databases + +This example demonstrates how to upgrade a session database created with an older version of ADK to be compatible with the current version. + +## Sample Database + +This sample includes `dnd_sessions.db`, a database created with ADK v1.15.0. The following steps show how to run into a schema error and then resolve it using the migration script. + +## 1. Reproduce the Error + +First, copy the old database to `sessions.db`, which is the file the sample application expects. + +```bash +cp dnd_sessions.db sessions.db +python main.py +``` + +Running the application against the old database will fail with a schema mismatch error, as the `events` table is missing a column required by newer ADK versions: + +``` +sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: events.usage_metadata +``` + +## 2. Upgrade the Database Schema + +ADK provides a migration script to update the database schema. Run the following command to download and execute it. + +```bash +# Clean up the previous run before executing the migration +cp dnd_sessions.db sessions.db + +# Download and run the migration script +curl -fsSL https://raw.githubusercontent.com/google/adk-python/main/scripts/db_migration.sh | sh -s -- "sqlite:///%(here)s/sessions.db" "google.adk.sessions.database_session_service" +``` + +This script uses `alembic` to compare the existing schema against the current model definition and automatically generates and applies the necessary migrations. + +**Note on generated files:** +* The script will create an `alembic.ini` file and an `alembic/` directory. You must delete these before re-running the script. +* The `sample-output` directory in this example contains a reference of the generated files for your inspection. +* The `%(here)s` variable in the database URL is an `alembic` placeholder that refers to the current directory. + +## 3. Run the Agent Successfully + +With the database schema updated, the application can now load the session correctly. + +```bash +python main.py +``` + +You should see output indicating that the old session was successfully loaded. + +## Limitations + +The migration script is designed to add new columns that have been introduced in newer ADK versions. It does not handle more complex schema changes, such as modifying a column's data type (e.g., from `int` to `string`) or altering the internal structure of stored data. \ No newline at end of file diff --git a/contributing/samples/migrate_session_db/__init__.py b/contributing/samples/migrate_session_db/__init__.py new file mode 100644 index 0000000000..7d5bb0b1c6 --- /dev/null +++ b/contributing/samples/migrate_session_db/__init__.py @@ -0,0 +1,16 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from . import agent diff --git a/contributing/samples/migrate_session_db/agent.py b/contributing/samples/migrate_session_db/agent.py new file mode 100644 index 0000000000..6caeeb1c66 --- /dev/null +++ b/contributing/samples/migrate_session_db/agent.py @@ -0,0 +1,89 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import random + +from google.adk.agents.llm_agent import Agent + + +def roll_die(sides: int) -> int: + """Roll a die and return the rolled result. + + Args: + sides: The integer number of sides the die has. + + Returns: + An integer of the result of rolling the die. + """ + return random.randint(1, sides) + + +async def check_prime(nums: list[int]) -> str: + """Check if a given list of numbers are prime. + + Args: + nums: The list of numbers to check. + + Returns: + A str indicating which number is prime. + """ + primes = set() + for number in nums: + number = int(number) + if number <= 1: + continue + is_prime = True + for i in range(2, int(number**0.5) + 1): + if number % i == 0: + is_prime = False + break + if is_prime: + primes.add(number) + return ( + "No prime numbers found." + if not primes + else f"{', '.join(str(num) for num in primes)} are prime numbers." + ) + + +root_agent = Agent( + model="gemini-2.0-flash", + name="migrate_session_db_agent", + description=( + "hello world agent that can roll a dice of 8 sides and check prime" + " numbers." + ), + instruction=""" + You roll dice and answer questions about the outcome of the dice rolls. + You can roll dice of different sizes. + You can use multiple tools in parallel by calling functions in parallel(in one request and in one round). + It is ok to discuss previous dice roles, and comment on the dice rolls. + When you are asked to roll a die, you must call the roll_die tool with the number of sides. Be sure to pass in an integer. Do not pass in a string. + You should never roll a die on your own. + When checking prime numbers, call the check_prime tool with a list of integers. Be sure to pass in a list of integers. You should never pass in a string. + You should not check prime numbers before calling the tool. + When you are asked to roll a die and check prime numbers, you should always make the following two function calls: + 1. You should first call the roll_die tool to get a roll. Wait for the function response before calling the check_prime tool. + 2. After you get the function response from roll_die tool, you should call the check_prime tool with the roll_die result. + 2.1 If user asks you to check primes based on previous rolls, make sure you include the previous rolls in the list. + 3. When you respond, you must include the roll_die result from step 1. + You should always perform the previous 3 steps when asking for a roll and checking prime numbers. + You should not rely on the previous history on prime results. + """, + tools=[ + roll_die, + check_prime, + ], +) diff --git a/contributing/samples/migrate_session_db/dnd_sessions.db b/contributing/samples/migrate_session_db/dnd_sessions.db new file mode 100644 index 0000000000000000000000000000000000000000..57e667466f90ddcc965b3713922202c588c61c32 GIT binary patch literal 49152 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 literal 0 HcmV?d00001 diff --git a/contributing/samples/migrate_session_db/main.py b/contributing/samples/migrate_session_db/main.py new file mode 100644 index 0000000000..10d2da0af5 --- /dev/null +++ b/contributing/samples/migrate_session_db/main.py @@ -0,0 +1,79 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import asyncio +import time + +import agent +from dotenv import load_dotenv +from google.adk.artifacts.in_memory_artifact_service import InMemoryArtifactService +from google.adk.cli.utils import logs +from google.adk.runners import Runner +from google.adk.sessions.database_session_service import DatabaseSessionService +from google.adk.sessions.session import Session +from google.genai import types + +load_dotenv(override=True) +logs.log_to_tmp_folder() + + +async def main(): + app_name = 'migrate_session_db_app' + user_id_1 = 'user1' + session_service = DatabaseSessionService('sqlite:///./sessions.db') + artifact_service = InMemoryArtifactService() + runner = Runner( + app_name=app_name, + agent=agent.root_agent, + artifact_service=artifact_service, + session_service=session_service, + ) + session_11 = await session_service.get_session( + app_name=app_name, + user_id=user_id_1, + session_id='aee03f34-32ef-432b-b1bb-e66a3a79dd5b', + ) + print('Session 11 loaded:', session_11.id) + + async def run_prompt(session: Session, new_message: str): + content = types.Content( + role='user', parts=[types.Part.from_text(text=new_message)] + ) + print('** User says:', content.model_dump(exclude_none=True)) + async for event in runner.run_async( + user_id=user_id_1, + session_id=session.id, + new_message=content, + ): + if event.content.parts and event.content.parts[0].text: + print(f'** {event.author}: {event.content.parts[0].text}') + + start_time = time.time() + print('Start time:', start_time) + print('------------------------------------') + await run_prompt(session_11, 'Hi, introduce yourself.') + await run_prompt( + session_11, 'Roll a die with 100 sides and check if it is prime' + ) + await run_prompt(session_11, 'Roll it again.') + await run_prompt(session_11, 'What numbers did I got?') + end_time = time.time() + print('------------------------------------') + print('End time:', end_time) + print('Total time:', end_time - start_time) + + +if __name__ == '__main__': + asyncio.run(main()) diff --git a/contributing/samples/migrate_session_db/sample-output/alembic.ini b/contributing/samples/migrate_session_db/sample-output/alembic.ini new file mode 100644 index 0000000000..6405320948 --- /dev/null +++ b/contributing/samples/migrate_session_db/sample-output/alembic.ini @@ -0,0 +1,147 @@ +# A generic, single database configuration. + +[alembic] +# path to migration scripts. +# this is typically a path given in POSIX (e.g. forward slashes) +# format, relative to the token %(here)s which refers to the location of this +# ini file +script_location = %(here)s/alembic + +# template used to generate migration file names; The default value is %%(rev)s_%%(slug)s +# Uncomment the line below if you want the files to be prepended with date and time +# see https://alembic.sqlalchemy.org/en/latest/tutorial.html#editing-the-ini-file +# for all available tokens +# file_template = %%(year)d_%%(month).2d_%%(day).2d_%%(hour).2d%%(minute).2d-%%(rev)s_%%(slug)s + +# sys.path path, will be prepended to sys.path if present. +# defaults to the current working directory. for multiple paths, the path separator +# is defined by "path_separator" below. +prepend_sys_path = . + + +# timezone to use when rendering the date within the migration file +# as well as the filename. +# If specified, requires the python>=3.9 or backports.zoneinfo library and tzdata library. +# Any required deps can installed by adding `alembic[tz]` to the pip requirements +# string value is passed to ZoneInfo() +# leave blank for localtime +# timezone = + +# max length of characters to apply to the "slug" field +# truncate_slug_length = 40 + +# set to 'true' to run the environment during +# the 'revision' command, regardless of autogenerate +# revision_environment = false + +# set to 'true' to allow .pyc and .pyo files without +# a source .py file to be detected as revisions in the +# versions/ directory +# sourceless = false + +# version location specification; This defaults +# to /versions. When using multiple version +# directories, initial revisions must be specified with --version-path. +# The path separator used here should be the separator specified by "path_separator" +# below. +# version_locations = %(here)s/bar:%(here)s/bat:%(here)s/alembic/versions + +# path_separator; This indicates what character is used to split lists of file +# paths, including version_locations and prepend_sys_path within configparser +# files such as alembic.ini. +# The default rendered in new alembic.ini files is "os", which uses os.pathsep +# to provide os-dependent path splitting. +# +# Note that in order to support legacy alembic.ini files, this default does NOT +# take place if path_separator is not present in alembic.ini. If this +# option is omitted entirely, fallback logic is as follows: +# +# 1. Parsing of the version_locations option falls back to using the legacy +# "version_path_separator" key, which if absent then falls back to the legacy +# behavior of splitting on spaces and/or commas. +# 2. Parsing of the prepend_sys_path option falls back to the legacy +# behavior of splitting on spaces, commas, or colons. +# +# Valid values for path_separator are: +# +# path_separator = : +# path_separator = ; +# path_separator = space +# path_separator = newline +# +# Use os.pathsep. Default configuration used for new projects. +path_separator = os + +# set to 'true' to search source files recursively +# in each "version_locations" directory +# new in Alembic version 1.10 +# recursive_version_locations = false + +# the output encoding used when revision files +# are written from script.py.mako +# output_encoding = utf-8 + +# database URL. This is consumed by the user-maintained env.py script only. +# other means of configuring database URLs may be customized within the env.py +# file. +sqlalchemy.url = sqlite:///%(here)s/sessions.db + + +[post_write_hooks] +# post_write_hooks defines scripts or Python functions that are run +# on newly generated revision scripts. See the documentation for further +# detail and examples + +# format using "black" - use the console_scripts runner, against the "black" entrypoint +# hooks = black +# black.type = console_scripts +# black.entrypoint = black +# black.options = -l 79 REVISION_SCRIPT_FILENAME + +# lint with attempts to fix using "ruff" - use the module runner, against the "ruff" module +# hooks = ruff +# ruff.type = module +# ruff.module = ruff +# ruff.options = check --fix REVISION_SCRIPT_FILENAME + +# Alternatively, use the exec runner to execute a binary found on your PATH +# hooks = ruff +# ruff.type = exec +# ruff.executable = ruff +# ruff.options = check --fix REVISION_SCRIPT_FILENAME + +# Logging configuration. This is also consumed by the user-maintained +# env.py script only. +[loggers] +keys = root,sqlalchemy,alembic + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARNING +handlers = console +qualname = + +[logger_sqlalchemy] +level = WARNING +handlers = +qualname = sqlalchemy.engine + +[logger_alembic] +level = INFO +handlers = +qualname = alembic + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(levelname)-5.5s [%(name)s] %(message)s +datefmt = %H:%M:%S diff --git a/contributing/samples/migrate_session_db/sample-output/alembic/README b/contributing/samples/migrate_session_db/sample-output/alembic/README new file mode 100644 index 0000000000..98e4f9c44e --- /dev/null +++ b/contributing/samples/migrate_session_db/sample-output/alembic/README @@ -0,0 +1 @@ +Generic single-database configuration. \ No newline at end of file diff --git a/contributing/samples/migrate_session_db/sample-output/alembic/env.py b/contributing/samples/migrate_session_db/sample-output/alembic/env.py new file mode 100644 index 0000000000..4bc5c948ea --- /dev/null +++ b/contributing/samples/migrate_session_db/sample-output/alembic/env.py @@ -0,0 +1,90 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from logging.config import fileConfig + +from alembic import context +from sqlalchemy import engine_from_config +from sqlalchemy import pool + +# this is the Alembic Config object, which provides +# access to the values within the .ini file in use. +config = context.config + +# Interpret the config file for Python logging. +# This line sets up loggers basically. +if config.config_file_name is not None: + fileConfig(config.config_file_name) + +# add your model's MetaData object here +# for 'autogenerate' support +from google.adk.sessions.database_session_service import Base + +# target_metadata = mymodel.Base.metadata +target_metadata = Base.metadata + +# other values from the config, defined by the needs of env.py, +# can be acquired: +# my_important_option = config.get_main_option("my_important_option") +# ... etc. + + +def run_migrations_offline() -> None: + """Run migrations in 'offline' mode. + + This configures the context with just a URL + and not an Engine, though an Engine is acceptable + here as well. By skipping the Engine creation + we don't even need a DBAPI to be available. + + Calls to context.execute() here emit the given string to the + script output. + + """ + url = config.get_main_option("sqlalchemy.url") + context.configure( + url=url, + target_metadata=target_metadata, + literal_binds=True, + dialect_opts={"paramstyle": "named"}, + ) + + with context.begin_transaction(): + context.run_migrations() + + +def run_migrations_online() -> None: + """Run migrations in 'online' mode. + + In this scenario we need to create an Engine + and associate a connection with the context. + + """ + connectable = engine_from_config( + config.get_section(config.config_ini_section, {}), + prefix="sqlalchemy.", + poolclass=pool.NullPool, + ) + + with connectable.connect() as connection: + context.configure(connection=connection, target_metadata=target_metadata) + + with context.begin_transaction(): + context.run_migrations() + + +if context.is_offline_mode(): + run_migrations_offline() +else: + run_migrations_online() diff --git a/contributing/samples/migrate_session_db/sample-output/alembic/script.py.mako b/contributing/samples/migrate_session_db/sample-output/alembic/script.py.mako new file mode 100644 index 0000000000..11016301e7 --- /dev/null +++ b/contributing/samples/migrate_session_db/sample-output/alembic/script.py.mako @@ -0,0 +1,28 @@ +"""${message} + +Revision ID: ${up_revision} +Revises: ${down_revision | comma,n} +Create Date: ${create_date} + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +${imports if imports else ""} + +# revision identifiers, used by Alembic. +revision: str = ${repr(up_revision)} +down_revision: Union[str, Sequence[str], None] = ${repr(down_revision)} +branch_labels: Union[str, Sequence[str], None] = ${repr(branch_labels)} +depends_on: Union[str, Sequence[str], None] = ${repr(depends_on)} + + +def upgrade() -> None: + """Upgrade schema.""" + ${upgrades if upgrades else "pass"} + + +def downgrade() -> None: + """Downgrade schema.""" + ${downgrades if downgrades else "pass"} diff --git a/contributing/samples/migrate_session_db/sessions.db b/contributing/samples/migrate_session_db/sessions.db new file mode 100644 index 0000000000000000000000000000000000000000..57e667466f90ddcc965b3713922202c588c61c32 GIT binary patch literal 49152 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 literal 0 HcmV?d00001 diff --git a/scripts/db_migration.sh b/scripts/db_migration.sh new file mode 100755 index 0000000000..6de40e31e5 --- /dev/null +++ b/scripts/db_migration.sh @@ -0,0 +1,144 @@ +#!/bin/bash + + +# This script is to update sessions DB that is created in previous ADK version, +# to schema that current ADK version use. The sample usage is in the samples/migrate_session_db. +# +# Usage: +# ./db_migration.sh "sqlite:///%(here)s/sessions.db" "google.adk.sessions.database_session_service" +# ./db_migration.sh "postgresql://user:pass@localhost/mydb" "google.adk.sessions.database_session_service" +# First argument is the sessions DB url. +# Second argument is the model import path. + +# --- Configuration --- +ALEMBIC_DIR="alembic" +INI_FILE="alembic.ini" +ENV_FILE="${ALEMBIC_DIR}/env.py" + +# --- Functions --- +print_usage() { + echo "Usage: $0 " + echo " : The full SQLAlchemy connection string." + echo " : The Python import path to your models (e.g., my_project.models)" + echo "" + echo "Example:" + echo " $0 \"sqlite:///%(here)s/sessions.db\" \"google.adk.sessions.database_session_service\"" +} + +# --- Argument Validation --- +if [ "$#" -ne 2 ]; then + print_usage + exit 1 +fi + +DB_URL=$1 +MODEL_PATH=$2 + +echo "Setting up Alembic..." +echo " Database URL: ${DB_URL}" +echo " Model Path: ${MODEL_PATH}" +echo "" + +# --- Safety Check --- +if [ -f "$INI_FILE" ] || [ -d "$ALEMBIC_DIR" ]; then + echo "Error: 'alembic.ini' or 'alembic/' directory already exists." + echo "Please remove them before running this script." + exit 1 +fi + +# --- 1. Run alembic init --- +echo "Running 'alembic init ${ALEMBIC_DIR}'..." +alembic init ${ALEMBIC_DIR} +if [ $? -ne 0 ]; then + echo "Error: 'alembic init' failed. Is alembic installed?" + exit 1 +fi +echo "Initialization complete." +echo "" + +# --- 2. Set sqlalchemy.url in alembic.ini --- +echo "Configuring ${INI_FILE}..." +# Use a different delimiter (#) for sed to avoid escaping slashes in the URL +sed -i.bak "s#sqlalchemy.url = driver://user:pass@localhost/dbname#sqlalchemy.url = ${DB_URL}#" "${INI_FILE}" +if [ $? -ne 0 ]; then + echo "Error: Failed to set sqlalchemy.url in ${INI_FILE}." + exit 1 +fi +echo " Set sqlalchemy.url" + +# --- 3. Set target_metadata in alembic/env.py --- +echo "Configuring ${ENV_FILE}..." + +# Edit 1: Uncomment and replace the model import line +sed -i.bak "s/# from myapp import mymodel/from ${MODEL_PATH} import Base/" "${ENV_FILE}" +if [ $? -ne 0 ]; then + echo "Error: Failed to set model import in ${ENV_FILE}." + exit 1 +fi + +# Edit 2: Set the target_metadata to use the imported Base +sed -i.bak "s/target_metadata = None/target_metadata = Base.metadata/" "${ENV_FILE}" +if [ $? -ne 0 ]; then + echo "Error: Failed to set target_metadata in ${ENV_FILE}." + exit 1 +fi + +echo " Set target_metadata" +echo "" + +# --- 4. Clean up backup files --- +echo "Cleaning up backup files..." +rm "${INI_FILE}.bak" +rm "${ENV_FILE}.bak" + +# --- 5. Run alembic stamp head --- +echo "Running 'alembic stamp head'..." +alembic stamp head +if [ $? -ne 0 ]; then + echo "Error: 'alembic stamp head' failed." + exit 1 +fi +echo "stamping complete." +echo "" + +# --- 6. Run alembic upgrade --- +echo "Running 'alembic revision --autogenerate'..." +alembic revision --autogenerate -m "ADK session DB upgrade" +if [ $? -ne 0 ]; then + echo "Error: 'alembic revision' failed." + exit 1 +fi +echo "revision complete." +echo "" + +# --- 7. Add import statement to version files --- +echo "Adding import statement to version files..." +for f in ${ALEMBIC_DIR}/versions/*.py; do + if [ -f "$f" ]; then + # Check if the first line is already the import statement + FIRST_LINE=$(head -n 1 "$f") + IMPORT_STATEMENT="import ${MODEL_PATH}" + if [ "$FIRST_LINE" != "$IMPORT_STATEMENT" ]; then + echo "Adding import to $f" + sed -i.bak "1s|^|${IMPORT_STATEMENT}\n|" "$f" + rm "${f}.bak" + else + echo "Import already exists in $f" + fi + fi +done +echo "Import statements added." +echo "" + +# --- 8. Run alembic upgrade --- +echo "running 'alembic upgrade'..." +alembic upgrade head +if [ $? -ne 0 ]; then + echo "Error: 'alembic upgrade' failed. " + exit 1 +fi +echo "upgrade complete." +echo "" + +echo "---" +echo "✅ ADK session DB is Updated!" \ No newline at end of file diff --git a/src/google/adk/sessions/database_session_service.py b/src/google/adk/sessions/database_session_service.py index 948fcbf8cf..89502d53ff 100644 --- a/src/google/adk/sessions/database_session_service.py +++ b/src/google/adk/sessions/database_session_service.py @@ -55,6 +55,7 @@ from . import _session_util from ..errors.already_exists_error import AlreadyExistsError from ..events.event import Event +from ..events.event_actions import EventActions from .base_session_service import BaseSessionService from .base_session_service import GetSessionConfig from .base_session_service import ListSessionsResponse @@ -342,7 +343,9 @@ def to_event(self) -> Event: invocation_id=self.invocation_id, author=self.author, branch=self.branch, - actions=self.actions, + # This is needed as previous ADK version pickled actions might not have + # value defined in the current version of the EventActions model. + actions=EventActions().model_copy(update=self.actions.model_dump()), timestamp=self.timestamp.timestamp(), long_running_tool_ids=self.long_running_tool_ids, partial=self.partial, From 156d23547915e8f7f5c6ba55e0362f4b133c3968 Mon Sep 17 00:00:00 2001 From: Dongyu Jia Date: Fri, 31 Oct 2025 09:54:27 -0700 Subject: [PATCH 255/303] feat: Allow injecting a custom Runner into `agent_to_a2a` This change adds an optional `runner` parameter to the `to_a2a` function, enabling users to provide a pre-configured `Runner` instance instead of always using the default in-memory services. A new test case has been added to verify this functionality. closes #3104 Co-authored-by: Dongyu Jia PiperOrigin-RevId: 826526861 --- src/google/adk/a2a/utils/agent_to_a2a.py | 5 ++- .../unittests/a2a/utils/test_agent_to_a2a.py | 45 +++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/src/google/adk/a2a/utils/agent_to_a2a.py b/src/google/adk/a2a/utils/agent_to_a2a.py index e550dc7643..72a2292fb3 100644 --- a/src/google/adk/a2a/utils/agent_to_a2a.py +++ b/src/google/adk/a2a/utils/agent_to_a2a.py @@ -90,6 +90,7 @@ def to_a2a( port: int = 8000, protocol: str = "http", agent_card: Optional[Union[AgentCard, str]] = None, + runner: Optional[Runner] = None, ) -> Starlette: """Convert an ADK agent to a A2A Starlette application. @@ -101,6 +102,8 @@ def to_a2a( agent_card: Optional pre-built AgentCard object or path to agent card JSON. If not provided, will be built automatically from the agent. + runner: Optional pre-built Runner object. If not provided, a default + runner will be created using in-memory services. Returns: A Starlette application that can be run with uvicorn @@ -132,7 +135,7 @@ async def create_runner() -> Runner: task_store = InMemoryTaskStore() agent_executor = A2aAgentExecutor( - runner=create_runner, + runner=runner or create_runner, ) request_handler = DefaultRequestHandler( diff --git a/tests/unittests/a2a/utils/test_agent_to_a2a.py b/tests/unittests/a2a/utils/test_agent_to_a2a.py index 1106bf9673..ee80b0233b 100644 --- a/tests/unittests/a2a/utils/test_agent_to_a2a.py +++ b/tests/unittests/a2a/utils/test_agent_to_a2a.py @@ -103,6 +103,51 @@ def test_to_a2a_default_parameters( "startup", mock_app.add_event_handler.call_args[0][1] ) + @patch("google.adk.a2a.utils.agent_to_a2a.A2aAgentExecutor") + @patch("google.adk.a2a.utils.agent_to_a2a.DefaultRequestHandler") + @patch("google.adk.a2a.utils.agent_to_a2a.InMemoryTaskStore") + @patch("google.adk.a2a.utils.agent_to_a2a.AgentCardBuilder") + @patch("google.adk.a2a.utils.agent_to_a2a.Starlette") + def test_to_a2a_with_custom_runner( + self, + mock_starlette_class, + mock_card_builder_class, + mock_task_store_class, + mock_request_handler_class, + mock_agent_executor_class, + ): + """Test to_a2a with a custom runner.""" + # Arrange + mock_app = Mock(spec=Starlette) + mock_starlette_class.return_value = mock_app + mock_task_store = Mock(spec=InMemoryTaskStore) + mock_task_store_class.return_value = mock_task_store + mock_agent_executor = Mock(spec=A2aAgentExecutor) + mock_agent_executor_class.return_value = mock_agent_executor + mock_request_handler = Mock(spec=DefaultRequestHandler) + mock_request_handler_class.return_value = mock_request_handler + mock_card_builder = Mock(spec=AgentCardBuilder) + mock_card_builder_class.return_value = mock_card_builder + custom_runner = Mock(spec=Runner) + + # Act + result = to_a2a(self.mock_agent, runner=custom_runner) + + # Assert + assert result == mock_app + mock_starlette_class.assert_called_once() + mock_task_store_class.assert_called_once() + mock_agent_executor_class.assert_called_once_with(runner=custom_runner) + mock_request_handler_class.assert_called_once_with( + agent_executor=mock_agent_executor, task_store=mock_task_store + ) + mock_card_builder_class.assert_called_once_with( + agent=self.mock_agent, rpc_url="http://localhost:8000/" + ) + mock_app.add_event_handler.assert_called_once_with( + "startup", mock_app.add_event_handler.call_args[0][1] + ) + @patch("google.adk.a2a.utils.agent_to_a2a.A2aAgentExecutor") @patch("google.adk.a2a.utils.agent_to_a2a.DefaultRequestHandler") @patch("google.adk.a2a.utils.agent_to_a2a.InMemoryTaskStore") From 0b56f2287bd423abe735bec8ec81f8fd0608dab7 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Fri, 31 Oct 2025 12:57:18 -0700 Subject: [PATCH 256/303] refactor(bigquery): Remove dataset_id from logging schema Removes the dataset_id field from the BigQuery table schema and from each log entry created by the BigQueryAgentAnalyticsPlugin. This field is redundant, as all rows logged to a specific table belong to the same dataset. To ensure the plugin can still target the correct dataset, dataset_id is now a required argument in the BigQueryAgentAnalyticsPlugin constructor, and its default value has been removed. The BigQuery client user_agent is also updated with plugin version info to help identify traffic originating from this plugin. Unit tests have been updated to reflect the removal of dataset_id from log entries. PiperOrigin-RevId: 826596499 --- .../adk/plugins/bigquery_logging_plugin.py | 18 ++---------------- .../plugins/test_bigquery_logging_plugin.py | 1 - 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/src/google/adk/plugins/bigquery_logging_plugin.py b/src/google/adk/plugins/bigquery_logging_plugin.py index 9740a745b2..3eae4b5b35 100644 --- a/src/google/adk/plugins/bigquery_logging_plugin.py +++ b/src/google/adk/plugins/bigquery_logging_plugin.py @@ -114,7 +114,7 @@ class BigQueryAgentAnalyticsPlugin(BasePlugin): def __init__( self, project_id: str, - dataset_id: str = "adk_agent_logs", + dataset_id: str, table_id: str = "agent_events", **kwargs, ): @@ -141,7 +141,7 @@ def _ensure_initialized_sync(self): scopes=["https://www.googleapis.com/auth/bigquery"] ) client_info = google.api_core.client_info.ClientInfo( - user_agent=f"google-adk-plugin/{version.__version__}" + user_agent=f"google-adk-bq-logger/{version.__version__}" ) self._bq_client = bigquery.Client( project=self._project_id, @@ -157,7 +157,6 @@ def _ensure_initialized_sync(self): table_ref = dataset_ref.table(self._table_id) # Schema without separate token columns schema = [ - bigquery.SchemaField("dataset_id", "STRING"), bigquery.SchemaField("timestamp", "TIMESTAMP"), bigquery.SchemaField("event_type", "STRING"), bigquery.SchemaField("agent", "STRING"), @@ -189,7 +188,6 @@ def _sync_log(): self._table_id ) default_row = { - "dataset_id": None, "timestamp": datetime.now(timezone.utc).isoformat(), "event_type": None, "agent": None, @@ -226,7 +224,6 @@ async def on_user_message_callback( ) -> Optional[types.Content]: """Log user message and invocation start.""" event_dict = { - "dataset_id": self._dataset_id, "timestamp": datetime.now(timezone.utc).isoformat(), "event_type": "USER_MESSAGE_RECEIVED", "agent": invocation_context.agent.name, @@ -243,7 +240,6 @@ async def before_run_callback( ) -> Optional[types.Content]: """Log invocation start.""" event_dict = { - "dataset_id": self._dataset_id, "timestamp": datetime.now(timezone.utc).isoformat(), "event_type": "INVOCATION_STARTING", "agent": invocation_context.agent.name, @@ -259,7 +255,6 @@ async def on_event_callback( ) -> Optional[Event]: """Logs event data to BigQuery.""" event_dict = { - "dataset_id": self._dataset_id, "timestamp": datetime.fromtimestamp( event.timestamp, timezone.utc ).isoformat(), @@ -285,7 +280,6 @@ async def after_run_callback( ) -> Optional[None]: """Log invocation completion.""" event_dict = { - "dataset_id": self._dataset_id, "timestamp": datetime.now(timezone.utc).isoformat(), "event_type": "INVOCATION_COMPLETED", "agent": invocation_context.agent.name, @@ -301,7 +295,6 @@ async def before_agent_callback( ) -> Optional[types.Content]: """Log agent execution start.""" event_dict = { - "dataset_id": self._dataset_id, "timestamp": datetime.now(timezone.utc).isoformat(), "event_type": "AGENT_STARTING", "agent": agent.name, @@ -318,7 +311,6 @@ async def after_agent_callback( ) -> Optional[types.Content]: """Log agent execution completion.""" event_dict = { - "dataset_id": self._dataset_id, "timestamp": datetime.now(timezone.utc).isoformat(), "event_type": "AGENT_COMPLETED", "agent": agent.name, @@ -386,7 +378,6 @@ async def before_model_callback( final_content = " | ".join(content_parts) event_dict = { - "dataset_id": self._dataset_id, "timestamp": datetime.now(timezone.utc).isoformat(), "event_type": "LLM_REQUEST", "agent": callback_context.agent_name, @@ -444,7 +435,6 @@ async def after_model_callback( final_content = " | ".join(content_parts) event_dict = { - "dataset_id": self._dataset_id, "timestamp": datetime.now(timezone.utc).isoformat(), "event_type": "LLM_RESPONSE", "agent": callback_context.agent_name, @@ -468,7 +458,6 @@ async def before_tool_callback( ) -> Optional[None]: """Log tool execution start.""" event_dict = { - "dataset_id": self._dataset_id, "timestamp": datetime.now(timezone.utc).isoformat(), "event_type": "TOOL_STARTING", "agent": tool_context.agent_name, @@ -493,7 +482,6 @@ async def after_tool_callback( ) -> None: """Log tool execution completion.""" event_dict = { - "dataset_id": self._dataset_id, "timestamp": datetime.now(timezone.utc).isoformat(), "event_type": "TOOL_COMPLETED", "agent": tool_context.agent_name, @@ -514,7 +502,6 @@ async def on_model_error_callback( ) -> Optional[LlmResponse]: """Log LLM error.""" event_dict = { - "dataset_id": self._dataset_id, "timestamp": datetime.now(timezone.utc).isoformat(), "event_type": "LLM_ERROR", "agent": callback_context.agent_name, @@ -536,7 +523,6 @@ async def on_tool_error_callback( ) -> None: """Log tool error.""" event_dict = { - "dataset_id": self._dataset_id, "timestamp": datetime.now(timezone.utc).isoformat(), "event_type": "TOOL_ERROR", "agent": tool_context.agent_name, diff --git a/tests/unittests/plugins/test_bigquery_logging_plugin.py b/tests/unittests/plugins/test_bigquery_logging_plugin.py index 557eb17689..f314978355 100644 --- a/tests/unittests/plugins/test_bigquery_logging_plugin.py +++ b/tests/unittests/plugins/test_bigquery_logging_plugin.py @@ -127,7 +127,6 @@ def _get_logged_entry(self): return rows[0] def _assert_common_fields(self, log_entry, event_type): - assert log_entry["dataset_id"] == self.dataset_id assert log_entry["event_type"] == event_type assert log_entry["agent"] == "MyTestAgent" assert log_entry["session_id"] == "session-123" From 0487eea2abcd05d7efd123962d17b8c6c9a9d975 Mon Sep 17 00:00:00 2001 From: Lavi Nigam Date: Fri, 31 Oct 2025 13:27:30 -0700 Subject: [PATCH 257/303] feat: add run_debug() helper method for quick agent experimentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge https://github.com/google/adk-python/pull/3345 Add run_debug() helper method to InMemoryRunner that reduces agent execution boilerplate from 7-8 lines to just 2 lines, making it ideal for quick experimentation, notebooks, and getting started with ADK. **Key changes:** • Introduce run_debug() to reduce boilerplate from 7-8 lines to 2 lines • Enable quick testing in notebooks, REPL, and during development • Support single or multiple messages with automatic session management • Add verbose flag to show/hide tool calls and intermediate processing • Add quiet flag to suppress console output while capturing events • Extract event printing logic to reusable utility (utils/_debug_output.py) • Include comprehensive test suite with 21 test cases covering all part types • Provide complete working example with 8 usage patterns • **This is a convenience method for experimentation, not a replacement for run_async()** ### Link to Issue or Description of Change **1. Link to an existing issue (if applicable):** * N/A - New feature to improve developer experience **2. Or, if no issue exists, describe the change:** **Problem:** Developers need to write 7-8 lines of boilerplate code just to test a simple agent interaction during development. This creates friction for: * New developers getting started with ADK * Quick experimentation in Jupyter notebooks or Python REPL * Debugging agent behavior during development * Writing examples and tutorials * Rapid prototyping of agent capabilities **Solution:** Introduce `run_debug()` as a convenience helper method specifically designed for quick experimentation and getting started scenarios. This method: * **Is NOT a replacement for `run_async()`** - it's a developer convenience tool * **Reduces boilerplate** from 7-8 lines to just 2 lines for simple testing * **Handles session management automatically** with sensible defaults * **Provides debugging visibility** with optional verbose flag for tool calls * **Supports common patterns** like multiple messages and event capture * **Type-safe implementation** using direct attribute access instead of getattr() ### Before vs After Comparison **BEFORE - Current approach requires 7-8 lines of boilerplate:** ```python from google.adk import Agent from google.adk.runners import Runner from google.adk.sessions import InMemorySessionService from google.genai import types # Define a simple agent agent = Agent( model="gemini-2.5-flash", instruction="You are a helpful assistant" ) # Need all this boilerplate just to test the agent APP_NAME = "default" USER_ID = "default" session_service = InMemorySessionService() runner = Runner(agent=agent, app_name=APP_NAME, session_service=session_service) session = await session_service.create_session( app_name=APP_NAME, user_id=USER_ID, session_id="default" ) content = types.Content(role="user", parts=[types.Part.from_text("Hello")]) async for event in runner.run_async( user_id=USER_ID, session_id=session.id, new_message=content ): if event.content and event.content.parts: print(event.content.parts[0].text) ``` **AFTER - With run_debug() helper, just 2 lines:** ```python from google.adk import Agent from google.adk.runners import InMemoryRunner # Define the same agent agent = Agent( model="gemini-2.5-flash", instruction="You are a helpful assistant" ) # Test it with just 2 lines! runner = InMemoryRunner(agent=agent) await runner.run_debug("Hello") ``` ### API Design ```python async def run_debug( self, user_messages: str | list[str], *, user_id: str = 'debug_user_id', session_id: str = 'debug_session_id', run_config: RunConfig | None = None, quiet: bool = False, verbose: bool = False, ) -> list[Event]: ``` **Parameters:** * `user_messages`: Single message string or list of messages (required) * `user_id`: User identifier (default: 'debug_user_id') * `session_id`: Session identifier for conversation continuity (default: 'debug_session_id') * `run_config`: Optional advanced configuration * `quiet`: Suppress console output (default: False) * `verbose`: Show detailed tool calls and responses (default: False) **Key Features:** * **Always returns events** - Simplifies API, no conditional return type * **Type-safe implementation** - Uses direct attribute access on Pydantic models * **Text buffering** - Consecutive text parts printed without repeated author prefix * **Smart truncation** - Long tool args/responses truncated for readability * **Clean session management** - Get-then-create pattern, no try/except * **Reusable printing logic** - Extracted to utils/_debug_output.py for other tools ### Implementation Highlights **1. Event Printing Utility (utils/_debug_output.py):** * Modular print_event() function for displaying events * Text buffering to combine consecutive text parts * Configurable truncation for different content types: - Function args: 50 chars max - Function responses: 100 chars max - Code output: 100 chars max * Supports all ADK part types (text, function_call, executable_code, inline_data, file_data) **2. Session Management:** ```python # Clean get-then-create pattern (no try/except) session = await self.session_service.get_session( app_name=self.app_name, user_id=user_id, session_id=session_id ) if not session: session = await self.session_service.create_session( app_name=self.app_name, user_id=user_id, session_id=session_id ) ``` **3. Type-Safe Event Processing:** * Direct attribute access on Pydantic models (no getattr() or hasattr()) * Proper handling of all part types * Leverages `from __future__ import annotations` for duck typing ### Important Note on Scope `run_debug()` is a **convenience method for experimentation only**. For production applications requiring: * Custom session services (Spanner, Cloud SQL) * Fine-grained event processing control * Error recovery and resumability * Performance optimization * Complex authentication flows Continue using the standard `run_async()` method. The `run_debug()` helper is specifically designed to lower the barrier to entry and speed up the development/testing cycle. ### Testing Plan **Unit Tests (21 test cases in tests/unittests/runners/test_runner_debug.py):** **Core functionality (7 tests):** * ✅ Single message execution and event return * ✅ Multiple messages in sequence * ✅ Quiet mode (suppresses output) * ✅ Custom session_id configuration * ✅ Custom user_id configuration * ✅ RunConfig passthrough * ✅ Session persistence across calls **Part type handling (8 tests):** * ✅ Tool calls and responses (verbose mode) * ✅ Executable code parts * ✅ Code execution result parts * ✅ Inline data (images) * ✅ File data references * ✅ Mixed part types in single event * ✅ Long output truncation * ✅ Verbose flag behavior (show/hide tools) **Edge cases (6 tests):** * ✅ None text filtering * ✅ Existing session handling * ✅ Empty parts list * ✅ None event content * ✅ Verbose=False hides tool calls * ✅ Verbose=True shows tool calls **All 21 tests passing in 3.8s** ✓ **Manual End-to-End (E2E) Tests:** Tested all 8 example patterns in contributing/samples/runner_debug_example/main.py: 1. ✅ Minimal 2-line usage 2. ✅ Multiple sequential messages 3. ✅ Session persistence across calls 4. ✅ Multiple user sessions (Alice & Bob) 5. ✅ Verbose mode for tool visibility 6. ✅ Event capture with quiet mode 7. ✅ Custom RunConfig integration 8. ✅ Before/after comparison ### Files Changed **Core implementation:** * src/google/adk/runners.py - Added run_debug() method (~60 lines) * src/google/adk/utils/_debug_output.py - Event printing utility (~106 lines) **Tests:** * tests/unittests/runners/test_runner_debug.py - Comprehensive test suite (21 tests) **Examples:** * contributing/samples/runner_debug_example/agent.py - Sample agent with tools * contributing/samples/runner_debug_example/main.py - 8 usage examples * contributing/samples/runner_debug_example/README.md - Complete documentation ### Checklist - [x] I have read the [CONTRIBUTING.md](https://github.com/google/adk-python/blob/main/CONTRIBUTING.md) document - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes (21/21 passing) - [x] I have manually tested my changes end-to-end (8 examples tested) - [x] Code follows ADK style guide (relative imports, type hints, 2-space indentation) - [x] Ran ./autoformat.sh before committing - [x] Any dependent changes have been merged and published in downstream modules ### Additional Context **Example with Tools (verbose mode):** ```python # Create agent with tools agent = Agent( model="gemini-2.5-flash", instruction="You can check weather and do calculations", tools=[get_weather, calculate] ) # Test with verbose to see tool calls runner = InMemoryRunner(agent=agent) await runner.run_debug("What's the weather in SF?", verbose=True) # Output: # User > What's the weather in SF? # agent > [Calling tool: get_weather({'city': 'San Francisco'})] # agent > [Tool result: {'result': 'Foggy, 15°C (59°F)'}] # agent > The weather in San Francisco is foggy, 15°C (59°F). ``` **Complete Example Included:** The PR includes a full working example in `contributing/samples/runner_debug_example/` with: * Agent with weather and calculator tools * 8 different usage patterns * Comprehensive README with troubleshooting * Safe AST-based expression evaluation **Breaking Changes:** None - this is purely additive. **Security:** Example uses AST-based expression evaluation instead of eval(). **Code Quality:** * Type-safe implementation (no getattr() or hasattr()) * Modular design (printing logic separated into utility) * Follows ADK conventions (relative imports, from __future__ import annotations) * Comprehensive error handling (gracefully handles None content, empty parts) * Well-documented with docstrings and inline comments END_PUBLIC ``` --- ## Key Changes from Original: 1. ✅ Updated parameter name: `user_queries` → `user_messages` 2. ✅ Updated parameter name: `session_name` → `session_id` 3. ✅ Updated parameter name: `print_output` → `quiet` 4. ✅ Removed `return_events` parameter 5. ✅ Updated test count: 23 → 21 6. ✅ Changed "queries" → "messages" throughout 7. ✅ Added implementation highlights section 8. ✅ Added details about utils/_debug_output.py 9. ✅ Updated default values to debug_user_id/debug_session_id 10. ✅ Noted type-safe implementation 11. ✅ Added Code Quality section 12. ✅ Updated API signature to match final refactored version 13. ✅ Removed optional return type (always returns list[Event]) Co-authored-by: Wei Sun (Jack) COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3345 from lavinigam-gcp:adk-runner-helper e0050b9f152d0f0e49e6501610d2c59a754fc571 PiperOrigin-RevId: 826607817 --- .../samples/runner_debug_example/README.md | 214 ++++ .../samples/runner_debug_example/__init__.py | 17 + .../samples/runner_debug_example/agent.py | 127 +++ .../samples/runner_debug_example/main.py | 258 +++++ src/google/adk/runners.py | 102 ++ src/google/adk/utils/_debug_output.py | 108 +++ tests/unittests/runners/test_runner_debug.py | 917 ++++++++++++++++++ 7 files changed, 1743 insertions(+) create mode 100644 contributing/samples/runner_debug_example/README.md create mode 100644 contributing/samples/runner_debug_example/__init__.py create mode 100644 contributing/samples/runner_debug_example/agent.py create mode 100644 contributing/samples/runner_debug_example/main.py create mode 100644 src/google/adk/utils/_debug_output.py create mode 100644 tests/unittests/runners/test_runner_debug.py diff --git a/contributing/samples/runner_debug_example/README.md b/contributing/samples/runner_debug_example/README.md new file mode 100644 index 0000000000..e0cec37441 --- /dev/null +++ b/contributing/samples/runner_debug_example/README.md @@ -0,0 +1,214 @@ +# Runner Debug Helper Example + +This example demonstrates the `run_debug()` helper method that simplifies agent interaction for debugging and experimentation in ADK. + +## Overview + +The `run_debug()` method reduces agent interaction boilerplate from 7-8 lines to just 2 lines, making it ideal for: + +- Quick debugging sessions +- Jupyter notebooks +- REPL experimentation +- Writing examples +- Initial agent development + +## Files Included + +- `agent.py` - Agent with 2 tools: weather and calculate +- `main.py` - 8 examples demonstrating all features +- `README.md` - This documentation + +## Setup + +### Prerequisites + +Set your Google API key: + +```bash +export GOOGLE_API_KEY="your-api-key" +``` + +### Running the Example + +```bash +python -m contributing.samples.runner_debug_example.main +``` + +## Features Demonstrated + +1. **Minimal Usage**: Simple 2-line agent interaction +2. **Multiple Messages**: Processing multiple messages in sequence +3. **Session Persistence**: Maintaining conversation context +4. **Separate Sessions**: Managing multiple user sessions +5. **Tool Calls**: Displaying tool invocations and results +6. **Event Capture**: Collecting events for programmatic inspection +7. **Advanced Configuration**: Using RunConfig for custom settings +8. **Comparison**: Before/after boilerplate reduction + +## Part Types Supported + +The `run_debug()` method properly displays all ADK part types: + +| Part Type | Display Format | Use Case | +|-----------|---------------|----------| +| `text` | `agent > {text}` | Regular text responses | +| `function_call` | `agent > [Calling tool: {name}({args})]` | Tool invocations | +| `function_response` | `agent > [Tool result: {response}]` | Tool results | +| `executable_code` | `agent > [Executing {language} code...]` | Code blocks | +| `code_execution_result` | `agent > [Code output: {output}]` | Code execution results | +| `inline_data` | `agent > [Inline data: {mime_type}]` | Images, files, etc. | +| `file_data` | `agent > [File: {uri}]` | File references | + +## Tools Available in Example + +The example agent includes 2 tools to demonstrate tool handling: + +1. **`get_weather(city)`** - Returns mock weather data for major cities +2. **`calculate(expression)`** - Evaluates mathematical expressions safely + +## Key Benefits + +### Before (7-8 lines) + +```python +from google.adk.sessions import InMemorySessionService +from google.genai import types + +APP_NAME = "default" +USER_ID = "default" +session_service = InMemorySessionService() +runner = Runner(agent=agent, app_name=APP_NAME, session_service=session_service) +session = await session_service.create_session( + app_name=APP_NAME, user_id=USER_ID, session_id="default" +) +content = types.Content(role="user", parts=[types.Part.from_text("Hi")]) +async for event in runner.run_async( + user_id=USER_ID, session_id=session.id, new_message=content +): + if event.content and event.content.parts: + print(event.content.parts[0].text) +``` + +### After (2 lines) + +```python +runner = InMemoryRunner(agent=agent) +await runner.run_debug("Hi") +``` + +## API Reference + +```python +async def run_debug( + self, + user_messages: str | list[str], + *, + user_id: str = 'debug_user_id', + session_id: str = 'debug_session_id', + run_config: Optional[RunConfig] = None, + quiet: bool = False, + verbose: bool = False, +) -> List[Event]: +``` + +### Parameters + +- `user_messages`: Single message string or list of messages (required) +- `user_id`: User identifier for session tracking (default: 'debug_user_id') +- `session_id`: Session identifier for conversation continuity (default: 'debug_session_id') +- `run_config`: Optional advanced configuration +- `quiet`: Whether to suppress output to console (default: False) +- `verbose`: Whether to show detailed tool calls and responses (default: False) + +### Usage Examples + +```python +# Minimal usage +runner = InMemoryRunner(agent=agent) +await runner.run_debug("What's the weather?") + +# Multiple queries +await runner.run_debug(["Query 1", "Query 2", "Query 3"]) + +# Custom session +await runner.run_debug( + "Hello", + user_id="alice", + session_id="debug_session" +) + +# Capture events without printing +events = await runner.run_debug( + "Process this", + quiet=True +) + +# Show tool calls with verbose mode +await runner.run_debug( + "What's the weather?", + verbose=True # Shows [Calling tool: ...] and [Tool result: ...] +) + +# With custom configuration +from google.adk.agents.run_config import RunConfig +config = RunConfig(support_cfc=False) +await runner.run_debug("Query", run_config=config) +``` + +## Troubleshooting + +### Common Issues and Solutions + +1. **Tool calls not showing in output** + - **Issue**: Tool invocations and responses are not displayed + - **Solution**: Set `verbose=True` to see detailed tool interactions: + + ```python + await runner.run_debug("Query", verbose=True) + ``` + +2. **Import errors when running tests** + - **Issue**: `ModuleNotFoundError: No module named 'google.adk'` + - **Solution**: Ensure you're using the virtual environment: + + ```bash + source .venv/bin/activate + python -m pytest tests/ + ``` + +3. **Session state not persisting between calls** + - **Issue**: Agent doesn't remember previous interactions + - **Solution**: Use the same `user_id` and `session_id` across calls: + + ```python + await runner.run_debug("First query", user_id="alice", session_id="debug") + await runner.run_debug("Follow-up", user_id="alice", session_id="debug") + ``` + +4. **Output truncation issues** + - **Issue**: Long tool responses are truncated with "..." + - **Solution**: This is by design to keep debug output readable. For full responses, use: + + ```python + events = await runner.run_debug("Query", quiet=True) + # Process events programmatically for full content + ``` + +5. **API key errors** + - **Issue**: Authentication failures or missing API key + - **Solution**: Ensure your Google API key is set: + + ```bash + export GOOGLE_API_KEY="your-api-key" + ``` + +## Important Notes + +`run_debug()` is designed for debugging and experimentation only. For production use requiring: + +- Custom session/memory services (Spanner, Cloud SQL) +- Fine-grained event processing +- Error recovery and resumability +- Performance optimization + +Use the standard `run_async()` method instead. diff --git a/contributing/samples/runner_debug_example/__init__.py b/contributing/samples/runner_debug_example/__init__.py new file mode 100644 index 0000000000..1ca56dac2b --- /dev/null +++ b/contributing/samples/runner_debug_example/__init__.py @@ -0,0 +1,17 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Runner debug example demonstrating simplified agent interaction.""" + +from . import agent diff --git a/contributing/samples/runner_debug_example/agent.py b/contributing/samples/runner_debug_example/agent.py new file mode 100644 index 0000000000..6afb4dbab7 --- /dev/null +++ b/contributing/samples/runner_debug_example/agent.py @@ -0,0 +1,127 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Example agent for demonstrating run_debug helper method.""" + +from google.adk import Agent +from google.adk.tools.tool_context import ToolContext + + +def get_weather(city: str, tool_context: ToolContext) -> str: + """Get weather information for a city. + + Args: + city: Name of the city to get weather for. + tool_context: Tool context for session state. + + Returns: + Weather information as a string. + """ + # Store query history in session state + if "weather_queries" not in tool_context.state: + tool_context.state["weather_queries"] = [city] + else: + tool_context.state["weather_queries"] = tool_context.state[ + "weather_queries" + ] + [city] + + # Mock weather data for demonstration + weather_data = { + "San Francisco": "Foggy, 15°C (59°F)", + "New York": "Sunny, 22°C (72°F)", + "London": "Rainy, 12°C (54°F)", + "Tokyo": "Clear, 25°C (77°F)", + "Paris": "Cloudy, 18°C (64°F)", + } + + return weather_data.get( + city, f"Weather data not available for {city}. Try a major city." + ) + + +def calculate(expression: str) -> str: + """Safely evaluate a mathematical expression. + + This tool demonstrates how function calls are displayed in run_debug(). + + Args: + expression: Mathematical expression to evaluate. + + Returns: + Result of the calculation as a string. + """ + import ast + import operator + + # Supported operators for safe evaluation + operators = { + ast.Add: operator.add, + ast.Sub: operator.sub, + ast.Mult: operator.mul, + ast.Div: operator.truediv, + ast.Pow: operator.pow, + ast.USub: operator.neg, + } + + def _eval(node): + """Recursively evaluate an AST node.""" + if isinstance(node, ast.Expression): + return _eval(node.body) + elif isinstance(node, ast.Constant): # Python 3.8+ + return node.value + elif isinstance(node, ast.Num): # For older Python versions + return node.n + elif isinstance(node, ast.BinOp): + op = operators.get(type(node.op)) + if op: + return op(_eval(node.left), _eval(node.right)) + else: + raise ValueError(f"Unsupported operation: {type(node.op).__name__}") + elif isinstance(node, ast.UnaryOp): + op = operators.get(type(node.op)) + if op: + return op(_eval(node.operand)) + else: + raise ValueError(f"Unsupported operation: {type(node.op).__name__}") + else: + raise ValueError(f"Unsupported expression type: {type(node).__name__}") + + try: + # Parse the expression into an AST + tree = ast.parse(expression, mode="eval") + # Safely evaluate the AST + result = _eval(tree) + return f"Result: {result}" + except (SyntaxError, ValueError) as e: + return f"Error: {str(e)}" + except ZeroDivisionError: + return "Error: Division by zero" + except Exception as e: + return f"Error: {str(e)}" + + +root_agent = Agent( + model="gemini-2.5-flash-lite", + name="agent", + description="A helpful assistant demonstrating run_debug() helper method", + instruction="""You are a helpful assistant that can: + 1. Provide weather information for major cities + 2. Perform mathematical calculations + 3. Remember previous queries in the conversation + + When users ask about weather, use the get_weather tool. + When users ask for calculations, use the calculate tool. + Be friendly and conversational.""", + tools=[get_weather, calculate], +) diff --git a/contributing/samples/runner_debug_example/main.py b/contributing/samples/runner_debug_example/main.py new file mode 100644 index 0000000000..88ee0c41cc --- /dev/null +++ b/contributing/samples/runner_debug_example/main.py @@ -0,0 +1,258 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Demonstrates the run_debug() helper method for simplified agent interaction.""" + +import asyncio + +from google.adk.runners import InMemoryRunner + +from . import agent + + +async def example_minimal(): + """Minimal usage - just 2 lines for debugging.""" + print("------------------------------------") + print("Example 1: Minimal Debug Usage") + print("------------------------------------") + + # Create runner + runner = InMemoryRunner(agent=agent.root_agent) + + # Debug with just 2 lines + await runner.run_debug("What's the weather in San Francisco?") + + +async def example_multiple_messages(): + """Debug with multiple messages in sequence.""" + print("\n------------------------------------") + print("Example 2: Multiple Messages") + print("------------------------------------") + + runner = InMemoryRunner(agent=agent.root_agent) + + # Pass multiple messages as a list + await runner.run_debug([ + "Hi there!", + "What's the weather in Tokyo?", + "How about New York?", + "Calculate 15 * 7 + 3", + ]) + + +async def example_conversation_persistence(): + """Demonstrate conversation persistence during debugging.""" + print("\n------------------------------------") + print("Example 3: Session Persistence") + print("------------------------------------") + + runner = InMemoryRunner(agent=agent.root_agent) + + # First interaction + await runner.run_debug("Hi, I'm planning a trip to Europe") + + # Second interaction - continues same session + await runner.run_debug("What's the weather in Paris?") + + # Third interaction - agent remembers context + await runner.run_debug("And London?") + + # Fourth interaction - referring to previous messages + await runner.run_debug("Which city had better weather?") + + +async def example_separate_sessions(): + """Debug with multiple separate sessions.""" + print("\n------------------------------------") + print("Example 4: Separate Sessions") + print("------------------------------------") + + runner = InMemoryRunner(agent=agent.root_agent) + + # Alice's session + print("\n-- Alice's session --") + await runner.run_debug( + "What's the weather in San Francisco?", + user_id="alice", + session_id="alice_debug", + ) + + # Bob's session (separate) + print("\n-- Bob's session --") + await runner.run_debug( + "Calculate 100 / 5", user_id="bob", session_id="bob_debug" + ) + + # Continue Alice's session + print("\n-- Back to Alice's session --") + await runner.run_debug( + "Should I bring an umbrella?", + user_id="alice", + session_id="alice_debug", + ) + + +async def example_with_tools(): + """Demonstrate tool calls and responses with verbose flag.""" + print("\n------------------------------------") + print("Example 5: Tool Calls (verbose flag)") + print("------------------------------------") + + runner = InMemoryRunner(agent=agent.root_agent) + + print("\n-- Default (verbose=False) - Clean output --") + # Without verbose: Only shows final agent responses + await runner.run_debug([ + "What's the weather in Tokyo?", + "Calculate (42 * 3.14) + 10", + ]) + + print("\n-- With verbose=True - Detailed output --") + # With verbose: Shows tool calls as [Calling tool: ...] and [Tool result: ...] + await runner.run_debug( + [ + "What's the weather in Paris?", + "Calculate 100 / 5", + ], + verbose=True, + ) + + +async def example_capture_events(): + """Capture events for inspection during debugging.""" + print("\n------------------------------------") + print("Example 6: Capture Events (No Print)") + print("------------------------------------") + + runner = InMemoryRunner(agent=agent.root_agent) + + # Capture events without printing for inspection + events = await runner.run_debug( + ["Get weather for London", "Calculate 42 * 3.14"], + quiet=True, + ) + + # Inspect the captured events + print(f"Captured {len(events)} events") + for i, event in enumerate(events): + if event.content and event.content.parts: + for part in event.content.parts: + if part.text: + print(f" Event {i+1}: {event.author} - Text: {len(part.text)} chars") + elif part.function_call: + print( + f" Event {i+1}: {event.author} - Tool call:" + f" {part.function_call.name}" + ) + elif part.function_response: + print(f" Event {i+1}: {event.author} - Tool response received") + + +async def example_with_run_config(): + """Demonstrate using RunConfig for advanced settings.""" + print("\n------------------------------------") + print("Example 7: Advanced Configuration") + print("------------------------------------") + + from google.adk.agents.run_config import RunConfig + + runner = InMemoryRunner(agent=agent.root_agent) + + # Custom configuration - RunConfig supports: + # - support_cfc: Control function calling behavior + # - response_modalities: Output modalities (for LIVE API) + # - speech_config: Speech settings (for LIVE API) + config = RunConfig( + support_cfc=False, # Disable controlled function calling + ) + + await runner.run_debug( + "Explain what tools you have available", run_config=config + ) + + +async def example_comparison(): + """Show before/after comparison of boilerplate reduction.""" + print("\n------------------------------------") + print("Example 8: Before vs After Comparison") + print("------------------------------------") + + print("\nBefore (7-8 lines of boilerplate):") + print(""" + from google.adk.sessions import InMemorySessionService + from google.genai import types + + APP_NAME = "default" + USER_ID = "default" + session_service = InMemorySessionService() + runner = Runner(agent=agent, app_name=APP_NAME, session_service=session_service) + session = await session_service.create_session( + app_name=APP_NAME, user_id=USER_ID, session_id="default" + ) + content = types.Content(role="user", parts=[types.Part.from_text("Hi")]) + async for event in runner.run_async( + user_id=USER_ID, session_id=session.id, new_message=content + ): + if event.content and event.content.parts: + print(event.content.parts[0].text) + """) + + print("\nAfter (just 2 lines):") + print(""" + runner = InMemoryRunner(agent=agent) + await runner.run_debug("Hi") + """) + + print("\nThat's a 75% reduction in boilerplate.") + + +async def main(): + """Run all debug examples.""" + print("ADK run_debug() Helper Method Examples") + print("=======================================") + print("Demonstrating all capabilities:\n") + print("1. Minimal usage (2 lines)") + print("2. Multiple messages") + print("3. Session persistence") + print("4. Separate sessions") + print("5. Tool calls") + print("6. Event capture") + print("7. Advanced configuration") + print("8. Before/after comparison") + + await example_minimal() + await example_multiple_messages() + await example_conversation_persistence() + await example_separate_sessions() + await example_with_tools() + await example_capture_events() + await example_with_run_config() + await example_comparison() + + print("\n=======================================") + print("All examples completed.") + print("\nHow different part types appear:") + print(" Text: agent > Hello world (always shown)") + print("\nWith verbose=True only:") + print(" Tool call: agent > [Calling tool: calculate({'expression': '2+2'})]") + print(" Tool result: agent > [Tool result: Result: 4]") + print("\nNote: When models have code execution enabled (verbose=True):") + print(" Code exec: agent > [Executing python code...]") + print(" Code output: agent > [Code output: Result: 42]") + print(" Inline data: agent > [Inline data: image/png]") + print(" File ref: agent > [File: gs://bucket/file.pdf]") + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/src/google/adk/runners.py b/src/google/adk/runners.py index 50197dda2f..776de6f3cc 100644 --- a/src/google/adk/runners.py +++ b/src/google/adk/runners.py @@ -60,6 +60,7 @@ from .sessions.session import Session from .telemetry.tracing import tracer from .tools.base_toolset import BaseToolset +from .utils._debug_output import print_event from .utils.context_utils import Aclosing logger = logging.getLogger('google_adk.' + __name__) @@ -931,6 +932,107 @@ def _is_transferable_across_agent_tree(self, agent_to_run: BaseAgent) -> bool: agent = agent.parent_agent return True + async def run_debug( + self, + user_messages: str | list[str], + *, + user_id: str = 'debug_user_id', + session_id: str = 'debug_session_id', + run_config: RunConfig | None = None, + quiet: bool = False, + verbose: bool = False, + ) -> list[Event]: + """Debug helper for quick agent experimentation and testing. + + This convenience method is designed for developers getting started with ADK + who want to quickly test agents without dealing with session management, + content formatting, or event streaming. It automatically handles common + boilerplate while hiding complexity. + + IMPORTANT: This is for debugging and experimentation only. For production + use, please use the standard run_async() method which provides full control + over session management, event streaming, and error handling. + + Args: + user_messages: Message(s) to send to the agent. Can be: + - Single string: "What is 2+2?" + - List of strings: ["Hello!", "What's my name?"] + user_id: User identifier. Defaults to "debug_user_id". + session_id: Session identifier for conversation persistence. + Defaults to "debug_session_id". Reuse the same ID to continue a conversation. + run_config: Optional configuration for the agent execution. + quiet: If True, suppresses console output. Defaults to False (output shown). + verbose: If True, shows detailed tool calls and responses. Defaults to False + for cleaner output showing only final agent responses. + + Returns: + list[Event]: All events from all messages. + + Raises: + ValueError: If session creation/retrieval fails. + + Examples: + Quick debugging: + >>> runner = InMemoryRunner(agent=my_agent) + >>> await runner.run_debug("What is 2+2?") + + Multiple queries in conversation: + >>> await runner.run_debug(["Hello!", "What's my name?"]) + + Continue a debug session: + >>> await runner.run_debug("What did we discuss?") # Continues default session + + Separate debug sessions: + >>> await runner.run_debug("Hi", user_id="alice", session_id="debug1") + >>> await runner.run_debug("Hi", user_id="bob", session_id="debug2") + + Capture events for inspection: + >>> events = await runner.run_debug("Analyze this") + >>> for event in events: + ... inspect_event(event) + + Note: + For production applications requiring: + - Custom session/memory services (Spanner, Cloud SQL, etc.) + - Fine-grained event processing and streaming + - Error recovery and resumability + - Performance optimization + Please use run_async() with proper configuration. + """ + session = await self.session_service.get_session( + app_name=self.app_name, user_id=user_id, session_id=session_id + ) + if not session: + session = await self.session_service.create_session( + app_name=self.app_name, user_id=user_id, session_id=session_id + ) + if not quiet: + print(f'\n ### Created new session: {session_id}') + elif not quiet: + print(f'\n ### Continue session: {session_id}') + + collected_events: list[Event] = [] + + if isinstance(user_messages, str): + user_messages = [user_messages] + + for message in user_messages: + if not quiet: + print(f'\nUser > {message}') + + async for event in self.run_async( + user_id=user_id, + session_id=session.id, + new_message=types.UserContent(parts=[types.Part(text=message)]), + run_config=run_config, + ): + if not quiet: + print_event(event, verbose=verbose) + + collected_events.append(event) + + return collected_events + async def _setup_context_for_new_invocation( self, *, diff --git a/src/google/adk/utils/_debug_output.py b/src/google/adk/utils/_debug_output.py new file mode 100644 index 0000000000..e0182adeff --- /dev/null +++ b/src/google/adk/utils/_debug_output.py @@ -0,0 +1,108 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ..events.event import Event + +# Constants for debug output truncation +_ARGS_MAX_LEN = 50 # Keep arg previews short for readability +_RESPONSE_MAX_LEN = 100 # Show more of response for context +_CODE_OUTPUT_MAX_LEN = 100 # Code execution output preview length + + +def _truncate(text: str, max_len: int) -> str: + """Truncate text to max length, appending '...' if truncated. + + Args: + text: The text to truncate. + max_len: Maximum length before truncation. + + Returns: + The truncated text with '...' appended if it exceeds max_len. + """ + return text[:max_len] + '...' if len(text) > max_len else text + + +def print_event(event: Event, *, verbose: bool = False) -> None: + """Print an event to stdout in a user-friendly format. + + Args: + event: The event to print. + verbose: If True, shows detailed tool calls and responses. If False, + shows only text responses for cleaner output. + """ + if not event.content or not event.content.parts: + return + + # Collect consecutive text parts to avoid repeating author prefix + text_buffer: list[str] = [] + + def flush_text() -> None: + """Flush accumulated text parts as a single output.""" + if text_buffer: + combined_text = ''.join(text_buffer) + print(f'{event.author} > {combined_text}') + text_buffer.clear() + + for part in event.content.parts: + # Text parts are always shown regardless of verbose setting + # because they contain the actual agent responses users expect + if part.text: + text_buffer.append(part.text) + else: + # Flush any accumulated text before handling non-text parts + flush_text() + + # Non-text parts (tool calls, code, etc.) are hidden by default + # to reduce clutter and show only what matters: the final results + if verbose: + # Tool invocations show the behind-the-scenes processing + if part.function_call: + print( + f'{event.author} > [Calling tool:' + f' {part.function_call.name}(' + f'{_truncate(str(part.function_call.args), _ARGS_MAX_LEN)})]' + ) + # Handle function response parts (tool results) + elif part.function_response: + print( + f'{event.author} > [Tool result:' + f' {_truncate(str(part.function_response.response), _RESPONSE_MAX_LEN)}]' + ) + # Handle executable code parts + elif part.executable_code: + lang = part.executable_code.language or 'code' + print(f'{event.author} > [Executing {lang} code...]') + # Handle code execution result parts + elif part.code_execution_result: + output = part.code_execution_result.output or 'result' + print( + f'{event.author} > [Code output:' + f' {_truncate(str(output), _CODE_OUTPUT_MAX_LEN)}]' + ) + # Handle inline data (images, files) + elif part.inline_data: + mime_type = part.inline_data.mime_type or 'data' + print(f'{event.author} > [Inline data: {mime_type}]') + # Handle file data + elif part.file_data: + uri = part.file_data.file_uri or 'file' + print(f'{event.author} > [File: {uri}]') + + # Flush any remaining text at the end + flush_text() diff --git a/tests/unittests/runners/test_runner_debug.py b/tests/unittests/runners/test_runner_debug.py new file mode 100644 index 0000000000..4660bda95d --- /dev/null +++ b/tests/unittests/runners/test_runner_debug.py @@ -0,0 +1,917 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Tests for Runner.run_debug helper method.""" + +from __future__ import annotations + +from unittest import mock + +from google.adk.agents import Agent +from google.adk.agents.run_config import RunConfig +from google.adk.runners import InMemoryRunner +import pytest + + +class TestRunDebug: + """Tests for Runner.run_debug method.""" + + @pytest.mark.asyncio + async def test_run_debug_single_query(self): + """Test run_debug with a single string query.""" + # Setup + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="You are a helpful assistant.", + ) + runner = InMemoryRunner(agent=agent) + + # Mock the runner's run_async to return controlled events + mock_event = mock.Mock() + mock_event.author = "test_agent" + mock_event.content = mock.Mock() + mock_event.content.parts = [mock.Mock(text="Hello! I can help you.")] + + async def mock_run_async(*args, **kwargs): + yield mock_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + # Execute + events = await runner.run_debug("Hello, how are you?", quiet=True) + + # Assertions + assert len(events) == 1 + assert events[0].author == "test_agent" + assert events[0].content.parts[0].text == "Hello! I can help you." + + # Verify session was created with defaults + session = await runner.session_service.get_session( + app_name=runner.app_name, + user_id="debug_user_id", + session_id="debug_session_id", + ) + assert session is not None + + @pytest.mark.asyncio + async def test_run_debug_multiple_queries(self): + """Test run_debug with multiple queries in sequence.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="You are a test bot.", + ) + runner = InMemoryRunner(agent=agent) + + # Mock responses for multiple queries + responses = ["First response", "Second response"] + call_count = 0 + + async def mock_run_async(*args, **kwargs): + nonlocal call_count + mock_event = mock.Mock() + mock_event.author = "test_agent" + mock_event.content = mock.Mock() + mock_event.content.parts = [mock.Mock(text=responses[call_count])] + call_count += 1 + yield mock_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + # Execute with multiple queries + events = await runner.run_debug( + ["First query", "Second query"], quiet=True + ) + + # Assertions + assert len(events) == 2 + assert events[0].content.parts[0].text == "First response" + assert events[1].content.parts[0].text == "Second response" + + @pytest.mark.asyncio + async def test_run_debug_always_returns_events(self): + """Test that run_debug always returns events.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Test agent.", + ) + runner = InMemoryRunner(agent=agent) + + async def mock_run_async(*args, **kwargs): + mock_event = mock.Mock() + mock_event.author = "test_agent" + mock_event.content = mock.Mock() + mock_event.content.parts = [mock.Mock(text="Response")] + yield mock_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + # Test that events are always returned + events = await runner.run_debug("Query", quiet=True) + assert isinstance(events, list) + assert len(events) == 1 + + @pytest.mark.asyncio + async def test_run_debug_quiet_mode(self, capsys): + """Test that quiet=True suppresses printing.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Test agent.", + ) + runner = InMemoryRunner(agent=agent) + + async def mock_run_async(*args, **kwargs): + mock_event = mock.Mock() + mock_event.author = "test_agent" + mock_event.content = mock.Mock() + mock_event.content.parts = [mock.Mock(text="This should not be printed")] + yield mock_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + # Execute with quiet=True + await runner.run_debug("Test query", quiet=True) + + # Check that nothing was printed + captured = capsys.readouterr() + assert "This should not be printed" not in captured.out + assert "User >" not in captured.out + assert "Session:" not in captured.out + + @pytest.mark.asyncio + async def test_run_debug_custom_session_id(self): + """Test run_debug with custom session_id.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Test agent.", + ) + runner = InMemoryRunner(agent=agent) + + async def mock_run_async(*args, **kwargs): + mock_event = mock.Mock() + mock_event.author = "test_agent" + mock_event.content = mock.Mock() + mock_event.content.parts = [mock.Mock(text="Response")] + yield mock_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + # Execute with custom session ID + await runner.run_debug( + "Query", session_id="custom_debug_session", quiet=True + ) + + # Verify session was created with custom ID + session = await runner.session_service.get_session( + app_name=runner.app_name, + user_id="debug_user_id", + session_id="custom_debug_session", + ) + assert session is not None + assert session.id == "custom_debug_session" + + @pytest.mark.asyncio + async def test_run_debug_custom_user_id(self): + """Test run_debug with custom user_id.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Test agent.", + ) + runner = InMemoryRunner(agent=agent) + + async def mock_run_async(*args, **kwargs): + mock_event = mock.Mock() + mock_event.author = "test_agent" + mock_event.content = mock.Mock() + mock_event.content.parts = [mock.Mock(text="Response")] + yield mock_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + # Execute with custom user_id + await runner.run_debug("Query", user_id="test_user_123", quiet=True) + + # Verify session was created with custom user_id + session = await runner.session_service.get_session( + app_name=runner.app_name, + user_id="test_user_123", + session_id="debug_session_id", + ) + assert session is not None + + @pytest.mark.asyncio + async def test_run_debug_with_run_config(self): + """Test that run_config is properly passed through to run_async.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Test agent.", + ) + runner = InMemoryRunner(agent=agent) + + run_config_used = None + + async def mock_run_async(*args, **kwargs): + nonlocal run_config_used + run_config_used = kwargs.get("run_config") + mock_event = mock.Mock() + mock_event.author = "test_agent" + mock_event.content = mock.Mock() + mock_event.content.parts = [mock.Mock(text="Response")] + yield mock_event + + with mock.patch.object( + runner, "run_async", side_effect=mock_run_async + ) as mock_method: + # Create a custom run_config + custom_config = RunConfig(support_cfc=True) + + # Execute with custom run_config + await runner.run_debug("Query", run_config=custom_config, quiet=True) + + # Verify run_config was passed to run_async + assert mock_method.called + call_args = mock_method.call_args + assert call_args is not None + assert "run_config" in call_args.kwargs + assert call_args.kwargs["run_config"] == custom_config + + @pytest.mark.asyncio + async def test_run_debug_session_persistence(self): + """Test that multiple calls to run_debug maintain conversation context.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Remember previous messages.", + ) + runner = InMemoryRunner(agent=agent) + + call_count = 0 + responses = ["First response", "Second response remembering first"] + + async def mock_run_async(*args, **kwargs): + nonlocal call_count + mock_event = mock.Mock() + mock_event.author = "test_agent" + mock_event.content = mock.Mock() + mock_event.content.parts = [mock.Mock(text=responses[call_count])] + call_count += 1 + yield mock_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + # First call + events1 = await runner.run_debug("First message", quiet=True) + assert events1[0].content.parts[0].text == "First response" + + # Second call to same session + events2 = await runner.run_debug("Second message", quiet=True) + assert ( + events2[0].content.parts[0].text + == "Second response remembering first" + ) + + # Verify both calls used the same session + session = await runner.session_service.get_session( + app_name=runner.app_name, + user_id="debug_user_id", + session_id="debug_session_id", + ) + assert session is not None + + @pytest.mark.asyncio + async def test_run_debug_filters_none_text(self): + """Test that run_debug filters out 'None' text and empty parts.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Test agent.", + ) + runner = InMemoryRunner(agent=agent) + + async def mock_run_async(*args, **kwargs): + # Yield events with various text values + events = [ + mock.Mock( + author="test_agent", + content=mock.Mock(parts=[mock.Mock(text="Valid text")]), + ), + mock.Mock( + author="test_agent", + content=mock.Mock(parts=[mock.Mock(text="None")]), + ), # Should be filtered + mock.Mock( + author="test_agent", + content=mock.Mock(parts=[mock.Mock(text="")]), + ), # Should be filtered + mock.Mock( + author="test_agent", + content=mock.Mock(parts=[mock.Mock(text="Another valid")]), + ), + ] + for event in events: + yield event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + # Execute and capture output + events = await runner.run_debug("Query", quiet=True) + + # All 4 events should be returned (filtering is for printing only) + assert len(events) == 4 + + # But when printing, "None" and empty strings should be filtered + # This is tested implicitly by the implementation + + @pytest.mark.asyncio + async def test_run_debug_with_existing_session(self): + """Test that run_debug retrieves existing session when AlreadyExistsError occurs.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Test agent.", + ) + runner = InMemoryRunner(agent=agent) + + # First create a session + await runner.session_service.create_session( + app_name=runner.app_name, + user_id="debug_user_id", + session_id="existing_session", + ) + + async def mock_run_async(*args, **kwargs): + mock_event = mock.Mock() + mock_event.author = "test_agent" + mock_event.content = mock.Mock() + mock_event.content.parts = [mock.Mock(text="Using existing session")] + yield mock_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + # Execute with same session ID (should retrieve existing) + events = await runner.run_debug( + "Query", session_id="existing_session", quiet=True + ) + + assert len(events) == 1 + assert events[0].content.parts[0].text == "Using existing session" + + @pytest.mark.asyncio + async def test_run_debug_with_tool_calls(self, capsys): + """Test that run_debug properly handles and prints tool calls.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Test agent with tools.", + ) + runner = InMemoryRunner(agent=agent) + + async def mock_run_async(*args, **kwargs): + # First event: tool call + mock_call_event = mock.Mock() + mock_call_event.author = "test_agent" + mock_call_event.content = mock.Mock() + mock_function_call = mock.Mock() + mock_function_call.name = "calculate" + mock_function_call.args = {"operation": "add", "a": 5, "b": 3} + mock_part_call = mock.Mock() + mock_part_call.text = None + mock_part_call.function_call = mock_function_call + mock_part_call.function_response = None + mock_call_event.content.parts = [mock_part_call] + yield mock_call_event + + # Second event: tool response + mock_resp_event = mock.Mock() + mock_resp_event.author = "test_agent" + mock_resp_event.content = mock.Mock() + mock_function_response = mock.Mock() + mock_function_response.response = {"result": 8} + mock_part_resp = mock.Mock() + mock_part_resp.text = None + mock_part_resp.function_call = None + mock_part_resp.function_response = mock_function_response + mock_resp_event.content.parts = [mock_part_resp] + yield mock_resp_event + + # Third event: final text response + mock_text_event = mock.Mock() + mock_text_event.author = "test_agent" + mock_text_event.content = mock.Mock() + mock_text_event.content.parts = [mock.Mock(text="The result is 8")] + yield mock_text_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + # Execute with verbose=True to see tool calls + events = await runner.run_debug("Calculate 5 + 3", verbose=True) + + # Check output was printed + captured = capsys.readouterr() + assert "[Calling tool: calculate" in captured.out + assert "[Tool result:" in captured.out + assert "The result is 8" in captured.out + + # Check events were collected + assert len(events) == 3 + + @pytest.mark.asyncio + async def test_run_debug_with_executable_code(self, capsys): + """Test that run_debug properly handles executable code parts.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Test agent with code execution.", + ) + runner = InMemoryRunner(agent=agent) + + async def mock_run_async(*args, **kwargs): + # Event with executable code + mock_event = mock.Mock() + mock_event.author = "test_agent" + mock_event.content = mock.Mock() + + mock_exec_code = mock.Mock() + mock_exec_code.language = "python" + mock_exec_code.code = "print('Hello World')" + + mock_part = mock.Mock() + mock_part.text = None + mock_part.function_call = None + mock_part.function_response = None + mock_part.executable_code = mock_exec_code + mock_part.code_execution_result = None + mock_part.inline_data = None + mock_part.file_data = None + + mock_event.content.parts = [mock_part] + yield mock_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + events = await runner.run_debug("Run some code", verbose=True) + + captured = capsys.readouterr() + assert "[Executing python code...]" in captured.out + assert len(events) == 1 + + @pytest.mark.asyncio + async def test_run_debug_with_code_execution_result(self, capsys): + """Test that run_debug properly handles code execution result parts.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Test agent with code results.", + ) + runner = InMemoryRunner(agent=agent) + + async def mock_run_async(*args, **kwargs): + # Event with code execution result + mock_event = mock.Mock() + mock_event.author = "test_agent" + mock_event.content = mock.Mock() + + mock_result = mock.Mock() + mock_result.output = "Hello World\n42" + + mock_part = mock.Mock() + mock_part.text = None + mock_part.function_call = None + mock_part.function_response = None + mock_part.executable_code = None + mock_part.code_execution_result = mock_result + mock_part.inline_data = None + mock_part.file_data = None + + mock_event.content.parts = [mock_part] + yield mock_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + events = await runner.run_debug( + "Show code output", + verbose=True, + ) + + captured = capsys.readouterr() + assert "[Code output: Hello World\n42]" in captured.out + assert len(events) == 1 + + @pytest.mark.asyncio + async def test_run_debug_with_inline_data(self, capsys): + """Test that run_debug properly handles inline data parts.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Test agent with inline data.", + ) + runner = InMemoryRunner(agent=agent) + + async def mock_run_async(*args, **kwargs): + # Event with inline data (e.g., image) + mock_event = mock.Mock() + mock_event.author = "test_agent" + mock_event.content = mock.Mock() + + mock_inline = mock.Mock() + mock_inline.mime_type = "image/png" + mock_inline.data = b"fake_image_data" + + mock_part = mock.Mock() + mock_part.text = None + mock_part.function_call = None + mock_part.function_response = None + mock_part.executable_code = None + mock_part.code_execution_result = None + mock_part.inline_data = mock_inline + mock_part.file_data = None + + mock_event.content.parts = [mock_part] + yield mock_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + events = await runner.run_debug("Show image", verbose=True) + + captured = capsys.readouterr() + assert "[Inline data: image/png]" in captured.out + assert len(events) == 1 + + @pytest.mark.asyncio + async def test_run_debug_with_file_data(self, capsys): + """Test that run_debug properly handles file data parts.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Test agent with file data.", + ) + runner = InMemoryRunner(agent=agent) + + async def mock_run_async(*args, **kwargs): + # Event with file data + mock_event = mock.Mock() + mock_event.author = "test_agent" + mock_event.content = mock.Mock() + + mock_file = mock.Mock() + mock_file.file_uri = "gs://bucket/path/to/file.pdf" + + mock_part = mock.Mock() + mock_part.text = None + mock_part.function_call = None + mock_part.function_response = None + mock_part.executable_code = None + mock_part.code_execution_result = None + mock_part.inline_data = None + mock_part.file_data = mock_file + + mock_event.content.parts = [mock_part] + yield mock_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + events = await runner.run_debug("Reference file", verbose=True) + + captured = capsys.readouterr() + assert "[File: gs://bucket/path/to/file.pdf]" in captured.out + assert len(events) == 1 + + @pytest.mark.asyncio + async def test_run_debug_with_mixed_parts(self, capsys): + """Test that run_debug handles events with multiple part types.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Test agent with mixed parts.", + ) + runner = InMemoryRunner(agent=agent) + + async def mock_run_async(*args, **kwargs): + # Event with multiple part types + mock_event = mock.Mock() + mock_event.author = "test_agent" + mock_event.content = mock.Mock() + + # Text part + mock_text_part = mock.Mock() + mock_text_part.text = "Here's your result:" + mock_text_part.function_call = None + mock_text_part.function_response = None + mock_text_part.executable_code = None + mock_text_part.code_execution_result = None + mock_text_part.inline_data = None + mock_text_part.file_data = None + + # Code execution part + mock_code_part = mock.Mock() + mock_code_part.text = None + mock_code_part.function_call = None + mock_code_part.function_response = None + mock_exec_code = mock.Mock() + mock_exec_code.language = "python" + mock_code_part.executable_code = mock_exec_code + mock_code_part.code_execution_result = None + mock_code_part.inline_data = None + mock_code_part.file_data = None + + # Result part + mock_result_part = mock.Mock() + mock_result_part.text = None + mock_result_part.function_call = None + mock_result_part.function_response = None + mock_result_part.executable_code = None + mock_result = mock.Mock() + mock_result.output = "42" + mock_result_part.code_execution_result = mock_result + mock_result_part.inline_data = None + mock_result_part.file_data = None + + mock_event.content.parts = [ + mock_text_part, + mock_code_part, + mock_result_part, + ] + yield mock_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + events = await runner.run_debug("Mixed response", verbose=True) + + captured = capsys.readouterr() + assert "Here's your result:" in captured.out + assert "[Executing python code...]" in captured.out + assert "[Code output: 42]" in captured.out + assert len(events) == 1 + + @pytest.mark.asyncio + async def test_run_debug_with_long_output_truncation(self, capsys): + """Test that run_debug properly truncates long outputs.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Test agent with long outputs.", + ) + runner = InMemoryRunner(agent=agent) + + async def mock_run_async(*args, **kwargs): + # Tool call with long args + mock_call_event = mock.Mock() + mock_call_event.author = "test_agent" + mock_call_event.content = mock.Mock() + + mock_function_call = mock.Mock() + mock_function_call.name = "process" + # Create a long argument string + mock_function_call.args = {"data": "x" * 100} + + mock_part_call = mock.Mock() + mock_part_call.text = None + mock_part_call.function_call = mock_function_call + mock_part_call.function_response = None + mock_part_call.executable_code = None + mock_part_call.code_execution_result = None + mock_part_call.inline_data = None + mock_part_call.file_data = None + + mock_call_event.content.parts = [mock_part_call] + yield mock_call_event + + # Tool response with long result + mock_resp_event = mock.Mock() + mock_resp_event.author = "test_agent" + mock_resp_event.content = mock.Mock() + + mock_function_response = mock.Mock() + # Create a long response string + mock_function_response.response = {"result": "y" * 200} + + mock_part_resp = mock.Mock() + mock_part_resp.text = None + mock_part_resp.function_call = None + mock_part_resp.function_response = mock_function_response + mock_part_resp.executable_code = None + mock_part_resp.code_execution_result = None + mock_part_resp.inline_data = None + mock_part_resp.file_data = None + + mock_resp_event.content.parts = [mock_part_resp] + yield mock_resp_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + events = await runner.run_debug("Process data", verbose=True) + + captured = capsys.readouterr() + # Check that args are truncated at 50 chars + assert "..." in captured.out + assert "[Calling tool: process(" in captured.out + # Check that response is truncated at 100 chars + assert "[Tool result:" in captured.out + assert len(events) == 2 + + @pytest.mark.asyncio + async def test_run_debug_verbose_flag_false(self, capsys): + """Test that run_debug hides tool calls when verbose=False (default).""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Test agent with tools.", + ) + runner = InMemoryRunner(agent=agent) + + async def mock_run_async(*args, **kwargs): + # Tool call event + mock_call_event = mock.Mock() + mock_call_event.author = "test_agent" + mock_call_event.content = mock.Mock() + + mock_function_call = mock.Mock() + mock_function_call.name = "get_weather" + mock_function_call.args = {"city": "Tokyo"} + + mock_part_call = mock.Mock() + mock_part_call.text = None + mock_part_call.function_call = mock_function_call + mock_part_call.function_response = None + mock_part_call.executable_code = None + mock_part_call.code_execution_result = None + mock_part_call.inline_data = None + mock_part_call.file_data = None + + mock_call_event.content.parts = [mock_part_call] + yield mock_call_event + + # Tool response event + mock_resp_event = mock.Mock() + mock_resp_event.author = "test_agent" + mock_resp_event.content = mock.Mock() + + mock_function_response = mock.Mock() + mock_function_response.response = {"weather": "Clear, 25°C"} + + mock_part_resp = mock.Mock() + mock_part_resp.text = None + mock_part_resp.function_call = None + mock_part_resp.function_response = mock_function_response + mock_part_resp.executable_code = None + mock_part_resp.code_execution_result = None + mock_part_resp.inline_data = None + mock_part_resp.file_data = None + + mock_resp_event.content.parts = [mock_part_resp] + yield mock_resp_event + + # Final text response + mock_text_event = mock.Mock() + mock_text_event.author = "test_agent" + mock_text_event.content = mock.Mock() + mock_text_event.content.parts = [ + mock.Mock(text="The weather in Tokyo is clear and 25°C.") + ] + yield mock_text_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + events = await runner.run_debug( + "What's the weather?", + verbose=False, # Default - should NOT show tool calls + ) + + captured = capsys.readouterr() + # Should NOT show tool call details + assert "[Calling tool:" not in captured.out + assert "[Tool result:" not in captured.out + # Should show final text response + assert "The weather in Tokyo is clear and 25°C." in captured.out + assert len(events) == 3 + + @pytest.mark.asyncio + async def test_run_debug_verbose_flag_true(self, capsys): + """Test that run_debug shows tool calls when verbose=True.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Test agent with tools.", + ) + runner = InMemoryRunner(agent=agent) + + async def mock_run_async(*args, **kwargs): + # Tool call event + mock_call_event = mock.Mock() + mock_call_event.author = "test_agent" + mock_call_event.content = mock.Mock() + + mock_function_call = mock.Mock() + mock_function_call.name = "calculate" + mock_function_call.args = {"expression": "42 * 3.14"} + + mock_part_call = mock.Mock() + mock_part_call.text = None + mock_part_call.function_call = mock_function_call + mock_part_call.function_response = None + mock_part_call.executable_code = None + mock_part_call.code_execution_result = None + mock_part_call.inline_data = None + mock_part_call.file_data = None + + mock_call_event.content.parts = [mock_part_call] + yield mock_call_event + + # Tool response event + mock_resp_event = mock.Mock() + mock_resp_event.author = "test_agent" + mock_resp_event.content = mock.Mock() + + mock_function_response = mock.Mock() + mock_function_response.response = {"result": 131.88} + + mock_part_resp = mock.Mock() + mock_part_resp.text = None + mock_part_resp.function_call = None + mock_part_resp.function_response = mock_function_response + mock_part_resp.executable_code = None + mock_part_resp.code_execution_result = None + mock_part_resp.inline_data = None + mock_part_resp.file_data = None + + mock_resp_event.content.parts = [mock_part_resp] + yield mock_resp_event + + # Final text response + mock_text_event = mock.Mock() + mock_text_event.author = "test_agent" + mock_text_event.content = mock.Mock() + mock_text_event.content.parts = [mock.Mock(text="The result is 131.88")] + yield mock_text_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + events = await runner.run_debug( + "Calculate 42 * 3.14", + verbose=True, # Should show tool calls + ) + + captured = capsys.readouterr() + # Should show tool call details + assert ( + "[Calling tool: calculate({'expression': '42 * 3.14'})]" + in captured.out + ) + assert "[Tool result: {'result': 131.88}]" in captured.out + # Should also show final text response + assert "The result is 131.88" in captured.out + assert len(events) == 3 + + @pytest.mark.asyncio + async def test_run_debug_with_empty_parts_list(self, capsys): + """Test that run_debug handles events with empty parts list gracefully.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Test agent.", + ) + runner = InMemoryRunner(agent=agent) + + async def mock_run_async(*_args, **_kwargs): + # Event with empty parts list + mock_event = mock.Mock() + mock_event.author = "test_agent" + mock_event.content = mock.Mock() + mock_event.content.parts = [] # Empty parts list + yield mock_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + events = await runner.run_debug("Test query") + + captured = capsys.readouterr() + # Should handle gracefully without crashing + assert "User > Test query" in captured.out + assert len(events) == 1 + # Should not print any agent response since parts is empty + assert "test_agent >" not in captured.out + + @pytest.mark.asyncio + async def test_run_debug_with_none_event_content(self, capsys): + """Test that run_debug handles events with None content gracefully.""" + agent = Agent( + name="test_agent", + model="gemini-2.5-flash-lite", + instruction="Test agent.", + ) + runner = InMemoryRunner(agent=agent) + + async def mock_run_async(*_args, **_kwargs): + # Event with None content + mock_event = mock.Mock() + mock_event.author = "test_agent" + mock_event.content = None # None content + yield mock_event + + with mock.patch.object(runner, "run_async", side_effect=mock_run_async): + events = await runner.run_debug("Test query") + + captured = capsys.readouterr() + # Should handle gracefully without crashing + assert "User > Test query" in captured.out + assert len(events) == 1 + # Should not print any agent response since content is None + assert "test_agent >" not in captured.out From a0df75b6fa35d837086decb8802dbf1c0a6637ad Mon Sep 17 00:00:00 2001 From: Yifan Wang Date: Fri, 31 Oct 2025 14:36:58 -0700 Subject: [PATCH 258/303] chore: Add support for reversed proxy in adk web, users can use an optional param `--root_path` for proxy's path Co-authored-by: Yifan Wang PiperOrigin-RevId: 826632932 --- src/google/adk/cli/adk_web_server.py | 11 +++++++++-- src/google/adk/cli/cli_tools_click.py | 15 +++++++++++++++ src/google/adk/cli/fast_api.py | 2 ++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/google/adk/cli/adk_web_server.py b/src/google/adk/cli/adk_web_server.py index b073f1a7b0..f0cae1ae88 100644 --- a/src/google/adk/cli/adk_web_server.py +++ b/src/google/adk/cli/adk_web_server.py @@ -436,6 +436,7 @@ def __init__( extra_plugins: Optional[list[str]] = None, logo_text: Optional[str] = None, logo_image_url: Optional[str] = None, + url_prefix: Optional[str] = None, ): self.agent_loader = agent_loader self.session_service = session_service @@ -452,6 +453,7 @@ def __init__( self.runners_to_clean: set[str] = set() self.current_app_name_ref: SharedValue[str] = SharedValue(value="") self.runner_dict = {} + self.url_prefix = url_prefix async def get_runner_async(self, app_name: str) -> Runner: """Returns the cached runner for the given app.""" @@ -559,6 +561,7 @@ def _setup_runtime_config(self, web_assets_dir: str): " overwritten.", runtime_config_path, ) + runtime_config["backendUrl"] = self.url_prefix if self.url_prefix else "" # Set custom logo config. if self.logo_text or self.logo_image_url: @@ -1562,6 +1565,10 @@ async def process_messages(): mimetypes.add_type("application/javascript", ".js", True) mimetypes.add_type("text/javascript", ".js", True) + redirect_dev_ui_url = ( + self.url_prefix + "/dev-ui/" if self.url_prefix else "/dev-ui/" + ) + @app.get("/dev-ui/config") async def get_ui_config(): return { @@ -1571,11 +1578,11 @@ async def get_ui_config(): @app.get("/") async def redirect_root_to_dev_ui(): - return RedirectResponse("/dev-ui/") + return RedirectResponse(redirect_dev_ui_url) @app.get("/dev-ui") async def redirect_dev_ui_add_slash(): - return RedirectResponse("/dev-ui/") + return RedirectResponse(redirect_dev_ui_url) app.mount( "/dev-ui/", diff --git a/src/google/adk/cli/cli_tools_click.py b/src/google/adk/cli/cli_tools_click.py index b841e017ad..009b96fe70 100644 --- a/src/google/adk/cli/cli_tools_click.py +++ b/src/google/adk/cli/cli_tools_click.py @@ -1028,6 +1028,17 @@ def decorator(func): ), multiple=True, ) + @click.option( + "--url_prefix", + type=str, + help=( + "Optional. URL path prefix when the application is mounted behind a" + " reverse proxy or API gateway (e.g., '/api/v1', '/adk'). This" + " ensures generated URLs and redirects work correctly when the app" + " is not served at the root path. Must start with '/' if provided." + ), + default=None, + ) @functools.wraps(func) @click.pass_context def wrapper(ctx, *args, **kwargs): @@ -1065,6 +1076,7 @@ def cli_web( allow_origins: Optional[list[str]] = None, host: str = "127.0.0.1", port: int = 8000, + url_prefix: Optional[str] = None, trace_to_cloud: bool = False, otel_to_cloud: bool = False, reload: bool = True, @@ -1128,6 +1140,7 @@ async def _lifespan(app: FastAPI): a2a=a2a, host=host, port=port, + url_prefix=url_prefix, reload_agents=reload_agents, extra_plugins=extra_plugins, logo_text=logo_text, @@ -1164,6 +1177,7 @@ def cli_api_server( allow_origins: Optional[list[str]] = None, host: str = "127.0.0.1", port: int = 8000, + url_prefix: Optional[str] = None, trace_to_cloud: bool = False, otel_to_cloud: bool = False, reload: bool = True, @@ -1203,6 +1217,7 @@ def cli_api_server( a2a=a2a, host=host, port=port, + url_prefix=url_prefix, reload_agents=reload_agents, extra_plugins=extra_plugins, ), diff --git a/src/google/adk/cli/fast_api.py b/src/google/adk/cli/fast_api.py index 7e1e18bec9..58dcfc1527 100644 --- a/src/google/adk/cli/fast_api.py +++ b/src/google/adk/cli/fast_api.py @@ -64,6 +64,7 @@ def get_fast_api_app( a2a: bool = False, host: str = "127.0.0.1", port: int = 8000, + url_prefix: Optional[str] = None, trace_to_cloud: bool = False, otel_to_cloud: bool = False, reload_agents: bool = False, @@ -144,6 +145,7 @@ def get_fast_api_app( extra_plugins=extra_plugins, logo_text=logo_text, logo_image_url=logo_image_url, + url_prefix=url_prefix, ) # Callbacks & other optional args for when constructing the FastAPI instance From e8526f7e0677970298ed318939f551a90b0fe9c7 Mon Sep 17 00:00:00 2001 From: Kathy Wu Date: Fri, 31 Oct 2025 14:54:31 -0700 Subject: [PATCH 259/303] fix: Fix credential manager so that it supports the ServiceAccountCredentialExchanger This fixes MCP authentication for gcloud service accounts. Previously it was failing to authenticate tool calls. Co-authored-by: Kathy Wu PiperOrigin-RevId: 826639044 --- .../mcp_service_account_agent/README.md | 55 ++++++++++++++ .../mcp_service_account_agent/__init__.py | 15 ++++ .../mcp_service_account_agent/agent.py | 74 +++++++++++++++++++ src/google/adk/auth/credential_manager.py | 20 ++++- .../unittests/auth/test_credential_manager.py | 38 +++++----- 5 files changed, 178 insertions(+), 24 deletions(-) create mode 100644 contributing/samples/mcp_service_account_agent/README.md create mode 100644 contributing/samples/mcp_service_account_agent/__init__.py create mode 100644 contributing/samples/mcp_service_account_agent/agent.py diff --git a/contributing/samples/mcp_service_account_agent/README.md b/contributing/samples/mcp_service_account_agent/README.md new file mode 100644 index 0000000000..519537c658 --- /dev/null +++ b/contributing/samples/mcp_service_account_agent/README.md @@ -0,0 +1,55 @@ +# MCP Service Account Agent Sample + +This agent demonstrates how to connect to a remote MCP server using a gcloud service account for authentication. It uses Streamable HTTP for communication. + +## Setup + +Before running the agent, you need to configure the MCP server URL and your service account credentials in `agent.py`. + +1. **Configure MCP Server URL:** + Update the `MCP_SERVER_URL` variable with the URL of your MCP server instance. + + ```python + # agent.py + # TODO: Update this to the production MCP server url and scopes. + MCP_SERVER_URL = "https://test.sandbox.googleapis.com/mcp" + ``` + +2. **Set up Service Account Credentials:** + - Obtain the JSON key file for your gcloud service account. + - In `agent.py`, find the `ServiceAccountCredential` object and populate its parameters (e.g., `project_id`, `private_key`, `client_email`, etc.) with the corresponding values from your JSON key file. + + ```python + # agent.py + # TODO: Update this to the user's service account credentials. + auth_credential=AuthCredential( + auth_type=AuthCredentialTypes.SERVICE_ACCOUNT, + service_account=ServiceAccount( + service_account_credential=ServiceAccountCredential( + type_="service_account", + project_id="example", + private_key_id="123", + private_key="123", + client_email="test@example.iam.gserviceaccount.com", + client_id="123", + auth_uri="https://accounts.google.com/o/oauth2/auth", + token_uri="https://oauth2.googleapis.com/token", + auth_provider_x509_cert_url=( + "https://www.googleapis.com/oauth2/v1/certs" + ), + client_x509_cert_url="https://www.googleapis.com/robot/v1/metadata/x509/example.iam.gserviceaccount.com", + universe_domain="googleapis.com", + ), + scopes=SCOPES.keys(), + ), + ), + ``` + +## Running the Agent + +Once configured, you can run the agent. + +For example: +```bash +adk web +``` \ No newline at end of file diff --git a/contributing/samples/mcp_service_account_agent/__init__.py b/contributing/samples/mcp_service_account_agent/__init__.py new file mode 100644 index 0000000000..c48963cdc7 --- /dev/null +++ b/contributing/samples/mcp_service_account_agent/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/mcp_service_account_agent/agent.py b/contributing/samples/mcp_service_account_agent/agent.py new file mode 100644 index 0000000000..dc3ebf7b1a --- /dev/null +++ b/contributing/samples/mcp_service_account_agent/agent.py @@ -0,0 +1,74 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from fastapi.openapi.models import OAuth2 +from fastapi.openapi.models import OAuthFlowClientCredentials +from fastapi.openapi.models import OAuthFlows +from google.adk.agents.llm_agent import LlmAgent +from google.adk.auth.auth_credential import AuthCredential +from google.adk.auth.auth_credential import AuthCredentialTypes +from google.adk.auth.auth_credential import ServiceAccount +from google.adk.auth.auth_credential import ServiceAccountCredential +from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPServerParams +from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset + +# TODO: Update this to the production MCP server url and scopes. +MCP_SERVER_URL = "https://test.sandbox.googleapis.com/mcp" +SCOPES = {"https://www.googleapis.com/auth/cloud-platform": ""} + +root_agent = LlmAgent( + model="gemini-2.0-flash", + name="enterprise_assistant", + instruction=""" +Help the user with the tools available to you. + """, + tools=[ + MCPToolset( + connection_params=StreamableHTTPServerParams( + url=MCP_SERVER_URL, + ), + auth_scheme=OAuth2( + flows=OAuthFlows( + clientCredentials=OAuthFlowClientCredentials( + tokenUrl="https://oauth2.googleapis.com/token", + scopes=SCOPES, + ) + ) + ), + # TODO: Update this to the user's service account credentials. + auth_credential=AuthCredential( + auth_type=AuthCredentialTypes.SERVICE_ACCOUNT, + service_account=ServiceAccount( + service_account_credential=ServiceAccountCredential( + type_="service_account", + project_id="example", + private_key_id="123", + private_key="123", + client_email="test@example.iam.gserviceaccount.com", + client_id="123", + auth_uri="https://accounts.google.com/o/oauth2/auth", + token_uri="https://oauth2.googleapis.com/token", + auth_provider_x509_cert_url=( + "https://www.googleapis.com/oauth2/v1/certs" + ), + client_x509_cert_url="https://www.googleapis.com/robot/v1/metadata/x509/example.iam.gserviceaccount.com", + universe_domain="googleapis.com", + ), + scopes=SCOPES.keys(), + ), + ), + ) + ], +) diff --git a/src/google/adk/auth/credential_manager.py b/src/google/adk/auth/credential_manager.py index 3503e1e447..c022ab694c 100644 --- a/src/google/adk/auth/credential_manager.py +++ b/src/google/adk/auth/credential_manager.py @@ -20,6 +20,7 @@ from fastapi.openapi.models import OAuth2 from ..agents.callback_context import CallbackContext +from ..tools.openapi_tool.auth.credential_exchangers.service_account_exchanger import ServiceAccountCredentialExchanger from ..utils.feature_decorator import experimental from .auth_credential import AuthCredential from .auth_credential import AuthCredentialTypes @@ -84,7 +85,6 @@ def __init__( self._discovery_manager = OAuth2DiscoveryManager() # Register default exchangers and refreshers - # TODO: support service account credential exchanger from .exchanger.oauth2_credential_exchanger import OAuth2CredentialExchanger from .refresher.oauth2_credential_refresher import OAuth2CredentialRefresher @@ -96,6 +96,12 @@ def __init__( AuthCredentialTypes.OPEN_ID_CONNECT, oauth2_exchanger ) + # TODO: Move ServiceAccountCredentialExchanger to the auth module + self._exchanger_registry.register( + AuthCredentialTypes.SERVICE_ACCOUNT, + ServiceAccountCredentialExchanger(), + ) + oauth2_refresher = OAuth2CredentialRefresher() self._refresher_registry.register( AuthCredentialTypes.OAUTH2, oauth2_refresher @@ -207,9 +213,15 @@ async def _exchange_credential( if not exchanger: return credential, False - exchanged_credential = await exchanger.exchange( - credential, self._auth_config.auth_scheme - ) + if isinstance(exchanger, ServiceAccountCredentialExchanger): + exchanged_credential = exchanger.exchange_credential( + self._auth_config.auth_scheme, credential + ) + else: + exchanged_credential = await exchanger.exchange( + credential, self._auth_config.auth_scheme + ) + return exchanged_credential, True async def _refresh_credential( diff --git a/tests/unittests/auth/test_credential_manager.py b/tests/unittests/auth/test_credential_manager.py index da3ea54214..ab021d1eaa 100644 --- a/tests/unittests/auth/test_credential_manager.py +++ b/tests/unittests/auth/test_credential_manager.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +from unittest.mock import ANY from unittest.mock import AsyncMock from unittest.mock import Mock from unittest.mock import patch @@ -30,6 +31,7 @@ from google.adk.auth.auth_schemes import ExtendedOAuth2 from google.adk.auth.auth_tool import AuthConfig from google.adk.auth.credential_manager import CredentialManager +from google.adk.auth.credential_manager import ServiceAccountCredentialExchanger from google.adk.auth.oauth2_discovery import AuthorizationServerMetadata import pytest @@ -422,36 +424,32 @@ async def test_validate_credential_oauth2_missing_scheme_info( await manager._validate_credential() @pytest.mark.asyncio - async def test_exchange_credentials_service_account(self): + async def test_exchange_credentials_service_account( + self, service_account_credential, oauth2_auth_scheme + ): """Test _exchange_credential with service account credential.""" - mock_service_account = Mock(spec=ServiceAccount) - mock_credential = Mock(spec=AuthCredential) - mock_credential.auth_type = AuthCredentialTypes.SERVICE_ACCOUNT - auth_config = Mock(spec=AuthConfig) - auth_config.auth_scheme = Mock() + auth_config.auth_scheme = oauth2_auth_scheme - # Mock exchanger - mock_exchanger = Mock() - mock_exchanger.exchange = AsyncMock(return_value=mock_credential) + exchanged_credential = Mock(spec=AuthCredential) manager = CredentialManager(auth_config) - # Mock the exchanger registry to return our mock exchanger with patch.object( - manager._exchanger_registry, - "get_exchanger", - return_value=mock_exchanger, - ): + ServiceAccountCredentialExchanger, + "exchange_credential", + return_value=exchanged_credential, + autospec=True, + ) as mock_exchange_credential: result, was_exchanged = await manager._exchange_credential( - mock_credential + service_account_credential ) - mock_exchanger.exchange.assert_called_once_with( - mock_credential, auth_config.auth_scheme - ) - assert result == mock_credential - assert was_exchanged is True + mock_exchange_credential.assert_called_once_with( + ANY, oauth2_auth_scheme, service_account_credential + ) + assert result == exchanged_credential + assert was_exchanged is True @pytest.mark.asyncio async def test_exchange_credential_no_exchanger(self): From b1ff85fb2347e3402eedd42e3673be7093a99548 Mon Sep 17 00:00:00 2001 From: Ankur Sharma Date: Fri, 31 Oct 2025 15:40:34 -0700 Subject: [PATCH 260/303] chore: Add support for specifying logging level for adk eval cli command One can now control the logging levels for adk eval cli commands. Co-authored-by: Ankur Sharma PiperOrigin-RevId: 826654122 --- src/google/adk/cli/cli_tools_click.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/google/adk/cli/cli_tools_click.py b/src/google/adk/cli/cli_tools_click.py index 009b96fe70..edecab9073 100644 --- a/src/google/adk/cli/cli_tools_click.py +++ b/src/google/adk/cli/cli_tools_click.py @@ -448,6 +448,12 @@ def decorator(func): ), default=None, ) + @click.option( + "--log_level", + type=LOG_LEVELS, + default="INFO", + help="Optional. Set the logging level", + ) @functools.wraps(func) def wrapper(*args, **kwargs): return func(*args, **kwargs) @@ -480,6 +486,7 @@ def cli_eval( config_file_path: str, print_detailed_results: bool, eval_storage_uri: Optional[str] = None, + log_level: str = "INFO", ): """Evaluates an agent given the eval sets. @@ -536,6 +543,7 @@ def cli_eval( PRINT_DETAILED_RESULTS: Prints detailed results on the console. """ envs.load_dotenv_for_agent(agent_module_file_path, ".") + logs.setup_adk_logger(getattr(logging, log_level.upper())) try: from ..evaluation.base_eval_service import InferenceConfig @@ -716,10 +724,12 @@ def cli_create_eval_set( agent_module_file_path: str, eval_set_id: str, eval_storage_uri: Optional[str] = None, + log_level: str = "INFO", ): """Creates an empty EvalSet given the agent_module_file_path and eval_set_id.""" from .cli_eval import get_eval_sets_manager + logs.setup_adk_logger(getattr(logging, log_level.upper())) app_name = os.path.basename(agent_module_file_path) agents_dir = os.path.dirname(agent_module_file_path) eval_sets_manager = get_eval_sets_manager(eval_storage_uri, agents_dir) @@ -764,6 +774,7 @@ def cli_add_eval_case( scenarios_file: str, eval_storage_uri: Optional[str] = None, session_input_file: Optional[str] = None, + log_level: str = "INFO", ): """Adds eval cases to the given eval set. @@ -772,6 +783,7 @@ def cli_add_eval_case( If an eval case for the generated id already exists, then we skip adding it. """ + logs.setup_adk_logger(getattr(logging, log_level.upper())) try: from ..evaluation.conversation_scenarios import ConversationScenarios from ..evaluation.eval_case import EvalCase From c4c127df2310d048efc23e1f0b5fb3d56506999b Mon Sep 17 00:00:00 2001 From: FingerLiu Date: Fri, 31 Oct 2025 16:20:59 -0700 Subject: [PATCH 261/303] fix: fix typo in local_eval_service.py Merge https://github.com/google/adk-python/pull/2586 _perform_inference_sigle_eval_item -> _perform_inference_single_eval_item COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/2586 from FingerLiu:main 78083cb5d4ba1cc90785ad5d727756d467737e08 PiperOrigin-RevId: 826666447 --- src/google/adk/evaluation/local_eval_service.py | 4 ++-- tests/unittests/evaluation/test_local_eval_service.py | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/google/adk/evaluation/local_eval_service.py b/src/google/adk/evaluation/local_eval_service.py index ab285e1836..09a08d37bb 100644 --- a/src/google/adk/evaluation/local_eval_service.py +++ b/src/google/adk/evaluation/local_eval_service.py @@ -130,7 +130,7 @@ async def perform_inference( async def run_inference(eval_case): async with semaphore: - return await self._perform_inference_sigle_eval_item( + return await self._perform_inference_single_eval_item( app_name=inference_request.app_name, eval_set_id=inference_request.eval_set_id, eval_case=eval_case, @@ -383,7 +383,7 @@ def _generate_final_eval_status( return final_eval_status - async def _perform_inference_sigle_eval_item( + async def _perform_inference_single_eval_item( self, app_name: str, eval_set_id: str, diff --git a/tests/unittests/evaluation/test_local_eval_service.py b/tests/unittests/evaluation/test_local_eval_service.py index 8d973c92da..df90bf39dc 100644 --- a/tests/unittests/evaluation/test_local_eval_service.py +++ b/tests/unittests/evaluation/test_local_eval_service.py @@ -174,7 +174,7 @@ async def test_perform_inference_success( mock_eval_sets_manager.get_eval_set.return_value = eval_set mock_inference_result = mocker.MagicMock() - eval_service._perform_inference_sigle_eval_item = mocker.AsyncMock( + eval_service._perform_inference_single_eval_item = mocker.AsyncMock( return_value=mock_inference_result ) @@ -194,7 +194,7 @@ async def test_perform_inference_success( mock_eval_sets_manager.get_eval_set.assert_called_once_with( app_name="test_app", eval_set_id="test_eval_set" ) - assert eval_service._perform_inference_sigle_eval_item.call_count == 2 + assert eval_service._perform_inference_single_eval_item.call_count == 2 @pytest.mark.asyncio @@ -215,7 +215,7 @@ async def test_perform_inference_with_case_ids( mock_eval_sets_manager.get_eval_set.return_value = eval_set mock_inference_result = mocker.MagicMock() - eval_service._perform_inference_sigle_eval_item = mocker.AsyncMock( + eval_service._perform_inference_single_eval_item = mocker.AsyncMock( return_value=mock_inference_result ) @@ -231,13 +231,13 @@ async def test_perform_inference_with_case_ids( results.append(result) assert len(results) == 2 - eval_service._perform_inference_sigle_eval_item.assert_any_call( + eval_service._perform_inference_single_eval_item.assert_any_call( app_name="test_app", eval_set_id="test_eval_set", eval_case=eval_set.eval_cases[0], root_agent=dummy_agent, ) - eval_service._perform_inference_sigle_eval_item.assert_any_call( + eval_service._perform_inference_single_eval_item.assert_any_call( app_name="test_app", eval_set_id="test_eval_set", eval_case=eval_set.eval_cases[2], From 4124f54a36d84aa1645a9fccc46cdaf16490aac1 Mon Sep 17 00:00:00 2001 From: nikkie Date: Sun, 2 Nov 2025 08:04:19 -0800 Subject: [PATCH 262/303] refactor: Remove unnecessary branching in run_cli Merge https://github.com/google/adk-python/pull/2537 Streamlined code flow by removing redundant if/else logic COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/2537 from ftnext:refactor-run-cli d799e17a7dd7beb0adecd0bd28237a5e09949a6c PiperOrigin-RevId: 827153566 --- src/google/adk/cli/cli.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/google/adk/cli/cli.py b/src/google/adk/cli/cli.py index 1947e7b8fa..97ffd98999 100644 --- a/src/google/adk/cli/cli.py +++ b/src/google/adk/cli/cli.py @@ -183,10 +183,7 @@ async def run_cli( content = event.content if not content or not content.parts or not content.parts[0].text: continue - if event.author == 'user': - click.echo(f'[user]: {content.parts[0].text}') - else: - click.echo(f'[{event.author}]: {content.parts[0].text}') + click.echo(f'[{event.author}]: {content.parts[0].text}') await run_interactively( root_agent, From 44aa82195a6fc0b697c11ad99e70408472b544f3 Mon Sep 17 00:00:00 2001 From: Jeroen Overschie Date: Sun, 2 Nov 2025 08:55:35 -0800 Subject: [PATCH 263/303] docs: fix spelling error in `response_for_auth_required` parameter docstring Merge https://github.com/google/adk-python/pull/2680 COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/2680 from dunnkers:docs/fix-spelling-error-in-parameter-docstring 39782ac73381f6aa6b5392356eb9374b0680d611 PiperOrigin-RevId: 827163203 --- src/google/adk/tools/authenticated_function_tool.py | 2 +- src/google/adk/tools/base_authenticated_tool.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/google/adk/tools/authenticated_function_tool.py b/src/google/adk/tools/authenticated_function_tool.py index 67cc5885f7..01e44ed000 100644 --- a/src/google/adk/tools/authenticated_function_tool.py +++ b/src/google/adk/tools/authenticated_function_tool.py @@ -58,7 +58,7 @@ def __init__( the tool doesn't configure any credentials (auth_config.raw_auth_credential is missing) or the credentials configured is not enough to authenticate the tool (e.g. an OAuth - client id and client secrect is configured.) and needs client input + client id and client secret are configured) and needs client input (e.g. client need to involve the end user in an oauth flow and get back the oauth response.) """ diff --git a/src/google/adk/tools/base_authenticated_tool.py b/src/google/adk/tools/base_authenticated_tool.py index 4858e49534..043bc872a6 100644 --- a/src/google/adk/tools/base_authenticated_tool.py +++ b/src/google/adk/tools/base_authenticated_tool.py @@ -57,7 +57,7 @@ def __init__( the tool doesn't configure any credentials (auth_config.raw_auth_credential is missing) or the credentials configured is not enough to authenticate the tool (e.g. an OAuth - client id and client secrect is configured.) and needs client input + client id and client secret are configured) and needs client input (e.g. client need to involve the end user in an oauth flow and get back the oauth response.) """ From 2c6d6e159451e819e1292ecc3c5adcab87790917 Mon Sep 17 00:00:00 2001 From: nikkie Date: Sun, 2 Nov 2025 21:23:07 -0800 Subject: [PATCH 264/303] fix: fix typo for --save_session option in `adk run --resume` help Merge https://github.com/google/adk-python/pull/2326 `adk run --help` (adk 1.9.0) ``` --resume FILE The json file that contains a previously saved session (by--save_session option). The previous session will be re-displayed. And user can continue to interact with the agent. ``` ## testing plan N/A (because this is a simple string correction) COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/2326 from ftnext:fix-typo-run-help-resume a896fa38e223b13e7edd8125d7b38139f1ca3712 PiperOrigin-RevId: 827311506 --- src/google/adk/cli/cli_tools_click.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/google/adk/cli/cli_tools_click.py b/src/google/adk/cli/cli_tools_click.py index edecab9073..fa04a060d5 100644 --- a/src/google/adk/cli/cli_tools_click.py +++ b/src/google/adk/cli/cli_tools_click.py @@ -392,8 +392,8 @@ def validate_exclusive(ctx, param, value): ), help=( "The json file that contains a previously saved session (by" - "--save_session option). The previous session will be re-displayed. And" - " user can continue to interact with the agent." + " --save_session option). The previous session will be re-displayed." + " And user can continue to interact with the agent." ), callback=validate_exclusive, ) From 308da620c15a113820f57ba16abb6c5b2a6a2724 Mon Sep 17 00:00:00 2001 From: "G. Hussain Chinoy" Date: Mon, 3 Nov 2025 09:53:59 -0800 Subject: [PATCH 265/303] docs: updates CONTRIBUTING.md Merge https://github.com/google/adk-python/pull/2286 Clarity for statement, corrects misspelling COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/2286 from ghchinoy:patch-1 f50d59858dee4c7412f108dcebbe05697491cdcc PiperOrigin-RevId: 827541249 --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3698714a2f..ae5059e9b9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -234,6 +234,6 @@ has resources that is helpful for contributors. ## Vibe Coding -If you want to contribute by leveraging viber coding, the AGENTS.md +If you want to contribute by leveraging vibe coding, the AGENTS.md (https://github.com/google/adk-python/tree/main/AGENTS.md) could be used as -context to your LLM. \ No newline at end of file +context to your LLM. From a02f321f1bdb8be9ad1873db804e0e8393268dc3 Mon Sep 17 00:00:00 2001 From: Kacper Jawoszek Date: Mon, 3 Nov 2025 10:20:37 -0800 Subject: [PATCH 266/303] chore(otel): Change default of trace_to_cloud to None for Agent Engine deploy Also added --no-trace_to_cloud to allow for explicit disablement. This is needed to distinguish between default-on telemetry and explicit disablement via old enable_tracing/trace_to_cloud flags. Same change was done to ADK templates - see https://github.com/googleapis/python-aiplatform/pull/5917/files#diff-54084046c0ff3ec289916eefbb00d04f797ebd02dc15b417fc4fc88137fd2123R439. Co-authored-by: Kacper Jawoszek PiperOrigin-RevId: 827552868 --- src/google/adk/cli/cli_deploy.py | 2 +- src/google/adk/cli/cli_tools_click.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/google/adk/cli/cli_deploy.py b/src/google/adk/cli/cli_deploy.py index d26b3c9660..1fc79204fb 100644 --- a/src/google/adk/cli/cli_deploy.py +++ b/src/google/adk/cli/cli_deploy.py @@ -345,7 +345,7 @@ def to_agent_engine( temp_folder: str, adk_app: str, staging_bucket: str, - trace_to_cloud: bool, + trace_to_cloud: Optional[bool] = None, agent_engine_id: Optional[str] = None, absolutize_imports: bool = True, project: Optional[str] = None, diff --git a/src/google/adk/cli/cli_tools_click.py b/src/google/adk/cli/cli_tools_click.py index fa04a060d5..40c15fe8eb 100644 --- a/src/google/adk/cli/cli_tools_click.py +++ b/src/google/adk/cli/cli_tools_click.py @@ -1495,11 +1495,11 @@ def cli_deploy_cloud_run( ), ) @click.option( - "--trace_to_cloud", + "--trace_to_cloud/--no-trace_to_cloud", type=bool, is_flag=True, show_default=True, - default=False, + default=None, help="Optional. Whether to enable Cloud Trace for Agent Engine.", ) @click.option( @@ -1591,7 +1591,7 @@ def cli_deploy_agent_engine( region: str, staging_bucket: str, agent_engine_id: Optional[str], - trace_to_cloud: bool, + trace_to_cloud: Optional[bool], display_name: str, description: str, adk_app: str, From 92a7d1957367d498de773761edd142d8c108d751 Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Mon, 3 Nov 2025 10:31:11 -0800 Subject: [PATCH 267/303] fix: Undo adding MCP tools output schema to FunctionDeclaration Co-authored-by: Xuan Yang PiperOrigin-RevId: 827557144 --- src/google/adk/tools/mcp_tool/mcp_tool.py | 3 -- .../unittests/tools/mcp_tool/test_mcp_tool.py | 42 ------------------- 2 files changed, 45 deletions(-) diff --git a/src/google/adk/tools/mcp_tool/mcp_tool.py b/src/google/adk/tools/mcp_tool/mcp_tool.py index 82c09eb671..efbffc7f25 100644 --- a/src/google/adk/tools/mcp_tool/mcp_tool.py +++ b/src/google/adk/tools/mcp_tool/mcp_tool.py @@ -121,13 +121,10 @@ def _get_declaration(self) -> FunctionDeclaration: """ input_schema = self._mcp_tool.inputSchema parameters = _to_gemini_schema(input_schema) - output_schema = self._mcp_tool.outputSchema - response = _to_gemini_schema(output_schema) function_decl = FunctionDeclaration( name=self.name, description=self.description, parameters=parameters, - response=response, ) return function_decl diff --git a/tests/unittests/tools/mcp_tool/test_mcp_tool.py b/tests/unittests/tools/mcp_tool/test_mcp_tool.py index 482f6a8ac1..c1fbb5bc63 100644 --- a/tests/unittests/tools/mcp_tool/test_mcp_tool.py +++ b/tests/unittests/tools/mcp_tool/test_mcp_tool.py @@ -150,48 +150,6 @@ def test_get_declaration(self): assert declaration.parameters is not None assert declaration.response is None - def test_get_declaration_with_output_schema(self): - """Test function declaration generation with an output schema.""" - self.mock_mcp_tool.outputSchema = { - "type": "object", - "properties": { - "status": { - "type": "string", - "description": "The status of the operation", - }, - }, - } - tool = MCPTool( - mcp_tool=self.mock_mcp_tool, - mcp_session_manager=self.mock_session_manager, - ) - - declaration = tool._get_declaration() - - assert isinstance(declaration, FunctionDeclaration) - assert declaration.response is not None - assert declaration.response.type == Type.OBJECT - assert "status" in declaration.response.properties - assert declaration.response.properties["status"].type == Type.STRING - assert ( - declaration.response.properties["status"].description - == "The status of the operation" - ) - - def test_get_declaration_with_empty_output_schema(self): - """Test function declaration with an empty output schema.""" - self.mock_mcp_tool.outputSchema = {} - tool = MCPTool( - mcp_tool=self.mock_mcp_tool, - mcp_session_manager=self.mock_session_manager, - ) - - declaration = tool._get_declaration() - - assert declaration.response is not None - assert declaration.response.type == Type.OBJECT - assert declaration.response.properties is None - @pytest.mark.asyncio async def test_run_async_impl_no_auth(self): """Test running tool without authentication.""" From 8dff85099d67623dd6f4a707fb932ea55b8aaf9b Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Mon, 3 Nov 2025 10:31:52 -0800 Subject: [PATCH 268/303] fix: Support models slash prefix in model name extraction Support "models/" prefix in model name extraction PiperOrigin-RevId: 827557443 --- src/google/adk/utils/model_name_utils.py | 8 ++++++-- tests/unittests/utils/test_model_name_utils.py | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/google/adk/utils/model_name_utils.py b/src/google/adk/utils/model_name_utils.py index 6e8add2565..641988d48d 100644 --- a/src/google/adk/utils/model_name_utils.py +++ b/src/google/adk/utils/model_name_utils.py @@ -27,8 +27,8 @@ def extract_model_name(model_string: str) -> str: """Extract the actual model name from either simple or path-based format. Args: - model_string: Either a simple model name like "gemini-2.5-pro" or - a path-based model name like "projects/.../models/gemini-2.0-flash-001" + model_string: Either a simple model name like "gemini-2.5-pro" or a + path-based model name like "projects/.../models/gemini-2.0-flash-001" Returns: The extracted model name (e.g., "gemini-2.5-pro") @@ -41,6 +41,10 @@ def extract_model_name(model_string: str) -> str: if match: return match.group(1) + # Handle 'models/' prefixed names like "models/gemini-2.5-pro" + if model_string.startswith('models/'): + return model_string[len('models/') :] + # If it's not a path-based model, return as-is (simple model name) return model_string diff --git a/tests/unittests/utils/test_model_name_utils.py b/tests/unittests/utils/test_model_name_utils.py index c80380df72..2e3b70a92b 100644 --- a/tests/unittests/utils/test_model_name_utils.py +++ b/tests/unittests/utils/test_model_name_utils.py @@ -42,6 +42,11 @@ def test_extract_model_name_path_based_model(self): path_model_3 = 'projects/test-project/locations/europe-west1/publishers/google/models/claude-3-sonnet' assert extract_model_name(path_model_3) == 'claude-3-sonnet' + def test_extract_model_name_with_models_prefix(self): + """Test extraction of model names with 'models/' prefix.""" + assert extract_model_name('models/gemini-2.5-pro') == 'gemini-2.5-pro' + assert extract_model_name('models/gemini-1.5-flash') == 'gemini-1.5-flash' + def test_extract_model_name_invalid_path(self): """Test that invalid path formats return the original string.""" invalid_paths = [ From aa1233608a9353ac46a6bdac0da9157e6170a736 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Mon, 3 Nov 2025 13:33:18 -0800 Subject: [PATCH 269/303] chore: Fix spelling Merge https://github.com/google/adk-python/pull/2447 This PR corrects misspellings identified by the [check-spelling action](https://github.com/marketplace/actions/check-spelling) The misspellings have been reported at https://github.com/jsoref/adk-python/actions/runs/16840838898/attempts/1#summary-47711379253 The action reports that the changes in this PR would make it happy: https://github.com/jsoref/adk-python/actions/runs/16840839269/attempts/1#summary-47711380479 Note: while I use tooling to identify errors, the tooling doesn't _actually_ provide the corrections, I'm picking them on my own. I'm a human, and I may make mistakes. I've included a couple of changes to make CI happy. Personally, I object to CI being in a state of "random drive by person who adds a blank line in the middle of a file must fix all the preexisting bugs in the file", but that appears to be the state for this repository. COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/2447 from jsoref:spelling d85398e7fd154d124d477c6af6181481a01f34e0 PiperOrigin-RevId: 827629615 --- .github/workflows/check-file-contents.yml | 2 +- AGENTS.md | 2 +- CHANGELOG.md | 19 ++++++----- .../remote_a2a/bigquery_agent/agent.py | 2 +- .../samples/a2a_human_in_loop/README.md | 2 +- .../samples/adk_answering_agent/README.md | 2 +- .../upload_docs_to_vertex_ai_search.py | 4 +-- .../samples/adk_answering_agent/utils.py | 2 +- .../adk_issue_formatting_agent/agent.py | 8 ++--- contributing/samples/adk_pr_agent/agent.py | 2 +- .../samples/adk_pr_triaging_agent/agent.py | 16 +++++----- .../samples/adk_triaging_agent/agent.py | 10 +++--- .../application_integration_agent/README.md | 2 +- .../application_integration_agent/agent.py | 2 +- contributing/samples/bigquery/agent.py | 2 +- contributing/samples/code_execution/agent.py | 4 +-- .../samples/fields_output_schema/agent.py | 4 +-- contributing/samples/google_api/agent.py | 2 +- .../samples/hello_world_ollama/README.md | 2 +- contributing/samples/jira_agent/agent.py | 2 +- contributing/samples/jira_agent/tools.py | 2 +- .../langchain_youtube_search_agent/README.md | 2 +- .../live_bidi_streaming_multi_agent/readme.md | 4 +-- .../readme.md | 4 +-- .../samples/mcp_stdio_notion_agent/README.md | 2 +- .../samples/oauth_calendar_agent/README.md | 2 +- .../samples/oauth_calendar_agent/agent.py | 4 +-- .../samples/session_state_agent/README.md | 4 +-- llms-full.txt | 6 ++-- pylintrc | 2 +- .../adk/a2a/converters/part_converter.py | 4 +-- .../adk/a2a/utils/agent_card_builder.py | 2 +- src/google/adk/agents/base_agent.py | 4 +-- src/google/adk/agents/common_configs.py | 2 +- .../agents/config_schemas/AgentConfig.json | 10 +++--- src/google/adk/agents/remote_a2a_agent.py | 2 +- src/google/adk/auth/auth_handler.py | 2 +- src/google/adk/auth/auth_preprocessor.py | 2 +- .../exchanger/base_credential_exchanger.py | 4 +-- .../exchanger/oauth2_credential_exchanger.py | 6 ++-- src/google/adk/cli/adk_web_server.py | 4 +-- src/google/adk/cli/cli_tools_click.py | 4 +-- src/google/adk/cli/utils/agent_loader.py | 5 ++- .../code_executors/code_execution_utils.py | 4 +-- .../evaluation/_eval_sets_manager_utils.py | 4 +-- src/google/adk/evaluation/agent_evaluator.py | 8 ++--- .../adk/evaluation/base_eval_service.py | 10 +++--- src/google/adk/evaluation/eval_metrics.py | 2 +- .../adk/evaluation/eval_sets_manager.py | 2 +- .../adk/evaluation/evaluation_generator.py | 2 +- src/google/adk/evaluation/evaluator.py | 2 +- .../adk/evaluation/gcs_eval_sets_manager.py | 4 +-- .../adk/evaluation/local_eval_service.py | 8 ++--- .../adk/evaluation/local_eval_sets_manager.py | 12 +++---- .../adk/evaluation/response_evaluator.py | 4 +-- src/google/adk/events/event.py | 2 +- .../adk/flows/llm_flows/_code_execution.py | 6 ++-- .../adk/flows/llm_flows/base_llm_flow.py | 4 +-- src/google/adk/models/base_llm_connection.py | 2 +- .../adk/models/gemini_llm_connection.py | 2 +- src/google/adk/plugins/plugin_manager.py | 2 +- src/google/adk/runners.py | 2 +- src/google/adk/telemetry/tracing.py | 2 +- src/google/adk/tools/_google_credentials.py | 2 +- .../adk/tools/apihub_tool/apihub_toolset.py | 2 +- .../apihub_tool/clients/apihub_client.py | 2 +- .../apihub_tool/clients/secret_client.py | 2 +- src/google/adk/tools/bigquery/config.py | 2 +- .../adk/tools/bigquery/data_insights_tool.py | 1 + src/google/adk/tools/bigquery/query_tool.py | 2 +- .../adk/tools/enterprise_search_tool.py | 2 +- src/google/adk/tools/function_tool.py | 4 +-- src/google/adk/tools/google_search_tool.py | 2 +- src/google/adk/tools/google_tool.py | 4 +-- .../openapi_spec_parser/tool_auth_handler.py | 6 ++-- src/google/adk/tools/url_context_tool.py | 2 +- src/google/adk/tools/vertex_ai_search_tool.py | 2 +- .../fixture/context_variable_agent/agent.py | 2 +- .../fixture/flow_complex_spark/agent.py | 6 ++-- .../flow_complex_spark/sample.session.json | 4 +-- tests/integration/fixture/tool_agent/agent.py | 16 +++++----- .../fixture/trip_planner_agent/agent.py | 2 +- .../models/test_litellm_with_function.py | 4 +-- .../test_evalute_agent_in_fixture.py | 4 +-- tests/integration/test_tools.py | 6 ++-- .../a2a/converters/test_request_converter.py | 2 +- .../a2a/utils/test_agent_card_builder.py | 4 +-- tests/unittests/agents/test_agent_clone.py | 2 +- .../unittests/agents/test_remote_a2a_agent.py | 2 +- .../test_credential_exchanger_registry.py | 2 +- .../test_oauth2_credential_exchanger.py | 4 +-- tests/unittests/auth/test_auth_handler.py | 2 +- .../unittests/cli/utils/test_agent_loader.py | 8 ++--- .../test_code_executor_context.py | 2 +- .../evaluation/test_gcs_eval_sets_manager.py | 2 +- .../evaluation/test_local_eval_service.py | 2 +- .../test_local_eval_sets_manager.py | 32 +++++++++---------- .../flows/llm_flows/test_agent_transfer.py | 2 +- .../llm_flows/test_functions_sequential.py | 6 ++-- .../flows/llm_flows/test_functions_simple.py | 6 ++-- .../bigquery/test_bigquery_query_tool.py | 2 +- .../openapi_spec_parser/test.yaml | 2 +- .../test_tool_auth_handler.py | 6 ++-- .../tools/test_build_function_declaration.py | 2 +- .../tools/test_enterprise_web_search_tool.py | 4 +-- tests/unittests/tools/test_function_tool.py | 12 +++---- .../tools/test_gemini_schema_util.py | 6 ++-- .../tools/test_google_search_tool.py | 4 +-- .../unittests/tools/test_url_context_tool.py | 4 +-- .../tools/test_vertex_ai_search_tool.py | 4 +-- .../unittests/utils/test_model_name_utils.py | 2 +- 111 files changed, 228 insertions(+), 235 deletions(-) diff --git a/.github/workflows/check-file-contents.yml b/.github/workflows/check-file-contents.yml index 1f31ac0732..861e2247a0 100644 --- a/.github/workflows/check-file-contents.yml +++ b/.github/workflows/check-file-contents.yml @@ -89,7 +89,7 @@ jobs: - name: Check for import from cli package in certain changed Python files run: | git fetch origin ${{ github.base_ref }} - CHANGED_FILES=$(git diff --diff-filter=ACMR --name-only origin/${{ github.base_ref }}...HEAD | grep -E '\.py$' | grep -v -E 'cli/.*|tests/.*|contributing/samples/' || true) + CHANGED_FILES=$(git diff --diff-filter=ACMR --name-only origin/${{ github.base_ref }}...HEAD | grep -E '\.py$' | grep -v -E 'cli/.*|src/google/adk/tools/apihub_tool/apihub_toolset.py|tests/.*|contributing/samples/' || true) if [ -n "$CHANGED_FILES" ]; then echo "Changed Python files to check:" echo "$CHANGED_FILES" diff --git a/AGENTS.md b/AGENTS.md index ae5614cd8a..b478d094e5 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -236,7 +236,7 @@ isort --check src/ ### In ADK source -Below styles applies to the ADK source code (under `src/` folder of the Github repo). +Below styles applies to the ADK source code (under `src/` folder of the GitHub repo). #### Use relative imports (Required) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a1b65936d..0b8286bc2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -440,7 +440,7 @@ with Bigtable for building AI Agent applications(experimental feature) ([a953807 ### Improvements -* Add Github workflow config for the ADK Answering agent ([8dc0c94](https://github.com/google/adk-python/commit/8dc0c949afb9024738ff7ac1b2c19282175c3200)) +* Add GitHub workflow config for the ADK Answering agent ([8dc0c94](https://github.com/google/adk-python/commit/8dc0c949afb9024738ff7ac1b2c19282175c3200)) * Import AGENT_CARD_WELL_KNOWN_PATH from adk instead of from a2a directly ([37dae9b](https://github.com/google/adk-python/commit/37dae9b631db5060770b66fce0e25cf0ffb56948)) * Make `LlmRequest.LiveConnectConfig` field default to a factory ([74589a1](https://github.com/google/adk-python/commit/74589a1db7df65e319d1ad2f0676ee0cf5d6ec1d)) * Update the prompt to make the ADK Answering Agent more objective ([2833030](https://github.com/google/adk-python/commit/283303032a174d51b8d72f14df83c794d66cb605)) @@ -499,14 +499,13 @@ with Bigtable for building AI Agent applications(experimental feature) ([a953807 ### Features * [Core]Add agent card builder ([18f5bea](https://github.com/google/adk-python/commit/18f5bea411b3b76474ff31bfb2f62742825b45e5)) -* [Core]Add an to_a2a util to convert adk agent to A2A ASGI application ([a77d689](https://github.com/google/adk-python/commit/a77d68964a1c6b7659d6117d57fa59e43399e0c2)) +* [Core]Add a to_a2a util to convert adk agent to A2A ASGI application ([a77d689](https://github.com/google/adk-python/commit/a77d68964a1c6b7659d6117d57fa59e43399e0c2)) * [Core]Add camel case converter for agents ([0e173d7](https://github.com/google/adk-python/commit/0e173d736334f8c6c171b3144ac6ee5b7125c846)) * [Evals]Use LocalEvalService to run all evals in cli and web ([d1f182e](https://github.com/google/adk-python/commit/d1f182e8e68c4a5a4141592f3f6d2ceeada78887)) * [Evals]Enable FinalResponseMatchV2 metric as an experiment ([36e45cd](https://github.com/google/adk-python/commit/36e45cdab3bbfb653eee3f9ed875b59bcd525ea1)) * [Models]Add support for `model-optimizer-*` family of models in vertex ([ffe2bdb](https://github.com/google/adk-python/commit/ffe2bdbe4c2ea86cc7924eb36e8e3bb5528c0016)) * [Services]Added a sample for History Management ([67284fc](https://github.com/google/adk-python/commit/67284fc46667b8c2946762bc9234a8453d48a43c)) -* [Services]Support passing fully qualified agent engine resource name when constructing session service and memory service ([2e77804](https://github.com/google/adk-python/commit/2e778049d0a675e458f4e -35fe4104ca1298dbfcf)) +* [Services]Support passing fully qualified agent engine resource name when constructing session service and memory service ([2e77804](https://github.com/google/adk-python/commit/2e778049d0a675e458f4e35fe4104ca1298dbfcf)) * [Tools]Add ComputerUseToolset ([083dcb4](https://github.com/google/adk-python/commit/083dcb44650eb0e6b70219ede731f2fa78ea7d28)) * [Tools]Allow toolset to process llm_request before tools returned by it ([3643b4a](https://github.com/google/adk-python/commit/3643b4ae196fd9e38e52d5dc9d1cd43ea0733d36)) * [Tools]Support input/output schema by fully-qualified code reference ([dfee06a](https://github.com/google/adk-python/commit/dfee06ac067ea909251d6fb016f8331065d430e9)) @@ -619,7 +618,7 @@ with Bigtable for building AI Agent applications(experimental feature) ([a953807 ### Documentation -* Update the a2a exmaple link in README.md [d0fdfb8](https://github.com/google/adk-python/commit/d0fdfb8c8e2e32801999c81de8d8ed0be3f88e76) +* Update the a2a example link in README.md [d0fdfb8](https://github.com/google/adk-python/commit/d0fdfb8c8e2e32801999c81de8d8ed0be3f88e76) * Adds AGENTS.md to provide relevant project context for the Gemini CLI [37108be](https://github.com/google/adk-python/commit/37108be8557e011f321de76683835448213f8515) * Update CONTRIBUTING.md [ffa9b36](https://github.com/google/adk-python/commit/ffa9b361db615ae365ba62c09a8f4226fb761551) * Add adk project overview and architecture [28d0ea8](https://github.com/google/adk-python/commit/28d0ea876f2f8de952f1eccbc788e98e39f50cf5) @@ -814,7 +813,7 @@ with Bigtable for building AI Agent applications(experimental feature) ([a953807 * Fix typos in README for sample bigquery_agent and oauth_calendar_agent ([9bdd813](https://github.com/google/adk-python/commit/9bdd813be15935af5c5d2a6982a2391a640cab23)) * Make tool_call one span for telemetry and renamed to execute_tool ([999a7fe](https://github.com/google/adk-python/commit/999a7fe69d511b1401b295d23ab3c2f40bccdc6f)) * Use media type in chat window. Remove isArtifactImage and isArtifactAudio reference ([1452dac](https://github.com/google/adk-python/commit/1452dacfeb6b9970284e1ddeee6c4f3cb56781f8)) -* Set output_schema correctly for LiteLllm ([6157db7](https://github.com/google/adk-python/commit/6157db77f2fba4a44d075b51c83bff844027a147)) +* Set output_schema correctly for LiteLlm ([6157db7](https://github.com/google/adk-python/commit/6157db77f2fba4a44d075b51c83bff844027a147)) * Update pending event dialog style ([1db601c](https://github.com/google/adk-python/commit/1db601c4bd90467b97a2f26fe9d90d665eb3c740)) * Remove the gap between event holder and image ([63822c3](https://github.com/google/adk-python/commit/63822c3fa8b0bdce2527bd0d909c038e2b66dd98)) @@ -842,7 +841,7 @@ with Bigtable for building AI Agent applications(experimental feature) ([a953807 ## 1.1.1 ### Features -* Add BigQuery first-party tools. See [here](https://github.com/google/adk-python/commit/d6c6bb4b2489a8b7a4713e4747c30d6df0c07961) for more details. +* Add [BigQuery first-party tools](https://github.com/google/adk-python/commit/d6c6bb4b2489a8b7a4713e4747c30d6df0c07961). ## 1.1.0 @@ -978,7 +977,7 @@ with Bigtable for building AI Agent applications(experimental feature) ([a953807 * Fix google search reading undefined for `renderedContent`. ### Miscellaneous Chores -* Docstring improvements, typo fixings, github action to enfore code styles on formatting and imports, etc. +* Docstring improvements, typo fixings, github action to enforce code styles on formatting and imports, etc. ## 0.3.0 @@ -1017,7 +1016,7 @@ with Bigtable for building AI Agent applications(experimental feature) ([a953807 ### ⚠ BREAKING CHANGES -* Fix typo in method name in `Event`: has_trailing_code_exeuction_result --> has_trailing_code_execution_result. +* Fix typo in method name in `Event`: has_trailing_code_execution_result --> has_trailing_code_execution_result. ### Features @@ -1047,7 +1046,7 @@ with Bigtable for building AI Agent applications(experimental feature) ([a953807 ### Miscellaneous Chores -* Adds unit tests in Github action. +* Adds unit tests in GitHub action. * Improves test coverage. * Various typo fixes. diff --git a/contributing/samples/a2a_auth/remote_a2a/bigquery_agent/agent.py b/contributing/samples/a2a_auth/remote_a2a/bigquery_agent/agent.py index 976cea1707..05517cd86e 100644 --- a/contributing/samples/a2a_auth/remote_a2a/bigquery_agent/agent.py +++ b/contributing/samples/a2a_auth/remote_a2a/bigquery_agent/agent.py @@ -46,7 +46,7 @@ Use the provided tools to conduct various operations on users' data in Google BigQuery. Scenario 1: - The user wants to query their biguqery datasets + The user wants to query their bigquery datasets Use bigquery_datasets_list to query user's datasets Scenario 2: diff --git a/contributing/samples/a2a_human_in_loop/README.md b/contributing/samples/a2a_human_in_loop/README.md index 5f90fad9f8..d88d5f8f3c 100644 --- a/contributing/samples/a2a_human_in_loop/README.md +++ b/contributing/samples/a2a_human_in_loop/README.md @@ -99,7 +99,7 @@ Agent: ✅ Great news! Your reimbursement has been approved by the manager. Proc The human-in-the-loop process follows this pattern: 1. **Initial Call**: Root agent delegates approval request to remote approval agent for amounts >$100 -2. **Pending Response**: Remote approval agent returns immediate response with `status: "pending"` and ticket ID and serface the approval request to root agent +2. **Pending Response**: Remote approval agent returns immediate response with `status: "pending"` and ticket ID and surface the approval request to root agent 3. **Agent Acknowledgment**: Root agent informs user about pending approval status 4. **Human Interaction**: Human manager interacts with root agent to review and approve/reject the request 5. **Updated Response**: Root agent receives updated tool response with approval decision and send it to remote agent diff --git a/contributing/samples/adk_answering_agent/README.md b/contributing/samples/adk_answering_agent/README.md index 2941f29744..25694fad56 100644 --- a/contributing/samples/adk_answering_agent/README.md +++ b/contributing/samples/adk_answering_agent/README.md @@ -116,4 +116,4 @@ The following environment variables are required to upload the docs to update th * `ADK_DOCS_ROOT_PATH=YOUR_ADK_DOCS_ROOT_PATH`: **(Required)** Path to the root of the downloaded adk-docs repo. * `ADK_PYTHON_ROOT_PATH=YOUR_ADK_PYTHON_ROOT_PATH`: **(Required)** Path to the root of the downloaded adk-python repo. -For local execution in interactive mode, you can place these variables in a `.env` file in the project's root directory. For the GitHub workflow, they should be configured as repository secrets. \ No newline at end of file +For local execution in interactive mode, you can place these variables in a `.env` file in the project's root directory. For the GitHub workflow, they should be configured as repository secrets. diff --git a/contributing/samples/adk_answering_agent/upload_docs_to_vertex_ai_search.py b/contributing/samples/adk_answering_agent/upload_docs_to_vertex_ai_search.py index 945c317981..96fe6adf0a 100644 --- a/contributing/samples/adk_answering_agent/upload_docs_to_vertex_ai_search.py +++ b/contributing/samples/adk_answering_agent/upload_docs_to_vertex_ai_search.py @@ -130,7 +130,7 @@ def upload_directory_to_gcs( ) return False - print(f"Sucessfully uploaded {file_count} files to GCS.") + print(f"Successfully uploaded {file_count} files to GCS.") return True @@ -148,7 +148,7 @@ def import_from_gcs_to_vertex_ai( # parent has the format of # "projects/{project_number}/locations/{location}/collections/{collection}/dataStores/{datastore_id}/branches/default_branch" parent=full_datastore_id + "/branches/default_branch", - # Specify the GCS source and use "content" for unstructed data. + # Specify the GCS source and use "content" for unstructured data. gcs_source=discoveryengine.GcsSource( input_uris=[gcs_uri], data_schema="content" ), diff --git a/contributing/samples/adk_answering_agent/utils.py b/contributing/samples/adk_answering_agent/utils.py index d3d6c264c4..9393d9c85a 100644 --- a/contributing/samples/adk_answering_agent/utils.py +++ b/contributing/samples/adk_answering_agent/utils.py @@ -143,7 +143,7 @@ def convert_gcs_to_https(gcs_uri: str) -> Optional[str]: if _check_url_exists(potential_url): return potential_url else: - # If it doesn't exist, fallback to the regular github url + # If it doesn't exist, fall back to the regular github url return _generate_github_url(prefix, relative_path) # Convert the links for other cases, e.g. adk-python diff --git a/contributing/samples/adk_issue_formatting_agent/agent.py b/contributing/samples/adk_issue_formatting_agent/agent.py index 78add9b83b..d2f040ed56 100644 --- a/contributing/samples/adk_issue_formatting_agent/agent.py +++ b/contributing/samples/adk_issue_formatting_agent/agent.py @@ -45,7 +45,7 @@ def list_open_issues(issue_count: int) -> dict[str, Any]: - """List most recent `issue_count` numer of open issues in the repo. + """List most recent `issue_count` number of open issues in the repo. Args: issue_count: number of issues to return @@ -75,7 +75,7 @@ def get_issue(issue_number: int) -> dict[str, Any]: """Get the details of the specified issue number. Args: - issue_number: issue number of the Github issue. + issue_number: issue number of the GitHub issue. Returns: The status of this request, with the issue details when successful. @@ -92,7 +92,7 @@ def add_comment_to_issue(issue_number: int, comment: str) -> dict[str, any]: """Add the specified comment to the given issue number. Args: - issue_number: issue number of the Github issue + issue_number: issue number of the GitHub issue comment: comment to add Returns: @@ -116,7 +116,7 @@ def list_comments_on_issue(issue_number: int) -> dict[str, any]: """List all comments on the given issue number. Args: - issue_number: issue number of the Github issue + issue_number: issue number of the GitHub issue Returns: The the status of this request, with the list of comments when successful. diff --git a/contributing/samples/adk_pr_agent/agent.py b/contributing/samples/adk_pr_agent/agent.py index 8c398e7edd..7d6088ac45 100644 --- a/contributing/samples/adk_pr_agent/agent.py +++ b/contributing/samples/adk_pr_agent/agent.py @@ -125,7 +125,7 @@ def get_github_pr_info_http(pr_number: int) -> str | None: system_prompt = """ You are a helpful assistant to generate reasonable descriptions for pull requests for software engineers. -The descritions should not be too short (e.g.: less than 3 words), or too long (e.g.: more than 30 words). +The descriptions should not be too short (e.g.: less than 3 words), or too long (e.g.: more than 30 words). The generated description should start with `chore`, `docs`, `feat`, `fix`, `test`, or `refactor`. `feat` stands for a new feature. diff --git a/contributing/samples/adk_pr_triaging_agent/agent.py b/contributing/samples/adk_pr_triaging_agent/agent.py index 57aafaee6b..90f6b7cdc1 100644 --- a/contributing/samples/adk_pr_triaging_agent/agent.py +++ b/contributing/samples/adk_pr_triaging_agent/agent.py @@ -58,7 +58,7 @@ def get_pull_request_details(pr_number: int) -> str: """Get the details of the specified pull request. Args: - pr_number: number of the Github pull request. + pr_number: number of the GitHub pull request. Returns: The status of this request, with the details when successful. @@ -162,7 +162,7 @@ def add_label_to_pr(pr_number: int, label: str) -> dict[str, Any]: """Adds a specified label on a pull request. Args: - pr_number: the number of the Github pull request + pr_number: the number of the GitHub pull request label: the label to add Returns: @@ -175,7 +175,7 @@ def add_label_to_pr(pr_number: int, label: str) -> dict[str, Any]: f"Error: Label '{label}' is not an allowed label. Will not apply." ) - # Pull Request is a special issue in Github, so we can use issue url for PR. + # Pull Request is a special issue in GitHub, so we can use issue url for PR. label_url = ( f"{GITHUB_BASE_URL}/repos/{OWNER}/{REPO}/issues/{pr_number}/labels" ) @@ -197,7 +197,7 @@ def add_comment_to_pr(pr_number: int, comment: str) -> dict[str, Any]: """Add the specified comment to the given PR number. Args: - pr_number: the number of the Github pull request + pr_number: the number of the GitHub pull request comment: the comment to add Returns: @@ -205,7 +205,7 @@ def add_comment_to_pr(pr_number: int, comment: str) -> dict[str, Any]: """ print(f"Attempting to add comment '{comment}' to issue #{pr_number}") - # Pull Request is a special issue in Github, so we can use issue url for PR. + # Pull Request is a special issue in GitHub, so we can use issue url for PR. url = f"{GITHUB_BASE_URL}/repos/{OWNER}/{REPO}/issues/{pr_number}/comments" payload = {"body": comment} @@ -225,7 +225,7 @@ def add_comment_to_pr(pr_number: int, comment: str) -> dict[str, Any]: description="Triage ADK pull requests.", instruction=f""" # 1. Identity - You are a Pull Request (PR) triaging bot for the Github {REPO} repo with the owner {OWNER}. + You are a Pull Request (PR) triaging bot for the GitHub {REPO} repo with the owner {OWNER}. # 2. Responsibilities Your core responsibility includes: @@ -242,7 +242,7 @@ def add_comment_to_pr(pr_number: int, comment: str) -> dict[str, Any]: - If it's about session, memory, artifacts services, label it with "services" - If it's about UI/web, label it with "web" - If it's related to tools, label it with "tools" - - If it's about agent evalaution, then label it with "eval". + - If it's about agent evaluation, then label it with "eval". - If it's about streaming/live, label it with "live". - If it's about model support(non-Gemini, like Litellm, Ollama, OpenAI models), label it with "models". - If it's about tracing, label it with "tracing". @@ -280,7 +280,7 @@ def add_comment_to_pr(pr_number: int, comment: str) -> dict[str, Any]: - Call the `get_pull_request_details` tool to get the details of the PR. - Skip the PR (i.e. do not label or comment) if any of the following is true: - the PR is closed - - the PR is labeled with "google-contributior" + - the PR is labeled with "google-contributor" - the PR is already labelled with the above labels (e.g. "documentation", "services", "tools", etc.). - Check if the PR is following the contribution guidelines. - If it's not following the guidelines, recommend or add a comment to the PR that points to the contribution guidelines (https://github.com/google/adk-python/blob/main/CONTRIBUTING.md). diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index e855b950cb..4f5679c969 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -50,7 +50,7 @@ def list_unlabeled_issues(issue_count: int) -> dict[str, Any]: - """List most recent `issue_count` numer of unlabeled issues in the repo. + """List most recent `issue_count` number of unlabeled issues in the repo. Args: issue_count: number of issues to return @@ -87,7 +87,7 @@ def add_label_and_owner_to_issue( """Add the specified label and owner to the given issue number. Args: - issue_number: issue number of the Github issue. + issue_number: issue number of the GitHub issue. label: label to assign Returns: @@ -143,7 +143,7 @@ def change_issue_type(issue_number: int, issue_type: str) -> dict[str, Any]: """Change the issue type of the given issue number. Args: - issue_number: issue number of the Github issue, in string foramt. + issue_number: issue number of the GitHub issue, in string format. issue_type: issue type to assign Returns: @@ -168,7 +168,7 @@ def change_issue_type(issue_number: int, issue_type: str) -> dict[str, Any]: name="adk_triaging_assistant", description="Triage ADK issues.", instruction=f""" - You are a triaging bot for the Github {REPO} repo with the owner {OWNER}. You will help get issues, and recommend a label. + You are a triaging bot for the GitHub {REPO} repo with the owner {OWNER}. You will help get issues, and recommend a label. IMPORTANT: {APPROVAL_INSTRUCTION} Here are the rules for labeling: @@ -177,7 +177,7 @@ def change_issue_type(issue_number: int, issue_type: str) -> dict[str, Any]: - If it's about UI/web, label it with "web" - If the user is asking about a question, label it with "question" - If it's related to tools, label it with "tools" - - If it's about agent evalaution, then label it with "eval". + - If it's about agent evaluation, then label it with "eval". - If it's about streaming/live, label it with "live". - If it's about model support(non-Gemini, like Litellm, Ollama, OpenAI models), label it with "models". - If it's about tracing, label it with "tracing". diff --git a/contributing/samples/application_integration_agent/README.md b/contributing/samples/application_integration_agent/README.md index a7106c09a8..0e0a70c17c 100644 --- a/contributing/samples/application_integration_agent/README.md +++ b/contributing/samples/application_integration_agent/README.md @@ -7,7 +7,7 @@ This sample demonstrates how to use the `ApplicationIntegrationToolset` within a ## Prerequisites 1. **Set up Integration Connection:** - * You need an existing [Integration connection](https://cloud.google.com/integration-connectors/docs/overview) configured to interact with your Jira instance. Follow the [documentation](https://google.github.io/adk-docs/tools/google-cloud-tools/#use-integration-connectors) to provision the Integration Connector in Google Cloud and then use this [documentation](https://cloud.google.com/integration-connectors/docs/connectors/jiracloud/configure) to create an JIRA connection. Note the `Connection Name`, `Project ID`, and `Location` of your connection. + * You need an existing [Integration connection](https://cloud.google.com/integration-connectors/docs/overview) configured to interact with your Jira instance. Follow the [documentation](https://google.github.io/adk-docs/tools/google-cloud-tools/#use-integration-connectors) to provision the Integration Connector in Google Cloud and then use this [documentation](https://cloud.google.com/integration-connectors/docs/connectors/jiracloud/configure) to create an Jira connection. Note the `Connection Name`, `Project ID`, and `Location` of your connection. * 2. **Configure Environment Variables:** diff --git a/contributing/samples/application_integration_agent/agent.py b/contributing/samples/application_integration_agent/agent.py index 9658641e3c..83e1143600 100644 --- a/contributing/samples/application_integration_agent/agent.py +++ b/contributing/samples/application_integration_agent/agent.py @@ -40,7 +40,7 @@ model="gemini-2.0-flash", name="Issue_Management_Agent", instruction=""" - You are an agent that helps manage issues in a JIRA instance. + You are an agent that helps manage issues in a Jira instance. Be accurate in your responses based on the tool response. You can perform any formatting in the response that is appropriate or if asked by the user. If there is an error in the tool response, understand the error and try and see if you can fix the error and then and execute the tool again. For example if a variable or parameter is missing, try and see if you can find it in the request or user query or default it and then execute the tool again or check for other tools that could give you the details. If there are any math operations like count or max, min in the user request, call the tool to get the data and perform the math operations and then return the result in the response. For example for maximum, fetch the list and then do the math operation. diff --git a/contributing/samples/bigquery/agent.py b/contributing/samples/bigquery/agent.py index 8096fde653..56a7367c8d 100644 --- a/contributing/samples/bigquery/agent.py +++ b/contributing/samples/bigquery/agent.py @@ -42,7 +42,7 @@ ) if CREDENTIALS_TYPE == AuthCredentialTypes.OAUTH2: - # Initiaze the tools to do interactive OAuth + # Initialize the tools to do interactive OAuth # The environment variables OAUTH_CLIENT_ID and OAUTH_CLIENT_SECRET # must be set credentials_config = BigQueryCredentialsConfig( diff --git a/contributing/samples/code_execution/agent.py b/contributing/samples/code_execution/agent.py index b8cbd61417..82de04f25d 100644 --- a/contributing/samples/code_execution/agent.py +++ b/contributing/samples/code_execution/agent.py @@ -43,7 +43,7 @@ def base_system_instruction(): ``` **Output Visibility:** Always print the output of code execution to visualize results, especially for data exploration and analysis. For example: - - To look a the shape of a pandas.DataFrame do: + - To look at the shape of a pandas.DataFrame do: ```tool_code print(df.shape) ``` @@ -84,7 +84,7 @@ def base_system_instruction(): You need to assist the user with their queries by looking at the data and the context in the conversation. -You final answer should summarize the code and code execution relavant to the user query. +You final answer should summarize the code and code execution relevant to the user query. You should include all pieces of data to answer the user query, such as the table from code execution results. If you cannot answer the question directly, you should follow the guidelines above to generate the next step. diff --git a/contributing/samples/fields_output_schema/agent.py b/contributing/samples/fields_output_schema/agent.py index e3c6966847..70645ea9ba 100644 --- a/contributing/samples/fields_output_schema/agent.py +++ b/contributing/samples/fields_output_schema/agent.py @@ -16,7 +16,7 @@ from pydantic import BaseModel -class WeahterData(BaseModel): +class WeatherData(BaseModel): temperature: str humidity: str wind_speed: str @@ -43,6 +43,6 @@ class WeahterData(BaseModel): * wind_speed: 13 mph """, - output_schema=WeahterData, + output_schema=WeatherData, output_key='weather_data', ) diff --git a/contributing/samples/google_api/agent.py b/contributing/samples/google_api/agent.py index bb06e36f27..390f1bca10 100644 --- a/contributing/samples/google_api/agent.py +++ b/contributing/samples/google_api/agent.py @@ -46,7 +46,7 @@ Use the provided tools to conduct various operations on users' data in Google BigQuery. Scenario 1: - The user wants to query their biguqery datasets + The user wants to query their bigquery datasets Use bigquery_datasets_list to query user's datasets Scenario 2: diff --git a/contributing/samples/hello_world_ollama/README.md b/contributing/samples/hello_world_ollama/README.md index 559e42f65e..dc7acf139d 100644 --- a/contributing/samples/hello_world_ollama/README.md +++ b/contributing/samples/hello_world_ollama/README.md @@ -25,7 +25,7 @@ ollama show mistral-small3.1 You are supposed to see `tools` listed under capabilities. -You can also look at the template the model is using and tweak it based on your needs. +You can also look at the model's template and tweak it based on your needs. ```bash ollama show --modelfile llama3.1 > model_file_to_modify diff --git a/contributing/samples/jira_agent/agent.py b/contributing/samples/jira_agent/agent.py index 9f2b866c95..537d8f0845 100644 --- a/contributing/samples/jira_agent/agent.py +++ b/contributing/samples/jira_agent/agent.py @@ -19,7 +19,7 @@ root_agent = Agent( model='gemini-2.0-flash-001', name='jira_connector_agent', - description='This agent helps search issues in JIRA', + description='This agent helps search issues in Jira', instruction=""" To start with, greet the user First, you will be given a description of what you can do. diff --git a/contributing/samples/jira_agent/tools.py b/contributing/samples/jira_agent/tools.py index f03c5ed106..94c37565fa 100644 --- a/contributing/samples/jira_agent/tools.py +++ b/contributing/samples/jira_agent/tools.py @@ -27,7 +27,7 @@ tool_name="jira_conversation_tool", tool_instructions=""" - This tool is to call an integration to search for issues in JIRA + This tool is to call an integration to search for issues in Jira """, ) diff --git a/contributing/samples/langchain_youtube_search_agent/README.md b/contributing/samples/langchain_youtube_search_agent/README.md index e87ca59420..7d46f60b8d 100644 --- a/contributing/samples/langchain_youtube_search_agent/README.md +++ b/contributing/samples/langchain_youtube_search_agent/README.md @@ -1,6 +1,6 @@ # Langchain Youtube Search Agent -This agent utilize the Lanchain YoutubeSearchTool to search youtubes. +This agent utilize the Langchain YoutubeSearchTool to search youtubes. You need to install below dependencies: ```python diff --git a/contributing/samples/live_bidi_streaming_multi_agent/readme.md b/contributing/samples/live_bidi_streaming_multi_agent/readme.md index 27c93b10f9..dee6f38bf0 100644 --- a/contributing/samples/live_bidi_streaming_multi_agent/readme.md +++ b/contributing/samples/live_bidi_streaming_multi_agent/readme.md @@ -1,9 +1,7 @@ # Simplistic Live (Bidi-Streaming) Multi-Agent -This project provides a basic example of a live, bidirectional streaming multi-agent +This project provides a basic example of a live, [bidirectional streaming](https://google.github.io/adk-docs/streaming/) multi-agent designed for testing and experimentation. -You can see full documentation [here](https://google.github.io/adk-docs/streaming/). - ## Getting Started Follow these steps to get the agent up and running: diff --git a/contributing/samples/live_bidi_streaming_single_agent/readme.md b/contributing/samples/live_bidi_streaming_single_agent/readme.md index 6a9258f3ee..56187fb0d4 100644 --- a/contributing/samples/live_bidi_streaming_single_agent/readme.md +++ b/contributing/samples/live_bidi_streaming_single_agent/readme.md @@ -1,9 +1,7 @@ # Simplistic Live (Bidi-Streaming) Agent -This project provides a basic example of a live, bidirectional streaming agent +This project provides a basic example of a live, [bidirectional streaming](https://google.github.io/adk-docs/streaming/) agent designed for testing and experimentation. -You can see full documentation [here](https://google.github.io/adk-docs/streaming/). - ## Getting Started Follow these steps to get the agent up and running: diff --git a/contributing/samples/mcp_stdio_notion_agent/README.md b/contributing/samples/mcp_stdio_notion_agent/README.md index f53bd2f03f..d40df313f2 100644 --- a/contributing/samples/mcp_stdio_notion_agent/README.md +++ b/contributing/samples/mcp_stdio_notion_agent/README.md @@ -17,4 +17,4 @@ export NOTION_API_KEY= * Send below queries: * What can you do for me ? - * Seach `XXXX` in my pages. + * Search `XXXX` in my pages. diff --git a/contributing/samples/oauth_calendar_agent/README.md b/contributing/samples/oauth_calendar_agent/README.md index 87e382f6c1..381bb7902b 100644 --- a/contributing/samples/oauth_calendar_agent/README.md +++ b/contributing/samples/oauth_calendar_agent/README.md @@ -13,7 +13,7 @@ This sample tests and demos the OAuth support in ADK via two tools: * 2. get_calendar_events - This is an google calendar tool that calls Google Calendar API to get the + This is a google calendar tool that calls Google Calendar API to get the details of a specific calendar. This tool is from the ADK built-in Google Calendar ToolSet. Everything is wrapped and the tool user just needs to pass in the client id and client secret. diff --git a/contributing/samples/oauth_calendar_agent/agent.py b/contributing/samples/oauth_calendar_agent/agent.py index 0be3b6e593..a33ea2b942 100644 --- a/contributing/samples/oauth_calendar_agent/agent.py +++ b/contributing/samples/oauth_calendar_agent/agent.py @@ -131,7 +131,7 @@ def update_time(callback_context: CallbackContext): name="calendar_agent", instruction=""" You are a helpful personal calendar assistant. - Use the provided tools to search for calendar events (use 10 as limit if user does't specify), and update them. + Use the provided tools to search for calendar events (use 10 as limit if user doesn't specify), and update them. Use "primary" as the calendarId if users don't specify. Scenario1: @@ -159,7 +159,7 @@ def update_time(callback_context: CallbackContext): {userInfo?} - Currnet time: {_time} + Current time: {_time} """, tools=[ AuthenticatedFunctionTool( diff --git a/contributing/samples/session_state_agent/README.md b/contributing/samples/session_state_agent/README.md index bec0536487..699517ec53 100644 --- a/contributing/samples/session_state_agent/README.md +++ b/contributing/samples/session_state_agent/README.md @@ -6,7 +6,7 @@ After assigning a state using the context object (e.g. `tool_context.state['log_query_var'] = 'log_query_var_value'`): * The state is available for use in a later callback. -* Once the resulting event is processed by the runner and appneded in the +* Once the resulting event is processed by the runner and appended in the session, the state will be also persisted in the session. This sample agent is for demonstrating the aforementioned behavior. @@ -55,7 +55,7 @@ state is available after writing via the context object ### Current Behavior -The current behavior of pesisting states are: +The current behavior of persisting states are: * for `before_agent_callback`: state delta will be persisted after all callbacks are processed. * for `before_model_callback`: state delta will be persisted with the final LlmResponse, diff --git a/llms-full.txt b/llms-full.txt index 35ffd56dab..4c744512e4 100644 --- a/llms-full.txt +++ b/llms-full.txt @@ -7010,7 +7010,7 @@ This approach involves creating individual test files, each representing a singl - `Expected Intermediate Agent Responses`: These are the natural language responses that the agent (or sub-agents) generates as it moves towards generating a final answer. These natural language responses are usually an - artifact of an multi-agent system, where your root agent depends on sub-agents to achieve a goal. These intermediate responses, may or may not be of + artifact of a multi-agent system, where your root agent depends on sub-agents to achieve a goal. These intermediate responses, may or may not be of interest to the end user, but for a developer/owner of the system, are of critical importance, as they give you the confidence that the agent went through the right path to generate final response. @@ -9102,7 +9102,7 @@ Let's break down what's happening: replace `u_123` with a specific user ID, and `s_123` with a specific session ID. * `{"state": {"key1": "value1", "key2": 42}}`: This is optional. You can use - this to customize the agent's pre-existing state (dict) when creating the + this to customize the agent's preexisting state (dict) when creating the session. This should return the session information if it was created successfully. The @@ -13315,7 +13315,7 @@ You set up authentication when defining your tool: ## Journey 1: Building Agentic Applications with Authenticated Tools -This section focuses on using pre-existing tools (like those from `RestApiTool/ OpenAPIToolset`, `APIHubToolset`, `GoogleApiToolSet`) that require authentication within your agentic application. Your main responsibility is configuring the tools and handling the client-side part of interactive authentication flows (if required by the tool). +This section focuses on using preexisting tools (like those from `RestApiTool/ OpenAPIToolset`, `APIHubToolset`, `GoogleApiToolSet`) that require authentication within your agentic application. Your main responsibility is configuring the tools and handling the client-side part of interactive authentication flows (if required by the tool). ### 1. Configuring Tools with Authentication diff --git a/pylintrc b/pylintrc index 3fc2263683..303cbc3027 100644 --- a/pylintrc +++ b/pylintrc @@ -257,7 +257,7 @@ single-line-if-stmt=yes max-module-lines=99999 # String used as indentation unit. The internal Google style guide mandates 2 -# spaces. Google's externaly-published style guide says 4, consistent with +# spaces. Google's externally-published style guide says 4, consistent with # PEP 8. Here, we use 2 spaces, for conformity with many open-sourced Google # projects (like TensorFlow). indent-string=' ' diff --git a/src/google/adk/a2a/converters/part_converter.py b/src/google/adk/a2a/converters/part_converter.py index d796cb5ff1..3718b3ac13 100644 --- a/src/google/adk/a2a/converters/part_converter.py +++ b/src/google/adk/a2a/converters/part_converter.py @@ -13,7 +13,7 @@ # limitations under the License. """ -module containing utilities for conversion betwen A2A Part and Google GenAI Part +module containing utilities for conversion between A2A Part and Google GenAI Part """ from __future__ import annotations @@ -191,7 +191,7 @@ def convert_genai_part_to_a2a_part( # Convert the funcall and function response to A2A DataPart. # This is mainly for converting human in the loop and auth request and # response. - # TODO once A2A defined how to suervice such information, migrate below + # TODO once A2A defined how to service such information, migrate below # logic accordingly if part.function_call: return a2a_types.Part( diff --git a/src/google/adk/a2a/utils/agent_card_builder.py b/src/google/adk/a2a/utils/agent_card_builder.py index bde5620168..aa7f657f99 100644 --- a/src/google/adk/a2a/utils/agent_card_builder.py +++ b/src/google/adk/a2a/utils/agent_card_builder.py @@ -473,7 +473,7 @@ def _get_default_description(agent: BaseAgent) -> str: async def _extract_examples_from_agent( agent: BaseAgent, ) -> Optional[List[Dict]]: - """Extract examples from example_tool if configured, otherwise from agent instruction.""" + """Extract examples from example_tool if configured; otherwise, from agent instruction.""" if not isinstance(agent, LlmAgent): return None diff --git a/src/google/adk/agents/base_agent.py b/src/google/adk/agents/base_agent.py index a1d633bc06..09eef908e0 100644 --- a/src/google/adk/agents/base_agent.py +++ b/src/google/adk/agents/base_agent.py @@ -232,7 +232,7 @@ def clone( invalid_fields = set(update) - allowed_fields if invalid_fields: raise ValueError( - f'Cannot update non-existent fields in {self.__class__.__name__}:' + f'Cannot update nonexistent fields in {self.__class__.__name__}:' f' {invalid_fields}' ) @@ -588,7 +588,7 @@ def from_config( """Creates an agent from a config. If sub-classes uses a custom agent config, override `_from_config_kwargs` - method to return an updated kwargs for agent construstor. + method to return an updated kwargs for agent constructor. Args: config: The config to create the agent from. diff --git a/src/google/adk/agents/common_configs.py b/src/google/adk/agents/common_configs.py index b765fcb30c..f1f9c57f74 100644 --- a/src/google/adk/agents/common_configs.py +++ b/src/google/adk/agents/common_configs.py @@ -65,7 +65,7 @@ class CodeConfig(BaseModel): args: Optional[List[ArgumentConfig]] = None """Optional. The arguments for the code when `name` refers to a function or a - class's contructor. + class's constructor. Examples: ``` diff --git a/src/google/adk/agents/config_schemas/AgentConfig.json b/src/google/adk/agents/config_schemas/AgentConfig.json index 9662a118ab..6fa079cea1 100644 --- a/src/google/adk/agents/config_schemas/AgentConfig.json +++ b/src/google/adk/agents/config_schemas/AgentConfig.json @@ -629,7 +629,7 @@ } ], "default": null, - "description": "Optional. The producer of the content. Must be either 'user' or\n 'model'. Useful to set for multi-turn conversations, otherwise can be\n empty. If role is not specified, SDK will determine the role.", + "description": "Optional. The producer of the content. Must be either 'user' or\n 'model'. Useful to set for multi-turn conversations; otherwise, can be\n empty. If role is not specified, SDK will determine the role.", "title": "Role" } }, @@ -1095,7 +1095,7 @@ } ], "default": null, - "description": "Optional. Display name of the file data. Used to provide a label or filename to distinguish file datas. It is not currently used in the Gemini GenerateContent calls.", + "description": "Optional. Display name of the file data. Used to provide a label or filename to distinguish file data. It is not currently used in the Gemini GenerateContent calls.", "title": "Displayname" }, "fileUri": { @@ -1347,7 +1347,7 @@ } ], "default": null, - "description": "Optional. Describes the parameters to this function in JSON Schema Object format. Reflects the Open API 3.03 Parameter Object. string Key: the name of the parameter. Parameter names are case sensitive. Schema Value: the Schema defining the type used for the parameter. For function with no parameters, this can be left unset. Parameter names must start with a letter or an underscore and must only contain chars a-z, A-Z, 0-9, or underscores with a maximum length of 64. Example with 1 required and 1 optional parameter: type: OBJECT properties: param1: type: STRING param2: type: INTEGER required: - param1" + "description": "Optional. Describes the parameters to this function in JSON Schema Object format. Reflects the Open API 3.03 Parameter Object. string Key: the name of the parameter. Parameter names are case-sensitive. Schema Value: the Schema defining the type used for the parameter. For function with no parameters, this can be left unset. Parameter names must start with a letter or an underscore and must only contain chars a-z, A-Z, 0-9, or underscores with a maximum length of 64. Example with 1 required and 1 optional parameter: type: OBJECT properties: param1: type: STRING param2: type: INTEGER required: - param1" }, "parametersJsonSchema": { "anyOf": [ @@ -4083,7 +4083,7 @@ } ], "default": null, - "description": "Optional. Number of search results to return per query. The default value is 10. The maximumm allowed value is 10.", + "description": "Optional. Number of search results to return per query. The default value is 10. The maximum allowed value is 10.", "title": "Maxresults" } }, @@ -4501,7 +4501,7 @@ }, "mcp__types__Tool": { "additionalProperties": true, - "description": "Definition for a tool the client can call.", + "description": "Definition for a tool that the client can call.", "properties": { "name": { "title": "Name", diff --git a/src/google/adk/agents/remote_a2a_agent.py b/src/google/adk/agents/remote_a2a_agent.py index d3aea5d3ee..af070bb8c6 100644 --- a/src/google/adk/agents/remote_a2a_agent.py +++ b/src/google/adk/agents/remote_a2a_agent.py @@ -570,7 +570,7 @@ async def _run_live_impl( raise NotImplementedError( f"_run_live_impl for {type(self)} via A2A is not implemented." ) - # This makes the function an async generator but the yield is still unreachable + # This makes the function into an async generator but the yield is still unreachable yield async def cleanup(self) -> None: diff --git a/src/google/adk/auth/auth_handler.py b/src/google/adk/auth/auth_handler.py index 7a51a71e29..07515ab2e8 100644 --- a/src/google/adk/auth/auth_handler.py +++ b/src/google/adk/auth/auth_handler.py @@ -137,7 +137,7 @@ def generate_auth_request(self) -> AuthConfig: def generate_auth_uri( self, ) -> AuthCredential: - """Generates an response containing the auth uri for user to sign in. + """Generates a response containing the auth uri for user to sign in. Returns: An AuthCredential object containing the auth URI and state. diff --git a/src/google/adk/auth/auth_preprocessor.py b/src/google/adk/auth/auth_preprocessor.py index 133b456b72..c3d9b71c2b 100644 --- a/src/google/adk/auth/auth_preprocessor.py +++ b/src/google/adk/auth/auth_preprocessor.py @@ -100,7 +100,7 @@ async def run_async( if not tools_to_resume: continue - # found the the system long running request euc function call + # found the system long running request euc function call # looking for original function call that requests euc for j in range(i - 1, -1, -1): event = events[j] diff --git a/src/google/adk/auth/exchanger/base_credential_exchanger.py b/src/google/adk/auth/exchanger/base_credential_exchanger.py index b09adb80a8..31106b55e2 100644 --- a/src/google/adk/auth/exchanger/base_credential_exchanger.py +++ b/src/google/adk/auth/exchanger/base_credential_exchanger.py @@ -24,7 +24,7 @@ from ..auth_schemes import AuthScheme -class CredentialExchangError(Exception): +class CredentialExchangeError(Exception): """Base exception for credential exchange errors.""" @@ -52,6 +52,6 @@ async def exchange( The exchanged credential. Raises: - CredentialExchangError: If credential exchange fails. + CredentialExchangeError: If credential exchange fails. """ pass diff --git a/src/google/adk/auth/exchanger/oauth2_credential_exchanger.py b/src/google/adk/auth/exchanger/oauth2_credential_exchanger.py index 71c5f7c896..c0c3e8aea0 100644 --- a/src/google/adk/auth/exchanger/oauth2_credential_exchanger.py +++ b/src/google/adk/auth/exchanger/oauth2_credential_exchanger.py @@ -30,7 +30,7 @@ from typing_extensions import override from .base_credential_exchanger import BaseCredentialExchanger -from .base_credential_exchanger import CredentialExchangError +from .base_credential_exchanger import CredentialExchangeError try: from authlib.integrations.requests_client import OAuth2Session @@ -63,10 +63,10 @@ async def exchange( The exchanged credential with access token. Raises: - CredentialExchangError: If auth_scheme is missing. + CredentialExchangeError: If auth_scheme is missing. """ if not auth_scheme: - raise CredentialExchangError( + raise CredentialExchangeError( "auth_scheme is required for OAuth2 credential exchange" ) diff --git a/src/google/adk/cli/adk_web_server.py b/src/google/adk/cli/adk_web_server.py index f0cae1ae88..1b422fe335 100644 --- a/src/google/adk/cli/adk_web_server.py +++ b/src/google/adk/cli/adk_web_server.py @@ -396,7 +396,7 @@ class AdkWebServer: If you pass in a web_assets_dir, the static assets will be served under /dev-ui in addition to the API endpoints created by default. - You can add add additional API endpoints by modifying the FastAPI app + You can add additional API endpoints by modifying the FastAPI app instance returned by get_fast_api_app as this class exposes the agent runners and most other bits of state retained during the lifetime of the server. @@ -449,7 +449,7 @@ def __init__( self.extra_plugins = extra_plugins or [] self.logo_text = logo_text self.logo_image_url = logo_image_url - # Internal propeties we want to allow being modified from callbacks. + # Internal properties we want to allow being modified from callbacks. self.runners_to_clean: set[str] = set() self.current_app_name_ref: SharedValue[str] = SharedValue(value="") self.runner_dict = {} diff --git a/src/google/adk/cli/cli_tools_click.py b/src/google/adk/cli/cli_tools_click.py index 40c15fe8eb..06f567a037 100644 --- a/src/google/adk/cli/cli_tools_click.py +++ b/src/google/adk/cli/cli_tools_click.py @@ -518,7 +518,7 @@ def cli_eval( This will only run eval_1, eval_2 and eval_3 from sample_eval_set_file.json. - *Eval Set Id* + *Eval Set ID* For each eval set, all evals will be run by default. If you want to run only specific evals from a eval set, first create a comma @@ -911,7 +911,7 @@ def wrapper(*args, **kwargs): def deprecated_adk_services_options(): - """Depracated ADK services options.""" + """Deprecated ADK services options.""" def warn(alternative_param, ctx, param, value): if value: diff --git a/src/google/adk/cli/utils/agent_loader.py b/src/google/adk/cli/utils/agent_loader.py index 6eee2ee839..0755c9147c 100644 --- a/src/google/adk/cli/utils/agent_loader.py +++ b/src/google/adk/cli/utils/agent_loader.py @@ -95,7 +95,7 @@ def _load_from_module_or_package( if e.name == agent_name: logger.debug("Module %s itself not found.", agent_name) else: - # it's the case the module imported by {agent_name}.agent module is not + # the module imported by {agent_name}.agent module is not # found e.msg = f"Fail to load '{agent_name}' module. " + e.msg raise e @@ -142,8 +142,7 @@ def _load_from_submodule( if e.name == f"{agent_name}.agent" or e.name == agent_name: logger.debug("Module %s.agent not found.", agent_name) else: - # it's the case the module imported by {agent_name}.agent module is not - # found + # the module imported by {agent_name}.agent module is not found e.msg = f"Fail to load '{agent_name}.agent' module. " + e.msg raise e except Exception as e: diff --git a/src/google/adk/code_executors/code_execution_utils.py b/src/google/adk/code_executors/code_execution_utils.py index 46b412a0de..86aa085acf 100644 --- a/src/google/adk/code_executors/code_execution_utils.py +++ b/src/google/adk/code_executors/code_execution_utils.py @@ -122,12 +122,12 @@ def extract_code_and_truncate_content( the code blocks. Returns: - The first code block if found, otherwise None. + The first code block if found; otherwise, None. """ if not content or not content.parts: return - # Extract the code from the executable code parts if there're no associated + # Extract the code from the executable code parts if there are no associated # code execution result parts. for idx, part in enumerate(content.parts): if part.executable_code and ( diff --git a/src/google/adk/evaluation/_eval_sets_manager_utils.py b/src/google/adk/evaluation/_eval_sets_manager_utils.py index b7e12dd37e..737f769e73 100644 --- a/src/google/adk/evaluation/_eval_sets_manager_utils.py +++ b/src/google/adk/evaluation/_eval_sets_manager_utils.py @@ -28,7 +28,7 @@ def get_eval_set_from_app_and_id( eval_sets_manager: EvalSetsManager, app_name: str, eval_set_id: str ) -> EvalSet: - """Returns an EvalSet if found, otherwise raises NotFoundError.""" + """Returns an EvalSet if found; otherwise, raises NotFoundError.""" eval_set = eval_sets_manager.get_eval_set(app_name, eval_set_id) if not eval_set: raise NotFoundError(f"Eval set `{eval_set_id}` not found.") @@ -38,7 +38,7 @@ def get_eval_set_from_app_and_id( def get_eval_case_from_eval_set( eval_set: EvalSet, eval_case_id: str ) -> Optional[EvalCase]: - """Returns an EvalCase if found, otherwise None.""" + """Returns an EvalCase if found; otherwise, None.""" eval_case_to_find = None # Look up the eval case by eval_case_id diff --git a/src/google/adk/evaluation/agent_evaluator.py b/src/google/adk/evaluation/agent_evaluator.py index c97fe16363..e8f552879d 100644 --- a/src/google/adk/evaluation/agent_evaluator.py +++ b/src/google/adk/evaluation/agent_evaluator.py @@ -49,7 +49,7 @@ from .eval_sets_manager import EvalSetsManager from .evaluator import EvalStatus from .in_memory_eval_sets_manager import InMemoryEvalSetsManager -from .local_eval_sets_manager import convert_eval_set_to_pydanctic_schema +from .local_eval_sets_manager import convert_eval_set_to_pydantic_schema from .user_simulator_provider import UserSimulatorProvider logger = logging.getLogger("google_adk." + __name__) @@ -121,7 +121,7 @@ async def evaluate_eval_set( the agent. There is convention in place here, where the code is going to look for 'root_agent' or `get_agent_async` in the loaded module. eval_set: The eval set. - criteria: Evauation criterias, a dictionary of metric names to their + criteria: Evaluation criteria, a dictionary of metric names to their respective thresholds. This field is deprecated. eval_config: The evauation config. num_runs: Number of times all entries in the eval dataset should be @@ -283,7 +283,7 @@ def _load_eval_set_from_file( try: eval_set = EvalSet.model_validate_json(content) assert len(initial_session) == 0, ( - "Intial session should be specified as a part of EvalSet file." + "Initial session should be specified as a part of EvalSet file." " Explicit initial session is only needed, when specifying data in" " the older schema." ) @@ -315,7 +315,7 @@ def _get_eval_set_from_old_format( "data": data, "initial_session": initial_session, } - return convert_eval_set_to_pydanctic_schema( + return convert_eval_set_to_pydantic_schema( eval_set_id=str(uuid.uuid4()), eval_set_in_json_format=[eval_data] ) diff --git a/src/google/adk/evaluation/base_eval_service.py b/src/google/adk/evaluation/base_eval_service.py index 3d576ab2d6..a82a468324 100644 --- a/src/google/adk/evaluation/base_eval_service.py +++ b/src/google/adk/evaluation/base_eval_service.py @@ -94,11 +94,11 @@ class InferenceRequest(BaseModel): description="""The name of the app to which the eval case belongs to.""" ) - eval_set_id: str = Field(description="""Id of the eval set.""") + eval_set_id: str = Field(description="""ID of the eval set.""") eval_case_ids: Optional[list[str]] = Field( default=None, - description="""Id of the eval cases for which inferences need to be + description="""ID of the eval cases for which inferences need to be generated. All the eval case ids should belong to the EvalSet. @@ -133,10 +133,10 @@ class InferenceResult(BaseModel): description="""The name of the app to which the eval case belongs to.""" ) - eval_set_id: str = Field(description="""Id of the eval set.""") + eval_set_id: str = Field(description="""ID of the eval set.""") eval_case_id: str = Field( - description="""Id of the eval case for which inferences were generated.""", + description="""ID of the eval case for which inferences were generated.""", ) inferences: Optional[list[Invocation]] = Field( @@ -145,7 +145,7 @@ class InferenceResult(BaseModel): ) session_id: Optional[str] = Field( - description="""Id of the inference session.""" + description="""ID of the inference session.""" ) status: InferenceStatus = Field( diff --git a/src/google/adk/evaluation/eval_metrics.py b/src/google/adk/evaluation/eval_metrics.py index 84a19879ae..321e2cc1d9 100644 --- a/src/google/adk/evaluation/eval_metrics.py +++ b/src/google/adk/evaluation/eval_metrics.py @@ -225,7 +225,7 @@ class EvalMetricResultPerInvocation(EvalBaseModel): eval_metric_results: list[EvalMetricResult] = Field( default=[], - description="Eval resutls for each applicable metric.", + description="Eval results for each applicable metric.", ) diff --git a/src/google/adk/evaluation/eval_sets_manager.py b/src/google/adk/evaluation/eval_sets_manager.py index 445cafd82f..be4655e46b 100644 --- a/src/google/adk/evaluation/eval_sets_manager.py +++ b/src/google/adk/evaluation/eval_sets_manager.py @@ -54,7 +54,7 @@ def list_eval_sets(self, app_name: str) -> list[str]: def get_eval_case( self, app_name: str, eval_set_id: str, eval_case_id: str ) -> Optional[EvalCase]: - """Returns an EvalCase if found, otherwise None.""" + """Returns an EvalCase if found; otherwise, None.""" @abstractmethod def add_eval_case(self, app_name: str, eval_set_id: str, eval_case: EvalCase): diff --git a/src/google/adk/evaluation/evaluation_generator.py b/src/google/adk/evaluation/evaluation_generator.py index dff61810b4..970ebd8f9a 100644 --- a/src/google/adk/evaluation/evaluation_generator.py +++ b/src/google/adk/evaluation/evaluation_generator.py @@ -55,7 +55,7 @@ class EvalCaseResponses(BaseModel): """Contains multiple responses associated with an EvalCase. - Multiple responses are a result of repeated requests to genereate inferences. + Multiple responses are a result of repeated requests to generate inferences. """ eval_case: EvalCase diff --git a/src/google/adk/evaluation/evaluator.py b/src/google/adk/evaluation/evaluator.py index 2c007fe4a1..7a97855bec 100644 --- a/src/google/adk/evaluation/evaluator.py +++ b/src/google/adk/evaluation/evaluator.py @@ -54,7 +54,7 @@ class EvaluationResult(BaseModel): class Evaluator(ABC): - """A merics evaluator interface.""" + """A metrics evaluator interface.""" criterion_type: ClassVar[type[BaseCriterion]] = BaseCriterion diff --git a/src/google/adk/evaluation/gcs_eval_sets_manager.py b/src/google/adk/evaluation/gcs_eval_sets_manager.py index 86039c1748..cc8a572697 100644 --- a/src/google/adk/evaluation/gcs_eval_sets_manager.py +++ b/src/google/adk/evaluation/gcs_eval_sets_manager.py @@ -108,9 +108,9 @@ def create_eval_set(self, app_name: str, eval_set_id: str) -> EvalSet: """Creates an empty EvalSet and saves it to GCS. Raises: - ValueError: If eval set id is not valid or an eval set already exists. + ValueError: If Eval Set ID is not valid or an eval set already exists. """ - self._validate_id(id_name="Eval Set Id", id_value=eval_set_id) + self._validate_id(id_name="Eval Set ID", id_value=eval_set_id) new_eval_set_blob_name = self._get_eval_set_blob_name(app_name, eval_set_id) if self.bucket.blob(new_eval_set_blob_name).exists(): raise ValueError( diff --git a/src/google/adk/evaluation/local_eval_service.py b/src/google/adk/evaluation/local_eval_service.py index 09a08d37bb..000964d9a7 100644 --- a/src/google/adk/evaluation/local_eval_service.py +++ b/src/google/adk/evaluation/local_eval_service.py @@ -209,7 +209,7 @@ async def _evaluate_single_inference_result( # We also keep track of the overall score for a metric, derived from all # invocation. For example, if we were keeping track the metric that compares - # how well is the final resposne as compared to a golden answer, then each + # how well is the final response as compared to a golden answer, then each # invocation will have the value of this metric. We will also have an # overall score using aggregation strategy across all invocations. This # would be the score for the eval case. @@ -267,7 +267,7 @@ async def _evaluate_single_inference_result( overall_eval_status=EvalStatus.NOT_EVALUATED ) - # Track overall scrore across all invocations. + # Track overall score across all invocations. eval_metric_result_details = EvalMetricResultDetails( rubric_scores=evaluation_result.overall_rubric_scores ) @@ -366,8 +366,8 @@ def _generate_final_eval_status( self, overall_eval_metric_results: list[EvalMetricResult] ) -> EvalStatus: final_eval_status = EvalStatus.NOT_EVALUATED - # Go over the all the eval statuses and mark the final eval status as - # passed if all of them pass, otherwise mark the final eval status to + # Go over all the eval statuses and mark the final eval status as + # passed if all of them pass; otherwise, mark the final eval status to # failed. for overall_eval_metric_result in overall_eval_metric_results: overall_eval_status = overall_eval_metric_result.eval_status diff --git a/src/google/adk/evaluation/local_eval_sets_manager.py b/src/google/adk/evaluation/local_eval_sets_manager.py index 841dab1fe7..da5225efe6 100644 --- a/src/google/adk/evaluation/local_eval_sets_manager.py +++ b/src/google/adk/evaluation/local_eval_sets_manager.py @@ -85,11 +85,11 @@ def _convert_invocation_to_pydantic_schema( ) -def convert_eval_set_to_pydanctic_schema( +def convert_eval_set_to_pydantic_schema( eval_set_id: str, eval_set_in_json_format: list[dict[str, Any]], ) -> EvalSet: - r"""Returns an pydantic EvalSet generated from the json representation. + r"""Returns a pydantic EvalSet generated from the json representation. Args: eval_set_id: Eval set id. @@ -183,7 +183,7 @@ def load_eval_set_from_file( except ValidationError: # We assume that the eval data was specified in the old format and try # to convert it to the new format. - return convert_eval_set_to_pydanctic_schema( + return convert_eval_set_to_pydantic_schema( eval_set_id, json.loads(content) ) @@ -209,9 +209,9 @@ def create_eval_set(self, app_name: str, eval_set_id: str) -> EvalSet: """Creates and returns an empty EvalSet given the app_name and eval_set_id. Raises: - ValueError: If eval set id is not valid or an eval set already exists. + ValueError: If Eval Set ID is not valid or an eval set already exists. """ - self._validate_id(id_name="Eval Set Id", id_value=eval_set_id) + self._validate_id(id_name="Eval Set ID", id_value=eval_set_id) # Define the file path new_eval_set_path = self._get_eval_set_file_path(app_name, eval_set_id) @@ -265,7 +265,7 @@ def list_eval_sets(self, app_name: str) -> list[str]: def get_eval_case( self, app_name: str, eval_set_id: str, eval_case_id: str ) -> Optional[EvalCase]: - """Returns an EvalCase if found, otherwise None.""" + """Returns an EvalCase if found; otherwise, None.""" eval_set = self.get_eval_set(app_name, eval_set_id) if not eval_set: return None diff --git a/src/google/adk/evaluation/response_evaluator.py b/src/google/adk/evaluation/response_evaluator.py index f76a717fa6..d51c3829fc 100644 --- a/src/google/adk/evaluation/response_evaluator.py +++ b/src/google/adk/evaluation/response_evaluator.py @@ -38,7 +38,7 @@ class ResponseEvaluator(Evaluator): This class supports two metrics: 1) response_evaluation_score - This metric evaluates how coherent agent's resposne was. + This metric evaluates how coherent agent's response was. Value range of this metric is [1,5], with values closer to 5 more desirable. @@ -83,7 +83,7 @@ def get_metric_info(metric_name: str) -> MetricInfo: return MetricInfo( metric_name=PrebuiltMetrics.RESPONSE_EVALUATION_SCORE.value, description=( - "This metric evaluates how coherent agent's resposne was. Value" + "This metric evaluates how coherent agent's response was. Value" " range of this metric is [1,5], with values closer to 5 more" " desirable." ), diff --git a/src/google/adk/events/event.py b/src/google/adk/events/event.py index 8114d31823..cca086430b 100644 --- a/src/google/adk/events/event.py +++ b/src/google/adk/events/event.py @@ -84,7 +84,7 @@ def is_final_response(self) -> bool: NOTE: This method is ONLY for use by Agent Development Kit. - Note that when multiple agents participage in one invocation, there could be + Note that when multiple agents participate in one invocation, there could be one event has `is_final_response()` as True for each participating agent. """ if self.actions.skip_summarization or self.long_running_tool_ids: diff --git a/src/google/adk/flows/llm_flows/_code_execution.py b/src/google/adk/flows/llm_flows/_code_execution.py index a7cc9c14a3..bfa84db69d 100644 --- a/src/google/adk/flows/llm_flows/_code_execution.py +++ b/src/google/adk/flows/llm_flows/_code_execution.py @@ -205,7 +205,7 @@ async def _run_pre_processor( # [Step 1] Extract data files from the session_history and store them in # memory. Meanwhile, mutate the inline data file to text part in session # history from all turns. - all_input_files = _extrac_and_replace_inline_files( + all_input_files = _extract_and_replace_inline_files( code_executor_context, llm_request ) @@ -372,7 +372,7 @@ async def _run_post_processor( llm_response.content = None -def _extrac_and_replace_inline_files( +def _extract_and_replace_inline_files( code_executor_context: CodeExecutorContext, llm_request: LlmRequest, ) -> list[File]: @@ -403,7 +403,7 @@ def _extrac_and_replace_inline_files( text='\nAvailable file: `%s`\n' % file_name ) - # Add the inlne data as input file to the code executor context. + # Add the inline data as input file to the code executor context. file = File( name=file_name, content=CodeExecutionUtils.get_encoded_file_content( diff --git a/src/google/adk/flows/llm_flows/base_llm_flow.py b/src/google/adk/flows/llm_flows/base_llm_flow.py index 644dc55b6c..f6d64cae5f 100644 --- a/src/google/adk/flows/llm_flows/base_llm_flow.py +++ b/src/google/adk/flows/llm_flows/base_llm_flow.py @@ -251,7 +251,7 @@ async def _send_to_model( invocation_context.transcription_cache = [] if not invocation_context.run_config.input_audio_transcription: # if the live model's input transcription is not enabled, then - # we use our onwn audio transcriber to achieve that. + # we use our own audio transcriber to achieve that. invocation_context.transcription_cache.append( TranscriptionEntry(role='user', data=live_request.blob) ) @@ -300,7 +300,7 @@ def get_author_for_event(llm_response): async for llm_response in agen: if llm_response.live_session_resumption_update: logger.info( - 'Update session resumption hanlde:' + 'Update session resumption handle:' f' {llm_response.live_session_resumption_update}.' ) invocation_context.live_session_resumption_handle = ( diff --git a/src/google/adk/models/base_llm_connection.py b/src/google/adk/models/base_llm_connection.py index 22ca3b360d..afce550b13 100644 --- a/src/google/adk/models/base_llm_connection.py +++ b/src/google/adk/models/base_llm_connection.py @@ -30,7 +30,7 @@ async def send_history(self, history: list[types.Content]): """Sends the conversation history to the model. You call this method right after setting up the model connection. - The model will respond if the last content is from user, otherwise it will + The model will respond if the last content is from user; otherwise, it will wait for new user input before responding. Args: diff --git a/src/google/adk/models/gemini_llm_connection.py b/src/google/adk/models/gemini_llm_connection.py index f1470c0a29..fad21c738b 100644 --- a/src/google/adk/models/gemini_llm_connection.py +++ b/src/google/adk/models/gemini_llm_connection.py @@ -40,7 +40,7 @@ async def send_history(self, history: list[types.Content]): """Sends the conversation history to the gemini model. You call this method right after setting up the model connection. - The model will respond if the last content is from user, otherwise it will + The model will respond if the last content is from user; otherwise, it will wait for new user input before responding. Args: diff --git a/src/google/adk/plugins/plugin_manager.py b/src/google/adk/plugins/plugin_manager.py index 217dbb8be6..634f904385 100644 --- a/src/google/adk/plugins/plugin_manager.py +++ b/src/google/adk/plugins/plugin_manager.py @@ -102,7 +102,7 @@ def get_plugin(self, plugin_name: str) -> Optional[BasePlugin]: plugin_name: The name of the plugin to retrieve. Returns: - The plugin instance if found, otherwise `None`. + The plugin instance if found; otherwise, `None`. """ return next((p for p in self.plugins if p.name == plugin_name), None) diff --git a/src/google/adk/runners.py b/src/google/adk/runners.py index 776de6f3cc..f016272b32 100644 --- a/src/google/adk/runners.py +++ b/src/google/adk/runners.py @@ -878,7 +878,7 @@ def _find_agent_to_run( message) """ # If the last event is a function response, should send this response to - # the agent that returned the corressponding function call regardless the + # the agent that returned the corresponding function call regardless the # type of the agent. e.g. a remote a2a agent may surface a credential # request as a special long running function tool call. event = find_matching_function_call(session.events) diff --git a/src/google/adk/telemetry/tracing.py b/src/google/adk/telemetry/tracing.py index e45c24aee6..1c5cd79269 100644 --- a/src/google/adk/telemetry/tracing.py +++ b/src/google/adk/telemetry/tracing.py @@ -362,7 +362,7 @@ def _build_llm_request_for_trace(llm_request: LlmRequest) -> dict[str, Any]: Returns: A dictionary representation of the LLM request. """ - # Some fields in LlmRequest are function pointers and can not be serialized. + # Some fields in LlmRequest are function pointers and cannot be serialized. result = { 'model': llm_request.model, 'config': llm_request.config.model_dump( diff --git a/src/google/adk/tools/_google_credentials.py b/src/google/adk/tools/_google_credentials.py index 427a4cc251..c61f942f5c 100644 --- a/src/google/adk/tools/_google_credentials.py +++ b/src/google/adk/tools/_google_credentials.py @@ -70,7 +70,7 @@ class BaseGoogleCredentialsConfig(BaseModel): `google.auth.load_credentials_from_file(...)`. See more details in https://cloud.google.com/iam/docs/service-account-creds#user-managed-keys. - When the deployed environment cannot provide a pre-existing credential, + When the deployed environment cannot provide a preexisting credential, consider setting below client_id, client_secret and scope for end users to go through oauth flow, so that agent can access the user data. """ diff --git a/src/google/adk/tools/apihub_tool/apihub_toolset.py b/src/google/adk/tools/apihub_tool/apihub_toolset.py index ba4d3f4887..fe9e38bd96 100644 --- a/src/google/adk/tools/apihub_tool/apihub_toolset.py +++ b/src/google/adk/tools/apihub_tool/apihub_toolset.py @@ -114,7 +114,7 @@ def __init__( apihub_resource_name: The resource name of the API in API Hub. Example: ``projects/test-project/locations/us-central1/apis/test-api``. access_token: Google Access token. Generate with gcloud cli - ``gcloud auth auth print-access-token``. Used for fetching API Specs from API Hub. + ``gcloud auth print-access-token``. Used for fetching API Specs from API Hub. service_account_json: The service account config as a json string. Required if not using default service credential. It is used for creating the API Hub client and fetching the API Specs from API Hub. diff --git a/src/google/adk/tools/apihub_tool/clients/apihub_client.py b/src/google/adk/tools/apihub_tool/clients/apihub_client.py index 9bee236e33..84bde60297 100644 --- a/src/google/adk/tools/apihub_tool/clients/apihub_client.py +++ b/src/google/adk/tools/apihub_tool/clients/apihub_client.py @@ -37,7 +37,7 @@ class BaseAPIHubClient(ABC): @abstractmethod def get_spec_content(self, resource_name: str) -> str: - """From a given resource name, get the soec in the API Hub.""" + """From a given resource name, get the spec in the API Hub.""" raise NotImplementedError() diff --git a/src/google/adk/tools/apihub_tool/clients/secret_client.py b/src/google/adk/tools/apihub_tool/clients/secret_client.py index d5015b8aa7..f4d1486155 100644 --- a/src/google/adk/tools/apihub_tool/clients/secret_client.py +++ b/src/google/adk/tools/apihub_tool/clients/secret_client.py @@ -29,7 +29,7 @@ class SecretManagerClient: This class provides a simplified interface for retrieving secrets from Secret Manager, handling authentication using either a service account - JSON keyfile (passed as a string) or a pre-existing authorization token. + JSON keyfile (passed as a string) or a preexisting authorization token. Attributes: _credentials: Google Cloud credentials object (ServiceAccountCredentials diff --git a/src/google/adk/tools/bigquery/config.py b/src/google/adk/tools/bigquery/config.py index adaa8234dc..f8e3089d5b 100644 --- a/src/google/adk/tools/bigquery/config.py +++ b/src/google/adk/tools/bigquery/config.py @@ -37,7 +37,7 @@ class WriteMode(Enum): """Only protected write operations are allowed in a BigQuery session. In this mode write operations in the anonymous dataset of a BigQuery session - are allowed. For example, a temporaray table can be created, manipulated and + are allowed. For example, a temporary table can be created, manipulated and deleted in the anonymous dataset during Agent interaction, while protecting permanent tables from being modified or deleted. To learn more about BigQuery sessions, see https://cloud.google.com/bigquery/docs/sessions-intro. diff --git a/src/google/adk/tools/bigquery/data_insights_tool.py b/src/google/adk/tools/bigquery/data_insights_tool.py index 8d5a979170..0d7280c236 100644 --- a/src/google/adk/tools/bigquery/data_insights_tool.py +++ b/src/google/adk/tools/bigquery/data_insights_tool.py @@ -11,6 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations import json from typing import Any diff --git a/src/google/adk/tools/bigquery/query_tool.py b/src/google/adk/tools/bigquery/query_tool.py index fdabd69476..a671beadda 100644 --- a/src/google/adk/tools/bigquery/query_tool.py +++ b/src/google/adk/tools/bigquery/query_tool.py @@ -158,7 +158,7 @@ def execute_sql( elif settings.write_mode == WriteMode.PROTECTED: # In protected write mode, write operation only to a temporary artifact is # allowed. This artifact must have been created in a BigQuery session. In - # such a scenario the session info (session id and the anonymous dataset + # such a scenario, the session info (session id and the anonymous dataset # containing the artifact) is persisted in the tool context. bq_session_info = tool_context.state.get(BIGQUERY_SESSION_INFO_KEY, None) if bq_session_info: diff --git a/src/google/adk/tools/enterprise_search_tool.py b/src/google/adk/tools/enterprise_search_tool.py index f27b7de67f..7980f8f028 100644 --- a/src/google/adk/tools/enterprise_search_tool.py +++ b/src/google/adk/tools/enterprise_search_tool.py @@ -52,7 +52,7 @@ async def process_llm_request( if is_gemini_model(llm_request.model): if is_gemini_1_model(llm_request.model) and llm_request.config.tools: raise ValueError( - 'Enterprise web search tool can not be used with other tools in' + 'Enterprise web search tool cannot be used with other tools in' ' Gemini 1.x.' ) llm_request.config = llm_request.config or types.GenerateContentConfig() diff --git a/src/google/adk/tools/function_tool.py b/src/google/adk/tools/function_tool.py index c3a4b348e9..b8b87e4ff1 100644 --- a/src/google/adk/tools/function_tool.py +++ b/src/google/adk/tools/function_tool.py @@ -171,7 +171,7 @@ async def run_async( # Before invoking the function, we check for if the list of args passed in # has all the mandatory arguments or not. # If the check fails, then we don't invoke the tool and let the Agent know - # that there was a missing a input parameter. This will basically help + # that there was a missing input parameter. This will basically help # the underlying model fix the issue and retry. mandatory_args = self._get_mandatory_args() missing_mandatory_args = [ @@ -224,7 +224,7 @@ async def _invoke_callable( # Functions are callable objects, but not all callable objects are functions # checking coroutine function is not enough. We also need to check whether - # Callable's __call__ function is a coroutine funciton + # Callable's __call__ function is a coroutine function is_async = inspect.iscoroutinefunction(target) or ( hasattr(target, '__call__') and inspect.iscoroutinefunction(target.__call__) diff --git a/src/google/adk/tools/google_search_tool.py b/src/google/adk/tools/google_search_tool.py index d974989209..8d73ced8d2 100644 --- a/src/google/adk/tools/google_search_tool.py +++ b/src/google/adk/tools/google_search_tool.py @@ -59,7 +59,7 @@ async def process_llm_request( if is_gemini_1_model(llm_request.model): if llm_request.config.tools: raise ValueError( - 'Google search tool can not be used with other tools in Gemini 1.x.' + 'Google search tool cannot be used with other tools in Gemini 1.x.' ) llm_request.config.tools.append( types.Tool(google_search_retrieval=types.GoogleSearchRetrieval()) diff --git a/src/google/adk/tools/google_tool.py b/src/google/adk/tools/google_tool.py index 9776fa0f57..68f11dd503 100644 --- a/src/google/adk/tools/google_tool.py +++ b/src/google/adk/tools/google_tool.py @@ -52,10 +52,10 @@ def __init__( """Initialize the Google API tool. Args: - func: callable that impelments the tool's logic, can accept one + func: callable that implements the tool's logic, can accept one 'credential" parameter credentials_config: credentials config used to call Google API. If None, - then we don't hanlde the auth logic + then we don't handle the auth logic tool_settings: Tool-specific settings. This settings should be provided by each toolset that uses this class to create customized tools. """ diff --git a/src/google/adk/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.py b/src/google/adk/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.py index 74166b00ee..38f4d7ecdb 100644 --- a/src/google/adk/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.py +++ b/src/google/adk/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.py @@ -268,9 +268,9 @@ async def prepare_auth_credentials( ) # here exchangers are doing two different thing: - # for service account the exchanger is doing actualy token exchange - # while for oauth2 it's actually doing the credentail conversion - # from OAuth2 credential to HTTP credentails for setting credential in + # for service account the exchanger is doing actual token exchange + # while for oauth2 it's actually doing the credential conversion + # from OAuth2 credential to HTTP credentials for setting credential in # http header # TODO cleanup the logic: # 1. service account token exchanger should happen before we store them in diff --git a/src/google/adk/tools/url_context_tool.py b/src/google/adk/tools/url_context_tool.py index 4d7c185b8e..10ce142bb1 100644 --- a/src/google/adk/tools/url_context_tool.py +++ b/src/google/adk/tools/url_context_tool.py @@ -49,7 +49,7 @@ async def process_llm_request( llm_request.config = llm_request.config or types.GenerateContentConfig() llm_request.config.tools = llm_request.config.tools or [] if is_gemini_1_model(llm_request.model): - raise ValueError('Url context tool can not be used in Gemini 1.x.') + raise ValueError('Url context tool cannot be used in Gemini 1.x.') elif is_gemini_2_or_above(llm_request.model): llm_request.config.tools.append( types.Tool(url_context=types.UrlContext()) diff --git a/src/google/adk/tools/vertex_ai_search_tool.py b/src/google/adk/tools/vertex_ai_search_tool.py index be51a7e860..aff5be1552 100644 --- a/src/google/adk/tools/vertex_ai_search_tool.py +++ b/src/google/adk/tools/vertex_ai_search_tool.py @@ -97,7 +97,7 @@ async def process_llm_request( if is_gemini_model(llm_request.model): if is_gemini_1_model(llm_request.model) and llm_request.config.tools: raise ValueError( - 'Vertex AI search tool can not be used with other tools in Gemini' + 'Vertex AI search tool cannot be used with other tools in Gemini' ' 1.x.' ) llm_request.config = llm_request.config or types.GenerateContentConfig() diff --git a/tests/integration/fixture/context_variable_agent/agent.py b/tests/integration/fixture/context_variable_agent/agent.py index cef56ccb1e..04e19314f9 100644 --- a/tests/integration/fixture/context_variable_agent/agent.py +++ b/tests/integration/fixture/context_variable_agent/agent.py @@ -43,7 +43,7 @@ def echo_info(customer_id: str) -> str: def build_global_instruction(invocation_context: InvocationContext) -> str: return ( - 'This is the gloabl agent instruction for invocation:' + 'This is the global agent instruction for invocation:' f' {invocation_context.invocation_id}.' ) diff --git a/tests/integration/fixture/flow_complex_spark/agent.py b/tests/integration/fixture/flow_complex_spark/agent.py index 18ce62ff8c..02fbfaebac 100644 --- a/tests/integration/fixture/flow_complex_spark/agent.py +++ b/tests/integration/fixture/flow_complex_spark/agent.py @@ -41,7 +41,7 @@ + Don't ask for clarifications from the user. + Do not ask the user for clarifications or if they have any other questions. + All headers should be bolded. -+ If you have steps in the plan that depend on other information, make sure they are 2 diferent sections in the plan. ++ If you have steps in the plan that depend on other information, make sure they are 2 different sections in the plan. + At the end mention that you will start researching. # Instruction on replying format @@ -68,7 +68,7 @@ # Instruction on replying format -Your reply should be a numbered lsit. +Your reply should be a numbered list. For each question, reply in the following format: "[question_generation_agent]: [generated questions]" @@ -92,7 +92,7 @@ " question." ), instruction="""\ -Inspect all the questions after "[question_generation_agent]: " and asnwer them. +Inspect all the questions after "[question_generation_agent]: " and answer them. # Instruction on replying format diff --git a/tests/integration/fixture/flow_complex_spark/sample.session.json b/tests/integration/fixture/flow_complex_spark/sample.session.json index 31575a84b4..ed3a200d3f 100644 --- a/tests/integration/fixture/flow_complex_spark/sample.session.json +++ b/tests/integration/fixture/flow_complex_spark/sample.session.json @@ -52,7 +52,7 @@ "response": { "status": "ok", "target_agent_name": "research_assistant", - "message": "Transfered to research_assistant" + "message": "Transferred to research_assistant" } } } @@ -165,7 +165,7 @@ "response": { "status": "ok", "target_agent_name": "spark_assistant", - "message": "Transfered to spark_assistant" + "message": "Transferred to spark_assistant" } } } diff --git a/tests/integration/fixture/tool_agent/agent.py b/tests/integration/fixture/tool_agent/agent.py index a89d20899e..2f914750a6 100644 --- a/tests/integration/fixture/tool_agent/agent.py +++ b/tests/integration/fixture/tool_agent/agent.py @@ -90,17 +90,17 @@ def complex_function_list_dict( raise ValueError("Wrong param") -def repetive_call_1(param: str): - return f"Call repetive_call_2 tool with param {param + '_repetive'}" +def repetitive_call_1(param: str): + return f"Call repetitive_call_2 tool with param {param + '_repetitive'}" -def repetive_call_2(param: str): +def repetitive_call_2(param: str): return param test_case_retrieval = FilesRetrieval( name="test_case_retrieval", - description="General guidence for agent test cases", + description="General guidance for agent test cases", input_dir=os.path.join(os.path.dirname(__file__), "files"), ) @@ -109,7 +109,7 @@ def repetive_call_2(param: str): rag_corpora=[ "projects/1096655024998/locations/us-central1/ragCorpora/4985766262475849728" ], - description="General guidence for agent test cases", + description="General guidance for agent test cases", ) invalid_rag_retrieval = VertexAiRagRetrieval( @@ -131,7 +131,7 @@ def repetive_call_2(param: str): shell_tool = LangchainTool(ShellTool()) docs_tool = CrewaiTool( - name="direcotry_read_tool", + name="directory_read_tool", description="use this to find files for you.", tool=DirectoryReadTool(directory="."), ) @@ -194,8 +194,8 @@ def repetive_call_2(param: str): list_str_param_function, return_list_str_function, # complex_function_list_dict, - repetive_call_1, - repetive_call_2, + repetitive_call_1, + repetitive_call_2, test_case_retrieval, valid_rag_retrieval, invalid_rag_retrieval, diff --git a/tests/integration/fixture/trip_planner_agent/agent.py b/tests/integration/fixture/trip_planner_agent/agent.py index ea8a33ab46..5c4a9f2988 100644 --- a/tests/integration/fixture/trip_planner_agent/agent.py +++ b/tests/integration/fixture/trip_planner_agent/agent.py @@ -105,6 +105,6 @@ instruction=""" Your goal is to plan the best trip according to information listed above. You describe why did you choose the city, list top 3 - attactions and provide a detailed itinerary for each day.""", + attractions and provide a detailed itinerary for each day.""", sub_agents=[identify_agent, gather_agent, plan_agent], ) diff --git a/tests/integration/models/test_litellm_with_function.py b/tests/integration/models/test_litellm_with_function.py index e4ac787e7b..b06c8f826c 100644 --- a/tests/integration/models/test_litellm_with_function.py +++ b/tests/integration/models/test_litellm_with_function.py @@ -83,7 +83,7 @@ def llm_request(): @pytest.mark.asyncio -async def test_generate_content_asyn_with_function( +async def test_generate_content_async_with_function( oss_llm_with_function, llm_request ): responses = [ @@ -98,7 +98,7 @@ async def test_generate_content_asyn_with_function( @pytest.mark.asyncio -async def test_generate_content_asyn_stream_with_function( +async def test_generate_content_async_stream_with_function( oss_llm_with_function, llm_request ): responses = [ diff --git a/tests/integration/test_evalute_agent_in_fixture.py b/tests/integration/test_evalute_agent_in_fixture.py index 344ba0994b..bd09549eee 100644 --- a/tests/integration/test_evalute_agent_in_fixture.py +++ b/tests/integration/test_evalute_agent_in_fixture.py @@ -64,8 +64,8 @@ async def test_evaluate_agents_long_running_4_runs_per_eval_item( await AgentEvaluator.evaluate( agent_module=agent_name, eval_dataset_file_path_or_dir=evalfile, - # Using a slightly higher value helps us manange the variances that may + # Using a slightly higher value helps us manage the variances that may # happen in each eval. - # This, of course, comes at a cost of incrased test run times. + # This, of course, comes at a cost of increased test run times. num_runs=4, ) diff --git a/tests/integration/test_tools.py b/tests/integration/test_tools.py index 39662484ec..a9f99791bc 100644 --- a/tests/integration/test_tools.py +++ b/tests/integration/test_tools.py @@ -106,12 +106,12 @@ def test_complex_function_calls_success(agent_runner: TestRunner): [{"agent": tool_agent.agent.root_agent}], indirect=True, ) -def test_repetive_call_success(agent_runner: TestRunner): +def test_repetitive_call_success(agent_runner: TestRunner): _call_function_and_assert( agent_runner, - "repetive_call_1", + "repetitive_call_1", "test", - "test_repetive", + "test_repetitive", ) diff --git a/tests/unittests/a2a/converters/test_request_converter.py b/tests/unittests/a2a/converters/test_request_converter.py index 3f4b8d853c..b56e3ccb1a 100644 --- a/tests/unittests/a2a/converters/test_request_converter.py +++ b/tests/unittests/a2a/converters/test_request_converter.py @@ -368,7 +368,7 @@ def test_end_to_end_conversion_with_fallback_user(self): assert result is not None assert ( result.user_id == "A2A_USER_test_session_456" - ) # Should fallback to context ID + ) # Should fall back to context ID assert result.session_id == "test_session_456" assert isinstance(result.new_message, genai_types.Content) assert result.new_message.role == "user" diff --git a/tests/unittests/a2a/utils/test_agent_card_builder.py b/tests/unittests/a2a/utils/test_agent_card_builder.py index 64414730db..e0b62468e5 100644 --- a/tests/unittests/a2a/utils/test_agent_card_builder.py +++ b/tests/unittests/a2a/utils/test_agent_card_builder.py @@ -331,7 +331,7 @@ def test_replace_pronouns_basic(self): assert result == "I should do my work and it will be mine." def test_replace_pronouns_case_insensitive(self): - """Test _replace_pronouns with case insensitive matching.""" + """Test _replace_pronouns with case-insensitive matching.""" # Arrange text = "YOU should do YOUR work and it will be YOURS." @@ -1073,7 +1073,7 @@ def test_extract_examples_from_instruction_with_different_patterns(self): assert result is None def test_extract_examples_from_instruction_case_insensitive(self): - """Test _extract_examples_from_instruction with case insensitive matching.""" + """Test _extract_examples_from_instruction with case-insensitive matching.""" # Arrange instruction = ( 'example query: "What is the weather?" example response: "The weather' diff --git a/tests/unittests/agents/test_agent_clone.py b/tests/unittests/agents/test_agent_clone.py index 3091454b39..0a3d0a65f4 100644 --- a/tests/unittests/agents/test_agent_clone.py +++ b/tests/unittests/agents/test_agent_clone.py @@ -274,7 +274,7 @@ def test_clone_invalid_field(): """Test that cloning with invalid fields raises an error.""" original = LlmAgent(name="test_agent", description="Test agent") - with pytest.raises(ValueError, match="Cannot update non-existent fields"): + with pytest.raises(ValueError, match="Cannot update nonexistent fields"): original.clone(update={"invalid_field": "value"}) diff --git a/tests/unittests/agents/test_remote_a2a_agent.py b/tests/unittests/agents/test_remote_a2a_agent.py index 65359dc840..fc93e8dd5d 100644 --- a/tests/unittests/agents/test_remote_a2a_agent.py +++ b/tests/unittests/agents/test_remote_a2a_agent.py @@ -360,7 +360,7 @@ async def test_resolve_agent_card_from_file_success(self): @pytest.mark.asyncio async def test_resolve_agent_card_from_file_not_found(self): - """Test agent card resolution from non-existent file raises error.""" + """Test agent card resolution from nonexistent file raises error.""" agent = RemoteA2aAgent( name="test_agent", agent_card="/path/to/nonexistent.json" ) diff --git a/tests/unittests/auth/exchanger/test_credential_exchanger_registry.py b/tests/unittests/auth/exchanger/test_credential_exchanger_registry.py index 66b8582322..32c4812c2f 100644 --- a/tests/unittests/auth/exchanger/test_credential_exchanger_registry.py +++ b/tests/unittests/auth/exchanger/test_credential_exchanger_registry.py @@ -126,7 +126,7 @@ def test_get_exchanger_returns_correct_instance(self): assert isinstance(retrieved_exchanger, BaseCredentialExchanger) def test_get_exchanger_nonexistent_type_returns_none(self): - """Test that get_exchanger returns None for non-existent credential types.""" + """Test that get_exchanger returns None for nonexistent credential types.""" registry = CredentialExchangerRegistry() # Try to get an exchanger that was never registered diff --git a/tests/unittests/auth/exchanger/test_oauth2_credential_exchanger.py b/tests/unittests/auth/exchanger/test_oauth2_credential_exchanger.py index bc5990c677..1156bead70 100644 --- a/tests/unittests/auth/exchanger/test_oauth2_credential_exchanger.py +++ b/tests/unittests/auth/exchanger/test_oauth2_credential_exchanger.py @@ -24,7 +24,7 @@ from google.adk.auth.auth_credential import AuthCredentialTypes from google.adk.auth.auth_credential import OAuth2Auth from google.adk.auth.auth_schemes import OpenIdConnectWithConfig -from google.adk.auth.exchanger.base_credential_exchanger import CredentialExchangError +from google.adk.auth.exchanger.base_credential_exchanger import CredentialExchangeError from google.adk.auth.exchanger.oauth2_credential_exchanger import OAuth2CredentialExchanger import pytest @@ -117,7 +117,7 @@ async def test_exchange_missing_auth_scheme(self): try: await exchanger.exchange(credential, None) assert False, "Should have raised ValueError" - except CredentialExchangError as e: + except CredentialExchangeError as e: assert "auth_scheme is required" in str(e) @patch("google.adk.auth.oauth2_credential_util.OAuth2Session") diff --git a/tests/unittests/auth/test_auth_handler.py b/tests/unittests/auth/test_auth_handler.py index 0a2a2f7802..b1ef070667 100644 --- a/tests/unittests/auth/test_auth_handler.py +++ b/tests/unittests/auth/test_auth_handler.py @@ -419,7 +419,7 @@ def test_get_auth_response_exists( assert result == oauth2_credentials_with_auth_uri def test_get_auth_response_not_exists(self, auth_config): - """Test retrieving a non-existent auth response from state.""" + """Test retrieving a nonexistent auth response from state.""" handler = AuthHandler(auth_config) state = MockState() diff --git a/tests/unittests/cli/utils/test_agent_loader.py b/tests/unittests/cli/utils/test_agent_loader.py index 4e6e254ec0..c314329631 100644 --- a/tests/unittests/cli/utils/test_agent_loader.py +++ b/tests/unittests/cli/utils/test_agent_loader.py @@ -286,7 +286,7 @@ def test_agent_not_found_error(self): loader = AgentLoader(temp_dir) agents_dir = temp_dir # For use in the expected message string - # Try to load non-existent agent + # Try to load nonexistent agent with pytest.raises(ValueError) as exc_info: loader.load_agent("nonexistent_agent") @@ -328,12 +328,12 @@ def __init__(self): assert "No root_agent found for 'broken_agent'" in str(exc_info.value) def test_agent_internal_module_not_found_error(self): - """Test error when an agent tries to import a non-existent module.""" + """Test error when an agent tries to import a nonexistent module.""" with tempfile.TemporaryDirectory() as temp_dir: temp_path = Path(temp_dir) agent_name = "importer_agent" - # Create agent that imports a non-existent module + # Create agent that imports a nonexistent module agent_file = temp_path / f"{agent_name}.py" agent_file.write_text(dedent(f""" from google.adk.agents.base_agent import BaseAgent @@ -526,7 +526,7 @@ def test_yaml_agent_not_found_error(self): loader = AgentLoader(temp_dir) agents_dir = temp_dir # For use in the expected message string - # Try to load non-existent YAML agent + # Try to load nonexistent YAML agent with pytest.raises(ValueError) as exc_info: loader.load_agent("nonexistent_yaml_agent") diff --git a/tests/unittests/code_executors/test_code_executor_context.py b/tests/unittests/code_executors/test_code_executor_context.py index 5f3a237d34..6a85b7a81a 100644 --- a/tests/unittests/code_executors/test_code_executor_context.py +++ b/tests/unittests/code_executors/test_code_executor_context.py @@ -26,7 +26,7 @@ def empty_state() -> State: @pytest.fixture def context_with_data() -> CodeExecutorContext: - """Fixture for a CodeExecutorContext with some pre-populated data.""" + """Fixture for a CodeExecutorContext with some prepopulated data.""" state_data = { "_code_execution_context": { "execution_session_id": "session123", diff --git a/tests/unittests/evaluation/test_gcs_eval_sets_manager.py b/tests/unittests/evaluation/test_gcs_eval_sets_manager.py index 8cb7b7ecb3..1f26148727 100644 --- a/tests/unittests/evaluation/test_gcs_eval_sets_manager.py +++ b/tests/unittests/evaluation/test_gcs_eval_sets_manager.py @@ -101,7 +101,7 @@ def test_gcs_eval_sets_manager_create_eval_set_invalid_id( app_name = "test_app" eval_set_id = "invalid-id" - with pytest.raises(ValueError, match="Invalid Eval Set Id"): + with pytest.raises(ValueError, match="Invalid Eval Set ID"): gcs_eval_sets_manager.create_eval_set(app_name, eval_set_id) def test_gcs_eval_sets_manager_list_eval_sets_success( diff --git a/tests/unittests/evaluation/test_local_eval_service.py b/tests/unittests/evaluation/test_local_eval_service.py index df90bf39dc..cf2ca342f3 100644 --- a/tests/unittests/evaluation/test_local_eval_service.py +++ b/tests/unittests/evaluation/test_local_eval_service.py @@ -527,7 +527,7 @@ def test_generate_final_eval_status_doesn_t_throw_on(eval_service): # eval case. # We go over all the possible values of EvalStatus one by one and expect - # the _generate_final_eval_status to handle it without throwing an exeception. + # the _generate_final_eval_status to handle it without throwing an exception. for status in EvalStatus: eval_metric_result = EvalMetricResult( metric_name="metric1", threshold=0.5, eval_status=status diff --git a/tests/unittests/evaluation/test_local_eval_sets_manager.py b/tests/unittests/evaluation/test_local_eval_sets_manager.py index 08a5ee9d3f..fd31a9e5fd 100644 --- a/tests/unittests/evaluation/test_local_eval_sets_manager.py +++ b/tests/unittests/evaluation/test_local_eval_sets_manager.py @@ -24,7 +24,7 @@ from google.adk.evaluation.eval_case import Invocation from google.adk.evaluation.eval_set import EvalSet from google.adk.evaluation.local_eval_sets_manager import _EVAL_SET_FILE_EXTENSION -from google.adk.evaluation.local_eval_sets_manager import convert_eval_set_to_pydanctic_schema +from google.adk.evaluation.local_eval_sets_manager import convert_eval_set_to_pydantic_schema from google.adk.evaluation.local_eval_sets_manager import load_eval_set_from_file from google.adk.evaluation.local_eval_sets_manager import LocalEvalSetsManager from google.genai import types as genai_types @@ -32,10 +32,10 @@ import pytest -class TestConvertEvalSetToPydancticSchema: - """Tests convert_eval_set_to_pydanctic_schema method.""" +class TestConvertEvalSetToPydanticSchema: + """Tests convert_eval_set_to_pydantic_schema method.""" - def test_convert_eval_set_to_pydanctic_schema_complete(self): + def test_convert_eval_set_to_pydantic_schema_complete(self): eval_set_id = "test_eval_set" eval_set_in_json_format = [{ "name": "roll_17_sided_dice_twice", @@ -71,7 +71,7 @@ def test_convert_eval_set_to_pydanctic_schema_complete(self): }, }] - eval_set = convert_eval_set_to_pydanctic_schema( + eval_set = convert_eval_set_to_pydantic_schema( eval_set_id, eval_set_in_json_format ) @@ -93,14 +93,14 @@ def test_convert_eval_set_to_pydanctic_schema_complete(self): == 1 ) - def test_convert_eval_set_to_pydanctic_schema_minimal(self): + def test_convert_eval_set_to_pydantic_schema_minimal(self): eval_set_id = "test_eval_set" eval_set_in_json_format = [{ "name": "minimal_case", "data": [{"query": "Hello", "reference": "World"}], }] - eval_set = convert_eval_set_to_pydanctic_schema( + eval_set = convert_eval_set_to_pydantic_schema( eval_set_id, eval_set_in_json_format ) @@ -117,7 +117,7 @@ def test_convert_eval_set_to_pydanctic_schema_minimal(self): == "World" ) - def test_convert_eval_set_to_pydanctic_schema_empty_tool_use_and_intermediate_responses( + def test_convert_eval_set_to_pydantic_schema_empty_tool_use_and_intermediate_responses( self, ): eval_set_id = "test_eval_set" @@ -131,7 +131,7 @@ def test_convert_eval_set_to_pydanctic_schema_empty_tool_use_and_intermediate_re }], }] - eval_set = convert_eval_set_to_pydanctic_schema( + eval_set = convert_eval_set_to_pydantic_schema( eval_set_id, eval_set_in_json_format ) @@ -150,7 +150,7 @@ def test_convert_eval_set_to_pydanctic_schema_empty_tool_use_and_intermediate_re == 0 ) - def test_convert_eval_set_to_pydanctic_schema_empty_initial_session(self): + def test_convert_eval_set_to_pydantic_schema_empty_initial_session(self): eval_set_id = "test_eval_set" eval_set_in_json_format = [{ "name": "empty_session", @@ -158,14 +158,14 @@ def test_convert_eval_set_to_pydanctic_schema_empty_initial_session(self): "initial_session": {}, }] - eval_set = convert_eval_set_to_pydanctic_schema( + eval_set = convert_eval_set_to_pydantic_schema( eval_set_id, eval_set_in_json_format ) assert eval_set.eval_set_id == eval_set_id assert eval_set.eval_cases[0].session_input is None - def test_convert_eval_set_to_pydanctic_schema_invalid_data(self): + def test_convert_eval_set_to_pydantic_schema_invalid_data(self): # This test implicitly checks for potential validation errors during Pydantic # object creation eval_set_id = "test_eval_set" @@ -190,7 +190,7 @@ def test_convert_eval_set_to_pydanctic_schema_invalid_data(self): }] with pytest.raises(ValidationError): - convert_eval_set_to_pydanctic_schema(eval_set_id, eval_set_in_json_format) + convert_eval_set_to_pydantic_schema(eval_set_id, eval_set_in_json_format) class TestLoadEvalSetFromFile: @@ -300,14 +300,14 @@ def test_load_eval_set_from_file_invalid_json(self, tmp_path): def test_load_eval_set_from_file_invalid_data(self, tmp_path, mocker): # Create a dummy file with invalid data that fails both Pydantic validation # and the old format conversion. We mock the - # convert_eval_set_to_pydanctic_schema function to raise a ValueError + # convert_eval_set_to_pydantic_schema function to raise a ValueError # so that we can assert that the exception is raised. file_path = tmp_path / "invalid_data.json" with open(file_path, "w", encoding="utf-8") as f: f.write('{"invalid": "data"}') mocker.patch( - "google.adk.evaluation.local_eval_sets_manager.convert_eval_set_to_pydanctic_schema", + "google.adk.evaluation.local_eval_sets_manager.convert_eval_set_to_pydantic_schema", side_effect=ValueError(), ) @@ -392,7 +392,7 @@ def test_local_eval_sets_manager_create_eval_set_invalid_id( app_name = "test_app" eval_set_id = "invalid-id" - with pytest.raises(ValueError, match="Invalid Eval Set Id"): + with pytest.raises(ValueError, match="Invalid Eval Set ID"): local_eval_sets_manager.create_eval_set(app_name, eval_set_id) def test_local_eval_sets_manager_create_eval_set_already_exists( diff --git a/tests/unittests/flows/llm_flows/test_agent_transfer.py b/tests/unittests/flows/llm_flows/test_agent_transfer.py index f7d17d65bd..19225ce793 100644 --- a/tests/unittests/flows/llm_flows/test_agent_transfer.py +++ b/tests/unittests/flows/llm_flows/test_agent_transfer.py @@ -182,7 +182,7 @@ def test_auto_to_auto_to_single(is_resumable: bool): ] # sub_agent_1 should still be the current agent. sub_agent_1_1 is single so - # it should not be the current agent, otherwise the conversation will be + # it should not be the current agent; otherwise, the conversation will be # tied to sub_agent_1_1 forever. assert testing_utils.simplify_events(runner.run('test2')) == [ ('sub_agent_1', 'response2'), diff --git a/tests/unittests/flows/llm_flows/test_functions_sequential.py b/tests/unittests/flows/llm_flows/test_functions_sequential.py index a88d90f3d1..5ae073c615 100644 --- a/tests/unittests/flows/llm_flows/test_functions_sequential.py +++ b/tests/unittests/flows/llm_flows/test_functions_sequential.py @@ -64,13 +64,13 @@ def increase_by_one(x: int) -> int: assert testing_utils.simplify_contents(mockModel.requests[0].contents) == [ ('user', 'test') ] - # 3 items: user content, functaion call / response for the 1st call + # 3 items: user content, function call / response for the 1st call assert testing_utils.simplify_contents(mockModel.requests[1].contents) == [ ('user', 'test'), ('model', function_call({'x': 1})), ('user', function_response({'result': 2})), ] - # 5 items: user content, functaion call / response for two calls + # 5 items: user content, function call / response for two calls assert testing_utils.simplify_contents(mockModel.requests[2].contents) == [ ('user', 'test'), ('model', function_call({'x': 1})), @@ -78,7 +78,7 @@ def increase_by_one(x: int) -> int: ('model', function_call({'x': 2})), ('user', function_response({'result': 3})), ] - # 7 items: user content, functaion call / response for three calls + # 7 items: user content, function call / response for three calls assert testing_utils.simplify_contents(mockModel.requests[3].contents) == [ ('user', 'test'), ('model', function_call({'x': 1})), diff --git a/tests/unittests/flows/llm_flows/test_functions_simple.py b/tests/unittests/flows/llm_flows/test_functions_simple.py index b8599486b1..9fa1151387 100644 --- a/tests/unittests/flows/llm_flows/test_functions_simple.py +++ b/tests/unittests/flows/llm_flows/test_functions_simple.py @@ -32,7 +32,7 @@ def test_simple_function(): function_call_1 = types.Part.from_function_call( name='increase_by_one', args={'x': 1} ) - function_respones_2 = types.Part.from_function_response( + function_responses_2 = types.Part.from_function_response( name='increase_by_one', response={'result': 2} ) responses: list[types.Content] = [ @@ -54,7 +54,7 @@ def increase_by_one(x: int) -> int: runner = testing_utils.InMemoryRunner(agent) assert testing_utils.simplify_events(runner.run('test')) == [ ('root_agent', function_call_1), - ('root_agent', function_respones_2), + ('root_agent', function_responses_2), ('root_agent', 'response1'), ] @@ -65,7 +65,7 @@ def increase_by_one(x: int) -> int: assert testing_utils.simplify_contents(mock_model.requests[1].contents) == [ ('user', 'test'), ('model', function_call_1), - ('user', function_respones_2), + ('user', function_responses_2), ] # Asserts the function calls. diff --git a/tests/unittests/tools/bigquery/test_bigquery_query_tool.py b/tests/unittests/tools/bigquery/test_bigquery_query_tool.py index 5c8b921234..c69af8dee0 100644 --- a/tests/unittests/tools/bigquery/test_bigquery_query_tool.py +++ b/tests/unittests/tools/bigquery/test_bigquery_query_tool.py @@ -875,7 +875,7 @@ def test_execute_sql_non_select_stmt_write_protected_persistent_target( ): """Test execute_sql tool for non-SELECT query when writes are protected. - This is a special case when the destination table is a persistent/permananent + This is a special case when the destination table is a persistent/permanent one and the protected write is enabled. In this case the operation should fail. """ diff --git a/tests/unittests/tools/openapi_tool/openapi_spec_parser/test.yaml b/tests/unittests/tools/openapi_tool/openapi_spec_parser/test.yaml index 0cea00362c..1cc139a66c 100644 --- a/tests/unittests/tools/openapi_tool/openapi_spec_parser/test.yaml +++ b/tests/unittests/tools/openapi_tool/openapi_spec_parser/test.yaml @@ -871,7 +871,7 @@ components: type: string iCalUID: description: |- - Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method. + Event unique identifier as defined in RFC5545. It is used to uniquely identify events across calendaring systems and must be supplied when importing events via the import method. Note that the iCalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same iCalUIDs. To retrieve an event using its iCalUID, call the events.list method using the iCalUID parameter. To retrieve an event using its id, call the events.get method. type: string id: diff --git a/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_tool_auth_handler.py b/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_tool_auth_handler.py index e405ce5b88..16b0d3b848 100644 --- a/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_tool_auth_handler.py +++ b/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_tool_auth_handler.py @@ -150,11 +150,11 @@ async def test_openid_connect_with_auth_response( tool_context = create_mock_tool_context() mock_auth_handler = MagicMock() - returned_credentail = AuthCredential( + returned_credential = AuthCredential( auth_type=AuthCredentialTypes.OPEN_ID_CONNECT, oauth2=OAuth2Auth(auth_response_uri='test_auth_response_uri'), ) - mock_auth_handler.get_auth_response.return_value = returned_credentail + mock_auth_handler.get_auth_response.return_value = returned_credential mock_auth_handler_path = 'google.adk.tools.tool_context.AuthHandler' monkeypatch.setattr( mock_auth_handler_path, lambda *args, **kwargs: mock_auth_handler @@ -176,7 +176,7 @@ async def test_openid_connect_with_auth_response( stored_credential = credential_store.get_credential( openid_connect_scheme, openid_connect_credential ) - assert stored_credential == returned_credentail + assert stored_credential == returned_credential mock_auth_handler.get_auth_response.assert_called_once() diff --git a/tests/unittests/tools/test_build_function_declaration.py b/tests/unittests/tools/test_build_function_declaration.py index 8be1f86520..f57c3d3838 100644 --- a/tests/unittests/tools/test_build_function_declaration.py +++ b/tests/unittests/tools/test_build_function_declaration.py @@ -390,7 +390,7 @@ def function_string_return(param: str) -> str: assert function_decl.response.type == types.Type.STRING -def test_fucntion_with_no_response_annotations(): +def test_function_with_no_response_annotations(): """Test a function that has no response annotations.""" def transfer_to_agent(agent_name: str, tool_context: ToolContext): diff --git a/tests/unittests/tools/test_enterprise_web_search_tool.py b/tests/unittests/tools/test_enterprise_web_search_tool.py index 390da4a78b..9eabcf0bab 100644 --- a/tests/unittests/tools/test_enterprise_web_search_tool.py +++ b/tests/unittests/tools/test_enterprise_web_search_tool.py @@ -93,6 +93,4 @@ async def test_process_llm_request_failure_with_multiple_tools_gemini_1_models() await tool.process_llm_request( tool_context=tool_context, llm_request=llm_request ) - assert 'can not be used with other tools in Gemini 1.x.' in str( - exc_info.value - ) + assert 'cannot be used with other tools in Gemini 1.x.' in str(exc_info.value) diff --git a/tests/unittests/tools/test_function_tool.py b/tests/unittests/tools/test_function_tool.py index 38758e8d2c..78610d330d 100644 --- a/tests/unittests/tools/test_function_tool.py +++ b/tests/unittests/tools/test_function_tool.py @@ -39,14 +39,14 @@ def function_for_testing_with_no_args(): async def async_function_for_testing_with_1_arg_and_tool_context( arg1, tool_context ): - """Async function for testing with 1 arge and tool context.""" + """Async function for testing with 1 arg and tool context.""" assert arg1 assert tool_context return arg1 async def async_function_for_testing_with_2_arg_and_no_tool_context(arg1, arg2): - """Async function for testing with 2 arge and no tool context.""" + """Async function for testing with 2 args and no tool context.""" assert arg1 assert arg2 return arg1 @@ -65,7 +65,7 @@ async def __call__(self, arg1, arg2): def function_for_testing_with_1_arg_and_tool_context(arg1, tool_context): - """Function for testing with 1 arge and tool context.""" + """Function for testing with 1 arg and tool context.""" assert arg1 assert tool_context return arg1 @@ -81,7 +81,7 @@ async def __call__(self, arg1, tool_context): def function_for_testing_with_2_arg_and_no_tool_context(arg1, arg2): - """Function for testing with 2 arge and no tool context.""" + """Function for testing with 2 args and no tool context.""" assert arg1 assert arg2 return arg1 @@ -283,7 +283,7 @@ async def test_run_async_missing_all_arg_async_func(): @pytest.mark.asyncio async def test_run_async_with_optional_args_not_set_sync_func(): - """Test that run_async calls the function for sync funciton with optional args not set.""" + """Test that run_async calls the function for sync function with optional args not set.""" def func_with_optional_args(arg1, arg2=None, *, arg3, arg4=None, **kwargs): return f"{arg1},{arg3}" @@ -296,7 +296,7 @@ def func_with_optional_args(arg1, arg2=None, *, arg3, arg4=None, **kwargs): @pytest.mark.asyncio async def test_run_async_with_optional_args_not_set_async_func(): - """Test that run_async calls the function for async funciton with optional args not set.""" + """Test that run_async calls the function for async function with optional args not set.""" async def async_func_with_optional_args( arg1, arg2=None, *, arg3, arg4=None, **kwargs diff --git a/tests/unittests/tools/test_gemini_schema_util.py b/tests/unittests/tools/test_gemini_schema_util.py index ffbc80b819..ff38f07ae2 100644 --- a/tests/unittests/tools/test_gemini_schema_util.py +++ b/tests/unittests/tools/test_gemini_schema_util.py @@ -200,7 +200,7 @@ def test_to_gemini_schema_nested_dict(self): }, } gemini_schema = _to_gemini_schema(openapi_schema) - # Since metadata is not properties nor item, it will call to_gemini_schema recursively. + # Since metadata is neither properties nor item, it will call to_gemini_schema recursively. assert isinstance(gemini_schema.properties["metadata"], Schema) assert ( gemini_schema.properties["metadata"].type == Type.OBJECT @@ -544,7 +544,7 @@ def test_sanitize_schema_formats_for_gemini_nullable(self): "properties": { "case_id": { "description": "The ID of the case.", - "title": "Case Id", + "title": "Case ID", "type": "string", }, "next_page_token": { @@ -567,7 +567,7 @@ def test_sanitize_schema_formats_for_gemini_nullable(self): "properties": { "case_id": { "description": "The ID of the case.", - "title": "Case Id", + "title": "Case ID", "type": "string", }, "next_page_token": { diff --git a/tests/unittests/tools/test_google_search_tool.py b/tests/unittests/tools/test_google_search_tool.py index 9623875aaa..2f090abb17 100644 --- a/tests/unittests/tools/test_google_search_tool.py +++ b/tests/unittests/tools/test_google_search_tool.py @@ -186,7 +186,7 @@ async def test_process_llm_request_with_gemini_1_model_and_existing_tools_raises with pytest.raises( ValueError, match=( - 'Google search tool can not be used with other tools in Gemini 1.x' + 'Google search tool cannot be used with other tools in Gemini 1.x' ), ): await tool.process_llm_request( @@ -215,7 +215,7 @@ async def test_process_llm_request_with_path_based_gemini_1_model_and_existing_t with pytest.raises( ValueError, match=( - 'Google search tool can not be used with other tools in Gemini 1.x' + 'Google search tool cannot be used with other tools in Gemini 1.x' ), ): await tool.process_llm_request( diff --git a/tests/unittests/tools/test_url_context_tool.py b/tests/unittests/tools/test_url_context_tool.py index cbbbb0c9a1..eaa7391593 100644 --- a/tests/unittests/tools/test_url_context_tool.py +++ b/tests/unittests/tools/test_url_context_tool.py @@ -146,7 +146,7 @@ async def test_process_llm_request_with_gemini_1_model_raises_error(self): ) with pytest.raises( - ValueError, match='Url context tool can not be used in Gemini 1.x' + ValueError, match='Url context tool cannot be used in Gemini 1.x' ): await tool.process_llm_request( tool_context=tool_context, llm_request=llm_request @@ -166,7 +166,7 @@ async def test_process_llm_request_with_path_based_gemini_1_model_raises_error( ) with pytest.raises( - ValueError, match='Url context tool can not be used in Gemini 1.x' + ValueError, match='Url context tool cannot be used in Gemini 1.x' ): await tool.process_llm_request( tool_context=tool_context, llm_request=llm_request diff --git a/tests/unittests/tools/test_vertex_ai_search_tool.py b/tests/unittests/tools/test_vertex_ai_search_tool.py index 12ee2f60f4..0df19288a3 100644 --- a/tests/unittests/tools/test_vertex_ai_search_tool.py +++ b/tests/unittests/tools/test_vertex_ai_search_tool.py @@ -207,7 +207,7 @@ async def test_process_llm_request_with_gemini_1_and_other_tools_raises_error( with pytest.raises( ValueError, match=( - 'Vertex AI search tool can not be used with other tools in' + 'Vertex AI search tool cannot be used with other tools in' ' Gemini 1.x' ), ): @@ -237,7 +237,7 @@ async def test_process_llm_request_with_path_based_gemini_1_and_other_tools_rais with pytest.raises( ValueError, match=( - 'Vertex AI search tool can not be used with other tools in' + 'Vertex AI search tool cannot be used with other tools in' ' Gemini 1.x' ), ): diff --git a/tests/unittests/utils/test_model_name_utils.py b/tests/unittests/utils/test_model_name_utils.py index 2e3b70a92b..127589d4a6 100644 --- a/tests/unittests/utils/test_model_name_utils.py +++ b/tests/unittests/utils/test_model_name_utils.py @@ -120,7 +120,7 @@ def test_is_gemini_model_edge_cases(self): assert is_gemini_model('gemini_1_5_flash') is False def test_is_gemini_model_case_sensitivity(self): - """Test that model detection is case sensitive.""" + """Test that model detection is case-sensitive.""" assert is_gemini_model('Gemini-2.5-pro') is False assert is_gemini_model('GEMINI-2.5-pro') is False assert is_gemini_model('gemini-2.5-PRO') is True # Only the start matters From c33a680b5476ef3842b27e84fd3d7d4d36f736e0 Mon Sep 17 00:00:00 2001 From: George Weale Date: Mon, 3 Nov 2025 13:40:23 -0800 Subject: [PATCH 270/303] docs: Add instructions to prevent tool hallucination Co-authored-by: George Weale PiperOrigin-RevId: 827632446 --- .../instruction_embedded.template | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template index ba9c8000b7..27bbba76ed 100644 --- a/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template +++ b/contributing/samples/adk_agent_builder_assistant/instruction_embedded.template @@ -202,6 +202,19 @@ tools: ``` **DO NOT create Python files like `tools/google_search_tool.py` for built-in tools!** +- **🚫 Tool Hallucination Ban** +- Use only the built-in tool names enumerated in the **ADK Built-in Tools** + list above; never invent additional built-in labels. +- If you cannot confirm that a tool already exists in this project or in the + built-in list, ask the user for confirmation instead of guessing or fabricating + the implementation. +- Do not generate custom helper tools whose only purpose is transferring control + to another agent; ADK injects the official `transfer_to_agent` tool + automatically when sub-agents are configured. Avoid creating look-alikes such + as `transfer_to_agent_tool`. +- `tool_code` is reserved by some runtimes for code execution. Do not reuse that + name for ADK tools or dotted paths. + **Custom Tools** (require Python implementation): - **Naming**: Use dotted path: `{{project_folder_name}}.tools.{{module_name}}.{{function_name}}` - **Require Python file**: Must create actual Python file in `tools/` directory From f81ebdb622211031945eb06c3f00ff5208d94f9b Mon Sep 17 00:00:00 2001 From: Haegyun Lee Date: Mon, 3 Nov 2025 15:54:18 -0800 Subject: [PATCH 271/303] fix: Bug when callback_context_invocation_context is missing in GlobalInstructionPlugin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge #3163 END_PUBLIC Hello, Since global_instruction has been deprecated, I’m migrating to GlobalInstructionPlugin. During the migration, I encountered an error and am submitting this PR to fix it. In [df05ed6](https://github.com/google/adk-python/commit/df05ed6b3b7b218d85fddc1acd6617802cdf6f2a) , GlobalInstructionPlugin references invocation_context, but CallbackContext actually contains _invocation_context. This mismatch always causes an error during execution. COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3180 from UlookEE:fix_global_instruction_plugin e289a12d69812f0abcfe77db0114fdb2045b31bc PiperOrigin-RevId: 827682501 --- src/google/adk/plugins/global_instruction_plugin.py | 3 +-- .../plugins/test_global_instruction_plugin.py | 12 ++++++------ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/google/adk/plugins/global_instruction_plugin.py b/src/google/adk/plugins/global_instruction_plugin.py index 4251f691f6..ed2a6d4821 100644 --- a/src/google/adk/plugins/global_instruction_plugin.py +++ b/src/google/adk/plugins/global_instruction_plugin.py @@ -79,9 +79,8 @@ async def before_model_callback( return None # Resolve the global instruction (handle both string and InstructionProvider) - readonly_context = ReadonlyContext(callback_context.invocation_context) final_global_instruction = await self._resolve_global_instruction( - readonly_context + callback_context ) if not final_global_instruction: diff --git a/tests/unittests/plugins/test_global_instruction_plugin.py b/tests/unittests/plugins/test_global_instruction_plugin.py index 2253b1fb5a..851f3a9334 100644 --- a/tests/unittests/plugins/test_global_instruction_plugin.py +++ b/tests/unittests/plugins/test_global_instruction_plugin.py @@ -43,7 +43,7 @@ async def test_global_instruction_plugin_with_string(): mock_invocation_context.session = mock_session mock_callback_context = Mock(spec=CallbackContext) - mock_callback_context.invocation_context = mock_invocation_context + mock_callback_context._invocation_context = mock_invocation_context llm_request = LlmRequest( model="gemini-1.5-flash", @@ -80,10 +80,10 @@ async def build_global_instruction(readonly_context: ReadonlyContext) -> str: ) mock_invocation_context = Mock(spec=InvocationContext) - mock_invocation_context.session = mock_session mock_callback_context = Mock(spec=CallbackContext) - mock_callback_context.invocation_context = mock_invocation_context + mock_callback_context._invocation_context = mock_invocation_context + mock_callback_context.session = mock_session llm_request = LlmRequest( model="gemini-1.5-flash", @@ -119,7 +119,7 @@ async def test_global_instruction_plugin_empty_instruction(): mock_invocation_context.session = mock_session mock_callback_context = Mock(spec=CallbackContext) - mock_callback_context.invocation_context = mock_invocation_context + mock_callback_context._invocation_context = mock_invocation_context llm_request = LlmRequest( model="gemini-1.5-flash", @@ -156,7 +156,7 @@ async def test_global_instruction_plugin_leads_existing(): mock_invocation_context.session = mock_session mock_callback_context = Mock(spec=CallbackContext) - mock_callback_context.invocation_context = mock_invocation_context + mock_callback_context._invocation_context = mock_invocation_context llm_request = LlmRequest( model="gemini-1.5-flash", @@ -191,7 +191,7 @@ async def test_global_instruction_plugin_prepends_to_list(): mock_invocation_context.session = mock_session mock_callback_context = Mock(spec=CallbackContext) - mock_callback_context.invocation_context = mock_invocation_context + mock_callback_context._invocation_context = mock_invocation_context llm_request = LlmRequest( model="gemini-1.5-flash", From 8b6ee576d58a2190ed5ded07e89725b000e1eb34 Mon Sep 17 00:00:00 2001 From: Yifan Wang Date: Mon, 3 Nov 2025 16:37:06 -0800 Subject: [PATCH 272/303] chore: remove working_in_progress for agent builder endpoints Co-authored-by: Yifan Wang PiperOrigin-RevId: 827698290 --- src/google/adk/cli/fast_api.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/google/adk/cli/fast_api.py b/src/google/adk/cli/fast_api.py index 58dcfc1527..7ff10c5414 100644 --- a/src/google/adk/cli/fast_api.py +++ b/src/google/adk/cli/fast_api.py @@ -40,7 +40,6 @@ from ..memory.in_memory_memory_service import InMemoryMemoryService from ..runners import Runner from ..sessions.in_memory_session_service import InMemorySessionService -from ..utils.feature_decorator import working_in_progress from .adk_web_server import AdkWebServer from .service_registry import get_service_registry from .utils import envs @@ -207,7 +206,6 @@ def tear_down_observer(observer: Observer, _: AdkWebServer): **extra_fast_api_args, ) - @working_in_progress("builder_save is not ready for use.") @app.post("/builder/save", response_model_exclude_none=True) async def builder_build( files: list[UploadFile], tmp: Optional[bool] = False @@ -245,7 +243,6 @@ async def builder_build( return True - @working_in_progress("builder_save is not ready for use.") @app.post("/builder/app/{app_name}/cancel", response_model_exclude_none=True) async def builder_cancel(app_name: str) -> bool: base_path = Path.cwd() / agents_dir @@ -279,7 +276,6 @@ async def builder_cancel(app_name: str) -> bool: return False return True - @working_in_progress("builder_get is not ready for use.") @app.get( "/builder/app/{app_name}", response_model_exclude_none=True, From 6a94af24bf3367c05a5d405b7e7b79810a1fac4e Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Mon, 3 Nov 2025 17:11:29 -0800 Subject: [PATCH 273/303] chore: Disable SetModelResponseTool workaround for Vertex AI Gemini 2+ models Gemini models now [support Function calling being used together with structured output on Vertex AI](https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/function-calling#structured-output-bp). Co-authored-by: Xuan Yang PiperOrigin-RevId: 827709903 --- .../llm_flows/_output_schema_processor.py | 10 +++- src/google/adk/flows/llm_flows/basic.py | 6 ++- src/google/adk/utils/output_schema_utils.py | 38 ++++++++++++++ .../flows/llm_flows/test_basic_processor.py | 43 +++++++++++++++- .../llm_flows/test_output_schema_processor.py | 37 +++++++++++--- .../utils/test_output_schema_utils.py | 50 +++++++++++++++++++ 6 files changed, 171 insertions(+), 13 deletions(-) create mode 100644 src/google/adk/utils/output_schema_utils.py create mode 100644 tests/unittests/utils/test_output_schema_utils.py diff --git a/src/google/adk/flows/llm_flows/_output_schema_processor.py b/src/google/adk/flows/llm_flows/_output_schema_processor.py index 464e0a7198..2298c04427 100644 --- a/src/google/adk/flows/llm_flows/_output_schema_processor.py +++ b/src/google/adk/flows/llm_flows/_output_schema_processor.py @@ -25,6 +25,7 @@ from ...events.event import Event from ...models.llm_request import LlmRequest from ...tools.set_model_response_tool import SetModelResponseTool +from ...utils.output_schema_utils import can_use_output_schema_with_tools from ._base_llm_processor import BaseLlmRequestProcessor @@ -39,8 +40,13 @@ async def run_async( agent = invocation_context.agent - # Check if we need the processor: output_schema + tools - if not agent.output_schema or not agent.tools: + # Check if we need the processor: output_schema + tools + cannot use output + # schema with tools + if ( + not agent.output_schema + or not agent.tools + or can_use_output_schema_with_tools(agent.model) + ): return # Add the set_model_response tool to handle structured output diff --git a/src/google/adk/flows/llm_flows/basic.py b/src/google/adk/flows/llm_flows/basic.py index 24cc7fd67c..1468a7cab8 100644 --- a/src/google/adk/flows/llm_flows/basic.py +++ b/src/google/adk/flows/llm_flows/basic.py @@ -25,6 +25,7 @@ from ...agents.invocation_context import InvocationContext from ...events.event import Event from ...models.llm_request import LlmRequest +from ...utils.output_schema_utils import can_use_output_schema_with_tools from ._base_llm_processor import BaseLlmRequestProcessor @@ -52,8 +53,9 @@ async def run_async( # support output_schema and tools together. we have a workaround to support # both output_schema and tools at the same time. see # _output_schema_processor.py for details - if agent.output_schema and not agent.tools: - llm_request.set_output_schema(agent.output_schema) + if agent.output_schema: + if not agent.tools or can_use_output_schema_with_tools(agent.model): + llm_request.set_output_schema(agent.output_schema) llm_request.live_connect_config.response_modalities = ( invocation_context.run_config.response_modalities diff --git a/src/google/adk/utils/output_schema_utils.py b/src/google/adk/utils/output_schema_utils.py new file mode 100644 index 0000000000..ae14686e38 --- /dev/null +++ b/src/google/adk/utils/output_schema_utils.py @@ -0,0 +1,38 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Utilities for Output Schema. + +This module is for ADK internal use only. +Please do not rely on the implementation details. +""" + +from __future__ import annotations + +from typing import Union + +from ..models.base_llm import BaseLlm +from .model_name_utils import is_gemini_2_or_above +from .variant_utils import get_google_llm_variant +from .variant_utils import GoogleLLMVariant + + +def can_use_output_schema_with_tools(model: Union[str, BaseLlm]): + """Returns True if output schema with tools is supported.""" + model_string = model if isinstance(model, str) else model.model + + return ( + get_google_llm_variant() == GoogleLLMVariant.VERTEX_AI + and is_gemini_2_or_above(model_string) + ) diff --git a/tests/unittests/flows/llm_flows/test_basic_processor.py b/tests/unittests/flows/llm_flows/test_basic_processor.py index 770f358949..e0be77818a 100644 --- a/tests/unittests/flows/llm_flows/test_basic_processor.py +++ b/tests/unittests/flows/llm_flows/test_basic_processor.py @@ -14,6 +14,8 @@ """Tests for basic LLM request processor.""" +from unittest import mock + from google.adk.agents.invocation_context import InvocationContext from google.adk.agents.llm_agent import LlmAgent from google.adk.agents.run_config import RunConfig @@ -80,7 +82,7 @@ async def test_sets_output_schema_when_no_tools(self): assert llm_request.config.response_mime_type == 'application/json' @pytest.mark.asyncio - async def test_skips_output_schema_when_tools_present(self): + async def test_skips_output_schema_when_tools_present(self, mocker): """Test that processor skips output_schema when agent has tools.""" agent = LlmAgent( name='test_agent', @@ -93,6 +95,11 @@ async def test_skips_output_schema_when_tools_present(self): llm_request = LlmRequest() processor = _BasicLlmRequestProcessor() + can_use_output_schema_with_tools = mocker.patch( + 'google.adk.flows.llm_flows.basic.can_use_output_schema_with_tools', + mock.MagicMock(return_value=False), + ) + # Process the request events = [] async for event in processor.run_async(invocation_context, llm_request): @@ -102,6 +109,40 @@ async def test_skips_output_schema_when_tools_present(self): assert llm_request.config.response_schema is None assert llm_request.config.response_mime_type != 'application/json' + # Should have checked if output schema can be used with tools + can_use_output_schema_with_tools.assert_called_once_with(agent.model) + + @pytest.mark.asyncio + async def test_sets_output_schema_when_tools_present(self, mocker): + """Test that processor skips output_schema when agent has tools.""" + agent = LlmAgent( + name='test_agent', + model='gemini-2.5-flash', + output_schema=OutputSchema, + tools=[FunctionTool(func=dummy_tool)], # Has tools + ) + + invocation_context = await _create_invocation_context(agent) + llm_request = LlmRequest() + processor = _BasicLlmRequestProcessor() + + can_use_output_schema_with_tools = mocker.patch( + 'google.adk.flows.llm_flows.basic.can_use_output_schema_with_tools', + mock.MagicMock(return_value=True), + ) + + # Process the request + events = [] + async for event in processor.run_async(invocation_context, llm_request): + events.append(event) + + # Should have set response_schema since output schema can be used with tools + assert llm_request.config.response_schema == OutputSchema + assert llm_request.config.response_mime_type == 'application/json' + + # Should have checked if output schema can be used with tools + can_use_output_schema_with_tools.assert_called_once_with(agent.model) + @pytest.mark.asyncio async def test_no_output_schema_no_tools(self): """Test that processor works normally when agent has no output_schema or tools.""" diff --git a/tests/unittests/flows/llm_flows/test_output_schema_processor.py b/tests/unittests/flows/llm_flows/test_output_schema_processor.py index 4c43407cd4..f7ad8eb32a 100644 --- a/tests/unittests/flows/llm_flows/test_output_schema_processor.py +++ b/tests/unittests/flows/llm_flows/test_output_schema_processor.py @@ -14,14 +14,13 @@ """Tests for output schema processor functionality.""" -import json +from unittest import mock from google.adk.agents.invocation_context import InvocationContext from google.adk.agents.llm_agent import LlmAgent from google.adk.agents.run_config import RunConfig from google.adk.flows.llm_flows.single_flow import SingleFlow from google.adk.models.llm_request import LlmRequest -from google.adk.models.llm_response import LlmResponse from google.adk.sessions.in_memory_session_service import InMemorySessionService from google.adk.tools.function_tool import FunctionTool from pydantic import BaseModel @@ -145,7 +144,16 @@ async def test_basic_processor_sets_output_schema_without_tools(): @pytest.mark.asyncio -async def test_output_schema_request_processor(): +@pytest.mark.parametrize( + 'output_schema_with_tools_allowed', + [ + False, + True, + ], +) +async def test_output_schema_request_processor( + output_schema_with_tools_allowed, mocker +): """Test that output schema processor adds set_model_response tool.""" from google.adk.flows.llm_flows._output_schema_processor import _OutputSchemaRequestProcessor @@ -161,16 +169,29 @@ async def test_output_schema_request_processor(): llm_request = LlmRequest() processor = _OutputSchemaRequestProcessor() + can_use_output_schema_with_tools = mocker.patch( + 'google.adk.flows.llm_flows._output_schema_processor.can_use_output_schema_with_tools', + mock.MagicMock(return_value=output_schema_with_tools_allowed), + ) + # Process the request events = [] async for event in processor.run_async(invocation_context, llm_request): events.append(event) - # Should have added set_model_response tool - assert 'set_model_response' in llm_request.tools_dict - - # Should have added instruction about using set_model_response - assert 'set_model_response' in llm_request.config.system_instruction + if not output_schema_with_tools_allowed: + # Should have added set_model_response tool if output schema with tools is + # allowed + assert 'set_model_response' in llm_request.tools_dict + # Should have added instruction about using set_model_response + assert 'set_model_response' in llm_request.config.system_instruction + else: + # Should skip modifying LlmRequest + assert not llm_request.tools_dict + assert not llm_request.config.system_instruction + + # Should have checked if output schema can be used with tools + can_use_output_schema_with_tools.assert_called_once_with(agent.model) @pytest.mark.asyncio diff --git a/tests/unittests/utils/test_output_schema_utils.py b/tests/unittests/utils/test_output_schema_utils.py new file mode 100644 index 0000000000..ca7f88d91d --- /dev/null +++ b/tests/unittests/utils/test_output_schema_utils.py @@ -0,0 +1,50 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from google.adk.models.anthropic_llm import Claude +from google.adk.models.google_llm import Gemini +from google.adk.utils.output_schema_utils import can_use_output_schema_with_tools +import pytest + + +@pytest.mark.parametrize( + "model, env_value, expected", + [ + ("gemini-2.5-pro", "1", True), + ("gemini-2.5-pro", "0", False), + ("gemini-2.5-pro", None, False), + (Gemini(model="gemini-2.5-pro"), "1", True), + (Gemini(model="gemini-2.5-pro"), "0", False), + (Gemini(model="gemini-2.5-pro"), None, False), + ("gemini-2.0-flash", "1", True), + ("gemini-2.0-flash", "0", False), + ("gemini-2.0-flash", None, False), + ("gemini-1.5-pro", "1", False), + ("gemini-1.5-pro", "0", False), + ("gemini-1.5-pro", None, False), + (Claude(model="claude-3.7-sonnet"), "1", False), + (Claude(model="claude-3.7-sonnet"), "0", False), + (Claude(model="claude-3.7-sonnet"), None, False), + ], +) +def test_can_use_output_schema_with_tools( + monkeypatch, model, env_value, expected +): + """Test can_use_output_schema_with_tools.""" + if env_value is not None: + monkeypatch.setenv("GOOGLE_GENAI_USE_VERTEXAI", env_value) + else: + monkeypatch.delenv("GOOGLE_GENAI_USE_VERTEXAI", raising=False) + assert can_use_output_schema_with_tools(model) == expected From d2888a3766b87df2baaaa1a67a2235b1b80f138f Mon Sep 17 00:00:00 2001 From: Haegyun Lee Date: Mon, 3 Nov 2025 18:06:43 -0800 Subject: [PATCH 274/303] fix: Fix typo in several files Merge https://github.com/google/adk-python/pull/3365 **Please ensure you have read the [contribution guide](https://github.com/google/adk-python/blob/main/CONTRIBUTING.md) before creating a pull request.** fix typo for several files. ### Checklist - [x] I have read the [CONTRIBUTING.md](https://github.com/google/adk-python/blob/main/CONTRIBUTING.md) document. - [x] I have performed a self-review of my own code. - [ ] I have commented my code, particularly in hard-to-understand areas. - [ ] I have added tests that prove my fix is effective or that my feature works. - [x] New and existing unit tests pass locally with my changes. - [x] I have manually tested my changes end-to-end. - [x] Any dependent changes have been merged and published in downstream modules. ### Additional context _Add any other context or screenshots about the feature request here._ Co-authored-by: Liang Wu COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3365 from UlookEE:fix_typo 1469de4ea354d1c205268b999183ee86c9d6a1d5 PiperOrigin-RevId: 827724001 --- src/google/adk/agents/parallel_agent.py | 2 +- src/google/adk/evaluation/base_eval_service.py | 2 +- src/google/adk/evaluation/eval_sets_manager.py | 2 +- src/google/adk/flows/llm_flows/functions.py | 2 +- src/google/adk/sessions/state.py | 4 +++- src/google/adk/telemetry/tracing.py | 2 +- tests/unittests/runners/test_pause_invocation.py | 2 +- 7 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/google/adk/agents/parallel_agent.py b/src/google/adk/agents/parallel_agent.py index cbbb0333d2..f7270a75c9 100644 --- a/src/google/adk/agents/parallel_agent.py +++ b/src/google/adk/agents/parallel_agent.py @@ -160,7 +160,7 @@ async def process_an_agent(events_for_one_agent): class ParallelAgent(BaseAgent): - """A shell agent that run its sub-agents in parallel in isolated manner. + """A shell agent that runs its sub-agents in parallel in an isolated manner. This approach is beneficial for scenarios requiring multiple perspectives or attempts on a single task, such as: diff --git a/src/google/adk/evaluation/base_eval_service.py b/src/google/adk/evaluation/base_eval_service.py index a82a468324..bb1c3b23a4 100644 --- a/src/google/adk/evaluation/base_eval_service.py +++ b/src/google/adk/evaluation/base_eval_service.py @@ -31,7 +31,7 @@ class EvaluateConfig(BaseModel): - """Contains configurations need to run an evaluations.""" + """Contains configurations needed to run evaluations.""" model_config = ConfigDict( alias_generator=alias_generators.to_camel, diff --git a/src/google/adk/evaluation/eval_sets_manager.py b/src/google/adk/evaluation/eval_sets_manager.py index be4655e46b..94ca147653 100644 --- a/src/google/adk/evaluation/eval_sets_manager.py +++ b/src/google/adk/evaluation/eval_sets_manager.py @@ -23,7 +23,7 @@ class EvalSetsManager(ABC): - """An interface to manage an Eval Sets.""" + """An interface to manage Eval Sets.""" @abstractmethod def get_eval_set(self, app_name: str, eval_set_id: str) -> Optional[EvalSet]: diff --git a/src/google/adk/flows/llm_flows/functions.py b/src/google/adk/flows/llm_flows/functions.py index 95d1e7901b..c5d2eea96b 100644 --- a/src/google/adk/flows/llm_flows/functions.py +++ b/src/google/adk/flows/llm_flows/functions.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -"""Handles function callings for LLM flow.""" +"""Handles function calling for LLM flow.""" from __future__ import annotations diff --git a/src/google/adk/sessions/state.py b/src/google/adk/sessions/state.py index 86eb673aca..e56f33ce78 100644 --- a/src/google/adk/sessions/state.py +++ b/src/google/adk/sessions/state.py @@ -12,11 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations + from typing import Any class State: - """A state dict that maintain the current value and the pending-commit delta.""" + """A state dict that maintains the current value and the pending-commit delta.""" APP_PREFIX = "app:" USER_PREFIX = "user:" diff --git a/src/google/adk/telemetry/tracing.py b/src/google/adk/telemetry/tracing.py index 1c5cd79269..bda9fd0be8 100644 --- a/src/google/adk/telemetry/tracing.py +++ b/src/google/adk/telemetry/tracing.py @@ -86,7 +86,7 @@ def _safe_json_serialize(obj) -> str: def trace_agent_invocation( span: trace.Span, agent: BaseAgent, ctx: InvocationContext ) -> None: - """Sets span attributes immedietely available on agent invocation according to OTEL semconv version 1.37. + """Sets span attributes immediately available on agent invocation according to OTEL semconv version 1.37. Args: span: Span on which attributes are set. diff --git a/tests/unittests/runners/test_pause_invocation.py b/tests/unittests/runners/test_pause_invocation.py index f0c43f075e..79a42c1967 100644 --- a/tests/unittests/runners/test_pause_invocation.py +++ b/tests/unittests/runners/test_pause_invocation.py @@ -469,7 +469,7 @@ def test_pause_on_long_running_function_call( class TestPauseInvocationWithWithTransferLoop(BasePauseInvocationTest): - """Tests the pausing the invocation when the agent transfer forms a loop.""" + """Tests pausing the invocation when the agent transfer forms a loop.""" @pytest.fixture def agent(self) -> LlmAgent: From 38ea749c9cec8e65f5e768f49fd2de79b5545571 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Mon, 3 Nov 2025 23:01:31 -0800 Subject: [PATCH 275/303] feat: Extend Bigquery detect_anomalies tool to support future data anomaly detection ARIMA supports both historical data and future data anomaly detection. This CL add how the tool support future table anomaly detection. PiperOrigin-RevId: 827803748 --- src/google/adk/tools/bigquery/query_tool.py | 16 ++++++ .../bigquery/test_bigquery_query_tool.py | 56 +++++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/src/google/adk/tools/bigquery/query_tool.py b/src/google/adk/tools/bigquery/query_tool.py index a671beadda..cf2f23f8ad 100644 --- a/src/google/adk/tools/bigquery/query_tool.py +++ b/src/google/adk/tools/bigquery/query_tool.py @@ -1100,6 +1100,7 @@ def detect_anomalies( times_series_timestamp_col: str, times_series_data_col: str, horizon: Optional[int] = 10, + target_data: Optional[str] = None, times_series_id_cols: Optional[list[str]] = None, anomaly_prob_threshold: Optional[float] = 0.95, *, @@ -1121,6 +1122,9 @@ def detect_anomalies( numerical values to be forecasted and anomaly detected. horizon (int, optional): The number of time steps to forecast into the future. Defaults to 10. + target_data (str, optional): The table id of the BigQuery table containing + the target time series data or a query statement that select the target + data. times_series_id_cols (list, optional): The column names of the id columns to indicate each time series when there are multiple time series in the table. All elements must be strings. Defaults to None. @@ -1264,6 +1268,18 @@ def detect_anomalies( anomaly_detection_query = f""" SELECT * FROM ML.DETECT_ANOMALIES(MODEL {model_name}, STRUCT({anomaly_prob_threshold} AS anomaly_prob_threshold)) """ + if target_data: + trimmed_upper_target_data = target_data.strip().upper() + if trimmed_upper_target_data.startswith( + "SELECT" + ) or trimmed_upper_target_data.startswith("WITH"): + target_data_source = f"({target_data})" + else: + target_data_source = f"SELECT * FROM `{target_data}`" + + anomaly_detection_query = f""" + SELECT * FROM ML.DETECT_ANOMALIES(MODEL {model_name}, STRUCT({anomaly_prob_threshold} AS anomaly_prob_threshold), {target_data_source}) + """ # Create a session and run the create model query. original_write_mode = settings.write_mode diff --git a/tests/unittests/tools/bigquery/test_bigquery_query_tool.py b/tests/unittests/tools/bigquery/test_bigquery_query_tool.py index c69af8dee0..b41a55a945 100644 --- a/tests/unittests/tools/bigquery/test_bigquery_query_tool.py +++ b/tests/unittests/tools/bigquery/test_bigquery_query_tool.py @@ -1509,6 +1509,62 @@ def test_detect_anomalies_with_custom_params(mock_uuid, mock_execute_sql): ) +# detect_anomalies calls execute_sql twice. We need to test that +# the queries are properly constructed and call execute_sql with the correct +# parameters exactly twice. +@mock.patch("google.adk.tools.bigquery.query_tool.execute_sql", autospec=True) +@mock.patch("uuid.uuid4", autospec=True) +def test_detect_anomalies_on_target_table(mock_uuid, mock_execute_sql): + """Test time series anomaly detection tool with target data is provided.""" + mock_credentials = mock.MagicMock(spec=Credentials) + mock_settings = BigQueryToolConfig(write_mode=WriteMode.PROTECTED) + mock_tool_context = mock.create_autospec(ToolContext, instance=True) + mock_uuid.return_value = "test_uuid" + mock_execute_sql.return_value = {"status": "SUCCESS"} + + history_data_query = "SELECT * FROM `test-dataset.history-table`" + target_data_query = "SELECT * FROM `test-dataset.target-table`" + detect_anomalies( + project_id="test-project", + history_data=history_data_query, + times_series_timestamp_col="ts_timestamp", + times_series_data_col="ts_data", + times_series_id_cols=["dim1", "dim2"], + horizon=20, + target_data=target_data_query, + anomaly_prob_threshold=0.8, + credentials=mock_credentials, + settings=mock_settings, + tool_context=mock_tool_context, + ) + + expected_create_model_query = """ + CREATE TEMP MODEL detect_anomalies_model_test_uuid + OPTIONS (MODEL_TYPE = 'ARIMA_PLUS', TIME_SERIES_TIMESTAMP_COL = 'ts_timestamp', TIME_SERIES_DATA_COL = 'ts_data', HORIZON = 20, TIME_SERIES_ID_COL = ['dim1', 'dim2']) + AS (SELECT * FROM `test-dataset.history-table`) + """ + + expected_anomaly_detection_query = """ + SELECT * FROM ML.DETECT_ANOMALIES(MODEL detect_anomalies_model_test_uuid, STRUCT(0.8 AS anomaly_prob_threshold), (SELECT * FROM `test-dataset.target-table`)) + """ + + assert mock_execute_sql.call_count == 2 + mock_execute_sql.assert_any_call( + "test-project", + expected_create_model_query, + mock_credentials, + mock_settings, + mock_tool_context, + ) + mock_execute_sql.assert_any_call( + "test-project", + expected_anomaly_detection_query, + mock_credentials, + mock_settings, + mock_tool_context, + ) + + def test_detect_anomalies__with_invalid_id_cols(): """Test time series anomaly detection tool invocation with invalid times_series_id_cols.""" mock_credentials = mock.MagicMock(spec=Credentials) From 489c39db01465e38ecbc2c7f32781c349b8cddc9 Mon Sep 17 00:00:00 2001 From: George Weale Date: Tue, 4 Nov 2025 09:44:04 -0800 Subject: [PATCH 276/303] fix: Remove redundant `format` field from LiteLLM content objects LiteLLM providers can extract the MIME type from the data URI. Removing the separate `format` field avoids redundancy and potential issues with backends that may reject requests containing this field. Close #2017 Co-authored-by: George Weale PiperOrigin-RevId: 828014286 --- src/google/adk/models/lite_llm.py | 19 ++++++------------- tests/unittests/models/test_litellm.py | 14 +++++++------- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/src/google/adk/models/lite_llm.py b/src/google/adk/models/lite_llm.py index 5f374dc2ad..dafac4660d 100644 --- a/src/google/adk/models/lite_llm.py +++ b/src/google/adk/models/lite_llm.py @@ -314,33 +314,28 @@ def _get_content( ): base64_string = base64.b64encode(part.inline_data.data).decode("utf-8") data_uri = f"data:{part.inline_data.mime_type};base64,{base64_string}" + # LiteLLM providers extract the MIME type from the data URI; avoid + # passing a separate `format` field that some backends reject. if part.inline_data.mime_type.startswith("image"): - # Use full MIME type (e.g., "image/png") for providers that validate it - format_type = part.inline_data.mime_type content_objects.append({ "type": "image_url", - "image_url": {"url": data_uri, "format": format_type}, + "image_url": {"url": data_uri}, }) elif part.inline_data.mime_type.startswith("video"): - # Use full MIME type (e.g., "video/mp4") for providers that validate it - format_type = part.inline_data.mime_type content_objects.append({ "type": "video_url", - "video_url": {"url": data_uri, "format": format_type}, + "video_url": {"url": data_uri}, }) elif part.inline_data.mime_type.startswith("audio"): - # Use full MIME type (e.g., "audio/mpeg") for providers that validate it - format_type = part.inline_data.mime_type content_objects.append({ "type": "audio_url", - "audio_url": {"url": data_uri, "format": format_type}, + "audio_url": {"url": data_uri}, }) elif part.inline_data.mime_type == "application/pdf": - format_type = part.inline_data.mime_type content_objects.append({ "type": "file", - "file": {"file_data": data_uri, "format": format_type}, + "file": {"file_data": data_uri}, }) else: raise ValueError("LiteLlm(BaseLlm) does not support this content part.") @@ -348,8 +343,6 @@ def _get_content( file_object: ChatCompletionFileUrlObject = { "file_id": part.file_data.file_uri, } - if part.file_data.mime_type: - file_object["format"] = part.file_data.mime_type content_objects.append({ "type": "file", "file": file_object, diff --git a/tests/unittests/models/test_litellm.py b/tests/unittests/models/test_litellm.py index 1e1d47002d..72fcc4a714 100644 --- a/tests/unittests/models/test_litellm.py +++ b/tests/unittests/models/test_litellm.py @@ -1107,7 +1107,7 @@ def test_content_to_message_param_user_message_with_file_uri(): assert message["content"][0]["text"] == "Summarize this file." assert message["content"][1]["type"] == "file" assert message["content"][1]["file"]["file_id"] == "gs://bucket/document.pdf" - assert message["content"][1]["file"]["format"] == "application/pdf" + assert "format" not in message["content"][1]["file"] def test_content_to_message_param_user_message_file_uri_only(): @@ -1126,7 +1126,7 @@ def test_content_to_message_param_user_message_file_uri_only(): assert isinstance(message["content"], list) assert message["content"][0]["type"] == "file" assert message["content"][0]["file"]["file_id"] == "gs://bucket/only.pdf" - assert message["content"][0]["file"]["format"] == "application/pdf" + assert "format" not in message["content"][0]["file"] def test_content_to_message_param_multi_part_function_response(): @@ -1278,7 +1278,7 @@ def test_get_content_image(): content[0]["image_url"]["url"] == "data:image/png;base64,dGVzdF9pbWFnZV9kYXRh" ) - assert content[0]["image_url"]["format"] == "image/png" + assert "format" not in content[0]["image_url"] def test_get_content_video(): @@ -1291,7 +1291,7 @@ def test_get_content_video(): content[0]["video_url"]["url"] == "data:video/mp4;base64,dGVzdF92aWRlb19kYXRh" ) - assert content[0]["video_url"]["format"] == "video/mp4" + assert "format" not in content[0]["video_url"] def test_get_content_pdf(): @@ -1304,7 +1304,7 @@ def test_get_content_pdf(): content[0]["file"]["file_data"] == "data:application/pdf;base64,dGVzdF9wZGZfZGF0YQ==" ) - assert content[0]["file"]["format"] == "application/pdf" + assert "format" not in content[0]["file"] def test_get_content_file_uri(): @@ -1317,7 +1317,7 @@ def test_get_content_file_uri(): content = _get_content(parts) assert content[0]["type"] == "file" assert content[0]["file"]["file_id"] == "gs://bucket/document.pdf" - assert content[0]["file"]["format"] == "application/pdf" + assert "format" not in content[0]["file"] def test_get_content_audio(): @@ -1330,7 +1330,7 @@ def test_get_content_audio(): content[0]["audio_url"]["url"] == "data:audio/mpeg;base64,dGVzdF9hdWRpb19kYXRh" ) - assert content[0]["audio_url"]["format"] == "audio/mpeg" + assert "format" not in content[0]["audio_url"] def test_to_litellm_role(): From e25beb4bceb5ddd872b8770ec6ae9c2ed9846f93 Mon Sep 17 00:00:00 2001 From: George Weale Date: Tue, 4 Nov 2025 10:04:46 -0800 Subject: [PATCH 277/303] docs: Refine ADK triaging agent labeling guidelines and response format Co-authored-by: George Weale PiperOrigin-RevId: 828022792 --- .../samples/adk_triaging_agent/agent.py | 51 ++++++++++++++++--- 1 file changed, 44 insertions(+), 7 deletions(-) diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index 4f5679c969..283e1bd098 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -41,6 +41,33 @@ "a2a": "seanzhou1023", } +LABEL_GUIDELINES = """ + Label rubric and disambiguation rules: + - "documentation": Tutorials, README content, reference docs, or samples. + - "services": Session and memory services, persistence layers, or storage + integrations. + - "web": ADK web UI, FastAPI server, dashboards, or browser-based flows. + - "question": Usage questions without a reproducible problem. + - "tools": Built-in tools (e.g., SQL utils, code execution) or tool APIs. + - "mcp": Model Context Protocol features. Apply both "mcp" and "tools". + - "eval": Evaluation framework, test harnesses, scoring, or datasets. + - "live": Streaming, bidi, audio, or Gemini Live configuration. + - "models": Non-Gemini model adapters (LiteLLM, Ollama, OpenAI, etc.). + - "tracing": Telemetry, observability, structured logs, or spans. + - "core": Core ADK runtime (Agent definitions, Runner, planners, + thinking config, CLI commands, GlobalInstructionPlugin, CPU usage, or + general orchestration). Default to "core" when the topic is about ADK + behavior and no other label is a better fit. + - "agent engine": Vertex AI Agent Engine deployment or sandbox topics + only (e.g., `.agent_engine_config.json`, `ae_ignore`, Agent Engine + sandbox, `agent_engine_id`). If the issue does not explicitly mention + Agent Engine concepts, do not use this label—choose "core" instead. + - "a2a": Agent-to-agent workflows, coordination logic, or A2A protocol. + + When unsure between labels, prefer the most specific match. If a label + cannot be assigned confidently, do not call the labeling tool. +""" + APPROVAL_INSTRUCTION = ( "Do not ask for user approval for labeling! If you can't find appropriate" " labels for the issue, do not label it." @@ -171,18 +198,20 @@ def change_issue_type(issue_number: int, issue_type: str) -> dict[str, Any]: You are a triaging bot for the GitHub {REPO} repo with the owner {OWNER}. You will help get issues, and recommend a label. IMPORTANT: {APPROVAL_INSTRUCTION} + {LABEL_GUIDELINES} + Here are the rules for labeling: - If the user is asking about documentation-related questions, label it with "documentation". - - If it's about session, memory services, label it with "services" - - If it's about UI/web, label it with "web" - - If the user is asking about a question, label it with "question" - - If it's related to tools, label it with "tools" + - If it's about session, memory services, label it with "services". + - If it's about UI/web, label it with "web". + - If the user is asking about a question, label it with "question". + - If it's related to tools, label it with "tools". - If it's about agent evaluation, then label it with "eval". - If it's about streaming/live, label it with "live". - - If it's about model support(non-Gemini, like Litellm, Ollama, OpenAI models), label it with "models". + - If it's about model support (non-Gemini, like Litellm, Ollama, OpenAI models), label it with "models". - If it's about tracing, label it with "tracing". - - If it's agent orchestration, agent definition, label it with "core". - - If it's about agent engine, label it with "agent engine". + - If it's agent orchestration, agent definition, Runner behavior, planners, or performance, label it with "core". + - Use "agent engine" only when the issue clearly references Vertex AI Agent Engine deployment artifacts (for example `.agent_engine_config.json`, `ae_ignore`, `agent_engine_id`, or Agent Engine sandbox errors). - If it's about Model Context Protocol (e.g. MCP tool, MCP toolset, MCP session management etc.), label it with both "mcp" and "tools". - If it's about A2A integrations or workflows, label it with "a2a". - If you can't find a appropriate labels for the issue, follow the previous instruction that starts with "IMPORTANT:". @@ -194,6 +223,14 @@ def change_issue_type(issue_number: int, issue_type: str) -> dict[str, Any]: - If the issue is a feature request, change the issue type to "Feature". - Otherwise, **do not change the issue type**. + Response quality requirements: + - Summarize the issue in your own words without leaving template + placeholders (never output text like "[fill in later]"). + - Justify the chosen label with a short explanation referencing the issue + details. + - Mention the assigned owner when a label maps to one. + - If no label is applied, clearly state why. + Present the followings in an easy to read format highlighting issue number and your label. - the issue summary in a few sentence - your label recommendation and justification From d4c63fc5629e7d70ad8b8185be09243a01e3428f Mon Sep 17 00:00:00 2001 From: Shan Cao Date: Tue, 4 Nov 2025 10:09:33 -0800 Subject: [PATCH 278/303] chore: Add model tracking to LiteLlm and introduce a LiteLLM with fallbacks demo Related: #2292 Co-authored-by: Shan Cao PiperOrigin-RevId: 828024955 --- .../litellm_with_fallback_models/README.md | 10 +++ .../litellm_with_fallback_models/__init__.py | 15 ++++ .../litellm_with_fallback_models/agent.py | 88 +++++++++++++++++++ src/google/adk/models/lite_llm.py | 18 ++-- src/google/adk/models/llm_response.py | 7 ++ tests/unittests/models/test_litellm.py | 39 ++++++-- tests/unittests/models/test_llm_response.py | 15 ++++ 7 files changed, 180 insertions(+), 12 deletions(-) create mode 100644 contributing/samples/litellm_with_fallback_models/README.md create mode 100644 contributing/samples/litellm_with_fallback_models/__init__.py create mode 100644 contributing/samples/litellm_with_fallback_models/agent.py diff --git a/contributing/samples/litellm_with_fallback_models/README.md b/contributing/samples/litellm_with_fallback_models/README.md new file mode 100644 index 0000000000..ebe68a3c75 --- /dev/null +++ b/contributing/samples/litellm_with_fallback_models/README.md @@ -0,0 +1,10 @@ +# LiteLLM with Fallback Models + +This agent is built for resilience using LiteLLM's built-in fallback mechanism. It automatically switches models to guard against common disruptions like token limit errors and connection failures, while ensuring full conversational context is preserved across all model changes. + +To run this example, ensure your .env file includes the following variables: +``` +GOOGLE_API_KEY= +OPENAI_API_KEY= +ANTHROPIC_API_KEY= +``` diff --git a/contributing/samples/litellm_with_fallback_models/__init__.py b/contributing/samples/litellm_with_fallback_models/__init__.py new file mode 100644 index 0000000000..c48963cdc7 --- /dev/null +++ b/contributing/samples/litellm_with_fallback_models/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import agent diff --git a/contributing/samples/litellm_with_fallback_models/agent.py b/contributing/samples/litellm_with_fallback_models/agent.py new file mode 100644 index 0000000000..2e46a7fb44 --- /dev/null +++ b/contributing/samples/litellm_with_fallback_models/agent.py @@ -0,0 +1,88 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random + +from google.adk import Agent +from google.adk.models.lite_llm import LiteLlm +from google.adk.tools.tool_context import ToolContext +from google.genai import types + + +def roll_die(sides: int, tool_context: ToolContext) -> int: + """Roll a die and return the rolled result. + + Args: + sides: The integer number of sides the die has. + tool_context: The tool context to use for the die roll. + + Returns: + An integer of the result of rolling the die. + The result is also stored in the tool context for future use. + """ + result = random.randint(1, sides) + if 'rolls' not in tool_context.state: + tool_context.state['rolls'] = [] + + tool_context.state['rolls'] = tool_context.state['rolls'] + [result] + return result + + +async def before_model_callback(callback_context, llm_request): + print('@before_model_callback') + print(f'Beginning model choice: {llm_request.model}') + callback_context.state['beginning_model_choice'] = llm_request.model + return None + + +async def after_model_callback(callback_context, llm_response): + print('@after_model_callback') + print(f'Final model choice: {llm_response.model_version}') + callback_context.state['final_model_choice'] = llm_response.model_version + return None + + +root_agent = Agent( + model=LiteLlm( + model='gemini/gemini-2.5-pro', + fallbacks=[ + 'anthropic/claude-sonnet-4-5-20250929', + 'openai/gpt-4o', + ], + ), + name='resilient_agent', + description=( + 'hello world agent that can roll a dice of given number of sides.' + ), + instruction=""" + You roll dice and answer questions about the outcome of the dice rolls. + You can roll dice of different sizes. + It is ok to discuss previous dice roles, and comment on the dice rolls. + When you are asked to roll a die, you must call the roll_die tool with the number of sides. Be sure to pass in an integer. Do not pass in a string. + You should never roll a die on your own. + """, + tools=[ + roll_die, + ], + generate_content_config=types.GenerateContentConfig( + safety_settings=[ + types.SafetySetting( # avoid false alarm about rolling dice. + category=types.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT, + threshold=types.HarmBlockThreshold.OFF, + ), + ] + ), + before_model_callback=before_model_callback, + after_model_callback=after_model_callback, +) diff --git a/src/google/adk/models/lite_llm.py b/src/google/adk/models/lite_llm.py index dafac4660d..05e5821ef8 100644 --- a/src/google/adk/models/lite_llm.py +++ b/src/google/adk/models/lite_llm.py @@ -558,7 +558,9 @@ def _model_response_to_generate_content_response( if not message: raise ValueError("No message in response") - llm_response = _message_to_generate_content_response(message) + llm_response = _message_to_generate_content_response( + message, model_version=response.model + ) if finish_reason: # If LiteLLM already provides a FinishReason enum (e.g., for Gemini), use # it directly. Otherwise, map the finish_reason string to the enum. @@ -579,13 +581,14 @@ def _model_response_to_generate_content_response( def _message_to_generate_content_response( - message: Message, is_partial: bool = False + message: Message, *, is_partial: bool = False, model_version: str = None ) -> LlmResponse: """Converts a litellm message to LlmResponse. Args: message: The message to convert. is_partial: Whether the message is partial. + model_version: The model version used to generate the response. Returns: The LlmResponse. @@ -606,7 +609,9 @@ def _message_to_generate_content_response( parts.append(part) return LlmResponse( - content=types.Content(role="model", parts=parts), partial=is_partial + content=types.Content(role="model", parts=parts), + partial=is_partial, + model_version=model_version, ) @@ -950,6 +955,7 @@ async def generate_content_async( content=chunk.text, ), is_partial=True, + model_version=part.model, ) elif isinstance(chunk, UsageMetadataChunk): usage_metadata = types.GenerateContentResponseUsageMetadata( @@ -981,14 +987,16 @@ async def generate_content_async( role="assistant", content=text, tool_calls=tool_calls, - ) + ), + model_version=part.model, ) ) text = "" function_calls.clear() elif finish_reason == "stop" and text: aggregated_llm_response = _message_to_generate_content_response( - ChatCompletionAssistantMessage(role="assistant", content=text) + ChatCompletionAssistantMessage(role="assistant", content=text), + model_version=part.model, ) text = "" diff --git a/src/google/adk/models/llm_response.py b/src/google/adk/models/llm_response.py index 0264ca5318..dfe77fffdd 100644 --- a/src/google/adk/models/llm_response.py +++ b/src/google/adk/models/llm_response.py @@ -55,6 +55,9 @@ class LlmResponse(BaseModel): ) """The pydantic model config.""" + model_version: Optional[str] = None + """Output only. The model version used to generate the response.""" + content: Optional[types.Content] = None """The generative content of the response. @@ -159,6 +162,7 @@ def create( citation_metadata=candidate.citation_metadata, avg_logprobs=candidate.avg_logprobs, logprobs_result=candidate.logprobs_result, + model_version=generate_content_response.model_version, ) else: return LlmResponse( @@ -169,6 +173,7 @@ def create( finish_reason=candidate.finish_reason, avg_logprobs=candidate.avg_logprobs, logprobs_result=candidate.logprobs_result, + model_version=generate_content_response.model_version, ) else: if generate_content_response.prompt_feedback: @@ -177,10 +182,12 @@ def create( error_code=prompt_feedback.block_reason, error_message=prompt_feedback.block_reason_message, usage_metadata=usage_metadata, + model_version=generate_content_response.model_version, ) else: return LlmResponse( error_code='UNKNOWN_ERROR', error_message='Unknown error.', usage_metadata=usage_metadata, + model_version=generate_content_response.model_version, ) diff --git a/tests/unittests/models/test_litellm.py b/tests/unittests/models/test_litellm.py index 72fcc4a714..4670c5d6dd 100644 --- a/tests/unittests/models/test_litellm.py +++ b/tests/unittests/models/test_litellm.py @@ -90,6 +90,7 @@ STREAMING_MODEL_RESPONSE = [ ModelResponse( + model="test_model", choices=[ StreamingChoices( finish_reason=None, @@ -98,9 +99,10 @@ content="zero, ", ), ) - ] + ], ), ModelResponse( + model="test_model", choices=[ StreamingChoices( finish_reason=None, @@ -109,9 +111,10 @@ content="one, ", ), ) - ] + ], ), ModelResponse( + model="test_model", choices=[ StreamingChoices( finish_reason=None, @@ -120,9 +123,10 @@ content="two:", ), ) - ] + ], ), ModelResponse( + model="test_model", choices=[ StreamingChoices( finish_reason=None, @@ -141,9 +145,10 @@ ], ), ) - ] + ], ), ModelResponse( + model="test_model", choices=[ StreamingChoices( finish_reason=None, @@ -162,14 +167,15 @@ ], ), ) - ] + ], ), ModelResponse( + model="test_model", choices=[ StreamingChoices( finish_reason="tool_use", ) - ] + ], ), ] @@ -342,6 +348,7 @@ @pytest.fixture def mock_response(): return ModelResponse( + model="test_model", choices=[ Choices( message=ChatCompletionAssistantMessage( @@ -359,7 +366,7 @@ def mock_response(): ], ) ) - ] + ], ) @@ -529,6 +536,7 @@ async def test_generate_content_async(mock_acompletion, lite_llm_instance): "test_arg": "test_value" } assert response.content.parts[1].function_call.id == "test_tool_call_id" + assert response.model_version == "test_model" mock_acompletion.assert_called_once() @@ -1262,6 +1270,19 @@ def test_message_to_generate_content_response_tool_call(): assert response.content.parts[0].function_call.id == "test_tool_call_id" +def test_message_to_generate_content_response_with_model(): + message = ChatCompletionAssistantMessage( + role="assistant", + content="Test response", + ) + response = _message_to_generate_content_response( + message, model_version="gemini-2.5-pro" + ) + assert response.content.role == "model" + assert response.content.parts[0].text == "Test response" + assert response.model_version == "gemini-2.5-pro" + + def test_get_content_text(): parts = [types.Part.from_text(text="Test text")] content = _get_content(parts) @@ -1556,16 +1577,20 @@ async def test_generate_content_async_stream( assert len(responses) == 4 assert responses[0].content.role == "model" assert responses[0].content.parts[0].text == "zero, " + assert responses[0].model_version == "test_model" assert responses[1].content.role == "model" assert responses[1].content.parts[0].text == "one, " + assert responses[1].model_version == "test_model" assert responses[2].content.role == "model" assert responses[2].content.parts[0].text == "two:" + assert responses[2].model_version == "test_model" assert responses[3].content.role == "model" assert responses[3].content.parts[-1].function_call.name == "test_function" assert responses[3].content.parts[-1].function_call.args == { "test_arg": "test_value" } assert responses[3].content.parts[-1].function_call.id == "test_tool_call_id" + assert responses[3].model_version == "test_model" mock_completion.assert_called_once() _, kwargs = mock_completion.call_args diff --git a/tests/unittests/models/test_llm_response.py b/tests/unittests/models/test_llm_response.py index 167841c8c8..85d58cfd14 100644 --- a/tests/unittests/models/test_llm_response.py +++ b/tests/unittests/models/test_llm_response.py @@ -334,3 +334,18 @@ def test_llm_response_create_empty_content_with_stop_reason(): assert response.error_code is None assert response.content is not None + + +def test_llm_response_create_includes_model_version(): + """Test LlmResponse.create() includes model version.""" + generate_content_response = types.GenerateContentResponse( + model_version='gemini-2.0-flash', + candidates=[ + types.Candidate( + content=types.Content(parts=[types.Part(text='Response text')]), + finish_reason=types.FinishReason.STOP, + ) + ], + ) + response = LlmResponse.create(generate_content_response) + assert response.model_version == 'gemini-2.0-flash' From ce91a8ef73d3c4c22bb3e08a42fa2d6d9816380e Mon Sep 17 00:00:00 2001 From: George Weale Date: Tue, 4 Nov 2025 11:19:14 -0800 Subject: [PATCH 279/303] fix: Pass drop_params to LiteLLM completion API This lets users to specify `drop_params` when initializing `LiteLlm`, which will be forwarded to LiteLLM's `acompletion` or `completion` calls Close #1718 Co-authored-by: George Weale PiperOrigin-RevId: 828058105 --- src/google/adk/models/lite_llm.py | 5 +++- tests/unittests/models/test_litellm.py | 39 ++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/src/google/adk/models/lite_llm.py b/src/google/adk/models/lite_llm.py index 05e5821ef8..1f6ea0a74b 100644 --- a/src/google/adk/models/lite_llm.py +++ b/src/google/adk/models/lite_llm.py @@ -866,10 +866,11 @@ def __init__(self, model: str, **kwargs): model: The name of the LiteLlm model. **kwargs: Additional arguments to pass to the litellm completion api. """ + drop_params = kwargs.pop("drop_params", None) super().__init__(model=model, **kwargs) # Warn if using Gemini via LiteLLM _warn_gemini_via_litellm(model) - self._additional_args = kwargs + self._additional_args = dict(kwargs) # preventing generation call with llm_client # and overriding messages, tools and stream which are managed internally self._additional_args.pop("llm_client", None) @@ -877,6 +878,8 @@ def __init__(self, model: str, **kwargs): self._additional_args.pop("tools", None) # public api called from runner determines to stream or not self._additional_args.pop("stream", None) + if drop_params is not None: + self._additional_args["drop_params"] = drop_params async def generate_content_async( self, llm_request: LlmRequest, stream: bool = False diff --git a/tests/unittests/models/test_litellm.py b/tests/unittests/models/test_litellm.py index 4670c5d6dd..0f6f3dafd1 100644 --- a/tests/unittests/models/test_litellm.py +++ b/tests/unittests/models/test_litellm.py @@ -1519,6 +1519,23 @@ async def test_acompletion_additional_args(mock_acompletion, mock_client): assert kwargs["api_base"] == "some://url" +@pytest.mark.asyncio +async def test_acompletion_with_drop_params(mock_acompletion, mock_client): + lite_llm_instance = LiteLlm( + model="test_model", llm_client=mock_client, drop_params=True + ) + + async for _ in lite_llm_instance.generate_content_async( + LLM_REQUEST_WITH_FUNCTION_DECLARATION + ): + pass + + mock_acompletion.assert_called_once() + + _, kwargs = mock_acompletion.call_args + assert kwargs["drop_params"] is True + + @pytest.mark.asyncio async def test_completion_additional_args(mock_completion, mock_client): lite_llm_instance = LiteLlm( @@ -1561,6 +1578,28 @@ async def test_completion_additional_args(mock_completion, mock_client): assert kwargs["api_base"] == "some://url" +@pytest.mark.asyncio +async def test_completion_with_drop_params(mock_completion, mock_client): + lite_llm_instance = LiteLlm( + model="test_model", llm_client=mock_client, drop_params=True + ) + + mock_completion.return_value = iter(STREAMING_MODEL_RESPONSE) + + responses = [ + response + async for response in lite_llm_instance.generate_content_async( + LLM_REQUEST_WITH_FUNCTION_DECLARATION, stream=True + ) + ] + assert len(responses) == 4 + + mock_completion.assert_called_once() + + _, kwargs = mock_completion.call_args + assert kwargs["drop_params"] is True + + @pytest.mark.asyncio async def test_generate_content_async_stream( mock_completion, lite_llm_instance From abdc2bb9545e65e23fa973954057d8e07addc379 Mon Sep 17 00:00:00 2001 From: Yifan Wang Date: Tue, 4 Nov 2025 11:27:11 -0800 Subject: [PATCH 280/303] chore: update adk web for adk web builder: https://github.com/google/adk-web/pull/248 Co-authored-by: Yifan Wang PiperOrigin-RevId: 828061540 --- src/google/adk/cli/browser/chunk-2WH2EVR6.js | 1 + src/google/adk/cli/browser/chunk-EQDQRRRY.js | 1 - .../{chunk-TXJFAAIW.js => chunk-XMJNYD32.js} | 2 +- src/google/adk/cli/browser/index.html | 6 +- src/google/adk/cli/browser/main-MIUNGJ3Y.js | 3961 ---------------- src/google/adk/cli/browser/main-OS2OH2S3.js | 4093 +++++++++++++++++ .../adk/cli/browser/styles-EVMPSV3U.css | 1 + .../adk/cli/browser/styles-NFETHFZB.css | 1 - 8 files changed, 4099 insertions(+), 3967 deletions(-) create mode 100644 src/google/adk/cli/browser/chunk-2WH2EVR6.js delete mode 100644 src/google/adk/cli/browser/chunk-EQDQRRRY.js rename src/google/adk/cli/browser/{chunk-TXJFAAIW.js => chunk-XMJNYD32.js} (99%) delete mode 100644 src/google/adk/cli/browser/main-MIUNGJ3Y.js create mode 100644 src/google/adk/cli/browser/main-OS2OH2S3.js create mode 100644 src/google/adk/cli/browser/styles-EVMPSV3U.css delete mode 100644 src/google/adk/cli/browser/styles-NFETHFZB.css diff --git a/src/google/adk/cli/browser/chunk-2WH2EVR6.js b/src/google/adk/cli/browser/chunk-2WH2EVR6.js new file mode 100644 index 0000000000..5da3409f61 --- /dev/null +++ b/src/google/adk/cli/browser/chunk-2WH2EVR6.js @@ -0,0 +1 @@ +var q=Object.create;var m=Object.defineProperty,r=Object.defineProperties,s=Object.getOwnPropertyDescriptor,t=Object.getOwnPropertyDescriptors,u=Object.getOwnPropertyNames,j=Object.getOwnPropertySymbols,v=Object.getPrototypeOf,n=Object.prototype.hasOwnProperty,p=Object.prototype.propertyIsEnumerable;var l=(b,a)=>(a=Symbol[b])?a:Symbol.for("Symbol."+b),w=b=>{throw TypeError(b)};var o=(b,a,c)=>a in b?m(b,a,{enumerable:!0,configurable:!0,writable:!0,value:c}):b[a]=c,z=(b,a)=>{for(var c in a||={})n.call(a,c)&&o(b,c,a[c]);if(j)for(var c of j(a))p.call(a,c)&&o(b,c,a[c]);return b},A=(b,a)=>r(b,t(a));var B=(b,a)=>{var c={};for(var d in b)n.call(b,d)&&a.indexOf(d)<0&&(c[d]=b[d]);if(b!=null&&j)for(var d of j(b))a.indexOf(d)<0&&p.call(b,d)&&(c[d]=b[d]);return c};var C=(b,a)=>()=>(a||b((a={exports:{}}).exports,a),a.exports);var x=(b,a,c,d)=>{if(a&&typeof a=="object"||typeof a=="function")for(let e of u(a))!n.call(b,e)&&e!==c&&m(b,e,{get:()=>a[e],enumerable:!(d=s(a,e))||d.enumerable});return b};var D=(b,a,c)=>(c=b!=null?q(v(b)):{},x(a||!b||!b.__esModule?m(c,"default",{value:b,enumerable:!0}):c,b));var E=(b,a,c)=>new Promise((d,e)=>{var f=g=>{try{i(c.next(g))}catch(k){e(k)}},h=g=>{try{i(c.throw(g))}catch(k){e(k)}},i=g=>g.done?d(g.value):Promise.resolve(g.value).then(f,h);i((c=c.apply(b,a)).next())}),y=function(b,a){this[0]=b,this[1]=a};var F=b=>{var a=b[l("asyncIterator")],c=!1,d,e={};return a==null?(a=b[l("iterator")](),d=f=>e[f]=h=>a[f](h)):(a=a.call(b),d=f=>e[f]=h=>{if(c){if(c=!1,f==="throw")throw h;return h}return c=!0,{done:!1,value:new y(new Promise(i=>{var g=a[f](h);g instanceof Object||w("Object expected"),i(g)}),1)}}),e[l("iterator")]=()=>e,d("next"),"throw"in a?d("throw"):e.throw=f=>{throw f},"return"in a&&d("return"),e};export{z as a,A as b,B as c,C as d,D as e,E as f,F as g}; diff --git a/src/google/adk/cli/browser/chunk-EQDQRRRY.js b/src/google/adk/cli/browser/chunk-EQDQRRRY.js deleted file mode 100644 index 134dff1fa6..0000000000 --- a/src/google/adk/cli/browser/chunk-EQDQRRRY.js +++ /dev/null @@ -1 +0,0 @@ -var p=Object.create;var j=Object.defineProperty,q=Object.defineProperties,r=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyDescriptors,t=Object.getOwnPropertyNames,g=Object.getOwnPropertySymbols,u=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable;var l=(a,b,c)=>b in a?j(a,b,{enumerable:!0,configurable:!0,writable:!0,value:c}):a[b]=c,w=(a,b)=>{for(var c in b||={})k.call(b,c)&&l(a,c,b[c]);if(g)for(var c of g(b))m.call(b,c)&&l(a,c,b[c]);return a},x=(a,b)=>q(a,s(b));var y=(a,b)=>{var c={};for(var d in a)k.call(a,d)&&b.indexOf(d)<0&&(c[d]=a[d]);if(a!=null&&g)for(var d of g(a))b.indexOf(d)<0&&m.call(a,d)&&(c[d]=a[d]);return c};var z=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports);var v=(a,b,c,d)=>{if(b&&typeof b=="object"||typeof b=="function")for(let e of t(b))!k.call(a,e)&&e!==c&&j(a,e,{get:()=>b[e],enumerable:!(d=r(b,e))||d.enumerable});return a};var A=(a,b,c)=>(c=a!=null?p(u(a)):{},v(b||!a||!a.__esModule?j(c,"default",{value:a,enumerable:!0}):c,a));var B=(a,b,c)=>new Promise((d,e)=>{var n=f=>{try{h(c.next(f))}catch(i){e(i)}},o=f=>{try{h(c.throw(f))}catch(i){e(i)}},h=f=>f.done?d(f.value):Promise.resolve(f.value).then(n,o);h((c=c.apply(a,b)).next())});export{w as a,x as b,y as c,z as d,A as e,B as f}; diff --git a/src/google/adk/cli/browser/chunk-TXJFAAIW.js b/src/google/adk/cli/browser/chunk-XMJNYD32.js similarity index 99% rename from src/google/adk/cli/browser/chunk-TXJFAAIW.js rename to src/google/adk/cli/browser/chunk-XMJNYD32.js index 24066bccc6..1b71b0ef92 100644 --- a/src/google/adk/cli/browser/chunk-TXJFAAIW.js +++ b/src/google/adk/cli/browser/chunk-XMJNYD32.js @@ -1,2 +1,2 @@ -import"./chunk-EQDQRRRY.js";var O=function(l,i){if(!(l instanceof i))throw new TypeError("Cannot call a class as a function")},R=function(){function l(i,e){for(var t=0;t1&&arguments[1]!==void 0?arguments[1]:1,e=i>0?l.toFixed(i).replace(/0+$/,"").replace(/\.$/,""):l.toString();return e||"0"}var z=function(){function l(i,e,t,r){O(this,l);var n=this;function o(a){if(a.startsWith("hsl")){var s=a.match(/([\-\d\.e]+)/g).map(Number),p=y(s,4),u=p[0],f=p[1],d=p[2],b=p[3];b===void 0&&(b=1),u/=360,f/=100,d/=100,n.hsla=[u,f,d,b]}else if(a.startsWith("rgb")){var m=a.match(/([\-\d\.e]+)/g).map(Number),h=y(m,4),v=h[0],g=h[1],S=h[2],k=h[3];k===void 0&&(k=1),n.rgba=[v,g,S,k]}else a.startsWith("#")?n.rgba=l.hexToRgb(a):n.rgba=l.nameToRgb(a)||l.hexToRgb(a)}if(i!==void 0)if(Array.isArray(i))this.rgba=i;else if(t===void 0){var c=i&&""+i;c&&o(c.toLowerCase())}else this.rgba=[i,e,t,r===void 0?1:r]}return R(l,[{key:"printRGB",value:function(e){var t=e?this.rgba:this.rgba.slice(0,3),r=t.map(function(n,o){return A(n,o===3?3:0)});return e?"rgba("+r+")":"rgb("+r+")"}},{key:"printHSL",value:function(e){var t=[360,100,100,1],r=["","%","%",""],n=e?this.hsla:this.hsla.slice(0,3),o=n.map(function(c,a){return A(c*t[a],a===3?3:1)+r[a]});return e?"hsla("+o+")":"hsl("+o+")"}},{key:"printHex",value:function(e){var t=this.hex;return e?t:t.substring(0,7)}},{key:"rgba",get:function(){if(this._rgba)return this._rgba;if(!this._hsla)throw new Error("No color is set");return this._rgba=l.hslToRgb(this._hsla)},set:function(e){e.length===3&&(e[3]=1),this._rgba=e,this._hsla=null}},{key:"rgbString",get:function(){return this.printRGB()}},{key:"rgbaString",get:function(){return this.printRGB(!0)}},{key:"hsla",get:function(){if(this._hsla)return this._hsla;if(!this._rgba)throw new Error("No color is set");return this._hsla=l.rgbToHsl(this._rgba)},set:function(e){e.length===3&&(e[3]=1),this._hsla=e,this._rgba=null}},{key:"hslString",get:function(){return this.printHSL()}},{key:"hslaString",get:function(){return this.printHSL(!0)}},{key:"hex",get:function(){var e=this.rgba,t=e.map(function(r,n){return n<3?r.toString(16):Math.round(r*255).toString(16)});return"#"+t.map(function(r){return r.padStart(2,"0")}).join("")},set:function(e){this.rgba=l.hexToRgb(e)}}],[{key:"hexToRgb",value:function(e){var t=(e.startsWith("#")?e.slice(1):e).replace(/^(\w{3})$/,"$1F").replace(/^(\w)(\w)(\w)(\w)$/,"$1$1$2$2$3$3$4$4").replace(/^(\w{6})$/,"$1FF");if(!t.match(/^([0-9a-fA-F]{8})$/))throw new Error("Unknown hex color; "+e);var r=t.match(/^(\w\w)(\w\w)(\w\w)(\w\w)$/).slice(1).map(function(n){return parseInt(n,16)});return r[3]=r[3]/255,r}},{key:"nameToRgb",value:function(e){var t=e.toLowerCase().replace("at","T").replace(/[aeiouyldf]/g,"").replace("ght","L").replace("rk","D").slice(-5,4),r=N[t];return r===void 0?r:l.hexToRgb(r.replace(/\-/g,"00").padStart(6,"f"))}},{key:"rgbToHsl",value:function(e){var t=y(e,4),r=t[0],n=t[1],o=t[2],c=t[3];r/=255,n/=255,o/=255;var a=Math.max(r,n,o),s=Math.min(r,n,o),p=void 0,u=void 0,f=(a+s)/2;if(a===s)p=u=0;else{var d=a-s;switch(u=f>.5?d/(2-a-s):d/(a+s),a){case r:p=(n-o)/d+(n1&&(g-=1),g<.16666666666666666?h+(v-h)*6*g:g<.5?v:g<.6666666666666666?h+(v-h)*(.6666666666666666-g)*6:h},f=o<.5?o*(1+n):o+n-o*n,d=2*o-f;a=u(d,f,r+1/3),s=u(d,f,r),p=u(d,f,r-1/3)}var b=[a*255,s*255,p*255].map(Math.round);return b[3]=c,b}}]),l}(),F=function(){function l(){O(this,l),this._events=[]}return R(l,[{key:"add",value:function(e,t,r){e.addEventListener(t,r,!1),this._events.push({target:e,type:t,handler:r})}},{key:"remove",value:function(e,t,r){this._events=this._events.filter(function(n){var o=!0;return e&&e!==n.target&&(o=!1),t&&t!==n.type&&(o=!1),r&&r!==n.handler&&(o=!1),o&&l._doRemove(n.target,n.type,n.handler),!o})}},{key:"destroy",value:function(){this._events.forEach(function(e){return l._doRemove(e.target,e.type,e.handler)}),this._events=[]}}],[{key:"_doRemove",value:function(e,t,r){e.removeEventListener(t,r,!1)}}]),l}();function U(l){var i=document.createElement("div");return i.innerHTML=l,i.firstElementChild}function T(l,i,e){var t=!1;function r(a,s,p){return Math.max(s,Math.min(a,p))}function n(a,s,p){if(p&&(t=!0),!!t){a.preventDefault();var u=i.getBoundingClientRect(),f=u.width,d=u.height,b=s.clientX,m=s.clientY,h=r(b-u.left,0,f),v=r(m-u.top,0,d);e(h/f,v/d)}}function o(a,s){var p=a.buttons===void 0?a.which:a.buttons;p===1?n(a,a,s):t=!1}function c(a,s){a.touches.length===1?n(a,a.touches[0],s):t=!1}l.add(i,"mousedown",function(a){o(a,!0)}),l.add(i,"touchstart",function(a){c(a,!0)}),l.add(window,"mousemove",o),l.add(i,"touchmove",c),l.add(window,"mouseup",function(a){t=!1}),l.add(i,"touchend",function(a){t=!1}),l.add(i,"touchcancel",function(a){t=!1})}var B=`linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0 / 2em 2em, +import"./chunk-2WH2EVR6.js";var O=function(l,i){if(!(l instanceof i))throw new TypeError("Cannot call a class as a function")},R=function(){function l(i,e){for(var t=0;t1&&arguments[1]!==void 0?arguments[1]:1,e=i>0?l.toFixed(i).replace(/0+$/,"").replace(/\.$/,""):l.toString();return e||"0"}var z=function(){function l(i,e,t,r){O(this,l);var n=this;function o(a){if(a.startsWith("hsl")){var s=a.match(/([\-\d\.e]+)/g).map(Number),p=y(s,4),u=p[0],f=p[1],d=p[2],b=p[3];b===void 0&&(b=1),u/=360,f/=100,d/=100,n.hsla=[u,f,d,b]}else if(a.startsWith("rgb")){var m=a.match(/([\-\d\.e]+)/g).map(Number),h=y(m,4),v=h[0],g=h[1],S=h[2],k=h[3];k===void 0&&(k=1),n.rgba=[v,g,S,k]}else a.startsWith("#")?n.rgba=l.hexToRgb(a):n.rgba=l.nameToRgb(a)||l.hexToRgb(a)}if(i!==void 0)if(Array.isArray(i))this.rgba=i;else if(t===void 0){var c=i&&""+i;c&&o(c.toLowerCase())}else this.rgba=[i,e,t,r===void 0?1:r]}return R(l,[{key:"printRGB",value:function(e){var t=e?this.rgba:this.rgba.slice(0,3),r=t.map(function(n,o){return A(n,o===3?3:0)});return e?"rgba("+r+")":"rgb("+r+")"}},{key:"printHSL",value:function(e){var t=[360,100,100,1],r=["","%","%",""],n=e?this.hsla:this.hsla.slice(0,3),o=n.map(function(c,a){return A(c*t[a],a===3?3:1)+r[a]});return e?"hsla("+o+")":"hsl("+o+")"}},{key:"printHex",value:function(e){var t=this.hex;return e?t:t.substring(0,7)}},{key:"rgba",get:function(){if(this._rgba)return this._rgba;if(!this._hsla)throw new Error("No color is set");return this._rgba=l.hslToRgb(this._hsla)},set:function(e){e.length===3&&(e[3]=1),this._rgba=e,this._hsla=null}},{key:"rgbString",get:function(){return this.printRGB()}},{key:"rgbaString",get:function(){return this.printRGB(!0)}},{key:"hsla",get:function(){if(this._hsla)return this._hsla;if(!this._rgba)throw new Error("No color is set");return this._hsla=l.rgbToHsl(this._rgba)},set:function(e){e.length===3&&(e[3]=1),this._hsla=e,this._rgba=null}},{key:"hslString",get:function(){return this.printHSL()}},{key:"hslaString",get:function(){return this.printHSL(!0)}},{key:"hex",get:function(){var e=this.rgba,t=e.map(function(r,n){return n<3?r.toString(16):Math.round(r*255).toString(16)});return"#"+t.map(function(r){return r.padStart(2,"0")}).join("")},set:function(e){this.rgba=l.hexToRgb(e)}}],[{key:"hexToRgb",value:function(e){var t=(e.startsWith("#")?e.slice(1):e).replace(/^(\w{3})$/,"$1F").replace(/^(\w)(\w)(\w)(\w)$/,"$1$1$2$2$3$3$4$4").replace(/^(\w{6})$/,"$1FF");if(!t.match(/^([0-9a-fA-F]{8})$/))throw new Error("Unknown hex color; "+e);var r=t.match(/^(\w\w)(\w\w)(\w\w)(\w\w)$/).slice(1).map(function(n){return parseInt(n,16)});return r[3]=r[3]/255,r}},{key:"nameToRgb",value:function(e){var t=e.toLowerCase().replace("at","T").replace(/[aeiouyldf]/g,"").replace("ght","L").replace("rk","D").slice(-5,4),r=N[t];return r===void 0?r:l.hexToRgb(r.replace(/\-/g,"00").padStart(6,"f"))}},{key:"rgbToHsl",value:function(e){var t=y(e,4),r=t[0],n=t[1],o=t[2],c=t[3];r/=255,n/=255,o/=255;var a=Math.max(r,n,o),s=Math.min(r,n,o),p=void 0,u=void 0,f=(a+s)/2;if(a===s)p=u=0;else{var d=a-s;switch(u=f>.5?d/(2-a-s):d/(a+s),a){case r:p=(n-o)/d+(n1&&(g-=1),g<.16666666666666666?h+(v-h)*6*g:g<.5?v:g<.6666666666666666?h+(v-h)*(.6666666666666666-g)*6:h},f=o<.5?o*(1+n):o+n-o*n,d=2*o-f;a=u(d,f,r+1/3),s=u(d,f,r),p=u(d,f,r-1/3)}var b=[a*255,s*255,p*255].map(Math.round);return b[3]=c,b}}]),l}(),F=function(){function l(){O(this,l),this._events=[]}return R(l,[{key:"add",value:function(e,t,r){e.addEventListener(t,r,!1),this._events.push({target:e,type:t,handler:r})}},{key:"remove",value:function(e,t,r){this._events=this._events.filter(function(n){var o=!0;return e&&e!==n.target&&(o=!1),t&&t!==n.type&&(o=!1),r&&r!==n.handler&&(o=!1),o&&l._doRemove(n.target,n.type,n.handler),!o})}},{key:"destroy",value:function(){this._events.forEach(function(e){return l._doRemove(e.target,e.type,e.handler)}),this._events=[]}}],[{key:"_doRemove",value:function(e,t,r){e.removeEventListener(t,r,!1)}}]),l}();function U(l){var i=document.createElement("div");return i.innerHTML=l,i.firstElementChild}function T(l,i,e){var t=!1;function r(a,s,p){return Math.max(s,Math.min(a,p))}function n(a,s,p){if(p&&(t=!0),!!t){a.preventDefault();var u=i.getBoundingClientRect(),f=u.width,d=u.height,b=s.clientX,m=s.clientY,h=r(b-u.left,0,f),v=r(m-u.top,0,d);e(h/f,v/d)}}function o(a,s){var p=a.buttons===void 0?a.which:a.buttons;p===1?n(a,a,s):t=!1}function c(a,s){a.touches.length===1?n(a,a.touches[0],s):t=!1}l.add(i,"mousedown",function(a){o(a,!0)}),l.add(i,"touchstart",function(a){c(a,!0)}),l.add(window,"mousemove",o),l.add(i,"touchmove",c),l.add(window,"mouseup",function(a){t=!1}),l.add(i,"touchend",function(a){t=!1}),l.add(i,"touchcancel",function(a){t=!1})}var B=`linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0 / 2em 2em, linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em / 2em 2em`,G=360,P="keydown",x="mousedown",H="focusin";function _(l,i){return(i||document).querySelector(l)}function M(l){l.preventDefault(),l.stopPropagation()}function D(l,i,e,t,r){l.add(i,P,function(n){e.indexOf(n.key)>=0&&(r&&M(n),t(n))})}var W=function(){function l(i){O(this,l),this.settings={popup:"right",layout:"default",alpha:!0,editor:!0,editorFormat:"hex",cancelButton:!1,defaultColor:"#0cf"},this._events=new F,this.onChange=null,this.onDone=null,this.onOpen=null,this.onClose=null,this.setOptions(i)}return R(l,[{key:"setOptions",value:function(e){var t=this;if(!e)return;var r=this.settings;function n(s,p,u){for(var f in s)u&&u.indexOf(f)>=0||(p[f]=s[f])}if(e instanceof HTMLElement)r.parent=e;else{r.parent&&e.parent&&r.parent!==e.parent&&(this._events.remove(r.parent),this._popupInited=!1),n(e,r),e.onChange&&(this.onChange=e.onChange),e.onDone&&(this.onDone=e.onDone),e.onOpen&&(this.onOpen=e.onOpen),e.onClose&&(this.onClose=e.onClose);var o=e.color||e.colour;o&&this._setColor(o)}var c=r.parent;if(c&&r.popup&&!this._popupInited){var a=function(p){return t.openHandler(p)};this._events.add(c,"click",a),D(this._events,c,[" ","Spacebar","Enter"],a),this._popupInited=!0}else e.parent&&!r.popup&&this.show()}},{key:"openHandler",value:function(e){if(this.show()){e&&e.preventDefault(),this.settings.parent.style.pointerEvents="none";var t=e&&e.type===P?this._domEdit:this.domElement;setTimeout(function(){return t.focus()},100),this.onOpen&&this.onOpen(this.colour)}}},{key:"closeHandler",value:function(e){var t=e&&e.type,r=!1;if(!e)r=!0;else if(t===x||t===H){var n=(this.__containedEvent||0)+100;e.timeStamp>n&&(r=!0)}else M(e),r=!0;r&&this.hide()&&(this.settings.parent.style.pointerEvents="",t!==x&&this.settings.parent.focus(),this.onClose&&this.onClose(this.colour))}},{key:"movePopup",value:function(e,t){this.closeHandler(),this.setOptions(e),t&&this.openHandler()}},{key:"setColor",value:function(e,t){this._setColor(e,{silent:t})}},{key:"_setColor",value:function(e,t){if(typeof e=="string"&&(e=e.trim()),!!e){t=t||{};var r=void 0;try{r=new z(e)}catch(o){if(t.failSilently)return;throw o}if(!this.settings.alpha){var n=r.hsla;n[3]=1,r.hsla=n}this.colour=this.color=r,this._setHSLA(null,null,null,null,t)}}},{key:"setColour",value:function(e,t){this.setColor(e,t)}},{key:"show",value:function(){var e=this.settings.parent;if(!e)return!1;if(this.domElement){var t=this._toggleDOM(!0);return this._setPosition(),t}var r=this.settings.template||'
            ',n=U(r);return this.domElement=n,this._domH=_(".picker_hue",n),this._domSL=_(".picker_sl",n),this._domA=_(".picker_alpha",n),this._domEdit=_(".picker_editor input",n),this._domSample=_(".picker_sample",n),this._domOkay=_(".picker_done button",n),this._domCancel=_(".picker_cancel button",n),n.classList.add("layout_"+this.settings.layout),this.settings.alpha||n.classList.add("no_alpha"),this.settings.editor||n.classList.add("no_editor"),this.settings.cancelButton||n.classList.add("no_cancel"),this._ifPopup(function(){return n.classList.add("popup")}),this._setPosition(),this.colour?this._updateUI():this._setColor(this.settings.defaultColor),this._bindEvents(),!0}},{key:"hide",value:function(){return this._toggleDOM(!1)}},{key:"destroy",value:function(){this._events.destroy(),this.domElement&&this.settings.parent.removeChild(this.domElement)}},{key:"_bindEvents",value:function(){var e=this,t=this,r=this.domElement,n=this._events;function o(s,p,u){n.add(s,p,u)}o(r,"click",function(s){return s.preventDefault()}),T(n,this._domH,function(s,p){return t._setHSLA(s)}),T(n,this._domSL,function(s,p){return t._setHSLA(null,s,1-p)}),this.settings.alpha&&T(n,this._domA,function(s,p){return t._setHSLA(null,null,null,1-p)});var c=this._domEdit;o(c,"input",function(s){t._setColor(this.value,{fromEditor:!0,failSilently:!0})}),o(c,"focus",function(s){var p=this;p.selectionStart===p.selectionEnd&&p.select()}),this._ifPopup(function(){var s=function(f){return e.closeHandler(f)};o(window,x,s),o(window,H,s),D(n,r,["Esc","Escape"],s);var p=function(f){e.__containedEvent=f.timeStamp};o(r,x,p),o(r,H,p),o(e._domCancel,"click",s)});var a=function(p){e._ifPopup(function(){return e.closeHandler(p)}),e.onDone&&e.onDone(e.colour)};o(this._domOkay,"click",a),D(n,r,["Enter"],a)}},{key:"_setPosition",value:function(){var e=this.settings.parent,t=this.domElement;e!==t.parentNode&&e.appendChild(t),this._ifPopup(function(r){getComputedStyle(e).position==="static"&&(e.style.position="relative");var n=r===!0?"popup_right":"popup_"+r;["popup_top","popup_bottom","popup_left","popup_right"].forEach(function(o){o===n?t.classList.add(o):t.classList.remove(o)}),t.classList.add(n)})}},{key:"_setHSLA",value:function(e,t,r,n,o){o=o||{};var c=this.colour,a=c.hsla;[e,t,r,n].forEach(function(s,p){(s||s===0)&&(a[p]=s)}),c.hsla=a,this._updateUI(o),this.onChange&&!o.silent&&this.onChange(c)}},{key:"_updateUI",value:function(e){if(!this.domElement)return;e=e||{};var t=this.colour,r=t.hsla,n="hsl("+r[0]*G+", 100%, 50%)",o=t.hslString,c=t.hslaString,a=this._domH,s=this._domSL,p=this._domA,u=_(".picker_selector",a),f=_(".picker_selector",s),d=_(".picker_selector",p);function b(I,C,L){C.style.left=L*100+"%"}function m(I,C,L){C.style.top=L*100+"%"}b(a,u,r[0]),this._domSL.style.backgroundColor=this._domH.style.color=n,b(s,f,r[1]),m(s,f,1-r[2]),s.style.color=o,m(p,d,1-r[3]);var h=o,v=h.replace("hsl","hsla").replace(")",", 0)"),g="linear-gradient("+[h,v]+")";if(this._domA.style.background=g+", "+B,!e.fromEditor){var S=this.settings.editorFormat,k=this.settings.alpha,w=void 0;switch(S){case"rgb":w=t.printRGB(k);break;case"hsl":w=t.printHSL(k);break;default:w=t.printHex(k)}this._domEdit.value=w}this._domSample.style.color=c}},{key:"_ifPopup",value:function(e,t){this.settings.parent&&this.settings.popup?e&&e(this.settings.popup):t&&t()}},{key:"_toggleDOM",value:function(e){var t=this.domElement;if(!t)return!1;var r=e?"":"none",n=t.style.display!==r;return n&&(t.style.display=r),n}}]),l}();E=document.createElement("style"),E.textContent='.picker_wrapper.no_alpha .picker_alpha{display:none}.picker_wrapper.no_editor .picker_editor{position:absolute;z-index:-1;opacity:0}.picker_wrapper.no_cancel .picker_cancel{display:none}.layout_default.picker_wrapper{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:stretch;font-size:10px;width:25em;padding:.5em}.layout_default.picker_wrapper input,.layout_default.picker_wrapper button{font-size:1rem}.layout_default.picker_wrapper>*{margin:.5em}.layout_default.picker_wrapper::before{content:"";display:block;width:100%;height:0;order:1}.layout_default .picker_slider,.layout_default .picker_selector{padding:1em}.layout_default .picker_hue{width:100%}.layout_default .picker_sl{flex:1 1 auto}.layout_default .picker_sl::before{content:"";display:block;padding-bottom:100%}.layout_default .picker_editor{order:1;width:6.5rem}.layout_default .picker_editor input{width:100%;height:100%}.layout_default .picker_sample{order:1;flex:1 1 auto}.layout_default .picker_done,.layout_default .picker_cancel{order:1}.picker_wrapper{box-sizing:border-box;background:#f2f2f2;box-shadow:0 0 0 1px silver;cursor:default;font-family:sans-serif;color:#444;pointer-events:auto}.picker_wrapper:focus{outline:none}.picker_wrapper button,.picker_wrapper input{box-sizing:border-box;border:none;box-shadow:0 0 0 1px silver;outline:none}.picker_wrapper button:focus,.picker_wrapper button:active,.picker_wrapper input:focus,.picker_wrapper input:active{box-shadow:0 0 2px 1px #1e90ff}.picker_wrapper button{padding:.4em .6em;cursor:pointer;background-color:#f5f5f5;background-image:linear-gradient(0deg, gainsboro, transparent)}.picker_wrapper button:active{background-image:linear-gradient(0deg, transparent, gainsboro)}.picker_wrapper button:hover{background-color:#fff}.picker_selector{position:absolute;z-index:1;display:block;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border:2px solid #fff;border-radius:100%;box-shadow:0 0 3px 1px #67b9ff;background:currentColor;cursor:pointer}.picker_slider .picker_selector{border-radius:2px}.picker_hue{position:relative;background-image:linear-gradient(90deg, red, yellow, lime, cyan, blue, magenta, red);box-shadow:0 0 0 1px silver}.picker_sl{position:relative;box-shadow:0 0 0 1px silver;background-image:linear-gradient(180deg, white, rgba(255, 255, 255, 0) 50%),linear-gradient(0deg, black, rgba(0, 0, 0, 0) 50%),linear-gradient(90deg, #808080, rgba(128, 128, 128, 0))}.picker_alpha,.picker_sample{position:relative;background:linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0/2em 2em,linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em/2em 2em;box-shadow:0 0 0 1px silver}.picker_alpha .picker_selector,.picker_sample .picker_selector{background:none}.picker_editor input{font-family:monospace;padding:.2em .4em}.picker_sample::before{content:"";position:absolute;display:block;width:100%;height:100%;background:currentColor}.picker_arrow{position:absolute;z-index:-1}.picker_wrapper.popup{position:absolute;z-index:2;margin:1.5em}.picker_wrapper.popup,.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{background:#f2f2f2;box-shadow:0 0 10px 1px rgba(0,0,0,.4)}.picker_wrapper.popup .picker_arrow{width:3em;height:3em;margin:0}.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{content:"";display:block;position:absolute;top:0;left:0;z-index:-99}.picker_wrapper.popup .picker_arrow::before{width:100%;height:100%;-webkit-transform:skew(45deg);transform:skew(45deg);-webkit-transform-origin:0 100%;transform-origin:0 100%}.picker_wrapper.popup .picker_arrow::after{width:150%;height:150%;box-shadow:none}.popup.popup_top{bottom:100%;left:0}.popup.popup_top .picker_arrow{bottom:0;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.popup.popup_bottom{top:100%;left:0}.popup.popup_bottom .picker_arrow{top:0;left:0;-webkit-transform:rotate(90deg) scale(1, -1);transform:rotate(90deg) scale(1, -1)}.popup.popup_left{top:0;right:100%}.popup.popup_left .picker_arrow{top:0;right:0;-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.popup.popup_right{top:0;left:100%}.popup.popup_right .picker_arrow{top:0;left:0}',document.documentElement.firstElementChild.appendChild(E),W.StyleElement=E;var E;export{W as default}; diff --git a/src/google/adk/cli/browser/index.html b/src/google/adk/cli/browser/index.html index f029c8310f..9560e93a0e 100644 --- a/src/google/adk/cli/browser/index.html +++ b/src/google/adk/cli/browser/index.html @@ -26,9 +26,9 @@ - - + + - + diff --git a/src/google/adk/cli/browser/main-MIUNGJ3Y.js b/src/google/adk/cli/browser/main-MIUNGJ3Y.js deleted file mode 100644 index 7d9bb653b2..0000000000 --- a/src/google/adk/cli/browser/main-MIUNGJ3Y.js +++ /dev/null @@ -1,3961 +0,0 @@ -import{a as sA,b as Fe,c as pv,d as He,e as $Q,f as Ni}from"./chunk-EQDQRRRY.js";var gV=He(MR=>{"use strict";var cV={b:"\b",f:"\f",n:` -`,r:"\r",t:" ",'"':'"',"/":"/","\\":"\\"},i6A=97;MR.parse=function(t,e,A){var i={},n=0,o=0,r=0,s=A&&A.bigint&&typeof BigInt<"u";return{data:a("",!0),pointers:i};function a(K,O){c();var V;x(K,"value");var j=E();switch(j){case"t":B("rue"),V=!0;break;case"f":B("alse"),V=!1;break;case"n":B("ull"),V=null;break;case'"':V=g();break;case"[":V=C(K);break;case"{":V=d(K);break;default:u(),"-0123456789".indexOf(j)>=0?V=I():G()}return x(K,"valueEnd"),c(),O&&rNumber.MAX_SAFE_INTEGER||V="a"&&V<="f"?O+=V.charCodeAt()-i6A+10:V>="0"&&V<="9"?O+=+V:J()}return String.fromCharCode(O)}function w(){for(var K="";t[r]>="0"&&t[r]<="9";)K+=E();if(K.length)return K;z(),G()}function x(K,O){R(K,O,D())}function R(K,O,V){i[K]=i[K]||{},i[K][O]=V}function D(){return{line:n,column:o,pos:r}}function G(){throw new SyntaxError("Unexpected token "+t[r]+" in JSON at position "+r)}function J(){u(),G()}function z(){if(r>=t.length)throw new SyntaxError("Unexpected end of JSON input")}};MR.stringify=function(t,e,A){if(!X8(t))return;var i=0,n,o,r=typeof A=="object"?A.space:A;switch(typeof r){case"number":var s=r>10?10:r<0?0:Math.floor(r);r=s&&R(s," "),n=s,o=s;break;case"string":r=r.slice(0,10),n=0,o=0;for(var a=0;a=0}var o6A=/"|\\/g,r6A=/[\b]/g,s6A=/\f/g,a6A=/\n/g,c6A=/\r/g,g6A=/\t/g;function $8(t){return t=t.replace(o6A,"\\$&").replace(s6A,"\\f").replace(r6A,"\\b").replace(a6A,"\\n").replace(c6A,"\\r").replace(g6A,"\\t"),'"'+t+'"'}var l6A=/~/g,I6A=/\//g;function vR(t){return t.replace(l6A,"~0").replace(I6A,"~1")}});var SX=He((o8e,kX)=>{"use strict";var bX=function(t,e){var A,i,n=1,o=0,r=0,s=String.alphabet;function a(c,g,I){if(I){for(A=g;I=a(c,A),I<76&&I>65;)++A;return+c.slice(g-1,A)}return I=s&&s.indexOf(c.charAt(g)),I>-1?I+76:(I=c.charCodeAt(g)||0,I<45||I>127?I:I<46?65:I<48?I-1:I<58?I+18:I<65?I-11:I<91?I+11:I<97?I-37:I<123?I+5:I-63)}if((t+="")!=(e+="")){for(;n;)if(i=a(t,o++),n=a(e,r++),i<76&&n<76&&i>66&&n>66&&(i=a(t,o,o),n=a(e,r,o=A),r=A),i!=n)return i{"use strict";Object.defineProperty(Dn,"__esModule",{value:!0});Dn.regexpCode=Dn.getEsmExportName=Dn.getProperty=Dn.safeStringify=Dn.stringify=Dn.strConcat=Dn.addCodeArg=Dn.str=Dn._=Dn.nil=Dn._Code=Dn.Name=Dn.IDENTIFIER=Dn._CodeOrName=void 0;var f4=class{};Dn._CodeOrName=f4;Dn.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var uC=class extends f4{constructor(e){if(super(),!Dn.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};Dn.Name=uC;var Hc=class extends f4{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((A,i)=>`${A}${i}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((A,i)=>(i instanceof uC&&(A[i.str]=(A[i.str]||0)+1),A),{})}};Dn._Code=Hc;Dn.nil=new Hc("");function LX(t,...e){let A=[t[0]],i=0;for(;i{"use strict";Object.defineProperty(Ra,"__esModule",{value:!0});Ra.ValueScope=Ra.ValueScopeName=Ra.Scope=Ra.varKinds=Ra.UsedValueState=void 0;var Sa=p4(),IL=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},J5=function(t){return t[t.Started=0]="Started",t[t.Completed=1]="Completed",t}(J5||(Ra.UsedValueState=J5={}));Ra.varKinds={const:new Sa.Name("const"),let:new Sa.Name("let"),var:new Sa.Name("var")};var Y5=class{constructor({prefixes:e,parent:A}={}){this._names={},this._prefixes=e,this._parent=A}toName(e){return e instanceof Sa.Name?e:this.name(e)}name(e){return new Sa.Name(this._newName(e))}_newName(e){let A=this._names[e]||this._nameGroup(e);return`${e}${A.index++}`}_nameGroup(e){var A,i;if(!((i=(A=this._parent)===null||A===void 0?void 0:A._prefixes)===null||i===void 0)&&i.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};Ra.Scope=Y5;var T5=class extends Sa.Name{constructor(e,A){super(A),this.prefix=e}setValue(e,{property:A,itemIndex:i}){this.value=e,this.scopePath=(0,Sa._)`.${new Sa.Name(A)}[${i}]`}};Ra.ValueScopeName=T5;var g9A=(0,Sa._)`\n`,CL=class extends Y5{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts=Fe(sA({},e),{_n:e.lines?g9A:Sa.nil})}get(){return this._scope}name(e){return new T5(e,this._newName(e))}value(e,A){var i;if(A.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let n=this.toName(e),{prefix:o}=n,r=(i=A.key)!==null&&i!==void 0?i:A.ref,s=this._values[o];if(s){let g=s.get(r);if(g)return g}else s=this._values[o]=new Map;s.set(r,n);let a=this._scope[o]||(this._scope[o]=[]),c=a.length;return a[c]=A.ref,n.setValue(A,{property:o,itemIndex:c}),n}getValue(e,A){let i=this._values[e];if(i)return i.get(A)}scopeRefs(e,A=this._values){return this._reduceValues(A,i=>{if(i.scopePath===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return(0,Sa._)`${e}${i.scopePath}`})}scopeCode(e=this._values,A,i){return this._reduceValues(e,n=>{if(n.value===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return n.value.code},A,i)}_reduceValues(e,A,i={},n){let o=Sa.nil;for(let r in e){let s=e[r];if(!s)continue;let a=i[r]=i[r]||new Map;s.forEach(c=>{if(a.has(c))return;a.set(c,J5.Started);let g=A(c);if(g){let I=this.opts.es5?Ra.varKinds.var:Ra.varKinds.const;o=(0,Sa._)`${o}${I} ${c} = ${g};${this.opts._n}`}else if(g=n?.(c))o=(0,Sa._)`${o}${g}${this.opts._n}`;else throw new IL(c);a.set(c,J5.Completed)})}return o}};Ra.ValueScope=CL});var Pi=He(Hi=>{"use strict";Object.defineProperty(Hi,"__esModule",{value:!0});Hi.or=Hi.and=Hi.not=Hi.CodeGen=Hi.operators=Hi.varKinds=Hi.ValueScopeName=Hi.ValueScope=Hi.Scope=Hi.Name=Hi.regexpCode=Hi.stringify=Hi.getProperty=Hi.nil=Hi.strConcat=Hi.str=Hi._=void 0;var cn=p4(),kg=dL(),p1=p4();Object.defineProperty(Hi,"_",{enumerable:!0,get:function(){return p1._}});Object.defineProperty(Hi,"str",{enumerable:!0,get:function(){return p1.str}});Object.defineProperty(Hi,"strConcat",{enumerable:!0,get:function(){return p1.strConcat}});Object.defineProperty(Hi,"nil",{enumerable:!0,get:function(){return p1.nil}});Object.defineProperty(Hi,"getProperty",{enumerable:!0,get:function(){return p1.getProperty}});Object.defineProperty(Hi,"stringify",{enumerable:!0,get:function(){return p1.stringify}});Object.defineProperty(Hi,"regexpCode",{enumerable:!0,get:function(){return p1.regexpCode}});Object.defineProperty(Hi,"Name",{enumerable:!0,get:function(){return p1.Name}});var j5=dL();Object.defineProperty(Hi,"Scope",{enumerable:!0,get:function(){return j5.Scope}});Object.defineProperty(Hi,"ValueScope",{enumerable:!0,get:function(){return j5.ValueScope}});Object.defineProperty(Hi,"ValueScopeName",{enumerable:!0,get:function(){return j5.ValueScopeName}});Object.defineProperty(Hi,"varKinds",{enumerable:!0,get:function(){return j5.varKinds}});Hi.operators={GT:new cn._Code(">"),GTE:new cn._Code(">="),LT:new cn._Code("<"),LTE:new cn._Code("<="),EQ:new cn._Code("==="),NEQ:new cn._Code("!=="),NOT:new cn._Code("!"),OR:new cn._Code("||"),AND:new cn._Code("&&"),ADD:new cn._Code("+")};var K0=class{optimizeNodes(){return this}optimizeNames(e,A){return this}},BL=class extends K0{constructor(e,A,i){super(),this.varKind=e,this.name=A,this.rhs=i}render({es5:e,_n:A}){let i=e?kg.varKinds.var:this.varKind,n=this.rhs===void 0?"":` = ${this.rhs}`;return`${i} ${this.name}${n};`+A}optimizeNames(e,A){if(e[this.name.str])return this.rhs&&(this.rhs=fE(this.rhs,e,A)),this}get names(){return this.rhs instanceof cn._CodeOrName?this.rhs.names:{}}},O5=class extends K0{constructor(e,A,i){super(),this.lhs=e,this.rhs=A,this.sideEffects=i}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,A){if(!(this.lhs instanceof cn.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=fE(this.rhs,e,A),this}get names(){let e=this.lhs instanceof cn.Name?{}:sA({},this.lhs.names);return P5(e,this.rhs)}},EL=class extends O5{constructor(e,A,i,n){super(e,i,n),this.op=A}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},QL=class extends K0{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},uL=class extends K0{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},hL=class extends K0{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},fL=class extends K0{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,A){return this.code=fE(this.code,e,A),this}get names(){return this.code instanceof cn._CodeOrName?this.code.names:{}}},D4=class extends K0{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((A,i)=>A+i.render(e),"")}optimizeNodes(){let{nodes:e}=this,A=e.length;for(;A--;){let i=e[A].optimizeNodes();Array.isArray(i)?e.splice(A,1,...i):i?e[A]=i:e.splice(A,1)}return e.length>0?this:void 0}optimizeNames(e,A){let{nodes:i}=this,n=i.length;for(;n--;){let o=i[n];o.optimizeNames(e,A)||(l9A(e,o.names),i.splice(n,1))}return i.length>0?this:void 0}get names(){return this.nodes.reduce((e,A)=>hC(e,A.names),{})}},U0=class extends D4{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},mL=class extends D4{},pL=(()=>{class t extends U0{}return t.kind="else",t})(),H5=(()=>{class t extends U0{constructor(A,i){super(i),this.condition=A}render(A){let i=`if(${this.condition})`+super.render(A);return this.else&&(i+="else "+this.else.render(A)),i}optimizeNodes(){super.optimizeNodes();let A=this.condition;if(A===!0)return this.nodes;let i=this.else;if(i){let n=i.optimizeNodes();i=this.else=Array.isArray(n)?new pL(n):n}if(i)return A===!1?i instanceof t?i:i.nodes:this.nodes.length?this:new t(KX(A),i instanceof t?[i]:i.nodes);if(!(A===!1||!this.nodes.length))return this}optimizeNames(A,i){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(A,i),!!(super.optimizeNames(A,i)||this.else))return this.condition=fE(this.condition,A,i),this}get names(){let A=super.names;return P5(A,this.condition),this.else&&hC(A,this.else.names),A}}return t.kind="if",t})(),q5=(()=>{class t extends U0{}return t.kind="for",t})(),DL=class extends q5{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,A){if(super.optimizeNames(e,A))return this.iteration=fE(this.iteration,e,A),this}get names(){return hC(super.names,this.iteration.names)}},wL=class extends q5{constructor(e,A,i,n){super(),this.varKind=e,this.name=A,this.from=i,this.to=n}render(e){let A=e.es5?kg.varKinds.var:this.varKind,{name:i,from:n,to:o}=this;return`for(${A} ${i}=${n}; ${i}<${o}; ${i}++)`+super.render(e)}get names(){let e=P5(super.names,this.from);return P5(e,this.to)}},z5=class extends q5{constructor(e,A,i,n){super(),this.loop=e,this.varKind=A,this.name=i,this.iterable=n}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,A){if(super.optimizeNames(e,A))return this.iterable=fE(this.iterable,e,A),this}get names(){return hC(super.names,this.iterable.names)}},NX=(()=>{class t extends U0{constructor(A,i,n){super(),this.name=A,this.args=i,this.async=n}render(A){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(A)}}return t.kind="func",t})(),FX=(()=>{class t extends D4{render(A){return"return "+super.render(A)}}return t.kind="return",t})(),yL=class extends U0{render(e){let A="try"+super.render(e);return this.catch&&(A+=this.catch.render(e)),this.finally&&(A+=this.finally.render(e)),A}optimizeNodes(){var e,A;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(A=this.finally)===null||A===void 0||A.optimizeNodes(),this}optimizeNames(e,A){var i,n;return super.optimizeNames(e,A),(i=this.catch)===null||i===void 0||i.optimizeNames(e,A),(n=this.finally)===null||n===void 0||n.optimizeNames(e,A),this}get names(){let e=super.names;return this.catch&&hC(e,this.catch.names),this.finally&&hC(e,this.finally.names),e}},_X=(()=>{class t extends U0{constructor(A){super(),this.error=A}render(A){return`catch(${this.error})`+super.render(A)}}return t.kind="catch",t})(),GX=(()=>{class t extends U0{render(A){return"finally"+super.render(A)}}return t.kind="finally",t})(),vL=class{constructor(e,A={}){this._values={},this._blockStarts=[],this._constants={},this.opts=Fe(sA({},A),{_n:A.lines?` -`:""}),this._extScope=e,this._scope=new kg.Scope({parent:e}),this._nodes=[new mL]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,A){let i=this._extScope.value(e,A);return(this._values[i.prefix]||(this._values[i.prefix]=new Set)).add(i),i}getScopeValue(e,A){return this._extScope.getValue(e,A)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,A,i,n){let o=this._scope.toName(A);return i!==void 0&&n&&(this._constants[o.str]=i),this._leafNode(new BL(e,o,i)),o}const(e,A,i){return this._def(kg.varKinds.const,e,A,i)}let(e,A,i){return this._def(kg.varKinds.let,e,A,i)}var(e,A,i){return this._def(kg.varKinds.var,e,A,i)}assign(e,A,i){return this._leafNode(new O5(e,A,i))}add(e,A){return this._leafNode(new EL(e,Hi.operators.ADD,A))}code(e){return typeof e=="function"?e():e!==cn.nil&&this._leafNode(new fL(e)),this}object(...e){let A=["{"];for(let[i,n]of e)A.length>1&&A.push(","),A.push(i),(i!==n||this.opts.es5)&&(A.push(":"),(0,cn.addCodeArg)(A,n));return A.push("}"),new cn._Code(A)}if(e,A,i){if(this._blockNode(new H5(e)),A&&i)this.code(A).else().code(i).endIf();else if(A)this.code(A).endIf();else if(i)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new H5(e))}else(){return this._elseNode(new pL)}endIf(){return this._endBlockNode(H5,pL)}_for(e,A){return this._blockNode(e),A&&this.code(A).endFor(),this}for(e,A){return this._for(new DL(e),A)}forRange(e,A,i,n,o=this.opts.es5?kg.varKinds.var:kg.varKinds.let){let r=this._scope.toName(e);return this._for(new wL(o,r,A,i),()=>n(r))}forOf(e,A,i,n=kg.varKinds.const){let o=this._scope.toName(e);if(this.opts.es5){let r=A instanceof cn.Name?A:this.var("_arr",A);return this.forRange("_i",0,(0,cn._)`${r}.length`,s=>{this.var(o,(0,cn._)`${r}[${s}]`),i(o)})}return this._for(new z5("of",n,o,A),()=>i(o))}forIn(e,A,i,n=this.opts.es5?kg.varKinds.var:kg.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,cn._)`Object.keys(${A})`,i);let o=this._scope.toName(e);return this._for(new z5("in",n,o,A),()=>i(o))}endFor(){return this._endBlockNode(q5)}label(e){return this._leafNode(new QL(e))}break(e){return this._leafNode(new uL(e))}return(e){let A=new FX;if(this._blockNode(A),this.code(e),A.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(FX)}try(e,A,i){if(!A&&!i)throw new Error('CodeGen: "try" without "catch" and "finally"');let n=new yL;if(this._blockNode(n),this.code(e),A){let o=this.name("e");this._currNode=n.catch=new _X(o),A(o)}return i&&(this._currNode=n.finally=new GX,this.code(i)),this._endBlockNode(_X,GX)}throw(e){return this._leafNode(new hL(e))}block(e,A){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(A),this}endBlock(e){let A=this._blockStarts.pop();if(A===void 0)throw new Error("CodeGen: not in self-balancing block");let i=this._nodes.length-A;if(i<0||e!==void 0&&i!==e)throw new Error(`CodeGen: wrong number of nodes: ${i} vs ${e} expected`);return this._nodes.length=A,this}func(e,A=cn.nil,i,n){return this._blockNode(new NX(e,A,i)),n&&this.code(n).endFunc(),this}endFunc(){return this._endBlockNode(NX)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,A){let i=this._currNode;if(i instanceof e||A&&i instanceof A)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${A?`${e.kind}/${A.kind}`:e.kind}"`)}_elseNode(e){let A=this._currNode;if(!(A instanceof H5))throw new Error('CodeGen: "else" without "if"');return this._currNode=A.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let A=this._nodes;A[A.length-1]=e}};Hi.CodeGen=vL;function hC(t,e){for(let A in e)t[A]=(t[A]||0)+(e[A]||0);return t}function P5(t,e){return e instanceof cn._CodeOrName?hC(t,e.names):t}function fE(t,e,A){if(t instanceof cn.Name)return i(t);if(!n(t))return t;return new cn._Code(t._items.reduce((o,r)=>(r instanceof cn.Name&&(r=i(r)),r instanceof cn._Code?o.push(...r._items):o.push(r),o),[]));function i(o){let r=A[o.str];return r===void 0||e[o.str]!==1?o:(delete e[o.str],r)}function n(o){return o instanceof cn._Code&&o._items.some(r=>r instanceof cn.Name&&e[r.str]===1&&A[r.str]!==void 0)}}function l9A(t,e){for(let A in e)t[A]=(t[A]||0)-(e[A]||0)}function KX(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,cn._)`!${ML(t)}`}Hi.not=KX;var I9A=UX(Hi.operators.AND);function C9A(...t){return t.reduce(I9A)}Hi.and=C9A;var d9A=UX(Hi.operators.OR);function B9A(...t){return t.reduce(d9A)}Hi.or=B9A;function UX(t){return(e,A)=>e===cn.nil?A:A===cn.nil?e:(0,cn._)`${ML(e)} ${t} ${ML(A)}`}function ML(t){return t instanceof cn.Name?t:(0,cn._)`(${t})`}});var wn=He(ji=>{"use strict";Object.defineProperty(ji,"__esModule",{value:!0});ji.checkStrictMode=ji.getErrorPath=ji.Type=ji.useFunc=ji.setEvaluated=ji.evaluatedPropsToName=ji.mergeEvaluated=ji.eachItem=ji.unescapeJsonPointer=ji.escapeJsonPointer=ji.escapeFragment=ji.unescapeFragment=ji.schemaRefOrVal=ji.schemaHasRulesButRef=ji.schemaHasRules=ji.checkUnknownRules=ji.alwaysValidSchema=ji.toHash=void 0;var yo=Pi(),E9A=p4();function Q9A(t){let e={};for(let A of t)e[A]=!0;return e}ji.toHash=Q9A;function u9A(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(TX(t,e),!HX(e,t.self.RULES.all))}ji.alwaysValidSchema=u9A;function TX(t,e=t.schema){let{opts:A,self:i}=t;if(!A.strictSchema||typeof e=="boolean")return;let n=i.RULES.keywords;for(let o in e)n[o]||PX(t,`unknown keyword: "${o}"`)}ji.checkUnknownRules=TX;function HX(t,e){if(typeof t=="boolean")return!t;for(let A in t)if(e[A])return!0;return!1}ji.schemaHasRules=HX;function h9A(t,e){if(typeof t=="boolean")return!t;for(let A in t)if(A!=="$ref"&&e.all[A])return!0;return!1}ji.schemaHasRulesButRef=h9A;function f9A({topSchemaRef:t,schemaPath:e},A,i,n){if(!n){if(typeof A=="number"||typeof A=="boolean")return A;if(typeof A=="string")return(0,yo._)`${A}`}return(0,yo._)`${t}${e}${(0,yo.getProperty)(i)}`}ji.schemaRefOrVal=f9A;function m9A(t){return OX(decodeURIComponent(t))}ji.unescapeFragment=m9A;function p9A(t){return encodeURIComponent(kL(t))}ji.escapeFragment=p9A;function kL(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}ji.escapeJsonPointer=kL;function OX(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}ji.unescapeJsonPointer=OX;function D9A(t,e){if(Array.isArray(t))for(let A of t)e(A);else e(t)}ji.eachItem=D9A;function JX({mergeNames:t,mergeToName:e,mergeValues:A,resultToName:i}){return(n,o,r,s)=>{let a=r===void 0?o:r instanceof yo.Name?(o instanceof yo.Name?t(n,o,r):e(n,o,r),r):o instanceof yo.Name?(e(n,r,o),o):A(o,r);return s===yo.Name&&!(a instanceof yo.Name)?i(n,a):a}}ji.mergeEvaluated={props:JX({mergeNames:(t,e,A)=>t.if((0,yo._)`${A} !== true && ${e} !== undefined`,()=>{t.if((0,yo._)`${e} === true`,()=>t.assign(A,!0),()=>t.assign(A,(0,yo._)`${A} || {}`).code((0,yo._)`Object.assign(${A}, ${e})`))}),mergeToName:(t,e,A)=>t.if((0,yo._)`${A} !== true`,()=>{e===!0?t.assign(A,!0):(t.assign(A,(0,yo._)`${A} || {}`),SL(t,A,e))}),mergeValues:(t,e)=>t===!0?!0:sA(sA({},t),e),resultToName:zX}),items:JX({mergeNames:(t,e,A)=>t.if((0,yo._)`${A} !== true && ${e} !== undefined`,()=>t.assign(A,(0,yo._)`${e} === true ? true : ${A} > ${e} ? ${A} : ${e}`)),mergeToName:(t,e,A)=>t.if((0,yo._)`${A} !== true`,()=>t.assign(A,e===!0?!0:(0,yo._)`${A} > ${e} ? ${A} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function zX(t,e){if(e===!0)return t.var("props",!0);let A=t.var("props",(0,yo._)`{}`);return e!==void 0&&SL(t,A,e),A}ji.evaluatedPropsToName=zX;function SL(t,e,A){Object.keys(A).forEach(i=>t.assign((0,yo._)`${e}${(0,yo.getProperty)(i)}`,!0))}ji.setEvaluated=SL;var YX={};function w9A(t,e){return t.scopeValue("func",{ref:e,code:YX[e.code]||(YX[e.code]=new E9A._Code(e.code))})}ji.useFunc=w9A;var bL=function(t){return t[t.Num=0]="Num",t[t.Str=1]="Str",t}(bL||(ji.Type=bL={}));function y9A(t,e,A){if(t instanceof yo.Name){let i=e===bL.Num;return A?i?(0,yo._)`"[" + ${t} + "]"`:(0,yo._)`"['" + ${t} + "']"`:i?(0,yo._)`"/" + ${t}`:(0,yo._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return A?(0,yo.getProperty)(t).toString():"/"+kL(t)}ji.getErrorPath=y9A;function PX(t,e,A=t.opts.strictSchema){if(A){if(e=`strict mode: ${e}`,A===!0)throw new Error(e);t.self.logger.warn(e)}}ji.checkStrictMode=PX});var J0=He(RL=>{"use strict";Object.defineProperty(RL,"__esModule",{value:!0});var Ns=Pi(),v9A={data:new Ns.Name("data"),valCxt:new Ns.Name("valCxt"),instancePath:new Ns.Name("instancePath"),parentData:new Ns.Name("parentData"),parentDataProperty:new Ns.Name("parentDataProperty"),rootData:new Ns.Name("rootData"),dynamicAnchors:new Ns.Name("dynamicAnchors"),vErrors:new Ns.Name("vErrors"),errors:new Ns.Name("errors"),this:new Ns.Name("this"),self:new Ns.Name("self"),scope:new Ns.Name("scope"),json:new Ns.Name("json"),jsonPos:new Ns.Name("jsonPos"),jsonLen:new Ns.Name("jsonLen"),jsonPart:new Ns.Name("jsonPart")};RL.default=v9A});var w4=He(Fs=>{"use strict";Object.defineProperty(Fs,"__esModule",{value:!0});Fs.extendErrors=Fs.resetErrorsCount=Fs.reportExtraError=Fs.reportError=Fs.keyword$DataError=Fs.keywordError=void 0;var En=Pi(),V5=wn(),ea=J0();Fs.keywordError={message:({keyword:t})=>(0,En.str)`must pass "${t}" keyword validation`};Fs.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,En.str)`"${t}" keyword must be ${e} ($data)`:(0,En.str)`"${t}" keyword is invalid ($data)`};function M9A(t,e=Fs.keywordError,A,i){let{it:n}=t,{gen:o,compositeRule:r,allErrors:s}=n,a=VX(t,e,A);i??(r||s)?jX(o,a):qX(n,(0,En._)`[${a}]`)}Fs.reportError=M9A;function b9A(t,e=Fs.keywordError,A){let{it:i}=t,{gen:n,compositeRule:o,allErrors:r}=i,s=VX(t,e,A);jX(n,s),o||r||qX(i,ea.default.vErrors)}Fs.reportExtraError=b9A;function k9A(t,e){t.assign(ea.default.errors,e),t.if((0,En._)`${ea.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,En._)`${ea.default.vErrors}.length`,e),()=>t.assign(ea.default.vErrors,null)))}Fs.resetErrorsCount=k9A;function S9A({gen:t,keyword:e,schemaValue:A,data:i,errsCount:n,it:o}){if(n===void 0)throw new Error("ajv implementation error");let r=t.name("err");t.forRange("i",n,ea.default.errors,s=>{t.const(r,(0,En._)`${ea.default.vErrors}[${s}]`),t.if((0,En._)`${r}.instancePath === undefined`,()=>t.assign((0,En._)`${r}.instancePath`,(0,En.strConcat)(ea.default.instancePath,o.errorPath))),t.assign((0,En._)`${r}.schemaPath`,(0,En.str)`${o.errSchemaPath}/${e}`),o.opts.verbose&&(t.assign((0,En._)`${r}.schema`,A),t.assign((0,En._)`${r}.data`,i))})}Fs.extendErrors=S9A;function jX(t,e){let A=t.const("err",e);t.if((0,En._)`${ea.default.vErrors} === null`,()=>t.assign(ea.default.vErrors,(0,En._)`[${A}]`),(0,En._)`${ea.default.vErrors}.push(${A})`),t.code((0,En._)`${ea.default.errors}++`)}function qX(t,e){let{gen:A,validateName:i,schemaEnv:n}=t;n.$async?A.throw((0,En._)`new ${t.ValidationError}(${e})`):(A.assign((0,En._)`${i}.errors`,e),A.return(!1))}var fC={keyword:new En.Name("keyword"),schemaPath:new En.Name("schemaPath"),params:new En.Name("params"),propertyName:new En.Name("propertyName"),message:new En.Name("message"),schema:new En.Name("schema"),parentSchema:new En.Name("parentSchema")};function VX(t,e,A){let{createErrors:i}=t.it;return i===!1?(0,En._)`{}`:R9A(t,e,A)}function R9A(t,e,A={}){let{gen:i,it:n}=t,o=[L9A(n,A),x9A(t,A)];return N9A(t,e,o),i.object(...o)}function L9A({errorPath:t},{instancePath:e}){let A=e?(0,En.str)`${t}${(0,V5.getErrorPath)(e,V5.Type.Str)}`:t;return[ea.default.instancePath,(0,En.strConcat)(ea.default.instancePath,A)]}function x9A({keyword:t,it:{errSchemaPath:e}},{schemaPath:A,parentSchema:i}){let n=i?e:(0,En.str)`${e}/${t}`;return A&&(n=(0,En.str)`${n}${(0,V5.getErrorPath)(A,V5.Type.Str)}`),[fC.schemaPath,n]}function N9A(t,{params:e,message:A},i){let{keyword:n,data:o,schemaValue:r,it:s}=t,{opts:a,propertyName:c,topSchemaRef:g,schemaPath:I}=s;i.push([fC.keyword,n],[fC.params,typeof e=="function"?e(t):e||(0,En._)`{}`]),a.messages&&i.push([fC.message,typeof A=="function"?A(t):A]),a.verbose&&i.push([fC.schema,r],[fC.parentSchema,(0,En._)`${g}${I}`],[ea.default.data,o]),c&&i.push([fC.propertyName,c])}});var WX=He(mE=>{"use strict";Object.defineProperty(mE,"__esModule",{value:!0});mE.boolOrEmptySchema=mE.topBoolOrEmptySchema=void 0;var F9A=w4(),_9A=Pi(),G9A=J0(),K9A={message:"boolean schema is false"};function U9A(t){let{gen:e,schema:A,validateName:i}=t;A===!1?ZX(t,!1):typeof A=="object"&&A.$async===!0?e.return(G9A.default.data):(e.assign((0,_9A._)`${i}.errors`,null),e.return(!0))}mE.topBoolOrEmptySchema=U9A;function J9A(t,e){let{gen:A,schema:i}=t;i===!1?(A.var(e,!1),ZX(t)):A.var(e,!0)}mE.boolOrEmptySchema=J9A;function ZX(t,e){let{gen:A,data:i}=t,n={gen:A,keyword:"false schema",data:i,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,F9A.reportError)(n,K9A,void 0,e)}});var LL=He(pE=>{"use strict";Object.defineProperty(pE,"__esModule",{value:!0});pE.getRules=pE.isJSONType=void 0;var Y9A=["string","number","integer","boolean","null","object","array"],T9A=new Set(Y9A);function H9A(t){return typeof t=="string"&&T9A.has(t)}pE.isJSONType=H9A;function O9A(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:Fe(sA({},t),{integer:!0,boolean:!0,null:!0}),rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}pE.getRules=O9A});var xL=He(D1=>{"use strict";Object.defineProperty(D1,"__esModule",{value:!0});D1.shouldUseRule=D1.shouldUseGroup=D1.schemaHasRulesForType=void 0;function z9A({schema:t,self:e},A){let i=e.RULES.types[A];return i&&i!==!0&&XX(t,i)}D1.schemaHasRulesForType=z9A;function XX(t,e){return e.rules.some(A=>$X(t,A))}D1.shouldUseGroup=XX;function $X(t,e){var A;return t[e.keyword]!==void 0||((A=e.definition.implements)===null||A===void 0?void 0:A.some(i=>t[i]!==void 0))}D1.shouldUseRule=$X});var y4=He(_s=>{"use strict";Object.defineProperty(_s,"__esModule",{value:!0});_s.reportTypeError=_s.checkDataTypes=_s.checkDataType=_s.coerceAndCheckDataType=_s.getJSONTypes=_s.getSchemaTypes=_s.DataType=void 0;var P9A=LL(),j9A=xL(),q9A=w4(),ki=Pi(),A$=wn(),DE=function(t){return t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong",t}(DE||(_s.DataType=DE={}));function V9A(t){let e=e$(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}_s.getSchemaTypes=V9A;function e$(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(P9A.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}_s.getJSONTypes=e$;function Z9A(t,e){let{gen:A,data:i,opts:n}=t,o=W9A(e,n.coerceTypes),r=e.length>0&&!(o.length===0&&e.length===1&&(0,j9A.schemaHasRulesForType)(t,e[0]));if(r){let s=FL(e,i,n.strictNumbers,DE.Wrong);A.if(s,()=>{o.length?X9A(t,e,o):_L(t)})}return r}_s.coerceAndCheckDataType=Z9A;var t$=new Set(["string","number","integer","boolean","null"]);function W9A(t,e){return e?t.filter(A=>t$.has(A)||e==="array"&&A==="array"):[]}function X9A(t,e,A){let{gen:i,data:n,opts:o}=t,r=i.let("dataType",(0,ki._)`typeof ${n}`),s=i.let("coerced",(0,ki._)`undefined`);o.coerceTypes==="array"&&i.if((0,ki._)`${r} == 'object' && Array.isArray(${n}) && ${n}.length == 1`,()=>i.assign(n,(0,ki._)`${n}[0]`).assign(r,(0,ki._)`typeof ${n}`).if(FL(e,n,o.strictNumbers),()=>i.assign(s,n))),i.if((0,ki._)`${s} !== undefined`);for(let c of A)(t$.has(c)||c==="array"&&o.coerceTypes==="array")&&a(c);i.else(),_L(t),i.endIf(),i.if((0,ki._)`${s} !== undefined`,()=>{i.assign(n,s),$9A(t,s)});function a(c){switch(c){case"string":i.elseIf((0,ki._)`${r} == "number" || ${r} == "boolean"`).assign(s,(0,ki._)`"" + ${n}`).elseIf((0,ki._)`${n} === null`).assign(s,(0,ki._)`""`);return;case"number":i.elseIf((0,ki._)`${r} == "boolean" || ${n} === null - || (${r} == "string" && ${n} && ${n} == +${n})`).assign(s,(0,ki._)`+${n}`);return;case"integer":i.elseIf((0,ki._)`${r} === "boolean" || ${n} === null - || (${r} === "string" && ${n} && ${n} == +${n} && !(${n} % 1))`).assign(s,(0,ki._)`+${n}`);return;case"boolean":i.elseIf((0,ki._)`${n} === "false" || ${n} === 0 || ${n} === null`).assign(s,!1).elseIf((0,ki._)`${n} === "true" || ${n} === 1`).assign(s,!0);return;case"null":i.elseIf((0,ki._)`${n} === "" || ${n} === 0 || ${n} === false`),i.assign(s,null);return;case"array":i.elseIf((0,ki._)`${r} === "string" || ${r} === "number" - || ${r} === "boolean" || ${n} === null`).assign(s,(0,ki._)`[${n}]`)}}}function $9A({gen:t,parentData:e,parentDataProperty:A},i){t.if((0,ki._)`${e} !== undefined`,()=>t.assign((0,ki._)`${e}[${A}]`,i))}function NL(t,e,A,i=DE.Correct){let n=i===DE.Correct?ki.operators.EQ:ki.operators.NEQ,o;switch(t){case"null":return(0,ki._)`${e} ${n} null`;case"array":o=(0,ki._)`Array.isArray(${e})`;break;case"object":o=(0,ki._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":o=r((0,ki._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":o=r();break;default:return(0,ki._)`typeof ${e} ${n} ${t}`}return i===DE.Correct?o:(0,ki.not)(o);function r(s=ki.nil){return(0,ki.and)((0,ki._)`typeof ${e} == "number"`,s,A?(0,ki._)`isFinite(${e})`:ki.nil)}}_s.checkDataType=NL;function FL(t,e,A,i){if(t.length===1)return NL(t[0],e,A,i);let n,o=(0,A$.toHash)(t);if(o.array&&o.object){let r=(0,ki._)`typeof ${e} != "object"`;n=o.null?r:(0,ki._)`!${e} || ${r}`,delete o.null,delete o.array,delete o.object}else n=ki.nil;o.number&&delete o.integer;for(let r in o)n=(0,ki.and)(n,NL(r,e,A,i));return n}_s.checkDataTypes=FL;var AMA={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,ki._)`{type: ${t}}`:(0,ki._)`{type: ${e}}`};function _L(t){let e=eMA(t);(0,q9A.reportError)(e,AMA)}_s.reportTypeError=_L;function eMA(t){let{gen:e,data:A,schema:i}=t,n=(0,A$.schemaRefOrVal)(t,i,"type");return{gen:e,keyword:"type",data:A,schema:i.type,schemaCode:n,schemaValue:n,parentSchema:i,params:{},it:t}}});var n$=He(Z5=>{"use strict";Object.defineProperty(Z5,"__esModule",{value:!0});Z5.assignDefaults=void 0;var wE=Pi(),tMA=wn();function iMA(t,e){let{properties:A,items:i}=t.schema;if(e==="object"&&A)for(let n in A)i$(t,n,A[n].default);else e==="array"&&Array.isArray(i)&&i.forEach((n,o)=>i$(t,o,n.default))}Z5.assignDefaults=iMA;function i$(t,e,A){let{gen:i,compositeRule:n,data:o,opts:r}=t;if(A===void 0)return;let s=(0,wE._)`${o}${(0,wE.getProperty)(e)}`;if(n){(0,tMA.checkStrictMode)(t,`default is ignored for: ${s}`);return}let a=(0,wE._)`${s} === undefined`;r.useDefaults==="empty"&&(a=(0,wE._)`${a} || ${s} === null || ${s} === ""`),i.if(a,(0,wE._)`${s} = ${(0,wE.stringify)(A)}`)}});var Oc=He(co=>{"use strict";Object.defineProperty(co,"__esModule",{value:!0});co.validateUnion=co.validateArray=co.usePattern=co.callValidateCode=co.schemaProperties=co.allSchemaProperties=co.noPropertyInData=co.propertyInData=co.isOwnProperty=co.hasPropFunc=co.reportMissingProp=co.checkMissingProp=co.checkReportMissingProp=void 0;var Ho=Pi(),GL=wn(),w1=J0(),nMA=wn();function oMA(t,e){let{gen:A,data:i,it:n}=t;A.if(UL(A,i,e,n.opts.ownProperties),()=>{t.setParams({missingProperty:(0,Ho._)`${e}`},!0),t.error()})}co.checkReportMissingProp=oMA;function rMA({gen:t,data:e,it:{opts:A}},i,n){return(0,Ho.or)(...i.map(o=>(0,Ho.and)(UL(t,e,o,A.ownProperties),(0,Ho._)`${n} = ${o}`)))}co.checkMissingProp=rMA;function sMA(t,e){t.setParams({missingProperty:e},!0),t.error()}co.reportMissingProp=sMA;function o$(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,Ho._)`Object.prototype.hasOwnProperty`})}co.hasPropFunc=o$;function KL(t,e,A){return(0,Ho._)`${o$(t)}.call(${e}, ${A})`}co.isOwnProperty=KL;function aMA(t,e,A,i){let n=(0,Ho._)`${e}${(0,Ho.getProperty)(A)} !== undefined`;return i?(0,Ho._)`${n} && ${KL(t,e,A)}`:n}co.propertyInData=aMA;function UL(t,e,A,i){let n=(0,Ho._)`${e}${(0,Ho.getProperty)(A)} === undefined`;return i?(0,Ho.or)(n,(0,Ho.not)(KL(t,e,A))):n}co.noPropertyInData=UL;function r$(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}co.allSchemaProperties=r$;function cMA(t,e){return r$(e).filter(A=>!(0,GL.alwaysValidSchema)(t,e[A]))}co.schemaProperties=cMA;function gMA({schemaCode:t,data:e,it:{gen:A,topSchemaRef:i,schemaPath:n,errorPath:o},it:r},s,a,c){let g=c?(0,Ho._)`${t}, ${e}, ${i}${n}`:e,I=[[w1.default.instancePath,(0,Ho.strConcat)(w1.default.instancePath,o)],[w1.default.parentData,r.parentData],[w1.default.parentDataProperty,r.parentDataProperty],[w1.default.rootData,w1.default.rootData]];r.opts.dynamicRef&&I.push([w1.default.dynamicAnchors,w1.default.dynamicAnchors]);let C=(0,Ho._)`${g}, ${A.object(...I)}`;return a!==Ho.nil?(0,Ho._)`${s}.call(${a}, ${C})`:(0,Ho._)`${s}(${C})`}co.callValidateCode=gMA;var lMA=(0,Ho._)`new RegExp`;function IMA({gen:t,it:{opts:e}},A){let i=e.unicodeRegExp?"u":"",{regExp:n}=e.code,o=n(A,i);return t.scopeValue("pattern",{key:o.toString(),ref:o,code:(0,Ho._)`${n.code==="new RegExp"?lMA:(0,nMA.useFunc)(t,n)}(${A}, ${i})`})}co.usePattern=IMA;function CMA(t){let{gen:e,data:A,keyword:i,it:n}=t,o=e.name("valid");if(n.allErrors){let s=e.let("valid",!0);return r(()=>e.assign(s,!1)),s}return e.var(o,!0),r(()=>e.break()),o;function r(s){let a=e.const("len",(0,Ho._)`${A}.length`);e.forRange("i",0,a,c=>{t.subschema({keyword:i,dataProp:c,dataPropType:GL.Type.Num},o),e.if((0,Ho.not)(o),s)})}}co.validateArray=CMA;function dMA(t){let{gen:e,schema:A,keyword:i,it:n}=t;if(!Array.isArray(A))throw new Error("ajv implementation error");if(A.some(a=>(0,GL.alwaysValidSchema)(n,a))&&!n.opts.unevaluated)return;let r=e.let("valid",!1),s=e.name("_valid");e.block(()=>A.forEach((a,c)=>{let g=t.subschema({keyword:i,schemaProp:c,compositeRule:!0},s);e.assign(r,(0,Ho._)`${r} || ${s}`),t.mergeValidEvaluated(g,s)||e.if((0,Ho.not)(r))})),t.result(r,()=>t.reset(),()=>t.error(!0))}co.validateUnion=dMA});var c$=He(Fl=>{"use strict";Object.defineProperty(Fl,"__esModule",{value:!0});Fl.validateKeywordUsage=Fl.validSchemaType=Fl.funcKeywordCode=Fl.macroKeywordCode=void 0;var ta=Pi(),mC=J0(),BMA=Oc(),EMA=w4();function QMA(t,e){let{gen:A,keyword:i,schema:n,parentSchema:o,it:r}=t,s=e.macro.call(r.self,n,o,r),a=a$(A,i,s);r.opts.validateSchema!==!1&&r.self.validateSchema(s,!0);let c=A.name("valid");t.subschema({schema:s,schemaPath:ta.nil,errSchemaPath:`${r.errSchemaPath}/${i}`,topSchemaRef:a,compositeRule:!0},c),t.pass(c,()=>t.error(!0))}Fl.macroKeywordCode=QMA;function uMA(t,e){var A;let{gen:i,keyword:n,schema:o,parentSchema:r,$data:s,it:a}=t;fMA(a,e);let c=!s&&e.compile?e.compile.call(a.self,o,r,a):e.validate,g=a$(i,n,c),I=i.let("valid");t.block$data(I,C),t.ok((A=e.valid)!==null&&A!==void 0?A:I);function C(){if(e.errors===!1)E(),e.modifying&&s$(t),u(()=>t.error());else{let h=e.async?d():B();e.modifying&&s$(t),u(()=>hMA(t,h))}}function d(){let h=i.let("ruleErrs",null);return i.try(()=>E((0,ta._)`await `),w=>i.assign(I,!1).if((0,ta._)`${w} instanceof ${a.ValidationError}`,()=>i.assign(h,(0,ta._)`${w}.errors`),()=>i.throw(w))),h}function B(){let h=(0,ta._)`${g}.errors`;return i.assign(h,null),E(ta.nil),h}function E(h=e.async?(0,ta._)`await `:ta.nil){let w=a.opts.passContext?mC.default.this:mC.default.self,x=!("compile"in e&&!s||e.schema===!1);i.assign(I,(0,ta._)`${h}${(0,BMA.callValidateCode)(t,g,w,x)}`,e.modifying)}function u(h){var w;i.if((0,ta.not)((w=e.valid)!==null&&w!==void 0?w:I),h)}}Fl.funcKeywordCode=uMA;function s$(t){let{gen:e,data:A,it:i}=t;e.if(i.parentData,()=>e.assign(A,(0,ta._)`${i.parentData}[${i.parentDataProperty}]`))}function hMA(t,e){let{gen:A}=t;A.if((0,ta._)`Array.isArray(${e})`,()=>{A.assign(mC.default.vErrors,(0,ta._)`${mC.default.vErrors} === null ? ${e} : ${mC.default.vErrors}.concat(${e})`).assign(mC.default.errors,(0,ta._)`${mC.default.vErrors}.length`),(0,EMA.extendErrors)(t)},()=>t.error())}function fMA({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function a$(t,e,A){if(A===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof A=="function"?{ref:A}:{ref:A,code:(0,ta.stringify)(A)})}function mMA(t,e,A=!1){return!e.length||e.some(i=>i==="array"?Array.isArray(t):i==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==i||A&&typeof t>"u")}Fl.validSchemaType=mMA;function pMA({schema:t,opts:e,self:A,errSchemaPath:i},n,o){if(Array.isArray(n.keyword)?!n.keyword.includes(o):n.keyword!==o)throw new Error("ajv implementation error");let r=n.dependencies;if(r?.some(s=>!Object.prototype.hasOwnProperty.call(t,s)))throw new Error(`parent schema must have dependencies of ${o}: ${r.join(",")}`);if(n.validateSchema&&!n.validateSchema(t[o])){let a=`keyword "${o}" value is invalid at path "${i}": `+A.errorsText(n.validateSchema.errors);if(e.validateSchema==="log")A.logger.error(a);else throw new Error(a)}}Fl.validateKeywordUsage=pMA});var l$=He(y1=>{"use strict";Object.defineProperty(y1,"__esModule",{value:!0});y1.extendSubschemaMode=y1.extendSubschemaData=y1.getSubschema=void 0;var _l=Pi(),g$=wn();function DMA(t,{keyword:e,schemaProp:A,schema:i,schemaPath:n,errSchemaPath:o,topSchemaRef:r}){if(e!==void 0&&i!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let s=t.schema[e];return A===void 0?{schema:s,schemaPath:(0,_l._)`${t.schemaPath}${(0,_l.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:s[A],schemaPath:(0,_l._)`${t.schemaPath}${(0,_l.getProperty)(e)}${(0,_l.getProperty)(A)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,g$.escapeFragment)(A)}`}}if(i!==void 0){if(n===void 0||o===void 0||r===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:i,schemaPath:n,topSchemaRef:r,errSchemaPath:o}}throw new Error('either "keyword" or "schema" must be passed')}y1.getSubschema=DMA;function wMA(t,e,{dataProp:A,dataPropType:i,data:n,dataTypes:o,propertyName:r}){if(n!==void 0&&A!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=e;if(A!==void 0){let{errorPath:c,dataPathArr:g,opts:I}=e,C=s.let("data",(0,_l._)`${e.data}${(0,_l.getProperty)(A)}`,!0);a(C),t.errorPath=(0,_l.str)`${c}${(0,g$.getErrorPath)(A,i,I.jsPropertySyntax)}`,t.parentDataProperty=(0,_l._)`${A}`,t.dataPathArr=[...g,t.parentDataProperty]}if(n!==void 0){let c=n instanceof _l.Name?n:s.let("data",n,!0);a(c),r!==void 0&&(t.propertyName=r)}o&&(t.dataTypes=o);function a(c){t.data=c,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,c]}}y1.extendSubschemaData=wMA;function yMA(t,{jtdDiscriminator:e,jtdMetadata:A,compositeRule:i,createErrors:n,allErrors:o}){i!==void 0&&(t.compositeRule=i),n!==void 0&&(t.createErrors=n),o!==void 0&&(t.allErrors=o),t.jtdDiscriminator=e,t.jtdMetadata=A}y1.extendSubschemaMode=yMA});var JL=He((y8e,I$)=>{"use strict";I$.exports=function t(e,A){if(e===A)return!0;if(e&&A&&typeof e=="object"&&typeof A=="object"){if(e.constructor!==A.constructor)return!1;var i,n,o;if(Array.isArray(e)){if(i=e.length,i!=A.length)return!1;for(n=i;n--!==0;)if(!t(e[n],A[n]))return!1;return!0}if(e.constructor===RegExp)return e.source===A.source&&e.flags===A.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===A.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===A.toString();if(o=Object.keys(e),i=o.length,i!==Object.keys(A).length)return!1;for(n=i;n--!==0;)if(!Object.prototype.hasOwnProperty.call(A,o[n]))return!1;for(n=i;n--!==0;){var r=o[n];if(!t(e[r],A[r]))return!1}return!0}return e!==e&&A!==A}});var d$=He((v8e,C$)=>{"use strict";var v1=C$.exports=function(t,e,A){typeof e=="function"&&(A=e,e={}),A=e.cb||A;var i=typeof A=="function"?A:A.pre||function(){},n=A.post||function(){};W5(e,i,n,t,"",t)};v1.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};v1.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};v1.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};v1.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function W5(t,e,A,i,n,o,r,s,a,c){if(i&&typeof i=="object"&&!Array.isArray(i)){e(i,n,o,r,s,a,c);for(var g in i){var I=i[g];if(Array.isArray(I)){if(g in v1.arrayKeywords)for(var C=0;C{"use strict";Object.defineProperty(La,"__esModule",{value:!0});La.getSchemaRefs=La.resolveUrl=La.normalizeId=La._getFullPath=La.getFullPath=La.inlineRef=void 0;var MMA=wn(),bMA=JL(),kMA=d$(),SMA=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function RMA(t,e=!0){return typeof t=="boolean"?!0:e===!0?!YL(t):e?B$(t)<=e:!1}La.inlineRef=RMA;var LMA=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function YL(t){for(let e in t){if(LMA.has(e))return!0;let A=t[e];if(Array.isArray(A)&&A.some(YL)||typeof A=="object"&&YL(A))return!0}return!1}function B$(t){let e=0;for(let A in t){if(A==="$ref")return 1/0;if(e++,!SMA.has(A)&&(typeof t[A]=="object"&&(0,MMA.eachItem)(t[A],i=>e+=B$(i)),e===1/0))return 1/0}return e}function E$(t,e="",A){A!==!1&&(e=yE(e));let i=t.parse(e);return Q$(t,i)}La.getFullPath=E$;function Q$(t,e){return t.serialize(e).split("#")[0]+"#"}La._getFullPath=Q$;var xMA=/#\/?$/;function yE(t){return t?t.replace(xMA,""):""}La.normalizeId=yE;function NMA(t,e,A){return A=yE(A),t.resolve(e,A)}La.resolveUrl=NMA;var FMA=/^[a-z_][-a-z0-9._]*$/i;function _MA(t,e){if(typeof t=="boolean")return{};let{schemaId:A,uriResolver:i}=this.opts,n=yE(t[A]||e),o={"":n},r=E$(i,n,!1),s={},a=new Set;return kMA(t,{allKeys:!0},(I,C,d,B)=>{if(B===void 0)return;let E=r+C,u=o[B];typeof I[A]=="string"&&(u=h.call(this,I[A])),w.call(this,I.$anchor),w.call(this,I.$dynamicAnchor),o[C]=u;function h(x){let R=this.opts.uriResolver.resolve;if(x=yE(u?R(u,x):x),a.has(x))throw g(x);a.add(x);let D=this.refs[x];return typeof D=="string"&&(D=this.refs[D]),typeof D=="object"?c(I,D.schema,x):x!==yE(E)&&(x[0]==="#"?(c(I,s[x],x),s[x]=I):this.refs[x]=E),x}function w(x){if(typeof x=="string"){if(!FMA.test(x))throw new Error(`invalid anchor "${x}"`);h.call(this,`#${x}`)}}}),s;function c(I,C,d){if(C!==void 0&&!bMA(I,C))throw g(d)}function g(I){return new Error(`reference "${I}" resolves to more than one schema`)}}La.getSchemaRefs=_MA});var k4=He(M1=>{"use strict";Object.defineProperty(M1,"__esModule",{value:!0});M1.getData=M1.KeywordCxt=M1.validateFunctionCode=void 0;var p$=WX(),u$=y4(),HL=xL(),X5=y4(),GMA=n$(),b4=c$(),TL=l$(),wt=Pi(),si=J0(),KMA=v4(),Y0=wn(),M4=w4();function UMA(t){if(y$(t)&&(v$(t),w$(t))){TMA(t);return}D$(t,()=>(0,p$.topBoolOrEmptySchema)(t))}M1.validateFunctionCode=UMA;function D$({gen:t,validateName:e,schema:A,schemaEnv:i,opts:n},o){n.code.es5?t.func(e,(0,wt._)`${si.default.data}, ${si.default.valCxt}`,i.$async,()=>{t.code((0,wt._)`"use strict"; ${h$(A,n)}`),YMA(t,n),t.code(o)}):t.func(e,(0,wt._)`${si.default.data}, ${JMA(n)}`,i.$async,()=>t.code(h$(A,n)).code(o))}function JMA(t){return(0,wt._)`{${si.default.instancePath}="", ${si.default.parentData}, ${si.default.parentDataProperty}, ${si.default.rootData}=${si.default.data}${t.dynamicRef?(0,wt._)`, ${si.default.dynamicAnchors}={}`:wt.nil}}={}`}function YMA(t,e){t.if(si.default.valCxt,()=>{t.var(si.default.instancePath,(0,wt._)`${si.default.valCxt}.${si.default.instancePath}`),t.var(si.default.parentData,(0,wt._)`${si.default.valCxt}.${si.default.parentData}`),t.var(si.default.parentDataProperty,(0,wt._)`${si.default.valCxt}.${si.default.parentDataProperty}`),t.var(si.default.rootData,(0,wt._)`${si.default.valCxt}.${si.default.rootData}`),e.dynamicRef&&t.var(si.default.dynamicAnchors,(0,wt._)`${si.default.valCxt}.${si.default.dynamicAnchors}`)},()=>{t.var(si.default.instancePath,(0,wt._)`""`),t.var(si.default.parentData,(0,wt._)`undefined`),t.var(si.default.parentDataProperty,(0,wt._)`undefined`),t.var(si.default.rootData,si.default.data),e.dynamicRef&&t.var(si.default.dynamicAnchors,(0,wt._)`{}`)})}function TMA(t){let{schema:e,opts:A,gen:i}=t;D$(t,()=>{A.$comment&&e.$comment&&b$(t),jMA(t),i.let(si.default.vErrors,null),i.let(si.default.errors,0),A.unevaluated&&HMA(t),M$(t),ZMA(t)})}function HMA(t){let{gen:e,validateName:A}=t;t.evaluated=e.const("evaluated",(0,wt._)`${A}.evaluated`),e.if((0,wt._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,wt._)`${t.evaluated}.props`,(0,wt._)`undefined`)),e.if((0,wt._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,wt._)`${t.evaluated}.items`,(0,wt._)`undefined`))}function h$(t,e){let A=typeof t=="object"&&t[e.schemaId];return A&&(e.code.source||e.code.process)?(0,wt._)`/*# sourceURL=${A} */`:wt.nil}function OMA(t,e){if(y$(t)&&(v$(t),w$(t))){zMA(t,e);return}(0,p$.boolOrEmptySchema)(t,e)}function w$({schema:t,self:e}){if(typeof t=="boolean")return!t;for(let A in t)if(e.RULES.all[A])return!0;return!1}function y$(t){return typeof t.schema!="boolean"}function zMA(t,e){let{schema:A,gen:i,opts:n}=t;n.$comment&&A.$comment&&b$(t),qMA(t),VMA(t);let o=i.const("_errs",si.default.errors);M$(t,o),i.var(e,(0,wt._)`${o} === ${si.default.errors}`)}function v$(t){(0,Y0.checkUnknownRules)(t),PMA(t)}function M$(t,e){if(t.opts.jtd)return f$(t,[],!1,e);let A=(0,u$.getSchemaTypes)(t.schema),i=(0,u$.coerceAndCheckDataType)(t,A);f$(t,A,!i,e)}function PMA(t){let{schema:e,errSchemaPath:A,opts:i,self:n}=t;e.$ref&&i.ignoreKeywordsWithRef&&(0,Y0.schemaHasRulesButRef)(e,n.RULES)&&n.logger.warn(`$ref: keywords ignored in schema at path "${A}"`)}function jMA(t){let{schema:e,opts:A}=t;e.default!==void 0&&A.useDefaults&&A.strictSchema&&(0,Y0.checkStrictMode)(t,"default is ignored in the schema root")}function qMA(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,KMA.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function VMA(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function b$({gen:t,schemaEnv:e,schema:A,errSchemaPath:i,opts:n}){let o=A.$comment;if(n.$comment===!0)t.code((0,wt._)`${si.default.self}.logger.log(${o})`);else if(typeof n.$comment=="function"){let r=(0,wt.str)`${i}/$comment`,s=t.scopeValue("root",{ref:e.root});t.code((0,wt._)`${si.default.self}.opts.$comment(${o}, ${r}, ${s}.schema)`)}}function ZMA(t){let{gen:e,schemaEnv:A,validateName:i,ValidationError:n,opts:o}=t;A.$async?e.if((0,wt._)`${si.default.errors} === 0`,()=>e.return(si.default.data),()=>e.throw((0,wt._)`new ${n}(${si.default.vErrors})`)):(e.assign((0,wt._)`${i}.errors`,si.default.vErrors),o.unevaluated&&WMA(t),e.return((0,wt._)`${si.default.errors} === 0`))}function WMA({gen:t,evaluated:e,props:A,items:i}){A instanceof wt.Name&&t.assign((0,wt._)`${e}.props`,A),i instanceof wt.Name&&t.assign((0,wt._)`${e}.items`,i)}function f$(t,e,A,i){let{gen:n,schema:o,data:r,allErrors:s,opts:a,self:c}=t,{RULES:g}=c;if(o.$ref&&(a.ignoreKeywordsWithRef||!(0,Y0.schemaHasRulesButRef)(o,g))){n.block(()=>S$(t,"$ref",g.all.$ref.definition));return}a.jtd||XMA(t,e),n.block(()=>{for(let C of g.rules)I(C);I(g.post)});function I(C){(0,HL.shouldUseGroup)(o,C)&&(C.type?(n.if((0,X5.checkDataType)(C.type,r,a.strictNumbers)),m$(t,C),e.length===1&&e[0]===C.type&&A&&(n.else(),(0,X5.reportTypeError)(t)),n.endIf()):m$(t,C),s||n.if((0,wt._)`${si.default.errors} === ${i||0}`))}}function m$(t,e){let{gen:A,schema:i,opts:{useDefaults:n}}=t;n&&(0,GMA.assignDefaults)(t,e.type),A.block(()=>{for(let o of e.rules)(0,HL.shouldUseRule)(i,o)&&S$(t,o.keyword,o.definition,e.type)})}function XMA(t,e){t.schemaEnv.meta||!t.opts.strictTypes||($MA(t,e),t.opts.allowUnionTypes||AbA(t,e),ebA(t,t.dataTypes))}function $MA(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(A=>{k$(t.dataTypes,A)||OL(t,`type "${A}" not allowed by context "${t.dataTypes.join(",")}"`)}),ibA(t,e)}}function AbA(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&OL(t,"use allowUnionTypes to allow union type keyword")}function ebA(t,e){let A=t.self.RULES.all;for(let i in A){let n=A[i];if(typeof n=="object"&&(0,HL.shouldUseRule)(t.schema,n)){let{type:o}=n.definition;o.length&&!o.some(r=>tbA(e,r))&&OL(t,`missing type "${o.join(",")}" for keyword "${i}"`)}}}function tbA(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function k$(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function ibA(t,e){let A=[];for(let i of t.dataTypes)k$(e,i)?A.push(i):e.includes("integer")&&i==="number"&&A.push("integer");t.dataTypes=A}function OL(t,e){let A=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${A}" (strictTypes)`,(0,Y0.checkStrictMode)(t,e,t.opts.strictTypes)}var $5=class{constructor(e,A,i){if((0,b4.validateKeywordUsage)(e,A,i),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=i,this.data=e.data,this.schema=e.schema[i],this.$data=A.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Y0.schemaRefOrVal)(e,this.schema,i,this.$data),this.schemaType=A.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=A,this.$data)this.schemaCode=e.gen.const("vSchema",R$(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,b4.validSchemaType)(this.schema,A.schemaType,A.allowUndefined))throw new Error(`${i} value must be ${JSON.stringify(A.schemaType)}`);("code"in A?A.trackErrors:A.errors!==!1)&&(this.errsCount=e.gen.const("_errs",si.default.errors))}result(e,A,i){this.failResult((0,wt.not)(e),A,i)}failResult(e,A,i){this.gen.if(e),i?i():this.error(),A?(this.gen.else(),A(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,A){this.failResult((0,wt.not)(e),void 0,A)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:A}=this;this.fail((0,wt._)`${A} !== undefined && (${(0,wt.or)(this.invalid$data(),e)})`)}error(e,A,i){if(A){this.setParams(A),this._error(e,i),this.setParams({});return}this._error(e,i)}_error(e,A){(e?M4.reportExtraError:M4.reportError)(this,this.def.error,A)}$dataError(){(0,M4.reportError)(this,this.def.$dataError||M4.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,M4.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,A){A?Object.assign(this.params,e):this.params=e}block$data(e,A,i=wt.nil){this.gen.block(()=>{this.check$data(e,i),A()})}check$data(e=wt.nil,A=wt.nil){if(!this.$data)return;let{gen:i,schemaCode:n,schemaType:o,def:r}=this;i.if((0,wt.or)((0,wt._)`${n} === undefined`,A)),e!==wt.nil&&i.assign(e,!0),(o.length||r.validateSchema)&&(i.elseIf(this.invalid$data()),this.$dataError(),e!==wt.nil&&i.assign(e,!1)),i.else()}invalid$data(){let{gen:e,schemaCode:A,schemaType:i,def:n,it:o}=this;return(0,wt.or)(r(),s());function r(){if(i.length){if(!(A instanceof wt.Name))throw new Error("ajv implementation error");let a=Array.isArray(i)?i:[i];return(0,wt._)`${(0,X5.checkDataTypes)(a,A,o.opts.strictNumbers,X5.DataType.Wrong)}`}return wt.nil}function s(){if(n.validateSchema){let a=e.scopeValue("validate$data",{ref:n.validateSchema});return(0,wt._)`!${a}(${A})`}return wt.nil}}subschema(e,A){let i=(0,TL.getSubschema)(this.it,e);(0,TL.extendSubschemaData)(i,this.it,e),(0,TL.extendSubschemaMode)(i,e);let n=Fe(sA(sA({},this.it),i),{items:void 0,props:void 0});return OMA(n,A),n}mergeEvaluated(e,A){let{it:i,gen:n}=this;i.opts.unevaluated&&(i.props!==!0&&e.props!==void 0&&(i.props=Y0.mergeEvaluated.props(n,e.props,i.props,A)),i.items!==!0&&e.items!==void 0&&(i.items=Y0.mergeEvaluated.items(n,e.items,i.items,A)))}mergeValidEvaluated(e,A){let{it:i,gen:n}=this;if(i.opts.unevaluated&&(i.props!==!0||i.items!==!0))return n.if(A,()=>this.mergeEvaluated(e,wt.Name)),!0}};M1.KeywordCxt=$5;function S$(t,e,A,i){let n=new $5(t,A,e);"code"in A?A.code(n,i):n.$data&&A.validate?(0,b4.funcKeywordCode)(n,A):"macro"in A?(0,b4.macroKeywordCode)(n,A):(A.compile||A.validate)&&(0,b4.funcKeywordCode)(n,A)}var nbA=/^\/(?:[^~]|~0|~1)*$/,obA=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function R$(t,{dataLevel:e,dataNames:A,dataPathArr:i}){let n,o;if(t==="")return si.default.rootData;if(t[0]==="/"){if(!nbA.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);n=t,o=si.default.rootData}else{let c=obA.exec(t);if(!c)throw new Error(`Invalid JSON-pointer: ${t}`);let g=+c[1];if(n=c[2],n==="#"){if(g>=e)throw new Error(a("property/index",g));return i[e-g]}if(g>e)throw new Error(a("data",g));if(o=A[e-g],!n)return o}let r=o,s=n.split("/");for(let c of s)c&&(o=(0,wt._)`${o}${(0,wt.getProperty)((0,Y0.unescapeJsonPointer)(c))}`,r=(0,wt._)`${r} && ${o}`);return r;function a(c,g){return`Cannot access ${c} ${g} levels up, current level is ${e}`}}M1.getData=R$});var AD=He(PL=>{"use strict";Object.defineProperty(PL,"__esModule",{value:!0});var zL=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};PL.default=zL});var S4=He(VL=>{"use strict";Object.defineProperty(VL,"__esModule",{value:!0});var jL=v4(),qL=class extends Error{constructor(e,A,i,n){super(n||`can't resolve reference ${i} from id ${A}`),this.missingRef=(0,jL.resolveUrl)(e,A,i),this.missingSchema=(0,jL.normalizeId)((0,jL.getFullPath)(e,this.missingRef))}};VL.default=qL});var tD=He(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});zc.resolveSchema=zc.getCompilingSchema=zc.resolveRef=zc.compileSchema=zc.SchemaEnv=void 0;var Sg=Pi(),rbA=AD(),pC=J0(),Rg=v4(),L$=wn(),sbA=k4(),vE=class{constructor(e){var A;this.refs={},this.dynamicAnchors={};let i;typeof e.schema=="object"&&(i=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(A=e.baseId)!==null&&A!==void 0?A:(0,Rg.normalizeId)(i?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=i?.$async,this.refs={}}};zc.SchemaEnv=vE;function WL(t){let e=x$.call(this,t);if(e)return e;let A=(0,Rg.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:i,lines:n}=this.opts.code,{ownProperties:o}=this.opts,r=new Sg.CodeGen(this.scope,{es5:i,lines:n,ownProperties:o}),s;t.$async&&(s=r.scopeValue("Error",{ref:rbA.default,code:(0,Sg._)`require("ajv/dist/runtime/validation_error").default`}));let a=r.scopeName("validate");t.validateName=a;let c={gen:r,allErrors:this.opts.allErrors,data:pC.default.data,parentData:pC.default.parentData,parentDataProperty:pC.default.parentDataProperty,dataNames:[pC.default.data],dataPathArr:[Sg.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:r.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,Sg.stringify)(t.schema)}:{ref:t.schema}),validateName:a,ValidationError:s,schema:t.schema,schemaEnv:t,rootId:A,baseId:t.baseId||A,schemaPath:Sg.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,Sg._)`""`,opts:this.opts,self:this},g;try{this._compilations.add(t),(0,sbA.validateFunctionCode)(c),r.optimize(this.opts.code.optimize);let I=r.toString();g=`${r.scopeRefs(pC.default.scope)}return ${I}`,this.opts.code.process&&(g=this.opts.code.process(g,t));let d=new Function(`${pC.default.self}`,`${pC.default.scope}`,g)(this,this.scope.get());if(this.scope.value(a,{ref:d}),d.errors=null,d.schema=t.schema,d.schemaEnv=t,t.$async&&(d.$async=!0),this.opts.code.source===!0&&(d.source={validateName:a,validateCode:I,scopeValues:r._values}),this.opts.unevaluated){let{props:B,items:E}=c;d.evaluated={props:B instanceof Sg.Name?void 0:B,items:E instanceof Sg.Name?void 0:E,dynamicProps:B instanceof Sg.Name,dynamicItems:E instanceof Sg.Name},d.source&&(d.source.evaluated=(0,Sg.stringify)(d.evaluated))}return t.validate=d,t}catch(I){throw delete t.validate,delete t.validateName,g&&this.logger.error("Error compiling schema, function code:",g),I}finally{this._compilations.delete(t)}}zc.compileSchema=WL;function abA(t,e,A){var i;A=(0,Rg.resolveUrl)(this.opts.uriResolver,e,A);let n=t.refs[A];if(n)return n;let o=lbA.call(this,t,A);if(o===void 0){let r=(i=t.localRefs)===null||i===void 0?void 0:i[A],{schemaId:s}=this.opts;r&&(o=new vE({schema:r,schemaId:s,root:t,baseId:e}))}if(o!==void 0)return t.refs[A]=cbA.call(this,o)}zc.resolveRef=abA;function cbA(t){return(0,Rg.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:WL.call(this,t)}function x$(t){for(let e of this._compilations)if(gbA(e,t))return e}zc.getCompilingSchema=x$;function gbA(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function lbA(t,e){let A;for(;typeof(A=this.refs[e])=="string";)e=A;return A||this.schemas[e]||eD.call(this,t,e)}function eD(t,e){let A=this.opts.uriResolver.parse(e),i=(0,Rg._getFullPath)(this.opts.uriResolver,A),n=(0,Rg.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&i===n)return ZL.call(this,A,t);let o=(0,Rg.normalizeId)(i),r=this.refs[o]||this.schemas[o];if(typeof r=="string"){let s=eD.call(this,t,r);return typeof s?.schema!="object"?void 0:ZL.call(this,A,s)}if(typeof r?.schema=="object"){if(r.validate||WL.call(this,r),o===(0,Rg.normalizeId)(e)){let{schema:s}=r,{schemaId:a}=this.opts,c=s[a];return c&&(n=(0,Rg.resolveUrl)(this.opts.uriResolver,n,c)),new vE({schema:s,schemaId:a,root:t,baseId:n})}return ZL.call(this,A,r)}}zc.resolveSchema=eD;var IbA=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function ZL(t,{baseId:e,schema:A,root:i}){var n;if(((n=t.fragment)===null||n===void 0?void 0:n[0])!=="/")return;for(let s of t.fragment.slice(1).split("/")){if(typeof A=="boolean")return;let a=A[(0,L$.unescapeFragment)(s)];if(a===void 0)return;A=a;let c=typeof A=="object"&&A[this.opts.schemaId];!IbA.has(s)&&c&&(e=(0,Rg.resolveUrl)(this.opts.uriResolver,e,c))}let o;if(typeof A!="boolean"&&A.$ref&&!(0,L$.schemaHasRulesButRef)(A,this.RULES)){let s=(0,Rg.resolveUrl)(this.opts.uriResolver,e,A.$ref);o=eD.call(this,i,s)}let{schemaId:r}=this.opts;if(o=o||new vE({schema:A,schemaId:r,root:i,baseId:e}),o.schema!==o.root.schema)return o}});var N$=He((x8e,CbA)=>{CbA.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var $L=He((N8e,K$)=>{"use strict";var dbA=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),_$=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function XL(t){let e="",A=0,i=0;for(i=0;i=48&&A<=57||A>=65&&A<=70||A>=97&&A<=102))return"";e+=t[i];break}for(i+=1;i=48&&A<=57||A>=65&&A<=70||A>=97&&A<=102))return"";e+=t[i]}return e}var BbA=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function F$(t){return t.length=0,!0}function EbA(t,e,A){if(t.length){let i=XL(t);if(i!=="")e.push(i);else return A.error=!0,!1;t.length=0}return!0}function QbA(t){let e=0,A={error:!1,address:"",zone:""},i=[],n=[],o=!1,r=!1,s=EbA;for(let a=0;a7){A.error=!0;break}a>0&&t[a-1]===":"&&(o=!0),i.push(":");continue}else if(c==="%"){if(!s(n,i,A))break;s=F$}else{n.push(c);continue}}return n.length&&(s===F$?A.zone=n.join(""):r?i.push(n.join("")):i.push(XL(n))),A.address=i.join(""),A}function G$(t){if(ubA(t,":")<2)return{host:t,isIPV6:!1};let e=QbA(t);if(e.error)return{host:t,isIPV6:!1};{let A=e.address,i=e.address;return e.zone&&(A+="%"+e.zone,i+="%25"+e.zone),{host:A,isIPV6:!0,escapedHost:i}}}function ubA(t,e){let A=0;for(let i=0;i{"use strict";var{isUUID:pbA}=$L(),DbA=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,wbA=["http","https","ws","wss","urn","urn:uuid"];function ybA(t){return wbA.indexOf(t)!==-1}function Ax(t){return t.secure===!0?!0:t.secure===!1?!1:t.scheme?t.scheme.length===3&&(t.scheme[0]==="w"||t.scheme[0]==="W")&&(t.scheme[1]==="s"||t.scheme[1]==="S")&&(t.scheme[2]==="s"||t.scheme[2]==="S"):!1}function U$(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function J$(t){let e=String(t.scheme).toLowerCase()==="https";return(t.port===(e?443:80)||t.port==="")&&(t.port=void 0),t.path||(t.path="/"),t}function vbA(t){return t.secure=Ax(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function MbA(t){if((t.port===(Ax(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[e,A]=t.resourceName.split("?");t.path=e&&e!=="/"?e:void 0,t.query=A,t.resourceName=void 0}return t.fragment=void 0,t}function bbA(t,e){if(!t.path)return t.error="URN can not be parsed",t;let A=t.path.match(DbA);if(A){let i=e.scheme||t.scheme||"urn";t.nid=A[1].toLowerCase(),t.nss=A[2];let n=`${i}:${e.nid||t.nid}`,o=ex(n);t.path=void 0,o&&(t=o.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function kbA(t,e){if(t.nid===void 0)throw new Error("URN without nid cannot be serialized");let A=e.scheme||t.scheme||"urn",i=t.nid.toLowerCase(),n=`${A}:${e.nid||i}`,o=ex(n);o&&(t=o.serialize(t,e));let r=t,s=t.nss;return r.path=`${i||e.nid}:${s}`,e.skipEscape=!0,r}function SbA(t,e){let A=t;return A.uuid=A.nss,A.nss=void 0,!e.tolerant&&(!A.uuid||!pbA(A.uuid))&&(A.error=A.error||"UUID is not valid."),A}function RbA(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var Y$={scheme:"http",domainHost:!0,parse:U$,serialize:J$},LbA={scheme:"https",domainHost:Y$.domainHost,parse:U$,serialize:J$},iD={scheme:"ws",domainHost:!0,parse:vbA,serialize:MbA},xbA={scheme:"wss",domainHost:iD.domainHost,parse:iD.parse,serialize:iD.serialize},NbA={scheme:"urn",parse:bbA,serialize:kbA,skipNormalize:!0},FbA={scheme:"urn:uuid",parse:SbA,serialize:RbA,skipNormalize:!0},nD={http:Y$,https:LbA,ws:iD,wss:xbA,urn:NbA,"urn:uuid":FbA};Object.setPrototypeOf(nD,null);function ex(t){return t&&(nD[t]||nD[t.toLowerCase()])||void 0}T$.exports={wsIsSecure:Ax,SCHEMES:nD,isValidSchemeName:ybA,getSchemeHandler:ex}});var P$=He((_8e,rD)=>{"use strict";var{normalizeIPv6:_bA,removeDotSegments:R4,recomposeAuthority:GbA,normalizeComponentEncoding:oD,isIPv4:KbA,nonSimpleDomain:UbA}=$L(),{SCHEMES:JbA,getSchemeHandler:O$}=H$();function YbA(t,e){return typeof t=="string"?t=Gl(T0(t,e),e):typeof t=="object"&&(t=T0(Gl(t,e),e)),t}function TbA(t,e,A){let i=A?Object.assign({scheme:"null"},A):{scheme:"null"},n=z$(T0(t,i),T0(e,i),i,!0);return i.skipEscape=!0,Gl(n,i)}function z$(t,e,A,i){let n={};return i||(t=T0(Gl(t,A),A),e=T0(Gl(e,A),A)),A=A||{},!A.tolerant&&e.scheme?(n.scheme=e.scheme,n.userinfo=e.userinfo,n.host=e.host,n.port=e.port,n.path=R4(e.path||""),n.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(n.userinfo=e.userinfo,n.host=e.host,n.port=e.port,n.path=R4(e.path||""),n.query=e.query):(e.path?(e.path[0]==="/"?n.path=R4(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?n.path="/"+e.path:t.path?n.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:n.path=e.path,n.path=R4(n.path)),n.query=e.query):(n.path=t.path,e.query!==void 0?n.query=e.query:n.query=t.query),n.userinfo=t.userinfo,n.host=t.host,n.port=t.port),n.scheme=t.scheme),n.fragment=e.fragment,n}function HbA(t,e,A){return typeof t=="string"?(t=unescape(t),t=Gl(oD(T0(t,A),!0),Fe(sA({},A),{skipEscape:!0}))):typeof t=="object"&&(t=Gl(oD(t,!0),Fe(sA({},A),{skipEscape:!0}))),typeof e=="string"?(e=unescape(e),e=Gl(oD(T0(e,A),!0),Fe(sA({},A),{skipEscape:!0}))):typeof e=="object"&&(e=Gl(oD(e,!0),Fe(sA({},A),{skipEscape:!0}))),t.toLowerCase()===e.toLowerCase()}function Gl(t,e){let A={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},i=Object.assign({},e),n=[],o=O$(i.scheme||A.scheme);o&&o.serialize&&o.serialize(A,i),A.path!==void 0&&(i.skipEscape?A.path=unescape(A.path):(A.path=escape(A.path),A.scheme!==void 0&&(A.path=A.path.split("%3A").join(":")))),i.reference!=="suffix"&&A.scheme&&n.push(A.scheme,":");let r=GbA(A);if(r!==void 0&&(i.reference!=="suffix"&&n.push("//"),n.push(r),A.path&&A.path[0]!=="/"&&n.push("/")),A.path!==void 0){let s=A.path;!i.absolutePath&&(!o||!o.absolutePath)&&(s=R4(s)),r===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),n.push(s)}return A.query!==void 0&&n.push("?",A.query),A.fragment!==void 0&&n.push("#",A.fragment),n.join("")}var ObA=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function T0(t,e){let A=Object.assign({},e),i={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},n=!1;A.reference==="suffix"&&(A.scheme?t=A.scheme+":"+t:t="//"+t);let o=t.match(ObA);if(o){if(i.scheme=o[1],i.userinfo=o[3],i.host=o[4],i.port=parseInt(o[5],10),i.path=o[6]||"",i.query=o[7],i.fragment=o[8],isNaN(i.port)&&(i.port=o[5]),i.host)if(KbA(i.host)===!1){let a=_bA(i.host);i.host=a.host.toLowerCase(),n=a.isIPV6}else n=!0;i.scheme===void 0&&i.userinfo===void 0&&i.host===void 0&&i.port===void 0&&i.query===void 0&&!i.path?i.reference="same-document":i.scheme===void 0?i.reference="relative":i.fragment===void 0?i.reference="absolute":i.reference="uri",A.reference&&A.reference!=="suffix"&&A.reference!==i.reference&&(i.error=i.error||"URI is not a "+A.reference+" reference.");let r=O$(A.scheme||i.scheme);if(!A.unicodeSupport&&(!r||!r.unicodeSupport)&&i.host&&(A.domainHost||r&&r.domainHost)&&n===!1&&UbA(i.host))try{i.host=URL.domainToASCII(i.host.toLowerCase())}catch(s){i.error=i.error||"Host's domain name can not be converted to ASCII: "+s}(!r||r&&!r.skipNormalize)&&(t.indexOf("%")!==-1&&(i.scheme!==void 0&&(i.scheme=unescape(i.scheme)),i.host!==void 0&&(i.host=unescape(i.host))),i.path&&(i.path=escape(unescape(i.path))),i.fragment&&(i.fragment=encodeURI(decodeURIComponent(i.fragment)))),r&&r.parse&&r.parse(i,A)}else i.error=i.error||"URI can not be parsed.";return i}var tx={SCHEMES:JbA,normalize:YbA,resolve:TbA,resolveComponent:z$,equal:HbA,serialize:Gl,parse:T0};rD.exports=tx;rD.exports.default=tx;rD.exports.fastUri=tx});var q$=He(ix=>{"use strict";Object.defineProperty(ix,"__esModule",{value:!0});var j$=P$();j$.code='require("ajv/dist/runtime/uri").default';ix.default=j$});var tAA=He(Es=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0});Es.CodeGen=Es.Name=Es.nil=Es.stringify=Es.str=Es._=Es.KeywordCxt=void 0;var zbA=k4();Object.defineProperty(Es,"KeywordCxt",{enumerable:!0,get:function(){return zbA.KeywordCxt}});var ME=Pi();Object.defineProperty(Es,"_",{enumerable:!0,get:function(){return ME._}});Object.defineProperty(Es,"str",{enumerable:!0,get:function(){return ME.str}});Object.defineProperty(Es,"stringify",{enumerable:!0,get:function(){return ME.stringify}});Object.defineProperty(Es,"nil",{enumerable:!0,get:function(){return ME.nil}});Object.defineProperty(Es,"Name",{enumerable:!0,get:function(){return ME.Name}});Object.defineProperty(Es,"CodeGen",{enumerable:!0,get:function(){return ME.CodeGen}});var PbA=AD(),$$=S4(),jbA=LL(),L4=tD(),qbA=Pi(),x4=v4(),sD=y4(),ox=wn(),V$=N$(),VbA=q$(),AAA=(t,e)=>new RegExp(t,e);AAA.code="new RegExp";var ZbA=["removeAdditional","useDefaults","coerceTypes"],WbA=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),XbA={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},$bA={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Z$=200;function AkA(t){var e,A,i,n,o,r,s,a,c,g,I,C,d,B,E,u,h,w,x,R,D,G,J,z,K;let O=t.strict,V=(e=t.code)===null||e===void 0?void 0:e.optimize,j=V===!0||V===void 0?1:V||0,dA=(i=(A=t.code)===null||A===void 0?void 0:A.regExp)!==null&&i!==void 0?i:AAA,fA=(n=t.uriResolver)!==null&&n!==void 0?n:VbA.default;return{strictSchema:(r=(o=t.strictSchema)!==null&&o!==void 0?o:O)!==null&&r!==void 0?r:!0,strictNumbers:(a=(s=t.strictNumbers)!==null&&s!==void 0?s:O)!==null&&a!==void 0?a:!0,strictTypes:(g=(c=t.strictTypes)!==null&&c!==void 0?c:O)!==null&&g!==void 0?g:"log",strictTuples:(C=(I=t.strictTuples)!==null&&I!==void 0?I:O)!==null&&C!==void 0?C:"log",strictRequired:(B=(d=t.strictRequired)!==null&&d!==void 0?d:O)!==null&&B!==void 0?B:!1,code:t.code?Fe(sA({},t.code),{optimize:j,regExp:dA}):{optimize:j,regExp:dA},loopRequired:(E=t.loopRequired)!==null&&E!==void 0?E:Z$,loopEnum:(u=t.loopEnum)!==null&&u!==void 0?u:Z$,meta:(h=t.meta)!==null&&h!==void 0?h:!0,messages:(w=t.messages)!==null&&w!==void 0?w:!0,inlineRefs:(x=t.inlineRefs)!==null&&x!==void 0?x:!0,schemaId:(R=t.schemaId)!==null&&R!==void 0?R:"$id",addUsedSchema:(D=t.addUsedSchema)!==null&&D!==void 0?D:!0,validateSchema:(G=t.validateSchema)!==null&&G!==void 0?G:!0,validateFormats:(J=t.validateFormats)!==null&&J!==void 0?J:!0,unicodeRegExp:(z=t.unicodeRegExp)!==null&&z!==void 0?z:!0,int32range:(K=t.int32range)!==null&&K!==void 0?K:!0,uriResolver:fA}}var N4=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts=sA(sA({},e),AkA(e));let{es5:A,lines:i}=this.opts.code;this.scope=new qbA.ValueScope({scope:{},prefixes:WbA,es5:A,lines:i}),this.logger=rkA(e.logger);let n=e.validateFormats;e.validateFormats=!1,this.RULES=(0,jbA.getRules)(),W$.call(this,XbA,e,"NOT SUPPORTED"),W$.call(this,$bA,e,"DEPRECATED","warn"),this._metaOpts=nkA.call(this),e.formats&&tkA.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&ikA.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),ekA.call(this),e.validateFormats=n}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:A,schemaId:i}=this.opts,n=V$;i==="id"&&(n=sA({},V$),n.id=n.$id,delete n.$id),A&&e&&this.addMetaSchema(n,n[i],!1)}defaultMeta(){let{meta:e,schemaId:A}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[A]||e:void 0}validate(e,A){let i;if(typeof e=="string"){if(i=this.getSchema(e),!i)throw new Error(`no schema with key or ref "${e}"`)}else i=this.compile(e);let n=i(A);return"$async"in i||(this.errors=i.errors),n}compile(e,A){let i=this._addSchema(e,A);return i.validate||this._compileSchemaEnv(i)}compileAsync(e,A){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:i}=this.opts;return n.call(this,e,A);function n(g,I){return Ni(this,null,function*(){yield o.call(this,g.$schema);let C=this._addSchema(g,I);return C.validate||r.call(this,C)})}function o(g){return Ni(this,null,function*(){g&&!this.getSchema(g)&&(yield n.call(this,{$ref:g},!0))})}function r(g){return Ni(this,null,function*(){try{return this._compileSchemaEnv(g)}catch(I){if(!(I instanceof $$.default))throw I;return s.call(this,I),yield a.call(this,I.missingSchema),r.call(this,g)}})}function s({missingSchema:g,missingRef:I}){if(this.refs[g])throw new Error(`AnySchema ${g} is loaded but ${I} cannot be resolved`)}function a(g){return Ni(this,null,function*(){let I=yield c.call(this,g);this.refs[g]||(yield o.call(this,I.$schema)),this.refs[g]||this.addSchema(I,g,A)})}function c(g){return Ni(this,null,function*(){let I=this._loading[g];if(I)return I;try{return yield this._loading[g]=i(g)}finally{delete this._loading[g]}})}}addSchema(e,A,i,n=this.opts.validateSchema){if(Array.isArray(e)){for(let r of e)this.addSchema(r,void 0,i,n);return this}let o;if(typeof e=="object"){let{schemaId:r}=this.opts;if(o=e[r],o!==void 0&&typeof o!="string")throw new Error(`schema ${r} must be string`)}return A=(0,x4.normalizeId)(A||o),this._checkUnique(A),this.schemas[A]=this._addSchema(e,i,A,n,!0),this}addMetaSchema(e,A,i=this.opts.validateSchema){return this.addSchema(e,A,!0,i),this}validateSchema(e,A){if(typeof e=="boolean")return!0;let i;if(i=e.$schema,i!==void 0&&typeof i!="string")throw new Error("$schema must be a string");if(i=i||this.opts.defaultMeta||this.defaultMeta(),!i)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let n=this.validate(i,e);if(!n&&A){let o="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(o);else throw new Error(o)}return n}getSchema(e){let A;for(;typeof(A=X$.call(this,e))=="string";)e=A;if(A===void 0){let{schemaId:i}=this.opts,n=new L4.SchemaEnv({schema:{},schemaId:i});if(A=L4.resolveSchema.call(this,n,e),!A)return;this.refs[e]=A}return A.validate||this._compileSchemaEnv(A)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let A=X$.call(this,e);return typeof A=="object"&&this._cache.delete(A.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let A=e;this._cache.delete(A);let i=e[this.opts.schemaId];return i&&(i=(0,x4.normalizeId)(i),delete this.schemas[i],delete this.refs[i]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let A of e)this.addKeyword(A);return this}addKeyword(e,A){let i;if(typeof e=="string")i=e,typeof A=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),A.keyword=i);else if(typeof e=="object"&&A===void 0){if(A=e,i=A.keyword,Array.isArray(i)&&!i.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(akA.call(this,i,A),!A)return(0,ox.eachItem)(i,o=>nx.call(this,o)),this;gkA.call(this,A);let n=Fe(sA({},A),{type:(0,sD.getJSONTypes)(A.type),schemaType:(0,sD.getJSONTypes)(A.schemaType)});return(0,ox.eachItem)(i,n.type.length===0?o=>nx.call(this,o,n):o=>n.type.forEach(r=>nx.call(this,o,n,r))),this}getKeyword(e){let A=this.RULES.all[e];return typeof A=="object"?A.definition:!!A}removeKeyword(e){let{RULES:A}=this;delete A.keywords[e],delete A.all[e];for(let i of A.rules){let n=i.rules.findIndex(o=>o.keyword===e);n>=0&&i.rules.splice(n,1)}return this}addFormat(e,A){return typeof A=="string"&&(A=new RegExp(A)),this.formats[e]=A,this}errorsText(e=this.errors,{separator:A=", ",dataVar:i="data"}={}){return!e||e.length===0?"No errors":e.map(n=>`${i}${n.instancePath} ${n.message}`).reduce((n,o)=>n+A+o)}$dataMetaSchema(e,A){let i=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let n of A){let o=n.split("/").slice(1),r=e;for(let s of o)r=r[s];for(let s in i){let a=i[s];if(typeof a!="object")continue;let{$data:c}=a.definition,g=r[s];c&&g&&(r[s]=eAA(g))}}return e}_removeAllSchemas(e,A){for(let i in e){let n=e[i];(!A||A.test(i))&&(typeof n=="string"?delete e[i]:n&&!n.meta&&(this._cache.delete(n.schema),delete e[i]))}}_addSchema(e,A,i,n=this.opts.validateSchema,o=this.opts.addUsedSchema){let r,{schemaId:s}=this.opts;if(typeof e=="object")r=e[s];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let a=this._cache.get(e);if(a!==void 0)return a;i=(0,x4.normalizeId)(r||i);let c=x4.getSchemaRefs.call(this,e,i);return a=new L4.SchemaEnv({schema:e,schemaId:s,meta:A,baseId:i,localRefs:c}),this._cache.set(a.schema,a),o&&!i.startsWith("#")&&(i&&this._checkUnique(i),this.refs[i]=a),n&&this.validateSchema(e,!0),a}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):L4.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let A=this.opts;this.opts=this._metaOpts;try{L4.compileSchema.call(this,e)}finally{this.opts=A}}};N4.ValidationError=PbA.default;N4.MissingRefError=$$.default;Es.default=N4;function W$(t,e,A,i="error"){for(let n in t){let o=n;o in e&&this.logger[i](`${A}: option ${n}. ${t[o]}`)}}function X$(t){return t=(0,x4.normalizeId)(t),this.schemas[t]||this.refs[t]}function ekA(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function tkA(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function ikA(t){if(Array.isArray(t)){this.addVocabulary(t);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in t){let A=t[e];A.keyword||(A.keyword=e),this.addKeyword(A)}}function nkA(){let t=sA({},this.opts);for(let e of ZbA)delete t[e];return t}var okA={log(){},warn(){},error(){}};function rkA(t){if(t===!1)return okA;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var skA=/^[a-z_$][a-z0-9_$:-]*$/i;function akA(t,e){let{RULES:A}=this;if((0,ox.eachItem)(t,i=>{if(A.keywords[i])throw new Error(`Keyword ${i} is already defined`);if(!skA.test(i))throw new Error(`Keyword ${i} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function nx(t,e,A){var i;let n=e?.post;if(A&&n)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:o}=this,r=n?o.post:o.rules.find(({type:a})=>a===A);if(r||(r={type:A,rules:[]},o.rules.push(r)),o.keywords[t]=!0,!e)return;let s={keyword:t,definition:Fe(sA({},e),{type:(0,sD.getJSONTypes)(e.type),schemaType:(0,sD.getJSONTypes)(e.schemaType)})};e.before?ckA.call(this,r,s,e.before):r.rules.push(s),o.all[t]=s,(i=e.implements)===null||i===void 0||i.forEach(a=>this.addKeyword(a))}function ckA(t,e,A){let i=t.rules.findIndex(n=>n.keyword===A);i>=0?t.rules.splice(i,0,e):(t.rules.push(e),this.logger.warn(`rule ${A} is not defined`))}function gkA(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=eAA(e)),t.validateSchema=this.compile(e,!0))}var lkA={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function eAA(t){return{anyOf:[t,lkA]}}});var iAA=He(rx=>{"use strict";Object.defineProperty(rx,"__esModule",{value:!0});var IkA={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};rx.default=IkA});var sAA=He(DC=>{"use strict";Object.defineProperty(DC,"__esModule",{value:!0});DC.callRef=DC.getValidate=void 0;var CkA=S4(),nAA=Oc(),xa=Pi(),bE=J0(),oAA=tD(),aD=wn(),dkA={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:A,it:i}=t,{baseId:n,schemaEnv:o,validateName:r,opts:s,self:a}=i,{root:c}=o;if((A==="#"||A==="#/")&&n===c.baseId)return I();let g=oAA.resolveRef.call(a,c,n,A);if(g===void 0)throw new CkA.default(i.opts.uriResolver,n,A);if(g instanceof oAA.SchemaEnv)return C(g);return d(g);function I(){if(o===c)return cD(t,r,o,o.$async);let B=e.scopeValue("root",{ref:c});return cD(t,(0,xa._)`${B}.validate`,c,c.$async)}function C(B){let E=rAA(t,B);cD(t,E,B,B.$async)}function d(B){let E=e.scopeValue("schema",s.code.source===!0?{ref:B,code:(0,xa.stringify)(B)}:{ref:B}),u=e.name("valid"),h=t.subschema({schema:B,dataTypes:[],schemaPath:xa.nil,topSchemaRef:E,errSchemaPath:A},u);t.mergeEvaluated(h),t.ok(u)}}};function rAA(t,e){let{gen:A}=t;return e.validate?A.scopeValue("validate",{ref:e.validate}):(0,xa._)`${A.scopeValue("wrapper",{ref:e})}.validate`}DC.getValidate=rAA;function cD(t,e,A,i){let{gen:n,it:o}=t,{allErrors:r,schemaEnv:s,opts:a}=o,c=a.passContext?bE.default.this:xa.nil;i?g():I();function g(){if(!s.$async)throw new Error("async schema referenced by sync schema");let B=n.let("valid");n.try(()=>{n.code((0,xa._)`await ${(0,nAA.callValidateCode)(t,e,c)}`),d(e),r||n.assign(B,!0)},E=>{n.if((0,xa._)`!(${E} instanceof ${o.ValidationError})`,()=>n.throw(E)),C(E),r||n.assign(B,!1)}),t.ok(B)}function I(){t.result((0,nAA.callValidateCode)(t,e,c),()=>d(e),()=>C(e))}function C(B){let E=(0,xa._)`${B}.errors`;n.assign(bE.default.vErrors,(0,xa._)`${bE.default.vErrors} === null ? ${E} : ${bE.default.vErrors}.concat(${E})`),n.assign(bE.default.errors,(0,xa._)`${bE.default.vErrors}.length`)}function d(B){var E;if(!o.opts.unevaluated)return;let u=(E=A?.validate)===null||E===void 0?void 0:E.evaluated;if(o.props!==!0)if(u&&!u.dynamicProps)u.props!==void 0&&(o.props=aD.mergeEvaluated.props(n,u.props,o.props));else{let h=n.var("props",(0,xa._)`${B}.evaluated.props`);o.props=aD.mergeEvaluated.props(n,h,o.props,xa.Name)}if(o.items!==!0)if(u&&!u.dynamicItems)u.items!==void 0&&(o.items=aD.mergeEvaluated.items(n,u.items,o.items));else{let h=n.var("items",(0,xa._)`${B}.evaluated.items`);o.items=aD.mergeEvaluated.items(n,h,o.items,xa.Name)}}}DC.callRef=cD;DC.default=dkA});var aAA=He(sx=>{"use strict";Object.defineProperty(sx,"__esModule",{value:!0});var BkA=iAA(),EkA=sAA(),QkA=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",BkA.default,EkA.default];sx.default=QkA});var cAA=He(ax=>{"use strict";Object.defineProperty(ax,"__esModule",{value:!0});var gD=Pi(),b1=gD.operators,lD={maximum:{okStr:"<=",ok:b1.LTE,fail:b1.GT},minimum:{okStr:">=",ok:b1.GTE,fail:b1.LT},exclusiveMaximum:{okStr:"<",ok:b1.LT,fail:b1.GTE},exclusiveMinimum:{okStr:">",ok:b1.GT,fail:b1.LTE}},ukA={message:({keyword:t,schemaCode:e})=>(0,gD.str)`must be ${lD[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,gD._)`{comparison: ${lD[t].okStr}, limit: ${e}}`},hkA={keyword:Object.keys(lD),type:"number",schemaType:"number",$data:!0,error:ukA,code(t){let{keyword:e,data:A,schemaCode:i}=t;t.fail$data((0,gD._)`${A} ${lD[e].fail} ${i} || isNaN(${A})`)}};ax.default=hkA});var gAA=He(cx=>{"use strict";Object.defineProperty(cx,"__esModule",{value:!0});var F4=Pi(),fkA={message:({schemaCode:t})=>(0,F4.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,F4._)`{multipleOf: ${t}}`},mkA={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:fkA,code(t){let{gen:e,data:A,schemaCode:i,it:n}=t,o=n.opts.multipleOfPrecision,r=e.let("res"),s=o?(0,F4._)`Math.abs(Math.round(${r}) - ${r}) > 1e-${o}`:(0,F4._)`${r} !== parseInt(${r})`;t.fail$data((0,F4._)`(${i} === 0 || (${r} = ${A}/${i}, ${s}))`)}};cx.default=mkA});var IAA=He(gx=>{"use strict";Object.defineProperty(gx,"__esModule",{value:!0});function lAA(t){let e=t.length,A=0,i=0,n;for(;i=55296&&n<=56319&&i{"use strict";Object.defineProperty(lx,"__esModule",{value:!0});var wC=Pi(),pkA=wn(),DkA=IAA(),wkA={message({keyword:t,schemaCode:e}){let A=t==="maxLength"?"more":"fewer";return(0,wC.str)`must NOT have ${A} than ${e} characters`},params:({schemaCode:t})=>(0,wC._)`{limit: ${t}}`},ykA={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:wkA,code(t){let{keyword:e,data:A,schemaCode:i,it:n}=t,o=e==="maxLength"?wC.operators.GT:wC.operators.LT,r=n.opts.unicode===!1?(0,wC._)`${A}.length`:(0,wC._)`${(0,pkA.useFunc)(t.gen,DkA.default)}(${A})`;t.fail$data((0,wC._)`${r} ${o} ${i}`)}};lx.default=ykA});var dAA=He(Ix=>{"use strict";Object.defineProperty(Ix,"__esModule",{value:!0});var vkA=Oc(),ID=Pi(),MkA={message:({schemaCode:t})=>(0,ID.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,ID._)`{pattern: ${t}}`},bkA={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:MkA,code(t){let{data:e,$data:A,schema:i,schemaCode:n,it:o}=t,r=o.opts.unicodeRegExp?"u":"",s=A?(0,ID._)`(new RegExp(${n}, ${r}))`:(0,vkA.usePattern)(t,i);t.fail$data((0,ID._)`!${s}.test(${e})`)}};Ix.default=bkA});var BAA=He(Cx=>{"use strict";Object.defineProperty(Cx,"__esModule",{value:!0});var _4=Pi(),kkA={message({keyword:t,schemaCode:e}){let A=t==="maxProperties"?"more":"fewer";return(0,_4.str)`must NOT have ${A} than ${e} properties`},params:({schemaCode:t})=>(0,_4._)`{limit: ${t}}`},SkA={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:kkA,code(t){let{keyword:e,data:A,schemaCode:i}=t,n=e==="maxProperties"?_4.operators.GT:_4.operators.LT;t.fail$data((0,_4._)`Object.keys(${A}).length ${n} ${i}`)}};Cx.default=SkA});var EAA=He(dx=>{"use strict";Object.defineProperty(dx,"__esModule",{value:!0});var G4=Oc(),K4=Pi(),RkA=wn(),LkA={message:({params:{missingProperty:t}})=>(0,K4.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,K4._)`{missingProperty: ${t}}`},xkA={keyword:"required",type:"object",schemaType:"array",$data:!0,error:LkA,code(t){let{gen:e,schema:A,schemaCode:i,data:n,$data:o,it:r}=t,{opts:s}=r;if(!o&&A.length===0)return;let a=A.length>=s.loopRequired;if(r.allErrors?c():g(),s.strictRequired){let d=t.parentSchema.properties,{definedProperties:B}=t.it;for(let E of A)if(d?.[E]===void 0&&!B.has(E)){let u=r.schemaEnv.baseId+r.errSchemaPath,h=`required property "${E}" is not defined at "${u}" (strictRequired)`;(0,RkA.checkStrictMode)(r,h,r.opts.strictRequired)}}function c(){if(a||o)t.block$data(K4.nil,I);else for(let d of A)(0,G4.checkReportMissingProp)(t,d)}function g(){let d=e.let("missing");if(a||o){let B=e.let("valid",!0);t.block$data(B,()=>C(d,B)),t.ok(B)}else e.if((0,G4.checkMissingProp)(t,A,d)),(0,G4.reportMissingProp)(t,d),e.else()}function I(){e.forOf("prop",i,d=>{t.setParams({missingProperty:d}),e.if((0,G4.noPropertyInData)(e,n,d,s.ownProperties),()=>t.error())})}function C(d,B){t.setParams({missingProperty:d}),e.forOf(d,i,()=>{e.assign(B,(0,G4.propertyInData)(e,n,d,s.ownProperties)),e.if((0,K4.not)(B),()=>{t.error(),e.break()})},K4.nil)}}};dx.default=xkA});var QAA=He(Bx=>{"use strict";Object.defineProperty(Bx,"__esModule",{value:!0});var U4=Pi(),NkA={message({keyword:t,schemaCode:e}){let A=t==="maxItems"?"more":"fewer";return(0,U4.str)`must NOT have ${A} than ${e} items`},params:({schemaCode:t})=>(0,U4._)`{limit: ${t}}`},FkA={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:NkA,code(t){let{keyword:e,data:A,schemaCode:i}=t,n=e==="maxItems"?U4.operators.GT:U4.operators.LT;t.fail$data((0,U4._)`${A}.length ${n} ${i}`)}};Bx.default=FkA});var CD=He(Ex=>{"use strict";Object.defineProperty(Ex,"__esModule",{value:!0});var uAA=JL();uAA.code='require("ajv/dist/runtime/equal").default';Ex.default=uAA});var hAA=He(ux=>{"use strict";Object.defineProperty(ux,"__esModule",{value:!0});var Qx=y4(),Qs=Pi(),_kA=wn(),GkA=CD(),KkA={message:({params:{i:t,j:e}})=>(0,Qs.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,Qs._)`{i: ${t}, j: ${e}}`},UkA={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:KkA,code(t){let{gen:e,data:A,$data:i,schema:n,parentSchema:o,schemaCode:r,it:s}=t;if(!i&&!n)return;let a=e.let("valid"),c=o.items?(0,Qx.getSchemaTypes)(o.items):[];t.block$data(a,g,(0,Qs._)`${r} === false`),t.ok(a);function g(){let B=e.let("i",(0,Qs._)`${A}.length`),E=e.let("j");t.setParams({i:B,j:E}),e.assign(a,!0),e.if((0,Qs._)`${B} > 1`,()=>(I()?C:d)(B,E))}function I(){return c.length>0&&!c.some(B=>B==="object"||B==="array")}function C(B,E){let u=e.name("item"),h=(0,Qx.checkDataTypes)(c,u,s.opts.strictNumbers,Qx.DataType.Wrong),w=e.const("indices",(0,Qs._)`{}`);e.for((0,Qs._)`;${B}--;`,()=>{e.let(u,(0,Qs._)`${A}[${B}]`),e.if(h,(0,Qs._)`continue`),c.length>1&&e.if((0,Qs._)`typeof ${u} == "string"`,(0,Qs._)`${u} += "_"`),e.if((0,Qs._)`typeof ${w}[${u}] == "number"`,()=>{e.assign(E,(0,Qs._)`${w}[${u}]`),t.error(),e.assign(a,!1).break()}).code((0,Qs._)`${w}[${u}] = ${B}`)})}function d(B,E){let u=(0,_kA.useFunc)(e,GkA.default),h=e.name("outer");e.label(h).for((0,Qs._)`;${B}--;`,()=>e.for((0,Qs._)`${E} = ${B}; ${E}--;`,()=>e.if((0,Qs._)`${u}(${A}[${B}], ${A}[${E}])`,()=>{t.error(),e.assign(a,!1).break(h)})))}}};ux.default=UkA});var fAA=He(fx=>{"use strict";Object.defineProperty(fx,"__esModule",{value:!0});var hx=Pi(),JkA=wn(),YkA=CD(),TkA={message:"must be equal to constant",params:({schemaCode:t})=>(0,hx._)`{allowedValue: ${t}}`},HkA={keyword:"const",$data:!0,error:TkA,code(t){let{gen:e,data:A,$data:i,schemaCode:n,schema:o}=t;i||o&&typeof o=="object"?t.fail$data((0,hx._)`!${(0,JkA.useFunc)(e,YkA.default)}(${A}, ${n})`):t.fail((0,hx._)`${o} !== ${A}`)}};fx.default=HkA});var mAA=He(mx=>{"use strict";Object.defineProperty(mx,"__esModule",{value:!0});var J4=Pi(),OkA=wn(),zkA=CD(),PkA={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,J4._)`{allowedValues: ${t}}`},jkA={keyword:"enum",schemaType:"array",$data:!0,error:PkA,code(t){let{gen:e,data:A,$data:i,schema:n,schemaCode:o,it:r}=t;if(!i&&n.length===0)throw new Error("enum must have non-empty array");let s=n.length>=r.opts.loopEnum,a,c=()=>a??(a=(0,OkA.useFunc)(e,zkA.default)),g;if(s||i)g=e.let("valid"),t.block$data(g,I);else{if(!Array.isArray(n))throw new Error("ajv implementation error");let d=e.const("vSchema",o);g=(0,J4.or)(...n.map((B,E)=>C(d,E)))}t.pass(g);function I(){e.assign(g,!1),e.forOf("v",o,d=>e.if((0,J4._)`${c()}(${A}, ${d})`,()=>e.assign(g,!0).break()))}function C(d,B){let E=n[B];return typeof E=="object"&&E!==null?(0,J4._)`${c()}(${A}, ${d}[${B}])`:(0,J4._)`${A} === ${E}`}}};mx.default=jkA});var pAA=He(px=>{"use strict";Object.defineProperty(px,"__esModule",{value:!0});var qkA=cAA(),VkA=gAA(),ZkA=CAA(),WkA=dAA(),XkA=BAA(),$kA=EAA(),ASA=QAA(),eSA=hAA(),tSA=fAA(),iSA=mAA(),nSA=[qkA.default,VkA.default,ZkA.default,WkA.default,XkA.default,$kA.default,ASA.default,eSA.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},tSA.default,iSA.default];px.default=nSA});var wx=He(Y4=>{"use strict";Object.defineProperty(Y4,"__esModule",{value:!0});Y4.validateAdditionalItems=void 0;var yC=Pi(),Dx=wn(),oSA={message:({params:{len:t}})=>(0,yC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,yC._)`{limit: ${t}}`},rSA={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:oSA,code(t){let{parentSchema:e,it:A}=t,{items:i}=e;if(!Array.isArray(i)){(0,Dx.checkStrictMode)(A,'"additionalItems" is ignored when "items" is not an array of schemas');return}DAA(t,i)}};function DAA(t,e){let{gen:A,schema:i,data:n,keyword:o,it:r}=t;r.items=!0;let s=A.const("len",(0,yC._)`${n}.length`);if(i===!1)t.setParams({len:e.length}),t.pass((0,yC._)`${s} <= ${e.length}`);else if(typeof i=="object"&&!(0,Dx.alwaysValidSchema)(r,i)){let c=A.var("valid",(0,yC._)`${s} <= ${e.length}`);A.if((0,yC.not)(c),()=>a(c)),t.ok(c)}function a(c){A.forRange("i",e.length,s,g=>{t.subschema({keyword:o,dataProp:g,dataPropType:Dx.Type.Num},c),r.allErrors||A.if((0,yC.not)(c),()=>A.break())})}}Y4.validateAdditionalItems=DAA;Y4.default=rSA});var yx=He(T4=>{"use strict";Object.defineProperty(T4,"__esModule",{value:!0});T4.validateTuple=void 0;var wAA=Pi(),dD=wn(),sSA=Oc(),aSA={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:A}=t;if(Array.isArray(e))return yAA(t,"additionalItems",e);A.items=!0,!(0,dD.alwaysValidSchema)(A,e)&&t.ok((0,sSA.validateArray)(t))}};function yAA(t,e,A=t.schema){let{gen:i,parentSchema:n,data:o,keyword:r,it:s}=t;g(n),s.opts.unevaluated&&A.length&&s.items!==!0&&(s.items=dD.mergeEvaluated.items(i,A.length,s.items));let a=i.name("valid"),c=i.const("len",(0,wAA._)`${o}.length`);A.forEach((I,C)=>{(0,dD.alwaysValidSchema)(s,I)||(i.if((0,wAA._)`${c} > ${C}`,()=>t.subschema({keyword:r,schemaProp:C,dataProp:C},a)),t.ok(a))});function g(I){let{opts:C,errSchemaPath:d}=s,B=A.length,E=B===I.minItems&&(B===I.maxItems||I[e]===!1);if(C.strictTuples&&!E){let u=`"${r}" is ${B}-tuple, but minItems or maxItems/${e} are not specified or different at path "${d}"`;(0,dD.checkStrictMode)(s,u,C.strictTuples)}}}T4.validateTuple=yAA;T4.default=aSA});var vAA=He(vx=>{"use strict";Object.defineProperty(vx,"__esModule",{value:!0});var cSA=yx(),gSA={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,cSA.validateTuple)(t,"items")};vx.default=gSA});var bAA=He(Mx=>{"use strict";Object.defineProperty(Mx,"__esModule",{value:!0});var MAA=Pi(),lSA=wn(),ISA=Oc(),CSA=wx(),dSA={message:({params:{len:t}})=>(0,MAA.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,MAA._)`{limit: ${t}}`},BSA={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:dSA,code(t){let{schema:e,parentSchema:A,it:i}=t,{prefixItems:n}=A;i.items=!0,!(0,lSA.alwaysValidSchema)(i,e)&&(n?(0,CSA.validateAdditionalItems)(t,n):t.ok((0,ISA.validateArray)(t)))}};Mx.default=BSA});var kAA=He(bx=>{"use strict";Object.defineProperty(bx,"__esModule",{value:!0});var Pc=Pi(),BD=wn(),ESA={message:({params:{min:t,max:e}})=>e===void 0?(0,Pc.str)`must contain at least ${t} valid item(s)`:(0,Pc.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,Pc._)`{minContains: ${t}}`:(0,Pc._)`{minContains: ${t}, maxContains: ${e}}`},QSA={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:ESA,code(t){let{gen:e,schema:A,parentSchema:i,data:n,it:o}=t,r,s,{minContains:a,maxContains:c}=i;o.opts.next?(r=a===void 0?1:a,s=c):r=1;let g=e.const("len",(0,Pc._)`${n}.length`);if(t.setParams({min:r,max:s}),s===void 0&&r===0){(0,BD.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&r>s){(0,BD.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,BD.alwaysValidSchema)(o,A)){let E=(0,Pc._)`${g} >= ${r}`;s!==void 0&&(E=(0,Pc._)`${E} && ${g} <= ${s}`),t.pass(E);return}o.items=!0;let I=e.name("valid");s===void 0&&r===1?d(I,()=>e.if(I,()=>e.break())):r===0?(e.let(I,!0),s!==void 0&&e.if((0,Pc._)`${n}.length > 0`,C)):(e.let(I,!1),C()),t.result(I,()=>t.reset());function C(){let E=e.name("_valid"),u=e.let("count",0);d(E,()=>e.if(E,()=>B(u)))}function d(E,u){e.forRange("i",0,g,h=>{t.subschema({keyword:"contains",dataProp:h,dataPropType:BD.Type.Num,compositeRule:!0},E),u()})}function B(E){e.code((0,Pc._)`${E}++`),s===void 0?e.if((0,Pc._)`${E} >= ${r}`,()=>e.assign(I,!0).break()):(e.if((0,Pc._)`${E} > ${s}`,()=>e.assign(I,!1).break()),r===1?e.assign(I,!0):e.if((0,Pc._)`${E} >= ${r}`,()=>e.assign(I,!0)))}}};bx.default=QSA});var LAA=He(Kl=>{"use strict";Object.defineProperty(Kl,"__esModule",{value:!0});Kl.validateSchemaDeps=Kl.validatePropertyDeps=Kl.error=void 0;var kx=Pi(),uSA=wn(),H4=Oc();Kl.error={message:({params:{property:t,depsCount:e,deps:A}})=>{let i=e===1?"property":"properties";return(0,kx.str)`must have ${i} ${A} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:A,missingProperty:i}})=>(0,kx._)`{property: ${t}, - missingProperty: ${i}, - depsCount: ${e}, - deps: ${A}}`};var hSA={keyword:"dependencies",type:"object",schemaType:"object",error:Kl.error,code(t){let[e,A]=fSA(t);SAA(t,e),RAA(t,A)}};function fSA({schema:t}){let e={},A={};for(let i in t){if(i==="__proto__")continue;let n=Array.isArray(t[i])?e:A;n[i]=t[i]}return[e,A]}function SAA(t,e=t.schema){let{gen:A,data:i,it:n}=t;if(Object.keys(e).length===0)return;let o=A.let("missing");for(let r in e){let s=e[r];if(s.length===0)continue;let a=(0,H4.propertyInData)(A,i,r,n.opts.ownProperties);t.setParams({property:r,depsCount:s.length,deps:s.join(", ")}),n.allErrors?A.if(a,()=>{for(let c of s)(0,H4.checkReportMissingProp)(t,c)}):(A.if((0,kx._)`${a} && (${(0,H4.checkMissingProp)(t,s,o)})`),(0,H4.reportMissingProp)(t,o),A.else())}}Kl.validatePropertyDeps=SAA;function RAA(t,e=t.schema){let{gen:A,data:i,keyword:n,it:o}=t,r=A.name("valid");for(let s in e)(0,uSA.alwaysValidSchema)(o,e[s])||(A.if((0,H4.propertyInData)(A,i,s,o.opts.ownProperties),()=>{let a=t.subschema({keyword:n,schemaProp:s},r);t.mergeValidEvaluated(a,r)},()=>A.var(r,!0)),t.ok(r))}Kl.validateSchemaDeps=RAA;Kl.default=hSA});var NAA=He(Sx=>{"use strict";Object.defineProperty(Sx,"__esModule",{value:!0});var xAA=Pi(),mSA=wn(),pSA={message:"property name must be valid",params:({params:t})=>(0,xAA._)`{propertyName: ${t.propertyName}}`},DSA={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:pSA,code(t){let{gen:e,schema:A,data:i,it:n}=t;if((0,mSA.alwaysValidSchema)(n,A))return;let o=e.name("valid");e.forIn("key",i,r=>{t.setParams({propertyName:r}),t.subschema({keyword:"propertyNames",data:r,dataTypes:["string"],propertyName:r,compositeRule:!0},o),e.if((0,xAA.not)(o),()=>{t.error(!0),n.allErrors||e.break()})}),t.ok(o)}};Sx.default=DSA});var Lx=He(Rx=>{"use strict";Object.defineProperty(Rx,"__esModule",{value:!0});var ED=Oc(),Lg=Pi(),wSA=J0(),QD=wn(),ySA={message:"must NOT have additional properties",params:({params:t})=>(0,Lg._)`{additionalProperty: ${t.additionalProperty}}`},vSA={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:ySA,code(t){let{gen:e,schema:A,parentSchema:i,data:n,errsCount:o,it:r}=t;if(!o)throw new Error("ajv implementation error");let{allErrors:s,opts:a}=r;if(r.props=!0,a.removeAdditional!=="all"&&(0,QD.alwaysValidSchema)(r,A))return;let c=(0,ED.allSchemaProperties)(i.properties),g=(0,ED.allSchemaProperties)(i.patternProperties);I(),t.ok((0,Lg._)`${o} === ${wSA.default.errors}`);function I(){e.forIn("key",n,u=>{!c.length&&!g.length?B(u):e.if(C(u),()=>B(u))})}function C(u){let h;if(c.length>8){let w=(0,QD.schemaRefOrVal)(r,i.properties,"properties");h=(0,ED.isOwnProperty)(e,w,u)}else c.length?h=(0,Lg.or)(...c.map(w=>(0,Lg._)`${u} === ${w}`)):h=Lg.nil;return g.length&&(h=(0,Lg.or)(h,...g.map(w=>(0,Lg._)`${(0,ED.usePattern)(t,w)}.test(${u})`))),(0,Lg.not)(h)}function d(u){e.code((0,Lg._)`delete ${n}[${u}]`)}function B(u){if(a.removeAdditional==="all"||a.removeAdditional&&A===!1){d(u);return}if(A===!1){t.setParams({additionalProperty:u}),t.error(),s||e.break();return}if(typeof A=="object"&&!(0,QD.alwaysValidSchema)(r,A)){let h=e.name("valid");a.removeAdditional==="failing"?(E(u,h,!1),e.if((0,Lg.not)(h),()=>{t.reset(),d(u)})):(E(u,h),s||e.if((0,Lg.not)(h),()=>e.break()))}}function E(u,h,w){let x={keyword:"additionalProperties",dataProp:u,dataPropType:QD.Type.Str};w===!1&&Object.assign(x,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(x,h)}}};Rx.default=vSA});var GAA=He(Nx=>{"use strict";Object.defineProperty(Nx,"__esModule",{value:!0});var MSA=k4(),FAA=Oc(),xx=wn(),_AA=Lx(),bSA={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:A,parentSchema:i,data:n,it:o}=t;o.opts.removeAdditional==="all"&&i.additionalProperties===void 0&&_AA.default.code(new MSA.KeywordCxt(o,_AA.default,"additionalProperties"));let r=(0,FAA.allSchemaProperties)(A);for(let I of r)o.definedProperties.add(I);o.opts.unevaluated&&r.length&&o.props!==!0&&(o.props=xx.mergeEvaluated.props(e,(0,xx.toHash)(r),o.props));let s=r.filter(I=>!(0,xx.alwaysValidSchema)(o,A[I]));if(s.length===0)return;let a=e.name("valid");for(let I of s)c(I)?g(I):(e.if((0,FAA.propertyInData)(e,n,I,o.opts.ownProperties)),g(I),o.allErrors||e.else().var(a,!0),e.endIf()),t.it.definedProperties.add(I),t.ok(a);function c(I){return o.opts.useDefaults&&!o.compositeRule&&A[I].default!==void 0}function g(I){t.subschema({keyword:"properties",schemaProp:I,dataProp:I},a)}}};Nx.default=bSA});var YAA=He(Fx=>{"use strict";Object.defineProperty(Fx,"__esModule",{value:!0});var KAA=Oc(),uD=Pi(),UAA=wn(),JAA=wn(),kSA={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:A,data:i,parentSchema:n,it:o}=t,{opts:r}=o,s=(0,KAA.allSchemaProperties)(A),a=s.filter(E=>(0,UAA.alwaysValidSchema)(o,A[E]));if(s.length===0||a.length===s.length&&(!o.opts.unevaluated||o.props===!0))return;let c=r.strictSchema&&!r.allowMatchingProperties&&n.properties,g=e.name("valid");o.props!==!0&&!(o.props instanceof uD.Name)&&(o.props=(0,JAA.evaluatedPropsToName)(e,o.props));let{props:I}=o;C();function C(){for(let E of s)c&&d(E),o.allErrors?B(E):(e.var(g,!0),B(E),e.if(g))}function d(E){for(let u in c)new RegExp(E).test(u)&&(0,UAA.checkStrictMode)(o,`property ${u} matches pattern ${E} (use allowMatchingProperties)`)}function B(E){e.forIn("key",i,u=>{e.if((0,uD._)`${(0,KAA.usePattern)(t,E)}.test(${u})`,()=>{let h=a.includes(E);h||t.subschema({keyword:"patternProperties",schemaProp:E,dataProp:u,dataPropType:JAA.Type.Str},g),o.opts.unevaluated&&I!==!0?e.assign((0,uD._)`${I}[${u}]`,!0):!h&&!o.allErrors&&e.if((0,uD.not)(g),()=>e.break())})})}}};Fx.default=kSA});var TAA=He(_x=>{"use strict";Object.defineProperty(_x,"__esModule",{value:!0});var SSA=wn(),RSA={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:A,it:i}=t;if((0,SSA.alwaysValidSchema)(i,A)){t.fail();return}let n=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},n),t.failResult(n,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};_x.default=RSA});var HAA=He(Gx=>{"use strict";Object.defineProperty(Gx,"__esModule",{value:!0});var LSA=Oc(),xSA={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:LSA.validateUnion,error:{message:"must match a schema in anyOf"}};Gx.default=xSA});var OAA=He(Kx=>{"use strict";Object.defineProperty(Kx,"__esModule",{value:!0});var hD=Pi(),NSA=wn(),FSA={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,hD._)`{passingSchemas: ${t.passing}}`},_SA={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:FSA,code(t){let{gen:e,schema:A,parentSchema:i,it:n}=t;if(!Array.isArray(A))throw new Error("ajv implementation error");if(n.opts.discriminator&&i.discriminator)return;let o=A,r=e.let("valid",!1),s=e.let("passing",null),a=e.name("_valid");t.setParams({passing:s}),e.block(c),t.result(r,()=>t.reset(),()=>t.error(!0));function c(){o.forEach((g,I)=>{let C;(0,NSA.alwaysValidSchema)(n,g)?e.var(a,!0):C=t.subschema({keyword:"oneOf",schemaProp:I,compositeRule:!0},a),I>0&&e.if((0,hD._)`${a} && ${r}`).assign(r,!1).assign(s,(0,hD._)`[${s}, ${I}]`).else(),e.if(a,()=>{e.assign(r,!0),e.assign(s,I),C&&t.mergeEvaluated(C,hD.Name)})})}}};Kx.default=_SA});var zAA=He(Ux=>{"use strict";Object.defineProperty(Ux,"__esModule",{value:!0});var GSA=wn(),KSA={keyword:"allOf",schemaType:"array",code(t){let{gen:e,schema:A,it:i}=t;if(!Array.isArray(A))throw new Error("ajv implementation error");let n=e.name("valid");A.forEach((o,r)=>{if((0,GSA.alwaysValidSchema)(i,o))return;let s=t.subschema({keyword:"allOf",schemaProp:r},n);t.ok(n),t.mergeEvaluated(s)})}};Ux.default=KSA});var qAA=He(Jx=>{"use strict";Object.defineProperty(Jx,"__esModule",{value:!0});var fD=Pi(),jAA=wn(),USA={message:({params:t})=>(0,fD.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,fD._)`{failingKeyword: ${t.ifClause}}`},JSA={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:USA,code(t){let{gen:e,parentSchema:A,it:i}=t;A.then===void 0&&A.else===void 0&&(0,jAA.checkStrictMode)(i,'"if" without "then" and "else" is ignored');let n=PAA(i,"then"),o=PAA(i,"else");if(!n&&!o)return;let r=e.let("valid",!0),s=e.name("_valid");if(a(),t.reset(),n&&o){let g=e.let("ifClause");t.setParams({ifClause:g}),e.if(s,c("then",g),c("else",g))}else n?e.if(s,c("then")):e.if((0,fD.not)(s),c("else"));t.pass(r,()=>t.error(!0));function a(){let g=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);t.mergeEvaluated(g)}function c(g,I){return()=>{let C=t.subschema({keyword:g},s);e.assign(r,s),t.mergeValidEvaluated(C,r),I?e.assign(I,(0,fD._)`${g}`):t.setParams({ifClause:g})}}}};function PAA(t,e){let A=t.schema[e];return A!==void 0&&!(0,jAA.alwaysValidSchema)(t,A)}Jx.default=JSA});var VAA=He(Yx=>{"use strict";Object.defineProperty(Yx,"__esModule",{value:!0});var YSA=wn(),TSA={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:A}){e.if===void 0&&(0,YSA.checkStrictMode)(A,`"${t}" without "if" is ignored`)}};Yx.default=TSA});var ZAA=He(Tx=>{"use strict";Object.defineProperty(Tx,"__esModule",{value:!0});var HSA=wx(),OSA=vAA(),zSA=yx(),PSA=bAA(),jSA=kAA(),qSA=LAA(),VSA=NAA(),ZSA=Lx(),WSA=GAA(),XSA=YAA(),$SA=TAA(),ARA=HAA(),eRA=OAA(),tRA=zAA(),iRA=qAA(),nRA=VAA();function oRA(t=!1){let e=[$SA.default,ARA.default,eRA.default,tRA.default,iRA.default,nRA.default,VSA.default,ZSA.default,qSA.default,WSA.default,XSA.default];return t?e.push(OSA.default,PSA.default):e.push(HSA.default,zSA.default),e.push(jSA.default),e}Tx.default=oRA});var WAA=He(Hx=>{"use strict";Object.defineProperty(Hx,"__esModule",{value:!0});var pr=Pi(),rRA={message:({schemaCode:t})=>(0,pr.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,pr._)`{format: ${t}}`},sRA={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:rRA,code(t,e){let{gen:A,data:i,$data:n,schema:o,schemaCode:r,it:s}=t,{opts:a,errSchemaPath:c,schemaEnv:g,self:I}=s;if(!a.validateFormats)return;n?C():d();function C(){let B=A.scopeValue("formats",{ref:I.formats,code:a.code.formats}),E=A.const("fDef",(0,pr._)`${B}[${r}]`),u=A.let("fType"),h=A.let("format");A.if((0,pr._)`typeof ${E} == "object" && !(${E} instanceof RegExp)`,()=>A.assign(u,(0,pr._)`${E}.type || "string"`).assign(h,(0,pr._)`${E}.validate`),()=>A.assign(u,(0,pr._)`"string"`).assign(h,E)),t.fail$data((0,pr.or)(w(),x()));function w(){return a.strictSchema===!1?pr.nil:(0,pr._)`${r} && !${h}`}function x(){let R=g.$async?(0,pr._)`(${E}.async ? await ${h}(${i}) : ${h}(${i}))`:(0,pr._)`${h}(${i})`,D=(0,pr._)`(typeof ${h} == "function" ? ${R} : ${h}.test(${i}))`;return(0,pr._)`${h} && ${h} !== true && ${u} === ${e} && !${D}`}}function d(){let B=I.formats[o];if(!B){w();return}if(B===!0)return;let[E,u,h]=x(B);E===e&&t.pass(R());function w(){if(a.strictSchema===!1){I.logger.warn(D());return}throw new Error(D());function D(){return`unknown format "${o}" ignored in schema at path "${c}"`}}function x(D){let G=D instanceof RegExp?(0,pr.regexpCode)(D):a.code.formats?(0,pr._)`${a.code.formats}${(0,pr.getProperty)(o)}`:void 0,J=A.scopeValue("formats",{key:o,ref:D,code:G});return typeof D=="object"&&!(D instanceof RegExp)?[D.type||"string",D.validate,(0,pr._)`${J}.validate`]:["string",D,J]}function R(){if(typeof B=="object"&&!(B instanceof RegExp)&&B.async){if(!g.$async)throw new Error("async format in sync schema");return(0,pr._)`await ${h}(${i})`}return typeof u=="function"?(0,pr._)`${h}(${i})`:(0,pr._)`${h}.test(${i})`}}}};Hx.default=sRA});var XAA=He(Ox=>{"use strict";Object.defineProperty(Ox,"__esModule",{value:!0});var aRA=WAA(),cRA=[aRA.default];Ox.default=cRA});var $AA=He(kE=>{"use strict";Object.defineProperty(kE,"__esModule",{value:!0});kE.contentVocabulary=kE.metadataVocabulary=void 0;kE.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];kE.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var eeA=He(zx=>{"use strict";Object.defineProperty(zx,"__esModule",{value:!0});var gRA=aAA(),lRA=pAA(),IRA=ZAA(),CRA=XAA(),AeA=$AA(),dRA=[gRA.default,lRA.default,(0,IRA.default)(),CRA.default,AeA.metadataVocabulary,AeA.contentVocabulary];zx.default=dRA});var ieA=He(mD=>{"use strict";Object.defineProperty(mD,"__esModule",{value:!0});mD.DiscrError=void 0;var teA=function(t){return t.Tag="tag",t.Mapping="mapping",t}(teA||(mD.DiscrError=teA={}))});var oeA=He(jx=>{"use strict";Object.defineProperty(jx,"__esModule",{value:!0});var SE=Pi(),Px=ieA(),neA=tD(),BRA=S4(),ERA=wn(),QRA={message:({params:{discrError:t,tagName:e}})=>t===Px.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:A}})=>(0,SE._)`{error: ${t}, tag: ${A}, tagValue: ${e}}`},uRA={keyword:"discriminator",type:"object",schemaType:"object",error:QRA,code(t){let{gen:e,data:A,schema:i,parentSchema:n,it:o}=t,{oneOf:r}=n;if(!o.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=i.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(i.mapping)throw new Error("discriminator: mapping is not supported");if(!r)throw new Error("discriminator: requires oneOf keyword");let a=e.let("valid",!1),c=e.const("tag",(0,SE._)`${A}${(0,SE.getProperty)(s)}`);e.if((0,SE._)`typeof ${c} == "string"`,()=>g(),()=>t.error(!1,{discrError:Px.DiscrError.Tag,tag:c,tagName:s})),t.ok(a);function g(){let d=C();e.if(!1);for(let B in d)e.elseIf((0,SE._)`${c} === ${B}`),e.assign(a,I(d[B]));e.else(),t.error(!1,{discrError:Px.DiscrError.Mapping,tag:c,tagName:s}),e.endIf()}function I(d){let B=e.name("valid"),E=t.subschema({keyword:"oneOf",schemaProp:d},B);return t.mergeEvaluated(E,SE.Name),B}function C(){var d;let B={},E=h(n),u=!0;for(let R=0;R{hRA.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var aeA=He((Oo,qx)=>{"use strict";Object.defineProperty(Oo,"__esModule",{value:!0});Oo.MissingRefError=Oo.ValidationError=Oo.CodeGen=Oo.Name=Oo.nil=Oo.stringify=Oo.str=Oo._=Oo.KeywordCxt=Oo.Ajv=void 0;var fRA=tAA(),mRA=eeA(),pRA=oeA(),seA=reA(),DRA=["/properties"],pD="http://json-schema.org/draft-07/schema",RE=class extends fRA.default{_addVocabularies(){super._addVocabularies(),mRA.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(pRA.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(seA,DRA):seA;this.addMetaSchema(e,pD,!1),this.refs["http://json-schema.org/schema"]=pD}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(pD)?pD:void 0)}};Oo.Ajv=RE;qx.exports=Oo=RE;qx.exports.Ajv=RE;Object.defineProperty(Oo,"__esModule",{value:!0});Oo.default=RE;var wRA=k4();Object.defineProperty(Oo,"KeywordCxt",{enumerable:!0,get:function(){return wRA.KeywordCxt}});var LE=Pi();Object.defineProperty(Oo,"_",{enumerable:!0,get:function(){return LE._}});Object.defineProperty(Oo,"str",{enumerable:!0,get:function(){return LE.str}});Object.defineProperty(Oo,"stringify",{enumerable:!0,get:function(){return LE.stringify}});Object.defineProperty(Oo,"nil",{enumerable:!0,get:function(){return LE.nil}});Object.defineProperty(Oo,"Name",{enumerable:!0,get:function(){return LE.Name}});Object.defineProperty(Oo,"CodeGen",{enumerable:!0,get:function(){return LE.CodeGen}});var yRA=AD();Object.defineProperty(Oo,"ValidationError",{enumerable:!0,get:function(){return yRA.default}});var vRA=S4();Object.defineProperty(Oo,"MissingRefError",{enumerable:!0,get:function(){return vRA.default}})});var ceA=He(DD=>{"use strict";(function(t){"use strict";function e(L){return L!==null?Object.prototype.toString.call(L)==="[object Array]":!1}function A(L){return L!==null?Object.prototype.toString.call(L)==="[object Object]":!1}function i(L,T){if(L===T)return!0;var P=Object.prototype.toString.call(L);if(P!==Object.prototype.toString.call(T))return!1;if(e(L)===!0){if(L.length!==T.length)return!1;for(var X=0;X",9:"Array"},x="EOF",R="UnquotedIdentifier",D="QuotedIdentifier",G="Rbracket",J="Rparen",z="Comma",K="Colon",O="Rbrace",V="Number",j="Current",dA="Expref",fA="Pipe",EA="Or",IA="And",SA="EQ",nA="GT",lA="LT",wA="GTE",VA="LTE",ie="NE",UA="Flatten",BA="Star",JA="Filter",Xe="Dot",We="Not",KA="Lbrace",tA="Lbracket",OA="Lparen",gA="Literal",zA={".":Xe,"*":BA,",":z,":":K,"{":KA,"}":O,"]":G,"(":OA,")":J,"@":j},xA={"<":!0,">":!0,"=":!0,"!":!0},Me={" ":!0," ":!0,"\n":!0};function LA(L){return L>="a"&&L<="z"||L>="A"&&L<="Z"||L==="_"}function cA(L){return L>="0"&&L<="9"||L==="-"}function Gt(L){return L>="a"&&L<="z"||L>="A"&&L<="Z"||L>="0"&&L<="9"||L==="_"}function ct(){}ct.prototype={tokenize:function(L){var T=[];this._current=0;for(var P,X,kA;this._current")return L[this._current]==="="?(this._current++,{type:wA,value:">=",start:T}):{type:nA,value:">",start:T};if(P==="="&&L[this._current]==="=")return this._current++,{type:SA,value:"==",start:T}},_consumeLiteral:function(L){this._current++;for(var T=this._current,P=L.length,X;L[this._current]!=="`"&&this._current=0)return!0;if(P.indexOf(L)>=0)return!0;if(X.indexOf(L[0])>=0)try{return JSON.parse(L),!0}catch{return!1}else return!1}};var oe={};oe[x]=0,oe[R]=0,oe[D]=0,oe[G]=0,oe[J]=0,oe[z]=0,oe[O]=0,oe[V]=0,oe[j]=0,oe[dA]=0,oe[fA]=1,oe[EA]=2,oe[IA]=3,oe[SA]=5,oe[nA]=5,oe[lA]=5,oe[wA]=5,oe[VA]=5,oe[ie]=5,oe[UA]=9,oe[BA]=20,oe[JA]=21,oe[Xe]=40,oe[We]=45,oe[KA]=50,oe[tA]=55,oe[OA]=60;function Dt(){}Dt.prototype={parse:function(L){this._loadTokens(L),this.index=0;var T=this.expression(0);if(this._lookahead(0)!==x){var P=this._lookaheadToken(0),X=new Error("Unexpected token type: "+P.type+", value: "+P.value);throw X.name="ParserError",X}return T},_loadTokens:function(L){var T=new ct,P=T.tokenize(L);P.push({type:x,value:"",start:L.length}),this.tokens=P},expression:function(L){var T=this._lookaheadToken(0);this._advance();for(var P=this.nud(T),X=this._lookahead(0);L=0)return this.expression(L);if(T===tA)return this._match(tA),this._parseMultiselectList();if(T===KA)return this._match(KA),this._parseMultiselectHash()},_parseProjectionRHS:function(L){var T;if(oe[this._lookahead(0)]<10)T={type:"Identity"};else if(this._lookahead(0)===tA)T=this.expression(L);else if(this._lookahead(0)===JA)T=this.expression(L);else if(this._lookahead(0)===Xe)this._match(Xe),T=this._parseDotRHS(L);else{var P=this._lookaheadToken(0),X=new Error("Sytanx error, unexpected token: "+P.value+"("+P.type+")");throw X.name="ParserError",X}return T},_parseMultiselectList:function(){for(var L=[];this._lookahead(0)!==G;){var T=this.expression(0);if(L.push(T),this._lookahead(0)===z&&(this._match(z),this._lookahead(0)===G))throw new Error("Unexpected token Rbracket")}return this._match(G),{type:"MultiSelectList",children:L}},_parseMultiselectHash:function(){for(var L=[],T=[R,D],P,X,kA,le;;){if(P=this._lookaheadToken(0),T.indexOf(P.type)<0)throw new Error("Expecting an identifier token, got: "+P.type);if(X=P.value,this._advance(),this._match(K),kA=this.expression(0),le={type:"KeyValuePair",name:X,value:kA},L.push(le),this._lookahead(0)===z)this._match(z);else if(this._lookahead(0)===O){this._match(O);break}}return{type:"MultiSelectHash",children:L}}};function _e(L){this.runtime=L}_e.prototype={search:function(L,T){return this.visit(L,T)},visit:function(L,T){var P,X,kA,le,Ee,FA,MA,dt,$e,XA;switch(L.type){case"Field":return T!==null&&A(T)?(FA=T[L.name],FA===void 0?null:FA):null;case"Subexpression":for(kA=this.visit(L.children[0],T),XA=1;XA0)for(XA=Oi;XALe;XA+=zi)kA.push(T[XA]);return kA;case"Projection":var fi=this.visit(L.children[0],T);if(!e(fi))return null;for($e=[],XA=0;XAEe;break;case wA:kA=le>=Ee;break;case lA:kA=le=L&&(T=P<0?L-1:L),T}};function Re(L){this._interpreter=L,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[a]}]},avg:{_func:this._functionAvg,_signature:[{types:[u]}]},ceil:{_func:this._functionCeil,_signature:[{types:[a]}]},contains:{_func:this._functionContains,_signature:[{types:[g,I]},{types:[c]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[g]},{types:[g]}]},floor:{_func:this._functionFloor,_signature:[{types:[a]}]},length:{_func:this._functionLength,_signature:[{types:[g,I,C]}]},map:{_func:this._functionMap,_signature:[{types:[B]},{types:[I]}]},max:{_func:this._functionMax,_signature:[{types:[u,h]}]},merge:{_func:this._functionMerge,_signature:[{types:[C],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[I]},{types:[B]}]},sum:{_func:this._functionSum,_signature:[{types:[u]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[g]},{types:[g]}]},min:{_func:this._functionMin,_signature:[{types:[u,h]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[I]},{types:[B]}]},type:{_func:this._functionType,_signature:[{types:[c]}]},keys:{_func:this._functionKeys,_signature:[{types:[C]}]},values:{_func:this._functionValues,_signature:[{types:[C]}]},sort:{_func:this._functionSort,_signature:[{types:[h,u]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[I]},{types:[B]}]},join:{_func:this._functionJoin,_signature:[{types:[g]},{types:[h]}]},reverse:{_func:this._functionReverse,_signature:[{types:[g,I]}]},to_array:{_func:this._functionToArray,_signature:[{types:[c]}]},to_string:{_func:this._functionToString,_signature:[{types:[c]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[c]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[c],variadic:!0}]}}}Re.prototype={callFunction:function(L,T){var P=this.functionTable[L];if(P===void 0)throw new Error("Unknown function: "+L+"()");return this._validateArgs(L,T,P._signature),P._func.call(this,T)},_validateArgs:function(L,T,P){var X;if(P[P.length-1].variadic){if(T.length=0;kA--)X+=P[kA];return X}else{var le=L[0].slice(0);return le.reverse(),le}},_functionAbs:function(L){return Math.abs(L[0])},_functionCeil:function(L){return Math.ceil(L[0])},_functionAvg:function(L){for(var T=0,P=L[0],X=0;X=0},_functionFloor:function(L){return Math.floor(L[0])},_functionLength:function(L){return A(L[0])?Object.keys(L[0]).length:L[0].length},_functionMap:function(L){for(var T=[],P=this._interpreter,X=L[0],kA=L[1],le=0;le0){var T=this._getTypeName(L[0][0]);if(T===a)return Math.max.apply(Math,L[0]);for(var P=L[0],X=P[0],kA=1;kA0){var T=this._getTypeName(L[0][0]);if(T===a)return Math.min.apply(Math,L[0]);for(var P=L[0],X=P[0],kA=1;kAot?1:XAkA&&(kA=Ee,le=P[FA]);return le},_functionMinBy:function(L){for(var T=L[1],P=L[0],X=this.createKeyFunction(T,[a,g]),kA=1/0,le,Ee,FA=0;FA"u"?DD.jmespath={}:DD)});var NgA=He((sLe,xgA)=>{"use strict";xgA.exports=[{value:"#B0171F",name:"indian red"},{value:"#DC143C",css:!0,name:"crimson"},{value:"#FFB6C1",css:!0,name:"lightpink"},{value:"#FFAEB9",name:"lightpink 1"},{value:"#EEA2AD",name:"lightpink 2"},{value:"#CD8C95",name:"lightpink 3"},{value:"#8B5F65",name:"lightpink 4"},{value:"#FFC0CB",css:!0,name:"pink"},{value:"#FFB5C5",name:"pink 1"},{value:"#EEA9B8",name:"pink 2"},{value:"#CD919E",name:"pink 3"},{value:"#8B636C",name:"pink 4"},{value:"#DB7093",css:!0,name:"palevioletred"},{value:"#FF82AB",name:"palevioletred 1"},{value:"#EE799F",name:"palevioletred 2"},{value:"#CD6889",name:"palevioletred 3"},{value:"#8B475D",name:"palevioletred 4"},{value:"#FFF0F5",name:"lavenderblush 1"},{value:"#FFF0F5",css:!0,name:"lavenderblush"},{value:"#EEE0E5",name:"lavenderblush 2"},{value:"#CDC1C5",name:"lavenderblush 3"},{value:"#8B8386",name:"lavenderblush 4"},{value:"#FF3E96",name:"violetred 1"},{value:"#EE3A8C",name:"violetred 2"},{value:"#CD3278",name:"violetred 3"},{value:"#8B2252",name:"violetred 4"},{value:"#FF69B4",css:!0,name:"hotpink"},{value:"#FF6EB4",name:"hotpink 1"},{value:"#EE6AA7",name:"hotpink 2"},{value:"#CD6090",name:"hotpink 3"},{value:"#8B3A62",name:"hotpink 4"},{value:"#872657",name:"raspberry"},{value:"#FF1493",name:"deeppink 1"},{value:"#FF1493",css:!0,name:"deeppink"},{value:"#EE1289",name:"deeppink 2"},{value:"#CD1076",name:"deeppink 3"},{value:"#8B0A50",name:"deeppink 4"},{value:"#FF34B3",name:"maroon 1"},{value:"#EE30A7",name:"maroon 2"},{value:"#CD2990",name:"maroon 3"},{value:"#8B1C62",name:"maroon 4"},{value:"#C71585",css:!0,name:"mediumvioletred"},{value:"#D02090",name:"violetred"},{value:"#DA70D6",css:!0,name:"orchid"},{value:"#FF83FA",name:"orchid 1"},{value:"#EE7AE9",name:"orchid 2"},{value:"#CD69C9",name:"orchid 3"},{value:"#8B4789",name:"orchid 4"},{value:"#D8BFD8",css:!0,name:"thistle"},{value:"#FFE1FF",name:"thistle 1"},{value:"#EED2EE",name:"thistle 2"},{value:"#CDB5CD",name:"thistle 3"},{value:"#8B7B8B",name:"thistle 4"},{value:"#FFBBFF",name:"plum 1"},{value:"#EEAEEE",name:"plum 2"},{value:"#CD96CD",name:"plum 3"},{value:"#8B668B",name:"plum 4"},{value:"#DDA0DD",css:!0,name:"plum"},{value:"#EE82EE",css:!0,name:"violet"},{value:"#FF00FF",vga:!0,name:"magenta"},{value:"#FF00FF",vga:!0,css:!0,name:"fuchsia"},{value:"#EE00EE",name:"magenta 2"},{value:"#CD00CD",name:"magenta 3"},{value:"#8B008B",name:"magenta 4"},{value:"#8B008B",css:!0,name:"darkmagenta"},{value:"#800080",vga:!0,css:!0,name:"purple"},{value:"#BA55D3",css:!0,name:"mediumorchid"},{value:"#E066FF",name:"mediumorchid 1"},{value:"#D15FEE",name:"mediumorchid 2"},{value:"#B452CD",name:"mediumorchid 3"},{value:"#7A378B",name:"mediumorchid 4"},{value:"#9400D3",css:!0,name:"darkviolet"},{value:"#9932CC",css:!0,name:"darkorchid"},{value:"#BF3EFF",name:"darkorchid 1"},{value:"#B23AEE",name:"darkorchid 2"},{value:"#9A32CD",name:"darkorchid 3"},{value:"#68228B",name:"darkorchid 4"},{value:"#4B0082",css:!0,name:"indigo"},{value:"#8A2BE2",css:!0,name:"blueviolet"},{value:"#9B30FF",name:"purple 1"},{value:"#912CEE",name:"purple 2"},{value:"#7D26CD",name:"purple 3"},{value:"#551A8B",name:"purple 4"},{value:"#9370DB",css:!0,name:"mediumpurple"},{value:"#AB82FF",name:"mediumpurple 1"},{value:"#9F79EE",name:"mediumpurple 2"},{value:"#8968CD",name:"mediumpurple 3"},{value:"#5D478B",name:"mediumpurple 4"},{value:"#483D8B",css:!0,name:"darkslateblue"},{value:"#8470FF",name:"lightslateblue"},{value:"#7B68EE",css:!0,name:"mediumslateblue"},{value:"#6A5ACD",css:!0,name:"slateblue"},{value:"#836FFF",name:"slateblue 1"},{value:"#7A67EE",name:"slateblue 2"},{value:"#6959CD",name:"slateblue 3"},{value:"#473C8B",name:"slateblue 4"},{value:"#F8F8FF",css:!0,name:"ghostwhite"},{value:"#E6E6FA",css:!0,name:"lavender"},{value:"#0000FF",vga:!0,css:!0,name:"blue"},{value:"#0000EE",name:"blue 2"},{value:"#0000CD",name:"blue 3"},{value:"#0000CD",css:!0,name:"mediumblue"},{value:"#00008B",name:"blue 4"},{value:"#00008B",css:!0,name:"darkblue"},{value:"#000080",vga:!0,css:!0,name:"navy"},{value:"#191970",css:!0,name:"midnightblue"},{value:"#3D59AB",name:"cobalt"},{value:"#4169E1",css:!0,name:"royalblue"},{value:"#4876FF",name:"royalblue 1"},{value:"#436EEE",name:"royalblue 2"},{value:"#3A5FCD",name:"royalblue 3"},{value:"#27408B",name:"royalblue 4"},{value:"#6495ED",css:!0,name:"cornflowerblue"},{value:"#B0C4DE",css:!0,name:"lightsteelblue"},{value:"#CAE1FF",name:"lightsteelblue 1"},{value:"#BCD2EE",name:"lightsteelblue 2"},{value:"#A2B5CD",name:"lightsteelblue 3"},{value:"#6E7B8B",name:"lightsteelblue 4"},{value:"#778899",css:!0,name:"lightslategray"},{value:"#708090",css:!0,name:"slategray"},{value:"#C6E2FF",name:"slategray 1"},{value:"#B9D3EE",name:"slategray 2"},{value:"#9FB6CD",name:"slategray 3"},{value:"#6C7B8B",name:"slategray 4"},{value:"#1E90FF",name:"dodgerblue 1"},{value:"#1E90FF",css:!0,name:"dodgerblue"},{value:"#1C86EE",name:"dodgerblue 2"},{value:"#1874CD",name:"dodgerblue 3"},{value:"#104E8B",name:"dodgerblue 4"},{value:"#F0F8FF",css:!0,name:"aliceblue"},{value:"#4682B4",css:!0,name:"steelblue"},{value:"#63B8FF",name:"steelblue 1"},{value:"#5CACEE",name:"steelblue 2"},{value:"#4F94CD",name:"steelblue 3"},{value:"#36648B",name:"steelblue 4"},{value:"#87CEFA",css:!0,name:"lightskyblue"},{value:"#B0E2FF",name:"lightskyblue 1"},{value:"#A4D3EE",name:"lightskyblue 2"},{value:"#8DB6CD",name:"lightskyblue 3"},{value:"#607B8B",name:"lightskyblue 4"},{value:"#87CEFF",name:"skyblue 1"},{value:"#7EC0EE",name:"skyblue 2"},{value:"#6CA6CD",name:"skyblue 3"},{value:"#4A708B",name:"skyblue 4"},{value:"#87CEEB",css:!0,name:"skyblue"},{value:"#00BFFF",name:"deepskyblue 1"},{value:"#00BFFF",css:!0,name:"deepskyblue"},{value:"#00B2EE",name:"deepskyblue 2"},{value:"#009ACD",name:"deepskyblue 3"},{value:"#00688B",name:"deepskyblue 4"},{value:"#33A1C9",name:"peacock"},{value:"#ADD8E6",css:!0,name:"lightblue"},{value:"#BFEFFF",name:"lightblue 1"},{value:"#B2DFEE",name:"lightblue 2"},{value:"#9AC0CD",name:"lightblue 3"},{value:"#68838B",name:"lightblue 4"},{value:"#B0E0E6",css:!0,name:"powderblue"},{value:"#98F5FF",name:"cadetblue 1"},{value:"#8EE5EE",name:"cadetblue 2"},{value:"#7AC5CD",name:"cadetblue 3"},{value:"#53868B",name:"cadetblue 4"},{value:"#00F5FF",name:"turquoise 1"},{value:"#00E5EE",name:"turquoise 2"},{value:"#00C5CD",name:"turquoise 3"},{value:"#00868B",name:"turquoise 4"},{value:"#5F9EA0",css:!0,name:"cadetblue"},{value:"#00CED1",css:!0,name:"darkturquoise"},{value:"#F0FFFF",name:"azure 1"},{value:"#F0FFFF",css:!0,name:"azure"},{value:"#E0EEEE",name:"azure 2"},{value:"#C1CDCD",name:"azure 3"},{value:"#838B8B",name:"azure 4"},{value:"#E0FFFF",name:"lightcyan 1"},{value:"#E0FFFF",css:!0,name:"lightcyan"},{value:"#D1EEEE",name:"lightcyan 2"},{value:"#B4CDCD",name:"lightcyan 3"},{value:"#7A8B8B",name:"lightcyan 4"},{value:"#BBFFFF",name:"paleturquoise 1"},{value:"#AEEEEE",name:"paleturquoise 2"},{value:"#AEEEEE",css:!0,name:"paleturquoise"},{value:"#96CDCD",name:"paleturquoise 3"},{value:"#668B8B",name:"paleturquoise 4"},{value:"#2F4F4F",css:!0,name:"darkslategray"},{value:"#97FFFF",name:"darkslategray 1"},{value:"#8DEEEE",name:"darkslategray 2"},{value:"#79CDCD",name:"darkslategray 3"},{value:"#528B8B",name:"darkslategray 4"},{value:"#00FFFF",name:"cyan"},{value:"#00FFFF",css:!0,name:"aqua"},{value:"#00EEEE",name:"cyan 2"},{value:"#00CDCD",name:"cyan 3"},{value:"#008B8B",name:"cyan 4"},{value:"#008B8B",css:!0,name:"darkcyan"},{value:"#008080",vga:!0,css:!0,name:"teal"},{value:"#48D1CC",css:!0,name:"mediumturquoise"},{value:"#20B2AA",css:!0,name:"lightseagreen"},{value:"#03A89E",name:"manganeseblue"},{value:"#40E0D0",css:!0,name:"turquoise"},{value:"#808A87",name:"coldgrey"},{value:"#00C78C",name:"turquoiseblue"},{value:"#7FFFD4",name:"aquamarine 1"},{value:"#7FFFD4",css:!0,name:"aquamarine"},{value:"#76EEC6",name:"aquamarine 2"},{value:"#66CDAA",name:"aquamarine 3"},{value:"#66CDAA",css:!0,name:"mediumaquamarine"},{value:"#458B74",name:"aquamarine 4"},{value:"#00FA9A",css:!0,name:"mediumspringgreen"},{value:"#F5FFFA",css:!0,name:"mintcream"},{value:"#00FF7F",css:!0,name:"springgreen"},{value:"#00EE76",name:"springgreen 1"},{value:"#00CD66",name:"springgreen 2"},{value:"#008B45",name:"springgreen 3"},{value:"#3CB371",css:!0,name:"mediumseagreen"},{value:"#54FF9F",name:"seagreen 1"},{value:"#4EEE94",name:"seagreen 2"},{value:"#43CD80",name:"seagreen 3"},{value:"#2E8B57",name:"seagreen 4"},{value:"#2E8B57",css:!0,name:"seagreen"},{value:"#00C957",name:"emeraldgreen"},{value:"#BDFCC9",name:"mint"},{value:"#3D9140",name:"cobaltgreen"},{value:"#F0FFF0",name:"honeydew 1"},{value:"#F0FFF0",css:!0,name:"honeydew"},{value:"#E0EEE0",name:"honeydew 2"},{value:"#C1CDC1",name:"honeydew 3"},{value:"#838B83",name:"honeydew 4"},{value:"#8FBC8F",css:!0,name:"darkseagreen"},{value:"#C1FFC1",name:"darkseagreen 1"},{value:"#B4EEB4",name:"darkseagreen 2"},{value:"#9BCD9B",name:"darkseagreen 3"},{value:"#698B69",name:"darkseagreen 4"},{value:"#98FB98",css:!0,name:"palegreen"},{value:"#9AFF9A",name:"palegreen 1"},{value:"#90EE90",name:"palegreen 2"},{value:"#90EE90",css:!0,name:"lightgreen"},{value:"#7CCD7C",name:"palegreen 3"},{value:"#548B54",name:"palegreen 4"},{value:"#32CD32",css:!0,name:"limegreen"},{value:"#228B22",css:!0,name:"forestgreen"},{value:"#00FF00",vga:!0,name:"green 1"},{value:"#00FF00",vga:!0,css:!0,name:"lime"},{value:"#00EE00",name:"green 2"},{value:"#00CD00",name:"green 3"},{value:"#008B00",name:"green 4"},{value:"#008000",vga:!0,css:!0,name:"green"},{value:"#006400",css:!0,name:"darkgreen"},{value:"#308014",name:"sapgreen"},{value:"#7CFC00",css:!0,name:"lawngreen"},{value:"#7FFF00",name:"chartreuse 1"},{value:"#7FFF00",css:!0,name:"chartreuse"},{value:"#76EE00",name:"chartreuse 2"},{value:"#66CD00",name:"chartreuse 3"},{value:"#458B00",name:"chartreuse 4"},{value:"#ADFF2F",css:!0,name:"greenyellow"},{value:"#CAFF70",name:"darkolivegreen 1"},{value:"#BCEE68",name:"darkolivegreen 2"},{value:"#A2CD5A",name:"darkolivegreen 3"},{value:"#6E8B3D",name:"darkolivegreen 4"},{value:"#556B2F",css:!0,name:"darkolivegreen"},{value:"#6B8E23",css:!0,name:"olivedrab"},{value:"#C0FF3E",name:"olivedrab 1"},{value:"#B3EE3A",name:"olivedrab 2"},{value:"#9ACD32",name:"olivedrab 3"},{value:"#9ACD32",css:!0,name:"yellowgreen"},{value:"#698B22",name:"olivedrab 4"},{value:"#FFFFF0",name:"ivory 1"},{value:"#FFFFF0",css:!0,name:"ivory"},{value:"#EEEEE0",name:"ivory 2"},{value:"#CDCDC1",name:"ivory 3"},{value:"#8B8B83",name:"ivory 4"},{value:"#F5F5DC",css:!0,name:"beige"},{value:"#FFFFE0",name:"lightyellow 1"},{value:"#FFFFE0",css:!0,name:"lightyellow"},{value:"#EEEED1",name:"lightyellow 2"},{value:"#CDCDB4",name:"lightyellow 3"},{value:"#8B8B7A",name:"lightyellow 4"},{value:"#FAFAD2",css:!0,name:"lightgoldenrodyellow"},{value:"#FFFF00",vga:!0,name:"yellow 1"},{value:"#FFFF00",vga:!0,css:!0,name:"yellow"},{value:"#EEEE00",name:"yellow 2"},{value:"#CDCD00",name:"yellow 3"},{value:"#8B8B00",name:"yellow 4"},{value:"#808069",name:"warmgrey"},{value:"#808000",vga:!0,css:!0,name:"olive"},{value:"#BDB76B",css:!0,name:"darkkhaki"},{value:"#FFF68F",name:"khaki 1"},{value:"#EEE685",name:"khaki 2"},{value:"#CDC673",name:"khaki 3"},{value:"#8B864E",name:"khaki 4"},{value:"#F0E68C",css:!0,name:"khaki"},{value:"#EEE8AA",css:!0,name:"palegoldenrod"},{value:"#FFFACD",name:"lemonchiffon 1"},{value:"#FFFACD",css:!0,name:"lemonchiffon"},{value:"#EEE9BF",name:"lemonchiffon 2"},{value:"#CDC9A5",name:"lemonchiffon 3"},{value:"#8B8970",name:"lemonchiffon 4"},{value:"#FFEC8B",name:"lightgoldenrod 1"},{value:"#EEDC82",name:"lightgoldenrod 2"},{value:"#CDBE70",name:"lightgoldenrod 3"},{value:"#8B814C",name:"lightgoldenrod 4"},{value:"#E3CF57",name:"banana"},{value:"#FFD700",name:"gold 1"},{value:"#FFD700",css:!0,name:"gold"},{value:"#EEC900",name:"gold 2"},{value:"#CDAD00",name:"gold 3"},{value:"#8B7500",name:"gold 4"},{value:"#FFF8DC",name:"cornsilk 1"},{value:"#FFF8DC",css:!0,name:"cornsilk"},{value:"#EEE8CD",name:"cornsilk 2"},{value:"#CDC8B1",name:"cornsilk 3"},{value:"#8B8878",name:"cornsilk 4"},{value:"#DAA520",css:!0,name:"goldenrod"},{value:"#FFC125",name:"goldenrod 1"},{value:"#EEB422",name:"goldenrod 2"},{value:"#CD9B1D",name:"goldenrod 3"},{value:"#8B6914",name:"goldenrod 4"},{value:"#B8860B",css:!0,name:"darkgoldenrod"},{value:"#FFB90F",name:"darkgoldenrod 1"},{value:"#EEAD0E",name:"darkgoldenrod 2"},{value:"#CD950C",name:"darkgoldenrod 3"},{value:"#8B6508",name:"darkgoldenrod 4"},{value:"#FFA500",name:"orange 1"},{value:"#FF8000",css:!0,name:"orange"},{value:"#EE9A00",name:"orange 2"},{value:"#CD8500",name:"orange 3"},{value:"#8B5A00",name:"orange 4"},{value:"#FFFAF0",css:!0,name:"floralwhite"},{value:"#FDF5E6",css:!0,name:"oldlace"},{value:"#F5DEB3",css:!0,name:"wheat"},{value:"#FFE7BA",name:"wheat 1"},{value:"#EED8AE",name:"wheat 2"},{value:"#CDBA96",name:"wheat 3"},{value:"#8B7E66",name:"wheat 4"},{value:"#FFE4B5",css:!0,name:"moccasin"},{value:"#FFEFD5",css:!0,name:"papayawhip"},{value:"#FFEBCD",css:!0,name:"blanchedalmond"},{value:"#FFDEAD",name:"navajowhite 1"},{value:"#FFDEAD",css:!0,name:"navajowhite"},{value:"#EECFA1",name:"navajowhite 2"},{value:"#CDB38B",name:"navajowhite 3"},{value:"#8B795E",name:"navajowhite 4"},{value:"#FCE6C9",name:"eggshell"},{value:"#D2B48C",css:!0,name:"tan"},{value:"#9C661F",name:"brick"},{value:"#FF9912",name:"cadmiumyellow"},{value:"#FAEBD7",css:!0,name:"antiquewhite"},{value:"#FFEFDB",name:"antiquewhite 1"},{value:"#EEDFCC",name:"antiquewhite 2"},{value:"#CDC0B0",name:"antiquewhite 3"},{value:"#8B8378",name:"antiquewhite 4"},{value:"#DEB887",css:!0,name:"burlywood"},{value:"#FFD39B",name:"burlywood 1"},{value:"#EEC591",name:"burlywood 2"},{value:"#CDAA7D",name:"burlywood 3"},{value:"#8B7355",name:"burlywood 4"},{value:"#FFE4C4",name:"bisque 1"},{value:"#FFE4C4",css:!0,name:"bisque"},{value:"#EED5B7",name:"bisque 2"},{value:"#CDB79E",name:"bisque 3"},{value:"#8B7D6B",name:"bisque 4"},{value:"#E3A869",name:"melon"},{value:"#ED9121",name:"carrot"},{value:"#FF8C00",css:!0,name:"darkorange"},{value:"#FF7F00",name:"darkorange 1"},{value:"#EE7600",name:"darkorange 2"},{value:"#CD6600",name:"darkorange 3"},{value:"#8B4500",name:"darkorange 4"},{value:"#FFA54F",name:"tan 1"},{value:"#EE9A49",name:"tan 2"},{value:"#CD853F",name:"tan 3"},{value:"#CD853F",css:!0,name:"peru"},{value:"#8B5A2B",name:"tan 4"},{value:"#FAF0E6",css:!0,name:"linen"},{value:"#FFDAB9",name:"peachpuff 1"},{value:"#FFDAB9",css:!0,name:"peachpuff"},{value:"#EECBAD",name:"peachpuff 2"},{value:"#CDAF95",name:"peachpuff 3"},{value:"#8B7765",name:"peachpuff 4"},{value:"#FFF5EE",name:"seashell 1"},{value:"#FFF5EE",css:!0,name:"seashell"},{value:"#EEE5DE",name:"seashell 2"},{value:"#CDC5BF",name:"seashell 3"},{value:"#8B8682",name:"seashell 4"},{value:"#F4A460",css:!0,name:"sandybrown"},{value:"#C76114",name:"rawsienna"},{value:"#D2691E",css:!0,name:"chocolate"},{value:"#FF7F24",name:"chocolate 1"},{value:"#EE7621",name:"chocolate 2"},{value:"#CD661D",name:"chocolate 3"},{value:"#8B4513",name:"chocolate 4"},{value:"#8B4513",css:!0,name:"saddlebrown"},{value:"#292421",name:"ivoryblack"},{value:"#FF7D40",name:"flesh"},{value:"#FF6103",name:"cadmiumorange"},{value:"#8A360F",name:"burntsienna"},{value:"#A0522D",css:!0,name:"sienna"},{value:"#FF8247",name:"sienna 1"},{value:"#EE7942",name:"sienna 2"},{value:"#CD6839",name:"sienna 3"},{value:"#8B4726",name:"sienna 4"},{value:"#FFA07A",name:"lightsalmon 1"},{value:"#FFA07A",css:!0,name:"lightsalmon"},{value:"#EE9572",name:"lightsalmon 2"},{value:"#CD8162",name:"lightsalmon 3"},{value:"#8B5742",name:"lightsalmon 4"},{value:"#FF7F50",css:!0,name:"coral"},{value:"#FF4500",name:"orangered 1"},{value:"#FF4500",css:!0,name:"orangered"},{value:"#EE4000",name:"orangered 2"},{value:"#CD3700",name:"orangered 3"},{value:"#8B2500",name:"orangered 4"},{value:"#5E2612",name:"sepia"},{value:"#E9967A",css:!0,name:"darksalmon"},{value:"#FF8C69",name:"salmon 1"},{value:"#EE8262",name:"salmon 2"},{value:"#CD7054",name:"salmon 3"},{value:"#8B4C39",name:"salmon 4"},{value:"#FF7256",name:"coral 1"},{value:"#EE6A50",name:"coral 2"},{value:"#CD5B45",name:"coral 3"},{value:"#8B3E2F",name:"coral 4"},{value:"#8A3324",name:"burntumber"},{value:"#FF6347",name:"tomato 1"},{value:"#FF6347",css:!0,name:"tomato"},{value:"#EE5C42",name:"tomato 2"},{value:"#CD4F39",name:"tomato 3"},{value:"#8B3626",name:"tomato 4"},{value:"#FA8072",css:!0,name:"salmon"},{value:"#FFE4E1",name:"mistyrose 1"},{value:"#FFE4E1",css:!0,name:"mistyrose"},{value:"#EED5D2",name:"mistyrose 2"},{value:"#CDB7B5",name:"mistyrose 3"},{value:"#8B7D7B",name:"mistyrose 4"},{value:"#FFFAFA",name:"snow 1"},{value:"#FFFAFA",css:!0,name:"snow"},{value:"#EEE9E9",name:"snow 2"},{value:"#CDC9C9",name:"snow 3"},{value:"#8B8989",name:"snow 4"},{value:"#BC8F8F",css:!0,name:"rosybrown"},{value:"#FFC1C1",name:"rosybrown 1"},{value:"#EEB4B4",name:"rosybrown 2"},{value:"#CD9B9B",name:"rosybrown 3"},{value:"#8B6969",name:"rosybrown 4"},{value:"#F08080",css:!0,name:"lightcoral"},{value:"#CD5C5C",css:!0,name:"indianred"},{value:"#FF6A6A",name:"indianred 1"},{value:"#EE6363",name:"indianred 2"},{value:"#8B3A3A",name:"indianred 4"},{value:"#CD5555",name:"indianred 3"},{value:"#A52A2A",css:!0,name:"brown"},{value:"#FF4040",name:"brown 1"},{value:"#EE3B3B",name:"brown 2"},{value:"#CD3333",name:"brown 3"},{value:"#8B2323",name:"brown 4"},{value:"#B22222",css:!0,name:"firebrick"},{value:"#FF3030",name:"firebrick 1"},{value:"#EE2C2C",name:"firebrick 2"},{value:"#CD2626",name:"firebrick 3"},{value:"#8B1A1A",name:"firebrick 4"},{value:"#FF0000",vga:!0,name:"red 1"},{value:"#FF0000",vga:!0,css:!0,name:"red"},{value:"#EE0000",name:"red 2"},{value:"#CD0000",name:"red 3"},{value:"#8B0000",name:"red 4"},{value:"#8B0000",css:!0,name:"darkred"},{value:"#800000",vga:!0,css:!0,name:"maroon"},{value:"#8E388E",name:"sgi beet"},{value:"#7171C6",name:"sgi slateblue"},{value:"#7D9EC0",name:"sgi lightblue"},{value:"#388E8E",name:"sgi teal"},{value:"#71C671",name:"sgi chartreuse"},{value:"#8E8E38",name:"sgi olivedrab"},{value:"#C5C1AA",name:"sgi brightgray"},{value:"#C67171",name:"sgi salmon"},{value:"#555555",name:"sgi darkgray"},{value:"#1E1E1E",name:"sgi gray 12"},{value:"#282828",name:"sgi gray 16"},{value:"#515151",name:"sgi gray 32"},{value:"#5B5B5B",name:"sgi gray 36"},{value:"#848484",name:"sgi gray 52"},{value:"#8E8E8E",name:"sgi gray 56"},{value:"#AAAAAA",name:"sgi lightgray"},{value:"#B7B7B7",name:"sgi gray 72"},{value:"#C1C1C1",name:"sgi gray 76"},{value:"#EAEAEA",name:"sgi gray 92"},{value:"#F4F4F4",name:"sgi gray 96"},{value:"#FFFFFF",vga:!0,css:!0,name:"white"},{value:"#F5F5F5",name:"white smoke"},{value:"#F5F5F5",name:"gray 96"},{value:"#DCDCDC",css:!0,name:"gainsboro"},{value:"#D3D3D3",css:!0,name:"lightgrey"},{value:"#C0C0C0",vga:!0,css:!0,name:"silver"},{value:"#A9A9A9",css:!0,name:"darkgray"},{value:"#808080",vga:!0,css:!0,name:"gray"},{value:"#696969",css:!0,name:"dimgray"},{value:"#696969",name:"gray 42"},{value:"#000000",vga:!0,css:!0,name:"black"},{value:"#FCFCFC",name:"gray 99"},{value:"#FAFAFA",name:"gray 98"},{value:"#F7F7F7",name:"gray 97"},{value:"#F2F2F2",name:"gray 95"},{value:"#F0F0F0",name:"gray 94"},{value:"#EDEDED",name:"gray 93"},{value:"#EBEBEB",name:"gray 92"},{value:"#E8E8E8",name:"gray 91"},{value:"#E5E5E5",name:"gray 90"},{value:"#E3E3E3",name:"gray 89"},{value:"#E0E0E0",name:"gray 88"},{value:"#DEDEDE",name:"gray 87"},{value:"#DBDBDB",name:"gray 86"},{value:"#D9D9D9",name:"gray 85"},{value:"#D6D6D6",name:"gray 84"},{value:"#D4D4D4",name:"gray 83"},{value:"#D1D1D1",name:"gray 82"},{value:"#CFCFCF",name:"gray 81"},{value:"#CCCCCC",name:"gray 80"},{value:"#C9C9C9",name:"gray 79"},{value:"#C7C7C7",name:"gray 78"},{value:"#C4C4C4",name:"gray 77"},{value:"#C2C2C2",name:"gray 76"},{value:"#BFBFBF",name:"gray 75"},{value:"#BDBDBD",name:"gray 74"},{value:"#BABABA",name:"gray 73"},{value:"#B8B8B8",name:"gray 72"},{value:"#B5B5B5",name:"gray 71"},{value:"#B3B3B3",name:"gray 70"},{value:"#B0B0B0",name:"gray 69"},{value:"#ADADAD",name:"gray 68"},{value:"#ABABAB",name:"gray 67"},{value:"#A8A8A8",name:"gray 66"},{value:"#A6A6A6",name:"gray 65"},{value:"#A3A3A3",name:"gray 64"},{value:"#A1A1A1",name:"gray 63"},{value:"#9E9E9E",name:"gray 62"},{value:"#9C9C9C",name:"gray 61"},{value:"#999999",name:"gray 60"},{value:"#969696",name:"gray 59"},{value:"#949494",name:"gray 58"},{value:"#919191",name:"gray 57"},{value:"#8F8F8F",name:"gray 56"},{value:"#8C8C8C",name:"gray 55"},{value:"#8A8A8A",name:"gray 54"},{value:"#878787",name:"gray 53"},{value:"#858585",name:"gray 52"},{value:"#828282",name:"gray 51"},{value:"#7F7F7F",name:"gray 50"},{value:"#7D7D7D",name:"gray 49"},{value:"#7A7A7A",name:"gray 48"},{value:"#787878",name:"gray 47"},{value:"#757575",name:"gray 46"},{value:"#737373",name:"gray 45"},{value:"#707070",name:"gray 44"},{value:"#6E6E6E",name:"gray 43"},{value:"#666666",name:"gray 40"},{value:"#636363",name:"gray 39"},{value:"#616161",name:"gray 38"},{value:"#5E5E5E",name:"gray 37"},{value:"#5C5C5C",name:"gray 36"},{value:"#595959",name:"gray 35"},{value:"#575757",name:"gray 34"},{value:"#545454",name:"gray 33"},{value:"#525252",name:"gray 32"},{value:"#4F4F4F",name:"gray 31"},{value:"#4D4D4D",name:"gray 30"},{value:"#4A4A4A",name:"gray 29"},{value:"#474747",name:"gray 28"},{value:"#454545",name:"gray 27"},{value:"#424242",name:"gray 26"},{value:"#404040",name:"gray 25"},{value:"#3D3D3D",name:"gray 24"},{value:"#3B3B3B",name:"gray 23"},{value:"#383838",name:"gray 22"},{value:"#363636",name:"gray 21"},{value:"#333333",name:"gray 20"},{value:"#303030",name:"gray 19"},{value:"#2E2E2E",name:"gray 18"},{value:"#2B2B2B",name:"gray 17"},{value:"#292929",name:"gray 16"},{value:"#262626",name:"gray 15"},{value:"#242424",name:"gray 14"},{value:"#212121",name:"gray 13"},{value:"#1F1F1F",name:"gray 12"},{value:"#1C1C1C",name:"gray 11"},{value:"#1A1A1A",name:"gray 10"},{value:"#171717",name:"gray 9"},{value:"#141414",name:"gray 8"},{value:"#121212",name:"gray 7"},{value:"#0F0F0F",name:"gray 6"},{value:"#0D0D0D",name:"gray 5"},{value:"#0A0A0A",name:"gray 4"},{value:"#080808",name:"gray 3"},{value:"#050505",name:"gray 2"},{value:"#030303",name:"gray 1"},{value:"#F5F5F5",css:!0,name:"whitesmoke"}]});var GgA=He((aLe,dI)=>{"use strict";var dv=NgA(),FgA=dv.filter(function(t){return!!t.css}),_gA=dv.filter(function(t){return!!t.vga});dI.exports=function(t){var e=dI.exports.get(t);return e&&e.value};dI.exports.get=function(t){return t=t||"",t=t.trim().toLowerCase(),dv.filter(function(e){return e.name.toLowerCase()===t}).pop()};dI.exports.all=dI.exports.get.all=function(){return dv};dI.exports.get.css=function(t){return t?(t=t||"",t=t.trim().toLowerCase(),FgA.filter(function(e){return e.name.toLowerCase()===t}).pop()):FgA};dI.exports.get.vga=function(t){return t?(t=t||"",t=t.trim().toLowerCase(),_gA.filter(function(e){return e.name.toLowerCase()===t}).pop()):_gA}});var olA=He((cLe,nlA)=>{"use strict";var YjA=1/0,TjA="[object Symbol]",HjA=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,zgA="\\ud800-\\udfff",OjA="\\u0300-\\u036f\\ufe20-\\ufe23",zjA="\\u20d0-\\u20f0",PgA="\\u2700-\\u27bf",jgA="a-z\\xdf-\\xf6\\xf8-\\xff",PjA="\\xac\\xb1\\xd7\\xf7",jjA="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",qjA="\\u2000-\\u206f",VjA=" \\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",qgA="A-Z\\xc0-\\xd6\\xd8-\\xde",ZjA="\\ufe0e\\ufe0f",VgA=PjA+jjA+qjA+VjA,ZgA="['\u2019]",KgA="["+VgA+"]",WjA="["+OjA+zjA+"]",WgA="\\d+",XjA="["+PgA+"]",XgA="["+jgA+"]",$gA="[^"+zgA+VgA+WgA+PgA+jgA+qgA+"]",$jA="\\ud83c[\\udffb-\\udfff]",AqA="(?:"+WjA+"|"+$jA+")",eqA="[^"+zgA+"]",AlA="(?:\\ud83c[\\udde6-\\uddff]){2}",elA="[\\ud800-\\udbff][\\udc00-\\udfff]",PQ="["+qgA+"]",tqA="\\u200d",UgA="(?:"+XgA+"|"+$gA+")",iqA="(?:"+PQ+"|"+$gA+")",JgA="(?:"+ZgA+"(?:d|ll|m|re|s|t|ve))?",YgA="(?:"+ZgA+"(?:D|LL|M|RE|S|T|VE))?",tlA=AqA+"?",ilA="["+ZjA+"]?",nqA="(?:"+tqA+"(?:"+[eqA,AlA,elA].join("|")+")"+ilA+tlA+")*",oqA=ilA+tlA+nqA,rqA="(?:"+[XjA,AlA,elA].join("|")+")"+oqA,sqA=RegExp([PQ+"?"+XgA+"+"+JgA+"(?="+[KgA,PQ,"$"].join("|")+")",iqA+"+"+YgA+"(?="+[KgA,PQ+UgA,"$"].join("|")+")",PQ+"?"+UgA+"+"+JgA,PQ+"+"+YgA,WgA,rqA].join("|"),"g"),aqA=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,cqA=typeof global=="object"&&global&&global.Object===Object&&global,gqA=typeof self=="object"&&self&&self.Object===Object&&self,lqA=cqA||gqA||Function("return this")();function IqA(t){return t.match(HjA)||[]}function CqA(t){return aqA.test(t)}function dqA(t){return t.match(sqA)||[]}var BqA=Object.prototype,EqA=BqA.toString,TgA=lqA.Symbol,HgA=TgA?TgA.prototype:void 0,OgA=HgA?HgA.toString:void 0;function QqA(t){if(typeof t=="string")return t;if(hqA(t))return OgA?OgA.call(t):"";var e=t+"";return e=="0"&&1/t==-YjA?"-0":e}function uqA(t){return!!t&&typeof t=="object"}function hqA(t){return typeof t=="symbol"||uqA(t)&&EqA.call(t)==TjA}function fqA(t){return t==null?"":QqA(t)}function mqA(t,e,A){return t=fqA(t),e=A?void 0:e,e===void 0?CqA(t)?dqA(t):IqA(t):t.match(e)||[]}nlA.exports=mqA});var mlA=He((gLe,flA)=>{"use strict";var pqA=1/0,DqA="[object Symbol]",wqA=/^\s+/,pU="\\ud800-\\udfff",glA="\\u0300-\\u036f\\ufe20-\\ufe23",llA="\\u20d0-\\u20f0",IlA="\\ufe0e\\ufe0f",yqA="["+pU+"]",fU="["+glA+llA+"]",mU="\\ud83c[\\udffb-\\udfff]",vqA="(?:"+fU+"|"+mU+")",ClA="[^"+pU+"]",dlA="(?:\\ud83c[\\udde6-\\uddff]){2}",BlA="[\\ud800-\\udbff][\\udc00-\\udfff]",ElA="\\u200d",QlA=vqA+"?",ulA="["+IlA+"]?",MqA="(?:"+ElA+"(?:"+[ClA,dlA,BlA].join("|")+")"+ulA+QlA+")*",bqA=ulA+QlA+MqA,kqA="(?:"+[ClA+fU+"?",fU,dlA,BlA,yqA].join("|")+")",SqA=RegExp(mU+"(?="+mU+")|"+kqA+bqA,"g"),RqA=RegExp("["+ElA+pU+glA+llA+IlA+"]"),LqA=typeof global=="object"&&global&&global.Object===Object&&global,xqA=typeof self=="object"&&self&&self.Object===Object&&self,NqA=LqA||xqA||Function("return this")();function FqA(t){return t.split("")}function _qA(t,e,A,i){for(var n=t.length,o=A+(i?1:-1);i?o--:++o-1;);return A}function JqA(t){return RqA.test(t)}function rlA(t){return JqA(t)?YqA(t):FqA(t)}function YqA(t){return t.match(SqA)||[]}var TqA=Object.prototype,HqA=TqA.toString,slA=NqA.Symbol,alA=slA?slA.prototype:void 0,clA=alA?alA.toString:void 0;function OqA(t,e,A){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),A=A>n?n:A,A<0&&(A+=n),n=e>A?0:A-e>>>0,e>>>=0;for(var o=Array(n);++i=i?t:OqA(t,e,A)}function PqA(t){return!!t&&typeof t=="object"}function jqA(t){return typeof t=="symbol"||PqA(t)&&HqA.call(t)==DqA}function qqA(t){return t==null?"":hlA(t)}function VqA(t,e,A){if(t=qqA(t),t&&(A||e===void 0))return t.replace(wqA,"");if(!t||!(e=hlA(e)))return t;var i=rlA(t),n=UqA(i,rlA(e));return zqA(i,n).join("")}flA.exports=VqA});var YlA=He((lLe,JlA)=>{"use strict";var DU=1/0,ZqA=9007199254740991,WqA=17976931348623157e292,plA=NaN,XqA="[object Symbol]",$qA=/^\s+|\s+$/g,AVA=/^[-+]0x[0-9a-f]+$/i,eVA=/^0b[01]+$/i,tVA=/^0o[0-7]+$/i,MU="\\ud800-\\udfff",blA="\\u0300-\\u036f\\ufe20-\\ufe23",klA="\\u20d0-\\u20f0",SlA="\\ufe0e\\ufe0f",iVA="["+MU+"]",wU="["+blA+klA+"]",yU="\\ud83c[\\udffb-\\udfff]",nVA="(?:"+wU+"|"+yU+")",RlA="[^"+MU+"]",LlA="(?:\\ud83c[\\udde6-\\uddff]){2}",xlA="[\\ud800-\\udbff][\\udc00-\\udfff]",NlA="\\u200d",FlA=nVA+"?",_lA="["+SlA+"]?",oVA="(?:"+NlA+"(?:"+[RlA,LlA,xlA].join("|")+")"+_lA+FlA+")*",rVA=_lA+FlA+oVA,sVA="(?:"+[RlA+wU+"?",wU,LlA,xlA,iVA].join("|")+")",vU=RegExp(yU+"(?="+yU+")|"+sVA+rVA,"g"),aVA=RegExp("["+NlA+MU+blA+klA+SlA+"]"),cVA=parseInt,gVA=typeof global=="object"&&global&&global.Object===Object&&global,lVA=typeof self=="object"&&self&&self.Object===Object&&self,IVA=gVA||lVA||Function("return this")(),CVA=BVA("length");function dVA(t){return t.split("")}function BVA(t){return function(e){return e?.[t]}}function bU(t){return aVA.test(t)}function GlA(t){return bU(t)?QVA(t):CVA(t)}function EVA(t){return bU(t)?uVA(t):dVA(t)}function QVA(t){for(var e=vU.lastIndex=0;vU.test(t);)e++;return e}function uVA(t){return t.match(vU)||[]}var hVA=Object.prototype,fVA=hVA.toString,DlA=IVA.Symbol,mVA=Math.ceil,pVA=Math.floor,wlA=DlA?DlA.prototype:void 0,ylA=wlA?wlA.toString:void 0;function vlA(t,e){var A="";if(!t||e<1||e>ZqA)return A;do e%2&&(A+=t),e=pVA(e/2),e&&(t+=t);while(e);return A}function DVA(t,e,A){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),A=A>n?n:A,A<0&&(A+=n),n=e>A?0:A-e>>>0,e>>>=0;for(var o=Array(n);++i=i?t:DVA(t,e,A)}function yVA(t,e){e=e===void 0?" ":KlA(e);var A=e.length;if(A<2)return A?vlA(e,t):e;var i=vlA(e,mVA(t/GlA(e)));return bU(e)?wVA(EVA(i),0,t).join(""):i.slice(0,t)}function MlA(t){var e=typeof t;return!!t&&(e=="object"||e=="function")}function vVA(t){return!!t&&typeof t=="object"}function UlA(t){return typeof t=="symbol"||vVA(t)&&fVA.call(t)==XqA}function MVA(t){if(!t)return t===0?t:0;if(t=kVA(t),t===DU||t===-DU){var e=t<0?-1:1;return e*WqA}return t===t?t:0}function bVA(t){var e=MVA(t),A=e%1;return e===e?A?e-A:e:0}function kVA(t){if(typeof t=="number")return t;if(UlA(t))return plA;if(MlA(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=MlA(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=t.replace($qA,"");var A=eVA.test(t);return A||tVA.test(t)?cVA(t.slice(2),A?2:8):AVA.test(t)?plA:+t}function SVA(t){return t==null?"":KlA(t)}function RVA(t,e,A){t=SVA(t),e=bVA(e);var i=e?GlA(t):0;return e&&i{"use strict";TlA.exports=(t,e,A,i)=>{let n=(t+(i||"")).toString().includes("%");if(typeof t=="string"?[t,e,A,i]=t.match(/(0?\.?\d{1,3})%?\b/g).map(Number):i!==void 0&&(i=parseFloat(i)),typeof t!="number"||typeof e!="number"||typeof A!="number"||t>255||e>255||A>255)throw new TypeError("Expected three numbers below 256");if(typeof i=="number"){if(!n&&i>=0&&i<=1)i=Math.round(255*i);else if(n&&i>=0&&i<=100)i=Math.round(255*i/100);else throw new TypeError(`Expected alpha value (${i}) as a fraction or percentage`);i=(i|256).toString(16).slice(1)}else i="";return(A|e<<8|t<<16|1<<24).toString(16).slice(1)+i}});var zlA=He((CLe,OlA)=>{"use strict";var Lf="a-f\\d",LVA=`#?[${Lf}]{3}[${Lf}]?`,xVA=`#?[${Lf}]{6}([${Lf}]{2})?`,NVA=new RegExp(`[^#${Lf}]`,"gi"),FVA=new RegExp(`^${LVA}$|^${xVA}$`,"i");OlA.exports=(t,e={})=>{if(typeof t!="string"||NVA.test(t)||!FVA.test(t))throw new TypeError("Expected a valid hex string");t=t.replace(/^#/,"");let A=1;t.length===8&&(A=Number.parseInt(t.slice(6,8),16)/255,t=t.slice(0,6)),t.length===4&&(A=Number.parseInt(t.slice(3,4).repeat(2),16)/255,t=t.slice(0,3)),t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let i=Number.parseInt(t,16),n=i>>16,o=i>>8&255,r=i&255,s=typeof e.alpha=="number"?e.alpha:A;if(e.format==="array")return[n,o,r,s];if(e.format==="css"){let a=s===1?"":` / ${Number((s*100).toFixed(2))}%`;return`rgb(${n} ${o} ${r}${a})`}return{red:n,green:o,blue:r,alpha:s}}});var qlA=He((dLe,jlA)=>{"use strict";var _VA=GgA(),GVA=olA(),KVA=mlA(),UVA=YlA(),JVA=HlA(),PlA=zlA(),kU=.75,SU=.25,RU=16777215,YVA=49979693;jlA.exports=function(t){return"#"+OVA(String(JSON.stringify(t)))};function TVA(t){var e=GVA(t),A=[];return e.forEach(function(i){var n=_VA(i);n&&A.push(PlA(KVA(n,"#"),{format:"array"}))}),A}function HVA(t){var e=[0,0,0];return t.forEach(function(A){for(var i=0;i<3;i++)e[i]+=A[i]}),[e[0]/t.length,e[1]/t.length,e[2]/t.length]}function OVA(t){var e,A=TVA(t);A.length>0&&(e=HVA(A));var i=1,n=0,o=1;if(t.length>0)for(var r=0;rn&&(n=t[r].charCodeAt(0)),o=parseInt(RU/n),i=(i+t[r].charCodeAt(0)*o*YVA)%RU;var s=(i*t.length%RU).toString(16);s=UVA(s,6,s);var a=PlA(s,{format:"array"});return e?JVA(SU*a[0]+kU*e[0],SU*a[1]+kU*e[1],SU*a[2]+kU*e[2]):s}});function vv(t,e){return Object.is(t,e)}var _r=null,Ff=!1,Mv=1,aa=Symbol("SIGNAL");function pi(t){let e=_r;return _r=t,e}function bv(){return _r}var Cd={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:"unknown",producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function eu(t){if(Ff)throw new Error("");if(_r===null)return;_r.consumerOnSignalRead(t);let e=_r.nextProducerIndex++;if(Jf(_r),e<_r.producerNode.length&&_r.producerNode[e]!==t&&Au(_r)){let A=_r.producerNode[e];Uf(A,_r.producerIndexOfThis[e])}_r.producerNode[e]!==t&&(_r.producerNode[e]=t,_r.producerIndexOfThis[e]=Au(_r)?_U(t,_r,e):0),_r.producerLastReadVersion[e]=t.version}function FU(){Mv++}function kv(t){if(!(Au(t)&&!t.dirty)&&!(!t.dirty&&t.lastCleanEpoch===Mv)){if(!t.producerMustRecompute(t)&&!Kf(t)){yv(t);return}t.producerRecomputeValue(t),yv(t)}}function Sv(t){if(t.liveConsumerNode===void 0)return;let e=Ff;Ff=!0;try{for(let A of t.liveConsumerNode)A.dirty||i0A(A)}finally{Ff=e}}function Rv(){return _r?.consumerAllowSignalWrites!==!1}function i0A(t){t.dirty=!0,Sv(t),t.consumerMarkedDirty?.(t)}function yv(t){t.dirty=!1,t.lastCleanEpoch=Mv}function tu(t){return t&&(t.nextProducerIndex=0),pi(t)}function Gf(t,e){if(pi(e),!(!t||t.producerNode===void 0||t.producerIndexOfThis===void 0||t.producerLastReadVersion===void 0)){if(Au(t))for(let A=t.nextProducerIndex;At.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function Kf(t){Jf(t);for(let e=0;e0}function Jf(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}function GU(t){t.liveConsumerNode??=[],t.liveConsumerIndexOfThis??=[]}function KU(t){return t.producerNode!==void 0}function Yf(t,e){let A=Object.create(n0A);A.computation=t,e!==void 0&&(A.equal=e);let i=()=>{if(kv(A),eu(A),A.value===_f)throw A.error;return A.value};return i[aa]=A,i}var Dv=Symbol("UNSET"),wv=Symbol("COMPUTING"),_f=Symbol("ERRORED"),n0A=Fe(sA({},Cd),{value:Dv,dirty:!0,error:null,equal:vv,kind:"computed",producerMustRecompute(t){return t.value===Dv||t.value===wv},producerRecomputeValue(t){if(t.value===wv)throw new Error("Detected cycle in computations.");let e=t.value;t.value=wv;let A=tu(t),i,n=!1;try{i=t.computation(),pi(null),n=e!==Dv&&e!==_f&&i!==_f&&t.equal(e,i)}catch(o){i=_f,t.error=o}finally{Gf(t,A)}if(n){t.value=e;return}t.value=i,t.version++}});function o0A(){throw new Error}var UU=o0A;function JU(t){UU(t)}function Lv(t){UU=t}var r0A=null;function xv(t,e){let A=Object.create(Tf);A.value=t,e!==void 0&&(A.equal=e);let i=()=>(eu(A),A.value);return i[aa]=A,i}function nu(t,e){Rv()||JU(t),t.equal(t.value,e)||(t.value=e,s0A(t))}function Nv(t,e){Rv()||JU(t),nu(t,e(t.value))}var Tf=Fe(sA({},Cd),{equal:vv,value:void 0,kind:"signal"});function s0A(t){t.version++,FU(),Sv(t),r0A?.()}function Fv(t){let e=pi(null);try{return t()}finally{pi(e)}}var _v;function ou(){return _v}function I0(t){let e=_v;return _v=t,e}var Hf=Symbol("NotFound");function Vt(t){return typeof t=="function"}function dd(t){let A=t(i=>{Error.call(i),i.stack=new Error().stack});return A.prototype=Object.create(Error.prototype),A.prototype.constructor=A,A}var Of=dd(t=>function(A){t(this),this.message=A?`${A.length} errors occurred during unsubscription: -${A.map((i,n)=>`${n+1}) ${i.toString()}`).join(` - `)}`:"",this.name="UnsubscriptionError",this.errors=A});function QI(t,e){if(t){let A=t.indexOf(e);0<=A&&t.splice(A,1)}}var Kt=class t{constructor(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let e;if(!this.closed){this.closed=!0;let{_parentage:A}=this;if(A)if(this._parentage=null,Array.isArray(A))for(let o of A)o.remove(this);else A.remove(this);let{initialTeardown:i}=this;if(Vt(i))try{i()}catch(o){e=o instanceof Of?o.errors:[o]}let{_finalizers:n}=this;if(n){this._finalizers=null;for(let o of n)try{YU(o)}catch(r){e=e??[],r instanceof Of?e=[...e,...r.errors]:e.push(r)}}if(e)throw new Of(e)}}add(e){var A;if(e&&e!==this)if(this.closed)YU(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(A=this._finalizers)!==null&&A!==void 0?A:[]).push(e)}}_hasParent(e){let{_parentage:A}=this;return A===e||Array.isArray(A)&&A.includes(e)}_addParent(e){let{_parentage:A}=this;this._parentage=Array.isArray(A)?(A.push(e),A):A?[A,e]:e}_removeParent(e){let{_parentage:A}=this;A===e?this._parentage=null:Array.isArray(A)&&QI(A,e)}remove(e){let{_finalizers:A}=this;A&&QI(A,e),e instanceof t&&e._removeParent(this)}};Kt.EMPTY=(()=>{let t=new Kt;return t.closed=!0,t})();var Gv=Kt.EMPTY;function zf(t){return t instanceof Kt||t&&"closed"in t&&Vt(t.remove)&&Vt(t.add)&&Vt(t.unsubscribe)}function YU(t){Vt(t)?t():t.unsubscribe()}var rg={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var Bd={setTimeout(t,e,...A){let{delegate:i}=Bd;return i?.setTimeout?i.setTimeout(t,e,...A):setTimeout(t,e,...A)},clearTimeout(t){let{delegate:e}=Bd;return(e?.clearTimeout||clearTimeout)(t)},delegate:void 0};function Pf(t){Bd.setTimeout(()=>{let{onUnhandledError:e}=rg;if(e)e(t);else throw t})}function ru(){}var TU=Kv("C",void 0,void 0);function HU(t){return Kv("E",void 0,t)}function OU(t){return Kv("N",t,void 0)}function Kv(t,e,A){return{kind:t,value:e,error:A}}var uI=null;function Ed(t){if(rg.useDeprecatedSynchronousErrorHandling){let e=!uI;if(e&&(uI={errorThrown:!1,error:null}),t(),e){let{errorThrown:A,error:i}=uI;if(uI=null,A)throw i}}else t()}function zU(t){rg.useDeprecatedSynchronousErrorHandling&&uI&&(uI.errorThrown=!0,uI.error=t)}var C0=class extends Kt{constructor(e){super(),this.isStopped=!1,e?(this.destination=e,zf(e)&&e.add(this)):this.destination=C0A}static create(e,A,i){return new d0(e,A,i)}next(e){this.isStopped?Jv(OU(e),this):this._next(e)}error(e){this.isStopped?Jv(HU(e),this):(this.isStopped=!0,this._error(e))}complete(){this.isStopped?Jv(TU,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(e){this.destination.next(e)}_error(e){try{this.destination.error(e)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},l0A=Function.prototype.bind;function Uv(t,e){return l0A.call(t,e)}var Yv=class{constructor(e){this.partialObserver=e}next(e){let{partialObserver:A}=this;if(A.next)try{A.next(e)}catch(i){jf(i)}}error(e){let{partialObserver:A}=this;if(A.error)try{A.error(e)}catch(i){jf(i)}else jf(e)}complete(){let{partialObserver:e}=this;if(e.complete)try{e.complete()}catch(A){jf(A)}}},d0=class extends C0{constructor(e,A,i){super();let n;if(Vt(e)||!e)n={next:e??void 0,error:A??void 0,complete:i??void 0};else{let o;this&&rg.useDeprecatedNextContext?(o=Object.create(e),o.unsubscribe=()=>this.unsubscribe(),n={next:e.next&&Uv(e.next,o),error:e.error&&Uv(e.error,o),complete:e.complete&&Uv(e.complete,o)}):n=e}this.destination=new Yv(n)}};function jf(t){rg.useDeprecatedSynchronousErrorHandling?zU(t):Pf(t)}function I0A(t){throw t}function Jv(t,e){let{onStoppedNotification:A}=rg;A&&Bd.setTimeout(()=>A(t,e))}var C0A={closed:!0,next:ru,error:I0A,complete:ru};var Qd=typeof Symbol=="function"&&Symbol.observable||"@@observable";function Os(t){return t}function Tv(...t){return Hv(t)}function Hv(t){return t.length===0?Os:t.length===1?t[0]:function(A){return t.reduce((i,n)=>n(i),A)}}var gt=(()=>{class t{constructor(A){A&&(this._subscribe=A)}lift(A){let i=new t;return i.source=this,i.operator=A,i}subscribe(A,i,n){let o=B0A(A)?A:new d0(A,i,n);return Ed(()=>{let{operator:r,source:s}=this;o.add(r?r.call(o,s):s?this._subscribe(o):this._trySubscribe(o))}),o}_trySubscribe(A){try{return this._subscribe(A)}catch(i){A.error(i)}}forEach(A,i){return i=PU(i),new i((n,o)=>{let r=new d0({next:s=>{try{A(s)}catch(a){o(a),r.unsubscribe()}},error:o,complete:n});this.subscribe(r)})}_subscribe(A){var i;return(i=this.source)===null||i===void 0?void 0:i.subscribe(A)}[Qd](){return this}pipe(...A){return Hv(A)(this)}toPromise(A){return A=PU(A),new A((i,n)=>{let o;this.subscribe(r=>o=r,r=>n(r),()=>i(o))})}}return t.create=e=>new t(e),t})();function PU(t){var e;return(e=t??rg.Promise)!==null&&e!==void 0?e:Promise}function d0A(t){return t&&Vt(t.next)&&Vt(t.error)&&Vt(t.complete)}function B0A(t){return t&&t instanceof C0||d0A(t)&&zf(t)}function Ov(t){return Vt(t?.lift)}function ti(t){return e=>{if(Ov(e))return e.lift(function(A){try{return t(A,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function ei(t,e,A,i,n){return new zv(t,e,A,i,n)}var zv=class extends C0{constructor(e,A,i,n,o,r){super(e),this.onFinalize=o,this.shouldUnsubscribe=r,this._next=A?function(s){try{A(s)}catch(a){e.error(a)}}:super._next,this._error=n?function(s){try{n(s)}catch(a){e.error(a)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(s){e.error(s)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var e;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){let{closed:A}=this;super.unsubscribe(),!A&&((e=this.onFinalize)===null||e===void 0||e.call(this))}}};function ud(){return ti((t,e)=>{let A=null;t._refCount++;let i=ei(e,void 0,void 0,void 0,()=>{if(!t||t._refCount<=0||0<--t._refCount){A=null;return}let n=t._connection,o=A;A=null,n&&(!o||n===o)&&n.unsubscribe(),e.unsubscribe()});t.subscribe(i),i.closed||(A=t.connect())})}var C2=class extends gt{constructor(e,A){super(),this.source=e,this.subjectFactory=A,this._subject=null,this._refCount=0,this._connection=null,Ov(e)&&(this.lift=e.lift)}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){let e=this._subject;return(!e||e.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;let{_connection:e}=this;this._subject=this._connection=null,e?.unsubscribe()}connect(){let e=this._connection;if(!e){e=this._connection=new Kt;let A=this.getSubject();e.add(this.source.subscribe(ei(A,void 0,()=>{this._teardown(),A.complete()},i=>{this._teardown(),A.error(i)},()=>this._teardown()))),e.closed&&(this._connection=null,e=Kt.EMPTY)}return e}refCount(){return ud()(this)}};var jU=dd(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var qA=(()=>{class t extends gt{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(A){let i=new hd(this,this);return i.operator=A,i}_throwIfClosed(){if(this.closed)throw new jU}next(A){Ed(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let i of this.currentObservers)i.next(A)}})}error(A){Ed(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=A;let{observers:i}=this;for(;i.length;)i.shift().error(A)}})}complete(){Ed(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:A}=this;for(;A.length;)A.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var A;return((A=this.observers)===null||A===void 0?void 0:A.length)>0}_trySubscribe(A){return this._throwIfClosed(),super._trySubscribe(A)}_subscribe(A){return this._throwIfClosed(),this._checkFinalizedStatuses(A),this._innerSubscribe(A)}_innerSubscribe(A){let{hasError:i,isStopped:n,observers:o}=this;return i||n?Gv:(this.currentObservers=null,o.push(A),new Kt(()=>{this.currentObservers=null,QI(o,A)}))}_checkFinalizedStatuses(A){let{hasError:i,thrownError:n,isStopped:o}=this;i?A.error(n):o&&A.complete()}asObservable(){let A=new gt;return A.source=this,A}}return t.create=(e,A)=>new hd(e,A),t})(),hd=class extends qA{constructor(e,A){super(),this.destination=e,this.source=A}next(e){var A,i;(i=(A=this.destination)===null||A===void 0?void 0:A.next)===null||i===void 0||i.call(A,e)}error(e){var A,i;(i=(A=this.destination)===null||A===void 0?void 0:A.error)===null||i===void 0||i.call(A,e)}complete(){var e,A;(A=(e=this.destination)===null||e===void 0?void 0:e.complete)===null||A===void 0||A.call(e)}_subscribe(e){var A,i;return(i=(A=this.source)===null||A===void 0?void 0:A.subscribe(e))!==null&&i!==void 0?i:Gv}};var Fi=class extends qA{constructor(e){super(),this._value=e}get value(){return this.getValue()}_subscribe(e){let A=super._subscribe(e);return!A.closed&&e.next(this._value),A}getValue(){let{hasError:e,thrownError:A,_value:i}=this;if(e)throw A;return this._throwIfClosed(),i}next(e){super.next(this._value=e)}};var su={now(){return(su.delegate||Date).now()},delegate:void 0};var sg=class extends qA{constructor(e=1/0,A=1/0,i=su){super(),this._bufferSize=e,this._windowTime=A,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=A===1/0,this._bufferSize=Math.max(1,e),this._windowTime=Math.max(1,A)}next(e){let{isStopped:A,_buffer:i,_infiniteTimeWindow:n,_timestampProvider:o,_windowTime:r}=this;A||(i.push(e),!n&&i.push(o.now()+r)),this._trimBuffer(),super.next(e)}_subscribe(e){this._throwIfClosed(),this._trimBuffer();let A=this._innerSubscribe(e),{_infiniteTimeWindow:i,_buffer:n}=this,o=n.slice();for(let r=0;rt.complete());function Wf(t){return t&&Vt(t.schedule)}function Pv(t){return t[t.length-1]}function Xf(t){return Vt(Pv(t))?t.pop():void 0}function Al(t){return Wf(Pv(t))?t.pop():void 0}function VU(t,e){return typeof Pv(t)=="number"?t.pop():e}function WU(t,e,A,i){function n(o){return o instanceof A?o:new A(function(r){r(o)})}return new(A||(A=Promise))(function(o,r){function s(g){try{c(i.next(g))}catch(I){r(I)}}function a(g){try{c(i.throw(g))}catch(I){r(I)}}function c(g){g.done?o(g.value):n(g.value).then(s,a)}c((i=i.apply(t,e||[])).next())})}function ZU(t){var e=typeof Symbol=="function"&&Symbol.iterator,A=e&&t[e],i=0;if(A)return A.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function hI(t){return this instanceof hI?(this.v=t,this):new hI(t)}function XU(t,e,A){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=A.apply(t,e||[]),n,o=[];return n=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",r),n[Symbol.asyncIterator]=function(){return this},n;function r(d){return function(B){return Promise.resolve(B).then(d,I)}}function s(d,B){i[d]&&(n[d]=function(E){return new Promise(function(u,h){o.push([d,E,u,h])>1||a(d,E)})},B&&(n[d]=B(n[d])))}function a(d,B){try{c(i[d](B))}catch(E){C(o[0][3],E)}}function c(d){d.value instanceof hI?Promise.resolve(d.value.v).then(g,I):C(o[0][2],d)}function g(d){a("next",d)}function I(d){a("throw",d)}function C(d,B){d(B),o.shift(),o.length&&a(o[0][0],o[0][1])}}function $U(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],A;return e?e.call(t):(t=typeof ZU=="function"?ZU(t):t[Symbol.iterator](),A={},i("next"),i("throw"),i("return"),A[Symbol.asyncIterator]=function(){return this},A);function i(o){A[o]=t[o]&&function(r){return new Promise(function(s,a){r=t[o](r),n(s,a,r.done,r.value)})}}function n(o,r,s,a){Promise.resolve(a).then(function(c){o({value:c,done:s})},r)}}var md=t=>t&&typeof t.length=="number"&&typeof t!="function";function $f(t){return Vt(t?.then)}function Am(t){return Vt(t[Qd])}function em(t){return Symbol.asyncIterator&&Vt(t?.[Symbol.asyncIterator])}function tm(t){return new TypeError(`You provided ${t!==null&&typeof t=="object"?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}function E0A(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var im=E0A();function nm(t){return Vt(t?.[im])}function om(t){return XU(this,arguments,function*(){let A=t.getReader();try{for(;;){let{value:i,done:n}=yield hI(A.read());if(n)return yield hI(void 0);yield yield hI(i)}}finally{A.releaseLock()}})}function rm(t){return Vt(t?.getReader)}function Wn(t){if(t instanceof gt)return t;if(t!=null){if(Am(t))return Q0A(t);if(md(t))return u0A(t);if($f(t))return h0A(t);if(em(t))return AJ(t);if(nm(t))return f0A(t);if(rm(t))return m0A(t)}throw tm(t)}function Q0A(t){return new gt(e=>{let A=t[Qd]();if(Vt(A.subscribe))return A.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function u0A(t){return new gt(e=>{for(let A=0;A{t.then(A=>{e.closed||(e.next(A),e.complete())},A=>e.error(A)).then(null,Pf)})}function f0A(t){return new gt(e=>{for(let A of t)if(e.next(A),e.closed)return;e.complete()})}function AJ(t){return new gt(e=>{p0A(t,e).catch(A=>e.error(A))})}function m0A(t){return AJ(om(t))}function p0A(t,e){var A,i,n,o;return WU(this,void 0,void 0,function*(){try{for(A=$U(t);i=yield A.next(),!i.done;){let r=i.value;if(e.next(r),e.closed)return}}catch(r){n={error:r}}finally{try{i&&!i.done&&(o=A.return)&&(yield o.call(A))}finally{if(n)throw n.error}}e.complete()})}function ca(t,e,A,i=0,n=!1){let o=e.schedule(function(){A(),n?t.add(this.schedule(null,i)):this.unsubscribe()},i);if(t.add(o),!n)return o}function sm(t,e=0){return ti((A,i)=>{A.subscribe(ei(i,n=>ca(i,t,()=>i.next(n),e),()=>ca(i,t,()=>i.complete(),e),n=>ca(i,t,()=>i.error(n),e)))})}function am(t,e=0){return ti((A,i)=>{i.add(t.schedule(()=>A.subscribe(i),e))})}function eJ(t,e){return Wn(t).pipe(am(e),sm(e))}function tJ(t,e){return Wn(t).pipe(am(e),sm(e))}function iJ(t,e){return new gt(A=>{let i=0;return e.schedule(function(){i===t.length?A.complete():(A.next(t[i++]),A.closed||this.schedule())})})}function nJ(t,e){return new gt(A=>{let i;return ca(A,e,()=>{i=t[im](),ca(A,e,()=>{let n,o;try{({value:n,done:o}=i.next())}catch(r){A.error(r);return}o?A.complete():A.next(n)},0,!0)}),()=>Vt(i?.return)&&i.return()})}function cm(t,e){if(!t)throw new Error("Iterable cannot be null");return new gt(A=>{ca(A,e,()=>{let i=t[Symbol.asyncIterator]();ca(A,e,()=>{i.next().then(n=>{n.done?A.complete():A.next(n.value)})},0,!0)})})}function oJ(t,e){return cm(om(t),e)}function rJ(t,e){if(t!=null){if(Am(t))return eJ(t,e);if(md(t))return iJ(t,e);if($f(t))return tJ(t,e);if(em(t))return cm(t,e);if(nm(t))return nJ(t,e);if(rm(t))return oJ(t,e)}throw tm(t)}function ro(t,e){return e?rJ(t,e):Wn(t)}function Ce(...t){let e=Al(t);return ro(t,e)}function d2(t,e){let A=Vt(t)?t:()=>t,i=n=>n.error(A());return new gt(e?n=>e.schedule(i,0,n):i)}function B2(t){return!!t&&(t instanceof gt||Vt(t.lift)&&Vt(t.subscribe))}var B0=dd(t=>function(){t(this),this.name="EmptyError",this.message="no elements in sequence"});function sJ(t){return t instanceof Date&&!isNaN(t)}function je(t,e){return ti((A,i)=>{let n=0;A.subscribe(ei(i,o=>{i.next(t.call(e,o,n++))}))})}var{isArray:D0A}=Array;function w0A(t,e){return D0A(e)?t(...e):t(e)}function pd(t){return je(e=>w0A(t,e))}var{isArray:y0A}=Array,{getPrototypeOf:v0A,prototype:M0A,keys:b0A}=Object;function gm(t){if(t.length===1){let e=t[0];if(y0A(e))return{args:e,keys:null};if(k0A(e)){let A=b0A(e);return{args:A.map(i=>e[i]),keys:A}}}return{args:t,keys:null}}function k0A(t){return t&&typeof t=="object"&&v0A(t)===M0A}function lm(t,e){return t.reduce((A,i,n)=>(A[i]=e[n],A),{})}function ga(...t){let e=Al(t),A=Xf(t),{args:i,keys:n}=gm(t);if(i.length===0)return ro([],e);let o=new gt(S0A(i,e,n?r=>lm(n,r):Os));return A?o.pipe(pd(A)):o}function S0A(t,e,A=Os){return i=>{aJ(e,()=>{let{length:n}=t,o=new Array(n),r=n,s=n;for(let a=0;a{let c=ro(t[a],e),g=!1;c.subscribe(ei(i,I=>{o[a]=I,g||(g=!0,s--),s||i.next(A(o.slice()))},()=>{--r||i.complete()}))},i)},i)}}function aJ(t,e,A){t?ca(A,t,e):e()}function cJ(t,e,A,i,n,o,r,s){let a=[],c=0,g=0,I=!1,C=()=>{I&&!a.length&&!c&&e.complete()},d=E=>c{o&&e.next(E),c++;let u=!1;Wn(A(E,g++)).subscribe(ei(e,h=>{n?.(h),o?d(h):e.next(h)},()=>{u=!0},void 0,()=>{if(u)try{for(c--;a.length&&cB(h)):B(h)}C()}catch(h){e.error(h)}}))};return t.subscribe(ei(e,d,()=>{I=!0,C()})),()=>{s?.()}}function or(t,e,A=1/0){return Vt(e)?or((i,n)=>je((o,r)=>e(i,o,n,r))(Wn(t(i,n))),A):(typeof e=="number"&&(A=e),ti((i,n)=>cJ(i,n,t,A)))}function E2(t=1/0){return or(Os,t)}function gJ(){return E2(1)}function Q2(...t){return gJ()(ro(t,Al(t)))}function el(t){return new gt(e=>{Wn(t()).subscribe(e)})}function gu(...t){let e=Xf(t),{args:A,keys:i}=gm(t),n=new gt(o=>{let{length:r}=A;if(!r){o.complete();return}let s=new Array(r),a=r,c=r;for(let g=0;g{I||(I=!0,c--),s[g]=C},()=>a--,void 0,()=>{(!a||!I)&&(c||o.next(i?lm(i,s):s),o.complete())}))}});return e?n.pipe(pd(e)):n}var R0A=["addListener","removeListener"],L0A=["addEventListener","removeEventListener"],x0A=["on","off"];function lu(t,e,A,i){if(Vt(A)&&(i=A,A=void 0),i)return lu(t,e,A).pipe(pd(i));let[n,o]=_0A(t)?L0A.map(r=>s=>t[r](e,s,A)):N0A(t)?R0A.map(lJ(t,e)):F0A(t)?x0A.map(lJ(t,e)):[];if(!n&&md(t))return or(r=>lu(r,e,A))(Wn(t));if(!n)throw new TypeError("Invalid event target");return new gt(r=>{let s=(...a)=>r.next(1o(s)})}function lJ(t,e){return A=>i=>t[A](e,i)}function N0A(t){return Vt(t.addListener)&&Vt(t.removeListener)}function F0A(t){return Vt(t.on)&&Vt(t.off)}function _0A(t){return Vt(t.addEventListener)&&Vt(t.removeEventListener)}function fI(t=0,e,A=qU){let i=-1;return e!=null&&(Wf(e)?A=e:i=e),new gt(n=>{let o=sJ(t)?+t-A.now():t;o<0&&(o=0);let r=0;return A.schedule(function(){n.closed||(n.next(r++),0<=i?this.schedule(void 0,i):n.complete())},o)})}function Hn(...t){let e=Al(t),A=VU(t,1/0),i=t;return i.length?i.length===1?Wn(i[0]):E2(A)(ro(i,e)):lr}function Nt(t,e){return ti((A,i)=>{let n=0;A.subscribe(ei(i,o=>t.call(e,o,n++)&&i.next(o)))})}function IJ(t){return ti((e,A)=>{let i=!1,n=null,o=null,r=!1,s=()=>{if(o?.unsubscribe(),o=null,i){i=!1;let c=n;n=null,A.next(c)}r&&A.complete()},a=()=>{o=null,r&&A.complete()};e.subscribe(ei(A,c=>{i=!0,n=c,o||Wn(t(c)).subscribe(o=ei(A,s,a))},()=>{r=!0,(!i||!o||o.closed)&&A.complete()}))})}function Dd(t,e=cu){return IJ(()=>fI(t,e))}function Gr(t){return ti((e,A)=>{let i=null,n=!1,o;i=e.subscribe(ei(A,void 0,void 0,r=>{o=Wn(t(r,Gr(t)(e))),i?(i.unsubscribe(),i=null,o.subscribe(A)):n=!0})),n&&(i.unsubscribe(),i=null,o.subscribe(A))})}function CJ(t,e,A,i,n){return(o,r)=>{let s=A,a=e,c=0;o.subscribe(ei(r,g=>{let I=c++;a=s?t(a,g,I):(s=!0,g),i&&r.next(a)},n&&(()=>{s&&r.next(a),r.complete()})))}}function tl(t,e){return Vt(e)?or(t,e,1):or(t,1)}function ag(t,e=cu){return ti((A,i)=>{let n=null,o=null,r=null,s=()=>{if(n){n.unsubscribe(),n=null;let c=o;o=null,i.next(c)}};function a(){let c=r+t,g=e.now();if(g{o=c,r=e.now(),n||(n=e.schedule(a,t),i.add(n))},()=>{s(),i.complete()},void 0,()=>{o=n=null}))})}function u2(t){return ti((e,A)=>{let i=!1;e.subscribe(ei(A,n=>{i=!0,A.next(n)},()=>{i||A.next(t),A.complete()}))})}function Xn(t){return t<=0?()=>lr:ti((e,A)=>{let i=0;e.subscribe(ei(A,n=>{++i<=t&&(A.next(n),t<=i&&A.complete())}))})}function wd(t){return je(()=>t)}function il(t,e=Os){return t=t??G0A,ti((A,i)=>{let n,o=!0;A.subscribe(ei(i,r=>{let s=e(r);(o||!t(n,s))&&(o=!1,n=s,i.next(r))}))})}function G0A(t,e){return t===e}function Im(t=K0A){return ti((e,A)=>{let i=!1;e.subscribe(ei(A,n=>{i=!0,A.next(n)},()=>i?A.complete():A.error(t())))})}function K0A(){return new B0}function nl(t){return ti((e,A)=>{try{e.subscribe(A)}finally{A.add(t)}})}function ol(t,e){let A=arguments.length>=2;return i=>i.pipe(t?Nt((n,o)=>t(n,o,i)):Os,Xn(1),A?u2(e):Im(()=>new B0))}function yd(t){return t<=0?()=>lr:ti((e,A)=>{let i=[];e.subscribe(ei(A,n=>{i.push(n),t{for(let n of i)A.next(n);A.complete()},void 0,()=>{i=null}))})}function jv(t,e){let A=arguments.length>=2;return i=>i.pipe(t?Nt((n,o)=>t(n,o,i)):Os,yd(1),A?u2(e):Im(()=>new B0))}function Cm(){return ti((t,e)=>{let A,i=!1;t.subscribe(ei(e,n=>{let o=A;A=n,i&&e.next([o,n]),i=!0}))})}function qv(t,e){return ti(CJ(t,e,arguments.length>=2,!0))}function Iu(t={}){let{connector:e=()=>new qA,resetOnError:A=!0,resetOnComplete:i=!0,resetOnRefCountZero:n=!0}=t;return o=>{let r,s,a,c=0,g=!1,I=!1,C=()=>{s?.unsubscribe(),s=void 0},d=()=>{C(),r=a=void 0,g=I=!1},B=()=>{let E=r;d(),E?.unsubscribe()};return ti((E,u)=>{c++,!I&&!g&&C();let h=a=a??e();u.add(()=>{c--,c===0&&!I&&!g&&(s=Vv(B,n))}),h.subscribe(u),!r&&c>0&&(r=new d0({next:w=>h.next(w),error:w=>{I=!0,C(),s=Vv(d,A,w),h.error(w)},complete:()=>{g=!0,C(),s=Vv(d,i),h.complete()}}),Wn(E).subscribe(r))})(o)}}function Vv(t,e,...A){if(e===!0){t();return}if(e===!1)return;let i=new d0({next:()=>{i.unsubscribe(),t()}});return Wn(e(...A)).subscribe(i)}function h2(t,e,A){let i,n=!1;return t&&typeof t=="object"?{bufferSize:i=1/0,windowTime:e=1/0,refCount:n=!1,scheduler:A}=t:i=t??1/0,Iu({connector:()=>new sg(i,e,A),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:n})}function mI(t){return Nt((e,A)=>t<=A)}function On(...t){let e=Al(t);return ti((A,i)=>{(e?Q2(t,A,e):Q2(t,A)).subscribe(i)})}function $n(t,e){return ti((A,i)=>{let n=null,o=0,r=!1,s=()=>r&&!n&&i.complete();A.subscribe(ei(i,a=>{n?.unsubscribe();let c=0,g=o++;Wn(t(a,g)).subscribe(n=ei(i,I=>i.next(e?e(a,I,g,c++):I),()=>{n=null,s()}))},()=>{r=!0,s()}))})}function kt(t){return ti((e,A)=>{Wn(t).subscribe(ei(A,()=>A.complete(),ru)),!A.closed&&e.subscribe(A)})}function Zv(t,e=!1){return ti((A,i)=>{let n=0;A.subscribe(ei(i,o=>{let r=t(o,n++);(r||e)&&i.next(o),!r&&i.complete()}))})}function So(t,e,A){let i=Vt(t)||e||A?{next:t,error:e,complete:A}:t;return i?ti((n,o)=>{var r;(r=i.subscribe)===null||r===void 0||r.call(i);let s=!0;n.subscribe(ei(o,a=>{var c;(c=i.next)===null||c===void 0||c.call(i,a),o.next(a)},()=>{var a;s=!1,(a=i.complete)===null||a===void 0||a.call(i),o.complete()},a=>{var c;s=!1,(c=i.error)===null||c===void 0||c.call(i,a),o.error(a)},()=>{var a,c;s&&((a=i.unsubscribe)===null||a===void 0||a.call(i)),(c=i.finalize)===null||c===void 0||c.call(i)}))}):Os}var rY="https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss",te=class extends Error{code;constructor(e,A){super(Xm(e,A)),this.code=e}};function U0A(t){return`NG0${Math.abs(t)}`}function Xm(t,e){return`${U0A(t)}${e?": "+e:""}`}var sY=Symbol("InputSignalNode#UNSET"),J0A=Fe(sA({},Tf),{transformFn:void 0,applyValueToInputSignal(t,e){nu(t,e)}});function aY(t,e){let A=Object.create(J0A);A.value=t,A.transformFn=e?.transform;function i(){if(eu(A),A.value===sY){let n=null;throw new te(-950,n)}return A.value}return i[aa]=A,i}function wu(t){return{toString:t}.toString()}var dm="__parameters__";function Y0A(t){return function(...A){if(t){let i=t(...A);for(let n in i)this[n]=i[n]}}}function cY(t,e,A){return wu(()=>{let i=Y0A(e);function n(...o){if(this instanceof n)return i.apply(this,o),this;let r=new n(...o);return s.annotation=r,s;function s(a,c,g){let I=a.hasOwnProperty(dm)?a[dm]:Object.defineProperty(a,dm,{value:[]})[dm];for(;I.length<=g;)I.push(null);return(I[g]=I[g]||[]).push(r),a}}return n.prototype.ngMetadataName=t,n.annotationCls=n,n})}var Pa=globalThis;function fo(t){for(let e in t)if(t[e]===fo)return e;throw Error("Could not find renamed property on target object.")}function T0A(t,e){for(let A in e)e.hasOwnProperty(A)&&!t.hasOwnProperty(A)&&(t[A]=e[A])}function Ia(t){if(typeof t=="string")return t;if(Array.isArray(t))return`[${t.map(Ia).join(", ")}]`;if(t==null)return""+t;let e=t.overriddenName||t.name;if(e)return`${e}`;let A=t.toString();if(A==null)return""+A;let i=A.indexOf(` -`);return i>=0?A.slice(0,i):A}function l9(t,e){return t?e?`${t} ${e}`:t:e||""}var H0A=fo({__forward_ref__:fo});function Ur(t){return t.__forward_ref__=Ur,t.toString=function(){return Ia(this())},t}function cs(t){return gY(t)?t():t}function gY(t){return typeof t=="function"&&t.hasOwnProperty(H0A)&&t.__forward_ref__===Ur}function bA(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function Ve(t){return{providers:t.providers||[],imports:t.imports||[]}}function $m(t){return dJ(t,IY)||dJ(t,CY)}function lY(t){return $m(t)!==null}function dJ(t,e){return t.hasOwnProperty(e)?t[e]:null}function O0A(t){let e=t&&(t[IY]||t[CY]);return e||null}function BJ(t){return t&&(t.hasOwnProperty(EJ)||t.hasOwnProperty(z0A))?t[EJ]:null}var IY=fo({\u0275prov:fo}),EJ=fo({\u0275inj:fo}),CY=fo({ngInjectableDef:fo}),z0A=fo({ngInjectorDef:fo}),eA=class{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(e,A){this._desc=e,this.\u0275prov=void 0,typeof A=="number"?this.__NG_ELEMENT_ID__=A:A!==void 0&&(this.\u0275prov=bA({token:this,providedIn:A.providedIn||"root",factory:A.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}};function dY(t){return t&&!!t.\u0275providers}var P0A=fo({\u0275cmp:fo}),j0A=fo({\u0275dir:fo}),q0A=fo({\u0275pipe:fo}),V0A=fo({\u0275mod:fo}),ym=fo({\u0275fac:fo}),Eu=fo({__NG_ELEMENT_ID__:fo}),QJ=fo({__NG_ENV_ID__:fo});function wI(t){return typeof t=="string"?t:t==null?"":String(t)}function Z0A(t){return typeof t=="function"?t.name||t.toString():typeof t=="object"&&t!=null&&typeof t.type=="function"?t.type.name||t.type.toString():wI(t)}function BY(t,e){throw new te(-200,t)}function DM(t,e){throw new te(-201,!1)}var bi=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(bi||{}),I9;function EY(){return I9}function la(t){let e=I9;return I9=t,e}function QY(t,e,A){let i=$m(t);if(i&&i.providedIn=="root")return i.value===void 0?i.value=i.factory():i.value;if(A&bi.Optional)return null;if(e!==void 0)return e;DM(t,"Injector")}var W0A={},pI=W0A,C9="__NG_DI_FLAG__",vm=class{injector;constructor(e){this.injector=e}retrieve(e,A){let i=A;return this.injector.get(e,i.optional?Hf:pI,i)}},Mm="ngTempTokenPath",X0A="ngTokenPath",$0A=/\n/gm,A2A="\u0275",uJ="__source";function e2A(t,e=bi.Default){if(ou()===void 0)throw new te(-203,!1);if(ou()===null)return QY(t,void 0,e);{let A=ou(),i;return A instanceof vm?i=A.injector:i=A,i.get(t,e&bi.Optional?null:void 0,e)}}function be(t,e=bi.Default){return(EY()||e2A)(cs(t),e)}function f(t,e=bi.Default){return be(t,Ap(e))}function Ap(t){return typeof t>"u"||typeof t=="number"?t:0|(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function d9(t){let e=[];for(let A=0;A ");else if(typeof e=="object"){let o=[];for(let r in e)if(e.hasOwnProperty(r)){let s=e[r];o.push(r+":"+(typeof s=="string"?JSON.stringify(s):Ia(s)))}n=`{${o.join(", ")}}`}return`${A}${i?"("+i+")":""}[${n}]: ${t.replace($0A,` - `)}`}var Yd=uY(cY("Optional"),8);var ep=uY(cY("SkipSelf"),4);function yI(t,e){let A=t.hasOwnProperty(ym);return A?t[ym]:null}function o2A(t,e,A){if(t.length!==e.length)return!1;for(let i=0;iArray.isArray(A)?wM(A,e):e(A))}function hY(t,e,A){e>=t.length?t.push(A):t.splice(e,0,A)}function bm(t,e){return e>=t.length-1?t.pop():t.splice(e,1)[0]}function s2A(t,e){let A=[];for(let i=0;ie;){let o=n-2;t[n]=t[o],n--}t[e]=A,t[e+1]=i}}function tp(t,e,A){let i=yu(t,e);return i>=0?t[i|1]=A:(i=~i,a2A(t,i,e,A)),i}function Wv(t,e){let A=yu(t,e);if(A>=0)return t[A|1]}function yu(t,e){return c2A(t,e,1)}function c2A(t,e,A){let i=0,n=t.length>>A;for(;n!==i;){let o=i+(n-i>>1),r=t[o<e?n=o:i=o+1}return~(n<{A.push(r)};return wM(e,r=>{let s=r;B9(s,o,[],i)&&(n||=[],n.push(s))}),n!==void 0&&yY(n,o),A}function yY(t,e){for(let A=0;A{e(o,i)})}}function B9(t,e,A,i){if(t=cs(t),!t)return!1;let n=null,o=BJ(t),r=!o&&p2(t);if(!o&&!r){let a=t.ngModule;if(o=BJ(a),o)n=a;else return!1}else{if(r&&!r.standalone)return!1;n=t}let s=i.has(n);if(r){if(s)return!1;if(i.add(n),r.dependencies){let a=typeof r.dependencies=="function"?r.dependencies():r.dependencies;for(let c of a)B9(c,e,A,i)}}else if(o){if(o.imports!=null&&!s){i.add(n);let c;try{wM(o.imports,g=>{B9(g,e,A,i)&&(c||=[],c.push(g))})}finally{}c!==void 0&&yY(c,e)}if(!s){let c=yI(n)||(()=>new n);e({provide:n,useFactory:c,deps:zs},n),e({provide:mY,useValue:n,multi:!0},n),e({provide:Ld,useValue:()=>be(n),multi:!0},n)}let a=o.providers;if(a!=null&&!s){let c=t;vM(a,g=>{e(g,c)})}}else return!1;return n!==t&&t.providers!==void 0}function vM(t,e){for(let A of t)dY(A)&&(A=A.\u0275providers),Array.isArray(A)?vM(A,e):e(A)}var l2A=fo({provide:String,useValue:fo});function vY(t){return t!==null&&typeof t=="object"&&l2A in t}function I2A(t){return!!(t&&t.useExisting)}function C2A(t){return!!(t&&t.useFactory)}function xd(t){return typeof t=="function"}function d2A(t){return!!t.useClass}var ip=new eA(""),hm={},hJ={},Xv;function np(){return Xv===void 0&&(Xv=new km),Xv}var vr=class{},Qu=class extends vr{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(e,A,i,n){super(),this.parent=A,this.source=i,this.scopes=n,Q9(e,r=>this.processProvider(r)),this.records.set(fY,vd(void 0,this)),n.has("environment")&&this.records.set(vr,vd(void 0,this));let o=this.records.get(ip);o!=null&&typeof o.value=="string"&&this.scopes.add(o.value),this.injectorDefTypes=new Set(this.get(mY,zs,bi.Self))}retrieve(e,A){let i=A;return this.get(e,i.optional?Hf:pI,i)}destroy(){du(this),this._destroyed=!0;let e=pi(null);try{for(let i of this._ngOnDestroyHooks)i.ngOnDestroy();let A=this._onDestroyHooks;this._onDestroyHooks=[];for(let i of A)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),pi(e)}}onDestroy(e){return du(this),this._onDestroyHooks.push(e),()=>this.removeOnDestroy(e)}runInContext(e){du(this);let A=I0(this),i=la(void 0),n;try{return e()}finally{I0(A),la(i)}}get(e,A=pI,i=bi.Default){if(du(this),e.hasOwnProperty(QJ))return e[QJ](this);i=Ap(i);let n,o=I0(this),r=la(void 0);try{if(!(i&bi.SkipSelf)){let a=this.records.get(e);if(a===void 0){let c=h2A(e)&&$m(e);c&&this.injectableDefInScope(c)?a=vd(E9(e),hm):a=null,this.records.set(e,a)}if(a!=null)return this.hydrate(e,a,i)}let s=i&bi.Self?np():this.parent;return A=i&bi.Optional&&A===pI?null:A,s.get(e,A)}catch(s){if(s.name==="NullInjectorError"){if((s[Mm]=s[Mm]||[]).unshift(Ia(e)),o)throw s;return i2A(s,e,"R3InjectorError",this.source)}else throw s}finally{la(r),I0(o)}}resolveInjectorInitializers(){let e=pi(null),A=I0(this),i=la(void 0),n;try{let o=this.get(Ld,zs,bi.Self);for(let r of o)r()}finally{I0(A),la(i),pi(e)}}toString(){let e=[],A=this.records;for(let i of A.keys())e.push(Ia(i));return`R3Injector[${e.join(", ")}]`}processProvider(e){e=cs(e);let A=xd(e)?e:cs(e&&e.provide),i=E2A(e);if(!xd(e)&&e.multi===!0){let n=this.records.get(A);n||(n=vd(void 0,hm,!0),n.factory=()=>d9(n.multi),this.records.set(A,n)),A=e,n.multi.push(e)}this.records.set(A,i)}hydrate(e,A,i){let n=pi(null);try{return A.value===hJ?BY(Ia(e)):A.value===hm&&(A.value=hJ,A.value=A.factory(void 0,i)),typeof A.value=="object"&&A.value&&u2A(A.value)&&this._ngOnDestroyHooks.add(A.value),A.value}finally{pi(n)}}injectableDefInScope(e){if(!e.providedIn)return!1;let A=cs(e.providedIn);return typeof A=="string"?A==="any"||this.scopes.has(A):this.injectorDefTypes.has(A)}removeOnDestroy(e){let A=this._onDestroyHooks.indexOf(e);A!==-1&&this._onDestroyHooks.splice(A,1)}};function E9(t){let e=$m(t),A=e!==null?e.factory:yI(t);if(A!==null)return A;if(t instanceof eA)throw new te(204,!1);if(t instanceof Function)return B2A(t);throw new te(204,!1)}function B2A(t){if(t.length>0)throw new te(204,!1);let A=O0A(t);return A!==null?()=>A.factory(t):()=>new t}function E2A(t){if(vY(t))return vd(void 0,t.useValue);{let e=MY(t);return vd(e,hm)}}function MY(t,e,A){let i;if(xd(t)){let n=cs(t);return yI(n)||E9(n)}else if(vY(t))i=()=>cs(t.useValue);else if(C2A(t))i=()=>t.useFactory(...d9(t.deps||[]));else if(I2A(t))i=(n,o)=>be(cs(t.useExisting),o!==void 0&&o&bi.Optional?bi.Optional:void 0);else{let n=cs(t&&(t.useClass||t.provide));if(Q2A(t))i=()=>new n(...d9(t.deps));else return yI(n)||E9(n)}return i}function du(t){if(t.destroyed)throw new te(205,!1)}function vd(t,e,A=!1){return{factory:t,value:e,multi:A?[]:void 0}}function Q2A(t){return!!t.deps}function u2A(t){return t!==null&&typeof t=="object"&&typeof t.ngOnDestroy=="function"}function h2A(t){return typeof t=="function"||typeof t=="object"&&t instanceof eA}function Q9(t,e){for(let A of t)Array.isArray(A)?Q9(A,e):A&&dY(A)?Q9(A.\u0275providers,e):e(A)}function da(t,e){let A;t instanceof Qu?(du(t),A=t):A=new vm(t);let i,n=I0(A),o=la(void 0);try{return e()}finally{I0(n),la(o)}}function MM(){return EY()!==void 0||ou()!=null}function bM(t){if(!MM())throw new te(-203,!1)}function f2A(t){return typeof t=="function"}var Cl=0,hi=1,ii=2,vs=3,lg=4,Ba=5,Nd=6,Sm=7,Kr=8,Fd=9,E0=10,Jo=11,uu=12,fJ=13,Td=14,ja=15,vI=16,Md=17,Q0=18,op=19,bY=20,f2=21,$v=22,MI=23,wc=24,Sd=25,Qr=26,kM=1;var bI=7,Rm=8,_d=9,ys=10;function m2(t){return Array.isArray(t)&&typeof t[kM]=="object"}function h0(t){return Array.isArray(t)&&t[kM]===!0}function SM(t){return(t.flags&4)!==0}function Hd(t){return t.componentOffset>-1}function rp(t){return(t.flags&1)===1}function Ig(t){return!!t.template}function Lm(t){return(t[ii]&512)!==0}function Od(t){return(t[ii]&256)===256}var u9=class{previousValue;currentValue;firstChange;constructor(e,A,i){this.previousValue=e,this.currentValue=A,this.firstChange=i}isFirstChange(){return this.firstChange}};function kY(t,e,A,i){e!==null?e.applyValueToInputSignal(e,i):t[A]=i}var Xt=(()=>{let t=()=>SY;return t.ngInherit=!0,t})();function SY(t){return t.type.prototype.ngOnChanges&&(t.setInput=p2A),m2A}function m2A(){let t=LY(this),e=t?.current;if(e){let A=t.previous;if(A===sl)t.previous=e;else for(let i in e)A[i]=e[i];t.current=null,this.ngOnChanges(e)}}function p2A(t,e,A,i,n){let o=this.declaredInputs[i],r=LY(t)||D2A(t,{previous:sl,current:null}),s=r.current||(r.current={}),a=r.previous,c=a[o];s[o]=new u9(c&&c.currentValue,A,a===sl),kY(t,e,n,A)}var RY="__ngSimpleChanges__";function LY(t){return t[RY]||null}function D2A(t,e){return t[RY]=e}var mJ=null;var so=function(t,e=null,A){mJ?.(t,e,A)},xY="svg",w2A="math";function al(t){for(;Array.isArray(t);)t=t[Cl];return t}function y2A(t){for(;Array.isArray(t);){if(typeof t[kM]=="object")return t;t=t[Cl]}return null}function NY(t,e){return al(e[t])}function dl(t,e){return al(e[t.index])}function RM(t,e){return t.data[e]}function sp(t,e){return t[e]}function LM(t,e,A,i){A>=t.data.length&&(t.data[A]=null,t.blueprint[A]=null),e[A]=i}function cl(t,e){let A=e[t];return m2(A)?A:A[Cl]}function v2A(t){return(t[ii]&4)===4}function xM(t){return(t[ii]&128)===128}function M2A(t){return h0(t[vs])}function D2(t,e){return e==null?null:t[e]}function FY(t){t[Md]=0}function _Y(t){t[ii]&1024||(t[ii]|=1024,xM(t)&&zd(t))}function b2A(t,e){for(;t>0;)e=e[Td],t--;return e}function ap(t){return!!(t[ii]&9216||t[wc]?.dirty)}function h9(t){t[E0].changeDetectionScheduler?.notify(8),t[ii]&64&&(t[ii]|=1024),ap(t)&&zd(t)}function zd(t){t[E0].changeDetectionScheduler?.notify(0);let e=kI(t);for(;e!==null&&!(e[ii]&8192||(e[ii]|=8192,!xM(e)));)e=kI(e)}function GY(t,e){if(Od(t))throw new te(911,!1);t[f2]===null&&(t[f2]=[]),t[f2].push(e)}function k2A(t,e){if(t[f2]===null)return;let A=t[f2].indexOf(e);A!==-1&&t[f2].splice(A,1)}function kI(t){let e=t[vs];return h0(e)?e[vs]:e}function NM(t){return t[Sm]??=[]}function FM(t){return t.cleanup??=[]}function S2A(t,e,A,i){let n=NM(e);n.push(A),t.firstCreatePass&&FM(t).push(i,n.length-1)}var Di={lFrame:OY(null),bindingsEnabled:!0,skipHydrationRootTNode:null};var f9=!1;function R2A(){return Di.lFrame.elementDepthCount}function L2A(){Di.lFrame.elementDepthCount++}function x2A(){Di.lFrame.elementDepthCount--}function _M(){return Di.bindingsEnabled}function KY(){return Di.skipHydrationRootTNode!==null}function N2A(t){return Di.skipHydrationRootTNode===t}function F2A(){Di.skipHydrationRootTNode=null}function zt(){return Di.lFrame.lView}function ao(){return Di.lFrame.tView}function QA(t){return Di.lFrame.contextLView=t,t[Kr]}function uA(t){return Di.lFrame.contextLView=null,t}function gs(){let t=UY();for(;t!==null&&t.type===64;)t=t.parent;return t}function UY(){return Di.lFrame.currentTNode}function _2A(){let t=Di.lFrame,e=t.currentTNode;return t.isParent?e:e.parent}function w2(t,e){let A=Di.lFrame;A.currentTNode=t,A.isParent=e}function GM(){return Di.lFrame.isParent}function KM(){Di.lFrame.isParent=!1}function JY(){return Di.lFrame.contextLView}function YY(){return f9}function xm(t){let e=f9;return f9=t,e}function Mu(){let t=Di.lFrame,e=t.bindingRootIndex;return e===-1&&(e=t.bindingRootIndex=t.tView.bindingStartIndex),e}function G2A(){return Di.lFrame.bindingIndex}function K2A(t){return Di.lFrame.bindingIndex=t}function y2(){return Di.lFrame.bindingIndex++}function UM(t){let e=Di.lFrame,A=e.bindingIndex;return e.bindingIndex=e.bindingIndex+t,A}function U2A(){return Di.lFrame.inI18n}function J2A(t,e){let A=Di.lFrame;A.bindingIndex=A.bindingRootIndex=t,m9(e)}function Y2A(){return Di.lFrame.currentDirectiveIndex}function m9(t){Di.lFrame.currentDirectiveIndex=t}function JM(t){let e=Di.lFrame.currentDirectiveIndex;return e===-1?null:t[e]}function YM(){return Di.lFrame.currentQueryIndex}function cp(t){Di.lFrame.currentQueryIndex=t}function T2A(t){let e=t[hi];return e.type===2?e.declTNode:e.type===1?t[Ba]:null}function TY(t,e,A){if(A&bi.SkipSelf){let n=e,o=t;for(;n=n.parent,n===null&&!(A&bi.Host);)if(n=T2A(o),n===null||(o=o[Td],n.type&10))break;if(n===null)return!1;e=n,t=o}let i=Di.lFrame=HY();return i.currentTNode=e,i.lView=t,!0}function TM(t){let e=HY(),A=t[hi];Di.lFrame=e,e.currentTNode=A.firstChild,e.lView=t,e.tView=A,e.contextLView=t,e.bindingIndex=A.bindingStartIndex,e.inI18n=!1}function HY(){let t=Di.lFrame,e=t===null?null:t.child;return e===null?OY(t):e}function OY(t){let e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return t!==null&&(t.child=e),e}function zY(){let t=Di.lFrame;return Di.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}var PY=zY;function HM(){let t=zY();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function H2A(t){return(Di.lFrame.contextLView=b2A(t,Di.lFrame.contextLView))[Kr]}function Bl(){return Di.lFrame.selectedIndex}function SI(t){Di.lFrame.selectedIndex=t}function Pd(){let t=Di.lFrame;return RM(t.tView,t.selectedIndex)}function ur(){Di.lFrame.currentNamespace=xY}function _I(){O2A()}function O2A(){Di.lFrame.currentNamespace=null}function z2A(){return Di.lFrame.currentNamespace}var jY=!0;function gp(){return jY}function lp(t){jY=t}function P2A(t,e,A){let{ngOnChanges:i,ngOnInit:n,ngDoCheck:o}=e.type.prototype;if(i){let r=SY(e);(A.preOrderHooks??=[]).push(t,r),(A.preOrderCheckHooks??=[]).push(t,r)}n&&(A.preOrderHooks??=[]).push(0-t,n),o&&((A.preOrderHooks??=[]).push(t,o),(A.preOrderCheckHooks??=[]).push(t,o))}function OM(t,e){for(let A=e.directiveStart,i=e.directiveEnd;A=i)break}else e[a]<0&&(t[Md]+=65536),(s>14>16&&(t[ii]&3)===e&&(t[ii]+=16384,pJ(s,o)):pJ(s,o)}var Rd=-1,RI=class{factory;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(e,A,i){this.factory=e,this.canSeeViewProviders=A,this.injectImpl=i}};function q2A(t){return(t.flags&8)!==0}function V2A(t){return(t.flags&16)!==0}function Z2A(t,e,A){let i=0;for(;ie){r=o-1;break}}}for(;o>16}function Fm(t,e){let A=X2A(t),i=e;for(;A>0;)i=i[Td],A--;return i}var p9=!0;function _m(t){let e=p9;return p9=t,e}var $2A=256,WY=$2A-1,XY=5,A1A=0,rl={};function e1A(t,e,A){let i;typeof A=="string"?i=A.charCodeAt(0)||0:A.hasOwnProperty(Eu)&&(i=A[Eu]),i==null&&(i=A[Eu]=A1A++);let n=i&WY,o=1<>XY)]|=o}function Gm(t,e){let A=$Y(t,e);if(A!==-1)return A;let i=e[hi];i.firstCreatePass&&(t.injectorIndex=e.length,e9(i.data,t),e9(e,null),e9(i.blueprint,null));let n=zM(t,e),o=t.injectorIndex;if(ZY(n)){let r=Nm(n),s=Fm(n,e),a=s[hi].data;for(let c=0;c<8;c++)e[o+c]=s[r+c]|a[r+c]}return e[o+8]=n,o}function e9(t,e){t.push(0,0,0,0,0,0,0,0,e)}function $Y(t,e){return t.injectorIndex===-1||t.parent&&t.parent.injectorIndex===t.injectorIndex||e[t.injectorIndex+8]===null?-1:t.injectorIndex}function zM(t,e){if(t.parent&&t.parent.injectorIndex!==-1)return t.parent.injectorIndex;let A=0,i=null,n=e;for(;n!==null;){if(i=nT(n),i===null)return Rd;if(A++,n=n[Td],i.injectorIndex!==-1)return i.injectorIndex|A<<16}return Rd}function D9(t,e,A){e1A(t,e,A)}function t1A(t,e){if(e==="class")return t.classes;if(e==="style")return t.styles;let A=t.attrs;if(A){let i=A.length,n=0;for(;n>20,I=i?s:s+g,C=n?s+g:c;for(let d=I;d=a&&B.type===A)return d}if(n){let d=r[a];if(d&&Ig(d)&&d.type===A)return a}return null}function hu(t,e,A,i,n){let o=t[A],r=e.data;if(o instanceof RI){let s=o;s.resolving&&BY(Z0A(r[A]));let a=_m(s.canSeeViewProviders);s.resolving=!0;let c,g=s.injectImpl?la(s.injectImpl):null,I=TY(t,i,bi.Default);try{o=t[A]=s.factory(void 0,n,r,t,i),e.firstCreatePass&&A>=i.directiveStart&&P2A(A,r[A],e)}finally{g!==null&&la(g),_m(a),s.resolving=!1,PY()}}return o}function n1A(t){if(typeof t=="string")return t.charCodeAt(0)||0;let e=t.hasOwnProperty(Eu)?t[Eu]:void 0;return typeof e=="number"?e>=0?e&WY:o1A:e}function wJ(t,e,A){let i=1<>XY)]&i)}function yJ(t,e){return!(t&bi.Self)&&!(t&bi.Host&&e)}var DI=class{_tNode;_lView;constructor(e,A){this._tNode=e,this._lView=A}get(e,A,i){return tT(this._tNode,this._lView,e,Ap(i),A)}};function o1A(){return new DI(gs(),zt())}function ci(t){return wu(()=>{let e=t.prototype.constructor,A=e[ym]||w9(e),i=Object.prototype,n=Object.getPrototypeOf(t.prototype).constructor;for(;n&&n!==i;){let o=n[ym]||w9(n);if(o&&o!==A)return o;n=Object.getPrototypeOf(n)}return o=>new o})}function w9(t){return gY(t)?()=>{let e=w9(cs(t));return e&&e()}:yI(t)}function r1A(t,e,A,i,n){let o=t,r=e;for(;o!==null&&r!==null&&r[ii]&2048&&!Lm(r);){let s=iT(o,r,A,i|bi.Self,rl);if(s!==rl)return s;let a=o.parent;if(!a){let c=r[bY];if(c){let g=c.get(A,rl,i);if(g!==rl)return g}a=nT(r),r=r[Td]}o=a}return n}function nT(t){let e=t[hi],A=e.type;return A===2?e.declTNode:A===1?t[Ba]:null}function PM(t){return t1A(gs(),t)}function vJ(t,e=null,A=null,i){let n=oT(t,e,A,i);return n.resolveInjectorInitializers(),n}function oT(t,e=null,A=null,i,n=new Set){let o=[A||zs,yM(t)];return i=i||(typeof t=="object"?void 0:Ia(t)),new Qu(o,e||np(),i||null,n)}var Zt=class t{static THROW_IF_NOT_FOUND=pI;static NULL=new km;static create(e,A){if(Array.isArray(e))return vJ({name:""},A,e,"");{let i=e.name??"";return vJ({name:i},e.parent,e.providers,i)}}static \u0275prov=bA({token:t,providedIn:"any",factory:()=>be(fY)});static __NG_ELEMENT_ID__=-1};var Wr=class{attributeName;constructor(e){this.attributeName=e}__NG_ELEMENT_ID__=()=>PM(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}},s1A=new eA("");s1A.__NG_ELEMENT_ID__=t=>{let e=gs();if(e===null)throw new te(204,!1);if(e.type&2)return e.value;if(t&bi.Optional)return null;throw new te(204,!1)};var rT=!1,f0=(()=>{class t{static __NG_ELEMENT_ID__=a1A;static __NG_ENV_ID__=A=>A}return t})(),Km=class extends f0{_lView;constructor(e){super(),this._lView=e}onDestroy(e){let A=this._lView;return Od(A)?(e(),()=>{}):(GY(A,e),()=>k2A(A,e))}};function a1A(){return new Km(zt())}var LI=class{},jM=new eA("",{providedIn:"root",factory:()=>!1});var sT=new eA(""),aT=new eA(""),m0=(()=>{class t{taskId=0;pendingTasks=new Set;get _hasPendingTasks(){return this.hasPendingTasks.value}hasPendingTasks=new Fi(!1);add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);let A=this.taskId++;return this.pendingTasks.add(A),A}has(A){return this.pendingTasks.has(A)}remove(A){this.pendingTasks.delete(A),this.pendingTasks.size===0&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new t})}return t})();var y9=class extends qA{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(e=!1){super(),this.__isAsync=e,MM()&&(this.destroyRef=f(f0,{optional:!0})??void 0,this.pendingTasks=f(m0,{optional:!0})??void 0)}emit(e){let A=pi(null);try{super.next(e)}finally{pi(A)}}subscribe(e,A,i){let n=e,o=A||(()=>null),r=i;if(e&&typeof e=="object"){let a=e;n=a.next?.bind(a),o=a.error?.bind(a),r=a.complete?.bind(a)}this.__isAsync&&(o=this.wrapInTimeout(o),n&&(n=this.wrapInTimeout(n)),r&&(r=this.wrapInTimeout(r)));let s=super.subscribe({next:n,error:o,complete:r});return e instanceof Kt&&e.add(s),s}wrapInTimeout(e){return A=>{let i=this.pendingTasks?.add();setTimeout(()=>{try{e(A)}finally{i!==void 0&&this.pendingTasks?.remove(i)}})}}},YA=y9;function fu(...t){}function cT(t){let e,A;function i(){t=fu;try{A!==void 0&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(A),e!==void 0&&clearTimeout(e)}catch{}}return e=setTimeout(()=>{t(),i()}),typeof requestAnimationFrame=="function"&&(A=requestAnimationFrame(()=>{t(),i()})),()=>i()}function MJ(t){return queueMicrotask(()=>t()),()=>{t=fu}}var qM="isAngularZone",Um=qM+"_ID",c1A=0,ye=class t{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new YA(!1);onMicrotaskEmpty=new YA(!1);onStable=new YA(!1);onError=new YA(!1);constructor(e){let{enableLongStackTrace:A=!1,shouldCoalesceEventChangeDetection:i=!1,shouldCoalesceRunChangeDetection:n=!1,scheduleInRootZone:o=rT}=e;if(typeof Zone>"u")throw new te(908,!1);Zone.assertZonePatched();let r=this;r._nesting=0,r._outer=r._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),A&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!n&&i,r.shouldCoalesceRunChangeDetection=n,r.callbackScheduled=!1,r.scheduleInRootZone=o,I1A(r)}static isInAngularZone(){return typeof Zone<"u"&&Zone.current.get(qM)===!0}static assertInAngularZone(){if(!t.isInAngularZone())throw new te(909,!1)}static assertNotInAngularZone(){if(t.isInAngularZone())throw new te(909,!1)}run(e,A,i){return this._inner.run(e,A,i)}runTask(e,A,i,n){let o=this._inner,r=o.scheduleEventTask("NgZoneEvent: "+n,e,g1A,fu,fu);try{return o.runTask(r,A,i)}finally{o.cancelTask(r)}}runGuarded(e,A,i){return this._inner.runGuarded(e,A,i)}runOutsideAngular(e){return this._outer.run(e)}},g1A={};function VM(t){if(t._nesting==0&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function l1A(t){if(t.isCheckStableRunning||t.callbackScheduled)return;t.callbackScheduled=!0;function e(){cT(()=>{t.callbackScheduled=!1,v9(t),t.isCheckStableRunning=!0,VM(t),t.isCheckStableRunning=!1})}t.scheduleInRootZone?Zone.root.run(()=>{e()}):t._outer.run(()=>{e()}),v9(t)}function I1A(t){let e=()=>{l1A(t)},A=c1A++;t._inner=t._inner.fork({name:"angular",properties:{[qM]:!0,[Um]:A,[Um+A]:!0},onInvokeTask:(i,n,o,r,s,a)=>{if(C1A(a))return i.invokeTask(o,r,s,a);try{return bJ(t),i.invokeTask(o,r,s,a)}finally{(t.shouldCoalesceEventChangeDetection&&r.type==="eventTask"||t.shouldCoalesceRunChangeDetection)&&e(),kJ(t)}},onInvoke:(i,n,o,r,s,a,c)=>{try{return bJ(t),i.invoke(o,r,s,a,c)}finally{t.shouldCoalesceRunChangeDetection&&!t.callbackScheduled&&!d1A(a)&&e(),kJ(t)}},onHasTask:(i,n,o,r)=>{i.hasTask(o,r),n===o&&(r.change=="microTask"?(t._hasPendingMicrotasks=r.microTask,v9(t),VM(t)):r.change=="macroTask"&&(t.hasPendingMacrotasks=r.macroTask))},onHandleError:(i,n,o,r)=>(i.handleError(o,r),t.runOutsideAngular(()=>t.onError.emit(r)),!1)})}function v9(t){t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&t.callbackScheduled===!0?t.hasPendingMicrotasks=!0:t.hasPendingMicrotasks=!1}function bJ(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function kJ(t){t._nesting--,VM(t)}var M9=class{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new YA;onMicrotaskEmpty=new YA;onStable=new YA;onError=new YA;run(e,A,i){return e.apply(A,i)}runGuarded(e,A,i){return e.apply(A,i)}runOutsideAngular(e){return e()}runTask(e,A,i,n){return e.apply(A,i)}};function C1A(t){return gT(t,"__ignore_ng_zone__")}function d1A(t){return gT(t,"__scheduler_tick__")}function gT(t,e){return!Array.isArray(t)||t.length!==1?!1:t[0]?.data?.[e]===!0}var Ps=class{_console=console;handleError(e){this._console.error("ERROR",e)}},B1A=new eA("",{providedIn:"root",factory:()=>{let t=f(ye),e=f(Ps);return A=>t.runOutsideAngular(()=>e.handleError(A))}}),b9=class{destroyed=!1;listeners=null;errorHandler=f(Ps,{optional:!0});destroyRef=f(f0);constructor(){this.destroyRef.onDestroy(()=>{this.destroyed=!0,this.listeners=null})}subscribe(e){if(this.destroyed)throw new te(953,!1);return(this.listeners??=[]).push(e),{unsubscribe:()=>{let A=this.listeners?.indexOf(e);A!==void 0&&A!==-1&&this.listeners?.splice(A,1)}}}emit(e){if(this.destroyed){console.warn(Xm(953,!1));return}if(this.listeners===null)return;let A=pi(null);try{for(let i of this.listeners)try{i(e)}catch(n){this.errorHandler?.handleError(n)}}finally{pi(A)}}};function GI(t){return new b9}function SJ(t,e){return aY(t,e)}function E1A(t){return aY(sY,t)}var bs=(SJ.required=E1A,SJ);function Q1A(){return jd(gs(),zt())}function jd(t,e){return new se(dl(t,e))}var se=(()=>{class t{nativeElement;constructor(A){this.nativeElement=A}static __NG_ELEMENT_ID__=Q1A}return t})();function lT(t){return t instanceof se?t.nativeElement:t}function v2(t){return typeof t=="function"&&t[aa]!==void 0}function Ao(t,e){let A=xv(t,e?.equal),i=A[aa];return A.set=n=>nu(i,n),A.update=n=>Nv(i,n),A.asReadonly=u1A.bind(A),A}function u1A(){let t=this[aa];if(t.readonlyFn===void 0){let e=()=>this();e[aa]=t,t.readonlyFn=e}return t.readonlyFn}function IT(t){return v2(t)&&typeof t.set=="function"}function h1A(){return this._results[Symbol.iterator]()}var qa=class{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new qA}constructor(e=!1){this._emitDistinctChangesOnly=e}get(e){return this._results[e]}map(e){return this._results.map(e)}filter(e){return this._results.filter(e)}find(e){return this._results.find(e)}reduce(e,A){return this._results.reduce(e,A)}forEach(e){this._results.forEach(e)}some(e){return this._results.some(e)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(e,A){this.dirty=!1;let i=r2A(e);(this._changesDetected=!o2A(this._results,i,A))&&(this._results=i,this.length=i.length,this.last=i[this.length-1],this.first=i[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(e){this._onDirty=e}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}[Symbol.iterator]=h1A};function CT(t){return(t.flags&128)===128}var dT=function(t){return t[t.OnPush=0]="OnPush",t[t.Default=1]="Default",t}(dT||{}),BT=new Map,f1A=0;function m1A(){return f1A++}function p1A(t){BT.set(t[op],t)}function k9(t){BT.delete(t[op])}var RJ="__ngContext__";function qd(t,e){m2(e)?(t[RJ]=e[op],p1A(e)):t[RJ]=e}function ET(t){return uT(t[uu])}function QT(t){return uT(t[lg])}function uT(t){for(;t!==null&&!h0(t);)t=t[lg];return t}var S9;function hT(t){S9=t}function fT(){if(S9!==void 0)return S9;if(typeof document<"u")return document;throw new te(210,!1)}var Vd=new eA("",{providedIn:"root",factory:()=>D1A}),D1A="ng",ZM=new eA(""),El=new eA("",{providedIn:"platform",factory:()=>"unknown"});var _i=new eA(""),bu=new eA("",{providedIn:"root",factory:()=>fT().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});var w1A="h",y1A="b";var mT=!1,v1A=new eA("",{providedIn:"root",factory:()=>mT});var WM=function(t){return t[t.CHANGE_DETECTION=0]="CHANGE_DETECTION",t[t.AFTER_NEXT_RENDER=1]="AFTER_NEXT_RENDER",t}(WM||{}),Zd=new eA(""),LJ=new Set;function Cg(t){LJ.has(t)||(LJ.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}var XM=(()=>{class t{view;node;constructor(A,i){this.view=A,this.node=i}static __NG_ELEMENT_ID__=M1A}return t})();function M1A(){return new XM(zt(),gs())}var bd=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(bd||{}),pT=(()=>{class t{impl=null;execute(){this.impl?.execute()}static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new t})}return t})(),b1A=[bd.EarlyRead,bd.Write,bd.MixedReadWrite,bd.Read],k1A=(()=>{class t{ngZone=f(ye);scheduler=f(LI);errorHandler=f(Ps,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){f(Zd,{optional:!0})}execute(){let A=this.sequences.size>0;A&&so(16),this.executing=!0;for(let i of b1A)for(let n of this.sequences)if(!(n.erroredOrDestroyed||!n.hooks[i]))try{n.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>{let o=n.hooks[i];return o(n.pipelinedValue)},n.snapshot))}catch(o){n.erroredOrDestroyed=!0,this.errorHandler?.handleError(o)}this.executing=!1;for(let i of this.sequences)i.afterRun(),i.once&&(this.sequences.delete(i),i.destroy());for(let i of this.deferredRegistrations)this.sequences.add(i);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),A&&so(17)}register(A){let{view:i}=A;i!==void 0?((i[Sd]??=[]).push(A),zd(i),i[ii]|=8192):this.executing?this.deferredRegistrations.add(A):this.addSequence(A)}addSequence(A){this.sequences.add(A),this.scheduler.notify(7)}unregister(A){this.executing&&this.sequences.has(A)?(A.erroredOrDestroyed=!0,A.pipelinedValue=void 0,A.once=!0):(this.sequences.delete(A),this.deferredRegistrations.delete(A))}maybeTrace(A,i){return i?i.run(WM.AFTER_NEXT_RENDER,A):A()}static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new t})}return t})(),R9=class{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(e,A,i,n,o,r=null){this.impl=e,this.hooks=A,this.view=i,this.once=n,this.snapshot=r,this.unregisterOnDestroy=o?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();let e=this.view?.[Sd];e&&(this.view[Sd]=e.filter(A=>A!==this))}};function ku(t,e){!e?.injector&&bM(ku);let A=e?.injector??f(Zt);return Cg("NgAfterRender"),DT(t,A,e,!1)}function Ir(t,e){!e?.injector&&bM(Ir);let A=e?.injector??f(Zt);return Cg("NgAfterNextRender"),DT(t,A,e,!0)}function S1A(t,e){if(t instanceof Function){let A=[void 0,void 0,void 0,void 0];return A[e]=t,A}else return[t.earlyRead,t.write,t.mixedReadWrite,t.read]}function DT(t,e,A,i){let n=e.get(pT);n.impl??=e.get(k1A);let o=e.get(Zd,null,{optional:!0}),r=A?.phase??bd.MixedReadWrite,s=A?.manualCleanup!==!0?e.get(f0):null,a=e.get(XM,null,{optional:!0}),c=new R9(n.impl,S1A(t,r),a?.view,i,s,o?.snapshot(null));return n.impl.register(c),c}var R1A=(t,e,A,i)=>{};function L1A(t,e,A,i){R1A(t,e,A,i)}var x1A=()=>null;function wT(t,e,A=!1){return x1A(t,e,A)}function yT(t,e){let A=t.contentQueries;if(A!==null){let i=pi(null);try{for(let n=0;nt,createScript:t=>t,createScriptURL:t=>t})}catch{}return Bm}function Ip(t){return N1A()?.createHTML(t)||t}var Em;function F1A(){if(Em===void 0&&(Em=null,Pa.trustedTypes))try{Em=Pa.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return Em}function xJ(t){return F1A()?.createHTML(t)||t}var u0=class{changingThisBreaksApplicationSecurity;constructor(e){this.changingThisBreaksApplicationSecurity=e}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${rY})`}},x9=class extends u0{getTypeName(){return"HTML"}},N9=class extends u0{getTypeName(){return"Style"}},F9=class extends u0{getTypeName(){return"Script"}},_9=class extends u0{getTypeName(){return"URL"}},G9=class extends u0{getTypeName(){return"ResourceURL"}};function dg(t){return t instanceof u0?t.changingThisBreaksApplicationSecurity:t}function M2(t,e){let A=_1A(t);if(A!=null&&A!==e){if(A==="ResourceURL"&&e==="URL")return!0;throw new Error(`Required a safe ${e}, got a ${A} (see ${rY})`)}return A===e}function _1A(t){return t instanceof u0&&t.getTypeName()||null}function vT(t){return new x9(t)}function MT(t){return new N9(t)}function bT(t){return new F9(t)}function kT(t){return new _9(t)}function ST(t){return new G9(t)}function G1A(t){let e=new U9(t);return K1A()?new K9(e):e}var K9=class{inertDocumentHelper;constructor(e){this.inertDocumentHelper=e}getInertBodyElement(e){e=""+e;try{let A=new window.DOMParser().parseFromString(Ip(e),"text/html").body;return A===null?this.inertDocumentHelper.getInertBodyElement(e):(A.firstChild?.remove(),A)}catch{return null}}},U9=class{defaultDoc;inertDocument;constructor(e){this.defaultDoc=e,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(e){let A=this.inertDocument.createElement("template");return A.innerHTML=Ip(e),A}};function K1A(){try{return!!new window.DOMParser().parseFromString(Ip(""),"text/html")}catch{return!1}}var U1A=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Cp(t){return t=String(t),t.match(U1A)?t:"unsafe:"+t}function p0(t){let e={};for(let A of t.split(","))e[A]=!0;return e}function Su(...t){let e={};for(let A of t)for(let i in A)A.hasOwnProperty(i)&&(e[i]=!0);return e}var RT=p0("area,br,col,hr,img,wbr"),LT=p0("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),xT=p0("rp,rt"),J1A=Su(xT,LT),Y1A=Su(LT,p0("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),T1A=Su(xT,p0("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),NJ=Su(RT,Y1A,T1A,J1A),NT=p0("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),H1A=p0("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),O1A=p0("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"),z1A=Su(NT,H1A,O1A),P1A=p0("script,style,template"),J9=class{sanitizedSomething=!1;buf=[];sanitizeChildren(e){let A=e.firstChild,i=!0,n=[];for(;A;){if(A.nodeType===Node.ELEMENT_NODE?i=this.startElement(A):A.nodeType===Node.TEXT_NODE?this.chars(A.nodeValue):this.sanitizedSomething=!0,i&&A.firstChild){n.push(A),A=V1A(A);continue}for(;A;){A.nodeType===Node.ELEMENT_NODE&&this.endElement(A);let o=q1A(A);if(o){A=o;break}A=n.pop()}}return this.buf.join("")}startElement(e){let A=FJ(e).toLowerCase();if(!NJ.hasOwnProperty(A))return this.sanitizedSomething=!0,!P1A.hasOwnProperty(A);this.buf.push("<"),this.buf.push(A);let i=e.attributes;for(let n=0;n"),!0}endElement(e){let A=FJ(e).toLowerCase();NJ.hasOwnProperty(A)&&!RT.hasOwnProperty(A)&&(this.buf.push(""))}chars(e){this.buf.push(_J(e))}};function j1A(t,e){return(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}function q1A(t){let e=t.nextSibling;if(e&&t!==e.previousSibling)throw FT(e);return e}function V1A(t){let e=t.firstChild;if(e&&j1A(t,e))throw FT(e);return e}function FJ(t){let e=t.nodeName;return typeof e=="string"?e:"FORM"}function FT(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}var Z1A=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,W1A=/([^\#-~ |!])/g;function _J(t){return t.replace(/&/g,"&").replace(Z1A,function(e){let A=e.charCodeAt(0),i=e.charCodeAt(1);return"&#"+((A-55296)*1024+(i-56320)+65536)+";"}).replace(W1A,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(//g,">")}var Qm;function Ab(t,e){let A=null;try{Qm=Qm||G1A(t);let i=e?String(e):"";A=Qm.getInertBodyElement(i);let n=5,o=i;do{if(n===0)throw new Error("Failed to sanitize html because the input is unstable");n--,i=o,o=A.innerHTML,A=Qm.getInertBodyElement(i)}while(i!==o);let s=new J9().sanitizeChildren(GJ(A)||A);return Ip(s)}finally{if(A){let i=GJ(A)||A;for(;i.firstChild;)i.firstChild.remove()}}}function GJ(t){return"content"in t&&X1A(t)?t.content:null}function X1A(t){return t.nodeType===Node.ELEMENT_NODE&&t.nodeName==="TEMPLATE"}var Xr=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(Xr||{});function b2(t){let e=_T();return e?xJ(e.sanitize(Xr.HTML,t)||""):M2(t,"HTML")?xJ(dg(t)):Ab(fT(),wI(t))}function js(t){let e=_T();return e?e.sanitize(Xr.URL,t)||"":M2(t,"URL")?dg(t):Cp(wI(t))}function _T(){let t=zt();return t&&t[E0].sanitizer}var $1A=/^>|^->||--!>|)/g,eIA="\u200B$1\u200B";function tIA(t){return t.replace($1A,e=>e.replace(AIA,eIA))}function dp(t){return t.ownerDocument.defaultView}function Wd(t){return t.ownerDocument}function GT(t){return t instanceof Function?t():t}function iIA(t,e,A){let i=t.length;for(;;){let n=t.indexOf(e,A);if(n===-1)return n;if(n===0||t.charCodeAt(n-1)<=32){let o=e.length;if(n+o===i||t.charCodeAt(n+o)<=32)return n}A=n+1}}var KT="ng-template";function nIA(t,e,A,i){let n=0;if(i){for(;n-1){let o;for(;++no?I="":I=n[g+1].toLowerCase(),i&2&&c!==I){if(cg(i))return!1;r=!0}}}}return cg(i)||r}function cg(t){return(t&1)===0}function sIA(t,e,A,i){if(e===null)return-1;let n=0;if(i||!A){let o=!1;for(;n-1)for(A++;A0?'="'+s+'"':"")+"]"}else i&8?n+="."+r:i&4&&(n+=" "+r);else n!==""&&!cg(r)&&(e+=KJ(o,n),n=""),i=r,o=o||!cg(i);A++}return n!==""&&(e+=KJ(o,n)),e}function CIA(t){return t.map(IIA).join(",")}function dIA(t){let e=[],A=[],i=1,n=2;for(;iQr&&zT(t,e,Qr,!1),so(r?2:0,n),A(i,n)}finally{SI(o),so(r?3:1,n)}}function Ep(t,e,A){kIA(t,e,A),(A.flags&64)===64&&SIA(t,e,A)}function ob(t,e,A=dl){let i=e.localNames;if(i!==null){let n=e.index+1;for(let o=0;onull;function MIA(t){return t==="class"?"className":t==="for"?"htmlFor":t==="formaction"?"formAction":t==="innerHtml"?"innerHTML":t==="readonly"?"readOnly":t==="tabindex"?"tabIndex":t}function Ru(t,e,A,i,n,o,r,s){if(!s&&sb(e,t,A,i,n)){Hd(e)&&bIA(A,e.index);return}if(e.type&3){let a=dl(e,A);i=MIA(i),n=r!=null?r(n,e.value||"",i):n,o.setProperty(a,i,n)}else e.type&12}function bIA(t,e){let A=cl(e,t);A[ii]&16||(A[ii]|=64)}function kIA(t,e,A){let i=A.directiveStart,n=A.directiveEnd;Hd(A)&&DIA(e,A,t.data[i+A.componentOffset]),t.firstCreatePass||Gm(A,e);let o=A.initialInputs;for(let r=i;r=0?i[s]():i[-s].unsubscribe(),r+=2}else{let s=i[A[r+1]];A[r].call(s)}i!==null&&(e[Sm]=null);let n=e[f2];if(n!==null){e[f2]=null;for(let r=0;r{zd(t.lView)},consumerOnSignalRead(){this.lView[wc]=this}});function tCA(t){let e=t[wc]??Object.create(iCA);return e.lView=t,e}var iCA=Fe(sA({},Cd),{consumerIsAlwaysLive:!0,kind:"template",consumerMarkedDirty:t=>{let e=kI(t.lView);for(;e&&!eH(e[hi]);)e=kI(e);e&&_Y(e)},consumerOnSignalRead(){this.lView[wc]=this}});function eH(t){return t.type!==2}function tH(t){if(t[MI]===null)return;let e=!0;for(;e;){let A=!1;for(let i of t[MI])i.dirty&&(A=!0,i.zone===null||Zone.current===i.zone?i.run():i.zone.run(()=>i.run()));e=A&&!!(t[ii]&8192)}}var nCA=100;function iH(t,e=!0,A=0){let n=t[E0].rendererFactory,o=!1;o||n.begin?.();try{oCA(t,A)}catch(r){throw e&&FIA(t,r),r}finally{o||n.end?.()}}function oCA(t,e){let A=YY();try{xm(!0),H9(t,e);let i=0;for(;ap(t);){if(i===nCA)throw new te(103,!1);i++,H9(t,1)}}finally{xm(A)}}function rCA(t,e,A,i){if(Od(e))return;let n=e[ii],o=!1,r=!1;TM(e);let s=!0,a=null,c=null;o||(eH(t)?(c=XIA(e),a=tu(c)):bv()===null?(s=!1,c=tCA(e),a=tu(c)):e[wc]&&(iu(e[wc]),e[wc]=null));try{FY(e),K2A(t.bindingStartIndex),A!==null&&PT(t,e,A,2,i);let g=(n&3)===3;if(!o)if(g){let d=t.preOrderCheckHooks;d!==null&&fm(e,d,null)}else{let d=t.preOrderHooks;d!==null&&mm(e,d,0,null),A9(e,0)}if(r||sCA(e),tH(e),nH(e,0),t.contentQueries!==null&&yT(t,e),!o)if(g){let d=t.contentCheckHooks;d!==null&&fm(e,d)}else{let d=t.contentHooks;d!==null&&mm(e,d,1),A9(e,1)}cCA(t,e);let I=t.components;I!==null&&rH(e,I,0);let C=t.viewQuery;if(C!==null&&L9(2,C,i),!o)if(g){let d=t.viewCheckHooks;d!==null&&fm(e,d)}else{let d=t.viewHooks;d!==null&&mm(e,d,2),A9(e,2)}if(t.firstUpdatePass===!0&&(t.firstUpdatePass=!1),e[$v]){for(let d of e[$v])d();e[$v]=null}o||($T(e),e[ii]&=-73)}catch(g){throw o||zd(e),g}finally{c!==null&&(Gf(c,a),s&&ACA(c)),HM()}}function nH(t,e){for(let A=ET(t);A!==null;A=QT(A))for(let i=ys;i0&&(t[A-1][lg]=i[lg]);let o=bm(t,ys+e);JIA(i[hi],i);let r=o[Q0];r!==null&&r.detachView(o[hi]),i[vs]=null,i[lg]=null,i[ii]&=-129}return i}function gCA(t,e,A,i){let n=ys+i,o=A.length;i>0&&(A[n-1][lg]=e),i-1&&(mu(e,i),bm(A,i))}this._attachedToViewContainer=!1}Qp(this._lView[hi],this._lView)}onDestroy(e){GY(this._lView,e)}markForCheck(){Cb(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[ii]&=-129}reattach(){h9(this._lView),this._lView[ii]|=128}detectChanges(){this._lView[ii]|=1024,iH(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new te(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;let e=Lm(this._lView),A=this._lView[vI];A!==null&&!e&&lb(A,this._lView),qT(this._lView[hi],this._lView)}attachToAppRef(e){if(this._attachedToViewContainer)throw new te(902,!1);this._appRef=e;let A=Lm(this._lView),i=this._lView[vI];i!==null&&!A&&gH(i,this._lView),h9(this._lView)}};var mn=(()=>{class t{static __NG_ELEMENT_ID__=CCA}return t})(),lCA=mn,ICA=class extends lCA{_declarationLView;_declarationTContainer;elementRef;constructor(e,A,i){super(),this._declarationLView=e,this._declarationTContainer=A,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(e,A){return this.createEmbeddedViewImpl(e,A)}createEmbeddedViewImpl(e,A,i){let n=Lu(this._declarationLView,this._declarationTContainer,e,{embeddedViewInjector:A,dehydratedView:i});return new pu(n)}};function CCA(){return fp(gs(),zt())}function fp(t,e){return t.type&4?new ICA(e,t,jd(t,e)):null}function Xd(t,e,A,i,n){let o=t.data[e];if(o===null)o=dCA(t,e,A,i,n),U2A()&&(o.flags|=32);else if(o.type&64){o.type=A,o.value=i,o.attrs=n;let r=_2A();o.injectorIndex=r===null?-1:r.injectorIndex}return w2(o,!0),o}function dCA(t,e,A,i,n){let o=UY(),r=GM(),s=r?o:o&&o.parent,a=t.data[e]=ECA(t,s,A,e,i,n);return BCA(t,a,o,r),a}function BCA(t,e,A,i){t.firstChild===null&&(t.firstChild=e),A!==null&&(i?A.child==null&&e.parent!==null&&(A.child=e):A.next===null&&(A.next=e,e.prev=A))}function ECA(t,e,A,i,n,o){let r=e?e.injectorIndex:-1,s=0;return KY()&&(s|=128),{type:A,index:i,insertBeforeIndex:null,injectorIndex:r,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:s,providerIndexes:0,value:n,attrs:o,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}var pie=new RegExp(`^(\\d+)*(${y1A}|${w1A})*(.*)`);var QCA=()=>null;function Ud(t,e){return QCA(t,e)}var uCA=class{},lH=class{},O9=class{resolveComponentFactory(e){throw Error(`No component factory found for ${Ia(e)}.`)}},mp=class{static NULL=new O9},Ms=class{},qi=(()=>{class t{destroyNode=null;static __NG_ELEMENT_ID__=()=>hCA()}return t})();function hCA(){let t=zt(),e=gs(),A=cl(e.index,t);return(m2(A)?A:t)[Jo]}var fCA=(()=>{class t{static \u0275prov=bA({token:t,providedIn:"root",factory:()=>null})}return t})();var i9={},z9=class{injector;parentInjector;constructor(e,A){this.injector=e,this.parentInjector=A}get(e,A,i){i=Ap(i);let n=this.injector.get(e,i9,i);return n!==i9||A===i9?n:this.parentInjector.get(e,A,i)}};function P9(t,e,A){let i=A?t.styles:null,n=A?t.classes:null,o=0;if(e!==null)for(let r=0;r0&&(A.directiveToIndex=new Map);for(let C=0;C0;){let A=t[--e];if(typeof A=="number"&&A<0)return A}return 0}function SCA(t,e,A){if(A){if(e.exportAs)for(let i=0;i{let[A,i,n]=t[e],o={propName:A,templateName:e,isSignal:(i&Bp.SignalBased)!==0};return n&&(o.transform=n),o})}function xCA(t){return Object.keys(t).map(e=>({propName:t[e],templateName:e}))}function NCA(t,e,A){let i=e instanceof vr?e:e?.injector;return i&&t.getStandaloneInjector!==null&&(i=t.getStandaloneInjector(i)||i),i?new z9(A,i):A}function FCA(t){let e=t.get(Ms,null);if(e===null)throw new te(407,!1);let A=t.get(fCA,null),i=t.get(LI,null);return{rendererFactory:e,sanitizer:A,changeDetectionScheduler:i}}function _CA(t,e){let A=(t.selectors[0][0]||"div").toLowerCase();return JT(e,A,A==="svg"?xY:A==="math"?w2A:null)}var xI=class extends lH{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=LCA(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=xCA(this.componentDef.outputs),this.cachedOutputs}constructor(e,A){super(),this.componentDef=e,this.ngModule=A,this.componentType=e.type,this.selector=CIA(e.selectors),this.ngContentSelectors=e.ngContentSelectors??[],this.isBoundToModule=!!A}create(e,A,i,n){so(22);let o=pi(null);try{let r=this.componentDef,s=i?["ng-version","19.2.15"]:dIA(this.componentDef.selectors[0]),a=tb(0,null,null,1,0,null,null,null,null,[s],null),c=NCA(r,n||this.ngModule,e),g=FCA(c),I=g.rendererFactory.createRenderer(null,r),C=i?wIA(I,i,r.encapsulation,c):_CA(r,I),d=ib(null,a,null,512|HT(r),null,null,g,I,c,null,wT(C,c,!0));d[Qr]=C,TM(d);let B=null;try{let E=dH(Qr,a,d,"#host",()=>[this.componentDef],!0,0);C&&(TT(I,C,E),qd(C,d)),Ep(a,d,E),$M(a,E,d),BH(a,E),A!==void 0&&GCA(E,this.ngContentSelectors,A),B=cl(E.index,d),d[Kr]=B[Kr],ab(a,d,null)}catch(E){throw B!==null&&k9(B),k9(d),E}finally{so(23),HM()}return new j9(this.componentType,d)}finally{pi(o)}}},j9=class extends uCA{_rootLView;instance;hostView;changeDetectorRef;componentType;location;previousInputValues=null;_tNode;constructor(e,A){super(),this._rootLView=A,this._tNode=RM(A[hi],Qr),this.location=jd(this._tNode,A),this.instance=cl(this._tNode.index,A)[Kr],this.hostView=this.changeDetectorRef=new pu(A,void 0,!1),this.componentType=e}setInput(e,A){let i=this._tNode;if(this.previousInputValues??=new Map,this.previousInputValues.has(e)&&Object.is(this.previousInputValues.get(e),A))return;let n=this._rootLView,o=sb(i,n[hi],n,e,A);this.previousInputValues.set(e,A);let r=cl(i.index,n);Cb(r,1)}get injector(){return new DI(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(e){this.hostView.onDestroy(e)}};function GCA(t,e,A){let i=t.projection=[];for(let n=0;n{class t{static __NG_ELEMENT_ID__=KCA}return t})();function KCA(){let t=gs();return QH(t,zt())}var UCA=Sn,EH=class extends UCA{_lContainer;_hostTNode;_hostLView;constructor(e,A,i){super(),this._lContainer=e,this._hostTNode=A,this._hostLView=i}get element(){return jd(this._hostTNode,this._hostLView)}get injector(){return new DI(this._hostTNode,this._hostLView)}get parentInjector(){let e=zM(this._hostTNode,this._hostLView);if(ZY(e)){let A=Fm(e,this._hostLView),i=Nm(e),n=A[hi].data[i+8];return new DI(n,A)}else return new DI(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(e){let A=OJ(this._lContainer);return A!==null&&A[e]||null}get length(){return this._lContainer.length-ys}createEmbeddedView(e,A,i){let n,o;typeof i=="number"?n=i:i!=null&&(n=i.index,o=i.injector);let r=Ud(this._lContainer,e.ssrId),s=e.createEmbeddedViewImpl(A||{},o,r);return this.insertImpl(s,n,Kd(this._hostTNode,r)),s}createComponent(e,A,i,n,o){let r=e&&!f2A(e),s;if(r)s=A;else{let B=A||{};s=B.index,i=B.injector,n=B.projectableNodes,o=B.environmentInjector||B.ngModuleRef}let a=r?e:new xI(p2(e)),c=i||this.parentInjector;if(!o&&a.ngModule==null){let E=(r?c:this.parentInjector).get(vr,null);E&&(o=E)}let g=p2(a.componentType??{}),I=Ud(this._lContainer,g?.id??null),C=I?.firstChild??null,d=a.create(c,n,C,o);return this.insertImpl(d.hostView,s,Kd(this._hostTNode,I)),d}insert(e,A){return this.insertImpl(e,A,!0)}insertImpl(e,A,i){let n=e._lView;if(M2A(n)){let s=this.indexOf(e);if(s!==-1)this.detach(s);else{let a=n[vs],c=new EH(a,a[Ba],a[vs]);c.detach(c.indexOf(e))}}let o=this._adjustIndex(A),r=this._lContainer;return xu(r,n,o,i),e.attachToViewContainerRef(),hY(n9(r),o,e),e}move(e,A){return this.insert(e,A)}indexOf(e){let A=OJ(this._lContainer);return A!==null?A.indexOf(e):-1}remove(e){let A=this._adjustIndex(e,-1),i=mu(this._lContainer,A);i&&(bm(n9(this._lContainer),A),Qp(i[hi],i))}detach(e){let A=this._adjustIndex(e,-1),i=mu(this._lContainer,A);return i&&bm(n9(this._lContainer),A)!=null?new pu(i):null}_adjustIndex(e,A=0){return e??this.length+A}};function OJ(t){return t[Rm]}function n9(t){return t[Rm]||(t[Rm]=[])}function QH(t,e){let A,i=e[t.index];return h0(i)?A=i:(A=sH(i,e,null,t),e[t.index]=A,nb(e,A)),YCA(A,e,t,i),new EH(A,t,e)}function JCA(t,e){let A=t[Jo],i=A.createComment(""),n=dl(e,t),o=A.parentNode(n);return Jm(A,o,i,A.nextSibling(n),!1),i}var YCA=OCA,TCA=()=>!1;function HCA(t,e,A){return TCA(t,e,A)}function OCA(t,e,A,i){if(t[bI])return;let n;A.type&8?n=al(i):n=JCA(e,A),t[bI]=n}var q9=class t{queryList;matches=null;constructor(e){this.queryList=e}clone(){return new t(this.queryList)}setDirty(){this.queryList.setDirty()}},V9=class t{queries;constructor(e=[]){this.queries=e}createEmbeddedView(e){let A=e.queries;if(A!==null){let i=e.contentQueries!==null?e.contentQueries[0]:A.length,n=[];for(let o=0;o0)i.push(r[s/2]);else{let c=o[s+1],g=e[-a];for(let I=ys;Ie.trim())}function pH(t,e,A){t.queries===null&&(t.queries=new Z9),t.queries.track(new W9(e,A))}function ZCA(t,e){let A=t.contentQueries||(t.contentQueries=[]),i=A.length?A[A.length-1]:-1;e!==i&&A.push(t.queries.length-1,e)}function Eb(t,e){return t.queries.getByIndex(e)}function DH(t,e){let A=t[hi],i=Eb(A,e);return i.crossesNgTemplate?X9(A,t,e,[]):uH(A,t,i,e)}function Qb(t,e,A){let i,n=Yf(()=>{i._dirtyCounter();let o=XCA(i,t);if(e&&o===void 0)throw new te(-951,!1);return o});return i=n[aa],i._dirtyCounter=Ao(0),i._flatValue=void 0,n}function wH(t){return Qb(!0,!1,t)}function yH(t){return Qb(!0,!0,t)}function WCA(t){return Qb(!1,!1,t)}function vH(t,e){let A=t[aa];A._lView=zt(),A._queryIndex=e,A._queryList=Bb(A._lView,e),A._queryList.onDirty(()=>A._dirtyCounter.update(i=>i+1))}function XCA(t,e){let A=t._lView,i=t._queryIndex;if(A===void 0||i===void 0||A[ii]&4)return e?void 0:zs;let n=Bb(A,i),o=DH(A,i);return n.reset(o,lT),e?n.first:n._changesDetected||t._flatValue===void 0?t._flatValue=n.toArray():t._flatValue}function zJ(t,e){return wH(e)}function $CA(t,e){return yH(e)}var qs=(zJ.required=$CA,zJ);function MH(t,e){return WCA(e)}function PJ(t,e){return wH(e)}function AdA(t,e){return yH(e)}var bH=(PJ.required=AdA,PJ);var Il=class{},ub=class{};function kH(t,e){return new Om(t,e??null,[])}var Om=class extends Il{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];componentFactoryResolver=new Tm(this);constructor(e,A,i,n=!0){super(),this.ngModuleType=e,this._parent=A;let o=pY(e);this._bootstrapComponents=GT(o.bootstrap),this._r3Injector=oT(e,A,[{provide:Il,useValue:this},{provide:mp,useValue:this.componentFactoryResolver},...i],Ia(e),new Set(["environment"])),n&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}get injector(){return this._r3Injector}destroy(){let e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(A=>A()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}},$9=class extends ub{moduleType;constructor(e){super(),this.moduleType=e}create(e){return new Om(this.moduleType,e,[])}};var zm=class extends Il{injector;componentFactoryResolver=new Tm(this);instance=null;constructor(e){super();let A=new Qu([...e.providers,{provide:Il,useValue:this},{provide:mp,useValue:this.componentFactoryResolver}],e.parent||np(),e.debugName,new Set(["environment"]));this.injector=A,e.runEnvironmentInitializers&&A.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(e){this.injector.onDestroy(e)}};function Nu(t,e,A=null){return new zm({providers:t,parent:e,debugName:A,runEnvironmentInitializers:!0}).injector}var edA=(()=>{class t{_injector;cachedInjectors=new Map;constructor(A){this._injector=A}getOrCreateStandaloneInjector(A){if(!A.standalone)return null;if(!this.cachedInjectors.has(A)){let i=wY(!1,A.type),n=i.length>0?Nu([i],this._injector,`Standalone[${A.type.name}]`):null;this.cachedInjectors.set(A,n)}return this.cachedInjectors.get(A)}ngOnDestroy(){try{for(let A of this.cachedInjectors.values())A!==null&&A.destroy()}finally{this.cachedInjectors.clear()}}static \u0275prov=bA({token:t,providedIn:"environment",factory:()=>new t(be(vr))})}return t})();function jA(t){return wu(()=>{let e=SH(t),A=Fe(sA({},e),{decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===dT.OnPush,directiveDefs:null,pipeDefs:null,dependencies:e.standalone&&t.dependencies||null,getStandaloneInjector:e.standalone?n=>n.get(edA).getOrCreateStandaloneInjector(A):null,getExternalStyles:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||gl.Emulated,styles:t.styles||zs,_:null,schemas:t.schemas||null,tView:null,id:""});e.standalone&&Cg("NgStandalone"),RH(A);let i=t.dependencies;return A.directiveDefs=jJ(i,!1),A.pipeDefs=jJ(i,!0),A.id=rdA(A),A})}function tdA(t){return p2(t)||DY(t)}function idA(t){return t!==null}function Ze(t){return wu(()=>({type:t.type,bootstrap:t.bootstrap||zs,declarations:t.declarations||zs,imports:t.imports||zs,exports:t.exports||zs,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function ndA(t,e){if(t==null)return sl;let A={};for(let i in t)if(t.hasOwnProperty(i)){let n=t[i],o,r,s,a;Array.isArray(n)?(s=n[0],o=n[1],r=n[2]??o,a=n[3]||null):(o=n,r=n,s=Bp.None,a=null),A[o]=[i,s,a],e[o]=r}return A}function odA(t){if(t==null)return sl;let e={};for(let A in t)t.hasOwnProperty(A)&&(e[t[A]]=A);return e}function WA(t){return wu(()=>{let e=SH(t);return RH(e),e})}function $d(t){return{type:t.type,name:t.name,factory:null,pure:t.pure!==!1,standalone:t.standalone??!0,onDestroy:t.type.prototype.ngOnDestroy||null}}function SH(t){let e={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:e,inputConfig:t.inputs||sl,exportAs:t.exportAs||null,standalone:t.standalone??!0,signals:t.signals===!0,selectors:t.selectors||zs,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:ndA(t.inputs,e),outputs:odA(t.outputs),debugInfo:null}}function RH(t){t.features?.forEach(e=>e(t))}function jJ(t,e){if(!t)return null;let A=e?g2A:tdA;return()=>(typeof t=="function"?t():t).map(i=>A(i)).filter(idA)}function rdA(t){let e=0,A=typeof t.consts=="function"?"":t.consts,i=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,A,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery];for(let o of i.join("|"))e=Math.imul(31,e)+o.charCodeAt(0)<<0;return e+=2147483648,"c"+e}function sdA(t){return Object.getPrototypeOf(t.prototype).constructor}function lt(t){let e=sdA(t.type),A=!0,i=[t];for(;e;){let n;if(Ig(t))n=e.\u0275cmp||e.\u0275dir;else{if(e.\u0275cmp)throw new te(903,!1);n=e.\u0275dir}if(n){if(A){i.push(n);let r=t;r.inputs=o9(t.inputs),r.declaredInputs=o9(t.declaredInputs),r.outputs=o9(t.outputs);let s=n.hostBindings;s&&IdA(t,s);let a=n.viewQuery,c=n.contentQueries;if(a&&gdA(t,a),c&&ldA(t,c),adA(t,n),T0A(t.outputs,n.outputs),Ig(n)&&n.data.animation){let g=t.data;g.animation=(g.animation||[]).concat(n.data.animation)}}let o=n.features;if(o)for(let r=0;r=0;i--){let n=t[i];n.hostVars=e+=n.hostVars,n.hostAttrs=Gd(n.hostAttrs,A=Gd(A,n.hostAttrs))}}function o9(t){return t===sl?{}:t===zs?[]:t}function gdA(t,e){let A=t.viewQuery;A?t.viewQuery=(i,n)=>{e(i,n),A(i,n)}:t.viewQuery=e}function ldA(t,e){let A=t.contentQueries;A?t.contentQueries=(i,n,o)=>{e(i,n,o),A(i,n,o)}:t.contentQueries=e}function IdA(t,e){let A=t.hostBindings;A?t.hostBindings=(i,n)=>{e(i,n),A(i,n)}:t.hostBindings=e}function LH(t){let e=A=>{let i=Array.isArray(t);A.hostDirectives===null?(A.findHostDirectiveDefs=xH,A.hostDirectives=i?t.map(AM):[t]):i?A.hostDirectives.unshift(...t.map(AM)):A.hostDirectives.unshift(t)};return e.ngInherit=!0,e}function xH(t,e,A){if(t.hostDirectives!==null)for(let i of t.hostDirectives)if(typeof i=="function"){let n=i();for(let o of n)qJ(AM(o),e,A)}else qJ(i,e,A)}function qJ(t,e,A){let i=DY(t.directive);CdA(i.declaredInputs,t.inputs),xH(i,e,A),A.set(i,t),e.push(i)}function AM(t){return typeof t=="function"?{directive:cs(t),inputs:sl,outputs:sl}:{directive:cs(t.directive),inputs:VJ(t.inputs),outputs:VJ(t.outputs)}}function VJ(t){if(t===void 0||t.length===0)return sl;let e={};for(let A=0;A{class t{log(A){console.log(A)}warn(A){console.warn(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();var pb=new eA(""),Fu=new eA(""),pp=(()=>{class t{_ngZone;registry;_isZoneStable=!0;_callbacks=[];_taskTrackingZone=null;_destroyRef;constructor(A,i,n){this._ngZone=A,this.registry=i,MM()&&(this._destroyRef=f(f0,{optional:!0})??void 0),Db||(hdA(n),n.addToWindow(i)),this._watchAngularEvents(),A.run(()=>{this._taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){let A=this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),i=this._ngZone.runOutsideAngular(()=>this._ngZone.onStable.subscribe({next:()=>{ye.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}}));this._destroyRef?.onDestroy(()=>{A.unsubscribe(),i.unsubscribe()})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;this._callbacks.length!==0;){let A=this._callbacks.pop();clearTimeout(A.timeoutId),A.doneCb()}});else{let A=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>i.updateCb&&i.updateCb(A)?(clearTimeout(i.timeoutId),!1):!0)}}getPendingTasks(){return this._taskTrackingZone?this._taskTrackingZone.macroTasks.map(A=>({source:A.source,creationLocation:A.creationLocation,data:A.data})):[]}addCallback(A,i,n){let o=-1;i&&i>0&&(o=setTimeout(()=>{this._callbacks=this._callbacks.filter(r=>r.timeoutId!==o),A()},i)),this._callbacks.push({doneCb:A,timeoutId:o,updateCb:n})}whenStable(A,i,n){if(n&&!this._taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(A,i,n),this._runCallbacksIfReady()}registerApplication(A){this.registry.registerApplication(A,this)}unregisterApplication(A){this.registry.unregisterApplication(A)}findProviders(A,i,n){return[]}static \u0275fac=function(i){return new(i||t)(be(ye),be(Dp),be(Fu))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),Dp=(()=>{class t{_applications=new Map;registerApplication(A,i){this._applications.set(A,i)}unregisterApplication(A){this._applications.delete(A)}unregisterAllApplications(){this._applications.clear()}getTestability(A){return this._applications.get(A)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(A,i=!0){return Db?.findTestabilityInTree(this,A,i)??null}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function hdA(t){Db=t}var Db,_H=(()=>{class t{static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new eM})}return t})(),eM=class{queuedEffectCount=0;queues=new Map;schedule(e){this.enqueue(e)}remove(e){let A=e.zone,i=this.queues.get(A);i.has(e)&&(i.delete(e),this.queuedEffectCount--)}enqueue(e){let A=e.zone;this.queues.has(A)||this.queues.set(A,new Set);let i=this.queues.get(A);i.has(e)||(this.queuedEffectCount++,i.add(e))}flush(){for(;this.queuedEffectCount>0;)for(let[e,A]of this.queues)e===null?this.flushQueue(A):e.run(()=>this.flushQueue(A))}flushQueue(e){for(let A of e)e.delete(A),this.queuedEffectCount--,A.run()}};function k2(t){return!!t&&typeof t.then=="function"}function wb(t){return!!t&&typeof t.subscribe=="function"}var GH=new eA("");function yb(t){return vu([{provide:GH,multi:!0,useValue:t}])}var KH=(()=>{class t{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((A,i)=>{this.resolve=A,this.reject=i});appInits=f(GH,{optional:!0})??[];injector=f(Zt);constructor(){}runInitializers(){if(this.initialized)return;let A=[];for(let n of this.appInits){let o=da(this.injector,n);if(k2(o))A.push(o);else if(wb(o)){let r=new Promise((s,a)=>{o.subscribe({complete:s,error:a})});A.push(r)}}let i=()=>{this.done=!0,this.resolve()};Promise.all(A).then(()=>{i()}).catch(n=>{this.reject(n)}),A.length===0&&i(),this.initialized=!0}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),vb=new eA("");function fdA(){Lv(()=>{throw new te(600,!1)})}function mdA(t){return t.isBoundToModule}var pdA=10;var Ca=(()=>{class t{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=f(B1A);afterRenderManager=f(pT);zonelessEnabled=f(jM);rootEffectScheduler=f(_H);dirtyFlags=0;tracingSnapshot=null;externalTestViews=new Set;afterTick=new qA;get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];isStable=f(m0).hasPendingTasks.pipe(je(A=>!A));constructor(){f(Zd,{optional:!0})}whenStable(){let A;return new Promise(i=>{A=this.isStable.subscribe({next:n=>{n&&i()}})}).finally(()=>{A.unsubscribe()})}_injector=f(vr);_rendererFactory=null;get injector(){return this._injector}bootstrap(A,i){return this.bootstrapImpl(A,i)}bootstrapImpl(A,i,n=Zt.NULL){so(10);let o=A instanceof lH;if(!this._injector.get(KH).done){let d="";throw new te(405,d)}let s;o?s=A:s=this._injector.get(mp).resolveComponentFactory(A),this.componentTypes.push(s.componentType);let a=mdA(s)?void 0:this._injector.get(Il),c=i||s.selector,g=s.create(n,[],c,a),I=g.location.nativeElement,C=g.injector.get(pb,null);return C?.registerApplication(I),g.onDestroy(()=>{this.detachView(g.hostView),Dm(this.components,g),C?.unregisterApplication(I)}),this._loadComponent(g),so(11,g),g}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){so(12),this.tracingSnapshot!==null?this.tracingSnapshot.run(WM.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw new te(101,!1);let A=pi(null);try{this._runningTick=!0,this.synchronize()}catch(i){this.internalErrorHandler(i)}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,pi(A),this.afterTick.next(),so(13)}};synchronize(){this._rendererFactory===null&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(Ms,null,{optional:!0}));let A=0;for(;this.dirtyFlags!==0&&A++ap(A))){this.dirtyFlags|=2;return}else this.dirtyFlags&=-8}attachView(A){let i=A;this._views.push(i),i.attachToAppRef(this)}detachView(A){let i=A;Dm(this._views,i),i.detachFromAppRef()}_loadComponent(A){this.attachView(A.hostView),this.tick(),this.components.push(A),this._injector.get(vb,[]).forEach(n=>n(A))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(A=>A()),this._views.slice().forEach(A=>A.destroy())}finally{this._destroyed=!0,this._views=[],this._destroyListeners=[]}}onDestroy(A){return this._destroyListeners.push(A),()=>Dm(this._destroyListeners,A)}destroy(){if(this._destroyed)throw new te(406,!1);let A=this._injector;A.destroy&&!A.destroyed&&A.destroy()}get viewCount(){return this._views.length}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Dm(t,e){let A=t.indexOf(e);A>-1&&t.splice(A,1)}function DdA(t,e,A,i){if(!A&&!ap(t))return;iH(t,e,A&&!i?0:1)}function Ke(t,e,A,i){let n=zt(),o=y2();if(Va(n,o,e)){let r=ao(),s=Pd();LIA(s,n,t,e,A,i)}return Ke}function Mb(t,e,A,i){return Va(t,y2(),A)?e+wI(A)+i:Ea}function wdA(t,e,A,i,n,o){let r=G2A(),s=FH(t,r,A,n);return UM(2),s?e+wI(A)+i+wI(n)+o:Ea}function um(t,e){return t<<17|e<<2}function NI(t){return t>>17&32767}function ydA(t){return(t&2)==2}function vdA(t,e){return t&131071|e<<17}function tM(t){return t|2}function Jd(t){return(t&131068)>>2}function r9(t,e){return t&-131069|e<<2}function MdA(t){return(t&1)===1}function iM(t){return t|1}function bdA(t,e,A,i,n,o){let r=o?e.classBindings:e.styleBindings,s=NI(r),a=Jd(r);t[i]=A;let c=!1,g;if(Array.isArray(A)){let I=A;g=I[1],(g===null||yu(I,g)>0)&&(c=!0)}else g=A;if(n)if(a!==0){let C=NI(t[s+1]);t[i+1]=um(C,s),C!==0&&(t[C+1]=r9(t[C+1],i)),t[s+1]=vdA(t[s+1],i)}else t[i+1]=um(s,0),s!==0&&(t[s+1]=r9(t[s+1],i)),s=i;else t[i+1]=um(a,0),s===0?s=i:t[a+1]=r9(t[a+1],i),a=i;c&&(t[i+1]=tM(t[i+1])),ZJ(t,g,i,!0),ZJ(t,g,i,!1),kdA(e,g,t,i,o),r=um(s,a),o?e.classBindings=r:e.styleBindings=r}function kdA(t,e,A,i,n){let o=n?t.residualClasses:t.residualStyles;o!=null&&typeof e=="string"&&yu(o,e)>=0&&(A[i+1]=iM(A[i+1]))}function ZJ(t,e,A,i){let n=t[A+1],o=e===null,r=i?NI(n):Jd(n),s=!1;for(;r!==0&&(s===!1||o);){let a=t[r],c=t[r+1];SdA(a,e)&&(s=!0,t[r+1]=i?iM(c):tM(c)),r=i?NI(c):Jd(c)}s&&(t[A+1]=i?tM(n):iM(n))}function SdA(t,e){return t===null||e==null||(Array.isArray(t)?t[1]:t)===e?!0:Array.isArray(t)&&typeof e=="string"?yu(t,e)>=0:!1}var gg={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function RdA(t){return t.substring(gg.key,gg.keyEnd)}function LdA(t){return xdA(t),UH(t,JH(t,0,gg.textEnd))}function UH(t,e){let A=gg.textEnd;return A===e?-1:(e=gg.keyEnd=NdA(t,gg.key=e,A),JH(t,e,A))}function xdA(t){gg.key=0,gg.keyEnd=0,gg.value=0,gg.valueEnd=0,gg.textEnd=t.length}function JH(t,e,A){for(;e32;)e++;return e}function yA(t,e,A){let i=zt(),n=y2();if(Va(i,n,e)){let o=ao(),r=Pd();Ru(o,r,i,t,e,i[Jo],A,!1)}return yA}function nM(t,e,A,i,n){sb(e,t,A,n?"class":"style",i)}function mo(t,e,A){return TH(t,e,A,!1),mo}function he(t,e){return TH(t,e,null,!0),he}function Ro(t){HH(JdA,YH,t,!0)}function YH(t,e){for(let A=LdA(e);A>=0;A=UH(e,A))tp(t,RdA(e),!0)}function TH(t,e,A,i){let n=zt(),o=ao(),r=UM(2);if(o.firstUpdatePass&&zH(o,t,r,i),e!==Ea&&Va(n,r,e)){let s=o.data[Bl()];PH(o,s,n,n[Jo],t,n[r+1]=TdA(e,A),i,r)}}function HH(t,e,A,i){let n=ao(),o=UM(2);n.firstUpdatePass&&zH(n,null,o,i);let r=zt();if(A!==Ea&&Va(r,o,A)){let s=n.data[Bl()];if(jH(s,i)&&!OH(n,o)){let a=i?s.classesWithoutHost:s.stylesWithoutHost;a!==null&&(A=l9(a,A||"")),nM(n,s,r,A,i)}else YdA(n,s,r,r[Jo],r[o+1],r[o+1]=UdA(t,e,A),i,o)}}function OH(t,e){return e>=t.expandoStartIndex}function zH(t,e,A,i){let n=t.data;if(n[A+1]===null){let o=n[Bl()],r=OH(t,A);jH(o,i)&&e===null&&!r&&(e=!1),e=FdA(n,o,e,i),bdA(n,o,e,A,r,i)}}function FdA(t,e,A,i){let n=JM(t),o=i?e.residualClasses:e.residualStyles;if(n===null)(i?e.classBindings:e.styleBindings)===0&&(A=s9(null,t,e,A,i),A=Du(A,e.attrs,i),o=null);else{let r=e.directiveStylingLast;if(r===-1||t[r]!==n)if(A=s9(n,t,e,A,i),o===null){let a=_dA(t,e,i);a!==void 0&&Array.isArray(a)&&(a=s9(null,t,e,a[1],i),a=Du(a,e.attrs,i),GdA(t,e,i,a))}else o=KdA(t,e,i)}return o!==void 0&&(i?e.residualClasses=o:e.residualStyles=o),A}function _dA(t,e,A){let i=A?e.classBindings:e.styleBindings;if(Jd(i)!==0)return t[NI(i)]}function GdA(t,e,A,i){let n=A?e.classBindings:e.styleBindings;t[NI(n)]=i}function KdA(t,e,A){let i,n=e.directiveEnd;for(let o=1+e.directiveStylingLast;o0;){let a=t[n],c=Array.isArray(a),g=c?a[1]:a,I=g===null,C=A[n+1];C===Ea&&(C=I?zs:void 0);let d=I?Wv(C,i):g===i?C:void 0;if(c&&!jm(d)&&(d=Wv(a,i)),jm(d)&&(s=d,r))return s;let B=t[n+1];n=r?NI(B):Jd(B)}if(e!==null){let a=o?e.residualClasses:e.residualStyles;a!=null&&(s=Wv(a,i))}return s}function jm(t){return t!==void 0}function TdA(t,e){return t==null||t===""||(typeof e=="string"?t=t+e:typeof t=="object"&&(t=Ia(dg(t)))),t}function jH(t,e){return(t.flags&(e?8:16))!==0}function qH(t,e,A){let i=zt(),n=Mb(i,t,e,A);HH(tp,YH,n,!0)}var oM=class{destroy(e){}updateValue(e,A){}swap(e,A){let i=Math.min(e,A),n=Math.max(e,A),o=this.detach(n);if(n-i>1){let r=this.detach(i);this.attach(i,o),this.attach(n,r)}else this.attach(i,o)}move(e,A){this.attach(A,this.detach(e))}};function a9(t,e,A,i,n){return t===A&&Object.is(e,i)?1:Object.is(n(t,e),n(A,i))?-1:0}function HdA(t,e,A){let i,n,o=0,r=t.length-1,s=void 0;if(Array.isArray(e)){let a=e.length-1;for(;o<=r&&o<=a;){let c=t.at(o),g=e[o],I=a9(o,c,o,g,A);if(I!==0){I<0&&t.updateValue(o,g),o++;continue}let C=t.at(r),d=e[a],B=a9(r,C,a,d,A);if(B!==0){B<0&&t.updateValue(r,d),r--,a--;continue}let E=A(o,c),u=A(r,C),h=A(o,g);if(Object.is(h,u)){let w=A(a,d);Object.is(w,E)?(t.swap(o,r),t.updateValue(r,d),a--,r--):t.move(r,o),t.updateValue(o,g),o++;continue}if(i??=new qm,n??=$J(t,o,r,A),rM(t,i,o,h))t.updateValue(o,g),o++,r++;else if(n.has(h))i.set(E,t.detach(o)),r--;else{let w=t.create(o,e[o]);t.attach(o,w),o++,r++}}for(;o<=a;)XJ(t,i,A,o,e[o]),o++}else if(e!=null){let a=e[Symbol.iterator](),c=a.next();for(;!c.done&&o<=r;){let g=t.at(o),I=c.value,C=a9(o,g,o,I,A);if(C!==0)C<0&&t.updateValue(o,I),o++,c=a.next();else{i??=new qm,n??=$J(t,o,r,A);let d=A(o,I);if(rM(t,i,o,d))t.updateValue(o,I),o++,r++,c=a.next();else if(!n.has(d))t.attach(o,t.create(o,I)),o++,r++,c=a.next();else{let B=A(o,g);i.set(B,t.detach(o)),r--}}}for(;!c.done;)XJ(t,i,A,t.length,c.value),c=a.next()}for(;o<=r;)t.destroy(t.detach(r--));i?.forEach(a=>{t.destroy(a)})}function rM(t,e,A,i){return e!==void 0&&e.has(i)?(t.attach(A,e.get(i)),e.delete(i),!0):!1}function XJ(t,e,A,i,n){if(rM(t,e,i,A(i,n)))t.updateValue(i,n);else{let o=t.create(i,n);t.attach(i,o)}}function $J(t,e,A,i){let n=new Set;for(let o=e;o<=A;o++)n.add(i(o,t.at(o)));return n}var qm=class{kvMap=new Map;_vMap=void 0;has(e){return this.kvMap.has(e)}delete(e){if(!this.has(e))return!1;let A=this.kvMap.get(e);return this._vMap!==void 0&&this._vMap.has(A)?(this.kvMap.set(e,this._vMap.get(A)),this._vMap.delete(A)):this.kvMap.delete(e),!0}get(e){return this.kvMap.get(e)}set(e,A){if(this.kvMap.has(e)){let i=this.kvMap.get(e);this._vMap===void 0&&(this._vMap=new Map);let n=this._vMap;for(;n.has(i);)i=n.get(i);n.set(i,A)}else this.kvMap.set(e,A)}forEach(e){for(let[A,i]of this.kvMap)if(e(i,A),this._vMap!==void 0){let n=this._vMap;for(;n.has(i);)i=n.get(i),e(i,A)}}};function _A(t,e){Cg("NgControlFlow");let A=zt(),i=y2(),n=A[i]!==Ea?A[i]:-1,o=n!==-1?Vm(A,Qr+n):void 0,r=0;if(Va(A,i,t)){let s=pi(null);try{if(o!==void 0&&cH(o,r),t!==-1){let a=Qr+t,c=Vm(A,a),g=gM(A[hi],a),I=Ud(c,g.tView.ssrId),C=Lu(A,g,e,{dehydratedView:I});xu(c,C,r,Kd(g,I))}}finally{pi(s)}}else if(o!==void 0){let s=aH(o,r);s!==void 0&&(s[Kr]=e)}}var sM=class{lContainer;$implicit;$index;constructor(e,A,i){this.lContainer=e,this.$implicit=A,this.$index=i}get $count(){return this.lContainer.length-ys}};function AB(t){return t}function zn(t,e){return e}var aM=class{hasEmptyBlock;trackByFn;liveCollection;constructor(e,A,i){this.hasEmptyBlock=e,this.trackByFn=A,this.liveCollection=i}};function dn(t,e,A,i,n,o,r,s,a,c,g,I,C){Cg("NgControlFlow");let d=zt(),B=ao(),E=a!==void 0,u=zt(),h=s?r.bind(u[ja][Kr]):r,w=new aM(E,h);u[Qr+t]=w,Pm(d,B,t+1,e,A,i,n,D2(B.consts,o)),E&&Pm(d,B,t+2,a,c,g,I,D2(B.consts,C))}var cM=class extends oM{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(e,A,i){super(),this.lContainer=e,this.hostLView=A,this.templateTNode=i}get length(){return this.lContainer.length-ys}at(e){return this.getLView(e)[Kr].$implicit}attach(e,A){let i=A[Nd];this.needsIndexUpdate||=e!==this.length,xu(this.lContainer,A,e,Kd(this.templateTNode,i))}detach(e){return this.needsIndexUpdate||=e!==this.length-1,OdA(this.lContainer,e)}create(e,A){let i=Ud(this.lContainer,this.templateTNode.tView.ssrId),n=Lu(this.hostLView,this.templateTNode,new sM(this.lContainer,A,e),{dehydratedView:i});return this.operationsCounter?.recordCreate(),n}destroy(e){Qp(e[hi],e),this.operationsCounter?.recordDestroy()}updateValue(e,A){this.getLView(e)[Kr].$implicit=A}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let e=0;e(lp(!0),JT(i,n,z2A()));function jdA(t,e,A,i,n){let o=e.consts,r=D2(o,i),s=Xd(e,t,8,"ng-container",r);r!==null&&P9(s,r,!0);let a=D2(o,n);return _M()&&db(e,A,s,a,rb),s.mergedAttrs=Gd(s.mergedAttrs,s.attrs),e.queries!==null&&e.queries.elementStart(e,s),s}function S2(t,e,A){let i=zt(),n=ao(),o=t+Qr,r=n.firstCreatePass?jdA(o,n,i,e,A):n.data[o];w2(r,!0);let s=qdA(n,i,r,t);return i[o]=s,gp()&&up(n,i,s,r),qd(s,i),rp(r)&&(Ep(n,i,r),$M(n,r,i)),A!=null&&ob(i,r),S2}function R2(){let t=gs(),e=ao();return GM()?KM():(t=t.parent,w2(t,!1)),e.firstCreatePass&&(OM(e,t),SM(t)&&e.queries.elementEnd(t)),R2}function rr(t,e,A){return S2(t,e,A),R2(),rr}var qdA=(t,e,A,i)=>(lp(!0),QIA(e[Jo],""));function me(){return zt()}function Qa(t,e,A){let i=zt(),n=y2();if(Va(i,n,e)){let o=ao(),r=Pd();Ru(o,r,i,t,e,i[Jo],A,!0)}return Qa}function bb(t,e,A){let i=zt(),n=y2();if(Va(i,n,e)){let o=ao(),r=Pd(),s=JM(o.data),a=jT(s,r,i);Ru(o,r,i,t,e,a,A,!0)}return bb}var Zm="en-US";var VdA=Zm;function ZdA(t){typeof t=="string"&&(VdA=t.toLowerCase().replace(/_/g,"-"))}function AY(t,e,A){return function i(n){if(n===Function)return A;let o=Hd(t)?cl(t.index,e):e;Cb(o,5);let r=e[Kr],s=eY(e,r,A,n),a=i.__ngNextListenerFn__;for(;a;)s=eY(e,r,a,n)&&s,a=a.__ngNextListenerFn__;return s}}function eY(t,e,A,i){let n=pi(null);try{return so(6,e,A),A(i)!==!1}catch(o){return WdA(t,o),!1}finally{so(7,e,A),pi(n)}}function WdA(t,e){let A=t[Fd],i=A?A.get(Ps,null):null;i&&i.handleError(e)}function tY(t,e,A,i,n,o){let r=e[A],s=e[hi],c=s.data[A].outputs[i],g=r[c],I=s.firstCreatePass?FM(s):null,C=NM(e),d=g.subscribe(o),B=C.length;C.push(o,d),I&&I.push(n,t.index,B,-(B+1))}function mA(t,e,A,i){let n=zt(),o=ao(),r=gs();return Sb(o,n,n[Jo],r,t,e,i),mA}function kb(t,e){let A=gs(),i=zt(),n=ao(),o=JM(n.data),r=jT(o,A,i);return Sb(n,i,r,A,t,e),kb}function XdA(t,e,A,i){let n=t.cleanup;if(n!=null)for(let o=0;oa?s[a]:null}typeof r=="string"&&(o+=2)}return null}function Sb(t,e,A,i,n,o,r){let s=rp(i),c=t.firstCreatePass?FM(t):null,g=NM(e),I=!0;if(i.type&3||r){let C=dl(i,e),d=r?r(C):C,B=g.length,E=r?h=>r(al(h[i.index])):i.index,u=null;if(!r&&s&&(u=XdA(t,e,n,i.index)),u!==null){let h=u.__ngLastListenerFn__||u;h.__ngNextListenerFn__=o,u.__ngLastListenerFn__=o,I=!1}else{o=AY(i,e,o),L1A(e,d,n,o);let h=A.listen(d,n,o);g.push(o,h),c&&c.push(n,E,B,B+1)}}else o=AY(i,e,o);if(I){let C=i.outputs?.[n],d=i.hostDirectiveOutputs?.[n];if(d&&d.length)for(let B=0;B(lp(!0),BIA(e[Jo],i));function tt(t){return It("",t,""),tt}function It(t,e,A){let i=zt(),n=Mb(i,t,e,A);return n!==Ea&&WH(i,Bl(),n),It}function x2(t,e,A,i,n){let o=zt(),r=wdA(o,t,e,A,i,n);return r!==Ea&&WH(o,Bl(),r),x2}function WH(t,e,A){let i=NY(e,t);EIA(t[Jo],i,A)}function Za(t,e,A){IT(e)&&(e=e());let i=zt(),n=y2();if(Va(i,n,e)){let o=ao(),r=Pd();Ru(o,r,i,t,e,i[Jo],A,!1)}return Za}function Wa(t,e){let A=IT(t);return A&&t.set(e),A}function Xa(t,e){let A=zt(),i=ao(),n=gs();return Sb(i,A,A[Jo],n,t,e),Xa}var XH={};function Rb(t){let e=ao(),A=zt(),i=t+Qr,n=Xd(e,i,128,null,null);return w2(n,!1),LM(e,A,i,XH),Rb}function Lb(t){Cg("NgLet");let e=ao(),A=zt(),i=Bl();return LM(e,A,i,t),t}function xb(t){let e=JY(),A=sp(e,Qr+t);if(A===XH)throw new te(314,!1);return A}function tBA(t,e,A){let i=ao();if(i.firstCreatePass){let n=Ig(t);lM(A,i.data,i.blueprint,n,!0),lM(e,i.data,i.blueprint,n,!1)}}function lM(t,e,A,i,n){if(t=cs(t),Array.isArray(t))for(let o=0;o>20;if(xd(t)||!t.multi){let d=new RI(c,n,Ge),B=g9(a,e,n?g:g+C,I);B===-1?(D9(Gm(s,r),o,a),c9(o,t,e.length),e.push(a),s.directiveStart++,s.directiveEnd++,n&&(s.providerIndexes+=1048576),A.push(d),r.push(d)):(A[B]=d,r[B]=d)}else{let d=g9(a,e,g+C,I),B=g9(a,e,g,g+C),E=d>=0&&A[d],u=B>=0&&A[B];if(n&&!u||!n&&!E){D9(Gm(s,r),o,a);let h=oBA(n?nBA:iBA,A.length,n,i,c);!n&&u&&(A[B].providerFactory=h),c9(o,t,e.length,0),e.push(a),s.directiveStart++,s.directiveEnd++,n&&(s.providerIndexes+=1048576),A.push(h),r.push(h)}else{let h=$H(A[n?B:d],c,!n&&i);c9(o,t,d>-1?d:B,h)}!n&&i&&u&&A[B].componentProviders++}}}function c9(t,e,A,i){let n=xd(e),o=d2A(e);if(n||o){let a=(o?cs(e.useClass):e).prototype.ngOnDestroy;if(a){let c=t.destroyHooks||(t.destroyHooks=[]);if(!n&&e.multi){let g=c.indexOf(A);g===-1?c.push(A,[i,a]):c[g+1].push(i,a)}else c.push(A,a)}}}function $H(t,e,A){return A&&t.componentProviders++,t.multi.push(e)-1}function g9(t,e,A,i){for(let n=A;n{A.providersResolver=(i,n)=>tBA(i,n?n(t):t,e)}}function AO(t,e,A){let i=Mu()+t,n=zt();return n[i]===Ea?fb(n,i,A?e.call(A):e()):BdA(n,i)}function vc(t,e,A,i){return tO(zt(),Mu(),t,e,A,i)}function Bg(t,e,A,i,n){return iO(zt(),Mu(),t,e,A,i,n)}function eO(t,e){let A=t[e];return A===Ea?void 0:A}function tO(t,e,A,i,n,o){let r=e+A;return Va(t,r,n)?fb(t,r+1,o?i.call(o,n):i(n)):eO(t,r+1)}function iO(t,e,A,i,n,o,r){let s=e+A;return FH(t,s,n,o)?fb(t,s+2,r?i.call(r,n,o):i(n,o)):eO(t,s+2)}function eo(t,e){let A=ao(),i,n=t+Qr;A.firstCreatePass?(i=rBA(e,A.pipeRegistry),A.data[n]=i,i.onDestroy&&(A.destroyHooks??=[]).push(n,i.onDestroy)):i=A.data[n];let o=i.factory||(i.factory=yI(i.type,!0)),r,s=la(Ge);try{let a=_m(!1),c=o();return _m(a),LM(A,zt(),n,c),c}finally{la(s)}}function rBA(t,e){if(e)for(let A=e.length-1;A>=0;A--){let i=e[A];if(t===i.name)return i}}function Yo(t,e,A){let i=t+Qr,n=zt(),o=sp(n,i);return nO(n,i)?tO(n,Mu(),e,o.transform,A,o):o.transform(A)}function _u(t,e,A,i){let n=t+Qr,o=zt(),r=sp(o,n);return nO(o,n)?iO(o,Mu(),e,r.transform,A,i,r):r.transform(A,i)}function nO(t,e){return t[hi].data[e].pure}function Gu(t,e){return fp(t,e)}var FI=class{full;major;minor;patch;constructor(e){this.full=e;let A=e.split(".");this.major=A[0],this.minor=A[1],this.patch=A.slice(2).join(".")}},Nb=new FI("19.2.15"),CM=class{ngModuleFactory;componentFactories;constructor(e,A){this.ngModuleFactory=e,this.componentFactories=A}},oO=(()=>{class t{compileModuleSync(A){return new $9(A)}compileModuleAsync(A){return Promise.resolve(this.compileModuleSync(A))}compileModuleAndAllComponentsSync(A){let i=this.compileModuleSync(A),n=pY(A),o=GT(n.declarations).reduce((r,s)=>{let a=p2(s);return a&&r.push(new xI(a)),r},[]);return new CM(i,o)}compileModuleAndAllComponentsAsync(A){return Promise.resolve(this.compileModuleAndAllComponentsSync(A))}clearCache(){}clearCacheFor(A){}getModuleId(A){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var sBA=(()=>{class t{zone=f(ye);changeDetectionScheduler=f(LI);applicationRef=f(Ca);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function aBA({ngZoneFactory:t,ignoreChangesOutsideZone:e,scheduleInRootZone:A}){return t??=()=>new ye(Fe(sA({},cBA()),{scheduleInRootZone:A})),[{provide:ye,useFactory:t},{provide:Ld,multi:!0,useFactory:()=>{let i=f(sBA,{optional:!0});return()=>i.initialize()}},{provide:Ld,multi:!0,useFactory:()=>{let i=f(gBA);return()=>{i.initialize()}}},e===!0?{provide:sT,useValue:!0}:[],{provide:aT,useValue:A??rT}]}function cBA(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}var gBA=(()=>{class t{subscription=new Kt;initialized=!1;zone=f(ye);pendingTasks=f(m0);initialize(){if(this.initialized)return;this.initialized=!0;let A=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(A=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{ye.assertNotInAngularZone(),queueMicrotask(()=>{A!==null&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(A),A=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{ye.assertInAngularZone(),A??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var lBA=(()=>{class t{appRef=f(Ca);taskService=f(m0);ngZone=f(ye);zonelessEnabled=f(jM);tracing=f(Zd,{optional:!0});disableScheduling=f(sT,{optional:!0})??!1;zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new Kt;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(Um):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(f(aT,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof M9||!this.zoneIsDefined)}notify(A){if(!this.zonelessEnabled&&A===5)return;let i=!1;switch(A){case 0:{this.appRef.dirtyFlags|=2;break}case 3:case 2:case 4:case 5:case 1:{this.appRef.dirtyFlags|=4;break}case 6:{this.appRef.dirtyFlags|=2,i=!0;break}case 12:{this.appRef.dirtyFlags|=16,i=!0;break}case 13:{this.appRef.dirtyFlags|=2,i=!0;break}case 11:{i=!0;break}case 9:case 8:case 7:case 10:default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick(i))return;let n=this.useMicrotaskScheduler?MJ:cT;this.pendingRenderTaskId=this.taskService.add(),this.scheduleInRootZone?this.cancelScheduledCallback=Zone.root.run(()=>n(()=>this.tick())):this.cancelScheduledCallback=this.ngZone.runOutsideAngular(()=>n(()=>this.tick()))}shouldScheduleTick(A){return!(this.disableScheduling&&!A||this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(Um+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(this.appRef.dirtyFlags===0){this.cleanup();return}!this.zonelessEnabled&&this.appRef.dirtyFlags&7&&(this.appRef.dirtyFlags|=1);let A=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(i){throw this.taskService.remove(A),i}finally{this.cleanup()}this.useMicrotaskScheduler=!0,MJ(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(A)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){let A=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(A)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function IBA(){return typeof $localize<"u"&&$localize.locale||Zm}var wp=new eA("",{providedIn:"root",factory:()=>f(wp,bi.Optional|bi.SkipSelf)||IBA()});var dM=new eA(""),CBA=new eA("");function Cu(t){return!t.moduleRef}function dBA(t){let e=Cu(t)?t.r3Injector:t.moduleRef.injector,A=e.get(ye);return A.run(()=>{Cu(t)?t.r3Injector.resolveInjectorInitializers():t.moduleRef.resolveInjectorInitializers();let i=e.get(Ps,null),n;if(A.runOutsideAngular(()=>{n=A.onError.subscribe({next:o=>{i.handleError(o)}})}),Cu(t)){let o=()=>e.destroy(),r=t.platformInjector.get(dM);r.add(o),e.onDestroy(()=>{n.unsubscribe(),r.delete(o)})}else{let o=()=>t.moduleRef.destroy(),r=t.platformInjector.get(dM);r.add(o),t.moduleRef.onDestroy(()=>{Dm(t.allPlatformModules,t.moduleRef),n.unsubscribe(),r.delete(o)})}return EBA(i,A,()=>{let o=e.get(KH);return o.runInitializers(),o.donePromise.then(()=>{let r=e.get(wp,Zm);if(ZdA(r||Zm),!e.get(CBA,!0))return Cu(t)?e.get(Ca):(t.allPlatformModules.push(t.moduleRef),t.moduleRef);if(Cu(t)){let a=e.get(Ca);return t.rootComponent!==void 0&&a.bootstrap(t.rootComponent),a}else return BBA(t.moduleRef,t.allPlatformModules),t.moduleRef})})})}function BBA(t,e){let A=t.injector.get(Ca);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(i=>A.bootstrap(i));else if(t.instance.ngDoBootstrap)t.instance.ngDoBootstrap(A);else throw new te(-403,!1);e.push(t)}function EBA(t,e,A){try{let i=A();return k2(i)?i.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):i}catch(i){throw e.runOutsideAngular(()=>t.handleError(i)),i}}var wm=null;function QBA(t=[],e){return Zt.create({name:e,providers:[{provide:ip,useValue:"platform"},{provide:dM,useValue:new Set([()=>wm=null])},...t]})}function uBA(t=[]){if(wm)return wm;let e=QBA(t);return wm=e,fdA(),hBA(e),e}function hBA(t){let e=t.get(ZM,null);da(t,()=>{e?.forEach(A=>A())})}var Et=(()=>{class t{static __NG_ELEMENT_ID__=fBA}return t})();function fBA(t){return mBA(gs(),zt(),(t&16)===16)}function mBA(t,e,A){if(Hd(t)&&!A){let i=cl(t.index,e);return new pu(i,i)}else if(t.type&175){let i=e[ja];return new pu(i,e)}return null}var BM=class{constructor(){}supports(e){return NH(e)}create(e){return new EM(e)}},pBA=(t,e)=>e,EM=class{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(e){this._trackByFn=e||pBA}forEachItem(e){let A;for(A=this._itHead;A!==null;A=A._next)e(A)}forEachOperation(e){let A=this._itHead,i=this._removalsHead,n=0,o=null;for(;A||i;){let r=!i||A&&A.currentIndex{r=this._trackByFn(n,s),A===null||!Object.is(A.trackById,r)?(A=this._mismatch(A,s,r,n),i=!0):(i&&(A=this._verifyReinsertion(A,s,r,n)),Object.is(A.item,s)||this._addIdentityChange(A,s)),A=A._next,n++}),this.length=n;return this._truncate(A),this.collection=e,this.isDirty}get isDirty(){return this._additionsHead!==null||this._movesHead!==null||this._removalsHead!==null||this._identityChangesHead!==null}_reset(){if(this.isDirty){let e;for(e=this._previousItHead=this._itHead;e!==null;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;e!==null;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;e!==null;e=e._nextMoved)e.previousIndex=e.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,A,i,n){let o;return e===null?o=this._itTail:(o=e._prev,this._remove(e)),e=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null),e!==null?(Object.is(e.item,A)||this._addIdentityChange(e,A),this._reinsertAfter(e,o,n)):(e=this._linkedRecords===null?null:this._linkedRecords.get(i,n),e!==null?(Object.is(e.item,A)||this._addIdentityChange(e,A),this._moveAfter(e,o,n)):e=this._addAfter(new QM(A,i),o,n)),e}_verifyReinsertion(e,A,i,n){let o=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null);return o!==null?e=this._reinsertAfter(o,e._prev,n):e.currentIndex!=n&&(e.currentIndex=n,this._addToMoves(e,n)),e}_truncate(e){for(;e!==null;){let A=e._next;this._addToRemovals(this._unlink(e)),e=A}this._unlinkedRecords!==null&&this._unlinkedRecords.clear(),this._additionsTail!==null&&(this._additionsTail._nextAdded=null),this._movesTail!==null&&(this._movesTail._nextMoved=null),this._itTail!==null&&(this._itTail._next=null),this._removalsTail!==null&&(this._removalsTail._nextRemoved=null),this._identityChangesTail!==null&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,A,i){this._unlinkedRecords!==null&&this._unlinkedRecords.remove(e);let n=e._prevRemoved,o=e._nextRemoved;return n===null?this._removalsHead=o:n._nextRemoved=o,o===null?this._removalsTail=n:o._prevRemoved=n,this._insertAfter(e,A,i),this._addToMoves(e,i),e}_moveAfter(e,A,i){return this._unlink(e),this._insertAfter(e,A,i),this._addToMoves(e,i),e}_addAfter(e,A,i){return this._insertAfter(e,A,i),this._additionsTail===null?this._additionsTail=this._additionsHead=e:this._additionsTail=this._additionsTail._nextAdded=e,e}_insertAfter(e,A,i){let n=A===null?this._itHead:A._next;return e._next=n,e._prev=A,n===null?this._itTail=e:n._prev=e,A===null?this._itHead=e:A._next=e,this._linkedRecords===null&&(this._linkedRecords=new Wm),this._linkedRecords.put(e),e.currentIndex=i,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){this._linkedRecords!==null&&this._linkedRecords.remove(e);let A=e._prev,i=e._next;return A===null?this._itHead=i:A._next=i,i===null?this._itTail=A:i._prev=A,e}_addToMoves(e,A){return e.previousIndex===A||(this._movesTail===null?this._movesTail=this._movesHead=e:this._movesTail=this._movesTail._nextMoved=e),e}_addToRemovals(e){return this._unlinkedRecords===null&&(this._unlinkedRecords=new Wm),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,this._removalsTail===null?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,A){return e.item=A,this._identityChangesTail===null?this._identityChangesTail=this._identityChangesHead=e:this._identityChangesTail=this._identityChangesTail._nextIdentityChange=e,e}},QM=class{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(e,A){this.item=e,this.trackById=A}},uM=class{_head=null;_tail=null;add(e){this._head===null?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,A){let i;for(i=this._head;i!==null;i=i._nextDup)if((A===null||A<=i.currentIndex)&&Object.is(i.trackById,e))return i;return null}remove(e){let A=e._prevDup,i=e._nextDup;return A===null?this._head=i:A._nextDup=i,i===null?this._tail=A:i._prevDup=A,this._head===null}},Wm=class{map=new Map;put(e){let A=e.trackById,i=this.map.get(A);i||(i=new uM,this.map.set(A,i)),i.add(e)}get(e,A){let i=e,n=this.map.get(i);return n?n.get(e,A):null}remove(e){let A=e.trackById;return this.map.get(A).remove(e)&&this.map.delete(A),e}get isEmpty(){return this.map.size===0}clear(){this.map.clear()}};function iY(t,e,A){let i=t.previousIndex;if(i===null)return i;let n=0;return A&&i{if(A&&A.key===n)this._maybeAddToChanges(A,i),this._appendAfter=A,A=A._next;else{let o=this._getOrCreateRecordForKey(n,i);A=this._insertBeforeOrAppend(A,o)}}),A){A._prev&&(A._prev._next=null),this._removalsHead=A;for(let i=A;i!==null;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,A){if(e){let i=e._prev;return A._next=e,A._prev=i,e._prev=A,i&&(i._next=A),e===this._mapHead&&(this._mapHead=A),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=A,A._prev=this._appendAfter):this._mapHead=A,this._appendAfter=A,null}_getOrCreateRecordForKey(e,A){if(this._records.has(e)){let n=this._records.get(e);this._maybeAddToChanges(n,A);let o=n._prev,r=n._next;return o&&(o._next=r),r&&(r._prev=o),n._next=null,n._prev=null,n}let i=new mM(e);return this._records.set(e,i),i.currentValue=A,this._addToAdditions(i),i}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;e!==null;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;e!==null;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;e!=null;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,A){Object.is(A,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=A,this._addToChanges(e))}_addToAdditions(e){this._additionsHead===null?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){this._changesHead===null?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,A){e instanceof Map?e.forEach(A):Object.keys(e).forEach(i=>A(e[i],i))}},mM=class{key;previousValue=null;currentValue=null;_nextPrevious=null;_next=null;_prev=null;_nextAdded=null;_nextRemoved=null;_nextChanged=null;constructor(e){this.key=e}};function nY(){return new Ql([new BM])}var Ql=(()=>{class t{factories;static \u0275prov=bA({token:t,providedIn:"root",factory:nY});constructor(A){this.factories=A}static create(A,i){if(i!=null){let n=i.factories.slice();A=A.concat(n)}return new t(A)}static extend(A){return{provide:t,useFactory:i=>t.create(A,i||nY()),deps:[[t,new ep,new Yd]]}}find(A){let i=this.factories.find(n=>n.supports(A));if(i!=null)return i;throw new te(901,!1)}}return t})();function oY(){return new yp([new hM])}var yp=(()=>{class t{static \u0275prov=bA({token:t,providedIn:"root",factory:oY});factories;constructor(A){this.factories=A}static create(A,i){if(i){let n=i.factories.slice();A=A.concat(n)}return new t(A)}static extend(A){return{provide:t,useFactory:i=>t.create(A,i||oY()),deps:[[t,new ep,new Yd]]}}find(A){let i=this.factories.find(n=>n.supports(A));if(i)return i;throw new te(901,!1)}}return t})();var rO=(()=>{class t{constructor(A){}static \u0275fac=function(i){return new(i||t)(be(Ca))};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();function sO(t){let{rootComponent:e,appProviders:A,platformProviders:i,platformRef:n}=t;so(8);try{let o=n?.injector??uBA(i),r=[aBA({}),{provide:LI,useExisting:lBA},...A||[]],s=new zm({providers:r,parent:o,debugName:"",runEnvironmentInitializers:!1});return dBA({r3Injector:s.injector,platformInjector:o,rootComponent:e})}catch(o){return Promise.reject(o)}finally{so(9)}}function ge(t){return typeof t=="boolean"?t:t!=null&&t!=="false"}function en(t,e=NaN){return!isNaN(parseFloat(t))&&!isNaN(Number(t))?Number(t):e}function ua(t){return Fv(t)}function Mc(t,e){return Yf(t,e?.equal)}var pM=class{[aa];constructor(e){this[aa]=e}destroy(){this[aa].destroy()}};function Ku(t,e){!e?.injector&&bM(Ku);let A=e?.injector??f(Zt),i=e?.manualCleanup!==!0?A.get(f0):null,n,o=A.get(XM,null,{optional:!0}),r=A.get(LI);return o!==null&&!e?.forceRoot?(n=yBA(o.view,r,t),i instanceof Km&&i._lView===o.view&&(i=null)):n=vBA(t,A.get(_H),r),n.injector=A,i!==null&&(n.onDestroyFn=i.onDestroy(()=>n.destroy())),new pM(n)}var aO=Fe(sA({},Cd),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,hasRun:!1,cleanupFns:void 0,zone:null,kind:"effect",onDestroyFn:fu,run(){if(this.dirty=!1,this.hasRun&&!Kf(this))return;this.hasRun=!0;let t=i=>(this.cleanupFns??=[]).push(i),e=tu(this),A=xm(!1);try{this.maybeCleanup(),this.fn(t)}finally{xm(A),Gf(this,e)}},maybeCleanup(){if(this.cleanupFns?.length)try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[]}}}),DBA=Fe(sA({},aO),{consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){iu(this),this.onDestroyFn(),this.maybeCleanup(),this.scheduler.remove(this)}}),wBA=Fe(sA({},aO),{consumerMarkedDirty(){this.view[ii]|=8192,zd(this.view),this.notifier.notify(13)},destroy(){iu(this),this.onDestroyFn(),this.maybeCleanup(),this.view[MI]?.delete(this)}});function yBA(t,e,A){let i=Object.create(wBA);return i.view=t,i.zone=typeof Zone<"u"?Zone.current:null,i.notifier=e,i.fn=A,t[MI]??=new Set,t[MI].add(i),i.consumerMarkedDirty(i),i}function vBA(t,e,A){let i=Object.create(DBA);return i.fn=t,i.scheduler=e,i.notifier=A,i.zone=typeof Zone<"u"?Zone.current:null,i.scheduler.schedule(i),i.notifier.notify(12),i}function vp(t,e){let A=p2(t),i=e.elementInjector||np();return new xI(A).create(i,e.projectableNodes,e.hostElement,e.environmentInjector)}function cO(t){let e=p2(t);if(!e)return null;let A=new xI(e);return{get selector(){return A.selector},get type(){return A.componentType},get inputs(){return A.inputs},get outputs(){return A.outputs},get ngContentSelectors(){return A.ngContentSelectors},get isStandalone(){return e.standalone},get isSignal(){return e.signals}}}var at=new eA("");var IO=null;function $a(){return IO}function Fb(t){IO??=t}var Uu=class{},Ju=(()=>{class t{historyGo(A){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(CO),providedIn:"platform"})}return t})(),_b=new eA(""),CO=(()=>{class t extends Ju{_location;_history;_doc=f(at);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return $a().getBaseHref(this._doc)}onPopState(A){let i=$a().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",A,!1),()=>i.removeEventListener("popstate",A)}onHashChange(A){let i=$a().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",A,!1),()=>i.removeEventListener("hashchange",A)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(A){this._location.pathname=A}pushState(A,i,n){this._history.pushState(A,i,n)}replaceState(A,i,n){this._history.replaceState(A,i,n)}forward(){this._history.forward()}back(){this._history.back()}historyGo(A=0){this._history.go(A)}getState(){return this._history.state}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function Mp(t,e){return t?e?t.endsWith("/")?e.startsWith("/")?t+e.slice(1):t+e:e.startsWith("/")?t+e:`${t}/${e}`:t:e}function gO(t){let e=t.search(/#|\?|$/);return t[e-1]==="/"?t.slice(0,e-1)+t.slice(e):t}function Eg(t){return t&&t[0]!=="?"?`?${t}`:t}var D0=(()=>{class t{historyGo(A){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(kp),providedIn:"root"})}return t})(),bp=new eA(""),kp=(()=>{class t extends D0{_platformLocation;_baseHref;_removeListenerFns=[];constructor(A,i){super(),this._platformLocation=A,this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??f(at).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(A){this._removeListenerFns.push(this._platformLocation.onPopState(A),this._platformLocation.onHashChange(A))}getBaseHref(){return this._baseHref}prepareExternalUrl(A){return Mp(this._baseHref,A)}path(A=!1){let i=this._platformLocation.pathname+Eg(this._platformLocation.search),n=this._platformLocation.hash;return n&&A?`${i}${n}`:i}pushState(A,i,n,o){let r=this.prepareExternalUrl(n+Eg(o));this._platformLocation.pushState(A,i,r)}replaceState(A,i,n,o){let r=this.prepareExternalUrl(n+Eg(o));this._platformLocation.replaceState(A,i,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(A=0){this._platformLocation.historyGo?.(A)}static \u0275fac=function(i){return new(i||t)(be(Ju),be(bp,8))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),ha=(()=>{class t{_subject=new qA;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(A){this._locationStrategy=A;let i=this._locationStrategy.getBaseHref();this._basePath=kBA(gO(lO(i))),this._locationStrategy.onPopState(n=>{this._subject.next({url:this.path(!0),pop:!0,state:n.state,type:n.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(A=!1){return this.normalize(this._locationStrategy.path(A))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(A,i=""){return this.path()==this.normalize(A+Eg(i))}normalize(A){return t.stripTrailingSlash(bBA(this._basePath,lO(A)))}prepareExternalUrl(A){return A&&A[0]!=="/"&&(A="/"+A),this._locationStrategy.prepareExternalUrl(A)}go(A,i="",n=null){this._locationStrategy.pushState(n,"",A,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(A+Eg(i)),n)}replaceState(A,i="",n=null){this._locationStrategy.replaceState(n,"",A,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(A+Eg(i)),n)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(A=0){this._locationStrategy.historyGo?.(A)}onUrlChange(A){return this._urlChangeListeners.push(A),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{let i=this._urlChangeListeners.indexOf(A);this._urlChangeListeners.splice(i,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(A="",i){this._urlChangeListeners.forEach(n=>n(A,i))}subscribe(A,i,n){return this._subject.subscribe({next:A,error:i??void 0,complete:n??void 0})}static normalizeQueryParams=Eg;static joinWithSlash=Mp;static stripTrailingSlash=gO;static \u0275fac=function(i){return new(i||t)(be(D0))};static \u0275prov=bA({token:t,factory:()=>MBA(),providedIn:"root"})}return t})();function MBA(){return new ha(be(D0))}function bBA(t,e){if(!t||!e.startsWith(t))return e;let A=e.substring(t.length);return A===""||["/",";","?","#"].includes(A[0])?A:e}function lO(t){return t.replace(/\/index.html$/,"")}function kBA(t){if(new RegExp("^(https?:)?//").test(t)){let[,A]=t.split(/\/\/[^\/]+/);return A}return t}var Jb=(()=>{class t extends D0{_platformLocation;_baseHref="";_removeListenerFns=[];constructor(A,i){super(),this._platformLocation=A,i!=null&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(A){this._removeListenerFns.push(this._platformLocation.onPopState(A),this._platformLocation.onHashChange(A))}getBaseHref(){return this._baseHref}path(A=!1){let i=this._platformLocation.hash??"#";return i.length>0?i.substring(1):i}prepareExternalUrl(A){let i=Mp(this._baseHref,A);return i.length>0?"#"+i:i}pushState(A,i,n,o){let r=this.prepareExternalUrl(n+Eg(o))||this._platformLocation.pathname;this._platformLocation.pushState(A,i,r)}replaceState(A,i,n,o){let r=this.prepareExternalUrl(n+Eg(o))||this._platformLocation.pathname;this._platformLocation.replaceState(A,i,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(A=0){this._platformLocation.historyGo?.(A)}static \u0275fac=function(i){return new(i||t)(be(Ju),be(bp,8))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();var Gb=/\s+/,dO=[],Vs=(()=>{class t{_ngEl;_renderer;initialClasses=dO;rawClass;stateMap=new Map;constructor(A,i){this._ngEl=A,this._renderer=i}set klass(A){this.initialClasses=A!=null?A.trim().split(Gb):dO}set ngClass(A){this.rawClass=typeof A=="string"?A.trim().split(Gb):A}ngDoCheck(){for(let i of this.initialClasses)this._updateState(i,!0);let A=this.rawClass;if(Array.isArray(A)||A instanceof Set)for(let i of A)this._updateState(i,!0);else if(A!=null)for(let i of Object.keys(A))this._updateState(i,!!A[i]);this._applyStateDiff()}_updateState(A,i){let n=this.stateMap.get(A);n!==void 0?(n.enabled!==i&&(n.changed=!0,n.enabled=i),n.touched=!0):this.stateMap.set(A,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(let A of this.stateMap){let i=A[0],n=A[1];n.changed?(this._toggleClass(i,n.enabled),n.changed=!1):n.touched||(n.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),n.touched=!1}}_toggleClass(A,i){A=A.trim(),A.length>0&&A.split(Gb).forEach(n=>{i?this._renderer.addClass(this._ngEl.nativeElement,n):this._renderer.removeClass(this._ngEl.nativeElement,n)})}static \u0275fac=function(i){return new(i||t)(Ge(se),Ge(qi))};static \u0275dir=WA({type:t,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return t})(),Yu=(()=>{class t{_viewContainerRef;ngComponentOutlet=null;ngComponentOutletInputs;ngComponentOutletInjector;ngComponentOutletContent;ngComponentOutletNgModule;ngComponentOutletNgModuleFactory;_componentRef;_moduleRef;_inputsUsed=new Map;get componentInstance(){return this._componentRef?.instance??null}constructor(A){this._viewContainerRef=A}_needToReCreateNgModuleInstance(A){return A.ngComponentOutletNgModule!==void 0||A.ngComponentOutletNgModuleFactory!==void 0}_needToReCreateComponentInstance(A){return A.ngComponentOutlet!==void 0||A.ngComponentOutletContent!==void 0||A.ngComponentOutletInjector!==void 0||this._needToReCreateNgModuleInstance(A)}ngOnChanges(A){if(this._needToReCreateComponentInstance(A)&&(this._viewContainerRef.clear(),this._inputsUsed.clear(),this._componentRef=void 0,this.ngComponentOutlet)){let i=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;this._needToReCreateNgModuleInstance(A)&&(this._moduleRef?.destroy(),this.ngComponentOutletNgModule?this._moduleRef=kH(this.ngComponentOutletNgModule,BO(i)):this.ngComponentOutletNgModuleFactory?this._moduleRef=this.ngComponentOutletNgModuleFactory.create(BO(i)):this._moduleRef=void 0),this._componentRef=this._viewContainerRef.createComponent(this.ngComponentOutlet,{injector:i,ngModuleRef:this._moduleRef,projectableNodes:this.ngComponentOutletContent})}}ngDoCheck(){if(this._componentRef){if(this.ngComponentOutletInputs)for(let A of Object.keys(this.ngComponentOutletInputs))this._inputsUsed.set(A,!0);this._applyInputStateDiff(this._componentRef)}}ngOnDestroy(){this._moduleRef?.destroy()}_applyInputStateDiff(A){for(let[i,n]of this._inputsUsed)n?(A.setInput(i,this.ngComponentOutletInputs[i]),this._inputsUsed.set(i,!1)):(A.setInput(i,void 0),this._inputsUsed.delete(i))}static \u0275fac=function(i){return new(i||t)(Ge(Sn))};static \u0275dir=WA({type:t,selectors:[["","ngComponentOutlet",""]],inputs:{ngComponentOutlet:"ngComponentOutlet",ngComponentOutletInputs:"ngComponentOutletInputs",ngComponentOutletInjector:"ngComponentOutletInjector",ngComponentOutletContent:"ngComponentOutletContent",ngComponentOutletNgModule:"ngComponentOutletNgModule",ngComponentOutletNgModuleFactory:"ngComponentOutletNgModuleFactory"},exportAs:["ngComponentOutlet"],features:[Xt]})}return t})();function BO(t){return t.get(Il).injector}var Sp=class{$implicit;ngForOf;index;count;constructor(e,A,i,n){this.$implicit=e,this.ngForOf=A,this.index=i,this.count=n}get first(){return this.index===0}get last(){return this.index===this.count-1}get even(){return this.index%2===0}get odd(){return!this.even}},Lp=(()=>{class t{_viewContainer;_template;_differs;set ngForOf(A){this._ngForOf=A,this._ngForOfDirty=!0}set ngForTrackBy(A){this._trackByFn=A}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(A,i,n){this._viewContainer=A,this._template=i,this._differs=n}set ngForTemplate(A){A&&(this._template=A)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;let A=this._ngForOf;!this._differ&&A&&(this._differ=this._differs.find(A).create(this.ngForTrackBy))}if(this._differ){let A=this._differ.diff(this._ngForOf);A&&this._applyChanges(A)}}_applyChanges(A){let i=this._viewContainer;A.forEachOperation((n,o,r)=>{if(n.previousIndex==null)i.createEmbeddedView(this._template,new Sp(n.item,this._ngForOf,-1,-1),r===null?void 0:r);else if(r==null)i.remove(o===null?void 0:o);else if(o!==null){let s=i.get(o);i.move(s,r),EO(s,n)}});for(let n=0,o=i.length;n{let o=i.get(n.currentIndex);EO(o,n)})}static ngTemplateContextGuard(A,i){return!0}static \u0275fac=function(i){return new(i||t)(Ge(Sn),Ge(mn),Ge(Ql))};static \u0275dir=WA({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return t})();function EO(t,e){t.context.$implicit=e.item}var Tu=(()=>{class t{_viewContainer;_context=new Rp;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(A,i){this._viewContainer=A,this._thenTemplateRef=i}set ngIf(A){this._context.$implicit=this._context.ngIf=A,this._updateView()}set ngIfThen(A){QO(A,!1),this._thenTemplateRef=A,this._thenViewRef=null,this._updateView()}set ngIfElse(A){QO(A,!1),this._elseTemplateRef=A,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(A,i){return!0}static \u0275fac=function(i){return new(i||t)(Ge(Sn),Ge(mn))};static \u0275dir=WA({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return t})(),Rp=class{$implicit=null;ngIf=null};function QO(t,e){if(t&&!t.createEmbeddedView)throw new te(2020,!1)}var Yb=(()=>{class t{_ngEl;_differs;_renderer;_ngStyle=null;_differ=null;constructor(A,i,n){this._ngEl=A,this._differs=i,this._renderer=n}set ngStyle(A){this._ngStyle=A,!this._differ&&A&&(this._differ=this._differs.find(A).create())}ngDoCheck(){if(this._differ){let A=this._differ.diff(this._ngStyle);A&&this._applyChanges(A)}}_setStyle(A,i){let[n,o]=A.split("."),r=n.indexOf("-")===-1?void 0:ll.DashCase;i!=null?this._renderer.setStyle(this._ngEl.nativeElement,n,o?`${i}${o}`:i,r):this._renderer.removeStyle(this._ngEl.nativeElement,n,r)}_applyChanges(A){A.forEachRemovedItem(i=>this._setStyle(i.key,null)),A.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),A.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static \u0275fac=function(i){return new(i||t)(Ge(se),Ge(yp),Ge(qi))};static \u0275dir=WA({type:t,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}})}return t})(),Hu=(()=>{class t{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;constructor(A){this._viewContainerRef=A}ngOnChanges(A){if(this._shouldRecreateView(A)){let i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet){this._viewRef=null;return}let n=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,n,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(A){return!!A.ngTemplateOutlet||!!A.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(A,i,n)=>this.ngTemplateOutletContext?Reflect.set(this.ngTemplateOutletContext,i,n):!1,get:(A,i,n)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,n)}})}static \u0275fac=function(i){return new(i||t)(Ge(Sn))};static \u0275dir=WA({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[Xt]})}return t})();function SBA(t,e){return new te(2100,!1)}var Kb=class{createSubscription(e,A){return ua(()=>e.subscribe({next:A,error:i=>{throw i}}))}dispose(e){ua(()=>e.unsubscribe())}},Ub=class{createSubscription(e,A){return e.then(i=>A?.(i),i=>{throw i}),{unsubscribe:()=>{A=null}}}dispose(e){e.unsubscribe()}},RBA=new Ub,LBA=new Kb,Qg=(()=>{class t{_ref;_latestValue=null;markForCheckOnValueUpdate=!0;_subscription=null;_obj=null;_strategy=null;constructor(A){this._ref=A}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(A){if(!this._obj){if(A)try{this.markForCheckOnValueUpdate=!1,this._subscribe(A)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return A!==this._obj?(this._dispose(),this.transform(A)):this._latestValue}_subscribe(A){this._obj=A,this._strategy=this._selectStrategy(A),this._subscription=this._strategy.createSubscription(A,i=>this._updateLatestValue(A,i))}_selectStrategy(A){if(k2(A))return RBA;if(wb(A))return LBA;throw SBA(t,A)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(A,i){A===this._obj&&(this._latestValue=i,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static \u0275fac=function(i){return new(i||t)(Ge(Et,16))};static \u0275pipe=$d({name:"async",type:t,pure:!1})}return t})();function xBA(t,e){return{key:t,value:e}}var Ou=(()=>{class t{differs;constructor(A){this.differs=A}differ;keyValues=[];compareFn=uO;transform(A,i=uO){if(!A||!(A instanceof Map)&&typeof A!="object")return null;this.differ??=this.differs.find(A).create();let n=this.differ.diff(A),o=i!==this.compareFn;return n&&(this.keyValues=[],n.forEachItem(r=>{this.keyValues.push(xBA(r.key,r.currentValue))})),(n||o)&&(i&&this.keyValues.sort(i),this.compareFn=i),this.keyValues}static \u0275fac=function(i){return new(i||t)(Ge(yp,16))};static \u0275pipe=$d({name:"keyvalue",type:t,pure:!1})}return t})();function uO(t,e){let A=t.key,i=e.key;if(A===i)return 0;if(A==null)return 1;if(i==null)return-1;if(typeof A=="string"&&typeof i=="string")return A{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();function zu(t,e){e=encodeURIComponent(e);for(let A of t.split(";")){let i=A.indexOf("="),[n,o]=i==-1?[A,""]:[A.slice(0,i),A.slice(i+1)];if(n.trim()===e)return decodeURIComponent(o)}return null}var xp="browser",hO="server";function ul(t){return t===xp}function Np(t){return t===hO}var KI=class{};var fO=(()=>{class t{static \u0275prov=bA({token:t,providedIn:"root",factory:()=>new Tb(f(at),window)})}return t})(),Tb=class{document;window;offset=()=>[0,0];constructor(e,A){this.document=e,this.window=A}setOffset(e){Array.isArray(e)?this.offset=()=>e:this.offset=e}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(e){this.window.scrollTo(e[0],e[1])}scrollToAnchor(e){let A=NBA(this.document,e);A&&(this.scrollToElement(A),A.focus())}setHistoryScrollRestoration(e){this.window.history.scrollRestoration=e}scrollToElement(e){let A=e.getBoundingClientRect(),i=A.left+this.window.pageXOffset,n=A.top+this.window.pageYOffset,o=this.offset();this.window.scrollTo(i-o[0],n-o[1])}};function NBA(t,e){let A=t.getElementById(e)||t.getElementsByName(e)[0];if(A)return A;if(typeof t.createTreeWalker=="function"&&t.body&&typeof t.body.attachShadow=="function"){let i=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT),n=i.currentNode;for(;n;){let o=n.shadowRoot;if(o){let r=o.getElementById(e)||o.querySelector(`[name="${e}"]`);if(r)return r}n=i.nextNode()}}return null}var tB=class{},Pu=class{},N2=class t{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(e){e?typeof e=="string"?this.lazyInit=()=>{this.headers=new Map,e.split(` -`).forEach(A=>{let i=A.indexOf(":");if(i>0){let n=A.slice(0,i),o=A.slice(i+1).trim();this.addHeaderEntry(n,o)}})}:typeof Headers<"u"&&e instanceof Headers?(this.headers=new Map,e.forEach((A,i)=>{this.addHeaderEntry(i,A)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(e).forEach(([A,i])=>{this.setHeaderEntries(A,i)})}:this.headers=new Map}has(e){return this.init(),this.headers.has(e.toLowerCase())}get(e){this.init();let A=this.headers.get(e.toLowerCase());return A&&A.length>0?A[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(e){return this.init(),this.headers.get(e.toLowerCase())||null}append(e,A){return this.clone({name:e,value:A,op:"a"})}set(e,A){return this.clone({name:e,value:A,op:"s"})}delete(e,A){return this.clone({name:e,value:A,op:"d"})}maybeSetNormalizedName(e,A){this.normalizedNames.has(A)||this.normalizedNames.set(A,e)}init(){this.lazyInit&&(this.lazyInit instanceof t?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(e=>this.applyUpdate(e)),this.lazyUpdate=null))}copyFrom(e){e.init(),Array.from(e.headers.keys()).forEach(A=>{this.headers.set(A,e.headers.get(A)),this.normalizedNames.set(A,e.normalizedNames.get(A))})}clone(e){let A=new t;return A.lazyInit=this.lazyInit&&this.lazyInit instanceof t?this.lazyInit:this,A.lazyUpdate=(this.lazyUpdate||[]).concat([e]),A}applyUpdate(e){let A=e.name.toLowerCase();switch(e.op){case"a":case"s":let i=e.value;if(typeof i=="string"&&(i=[i]),i.length===0)return;this.maybeSetNormalizedName(e.name,A);let n=(e.op==="a"?this.headers.get(A):void 0)||[];n.push(...i),this.headers.set(A,n);break;case"d":let o=e.value;if(!o)this.headers.delete(A),this.normalizedNames.delete(A);else{let r=this.headers.get(A);if(!r)return;r=r.filter(s=>o.indexOf(s)===-1),r.length===0?(this.headers.delete(A),this.normalizedNames.delete(A)):this.headers.set(A,r)}break}}addHeaderEntry(e,A){let i=e.toLowerCase();this.maybeSetNormalizedName(e,i),this.headers.has(i)?this.headers.get(i).push(A):this.headers.set(i,[A])}setHeaderEntries(e,A){let i=(Array.isArray(A)?A:[A]).map(o=>o.toString()),n=e.toLowerCase();this.headers.set(n,i),this.maybeSetNormalizedName(e,n)}forEach(e){this.init(),Array.from(this.normalizedNames.keys()).forEach(A=>e(this.normalizedNames.get(A),this.headers.get(A)))}};var _p=class{encodeKey(e){return mO(e)}encodeValue(e){return mO(e)}decodeKey(e){return decodeURIComponent(e)}decodeValue(e){return decodeURIComponent(e)}};function FBA(t,e){let A=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(n=>{let o=n.indexOf("="),[r,s]=o==-1?[e.decodeKey(n),""]:[e.decodeKey(n.slice(0,o)),e.decodeValue(n.slice(o+1))],a=A.get(r)||[];a.push(s),A.set(r,a)}),A}var _BA=/%(\d[a-f0-9])/gi,GBA={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function mO(t){return encodeURIComponent(t).replace(_BA,(e,A)=>GBA[A]??e)}function Fp(t){return`${t}`}var w0=class t{map;encoder;updates=null;cloneFrom=null;constructor(e={}){if(this.encoder=e.encoder||new _p,e.fromString){if(e.fromObject)throw new te(2805,!1);this.map=FBA(e.fromString,this.encoder)}else e.fromObject?(this.map=new Map,Object.keys(e.fromObject).forEach(A=>{let i=e.fromObject[A],n=Array.isArray(i)?i.map(Fp):[Fp(i)];this.map.set(A,n)})):this.map=null}has(e){return this.init(),this.map.has(e)}get(e){this.init();let A=this.map.get(e);return A?A[0]:null}getAll(e){return this.init(),this.map.get(e)||null}keys(){return this.init(),Array.from(this.map.keys())}append(e,A){return this.clone({param:e,value:A,op:"a"})}appendAll(e){let A=[];return Object.keys(e).forEach(i=>{let n=e[i];Array.isArray(n)?n.forEach(o=>{A.push({param:i,value:o,op:"a"})}):A.push({param:i,value:n,op:"a"})}),this.clone(A)}set(e,A){return this.clone({param:e,value:A,op:"s"})}delete(e,A){return this.clone({param:e,value:A,op:"d"})}toString(){return this.init(),this.keys().map(e=>{let A=this.encoder.encodeKey(e);return this.map.get(e).map(i=>A+"="+this.encoder.encodeValue(i)).join("&")}).filter(e=>e!=="").join("&")}clone(e){let A=new t({encoder:this.encoder});return A.cloneFrom=this.cloneFrom||this,A.updates=(this.updates||[]).concat(e),A}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(e=>this.map.set(e,this.cloneFrom.map.get(e))),this.updates.forEach(e=>{switch(e.op){case"a":case"s":let A=(e.op==="a"?this.map.get(e.param):void 0)||[];A.push(Fp(e.value)),this.map.set(e.param,A);break;case"d":if(e.value!==void 0){let i=this.map.get(e.param)||[],n=i.indexOf(Fp(e.value));n!==-1&&i.splice(n,1),i.length>0?this.map.set(e.param,i):this.map.delete(e.param)}else{this.map.delete(e.param);break}}}),this.cloneFrom=this.updates=null)}};var Gp=class{map=new Map;set(e,A){return this.map.set(e,A),this}get(e){return this.map.has(e)||this.map.set(e,e.defaultValue()),this.map.get(e)}delete(e){return this.map.delete(e),this}has(e){return this.map.has(e)}keys(){return this.map.keys()}};function KBA(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function pO(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function DO(t){return typeof Blob<"u"&&t instanceof Blob}function wO(t){return typeof FormData<"u"&&t instanceof FormData}function UBA(t){return typeof URLSearchParams<"u"&&t instanceof URLSearchParams}var yO="Content-Type",vO="Accept",bO="X-Request-URL",kO="text/plain",SO="application/json",JBA=`${SO}, ${kO}, */*`,eB=class t{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;responseType="json";method;params;urlWithParams;transferCache;constructor(e,A,i,n){this.url=A,this.method=e.toUpperCase();let o;if(KBA(this.method)||n?(this.body=i!==void 0?i:null,o=n):o=i,o&&(this.reportProgress=!!o.reportProgress,this.withCredentials=!!o.withCredentials,o.responseType&&(this.responseType=o.responseType),o.headers&&(this.headers=o.headers),o.context&&(this.context=o.context),o.params&&(this.params=o.params),this.transferCache=o.transferCache),this.headers??=new N2,this.context??=new Gp,!this.params)this.params=new w0,this.urlWithParams=A;else{let r=this.params.toString();if(r.length===0)this.urlWithParams=A;else{let s=A.indexOf("?"),a=s===-1?"?":sC.set(d,e.setHeaders[d]),c)),e.setParams&&(g=Object.keys(e.setParams).reduce((C,d)=>C.set(d,e.setParams[d]),g)),new t(A,i,r,{params:g,headers:c,context:I,reportProgress:a,responseType:n,withCredentials:s,transferCache:o})}},UI=function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t}(UI||{}),iB=class{headers;status;statusText;url;ok;type;constructor(e,A=200,i="OK"){this.headers=e.headers||new N2,this.status=e.status!==void 0?e.status:A,this.statusText=e.statusText||i,this.url=e.url||null,this.ok=this.status>=200&&this.status<300}},Kp=class t extends iB{constructor(e={}){super(e)}type=UI.ResponseHeader;clone(e={}){return new t({headers:e.headers||this.headers,status:e.status!==void 0?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}},ju=class t extends iB{body;constructor(e={}){super(e),this.body=e.body!==void 0?e.body:null}type=UI.Response;clone(e={}){return new t({body:e.body!==void 0?e.body:this.body,headers:e.headers||this.headers,status:e.status!==void 0?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}},qu=class extends iB{name="HttpErrorResponse";message;error;ok=!1;constructor(e){super(e,0,"Unknown Error"),this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${e.url||"(unknown url)"}`:this.message=`Http failure response for ${e.url||"(unknown url)"}: ${e.status} ${e.statusText}`,this.error=e.error||null}},YBA=200,TBA=204;function Ob(t,e){return{body:e,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials,transferCache:t.transferCache}}var ks=(()=>{class t{handler;constructor(A){this.handler=A}request(A,i,n={}){let o;if(A instanceof eB)o=A;else{let a;n.headers instanceof N2?a=n.headers:a=new N2(n.headers);let c;n.params&&(n.params instanceof w0?c=n.params:c=new w0({fromObject:n.params})),o=new eB(A,i,n.body!==void 0?n.body:null,{headers:a,context:n.context,params:c,reportProgress:n.reportProgress,responseType:n.responseType||"json",withCredentials:n.withCredentials,transferCache:n.transferCache})}let r=Ce(o).pipe(tl(a=>this.handler.handle(a)));if(A instanceof eB||n.observe==="events")return r;let s=r.pipe(Nt(a=>a instanceof ju));switch(n.observe||"body"){case"body":switch(o.responseType){case"arraybuffer":return s.pipe(je(a=>{if(a.body!==null&&!(a.body instanceof ArrayBuffer))throw new te(2806,!1);return a.body}));case"blob":return s.pipe(je(a=>{if(a.body!==null&&!(a.body instanceof Blob))throw new te(2807,!1);return a.body}));case"text":return s.pipe(je(a=>{if(a.body!==null&&typeof a.body!="string")throw new te(2808,!1);return a.body}));case"json":default:return s.pipe(je(a=>a.body))}case"response":return s;default:throw new te(2809,!1)}}delete(A,i={}){return this.request("DELETE",A,i)}get(A,i={}){return this.request("GET",A,i)}head(A,i={}){return this.request("HEAD",A,i)}jsonp(A,i){return this.request("JSONP",A,{params:new w0().append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(A,i={}){return this.request("OPTIONS",A,i)}patch(A,i,n={}){return this.request("PATCH",A,Ob(n,i))}post(A,i,n={}){return this.request("POST",A,Ob(n,i))}put(A,i,n={}){return this.request("PUT",A,Ob(n,i))}static \u0275fac=function(i){return new(i||t)(be(tB))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();var HBA=new eA("");function RO(t,e){return e(t)}function OBA(t,e){return(A,i)=>e.intercept(A,{handle:n=>t(n,i)})}function zBA(t,e,A){return(i,n)=>da(A,()=>e(i,o=>t(o,n)))}var LO=new eA(""),Pb=new eA(""),xO=new eA(""),jb=new eA("",{providedIn:"root",factory:()=>!0});function PBA(){let t=null;return(e,A)=>{t===null&&(t=(f(LO,{optional:!0})??[]).reduceRight(OBA,RO));let i=f(m0);if(f(jb)){let o=i.add();return t(e,A).pipe(nl(()=>i.remove(o)))}else return t(e,A)}}var Up=(()=>{class t extends tB{backend;injector;chain=null;pendingTasks=f(m0);contributeToStability=f(jb);constructor(A,i){super(),this.backend=A,this.injector=i}handle(A){if(this.chain===null){let i=Array.from(new Set([...this.injector.get(Pb),...this.injector.get(xO,[])]));this.chain=i.reduceRight((n,o)=>zBA(n,o,this.injector),RO)}if(this.contributeToStability){let i=this.pendingTasks.add();return this.chain(A,n=>this.backend.handle(n)).pipe(nl(()=>this.pendingTasks.remove(i)))}else return this.chain(A,i=>this.backend.handle(i))}static \u0275fac=function(i){return new(i||t)(be(Pu),be(vr))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();var jBA=/^\)\]\}',?\n/,qBA=RegExp(`^${bO}:`,"m");function VBA(t){return"responseURL"in t&&t.responseURL?t.responseURL:qBA.test(t.getAllResponseHeaders())?t.getResponseHeader(bO):null}var zb=(()=>{class t{xhrFactory;constructor(A){this.xhrFactory=A}handle(A){if(A.method==="JSONP")throw new te(-2800,!1);let i=this.xhrFactory;return(i.\u0275loadImpl?ro(i.\u0275loadImpl()):Ce(null)).pipe($n(()=>new gt(o=>{let r=i.build();if(r.open(A.method,A.urlWithParams),A.withCredentials&&(r.withCredentials=!0),A.headers.forEach((E,u)=>r.setRequestHeader(E,u.join(","))),A.headers.has(vO)||r.setRequestHeader(vO,JBA),!A.headers.has(yO)){let E=A.detectContentTypeHeader();E!==null&&r.setRequestHeader(yO,E)}if(A.responseType){let E=A.responseType.toLowerCase();r.responseType=E!=="json"?E:"text"}let s=A.serializeBody(),a=null,c=()=>{if(a!==null)return a;let E=r.statusText||"OK",u=new N2(r.getAllResponseHeaders()),h=VBA(r)||A.url;return a=new Kp({headers:u,status:r.status,statusText:E,url:h}),a},g=()=>{let{headers:E,status:u,statusText:h,url:w}=c(),x=null;u!==TBA&&(x=typeof r.response>"u"?r.responseText:r.response),u===0&&(u=x?YBA:0);let R=u>=200&&u<300;if(A.responseType==="json"&&typeof x=="string"){let D=x;x=x.replace(jBA,"");try{x=x!==""?JSON.parse(x):null}catch(G){x=D,R&&(R=!1,x={error:G,text:x})}}R?(o.next(new ju({body:x,headers:E,status:u,statusText:h,url:w||void 0})),o.complete()):o.error(new qu({error:x,headers:E,status:u,statusText:h,url:w||void 0}))},I=E=>{let{url:u}=c(),h=new qu({error:E,status:r.status||0,statusText:r.statusText||"Unknown Error",url:u||void 0});o.error(h)},C=!1,d=E=>{C||(o.next(c()),C=!0);let u={type:UI.DownloadProgress,loaded:E.loaded};E.lengthComputable&&(u.total=E.total),A.responseType==="text"&&r.responseText&&(u.partialText=r.responseText),o.next(u)},B=E=>{let u={type:UI.UploadProgress,loaded:E.loaded};E.lengthComputable&&(u.total=E.total),o.next(u)};return r.addEventListener("load",g),r.addEventListener("error",I),r.addEventListener("timeout",I),r.addEventListener("abort",I),A.reportProgress&&(r.addEventListener("progress",d),s!==null&&r.upload&&r.upload.addEventListener("progress",B)),r.send(s),o.next({type:UI.Sent}),()=>{r.removeEventListener("error",I),r.removeEventListener("abort",I),r.removeEventListener("load",g),r.removeEventListener("timeout",I),A.reportProgress&&(r.removeEventListener("progress",d),s!==null&&r.upload&&r.upload.removeEventListener("progress",B)),r.readyState!==r.DONE&&r.abort()}})))}static \u0275fac=function(i){return new(i||t)(be(KI))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),NO=new eA(""),ZBA="XSRF-TOKEN",WBA=new eA("",{providedIn:"root",factory:()=>ZBA}),XBA="X-XSRF-TOKEN",$BA=new eA("",{providedIn:"root",factory:()=>XBA}),Vu=class{},AEA=(()=>{class t{doc;cookieName;lastCookieString="";lastToken=null;parseCount=0;constructor(A,i){this.doc=A,this.cookieName=i}getToken(){let A=this.doc.cookie||"";return A!==this.lastCookieString&&(this.parseCount++,this.lastToken=zu(A,this.cookieName),this.lastCookieString=A),this.lastToken}static \u0275fac=function(i){return new(i||t)(be(at),be(WBA))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();function eEA(t,e){let A=t.url.toLowerCase();if(!f(NO)||t.method==="GET"||t.method==="HEAD"||A.startsWith("http://")||A.startsWith("https://"))return e(t);let i=f(Vu).getToken(),n=f($BA);return i!=null&&!t.headers.has(n)&&(t=t.clone({headers:t.headers.set(n,i)})),e(t)}var qb=function(t){return t[t.Interceptors=0]="Interceptors",t[t.LegacyInterceptors=1]="LegacyInterceptors",t[t.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",t[t.NoXsrfProtection=3]="NoXsrfProtection",t[t.JsonpSupport=4]="JsonpSupport",t[t.RequestsMadeViaParent=5]="RequestsMadeViaParent",t[t.Fetch=6]="Fetch",t}(qb||{});function tEA(t,e){return{\u0275kind:t,\u0275providers:e}}function FO(...t){let e=[ks,zb,Up,{provide:tB,useExisting:Up},{provide:Pu,useFactory:()=>f(HBA,{optional:!0})??f(zb)},{provide:Pb,useValue:eEA,multi:!0},{provide:NO,useValue:!0},{provide:Vu,useClass:AEA}];for(let A of t)e.push(...A.\u0275providers);return vu(e)}var MO=new eA("");function _O(){return tEA(qb.LegacyInterceptors,[{provide:MO,useFactory:PBA},{provide:Pb,useExisting:MO,multi:!0}])}var Vb=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[FO(_O())]})}return t})();var OO=(()=>{class t{_renderer;_elementRef;onChange=A=>{};onTouched=()=>{};constructor(A,i){this._renderer=A,this._elementRef=i}setProperty(A,i){this._renderer.setProperty(this._elementRef.nativeElement,A,i)}registerOnTouched(A){this.onTouched=A}registerOnChange(A){this.onChange=A}setDisabledState(A){this.setProperty("disabled",A)}static \u0275fac=function(i){return new(i||t)(Ge(qi),Ge(se))};static \u0275dir=WA({type:t})}return t})(),iEA=(()=>{class t extends OO{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,features:[lt]})}return t})(),bc=new eA("");var nEA={provide:bc,useExisting:Ur(()=>kc),multi:!0};function oEA(){let t=$a()?$a().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}var rEA=new eA(""),kc=(()=>{class t extends OO{_compositionMode;_composing=!1;constructor(A,i,n){super(A,i),this._compositionMode=n,this._compositionMode==null&&(this._compositionMode=!oEA())}writeValue(A){let i=A??"";this.setProperty("value",i)}_handleInput(A){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(A)}_compositionStart(){this._composing=!0}_compositionEnd(A){this._composing=!1,this._compositionMode&&this.onChange(A)}static \u0275fac=function(i){return new(i||t)(Ge(qi),Ge(se),Ge(rEA,8))};static \u0275dir=WA({type:t,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,n){i&1&&mA("input",function(r){return n._handleInput(r.target.value)})("blur",function(){return n.onTouched()})("compositionstart",function(){return n._compositionStart()})("compositionend",function(r){return n._compositionEnd(r.target.value)})},standalone:!1,features:[ut([nEA]),lt]})}return t})();function $b(t){return t==null||Ak(t)===0}function Ak(t){return t==null?null:Array.isArray(t)||typeof t=="string"?t.length:t instanceof Set?t.size:null}var M0=new eA(""),th=new eA(""),sEA=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Ac=class{static min(e){return aEA(e)}static max(e){return cEA(e)}static required(e){return gEA(e)}static requiredTrue(e){return lEA(e)}static email(e){return IEA(e)}static minLength(e){return CEA(e)}static maxLength(e){return dEA(e)}static pattern(e){return BEA(e)}static nullValidator(e){return zO()}static compose(e){return WO(e)}static composeAsync(e){return XO(e)}};function aEA(t){return e=>{if(e.value==null||t==null)return null;let A=parseFloat(e.value);return!isNaN(A)&&A{if(e.value==null||t==null)return null;let A=parseFloat(e.value);return!isNaN(A)&&A>t?{max:{max:t,actual:e.value}}:null}}function gEA(t){return $b(t.value)?{required:!0}:null}function lEA(t){return t.value===!0?null:{required:!0}}function IEA(t){return $b(t.value)||sEA.test(t.value)?null:{email:!0}}function CEA(t){return e=>{let A=e.value?.length??Ak(e.value);return A===null||A===0?null:A{let A=e.value?.length??Ak(e.value);return A!==null&&A>t?{maxlength:{requiredLength:t,actualLength:A}}:null}}function BEA(t){if(!t)return zO;let e,A;return typeof t=="string"?(A="",t.charAt(0)!=="^"&&(A+="^"),A+=t,t.charAt(t.length-1)!=="$"&&(A+="$"),e=new RegExp(A)):(A=t.toString(),e=t),i=>{if($b(i.value))return null;let n=i.value;return e.test(n)?null:{pattern:{requiredPattern:A,actualValue:n}}}}function zO(t){return null}function PO(t){return t!=null}function jO(t){return k2(t)?ro(t):t}function qO(t){let e={};return t.forEach(A=>{e=A!=null?sA(sA({},e),A):e}),Object.keys(e).length===0?null:e}function VO(t,e){return e.map(A=>A(t))}function EEA(t){return!t.validate}function ZO(t){return t.map(e=>EEA(e)?e:A=>e.validate(A))}function WO(t){if(!t)return null;let e=t.filter(PO);return e.length==0?null:function(A){return qO(VO(A,e))}}function ek(t){return t!=null?WO(ZO(t)):null}function XO(t){if(!t)return null;let e=t.filter(PO);return e.length==0?null:function(A){let i=VO(A,e).map(jO);return gu(i).pipe(je(qO))}}function tk(t){return t!=null?XO(ZO(t)):null}function GO(t,e){return t===null?[e]:Array.isArray(t)?[...t,e]:[t,e]}function $O(t){return t._rawValidators}function Az(t){return t._rawAsyncValidators}function Zb(t){return t?Array.isArray(t)?t:[t]:[]}function Yp(t,e){return Array.isArray(t)?t.includes(e):t===e}function KO(t,e){let A=Zb(e);return Zb(t).forEach(n=>{Yp(A,n)||A.push(n)}),A}function UO(t,e){return Zb(e).filter(A=>!Yp(t,A))}var Tp=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(e){this._rawValidators=e||[],this._composedValidatorFn=ek(this._rawValidators)}_setAsyncValidators(e){this._rawAsyncValidators=e||[],this._composedAsyncValidatorFn=tk(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(e){this._onDestroyCallbacks.push(e)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(e=>e()),this._onDestroyCallbacks=[]}reset(e=void 0){this.control&&this.control.reset(e)}hasError(e,A){return this.control?this.control.hasError(e,A):!1}getError(e,A){return this.control?this.control.getError(e,A):null}},v0=class extends Tp{name;get formDirective(){return null}get path(){return null}},ec=class extends Tp{_parent=null;name=null;valueAccessor=null},Hp=class{_cd;constructor(e){this._cd=e}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}},QEA={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},cre=Fe(sA({},QEA),{"[class.ng-submitted]":"isSubmitted"}),Ss=(()=>{class t extends Hp{constructor(A){super(A)}static \u0275fac=function(i){return new(i||t)(Ge(ec,2))};static \u0275dir=WA({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,n){i&2&&he("ng-untouched",n.isUntouched)("ng-touched",n.isTouched)("ng-pristine",n.isPristine)("ng-dirty",n.isDirty)("ng-valid",n.isValid)("ng-invalid",n.isInvalid)("ng-pending",n.isPending)},standalone:!1,features:[lt]})}return t})(),ez=(()=>{class t extends Hp{constructor(A){super(A)}static \u0275fac=function(i){return new(i||t)(Ge(v0,10))};static \u0275dir=WA({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,n){i&2&&he("ng-untouched",n.isUntouched)("ng-touched",n.isTouched)("ng-pristine",n.isPristine)("ng-dirty",n.isDirty)("ng-valid",n.isValid)("ng-invalid",n.isInvalid)("ng-pending",n.isPending)("ng-submitted",n.isSubmitted)},standalone:!1,features:[lt]})}return t})();var Zu="VALID",Jp="INVALID",nB="PENDING",Wu="DISABLED",F2=class{},Op=class extends F2{value;source;constructor(e,A){super(),this.value=e,this.source=A}},$u=class extends F2{pristine;source;constructor(e,A){super(),this.pristine=e,this.source=A}},Ah=class extends F2{touched;source;constructor(e,A){super(),this.touched=e,this.source=A}},oB=class extends F2{status;source;constructor(e,A){super(),this.status=e,this.source=A}},zp=class extends F2{source;constructor(e){super(),this.source=e}},Pp=class extends F2{source;constructor(e){super(),this.source=e}};function ik(t){return(Zp(t)?t.validators:t)||null}function uEA(t){return Array.isArray(t)?ek(t):t||null}function nk(t,e){return(Zp(e)?e.asyncValidators:t)||null}function hEA(t){return Array.isArray(t)?tk(t):t||null}function Zp(t){return t!=null&&!Array.isArray(t)&&typeof t=="object"}function tz(t,e,A){let i=t.controls;if(!(e?Object.keys(i):i).length)throw new te(1e3,"");if(!i[A])throw new te(1001,"")}function iz(t,e,A){t._forEachChild((i,n)=>{if(A[n]===void 0)throw new te(1002,"")})}var rB=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(e,A){this._assignValidators(e),this._assignAsyncValidators(A)}get validator(){return this._composedValidatorFn}set validator(e){this._rawValidators=this._composedValidatorFn=e}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(e){this._rawAsyncValidators=this._composedAsyncValidatorFn=e}get parent(){return this._parent}get status(){return ua(this.statusReactive)}set status(e){ua(()=>this.statusReactive.set(e))}_status=Mc(()=>this.statusReactive());statusReactive=Ao(void 0);get valid(){return this.status===Zu}get invalid(){return this.status===Jp}get pending(){return this.status==nB}get disabled(){return this.status===Wu}get enabled(){return this.status!==Wu}errors;get pristine(){return ua(this.pristineReactive)}set pristine(e){ua(()=>this.pristineReactive.set(e))}_pristine=Mc(()=>this.pristineReactive());pristineReactive=Ao(!0);get dirty(){return!this.pristine}get touched(){return ua(this.touchedReactive)}set touched(e){ua(()=>this.touchedReactive.set(e))}_touched=Mc(()=>this.touchedReactive());touchedReactive=Ao(!1);get untouched(){return!this.touched}_events=new qA;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(e){this._assignValidators(e)}setAsyncValidators(e){this._assignAsyncValidators(e)}addValidators(e){this.setValidators(KO(e,this._rawValidators))}addAsyncValidators(e){this.setAsyncValidators(KO(e,this._rawAsyncValidators))}removeValidators(e){this.setValidators(UO(e,this._rawValidators))}removeAsyncValidators(e){this.setAsyncValidators(UO(e,this._rawAsyncValidators))}hasValidator(e){return Yp(this._rawValidators,e)}hasAsyncValidator(e){return Yp(this._rawAsyncValidators,e)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(e={}){let A=this.touched===!1;this.touched=!0;let i=e.sourceControl??this;this._parent&&!e.onlySelf&&this._parent.markAsTouched(Fe(sA({},e),{sourceControl:i})),A&&e.emitEvent!==!1&&this._events.next(new Ah(!0,i))}markAllAsTouched(e={}){this.markAsTouched({onlySelf:!0,emitEvent:e.emitEvent,sourceControl:this}),this._forEachChild(A=>A.markAllAsTouched(e))}markAsUntouched(e={}){let A=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=e.sourceControl??this;this._forEachChild(n=>{n.markAsUntouched({onlySelf:!0,emitEvent:e.emitEvent,sourceControl:i})}),this._parent&&!e.onlySelf&&this._parent._updateTouched(e,i),A&&e.emitEvent!==!1&&this._events.next(new Ah(!1,i))}markAsDirty(e={}){let A=this.pristine===!0;this.pristine=!1;let i=e.sourceControl??this;this._parent&&!e.onlySelf&&this._parent.markAsDirty(Fe(sA({},e),{sourceControl:i})),A&&e.emitEvent!==!1&&this._events.next(new $u(!1,i))}markAsPristine(e={}){let A=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=e.sourceControl??this;this._forEachChild(n=>{n.markAsPristine({onlySelf:!0,emitEvent:e.emitEvent})}),this._parent&&!e.onlySelf&&this._parent._updatePristine(e,i),A&&e.emitEvent!==!1&&this._events.next(new $u(!0,i))}markAsPending(e={}){this.status=nB;let A=e.sourceControl??this;e.emitEvent!==!1&&(this._events.next(new oB(this.status,A)),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.markAsPending(Fe(sA({},e),{sourceControl:A}))}disable(e={}){let A=this._parentMarkedDirty(e.onlySelf);this.status=Wu,this.errors=null,this._forEachChild(n=>{n.disable(Fe(sA({},e),{onlySelf:!0}))}),this._updateValue();let i=e.sourceControl??this;e.emitEvent!==!1&&(this._events.next(new Op(this.value,i)),this._events.next(new oB(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Fe(sA({},e),{skipPristineCheck:A}),this),this._onDisabledChange.forEach(n=>n(!0))}enable(e={}){let A=this._parentMarkedDirty(e.onlySelf);this.status=Zu,this._forEachChild(i=>{i.enable(Fe(sA({},e),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors(Fe(sA({},e),{skipPristineCheck:A}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(e,A){this._parent&&!e.onlySelf&&(this._parent.updateValueAndValidity(e),e.skipPristineCheck||this._parent._updatePristine({},A),this._parent._updateTouched({},A))}setParent(e){this._parent=e}getRawValue(){return this.value}updateValueAndValidity(e={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Zu||this.status===nB)&&this._runAsyncValidator(i,e.emitEvent)}let A=e.sourceControl??this;e.emitEvent!==!1&&(this._events.next(new Op(this.value,A)),this._events.next(new oB(this.status,A)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(Fe(sA({},e),{sourceControl:A}))}_updateTreeValidity(e={emitEvent:!0}){this._forEachChild(A=>A._updateTreeValidity(e)),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Wu:Zu}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(e,A){if(this.asyncValidator){this.status=nB,this._hasOwnPendingAsyncValidator={emitEvent:A!==!1};let i=jO(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(n=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(n,{emitEvent:A,shouldHaveEmitted:e})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let e=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,e}return!1}setErrors(e,A={}){this.errors=e,this._updateControlsErrors(A.emitEvent!==!1,this,A.shouldHaveEmitted)}get(e){let A=e;return A==null||(Array.isArray(A)||(A=A.split(".")),A.length===0)?null:A.reduce((i,n)=>i&&i._find(n),this)}getError(e,A){let i=A?this.get(A):this;return i&&i.errors?i.errors[e]:null}hasError(e,A){return!!this.getError(e,A)}get root(){let e=this;for(;e._parent;)e=e._parent;return e}_updateControlsErrors(e,A,i){this.status=this._calculateStatus(),e&&this.statusChanges.emit(this.status),(e||i)&&this._events.next(new oB(this.status,A)),this._parent&&this._parent._updateControlsErrors(e,A,i)}_initObservables(){this.valueChanges=new YA,this.statusChanges=new YA}_calculateStatus(){return this._allControlsDisabled()?Wu:this.errors?Jp:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(nB)?nB:this._anyControlsHaveStatus(Jp)?Jp:Zu}_anyControlsHaveStatus(e){return this._anyControls(A=>A.status===e)}_anyControlsDirty(){return this._anyControls(e=>e.dirty)}_anyControlsTouched(){return this._anyControls(e=>e.touched)}_updatePristine(e,A){let i=!this._anyControlsDirty(),n=this.pristine!==i;this.pristine=i,this._parent&&!e.onlySelf&&this._parent._updatePristine(e,A),n&&this._events.next(new $u(this.pristine,A))}_updateTouched(e={},A){this.touched=this._anyControlsTouched(),this._events.next(new Ah(this.touched,A)),this._parent&&!e.onlySelf&&this._parent._updateTouched(e,A)}_onDisabledChange=[];_registerOnCollectionChange(e){this._onCollectionChange=e}_setUpdateStrategy(e){Zp(e)&&e.updateOn!=null&&(this._updateOn=e.updateOn)}_parentMarkedDirty(e){let A=this._parent&&this._parent.dirty;return!e&&!!A&&!this._parent._anyControlsDirty()}_find(e){return null}_assignValidators(e){this._rawValidators=Array.isArray(e)?e.slice():e,this._composedValidatorFn=uEA(this._rawValidators)}_assignAsyncValidators(e){this._rawAsyncValidators=Array.isArray(e)?e.slice():e,this._composedAsyncValidatorFn=hEA(this._rawAsyncValidators)}},sB=class extends rB{constructor(e,A,i){super(ik(A),nk(i,A)),this.controls=e,this._initObservables(),this._setUpdateStrategy(A),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(e,A){return this.controls[e]?this.controls[e]:(this.controls[e]=A,A.setParent(this),A._registerOnCollectionChange(this._onCollectionChange),A)}addControl(e,A,i={}){this.registerControl(e,A),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(e,A={}){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),delete this.controls[e],this.updateValueAndValidity({emitEvent:A.emitEvent}),this._onCollectionChange()}setControl(e,A,i={}){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),delete this.controls[e],A&&this.registerControl(e,A),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(e){return this.controls.hasOwnProperty(e)&&this.controls[e].enabled}setValue(e,A={}){iz(this,!0,e),Object.keys(e).forEach(i=>{tz(this,!0,i),this.controls[i].setValue(e[i],{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A)}patchValue(e,A={}){e!=null&&(Object.keys(e).forEach(i=>{let n=this.controls[i];n&&n.patchValue(e[i],{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A))}reset(e={},A={}){this._forEachChild((i,n)=>{i.reset(e?e[n]:null,{onlySelf:!0,emitEvent:A.emitEvent})}),this._updatePristine(A,this),this._updateTouched(A,this),this.updateValueAndValidity(A)}getRawValue(){return this._reduceChildren({},(e,A,i)=>(e[i]=A.getRawValue(),e))}_syncPendingControls(){let e=this._reduceChildren(!1,(A,i)=>i._syncPendingControls()?!0:A);return e&&this.updateValueAndValidity({onlySelf:!0}),e}_forEachChild(e){Object.keys(this.controls).forEach(A=>{let i=this.controls[A];i&&e(i,A)})}_setUpControls(){this._forEachChild(e=>{e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(e){for(let[A,i]of Object.entries(this.controls))if(this.contains(A)&&e(i))return!0;return!1}_reduceValue(){let e={};return this._reduceChildren(e,(A,i,n)=>((i.enabled||this.disabled)&&(A[n]=i.value),A))}_reduceChildren(e,A){let i=e;return this._forEachChild((n,o)=>{i=A(i,n,o)}),i}_allControlsDisabled(){for(let e of Object.keys(this.controls))if(this.controls[e].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(e){return this.controls.hasOwnProperty(e)?this.controls[e]:null}};var Wb=class extends sB{};var aB=new eA("",{providedIn:"root",factory:()=>Wp}),Wp="always";function nz(t,e){return[...e.path,t]}function eh(t,e,A=Wp){ok(t,e),e.valueAccessor.writeValue(t.value),(t.disabled||A==="always")&&e.valueAccessor.setDisabledState?.(t.disabled),mEA(t,e),DEA(t,e),pEA(t,e),fEA(t,e)}function jp(t,e,A=!0){let i=()=>{};e.valueAccessor&&(e.valueAccessor.registerOnChange(i),e.valueAccessor.registerOnTouched(i)),Vp(t,e),t&&(e._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function qp(t,e){t.forEach(A=>{A.registerOnValidatorChange&&A.registerOnValidatorChange(e)})}function fEA(t,e){if(e.valueAccessor.setDisabledState){let A=i=>{e.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(A),e._registerOnDestroy(()=>{t._unregisterOnDisabledChange(A)})}}function ok(t,e){let A=$O(t);e.validator!==null?t.setValidators(GO(A,e.validator)):typeof A=="function"&&t.setValidators([A]);let i=Az(t);e.asyncValidator!==null?t.setAsyncValidators(GO(i,e.asyncValidator)):typeof i=="function"&&t.setAsyncValidators([i]);let n=()=>t.updateValueAndValidity();qp(e._rawValidators,n),qp(e._rawAsyncValidators,n)}function Vp(t,e){let A=!1;if(t!==null){if(e.validator!==null){let n=$O(t);if(Array.isArray(n)&&n.length>0){let o=n.filter(r=>r!==e.validator);o.length!==n.length&&(A=!0,t.setValidators(o))}}if(e.asyncValidator!==null){let n=Az(t);if(Array.isArray(n)&&n.length>0){let o=n.filter(r=>r!==e.asyncValidator);o.length!==n.length&&(A=!0,t.setAsyncValidators(o))}}}let i=()=>{};return qp(e._rawValidators,i),qp(e._rawAsyncValidators,i),A}function mEA(t,e){e.valueAccessor.registerOnChange(A=>{t._pendingValue=A,t._pendingChange=!0,t._pendingDirty=!0,t.updateOn==="change"&&oz(t,e)})}function pEA(t,e){e.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,t.updateOn==="blur"&&t._pendingChange&&oz(t,e),t.updateOn!=="submit"&&t.markAsTouched()})}function oz(t,e){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function DEA(t,e){let A=(i,n)=>{e.valueAccessor.writeValue(i),n&&e.viewToModelUpdate(i)};t.registerOnChange(A),e._registerOnDestroy(()=>{t._unregisterOnChange(A)})}function rz(t,e){t==null,ok(t,e)}function wEA(t,e){return Vp(t,e)}function rk(t,e){if(!t.hasOwnProperty("model"))return!1;let A=t.model;return A.isFirstChange()?!0:!Object.is(e,A.currentValue)}function yEA(t){return Object.getPrototypeOf(t.constructor)===iEA}function sz(t,e){t._syncPendingControls(),e.forEach(A=>{let i=A.control;i.updateOn==="submit"&&i._pendingChange&&(A.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function sk(t,e){if(!e)return null;Array.isArray(e);let A,i,n;return e.forEach(o=>{o.constructor===kc?A=o:yEA(o)?i=o:n=o}),n||i||A||null}function vEA(t,e){let A=t.indexOf(e);A>-1&&t.splice(A,1)}var MEA={provide:v0,useExisting:Ur(()=>ih)},Xu=Promise.resolve(),ih=(()=>{class t extends v0{callSetDisabledState;get submitted(){return ua(this.submittedReactive)}_submitted=Mc(()=>this.submittedReactive());submittedReactive=Ao(!1);_directives=new Set;form;ngSubmit=new YA;options;constructor(A,i,n){super(),this.callSetDisabledState=n,this.form=new sB({},ek(A),tk(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(A){Xu.then(()=>{let i=this._findContainer(A.path);A.control=i.registerControl(A.name,A.control),eh(A.control,A,this.callSetDisabledState),A.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(A)})}getControl(A){return this.form.get(A.path)}removeControl(A){Xu.then(()=>{let i=this._findContainer(A.path);i&&i.removeControl(A.name),this._directives.delete(A)})}addFormGroup(A){Xu.then(()=>{let i=this._findContainer(A.path),n=new sB({});rz(n,A),i.registerControl(A.name,n),n.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(A){Xu.then(()=>{let i=this._findContainer(A.path);i&&i.removeControl(A.name)})}getFormGroup(A){return this.form.get(A.path)}updateModel(A,i){Xu.then(()=>{this.form.get(A.path).setValue(i)})}setValue(A){this.control.setValue(A)}onSubmit(A){return this.submittedReactive.set(!0),sz(this.form,this._directives),this.ngSubmit.emit(A),this.form._events.next(new zp(this.control)),A?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(A=void 0){this.form.reset(A),this.submittedReactive.set(!1),this.form._events.next(new Pp(this.form))}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(A){return A.pop(),A.length?this.form.get(A):this.form}static \u0275fac=function(i){return new(i||t)(Ge(M0,10),Ge(th,10),Ge(aB,8))};static \u0275dir=WA({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,n){i&1&&mA("submit",function(r){return n.onSubmit(r)})("reset",function(){return n.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[ut([MEA]),lt]})}return t})();function JO(t,e){let A=t.indexOf(e);A>-1&&t.splice(A,1)}function YO(t){return typeof t=="object"&&t!==null&&Object.keys(t).length===2&&"value"in t&&"disabled"in t}var y0=class extends rB{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(e=null,A,i){super(ik(A),nk(i,A)),this._applyFormState(e),this._setUpdateStrategy(A),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Zp(A)&&(A.nonNullable||A.initialValueIsDefault)&&(YO(e)?this.defaultValue=e.value:this.defaultValue=e)}setValue(e,A={}){this.value=this._pendingValue=e,this._onChange.length&&A.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,A.emitViewToModelChange!==!1)),this.updateValueAndValidity(A)}patchValue(e,A={}){this.setValue(e,A)}reset(e=this.defaultValue,A={}){this._applyFormState(e),this.markAsPristine(A),this.markAsUntouched(A),this.setValue(this.value,A),this._pendingChange=!1}_updateValue(){}_anyControls(e){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(e){this._onChange.push(e)}_unregisterOnChange(e){JO(this._onChange,e)}registerOnDisabledChange(e){this._onDisabledChange.push(e)}_unregisterOnDisabledChange(e){JO(this._onDisabledChange,e)}_forEachChild(e){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(e){YO(e)?(this.value=this._pendingValue=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=e}};var bEA=t=>t instanceof y0;var kEA={provide:ec,useExisting:Ur(()=>tc)},TO=Promise.resolve(),tc=(()=>{class t extends ec{_changeDetectorRef;callSetDisabledState;control=new y0;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new YA;constructor(A,i,n,o,r,s){super(),this._changeDetectorRef=r,this.callSetDisabledState=s,this._parent=A,this._setValidators(i),this._setAsyncValidators(n),this.valueAccessor=sk(this,o)}ngOnChanges(A){if(this._checkForErrors(),!this._registered||"name"in A){if(this._registered&&(this._checkName(),this.formDirective)){let i=A.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in A&&this._updateDisabled(A),rk(A,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){eh(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(A){TO.then(()=>{this.control.setValue(A,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(A){let i=A.isDisabled.currentValue,n=i!==0&&ge(i);TO.then(()=>{n&&!this.control.disabled?this.control.disable():!n&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(A){return this._parent?nz(A,this._parent):[A]}static \u0275fac=function(i){return new(i||t)(Ge(v0,9),Ge(M0,10),Ge(th,10),Ge(bc,10),Ge(Et,8),Ge(aB,8))};static \u0275dir=WA({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[ut([kEA]),lt,Xt]})}return t})();var az=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return t})();var ak=new eA(""),SEA={provide:ec,useExisting:Ur(()=>ck)},ck=(()=>{class t extends ec{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(A){}model;update=new YA;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(A,i,n,o,r){super(),this._ngModelWarningConfig=o,this.callSetDisabledState=r,this._setValidators(A),this._setAsyncValidators(i),this.valueAccessor=sk(this,n)}ngOnChanges(A){if(this._isControlChanged(A)){let i=A.form.previousValue;i&&jp(i,this,!1),eh(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}rk(A,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&jp(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}_isControlChanged(A){return A.hasOwnProperty("form")}static \u0275fac=function(i){return new(i||t)(Ge(M0,10),Ge(th,10),Ge(bc,10),Ge(ak,8),Ge(aB,8))};static \u0275dir=WA({type:t,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[ut([SEA]),lt,Xt]})}return t})(),REA={provide:v0,useExisting:Ur(()=>YI)},YI=(()=>{class t extends v0{callSetDisabledState;get submitted(){return ua(this._submittedReactive)}set submitted(A){this._submittedReactive.set(A)}_submitted=Mc(()=>this._submittedReactive());_submittedReactive=Ao(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];form=null;ngSubmit=new YA;constructor(A,i,n){super(),this.callSetDisabledState=n,this._setValidators(A),this._setAsyncValidators(i)}ngOnChanges(A){A.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Vp(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(A){let i=this.form.get(A.path);return eh(i,A,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(A),i}getControl(A){return this.form.get(A.path)}removeControl(A){jp(A.control||null,A,!1),vEA(this.directives,A)}addFormGroup(A){this._setUpFormContainer(A)}removeFormGroup(A){this._cleanUpFormContainer(A)}getFormGroup(A){return this.form.get(A.path)}addFormArray(A){this._setUpFormContainer(A)}removeFormArray(A){this._cleanUpFormContainer(A)}getFormArray(A){return this.form.get(A.path)}updateModel(A,i){this.form.get(A.path).setValue(i)}onSubmit(A){return this._submittedReactive.set(!0),sz(this.form,this.directives),this.ngSubmit.emit(A),this.form._events.next(new zp(this.control)),A?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(A=void 0){this.form.reset(A),this._submittedReactive.set(!1),this.form._events.next(new Pp(this.form))}_updateDomValue(){this.directives.forEach(A=>{let i=A.control,n=this.form.get(A.path);i!==n&&(jp(i||null,A),bEA(n)&&(eh(n,A,this.callSetDisabledState),A.control=n))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(A){let i=this.form.get(A.path);rz(i,A),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(A){if(this.form){let i=this.form.get(A.path);i&&wEA(i,A)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){ok(this.form,this),this._oldForm&&Vp(this._oldForm,this)}static \u0275fac=function(i){return new(i||t)(Ge(M0,10),Ge(th,10),Ge(aB,8))};static \u0275dir=WA({type:t,selectors:[["","formGroup",""]],hostBindings:function(i,n){i&1&&mA("submit",function(r){return n.onSubmit(r)})("reset",function(){return n.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[ut([REA]),lt,Xt]})}return t})();var LEA={provide:ec,useExisting:Ur(()=>gk)},gk=(()=>{class t extends ec{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(A){}model;update=new YA;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(A,i,n,o,r){super(),this._ngModelWarningConfig=r,this._parent=A,this._setValidators(i),this._setAsyncValidators(n),this.valueAccessor=sk(this,o)}ngOnChanges(A){this._added||this._setUpControl(),rk(A,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(A){this.viewModel=A,this.update.emit(A)}get path(){return nz(this.name==null?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_setUpControl(){this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||t)(Ge(v0,13),Ge(M0,10),Ge(th,10),Ge(bc,10),Ge(ak,8))};static \u0275dir=WA({type:t,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[ut([LEA]),lt,Xt]})}return t})();var cz=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})(),Xb=class extends rB{constructor(e,A,i){super(ik(A),nk(i,A)),this.controls=e,this._initObservables(),this._setUpdateStrategy(A),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(e){return this.controls[this._adjustIndex(e)]}push(e,A={}){this.controls.push(e),this._registerControl(e),this.updateValueAndValidity({emitEvent:A.emitEvent}),this._onCollectionChange()}insert(e,A,i={}){this.controls.splice(e,0,A),this._registerControl(A),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(e,A={}){let i=this._adjustIndex(e);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:A.emitEvent})}setControl(e,A,i={}){let n=this._adjustIndex(e);n<0&&(n=0),this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),this.controls.splice(n,1),A&&(this.controls.splice(n,0,A),this._registerControl(A)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(e,A={}){iz(this,!1,e),e.forEach((i,n)=>{tz(this,!1,n),this.at(n).setValue(i,{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A)}patchValue(e,A={}){e!=null&&(e.forEach((i,n)=>{this.at(n)&&this.at(n).patchValue(i,{onlySelf:!0,emitEvent:A.emitEvent})}),this.updateValueAndValidity(A))}reset(e=[],A={}){this._forEachChild((i,n)=>{i.reset(e[n],{onlySelf:!0,emitEvent:A.emitEvent})}),this._updatePristine(A,this),this._updateTouched(A,this),this.updateValueAndValidity(A)}getRawValue(){return this.controls.map(e=>e.getRawValue())}clear(e={}){this.controls.length<1||(this._forEachChild(A=>A._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:e.emitEvent}))}_adjustIndex(e){return e<0?e+this.length:e}_syncPendingControls(){let e=this.controls.reduce((A,i)=>i._syncPendingControls()?!0:A,!1);return e&&this.updateValueAndValidity({onlySelf:!0}),e}_forEachChild(e){this.controls.forEach((A,i)=>{e(A,i)})}_updateValue(){this.value=this.controls.filter(e=>e.enabled||this.disabled).map(e=>e.value)}_anyControls(e){return this.controls.some(A=>A.enabled&&e(A))}_setUpControls(){this._forEachChild(e=>this._registerControl(e))}_allControlsDisabled(){for(let e of this.controls)if(e.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(e){e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)}_find(e){return this.at(e)??null}};function HO(t){return!!t&&(t.asyncValidators!==void 0||t.validators!==void 0||t.updateOn!==void 0)}var gz=(()=>{class t{useNonNullable=!1;get nonNullable(){let A=new t;return A.useNonNullable=!0,A}group(A,i=null){let n=this._reduceControls(A),o={};return HO(i)?o=i:i!==null&&(o.validators=i.validator,o.asyncValidators=i.asyncValidator),new sB(n,o)}record(A,i=null){let n=this._reduceControls(A);return new Wb(n,i)}control(A,i,n){let o={};return this.useNonNullable?(HO(i)?o=i:(o.validators=i,o.asyncValidators=n),new y0(A,Fe(sA({},o),{nonNullable:!0}))):new y0(A,i,n)}array(A,i,n){let o=A.map(r=>this._createControl(r));return new Xb(o,i,n)}_reduceControls(A){let i={};return Object.keys(A).forEach(n=>{i[n]=this._createControl(A[n])}),i}_createControl(A){if(A instanceof y0)return A;if(A instanceof rB)return A;if(Array.isArray(A)){let i=A[0],n=A.length>1?A[1]:null,o=A.length>2?A[2]:null;return this.control(i,n,o)}else return this.control(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Mr=(()=>{class t{static withConfig(A){return{ngModule:t,providers:[{provide:aB,useValue:A.callSetDisabledState??Wp}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[cz]})}return t})(),cB=(()=>{class t{static withConfig(A){return{ngModule:t,providers:[{provide:ak,useValue:A.warnOnNgModelWithFormControl??"always"},{provide:aB,useValue:A.callSetDisabledState??Wp}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[cz]})}return t})();var Ik;try{Ik=typeof Intl<"u"&&Intl.v8BreakIterator}catch{Ik=!1}var ni=(()=>{class t{_platformId=f(El);isBrowser=this._platformId?ul(this._platformId):typeof document=="object"&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!!(window.chrome||Ik)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var gB,lz=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function Ck(){if(gB)return gB;if(typeof document!="object"||!document)return gB=new Set(lz),gB;let t=document.createElement("input");return gB=new Set(lz.filter(e=>(t.setAttribute("type",e),t.type===e))),gB}var nh;function xEA(){if(nh==null&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>nh=!0}))}finally{nh=nh||!1}return nh}function Sc(t){return xEA()?t:!!t.capture}var hg=function(t){return t[t.NORMAL=0]="NORMAL",t[t.NEGATED=1]="NEGATED",t[t.INVERTED=2]="INVERTED",t}(hg||{}),Xp,TI;function $p(){if(TI==null){if(typeof document!="object"||!document||typeof Element!="function"||!Element)return TI=!1,TI;if("scrollBehavior"in document.documentElement.style)TI=!0;else{let t=Element.prototype.scrollTo;t?TI=!/\{\s*\[native code\]\s*\}/.test(t.toString()):TI=!1}}return TI}function lB(){if(typeof document!="object"||!document)return hg.NORMAL;if(Xp==null){let t=document.createElement("div"),e=t.style;t.dir="rtl",e.width="1px",e.overflow="auto",e.visibility="hidden",e.pointerEvents="none",e.position="absolute";let A=document.createElement("div"),i=A.style;i.width="2px",i.height="1px",t.appendChild(A),document.body.appendChild(t),Xp=hg.NORMAL,t.scrollLeft===0&&(t.scrollLeft=1,Xp=t.scrollLeft===0?hg.NEGATED:hg.INVERTED),t.remove()}return Xp}var lk;function NEA(){if(lk==null){let t=typeof document<"u"?document.head:null;lk=!!(t&&(t.createShadowRoot||t.attachShadow))}return lk}function Iz(t){if(NEA()){let e=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&e instanceof ShadowRoot)return e}return null}function IB(){let t=typeof document<"u"&&document?document.activeElement:null;for(;t&&t.shadowRoot;){let e=t.shadowRoot.activeElement;if(e===t)break;t=e}return t}function ic(t){return t.composedPath?t.composedPath()[0]:t.target}function dk(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}function Bk(t,e,A,i,n){let o=parseInt(Nb.major),r=parseInt(Nb.minor);return o>19||o===19&&r>0||o===0&&r===0?t.listen(e,A,i,n):(e.addEventListener(A,i,n),()=>{e.removeEventListener(A,i,n)})}var A6=new WeakMap,Pn=(()=>{class t{_appRef;_injector=f(Zt);_environmentInjector=f(vr);load(A){let i=this._appRef=this._appRef||this._injector.get(Ca),n=A6.get(i);n||(n={loaders:new Set,refs:[]},A6.set(i,n),i.onDestroy(()=>{A6.get(i)?.refs.forEach(o=>o.destroy()),A6.delete(i)})),n.loaders.has(A)||(n.loaders.add(A),n.refs.push(vp(A,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),oh=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],exportAs:["cdkVisuallyHidden"],decls:0,vars:0,template:function(i,n){},styles:[".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}"],encapsulation:2,changeDetection:0})}return t})();function sr(t,...e){return e.length?e.some(A=>t[A]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}function Ar(t){return t!=null&&`${t}`!="false"}function Zs(t,e=0){return Ek(t)?Number(t):arguments.length===2?e:0}function Ek(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}function CB(t){return Array.isArray(t)?t:[t]}function hr(t){return t==null?"":typeof t=="string"?t:`${t}px`}function fa(t){return t instanceof se?t.nativeElement:t}function FEA(t){if(t.type==="characterData"&&t.target instanceof Comment)return!0;if(t.type==="childList"){for(let e=0;e{class t{create(A){return typeof MutationObserver>"u"?null:new MutationObserver(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),dz=(()=>{class t{_mutationObserverFactory=f(Cz);_observedElements=new Map;_ngZone=f(ye);constructor(){}ngOnDestroy(){this._observedElements.forEach((A,i)=>this._cleanupObserver(i))}observe(A){let i=fa(A);return new gt(n=>{let r=this._observeElement(i).pipe(je(s=>s.filter(a=>!FEA(a))),Nt(s=>!!s.length)).subscribe(s=>{this._ngZone.run(()=>{n.next(s)})});return()=>{r.unsubscribe(),this._unobserveElement(i)}})}_observeElement(A){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(A))this._observedElements.get(A).count++;else{let i=new qA,n=this._mutationObserverFactory.create(o=>i.next(o));n&&n.observe(A,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(A,{observer:n,stream:i,count:1})}return this._observedElements.get(A).stream})}_unobserveElement(A){this._observedElements.has(A)&&(this._observedElements.get(A).count--,this._observedElements.get(A).count||this._cleanupObserver(A))}_cleanupObserver(A){if(this._observedElements.has(A)){let{observer:i,stream:n}=this._observedElements.get(A);i&&i.disconnect(),n.complete(),this._observedElements.delete(A)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),e6=(()=>{class t{_contentObserver=f(dz);_elementRef=f(se);event=new YA;get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._disabled?this._unsubscribe():this._subscribe()}_disabled=!1;get debounce(){return this._debounce}set debounce(A){this._debounce=Zs(A),this._subscribe()}_debounce;_currentSubscription=null;constructor(){}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();let A=this._contentObserver.observe(this._elementRef);this._currentSubscription=(this.debounce?A.pipe(ag(this.debounce)):A).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",ge],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}return t})(),rh=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[Cz]})}return t})();var Bz=new Set,HI,_EA=(()=>{class t{_platform=f(ni);_nonce=f(bu,{optional:!0});_matchMedia;constructor(){this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):KEA}matchMedia(A){return(this._platform.WEBKIT||this._platform.BLINK)&&GEA(A,this._nonce),this._matchMedia(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function GEA(t,e){if(!Bz.has(t))try{HI||(HI=document.createElement("style"),e&&HI.setAttribute("nonce",e),HI.setAttribute("type","text/css"),document.head.appendChild(HI)),HI.sheet&&(HI.sheet.insertRule(`@media ${t} {body{ }}`,0),Bz.add(t))}catch(A){console.error(A)}}function KEA(t){return{matches:t==="all"||t==="",media:t,addListener:()=>{},removeListener:()=>{}}}var t6=(()=>{class t{_mediaMatcher=f(_EA);_zone=f(ye);_queries=new Map;_destroySubject=new qA;constructor(){}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(A){return Ez(CB(A)).some(n=>this._registerQuery(n).mql.matches)}observe(A){let n=Ez(CB(A)).map(r=>this._registerQuery(r).observable),o=ga(n);return o=Q2(o.pipe(Xn(1)),o.pipe(mI(1),ag(0))),o.pipe(je(r=>{let s={matches:!1,breakpoints:{}};return r.forEach(({matches:a,query:c})=>{s.matches=s.matches||a,s.breakpoints[c]=a}),s}))}_registerQuery(A){if(this._queries.has(A))return this._queries.get(A);let i=this._mediaMatcher.matchMedia(A),o={observable:new gt(r=>{let s=a=>this._zone.run(()=>r.next(a));return i.addListener(s),()=>{i.removeListener(s)}}).pipe(On(i),je(({matches:r})=>({query:A,matches:r})),kt(this._destroySubject)),mql:i};return this._queries.set(A,o),o}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Ez(t){return t.map(e=>e.split(",")).reduce((e,A)=>e.concat(A)).map(e=>e.trim())}var Qz={XSmall:"(max-width: 599.98px)",Small:"(min-width: 600px) and (max-width: 959.98px)",Medium:"(min-width: 960px) and (max-width: 1279.98px)",Large:"(min-width: 1280px) and (max-width: 1919.98px)",XLarge:"(min-width: 1920px)",Handset:"(max-width: 599.98px) and (orientation: portrait), (max-width: 959.98px) and (orientation: landscape)",Tablet:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), (min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",Web:"(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)",HandsetPortrait:"(max-width: 599.98px) and (orientation: portrait)",TabletPortrait:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)",WebPortrait:"(min-width: 840px) and (orientation: portrait)",HandsetLandscape:"(max-width: 959.98px) and (orientation: landscape)",TabletLandscape:"(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",WebLandscape:"(min-width: 1280px) and (orientation: landscape)"};var pz=" ";function wk(t,e,A){let i=r6(t,e);A=A.trim(),!i.some(n=>n.trim()===A)&&(i.push(A),t.setAttribute(e,i.join(pz)))}function c6(t,e,A){let i=r6(t,e);A=A.trim();let n=i.filter(o=>o!==A);n.length?t.setAttribute(e,n.join(pz)):t.removeAttribute(e)}function r6(t,e){return t.getAttribute(e)?.match(/\S+/g)??[]}var Dz="cdk-describedby-message",i6="cdk-describedby-host",fk=0,wz=(()=>{class t{_platform=f(ni);_document=f(at);_messageRegistry=new Map;_messagesContainer=null;_id=`${fk++}`;constructor(){f(Pn).load(oh),this._id=f(Vd)+"-"+fk++}describe(A,i,n){if(!this._canBeDescribed(A,i))return;let o=Qk(i,n);typeof i!="string"?(uz(i,this._id),this._messageRegistry.set(o,{messageElement:i,referenceCount:0})):this._messageRegistry.has(o)||this._createMessageElement(i,n),this._isElementDescribedByMessage(A,o)||this._addMessageReference(A,o)}removeDescription(A,i,n){if(!i||!this._isElementNode(A))return;let o=Qk(i,n);if(this._isElementDescribedByMessage(A,o)&&this._removeMessageReference(A,o),typeof i=="string"){let r=this._messageRegistry.get(o);r&&r.referenceCount===0&&this._deleteMessageElement(o)}this._messagesContainer?.childNodes.length===0&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){let A=this._document.querySelectorAll(`[${i6}="${this._id}"]`);for(let i=0;in.indexOf(Dz)!=0);A.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(A,i){let n=this._messageRegistry.get(i);wk(A,"aria-describedby",n.messageElement.id),A.setAttribute(i6,this._id),n.referenceCount++}_removeMessageReference(A,i){let n=this._messageRegistry.get(i);n.referenceCount--,c6(A,"aria-describedby",n.messageElement.id),A.removeAttribute(i6)}_isElementDescribedByMessage(A,i){let n=r6(A,"aria-describedby"),o=this._messageRegistry.get(i),r=o&&o.messageElement.id;return!!r&&n.indexOf(r)!=-1}_canBeDescribed(A,i){if(!this._isElementNode(A))return!1;if(i&&typeof i=="object")return!0;let n=i==null?"":`${i}`.trim(),o=A.getAttribute("aria-label");return n?!o||o.trim()!==n:!1}_isElementNode(A){return A.nodeType===this._document.ELEMENT_NODE}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Qk(t,e){return typeof t=="string"?`${e||""}/${t}`:t}function uz(t,e){t.id||(t.id=`${Dz}-${e}-${fk++}`)}var XEA=200,mk=class{_letterKeyStream=new qA;_items=[];_selectedItemIndex=-1;_pressedLetters=[];_skipPredicateFn;_selectedItem=new qA;selectedItem=this._selectedItem;constructor(e,A){let i=typeof A?.debounceInterval=="number"?A.debounceInterval:XEA;A?.skipPredicate&&(this._skipPredicateFn=A.skipPredicate),this.setItems(e),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(e){this._selectedItemIndex=e}setItems(e){this._items=e}handleKey(e){let A=e.keyCode;e.key&&e.key.length===1?this._letterKeyStream.next(e.key.toLocaleUpperCase()):(A>=65&&A<=90||A>=48&&A<=57)&&this._letterKeyStream.next(String.fromCharCode(A))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(e){this._letterKeyStream.pipe(So(A=>this._pressedLetters.push(A)),ag(e),Nt(()=>this._pressedLetters.length>0),je(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(A=>{for(let i=1;ie.disabled;constructor(e,A){this._items=e,e instanceof qa?this._itemChangesSubscription=e.changes.subscribe(i=>this._itemsChanged(i.toArray())):v2(e)&&(this._effectRef=Ku(()=>this._itemsChanged(e()),{injector:A}))}tabOut=new qA;change=new qA;skipPredicate(e){return this._skipPredicateFn=e,this}withWrap(e=!0){return this._wrap=e,this}withVerticalOrientation(e=!0){return this._vertical=e,this}withHorizontalOrientation(e){return this._horizontal=e,this}withAllowedModifierKeys(e){return this._allowedModifierKeys=e,this}withTypeAhead(e=200){this._typeaheadSubscription.unsubscribe();let A=this._getItemsArray();return this._typeahead=new mk(A,{debounceInterval:typeof e=="number"?e:void 0,skipPredicate:i=>this._skipPredicateFn(i)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(i=>{this.setActiveItem(i)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(e=!0){return this._homeAndEnd=e,this}withPageUpDown(e=!0,A=10){return this._pageUpAndDown={enabled:e,delta:A},this}setActiveItem(e){let A=this._activeItem();this.updateActiveItem(e),this._activeItem()!==A&&this.change.next(this._activeItemIndex)}onKeydown(e){let A=e.keyCode,n=["altKey","ctrlKey","metaKey","shiftKey"].every(o=>!e[o]||this._allowedModifierKeys.indexOf(o)>-1);switch(A){case 9:this.tabOut.next();return;case 40:if(this._vertical&&n){this.setNextItemActive();break}else return;case 38:if(this._vertical&&n){this.setPreviousItemActive();break}else return;case 39:if(this._horizontal&&n){this._horizontal==="rtl"?this.setPreviousItemActive():this.setNextItemActive();break}else return;case 37:if(this._horizontal&&n){this._horizontal==="rtl"?this.setNextItemActive():this.setPreviousItemActive();break}else return;case 36:if(this._homeAndEnd&&n){this.setFirstItemActive();break}else return;case 35:if(this._homeAndEnd&&n){this.setLastItemActive();break}else return;case 33:if(this._pageUpAndDown.enabled&&n){let o=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(o>0?o:0,1);break}else return;case 34:if(this._pageUpAndDown.enabled&&n){let o=this._activeItemIndex+this._pageUpAndDown.delta,r=this._getItemsArray().length;this._setActiveItemByIndex(o-1&&i!==this._activeItemIndex&&(this._activeItemIndex=i,this._typeahead?.setCurrentSelectedItemIndex(i))}}},a6=class extends s6{setActiveItem(e){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(e),this.activeItem&&this.activeItem.setActiveStyles()}},zI=class extends s6{_origin="program";setFocusOrigin(e){return this._origin=e,this}setActiveItem(e){super.setActiveItem(e),this.activeItem&&this.activeItem.focus(this._origin)}};var sh=(()=>{class t{_platform=f(ni);constructor(){}isDisabled(A){return A.hasAttribute("disabled")}isVisible(A){return AQA(A)&&getComputedStyle(A).visibility==="visible"}isTabbable(A){if(!this._platform.isBrowser)return!1;let i=$EA(aQA(A));if(i&&(hz(i)===-1||!this.isVisible(i)))return!1;let n=A.nodeName.toLowerCase(),o=hz(A);return A.hasAttribute("contenteditable")?o!==-1:n==="iframe"||n==="object"||this._platform.WEBKIT&&this._platform.IOS&&!rQA(A)?!1:n==="audio"?A.hasAttribute("controls")?o!==-1:!1:n==="video"?o===-1?!1:o!==null?!0:this._platform.FIREFOX||A.hasAttribute("controls"):A.tabIndex>=0}isFocusable(A,i){return sQA(A)&&!this.isDisabled(A)&&(i?.ignoreVisibility||this.isVisible(A))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $EA(t){try{return t.frameElement}catch{return null}}function AQA(t){return!!(t.offsetWidth||t.offsetHeight||typeof t.getClientRects=="function"&&t.getClientRects().length)}function eQA(t){let e=t.nodeName.toLowerCase();return e==="input"||e==="select"||e==="button"||e==="textarea"}function tQA(t){return nQA(t)&&t.type=="hidden"}function iQA(t){return oQA(t)&&t.hasAttribute("href")}function nQA(t){return t.nodeName.toLowerCase()=="input"}function oQA(t){return t.nodeName.toLowerCase()=="a"}function yz(t){if(!t.hasAttribute("tabindex")||t.tabIndex===void 0)return!1;let e=t.getAttribute("tabindex");return!!(e&&!isNaN(parseInt(e,10)))}function hz(t){if(!yz(t))return null;let e=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(e)?-1:e}function rQA(t){let e=t.nodeName.toLowerCase(),A=e==="input"&&t.type;return A==="text"||A==="password"||e==="select"||e==="textarea"}function sQA(t){return tQA(t)?!1:eQA(t)||iQA(t)||t.hasAttribute("contenteditable")||yz(t)}function aQA(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}var pk=class{_element;_checker;_ngZone;_document;_injector;_startAnchor;_endAnchor;_hasAttached=!1;startAnchorListener=()=>this.focusLastTabbableElement();endAnchorListener=()=>this.focusFirstTabbableElement();get enabled(){return this._enabled}set enabled(e){this._enabled=e,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}_enabled=!0;constructor(e,A,i,n,o=!1,r){this._element=e,this._checker=A,this._ngZone=i,this._document=n,this._injector=r,o||this.attachAnchors()}destroy(){let e=this._startAnchor,A=this._endAnchor;e&&(e.removeEventListener("focus",this.startAnchorListener),e.remove()),A&&(A.removeEventListener("focus",this.endAnchorListener),A.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return this._hasAttached?!0:(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(e){return new Promise(A=>{this._executeOnStable(()=>A(this.focusInitialElement(e)))})}focusFirstTabbableElementWhenReady(e){return new Promise(A=>{this._executeOnStable(()=>A(this.focusFirstTabbableElement(e)))})}focusLastTabbableElementWhenReady(e){return new Promise(A=>{this._executeOnStable(()=>A(this.focusLastTabbableElement(e)))})}_getRegionBoundary(e){let A=this._element.querySelectorAll(`[cdk-focus-region-${e}], [cdkFocusRegion${e}], [cdk-focus-${e}]`);return e=="start"?A.length?A[0]:this._getFirstTabbableElement(this._element):A.length?A[A.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(e){let A=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(A){if(!this._checker.isFocusable(A)){let i=this._getFirstTabbableElement(A);return i?.focus(e),!!i}return A.focus(e),!0}return this.focusFirstTabbableElement(e)}focusFirstTabbableElement(e){let A=this._getRegionBoundary("start");return A&&A.focus(e),!!A}focusLastTabbableElement(e){let A=this._getRegionBoundary("end");return A&&A.focus(e),!!A}hasAttached(){return this._hasAttached}_getFirstTabbableElement(e){if(this._checker.isFocusable(e)&&this._checker.isTabbable(e))return e;let A=e.children;for(let i=0;i=0;i--){let n=A[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(A[i]):null;if(n)return n}return null}_createAnchor(){let e=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,e),e.classList.add("cdk-visually-hidden"),e.classList.add("cdk-focus-trap-anchor"),e.setAttribute("aria-hidden","true"),e}_toggleAnchorTabIndex(e,A){e?A.setAttribute("tabindex","0"):A.removeAttribute("tabindex")}toggleAnchors(e){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}_executeOnStable(e){this._injector?Ir(e,{injector:this._injector}):setTimeout(e)}},g6=(()=>{class t{_checker=f(sh);_ngZone=f(ye);_document=f(at);_injector=f(Zt);constructor(){f(Pn).load(oh)}create(A,i=!1){return new pk(A,this._checker,this._ngZone,this._document,i,this._injector)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function ah(t){return t.buttons===0||t.detail===0}function ch(t){let e=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!!e&&e.identifier===-1&&(e.radiusX==null||e.radiusX===1)&&(e.radiusY==null||e.radiusY===1)}var cQA=new eA("cdk-input-modality-detector-options"),gQA={ignoreKeys:[18,17,224,91,16]},vz=650,dB=Sc({passive:!0,capture:!0}),lQA=(()=>{class t{_platform=f(ni);modalityDetected;modalityChanged;get mostRecentModality(){return this._modality.value}_mostRecentTarget=null;_modality=new Fi(null);_options;_lastTouchMs=0;_onKeydown=A=>{this._options?.ignoreKeys?.some(i=>i===A.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=ic(A))};_onMousedown=A=>{Date.now()-this._lastTouchMs{if(ch(A)){this._modality.next("keyboard");return}this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=ic(A)};constructor(){let A=f(ye),i=f(at),n=f(cQA,{optional:!0});this._options=sA(sA({},gQA),n),this.modalityDetected=this._modality.pipe(mI(1)),this.modalityChanged=this.modalityDetected.pipe(il()),this._platform.isBrowser&&A.runOutsideAngular(()=>{i.addEventListener("keydown",this._onKeydown,dB),i.addEventListener("mousedown",this._onMousedown,dB),i.addEventListener("touchstart",this._onTouchstart,dB)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,dB),document.removeEventListener("mousedown",this._onMousedown,dB),document.removeEventListener("touchstart",this._onTouchstart,dB))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),IQA=new eA("liveAnnouncerElement",{providedIn:"root",factory:CQA});function CQA(){return null}var dQA=new eA("LIVE_ANNOUNCER_DEFAULT_OPTIONS"),BQA=0,l6=(()=>{class t{_ngZone=f(ye);_defaultOptions=f(dQA,{optional:!0});_liveElement;_document=f(at);_previousTimeout;_currentPromise;_currentResolve;constructor(){let A=f(IQA,{optional:!0});this._liveElement=A||this._createLiveElement()}announce(A,...i){let n=this._defaultOptions,o,r;return i.length===1&&typeof i[0]=="number"?r=i[0]:[o,r]=i,this.clear(),clearTimeout(this._previousTimeout),o||(o=n&&n.politeness?n.politeness:"polite"),r==null&&n&&(r=n.duration),this._liveElement.setAttribute("aria-live",o),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(s=>this._currentResolve=s)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=A,typeof r=="number"&&(this._previousTimeout=setTimeout(()=>this.clear(),r)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){let A="cdk-live-announcer-element",i=this._document.getElementsByClassName(A),n=this._document.createElement("div");for(let o=0;o .cdk-overlay-container [aria-modal="true"]');for(let n=0;n{class t{_ngZone=f(ye);_platform=f(ni);_inputModalityDetector=f(lQA);_origin=null;_lastFocusOrigin;_windowFocused=!1;_windowFocusTimeoutId;_originTimeoutId;_originFromTouchInteraction=!1;_elementInfo=new Map;_monitoredElementCount=0;_rootNodeFocusListenerCount=new Map;_detectionMode;_windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)};_document=f(at,{optional:!0});_stopInputModalityDetector=new qA;constructor(){let A=f(EQA,{optional:!0});this._detectionMode=A?.detectionMode||o6.IMMEDIATE}_rootNodeFocusAndBlurListener=A=>{let i=ic(A);for(let n=i;n;n=n.parentElement)A.type==="focus"?this._onFocus(A,n):this._onBlur(A,n)};monitor(A,i=!1){let n=fa(A);if(!this._platform.isBrowser||n.nodeType!==1)return Ce();let o=Iz(n)||this._getDocument(),r=this._elementInfo.get(n);if(r)return i&&(r.checkChildren=!0),r.subject;let s={checkChildren:i,subject:new qA,rootNode:o};return this._elementInfo.set(n,s),this._registerGlobalListeners(s),s.subject}stopMonitoring(A){let i=fa(A),n=this._elementInfo.get(i);n&&(n.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(n))}focusVia(A,i,n){let o=fa(A),r=this._getDocument().activeElement;o===r?this._getClosestElementsInfo(o).forEach(([s,a])=>this._originChanged(s,i,a)):(this._setOrigin(i),typeof o.focus=="function"&&o.focus(n))}ngOnDestroy(){this._elementInfo.forEach((A,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(A){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(A)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:A&&this._isLastInteractionFromInputLabel(A)?"mouse":"program"}_shouldBeAttributedToTouch(A){return this._detectionMode===o6.EVENTUAL||!!A?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(A,i){A.classList.toggle("cdk-focused",!!i),A.classList.toggle("cdk-touch-focused",i==="touch"),A.classList.toggle("cdk-keyboard-focused",i==="keyboard"),A.classList.toggle("cdk-mouse-focused",i==="mouse"),A.classList.toggle("cdk-program-focused",i==="program")}_setOrigin(A,i=!1){this._ngZone.runOutsideAngular(()=>{if(this._origin=A,this._originFromTouchInteraction=A==="touch"&&i,this._detectionMode===o6.IMMEDIATE){clearTimeout(this._originTimeoutId);let n=this._originFromTouchInteraction?vz:1;this._originTimeoutId=setTimeout(()=>this._origin=null,n)}})}_onFocus(A,i){let n=this._elementInfo.get(i),o=ic(A);!n||!n.checkChildren&&i!==o||this._originChanged(i,this._getFocusOrigin(o),n)}_onBlur(A,i){let n=this._elementInfo.get(i);!n||n.checkChildren&&A.relatedTarget instanceof Node&&i.contains(A.relatedTarget)||(this._setClasses(i),this._emitOrigin(n,null))}_emitOrigin(A,i){A.subject.observers.length&&this._ngZone.run(()=>A.subject.next(i))}_registerGlobalListeners(A){if(!this._platform.isBrowser)return;let i=A.rootNode,n=this._rootNodeFocusListenerCount.get(i)||0;n||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,n6),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,n6)}),this._rootNodeFocusListenerCount.set(i,n+1),++this._monitoredElementCount===1&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(kt(this._stopInputModalityDetector)).subscribe(o=>{this._setOrigin(o,!0)}))}_removeGlobalListeners(A){let i=A.rootNode;if(this._rootNodeFocusListenerCount.has(i)){let n=this._rootNodeFocusListenerCount.get(i);n>1?this._rootNodeFocusListenerCount.set(i,n-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,n6),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,n6),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(A,i,n){this._setClasses(A,i),this._emitOrigin(n,i),this._lastFocusOrigin=i}_getClosestElementsInfo(A){let i=[];return this._elementInfo.forEach((n,o)=>{(o===A||n.checkChildren&&o.contains(A))&&i.push([o,n])}),i}_isLastInteractionFromInputLabel(A){let{_mostRecentTarget:i,mostRecentModality:n}=this._inputModalityDetector;if(n!=="mouse"||!i||i===A||A.nodeName!=="INPUT"&&A.nodeName!=="TEXTAREA"||A.disabled)return!1;let o=A.labels;if(o){for(let r=0;r{class t{_elementRef=f(se);_focusMonitor=f(Jr);_monitorSubscription;_focusOrigin=null;cdkFocusChange=new YA;constructor(){}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){let A=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(A,A.nodeType===1&&A.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return t})(),OI=function(t){return t[t.NONE=0]="NONE",t[t.BLACK_ON_WHITE=1]="BLACK_ON_WHITE",t[t.WHITE_ON_BLACK=2]="WHITE_ON_BLACK",t}(OI||{}),fz="cdk-high-contrast-black-on-white",mz="cdk-high-contrast-white-on-black",uk="cdk-high-contrast-active",yk=(()=>{class t{_platform=f(ni);_hasCheckedHighContrastMode;_document=f(at);_breakpointSubscription;constructor(){this._breakpointSubscription=f(t6).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return OI.NONE;let A=this._document.createElement("div");A.style.backgroundColor="rgb(1,2,3)",A.style.position="absolute",this._document.body.appendChild(A);let i=this._document.defaultView||window,n=i&&i.getComputedStyle?i.getComputedStyle(A):null,o=(n&&n.backgroundColor||"").replace(/ /g,"");switch(A.remove(),o){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return OI.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return OI.BLACK_ON_WHITE}return OI.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){let A=this._document.body.classList;A.remove(uk,fz,mz),this._hasCheckedHighContrastMode=!0;let i=this.getHighContrastMode();i===OI.BLACK_ON_WHITE?A.add(uk,fz):i===OI.WHITE_ON_BLACK&&A.add(uk,mz)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),vk=(()=>{class t{constructor(){f(yk)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[rh]})}return t})(),hk={},an=(()=>{class t{_appId=f(Vd);getId(A){return this._appId!=="ng"&&(A+=this._appId),hk.hasOwnProperty(A)||(hk[A]=0),`${A}${hk[A]++}`}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var QQA=new eA("cdk-dir-doc",{providedIn:"root",factory:uQA});function uQA(){return f(at)}var hQA=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;function fQA(t){let e=t?.toLowerCase()||"";return e==="auto"&&typeof navigator<"u"&&navigator?.language?hQA.test(navigator.language)?"rtl":"ltr":e==="rtl"?"rtl":"ltr"}var po=(()=>{class t{value="ltr";change=new YA;constructor(){let A=f(QQA,{optional:!0});if(A){let i=A.body?A.body.dir:null,n=A.documentElement?A.documentElement.dir:null;this.value=fQA(i||n||"ltr")}}ngOnDestroy(){this.change.complete()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var G2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();var mQA=["text"],pQA=[[["mat-icon"]],"*"],DQA=["mat-icon","*"];function wQA(t,e){if(t&1&&TA(0,"mat-pseudo-checkbox",1),t&2){let A=Y();yA("disabled",A.disabled)("state",A.selected?"checked":"unchecked")}}function yQA(t,e){if(t&1&&TA(0,"mat-pseudo-checkbox",3),t&2){let A=Y();yA("disabled",A.disabled)}}function vQA(t,e){if(t&1&&(S(0,"span",4),AA(1),N()),t&2){let A=Y();_(),It("(",A.group.label,")")}}var MQA=["mat-internal-form-field",""],bQA=["*"];var pn=(()=>{class t{constructor(){f(yk)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[G2,G2]})}return t})(),BB=class{_defaultMatcher;ngControl;_parentFormGroup;_parentForm;_stateChanges;errorState=!1;matcher;constructor(e,A,i,n,o){this._defaultMatcher=e,this.ngControl=A,this._parentFormGroup=i,this._parentForm=n,this._stateChanges=o}updateErrorState(){let e=this.errorState,A=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,n=this.ngControl?this.ngControl.control:null,o=i?.isErrorState(n,A)??!1;o!==e&&(this.errorState=o,this._stateChanges.next())}};var d6=(()=>{class t{isErrorState(A,i){return!!(A&&A.invalid&&(A.touched||i&&i.submitted))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Yr=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["structural-styles"]],decls:0,vars:0,template:function(i,n){},styles:['.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}'],encapsulation:2,changeDetection:0})}return t})();var Ws=function(t){return t[t.FADING_IN=0]="FADING_IN",t[t.VISIBLE=1]="VISIBLE",t[t.FADING_OUT=2]="FADING_OUT",t[t.HIDDEN=3]="HIDDEN",t}(Ws||{}),kk=class{_renderer;element;config;_animationForciblyDisabledThroughCss;state=Ws.HIDDEN;constructor(e,A,i,n=!1){this._renderer=e,this.element=A,this.config=i,this._animationForciblyDisabledThroughCss=n}fadeOut(){this._renderer.fadeOutRipple(this)}},bz=Sc({passive:!0,capture:!0}),Sk=class{_events=new Map;addHandler(e,A,i,n){let o=this._events.get(A);if(o){let r=o.get(i);r?r.add(n):o.set(i,new Set([n]))}else this._events.set(A,new Map([[i,new Set([n])]])),e.runOutsideAngular(()=>{document.addEventListener(A,this._delegateEventHandler,bz)})}removeHandler(e,A,i){let n=this._events.get(e);if(!n)return;let o=n.get(A);o&&(o.delete(i),o.size===0&&n.delete(A),n.size===0&&(this._events.delete(e),document.removeEventListener(e,this._delegateEventHandler,bz)))}_delegateEventHandler=e=>{let A=ic(e);A&&this._events.get(e.type)?.forEach((i,n)=>{(n===A||n.contains(A))&&i.forEach(o=>o.handleEvent(e))})}},C6={enterDuration:225,exitDuration:150},kQA=800,kz=Sc({passive:!0,capture:!0}),Sz=["mousedown","touchstart"],Rz=["mouseup","mouseleave","touchend","touchcancel"],SQA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],hostAttrs:["mat-ripple-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:[".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}"],encapsulation:2,changeDetection:0})}return t})(),EB=class t{_target;_ngZone;_platform;_containerElement;_triggerElement;_isPointerDown=!1;_activeRipples=new Map;_mostRecentTransientRipple;_lastTouchStartEvent;_pointerUpEventsRegistered=!1;_containerRect;static _eventManager=new Sk;constructor(e,A,i,n,o){this._target=e,this._ngZone=A,this._platform=n,n.isBrowser&&(this._containerElement=fa(i)),o&&o.get(Pn).load(SQA)}fadeInRipple(e,A,i={}){let n=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),o=sA(sA({},C6),i.animation);i.centered&&(e=n.left+n.width/2,A=n.top+n.height/2);let r=i.radius||RQA(e,A,n),s=e-n.left,a=A-n.top,c=o.enterDuration,g=document.createElement("div");g.classList.add("mat-ripple-element"),g.style.left=`${s-r}px`,g.style.top=`${a-r}px`,g.style.height=`${r*2}px`,g.style.width=`${r*2}px`,i.color!=null&&(g.style.backgroundColor=i.color),g.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(g);let I=window.getComputedStyle(g),C=I.transitionProperty,d=I.transitionDuration,B=C==="none"||d==="0s"||d==="0s, 0s"||n.width===0&&n.height===0,E=new kk(this,g,i,B);g.style.transform="scale3d(1, 1, 1)",E.state=Ws.FADING_IN,i.persistent||(this._mostRecentTransientRipple=E);let u=null;return!B&&(c||o.exitDuration)&&this._ngZone.runOutsideAngular(()=>{let h=()=>{u&&(u.fallbackTimer=null),clearTimeout(x),this._finishRippleTransition(E)},w=()=>this._destroyRipple(E),x=setTimeout(w,c+100);g.addEventListener("transitionend",h),g.addEventListener("transitioncancel",w),u={onTransitionEnd:h,onTransitionCancel:w,fallbackTimer:x}}),this._activeRipples.set(E,u),(B||!c)&&this._finishRippleTransition(E),E}fadeOutRipple(e){if(e.state===Ws.FADING_OUT||e.state===Ws.HIDDEN)return;let A=e.element,i=sA(sA({},C6),e.config.animation);A.style.transitionDuration=`${i.exitDuration}ms`,A.style.opacity="0",e.state=Ws.FADING_OUT,(e._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(e)}fadeOutAll(){this._getActiveRipples().forEach(e=>e.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(e=>{e.config.persistent||e.fadeOut()})}setupTriggerEvents(e){let A=fa(e);!this._platform.isBrowser||!A||A===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=A,Sz.forEach(i=>{t._eventManager.addHandler(this._ngZone,i,A,this)}))}handleEvent(e){e.type==="mousedown"?this._onMousedown(e):e.type==="touchstart"?this._onTouchStart(e):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{Rz.forEach(A=>{this._triggerElement.addEventListener(A,this,kz)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(e){e.state===Ws.FADING_IN?this._startFadeOutTransition(e):e.state===Ws.FADING_OUT&&this._destroyRipple(e)}_startFadeOutTransition(e){let A=e===this._mostRecentTransientRipple,{persistent:i}=e.config;e.state=Ws.VISIBLE,!i&&(!A||!this._isPointerDown)&&e.fadeOut()}_destroyRipple(e){let A=this._activeRipples.get(e)??null;this._activeRipples.delete(e),this._activeRipples.size||(this._containerRect=null),e===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),e.state=Ws.HIDDEN,A!==null&&(e.element.removeEventListener("transitionend",A.onTransitionEnd),e.element.removeEventListener("transitioncancel",A.onTransitionCancel),A.fallbackTimer!==null&&clearTimeout(A.fallbackTimer)),e.element.remove()}_onMousedown(e){let A=ah(e),i=this._lastTouchStartEvent&&Date.now(){let A=e.state===Ws.VISIBLE||e.config.terminateOnPointerUp&&e.state===Ws.FADING_IN;!e.config.persistent&&A&&e.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){let e=this._triggerElement;e&&(Sz.forEach(A=>t._eventManager.removeHandler(A,e,this)),this._pointerUpEventsRegistered&&(Rz.forEach(A=>e.removeEventListener(A,this,kz)),this._pointerUpEventsRegistered=!1))}};function RQA(t,e,A){let i=Math.max(Math.abs(t-A.left),Math.abs(t-A.right)),n=Math.max(Math.abs(e-A.top),Math.abs(e-A.bottom));return Math.sqrt(i*i+n*n)}var ZI=new eA("mat-ripple-global-options"),Xs=(()=>{class t{_elementRef=f(se);_animationMode=f(_i,{optional:!0});color;unbounded;centered;radius=0;animation;get disabled(){return this._disabled}set disabled(A){A&&this.fadeOutAllNonPersistent(),this._disabled=A,this._setupTriggerEventsIfEnabled()}_disabled=!1;get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(A){this._trigger=A,this._setupTriggerEventsIfEnabled()}_trigger;_rippleRenderer;_globalOptions;_isInitialized=!1;constructor(){let A=f(ye),i=f(ni),n=f(ZI,{optional:!0}),o=f(Zt);this._globalOptions=n||{},this._rippleRenderer=new EB(this,A,this._elementRef,i,o)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:sA(sA(sA({},this._globalOptions.animation),this._animationMode==="NoopAnimations"?{enterDuration:0,exitDuration:0}:{}),this.animation),terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(A,i=0,n){return typeof A=="number"?this._rippleRenderer.fadeInRipple(A,i,sA(sA({},this.rippleConfig),n)):this._rippleRenderer.fadeInRipple(0,0,sA(sA({},this.rippleConfig),A))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,n){i&2&&he("mat-ripple-unbounded",n.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return t})(),WI=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,pn]})}return t})(),Lk=(()=>{class t{_animationMode=f(_i,{optional:!0});state="unchecked";disabled=!1;appearance="full";constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,n){i&2&&he("mat-pseudo-checkbox-indeterminate",n.state==="indeterminate")("mat-pseudo-checkbox-checked",n.state==="checked")("mat-pseudo-checkbox-disabled",n.disabled)("mat-pseudo-checkbox-minimal",n.appearance==="minimal")("mat-pseudo-checkbox-full",n.appearance==="full")("_mat-animation-noopable",n._animationMode==="NoopAnimations")},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(i,n){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-minimal-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-primary))}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full{border-color:var(--mat-full-pseudo-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-full-pseudo-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-full-pseudo-checkbox-selected-icon-color, var(--mat-sys-primary));border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-full-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-full-pseudo-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-full-pseudo-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}return t})();var xk=new eA("MAT_OPTION_PARENT_COMPONENT"),Nk=new eA("MatOptgroup");var Rk=class{source;isUserInput;constructor(e,A=!1){this.source=e,this.isUserInput=A}},K2=(()=>{class t{_element=f(se);_changeDetectorRef=f(Et);_parent=f(xk,{optional:!0});group=f(Nk,{optional:!0});_signalDisableRipple=!1;_selected=!1;_active=!1;_disabled=!1;_mostRecentViewValue="";get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}value;id=f(an).getId("mat-option-");get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(A){this._disabled=A}get disableRipple(){return this._signalDisableRipple?this._parent.disableRipple():!!this._parent?.disableRipple}get hideSingleSelectionIndicator(){return!!(this._parent&&this._parent.hideSingleSelectionIndicator)}onSelectionChange=new YA;_text;_stateChanges=new qA;constructor(){let A=f(Pn);A.load(Yr),A.load(oh),this._signalDisableRipple=!!this._parent&&v2(this._parent.disableRipple)}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(A=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),A&&this._emitSelectionChangeEvent())}deselect(A=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),A&&this._emitSelectionChangeEvent())}focus(A,i){let n=this._getHostElement();typeof n.focus=="function"&&n.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(A){(A.keyCode===13||A.keyCode===32)&&!sr(A)&&(this._selectViaInteraction(),A.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=this.multiple?!this._selected:!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){let A=this.viewValue;A!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=A)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(A=!1){this.onSelectionChange.emit(new Rk(this,A))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-option"]],viewQuery:function(i,n){if(i&1&&st(mQA,7),i&2){let o;de(o=Be())&&(n._text=o.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,n){i&1&&mA("click",function(){return n._selectViaInteraction()})("keydown",function(r){return n._handleKeydown(r)}),i&2&&(Qa("id",n.id),Ke("aria-selected",n.selected)("aria-disabled",n.disabled.toString()),he("mdc-list-item--selected",n.selected)("mat-mdc-option-multiple",n.multiple)("mat-mdc-option-active",n.active)("mdc-list-item--disabled",n.disabled))},inputs:{value:"value",id:"id",disabled:[2,"disabled","disabled",ge]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],ngContentSelectors:DQA,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,n){i&1&&($t(pQA),NA(0,wQA,1,2,"mat-pseudo-checkbox",1),Ue(1),S(2,"span",2,0),Ue(4,1),N(),NA(5,yQA,1,1,"mat-pseudo-checkbox",3)(6,vQA,2,1,"span",4),TA(7,"div",5)),i&2&&(_A(n.multiple?0:-1),_(5),_A(!n.multiple&&n.selected&&!n.hideSingleSelectionIndicator?5:-1),_(),_A(n.group&&n.group._inert?6:-1),_(),yA("matRippleTrigger",n._getHostElement())("matRippleDisabled",n.disabled||n.disableRipple))},dependencies:[Lk,Xs],styles:['.mat-mdc-option{-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;min-height:48px;padding:0 16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-option-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-option-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-option-label-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-option-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-option-label-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));outline:0}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color, var(--mat-sys-secondary-container))}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}@media(forced-colors: active){.mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{right:auto;left:16px}}.mat-mdc-option-multiple{--mdc-list-list-item-selected-container-color:var(--mdc-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();function Fz(t,e,A){if(A.length){let i=e.toArray(),n=A.toArray(),o=0;for(let r=0;rA+i?Math.max(0,t-i+e):A}var Lz={capture:!0},xz=["focus","mousedown","mouseenter","touchstart"],Mk="mat-ripple-loader-uninitialized",bk="mat-ripple-loader-class-name",Nz="mat-ripple-loader-centered",I6="mat-ripple-loader-disabled",Gz=(()=>{class t{_document=f(at,{optional:!0});_animationMode=f(_i,{optional:!0});_globalRippleOptions=f(ZI,{optional:!0});_platform=f(ni);_ngZone=f(ye);_injector=f(Zt);_hosts=new Map;constructor(){this._ngZone.runOutsideAngular(()=>{for(let A of xz)this._document?.addEventListener(A,this._onInteraction,Lz)})}ngOnDestroy(){let A=this._hosts.keys();for(let i of A)this.destroyRipple(i);for(let i of xz)this._document?.removeEventListener(i,this._onInteraction,Lz)}configureRipple(A,i){A.setAttribute(Mk,this._globalRippleOptions?.namespace??""),(i.className||!A.hasAttribute(bk))&&A.setAttribute(bk,i.className||""),i.centered&&A.setAttribute(Nz,""),i.disabled&&A.setAttribute(I6,"")}setDisabled(A,i){let n=this._hosts.get(A);n?(n.target.rippleDisabled=i,!i&&!n.hasSetUpEvents&&(n.hasSetUpEvents=!0,n.renderer.setupTriggerEvents(A))):i?A.setAttribute(I6,""):A.removeAttribute(I6)}_onInteraction=A=>{let i=ic(A);if(i instanceof HTMLElement){let n=i.closest(`[${Mk}="${this._globalRippleOptions?.namespace??""}"]`);n&&this._createRipple(n)}};_createRipple(A){if(!this._document||this._hosts.has(A))return;A.querySelector(".mat-ripple")?.remove();let i=this._document.createElement("span");i.classList.add("mat-ripple",A.getAttribute(bk)),A.append(i);let n=this._animationMode==="NoopAnimations",o=this._globalRippleOptions,r=n?0:o?.animation?.enterDuration??C6.enterDuration,s=n?0:o?.animation?.exitDuration??C6.exitDuration,a={rippleDisabled:n||o?.disabled||A.hasAttribute(I6),rippleConfig:{centered:A.hasAttribute(Nz),terminateOnPointerUp:o?.terminateOnPointerUp,animation:{enterDuration:r,exitDuration:s}}},c=new EB(a,this._ngZone,i,this._platform,this._injector),g=!a.rippleDisabled;g&&c.setupTriggerEvents(A),this._hosts.set(A,{target:a,renderer:c,hasSetUpEvents:g}),A.removeAttribute(Mk)}destroyRipple(A){let i=this._hosts.get(A);i&&(i.renderer._removeTriggerEvents(),this._hosts.delete(A))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),B6=(()=>{class t{labelPosition;static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,n){i&2&&he("mdc-form-field--align-end",n.labelPosition==="before")},inputs:{labelPosition:"labelPosition"},attrs:MQA,ngContentSelectors:bQA,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},styles:[".mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0}"],encapsulation:2,changeDetection:0})}return t})();var LQA=["mat-button",""],Fk=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],_k=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"];var xQA="@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}",NQA=["mat-fab",""],FQA=["mat-mini-fab",""],_QA='.mat-mdc-fab-base{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus>.mat-focus-indicator::before{content:""}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-sys-corner-large));color:var(--mat-fab-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display, block)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-sys-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-small-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-mini-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;height:var(--mdc-extended-fab-container-height, 56px);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-sys-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-sys-label-large-tracking));box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}',GQA=["mat-icon-button",""],KQA=["*"];var UQA=new eA("MAT_BUTTON_CONFIG");var JQA=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],Q6=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);_animationMode=f(_i,{optional:!0});_focusMonitor=f(Jr);_rippleLoader=f(Gz);_isFab=!1;color;get disableRipple(){return this._disableRipple}set disableRipple(A){this._disableRipple=A,this._updateRippleDisabled()}_disableRipple=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._updateRippleDisabled()}_disabled=!1;ariaDisabled;disabledInteractive;constructor(){f(Pn).load(Yr);let A=f(UQA,{optional:!0}),i=this._elementRef.nativeElement,n=i.classList;this.disabledInteractive=A?.disabledInteractive??!1,this.color=A?.color??null,this._rippleLoader?.configureRipple(i,{className:"mat-mdc-button-ripple"});for(let{attribute:o,mdcClasses:r}of JQA)i.hasAttribute(o)&&n.add(...r)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(A="program",i){A?this._focusMonitor.focusVia(this._elementRef.nativeElement,A,i):this._elementRef.nativeElement.focus(i)}_getAriaDisabled(){return this.ariaDisabled!=null?this.ariaDisabled:this.disabled&&this.disabledInteractive?!0:null}_getDisabledAttribute(){return this.disabledInteractive||!this.disabled?null:!0}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",ge],disabled:[2,"disabled","disabled",ge],ariaDisabled:[2,"aria-disabled","ariaDisabled",ge],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge]}})}return t})();var dr=(()=>{class t extends Q6{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(i,n){i&2&&(Ke("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[lt],attrs:LQA,ngContentSelectors:_k,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&($t(Fk),TA(0,"span",0),Ue(1),S(2,"span",1),Ue(3,1),N(),Ue(4,2),TA(5,"span",2)(6,"span",3)),i&2&&he("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:['.mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 12px);height:var(--mdc-text-button-container-height, 40px);font-family:var(--mdc-text-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-sys-label-large-weight))}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-sys-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 16px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display, block)}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-filled-button-container-height, 40px);font-family:var(--mdc-filled-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-filled-button-horizontal-padding, 24px)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color, var(--mat-sys-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-unelevated-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display, block)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-sys-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-sys-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-filled-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-sys-level1));height:var(--mdc-protected-button-container-height, 40px);font-family:var(--mdc-protected-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-protected-button-horizontal-padding, 24px)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-raised-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-raised-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display, block)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-sys-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-sys-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-sys-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-protected-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow, var(--mat-sys-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-outlined-button-container-height, 40px);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-sys-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-sys-corner-full));border-width:var(--mdc-outlined-button-outline-width, 1px);padding:0 var(--mat-outlined-button-horizontal-padding, 24px)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-outlined-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-outlined-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display, block)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-sys-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-sys-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:var(--mdc-outlined-button-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button .mdc-button__ripple{border-width:var(--mdc-outlined-button-outline-width, 1px);border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-focus-indicator,.mat-mdc-unelevated-button .mat-focus-indicator,.mat-mdc-raised-button .mat-focus-indicator,.mat-mdc-outlined-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus>.mat-focus-indicator::before,.mat-mdc-unelevated-button:focus>.mat-focus-indicator::before,.mat-mdc-raised-button:focus>.mat-focus-indicator::before,.mat-mdc-outlined-button:focus>.mat-focus-indicator::before{content:""}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-focus-indicator::before,.mat-mdc-raised-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}',"@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}"],encapsulation:2,changeDetection:0})}return t})();var Kz=new eA("mat-mdc-fab-default-options",{providedIn:"root",factory:Uz});function Uz(){return{color:"accent"}}var E6=Uz(),Jz=(()=>{class t extends Q6{_options=f(Kz,{optional:!0});_isFab=!0;extended;constructor(){super(),this._options=this._options||E6,this.color=this._options.color||E6.color}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["button","mat-fab",""]],hostVars:18,hostBindings:function(i,n){i&2&&(Ke("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0)("mdc-fab--extended",n.extended)("mat-mdc-extended-fab",n.extended))},inputs:{extended:[2,"extended","extended",ge]},exportAs:["matButton"],features:[lt],attrs:NQA,ngContentSelectors:_k,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&($t(Fk),TA(0,"span",0),Ue(1),S(2,"span",1),Ue(3,1),N(),Ue(4,2),TA(5,"span",2)(6,"span",3)),i&2&&he("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:['.mat-mdc-fab-base{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus>.mat-focus-indicator::before{content:""}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-sys-corner-large));color:var(--mat-fab-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display, block)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-sys-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-small-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-mini-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;height:var(--mdc-extended-fab-container-height, 56px);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-sys-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-sys-label-large-tracking));box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}'],encapsulation:2,changeDetection:0})}return t})(),u6=(()=>{class t extends Q6{_options=f(Kz,{optional:!0});_isFab=!0;constructor(){super(),this._options=this._options||E6,this.color=this._options.color||E6.color}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["button","mat-mini-fab",""]],hostVars:14,hostBindings:function(i,n){i&2&&(Ke("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[lt],attrs:FQA,ngContentSelectors:_k,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&($t(Fk),TA(0,"span",0),Ue(1),S(2,"span",1),Ue(3,1),N(),Ue(4,2),TA(5,"span",2)(6,"span",3)),i&2&&he("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:[_QA],encapsulation:2,changeDetection:0})}return t})();var QB=(()=>{class t extends Q6{constructor(){super(),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["button","mat-icon-button",""]],hostVars:14,hostBindings:function(i,n){i&2&&(Ke("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[lt],attrs:GQA,ngContentSelectors:KQA,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&($t(),TA(0,"span",0),Ue(1),TA(2,"span",1)(3,"span",2))},styles:['.mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:50%;flex-shrink:0;text-align:center;width:var(--mdc-icon-button-state-layer-size, 40px);height:var(--mdc-icon-button-state-layer-size, 40px);padding:calc(calc(var(--mdc-icon-button-state-layer-size, 40px) - var(--mdc-icon-button-icon-size, 24px)) / 2);font-size:var(--mdc-icon-button-icon-size, 24px);color:var(--mdc-icon-button-icon-color, var(--mat-sys-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus>.mat-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-icon-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-icon-button-touch-target-display, block)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mdc-icon-button-icon-size, 24px);height:var(--mdc-icon-button-icon-size, 24px);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button[hidden]{display:none}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',xQA],encapsulation:2,changeDetection:0})}return t})();var uB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,WI,pn]})}return t})();var Gk=class{_box;_destroyed=new qA;_resizeSubject=new qA;_resizeObserver;_elementObservables=new Map;constructor(e){this._box=e,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(A=>this._resizeSubject.next(A)))}observe(e){return this._elementObservables.has(e)||this._elementObservables.set(e,new gt(A=>{let i=this._resizeSubject.subscribe(A);return this._resizeObserver?.observe(e,{box:this._box}),()=>{this._resizeObserver?.unobserve(e),i.unsubscribe(),this._elementObservables.delete(e)}}).pipe(Nt(A=>A.some(i=>i.target===e)),h2({bufferSize:1,refCount:!0}),kt(this._destroyed))),this._elementObservables.get(e)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}},h6=(()=>{class t{_cleanupErrorListener;_observers=new Map;_ngZone=f(ye);constructor(){typeof ResizeObserver<"u"}ngOnDestroy(){for(let[,A]of this._observers)A.destroy();this._observers.clear(),this._cleanupErrorListener?.()}observe(A,i){let n=i?.box||"content-box";return this._observers.has(n)||this._observers.set(n,new Gk(n)),this._observers.get(n).observe(A)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var oi=function(t){return t[t.State=0]="State",t[t.Transition=1]="Transition",t[t.Sequence=2]="Sequence",t[t.Group=3]="Group",t[t.Animate=4]="Animate",t[t.Keyframes=5]="Keyframes",t[t.Style=6]="Style",t[t.Trigger=7]="Trigger",t[t.Reference=8]="Reference",t[t.AnimateChild=9]="AnimateChild",t[t.AnimateRef=10]="AnimateRef",t[t.Query=11]="Query",t[t.Stagger=12]="Stagger",t}(oi||{}),Rc="*";function nc(t,e){return{type:oi.Trigger,name:t,definitions:e,options:{}}}function Is(t,e=null){return{type:oi.Animate,styles:e,timings:t}}function Yz(t,e=null){return{type:oi.Sequence,steps:t,options:e}}function Do(t){return{type:oi.Style,styles:t,offset:null}}function $s(t,e,A){return{type:oi.State,name:t,styles:e,options:A}}function $r(t,e,A=null){return{type:oi.Transition,expr:t,animation:e,options:A}}function Kk(t=null){return{type:oi.AnimateChild,options:t}}function Uk(t,e,A=null){return{type:oi.Query,selector:t,animation:e,options:A}}var hl=class{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(e=0,A=0){this.totalTime=e+A}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(e=>e()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(e){this._position=this.totalTime?e*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(e){let A=e=="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},XI=class{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(e){this.players=e;let A=0,i=0,n=0,o=this.players.length;o==0?queueMicrotask(()=>this._onFinish()):this.players.forEach(r=>{r.onDone(()=>{++A==o&&this._onFinish()}),r.onDestroy(()=>{++i==o&&this._onDestroy()}),r.onStart(()=>{++n==o&&this._onStart()})}),this.totalTime=this.players.reduce((r,s)=>Math.max(r,s.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this.players.forEach(e=>e.init())}onStart(e){this._onStartFns.push(e)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(e=>e()),this._onStartFns=[])}onDone(e){this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(e=>e.play())}pause(){this.players.forEach(e=>e.pause())}restart(){this.players.forEach(e=>e.restart())}finish(){this._onFinish(),this.players.forEach(e=>e.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(e=>e.destroy()),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this.players.forEach(e=>e.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(e){let A=e*this.totalTime;this.players.forEach(i=>{let n=i.totalTime?Math.min(1,A/i.totalTime):1;i.setPosition(n)})}getPosition(){let e=this.players.reduce((A,i)=>A===null||i.totalTime>A.totalTime?i:A,null);return e!=null?e.getPosition():0}beforeDestroy(){this.players.forEach(e=>{e.beforeDestroy&&e.beforeDestroy()})}triggerCallback(e){let A=e=="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},hB="!";var TQA=["notch"],HQA=["matFormFieldNotchedOutline",""],OQA=["*"],zQA=["textField"],PQA=["iconPrefixContainer"],jQA=["textPrefixContainer"],qQA=["iconSuffixContainer"],VQA=["textSuffixContainer"],ZQA=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],WQA=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function XQA(t,e){t&1&&TA(0,"span",21)}function $QA(t,e){if(t&1&&(S(0,"label",20),Ue(1,1),NA(2,XQA,1,0,"span",21),N()),t&2){let A=Y(2);yA("floating",A._shouldLabelFloat())("monitorResize",A._hasOutline())("id",A._labelId),Ke("for",A._control.disableAutomaticLabeling?null:A._control.id),_(2),_A(!A.hideRequiredMarker&&A._control.required?2:-1)}}function AuA(t,e){if(t&1&&NA(0,$QA,3,5,"label",20),t&2){let A=Y();_A(A._hasFloatingLabel()?0:-1)}}function euA(t,e){t&1&&TA(0,"div",7)}function tuA(t,e){}function iuA(t,e){if(t&1&&NA(0,tuA,0,0,"ng-template",13),t&2){Y(2);let A=Cr(1);yA("ngTemplateOutlet",A)}}function nuA(t,e){if(t&1&&(S(0,"div",9),NA(1,iuA,1,1,null,13),N()),t&2){let A=Y();yA("matFormFieldNotchedOutlineOpen",A._shouldLabelFloat()),_(),_A(A._forceDisplayInfixLabel()?-1:1)}}function ouA(t,e){t&1&&(S(0,"div",10,2),Ue(2,2),N())}function ruA(t,e){t&1&&(S(0,"div",11,3),Ue(2,3),N())}function suA(t,e){}function auA(t,e){if(t&1&&NA(0,suA,0,0,"ng-template",13),t&2){Y();let A=Cr(1);yA("ngTemplateOutlet",A)}}function cuA(t,e){t&1&&(S(0,"div",14,4),Ue(2,4),N())}function guA(t,e){t&1&&(S(0,"div",15,5),Ue(2,5),N())}function luA(t,e){t&1&&TA(0,"div",16)}function IuA(t,e){if(t&1&&(S(0,"div",18),Ue(1,6),N()),t&2){let A=Y();yA("@transitionMessages",A._subscriptAnimationState)}}function CuA(t,e){if(t&1&&(S(0,"mat-hint",22),AA(1),N()),t&2){let A=Y(2);yA("id",A._hintLabelId),_(),tt(A.hintLabel)}}function duA(t,e){if(t&1&&(S(0,"div",19),NA(1,CuA,2,2,"mat-hint",22),Ue(2,7),TA(3,"div",23),Ue(4,8),N()),t&2){let A=Y();yA("@transitionMessages",A._subscriptAnimationState),_(),_A(A.hintLabel?1:-1)}}var m6=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["mat-label"]]})}return t})(),BuA=new eA("MatError");var Tz=(()=>{class t{align="start";id=f(an).getId("mat-mdc-hint-");static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,n){i&2&&(Qa("id",n.id),Ke("align",null),he("mat-mdc-form-field-hint-end",n.align==="end"))},inputs:{align:"align",id:"id"}})}return t})(),EuA=new eA("MatPrefix");var Vz=new eA("MatSuffix"),Zz=(()=>{class t{set _isTextSelector(A){this._isText=!0}_isText=!1;static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matSuffix",""],["","matIconSuffix",""],["","matTextSuffix",""]],inputs:{_isTextSelector:[0,"matTextSuffix","_isTextSelector"]},features:[ut([{provide:Vz,useExisting:t}])]})}return t})(),Wz=new eA("FloatingLabelParent"),Hz=(()=>{class t{_elementRef=f(se);get floating(){return this._floating}set floating(A){this._floating=A,this.monitorResize&&this._handleResize()}_floating=!1;get monitorResize(){return this._monitorResize}set monitorResize(A){this._monitorResize=A,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}_monitorResize=!1;_resizeObserver=f(h6);_ngZone=f(ye);_parent=f(Wz);_resizeSubscription=new Kt;constructor(){}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return QuA(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,n){i&2&&he("mdc-floating-label--float-above",n.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return t})();function QuA(t){let e=t;if(e.offsetParent!==null)return e.scrollWidth;let A=e.cloneNode(!0);A.style.setProperty("position","absolute"),A.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(A);let i=A.scrollWidth;return A.remove(),i}var Oz="mdc-line-ripple--active",f6="mdc-line-ripple--deactivating",zz=(()=>{class t{_elementRef=f(se);_cleanupTransitionEnd;constructor(){let A=f(ye),i=f(qi);A.runOutsideAngular(()=>{this._cleanupTransitionEnd=i.listen(this._elementRef.nativeElement,"transitionend",this._handleTransitionEnd)})}activate(){let A=this._elementRef.nativeElement.classList;A.remove(f6),A.add(Oz)}deactivate(){this._elementRef.nativeElement.classList.add(f6)}_handleTransitionEnd=A=>{let i=this._elementRef.nativeElement.classList,n=i.contains(f6);A.propertyName==="opacity"&&n&&i.remove(Oz,f6)};ngOnDestroy(){this._cleanupTransitionEnd()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return t})(),Pz=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);open=!1;_notch;constructor(){}ngAfterViewInit(){let A=this._elementRef.nativeElement.querySelector(".mdc-floating-label");A?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),typeof requestAnimationFrame=="function"&&(A.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>A.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(A){!this.open||!A?this._notch.nativeElement.style.width="":this._notch.nativeElement.style.width=`calc(${A}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,n){if(i&1&&st(TQA,5),i&2){let o;de(o=Be())&&(n._notch=o.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,n){i&2&&he("mdc-notched-outline--notched",n.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},attrs:HQA,ngContentSelectors:OQA,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,n){i&1&&($t(),TA(0,"div",1),S(1,"div",2,0),Ue(3),N(),TA(4,"div",3))},encapsulation:2,changeDetection:0})}return t})(),uuA={transitionMessages:nc("transitionMessages",[$s("enter",Do({opacity:1,transform:"translateY(0%)"})),$r("void => enter",[Do({opacity:0,transform:"translateY(-5px)"}),Is("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},gh=(()=>{class t{value;stateChanges;id;placeholder;ngControl;focused;empty;shouldLabelFloat;required;disabled;errorState;controlType;autofilled;userAriaDescribedBy;disableAutomaticLabeling;static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t})}return t})();var lh=new eA("MatFormField"),huA=new eA("MAT_FORM_FIELD_DEFAULT_OPTIONS"),jz="fill",fuA="auto",qz="fixed",muA="translateY(-50%)",fl=(()=>{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_dir=f(po);_platform=f(ni);_idGenerator=f(an);_defaults=f(huA,{optional:!0});_animationMode=f(_i,{optional:!0});_textField;_iconPrefixContainer;_textPrefixContainer;_iconSuffixContainer;_textSuffixContainer;_floatingLabel;_notchedOutline;_lineRipple;_formFieldControl;_prefixChildren;_suffixChildren;_errorChildren;_hintChildren;_labelChild=bH(m6);get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(A){this._hideRequiredMarker=Ar(A)}_hideRequiredMarker=!1;color="primary";get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||fuA}set floatLabel(A){A!==this._floatLabel&&(this._floatLabel=A,this._changeDetectorRef.markForCheck())}_floatLabel;get appearance(){return this._appearance}set appearance(A){let i=this._appearance,n=A||this._defaults?.appearance||jz;this._appearance=n,this._appearance==="outline"&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdate=!0)}_appearance=jz;get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||qz}set subscriptSizing(A){this._subscriptSizing=A||this._defaults?.subscriptSizing||qz}_subscriptSizing=null;get hintLabel(){return this._hintLabel}set hintLabel(A){this._hintLabel=A,this._processHints()}_hintLabel="";_hasIconPrefix=!1;_hasTextPrefix=!1;_hasIconSuffix=!1;_hasTextSuffix=!1;_labelId=this._idGenerator.getId("mat-mdc-form-field-label-");_hintLabelId=this._idGenerator.getId("mat-mdc-hint-");_subscriptAnimationState="";get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(A){this._explicitFormFieldControl=A}_destroyed=new qA;_isFocused=null;_explicitFormFieldControl;_needsOutlineLabelOffsetUpdate=!1;_previousControl=null;_stateChanges;_valueChanges;_describedByChanges;_injector=f(Zt);constructor(){let A=this._defaults;A&&(A.appearance&&(this.appearance=A.appearance),this._hideRequiredMarker=!!A?.hideRequiredMarker,A.color&&(this.color=A.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._previousControl=this._control)}ngOnDestroy(){this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._describedByChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getLabelId=Mc(()=>this._hasFloatingLabel()?this._labelId:null);getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(A){let i=this._control,n="mat-mdc-form-field-type-";A&&this._elementRef.nativeElement.classList.remove(n+A.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(n+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._changeDetectorRef.markForCheck()}),this._describedByChanges?.unsubscribe(),this._describedByChanges=i.stateChanges.pipe(On([void 0,void 0]),je(()=>[i.errorState,i.userAriaDescribedBy]),Cm(),Nt(([[o,r],[s,a]])=>o!==s||r!==a)).subscribe(()=>this._syncDescribedByIds()),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(kt(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck()))}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(A=>!A._isText),this._hasTextPrefix=!!this._prefixChildren.find(A=>A._isText),this._hasIconSuffix=!!this._suffixChildren.find(A=>!A._isText),this._hasTextSuffix=!!this._suffixChildren.find(A=>A._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),Hn(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){this._control}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||this._isFocused===null)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0),ku(()=>{this._needsOutlineLabelOffsetUpdate&&(this._needsOutlineLabelOffsetUpdate=!1,this._updateOutlineLabelOffset())},{injector:this._injector}),this._dir.change.pipe(kt(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0)}_shouldAlwaysFloat(){return this.floatLabel==="always"}_hasOutline(){return this.appearance==="outline"}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel=Mc(()=>!!this._labelChild());_shouldLabelFloat(){return this._hasFloatingLabel()?this._control.shouldLabelFloat||this._shouldAlwaysFloat():!1}_shouldForward(A){let i=this._control?this._control.ngControl:null;return i&&i[A]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){!this._hasOutline()||!this._floatingLabel||!this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(0):this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth())}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){this._hintChildren}_syncDescribedByIds(){if(this._control){let A=[];if(this._control.userAriaDescribedBy&&typeof this._control.userAriaDescribedBy=="string"&&A.push(...this._control.userAriaDescribedBy.split(" ")),this._getDisplayedMessages()==="hint"){let i=this._hintChildren?this._hintChildren.find(o=>o.align==="start"):null,n=this._hintChildren?this._hintChildren.find(o=>o.align==="end"):null;i?A.push(i.id):this._hintLabel&&A.push(this._hintLabelId),n&&A.push(n.id)}else this._errorChildren&&A.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(A)}}_updateOutlineLabelOffset(){if(!this._hasOutline()||!this._floatingLabel)return;let A=this._floatingLabel.element;if(!(this._iconPrefixContainer||this._textPrefixContainer)){A.style.transform="";return}if(!this._isAttachedToDom()){this._needsOutlineLabelOffsetUpdate=!0;return}let i=this._iconPrefixContainer?.nativeElement,n=this._textPrefixContainer?.nativeElement,o=this._iconSuffixContainer?.nativeElement,r=this._textSuffixContainer?.nativeElement,s=i?.getBoundingClientRect().width??0,a=n?.getBoundingClientRect().width??0,c=o?.getBoundingClientRect().width??0,g=r?.getBoundingClientRect().width??0,I=this._dir.value==="rtl"?"-1":"1",C=`${s+a}px`,B=`calc(${I} * (${C} + var(--mat-mdc-form-field-label-offset-x, 0px)))`;A.style.transform=`var( - --mat-mdc-form-field-label-transform, - ${muA} translateX(${B}) - )`;let E=s+a+c+g;this._elementRef.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${E}px)`)}_isAttachedToDom(){let A=this._elementRef.nativeElement;if(A.getRootNode){let i=A.getRootNode();return i&&i!==A}return document.documentElement.contains(A)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-form-field"]],contentQueries:function(i,n,o){if(i&1&&(ZH(o,n._labelChild,m6,5),gi(o,gh,5),gi(o,EuA,5),gi(o,Vz,5),gi(o,BuA,5),gi(o,Tz,5)),i&2){yc();let r;de(r=Be())&&(n._formFieldControl=r.first),de(r=Be())&&(n._prefixChildren=r),de(r=Be())&&(n._suffixChildren=r),de(r=Be())&&(n._errorChildren=r),de(r=Be())&&(n._hintChildren=r)}},viewQuery:function(i,n){if(i&1&&(st(zQA,5),st(PQA,5),st(jQA,5),st(qQA,5),st(VQA,5),st(Hz,5),st(Pz,5),st(zz,5)),i&2){let o;de(o=Be())&&(n._textField=o.first),de(o=Be())&&(n._iconPrefixContainer=o.first),de(o=Be())&&(n._textPrefixContainer=o.first),de(o=Be())&&(n._iconSuffixContainer=o.first),de(o=Be())&&(n._textSuffixContainer=o.first),de(o=Be())&&(n._floatingLabel=o.first),de(o=Be())&&(n._notchedOutline=o.first),de(o=Be())&&(n._lineRipple=o.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,n){i&2&&he("mat-mdc-form-field-label-always-float",n._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",n._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",n._hasIconSuffix)("mat-form-field-invalid",n._control.errorState)("mat-form-field-disabled",n._control.disabled)("mat-form-field-autofilled",n._control.autofilled)("mat-form-field-no-animations",n._animationMode==="NoopAnimations")("mat-form-field-appearance-fill",n.appearance=="fill")("mat-form-field-appearance-outline",n.appearance=="outline")("mat-form-field-hide-placeholder",n._hasFloatingLabel()&&!n._shouldLabelFloat())("mat-focused",n._control.focused)("mat-primary",n.color!=="accent"&&n.color!=="warn")("mat-accent",n.color==="accent")("mat-warn",n.color==="warn")("ng-untouched",n._shouldForward("untouched"))("ng-touched",n._shouldForward("touched"))("ng-pristine",n._shouldForward("pristine"))("ng-dirty",n._shouldForward("dirty"))("ng-valid",n._shouldForward("valid"))("ng-invalid",n._shouldForward("invalid"))("ng-pending",n._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[ut([{provide:lh,useExisting:t},{provide:Wz,useExisting:t}])],ngContentSelectors:WQA,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,n){if(i&1){let o=me();$t(ZQA),NA(0,AuA,1,1,"ng-template",null,0,Gu),S(2,"div",6,1),mA("click",function(s){return QA(o),uA(n._control.onContainerClick(s))}),NA(4,euA,1,0,"div",7),S(5,"div",8),NA(6,nuA,2,2,"div",9)(7,ouA,3,0,"div",10)(8,ruA,3,0,"div",11),S(9,"div",12),NA(10,auA,1,1,null,13),Ue(11),N(),NA(12,cuA,3,0,"div",14)(13,guA,3,0,"div",15),N(),NA(14,luA,1,0,"div",16),N(),S(15,"div",17),NA(16,IuA,2,1,"div",18)(17,duA,5,2,"div",19),N()}if(i&2){let o;_(2),he("mdc-text-field--filled",!n._hasOutline())("mdc-text-field--outlined",n._hasOutline())("mdc-text-field--no-label",!n._hasFloatingLabel())("mdc-text-field--disabled",n._control.disabled)("mdc-text-field--invalid",n._control.errorState),_(2),_A(!n._hasOutline()&&!n._control.disabled?4:-1),_(2),_A(n._hasOutline()?6:-1),_(),_A(n._hasIconPrefix?7:-1),_(),_A(n._hasTextPrefix?8:-1),_(2),_A(!n._hasOutline()||n._forceDisplayInfixLabel()?10:-1),_(2),_A(n._hasTextSuffix?12:-1),_(),_A(n._hasIconSuffix?13:-1),_(),_A(n._hasOutline()?-1:14),_(),he("mat-mdc-form-field-subscript-dynamic-size",n.subscriptSizing==="dynamic"),_(),_A((o=n._getDisplayedMessages())==="error"?16:o==="hint"?17:-1)}},dependencies:[Hz,Pz,Hu,zz,Tz],styles:['.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-moz-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-webkit-input-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive:-ms-input-placeholder{opacity:0}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-filled-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-outlined-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color, var(--mat-sys-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 4%, transparent))}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)));padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px);padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}@media(forced-colors: active){.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-filled-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-filled-text-field-hover-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-filled-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-filled-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-filled-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-filled-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-filled-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-filled-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-outlined-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-outlined-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-outlined-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-outlined-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-outlined-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-outlined-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-outline-color, var(--mat-sys-outline));border-width:var(--mdc-outlined-text-field-outline-width, 1px)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-hover-outline-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-focus-outline-color, var(--mat-sys-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-hover-outline-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-focus-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mdc-outlined-text-field-focus-outline-width, 2px)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),100% - max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))*2)}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none;--mat-form-field-notch-max-width: 100%}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1;border-bottom-width:var(--mdc-filled-text-field-active-indicator-height, 1px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color, var(--mat-sys-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color, var(--mat-sys-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height, 2px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color, var(--mat-sys-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color, var(--mat-sys-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height, 56px);padding-top:var(--mat-form-field-filled-with-label-container-padding-top, 24px);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom, 8px)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding, 16px);padding-bottom:var(--mat-form-field-container-vertical-padding, 16px)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height, 56px)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height, 56px) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color, var(--mat-sys-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-sys-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-sys-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-sys-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity, 0)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color, var(--mat-sys-neutral10))}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color, color-mix(in srgb, var(--mat-sys-neutral10) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-sys-on-surface-variant))}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}@media(forced-colors: active){.mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}}@media(forced-colors: active){.mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-sys-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-sys-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-sys-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-sys-error))}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field-infix:has(textarea[cols]){width:auto}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[uuA.transitionMessages]},changeDetection:0})}return t})(),U2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,rh,pn]})}return t})();var $z=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-text-field-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:["textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}"],encapsulation:2,changeDetection:0})}return t})(),Xz=Sc({passive:!0}),AP=(()=>{class t{_platform=f(ni);_ngZone=f(ye);_styleLoader=f(Pn);_monitoredElements=new Map;constructor(){}monitor(A){if(!this._platform.isBrowser)return lr;this._styleLoader.load($z);let i=fa(A),n=this._monitoredElements.get(i);if(n)return n.subject;let o=new qA,r="cdk-text-field-autofilled",s=a=>{a.animationName==="cdk-text-field-autofill-start"&&!i.classList.contains(r)?(i.classList.add(r),this._ngZone.run(()=>o.next({target:a.target,isAutofilled:!0}))):a.animationName==="cdk-text-field-autofill-end"&&i.classList.contains(r)&&(i.classList.remove(r),this._ngZone.run(()=>o.next({target:a.target,isAutofilled:!1})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",s,Xz),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:o,unlisten:()=>{i.removeEventListener("animationstart",s,Xz)}}),o}stopMonitoring(A){let i=fa(A),n=this._monitoredElements.get(i);n&&(n.unlisten(),n.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((A,i)=>this.stopMonitoring(i))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var eP=(()=>{class t{_elementRef=f(se);_platform=f(ni);_ngZone=f(ye);_renderer=f(qi);_resizeEvents=new qA;_previousValue;_initialHeight;_destroyed=new qA;_listenerCleanups;_minRows;_maxRows;_enabled=!0;_previousMinRows=-1;_textareaElement;get minRows(){return this._minRows}set minRows(A){this._minRows=Zs(A),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(A){this._maxRows=Zs(A),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(A){this._enabled!==A&&((this._enabled=A)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(A){this._cachedPlaceholderHeight=void 0,A?this._textareaElement.setAttribute("placeholder",A):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}_cachedLineHeight;_cachedPlaceholderHeight;_document=f(at,{optional:!0});_hasFocus;_isViewInited=!1;constructor(){f(Pn).load($z),this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){let A=this.minRows&&this._cachedLineHeight?`${this.minRows*this._cachedLineHeight}px`:null;A&&(this._textareaElement.style.minHeight=A)}_setMaxHeight(){let A=this.maxRows&&this._cachedLineHeight?`${this.maxRows*this._cachedLineHeight}px`:null;A&&(this._textareaElement.style.maxHeight=A)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{this._listenerCleanups=[this._renderer.listen("window","resize",()=>this._resizeEvents.next()),this._renderer.listen(this._textareaElement,"focus",this._handleFocusEvent),this._renderer.listen(this._textareaElement,"blur",this._handleFocusEvent)],this._resizeEvents.pipe(Dd(16)).subscribe(()=>{this._cachedLineHeight=this._cachedPlaceholderHeight=void 0,this.resizeToFitContent(!0)})}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._listenerCleanups?.forEach(A=>A()),this._resizeEvents.complete(),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let A=this._textareaElement.cloneNode(!1),i=A.style;A.rows=1,i.position="absolute",i.visibility="hidden",i.border="none",i.padding="0",i.height="",i.minHeight="",i.maxHeight="",i.top=i.bottom=i.left=i.right="auto",i.overflow="hidden",this._textareaElement.parentNode.appendChild(A),this._cachedLineHeight=A.clientHeight,A.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){let A=this._textareaElement,i=A.style.marginBottom||"",n=this._platform.FIREFOX,o=n&&this._hasFocus,r=n?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";o&&(A.style.marginBottom=`${A.clientHeight}px`),A.classList.add(r);let s=A.scrollHeight-4;return A.classList.remove(r),o&&(A.style.marginBottom=i),s}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||this._cachedPlaceholderHeight!=null)return;if(!this.placeholder){this._cachedPlaceholderHeight=0;return}let A=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=A}_handleFocusEvent=A=>{this._hasFocus=A.type==="focus"};ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(A=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight))return;let i=this._elementRef.nativeElement,n=i.value;if(!A&&this._minRows===this._previousMinRows&&n===this._previousValue)return;let o=this._measureScrollHeight(),r=Math.max(o,this._cachedPlaceholderHeight||0);i.style.height=`${r}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=n,this._previousMinRows=this._minRows}reset(){this._initialHeight!==void 0&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_scrollToCaretPosition(A){let{selectionStart:i,selectionEnd:n}=A;!this._destroyed.isStopped&&this._hasFocus&&A.setSelectionRange(i,n)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,n){i&1&&mA("input",function(){return n._noopInputHandler()})},inputs:{minRows:[0,"cdkAutosizeMinRows","minRows"],maxRows:[0,"cdkAutosizeMaxRows","maxRows"],enabled:[2,"cdkTextareaAutosize","enabled",ge],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"]})}return t})(),p6=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();var wuA=new eA("MAT_INPUT_VALUE_ACCESSOR"),yuA=["button","checkbox","file","hidden","image","radio","range","reset","submit"],vuA=new eA("MAT_INPUT_CONFIG"),J2=(()=>{class t{_elementRef=f(se);_platform=f(ni);ngControl=f(ec,{optional:!0,self:!0});_autofillMonitor=f(AP);_ngZone=f(ye);_formField=f(lh,{optional:!0});_renderer=f(qi);_uid=f(an).getId("mat-input-");_previousNativeValue;_inputValueAccessor;_signalBasedValueAccessor;_previousPlaceholder;_errorStateTracker;_config=f(vuA,{optional:!0});_cleanupIosKeyup;_cleanupWebkitWheel;_formFieldDescribedBy;_isServer;_isNativeSelect;_isTextarea;_isInFormField;focused=!1;stateChanges=new qA;controlType="mat-input";autofilled=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=Ar(A),this.focused&&(this.focused=!1,this.stateChanges.next())}_disabled=!1;get id(){return this._id}set id(A){this._id=A||this._uid}_id;placeholder;name;get required(){return this._required??this.ngControl?.control?.hasValidator(Ac.required)??!1}set required(A){this._required=Ar(A)}_required;get type(){return this._type}set type(A){let i=this._type;this._type=A||"text",this._validateType(),!this._isTextarea&&Ck().has(this._type)&&(this._elementRef.nativeElement.type=this._type),this._type!==i&&this._ensureWheelDefaultBehavior()}_type="text";get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(A){this._errorStateTracker.matcher=A}userAriaDescribedBy;get value(){return this._signalBasedValueAccessor?this._signalBasedValueAccessor.value():this._inputValueAccessor.value}set value(A){A!==this.value&&(this._signalBasedValueAccessor?this._signalBasedValueAccessor.value.set(A):this._inputValueAccessor.value=A,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(A){this._readonly=Ar(A)}_readonly=!1;disabledInteractive;get errorState(){return this._errorStateTracker.errorState}set errorState(A){this._errorStateTracker.errorState=A}_neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(A=>Ck().has(A));constructor(){let A=f(ih,{optional:!0}),i=f(YI,{optional:!0}),n=f(d6),o=f(wuA,{optional:!0,self:!0}),r=this._elementRef.nativeElement,s=r.nodeName.toLowerCase();o?v2(o.value)?this._signalBasedValueAccessor=o:this._inputValueAccessor=o:this._inputValueAccessor=r,this._previousNativeValue=this.value,this.id=this.id,this._platform.IOS&&this._ngZone.runOutsideAngular(()=>{this._cleanupIosKeyup=this._renderer.listen(r,"keyup",this._iOSKeyupListener)}),this._errorStateTracker=new BB(n,this.ngControl,i,A,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect=s==="select",this._isTextarea=s==="textarea",this._isInFormField=!!this._formField,this.disabledInteractive=this._config?.disabledInteractive||!1,this._isNativeSelect&&(this.controlType=r.multiple?"mat-native-select-multiple":"mat-native-select"),this._signalBasedValueAccessor&&Ku(()=>{this._signalBasedValueAccessor.value(),this.stateChanges.next()})}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(A=>{this.autofilled=A.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._cleanupIosKeyup?.(),this._cleanupWebkitWheel?.()}ngDoCheck(){this.ngControl&&(this.updateErrorState(),this.ngControl.disabled!==null&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(A){this._elementRef.nativeElement.focus(A)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(A){if(A!==this.focused){if(!this._isNativeSelect&&A&&this.disabled&&this.disabledInteractive){let i=this._elementRef.nativeElement;i.type==="number"?(i.type="text",i.setSelectionRange(0,0),i.type="number"):i.setSelectionRange(0,0)}this.focused=A,this.stateChanges.next()}}_onInput(){}_dirtyCheckNativeValue(){let A=this._elementRef.nativeElement.value;this._previousNativeValue!==A&&(this._previousNativeValue=A,this.stateChanges.next())}_dirtyCheckPlaceholder(){let A=this._getPlaceholder();if(A!==this._previousPlaceholder){let i=this._elementRef.nativeElement;this._previousPlaceholder=A,A?i.setAttribute("placeholder",A):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){yuA.indexOf(this._type)>-1}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let A=this._elementRef.nativeElement.validity;return A&&A.badInput}get empty(){return!this._isNeverEmpty()&&!this._elementRef.nativeElement.value&&!this._isBadInput()&&!this.autofilled}get shouldLabelFloat(){if(this._isNativeSelect){let A=this._elementRef.nativeElement,i=A.options[0];return this.focused||A.multiple||!this.empty||!!(A.selectedIndex>-1&&i&&i.label)}else return this.focused&&!this.disabled||!this.empty}setDescribedByIds(A){let i=this._elementRef.nativeElement,n=i.getAttribute("aria-describedby"),o;if(n){let r=this._formFieldDescribedBy||A;o=A.concat(n.split(" ").filter(s=>s&&!r.includes(s)))}else o=A;this._formFieldDescribedBy=A,o.length?i.setAttribute("aria-describedby",o.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){let A=this._elementRef.nativeElement;return this._isNativeSelect&&(A.multiple||A.size>1)}_iOSKeyupListener=A=>{let i=A.target;!i.value&&i.selectionStart===0&&i.selectionEnd===0&&(i.setSelectionRange(1,1),i.setSelectionRange(0,0))};_webkitBlinkWheelListener=()=>{};_ensureWheelDefaultBehavior(){this._cleanupWebkitWheel?.(),this._type==="number"&&(this._platform.BLINK||this._platform.WEBKIT)&&(this._cleanupWebkitWheel=this._renderer.listen(this._elementRef.nativeElement,"wheel",this._webkitBlinkWheelListener))}_getReadonlyAttribute(){return this._isNativeSelect?null:this.readonly||this.disabled&&this.disabledInteractive?"true":null}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:21,hostBindings:function(i,n){i&1&&mA("focus",function(){return n._focusChanged(!0)})("blur",function(){return n._focusChanged(!1)})("input",function(){return n._onInput()}),i&2&&(Qa("id",n.id)("disabled",n.disabled&&!n.disabledInteractive)("required",n.required),Ke("name",n.name||null)("readonly",n._getReadonlyAttribute())("aria-disabled",n.disabled&&n.disabledInteractive?"true":null)("aria-invalid",n.empty&&n.required?null:n.errorState)("aria-required",n.required)("id",n.id),he("mat-input-server",n._isServer)("mat-mdc-form-field-textarea-control",n._isInFormField&&n._isTextarea)("mat-mdc-form-field-input-control",n._isInFormField)("mat-mdc-input-disabled-interactive",n.disabledInteractive)("mdc-text-field__input",n._isInFormField)("mat-mdc-native-select-inline",n._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly",disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge]},exportAs:["matInput"],features:[ut([{provide:gh,useExisting:t}]),Xt]})}return t})(),D6=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,U2,U2,p6,pn]})}return t})();var v6=new eA(""),Hk=(()=>{class t{_zone;_plugins;_eventNameToPlugin=new Map;constructor(A,i){this._zone=i,A.forEach(n=>{n.manager=this}),this._plugins=A.slice().reverse()}addEventListener(A,i,n,o){return this._findPluginFor(i).addEventListener(A,i,n,o)}getZone(){return this._zone}_findPluginFor(A){let i=this._eventNameToPlugin.get(A);if(i)return i;if(i=this._plugins.find(o=>o.supports(A)),!i)throw new te(5101,!1);return this._eventNameToPlugin.set(A,i),i}static \u0275fac=function(i){return new(i||t)(be(v6),be(ye))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),Ih=class{_doc;constructor(e){this._doc=e}manager},w6="ng-app-id";function tP(t){for(let e of t)e.remove()}function iP(t,e){let A=e.createElement("style");return A.textContent=t,A}function buA(t,e,A,i){let n=t.head?.querySelectorAll(`style[${w6}="${e}"],link[${w6}="${e}"]`);if(n)for(let o of n)o.removeAttribute(w6),o instanceof HTMLLinkElement?i.set(o.href.slice(o.href.lastIndexOf("/")+1),{usage:0,elements:[o]}):o.textContent&&A.set(o.textContent,{usage:0,elements:[o]})}function Yk(t,e){let A=e.createElement("link");return A.setAttribute("rel","stylesheet"),A.setAttribute("href",t),A}var Ok=(()=>{class t{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;isServer;constructor(A,i,n,o={}){this.doc=A,this.appId=i,this.nonce=n,this.isServer=Np(o),buA(A,i,this.inline,this.external),this.hosts.add(A.head)}addStyles(A,i){for(let n of A)this.addUsage(n,this.inline,iP);i?.forEach(n=>this.addUsage(n,this.external,Yk))}removeStyles(A,i){for(let n of A)this.removeUsage(n,this.inline);i?.forEach(n=>this.removeUsage(n,this.external))}addUsage(A,i,n){let o=i.get(A);o?o.usage++:i.set(A,{usage:1,elements:[...this.hosts].map(r=>this.addElement(r,n(A,this.doc)))})}removeUsage(A,i){let n=i.get(A);n&&(n.usage--,n.usage<=0&&(tP(n.elements),i.delete(A)))}ngOnDestroy(){for(let[,{elements:A}]of[...this.inline,...this.external])tP(A);this.hosts.clear()}addHost(A){this.hosts.add(A);for(let[i,{elements:n}]of this.inline)n.push(this.addElement(A,iP(i,this.doc)));for(let[i,{elements:n}]of this.external)n.push(this.addElement(A,Yk(i,this.doc)))}removeHost(A){this.hosts.delete(A)}addElement(A,i){return this.nonce&&i.setAttribute("nonce",this.nonce),this.isServer&&i.setAttribute(w6,this.appId),A.appendChild(i)}static \u0275fac=function(i){return new(i||t)(be(at),be(Vd),be(bu,8),be(El))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),Jk={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},zk=/%COMP%/g;var oP="%COMP%",kuA=`_nghost-${oP}`,SuA=`_ngcontent-${oP}`,RuA=!0,LuA=new eA("",{providedIn:"root",factory:()=>RuA});function xuA(t){return SuA.replace(zk,t)}function NuA(t){return kuA.replace(zk,t)}function rP(t,e){return e.map(A=>A.replace(zk,t))}var Bh=(()=>{class t{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;platformId;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;platformIsServer;constructor(A,i,n,o,r,s,a,c=null,g=null){this.eventManager=A,this.sharedStylesHost=i,this.appId=n,this.removeStylesOnCompDestroy=o,this.doc=r,this.platformId=s,this.ngZone=a,this.nonce=c,this.tracingService=g,this.platformIsServer=Np(s),this.defaultRenderer=new Ch(A,r,a,this.platformIsServer,this.tracingService)}createRenderer(A,i){if(!A||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===gl.ShadowDom&&(i=Fe(sA({},i),{encapsulation:gl.Emulated}));let n=this.getOrCreateRenderer(A,i);return n instanceof y6?n.applyToHost(A):n instanceof dh&&n.applyStyles(),n}getOrCreateRenderer(A,i){let n=this.rendererByCompId,o=n.get(i.id);if(!o){let r=this.doc,s=this.ngZone,a=this.eventManager,c=this.sharedStylesHost,g=this.removeStylesOnCompDestroy,I=this.platformIsServer,C=this.tracingService;switch(i.encapsulation){case gl.Emulated:o=new y6(a,c,i,this.appId,g,r,s,I,C);break;case gl.ShadowDom:return new Tk(a,c,A,i,r,s,this.nonce,I,C);default:o=new dh(a,c,i,g,r,s,I,C);break}n.set(i.id,o)}return o}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(A){this.rendererByCompId.delete(A)}static \u0275fac=function(i){return new(i||t)(be(Hk),be(Ok),be(Vd),be(LuA),be(at),be(El),be(ye),be(bu),be(Zd,8))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),Ch=class{eventManager;doc;ngZone;platformIsServer;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(e,A,i,n,o){this.eventManager=e,this.doc=A,this.ngZone=i,this.platformIsServer=n,this.tracingService=o}destroy(){}destroyNode=null;createElement(e,A){return A?this.doc.createElementNS(Jk[A]||A,e):this.doc.createElement(e)}createComment(e){return this.doc.createComment(e)}createText(e){return this.doc.createTextNode(e)}appendChild(e,A){(nP(e)?e.content:e).appendChild(A)}insertBefore(e,A,i){e&&(nP(e)?e.content:e).insertBefore(A,i)}removeChild(e,A){A.remove()}selectRootElement(e,A){let i=typeof e=="string"?this.doc.querySelector(e):e;if(!i)throw new te(-5104,!1);return A||(i.textContent=""),i}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,A,i,n){if(n){A=n+":"+A;let o=Jk[n];o?e.setAttributeNS(o,A,i):e.setAttribute(A,i)}else e.setAttribute(A,i)}removeAttribute(e,A,i){if(i){let n=Jk[i];n?e.removeAttributeNS(n,A):e.removeAttribute(`${i}:${A}`)}else e.removeAttribute(A)}addClass(e,A){e.classList.add(A)}removeClass(e,A){e.classList.remove(A)}setStyle(e,A,i,n){n&(ll.DashCase|ll.Important)?e.style.setProperty(A,i,n&ll.Important?"important":""):e.style[A]=i}removeStyle(e,A,i){i&ll.DashCase?e.style.removeProperty(A):e.style[A]=""}setProperty(e,A,i){e!=null&&(e[A]=i)}setValue(e,A){e.nodeValue=A}listen(e,A,i,n){if(typeof e=="string"&&(e=$a().getGlobalEventTarget(this.doc,e),!e))throw new te(5102,!1);let o=this.decoratePreventDefault(i);return this.tracingService?.wrapEventListener&&(o=this.tracingService.wrapEventListener(e,A,o)),this.eventManager.addEventListener(e,A,o,n)}decoratePreventDefault(e){return A=>{if(A==="__ngUnwrap__")return e;(this.platformIsServer?this.ngZone.runGuarded(()=>e(A)):e(A))===!1&&A.preventDefault()}}};function nP(t){return t.tagName==="TEMPLATE"&&t.content!==void 0}var Tk=class extends Ch{sharedStylesHost;hostEl;shadowRoot;constructor(e,A,i,n,o,r,s,a,c){super(e,o,r,a,c),this.sharedStylesHost=A,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);let g=n.styles;g=rP(n.id,g);for(let C of g){let d=document.createElement("style");s&&d.setAttribute("nonce",s),d.textContent=C,this.shadowRoot.appendChild(d)}let I=n.getExternalStyles?.();if(I)for(let C of I){let d=Yk(C,o);s&&d.setAttribute("nonce",s),this.shadowRoot.appendChild(d)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}appendChild(e,A){return super.appendChild(this.nodeOrShadowRoot(e),A)}insertBefore(e,A,i){return super.insertBefore(this.nodeOrShadowRoot(e),A,i)}removeChild(e,A){return super.removeChild(null,A)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}},dh=class extends Ch{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(e,A,i,n,o,r,s,a,c){super(e,o,r,s,a),this.sharedStylesHost=A,this.removeStylesOnCompDestroy=n;let g=i.styles;this.styles=c?rP(c,g):g,this.styleUrls=i.getExternalStyles?.(c)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},y6=class extends dh{contentAttr;hostAttr;constructor(e,A,i,n,o,r,s,a,c){let g=n+"-"+i.id;super(e,A,i,o,r,s,a,c,g),this.contentAttr=xuA(g),this.hostAttr=NuA(g)}applyToHost(e){this.applyStyles(),this.setAttribute(e,this.hostAttr,"")}createElement(e,A){let i=super.createElement(e,A);return super.setAttribute(i,this.contentAttr,""),i}};var M6=class t extends Uu{supportsDOMEvents=!0;static makeCurrent(){Fb(new t)}onAndCancel(e,A,i,n){return e.addEventListener(A,i,n),()=>{e.removeEventListener(A,i,n)}}dispatchEvent(e,A){e.dispatchEvent(A)}remove(e){e.remove()}createElement(e,A){return A=A||this.getDefaultDocument(),A.createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,A){return A==="window"?window:A==="document"?e:A==="body"?e.body:null}getBaseHref(e){let A=FuA();return A==null?null:_uA(A)}resetBaseElement(){Eh=null}getUserAgent(){return window.navigator.userAgent}getCookie(e){return zu(document.cookie,e)}},Eh=null;function FuA(){return Eh=Eh||document.head.querySelector("base"),Eh?Eh.getAttribute("href"):null}function _uA(t){return new URL(t,document.baseURI).pathname}var b6=class{addToWindow(e){Pa.getAngularTestability=(i,n=!0)=>{let o=e.findTestabilityInTree(i,n);if(o==null)throw new te(5103,!1);return o},Pa.getAllAngularTestabilities=()=>e.getAllTestabilities(),Pa.getAllAngularRootElements=()=>e.getAllRootElements();let A=i=>{let n=Pa.getAllAngularTestabilities(),o=n.length,r=function(){o--,o==0&&i()};n.forEach(s=>{s.whenStable(r)})};Pa.frameworkStabilizers||(Pa.frameworkStabilizers=[]),Pa.frameworkStabilizers.push(A)}findTestabilityInTree(e,A,i){if(A==null)return null;let n=e.getTestability(A);return n??(i?$a().isShadowRoot(A)?this.findTestabilityInTree(e,A.host,!0):this.findTestabilityInTree(e,A.parentElement,!0):null)}},GuA=(()=>{class t{build(){return new XMLHttpRequest}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),aP=(()=>{class t extends Ih{constructor(A){super(A)}supports(A){return!0}addEventListener(A,i,n,o){return A.addEventListener(i,n,o),()=>this.removeEventListener(A,i,n,o)}removeEventListener(A,i,n,o){return A.removeEventListener(i,n,o)}static \u0275fac=function(i){return new(i||t)(be(at))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),sP=["alt","control","meta","shift"],KuA={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},UuA={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey},cP=(()=>{class t extends Ih{constructor(A){super(A)}supports(A){return t.parseEventName(A)!=null}addEventListener(A,i,n,o){let r=t.parseEventName(i),s=t.eventCallback(r.fullKey,n,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>$a().onAndCancel(A,r.domEventName,s,o))}static parseEventName(A){let i=A.toLowerCase().split("."),n=i.shift();if(i.length===0||!(n==="keydown"||n==="keyup"))return null;let o=t._normalizeKey(i.pop()),r="",s=i.indexOf("code");if(s>-1&&(i.splice(s,1),r="code."),sP.forEach(c=>{let g=i.indexOf(c);g>-1&&(i.splice(g,1),r+=c+".")}),r+=o,i.length!=0||o.length===0)return null;let a={};return a.domEventName=n,a.fullKey=r,a}static matchEventFullKeyCode(A,i){let n=KuA[A.key]||A.key,o="";return i.indexOf("code.")>-1&&(n=A.code,o="code."),n==null||!n?!1:(n=n.toLowerCase(),n===" "?n="space":n==="."&&(n="dot"),sP.forEach(r=>{if(r!==n){let s=UuA[r];s(A)&&(o+=r+".")}}),o+=n,o===i)}static eventCallback(A,i,n){return o=>{t.matchEventFullKeyCode(o,A)&&n.runGuarded(()=>i(o))}}static _normalizeKey(A){return A==="esc"?"escape":A}static \u0275fac=function(i){return new(i||t)(be(at))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();function Pk(t,e,A){return sO(sA({rootComponent:t,platformRef:A?.platformRef},JuA(e)))}function JuA(t){return{appProviders:[...gP,...t?.providers??[]],platformProviders:OuA}}function YuA(){M6.makeCurrent()}function TuA(){return new Ps}function HuA(){return hT(document),document}var OuA=[{provide:El,useValue:xp},{provide:ZM,useValue:YuA,multi:!0},{provide:at,useFactory:HuA}];var zuA=[{provide:Fu,useClass:b6},{provide:pb,useClass:pp,deps:[ye,Dp,Fu]},{provide:pp,useClass:pp,deps:[ye,Dp,Fu]}],gP=[{provide:ip,useValue:"root"},{provide:Ps,useFactory:TuA},{provide:v6,useClass:aP,multi:!0,deps:[at]},{provide:v6,useClass:cP,multi:!0,deps:[at]},Bh,Ok,Hk,{provide:Ms,useExisting:Bh},{provide:KI,useClass:GuA},[]],jk=(()=>{class t{constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[...gP,...zuA],imports:[ug,rO]})}return t})();var lP=(()=>{class t{_doc;constructor(A){this._doc=A}getTitle(){return this._doc.title}setTitle(A){this._doc.title=A||""}static \u0275fac=function(i){return new(i||t)(be(at))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var oc=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:function(i){let n=null;return i?n=new(i||t):n=be(PuA),n},providedIn:"root"})}return t})(),PuA=(()=>{class t extends oc{_doc;constructor(A){super(),this._doc=A}sanitize(A,i){if(i==null)return null;switch(A){case Xr.NONE:return i;case Xr.HTML:return M2(i,"HTML")?dg(i):Ab(this._doc,String(i)).toString();case Xr.STYLE:return M2(i,"Style")?dg(i):i;case Xr.SCRIPT:if(M2(i,"Script"))return dg(i);throw new te(5200,!1);case Xr.URL:return M2(i,"URL")?dg(i):Cp(String(i));case Xr.RESOURCE_URL:if(M2(i,"ResourceURL"))return dg(i);throw new te(5201,!1);default:throw new te(5202,!1)}}bypassSecurityTrustHtml(A){return vT(A)}bypassSecurityTrustStyle(A){return MT(A)}bypassSecurityTrustScript(A){return bT(A)}bypassSecurityTrustUrl(A){return kT(A)}bypassSecurityTrustResourceUrl(A){return ST(A)}static \u0275fac=function(i){return new(i||t)(be(at))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function IP(t){return new te(3e3,!1)}function juA(){return new te(3100,!1)}function quA(){return new te(3101,!1)}function VuA(t){return new te(3001,!1)}function ZuA(t){return new te(3003,!1)}function WuA(t){return new te(3004,!1)}function dP(t,e){return new te(3005,!1)}function BP(){return new te(3006,!1)}function EP(){return new te(3007,!1)}function QP(t,e){return new te(3008,!1)}function uP(t){return new te(3002,!1)}function hP(t,e,A,i,n){return new te(3010,!1)}function fP(){return new te(3011,!1)}function mP(){return new te(3012,!1)}function pP(){return new te(3200,!1)}function DP(){return new te(3202,!1)}function wP(){return new te(3013,!1)}function yP(t){return new te(3014,!1)}function vP(t){return new te(3015,!1)}function MP(t){return new te(3016,!1)}function bP(t,e){return new te(3404,!1)}function XuA(t){return new te(3502,!1)}function kP(t){return new te(3503,!1)}function SP(){return new te(3300,!1)}function RP(t){return new te(3504,!1)}function LP(t){return new te(3301,!1)}function xP(t,e){return new te(3302,!1)}function NP(t){return new te(3303,!1)}function FP(t,e){return new te(3400,!1)}function _P(t){return new te(3401,!1)}function GP(t){return new te(3402,!1)}function KP(t,e){return new te(3505,!1)}function b0(t){switch(t.length){case 0:return new hl;case 1:return t[0];default:return new XI(t)}}function Wk(t,e,A=new Map,i=new Map){let n=[],o=[],r=-1,s=null;if(e.forEach(a=>{let c=a.get("offset"),g=c==r,I=g&&s||new Map;a.forEach((C,d)=>{let B=d,E=C;if(d!=="offset")switch(B=t.normalizePropertyName(B,n),E){case hB:E=A.get(d);break;case Rc:E=i.get(d);break;default:E=t.normalizeStyleValue(d,B,E,n);break}I.set(B,E)}),g||o.push(I),s=I,r=c}),n.length)throw XuA(n);return o}function k6(t,e,A,i){switch(e){case"start":t.onStart(()=>i(A&&qk(A,"start",t)));break;case"done":t.onDone(()=>i(A&&qk(A,"done",t)));break;case"destroy":t.onDestroy(()=>i(A&&qk(A,"destroy",t)));break}}function qk(t,e,A){let i=A.totalTime,n=!!A.disabled,o=S6(t.element,t.triggerName,t.fromState,t.toState,e||t.phaseName,i??t.totalTime,n),r=t._data;return r!=null&&(o._data=r),o}function S6(t,e,A,i,n="",o=0,r){return{element:t,triggerName:e,fromState:A,toState:i,phaseName:n,totalTime:o,disabled:!!r}}function ma(t,e,A){let i=t.get(e);return i||t.set(e,i=A),i}function Xk(t){let e=t.indexOf(":"),A=t.substring(1,e),i=t.slice(e+1);return[A,i]}var $uA=typeof document>"u"?null:document.documentElement;function R6(t){let e=t.parentNode||t.host||null;return e===$uA?null:e}function AhA(t){return t.substring(1,6)=="ebkit"}var $I=null,CP=!1;function UP(t){$I||($I=ehA()||{},CP=$I.style?"WebkitAppearance"in $I.style:!1);let e=!0;return $I.style&&!AhA(t)&&(e=t in $I.style,!e&&CP&&(e="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in $I.style)),e}function ehA(){return typeof document<"u"?document.body:null}function $k(t,e){for(;e;){if(e===t)return!0;e=R6(e)}return!1}function AS(t,e,A){if(A)return Array.from(t.querySelectorAll(e));let i=t.querySelector(e);return i?[i]:[]}var thA=1e3,eS="{{",ihA="}}",tS="ng-enter",L6="ng-leave",uh="ng-trigger",hh=".ng-trigger",iS="ng-animating",x6=".ng-animating";function ml(t){if(typeof t=="number")return t;let e=t.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:Vk(parseFloat(e[1]),e[2])}function Vk(t,e){switch(e){case"s":return t*thA;default:return t}}function fh(t,e,A){return t.hasOwnProperty("duration")?t:nhA(t,e,A)}function nhA(t,e,A){let i=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,n,o=0,r="";if(typeof t=="string"){let s=t.match(i);if(s===null)return e.push(IP(t)),{duration:0,delay:0,easing:""};n=Vk(parseFloat(s[1]),s[2]);let a=s[3];a!=null&&(o=Vk(parseFloat(a),s[4]));let c=s[5];c&&(r=c)}else n=t;if(!A){let s=!1,a=e.length;n<0&&(e.push(juA()),s=!0),o<0&&(e.push(quA()),s=!0),s&&e.splice(a,0,IP(t))}return{duration:n,delay:o,easing:r}}function JP(t){return t.length?t[0]instanceof Map?t:t.map(e=>new Map(Object.entries(e))):[]}function pg(t,e,A){e.forEach((i,n)=>{let o=N6(n);A&&!A.has(n)&&A.set(n,t.style[o]),t.style[o]=i})}function Y2(t,e){e.forEach((A,i)=>{let n=N6(i);t.style[n]=""})}function fB(t){return Array.isArray(t)?t.length==1?t[0]:Yz(t):t}function YP(t,e,A){let i=e.params||{},n=nS(t);n.length&&n.forEach(o=>{i.hasOwnProperty(o)||A.push(VuA(o))})}var Zk=new RegExp(`${eS}\\s*(.+?)\\s*${ihA}`,"g");function nS(t){let e=[];if(typeof t=="string"){let A;for(;A=Zk.exec(t);)e.push(A[1]);Zk.lastIndex=0}return e}function mB(t,e,A){let i=`${t}`,n=i.replace(Zk,(o,r)=>{let s=e[r];return s==null&&(A.push(ZuA(r)),s=""),s.toString()});return n==i?t:n}var ohA=/-+([a-z0-9])/g;function N6(t){return t.replace(ohA,(...e)=>e[1].toUpperCase())}function TP(t,e){return t===0||e===0}function HP(t,e,A){if(A.size&&e.length){let i=e[0],n=[];if(A.forEach((o,r)=>{i.has(r)||n.push(r),i.set(r,o)}),n.length)for(let o=1;or.set(s,F6(t,s)))}}return e}function pa(t,e,A){switch(e.type){case oi.Trigger:return t.visitTrigger(e,A);case oi.State:return t.visitState(e,A);case oi.Transition:return t.visitTransition(e,A);case oi.Sequence:return t.visitSequence(e,A);case oi.Group:return t.visitGroup(e,A);case oi.Animate:return t.visitAnimate(e,A);case oi.Keyframes:return t.visitKeyframes(e,A);case oi.Style:return t.visitStyle(e,A);case oi.Reference:return t.visitReference(e,A);case oi.AnimateChild:return t.visitAnimateChild(e,A);case oi.AnimateRef:return t.visitAnimateRef(e,A);case oi.Query:return t.visitQuery(e,A);case oi.Stagger:return t.visitStagger(e,A);default:throw WuA(e.type)}}function F6(t,e){return window.getComputedStyle(t)[e]}var mS=(()=>{class t{validateStyleProperty(A){return UP(A)}containsElement(A,i){return $k(A,i)}getParentElement(A){return R6(A)}query(A,i,n){return AS(A,i,n)}computeStyle(A,i,n){return n||""}animate(A,i,n,o,r,s=[],a){return new hl(n,o)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),eC=class{static NOOP=new mS},tC=class{};var rhA=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),J6=class extends tC{normalizePropertyName(e,A){return N6(e)}normalizeStyleValue(e,A,i,n){let o="",r=i.toString().trim();if(rhA.has(A)&&i!==0&&i!=="0")if(typeof i=="number")o="px";else{let s=i.match(/^[+-]?[\d\.]+([a-z]*)$/);s&&s[1].length==0&&n.push(dP(e,i))}return r+o}};var Y6="*";function shA(t,e){let A=[];return typeof t=="string"?t.split(/\s*,\s*/).forEach(i=>ahA(i,A,e)):A.push(t),A}function ahA(t,e,A){if(t[0]==":"){let a=chA(t,A);if(typeof a=="function"){e.push(a);return}t=a}let i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(i==null||i.length<4)return A.push(vP(t)),e;let n=i[1],o=i[2],r=i[3];e.push(OP(n,r));let s=n==Y6&&r==Y6;o[0]=="<"&&!s&&e.push(OP(r,n))}function chA(t,e){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(A,i)=>parseFloat(i)>parseFloat(A);case":decrement":return(A,i)=>parseFloat(i) *"}}var _6=new Set(["true","1"]),G6=new Set(["false","0"]);function OP(t,e){let A=_6.has(t)||G6.has(t),i=_6.has(e)||G6.has(e);return(n,o)=>{let r=t==Y6||t==n,s=e==Y6||e==o;return!r&&A&&typeof n=="boolean"&&(r=n?_6.has(t):G6.has(t)),!s&&i&&typeof o=="boolean"&&(s=o?_6.has(e):G6.has(e)),r&&s}}var Aj=":self",ghA=new RegExp(`s*${Aj}s*,?`,"g");function ej(t,e,A,i){return new gS(t).build(e,A,i)}var zP="",gS=class{_driver;constructor(e){this._driver=e}build(e,A,i){let n=new lS(A);return this._resetContextStyleTimingState(n),pa(this,fB(e),n)}_resetContextStyleTimingState(e){e.currentQuerySelector=zP,e.collectedStyles=new Map,e.collectedStyles.set(zP,new Map),e.currentTime=0}visitTrigger(e,A){let i=A.queryCount=0,n=A.depCount=0,o=[],r=[];return e.name.charAt(0)=="@"&&A.errors.push(BP()),e.definitions.forEach(s=>{if(this._resetContextStyleTimingState(A),s.type==oi.State){let a=s,c=a.name;c.toString().split(/\s*,\s*/).forEach(g=>{a.name=g,o.push(this.visitState(a,A))}),a.name=c}else if(s.type==oi.Transition){let a=this.visitTransition(s,A);i+=a.queryCount,n+=a.depCount,r.push(a)}else A.errors.push(EP())}),{type:oi.Trigger,name:e.name,states:o,transitions:r,queryCount:i,depCount:n,options:null}}visitState(e,A){let i=this.visitStyle(e.styles,A),n=e.options&&e.options.params||null;if(i.containsDynamicStyles){let o=new Set,r=n||{};i.styles.forEach(s=>{s instanceof Map&&s.forEach(a=>{nS(a).forEach(c=>{r.hasOwnProperty(c)||o.add(c)})})}),o.size&&A.errors.push(QP(e.name,[...o.values()]))}return{type:oi.State,name:e.name,style:i,options:n?{params:n}:null}}visitTransition(e,A){A.queryCount=0,A.depCount=0;let i=pa(this,fB(e.animation),A),n=shA(e.expr,A.errors);return{type:oi.Transition,matchers:n,animation:i,queryCount:A.queryCount,depCount:A.depCount,options:AC(e.options)}}visitSequence(e,A){return{type:oi.Sequence,steps:e.steps.map(i=>pa(this,i,A)),options:AC(e.options)}}visitGroup(e,A){let i=A.currentTime,n=0,o=e.steps.map(r=>{A.currentTime=i;let s=pa(this,r,A);return n=Math.max(n,A.currentTime),s});return A.currentTime=n,{type:oi.Group,steps:o,options:AC(e.options)}}visitAnimate(e,A){let i=dhA(e.timings,A.errors);A.currentAnimateTimings=i;let n,o=e.styles?e.styles:Do({});if(o.type==oi.Keyframes)n=this.visitKeyframes(o,A);else{let r=e.styles,s=!1;if(!r){s=!0;let c={};i.easing&&(c.easing=i.easing),r=Do(c)}A.currentTime+=i.duration+i.delay;let a=this.visitStyle(r,A);a.isEmptyStep=s,n=a}return A.currentAnimateTimings=null,{type:oi.Animate,timings:i,style:n,options:null}}visitStyle(e,A){let i=this._makeStyleAst(e,A);return this._validateStyleAst(i,A),i}_makeStyleAst(e,A){let i=[],n=Array.isArray(e.styles)?e.styles:[e.styles];for(let s of n)typeof s=="string"?s===Rc?i.push(s):A.errors.push(uP(s)):i.push(new Map(Object.entries(s)));let o=!1,r=null;return i.forEach(s=>{if(s instanceof Map&&(s.has("easing")&&(r=s.get("easing"),s.delete("easing")),!o)){for(let a of s.values())if(a.toString().indexOf(eS)>=0){o=!0;break}}}),{type:oi.Style,styles:i,easing:r,offset:e.offset,containsDynamicStyles:o,options:null}}_validateStyleAst(e,A){let i=A.currentAnimateTimings,n=A.currentTime,o=A.currentTime;i&&o>0&&(o-=i.duration+i.delay),e.styles.forEach(r=>{typeof r!="string"&&r.forEach((s,a)=>{let c=A.collectedStyles.get(A.currentQuerySelector),g=c.get(a),I=!0;g&&(o!=n&&o>=g.startTime&&n<=g.endTime&&(A.errors.push(hP(a,g.startTime,g.endTime,o,n)),I=!1),o=g.startTime),I&&c.set(a,{startTime:o,endTime:n}),A.options&&YP(s,A.options,A.errors)})})}visitKeyframes(e,A){let i={type:oi.Keyframes,styles:[],options:null};if(!A.currentAnimateTimings)return A.errors.push(fP()),i;let n=1,o=0,r=[],s=!1,a=!1,c=0,g=e.steps.map(h=>{let w=this._makeStyleAst(h,A),x=w.offset!=null?w.offset:ChA(w.styles),R=0;return x!=null&&(o++,R=w.offset=x),a=a||R<0||R>1,s=s||R0&&o{let x=C>0?w==d?1:C*w:r[w],R=x*u;A.currentTime=B+E.delay+R,E.duration=R,this._validateStyleAst(h,A),h.offset=x,i.styles.push(h)}),i}visitReference(e,A){return{type:oi.Reference,animation:pa(this,fB(e.animation),A),options:AC(e.options)}}visitAnimateChild(e,A){return A.depCount++,{type:oi.AnimateChild,options:AC(e.options)}}visitAnimateRef(e,A){return{type:oi.AnimateRef,animation:this.visitReference(e.animation,A),options:AC(e.options)}}visitQuery(e,A){let i=A.currentQuerySelector,n=e.options||{};A.queryCount++,A.currentQuery=e;let[o,r]=lhA(e.selector);A.currentQuerySelector=i.length?i+" "+o:o,ma(A.collectedStyles,A.currentQuerySelector,new Map);let s=pa(this,fB(e.animation),A);return A.currentQuery=null,A.currentQuerySelector=i,{type:oi.Query,selector:o,limit:n.limit||0,optional:!!n.optional,includeSelf:r,animation:s,originalSelector:e.selector,options:AC(e.options)}}visitStagger(e,A){A.currentQuery||A.errors.push(wP());let i=e.timings==="full"?{duration:0,delay:0,easing:"full"}:fh(e.timings,A.errors,!0);return{type:oi.Stagger,animation:pa(this,fB(e.animation),A),timings:i,options:null}}};function lhA(t){let e=!!t.split(/\s*,\s*/).find(A=>A==Aj);return e&&(t=t.replace(ghA,"")),t=t.replace(/@\*/g,hh).replace(/@\w+/g,A=>hh+"-"+A.slice(1)).replace(/:animating/g,x6),[t,e]}function IhA(t){return t?sA({},t):null}var lS=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(e){this.errors=e}};function ChA(t){if(typeof t=="string")return null;let e=null;if(Array.isArray(t))t.forEach(A=>{if(A instanceof Map&&A.has("offset")){let i=A;e=parseFloat(i.get("offset")),i.delete("offset")}});else if(t instanceof Map&&t.has("offset")){let A=t;e=parseFloat(A.get("offset")),A.delete("offset")}return e}function dhA(t,e){if(t.hasOwnProperty("duration"))return t;if(typeof t=="number"){let o=fh(t,e).duration;return oS(o,0,"")}let A=t;if(A.split(/\s+/).some(o=>o.charAt(0)=="{"&&o.charAt(1)=="{")){let o=oS(0,0,"");return o.dynamic=!0,o.strValue=A,o}let n=fh(A,e);return oS(n.duration,n.delay,n.easing)}function AC(t){return t?(t=sA({},t),t.params&&(t.params=IhA(t.params))):t={},t}function oS(t,e,A){return{duration:t,delay:e,easing:A}}function pS(t,e,A,i,n,o,r=null,s=!1){return{type:1,element:t,keyframes:e,preStyleProps:A,postStyleProps:i,duration:n,delay:o,totalTime:n+o,easing:r,subTimeline:s}}var ph=class{_map=new Map;get(e){return this._map.get(e)||[]}append(e,A){let i=this._map.get(e);i||this._map.set(e,i=[]),i.push(...A)}has(e){return this._map.has(e)}clear(){this._map.clear()}},BhA=1,EhA=":enter",QhA=new RegExp(EhA,"g"),uhA=":leave",hhA=new RegExp(uhA,"g");function tj(t,e,A,i,n,o=new Map,r=new Map,s,a,c=[]){return new IS().buildKeyframes(t,e,A,i,n,o,r,s,a,c)}var IS=class{buildKeyframes(e,A,i,n,o,r,s,a,c,g=[]){c=c||new ph;let I=new CS(e,A,c,n,o,g,[]);I.options=a;let C=a.delay?ml(a.delay):0;I.currentTimeline.delayNextStep(C),I.currentTimeline.setStyles([r],null,I.errors,a),pa(this,i,I);let d=I.timelines.filter(B=>B.containsAnimation());if(d.length&&s.size){let B;for(let E=d.length-1;E>=0;E--){let u=d[E];if(u.element===A){B=u;break}}B&&!B.allowOnlyTimelineStyles()&&B.setStyles([s],null,I.errors,a)}return d.length?d.map(B=>B.buildKeyframes()):[pS(A,[],[],[],0,C,"",!1)]}visitTrigger(e,A){}visitState(e,A){}visitTransition(e,A){}visitAnimateChild(e,A){let i=A.subInstructions.get(A.element);if(i){let n=A.createSubContext(e.options),o=A.currentTimeline.currentTime,r=this._visitSubInstructions(i,n,n.options);o!=r&&A.transformIntoNewTimeline(r)}A.previousNode=e}visitAnimateRef(e,A){let i=A.createSubContext(e.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([e.options,e.animation.options],A,i),this.visitReference(e.animation,i),A.transformIntoNewTimeline(i.currentTimeline.currentTime),A.previousNode=e}_applyAnimationRefDelays(e,A,i){for(let n of e){let o=n?.delay;if(o){let r=typeof o=="number"?o:ml(mB(o,n?.params??{},A.errors));i.delayNextStep(r)}}}_visitSubInstructions(e,A,i){let o=A.currentTimeline.currentTime,r=i.duration!=null?ml(i.duration):null,s=i.delay!=null?ml(i.delay):null;return r!==0&&e.forEach(a=>{let c=A.appendInstructionToTimeline(a,r,s);o=Math.max(o,c.duration+c.delay)}),o}visitReference(e,A){A.updateOptions(e.options,!0),pa(this,e.animation,A),A.previousNode=e}visitSequence(e,A){let i=A.subContextCount,n=A,o=e.options;if(o&&(o.params||o.delay)&&(n=A.createSubContext(o),n.transformIntoNewTimeline(),o.delay!=null)){n.previousNode.type==oi.Style&&(n.currentTimeline.snapshotCurrentStyles(),n.previousNode=T6);let r=ml(o.delay);n.delayNextStep(r)}e.steps.length&&(e.steps.forEach(r=>pa(this,r,n)),n.currentTimeline.applyStylesToKeyframe(),n.subContextCount>i&&n.transformIntoNewTimeline()),A.previousNode=e}visitGroup(e,A){let i=[],n=A.currentTimeline.currentTime,o=e.options&&e.options.delay?ml(e.options.delay):0;e.steps.forEach(r=>{let s=A.createSubContext(e.options);o&&s.delayNextStep(o),pa(this,r,s),n=Math.max(n,s.currentTimeline.currentTime),i.push(s.currentTimeline)}),i.forEach(r=>A.currentTimeline.mergeTimelineCollectedStyles(r)),A.transformIntoNewTimeline(n),A.previousNode=e}_visitTiming(e,A){if(e.dynamic){let i=e.strValue,n=A.params?mB(i,A.params,A.errors):i;return fh(n,A.errors)}else return{duration:e.duration,delay:e.delay,easing:e.easing}}visitAnimate(e,A){let i=A.currentAnimateTimings=this._visitTiming(e.timings,A),n=A.currentTimeline;i.delay&&(A.incrementTime(i.delay),n.snapshotCurrentStyles());let o=e.style;o.type==oi.Keyframes?this.visitKeyframes(o,A):(A.incrementTime(i.duration),this.visitStyle(o,A),n.applyStylesToKeyframe()),A.currentAnimateTimings=null,A.previousNode=e}visitStyle(e,A){let i=A.currentTimeline,n=A.currentAnimateTimings;!n&&i.hasCurrentStyleProperties()&&i.forwardFrame();let o=n&&n.easing||e.easing;e.isEmptyStep?i.applyEmptyStep(o):i.setStyles(e.styles,o,A.errors,A.options),A.previousNode=e}visitKeyframes(e,A){let i=A.currentAnimateTimings,n=A.currentTimeline.duration,o=i.duration,s=A.createSubContext().currentTimeline;s.easing=i.easing,e.styles.forEach(a=>{let c=a.offset||0;s.forwardTime(c*o),s.setStyles(a.styles,a.easing,A.errors,A.options),s.applyStylesToKeyframe()}),A.currentTimeline.mergeTimelineCollectedStyles(s),A.transformIntoNewTimeline(n+o),A.previousNode=e}visitQuery(e,A){let i=A.currentTimeline.currentTime,n=e.options||{},o=n.delay?ml(n.delay):0;o&&(A.previousNode.type===oi.Style||i==0&&A.currentTimeline.hasCurrentStyleProperties())&&(A.currentTimeline.snapshotCurrentStyles(),A.previousNode=T6);let r=i,s=A.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!n.optional,A.errors);A.currentQueryTotal=s.length;let a=null;s.forEach((c,g)=>{A.currentQueryIndex=g;let I=A.createSubContext(e.options,c);o&&I.delayNextStep(o),c===A.element&&(a=I.currentTimeline),pa(this,e.animation,I),I.currentTimeline.applyStylesToKeyframe();let C=I.currentTimeline.currentTime;r=Math.max(r,C)}),A.currentQueryIndex=0,A.currentQueryTotal=0,A.transformIntoNewTimeline(r),a&&(A.currentTimeline.mergeTimelineCollectedStyles(a),A.currentTimeline.snapshotCurrentStyles()),A.previousNode=e}visitStagger(e,A){let i=A.parentContext,n=A.currentTimeline,o=e.timings,r=Math.abs(o.duration),s=r*(A.currentQueryTotal-1),a=r*A.currentQueryIndex;switch(o.duration<0?"reverse":o.easing){case"reverse":a=s-a;break;case"full":a=i.currentStaggerTime;break}let g=A.currentTimeline;a&&g.delayNextStep(a);let I=g.currentTime;pa(this,e.animation,A),A.previousNode=e,i.currentStaggerTime=n.currentTime-I+(n.startTime-i.currentTimeline.startTime)}},T6={},CS=class t{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=T6;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(e,A,i,n,o,r,s,a){this._driver=e,this.element=A,this.subInstructions=i,this._enterClassName=n,this._leaveClassName=o,this.errors=r,this.timelines=s,this.currentTimeline=a||new H6(this._driver,A,0),s.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(e,A){if(!e)return;let i=e,n=this.options;i.duration!=null&&(n.duration=ml(i.duration)),i.delay!=null&&(n.delay=ml(i.delay));let o=i.params;if(o){let r=n.params;r||(r=this.options.params={}),Object.keys(o).forEach(s=>{(!A||!r.hasOwnProperty(s))&&(r[s]=mB(o[s],r,this.errors))})}}_copyOptions(){let e={};if(this.options){let A=this.options.params;if(A){let i=e.params={};Object.keys(A).forEach(n=>{i[n]=A[n]})}}return e}createSubContext(e=null,A,i){let n=A||this.element,o=new t(this._driver,n,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(n,i||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(e),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o}transformIntoNewTimeline(e){return this.previousNode=T6,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(e,A,i){let n={duration:A??e.duration,delay:this.currentTimeline.currentTime+(i??0)+e.delay,easing:""},o=new dS(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,n,e.stretchStartingKeyframe);return this.timelines.push(o),n}incrementTime(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)}delayNextStep(e){e>0&&this.currentTimeline.delayNextStep(e)}invokeQuery(e,A,i,n,o,r){let s=[];if(n&&s.push(this.element),e.length>0){e=e.replace(QhA,"."+this._enterClassName),e=e.replace(hhA,"."+this._leaveClassName);let a=i!=1,c=this._driver.query(this.element,e,a);i!==0&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),s.push(...c)}return!o&&s.length==0&&r.push(yP(A)),s}},H6=class t{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(e,A,i,n){this._driver=e,this.element=A,this.startTime=i,this._elementTimelineStylesLookup=n,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(A),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(A,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(e){let A=this._keyframes.size===1&&this._pendingStyles.size;this.duration||A?(this.forwardTime(this.currentTime+e),A&&this.snapshotCurrentStyles()):this.startTime+=e}fork(e,A){return this.applyStylesToKeyframe(),new t(this._driver,e,A||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=BhA,this._loadKeyframe()}forwardTime(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()}_updateStyle(e,A){this._localTimelineStyles.set(e,A),this._globalTimelineStyles.set(e,A),this._styleSummary.set(e,{time:this.currentTime,value:A})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(e){e&&this._previousKeyframe.set("easing",e);for(let[A,i]of this._globalTimelineStyles)this._backFill.set(A,i||Rc),this._currentKeyframe.set(A,Rc);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(e,A,i,n){A&&this._previousKeyframe.set("easing",A);let o=n&&n.params||{},r=fhA(e,this._globalTimelineStyles);for(let[s,a]of r){let c=mB(a,o,i);this._pendingStyles.set(s,c),this._localTimelineStyles.has(s)||this._backFill.set(s,this._globalTimelineStyles.get(s)??Rc),this._updateStyle(s,c)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((e,A)=>{this._currentKeyframe.set(A,e)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((e,A)=>{this._currentKeyframe.has(A)||this._currentKeyframe.set(A,e)}))}snapshotCurrentStyles(){for(let[e,A]of this._localTimelineStyles)this._pendingStyles.set(e,A),this._updateStyle(e,A)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let e=[];for(let A in this._currentKeyframe)e.push(A);return e}mergeTimelineCollectedStyles(e){e._styleSummary.forEach((A,i)=>{let n=this._styleSummary.get(i);(!n||A.time>n.time)&&this._updateStyle(i,A.value)})}buildKeyframes(){this.applyStylesToKeyframe();let e=new Set,A=new Set,i=this._keyframes.size===1&&this.duration===0,n=[];this._keyframes.forEach((s,a)=>{let c=new Map([...this._backFill,...s]);c.forEach((g,I)=>{g===hB?e.add(I):g===Rc&&A.add(I)}),i||c.set("offset",a/this.duration),n.push(c)});let o=[...e.values()],r=[...A.values()];if(i){let s=n[0],a=new Map(s);s.set("offset",0),a.set("offset",1),n=[s,a]}return pS(this.element,n,o,r,this.duration,this.startTime,this.easing,!1)}},dS=class extends H6{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(e,A,i,n,o,r,s=!1){super(e,A,r.delay),this.keyframes=i,this.preStyleProps=n,this.postStyleProps=o,this._stretchStartingKeyframe=s,this.timings={duration:r.duration,delay:r.delay,easing:r.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let e=this.keyframes,{delay:A,duration:i,easing:n}=this.timings;if(this._stretchStartingKeyframe&&A){let o=[],r=i+A,s=A/r,a=new Map(e[0]);a.set("offset",0),o.push(a);let c=new Map(e[0]);c.set("offset",PP(s)),o.push(c);let g=e.length-1;for(let I=1;I<=g;I++){let C=new Map(e[I]),d=C.get("offset"),B=A+d*i;C.set("offset",PP(B/r)),o.push(C)}i=r,A=0,n="",e=o}return pS(this.element,e,this.preStyleProps,this.postStyleProps,i,A,n,!0)}};function PP(t,e=3){let A=Math.pow(10,e-1);return Math.round(t*A)/A}function fhA(t,e){let A=new Map,i;return t.forEach(n=>{if(n==="*"){i??=e.keys();for(let o of i)A.set(o,Rc)}else for(let[o,r]of n)A.set(o,r)}),A}function jP(t,e,A,i,n,o,r,s,a,c,g,I,C){return{type:0,element:t,triggerName:e,isRemovalTransition:n,fromState:A,fromStyles:o,toState:i,toStyles:r,timelines:s,queriedElements:a,preStyleProps:c,postStyleProps:g,totalTime:I,errors:C}}var rS={},O6=class{_triggerName;ast;_stateStyles;constructor(e,A,i){this._triggerName=e,this.ast=A,this._stateStyles=i}match(e,A,i,n){return mhA(this.ast.matchers,e,A,i,n)}buildStyles(e,A,i){let n=this._stateStyles.get("*");return e!==void 0&&(n=this._stateStyles.get(e?.toString())||n),n?n.buildStyles(A,i):new Map}build(e,A,i,n,o,r,s,a,c,g){let I=[],C=this.ast.options&&this.ast.options.params||rS,d=s&&s.params||rS,B=this.buildStyles(i,d,I),E=a&&a.params||rS,u=this.buildStyles(n,E,I),h=new Set,w=new Map,x=new Map,R=n==="void",D={params:ij(E,C),delay:this.ast.options?.delay},G=g?[]:tj(e,A,this.ast.animation,o,r,B,u,D,c,I),J=0;return G.forEach(z=>{J=Math.max(z.duration+z.delay,J)}),I.length?jP(A,this._triggerName,i,n,R,B,u,[],[],w,x,J,I):(G.forEach(z=>{let K=z.element,O=ma(w,K,new Set);z.preStyleProps.forEach(j=>O.add(j));let V=ma(x,K,new Set);z.postStyleProps.forEach(j=>V.add(j)),K!==A&&h.add(K)}),jP(A,this._triggerName,i,n,R,B,u,G,[...h.values()],w,x,J))}};function mhA(t,e,A,i,n){return t.some(o=>o(e,A,i,n))}function ij(t,e){let A=sA({},e);return Object.entries(t).forEach(([i,n])=>{n!=null&&(A[i]=n)}),A}var BS=class{styles;defaultParams;normalizer;constructor(e,A,i){this.styles=e,this.defaultParams=A,this.normalizer=i}buildStyles(e,A){let i=new Map,n=ij(e,this.defaultParams);return this.styles.styles.forEach(o=>{typeof o!="string"&&o.forEach((r,s)=>{r&&(r=mB(r,n,A));let a=this.normalizer.normalizePropertyName(s,A);r=this.normalizer.normalizeStyleValue(s,a,r,A),i.set(s,r)})}),i}};function phA(t,e,A){return new ES(t,e,A)}var ES=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(e,A,i){this.name=e,this.ast=A,this._normalizer=i,A.states.forEach(n=>{let o=n.options&&n.options.params||{};this.states.set(n.name,new BS(n.style,o,i))}),qP(this.states,"true","1"),qP(this.states,"false","0"),A.transitions.forEach(n=>{this.transitionFactories.push(new O6(e,n,this.states))}),this.fallbackTransition=DhA(e,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(e,A,i,n){return this.transitionFactories.find(r=>r.match(e,A,i,n))||null}matchStyles(e,A,i){return this.fallbackTransition.buildStyles(e,A,i)}};function DhA(t,e,A){let i=[(r,s)=>!0],n={type:oi.Sequence,steps:[],options:null},o={type:oi.Transition,animation:n,matchers:i,options:null,queryCount:0,depCount:0};return new O6(t,o,e)}function qP(t,e,A){t.has(e)?t.has(A)||t.set(A,t.get(e)):t.has(A)&&t.set(e,t.get(A))}var whA=new ph,QS=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(e,A,i){this.bodyNode=e,this._driver=A,this._normalizer=i}register(e,A){let i=[],n=[],o=ej(this._driver,A,i,n);if(i.length)throw kP(i);this._animations.set(e,o)}_buildPlayer(e,A,i){let n=e.element,o=Wk(this._normalizer,e.keyframes,A,i);return this._driver.animate(n,o,e.duration,e.delay,e.easing,[],!0)}create(e,A,i={}){let n=[],o=this._animations.get(e),r,s=new Map;if(o?(r=tj(this._driver,A,o,tS,L6,new Map,new Map,i,whA,n),r.forEach(g=>{let I=ma(s,g.element,new Map);g.postStyleProps.forEach(C=>I.set(C,null))})):(n.push(SP()),r=[]),n.length)throw RP(n);s.forEach((g,I)=>{g.forEach((C,d)=>{g.set(d,this._driver.computeStyle(I,d,Rc))})});let a=r.map(g=>{let I=s.get(g.element);return this._buildPlayer(g,new Map,I)}),c=b0(a);return this._playersById.set(e,c),c.onDestroy(()=>this.destroy(e)),this.players.push(c),c}destroy(e){let A=this._getPlayer(e);A.destroy(),this._playersById.delete(e);let i=this.players.indexOf(A);i>=0&&this.players.splice(i,1)}_getPlayer(e){let A=this._playersById.get(e);if(!A)throw LP(e);return A}listen(e,A,i,n){let o=S6(A,"","","");return k6(this._getPlayer(e),i,o,n),()=>{}}command(e,A,i,n){if(i=="register"){this.register(e,n[0]);return}if(i=="create"){let r=n[0]||{};this.create(e,A,r);return}let o=this._getPlayer(e);switch(i){case"play":o.play();break;case"pause":o.pause();break;case"reset":o.reset();break;case"restart":o.restart();break;case"finish":o.finish();break;case"init":o.init();break;case"setPosition":o.setPosition(parseFloat(n[0]));break;case"destroy":this.destroy(e);break}}},VP="ng-animate-queued",yhA=".ng-animate-queued",sS="ng-animate-disabled",vhA=".ng-animate-disabled",MhA="ng-star-inserted",bhA=".ng-star-inserted",khA=[],nj={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},ShA={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Dg="__ng_removed",Dh=class{namespaceId;value;options;get params(){return this.options.params}constructor(e,A=""){this.namespaceId=A;let i=e&&e.hasOwnProperty("value"),n=i?e.value:e;if(this.value=LhA(n),i){let o=e,{value:r}=o,s=pv(o,["value"]);this.options=s}else this.options={};this.options.params||(this.options.params={})}absorbOptions(e){let A=e.params;if(A){let i=this.options.params;Object.keys(A).forEach(n=>{i[n]==null&&(i[n]=A[n])})}}},mh="void",aS=new Dh(mh),uS=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(e,A,i){this.id=e,this.hostElement=A,this._engine=i,this._hostClassName="ng-tns-"+e,Lc(A,this._hostClassName)}listen(e,A,i,n){if(!this._triggers.has(A))throw xP(i,A);if(i==null||i.length==0)throw NP(A);if(!xhA(i))throw FP(i,A);let o=ma(this._elementListeners,e,[]),r={name:A,phase:i,callback:n};o.push(r);let s=ma(this._engine.statesByElement,e,new Map);return s.has(A)||(Lc(e,uh),Lc(e,uh+"-"+A),s.set(A,aS)),()=>{this._engine.afterFlush(()=>{let a=o.indexOf(r);a>=0&&o.splice(a,1),this._triggers.has(A)||s.delete(A)})}}register(e,A){return this._triggers.has(e)?!1:(this._triggers.set(e,A),!0)}_getTrigger(e){let A=this._triggers.get(e);if(!A)throw _P(e);return A}trigger(e,A,i,n=!0){let o=this._getTrigger(A),r=new wh(this.id,A,e),s=this._engine.statesByElement.get(e);s||(Lc(e,uh),Lc(e,uh+"-"+A),this._engine.statesByElement.set(e,s=new Map));let a=s.get(A),c=new Dh(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&a&&c.absorbOptions(a.options),s.set(A,c),a||(a=aS),!(c.value===mh)&&a.value===c.value){if(!_hA(a.params,c.params)){let E=[],u=o.matchStyles(a.value,a.params,E),h=o.matchStyles(c.value,c.params,E);E.length?this._engine.reportError(E):this._engine.afterFlush(()=>{Y2(e,u),pg(e,h)})}return}let C=ma(this._engine.playersByElement,e,[]);C.forEach(E=>{E.namespaceId==this.id&&E.triggerName==A&&E.queued&&E.destroy()});let d=o.matchTransition(a.value,c.value,e,c.params),B=!1;if(!d){if(!n)return;d=o.fallbackTransition,B=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:A,transition:d,fromState:a,toState:c,player:r,isFallbackTransition:B}),B||(Lc(e,VP),r.onStart(()=>{pB(e,VP)})),r.onDone(()=>{let E=this.players.indexOf(r);E>=0&&this.players.splice(E,1);let u=this._engine.playersByElement.get(e);if(u){let h=u.indexOf(r);h>=0&&u.splice(h,1)}}),this.players.push(r),C.push(r),r}deregister(e){this._triggers.delete(e),this._engine.statesByElement.forEach(A=>A.delete(e)),this._elementListeners.forEach((A,i)=>{this._elementListeners.set(i,A.filter(n=>n.name!=e))})}clearElementCache(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);let A=this._engine.playersByElement.get(e);A&&(A.forEach(i=>i.destroy()),this._engine.playersByElement.delete(e))}_signalRemovalForInnerTriggers(e,A){let i=this._engine.driver.query(e,hh,!0);i.forEach(n=>{if(n[Dg])return;let o=this._engine.fetchNamespacesByElement(n);o.size?o.forEach(r=>r.triggerLeaveAnimation(n,A,!1,!0)):this.clearElementCache(n)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(n=>this.clearElementCache(n)))}triggerLeaveAnimation(e,A,i,n){let o=this._engine.statesByElement.get(e),r=new Map;if(o){let s=[];if(o.forEach((a,c)=>{if(r.set(c,a.value),this._triggers.has(c)){let g=this.trigger(e,c,mh,n);g&&s.push(g)}}),s.length)return this._engine.markElementAsRemoved(this.id,e,!0,A,r),i&&b0(s).onDone(()=>this._engine.processLeaveNode(e)),!0}return!1}prepareLeaveAnimationListeners(e){let A=this._elementListeners.get(e),i=this._engine.statesByElement.get(e);if(A&&i){let n=new Set;A.forEach(o=>{let r=o.name;if(n.has(r))return;n.add(r);let a=this._triggers.get(r).fallbackTransition,c=i.get(r)||aS,g=new Dh(mh),I=new wh(this.id,r,e);this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:r,transition:a,fromState:c,toState:g,player:I,isFallbackTransition:!0})})}}removeNode(e,A){let i=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,A),this.triggerLeaveAnimation(e,A,!0))return;let n=!1;if(i.totalAnimations){let o=i.players.length?i.playersByQueriedElement.get(e):[];if(o&&o.length)n=!0;else{let r=e;for(;r=r.parentNode;)if(i.statesByElement.get(r)){n=!0;break}}}if(this.prepareLeaveAnimationListeners(e),n)i.markElementAsRemoved(this.id,e,!1,A);else{let o=e[Dg];(!o||o===nj)&&(i.afterFlush(()=>this.clearElementCache(e)),i.destroyInnerAnimations(e),i._onRemovalComplete(e,A))}}insertNode(e,A){Lc(e,this._hostClassName)}drainQueuedTransitions(e){let A=[];return this._queue.forEach(i=>{let n=i.player;if(n.destroyed)return;let o=i.element,r=this._elementListeners.get(o);r&&r.forEach(s=>{if(s.name==i.triggerName){let a=S6(o,i.triggerName,i.fromState.value,i.toState.value);a._data=e,k6(i.player,s.phase,a,s.callback)}}),n.markedForDestroy?this._engine.afterFlush(()=>{n.destroy()}):A.push(i)}),this._queue=[],A.sort((i,n)=>{let o=i.transition.ast.depCount,r=n.transition.ast.depCount;return o==0||r==0?o-r:this._engine.driver.containsElement(i.element,n.element)?1:-1})}destroy(e){this.players.forEach(A=>A.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,e)}},hS=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(e,A)=>{};_onRemovalComplete(e,A){this.onRemovalComplete(e,A)}constructor(e,A,i){this.bodyNode=e,this.driver=A,this._normalizer=i}get queuedPlayers(){let e=[];return this._namespaceList.forEach(A=>{A.players.forEach(i=>{i.queued&&e.push(i)})}),e}createNamespace(e,A){let i=new uS(e,A,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,A)?this._balanceNamespaceList(i,A):(this.newHostElements.set(A,i),this.collectEnterElement(A)),this._namespaceLookup[e]=i}_balanceNamespaceList(e,A){let i=this._namespaceList,n=this.namespacesByHostElement;if(i.length-1>=0){let r=!1,s=this.driver.getParentElement(A);for(;s;){let a=n.get(s);if(a){let c=i.indexOf(a);i.splice(c+1,0,e),r=!0;break}s=this.driver.getParentElement(s)}r||i.unshift(e)}else i.push(e);return n.set(A,e),e}register(e,A){let i=this._namespaceLookup[e];return i||(i=this.createNamespace(e,A)),i}registerTrigger(e,A,i){let n=this._namespaceLookup[e];n&&n.register(A,i)&&this.totalAnimations++}destroy(e,A){e&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let i=this._fetchNamespace(e);this.namespacesByHostElement.delete(i.hostElement);let n=this._namespaceList.indexOf(i);n>=0&&this._namespaceList.splice(n,1),i.destroy(A),delete this._namespaceLookup[e]}))}_fetchNamespace(e){return this._namespaceLookup[e]}fetchNamespacesByElement(e){let A=new Set,i=this.statesByElement.get(e);if(i){for(let n of i.values())if(n.namespaceId){let o=this._fetchNamespace(n.namespaceId);o&&A.add(o)}}return A}trigger(e,A,i,n){if(K6(A)){let o=this._fetchNamespace(e);if(o)return o.trigger(A,i,n),!0}return!1}insertNode(e,A,i,n){if(!K6(A))return;let o=A[Dg];if(o&&o.setForRemoval){o.setForRemoval=!1,o.setForMove=!0;let r=this.collectedLeaveElements.indexOf(A);r>=0&&this.collectedLeaveElements.splice(r,1)}if(e){let r=this._fetchNamespace(e);r&&r.insertNode(A,i)}n&&this.collectEnterElement(A)}collectEnterElement(e){this.collectedEnterElements.push(e)}markElementAsDisabled(e,A){A?this.disabledNodes.has(e)||(this.disabledNodes.add(e),Lc(e,sS)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),pB(e,sS))}removeNode(e,A,i){if(K6(A)){let n=e?this._fetchNamespace(e):null;n?n.removeNode(A,i):this.markElementAsRemoved(e,A,!1,i);let o=this.namespacesByHostElement.get(A);o&&o.id!==e&&o.removeNode(A,i)}else this._onRemovalComplete(A,i)}markElementAsRemoved(e,A,i,n,o){this.collectedLeaveElements.push(A),A[Dg]={namespaceId:e,setForRemoval:n,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:o}}listen(e,A,i,n,o){return K6(A)?this._fetchNamespace(e).listen(A,i,n,o):()=>{}}_buildInstruction(e,A,i,n,o){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,i,n,e.fromState.options,e.toState.options,A,o)}destroyInnerAnimations(e){let A=this.driver.query(e,hh,!0);A.forEach(i=>this.destroyActiveAnimationsForElement(i)),this.playersByQueriedElement.size!=0&&(A=this.driver.query(e,x6,!0),A.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(e){let A=this.playersByElement.get(e);A&&A.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(e){let A=this.playersByQueriedElement.get(e);A&&A.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(e=>{if(this.players.length)return b0(this.players).onDone(()=>e());e()})}processLeaveNode(e){let A=e[Dg];if(A&&A.setForRemoval){if(e[Dg]=nj,A.namespaceId){this.destroyInnerAnimations(e);let i=this._fetchNamespace(A.namespaceId);i&&i.clearElementCache(e)}this._onRemovalComplete(e,A.setForRemoval)}e.classList?.contains(sS)&&this.markElementAsDisabled(e,!1),this.driver.query(e,vhA,!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(e=-1){let A=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,n)=>this._balanceNamespaceList(i,n)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){let i=this._whenQuietFns;this._whenQuietFns=[],A.length?b0(A).onDone(()=>{i.forEach(n=>n())}):i.forEach(n=>n())}}reportError(e){throw GP(e)}_flushAnimations(e,A){let i=new ph,n=[],o=new Map,r=[],s=new Map,a=new Map,c=new Map,g=new Set;this.disabledNodes.forEach(IA=>{g.add(IA);let SA=this.driver.query(IA,yhA,!0);for(let nA=0;nA{let nA=tS+E++;B.set(SA,nA),IA.forEach(lA=>Lc(lA,nA))});let u=[],h=new Set,w=new Set;for(let IA=0;IAh.add(lA)):w.add(SA))}let x=new Map,R=XP(C,Array.from(h));R.forEach((IA,SA)=>{let nA=L6+E++;x.set(SA,nA),IA.forEach(lA=>Lc(lA,nA))}),e.push(()=>{d.forEach((IA,SA)=>{let nA=B.get(SA);IA.forEach(lA=>pB(lA,nA))}),R.forEach((IA,SA)=>{let nA=x.get(SA);IA.forEach(lA=>pB(lA,nA))}),u.forEach(IA=>{this.processLeaveNode(IA)})});let D=[],G=[];for(let IA=this._namespaceList.length-1;IA>=0;IA--)this._namespaceList[IA].drainQueuedTransitions(A).forEach(nA=>{let lA=nA.player,wA=nA.element;if(D.push(lA),this.collectedEnterElements.length){let We=wA[Dg];if(We&&We.setForMove){if(We.previousTriggersValues&&We.previousTriggersValues.has(nA.triggerName)){let KA=We.previousTriggersValues.get(nA.triggerName),tA=this.statesByElement.get(nA.element);if(tA&&tA.has(nA.triggerName)){let OA=tA.get(nA.triggerName);OA.value=KA,tA.set(nA.triggerName,OA)}}lA.destroy();return}}let VA=!I||!this.driver.containsElement(I,wA),ie=x.get(wA),UA=B.get(wA),BA=this._buildInstruction(nA,i,UA,ie,VA);if(BA.errors&&BA.errors.length){G.push(BA);return}if(VA){lA.onStart(()=>Y2(wA,BA.fromStyles)),lA.onDestroy(()=>pg(wA,BA.toStyles)),n.push(lA);return}if(nA.isFallbackTransition){lA.onStart(()=>Y2(wA,BA.fromStyles)),lA.onDestroy(()=>pg(wA,BA.toStyles)),n.push(lA);return}let JA=[];BA.timelines.forEach(We=>{We.stretchStartingKeyframe=!0,this.disabledNodes.has(We.element)||JA.push(We)}),BA.timelines=JA,i.append(wA,BA.timelines);let Xe={instruction:BA,player:lA,element:wA};r.push(Xe),BA.queriedElements.forEach(We=>ma(s,We,[]).push(lA)),BA.preStyleProps.forEach((We,KA)=>{if(We.size){let tA=a.get(KA);tA||a.set(KA,tA=new Set),We.forEach((OA,gA)=>tA.add(gA))}}),BA.postStyleProps.forEach((We,KA)=>{let tA=c.get(KA);tA||c.set(KA,tA=new Set),We.forEach((OA,gA)=>tA.add(gA))})});if(G.length){let IA=[];G.forEach(SA=>{IA.push(KP(SA.triggerName,SA.errors))}),D.forEach(SA=>SA.destroy()),this.reportError(IA)}let J=new Map,z=new Map;r.forEach(IA=>{let SA=IA.element;i.has(SA)&&(z.set(SA,SA),this._beforeAnimationBuild(IA.player.namespaceId,IA.instruction,J))}),n.forEach(IA=>{let SA=IA.element;this._getPreviousPlayers(SA,!1,IA.namespaceId,IA.triggerName,null).forEach(lA=>{ma(J,SA,[]).push(lA),lA.destroy()})});let K=u.filter(IA=>$P(IA,a,c)),O=new Map;WP(O,this.driver,w,c,Rc).forEach(IA=>{$P(IA,a,c)&&K.push(IA)});let j=new Map;d.forEach((IA,SA)=>{WP(j,this.driver,new Set(IA),a,hB)}),K.forEach(IA=>{let SA=O.get(IA),nA=j.get(IA);O.set(IA,new Map([...SA?.entries()??[],...nA?.entries()??[]]))});let dA=[],fA=[],EA={};r.forEach(IA=>{let{element:SA,player:nA,instruction:lA}=IA;if(i.has(SA)){if(g.has(SA)){nA.onDestroy(()=>pg(SA,lA.toStyles)),nA.disabled=!0,nA.overrideTotalTime(lA.totalTime),n.push(nA);return}let wA=EA;if(z.size>1){let ie=SA,UA=[];for(;ie=ie.parentNode;){let BA=z.get(ie);if(BA){wA=BA;break}UA.push(ie)}UA.forEach(BA=>z.set(BA,wA))}let VA=this._buildAnimation(nA.namespaceId,lA,J,o,j,O);if(nA.setRealPlayer(VA),wA===EA)dA.push(nA);else{let ie=this.playersByElement.get(wA);ie&&ie.length&&(nA.parentPlayer=b0(ie)),n.push(nA)}}else Y2(SA,lA.fromStyles),nA.onDestroy(()=>pg(SA,lA.toStyles)),fA.push(nA),g.has(SA)&&n.push(nA)}),fA.forEach(IA=>{let SA=o.get(IA.element);if(SA&&SA.length){let nA=b0(SA);IA.setRealPlayer(nA)}}),n.forEach(IA=>{IA.parentPlayer?IA.syncPlayerEvents(IA.parentPlayer):IA.destroy()});for(let IA=0;IA!VA.destroyed);wA.length?NhA(this,SA,wA):this.processLeaveNode(SA)}return u.length=0,dA.forEach(IA=>{this.players.push(IA),IA.onDone(()=>{IA.destroy();let SA=this.players.indexOf(IA);this.players.splice(SA,1)}),IA.play()}),dA}afterFlush(e){this._flushFns.push(e)}afterFlushAnimationsDone(e){this._whenQuietFns.push(e)}_getPreviousPlayers(e,A,i,n,o){let r=[];if(A){let s=this.playersByQueriedElement.get(e);s&&(r=s)}else{let s=this.playersByElement.get(e);if(s){let a=!o||o==mh;s.forEach(c=>{c.queued||!a&&c.triggerName!=n||r.push(c)})}}return(i||n)&&(r=r.filter(s=>!(i&&i!=s.namespaceId||n&&n!=s.triggerName))),r}_beforeAnimationBuild(e,A,i){let n=A.triggerName,o=A.element,r=A.isRemovalTransition?void 0:e,s=A.isRemovalTransition?void 0:n;for(let a of A.timelines){let c=a.element,g=c!==o,I=ma(i,c,[]);this._getPreviousPlayers(c,g,r,s,A.toState).forEach(d=>{let B=d.getRealPlayer();B.beforeDestroy&&B.beforeDestroy(),d.destroy(),I.push(d)})}Y2(o,A.fromStyles)}_buildAnimation(e,A,i,n,o,r){let s=A.triggerName,a=A.element,c=[],g=new Set,I=new Set,C=A.timelines.map(B=>{let E=B.element;g.add(E);let u=E[Dg];if(u&&u.removedBeforeQueried)return new hl(B.duration,B.delay);let h=E!==a,w=FhA((i.get(E)||khA).map(J=>J.getRealPlayer())).filter(J=>{let z=J;return z.element?z.element===E:!1}),x=o.get(E),R=r.get(E),D=Wk(this._normalizer,B.keyframes,x,R),G=this._buildPlayer(B,D,w);if(B.subTimeline&&n&&I.add(E),h){let J=new wh(e,s,E);J.setRealPlayer(G),c.push(J)}return G});c.forEach(B=>{ma(this.playersByQueriedElement,B.element,[]).push(B),B.onDone(()=>RhA(this.playersByQueriedElement,B.element,B))}),g.forEach(B=>Lc(B,iS));let d=b0(C);return d.onDestroy(()=>{g.forEach(B=>pB(B,iS)),pg(a,A.toStyles)}),I.forEach(B=>{ma(n,B,[]).push(d)}),d}_buildPlayer(e,A,i){return A.length>0?this.driver.animate(e.element,A,e.duration,e.delay,e.easing,i):new hl(e.duration,e.delay)}},wh=class{namespaceId;triggerName;element;_player=new hl;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(e,A,i){this.namespaceId=e,this.triggerName=A,this.element=i}setRealPlayer(e){this._containsRealPlayer||(this._player=e,this._queuedCallbacks.forEach((A,i)=>{A.forEach(n=>k6(e,i,void 0,n))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(e){this.totalTime=e}syncPlayerEvents(e){let A=this._player;A.triggerCallback&&e.onStart(()=>A.triggerCallback("start")),e.onDone(()=>this.finish()),e.onDestroy(()=>this.destroy())}_queueEvent(e,A){ma(this._queuedCallbacks,e,[]).push(A)}onDone(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)}onStart(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)}onDestroy(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(e){this.queued||this._player.setPosition(e)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(e){let A=this._player;A.triggerCallback&&A.triggerCallback(e)}};function RhA(t,e,A){let i=t.get(e);if(i){if(i.length){let n=i.indexOf(A);i.splice(n,1)}i.length==0&&t.delete(e)}return i}function LhA(t){return t??null}function K6(t){return t&&t.nodeType===1}function xhA(t){return t=="start"||t=="done"}function ZP(t,e){let A=t.style.display;return t.style.display=e??"none",A}function WP(t,e,A,i,n){let o=[];A.forEach(a=>o.push(ZP(a)));let r=[];i.forEach((a,c)=>{let g=new Map;a.forEach(I=>{let C=e.computeStyle(c,I,n);g.set(I,C),(!C||C.length==0)&&(c[Dg]=ShA,r.push(c))}),t.set(c,g)});let s=0;return A.forEach(a=>ZP(a,o[s++])),r}function XP(t,e){let A=new Map;if(t.forEach(s=>A.set(s,[])),e.length==0)return A;let i=1,n=new Set(e),o=new Map;function r(s){if(!s)return i;let a=o.get(s);if(a)return a;let c=s.parentNode;return A.has(c)?a=c:n.has(c)?a=i:a=r(c),o.set(s,a),a}return e.forEach(s=>{let a=r(s);a!==i&&A.get(a).push(s)}),A}function Lc(t,e){t.classList?.add(e)}function pB(t,e){t.classList?.remove(e)}function NhA(t,e,A){b0(A).onDone(()=>t.processLeaveNode(e))}function FhA(t){let e=[];return oj(t,e),e}function oj(t,e){for(let A=0;An.add(o)):e.set(t,i),A.delete(t),!0}var DB=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(e,A)=>{};constructor(e,A,i){this._driver=A,this._normalizer=i,this._transitionEngine=new hS(e.body,A,i),this._timelineEngine=new QS(e.body,A,i),this._transitionEngine.onRemovalComplete=(n,o)=>this.onRemovalComplete(n,o)}registerTrigger(e,A,i,n,o){let r=e+"-"+n,s=this._triggerCache[r];if(!s){let a=[],c=[],g=ej(this._driver,o,a,c);if(a.length)throw bP(n,a);s=phA(n,g,this._normalizer),this._triggerCache[r]=s}this._transitionEngine.registerTrigger(A,n,s)}register(e,A){this._transitionEngine.register(e,A)}destroy(e,A){this._transitionEngine.destroy(e,A)}onInsert(e,A,i,n){this._transitionEngine.insertNode(e,A,i,n)}onRemove(e,A,i){this._transitionEngine.removeNode(e,A,i)}disableAnimations(e,A){this._transitionEngine.markElementAsDisabled(e,A)}process(e,A,i,n){if(i.charAt(0)=="@"){let[o,r]=Xk(i),s=n;this._timelineEngine.command(o,A,r,s)}else this._transitionEngine.trigger(e,A,i,n)}listen(e,A,i,n,o){if(i.charAt(0)=="@"){let[r,s]=Xk(i);return this._timelineEngine.listen(r,A,s,o)}return this._transitionEngine.listen(e,A,i,n,o)}flush(e=-1){this._transitionEngine.flush(e)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(e){this._transitionEngine.afterFlushAnimationsDone(e)}};function GhA(t,e){let A=null,i=null;return Array.isArray(e)&&e.length?(A=cS(e[0]),e.length>1&&(i=cS(e[e.length-1]))):e instanceof Map&&(A=cS(e)),A||i?new KhA(t,A,i):null}var KhA=(()=>{class t{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(A,i,n){this._element=A,this._startStyles=i,this._endStyles=n;let o=t.initialStylesByElement.get(A);o||t.initialStylesByElement.set(A,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&pg(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(pg(this._element,this._initialStyles),this._endStyles&&(pg(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(t.initialStylesByElement.delete(this._element),this._startStyles&&(Y2(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Y2(this._element,this._endStyles),this._endStyles=null),pg(this._element,this._initialStyles),this._state=3)}}return t})();function cS(t){let e=null;return t.forEach((A,i)=>{UhA(i)&&(e=e||new Map,e.set(i,A))}),e}function UhA(t){return t==="display"||t==="position"}var z6=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(e,A,i,n){this.element=e,this.keyframes=A,this.options=i,this._specialStyles=n,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;let e=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,e,this.options),this._finalKeyframe=e.length?e[e.length-1]:new Map;let A=()=>this._onFinish();this.domPlayer.addEventListener("finish",A),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",A)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(e){let A=[];return e.forEach(i=>{A.push(Object.fromEntries(i))}),A}_triggerWebAnimation(e,A,i){return e.animate(this._convertKeyframesToObject(A),i)}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(e=>e()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}setPosition(e){this.domPlayer===void 0&&this.init(),this.domPlayer.currentTime=e*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){let e=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,n)=>{n!=="offset"&&e.set(n,this._finished?i:F6(this.element,n))}),this.currentSnapshot=e}triggerCallback(e){let A=e==="start"?this._onStartFns:this._onDoneFns;A.forEach(i=>i()),A.length=0}},P6=class{validateStyleProperty(e){return!0}validateAnimatableStyleProperty(e){return!0}containsElement(e,A){return $k(e,A)}getParentElement(e){return R6(e)}query(e,A,i){return AS(e,A,i)}computeStyle(e,A,i){return F6(e,A)}animate(e,A,i,n,o,r=[]){let s=n==0?"both":"forwards",a={duration:i,delay:n,fill:s};o&&(a.easing=o);let c=new Map,g=r.filter(d=>d instanceof z6);TP(i,n)&&g.forEach(d=>{d.currentSnapshot.forEach((B,E)=>c.set(E,B))});let I=JP(A).map(d=>new Map(d));I=HP(e,I,c);let C=GhA(e,I);return new z6(e,I,a,C)}};var U6="@",rj="@.disabled",j6=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(e,A,i,n){this.namespaceId=e,this.delegate=A,this.engine=i,this._onDestroy=n}get data(){return this.delegate.data}destroyNode(e){this.delegate.destroyNode?.(e)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(e,A){return this.delegate.createElement(e,A)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}appendChild(e,A){this.delegate.appendChild(e,A),this.engine.onInsert(this.namespaceId,A,e,!1)}insertBefore(e,A,i,n=!0){this.delegate.insertBefore(e,A,i),this.engine.onInsert(this.namespaceId,A,e,n)}removeChild(e,A,i){this.parentNode(A)&&this.engine.onRemove(this.namespaceId,A,this.delegate)}selectRootElement(e,A){return this.delegate.selectRootElement(e,A)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,A,i,n){this.delegate.setAttribute(e,A,i,n)}removeAttribute(e,A,i){this.delegate.removeAttribute(e,A,i)}addClass(e,A){this.delegate.addClass(e,A)}removeClass(e,A){this.delegate.removeClass(e,A)}setStyle(e,A,i,n){this.delegate.setStyle(e,A,i,n)}removeStyle(e,A,i){this.delegate.removeStyle(e,A,i)}setProperty(e,A,i){A.charAt(0)==U6&&A==rj?this.disableAnimations(e,!!i):this.delegate.setProperty(e,A,i)}setValue(e,A){this.delegate.setValue(e,A)}listen(e,A,i,n){return this.delegate.listen(e,A,i,n)}disableAnimations(e,A){this.engine.disableAnimations(e,A)}},fS=class extends j6{factory;constructor(e,A,i,n,o){super(A,i,n,o),this.factory=e,this.namespaceId=A}setProperty(e,A,i){A.charAt(0)==U6?A.charAt(1)=="."&&A==rj?(i=i===void 0?!0:!!i,this.disableAnimations(e,i)):this.engine.process(this.namespaceId,e,A.slice(1),i):this.delegate.setProperty(e,A,i)}listen(e,A,i,n){if(A.charAt(0)==U6){let o=JhA(e),r=A.slice(1),s="";return r.charAt(0)!=U6&&([r,s]=YhA(r)),this.engine.listen(this.namespaceId,o,r,s,a=>{let c=a._data||-1;this.factory.scheduleListenerCallback(c,i,a)})}return this.delegate.listen(e,A,i,n)}};function JhA(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}function YhA(t){let e=t.indexOf("."),A=t.substring(0,e),i=t.slice(e+1);return[A,i]}var q6=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(e,A,i){this.delegate=e,this.engine=A,this._zone=i,A.onRemovalComplete=(n,o)=>{o?.removeChild(null,n)}}createRenderer(e,A){let i="",n=this.delegate.createRenderer(e,A);if(!e||!A?.data?.animation){let c=this._rendererCache,g=c.get(n);if(!g){let I=()=>c.delete(n);g=new j6(i,n,this.engine,I),c.set(n,g)}return g}let o=A.id,r=A.id+"-"+this._currentId;this._currentId++,this.engine.register(r,e);let s=c=>{Array.isArray(c)?c.forEach(s):this.engine.registerTrigger(o,r,e,c.name,c)};return A.data.animation.forEach(s),new fS(this,r,n,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(e,A,i){if(e>=0&&eA(i));return}let n=this._animationCallbacksBuffer;n.length==0&&queueMicrotask(()=>{this._zone.run(()=>{n.forEach(o=>{let[r,s]=o;r(s)}),this._animationCallbacksBuffer=[]})}),n.push([A,i])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}componentReplaced(e){this.engine.flush(),this.delegate.componentReplaced?.(e)}};var HhA=(()=>{class t extends DB{constructor(A,i,n){super(A,i,n)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||t)(be(at),be(eC),be(tC))};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();function OhA(){return new J6}function zhA(t,e,A){return new q6(t,e,A)}var sj=[{provide:tC,useFactory:OhA},{provide:DB,useClass:HhA},{provide:Ms,useFactory:zhA,deps:[Bh,DB,ye]}],Zce=[{provide:eC,useClass:mS},{provide:_i,useValue:"NoopAnimations"},...sj],PhA=[{provide:eC,useFactory:()=>new P6},{provide:_i,useFactory:()=>"BrowserAnimations"},...sj];function aj(){return Cg("NgEagerAnimations"),[...PhA]}var wi="primary",Gh=Symbol("RouteTitle"),MS=class{params;constructor(e){this.params=e||{}}has(e){return Object.prototype.hasOwnProperty.call(this.params,e)}get(e){if(this.has(e)){let A=this.params[e];return Array.isArray(A)?A[0]:A}return null}getAll(e){if(this.has(e)){let A=this.params[e];return Array.isArray(A)?A:[A]}return[]}get keys(){return Object.keys(this.params)}};function oC(t){return new MS(t)}function Ej(t,e,A){let i=A.path.split("/");if(i.length>t.length||A.pathMatch==="full"&&(e.hasChildren()||i.lengthi[o]===n)}else return t===e}function uj(t){return t.length>0?t[t.length-1]:null}function z2(t){return B2(t)?t:k2(t)?ro(Promise.resolve(t)):Ce(t)}var qhA={exact:fj,subset:mj},hj={exact:VhA,subset:ZhA,ignored:()=>!0};function cj(t,e,A){return qhA[A.paths](t.root,e.root,A.matrixParams)&&hj[A.queryParams](t.queryParams,e.queryParams)&&!(A.fragment==="exact"&&t.fragment!==e.fragment)}function VhA(t,e){return pl(t,e)}function fj(t,e,A){if(!iC(t.segments,e.segments)||!W6(t.segments,e.segments,A)||t.numberOfChildren!==e.numberOfChildren)return!1;for(let i in e.children)if(!t.children[i]||!fj(t.children[i],e.children[i],A))return!1;return!0}function ZhA(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(A=>Qj(t[A],e[A]))}function mj(t,e,A){return pj(t,e,e.segments,A)}function pj(t,e,A,i){if(t.segments.length>A.length){let n=t.segments.slice(0,A.length);return!(!iC(n,A)||e.hasChildren()||!W6(n,A,i))}else if(t.segments.length===A.length){if(!iC(t.segments,A)||!W6(t.segments,A,i))return!1;for(let n in e.children)if(!t.children[n]||!mj(t.children[n],e.children[n],i))return!1;return!0}else{let n=A.slice(0,t.segments.length),o=A.slice(t.segments.length);return!iC(t.segments,n)||!W6(t.segments,n,i)||!t.children[wi]?!1:pj(t.children[wi],e,o,i)}}function W6(t,e,A){return e.every((i,n)=>hj[A](t[n].parameters,i.parameters))}var wl=class{root;queryParams;fragment;_queryParamMap;constructor(e=new Nn([],{}),A={},i=null){this.root=e,this.queryParams=A,this.fragment=i}get queryParamMap(){return this._queryParamMap??=oC(this.queryParams),this._queryParamMap}toString(){return $hA.serialize(this)}},Nn=class{segments;children;parent=null;constructor(e,A){this.segments=e,this.children=A,Object.values(A).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return X6(this)}},T2=class{path;parameters;_parameterMap;constructor(e,A){this.path=e,this.parameters=A}get parameterMap(){return this._parameterMap??=oC(this.parameters),this._parameterMap}toString(){return wj(this)}};function WhA(t,e){return iC(t,e)&&t.every((A,i)=>pl(A.parameters,e[i].parameters))}function iC(t,e){return t.length!==e.length?!1:t.every((A,i)=>A.path===e[i].path)}function XhA(t,e){let A=[];return Object.entries(t.children).forEach(([i,n])=>{i===wi&&(A=A.concat(e(n,i)))}),Object.entries(t.children).forEach(([i,n])=>{i!==wi&&(A=A.concat(e(n,i)))}),A}var rC=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>new H2,providedIn:"root"})}return t})(),H2=class{parse(e){let A=new SS(e);return new wl(A.parseRootSegment(),A.parseQueryParams(),A.parseFragment())}serialize(e){let A=`/${yh(e.root,!0)}`,i=t4A(e.queryParams),n=typeof e.fragment=="string"?`#${A4A(e.fragment)}`:"";return`${A}${i}${n}`}},$hA=new H2;function X6(t){return t.segments.map(e=>wj(e)).join("/")}function yh(t,e){if(!t.hasChildren())return X6(t);if(e){let A=t.children[wi]?yh(t.children[wi],!1):"",i=[];return Object.entries(t.children).forEach(([n,o])=>{n!==wi&&i.push(`${n}:${yh(o,!1)}`)}),i.length>0?`${A}(${i.join("//")})`:A}else{let A=XhA(t,(i,n)=>n===wi?[yh(t.children[wi],!1)]:[`${n}:${yh(i,!1)}`]);return Object.keys(t.children).length===1&&t.children[wi]!=null?`${X6(t)}/${A[0]}`:`${X6(t)}/(${A.join("//")})`}}function Dj(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function V6(t){return Dj(t).replace(/%3B/gi,";")}function A4A(t){return encodeURI(t)}function kS(t){return Dj(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function $6(t){return decodeURIComponent(t)}function gj(t){return $6(t.replace(/\+/g,"%20"))}function wj(t){return`${kS(t.path)}${e4A(t.parameters)}`}function e4A(t){return Object.entries(t).map(([e,A])=>`;${kS(e)}=${kS(A)}`).join("")}function t4A(t){let e=Object.entries(t).map(([A,i])=>Array.isArray(i)?i.map(n=>`${V6(A)}=${V6(n)}`).join("&"):`${V6(A)}=${V6(i)}`).filter(A=>A);return e.length?`?${e.join("&")}`:""}var i4A=/^[^\/()?;#]+/;function DS(t){let e=t.match(i4A);return e?e[0]:""}var n4A=/^[^\/()?;=#]+/;function o4A(t){let e=t.match(n4A);return e?e[0]:""}var r4A=/^[^=?&#]+/;function s4A(t){let e=t.match(r4A);return e?e[0]:""}var a4A=/^[^&#]+/;function c4A(t){let e=t.match(a4A);return e?e[0]:""}var SS=class{url;remaining;constructor(e){this.url=e,this.remaining=e}parseRootSegment(){return this.consumeOptional("/"),this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new Nn([],{}):new Nn([],this.parseChildren())}parseQueryParams(){let e={};if(this.consumeOptional("?"))do this.parseQueryParam(e);while(this.consumeOptional("&"));return e}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(this.remaining==="")return{};this.consumeOptional("/");let e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let A={};this.peekStartsWith("/(")&&(this.capture("/"),A=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(e.length>0||Object.keys(A).length>0)&&(i[wi]=new Nn(e,A)),i}parseSegment(){let e=DS(this.remaining);if(e===""&&this.peekStartsWith(";"))throw new te(4009,!1);return this.capture(e),new T2($6(e),this.parseMatrixParams())}parseMatrixParams(){let e={};for(;this.consumeOptional(";");)this.parseParam(e);return e}parseParam(e){let A=o4A(this.remaining);if(!A)return;this.capture(A);let i="";if(this.consumeOptional("=")){let n=DS(this.remaining);n&&(i=n,this.capture(i))}e[$6(A)]=$6(i)}parseQueryParam(e){let A=s4A(this.remaining);if(!A)return;this.capture(A);let i="";if(this.consumeOptional("=")){let r=c4A(this.remaining);r&&(i=r,this.capture(i))}let n=gj(A),o=gj(i);if(e.hasOwnProperty(n)){let r=e[n];Array.isArray(r)||(r=[r],e[n]=r),r.push(o)}else e[n]=o}parseParens(e){let A={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){let i=DS(this.remaining),n=this.remaining[i.length];if(n!=="/"&&n!==")"&&n!==";")throw new te(4010,!1);let o;i.indexOf(":")>-1?(o=i.slice(0,i.indexOf(":")),this.capture(o),this.capture(":")):e&&(o=wi);let r=this.parseChildren();A[o]=Object.keys(r).length===1?r[wi]:new Nn([],r),this.consumeOptional("//")}return A}peekStartsWith(e){return this.remaining.startsWith(e)}consumeOptional(e){return this.peekStartsWith(e)?(this.remaining=this.remaining.substring(e.length),!0):!1}capture(e){if(!this.consumeOptional(e))throw new te(4011,!1)}};function yj(t){return t.segments.length>0?new Nn([],{[wi]:t}):t}function vj(t){let e={};for(let[i,n]of Object.entries(t.children)){let o=vj(n);if(i===wi&&o.segments.length===0&&o.hasChildren())for(let[r,s]of Object.entries(o.children))e[r]=s;else(o.segments.length>0||o.hasChildren())&&(e[i]=o)}let A=new Nn(t.segments,e);return g4A(A)}function g4A(t){if(t.numberOfChildren===1&&t.children[wi]){let e=t.children[wi];return new Nn(t.segments.concat(e.segments),e.children)}return t}function bB(t){return t instanceof wl}function Mj(t,e,A=null,i=null){let n=bj(t);return kj(n,e,A,i)}function bj(t){let e;function A(o){let r={};for(let a of o.children){let c=A(a);r[a.outlet]=c}let s=new Nn(o.url,r);return o===t&&(e=s),s}let i=A(t.root),n=yj(i);return e??n}function kj(t,e,A,i){let n=t;for(;n.parent;)n=n.parent;if(e.length===0)return wS(n,n,n,A,i);let o=l4A(e);if(o.toRoot())return wS(n,n,new Nn([],{}),A,i);let r=I4A(o,n,t),s=r.processChildren?Mh(r.segmentGroup,r.index,o.commands):Rj(r.segmentGroup,r.index,o.commands);return wS(n,r.segmentGroup,s,A,i)}function e8(t){return typeof t=="object"&&t!=null&&!t.outlets&&!t.segmentPath}function kh(t){return typeof t=="object"&&t!=null&&t.outlets}function wS(t,e,A,i,n){let o={};i&&Object.entries(i).forEach(([a,c])=>{o[a]=Array.isArray(c)?c.map(g=>`${g}`):`${c}`});let r;t===e?r=A:r=Sj(t,e,A);let s=yj(vj(r));return new wl(s,o,n)}function Sj(t,e,A){let i={};return Object.entries(t.children).forEach(([n,o])=>{o===e?i[n]=A:i[n]=Sj(o,e,A)}),new Nn(t.segments,i)}var t8=class{isAbsolute;numberOfDoubleDots;commands;constructor(e,A,i){if(this.isAbsolute=e,this.numberOfDoubleDots=A,this.commands=i,e&&i.length>0&&e8(i[0]))throw new te(4003,!1);let n=i.find(kh);if(n&&n!==uj(i))throw new te(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}};function l4A(t){if(typeof t[0]=="string"&&t.length===1&&t[0]==="/")return new t8(!0,0,t);let e=0,A=!1,i=t.reduce((n,o,r)=>{if(typeof o=="object"&&o!=null){if(o.outlets){let s={};return Object.entries(o.outlets).forEach(([a,c])=>{s[a]=typeof c=="string"?c.split("/"):c}),[...n,{outlets:s}]}if(o.segmentPath)return[...n,o.segmentPath]}return typeof o!="string"?[...n,o]:r===0?(o.split("/").forEach((s,a)=>{a==0&&s==="."||(a==0&&s===""?A=!0:s===".."?e++:s!=""&&n.push(s))}),n):[...n,o]},[]);return new t8(A,e,i)}var vB=class{segmentGroup;processChildren;index;constructor(e,A,i){this.segmentGroup=e,this.processChildren=A,this.index=i}};function I4A(t,e,A){if(t.isAbsolute)return new vB(e,!0,0);if(!A)return new vB(e,!1,NaN);if(A.parent===null)return new vB(A,!0,0);let i=e8(t.commands[0])?0:1,n=A.segments.length-1+i;return C4A(A,n,t.numberOfDoubleDots)}function C4A(t,e,A){let i=t,n=e,o=A;for(;o>n;){if(o-=n,i=i.parent,!i)throw new te(4005,!1);n=i.segments.length}return new vB(i,!1,n-o)}function d4A(t){return kh(t[0])?t[0].outlets:{[wi]:t}}function Rj(t,e,A){if(t??=new Nn([],{}),t.segments.length===0&&t.hasChildren())return Mh(t,e,A);let i=B4A(t,e,A),n=A.slice(i.commandIndex);if(i.match&&i.pathIndexo!==wi)&&t.children[wi]&&t.numberOfChildren===1&&t.children[wi].segments.length===0){let o=Mh(t.children[wi],e,A);return new Nn(t.segments,o.children)}return Object.entries(i).forEach(([o,r])=>{typeof r=="string"&&(r=[r]),r!==null&&(n[o]=Rj(t.children[o],e,r))}),Object.entries(t.children).forEach(([o,r])=>{i[o]===void 0&&(n[o]=r)}),new Nn(t.segments,n)}}function B4A(t,e,A){let i=0,n=e,o={match:!1,pathIndex:0,commandIndex:0};for(;n=A.length)return o;let r=t.segments[n],s=A[i];if(kh(s))break;let a=`${s}`,c=i0&&a===void 0)break;if(a&&c&&typeof c=="object"&&c.outlets===void 0){if(!Ij(a,c,r))return o;i+=2}else{if(!Ij(a,{},r))return o;i++}n++}return{match:!0,pathIndex:n,commandIndex:i}}function RS(t,e,A){let i=t.segments.slice(0,e),n=0;for(;n{typeof i=="string"&&(i=[i]),i!==null&&(e[A]=RS(new Nn([],{}),0,i))}),e}function lj(t){let e={};return Object.entries(t).forEach(([A,i])=>e[A]=`${i}`),e}function Ij(t,e,A){return t==A.path&&pl(e,A.parameters)}var A8="imperative",Tr=function(t){return t[t.NavigationStart=0]="NavigationStart",t[t.NavigationEnd=1]="NavigationEnd",t[t.NavigationCancel=2]="NavigationCancel",t[t.NavigationError=3]="NavigationError",t[t.RoutesRecognized=4]="RoutesRecognized",t[t.ResolveStart=5]="ResolveStart",t[t.ResolveEnd=6]="ResolveEnd",t[t.GuardsCheckStart=7]="GuardsCheckStart",t[t.GuardsCheckEnd=8]="GuardsCheckEnd",t[t.RouteConfigLoadStart=9]="RouteConfigLoadStart",t[t.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",t[t.ChildActivationStart=11]="ChildActivationStart",t[t.ChildActivationEnd=12]="ChildActivationEnd",t[t.ActivationStart=13]="ActivationStart",t[t.ActivationEnd=14]="ActivationEnd",t[t.Scroll=15]="Scroll",t[t.NavigationSkipped=16]="NavigationSkipped",t}(Tr||{}),sc=class{id;url;constructor(e,A){this.id=e,this.url=A}},O2=class extends sc{type=Tr.NavigationStart;navigationTrigger;restoredState;constructor(e,A,i="imperative",n=null){super(e,A),this.navigationTrigger=i,this.restoredState=n}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}},ac=class extends sc{urlAfterRedirects;type=Tr.NavigationEnd;constructor(e,A,i){super(e,A),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}},Da=function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromResolver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t}(Da||{}),kB=function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t}(kB||{}),Dl=class extends sc{reason;code;type=Tr.NavigationCancel;constructor(e,A,i,n){super(e,A),this.reason=i,this.code=n}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}},yl=class extends sc{reason;code;type=Tr.NavigationSkipped;constructor(e,A,i,n){super(e,A),this.reason=i,this.code=n}},SB=class extends sc{error;target;type=Tr.NavigationError;constructor(e,A,i,n){super(e,A),this.error=i,this.target=n}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}},Sh=class extends sc{urlAfterRedirects;state;type=Tr.RoutesRecognized;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},i8=class extends sc{urlAfterRedirects;state;type=Tr.GuardsCheckStart;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},n8=class extends sc{urlAfterRedirects;state;shouldActivate;type=Tr.GuardsCheckEnd;constructor(e,A,i,n,o){super(e,A),this.urlAfterRedirects=i,this.state=n,this.shouldActivate=o}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}},o8=class extends sc{urlAfterRedirects;state;type=Tr.ResolveStart;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},r8=class extends sc{urlAfterRedirects;state;type=Tr.ResolveEnd;constructor(e,A,i,n){super(e,A),this.urlAfterRedirects=i,this.state=n}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},s8=class{route;type=Tr.RouteConfigLoadStart;constructor(e){this.route=e}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}},a8=class{route;type=Tr.RouteConfigLoadEnd;constructor(e){this.route=e}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}},c8=class{snapshot;type=Tr.ChildActivationStart;constructor(e){this.snapshot=e}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},g8=class{snapshot;type=Tr.ChildActivationEnd;constructor(e){this.snapshot=e}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},l8=class{snapshot;type=Tr.ActivationStart;constructor(e){this.snapshot=e}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},I8=class{snapshot;type=Tr.ActivationEnd;constructor(e){this.snapshot=e}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},RB=class{routerEvent;position;anchor;type=Tr.Scroll;constructor(e,A,i){this.routerEvent=e,this.position=A,this.anchor=i}toString(){let e=this.position?`${this.position[0]}, ${this.position[1]}`:null;return`Scroll(anchor: '${this.anchor}', position: '${e}')`}},Rh=class{},LB=class{url;navigationBehaviorOptions;constructor(e,A){this.url=e,this.navigationBehaviorOptions=A}};function Q4A(t,e){return t.providers&&!t._injector&&(t._injector=Nu(t.providers,e,`Route: ${t.path}`)),t._injector??e}function wg(t){return t.outlet||wi}function u4A(t,e){let A=t.filter(i=>wg(i)===e);return A.push(...t.filter(i=>wg(i)!==e)),A}function Kh(t){if(!t)return null;if(t.routeConfig?._injector)return t.routeConfig._injector;for(let e=t.parent;e;e=e.parent){let A=e.routeConfig;if(A?._loadedInjector)return A._loadedInjector;if(A?._injector)return A._injector}return null}var C8=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return Kh(this.route?.snapshot)??this.rootInjector}constructor(e){this.rootInjector=e,this.children=new sC(this.rootInjector)}},sC=(()=>{class t{rootInjector;contexts=new Map;constructor(A){this.rootInjector=A}onChildOutletCreated(A,i){let n=this.getOrCreateContext(A);n.outlet=i,this.contexts.set(A,n)}onChildOutletDestroyed(A){let i=this.getContext(A);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){let A=this.contexts;return this.contexts=new Map,A}onOutletReAttached(A){this.contexts=A}getOrCreateContext(A){let i=this.getContext(A);return i||(i=new C8(this.rootInjector),this.contexts.set(A,i)),i}getContext(A){return this.contexts.get(A)||null}static \u0275fac=function(i){return new(i||t)(be(vr))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),d8=class{_root;constructor(e){this._root=e}get root(){return this._root.value}parent(e){let A=this.pathFromRoot(e);return A.length>1?A[A.length-2]:null}children(e){let A=LS(e,this._root);return A?A.children.map(i=>i.value):[]}firstChild(e){let A=LS(e,this._root);return A&&A.children.length>0?A.children[0].value:null}siblings(e){let A=xS(e,this._root);return A.length<2?[]:A[A.length-2].children.map(n=>n.value).filter(n=>n!==e)}pathFromRoot(e){return xS(e,this._root).map(A=>A.value)}};function LS(t,e){if(t===e.value)return e;for(let A of e.children){let i=LS(t,A);if(i)return i}return null}function xS(t,e){if(t===e.value)return[e];for(let A of e.children){let i=xS(t,A);if(i.length)return i.unshift(e),i}return[]}var rc=class{value;children;constructor(e,A){this.value=e,this.children=A}toString(){return`TreeNode(${this.value})`}};function yB(t){let e={};return t&&t.children.forEach(A=>e[A.value.outlet]=A),e}var Lh=class extends d8{snapshot;constructor(e,A){super(e),this.snapshot=A,YS(this,e)}toString(){return this.snapshot.toString()}};function Lj(t){let e=h4A(t),A=new Fi([new T2("",{})]),i=new Fi({}),n=new Fi({}),o=new Fi({}),r=new Fi(""),s=new xc(A,i,o,r,n,wi,t,e.root);return s.snapshot=e.root,new Lh(new rc(s,[]),e)}function h4A(t){let e={},A={},i={},n="",o=new nC([],e,i,n,A,wi,t,null,{});return new xh("",new rc(o,[]))}var xc=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(e,A,i,n,o,r,s,a){this.urlSubject=e,this.paramsSubject=A,this.queryParamsSubject=i,this.fragmentSubject=n,this.dataSubject=o,this.outlet=r,this.component=s,this._futureSnapshot=a,this.title=this.dataSubject?.pipe(je(c=>c[Gh]))??Ce(void 0),this.url=e,this.params=A,this.queryParams=i,this.fragment=n,this.data=o}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(je(e=>oC(e))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(je(e=>oC(e))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}};function B8(t,e,A="emptyOnly"){let i,{routeConfig:n}=t;return e!==null&&(A==="always"||n?.path===""||!e.component&&!e.routeConfig?.loadComponent)?i={params:sA(sA({},e.params),t.params),data:sA(sA({},e.data),t.data),resolve:sA(sA(sA(sA({},t.data),e.data),n?.data),t._resolvedData)}:i={params:sA({},t.params),data:sA({},t.data),resolve:sA(sA({},t.data),t._resolvedData??{})},n&&Nj(n)&&(i.resolve[Gh]=n.title),i}var nC=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;get title(){return this.data?.[Gh]}constructor(e,A,i,n,o,r,s,a,c){this.url=e,this.params=A,this.queryParams=i,this.fragment=n,this.data=o,this.outlet=r,this.component=s,this.routeConfig=a,this._resolve=c}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=oC(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=oC(this.queryParams),this._queryParamMap}toString(){let e=this.url.map(i=>i.toString()).join("/"),A=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${e}', path:'${A}')`}},xh=class extends d8{url;constructor(e,A){super(A),this.url=e,YS(this,A)}toString(){return xj(this._root)}};function YS(t,e){e.value._routerState=t,e.children.forEach(A=>YS(t,A))}function xj(t){let e=t.children.length>0?` { ${t.children.map(xj).join(", ")} } `:"";return`${t.value}${e}`}function yS(t){if(t.snapshot){let e=t.snapshot,A=t._futureSnapshot;t.snapshot=A,pl(e.queryParams,A.queryParams)||t.queryParamsSubject.next(A.queryParams),e.fragment!==A.fragment&&t.fragmentSubject.next(A.fragment),pl(e.params,A.params)||t.paramsSubject.next(A.params),jhA(e.url,A.url)||t.urlSubject.next(A.url),pl(e.data,A.data)||t.dataSubject.next(A.data)}else t.snapshot=t._futureSnapshot,t.dataSubject.next(t._futureSnapshot.data)}function NS(t,e){let A=pl(t.params,e.params)&&WhA(t.url,e.url),i=!t.parent!=!e.parent;return A&&!i&&(!t.parent||NS(t.parent,e.parent))}function Nj(t){return typeof t.title=="string"||t.title===null}var Fj=new eA(""),TS=(()=>{class t{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=wi;activateEvents=new YA;deactivateEvents=new YA;attachEvents=new YA;detachEvents=new YA;routerOutletData=bs(void 0);parentContexts=f(sC);location=f(Sn);changeDetector=f(Et);inputBinder=f(Uh,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(A){if(A.name){let{firstChange:i,previousValue:n}=A.name;if(i)return;this.isTrackedInParentContexts(n)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(n)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(A){return this.parentContexts.getContext(A)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let A=this.parentContexts.getContext(this.name);A?.route&&(A.attachRef?this.attach(A.attachRef,A.route):this.activateWith(A.route,A.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new te(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new te(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new te(4012,!1);this.location.detach();let A=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(A.instance),A}attach(A,i){this.activated=A,this._activatedRoute=i,this.location.insert(A.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(A.instance)}deactivate(){if(this.activated){let A=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(A)}}activateWith(A,i){if(this.isActivated)throw new te(4013,!1);this._activatedRoute=A;let n=this.location,r=A.snapshot.component,s=this.parentContexts.getOrCreateContext(this.name).children,a=new FS(A,s,n.injector,this.routerOutletData);this.activated=n.createComponent(r,{index:n.length,injector:a,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[Xt]})}return t})(),FS=class{route;childContexts;parent;outletData;constructor(e,A,i,n){this.route=e,this.childContexts=A,this.parent=i,this.outletData=n}get(e,A){return e===xc?this.route:e===sC?this.childContexts:e===Fj?this.outletData:this.parent.get(e,A)}},Uh=new eA(""),HS=(()=>{class t{outletDataSubscriptions=new Map;bindActivatedRouteToOutletComponent(A){this.unsubscribeFromRouteData(A),this.subscribeToRouteData(A)}unsubscribeFromRouteData(A){this.outletDataSubscriptions.get(A)?.unsubscribe(),this.outletDataSubscriptions.delete(A)}subscribeToRouteData(A){let{activatedRoute:i}=A,n=ga([i.queryParams,i.params,i.data]).pipe($n(([o,r,s],a)=>(s=sA(sA(sA({},o),r),s),a===0?Ce(s):Promise.resolve(s)))).subscribe(o=>{if(!A.isActivated||!A.activatedComponentRef||A.activatedRoute!==i||i.component===null){this.unsubscribeFromRouteData(A);return}let r=cO(i.component);if(!r){this.unsubscribeFromRouteData(A);return}for(let{templateName:s}of r.inputs)A.activatedComponentRef.setInput(s,o[s])});this.outletDataSubscriptions.set(A,n)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})(),OS=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(i,n){i&1&&TA(0,"router-outlet")},dependencies:[TS],encapsulation:2})}return t})();function zS(t){let e=t.children&&t.children.map(zS),A=e?Fe(sA({},t),{children:e}):sA({},t);return!A.component&&!A.loadComponent&&(e||A.loadChildren)&&A.outlet&&A.outlet!==wi&&(A.component=OS),A}function f4A(t,e,A){let i=Nh(t,e._root,A?A._root:void 0);return new Lh(i,e)}function Nh(t,e,A){if(A&&t.shouldReuseRoute(e.value,A.value.snapshot)){let i=A.value;i._futureSnapshot=e.value;let n=m4A(t,e,A);return new rc(i,n)}else{if(t.shouldAttach(e.value)){let o=t.retrieve(e.value);if(o!==null){let r=o.route;return r.value._futureSnapshot=e.value,r.children=e.children.map(s=>Nh(t,s)),r}}let i=p4A(e.value),n=e.children.map(o=>Nh(t,o));return new rc(i,n)}}function m4A(t,e,A){return e.children.map(i=>{for(let n of A.children)if(t.shouldReuseRoute(i.value,n.value.snapshot))return Nh(t,i,n);return Nh(t,i)})}function p4A(t){return new xc(new Fi(t.url),new Fi(t.params),new Fi(t.queryParams),new Fi(t.fragment),new Fi(t.data),t.outlet,t.component,t)}var xB=class{redirectTo;navigationBehaviorOptions;constructor(e,A){this.redirectTo=e,this.navigationBehaviorOptions=A}},_j="ngNavigationCancelingError";function E8(t,e){let{redirectTo:A,navigationBehaviorOptions:i}=bB(e)?{redirectTo:e,navigationBehaviorOptions:void 0}:e,n=Gj(!1,Da.Redirect);return n.url=A,n.navigationBehaviorOptions=i,n}function Gj(t,e){let A=new Error(`NavigationCancelingError: ${t||""}`);return A[_j]=!0,A.cancellationCode=e,A}function D4A(t){return Kj(t)&&bB(t.url)}function Kj(t){return!!t&&t[_j]}var w4A=(t,e,A,i)=>je(n=>(new _S(e,n.targetRouterState,n.currentRouterState,A,i).activate(t),n)),_S=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(e,A,i,n,o){this.routeReuseStrategy=e,this.futureState=A,this.currState=i,this.forwardEvent=n,this.inputBindingEnabled=o}activate(e){let A=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(A,i,e),yS(this.futureState.root),this.activateChildRoutes(A,i,e)}deactivateChildRoutes(e,A,i){let n=yB(A);e.children.forEach(o=>{let r=o.value.outlet;this.deactivateRoutes(o,n[r],i),delete n[r]}),Object.values(n).forEach(o=>{this.deactivateRouteAndItsChildren(o,i)})}deactivateRoutes(e,A,i){let n=e.value,o=A?A.value:null;if(n===o)if(n.component){let r=i.getContext(n.outlet);r&&this.deactivateChildRoutes(e,A,r.children)}else this.deactivateChildRoutes(e,A,i);else o&&this.deactivateRouteAndItsChildren(A,i)}deactivateRouteAndItsChildren(e,A){e.value.component&&this.routeReuseStrategy.shouldDetach(e.value.snapshot)?this.detachAndStoreRouteSubtree(e,A):this.deactivateRouteAndOutlet(e,A)}detachAndStoreRouteSubtree(e,A){let i=A.getContext(e.value.outlet),n=i&&e.value.component?i.children:A,o=yB(e);for(let r of Object.values(o))this.deactivateRouteAndItsChildren(r,n);if(i&&i.outlet){let r=i.outlet.detach(),s=i.children.onOutletDeactivated();this.routeReuseStrategy.store(e.value.snapshot,{componentRef:r,route:e,contexts:s})}}deactivateRouteAndOutlet(e,A){let i=A.getContext(e.value.outlet),n=i&&e.value.component?i.children:A,o=yB(e);for(let r of Object.values(o))this.deactivateRouteAndItsChildren(r,n);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(e,A,i){let n=yB(A);e.children.forEach(o=>{this.activateRoutes(o,n[o.value.outlet],i),this.forwardEvent(new I8(o.value.snapshot))}),e.children.length&&this.forwardEvent(new g8(e.value.snapshot))}activateRoutes(e,A,i){let n=e.value,o=A?A.value:null;if(yS(n),n===o)if(n.component){let r=i.getOrCreateContext(n.outlet);this.activateChildRoutes(e,A,r.children)}else this.activateChildRoutes(e,A,i);else if(n.component){let r=i.getOrCreateContext(n.outlet);if(this.routeReuseStrategy.shouldAttach(n.snapshot)){let s=this.routeReuseStrategy.retrieve(n.snapshot);this.routeReuseStrategy.store(n.snapshot,null),r.children.onOutletReAttached(s.contexts),r.attachRef=s.componentRef,r.route=s.route.value,r.outlet&&r.outlet.attach(s.componentRef,s.route.value),yS(s.route.value),this.activateChildRoutes(e,null,r.children)}else r.attachRef=null,r.route=n,r.outlet&&r.outlet.activateWith(n,r.injector),this.activateChildRoutes(e,null,r.children)}else this.activateChildRoutes(e,null,i)}},Q8=class{path;route;constructor(e){this.path=e,this.route=this.path[this.path.length-1]}},MB=class{component;route;constructor(e,A){this.component=e,this.route=A}};function y4A(t,e,A){let i=t._root,n=e?e._root:null;return vh(i,n,A,[i.value])}function v4A(t){let e=t.routeConfig?t.routeConfig.canActivateChild:null;return!e||e.length===0?null:{node:t,guards:e}}function FB(t,e){let A=Symbol(),i=e.get(t,A);return i===A?typeof t=="function"&&!lY(t)?t:e.get(t):i}function vh(t,e,A,i,n={canDeactivateChecks:[],canActivateChecks:[]}){let o=yB(e);return t.children.forEach(r=>{M4A(r,o[r.value.outlet],A,i.concat([r.value]),n),delete o[r.value.outlet]}),Object.entries(o).forEach(([r,s])=>bh(s,A.getContext(r),n)),n}function M4A(t,e,A,i,n={canDeactivateChecks:[],canActivateChecks:[]}){let o=t.value,r=e?e.value:null,s=A?A.getContext(t.value.outlet):null;if(r&&o.routeConfig===r.routeConfig){let a=b4A(r,o,o.routeConfig.runGuardsAndResolvers);a?n.canActivateChecks.push(new Q8(i)):(o.data=r.data,o._resolvedData=r._resolvedData),o.component?vh(t,e,s?s.children:null,i,n):vh(t,e,A,i,n),a&&s&&s.outlet&&s.outlet.isActivated&&n.canDeactivateChecks.push(new MB(s.outlet.component,r))}else r&&bh(e,s,n),n.canActivateChecks.push(new Q8(i)),o.component?vh(t,null,s?s.children:null,i,n):vh(t,null,A,i,n);return n}function b4A(t,e,A){if(typeof A=="function")return A(t,e);switch(A){case"pathParamsChange":return!iC(t.url,e.url);case"pathParamsOrQueryParamsChange":return!iC(t.url,e.url)||!pl(t.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!NS(t,e)||!pl(t.queryParams,e.queryParams);case"paramsChange":default:return!NS(t,e)}}function bh(t,e,A){let i=yB(t),n=t.value;Object.entries(i).forEach(([o,r])=>{n.component?e?bh(r,e.children.getContext(o),A):bh(r,null,A):bh(r,e,A)}),n.component?e&&e.outlet&&e.outlet.isActivated?A.canDeactivateChecks.push(new MB(e.outlet.component,n)):A.canDeactivateChecks.push(new MB(null,n)):A.canDeactivateChecks.push(new MB(null,n))}function Jh(t){return typeof t=="function"}function k4A(t){return typeof t=="boolean"}function S4A(t){return t&&Jh(t.canLoad)}function R4A(t){return t&&Jh(t.canActivate)}function L4A(t){return t&&Jh(t.canActivateChild)}function x4A(t){return t&&Jh(t.canDeactivate)}function N4A(t){return t&&Jh(t.canMatch)}function Uj(t){return t instanceof B0||t?.name==="EmptyError"}var Z6=Symbol("INITIAL_VALUE");function NB(){return $n(t=>ga(t.map(e=>e.pipe(Xn(1),On(Z6)))).pipe(je(e=>{for(let A of e)if(A!==!0){if(A===Z6)return Z6;if(A===!1||F4A(A))return A}return!0}),Nt(e=>e!==Z6),Xn(1)))}function F4A(t){return bB(t)||t instanceof xB}function _4A(t,e){return or(A=>{let{targetSnapshot:i,currentSnapshot:n,guards:{canActivateChecks:o,canDeactivateChecks:r}}=A;return r.length===0&&o.length===0?Ce(Fe(sA({},A),{guardsResult:!0})):G4A(r,i,n,t).pipe(or(s=>s&&k4A(s)?K4A(i,o,t,e):Ce(s)),je(s=>Fe(sA({},A),{guardsResult:s})))})}function G4A(t,e,A,i){return ro(t).pipe(or(n=>H4A(n.component,n.route,A,e,i)),ol(n=>n!==!0,!0))}function K4A(t,e,A,i){return ro(e).pipe(tl(n=>Q2(J4A(n.route.parent,i),U4A(n.route,i),T4A(t,n.path,A),Y4A(t,n.route,A))),ol(n=>n!==!0,!0))}function U4A(t,e){return t!==null&&e&&e(new l8(t)),Ce(!0)}function J4A(t,e){return t!==null&&e&&e(new c8(t)),Ce(!0)}function Y4A(t,e,A){let i=e.routeConfig?e.routeConfig.canActivate:null;if(!i||i.length===0)return Ce(!0);let n=i.map(o=>el(()=>{let r=Kh(e)??A,s=FB(o,r),a=R4A(s)?s.canActivate(e,t):da(r,()=>s(e,t));return z2(a).pipe(ol())}));return Ce(n).pipe(NB())}function T4A(t,e,A){let i=e[e.length-1],o=e.slice(0,e.length-1).reverse().map(r=>v4A(r)).filter(r=>r!==null).map(r=>el(()=>{let s=r.guards.map(a=>{let c=Kh(r.node)??A,g=FB(a,c),I=L4A(g)?g.canActivateChild(i,t):da(c,()=>g(i,t));return z2(I).pipe(ol())});return Ce(s).pipe(NB())}));return Ce(o).pipe(NB())}function H4A(t,e,A,i,n){let o=e&&e.routeConfig?e.routeConfig.canDeactivate:null;if(!o||o.length===0)return Ce(!0);let r=o.map(s=>{let a=Kh(e)??n,c=FB(s,a),g=x4A(c)?c.canDeactivate(t,e,A,i):da(a,()=>c(t,e,A,i));return z2(g).pipe(ol())});return Ce(r).pipe(NB())}function O4A(t,e,A,i){let n=e.canLoad;if(n===void 0||n.length===0)return Ce(!0);let o=n.map(r=>{let s=FB(r,t),a=S4A(s)?s.canLoad(e,A):da(t,()=>s(e,A));return z2(a)});return Ce(o).pipe(NB(),Jj(i))}function Jj(t){return Tv(So(e=>{if(typeof e!="boolean")throw E8(t,e)}),je(e=>e===!0))}function z4A(t,e,A,i){let n=e.canMatch;if(!n||n.length===0)return Ce(!0);let o=n.map(r=>{let s=FB(r,t),a=N4A(s)?s.canMatch(e,A):da(t,()=>s(e,A));return z2(a)});return Ce(o).pipe(NB(),Jj(i))}var Fh=class{segmentGroup;constructor(e){this.segmentGroup=e||null}},_h=class extends Error{urlTree;constructor(e){super(),this.urlTree=e}};function wB(t){return d2(new Fh(t))}function P4A(t){return d2(new te(4e3,!1))}function j4A(t){return d2(Gj(!1,Da.GuardRejected))}var GS=class{urlSerializer;urlTree;constructor(e,A){this.urlSerializer=e,this.urlTree=A}lineralizeSegments(e,A){let i=[],n=A.root;for(;;){if(i=i.concat(n.segments),n.numberOfChildren===0)return Ce(i);if(n.numberOfChildren>1||!n.children[wi])return P4A(`${e.redirectTo}`);n=n.children[wi]}}applyRedirectCommands(e,A,i,n,o){if(typeof A!="string"){let s=A,{queryParams:a,fragment:c,routeConfig:g,url:I,outlet:C,params:d,data:B,title:E}=n,u=da(o,()=>s({params:d,data:B,queryParams:a,fragment:c,routeConfig:g,url:I,outlet:C,title:E}));if(u instanceof wl)throw new _h(u);A=u}let r=this.applyRedirectCreateUrlTree(A,this.urlSerializer.parse(A),e,i);if(A[0]==="/")throw new _h(r);return r}applyRedirectCreateUrlTree(e,A,i,n){let o=this.createSegmentGroup(e,A.root,i,n);return new wl(o,this.createQueryParams(A.queryParams,this.urlTree.queryParams),A.fragment)}createQueryParams(e,A){let i={};return Object.entries(e).forEach(([n,o])=>{if(typeof o=="string"&&o[0]===":"){let s=o.substring(1);i[n]=A[s]}else i[n]=o}),i}createSegmentGroup(e,A,i,n){let o=this.createSegments(e,A.segments,i,n),r={};return Object.entries(A.children).forEach(([s,a])=>{r[s]=this.createSegmentGroup(e,a,i,n)}),new Nn(o,r)}createSegments(e,A,i,n){return A.map(o=>o.path[0]===":"?this.findPosParam(e,o,n):this.findOrReturn(o,i))}findPosParam(e,A,i){let n=i[A.path.substring(1)];if(!n)throw new te(4001,!1);return n}findOrReturn(e,A){let i=0;for(let n of A){if(n.path===e.path)return A.splice(i),n;i++}return e}},KS={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function q4A(t,e,A,i,n){let o=Yj(t,e,A);return o.matched?(i=Q4A(e,i),z4A(i,e,A,n).pipe(je(r=>r===!0?o:sA({},KS)))):Ce(o)}function Yj(t,e,A){if(e.path==="**")return V4A(A);if(e.path==="")return e.pathMatch==="full"&&(t.hasChildren()||A.length>0)?sA({},KS):{matched:!0,consumedSegments:[],remainingSegments:A,parameters:{},positionalParamSegments:{}};let n=(e.matcher||Ej)(A,t,e);if(!n)return sA({},KS);let o={};Object.entries(n.posParams??{}).forEach(([s,a])=>{o[s]=a.path});let r=n.consumed.length>0?sA(sA({},o),n.consumed[n.consumed.length-1].parameters):o;return{matched:!0,consumedSegments:n.consumed,remainingSegments:A.slice(n.consumed.length),parameters:r,positionalParamSegments:n.posParams??{}}}function V4A(t){return{matched:!0,parameters:t.length>0?uj(t).parameters:{},consumedSegments:t,remainingSegments:[],positionalParamSegments:{}}}function Cj(t,e,A,i){return A.length>0&&X4A(t,A,i)?{segmentGroup:new Nn(e,W4A(i,new Nn(A,t.children))),slicedSegments:[]}:A.length===0&&$4A(t,A,i)?{segmentGroup:new Nn(t.segments,Z4A(t,A,i,t.children)),slicedSegments:A}:{segmentGroup:new Nn(t.segments,t.children),slicedSegments:A}}function Z4A(t,e,A,i){let n={};for(let o of A)if(h8(t,e,o)&&!i[wg(o)]){let r=new Nn([],{});n[wg(o)]=r}return sA(sA({},i),n)}function W4A(t,e){let A={};A[wi]=e;for(let i of t)if(i.path===""&&wg(i)!==wi){let n=new Nn([],{});A[wg(i)]=n}return A}function X4A(t,e,A){return A.some(i=>h8(t,e,i)&&wg(i)!==wi)}function $4A(t,e,A){return A.some(i=>h8(t,e,i))}function h8(t,e,A){return(t.hasChildren()||e.length>0)&&A.pathMatch==="full"?!1:A.path===""}function A3A(t,e,A){return e.length===0&&!t.children[A]}var US=class{};function e3A(t,e,A,i,n,o,r="emptyOnly"){return new JS(t,e,A,i,n,r,o).recognize()}var t3A=31,JS=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(e,A,i,n,o,r,s){this.injector=e,this.configLoader=A,this.rootComponentType=i,this.config=n,this.urlTree=o,this.paramsInheritanceStrategy=r,this.urlSerializer=s,this.applyRedirects=new GS(this.urlSerializer,this.urlTree)}noMatchError(e){return new te(4002,`'${e.segmentGroup}'`)}recognize(){let e=Cj(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(e).pipe(je(({children:A,rootSnapshot:i})=>{let n=new rc(i,A),o=new xh("",n),r=Mj(i,[],this.urlTree.queryParams,this.urlTree.fragment);return r.queryParams=this.urlTree.queryParams,o.url=this.urlSerializer.serialize(r),{state:o,tree:r}}))}match(e){let A=new nC([],Object.freeze({}),Object.freeze(sA({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),wi,this.rootComponentType,null,{});return this.processSegmentGroup(this.injector,this.config,e,wi,A).pipe(je(i=>({children:i,rootSnapshot:A})),Gr(i=>{if(i instanceof _h)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof Fh?this.noMatchError(i):i}))}processSegmentGroup(e,A,i,n,o){return i.segments.length===0&&i.hasChildren()?this.processChildren(e,A,i,o):this.processSegment(e,A,i,i.segments,n,!0,o).pipe(je(r=>r instanceof rc?[r]:[]))}processChildren(e,A,i,n){let o=[];for(let r of Object.keys(i.children))r==="primary"?o.unshift(r):o.push(r);return ro(o).pipe(tl(r=>{let s=i.children[r],a=u4A(A,r);return this.processSegmentGroup(e,a,s,r,n)}),qv((r,s)=>(r.push(...s),r)),u2(null),jv(),or(r=>{if(r===null)return wB(i);let s=Tj(r);return i3A(s),Ce(s)}))}processSegment(e,A,i,n,o,r,s){return ro(A).pipe(tl(a=>this.processSegmentAgainstRoute(a._injector??e,A,a,i,n,o,r,s).pipe(Gr(c=>{if(c instanceof Fh)return Ce(null);throw c}))),ol(a=>!!a),Gr(a=>{if(Uj(a))return A3A(i,n,o)?Ce(new US):wB(i);throw a}))}processSegmentAgainstRoute(e,A,i,n,o,r,s,a){return wg(i)!==r&&(r===wi||!h8(n,o,i))?wB(n):i.redirectTo===void 0?this.matchSegmentAgainstRoute(e,n,i,o,r,a):this.allowRedirects&&s?this.expandSegmentAgainstRouteUsingRedirect(e,n,A,i,o,r,a):wB(n)}expandSegmentAgainstRouteUsingRedirect(e,A,i,n,o,r,s){let{matched:a,parameters:c,consumedSegments:g,positionalParamSegments:I,remainingSegments:C}=Yj(A,n,o);if(!a)return wB(A);typeof n.redirectTo=="string"&&n.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>t3A&&(this.allowRedirects=!1));let d=new nC(o,c,Object.freeze(sA({},this.urlTree.queryParams)),this.urlTree.fragment,dj(n),wg(n),n.component??n._loadedComponent??null,n,Bj(n)),B=B8(d,s,this.paramsInheritanceStrategy);d.params=Object.freeze(B.params),d.data=Object.freeze(B.data);let E=this.applyRedirects.applyRedirectCommands(g,n.redirectTo,I,d,e);return this.applyRedirects.lineralizeSegments(n,E).pipe(or(u=>this.processSegment(e,i,A,u.concat(C),r,!1,s)))}matchSegmentAgainstRoute(e,A,i,n,o,r){let s=q4A(A,i,n,e,this.urlSerializer);return i.path==="**"&&(A.children={}),s.pipe($n(a=>a.matched?(e=i._injector??e,this.getChildConfig(e,i,n).pipe($n(({routes:c})=>{let g=i._loadedInjector??e,{parameters:I,consumedSegments:C,remainingSegments:d}=a,B=new nC(C,I,Object.freeze(sA({},this.urlTree.queryParams)),this.urlTree.fragment,dj(i),wg(i),i.component??i._loadedComponent??null,i,Bj(i)),E=B8(B,r,this.paramsInheritanceStrategy);B.params=Object.freeze(E.params),B.data=Object.freeze(E.data);let{segmentGroup:u,slicedSegments:h}=Cj(A,C,d,c);if(h.length===0&&u.hasChildren())return this.processChildren(g,c,u,B).pipe(je(x=>new rc(B,x)));if(c.length===0&&h.length===0)return Ce(new rc(B,[]));let w=wg(i)===o;return this.processSegment(g,c,u,h,w?wi:o,!0,B).pipe(je(x=>new rc(B,x instanceof rc?[x]:[])))}))):wB(A)))}getChildConfig(e,A,i){return A.children?Ce({routes:A.children,injector:e}):A.loadChildren?A._loadedRoutes!==void 0?Ce({routes:A._loadedRoutes,injector:A._loadedInjector}):O4A(e,A,i,this.urlSerializer).pipe(or(n=>n?this.configLoader.loadChildren(e,A).pipe(So(o=>{A._loadedRoutes=o.routes,A._loadedInjector=o.injector})):j4A(A))):Ce({routes:[],injector:e})}};function i3A(t){t.sort((e,A)=>e.value.outlet===wi?-1:A.value.outlet===wi?1:e.value.outlet.localeCompare(A.value.outlet))}function n3A(t){let e=t.value.routeConfig;return e&&e.path===""}function Tj(t){let e=[],A=new Set;for(let i of t){if(!n3A(i)){e.push(i);continue}let n=e.find(o=>i.value.routeConfig===o.value.routeConfig);n!==void 0?(n.children.push(...i.children),A.add(n)):e.push(i)}for(let i of A){let n=Tj(i.children);e.push(new rc(i.value,n))}return e.filter(i=>!A.has(i))}function dj(t){return t.data||{}}function Bj(t){return t.resolve||{}}function o3A(t,e,A,i,n,o){return or(r=>e3A(t,e,A,i,r.extractedUrl,n,o).pipe(je(({state:s,tree:a})=>Fe(sA({},r),{targetSnapshot:s,urlAfterRedirects:a}))))}function r3A(t,e){return or(A=>{let{targetSnapshot:i,guards:{canActivateChecks:n}}=A;if(!n.length)return Ce(A);let o=new Set(n.map(a=>a.route)),r=new Set;for(let a of o)if(!r.has(a))for(let c of Hj(a))r.add(c);let s=0;return ro(r).pipe(tl(a=>o.has(a)?s3A(a,i,t,e):(a.data=B8(a,a.parent,t).resolve,Ce(void 0))),So(()=>s++),yd(1),or(a=>s===r.size?Ce(A):lr))})}function Hj(t){let e=t.children.map(A=>Hj(A)).flat();return[t,...e]}function s3A(t,e,A,i){let n=t.routeConfig,o=t._resolve;return n?.title!==void 0&&!Nj(n)&&(o[Gh]=n.title),a3A(o,t,e,i).pipe(je(r=>(t._resolvedData=r,t.data=B8(t,t.parent,A).resolve,null)))}function a3A(t,e,A,i){let n=bS(t);if(n.length===0)return Ce({});let o={};return ro(n).pipe(or(r=>c3A(t[r],e,A,i).pipe(ol(),So(s=>{if(s instanceof xB)throw E8(new H2,s);o[r]=s}))),yd(1),je(()=>o),Gr(r=>Uj(r)?lr:d2(r)))}function c3A(t,e,A,i){let n=Kh(e)??i,o=FB(t,n),r=o.resolve?o.resolve(e,A):da(n,()=>o(e,A));return z2(r)}function vS(t){return $n(e=>{let A=t(e);return A?ro(A).pipe(je(()=>e)):Ce(e)})}var PS=(()=>{class t{buildTitle(A){let i,n=A.root;for(;n!==void 0;)i=this.getResolvedTitleForRoute(n)??i,n=n.children.find(o=>o.outlet===wi);return i}getResolvedTitleForRoute(A){return A.data[Gh]}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(Oj),providedIn:"root"})}return t})(),Oj=(()=>{class t extends PS{title;constructor(A){super(),this.title=A}updateTitle(A){let i=this.buildTitle(A);i!==void 0&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||t)(be(lP))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),aC=new eA("",{providedIn:"root",factory:()=>({})}),_B=new eA(""),f8=(()=>{class t{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=f(oO);loadComponent(A){if(this.componentLoaders.get(A))return this.componentLoaders.get(A);if(A._loadedComponent)return Ce(A._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(A);let i=z2(A.loadComponent()).pipe(je(Pj),So(o=>{this.onLoadEndListener&&this.onLoadEndListener(A),A._loadedComponent=o}),nl(()=>{this.componentLoaders.delete(A)})),n=new C2(i,()=>new qA).pipe(ud());return this.componentLoaders.set(A,n),n}loadChildren(A,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return Ce({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);let o=zj(i,this.compiler,A,this.onLoadEndListener).pipe(nl(()=>{this.childrenLoaders.delete(i)})),r=new C2(o,()=>new qA).pipe(ud());return this.childrenLoaders.set(i,r),r}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function zj(t,e,A,i){return z2(t.loadChildren()).pipe(je(Pj),or(n=>n instanceof ub||Array.isArray(n)?Ce(n):ro(e.compileModuleAsync(n))),je(n=>{i&&i(t);let o,r,s=!1;return Array.isArray(n)?(r=n,s=!0):(o=n.create(A).injector,r=o.get(_B,[],{optional:!0,self:!0}).flat()),{routes:r.map(zS),injector:o}}))}function g3A(t){return t&&typeof t=="object"&&"default"in t}function Pj(t){return g3A(t)?t.default:t}var m8=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(l3A),providedIn:"root"})}return t})(),l3A=(()=>{class t{shouldProcessUrl(A){return!0}extract(A){return A}merge(A,i){return A}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),jS=new eA(""),qS=new eA("");function jj(t,e,A){let i=t.get(qS),n=t.get(at);return t.get(ye).runOutsideAngular(()=>{if(!n.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,new Promise(c=>setTimeout(c));let o,r=new Promise(c=>{o=c}),s=n.startViewTransition(()=>(o(),I3A(t))),{onViewTransitionCreated:a}=i;return a&&da(t,()=>a({transition:s,from:e,to:A})),r})}function I3A(t){return new Promise(e=>{Ir({read:()=>setTimeout(e)},{injector:t})})}var VS=new eA(""),p8=(()=>{class t{currentNavigation=null;currentTransition=null;lastSuccessfulNavigation=null;events=new qA;transitionAbortSubject=new qA;configLoader=f(f8);environmentInjector=f(vr);destroyRef=f(f0);urlSerializer=f(rC);rootContexts=f(sC);location=f(ha);inputBindingEnabled=f(Uh,{optional:!0})!==null;titleStrategy=f(PS);options=f(aC,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=f(m8);createViewTransition=f(jS,{optional:!0});navigationErrorHandler=f(VS,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>Ce(void 0);rootComponentType=null;destroyed=!1;constructor(){let A=n=>this.events.next(new s8(n)),i=n=>this.events.next(new a8(n));this.configLoader.onLoadEndListener=i,this.configLoader.onLoadStartListener=A,this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(A){let i=++this.navigationId;this.transitions?.next(Fe(sA({},A),{extractedUrl:this.urlHandlingStrategy.extract(A.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:i}))}setupNavigations(A){return this.transitions=new Fi(null),this.transitions.pipe(Nt(i=>i!==null),$n(i=>{let n=!1,o=!1;return Ce(i).pipe($n(r=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",Da.SupersededByNewNavigation),lr;this.currentTransition=i,this.currentNavigation={id:r.id,initialUrl:r.rawUrl,extractedUrl:r.extractedUrl,targetBrowserUrl:typeof r.extras.browserUrl=="string"?this.urlSerializer.parse(r.extras.browserUrl):r.extras.browserUrl,trigger:r.source,extras:r.extras,previousNavigation:this.lastSuccessfulNavigation?Fe(sA({},this.lastSuccessfulNavigation),{previousNavigation:null}):null};let s=!A.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),a=r.extras.onSameUrlNavigation??A.onSameUrlNavigation;if(!s&&a!=="reload"){let c="";return this.events.next(new yl(r.id,this.urlSerializer.serialize(r.rawUrl),c,kB.IgnoredSameUrlNavigation)),r.resolve(!1),lr}if(this.urlHandlingStrategy.shouldProcessUrl(r.rawUrl))return Ce(r).pipe($n(c=>(this.events.next(new O2(c.id,this.urlSerializer.serialize(c.extractedUrl),c.source,c.restoredState)),c.id!==this.navigationId?lr:Promise.resolve(c))),o3A(this.environmentInjector,this.configLoader,this.rootComponentType,A.config,this.urlSerializer,this.paramsInheritanceStrategy),So(c=>{i.targetSnapshot=c.targetSnapshot,i.urlAfterRedirects=c.urlAfterRedirects,this.currentNavigation=Fe(sA({},this.currentNavigation),{finalUrl:c.urlAfterRedirects});let g=new Sh(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(g)}));if(s&&this.urlHandlingStrategy.shouldProcessUrl(r.currentRawUrl)){let{id:c,extractedUrl:g,source:I,restoredState:C,extras:d}=r,B=new O2(c,this.urlSerializer.serialize(g),I,C);this.events.next(B);let E=Lj(this.rootComponentType).snapshot;return this.currentTransition=i=Fe(sA({},r),{targetSnapshot:E,urlAfterRedirects:g,extras:Fe(sA({},d),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.finalUrl=g,Ce(i)}else{let c="";return this.events.next(new yl(r.id,this.urlSerializer.serialize(r.extractedUrl),c,kB.IgnoredByUrlHandlingStrategy)),r.resolve(!1),lr}}),So(r=>{let s=new i8(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects),r.targetSnapshot);this.events.next(s)}),je(r=>(this.currentTransition=i=Fe(sA({},r),{guards:y4A(r.targetSnapshot,r.currentSnapshot,this.rootContexts)}),i)),_4A(this.environmentInjector,r=>this.events.next(r)),So(r=>{if(i.guardsResult=r.guardsResult,r.guardsResult&&typeof r.guardsResult!="boolean")throw E8(this.urlSerializer,r.guardsResult);let s=new n8(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects),r.targetSnapshot,!!r.guardsResult);this.events.next(s)}),Nt(r=>r.guardsResult?!0:(this.cancelNavigationTransition(r,"",Da.GuardRejected),!1)),vS(r=>{if(r.guards.canActivateChecks.length!==0)return Ce(r).pipe(So(s=>{let a=new o8(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(a)}),$n(s=>{let a=!1;return Ce(s).pipe(r3A(this.paramsInheritanceStrategy,this.environmentInjector),So({next:()=>a=!0,complete:()=>{a||this.cancelNavigationTransition(s,"",Da.NoDataFromResolver)}}))}),So(s=>{let a=new r8(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(a)}))}),vS(r=>{let s=a=>{let c=[];a.routeConfig?.loadComponent&&!a.routeConfig._loadedComponent&&c.push(this.configLoader.loadComponent(a.routeConfig).pipe(So(g=>{a.component=g}),je(()=>{})));for(let g of a.children)c.push(...s(g));return c};return ga(s(r.targetSnapshot.root)).pipe(u2(null),Xn(1))}),vS(()=>this.afterPreactivation()),$n(()=>{let{currentSnapshot:r,targetSnapshot:s}=i,a=this.createViewTransition?.(this.environmentInjector,r.root,s.root);return a?ro(a).pipe(je(()=>i)):Ce(i)}),je(r=>{let s=f4A(A.routeReuseStrategy,r.targetSnapshot,r.currentRouterState);return this.currentTransition=i=Fe(sA({},r),{targetRouterState:s}),this.currentNavigation.targetRouterState=s,i}),So(()=>{this.events.next(new Rh)}),w4A(this.rootContexts,A.routeReuseStrategy,r=>this.events.next(r),this.inputBindingEnabled),Xn(1),So({next:r=>{n=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new ac(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects))),this.titleStrategy?.updateTitle(r.targetRouterState.snapshot),r.resolve(!0)},complete:()=>{n=!0}}),kt(this.transitionAbortSubject.pipe(So(r=>{throw r}))),nl(()=>{!n&&!o&&this.cancelNavigationTransition(i,"",Da.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation=null,this.currentTransition=null)}),Gr(r=>{if(this.destroyed)return i.resolve(!1),lr;if(o=!0,Kj(r))this.events.next(new Dl(i.id,this.urlSerializer.serialize(i.extractedUrl),r.message,r.cancellationCode)),D4A(r)?this.events.next(new LB(r.url,r.navigationBehaviorOptions)):i.resolve(!1);else{let s=new SB(i.id,this.urlSerializer.serialize(i.extractedUrl),r,i.targetSnapshot??void 0);try{let a=da(this.environmentInjector,()=>this.navigationErrorHandler?.(s));if(a instanceof xB){let{message:c,cancellationCode:g}=E8(this.urlSerializer,a);this.events.next(new Dl(i.id,this.urlSerializer.serialize(i.extractedUrl),c,g)),this.events.next(new LB(a.redirectTo,a.navigationBehaviorOptions))}else throw this.events.next(s),r}catch(a){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(a)}}return lr}))}))}cancelNavigationTransition(A,i,n){let o=new Dl(A.id,this.urlSerializer.serialize(A.extractedUrl),i,n);this.events.next(o),A.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let A=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=this.currentNavigation?.targetBrowserUrl??this.currentNavigation?.extractedUrl;return A.toString()!==i?.toString()&&!this.currentNavigation?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function C3A(t){return t!==A8}var qj=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(d3A),providedIn:"root"})}return t})(),u8=class{shouldDetach(e){return!1}store(e,A){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,A){return e.routeConfig===A.routeConfig}},d3A=(()=>{class t extends u8{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Vj=(()=>{class t{urlSerializer=f(rC);options=f(aC,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=f(ha);urlHandlingStrategy=f(m8);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new wl;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:A,initialUrl:i,targetBrowserUrl:n}){let o=A!==void 0?this.urlHandlingStrategy.merge(A,i):i,r=n??o;return r instanceof wl?this.urlSerializer.serialize(r):r}commitTransition({targetRouterState:A,finalUrl:i,initialUrl:n}){i&&A?(this.currentUrlTree=i,this.rawUrlTree=this.urlHandlingStrategy.merge(i,n),this.routerState=A):this.rawUrlTree=n}routerState=Lj(null);getRouterState(){return this.routerState}stateMemento=this.createStateMemento();updateStateMemento(){this.stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}resetInternalState({finalUrl:A}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,A??this.rawUrlTree)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:()=>f(B3A),providedIn:"root"})}return t})(),B3A=(()=>{class t extends Vj{currentPageId=0;lastSuccessfulId=-1;restoredState(){return this.location.getState()}get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(A){return this.location.subscribe(i=>{i.type==="popstate"&&setTimeout(()=>{A(i.url,i.state,"popstate")})})}handleRouterEvent(A,i){A instanceof O2?this.updateStateMemento():A instanceof yl?this.commitTransition(i):A instanceof Sh?this.urlUpdateStrategy==="eager"&&(i.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(i),i)):A instanceof Rh?(this.commitTransition(i),this.urlUpdateStrategy==="deferred"&&!i.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(i),i)):A instanceof Dl&&(A.code===Da.GuardRejected||A.code===Da.NoDataFromResolver)?this.restoreHistory(i):A instanceof SB?this.restoreHistory(i,!0):A instanceof ac&&(this.lastSuccessfulId=A.id,this.currentPageId=this.browserPageId)}setBrowserUrl(A,{extras:i,id:n}){let{replaceUrl:o,state:r}=i;if(this.location.isCurrentPathEqualTo(A)||o){let s=this.browserPageId,a=sA(sA({},r),this.generateNgRouterState(n,s));this.location.replaceState(A,"",a)}else{let s=sA(sA({},r),this.generateNgRouterState(n,this.browserPageId+1));this.location.go(A,"",s)}}restoreHistory(A,i=!1){if(this.canceledNavigationResolution==="computed"){let n=this.browserPageId,o=this.currentPageId-n;o!==0?this.location.historyGo(o):this.getCurrentUrlTree()===A.finalUrl&&o===0&&(this.resetInternalState(A),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(i&&this.resetInternalState(A),this.resetUrlToCurrentUrlTree())}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(A,i){return this.canceledNavigationResolution==="computed"?{navigationId:A,\u0275routerPageId:i}:{navigationId:A}}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function D8(t,e){t.events.pipe(Nt(A=>A instanceof ac||A instanceof Dl||A instanceof SB||A instanceof yl),je(A=>A instanceof ac||A instanceof yl?0:(A instanceof Dl?A.code===Da.Redirect||A.code===Da.SupersededByNewNavigation:!1)?2:1),Nt(A=>A!==2),Xn(1)).subscribe(()=>{e()})}var E3A={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Q3A={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"},vl=(()=>{class t{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=f(mb);stateManager=f(Vj);options=f(aC,{optional:!0})||{};pendingTasks=f(m0);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=f(p8);urlSerializer=f(rC);location=f(ha);urlHandlingStrategy=f(m8);_events=new qA;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=f(qj);onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=f(_B,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!f(Uh,{optional:!0});constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:A=>{this.console.warn(A)}}),this.subscribeToNavigationEvents()}eventsSubscription=new Kt;subscribeToNavigationEvents(){let A=this.navigationTransitions.events.subscribe(i=>{try{let n=this.navigationTransitions.currentTransition,o=this.navigationTransitions.currentNavigation;if(n!==null&&o!==null){if(this.stateManager.handleRouterEvent(i,o),i instanceof Dl&&i.code!==Da.Redirect&&i.code!==Da.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof ac)this.navigated=!0;else if(i instanceof LB){let r=i.navigationBehaviorOptions,s=this.urlHandlingStrategy.merge(i.url,n.currentRawUrl),a=sA({browserUrl:n.extras.browserUrl,info:n.extras.info,skipLocationChange:n.extras.skipLocationChange,replaceUrl:n.extras.replaceUrl||this.urlUpdateStrategy==="eager"||C3A(n.source)},r);this.scheduleNavigation(s,A8,null,a,{resolve:n.resolve,reject:n.reject,promise:n.promise})}}h3A(i)&&this._events.next(i)}catch(n){this.navigationTransitions.transitionAbortSubject.next(n)}});this.eventsSubscription.add(A)}resetRootComponentType(A){this.routerState.root.component=A,this.navigationTransitions.rootComponentType=A}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),A8,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((A,i,n)=>{this.navigateToSyncWithBrowser(A,n,i)})}navigateToSyncWithBrowser(A,i,n){let o={replaceUrl:!0},r=n?.navigationId?n:null;if(n){let a=sA({},n);delete a.navigationId,delete a.\u0275routerPageId,Object.keys(a).length!==0&&(o.state=a)}let s=this.parseUrl(A);this.scheduleNavigation(s,i,r,o)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(A){this.config=A.map(zS),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(A,i={}){let{relativeTo:n,queryParams:o,fragment:r,queryParamsHandling:s,preserveFragment:a}=i,c=a?this.currentUrlTree.fragment:r,g=null;switch(s??this.options.defaultQueryParamsHandling){case"merge":g=sA(sA({},this.currentUrlTree.queryParams),o);break;case"preserve":g=this.currentUrlTree.queryParams;break;default:g=o||null}g!==null&&(g=this.removeEmptyProps(g));let I;try{let C=n?n.snapshot:this.routerState.snapshot.root;I=bj(C)}catch{(typeof A[0]!="string"||A[0][0]!=="/")&&(A=[]),I=this.currentUrlTree.root}return kj(I,A,g,c??null)}navigateByUrl(A,i={skipLocationChange:!1}){let n=bB(A)?A:this.parseUrl(A),o=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(o,A8,null,i)}navigate(A,i={skipLocationChange:!1}){return u3A(A),this.navigateByUrl(this.createUrlTree(A,i),i)}serializeUrl(A){return this.urlSerializer.serialize(A)}parseUrl(A){try{return this.urlSerializer.parse(A)}catch{return this.urlSerializer.parse("/")}}isActive(A,i){let n;if(i===!0?n=sA({},E3A):i===!1?n=sA({},Q3A):n=i,bB(A))return cj(this.currentUrlTree,A,n);let o=this.parseUrl(A);return cj(this.currentUrlTree,o,n)}removeEmptyProps(A){return Object.entries(A).reduce((i,[n,o])=>(o!=null&&(i[n]=o),i),{})}scheduleNavigation(A,i,n,o,r){if(this.disposed)return Promise.resolve(!1);let s,a,c;r?(s=r.resolve,a=r.reject,c=r.promise):c=new Promise((I,C)=>{s=I,a=C});let g=this.pendingTasks.add();return D8(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(g))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:n,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:A,extras:o,resolve:s,reject:a,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(I=>Promise.reject(I))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function u3A(t){for(let e=0;e{class t{router;injector;preloadingStrategy;loader;subscription;constructor(A,i,n,o){this.router=A,this.injector=i,this.preloadingStrategy=n,this.loader=o}setUpPreloading(){this.subscription=this.router.events.pipe(Nt(A=>A instanceof ac),tl(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(A,i){let n=[];for(let o of i){o.providers&&!o._injector&&(o._injector=Nu(o.providers,A,`Route: ${o.path}`));let r=o._injector??A,s=o._loadedInjector??r;(o.loadChildren&&!o._loadedRoutes&&o.canLoad===void 0||o.loadComponent&&!o._loadedComponent)&&n.push(this.preloadConfig(r,o)),(o.children||o._loadedRoutes)&&n.push(this.processRoutes(s,o.children??o._loadedRoutes))}return ro(n).pipe(E2())}preloadConfig(A,i){return this.preloadingStrategy.preload(i,()=>{let n;i.loadChildren&&i.canLoad===void 0?n=this.loader.loadChildren(A,i):n=Ce(null);let o=n.pipe(or(r=>r===null?Ce(void 0):(i._loadedRoutes=r.routes,i._loadedInjector=r.injector,this.processRoutes(r.injector??A,r.routes))));if(i.loadComponent&&!i._loadedComponent){let r=this.loader.loadComponent(i);return ro([o,r]).pipe(E2())}else return o})}static \u0275fac=function(i){return new(i||t)(be(vl),be(vr),be(Yh),be(f8))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Wj=new eA(""),f3A=(()=>{class t{urlSerializer;transitions;viewportScroller;zone;options;routerEventsSubscription;scrollEventsSubscription;lastId=0;lastSource="imperative";restoredId=0;store={};constructor(A,i,n,o,r={}){this.urlSerializer=A,this.transitions=i,this.viewportScroller=n,this.zone=o,this.options=r,r.scrollPositionRestoration||="disabled",r.anchorScrolling||="disabled"}init(){this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(A=>{A instanceof O2?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=A.navigationTrigger,this.restoredId=A.restoredState?A.restoredState.navigationId:0):A instanceof ac?(this.lastId=A.id,this.scheduleScrollEvent(A,this.urlSerializer.parse(A.urlAfterRedirects).fragment)):A instanceof yl&&A.code===kB.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(A,this.urlSerializer.parse(A.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(A=>{A instanceof RB&&(A.position?this.options.scrollPositionRestoration==="top"?this.viewportScroller.scrollToPosition([0,0]):this.options.scrollPositionRestoration==="enabled"&&this.viewportScroller.scrollToPosition(A.position):A.anchor&&this.options.anchorScrolling==="enabled"?this.viewportScroller.scrollToAnchor(A.anchor):this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(A,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new RB(A,this.lastSource==="popstate"?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static \u0275fac=function(i){IH()};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();function m3A(t){return t.routerState.root}function Th(t,e){return{\u0275kind:t,\u0275providers:e}}function p3A(){let t=f(Zt);return e=>{let A=t.get(Ca);if(e!==A.components[0])return;let i=t.get(vl),n=t.get(Xj);t.get(WS)===1&&i.initialNavigation(),t.get(eq,null,bi.Optional)?.setUpPreloading(),t.get(Wj,null,bi.Optional)?.init(),i.resetRootComponentType(A.componentTypes[0]),n.closed||(n.next(),n.complete(),n.unsubscribe())}}var Xj=new eA("",{factory:()=>new qA}),WS=new eA("",{providedIn:"root",factory:()=>1});function $j(){let t=[{provide:WS,useValue:0},yb(()=>{let e=f(Zt);return e.get(_b,Promise.resolve()).then(()=>new Promise(i=>{let n=e.get(vl),o=e.get(Xj);D8(n,()=>{i(!0)}),e.get(p8).afterPreactivation=()=>(i(!0),o.closed?Ce(void 0):o),n.initialNavigation()}))})];return Th(2,t)}function Aq(){let t=[yb(()=>{f(vl).setUpLocationChangeListener()}),{provide:WS,useValue:2}];return Th(3,t)}var eq=new eA("");function tq(t){return Th(0,[{provide:eq,useExisting:Zj},{provide:Yh,useExisting:t}])}function iq(){return Th(8,[HS,{provide:Uh,useExisting:HS}])}function nq(t){Cg("NgRouterViewTransitions");let e=[{provide:jS,useValue:jj},{provide:qS,useValue:sA({skipNextTransition:!!t?.skipInitialTransition},t)}];return Th(9,e)}var oq=[ha,{provide:rC,useClass:H2},vl,sC,{provide:xc,useFactory:m3A,deps:[vl]},f8,[]],w8=(()=>{class t{constructor(){}static forRoot(A,i){return{ngModule:t,providers:[oq,[],{provide:_B,multi:!0,useValue:A},[],i?.errorHandler?{provide:VS,useValue:i.errorHandler}:[],{provide:aC,useValue:i||{}},i?.useHash?w3A():y3A(),D3A(),i?.preloadingStrategy?tq(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?v3A(i):[],i?.bindToComponentInputs?iq().\u0275providers:[],i?.enableViewTransitions?nq().\u0275providers:[],M3A()]}}static forChild(A){return{ngModule:t,providers:[{provide:_B,multi:!0,useValue:A}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();function D3A(){return{provide:Wj,useFactory:()=>{let t=f(fO),e=f(ye),A=f(aC),i=f(p8),n=f(rC);return A.scrollOffset&&t.setOffset(A.scrollOffset),new f3A(n,i,t,e,A)}}}function w3A(){return{provide:D0,useClass:Jb}}function y3A(){return{provide:D0,useClass:kp}}function v3A(t){return[t.initialNavigation==="disabled"?Aq().\u0275providers:[],t.initialNavigation==="enabledBlocking"?$j().\u0275providers:[]]}var ZS=new eA("");function M3A(){return[{provide:ZS,useFactory:p3A},{provide:vb,multi:!0,useExisting:ZS}]}var k3A=["*"];var S3A=new eA("MAT_CARD_CONFIG"),y8=(()=>{class t{appearance;constructor(){let A=f(S3A,{optional:!0});this.appearance=A?.appearance||"raised"}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,n){i&2&&he("mat-mdc-card-outlined",n.appearance==="outlined")("mdc-card--outlined",n.appearance==="outlined")},inputs:{appearance:"appearance"},exportAs:["matCard"],ngContentSelectors:k3A,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},styles:['.mat-mdc-card{display:flex;flex-direction:column;box-sizing:border-box;position:relative;border-style:solid;border-width:0;background-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium));box-shadow:var(--mdc-elevated-card-container-elevation, var(--mat-sys-level1))}.mat-mdc-card::after{position:absolute;top:0;left:0;width:100%;height:100%;border:solid 1px rgba(0,0,0,0);content:"";display:block;pointer-events:none;box-sizing:border-box;border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium))}.mat-mdc-card-outlined{background-color:var(--mdc-outlined-card-container-color, var(--mat-sys-surface));border-radius:var(--mdc-outlined-card-container-shape, var(--mat-sys-corner-medium));border-width:var(--mdc-outlined-card-outline-width, 1px);border-color:var(--mdc-outlined-card-outline-color, var(--mat-sys-outline-variant));box-shadow:var(--mdc-outlined-card-container-elevation, var(--mat-sys-level0))}.mat-mdc-card-outlined::after{border:none}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mat-mdc-card-actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font, var(--mat-sys-title-large-font));line-height:var(--mat-card-title-text-line-height, var(--mat-sys-title-large-line-height));font-size:var(--mat-card-title-text-size, var(--mat-sys-title-large-size));letter-spacing:var(--mat-card-title-text-tracking, var(--mat-sys-title-large-tracking));font-weight:var(--mat-card-title-text-weight, var(--mat-sys-title-large-weight))}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color, var(--mat-sys-on-surface));font-family:var(--mat-card-subtitle-text-font, var(--mat-sys-title-medium-font));line-height:var(--mat-card-subtitle-text-line-height, var(--mat-sys-title-medium-line-height));font-size:var(--mat-card-subtitle-text-size, var(--mat-sys-title-medium-size));letter-spacing:var(--mat-card-subtitle-text-tracking, var(--mat-sys-title-medium-tracking));font-weight:var(--mat-card-subtitle-text-weight, var(--mat-sys-title-medium-weight))}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end}'],encapsulation:2,changeDetection:0})}return t})();var rq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,pn]})}return t})();var v8=class{};function M8(t){return t&&typeof t.connect=="function"&&!(t instanceof C2)}var GB=function(t){return t[t.REPLACED=0]="REPLACED",t[t.INSERTED=1]="INSERTED",t[t.MOVED=2]="MOVED",t[t.REMOVED=3]="REMOVED",t}(GB||{}),Hh=new eA("_ViewRepeater"),KB=class{applyChanges(e,A,i,n,o){e.forEachOperation((r,s,a)=>{let c,g;if(r.previousIndex==null){let I=i(r,s,a);c=A.createEmbeddedView(I.templateRef,I.context,I.index),g=GB.INSERTED}else a==null?(A.remove(s),g=GB.REMOVED):(c=A.get(s),A.move(c,a),g=GB.MOVED);o&&o({context:c?.context,operation:g,record:r})})}detach(){}};var P2=class{_multiple;_emitChanges;compareWith;_selection=new Set;_deselectedToEmit=[];_selectedToEmit=[];_selected;get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}changed=new qA;constructor(e=!1,A,i=!0,n){this._multiple=e,this._emitChanges=i,this.compareWith=n,A&&A.length&&(e?A.forEach(o=>this._markSelected(o)):this._markSelected(A[0]),this._selectedToEmit.length=0)}select(...e){this._verifyValueAssignment(e),e.forEach(i=>this._markSelected(i));let A=this._hasQueuedChanges();return this._emitChangeEvent(),A}deselect(...e){this._verifyValueAssignment(e),e.forEach(i=>this._unmarkSelected(i));let A=this._hasQueuedChanges();return this._emitChangeEvent(),A}setSelection(...e){this._verifyValueAssignment(e);let A=this.selected,i=new Set(e);e.forEach(o=>this._markSelected(o)),A.filter(o=>!i.has(this._getConcreteValue(o,i))).forEach(o=>this._unmarkSelected(o));let n=this._hasQueuedChanges();return this._emitChangeEvent(),n}toggle(e){return this.isSelected(e)?this.deselect(e):this.select(e)}clear(e=!0){this._unmarkAll();let A=this._hasQueuedChanges();return e&&this._emitChangeEvent(),A}isSelected(e){return this._selection.has(this._getConcreteValue(e))}isEmpty(){return this._selection.size===0}hasValue(){return!this.isEmpty()}sort(e){this._multiple&&this.selected&&this._selected.sort(e)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(e){e=this._getConcreteValue(e),this.isSelected(e)||(this._multiple||this._unmarkAll(),this.isSelected(e)||this._selection.add(e),this._emitChanges&&this._selectedToEmit.push(e))}_unmarkSelected(e){e=this._getConcreteValue(e),this.isSelected(e)&&(this._selection.delete(e),this._emitChanges&&this._deselectedToEmit.push(e))}_unmarkAll(){this.isEmpty()||this._selection.forEach(e=>this._unmarkSelected(e))}_verifyValueAssignment(e){e.length>1&&this._multiple}_hasQueuedChanges(){return!!(this._deselectedToEmit.length||this._selectedToEmit.length)}_getConcreteValue(e,A){if(this.compareWith){A=A??this._selection;for(let i of A)if(this.compareWith(e,i))return i;return e}else return e}};var b8=(()=>{class t{_listeners=[];notify(A,i){for(let n of this._listeners)n(A,i)}listen(A){return this._listeners.push(A),()=>{this._listeners=this._listeners.filter(i=>A!==i)}}ngOnDestroy(){this._listeners=[]}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var L3A=20,q2=(()=>{class t{_ngZone=f(ye);_platform=f(ni);_renderer=f(Ms).createRenderer(null,null);_cleanupGlobalListener;constructor(){}_scrolled=new qA;_scrolledCount=0;scrollContainers=new Map;register(A){this.scrollContainers.has(A)||this.scrollContainers.set(A,A.elementScrolled().subscribe(()=>this._scrolled.next(A)))}deregister(A){let i=this.scrollContainers.get(A);i&&(i.unsubscribe(),this.scrollContainers.delete(A))}scrolled(A=L3A){return this._platform.isBrowser?new gt(i=>{this._cleanupGlobalListener||(this._cleanupGlobalListener=this._ngZone.runOutsideAngular(()=>this._renderer.listen("document","scroll",()=>this._scrolled.next())));let n=A>0?this._scrolled.pipe(Dd(A)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{n.unsubscribe(),this._scrolledCount--,this._scrolledCount||(this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0)}}):Ce()}ngOnDestroy(){this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0,this.scrollContainers.forEach((A,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(A,i){let n=this.getAncestorScrollContainers(A);return this.scrolled(i).pipe(Nt(o=>!o||n.indexOf(o)>-1))}getAncestorScrollContainers(A){let i=[];return this.scrollContainers.forEach((n,o)=>{this._scrollableContainsElement(o,A)&&i.push(o)}),i}_scrollableContainsElement(A,i){let n=fa(i),o=A.getElementRef().nativeElement;do if(n==o)return!0;while(n=n.parentElement);return!1}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),k0=(()=>{class t{elementRef=f(se);scrollDispatcher=f(q2);ngZone=f(ye);dir=f(po,{optional:!0});_scrollElement=this.elementRef.nativeElement;_destroyed=new qA;_renderer=f(qi);_cleanupScroll;_elementScrolled=new qA;constructor(){}ngOnInit(){this._cleanupScroll=this.ngZone.runOutsideAngular(()=>this._renderer.listen(this._scrollElement,"scroll",A=>this._elementScrolled.next(A))),this.scrollDispatcher.register(this)}ngOnDestroy(){this._cleanupScroll?.(),this._elementScrolled.complete(),this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(A){let i=this.elementRef.nativeElement,n=this.dir&&this.dir.value=="rtl";A.left==null&&(A.left=n?A.end:A.start),A.right==null&&(A.right=n?A.start:A.end),A.bottom!=null&&(A.top=i.scrollHeight-i.clientHeight-A.bottom),n&&lB()!=hg.NORMAL?(A.left!=null&&(A.right=i.scrollWidth-i.clientWidth-A.left),lB()==hg.INVERTED?A.left=A.right:lB()==hg.NEGATED&&(A.left=A.right?-A.right:A.right)):A.right!=null&&(A.left=i.scrollWidth-i.clientWidth-A.right),this._applyScrollToOptions(A)}_applyScrollToOptions(A){let i=this.elementRef.nativeElement;$p()?i.scrollTo(A):(A.top!=null&&(i.scrollTop=A.top),A.left!=null&&(i.scrollLeft=A.left))}measureScrollOffset(A){let i="left",n="right",o=this.elementRef.nativeElement;if(A=="top")return o.scrollTop;if(A=="bottom")return o.scrollHeight-o.clientHeight-o.scrollTop;let r=this.dir&&this.dir.value=="rtl";return A=="start"?A=r?n:i:A=="end"&&(A=r?i:n),r&&lB()==hg.INVERTED?A==i?o.scrollWidth-o.clientWidth-o.scrollLeft:o.scrollLeft:r&&lB()==hg.NEGATED?A==i?o.scrollLeft+o.scrollWidth-o.clientWidth:-o.scrollLeft:A==i?o.scrollLeft:o.scrollWidth-o.clientWidth-o.scrollLeft}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return t})(),x3A=20,Nc=(()=>{class t{_platform=f(ni);_listeners;_viewportSize;_change=new qA;_document=f(at,{optional:!0});constructor(){let A=f(ye),i=f(Ms).createRenderer(null,null);A.runOutsideAngular(()=>{if(this._platform.isBrowser){let n=o=>this._change.next(o);this._listeners=[i.listen("window","resize",n),i.listen("window","orientationchange",n)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(A=>A()),this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();let A={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),A}getViewportRect(){let A=this.getViewportScrollPosition(),{width:i,height:n}=this.getViewportSize();return{top:A.top,left:A.left,bottom:A.top+n,right:A.left+i,height:n,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};let A=this._document,i=this._getWindow(),n=A.documentElement,o=n.getBoundingClientRect(),r=-o.top||A.body.scrollTop||i.scrollY||n.scrollTop||0,s=-o.left||A.body.scrollLeft||i.scrollX||n.scrollLeft||0;return{top:r,left:s}}change(A=x3A){return A>0?this._change.pipe(Dd(A)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){let A=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:A.innerWidth,height:A.innerHeight}:{width:0,height:0}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var j2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})(),k8=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[G2,j2,G2,j2]})}return t})();var Oh=class{_attachedHost;attach(e){return this._attachedHost=e,e.attach(this)}detach(){let e=this._attachedHost;e!=null&&(this._attachedHost=null,e.detach())}get isAttached(){return this._attachedHost!=null}setAttachedHost(e){this._attachedHost=e}},yg=class extends Oh{component;viewContainerRef;injector;componentFactoryResolver;projectableNodes;constructor(e,A,i,n,o){super(),this.component=e,this.viewContainerRef=A,this.injector=i,this.projectableNodes=o}},Rs=class extends Oh{templateRef;viewContainerRef;context;injector;constructor(e,A,i,n){super(),this.templateRef=e,this.viewContainerRef=A,this.context=i,this.injector=n}get origin(){return this.templateRef.elementRef}attach(e,A=this.context){return this.context=A,super.attach(e)}detach(){return this.context=void 0,super.detach()}},XS=class extends Oh{element;constructor(e){super(),this.element=e instanceof se?e.nativeElement:e}},V2=class{_attachedPortal;_disposeFn;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(e){if(e instanceof yg)return this._attachedPortal=e,this.attachComponentPortal(e);if(e instanceof Rs)return this._attachedPortal=e,this.attachTemplatePortal(e);if(this.attachDomPortal&&e instanceof XS)return this._attachedPortal=e,this.attachDomPortal(e)}attachDomPortal=null;detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(e){this._disposeFn=e}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}};var zh=class extends V2{outletElement;_appRef;_defaultInjector;_document;constructor(e,A,i,n,o){super(),this.outletElement=e,this._appRef=i,this._defaultInjector=n,this._document=o}attachComponentPortal(e){let A;if(e.viewContainerRef){let i=e.injector||e.viewContainerRef.injector,n=i.get(Il,null,{optional:!0})||void 0;A=e.viewContainerRef.createComponent(e.component,{index:e.viewContainerRef.length,injector:i,ngModuleRef:n,projectableNodes:e.projectableNodes||void 0}),this.setDisposeFn(()=>A.destroy())}else A=vp(e.component,{elementInjector:e.injector||this._defaultInjector||Zt.NULL,environmentInjector:this._appRef.injector,projectableNodes:e.projectableNodes||void 0}),this._appRef.attachView(A.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(A.hostView),A.destroy()});return this.outletElement.appendChild(this._getComponentRootNode(A)),this._attachedPortal=e,A}attachTemplatePortal(e){let A=e.viewContainerRef,i=A.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return i.rootNodes.forEach(n=>this.outletElement.appendChild(n)),i.detectChanges(),this.setDisposeFn(()=>{let n=A.indexOf(i);n!==-1&&A.remove(n)}),this._attachedPortal=e,i}attachDomPortal=e=>{let A=e.element;A.parentNode;let i=this._document.createComment("dom-portal");A.parentNode.insertBefore(i,A),this.outletElement.appendChild(A),this._attachedPortal=e,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(A,i)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(e){return e.hostView.rootNodes[0]}};var sq=(()=>{class t extends Rs{constructor(){let A=f(mn),i=f(Sn);super(A,i)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[lt]})}return t})();var wa=(()=>{class t extends V2{_moduleRef=f(Il,{optional:!0});_document=f(at);_viewContainerRef=f(Sn);_isInitialized=!1;_attachedRef;constructor(){super()}get portal(){return this._attachedPortal}set portal(A){this.hasAttached()&&!A&&!this._isInitialized||(this.hasAttached()&&super.detach(),A&&super.attach(A),this._attachedPortal=A||null)}attached=new YA;get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(A){A.setAttachedHost(this);let i=A.viewContainerRef!=null?A.viewContainerRef:this._viewContainerRef,n=i.createComponent(A.component,{index:i.length,injector:A.injector||i.injector,projectableNodes:A.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0});return i!==this._viewContainerRef&&this._getRootNode().appendChild(n.hostView.rootNodes[0]),super.setDisposeFn(()=>n.destroy()),this._attachedPortal=A,this._attachedRef=n,this.attached.emit(n),n}attachTemplatePortal(A){A.setAttachedHost(this);let i=this._viewContainerRef.createEmbeddedView(A.templateRef,A.context,{injector:A.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=A,this._attachedRef=i,this.attached.emit(i),i}attachDomPortal=A=>{let i=A.element;i.parentNode;let n=this._document.createComment("dom-portal");A.setAttachedHost(this),i.parentNode.insertBefore(n,i),this._getRootNode().appendChild(i),this._attachedPortal=A,super.setDisposeFn(()=>{n.parentNode&&n.parentNode.replaceChild(i,n)})};_getRootNode(){let A=this._viewContainerRef.element.nativeElement;return A.nodeType===A.ELEMENT_NODE?A:A.parentNode}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[lt]})}return t})();var UB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({})}return t})();var aq=$p(),$S=class{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(e,A){this._viewportRuler=e,this._document=A}attach(){}enable(){if(this._canBeEnabled()){let e=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=e.style.left||"",this._previousHTMLStyles.top=e.style.top||"",e.style.left=hr(-this._previousScrollPosition.left),e.style.top=hr(-this._previousScrollPosition.top),e.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){let e=this._document.documentElement,A=this._document.body,i=e.style,n=A.style,o=i.scrollBehavior||"",r=n.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,e.classList.remove("cdk-global-scrollblock"),aq&&(i.scrollBehavior=n.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),aq&&(i.scrollBehavior=o,n.scrollBehavior=r)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;let A=this._document.body,i=this._viewportRuler.getViewportSize();return A.scrollHeight>i.height||A.scrollWidth>i.width}};var AR=class{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(e,A,i,n){this._scrollDispatcher=e,this._ngZone=A,this._viewportRuler=i,this._config=n}attach(e){this._overlayRef,this._overlayRef=e}enable(){if(this._scrollSubscription)return;let e=this._scrollDispatcher.scrolled(0).pipe(Nt(A=>!A||!this._overlayRef.overlayElement.contains(A.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=e.subscribe(()=>{let A=this._viewportRuler.getViewportScrollPosition().top;Math.abs(A-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=e.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}},S8=class{enable(){}disable(){}attach(){}};function eR(t,e){return e.some(A=>{let i=t.bottomA.bottom,o=t.rightA.right;return i||n||o||r})}function cq(t,e){return e.some(A=>{let i=t.topA.bottom,o=t.leftA.right;return i||n||o||r})}var tR=class{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(e,A,i,n){this._scrollDispatcher=e,this._viewportRuler=A,this._ngZone=i,this._config=n}attach(e){this._overlayRef,this._overlayRef=e}enable(){if(!this._scrollSubscription){let e=this._config?this._config.scrollThrottle:0;this._scrollSubscription=this._scrollDispatcher.scrolled(e).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){let A=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:n}=this._viewportRuler.getViewportSize();eR(A,[{width:i,height:n,bottom:n,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}})}}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}},F3A=(()=>{class t{_scrollDispatcher=f(q2);_viewportRuler=f(Nc);_ngZone=f(ye);_document=f(at);constructor(){}noop=()=>new S8;close=A=>new AR(this._scrollDispatcher,this._ngZone,this._viewportRuler,A);block=()=>new $S(this._viewportRuler,this._document);reposition=A=>new tR(this._scrollDispatcher,this._viewportRuler,this._ngZone,A);static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Ml=class{positionStrategy;scrollStrategy=new S8;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;constructor(e){if(e){let A=Object.keys(e);for(let i of A)e[i]!==void 0&&(this[i]=e[i])}}};var iR=class{connectionPair;scrollableViewProperties;constructor(e,A){this.connectionPair=e,this.scrollableViewProperties=A}};var Bq=(()=>{class t{_attachedOverlays=[];_document=f(at);_isAttached;constructor(){}ngOnDestroy(){this.detach()}add(A){this.remove(A),this._attachedOverlays.push(A)}remove(A){let i=this._attachedOverlays.indexOf(A);i>-1&&this._attachedOverlays.splice(i,1),this._attachedOverlays.length===0&&this.detach()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),_3A=(()=>{class t extends Bq{_ngZone=f(ye);_renderer=f(Ms).createRenderer(null,null);_cleanupKeydown;add(A){super.add(A),this._isAttached||(this._ngZone.runOutsideAngular(()=>{this._cleanupKeydown=this._renderer.listen("body","keydown",this._keydownListener)}),this._isAttached=!0)}detach(){this._isAttached&&(this._cleanupKeydown?.(),this._isAttached=!1)}_keydownListener=A=>{let i=this._attachedOverlays;for(let n=i.length-1;n>-1;n--)if(i[n]._keydownEvents.observers.length>0){this._ngZone.run(()=>i[n]._keydownEvents.next(A));break}};static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),G3A=(()=>{class t extends Bq{_platform=f(ni);_ngZone=f(ye,{optional:!0});_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget;add(A){if(super.add(A),!this._isAttached){let i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){let A=this._document.body;A.removeEventListener("pointerdown",this._pointerDownListener,!0),A.removeEventListener("click",this._clickListener,!0),A.removeEventListener("auxclick",this._clickListener,!0),A.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(A.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(A){A.addEventListener("pointerdown",this._pointerDownListener,!0),A.addEventListener("click",this._clickListener,!0),A.addEventListener("auxclick",this._clickListener,!0),A.addEventListener("contextmenu",this._clickListener,!0)}_pointerDownListener=A=>{this._pointerDownEventTarget=ic(A)};_clickListener=A=>{let i=ic(A),n=A.type==="click"&&this._pointerDownEventTarget?this._pointerDownEventTarget:i;this._pointerDownEventTarget=null;let o=this._attachedOverlays.slice();for(let r=o.length-1;r>-1;r--){let s=o[r];if(s._outsidePointerEvents.observers.length<1||!s.hasAttached())continue;if(gq(s.overlayElement,i)||gq(s.overlayElement,n))break;let a=s._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>a.next(A)):a.next(A)}};static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function gq(t,e){let A=typeof ShadowRoot<"u"&&ShadowRoot,i=e;for(;i;){if(i===t)return!0;i=A&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}var Eq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:[".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}"],encapsulation:2,changeDetection:0})}return t})(),R8=(()=>{class t{_platform=f(ni);_containerElement;_document=f(at);_styleLoader=f(Pn);constructor(){}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let A="cdk-overlay-container";if(this._platform.isBrowser||dk()){let n=this._document.querySelectorAll(`.${A}[platform="server"], .${A}[platform="test"]`);for(let o=0;o{let e=this.element;clearTimeout(this._fallbackTimeout),this._cleanupTransitionEnd?.(),this._cleanupTransitionEnd=this._renderer.listen(e,"transitionend",this.dispose),this._fallbackTimeout=setTimeout(this.dispose,500),e.style.pointerEvents="none",e.classList.remove("cdk-overlay-backdrop-showing")})}dispose=()=>{clearTimeout(this._fallbackTimeout),this._cleanupClick?.(),this._cleanupTransitionEnd?.(),this._cleanupClick=this._cleanupTransitionEnd=this._fallbackTimeout=void 0,this.element.remove()}},JB=class{_portalOutlet;_host;_pane;_config;_ngZone;_keyboardDispatcher;_document;_location;_outsideClickDispatcher;_animationsDisabled;_injector;_renderer;_backdropClick=new qA;_attachments=new qA;_detachments=new qA;_positionStrategy;_scrollStrategy;_locationChanges=Kt.EMPTY;_backdropRef=null;_previousHostParent;_keydownEvents=new qA;_outsidePointerEvents=new qA;_renders=new qA;_afterRenderRef;_afterNextRenderRef;constructor(e,A,i,n,o,r,s,a,c,g=!1,I,C){this._portalOutlet=e,this._host=A,this._pane=i,this._config=n,this._ngZone=o,this._keyboardDispatcher=r,this._document=s,this._location=a,this._outsideClickDispatcher=c,this._animationsDisabled=g,this._injector=I,this._renderer=C,n.scrollStrategy&&(this._scrollStrategy=n.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=n.positionStrategy,this._afterRenderRef=ua(()=>ku(()=>{this._renders.next()},{injector:this._injector}))}get overlayElement(){return this._pane}get backdropElement(){return this._backdropRef?.element||null}get hostElement(){return this._host}attach(e){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);let A=this._portalOutlet.attach(e);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=Ir(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),typeof A?.onDestroy=="function"&&A.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),A}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();let e=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),e}dispose(){let e=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._backdropRef?.dispose(),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=this._backdropRef=null,e&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(e){e!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=e,this.hasAttached()&&(e.attach(this),this.updatePosition()))}updateSize(e){this._config=sA(sA({},this._config),e),this._updateElementSize()}setDirection(e){this._config=Fe(sA({},this._config),{direction:e}),this._updateElementDirection()}addPanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!0)}removePanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!1)}getDirection(){let e=this._config.direction;return e?typeof e=="string"?e:e.value:"ltr"}updateScrollStrategy(e){e!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=e,this.hasAttached()&&(e.attach(this),e.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;let e=this._pane.style;e.width=hr(this._config.width),e.height=hr(this._config.height),e.minWidth=hr(this._config.minWidth),e.minHeight=hr(this._config.minHeight),e.maxWidth=hr(this._config.maxWidth),e.maxHeight=hr(this._config.maxHeight)}_togglePointerEvents(e){this._pane.style.pointerEvents=e?"":"none"}_attachBackdrop(){let e="cdk-overlay-backdrop-showing";this._backdropRef?.dispose(),this._backdropRef=new nR(this._document,this._renderer,this._ngZone,A=>{this._backdropClick.next(A)}),this._animationsDisabled&&this._backdropRef.element.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropRef.element,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropRef.element,this._host),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this._backdropRef?.element.classList.add(e))}):this._backdropRef.element.classList.add(e)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){this._animationsDisabled?(this._backdropRef?.dispose(),this._backdropRef=null):this._backdropRef?.detach()}_toggleClasses(e,A,i){let n=CB(A||[]).filter(o=>!!o);n.length&&(i?e.classList.add(...n):e.classList.remove(...n))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{let e=this._renders.pipe(kt(Hn(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||this._pane.children.length===0)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),e.unsubscribe())})})}_disposeScrollStrategy(){let e=this._scrollStrategy;e?.disable(),e?.detach?.()}},lq="cdk-overlay-connected-position-bounding-box",K3A=/([A-Za-z%]+)$/,oR=class{_viewportRuler;_document;_platform;_overlayContainer;_overlayRef;_isInitialRender;_lastBoundingBoxSize={width:0,height:0};_isPushed=!1;_canPush=!0;_growAfterOpen=!1;_hasFlexibleDimensions=!0;_positionLocked=!1;_originRect;_overlayRect;_viewportRect;_containerRect;_viewportMargin=0;_scrollables=[];_preferredPositions=[];_origin;_pane;_isDisposed;_boundingBox;_lastPosition;_lastScrollVisibility;_positionChanges=new qA;_resizeSubscription=Kt.EMPTY;_offsetX=0;_offsetY=0;_transformOriginSelector;_appliedPanelClasses=[];_previousPushAmount;positionChanges=this._positionChanges;get positions(){return this._preferredPositions}constructor(e,A,i,n,o){this._viewportRuler=A,this._document=i,this._platform=n,this._overlayContainer=o,this.setOrigin(e)}attach(e){this._overlayRef&&this._overlayRef,this._validatePositions(),e.hostElement.classList.add(lq),this._overlayRef=e,this._boundingBox=e.hostElement,this._pane=e.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition){this.reapplyLastPosition();return}this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let e=this._originRect,A=this._overlayRect,i=this._viewportRect,n=this._containerRect,o=[],r;for(let s of this._preferredPositions){let a=this._getOriginPoint(e,n,s),c=this._getOverlayPoint(a,A,s),g=this._getOverlayFit(c,A,i,s);if(g.isCompletelyWithinViewport){this._isPushed=!1,this._applyPosition(s,a);return}if(this._canFitWithFlexibleDimensions(g,c,i)){o.push({position:s,origin:a,overlayRect:A,boundingBoxRect:this._calculateBoundingBoxRect(a,s)});continue}(!r||r.overlayFit.visibleAreaa&&(a=g,s=c)}this._isPushed=!1,this._applyPosition(s.position,s.origin);return}if(this._canPush){this._isPushed=!0,this._applyPosition(r.position,r.originPoint);return}this._applyPosition(r.position,r.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&cC(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(lq),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;let e=this._lastPosition;if(e){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let A=this._getOriginPoint(this._originRect,this._containerRect,e);this._applyPosition(e,A)}else this.apply()}withScrollableContainers(e){return this._scrollables=e,this}withPositions(e){return this._preferredPositions=e,e.indexOf(this._lastPosition)===-1&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(e){return this._viewportMargin=e,this}withFlexibleDimensions(e=!0){return this._hasFlexibleDimensions=e,this}withGrowAfterOpen(e=!0){return this._growAfterOpen=e,this}withPush(e=!0){return this._canPush=e,this}withLockedPosition(e=!0){return this._positionLocked=e,this}setOrigin(e){return this._origin=e,this}withDefaultOffsetX(e){return this._offsetX=e,this}withDefaultOffsetY(e){return this._offsetY=e,this}withTransformOriginOn(e){return this._transformOriginSelector=e,this}_getOriginPoint(e,A,i){let n;if(i.originX=="center")n=e.left+e.width/2;else{let r=this._isRtl()?e.right:e.left,s=this._isRtl()?e.left:e.right;n=i.originX=="start"?r:s}A.left<0&&(n-=A.left);let o;return i.originY=="center"?o=e.top+e.height/2:o=i.originY=="top"?e.top:e.bottom,A.top<0&&(o-=A.top),{x:n,y:o}}_getOverlayPoint(e,A,i){let n;i.overlayX=="center"?n=-A.width/2:i.overlayX==="start"?n=this._isRtl()?-A.width:0:n=this._isRtl()?0:-A.width;let o;return i.overlayY=="center"?o=-A.height/2:o=i.overlayY=="top"?0:-A.height,{x:e.x+n,y:e.y+o}}_getOverlayFit(e,A,i,n){let o=Cq(A),{x:r,y:s}=e,a=this._getOffset(n,"x"),c=this._getOffset(n,"y");a&&(r+=a),c&&(s+=c);let g=0-r,I=r+o.width-i.width,C=0-s,d=s+o.height-i.height,B=this._subtractOverflows(o.width,g,I),E=this._subtractOverflows(o.height,C,d),u=B*E;return{visibleArea:u,isCompletelyWithinViewport:o.width*o.height===u,fitsInViewportVertically:E===o.height,fitsInViewportHorizontally:B==o.width}}_canFitWithFlexibleDimensions(e,A,i){if(this._hasFlexibleDimensions){let n=i.bottom-A.y,o=i.right-A.x,r=Iq(this._overlayRef.getConfig().minHeight),s=Iq(this._overlayRef.getConfig().minWidth),a=e.fitsInViewportVertically||r!=null&&r<=n,c=e.fitsInViewportHorizontally||s!=null&&s<=o;return a&&c}return!1}_pushOverlayOnScreen(e,A,i){if(this._previousPushAmount&&this._positionLocked)return{x:e.x+this._previousPushAmount.x,y:e.y+this._previousPushAmount.y};let n=Cq(A),o=this._viewportRect,r=Math.max(e.x+n.width-o.width,0),s=Math.max(e.y+n.height-o.height,0),a=Math.max(o.top-i.top-e.y,0),c=Math.max(o.left-i.left-e.x,0),g=0,I=0;return n.width<=o.width?g=c||-r:g=e.xB&&!this._isInitialRender&&!this._growAfterOpen&&(r=e.y-B/2)}let a=A.overlayX==="start"&&!n||A.overlayX==="end"&&n,c=A.overlayX==="end"&&!n||A.overlayX==="start"&&n,g,I,C;if(c)C=i.width-e.x+this._viewportMargin*2,g=e.x-this._viewportMargin;else if(a)I=e.x,g=i.right-e.x;else{let d=Math.min(i.right-e.x+i.left,e.x),B=this._lastBoundingBoxSize.width;g=d*2,I=e.x-d,g>B&&!this._isInitialRender&&!this._growAfterOpen&&(I=e.x-B/2)}return{top:r,left:I,bottom:s,right:C,width:g,height:o}}_setBoundingBoxStyles(e,A){let i=this._calculateBoundingBoxRect(e,A);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));let n={};if(this._hasExactPosition())n.top=n.left="0",n.bottom=n.right=n.maxHeight=n.maxWidth="",n.width=n.height="100%";else{let o=this._overlayRef.getConfig().maxHeight,r=this._overlayRef.getConfig().maxWidth;n.height=hr(i.height),n.top=hr(i.top),n.bottom=hr(i.bottom),n.width=hr(i.width),n.left=hr(i.left),n.right=hr(i.right),A.overlayX==="center"?n.alignItems="center":n.alignItems=A.overlayX==="end"?"flex-end":"flex-start",A.overlayY==="center"?n.justifyContent="center":n.justifyContent=A.overlayY==="bottom"?"flex-end":"flex-start",o&&(n.maxHeight=hr(o)),r&&(n.maxWidth=hr(r))}this._lastBoundingBoxSize=i,cC(this._boundingBox.style,n)}_resetBoundingBoxStyles(){cC(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){cC(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(e,A){let i={},n=this._hasExactPosition(),o=this._hasFlexibleDimensions,r=this._overlayRef.getConfig();if(n){let g=this._viewportRuler.getViewportScrollPosition();cC(i,this._getExactOverlayY(A,e,g)),cC(i,this._getExactOverlayX(A,e,g))}else i.position="static";let s="",a=this._getOffset(A,"x"),c=this._getOffset(A,"y");a&&(s+=`translateX(${a}px) `),c&&(s+=`translateY(${c}px)`),i.transform=s.trim(),r.maxHeight&&(n?i.maxHeight=hr(r.maxHeight):o&&(i.maxHeight="")),r.maxWidth&&(n?i.maxWidth=hr(r.maxWidth):o&&(i.maxWidth="")),cC(this._pane.style,i)}_getExactOverlayY(e,A,i){let n={top:"",bottom:""},o=this._getOverlayPoint(A,this._overlayRect,e);if(this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i)),e.overlayY==="bottom"){let r=this._document.documentElement.clientHeight;n.bottom=`${r-(o.y+this._overlayRect.height)}px`}else n.top=hr(o.y);return n}_getExactOverlayX(e,A,i){let n={left:"",right:""},o=this._getOverlayPoint(A,this._overlayRect,e);this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i));let r;if(this._isRtl()?r=e.overlayX==="end"?"left":"right":r=e.overlayX==="end"?"right":"left",r==="right"){let s=this._document.documentElement.clientWidth;n.right=`${s-(o.x+this._overlayRect.width)}px`}else n.left=hr(o.x);return n}_getScrollVisibility(){let e=this._getOriginRect(),A=this._pane.getBoundingClientRect(),i=this._scrollables.map(n=>n.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:cq(e,i),isOriginOutsideView:eR(e,i),isOverlayClipped:cq(A,i),isOverlayOutsideView:eR(A,i)}}_subtractOverflows(e,...A){return A.reduce((i,n)=>i-Math.max(n,0),e)}_getNarrowedViewportRect(){let e=this._document.documentElement.clientWidth,A=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+e-this._viewportMargin,bottom:i.top+A-this._viewportMargin,width:e-2*this._viewportMargin,height:A-2*this._viewportMargin}}_isRtl(){return this._overlayRef.getDirection()==="rtl"}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(e,A){return A==="x"?e.offsetX==null?this._offsetX:e.offsetX:e.offsetY==null?this._offsetY:e.offsetY}_validatePositions(){}_addPanelClasses(e){this._pane&&CB(e).forEach(A=>{A!==""&&this._appliedPanelClasses.indexOf(A)===-1&&(this._appliedPanelClasses.push(A),this._pane.classList.add(A))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(e=>{this._pane.classList.remove(e)}),this._appliedPanelClasses=[])}_getOriginRect(){let e=this._origin;if(e instanceof se)return e.nativeElement.getBoundingClientRect();if(e instanceof Element)return e.getBoundingClientRect();let A=e.width||0,i=e.height||0;return{top:e.y,bottom:e.y+i,left:e.x,right:e.x+A,height:i,width:A}}};function cC(t,e){for(let A in e)e.hasOwnProperty(A)&&(t[A]=e[A]);return t}function Iq(t){if(typeof t!="number"&&t!=null){let[e,A]=t.split(K3A);return!A||A==="px"?parseFloat(e):null}return t||null}function Cq(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}function U3A(t,e){return t===e?!0:t.isOriginClipped===e.isOriginClipped&&t.isOriginOutsideView===e.isOriginOutsideView&&t.isOverlayClipped===e.isOverlayClipped&&t.isOverlayOutsideView===e.isOverlayOutsideView}var dq="cdk-global-overlay-wrapper",rR=class{_overlayRef;_cssPosition="static";_topOffset="";_bottomOffset="";_alignItems="";_xPosition="";_xOffset="";_width="";_height="";_isDisposed=!1;attach(e){let A=e.getConfig();this._overlayRef=e,this._width&&!A.width&&e.updateSize({width:this._width}),this._height&&!A.height&&e.updateSize({height:this._height}),e.hostElement.classList.add(dq),this._isDisposed=!1}top(e=""){return this._bottomOffset="",this._topOffset=e,this._alignItems="flex-start",this}left(e=""){return this._xOffset=e,this._xPosition="left",this}bottom(e=""){return this._topOffset="",this._bottomOffset=e,this._alignItems="flex-end",this}right(e=""){return this._xOffset=e,this._xPosition="right",this}start(e=""){return this._xOffset=e,this._xPosition="start",this}end(e=""){return this._xOffset=e,this._xPosition="end",this}width(e=""){return this._overlayRef?this._overlayRef.updateSize({width:e}):this._width=e,this}height(e=""){return this._overlayRef?this._overlayRef.updateSize({height:e}):this._height=e,this}centerHorizontally(e=""){return this.left(e),this._xPosition="center",this}centerVertically(e=""){return this.top(e),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;let e=this._overlayRef.overlayElement.style,A=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:n,height:o,maxWidth:r,maxHeight:s}=i,a=(n==="100%"||n==="100vw")&&(!r||r==="100%"||r==="100vw"),c=(o==="100%"||o==="100vh")&&(!s||s==="100%"||s==="100vh"),g=this._xPosition,I=this._xOffset,C=this._overlayRef.getConfig().direction==="rtl",d="",B="",E="";a?E="flex-start":g==="center"?(E="center",C?B=I:d=I):C?g==="left"||g==="end"?(E="flex-end",d=I):(g==="right"||g==="start")&&(E="flex-start",B=I):g==="left"||g==="start"?(E="flex-start",d=I):(g==="right"||g==="end")&&(E="flex-end",B=I),e.position=this._cssPosition,e.marginLeft=a?"0":d,e.marginTop=c?"0":this._topOffset,e.marginBottom=this._bottomOffset,e.marginRight=a?"0":B,A.justifyContent=E,A.alignItems=c?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;let e=this._overlayRef.overlayElement.style,A=this._overlayRef.hostElement,i=A.style;A.classList.remove(dq),i.justifyContent=i.alignItems=e.marginTop=e.marginBottom=e.marginLeft=e.marginRight=e.position="",this._overlayRef=null,this._isDisposed=!0}},J3A=(()=>{class t{_viewportRuler=f(Nc);_document=f(at);_platform=f(ni);_overlayContainer=f(R8);constructor(){}global(){return new rR}flexibleConnectedTo(A){return new oR(A,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Br=(()=>{class t{scrollStrategies=f(F3A);_overlayContainer=f(R8);_positionBuilder=f(J3A);_keyboardDispatcher=f(_3A);_injector=f(Zt);_ngZone=f(ye);_document=f(at);_directionality=f(po);_location=f(ha);_outsideClickDispatcher=f(G3A);_animationsModuleType=f(_i,{optional:!0});_idGenerator=f(an);_renderer=f(Ms).createRenderer(null,null);_appRef;_styleLoader=f(Pn);constructor(){}create(A){this._styleLoader.load(Eq);let i=this._createHostElement(),n=this._createPaneElement(i),o=this._createPortalOutlet(n),r=new Ml(A);return r.direction=r.direction||this._directionality.value,new JB(o,i,n,r,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,this._animationsModuleType==="NoopAnimations",this._injector.get(vr),this._renderer)}position(){return this._positionBuilder}_createPaneElement(A){let i=this._document.createElement("div");return i.id=this._idGenerator.getId("cdk-overlay-"),i.classList.add("cdk-overlay-pane"),A.appendChild(i),i}_createHostElement(){let A=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(A),A}_createPortalOutlet(A){return this._appRef||(this._appRef=this._injector.get(Ca)),new zh(A,null,this._appRef,this._injector,this._document)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Y3A=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],Qq=new eA("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.reposition()}}),Ph=(()=>{class t{elementRef=f(se);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]})}return t})(),sR=(()=>{class t{_overlay=f(Br);_dir=f(po,{optional:!0});_overlayRef;_templatePortal;_backdropSubscription=Kt.EMPTY;_attachSubscription=Kt.EMPTY;_detachSubscription=Kt.EMPTY;_positionSubscription=Kt.EMPTY;_offsetX;_offsetY;_position;_scrollStrategyFactory=f(Qq);_disposeOnNavigation=!1;_ngZone=f(ye);origin;positions;positionStrategy;get offsetX(){return this._offsetX}set offsetX(A){this._offsetX=A,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(A){this._offsetY=A,this._position&&this._updatePositionStrategy(this._position)}width;height;minWidth;minHeight;backdropClass;panelClass;viewportMargin=0;scrollStrategy;open=!1;disableClose=!1;transformOriginSelector;hasBackdrop=!1;lockPosition=!1;flexibleDimensions=!1;growAfterOpen=!1;push=!1;get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(A){this._disposeOnNavigation=A}backdropClick=new YA;positionChange=new YA;attach=new YA;detach=new YA;overlayKeydown=new YA;overlayOutsideClick=new YA;constructor(){let A=f(mn),i=f(Sn);this._templatePortal=new Rs(A,i),this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(A){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),A.origin&&this.open&&this._position.apply()),A.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=Y3A);let A=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=A.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=A.detachments().subscribe(()=>this.detach.emit()),A.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),i.keyCode===27&&!this.disableClose&&!sr(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{let n=this._getOriginElement(),o=ic(i);(!n||n!==o&&!n.contains(o))&&this.overlayOutsideClick.next(i)})}_buildConfig(){let A=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Ml({direction:this._dir||"ltr",positionStrategy:A,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||this.width===0)&&(i.width=this.width),(this.height||this.height===0)&&(i.height=this.height),(this.minWidth||this.minWidth===0)&&(i.minWidth=this.minWidth),(this.minHeight||this.minHeight===0)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(A){let i=this.positions.map(n=>({originX:n.originX,originY:n.originY,overlayX:n.overlayX,overlayY:n.overlayY,offsetX:n.offsetX||this.offsetX,offsetY:n.offsetY||this.offsetY,panelClass:n.panelClass||void 0}));return A.setOrigin(this._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){let A=this._overlay.position().flexibleConnectedTo(this._getOrigin());return this._updatePositionStrategy(A),A}_getOrigin(){return this.origin instanceof Ph?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof Ph?this.origin.elementRef.nativeElement:this.origin instanceof se?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(A=>{this.backdropClick.emit(A)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(Zv(()=>this.positionChange.observers.length>0)).subscribe(A=>{this._ngZone.run(()=>this.positionChange.emit(A)),this.positionChange.observers.length===0&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",ge],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",ge],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",ge],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",ge],push:[2,"cdkConnectedOverlayPush","push",ge],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",ge]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[Xt]})}return t})();function T3A(t){return()=>t.scrollStrategies.reposition()}var H3A={provide:Qq,deps:[Br],useFactory:T3A},Z2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[Br,H3A],imports:[G2,UB,k8,k8]})}return t})();function O3A(t,e){}var W2=class{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;width="";height="";minWidth;minHeight;maxWidth;maxHeight;positionStrategy;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;scrollStrategy;closeOnNavigation=!0;closeOnDestroy=!0;closeOnOverlayDetachments=!0;componentFactoryResolver;providers;container;templateContext};var cR=(()=>{class t extends V2{_elementRef=f(se);_focusTrapFactory=f(g6);_config;_interactivityChecker=f(sh);_ngZone=f(ye);_overlayRef=f(JB);_focusMonitor=f(Jr);_renderer=f(qi);_platform=f(ni);_document=f(at,{optional:!0});_portalOutlet;_focusTrap=null;_elementFocusedBeforeDialogWasOpened=null;_closeInteractionType=null;_ariaLabelledByQueue=[];_changeDetectorRef=f(Et);_injector=f(Zt);_isDestroyed=!1;constructor(){super(),this._config=f(W2,{optional:!0})||new W2,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(A){this._ariaLabelledByQueue.push(A),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(A){let i=this._ariaLabelledByQueue.indexOf(A);i>-1&&(this._ariaLabelledByQueue.splice(i,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._isDestroyed=!0,this._restoreFocus()}attachComponentPortal(A){this._portalOutlet.hasAttached();let i=this._portalOutlet.attachComponentPortal(A);return this._contentAttached(),i}attachTemplatePortal(A){this._portalOutlet.hasAttached();let i=this._portalOutlet.attachTemplatePortal(A);return this._contentAttached(),i}attachDomPortal=A=>{this._portalOutlet.hasAttached();let i=this._portalOutlet.attachDomPortal(A);return this._contentAttached(),i};_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(A,i){this._interactivityChecker.isFocusable(A)||(A.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let n=()=>{o(),r(),A.removeAttribute("tabindex")},o=this._renderer.listen(A,"blur",n),r=this._renderer.listen(A,"mousedown",n)})),A.focus(i)}_focusByCssSelector(A,i){let n=this._elementRef.nativeElement.querySelector(A);n&&this._forceFocus(n,i)}_trapFocus(){this._isDestroyed||Ir(()=>{let A=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||A.focus();break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElement()||this._focusDialogContainer();break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus);break}},{injector:this._injector})}_restoreFocus(){let A=this._config.restoreFocus,i=null;if(typeof A=="string"?i=this._document.querySelector(A):typeof A=="boolean"?i=A?this._elementFocusedBeforeDialogWasOpened:null:A&&(i=A),this._config.restoreFocus&&i&&typeof i.focus=="function"){let n=IB(),o=this._elementRef.nativeElement;(!n||n===this._document.body||n===o||o.contains(n))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){let A=this._elementRef.nativeElement,i=IB();return A===i||A.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=IB()))}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["cdk-dialog-container"]],viewQuery:function(i,n){if(i&1&&st(wa,7),i&2){let o;de(o=Be())&&(n._portalOutlet=o.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,n){i&2&&Ke("id",n._config.id||null)("role",n._config.role)("aria-modal",n._config.ariaModal)("aria-labelledby",n._config.ariaLabel?null:n._ariaLabelledByQueue[0])("aria-label",n._config.ariaLabel)("aria-describedby",n._config.ariaDescribedBy||null)},features:[lt],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,n){i&1&&NA(0,O3A,0,0,"ng-template",0)},dependencies:[wa],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}return t})(),jh=class{overlayRef;config;componentInstance;componentRef;containerInstance;disableClose;closed=new qA;backdropClick;keydownEvents;outsidePointerEvents;id;_detachSubscription;constructor(e,A){this.overlayRef=e,this.config=A,this.disableClose=A.disableClose,this.backdropClick=e.backdropClick(),this.keydownEvents=e.keydownEvents(),this.outsidePointerEvents=e.outsidePointerEvents(),this.id=A.id,this.keydownEvents.subscribe(i=>{i.keyCode===27&&!this.disableClose&&!sr(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=e.detachments().subscribe(()=>{A.closeOnOverlayDetachments!==!1&&this.close()})}close(e,A){if(this.containerInstance){let i=this.closed;this.containerInstance._closeInteractionType=A?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(e),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(e="",A=""){return this.overlayRef.updateSize({width:e,height:A}),this}addPanelClass(e){return this.overlayRef.addPanelClass(e),this}removePanelClass(e){return this.overlayRef.removePanelClass(e),this}},z3A=new eA("DialogScrollStrategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.block()}}),P3A=new eA("DialogData"),j3A=new eA("DefaultDialogConfig");var uq=(()=>{class t{_overlay=f(Br);_injector=f(Zt);_defaultOptions=f(j3A,{optional:!0});_parentDialog=f(t,{optional:!0,skipSelf:!0});_overlayContainer=f(R8);_idGenerator=f(an);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new qA;_afterOpenedAtThisLevel=new qA;_ariaHiddenElements=new Map;_scrollStrategy=f(z3A);get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}afterAllClosed=el(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(On(void 0)));constructor(){}open(A,i){let n=this._defaultOptions||new W2;i=sA(sA({},n),i),i.id=i.id||this._idGenerator.getId("cdk-dialog-"),i.id&&this.getDialogById(i.id);let o=this._getOverlayConfig(i),r=this._overlay.create(o),s=new jh(r,i),a=this._attachContainer(r,s,i);return s.containerInstance=a,this._attachDialogContent(A,s,a,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(s),s.closed.subscribe(()=>this._removeOpenDialog(s,!0)),this.afterOpened.next(s),s}closeAll(){aR(this.openDialogs,A=>A.close())}getDialogById(A){return this.openDialogs.find(i=>i.id===A)}ngOnDestroy(){aR(this._openDialogsAtThisLevel,A=>{A.config.closeOnDestroy===!1&&this._removeOpenDialog(A,!1)}),aR(this._openDialogsAtThisLevel,A=>A.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(A){let i=new Ml({positionStrategy:A.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:A.scrollStrategy||this._scrollStrategy(),panelClass:A.panelClass,hasBackdrop:A.hasBackdrop,direction:A.direction,minWidth:A.minWidth,minHeight:A.minHeight,maxWidth:A.maxWidth,maxHeight:A.maxHeight,width:A.width,height:A.height,disposeOnNavigation:A.closeOnNavigation});return A.backdropClass&&(i.backdropClass=A.backdropClass),i}_attachContainer(A,i,n){let o=n.injector||n.viewContainerRef?.injector,r=[{provide:W2,useValue:n},{provide:jh,useValue:i},{provide:JB,useValue:A}],s;n.container?typeof n.container=="function"?s=n.container:(s=n.container.type,r.push(...n.container.providers(n))):s=cR;let a=new yg(s,n.viewContainerRef,Zt.create({parent:o||this._injector,providers:r}));return A.attach(a).instance}_attachDialogContent(A,i,n,o){if(A instanceof mn){let r=this._createInjector(o,i,n,void 0),s={$implicit:o.data,dialogRef:i};o.templateContext&&(s=sA(sA({},s),typeof o.templateContext=="function"?o.templateContext():o.templateContext)),n.attachTemplatePortal(new Rs(A,null,s,r))}else{let r=this._createInjector(o,i,n,this._injector),s=n.attachComponentPortal(new yg(A,o.viewContainerRef,r));i.componentRef=s,i.componentInstance=s.instance}}_createInjector(A,i,n,o){let r=A.injector||A.viewContainerRef?.injector,s=[{provide:P3A,useValue:A.data},{provide:jh,useValue:i}];return A.providers&&(typeof A.providers=="function"?s.push(...A.providers(i,A,n)):s.push(...A.providers)),A.direction&&(!r||!r.get(po,null,{optional:!0}))&&s.push({provide:po,useValue:{value:A.direction,change:Ce()}}),Zt.create({parent:r||o,providers:s})}_removeOpenDialog(A,i){let n=this.openDialogs.indexOf(A);n>-1&&(this.openDialogs.splice(n,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((o,r)=>{o?r.setAttribute("aria-hidden",o):r.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){let A=this._overlayContainer.getContainerElement();if(A.parentElement){let i=A.parentElement.children;for(let n=i.length-1;n>-1;n--){let o=i[n];o!==A&&o.nodeName!=="SCRIPT"&&o.nodeName!=="STYLE"&&!o.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(o,o.getAttribute("aria-hidden")),o.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){let A=this._parentDialog;return A?A._getAfterAllClosed():this._afterAllClosedAtThisLevel}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function aR(t,e){let A=t.length;for(;A--;)e(t[A])}function q3A(t,e){}var x8=class{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;width="";height="";minWidth;minHeight;maxWidth;maxHeight;position;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;delayFocusTrap=!0;scrollStrategy;closeOnNavigation=!0;componentFactoryResolver;enterAnimationDuration;exitAnimationDuration},gR="mdc-dialog--open",hq="mdc-dialog--opening",fq="mdc-dialog--closing",V3A=150,Z3A=75,W3A=(()=>{class t extends cR{_animationMode=f(_i,{optional:!0});_animationStateChanged=new YA;_animationsEnabled=this._animationMode!=="NoopAnimations";_actionSectionCount=0;_hostElement=this._elementRef.nativeElement;_enterAnimationDuration=this._animationsEnabled?pq(this._config.enterAnimationDuration)??V3A:0;_exitAnimationDuration=this._animationsEnabled?pq(this._config.exitAnimationDuration)??Z3A:0;_animationTimer=null;_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(mq,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(hq,gR)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(gR),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(gR),this._animationsEnabled?(this._hostElement.style.setProperty(mq,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(fq)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(A){this._actionSectionCount+=A,this._changeDetectorRef.markForCheck()}_finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)};_finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})};_clearAnimationClasses(){this._hostElement.classList.remove(hq,fq)}_waitForAnimationToComplete(A,i){this._animationTimer!==null&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,A)}_requestAnimationFrame(A){this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(A):A()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(A){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:A})}ngOnDestroy(){super.ngOnDestroy(),this._animationTimer!==null&&clearTimeout(this._animationTimer)}attachComponentPortal(A){let i=super.attachComponentPortal(A);return i.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),i}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,n){i&2&&(Qa("id",n._config.id),Ke("aria-modal",n._config.ariaModal)("role",n._config.role)("aria-labelledby",n._config.ariaLabel?null:n._ariaLabelledByQueue[0])("aria-label",n._config.ariaLabel)("aria-describedby",n._config.ariaDescribedBy||null),he("_mat-animation-noopable",!n._animationsEnabled)("mat-mdc-dialog-container-with-actions",n._actionSectionCount>0))},features:[lt],decls:3,vars:0,consts:[[1,"mat-mdc-dialog-inner-container","mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,n){i&1&&(S(0,"div",0)(1,"div",1),NA(2,q3A,0,0,"ng-template",2),N()())},dependencies:[wa],styles:['.mat-mdc-dialog-container{width:100%;height:100%;display:block;box-sizing:border-box;max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;outline:0}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 560px);min-width:var(--mat-dialog-container-min-width, 280px)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, calc(100vw - 32px))}}.mat-mdc-dialog-inner-container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;transition:opacity linear var(--mat-dialog-transition-duration, 0ms);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mdc-dialog--closing .mat-mdc-dialog-inner-container{transition:opacity 75ms linear;transform:none}.mdc-dialog--open .mat-mdc-dialog-inner-container{opacity:1}._mat-animation-noopable .mat-mdc-dialog-inner-container{transition:none}.mat-mdc-dialog-surface{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;width:100%;height:100%;position:relative;overflow-y:auto;outline:0;transform:scale(0.8);transition:transform var(--mat-dialog-transition-duration, 0ms) cubic-bezier(0, 0, 0.2, 1);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;box-shadow:var(--mat-dialog-container-elevation-shadow, none);border-radius:var(--mdc-dialog-container-shape, var(--mat-sys-corner-extra-large, 4px));background-color:var(--mdc-dialog-container-color, var(--mat-sys-surface, white))}[dir=rtl] .mat-mdc-dialog-surface{text-align:right}.mdc-dialog--open .mat-mdc-dialog-surface,.mdc-dialog--closing .mat-mdc-dialog-surface{transform:none}._mat-animation-noopable .mat-mdc-dialog-surface{transition:none}.mat-mdc-dialog-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-dialog-title{display:block;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:var(--mat-dialog-headline-padding, 6px 24px 13px)}.mat-mdc-dialog-title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mat-mdc-dialog-title{text-align:right}.mat-mdc-dialog-container .mat-mdc-dialog-title{color:var(--mdc-dialog-subhead-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mdc-dialog-subhead-font, var(--mat-sys-headline-small-font, inherit));line-height:var(--mdc-dialog-subhead-line-height, var(--mat-sys-headline-small-line-height, 1.5rem));font-size:var(--mdc-dialog-subhead-size, var(--mat-sys-headline-small-size, 1rem));font-weight:var(--mdc-dialog-subhead-weight, var(--mat-sys-headline-small-weight, 400));letter-spacing:var(--mdc-dialog-subhead-tracking, var(--mat-sys-headline-small-tracking, 0.03125em))}.mat-mdc-dialog-content{display:block;flex-grow:1;box-sizing:border-box;margin:0;overflow:auto;max-height:65vh}.mat-mdc-dialog-content>:first-child{margin-top:0}.mat-mdc-dialog-content>:last-child{margin-bottom:0}.mat-mdc-dialog-container .mat-mdc-dialog-content{color:var(--mdc-dialog-supporting-text-color, var(--mat-sys-on-surface-variant, rgba(0, 0, 0, 0.6)));font-family:var(--mdc-dialog-supporting-text-font, var(--mat-sys-body-medium-font, inherit));line-height:var(--mdc-dialog-supporting-text-line-height, var(--mat-sys-body-medium-line-height, 1.5rem));font-size:var(--mdc-dialog-supporting-text-size, var(--mat-sys-body-medium-size, 1rem));font-weight:var(--mdc-dialog-supporting-text-weight, var(--mat-sys-body-medium-weight, 400));letter-spacing:var(--mdc-dialog-supporting-text-tracking, var(--mat-sys-body-medium-tracking, 0.03125em))}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px 0)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0);padding:var(--mat-dialog-actions-padding, 16px 24px);justify-content:var(--mat-dialog-actions-alignment, flex-end)}@media(forced-colors: active){.mat-mdc-dialog-actions{border-top-color:CanvasText}}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}.mat-mdc-dialog-component-host{display:contents}'],encapsulation:2})}return t})(),mq="--mat-dialog-transition-duration";function pq(t){return t==null?null:typeof t=="number"?t:t.endsWith("ms")?Zs(t.substring(0,t.length-2)):t.endsWith("s")?Zs(t.substring(0,t.length-1))*1e3:t==="0"?0:null}var L8=function(t){return t[t.OPEN=0]="OPEN",t[t.CLOSING=1]="CLOSING",t[t.CLOSED=2]="CLOSED",t}(L8||{}),fr=class{_ref;_containerInstance;componentInstance;componentRef;disableClose;id;_afterOpened=new qA;_beforeClosed=new qA;_result;_closeFallbackTimeout;_state=L8.OPEN;_closeInteractionType;constructor(e,A,i){this._ref=e,this._containerInstance=i,this.disableClose=A.disableClose,this.id=e.id,e.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(Nt(n=>n.state==="opened"),Xn(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(Nt(n=>n.state==="closed"),Xn(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),e.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),Hn(this.backdropClick(),this.keydownEvents().pipe(Nt(n=>n.keyCode===27&&!this.disableClose&&!sr(n)))).subscribe(n=>{this.disableClose||(n.preventDefault(),Dq(this,n.type==="keydown"?"keyboard":"mouse"))})}close(e){this._result=e,this._containerInstance._animationStateChanged.pipe(Nt(A=>A.state==="closing"),Xn(1)).subscribe(A=>{this._beforeClosed.next(e),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),A.totalTime+100)}),this._state=L8.CLOSING,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(e){let A=this._ref.config.positionStrategy;return e&&(e.left||e.right)?e.left?A.left(e.left):A.right(e.right):A.centerHorizontally(),e&&(e.top||e.bottom)?e.top?A.top(e.top):A.bottom(e.bottom):A.centerVertically(),this._ref.updatePosition(),this}updateSize(e="",A=""){return this._ref.updateSize(e,A),this}addPanelClass(e){return this._ref.addPanelClass(e),this}removePanelClass(e){return this._ref.removePanelClass(e),this}getState(){return this._state}_finishDialogClose(){this._state=L8.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}};function Dq(t,e,A){return t._closeInteractionType=e,t.close(A)}var Cs=new eA("MatMdcDialogData"),X3A=new eA("mat-mdc-dialog-default-options"),$3A=new eA("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.block()}});var Fc=(()=>{class t{_overlay=f(Br);_defaultOptions=f(X3A,{optional:!0});_scrollStrategy=f($3A);_parentDialog=f(t,{optional:!0,skipSelf:!0});_idGenerator=f(an);_dialog=f(uq);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new qA;_afterOpenedAtThisLevel=new qA;dialogConfigClass=x8;_dialogRefConstructor;_dialogContainerType;_dialogDataToken;get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){let A=this._parentDialog;return A?A._getAfterAllClosed():this._afterAllClosedAtThisLevel}afterAllClosed=el(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(On(void 0)));constructor(){this._dialogRefConstructor=fr,this._dialogContainerType=W3A,this._dialogDataToken=Cs}open(A,i){let n;i=sA(sA({},this._defaultOptions||new x8),i),i.id=i.id||this._idGenerator.getId("mat-mdc-dialog-"),i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();let o=this._dialog.open(A,Fe(sA({},i),{positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:W2,useValue:i}]},templateContext:()=>({dialogRef:n}),providers:(r,s,a)=>(n=new this._dialogRefConstructor(r,i,a),n.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:a},{provide:this._dialogDataToken,useValue:s.data},{provide:this._dialogRefConstructor,useValue:n}])}));return n.componentRef=o.componentRef,n.componentInstance=o.componentInstance,this.openDialogs.push(n),this.afterOpened.next(n),n.afterClosed().subscribe(()=>{let r=this.openDialogs.indexOf(n);r>-1&&(this.openDialogs.splice(r,1),this.openDialogs.length||this._getAfterAllClosed().next())}),n}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(A){return this.openDialogs.find(i=>i.id===A)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(A){let i=A.length;for(;i--;)A[i].close()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),bl=(()=>{class t{dialogRef=f(fr,{optional:!0});_elementRef=f(se);_dialog=f(Fc);ariaLabel;type="button";dialogResult;_matDialogClose;constructor(){}ngOnInit(){this.dialogRef||(this.dialogRef=yq(this._elementRef,this._dialog.openDialogs))}ngOnChanges(A){let i=A._matDialogClose||A._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(A){Dq(this.dialogRef,A.screenX===0&&A.screenY===0?"keyboard":"mouse",this.dialogResult)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,n){i&1&&mA("click",function(r){return n._onButtonClick(r)}),i&2&&Ke("aria-label",n.ariaLabel||null)("type",n.type)},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],type:"type",dialogResult:[0,"mat-dialog-close","dialogResult"],_matDialogClose:[0,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[Xt]})}return t})(),wq=(()=>{class t{_dialogRef=f(fr,{optional:!0});_elementRef=f(se);_dialog=f(Fc);constructor(){}ngOnInit(){this._dialogRef||(this._dialogRef=yq(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._onAdd()})}ngOnDestroy(){this._dialogRef?._containerInstance&&Promise.resolve().then(()=>{this._onRemove()})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t})}return t})(),Ls=(()=>{class t extends wq{id=f(an).getId("mat-mdc-dialog-title-");_onAdd(){this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id)}_onRemove(){this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,n){i&2&&Qa("id",n.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],features:[lt]})}return t})(),ya=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],features:[LH([k0])]})}return t})(),va=(()=>{class t extends wq{align;_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:6,hostBindings:function(i,n){i&2&&he("mat-mdc-dialog-actions-align-start",n.align==="start")("mat-mdc-dialog-actions-align-center",n.align==="center")("mat-mdc-dialog-actions-align-end",n.align==="end")},inputs:{align:"align"},features:[lt]})}return t})();function yq(t,e){let A=t.nativeElement.parentElement;for(;A&&!A.classList.contains("mat-mdc-dialog-container");)A=A.parentElement;return A?e.find(i=>i.id===A.id):null}var vq=(()=>{class t{get vertical(){return this._vertical}set vertical(A){this._vertical=Ar(A)}_vertical=!1;get inset(){return this._inset}set inset(A){this._inset=Ar(A)}_inset=!1;static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,n){i&2&&(Ke("aria-orientation",n.vertical?"vertical":"horizontal"),he("mat-divider-vertical",n.vertical)("mat-divider-horizontal",!n.vertical)("mat-divider-inset",n.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(i,n){},styles:[".mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color, var(--mat-sys-outline));border-top-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color, var(--mat-sys-outline));border-right-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}return t})();var AfA=["*"],N8;function efA(){if(N8===void 0&&(N8=null,typeof window<"u")){let t=window;t.trustedTypes!==void 0&&(N8=t.trustedTypes.createPolicy("angular#components",{createHTML:e=>e}))}return N8}function Vh(t){return efA()?.createHTML(t)||t}function Mq(t){return Error(`Unable to find icon with the name "${t}"`)}function tfA(){return Error("Could not find HttpClient for use with Angular Material icons. Please add provideHttpClient() to your providers.")}function bq(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function kq(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}var S0=class{url;svgText;options;svgElement;constructor(e,A,i){this.url=e,this.svgText=A,this.options=i}},ifA=(()=>{class t{_httpClient;_sanitizer;_errorHandler;_document;_svgIconConfigs=new Map;_iconSetConfigs=new Map;_cachedIconsByUrl=new Map;_inProgressUrlFetches=new Map;_fontCssClassesByAlias=new Map;_resolvers=[];_defaultFontSetClass=["material-icons","mat-ligature-font"];constructor(A,i,n,o){this._httpClient=A,this._sanitizer=i,this._errorHandler=o,this._document=n}addSvgIcon(A,i,n){return this.addSvgIconInNamespace("",A,i,n)}addSvgIconLiteral(A,i,n){return this.addSvgIconLiteralInNamespace("",A,i,n)}addSvgIconInNamespace(A,i,n,o){return this._addSvgIconConfig(A,i,new S0(n,null,o))}addSvgIconResolver(A){return this._resolvers.push(A),this}addSvgIconLiteralInNamespace(A,i,n,o){let r=this._sanitizer.sanitize(Xr.HTML,n);if(!r)throw kq(n);let s=Vh(r);return this._addSvgIconConfig(A,i,new S0("",s,o))}addSvgIconSet(A,i){return this.addSvgIconSetInNamespace("",A,i)}addSvgIconSetLiteral(A,i){return this.addSvgIconSetLiteralInNamespace("",A,i)}addSvgIconSetInNamespace(A,i,n){return this._addSvgIconSetConfig(A,new S0(i,null,n))}addSvgIconSetLiteralInNamespace(A,i,n){let o=this._sanitizer.sanitize(Xr.HTML,i);if(!o)throw kq(i);let r=Vh(o);return this._addSvgIconSetConfig(A,new S0("",r,n))}registerFontClassAlias(A,i=A){return this._fontCssClassesByAlias.set(A,i),this}classNameForFontAlias(A){return this._fontCssClassesByAlias.get(A)||A}setDefaultFontSetClass(...A){return this._defaultFontSetClass=A,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(A){let i=this._sanitizer.sanitize(Xr.RESOURCE_URL,A);if(!i)throw bq(A);let n=this._cachedIconsByUrl.get(i);return n?Ce(F8(n)):this._loadSvgIconFromConfig(new S0(A,null)).pipe(So(o=>this._cachedIconsByUrl.set(i,o)),je(o=>F8(o)))}getNamedSvgIcon(A,i=""){let n=Sq(i,A),o=this._svgIconConfigs.get(n);if(o)return this._getSvgFromConfig(o);if(o=this._getIconConfigFromResolvers(i,A),o)return this._svgIconConfigs.set(n,o),this._getSvgFromConfig(o);let r=this._iconSetConfigs.get(i);return r?this._getSvgFromIconSetConfigs(A,r):d2(Mq(n))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(A){return A.svgText?Ce(F8(this._svgElementFromConfig(A))):this._loadSvgIconFromConfig(A).pipe(je(i=>F8(i)))}_getSvgFromIconSetConfigs(A,i){let n=this._extractIconWithNameFromAnySet(A,i);if(n)return Ce(n);let o=i.filter(r=>!r.svgText).map(r=>this._loadSvgIconSetFromConfig(r).pipe(Gr(s=>{let c=`Loading icon set URL: ${this._sanitizer.sanitize(Xr.RESOURCE_URL,r.url)} failed: ${s.message}`;return this._errorHandler.handleError(new Error(c)),Ce(null)})));return gu(o).pipe(je(()=>{let r=this._extractIconWithNameFromAnySet(A,i);if(!r)throw Mq(A);return r}))}_extractIconWithNameFromAnySet(A,i){for(let n=i.length-1;n>=0;n--){let o=i[n];if(o.svgText&&o.svgText.toString().indexOf(A)>-1){let r=this._svgElementFromConfig(o),s=this._extractSvgIconFromSet(r,A,o.options);if(s)return s}}return null}_loadSvgIconFromConfig(A){return this._fetchIcon(A).pipe(So(i=>A.svgText=i),je(()=>this._svgElementFromConfig(A)))}_loadSvgIconSetFromConfig(A){return A.svgText?Ce(null):this._fetchIcon(A).pipe(So(i=>A.svgText=i))}_extractSvgIconFromSet(A,i,n){let o=A.querySelector(`[id="${i}"]`);if(!o)return null;let r=o.cloneNode(!0);if(r.removeAttribute("id"),r.nodeName.toLowerCase()==="svg")return this._setSvgAttributes(r,n);if(r.nodeName.toLowerCase()==="symbol")return this._setSvgAttributes(this._toSvgElement(r),n);let s=this._svgElementFromString(Vh(""));return s.appendChild(r),this._setSvgAttributes(s,n)}_svgElementFromString(A){let i=this._document.createElement("DIV");i.innerHTML=A;let n=i.querySelector("svg");if(!n)throw Error(" tag not found");return n}_toSvgElement(A){let i=this._svgElementFromString(Vh("")),n=A.attributes;for(let o=0;oVh(c)),nl(()=>this._inProgressUrlFetches.delete(r)),Iu());return this._inProgressUrlFetches.set(r,a),a}_addSvgIconConfig(A,i,n){return this._svgIconConfigs.set(Sq(A,i),n),this}_addSvgIconSetConfig(A,i){let n=this._iconSetConfigs.get(A);return n?n.push(i):this._iconSetConfigs.set(A,[i]),this}_svgElementFromConfig(A){if(!A.svgElement){let i=this._svgElementFromString(A.svgText);this._setSvgAttributes(i,A.options),A.svgElement=i}return A.svgElement}_getIconConfigFromResolvers(A,i){for(let n=0;ne?e.pathname+e.search:""}}var Rq=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],afA=Rq.map(t=>`[${t}]`).join(", "),cfA=/^url\(['"]?#(.*?)['"]?\)$/,_c=(()=>{class t{_elementRef=f(se);_iconRegistry=f(ifA);_location=f(rfA);_errorHandler=f(Ps);_defaultColor;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;inline=!1;get svgIcon(){return this._svgIcon}set svgIcon(A){A!==this._svgIcon&&(A?this._updateSvgIcon(A):this._svgIcon&&this._clearSvgElement(),this._svgIcon=A)}_svgIcon;get fontSet(){return this._fontSet}set fontSet(A){let i=this._cleanupFontValue(A);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}_fontSet;get fontIcon(){return this._fontIcon}set fontIcon(A){let i=this._cleanupFontValue(A);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_fontIcon;_previousFontSetClass=[];_previousFontIconClass;_svgName;_svgNamespace;_previousPath;_elementsWithExternalReferences;_currentIconFetch=Kt.EMPTY;constructor(){let A=f(new Wr("aria-hidden"),{optional:!0}),i=f(ofA,{optional:!0});i&&(i.color&&(this.color=this._defaultColor=i.color),i.fontSet&&(this.fontSet=i.fontSet)),A||this._elementRef.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(A){if(!A)return["",""];let i=A.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${A}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){let A=this._elementsWithExternalReferences;if(A&&A.size){let i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(A){this._clearSvgElement();let i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(A),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(A)}_clearSvgElement(){let A=this._elementRef.nativeElement,i=A.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){let n=A.childNodes[i];(n.nodeType!==1||n.nodeName.toLowerCase()==="svg")&&n.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;let A=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(n=>n.length>0);this._previousFontSetClass.forEach(n=>A.classList.remove(n)),i.forEach(n=>A.classList.add(n)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&A.classList.remove(this._previousFontIconClass),this.fontIcon&&A.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(A){return typeof A=="string"?A.trim().split(" ")[0]:A}_prependPathToReferences(A){let i=this._elementsWithExternalReferences;i&&i.forEach((n,o)=>{n.forEach(r=>{o.setAttribute(r.name,`url('${A}#${r.value}')`)})})}_cacheChildrenWithExternalReferences(A){let i=A.querySelectorAll(afA),n=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let o=0;o{let s=i[o],a=s.getAttribute(r),c=a?a.match(cfA):null;if(c){let g=n.get(s);g||(g=[],n.set(s,g)),g.push({name:r,value:c[1]})}})}_updateSvgIcon(A){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),A){let[i,n]=this._splitIconName(A);i&&(this._svgNamespace=i),n&&(this._svgName=n),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(n,i).pipe(Xn(1)).subscribe(o=>this._setSvgElement(o),o=>{let r=`Error retrieving icon ${i}:${n}! ${o.message}`;this._errorHandler.handleError(new Error(r))})}}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(i,n){i&2&&(Ke("data-mat-icon-type",n._usingFontIcon()?"font":"svg")("data-mat-icon-name",n._svgName||n.fontIcon)("data-mat-icon-namespace",n._svgNamespace||n.fontSet)("fontIcon",n._usingFontIcon()?n.fontIcon:null),Ro(n.color?"mat-"+n.color:""),he("mat-icon-inline",n.inline)("mat-icon-no-color",n.color!=="primary"&&n.color!=="accent"&&n.color!=="warn"))},inputs:{color:"color",inline:[2,"inline","inline",ge],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],ngContentSelectors:AfA,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color, inherit)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0})}return t})(),Lq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn,pn]})}return t})();var lfA=["trigger"],IfA=["panel"],CfA=[[["mat-select-trigger"]],"*"],dfA=["mat-select-trigger","*"];function BfA(t,e){if(t&1&&(S(0,"span",4),AA(1),N()),t&2){let A=Y();_(),tt(A.placeholder)}}function EfA(t,e){t&1&&Ue(0)}function QfA(t,e){if(t&1&&(S(0,"span",11),AA(1),N()),t&2){let A=Y(2);_(),tt(A.triggerValue)}}function ufA(t,e){if(t&1&&(S(0,"span",5),NA(1,EfA,1,0)(2,QfA,2,1,"span",11),N()),t&2){let A=Y();_(),_A(A.customTrigger?1:2)}}function hfA(t,e){if(t&1){let A=me();S(0,"div",12,1),mA("@transformPanel.done",function(n){QA(A);let o=Y();return uA(o._panelDoneAnimatingStream.next(n.toState))})("keydown",function(n){QA(A);let o=Y();return uA(o._handleKeydown(n))}),Ue(2,1),N()}if(t&2){let A=Y();qH("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",A._getPanelTheme(),""),yA("ngClass",A.panelClass)("@transformPanel","showing"),Ke("id",A.id+"-panel")("aria-multiselectable",A.multiple)("aria-label",A.ariaLabel||null)("aria-labelledby",A._getPanelAriaLabelledby())}}var ffA={transformPanelWrap:nc("transformPanelWrap",[$r("* => void",Uk("@transformPanel",[Kk()],{optional:!0}))]),transformPanel:nc("transformPanel",[$s("void",Do({opacity:0,transform:"scale(1, 0.8)"})),$r("void => showing",Is("120ms cubic-bezier(0, 0, 0.2, 1)",Do({opacity:1,transform:"scale(1, 1)"}))),$r("* => void",Is("100ms linear",Do({opacity:0})))])};var mfA=new eA("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.reposition()}});var pfA=new eA("MAT_SELECT_CONFIG");var DfA=new eA("MatSelectTrigger"),lR=class{source;value;constructor(e,A){this.source=e,this.value=A}},YB=(()=>{class t{_viewportRuler=f(Nc);_changeDetectorRef=f(Et);_elementRef=f(se);_dir=f(po,{optional:!0});_idGenerator=f(an);_parentFormField=f(lh,{optional:!0});ngControl=f(ec,{self:!0,optional:!0});_liveAnnouncer=f(l6);_defaultOptions=f(pfA,{optional:!0});_initialized=new qA;options;optionGroups;customTrigger;_positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}];_scrollOptionIntoView(A){let i=this.options.toArray()[A];if(i){let n=this.panel.nativeElement,o=Fz(A,this.options,this.optionGroups),r=i._getHostElement();A===0&&o===1?n.scrollTop=0:n.scrollTop=_z(r.offsetTop,r.offsetHeight,n.scrollTop,n.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(A){return new lR(this,A)}_scrollStrategyFactory=f(mfA);_panelOpen=!1;_compareWith=(A,i)=>A===i;_uid=this._idGenerator.getId("mat-select-");_triggerAriaLabelledBy=null;_previousControl;_destroy=new qA;_errorStateTracker;stateChanges=new qA;disableAutomaticLabeling=!0;userAriaDescribedBy;_selectionModel;_keyManager;_preferredOverlayOrigin;_overlayWidth;_onChange=()=>{};_onTouched=()=>{};_valueId=this._idGenerator.getId("mat-select-value-");_panelDoneAnimatingStream=new qA;_scrollStrategy;_overlayPanelClass=this._defaultOptions?.overlayPanelClass||"";get focused(){return this._focused||this._panelOpen}_focused=!1;controlType="mat-select";trigger;panel;_overlayDir;panelClass;disabled=!1;disableRipple=!1;tabIndex=0;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(A){this._hideSingleSelectionIndicator=A,this._syncParentProperties()}_hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1;get placeholder(){return this._placeholder}set placeholder(A){this._placeholder=A,this.stateChanges.next()}_placeholder;get required(){return this._required??this.ngControl?.control?.hasValidator(Ac.required)??!1}set required(A){this._required=A,this.stateChanges.next()}_required;get multiple(){return this._multiple}set multiple(A){this._selectionModel,this._multiple=A}_multiple=!1;disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1;get compareWith(){return this._compareWith}set compareWith(A){this._compareWith=A,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(A){this._assignValue(A)&&this._onChange(A)}_value;ariaLabel="";ariaLabelledby;get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(A){this._errorStateTracker.matcher=A}typeaheadDebounceInterval;sortComparator;get id(){return this._id}set id(A){this._id=A||this._uid,this.stateChanges.next()}_id;get errorState(){return this._errorStateTracker.errorState}set errorState(A){this._errorStateTracker.errorState=A}panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto";canSelectNullableOptions=this._defaultOptions?.canSelectNullableOptions??!1;optionSelectionChanges=el(()=>{let A=this.options;return A?A.changes.pipe(On(A),$n(()=>Hn(...A.map(i=>i.onSelectionChange)))):this._initialized.pipe($n(()=>this.optionSelectionChanges))});openedChange=new YA;_openedStream=this.openedChange.pipe(Nt(A=>A),je(()=>{}));_closedStream=this.openedChange.pipe(Nt(A=>!A),je(()=>{}));selectionChange=new YA;valueChange=new YA;constructor(){let A=f(d6),i=f(ih,{optional:!0}),n=f(YI,{optional:!0}),o=f(new Wr("tabindex"),{optional:!0});this.ngControl&&(this.ngControl.valueAccessor=this),this._defaultOptions?.typeaheadDebounceInterval!=null&&(this.typeaheadDebounceInterval=this._defaultOptions.typeaheadDebounceInterval),this._errorStateTracker=new BB(A,this.ngControl,n,i,this.stateChanges),this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=o==null?0:parseInt(o)||0,this.id=this.id}ngOnInit(){this._selectionModel=new P2(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(il(),kt(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen)),this._viewportRuler.change().pipe(kt(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(kt(this._destroy)).subscribe(A=>{A.added.forEach(i=>i.select()),A.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(On(null),kt(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){let A=this._getTriggerAriaLabelledby(),i=this.ngControl;if(A!==this._triggerAriaLabelledBy){let n=this._elementRef.nativeElement;this._triggerAriaLabelledBy=A,A?n.setAttribute("aria-labelledby",A):n.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(this._previousControl!==void 0&&i.disabled!==null&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(A){(A.disabled||A.userAriaDescribedBy)&&this.stateChanges.next(),A.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this.typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_trackedModal=null;_applyModalPanelOwnership(){let A=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!A)return;let i=`${this.id}-panel`;this._trackedModal&&c6(this._trackedModal,"aria-owns",i),wk(A,"aria-owns",i),this._trackedModal=A}_clearFromModal(){if(!this._trackedModal)return;let A=`${this.id}-panel`;c6(this._trackedModal,"aria-owns",A),this._trackedModal=null}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next())}writeValue(A){this._assignValue(A)}registerOnChange(A){this._onChange=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){let A=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&A.reverse(),A.join(", ")}return this._selectionModel.selected[0].viewValue}updateErrorState(){this._errorStateTracker.updateErrorState()}_isRtl(){return this._dir?this._dir.value==="rtl":!1}_handleKeydown(A){this.disabled||(this.panelOpen?this._handleOpenKeydown(A):this._handleClosedKeydown(A))}_handleClosedKeydown(A){let i=A.keyCode,n=i===40||i===38||i===37||i===39,o=i===13||i===32,r=this._keyManager;if(!r.isTyping()&&o&&!sr(A)||(this.multiple||A.altKey)&&n)A.preventDefault(),this.open();else if(!this.multiple){let s=this.selected;r.onKeydown(A);let a=this.selected;a&&s!==a&&this._liveAnnouncer.announce(a.viewValue,1e4)}}_handleOpenKeydown(A){let i=this._keyManager,n=A.keyCode,o=n===40||n===38,r=i.isTyping();if(o&&A.altKey)A.preventDefault(),this.close();else if(!r&&(n===13||n===32)&&i.activeItem&&!sr(A))A.preventDefault(),i.activeItem._selectViaInteraction();else if(!r&&this._multiple&&n===65&&A.ctrlKey){A.preventDefault();let s=this.options.some(a=>!a.disabled&&!a.selected);this.options.forEach(a=>{a.disabled||(s?a.select():a.deselect())})}else{let s=i.activeItemIndex;i.onKeydown(A),this._multiple&&o&&A.shiftKey&&i.activeItem&&i.activeItemIndex!==s&&i.activeItem._selectViaInteraction()}}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(Xn(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(A){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&A)Array.isArray(A),A.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{let i=this._selectOptionByValue(A);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(A){let i=this.options.find(n=>{if(this._selectionModel.isSelected(n))return!1;try{return(n.value!=null||this.canSelectNullableOptions)&&this._compareWith(n.value,A)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(A){return A!==this._value||this._multiple&&Array.isArray(A)?(this.options&&this._setSelectionByValue(A),this._value=A,!0):!1}_skipPredicate=A=>this.panelOpen?!1:A.disabled;_getOverlayWidth(A){return this.panelWidth==="auto"?(A instanceof Ph?A.elementRef:A||this._elementRef).nativeElement.getBoundingClientRect().width:this.panelWidth===null?"":this.panelWidth}_syncParentProperties(){if(this.options)for(let A of this.options)A._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new a6(this.options).withTypeAhead(this.typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){let A=Hn(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(kt(A)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Hn(...this.options.map(i=>i._stateChanges)).pipe(kt(A)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(A,i){let n=this._selectionModel.isSelected(A);!this.canSelectNullableOptions&&A.value==null&&!this._multiple?(A.deselect(),this._selectionModel.clear(),this.value!=null&&this._propagateChanges(A.value)):(n!==A.selected&&(A.selected?this._selectionModel.select(A):this._selectionModel.deselect(A)),i&&this._keyManager.setActiveItem(A),this.multiple&&(this._sortValues(),i&&this.focus())),n!==this._selectionModel.isSelected(A)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){let A=this.options.toArray();this._selectionModel.sort((i,n)=>this.sortComparator?this.sortComparator(i,n,A):A.indexOf(i)-A.indexOf(n)),this.stateChanges.next()}}_propagateChanges(A){let i;this.multiple?i=this.selected.map(n=>n.value):i=this.selected?this.selected.value:A,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let A=-1;for(let i=0;i0}focus(A){this._elementRef.nativeElement.focus(A)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;let A=this._parentFormField?.getLabelId()||null,i=A?A+" ":"";return this.ariaLabelledby?i+this.ariaLabelledby:A}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;let A=this._parentFormField?.getLabelId(),i=(A?A+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(A){this.openedChange.emit(A)}setDescribedByIds(A){A.length?this._elementRef.nativeElement.setAttribute("aria-describedby",A.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-select"]],contentQueries:function(i,n,o){if(i&1&&(gi(o,DfA,5),gi(o,K2,5),gi(o,Nk,5)),i&2){let r;de(r=Be())&&(n.customTrigger=r.first),de(r=Be())&&(n.options=r),de(r=Be())&&(n.optionGroups=r)}},viewQuery:function(i,n){if(i&1&&(st(lfA,5),st(IfA,5),st(sR,5)),i&2){let o;de(o=Be())&&(n.trigger=o.first),de(o=Be())&&(n.panel=o.first),de(o=Be())&&(n._overlayDir=o.first)}},hostAttrs:["role","combobox","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,n){i&1&&mA("keydown",function(r){return n._handleKeydown(r)})("focus",function(){return n._onFocus()})("blur",function(){return n._onBlur()}),i&2&&(Ke("id",n.id)("tabindex",n.disabled?-1:n.tabIndex)("aria-controls",n.panelOpen?n.id+"-panel":null)("aria-expanded",n.panelOpen)("aria-label",n.ariaLabel||null)("aria-required",n.required.toString())("aria-disabled",n.disabled.toString())("aria-invalid",n.errorState)("aria-activedescendant",n._getAriaActiveDescendant()),he("mat-mdc-select-disabled",n.disabled)("mat-mdc-select-invalid",n.errorState)("mat-mdc-select-required",n.required)("mat-mdc-select-empty",n.empty)("mat-mdc-select-multiple",n.multiple))},inputs:{userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[2,"disabled","disabled",ge],disableRipple:[2,"disableRipple","disableRipple",ge],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:en(A)],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",ge],placeholder:"placeholder",required:[2,"required","required",ge],multiple:[2,"multiple","multiple",ge],disableOptionCentering:[2,"disableOptionCentering","disableOptionCentering",ge],compareWith:"compareWith",value:"value",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[2,"typeaheadDebounceInterval","typeaheadDebounceInterval",en],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth",canSelectNullableOptions:[2,"canSelectNullableOptions","canSelectNullableOptions",ge]},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],features:[ut([{provide:gh,useExisting:t},{provide:xk,useExisting:t}]),Xt],ngContentSelectors:dfA,decls:11,vars:8,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","attach","detach","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"keydown","ngClass"]],template:function(i,n){if(i&1){let o=me();$t(CfA),S(0,"div",2,0),mA("click",function(){return QA(o),uA(n.open())}),S(3,"div",3),NA(4,BfA,2,1,"span",4)(5,ufA,3,1,"span",5),N(),S(6,"div",6)(7,"div",7),ur(),S(8,"svg",8),TA(9,"path",9),N()()()(),NA(10,hfA,3,9,"ng-template",10),mA("backdropClick",function(){return QA(o),uA(n.close())})("attach",function(){return QA(o),uA(n._onAttached())})("detach",function(){return QA(o),uA(n.close())})}if(i&2){let o=Cr(1);_(3),Ke("id",n._valueId),_(),_A(n.empty?4:5),_(6),yA("cdkConnectedOverlayPanelClass",n._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",n._scrollStrategy)("cdkConnectedOverlayOrigin",n._preferredOverlayOrigin||o)("cdkConnectedOverlayOpen",n.panelOpen)("cdkConnectedOverlayPositions",n._positions)("cdkConnectedOverlayWidth",n._overlayWidth)}},dependencies:[Ph,sR,Vs],styles:['.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color, var(--mat-sys-on-surface));font-family:var(--mat-select-trigger-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-select-trigger-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-select-trigger-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-select-trigger-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-select-trigger-text-tracking, var(--mat-sys-body-large-tracking))}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-disabled .mat-mdc-select-placeholder{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color, var(--mat-sys-error))}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}@media(forced-colors: active){.mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .mat-mdc-select-arrow svg{fill:GrayText}}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color, var(--mat-sys-surface-container))}@media(forced-colors: active){div.mat-mdc-select-panel{outline:solid 1px}}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}div.mat-mdc-select-panel .mat-mdc-option{--mdc-list-list-item-container-color: var(--mat-select-panel-background-color)}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color, var(--mat-sys-on-surface-variant))}.mat-form-field-no-animations .mat-mdc-select-placeholder,._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform, translateY(-8px))}'],encapsulation:2,data:{animation:[ffA.transformPanel]},changeDetection:0})}return t})();var wfA=["tooltip"],Fq=20;var _q=new eA("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.reposition({scrollThrottle:Fq})}});function yfA(t){return()=>t.scrollStrategies.reposition({scrollThrottle:Fq})}var vfA={provide:_q,deps:[Br],useFactory:yfA};function MfA(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}var bfA=new eA("mat-tooltip-default-options",{providedIn:"root",factory:MfA});var xq="tooltip-panel",Nq=Sc({passive:!0}),kfA=8,SfA=8,RfA=24,LfA=200,kl=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);_platform=f(ni);_ariaDescriber=f(wz);_focusMonitor=f(Jr);_dir=f(po);_injector=f(Zt);_defaultOptions=f(bfA,{optional:!0});_overlayRef;_tooltipInstance;_portal;_position="below";_positionAtOrigin=!1;_disabled=!1;_tooltipClass;_viewInitialized=!1;_pointerExitEventsInitialized=!1;_tooltipComponent=xfA;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending;_dirSubscribed=!1;get position(){return this._position}set position(A){A!==this._position&&(this._position=A,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(A){this._positionAtOrigin=Ar(A),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(A){let i=Ar(A);this._disabled!==i&&(this._disabled=i,i?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(A){this._showDelay=Zs(A)}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(A){this._hideDelay=Zs(A),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}_hideDelay;touchGestures="auto";get message(){return this._message}set message(A){let i=this._message;this._message=A!=null?String(A).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(i)}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(A){this._tooltipClass=A,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}_passiveListeners=[];_touchstartTimeout=null;_destroyed=new qA;_isDestroyed=!1;constructor(){let A=this._defaultOptions;A&&(this._showDelay=A.showDelay,this._hideDelay=A.hideDelay,A.position&&(this.position=A.position),A.positionAtOrigin&&(this.positionAtOrigin=A.positionAtOrigin),A.touchGestures&&(this.touchGestures=A.touchGestures),A.tooltipClass&&(this.tooltipClass=A.tooltipClass)),this._viewportMargin=kfA}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(kt(this._destroyed)).subscribe(A=>{A?A==="keyboard"&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){let A=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,n])=>{A.removeEventListener(i,n,Nq)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._isDestroyed=!0,this._ariaDescriber.removeDescription(A,this.message,"tooltip"),this._focusMonitor.stopMonitoring(A)}show(A=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible()){this._tooltipInstance?._cancelPendingAnimations();return}let n=this._createOverlay(i);this._detach(),this._portal=this._portal||new yg(this._tooltipComponent,this._injector.get(Sn));let o=this._tooltipInstance=n.attach(this._portal).instance;o._triggerElement=this._elementRef.nativeElement,o._mouseLeaveHideDelay=this._hideDelay,o.afterHidden().pipe(kt(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),o.show(A)}hide(A=this.hideDelay){let i=this._tooltipInstance;i&&(i.isVisible()?i.hide(A):(i._cancelPendingAnimations(),this._detach()))}toggle(A){this._isTooltipVisible()?this.hide():this.show(void 0,A)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(A){if(this._overlayRef){let r=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!A)&&r._origin instanceof se)return this._overlayRef;this._detach()}let i=this._injector.get(q2).getAncestorScrollContainers(this._elementRef),n=this._injector.get(Br),o=n.position().flexibleConnectedTo(this.positionAtOrigin?A||this._elementRef:this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return o.positionChanges.pipe(kt(this._destroyed)).subscribe(r=>{this._updateCurrentPositionClass(r.connectionPair),this._tooltipInstance&&r.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=n.create({direction:this._dir,positionStrategy:o,panelClass:`${this._cssClassPrefix}-${xq}`,scrollStrategy:this._injector.get(_q)()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(kt(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(kt(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(kt(this._destroyed)).subscribe(r=>{this._isTooltipVisible()&&r.keyCode===27&&!sr(r)&&(r.preventDefault(),r.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._dirSubscribed||(this._dirSubscribed=!0,this._dir.change.pipe(kt(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(A){let i=A.getConfig().positionStrategy,n=this._getOrigin(),o=this._getOverlayPosition();i.withPositions([this._addOffset(sA(sA({},n.main),o.main)),this._addOffset(sA(sA({},n.fallback),o.fallback))])}_addOffset(A){let i=SfA,n=!this._dir||this._dir.value=="ltr";return A.originY==="top"?A.offsetY=-i:A.originY==="bottom"?A.offsetY=i:A.originX==="start"?A.offsetX=n?-i:i:A.originX==="end"&&(A.offsetX=n?i:-i),A}_getOrigin(){let A=!this._dir||this._dir.value=="ltr",i=this.position,n;i=="above"||i=="below"?n={originX:"center",originY:i=="above"?"top":"bottom"}:i=="before"||i=="left"&&A||i=="right"&&!A?n={originX:"start",originY:"center"}:(i=="after"||i=="right"&&A||i=="left"&&!A)&&(n={originX:"end",originY:"center"});let{x:o,y:r}=this._invertPosition(n.originX,n.originY);return{main:n,fallback:{originX:o,originY:r}}}_getOverlayPosition(){let A=!this._dir||this._dir.value=="ltr",i=this.position,n;i=="above"?n={overlayX:"center",overlayY:"bottom"}:i=="below"?n={overlayX:"center",overlayY:"top"}:i=="before"||i=="left"&&A||i=="right"&&!A?n={overlayX:"end",overlayY:"center"}:(i=="after"||i=="right"&&A||i=="left"&&!A)&&(n={overlayX:"start",overlayY:"center"});let{x:o,y:r}=this._invertPosition(n.overlayX,n.overlayY);return{main:n,fallback:{overlayX:o,overlayY:r}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),Ir(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(A){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=A,this._tooltipInstance._markForCheck())}_invertPosition(A,i){return this.position==="above"||this.position==="below"?i==="top"?i="bottom":i==="bottom"&&(i="top"):A==="end"?A="start":A==="start"&&(A="end"),{x:A,y:i}}_updateCurrentPositionClass(A){let{overlayY:i,originX:n,originY:o}=A,r;if(i==="center"?this._dir&&this._dir.value==="rtl"?r=n==="end"?"left":"right":r=n==="start"?"left":"right":r=i==="bottom"&&o==="top"?"above":"below",r!==this._currentPosition){let s=this._overlayRef;if(s){let a=`${this._cssClassPrefix}-${xq}-`;s.removePanelClass(a+this._currentPosition),s.addPanelClass(a+r)}this._currentPosition=r}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",A=>{this._setupPointerExitEventsIfNeeded();let i;A.x!==void 0&&A.y!==void 0&&(i=A),this.show(void 0,i)}]):this.touchGestures!=="off"&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",A=>{let i=A.targetTouches?.[0],n=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout);let o=500;this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,n)},this._defaultOptions?.touchLongPressShowDelay??o)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;let A=[];if(this._platformSupportsMouseEvents())A.push(["mouseleave",i=>{let n=i.relatedTarget;(!n||!this._overlayRef?.overlayElement.contains(n))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if(this.touchGestures!=="off"){this._disableNativeGesturesIfNecessary();let i=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay)};A.push(["touchend",i],["touchcancel",i])}this._addListeners(A),this._passiveListeners.push(...A)}_addListeners(A){A.forEach(([i,n])=>{this._elementRef.nativeElement.addEventListener(i,n,Nq)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(A){if(this._isTooltipVisible()){let i=this._injector.get(at).elementFromPoint(A.clientX,A.clientY),n=this._elementRef.nativeElement;i!==n&&!n.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){let A=this.touchGestures;if(A!=="off"){let i=this._elementRef.nativeElement,n=i.style;(A==="on"||i.nodeName!=="INPUT"&&i.nodeName!=="TEXTAREA")&&(n.userSelect=n.msUserSelect=n.webkitUserSelect=n.MozUserSelect="none"),(A==="on"||!i.draggable)&&(n.webkitUserDrag="none"),n.touchAction="none",n.webkitTapHighlightColor="transparent"}}_syncAriaDescription(A){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,A,"tooltip"),this._isDestroyed||Ir({write:()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")}},{injector:this._injector}))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,n){i&2&&he("mat-mdc-tooltip-disabled",n.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return t})(),xfA=(()=>{class t{_changeDetectorRef=f(Et);_elementRef=f(se);_isMultiline=!1;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled;_tooltip;_closeOnInteraction=!1;_isVisible=!1;_onHide=new qA;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";constructor(){let A=f(_i,{optional:!0});this._animationsDisabled=A==="NoopAnimations"}show(A){this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},A)}hide(A){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},A)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:A}){(!A||!this._triggerElement.contains(A))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){let A=this._elementRef.nativeElement.getBoundingClientRect();return A.height>RfA&&A.width>=LfA}_handleAnimationEnd({animationName:A}){(A===this._showAnimation||A===this._hideAnimation)&&this._finalizeAnimation(A===this._showAnimation)}_cancelPendingAnimations(){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(A){A?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(A){let i=this._tooltip.nativeElement,n=this._showAnimation,o=this._hideAnimation;if(i.classList.remove(A?o:n),i.classList.add(A?n:o),this._isVisible!==A&&(this._isVisible=A,this._changeDetectorRef.markForCheck()),A&&!this._animationsDisabled&&typeof getComputedStyle=="function"){let r=getComputedStyle(i);(r.getPropertyValue("animation-duration")==="0s"||r.getPropertyValue("animation-name")==="none")&&(this._animationsDisabled=!0)}A&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(A))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-tooltip-component"]],viewQuery:function(i,n){if(i&1&&st(wfA,7),i&2){let o;de(o=Be())&&(n._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(i,n){i&1&&mA("mouseleave",function(r){return n._handleMouseLeave(r)})},decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(i,n){if(i&1){let o=me();S(0,"div",1,0),mA("animationend",function(s){return QA(o),uA(n._handleAnimationEnd(s))}),S(2,"div",2),AA(3),N()()}i&2&&(he("mdc-tooltip--multiline",n._isMultiline),yA("ngClass",n.tooltipClass),_(3),tt(n.message))},dependencies:[Vs],styles:['.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mdc-plain-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mdc-plain-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-plain-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mdc-plain-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mdc-plain-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mdc-plain-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mdc-plain-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-mdc-tooltip-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel{line-height:normal}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}return t})();var IR=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[vfA],imports:[vk,Z2,pn,pn,j2]})}return t})();function FfA(t,e){if(t&1&&(S(0,"mat-option",17),AA(1),N()),t&2){let A=e.$implicit;yA("value",A),_(),It(" ",A," ")}}function _fA(t,e){if(t&1){let A=me();S(0,"mat-form-field",14)(1,"mat-select",16,0),mA("selectionChange",function(n){QA(A);let o=Y(2);return uA(o._changePageSize(n.value))}),dn(3,FfA,2,2,"mat-option",17,zn),N(),S(5,"div",18),mA("click",function(){QA(A);let n=Cr(2);return uA(n.open())}),N()()}if(t&2){let A=Y(2);yA("appearance",A._formFieldAppearance)("color",A.color),_(),yA("value",A.pageSize)("disabled",A.disabled)("aria-labelledby",A._pageSizeLabelId)("panelClass",A.selectConfig.panelClass||"")("disableOptionCentering",A.selectConfig.disableOptionCentering),_(2),Bn(A._displayedPageSizeOptions)}}function GfA(t,e){if(t&1&&(S(0,"div",15),AA(1),N()),t&2){let A=Y(2);_(),tt(A.pageSize)}}function KfA(t,e){if(t&1&&(S(0,"div",3)(1,"div",13),AA(2),N(),NA(3,_fA,6,7,"mat-form-field",14)(4,GfA,2,1,"div",15),N()),t&2){let A=Y();_(),Ke("id",A._pageSizeLabelId),_(),It(" ",A._intl.itemsPerPageLabel," "),_(),_A(A._displayedPageSizeOptions.length>1?3:-1),_(),_A(A._displayedPageSizeOptions.length<=1?4:-1)}}function UfA(t,e){if(t&1){let A=me();S(0,"button",19),mA("click",function(){QA(A);let n=Y();return uA(n._buttonClicked(0,n._previousButtonsDisabled()))}),ur(),S(1,"svg",8),TA(2,"path",20),N()()}if(t&2){let A=Y();yA("matTooltip",A._intl.firstPageLabel)("matTooltipDisabled",A._previousButtonsDisabled())("disabled",A._previousButtonsDisabled()),Ke("aria-label",A._intl.firstPageLabel)}}function JfA(t,e){if(t&1){let A=me();S(0,"button",21),mA("click",function(){QA(A);let n=Y();return uA(n._buttonClicked(n.getNumberOfPages()-1,n._nextButtonsDisabled()))}),ur(),S(1,"svg",8),TA(2,"path",22),N()()}if(t&2){let A=Y();yA("matTooltip",A._intl.lastPageLabel)("matTooltipDisabled",A._nextButtonsDisabled())("disabled",A._nextButtonsDisabled()),Ke("aria-label",A._intl.lastPageLabel)}}var _8=(()=>{class t{changes=new qA;itemsPerPageLabel="Items per page:";nextPageLabel="Next page";previousPageLabel="Previous page";firstPageLabel="First page";lastPageLabel="Last page";getRangeLabel=(A,i,n)=>{if(n==0||i==0)return`0 of ${n}`;n=Math.max(n,0);let o=A*i,r=o{class t{_intl=f(_8);_changeDetectorRef=f(Et);_formFieldAppearance;_pageSizeLabelId=f(an).getId("mat-paginator-page-size-label-");_intlChanges;_isInitialized=!1;_initializedStream=new sg(1);color;get pageIndex(){return this._pageIndex}set pageIndex(A){this._pageIndex=Math.max(A||0,0),this._changeDetectorRef.markForCheck()}_pageIndex=0;get length(){return this._length}set length(A){this._length=A||0,this._changeDetectorRef.markForCheck()}_length=0;get pageSize(){return this._pageSize}set pageSize(A){this._pageSize=Math.max(A||0,0),this._updateDisplayedPageSizeOptions()}_pageSize;get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(A){this._pageSizeOptions=(A||[]).map(i=>en(i,0)),this._updateDisplayedPageSizeOptions()}_pageSizeOptions=[];hidePageSize=!1;showFirstLastButtons=!1;selectConfig={};disabled=!1;page=new YA;_displayedPageSizeOptions;initialized=this._initializedStream;constructor(){let A=this._intl,i=f(TfA,{optional:!0});if(this._intlChanges=A.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),i){let{pageSize:n,pageSizeOptions:o,hidePageSize:r,showFirstLastButtons:s}=i;n!=null&&(this._pageSize=n),o!=null&&(this._pageSizeOptions=o),r!=null&&(this.hidePageSize=r),s!=null&&(this.showFirstLastButtons=s)}this._formFieldAppearance=i?.formFieldAppearance||"outline"}ngOnInit(){this._isInitialized=!0,this._updateDisplayedPageSizeOptions(),this._initializedStream.next()}ngOnDestroy(){this._initializedStream.complete(),this._intlChanges.unsubscribe()}nextPage(){this.hasNextPage()&&this._navigate(this.pageIndex+1)}previousPage(){this.hasPreviousPage()&&this._navigate(this.pageIndex-1)}firstPage(){this.hasPreviousPage()&&this._navigate(0)}lastPage(){this.hasNextPage()&&this._navigate(this.getNumberOfPages()-1)}hasPreviousPage(){return this.pageIndex>=1&&this.pageSize!=0}hasNextPage(){let A=this.getNumberOfPages()-1;return this.pageIndexA-i),this._changeDetectorRef.markForCheck())}_emitPageEvent(A){this.page.emit({previousPageIndex:A,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}_navigate(A){let i=this.pageIndex;A!==i&&(this.pageIndex=A,this._emitPageEvent(i))}_buttonClicked(A,i){i||this._navigate(A)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-mdc-paginator"],inputs:{color:"color",pageIndex:[2,"pageIndex","pageIndex",en],length:[2,"length","length",en],pageSize:[2,"pageSize","pageSize",en],pageSizeOptions:"pageSizeOptions",hidePageSize:[2,"hidePageSize","hidePageSize",ge],showFirstLastButtons:[2,"showFirstLastButtons","showFirstLastButtons",ge],selectConfig:"selectConfig",disabled:[2,"disabled","disabled",ge]},outputs:{page:"page"},exportAs:["matPaginator"],decls:14,vars:12,consts:[["selectRef",""],[1,"mat-mdc-paginator-outer-container"],[1,"mat-mdc-paginator-container"],[1,"mat-mdc-paginator-page-size"],[1,"mat-mdc-paginator-range-actions"],["aria-live","polite",1,"mat-mdc-paginator-range-label"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","disabled"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-previous",3,"click","matTooltip","matTooltipDisabled","disabled"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true",1,"mat-mdc-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-next",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","disabled"],[1,"mat-mdc-paginator-page-size-label"],[1,"mat-mdc-paginator-page-size-select",3,"appearance","color"],[1,"mat-mdc-paginator-page-size-value"],["hideSingleSelectionIndicator","",3,"selectionChange","value","disabled","aria-labelledby","panelClass","disableOptionCentering"],[3,"value"],[1,"mat-mdc-paginator-touch-target",3,"click"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(i,n){i&1&&(S(0,"div",1)(1,"div",2),NA(2,KfA,5,4,"div",3),S(3,"div",4)(4,"div",5),AA(5),N(),NA(6,UfA,3,4,"button",6),S(7,"button",7),mA("click",function(){return n._buttonClicked(n.pageIndex-1,n._previousButtonsDisabled())}),ur(),S(8,"svg",8),TA(9,"path",9),N()(),_I(),S(10,"button",10),mA("click",function(){return n._buttonClicked(n.pageIndex+1,n._nextButtonsDisabled())}),ur(),S(11,"svg",8),TA(12,"path",11),N()(),NA(13,JfA,3,4,"button",12),N()()()),i&2&&(_(2),_A(n.hidePageSize?-1:2),_(3),It(" ",n._intl.getRangeLabel(n.pageIndex,n.pageSize,n.length)," "),_(),_A(n.showFirstLastButtons?6:-1),_(),yA("matTooltip",n._intl.previousPageLabel)("matTooltipDisabled",n._previousButtonsDisabled())("disabled",n._previousButtonsDisabled()),Ke("aria-label",n._intl.previousPageLabel),_(3),yA("matTooltip",n._intl.nextPageLabel)("matTooltipDisabled",n._nextButtonsDisabled())("disabled",n._nextButtonsDisabled()),Ke("aria-label",n._intl.nextPageLabel),_(3),_A(n.showFirstLastButtons?13:-1))},dependencies:[fl,YB,K2,QB,kl],styles:[".mat-mdc-paginator{display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-paginator-container-text-color, var(--mat-sys-on-surface));background-color:var(--mat-paginator-container-background-color, var(--mat-sys-surface));font-family:var(--mat-paginator-container-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-paginator-container-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-paginator-container-text-size, var(--mat-sys-body-small-size));font-weight:var(--mat-paginator-container-text-weight, var(--mat-sys-body-small-weight));letter-spacing:var(--mat-paginator-container-text-tracking, var(--mat-sys-body-small-tracking));--mat-form-field-container-height:var(--mat-paginator-form-field-container-height, 40px);--mat-form-field-container-vertical-padding:var(--mat-paginator-form-field-container-vertical-padding, 8px)}.mat-mdc-paginator .mat-mdc-select-value{font-size:var(--mat-paginator-select-trigger-text-size, var(--mat-sys-body-small-size))}.mat-mdc-paginator .mat-mdc-form-field-subscript-wrapper{display:none}.mat-mdc-paginator .mat-mdc-select{line-height:1.5}.mat-mdc-paginator-outer-container{display:flex}.mat-mdc-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap;width:100%;min-height:var(--mat-paginator-container-size, 56px)}.mat-mdc-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-mdc-paginator-page-size{margin-right:0;margin-left:8px}.mat-mdc-paginator-page-size-label{margin:0 4px}.mat-mdc-paginator-page-size-select{margin:0 4px;width:84px}.mat-mdc-paginator-range-label{margin:0 32px 0 24px}.mat-mdc-paginator-range-actions{display:flex;align-items:center}.mat-mdc-paginator-icon{display:inline-block;width:28px;fill:var(--mat-paginator-enabled-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button[aria-disabled] .mat-mdc-paginator-icon{fill:var(--mat-paginator-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}[dir=rtl] .mat-mdc-paginator-icon{transform:rotate(180deg)}@media(forced-colors: active){.mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon,.mat-mdc-paginator-icon{fill:currentColor;fill:CanvasText}.mat-mdc-paginator-range-actions .mat-mdc-icon-button{outline:solid 1px}}.mat-mdc-paginator-touch-target{display:var(--mat-paginator-touch-target-display, block);position:absolute;top:50%;left:50%;width:84px;height:48px;background-color:rgba(0,0,0,0);transform:translate(-50%, -50%);cursor:pointer}"],encapsulation:2,changeDetection:0})}return t})();var Kq=["*"],HfA=["content"],OfA=[[["mat-drawer"]],[["mat-drawer-content"]],"*"],zfA=["mat-drawer","mat-drawer-content","*"];function PfA(t,e){if(t&1){let A=me();S(0,"div",1),mA("click",function(){QA(A);let n=Y();return uA(n._onBackdropClicked())}),N()}if(t&2){let A=Y();he("mat-drawer-shown",A._isShowingBackdrop())}}function jfA(t,e){t&1&&(S(0,"mat-drawer-content"),Ue(1,2),N())}var qfA=new eA("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:VfA}),Uq=new eA("MAT_DRAWER_CONTAINER");function VfA(){return!1}var CR=(()=>{class t extends k0{_platform=f(ni);_changeDetectorRef=f(Et);_container=f(BR);constructor(){let A=f(se),i=f(q2),n=f(ye);super(A,i,n)}ngAfterContentInit(){this._container._contentMarginChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})}_shouldBeHidden(){if(this._platform.isBrowser)return!1;let{start:A,end:i}=this._container;return A!=null&&A.mode!=="over"&&A.opened||i!=null&&i.mode!=="over"&&i.opened}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-drawer-content"]],hostAttrs:[1,"mat-drawer-content"],hostVars:6,hostBindings:function(i,n){i&2&&(mo("margin-left",n._container._contentMargins.left,"px")("margin-right",n._container._contentMargins.right,"px"),he("mat-drawer-content-hidden",n._shouldBeHidden()))},features:[ut([{provide:k0,useExisting:t}]),lt],ngContentSelectors:Kq,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},encapsulation:2,changeDetection:0})}return t})(),dR=(()=>{class t{_elementRef=f(se);_focusTrapFactory=f(g6);_focusMonitor=f(Jr);_platform=f(ni);_ngZone=f(ye);_renderer=f(qi);_interactivityChecker=f(sh);_doc=f(at,{optional:!0});_container=f(Uq,{optional:!0});_focusTrap=null;_elementFocusedBeforeDrawerWasOpened=null;_eventCleanups;_isAttached;_anchor;get position(){return this._position}set position(A){A=A==="end"?"end":"start",A!==this._position&&(this._isAttached&&this._updatePositionInParent(A),this._position=A,this.onPositionChanged.emit())}_position="start";get mode(){return this._mode}set mode(A){this._mode=A,this._updateFocusTrapState(),this._modeChanged.next()}_mode="over";get disableClose(){return this._disableClose}set disableClose(A){this._disableClose=Ar(A)}_disableClose=!1;get autoFocus(){let A=this._autoFocus;return A??(this.mode==="side"?"dialog":"first-tabbable")}set autoFocus(A){(A==="true"||A==="false"||A==null)&&(A=Ar(A)),this._autoFocus=A}_autoFocus;get opened(){return this._opened}set opened(A){this.toggle(Ar(A))}_opened=!1;_openedVia;_animationStarted=new qA;_animationEnd=new qA;openedChange=new YA(!0);_openedStream=this.openedChange.pipe(Nt(A=>A),je(()=>{}));openedStart=this._animationStarted.pipe(Nt(()=>this.opened),wd(void 0));_closedStream=this.openedChange.pipe(Nt(A=>!A),je(()=>{}));closedStart=this._animationStarted.pipe(Nt(()=>!this.opened),wd(void 0));_destroyed=new qA;onPositionChanged=new YA;_content;_modeChanged=new qA;_injector=f(Zt);_changeDetectorRef=f(Et);constructor(){this.openedChange.pipe(kt(this._destroyed)).subscribe(A=>{A?(this._doc&&(this._elementFocusedBeforeDrawerWasOpened=this._doc.activeElement),this._takeFocus()):this._isFocusWithinDrawer()&&this._restoreFocus(this._openedVia||"program")}),this._ngZone.runOutsideAngular(()=>{let A=this._elementRef.nativeElement;lu(A,"keydown").pipe(Nt(i=>i.keyCode===27&&!this.disableClose&&!sr(i)),kt(this._destroyed)).subscribe(i=>this._ngZone.run(()=>{this.close(),i.stopPropagation(),i.preventDefault()})),this._eventCleanups=[this._renderer.listen(A,"transitionrun",this._handleTransitionEvent),this._renderer.listen(A,"transitionend",this._handleTransitionEvent),this._renderer.listen(A,"transitioncancel",this._handleTransitionEvent)]}),this._animationEnd.subscribe(()=>{this.openedChange.emit(this._opened)})}_forceFocus(A,i){this._interactivityChecker.isFocusable(A)||(A.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let n=()=>{o(),r(),A.removeAttribute("tabindex")},o=this._renderer.listen(A,"blur",n),r=this._renderer.listen(A,"mousedown",n)})),A.focus(i)}_focusByCssSelector(A,i){let n=this._elementRef.nativeElement.querySelector(A);n&&this._forceFocus(n,i)}_takeFocus(){if(!this._focusTrap)return;let A=this._elementRef.nativeElement;switch(this.autoFocus){case!1:case"dialog":return;case!0:case"first-tabbable":Ir(()=>{!this._focusTrap.focusInitialElement()&&typeof A.focus=="function"&&A.focus()},{injector:this._injector});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this.autoFocus);break}}_restoreFocus(A){this.autoFocus!=="dialog"&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,A):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null)}_isFocusWithinDrawer(){let A=this._doc.activeElement;return!!A&&this._elementRef.nativeElement.contains(A)}ngAfterViewInit(){this._isAttached=!0,this._position==="end"&&this._updatePositionInParent("end"),this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState())}ngOnDestroy(){this._eventCleanups.forEach(A=>A()),this._focusTrap?.destroy(),this._anchor?.remove(),this._anchor=null,this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}open(A){return this.toggle(!0,A)}close(){return this.toggle(!1)}_closeViaBackdropClick(){return this._setOpen(!1,!0,"mouse")}toggle(A=!this.opened,i){A&&i&&(this._openedVia=i);let n=this._setOpen(A,!A&&this._isFocusWithinDrawer(),this._openedVia||"program");return A||(this._openedVia=null),n}_setOpen(A,i,n){return A===this._opened?Promise.resolve(A?"open":"close"):(this._opened=A,this._container?._transitionsEnabled?this._setIsAnimating(!0):setTimeout(()=>{this._animationStarted.next(),this._animationEnd.next()}),this._elementRef.nativeElement.classList.toggle("mat-drawer-opened",A),!A&&i&&this._restoreFocus(n),this._changeDetectorRef.markForCheck(),this._updateFocusTrapState(),new Promise(o=>{this.openedChange.pipe(Xn(1)).subscribe(r=>o(r?"open":"close"))}))}_setIsAnimating(A){this._elementRef.nativeElement.classList.toggle("mat-drawer-animating",A)}_getWidth(){return this._elementRef.nativeElement.offsetWidth||0}_updateFocusTrapState(){this._focusTrap&&(this._focusTrap.enabled=!!this._container?.hasBackdrop&&this.opened)}_updatePositionInParent(A){if(!this._platform.isBrowser)return;let i=this._elementRef.nativeElement,n=i.parentNode;A==="end"?(this._anchor||(this._anchor=this._doc.createComment("mat-drawer-anchor"),n.insertBefore(this._anchor,i)),n.appendChild(i)):this._anchor&&this._anchor.parentNode.insertBefore(i,this._anchor)}_handleTransitionEvent=A=>{let i=this._elementRef.nativeElement;A.target===i&&this._ngZone.run(()=>{A.type==="transitionrun"?this._animationStarted.next(A):(A.type==="transitionend"&&this._setIsAnimating(!1),this._animationEnd.next(A))})};static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-drawer"]],viewQuery:function(i,n){if(i&1&&st(HfA,5),i&2){let o;de(o=Be())&&(n._content=o.first)}},hostAttrs:["tabIndex","-1",1,"mat-drawer"],hostVars:11,hostBindings:function(i,n){i&2&&(Ke("align",null),mo("visibility",!n._container&&!n.opened?"hidden":null),he("mat-drawer-end",n.position==="end")("mat-drawer-over",n.mode==="over")("mat-drawer-push",n.mode==="push")("mat-drawer-side",n.mode==="side"))},inputs:{position:"position",mode:"mode",disableClose:"disableClose",autoFocus:"autoFocus",opened:"opened"},outputs:{openedChange:"openedChange",_openedStream:"opened",openedStart:"openedStart",_closedStream:"closed",closedStart:"closedStart",onPositionChanged:"positionChanged"},exportAs:["matDrawer"],ngContentSelectors:Kq,decls:3,vars:0,consts:[["content",""],["cdkScrollable","",1,"mat-drawer-inner-container"]],template:function(i,n){i&1&&($t(),S(0,"div",1,0),Ue(2),N())},dependencies:[k0],encapsulation:2,changeDetection:0})}return t})(),BR=(()=>{class t{_dir=f(po,{optional:!0});_element=f(se);_ngZone=f(ye);_changeDetectorRef=f(Et);_animationMode=f(_i,{optional:!0});_transitionsEnabled=!1;_allDrawers;_drawers=new qa;_content;_userContent;get start(){return this._start}get end(){return this._end}get autosize(){return this._autosize}set autosize(A){this._autosize=Ar(A)}_autosize=f(qfA);get hasBackdrop(){return this._drawerHasBackdrop(this._start)||this._drawerHasBackdrop(this._end)}set hasBackdrop(A){this._backdropOverride=A==null?null:Ar(A)}_backdropOverride;backdropClick=new YA;_start;_end;_left;_right;_destroyed=new qA;_doCheckSubject=new qA;_contentMargins={left:null,right:null};_contentMarginChanges=new qA;get scrollable(){return this._userContent||this._content}_injector=f(Zt);constructor(){let A=f(ni),i=f(Nc);this._dir?.change.pipe(kt(this._destroyed)).subscribe(()=>{this._validateDrawers(),this.updateContentMargins()}),i.change().pipe(kt(this._destroyed)).subscribe(()=>this.updateContentMargins()),this._animationMode!=="NoopAnimations"&&A.isBrowser&&this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{this._element.nativeElement.classList.add("mat-drawer-transition"),this._transitionsEnabled=!0},200)})}ngAfterContentInit(){this._allDrawers.changes.pipe(On(this._allDrawers),kt(this._destroyed)).subscribe(A=>{this._drawers.reset(A.filter(i=>!i._container||i._container===this)),this._drawers.notifyOnChanges()}),this._drawers.changes.pipe(On(null)).subscribe(()=>{this._validateDrawers(),this._drawers.forEach(A=>{this._watchDrawerToggle(A),this._watchDrawerPosition(A),this._watchDrawerMode(A)}),(!this._drawers.length||this._isDrawerOpen(this._start)||this._isDrawerOpen(this._end))&&this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(()=>{this._doCheckSubject.pipe(ag(10),kt(this._destroyed)).subscribe(()=>this.updateContentMargins())})}ngOnDestroy(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}open(){this._drawers.forEach(A=>A.open())}close(){this._drawers.forEach(A=>A.close())}updateContentMargins(){let A=0,i=0;if(this._left&&this._left.opened){if(this._left.mode=="side")A+=this._left._getWidth();else if(this._left.mode=="push"){let n=this._left._getWidth();A+=n,i-=n}}if(this._right&&this._right.opened){if(this._right.mode=="side")i+=this._right._getWidth();else if(this._right.mode=="push"){let n=this._right._getWidth();i+=n,A-=n}}A=A||null,i=i||null,(A!==this._contentMargins.left||i!==this._contentMargins.right)&&(this._contentMargins={left:A,right:i},this._ngZone.run(()=>this._contentMarginChanges.next(this._contentMargins)))}ngDoCheck(){this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(()=>this._doCheckSubject.next())}_watchDrawerToggle(A){A._animationStarted.pipe(kt(this._drawers.changes)).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),A.mode!=="side"&&A.openedChange.pipe(kt(this._drawers.changes)).subscribe(()=>this._setContainerClass(A.opened))}_watchDrawerPosition(A){A.onPositionChanged.pipe(kt(this._drawers.changes)).subscribe(()=>{Ir({read:()=>this._validateDrawers()},{injector:this._injector})})}_watchDrawerMode(A){A._modeChanged.pipe(kt(Hn(this._drawers.changes,this._destroyed))).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()})}_setContainerClass(A){let i=this._element.nativeElement.classList,n="mat-drawer-container-has-open";A?i.add(n):i.remove(n)}_validateDrawers(){this._start=this._end=null,this._drawers.forEach(A=>{A.position=="end"?(this._end!=null,this._end=A):(this._start!=null,this._start=A)}),this._right=this._left=null,this._dir&&this._dir.value==="rtl"?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}_isPushed(){return this._isDrawerOpen(this._start)&&this._start.mode!="over"||this._isDrawerOpen(this._end)&&this._end.mode!="over"}_onBackdropClicked(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}_closeModalDrawersViaBackdrop(){[this._start,this._end].filter(A=>A&&!A.disableClose&&this._drawerHasBackdrop(A)).forEach(A=>A._closeViaBackdropClick())}_isShowingBackdrop(){return this._isDrawerOpen(this._start)&&this._drawerHasBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._drawerHasBackdrop(this._end)}_isDrawerOpen(A){return A!=null&&A.opened}_drawerHasBackdrop(A){return this._backdropOverride==null?!!A&&A.mode!=="side":this._backdropOverride}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-drawer-container"]],contentQueries:function(i,n,o){if(i&1&&(gi(o,CR,5),gi(o,dR,5)),i&2){let r;de(r=Be())&&(n._content=r.first),de(r=Be())&&(n._allDrawers=r)}},viewQuery:function(i,n){if(i&1&&st(CR,5),i&2){let o;de(o=Be())&&(n._userContent=o.first)}},hostAttrs:[1,"mat-drawer-container"],hostVars:2,hostBindings:function(i,n){i&2&&he("mat-drawer-container-explicit-backdrop",n._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[ut([{provide:Uq,useExisting:t}])],ngContentSelectors:zfA,decls:4,vars:2,consts:[[1,"mat-drawer-backdrop",3,"mat-drawer-shown"],[1,"mat-drawer-backdrop",3,"click"]],template:function(i,n){i&1&&($t(OfA),NA(0,PfA,1,2,"div",0),Ue(1),Ue(2,1),NA(3,jfA,2,0,"mat-drawer-content")),i&2&&(_A(n.hasBackdrop?0:-1),_(3),_A(n._content?-1:3))},dependencies:[CR],styles:[".mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color, var(--mat-sys-on-background));background-color:var(--mat-sidenav-content-background-color, var(--mat-sys-background));box-sizing:border-box;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color, color-mix(in srgb, var(--mat-sys-neutral-variant20) 40%, transparent))}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}@media(forced-colors: active){.mat-drawer-backdrop{opacity:.5}}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-content.mat-drawer-content-hidden{opacity:0}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;color:var(--mat-sidenav-container-text-color, var(--mat-sys-on-surface-variant));box-shadow:var(--mat-sidenav-container-elevation-shadow, none);background-color:var(--mat-sidenav-container-background-color, var(--mat-sys-surface));border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));width:var(--mat-sidenav-container-width, 360px);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}@media(forced-colors: active){.mat-drawer,[dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}}@media(forced-colors: active){[dir=rtl] .mat-drawer,.mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer-transition .mat-drawer{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating){visibility:hidden;box-shadow:none}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating) .mat-drawer-inner-container{display:none}.mat-drawer.mat-drawer-opened.mat-drawer-opened{transform:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto}.mat-sidenav-fixed{position:fixed}"],encapsulation:2,changeDetection:0})}return t})();var WfA=["switch"],XfA=["*"];function $fA(t,e){t&1&&(S(0,"span",10),ur(),S(1,"svg",12),TA(2,"path",13),N(),S(3,"svg",14),TA(4,"path",15),N()())}var AmA=new eA("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1,disabledInteractive:!1})}),emA={provide:bc,useExisting:Ur(()=>ER),multi:!0},G8=class{source;checked;constructor(e,A){this.source=e,this.checked=A}},ER=(()=>{class t{_elementRef=f(se);_focusMonitor=f(Jr);_changeDetectorRef=f(Et);defaults=f(AmA);_onChange=A=>{};_onTouched=()=>{};_validatorOnChange=()=>{};_uniqueId;_checked=!1;_createChangeEvent(A){return new G8(this,A)}_labelId;get buttonId(){return`${this.id||this._uniqueId}-button`}_switchElement;focus(){this._switchElement.nativeElement.focus()}_noopAnimations;_focused;name=null;id;labelPosition="after";ariaLabel=null;ariaLabelledby=null;ariaDescribedby;required;color;disabled=!1;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(A){this._checked=A,this._changeDetectorRef.markForCheck()}hideIcon;disabledInteractive;change=new YA;toggleChange=new YA;get inputId(){return`${this.id||this._uniqueId}-input`}constructor(){f(Pn).load(Yr);let A=f(new Wr("tabindex"),{optional:!0}),i=this.defaults,n=f(_i,{optional:!0});this.tabIndex=A==null?0:parseInt(A)||0,this.color=i.color||"accent",this._noopAnimations=n==="NoopAnimations",this.id=this._uniqueId=f(an).getId("mat-mdc-slide-toggle-"),this.hideIcon=i.hideIcon??!1,this.disabledInteractive=i.disabledInteractive??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(A=>{A==="keyboard"||A==="program"?(this._focused=!0,this._changeDetectorRef.markForCheck()):A||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(A){A.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(A){this.checked=!!A}registerOnChange(A){this._onChange=A}registerOnTouched(A){this._onTouched=A}validate(A){return this.required&&A.value!==!0?{required:!0}:null}registerOnValidatorChange(A){this._validatorOnChange=A}setDisabledState(A){this.disabled=A,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.disabled||(this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new G8(this,this.checked))))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-slide-toggle"]],viewQuery:function(i,n){if(i&1&&st(WfA,5),i&2){let o;de(o=Be())&&(n._switchElement=o.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,n){i&2&&(Qa("id",n.id),Ke("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),Ro(n.color?"mat-"+n.color:""),he("mat-mdc-slide-toggle-focused",n._focused)("mat-mdc-slide-toggle-checked",n.checked)("_mat-animation-noopable",n._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],required:[2,"required","required",ge],color:"color",disabled:[2,"disabled","disabled",ge],disableRipple:[2,"disableRipple","disableRipple",ge],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:en(A)],checked:[2,"checked","checked",ge],hideIcon:[2,"hideIcon","hideIcon",ge],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],features:[ut([emA,{provide:M0,useExisting:t,multi:!0}]),Xt],ngContentSelectors:XfA,decls:13,vars:27,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"div",1)(1,"button",2,0),mA("click",function(){return QA(o),uA(n._handleClick())}),TA(3,"span",3),S(4,"span",4)(5,"span",5)(6,"span",6),TA(7,"span",7),N(),S(8,"span",8),TA(9,"span",9),N(),NA(10,$fA,5,0,"span",10),N()()(),S(11,"label",11),mA("click",function(s){return QA(o),uA(s.stopPropagation())}),Ue(12),N()()}if(i&2){let o=Cr(2);yA("labelPosition",n.labelPosition),_(),he("mdc-switch--selected",n.checked)("mdc-switch--unselected",!n.checked)("mdc-switch--checked",n.checked)("mdc-switch--disabled",n.disabled)("mat-mdc-slide-toggle-disabled-interactive",n.disabledInteractive),yA("tabIndex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("disabled",n.disabled&&!n.disabledInteractive),Ke("id",n.buttonId)("name",n.name)("aria-label",n.ariaLabel)("aria-labelledby",n._getAriaLabelledBy())("aria-describedby",n.ariaDescribedby)("aria-required",n.required||null)("aria-checked",n.checked)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),_(8),yA("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)("matRippleCentered",!0),_(),_A(n.hideIcon?-1:10),_(),yA("for",n.buttonId),Ke("id",n._labelId)}},dependencies:[Xs,B6],styles:['.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative;width:var(--mdc-switch-track-width, 52px)}.mdc-switch.mdc-switch--disabled{cursor:default;pointer-events:none}.mdc-switch.mat-mdc-slide-toggle-disabled-interactive{pointer-events:auto}.mdc-switch__track{overflow:hidden;position:relative;width:100%;height:var(--mdc-switch-track-height, 32px);border-radius:var(--mdc-switch-track-shape, var(--mat-sys-corner-full))}.mdc-switch--disabled.mdc-switch .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity, 0.12)}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%;border-width:var(--mat-switch-track-outline-width, 2px);border-color:var(--mat-switch-track-outline-color, var(--mat-sys-outline))}.mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track::after{border-width:var(--mat-switch-selected-track-outline-width, 2px);border-color:var(--mat-switch-selected-track-outline-color, transparent)}.mdc-switch--disabled .mdc-switch__track::before,.mdc-switch--disabled .mdc-switch__track::after{border-width:var(--mat-switch-disabled-unselected-track-outline-width, 2px);border-color:var(--mat-switch-disabled-unselected-track-outline-color, var(--mat-sys-on-surface))}@media(forced-colors: active){.mdc-switch__track{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0);background:var(--mdc-switch-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch--selected .mdc-switch__track::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color, var(--mat-sys-surface-variant))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::before,.mdc-switch.mdc-switch--disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch__track::after{transform:translateX(-100%);background:var(--mdc-switch-selected-track-color, var(--mat-sys-primary))}[dir=rtl] .mdc-switch__track::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::after{transform:translateX(0)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color, var(--mat-sys-primary))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::after,.mdc-switch.mdc-switch--disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color, var(--mat-sys-on-surface))}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0);width:calc(100% - var(--mdc-switch-handle-width))}[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto;transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1);width:var(--mdc-switch-handle-width);height:var(--mdc-switch-handle-height);border-radius:var(--mdc-switch-handle-shape, var(--mat-sys-corner-full))}[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size, 16px);height:var(--mat-switch-unselected-handle-size, 16px);margin:var(--mat-switch-unselected-handle-horizontal-margin, 0 8px)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin, 0 4px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size, 24px);height:var(--mat-switch-selected-handle-size, 24px);margin:var(--mat-switch-selected-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size, 24px);height:var(--mat-switch-with-icon-handle-size, 24px)}.mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size, 28px);height:var(--mat-switch-pressed-handle-size, 28px)}.mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin, 0 22px)}.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin, 0 2px)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity, 1)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity, 0.38)}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media(forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color, var(--mat-sys-on-primary))}.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color, var(--mat-sys-primary-container))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:hover:not(:focus):not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:focus:not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:active .mdc-switch__handle::after,.mdc-switch--selected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color, var(--mat-sys-surface))}.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color, var(--mat-sys-outline))}.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color, var(--mat-sys-on-surface))}.mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__shadow,.mdc-switch.mdc-switch--disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1;width:var(--mdc-switch-state-layer-size, 40px);height:var(--mdc-switch-state-layer-size, 40px)}.mdc-switch__ripple::after{content:"";opacity:0}.mdc-switch--disabled .mdc-switch__ripple::after{display:none}.mat-mdc-slide-toggle-disabled-interactive .mdc-switch__ripple::after{display:block}.mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:75ms opacity cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:focus .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:active .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-pressed-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-selected-pressed-state-layer-color, var(--mat-sys-primary));opacity:var(--mdc-switch-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch__icons{position:relative;height:100%;width:100%;z-index:1}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity, 0.38)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity, 0.38)}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size, 16px);height:var(--mdc-switch-unselected-icon-size, 16px);fill:var(--mdc-switch-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size, 16px);height:var(--mdc-switch-selected-icon-size, 16px);fill:var(--mdc-switch-selected-icon-color, var(--mat-sys-on-primary-container))}.mdc-switch--selected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color, var(--mat-sys-on-surface))}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle{-webkit-user-select:none;user-select:none;display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-internal-form-field{color:var(--mat-switch-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-switch-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-switch-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-switch-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-switch-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-switch-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}'],encapsulation:2,changeDetection:0})}return t})();function tmA(t,e){if(t&1){let A=me();S(0,"div",1)(1,"button",2),mA("click",function(){QA(A);let n=Y();return uA(n.action())}),AA(2),N()()}if(t&2){let A=Y();_(2),It(" ",A.data.action," ")}}var imA=["label"];function nmA(t,e){}var omA=Math.pow(2,31)-1,Zh=class{_overlayRef;instance;containerInstance;_afterDismissed=new qA;_afterOpened=new qA;_onAction=new qA;_durationTimeoutId;_dismissedByAction=!1;constructor(e,A){this._overlayRef=A,this.containerInstance=e,e._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(e){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(e,omA))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}},Jq=new eA("MatSnackBarData"),TB=class{politeness="assertive";announcementMessage="";viewContainerRef;duration=0;panelClass;direction;data=null;horizontalPosition="center";verticalPosition="bottom"},rmA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return t})(),smA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return t})(),amA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return t})(),cmA=(()=>{class t{snackBarRef=f(Zh);data=f(Jq);constructor(){}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(i,n){i&1&&(S(0,"div",0),AA(1),N(),NA(2,tmA,3,1,"div",1)),i&2&&(_(),It(" ",n.data.message,` -`),_(),_A(n.hasAction?2:-1))},dependencies:[dr,rmA,smA,amA],styles:[".mat-mdc-simple-snack-bar{display:flex}"],encapsulation:2,changeDetection:0})}return t})(),gmA={snackBarState:nc("state",[$s("void, hidden",Do({transform:"scale(0.8)",opacity:0})),$s("visible",Do({transform:"scale(1)",opacity:1})),$r("* => visible",Is("150ms cubic-bezier(0, 0, 0.2, 1)")),$r("* => void, * => hidden",Is("75ms cubic-bezier(0.4, 0.0, 1, 1)",Do({opacity:0})))])},lmA=(()=>{class t extends V2{_ngZone=f(ye);_elementRef=f(se);_changeDetectorRef=f(Et);_platform=f(ni);snackBarConfig=f(TB);_document=f(at);_trackedModals=new Set;_announceDelay=150;_announceTimeoutId;_destroyed=!1;_portalOutlet;_onAnnounce=new qA;_onExit=new qA;_onEnter=new qA;_animationState="void";_live;_label;_role;_liveElementId=f(an).getId("mat-snack-bar-container-live-");constructor(){super();let A=this.snackBarConfig;A.politeness==="assertive"&&!A.announcementMessage?this._live="assertive":A.politeness==="off"?this._live="off":this._live="polite",this._platform.FIREFOX&&(this._live==="polite"&&(this._role="status"),this._live==="assertive"&&(this._role="alert"))}attachComponentPortal(A){this._assertNotAttached();let i=this._portalOutlet.attachComponentPortal(A);return this._afterPortalAttached(),i}attachTemplatePortal(A){this._assertNotAttached();let i=this._portalOutlet.attachTemplatePortal(A);return this._afterPortalAttached(),i}attachDomPortal=A=>{this._assertNotAttached();let i=this._portalOutlet.attachDomPortal(A);return this._afterPortalAttached(),i};onAnimationEnd(A){let{fromState:i,toState:n}=A;if((n==="void"&&i!=="void"||n==="hidden")&&this._completeExit(),n==="visible"){let o=this._onEnter;this._ngZone.run(()=>{o.next(),o.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.markForCheck(),this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._ngZone.run(()=>{this._animationState="hidden",this._changeDetectorRef.markForCheck(),this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId)}),this._onExit}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){queueMicrotask(()=>{this._onExit.next(),this._onExit.complete()})}_afterPortalAttached(){let A=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(r=>A.classList.add(r)):A.classList.add(i)),this._exposeToModals();let n=this._label.nativeElement,o="mdc-snackbar__label";n.classList.toggle(o,!n.querySelector(`.${o}`))}_exposeToModals(){let A=this._liveElementId,i=this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');for(let n=0;n{let i=A.getAttribute("aria-owns");if(i){let n=i.replace(this._liveElementId,"").trim();n.length>0?A.setAttribute("aria-owns",n):A.removeAttribute("aria-owns")}}),this._trackedModals.clear()}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{let A=this._elementRef.nativeElement.querySelector("[aria-hidden]"),i=this._elementRef.nativeElement.querySelector("[aria-live]");if(A&&i){let n=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&A.contains(document.activeElement)&&(n=document.activeElement),A.removeAttribute("aria-hidden"),i.appendChild(A),n?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-snack-bar-container"]],viewQuery:function(i,n){if(i&1&&(st(wa,7),st(imA,7)),i&2){let o;de(o=Be())&&(n._portalOutlet=o.first),de(o=Be())&&(n._label=o.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container"],hostVars:1,hostBindings:function(i,n){i&1&&kb("@state.done",function(r){return n.onAnimationEnd(r)}),i&2&&bb("@state",n._animationState)},features:[lt],decls:6,vars:3,consts:[["label",""],[1,"mdc-snackbar__surface","mat-mdc-snackbar-surface"],[1,"mat-mdc-snack-bar-label"],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(i,n){i&1&&(S(0,"div",1)(1,"div",2,0)(3,"div",3),NA(4,nmA,0,0,"ng-template",4),N(),TA(5,"div"),N()()),i&2&&(_(5),Ke("aria-live",n._live)("role",n._role)("id",n._liveElementId))},dependencies:[wa],styles:[".mat-mdc-snack-bar-container{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);margin:8px}.mat-mdc-snack-bar-handset .mat-mdc-snack-bar-container{width:100vw}.mat-mdc-snackbar-surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;padding-left:0;padding-right:8px}[dir=rtl] .mat-mdc-snackbar-surface{padding-right:0;padding-left:8px}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{min-width:344px;max-width:672px}.mat-mdc-snack-bar-handset .mat-mdc-snackbar-surface{width:100%;min-width:0}@media(forced-colors: active){.mat-mdc-snackbar-surface{outline:solid 1px}}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{color:var(--mdc-snackbar-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-snackbar-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mdc-snackbar-container-color, var(--mat-sys-inverse-surface))}.mdc-snackbar__label{width:100%;flex-grow:1;box-sizing:border-box;margin:0;padding:14px 8px 14px 16px}[dir=rtl] .mdc-snackbar__label{padding-left:8px;padding-right:16px}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-family:var(--mdc-snackbar-supporting-text-font, var(--mat-sys-body-medium-font));font-size:var(--mdc-snackbar-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mdc-snackbar-supporting-text-weight, var(--mat-sys-body-medium-weight));line-height:var(--mdc-snackbar-supporting-text-line-height, var(--mat-sys-body-medium-line-height))}.mat-mdc-snack-bar-actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled).mat-unthemed{color:var(--mat-snack-bar-button-color, var(--mat-sys-inverse-primary))}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){--mat-text-button-state-layer-color:currentColor;--mat-text-button-ripple-color:currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{opacity:.1}"],encapsulation:2,data:{animation:[gmA.snackBarState]}})}return t})();function ImA(){return new TB}var CmA=new eA("mat-snack-bar-default-options",{providedIn:"root",factory:ImA}),Yq=(()=>{class t{_overlay=f(Br);_live=f(l6);_injector=f(Zt);_breakpointObserver=f(t6);_parentSnackBar=f(t,{optional:!0,skipSelf:!0});_defaultConfig=f(CmA);_snackBarRefAtThisLevel=null;simpleSnackBarComponent=cmA;snackBarContainerComponent=lmA;handsetCssClass="mat-mdc-snack-bar-handset";get _openedSnackBarRef(){let A=this._parentSnackBar;return A?A._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(A){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=A:this._snackBarRefAtThisLevel=A}constructor(){}openFromComponent(A,i){return this._attach(A,i)}openFromTemplate(A,i){return this._attach(A,i)}open(A,i="",n){let o=sA(sA({},this._defaultConfig),n);return o.data={message:A,action:i},o.announcementMessage===A&&(o.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,o)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(A,i){let n=i&&i.viewContainerRef&&i.viewContainerRef.injector,o=Zt.create({parent:n||this._injector,providers:[{provide:TB,useValue:i}]}),r=new yg(this.snackBarContainerComponent,i.viewContainerRef,o),s=A.attach(r);return s.instance.snackBarConfig=i,s.instance}_attach(A,i){let n=sA(sA(sA({},new TB),this._defaultConfig),i),o=this._createOverlay(n),r=this._attachSnackBarContainer(o,n),s=new Zh(r,o);if(A instanceof mn){let a=new Rs(A,null,{$implicit:n.data,snackBarRef:s});s.instance=r.attachTemplatePortal(a)}else{let a=this._createInjector(n,s),c=new yg(A,void 0,a),g=r.attachComponentPortal(c);s.instance=g.instance}return this._breakpointObserver.observe(Qz.HandsetPortrait).pipe(kt(o.detachments())).subscribe(a=>{o.overlayElement.classList.toggle(this.handsetCssClass,a.matches)}),n.announcementMessage&&r._onAnnounce.subscribe(()=>{this._live.announce(n.announcementMessage,n.politeness)}),this._animateSnackBar(s,n),this._openedSnackBarRef=s,this._openedSnackBarRef}_animateSnackBar(A,i){A.afterDismissed().subscribe(()=>{this._openedSnackBarRef==A&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{A.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):A.containerInstance.enter(),i.duration&&i.duration>0&&A.afterOpened().subscribe(()=>A._dismissAfter(i.duration))}_createOverlay(A){let i=new Ml;i.direction=A.direction;let n=this._overlay.position().global(),o=A.direction==="rtl",r=A.horizontalPosition==="left"||A.horizontalPosition==="start"&&!o||A.horizontalPosition==="end"&&o,s=!r&&A.horizontalPosition!=="center";return r?n.left("0"):s?n.right("0"):n.centerHorizontally(),A.verticalPosition==="top"?n.top("0"):n.bottom("0"),i.positionStrategy=n,this._overlay.create(i)}_createInjector(A,i){let n=A&&A.viewContainerRef&&A.viewContainerRef.injector;return Zt.create({parent:n||this._injector,providers:[{provide:Zh,useValue:i},{provide:Jq,useValue:A.data}]})}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var dmA=t=>["segment",t],BmA=(t,e)=>({"segment-main":!0,expandable:t,expanded:e});function EmA(t,e){t&1&&TA(0,"div",9)}function QmA(t,e){if(t&1&&(S(0,"span",10),AA(1),N()),t&2){let A=Y().$implicit;_(),tt(A.description)}}function umA(t,e){if(t&1&&(S(0,"section",11),TA(1,"ngx-json-viewer",12),N()),t&2){let A=Y().$implicit,i=Y();_(),yA("json",A.value)("expanded",i.expanded)("depth",i.depth)("_currentDepth",i._currentDepth+1)}}function hmA(t,e){if(t&1){let A=me();S(0,"section",2)(1,"section",3),mA("click",function(){let n=QA(A).$implicit,o=Y();return uA(o.toggle(n))}),NA(2,EmA,1,0,"div",4),S(3,"span",5),AA(4),N(),S(5,"span",6),AA(6,": "),N(),NA(7,QmA,2,1,"span",7),N(),NA(8,umA,2,4,"section",8),N()}if(t&2){let A=e.$implicit,i=Y();yA("ngClass",vc(6,dmA,"segment-type-"+A.type)),_(),yA("ngClass",Bg(8,BmA,i.isExpandable(A),A.expanded)),_(),yA("ngIf",i.isExpandable(A)),_(2),tt(A.key),_(3),yA("ngIf",!A.expanded||!i.isExpandable(A)),_(),yA("ngIf",A.expanded&&i.isExpandable(A))}}var X2=(()=>{class t{constructor(){this.expanded=!0,this.depth=-1,this._currentDepth=0,this.segments=[]}ngOnChanges(){this.segments=[],this.json=this.decycle(this.json),typeof this.json=="object"?Object.keys(this.json).forEach(A=>{this.segments.push(this.parseKeyValue(A,this.json[A]))}):this.segments.push(this.parseKeyValue(`(${typeof this.json})`,this.json))}isExpandable(A){return A.type==="object"||A.type==="array"}toggle(A){this.isExpandable(A)&&(A.expanded=!A.expanded)}parseKeyValue(A,i){let n={key:A,value:i,type:void 0,description:""+i,expanded:this.isExpanded()};switch(typeof n.value){case"number":{n.type="number";break}case"boolean":{n.type="boolean";break}case"function":{n.type="function";break}case"string":{n.type="string",n.description='"'+n.value+'"';break}case"undefined":{n.type="undefined",n.description="undefined";break}case"object":{n.value===null?(n.type="null",n.description="null"):Array.isArray(n.value)?(n.type="array",n.description="Array["+n.value.length+"] "+JSON.stringify(n.value)):n.value instanceof Date?n.type="date":(n.type="object",n.description="Object "+JSON.stringify(n.value));break}}return n}isExpanded(){return this.expanded&&!(this.depth>-1&&this._currentDepth>=this.depth)}decycle(A){let i=new WeakMap;return function n(o,r){let s,a;return typeof o=="object"&&o!==null&&!(o instanceof Boolean)&&!(o instanceof Date)&&!(o instanceof Number)&&!(o instanceof RegExp)&&!(o instanceof String)?(s=i.get(o),s!==void 0?{$ref:s}:(i.set(o,r),Array.isArray(o)?(a=[],o.forEach(function(c,g){a[g]=n(c,r+"["+g+"]")})):(a={},Object.keys(o).forEach(function(c){a[c]=n(o[c],r+"["+JSON.stringify(c)+"]")})),a)):o}(A,"$")}}return t.\u0275fac=function(A){return new(A||t)},t.\u0275cmp=jA({type:t,selectors:[["ngx-json-viewer"]],inputs:{json:"json",expanded:"expanded",depth:"depth",_currentDepth:"_currentDepth"},standalone:!1,features:[Xt],decls:2,vars:1,consts:[[1,"ngx-json-viewer"],[3,"ngClass",4,"ngFor","ngForOf"],[3,"ngClass"],[3,"click","ngClass"],["class","toggler",4,"ngIf"],[1,"segment-key"],[1,"segment-separator"],["class","segment-value",4,"ngIf"],["class","children",4,"ngIf"],[1,"toggler"],[1,"segment-value"],[1,"children"],[3,"json","expanded","depth","_currentDepth"]],template:function(A,i){A&1&&(S(0,"section",0),NA(1,hmA,9,11,"section",1),N()),A&2&&(_(),yA("ngForOf",i.segments))},dependencies:[Vs,Lp,Tu,t],styles:['@charset "UTF-8";.ngx-json-viewer[_ngcontent-%COMP%]{font-family:var(--ngx-json-font-family, monospace);font-size:var(--ngx-json-font-size, 1em);width:100%;height:100%;overflow:hidden;position:relative}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%]{padding:2px;margin:1px 1px 1px 12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%]{word-wrap:break-word}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]{position:absolute;margin-left:-14px;margin-top:3px;font-size:.8em;line-height:1.2em;vertical-align:middle;color:var(--ngx-json-toggler, #787878)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]:after{display:inline-block;content:"\\25ba";transition:transform .1s ease-in}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-key, #4E187C)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-separator[_ngcontent-%COMP%]{color:var(--ngx-json-separator, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-value, #000)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .children[_ngcontent-%COMP%]{margin-left:12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-string[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-string, #FF6B6B)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-number[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-number, #009688)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-boolean[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-boolean, #B938A4)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-date[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-date, #05668D)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-array, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-object, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-function[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-function, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-null, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-undefined, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-null-bg, red)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%]{white-space:nowrap}.ngx-json-viewer[_ngcontent-%COMP%] .expanded[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]:after{transform:rotate(90deg)}.ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]{cursor:pointer}']}),t})(),Sl=(()=>{class t{}return t.\u0275fac=function(A){return new(A||t)},t.\u0275mod=Ze({type:t}),t.\u0275inj=Ve({imports:[ug]}),t})();var ds=class t{static getBaseUrlWithoutPath(){let e=window.location.href;return new URL(e).origin+"/dev-ui/"}static getApiServerBaseUrl(){return window.runtimeConfig?.backendUrl||""}static getWSServerUrl(){let e=t.getApiServerBaseUrl();return!e||e==""?window.location.host:e.startsWith("http://")?e.slice(7):e.startsWith("https://")?e.slice(8):e}};var HB=new eA("AgentService");var U8=new eA("ArtifactService");var OB=new eA("DownloadService");var Rl=new eA("EvalService");var zB=new eA("EventService");var Tq="import_session",Hq="edit_function_args";var Oq="a2a_card",Gc=new eA("FeatureFlagService");var PB=new eA("GraphService");var J8=new eA("LocalFileService");var $2=new eA("SafeValuesService"),Y8=class{openBase64InNewTab(e,A){try{if(!e)return;let i=e;if(e.startsWith("data:")&&e.includes(";base64,")&&(i=i.substring(i.indexOf(";base64,")+8)),!A||!i)return;let n=atob(i),o=new Array(n.length);for(let c=0;cthis.onResizeHandleMouseDown(e)),document.documentElement.style.setProperty("--bottom-panel-height","310px"),this.renderer.setStyle(this.el.nativeElement,"height","var(--bottom-panel-height)")}onResizeHandleMouseDown(e){this.resizingEvent={isResizing:!0,startingCursorY:e.clientY,startingHeight:this.bottomPanelHeight},e.preventDefault()}onMouseMove(e){if(!this.resizingEvent.isResizing)return;let A=this.resizingEvent.startingCursorY-e.clientY,i=this.resizingEvent.startingHeight+A;this.bottomPanelHeight=i,this.renderer.addClass(document.body,"resizing")}onMouseUp(){this.resizingEvent.isResizing=!1,this.renderer.removeClass(document.body,"resizing")}onResize(){this.bottomMaxHeight=window.innerHeight/2,this.bottomPanelHeight=this.bottomPanelHeight}set bottomPanelHeight(e){let A=Math.min(Math.max(e,this.bottomMinHeight),this.bottomMaxHeight);document.body.style.setProperty("--bottom-panel-height",`${A}px`)}get bottomPanelHeight(){let e=getComputedStyle(document.body).getPropertyValue("--bottom-panel-height"),A=parseInt(e,10);return isNaN(A)?500:A}static \u0275fac=function(A){return new(A||t)(Ge(se),Ge(qi))};static \u0275dir=WA({type:t,selectors:[["","appResizableBottomPanel",""]],hostBindings:function(A,i){A&1&&mA("mousemove",function(o){return i.onMouseMove(o)},!1,Wd)("mouseup",function(){return i.onMouseUp()},!1,Wd)("resize",function(){return i.onResize()},!1,dp)}})};var O8=class t{constructor(e,A){this.el=e;this.renderer=A}sideDrawerMinWidth=310;sideDrawerMaxWidth=window.innerWidth/2;resizeHandle=null;resizingEvent={isResizing:!1,startingCursorX:0,startingWidth:0};ngAfterViewInit(){this.sideDrawerMaxWidth=window.innerWidth/2,this.resizeHandle=document.getElementsByClassName("resize-handler")[0],this.resizeHandle&&this.renderer.listen(this.resizeHandle,"mousedown",e=>this.onResizeHandleMouseDown(e)),document.documentElement.style.setProperty("--side-drawer-width","570px"),this.renderer.setStyle(this.el.nativeElement,"width","var(--side-drawer-width)")}onResizeHandleMouseDown(e){this.resizingEvent={isResizing:!0,startingCursorX:e.clientX,startingWidth:this.sideDrawerWidth},e.preventDefault()}onMouseMove(e){if(!this.resizingEvent.isResizing)return;let A=e.clientX-this.resizingEvent.startingCursorX,i=this.resizingEvent.startingWidth+A;this.sideDrawerWidth=i,this.renderer.addClass(document.body,"resizing")}onMouseUp(){this.resizingEvent.isResizing=!1,this.renderer.removeClass(document.body,"resizing")}onResize(){this.sideDrawerMaxWidth=window.innerWidth/2,this.sideDrawerWidth=this.sideDrawerWidth}set sideDrawerWidth(e){let A=Math.min(Math.max(e,this.sideDrawerMinWidth),this.sideDrawerMaxWidth);document.documentElement.style.setProperty("--side-drawer-width",`${A}px`)}get sideDrawerWidth(){let e=getComputedStyle(document.documentElement).getPropertyValue("--side-drawer-width"),A=parseFloat(e);return isNaN(A)?500:A}static \u0275fac=function(A){return new(A||t)(Ge(se),Ge(qi))};static \u0275dir=WA({type:t,selectors:[["","appResizableDrawer",""]],hostBindings:function(A,i){A&1&&mA("mousemove",function(o){return i.onMouseMove(o)},!1,Wd)("mouseup",function(){return i.onMouseUp()},!1,Wd)("resize",function(){return i.onResize()},!1,dp)}})};var fmA=["audioPlayer"],qB=class t{base64data=bs("");audioPlayerRef=qs("audioPlayer");audioSrc="";constructor(){}ngOnChanges(e){e.base64data&&this.base64data()&&this.setAudioSource(this.base64data())}setAudioSource(e){e.startsWith("data:")?this.audioSrc=e:this.audioSrc=`data:audio/mpeg;base64,${e}`,this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&this.audioPlayerRef().nativeElement.load()}play(){this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&this.audioPlayerRef().nativeElement.play()}pause(){this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&this.audioPlayerRef().nativeElement.pause()}stop(){this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&(this.audioPlayerRef().nativeElement.pause(),this.audioPlayerRef().nativeElement.currentTime=0)}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-audio-player"]],viewQuery:function(A,i){A&1&&ls(i.audioPlayerRef,fmA,5),A&2&&yc()},inputs:{base64data:[1,"base64data"]},features:[Xt],decls:3,vars:1,consts:[["audioPlayer",""],["controls","",3,"src"]],template:function(A,i){A&1&&(S(0,"div"),TA(1,"audio",1,0),N()),A&2&&(_(),yA("src",i.audioSrc,js))},styles:[".audio-player-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;padding:15px;background-color:var(--audio-player-container-background-color);border-radius:8px;box-shadow:0 2px 5px var(--audio-player-container-box-shadow-color);margin:20px auto;max-width:350px}audio[_ngcontent-%COMP%]{outline:none;border-radius:5px;width:350px}.custom-controls[_ngcontent-%COMP%]{margin-top:10px;display:flex;gap:10px}.custom-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:8px 15px;border:none;border-radius:5px;background-color:var(--audio-player-custom-controls-button-background-color);color:var(--audio-player-custom-controls-button-color);cursor:pointer;font-size:14px;transition:background-color .2s ease}.custom-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background-color:var(--audio-player-custom-controls-button-hover-background-color)}"]})};function mmA(t,e){if(t&1&&TA(0,"img",5),t&2){let A=Y(2);yA("src",A.displayContent,js)}}function pmA(t,e){t&1&&(S(0,"div",6),AA(1," No image data provided. "),N())}function DmA(t,e){if(t&1&&(S(0,"div",3),NA(1,mmA,1,1,"img",5)(2,pmA,2,0,"div",6),N()),t&2){let A=Y();_(),_A(A.displayContent?1:-1),_(),_A(A.displayContent?-1:2)}}function wmA(t,e){if(t&1&&TA(0,"div",4),t&2){let A=Y();yA("innerHTML",A.displayContent,b2)}}var t1=class t{constructor(e,A,i){this.dialogRef=e;this.data=A;this.sanitizer=i}displayContent=null;isSvgContent=!1;ngOnInit(){this.processImageData()}processImageData(){let e=this.data.imageData;if(!e){this.displayContent=null,this.isSvgContent=!1;return}if(e.trim().includes("0?1:-1),_(3),It(" ",o.getArtifactName(i)," "),_(5),Za("ngModel",o.selectedArtifacts[n]),_(),Bn(o.getSortedArtifactsFromId(i)),_(7),_A((A=o.selectedArtifacts[n].mediaType)===o.MediaType.IMAGE?17:A===o.MediaType.AUDIO?18:-1)}}var SmA="default_artifact_name",gC=(n=>(n.IMAGE="image",n.AUDIO="audio",n.TEXT="text",n.UNSPECIFIED="unspecified",n))(gC||{});function P8(t){let e=t.toLowerCase();for(let A of Object.values(gC))if(A!=="unspecified"&&e.startsWith(A+"/"))return A;return"unspecified"}function RmA(t){return t?t.startsWith("image/"):!1}function LmA(t){return t?t.startsWith("audio/"):!1}var z8=class t{artifacts=bs([]);selectedArtifacts=[];isArtifactAudio=LmA;isArtifactImage=RmA;MediaType=gC;downloadService=f(OB);dialog=f(Fc);safeValuesService=f($2);ngOnChanges(e){if(e.artifacts){this.selectedArtifacts=[];for(let A of this.getDistinctArtifactIds())this.selectedArtifacts.push(this.getSortedArtifactsFromId(A)[0])}}downloadArtifact(e){this.downloadService.downloadBase64Data(e.data,e.mimeType,e.id)}getArtifactName(e){return e??SmA}getDistinctArtifactIds(){return[...new Set(this.artifacts().map(e=>e.id))]}getSortedArtifactsFromId(e){return this.artifacts().filter(A=>A.id===e).sort((A,i)=>i.versionId-A.versionId)}onArtifactVersionChange(e,A){this.selectedArtifacts[A]=e.value}openViewImageDialog(e){if(!e||!e.startsWith("data:")||e.indexOf(";base64,")===-1)return;let A=this.dialog.open(t1,{maxWidth:"90vw",maxHeight:"90vh",data:{imageData:e}})}openArtifact(e,A){if(this.isArtifactImage(A)){this.openViewImageDialog(e);return}this.openBase64InNewTab(e,A)}openBase64InNewTab(e,A){}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-artifact-tab"]],inputs:{artifacts:[1,"artifacts"]},features:[Xt],decls:3,vars:0,consts:[[1,"artifact-container"],[1,"artifact-box"],[1,"white-separator"],[1,"artifact-metadata"],[1,"link-style-button",3,"click"],[1,"version-select-container"],[3,"ngModelChange","selectionChange","ngModel"],[3,"value"],["mat-flat-button","",1,"download-button",3,"click"],["alt","artifact.id",1,"generated-image",3,"click","src"],[3,"base64data"]],template:function(A,i){A&1&&(S(0,"div",0),dn(1,kmA,19,4,"div",1,zn),N()),A&2&&(_(),Bn(i.getDistinctArtifactIds()))},dependencies:[YB,Mr,Ss,tc,K2,dr,_c,qB],styles:[".artifact-container[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.artifact-box[_ngcontent-%COMP%]{padding:10px;max-width:100%;margin-left:26px;display:flex;flex-direction:column}.artifact-metadata[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:15px;flex-wrap:wrap;gap:5px}.download-button[_ngcontent-%COMP%]{background-color:var(--artifact-tab-download-button-background-color)!important;margin-left:35px;width:130px;height:28px;font-size:14px}.generated-image[_ngcontent-%COMP%]{max-width:60%;border-radius:8px;cursor:pointer}hr.white-separator[_ngcontent-%COMP%]{border:none;border-top:1px solid var(--artifact-tab-white-separator-border-top-color);margin-bottom:1.2em;margin-right:15px}.version-select-container[_ngcontent-%COMP%]{background-color:var(--artifact-tab-version-select-container-background-color);width:80px;margin-left:15px}.link-style-button[_ngcontent-%COMP%]{background:none;border:none;padding:0;font:inherit;color:var(--artifact-tab-link-style-button-color)!important;text-decoration:underline;cursor:pointer;outline:none}.link-style-button[_ngcontent-%COMP%]:hover{color:var(--artifact-tab-link-style-button-hover-color);text-decoration:underline}.link-style-button[_ngcontent-%COMP%]:focus{outline:1px dotted var(--artifact-tab-link-style-button-focus-outline-color)}.link-style-button[_ngcontent-%COMP%]:active{color:var(--artifact-tab-link-style-button-active-color)}.link-style-button[_ngcontent-%COMP%]:disabled{color:var(--artifact-tab-link-style-button-disabled-color);text-decoration:none;cursor:not-allowed}"]})};var xmA=["mat-menu-item",""],NmA=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],FmA=["mat-icon, [matMenuItemIcon]","*"];function _mA(t,e){t&1&&(ur(),S(0,"svg",2),TA(1,"polygon",3),N())}var GmA=["*"];function KmA(t,e){if(t&1){let A=me();S(0,"div",0),mA("click",function(){QA(A);let n=Y();return uA(n.closed.emit("click"))})("animationstart",function(n){QA(A);let o=Y();return uA(o._onAnimationStart(n.animationName))})("animationend",function(n){QA(A);let o=Y();return uA(o._onAnimationDone(n.animationName))})("animationcancel",function(n){QA(A);let o=Y();return uA(o._onAnimationDone(n.animationName))}),S(1,"div",1),Ue(2),N()()}if(t&2){let A=Y();Ro(A._classList),he("mat-menu-panel-animations-disabled",A._animationsDisabled)("mat-menu-panel-exit-animation",A._panelAnimationState==="void")("mat-menu-panel-animating",A._isAnimating),yA("id",A.panelId),Ke("aria-label",A.ariaLabel||null)("aria-labelledby",A.ariaLabelledby||null)("aria-describedby",A.ariaDescribedby||null)}}var uR=new eA("MAT_MENU_PANEL"),Xh=(()=>{class t{_elementRef=f(se);_document=f(at);_focusMonitor=f(Jr);_parentMenu=f(uR,{optional:!0});_changeDetectorRef=f(Et);role="menuitem";disabled=!1;disableRipple=!1;_hovered=new qA;_focused=new qA;_highlighted=!1;_triggersSubmenu=!1;constructor(){f(Pn).load(Yr),this._parentMenu?.addItem?.(this)}focus(A,i){this._focusMonitor&&A?this._focusMonitor.focusVia(this._getHostElement(),A,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(A){this.disabled&&(A.preventDefault(),A.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){let A=this._elementRef.nativeElement.cloneNode(!0),i=A.querySelectorAll("mat-icon, .material-icons");for(let n=0;n{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_injector=f(Zt);_keyManager;_xPosition;_yPosition;_firstItemFocusRef;_exitFallbackTimeout;_animationsDisabled;_allItems;_directDescendantItems=new qa;_classList={};_panelAnimationState="void";_animationDone=new qA;_isAnimating=!1;parentMenu;direction;overlayPanelClass;backdropClass;ariaLabel;ariaLabelledby;ariaDescribedby;get xPosition(){return this._xPosition}set xPosition(A){this._xPosition=A,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(A){this._yPosition=A,this.setPositionClasses()}templateRef;items;lazyContent;overlapTrigger;hasBackdrop;set panelClass(A){let i=this._previousPanelClass,n=sA({},this._classList);i&&i.length&&i.split(" ").forEach(o=>{n[o]=!1}),this._previousPanelClass=A,A&&A.length&&(A.split(" ").forEach(o=>{n[o]=!0}),this._elementRef.nativeElement.className=""),this._classList=n}_previousPanelClass;get classList(){return this.panelClass}set classList(A){this.panelClass=A}closed=new YA;close=this.closed;panelId=f(an).getId("mat-menu-panel-");constructor(){let A=f(JmA);this.overlayPanelClass=A.overlayPanelClass||"",this._xPosition=A.xPosition,this._yPosition=A.yPosition,this.backdropClass=A.backdropClass,this.overlapTrigger=A.overlapTrigger,this.hasBackdrop=A.hasBackdrop,this._animationsDisabled=f(_i,{optional:!0})==="NoopAnimations"}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new zI(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(On(this._directDescendantItems),$n(A=>Hn(...A.map(i=>i._focused)))).subscribe(A=>this._keyManager.updateActiveItem(A)),this._directDescendantItems.changes.subscribe(A=>{let i=this._keyManager;if(this._panelAnimationState==="enter"&&i.activeItem?._hasFocus()){let n=A.toArray(),o=Math.max(0,Math.min(n.length-1,i.activeItemIndex||0));n[o]&&!n[o].disabled?i.setActiveItem(o):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusRef?.destroy(),clearTimeout(this._exitFallbackTimeout)}_hovered(){return this._directDescendantItems.changes.pipe(On(this._directDescendantItems),$n(i=>Hn(...i.map(n=>n._hovered))))}addItem(A){}removeItem(A){}_handleKeydown(A){let i=A.keyCode,n=this._keyManager;switch(i){case 27:sr(A)||(A.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&this.direction==="ltr"&&this.closed.emit("keydown");break;case 39:this.parentMenu&&this.direction==="rtl"&&this.closed.emit("keydown");break;default:(i===38||i===40)&&n.setFocusOrigin("keyboard"),n.onKeydown(A);return}}focusFirstItem(A="program"){this._firstItemFocusRef?.destroy(),this._firstItemFocusRef=Ir(()=>{let i=this._resolvePanel();if(!i||!i.contains(document.activeElement)){let n=this._keyManager;n.setFocusOrigin(A).setFirstItemActive(),!n.activeItem&&i&&i.focus()}},{injector:this._injector})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(A){}setPositionClasses(A=this.xPosition,i=this.yPosition){this._classList=Fe(sA({},this._classList),{"mat-menu-before":A==="before","mat-menu-after":A==="after","mat-menu-above":i==="above","mat-menu-below":i==="below"}),this._changeDetectorRef.markForCheck()}_onAnimationDone(A){let i=A===j8;(i||A===QR)&&(i&&(clearTimeout(this._exitFallbackTimeout),this._exitFallbackTimeout=void 0),this._animationDone.next(i?"void":"enter"),this._isAnimating=!1)}_onAnimationStart(A){(A===QR||A===j8)&&(this._isAnimating=!0)}_setIsOpen(A){if(this._panelAnimationState=A?"enter":"void",A){if(this._keyManager.activeItemIndex===0){let i=this._resolvePanel();i&&(i.scrollTop=0)}}else this._animationsDisabled||(this._exitFallbackTimeout=setTimeout(()=>this._onAnimationDone(j8),200));this._animationsDisabled&&setTimeout(()=>{this._onAnimationDone(A?QR:j8)}),this._changeDetectorRef.markForCheck()}_updateDirectDescendants(){this._allItems.changes.pipe(On(this._allItems)).subscribe(A=>{this._directDescendantItems.reset(A.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}_resolvePanel(){let A=null;return this._directDescendantItems.length&&(A=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),A}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-menu"]],contentQueries:function(i,n,o){if(i&1&&(gi(o,UmA,5),gi(o,Xh,5),gi(o,Xh,4)),i&2){let r;de(r=Be())&&(n.lazyContent=r.first),de(r=Be())&&(n._allItems=r),de(r=Be())&&(n.items=r)}},viewQuery:function(i,n){if(i&1&&st(mn,5),i&2){let o;de(o=Be())&&(n.templateRef=o.first)}},hostVars:3,hostBindings:function(i,n){i&2&&Ke("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[2,"overlapTrigger","overlapTrigger",ge],hasBackdrop:[2,"hasBackdrop","hasBackdrop",A=>A==null?null:ge(A)],panelClass:[0,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],features:[ut([{provide:uR,useExisting:t}])],ngContentSelectors:GmA,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel",3,"click","animationstart","animationend","animationcancel","id"],[1,"mat-mdc-menu-content"]],template:function(i,n){i&1&&($t(),NA(0,KmA,3,12,"ng-template"))},styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;outline:0}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-menu-item-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-menu-item-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-menu-item-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-menu-item-label-text-weight, var(--mat-sys-label-large-weight))}@keyframes _mat-menu-enter{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:none}}@keyframes _mat-menu-exit{from{opacity:1}to{opacity:0}}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;box-sizing:border-box;outline:0;animation:_mat-menu-enter 120ms cubic-bezier(0, 0, 0.2, 1);border-radius:var(--mat-menu-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-menu-container-color, var(--mat-sys-surface-container));box-shadow:var(--mat-menu-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));will-change:transform,opacity}.mat-mdc-menu-panel.mat-menu-panel-exit-animation{animation:_mat-menu-exit 100ms 25ms linear forwards}.mat-mdc-menu-panel.mat-menu-panel-animations-disabled{animation:none}.mat-mdc-menu-panel.mat-menu-panel-animating{pointer-events:none}.mat-mdc-menu-panel.mat-menu-panel-animating:has(.mat-mdc-menu-content:empty){display:none}@media(forced-colors: active){.mat-mdc-menu-panel{outline:solid 1px}}.mat-mdc-menu-panel .mat-divider{color:var(--mat-menu-divider-color, var(--mat-sys-surface-variant));margin-bottom:var(--mat-menu-divider-bottom-spacing, 8px);margin-top:var(--mat-menu-divider-top-spacing, 8px)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px;padding-left:var(--mat-menu-item-leading-spacing, 12px);padding-right:var(--mat-menu-item-trailing-spacing, 12px);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-menu-item::-moz-focus-inner{border:0}[dir=rtl] .mat-mdc-menu-item{padding-left:var(--mat-menu-item-trailing-spacing, 12px);padding-right:var(--mat-menu-item-leading-spacing, 12px)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-trailing-spacing, 12px)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-trailing-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-leading-spacing, 12px)}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item:focus{outline:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing, 12px);height:var(--mat-menu-item-icon-size, 24px);width:var(--mat-menu-item-icon-size, 24px)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing, 12px)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}@media(forced-colors: active){.mat-mdc-menu-item{margin-top:1px}}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size, 24px);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing, 12px)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing, 12px);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1);transform-origin:center}@media(forced-colors: active){.mat-mdc-menu-submenu-icon{fill:CanvasText}}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,changeDetection:0})}return t})(),Pq=new eA("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{let t=f(Br);return()=>t.scrollStrategies.reposition()}});function TmA(t){return()=>t.scrollStrategies.reposition()}var HmA={provide:Pq,deps:[Br],useFactory:TmA},zq=Sc({passive:!0});var Wh=new WeakMap,jq=(()=>{class t{_overlay=f(Br);_element=f(se);_viewContainerRef=f(Sn);_menuItemInstance=f(Xh,{optional:!0,self:!0});_dir=f(po,{optional:!0});_focusMonitor=f(Jr);_ngZone=f(ye);_scrollStrategy=f(Pq);_changeDetectorRef=f(Et);_portal;_overlayRef=null;_menuOpen=!1;_closingActionsSubscription=Kt.EMPTY;_hoverSubscription=Kt.EMPTY;_menuCloseSubscription=Kt.EMPTY;_pendingRemoval;_parentMaterialMenu;_parentInnerPadding;_handleTouchStart=A=>{ch(A)||(this._openedBy="touch")};_openedBy=void 0;get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(A){this.menu=A}get menu(){return this._menu}set menu(A){A!==this._menu&&(this._menu=A,this._menuCloseSubscription.unsubscribe(),A&&(this._parentMaterialMenu,this._menuCloseSubscription=A.close.subscribe(i=>{this._destroyMenu(i),(i==="click"||i==="tab")&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}_menu;menuData;restoreFocus=!0;menuOpened=new YA;onMenuOpen=this.menuOpened;menuClosed=new YA;onMenuClose=this.menuClosed;constructor(){let A=f(uR,{optional:!0});this._parentMaterialMenu=A instanceof VB?A:void 0,this._element.nativeElement.addEventListener("touchstart",this._handleTouchStart,zq)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this.menu&&this._ownsMenu(this.menu)&&Wh.delete(this.menu),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,zq),this._pendingRemoval?.unsubscribe(),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe(),this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null)}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){let A=this.menu;if(this._menuOpen||!A)return;this._pendingRemoval?.unsubscribe();let i=Wh.get(A);Wh.set(A,this),i&&i!==this&&i.closeMenu();let n=this._createOverlay(A),o=n.getConfig(),r=o.positionStrategy;this._setPosition(A,r),o.hasBackdrop=A.hasBackdrop==null?!this.triggersSubmenu():A.hasBackdrop,n.hasAttached()||(n.attach(this._getPortal(A)),A.lazyContent?.attach(this.menuData)),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),A.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,A.direction=this.dir,A.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0),A instanceof VB&&(A._setIsOpen(!0),A._directDescendantItems.changes.pipe(kt(A.close)).subscribe(()=>{r.withLockedPosition(!1).reapplyLastPosition(),r.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(A,i){this._focusMonitor&&A?this._focusMonitor.focusVia(this._element,A,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(A){let i=this._overlayRef,n=this._menu;!i||!this.menuOpen||(this._closingActionsSubscription.unsubscribe(),this._pendingRemoval?.unsubscribe(),n instanceof VB&&this._ownsMenu(n)?(this._pendingRemoval=n._animationDone.pipe(Xn(1)).subscribe(()=>{i.detach(),n.lazyContent?.detach()}),n._setIsOpen(!1)):(i.detach(),n?.lazyContent?.detach()),n&&this._ownsMenu(n)&&Wh.delete(n),this.restoreFocus&&(A==="keydown"||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,this._setIsMenuOpen(!1))}_setIsMenuOpen(A){A!==this._menuOpen&&(this._menuOpen=A,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(A),this._changeDetectorRef.markForCheck())}_createOverlay(A){if(!this._overlayRef){let i=this._getOverlayConfig(A);this._subscribeToPositions(A,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe(n=>{this.menu instanceof VB&&this.menu._handleKeydown(n)})}return this._overlayRef}_getOverlayConfig(A){return new Ml({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:A.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:A.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir||"ltr"})}_subscribeToPositions(A,i){A.setPositionClasses&&i.positionChanges.subscribe(n=>{this._ngZone.run(()=>{let o=n.connectionPair.overlayX==="start"?"after":"before",r=n.connectionPair.overlayY==="top"?"below":"above";A.setPositionClasses(o,r)})})}_setPosition(A,i){let[n,o]=A.xPosition==="before"?["end","start"]:["start","end"],[r,s]=A.yPosition==="above"?["bottom","top"]:["top","bottom"],[a,c]=[r,s],[g,I]=[n,o],C=0;if(this.triggersSubmenu()){if(I=n=A.xPosition==="before"?"start":"end",o=g=n==="end"?"start":"end",this._parentMaterialMenu){if(this._parentInnerPadding==null){let d=this._parentMaterialMenu.items.first;this._parentInnerPadding=d?d._getHostElement().offsetTop:0}C=r==="bottom"?this._parentInnerPadding:-this._parentInnerPadding}}else A.overlapTrigger||(a=r==="top"?"bottom":"top",c=s==="top"?"bottom":"top");i.withPositions([{originX:n,originY:a,overlayX:g,overlayY:r,offsetY:C},{originX:o,originY:a,overlayX:I,overlayY:r,offsetY:C},{originX:n,originY:c,overlayX:g,overlayY:s,offsetY:-C},{originX:o,originY:c,overlayX:I,overlayY:s,offsetY:-C}])}_menuClosingActions(){let A=this._overlayRef.backdropClick(),i=this._overlayRef.detachments(),n=this._parentMaterialMenu?this._parentMaterialMenu.closed:Ce(),o=this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(Nt(r=>this._menuOpen&&r!==this._menuItemInstance)):Ce();return Hn(A,n,o,i)}_handleMousedown(A){ah(A)||(this._openedBy=A.button===0?"mouse":void 0,this.triggersSubmenu()&&A.preventDefault())}_handleKeydown(A){let i=A.keyCode;(i===13||i===32)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(i===39&&this.dir==="ltr"||i===37&&this.dir==="rtl")&&(this._openedBy="keyboard",this.openMenu())}_handleClick(A){this.triggersSubmenu()?(A.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){this.triggersSubmenu()&&this._parentMaterialMenu&&(this._hoverSubscription=this._parentMaterialMenu._hovered().subscribe(A=>{A===this._menuItemInstance&&!A.disabled&&(this._openedBy="mouse",this.openMenu())}))}_getPortal(A){return(!this._portal||this._portal.templateRef!==A.templateRef)&&(this._portal=new Rs(A.templateRef,this._viewContainerRef)),this._portal}_ownsMenu(A){return Wh.get(A)===this}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(i,n){i&1&&mA("click",function(r){return n._handleClick(r)})("mousedown",function(r){return n._handleMousedown(r)})("keydown",function(r){return n._handleKeydown(r)}),i&2&&Ke("aria-haspopup",n.menu?"menu":null)("aria-expanded",n.menuOpen)("aria-controls",n.menuOpen?n.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[0,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[0,"matMenuTriggerFor","menu"],menuData:[0,"matMenuTriggerData","menuData"],restoreFocus:[0,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"]})}return t})(),qq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({providers:[HmA],imports:[WI,pn,Z2,j2,pn]})}return t})(),Vq={transformMenu:nc("transformMenu",[$s("void",Do({opacity:0,transform:"scale(0.8)"})),$r("void => enter",Is("120ms cubic-bezier(0, 0, 0.2, 1)",Do({opacity:1,transform:"scale(1)"}))),$r("* => void",Is("100ms 25ms linear",Do({opacity:0})))]),fadeInItems:nc("fadeInItems",[$s("showing",Do({opacity:1})),$r("void => *",[Do({opacity:0}),Is("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},RCe=Vq.fadeInItems,LCe=Vq.transformMenu;function zmA(t,e){t&1&&TA(0,"div",2)}var PmA=new eA("MAT_PROGRESS_BAR_DEFAULT_OPTIONS");var Wq=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);_changeDetectorRef=f(Et);_renderer=f(qi);_cleanupTransitionEnd;_animationMode=f(_i,{optional:!0});constructor(){let A=f(PmA,{optional:!0});this._isNoopAnimation=this._animationMode==="NoopAnimations",A&&(A.color&&(this.color=this._defaultColor=A.color),this.mode=A.mode||this.mode)}_isNoopAnimation=!1;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;_defaultColor="primary";get value(){return this._value}set value(A){this._value=Zq(A||0),this._changeDetectorRef.markForCheck()}_value=0;get bufferValue(){return this._bufferValue||0}set bufferValue(A){this._bufferValue=Zq(A||0),this._changeDetectorRef.markForCheck()}_bufferValue=0;animationEnd=new YA;get mode(){return this._mode}set mode(A){this._mode=A,this._changeDetectorRef.markForCheck()}_mode="determinate";ngAfterViewInit(){this._ngZone.runOutsideAngular(()=>{this._cleanupTransitionEnd=this._renderer.listen(this._elementRef.nativeElement,"transitionend",this._transitionendHandler)})}ngOnDestroy(){this._cleanupTransitionEnd?.()}_getPrimaryBarTransform(){return`scaleX(${this._isIndeterminate()?1:this.value/100})`}_getBufferBarFlexBasis(){return`${this.mode==="buffer"?this.bufferValue:100}%`}_isIndeterminate(){return this.mode==="indeterminate"||this.mode==="query"}_transitionendHandler=A=>{this.animationEnd.observers.length===0||!A.target||!A.target.classList.contains("mdc-linear-progress__primary-bar")||(this.mode==="determinate"||this.mode==="buffer")&&this._ngZone.run(()=>this.animationEnd.next({value:this.value}))};static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-progress-bar"]],hostAttrs:["role","progressbar","aria-valuemin","0","aria-valuemax","100","tabindex","-1",1,"mat-mdc-progress-bar","mdc-linear-progress"],hostVars:10,hostBindings:function(i,n){i&2&&(Ke("aria-valuenow",n._isIndeterminate()?null:n.value)("mode",n.mode),Ro("mat-"+n.color),he("_mat-animation-noopable",n._isNoopAnimation)("mdc-linear-progress--animation-ready",!n._isNoopAnimation)("mdc-linear-progress--indeterminate",n._isIndeterminate()))},inputs:{color:"color",value:[2,"value","value",en],bufferValue:[2,"bufferValue","bufferValue",en],mode:"mode"},outputs:{animationEnd:"animationEnd"},exportAs:["matProgressBar"],decls:7,vars:5,consts:[["aria-hidden","true",1,"mdc-linear-progress__buffer"],[1,"mdc-linear-progress__buffer-bar"],[1,"mdc-linear-progress__buffer-dots"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__primary-bar"],[1,"mdc-linear-progress__bar-inner"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__secondary-bar"]],template:function(i,n){i&1&&(S(0,"div",0),TA(1,"div",1),NA(2,zmA,1,0,"div",2),N(),S(3,"div",3),TA(4,"span",4),N(),S(5,"div",5),TA(6,"span",4),N()),i&2&&(_(),mo("flex-basis",n._getBufferBarFlexBasis()),_(),_A(n.mode==="buffer"?2:-1),_(),mo("transform",n._getPrimaryBarTransform()))},styles:[`.mat-mdc-progress-bar{display:block;text-align:start}.mat-mdc-progress-bar[mode=query]{transform:scaleX(-1)}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-dots,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__secondary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__bar-inner.mdc-linear-progress__bar-inner{animation:none}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-bar{transition:transform 1ms}.mdc-linear-progress{position:relative;width:100%;transform:translateZ(0);outline:1px solid rgba(0,0,0,0);overflow-x:hidden;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);height:max(var(--mdc-linear-progress-track-height, 4px),var(--mdc-linear-progress-active-indicator-height, 4px))}@media(forced-colors: active){.mdc-linear-progress{outline-color:CanvasText}}.mdc-linear-progress__bar{position:absolute;top:0;bottom:0;margin:auto 0;width:100%;animation:none;transform-origin:top left;transition:transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);height:var(--mdc-linear-progress-active-indicator-height, 4px)}.mdc-linear-progress--indeterminate .mdc-linear-progress__bar{transition:none}[dir=rtl] .mdc-linear-progress__bar{right:0;transform-origin:center right}.mdc-linear-progress__bar-inner{display:inline-block;position:absolute;width:100%;animation:none;border-top-style:solid;border-color:var(--mdc-linear-progress-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-linear-progress-active-indicator-height, 4px)}.mdc-linear-progress__buffer{display:flex;position:absolute;top:0;bottom:0;margin:auto 0;width:100%;overflow:hidden;height:var(--mdc-linear-progress-track-height, 4px);border-radius:var(--mdc-linear-progress-track-shape, var(--mat-sys-corner-none))}.mdc-linear-progress__buffer-dots{-webkit-mask-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E");background-repeat:repeat-x;flex:auto;transform:rotate(180deg);animation:mdc-linear-progress-buffering 250ms infinite linear;background-color:var(--mdc-linear-progress-track-color, var(--mat-sys-surface-variant))}@media(forced-colors: active){.mdc-linear-progress__buffer-dots{background-color:ButtonBorder}}[dir=rtl] .mdc-linear-progress__buffer-dots{animation:mdc-linear-progress-buffering-reverse 250ms infinite linear;transform:rotate(0)}.mdc-linear-progress__buffer-bar{flex:0 1 100%;transition:flex-basis 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);background-color:var(--mdc-linear-progress-track-color, var(--mat-sys-surface-variant))}.mdc-linear-progress__primary-bar{transform:scaleX(0)}.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{left:-145.166611%}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation:mdc-linear-progress-primary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-primary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation-name:mdc-linear-progress-primary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{right:-145.166611%;left:auto}.mdc-linear-progress__secondary-bar{display:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{left:-54.888891%;display:block}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation:mdc-linear-progress-secondary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-secondary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation-name:mdc-linear-progress-secondary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{right:-54.888891%;left:auto}@keyframes mdc-linear-progress-buffering{from{transform:rotate(180deg) translateX(calc(var(--mdc-linear-progress-track-height, 4px) * -2.5))}}@keyframes mdc-linear-progress-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(83.67142%)}100%{transform:translateX(200.611057%)}}@keyframes mdc-linear-progress-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(84.386165%)}100%{transform:translateX(160.277782%)}}@keyframes mdc-linear-progress-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-primary-indeterminate-translate-reverse{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(-83.67142%)}100%{transform:translateX(-200.611057%)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate-reverse{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(-37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(-84.386165%)}100%{transform:translateX(-160.277782%)}}@keyframes mdc-linear-progress-buffering-reverse{from{transform:translateX(-10px)}}`],encapsulation:2,changeDetection:0})}return t})();function Zq(t,e=0,A=100){return Math.max(e,Math.min(A,t))}var Xq=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[pn]})}return t})();var q8=new eA("MARKDOWN_COMPONENT");var qmA={cancelEditingTooltip:"Cancel editing",saveEvalMessageTooltip:"Save eval case message",thoughtChipLabel:"Thought",outcomeLabel:"Outcome",outputLabel:"Output",actualToolUsesLabel:"Actual tool uses:",expectedToolUsesLabel:"Expected tool uses:",actualResponseLabel:"Actual response:",expectedResponseLabel:"Expected response:",matchScoreLabel:"Match score",thresholdLabel:"Threshold",evalPassLabel:"Pass",evalFailLabel:"Fail",editEvalMessageTooltip:"Edit eval case message",deleteEvalMessageTooltip:"Delete eval case message",editFunctionArgsTooltip:"Edit function arguments",typeMessagePlaceholder:"Type a Message...",uploadFileTooltip:"Upload local file",moreOptionsTooltip:"More options",updateStateMenuLabel:"Update state",turnOffMicTooltip:"Turn off microphone",useMicTooltip:"Use microphone",turnOffCamTooltip:"Turn off camera",useCamTooltip:"Use camera",updatedSessionStateChipLabel:"Updated session state"},$q=new eA("Chat Panel Messages",{factory:()=>qmA});var VmA=["videoContainer"],ZmA=["autoScroll"],WmA=["messageTextarea"],XmA=(t,e)=>({"user-message":t,"bot-message":e}),$mA=(t,e)=>({"eval-pass":t,"eval-fail":e}),ApA=(t,e)=>({"eval-fail":t,"message-card--highlighted":e}),epA=(t,e)=>({text:t,thought:e}),eV=t=>({"function-event-button-highlight":t}),hR=t=>({hidden:t});function tpA(t,e){if(t&1){let A=me();S(0,"button",13),mA("click",function(){QA(A);let n=Y().$index,o=Y(2);return uA(o.clickEvent.emit(n))}),S(1,"mat-icon",14),AA(2,"robot_2"),N()()}if(t&2){let A=Y().$index,i=Y(2);Ro(i.customIconColorClass(A)),yA("matTooltip",i.getAgentNameFromEvent(A))}}function ipA(t,e){t&1&&TA(0,"mat-progress-bar",15)}function npA(t,e){if(t&1&&TA(0,"img",20),t&2){let A=Y().$implicit;yA("src",A.url,js)}}function opA(t,e){if(t&1&&(S(0,"a",21),AA(1),N()),t&2){let A=Y(2).$implicit;yA("href",A.url,js),_(),tt(A.file.name)}}function rpA(t,e){if(t&1&&AA(0),t&2){let A=Y(2).$implicit;It(" ",A.file.name," ")}}function spA(t,e){if(t&1&&(S(0,"mat-icon"),AA(1,"insert_drive_file"),N(),NA(2,opA,2,2,"a",21)(3,rpA,1,1)),t&2){let A=Y().$implicit;_(2),_A(A.url?2:3)}}function apA(t,e){if(t&1&&(S(0,"div",19),NA(1,npA,1,1,"img",20)(2,spA,4,1),N()),t&2){let A=e.$implicit;_(),_A(A.file.type.startsWith("image/")?1:-1),_(),_A(A.file.type.startsWith("image/")?-1:2)}}function cpA(t,e){if(t&1&&(S(0,"div",16),dn(1,apA,3,2,"div",19,zn),N()),t&2){let A=Y(2).$implicit;_(),Bn(A.attachments)}}function gpA(t,e){if(t&1&&(S(0,"div",17),AA(1),N()),t&2){let A=Y(4);_(),tt(A.i18n.thoughtChipLabel)}}function lpA(t,e){if(t&1){let A=me();S(0,"div",22)(1,"textarea",24,2),mA("ngModelChange",function(n){QA(A);let o=Y(5);return uA(o.userEditEvalCaseMessageChange.emit(n))})("keydown",function(n){QA(A);let o=Y(3).$implicit,r=Y(2);return uA(r.handleKeydown.emit({event:n,message:o}))}),N(),S(3,"div",25)(4,"span",26),mA("click",function(){QA(A);let n=Y(3).$implicit,o=Y(2);return uA(o.cancelEditMessage.emit(n))}),AA(5," close "),N(),S(6,"span",27),mA("click",function(){QA(A);let n=Y(3).$implicit,o=Y(2);return uA(o.saveEditMessage.emit(n))}),AA(7," check "),N()()()}if(t&2){let A=Y(5);_(),yA("ngModel",A.userEditEvalCaseMessage),_(3),yA("matTooltip",A.i18n.cancelEditingTooltip),_(2),yA("matTooltip",A.i18n.saveEvalMessageTooltip)}}function IpA(t,e){if(t&1&&rr(0,23),t&2){let A=Y(3).$implicit,i=Y(2);yA("ngComponentOutlet",i.markdownComponent)("ngComponentOutletInputs",Bg(2,epA,A.text,A.thought))}}function CpA(t,e){if(t&1&&NA(0,lpA,8,3,"div",22)(1,IpA,1,5,"ng-container",23),t&2){let A=Y(2).$implicit;_A(A.isEditing?0:1)}}function dpA(t,e){if(t&1&&(S(0,"div"),TA(1,"div",28),N()),t&2){let A=Y(2).$implicit,i=Y(2);_(),yA("innerHTML",i.renderGooglerSearch(A.renderedContent),b2)}}function BpA(t,e){if(t&1&&(S(0,"code"),AA(1),N()),t&2){let A=Y(2).$implicit;_(),It(" ",A.executableCode.code," ")}}function EpA(t,e){if(t&1&&(S(0,"div")(1,"div"),AA(2),N(),S(3,"div"),AA(4),N()()),t&2){let A=Y(2).$implicit,i=Y(2);_(2),x2("",i.i18n.outcomeLabel,": ",A.codeExecutionResult.outcome,""),_(2),x2("",i.i18n.outputLabel,": ",A.codeExecutionResult.output,"")}}function QpA(t,e){if(t&1){let A=me();S(0,"div",29)(1,"img",30),mA("click",function(){QA(A);let n=Y(4).$implicit,o=Y(2);return uA(o.openViewImageDialog.emit(n.inlineData.data))}),N()()}if(t&2){let A=Y(4).$implicit;_(),yA("src",A.inlineData.data,js)}}function upA(t,e){if(t&1&&(S(0,"div"),TA(1,"app-audio-player",31),N()),t&2){let A=Y(4).$implicit;_(),yA("base64data",A.inlineData.data)}}function hpA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",32)(2,"mat-icon"),AA(3,"description"),N(),S(4,"button",33),mA("click",function(){QA(A);let n=Y(4).$implicit,o=Y(2);return uA(o.openBase64InNewTab.emit({data:n.inlineData.data,mimeType:n.inlineData.mimeType}))}),AA(5),N()()()}if(t&2){let A=Y(4).$implicit;_(5),It(" ",A.inlineData.name," ")}}function fpA(t,e){if(t&1){let A=me();S(0,"div")(1,"button",33),mA("click",function(){QA(A);let n=Y(4).$implicit,o=Y(2);return uA(o.openBase64InNewTab.emit({data:n.inlineData.data,mimeType:n.inlineData.mimeType}))}),AA(2),N()()}if(t&2){let A=Y(4).$implicit;_(2),It(" ",A.inlineData.name," ")}}function mpA(t,e){if(t&1&&(S(0,"div")(1,"div"),NA(2,QpA,2,1,"div",29)(3,upA,2,1,"div")(4,hpA,6,1,"div")(5,fpA,3,1,"div"),N()()),t&2){let A,i=Y(3).$implicit,n=Y(2);_(2),_A((A=i.inlineData.mediaType)===n.MediaType.IMAGE?2:A===n.MediaType.AUDIO?3:A===n.MediaType.TEXT?4:5)}}function ppA(t,e){if(t&1){let A=me();S(0,"div")(1,"img",34),mA("click",function(){QA(A);let n=Y(4).$implicit,o=Y(2);return uA(o.openViewImageDialog.emit(n.inlineData.data))}),N()()}if(t&2){let A=Y(4).$implicit;_(),yA("src",A.inlineData.data,js)}}function DpA(t,e){if(t&1&&(S(0,"div",19)(1,"mat-icon"),AA(2,"insert_drive_file"),N(),S(3,"a",21),AA(4),N()()),t&2){let A=Y(4).$implicit;_(3),yA("href",A.inlineData.data,js),_(),tt(A.inlineData.displayName)}}function wpA(t,e){if(t&1&&(S(0,"div"),NA(1,ppA,2,1,"div")(2,DpA,5,2,"div",19),N()),t&2){let A=Y(3).$implicit;_(),_A(A.inlineData.mimeType.startsWith("image/")?1:2)}}function ypA(t,e){if(t&1&&NA(0,mpA,6,1,"div")(1,wpA,3,1,"div"),t&2){let A=Y(2).$implicit;_A(A.role==="bot"?0:1)}}function vpA(t,e){if(t&1&&(S(0,"div",37)(1,"div",38),AA(2),N(),TA(3,"ngx-json-viewer",39),N(),S(4,"div",40)(5,"div",41),AA(6),N(),TA(7,"ngx-json-viewer",39),N()),t&2){let A=Y(3).$implicit,i=Y(2);_(2),tt(i.i18n.actualToolUsesLabel),_(),yA("json",A.actualInvocationToolUses),_(3),tt(i.i18n.expectedToolUsesLabel),_(),yA("json",A.expectedInvocationToolUses)}}function MpA(t,e){if(t&1&&(S(0,"div",37)(1,"div",38),AA(2),N(),S(3,"div"),AA(4),N()(),S(5,"div",40)(6,"div",41),AA(7),N(),S(8,"div"),AA(9),N()()),t&2){let A=Y(3).$implicit,i=Y(2);_(2),tt(i.i18n.actualResponseLabel),_(2),tt(A.actualFinalResponse),_(3),tt(i.i18n.expectedResponseLabel),_(2),tt(A.expectedFinalResponse)}}function bpA(t,e){if(t&1&&(S(0,"div",36)(1,"span",42),AA(2),N(),S(3,"span",43),AA(4),N()()),t&2){let A=Y(3).$implicit,i=Y(2);_(2),x2("",i.i18n.matchScoreLabel,": ",A.evalScore,""),_(2),x2("",i.i18n.thresholdLabel,": ",A.evalThreshold,"")}}function kpA(t,e){if(t&1&&(S(0,"div",18)(1,"div",35),NA(2,vpA,8,4)(3,MpA,10,4),N(),NA(4,bpA,5,4,"div",36),N()),t&2){let A=Y(2).$implicit;_(2),_A(A.actualInvocationToolUses?2:A.actualFinalResponse?3:-1),_(2),_A(A.evalScore!==void 0&&A.evalThreshold!==void 0?4:-1)}}function SpA(t,e){if(t&1&&(S(0,"mat-card",9),NA(1,ipA,1,0,"mat-progress-bar",15)(2,cpA,3,0,"div",16),S(3,"div"),NA(4,gpA,2,1,"div",17),S(5,"div"),NA(6,CpA,2,1),N(),NA(7,dpA,2,1,"div"),N(),NA(8,BpA,2,1,"code")(9,EpA,5,4,"div")(10,ypA,2,1)(11,kpA,5,2,"div",18),N()),t&2){let A=Y(),i=A.$implicit,n=A.$index,o=Y(2);yA("ngClass",Bg(10,ApA,i.evalStatus===2,o.shouldMessageHighlighted(n))),_(),_A(i.isLoading?1:-1),_(),_A(i.attachments?2:-1),_(2),_A(i.thought?4:-1),_(2),_A(i.text?6:-1),_(),_A(i.renderedContent?7:-1),_(),_A(i.executableCode?8:-1),_(),_A(i.codeExecutionResult?9:-1),_(),_A(i.inlineData?10:-1),_(),_A(i.failedMetric&&i.evalStatus===2?11:-1)}}function RpA(t,e){if(t&1){let A=me();S(0,"button",44),mA("click",function(){QA(A);let n=Y().$index,o=Y(2);return uA(o.clickEvent.emit(n))}),S(1,"mat-icon"),AA(2,"bolt"),N(),AA(3),N()}if(t&2){let A=Y(),i=A.$implicit,n=A.$index,o=Y(2);yA("ngClass",vc(2,eV,o.shouldMessageHighlighted(n))),_(3),It(" ",i.functionCall.name," ")}}function LpA(t,e){if(t&1){let A=me();S(0,"button",44),mA("click",function(){QA(A);let n=Y().$index,o=Y(2);return uA(o.clickEvent.emit(n))}),S(1,"mat-icon"),AA(2,"check"),N(),AA(3),N()}if(t&2){let A=Y(),i=A.$implicit,n=A.$index,o=Y(2);yA("ngClass",vc(2,eV,o.shouldMessageHighlighted(n))),_(3),It(" ",i.functionResponse.name," ")}}function xpA(t,e){if(t&1){let A=me();S(0,"div")(1,"span",45),mA("click",function(){QA(A);let n=Y(2).$implicit,o=Y(2);return uA(o.editEvalCaseMessage.emit(n))}),AA(2," edit "),N(),S(3,"span",45),mA("click",function(){QA(A);let n=Y(2),o=n.$implicit,r=n.$index,s=Y(2);return uA(s.deleteEvalCaseMessage.emit({message:o,index:r}))}),AA(4," delete "),N()()}if(t&2){let A=Y(4);_(),yA("ngClass",vc(4,hR,A.isEvalCaseEditing))("matTooltip",A.i18n.editEvalMessageTooltip),_(2),yA("ngClass",vc(6,hR,A.isEvalCaseEditing))("matTooltip",A.i18n.deleteEvalMessageTooltip)}}function NpA(t,e){if(t&1){let A=me();S(0,"div")(1,"span",45),mA("click",function(){QA(A);let n=Y(2).$implicit,o=Y(2);return uA(o.editFunctionArgs.emit(n))}),AA(2," edit "),N()()}if(t&2){let A=Y(4);_(),yA("ngClass",vc(2,hR,A.isEvalCaseEditing))("matTooltip",A.i18n.editFunctionArgsTooltip)}}function FpA(t,e){if(t&1&&NA(0,xpA,5,8,"div")(1,NpA,3,4,"div"),t&2){let A=Y().$implicit,i=Y(2);_A(A.text?0:i.isEditFunctionArgsEnabled&&A.functionCall?1:-1)}}function _pA(t,e){t&1&&(S(0,"button",12)(1,"mat-icon"),AA(2,"person"),N()())}function GpA(t,e){if(t&1&&(S(0,"div",7),NA(1,tpA,3,3,"button",8)(2,SpA,12,13,"mat-card",9)(3,RpA,4,4,"button",10)(4,LpA,4,4,"button",10),S(5,"div",7)(6,"span",11),AA(7),N(),S(8,"span"),AA(9),N()(),NA(10,FpA,2,1)(11,_pA,3,0,"button",12),N()),t&2){let A=e.$implicit,i=Y(2);yA("ngClass",Bg(10,XmA,A.role==="user",A.role==="bot")),_(),_A(A.role==="bot"?1:-1),_(),_A(!A.functionCall&&!A.functionResponse?2:-1),_(),_A(A.functionCall?3:-1),_(),_A(A.functionResponse?4:-1),_(),yA("ngClass",Bg(13,$mA,A.evalStatus===1,A.evalStatus===2)),_(2),tt(A.evalStatus===1?"check":A.evalStatus===2?"close":""),_(2),tt(A.evalStatus===1?i.i18n.evalPassLabel:A.evalStatus===2?i.i18n.evalFailLabel:""),_(),_A(i.evalCase&&A.role==="bot"&&i.isEvalEditMode?10:-1),_(),_A(A.role==="user"?11:-1)}}function KpA(t,e){if(t&1&&(S(0,"div",5,0),TA(2,"div",null,1),dn(4,GpA,12,16,"div",7,zn),N()),t&2){let A=Y();_(4),Bn(A.messages)}}function UpA(t,e){if(t&1){let A=me();S(0,"div",57),TA(1,"img",58),S(2,"button",59),mA("click",function(){QA(A);let n=Y().$index,o=Y(3);return uA(o.removeFile.emit(n))}),S(3,"mat-icon",60),AA(4,"close"),N()()()}if(t&2){let A=Y().$implicit;_(),yA("src",A.url,js)}}function JpA(t,e){if(t&1){let A=me();S(0,"div",56)(1,"button",59),mA("click",function(){QA(A);let n=Y().$index,o=Y(3);return uA(o.removeFile.emit(n))}),S(2,"mat-icon",60),AA(3,"close"),N()(),S(4,"div",61)(5,"mat-icon"),AA(6,"insert_drive_file"),N(),S(7,"span"),AA(8),N()()()}if(t&2){let A=Y().$implicit;_(8),tt(A.file.name)}}function YpA(t,e){if(t&1&&(S(0,"div"),NA(1,UpA,5,1,"div",57)(2,JpA,9,1,"div",56),N()),t&2){let A=e.$implicit;_(),_A(A.file.type.startsWith("image/")?1:A.file.type.startsWith("image/")?-1:2)}}function TpA(t,e){if(t&1){let A=me();S(0,"div",56)(1,"button",59),mA("click",function(){QA(A);let n=Y(3);return uA(n.removeStateUpdate.emit())}),S(2,"mat-icon",60),AA(3,"close"),N()(),S(4,"div",61)(5,"span"),AA(6),N()()()}if(t&2){let A=Y(3);_(6),tt(A.i18n.updatedSessionStateChipLabel)}}function HpA(t,e){if(t&1&&(S(0,"div",48),dn(1,YpA,3,1,"div",null,zn),NA(3,TpA,7,1,"div",56),N()),t&2){let A=Y(2);_(),Bn(A.selectedFiles),_(2),_A(A.updatedSessionState?3:-1)}}function OpA(t,e){if(t&1){let A=me();S(0,"div",6)(1,"input",46,3),mA("change",function(n){QA(A);let o=Y();return uA(o.fileSelect.emit(n))}),N(),S(3,"mat-form-field",47),NA(4,HpA,4,1,"div",48),S(5,"textarea",49),mA("ngModelChange",function(n){QA(A);let o=Y();return uA(o.userInputChange.emit(n))})("keydown.enter",function(n){QA(A);let o=Y();return uA(o.sendMessage.emit(n))}),N(),S(6,"div",50)(7,"div")(8,"button",51),eo(9,"async"),mA("click",function(){QA(A);let n=Cr(2);return uA(n.click())}),S(10,"mat-icon"),AA(11,"attach_file"),N()(),S(12,"button",52),eo(13,"async"),S(14,"mat-icon"),AA(15,"more_vert"),N()(),S(16,"mat-menu",null,4)(18,"span",53),mA("click",function(){QA(A);let n=Y();return uA(n.updateState.emit())}),AA(19),N()()(),S(20,"div")(21,"button",54),eo(22,"async"),mA("click",function(){QA(A);let n=Y();return uA(n.toggleAudioRecording.emit())}),S(23,"mat-icon"),AA(24,"mic"),N()(),S(25,"button",55),eo(26,"async"),mA("click",function(){QA(A);let n=Y();return uA(n.toggleVideoRecording.emit())}),S(27,"mat-icon"),AA(28,"videocam"),N()()()()()()}if(t&2){let A=Cr(17),i=Y();_(4),_A(i.selectedFiles.length&&i.appName!=""||i.updatedSessionState?4:-1),_(),yA("ngModel",i.userInput)("placeholder",i.i18n.typeMessagePlaceholder),_(3),yA("matTooltip",i.i18n.uploadFileTooltip)("disabled",!Yo(9,17,i.isMessageFileUploadEnabledObs)),_(4),yA("matMenuTriggerFor",A)("matTooltip",i.i18n.moreOptionsTooltip)("disabled",!Yo(13,19,i.isManualStateUpdateEnabledObs)),_(7),It(" ",i.i18n.updateStateMenuLabel," "),_(2),he("recording",i.isAudioRecording),yA("matTooltip",i.isAudioRecording?i.i18n.turnOffMicTooltip:i.i18n.useMicTooltip)("disabled",!Yo(22,21,i.isBidiStreamingEnabledObs)),_(4),he("recording",i.isVideoRecording),yA("matTooltip",i.isVideoRecording?i.i18n.turnOffCamTooltip:i.i18n.useCamTooltip)("disabled",!Yo(26,23,i.isBidiStreamingEnabledObs))}}var AV="root_agent",ZB=class t{constructor(e){this.sanitizer=e}appName="";messages=[];isChatMode=!0;evalCase=null;isEvalEditMode=!1;isEvalCaseEditing=!1;isEditFunctionArgsEnabled=!1;userInput="";userEditEvalCaseMessage="";selectedFiles=[];updatedSessionState=null;eventData=new Map;isAudioRecording=!1;isVideoRecording=!1;hoveredEventMessageIndices=[];userInputChange=new YA;userEditEvalCaseMessageChange=new YA;clickEvent=new YA;handleKeydown=new YA;cancelEditMessage=new YA;saveEditMessage=new YA;openViewImageDialog=new YA;openBase64InNewTab=new YA;editEvalCaseMessage=new YA;deleteEvalCaseMessage=new YA;editFunctionArgs=new YA;fileSelect=new YA;removeFile=new YA;removeStateUpdate=new YA;sendMessage=new YA;updateState=new YA;toggleAudioRecording=new YA;toggleVideoRecording=new YA;videoContainer;scrollContainer;textarea;scrollInterrupted=!1;previousMessageCount=0;i18n=f($q);stringToColorService=f(jB);markdownComponent=f(q8);featureFlagService=f(Gc);MediaType=gC;isMessageFileUploadEnabledObs=this.featureFlagService.isMessageFileUploadEnabled();isManualStateUpdateEnabledObs=this.featureFlagService.isManualStateUpdateEnabled();isBidiStreamingEnabledObs=this.featureFlagService.isBidiStreamingEnabled();ngAfterViewInit(){this.scrollContainer?.nativeElement&&(this.scrollContainer.nativeElement.addEventListener("wheel",()=>{this.scrollInterrupted=!0}),this.scrollContainer.nativeElement.addEventListener("touchmove",()=>{this.scrollInterrupted=!0}))}ngOnChanges(e){e.messages&&(this.messages.length>this.previousMessageCount&&(this.messages.slice(this.previousMessageCount).some(i=>i.role==="user")&&(this.scrollInterrupted=!1),this.scrollToBottom()),this.previousMessageCount=this.messages.length)}scrollToBottom(){!this.scrollInterrupted&&this.scrollContainer?.nativeElement&&setTimeout(()=>{this.scrollContainer.nativeElement.scrollTo({top:this.scrollContainer.nativeElement.scrollHeight,behavior:"auto"})},50)}getAgentNameFromEvent(e){let A=this.messages[e].eventId;return this.eventData.get(A)?.author??AV}customIconColorClass(e){let A=this.getAgentNameFromEvent(e);return A!==AV?`custom-icon-color-${this.stringToColorService.stc(A).replace("#","")}`:""}shouldMessageHighlighted(e){return this.hoveredEventMessageIndices.includes(e)}renderGooglerSearch(e){return this.sanitizer.bypassSecurityTrustHtml(e)}static \u0275fac=function(A){return new(A||t)(Ge(oc))};static \u0275cmp=jA({type:t,selectors:[["app-chat-panel"]],viewQuery:function(A,i){if(A&1&&(st(VmA,5,se),st(ZmA,5),st(WmA,5)),A&2){let n;de(n=Be())&&(i.videoContainer=n.first),de(n=Be())&&(i.scrollContainer=n.first),de(n=Be())&&(i.textarea=n.first)}},inputs:{appName:"appName",messages:"messages",isChatMode:"isChatMode",evalCase:"evalCase",isEvalEditMode:"isEvalEditMode",isEvalCaseEditing:"isEvalCaseEditing",isEditFunctionArgsEnabled:"isEditFunctionArgsEnabled",userInput:"userInput",userEditEvalCaseMessage:"userEditEvalCaseMessage",selectedFiles:"selectedFiles",updatedSessionState:"updatedSessionState",eventData:"eventData",isAudioRecording:"isAudioRecording",isVideoRecording:"isVideoRecording",hoveredEventMessageIndices:"hoveredEventMessageIndices"},outputs:{userInputChange:"userInputChange",userEditEvalCaseMessageChange:"userEditEvalCaseMessageChange",clickEvent:"clickEvent",handleKeydown:"handleKeydown",cancelEditMessage:"cancelEditMessage",saveEditMessage:"saveEditMessage",openViewImageDialog:"openViewImageDialog",openBase64InNewTab:"openBase64InNewTab",editEvalCaseMessage:"editEvalCaseMessage",deleteEvalCaseMessage:"deleteEvalCaseMessage",editFunctionArgs:"editFunctionArgs",fileSelect:"fileSelect",removeFile:"removeFile",removeStateUpdate:"removeStateUpdate",sendMessage:"sendMessage",updateState:"updateState",toggleAudioRecording:"toggleAudioRecording",toggleVideoRecording:"toggleVideoRecording"},features:[Xt],decls:2,vars:2,consts:[["autoScroll",""],["videoContainer",""],["messageTextarea",""],["fileInput",""],["moreMenu","matMenu"],[1,"chat-messages"],[1,"chat-input"],[3,"ngClass"],["mat-mini-fab","",3,"matTooltip","class"],[1,"message-card",3,"ngClass"],["mat-stroked-button","",1,"function-event-button",3,"ngClass"],[1,"material-symbols-outlined"],["mat-mini-fab",""],["mat-mini-fab","",3,"click","matTooltip"],["fontSet","material-symbols-outlined"],["mode","buffer",1,"loading-bar"],[1,"attachments"],[1,"thought-chip"],[1,"eval-compare-container"],[1,"attachment"],["alt","attachment",1,"image-preview-chat",3,"src"],["download","",3,"href"],[1,"edit-message-container"],[3,"ngComponentOutlet","ngComponentOutletInputs"],["rows","4","cols","80",1,"message-textarea",3,"ngModelChange","keydown","ngModel"],[1,"edit-message-buttons-container"],[1,"material-symbols-outlined","cancel-edit-button",3,"click","matTooltip"],[1,"material-symbols-outlined","save-edit-button",3,"click","matTooltip"],[3,"innerHTML"],[1,"generated-image-container"],["alt","image",1,"generated-image",3,"click","src"],[3,"base64data"],[1,"html-artifact-container"],[1,"link-style-button",3,"click"],["alt","image",1,"image-preview-chat",3,"click","src"],[1,"actual-expected-compare-container"],[1,"score-threshold-container"],[1,"actual-result"],[1,"eval-response-header","header-actual"],[3,"json"],[1,"expected-result"],[1,"eval-response-header","header-expected"],[1,"header-actual"],[1,"header-expected"],["mat-stroked-button","",1,"function-event-button",3,"click","ngClass"],[1,"material-symbols-outlined","eval-case-edit-button",3,"click","ngClass","matTooltip"],["type","file","multiple","","hidden","",3,"change"],["appearance","outline",1,"input-field"],[1,"file-preview"],["matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","1","cdkAutosizeMaxRows","10",1,"chat-input-box",3,"ngModelChange","keydown.enter","ngModel","placeholder"],[1,"chat-input-actions"],["mat-icon-button","",1,"function-event-button",3,"click","matTooltip","disabled"],["mat-icon-button","",1,"function-event-button",3,"matMenuTriggerFor","matTooltip","disabled"],["mat-menu-item","",3,"click"],["mat-icon-button","","matSuffix","",1,"audio-rec-btn",3,"click","matTooltip","disabled"],["mat-icon-button","","matSuffix","",1,"video-rec-btn",3,"click","matTooltip","disabled"],[1,"file-container"],[1,"image-container"],["alt","preview",1,"image-preview",3,"src"],["mat-icon-button","",1,"delete-button",3,"click"],["color","warn"],[1,"file-info"]],template:function(A,i){A&1&&NA(0,KpA,6,0,"div",5)(1,OpA,29,25,"div",6),A&2&&(_A(i.appName!=""?0:-1),_(),_A(i.appName!=""&&i.isChatMode?1:-1))},dependencies:[ug,Vs,Yu,Qg,Mr,kc,Ss,tc,Lq,_c,rq,y8,Xq,Wq,uB,dr,QB,u6,D6,J2,fl,Zz,eP,p6,U2,qq,VB,Xh,jq,Sl,X2,qB,IR,kl],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}.generated-image-container[_ngcontent-%COMP%]{max-width:400px}.generated-image[_ngcontent-%COMP%]{max-width:100%;min-width:40px;border-radius:8px}.html-artifact-container[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:flex-start;align-items:center}.loading-bar[_ngcontent-%COMP%]{width:100px;margin:15px}.chat-messages[_ngcontent-%COMP%]{flex-grow:1;overflow-y:auto;padding:20px;margin-top:16px}.message-card[_ngcontent-%COMP%]{padding:5px 20px;margin:5px;border-radius:20px;max-width:80%;font-size:14px;font-weight:400;position:relative;display:inline-block}.message-card.message-card--highlighted[_ngcontent-%COMP%]{background-color:var(--chat-panel-function-event-button-highlight-background-color)}.function-event-button[_ngcontent-%COMP%]{background-color:var(--chat-panel-function-event-button-background-color);margin:5px 5px 10px}.function-event-button-highlight[_ngcontent-%COMP%]{background-color:var(--chat-panel-function-event-button-highlight-background-color);border-color:var(--chat-panel-function-event-button-highlight-border-color)!important;color:var(--chat-panel-function-event-button-highlight-color)!important}.user-message[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center}.user-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-panel-user-message-message-card-background-color);align-self:flex-end;color:var(--chat-panel-user-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]{display:flex;align-items:center}.bot-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-panel-bot-message-message-card-background-color);align-self:flex-start;color:var(--chat-panel-bot-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]:focus-within .message-card[_ngcontent-%COMP%]{background-color:var(--chat-panel-bot-message-focus-within-message-card-background-color);border:1px solid var(--chat-panel-bot-message-focus-within-message-card-border-color)}.message-textarea[_ngcontent-%COMP%]{background-color:var(--chat-panel-message-textarea-background-color);max-width:100%;border:none;font-family:Google Sans,Helvetica Neue,sans-serif}.message-textarea[_ngcontent-%COMP%]:focus{background-color:var(--chat-panel-message-textarea-focus-background-color);outline:none}.edit-message-buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%]{visibility:hidden;position:absolute;left:10px;z-index:10;background-color:var(--chat-panel-eval-compare-container-background-color);overflow:hidden;border-radius:20px;padding:5px 20px;margin-bottom:10px;font-size:16px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .actual-result[_ngcontent-%COMP%]{border-right:2px solid var(--chat-panel-actual-result-border-right-color);padding-right:8px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .expected-result[_ngcontent-%COMP%]{padding-left:12px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%]:hover .eval-compare-container[_ngcontent-%COMP%]{visibility:visible}.actual-expected-compare-container[_ngcontent-%COMP%]{display:flex}.score-threshold-container[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:10px;align-items:center;margin-top:15px;font-size:14px;font-weight:600}.eval-response-header[_ngcontent-%COMP%]{padding-bottom:5px;border-bottom:2px solid var(--chat-panel-eval-response-header-border-bottom-color);font-style:italic;font-weight:700}.header-expected[_ngcontent-%COMP%]{color:var(--chat-panel-header-expected-color)}.header-actual[_ngcontent-%COMP%]{color:var(--chat-panel-header-actual-color)}.eval-case-edit-button[_ngcontent-%COMP%]{cursor:pointer;margin-left:4px;margin-right:4px}.eval-pass[_ngcontent-%COMP%]{display:flex;color:var(--chat-panel-eval-pass-color)}.eval-fail[_ngcontent-%COMP%]{display:flex;color:var(--chat-panel-eval-fail-color)}.hidden[_ngcontent-%COMP%]{visibility:hidden}.chat-input[_ngcontent-%COMP%]{display:flex;padding:10px;width:60%;margin:0 auto}.input-field[_ngcontent-%COMP%]{flex-grow:1}.input-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{color:var(--chat-panel-input-field-textarea-color);border:none;padding:10px;box-sizing:content-box;caret-color:#fff}.input-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]::placeholder{color:var(--chat-panel-input-field-textarea-placeholder-color)}.input-field[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{color:var(--chat-panel-input-field-button-color);background-color:var(--chat-panel-input-field-button-background-color)}.chat-input-actions[_ngcontent-%COMP%]{width:106%;margin-top:10px;display:flex;justify-content:space-between;align-items:center;max-width:100%}.chat-input-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:10px;margin-right:10px}.file-preview[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px;margin-bottom:8px}.image-preview[_ngcontent-%COMP%]{width:40px;height:40px;object-fit:cover;border-radius:4px}.image-preview-chat[_ngcontent-%COMP%]{max-width:90%;max-height:70vh;width:auto;height:auto;border-radius:8px;cursor:pointer;transition:transform .2s ease-in-out}.attachment[_ngcontent-%COMP%]{display:flex;align-items:center}[_nghost-%COMP%] .mat-mdc-mini-fab{background-color:var(--chat-panel-mat-mdc-mini-fab-background-color)}[_nghost-%COMP%] .mat-mdc-mini-fab mat-icon{color:var(--chat-panel-mat-mdc-mini-fab-mat-icon-color)}[_nghost-%COMP%] .message-text p{white-space:pre-line;word-break:break-word;overflow-wrap:break-word}[_nghost-%COMP%] .input-field .mat-mdc-text-field-wrapper{border:1px solid var(--chat-panel-input-field-mat-mdc-text-field-wrapper-border-color);border-radius:16px}.image-container[_ngcontent-%COMP%]{position:relative;display:inline-block;border-radius:12px;overflow:hidden}.image-preview[_ngcontent-%COMP%]{display:block;width:100%;height:auto;border-radius:12px;width:80px;height:80px}.delete-button[_ngcontent-%COMP%]{position:absolute;top:1px;right:1px;background-color:var(--chat-panel-delete-button-background-color);border:none;border-radius:50%;padding:8px;cursor:pointer;color:var(--chat-panel-delete-button-color);display:flex;align-items:center;justify-content:center;margin-right:0;scale:.7}.delete-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px}.file-container[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;gap:8px;height:80px;background-color:var(--chat-panel-file-container-background-color);border-radius:12px}.file-info[_ngcontent-%COMP%]{margin-right:60px;padding-top:20px;padding-left:16px}.thought-chip[_ngcontent-%COMP%]{border-radius:5px;background-color:var(--chat-panel-thought-chip-background-color);width:80px;text-align:center;margin-top:5px}[_nghost-%COMP%] pre{white-space:pre-wrap;word-break:break-word;overflow-x:auto;max-width:100%}.link-style-button[_ngcontent-%COMP%]{background:none;border:none;padding:0;font:inherit;color:var(--chat-panel-link-style-button-color)!important;text-decoration:underline;cursor:pointer;outline:none;font-size:14px}.cancel-edit-button[_ngcontent-%COMP%]{width:24px;height:24px;color:var(--chat-mat-mdc-text-field-wrapper-border-color);cursor:pointer;margin-right:16px}.save-edit-button[_ngcontent-%COMP%]{width:24px;height:24px;color:var(--mat-sys-primary);cursor:pointer;margin-right:16px}.chat-input-box[_ngcontent-%COMP%]{caret-color:#fff}button.audio-rec-btn[_ngcontent-%COMP%], button.video-rec-btn[_ngcontent-%COMP%]{background-color:var(--chat-card-background-color)}button.audio-rec-btn.recording[_ngcontent-%COMP%], button.video-rec-btn.recording[_ngcontent-%COMP%]{background-color:var(--chat-panel-eval-fail-color)}"]})};function wo(t){return Array.isArray(t)}function Lo(t){return t!==null&&typeof t=="object"&&(t.constructor===void 0||t.constructor.name==="Object")}function fR(t){return t&&typeof t=="object"?t.op==="add":!1}function mR(t){return t&&typeof t=="object"?t.op==="remove":!1}function V8(t){return t&&typeof t=="object"?t.op==="replace":!1}function Z8(t){return t&&typeof t=="object"?t.op==="copy":!1}function i1(t){return t&&typeof t=="object"?t.op==="move":!1}function tV(t,e){return JSON.stringify(t)===JSON.stringify(e)}function zpA(t,e){return t===e}function pR(t){return t.slice(0,t.length-1)}function iV(t){return t[t.length-1]}function nV(t,e){let A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:zpA;if(t.length{e[A]=t[A]}),e}if(Lo(t)){let e=sA({},t);return Object.getOwnPropertySymbols(t).forEach(A=>{e[A]=t[A]}),e}return t}function yR(t,e,A){if(t[e]===A)return t;let i=wR(t);return i[e]=A,i}function Ye(t,e){let A=t,i=0;for(;i3&&arguments[3]!==void 0?arguments[3]:!1;if(e.length===0)return A;let n=e[0],o=Bs(t?t[n]:void 0,e.slice(1),A,i);if(Lo(t)||wo(t))return yR(t,n,o);if(i){let r=PpA.test(n)?[]:{};return r[n]=o,r}throw new Error("Path does not exist")}var PpA=/^\d+$/;function $h(t,e,A){if(e.length===0)return A(t);if(!DR(t))throw new Error("Path doesn't exist");let i=e[0],n=$h(t[i],e.slice(1),A);return yR(t,i,n)}function lC(t,e){if(e.length===0)return t;if(!DR(t))throw new Error("Path does not exist");if(e.length===1){let n=e[0];if(!(n in t))return t;let o=wR(t);return wo(o)&&o.splice(Number.parseInt(n),1),Lo(o)&&delete o[n],o}let A=e[0],i=lC(t[A],e.slice(1));return yR(t,A,i)}function A4(t,e,A){let i=e.slice(0,e.length-1),n=e[e.length-1];return $h(t,i,o=>{if(!Array.isArray(o))throw new TypeError(`Array expected at path ${JSON.stringify(i)}`);let r=wR(o);return r.splice(Number.parseInt(n),0,A),r})}function As(t,e){return t===void 0?!1:e.length===0?!0:t===null?!1:As(t[e[0]],e.slice(1))}function xs(t){let e=t.split("/");return e.shift(),e.map(A=>A.replace(/~1/g,"/").replace(/~0/g,"~"))}function Ct(t){return t.map(oV).join("")}function oV(t){return`/${String(t).replace(/~/g,"~0").replace(/\//g,"~1")}`}function e4(t,e){return t+oV(e)}function Ma(t,e,A){let i=t;for(let n=0;n{let s,a=ba(o,r.path);if(r.op==="add")s=aV(o,a);else if(r.op==="remove")s=sV(o,a);else if(r.op==="replace")s=rV(o,a);else if(r.op==="copy")s=e6A(o,a);else if(r.op==="move")s=t6A(o,a,t4(r.from));else if(r.op==="test")s=[];else throw new Error(`Unknown JSONPatch operation ${JSON.stringify(r)}`);let c;if(A?.before){let g=A.before(o,r,s);if(g?.revertOperations&&(s=g.revertOperations),g?.document&&(c=g.document),g?.json)throw new Error('Deprecation warning: returned object property ".json" has been renamed to ".document"')}if(i=s.concat(i),c!==void 0)return{document:c}}}),i}function rV(t,e){return As(t,e)?[{op:"replace",path:Ct(e),value:Ye(t,e)}]:[]}function sV(t,e){return[{op:"add",path:Ct(e),value:Ye(t,e)}]}function aV(t,e){return WB(t,e)||!As(t,e)?[{op:"remove",path:Ct(e)}]:rV(t,e)}function e6A(t,e){return aV(t,e)}function t6A(t,e,A){if(e.length="0"&&t<="9"}function IV(t){return t>=" "}function i4(t){return`,:[]/{}() -+`.includes(t)}function bR(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="_"||t==="$"}function kR(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="_"||t==="$"||t>="0"&&t<="9"}var SR=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,RR=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function LR(t){return`,[]/{} -+`.includes(t)}function xR(t){return n4(t)||C6A.test(t)}var C6A=/^[[{\w-]$/;function CV(t){return t===` -`||t==="\r"||t===" "||t==="\b"||t==="\f"}function n1(t,e){let A=t.charCodeAt(e);return A===32||A===10||A===9||A===13}function dV(t,e){let A=t.charCodeAt(e);return A===32||A===9||A===13}function BV(t,e){let A=t.charCodeAt(e);return A===160||A>=8192&&A<=8202||A===8239||A===8287||A===12288}function n4(t){return NR(t)||A5(t)}function NR(t){return t==='"'||t==="\u201C"||t==="\u201D"}function FR(t){return t==='"'}function A5(t){return t==="'"||t==="\u2018"||t==="\u2019"||t==="`"||t==="\xB4"}function _R(t){return t==="'"}function XB(t,e){let A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=t.lastIndexOf(e);return i!==-1?t.substring(0,i)+(A?"":t.substring(i+1)):t}function Kc(t,e){let A=t.length;if(!n1(t,A-1))return t+e;for(;n1(t,A-1);)A--;return t.substring(0,A)+e+t.substring(A)}function EV(t,e,A){return t.substring(0,e)+t.substring(e+A)}function QV(t){return/[,\n][ \t\r]*$/.test(t)}var d6A={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},B6A={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` -`,r:"\r",t:" "};function Uc(t){let e=0,A="";c(["```","[```","{```"]),o()||fA(),c(["```","```]","```}"]);let n=I(",");for(n&&r(),xR(t[e])&&QV(A)?(n||(A=Kc(A,",")),h()):n&&(A=XB(A,","));t[e]==="}"||t[e]==="]";)e++,r();if(e>=t.length)return A;dA();function o(){r();let nA=E()||u()||w()||R()||D()||J(!1)||z();return r(),nA}function r(){let nA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,lA=e,wA=s(nA);do wA=a(),wA&&(wA=s(nA));while(wA);return e>lA}function s(nA){let lA=nA?n1:dV,wA="";for(;;)if(lA(t,e))wA+=t[e],e++;else if(BV(t,e))wA+=" ",e++;else break;return wA.length>0?(A+=wA,!0):!1}function a(){if(t[e]==="/"&&t[e+1]==="*"){for(;e=t.length;VA||(xR(t[e])||ie?A=Kc(A,":"):IA()),o()||(VA||ie?A+="null":IA())}return t[e]==="}"?(A+="}",e++):A=Kc(A,"}"),!0}return!1}function u(){if(t[e]==="["){A+="[",e++,r(),C(",")&&r();let nA=!0;for(;e0&&arguments[0]!==void 0?arguments[0]:!1,lA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,wA=t[e]==="\\";if(wA&&(e++,wA=!0),n4(t[e])){let VA=FR(t[e])?FR:_R(t[e])?_R:A5(t[e])?A5:NR,ie=e,UA=A.length,BA='"';for(e++;;){if(e>=t.length){let JA=K(e-1);return!nA&&i4(t.charAt(JA))?(e=ie,A=A.substring(0,UA),w(!0)):(BA=Kc(BA,'"'),A+=BA,!0)}if(e===lA)return BA=Kc(BA,'"'),A+=BA,!0;if(VA(t[e])){let JA=e,Xe=BA.length;if(BA+='"',e++,A+=BA,r(!1),nA||e>=t.length||i4(t[e])||n4(t[e])||o1(t[e]))return x(),!0;let We=K(JA-1),KA=t.charAt(We);if(KA===",")return e=ie,A=A.substring(0,UA),w(!1,We);if(i4(KA))return e=ie,A=A.substring(0,UA),w(!0);A=A.substring(0,UA),e=JA+1,BA=`${BA.substring(0,Xe)}\\${BA.substring(Xe)}`}else if(nA&&LR(t[e])){if(t[e-1]===":"&&SR.test(t.substring(ie+1,e+2)))for(;e=t.length?e=t.length:SA()}else BA+=JA,e+=2}else{let JA=t.charAt(e);JA==='"'&&t[e-1]!=="\\"?(BA+=`\\${JA}`,e++):CV(JA)?(BA+=d6A[JA],e++):(IV(JA)||j(JA),BA+=JA,e++)}wA&&d()}}return!1}function x(){let nA=!1;for(r();t[e]==="+";){nA=!0,e++,r(),A=XB(A,'"',!0);let lA=A.length;w()?A=EV(A,lA,1):A=Kc(A,'"')}return nA}function R(){let nA=e;if(t[e]==="-"){if(e++,O())return V(nA),!0;if(!o1(t[e]))return e=nA,!1}for(;o1(t[e]);)e++;if(t[e]==="."){if(e++,O())return V(nA),!0;if(!o1(t[e]))return e=nA,!1;for(;o1(t[e]);)e++}if(t[e]==="e"||t[e]==="E"){if(e++,(t[e]==="-"||t[e]==="+")&&e++,O())return V(nA),!0;if(!o1(t[e]))return e=nA,!1;for(;o1(t[e]);)e++}if(!O())return e=nA,!1;if(e>nA){let lA=t.slice(nA,e),wA=/^0\d/.test(lA);return A+=wA?`"${lA}"`:lA,!0}return!1}function D(){return G("true","true")||G("false","false")||G("null","null")||G("True","true")||G("False","false")||G("None","null")}function G(nA,lA){return t.slice(e,e+nA.length)===nA?(A+=lA,e+=nA.length,!0):!1}function J(nA){let lA=e;if(bR(t[e])){for(;elA){for(;n1(t,e-1)&&e>0;)e--;let wA=t.slice(lA,e);return A+=wA==="undefined"?"null":JSON.stringify(wA),t[e]==='"'&&e++,!0}}function z(){if(t[e]==="/"){let nA=e;for(e++;e0&&n1(t,lA);)lA--;return lA}function O(){return e>=t.length||i4(t[e])||n1(t,e)}function V(nA){A+=`${t.slice(nA,e)}0`}function j(nA){throw new R0(`Invalid character ${JSON.stringify(nA)}`,e)}function dA(){throw new R0(`Unexpected character ${JSON.stringify(t[e])}`,e)}function fA(){throw new R0("Unexpected end of json string",t.length)}function EA(){throw new R0("Object key expected",e)}function IA(){throw new R0("Colon expected",e)}function SA(){let nA=t.slice(e,e+6);throw new R0(`Invalid unicode character "${nA}"`,e)}}function E6A(t,e){return t[e]==="*"&&t[e+1]==="/"}var Q6A=typeof global=="object"&&global&&global.Object===Object&&global,e5=Q6A;var u6A=typeof self=="object"&&self&&self.Object===Object&&self,h6A=e5||u6A||Function("return this")(),Er=h6A;var f6A=Er.Symbol,es=f6A;var uV=Object.prototype,m6A=uV.hasOwnProperty,p6A=uV.toString,o4=es?es.toStringTag:void 0;function D6A(t){var e=m6A.call(t,o4),A=t[o4];try{t[o4]=void 0;var i=!0}catch{}var n=p6A.call(t);return i&&(e?t[o4]=A:delete t[o4]),n}var hV=D6A;var w6A=Object.prototype,y6A=w6A.toString;function v6A(t){return y6A.call(t)}var fV=v6A;var M6A="[object Null]",b6A="[object Undefined]",mV=es?es.toStringTag:void 0;function k6A(t){return t==null?t===void 0?b6A:M6A:mV&&mV in Object(t)?hV(t):fV(t)}var Mg=k6A;function S6A(t){return t!=null&&typeof t=="object"}var Aa=S6A;var R6A="[object Symbol]";function L6A(t){return typeof t=="symbol"||Aa(t)&&Mg(t)==R6A}var cc=L6A;function x6A(t,e){for(var A=-1,i=t==null?0:t.length,n=Array(i);++A0){if(++e>=m8A)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var UV=w8A;function y8A(t){return function(){return t}}var JV=y8A;var v8A=function(){try{var t=ka(Object,"defineProperty");return t({},"",{}),t}catch{}}(),AE=v8A;var M8A=AE?function(t,e){return AE(t,"toString",{configurable:!0,enumerable:!1,value:JV(e),writable:!0})}:Ll,YV=M8A;var b8A=UV(YV),TV=b8A;function k8A(t,e){for(var A=-1,i=t==null?0:t.length;++A-1&&t%1==0&&t-1&&t%1==0&&t<=Y8A}var tE=T8A;function H8A(t){return t!=null&&tE(t.length)&&!t5(t)}var Jc=H8A;function O8A(t,e,A){if(!Hr(A))return!1;var i=typeof e;return(i=="number"?Jc(A)&&eE(e,A.length):i=="string"&&e in A)?a1(A[e],t):!1}var s4=O8A;var z8A=Object.prototype;function P8A(t){var e=t&&t.constructor,A=typeof e=="function"&&e.prototype||z8A;return t===A}var g1=P8A;function j8A(t,e){for(var A=-1,i=Array(t);++A-1}var IZ=CDA;function dDA(t,e){var A=this.__data__,i=C1(A,t);return i<0?(++this.size,A.push([t,e])):A[i][1]=e,this}var CZ=dDA;function sE(t){var e=-1,A=t==null?0:t.length;for(this.clear();++e0&&A(s)?e>1?vZ(s,e-1,A,i,n):gE(n,s):i||(n[n.length]=s)}return n}var MZ=vZ;var GDA=a5(Object.getPrototypeOf,Object),I5=GDA;function KDA(t,e,A){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),A=A>n?n:A,A<0&&(A+=n),n=e>A?0:A-e>>>0,e>>>=0;for(var o=Array(n);++is))return!1;var c=o.get(t),g=o.get(e);if(c&&g)return c==e&&g==t;var I=-1,C=!0,d=A&GyA?new QW:void 0;for(o.set(t,e),o.set(e,t);++I=e||J<0||I&&z>=o}function h(){var G=R5();if(u(G))return w(G);s=setTimeout(h,E(G))}function w(G){return s=void 0,C&&i?d(G):(i=n=void 0,r)}function x(){s!==void 0&&clearTimeout(s),c=0,i=a=n=s=void 0}function R(){return s===void 0?r:w(R5())}function D(){var G=R5(),J=u(G);if(i=arguments,n=this,a=G,J){if(s===void 0)return B(a);if(I)return clearTimeout(s),s=setTimeout(h,e),d(a)}return s===void 0&&(s=setTimeout(h,e)),r}return D.cancel=x,D.flush=R,D}var EE=G7A;function K7A(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var li=K7A;function U7A(t){return typeof t=="function"?t:Ll}var L5=U7A;function J7A(t,e){for(var A=t==null?0:t.length;A--&&e(t[A],A,t)!==!1;);return t}var HW=J7A;var Y7A=v5(!0),OW=Y7A;function T7A(t,e){return t&&OW(t,e,Yc)}var zW=T7A;var H7A=b5(zW,!0),PW=H7A;function O7A(t,e){var A=Fn(t)?HW:PW;return A(t,L5(e))}var HR=O7A;function z7A(t){return t&&t.length?t[0]:void 0}var Tc=z7A;function P7A(t,e){var A=-1,i=Jc(t)?Array(t.length):[];return k5(t,function(n,o,r){i[++A]=e(n,o,r)}),i}var x5=P7A;function j7A(t,e){var A=Fn(t)?r1:x5;return A(t,xl(e,3))}var OR=j7A;var q7A=Object.prototype,V7A=q7A.hasOwnProperty,Z7A=S5(function(t,e,A){V7A.call(t,A)?t[A].push(e):s1(t,A,[e])}),zR=Z7A;function W7A(t){var e=t==null?0:t.length;return e?bZ(t,0,-1):[]}var yi=W7A;var X7A="[object Map]",$7A="[object Set]",AvA=Object.prototype,evA=AvA.hasOwnProperty;function tvA(t){if(t==null)return!0;if(Jc(t)&&(Fn(t)||typeof t=="string"||typeof t.splice=="function"||x0(t)||iE(t)||l1(t)))return!t.length;var e=bg(t);if(e==X7A||e==$7A)return!t.size;if(g1(t))return!c5(t).length;for(var A in t)if(evA.call(t,A))return!1;return!0}var Gi=tvA;function ivA(t,e){return BE(t,e)}var ri=ivA;function nvA(t,e){return te||o&&r&&a&&!s&&!c||i&&r&&a||!A&&a||!n)return 1;if(!i&&!o&&!c&&t=s)return a;var c=A[i];return a*(c=="desc"?-1:1)}}return t.index-e.index}var WW=gvA;function lvA(t,e,A){e.length?e=r1(e,function(o){return Fn(o)?function(r){return cE(r,o.length===1?o[0]:o)}:o}):e=[Ll];var i=-1;e=r1(e,I1(xl));var n=x5(t,function(o,r,s){var a=r1(e,function(c){return c(o)});return{criteria:a,index:++i,value:o}});return VW(n,function(o,r){return WW(o,r,A)})}var XW=lvA;var IvA=S5(function(t,e,A){t[A?0:1].push(e)},function(){return[[],[]]}),jR=IvA;var CvA=Math.ceil,dvA=Math.max;function BvA(t,e,A,i){for(var n=-1,o=dvA(CvA((e-t)/(A||1)),0),r=Array(o);o--;)r[i?o:++n]=t,t+=A;return r}var $W=BvA;function EvA(t){return function(e,A,i){return i&&typeof i!="number"&&s4(e,A,i)&&(A=i=void 0),e=$B(e),A===void 0?(A=e,e=0):A=$B(A),i=i===void 0?e1&&s4(t,e[0],e[1])?e=[]:A>2&&s4(e[0],e[1],e[2])&&(e=[e[0]]),XW(t,MZ(e,1),[])}),qR=uvA;var hvA=9007199254740991,VR=4294967295,fvA=Math.min;function mvA(t,e){if(t=SV(t),t<1||t>hvA)return[];var A=VR,i=fvA(t,VR);e=L5(e),t-=VR;for(var n=r5(i,e);++AArray.isArray(t),wvA=t=>t!==null&&typeof t=="object"&&!f1(t),yvA=t=>typeof t=="string",dC=(t,e)=>t===e?!0:t!==null&&e!==null&&typeof t=="object"&&typeof e=="object"&&Object.keys(t).length===Object.keys(e).length&&Object.entries(t).every(([A,i])=>dC(i,e[A]));function mr(t){return(...e)=>{let A=e.map(o=>Or(o)),i=A[0],n=A[1];return A.length===1?o=>t(i(o)):A.length===2?o=>t(i(o),n(o)):o=>t(...A.map(r=>r(o)))}}var C4={boolean:0,number:1,string:2},eX=3,iX=(t,e)=>typeof t==typeof e&&typeof t in C4?t>e:!1,vvA=(t,e)=>dC(t,e)||iX(t,e),nX=(t,e)=>typeof t==typeof e&&typeof t in C4?tdC(t,e)||nX(t,e),I4={pipe:(...t)=>{let e=t.map(A=>Or(A));return A=>e.reduce((i,n)=>n(i),A)},object:t=>{let e=Object.keys(t).map(A=>[A,Or(t[A])]);return A=>{let i={};for(let[n,o]of e)i[n]=o(A);return i}},array:(...t)=>{let e=t.map(A=>Or(A));return A=>e.map(i=>i(A))},get:(...t)=>{if(t.length===0)return e=>e??null;if(t.length===1){let e=t[0];return A=>A?.[e]??null}return e=>{let A=e;for(let i of t)A=A?.[i];return A??null}},map:t=>{let e=Or(t);return A=>A.map(e)},mapObject:t=>{let e=Or(t);return A=>{let i={};for(let n of Object.keys(A)){let o=e({key:n,value:A[n]});i[o.key]=o.value}return i}},mapKeys:t=>{let e=Or(t);return A=>{let i={};for(let n of Object.keys(A)){let o=e(n);i[o]=A[n]}return i}},mapValues:t=>{let e=Or(t);return A=>{let i={};for(let n of Object.keys(A))i[n]=e(A[n]);return i}},filter:t=>{let e=Or(t);return A=>A.filter(i=>tX(e(i)))},sort:(t=["get"],e)=>{let A=Or(t),i=e==="desc"?-1:1;function n(o,r){let s=A(o),a=A(r);if(typeof s!=typeof a){let c=C4[typeof s]??eX,g=C4[typeof a]??eX;return c>g?i:ca?i:so.slice().sort(n)},reverse:()=>t=>t.toReversed(),pick:(...t)=>{let e=t.map(([i,...n])=>[n[n.length-1],I4.get(...n)]),A=(i,n)=>{let o={};for(let[r,s]of n)o[r]=s(i);return o};return i=>f1(i)?i.map(n=>A(n,e)):A(i,e)},groupBy:t=>{let e=Or(t);return A=>{let i={};for(let n of A){let o=e(n);i[o]?i[o].push(n):i[o]=[n]}return i}},keyBy:t=>{let e=Or(t);return A=>{let i={};for(let n of A){let o=e(n);o in i||(i[o]=n)}return i}},flatten:()=>t=>t.flat(),join:(t="")=>e=>e.join(t),split:mr((t,e)=>e!==void 0?t.split(e):t.trim().split(/\s+/)),substring:mr((t,e,A)=>t.slice(Math.max(e,0),A)),uniq:()=>t=>{let e=[];for(let A of t)e.findIndex(i=>dC(i,A))===-1&&e.push(A);return e},uniqBy:t=>e=>Object.values(I4.keyBy(t)(e)),limit:t=>e=>e.slice(0,Math.max(t,0)),size:()=>t=>t.length,keys:()=>Object.keys,values:()=>Object.values,prod:()=>t=>l4(t,(e,A)=>e*A),sum:()=>t=>f1(t)?t.reduce((e,A)=>e+A,0):WR(),average:()=>t=>f1(t)?t.length>0?t.reduce((e,A)=>e+A)/t.length:null:WR(),min:()=>t=>l4(t,(e,A)=>Math.min(e,A)),max:()=>t=>l4(t,(e,A)=>Math.max(e,A)),and:mr((...t)=>l4(t,(e,A)=>!!(e&&A))),or:mr((...t)=>l4(t,(e,A)=>!!(e||A))),not:mr(t=>!t),exists:t=>{let e=t.slice(1),A=e.pop(),i=I4.get(...e);return n=>{let o=i(n);return!!o&&Object.hasOwnProperty.call(o,A)}},if:(t,e,A)=>{let i=Or(t),n=Or(e),o=Or(A);return r=>tX(i(r))?n(r):o(r)},in:(t,e)=>{let A=Or(t),i=Or(e);return n=>{let o=A(n);return i(n).findIndex(r=>dC(r,o))!==-1}},"not in":(t,e)=>{let A=I4.in(t,e);return i=>!A(i)},regex:(t,e,A)=>{let i=new RegExp(e,A),n=Or(t);return o=>i.test(n(o))},eq:mr(dC),gt:mr(iX),gte:mr(vvA),lt:mr(nX),lte:mr(MvA),ne:mr((t,e)=>!dC(t,e)),add:mr((t,e)=>t+e),subtract:mr((t,e)=>t-e),multiply:mr((t,e)=>t*e),divide:mr((t,e)=>t/e),mod:mr((t,e)=>t%e),pow:mr((t,e)=>t**e),abs:mr(Math.abs),round:mr((t,e=0)=>+`${Math.round(+`${t}e${e}`)}e${-e}`),number:mr(t=>{let e=Number(t);return Number.isNaN(Number(t))?null:e}),string:mr(String)},tX=t=>t!==null&&t!==0&&t!==!1,l4=(t,e)=>(f1(t)||WR(),t.length===0?null:t.reduce(e)),WR=()=>{XR("Array expected")},XR=t=>{throw new TypeError(t)},F5=[];function Or(t,e){F5.unshift(sA(sA(sA({},I4),F5[0]),e?.functions));try{let A=f1(t)?bvA(t,F5[0]):wvA(t)?XR(`Function notation ["object", {...}] expected but got ${JSON.stringify(t)}`):()=>t;return i=>{try{return A(i)}catch(n){throw n.jsonquery=[{data:i,query:t},...n.jsonquery??[]],n}}}finally{F5.shift()}}function bvA(t,e){let[A,...i]=t,n=e[A];return n||XR(`Unknown function '${A}'`),n(...i)}var oX=[{pow:"^"},{multiply:"*",divide:"/",mod:"%"},{add:"+",subtract:"-"},{gt:">",gte:">=",lt:"<",lte:"<=",in:"in","not in":"not in"},{eq:"==",ne:"!="},{and:"and"},{or:"or"},{pipe:"|"}],kvA=["|","and","or"],rX=["|","and","or","*","/","%","+","-"];function sX(t,e){if(!f1(e))throw new Error("Invalid custom operators");return e.reduce(SvA,t)}function SvA(t,{name:e,op:A,at:i,after:n,before:o}){if(i)return t.map(a=>Object.values(a).includes(i)?Fe(sA({},a),{[e]:A}):a);let r=n??o,s=t.findIndex(a=>Object.values(a).includes(r));if(s!==-1)return t.toSpliced(s+(n?1:0),0,{[e]:A});throw new Error("Invalid custom operator")}var RvA=/^[a-zA-Z_$][a-zA-Z\d_$]*$/,LvA=/^[a-zA-Z_$][a-zA-Z\d_$]*/,xvA=/^"(?:[^"\\]|\\.)*"/,NvA=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/,FvA=/^(0|[1-9][0-9]*)/,_vA=/^(true|false|null)/,GvA=/^[ \n\t\r]+/;function $R(t,e){let A=e?.operators??[],i=sX(oX,A),n=Object.assign({},...i),o=kvA.concat(A.filter(O=>O.vararg).map(O=>O.op)),r=rX.concat(A.filter(O=>O.leftAssociative).map(O=>O.op)),s=(O=i.length-1)=>{let V=i[O];if(!V)return c();let j=t[z]==="(",dA=s(O-1);for(;;){D();let fA=z,EA=a(V);if(!EA)break;let IA=s(O-1),SA=dA[0],nA=EA===SA&&!j;if(nA&&!r.includes(n[EA])){z=fA;break}dA=nA&&o.includes(n[EA])?[...dA,IA]:[EA,dA,IA]}return dA},a=O=>{let V=Object.keys(O).sort((j,dA)=>dA.length-j.length);for(let j of V){let dA=O[j];if(t.substring(z,z+dA.length)===dA)return z+=dA.length,D(),j}},c=()=>{if(D(),t[z]==="("){z++;let O=s();return G(")"),O}return g()},g=()=>{if(t[z]==="."){let O=[];for(;t[z]===".";)z++,O.push(B()??E()??h()??J("Property expected"));return["get",...O]}return I()},I=()=>{let O=z,V=E();if(D(),!V||t[z]!=="(")return z=O,C();z++,D();let j=t[z]!==")"?[s()]:[];for(;z{if(t[z]==="{"){z++,D();let O={},V=!0;for(;z{if(t[z]==="["){z++,D();let O=[],V=!0;for(;zR(xvA,JSON.parse),E=()=>R(LvA,O=>O),u=()=>R(NvA,JSON.parse),h=()=>R(FvA,JSON.parse),w=()=>{let O=R(_vA,JSON.parse);if(O!==void 0)return O;J("Value expected")},x=()=>{D(),z{let j=t.substring(z).match(O);if(j)return z+=j[0].length,V(j[0])},D=()=>R(GvA,O=>O),G=O=>{t[z]!==O&&J(`Character '${O}' expected`),z++},J=(O,V=z)=>{throw new SyntaxError(`${O} (pos: ${V})`)},z=0,K=s();return x(),K}var KvA=40,UvA=" ",aX=(t,e)=>{let A=e?.indentation??UvA,i=e?.operators??[],n=sX(oX,i),o=Object.assign({},...n),r=rX.concat(i.filter(d=>d.leftAssociative).map(d=>d.op)),s=(d,B,E=!1)=>f1(d)?a(d,B,E):JSON.stringify(d),a=(d,B,E)=>{let[u,...h]=d;if(u==="get"&&h.length>0)return g(h);if(u==="object")return c(h[0],B);if(u==="array"){let D=h.map(G=>s(G,B));return C(D,["[",", ","]"],[`[ -${B+A}`,`, -${B+A}`,` -${B}]`])}let w=o[u];if(w){let D=E?"(":"",G=E?")":"",J=h.map((z,K)=>{let O=z?.[0],V=n.findIndex(fA=>u in fA),j=n.findIndex(fA=>O in fA),dA=V0||u===O&&!r.includes(w);return s(z,B+A,dA)});return C(J,[D,` ${w} `,G],[D,` -${B+A}${w} `,G])}let x=h.length===1?B:B+A,R=h.map(D=>s(D,x));return C(R,[`${u}(`,", ",")"],h.length===1?[`${u}(`,`, -${B}`,")"]:[`${u}( -${x}`,`, -${x}`,` -${B})`])},c=(d,B)=>{let E=B+A,u=Object.entries(d).map(([h,w])=>`${I(h)}: ${s(w,E)}`);return C(u,["{ ",", "," }"],[`{ -${E}`,`, -${E}`,` -${B}}`])},g=d=>d.map(B=>`.${I(B)}`).join(""),I=d=>RvA.test(d)?d:JSON.stringify(d),C=(d,[B,E,u],[h,w,x])=>B.length+d.reduce((R,D)=>R+D.length+E.length,0)-E.length+u.length<=(e?.maxLineLength??KvA)?B+d.join(E)+u:h+d.join(w)+x;return s(t,"")};function cX(t,e,A){return Or(yvA(e)?$R(e,A):e,A)(t)}var gX={prefix:"far",iconName:"lightbulb",icon:[384,512,[128161],"f0eb","M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7c0 0 0 0 0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5L109 384c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8c0 0 0 0 0 0s0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4c0 0 0 0 0 0s0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5l-48.6 0c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80l0-16 160 0 0 16c0 44.2-35.8 80-80 80z"]};var JvA={prefix:"far",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},AL=JvA;var eL={prefix:"far",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"]};var lX={prefix:"far",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]};var _5={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z"]};var IX={prefix:"fas",iconName:"down-left-and-up-right-to-center",icon:[512,512,["compress-alt"],"f422","M439 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39L439 7zM72 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39L73 505c-9.4 9.4-24.6 9.4-33.9 0L7 473c-9.4-9.4-9.4-24.6 0-33.9l87-87L55 313c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8z"]};var uE={prefix:"fas",iconName:"caret-right",icon:[256,512,[],"f0da","M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z"]};var tL={prefix:"fas",iconName:"paste",icon:[512,512,["file-clipboard"],"f0ea","M160 0c-23.7 0-44.4 12.9-55.4 32L48 32C21.5 32 0 53.5 0 80L0 400c0 26.5 21.5 48 48 48l144 0 0-272c0-44.2 35.8-80 80-80l48 0 0-16c0-26.5-21.5-48-48-48l-56.6 0C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48l0 272 0 16c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-220.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L320 128l-48 0zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]};var CX={prefix:"fas",iconName:"circle-notch",icon:[512,512,[],"f1ce","M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z"]};var YvA={prefix:"fas",iconName:"scissors",icon:[512,512,[9984,9986,9988,"cut"],"f0c4","M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},BC=YvA;var TvA={prefix:"fas",iconName:"square-caret-down",icon:[448,512,["caret-square-down"],"f150","M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"]},dX=TvA;var BX={prefix:"fas",iconName:"caret-left",icon:[256,512,[],"f0d9","M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z"]};var HvA={prefix:"fas",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},iL=HvA;var OvA={prefix:"fas",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z"]},EX=OvA;var QX={prefix:"fas",iconName:"chevron-up",icon:[512,512,[],"f077","M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"]};var nL={prefix:"fas",iconName:"angle-right",icon:[320,512,[8250],"f105","M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"]};var zvA={prefix:"fas",iconName:"square-caret-up",icon:[448,512,["caret-square-up"],"f151","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"]},uX=zvA;var oL={prefix:"fas",iconName:"caret-up",icon:[320,512,[],"f0d8","M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"]};var rL={prefix:"fas",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"]};var d4={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.9 54.9C10.5 40.9 24.5 32 40 32l432 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9 320 448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z"]};var B4={prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"]};var _0={prefix:"fas",iconName:"wrench",icon:[512,512,[128295],"f0ad","M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7L336 192c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]};var hX={prefix:"fas",iconName:"eye",icon:[576,512,[128065],"f06e","M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"]};var EC={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z"]};var PvA={prefix:"fas",iconName:"arrow-rotate-right",icon:[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M386.3 160L336 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z"]};var G5=PvA;var jvA={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z"]};var K5=jvA;var qvA={prefix:"fas",iconName:"crop-simple",icon:[512,512,["crop-alt"],"f565","M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-224 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64L160 64l0 64 224 0 0 352z"]},fX=qvA;var VvA={prefix:"fas",iconName:"gear",icon:[512,512,[9881,"cog"],"f013","M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"]},mX=VvA;var Nl={prefix:"fas",iconName:"caret-down",icon:[320,512,[],"f0d7","M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"]};var ZvA={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"]},sL=ZvA;var E4={prefix:"fas",iconName:"arrow-right-arrow-left",icon:[448,512,[8644,"exchange"],"f0ec","M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z"]};var WvA={prefix:"fas",iconName:"arrow-down-short-wide",icon:[576,512,["sort-amount-desc","sort-amount-down-alt"],"f884","M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]};var Q4=WvA;var pX={prefix:"fas",iconName:"angle-down",icon:[448,512,[8964],"f107","M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]};var aL={prefix:"fas",iconName:"arrow-down",icon:[384,512,[8595],"f063","M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]};var XvA={prefix:"fas",iconName:"magnifying-glass",icon:[512,512,[128269,"search"],"f002","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"]},u4=XvA;var DX={prefix:"fas",iconName:"chevron-down",icon:[512,512,[],"f078","M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"]};var G0={prefix:"fas",iconName:"copy",icon:[448,512,[],"f0c5","M208 0L332.1 0c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9L448 336c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48zM48 128l80 0 0 64-64 0 0 256 192 0 0-32 64 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48z"]};var QC={prefix:"fas",iconName:"plus",icon:[448,512,[10133,61543,"add"],"2b","M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z"]};var wX={prefix:"fas",iconName:"xmark",icon:[384,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"]},yX=wX;var h4=wX;var vX={prefix:"fas",iconName:"rotate",icon:[512,512,[128260,"sync-alt"],"f2f1","M142.9 142.9c-17.5 17.5-30.1 38-37.8 59.8c-5.9 16.7-24.2 25.4-40.8 19.5s-25.4-24.2-19.5-40.8C55.6 150.7 73.2 122 97.6 97.6c87.2-87.2 228.3-87.5 315.8-1L455 55c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 128c0 13.3-10.7 24-24 24l-8.4 0c0 0 0 0 0 0L344 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l41.1-41.1c-62.6-61.5-163.1-61.2-225.3 1zM16 312c0-13.3 10.7-24 24-24l7.6 0 .7 0L168 288c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-41.1 41.1c62.6 61.5 163.1 61.2 225.3-1c17.5-17.5 30.1-38 37.8-59.8c5.9-16.7 24.2-25.4 40.8-19.5s25.4 24.2 19.5 40.8c-10.8 30.6-28.4 59.3-52.9 83.8c-87.2 87.2-228.3 87.5-315.8 1L57 457c-6.9 6.9-17.2 8.9-26.2 5.2S16 449.7 16 440l0-119.6 0-.7 0-7.6z"]};var MX={prefix:"fas",iconName:"up-right-and-down-left-from-center",icon:[512,512,["expand-alt"],"f424","M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z"]};var cL={prefix:"fas",iconName:"clone",icon:[512,512,[],"f24d","M288 448L64 448l0-224 64 0 0-64-64 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-64-64 0 0 64zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z"]};var U5={prefix:"fas",iconName:"check",icon:[448,512,[10003,10004],"f00c","M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"]};var $vA={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},m1=$vA;var QsA=$Q(SX(),1);var RX=Number.isNaN||function(e){return typeof e=="number"&&e!==e};function A9A(t,e){return!!(t===e||RX(t)&&RX(e))}function e9A(t,e){if(t.length!==e.length)return!1;for(var A=0;A{if(typeof n!="object"||!n.name||!n.init)throw new Error("Invalid JSEP plugin format");this.registered[n.name]||(n.init(this.jsep),this.registered[n.name]=n)})}},Na=class t{static get version(){return"1.4.0"}static toString(){return"JavaScript Expression Parser (JSEP) v"+t.version}static addUnaryOp(e){return t.max_unop_len=Math.max(e.length,t.max_unop_len),t.unary_ops[e]=1,t}static addBinaryOp(e,A,i){return t.max_binop_len=Math.max(e.length,t.max_binop_len),t.binary_ops[e]=A,i?t.right_associative.add(e):t.right_associative.delete(e),t}static addIdentifierChar(e){return t.additional_identifier_chars.add(e),t}static addLiteral(e,A){return t.literals[e]=A,t}static removeUnaryOp(e){return delete t.unary_ops[e],e.length===t.max_unop_len&&(t.max_unop_len=t.getMaxKeyLen(t.unary_ops)),t}static removeAllUnaryOps(){return t.unary_ops={},t.max_unop_len=0,t}static removeIdentifierChar(e){return t.additional_identifier_chars.delete(e),t}static removeBinaryOp(e){return delete t.binary_ops[e],e.length===t.max_binop_len&&(t.max_binop_len=t.getMaxKeyLen(t.binary_ops)),t.right_associative.delete(e),t}static removeAllBinaryOps(){return t.binary_ops={},t.max_binop_len=0,t}static removeLiteral(e){return delete t.literals[e],t}static removeAllLiterals(){return t.literals={},t}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(e){this.expr=e,this.index=0}static parse(e){return new t(e).parse()}static getMaxKeyLen(e){return Math.max(0,...Object.keys(e).map(A=>A.length))}static isDecimalDigit(e){return e>=48&&e<=57}static binaryPrecedence(e){return t.binary_ops[e]||0}static isIdentifierStart(e){return e>=65&&e<=90||e>=97&&e<=122||e>=128&&!t.binary_ops[String.fromCharCode(e)]||t.additional_identifier_chars.has(String.fromCharCode(e))}static isIdentifierPart(e){return t.isIdentifierStart(e)||t.isDecimalDigit(e)}throwError(e){let A=new Error(e+" at character "+this.index);throw A.index=this.index,A.description=e,A}runHook(e,A){if(t.hooks[e]){let i={context:this,node:A};return t.hooks.run(e,i),i.node}return A}searchHook(e){if(t.hooks[e]){let A={context:this};return t.hooks[e].find(function(i){return i.call(A.context,A),A.node}),A.node}}gobbleSpaces(){let e=this.code;for(;e===t.SPACE_CODE||e===t.TAB_CODE||e===t.LF_CODE||e===t.CR_CODE;)e=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");let e=this.gobbleExpressions(),A=e.length===1?e[0]:{type:t.COMPOUND,body:e};return this.runHook("after-all",A)}gobbleExpressions(e){let A=[],i,n;for(;this.index0;){if(t.binary_ops.hasOwnProperty(e)&&(!t.isIdentifierStart(this.code)||this.index+e.lengtho.right_a&&I.right_a?i>I.prec:i<=I.prec;for(;n.length>2&&g(n[n.length-2]);)s=n.pop(),A=n.pop().value,r=n.pop(),e={type:t.BINARY_EXP,operator:A,left:r,right:s},n.push(e);e=this.gobbleToken(),e||this.throwError("Expected expression after "+c),n.push(o,e)}for(a=n.length-1,e=n[a];a>1;)e={type:t.BINARY_EXP,operator:n[a-1].value,left:n[a-2],right:e},a-=2;return e}gobbleToken(){let e,A,i,n;if(this.gobbleSpaces(),n=this.searchHook("gobble-token"),n)return this.runHook("after-token",n);if(e=this.code,t.isDecimalDigit(e)||e===t.PERIOD_CODE)return this.gobbleNumericLiteral();if(e===t.SQUOTE_CODE||e===t.DQUOTE_CODE)n=this.gobbleStringLiteral();else if(e===t.OBRACK_CODE)n=this.gobbleArray();else{for(A=this.expr.substr(this.index,t.max_unop_len),i=A.length;i>0;){if(t.unary_ops.hasOwnProperty(A)&&(!t.isIdentifierStart(this.code)||this.index+A.length=A.length&&this.throwError("Unexpected token "+String.fromCharCode(e));break}else if(o===t.COMMA_CODE){if(this.index++,n++,n!==A.length){if(e===t.CPAREN_CODE)this.throwError("Unexpected token ,");else if(e===t.CBRACK_CODE)for(let r=A.length;r":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10,"**":11},right_associative:new Set(["**"]),additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"});Na.max_unop_len=Na.getMaxKeyLen(Na.unary_ops);Na.max_binop_len=Na.getMaxKeyLen(Na.binary_ops);var H0=t=>new Na(t).parse(),bRA=Object.getOwnPropertyNames(class{});Object.getOwnPropertyNames(Na).filter(t=>!bRA.includes(t)&&H0[t]===void 0).forEach(t=>{H0[t]=Na[t]});H0.Jsep=Na;var kRA="ConditionalExpression",SRA={name:"ternary",init(t){t.hooks.add("after-expression",function(A){if(A.node&&this.code===t.QUMARK_CODE){this.index++;let i=A.node,n=this.gobbleExpression();if(n||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===t.COLON_CODE){this.index++;let o=this.gobbleExpression();if(o||this.throwError("Expected expression"),A.node={type:kRA,test:i,consequent:n,alternate:o},i.operator&&t.binary_ops[i.operator]<=.9){let r=i;for(;r.right.operator&&t.binary_ops[r.right.operator]<=.9;)r=r.right;A.node.test=r.right,r.right=A.node,A.node=i}}else this.throwError("Expected :")}})}};H0.plugins.register(SRA);var geA=47,RRA=92,LRA={name:"regex",init(t){t.hooks.add("gobble-token",function(A){if(this.code===geA){let i=++this.index,n=!1;for(;this.index=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57)r+=this.char;else break}let s;try{s=new RegExp(o,r)}catch(a){this.throwError(a.message)}return A.node={type:t.LITERAL,value:s,raw:this.expr.slice(i-1,this.index)},A.node=this.gobbleTokenProperty(A.node),A.node}this.code===t.OBRACK_CODE?n=!0:n&&this.code===t.CBRACK_CODE&&(n=!1),this.index+=this.code===RRA?2:1}this.throwError("Unclosed Regex")}})}},Vx=43,xRA=45,xE={name:"assignment",assignmentOperators:new Set(["=","*=","**=","/=","%=","+=","-=","<<=",">>=",">>>=","&=","^=","|=","||=","&&=","??="]),updateOperators:[Vx,xRA],assignmentPrecedence:.9,init(t){let e=[t.IDENTIFIER,t.MEMBER_EXP];xE.assignmentOperators.forEach(i=>t.addBinaryOp(i,xE.assignmentPrecedence,!0)),t.hooks.add("gobble-token",function(n){let o=this.code;xE.updateOperators.some(r=>r===o&&r===this.expr.charCodeAt(this.index+1))&&(this.index+=2,n.node={type:"UpdateExpression",operator:o===Vx?"++":"--",argument:this.gobbleTokenProperty(this.gobbleIdentifier()),prefix:!0},(!n.node.argument||!e.includes(n.node.argument.type))&&this.throwError(`Unexpected ${n.node.operator}`))}),t.hooks.add("after-token",function(n){if(n.node){let o=this.code;xE.updateOperators.some(r=>r===o&&r===this.expr.charCodeAt(this.index+1))&&(e.includes(n.node.type)||this.throwError(`Unexpected ${n.node.operator}`),this.index+=2,n.node={type:"UpdateExpression",operator:o===Vx?"++":"--",argument:n.node,prefix:!1})}}),t.hooks.add("after-expression",function(n){n.node&&A(n.node)});function A(i){xE.assignmentOperators.has(i.operator)?(i.type="AssignmentExpression",A(i.left),A(i.right)):i.operator||Object.values(i).forEach(n=>{n&&typeof n=="object"&&A(n)})}}};H0.plugins.register(LRA,xE);H0.addUnaryOp("typeof");H0.addLiteral("null",null);H0.addLiteral("undefined",void 0);var NRA=new Set(["constructor","__proto__","__defineGetter__","__defineSetter__"]),go={evalAst(t,e){switch(t.type){case"BinaryExpression":case"LogicalExpression":return go.evalBinaryExpression(t,e);case"Compound":return go.evalCompound(t,e);case"ConditionalExpression":return go.evalConditionalExpression(t,e);case"Identifier":return go.evalIdentifier(t,e);case"Literal":return go.evalLiteral(t,e);case"MemberExpression":return go.evalMemberExpression(t,e);case"UnaryExpression":return go.evalUnaryExpression(t,e);case"ArrayExpression":return go.evalArrayExpression(t,e);case"CallExpression":return go.evalCallExpression(t,e);case"AssignmentExpression":return go.evalAssignmentExpression(t,e);default:throw SyntaxError("Unexpected expression",t)}},evalBinaryExpression(t,e){return{"||":(i,n)=>i||n(),"&&":(i,n)=>i&&n(),"|":(i,n)=>i|n(),"^":(i,n)=>i^n(),"&":(i,n)=>i&n(),"==":(i,n)=>i==n(),"!=":(i,n)=>i!=n(),"===":(i,n)=>i===n(),"!==":(i,n)=>i!==n(),"<":(i,n)=>i":(i,n)=>i>n(),"<=":(i,n)=>i<=n(),">=":(i,n)=>i>=n(),"<<":(i,n)=>i<>":(i,n)=>i>>n(),">>>":(i,n)=>i>>>n(),"+":(i,n)=>i+n(),"-":(i,n)=>i-n(),"*":(i,n)=>i*n(),"/":(i,n)=>i/n(),"%":(i,n)=>i%n()}[t.operator](go.evalAst(t.left,e),()=>go.evalAst(t.right,e))},evalCompound(t,e){let A;for(let i=0;i-go.evalAst(i,e),"!":i=>!go.evalAst(i,e),"~":i=>~go.evalAst(i,e),"+":i=>+go.evalAst(i,e),typeof:i=>typeof go.evalAst(i,e)}[t.operator](t.argument)},evalArrayExpression(t,e){return t.elements.map(A=>go.evalAst(A,e))},evalCallExpression(t,e){let A=t.arguments.map(n=>go.evalAst(n,e));return go.evalAst(t.callee,e)(...A)},evalAssignmentExpression(t,e){if(t.left.type!=="Identifier")throw SyntaxError("Invalid left-hand side in assignment");let A=t.left.name,i=go.evalAst(t.right,e);return e[A]=i,e[A]}},Xx=class{constructor(e){this.code=e,this.ast=H0(this.code)}runInNewContext(e){let A=Object.assign(Object.create(null),e);return go.evalAst(this.ast,A)}};function k1(t,e){return t=t.slice(),t.push(e),t}function $x(t,e){return e=e.slice(),e.unshift(t),e}var AN=class extends Error{constructor(e){super('JSONPath should not be called with "new" (it prevents return of (unwrapped) scalar values)'),this.avoidNew=!0,this.value=e,this.name="NewError"}};function Rn(t,e,A,i,n){if(!(this instanceof Rn))try{return new Rn(t,e,A,i,n)}catch(r){if(!r.avoidNew)throw r;return r.value}typeof t=="string"&&(n=i,i=A,A=e,e=t,t=null);let o=t&&typeof t=="object";if(t=t||{},this.json=t.json||A,this.path=t.path||e,this.resultType=t.resultType||"value",this.flatten=t.flatten||!1,this.wrap=Object.hasOwn(t,"wrap")?t.wrap:!0,this.sandbox=t.sandbox||{},this.eval=t.eval===void 0?"safe":t.eval,this.ignoreEvalErrors=typeof t.ignoreEvalErrors>"u"?!1:t.ignoreEvalErrors,this.parent=t.parent||null,this.parentProperty=t.parentProperty||null,this.callback=t.callback||i||null,this.otherTypeCallback=t.otherTypeCallback||n||function(){throw new TypeError("You must supply an otherTypeCallback callback option with the @other() operator.")},t.autostart!==!1){let r={path:o?t.path:e};o?"json"in t&&(r.json=t.json):r.json=A;let s=this.evaluate(r);if(!s||typeof s!="object")throw new AN(s);return s}}Rn.prototype.evaluate=function(t,e,A,i){let n=this.parent,o=this.parentProperty,{flatten:r,wrap:s}=this;if(this.currResultType=this.resultType,this.currEval=this.eval,this.currSandbox=this.sandbox,A=A||this.callback,this.currOtherTypeCallback=i||this.otherTypeCallback,e=e||this.json,t=t||this.path,t&&typeof t=="object"&&!Array.isArray(t)){if(!t.path&&t.path!=="")throw new TypeError('You must supply a "path" property when providing an object argument to JSONPath.evaluate().');if(!Object.hasOwn(t,"json"))throw new TypeError('You must supply a "json" property when providing an object argument to JSONPath.evaluate().');({json:e}=t),r=Object.hasOwn(t,"flatten")?t.flatten:r,this.currResultType=Object.hasOwn(t,"resultType")?t.resultType:this.currResultType,this.currSandbox=Object.hasOwn(t,"sandbox")?t.sandbox:this.currSandbox,s=Object.hasOwn(t,"wrap")?t.wrap:s,this.currEval=Object.hasOwn(t,"eval")?t.eval:this.currEval,A=Object.hasOwn(t,"callback")?t.callback:A,this.currOtherTypeCallback=Object.hasOwn(t,"otherTypeCallback")?t.otherTypeCallback:this.currOtherTypeCallback,n=Object.hasOwn(t,"parent")?t.parent:n,o=Object.hasOwn(t,"parentProperty")?t.parentProperty:o,t=t.path}if(n=n||null,o=o||null,Array.isArray(t)&&(t=Rn.toPathString(t)),!t&&t!==""||!e)return;let a=Rn.toPathArray(t);a[0]==="$"&&a.length>1&&a.shift(),this._hasParentSelector=null;let c=this._trace(a,e,["$"],n,o,A).filter(function(g){return g&&!g.isParentSelector});return c.length?!s&&c.length===1&&!c[0].hasArrExpr?this._getPreferredOutput(c[0]):c.reduce((g,I)=>{let C=this._getPreferredOutput(I);return r&&Array.isArray(C)?g=g.concat(C):g.push(C),g},[]):s?[]:void 0};Rn.prototype._getPreferredOutput=function(t){let e=this.currResultType;switch(e){case"all":{let A=Array.isArray(t.path)?t.path:Rn.toPathArray(t.path);return t.pointer=Rn.toPointer(A),t.path=typeof t.path=="string"?t.path:Rn.toPathString(t.path),t}case"value":case"parent":case"parentProperty":return t[e];case"path":return Rn.toPathString(t[e]);case"pointer":return Rn.toPointer(t.path);default:throw new TypeError("Unknown result type")}};Rn.prototype._handleCallback=function(t,e,A){if(e){let i=this._getPreferredOutput(t);t.path=typeof t.path=="string"?t.path:Rn.toPathString(t.path),e(i,A,t)}};Rn.prototype._trace=function(t,e,A,i,n,o,r,s){let a;if(!t.length)return a={path:A,value:e,parent:i,parentProperty:n,hasArrExpr:r},this._handleCallback(a,o,"value"),a;let c=t[0],g=t.slice(1),I=[];function C(d){Array.isArray(d)?d.forEach(B=>{I.push(B)}):I.push(d)}if((typeof c!="string"||s)&&e&&Object.hasOwn(e,c))C(this._trace(g,e[c],k1(A,c),e,c,o,r));else if(c==="*")this._walk(e,d=>{C(this._trace(g,e[d],k1(A,d),e,d,o,!0,!0))});else if(c==="..")C(this._trace(g,e,A,i,n,o,r)),this._walk(e,d=>{typeof e[d]=="object"&&C(this._trace(t.slice(),e[d],k1(A,d),e,d,o,!0))});else{if(c==="^")return this._hasParentSelector=!0,{path:A.slice(0,-1),expr:g,isParentSelector:!0};if(c==="~")return a={path:k1(A,c),value:n,parent:i,parentProperty:null},this._handleCallback(a,o,"property"),a;if(c==="$")C(this._trace(g,e,A,null,null,o,r));else if(/^(-?\d*):(-?\d*):?(\d*)$/u.test(c))C(this._slice(c,g,e,A,i,n,o));else if(c.indexOf("?(")===0){if(this.currEval===!1)throw new Error("Eval [?(expr)] prevented in JSONPath expression.");let d=c.replace(/^\?\((.*?)\)$/u,"$1"),B=/@.?([^?]*)[['](\??\(.*?\))(?!.\)\])[\]']/gu.exec(d);B?this._walk(e,E=>{let u=[B[2]],h=B[1]?e[E][B[1]]:e[E];this._trace(u,h,A,i,n,o,!0).length>0&&C(this._trace(g,e[E],k1(A,E),e,E,o,!0))}):this._walk(e,E=>{this._eval(d,e[E],E,A,i,n)&&C(this._trace(g,e[E],k1(A,E),e,E,o,!0))})}else if(c[0]==="("){if(this.currEval===!1)throw new Error("Eval [(expr)] prevented in JSONPath expression.");C(this._trace($x(this._eval(c,e,A.at(-1),A.slice(0,-1),i,n),g),e,A,i,n,o,r))}else if(c[0]==="@"){let d=!1,B=c.slice(1,-2);switch(B){case"scalar":(!e||!["object","function"].includes(typeof e))&&(d=!0);break;case"boolean":case"string":case"undefined":case"function":typeof e===B&&(d=!0);break;case"integer":Number.isFinite(e)&&!(e%1)&&(d=!0);break;case"number":Number.isFinite(e)&&(d=!0);break;case"nonFinite":typeof e=="number"&&!Number.isFinite(e)&&(d=!0);break;case"object":e&&typeof e===B&&(d=!0);break;case"array":Array.isArray(e)&&(d=!0);break;case"other":d=this.currOtherTypeCallback(e,A,i,n);break;case"null":e===null&&(d=!0);break;default:throw new TypeError("Unknown value type "+B)}if(d)return a={path:A,value:e,parent:i,parentProperty:n},this._handleCallback(a,o,"value"),a}else if(c[0]==="`"&&e&&Object.hasOwn(e,c.slice(1))){let d=c.slice(1);C(this._trace(g,e[d],k1(A,d),e,d,o,r,!0))}else if(c.includes(",")){let d=c.split(",");for(let B of d)C(this._trace($x(B,g),e,A,i,n,o,!0))}else!s&&e&&Object.hasOwn(e,c)&&C(this._trace(g,e[c],k1(A,c),e,c,o,r,!0))}if(this._hasParentSelector)for(let d=0;d{e(A)})};Rn.prototype._slice=function(t,e,A,i,n,o,r){if(!Array.isArray(A))return;let s=A.length,a=t.split(":"),c=a[2]&&Number.parseInt(a[2])||1,g=a[0]&&Number.parseInt(a[0])||0,I=a[1]&&Number.parseInt(a[1])||s;g=g<0?Math.max(0,g+s):Math.min(s,g),I=I<0?Math.max(0,I+s):Math.min(s,I);let C=[];for(let d=g;d{C.push(E)});return C};Rn.prototype._eval=function(t,e,A,i,n,o){this.currSandbox._$_parentProperty=o,this.currSandbox._$_parent=n,this.currSandbox._$_property=A,this.currSandbox._$_root=this.json,this.currSandbox._$_v=e;let r=t.includes("@path");r&&(this.currSandbox._$_path=Rn.toPathString(i.concat([A])));let s=this.currEval+"Script:"+t;if(!Rn.cache[s]){let a=t.replaceAll("@parentProperty","_$_parentProperty").replaceAll("@parent","_$_parent").replaceAll("@property","_$_property").replaceAll("@root","_$_root").replaceAll(/@([.\s)[])/gu,"_$_v$1");if(r&&(a=a.replaceAll("@path","_$_path")),this.currEval==="safe"||this.currEval===!0||this.currEval===void 0)Rn.cache[s]=new this.safeVm.Script(a);else if(this.currEval==="native")Rn.cache[s]=new this.vm.Script(a);else if(typeof this.currEval=="function"&&this.currEval.prototype&&Object.hasOwn(this.currEval.prototype,"runInNewContext")){let c=this.currEval;Rn.cache[s]=new c(a)}else if(typeof this.currEval=="function")Rn.cache[s]={runInNewContext:c=>this.currEval(a,c)};else throw new TypeError(`Unknown "eval" property "${this.currEval}"`)}try{return Rn.cache[s].runInNewContext(this.currSandbox)}catch(a){if(this.ignoreEvalErrors)return!1;throw new Error("jsonPath: "+a.message+": "+t)}};Rn.cache={};Rn.toPathString=function(t){let e=t,A=e.length,i="$";for(let n=1;ntypeof e[c]=="function");let o=i.map(c=>e[c]);A=n.reduce((c,g)=>{let I=e[g].toString();return/function/u.test(I)||(I="function "+I),"var "+g+"="+I+";"+c},"")+A,!/(['"])use strict\1/u.test(A)&&!i.includes("arguments")&&(A="var arguments = undefined;"+A),A=A.replace(/;\s*$/u,"");let s=A.lastIndexOf(";"),a=s!==-1?A.slice(0,s+1)+" return "+A.slice(s+1):" return "+A;return new Function(...i,a)(...o)}};Rn.prototype.vm={Script:eN};var iN=[],deA=[];(()=>{let t="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,A=0;e>1;if(t=deA[i])e=i+1;else return!0;if(e==A)return!1}}function leA(t){return t>=127462&&t<=127487}var IeA=8205;function BeA(t,e,A=!0,i=!0){return(A?EeA:GRA)(t,e,i)}function EeA(t,e,A){if(e==t.length)return e;e&&QeA(t.charCodeAt(e))&&ueA(t.charCodeAt(e-1))&&e--;let i=tN(t,e);for(e+=CeA(i);e=0&&leA(tN(t,r));)o++,r-=2;if(o%2==0)break;e+=2}else break}return e}function GRA(t,e,A){for(;e>0;){let i=EeA(t,e-2,A);if(i=56320&&t<57344}function ueA(t){return t>=55296&&t<56320}function CeA(t){return t<65536?1:2}var tn=class t{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,A,i){[e,A]=KE(this,e,A);let n=[];return this.decompose(0,e,n,2),i.length&&i.decompose(0,i.length,n,3),this.decompose(A,this.length,n,1),FE.from(n,this.length-(A-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,A=this.length){[e,A]=KE(this,e,A);let i=[];return this.decompose(e,A,i,0),FE.from(i,A-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let A=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),n=new bC(this),o=new bC(e);for(let r=A,s=A;;){if(n.next(r),o.next(r),r=0,n.lineBreak!=o.lineBreak||n.done!=o.done||n.value!=o.value)return!1;if(s+=n.value.length,n.done||s>=i)return!0}}iter(e=1){return new bC(this,e)}iterRange(e,A=this.length){return new bD(this,e,A)}iterLines(e,A){let i;if(e==null)i=this.iter();else{A==null&&(A=this.lines+1);let n=this.line(e).from;i=this.iterRange(n,Math.max(n,A==this.lines+1?this.length:A<=1?0:this.line(A-1).to))}return new kD(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?t.empty:e.length<=32?new gc(e):FE.from(gc.split(e,[]))}},gc=class t extends tn{constructor(e,A=KRA(e)){super(),this.text=e,this.length=A}get lines(){return this.text.length}get children(){return null}lineInner(e,A,i,n){for(let o=0;;o++){let r=this.text[o],s=n+r.length;if((A?i:s)>=e)return new rN(n,s,i,r);n=s+1,i++}}decompose(e,A,i,n){let o=e<=0&&A>=this.length?this:new t(heA(this.text,e,A),Math.min(A,this.length)-Math.max(0,e));if(n&1){let r=i.pop(),s=MD(o.text,r.text.slice(),0,o.length);if(s.length<=32)i.push(new t(s,r.length+o.length));else{let a=s.length>>1;i.push(new t(s.slice(0,a)),new t(s.slice(a)))}}else i.push(o)}replace(e,A,i){if(!(i instanceof t))return super.replace(e,A,i);[e,A]=KE(this,e,A);let n=MD(this.text,MD(i.text,heA(this.text,0,e)),A),o=this.length+i.length-(A-e);return n.length<=32?new t(n,o):FE.from(t.split(n,[]),o)}sliceString(e,A=this.length,i=` -`){[e,A]=KE(this,e,A);let n="";for(let o=0,r=0;o<=A&&re&&r&&(n+=i),eo&&(n+=s.slice(Math.max(0,e-o),A-o)),o=a+1}return n}flatten(e){for(let A of this.text)e.push(A)}scanIdentical(){return 0}static split(e,A){let i=[],n=-1;for(let o of e)i.push(o),n+=o.length+1,i.length==32&&(A.push(new t(i,n)),i=[],n=-1);return n>-1&&A.push(new t(i,n)),A}},FE=class t extends tn{constructor(e,A){super(),this.children=e,this.length=A,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,A,i,n){for(let o=0;;o++){let r=this.children[o],s=n+r.length,a=i+r.lines-1;if((A?a:s)>=e)return r.lineInner(e,A,i,n);n=s+1,i=a+1}}decompose(e,A,i,n){for(let o=0,r=0;r<=A&&o=r){let c=n&((r<=e?1:0)|(a>=A?2:0));r>=e&&a<=A&&!c?i.push(s):s.decompose(e-r,A-r,i,c)}r=a+1}}replace(e,A,i){if([e,A]=KE(this,e,A),i.lines=o&&A<=s){let a=r.replace(e-o,A-o,i),c=this.lines-r.lines+a.lines;if(a.lines>4&&a.lines>c>>6){let g=this.children.slice();return g[n]=a,new t(g,this.length-(A-e)+i.length)}return super.replace(o,s,a)}o=s+1}return super.replace(e,A,i)}sliceString(e,A=this.length,i=` -`){[e,A]=KE(this,e,A);let n="";for(let o=0,r=0;oe&&o&&(n+=i),er&&(n+=s.sliceString(e-r,A-r,i)),r=a+1}return n}flatten(e){for(let A of this.children)A.flatten(e)}scanIdentical(e,A){if(!(e instanceof t))return 0;let i=0,[n,o,r,s]=A>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;n+=A,o+=A){if(n==r||o==s)return i;let a=this.children[n],c=e.children[o];if(a!=c)return i+a.scanIdentical(c,A);i+=a.length+1}}static from(e,A=e.reduce((i,n)=>i+n.length+1,-1)){let i=0;for(let d of e)i+=d.lines;if(i<32){let d=[];for(let B of e)B.flatten(d);return new gc(d,A)}let n=Math.max(32,i>>5),o=n<<1,r=n>>1,s=[],a=0,c=-1,g=[];function I(d){let B;if(d.lines>o&&d instanceof t)for(let E of d.children)I(E);else d.lines>r&&(a>r||!a)?(C(),s.push(d)):d instanceof gc&&a&&(B=g[g.length-1])instanceof gc&&d.lines+B.lines<=32?(a+=d.lines,c+=d.length+1,g[g.length-1]=new gc(B.text.concat(d.text),B.length+1+d.length)):(a+d.lines>n&&C(),a+=d.lines,c+=d.length+1,g.push(d))}function C(){a!=0&&(s.push(g.length==1?g[0]:t.from(g,c)),c=-1,a=g.length=0)}for(let d of e)I(d);return C(),s.length==1?s[0]:new t(s,A)}};tn.empty=new gc([""],0);function KRA(t){let e=-1;for(let A of t)e+=A.length+1;return e}function MD(t,e,A=0,i=1e9){for(let n=0,o=0,r=!0;o=A&&(a>i&&(s=s.slice(0,i-n)),n0?1:(e instanceof gc?e.text.length:e.children.length)<<1]}nextInner(e,A){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,n=this.nodes[i],o=this.offsets[i],r=o>>1,s=n instanceof gc?n.text.length:n.children.length;if(r==(A>0?s:0)){if(i==0)return this.done=!0,this.value="",this;A>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((o&1)==(A>0?0:1)){if(this.offsets[i]+=A,e==0)return this.lineBreak=!0,this.value=` -`,this;e--}else if(n instanceof gc){let a=n.text[r+(A<0?-1:0)];if(this.offsets[i]+=A,a.length>Math.max(0,e))return this.value=e==0?a:A>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=n.children[r+(A<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=A):(A<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(A>0?1:(a instanceof gc?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},bD=class{constructor(e,A,i){this.value="",this.done=!1,this.cursor=new bC(e,A>i?-1:1),this.pos=A>i?e.length:0,this.from=Math.min(A,i),this.to=Math.max(A,i)}nextInner(e,A){if(A<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,A<0?this.pos-this.to:this.from-this.pos);let i=A<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:n}=this.cursor.next(e);return this.pos+=(n.length+e)*A,this.value=n.length<=i?n:A<0?n.slice(n.length-i):n.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},kD=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:A,lineBreak:i,value:n}=this.inner.next(e);return A&&this.afterBreak?(this.value="",this.afterBreak=!1):A?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(tn.prototype[Symbol.iterator]=function(){return this.iter()},bC.prototype[Symbol.iterator]=bD.prototype[Symbol.iterator]=kD.prototype[Symbol.iterator]=function(){return this});var rN=class{constructor(e,A,i,n){this.from=e,this.to=A,this.number=i,this.text=n}get length(){return this.to-this.from}};function KE(t,e,A){return e=Math.max(0,Math.min(t.length,e)),[e,Math.max(e,Math.min(t.length,A))]}function br(t,e,A=!0,i=!0){return BeA(t,e,A,i)}function URA(t){return t>=56320&&t<57344}function JRA(t){return t>=55296&&t<56320}function ms(t,e){let A=t.charCodeAt(e);if(!JRA(A)||e+1==t.length)return A;let i=t.charCodeAt(e+1);return URA(i)?(A-55296<<10)+(i-56320)+65536:A}function V4(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10)+55296,(t&1023)+56320))}function lc(t){return t<65536?1:2}var sN=/\r\n?|\n/,us=function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t}(us||(us={})),R1=class t{constructor(e){this.sections=e}get length(){let e=0;for(let A=0;Ae)return o+(e-n);o+=s}else{if(i!=us.Simple&&c>=e&&(i==us.TrackDel&&ne||i==us.TrackBefore&&ne))return null;if(c>e||c==e&&A<0&&!s)return e==n||A<0?o:o+a;o+=a}n=c}if(e>n)throw new RangeError(`Position ${e} is out of range for changeset of length ${n}`);return o}touchesRange(e,A=e){for(let i=0,n=0;i=0&&n<=A&&s>=e)return nA?"cover":!0;n=s}return!1}toString(){let e="";for(let A=0;A=0?":"+n:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(A=>typeof A!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new t(e)}static create(e){return new t(e)}},hs=class t extends R1{constructor(e,A){super(e),this.inserted=A}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return aN(this,(A,i,n,o,r)=>e=e.replace(n,n+(i-A),r),!1),e}mapDesc(e,A=!1){return cN(this,e,A,!0)}invert(e){let A=this.sections.slice(),i=[];for(let n=0,o=0;n=0){A[n]=s,A[n+1]=r;let a=n>>1;for(;i.length0&&S1(i,A,o.text),o.forward(g),s+=g}let c=e[r++];for(;s>1].toJSON()))}return e}static of(e,A,i){let n=[],o=[],r=0,s=null;function a(g=!1){if(!g&&!n.length)return;rC||I<0||C>A)throw new RangeError(`Invalid change range ${I} to ${C} (in doc of length ${A})`);let B=d?typeof d=="string"?tn.of(d.split(i||sN)):d:tn.empty,E=B.length;if(I==C&&E==0)return;Ir&&Gs(n,I-r,-1),Gs(n,C-I,E),S1(o,n,B),r=C}}return c(e),a(!s),s}static empty(e){return new t(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let A=[],i=[];for(let n=0;ns&&typeof r!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(o.length==1)A.push(o[0],0);else{for(;i.length=0&&A<=0&&A==t[n+1]?t[n]+=e:n>=0&&e==0&&t[n]==0?t[n+1]+=A:i?(t[n]+=e,t[n+1]+=A):t.push(e,A)}function S1(t,e,A){if(A.length==0)return;let i=e.length-2>>1;if(i>1])),!(A||r==t.sections.length||t.sections[r+1]<0);)s=t.sections[r++],a=t.sections[r++];e(n,c,o,g,I),n=c,o=g}}}function cN(t,e,A,i=!1){let n=[],o=i?[]:null,r=new kC(t),s=new kC(e);for(let a=-1;;){if(r.done&&s.len||s.done&&r.len)throw new Error("Mismatched change set lengths");if(r.ins==-1&&s.ins==-1){let c=Math.min(r.len,s.len);Gs(n,c,-1),r.forward(c),s.forward(c)}else if(s.ins>=0&&(r.ins<0||a==r.i||r.off==0&&(s.len=0&&a=0){let c=0,g=r.len;for(;g;)if(s.ins==-1){let I=Math.min(g,s.len);c+=I,g-=I,s.forward(I)}else if(s.ins==0&&s.lena||r.ins>=0&&r.len>a)&&(s||i.length>c),o.forward2(a),r.forward(a)}}}}var kC=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return A>=e.length?tn.empty:e[A]}textBit(e){let{inserted:A}=this.set,i=this.i-2>>1;return i>=A.length&&!e?tn.empty:A[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},NE=class t{constructor(e,A,i){this.from=e,this.to=A,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,A=-1){let i,n;return this.empty?i=n=e.mapPos(this.from,A):(i=e.mapPos(this.from,1),n=e.mapPos(this.to,-1)),i==this.from&&n==this.to?this:new t(i,n,this.flags)}extend(e,A=e){if(e<=this.anchor&&A>=this.anchor)return ae.range(e,A);let i=Math.abs(e-this.anchor)>Math.abs(A-this.anchor)?e:A;return ae.range(this.anchor,i)}eq(e,A=!1){return this.anchor==e.anchor&&this.head==e.head&&(!A||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return ae.range(e.anchor,e.head)}static create(e,A,i){return new t(e,A,i)}},ae=class t{constructor(e,A){this.ranges=e,this.mainIndex=A}map(e,A=-1){return e.empty?this:t.create(this.ranges.map(i=>i.map(e,A)),this.mainIndex)}eq(e,A=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;ie.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new t(e.ranges.map(A=>NE.fromJSON(A)),e.main)}static single(e,A=e){return new t([t.range(e,A)],0)}static create(e,A=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,n=0;ne?8:0)|o)}static normalized(e,A=0){let i=e[A];e.sort((n,o)=>n.from-o.from),A=e.indexOf(i);for(let n=1;no.head?t.range(a,s):t.range(s,a))}}return new t(e,A)}};function MeA(t,e){for(let A of t.ranges)if(A.to>e)throw new RangeError("Selection points outside of document")}var uN=0,qe=class t{constructor(e,A,i,n,o){this.combine=e,this.compareInput=A,this.compare=i,this.isStatic=n,this.id=uN++,this.default=e([]),this.extensions=typeof o=="function"?o(this):o}get reader(){return this}static define(e={}){return new t(e.combine||(A=>A),e.compareInput||((A,i)=>A===i),e.compare||(e.combine?(A,i)=>A===i:hN),!!e.static,e.enables)}of(e){return new _E([],this,0,e)}compute(e,A){if(this.isStatic)throw new Error("Can't compute a static facet");return new _E(e,this,1,A)}computeN(e,A){if(this.isStatic)throw new Error("Can't compute a static facet");return new _E(e,this,2,A)}from(e,A){return A||(A=i=>i),this.compute([e],i=>A(i.field(e)))}};function hN(t,e){return t==e||t.length==e.length&&t.every((A,i)=>A===e[i])}var _E=class{constructor(e,A,i,n){this.dependencies=e,this.facet=A,this.type=i,this.value=n,this.id=uN++}dynamicSlot(e){var A;let i=this.value,n=this.facet.compareInput,o=this.id,r=e[o]>>1,s=this.type==2,a=!1,c=!1,g=[];for(let I of this.dependencies)I=="doc"?a=!0:I=="selection"?c=!0:(((A=e[I.id])!==null&&A!==void 0?A:1)&1)==0&&g.push(e[I.id]);return{create(I){return I.values[r]=i(I),1},update(I,C){if(a&&C.docChanged||c&&(C.docChanged||C.selection)||gN(I,g)){let d=i(I);if(s?!feA(d,I.values[r],n):!n(d,I.values[r]))return I.values[r]=d,1}return 0},reconfigure:(I,C)=>{let d,B=C.config.address[o];if(B!=null){let E=LD(C,B);if(this.dependencies.every(u=>u instanceof qe?C.facet(u)===I.facet(u):u instanceof tr?C.field(u,!1)==I.field(u,!1):!0)||(s?feA(d=i(I),E,n):n(d=i(I),E)))return I.values[r]=E,0}else d=i(I);return I.values[r]=d,1}}}};function feA(t,e,A){if(t.length!=e.length)return!1;for(let i=0;it[a.id]),n=A.map(a=>a.type),o=i.filter(a=>!(a&1)),r=t[e.id]>>1;function s(a){let c=[];for(let g=0;gi===n),e);return e.provide&&(A.provides=e.provide(A)),A}create(e){let A=e.facet(wD).find(i=>i.field==this);return(A?.create||this.createF)(e)}slot(e){let A=e[this.id]>>1;return{create:i=>(i.values[A]=this.create(i),1),update:(i,n)=>{let o=i.values[A],r=this.updateF(o,n);return this.compareF(o,r)?0:(i.values[A]=r,1)},reconfigure:(i,n)=>{let o=i.facet(wD),r=n.facet(wD),s;return(s=o.find(a=>a.field==this))&&s!=r.find(a=>a.field==this)?(i.values[A]=s.create(i),1):n.config.address[this.id]!=null?(i.values[A]=n.field(this),0):(i.values[A]=this.create(i),1)}}}init(e){return[this,wD.of({field:this,create:e})]}get extension(){return this}},vC={lowest:4,low:3,default:2,high:1,highest:0};function O4(t){return e=>new SD(e,t)}var Ng={highest:O4(vC.highest),high:O4(vC.high),default:O4(vC.default),low:O4(vC.low),lowest:O4(vC.lowest)},SD=class{constructor(e,A){this.inner=e,this.prec=A}},Jl=class t{of(e){return new P4(this,e)}reconfigure(e){return t.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},P4=class{constructor(e,A){this.compartment=e,this.inner=A}},RD=class t{constructor(e,A,i,n,o,r){for(this.base=e,this.compartments=A,this.dynamicSlots=i,this.address=n,this.staticValues=o,this.facets=r,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,A,i){let n=[],o=Object.create(null),r=new Map;for(let C of TRA(e,A,r))C instanceof tr?n.push(C):(o[C.facet.id]||(o[C.facet.id]=[])).push(C);let s=Object.create(null),a=[],c=[];for(let C of n)s[C.id]=c.length<<1,c.push(d=>C.slot(d));let g=i?.config.facets;for(let C in o){let d=o[C],B=d[0].facet,E=g&&g[C]||[];if(d.every(u=>u.type==0))if(s[B.id]=a.length<<1|1,hN(E,d))a.push(i.facet(B));else{let u=B.combine(d.map(h=>h.value));a.push(i&&B.compare(u,i.facet(B))?i.facet(B):u)}else{for(let u of d)u.type==0?(s[u.id]=a.length<<1|1,a.push(u.value)):(s[u.id]=c.length<<1,c.push(h=>u.dynamicSlot(h)));s[B.id]=c.length<<1,c.push(u=>YRA(u,B,d))}}let I=c.map(C=>C(s));return new t(e,r,I,s,a,o)}};function TRA(t,e,A){let i=[[],[],[],[],[]],n=new Map;function o(r,s){let a=n.get(r);if(a!=null){if(a<=s)return;let c=i[a].indexOf(r);c>-1&&i[a].splice(c,1),r instanceof P4&&A.delete(r.compartment)}if(n.set(r,s),Array.isArray(r))for(let c of r)o(c,s);else if(r instanceof P4){if(A.has(r.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(r.compartment)||r.inner;A.set(r.compartment,c),o(c,s)}else if(r instanceof SD)o(r.inner,r.prec);else if(r instanceof tr)i[s].push(r),r.provides&&o(r.provides,s);else if(r instanceof _E)i[s].push(r),r.facet.extensions&&o(r.facet.extensions,vC.default);else{let c=r.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${r}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);o(c,s)}}return o(t,vC.default),i.reduce((r,s)=>r.concat(s))}function z4(t,e){if(e&1)return 2;let A=e>>1,i=t.status[A];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;t.status[A]=4;let n=t.computeSlot(t,t.config.dynamicSlots[A]);return t.status[A]=2|n}function LD(t,e){return e&1?t.config.staticValues[e>>1]:t.values[e>>1]}var meA=qe.define(),nN=qe.define({combine:t=>t.some(e=>e),static:!0}),beA=qe.define({combine:t=>t.length?t[0]:void 0,static:!0}),keA=qe.define(),SeA=qe.define(),ReA=qe.define(),peA=qe.define({combine:t=>t.length?t[0]:!1}),Fa=class{constructor(e,A){this.type=e,this.value=A}static define(){return new lN}},lN=class{of(e){return new Fa(this,e)}},IN=class{constructor(e){this.map=e}of(e){return new Ki(this,e)}},Ki=(()=>{class t{constructor(A,i){this.type=A,this.value=i}map(A){let i=this.type.map(this.value,A);return i===void 0?void 0:i==this.value?this:new t(this.type,i)}is(A){return this.type==A}static define(A={}){return new IN(A.map||(i=>i))}static mapEffects(A,i){if(!A.length)return A;let n=[];for(let o of A){let r=o.map(i);r&&n.push(r)}return n}}return t.reconfigure=t.define(),t.appendConfig=t.define(),t})(),Ul=(()=>{class t{constructor(A,i,n,o,r,s){this.startState=A,this.changes=i,this.selection=n,this.effects=o,this.annotations=r,this.scrollIntoView=s,this._doc=null,this._state=null,n&&MeA(n,i.newLength),r.some(a=>a.type==t.time)||(this.annotations=r.concat(t.time.of(Date.now())))}static create(A,i,n,o,r,s){return new t(A,i,n,o,r,s)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(A){for(let i of this.annotations)if(i.type==A)return i.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(A){let i=this.annotation(t.userEvent);return!!(i&&(i==A||i.length>A.length&&i.slice(0,A.length)==A&&i[A.length]=="."))}}return t.time=Fa.define(),t.userEvent=Fa.define(),t.addToHistory=Fa.define(),t.remote=Fa.define(),t})();function HRA(t,e){let A=[];for(let i=0,n=0;;){let o,r;if(i=t[i]))o=t[i++],r=t[i++];else if(n=0;n--){let o=i[n](t);o instanceof Ul?t=o:Array.isArray(o)&&o.length==1&&o[0]instanceof Ul?t=o[0]:t=xeA(e,GE(o),!1)}return t}function zRA(t){let e=t.startState,A=e.facet(ReA),i=t;for(let n=A.length-1;n>=0;n--){let o=A[n](t);o&&Object.keys(o).length&&(i=LeA(i,CN(e,o,t.changes.newLength),!0))}return i==t?t:Ul.create(e,t.changes,t.selection,i.effects,i.annotations,i.scrollIntoView)}var PRA=[];function GE(t){return t==null?PRA:Array.isArray(t)?t:[t]}var lo=function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t}(lo||(lo={})),jRA=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,dN;try{dN=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function qRA(t){if(dN)return dN.test(t);for(let e=0;e"\x80"&&(A.toUpperCase()!=A.toLowerCase()||jRA.test(A)))return!0}return!1}function VRA(t){return e=>{if(!/\S/.test(e))return lo.Space;if(qRA(e))return lo.Word;for(let A=0;A-1)return lo.Word;return lo.Other}}var Dr=(()=>{class t{constructor(A,i,n,o,r,s){this.config=A,this.doc=i,this.selection=n,this.values=o,this.status=A.statusTemplate.slice(),this.computeSlot=r,s&&(s._state=this);for(let a=0;ao.set(g,c)),i=null),o.set(a.value.compartment,a.value.extension)):a.is(Ki.reconfigure)?(i=null,n=a.value):a.is(Ki.appendConfig)&&(i=null,n=GE(n).concat(a.value));let r;i?r=A.startState.values.slice():(i=RD.resolve(n,o,this),r=new t(i,this.doc,this.selection,i.dynamicSlots.map(()=>null),(c,g)=>g.reconfigure(c,this),null).values);let s=A.startState.facet(nN)?A.newSelection:A.newSelection.asSingle();new t(i,A.newDoc,s,r,(a,c)=>c.update(a,A),A)}replaceSelection(A){return typeof A=="string"&&(A=this.toText(A)),this.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:A},range:ae.cursor(i.from+A.length)}))}changeByRange(A){let i=this.selection,n=A(i.ranges[0]),o=this.changes(n.changes),r=[n.range],s=GE(n.effects);for(let a=1;as.spec.fromJSON(a,c)))}}return t.create({doc:A.doc,selection:ae.fromJSON(A.selection),extensions:i.extensions?o.concat([i.extensions]):o})}static create(A={}){let i=RD.resolve(A.extensions||[],new Map),n=A.doc instanceof tn?A.doc:tn.of((A.doc||"").split(i.staticFacet(t.lineSeparator)||sN)),o=A.selection?A.selection instanceof ae?A.selection:ae.single(A.selection.anchor,A.selection.head):ae.single(0);return MeA(o,n.length),i.staticFacet(nN)||(o=o.asSingle()),new t(i,n,o,i.dynamicSlots.map(()=>null),(r,s)=>s.create(r),null)}get tabSize(){return this.facet(t.tabSize)}get lineBreak(){return this.facet(t.lineSeparator)||` -`}get readOnly(){return this.facet(peA)}phrase(A,...i){for(let n of this.facet(t.phrases))if(Object.prototype.hasOwnProperty.call(n,A)){A=n[A];break}return i.length&&(A=A.replace(/\$(\$|\d*)/g,(n,o)=>{if(o=="$")return"$";let r=+(o||1);return!r||r>i.length?n:i[r-1]})),A}languageDataAt(A,i,n=-1){let o=[];for(let r of this.facet(meA))for(let s of r(this,i,n))Object.prototype.hasOwnProperty.call(s,A)&&o.push(s[A]);return o}charCategorizer(A){return VRA(this.languageDataAt("wordChars",A).join(""))}wordAt(A){let{text:i,from:n,length:o}=this.doc.lineAt(A),r=this.charCategorizer(A),s=A-n,a=A-n;for(;s>0;){let c=br(i,s,!1);if(r(i.slice(c,s))!=lo.Word)break;s=c}for(;ae.length?e[0]:4}),t.lineSeparator=beA,t.readOnly=peA,t.phrases=qe.define({compare(e,A){let i=Object.keys(e),n=Object.keys(A);return i.length==n.length&&i.every(o=>e[o]==A[o])}}),t.languageData=meA,t.changeFilter=keA,t.transactionFilter=SeA,t.transactionExtender=ReA,t})();Jl.reconfigure=Ki.define();function ts(t,e,A={}){let i={};for(let n of t)for(let o of Object.keys(n)){let r=n[o],s=i[o];if(s===void 0)i[o]=r;else if(!(s===r||r===void 0))if(Object.hasOwnProperty.call(A,o))i[o]=A[o](s,r);else throw new Error("Config merge conflict for field "+o)}for(let n in e)i[n]===void 0&&(i[n]=e[n]);return i}var xg=class{eq(e){return this==e}range(e,A=e){return j4.create(e,A,this)}};xg.prototype.startSide=xg.prototype.endSide=0;xg.prototype.point=!1;xg.prototype.mapMode=us.TrackDel;var j4=class t{constructor(e,A,i){this.from=e,this.to=A,this.value=i}static create(e,A,i){return new t(e,A,i)}};function BN(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}var EN=class t{constructor(e,A,i,n){this.from=e,this.to=A,this.value=i,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(e,A,i,n=0){let o=i?this.to:this.from;for(let r=n,s=o.length;;){if(r==s)return r;let a=r+s>>1,c=o[a]-e||(i?this.value[a].endSide:this.value[a].startSide)-A;if(a==r)return c>=0?r:s;c>=0?s=a:r=a+1}}between(e,A,i,n){for(let o=this.findIndex(A,-1e9,!0),r=this.findIndex(i,1e9,!1,o);od||C==d&&c.startSide>0&&c.endSide<=0)continue;(d-C||c.endSide-c.startSide)<0||(r<0&&(r=C),c.point&&(s=Math.max(s,d-C)),i.push(c),n.push(C-r),o.push(d-r))}return{mapped:i.length?new t(n,o,i,s):null,pos:r}}},Io=(()=>{class t{constructor(A,i,n,o){this.chunkPos=A,this.chunk=i,this.nextLayer=n,this.maxPoint=o}static create(A,i,n,o){return new t(A,i,n,o)}get length(){let A=this.chunk.length-1;return A<0?0:Math.max(this.chunkEnd(A),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let A=this.nextLayer.size;for(let i of this.chunk)A+=i.value.length;return A}chunkEnd(A){return this.chunkPos[A]+this.chunk[A].length}update(A){let{add:i=[],sort:n=!1,filterFrom:o=0,filterTo:r=this.length}=A,s=A.filter;if(i.length==0&&!s)return this;if(n&&(i=i.slice().sort(BN)),this.isEmpty)return i.length?t.of(i):this;let a=new xD(this,null,-1).goto(0),c=0,g=[],I=new fs;for(;a.value||c=0){let C=i[c++];I.addInner(C.from,C.to,C.value)||g.push(C)}else a.rangeIndex==1&&a.chunkIndexthis.chunkEnd(a.chunkIndex)||ra.to||r=r&&A<=r+s.length&&s.between(r,A-r,i-r,n)===!1)return}this.nextLayer.between(A,i,n)}}iter(A=0){return q4.from([this]).goto(A)}get isEmpty(){return this.nextLayer==this}static iter(A,i=0){return q4.from(A).goto(i)}static compare(A,i,n,o,r=-1){let s=A.filter(C=>C.maxPoint>0||!C.isEmpty&&C.maxPoint>=r),a=i.filter(C=>C.maxPoint>0||!C.isEmpty&&C.maxPoint>=r),c=DeA(s,a,n),g=new MC(s,c,r),I=new MC(a,c,r);n.iterGaps((C,d,B)=>weA(g,C,I,d,B,o)),n.empty&&n.length==0&&weA(g,0,I,0,0,o)}static eq(A,i,n=0,o){o==null&&(o=999999999);let r=A.filter(I=>!I.isEmpty&&i.indexOf(I)<0),s=i.filter(I=>!I.isEmpty&&A.indexOf(I)<0);if(r.length!=s.length)return!1;if(!r.length)return!0;let a=DeA(r,s),c=new MC(r,a,0).goto(n),g=new MC(s,a,0).goto(n);for(;;){if(c.to!=g.to||!QN(c.active,g.active)||c.point&&(!g.point||!c.point.eq(g.point)))return!1;if(c.to>o)return!0;c.next(),g.next()}}static spans(A,i,n,o,r=-1){let s=new MC(A,null,r).goto(i),a=i,c=s.openStart;for(;;){let g=Math.min(s.to,n);if(s.point){let I=s.activeForPoint(s.to),C=s.pointFroma&&(o.span(a,g,s.active,c),c=s.openEnd(g));if(s.to>n)return c+(s.point&&s.to>n?1:0);a=s.to,s.next()}}static of(A,i=!1){let n=new fs;for(let o of A instanceof j4?[A]:i?ZRA(A):A)n.add(o.from,o.to,o.value);return n.finish()}static join(A){if(!A.length)return t.empty;let i=A[A.length-1];for(let n=A.length-2;n>=0;n--)for(let o=A[n];o!=t.empty;o=o.nextLayer)i=new t(o.chunkPos,o.chunk,i,Math.max(o.maxPoint,i.maxPoint));return i}}return t.empty=new t([],[],null,-1),t})();function ZRA(t){if(t.length>1)for(let e=t[0],A=1;A0)return t.slice().sort(BN);e=i}return t}Io.empty.nextLayer=Io.empty;var fs=class t{finishChunk(e){this.chunks.push(new EN(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,A,i){this.addInner(e,A,i)||(this.nextLayer||(this.nextLayer=new t)).add(e,A,i)}addInner(e,A,i){let n=e-this.lastTo||i.startSide-this.last.endSide;if(n<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return n<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(A-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=A,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,A-e)),!0)}addChunk(e,A){if((e-this.lastTo||A.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,A.maxPoint),this.chunks.push(A),this.chunkPos.push(e);let i=A.value.length-1;return this.last=A.value[i],this.lastFrom=A.from[i]+e,this.lastTo=A.to[i]+e,!0}finish(){return this.finishInner(Io.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let A=Io.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,A}};function DeA(t,e,A){let i=new Map;for(let o of t)for(let r=0;r=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&n.push(new xD(r,A,i,o));return n.length==1?n[0]:new t(n)}get startSide(){return this.value?this.value.startSide:0}goto(e,A=-1e9){for(let i of this.heap)i.goto(e,A);for(let i=this.heap.length>>1;i>=0;i--)oN(this.heap,i);return this.next(),this}forward(e,A){for(let i of this.heap)i.forward(e,A);for(let i=this.heap.length>>1;i>=0;i--)oN(this.heap,i);(this.to-e||this.value.endSide-A)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),oN(this.heap,0)}}};function oN(t,e){for(let A=t[e];;){let i=(e<<1)+1;if(i>=t.length)break;let n=t[i];if(i+1=0&&(n=t[i+1],i++),A.compare(n)<0)break;t[i]=A,t[e]=n,e=i}}var MC=class{constructor(e,A,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=q4.from(e,A,i)}goto(e,A=-1e9){return this.cursor.goto(e,A),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=A,this.openStart=-1,this.next(),this}forward(e,A){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-A)<0;)this.removeActive(this.minActive);this.cursor.forward(e,A)}removeActive(e){yD(this.active,e),yD(this.activeTo,e),yD(this.activeRank,e),this.minActive=yeA(this.active,this.activeTo)}addActive(e){let A=0,{value:i,to:n,rank:o}=this.cursor;for(;A0;)A++;vD(this.active,A,i),vD(this.activeTo,A,n),vD(this.activeRank,A,o),e&&vD(e,A,this.cursor.from),this.minActive=yeA(this.active,this.activeTo)}next(){let e=this.to,A=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let n=this.minActive;if(n>-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>e){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),i&&yD(i,n)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let o=this.cursor.value;if(!o.point)this.addActive(i),this.cursor.next();else if(A&&this.cursor.to==this.to&&this.cursor.from=0&&i[n]=0&&!(this.activeRank[i]e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&A.push(this.active[i]);return A.reverse()}openEnd(e){let A=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)A++;return A}};function weA(t,e,A,i,n,o){t.goto(e),A.goto(i);let r=i+n,s=i,a=i-e;for(;;){let c=t.to+a-A.to,g=c||t.endSide-A.endSide,I=g<0?t.to+a:A.to,C=Math.min(I,r);if(t.point||A.point?t.point&&A.point&&(t.point==A.point||t.point.eq(A.point))&&QN(t.activeForPoint(t.to),A.activeForPoint(A.to))||o.comparePoint(s,C,t.point,A.point):C>s&&!QN(t.active,A.active)&&o.compareRange(s,C,t.active,A.active),I>r)break;(c||t.openEnd!=A.openEnd)&&o.boundChange&&o.boundChange(I),s=I,g<=0&&t.next(),g>=0&&A.next()}}function QN(t,e){if(t.length!=e.length)return!1;for(let A=0;A=e;i--)t[i+1]=t[i];t[e]=A}function yeA(t,e){let A=-1,i=1e9;for(let n=0;n=e)return n;if(n==t.length)break;o+=t.charCodeAt(n)==9?A-o%A:1,n=br(t,n)}return i===!0?-1:t.length}var fN="\u037C",NeA=typeof Symbol>"u"?"__"+fN:Symbol.for(fN),mN=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),FeA=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},jc=class{constructor(e,A){this.rules=[];let{finish:i}=A||{};function n(r){return/^@/.test(r)?[r]:r.split(/,\s*/)}function o(r,s,a,c){let g=[],I=/^@(\w+)\b/.exec(r[0]),C=I&&I[1]=="keyframes";if(I&&s==null)return a.push(r[0]+";");for(let d in s){let B=s[d];if(/&/.test(d))o(d.split(/,\s*/).map(E=>r.map(u=>E.replace(/&/,u))).reduce((E,u)=>E.concat(u)),B,a);else if(B&&typeof B=="object"){if(!I)throw new RangeError("The value of a property ("+d+") should be a primitive value.");o(n(d),B,g,C)}else B!=null&&g.push(d.replace(/_.*/,"").replace(/[A-Z]/g,E=>"-"+E.toLowerCase())+": "+B+";")}(g.length||C)&&a.push((i&&!I&&!c?r.map(i):r).join(", ")+" {"+g.join(" ")+"}")}for(let r in e)o(n(r),e[r],this.rules)}getRules(){return this.rules.join(` -`)}static newName(){let e=FeA[NeA]||1;return FeA[NeA]=e+1,fN+e.toString(36)}static mount(e,A,i){let n=e[mN],o=i&&i.nonce;n?o&&n.setNonce(o):n=new pN(e,o),n.mount(Array.isArray(A)?A:[A],e)}},_eA=new Map,pN=class{constructor(e,A){let i=e.ownerDocument||e,n=i.defaultView;if(!e.head&&e.adoptedStyleSheets&&n.CSSStyleSheet){let o=_eA.get(i);if(o)return e[mN]=o;this.sheet=new n.CSSStyleSheet,_eA.set(i,this)}else this.styleTag=i.createElement("style"),A&&this.styleTag.setAttribute("nonce",A);this.modules=[],e[mN]=this}mount(e,A){let i=this.sheet,n=0,o=0;for(let r=0;r-1&&(this.modules.splice(a,1),o--,a=-1),a==-1){if(this.modules.splice(o++,0,s),i)for(let c=0;c",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},WRA=typeof navigator<"u"&&/Mac/.test(navigator.platform),XRA=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(kr=0;kr<10;kr++)z0[48+kr]=z0[96+kr]=String(kr);var kr;for(kr=1;kr<=24;kr++)z0[kr+111]="F"+kr;var kr;for(kr=65;kr<=90;kr++)z0[kr]=String.fromCharCode(kr+32),UE[kr]=String.fromCharCode(kr);var kr;for(FD in z0)UE.hasOwnProperty(FD)||(UE[FD]=z0[FD]);var FD;function GeA(t){var e=WRA&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||XRA&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",A=!e&&t.key||(t.shiftKey?UE:z0)[t.keyCode]||t.key||"Unidentified";return A=="Esc"&&(A="Escape"),A=="Del"&&(A="Delete"),A=="Left"&&(A="ArrowLeft"),A=="Up"&&(A="ArrowUp"),A=="Right"&&(A="ArrowRight"),A=="Down"&&(A="ArrowDown"),A}function _n(){var t=arguments[0];typeof t=="string"&&(t=document.createElement(t));var e=1,A=arguments[1];if(A&&typeof A=="object"&&A.nodeType==null&&!Array.isArray(A)){for(var i in A)if(Object.prototype.hasOwnProperty.call(A,i)){var n=A[i];typeof n=="string"?t.setAttribute(i,n):n!=null&&(t[i]=n)}e++}for(;e.995&&A<1.005||!isFinite(A)||Math.abs(e.width-t.offsetWidth)<1)&&(A=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(e.height-t.offsetHeight)<1)&&(i=1),{scaleX:A,scaleY:i}}function ALA(t,e,A,i,n,o,r,s){let a=t.ownerDocument,c=a.defaultView||window;for(let g=t,I=!1;g&&!I;)if(g.nodeType==1){let C,d=g==a.body,B=1,E=1;if(d)C=$RA(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(g).position)&&(I=!0),g.scrollHeight<=g.clientHeight&&g.scrollWidth<=g.clientWidth){g=g.assignedSlot||g.parentNode;continue}let w=g.getBoundingClientRect();({scaleX:B,scaleY:E}=StA(g,w)),C={left:w.left,right:w.left+g.clientWidth*B,top:w.top,bottom:w.top+g.clientHeight*E}}let u=0,h=0;if(n=="nearest")e.top0&&e.bottom>C.bottom+h&&(h=e.bottom-C.bottom+r)):e.bottom>C.bottom&&(h=e.bottom-C.bottom+r,A<0&&e.top-h0&&e.right>C.right+u&&(u=e.right-C.right+o)):e.right>C.right&&(u=e.right-C.right+o,A<0&&e.leftC.bottom||e.leftC.right)&&(e={left:Math.max(e.left,C.left),right:Math.min(e.right,C.right),top:Math.max(e.top,C.top),bottom:Math.min(e.bottom,C.bottom)}),g=g.assignedSlot||g.parentNode}else if(g.nodeType==11)g=g.host;else break}function eLA(t){let e=t.ownerDocument,A,i;for(let n=t.parentNode;n&&!(n==e.body||A&&i);)if(n.nodeType==1)!i&&n.scrollHeight>n.clientHeight&&(i=n),!A&&n.scrollWidth>n.clientWidth&&(A=n),n=n.assignedSlot||n.parentNode;else if(n.nodeType==11)n=n.host;else break;return{x:A,y:i}}var xN=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:A,focusNode:i}=e;this.set(A,Math.min(e.anchorOffset,A?zl(A):0),i,Math.min(e.focusOffset,i?zl(i):0))}set(e,A,i,n){this.anchorNode=e,this.anchorOffset=A,this.focusNode=i,this.focusOffset=n}},JE=null;function RtA(t){if(t.setActive)return t.setActive();if(JE)return t.focus(JE);let e=[];for(let A=t;A&&(e.push(A,A.scrollTop,A.scrollLeft),A!=A.ownerDocument);A=A.parentNode);if(t.focus(JE==null?{get preventScroll(){return JE={preventScroll:!0},!0}}:void 0),!JE){JE=!1;for(let A=0;AMath.max(1,t.scrollHeight-t.clientHeight-4)}function NtA(t,e){for(let A=t,i=e;;){if(A.nodeType==3&&i>0)return{node:A,offset:i};if(A.nodeType==1&&i>0){if(A.contentEditable=="false")return null;A=A.childNodes[i-1],i=zl(A)}else if(A.parentNode&&!XD(A))i=RC(A),A=A.parentNode;else return null}}function FtA(t,e){for(let A=t,i=e;;){if(A.nodeType==3&&iA)return I.domBoundsAround(e,A,c);if(C>=e&&n==-1&&(n=a,o=c),c>A&&I.dom.parentNode==this.dom){r=a,s=g;break}g=C,c=C+I.breakAfter}return{from:o,to:s<0?i+this.length:s,startDOM:(n?this.children[n-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:r=0?this.children[r].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let A=this.parent;A;A=A.parent){if(e&&(A.flags|=2),A.flags&1)return;A.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.flags&7&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let A=e.parent;if(!A)return e;e=A}}replaceChildren(e,A,i=uF){this.markDirty();for(let n=e;nthis.pos||e==this.pos&&(A>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}};function _tA(t,e,A,i,n,o,r,s,a){let{children:c}=t,g=c.length?c[e]:null,I=o.length?o[o.length-1]:null,C=I?I.breakAfter:r;if(!(e==i&&g&&!r&&!C&&o.length<2&&g.merge(A,n,o.length?I:null,A==0,s,a))){if(i0&&(!r&&o.length&&g.merge(A,g.length,o[0],!1,s,0)?g.breakAfter=o.shift().breakAfter:(A2),it={mac:OeA||/Mac/.test(_a.platform),windows:/Win/.test(_a.platform),linux:/Linux|X11/.test(_a.platform),ie:dw,ie_version:KtA?NN.documentMode||6:_N?+_N[1]:FN?+FN[1]:0,gecko:TeA,gecko_version:TeA?+(/Firefox\/(\d+)/.exec(_a.userAgent)||[0,0])[1]:0,chrome:!!DN,chrome_version:DN?+DN[1]:0,ios:OeA,android:/Android\b/.test(_a.userAgent),webkit:HeA,safari:UtA,webkit_version:HeA?+(/\bAppleWebKit\/(\d+)/.exec(_a.userAgent)||[0,0])[1]:0,tabSize:NN.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"},nLA=256,Pl=class t extends No{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,A){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(A&&A.node==this.dom&&(A.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,A,i){return this.flags&8||i&&(!(i instanceof t)||this.length-(A-e)+i.length>nLA||i.flags&8)?!1:(this.text=this.text.slice(0,e)+(i?i.text:"")+this.text.slice(A),this.markDirty(),!0)}split(e){let A=new t(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),A.flags|=this.flags&8,A}localPosFromDOM(e,A){return e==this.dom?A:A?this.text.length:0}domAtPos(e){return new ia(this.dom,e)}domBoundsAround(e,A,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,A){return oLA(this.dom,e,A)}},N1=class t extends No{constructor(e,A=[],i=0){super(),this.mark=e,this.children=A,this.length=i;for(let n of A)n.setParent(this)}setAttrs(e){if(LtA(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let A in this.mark.attrs)e.setAttribute(A,this.mark.attrs[A]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!((this.flags|e.flags)&8)}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,A){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,A)}merge(e,A,i,n,o,r){return i&&(!(i instanceof t&&i.mark.eq(this.mark))||e&&o<=0||Ae&&A.push(i=e&&(n=o),i=a,o++}let r=this.length-e;return this.length=e,n>-1&&(this.children.length=n,this.markDirty()),new t(this.mark,A,r)}domAtPos(e){return JtA(this,e)}coordsAt(e,A){return TtA(this,e,A)}};function oLA(t,e,A){let i=t.nodeValue.length;e>i&&(e=i);let n=e,o=e,r=0;e==0&&A<0||e==i&&A>=0?it.chrome||it.gecko||(e?(n--,r=1):o=0)?0:s.length-1];return it.safari&&!r&&a.width==0&&(a=Array.prototype.find.call(s,c=>c.width)||a),r?Cw(a,r<0):a||null}var g3=class t extends No{static create(e,A,i){return new t(e,A,i)}constructor(e,A,i){super(),this.widget=e,this.length=A,this.side=i,this.prevWidget=null}split(e){let A=t.create(this.widget,this.length-e,this.side);return this.length-=e,A}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(e,A,i,n,o,r){return i&&(!(i instanceof t)||!this.widget.compare(i.widget)||e>0&&o<=0||A0)?ia.before(this.dom):ia.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,A){let i=this.widget.coordsAt(this.dom,e,A);if(i)return i;let n=this.dom.getClientRects(),o=null;if(!n.length)return null;let r=this.side?this.side<0:e>0;for(let s=r?n.length-1:0;o=n[s],!(e>0?s==0:s==n.length-1||o.top0?ia.before(this.dom):ia.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return tn.empty}get isHidden(){return!0}};Pl.prototype.children=g3.prototype.children=l3.prototype.children=uF;function JtA(t,e){let A=t.dom,{children:i}=t,n=0;for(let o=0;no&&e0;o--){let r=i[o-1];if(r.dom.parentNode==A)return r.domAtPos(r.length)}for(let o=n;o0&&e instanceof N1&&n.length&&(i=n[n.length-1])instanceof N1&&i.mark.eq(e.mark)?YtA(i,e.children[0],A-1):(n.push(e),e.setParent(t)),t.length+=e.length}function TtA(t,e,A){let i=null,n=-1,o=null,r=-1;function s(c,g){for(let I=0,C=0;I=g&&(d.children.length?s(d,g-C):(!o||o.isHidden&&(A>0||sLA(o,d)))&&(B>g||C==B&&d.getSide()>0)?(o=d,r=g-C):(C-1?1:0)!=n.length-(A&&n.indexOf(A)>-1?1:0))return!1;for(let o of i)if(o!=A&&(n.indexOf(o)==-1||t[o]!==e[o]))return!1;return!0}function KN(t,e,A){let i=!1;if(e)for(let n in e)A&&n in A||(i=!0,n=="style"?t.style.cssText="":t.removeAttribute(n));if(A)for(let n in A)e&&e[n]==A[n]||(i=!0,n=="style"?t.style.cssText=A[n]:t.setAttribute(n,A[n]));return i}function aLA(t){let e=Object.create(null);for(let A=0;A0?3e8:-4e8:A>0?1e8:-1e8,new F1(e,A,A,i,e.widget||null,!1)}static replace(e){let A=!!e.block,i,n;if(e.isBlockGap)i=-5e8,n=4e8;else{let{start:o,end:r}=HtA(e,A);i=(o?A?-3e8:-1:5e8)-1,n=(r?A?2e8:1:-6e8)+1}return new F1(e,i,n,A,e.widget||null,!0)}static line(e){return new C3(e)}static set(e,A=!1){return Io.of(e,A)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};ht.none=Io.empty;var I3=class t extends ht{constructor(e){let{start:A,end:i}=HtA(e);super(A?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var A,i;return this==e||e instanceof t&&this.tagName==e.tagName&&(this.class||((A=this.attrs)===null||A===void 0?void 0:A.class))==(e.class||((i=e.attrs)===null||i===void 0?void 0:i.class))&&Aw(this.attrs,e.attrs,"class")}range(e,A=e){if(e>=A)throw new RangeError("Mark decorations may not be empty");return super.range(e,A)}};I3.prototype.point=!1;var C3=class t extends ht{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof t&&this.spec.class==e.spec.class&&Aw(this.spec.attributes,e.spec.attributes)}range(e,A=e){if(A!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,A)}};C3.prototype.mapMode=us.TrackBefore;C3.prototype.point=!0;var F1=class t extends ht{constructor(e,A,i,n,o,r){super(A,i,o,e),this.block=n,this.isReplace=r,this.mapMode=n?A<=0?us.TrackBefore:us.TrackAfter:us.TrackDel}get type(){return this.startSide!=this.endSide?na.WidgetRange:this.startSide<=0?na.WidgetBefore:na.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof t&&cLA(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,A=e){if(this.isReplace&&(e>A||e==A&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&A!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,A)}};F1.prototype.point=!0;function HtA(t,e=!1){let{inclusiveStart:A,inclusiveEnd:i}=t;return A==null&&(A=t.inclusive),i==null&&(i=t.inclusive),{start:A??e,end:i??e}}function cLA(t,e){return t==e||!!(t&&e&&t.compare(e))}function PD(t,e,A,i=0){let n=A.length-1;n>=0&&A[n]+i>=t?A[n]=Math.max(A[n],e):A.push(t,e)}var ps=class t extends No{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,A,i,n,o,r){if(i){if(!(i instanceof t))return!1;this.dom||i.transferDOM(this)}return n&&this.setDeco(i?i.attrs:null),GtA(this,e,A,i?i.children.slice():[],o,r),!0}split(e){let A=new t;if(A.breakAfter=this.breakAfter,this.length==0)return A;let{i,off:n}=this.childPos(e);n&&(A.append(this.children[i].split(n),0),this.children[i].merge(n,this.children[i].length,null,!1,0,0),i++);for(let o=i;o0&&this.children[i-1].length==0;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=e,A}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){Aw(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,A){YtA(this,e,A)}addLineDeco(e){let A=e.spec.attributes,i=e.spec.class;A&&(this.attrs=GN(A,this.attrs||{})),i&&(this.attrs=GN({class:i},this.attrs||{}))}domAtPos(e){return JtA(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.flags|=6)}sync(e,A){var i;this.dom?this.flags&4&&(LtA(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(KN(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,A);let n=this.dom.lastChild;for(;n&&No.get(n)instanceof N1;)n=n.lastChild;if(!n||!this.length||n.nodeName!="BR"&&((i=No.get(n))===null||i===void 0?void 0:i.isEditable)==!1&&(!it.ios||!this.children.some(o=>o instanceof Pl))){let o=document.createElement("BR");o.cmIgnore=!0,this.dom.appendChild(o)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,A;for(let i of this.children){if(!(i instanceof Pl)||/[^ -~]/.test(i.text))return null;let n=c3(i.dom);if(n.length!=1)return null;e+=n[0].width,A=n[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:A}:null}coordsAt(e,A){let i=TtA(this,e,A);if(!this.children.length&&i&&this.parent){let{heightOracle:n}=this.parent.view.viewState,o=i.bottom-i.top;if(Math.abs(o-n.lineHeight)<2&&n.textHeight=A){if(o instanceof t)return o;if(r>A)break}n=r+o.breakAfter}return null}},SC=class t extends No{constructor(e,A,i){super(),this.widget=e,this.length=A,this.deco=i,this.breakAfter=0,this.prevWidget=null}merge(e,A,i,n,o,r){return i&&(!(i instanceof t)||!this.widget.compare(i.widget)||e>0&&o<=0||A0}},d3=class extends Cc{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}},t3=class t{constructor(e,A,i,n){this.doc=e,this.pos=A,this.end=i,this.disallowBlockEffectsFor=n,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=A}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof SC&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new ps),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(_D(new l3(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,!this.posCovered()&&!(e&&this.content.length&&this.content[this.content.length-1]instanceof SC)&&this.getLine()}buildText(e,A,i){for(;e>0;){if(this.textOff==this.text.length){let{value:o,lineBreak:r,done:s}=this.cursor.next(this.skip);if(this.skip=0,s)throw new Error("Ran out of text content when drawing inline views");if(r){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=o,this.textOff=0}let n=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(A.slice(A.length-i)),this.getLine().append(_D(new Pl(this.text.slice(this.textOff,this.textOff+n)),A),i),this.atCursorPos=!0,this.textOff+=n,e-=n,i=0}}span(e,A,i,n){this.buildText(A-e,i,n),this.pos=A,this.openStart<0&&(this.openStart=n)}point(e,A,i,n,o,r){if(this.disallowBlockEffectsFor[r]&&i instanceof F1){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(A>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let s=A-e;if(i instanceof F1)if(i.block)i.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new SC(i.widget||PeA.block,s,i));else{let a=g3.create(i.widget||PeA.inline,s,s?0:i.startSide),c=this.atCursorPos&&!a.isEditable&&o<=n.length&&(e0),g=!a.isEditable&&(en.length||i.startSide<=0),I=this.getLine();this.pendingBuffer==2&&!c&&!a.isEditable&&(this.pendingBuffer=0),this.flushBuffer(n),c&&(I.append(_D(new l3(1),n),o),o=n.length+Math.max(0,o-n.length)),I.append(_D(a,n),o),this.atCursorPos=g,this.pendingBuffer=g?en.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=n.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);s&&(this.textOff+s<=this.text.length?this.textOff+=s:(this.skip+=s-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=A),this.openStart<0&&(this.openStart=o)}static build(e,A,i,n,o){let r=new t(e,A,i,o);return r.openEnd=Io.spans(n,A,i,r),r.openStart<0&&(r.openStart=r.openEnd),r.finish(r.openEnd),r}};function _D(t,e){for(let A of e)t=new N1(A,[t],t.length);return t}var PeA=(()=>{class t extends Cc{constructor(A){super(),this.tag=A}eq(A){return A.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(A){return A.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}return t.inline=new t("span"),t.block=new t("div"),t})(),Co=function(t){return t[t.LTR=0]="LTR",t[t.RTL=1]="RTL",t}(Co||(Co={})),xC=Co.LTR,hF=Co.RTL;function OtA(t){let e=[];for(let A=0;A=A){if(s.level==i)return r;(o<0||(n!=0?n<0?s.fromA:e[o].level>s.level))&&(o=r)}}if(o<0)throw new RangeError("Index out of range");return o}};function PtA(t,e){if(t.length!=e.length)return!1;for(let A=0;A=0;E-=3)if(Yl[E+1]==-d){let u=Yl[E+2],h=u&2?n:u&4?u&1?o:n:0;h&&(vo[I]=vo[Yl[E]]=h),s=E;break}}else{if(Yl.length==189)break;Yl[s++]=I,Yl[s++]=C,Yl[s++]=a}else if((B=vo[I])==2||B==1){let E=B==n;a=E?0:1;for(let u=s-3;u>=0;u-=3){let h=Yl[u+2];if(h&2)break;if(E)Yl[u+2]|=2;else{if(h&4)break;Yl[u+2]|=4}}}}}function BLA(t,e,A,i){for(let n=0,o=i;n<=A.length;n++){let r=n?A[n-1].to:t,s=na;)B==u&&(B=A[--E].from,u=E?A[E-1].to:t),vo[--B]=d;a=g}else o=c,a++}}}function JN(t,e,A,i,n,o,r){let s=i%2?2:1;if(i%2==n%2)for(let a=e,c=0;aa&&r.push(new Hl(a,E.from,d));let u=E.direction==xC!=!(d%2);YN(t,u?i+1:i,n,E.inner,E.from,E.to,r),a=E.to}B=E.to}else{if(B==A||(g?vo[B]!=s:vo[B]==s))break;B++}C?JN(t,a,B,i+1,n,C,r):ae;){let g=!0,I=!1;if(!c||a>o[c-1].to){let E=vo[a-1];E!=s&&(g=!1,I=E==16)}let C=!g&&s==1?[]:null,d=g?i:i+1,B=a;A:for(;;)if(c&&B==o[c-1].to){if(I)break A;let E=o[--c];if(!g)for(let u=E.from,h=c;;){if(u==e)break A;if(h&&o[h-1].to==u)u=o[--h].from;else{if(vo[u-1]==s)break A;break}}if(C)C.push(E);else{E.tovo.length;)vo[vo.length]=256;let i=[],n=e==xC?0:1;return YN(t,n,n,A,0,t.length,i),i}function jtA(t){return[new Hl(0,t,0)]}var qtA="";function QLA(t,e,A,i,n){var o;let r=i.head-t.from,s=Hl.find(e,r,(o=i.bidiLevel)!==null&&o!==void 0?o:-1,i.assoc),a=e[s],c=a.side(n,A);if(r==c){let C=s+=n?1:-1;if(C<0||C>=e.length)return null;a=e[s=C],r=a.side(!n,A),c=a.side(n,A)}let g=br(t.text,r,a.forward(n,A));(ga.to)&&(g=c),qtA=t.text.slice(Math.min(r,g),Math.max(r,g));let I=s==(n?e.length-1:0)?null:e[s+(n?1:-1)];return I&&g==c&&I.level+(n?0:1)t.some(e=>e)}),eiA=qe.define({combine:t=>t.some(e=>e)}),tiA=qe.define(),i3=class t{constructor(e,A="nearest",i="nearest",n=5,o=5,r=!1){this.range=e,this.y=A,this.x=i,this.yMargin=n,this.xMargin=o,this.isSnapshot=r}map(e){return e.empty?this:new t(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new t(ae.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},GD=Ki.define({map:(t,e)=>t.map(e)}),iiA=Ki.define();function is(t,e,A){let i=t.facet(XtA);i.length?i[0](e):window.onerror&&window.onerror(String(e),A,void 0,void 0,e)||(A?console.error(A+":",e):console.error(e))}var P0=qe.define({combine:t=>t.length?t[0]:!0}),hLA=0,YE=qe.define({combine(t){return t.filter((e,A)=>{for(let i=0;i{let a=[];return r&&a.push(B3.of(c=>{let g=c.plugin(s);return g?r(g):ht.none})),o&&a.push(o(s)),a})}static fromClass(e,A){return t.define((i,n)=>new e(i,n),A)}},n3=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let A=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(A)}catch(i){if(is(A.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(A){is(e.state,A,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var A;if(!((A=this.value)===null||A===void 0)&&A.destroy)try{this.value.destroy()}catch(i){is(e.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},qeA=qe.define(),TN=qe.define(),B3=qe.define(),niA=qe.define(),Bw=qe.define(),oiA=qe.define();function VeA(t,e){let A=t.state.facet(oiA);if(!A.length)return A;let i=A.map(o=>o instanceof Function?o(t):o),n=[];return Io.spans(i,e.from,e.to,{point(){},span(o,r,s,a){let c=o-e.from,g=r-e.from,I=n;for(let C=s.length-1;C>=0;C--,a--){let d=s[C].spec.bidiIsolate,B;if(d==null&&(d=uLA(e.text,c,g)),a>0&&I.length&&(B=I[I.length-1]).to==c&&B.direction==d)B.to=g,I=B.inner;else{let E={from:c,to:g,direction:d,inner:[]};I.push(E),I=E.inner}}}}),n}var riA=qe.define();function pF(t){let e=0,A=0,i=0,n=0;for(let o of t.state.facet(riA)){let r=o(t);r&&(r.left!=null&&(e=Math.max(e,r.left)),r.right!=null&&(A=Math.max(A,r.right)),r.top!=null&&(i=Math.max(i,r.top)),r.bottom!=null&&(n=Math.max(n,r.bottom)))}return{left:e,right:A,top:i,bottom:n}}var Z4=qe.define(),Ol=class t{constructor(e,A,i,n){this.fromA=e,this.toA=A,this.fromB=i,this.toB=n}join(e){return new t(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let A=e.length,i=this;for(;A>0;A--){let n=e[A-1];if(!(n.fromA>i.toA)){if(n.toAg)break;o+=2}if(!a)return i;new t(a.fromA,a.toA,a.fromB,a.toB).addToSet(i),r=a.toA,s=a.toB}}},ew=class t{constructor(e,A,i){this.view=e,this.state=A,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=hs.empty(this.startState.doc.length);for(let o of i)this.changes=this.changes.compose(o.changes);let n=[];this.changes.iterChangedRanges((o,r,s,a)=>n.push(new Ol(o,r,s,a))),this.changedRanges=n}static create(e,A,i){return new t(e,A,i)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},tw=class extends No{get length(){return this.view.state.doc.length}constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.editContextFormatting=ht.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new ps],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new Ol(0,0,0,e.state.doc.length)],0,null)}update(e){var A;let i=e.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:c,toA:g})=>gthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let n=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((A=this.domChanged)===null||A===void 0)&&A.newSel?n=this.domChanged.newSel.head:!vLA(e.changes,this.hasComposition)&&!e.selectionSet&&(n=e.state.selection.main.head));let o=n>-1?mLA(this.view,e.changes,n):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:c,to:g}=this.hasComposition;i=new Ol(c,g,e.changes.mapPos(c,-1),e.changes.mapPos(g,1)).addToSet(i.slice())}this.hasComposition=o?{from:o.range.fromB,to:o.range.toB}:null,(it.ie||it.chrome)&&!o&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let r=this.decorations,s=this.updateDeco(),a=wLA(r,s,e.changes);return i=Ol.extendWithRanges(i,a),!(this.flags&7)&&i.length==0?!1:(this.updateInner(i,e.startState.doc.length,o),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,A,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,A,i);let{observer:n}=this.view;n.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let r=it.chrome||it.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,r),this.flags&=-8,r&&(r.written||n.selectionRange.focusNode!=r.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(r=>r.flags&=-9);let o=[];if(this.view.viewport.from||this.view.viewport.to=0?n[r]:null;if(!s)break;let{fromA:a,toA:c,fromB:g,toB:I}=s,C,d,B,E;if(i&&i.range.fromBg){let R=t3.build(this.view.state.doc,g,i.range.fromB,this.decorations,this.dynamicDecorationMap),D=t3.build(this.view.state.doc,i.range.toB,I,this.decorations,this.dynamicDecorationMap);d=R.breakAtStart,B=R.openStart,E=D.openEnd;let G=this.compositionView(i);D.breakAtStart?G.breakAfter=1:D.content.length&&G.merge(G.length,G.length,D.content[0],!1,D.openStart,0)&&(G.breakAfter=D.content[0].breakAfter,D.content.shift()),R.content.length&&G.merge(0,0,R.content[R.content.length-1],!0,0,R.openEnd)&&R.content.pop(),C=R.content.concat(G).concat(D.content)}else({content:C,breakAtStart:d,openStart:B,openEnd:E}=t3.build(this.view.state.doc,g,I,this.decorations,this.dynamicDecorationMap));let{i:u,off:h}=o.findPos(c,1),{i:w,off:x}=o.findPos(a,-1);_tA(this,w,x,u,h,C,d,B,E)}i&&this.fixCompositionDOM(i)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let A of e.transactions)for(let i of A.effects)i.is(iiA)&&(this.editContextFormatting=i.value)}compositionView(e){let A=new Pl(e.text.nodeValue);A.flags|=8;for(let{deco:n}of e.marks)A=new N1(n,[A],A.length);let i=new ps;return i.append(A,0),i}fixCompositionDOM(e){let A=(o,r)=>{r.flags|=8|(r.children.some(a=>a.flags&7)?1:0),this.markedForComposition.add(r);let s=No.get(o);s&&s!=r&&(s.dom=null),r.setDOM(o)},i=this.childPos(e.range.fromB,1),n=this.children[i.i];A(e.line,n);for(let o=e.marks.length-1;o>=-1;o--)i=n.childPos(i.off,1),n=n.children[i.i],A(o>=0?e.marks[o].node:e.text,n)}updateSelection(e=!1,A=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let i=this.view.root.activeElement,n=i==this.dom,o=!n&&!(this.view.state.facet(P0)||this.dom.tabIndex>-1)&&zD(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(n||A||o))return;let r=this.forceSelection;this.forceSelection=!1;let s=this.view.state.selection.main,a=this.moveToLine(this.domAtPos(s.anchor)),c=s.empty?a:this.moveToLine(this.domAtPos(s.head));if(it.gecko&&s.empty&&!this.hasComposition&&fLA(a)){let I=document.createTextNode("");this.view.observer.ignore(()=>a.node.insertBefore(I,a.node.childNodes[a.offset]||null)),a=c=new ia(I,0),r=!0}let g=this.view.observer.selectionRange;(r||!g.focusNode||(!e3(a.node,a.offset,g.anchorNode,g.anchorOffset)||!e3(c.node,c.offset,g.focusNode,g.focusOffset))&&!this.suppressWidgetCursorChange(g,s))&&(this.view.observer.ignore(()=>{it.android&&it.chrome&&this.dom.contains(g.focusNode)&&yLA(g.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let I=a3(this.view.root);if(I)if(s.empty){if(it.gecko){let C=pLA(a.node,a.offset);if(C&&C!=3){let d=(C==1?NtA:FtA)(a.node,a.offset);d&&(a=new ia(d.node,d.offset))}}I.collapse(a.node,a.offset),s.bidiLevel!=null&&I.caretBidiLevel!==void 0&&(I.caretBidiLevel=s.bidiLevel)}else if(I.extend){I.collapse(a.node,a.offset);try{I.extend(c.node,c.offset)}catch{}}else{let C=document.createRange();s.anchor>s.head&&([a,c]=[c,a]),C.setEnd(c.node,c.offset),C.setStart(a.node,a.offset),I.removeAllRanges(),I.addRange(C)}o&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())}),this.view.observer.setSelectionRange(a,c)),this.impreciseAnchor=a.precise?null:new ia(g.anchorNode,g.anchorOffset),this.impreciseHead=c.precise?null:new ia(g.focusNode,g.focusOffset)}suppressWidgetCursorChange(e,A){return this.hasComposition&&A.empty&&e3(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==A.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,A=e.state.selection.main,i=a3(e.root),{anchorNode:n,anchorOffset:o}=e.observer.selectionRange;if(!i||!A.empty||!A.assoc||!i.modify)return;let r=ps.find(this,A.head);if(!r)return;let s=r.posAtStart;if(A.head==s||A.head==s+r.length)return;let a=this.coordsAt(A.head,-1),c=this.coordsAt(A.head,1);if(!a||!c||a.bottom>c.top)return;let g=this.domAtPos(A.head+A.assoc);i.collapse(g.node,g.offset),i.modify("move",A.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let I=e.observer.selectionRange;e.docView.posFromDOM(I.anchorNode,I.anchorOffset)!=A.from&&i.collapse(n,o)}moveToLine(e){let A=this.dom,i;if(e.node!=A)return e;for(let n=e.offset;!i&&n=0;n--){let o=No.get(A.childNodes[n]);o instanceof ps&&(i=o.domAtPos(o.length))}return i?new ia(i.node,i.offset,!0):e}nearest(e){for(let A=e;A;){let i=No.get(A);if(i&&i.rootView==this)return i;A=A.parentNode}return null}posFromDOM(e,A){let i=this.nearest(e);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(e,A)+i.posAtStart}domAtPos(e){let{i:A,off:i}=this.childCursor().findPos(e,-1);for(;A=0;r--){let s=this.children[r],a=o-s.breakAfter,c=a-s.length;if(ae||s.covers(1))&&(!i||s instanceof ps&&!(i instanceof ps&&A>=0)))i=s,n=c;else if(i&&c==e&&a==e&&s instanceof SC&&Math.abs(A)<2){if(s.deco.startSide<0)break;r&&(i=null)}o=c}return i?i.coordsAt(e-n,A):null}coordsForChar(e){let{i:A,off:i}=this.childPos(e,1),n=this.children[A];if(!(n instanceof ps))return null;for(;n.children.length;){let{i:s,off:a}=n.childPos(i,1);for(;;s++){if(s==n.children.length)return null;if((n=n.children[s]).length)break}i=a}if(!(n instanceof Pl))return null;let o=br(n.text,i);if(o==i)return null;let r=LC(n.dom,i,o).getClientRects();for(let s=0;sMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,s=-1,a=this.view.textDirection==Co.LTR;for(let c=0,g=0;gn)break;if(c>=i){let d=I.dom.getBoundingClientRect();if(A.push(d.height),r){let B=I.dom.lastChild,E=B?c3(B):[];if(E.length){let u=E[E.length-1],h=a?u.right-d.left:d.right-u.left;h>s&&(s=h,this.minWidth=o,this.minWidthFrom=c,this.minWidthTo=C)}}}c=C+I.breakAfter}return A}textDirectionAt(e){let{i:A}=this.childPos(e,1);return getComputedStyle(this.children[A].dom).direction=="rtl"?Co.RTL:Co.LTR}measureTextSize(){for(let o of this.children)if(o instanceof ps){let r=o.measureTextSize();if(r)return r}let e=document.createElement("div"),A,i,n;return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let o=c3(e.firstChild)[0];A=e.getBoundingClientRect().height,i=o?o.width/27:7,n=o?o.height:A,e.remove()}),{lineHeight:A,charWidth:i,textHeight:n}}childCursor(e=this.length){let A=this.children.length;return A&&(e-=this.children[--A].length),new $D(this.children,e,A)}computeBlockGapDeco(){let e=[],A=this.view.viewState;for(let i=0,n=0;;n++){let o=n==A.viewports.length?null:A.viewports[n],r=o?o.from-1:this.length;if(r>i){let s=(A.lineBlockAt(r).bottom-A.lineBlockAt(i).top)/this.view.scaleY;e.push(ht.replace({widget:new d3(s),block:!0,inclusive:!0,isBlockGap:!0}).range(i,r))}if(!o)break;i=o.to+1}return ht.set(e)}updateDeco(){let e=1,A=this.view.state.facet(B3).map(o=>(this.dynamicDecorationMap[e++]=typeof o=="function")?o(this.view):o),i=!1,n=this.view.state.facet(niA).map((o,r)=>{let s=typeof o=="function";return s&&(i=!0),s?o(this.view):o});for(n.length&&(this.dynamicDecorationMap[e++]=i,A.push(Io.join(n))),this.decorations=[this.editContextFormatting,...A,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];eA.anchor?-1:1),n;if(!i)return;!A.empty&&(n=this.coordsAt(A.anchor,A.anchor>A.head?-1:1))&&(i={left:Math.min(i.left,n.left),top:Math.min(i.top,n.top),right:Math.max(i.right,n.right),bottom:Math.max(i.bottom,n.bottom)});let o=pF(this.view),r={left:i.left-o.left,top:i.top-o.top,right:i.right+o.right,bottom:i.bottom+o.bottom},{offsetWidth:s,offsetHeight:a}=this.view.scrollDOM;ALA(this.view.scrollDOM,r,A.head{ie.from&&(A=!0)}),A}function MLA(t,e,A=1){let i=t.charCategorizer(e),n=t.doc.lineAt(e),o=e-n.from;if(n.length==0)return ae.cursor(e);o==0?A=1:o==n.length&&(A=-1);let r=o,s=o;A<0?r=br(n.text,o,!1):s=br(n.text,o);let a=i(n.text.slice(r,s));for(;r>0;){let c=br(n.text,r,!1);if(i(n.text.slice(c,r))!=a)break;r=c}for(;st?e.left-t:Math.max(0,t-e.right)}function kLA(t,e){return e.top>t?e.top-t:Math.max(0,t-e.bottom)}function yN(t,e){return t.tope.top+1}function ZeA(t,e){return et.bottom?{top:t.top,left:t.left,right:t.right,bottom:e}:t}function HN(t,e,A){let i,n,o,r,s=!1,a,c,g,I;for(let B=t.firstChild;B;B=B.nextSibling){let E=c3(B);for(let u=0;ux||r==x&&o>w)&&(i=B,n=h,o=w,r=x,s=w?e0:uh.bottom&&(!g||g.bottomh.top)&&(c=B,I=h):g&&yN(g,h)?g=WeA(g,h.bottom):I&&yN(I,h)&&(I=ZeA(I,h.top))}}if(g&&g.bottom>=A?(i=a,n=g):I&&I.top<=A&&(i=c,n=I),!i)return{node:t,offset:0};let C=Math.max(n.left,Math.min(n.right,e));if(i.nodeType==3)return XeA(i,C,A);if(s&&i.contentEditable!="false")return HN(i,C,A);let d=Array.prototype.indexOf.call(t.childNodes,i)+(e>=(n.left+n.right)/2?1:0);return{node:t,offset:d}}function XeA(t,e,A){let i=t.nodeValue.length,n=-1,o=1e9,r=0;for(let s=0;sA?g.top-A:A-g.bottom)-1;if(g.left-1<=e&&g.right+1>=e&&I=(g.left+g.right)/2,d=C;if((it.chrome||it.gecko)&&LC(t,s).getBoundingClientRect().left==g.right&&(d=!C),I<=0)return{node:t,offset:s+(d?1:0)};n=s+(d?1:0),o=I}}}return{node:t,offset:n>-1?n:r>0?t.nodeValue.length:0}}function aiA(t,e,A,i=-1){var n,o;let r=t.contentDOM.getBoundingClientRect(),s=r.top+t.viewState.paddingTop,a,{docHeight:c}=t.viewState,{x:g,y:I}=e,C=I-s;if(C<0)return 0;if(C>c)return t.state.doc.length;for(let R=t.viewState.heightOracle.textHeight/2,D=!1;a=t.elementAtHeight(C),a.type!=na.Text;)for(;C=i>0?a.bottom+R:a.top-R,!(C>=0&&C<=c);){if(D)return A?null:0;D=!0,i=-i}I=s+C;let d=a.from;if(dt.viewport.to)return t.viewport.to==t.state.doc.length?t.state.doc.length:A?null:$eA(t,r,a,g,I);let B=t.dom.ownerDocument,E=t.root.elementFromPoint?t.root:B,u=E.elementFromPoint(g,I);u&&!t.contentDOM.contains(u)&&(u=null),u||(g=Math.max(r.left+1,Math.min(r.right-1,g)),u=E.elementFromPoint(g,I),u&&!t.contentDOM.contains(u)&&(u=null));let h,w=-1;if(u&&((n=t.docView.nearest(u))===null||n===void 0?void 0:n.isEditable)!=!1){if(B.caretPositionFromPoint){let R=B.caretPositionFromPoint(g,I);R&&({offsetNode:h,offset:w}=R)}else if(B.caretRangeFromPoint){let R=B.caretRangeFromPoint(g,I);R&&({startContainer:h,startOffset:w}=R,(!t.contentDOM.contains(h)||it.safari&&SLA(h,w,g)||it.chrome&&RLA(h,w,g))&&(h=void 0))}h&&(w=Math.min(zl(h),w))}if(!h||!t.docView.dom.contains(h)){let R=ps.find(t.docView,d);if(!R)return C>a.top+a.height/2?a.to:a.from;({node:h,offset:w}=HN(R.dom,g,I))}let x=t.docView.nearest(h);if(!x)return null;if(x.isWidget&&((o=x.dom)===null||o===void 0?void 0:o.nodeType)==1){let R=x.dom.getBoundingClientRect();return e.yt.defaultLineHeight*1.5){let s=t.viewState.heightOracle.textHeight,a=Math.floor((n-A.top-(t.defaultLineHeight-s)*.5)/s);o+=a*t.viewState.heightOracle.lineLength}let r=t.state.sliceDoc(A.from,A.to);return A.from+ND(r,o,t.state.tabSize)}function SLA(t,e,A){let i,n=t;if(t.nodeType!=3||e!=(i=t.nodeValue.length))return!1;for(;;){let o=n.nextSibling;if(o){if(o.nodeName=="BR")break;return!1}else{let r=n.parentNode;if(!r||r.nodeName=="DIV")break;n=r}}return LC(t,i-1,i).getBoundingClientRect().right>A}function RLA(t,e,A){if(e!=0)return!1;for(let n=t;;){let o=n.parentNode;if(!o||o.nodeType!=1||o.firstChild!=n)return!1;if(o.classList.contains("cm-line"))break;n=o}let i=t.nodeType==1?t.getBoundingClientRect():LC(t,0,Math.max(t.nodeValue.length,1)).getBoundingClientRect();return A-i.left>5}function ON(t,e,A){let i=t.lineBlockAt(e);if(Array.isArray(i.type)){let n;for(let o of i.type){if(o.from>e)break;if(!(o.toe)return o;(!n||o.type==na.Text&&(n.type!=o.type||(A<0?o.frome)))&&(n=o)}}return n||i}return i}function LLA(t,e,A,i){let n=ON(t,e.head,e.assoc||-1),o=!i||n.type!=na.Text||!(t.lineWrapping||n.widgetLineBreaks)?null:t.coordsAtPos(e.assoc<0&&e.head>n.from?e.head-1:e.head);if(o){let r=t.dom.getBoundingClientRect(),s=t.textDirectionAt(n.from),a=t.posAtCoords({x:A==(s==Co.LTR)?r.right-1:r.left+1,y:(o.top+o.bottom)/2});if(a!=null)return ae.cursor(a,A?-1:1)}return ae.cursor(A?n.to:n.from,A?-1:1)}function AtA(t,e,A,i){let n=t.state.doc.lineAt(e.head),o=t.bidiSpans(n),r=t.textDirectionAt(n.from);for(let s=e,a=null;;){let c=QLA(n,o,r,s,A),g=qtA;if(!c){if(n.number==(A?t.state.doc.lines:1))return s;g=` -`,n=t.state.doc.line(n.number+(A?1:-1)),o=t.bidiSpans(n),c=t.visualLineSide(n,!A)}if(a){if(!a(g))return s}else{if(!i)return c;a=i(g)}s=c}}function xLA(t,e,A){let i=t.state.charCategorizer(e),n=i(A);return o=>{let r=i(o);return n==lo.Space&&(n=r),n==r}}function NLA(t,e,A,i){let n=e.head,o=A?1:-1;if(n==(A?t.state.doc.length:0))return ae.cursor(n,e.assoc);let r=e.goalColumn,s,a=t.contentDOM.getBoundingClientRect(),c=t.coordsAtPos(n,e.assoc||-1),g=t.documentTop;if(c)r==null&&(r=c.left-a.left),s=o<0?c.top:c.bottom;else{let d=t.viewState.lineBlockAt(n);r==null&&(r=Math.min(a.right-a.left,t.defaultCharacterWidth*(n-d.from))),s=(o<0?d.top:d.bottom)+g}let I=a.left+r,C=i??t.viewState.heightOracle.textHeight>>1;for(let d=0;;d+=10){let B=s+(C+d)*o,E=aiA(t,{x:I,y:B},!1,o);if(Ba.bottom||(o<0?En)){let u=t.docView.coordsForChar(E),h=!u||B{if(e>o&&en(t)),A.from,e.head>A.from?-1:1);return i==A.from?A:ae.cursor(i,io)&&this.lineBreak(),n=r}return this.findPointBefore(i,A),this}readTextNode(e){let A=e.nodeValue;for(let i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,A.length));for(let i=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let o=-1,r=1,s;if(this.lineSeparator?(o=A.indexOf(this.lineSeparator,i),r=this.lineSeparator.length):(s=n.exec(A))&&(o=s.index,r=s[0].length),this.append(A.slice(i,o<0?A.length:o)),o<0)break;if(this.lineBreak(),r>1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=r-1);i=o+r}}readNode(e){if(e.cmIgnore)return;let A=No.get(e),i=A&&A.overrideDOMText;if(i!=null){this.findPointInside(e,i.length);for(let n=i.iter();!n.next().done;)n.lineBreak?this.lineBreak():this.append(n.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,A){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==A&&(i.pos=this.text.length)}findPointInside(e,A){for(let i of this.points)(e.nodeType==3?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+(FLA(e,i.node,i.offset)?A:0))}};function FLA(t,e,A){for(;;){if(!e||A-1;let{impreciseHead:o,impreciseAnchor:r}=e.docView;if(e.state.readOnly&&A>-1)this.newSel=null;else if(A>-1&&(this.bounds=e.docView.domBoundsAround(A,i,0))){let s=o||r?[]:KLA(e),a=new zN(s,e.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=ULA(s,this.bounds.from)}else{let s=e.observer.selectionRange,a=o&&o.node==s.focusNode&&o.offset==s.focusOffset||!LN(e.contentDOM,s.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(s.focusNode,s.focusOffset),c=r&&r.node==s.anchorNode&&r.offset==s.anchorOffset||!LN(e.contentDOM,s.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(s.anchorNode,s.anchorOffset),g=e.viewport;if((it.ios||it.chrome)&&e.state.selection.main.empty&&a!=c&&(g.from>0||g.toDate.now()-100?t.inputState.lastKeyCode:-1;if(e.bounds){let{from:r,to:s}=e.bounds,a=n.from,c=null;(o===8||it.android&&e.text.length=n.from&&A.to<=n.to&&(A.from!=n.from||A.to!=n.to)&&n.to-n.from-(A.to-A.from)<=4?A={from:n.from,to:n.to,insert:t.state.doc.slice(n.from,A.from).append(A.insert).append(t.state.doc.slice(A.to,n.to))}:it.chrome&&A&&A.from==A.to&&A.from==n.head&&A.insert.toString()==` - `&&t.lineWrapping&&(i&&(i=ae.single(i.main.anchor-1,i.main.head-1)),A={from:n.from,to:n.to,insert:tn.of([" "])}),A)return DF(t,A,i,o);if(i&&!i.main.eq(n)){let r=!1,s="select";return t.inputState.lastSelectionTime>Date.now()-50&&(t.inputState.lastSelectionOrigin=="select"&&(r=!0),s=t.inputState.lastSelectionOrigin,s=="select.pointer"&&(i=ciA(t.state.facet(Bw).map(a=>a(t)),i))),t.dispatch({selection:i,scrollIntoView:r,userEvent:s}),!0}else return!1}function DF(t,e,A,i=-1){if(it.ios&&t.inputState.flushIOSKey(e))return!0;let n=t.state.selection.main;if(it.android&&(e.to==n.to&&(e.from==n.from||e.from==n.from-1&&t.state.sliceDoc(e.from,n.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&zE(t.contentDOM,"Enter",13)||(e.from==n.from-1&&e.to==n.to&&e.insert.length==0||i==8&&e.insert.lengthn.head)&&zE(t.contentDOM,"Backspace",8)||e.from==n.from&&e.to==n.to+1&&e.insert.length==0&&zE(t.contentDOM,"Delete",46)))return!0;let o=e.insert.toString();t.inputState.composing>=0&&t.inputState.composing++;let r,s=()=>r||(r=_LA(t,e,A));return t.state.facet($tA).some(a=>a(t,e.from,e.to,o,s))||t.dispatch(s()),!0}function _LA(t,e,A){let i,n=t.state,o=n.selection.main;if(e.from>=o.from&&e.to<=o.to&&e.to-e.from>=(o.to-o.from)/3&&(!A||A.main.empty&&A.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let s=o.frome.to?n.sliceDoc(e.to,o.to):"";i=n.replaceSelection(t.state.toText(s+e.insert.sliceString(0,void 0,t.state.lineBreak)+a))}else{let s=n.changes(e),a=A&&A.main.to<=s.newLength?A.main:void 0;if(n.selection.ranges.length>1&&t.inputState.composing>=0&&e.to<=o.to&&e.to>=o.to-10){let c=t.state.sliceDoc(e.from,e.to),g,I=A&&siA(t,A.main.head);if(I){let B=e.insert.length-(e.to-e.from);g={from:I.from,to:I.to-B}}else g=t.state.doc.lineAt(o.head);let C=o.to-e.to,d=o.to-o.from;i=n.changeByRange(B=>{if(B.from==o.from&&B.to==o.to)return{changes:s,range:a||B.map(s)};let E=B.to-C,u=E-c.length;if(B.to-B.from!=d||t.state.sliceDoc(u,E)!=c||B.to>=g.from&&B.from<=g.to)return{range:B};let h=n.changes({from:u,to:E,insert:e.insert}),w=B.to-o.to;return{changes:h,range:a?ae.range(Math.max(0,a.anchor+w),Math.max(0,a.head+w)):B.map(h)}})}else i={changes:s,selection:a&&n.selection.replaceRange(a)}}let r="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,r+=".compose",t.inputState.compositionFirstChange&&(r+=".start",t.inputState.compositionFirstChange=!1)),n.update(i,{userEvent:r,scrollIntoView:!0})}function GLA(t,e,A,i){let n=Math.min(t.length,e.length),o=0;for(;o0&&s>0&&t.charCodeAt(r-1)==e.charCodeAt(s-1);)r--,s--;if(i=="end"){let a=Math.max(0,o-Math.min(r,s));A-=r+a-o}if(r=r?o-A:0;o-=a,s=o+(s-r),r=o}else if(s=s?o-A:0;o-=a,r=o+(r-s),s=o}return{from:o,toA:r,toB:s}}function KLA(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:A,anchorOffset:i,focusNode:n,focusOffset:o}=t.observer.selectionRange;return A&&(e.push(new iw(A,i)),(n!=A||o!=i)&&e.push(new iw(n,o))),e}function ULA(t,e){if(t.length==0)return null;let A=t[0].pos,i=t.length==2?t[1].pos:A;return A>-1&&i>-1?ae.single(A+e,i+e):null}var jN=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,it.safari&&e.contentDOM.addEventListener("input",()=>null),it.gecko&&AxA(e.contentDOM.ownerDocument)}handleEvent(e){!PLA(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,A){let i=this.handlers[e];if(i){for(let n of i.observers)n(this.view,A);for(let n of i.handlers){if(A.defaultPrevented)break;if(n(this.view,A)){A.preventDefault();break}}}}ensureHandlers(e){let A=JLA(e),i=this.handlers,n=this.view.contentDOM;for(let o in A)if(o!="scroll"){let r=!A[o].handlers.length,s=i[o];s&&r!=!s.handlers.length&&(n.removeEventListener(o,this.handleEvent),s=null),s||n.addEventListener(o,this.handleEvent,{passive:r})}for(let o in i)o!="scroll"&&!A[o]&&n.removeEventListener(o,this.handleEvent);this.handlers=A}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&IiA.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),it.android&&it.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let A;return it.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((A=liA.find(i=>i.keyCode==e.keyCode))&&!e.ctrlKey||YLA.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=A||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let A=this.pendingIOSKey;return!A||A.key=="Enter"&&e&&e.from0?!0:it.safari&&!it.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function etA(t,e){return(A,i)=>{try{return e.call(t,i,A)}catch(n){is(A.state,n)}}}function JLA(t){let e=Object.create(null);function A(i){return e[i]||(e[i]={observers:[],handlers:[]})}for(let i of t){let n=i.spec,o=n&&n.plugin.domEventHandlers,r=n&&n.plugin.domEventObservers;if(o)for(let s in o){let a=o[s];a&&A(s).handlers.push(etA(i.value,a))}if(r)for(let s in r){let a=r[s];a&&A(s).observers.push(etA(i.value,a))}}for(let i in Fg)A(i).handlers.push(Fg[i]);for(let i in Vc)A(i).observers.push(Vc[i]);return e}var liA=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],YLA="dthko",IiA=[16,17,18,20,91,92,224,225],KD=6;function UD(t){return Math.max(0,t)*.7+8}function TLA(t,e){return Math.max(Math.abs(t.clientX-e.clientX),Math.abs(t.clientY-e.clientY))}var qN=class{constructor(e,A,i,n){this.view=e,this.startEvent=A,this.style=i,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=A,this.scrollParents=eLA(e.contentDOM),this.atoms=e.state.facet(Bw).map(r=>r(e));let o=e.contentDOM.ownerDocument;o.addEventListener("mousemove",this.move=this.move.bind(this)),o.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=A.shiftKey,this.multiple=e.state.facet(Dr.allowMultipleSelections)&&HLA(e,A),this.dragging=zLA(e,A)&&BiA(A)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&TLA(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let A=0,i=0,n=0,o=0,r=this.view.win.innerWidth,s=this.view.win.innerHeight;this.scrollParents.x&&({left:n,right:r}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:o,bottom:s}=this.scrollParents.y.getBoundingClientRect());let a=pF(this.view);e.clientX-a.left<=n+KD?A=-UD(n-e.clientX):e.clientX+a.right>=r-KD&&(A=UD(e.clientX-r)),e.clientY-a.top<=o+KD?i=-UD(o-e.clientY):e.clientY+a.bottom>=s-KD&&(i=UD(e.clientY-s)),this.setScrollSpeed(A,i)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,A){this.scrollSpeed={x:e,y:A},e||A?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:A}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),A&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=A,A=0),(e||A)&&this.view.win.scrollBy(e,A),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:A}=this,i=ciA(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!i.eq(A.state.selection,this.dragging===!1))&&this.view.dispatch({selection:i,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(A=>A.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function HLA(t,e){let A=t.state.facet(VtA);return A.length?A[0](e):it.mac?e.metaKey:e.ctrlKey}function OLA(t,e){let A=t.state.facet(ZtA);return A.length?A[0](e):it.mac?!e.altKey:!e.ctrlKey}function zLA(t,e){let{main:A}=t.state.selection;if(A.empty)return!1;let i=a3(t.root);if(!i||i.rangeCount==0)return!0;let n=i.getRangeAt(0).getClientRects();for(let o=0;o=e.clientX&&r.top<=e.clientY&&r.bottom>=e.clientY)return!0}return!1}function PLA(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let A=e.target,i;A!=t.contentDOM;A=A.parentNode)if(!A||A.nodeType==11||(i=No.get(A))&&i.ignoreEvent(e))return!1;return!0}var Fg=Object.create(null),Vc=Object.create(null),CiA=it.ie&&it.ie_version<15||it.ios&&it.webkit_version<604;function jLA(t){let e=t.dom.parentNode;if(!e)return;let A=e.appendChild(document.createElement("textarea"));A.style.cssText="position: fixed; left: -10000px; top: 10px",A.focus(),setTimeout(()=>{t.focus(),A.remove(),diA(t,A.value)},50)}function Ew(t,e,A){for(let i of t.facet(e))A=i(A,t);return A}function diA(t,e){e=Ew(t.state,fF,e);let{state:A}=t,i,n=1,o=A.toText(e),r=o.lines==A.selection.ranges.length;if(VN!=null&&A.selection.ranges.every(a=>a.empty)&&VN==o.toString()){let a=-1;i=A.changeByRange(c=>{let g=A.doc.lineAt(c.from);if(g.from==a)return{range:c};a=g.from;let I=A.toText((r?o.line(n++).text:e)+A.lineBreak);return{changes:{from:g.from,insert:I},range:ae.cursor(c.from+I.length)}})}else r?i=A.changeByRange(a=>{let c=o.line(n++);return{changes:{from:a.from,to:a.to,insert:c.text},range:ae.cursor(a.from+c.length)}}):i=A.replaceSelection(o);t.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}Vc.scroll=t=>{t.inputState.lastScrollTop=t.scrollDOM.scrollTop,t.inputState.lastScrollLeft=t.scrollDOM.scrollLeft};Fg.keydown=(t,e)=>(t.inputState.setSelectionOrigin("select"),e.keyCode==27&&t.inputState.tabFocusMode!=0&&(t.inputState.tabFocusMode=Date.now()+2e3),!1);Vc.touchstart=(t,e)=>{t.inputState.lastTouchTime=Date.now(),t.inputState.setSelectionOrigin("select.pointer")};Vc.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")};Fg.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return!1;let A=null;for(let i of t.state.facet(WtA))if(A=i(t,e),A)break;if(!A&&e.button==0&&(A=ZLA(t,e)),A){let i=!t.hasFocus;t.inputState.startMouseSelection(new qN(t,e,A,i)),i&&t.observer.ignore(()=>{RtA(t.contentDOM);let o=t.root.activeElement;o&&!o.contains(t.contentDOM)&&o.blur()});let n=t.inputState.mouseSelection;if(n)return n.start(e),n.dragging===!1}else t.inputState.setSelectionOrigin("select.pointer");return!1};function ttA(t,e,A,i){if(i==1)return ae.cursor(e,A);if(i==2)return MLA(t.state,e,A);{let n=ps.find(t.docView,e),o=t.state.doc.lineAt(n?n.posAtEnd:e),r=n?n.posAtStart:o.from,s=n?n.posAtEnd:o.to;return se>=A.top&&e<=A.bottom&&t>=A.left&&t<=A.right;function qLA(t,e,A,i){let n=ps.find(t.docView,e);if(!n)return 1;let o=e-n.posAtStart;if(o==0)return 1;if(o==n.length)return-1;let r=n.coordsAt(o,-1);if(r&&itA(A,i,r))return-1;let s=n.coordsAt(o,1);return s&&itA(A,i,s)?1:r&&r.bottom>=i?-1:1}function ntA(t,e){let A=t.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:A,bias:qLA(t,A,e.clientX,e.clientY)}}var VLA=it.ie&&it.ie_version<=11,otA=null,rtA=0,stA=0;function BiA(t){if(!VLA)return t.detail;let e=otA,A=stA;return otA=t,stA=Date.now(),rtA=!e||A>Date.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(rtA+1)%3:1}function ZLA(t,e){let A=ntA(t,e),i=BiA(e),n=t.state.selection;return{update(o){o.docChanged&&(A.pos=o.changes.mapPos(A.pos),n=n.map(o.changes))},get(o,r,s){let a=ntA(t,o),c,g=ttA(t,a.pos,a.bias,i);if(A.pos!=a.pos&&!r){let I=ttA(t,A.pos,A.bias,i),C=Math.min(I.from,g.from),d=Math.max(I.to,g.to);g=C1&&(c=WLA(n,a.pos))?c:s?n.addRange(g):ae.create([g])}}}function WLA(t,e){for(let A=0;A=e)return ae.create(t.ranges.slice(0,A).concat(t.ranges.slice(A+1)),t.mainIndex==A?0:t.mainIndex-(t.mainIndex>A?1:0))}return null}Fg.dragstart=(t,e)=>{let{selection:{main:A}}=t.state;if(e.target.draggable){let n=t.docView.nearest(e.target);if(n&&n.isWidget){let o=n.posAtStart,r=o+n.length;(o>=A.to||r<=A.from)&&(A=ae.range(o,r))}}let{inputState:i}=t;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=A,e.dataTransfer&&(e.dataTransfer.setData("Text",Ew(t.state,mF,t.state.sliceDoc(A.from,A.to))),e.dataTransfer.effectAllowed="copyMove"),!1};Fg.dragend=t=>(t.inputState.draggedContent=null,!1);function atA(t,e,A,i){if(A=Ew(t.state,fF,A),!A)return;let n=t.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:o}=t.inputState,r=i&&o&&OLA(t,e)?{from:o.from,to:o.to}:null,s={from:n,insert:A},a=t.state.changes(r?[r,s]:s);t.focus(),t.dispatch({changes:a,selection:{anchor:a.mapPos(n,-1),head:a.mapPos(n,1)},userEvent:r?"move.drop":"input.drop"}),t.inputState.draggedContent=null}Fg.drop=(t,e)=>{if(!e.dataTransfer)return!1;if(t.state.readOnly)return!0;let A=e.dataTransfer.files;if(A&&A.length){let i=Array(A.length),n=0,o=()=>{++n==A.length&&atA(t,e,i.filter(r=>r!=null).join(t.state.lineBreak),!1)};for(let r=0;r{/[\x00-\x08\x0e-\x1f]{2}/.test(s.result)||(i[r]=s.result),o()},s.readAsText(A[r])}return!0}else{let i=e.dataTransfer.getData("Text");if(i)return atA(t,e,i,!0),!0}return!1};Fg.paste=(t,e)=>{if(t.state.readOnly)return!0;t.observer.flush();let A=CiA?null:e.clipboardData;return A?(diA(t,A.getData("text/plain")||A.getData("text/uri-list")),!0):(jLA(t),!1)};function XLA(t,e){let A=t.dom.parentNode;if(!A)return;let i=A.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=e,i.focus(),i.selectionEnd=e.length,i.selectionStart=0,setTimeout(()=>{i.remove(),t.focus()},50)}function $LA(t){let e=[],A=[],i=!1;for(let n of t.selection.ranges)n.empty||(e.push(t.sliceDoc(n.from,n.to)),A.push(n));if(!e.length){let n=-1;for(let{from:o}of t.selection.ranges){let r=t.doc.lineAt(o);r.number>n&&(e.push(r.text),A.push({from:r.from,to:Math.min(t.doc.length,r.to+1)})),n=r.number}i=!0}return{text:Ew(t,mF,e.join(t.lineBreak)),ranges:A,linewise:i}}var VN=null;Fg.copy=Fg.cut=(t,e)=>{let{text:A,ranges:i,linewise:n}=$LA(t.state);if(!A&&!n)return!1;VN=n?A:null,e.type=="cut"&&!t.state.readOnly&&t.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let o=CiA?null:e.clipboardData;return o?(o.clearData(),o.setData("text/plain",A),!0):(XLA(t,A),!1)};var EiA=Fa.define();function QiA(t,e){let A=[];for(let i of t.facet(AiA)){let n=i(t,e);n&&A.push(n)}return A.length?t.update({effects:A,annotations:EiA.of(!0)}):null}function uiA(t){setTimeout(()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let A=QiA(t.state,e);A?t.dispatch(A):t.update([])}},10)}Vc.focus=t=>{t.inputState.lastFocusTime=Date.now(),!t.scrollDOM.scrollTop&&(t.inputState.lastScrollTop||t.inputState.lastScrollLeft)&&(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),uiA(t)};Vc.blur=t=>{t.observer.clearSelectionRange(),uiA(t)};Vc.compositionstart=Vc.compositionupdate=t=>{t.observer.editContext||(t.inputState.compositionFirstChange==null&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0))};Vc.compositionend=t=>{t.observer.editContext||(t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,it.chrome&&it.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then(()=>t.observer.flush()):setTimeout(()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])},50))};Vc.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()};Fg.beforeinput=(t,e)=>{var A,i;if(e.inputType=="insertReplacementText"&&t.observer.editContext){let o=(A=e.dataTransfer)===null||A===void 0?void 0:A.getData("text/plain"),r=e.getTargetRanges();if(o&&r.length){let s=r[0],a=t.posAtDOM(s.startContainer,s.startOffset),c=t.posAtDOM(s.endContainer,s.endOffset);return DF(t,{from:a,to:c,insert:t.state.toText(o)},null),!0}}let n;if(it.chrome&&it.android&&(n=liA.find(o=>o.inputType==e.inputType))&&(t.observer.delayAndroidKey(n.key,n.keyCode),n.key=="Backspace"||n.key=="Delete")){let o=((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0;setTimeout(()=>{var r;(((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0)>o+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())},100)}return it.ios&&e.inputType=="deleteContentForward"&&t.observer.flushSoon(),it.safari&&e.inputType=="insertText"&&t.inputState.composing>=0&&setTimeout(()=>Vc.compositionend(t,e),20),!1};var ctA=new Set;function AxA(t){ctA.has(t)||(ctA.add(t),t.addEventListener("copy",()=>{}),t.addEventListener("cut",()=>{}))}var gtA=["pre-wrap","normal","pre-line","break-spaces"],PE=!1;function ltA(){PE=!1}var ZN=class{constructor(e){this.lineWrapping=e,this.doc=tn.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,A){let i=this.doc.lineAt(A).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((A-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return gtA.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let A=!1;for(let i=0;i-1,a=Math.round(A)!=Math.round(this.lineHeight)||this.lineWrapping!=s;if(this.lineWrapping=s,this.lineHeight=A,this.charWidth=i,this.textHeight=n,this.lineLength=o,a){this.heightSamples={};for(let c=0;c0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>qD&&(PE=!0),this.height=e)}replace(e,A,i){return t.of(i)}decomposeLeft(e,A){A.push(this)}decomposeRight(e,A){A.push(this)}applyChanges(e,A,i,n){let o=this,r=i.doc;for(let s=n.length-1;s>=0;s--){let{fromA:a,toA:c,fromB:g,toB:I}=n[s],C=o.lineAt(a,zo.ByPosNoHeight,i.setDoc(A),0,0),d=C.to>=c?C:o.lineAt(c,zo.ByPosNoHeight,i,0,0);for(I+=d.to-c,c=d.to;s>0&&C.from<=n[s-1].toA;)a=n[s-1].fromA,g=n[s-1].fromB,s--,ao*2){let s=e[A-1];s.break?e.splice(--A,1,s.left,null,s.right):e.splice(--A,1,s.left,s.right),i+=1+s.break,n-=s.size}else if(o>n*2){let s=e[i];s.break?e.splice(i,1,s.left,null,s.right):e.splice(i,1,s.left,s.right),i+=2+s.break,o-=s.size}else break;else if(n=o&&r(this.blockAt(0,i,n,o))}updateHeight(e,A=0,i=!1,n){return n&&n.from<=A&&n.more&&this.setHeight(n.heights[n.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}},qc=class t extends ow{constructor(e,A){super(e,A,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,A,i,n){return new Tl(n,this.length,i,this.height,this.breaks)}replace(e,A,i){let n=i[0];return i.length==1&&(n instanceof t||n instanceof x1&&n.flags&4)&&Math.abs(this.length-n.length)<10?(n instanceof x1?n=new t(n.length,this.height):n.height=this.height,this.outdated||(n.outdated=!1),n):Ic.of(i)}updateHeight(e,A=0,i=!1,n){return n&&n.from<=A&&n.more?this.setHeight(n.heights[n.index++]):(i||this.outdated)&&this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},x1=class t extends Ic{constructor(e){super(e,0)}heightMetrics(e,A){let i=e.doc.lineAt(A).number,n=e.doc.lineAt(A+this.length).number,o=n-i+1,r,s=0;if(e.lineWrapping){let a=Math.min(this.height,e.lineHeight*o);r=a/o,this.length>o+1&&(s=(this.height-a)/(this.length-o-1))}else r=this.height/o;return{firstLine:i,lastLine:n,perLine:r,perChar:s}}blockAt(e,A,i,n){let{firstLine:o,lastLine:r,perLine:s,perChar:a}=this.heightMetrics(A,n);if(A.lineWrapping){let c=n+(e0){let o=i[i.length-1];o instanceof t?i[i.length-1]=new t(o.length+n):i.push(null,new t(n-1))}if(e>0){let o=i[0];o instanceof t?i[0]=new t(e+o.length):i.unshift(new t(e-1),null)}return Ic.of(i)}decomposeLeft(e,A){A.push(new t(e-1),null)}decomposeRight(e,A){A.push(null,new t(this.length-e-1))}updateHeight(e,A=0,i=!1,n){let o=A+this.length;if(n&&n.from<=A+this.length&&n.more){let r=[],s=Math.max(A,n.from),a=-1;for(n.from>A&&r.push(new t(n.from-A-1).updateHeight(e,A));s<=o&&n.more;){let g=e.doc.lineAt(s).length;r.length&&r.push(null);let I=n.heights[n.index++];a==-1?a=I:Math.abs(I-a)>=qD&&(a=-2);let C=new qc(g,I);C.outdated=!1,r.push(C),s+=g+1}s<=o&&r.push(null,new t(o-s).updateHeight(e,s));let c=Ic.of(r);return(a<0||Math.abs(c.height-this.height)>=qD||Math.abs(a-this.heightMetrics(e,A).perLine)>=qD)&&(PE=!0),nw(this,c)}else(i||this.outdated)&&(this.setHeight(e.heightForGap(A,A+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},XN=class extends Ic{constructor(e,A,i){super(e.length+A+i.length,e.height+i.height,A|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return this.flags&1}blockAt(e,A,i,n){let o=i+this.left.height;return es))return c;let g=A==zo.ByPosNoHeight?zo.ByPosNoHeight:zo.ByPos;return a?c.join(this.right.lineAt(s,g,i,r,s)):this.left.lineAt(s,g,i,n,o).join(c)}forEachLine(e,A,i,n,o,r){let s=n+this.left.height,a=o+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,A,i,s,a,r);else{let c=this.lineAt(a,zo.ByPos,i,n,o);e=e&&c.from<=A&&r(c),A>c.to&&this.right.forEachLine(c.to+1,A,i,s,a,r)}}replace(e,A,i){let n=this.left.length+this.break;if(Athis.left.length)return this.balanced(this.left,this.right.replace(e-n,A-n,i));let o=[];e>0&&this.decomposeLeft(e,o);let r=o.length;for(let s of i)o.push(s);if(e>0&&ItA(o,r-1),A=i&&A.push(null)),e>i&&this.right.decomposeLeft(e-i,A)}decomposeRight(e,A){let i=this.left.length,n=i+this.break;if(e>=n)return this.right.decomposeRight(e-n,A);e2*A.size||A.size>2*e.size?Ic.of(this.break?[e,null,A]:[e,A]):(this.left=nw(this.left,e),this.right=nw(this.right,A),this.setHeight(e.height+A.height),this.outdated=e.outdated||A.outdated,this.size=e.size+A.size,this.length=e.length+this.break+A.length,this)}updateHeight(e,A=0,i=!1,n){let{left:o,right:r}=this,s=A+o.length+this.break,a=null;return n&&n.from<=A+o.length&&n.more?a=o=o.updateHeight(e,A,i,n):o.updateHeight(e,A,i),n&&n.from<=s+r.length&&n.more?a=r=r.updateHeight(e,s,i,n):r.updateHeight(e,s,i),a?this.balanced(o,r):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function ItA(t,e){let A,i;t[e]==null&&(A=t[e-1])instanceof x1&&(i=t[e+1])instanceof x1&&t.splice(e-1,3,new x1(A.length+1+i.length))}var exA=5,$N=class t{constructor(e,A){this.pos=e,this.oracle=A,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,A){if(this.lineStart>-1){let i=Math.min(A,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof qc?n.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new qc(i-this.pos,-1)),this.writtenTo=i,A>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=A}point(e,A,i){if(e=exA)&&this.addLineDeco(n,o,r)}else A>e&&this.span(e,A);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:A}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=A,this.writtenToe&&this.nodes.push(new qc(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,A){let i=new x1(A-e);return this.oracle.doc.lineAt(e).to==A&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof qc)return e;let A=new qc(0,-1);return this.nodes.push(A),A}addBlock(e){this.enterLine();let A=e.deco;A&&A.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,A&&A.endSide>0&&(this.covering=e)}addLineDeco(e,A,i){let n=this.ensureLine();n.length+=i,n.collapsed+=i,n.widgetHeight=Math.max(n.widgetHeight,e),n.breaks+=A,this.writtenTo=this.pos=this.pos+i}finish(e){let A=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(A instanceof qc)&&!this.isCovered?this.nodes.push(new qc(0,-1)):(this.writtenTog.clientHeight||g.scrollWidth>g.clientWidth)&&I.overflow!="visible"){let C=g.getBoundingClientRect();o=Math.max(o,C.left),r=Math.min(r,C.right),s=Math.max(s,C.top),a=Math.min(c==t.parentNode?n.innerHeight:a,C.bottom)}c=I.position=="absolute"||I.position=="fixed"?g.offsetParent:g.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:o-A.left,right:Math.max(o,r)-A.left,top:s-(A.top+e),bottom:Math.max(s,a)-(A.top+e)}}function nxA(t){let e=t.getBoundingClientRect(),A=t.ownerDocument.defaultView||window;return e.left0&&e.top0}function oxA(t,e){let A=t.getBoundingClientRect();return{left:0,right:A.right-A.left,top:e,bottom:A.bottom-(A.top+e)}}var o3=class{constructor(e,A,i,n){this.from=e,this.to=A,this.size=i,this.displaySize=n}static same(e,A){if(e.length!=A.length)return!1;for(let i=0;itypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new ZN(A),this.stateDeco=e.facet(B3).filter(i=>typeof i!="function"),this.heightMap=Ic.empty().applyChanges(this.stateDeco,tn.empty,this.heightOracle.setDoc(e.doc),[new Ol(0,0,0,e.doc.length)]);for(let i=0;i<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());i++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=ht.set(this.lineGaps.map(i=>i.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:A}=this.state.selection;for(let i=0;i<=1;i++){let n=i?A.head:A.anchor;if(!e.some(({from:o,to:r})=>n>=o&&n<=r)){let{from:o,to:r}=this.lineBlockAt(n);e.push(new TE(o,r))}}return this.viewports=e.sort((i,n)=>i.from-n.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?CtA:new tF(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push($4(e,this.scaler))})}update(e,A=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=this.state.facet(B3).filter(g=>typeof g!="function");let n=e.changedRanges,o=Ol.extendWithRanges(n,txA(i,this.stateDeco,e?e.changes:hs.empty(this.state.doc.length))),r=this.heightMap.height,s=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);ltA(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),o),(this.heightMap.height!=r||PE)&&(e.flags|=2),s?(this.scrollAnchorPos=e.changes.mapPos(s.from,-1),this.scrollAnchorHeight=s.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=r);let a=o.length?this.mapViewport(this.viewport,e.changes):this.viewport;(A&&(A.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,A));let c=a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),A&&(this.scrollTarget=A),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(eiA)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let A=e.contentDOM,i=window.getComputedStyle(A),n=this.heightOracle,o=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?Co.RTL:Co.LTR;let r=this.heightOracle.mustRefreshForWrapping(o),s=A.getBoundingClientRect(),a=r||this.mustMeasureContent||this.contentDOMHeight!=s.height;this.contentDOMHeight=s.height,this.mustMeasureContent=!1;let c=0,g=0;if(s.width&&s.height){let{scaleX:R,scaleY:D}=StA(A,s);(R>.005&&Math.abs(this.scaleX-R)>.005||D>.005&&Math.abs(this.scaleY-D)>.005)&&(this.scaleX=R,this.scaleY=D,c|=16,r=a=!0)}let I=(parseInt(i.paddingTop)||0)*this.scaleY,C=(parseInt(i.paddingBottom)||0)*this.scaleY;(this.paddingTop!=I||this.paddingBottom!=C)&&(this.paddingTop=I,this.paddingBottom=C,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(n.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let d=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=d&&(this.scrollAnchorHeight=-1,this.scrollTop=d),this.scrolledToBottom=xtA(e.scrollDOM);let B=(this.printing?oxA:ixA)(A,this.paddingTop),E=B.top-this.pixelViewport.top,u=B.bottom-this.pixelViewport.bottom;this.pixelViewport=B;let h=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(h!=this.inView&&(this.inView=h,h&&(a=!0)),!this.inView&&!this.scrollTarget&&!nxA(e.dom))return 0;let w=s.width;if((this.contentDOMWidth!=w||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=s.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),a){let R=e.docView.measureVisibleLineHeights(this.viewport);if(n.mustRefreshForHeights(R)&&(r=!0),r||n.lineWrapping&&Math.abs(w-this.contentDOMWidth)>n.charWidth){let{lineHeight:D,charWidth:G,textHeight:J}=e.docView.measureTextSize();r=D>0&&n.refresh(o,D,G,J,Math.max(5,w/G),R),r&&(e.docView.minWidth=0,c|=16)}E>0&&u>0?g=Math.max(E,u):E<0&&u<0&&(g=Math.min(E,u)),ltA();for(let D of this.viewports){let G=D.from==this.viewport.from?R:e.docView.measureVisibleLineHeights(D);this.heightMap=(r?Ic.empty().applyChanges(this.stateDeco,tn.empty,this.heightOracle,[new Ol(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(n,0,r,new WN(D.from,G))}PE&&(c|=2)}let x=!this.viewportIsAppropriate(this.viewport,g)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return x&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(g,this.scrollTarget),c|=this.updateForViewport()),(c&2||x)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(r?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,A){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),n=this.heightMap,o=this.heightOracle,{visibleTop:r,visibleBottom:s}=this,a=new TE(n.lineAt(r-i*1e3,zo.ByHeight,o,0,0).from,n.lineAt(s+(1-i)*1e3,zo.ByHeight,o,0,0).to);if(A){let{head:c}=A.range;if(ca.to){let g=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),I=n.lineAt(c,zo.ByPos,o,0,0),C;A.y=="center"?C=(I.top+I.bottom)/2-g/2:A.y=="start"||A.y=="nearest"&&c=s+Math.max(10,Math.min(i,250)))&&n>r-2*1e3&&o>1,r=n<<1;if(this.defaultTextDirection!=Co.LTR&&!i)return[];let s=[],a=(g,I,C,d)=>{if(I-gg&&hh.from>=C.from&&h.to<=C.to&&Math.abs(h.from-g)h.fromw));if(!u){if(Ix.from<=I&&x.to>=I)){let x=A.moveToLineBoundary(ae.cursor(I),!1,!0).head;x>g&&(I=x)}let h=this.gapSize(C,g,I,d),w=i||h<2e6?h:2e6;u=new o3(g,I,h,w)}s.push(u)},c=g=>{if(g.length2e6)for(let G of e)G.from>=g.from&&G.fromg.from&&a(g.from,d,g,I),BA.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let A=this.stateDeco;this.lineGaps.length&&(A=A.concat(this.lineGapDeco));let i=[];Io.spans(A,this.viewport.from,this.viewport.to,{span(o,r){i.push({from:o,to:r})},point(){}},20);let n=0;if(i.length!=this.visibleRanges.length)n=12;else for(let o=0;o=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(A=>A.from<=e&&A.to>=e)||$4(this.heightMap.lineAt(e,zo.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(A=>A.top<=e&&A.bottom>=e)||$4(this.heightMap.lineAt(this.scaler.fromDOM(e),zo.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let A=this.lineBlockAtHeight(e+8);return A.from>=this.viewport.from||this.viewportLines[0].top-e>200?A:this.viewportLines[0]}elementAtHeight(e){return $4(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},TE=class{constructor(e,A){this.from=e,this.to=A}};function rxA(t,e,A){let i=[],n=t,o=0;return Io.spans(A,t,e,{span(){},point(r,s){r>n&&(i.push({from:n,to:r}),o+=r-n),n=s}},20),n=1)return e[e.length-1].to;let i=Math.floor(t*A);for(let n=0;;n++){let{from:o,to:r}=e[n],s=r-o;if(i<=s)return o+i;i-=s}}function YD(t,e){let A=0;for(let{from:i,to:n}of t.ranges){if(e<=n){A+=e-i;break}A+=n-i}return A/t.total}function sxA(t,e){for(let A of t)if(e(A))return A}var CtA={toDOM(t){return t},fromDOM(t){return t},scale:1,eq(t){return t==this}},tF=class t{constructor(e,A,i){let n=0,o=0,r=0;this.viewports=i.map(({from:s,to:a})=>{let c=A.lineAt(s,zo.ByPos,e,0,0).top,g=A.lineAt(a,zo.ByPos,e,0,0).bottom;return n+=g-c,{from:s,to:a,top:c,bottom:g,domTop:0,domBottom:0}}),this.scale=(7e6-n)/(A.height-n);for(let s of this.viewports)s.domTop=r+(s.top-o)*this.scale,r=s.domBottom=s.domTop+(s.bottom-s.top),o=s.bottom}toDOM(e){for(let A=0,i=0,n=0;;A++){let o=AA.from==e.viewports[i].from&&A.to==e.viewports[i].to):!1}};function $4(t,e){if(e.scale==1)return t;let A=e.toDOM(t.top),i=e.toDOM(t.bottom);return new Tl(t.from,t.length,A,i-A,Array.isArray(t._content)?t._content.map(n=>$4(n,e)):t._content)}var TD=qe.define({combine:t=>t.join(" ")}),MN=qe.define({combine:t=>t.indexOf(!0)>-1}),iF=jc.newName(),hiA=jc.newName(),fiA=jc.newName(),miA={"&light":"."+hiA,"&dark":"."+fiA};function nF(t,e,A){return new jc(e,{finish(i){return/&/.test(i)?i.replace(/&\w*/,n=>{if(n=="&")return t;if(!A||!A[n])throw new RangeError(`Unsupported selector: ${n}`);return A[n]}):t+" "+i}})}var axA=nF("."+iF,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},miA),cxA={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},bN=it.ie&&it.ie_version<=11,oF=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new xN,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(A=>{for(let i of A)this.queue.push(i);(it.ie&&it.ie_version<=11||it.ios&&e.composing)&&A.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&it.android&&e.constructor.EDIT_CONTEXT!==!1&&!(it.chrome&&it.chrome_version<126)&&(this.editContext=new rF(e),e.state.facet(P0)&&(e.contentDOM.editContext=this.editContext.editContext)),bN&&(this.onCharData=A=>{this.queue.push({target:A.target,type:"characterData",oldValue:A.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var A;((A=this.view.docView)===null||A===void 0?void 0:A.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),A.length>0&&A[A.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(A=>{A.length>0&&A[A.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((A,i)=>A!=e[i]))){this.gapIntersection.disconnect();for(let A of e)this.gapIntersection.observe(A);this.gaps=e}}onSelectionChange(e){let A=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,n=this.selectionRange;if(i.state.facet(P0)?i.root.activeElement!=this.dom:!zD(this.dom,n))return;let o=n.anchorNode&&i.docView.nearest(n.anchorNode);if(o&&o.ignoreEvent(e)){A||(this.selectionChanged=!1);return}(it.ie&&it.ie_version<=11||it.android&&it.chrome)&&!i.state.selection.main.empty&&n.focusNode&&e3(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,A=a3(e.root);if(!A)return!1;let i=it.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&gxA(this.view,A)||A;if(!i||this.selectionRange.eq(i))return!1;let n=zD(this.dom,i);return n&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let o=this.delayedAndroidKey;o&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=o.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&o.force&&zE(this.dom,o.key,o.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(n)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:A,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let A=-1,i=-1,n=!1;for(let o of e){let r=this.readMutation(o);r&&(r.typeOver&&(n=!0),A==-1?{from:A,to:i}=r:(A=Math.min(r.from,A),i=Math.max(r.to,i)))}return{from:A,to:i,typeOver:n}}readChange(){let{from:e,to:A,typeOver:i}=this.processRecords(),n=this.selectionChanged&&zD(this.dom,this.selectionRange);if(e<0&&!n)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let o=new PN(this.view,e,A,i);return this.view.docView.domChanged={newSel:o.newSel?o.newSel.main:null},o}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let A=this.readChange();if(!A)return this.view.requestMeasure(),!1;let i=this.view.state,n=giA(this.view,A);return this.view.state==i&&(A.domChanged||A.newSel&&!A.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),n}readMutation(e){let A=this.view.docView.nearest(e.target);if(!A||A.ignoreMutation(e))return null;if(A.markDirty(e.type=="attributes"),e.type=="attributes"&&(A.flags|=4),e.type=="childList"){let i=dtA(A,e.previousSibling||e.target.previousSibling,-1),n=dtA(A,e.nextSibling||e.target.nextSibling,1);return{from:i?A.posAfter(i):A.posAtStart,to:n?A.posBefore(n):A.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:A.posAtStart,to:A.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(P0)!=e.state.facet(P0)&&(e.view.contentDOM.editContext=e.state.facet(P0)?this.editContext.editContext:null))}destroy(){var e,A,i;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(A=this.gapIntersection)===null||A===void 0||A.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect();for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function dtA(t,e,A){for(;e;){let i=No.get(e);if(i&&i.parent==t)return i;let n=e.parentNode;e=n!=t.dom?n:A>0?e.nextSibling:e.previousSibling}return null}function BtA(t,e){let A=e.startContainer,i=e.startOffset,n=e.endContainer,o=e.endOffset,r=t.docView.domAtPos(t.state.selection.main.anchor);return e3(r.node,r.offset,n,o)&&([A,i,n,o]=[n,o,A,i]),{anchorNode:A,anchorOffset:i,focusNode:n,focusOffset:o}}function gxA(t,e){if(e.getComposedRanges){let n=e.getComposedRanges(t.root)[0];if(n)return BtA(t,n)}let A=null;function i(n){n.preventDefault(),n.stopImmediatePropagation(),A=n.getTargetRanges()[0]}return t.contentDOM.addEventListener("beforeinput",i,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",i,!0),A?BtA(t,A):null}var rF=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let A=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=i=>{let n=e.state.selection.main,{anchor:o,head:r}=n,s=this.toEditorPos(i.updateRangeStart),a=this.toEditorPos(i.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:i.updateRangeStart,editorBase:s,drifted:!1});let c={from:s,to:a,insert:tn.of(i.text.split(` -`))};if(c.from==this.from&&othis.to&&(c.to=o),c.from==c.to&&!c.insert.length){let g=ae.single(this.toEditorPos(i.selectionStart),this.toEditorPos(i.selectionEnd));g.main.eq(n)||e.dispatch({selection:g,userEvent:"select"});return}if((it.mac||it.android)&&c.from==r-1&&/^\. ?$/.test(i.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(c={from:s,to:a,insert:tn.of([i.text.replace("."," ")])}),this.pendingContextChange=c,!e.state.readOnly){let g=this.to-this.from+(c.to-c.from+c.insert.length);DF(e,c,ae.single(this.toEditorPos(i.selectionStart,g),this.toEditorPos(i.selectionEnd,g)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state))},this.handlers.characterboundsupdate=i=>{let n=[],o=null;for(let r=this.toEditorPos(i.rangeStart),s=this.toEditorPos(i.rangeEnd);r{let n=[];for(let o of i.getTextFormats()){let r=o.underlineStyle,s=o.underlineThickness;if(r!="None"&&s!="None"){let a=this.toEditorPos(o.rangeStart),c=this.toEditorPos(o.rangeEnd);if(a{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:i}=this.composing;this.composing=null,i&&this.reset(e.state)}};for(let i in this.handlers)A.addEventListener(i,this.handlers[i]);this.measureReq={read:i=>{this.editContext.updateControlBounds(i.contentDOM.getBoundingClientRect());let n=a3(i.root);n&&n.rangeCount&&this.editContext.updateSelectionBounds(n.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let A=0,i=!1,n=this.pendingContextChange;return e.changes.iterChanges((o,r,s,a,c)=>{if(i)return;let g=c.length-(r-o);if(n&&r>=n.to)if(n.from==o&&n.to==r&&n.insert.eq(c)){n=this.pendingContextChange=null,A+=g,this.to+=g;return}else n=null,this.revertPending(e.state);if(o+=A,r+=A,r<=this.from)this.from+=g,this.to+=g;else if(othis.to||this.to-this.from+c.length>3e4){i=!0;return}this.editContext.updateText(this.toContextPos(o),this.toContextPos(r),c.toString()),this.to+=g}A+=g}),n&&!i&&this.revertPending(e.state),!i}update(e){let A=this.pendingContextChange,i=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(i.from,i.to)&&e.transactions.some(n=>!n.isUserEvent("input.type")&&n.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||A)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:A}=e.selection.main;this.from=Math.max(0,A-1e4),this.to=Math.min(e.doc.length,A+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let A=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(A.from),this.toContextPos(A.from+A.insert.length),e.doc.sliceString(A.from,A.to))}setSelection(e){let{main:A}=e.selection,i=this.toContextPos(Math.max(this.from,Math.min(this.to,A.anchor))),n=this.toContextPos(A.head);(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=n)&&this.editContext.updateSelection(i,n)}rangeIsValid(e){let{head:A}=e.selection.main;return!(this.from>0&&A-this.from<500||this.to1e4*3)}toEditorPos(e,A=this.to-this.from){e=Math.min(e,A);let i=this.composing;return i&&i.drifted?i.editorBase+(e-i.contextBase):e+this.from}toContextPos(e){let A=this.composing;return A&&A.drifted?A.contextBase+(e-A.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},Pt=(()=>{class t{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(A={}){var i;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),A.parent&&A.parent.appendChild(this.dom);let{dispatch:n}=A;this.dispatchTransactions=A.dispatchTransactions||n&&(o=>o.forEach(r=>n(r,this)))||(o=>this.update(o)),this.dispatch=this.dispatch.bind(this),this._root=A.root||tLA(A.parent)||document,this.viewState=new rw(A.state||Dr.create(A)),A.scrollTo&&A.scrollTo.is(GD)&&(this.viewState.scrollTarget=A.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(YE).map(o=>new n3(o));for(let o of this.plugins)o.update(this);this.observer=new oF(this),this.inputState=new jN(this),this.inputState.ensureHandlers(this.plugins),this.docView=new tw(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((i=document.fonts)===null||i===void 0)&&i.ready&&document.fonts.ready.then(()=>this.requestMeasure())}dispatch(...A){let i=A.length==1&&A[0]instanceof Ul?A:A.length==1&&Array.isArray(A[0])?A[0]:[this.state.update(...A)];this.dispatchTransactions(i,this)}update(A){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let i=!1,n=!1,o,r=this.state;for(let d of A){if(d.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=d.state}if(this.destroyed){this.viewState.state=r;return}let s=this.hasFocus,a=0,c=null;A.some(d=>d.annotation(EiA))?(this.inputState.notifiedFocused=s,a=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,c=QiA(r,s),c||(a=1));let g=this.observer.delayedAndroidKey,I=null;if(g?(this.observer.clearDelayedAndroidKey(),I=this.observer.readChange(),(I&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(I=null)):this.observer.clear(),r.facet(Dr.phrases)!=this.state.facet(Dr.phrases))return this.setState(r);o=ew.create(this,r,A),o.flags|=a;let C=this.viewState.scrollTarget;try{this.updateState=2;for(let d of A){if(C&&(C=C.map(d.changes)),d.scrollIntoView){let{main:B}=d.state.selection;C=new i3(B.empty?B:ae.cursor(B.head,B.head>B.anchor?-1:1))}for(let B of d.effects)B.is(GD)&&(C=B.value.clip(this.state))}this.viewState.update(o,C),this.bidiCache=sw.update(this.bidiCache,o.changes),o.empty||(this.updatePlugins(o),this.inputState.update(o)),i=this.docView.update(o),this.state.facet(Z4)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(A),this.docView.updateSelection(i,A.some(d=>d.isUserEvent("select.pointer")))}finally{this.updateState=0}if(o.startState.facet(TD)!=o.state.facet(TD)&&(this.viewState.mustMeasureContent=!0),(i||n||C||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),i&&this.docViewUpdate(),!o.empty)for(let d of this.state.facet(wN))try{d(o)}catch(B){is(this.state,B,"update listener")}(c||I)&&Promise.resolve().then(()=>{c&&this.state==c.startState&&this.dispatch(c),I&&!giA(this,I)&&g.force&&zE(this.contentDOM,g.key,g.keyCode)})}setState(A){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=A;return}this.updateState=2;let i=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new rw(A),this.plugins=A.facet(YE).map(n=>new n3(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView.destroy(),this.docView=new tw(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}i&&this.focus(),this.requestMeasure()}updatePlugins(A){let i=A.startState.facet(YE),n=A.state.facet(YE);if(i!=n){let o=[];for(let r of n){let s=i.indexOf(r);if(s<0)o.push(new n3(r));else{let a=this.plugins[s];a.mustUpdate=A,o.push(a)}}for(let r of this.plugins)r.mustUpdate!=A&&r.destroy(this);this.plugins=o,this.pluginMap.clear()}else for(let o of this.plugins)o.mustUpdate=A;for(let o=0;o-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,A&&this.observer.forceFlush();let i=null,n=this.scrollDOM,o=n.scrollTop*this.scaleY,{scrollAnchorPos:r,scrollAnchorHeight:s}=this.viewState;Math.abs(o-this.viewState.scrollTop)>1&&(s=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(s<0)if(xtA(n))r=-1,s=this.viewState.heightMap.height;else{let B=this.viewState.scrollAnchorAt(o);r=B.from,s=B.top}this.updateState=1;let c=this.viewState.measure(this);if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let g=[];c&4||([this.measureRequests,g]=[g,this.measureRequests]);let I=g.map(B=>{try{return B.read(this)}catch(E){return is(this.state,E),EtA}}),C=ew.create(this,this.state,[]),d=!1;C.flags|=c,i?i.flags|=c:i=C,this.updateState=2,C.empty||(this.updatePlugins(C),this.inputState.update(C),this.updateAttrs(),d=this.docView.update(C),d&&this.docViewUpdate());for(let B=0;B1||E<-1){o=o+E,n.scrollTop=o/this.scaleY,s=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(i&&!i.empty)for(let a of this.state.facet(wN))a(i)}get themeClasses(){return iF+" "+(this.state.facet(MN)?fiA:hiA)+" "+this.state.facet(TD)}updateAttrs(){let A=QtA(this,qeA,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),i={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(P0)?"true":"false",class:"cm-content",style:`${it.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(i["aria-readonly"]="true"),QtA(this,TN,i);let n=this.observer.ignore(()=>{let o=KN(this.contentDOM,this.contentAttrs,i),r=KN(this.dom,this.editorAttrs,A);return o||r});return this.editorAttrs=A,this.contentAttrs=i,n}showAnnouncements(A){let i=!0;for(let n of A)for(let o of n.effects)if(o.is(t.announce)){i&&(this.announceDOM.textContent=""),i=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=o.value}}mountStyles(){this.styleModules=this.state.facet(Z4);let A=this.state.facet(t.cspNonce);jc.mount(this.root,this.styleModules.concat(axA).reverse(),A?{nonce:A}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(A){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),A){if(this.measureRequests.indexOf(A)>-1)return;if(A.key!=null){for(let i=0;in.plugin==A)||null),i&&i.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(A){return this.readMeasured(),this.viewState.elementAtHeight(A)}lineBlockAtHeight(A){return this.readMeasured(),this.viewState.lineBlockAtHeight(A)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(A){return this.viewState.lineBlockAt(A)}get contentHeight(){return this.viewState.contentHeight}moveByChar(A,i,n){return vN(this,A,AtA(this,A,i,n))}moveByGroup(A,i){return vN(this,A,AtA(this,A,i,n=>xLA(this,A.head,n)))}visualLineSide(A,i){let n=this.bidiSpans(A),o=this.textDirectionAt(A.from),r=n[i?n.length-1:0];return ae.cursor(r.side(i,o)+A.from,r.forward(!i,o)?1:-1)}moveToLineBoundary(A,i,n=!0){return LLA(this,A,i,n)}moveVertically(A,i,n){return vN(this,A,NLA(this,A,i,n))}domAtPos(A){return this.docView.domAtPos(A)}posAtDOM(A,i=0){return this.docView.posFromDOM(A,i)}posAtCoords(A,i=!0){return this.readMeasured(),aiA(this,A,i)}coordsAtPos(A,i=1){this.readMeasured();let n=this.docView.coordsAt(A,i);if(!n||n.left==n.right)return n;let o=this.state.doc.lineAt(A),r=this.bidiSpans(o),s=r[Hl.find(r,A-o.from,-1,i)];return Cw(n,s.dir==Co.LTR==i>0)}coordsForChar(A){return this.readMeasured(),this.docView.coordsForChar(A)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(A){return!this.state.facet(jeA)||Athis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(A))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(A){if(A.length>lxA)return jtA(A.length);let i=this.textDirectionAt(A.from),n;for(let r of this.bidiCache)if(r.from==A.from&&r.dir==i&&(r.fresh||PtA(r.isolates,n=VeA(this,A))))return r.order;n||(n=VeA(this,A));let o=ELA(A.text,i,n);return this.bidiCache.push(new sw(A.from,A.to,i,n,!0,o)),o}get hasFocus(){var A;return(this.dom.ownerDocument.hasFocus()||it.safari&&((A=this.inputState)===null||A===void 0?void 0:A.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{RtA(this.contentDOM),this.docView.updateSelection()})}setRoot(A){this._root!=A&&(this._root=A,this.observer.setWindow((A.nodeType==9?A:A.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let A of this.plugins)A.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(A,i={}){return GD.of(new i3(typeof A=="number"?ae.cursor(A):A,i.y,i.x,i.yMargin,i.xMargin))}scrollSnapshot(){let{scrollTop:A,scrollLeft:i}=this.scrollDOM,n=this.viewState.scrollAnchorAt(A);return GD.of(new i3(ae.cursor(n.from),"start","start",n.top-A,i,!0))}setTabFocusMode(A){A==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof A=="boolean"?this.inputState.tabFocusMode=A?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+A)}static domEventHandlers(A){return Bo.define(()=>({}),{eventHandlers:A})}static domEventObservers(A){return Bo.define(()=>({}),{eventObservers:A})}static theme(A,i){let n=jc.newName(),o=[TD.of(n),Z4.of(nF(`.${n}`,A))];return i&&i.dark&&o.push(MN.of(!0)),o}static baseTheme(A){return Ng.lowest(Z4.of(nF("."+iF,A,miA)))}static findFromDOM(A){var i;let n=A.querySelector(".cm-content"),o=n&&No.get(n)||No.get(A);return((i=o?.rootView)===null||i===void 0?void 0:i.view)||null}}return t.styleModule=Z4,t.inputHandler=$tA,t.clipboardInputFilter=fF,t.clipboardOutputFilter=mF,t.scrollHandler=tiA,t.focusChangeEffect=AiA,t.perLineTextDirection=jeA,t.exceptionSink=XtA,t.updateListener=wN,t.editable=P0,t.mouseSelectionStyle=WtA,t.dragMovesSelection=ZtA,t.clickAddsSelectionRange=VtA,t.decorations=B3,t.outerDecorations=niA,t.atomicRanges=Bw,t.bidiIsolatedRanges=oiA,t.scrollMargins=riA,t.darkTheme=MN,t.cspNonce=qe.define({combine:e=>e.length?e[0]:""}),t.contentAttributes=TN,t.editorAttributes=qeA,t.lineWrapping=t.contentAttributes.of({class:"cm-lineWrapping"}),t.announce=Ki.define(),t})(),lxA=4096,EtA={},sw=class t{constructor(e,A,i,n,o,r){this.from=e,this.to=A,this.dir=i,this.isolates=n,this.fresh=o,this.order=r}static update(e,A){if(A.empty&&!e.some(o=>o.fresh))return e;let i=[],n=e.length?e[e.length-1].dir:Co.LTR;for(let o=Math.max(0,e.length-10);o=0;n--){let o=i[n],r=typeof o=="function"?o(t):o;r&&GN(r,A)}return A}var IxA=it.mac?"mac":it.windows?"win":it.linux?"linux":"key";function CxA(t,e){let A=t.split(/-(?!$)/),i=A[A.length-1];i=="Space"&&(i=" ");let n,o,r,s;for(let a=0;ai.concat(n),[]))),A}function DiA(t,e,A){return wiA(piA(t.state),e,t,A)}var L1=null,BxA=4e3;function ExA(t,e=IxA){let A=Object.create(null),i=Object.create(null),n=(r,s)=>{let a=i[r];if(a==null)i[r]=s;else if(a!=s)throw new Error("Key binding "+r+" is used both as a regular binding and as a multi-stroke prefix")},o=(r,s,a,c,g)=>{var I,C;let d=A[r]||(A[r]=Object.create(null)),B=s.split(/ (?!$)/).map(h=>CxA(h,e));for(let h=1;h{let R=L1={view:x,prefix:w,scope:r};return setTimeout(()=>{L1==R&&(L1=null)},BxA),!0}]})}let E=B.join(" ");n(E,!1);let u=d[E]||(d[E]={preventDefault:!1,stopPropagation:!1,run:((C=(I=d._any)===null||I===void 0?void 0:I.run)===null||C===void 0?void 0:C.slice())||[]});a&&u.run.push(a),c&&(u.preventDefault=!0),g&&(u.stopPropagation=!0)};for(let r of t){let s=r.scope?r.scope.split(" "):["editor"];if(r.any)for(let c of s){let g=A[c]||(A[c]=Object.create(null));g._any||(g._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:I}=r;for(let C in g)g[C].run.push(d=>I(d,sF))}let a=r[e]||r.key;if(a)for(let c of s)o(c,a,r.run,r.preventDefault,r.stopPropagation),r.shift&&o(c,"Shift-"+a,r.shift,r.preventDefault,r.stopPropagation)}return A}var sF=null;function wiA(t,e,A,i){sF=e;let n=GeA(e),o=ms(n,0),r=lc(o)==n.length&&n!=" ",s="",a=!1,c=!1,g=!1;L1&&L1.view==A&&L1.scope==i&&(s=L1.prefix+" ",IiA.indexOf(e.keyCode)<0&&(c=!0,L1=null));let I=new Set,C=u=>{if(u){for(let h of u.run)if(!I.has(h)&&(I.add(h),h(A)))return u.stopPropagation&&(g=!0),!0;u.preventDefault&&(u.stopPropagation&&(g=!0),c=!0)}return!1},d=t[i],B,E;return d&&(C(d[s+HD(n,e,!r)])?a=!0:r&&(e.altKey||e.metaKey||e.ctrlKey)&&!(it.windows&&e.ctrlKey&&e.altKey)&&!(it.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(B=z0[e.keyCode])&&B!=n?(C(d[s+HD(B,e,!0)])||e.shiftKey&&(E=UE[e.keyCode])!=n&&E!=B&&C(d[s+HD(E,e,!1)]))&&(a=!0):r&&e.shiftKey&&C(d[s+HD(n,e,!0)])&&(a=!0),!a&&C(d._any)&&(a=!0)),c&&(a=!0),a&&g&&e.stopPropagation(),sF=null,a}var E3=class t{constructor(e,A,i,n,o){this.className=e,this.left=A,this.top=i,this.width=n,this.height=o}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,A){return A.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,A,i){if(i.empty){let n=e.coordsAtPos(i.head,i.assoc||1);if(!n)return[];let o=yiA(e);return[new t(A,n.left-o.left,n.top-o.top,null,n.bottom-n.top)]}else return QxA(e,A,i)}};function yiA(t){let e=t.scrollDOM.getBoundingClientRect();return{left:(t.textDirection==Co.LTR?e.left:e.right-t.scrollDOM.clientWidth*t.scaleX)-t.scrollDOM.scrollLeft*t.scaleX,top:e.top-t.scrollDOM.scrollTop*t.scaleY}}function htA(t,e,A,i){let n=t.coordsAtPos(e,A*2);if(!n)return i;let o=t.dom.getBoundingClientRect(),r=(n.top+n.bottom)/2,s=t.posAtCoords({x:o.left+1,y:r}),a=t.posAtCoords({x:o.right-1,y:r});return s==null||a==null?i:{from:Math.max(i.from,Math.min(s,a)),to:Math.min(i.to,Math.max(s,a))}}function QxA(t,e,A){if(A.to<=t.viewport.from||A.from>=t.viewport.to)return[];let i=Math.max(A.from,t.viewport.from),n=Math.min(A.to,t.viewport.to),o=t.textDirection==Co.LTR,r=t.contentDOM,s=r.getBoundingClientRect(),a=yiA(t),c=r.querySelector(".cm-line"),g=c&&window.getComputedStyle(c),I=s.left+(g?parseInt(g.paddingLeft)+Math.min(0,parseInt(g.textIndent)):0),C=s.right-(g?parseInt(g.paddingRight):0),d=ON(t,i,1),B=ON(t,n,-1),E=d.type==na.Text?d:null,u=B.type==na.Text?B:null;if(E&&(t.lineWrapping||d.widgetLineBreaks)&&(E=htA(t,i,1,E)),u&&(t.lineWrapping||B.widgetLineBreaks)&&(u=htA(t,n,-1,u)),E&&u&&E.from==u.from&&E.to==u.to)return w(x(A.from,A.to,E));{let D=E?x(A.from,null,E):R(d,!1),G=u?x(null,A.to,u):R(B,!0),J=[];return(E||d).to<(u||B).from-(E&&u?1:0)||d.widgetLineBreaks>1&&D.bottom+t.defaultLineHeight/2j&&fA.from=IA)break;wA>EA&&V(Math.max(lA,EA),D==null&&lA<=j,Math.min(wA,IA),G==null&&wA>=dA,nA.dir)}if(EA=SA.to+1,EA>=IA)break}return O.length==0&&V(j,D==null,dA,G==null,t.textDirection),{top:z,bottom:K,horizontal:O}}function R(D,G){let J=s.top+(G?D.top:D.bottom);return{top:J,bottom:J,horizontal:[]}}}function uxA(t,e){return t.constructor==e.constructor&&t.eq(e)}var aF=class{constructor(e,A){this.view=e,this.layer=A,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),A.above&&this.dom.classList.add("cm-layer-above"),A.class&&this.dom.classList.add(A.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),A.mount&&A.mount(this.dom,e)}update(e){e.startState.facet(VD)!=e.state.facet(VD)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let A=0,i=e.facet(VD);for(;A!uxA(A,this.drawn[i]))){let A=this.dom.firstChild,i=0;for(let n of e)n.update&&A&&n.constructor&&this.drawn[i].constructor&&n.update(A,this.drawn[i])?(A=A.nextSibling,i++):this.dom.insertBefore(n.draw(),A);for(;A;){let n=A.nextSibling;A.remove(),A=n}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},VD=qe.define();function viA(t){return[Bo.define(e=>new aF(e,t)),VD.of(t)]}var Q3=qe.define({combine(t){return ts(t,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,A)=>Math.min(e,A),drawRangeCursor:(e,A)=>e||A})}});function MiA(t={}){return[Q3.of(t),hxA,fxA,mxA,eiA.of(!0)]}function biA(t){return t.startState.facet(Q3)!=t.state.facet(Q3)}var hxA=viA({above:!0,markers(t){let{state:e}=t,A=e.facet(Q3),i=[];for(let n of e.selection.ranges){let o=n==e.selection.main;if(n.empty||A.drawRangeCursor){let r=o?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",s=n.empty?n:ae.cursor(n.head,n.head>n.anchor?-1:1);for(let a of E3.forRange(t,r,s))i.push(a)}}return i},update(t,e){t.transactions.some(i=>i.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let A=biA(t);return A&&ftA(t.state,e),t.docChanged||t.selectionSet||A},mount(t,e){ftA(e.state,t)},class:"cm-cursorLayer"});function ftA(t,e){e.style.animationDuration=t.facet(Q3).cursorBlinkRate+"ms"}var fxA=viA({above:!1,markers(t){return t.state.selection.ranges.map(e=>e.empty?[]:E3.forRange(t,"cm-selectionBackground",e)).reduce((e,A)=>e.concat(A))},update(t,e){return t.docChanged||t.selectionSet||t.viewportChanged||biA(t)},class:"cm-selectionLayer"}),mxA=Ng.highest(Pt.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),kiA=Ki.define({map(t,e){return t==null?null:e.mapPos(t)}}),A3=tr.define({create(){return null},update(t,e){return t!=null&&(t=e.changes.mapPos(t)),e.effects.reduce((A,i)=>i.is(kiA)?i.value:A,t)}}),pxA=Bo.fromClass(class{constructor(t){this.view=t,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(t){var e;let A=t.state.field(A3);A==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(t.startState.field(A3)!=A||t.docChanged||t.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:t}=this,e=t.state.field(A3),A=e!=null&&t.coordsAtPos(e);if(!A)return null;let i=t.scrollDOM.getBoundingClientRect();return{left:A.left-i.left+t.scrollDOM.scrollLeft*t.scaleX,top:A.top-i.top+t.scrollDOM.scrollTop*t.scaleY,height:A.bottom-A.top}}drawCursor(t){if(this.cursor){let{scaleX:e,scaleY:A}=this.view;t?(this.cursor.style.left=t.left/e+"px",this.cursor.style.top=t.top/A+"px",this.cursor.style.height=t.height/A+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(t){this.view.state.field(A3)!=t&&this.view.dispatch({effects:kiA.of(t)})}},{eventObservers:{dragover(t){this.setDropPos(this.view.posAtCoords({x:t.clientX,y:t.clientY}))},dragleave(t){(t.target==this.view.contentDOM||!this.view.contentDOM.contains(t.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function SiA(){return[A3,pxA]}function mtA(t,e,A,i,n){e.lastIndex=0;for(let o=t.iterRange(A,i),r=A,s;!o.next().done;r+=o.value.length)if(!o.lineBreak)for(;s=e.exec(o.value);)n(r+s.index,s)}function DxA(t,e){let A=t.visibleRanges;if(A.length==1&&A[0].from==t.viewport.from&&A[0].to==t.viewport.to)return A;let i=[];for(let{from:n,to:o}of A)n=Math.max(t.state.doc.lineAt(n).from,n-e),o=Math.min(t.state.doc.lineAt(o).to,o+e),i.length&&i[i.length-1].to>=n?i[i.length-1].to=o:i.push({from:n,to:o});return i}var cF=class{constructor(e){let{regexp:A,decoration:i,decorate:n,boundary:o,maxLength:r=1e3}=e;if(!A.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=A,n)this.addMatch=(s,a,c,g)=>n(g,c,c+s[0].length,s,a);else if(typeof i=="function")this.addMatch=(s,a,c,g)=>{let I=i(s,a,c);I&&g(c,c+s[0].length,I)};else if(i)this.addMatch=(s,a,c,g)=>g(c,c+s[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=o,this.maxLength=r}createDeco(e){let A=new fs,i=A.add.bind(A);for(let{from:n,to:o}of DxA(e,this.maxLength))mtA(e.state.doc,this.regexp,n,o,(r,s)=>this.addMatch(s,e,r,i));return A.finish()}updateDeco(e,A){let i=1e9,n=-1;return e.docChanged&&e.changes.iterChanges((o,r,s,a)=>{a>=e.view.viewport.from&&s<=e.view.viewport.to&&(i=Math.min(s,i),n=Math.max(a,n))}),e.viewportMoved||n-i>1e3?this.createDeco(e.view):n>-1?this.updateRange(e.view,A.map(e.changes),i,n):A}updateRange(e,A,i,n){for(let o of e.visibleRanges){let r=Math.max(o.from,i),s=Math.min(o.to,n);if(s>=r){let a=e.state.doc.lineAt(r),c=a.toa.from;r--)if(this.boundary.test(a.text[r-1-a.from])){g=r;break}for(;sC.push(h.range(E,u));if(a==c)for(this.regexp.lastIndex=g-a.from;(d=this.regexp.exec(a.text))&&d.indexthis.addMatch(u,e,E,B));A=A.update({filterFrom:g,filterTo:I,filter:(E,u)=>EI,add:C})}}return A}},gF=/x/.unicode!=null?"gu":"g",wxA=new RegExp(`[\0-\b --\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,gF),yxA={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},kN=null;function vxA(){var t;if(kN==null&&typeof document<"u"&&document.body){let e=document.body.style;kN=((t=e.tabSize)!==null&&t!==void 0?t:e.MozTabSize)!=null}return kN||!1}var ZD=qe.define({combine(t){let e=ts(t,{render:null,specialChars:wxA,addSpecialChars:null});return(e.replaceTabs=!vxA())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,gF)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,gF)),e}});function RiA(t={}){return[ZD.of(t),MxA()]}var ptA=null;function MxA(){return ptA||(ptA=Bo.fromClass(class{constructor(t){this.view=t,this.decorations=ht.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(t.state.facet(ZD)),this.decorations=this.decorator.createDeco(t)}makeDecorator(t){return new cF({regexp:t.specialChars,decoration:(e,A,i)=>{let{doc:n}=A.state,o=ms(e[0],0);if(o==9){let r=n.lineAt(i),s=A.state.tabSize,a=O0(r.text,s,i-r.from);return ht.replace({widget:new IF((s-a%s)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[o]||(this.decorationCache[o]=ht.replace({widget:new lF(t,o)}))},boundary:t.replaceTabs?void 0:/[^]/})}update(t){let e=t.state.facet(ZD);t.startState.facet(ZD)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(t.view)):this.decorations=this.decorator.updateDeco(t,this.decorations)}},{decorations:t=>t.decorations}))}var bxA="\u2022";function kxA(t){return t>=32?bxA:t==10?"\u2424":String.fromCharCode(9216+t)}var lF=class extends Cc{constructor(e,A){super(),this.options=e,this.code=A}eq(e){return e.code==this.code}toDOM(e){let A=kxA(this.code),i=e.state.phrase("Control character")+" "+(yxA[this.code]||"0x"+this.code.toString(16)),n=this.options.render&&this.options.render(this.code,i,A);if(n)return n;let o=document.createElement("span");return o.textContent=A,o.title=i,o.setAttribute("aria-label",i),o.className="cm-specialChar",o}ignoreEvent(){return!1}},IF=class extends Cc{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};function LiA(){return RxA}var SxA=ht.line({class:"cm-activeLine"}),RxA=Bo.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.docChanged||t.selectionSet)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=-1,A=[];for(let i of t.state.selection.ranges){let n=t.lineBlockAt(i.head);n.from>e&&(A.push(SxA.range(n.from)),e=n.from)}return ht.set(A)}},{decorations:t=>t.decorations});var CF=2e3;function LxA(t,e,A){let i=Math.min(e.line,A.line),n=Math.max(e.line,A.line),o=[];if(e.off>CF||A.off>CF||e.col<0||A.col<0){let r=Math.min(e.off,A.off),s=Math.max(e.off,A.off);for(let a=i;a<=n;a++){let c=t.doc.line(a);c.length<=s&&o.push(ae.range(c.from+r,c.to+s))}}else{let r=Math.min(e.col,A.col),s=Math.max(e.col,A.col);for(let a=i;a<=n;a++){let c=t.doc.line(a),g=ND(c.text,r,t.tabSize,!0);if(g<0)o.push(ae.cursor(c.to));else{let I=ND(c.text,s,t.tabSize);o.push(ae.range(c.from+g,c.from+I))}}}return o}function xxA(t,e){let A=t.coordsAtPos(t.viewport.from);return A?Math.round(Math.abs((A.left-e)/t.defaultCharacterWidth)):-1}function DtA(t,e){let A=t.posAtCoords({x:e.clientX,y:e.clientY},!1),i=t.state.doc.lineAt(A),n=A-i.from,o=n>CF?-1:n==i.length?xxA(t,e.clientX):O0(i.text,t.state.tabSize,A-i.from);return{line:i.number,col:o,off:n}}function NxA(t,e){let A=DtA(t,e),i=t.state.selection;return A?{update(n){if(n.docChanged){let o=n.changes.mapPos(n.startState.doc.line(A.line).from),r=n.state.doc.lineAt(o);A={line:r.number,col:A.col,off:Math.min(A.off,r.length)},i=i.map(n.changes)}},get(n,o,r){let s=DtA(t,n);if(!s)return i;let a=LxA(t.state,A,s);return a.length?r?ae.create(a.concat(i.ranges)):ae.create(a):i}}:null}function xiA(t){let e=t?.eventFilter||(A=>A.altKey&&A.button==0);return Pt.mouseSelectionStyle.of((A,i)=>e(i)?NxA(A,i):null)}var FxA={Alt:[18,t=>!!t.altKey],Control:[17,t=>!!t.ctrlKey],Shift:[16,t=>!!t.shiftKey],Meta:[91,t=>!!t.metaKey]},_xA={style:"cursor: crosshair"};function NiA(t={}){let[e,A]=FxA[t.key||"Alt"],i=Bo.fromClass(class{constructor(n){this.view=n,this.isDown=!1}set(n){this.isDown!=n&&(this.isDown=n,this.view.update([]))}},{eventObservers:{keydown(n){this.set(n.keyCode==e||A(n))},keyup(n){(n.keyCode==e||!A(n))&&this.set(!1)},mousemove(n){this.set(A(n))}}});return[i,Pt.contentAttributes.of(n=>{var o;return!((o=n.plugin(i))===null||o===void 0)&&o.isDown?_xA:null})]}var W4="-10000px",aw=class{constructor(e,A,i,n){this.facet=A,this.createTooltipView=i,this.removeTooltipView=n,this.input=e.state.facet(A),this.tooltips=this.input.filter(r=>r);let o=null;this.tooltipViews=this.tooltips.map(r=>o=i(r,o))}update(e,A){var i;let n=e.state.facet(this.facet),o=n.filter(a=>a);if(n===this.input){for(let a of this.tooltipViews)a.update&&a.update(e);return!1}let r=[],s=A?[]:null;for(let a=0;aA[c]=a),A.length=s.length),this.input=n,this.tooltips=o,this.tooltipViews=r,!0}};function GxA(t){let e=t.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}var SN=qe.define({combine:t=>{var e,A,i;return{position:it.ios?"absolute":((e=t.find(n=>n.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((A=t.find(n=>n.parent))===null||A===void 0?void 0:A.parent)||null,tooltipSpace:((i=t.find(n=>n.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||GxA}}}),wtA=new WeakMap,wF=Bo.fromClass(class{constructor(t){this.view=t,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=t.state.facet(SN);this.position=e.position,this.parent=e.parent,this.classes=t.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new aw(t,qE,(A,i)=>this.createTooltip(A,i),A=>{this.resizeObserver&&this.resizeObserver.unobserve(A.dom),A.dom.remove()}),this.above=this.manager.tooltips.map(A=>!!A.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(A=>{Date.now()>this.lastTransaction-50&&A.length>0&&A[A.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),t.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let t of this.manager.tooltipViews)this.intersectionObserver.observe(t.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(t){t.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(t,this.above);e&&this.observeIntersection();let A=e||t.geometryChanged,i=t.state.facet(SN);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let n of this.manager.tooltipViews)n.dom.style.position=this.position;A=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let n of this.manager.tooltipViews)this.container.appendChild(n.dom);A=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);A&&this.maybeMeasure()}createTooltip(t,e){let A=t.create(this.view),i=e?e.dom:null;if(A.dom.classList.add("cm-tooltip"),t.arrow&&!A.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let n=document.createElement("div");n.className="cm-tooltip-arrow",A.dom.appendChild(n)}return A.dom.style.position=this.position,A.dom.style.top=W4,A.dom.style.left="0px",this.container.insertBefore(A.dom,i),A.mount&&A.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(A.dom),A}destroy(){var t,e,A;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),(t=i.destroy)===null||t===void 0||t.call(i);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(A=this.intersectionObserver)===null||A===void 0||A.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let t=1,e=1,A=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:o}=this.manager.tooltipViews[0];if(it.gecko)A=o.offsetParent!=this.container.ownerDocument.body;else if(o.style.top==W4&&o.style.left=="0px"){let r=o.getBoundingClientRect();A=Math.abs(r.top+1e4)>1||Math.abs(r.left)>1}}if(A||this.position=="absolute")if(this.parent){let o=this.parent.getBoundingClientRect();o.width&&o.height&&(t=o.width/this.parent.offsetWidth,e=o.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:e}=this.view.viewState);let i=this.view.scrollDOM.getBoundingClientRect(),n=pF(this.view);return{visible:{left:i.left+n.left,top:i.top+n.top,right:i.right-n.right,bottom:i.bottom-n.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((o,r)=>{let s=this.manager.tooltipViews[r];return s.getCoords?s.getCoords(o.pos):this.view.coordsAtPos(o.pos)}),size:this.manager.tooltipViews.map(({dom:o})=>o.getBoundingClientRect()),space:this.view.state.facet(SN).tooltipSpace(this.view),scaleX:t,scaleY:e,makeAbsolute:A}}writeMeasure(t){var e;if(t.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let s of this.manager.tooltipViews)s.dom.style.position="absolute"}let{visible:A,space:i,scaleX:n,scaleY:o}=t,r=[];for(let s=0;s=Math.min(A.bottom,i.bottom)||I.rightMath.min(A.right,i.right)+.1)){g.style.top=W4;continue}let d=a.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,B=d?7:0,E=C.right-C.left,u=(e=wtA.get(c))!==null&&e!==void 0?e:C.bottom-C.top,h=c.offset||UxA,w=this.view.textDirection==Co.LTR,x=C.width>i.right-i.left?w?i.left:i.right-C.width:w?Math.max(i.left,Math.min(I.left-(d?14:0)+h.x,i.right-E)):Math.min(Math.max(i.left,I.left-E+(d?14:0)-h.x),i.right-E),R=this.above[s];!a.strictSide&&(R?I.top-u-B-h.yi.bottom)&&R==i.bottom-I.bottom>I.top-i.top&&(R=this.above[s]=!R);let D=(R?I.top-i.top:i.bottom-I.bottom)-B;if(Dx&&z.topG&&(G=R?z.top-u-2-B:z.bottom+B+2);if(this.position=="absolute"?(g.style.top=(G-t.parent.top)/o+"px",ytA(g,(x-t.parent.left)/n)):(g.style.top=G/o+"px",ytA(g,x/n)),d){let z=I.left+(w?h.x:-h.x)-(x+14-7);d.style.left=z/n+"px"}c.overlap!==!0&&r.push({left:x,top:G,right:J,bottom:G+u}),g.classList.toggle("cm-tooltip-above",R),g.classList.toggle("cm-tooltip-below",!R),c.positioned&&c.positioned(t.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let t of this.manager.tooltipViews)t.dom.style.top=W4}},{eventObservers:{scroll(){this.maybeMeasure()}}});function ytA(t,e){let A=parseInt(t.style.left,10);(isNaN(A)||Math.abs(e-A)>1)&&(t.style.left=e+"px")}var KxA=Pt.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),UxA={x:0,y:0},qE=qe.define({enables:[wF,KxA]}),cw=qe.define({combine:t=>t.reduce((e,A)=>e.concat(A),[])}),gw=class t{static create(e){return new t(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new aw(e,cw,(A,i)=>this.createHostedView(A,i),A=>A.dom.remove())}createHostedView(e,A){let i=e.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(i.dom,A?A.dom.nextSibling:this.dom.firstChild),this.mounted&&i.mount&&i.mount(this.view),i}mount(e){for(let A of this.manager.tooltipViews)A.mount&&A.mount(e);this.mounted=!0}positioned(e){for(let A of this.manager.tooltipViews)A.positioned&&A.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let A of this.manager.tooltipViews)(e=A.destroy)===null||e===void 0||e.call(A)}passProp(e){let A;for(let i of this.manager.tooltipViews){let n=i[e];if(n!==void 0){if(A===void 0)A=n;else if(A!==n)return}}return A}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}},JxA=qE.compute([cw],t=>{let e=t.facet(cw);return e.length===0?null:{pos:Math.min(...e.map(A=>A.pos)),end:Math.max(...e.map(A=>{var i;return(i=A.end)!==null&&i!==void 0?i:A.pos})),create:gw.create,above:e[0].above,arrow:e.some(A=>A.arrow)}}),dF=class{constructor(e,A,i,n,o){this.view=e,this.source=A,this.field=i,this.setHover=n,this.hoverTime=o,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;es.bottom||A.xs.right+e.defaultCharacterWidth)return;let a=e.bidiSpans(e.state.doc.lineAt(n)).find(g=>g.from<=n&&g.to>=n),c=a&&a.dir==Co.RTL?-1:1;o=A.x{this.pending==s&&(this.pending=null,a&&!(Array.isArray(a)&&!a.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(a)?a:[a])}))},a=>is(e.state,a,"hover tooltip"))}else r&&!(Array.isArray(r)&&!r.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(r)?r:[r])})}get tooltip(){let e=this.view.plugin(wF),A=e?e.manager.tooltips.findIndex(i=>i.create==gw.create):-1;return A>-1?e.manager.tooltipViews[A]:null}mousemove(e){var A,i;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:n,tooltip:o}=this;if(n.length&&o&&!YxA(o.dom,e)||this.pending){let{pos:r}=n[0]||this.pending,s=(i=(A=n[0])===null||A===void 0?void 0:A.end)!==null&&i!==void 0?i:r;(r==s?this.view.posAtCoords(this.lastMove)!=r:!TxA(this.view,r,s,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:A}=this;if(A.length){let{tooltip:i}=this;i&&i.dom.contains(e.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let A=i=>{e.removeEventListener("mouseleave",A),this.active.length&&!this.view.dom.contains(i.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",A)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}},OD=4;function YxA(t,e){let{left:A,right:i,top:n,bottom:o}=t.getBoundingClientRect(),r;if(r=t.querySelector(".cm-tooltip-arrow")){let s=r.getBoundingClientRect();n=Math.min(s.top,n),o=Math.max(s.bottom,o)}return e.clientX>=A-OD&&e.clientX<=i+OD&&e.clientY>=n-OD&&e.clientY<=o+OD}function TxA(t,e,A,i,n,o){let r=t.scrollDOM.getBoundingClientRect(),s=t.documentTop+t.documentPadding.top+t.contentHeight;if(r.left>i||r.rightn||Math.min(r.bottom,s)=e&&a<=A}function FiA(t,e={}){let A=Ki.define(),i=tr.define({create(){return[]},update(n,o){if(n.length&&(e.hideOnChange&&(o.docChanged||o.selection)?n=[]:e.hideOn&&(n=n.filter(r=>!e.hideOn(o,r))),o.docChanged)){let r=[];for(let s of n){let a=o.changes.mapPos(s.pos,-1,us.TrackDel);if(a!=null){let c=Object.assign(Object.create(null),s);c.pos=a,c.end!=null&&(c.end=o.changes.mapPos(c.end)),r.push(c)}}n=r}for(let r of o.effects)r.is(A)&&(n=r.value),r.is(HxA)&&(n=[]);return n},provide:n=>cw.from(n)});return{active:i,extension:[i,Bo.define(n=>new dF(n,t,i,A,e.hoverTime||300)),JxA]}}function yF(t,e){let A=t.plugin(wF);if(!A)return null;let i=A.manager.tooltips.indexOf(e);return i<0?null:A.manager.tooltipViews[i]}var HxA=Ki.define();var vtA=qe.define({combine(t){let e,A;for(let i of t)e=e||i.topContainer,A=A||i.bottomContainer;return{topContainer:e,bottomContainer:A}}});function FC(t,e){let A=t.plugin(_iA),i=A?A.specs.indexOf(e):-1;return i>-1?A.panels[i]:null}var _iA=Bo.fromClass(class{constructor(t){this.input=t.state.facet(NC),this.specs=this.input.filter(A=>A),this.panels=this.specs.map(A=>A(t));let e=t.state.facet(vtA);this.top=new HE(t,!0,e.topContainer),this.bottom=new HE(t,!1,e.bottomContainer),this.top.sync(this.panels.filter(A=>A.top)),this.bottom.sync(this.panels.filter(A=>!A.top));for(let A of this.panels)A.dom.classList.add("cm-panel"),A.mount&&A.mount()}update(t){let e=t.state.facet(vtA);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new HE(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new HE(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let A=t.state.facet(NC);if(A!=this.input){let i=A.filter(a=>a),n=[],o=[],r=[],s=[];for(let a of i){let c=this.specs.indexOf(a),g;c<0?(g=a(t.view),s.push(g)):(g=this.panels[c],g.update&&g.update(t)),n.push(g),(g.top?o:r).push(g)}this.specs=i,this.panels=n,this.top.sync(o),this.bottom.sync(r);for(let a of s)a.dom.classList.add("cm-panel"),a.mount&&a.mount()}else for(let i of this.panels)i.update&&i.update(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>Pt.scrollMargins.of(e=>{let A=e.plugin(t);return A&&{top:A.top.scrollMargin(),bottom:A.bottom.scrollMargin()}})}),HE=class{constructor(e,A,i){this.view=e,this.top=A,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let A of this.panels)A.destroy&&e.indexOf(A)<0&&A.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let A=this.container||this.view.dom;A.insertBefore(this.dom,this.top?A.firstChild:null)}let e=this.dom.firstChild;for(let A of this.panels)if(A.dom.parentNode==this.dom){for(;e!=A.dom;)e=MtA(e);e=e.nextSibling}else this.dom.insertBefore(A.dom,e);for(;e;)e=MtA(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}};function MtA(t){let e=t.nextSibling;return t.remove(),e}var NC=qe.define({enables:_iA});var Ga=class extends xg{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};Ga.prototype.elementClass="";Ga.prototype.toDOM=void 0;Ga.prototype.mapMode=us.TrackBefore;Ga.prototype.startSide=Ga.prototype.endSide=-1;Ga.prototype.point=!0;var WD=qe.define(),OxA=qe.define(),zxA={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>Io.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},r3=qe.define();function Qw(t){return[GiA(),r3.of(sA(sA({},zxA),t))]}var BF=qe.define({combine:t=>t.some(e=>e)});function GiA(t){let e=[PxA];return t&&t.fixed===!1&&e.push(BF.of(!0)),e}var PxA=Bo.fromClass(class{constructor(t){this.view=t,this.domAfter=null,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet(r3).map(e=>new lw(t,e)),this.fixed=!t.state.facet(BF);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(t){if(this.updateGutters(t)){let e=this.prevViewport,A=t.view.viewport,i=Math.min(e.to,A.to)-Math.max(e.from,A.from);this.syncGutters(i<(A.to-A.from)*.8)}if(t.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(BF)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let A=Io.iter(this.view.state.facet(WD),this.view.viewport.from),i=[],n=this.gutters.map(o=>new QF(o,this.view.viewport,-this.view.documentPadding.top));for(let o of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(o.type)){let r=!0;for(let s of o.type)if(s.type==na.Text&&r){EF(A,i,s.from);for(let a of n)a.line(this.view,s,i);r=!1}else if(s.widget)for(let a of n)a.widget(this.view,s)}else if(o.type==na.Text){EF(A,i,o.from);for(let r of n)r.line(this.view,o,i)}else if(o.widget)for(let r of n)r.widget(this.view,o);for(let o of n)o.finish();t&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(t){let e=t.startState.facet(r3),A=t.state.facet(r3),i=t.docChanged||t.heightChanged||t.viewportChanged||!Io.eq(t.startState.facet(WD),t.state.facet(WD),t.view.viewport.from,t.view.viewport.to);if(e==A)for(let n of this.gutters)n.update(t)&&(i=!0);else{i=!0;let n=[];for(let o of A){let r=e.indexOf(o);r<0?n.push(new lw(this.view,o)):(this.gutters[r].update(t),n.push(this.gutters[r]))}for(let o of this.gutters)o.dom.remove(),n.indexOf(o)<0&&o.destroy();for(let o of n)o.config.side=="after"?this.getDOMAfter().appendChild(o.dom):this.dom.appendChild(o.dom);this.gutters=n}return i}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:t=>Pt.scrollMargins.of(e=>{let A=e.plugin(t);if(!A||A.gutters.length==0||!A.fixed)return null;let i=A.dom.offsetWidth*e.scaleX,n=A.domAfter?A.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==Co.LTR?{left:i,right:n}:{right:i,left:n}})});function btA(t){return Array.isArray(t)?t:[t]}function EF(t,e,A){for(;t.value&&t.from<=A;)t.from==A&&e.push(t.value),t.next()}var QF=class{constructor(e,A,i){this.gutter=e,this.height=i,this.i=0,this.cursor=Io.iter(e.markers,A.from)}addElement(e,A,i){let{gutter:n}=this,o=(A.top-this.height)/e.scaleY,r=A.height/e.scaleY;if(this.i==n.elements.length){let s=new Iw(e,r,o,i);n.elements.push(s),n.dom.appendChild(s.dom)}else n.elements[this.i].update(e,r,o,i);this.height=A.bottom,this.i++}line(e,A,i){let n=[];EF(this.cursor,n,A.from),i.length&&(n=n.concat(i));let o=this.gutter.config.lineMarker(e,A,n);o&&n.unshift(o);let r=this.gutter;n.length==0&&!r.config.renderEmptyElements||this.addElement(e,A,n)}widget(e,A){let i=this.gutter.config.widgetMarker(e,A.widget,A),n=i?[i]:null;for(let o of e.state.facet(OxA)){let r=o(e,A.widget,A);r&&(n||(n=[])).push(r)}n&&this.addElement(e,A,n)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let A=e.elements.pop();e.dom.removeChild(A.dom),A.destroy()}}},lw=class{constructor(e,A){this.view=e,this.config=A,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in A.domEventHandlers)this.dom.addEventListener(i,n=>{let o=n.target,r;if(o!=this.dom&&this.dom.contains(o)){for(;o.parentNode!=this.dom;)o=o.parentNode;let a=o.getBoundingClientRect();r=(a.top+a.bottom)/2}else r=n.clientY;let s=e.lineBlockAtHeight(r-e.documentTop);A.domEventHandlers[i](e,s,n)&&n.preventDefault()});this.markers=btA(A.markers(e)),A.initialSpacer&&(this.spacer=new Iw(e,0,0,[A.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let A=this.markers;if(this.markers=btA(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let n=this.config.updateSpacer(this.spacer.markers[0],e);n!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[n])}let i=e.view.viewport;return!Io.eq(this.markers,A,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}},Iw=class{constructor(e,A,i,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,A,i,n)}update(e,A,i,n){this.height!=A&&(this.height=A,this.dom.style.height=A+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),jxA(this.markers,n)||this.setMarkers(e,n)}setMarkers(e,A){let i="cm-gutterElement",n=this.dom.firstChild;for(let o=0,r=0;;){let s=r,a=oo(s,a,c)||r(s,a,c):r}return i}})}}),s3=class extends Ga{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}};function RN(t,e){return t.state.facet(OE).formatNumber(e,t.state)}var ZxA=r3.compute([OE],t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(qxA)},lineMarker(e,A,i){return i.some(n=>n.toDOM)?null:new s3(RN(e,e.state.doc.lineAt(A.from).number))},widgetMarker:(e,A,i)=>{for(let n of e.state.facet(VxA)){let o=n(e,A,i);if(o)return o}return null},lineMarkerChange:e=>e.startState.facet(OE)!=e.state.facet(OE),initialSpacer(e){return new s3(RN(e,ktA(e.state.doc.lines)))},updateSpacer(e,A){let i=RN(A.view,ktA(A.view.state.doc.lines));return i==e.number?e:new s3(i)},domEventHandlers:t.facet(OE).domEventHandlers,side:"before"}));function KiA(t={}){return[OE.of(t),GiA(),ZxA]}function ktA(t){let e=9;for(;e{let e=[],A=-1;for(let i of t.selection.ranges){let n=t.doc.lineAt(i.head).from;n>A&&(A=n,e.push(WxA.range(n)))}return Io.of(e)});function UiA(){return XxA}var $xA=0,u3=class{constructor(e,A){this.from=e,this.to=A}},di=class{constructor(e={}){this.id=$xA++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=Ks.match(e)),A=>{let i=e(A);return i===void 0?null:[this,i]}}};di.closedBy=new di({deserialize:t=>t.split(" ")});di.openedBy=new di({deserialize:t=>t.split(" ")});di.group=new di({deserialize:t=>t.split(" ")});di.isolate=new di({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}});di.contextHash=new di({perNode:!0});di.lookAhead=new di({perNode:!0});di.mounted=new di({perNode:!0});var VE=class{constructor(e,A,i){this.tree=e,this.overlay=A,this.parser=i}static get(e){return e&&e.props&&e.props[di.mounted.id]}},ANA=Object.create(null),Ks=class t{constructor(e,A,i,n=0){this.name=e,this.props=A,this.id=i,this.flags=n}static define(e){let A=e.props&&e.props.length?Object.create(null):ANA,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),n=new t(e.name||"",A,e.id,i);if(e.props){for(let o of e.props)if(Array.isArray(o)||(o=o(n)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");A[o[0].id]=o[1]}}return n}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let A=this.prop(di.group);return A?A.indexOf(e)>-1:!1}return this.id==e}static match(e){let A=Object.create(null);for(let i in e)for(let n of i.split(" "))A[n]=e[i];return i=>{for(let n=i.prop(di.group),o=-1;o<(n?n.length:0);o++){let r=A[o<0?i.name:n[o]];if(r)return r}}}};Ks.none=new Ks("",Object.create(null),0,8);var h3=class t{constructor(e){this.types=e;for(let A=0;A0;for(let a=this.cursor(r|zr.IncludeAnonymous);;){let c=!1;if(a.from<=o&&a.to>=n&&(!s&&a.type.isAnonymous||A(a)!==!1)){if(a.firstChild())continue;c=!0}for(;c&&i&&(s||!a.type.isAnonymous)&&i(a),!a.nextSibling();){if(!a.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let A in this.props)e.push([+A,this.props[A]]);return e}balance(e={}){return this.children.length<=8?this:LF(Ks.none,this.children,this.positions,0,this.children.length,0,this.length,(A,i,n)=>new t(this.type,A,i,n,this.propValues),e.makeTree||((A,i,n)=>new t(Ks.none,A,i,n)))}static build(e){return tNA(e)}};wr.empty=new wr(Ks.none,[],[],0);var vF=class t{constructor(e,A){this.buffer=e,this.index=A}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new t(this.buffer,this.index)}},_1=class t{constructor(e,A,i){this.buffer=e,this.length=A,this.set=i}get type(){return Ks.none}toString(){let e=[];for(let A=0;A0));a=r[a+3]);return s}slice(e,A,i){let n=this.buffer,o=new Uint16Array(A-e),r=0;for(let s=e,a=0;s=e&&Ae;case 1:return A<=e&&i>e;case 2:return i>e;case 4:return!0}}function f3(t,e,A,i){for(var n;t.from==t.to||(A<1?t.from>=e:t.from>e)||(A>-1?t.to<=e:t.to0?s.length:-1;e!=c;e+=A){let g=s[e],I=a[e]+r.from;if(HiA(n,i,I,I+g.length)){if(g instanceof _1){if(o&zr.ExcludeBuffers)continue;let C=g.findChild(0,g.buffer.length,A,i-I,n);if(C>-1)return new m3(new bF(r,g,e,I),null,C)}else if(o&zr.IncludeAnonymous||!g.type.isAnonymous||RF(g)){let C;if(!(o&zr.IgnoreMounts)&&(C=VE.get(g))&&!C.overlay)return new t(C.tree,I,e,r);let d=new t(g,I,e,r);return o&zr.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(A<0?g.children.length-1:0,A,i,n)}}}if(o&zr.IncludeAnonymous||!r.type.isAnonymous||(r.index>=0?e=r.index+A:e=A<0?-1:r._parent._tree.children.length,r=r._parent,!r))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,A,i=0){let n;if(!(i&zr.IgnoreOverlays)&&(n=VE.get(this._tree))&&n.overlay){let o=e-this.from;for(let{from:r,to:s}of n.overlay)if((A>0?r<=o:r=o:s>o))return new t(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,A,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function YiA(t,e,A,i){let n=t.cursor(),o=[];if(!n.firstChild())return o;if(A!=null){for(let r=!1;!r;)if(r=n.type.is(A),!n.nextSibling())return o}for(;;){if(i!=null&&n.type.is(i))return o;if(n.type.is(e)&&o.push(n.node),!n.nextSibling())return i==null?o:[]}}function MF(t,e,A=e.length-1){for(let i=t;A>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[A]&&e[A]!=i.name)return!1;A--}}return!0}var bF=class{constructor(e,A,i,n){this.parent=e,this.buffer=A,this.index=i,this.start=n}},m3=class t extends fw{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,A,i){super(),this.context=e,this._parent=A,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,A,i){let{buffer:n}=this.context,o=n.findChild(this.index+4,n.buffer[this.index+3],e,A-this.context.start,i);return o<0?null:new t(this.context,this,o)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,A,i=0){if(i&zr.ExcludeBuffers)return null;let{buffer:n}=this.context,o=n.findChild(this.index+4,n.buffer[this.index+3],A>0?1:-1,e-this.context.start,A);return o<0?null:new t(this.context,this,o)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,A=e.buffer[this.index+3];return A<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new t(this.context,this._parent,A):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,A=this._parent?this._parent.index+4:0;return this.index==A?this.externalSibling(-1):new t(this.context,this._parent,e.findChild(A,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],A=[],{buffer:i}=this.context,n=this.index+4,o=i.buffer[this.index+3];if(o>n){let r=i.buffer[this.index+1];e.push(i.slice(n,o,r)),A.push(0)}return new wr(this.type,e,A,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function OiA(t){if(!t.length)return null;let e=0,A=t[0];for(let o=1;oA.from||r.to=e){let s=new jl(r.tree,r.overlay[0].from+o.from,-1,o);(n||(n=[i])).push(f3(s,e,A,!1))}}return n?OiA(n):i}var p3=class{get name(){return this.type.name}constructor(e,A=0){if(this.mode=A,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof jl)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,A){this.index=e;let{start:i,buffer:n}=this.buffer;return this.type=A||n.set.types[n.buffer[e]],this.from=i+n.buffer[e+1],this.to=i+n.buffer[e+2],!0}yield(e){return e?e instanceof jl?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,A,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,A,i,this.mode));let{buffer:n}=this.buffer,o=n.findChild(this.index+4,n.buffer[this.index+3],e,A-this.buffer.start,i);return o<0?!1:(this.stack.push(this.index),this.yieldBuf(o))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,A,i=this.mode){return this.buffer?i&zr.ExcludeBuffers?!1:this.enterChild(1,e,A):this.yield(this._tree.enter(e,A,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&zr.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&zr.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:A}=this.buffer,i=this.stack.length-1;if(e<0){let n=i<0?0:this.stack[i]+4;if(this.index!=n)return this.yieldBuf(A.findChild(n,this.index,-1,0,4))}else{let n=A.buffer[this.index+3];if(n<(i<0?A.buffer.length:A.buffer[this.stack[i]+3]))return this.yieldBuf(n)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let A,i,{buffer:n}=this;if(n){if(e>0){if(this.index-1)for(let o=A+e,r=e<0?-1:i._tree.children.length;o!=r;o+=e){let s=i._tree.children[o];if(this.mode&zr.IncludeAnonymous||s instanceof _1||!s.type.isAnonymous||RF(s))return!1}return!0}move(e,A){if(A&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,A=0){for(;(this.from==this.to||(A<1?this.from>=e:this.from>e)||(A>-1?this.to<=e:this.to=0;){for(let r=e;r;r=r._parent)if(r.index==n){if(n==this.index)return r;A=r,i=o+1;break A}n=this.stack[--o]}for(let n=i;n=0;o--){if(o<0)return MF(this._tree,e,n);let r=i[A.buffer[this.stack[o]]];if(!r.isAnonymous){if(e[n]&&e[n]!=r.name)return!1;n--}}return!0}};function RF(t){return t.children.some(e=>e instanceof _1||!e.type.isAnonymous||RF(e))}function tNA(t){var e;let{buffer:A,nodeSet:i,maxBufferLength:n=1024,reused:o=[],minRepeatType:r=i.types.length}=t,s=Array.isArray(A)?new vF(A,A.length):A,a=i.types,c=0,g=0;function I(D,G,J,z,K,O){let{id:V,start:j,end:dA,size:fA}=s,EA=g,IA=c;for(;fA<0;)if(s.next(),fA==-1){let VA=o[V];J.push(VA),z.push(j-D);return}else if(fA==-3){c=V;return}else if(fA==-4){g=V;return}else throw new RangeError(`Unrecognized record size: ${fA}`);let SA=a[V],nA,lA,wA=j-D;if(dA-j<=n&&(lA=u(s.pos-G,K))){let VA=new Uint16Array(lA.size-lA.skip),ie=s.pos-lA.size,UA=VA.length;for(;s.pos>ie;)UA=h(lA.start,VA,UA);nA=new _1(VA,dA-lA.start,i),wA=lA.start-D}else{let VA=s.pos-fA;s.next();let ie=[],UA=[],BA=V>=r?V:-1,JA=0,Xe=dA;for(;s.pos>VA;)BA>=0&&s.id==BA&&s.size>=0?(s.end<=Xe-n&&(B(ie,UA,j,JA,s.end,Xe,BA,EA,IA),JA=ie.length,Xe=s.end),s.next()):O>2500?C(j,VA,ie,UA):I(j,VA,ie,UA,BA,O+1);if(BA>=0&&JA>0&&JA-1&&JA>0){let We=d(SA,IA);nA=LF(SA,ie,UA,0,ie.length,0,dA-j,We,We)}else nA=E(SA,ie,UA,dA-j,EA-dA,IA)}J.push(nA),z.push(wA)}function C(D,G,J,z){let K=[],O=0,V=-1;for(;s.pos>G;){let{id:j,start:dA,end:fA,size:EA}=s;if(EA>4)s.next();else{if(V>-1&&dA=0;fA-=3)j[EA++]=K[fA],j[EA++]=K[fA+1]-dA,j[EA++]=K[fA+2]-dA,j[EA++]=EA;J.push(new _1(j,K[2]-dA,i)),z.push(dA-D)}}function d(D,G){return(J,z,K)=>{let O=0,V=J.length-1,j,dA;if(V>=0&&(j=J[V])instanceof wr){if(!V&&j.type==D&&j.length==K)return j;(dA=j.prop(di.lookAhead))&&(O=z[V]+j.length+dA)}return E(D,J,z,K,O,G)}}function B(D,G,J,z,K,O,V,j,dA){let fA=[],EA=[];for(;D.length>z;)fA.push(D.pop()),EA.push(G.pop()+J-K);D.push(E(i.types[V],fA,EA,O-K,j-O,dA)),G.push(K-J)}function E(D,G,J,z,K,O,V){if(O){let j=[di.contextHash,O];V=V?[j].concat(V):[j]}if(K>25){let j=[di.lookAhead,K];V=V?[j].concat(V):[j]}return new wr(D,G,J,z,V)}function u(D,G){let J=s.fork(),z=0,K=0,O=0,V=J.end-n,j={size:0,start:0,skip:0};A:for(let dA=J.pos-D;J.pos>dA;){let fA=J.size;if(J.id==G&&fA>=0){j.size=z,j.start=K,j.skip=O,O+=4,z+=4,J.next();continue}let EA=J.pos-fA;if(fA<0||EA=r?4:0,SA=J.start;for(J.next();J.pos>EA;){if(J.size<0)if(J.size==-3)IA+=4;else break A;else J.id>=r&&(IA+=4);J.next()}K=SA,z+=fA,O+=IA}return(G<0||z==D)&&(j.size=z,j.start=K,j.skip=O),j.size>4?j:void 0}function h(D,G,J){let{id:z,start:K,end:O,size:V}=s;if(s.next(),V>=0&&z4){let dA=s.pos-(V-4);for(;s.pos>dA;)J=h(D,G,J)}G[--J]=j,G[--J]=O-D,G[--J]=K-D,G[--J]=z}else V==-3?c=z:V==-4&&(g=z);return J}let w=[],x=[];for(;s.pos>0;)I(t.start||0,t.bufferStart||0,w,x,-1,0);let R=(e=t.length)!==null&&e!==void 0?e:w.length?x[0]+w[0].length:0;return new wr(a[t.topID],w.reverse(),x.reverse(),R)}var TiA=new WeakMap;function hw(t,e){if(!t.isAnonymous||e instanceof _1||e.type!=t)return 1;let A=TiA.get(e);if(A==null){A=1;for(let i of e.children){if(i.type!=t||!(i instanceof wr)){A=1;break}A+=hw(t,i)}TiA.set(e,A)}return A}function LF(t,e,A,i,n,o,r,s,a){let c=0;for(let B=i;B=g)break;G+=J}if(x==R+1){if(G>g){let J=B[R];d(J.children,J.positions,0,J.children.length,E[R]+w);continue}I.push(B[R])}else{let J=E[x-1]+B[x-1].length-D;I.push(LF(t,B,E,R,x,D,J,null,a))}C.push(D+w-o)}}return d(e,A,i,n,0),(s||a)(I,C,r)}var _C=class t{constructor(e,A,i,n,o=!1,r=!1){this.from=e,this.to=A,this.tree=i,this.offset=n,this.open=(o?1:0)|(r?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,A=[],i=!1){let n=[new t(0,e.length,e,0,!1,i)];for(let o of A)o.to>e.length&&n.push(o);return n}static applyChanges(e,A,i=128){if(!A.length)return e;let n=[],o=1,r=e.length?e[0]:null;for(let s=0,a=0,c=0;;s++){let g=s=i)for(;r&&r.from=C.from||I<=C.to||c){let d=Math.max(C.from,a)-c,B=Math.min(C.to,I)-c;C=d>=B?null:new t(d,B,C.tree,C.offset+c,s>0,!!g)}if(C&&n.push(C),r.to>I)break;r=onew u3(n.from,n.to)):[new u3(0,0)]:[new u3(0,e.length)],this.createParse(e,A||[],i)}parse(e,A,i){let n=this.startParse(e,A,i);for(;;){let o=n.advance();if(o)return o}}},SF=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,A){return this.string.slice(e,A)}};var W5e=new di({perNode:!0});var iNA=0,_g=class t{constructor(e,A,i,n){this.name=e,this.set=A,this.base=i,this.modified=n,this.id=iNA++}toString(){let{name:e}=this;for(let A of this.modified)A.name&&(e=`${A.name}(${e})`);return e}static define(e,A){let i=typeof e=="string"?e:"?";if(e instanceof t&&(A=e),A?.base)throw new Error("Can not derive from a modified tag");let n=new t(i,[],null,[]);if(n.set.push(n),A)for(let o of A.set)n.set.push(o);return n}static defineModifier(e){let A=new ww(e);return i=>i.modified.indexOf(A)>-1?i:ww.get(i.base||i,i.modified.concat(A).sort((n,o)=>n.id-o.id))}},nNA=0,ww=class t{constructor(e){this.name=e,this.instances=[],this.id=nNA++}static get(e,A){if(!A.length)return e;let i=A[0].instances.find(s=>s.base==e&&oNA(A,s.modified));if(i)return i;let n=[],o=new _g(e.name,n,e,A);for(let s of A)s.instances.push(o);let r=rNA(A);for(let s of e.set)if(!s.modified.length)for(let a of r)n.push(t.get(s,a));return o}};function oNA(t,e){return t.length==e.length&&t.every((A,i)=>A==e[i])}function rNA(t){let e=[[]];for(let A=0;Ai.length-A.length)}function yw(t){let e=Object.create(null);for(let A in t){let i=t[A];Array.isArray(i)||(i=[i]);for(let n of A.split(" "))if(n){let o=[],r=2,s=n;for(let I=0;;){if(s=="..."&&I>0&&I+3==n.length){r=1;break}let C=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(s);if(!C)throw new RangeError("Invalid path: "+n);if(o.push(C[0]=="*"?"":C[0][0]=='"'?JSON.parse(C[0]):C[0]),I+=C[0].length,I==n.length)break;let d=n[I++];if(I==n.length&&d=="!"){r=0;break}if(d!="/")throw new RangeError("Invalid path: "+n);s=n.slice(I)}let a=o.length-1,c=o[a];if(!c)throw new RangeError("Invalid path: "+n);let g=new WE(i,r,a>0?o.slice(0,a):null);e[c]=g.sort(e[c])}}return jiA.add(e)}var jiA=new di,WE=class{constructor(e,A,i,n){this.tags=e,this.mode=A,this.context=i,this.next=n}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let r=n;for(let s of o)for(let a of s.set){let c=A[a.id];if(c){r=r?r+" "+c:c;break}}return r},scope:i}}function sNA(t,e){let A=null;for(let i of t){let n=i.style(e);n&&(A=A?A+" "+n:n)}return A}function qiA(t,e,A,i=0,n=t.length){let o=new NF(i,Array.isArray(e)?e:[e],A);o.highlightRange(t.cursor(),i,n,"",o.highlighters),o.flush(n)}var NF=class{constructor(e,A,i){this.at=e,this.highlighters=A,this.span=i,this.class=""}startSpan(e,A){A!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=A)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,A,i,n,o){let{type:r,from:s,to:a}=e;if(s>=i||a<=A)return;r.isTop&&(o=this.highlighters.filter(d=>!d.scope||d.scope(r)));let c=n,g=aNA(e)||WE.empty,I=sNA(o,g.tags);if(I&&(c&&(c+=" "),c+=I,g.mode==1&&(n+=(n?" ":"")+I)),this.startSpan(Math.max(A,s),c),g.opaque)return;let C=e.tree&&e.tree.prop(di.mounted);if(C&&C.overlay){let d=e.node.enter(C.overlay[0].from+s,1),B=this.highlighters.filter(u=>!u.scope||u.scope(C.tree.type)),E=e.firstChild();for(let u=0,h=s;;u++){let w=u=x||!e.nextSibling())););if(!w||x>i)break;h=w.to+s,h>A&&(this.highlightRange(d.cursor(),Math.max(A,w.from+s),Math.min(i,h),"",B),this.startSpan(Math.min(i,h),c))}E&&e.parent()}else if(e.firstChild()){C&&(n="");do if(!(e.to<=A)){if(e.from>=i)break;this.highlightRange(e,A,i,n,o),this.startSpan(Math.min(i,e.to),c)}while(e.nextSibling());e.parent()}}};function aNA(t){let e=t.type.prop(jiA);for(;e&&e.context&&!t.matchContext(e.context);)e=e.next;return e||null}var ze=_g.define,mw=ze(),G1=ze(),ziA=ze(G1),PiA=ze(G1),K1=ze(),pw=ze(K1),xF=ze(K1),Zl=ze(),GC=ze(Zl),ql=ze(),Vl=ze(),FF=ze(),D3=ze(FF),Dw=ze(),ke={comment:mw,lineComment:ze(mw),blockComment:ze(mw),docComment:ze(mw),name:G1,variableName:ze(G1),typeName:ziA,tagName:ze(ziA),propertyName:PiA,attributeName:ze(PiA),className:ze(G1),labelName:ze(G1),namespace:ze(G1),macroName:ze(G1),literal:K1,string:pw,docString:ze(pw),character:ze(pw),attributeValue:ze(pw),number:xF,integer:ze(xF),float:ze(xF),bool:ze(K1),regexp:ze(K1),escape:ze(K1),color:ze(K1),url:ze(K1),keyword:ql,self:ze(ql),null:ze(ql),atom:ze(ql),unit:ze(ql),modifier:ze(ql),operatorKeyword:ze(ql),controlKeyword:ze(ql),definitionKeyword:ze(ql),moduleKeyword:ze(ql),operator:Vl,derefOperator:ze(Vl),arithmeticOperator:ze(Vl),logicOperator:ze(Vl),bitwiseOperator:ze(Vl),compareOperator:ze(Vl),updateOperator:ze(Vl),definitionOperator:ze(Vl),typeOperator:ze(Vl),controlOperator:ze(Vl),punctuation:FF,separator:ze(FF),bracket:D3,angleBracket:ze(D3),squareBracket:ze(D3),paren:ze(D3),brace:ze(D3),content:Zl,heading:GC,heading1:ze(GC),heading2:ze(GC),heading3:ze(GC),heading4:ze(GC),heading5:ze(GC),heading6:ze(GC),contentSeparator:ze(Zl),list:ze(Zl),quote:ze(Zl),emphasis:ze(Zl),strong:ze(Zl),link:ze(Zl),monospace:ze(Zl),strikethrough:ze(Zl),inserted:ze(),deleted:ze(),changed:ze(),invalid:ze(),meta:Dw,documentMeta:ze(Dw),annotation:ze(Dw),processingInstruction:ze(Dw),definition:_g.defineModifier("definition"),constant:_g.defineModifier("constant"),function:_g.defineModifier("function"),standard:_g.defineModifier("standard"),local:_g.defineModifier("local"),special:_g.defineModifier("special")};for(let t in ke){let e=ke[t];e instanceof _g&&(e.name=t)}var ADe=_F([{tag:ke.link,class:"tok-link"},{tag:ke.heading,class:"tok-heading"},{tag:ke.emphasis,class:"tok-emphasis"},{tag:ke.strong,class:"tok-strong"},{tag:ke.keyword,class:"tok-keyword"},{tag:ke.atom,class:"tok-atom"},{tag:ke.bool,class:"tok-bool"},{tag:ke.url,class:"tok-url"},{tag:ke.labelName,class:"tok-labelName"},{tag:ke.inserted,class:"tok-inserted"},{tag:ke.deleted,class:"tok-deleted"},{tag:ke.literal,class:"tok-literal"},{tag:ke.string,class:"tok-string"},{tag:ke.number,class:"tok-number"},{tag:[ke.regexp,ke.escape,ke.special(ke.string)],class:"tok-string2"},{tag:ke.variableName,class:"tok-variableName"},{tag:ke.local(ke.variableName),class:"tok-variableName tok-local"},{tag:ke.definition(ke.variableName),class:"tok-variableName tok-definition"},{tag:ke.special(ke.variableName),class:"tok-variableName2"},{tag:ke.definition(ke.propertyName),class:"tok-propertyName tok-definition"},{tag:ke.typeName,class:"tok-typeName"},{tag:ke.namespace,class:"tok-namespace"},{tag:ke.className,class:"tok-className"},{tag:ke.macroName,class:"tok-macroName"},{tag:ke.propertyName,class:"tok-propertyName"},{tag:ke.operator,class:"tok-operator"},{tag:ke.comment,class:"tok-comment"},{tag:ke.meta,class:"tok-meta"},{tag:ke.invalid,class:"tok-invalid"},{tag:ke.punctuation,class:"tok-punctuation"}]);var GF,XE=new di;function cNA(t){return qe.define({combine:t?e=>e.concat(t):void 0})}var gNA=new di,Gg=(()=>{class t{constructor(A,i,n=[],o=""){this.data=A,this.name=o,Dr.prototype.hasOwnProperty("tree")||Object.defineProperty(Dr.prototype,"tree",{get(){return ns(this)}}),this.parser=i,this.extension=[U1.of(this),Dr.languageData.of((r,s,a)=>{let c=ViA(r,s,a),g=c.type.prop(XE);if(!g)return[];let I=r.facet(g),C=c.type.prop(gNA);if(C){let d=c.resolve(s-c.from,a);for(let B of C)if(B.test(d,r)){let E=r.facet(B.facet);return B.type=="replace"?E:E.concat(I)}}return I})].concat(n)}isActiveAt(A,i,n=-1){return ViA(A,i,n).type.prop(XE)==this.data}findRegions(A){let i=A.facet(U1);if(i?.data==this.data)return[{from:0,to:A.doc.length}];if(!i||!i.allowsNesting)return[];let n=[],o=(r,s)=>{if(r.prop(XE)==this.data){n.push({from:s,to:s+r.length});return}let a=r.prop(di.mounted);if(a){if(a.tree.prop(XE)==this.data){if(a.overlay)for(let c of a.overlay)n.push({from:c.from+s,to:c.to+s});else n.push({from:s,to:s+r.length});return}else if(a.overlay){let c=n.length;if(o(a.tree,a.overlay[0].from+s),n.length>c)return}}for(let c=0;ci.isTop?A:void 0)]}),e.name)}configure(e,A){return new t(this.data,this.parser.configure(e),A||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function ns(t){let e=t.field(Gg.state,!1);return e?e.tree:wr.empty}function VF(t,e,A=50){var i;let n=(i=t.field(Gg.state,!1))===null||i===void 0?void 0:i.context;if(!n)return null;let o=n.viewport;n.updateViewport({from:0,to:e});let r=n.isDone(e)||n.work(A,e)?n.tree:null;return n.updateViewport(o),r}var YF=class{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,A){let i=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,A):this.string.slice(e-i,A-i)}},w3=null,TF=class t{constructor(e,A,i=[],n,o,r,s,a){this.parser=e,this.state=A,this.fragments=i,this.tree=n,this.treeLen=o,this.viewport=r,this.skipped=s,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,A,i){return new t(e,A,[],wr.empty,0,i,[],null)}startParse(){return this.parser.startParse(new YF(this.state.doc),this.fragments)}work(e,A){return A!=null&&A>=this.state.doc.length&&(A=void 0),this.tree!=wr.empty&&this.isDone(A??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let n=Date.now()+e;e=()=>Date.now()>n}for(this.parse||(this.parse=this.startParse()),A!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>A)&&A=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(A=this.parse.advance()););}),this.treeLen=e,this.tree=A,this.fragments=this.withoutTempSkipped(_C.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let A=w3;w3=this;try{return e()}finally{w3=A}}withoutTempSkipped(e){for(let A;A=this.tempSkipped.pop();)e=ZiA(e,A.from,A.to);return e}changes(e,A){let{fragments:i,tree:n,treeLen:o,viewport:r,skipped:s}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((c,g,I,C)=>a.push({fromA:c,toA:g,fromB:I,toB:C})),i=_C.applyChanges(i,a),n=wr.empty,o=0,r={from:e.mapPos(r.from,-1),to:e.mapPos(r.to,1)},this.skipped.length){s=[];for(let c of this.skipped){let g=e.mapPos(c.from,1),I=e.mapPos(c.to,-1);ge.from&&(this.fragments=ZiA(this.fragments,n,o),this.skipped.splice(i--,1))}return this.skipped.length>=A?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,A){this.skipped.push({from:e,to:A})}static getSkippingParser(e){return new class extends ZE{createParse(A,i,n){let o=n[0].from,r=n[n.length-1].to;return{parsedPos:o,advance(){let a=w3;if(a){for(let c of n)a.tempSkipped.push(c);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=r,new wr(Ks.none,[],[],r-o)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let A=this.fragments;return this.treeLen>=e&&A.length&&A[0].from==0&&A[0].to>=e}static get(){return w3}};function ZiA(t,e,A){return _C.applyChanges(t,[{fromA:e,toA:A,fromB:e,toB:A}])}var v3=class t{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let A=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),A.viewport.to);return A.work(20,i)||A.takeTree(),new t(A)}static init(e){let A=Math.min(3e3,e.doc.length),i=TF.create(e.facet(U1).parser,e,{from:0,to:A});return i.work(20,A)||i.takeTree(),new t(i)}};Gg.state=tr.define({create:v3.init,update(t,e){for(let A of e.effects)if(A.is(Gg.setState))return A.value;return e.startState.facet(U1)!=e.state.facet(U1)?v3.init(e.state):t.apply(e)}});var tnA=t=>{let e=setTimeout(()=>t(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(tnA=t=>{let e=-1,A=setTimeout(()=>{e=requestIdleCallback(t,{timeout:400})},100);return()=>e<0?clearTimeout(A):cancelIdleCallback(e)});var KF=typeof navigator<"u"&&(!((GF=navigator.scheduling)===null||GF===void 0)&&GF.isInputPending)?()=>navigator.scheduling.isInputPending():null,lNA=Bo.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let A=this.view.state.field(Gg.state).context;(A.updateViewport(e.view.viewport)||this.view.viewport.to>A.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(A)}scheduleWork(){if(this.working)return;let{state:e}=this.view,A=e.field(Gg.state);(A.tree!=A.context.tree||!A.context.isDone(e.doc.length))&&(this.working=tnA(this.work))}work(e){this.working=null;let A=Date.now();if(this.chunkEndn+1e3,a=o.context.work(()=>KF&&KF()||Date.now()>r,n+(s?0:1e5));this.chunkBudget-=Date.now()-A,(a||this.chunkBudget<=0)&&(o.context.takeTree(),this.view.dispatch({effects:Gg.setState.of(new v3(o.context))})),this.chunkBudget>0&&!(a&&!s)&&this.scheduleWork(),this.checkAsyncSchedule(o.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(A=>is(this.view.state,A)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),U1=qe.define({combine(t){return t.length?t[0]:null},enables:t=>[Gg.state,lNA,Pt.contentAttributes.compute([t],e=>{let A=e.facet(t);return A&&A.name?{"data-language":A.name}:{}})]}),Mw=class{constructor(e,A=[]){this.language=e,this.support=A,this.extension=[e,A]}};var INA=qe.define(),JC=qe.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some(A=>A!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function Ug(t){let e=t.facet(JC);return e.charCodeAt(0)==9?t.tabSize*e.length:e.length}function eQ(t,e){let A="",i=t.tabSize,n=t.facet(JC)[0];if(n==" "){for(;e>=i;)A+=" ",e-=i;n=" "}for(let o=0;o=e?CNA(t,A,e):null}var KC=class{constructor(e,A={}){this.state=e,this.options=A,this.unit=Ug(e)}lineAt(e,A=1){let i=this.state.doc.lineAt(e),{simulateBreak:n,simulateDoubleBreak:o}=this.options;return n!=null&&n>=i.from&&n<=i.to?o&&n==e?{text:"",from:e}:(A<0?n-1&&(o+=r-this.countColumn(i,i.search(/\S|$/))),o}countColumn(e,A=e.length){return O0(e,this.state.tabSize,A)}lineIndent(e,A=1){let{text:i,from:n}=this.lineAt(e,A),o=this.options.overrideIndentation;if(o){let r=o(n);if(r>-1)return r}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},ZF=new di;function CNA(t,e,A){let i=e.resolveStack(A),n=e.resolveInner(A,-1).resolve(A,0).enterUnfinishedNodesBefore(A);if(n!=i.node){let o=[];for(let r=n;r&&!(r.fromi.node.to||r.from==i.node.from&&r.type==i.node.type);r=r.parent)o.push(r);for(let r=o.length-1;r>=0;r--)i={node:o[r],next:i}}return inA(i,t,A)}function inA(t,e,A){for(let i=t;i;i=i.next){let n=BNA(i.node);if(n)return n(HF.create(e,A,i))}return 0}function dNA(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}function BNA(t){let e=t.type.prop(ZF);if(e)return e;let A=t.firstChild,i;if(A&&(i=A.type.prop(di.closedBy))){let n=t.lastChild,o=n&&i.indexOf(n.name)>-1;return r=>hNA(r,!0,1,void 0,o&&!dNA(r)?n.from:void 0)}return t.parent==null?ENA:null}function ENA(){return 0}var HF=class t extends KC{constructor(e,A,i){super(e.state,e.options),this.base=e,this.pos=A,this.context=i}get node(){return this.context.node}static create(e,A,i){return new t(e,A,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let A=this.state.doc.lineAt(e.from);for(;;){let i=e.resolve(A.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(QNA(i,e))break;A=this.state.doc.lineAt(i.from)}return this.lineIndent(A.from)}continue(){return inA(this.context.next,this.base,this.pos)}};function QNA(t,e){for(let A=e;A;A=A.parent)if(t==A)return!0;return!1}function uNA(t){let e=t.node,A=e.childAfter(e.from),i=e.lastChild;if(!A)return null;let n=t.options.simulateBreak,o=t.state.doc.lineAt(A.from),r=n==null||n<=o.from?o.to:Math.min(o.to,n);for(let s=A.to;;){let a=e.childAfter(s);if(!a||a==i)return null;if(!a.type.isSkipped){if(a.from>=r)return null;let c=/^ */.exec(o.text.slice(A.to-o.from))[0].length;return{from:A.from,to:A.to+c}}s=a.to}}function hNA(t,e,A,i,n){let o=t.textAfter,r=o.match(/^\s*/)[0].length,s=i&&o.slice(r,r+i.length)==i||n==t.pos+r,a=e?uNA(t):null;return a?s?t.column(a.from):t.column(a.to):t.baseIndent+(s?0:t.unit*A)}function WF({except:t,units:e=1}={}){return A=>{let i=t&&t.test(A.textAfter);return A.baseIndent+(i?0:e*A.unit)}}var fNA=200;function nnA(){return Dr.transactionFilter.of(t=>{if(!t.docChanged||!t.isUserEvent("input.type")&&!t.isUserEvent("input.complete"))return t;let e=t.startState.languageDataAt("indentOnInput",t.startState.selection.main.head);if(!e.length)return t;let A=t.newDoc,{head:i}=t.newSelection.main,n=A.lineAt(i);if(i>n.from+fNA)return t;let o=A.sliceString(n.from,i);if(!e.some(c=>c.test(o)))return t;let{state:r}=t,s=-1,a=[];for(let{head:c}of r.selection.ranges){let g=r.doc.lineAt(c);if(g.from==s)continue;s=g.from;let I=kw(r,g.from);if(I==null)continue;let C=/^\s*/.exec(g.text)[0],d=eQ(r,I);C!=d&&a.push({from:g.from,to:g.from+C.length,insert:d})}return a.length?[t,{changes:a,sequential:!0}]:t})}var XF=qe.define(),M3=new di;function onA(t){let e=t.firstChild,A=t.lastChild;return e&&e.toA)continue;if(o&&s.from=e&&c.to>A&&(o=c)}}return o}function pNA(t){let e=t.lastChild;return e&&e.to==t.to&&e.type.isError}function $E(t,e,A){for(let i of t.facet(XF)){let n=i(t,e,A);if(n)return n}return mNA(t,e,A)}function rnA(t,e){let A=e.mapPos(t.from,1),i=e.mapPos(t.to,-1);return A>=i?void 0:{from:A,to:i}}var tQ=Ki.define({map:rnA}),b3=Ki.define({map:rnA});function snA(t){let e=[];for(let{head:A}of t.state.selection.ranges)e.some(i=>i.from<=A&&i.to>=A)||e.push(t.lineBlockAt(A));return e}var UC=tr.define({create(){return ht.none},update(t,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((A,i)=>t=WiA(t,A,i)),t=t.map(e.changes);for(let A of e.effects)if(A.is(tQ)&&!DNA(t,A.value.from,A.value.to)){let{preparePlaceholder:i}=e.state.facet(e_),n=i?ht.replace({widget:new OF(i(e.state,A.value))}):XiA;t=t.update({add:[n.range(A.value.from,A.value.to)]})}else A.is(b3)&&(t=t.update({filter:(i,n)=>A.value.from!=i||A.value.to!=n,filterFrom:A.value.from,filterTo:A.value.to}));return e.selection&&(t=WiA(t,e.selection.main.head)),t},provide:t=>Pt.decorations.from(t),toJSON(t,e){let A=[];return t.between(0,e.doc.length,(i,n)=>{A.push(i,n)}),A},fromJSON(t){if(!Array.isArray(t)||t.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let A=0;A{ne&&(i=!0)}),i?t.update({filterFrom:e,filterTo:A,filter:(n,o)=>n>=A||o<=e}):t}function bw(t,e,A){var i;let n=null;return(i=t.field(UC,!1))===null||i===void 0||i.between(e,A,(o,r)=>{(!n||n.from>o)&&(n={from:o,to:r})}),n}function DNA(t,e,A){let i=!1;return t.between(e,e,(n,o)=>{n==e&&o==A&&(i=!0)}),i}function anA(t,e){return t.field(UC,!1)?e:e.concat(Ki.appendConfig.of(lnA()))}var wNA=t=>{for(let e of snA(t)){let A=$E(t.state,e.from,e.to);if(A)return t.dispatch({effects:anA(t.state,[tQ.of(A),cnA(t,A)])}),!0}return!1},$F=t=>{if(!t.state.field(UC,!1))return!1;let e=[];for(let A of snA(t)){let i=bw(t.state,A.from,A.to);i&&e.push(b3.of(i),cnA(t,i,!1))}return e.length&&t.dispatch({effects:e}),e.length>0};function cnA(t,e,A=!0){let i=t.state.doc.lineAt(e.from).number,n=t.state.doc.lineAt(e.to).number;return Pt.announce.of(`${t.state.phrase(A?"Folded lines":"Unfolded lines")} ${i} ${t.state.phrase("to")} ${n}.`)}var yNA=t=>{let{state:e}=t,A=[];for(let i=0;i{let e=t.state.field(UC,!1);if(!e||!e.size)return!1;let A=[];return e.between(0,t.state.doc.length,(i,n)=>{A.push(b3.of({from:i,to:n}))}),t.dispatch({effects:A}),!0};var gnA=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:wNA},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:$F},{key:"Ctrl-Alt-[",run:yNA},{key:"Ctrl-Alt-]",run:A_}],vNA={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},e_=qe.define({combine(t){return ts(t,vNA)}});function lnA(t){let e=[UC,bNA];return t&&e.push(e_.of(t)),e}function InA(t,e){let{state:A}=t,i=A.facet(e_),n=r=>{let s=t.lineBlockAt(t.posAtDOM(r.target)),a=bw(t.state,s.from,s.to);a&&t.dispatch({effects:b3.of(a)}),r.preventDefault()};if(i.placeholderDOM)return i.placeholderDOM(t,n,e);let o=document.createElement("span");return o.textContent=i.placeholderText,o.setAttribute("aria-label",A.phrase("folded code")),o.title=A.phrase("unfold"),o.className="cm-foldPlaceholder",o.onclick=n,o}var XiA=ht.replace({widget:new class extends Cc{toDOM(t){return InA(t,null)}}}),OF=class extends Cc{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return InA(e,this.value)}},MNA={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1},y3=class extends Ga{constructor(e,A){super(),this.config=e,this.open=A}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let A=document.createElement("span");return A.textContent=this.open?this.config.openText:this.config.closedText,A.title=e.state.phrase(this.open?"Fold line":"Unfold line"),A}};function CnA(t={}){let e=sA(sA({},MNA),t),A=new y3(e,!0),i=new y3(e,!1),n=Bo.fromClass(class{constructor(r){this.from=r.viewport.from,this.markers=this.buildMarkers(r)}update(r){(r.docChanged||r.viewportChanged||r.startState.facet(U1)!=r.state.facet(U1)||r.startState.field(UC,!1)!=r.state.field(UC,!1)||ns(r.startState)!=ns(r.state)||e.foldingChanged(r))&&(this.markers=this.buildMarkers(r.view))}buildMarkers(r){let s=new fs;for(let a of r.viewportLineBlocks){let c=bw(r.state,a.from,a.to)?i:$E(r.state,a.from,a.to)?A:null;c&&s.add(a.from,a.from,c)}return s.finish()}}),{domEventHandlers:o}=e;return[n,Qw({class:"cm-foldGutter",markers(r){var s;return((s=r.plugin(n))===null||s===void 0?void 0:s.markers)||Io.empty},initialSpacer(){return new y3(e,!1)},domEventHandlers:Fe(sA({},o),{click:(r,s,a)=>{if(o.click&&o.click(r,s,a))return!0;let c=bw(r.state,s.from,s.to);if(c)return r.dispatch({effects:b3.of(c)}),!0;let g=$E(r.state,s.from,s.to);return g?(r.dispatch({effects:tQ.of(g)}),!0):!1}})}),lnA()]}var bNA=Pt.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),AQ=class t{constructor(e,A){this.specs=e;let i;function n(s){let a=jc.newName();return(i||(i=Object.create(null)))["."+a]=s,a}let o=typeof A.all=="string"?A.all:A.all?n(A.all):void 0,r=A.scope;this.scope=r instanceof Gg?s=>s.prop(XE)==r.data:r?s=>s==r:void 0,this.style=_F(e.map(s=>({tag:s.tag,class:s.class||n(Object.assign({},s,{tag:null}))})),{all:o}).style,this.module=i?new jc(i):null,this.themeType=A.themeType}static define(e,A){return new t(e,A||{})}},zF=qe.define(),dnA=qe.define({combine(t){return t.length?[t[0]]:null}});function UF(t){let e=t.facet(zF);return e.length?e:t.facet(dnA)}function t_(t,e){let A=[kNA],i;return t instanceof AQ&&(t.module&&A.push(Pt.styleModule.of(t.module)),i=t.themeType),e?.fallback?A.push(dnA.of(t)):i?A.push(zF.computeN([Pt.darkTheme],n=>n.facet(Pt.darkTheme)==(i=="dark")?[t]:[])):A.push(zF.of(t)),A}var PF=class{constructor(e){this.markCache=Object.create(null),this.tree=ns(e.state),this.decorations=this.buildDeco(e,UF(e.state)),this.decoratedTo=e.viewport.to}update(e){let A=ns(e.state),i=UF(e.state),n=i!=UF(e.startState),{viewport:o}=e.view,r=e.changes.mapPos(this.decoratedTo,1);A.length=o.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=r):(A!=this.tree||e.viewportChanged||n)&&(this.tree=A,this.decorations=this.buildDeco(e.view,i),this.decoratedTo=o.to)}buildDeco(e,A){if(!A||!this.tree.length)return ht.none;let i=new fs;for(let{from:n,to:o}of e.visibleRanges)qiA(this.tree,A,(r,s,a)=>{i.add(r,s,this.markCache[a]||(this.markCache[a]=ht.mark({class:a})))},n,o);return i.finish()}},kNA=Ng.high(Bo.fromClass(PF,{decorations:t=>t.decorations})),BnA=AQ.define([{tag:ke.meta,color:"#404740"},{tag:ke.link,textDecoration:"underline"},{tag:ke.heading,textDecoration:"underline",fontWeight:"bold"},{tag:ke.emphasis,fontStyle:"italic"},{tag:ke.strong,fontWeight:"bold"},{tag:ke.strikethrough,textDecoration:"line-through"},{tag:ke.keyword,color:"#708"},{tag:[ke.atom,ke.bool,ke.url,ke.contentSeparator,ke.labelName],color:"#219"},{tag:[ke.literal,ke.inserted],color:"#164"},{tag:[ke.string,ke.deleted],color:"#a11"},{tag:[ke.regexp,ke.escape,ke.special(ke.string)],color:"#e40"},{tag:ke.definition(ke.variableName),color:"#00f"},{tag:ke.local(ke.variableName),color:"#30a"},{tag:[ke.typeName,ke.namespace],color:"#085"},{tag:ke.className,color:"#167"},{tag:[ke.special(ke.variableName),ke.macroName],color:"#256"},{tag:ke.definition(ke.propertyName),color:"#00c"},{tag:ke.comment,color:"#940"},{tag:ke.invalid,color:"#f00"}]),SNA=Pt.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),EnA=1e4,QnA="()[]{}",unA=qe.define({combine(t){return ts(t,{afterCursor:!0,brackets:QnA,maxScanDistance:EnA,renderMatch:xNA})}}),RNA=ht.mark({class:"cm-matchingBracket"}),LNA=ht.mark({class:"cm-nonmatchingBracket"});function xNA(t){let e=[],A=t.matched?RNA:LNA;return e.push(A.range(t.start.from,t.start.to)),t.end&&e.push(A.range(t.end.from,t.end.to)),e}var NNA=tr.define({create(){return ht.none},update(t,e){if(!e.docChanged&&!e.selection)return t;let A=[],i=e.state.facet(unA);for(let n of e.state.selection.ranges){if(!n.empty)continue;let o=Kg(e.state,n.head,-1,i)||n.head>0&&Kg(e.state,n.head-1,1,i)||i.afterCursor&&(Kg(e.state,n.head,1,i)||n.headPt.decorations.from(t)}),FNA=[NNA,SNA];function hnA(t={}){return[unA.of(t),FNA]}var _NA=new di;function jF(t,e,A){let i=t.prop(e<0?di.openedBy:di.closedBy);if(i)return i;if(t.name.length==1){let n=A.indexOf(t.name);if(n>-1&&n%2==(e<0?1:0))return[A[n+e]]}return null}function qF(t){let e=t.type.prop(_NA);return e?e(t.node):t}function Kg(t,e,A,i={}){let n=i.maxScanDistance||EnA,o=i.brackets||QnA,r=ns(t),s=r.resolveInner(e,A);for(let a=s;a;a=a.parent){let c=jF(a.type,A,o);if(c&&a.from0?e>=g.from&&eg.from&&e<=g.to))return GNA(t,e,A,a,g,c,o)}}return KNA(t,e,A,r,s.type,n,o)}function GNA(t,e,A,i,n,o,r){let s=i.parent,a={from:n.from,to:n.to},c=0,g=s?.cursor();if(g&&(A<0?g.childBefore(i.from):g.childAfter(i.to)))do if(A<0?g.to<=i.from:g.from>=i.to){if(c==0&&o.indexOf(g.type.name)>-1&&g.from0)return null;let c={from:A<0?e-1:e,to:A>0?e+1:e},g=t.doc.iterRange(e,A>0?t.doc.length:0),I=0;for(let C=0;!g.next().done&&C<=o;){let d=g.value;A<0&&(C+=d.length);let B=e+C*A;for(let E=A>0?0:d.length-1,u=A>0?d.length:-1;E!=u;E+=A){let h=r.indexOf(d[E]);if(!(h<0||i.resolveInner(B+E,1).type!=n))if(h%2==0==A>0)I++;else{if(I==1)return{start:c,end:{from:B+E,to:B+E+1},matched:h>>1==a>>1};I--}}A>0&&(C+=d.length)}return g.done?{start:c,matched:!1}:null}var UNA=Object.create(null),$iA=[Ks.none];var AnA=[],enA=Object.create(null),JNA=Object.create(null);for(let[t,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])JNA[t]=YNA(UNA,e);function JF(t,e){AnA.indexOf(t)>-1||(AnA.push(t),console.warn(e))}function YNA(t,e){let A=[];for(let s of e.split(" ")){let a=[];for(let c of s.split(".")){let g=t[c]||ke[c];g?typeof g=="function"?a.length?a=a.map(g):JF(c,`Modifier ${c} used at start of tag`):a.length?JF(c,`Tag ${c} used as modifier`):a=Array.isArray(g)?g:[g]:JF(c,`Unknown highlighting tag ${c}`)}for(let c of a)A.push(c)}if(!A.length)return 0;let i=e.replace(/ /g,"_"),n=i+" "+A.map(s=>s.id),o=enA[n];if(o)return o.id;let r=enA[n]=Ks.define({id:$iA.length,name:i,props:[yw({[i]:A})]});return $iA.push(r),r.id}var aDe={rtl:ht.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:Co.RTL}),ltr:ht.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:Co.LTR}),auto:ht.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var TNA=t=>{let{state:e}=t,A=e.doc.lineAt(e.selection.main.from),i=r_(t.state,A.from);return i.line?HNA(t):i.block?zNA(t):!1};function o_(t,e){return({state:A,dispatch:i})=>{if(A.readOnly)return!1;let n=t(e,A);return n?(i(A.update(n)),!0):!1}}var HNA=o_(qNA,0);var ONA=o_(bnA,0);var zNA=o_((t,e)=>bnA(t,e,jNA(e)),0);function r_(t,e){let A=t.languageDataAt("commentTokens",e,1);return A.length?A[0]:{}}var k3=50;function PNA(t,{open:e,close:A},i,n){let o=t.sliceDoc(i-k3,i),r=t.sliceDoc(n,n+k3),s=/\s*$/.exec(o)[0].length,a=/^\s*/.exec(r)[0].length,c=o.length-s;if(o.slice(c-e.length,c)==e&&r.slice(a,a+A.length)==A)return{open:{pos:i-s,margin:s&&1},close:{pos:n+a,margin:a&&1}};let g,I;n-i<=2*k3?g=I=t.sliceDoc(i,n):(g=t.sliceDoc(i,i+k3),I=t.sliceDoc(n-k3,n));let C=/^\s*/.exec(g)[0].length,d=/\s*$/.exec(I)[0].length,B=I.length-d-A.length;return g.slice(C,C+e.length)==e&&I.slice(B,B+A.length)==A?{open:{pos:i+C+e.length,margin:/\s/.test(g.charAt(C+e.length))?1:0},close:{pos:n-d-A.length,margin:/\s/.test(I.charAt(B-1))?1:0}}:null}function jNA(t){let e=[];for(let A of t.selection.ranges){let i=t.doc.lineAt(A.from),n=A.to<=i.to?i:t.doc.lineAt(A.to);n.from>i.from&&n.from==A.to&&(n=A.to==i.to+1?i:t.doc.lineAt(A.to-1));let o=e.length-1;o>=0&&e[o].to>i.from?e[o].to=n.to:e.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:n.to})}return e}function bnA(t,e,A=e.selection.ranges){let i=A.map(o=>r_(e,o.from).block);if(!i.every(o=>o))return null;let n=A.map((o,r)=>PNA(e,i[r],o.from,o.to));if(t!=2&&!n.every(o=>o))return{changes:e.changes(A.map((o,r)=>n[r]?[]:[{from:o.from,insert:i[r].open+" "},{from:o.to,insert:" "+i[r].close}]))};if(t!=1&&n.some(o=>o)){let o=[];for(let r=0,s;rn&&(o==r||r>I.from)){n=I.from;let C=/^\s*/.exec(I.text)[0].length,d=C==I.length,B=I.text.slice(C,C+c.length)==c?C:-1;Co.comment<0&&(!o.empty||o.single))){let o=[];for(let{line:s,token:a,indent:c,empty:g,single:I}of i)(I||!g)&&o.push({from:s.from+c,insert:a+" "});let r=e.changes(o);return{changes:r,selection:e.selection.map(r,1)}}else if(t!=1&&i.some(o=>o.comment>=0)){let o=[];for(let{line:r,comment:s,token:a}of i)if(s>=0){let c=r.from+s,g=c+a.length;r.text[g-r.from]==" "&&g++,o.push({from:c,to:g})}return{changes:o}}return null}function iQ(t,e){return ae.create(t.ranges.map(e),t.mainIndex)}function Wl(t,e){return t.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function Jg({state:t,dispatch:e},A){let i=iQ(t.selection,A);return i.eq(t.selection,!0)?!1:(e(Wl(t,i)),!0)}function Rw(t,e){return ae.cursor(e?t.to:t.from)}function knA(t,e){return Jg(t,A=>A.empty?t.moveByChar(A,e):Rw(A,e))}function Us(t){return t.textDirectionAt(t.state.selection.main.head)==Co.LTR}var SnA=t=>knA(t,!Us(t)),RnA=t=>knA(t,Us(t));function LnA(t,e){return Jg(t,A=>A.empty?t.moveByGroup(A,e):Rw(A,e))}var VNA=t=>LnA(t,!Us(t)),ZNA=t=>LnA(t,Us(t));var uDe=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function WNA(t,e,A){if(e.type.prop(A))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function Lw(t,e,A){let i=ns(t).resolveInner(e.head),n=A?di.closedBy:di.openedBy;for(let a=e.head;;){let c=A?i.childAfter(a):i.childBefore(a);if(!c)break;WNA(t,c,n)?i=c:a=A?c.to:c.from}let o=i.type.prop(n),r,s;return o&&(r=A?Kg(t,i.from,1):Kg(t,i.to,-1))&&r.matched?s=A?r.end.to:r.end.from:s=A?i.to:i.from,ae.cursor(s,A?-1:1)}var XNA=t=>Jg(t,e=>Lw(t.state,e,!Us(t))),$NA=t=>Jg(t,e=>Lw(t.state,e,Us(t)));function xnA(t,e){return Jg(t,A=>{if(!A.empty)return Rw(A,e);let i=t.moveVertically(A,e);return i.head!=A.head?i:t.moveToLineBoundary(A,e)})}var NnA=t=>xnA(t,!1),FnA=t=>xnA(t,!0);function _nA(t){let e=t.scrollDOM.clientHeightr.empty?t.moveVertically(r,e,A.height):Rw(r,e));if(n.eq(i.selection))return!1;let o;if(A.selfScroll){let r=t.coordsAtPos(i.selection.main.head),s=t.scrollDOM.getBoundingClientRect(),a=s.top+A.marginTop,c=s.bottom-A.marginBottom;r&&r.top>a&&r.bottomGnA(t,!1),i_=t=>GnA(t,!0);function J1(t,e,A){let i=t.lineBlockAt(e.head),n=t.moveToLineBoundary(e,A);if(n.head==e.head&&n.head!=(A?i.to:i.from)&&(n=t.moveToLineBoundary(e,A,!1)),!A&&n.head==i.from&&i.length){let o=/^\s*/.exec(t.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;o&&e.head!=i.from+o&&(n=ae.cursor(i.from+o))}return n}var AFA=t=>Jg(t,e=>J1(t,e,!0)),eFA=t=>Jg(t,e=>J1(t,e,!1)),tFA=t=>Jg(t,e=>J1(t,e,!Us(t))),iFA=t=>Jg(t,e=>J1(t,e,Us(t))),nFA=t=>Jg(t,e=>ae.cursor(t.lineBlockAt(e.head).from,1)),oFA=t=>Jg(t,e=>ae.cursor(t.lineBlockAt(e.head).to,-1));function rFA(t,e,A){let i=!1,n=iQ(t.selection,o=>{let r=Kg(t,o.head,-1)||Kg(t,o.head,1)||o.head>0&&Kg(t,o.head-1,1)||o.headrFA(t,e,!1);function Zc(t,e){let A=iQ(t.state.selection,i=>{let n=e(i);return ae.range(i.anchor,n.head,n.goalColumn,n.bidiLevel||void 0)});return A.eq(t.state.selection)?!1:(t.dispatch(Wl(t.state,A)),!0)}function KnA(t,e){return Zc(t,A=>t.moveByChar(A,e))}var UnA=t=>KnA(t,!Us(t)),JnA=t=>KnA(t,Us(t));function YnA(t,e){return Zc(t,A=>t.moveByGroup(A,e))}var aFA=t=>YnA(t,!Us(t)),cFA=t=>YnA(t,Us(t));var gFA=t=>Zc(t,e=>Lw(t.state,e,!Us(t))),lFA=t=>Zc(t,e=>Lw(t.state,e,Us(t)));function TnA(t,e){return Zc(t,A=>t.moveVertically(A,e))}var HnA=t=>TnA(t,!1),OnA=t=>TnA(t,!0);function znA(t,e){return Zc(t,A=>t.moveVertically(A,e,_nA(t).height))}var mnA=t=>znA(t,!1),pnA=t=>znA(t,!0),IFA=t=>Zc(t,e=>J1(t,e,!0)),CFA=t=>Zc(t,e=>J1(t,e,!1)),dFA=t=>Zc(t,e=>J1(t,e,!Us(t))),BFA=t=>Zc(t,e=>J1(t,e,Us(t))),EFA=t=>Zc(t,e=>ae.cursor(t.lineBlockAt(e.head).from)),QFA=t=>Zc(t,e=>ae.cursor(t.lineBlockAt(e.head).to)),DnA=({state:t,dispatch:e})=>(e(Wl(t,{anchor:0})),!0),wnA=({state:t,dispatch:e})=>(e(Wl(t,{anchor:t.doc.length})),!0),ynA=({state:t,dispatch:e})=>(e(Wl(t,{anchor:t.selection.main.anchor,head:0})),!0),vnA=({state:t,dispatch:e})=>(e(Wl(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0),uFA=({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0),hFA=({state:t,dispatch:e})=>{let A=xw(t).map(({from:i,to:n})=>ae.range(i,Math.min(n+1,t.doc.length)));return e(t.update({selection:ae.create(A),userEvent:"select"})),!0},fFA=({state:t,dispatch:e})=>{let A=iQ(t.selection,i=>{let n=ns(t),o=n.resolveStack(i.from,1);if(i.empty){let r=n.resolveStack(i.from,-1);r.node.from>=o.node.from&&r.node.to<=o.node.to&&(o=r)}for(let r=o;r;r=r.next){let{node:s}=r;if((s.from=i.to||s.to>i.to&&s.from<=i.from)&&r.next)return ae.range(s.to,s.from)}return i});return A.eq(t.selection)?!1:(e(Wl(t,A)),!0)},mFA=({state:t,dispatch:e})=>{let A=t.selection,i=null;return A.ranges.length>1?i=ae.create([A.main]):A.main.empty||(i=ae.create([ae.cursor(A.main.head)])),i?(e(Wl(t,i)),!0):!1};function S3(t,e){if(t.state.readOnly)return!1;let A="delete.selection",{state:i}=t,n=i.changeByRange(o=>{let{from:r,to:s}=o;if(r==s){let a=e(o);ar&&(A="delete.forward",a=Sw(t,a,!0)),r=Math.min(r,a),s=Math.max(s,a)}else r=Sw(t,r,!1),s=Sw(t,s,!0);return r==s?{range:o}:{changes:{from:r,to:s},range:ae.cursor(r,rn(t)))i.between(e,e,(n,o)=>{ne&&(e=A?o:n)});return e}var PnA=(t,e,A)=>S3(t,i=>{let n=i.from,{state:o}=t,r=o.doc.lineAt(n),s,a;if(A&&!e&&n>r.from&&nPnA(t,!1,!0);var jnA=t=>PnA(t,!0,!1),qnA=(t,e)=>S3(t,A=>{let i=A.head,{state:n}=t,o=n.doc.lineAt(i),r=n.charCategorizer(i);for(let s=null;;){if(i==(e?o.to:o.from)){i==A.head&&o.number!=(e?n.doc.lines:1)&&(i+=e?1:-1);break}let a=br(o.text,i-o.from,e)+o.from,c=o.text.slice(Math.min(i,a)-o.from,Math.max(i,a)-o.from),g=r(c);if(s!=null&&g!=s)break;(c!=" "||i!=A.head)&&(s=g),i=a}return i}),VnA=t=>qnA(t,!1),pFA=t=>qnA(t,!0),DFA=t=>S3(t,e=>{let A=t.lineBlockAt(e.head).to;return e.headS3(t,e=>{let A=t.moveToLineBoundary(e,!1).head;return e.head>A?A:Math.max(0,e.head-1)}),yFA=t=>S3(t,e=>{let A=t.moveToLineBoundary(e,!0).head;return e.head{if(t.readOnly)return!1;let A=t.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:tn.of(["",""])},range:ae.cursor(i.from)}));return e(t.update(A,{scrollIntoView:!0,userEvent:"input"})),!0},MFA=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let A=t.changeByRange(i=>{if(!i.empty||i.from==0||i.from==t.doc.length)return{range:i};let n=i.from,o=t.doc.lineAt(n),r=n==o.from?n-1:br(o.text,n-o.from,!1)+o.from,s=n==o.to?n+1:br(o.text,n-o.from,!0)+o.from;return{changes:{from:r,to:s,insert:t.doc.slice(n,s).append(t.doc.slice(r,n))},range:ae.cursor(s)}});return A.changes.empty?!1:(e(t.update(A,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function xw(t){let e=[],A=-1;for(let i of t.selection.ranges){let n=t.doc.lineAt(i.from),o=t.doc.lineAt(i.to);if(!i.empty&&i.to==o.from&&(o=t.doc.lineAt(i.to-1)),A>=n.number){let r=e[e.length-1];r.to=o.to,r.ranges.push(i)}else e.push({from:n.from,to:o.to,ranges:[i]});A=o.number+1}return e}function ZnA(t,e,A){if(t.readOnly)return!1;let i=[],n=[];for(let o of xw(t)){if(A?o.to==t.doc.length:o.from==0)continue;let r=t.doc.lineAt(A?o.to+1:o.from-1),s=r.length+1;if(A){i.push({from:o.to,to:r.to},{from:o.from,insert:r.text+t.lineBreak});for(let a of o.ranges)n.push(ae.range(Math.min(t.doc.length,a.anchor+s),Math.min(t.doc.length,a.head+s)))}else{i.push({from:r.from,to:o.from},{from:o.to,insert:t.lineBreak+r.text});for(let a of o.ranges)n.push(ae.range(a.anchor-s,a.head-s))}}return i.length?(e(t.update({changes:i,scrollIntoView:!0,selection:ae.create(n,t.selection.mainIndex),userEvent:"move.line"})),!0):!1}var bFA=({state:t,dispatch:e})=>ZnA(t,e,!1),kFA=({state:t,dispatch:e})=>ZnA(t,e,!0);function WnA(t,e,A){if(t.readOnly)return!1;let i=[];for(let n of xw(t))A?i.push({from:n.from,insert:t.doc.slice(n.from,n.to)+t.lineBreak}):i.push({from:n.to,insert:t.lineBreak+t.doc.slice(n.from,n.to)});return e(t.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}var SFA=({state:t,dispatch:e})=>WnA(t,e,!1),RFA=({state:t,dispatch:e})=>WnA(t,e,!0),LFA=t=>{if(t.state.readOnly)return!1;let{state:e}=t,A=e.changes(xw(e).map(({from:n,to:o})=>(n>0?n--:o{let o;if(t.lineWrapping){let r=t.lineBlockAt(n.head),s=t.coordsAtPos(n.head,n.assoc||1);s&&(o=r.bottom+t.documentTop-s.bottom+t.defaultLineHeight/2)}return t.moveVertically(n,!0,o)}).map(A);return t.dispatch({changes:A,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function xFA(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let A=ns(t).resolveInner(e),i=A.childBefore(e),n=A.childAfter(e),o;return i&&n&&i.to<=e&&n.from>=e&&(o=i.type.prop(di.closedBy))&&o.indexOf(n.name)>-1&&t.doc.lineAt(i.to).from==t.doc.lineAt(n.from).from&&!/\S/.test(t.sliceDoc(i.to,n.from))?{from:i.to,to:n.from}:null}var MnA=XnA(!1),NFA=XnA(!0);function XnA(t){return({state:e,dispatch:A})=>{if(e.readOnly)return!1;let i=e.changeByRange(n=>{let{from:o,to:r}=n,s=e.doc.lineAt(o),a=!t&&o==r&&xFA(e,o);t&&(o=r=(r<=s.to?s:e.doc.lineAt(r)).to);let c=new KC(e,{simulateBreak:o,simulateDoubleBreak:!!a}),g=kw(c,o);for(g==null&&(g=O0(/^\s*/.exec(e.doc.lineAt(o).text)[0],e.tabSize));rs.from&&o{let n=[];for(let r=i.from;r<=i.to;){let s=t.doc.lineAt(r);s.number>A&&(i.empty||i.to>s.from)&&(e(s,n,i),A=s.number),r=s.to+1}let o=t.changes(n);return{changes:n,range:ae.range(o.mapPos(i.anchor,1),o.mapPos(i.head,1))}})}var FFA=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let A=Object.create(null),i=new KC(t,{overrideIndentation:o=>{let r=A[o];return r??-1}}),n=s_(t,(o,r,s)=>{let a=kw(i,o.from);if(a==null)return;/\S/.test(o.text)||(a=0);let c=/^\s*/.exec(o.text)[0],g=eQ(t,a);(c!=g||s.fromt.readOnly?!1:(e(t.update(s_(t,(A,i)=>{i.push({from:A.from,insert:t.facet(JC)})}),{userEvent:"input.indent"})),!0),AoA=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(s_(t,(A,i)=>{let n=/^\s*/.exec(A.text)[0];if(!n)return;let o=O0(n,t.tabSize),r=0,s=eQ(t,Math.max(0,o-Ug(t)));for(;r(t.setTabFocusMode(),!0);var GFA=[{key:"Ctrl-b",run:SnA,shift:UnA,preventDefault:!0},{key:"Ctrl-f",run:RnA,shift:JnA},{key:"Ctrl-p",run:NnA,shift:HnA},{key:"Ctrl-n",run:FnA,shift:OnA},{key:"Ctrl-a",run:nFA,shift:EFA},{key:"Ctrl-e",run:oFA,shift:QFA},{key:"Ctrl-d",run:jnA},{key:"Ctrl-h",run:n_},{key:"Ctrl-k",run:DFA},{key:"Ctrl-Alt-h",run:VnA},{key:"Ctrl-o",run:vFA},{key:"Ctrl-t",run:MFA},{key:"Ctrl-v",run:i_}],KFA=[{key:"ArrowLeft",run:SnA,shift:UnA,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:VNA,shift:aFA,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:tFA,shift:dFA,preventDefault:!0},{key:"ArrowRight",run:RnA,shift:JnA,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:ZNA,shift:cFA,preventDefault:!0},{mac:"Cmd-ArrowRight",run:iFA,shift:BFA,preventDefault:!0},{key:"ArrowUp",run:NnA,shift:HnA,preventDefault:!0},{mac:"Cmd-ArrowUp",run:DnA,shift:ynA},{mac:"Ctrl-ArrowUp",run:fnA,shift:mnA},{key:"ArrowDown",run:FnA,shift:OnA,preventDefault:!0},{mac:"Cmd-ArrowDown",run:wnA,shift:vnA},{mac:"Ctrl-ArrowDown",run:i_,shift:pnA},{key:"PageUp",run:fnA,shift:mnA},{key:"PageDown",run:i_,shift:pnA},{key:"Home",run:eFA,shift:CFA,preventDefault:!0},{key:"Mod-Home",run:DnA,shift:ynA},{key:"End",run:AFA,shift:IFA,preventDefault:!0},{key:"Mod-End",run:wnA,shift:vnA},{key:"Enter",run:MnA,shift:MnA},{key:"Mod-a",run:uFA},{key:"Backspace",run:n_,shift:n_},{key:"Delete",run:jnA},{key:"Mod-Backspace",mac:"Alt-Backspace",run:VnA},{key:"Mod-Delete",mac:"Alt-Delete",run:pFA},{mac:"Mod-Backspace",run:wFA},{mac:"Mod-Delete",run:yFA}].concat(GFA.map(t=>({mac:t.key,run:t.run,shift:t.shift}))),eoA=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:XNA,shift:gFA},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:$NA,shift:lFA},{key:"Alt-ArrowUp",run:bFA},{key:"Shift-Alt-ArrowUp",run:SFA},{key:"Alt-ArrowDown",run:kFA},{key:"Shift-Alt-ArrowDown",run:RFA},{key:"Escape",run:mFA},{key:"Mod-Enter",run:NFA},{key:"Alt-l",mac:"Ctrl-l",run:hFA},{key:"Mod-i",run:fFA,preventDefault:!0},{key:"Mod-[",run:AoA},{key:"Mod-]",run:$nA},{key:"Mod-Alt-\\",run:FFA},{key:"Shift-Mod-k",run:LFA},{key:"Shift-Mod-\\",run:sFA},{key:"Mod-/",run:TNA},{key:"Alt-A",run:ONA},{key:"Ctrl-m",mac:"Shift-Alt-m",run:_FA}].concat(KFA),toA={key:"Tab",run:$nA,shift:AoA};var _w=class{constructor(e,A,i){this.from=e,this.to=A,this.diagnostic=i}},YC=class t{constructor(e,A,i){this.diagnostics=e,this.panel=A,this.selected=i}static init(e,A,i){let n=i.facet(Xl).markerFilter;n&&(e=n(e,i));let o=e.slice().sort((g,I)=>g.from-I.from||g.to-I.to),r=new fs,s=[],a=0;for(let g=0;;){let I=g==o.length?null:o[g];if(!I&&!s.length)break;let C,d;for(s.length?(C=a,d=s.reduce((E,u)=>Math.min(E,u.to),I&&I.from>C?I.from:1e8)):(C=I.from,d=I.to,s.push(I),g++);gE.from||E.to==C))s.push(E),g++,d=Math.min(E.to,d);else{d=Math.min(E.from,d);break}}let B=IoA(s);if(s.some(E=>E.from==E.to||E.from==E.to-1&&i.doc.lineAt(E.from).to==E.from))r.add(C,C,ht.widget({widget:new a_(B),diagnostics:s.slice()}));else{let E=s.reduce((u,h)=>h.markClass?u+" "+h.markClass:u,"");r.add(C,d,ht.mark({class:"cm-lintRange cm-lintRange-"+B+E,diagnostics:s.slice(),inclusiveEnd:s.some(u=>u.to>d)}))}a=d;for(let E=0;E{if(!(e&&r.diagnostics.indexOf(e)<0))if(!i)i=new _w(n,o,e||r.diagnostics[0]);else{if(r.diagnostics.indexOf(i.diagnostic)<0)return!1;i=new _w(i.from,o,i.diagnostic)}}),i}function noA(t,e){let A=e.pos,i=e.end||A,n=t.state.facet(Xl).hideOn(t,A,i);if(n!=null)return n;let o=t.startState.doc.lineAt(e.pos);return!!(t.effects.some(r=>r.is(Uw))||t.changes.touchesRange(o.from,Math.max(o.to,i)))}function ooA(t,e){return t.field(dc,!1)?e:e.concat(Ki.appendConfig.of(doA))}function UFA(t,e){return{effects:ooA(t,[Uw.of(e)])}}var Uw=Ki.define(),g_=Ki.define(),roA=Ki.define(),dc=tr.define({create(){return new YC(ht.none,null,null)},update(t,e){if(e.docChanged&&t.diagnostics.size){let A=t.diagnostics.map(e.changes),i=null,n=t.panel;if(t.selected){let o=e.changes.mapPos(t.selected.from,1);i=nQ(A,t.selected.diagnostic,o)||nQ(A,null,o)}!A.size&&n&&e.state.facet(Xl).autoPanel&&(n=null),t=new YC(A,n,i)}for(let A of e.effects)if(A.is(Uw)){let i=e.state.facet(Xl).autoPanel?A.value.length?R3.open:null:t.panel;t=YC.init(A.value,i,e.state)}else A.is(g_)?t=new YC(t.diagnostics,A.value?R3.open:null,t.selected):A.is(roA)&&(t=new YC(t.diagnostics,t.panel,A.value));return t},provide:t=>[NC.from(t,e=>e.panel),Pt.decorations.from(t,e=>e.diagnostics)]});var JFA=ht.mark({class:"cm-lintRange cm-lintRange-active"});function YFA(t,e,A){let{diagnostics:i}=t.state.field(dc),n,o=-1,r=-1;i.between(e-(A<0?1:0),e+(A>0?1:0),(a,c,{spec:g})=>{if(e>=a&&e<=c&&(a==c||(e>a||A>0)&&(eloA(t,A,!1)))}var TFA=t=>{let e=t.state.field(dc,!1);(!e||!e.panel)&&t.dispatch({effects:ooA(t.state,[g_.of(!0)])});let A=FC(t,R3.open);return A&&A.dom.querySelector(".cm-panel-lint ul").focus(),!0},ioA=t=>{let e=t.state.field(dc,!1);return!e||!e.panel?!1:(t.dispatch({effects:g_.of(!1)}),!0)},HFA=t=>{let e=t.state.field(dc,!1);if(!e)return!1;let A=t.state.selection.main,i=e.diagnostics.iter(A.to+1);return!i.value&&(i=e.diagnostics.iter(0),!i.value||i.from==A.from&&i.to==A.to)?!1:(t.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)};var aoA=[{key:"Mod-Shift-m",run:TFA,preventDefault:!0},{key:"F8",run:HFA}],OFA=Bo.fromClass(class{constructor(t){this.view=t,this.timeout=-1,this.set=!0;let{delay:e}=t.state.facet(Xl);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){clearTimeout(this.timeout);let t=Date.now();if(tPromise.resolve(i(this.view))),i=>{this.view.state.doc==e.doc&&this.view.dispatch(UFA(this.view.state,i.reduce((n,o)=>n.concat(o))))},i=>{is(this.view.state,i)})}}update(t){let e=t.state.facet(Xl);(t.docChanged||e!=t.startState.facet(Xl)||e.needsRefresh&&e.needsRefresh(t))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}});function zFA(t,e,A){let i=[],n=-1;for(let o of t)o.then(r=>{i.push(r),clearTimeout(n),i.length==t.length?e(i):n=setTimeout(()=>e(i),200)},A)}var Xl=qe.define({combine(t){return Object.assign({sources:t.map(e=>e.source).filter(e=>e!=null)},ts(t.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{needsRefresh:(e,A)=>e?A?i=>e(i)||A(i):e:A}))}});function coA(t,e={}){return[Xl.of({source:t,config:e}),OFA,doA]}function goA(t){let e=[];if(t)A:for(let{name:A}of t){for(let i=0;io.toLowerCase()==n.toLowerCase())){e.push(n);continue A}}e.push("")}return e}function loA(t,e,A){var i;let n=A?goA(e.actions):[];return _n("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},_n("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(t):e.message),(i=e.actions)===null||i===void 0?void 0:i.map((o,r)=>{let s=!1,a=C=>{if(C.preventDefault(),s)return;s=!0;let d=nQ(t.state.field(dc).diagnostics,e);d&&o.apply(t,d.from,d.to)},{name:c}=o,g=n[r]?c.indexOf(n[r]):-1,I=g<0?c:[c.slice(0,g),_n("u",c.slice(g,g+1)),c.slice(g+1)];return _n("button",{type:"button",class:"cm-diagnosticAction",onclick:a,onmousedown:a,"aria-label":` Action: ${c}${g<0?"":` (access key "${n[r]})"`}.`},I)}),e.source&&_n("div",{class:"cm-diagnosticSource"},e.source))}var a_=class extends Cc{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return _n("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}},Gw=class{constructor(e,A){this.diagnostic=A,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=loA(e,A,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}},R3=class t{constructor(e){this.view=e,this.items=[];let A=n=>{if(n.keyCode==27)ioA(this.view),this.view.focus();else if(n.keyCode==38||n.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(n.keyCode==40||n.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(n.keyCode==36)this.moveSelection(0);else if(n.keyCode==35)this.moveSelection(this.items.length-1);else if(n.keyCode==13)this.view.focus();else if(n.keyCode>=65&&n.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:o}=this.items[this.selectedIndex],r=goA(o.actions);for(let s=0;s{for(let o=0;oioA(this.view)},"\xD7")),this.update()}get selectedIndex(){let e=this.view.state.field(dc).selected;if(!e)return-1;for(let A=0;A{for(let g of c.diagnostics){if(r.has(g))continue;r.add(g);let I=-1,C;for(let d=i;di&&(this.items.splice(i,I-i),n=!0)),A&&C.diagnostic==A.diagnostic?C.dom.hasAttribute("aria-selected")||(C.dom.setAttribute("aria-selected","true"),o=C):C.dom.hasAttribute("aria-selected")&&C.dom.removeAttribute("aria-selected"),i++}});i({sel:o.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:s,panel:a})=>{let c=a.height/this.list.offsetHeight;s.topa.bottom&&(this.list.scrollTop+=(s.bottom-a.bottom)/c)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),n&&this.sync()}sync(){let e=this.list.firstChild;function A(){let i=e;e=i.nextSibling,i.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)A();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)A()}moveSelection(e){if(this.selectedIndex<0)return;let A=this.view.state.field(dc),i=nQ(A.diagnostics,this.items[e].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:roA.of(i)})}static open(e){return new t(e)}};function Fw(t,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(t)}')`}function Nw(t){return Fw(``,'width="6" height="3"')}var PFA=Pt.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Nw("#d11")},".cm-lintRange-warning":{backgroundImage:Nw("orange")},".cm-lintRange-info":{backgroundImage:Nw("#999")},".cm-lintRange-hint":{backgroundImage:Nw("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function jFA(t){return t=="error"?4:t=="warning"?3:t=="info"?2:1}function IoA(t){let e="hint",A=1;for(let i of t){let n=jFA(i.severity);n>A&&(A=n,e=i.severity)}return e}var Kw=class extends Ga{constructor(e){super(),this.diagnostics=e,this.severity=IoA(e)}toDOM(e){let A=document.createElement("div");A.className="cm-lint-marker cm-lint-marker-"+this.severity;let i=this.diagnostics,n=e.state.facet(Jw).tooltipFilter;return n&&(i=n(i,e.state)),i.length&&(A.onmouseover=()=>VFA(e,A,i)),A}};function qFA(t,e){let A=i=>{let n=e.getBoundingClientRect();if(!(i.clientX>n.left-10&&i.clientXn.top-10&&i.clientYe.getBoundingClientRect()}}})}),e.onmouseout=e.onmousemove=null,qFA(t,e)}let{hoverTime:n}=t.state.facet(Jw),o=setTimeout(i,n);e.onmouseout=()=>{clearTimeout(o),e.onmouseout=e.onmousemove=null},e.onmousemove=()=>{clearTimeout(o),o=setTimeout(i,n)}}function ZFA(t,e){let A=Object.create(null);for(let n of e){let o=t.lineAt(n.from);(A[o.from]||(A[o.from]=[])).push(n)}let i=[];for(let n in A)i.push(new Kw(A[n]).range(+n));return Io.of(i,!0)}var WFA=Qw({class:"cm-gutter-lint",markers:t=>t.state.field(c_),widgetMarker:(t,e,A)=>{let i=[];return t.state.field(c_).between(A.from,A.to,(n,o,r)=>{n>A.from&&ni.is(l_)?i.value:A,t)},provide:t=>qE.from(t)}),XFA=Pt.baseTheme({".cm-gutter-lint":{width:"1.4em","& .cm-gutterElement":{padding:".2em"}},".cm-lint-marker":{width:"1em",height:"1em"},".cm-lint-marker-info":{content:Fw('')},".cm-lint-marker-warning":{content:Fw('')},".cm-lint-marker-error":{content:Fw('')}}),doA=[dc,Pt.decorations.compute([dc],t=>{let{selected:e,panel:A}=t.field(dc);return!e||!A||e.from==e.to?ht.none:ht.set([JFA.range(e.from,e.to)])}),FiA(YFA,{hideOn:noA}),PFA],Jw=qe.define({combine(t){return ts(t,{hoverTime:300,markerFilter:null,tooltipFilter:null})}});function BoA(t={}){return[Jw.of(t),c_,WFA,XFA,CoA]}var C_=class t{constructor(e,A,i,n,o,r,s,a,c,g=0,I){this.p=e,this.stack=A,this.state=i,this.reducePos=n,this.pos=o,this.score=r,this.buffer=s,this.bufferBase=a,this.curContext=c,this.lookAhead=g,this.parent=I}toString(){return`[${this.stack.filter((e,A)=>A%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,A,i=0){let n=e.parser.context;return new t(e,[],A,i,i,0,[],0,n?new Yw(n,n.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,A){this.stack.push(this.state,A,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var A;let i=e>>19,n=e&65535,{parser:o}=this.p,r=this.reducePos=2e3&&!(!((A=this.p.parser.nodeSet.types[n])===null||A===void 0)&&A.isAnonymous)&&(c==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=g):this.p.lastBigReductionSizea;)this.stack.pop();this.reduceContext(n,c)}storeNode(e,A,i,n=4,o=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&r.buffer[s-4]==0&&r.buffer[s-1]>-1){if(A==i)return;if(r.buffer[s-2]>=A){r.buffer[s-2]=i;return}}}if(!o||this.pos==i)this.buffer.push(e,A,i,n);else{let r=this.buffer.length;if(r>0&&this.buffer[r-4]!=0){let s=!1;for(let a=r;a>0&&this.buffer[a-2]>i;a-=4)if(this.buffer[a-1]>=0){s=!0;break}if(s)for(;r>0&&this.buffer[r-2]>i;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,n>4&&(n-=4)}this.buffer[r]=e,this.buffer[r+1]=A,this.buffer[r+2]=i,this.buffer[r+3]=n}}shift(e,A,i,n){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let o=e,{parser:r}=this.p;(n>this.pos||A<=r.maxNode)&&(this.pos=n,r.stateFlag(o,1)||(this.reducePos=n)),this.pushState(o,i),this.shiftContext(A,i),A<=r.maxNode&&this.buffer.push(A,i,n,4)}else this.pos=n,this.shiftContext(A,i),A<=this.p.parser.maxNode&&this.buffer.push(A,i,n,4)}apply(e,A,i,n){e&65536?this.reduce(e):this.shift(e,A,i,n)}useNode(e,A){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);let n=this.pos;this.reducePos=this.pos=n+e.length,this.pushState(A,n),this.buffer.push(i,n,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,A=e.buffer.length;for(;A>0&&e.buffer[A-2]>e.reducePos;)A-=4;let i=e.buffer.slice(A),n=e.bufferBase+A;for(;e&&n==e.bufferBase;)e=e.parent;return new t(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,n,this.curContext,this.lookAhead,e)}recoverByDelete(e,A){let i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,A,4),this.storeNode(0,this.pos,A,i?8:4),this.pos=this.reducePos=A,this.score-=190}canShift(e){for(let A=new d_(this);;){let i=this.p.parser.stateSlot(A.state,4)||this.p.parser.hasAction(A.state,e);if(i==0)return!1;if((i&65536)==0)return!0;A.reduce(i)}}recoverByInsert(e){if(this.stack.length>=300)return[];let A=this.p.parser.nextStates(this.state);if(A.length>8||this.stack.length>=120){let n=[];for(let o=0,r;oa&1&&s==r)||n.push(A[o],r)}A=n}let i=[];for(let n=0;n>19,n=A&65535,o=this.stack.length-i*3;if(o<0||e.getGoto(this.stack[o],n,!1)<0){let r=this.findForcedReduction();if(r==null)return!1;A=r}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(A),!0}findForcedReduction(){let{parser:e}=this.p,A=[],i=(n,o)=>{if(!A.includes(n))return A.push(n),e.allActions(n,r=>{if(!(r&393216))if(r&65536){let s=(r>>19)-o;if(s>1){let a=r&65535,c=this.stack.length-s*3;if(c>=0&&e.getGoto(this.stack[c],a,!1)>=0)return s<<19|65536|a}}else{let s=i(r,o+1);if(s!=null)return s}})};return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let A=0;Athis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},Yw=class{constructor(e,A){this.tracker=e,this.context=A,this.hash=e.strict?e.hash(A):0}},d_=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let A=e&65535,i=e>>19;i==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(i-1)*3;let n=this.start.p.parser.getGoto(this.stack[this.base-3],A,!0);this.state=n}},B_=class t{constructor(e,A,i){this.stack=e,this.pos=A,this.index=i,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,A=e.bufferBase+e.buffer.length){return new t(e,A,A-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new t(this.stack,this.pos,this.index)}};function L3(t,e=Uint16Array){if(typeof t!="string")return t;let A=null;for(let i=0,n=0;i=92&&r--,r>=34&&r--;let a=r-32;if(a>=46&&(a-=46,s=!0),o+=a,s)break;o*=46}A?A[n++]=o:A=new e(o)}return A}var oQ=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},EoA=new oQ,E_=class{constructor(e,A){this.input=e,this.ranges=A,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=EoA,this.rangeIndex=0,this.pos=this.chunkPos=A[0].from,this.range=A[0],this.end=A[A.length-1].to,this.readNext()}resolveOffset(e,A){let i=this.range,n=this.rangeIndex,o=this.pos+e;for(;oi.to:o>=i.to;){if(n==this.ranges.length-1)return null;let r=this.ranges[++n];o+=r.from-i.to,i=r}return o}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,A.from);return this.end}peek(e){let A=this.chunkOff+e,i,n;if(A>=0&&A=this.chunk2Pos&&is.to&&(this.chunk2=this.chunk2.slice(0,s.to-i)),n=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),n}acceptToken(e,A=0){let i=A?this.resolveOffset(A,-1):this.pos;if(i==null||i=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,A){if(A?(this.token=A,A.start=e,A.lookAhead=e+1,A.value=A.extended=-1):this.token=EoA,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&A<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,A-this.chunkPos);if(e>=this.chunk2Pos&&A<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,A-this.chunk2Pos);if(e>=this.range.from&&A<=this.range.to)return this.input.read(e,A);let i="";for(let n of this.ranges){if(n.from>=A)break;n.to>e&&(i+=this.input.read(Math.max(n.from,e),Math.min(n.to,A)))}return i}},Y1=class{constructor(e,A){this.data=e,this.id=A}token(e,A){let{parser:i}=A.p;moA(this.data,e,A,this.id,i.data,i.tokenPrecTable)}};Y1.prototype.contextual=Y1.prototype.fallback=Y1.prototype.extend=!1;var Q_=class{constructor(e,A,i){this.precTable=A,this.elseToken=i,this.data=typeof e=="string"?L3(e):e}token(e,A){let i=e.pos,n=0;for(;;){let o=e.next<0,r=e.resolveOffset(1,1);if(moA(this.data,e,A,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(o||n++,r==null)break;e.reset(r,e.token)}n&&(e.reset(i,e.token),e.acceptToken(this.elseToken,n))}};Q_.prototype.contextual=Y1.prototype.fallback=Y1.prototype.extend=!1;function moA(t,e,A,i,n,o){let r=0,s=1<0){let B=t[d];if(a.allows(B)&&(e.token.value==-1||e.token.value==B||A_A(B,e.token.value,n,o))){e.acceptToken(B);break}}let g=e.next,I=0,C=t[r+2];if(e.next<0&&C>I&&t[c+C*3-3]==65535){r=t[c+C*3-1];continue A}for(;I>1,B=c+d+(d<<1),E=t[B],u=t[B+1]||65536;if(g=u)I=d+1;else{r=t[B+2],e.advance();continue A}}break}}function QoA(t,e,A){for(let i=e,n;(n=t[i])!=65535;i++)if(n==A)return i-e;return-1}function A_A(t,e,A,i){let n=QoA(A,i,e);return n<0||QoA(A,i,t)e)&&!i.type.isError)return A<0?Math.max(0,Math.min(i.to-1,e-25)):Math.min(t.length,Math.max(i.from+1,e+25));if(A<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return A<0?0:t.length}}var u_=class{constructor(e,A){this.fragments=e,this.nodeSet=A,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?uoA(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?uoA(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=r,null;if(o instanceof wr){if(r==e){if(r=Math.max(this.safeFrom,e)&&(this.trees.push(o),this.start.push(r),this.index.push(0))}else this.index[A]++,this.nextStart=r+o.length}}},h_=class{constructor(e,A){this.stream=A,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(i=>new oQ)}getActions(e){let A=0,i=null,{parser:n}=e.p,{tokenizers:o}=n,r=n.stateSlot(e.state,3),s=e.curContext?e.curContext.hash:0,a=0;for(let c=0;cI.end+25&&(a=Math.max(I.lookAhead,a)),I.value!=0)){let C=A;if(I.extended>-1&&(A=this.addActions(e,I.extended,I.end,A)),A=this.addActions(e,I.value,I.end,A),!g.extend&&(i=I,A>C))break}}for(;this.actions.length>A;)this.actions.pop();return a&&e.setLookAhead(a),!i&&e.pos==this.stream.end&&(i=new oQ,i.value=e.p.parser.eofTerm,i.start=i.end=e.pos,A=this.addActions(e,i.value,i.end,A)),this.mainToken=i,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let A=new oQ,{pos:i,p:n}=e;return A.start=i,A.end=Math.min(i+1,n.stream.end),A.value=i==n.stream.end?n.parser.eofTerm:0,A}updateCachedToken(e,A,i){let n=this.stream.clipPos(i.pos);if(A.token(this.stream.reset(n,e),i),e.value>-1){let{parser:o}=i.p;for(let r=0;r=0&&i.p.parser.dialect.allows(s>>1)){(s&1)==0?e.value=s>>1:e.extended=s>>1;break}}}else e.value=0,e.end=this.stream.clipPos(n+1)}putAction(e,A,i,n){for(let o=0;oe.bufferLength*4?new u_(i,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,A=this.minStackPos,i=this.stacks=[],n,o;if(this.bigReductionCount>300&&e.length==1){let[r]=e;for(;r.forceReduce()&&r.stack.length&&r.stack[r.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let r=0;rA)i.push(s);else{if(this.advanceStack(s,i,e))continue;{n||(n=[],o=[]),n.push(s);let a=this.tokens.getMainToken(s);o.push(a.value,a.end)}}break}}if(!i.length){let r=n&&e_A(n);if(r)return Bc&&console.log("Finish with "+this.stackID(r)),this.stackToTree(r);if(this.parser.strict)throw Bc&&n&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+A);this.recovering||(this.recovering=5)}if(this.recovering&&n){let r=this.stoppedAt!=null&&n[0].pos>this.stoppedAt?n[0]:this.runRecovery(n,o,i);if(r)return Bc&&console.log("Force-finish "+this.stackID(r)),this.stackToTree(r.forceAll())}if(this.recovering){let r=this.recovering==1?1:this.recovering*3;if(i.length>r)for(i.sort((s,a)=>a.score-s.score);i.length>r;)i.pop();i.some(s=>s.reducePos>A)&&this.recovering--}else if(i.length>1){A:for(let r=0;r500&&c.buffer.length>500)if((s.score-c.score||s.buffer.length-c.buffer.length)>0)i.splice(a--,1);else{i.splice(r--,1);continue A}}}i.length>12&&i.splice(12,i.length-12)}this.minStackPos=i[0].pos;for(let r=1;r ":"";if(this.stoppedAt!=null&&n>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,g=c?e.curContext.hash:0;for(let I=this.fragments.nodeAt(n);I;){let C=this.parser.nodeSet.types[I.type.id]==I.type?o.getGoto(e.state,I.type.id):-1;if(C>-1&&I.length&&(!c||(I.prop(di.contextHash)||0)==g))return e.useNode(I,C),Bc&&console.log(r+this.stackID(e)+` (via reuse of ${o.getName(I.type.id)})`),!0;if(!(I instanceof wr)||I.children.length==0||I.positions[0]>0)break;let d=I.children[0];if(d instanceof wr&&I.positions[0]==0)I=d;else break}}let s=o.stateSlot(e.state,4);if(s>0)return e.reduce(s),Bc&&console.log(r+this.stackID(e)+` (via always-reduce ${o.getName(s&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let c=0;cn?A.push(B):i.push(B)}return!1}advanceFully(e,A){let i=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return hoA(e,A),!0}}runRecovery(e,A,i){let n=null,o=!1;for(let r=0;r ":"";if(s.deadEnd&&(o||(o=!0,s.restart(),Bc&&console.log(g+this.stackID(s)+" (restarted)"),this.advanceFully(s,i))))continue;let I=s.split(),C=g;for(let d=0;I.forceReduce()&&d<10&&(Bc&&console.log(C+this.stackID(I)+" (via force-reduce)"),!this.advanceFully(I,i));d++)Bc&&(C=this.stackID(I)+" -> ");for(let d of s.recoverByInsert(a))Bc&&console.log(g+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,i);this.stream.end>s.pos?(c==s.pos&&(c++,a=0),s.recoverByDelete(a,c),Bc&&console.log(g+this.stackID(s)+` (via recover-delete ${this.parser.getName(a)})`),hoA(s,i)):(!n||n.scoree.topRules[s][1]),n=[];for(let s=0;s=0)o(g,a,s[c++]);else{let I=s[c+-g];for(let C=-g;C>0;C--)o(s[c++],a,I);c++}}}this.nodeSet=new h3(A.map((s,a)=>Ks.define({name:a>=this.minRepeatTerm?void 0:s,id:a,props:n[a],top:i.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let r=L3(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let s=0;stypeof s=="number"?new Y1(r,s):s),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,A,i){let n=new f_(this,e,A,i);for(let o of this.wrappers)n=o(n,e,A,i);return n}getGoto(e,A,i=!1){let n=this.goto;if(A>=n[0])return-1;for(let o=n[A+1];;){let r=n[o++],s=r&1,a=n[o++];if(s&&i)return a;for(let c=o+(r>>1);o0}validAction(e,A){return!!this.allActions(e,i=>i==A?!0:null)}allActions(e,A){let i=this.stateSlot(e,4),n=i?A(i):void 0;for(let o=this.stateSlot(e,1);n==null;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=j0(this.data,o+2);else break;n=A(j0(this.data,o+1))}return n}nextStates(e){let A=[];for(let i=this.stateSlot(e,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=j0(this.data,i+2);else break;if((this.data[i+2]&1)==0){let n=this.data[i+1];A.some((o,r)=>r&1&&o==n)||A.push(this.data[i],n)}}return A}configure(e){let A=Object.assign(Object.create(t.prototype),this);if(e.props&&(A.nodeSet=this.nodeSet.extend(...e.props)),e.top){let i=this.topRules[e.top];if(!i)throw new RangeError(`Invalid top rule name ${e.top}`);A.top=i}return e.tokenizers&&(A.tokenizers=this.tokenizers.map(i=>{let n=e.tokenizers.find(o=>o.from==i);return n?n.to:i})),e.specializers&&(A.specializers=this.specializers.slice(),A.specializerSpecs=this.specializerSpecs.map((i,n)=>{let o=e.specializers.find(s=>s.from==i.external);if(!o)return i;let r=Object.assign(Object.assign({},i),{external:o.to});return A.specializers[n]=foA(r),r})),e.contextTracker&&(A.context=e.contextTracker),e.dialect&&(A.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(A.strict=e.strict),e.wrap&&(A.wrappers=A.wrappers.concat(e.wrap)),e.bufferLength!=null&&(A.bufferLength=e.bufferLength),A}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let A=this.dynamicPrecedences;return A==null?0:A[e]||0}parseDialect(e){let A=Object.keys(this.dialects),i=A.map(()=>!1);if(e)for(let o of e.split(" ")){let r=A.indexOf(o);r>=0&&(i[r]=!0)}let n=null;for(let o=0;oi)&&A.p.parser.stateFlag(A.state,2)&&(!e||e.scoret.external(A,i)<<1|e}return t.get}var t_A=yw({String:ke.string,Number:ke.number,"True False":ke.bool,PropertyName:ke.propertyName,Null:ke.null,", :":ke.separator,"[ ]":ke.squareBracket,"{ }":ke.brace}),poA=Tw.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"\u26A0 JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[t_A],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0});var i_A=vw.define({name:"json",parser:poA.configure({props:[ZF.add({Object:WF({except:/^\s*\}/}),Array:WF({except:/^\s*\]/})}),M3.add({"Object Array":onA})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function DoA(){return new Mw(i_A)}var woA=typeof String.prototype.normalize=="function"?t=>t.normalize("NFKD"):t=>t,H1=class{constructor(e,A,i=0,n=e.length,o,r){this.test=r,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,n),this.bufferStart=i,this.normalize=o?s=>o(woA(s)):woA,this.query=this.normalize(A)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return ms(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let A=V4(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=lc(e);let n=this.normalize(A);if(n.length)for(let o=0,r=i;;o++){let s=n.charCodeAt(o),a=this.match(s,r,this.bufferPos+this.bufferStart);if(o==n.length-1){if(a)return this.value=a,this;break}r==i&&othis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let A=this.matchPos<=this.to&&this.re.exec(this.curLine);if(A){let i=this.curLineStart+A.index,n=i+A[0].length;if(this.matchPos=qw(this.text,n+(i==n?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,n,A)))return this.value={from:i,to:n,match:A},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=i||n.to<=A){let s=new t(A,e.sliceString(A,i));return p_.set(e,s),s}if(n.from==A&&n.to==i)return n;let{text:o,from:r}=n;return r>A&&(o=e.sliceString(A,r)+o,r=A),n.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,A=this.re.exec(this.flat.text);if(A&&!A[0]&&A.index==e&&(this.re.lastIndex=e+1,A=this.re.exec(this.flat.text)),A){let i=this.flat.from+A.index,n=i+A[0].length;if((this.flat.to>=this.to||A.index+A[0].length<=this.flat.text.length-10)&&(!this.test||this.test(i,n,A)))return this.value={from:i,to:n,match:A},this.matchPos=qw(this.text,n+(i==n?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Pw.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}};typeof Symbol<"u"&&(zw.prototype[Symbol.iterator]=jw.prototype[Symbol.iterator]=function(){return this});function n_A(t){try{return new RegExp(t,k_),!0}catch{return!1}}function qw(t,e){if(e>=t.length)return e;let A=t.lineAt(e),i;for(;e=56320&&i<57344;)e++;return e}function D_(t){let e=String(t.state.doc.lineAt(t.state.selection.main.head).number),A=_n("input",{class:"cm-textfield",name:"line",value:e}),i=_n("form",{class:"cm-gotoLine",onkeydown:o=>{o.keyCode==27?(o.preventDefault(),t.dispatch({effects:x3.of(!1)}),t.focus()):o.keyCode==13&&(o.preventDefault(),n())},onsubmit:o=>{o.preventDefault(),n()}},_n("label",t.state.phrase("Go to line"),": ",A)," ",_n("button",{class:"cm-button",type:"submit"},t.state.phrase("go")),_n("button",{name:"close",onclick:()=>{t.dispatch({effects:x3.of(!1)}),t.focus()},"aria-label":t.state.phrase("close"),type:"button"},["\xD7"]));function n(){let o=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(A.value);if(!o)return;let{state:r}=t,s=r.doc.lineAt(r.selection.main.head),[,a,c,g,I]=o,C=g?+g.slice(1):0,d=c?+c:s.number;if(c&&I){let u=d/100;a&&(u=u*(a=="-"?-1:1)+s.number/r.doc.lines),d=Math.round(r.doc.lines*u)}else c&&a&&(d=d*(a=="-"?-1:1)+s.number);let B=r.doc.line(Math.max(1,Math.min(r.doc.lines,d))),E=ae.cursor(B.from+Math.max(0,Math.min(C,B.length)));t.dispatch({effects:[x3.of(!1),Pt.scrollIntoView(E.from,{y:"center"})],selection:E}),t.focus()}return{dom:i}}var x3=Ki.define(),yoA=tr.define({create(){return!0},update(t,e){for(let A of e.effects)A.is(x3)&&(t=A.value);return t},provide:t=>NC.from(t,e=>e?D_:null)}),o_A=t=>{let e=FC(t,D_);if(!e){let A=[x3.of(!0)];t.state.field(yoA,!1)==null&&A.push(Ki.appendConfig.of([yoA,r_A])),t.dispatch({effects:A}),e=FC(t,D_)}return e&&e.dom.querySelector("input").select(),!0},r_A=Pt.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px",position:"relative","& label":{fontSize:"80%"},"& [name=close]":{position:"absolute",top:"0",bottom:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:"0"}}}),s_A={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},koA=qe.define({combine(t){return ts(t,s_A,{highlightWordAroundCursor:(e,A)=>e||A,minSelectionLength:Math.min,maxMatches:Math.min})}});function SoA(t){let e=[I_A,l_A];return t&&e.push(koA.of(t)),e}var a_A=ht.mark({class:"cm-selectionMatch"}),c_A=ht.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function voA(t,e,A,i){return(A==0||t(e.sliceDoc(A-1,A))!=lo.Word)&&(i==e.doc.length||t(e.sliceDoc(i,i+1))!=lo.Word)}function g_A(t,e,A,i){return t(e.sliceDoc(A,A+1))==lo.Word&&t(e.sliceDoc(i-1,i))==lo.Word}var l_A=Bo.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.selectionSet||t.docChanged||t.viewportChanged)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=t.state.facet(koA),{state:A}=t,i=A.selection;if(i.ranges.length>1)return ht.none;let n=i.main,o,r=null;if(n.empty){if(!e.highlightWordAroundCursor)return ht.none;let a=A.wordAt(n.head);if(!a)return ht.none;r=A.charCategorizer(n.head),o=A.sliceDoc(a.from,a.to)}else{let a=n.to-n.from;if(a200)return ht.none;if(e.wholeWords){if(o=A.sliceDoc(n.from,n.to),r=A.charCategorizer(n.head),!(voA(r,A,n.from,n.to)&&g_A(r,A,n.from,n.to)))return ht.none}else if(o=A.sliceDoc(n.from,n.to),!o)return ht.none}let s=[];for(let a of t.visibleRanges){let c=new H1(A.doc,o,a.from,a.to);for(;!c.next().done;){let{from:g,to:I}=c.value;if((!r||voA(r,A,g,I))&&(n.empty&&g<=n.from&&I>=n.to?s.push(c_A.range(g,I)):(g>=n.to||I<=n.from)&&s.push(a_A.range(g,I)),s.length>e.maxMatches))return ht.none}}return ht.set(s)}},{decorations:t=>t.decorations}),I_A=Pt.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),C_A=({state:t,dispatch:e})=>{let{selection:A}=t,i=ae.create(A.ranges.map(n=>t.wordAt(n.head)||ae.cursor(n.head)),A.mainIndex);return i.eq(A)?!1:(e(t.update({selection:i})),!0)};function d_A(t,e){let{main:A,ranges:i}=t.selection,n=t.wordAt(A.head),o=n&&n.from==A.from&&n.to==A.to;for(let r=!1,s=new H1(t.doc,e,i[i.length-1].to);;)if(s.next(),s.done){if(r)return null;s=new H1(t.doc,e,0,Math.max(0,i[i.length-1].from-1)),r=!0}else{if(r&&i.some(a=>a.from==s.value.from))continue;if(o){let a=t.wordAt(s.value.from);if(!a||a.from!=s.value.from||a.to!=s.value.to)continue}return s.value}}var B_A=({state:t,dispatch:e})=>{let{ranges:A}=t.selection;if(A.some(o=>o.from===o.to))return C_A({state:t,dispatch:e});let i=t.sliceDoc(A[0].from,A[0].to);if(t.selection.ranges.some(o=>t.sliceDoc(o.from,o.to)!=i))return!1;let n=d_A(t,i);return n?(e(t.update({selection:t.selection.addRange(ae.range(n.from,n.to),!1),effects:Pt.scrollIntoView(n.to)})),!0):!1},TC=qe.define({combine(t){return ts(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new M_(e),scrollToMatch:e=>Pt.scrollIntoView(e)})}});function RoA(t){return t?[TC.of(t),b_]:b_}var Vw=class{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||n_A(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(A,i)=>i=="n"?` -`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new y_(this):new w_(this)}getCursor(e,A=0,i){let n=e.doc?e:Dr.create({doc:e});return i==null&&(i=n.doc.length),this.regexp?sQ(this,n,A,i):rQ(this,n,A,i)}},Zw=class{constructor(e){this.spec=e}};function rQ(t,e,A,i){return new H1(e.doc,t.unquoted,A,i,t.caseSensitive?void 0:n=>n.toLowerCase(),t.wholeWord?E_A(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function E_A(t,e){return(A,i,n,o)=>((o>A||o+n.length=A)return null;n.push(i.value)}return n}highlight(e,A,i,n){let o=rQ(this.spec,e,Math.max(0,A-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!o.next().done;)n(o.value.from,o.value.to)}};function sQ(t,e,A,i){return new zw(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:t.wholeWord?Q_A(e.charCategorizer(e.selection.main.head)):void 0},A,i)}function Ww(t,e){return t.slice(br(t,e,!1),e)}function Xw(t,e){return t.slice(e,br(t,e))}function Q_A(t){return(e,A,i)=>!i[0].length||(t(Ww(i.input,i.index))!=lo.Word||t(Xw(i.input,i.index))!=lo.Word)&&(t(Xw(i.input,i.index+i[0].length))!=lo.Word||t(Ww(i.input,i.index+i[0].length))!=lo.Word)}var y_=class extends Zw{nextMatch(e,A,i){let n=sQ(this.spec,e,i,e.doc.length).next();return n.done&&(n=sQ(this.spec,e,0,A).next()),n.done?null:n.value}prevMatchInRange(e,A,i){for(let n=1;;n++){let o=Math.max(A,i-n*1e4),r=sQ(this.spec,e,o,i),s=null;for(;!r.next().done;)s=r.value;if(s&&(o==A||s.from>o+10))return s;if(o==A)return null}}prevMatch(e,A,i){return this.prevMatchInRange(e,0,A)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(A,i)=>{if(i=="&")return e.match[0];if(i=="$")return"$";for(let n=i.length;n>0;n--){let o=+i.slice(0,n);if(o>0&&o=A)return null;n.push(i.value)}return n}highlight(e,A,i,n){let o=sQ(this.spec,e,Math.max(0,A-250),Math.min(i+250,e.doc.length));for(;!o.next().done;)n(o.value.from,o.value.to)}},F3=Ki.define(),S_=Ki.define(),T1=tr.define({create(t){return new N3(v_(t).create(),null)},update(t,e){for(let A of e.effects)A.is(F3)?t=new N3(A.value.create(),t.panel):A.is(S_)&&(t=new N3(t.query,A.value?R_:null));return t},provide:t=>NC.from(t,e=>e.panel)});var N3=class{constructor(e,A){this.query=e,this.panel=A}},u_A=ht.mark({class:"cm-searchMatch"}),h_A=ht.mark({class:"cm-searchMatch cm-searchMatch-selected"}),f_A=Bo.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(T1))}update(t){let e=t.state.field(T1);(e!=t.startState.field(T1)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return ht.none;let{view:A}=this,i=new fs;for(let n=0,o=A.visibleRanges,r=o.length;no[n+1].from-2*250;)a=o[++n].to;t.highlight(A.state,s,a,(c,g)=>{let I=A.state.selection.ranges.some(C=>C.from==c&&C.to==g);i.add(c,g,I?h_A:u_A)})}return i.finish()}},{decorations:t=>t.decorations});function _3(t){return e=>{let A=e.state.field(T1,!1);return A&&A.query.spec.valid?t(e,A):ey(e)}}var $w=_3((t,{query:e})=>{let{to:A}=t.state.selection.main,i=e.nextMatch(t.state,A,A);if(!i)return!1;let n=ae.single(i.from,i.to),o=t.state.facet(TC);return t.dispatch({selection:n,effects:[L_(t,i),o.scrollToMatch(n.main,t)],userEvent:"select.search"}),xoA(t),!0}),Ay=_3((t,{query:e})=>{let{state:A}=t,{from:i}=A.selection.main,n=e.prevMatch(A,i,i);if(!n)return!1;let o=ae.single(n.from,n.to),r=t.state.facet(TC);return t.dispatch({selection:o,effects:[L_(t,n),r.scrollToMatch(o.main,t)],userEvent:"select.search"}),xoA(t),!0}),m_A=_3((t,{query:e})=>{let A=e.matchAll(t.state,1e3);return!A||!A.length?!1:(t.dispatch({selection:ae.create(A.map(i=>ae.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),p_A=({state:t,dispatch:e})=>{let A=t.selection;if(A.ranges.length>1||A.main.empty)return!1;let{from:i,to:n}=A.main,o=[],r=0;for(let s=new H1(t.doc,t.sliceDoc(i,n));!s.next().done;){if(o.length>1e3)return!1;s.value.from==i&&(r=o.length),o.push(ae.range(s.value.from,s.value.to))}return e(t.update({selection:ae.create(o,r),userEvent:"select.search.matches"})),!0},MoA=_3((t,{query:e})=>{let{state:A}=t,{from:i,to:n}=A.selection.main;if(A.readOnly)return!1;let o=e.nextMatch(A,i,i);if(!o)return!1;let r=o,s=[],a,c,g=[];r.from==i&&r.to==n&&(c=A.toText(e.getReplacement(r)),s.push({from:r.from,to:r.to,insert:c}),r=e.nextMatch(A,r.from,r.to),g.push(Pt.announce.of(A.phrase("replaced match on line $",A.doc.lineAt(i).number)+".")));let I=t.state.changes(s);return r&&(a=ae.single(r.from,r.to).map(I),g.push(L_(t,r)),g.push(A.facet(TC).scrollToMatch(a.main,t))),t.dispatch({changes:I,selection:a,effects:g,userEvent:"input.replace"}),!0}),D_A=_3((t,{query:e})=>{if(t.state.readOnly)return!1;let A=e.matchAll(t.state,1e9).map(n=>{let{from:o,to:r}=n;return{from:o,to:r,insert:e.getReplacement(n)}});if(!A.length)return!1;let i=t.state.phrase("replaced $ matches",A.length)+".";return t.dispatch({changes:A,effects:Pt.announce.of(i),userEvent:"input.replace.all"}),!0});function R_(t){return t.state.facet(TC).createPanel(t)}function v_(t,e){var A,i,n,o,r;let s=t.selection.main,a=s.empty||s.to>s.from+100?"":t.sliceDoc(s.from,s.to);if(e&&!a)return e;let c=t.facet(TC);return new Vw({search:((A=e?.literal)!==null&&A!==void 0?A:c.literal)?a:a.replace(/\n/g,"\\n"),caseSensitive:(i=e?.caseSensitive)!==null&&i!==void 0?i:c.caseSensitive,literal:(n=e?.literal)!==null&&n!==void 0?n:c.literal,regexp:(o=e?.regexp)!==null&&o!==void 0?o:c.regexp,wholeWord:(r=e?.wholeWord)!==null&&r!==void 0?r:c.wholeWord})}function LoA(t){let e=FC(t,R_);return e&&e.dom.querySelector("[main-field]")}function xoA(t){let e=LoA(t);e&&e==t.root.activeElement&&e.select()}var ey=t=>{let e=t.state.field(T1,!1);if(e&&e.panel){let A=LoA(t);if(A&&A!=t.root.activeElement){let i=v_(t.state,e.query.spec);i.valid&&t.dispatch({effects:F3.of(i)}),A.focus(),A.select()}}else t.dispatch({effects:[S_.of(!0),e?F3.of(v_(t.state,e.query.spec)):Ki.appendConfig.of(b_)]});return!0},ty=t=>{let e=t.state.field(T1,!1);if(!e||!e.panel)return!1;let A=FC(t,R_);return A&&A.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:S_.of(!1)}),!0},NoA=[{key:"Mod-f",run:ey,scope:"editor search-panel"},{key:"F3",run:$w,shift:Ay,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:$w,shift:Ay,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:ty,scope:"editor search-panel"},{key:"Mod-Shift-l",run:p_A},{key:"Mod-Alt-g",run:o_A},{key:"Mod-d",run:B_A,preventDefault:!0}],M_=class{constructor(e){this.view=e;let A=this.query=e.state.field(T1).query.spec;this.commit=this.commit.bind(this),this.searchField=_n("input",{value:A.search,placeholder:Ec(e,"Find"),"aria-label":Ec(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=_n("input",{value:A.replace,placeholder:Ec(e,"Replace"),"aria-label":Ec(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=_n("input",{type:"checkbox",name:"case",form:"",checked:A.caseSensitive,onchange:this.commit}),this.reField=_n("input",{type:"checkbox",name:"re",form:"",checked:A.regexp,onchange:this.commit}),this.wordField=_n("input",{type:"checkbox",name:"word",form:"",checked:A.wholeWord,onchange:this.commit});function i(n,o,r){return _n("button",{class:"cm-button",name:n,onclick:o,type:"button"},r)}this.dom=_n("div",{onkeydown:n=>this.keydown(n),class:"cm-search"},[this.searchField,i("next",()=>$w(e),[Ec(e,"next")]),i("prev",()=>Ay(e),[Ec(e,"previous")]),i("select",()=>m_A(e),[Ec(e,"all")]),_n("label",null,[this.caseField,Ec(e,"match case")]),_n("label",null,[this.reField,Ec(e,"regexp")]),_n("label",null,[this.wordField,Ec(e,"by word")]),...e.state.readOnly?[]:[_n("br"),this.replaceField,i("replace",()=>MoA(e),[Ec(e,"replace")]),i("replaceAll",()=>D_A(e),[Ec(e,"replace all")])],_n("button",{name:"close",onclick:()=>ty(e),"aria-label":Ec(e,"close"),type:"button"},["\xD7"])])}commit(){let e=new Vw({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:F3.of(e)}))}keydown(e){DiA(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?Ay:$w)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),MoA(this.view))}update(e){for(let A of e.transactions)for(let i of A.effects)i.is(F3)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(TC).top}};function Ec(t,e){return t.state.phrase(e)}var Hw=30,Ow=/[\s\.,:;?!]/;function L_(t,{from:e,to:A}){let i=t.state.doc.lineAt(e),n=t.state.doc.lineAt(A).to,o=Math.max(i.from,e-Hw),r=Math.min(n,A+Hw),s=t.state.sliceDoc(o,r);if(o!=i.from){for(let a=0;as.length-Hw;a--)if(!Ow.test(s[a-1])&&Ow.test(s[a])){s=s.slice(0,a);break}}return Pt.announce.of(`${t.state.phrase("current match")}. ${s} ${t.state.phrase("on line")} ${i.number}.`)}var w_A=Pt.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),b_=[T1,Ng.low(f_A),w_A];var ny=class{constructor(e,A,i,n){this.state=e,this.pos=A,this.explicit=i,this.view=n,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let A=ns(this.state).resolveInner(this.pos,-1);for(;A&&e.indexOf(A.name)<0;)A=A.parent;return A?{from:A.from,to:this.pos,text:this.state.sliceDoc(A.from,this.pos),type:A.type}:null}matchBefore(e){let A=this.state.doc.lineAt(this.pos),i=Math.max(A.from,this.pos-250),n=A.text.slice(i-A.from,this.pos-A.from),o=n.search(ToA(e,!1));return o<0?null:{from:i+o,to:this.pos,text:n.slice(o)}}get aborted(){return this.abortListeners==null}addEventListener(e,A,i){e=="abort"&&this.abortListeners&&(this.abortListeners.push(A),i&&i.onDocChange&&(this.abortOnDocChange=!0))}};function FoA(t){let e=Object.keys(t).join(""),A=/\w/.test(e);return A&&(e=e.replace(/\w/g,"")),`[${A?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function y_A(t){let e=Object.create(null),A=Object.create(null);for(let{label:n}of t){e[n[0]]=!0;for(let o=1;otypeof n=="string"?{label:n}:n),[A,i]=e.every(n=>/^\w+$/.test(n.label))?[/\w*$/,/\w+$/]:y_A(e);return n=>{let o=n.matchBefore(i);return o||n.explicit?{from:o?o.from:n.pos,options:e,validFor:A}:null}}var oy=class{constructor(e,A,i,n){this.completion=e,this.source=A,this.match=i,this.score=n}};function OC(t){return t.selection.main.from}function ToA(t,e){var A;let{source:i}=t,n=e&&i[0]!="^",o=i[i.length-1]!="$";return!n&&!o?t:new RegExp(`${n?"^":""}(?:${i})${o?"$":""}`,(A=t.flags)!==null&&A!==void 0?A:t.ignoreCase?"i":"")}var HoA=Fa.define();function M_A(t,e,A,i){let{main:n}=t.selection,o=A-n.from,r=i-n.from;return Fe(sA({},t.changeByRange(s=>{if(s!=n&&A!=i&&t.sliceDoc(s.from+o,s.from+r)!=t.sliceDoc(A,i))return{range:s};let a=t.toText(e);return{changes:{from:s.from+o,to:i==n.from?s.to:s.from+r,insert:a},range:ae.cursor(s.from+o+a.length)}})),{scrollIntoView:!0,userEvent:"input.complete"})}var _oA=new WeakMap;function b_A(t){if(!Array.isArray(t))return t;let e=_oA.get(t);return e||_oA.set(t,e=v_A(t)),e}var ry=Ki.define(),G3=Ki.define(),__=class{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let A=0;A=48&&D<=57||D>=97&&D<=122?2:D>=65&&D<=90?1:0:(G=V4(D))!=G.toLowerCase()?1:G!=G.toUpperCase()?2:0;(!w||J==1&&u||R==0&&J!=0)&&(A[I]==D||i[I]==D&&(C=!0)?r[I++]=w:r.length&&(h=!1)),R=J,w+=lc(D)}return I==a&&r[0]==0&&h?this.result(-100+(C?-200:0),r,e):d==a&&B==0?this.ret(-200-e.length+(E==e.length?0:-100),[0,E]):s>-1?this.ret(-700-e.length,[s,s+this.pattern.length]):d==a?this.ret(-900-e.length,[B,E]):I==a?this.result(-100+(C?-200:0)+-700+(h?0:-1100),r,e):A.length==2?null:this.result((n[0]?-700:0)+-200+-1100,n,e)}result(e,A,i){let n=[],o=0;for(let r of A){let s=r+(this.astral?lc(ms(i,r)):1);o&&n[o-1]==r?n[o-1]=s:(n[o++]=r,n[o++]=s)}return this.ret(e-i.length,n)}},G_=class{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:k_A,filterStrict:!1,compareCompletions:(e,A)=>e.label.localeCompare(A.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,A)=>e&&A,closeOnBlur:(e,A)=>e&&A,icons:(e,A)=>e&&A,tooltipClass:(e,A)=>i=>GoA(e(i),A(i)),optionClass:(e,A)=>i=>GoA(e(i),A(i)),addToOptions:(e,A)=>e.concat(A),filterStrict:(e,A)=>e||A})}});function GoA(t,e){return t?e?t+" "+e:t:e}function k_A(t,e,A,i,n,o){let r=t.textDirection==Co.RTL,s=r,a=!1,c="top",g,I,C=e.left-n.left,d=n.right-e.right,B=i.right-i.left,E=i.bottom-i.top;if(s&&C=E||w>e.top?g=A.bottom-e.top:(c="bottom",g=e.bottom-A.top)}let u=(e.bottom-e.top)/o.offsetHeight,h=(e.right-e.left)/o.offsetWidth;return{style:`${c}: ${g/u}px; max-width: ${I/h}px`,class:"cm-completionInfo-"+(a?r?"left-narrow":"right-narrow":s?"left":"right")}}function S_A(t){let e=t.addToOptions.slice();return t.icons&&e.push({render(A){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),A.type&&i.classList.add(...A.type.split(/\s+/g).map(n=>"cm-completionIcon-"+n)),i.setAttribute("aria-hidden","true"),i},position:20}),e.push({render(A,i,n,o){let r=document.createElement("span");r.className="cm-completionLabel";let s=A.displayLabel||A.label,a=0;for(let c=0;ca&&r.appendChild(document.createTextNode(s.slice(a,g)));let C=r.appendChild(document.createElement("span"));C.appendChild(document.createTextNode(s.slice(g,I))),C.className="cm-completionMatchedText",a=I}return aA.position-i.position).map(A=>A.render)}function x_(t,e,A){if(t<=A)return{from:0,to:t};if(e<0&&(e=0),e<=t>>1){let n=Math.floor(e/A);return{from:n*A,to:(n+1)*A}}let i=Math.floor((t-e)/A);return{from:t-(i+1)*A,to:t-i*A}}var K_=class{constructor(e,A,i){this.view=e,this.stateField=A,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:a=>this.placeInfo(a),key:this},this.space=null,this.currentClass="";let n=e.state.field(A),{options:o,selected:r}=n.open,s=e.state.facet(os);this.optionContent=S_A(s),this.optionClass=s.optionClass,this.tooltipClass=s.tooltipClass,this.range=x_(o.length,r,s.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",a=>{let{options:c}=e.state.field(A).open;for(let g=a.target,I;g&&g!=this.dom;g=g.parentNode)if(g.nodeName=="LI"&&(I=/-(\d+)$/.exec(g.id))&&+I[1]{let c=e.state.field(this.stateField,!1);c&&c.tooltip&&e.state.facet(os).closeOnBlur&&a.relatedTarget!=e.contentDOM&&e.dispatch({effects:G3.of(null)})}),this.showOptions(o,n.id)}mount(){this.updateSel()}showOptions(e,A){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,A,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var A;let i=e.state.field(this.stateField),n=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),i!=n){let{options:o,selected:r,disabled:s}=i.open;(!n.open||n.open.options!=o)&&(this.range=x_(o.length,r,e.state.facet(os).maxRenderedOptions),this.showOptions(o,i.id)),this.updateSel(),s!=((A=n.open)===null||A===void 0?void 0:A.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!s)}}updateTooltipClass(e){let A=this.tooltipClass(e);if(A!=this.currentClass){for(let i of this.currentClass.split(" "))i&&this.dom.classList.remove(i);for(let i of A.split(" "))i&&this.dom.classList.add(i);this.currentClass=A}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),A=e.open;if((A.selected>-1&&A.selected=this.range.to)&&(this.range=x_(A.options.length,A.selected,this.view.state.facet(os).maxRenderedOptions),this.showOptions(A.options,e.id)),this.updateSelectedOption(A.selected)){this.destroyInfo();let{completion:i}=A.options[A.selected],{info:n}=i;if(!n)return;let o=typeof n=="string"?document.createTextNode(n):n(i);if(!o)return;"then"in o?o.then(r=>{r&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(r,i)}).catch(r=>is(this.view.state,r,"completion info")):this.addInfoPane(o,i)}}addInfoPane(e,A){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",e.nodeType!=null)i.appendChild(e),this.infoDestroy=null;else{let{dom:n,destroy:o}=e;i.appendChild(n),this.infoDestroy=o||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let A=null;for(let i=this.list.firstChild,n=this.range.from;i;i=i.nextSibling,n++)i.nodeName!="LI"||!i.id?n--:n==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),A=i):i.hasAttribute("aria-selected")&&i.removeAttribute("aria-selected");return A&&L_A(this.list,A),A}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let A=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),n=e.getBoundingClientRect(),o=this.space;if(!o){let r=this.dom.ownerDocument.documentElement;o={left:0,top:0,right:r.clientWidth,bottom:r.clientHeight}}return n.top>Math.min(o.bottom,A.bottom)-10||n.bottom{r.target==n&&r.preventDefault()});let o=null;for(let r=i.from;ri.from||i.from==0))if(o=C,typeof c!="string"&&c.header)n.appendChild(c.header(c));else{let d=n.appendChild(document.createElement("completion-section"));d.textContent=C}}let g=n.appendChild(document.createElement("li"));g.id=A+"-"+r,g.setAttribute("role","option");let I=this.optionClass(s);I&&(g.className=I);for(let C of this.optionContent){let d=C(s,this.view.state,this.view,a);d&&g.appendChild(d)}}return i.from&&n.classList.add("cm-completionListIncompleteTop"),i.tonew K_(A,t,e)}function L_A(t,e){let A=t.getBoundingClientRect(),i=e.getBoundingClientRect(),n=A.height/t.offsetHeight;i.topA.bottom&&(t.scrollTop+=(i.bottom-A.bottom)/n)}function KoA(t){return(t.boost||0)*100+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}function x_A(t,e){let A=[],i=null,n=c=>{A.push(c);let{section:g}=c.completion;if(g){i||(i=[]);let I=typeof g=="string"?g:g.name;i.some(C=>C.name==I)||i.push(typeof g=="string"?{name:I}:g)}},o=e.facet(os);for(let c of t)if(c.hasResult()){let g=c.result.getMatch;if(c.result.filter===!1)for(let I of c.result.options)n(new oy(I,c.source,g?g(I):[],1e9-A.length));else{let I=e.sliceDoc(c.from,c.to),C,d=o.filterStrict?new G_(I):new __(I);for(let B of c.result.options)if(C=d.match(B.label)){let E=B.displayLabel?g?g(B,C.matched):[]:C.matched;n(new oy(B,c.source,E,C.score+(B.boost||0)))}}}if(i){let c=Object.create(null),g=0,I=(C,d)=>{var B,E;return((B=C.rank)!==null&&B!==void 0?B:1e9)-((E=d.rank)!==null&&E!==void 0?E:1e9)||(C.nameI.score-g.score||a(g.completion,I.completion))){let g=c.completion;!s||s.label!=g.label||s.detail!=g.detail||s.type!=null&&g.type!=null&&s.type!=g.type||s.apply!=g.apply||s.boost!=g.boost?r.push(c):KoA(c.completion)>KoA(s)&&(r[r.length-1]=c),s=c.completion}return r}var U_=class t{constructor(e,A,i,n,o,r){this.options=e,this.attrs=A,this.tooltip=i,this.timestamp=n,this.selected=o,this.disabled=r}setSelected(e,A){return e==this.selected||e>=this.options.length?this:new t(this.options,UoA(A,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,A,i,n,o,r){if(n&&!r&&e.some(c=>c.isPending))return n.setDisabled();let s=x_A(e,A);if(!s.length)return n&&e.some(c=>c.isPending)?n.setDisabled():null;let a=A.facet(os).selectOnOpen?0:-1;if(n&&n.selected!=a&&n.selected!=-1){let c=n.options[n.selected].completion;for(let g=0;gg.hasResult()?Math.min(c,g.from):c,1e8),create:U_A,above:o.aboveCursor},n?n.timestamp:Date.now(),a,!1)}map(e){return new t(this.options,this.attrs,Fe(sA({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}setDisabled(){return new t(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}},J_=class t{constructor(e,A,i){this.active=e,this.id=A,this.open=i}static start(){return new t(G_A,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:A}=e,i=A.facet(os),o=(i.override||A.languageDataAt("autocomplete",OC(A)).map(b_A)).map(a=>(this.active.find(g=>g.source==a)||new q0(a,this.active.some(g=>g.state!=0)?1:0)).update(e,i));o.length==this.active.length&&o.every((a,c)=>a==this.active[c])&&(o=this.active);let r=this.open,s=e.effects.some(a=>a.is(T_));r&&e.docChanged&&(r=r.map(e.changes)),e.selection||o.some(a=>a.hasResult()&&e.changes.touchesRange(a.from,a.to))||!N_A(o,this.active)||s?r=U_.build(o,A,this.id,r,i,s):r&&r.disabled&&!o.some(a=>a.isPending)&&(r=null),!r&&o.every(a=>!a.isPending)&&o.some(a=>a.hasResult())&&(o=o.map(a=>a.hasResult()?new q0(a.source,0):a));for(let a of e.effects)a.is(zoA)&&(r=r&&r.setSelected(a.value,this.id));return o==this.active&&r==this.open?this:new t(o,this.id,r)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?F_A:__A}};function N_A(t,e){if(t==e)return!0;for(let A=0,i=0;;){for(;A-1&&(A["aria-activedescendant"]=t+"-"+e),A}var G_A=[];function OoA(t,e){if(t.isUserEvent("input.complete")){let i=t.annotation(HoA);if(i&&e.activateOnCompletion(i))return 12}let A=t.isUserEvent("input.type");return A&&e.activateOnTyping?5:A?1:t.isUserEvent("delete.backward")?2:t.selection?8:t.docChanged?16:0}var q0=class t{constructor(e,A,i=!1){this.source=e,this.state=A,this.explicit=i}hasResult(){return!1}get isPending(){return this.state==1}update(e,A){let i=OoA(e,A),n=this;(i&8||i&16&&this.touches(e))&&(n=new t(n.source,0)),i&4&&n.state==0&&(n=new t(this.source,1)),n=n.updateFor(e,i);for(let o of e.effects)if(o.is(ry))n=new t(n.source,1,o.value);else if(o.is(G3))n=new t(n.source,0);else if(o.is(T_))for(let r of o.value)r.source==n.source&&(n=r);return n}updateFor(e,A){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(OC(e.state))}},sy=class t extends q0{constructor(e,A,i,n,o,r){super(e,3,A),this.limit=i,this.result=n,this.from=o,this.to=r}hasResult(){return!0}updateFor(e,A){var i;if(!(A&3))return this.map(e.changes);let n=this.result;n.map&&!e.changes.empty&&(n=n.map(n,e.changes));let o=e.changes.mapPos(this.from),r=e.changes.mapPos(this.to,1),s=OC(e.state);if(s>r||!n||A&2&&(OC(e.startState)==this.from||sA.map(e))}}),zoA=Ki.define(),Ka=tr.define({create(){return J_.start()},update(t,e){return t.update(e)},provide:t=>[qE.from(t,e=>e.tooltip),Pt.contentAttributes.from(t,e=>e.attrs)]});function H_(t,e){let A=e.completion.apply||e.completion.label,i=t.state.field(Ka).active.find(n=>n.source==e.source);return i instanceof sy?(typeof A=="string"?t.dispatch(Fe(sA({},M_A(t.state,A,i.from,i.to)),{annotations:HoA.of(e.completion)})):A(t,e.completion,i.from,i.to),!0):!1}var U_A=R_A(Ka,H_);function iy(t,e="option"){return A=>{let i=A.state.field(Ka,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp-1?i.open.selected+n*(t?1:-1):t?0:r-1;return s<0?s=e=="page"?0:r-1:s>=r&&(s=e=="page"?r-1:0),A.dispatch({effects:zoA.of(s)}),!0}}var J_A=t=>{let e=t.state.field(Ka,!1);return t.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampt.state.field(Ka,!1)?(t.dispatch({effects:ry.of(!0)}),!0):!1,Y_A=t=>{let e=t.state.field(Ka,!1);return!e||!e.active.some(A=>A.state!=0)?!1:(t.dispatch({effects:G3.of(null)}),!0)},Y_=class{constructor(e,A){this.active=e,this.context=A,this.time=Date.now(),this.updates=[],this.done=void 0}},T_A=50,H_A=1e3,O_A=Bo.fromClass(class{constructor(t){this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of t.state.field(Ka).active)e.isPending&&this.startQuery(e)}update(t){let e=t.state.field(Ka),A=t.state.facet(os);if(!t.selectionSet&&!t.docChanged&&t.startState.field(Ka)==e)return;let i=t.transactions.some(o=>{let r=OoA(o,A);return r&8||(o.selection||o.docChanged)&&!(r&3)});for(let o=0;oT_A&&Date.now()-r.time>H_A){for(let s of r.context.abortListeners)try{s()}catch(a){is(this.view.state,a)}r.context.abortListeners=null,this.running.splice(o--,1)}else r.updates.push(...t.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),t.transactions.some(o=>o.effects.some(r=>r.is(ry)))&&(this.pendingStart=!0);let n=this.pendingStart?50:A.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(o=>o.isPending&&!this.running.some(r=>r.active.source==o.source))?setTimeout(()=>this.startUpdate(),n):-1,this.composing!=0)for(let o of t.transactions)o.isUserEvent("input.type")?this.composing=2:this.composing==2&&o.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:t}=this.view,e=t.field(Ka);for(let A of e.active)A.isPending&&!this.running.some(i=>i.active.source==A.source)&&this.startQuery(A);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(os).updateSyncTime))}startQuery(t){let{state:e}=this.view,A=OC(e),i=new ny(e,A,t.explicit,this.view),n=new Y_(t,i);this.running.push(n),Promise.resolve(t.source(i)).then(o=>{n.context.aborted||(n.done=o||null,this.scheduleAccept())},o=>{this.view.dispatch({effects:G3.of(null)}),is(this.view.state,o)})}scheduleAccept(){this.running.every(t=>t.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(os).updateSyncTime))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],A=this.view.state.facet(os),i=this.view.state.field(Ka);for(let n=0;ns.source==o.active.source);if(r&&r.isPending)if(o.done==null){let s=new q0(o.active.source,0);for(let a of o.updates)s=s.update(a,A);s.isPending||e.push(s)}else this.startQuery(r)}(e.length||i.open&&i.open.disabled)&&this.view.dispatch({effects:T_.of(e)})}},{eventHandlers:{blur(t){let e=this.view.state.field(Ka,!1);if(e&&e.tooltip&&this.view.state.facet(os).closeOnBlur){let A=e.open&&yF(this.view,e.open.tooltip);(!A||!A.dom.contains(t.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:G3.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:ry.of(!1)}),20),this.composing=0}}}),z_A=typeof navigator=="object"&&/Win/.test(navigator.platform),P_A=Ng.highest(Pt.domEventHandlers({keydown(t,e){let A=e.state.field(Ka,!1);if(!A||!A.open||A.open.disabled||A.open.selected<0||t.key.length>1||t.ctrlKey&&!(z_A&&t.altKey)||t.metaKey)return!1;let i=A.open.options[A.open.selected],n=A.active.find(r=>r.source==i.source),o=i.completion.commitCharacters||n.result.commitCharacters;return o&&o.indexOf(t.key)>-1&&H_(e,i),!1}})),j_A=Pt.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});var K3={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},HC=Ki.define({map(t,e){let A=e.mapPos(t,-1,us.TrackAfter);return A??void 0}}),O_=new class extends xg{};O_.startSide=1;O_.endSide=-1;var PoA=tr.define({create(){return Io.empty},update(t,e){if(t=t.map(e.changes),e.selection){let A=e.state.doc.lineAt(e.selection.main.head);t=t.update({filter:i=>i>=A.from&&i<=A.to})}for(let A of e.effects)A.is(HC)&&(t=t.update({add:[O_.range(A.value,A.value+1)]}));return t}});function joA(){return[V_A,PoA]}var F_="()[]{}<>\xAB\xBB\xBB\xAB\uFF3B\uFF3D\uFF5B\uFF5D";function qoA(t){for(let e=0;e{if((q_A?t.composing:t.compositionStarted)||t.state.readOnly)return!1;let n=t.state.selection.main;if(i.length>2||i.length==2&&lc(ms(i,0))==1||e!=n.from||A!=n.to)return!1;let o=W_A(t.state,i);return o?(t.dispatch(o),!0):!1}),Z_A=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=VoA(t,t.selection.main.head).brackets||K3.brackets,n=null,o=t.changeByRange(r=>{if(r.empty){let s=X_A(t.doc,r.head);for(let a of i)if(a==s&&ay(t.doc,r.head)==qoA(ms(a,0)))return{changes:{from:r.head-a.length,to:r.head+a.length},range:ae.cursor(r.head-a.length)}}return{range:n=r}});return n||e(t.update(o,{scrollIntoView:!0,userEvent:"delete.backward"})),!n},ZoA=[{key:"Backspace",run:Z_A}];function W_A(t,e){let A=VoA(t,t.selection.main.head),i=A.brackets||K3.brackets;for(let n of i){let o=qoA(ms(n,0));if(e==n)return o==n?eGA(t,n,i.indexOf(n+n+n)>-1,A):$_A(t,n,o,A.before||K3.before);if(e==o&&WoA(t,t.selection.main.from))return AGA(t,n,o)}return null}function WoA(t,e){let A=!1;return t.field(PoA).between(0,t.doc.length,i=>{i==e&&(A=!0)}),A}function ay(t,e){let A=t.sliceString(e,e+2);return A.slice(0,lc(ms(A,0)))}function X_A(t,e){let A=t.sliceString(e-2,e);return lc(ms(A,0))==A.length?A:A.slice(1)}function $_A(t,e,A,i){let n=null,o=t.changeByRange(r=>{if(!r.empty)return{changes:[{insert:e,from:r.from},{insert:A,from:r.to}],effects:HC.of(r.to+e.length),range:ae.range(r.anchor+e.length,r.head+e.length)};let s=ay(t.doc,r.head);return!s||/\s/.test(s)||i.indexOf(s)>-1?{changes:{insert:e+A,from:r.head},effects:HC.of(r.head+e.length),range:ae.cursor(r.head+e.length)}:{range:n=r}});return n?null:t.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function AGA(t,e,A){let i=null,n=t.changeByRange(o=>o.empty&&ay(t.doc,o.head)==A?{changes:{from:o.head,to:o.head+A.length,insert:A},range:ae.cursor(o.head+A.length)}:i={range:o});return i?null:t.update(n,{scrollIntoView:!0,userEvent:"input.type"})}function eGA(t,e,A,i){let n=i.stringPrefixes||K3.stringPrefixes,o=null,r=t.changeByRange(s=>{if(!s.empty)return{changes:[{insert:e,from:s.from},{insert:e,from:s.to}],effects:HC.of(s.to+e.length),range:ae.range(s.anchor+e.length,s.head+e.length)};let a=s.head,c=ay(t.doc,a),g;if(c==e){if(JoA(t,a))return{changes:{insert:e+e,from:a},effects:HC.of(a+e.length),range:ae.cursor(a+e.length)};if(WoA(t,a)){let C=A&&t.sliceDoc(a,a+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:a,to:a+C.length,insert:C},range:ae.cursor(a+C.length)}}}else{if(A&&t.sliceDoc(a-2*e.length,a)==e+e&&(g=YoA(t,a-2*e.length,n))>-1&&JoA(t,g))return{changes:{insert:e+e+e+e,from:a},effects:HC.of(a+e.length),range:ae.cursor(a+e.length)};if(t.charCategorizer(a)(c)!=lo.Word&&YoA(t,a,n)>-1&&!tGA(t,a,e,n))return{changes:{insert:e+e,from:a},effects:HC.of(a+e.length),range:ae.cursor(a+e.length)}}return{range:o=s}});return o?null:t.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function JoA(t,e){let A=ns(t).resolveInner(e+1);return A.parent&&A.from==e}function tGA(t,e,A,i){let n=ns(t).resolveInner(e,-1),o=i.reduce((r,s)=>Math.max(r,s.length),0);for(let r=0;r<5;r++){let s=t.sliceDoc(n.from,Math.min(n.to,n.from+A.length+o)),a=s.indexOf(A);if(!a||a>-1&&i.indexOf(s.slice(0,a))>-1){let g=n.firstChild;for(;g&&g.from==n.from&&g.to-g.from>A.length+a;){if(t.sliceDoc(g.to-A.length,g.to)==A)return!1;g=g.firstChild}return!0}let c=n.to==e&&n.parent;if(!c)break;n=c}return!1}function YoA(t,e,A){let i=t.charCategorizer(e);if(i(t.sliceDoc(e-1,e))!=lo.Word)return e;for(let n of A){let o=e-n.length;if(t.sliceDoc(o,e)==n&&i(t.sliceDoc(o-1,o))!=lo.Word)return o}return-1}function XoA(t={}){return[P_A,Ka,os.of(t),O_A,iGA,j_A]}var z_=[{key:"Ctrl-Space",run:N_},{mac:"Alt-`",run:N_},{mac:"Alt-i",run:N_},{key:"Escape",run:Y_A},{key:"ArrowDown",run:iy(!0)},{key:"ArrowUp",run:iy(!1)},{key:"PageDown",run:iy(!0,"page")},{key:"PageUp",run:iy(!1,"page")},{key:"Enter",run:J_A}],iGA=Ng.highest(jE.computeN([os],t=>t.facet(os).defaultKeymap?[z_]:[]));function nGA(t,e=t.state){let A=new Set;for(let{from:i,to:n}of t.visibleRanges){let o=i;for(;o<=n;){let r=e.doc.lineAt(o);A.has(r)||A.add(r),o=r.to+1}}return A}function P_(t){let e=t.selection.main.head;return t.doc.lineAt(e)}function $oA(t,e){let A=0;A:for(let i=0;i=o.level&&this.markerType!=="codeOnly"?this.set(e,0,n.level):n.empty&&n.level===0&&o.level!==0?this.set(e,0,0):o.level>n.level?this.set(e,0,n.level+1):this.set(e,0,o.level)}let A=$oA(e.text,this.state.tabSize),i=Math.floor(A/this.unitWidth);return this.set(e,A,i)}closestNonEmpty(e,A){let i=e.number+A;for(;A===-1?i>=1:i<=this.state.doc.lines;){if(this.has(i)){let r=this.get(i);if(!r.empty)return r}let o=this.state.doc.line(i);if(o.text.trim().length){let r=$oA(o.text,this.state.tabSize),s=Math.floor(r/this.unitWidth);return this.set(o,r,s)}i+=A}let n=this.state.doc.line(A===-1?1:this.state.doc.lines);return this.set(n,0,0)}findAndSetActiveLines(){let e=P_(this.state);if(!this.has(e))return;let A=this.get(e);if(this.has(A.line.number+1)){let o=this.get(A.line.number+1);o.level>A.level&&(A=o)}if(this.has(A.line.number-1)){let o=this.get(A.line.number-1);o.level>A.level&&(A=o)}if(A.level===0)return;A.active=A.level;let i,n;for(i=A.line.number;i>1;i--){if(!this.has(i-1))continue;let o=this.get(i-1);if(o.level0&&a.push(cy("--indent-marker-bg-color",i,e,s,c)),a.push(cy("--indent-marker-active-bg-color",n,e,r-1,1)),r!==o&&a.push(cy("--indent-marker-bg-color",i,e,r,o-r))}else a.push(cy("--indent-marker-bg-color",i,e,s,o-s));return a.join(",")}var q_=class{constructor(e){this.view=e,this.unitWidth=Ug(e.state),this.currentLineNumber=P_(e.state).number,this.generate(e.state)}update(e){let A=Ug(e.state),i=A!==this.unitWidth;i&&(this.unitWidth=A);let n=P_(e.state).number,o=n!==this.currentLineNumber;this.currentLineNumber=n;let r=e.state.facet(gy).highlightActiveBlock&&o;(e.docChanged||e.viewportChanged||i||r)&&this.generate(e.state)}generate(e){let A=new fs,i=nGA(this.view,e),{hideFirstIndent:n,markerType:o,thickness:r,activeThickness:s}=e.facet(gy),a=new j_(i,e,this.unitWidth,o);for(let c of i){let g=a.get(c.number);if(!g?.level)continue;let I=rGA(g,this.unitWidth,n,r,s);A.add(c.from,c.from,ht.line({class:"cm-indent-markers",attributes:{style:`--indent-markers: ${I}`}}))}this.decorations=A.finish()}};function ArA(t={}){return[gy.of(t),oGA(t.colors),Bo.fromClass(q_,{decorations:e=>e.decorations})]}var sGA=["mainAxis","crossAxis","fallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment"],aGA=["mainAxis","crossAxis","limiter"];function EsA(t,e){if(t==null)return{};var A,i,n=function(r,s){if(r==null)return{};var a={};for(var c in r)if({}.hasOwnProperty.call(r,c)){if(s.indexOf(c)!==-1)continue;a[c]=r[c]}return a}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(i=0;i{};function BGA(t){return t()}function Ry(t){for(var e=0;e1&&arguments[1]!==void 0&&arguments[1])&&(jn.l={s:null,u:null,r1:[],r2:$C(!1)})}function mt(t){var e=jn,A=e.e;if(A!==null)for(var i of(e.e=null,A))LsA(i);return t!==void 0&&(e.x=t),jn=e.p,t??{}}function FQ(){return!xQ||jn!==null&&jn.l===null}function wsA(t){var e,A;return jn===null&&lf(),(A=(e=jn).c)!==null&&A!==void 0?A:e.c=new Map(function(i){for(var n=i.p;n!==null;){var o=n.c;if(o!==null)return o;n=n.p}return null}(jn)||void 0)}function EQ(t){if(typeof t!="object"||t===null||i0 in t)return t;var e=eK(t);if(e!==CGA&&e!==dGA)return t;var A=new Map,i=NQ(t),n=V0(0),o=ZC,r=s=>{if(ZC===o)return s();var a=Go,c=ZC;nI(null),lrA(o);var g=s();return nI(a),lrA(c),g};return i&&A.set("length",V0(t.length)),new Proxy(t,{defineProperty(s,a,c){"value"in c&&c.configurable!==!1&&c.enumerable!==!1&&c.writable!==!1||function(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}();var g=A.get(a);return g===void 0?g=r(()=>{var I=V0(c.value);return A.set(a,I),I}):y(g,c.value,!0),!0},deleteProperty(s,a){var c=A.get(a);if(c===void 0){if(a in s){var g=r(()=>V0(Ds));A.set(a,g),W_(n)}}else{if(i&&typeof a=="string"){var I=A.get("length"),C=Number(a);Number.isInteger(C)&&CV0(EQ(C?s[a]:Ds))),A.set(a,I)),I!==void 0){var d=l(I);return d===Ds?void 0:d}return Reflect.get(s,a,c)},getOwnPropertyDescriptor(s,a){var c=Reflect.getOwnPropertyDescriptor(s,a);if(c&&"value"in c){var g=A.get(a);g&&(c.value=l(g))}else if(c===void 0){var I=A.get(a),C=I?.v;if(I!==void 0&&C!==Ds)return{enumerable:!0,configurable:!0,value:C,writable:!0}}return c},has(s,a){var c;if(a===i0)return!0;var g=A.get(a),I=g!==void 0&&g.v!==Ds||Reflect.has(s,a);return(g!==void 0||qn!==null&&(!I||(c=t2(s,a))!==null&&c!==void 0&&c.writable))&&(g===void 0&&(g=r(()=>V0(I?EQ(s[a]):Ds)),A.set(a,g)),l(g)===Ds)?!1:I},set(s,a,c,g){var I,C=A.get(a),d=a in s;if(i&&a==="length")for(var B=c;BV0(Ds)),A.set(B+"",E))}C===void 0?(!d||(I=t2(s,a))!==null&&I!==void 0&&I.writable)&&(y(C=r(()=>V0(void 0)),EQ(c)),A.set(a,C)):(d=C.v!==Ds,y(C,r(()=>EQ(c))));var u=Reflect.getOwnPropertyDescriptor(s,a);if(u!=null&&u.set&&u.set.call(g,c),!d){if(i&&typeof a=="string"){var h=A.get("length"),w=Number(a);Number.isInteger(w)&&w>=h.v&&y(h,w+1)}W_(n)}return!0},ownKeys(s){l(n);var a=Reflect.ownKeys(s).filter(I=>{var C=A.get(I);return C===void 0||C.v!==Ds});for(var[c,g]of A)g.v===Ds||c in s||a.push(c);return a},setPrototypeOf(){(function(){throw new Error("https://svelte.dev/e/state_prototype_fixed")})()}})}function arA(t){try{if(t!==null&&typeof t=="object"&&i0 in t)return t[i0]}catch{}return t}function mGA(t,e){return Object.is(arA(t),arA(e))}function _Q(t){var e=2050,A=Go!==null&&2&Go.f?Go:null;return qn===null||A!==null&&(A.f&Hg)!==0?e|=Hg:qn.f|=QGA,{ctx:jn,deps:null,effects:null,equals:psA,f:e,fn:t,reactions:null,rv:0,v:Ds,wv:0,parent:A??qn,ac:null}}function Ja(t){var e=_Q(t);return YsA(e),e}function ZA(t){var e=_Q(t);return e.equals=DsA,e}function ysA(t){var e=t.effects;if(e!==null){t.effects=null;for(var A=0;A1&&arguments[1]!==void 0&&arguments[1],n=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],o=$C(t);return i||(o.equals=DsA),xQ&&n&&jn!==null&&jn.l!==null&&((A=(e=jn.l).s)!==null&&A!==void 0?A:e.s=[]).push(o),o}function hc(t,e){return y(t,oA(()=>l(t))),e}function y(t,e){var A,i=arguments.length>2&&arguments[2]!==void 0&&arguments[2];return Go===null||A0&&(Go.f&EGA)===0||!FQ()||!(131090&Go.f)||(A=n2)!==null&&A!==void 0&&A.includes(t)||function(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}(),yG(t,i?EQ(e):e)}function yG(t,e){if(!t.equals(e)){var A=t.v;iI?qC.set(t,e):qC.set(t,A),t.v=e,2&t.f&&((t.f&yQ)!==0&&nK(t),qg(t,(t.f&Hg)===0?Dc:rd)),t.wv=TsA(),MsA(t,yQ),!FQ()||qn===null||(qn.f&Dc)===0||96&qn.f||(Wc===null?function(i){Wc=i}([t]):Wc.push(t))}return e}function crA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,A=l(t),i=e===1?A++:A--;return y(t,A),i}function W_(t){y(t,t.v+1)}function MsA(t,e){var A=t.reactions;if(A!==null)for(var i=FQ(),n=A.length,o=0;o0&&arguments[0]!==void 0?arguments[0]:"";return document.createTextNode(t)}function fc(t){return ksA.call(t)}function $y(t){return SsA.call(t)}function W(t,e){return fc(t)}function Mt(t,e){var A=fc(t);return A instanceof Comment&&A.data===""?$y(A):A}function CA(t){for(var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,A=t;e--;)A=$y(A);return A}function RsA(t){qn===null&&Go===null&&function(){throw new Error("https://svelte.dev/e/effect_orphan")}(),Go!==null&&(Go.f&Hg)!==0&&qn===null&&function(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}(),iI&&function(){throw new Error("https://svelte.dev/e/effect_in_teardown")}()}function gI(t,e,A){var i=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3],n=qn,o={ctx:jn,deps:null,nodes_start:null,nodes_end:null,f:t|yQ,first:null,fn:e,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,transitions:null,wv:0,ac:null};if(A)try{e7(o),o.f|=32768}catch(a){throw tg(o),a}else e!==null&&t7(o);if(!(A&&o.deps===null&&o.first===null&&o.nodes_start===null&&o.teardown===null&&!(524416&o.f))&&i&&(n!==null&&function(a,c){var g=c.last;g===null?c.last=c.first=a:(g.next=a,a.prev=g,c.last=a)}(o,n),Go!==null&&2&Go.f)){var r,s=Go;((r=s.effects)!==null&&r!==void 0?r:s.effects=[]).push(o)}return o}function oK(t){var e=gI(8,null,!1);return qg(e,Dc),e.teardown=t,e}function vG(t){if(RsA(),Go||!qn||(qn.f&Wy)===0)return LsA(t);var e,A=jn;((e=A.e)!==null&&e!==void 0?e:A.e=[]).push(t)}function LsA(t){return gI(2097156,t,!1)}function rs(t){return gI(4,t,!1)}function pA(t,e){var A=jn,i={effect:null,ran:!1};A.l.r1.push(i),i.effect=If(()=>{t(),i.ran||(i.ran=!0,y(A.l.r2,!0),oA(e))})}function ln(){var t=jn;If(()=>{if(l(t.l.r2)){for(var e of t.l.r1){var A=e.effect;(A.f&Dc)!==0&&qg(A,rd),Cf(A)&&e7(A),e.ran=!1}t.l.r2.v=!1}})}function If(t){return gI(8,t,!0)}function we(t){var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:_Q,A=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:[]).map(e);return lI(()=>t(...A.map(l)))}function lI(t){return gI(24|(arguments.length>1&&arguments[1]!==void 0?arguments[1]:0),t,!0)}function s0(t){return gI(40,t,!0,!(arguments.length>1&&arguments[1]!==void 0)||arguments[1])}function xsA(t){var e=t.teardown;if(e!==null){var A=iI,i=Go;grA(!0),nI(null);try{e.call(null)}finally{grA(A),nI(i)}}}function NsA(t){var e=arguments.length>1&&arguments[1]!==void 0&&arguments[1],A=t.first;for(t.first=t.last=null;A!==null;){var i;(i=A.ac)===null||i===void 0||i.abort(msA);var n=A.next;(A.f&hsA)!==0?A.parent=null:tg(A,e),A=n}}function tg(t){var e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],A=!1;(e||262144&t.f)&&t.nodes_start!==null&&t.nodes_end!==null&&(FsA(t.nodes_start,t.nodes_end),A=!0),NsA(t,e&&!A),Ny(t,0),qg(t,tK);var i=t.transitions;if(i!==null)for(var n of i)n.stop();xsA(t);var o=t.parent;o!==null&&o.first!==null&&_sA(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes_start=t.nodes_end=t.ac=null}function FsA(t,e){for(;t!==null;){var A=t===e?null:$y(t);t.remove(),t=A}}function _sA(t){var e=t.parent,A=t.prev,i=t.next;A!==null&&(A.next=i),i!==null&&(i.prev=A),e!==null&&(e.first===t&&(e.first=i),e.last===t&&(e.last=A))}function vQ(t,e){var A=[];rK(t,A,!0),GsA(A,()=>{tg(t),e&&e()})}function GsA(t,e){var A=t.length;if(A>0){var i=()=>--A||e();for(var n of t)n.out(i)}else e()}function rK(t,e,A){if((t.f&$1)===0){if(t.f^=$1,t.transitions!==null)for(var i of t.transitions)(i.is_global||A)&&e.push(i);for(var n=t.first;n!==null;){var o=n.next;rK(n,e,((n.f&gf)!==0||(n.f&Wy)!==0)&&A),n=o}}}function Ly(t){KsA(t,!0)}function KsA(t,e){if((t.f&$1)!==0){t.f^=$1;for(var A=t.first;A!==null;){var i=A.next;KsA(A,((A.f&gf)!==0||(A.f&Wy)!==0)&&e),A=i}if(t.transitions!==null)for(var n of t.transitions)(n.is_global||e)&&n.in()}}var j3=[],X_=[];function UsA(){var t=j3;j3=[],Ry(t)}function A7(t){j3.length===0&&queueMicrotask(UsA),j3.push(t)}function pGA(){var t;j3.length>0&&UsA(),X_.length>0&&(t=X_,X_=[],Ry(t))}function JsA(t,e){for(;e!==null;){if(128&e.f)try{return void e.b.error(t)}catch{}e=e.parent}throw t}var q3=!1,V3=null,VC=!1,iI=!1;function grA(t){iI=t}var P3=[],Go=null,A0=!1;function nI(t){Go=t}var qn=null;function oI(t){qn=t}var n2=null;function YsA(t){Go!==null&&Go.f&wG&&(n2===null?n2=[t]:n2.push(t))}var oa=null,Qc=0,Wc=null,xy=1,Z3=0,ZC=Z3;function lrA(t){ZC=t}var V1=!1,IrA=null;function TsA(){return++xy}function Cf(t){var e=t.f;if((e&yQ)!==0)return!0;if((e&rd)!==0){var A=t.deps,i=(e&Hg)!==0;if(A!==null){var n,o,r=(e&DG)!==0,s=i&&qn!==null&&!V1,a=A.length;if(r||s){var c=t,g=c.parent;for(n=0;nt.wv)return!0}i&&(qn===null||V1)||qg(t,Dc)}return!1}function HsA(t,e){var A,i=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],n=t.reactions;if(n!==null&&((A=n2)===null||A===void 0||!A.includes(t)))for(var o=0;o0)for(C.length=Qc+oa.length,d=0;d0;){e++>1e3&&wGA();var A=P3,i=A.length;P3=[];for(var n=0;nn&&(i.f&uGA)!==0)break}}for(;A1&&arguments[1]!==void 0?arguments[1]:new Set;if(!(typeof t!="object"||t===null||t instanceof EventTarget||e.has(t))){for(var A in e.add(t),t instanceof Date&&t.getTime(),t)try{MG(t[A],e)}catch{}var i=eK(t);if(i!==Object.prototype&&i!==Array.prototype&&i!==Map.prototype&&i!==Set.prototype&&i!==Date.prototype){var n=usA(i);for(var o in n){var r=n[o].get;if(r)try{r.call(t)}catch{}}}}}var CrA=!1;function qsA(t){var e=Go,A=qn;nI(null),oI(null);try{return t()}finally{nI(e),oI(A)}}function bGA(t,e,A){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:A;t.addEventListener(e,()=>qsA(A));var n=t.__on_r;t.__on_r=n?()=>{n(),i(!0)}:()=>i(!0),CrA||(CrA=!0,document.addEventListener("reset",o=>{Promise.resolve().then(()=>{if(!o.defaultPrevented)for(var r of o.target.elements){var s;(s=r.__on_r)===null||s===void 0||s.call(r)}})},{capture:!0}))}var VsA=new Set,bG=new Set;function ZsA(t,e,A){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};function n(o){if(i.capture||T3.call(e,o),!o.cancelBubble)return qsA(()=>A?.call(this,o))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?A7(()=>{e.addEventListener(t,n,i)}):e.addEventListener(t,n,i),n}function ce(t,e,A,i,n){var o={capture:i,passive:n},r=ZsA(t,e,A,o);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&oK(()=>{e.removeEventListener(t,r,o)})}function df(t){for(var e=0;er||i});var I=Go,C=qn;nI(null),oI(null);try{for(var d,B=[];r!==null;){var E=r.assignedSlot||r.parentNode||r.host||null;try{var u=r["__"+n];if(u!=null&&(!r.disabled||t.target===r))if(NQ(u)){var[h,...w]=u;h.apply(r,[t,...w])}else u.call(r,t)}catch(D){d?B.push(D):d=D}if(t.cancelBubble||E===A||E===null)break;r=E}if(d){var x=function(D){queueMicrotask(()=>{throw D})};for(var R of B)x(R);throw d}}finally{t.__root=A,delete t.currentTarget,nI(I),oI(C)}}}function sK(t){var e=document.createElement("template");return e.innerHTML=t.replaceAll("",""),e.content}function Ad(t,e){var A=qn;A.nodes_start===null&&(A.nodes_start=t,A.nodes_end=e)}function vA(t,e){var A,i=!!(1&e),n=!!(2&e),o=!t.startsWith("");return()=>{A===void 0&&(A=sK(o?t:""+t),i||(A=fc(A)));var r=n||bsA?document.importNode(A,!0):A.cloneNode(!0);return i?Ad(fc(r),r.lastChild):Ad(r,r),r}}function II(t,e){return function(A,i){var n,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"svg",r=!A.startsWith(""),s=!!(1&i),a="<".concat(o,">").concat(r?A:""+A,"");return()=>{if(!n){var c=fc(sK(a));if(s)for(n=document.createDocumentFragment();fc(c);)n.appendChild(fc(c));else n=fc(c)}var g=n.cloneNode(!0);return s?Ad(fc(g),g.lastChild):Ad(g,g),g}}(t,e,"svg")}function jr(){var t=Xy((arguments.length>0&&arguments[0]!==void 0?arguments[0]:"")+"");return Ad(t,t),t}function _o(){var t=document.createDocumentFragment(),e=document.createComment(""),A=Xy();return t.append(e,A),Ad(e,A),t}function iA(t,e){t!==null&&t.before(e)}var kGA=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"],SGA={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly",defaultvalue:"defaultValue",defaultchecked:"defaultChecked",srcobject:"srcObject",novalidate:"noValidate",allowfullscreen:"allowFullscreen",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback"},RGA=["touchstart","touchmove"];function LGA(t){return RGA.includes(t)}function pt(t,e){var A,i=e==null?"":typeof e=="object"?e+"":e;i!==((A=t.__t)!==null&&A!==void 0?A:t.__t=t.nodeValue)&&(t.__t=i,t.nodeValue=i+"")}function xGA(t,e){return function(A,i){var{target:n,anchor:o,props:r={},events:s,context:a,intro:c=!0}=i;(function(){if(i2===void 0){i2=window,bsA=/Firefox/.test(navigator.userAgent);var B=Element.prototype,E=Node.prototype,u=Text.prototype;ksA=t2(E,"firstChild").get,SsA=t2(E,"nextSibling").get,orA(B)&&(B.__click=void 0,B.__className=void 0,B.__attributes=null,B.__style=void 0,B.__e=void 0),orA(u)&&(u.__t=void 0)}})();var g=new Set,I=B=>{for(var E=0;E0&&arguments[0]!==void 0?arguments[0]:{};return new Promise(h=>{u.outro?vQ(E,()=>{tg(E),h(void 0)}):(tg(E),h(void 0))})}}(()=>{var B=o??n.appendChild(Xy());return s0(()=>{a&&(ft({}),jn.c=a),s&&(r.$$events=s),C=A(B,r)||{},a&&mt()}),()=>{for(var E of g){n.removeEventListener(E,T3);var u=aQ.get(E);--u===0?(document.removeEventListener(E,T3),aQ.delete(E)):aQ.set(E,u)}var h;bG.delete(I),B!==o&&((h=B.parentNode)===null||h===void 0||h.removeChild(B))}});return kG.set(C,d),C}(t,e)}var aQ=new Map,kG=new WeakMap;function ws(t){jn===null&&lf(),xQ&&jn.l!==null?WsA(jn).m.push(t):vG(()=>{var e=oA(t);if(typeof e=="function")return e})}function ig(t){jn===null&&lf(),ws(()=>()=>oA(t))}function NGA(){var t=jn;return t===null&&lf(),(e,A,i)=>{var n,o=(n=t.s.$$events)===null||n===void 0?void 0:n[e];if(o){var r=NQ(o)?o.slice():[o],s=function(c,g){var{bubbles:I=!1,cancelable:C=!1}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return new CustomEvent(c,{detail:g,bubbles:I,cancelable:C})}(e,A,i);for(var a of r)a.call(t.x,s);return!s.defaultPrevented}return!0}}function FGA(t){jn===null&&lf(),jn.l===null&&function(){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}(),WsA(jn).b.push(t)}function WsA(t){var e,A=t.l;return(e=A.u)!==null&&e!==void 0?e:A.u={a:[],b:[],m:[]}}function GA(t,e){var[A,i]=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[0,0],n=t,o=null,r=null,s=Ds,a=!1,c=function(I){a=!0,g(!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],I)},g=(I,C)=>{s!==(s=I)&&(s?(o?Ly(o):C&&(o=s0(()=>C(n))),r&&vQ(r,()=>{r=null})):(r?Ly(r):C&&(r=s0(()=>C(n,[A+1,i]))),o&&vQ(o,()=>{o=null})))};lI(()=>{a=!1,e(c),a||g(null,null)},A>0?gf:0)}function XsA(t,e,A){var i,n=t,o=Ds,r=FQ()?fGA:iK;lI(()=>{r(o,o=e())&&(i&&vQ(i),i=s0(()=>A(n)))})}function cr(t,e){return e}function jo(t,e,A,i,n){var o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null,r=t,s={flags:e,items:new Map,first:null};!(4&e)||(r=t.appendChild(Xy()));var a=null,c=!1,g=ZA(()=>{var I=A();return NQ(I)?I:I==null?[]:pG(I)});lI(()=>{var I=l(g),C=I.length;c&&C===0||(c=C===0,function(d,B,E,u,h,w,x){var R,D,G,J,z,K,O=!!(8&h),V=!!(3&h),j=d.length,dA=B.items,fA=B.first,EA=fA,IA=null,SA=[],nA=[];if(O)for(K=0;K0){var We=4&h&&j===0?E:null;if(O){for(K=0;K0&&Me.length===0&&zA!==null;if(Gt){var ct=zA.parentNode;ct.textContent="",ct.append(zA),xA.clear(),O1(OA,gA[0].prev,gA[LA-1].next)}GsA(Me,()=>{for(var oe=0;oe{if(D!==void 0)for(z of D){var OA;(OA=z.a)===null||OA===void 0||OA.apply()}}),qn.first=B.first&&B.first.e,qn.last=IA&&IA.e}(I,s,r,n,e,i,A),o!==null&&(C===0?a?Ly(a):a=s0(()=>o(r)):a!==null&&vQ(a,()=>{a=null})),l(g))})}function _GA(t,e,A,i){1&i&&yG(t.v,e),2&i?yG(t.i,A):t.i=A}function GGA(t,e,A,i,n,o,r,s,a,c){var g=1&a?16&a?$C(n):$(n,!1,!1):n,I=2&a?$C(r):r,C={i:I,v:g,k:o,a:null,e:null,prev:A,next:i};try{return C.e=s0(()=>s(t,g,I,c),!1),C.e.prev=A&&A.e,C.e.next=i&&i.e,A===null?e.first=C:(A.next=C,A.e.next=C.e),i!==null&&(i.prev=C,i.e.prev=C.e),C}finally{}}function drA(t,e,A){for(var i=t.next?t.next.e.nodes_start:A,n=e?e.e.nodes_start:A,o=t.e.nodes_start;o!==i;){var r=$y(o);n.before(o),o=r}}function O1(t,e,A){e===null?t.first=A:(e.next=A,e.e.next=A&&A.e),A!==null&&(A.prev=e,A.e.prev=e&&e.e)}function $sA(t,e){var A=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=arguments.length>3&&arguments[3]!==void 0&&arguments[3],n=t,o="";we(()=>{var r,s=qn;if(o!==(o=(r=e())!==null&&r!==void 0?r:"")&&(s.nodes_start!==null&&(FsA(s.nodes_start,s.nodes_end),s.nodes_start=s.nodes_end=null),o!=="")){var a=o+"";A?a="".concat(a,""):i&&(a="".concat(a,""));var c=sK(a);if((A||i)&&(c=fc(c)),Ad(fc(c),c.lastChild),A||i)for(;fc(c);)n.before(fc(c));else n.before(c)}})}function Po(t,e,A,i,n){var o,r=(o=e.$$slots)===null||o===void 0?void 0:o[A],s=!1;r===!0&&(r=e[A==="default"?"children":A],s=!0),r===void 0?n!==null&&n(t):r(t,s?()=>i:i)}function AaA(t,e,A){var i,n,o=t;lI(()=>{i!==(i=e())&&(n&&(vQ(n),n=null),i&&(n=s0(()=>A(o,i))))},gf)}function Ts(t,e,A){rs(()=>{var i=oA(()=>e(t,A?.())||{});if(A&&i!=null&&i.update){var n=!1,o={};If(()=>{var r=A();k(r),n&&iK(o,r)&&(o=r,i.update(r))}),n=!0}if(i!=null&&i.destroy)return()=>i.destroy()})}function KGA(t,e){var A,i=void 0;lI(()=>{i!==(i=e())&&(A&&(tg(A),A=null),i&&(A=s0(()=>{rs(()=>i(t))})))})}function eaA(t){var e,A,i="";if(typeof t=="string"||typeof t=="number")i+=t;else if(typeof t=="object")if(Array.isArray(t)){var n=t.length;for(e=0;e1&&arguments[1]!==void 0&&arguments[1]?" !important;":";",A="";for(var i in t){var n=t[i];n!=null&&n!==""&&(A+=" "+i+": "+n+e)}return A}function $_(t){return t[0]!=="-"||t[1]!=="-"?t.toLowerCase():t}function jt(t,e,A,i,n,o){var r=t.__className;if(r!==A||r===void 0){var s=function(g,I,C){var d=g==null?"":""+g;if(I&&(d=d?d+" "+I:I),C){for(var B in C)if(C[B])d=d?d+" "+B:B;else if(d.length)for(var E=B.length,u=0;(u=d.indexOf(B,u))>=0;){var h=u+E;u!==0&&!BrA.includes(d[u-1])||h!==d.length&&!BrA.includes(d[h])?u=h:d=(u===0?"":d.substring(0,u))+d.substring(h+1)}}return d===""?null:d}(A,i,o);s==null?t.removeAttribute("class"):e?t.className=s:t.setAttribute("class",s),t.__className=A}else if(o&&n!==o)for(var a in o){var c=!!o[a];n!=null&&c===!!n[a]||t.classList.toggle(a,c)}return o}function AG(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},A=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;for(var n in A){var o=A[n];e[n]!==o&&(A[n]==null?t.style.removeProperty(n):t.style.setProperty(n,o,i))}}function eg(t,e,A,i){if(t.__style!==e){var n=function(o,r){if(r){var s,a,c="";if(Array.isArray(r)?(s=r[0],a=r[1]):s=r,o){o=String(o).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var g=!1,I=0,C=!1,d=[];s&&d.push(...Object.keys(s).map($_)),a&&d.push(...Object.keys(a).map($_));for(var B=0,E=-1,u=o.length,h=0;h2&&arguments[2]!==void 0&&arguments[2];if(t.multiple){if(e==null)return;if(!NQ(e))return void console.warn("https://svelte.dev/e/select_multiple_invalid_value");for(var i of t.options)i.selected=e.includes(QrA(i))}else{for(i of t.options)if(mGA(QrA(i),e))return void(i.selected=!0);A&&e===void 0||(t.selectedIndex=-1)}}function UGA(t){var e=new MutationObserver(()=>{SG(t,t.__value)});e.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),oK(()=>{e.disconnect()})}function QrA(t){return"__value"in t?t.__value:t.value}var dQ=Symbol("class"),J3=Symbol("style"),taA=Symbol("is custom element"),iaA=Symbol("is html");function ed(t,e){var A=aK(t);A.value!==(A.value=e??void 0)&&(t.value!==e||e===0&&t.nodeName==="PROGRESS")&&(t.value=e??"")}function gn(t,e,A,i){var n=aK(t);n[e]!==(n[e]=A)&&(e==="loading"&&(t[hGA]=A),A==null?t.removeAttribute(e):typeof A!="string"&&naA(t).includes(e)?t[e]=A:t.setAttribute(e,A))}function JGA(t,e,A,i){var n,o=aK(t),r=o[taA],s=!o[iaA],a=e||{},c=t.tagName==="OPTION";for(var g in e)g in A||(A[g]=null);A.class?A.class=rI(A.class):(i||A[dQ])&&(A.class=null),A[J3]&&((n=A.style)!==null&&n!==void 0||(A.style=null));var I,C,d,B,E,u,h=naA(t),w=function(R){var D=A[R];if(c&&R==="value"&&D==null)return t.value=t.__value="",a[R]=D,0;if(R==="class")return I=t.namespaceURI==="http://www.w3.org/1999/xhtml",jt(t,I,D,i,e?.[dQ],A[dQ]),a[R]=D,a[dQ]=A[dQ],0;if(R==="style")return eg(t,D,e?.[J3],A[J3]),a[R]=D,a[J3]=A[J3],0;if(D===(C=a[R])&&(D!==void 0||!t.hasAttribute(R))||(a[R]=D,(d=R[0]+R[1])==="$$"))return 0;if(d==="on"){var G={},J="$$"+R,z=R.slice(2);if(B=function(fA){return kGA.includes(fA)}(z),function(fA){return fA.endsWith("capture")&&fA!=="gotpointercapture"&&fA!=="lostpointercapture"}(z)&&(z=z.slice(0,-7),G.capture=!0),!B&&C){if(D!=null)return 0;t.removeEventListener(z,a[J],G),a[J]=null}if(D!=null)if(B)t["__".concat(z)]=D,df([z]);else{let fA=function(EA){a[R].call(this,EA)};var dA=fA;a[J]=ZsA(z,t,fA,G)}else B&&(t["__".concat(z)]=void 0)}else if(R==="style")gn(t,R,D);else if(R==="autofocus")(function(fA,EA){if(EA){var IA=document.body;fA.autofocus=!0,A7(()=>{document.activeElement===IA&&fA.focus()})}})(t,!!D);else if(r||R!=="__value"&&(R!=="value"||D==null))if(R==="selected"&&c)(function(fA,EA){EA?fA.hasAttribute("selected")||fA.setAttribute("selected",""):fA.removeAttribute("selected")})(t,D);else if(E=R,s||(E=function(fA){var EA;return fA=fA.toLowerCase(),(EA=SGA[fA])!==null&&EA!==void 0?EA:fA}(E)),u=E==="defaultValue"||E==="defaultChecked",D!=null||r||u)u||h.includes(E)&&(r||typeof D!="string")?t[E]=D:typeof D!="function"&&gn(t,E,D);else if(o[R]=null,E==="value"||E==="checked"){var K=t,O=e===void 0;if(E==="value"){var V=K.defaultValue;K.removeAttribute(E),K.defaultValue=V,K.value=K.__value=O?V:null}else{var j=K.defaultChecked;K.removeAttribute(E),K.defaultChecked=j,K.checked=!!O&&j}}else t.removeAttribute(R);else t.value=t.__value=D};for(var x in A)w(x);return a}function vy(t,e){var A=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&arguments[4]!==void 0&&arguments[4],n=arguments.length>5&&arguments[5]!==void 0?arguments[5]:_Q,o=(arguments.length>2&&arguments[2]!==void 0?arguments[2]:[]).map(n),r=void 0,s={},a=t.nodeName==="SELECT",c=!1;if(lI(()=>{var I=e(...o.map(l)),C=JGA(t,r,I,A,i);for(var d of(c&&a&&"value"in I&&SG(t,I.value),Object.getOwnPropertySymbols(s)))I[d]||tg(s[d]);for(var B of Object.getOwnPropertySymbols(I)){var E=I[B];B.description!=="@attach"||r&&E===r[B]||(s[B]&&tg(s[B]),s[B]=s0(()=>KGA(t,()=>E))),C[B]=E}r=C}),a){var g=t;rs(()=>{SG(g,r.value,!0),UGA(g)})}c=!0}function aK(t){var e;return(e=t.__attributes)!==null&&e!==void 0?e:t.__attributes={[taA]:t.nodeName.includes("-"),[iaA]:t.namespaceURI==="http://www.w3.org/1999/xhtml"}}var urA=new Map;function naA(t){var e,A=urA.get(t.nodeName);if(A)return A;urA.set(t.nodeName,A=[]);for(var i=t,n=Element.prototype;n!==i;){for(var o in e=usA(i))e[o].set&&A.push(o);i=eK(i)}return A}function Fy(t,e){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e,i=FQ();bGA(t,"input",n=>{var o=n?t.defaultValue:t.value;if(o=eG(t)?tG(o):o,A(o),i&&o!==(o=e())){var r=t.selectionStart,s=t.selectionEnd;t.value=o??"",s!==null&&(t.selectionStart=r,t.selectionEnd=Math.min(s,t.value.length))}}),oA(e)==null&&t.value&&A(eG(t)?tG(t.value):t.value),If(()=>{var n=e();eG(t)&&n===tG(t.value)||(t.type!=="date"||n||t.value)&&n!==t.value&&(t.value=n??"")})}function eG(t){var e=t.type;return e==="number"||e==="range"}function tG(t){return t===""?null:+t}function Ft(t,e,A){var i=t2(t,e);i&&i.set&&(t[e]=A,oK(()=>{t[e]=null}))}function hrA(t,e){return t===e||t?.[i0]===e}function Qo(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,A=arguments.length>2?arguments[2]:void 0;return rs(()=>{var i,n;return If(()=>{i=n,n=[],oA(()=>{t!==A(...n)&&(e(t,...n),i&&hrA(A(...i),t)&&e(null,...i))})}),()=>{A7(()=>{n&&hrA(A(...n),t)&&e(null,...n)})}}),t}function Z0(t){return function(){for(var e=arguments.length,A=new Array(e),i=0;i0&&arguments[0]!==void 0&&arguments[0],e=jn,A=e.l.u;if(A){var i,n=()=>k(e.s);if(t){var o=0,r={},s=_Q(()=>{var a=!1,c=e.s;for(var g in c)c[g]!==r[g]&&(r[g]=c[g],a=!0);return a&&o++,o});n=()=>l(s)}A.b.length&&(i=()=>{frA(e,n),Ry(A.b)},RsA(),gI(2097160,i,!0)),vG(()=>{var a=oA(()=>A.m.map(BGA));return()=>{for(var c of a)typeof c=="function"&&c()}}),A.a.length&&vG(()=>{frA(e,n),Ry(A.a)})}}function frA(t,e){if(t.l.s)for(var A of t.l.s)l(A);e()}function i7(t){var e=$C(0);return function(){return arguments.length===1?(y(e,l(e)+1),arguments[0]):(l(e),t())}}function H3(t,e){var A,i=(A=t.$$events)===null||A===void 0?void 0:A[e.type],n=NQ(i)?i.slice():i==null?[]:[i];for(var o of n)o.call(this,e)}var ly=!1,YGA={get(t,e){if(!t.exclude.includes(e))return l(t.version),e in t.special?t.special[e]():t.props[e]},set(t,e,A){if(!(e in t.special)){var i=qn;try{oI(t.parent_effect),t.special[e]=M({get[e](){return t.props[e]}},e,4)}finally{oI(i)}}return t.special[e](A),crA(t.version),!0},getOwnPropertyDescriptor(t,e){if(!t.exclude.includes(e))return e in t.props?{enumerable:!0,configurable:!0,value:t.props[e]}:void 0},deleteProperty:(t,e)=>(t.exclude.includes(e)||(t.exclude.push(e),crA(t.version)),!0),has:(t,e)=>!t.exclude.includes(e)&&e in t.props,ownKeys:t=>Reflect.ownKeys(t.props).filter(e=>!t.exclude.includes(e))};function Iy(t,e){return new Proxy({props:t,exclude:e,special:{},version:$C(0),parent_effect:qn},YGA)}var TGA={get(t,e){for(var A=t.props.length;A--;){var i=t.props[A];if(U3(i)&&(i=i()),typeof i=="object"&&i!==null&&e in i)return i[e]}},set(t,e,A){for(var i=t.props.length;i--;){var n=t.props[i];U3(n)&&(n=n());var o=t2(n,e);if(o&&o.set)return o.set(A),!0}return!1},getOwnPropertyDescriptor(t,e){for(var A=t.props.length;A--;){var i=t.props[A];if(U3(i)&&(i=i()),typeof i=="object"&&i!==null&&e in i){var n=t2(i,e);return n&&!n.configurable&&(n.configurable=!0),n}}},has(t,e){if(e===i0||e===fsA)return!1;for(var A of t.props)if(U3(A)&&(A=A()),A!=null&&e in A)return!0;return!1},ownKeys(t){var e=[];for(var A of t.props)if(U3(A)&&(A=A()),A){for(var i in A)e.includes(i)||e.push(i);for(var n of Object.getOwnPropertySymbols(A))e.includes(n)||e.push(n)}return e}};function AI(){for(var t=arguments.length,e=new Array(t),A=0;A(g&&(g=!1,c=a?oA(i):i),c);if(s){var C,d,B=i0 in t||fsA in t;n=(C=(d=t2(t,e))===null||d===void 0?void 0:d.set)!==null&&C!==void 0?C:B&&e in t?D=>t[e]=D:void 0}var E,u=!1;if(s?[o,u]=function(D){var G=ly;try{return ly=!1,[D(),ly]}finally{ly=G}}(()=>t[e]):o=t[e],o===void 0&&i!==void 0&&(o=I(),n&&(r&&function(){throw new Error("https://svelte.dev/e/props_invalid_value")}(),n(o))),E=r?()=>{var D=t[e];return D===void 0?I():(g=!0,D)}:()=>{var D=t[e];return D!==void 0&&(c=void 0),D===void 0?c:D},r&&!(4&A))return E;if(n){var h=t.$$legacy;return function(D,G){return arguments.length>0?(r&&G&&!h&&!u||n(G?E():D),D):E()}}var w=!1,x=(1&A?_Q:ZA)(()=>(w=!1,E()));s&&l(x);var R=qn;return function(D,G){if(arguments.length>0){var J=G?l(x):r&&s?EQ(D):D;return y(x,J),w=!0,c!==void 0&&(c=J),D}return iI&&w||(R.f&tK)!==0?x.v:l(x)}}function xr(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(i){var n=function(o){try{if(typeof window<"u"&&window.localStorage!==void 0)return window.localStorage[o]}catch{}}("debug");return n!=null&&n.endsWith("*")?i.startsWith(n.slice(0,-1)):i===n}(t);if(!e)return HGA;var A=function(i){for(var n=0,o=0;o9466848e5&&isFinite(t)&&Math.floor(t)===t&&!isNaN(new Date(t).valueOf());if(typeof t=="bigint")return RG(Number(t));try{var e=t&&t.valueOf();if(e!==t)return RG(e)}catch{return!1}return!1}function oaA(t){(Cy=Cy||window.document.createElement("div")).style.color="",Cy.style.color=t;var e=Cy.style.color;return e!==""?e.replace(/\s+/g,"").toLowerCase():void 0}var Cy=void 0;function jGA(t){return typeof t=="string"&&t.length<99&&!!oaA(t)}function gK(t,e){if(typeof t=="number"||typeof t=="string"||typeof t=="boolean"||t===void 0)return typeof t;if(typeof t=="bigint")return"number";if(t===null)return"null";if(Array.isArray(t))return"array";if(nn(t))return"object";var A=e.stringify(t);return A&&cK(A)?"number":A==="true"||A==="false"?"boolean":A==="null"?"null":"unknown"}var qGA=/^https?:\/\/\S+$/;function n7(t){return typeof t=="string"&&qGA.test(t)}function GQ(t,e){if(t==="")return"";var A=t.trim();return A==="null"?null:A==="true"||A!=="false"&&(cK(A)?e.parse(A):t)}var VGA=[];function prA(t,e){if(t.length!==e.length)return!1;for(var A=0;A1&&arguments[1]!==void 0&&arguments[1],A={};if(!Array.isArray(t))throw new TypeError("Array expected");function i(r,s){(!Array.isArray(r)&&!nn(r)||e&&s.length>0)&&(A[Ct(s)]=!0),nn(r)&&Object.keys(r).forEach(a=>{i(r[a],s.concat(a))})}for(var n=Math.min(t.length,1e4),o=0;oe?t.slice(0,e):t}function DrA(t){return pe({},t)}function wrA(t){return Object.values(t)}function yrA(t,e,A,i){var n=t.slice(0),o=n.splice(e,A);return n.splice.apply(n,[e+i,0,...o]),n}function ZGA(t,e,A){return t.slice(0,e).concat(A).concat(t.slice(e))}function Bf(t,e){try{return e.parse(t)}catch{return e.parse(Uc(t))}}function saA(t,e){try{return Bf(t,e)}catch{return}}function Ef(t,e){t=t.replace(caA,"");try{return e(t)}catch{}try{return e("{"+t+"}")}catch{}try{return e("["+t+"]")}catch{}throw new Error("Failed to parse partial JSON")}function aaA(t){t=t.replace(caA,"");try{return Uc(t)}catch{}try{var e=Uc("["+t+"]");return e.substring(1,e.length-1)}catch{}try{var A=Uc("{"+t+"}");return A.substring(1,A.length-1)}catch{}throw new Error("Failed to repair partial JSON")}var caA=/,\s*$/;function MQ(t,e){var A=MrA.exec(e);if(A){var i=ss(A[2]),n=function(d,B){for(var E=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:d.length,h=0,w=E;w"line ".concat(n+1," column ").concat(o+1))}}var r=AKA.exec(e),s=r?ss(r[1]):void 0,a=s!==void 0?s-1:void 0,c=eKA.exec(e),g=c?ss(c[1]):void 0,I=g!==void 0?g-1:void 0,C=a!==void 0&&I!==void 0?function(d,B,E){for(var u=d.indexOf(` -`),h=1;h1&&arguments[1]!==void 0?arguments[1]:void 0,A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:JSON;return W3(t)?t:{text:A.stringify(t.json,null,e)}}function vrA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:JSON;return X3(t)?t:{json:e.parse(t.text)}}function xG(t,e,A){return WGA(t,e,A).text}function XGA(t,e){return $GA(t,e)>e}function $GA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1/0;if(W3(t))return t.text.length;var A=t.json,i=0;return function n(o){if(Array.isArray(o)){if((i+=o.length-1+2)>e)return;for(var r=0;re)return}else if(nn(o)){var s=Object.keys(o);i+=2+s.length+(s.length-1);for(var a=0;alaA(daA(String(t))),unescapeValue:t=>BaA(IaA(t))},nKA={escapeValue:t=>daA(String(t)),unescapeValue:t=>BaA(t)},oKA={escapeValue:t=>laA(String(t)),unescapeValue:t=>IaA(t)},rKA={escapeValue:t=>String(t),unescapeValue:t=>t};function laA(t){return t.replace(/[^\x20-\x7F]/g,e=>{var A;return e==="\b"||e==="\f"||e===` -`||e==="\r"||e===" "?e:"\\u"+("000"+((A=e.codePointAt(0))===null||A===void 0?void 0:A.toString(16))).slice(-4)})}function IaA(t){return t.replace(/\\u[a-fA-F0-9]{4}/g,e=>{try{var A=JSON.parse('"'+e+'"');return CaA[A]||A}catch{return e}})}var CaA={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},sKA={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":` -`,"\\r":"\r","\\t":" "};function daA(t){return t.replace(/["\b\f\n\r\t\\]/g,e=>CaA[e]||e)}function BaA(t){return t.replace(/\\["bfnrt\\]/g,e=>sKA[e]||e)}function bQ(t){return typeof t!="string"?String(t):t.endsWith(` -`)?t+` -`:t}function EaA(t,e){return KQ(t,A=>A.nodeName.toUpperCase()===e.toUpperCase())}function Z1(t,e,A){return KQ(t,i=>function(n,o,r){return typeof n.getAttribute=="function"&&n.getAttribute(o)===r}(i,e,A))}function KQ(t,e){return!!IK(t,e)}function IK(t,e){for(var A=t;A&&!e(A);)A=A.parentNode;return A}function Qf(t){var e,A;return(e=t==null||(A=t.ownerDocument)===null||A===void 0?void 0:A.defaultView)!==null&&e!==void 0?e:void 0}function CK(t){var e=Qf(t),A=e?.document.activeElement;return!!A&&KQ(A,i=>i===t)}function QaA(t,e){return IK(t,A=>A.nodeName===e)}function oG(t){return Z1(t,"data-type","selectable-key")?Ln.key:Z1(t,"data-type","selectable-value")?Ln.value:Z1(t,"data-type","insert-selection-area-inside")?Ln.inside:Z1(t,"data-type","insert-selection-area-after")?Ln.after:Ln.multi}function My(t){return encodeURIComponent(Ct(t))}function uaA(t){var e,A=IK(t,n=>!(n==null||!n.hasAttribute)&&n.hasAttribute("data-path")),i=(e=A?.getAttribute("data-path"))!==null&&e!==void 0?e:void 0;return i?xs(decodeURIComponent(i)):void 0}function aKA(t){var{allElements:e,currentElement:A,direction:i,hasPrio:n=()=>!0,margin:o=10}=t,r=OR(e.filter(function(h){var w=h.getBoundingClientRect();return w.width>0&&w.height>0}),a),s=a(A);function a(h){var w=h.getBoundingClientRect();return{x:w.left+w.width/2,y:w.top+w.height/2,rect:w,element:h}}function c(h,w){var x=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,R=h.x-w.x,D=(h.y-w.y)*x;return Math.sqrt(R*R+D*D)}var g=h=>c(h,s);if(i==="Left"||i==="Right"){var I=i==="Left"?r.filter(h=>{return w=s,h.rect.left+o{return w=s,h.rect.right>w.rect.right+o;var w}),C=I.filter(h=>{return w=h,x=s,Math.abs(w.y-x.y)c(h,s,10));return d?.element}if(i==="Up"||i==="Down"){var B=i==="Up"?r.filter(h=>{return w=s,h.y+o{return w=s,h.y>w.y+o;var w}),E=B.filter(h=>n(h.element)),u=QE(E,g)||QE(B,g);return u?.element}}function dK(){var t,e,A,i;return typeof navigator<"u"&&(t=(e=(A=navigator)===null||A===void 0||(A=A.platform)===null||A===void 0?void 0:A.toUpperCase().includes("MAC"))!==null&&e!==void 0?e:(i=navigator)===null||i===void 0||(i=i.userAgentData)===null||i===void 0||(i=i.platform)===null||i===void 0?void 0:i.toUpperCase().includes("MAC"))!==null&&t!==void 0&&t}function s2(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"+",A=[];BK(t,arguments.length>2&&arguments[2]!==void 0?arguments[2]:dK)&&A.push("Ctrl"),t.altKey&&A.push("Alt"),t.shiftKey&&A.push("Shift");var i=t.key.length===1?t.key.toUpperCase():t.key;return i in cKA||A.push(i),A.join(e)}function BK(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:dK;return t.ctrlKey||t.metaKey&&e()}var cKA={Ctrl:!0,Command:!0,Control:!0,Alt:!0,Option:!0,Shift:!0};function Ut(t,e){e===void 0&&(e={});var A=e.insertAt;if(t&&typeof document<"u"){var i=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",A==="top"&&i.firstChild?i.insertBefore(n,i.firstChild):i.appendChild(n),n.styleSheet?n.styleSheet.cssText=t:n.appendChild(document.createTextNode(t))}}Ut(`.jse-absolute-popup.svelte-1r8q3m8 { - position: relative; - left: 0; - top: 0; - width: 0; - height: 0; - z-index: 1001; -} -.jse-absolute-popup.svelte-1r8q3m8 .jse-hidden-input:where(.svelte-1r8q3m8) { - position: fixed; - left: 0; - top: 0; - width: 0; - height: 0; - padding: 0; - margin: 0; - border: none; - outline: none; - overflow: hidden; -} -.jse-absolute-popup.svelte-1r8q3m8 .jse-absolute-popup-content:where(.svelte-1r8q3m8) { - position: absolute; -}`);var gKA=vA('
            '),lKA=vA('
            ');function IKA(t,e){ft(e,!1);var A=M(e,"popup",8),i=M(e,"closeAbsolutePopup",8),n=$(),o=$();function r(I){A().options&&A().options.closeOnOuterClick&&!KQ(I.target,C=>C===l(n))&&i()(A().id)}function s(I){s2(I)==="Escape"&&(I.preventDefault(),I.stopPropagation(),i()(A().id))}ws(function(){l(o)&&l(o).focus()}),qt();var a=lKA();ce("mousedown",i2,function(I){r(I)},!0),ce("keydown",i2,s,!0),ce("wheel",i2,function(I){r(I)},!0);var c=W(a),g=I=>{var C=gKA(),d=W(C);Qo(d,B=>y(o,B),()=>l(o)),AaA(CA(d,2),()=>A().component,(B,E)=>{E(B,AI(()=>A().props))}),we(B=>eg(C,B),[()=>(l(n),k(A()),oA(()=>function(B,E){var u=B.getBoundingClientRect(),{left:h,top:w,positionAbove:x,positionLeft:R}=function(){if(E.anchor){var{anchor:D,width:G=0,height:J=0,offsetTop:z=0,offsetLeft:K=0,position:O}=E,{left:V,top:j,bottom:dA,right:fA}=D.getBoundingClientRect(),EA=O==="top"||j+J>window.innerHeight&&j>J,IA=O==="left"||V+G>window.innerWidth&&V>G;return{left:IA?fA-K:V+K,top:EA?j-z:dA+z,positionAbove:EA,positionLeft:IA}}if(typeof E.left=="number"&&typeof E.top=="number"){var{left:SA,top:nA,width:lA=0,height:wA=0}=E;return{left:SA,top:nA,positionAbove:nA+wA>window.innerHeight&&nA>wA,positionLeft:SA+lA>window.innerWidth&&SA>lA}}throw new Error('Invalid config: pass either "left" and "top", or pass "anchor"')}();return(x?"bottom: ".concat(u.top-w,"px;"):"top: ".concat(w-u.top,"px;"))+(R?"right: ".concat(u.left-h,"px;"):"left: ".concat(h-u.left,"px;"))}(l(n),A().options)))],ZA),iA(I,C)};GA(c,I=>{l(n)&&I(g)}),Qo(a,I=>y(n,I),()=>l(n)),ce("mousedown",a,function(I){I.stopPropagation()}),ce("keydown",a,s),iA(t,a),mt()}var CKA=vA(" ",1);function NG(t,e){ft(e,!1);var A,i,n=xr("jsoneditor:AbsolutePopup"),o=$([],!0);function r(c){var g=l(o).findIndex(C=>C.id===c);if(g!==-1){var I=l(o)[g];I.options.onClose&&I.options.onClose(),y(o,l(o).filter(C=>C.id!==c))}}A="absolute-popup",i={openAbsolutePopup:function(c,g,I){n("open...",g,I);var C={id:QQ(),component:c,props:g||{},options:I||{}};return y(o,[...l(o),C]),C.id},closeAbsolutePopup:r},wsA().set(A,i),pA(()=>l(o),()=>{n("popups",l(o))}),ln(),qt(!0);var s=CKA(),a=Mt(s);jo(a,1,()=>l(o),cr,(c,g)=>{IKA(c,{get popup(){return l(g)},closeAbsolutePopup:r})}),Po(CA(a,2),e,"default",{},null),iA(t,s),mt()}function uf(t,e){for(var A=new Set(e),i=t.replace(/ \(copy( \d+)?\)$/,""),n=t,o=1;A.has(n);){var r="copy"+(o>1?" "+o:"");n="".concat(i," (").concat(r,")"),o++}return n}function X0(t,e){var A=e-3;return t.length>e?t.substring(0,A)+"...":t}function dKA(t){if(t==="")return"";var e=t.toLowerCase();if(e==="null")return null;if(e==="true")return!0;if(e==="false")return!1;if(e!=="undefined"){var A=Number(t),i=parseFloat(t);return isNaN(A)||isNaN(i)?t:A}}var BKA={id:"jsonquery",name:"JSONQuery",description:` -

            - Enter a JSON Query function to filter, sort, or transform the data. - You can use functions like get, filter, - sort, pick, groupBy, uniq, etcetera. - Example query: filter(.age >= 18) -

            -`,createQuery:function(t,e){var{filter:A,sort:i,projection:n}=e,o=[];A&&A.path&&A.relation&&A.value&&o.push(["filter",[(r=A.relation,$R("1 ".concat(r," 1"))[0]),dy(A.path),dKA(A.value)]]);var r;return i&&i.path&&i.direction&&o.push(["sort",dy(i.path),i.direction==="desc"?"desc":"asc"]),n&&n.paths&&(n.paths.length>1?o.push(["pick",...n.paths.map(dy)]):o.push(["map",dy(n.paths[0])])),aX(["pipe",...o])},executeQuery:function(t,e,A){var i=gaA(A,JSON)?t:function(n){var o=A.stringify(n);return o!==void 0?JSON.parse(o):void 0}(t);return e.trim()!==""?cX(i,e):i}};function dy(t){return["get",...t]}var EKA=II("");function QKA(t,e){ft(e,!1);var A=870711,i=$(""),n=M(e,"data",8);function o(s){if(!s||!s.raw)return"";var a=s.raw,c={};return a=a.replace(/\s(?:xml:)?id=["']?([^"')\s]+)/g,(g,I)=>{var C="fa-".concat((A+=1).toString(16));return c[I]=C,' id="'.concat(C,'"')}),a=a.replace(/#(?:([^'")\s]+)|xpointer\(id\((['"]?)([^')]+)\2\)\))/g,(g,I,C,d)=>{var B=I||d;return B&&c[B]?"#".concat(c[B]):g}),a}pA(()=>k(n()),()=>{y(i,o(n()))}),ln();var r=EKA();$sA(W(r),()=>l(i),!0),iA(t,r),mt()}Ut(` - .fa-icon.svelte-1mc5hvj { - display: inline-block; - fill: currentColor; - } - .fa-flip-horizontal.svelte-1mc5hvj { - transform: scale(-1, 1); - } - .fa-flip-vertical.svelte-1mc5hvj { - transform: scale(1, -1); - } - .fa-spin.svelte-1mc5hvj { - animation: svelte-1mc5hvj-fa-spin 1s 0s infinite linear; - } - .fa-inverse.svelte-1mc5hvj { - color: #fff; - } - .fa-pulse.svelte-1mc5hvj { - animation: svelte-1mc5hvj-fa-spin 1s infinite steps(8); - } - @keyframes svelte-1mc5hvj-fa-spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } - } -`);var uKA=II(""),hKA=II(""),fKA=II(""),mKA=II("",1);function Ui(t,e){var A=Iy(e,["children","$$slots","$$events","$$legacy"]),i=Iy(A,["class","data","scale","spin","inverse","pulse","flip","label","style"]);ft(e,!1);var n=M(e,"class",8,""),o=M(e,"data",8),r=$(),s=M(e,"scale",8,1),a=M(e,"spin",8,!1),c=M(e,"inverse",8,!1),g=M(e,"pulse",8,!1),I=M(e,"flip",8,void 0),C=M(e,"label",8,""),d=M(e,"style",8,""),B=$(10),E=$(10),u=$(),h=$();function w(){var R=1;return s()!==void 0&&(R=Number(s())),isNaN(R)||R<=0?(console.warn('Invalid prop: prop "scale" should be a number over 0.'),1):1*R}function x(){return l(r)?Math.max(l(r).width,l(r).height)/16:1}pA(()=>(k(o()),k(d()),k(s())),()=>{y(r,function(R){var D;if(R){if(!("definition"in R)){if("iconName"in R&&"icon"in R){R.iconName;var[G,J,,,z]=R.icon;D={width:G,height:J,paths:(Array.isArray(z)?z:[z]).map(K=>({d:K}))}}else D=R[Object.keys(R)[0]];return D}console.error("`import faIconName from '@fortawesome/package-name/faIconName` not supported - Please use `import { faIconName } from '@fortawesome/package-name/faIconName'` instead")}}(o())),d(),s(),y(B,l(r)?l(r).width/x()*w():0),y(E,l(r)?l(r).height/x()*w():0),y(u,function(){var R="";d()!==null&&(R+=d());var D=w();return D===1?R.length===0?"":R:(R===""||R.endsWith(";")||(R+="; "),"".concat(R,"font-size: ").concat(D,"em"))}()),y(h,l(r)?"0 0 ".concat(l(r).width," ").concat(l(r).height):"0 0 ".concat(l(B)," ").concat(l(E)))}),ln(),qt(),function(R,D){var G=Iy(D,["children","$$slots","$$events","$$legacy"]),J=Iy(G,["class","width","height","box","spin","inverse","pulse","flip","style","label"]),z=M(D,"class",8,""),K=M(D,"width",8),O=M(D,"height",8),V=M(D,"box",8,"0 0 0 0"),j=M(D,"spin",8,!1),dA=M(D,"inverse",8,!1),fA=M(D,"pulse",8,!1),EA=M(D,"flip",8,"none"),IA=M(D,"style",8,""),SA=M(D,"label",8,""),nA=uKA();vy(nA,lA=>{var wA;return pe(pe({version:"1.1",class:"fa-icon ".concat((wA=z())!==null&&wA!==void 0?wA:""),width:K(),height:O(),"aria-label":SA(),role:SA()?"img":"presentation",viewBox:V(),style:IA()},J),{},{[dQ]:lA})},[()=>({"fa-spin":j(),"fa-pulse":fA(),"fa-inverse":dA(),"fa-flip-horizontal":EA()==="horizontal","fa-flip-vertical":EA()==="vertical"})],"svelte-1mc5hvj"),Po(W(nA),D,"default",{},null),iA(R,nA)}(t,AI({get label(){return C()},get width(){return l(B)},get height(){return l(E)},get box(){return l(h)},get style(){return l(u)},get spin(){return a()},get flip(){return I()},get inverse(){return c()},get pulse(){return g()},get class(){return n()}},()=>i,{children:(R,D)=>{var G=_o();Po(Mt(G),e,"default",{},J=>{var z=mKA(),K=Mt(z);jo(K,1,()=>(l(r),oA(()=>{var dA;return((dA=l(r))===null||dA===void 0?void 0:dA.paths)||[]})),cr,(dA,fA)=>{var EA=hKA();vy(EA,()=>pe({},l(fA))),iA(dA,EA)});var O=CA(K);jo(O,1,()=>(l(r),oA(()=>{var dA;return((dA=l(r))===null||dA===void 0?void 0:dA.polygons)||[]})),cr,(dA,fA)=>{var EA=fKA();vy(EA,()=>pe({},l(fA))),iA(dA,EA)});var V=CA(O),j=dA=>{QKA(dA,{get data(){return l(r)},set data(fA){y(r,fA)},$$legacy:!0})};GA(V,dA=>{l(r),oA(()=>{var fA;return(fA=l(r))===null||fA===void 0?void 0:fA.raw})&&dA(j)}),iA(J,z)}),iA(R,G)},$$slots:{default:!0}})),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-boolean-toggle.svelte-1ryp01u { - padding: 0; - margin: 1px 0 0; - vertical-align: top; - display: inline-flex; - color: var(--jse-value-color-boolean, #ff8c00); -} - -.jse-boolean-toggle.svelte-1ryp01u:not(.jse-readonly) { - cursor: pointer; -}`);var pKA=vA('
            ');function DKA(t,e){ft(e,!1);var A=M(e,"path",9),i=M(e,"value",9),n=M(e,"readOnly",9),o=M(e,"onPatch",9),r=M(e,"focus",9);qt(!0);var s,a=pKA(),c=W(a),g=ZA(()=>i()===!0?AL:eL);Ui(c,{get data(){return l(g)}}),we(I=>{gn(a,"aria-checked",i()===!0),s=jt(a,1,"jse-boolean-toggle svelte-1ryp01u",null,s,I),gn(a,"title",n()?"Boolean value ".concat(i()):"Click to toggle this boolean value")},[()=>({"jse-readonly":n()})],ZA),ce("mousedown",a,function(I){I.stopPropagation(),n()||(o()([{op:"replace",path:Ct(A()),value:!i()}]),r()())}),iA(t,a),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-color-picker-popup.svelte-s1wu8v .picker_wrapper.popup, -.jse-color-picker-popup.svelte-s1wu8v .picker_wrapper.popup .picker_arrow::before, -.jse-color-picker-popup.svelte-s1wu8v .picker_wrapper.popup .picker_arrow::after { - background: var(--jse-color-picker-background, var(--jse-panel-background, #ebebeb)); - line-height: normal; -} -.jse-color-picker-popup.svelte-s1wu8v .picker_slider, -.jse-color-picker-popup.svelte-s1wu8v .picker_sl, -.jse-color-picker-popup.svelte-s1wu8v .picker_editor input, -.jse-color-picker-popup.svelte-s1wu8v .picker_sample, -.jse-color-picker-popup.svelte-s1wu8v .picker_done button { - box-shadow: var(--jse-color-picker-border-box-shadow, #cbcbcb 0 0 0 1px); -} -.jse-color-picker-popup.svelte-s1wu8v .picker_editor input { - background: var(--jse-background-color, #fff); - color: var(--jse-text-color, #4d4d4d); -} -.jse-color-picker-popup.svelte-s1wu8v .picker_done button { - background: var(--jse-button-background, #e0e0e0); - color: var(--jse-button-color, var(--jse-text-color, #4d4d4d)); -} -.jse-color-picker-popup.svelte-s1wu8v .picker_done button:hover { - background: var(--jse-button-background-highlight, #e7e7e7); -}`);var wKA=vA('
            ');function yKA(t,e){ft(e,!1);var A=M(e,"color",8),i=M(e,"onChange",8),n=M(e,"showOnTop",8),o=$(),r=()=>{};ws(_t(function*(){var a,c=new((a=yield import("./chunk-TXJFAAIW.js"))===null||a===void 0?void 0:a.default)({parent:l(o),color:A(),popup:n()?"top":"bottom",onDone(g){var I=g.rgba[3]===1?g.hex.substring(0,7):g.hex;i()(I)}});c.show(),r=()=>{c.destroy()}})),ig(()=>{r()}),qt();var s=wKA();Qo(s,a=>y(o,a),()=>l(o)),iA(t,s),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-color-picker-button.svelte-xeg9n6 { - font-size: var(--jse-font-size-mono, 14px); - width: var(--jse-color-picker-button-size, 1em); - height: var(--jse-color-picker-button-size, 1em); - box-sizing: border-box; - padding: 0; - margin: 2px 0 0 calc(0.5 * var(--jse-padding, 10px)); - display: inline-flex; - vertical-align: top; - border: 1px solid var(--jse-text-color, #4d4d4d); - border-radius: 2px; - background: inherit; - outline: none; -} - -.jse-color-picker-button.svelte-xeg9n6:not(.jse-readonly) { - cursor: pointer; -}`);var vKA=vA('');function MKA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),{openAbsolutePopup:n}=cI("absolute-popup"),o=M(e,"path",9),r=M(e,"value",9),s=M(e,"readOnly",9),a=M(e,"onPatch",9),c=M(e,"focus",9);function g(B){a()([{op:"replace",path:Ct(o()),value:B}]),I()}function I(){c()()}pA(()=>k(r()),()=>{y(A,oaA(r()))}),pA(()=>(k(s()),k(r())),()=>{y(i,s()?"Color ".concat(r()):"Click to open a color picker")}),ln(),qt(!0);var C,d=vKA();we(B=>{var E;C=jt(d,1,"jse-color-picker-button svelte-xeg9n6",null,C,B),eg(d,"background: ".concat((E=l(A))!==null&&E!==void 0?E:"")),gn(d,"title",l(i)),gn(d,"aria-label",l(i))},[()=>({"jse-readonly":s()})],ZA),ce("click",d,function(B){var E,u;if(!s()){var h=B.target,w=h.getBoundingClientRect().top,x=((E=(u=Qf(h))===null||u===void 0?void 0:u.innerHeight)!==null&&E!==void 0?E:0)-w<300&&w>300,R={color:r(),onChange:g,showOnTop:x};n(yKA,R,{anchor:h,closeOnOuterClick:!0,onClose:I,offsetTop:18,offsetLeft:-8,height:300})}}),iA(t,d),mt()}var rG=1e3,$3=100,By=100,Gy=2e4,mQ=[{start:0,end:$3}],bKA=1048576,kKA=1048576,sG=10485760,aG="Insert or paste contents, enter [ insert a new array, enter { to insert a new object, or start typing to insert a new value",EK="Open context menu (Click here, right click on the selection, or use the context menu button or Ctrl+Q)",zC="hover-insert-inside",Ey="hover-insert-after",krA="hover-collection",cG="valid",SrA="repairable",$0=336,A2=260,O3=100,RrA={[Ag.asc]:"ascending",[Ag.desc]:"descending"};function haA(t){for(var e=qR(t,s=>s.start),A=[e[0]],i=0;i0&&arguments[0]!==void 0?arguments[0]:{expanded:!1};return{type:"array",expanded:t,visibleSections:mQ,items:[]}}function hK(){var{expanded:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{expanded:!1};return{type:"object",expanded:t,properties:{}}}var fK={createObjectDocumentState:hK,createArrayDocumentState:uK,createValueDocumentState:function(){return{type:"value"}}};function maA(t,e,A,i){var{createObjectDocumentState:n,createArrayDocumentState:o,createValueDocumentState:r}=i;return function s(a,c,g){if(Array.isArray(a)){var I=Rr(c)?c:o();if(g.length===0)return I;var C=ss(g[0]),d=s(a[C],I.items[C],g.slice(1));return Bs(I,["items",g[0]],d)}if(nn(a)){var B=Ua(c)?c:n();if(g.length===0)return B;var E=g[0],u=s(a[E],B.properties[E],g.slice(1));return Bs(B,["properties",E],u)}return QK(c)?c:r()}(t,e,A)}function uc(t,e){return Af(t,e,arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],(A,i)=>{if(A!==void 0&&i!==void 0)return Array.isArray(A)?Rr(i)?i:uK({expanded:!!td(i)&&i.expanded}):nn(A)?Ua(i)?i:hK({expanded:!!td(i)&&i.expanded}):QK(i)?i:void 0},()=>!0)}function Af(t,e,A,i,n){var o=i(t,e,A);if(Array.isArray(t)&&Rr(o)&&n(o)){var r=[];return mK(t,o.visibleSections,a=>{var c=A.concat(String(a)),g=Af(t[a],o.items[a],c,i,n);g!==void 0&&(r[a]=g)}),prA(r,o.items)?o:pe(pe({},o),{},{items:r})}if(nn(t)&&Ua(o)&&n(o)){var s={};return Object.keys(t).forEach(a=>{var c=A.concat(a),g=Af(t[a],o.properties[a],c,i,n);g!==void 0&&(s[a]=g)}),prA(Object.values(s),Object.values(o.properties))?o:pe(pe({},o),{},{properties:s})}return o}function mK(t,e,A){e.forEach(i=>{var{start:n,end:o}=i;raA(n,Math.min(t.length,o),A)})}function ef(t,e){for(var A=t,i=[],n=0;n{var I=td(g)&&!g.expanded?pe(pe({},g),{},{expanded:!0}):g;return Rr(I)?function(C,d){if(function(u,h){return u.some(w=>h>=w.start&&hfunction(c,g,I,C){return Af(c,g,I,(d,B,E)=>Array.isArray(d)&&C(E)?Rr(B)?B.expanded?B:pe(pe({},B),{},{expanded:!0}):uK({expanded:!0}):nn(d)&&C(E)?Ua(B)?B.expanded?B:pe(pe({},B),{},{expanded:!0}):hK({expanded:!0}):B,d=>td(d)&&d.expanded)}(s,a,[],i))}function KrA(t,e,A,i){return kQ(t,e,A,(n,o)=>i?function(r,s,a){return Af(r,s,a,(c,g)=>UrA(g),()=>!0)}(n,o,A):UrA(o))}function UrA(t){return Rr(t)&&t.expanded?pe(pe({},t),{},{expanded:!1,visibleSections:mQ}):Ua(t)&&t.expanded?pe(pe({},t),{},{expanded:!1}):t}function paA(t,e,A){var i={json:t,documentState:e},n=A.reduce((o,r)=>({json:Ma(o.json,[r]),documentState:NKA(o.json,o.documentState,r)}),i);return{json:n.json,documentState:uc(n.json,n.documentState)}}function NKA(t,e,A){if(fR(A))return JrA(t,e,A,void 0);if(mR(A))return YrA(t,e,A);if(V8(A)){var i=ba(t,A.path),n=t0(t,e,i);return n?o7(t,e,i,{type:"value",enforceString:n}):e}return Z8(A)||i1(A)?function(o,r,s){if(i1(s)&&s.from===s.path)return r;var a=r,c=ba(o,s.from),g=$l(o,a,c);return i1(s)&&(a=YrA(o,a,{path:s.from})),a=JrA(o,a,{path:s.path},g),a}(t,e,A):e}function $l(t,e,A){try{return Ye(e,ef(t,A))}catch{return}}function pK(t,e,A,i,n){var o=maA(t,e,A,n);return $h(o,ef(t,A),r=>{var s=Ye(t,A);return i(s,r)})}function o7(t,e,A,i){return function(n,o,r,s,a){var c=maA(n,o,r,a);return Bs(c,ef(n,r),s)}(t,e,A,i,fK)}function kQ(t,e,A,i){return pK(t,e,A,i,fK)}function JrA(t,e,A,i){var n=ba(t,A.path),o=e;return o=kQ(t,o,yi(n),(r,s)=>{if(!Rr(s))return s;var a=ss(li(n)),{items:c,visibleSections:g}=s;return pe(pe({},s),{},{items:a{if(!Rr(s))return s;var a=ss(li(i)),{items:c,visibleSections:g}=s;return pe(pe({},s),{},{items:c.slice(0,a).concat(c.slice(a+1)),visibleSections:DaA(g,a,-1)})}):function(r,s,a){var c=ef(r,a);return As(s,c)?lC(s,ef(r,a)):s}(t,e,i)}function DaA(t,e,A){return function(i){for(var n=i.slice(0),o=1;o({start:i.start>e?i.start+A:i.start,end:i.end>e?i.end+A:i.end})))}function t0(t,e,A){var i,n=Ye(t,A),o=$l(t,e,A),r=QK(o)?o.enforceString:void 0;return typeof r=="boolean"?r:typeof(i=n)=="string"&&typeof GQ(i,JSON)!="string"}function hf(t,e){var A=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=t.indexOf(e);return i!==-1?A?t.slice(i):t.slice(i+1):[]}function DK(t,e){var A=[];return function i(n,o,r){A.push(r),wo(n)&&Rr(o)&&o.expanded&&mK(n,o.visibleSections,s=>{i(n[s],o.items[s],r.concat(String(s)))}),Lo(n)&&Ua(o)&&o.expanded&&Object.keys(n).forEach(s=>{i(n[s],o.properties[s],r.concat(s))})}(t,e,[]),A}function waA(t,e){var A=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],i=[];return function n(o,r){i.push({path:r,type:Tg.value});var s=$l(t,e,r);if(o&&td(s)&&s.expanded){if(A&&i.push({path:r,type:Tg.inside}),wo(o)){var a=Rr(s)?s.visibleSections:mQ;mK(o,a,c=>{var g=r.concat(String(c));n(o[c],g),A&&i.push({path:g,type:Tg.after})})}Lo(o)&&Object.keys(o).forEach(c=>{var g=r.concat(c);i.push({path:g,type:Tg.key}),n(o[c],g),A&&i.push({path:g,type:Tg.after})})}}(t,[]),i}function gG(t,e,A){var i=DK(t,e),n=i.map(Ct).indexOf(Ct(A));if(n!==-1&&n3&&arguments[3]!==void 0?arguments[3]:10240;return Yg(t,e,A,XGA({json:Ye(t,A)},i)?z3:wK)}function lG(t,e,A){var i=$l(t,e,A);return td(i)&&i.expanded?e:id(t,e,A)}function z3(t){return t.length===0||t.length===1&&t[0]==="0"}function KG(t){return t.length===0}function wK(){return!0}function by(){return!1}function Ya(t){return t&&t.type===Ln.after||!1}function yr(t){return t&&t.type===Ln.inside||!1}function Lr(t){return t&&t.type===Ln.key||!1}function Vi(t){return t&&t.type===Ln.value||!1}function Gn(t){return t&&t.type===Ln.multi||!1}function r7(t){return Gn(t)&&ri(t.focusPath,t.anchorPath)}function tf(t){return Gn(t)||Ya(t)||yr(t)||Lr(t)||Vi(t)}function IG(t){return t&&t.type===Ln.text||!1}function sI(t,e){var A=[];return function(i,n,o){if(n){var r=WC(n),s=nt(n);if(ri(r,s))return o(r);if(i!==void 0){var a=vaA(r,s);if(r.length===a.length||s.length===a.length)return o(a);var c=Js(r,s),g=e2(i,c),I=tI(i,c),C=r2(i,c,g),d=r2(i,c,I);if(!(C===-1||d===-1)){var B=Ye(i,a);if(Lo(B)){for(var E=Object.keys(B),u=C;u<=d;u++){var h=o(a.concat(E[u]));if(h!==void 0)return h}return}if(wo(B)){for(var w=C;w<=d;w++){var x=o(a.concat(String(w)));if(x!==void 0)return x}return}throw new Error("Failed to create selection")}}}}(t,e,i=>{A.push(i)}),A}function yaA(t){return yr(t)?t.path:yi(nt(t))}function e2(t,e){if(!Gn(e))return e.path;var A=r2(t,e,e.anchorPath);return r2(t,e,e.focusPath)A?e.focusPath:e.anchorPath}function TrA(t,e,A){var i=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(A){var n=i?nt(A):e2(t,A),o=function(a,c,g){var I=DK(a,c),C=I.map(Ct),d=Ct(g),B=C.indexOf(d);if(B!==-1&&B>0)return I[B-1]}(t,e,n);if(i)return yr(A)||Ya(A)?o!==void 0?Js(n,n):void 0:o!==void 0?Js(WC(A),o):void 0;if(Ya(A)||yr(A))return vi(n);if(Lr(A)){if(o===void 0||o.length===0)return;var r=yi(o),s=Ye(t,r);return Array.isArray(s)||Gi(o)?vi(o):a2(o)}return Vi(A),o!==void 0?vi(o):void 0}}function HrA(t,e,A,i){if(!A)return{caret:void 0,previous:void 0,next:void 0};var n=waA(t,e,i),o=n.findIndex(r=>ri(r.path,nt(A))&&String(r.type)===String(A.type));return{caret:o!==-1?n[o]:void 0,previous:o!==-1&&o>0?n[o-1]:void 0,next:o!==-1&&oA[i].length;)i++;var n=A[i];return n===void 0||n.length===0||Array.isArray(Ye(t,yi(n)))?vi(n):a2(n)}function SQ(t,e){if(e.length===1){var A=Tc(e);if(A.op==="replace")return vi(ba(t,A.path))}if(!Gi(e)&&e.every(r=>r.op==="move")){var i=Tc(e),n=e.slice(1);if((Z8(i)||i1(i))&&i.from!==i.path&&n.every(r=>(Z8(r)||i1(r))&&r.from===r.path))return a2(ba(t,i.path))}var o=e.filter(r=>r.op!=="test"&&r.op!=="remove"&&(r.op!=="move"||r.from!==r.path)&&typeof r.path=="string").map(r=>ba(t,r.path));if(!Gi(o))return{type:Ln.multi,anchorPath:Tc(o),focusPath:li(o)}}function vaA(t,e){for(var A=0;AA.length&&e.length>A.length;return{type:Ln.multi,anchorPath:i?A.concat(t[A.length]):A,focusPath:i?A.concat(e[A.length]):A}}function MaA(t,e,A,i){if(Lr(e))return String(li(e.path));if(Vi(e)){var n=Ye(t,e.path);return typeof n=="string"?n:i.stringify(n,null,A)}if(Gn(e)){if(Gi(e.focusPath))return i.stringify(t,null,A);var o=yaA(e),r=Ye(t,o);if(Array.isArray(r)){if(r7(e)){var s=Ye(t,e.focusPath);return i.stringify(s,null,A)}return sI(t,e).map(a=>{var c=Ye(t,a);return"".concat(i.stringify(c,null,A),",")}).join(` -`)}return sI(t,e).map(a=>{var c=li(a),g=Ye(t,a);return"".concat(i.stringify(c),": ").concat(i.stringify(g,null,A),",")}).join(` -`)}}function Sr(t){return(Lr(t)||Vi(t))&&t.edit===!0}function uQ(t){return Lr(t)||Vi(t)||Gn(t)}function Qy(t){return Lr(t)||Vi(t)||r7(t)}function UG(t){switch(t.type){case Tg.key:return a2(t.path);case Tg.value:return vi(t.path);case Tg.after:return o2(t.path);case Tg.inside:return c2(t.path)}}function zrA(t,e){switch(t){case Ln.key:return a2(e);case Ln.value:return vi(e);case Ln.after:return o2(e);case Ln.inside:return c2(e);case Ln.multi:case Ln.text:return Js(e,e)}}function uy(t,e,A){if(e)return nf(t,e,A)||n0(Gn(e)?yi(e.focusPath):e.path,A)?e:void 0}function nf(t,e,A){if(t===void 0||!e)return!1;if(Lr(e)||yr(e)||Ya(e))return ri(e.path,A);if(Vi(e))return n0(A,e.path);if(Gn(e)){var i=e2(t,e),n=tI(t,e),o=yi(e.focusPath);if(!n0(A,o)||A.length<=o.length)return!1;var r=r2(t,e,i),s=r2(t,e,n),a=r2(t,e,A);return a!==-1&&a>=r&&a<=s}return!1}function r2(t,e,A){var i=yi(e.focusPath);if(!n0(A,i)||A.length<=i.length)return-1;var n=A[i.length],o=Ye(t,i);if(Lo(o))return Object.keys(o).indexOf(n);if(wo(o)){var r=ss(n);if(r');function kaA(t,e){ft(e,!1);var A=xr("jsoneditor:EditableDiv"),i=M(e,"value",9),n=M(e,"initialValue",9),o=M(e,"shortText",9,!1),r=M(e,"label",9),s=M(e,"onChange",9),a=M(e,"onCancel",9),c=M(e,"onFind",9),g=M(e,"onPaste",9,er),I=M(e,"onValueClass",9,()=>""),C=$(void 0,!0),d=$(void 0,!0),B=!1;function E(){return l(C)?function(w){return w.replace(/\n$/,"")}(l(C).innerText):""}function u(w){l(C)&&hc(C,l(C).innerText=bQ(w))}ws(()=>{A("onMount",{value:i(),initialValue:n()}),u(n()!==void 0?n():i()),l(C)&&function(w){if(w.firstChild!=null){var x=document.createRange(),R=window.getSelection();x.setStart(w,1),x.collapse(!0),R?.removeAllRanges(),R?.addRange(x)}else w.focus()}(l(C))}),ig(()=>{var w=E();A("onDestroy",{closed:B,value:i(),newValue:w}),B||w===i()||s()(w,eI.no)}),pA(()=>(k(I()),k(i())),()=>{y(d,I()(i()))}),ln(),qt(!0);var h=FKA();Qo(h,w=>y(C,w),()=>l(C)),we(w=>{gn(h,"aria-label",r()),jt(h,1,w,"svelte-f9kmxj")},[()=>rI((k(Vg),l(d),k(o()),oA(()=>Vg("jse-editable-div",l(d),{"jse-short-text":o()}))))],ZA),ce("input",h,function(){var w=E();w===""&&u(""),y(d,I()(w))}),ce("keydown",h,function(w){w.stopPropagation();var x=s2(w);if(x==="Escape"&&(w.preventDefault(),B=!0,a()()),x==="Enter"||x==="Tab"){w.preventDefault(),B=!0;var R=E();s()(R,eI.nextInside)}x==="Ctrl+F"&&(w.preventDefault(),c()(!1)),x==="Ctrl+H"&&(w.preventDefault(),c()(!0))}),ce("paste",h,function(w){if(w.stopPropagation(),g()&&w.clipboardData){var x=w.clipboardData.getData("text/plain");g()(x)}}),ce("blur",h,function(){var w=document.hasFocus(),x=E();A("handleBlur",{hasFocus:w,closed:B,value:i(),newValue:x}),document.hasFocus()&&!B&&(B=!0,x!==i()&&s()(x,eI.self))}),iA(t,h),mt()}function _KA(t,e){ft(e,!1);var A=M(e,"path",9),i=M(e,"value",9),n=M(e,"selection",9),o=M(e,"mode",9),r=M(e,"parser",9),s=M(e,"normalization",9),a=M(e,"enforceString",9),c=M(e,"onPatch",9),g=M(e,"onPasteJson",9),I=M(e,"onSelect",9),C=M(e,"onFind",9),d=M(e,"focus",9),B=M(e,"findNextInside",9);function E(x){return a()?x:GQ(x,r())}function u(){I()(vi(A())),d()()}qt(!0);var h=ZA(()=>(k(s()),k(i()),oA(()=>s().escapeValue(i())))),w=ZA(()=>(k(Sr),k(n()),oA(()=>Sr(n())?n().initialValue:void 0)));kaA(t,{get value(){return l(h)},get initialValue(){return l(w)},label:"Edit value",onChange:function(x,R){c()([{op:"replace",path:Ct(A()),value:E(s().unescapeValue(x))}],(D,G,J)=>{if(!J||ri(A(),nt(J)))return{state:G,selection:R===eI.nextInside?B()(A()):vi(A())}}),d()()},onCancel:u,onPaste:function(x){try{var R=r().parse(x);Fo(R)&&g()({path:A(),contents:R,onPasteAsJson:()=>{u();var D=[{op:"replace",path:Ct(A()),value:R}];c()(D,(G,J)=>({state:id(G,J,A())}))}})}catch{}},get onFind(){return C()},onValueClass:function(x){return baA(E(s().unescapeValue(x)),o(),r())}}),mt()}function hQ(t,e,A){var i=yi(e),n=Ye(t,i);if(wo(n)){var o=ss(li(e));return A.map((c,g)=>({op:"add",path:Ct(i.concat(String(o+g))),value:c.value}))}if(Lo(n)){var r=li(e),s=Object.keys(n),a=r!==void 0?hf(s,r,!0):[];return[...A.map(c=>{var g=uf(c.key,s);return{op:"add",path:Ct(i.concat(g)),value:c.value}}),...a.map(c=>aI(i,c))]}throw new Error("Cannot create insert operations: parent must be an Object or Array")}function JG(t,e,A){var i=Ye(t,e);if(Array.isArray(i)){var n=i.length;return A.map((o,r)=>({op:"add",path:Ct(e.concat(String(n+r))),value:o.value}))}return A.map(o=>{var r=uf(o.key,Object.keys(i));return{op:"add",path:Ct(e.concat(r)),value:o.value}})}function ff(t,e,A,i){var n=uf(i,e.filter(r=>r!==A)),o=hf(e,A,!1);return[{op:"move",from:Ct(t.concat(A)),path:Ct(t.concat(n))},...o.map(r=>aI(t,r))]}function SaA(t,e){var A=li(e);if(Gi(A))throw new Error("Cannot duplicate root object");var i=yi(A),n=li(A),o=Ye(t,i);if(wo(o)){var r=li(e),s=r?ss(li(r))+1:0;return[...e.map((g,I)=>({op:"copy",from:Ct(g),path:Ct(i.concat(String(I+s)))}))]}if(Lo(o)){var a=Object.keys(o),c=n!==void 0?hf(a,n,!1):[];return[...e.map(g=>{var I=uf(li(g),a);return{op:"copy",from:Ct(g),path:Ct(i.concat(I))}}),...c.map(g=>aI(i,g))]}throw new Error("Cannot create duplicate operations: parent must be an Object or Array")}function RaA(t,e){if(Vi(e))return[{op:"move",from:Ct(e.path),path:""}];if(!Gn(e))throw new Error("Cannot create extract operations: parent must be an Object or Array");var A=yi(e.focusPath),i=Ye(t,A);if(wo(i)){var n=sI(t,e).map(r=>{var s=ss(li(r));return i[s]});return[{op:"replace",path:"",value:n}]}if(Lo(i)){var o={};return sI(t,e).forEach(r=>{var s=String(li(r));o[s]=i[s]}),[{op:"replace",path:"",value:o}]}throw new Error("Cannot extract: unsupported type of selection "+JSON.stringify(e))}function LaA(t,e,A,i){if(Lr(e)){var n=saA(A,i),o=yi(e.path),r=Ye(t,o);return ff(o,Object.keys(r),li(e.path),typeof n=="string"?n:A)}if(Vi(e)||Gn(e)&&Gi(e.focusPath))try{return[{op:"replace",path:Ct(nt(e)),value:Ef(A,G=>Bf(G,i))}]}catch{return[{op:"replace",path:Ct(nt(e)),value:A}]}if(Gn(e)){var s=CG(A,i);return function(G,J,z){var K=Tc(J),O=yi(K),V=Ye(G,O);if(wo(V)){var j=Tc(J),dA=j?ss(li(j)):0;return[...Ty(J),...z.map((VA,ie)=>({op:"add",path:Ct(O.concat(String(ie+dA))),value:VA.value}))]}if(Lo(V)){var fA=li(J),EA=yi(fA),IA=li(fA),SA=Object.keys(V),nA=IA!==void 0?hf(SA,IA,!1):[],lA=new Set(J.map(VA=>li(VA))),wA=SA.filter(VA=>!lA.has(VA));return[...Ty(J),...z.map(VA=>{var ie=uf(VA.key,wA);return{op:"add",path:Ct(EA.concat(ie)),value:VA.value}}),...nA.map(VA=>aI(EA,VA))]}throw new Error("Cannot create replace operations: parent must be an Object or Array")}(t,sI(t,e),s)}if(Ya(e)){var a=CG(A,i),c=e.path,g=yi(c),I=Ye(t,g);if(wo(I)){var C=ss(li(c));return hQ(t,g.concat(String(C+1)),a)}if(Lo(I)){var d=String(li(c)),B=Object.keys(I);if(Gi(B)||li(B)===d)return JG(t,g,a);var E=B.indexOf(d),u=B[E+1];return hQ(t,g.concat(u),a)}throw new Error("Cannot create insert operations: parent must be an Object or Array")}if(yr(e)){var h=CG(A,i),w=e.path,x=Ye(t,w);if(wo(x))return hQ(t,w.concat("0"),h);if(Lo(x)){var R=Object.keys(x);if(Gi(R))return JG(t,w,h);var D=Tc(R);return hQ(t,w.concat(D),h)}throw new Error("Cannot create insert operations: parent must be an Object or Array")}throw new Error("Cannot insert: unsupported type of selection "+JSON.stringify(e))}function Ty(t){return t.map(e=>({op:"remove",path:Ct(e)})).reverse()}function aI(t,e){return{op:"move",from:Ct(t.concat(e)),path:Ct(t.concat(e))}}function CG(t,e){var A=/^\s*{/.test(t),i=/^\s*\[/.test(t),n=saA(t,e),o=n!==void 0?n:Ef(t,r=>Bf(r,e));return A&&nn(o)||i&&Array.isArray(o)?[{key:"New item",value:o}]:Array.isArray(o)?o.map((r,s)=>({key:"New item "+s,value:r})):nn(o)?Object.keys(o).map(r=>({key:r,value:o[r]})):[{key:"New item",value:o}]}function xaA(t,e){if(Lr(e)){var A=yi(e.path),i=Ye(t,A),n=ff(A,Object.keys(i),li(e.path),"");return{operations:n,newSelection:SQ(t,n)}}if(Vi(e))return{operations:[{op:"replace",path:Ct(e.path),value:""}],newSelection:e};if(Gn(e)){var o=sI(t,e),r=Ty(o),s=li(o);if(Gi(s))return{operations:[{op:"replace",path:"",value:""}],newSelection:vi([])};var a=yi(s),c=Ye(t,a);if(wo(c)){var g=Tc(o),I=ss(li(g));return{operations:r,newSelection:I===0?c2(a):o2(a.concat(String(I-1)))}}if(Lo(c)){var C=Object.keys(c),d=Tc(o),B=li(d),E=C.indexOf(B),u=C[E-1];return{operations:r,newSelection:E===0?c2(a):o2(a.concat(u))}}throw new Error("Cannot create remove operations: parent must be an Object or Array")}throw new Error("Cannot remove: unsupported type of selection "+JSON.stringify(e))}function NaA(t,e){var A=function(i,n){if(Gi(n)||!n.every(i1))return n;var o=[];for(var r of n){var s=PrA(xs(r.from)),a=PrA(xs(r.path));if(!s||!a)return n;o.push({from:s,path:a,operation:r})}var c=o[0].path.parent,g=Ye(i,c);if(!Lo(g)||!o.every(B=>function(E,u){return ri(E.from.parent,u)&&ri(E.path.parent,u)}(B,c)))return n;var I=function(B,E){var u=Object.keys(E),h=u.slice();for(var w of B){var x=h.indexOf(w.from.key);x!==-1&&(h.splice(x,1),h.push(w.path.key))}for(var R=0;RB.operation,d=o.filter(B=>B.operation.from!==B.operation.path);return d.some(B=>B.path.key===I)?d.map(C):[aI(c,I),...d.map(C)]}(t,e);return W8(t,A,{before:(i,n,o)=>{if(mR(n)){var r=xs(n.path);return{revertOperations:[...o,...dG(i,r)]}}if(i1(n)){var s=xs(n.from);return{revertOperations:n.from===n.path?[n,...dG(i,s)]:[...o,...dG(i,s)]}}return{document:i}}})}function PrA(t){return t.length>0?{parent:yi(t),key:li(t)}:void 0}function dG(t,e){var A=yi(e),i=li(e),n=Ye(t,A);return Lo(n)?hf(Object.keys(n),i,!1).map(o=>aI(A,o)):[]}function jrA(t){var e=t.activeIndex0?0:-1,A=t.items[e],i=t.items.map((n,o)=>pe(pe({},n),{},{active:o===e}));return pe(pe({},t),{},{items:i,activeItem:A,activeIndex:e})}function qrA(t,e){var A,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=t.toLowerCase(),o=(A=i?.maxResults)!==null&&A!==void 0?A:1/0,r=i?.columns,s=[],a=[];function c(u){s.length>=o||s.push(u)}function g(u,h){if(wo(h)){var w=a.length;a.push("0");for(var x=0;x=o)return;a.pop()}else if(Lo(h)){var R=Object.keys(h),D=a.length;for(var G of(a.push(""),R))if(a[D]=G,VrA(G,u,a,zg.key,c),g(u,h[G]),s.length>=o)return;a.pop()}else VrA(String(h),u,a,zg.value,c)}if(t==="")return[];if(r){if(!Array.isArray(e))throw new Error("json must be an Array when option columns is defined");for(var I=0;IB.length+1;)a.pop();g(n,Ye(C,B))}if(s.length>=o)break}return s}return g(n,e),s}function VrA(t,e,A,i,n){var o=t.toLowerCase(),r=0,s=-1,a=-1;do(a=o.indexOf(e,s))!==-1&&(s=a+e.length,n({path:A.slice(0),field:i,fieldIndex:r,start:a,end:s}),r++);while(a!==-1)}function YG(t,e,A,i){return t.substring(0,A)+e+t.substring(i)}function ZrA(t,e,A){var i=t;return HR(A,n=>{i=YG(i,e,n.start,n.end)}),i}function GKA(t,e,A,i,n){var{field:o,path:r,start:s,end:a}=i;if(o===zg.key){var c=yi(r),g=Ye(t,c),I=li(r),C=ff(c,Object.keys(g),I,YG(I,A,s,a));return{newSelection:SQ(t,C),operations:C}}if(o===zg.value){var d=Ye(t,r);if(d===void 0)throw new Error("Cannot replace: path not found ".concat(Ct(r)));var B=typeof d=="string"?d:String(d),E=t0(t,e,r),u=YG(B,A,s,a),h=[{op:"replace",path:Ct(r),value:E?u:GQ(u,n)}];return{newSelection:SQ(t,h),operations:h}}throw new Error("Cannot replace: unknown type of search result field ".concat(o))}function WrA(t){return t.path.concat(t.field,String(t.fieldIndex))}function XrA(t){var e=faA(t)?t.searchResults.filter(A=>A.field===zg.key):void 0;return e&&e.length>0?e:void 0}function $rA(t){var e=faA(t)?t.searchResults.filter(A=>A.field===zg.value):void 0;return e&&e.length>0?e:void 0}var KKA={createObjectDocumentState:()=>({type:"object",properties:{}}),createArrayDocumentState:()=>({type:"array",items:[]}),createValueDocumentState:()=>({type:"value"})};function FaA(t,e){return e.reduce((A,i)=>function(n,o,r,s){return pK(n,o,r,s,KKA)}(t,A,i.path,(n,o)=>pe(pe({},o),{},{searchResults:o.searchResults?o.searchResults.concat(i):[i]})),void 0)}function Hy(t){var e,A=(e=t?.searchResults)!==null&&e!==void 0?e:[],i=Ua(t)?Object.values(t.properties).flatMap(Hy):Rr(t)?t.items.flatMap(Hy):[];return A.concat(i)}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-highlight.svelte-5fb7bl { - background-color: var(--jse-search-match-color, #ffe665); - outline: var(--jse-search-match-outline, none); -} -.jse-highlight.jse-active.svelte-5fb7bl { - background-color: var(--jse-search-match-active-color, var(--jse-search-match-color, #ffe665)); - outline: var(--jse-search-match-outline, 2px solid #e0be00); -}`);var UKA=vA(" ");function _aA(t,e){ft(e,!1);var A=$(),i=M(e,"text",8),n=M(e,"searchResultItems",8);pA(()=>(k(i()),k(n())),()=>{y(A,function(r,s){var a=[],c=0;for(var g of s){var I=r.slice(c,g.start);I!==""&&a.push({resultIndex:void 0,type:"normal",text:I,active:!1});var C=r.slice(g.start,g.end);a.push({resultIndex:g.resultIndex,type:"highlight",text:C,active:g.active}),c=g.end}var d=li(s);return d&&d.endl(A),cr,(r,s)=>{var a=_o(),c=Mt(a),g=C=>{var d=jr();we(()=>pt(d,(l(s),oA(()=>l(s).text)))),iA(C,d)},I=C=>{var d,B=UKA(),E=W(B);we((u,h,w)=>{d=jt(B,1,"jse-highlight svelte-5fb7bl",null,d,u),gn(B,"data-search-result-index",h),pt(E,w)},[()=>({"jse-active":l(s).active}),()=>(l(s),oA(()=>String(l(s).resultIndex))),()=>(k(bQ),l(s),oA(()=>bQ(l(s).text)))],ZA),iA(C,B)};GA(c,C=>{l(s),oA(()=>l(s).type==="normal")?C(g):C(I,!1)}),iA(r,a)}),iA(t,o),mt()}function ky(t){var e=1e3;if(t<900)return t.toFixed()+" B";var A=t/e;if(A<900)return A.toFixed(1)+" KB";var i=A/e;if(i<900)return i.toFixed(1)+" MB";var n=i/e;return n<900?n.toFixed(1)+" GB":(n/e).toFixed(1)+" TB"}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-tag.svelte-jlw0fj { - border: none; - font-size: 80%; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - color: var(--jse-tag-color, var(--jse-text-color-inverse, #fff)); - background: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); - border-radius: 2px; - cursor: pointer; - display: inline-block; - padding: 0 4px; - line-height: normal; - margin: 1px 0; -} -.jse-tag.svelte-jlw0fj:hover { - opacity: 0.8; -} -.jse-tag.disabled.svelte-jlw0fj { - opacity: 0.7; - cursor: inherit; -}`);var JKA=vA('');function Sy(t,e){ft(e,!0);var A,i=Ja(()=>e.onclick?o=>{o.preventDefault(),o.stopPropagation(),e.onclick()}:void 0),n=JKA();n.__click=function(){for(var o,r=arguments.length,s=new Array(r),a=0;a2?s-2:0),c=2;c{C!==(C=r())&&(g&&(tg(g),g=null),g=s0(()=>C(I,...a)))},gf)}(W(n),()=>{var o;return(o=e.children)!==null&&o!==void 0?o:rrA}),we(o=>A=jt(n,1,"jse-tag svelte-jlw0fj",null,A,o),[()=>({disabled:!e.onclick})]),iA(t,n),mt()}df(["click"]);function YKA(t,e,A){typeof e.value=="string"&&l(A)&&BK(t)&&(t.preventDefault(),t.stopPropagation(),window.open(e.value,"_blank"))}function TKA(t,e){e.readOnly||(t.preventDefault(),e.onSelect(Yy(e.path)))}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-value.jse-string.svelte-c0g9qz { - color: var(--jse-value-color-string, #008000); -} -.jse-value.jse-object.svelte-c0g9qz, .jse-value.jse-array.svelte-c0g9qz { - min-width: 16px; - color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); -} -.jse-value.jse-number.svelte-c0g9qz { - color: var(--jse-value-color-number, #ee422e); -} -.jse-value.jse-boolean.svelte-c0g9qz { - color: var(--jse-value-color-boolean, #ff8c00); -} -.jse-value.jse-null.svelte-c0g9qz { - color: var(--jse-value-color-null, #004ed0); -} -.jse-value.jse-invalid.svelte-c0g9qz { - color: var(--jse-text-color, #4d4d4d); -} -.jse-value.jse-url.svelte-c0g9qz { - color: var(--jse-value-color-url, #008000); - text-decoration: underline; -} - -.jse-value.svelte-c0g9qz { - display: inline-block; - min-width: 2em; - padding: 0 5px; - box-sizing: border-box; - outline: none; - border-radius: 1px; - vertical-align: top; - word-break: normal; - overflow-wrap: anywhere; - white-space: pre-wrap; -} -.jse-value.jse-table-cell.svelte-c0g9qz { - overflow-wrap: normal; - white-space: nowrap; -} -.jse-value.jse-empty.svelte-c0g9qz { - min-width: 4em; - outline: 1px dotted var(--jse-tag-background, rgba(0, 0, 0, 0.2)); - -moz-outline-radius: 2px; -} -.jse-value.jse-empty.svelte-c0g9qz::after { - pointer-events: none; - color: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); - content: "value"; -}`);var HKA=vA('
            ');function OKA(t,e){ft(e,!0);var A=V0(!0),i=Ja(()=>l(A)&&typeof e.value=="string"&&e.value.length>e.truncateTextSize&&(!e.searchResultItems||!e.searchResultItems.some(d=>d.active&&d.end>e.truncateTextSize))),n=Ja(()=>l(i)&&typeof e.value=="string"?e.value.substring(0,e.truncateTextSize).trim():e.value),o=Ja(()=>n7(e.value));function r(){y(A,!1)}var s=HKA();s.__click=[YKA,e,o],s.__dblclick=[TKA,e];var a=W(s),c=d=>{var B=Ja(()=>e.normalization.escapeValue(l(n)));_aA(d,{get text(){return l(B)},get searchResultItems(){return e.searchResultItems}})},g=d=>{var B=jr();we(E=>pt(B,E),[()=>bQ(e.normalization.escapeValue(l(n)))]),iA(d,B)};GA(a,d=>{e.searchResultItems?d(c):d(g,!1)});var I=CA(a,2),C=d=>{Sy(d,{onclick:r,children:(B,E)=>{var u=jr();we(h=>pt(u,"Show more (".concat(h??"",")")),[()=>ky(e.value.length)]),iA(B,u)},$$slots:{default:!0}})};GA(I,d=>{l(i)&&typeof e.value=="string"&&d(C)}),we(d=>{jt(s,1,d,"svelte-c0g9qz"),gn(s,"title",l(o)?"Ctrl+Click or Ctrl+Enter to open url in new window":void 0)},[()=>rI(baA(e.value,e.mode,e.parser))]),iA(t,s),mt()}df(["click","dblclick"]);Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-tooltip.svelte-14y3y8t { - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - line-height: normal; - padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); - border-radius: 3px; - background: var(--jse-context-menu-background, #656565); - color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); - white-space: nowrap; - box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); -}`);var zKA=vA('
            ');function PKA(t,e){var A=M(e,"text",8),i=zKA(),n=W(i);we(()=>pt(n,A())),iA(t,i)}function RQ(t,e){var A,{text:i,openAbsolutePopup:n,closeAbsolutePopup:o}=e;function r(){A=n(PKA,{text:i},{position:"top",width:10*i.length,offsetTop:3,anchor:t,closeOnOuterClick:!0})}function s(){o(A)}return t.addEventListener("mouseenter",r),t.addEventListener("mouseleave",s),{destroy(){t.removeEventListener("mouseenter",r),t.removeEventListener("mouseleave",s)}}}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-timestamp.svelte-1jla5ec { - padding: 0; - margin: 0; - vertical-align: middle; - display: inline-flex; - color: var(--jse-value-color-number, #ee422e); -}`);var jKA=vA('
            ');function qKA(t,e){ft(e,!1);var A=$(void 0,!0),i=cI("absolute-popup"),n=M(e,"value",9);pA(()=>k(n()),()=>{y(A,"Time: ".concat(new Date(n()).toString()))}),ln(),qt(!0);var o=jKA();Ui(W(o),{get data(){return lX}}),Ts(o,(r,s)=>RQ?.(r,s),()=>pe({text:l(A)},i)),iA(t,o),mt()}function VKA(t){var e=[];return!t.isEditing&&PGA(t.value)&&e.push({component:DKA,props:t}),!t.isEditing&&jGA(t.value)&&e.push({component:MKA,props:t}),t.isEditing&&e.push({component:_KA,props:t}),t.isEditing||e.push({component:OKA,props:t}),!t.isEditing&&RG(t.value)&&e.push({component:qKA,props:t}),e}function Ta(t){return t.map((e,A)=>WKA.test(e)?"["+e+"]":/[.[\]]/.test(e)||e===""?'["'+function(i){return i.replace(/"/g,'\\"')}(e)+'"]':(A>0?".":"")+e).join("")}function ZKA(t){for(var e=[],A=0;Ao==='"',!0)),n('"')):e.push(i(o=>o==="]")),n("]")):e.push(i(o=>o==="."||o==="["));function i(o){for(var r=arguments.length>1&&arguments[1]!==void 0&&arguments[1],s="";A({x:t,y:t}),AUA={left:"right",right:"left",bottom:"top",top:"bottom"},eUA={start:"end",end:"start"};function AsA(t,e,A){return XC(t,Oy(e,A))}function s7(t,e){return typeof t=="function"?t(e):t}function nd(t){return t.split("-")[0]}function a7(t){return t.split("-")[1]}function GaA(t){return t==="x"?"y":"x"}function KaA(t){return t==="y"?"height":"width"}var tUA=new Set(["top","bottom"]);function W1(t){return tUA.has(nd(t))?"y":"x"}function UaA(t){return GaA(W1(t))}function TG(t){return t.replace(/start|end/g,e=>eUA[e])}var esA=["left","right"],tsA=["right","left"],iUA=["top","bottom"],nUA=["bottom","top"];function oUA(t,e,A,i){var n=a7(t),o=function(r,s,a){switch(r){case"top":case"bottom":return a?s?tsA:esA:s?esA:tsA;case"left":case"right":return s?iUA:nUA;default:return[]}}(nd(t),A==="start",i);return n&&(o=o.map(r=>r+"-"+n),e&&(o=o.concat(o.map(TG)))),o}function fy(t){return t.replace(/left|right|bottom|top/g,e=>AUA[e])}function rUA(t){return typeof t!="number"?function(e){return pe({top:0,right:0,bottom:0,left:0},e)}(t):{top:t,right:t,bottom:t,left:t}}function Py(t){var{x:e,y:A,width:i,height:n}=t;return{width:i,height:n,top:A,left:e,right:e+i,bottom:A+n,x:e,y:A}}function isA(t,e,A){var i,{reference:n,floating:o}=t,r=W1(e),s=UaA(e),a=KaA(s),c=nd(e),g=r==="y",I=n.x+n.width/2-o.width/2,C=n.y+n.height/2-o.height/2,d=n[a]/2-o[a]/2;switch(c){case"top":i={x:I,y:n.y-o.height};break;case"bottom":i={x:I,y:n.y+n.height};break;case"right":i={x:n.x+n.width,y:C};break;case"left":i={x:n.x-o.width,y:C};break;default:i={x:n.x,y:n.y}}switch(a7(e)){case"start":i[s]-=d*(A&&g?-1:1);break;case"end":i[s]+=d*(A&&g?-1:1)}return i}var sUA=function(){var t=_t(function*(e,A,i){for(var{placement:n="bottom",strategy:o="absolute",middleware:r=[],platform:s}=i,a=r.filter(Boolean),c=yield s.isRTL==null?void 0:s.isRTL(A),g=yield s.getElementRects({reference:e,floating:A,strategy:o}),{x:I,y:C}=isA(g,n,c),d=n,B={},E=0,u=0;u"u")&&(t instanceof ShadowRoot||t instanceof mc(t).ShadowRoot)}var cUA=new Set(["inline","contents"]);function of(t){var{overflow:e,overflowX:A,overflowY:i,display:n}=jg(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+A)&&!cUA.has(n)}var gUA=new Set(["table","td","th"]);function lUA(t){return gUA.has(LQ(t))}var IUA=[":popover-open",":modal"];function jy(t){return IUA.some(e=>{try{return t.matches(e)}catch{return!1}})}var CUA=["transform","translate","scale","rotate","perspective"],dUA=["transform","translate","scale","rotate","perspective","filter"],BUA=["paint","layout","strict","content"];function zG(t){var e=vK(),A=Pg(t)?jg(t):t;return CUA.some(i=>!!A[i]&&A[i]!=="none")||!!A.containerType&&A.containerType!=="normal"||!e&&!!A.backdropFilter&&A.backdropFilter!=="none"||!e&&!!A.filter&&A.filter!=="none"||dUA.some(i=>(A.willChange||"").includes(i))||BUA.some(i=>(A.contain||"").includes(i))}function vK(){return!(typeof CSS>"u"||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}var EUA=new Set(["html","body","#document"]);function pQ(t){return EUA.has(LQ(t))}function jg(t){return mc(t).getComputedStyle(t)}function g7(t){return Pg(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function X1(t){if(LQ(t)==="html")return t;var e=t.assignedSlot||t.parentNode||nsA(t)&&t.host||r0(t);return nsA(e)?e.host:e}function TaA(t){var e=X1(t);return pQ(e)?t.ownerDocument?t.ownerDocument.body:t.body:a0(e)&&of(e)?e:TaA(e)}function rf(t,e,A){var i;e===void 0&&(e=[]),A===void 0&&(A=!0);var n=TaA(t),o=n===((i=t.ownerDocument)==null?void 0:i.body),r=mc(n);if(o){var s=PG(r);return e.concat(r,r.visualViewport||[],of(n)?n:[],s&&A?rf(s):[])}return e.concat(n,rf(n,[],A))}function PG(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function HaA(t){var e=jg(t),A=parseFloat(e.width)||0,i=parseFloat(e.height)||0,n=a0(t),o=n?t.offsetWidth:A,r=n?t.offsetHeight:i,s=zy(A)!==o||zy(i)!==r;return s&&(A=o,i=r),{width:A,height:i,$:s}}function MK(t){return Pg(t)?t:t.contextElement}function DQ(t){var e=MK(t);if(!a0(e))return o0(1);var A=e.getBoundingClientRect(),{width:i,height:n,$:o}=HaA(e),r=(o?zy(A.width):A.width)/i,s=(o?zy(A.height):A.height)/n;return r&&Number.isFinite(r)||(r=1),s&&Number.isFinite(s)||(s=1),{x:r,y:s}}var QUA=o0(0);function OaA(t){var e=mc(t);return vK()&&e.visualViewport?{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}:QUA}function od(t,e,A,i){e===void 0&&(e=!1),A===void 0&&(A=!1);var n=t.getBoundingClientRect(),o=MK(t),r=o0(1);e&&(i?Pg(i)&&(r=DQ(i)):r=DQ(t));var s=function(D,G,J){return G===void 0&&(G=!1),!(!J||G&&J!==mc(D))&&G}(o,A,i)?OaA(o):o0(0),a=(n.left+s.x)/r.x,c=(n.top+s.y)/r.y,g=n.width/r.x,I=n.height/r.y;if(o)for(var C=mc(o),d=i&&Pg(i)?mc(i):i,B=C,E=PG(B);E&&i&&d!==B;){var u=DQ(E),h=E.getBoundingClientRect(),w=jg(E),x=h.left+(E.clientLeft+parseFloat(w.paddingLeft))*u.x,R=h.top+(E.clientTop+parseFloat(w.paddingTop))*u.y;a*=u.x,c*=u.y,g*=u.x,I*=u.y,a+=x,c+=R,E=PG(B=mc(E))}return Py({width:g,height:I,x:a,y:c})}function bK(t,e){var A=g7(t).scrollLeft;return e?e.left+A:od(r0(t)).left+A}function zaA(t,e,A){A===void 0&&(A=!1);var i=t.getBoundingClientRect();return{x:i.left+e.scrollLeft-(A?0:bK(t,i)),y:i.top+e.scrollTop}}var uUA=new Set(["absolute","fixed"]);function osA(t,e,A){var i;if(e==="viewport")i=function(o,r){var s=mc(o),a=r0(o),c=s.visualViewport,g=a.clientWidth,I=a.clientHeight,C=0,d=0;if(c){g=c.width,I=c.height;var B=vK();(!B||B&&r==="fixed")&&(C=c.offsetLeft,d=c.offsetTop)}return{width:g,height:I,x:C,y:d}}(t,A);else if(e==="document")i=function(o){var r=r0(o),s=g7(o),a=o.ownerDocument.body,c=XC(r.scrollWidth,r.clientWidth,a.scrollWidth,a.clientWidth),g=XC(r.scrollHeight,r.clientHeight,a.scrollHeight,a.clientHeight),I=-s.scrollLeft+bK(o),C=-s.scrollTop;return jg(a).direction==="rtl"&&(I+=XC(r.clientWidth,a.clientWidth)-c),{width:c,height:g,x:I,y:C}}(r0(t));else if(Pg(e))i=function(o,r){var s=od(o,!0,r==="fixed"),a=s.top+o.clientTop,c=s.left+o.clientLeft,g=a0(o)?DQ(o):o0(1);return{width:o.clientWidth*g.x,height:o.clientHeight*g.y,x:c*g.x,y:a*g.y}}(e,A);else{var n=OaA(t);i={x:e.x-n.x,y:e.y-n.y,width:e.width,height:e.height}}return Py(i)}function PaA(t,e){var A=X1(t);return!(A===e||!Pg(A)||pQ(A))&&(jg(A).position==="fixed"||PaA(A,e))}function hUA(t,e,A){var i=a0(e),n=r0(e),o=A==="fixed",r=od(t,!0,o,e),s={scrollLeft:0,scrollTop:0},a=o0(0);function c(){a.x=bK(n)}if(i||!i&&!o)if((LQ(e)!=="body"||of(n))&&(s=g7(e)),i){var g=od(e,!0,o,e);a.x=g.x+e.clientLeft,a.y=g.y+e.clientTop}else n&&c();o&&!i&&n&&c();var I=!n||i||o?o0(0):zaA(n,s);return{x:r.left+s.scrollLeft-a.x-I.x,y:r.top+s.scrollTop-a.y-I.y,width:r.width,height:r.height}}function BG(t){return jg(t).position==="static"}function rsA(t,e){if(!a0(t)||jg(t).position==="fixed")return null;if(e)return e(t);var A=t.offsetParent;return r0(t)===A&&(A=A.ownerDocument.body),A}function ssA(t,e){var A=mc(t);if(jy(t))return A;if(!a0(t)){for(var i=X1(t);i&&!pQ(i);){if(Pg(i)&&!BG(i))return i;i=X1(i)}return A}for(var n=rsA(t,e);n&&lUA(n)&&BG(n);)n=rsA(n,e);return n&&pQ(n)&&BG(n)&&!zG(n)?A:n||function(o){for(var r=X1(o);a0(r)&&!pQ(r);){if(zG(r))return r;if(jy(r))return null;r=X1(r)}return null}(t)||A}var fUA={convertOffsetParentRelativeRectToViewportRelativeRect:function(t){var{elements:e,rect:A,offsetParent:i,strategy:n}=t,o=n==="fixed",r=r0(i),s=!!e&&jy(e.floating);if(i===r||s&&o)return A;var a={scrollLeft:0,scrollTop:0},c=o0(1),g=o0(0),I=a0(i);if((I||!I&&!o)&&((LQ(i)!=="body"||of(r))&&(a=g7(i)),a0(i))){var C=od(i);c=DQ(i),g.x=C.x+i.clientLeft,g.y=C.y+i.clientTop}var d=!r||I||o?o0(0):zaA(r,a,!0);return{width:A.width*c.x,height:A.height*c.y,x:A.x*c.x-a.scrollLeft*c.x+g.x+d.x,y:A.y*c.y-a.scrollTop*c.y+g.y+d.y}},getDocumentElement:r0,getClippingRect:function(t){var{element:e,boundary:A,rootBoundary:i,strategy:n}=t,o=[...A==="clippingAncestors"?jy(e)?[]:function(a,c){var g=c.get(a);if(g)return g;for(var I=rf(a,[],!1).filter(h=>Pg(h)&&LQ(h)!=="body"),C=null,d=jg(a).position==="fixed",B=d?X1(a):a;Pg(B)&&!pQ(B);){var E=jg(B),u=zG(B);u||E.position!=="fixed"||(C=null),(d?!u&&!C:!u&&E.position==="static"&&C&&uUA.has(C.position)||of(B)&&!u&&PaA(a,B))?I=I.filter(h=>h!==B):C=E,B=X1(B)}return c.set(a,I),I}(e,this._c):[].concat(A),i],r=o[0],s=o.reduce((a,c)=>{var g=osA(e,c,n);return a.top=XC(g.top,a.top),a.right=Oy(g.right,a.right),a.bottom=Oy(g.bottom,a.bottom),a.left=XC(g.left,a.left),a},osA(e,r,n));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},getOffsetParent:ssA,getElementRects:function(){var t=_t(function*(e){var A=this.getOffsetParent||ssA,i=this.getDimensions,n=yield i(e.floating);return{reference:hUA(e.reference,yield A(e.floating),e.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}});return function(e){return t.apply(this,arguments)}}(),getClientRects:function(t){return Array.from(t.getClientRects())},getDimensions:function(t){var{width:e,height:A}=HaA(t);return{width:e,height:A}},getScale:DQ,isElement:Pg,isRTL:function(t){return jg(t).direction==="rtl"}};function asA(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}function mUA(t,e,A,i){i===void 0&&(i={});var{ancestorScroll:n=!0,ancestorResize:o=!0,elementResize:r=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:a=!1}=i,c=MK(t),g=n||o?[...c?rf(c):[],...rf(e)]:[];g.forEach(u=>{n&&u.addEventListener("scroll",A,{passive:!0}),o&&u.addEventListener("resize",A)});var I,C=c&&s?function(u,h){var w,x=null,R=r0(u);function D(){var G;clearTimeout(w),(G=x)==null||G.disconnect(),x=null}return function G(J,z){J===void 0&&(J=!1),z===void 0&&(z=1),D();var K=u.getBoundingClientRect(),{left:O,top:V,width:j,height:dA}=K;if(J||h(),j&&dA){var fA={rootMargin:-hy(V)+"px "+-hy(R.clientWidth-(O+j))+"px "+-hy(R.clientHeight-(V+dA))+"px "+-hy(O)+"px",threshold:XC(0,Oy(1,z))||1},EA=!0;try{x=new IntersectionObserver(IA,pe(pe({},fA),{},{root:R.ownerDocument}))}catch{x=new IntersectionObserver(IA,fA)}x.observe(u)}function IA(SA){var nA=SA[0].intersectionRatio;if(nA!==z){if(!EA)return G();nA?G(!1,nA):w=setTimeout(()=>{G(!1,1e-7)},1e3)}nA!==1||asA(K,u.getBoundingClientRect())||G(),EA=!1}}(!0),D}(c,A):null,d=-1,B=null;r&&(B=new ResizeObserver(u=>{var[h]=u;h&&h.target===c&&B&&(B.unobserve(e),cancelAnimationFrame(d),d=requestAnimationFrame(()=>{var w;(w=B)==null||w.observe(e)})),A()}),c&&!a&&B.observe(c),B.observe(e));var E=a?od(t):null;return a&&function u(){var h=od(t);E&&!asA(E,h)&&A(),E=h,I=requestAnimationFrame(u)}(),A(),()=>{var u;g.forEach(h=>{n&&h.removeEventListener("scroll",A),o&&h.removeEventListener("resize",A)}),C?.(),(u=B)==null||u.disconnect(),B=null,a&&cancelAnimationFrame(I)}}var pUA=function(t){return t===void 0&&(t=0),{name:"offset",options:t,fn:e=>_t(function*(){var A,i,{x:n,y:o,placement:r,middlewareData:s}=e,a=yield function(c,g){return OG.apply(this,arguments)}(e,t);return r===((A=s.offset)==null?void 0:A.placement)&&(i=s.arrow)!=null&&i.alignmentOffset?{}:{x:n+a.x,y:o+a.y,data:pe(pe({},a),{},{placement:r})}})()}},DUA=function(t){return t===void 0&&(t={}),{name:"shift",options:t,fn:e=>_t(function*(){var{x:A,y:i,placement:n}=e,o=s7(t,e),{mainAxis:r=!0,crossAxis:s=!1,limiter:a={fn:x=>{var{x:R,y:D}=x;return{x:R,y:D}}}}=o,c=EsA(o,aGA),g={x:A,y:i},I=yield JaA(e,c),C=W1(nd(n)),d=GaA(C),B=g[d],E=g[C];if(r){var u=d==="y"?"bottom":"right";B=AsA(B+I[d==="y"?"top":"left"],B,B-I[u])}if(s){var h=C==="y"?"bottom":"right";E=AsA(E+I[C==="y"?"top":"left"],E,E-I[h])}var w=a.fn(pe(pe({},e),{},{[d]:B,[C]:E}));return pe(pe({},w),{},{data:{x:w.x-A,y:w.y-i,enabled:{[d]:r,[C]:s}}})})()}},wUA=function(t){return t===void 0&&(t={}),{name:"flip",options:t,fn:e=>_t(function*(){var A,i,{placement:n,middlewareData:o,rects:r,initialPlacement:s,platform:a,elements:c}=e,g=s7(t,e),{mainAxis:I=!0,crossAxis:C=!0,fallbackPlacements:d,fallbackStrategy:B="bestFit",fallbackAxisSideDirection:E="none",flipAlignment:u=!0}=g,h=EsA(g,sGA);if((A=o.arrow)!=null&&A.alignmentOffset)return{};var w=nd(n),x=W1(s),R=nd(s)===s,D=yield a.isRTL==null?void 0:a.isRTL(c.floating),G=d||(R||!u?[fy(s)]:function(wA){var VA=fy(wA);return[TG(wA),VA,TG(VA)]}(s)),J=E!=="none";!d&&J&&G.push(...oUA(s,u,E,D));var z=[s,...G],K=yield JaA(e,h),O=[],V=((i=o.flip)==null?void 0:i.overflows)||[];if(I&&O.push(K[w]),C){var j=function(wA,VA,ie){ie===void 0&&(ie=!1);var UA=a7(wA),BA=UaA(wA),JA=KaA(BA),Xe=BA==="x"?UA===(ie?"end":"start")?"right":"left":UA==="start"?"bottom":"top";return VA.reference[JA]>VA.floating[JA]&&(Xe=fy(Xe)),[Xe,fy(Xe)]}(n,r,D);O.push(K[j[0]],K[j[1]])}if(V=[...V,{placement:n,overflows:O}],!O.every(wA=>wA<=0)){var dA,fA,EA=(((dA=o.flip)==null?void 0:dA.index)||0)+1,IA=z[EA];if(IA&&(!(C==="alignment"&&x!==W1(IA))||V.every(wA=>wA.overflows[0]>0&&W1(wA.placement)===x)))return{data:{index:EA,overflows:V},reset:{placement:IA}};var SA=(fA=V.filter(wA=>wA.overflows[0]<=0).sort((wA,VA)=>wA.overflows[1]-VA.overflows[1])[0])==null?void 0:fA.placement;if(!SA)switch(B){case"bestFit":var nA,lA=(nA=V.filter(wA=>{if(J){var VA=W1(wA.placement);return VA===x||VA==="y"}return!0}).map(wA=>[wA.placement,wA.overflows.filter(VA=>VA>0).reduce((VA,ie)=>VA+ie,0)]).sort((wA,VA)=>wA[1]-VA[1])[0])==null?void 0:nA[0];lA&&(SA=lA);break;case"initialPlacement":SA=s}if(n!==SA)return{reset:{placement:SA}}}return{}})()}};function yUA(t){var e,A,i={autoUpdate:!0},n=t,o=a=>pe(pe(pe({},i),t||{}),a||{}),r=a=>{e&&A&&(n=o(a),((c,g,I)=>{var C=new Map,d=pe({platform:fUA},I),B=pe(pe({},d.platform),{},{_c:C});return sUA(c,g,pe(pe({},d),{},{platform:B}))})(e,A,n).then(c=>{var g;Object.assign(A.style,{position:c.strategy,left:"".concat(c.x,"px"),top:"".concat(c.y,"px")}),!((g=n)===null||g===void 0)&&g.onComputed&&n.onComputed(c)}))},s=a=>{ig(a.subscribe(c=>{e===void 0?(e=c,r()):(Object.assign(e,c),r())}))};return[a=>{if("subscribe"in a)return s(a),{};e=a,r()},(a,c)=>{var g;A=a,n=o(c),setTimeout(()=>r(c),0),r(c);var I=()=>{g&&(g(),g=void 0)},C=function(){var{autoUpdate:d}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:n||{};I(),d!==!1&&function(){return PsA.apply(this,arguments)}().then(()=>mUA(e,A,()=>r(n),d===!0?{}:d))};return g=C(),{update(d){r(d),g=C(d)},destroy(){I()}}},r]}function vUA(t){var{loadOptions:e,filterText:A,items:i,multiple:n,value:o,itemId:r,groupBy:s,filterSelectedItems:a,itemFilter:c,convertStringItemsToObjects:g,filterGroupedItems:I,label:C}=t;if(i&&e)return i;if(!i)return[];i&&i.length>0&&typeof i[0]!="object"&&(i=g(i));var d=i.filter(B=>{var E=c(B[C],A,B);return E&&n&&o!=null&&o.length&&(E=!o.some(u=>!!a&&u[r]===B[r])),E});return s&&(d=I(d)),d}function MUA(t){return jaA.apply(this,arguments)}function jaA(){return(jaA=_t(function*(t){var{dispatch:e,loadOptions:A,convertStringItemsToObjects:i,filterText:n}=t,o=yield A(n).catch(r=>{console.warn("svelte-select loadOptions error :>> ",r),e("error",{type:"loadOptions",details:r})});if(o&&!o.cancelled)return o?(o&&o.length>0&&typeof o[0]!="object"&&(o=i(o)),e("loaded",{items:o})):o=[],{filteredItems:o,loading:!1,focused:!0,listOpen:!0}})).apply(this,arguments)}Ut(` - svg.svelte-qbd276 { - width: var(--chevron-icon-width, 20px); - height: var(--chevron-icon-width, 20px); - color: var(--chevron-icon-colour, currentColor); - } -`);var bUA=II(``);Ut(` - svg.svelte-whdbu1 { - width: var(--clear-icon-width, 20px); - height: var(--clear-icon-width, 20px); - color: var(--clear-icon-color, currentColor); - } -`);var kUA=II(``);function EG(t){iA(t,kUA())}Ut(` - .loading.svelte-1p3nqvd { - width: var(--spinner-width, 20px); - height: var(--spinner-height, 20px); - color: var(--spinner-color, var(--icons-color)); - animation: svelte-1p3nqvd-rotate 0.75s linear infinite; - transform-origin: center center; - transform: none; - } - - .circle_path.svelte-1p3nqvd { - stroke-dasharray: 90; - stroke-linecap: round; - } - - @keyframes svelte-1p3nqvd-rotate { - 100% { - transform: rotate(360deg); - } - } -`);var SUA=II('');Ut(` - .svelte-select.svelte-82qwg8 { - /* deprecating camelCase custom props in favour of kebab-case for v5 */ - --borderRadius: var(--border-radius); - --clearSelectColor: var(--clear-select-color); - --clearSelectWidth: var(--clear-select-width); - --disabledBackground: var(--disabled-background); - --disabledBorderColor: var(--disabled-border-color); - --disabledColor: var(--disabled-color); - --disabledPlaceholderColor: var(--disabled-placeholder-color); - --disabledPlaceholderOpacity: var(--disabled-placeholder-opacity); - --errorBackground: var(--error-background); - --errorBorder: var(--error-border); - --groupItemPaddingLeft: var(--group-item-padding-left); - --groupTitleColor: var(--group-title-color); - --groupTitleFontSize: var(--group-title-font-size); - --groupTitleFontWeight: var(--group-title-font-weight); - --groupTitlePadding: var(--group-title-padding); - --groupTitleTextTransform: var(--group-title-text-transform); - --groupTitleBorderColor: var(--group-title-border-color); - --groupTitleBorderWidth: var(--group-title-border-width); - --groupTitleBorderStyle: var(--group-title-border-style); - --indicatorColor: var(--chevron-color); - --indicatorHeight: var(--chevron-height); - --indicatorWidth: var(--chevron-width); - --inputColor: var(--input-color); - --inputLeft: var(--input-left); - --inputLetterSpacing: var(--input-letter-spacing); - --inputMargin: var(--input-margin); - --inputPadding: var(--input-padding); - --itemActiveBackground: var(--item-active-background); - --itemColor: var(--item-color); - --itemFirstBorderRadius: var(--item-first-border-radius); - --itemHoverBG: var(--item-hover-bg); - --itemHoverColor: var(--item-hover-color); - --itemIsActiveBG: var(--item-is-active-bg); - --itemIsActiveColor: var(--item-is-active-color); - --itemIsNotSelectableColor: var(--item-is-not-selectable-color); - --itemPadding: var(--item-padding); - --listBackground: var(--list-background); - --listBorder: var(--list-border); - --listBorderRadius: var(--list-border-radius); - --listEmptyColor: var(--list-empty-color); - --listEmptyPadding: var(--list-empty-padding); - --listEmptyTextAlign: var(--list-empty-text-align); - --listMaxHeight: var(--list-max-height); - --listPosition: var(--list-position); - --listShadow: var(--list-shadow); - --listZIndex: var(--list-z-index); - --multiItemBG: var(--multi-item-bg); - --multiItemBorderRadius: var(--multi-item-border-radius); - --multiItemDisabledHoverBg: var(--multi-item-disabled-hover-bg); - --multiItemDisabledHoverColor: var(--multi-item-disabled-hover-color); - --multiItemHeight: var(--multi-item-height); - --multiItemMargin: var(--multi-item-margin); - --multiItemPadding: var(--multi-item-padding); - --multiSelectInputMargin: var(--multi-select-input-margin); - --multiSelectInputPadding: var(--multi-select-input-padding); - --multiSelectPadding: var(--multi-select-padding); - --placeholderColor: var(--placeholder-color); - --placeholderOpacity: var(--placeholder-opacity); - --selectedItemPadding: var(--selected-item-padding); - --spinnerColor: var(--spinner-color); - --spinnerHeight: var(--spinner-height); - --spinnerWidth: var(--spinner-width); - - --internal-padding: 0 0 0 16px; - - border: var(--border, 1px solid #d8dbdf); - border-radius: var(--border-radius, 6px); - min-height: var(--height, 42px); - position: relative; - display: flex; - align-items: stretch; - padding: var(--padding, var(--internal-padding)); - background: var(--background, #fff); - margin: var(--margin, 0); - width: var(--width, 100%); - font-size: var(--font-size, 16px); - max-height: var(--max-height); - } - - .svelte-82qwg8 { - box-sizing: var(--box-sizing, border-box); - } - - .svelte-select.svelte-82qwg8:hover { - border: var(--border-hover, 1px solid #b2b8bf); - } - - .value-container.svelte-82qwg8 { - display: flex; - flex: 1 1 0%; - flex-wrap: wrap; - align-items: center; - gap: 5px 10px; - padding: var(--value-container-padding, 5px 0); - position: relative; - overflow: var(--value-container-overflow, hidden); - align-self: stretch; - } - - .prepend.svelte-82qwg8, - .indicators.svelte-82qwg8 { - display: flex; - flex-shrink: 0; - align-items: center; - } - - .indicators.svelte-82qwg8 { - position: var(--indicators-position); - top: var(--indicators-top); - right: var(--indicators-right); - bottom: var(--indicators-bottom); - } - - input.svelte-82qwg8 { - position: absolute; - cursor: default; - border: none; - color: var(--input-color, var(--item-color)); - padding: var(--input-padding, 0); - letter-spacing: var(--input-letter-spacing, inherit); - margin: var(--input-margin, 0); - min-width: 10px; - top: 0; - right: 0; - bottom: 0; - left: 0; - background: transparent; - font-size: var(--font-size, 16px); - } - - .svelte-82qwg8:not(.multi) > .value-container:where(.svelte-82qwg8) > input:where(.svelte-82qwg8) { - width: 100%; - height: 100%; - } - - input.svelte-82qwg8::placeholder { - color: var(--placeholder-color, #78848f); - opacity: var(--placeholder-opacity, 1); - } - - input.svelte-82qwg8:focus { - outline: none; - } - - .svelte-select.focused.svelte-82qwg8 { - border: var(--border-focused, 1px solid #006fe8); - border-radius: var(--border-radius-focused, var(--border-radius, 6px)); - } - - .disabled.svelte-82qwg8 { - background: var(--disabled-background, #ebedef); - border-color: var(--disabled-border-color, #ebedef); - color: var(--disabled-color, #c1c6cc); - } - - .disabled.svelte-82qwg8 input:where(.svelte-82qwg8)::placeholder { - color: var(--disabled-placeholder-color, #c1c6cc); - opacity: var(--disabled-placeholder-opacity, 1); - } - - .selected-item.svelte-82qwg8 { - position: relative; - overflow: var(--selected-item-overflow, hidden); - padding: var(--selected-item-padding, 0 20px 0 0); - text-overflow: ellipsis; - white-space: nowrap; - color: var(--selected-item-color, inherit); - font-size: var(--font-size, 16px); - } - - .multi.svelte-82qwg8 .selected-item:where(.svelte-82qwg8) { - position: absolute; - line-height: var(--height, 42px); - height: var(--height, 42px); - } - - .selected-item.svelte-82qwg8:focus { - outline: none; - } - - .hide-selected-item.svelte-82qwg8 { - opacity: 0; - } - - .icon.svelte-82qwg8 { - display: flex; - align-items: center; - justify-content: center; - } - - .clear-select.svelte-82qwg8 { - all: unset; - display: flex; - align-items: center; - justify-content: center; - width: var(--clear-select-width, 40px); - height: var(--clear-select-height, 100%); - color: var(--clear-select-color, var(--icons-color)); - margin: var(--clear-select-margin, 0); - pointer-events: all; - flex-shrink: 0; - } - - .clear-select.svelte-82qwg8:focus { - outline: var(--clear-select-focus-outline, 1px solid #006fe8); - } - - .loading.svelte-82qwg8 { - width: var(--loading-width, 40px); - height: var(--loading-height); - color: var(--loading-color, var(--icons-color)); - margin: var(--loading--margin, 0); - flex-shrink: 0; - } - - .chevron.svelte-82qwg8 { - width: var(--chevron-width, 40px); - height: var(--chevron-height, 40px); - background: var(--chevron-background, transparent); - pointer-events: var(--chevron-pointer-events, none); - color: var(--chevron-color, var(--icons-color)); - border: var(--chevron-border, 0 0 0 1px solid #d8dbdf); - flex-shrink: 0; - } - - .multi.svelte-82qwg8 { - padding: var(--multi-select-padding, var(--internal-padding)); - } - - .multi.svelte-82qwg8 input:where(.svelte-82qwg8) { - padding: var(--multi-select-input-padding, 0); - position: relative; - margin: var(--multi-select-input-margin, 5px 0); - flex: 1 1 40px; - } - - .svelte-select.error.svelte-82qwg8 { - border: var(--error-border, 1px solid #ff2d55); - background: var(--error-background, #fff); - } - - .a11y-text.svelte-82qwg8 { - z-index: 9999; - border: 0px; - clip: rect(1px, 1px, 1px, 1px); - height: 1px; - width: 1px; - position: absolute; - overflow: hidden; - padding: 0px; - white-space: nowrap; - } - - .multi-item.svelte-82qwg8 { - background: var(--multi-item-bg, #ebedef); - margin: var(--multi-item-margin, 0); - outline: var(--multi-item-outline, 1px solid #ddd); - border-radius: var(--multi-item-border-radius, 4px); - height: var(--multi-item-height, 25px); - line-height: var(--multi-item-height, 25px); - display: flex; - cursor: default; - padding: var(--multi-item-padding, 0 5px); - overflow: hidden; - gap: var(--multi-item-gap, 4px); - outline-offset: -1px; - max-width: var(--multi-max-width, none); - color: var(--multi-item-color, var(--item-color)); - } - - .multi-item.disabled.svelte-82qwg8:hover { - background: var(--multi-item-disabled-hover-bg, #ebedef); - color: var(--multi-item-disabled-hover-color, #c1c6cc); - } - - .multi-item-text.svelte-82qwg8 { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - - .multi-item-clear.svelte-82qwg8 { - display: flex; - align-items: center; - justify-content: center; - --clear-icon-color: var(--multi-item-clear-icon-color, #000); - } - - .multi-item.active.svelte-82qwg8 { - outline: var(--multi-item-active-outline, 1px solid #006fe8); - } - - .svelte-select-list.svelte-82qwg8 { - box-shadow: var(--list-shadow, 0 2px 3px 0 rgba(44, 62, 80, 0.24)); - border-radius: var(--list-border-radius, 4px); - max-height: var(--list-max-height, 252px); - overflow-y: auto; - background: var(--list-background, #fff); - position: var(--list-position, absolute); - z-index: var(--list-z-index, 2); - border: var(--list-border); - } - - .prefloat.svelte-82qwg8 { - opacity: 0; - pointer-events: none; - } - - .list-group-title.svelte-82qwg8 { - color: var(--group-title-color, #8f8f8f); - cursor: default; - font-size: var(--group-title-font-size, 16px); - font-weight: var(--group-title-font-weight, 600); - height: var(--height, 42px); - line-height: var(--height, 42px); - padding: var(--group-title-padding, 0 20px); - text-overflow: ellipsis; - overflow-x: hidden; - white-space: nowrap; - text-transform: var(--group-title-text-transform, uppercase); - border-width: var(--group-title-border-width, medium); - border-style: var(--group-title-border-style, none); - border-color: var(--group-title-border-color, color); - } - - .empty.svelte-82qwg8 { - text-align: var(--list-empty-text-align, center); - padding: var(--list-empty-padding, 20px 0); - color: var(--list-empty-color, #78848f); - } - - .item.svelte-82qwg8 { - cursor: default; - height: var(--item-height, var(--height, 42px)); - line-height: var(--item-line-height, var(--height, 42px)); - padding: var(--item-padding, 0 20px); - color: var(--item-color, inherit); - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - transition: var(--item-transition, all 0.2s); - align-items: center; - width: 100%; - } - - .item.group-item.svelte-82qwg8 { - padding-left: var(--group-item-padding-left, 40px); - } - - .item.svelte-82qwg8:active { - background: var(--item-active-background, #b9daff); - } - - .item.active.svelte-82qwg8 { - background: var(--item-is-active-bg, #007aff); - color: var(--item-is-active-color, #fff); - } - - .item.first.svelte-82qwg8 { - border-radius: var(--item-first-border-radius, 4px 4px 0 0); - } - - .item.hover.svelte-82qwg8:not(.active) { - background: var(--item-hover-bg, #e7f2ff); - color: var(--item-hover-color, inherit); - } - - .item.not-selectable.svelte-82qwg8, - .item.hover.item.not-selectable.svelte-82qwg8, - .item.active.item.not-selectable.svelte-82qwg8, - .item.not-selectable.svelte-82qwg8:active { - color: var(--item-is-not-selectable-color, #999); - background: transparent; - } - - .required.svelte-82qwg8 { - opacity: 0; - z-index: -1; - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - } -`);var RUA=vA('
            '),LUA=vA('
            No options
            '),xUA=vA('
            '),NUA=vA(' ',1),FUA=vA('
            '),_UA=vA('
            '),GUA=vA("
            "),KUA=vA(''),UUA=vA(''),JUA=vA(''),YUA=vA(''),TUA=vA(''),HUA=vA('
            ');function jC(t,e){var A=function(aA){var DA={};for(var PA in aA.children&&(DA.default=!0),aA.$$slots)DA[PA]=!0;return DA}(e);ft(e,!1);var i,n=$(),o=$(),r=$(),s=$(),a=$(),c=$(),g=$(),I=$(),C=$(),d=NGA(),B=M(e,"justValue",12,null),E=M(e,"filter",8,vUA),u=M(e,"getItems",8,MUA),h=M(e,"id",8,null),w=M(e,"name",8,null),x=M(e,"container",12,void 0),R=M(e,"input",12,void 0),D=M(e,"multiple",8,!1),G=M(e,"multiFullItemClearable",8,!1),J=M(e,"disabled",8,!1),z=M(e,"focused",12,!1),K=M(e,"value",12,null),O=M(e,"filterText",12,""),V=M(e,"placeholder",8,"Please select"),j=M(e,"placeholderAlwaysShow",8,!1),dA=M(e,"items",12,null),fA=M(e,"label",8,"label"),EA=M(e,"itemFilter",8,(aA,DA,PA)=>"".concat(aA).toLowerCase().includes(DA.toLowerCase())),IA=M(e,"groupBy",8,void 0),SA=M(e,"groupFilter",8,aA=>aA),nA=M(e,"groupHeaderSelectable",8,!1),lA=M(e,"itemId",8,"value"),wA=M(e,"loadOptions",8,void 0),VA=M(e,"containerStyles",8,""),ie=M(e,"hasError",8,!1),UA=M(e,"filterSelectedItems",8,!0),BA=M(e,"required",8,!1),JA=M(e,"closeListOnChange",8,!0),Xe=M(e,"clearFilterTextOnBlur",8,!0),We=M(e,"createGroupHeaderItem",8,(aA,DA)=>({value:aA,[fA()]:aA})),KA=()=>l(g),tA=M(e,"searchable",8,!0),OA=M(e,"inputStyles",8,""),gA=M(e,"clearable",8,!0),zA=M(e,"loading",12,!1),xA=M(e,"listOpen",12,!1),Me=M(e,"debounce",8,function(aA){var DA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;clearTimeout(i),i=setTimeout(aA,DA)}),LA=M(e,"debounceWait",8,300),cA=M(e,"hideEmptyState",8,!1),Gt=M(e,"inputAttributes",24,()=>({})),ct=M(e,"listAutoWidth",8,!0),oe=M(e,"showChevron",8,!1),Dt=M(e,"listOffset",8,5),_e=M(e,"hoverItemIndex",12,0),Re=M(e,"floatingConfig",24,()=>({})),St=M(e,"class",8,""),Se=$(),Wt=$(),L=$(),T=$(),P=$();function X(aA){return aA.map((DA,PA)=>({index:PA,value:DA,label:"".concat(DA)}))}function kA(aA){var DA=[],PA={};aA.forEach(vt=>{var Yt=IA()(vt);DA.includes(Yt)||(DA.push(Yt),PA[Yt]=[],Yt&&PA[Yt].push(Object.assign(We()(Yt,vt),{id:Yt,groupHeader:!0,selectable:nA()}))),PA[Yt].push(Object.assign({groupItem:!!Yt},vt))});var Je=[];return SA()(DA).forEach(vt=>{PA[vt]&&Je.push(...PA[vt])}),Je}function le(){var aA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,DA=arguments.length>1?arguments[1]:void 0;_e(aA<0?0:aA),!DA&&IA()&&l(g)[_e()]&&!l(g)[_e()].selectable&&ai(1)}function Ee(){var aA=!0;if(K()){var DA=[],PA=[];K().forEach(Je=>{DA.includes(Je[lA()])?aA=!1:(DA.push(Je[lA()]),PA.push(Je))}),aA||K(PA)}return aA}function FA(aA){var DA=aA?aA[lA()]:K()[lA()];return dA().find(PA=>PA[lA()]===DA)}function MA(aA){return dt.apply(this,arguments)}function dt(){return(dt=_t(function*(aA){var DA=K()[aA];K().length===1?K(void 0):K(K().filter(PA=>PA!==DA)),d("clear",DA)})).apply(this,arguments)}function $e(aA){if(z())switch(aA.stopPropagation(),aA.key){case"Escape":aA.preventDefault(),Le();break;case"Enter":if(aA.preventDefault(),xA()){if(l(g).length===0)break;var DA=l(g)[_e()];if(K()&&!D()&&K()[lA()]===DA[lA()]){Le();break}b(l(g)[_e()])}break;case"ArrowDown":aA.preventDefault(),xA()?ai(1):(xA(!0),y(Se,void 0));break;case"ArrowUp":aA.preventDefault(),xA()?ai(-1):(xA(!0),y(Se,void 0));break;case"Tab":if(xA()&&z()){if(l(g).length===0||K()&&K()[lA()]===l(g)[_e()][lA()])return Le();aA.preventDefault(),b(l(g)[_e()]),Le()}break;case"Backspace":if(!D()||O().length>0)return;if(D()&&K()&&K().length>0){if(MA(l(Se)!==void 0?l(Se):K().length-1),l(Se)===0||l(Se)===void 0)break;y(Se,K().length>l(Se)?l(Se)-1:void 0)}break;case"ArrowLeft":if(!K()||!D()||O().length>0)return;l(Se)===void 0?y(Se,K().length-1):K().length>l(Se)&&l(Se)!==0&&y(Se,l(Se)-1);break;case"ArrowRight":if(!K()||!D()||O().length>0||l(Se)===void 0)return;l(Se)===K().length-1?y(Se,void 0):l(Se)0?xA(!0):void xA(!xA())}function Oi(){d("clear",K()),K(void 0),Le(),XA()}function Le(){Xe()&&O(""),xA(!1)}FGA(_t(function*(){y(Wt,K()),y(L,O()),y(T,D())})),ws(()=>{xA()&&z(!0),z()&&R()&&R().focus()});var zi=M(e,"ariaValues",8,aA=>"Option ".concat(aA,", selected.")),fi=M(e,"ariaListOpen",8,(aA,DA)=>"You are currently focused on option ".concat(aA,". There are ").concat(DA," results available.")),Ht=M(e,"ariaFocused",8,()=>"Select is focused, type to refine list, press down to open the menu."),Rt,Bi=$(null);function Mi(){clearTimeout(Rt),Rt=setTimeout(()=>{Jt=!1},100)}ig(()=>{var aA;(aA=l(Bi))===null||aA===void 0||aA.remove()});var Jt=!1;function b(aA){aA&&aA.selectable!==!1&&function(DA){if(DA){O("");var PA=Object.assign({},DA);if(PA.groupHeader&&!PA.selectable)return;K(D()?K()?K().concat([PA]):[PA]:K(PA)),setTimeout(()=>{JA()&&Le(),y(Se,void 0),d("change",K()),d("select",DA)})}}(aA)}function et(aA){Jt||_e(aA)}function ai(aA){if(l(g).filter(PA=>!Object.hasOwn(PA,"selectable")||PA.selectable===!0).length===0)return _e(0);aA>0&&_e()===l(g).length-1?_e(0):aA<0&&_e()===0?_e(l(g).length-1):_e(_e()+aA);var DA=l(g)[_e()];DA&&DA.selectable===!1&&(aA!==1&&aA!==-1||ai(aA))}function Wi(aA,DA,PA){if(!D())return DA&&DA[PA]===aA[PA]}var Xi=Mo,xn=Mo;function Mo(aA){return{update(DA){DA.scroll&&(Mi(),aA.scrollIntoView({behavior:"auto",block:"nearest"}))}}}var vn=$({strategy:"absolute",placement:"bottom-start",middleware:[pUA(Dt()),wUA(),DUA()],autoUpdate:!1}),[In,qo,Vo]=yUA(l(vn)),uo=$(!0);pA(()=>(k(dA()),k(K())),()=>{dA(),K()&&function(){if(typeof K()=="string"){var aA=(dA()||[]).find(DA=>DA[lA()]===K());K(aA||{[lA()]:K(),label:K()})}else D()&&Array.isArray(K())&&K().length>0&&K(K().map(DA=>typeof DA=="string"?{value:DA,label:DA}:DA))}()}),pA(()=>(k(Gt()),k(tA())),()=>{!Gt()&&tA()||(y(P,Object.assign({autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:!1,tabindex:0,type:"text","aria-autocomplete":"list"},Gt())),h()&&hc(P,l(P).id=h()),tA()||hc(P,l(P).readonly=!0))}),pA(()=>k(D()),()=>{D()&&K()&&(Array.isArray(K())?K([...K()]):K([K()]))}),pA(()=>(l(T),k(D())),()=>{l(T)&&!D()&&K()&&K(null)}),pA(()=>(k(D()),k(K())),()=>{D()&&K()&&K().length>1&&Ee()}),pA(()=>k(K()),()=>{K()&&(D()?JSON.stringify(K())!==JSON.stringify(l(Wt))&&Ee()&&d("input",K()):l(Wt)&&JSON.stringify(K()[lA()])===JSON.stringify(l(Wt)[lA()])||d("input",K()))}),pA(()=>(k(K()),k(D()),l(Wt)),()=>{!K()&&D()&&l(Wt)&&d("input",K())}),pA(()=>(k(z()),k(R())),()=>{!z()&&R()&&Le()}),pA(()=>(k(O()),l(L)),()=>{O()!==l(L)&&(wA()||O().length!==0)&&(wA()?Me()(_t(function*(){zA(!0);var aA=yield u()({dispatch:d,loadOptions:wA(),convertStringItemsToObjects:X,filterText:O()});aA?(zA(aA.loading),xA(xA()?aA.listOpen:O().length>0),z(xA()&&aA.focused),dA(IA()?kA(aA.filteredItems):aA.filteredItems)):(zA(!1),z(!0),xA(!0))}),LA()):(xA(!0),D()&&y(Se,void 0)))}),pA(()=>(k(E()),k(wA()),k(O()),k(dA()),k(D()),k(K()),k(lA()),k(IA()),k(fA()),k(UA()),k(EA())),()=>{y(g,E()({loadOptions:wA(),filterText:O(),items:dA(),multiple:D(),value:K(),itemId:lA(),groupBy:IA(),label:fA(),filterSelectedItems:UA(),itemFilter:EA(),convertStringItemsToObjects:X,filterGroupedItems:kA}))}),pA(()=>(k(D()),k(xA()),k(K()),l(g)),()=>{!D()&&xA()&&K()&&l(g)&&le(l(g).findIndex(aA=>aA[lA()]===K()[lA()]),!0)}),pA(()=>(k(xA()),k(D())),()=>{xA()&&D()&&_e(0)}),pA(()=>k(O()),()=>{O()&&_e(0)}),pA(()=>k(_e()),()=>{var aA;aA=_e(),d("hoverItem",aA)}),pA(()=>(k(D()),k(K())),()=>{y(n,D()?K()&&K().length>0:K())}),pA(()=>(l(n),k(O())),()=>{y(o,l(n)&&O().length>0)}),pA(()=>(l(n),k(gA()),k(J()),k(zA())),()=>{y(r,l(n)&&gA()&&!J()&&!zA())}),pA(()=>(k(j()),k(D()),k(V()),k(K())),()=>{var aA;y(s,j()&&D()||D()&&((aA=K())===null||aA===void 0?void 0:aA.length)===0?V():K()?"":V())}),pA(()=>(k(K()),k(D())),()=>{var aA,DA;y(a,K()?(aA=D(),DA=void 0,DA=aA&&K().length>0?K().map(PA=>PA[fA()]).join(", "):K()[fA()],zi()(DA)):"")}),pA(()=>(l(g),k(_e()),k(z()),k(xA())),()=>{y(c,function(){if(!l(g)||l(g).length===0)return"";var aA=l(g)[_e()];if(xA()&&aA){var DA=l(g)?l(g).length:0;return fi()(aA[fA()],DA)}return Ht()()}((l(g),_e(),z(),xA())))}),pA(()=>k(dA()),()=>{(function(aA){aA&&aA.length!==0&&!aA.some(DA=>typeof DA!="object")&&K()&&(D()?!K().some(DA=>!DA||!DA[lA()]):K()[lA()])&&(Array.isArray(K())?K(K().map(DA=>FA(DA)||DA)):K(FA()||K()))})(dA())}),pA(()=>(k(D()),k(K()),k(lA())),()=>{B((D(),K(),lA(),D()?K()?K().map(aA=>aA[lA()]):null:K()?K()[lA()]:K()))}),pA(()=>(k(D()),l(Wt),k(K())),()=>{D()||!l(Wt)||K()||d("input",K())}),pA(()=>(k(xA()),l(g),k(D()),k(K())),()=>{xA()&&l(g)&&!D()&&!K()&&le()}),pA(()=>l(g),()=>{(function(aA){xA()&&d("filter",aA)})(l(g))}),pA(()=>(k(x()),k(Re()),l(vn)),()=>{x()&&Re()&&Vo(Object.assign(l(vn),Re()))}),pA(()=>l(Bi),()=>{y(I,!!l(Bi))}),pA(()=>(l(Bi),k(xA())),()=>{(function(aA,DA){if(!aA||!DA)return y(uo,!0);setTimeout(()=>{y(uo,!1)},0)})(l(Bi),xA())}),pA(()=>(k(xA()),k(x()),l(Bi)),()=>{xA()&&x()&&l(Bi)&&function(){var{width:aA}=x().getBoundingClientRect();hc(Bi,l(Bi).style.width=ct()?aA+"px":"auto")}()}),pA(()=>k(_e()),()=>{y(C,_e())}),pA(()=>(k(R()),k(xA()),k(z())),()=>{R()&&xA()&&!z()&&XA()}),pA(()=>(k(x()),k(Re())),()=>{var aA;x()&&((aA=Re())===null||aA===void 0?void 0:aA.autoUpdate)===void 0&&hc(vn,l(vn).autoUpdate=!0)}),ln(),qt();var Qn,Kn=HUA();ce("click",i2,function(aA){var DA;xA()||z()||!x()||x().contains(aA.target)||(DA=l(Bi))!==null&&DA!==void 0&&DA.contains(aA.target)||ot()}),ce("keydown",i2,$e);var $A=W(Kn),Ei=aA=>{var DA,PA=xUA(),Je=W(PA),vt=bt=>{var Li=_o();Po(Mt(Li),e,"list-prepend",{},null),iA(bt,Li)};GA(Je,bt=>{oA(()=>A["list-prepend"])&&bt(vt)});var Yt=CA(Je,2),rn=bt=>{var Li=_o();Po(Mt(Li),e,"list",{get filteredItems(){return l(g)}},null),iA(bt,Li)},no=(bt,Li)=>{var Mn=fn=>{var Te=_o();jo(Mt(Te),1,()=>l(g),cr,(Qi,mi,bn)=>{var Ko,Ot=RUA(),Nr=W(Ot);Po(W(Nr),e,"item",{get item(){return l(mi)},index:bn},Jn=>{var Q=jr();we(()=>pt(Q,(l(mi),k(fA()),oA(()=>{var m;return(m=l(mi))===null||m===void 0?void 0:m[fA()]})))),iA(Jn,Q)}),Ts(Nr,(Jn,Q)=>Xi?.(Jn),()=>({scroll:Wi(l(mi),K(),lA()),listDom:l(I)})),Ts(Nr,(Jn,Q)=>xn?.(Jn),()=>({scroll:l(C)===bn,listDom:l(I)})),we(Jn=>Ko=jt(Nr,1,"item svelte-82qwg8",null,Ko,Jn),[()=>{var Jn,Q;return{"list-group-title":l(mi).groupHeader,active:Wi(l(mi),K(),lA()),first:(Q=bn,Q===0),hover:_e()===bn,"group-item":l(mi).groupItem,"not-selectable":((Jn=l(mi))===null||Jn===void 0?void 0:Jn.selectable)===!1}}],ZA),ce("mouseover",Ot,()=>et(bn)),ce("focus",Ot,()=>et(bn)),ce("click",Ot,Z0(()=>function(Jn){var{item:Q,i:m}=Jn;if(Q?.selectable!==!1)return K()&&!D()&&K()[lA()]===Q[lA()]?Le():void(function(v){return v.groupHeader&&v.selectable||v.selectable||!v.hasOwnProperty("selectable")}(Q)&&(_e(m),b(Q)))}({item:l(mi),i:bn}))),ce("keydown",Ot,z1(Z0(function(Jn){H3.call(this,e,Jn)}))),iA(Qi,Ot)}),iA(fn,Te)},Qt=(fn,Te)=>{var Qi=mi=>{var bn=_o();Po(Mt(bn),e,"empty",{},Ko=>{iA(Ko,LUA())}),iA(mi,bn)};GA(fn,mi=>{cA()||mi(Qi)},Te)};GA(bt,fn=>{l(g),oA(()=>l(g).length>0)?fn(Mn):fn(Qt,!1)},Li)};GA(Yt,bt=>{oA(()=>A.list)?bt(rn):bt(no,!1)});var sn=CA(Yt,2),Ji=bt=>{var Li=_o();Po(Mt(Li),e,"list-append",{},null),iA(bt,Li)};GA(sn,bt=>{oA(()=>A["list-append"])&&bt(Ji)}),Ts(PA,bt=>qo?.(bt)),Qo(PA,bt=>y(Bi,bt),()=>l(Bi)),rs(()=>ce("scroll",PA,Mi)),rs(()=>ce("pointerup",PA,z1(Z0(function(bt){H3.call(this,e,bt)})))),rs(()=>ce("mousedown",PA,z1(Z0(function(bt){H3.call(this,e,bt)})))),we(bt=>DA=jt(PA,1,"svelte-select-list svelte-82qwg8",null,DA,bt),[()=>({prefloat:l(uo)})],ZA),iA(aA,PA)};GA($A,aA=>{xA()&&aA(Ei)});var Ri=CA($A,2),un=W(Ri),Un=aA=>{var DA=NUA(),PA=Mt(DA),Je=W(PA),vt=W(CA(PA,2));we(()=>{pt(Je,l(a)),pt(vt,l(c))}),iA(aA,DA)};GA(un,aA=>{z()&&aA(Un)});var Zo=CA(Ri,2);Po(W(Zo),e,"prepend",{},null);var Ci=CA(Zo,2),io=W(Ci),Wo=aA=>{var DA=_o(),PA=Mt(DA),Je=Yt=>{var rn=_o();jo(Mt(rn),1,K,cr,(no,sn,Ji)=>{var bt,Li=_UA(),Mn=W(Li);Po(W(Mn),e,"selection",{get selection(){return l(sn)},index:Ji},Te=>{var Qi=jr();we(()=>pt(Qi,(l(sn),k(fA()),oA(()=>l(sn)[fA()])))),iA(Te,Qi)});var Qt=CA(Mn,2),fn=Te=>{var Qi=FUA();Po(W(Qi),e,"multi-clear-icon",{},mi=>{EG(mi)}),ce("pointerup",Qi,z1(Z0(()=>MA(Ji)))),iA(Te,Qi)};GA(Qt,Te=>{J()||G()||!EG||Te(fn)}),we(Te=>bt=jt(Li,1,"multi-item svelte-82qwg8",null,bt,Te),[()=>({active:l(Se)===Ji,disabled:J()})],ZA),ce("click",Li,z1(()=>G()?MA(Ji):{})),ce("keydown",Li,z1(Z0(function(Te){H3.call(this,e,Te)}))),iA(no,Li)}),iA(Yt,rn)},vt=Yt=>{var rn,no=GUA();Po(W(no),e,"selection",{get selection(){return K()}},sn=>{var Ji=jr();we(()=>pt(Ji,(k(K()),k(fA()),oA(()=>K()[fA()])))),iA(sn,Ji)}),we(sn=>rn=jt(no,1,"selected-item svelte-82qwg8",null,rn,sn),[()=>({"hide-selected-item":l(o)})],ZA),iA(Yt,no)};GA(PA,Yt=>{D()?Yt(Je):Yt(vt,!1)}),iA(aA,DA)};GA(io,aA=>{l(n)&&aA(Wo)});var Xo=CA(io,2);vy(Xo,()=>pe(pe({readOnly:!tA()},l(P)),{},{placeholder:l(s),style:OA(),disabled:J()}),void 0,"svelte-82qwg8"),Qo(Xo,aA=>R(aA),()=>R());var nr=CA(Ci,2),on=W(nr),$i=aA=>{var DA=KUA();Po(W(DA),e,"loading-icon",{},PA=>{(function(Je){iA(Je,SUA())})(PA)}),iA(aA,DA)};GA(on,aA=>{zA()&&aA($i)});var yt=CA(on,2),hn=aA=>{var DA=UUA();Po(W(DA),e,"clear-icon",{},PA=>{EG(PA)}),ce("click",DA,Oi),iA(aA,DA)};GA(yt,aA=>{l(r)&&aA(hn)});var hA=CA(yt,2),Ae=aA=>{var DA=JUA();Po(W(DA),e,"chevron-icon",{get listOpen(){return xA()}},PA=>{(function(Je){iA(Je,bUA())})(PA)}),iA(aA,DA)};GA(hA,aA=>{oe()&&aA(Ae)});var re=CA(nr,2);Po(re,e,"input-hidden",{get value(){return K()}},aA=>{var DA=YUA();we(PA=>{gn(DA,"name",w()),ed(DA,PA)},[()=>(k(K()),oA(()=>K()?JSON.stringify(K()):null))],ZA),iA(aA,DA)});var xe=CA(re,2),ue=aA=>{var DA=_o();Po(Mt(DA),e,"required",{get value(){return K()}},PA=>{iA(PA,TUA())}),iA(aA,DA)};return GA(xe,aA=>{k(BA()),k(K()),oA(()=>BA()&&(!K()||K().length===0))&&aA(ue)}),rs(()=>ce("pointerup",Kn,z1(Zi))),Qo(Kn,aA=>x(aA),()=>x()),Ts(Kn,aA=>In?.(aA)),we(aA=>{var DA;Qn=jt(Kn,1,"svelte-select ".concat((DA=St())!==null&&DA!==void 0?DA:""),"svelte-82qwg8",Qn,aA),eg(Kn,VA())},[()=>({multi:D(),disabled:J(),focused:z(),"list-open":xA(),"show-chevron":oe(),error:ie()})],ZA),ce("keydown",Xo,$e),ce("blur",Xo,ot),ce("focus",Xo,XA),Fy(Xo,O),iA(t,Kn),Ft(e,"getFilteredItems",KA),Ft(e,"handleClear",Oi),mt({getFilteredItems:KA,handleClear:Oi})}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -table.jse-transform-wizard.svelte-qbze6z { - border-collapse: collapse; - border-spacing: 0; - width: 100%; -} -table.jse-transform-wizard.svelte-qbze6z input:where(.svelte-qbze6z) { - font-family: inherit; - font-size: inherit; -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) th:where(.svelte-qbze6z) { - font-weight: normal; - text-align: left; - width: 60px; -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) { - width: 100%; - display: flex; - flex-direction: row; - margin-bottom: calc(0.5 * var(--jse-padding, 10px)); -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select .multi-item { - align-items: center; -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select .value-container { - gap: 0 !important; -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-filter-path { - flex: 4; - margin-right: calc(0.5 * var(--jse-padding, 10px)); -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-filter-relation { - flex: 1.5; - margin-right: calc(0.5 * var(--jse-padding, 10px)); -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-sort-path { - flex: 3; - margin-right: calc(0.5 * var(--jse-padding, 10px)); -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-sort-direction { - flex: 1; -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-projection-paths { - flex: 1; -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select input { - box-sizing: border-box; -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .jse-filter-value:where(.svelte-qbze6z) { - flex: 4; - padding: 4px 8px; - border: var(--jse-input-border, 1px solid #d8dbdf); - border-radius: var(--jse-input-radius, 3px); - outline: none; - background: var(--jse-input-background, var(--jse-background-color, #fff)); - color: inherit; -} -table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .jse-filter-value:where(.svelte-qbze6z):focus { - border: var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa))); -}`);var OUA=vA('
            Filter
            Sort
            Pick
            ');function zUA(t,e){var A,i,n,o,r;ft(e,!1);var s=$(void 0,!0),a=$(void 0,!0),c=$(void 0,!0),g=$(void 0,!0),I=$(void 0,!0),C=$(void 0,!0),d=xr("jsoneditor:TransformWizard"),B=M(e,"json",9),E=M(e,"queryOptions",29,()=>({})),u=M(e,"onChange",9),h=["==","!=","<","<=",">",">="].map(UA=>({value:UA,label:UA})),w=[{value:"asc",label:"ascending"},{value:"desc",label:"descending"}],x=$((A=E())!==null&&A!==void 0&&(A=A.filter)!==null&&A!==void 0&&A.path?q1(E().filter.path):void 0,!0),R=$((i=h.find(UA=>{var BA;return UA.value===((BA=E().filter)===null||BA===void 0?void 0:BA.relation)}))!==null&&i!==void 0?i:h[0],!0),D=$(((n=E())===null||n===void 0||(n=n.filter)===null||n===void 0?void 0:n.value)||"",!0),G=$((o=E())!==null&&o!==void 0&&(o=o.sort)!==null&&o!==void 0&&o.path?q1(E().sort.path):void 0,!0),J=$((r=w.find(UA=>{var BA;return UA.value===((BA=E().sort)===null||BA===void 0?void 0:BA.direction)}))!==null&&r!==void 0?r:w[0],!0);pA(()=>k(B()),()=>{y(s,Array.isArray(B()))}),pA(()=>(l(s),k(B())),()=>{y(a,l(s)?LG(B()):[])}),pA(()=>(l(s),k(B())),()=>{y(c,l(s)?LG(B(),!0):[])}),pA(()=>(l(a),q1),()=>{y(g,l(a).map(q1))}),pA(()=>(l(c),q1),()=>{y(I,l(c)?l(c).map(q1):[])}),pA(()=>(k(E()),l(I),ri),()=>{var UA;y(C,(UA=E())!==null&&UA!==void 0&&(UA=UA.projection)!==null&&UA!==void 0&&UA.paths&&l(I)?E().projection.paths.map(BA=>l(I).find(JA=>ri(JA.value,BA))).filter(BA=>!!BA):void 0)}),pA(()=>l(x),()=>{var UA,BA,JA;BA=(UA=l(x))===null||UA===void 0?void 0:UA.value,ri((JA=E())===null||JA===void 0||(JA=JA.filter)===null||JA===void 0?void 0:JA.path,BA)||(d("changeFilterPath",BA),E(Bs(E(),["filter","path"],BA,!0)),u()(E()))}),pA(()=>l(R),()=>{var UA,BA,JA;BA=(UA=l(R))===null||UA===void 0?void 0:UA.value,ri((JA=E())===null||JA===void 0||(JA=JA.filter)===null||JA===void 0?void 0:JA.relation,BA)||(d("changeFilterRelation",BA),E(Bs(E(),["filter","relation"],BA,!0)),u()(E()))}),pA(()=>l(D),()=>{var UA,BA;UA=l(D),ri((BA=E())===null||BA===void 0||(BA=BA.filter)===null||BA===void 0?void 0:BA.value,UA)||(d("changeFilterValue",UA),E(Bs(E(),["filter","value"],UA,!0)),u()(E()))}),pA(()=>l(G),()=>{var UA,BA,JA;BA=(UA=l(G))===null||UA===void 0?void 0:UA.value,ri((JA=E())===null||JA===void 0||(JA=JA.sort)===null||JA===void 0?void 0:JA.path,BA)||(d("changeSortPath",BA),E(Bs(E(),["sort","path"],BA,!0)),u()(E()))}),pA(()=>l(J),()=>{var UA,BA,JA;BA=(UA=l(J))===null||UA===void 0?void 0:UA.value,ri((JA=E())===null||JA===void 0||(JA=JA.sort)===null||JA===void 0?void 0:JA.direction,BA)||(d("changeSortDirection",BA),E(Bs(E(),["sort","direction"],BA,!0)),u()(E()))}),pA(()=>l(C),()=>{(function(UA){var BA;ri((BA=E())===null||BA===void 0||(BA=BA.projection)===null||BA===void 0?void 0:BA.paths,UA)||(d("changeProjectionPaths",UA),E(Bs(E(),["projection","paths"],UA,!0)),u()(E()))})(l(C)?l(C).map(UA=>UA.value):void 0)}),ln(),qt(!0);var z=OUA(),K=W(z),O=W(K),V=CA(W(O)),j=W(V),dA=W(j);jC(dA,{class:"jse-filter-path",showChevron:!0,get items(){return l(g)},get value(){return l(x)},set value(UA){y(x,UA)},$$legacy:!0});var fA=CA(dA,2);jC(fA,{class:"jse-filter-relation",showChevron:!0,clearable:!1,get items(){return h},get value(){return l(R)},set value(UA){y(R,UA)},$$legacy:!0});var EA=CA(fA,2),IA=CA(O),SA=CA(W(IA)),nA=W(SA),lA=W(nA);jC(lA,{class:"jse-sort-path",showChevron:!0,get items(){return l(g)},get value(){return l(G)},set value(UA){y(G,UA)},$$legacy:!0}),jC(CA(lA,2),{class:"jse-sort-direction",showChevron:!0,clearable:!1,get items(){return w},get value(){return l(J)},set value(UA){y(J,UA)},$$legacy:!0});var wA=CA(IA),VA=CA(W(wA)),ie=W(VA);jC(W(ie),{class:"jse-projection-paths",multiple:!0,showChevron:!0,get items(){return l(I)},get value(){return l(C)},set value(UA){y(C,UA)},$$legacy:!0}),Fy(EA,()=>l(D),UA=>y(D,UA)),iA(t,z),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-select-query-language.svelte-atm4um { - position: relative; - width: 32px; -} -.jse-select-query-language.svelte-atm4um .jse-select-query-language-container:where(.svelte-atm4um) { - position: absolute; - top: 0; - right: 0; - display: flex; - flex-direction: column; - box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); -} -.jse-select-query-language.svelte-atm4um .jse-select-query-language-container:where(.svelte-atm4um) .jse-query-language:where(.svelte-atm4um) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - text-align: left; - padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); - white-space: nowrap; - color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); - background: var(--jse-context-menu-background, #656565); -} -.jse-select-query-language.svelte-atm4um .jse-select-query-language-container:where(.svelte-atm4um) .jse-query-language:where(.svelte-atm4um):hover { - background: var(--jse-context-menu-background-highlight, #7a7a7a); -}`);var PUA=vA(''),jUA=vA('
            ');function qUA(t,e){ft(e,!1);var A=M(e,"queryLanguages",8),i=M(e,"queryLanguageId",12),n=M(e,"onChangeQueryLanguage",8);qt();var o=jUA();jo(W(o),5,A,cr,(r,s)=>{var a,c=PUA(),g=W(c),I=B=>{Ui(B,{get data(){return AL}})},C=B=>{Ui(B,{get data(){return eL}})};GA(g,B=>{l(s),k(i()),oA(()=>l(s).id===i())?B(I):B(C,!1)});var d=CA(g);we(B=>{var E;a=jt(c,1,"jse-query-language svelte-atm4um",null,a,B),gn(c,"title",(l(s),oA(()=>"Select ".concat(l(s).name," as query language")))),pt(d," ".concat((l(s),(E=oA(()=>l(s).name))!==null&&E!==void 0?E:"")))},[()=>({selected:l(s).id===i()})],ZA),ce("click",c,()=>{return B=l(s).id,i(B),void n()(B);var B}),iA(r,c)}),iA(t,o),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-header.svelte-1y24war { - display: flex; - background: var(--jse-theme-color, #3883fa); - color: var(--jse-menu-color, var(--jse-text-color-inverse, #fff)); -} -.jse-header.svelte-1y24war .jse-title:where(.svelte-1y24war) { - flex: 1; - padding: 5px; - vertical-align: middle; -} -.jse-header.svelte-1y24war button:where(.svelte-1y24war) { - border: none; - background: transparent; - min-width: 32px; - color: inherit; - cursor: pointer; -} -.jse-header.svelte-1y24war button:where(.svelte-1y24war):hover { - background: rgba(255, 255, 255, 0.1); -}`);var VUA=vA(''),ZUA=vA('
            ');function qy(t,e){ft(e,!1);var A=M(e,"title",9,"Modal"),i=M(e,"fullScreenButton",9,!1),n=M(e,"fullscreen",13,!1),o=M(e,"onClose",9,void 0);qt(!0);var r=ZUA(),s=W(r),a=W(s),c=CA(s,2);Po(c,e,"actions",{},null);var g=CA(c,2),I=d=>{var B=VUA(),E=W(B),u=ZA(()=>n()?IX:MX);Ui(E,{get data(){return l(u)}}),ce("click",B,()=>n(!n())),iA(d,B)};GA(g,d=>{i()&&d(I)});var C=CA(g,2);Ui(W(C),{get data(){return h4}}),we(()=>pt(a,A())),ce("click",C,()=>{var d;return(d=o())===null||d===void 0?void 0:d()}),iA(t,r),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-config.svelte-1kpylsp { - border: none; - background: transparent; - min-width: 32px; - color: inherit; - cursor: pointer; -} -.jse-config.svelte-1kpylsp:hover { - background: rgba(255, 255, 255, 0.1); -} -.jse-config.hide.svelte-1kpylsp { - display: none; -}`);var WUA=vA(''),QG=xr("jsoneditor:AutoScrollHandler");function csA(t){var e,A;function i(s){return s<20?200:s<50?400:1200}function n(){if(t){var s=.05*(e||0);t.scrollTop+=s}}function o(s){A&&s===e||(r(),QG("startAutoScroll",s),e=s,A=setInterval(n,50))}function r(){A&&(QG("stopAutoScroll"),clearInterval(A),A=void 0,e=void 0)}return QG("createAutoScrollHandler",t),{onDrag:function(s){if(t){var a=s.clientY,{top:c,bottom:g}=t.getBoundingClientRect();ag?o(i(a-g)):r()}},onDragEnd:function(){r()}}}var XUA=(t,e,A,i)=>(t/=i/2)<1?A/2*t*t+e:-A/2*(--t*(t-2)-1)+e,qaA=()=>{var t,e,A,i,n,o,r,s,a,c,g,I,C;function d(u){return u.getBoundingClientRect().top-(t.getBoundingClientRect?t.getBoundingClientRect().top:0)+A}function B(u){t.scrollTo?t.scrollTo(t.scrollLeft,u):t.scrollTop=u}function E(u){c||(c=u),B(o(g=u-c,A,s,a)),C=!0,g1&&arguments[1]!==void 0?arguments[1]:{};switch(a=1e3,n=h.offset||0,I=h.callback,o=h.easing||XUA,r=h.a11y||!1,typeof h.container){case"object":t=h.container;break;case"string":t=document.querySelector(h.container);break;default:t=window.document.documentElement}switch(A=t.scrollTop,typeof u){case"number":e=void 0,r=!1,i=A+u;break;case"object":i=d(e=u);break;case"string":e=document.querySelector(u),i=d(e)}switch(s=i-A+n,typeof h.duration){case"number":a=h.duration;break;case"function":a=h.duration(s)}C?c=0:requestAnimationFrame(E)}};function fQ(t,e){var A=Date.now(),i=t();return e(Date.now()-A),i}var BQ=xr("validation"),$UA={createObjectDocumentState:()=>({type:"object",properties:{}}),createArrayDocumentState:()=>({type:"array",items:[]}),createValueDocumentState:()=>({type:"value"})};function gsA(t,e,A,i){return pK(t,e,A,i,$UA)}function VaA(t,e,A,i){if(BQ("validateJSON"),!e)return[];if(A!==i){var n=A.stringify(t);return e(n!==void 0?i.parse(n):void 0)}return e(t)}function AJA(t,e,A,i){if(BQ("validateText"),t.length>104857600)return{validationErrors:[{path:[],message:"Validation turned off: the document is too large",severity:Og.info}]};if(t.length!==0)try{var n=fQ(()=>A.parse(t),a=>BQ("validate: parsed json in ".concat(a," ms")));if(!e)return;var o=A===i?n:fQ(()=>i.parse(t),a=>BQ("validate: parsed json with the validationParser in ".concat(a," ms"))),r=fQ(()=>e(o),a=>BQ("validate: validated json in ".concat(a," ms")));return Gi(r)?void 0:{validationErrors:r}}catch(a){var s=fQ(()=>function(c,g){if(c.length>bKA)return!1;try{return g.parse(Uc(c)),!0}catch{return!1}}(t,A),c=>BQ("validate: checked whether repairable in ".concat(c," ms")));return{parseError:MQ(t,a.message||a.toString()),isRepairable:s}}}var my=xr("jsoneditor:FocusTracker");function kK(t){var e,{onMount:A,onDestroy:i,getWindow:n,hasFocus:o,onFocus:r,onBlur:s}=t,a=!1;function c(){var I=o();I&&(clearTimeout(e),a||(my("focus"),r(),a=I))}function g(){a&&(clearTimeout(e),e=setTimeout(()=>{o()||(my("blur"),a=!1,s())}))}A(()=>{my("mount FocusTracker");var I=n();I&&(I.addEventListener("focusin",c,!0),I.addEventListener("focusout",g,!0))}),i(()=>{my("destroy FocusTracker");var I=n();I&&(I.removeEventListener("focusin",c,!0),I.removeEventListener("focusout",g,!0))})}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-message.svelte-czprfx { - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - padding: var(--jse-padding, 10px); - display: flex; - gap: var(--jse-padding, 10px); - flex-wrap: wrap; - align-items: stretch; -} -.jse-message.jse-success.svelte-czprfx { - background: var(--message-success-background, #9ac45d); - color: var(--jse-message-success-color, #fff); -} -.jse-message.svelte-czprfx .jse-text:where(.svelte-czprfx) { - display: flex; - flex: 1; - min-width: 60%; - align-items: center; -} -.jse-message.svelte-czprfx .jse-text.jse-clickable:where(.svelte-czprfx) { - cursor: pointer; -} -.jse-message.svelte-czprfx .jse-text.jse-clickable:where(.svelte-czprfx):hover { - background-color: rgba(255, 255, 255, 0.1); -} -.jse-message.jse-error.svelte-czprfx { - background: var(--jse-message-error-background, var(--jse-error-color, #ee5341)); - color: var(--jse-message-error-color, #fff); -} -.jse-message.jse-warning.svelte-czprfx { - background: var(--jse-message-warning-background, #ffde5c); - color: var(--jse-message-warning-color, #4d4d4d); -} -.jse-message.jse-info.svelte-czprfx { - background: var(--jse-message-info-background, #4f91ff); - color: var(--jse-message-info-color, #fff); -} -.jse-message.svelte-czprfx .jse-actions:where(.svelte-czprfx) { - display: flex; - gap: var(--jse-padding, 10px); -} -.jse-message.svelte-czprfx .jse-actions:where(.svelte-czprfx) button.jse-action:where(.svelte-czprfx) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - background: var(--jse-message-action-background, rgba(255, 255, 255, 0.2)); - color: inherit; - padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); -} -.jse-message.svelte-czprfx .jse-actions:where(.svelte-czprfx) button.jse-action:where(.svelte-czprfx):hover { - background: var(--jse-message-action-background-highlight, rgba(255, 255, 255, 0.3)); -}`);var eJA=vA(''),tJA=vA('
            ');function pc(t,e){ft(e,!1);var A=M(e,"type",9,"success"),i=M(e,"icon",9,void 0),n=M(e,"message",9,void 0),o=M(e,"actions",25,()=>[]),r=M(e,"onClick",9,void 0),s=M(e,"onClose",9,void 0);s()&&ig(s()),qt(!0);var a,c=tJA(),g=W(c),I=W(g),C=W(I),d=E=>{Ui(E,{get data(){return i()}})};GA(C,E=>{i()&&E(d)});var B=CA(C);jo(CA(g,2),5,o,cr,(E,u)=>{var h=eJA(),w=W(h),x=D=>{Ui(D,{get data(){return l(u),oA(()=>l(u).icon)}})};GA(w,D=>{l(u),oA(()=>l(u).icon)&&D(x)});var R=CA(w);we(()=>{var D;gn(h,"title",(l(u),oA(()=>l(u).title))),h.disabled=(l(u),oA(()=>l(u).disabled)),pt(R," ".concat((l(u),(D=oA(()=>l(u).text))!==null&&D!==void 0?D:"")))}),ce("click",h,()=>{l(u).onClick&&l(u).onClick()}),ce("mousedown",h,()=>{l(u).onMouseDown&&l(u).onMouseDown()}),iA(E,h)}),we(E=>{var u,h;jt(c,1,"jse-message jse-".concat((u=A())!==null&&u!==void 0?u:""),"svelte-czprfx"),a=jt(g,1,"jse-text svelte-czprfx",null,a,E),pt(B," ".concat((h=n())!==null&&h!==void 0?h:""))},[()=>({"jse-clickable":!!r()})],ZA),ce("click",g,function(){r()&&r()()}),iA(t,c),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-validation-errors-overview.svelte-1uindol { - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - overflow: auto; - max-height: 25%; -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) { - border-collapse: collapse; - width: 100%; -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) { - cursor: pointer; -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-error:where(.svelte-1uindol) { - background: var(--jse-message-error-background, var(--jse-error-color, #ee5341)); - color: var(--jse-message-error-color, #fff); -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-warning:where(.svelte-1uindol) { - background: var(--jse-message-warning-background, #ffde5c); - color: var(--jse-message-warning-color, #4d4d4d); -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-warning:where(.svelte-1uindol):hover { - filter: brightness(105%); -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-info:where(.svelte-1uindol) { - background: var(--jse-message-info-background, #4f91ff); - color: var(--jse-message-info-color, #fff); -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol):hover { - filter: brightness(110%); -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td:where(.svelte-1uindol) { - padding: 4px var(--jse-padding, 10px); - vertical-align: middle; -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-icon:where(.svelte-1uindol) { - width: 36px; - box-sizing: border-box; -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-action:where(.svelte-1uindol) { - width: 36px; - box-sizing: border-box; - padding: 0; -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-action:where(.svelte-1uindol) button.jse-validation-errors-collapse:where(.svelte-1uindol) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - width: 36px; - height: 26px; - cursor: pointer; -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-action:where(.svelte-1uindol) button.jse-validation-errors-collapse:where(.svelte-1uindol):hover { - background-color: rgba(255, 255, 255, 0.2); -} -.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td:where(.svelte-1uindol) div.jse-validation-errors-expand:where(.svelte-1uindol) { - display: inline-block; - position: relative; - top: 3px; -}`);var iJA=vA(''),nJA=vA(' '),oJA=vA(' '),rJA=vA('
            '),sJA=vA('
            '),aJA=vA('
            ');function SK(t,e){ft(e,!1);var A=$(void 0,!0),i=M(e,"validationErrors",9),n=M(e,"selectError",9),o=$(!0,!0);function r(){y(o,!1)}function s(){y(o,!0)}pA(()=>k(i()),()=>{y(A,i().length)}),ln(),qt(!0);var a=_o(),c=Mt(a),g=I=>{var C=aJA(),d=W(C),B=u=>{var h=rJA(),w=W(h),x=W(w);jo(x,1,()=>(k(_y),k(i()),k(By),oA(()=>_y(i(),By))),cr,(G,J,z)=>{var K=nJA(),O=W(K);Ui(W(O),{get data(){return m1}});var V=CA(O),j=W(V),dA=CA(V),fA=W(dA),EA=W(CA(dA)),IA=SA=>{var nA=iJA();Ui(W(nA),{get data(){return pX}}),ce("click",nA,Z0(r)),iA(SA,nA)};GA(EA,SA=>{k(i()),oA(()=>z===0&&i().length>1)&&SA(IA)}),we(SA=>{var nA;jt(K,1,"jse-validation-".concat((l(J),(nA=oA(()=>l(J).severity))!==null&&nA!==void 0?nA:"")),"svelte-1uindol"),pt(j,SA),pt(fA,(l(J),oA(()=>l(J).message)))},[()=>(k(Ta),l(J),oA(()=>Ta(l(J).path)))],ZA),ce("click",K,()=>{setTimeout(()=>n()(l(J)))}),iA(G,K)});var R=CA(x),D=G=>{var J=oJA(),z=CA(W(J),2),K=W(z);we(()=>pt(K,"(and ".concat(l(A)-By," more errors)"))),iA(G,J)};GA(R,G=>{l(A)>By&&G(D)}),iA(u,h)},E=u=>{var h=sJA(),w=W(h),x=W(w),R=W(x);Ui(W(R),{get data(){return m1}});var D=W(CA(R));Ui(W(CA(D)),{get data(){return nL}}),we(G=>{var J;jt(x,1,"jse-validation-".concat(G??""),"svelte-1uindol"),pt(D,"".concat((J=l(A))!==null&&J!==void 0?J:""," validation errors "))},[()=>(k(i()),oA(()=>{return G=i(),[Og.error,Og.warning,Og.info].find(J=>G.some(z=>z.severity===J));var G}))],ZA),ce("click",x,s),iA(u,h)};GA(d,u=>{l(o)||l(A)===1?u(B):u(E,!1)}),iA(I,C)};GA(c,I=>{k(Gi),k(i()),oA(()=>!Gi(i()))&&I(g)}),iA(t,a),mt()}function Vy(t,e){if(t)return t.addEventListener("keydown",A),{destroy(){t.removeEventListener("keydown",A)}};function A(i){i.key==="Escape"&&(i.preventDefault(),i.stopPropagation(),e())}}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -dialog.jse-modal.svelte-1s9c2ql { - border-radius: 3px; - font-size: var(--jse-padding, 10px); - border: none; - padding: 0; - display: flex; - min-width: 0; - margin: auto; - overflow: visible; - transition: width 0.1s ease-in-out, height 0.1s ease-in-out; -} -dialog.jse-modal.jse-sort-modal.svelte-1s9c2ql { - width: 400px; -} -dialog.jse-modal.jse-repair-modal.svelte-1s9c2ql { - width: 600px; - height: 500px; -} -dialog.jse-modal.jse-jsoneditor-modal.svelte-1s9c2ql { - width: 800px; - height: 600px; -} -dialog.jse-modal.jse-transform-modal.svelte-1s9c2ql { - width: 1200px; - height: 800px; -} -dialog.jse-modal.jse-fullscreen.svelte-1s9c2ql { - width: 100%; - height: 100%; -} -dialog.jse-modal.svelte-1s9c2ql::backdrop { - background: var(--jse-overlay-background, rgba(0, 0, 0, 0.3)); -} -dialog.jse-modal[open].svelte-1s9c2ql { - animation: svelte-1s9c2ql-zoom 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); -} -dialog.jse-modal[open].svelte-1s9c2ql::backdrop { - animation: svelte-1s9c2ql-fade 0.2s ease-out; -} -dialog.jse-modal.svelte-1s9c2ql .jse-modal-inner:where(.svelte-1s9c2ql) { - flex: 1; - display: flex; - flex-direction: column; - min-width: 0; - min-height: 0; - padding: 0; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - line-height: normal; - background: var(--jse-modal-background, #f5f5f5); - color: var(--jse-text-color, #4d4d4d); -} -@keyframes svelte-1s9c2ql-zoom { - from { - transform: scale(0.95); - } - to { - transform: scale(1); - } -} -@keyframes svelte-1s9c2ql-fade { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -dialog.jse-modal.svelte-1s9c2ql .svelte-select { - --border: var(--jse-svelte-select-border, 1px solid #d8dbdf); - --item-is-active-bg: var(--jse-item-is-active-bg, #3883fa); - --border-radius: var(--jse-svelte-select-border-radius, 3px); - --background: var(--jse-svelte-select-background, #fff); - --padding: var(--jse-svelte-select-padding, 0 10px); - --multi-select-padding: var(--jse-svelte-select-multi-select-padding, 0 10px); - --font-size: var(--jse-svelte-select-font-size, var(--jse-font-size, 16px)); - --height: 36px; - --multi-item-height: 28px; - --multi-item-margin: 2px; - --multi-item-padding: 2px 8px; - --multi-item-border-radius: 6px; - --indicator-top: 8px; -}`);var cJA=vA('
            ');function sf(t,e){ft(e,!1);var A=M(e,"className",8,void 0),i=M(e,"fullscreen",8,!1),n=M(e,"onClose",8),o=$();function r(){n()()}ws(()=>l(o).showModal()),ig(()=>l(o).close()),qt();var s,a=cJA(),c=W(a);Po(W(c),e,"default",{},null),Qo(a,g=>y(o,g),()=>l(o)),rs(()=>ce("close",a,r)),rs(()=>{return ce("pointerdown",a,(g=r,function(){for(var I=arguments.length,C=new Array(I),d=0;dce("cancel",a,z1(function(g){H3.call(this,e,g)}))),Ts(a,(g,I)=>Vy?.(g,I),()=>r),we((g,I)=>s=jt(a,1,g,"svelte-1s9c2ql",s,I),[()=>rI((k(Vg),k(A()),oA(()=>Vg("jse-modal",A())))),()=>({"jse-fullscreen":i()})],ZA),iA(t,a),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-modal-contents.svelte-189qksl { - flex: 1; - display: flex; - flex-direction: column; - padding: 20px; - overflow: auto; - min-width: 0; - min-height: 0; -} -.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) { - display: flex; - flex-direction: row; - justify-content: flex-end; - padding-top: var(--jse-padding, 10px); -} -.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) button.jse-primary:where(.svelte-189qksl) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); - color: var(--jse-button-primary-color, #fff); - padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); - border-radius: 3px; -} -.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) button.jse-primary:where(.svelte-189qksl):hover { - background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); -} -.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) button.jse-primary:where(.svelte-189qksl):disabled { - background: var(--jse-button-primary-background-disabled, #9d9d9d); -} - -.jse-shortcuts.svelte-189qksl { - display: flex; - flex-wrap: wrap; - justify-content: space-around; - margin: calc(2 * var(--jse-padding, 10px)) 0; -} -.jse-shortcuts.svelte-189qksl .jse-shortcut:where(.svelte-189qksl) .jse-key:where(.svelte-189qksl) { - font-size: 200%; - color: var(--jse-theme-color, #3883fa); -}`);var gJA=vA('
            Clipboard permission is disabled by your browser. You can use:
            for copy
            for cut
            for paste
            ',1);function ZaA(t,e){ft(e,!1);var A=M(e,"onClose",9),i=dK()?"\u2318":"Ctrl";qt(!0),sf(t,{get onClose(){return A()},className:"jse-copy-paste",children:(n,o)=>{var r=gJA(),s=Mt(r);qy(s,{title:"Copying and pasting",get onClose(){return A()}});var a=CA(s,2),c=CA(W(a),2),g=W(c),I=W(g),C=W(I),d=CA(g,2),B=W(d),E=W(B),u=W(CA(d,2)),h=W(u),w=W(CA(c,2));we(()=>{pt(C,"".concat(i,"+C")),pt(E,"".concat(i,"+X")),pt(h,"".concat(i,"+V"))}),ce("click",w,function(){for(var x,R=arguments.length,D=new Array(R),G=0;G'),IJA=vA('
            '),CJA=vA(''),dJA=vA('
            ');function l7(t,e){ft(e,!1);var A=M(e,"items",25,()=>[]);qt(!0);var i=dJA(),n=W(i);Po(n,e,"left",{},null);var o=CA(n,2);jo(o,1,A,cr,(r,s)=>{var a=_o(),c=Mt(a),g=C=>{iA(C,lJA())},I=(C,d)=>{var B=u=>{iA(u,IJA())},E=(u,h)=>{var w=R=>{var D=CJA(),G=W(D),J=O=>{Ui(O,{get data(){return l(s),oA(()=>l(s).icon)}})};GA(G,O=>{l(s),oA(()=>l(s).icon)&&O(J)});var z=CA(G,2),K=O=>{var V=jr();we(()=>pt(V,(l(s),oA(()=>l(s).text)))),iA(O,V)};GA(z,O=>{l(s),oA(()=>l(s).text)&&O(K)}),we(()=>{var O;jt(D,1,"jse-button ".concat((l(s),(O=oA(()=>l(s).className))!==null&&O!==void 0?O:"")),"svelte-pf7s2l"),gn(D,"title",(l(s),oA(()=>l(s).title))),D.disabled=(l(s),oA(()=>l(s).disabled||!1))}),ce("click",D,function(){for(var O,V=arguments.length,j=new Array(V),dA=0;dA{var D=jr();we(G=>pt(D,G),[()=>(l(s),oA(()=>function(G){return console.error("Unknown type of menu item",G),"???"}(l(s))))],ZA),iA(R,D)};GA(u,R=>{k(W0),l(s),oA(()=>W0(l(s)))?R(w):R(x,!1)},h)};GA(C,u=>{k(_G),l(s),oA(()=>_G(l(s)))?u(B):u(E,!1)},d)};GA(c,C=>{k(j1),l(s),oA(()=>j1(l(s)))?C(g):C(I,!1)}),iA(r,a)}),Po(CA(o,2),e,"right",{},null),iA(t,i),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-json-repair-component.svelte-3golau { - flex: 1; - display: flex; - flex-direction: column; - background: var(--jse-background-color, #fff); - color: var(--jse-text-color, #4d4d4d); -} -.jse-json-repair-component.svelte-3golau .jse-info:where(.svelte-3golau) { - padding: calc(0.5 * var(--jse-padding, 10px)); - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - vertical-align: center; -} -.jse-json-repair-component.svelte-3golau .jse-json-text:where(.svelte-3golau) { - flex: 1; - border: none; - padding: 2px; - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - background: var(--jse-input-background, var(--jse-background-color, #fff)); - color: var(--jse-text-color, #4d4d4d); - resize: none; - outline: none; -}`);var BJA=vA('
            Repair invalid JSON, then click apply
            '),EJA=vA('
            ');function QJA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=$(void 0,!0),r=$(void 0,!0),s=$(void 0,!0),a=M(e,"text",13,""),c=M(e,"readOnly",9,!1),g=M(e,"onParse",9),I=M(e,"onRepair",9),C=M(e,"onChange",9,void 0),d=M(e,"onApply",9),B=M(e,"onCancel",9),E=xr("jsoneditor:JSONRepair"),u=$(void 0,!0);function h(){if(l(u)&&l(A)){var V=l(A).position!==void 0?l(A).position:0;l(u).setSelectionRange(V,V),l(u).focus()}}function w(){d()(a())}function x(){try{a(I()(a())),C()&&C()(a())}catch{}}var R=$(void 0,!0);pA(()=>k(a()),()=>{y(A,function(V){try{return void g()(V)}catch(j){return MQ(V,j.message)}}(a()))}),pA(()=>k(a()),()=>{y(i,function(V){try{return I()(V),!0}catch{return!1}}(a()))}),pA(()=>l(A),()=>{E("error",l(A))}),pA(()=>k(B()),()=>{y(R,[{type:"space"},{type:"button",icon:h4,title:"Cancel repair",className:"jse-cancel",onClick:B()}])}),pA(()=>aL,()=>{y(n,{icon:aL,text:"Show me",title:"Scroll to the error location",onClick:h})}),pA(()=>_0,()=>{y(o,{icon:_0,text:"Auto repair",title:"Automatically repair JSON",onClick:x})}),pA(()=>(l(i),l(n),l(o)),()=>{y(r,l(i)?[l(n),l(o)]:[l(n)])}),pA(()=>k(c()),()=>{y(s,[{icon:U5,text:"Apply",title:"Apply fixed JSON",disabled:c(),onClick:w}])}),ln(),qt(!0);var D=EJA(),G=W(D);l7(G,{get items(){return l(R)},$$slots:{left:(V,j)=>{iA(V,BJA())}}});var J=CA(G,2),z=V=>{var j=ZA(()=>(l(A),oA(()=>"Cannot parse JSON: ".concat(l(A).message))));pc(V,{type:"error",get icon(){return m1},get message(){return l(j)},get actions(){return l(r)}})},K=V=>{pc(V,{type:"success",message:"JSON is valid now and can be parsed.",get actions(){return l(s)}})};GA(J,V=>{l(A)?V(z):V(K,!1)});var O=CA(J,2);Qo(O,V=>y(u,V),()=>l(u)),we(()=>{O.readOnly=c(),ed(O,a())}),ce("input",O,function(V){E("handleChange");var j=V.target.value;a()!==j&&(a(j),C()&&C()(a()))}),iA(t,D),mt()}function WaA(t,e){ft(e,!1);var A=M(e,"text",13),i=M(e,"onParse",9),n=M(e,"onRepair",9),o=M(e,"onApply",9),r=M(e,"onClose",9);function s(c){o()(c),r()()}function a(){r()()}qt(!0),sf(t,{get onClose(){return r()},className:"jse-repair-modal",children:(c,g)=>{QJA(c,{get onParse(){return i()},get onRepair(){return n()},onApply:s,onCancel:a,get text(){return A()},set text(I){A(I)},$$legacy:!0})},$$slots:{default:!0}}),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -div.jse-collapsed-items.svelte-1h6hzoq { - margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - color: var(--jse-collapsed-items-link-color, rgba(0, 0, 0, 0.38)); - padding: calc(0.5 * var(--jse-padding, 10px)); - border: 8px solid transparent; - border-width: 8px 0; - background-color: var(--jse-contents-background-color, transparent); - background-image: linear-gradient(var(--jse-collapsed-items-background-color, #f5f5f5), var(--jse-collapsed-items-background-color, #f5f5f5)), linear-gradient(to bottom right, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%), linear-gradient(to bottom left, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%), linear-gradient(to top right, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%), linear-gradient(to top left, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%); - background-repeat: repeat, repeat-x, repeat-x, repeat-x, repeat-x; - background-position: 0 0, 8px 0, 8px 0, 8px 100%, 8px 100%; - background-size: auto auto, 16px 16px, 16px 16px, 16px 16px, 16px 16px; - background-clip: padding-box, border-box, border-box, border-box, border-box; - background-origin: padding-box, border-box, border-box, border-box, border-box; - display: flex; -} -div.jse-collapsed-items.jse-selected.svelte-1h6hzoq { - background-color: var(--jse-selection-background-color, #d3d3d3); - --jse-collapsed-items-background-color: var(--jse-collapsed-items-selected-background-color, #c2c2c2); -} -div.jse-collapsed-items.svelte-1h6hzoq div.jse-text:where(.svelte-1h6hzoq), -div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq) { - margin: 0 calc(0.5 * var(--jse-padding, 10px)); -} -div.jse-collapsed-items.svelte-1h6hzoq div.jse-text:where(.svelte-1h6hzoq) { - display: inline; -} -div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq) { - font-family: inherit; - font-size: inherit; - color: var(--jse-collapsed-items-link-color, rgba(0, 0, 0, 0.38)); - background: none; - border: none; - padding: 0; - text-decoration: underline; - cursor: pointer; -} -div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq):hover, div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq):focus { - color: var(--jse-collapsed-items-link-color-highlight, #ee5341); -}`);var uJA=vA(''),hJA=vA('
            ');function fJA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=$(void 0,!0),r=$(void 0,!0),s=M(e,"visibleSections",9),a=M(e,"sectionIndex",9),c=M(e,"total",9),g=M(e,"path",9),I=M(e,"selection",9),C=M(e,"onExpandSection",9),d=M(e,"context",9);pA(()=>(k(s()),k(a())),()=>{y(A,s()[a()])}),pA(()=>l(A),()=>{y(i,l(A).end)}),pA(()=>(k(s()),k(a()),k(c())),()=>{y(n,s()[a()+1]?s()[a()+1].start:c())}),pA(()=>(k(d()),k(I()),k(g()),l(i)),()=>{y(o,nf(d().getJson(),I(),g().concat(String(l(i)))))}),pA(()=>(l(i),l(n)),()=>{y(r,function(R,D){var G={start:R,end:Math.min(FG(R),D)},J=Math.max(Ky((R+D)/2),R),z={start:J,end:Math.min(FG(J),D)},K=Ky(D),O=K===D?K-$3:K,V={start:Math.max(O,R),end:D},j=[G],dA=z.start>=G.end&&z.end<=V.start;return dA&&j.push(z),V.start>=(dA?z.end:G.end)&&j.push(V),j}(l(i),l(n)))}),ln(),qt(!0);var B,E,u=hJA(),h=W(u),w=W(h),x=W(w);jo(CA(w,2),1,()=>l(r),cr,(R,D)=>{var G=uJA(),J=W(G);we(()=>{var z,K;return pt(J,"show ".concat((l(D),(z=oA(()=>l(D).start))!==null&&z!==void 0?z:""),"-").concat((l(D),(K=oA(()=>l(D).end))!==null&&K!==void 0?K:"")))}),ce("click",G,()=>C()(g(),l(D))),iA(R,G)}),we((R,D)=>{var G,J;B=jt(u,1,"jse-collapsed-items svelte-1h6hzoq",null,B,R),E=eg(u,"",E,D),pt(x,"Items ".concat((G=l(i))!==null&&G!==void 0?G:"","-").concat((J=l(n))!==null&&J!==void 0?J:""))},[()=>({"jse-selected":l(o)}),()=>({"--level":(k(g()),oA(()=>g().length+2))})],ZA),ce("mousemove",u,function(R){R.stopPropagation()}),iA(t,u),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-context-menu-pointer.svelte-137iwnw { - position: absolute; - top: calc(-0.5 * var(--jse-context-menu-pointer-size, calc(1em + 4px))); - right: calc(-0.5 * var(--jse-context-menu-pointer-size, calc(1em + 4px))); - width: var(--jse-context-menu-pointer-size, calc(1em + 4px)); - height: var(--jse-context-menu-pointer-size, calc(1em + 4px)); - padding: 0; - margin: 0; - cursor: pointer; - background: transparent; - border-radius: 2px; - background: var(--jse-context-menu-pointer-hover-background, #b2b2b2); - color: var(--jse-context-menu-pointer-color, var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff))); - border: none; - box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); -} -.jse-context-menu-pointer.jse-root.svelte-137iwnw { - top: 0; - right: calc(-2px - var(--jse-context-menu-pointer-size, calc(1em + 4px))); -} -.jse-context-menu-pointer.jse-insert.svelte-137iwnw { - right: -1px; -} -.jse-context-menu-pointer.svelte-137iwnw:hover { - background: var(--jse-context-menu-pointer-background-highlight, var(--jse-context-menu-background-highlight, #7a7a7a)); -} -.jse-context-menu-pointer.jse-selected.svelte-137iwnw { - background: var(--jse-context-menu-pointer-background, var(--jse-context-menu-background, #656565)); -} -.jse-context-menu-pointer.jse-selected.svelte-137iwnw:hover { - background: var(--jse-context-menu-pointer-background-highlight, var(--jse-context-menu-background-highlight, #7a7a7a)); -}`);var mJA=vA('');function P1(t,e){ft(e,!1);var A=M(e,"root",9,!1),i=M(e,"insert",9,!1),n=M(e,"selected",9),o=M(e,"onContextMenu",9);qt(!0);var r,s=mJA();Ui(W(s),{get data(){return Nl}}),we(a=>{r=jt(s,1,"jse-context-menu-pointer svelte-137iwnw",null,r,a),gn(s,"title",EK)},[()=>({"jse-root":A(),"jse-insert":i(),"jse-selected":n()})],ZA),ce("click",s,function(a){for(var c=a.target;c&&c.nodeName!=="BUTTON";)c=c.parentNode;c&&o()({anchor:c,left:0,top:0,width:A2,height:$0,offsetTop:2,offsetLeft:0,showTip:!0})}),iA(t,s),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-key.svelte-2iqnqn { - display: inline-block; - min-width: 2em; - padding: 0 5px; - box-sizing: border-box; - outline: none; - border-radius: 1px; - vertical-align: top; - color: var(--jse-key-color, #1a1a1a); - word-break: normal; - overflow-wrap: normal; - white-space: pre-wrap; -} -.jse-key.jse-empty.svelte-2iqnqn { - min-width: 3em; - outline: 1px dotted var(--jse-tag-background, rgba(0, 0, 0, 0.2)); - -moz-outline-radius: 2px; -} -.jse-key.jse-empty.svelte-2iqnqn::after { - pointer-events: none; - color: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); - content: "key"; -}`);var pJA=vA('
            '),DJA=vA(" ",1),wJA=vA('
            ');function XaA(t,e){ft(e,!0);var A=Ja(()=>Vi(e.selection)&&Sr(e.selection)),i=Ja(()=>e.context.onRenderValue({path:e.path,value:e.value,mode:e.context.mode,truncateTextSize:e.context.truncateTextSize,readOnly:e.context.readOnly,enforceString:e.enforceString,isEditing:l(A),parser:e.context.parser,normalization:e.context.normalization,selection:e.selection,searchResultItems:e.searchResultItems,onPatch:e.context.onPatch,onPasteJson:e.context.onPasteJson,onSelect:e.context.onSelect,onFind:e.context.onFind,findNextInside:e.context.findNextInside,focus:e.context.focus})),n=_o();jo(Mt(n),17,()=>l(i),cr,(o,r)=>{var s=_o(),a=Mt(s),c=I=>{var C=wJA(),d=Ja(()=>l(r).action);Ts(C,(B,E)=>{var u;return(u=l(d))===null||u===void 0?void 0:u(B,E)},()=>l(r).props),iA(I,C)},g=I=>{var C=_o(),d=Ja(()=>l(r).component);AaA(Mt(C),()=>l(d),(B,E)=>{E(B,AI(()=>l(r).props))}),iA(I,C)};GA(a,I=>{xKA(l(r))?I(c):I(g,!1)}),iA(o,s)}),iA(t,n),mt()}var yJA={selecting:!1,selectionAnchor:void 0,selectionAnchorType:void 0,selectionFocus:void 0,dragging:!1};function uG(t){var{json:e,selection:A,deltaY:i,items:n}=t;if(!A)return{operations:void 0,updatedSelection:void 0,offset:0};var o=i<0?function(g){for(var{json:I,items:C,selection:d,deltaY:B}=g,E=e2(I,d),u=C.findIndex(G=>ri(G.path,E)),h=()=>{var G;return(G=C[w-1])===null||G===void 0?void 0:G.height},w=u,x=0;h()!==void 0&&Math.abs(B)>x+h()/2;)x+=h(),w-=1;var R=C[w].path,D=w-u;return w!==u&&C[w]!==void 0?{beforePath:R,offset:D}:void 0}({json:e,selection:A,deltaY:i,items:n}):function(g){for(var I,{json:C,items:d,selection:B,deltaY:E}=g,u=tI(C,B),h=d.findIndex(O=>ri(O.path,u)),w=0,x=h,R=()=>{var O;return(O=d[x+1])===null||O===void 0?void 0:O.height};R()!==void 0&&Math.abs(E)>w+R()/2;)w+=R(),x+=1;var D=yi(u),G=Ye(C,D),J=Array.isArray(G)?x:x+1,z=(I=d[J])===null||I===void 0?void 0:I.path,K=x-h;return z?{beforePath:z,offset:K}:{append:!0,offset:K}}({json:e,selection:A,deltaY:i,items:n});if(!o||o.offset===0)return{operations:void 0,updatedSelection:void 0,offset:0};var r=function(g,I,C){if(!I)return[];var d="beforePath"in C?C.beforePath:void 0,B="append"in C?C.append:void 0,E=yi(nt(I)),u=Ye(g,E);if(!(B||d&&n0(d,E)&&d.length>E.length))return[];var h=e2(g,I),w=tI(g,I),x=li(h),R=li(w),D=d?d[E.length]:void 0;if(!Lo(u)){if(wo(u)){var G=ss(x),J=ss(R),z=D!==void 0?ss(D):u.length;return ZR(J-G+1,z({op:"move",from:Ct(E.concat(String(G+dA))),path:Ct(E.concat(String(z+dA)))}):()=>({op:"move",from:Ct(E.concat(String(G))),path:Ct(E.concat(String(z)))}))}throw new Error("Cannot create move operations: parent must be an Object or Array")}var K=Object.keys(u),O=K.indexOf(x),V=K.indexOf(R),j=B?K.length:D!==void 0?K.indexOf(D):-1;return O!==-1&&V!==-1&&j!==-1?j>O?[...K.slice(O,V+1),...K.slice(j,K.length)].map(dA=>aI(E,dA)):[...K.slice(j,O),...K.slice(V+1,K.length)].map(dA=>aI(E,dA)):[]}(e,A,o),s=yi(e2(e,A)),a=Ye(e,s);if(Array.isArray(a)){var c=function(g){var I,C,{items:d,json:B,selection:E,offset:u}=g,h=e2(B,E),w=tI(B,E),x=d.findIndex(J=>ri(J.path,h)),R=d.findIndex(J=>ri(J.path,w)),D=(I=d[x+u])===null||I===void 0?void 0:I.path,G=(C=d[R+u])===null||C===void 0?void 0:C.path;return Js(D,G)}({items:n,json:e,selection:A,offset:o.offset});return{operations:r,updatedSelection:c,offset:o.offset}}return{operations:r,updatedSelection:void 0,offset:o.offset}}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -button.jse-validation-error.svelte-1a8aobl { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - padding: 0; - margin: 0; - vertical-align: top; - display: inline-flex; - color: var(--jse-error-color, #ee5341); -} - -button.jse-validation-info.svelte-1a8aobl { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - padding: 0; - margin: 0; - vertical-align: top; - display: inline-flex; - color: var(--jse-info-color, #4f91ff); -} - -button.jse-validation-warning.svelte-1a8aobl { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - padding: 0; - margin: 0; - vertical-align: top; - display: inline-flex; - color: var(--jse-warning-color, #fdc539); -}`);var vJA=vA('');function wQ(t,e){ft(e,!1);var A=$(),i=cI("absolute-popup"),n=M(e,"validationError",8),o=M(e,"onExpand",8);pA(()=>k(n()),()=>{y(A,LKA(n())&&n().isChildError?"Contains invalid data":n().message)}),ln(),qt();var r=vJA();Ui(W(r),{get data(){return m1}}),rs(()=>ce("click",r,function(){for(var s,a=arguments.length,c=new Array(a),g=0;gRQ?.(s,a),()=>pe({text:l(A)},i)),we(()=>{var s;return jt(r,1,"jse-validation-".concat((k(n()),(s=oA(()=>n().severity))!==null&&s!==void 0?s:"")),"svelte-1a8aobl")}),iA(t,r),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-expand.svelte-oawf7x { - width: var(--jse-indent-size, calc(1em + 4px)); - padding: 0; - margin: 0; - border: none; - cursor: pointer; - background: transparent; - color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); - font-size: var(--jse-font-size-mono, 14px); - height: var(--jse-line-height, calc(1em + 4px)); -} -.jse-expand.svelte-oawf7x:hover { - opacity: 0.8; -} - -.jse-meta.svelte-oawf7x, -.jse-separator.svelte-oawf7x, -.jse-index.svelte-oawf7x, -.jse-bracket.svelte-oawf7x { - vertical-align: top; - color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); -} - -.jse-index.svelte-oawf7x { - padding: 0 calc(0.5 * var(--jse-padding, 10px)); -} - -.jse-bracket.svelte-oawf7x { - padding: 0 2px; -} -.jse-bracket.jse-expanded.svelte-oawf7x { - padding-right: var(--jse-padding, 10px); -} - -.jse-identifier.svelte-oawf7x { - vertical-align: top; - position: relative; -} - -.jse-json-node.svelte-oawf7x { - position: relative; - color: var(--jse-text-color, #4d4d4d); -} -.jse-json-node.jse-root.svelte-oawf7x { - min-height: 100%; - padding-bottom: 2px; - box-sizing: border-box; -} -.jse-json-node.jse-root.svelte-oawf7x > .jse-contents-outer:where(.svelte-oawf7x) > .jse-contents:where(.svelte-oawf7x) { - padding-left: 0; -} -.jse-json-node.svelte-oawf7x .jse-props:where(.svelte-oawf7x), -.jse-json-node.svelte-oawf7x .jse-items:where(.svelte-oawf7x) { - position: relative; -} -.jse-json-node.svelte-oawf7x .jse-header-outer:where(.svelte-oawf7x), -.jse-json-node.svelte-oawf7x .jse-footer-outer:where(.svelte-oawf7x) { - display: flex; - margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); -} -.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x) { - position: relative; -} -.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x) .jse-meta:where(.svelte-oawf7x) > .jse-meta-inner:where(.svelte-oawf7x) { - display: flex; - justify-content: center; -} -.jse-json-node.svelte-oawf7x .jse-contents-outer:where(.svelte-oawf7x) { - display: flex; - margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); -} -.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x), -.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x) { - display: flex; - flex-direction: row; - align-items: flex-start; -} -.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x) { - padding-left: var(--jse-indent-size, calc(1em + 4px)); - cursor: var(--jse-contents-cursor, pointer); -} -.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x) .jse-value-outer:where(.svelte-oawf7x) { - display: inline-flex; -} -.jse-json-node.svelte-oawf7x .jse-footer:where(.svelte-oawf7x) { - display: inline-flex; - padding-left: calc(var(--jse-indent-size, calc(1em + 4px)) + 5px); -} -.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x), -.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x), -.jse-json-node.svelte-oawf7x .jse-footer:where(.svelte-oawf7x) { - background: var(--jse-contents-background-color, transparent); -} -.jse-json-node.svelte-oawf7x .jse-insert-selection-area:where(.svelte-oawf7x) { - padding: 0 calc(0.5 * var(--jse-padding, 10px)); - flex: 1; -} -.jse-json-node.svelte-oawf7x .jse-insert-selection-area.jse-inside:where(.svelte-oawf7x) { - display: inline-flex; - align-items: center; -} -.jse-json-node.svelte-oawf7x .jse-insert-selection-area.jse-after:where(.svelte-oawf7x) { - display: flex; - align-items: flex-end; -} -.jse-json-node.svelte-oawf7x .jse-context-menu-pointer-anchor:where(.svelte-oawf7x) { - position: relative; -} -.jse-json-node.svelte-oawf7x .jse-insert-area:where(.svelte-oawf7x) { - display: flex; - position: relative; - z-index: 1; - margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); - max-width: 250px; - min-width: 100px; - height: 0; - margin-right: calc(0.5 * var(--jse-padding, 10px)); - outline: 1px solid; -} -.jse-json-node.svelte-oawf7x .jse-insert-area.jse-hovered:where(.svelte-oawf7x) { - outline-color: var(--jse-context-menu-pointer-hover-background, #b2b2b2); -} -.jse-json-node.svelte-oawf7x .jse-key-outer:where(.svelte-oawf7x) { - position: relative; -} -.jse-json-node.svelte-oawf7x .jse-key-outer:where(.svelte-oawf7x):hover, -.jse-json-node.svelte-oawf7x .jse-value-outer:where(.svelte-oawf7x):hover, -.jse-json-node.svelte-oawf7x .jse-meta:where(.svelte-oawf7x):hover, -.jse-json-node.svelte-oawf7x .jse-footer:where(.svelte-oawf7x):hover { - background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); - cursor: var(--jse-contents-cursor, pointer); -} -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-value-outer, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-meta, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-header, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-contents, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-header, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-contents, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-footer { - background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); - cursor: var(--jse-contents-cursor, pointer); -} -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-value-outer .jse-value-outer, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-value-outer .jse-meta, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-meta .jse-value-outer, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-meta .jse-meta, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-header .jse-value-outer, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-header .jse-meta, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-contents .jse-value-outer, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-contents .jse-meta, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-header .jse-value-outer, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-header .jse-meta, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-contents .jse-value-outer, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-contents .jse-meta, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-footer .jse-value-outer, -.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-footer .jse-meta { - background: none; -} -.jse-json-node.jse-selected.svelte-oawf7x .jse-header:where(.svelte-oawf7x), -.jse-json-node.jse-selected.svelte-oawf7x .jse-contents:where(.svelte-oawf7x), -.jse-json-node.jse-selected.svelte-oawf7x .jse-footer:where(.svelte-oawf7x) { - background: var(--jse-selection-background-color, #d3d3d3); - cursor: var(--jse-contents-selected-cursor, grab); -} -.jse-json-node.jse-selected.svelte-oawf7x .jse-key-outer:where(.svelte-oawf7x):hover, -.jse-json-node.jse-selected.svelte-oawf7x .jse-value-outer:where(.svelte-oawf7x):hover, -.jse-json-node.jse-selected.svelte-oawf7x .jse-meta:where(.svelte-oawf7x):hover, -.jse-json-node.jse-selected.svelte-oawf7x .jse-footer:where(.svelte-oawf7x):hover { - background: inherit; - cursor: inherit; -} -.jse-json-node.svelte-oawf7x .jse-key-outer.jse-selected-key:where(.svelte-oawf7x) { - background: var(--jse-selection-background-color, #d3d3d3); - cursor: var(--jse-contents-selected-cursor, grab); -} -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-value-outer, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-meta, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-header, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-contents, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-header, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-contents, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-footer { - background: var(--jse-selection-background-color, #d3d3d3); - cursor: var(--jse-contents-selected-cursor, grab); -} -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-value-outer .jse-key-outer:hover, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-meta .jse-key-outer:hover, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-header .jse-key-outer:hover, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-contents .jse-key-outer:hover, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-header .jse-key-outer:hover, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-contents .jse-key-outer:hover, -.jse-json-node.jse-selected-value.svelte-oawf7x .jse-footer .jse-key-outer:hover { - background: inherit; - cursor: inherit; -} -.jse-json-node.jse-readonly.svelte-oawf7x { - --jse-contents-selected-cursor: pointer; -} -.jse-json-node.svelte-oawf7x .jse-insert-area.jse-selected:where(.svelte-oawf7x) { - outline-color: var(--jse-context-menu-pointer-background, var(--jse-context-menu-background, #656565)); -}`);var Eo=i7(()=>yJA),MJA=vA('
            :
            '),bJA=vA('
            [
             ',1),kJA=vA('
            [
            ]
            ',1),SJA=vA('
            '),RJA=vA('
            '),LJA=vA('
            '),xJA=vA('
            '),NJA=vA('
            '),FJA=vA(" ",1),_JA=vA('
            '),GJA=vA('
            ',1),KJA=vA('
            ',1),UJA=vA('
            :
            '),JJA=vA('
            {
            '),YJA=vA('
            {
            }
            ',1),TJA=vA('
            '),HJA=vA('
            '),OJA=vA('
            '),zJA=vA('
            '),PJA=vA('
            '),jJA=vA('
            '),qJA=vA('
            ',1),VJA=vA('
            ',1),ZJA=vA('
            :
            '),WJA=vA('
            '),XJA=vA('
            '),$JA=vA('
            '),AYA=vA('
            '),eYA=vA('
            ');function jG(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=M(e,"pointer",9),o=M(e,"value",9),r=M(e,"state",9),s=M(e,"validationErrors",9),a=M(e,"searchResults",9),c=M(e,"selection",9),g=M(e,"context",9),I=M(e,"onDragSelectionStart",9),C=xr("jsoneditor:JSONNode"),d=$(void 0,!0),B=void 0,E=$(void 0,!0),u=$(void 0,!0),h=$(void 0,!0),w=$(void 0,!0),x=$(void 0,!0),R=$(void 0,!0),D=$(void 0,!0);function G(KA){KA.stopPropagation();var tA=BK(KA);g().onExpand(l(u),!l(h),tA)}function J(){g().onExpand(l(u),!0)}function z(KA,tA){var OA=ff(l(u),Object.keys(o()),KA,tA);return g().onPatch(OA),li(xs(OA[0].path))}function K(KA){g().onDrag(KA)}function O(KA){Eo().selecting&&(Eo(Eo().selecting=!1),KA.stopPropagation()),g().onDragEnd(),document.removeEventListener("mousemove",K,!0),document.removeEventListener("mouseup",O)}function V(){var KA;return((KA=g().findElement([]))===null||KA===void 0||(KA=KA.getBoundingClientRect())===null||KA===void 0?void 0:KA.top)||0}function j(KA,tA){var OA=V()-KA.initialContentTop;return tA.clientY-KA.initialClientY-OA}function dA(KA){if(!g().readOnly&&c()){var tA=yi(nt(c()));if(ri(l(u),tA)){var OA=function(LA,cA){var Gt=[];function ct(T){var P=l(u).concat(T),X=g().findElement(P);X!==void 0&&Gt.push({path:P,height:X.clientHeight})}if(Array.isArray(o())){var oe=g().getJson();if(oe===void 0)return;var Dt=e2(oe,LA),_e=tI(oe,LA),Re=parseInt(li(Dt),10),St=parseInt(li(_e),10),Se=cA.find(T=>Re>=T.start&&St<=T.end);if(!Se)return;var{start:Wt,end:L}=Se;raA(Wt,Math.min(o().length,L),T=>ct(String(T)))}else Object.keys(o()).forEach(ct);return Gt}(c(),l(x)||mQ);if(C("dragSelectionStart",{selection:c(),items:OA}),OA){var gA=g().getJson();if(gA!==void 0){var zA=e2(gA,c()),xA=OA.findIndex(LA=>ri(LA.path,zA)),{offset:Me}=uG({json:gA,selection:g().getSelection(),deltaY:0,items:OA});y(E,{initialTarget:KA.target,initialClientY:KA.clientY,initialContentTop:V(),selectionStartIndex:xA,selectionItemsCount:sI(gA,c()).length,items:OA,offset:Me,didMoveItems:!1}),Eo(Eo().dragging=!0),document.addEventListener("mousemove",fA,!0),document.addEventListener("mouseup",EA)}}else C("Cannot drag the current selection (probably spread over multiple sections)")}else I()(KA)}}function fA(KA){if(l(E)){var tA=g().getJson();if(tA===void 0)return;var OA=j(l(E),KA),{offset:gA}=uG({json:tA,selection:g().getSelection(),deltaY:OA,items:l(E).items});gA!==l(E).offset&&(C("drag selection",gA,OA),y(E,pe(pe({},l(E)),{},{offset:gA,didMoveItems:!0})))}}function EA(KA){if(l(E)){var tA=g().getJson();if(tA===void 0)return;var OA=j(l(E),KA),{operations:gA,updatedSelection:zA}=uG({json:tA,selection:g().getSelection(),deltaY:OA,items:l(E).items});if(gA)g().onPatch(gA,(LA,cA)=>({state:cA,selection:zA??c()}));else if(KA.target===l(E).initialTarget&&!l(E).didMoveItems){var xA=oG(KA.target),Me=uaA(KA.target);Me&&g().onSelect(zrA(xA,Me))}y(E,void 0),Eo(Eo().dragging=!1),document.removeEventListener("mousemove",fA,!0),document.removeEventListener("mouseup",EA)}}function IA(KA){KA.shiftKey||(KA.stopPropagation(),KA.preventDefault(),g().onSelect(c2(l(u))))}function SA(KA){KA.shiftKey||(KA.stopPropagation(),KA.preventDefault(),g().onSelect(o2(l(u))))}function nA(KA){g().onSelect(c2(l(u))),to(),g().onContextMenu(KA)}function lA(KA){g().onSelect(o2(l(u))),to(),g().onContextMenu(KA)}pA(()=>k(n()),()=>{y(u,xs(n()))}),pA(()=>k(n()),()=>{y(A,encodeURIComponent(n()))}),pA(()=>k(r()),()=>{y(h,!!td(r())&&r().expanded)}),pA(()=>(k(o()),k(r())),()=>{y(w,t0(o(),r(),[]))}),pA(()=>k(r()),()=>{y(x,Rr(r())?r().visibleSections:void 0)}),pA(()=>k(s()),()=>{var KA;y(R,(KA=s())===null||KA===void 0?void 0:KA.validationError)}),pA(()=>(k(g()),k(c()),l(u)),()=>{y(D,nf(g().getJson(),c(),l(u)))}),pA(()=>l(u),()=>{y(i,l(u).length===0)}),ln(),qt(!0);var wA,VA,ie=eYA(),UA=W(ie),BA=KA=>{var tA=KJA(),OA=Mt(tA),gA=W(OA),zA=W(gA),xA=W(zA),Me=FA=>{Ui(FA,{get data(){return Nl}})},LA=FA=>{Ui(FA,{get data(){return uE}})};GA(xA,FA=>{l(h)?FA(Me):FA(LA,!1)});var cA=CA(zA,2);Po(cA,e,"identifier",{},null);var Gt=CA(cA,2),ct=FA=>{iA(FA,MJA())};GA(Gt,FA=>{l(i)||FA(ct)});var oe=CA(Gt,2),Dt=W(oe),_e=W(Dt),Re=FA=>{var MA=bJA();Sy(CA(Mt(MA),2),{children:(dt,$e)=>{var XA=jr();we(()=>{var ot,Si;return pt(XA,"".concat((k(o()),(ot=oA(()=>o().length))!==null&&ot!==void 0?ot:""),` - `).concat((k(o()),(Si=oA(()=>o().length===1?"item":"items"))!==null&&Si!==void 0?Si:"")))}),iA(dt,XA)},$$slots:{default:!0}}),iA(FA,MA)},St=FA=>{var MA=kJA();Sy(CA(Mt(MA),2),{onclick:J,children:(dt,$e)=>{var XA=jr();we(()=>{var ot,Si;return pt(XA,"".concat((k(o()),(ot=oA(()=>o().length))!==null&&ot!==void 0?ot:""),` - `).concat((k(o()),(Si=oA(()=>o().length===1?"item":"items"))!==null&&Si!==void 0?Si:"")))}),iA(dt,XA)},$$slots:{default:!0}}),iA(FA,MA)};GA(_e,FA=>{l(h)?FA(Re):FA(St,!1)});var Se=CA(oe,2),Wt=FA=>{var MA=SJA();P1(W(MA),{get root(){return l(i)},selected:!0,get onContextMenu(){return k(g()),oA(()=>g().onContextMenu)}}),iA(FA,MA)};GA(Se,FA=>{k(g()),l(D),k(c()),k(Vi),k(Gn),k(Sr),k(ri),k(nt),l(u),oA(()=>!g().readOnly&&l(D)&&c()&&(Vi(c())||Gn(c()))&&!Sr(c())&&ri(nt(c()),l(u)))&&FA(Wt)});var L=CA(gA,2),T=FA=>{wQ(FA,{get validationError(){return l(R)},onExpand:J})};GA(L,FA=>{l(R),l(h),oA(()=>l(R)&&(!l(h)||!l(R).isChildError))&&FA(T)});var P=CA(L,2),X=FA=>{var MA=RJA();ce("click",MA,IA),iA(FA,MA)},kA=FA=>{var MA=LJA();ce("click",MA,SA),iA(FA,MA)};GA(P,FA=>{l(h)?FA(X):FA(kA,!1)});var le=CA(OA,2),Ee=FA=>{var MA=GJA(),dt=Mt(MA),$e=W(dt),XA=Oi=>{var Le,zi,fi=xJA(),Ht=W(fi),Rt=ZA(()=>(l(D),k(yr),k(c()),oA(()=>l(D)&&yr(c()))));P1(Ht,{insert:!0,get selected(){return l(Rt)},onContextMenu:nA}),we((Bi,Mi)=>{Le=jt(fi,1,"jse-insert-area jse-inside svelte-oawf7x",null,Le,Bi),gn(fi,"title",aG),zi=eg(fi,"",zi,Mi)},[()=>({"jse-hovered":l(d)===zC,"jse-selected":l(D)&&yr(c())}),()=>({"--level":(l(u),oA(()=>l(u).length+1))})],ZA),iA(Oi,fi)};GA($e,Oi=>{k(g()),l(d),k(zC),l(D),k(yr),k(c()),oA(()=>!g().readOnly&&(l(d)===zC||l(D)&&yr(c())))&&Oi(XA)}),jo(CA($e,2),1,()=>l(x)||mQ,cr,(Oi,Le,zi)=>{var fi=FJA(),Ht=Mt(fi);jo(Ht,1,()=>(k(o()),l(Le),l(E),oA(()=>function(Mi,Jt,b){var et=Jt.start,ai=Math.min(Jt.end,Mi.length),Wi=N5(et,ai);return b&&b.offset!==0?yrA(Wi,b.selectionStartIndex,b.selectionItemsCount,b.offset).map((Xi,xn)=>({index:Xi,gutterIndex:xn})):Wi.map(Xi=>({index:Xi,gutterIndex:Xi}))}(o(),l(Le),l(E)))),Mi=>Mi.index,(Mi,Jt)=>{var b=_o(),et=ZA(()=>(k(Rr),k(s()),l(Jt),oA(()=>Rr(s())?s().items[l(Jt).index]:void 0))),ai=ZA(()=>(k(uy),k(g()),k(c()),l(u),l(Jt),oA(()=>uy(g().getJson(),c(),l(u).concat(String(l(Jt).index)))))),Wi=Mt(b),Xi=ZA(()=>(k(e4),k(n()),l(Jt),oA(()=>e4(n(),l(Jt).index)))),xn=ZA(()=>(k(Rr),k(r()),l(Jt),oA(()=>Rr(r())?r().items[l(Jt).index]:void 0))),Mo=ZA(()=>(k(Rr),k(a()),l(Jt),oA(()=>Rr(a())?a().items[l(Jt).index]:void 0)));jG(Wi,{get value(){return k(o()),l(Jt),oA(()=>o()[l(Jt).index])},get pointer(){return l(Xi)},get state(){return l(xn)},get validationErrors(){return l(et)},get searchResults(){return l(Mo)},get selection(){return l(ai)},get context(){return g()},onDragSelectionStart:dA,$$slots:{identifier:(vn,In)=>{var qo=NJA(),Vo=W(qo),uo=W(Vo);we(()=>pt(uo,(l(Jt),oA(()=>l(Jt).gutterIndex)))),iA(vn,qo)}}}),iA(Mi,b)});var Rt=CA(Ht,2),Bi=Mi=>{var Jt=ZA(()=>l(x)||mQ);fJA(Mi,{get visibleSections(){return l(Jt)},sectionIndex:zi,get total(){return k(o()),oA(()=>o().length)},get path(){return l(u)},get onExpandSection(){return k(g()),oA(()=>g().onExpandSection)},get selection(){return c()},get context(){return g()}})};GA(Rt,Mi=>{l(Le),k(o()),oA(()=>l(Le).end{var Le=_JA();ce("click",Le,SA),iA(Oi,Le)};GA(Si,Oi=>{l(i)||Oi(Zi)}),iA(FA,MA)};GA(le,FA=>{l(h)&&FA(Ee)}),ce("click",zA,G),iA(KA,tA)},JA=(KA,tA)=>{var OA=zA=>{var xA=VJA(),Me=Mt(xA),LA=W(Me),cA=W(LA),Gt=W(cA),ct=XA=>{Ui(XA,{get data(){return Nl}})},oe=XA=>{Ui(XA,{get data(){return uE}})};GA(Gt,XA=>{l(h)?XA(ct):XA(oe,!1)});var Dt=CA(cA,2);Po(Dt,e,"identifier",{},null);var _e=CA(Dt,2),Re=XA=>{iA(XA,UJA())};GA(_e,XA=>{l(i)||XA(Re)});var St=CA(_e,2),Se=W(St),Wt=W(Se),L=XA=>{iA(XA,JJA())},T=XA=>{var ot=YJA();Sy(CA(Mt(ot),2),{onclick:J,children:(Si,Zi)=>{var Oi=jr();we((Le,zi)=>pt(Oi,"".concat(Le??"",` - `).concat(zi??"")),[()=>(k(o()),oA(()=>Object.keys(o()).length)),()=>(k(o()),oA(()=>Object.keys(o()).length===1?"prop":"props"))],ZA),iA(Si,Oi)},$$slots:{default:!0}}),iA(XA,ot)};GA(Wt,XA=>{l(h)?XA(L):XA(T,!1)});var P=CA(St,2),X=XA=>{var ot=TJA();P1(W(ot),{get root(){return l(i)},selected:!0,get onContextMenu(){return k(g()),oA(()=>g().onContextMenu)}}),iA(XA,ot)};GA(P,XA=>{k(g()),l(D),k(c()),k(Vi),k(Gn),k(Sr),k(ri),k(nt),l(u),oA(()=>!g().readOnly&&l(D)&&c()&&(Vi(c())||Gn(c()))&&!Sr(c())&&ri(nt(c()),l(u)))&&XA(X)});var kA=CA(LA,2),le=XA=>{wQ(XA,{get validationError(){return l(R)},onExpand:J})};GA(kA,XA=>{l(R),l(h),oA(()=>l(R)&&(!l(h)||!l(R).isChildError))&&XA(le)});var Ee=CA(kA,2),FA=XA=>{var ot=HJA();ce("click",ot,IA),iA(XA,ot)},MA=(XA,ot)=>{var Si=Zi=>{var Oi=OJA();ce("click",Oi,SA),iA(Zi,Oi)};GA(XA,Zi=>{l(i)||Zi(Si)},ot)};GA(Ee,XA=>{l(h)?XA(FA):XA(MA,!1)});var dt=CA(Me,2),$e=XA=>{var ot=qJA(),Si=Mt(ot),Zi=W(Si),Oi=Ht=>{var Rt,Bi,Mi=zJA(),Jt=W(Mi),b=ZA(()=>(l(D),k(yr),k(c()),oA(()=>l(D)&&yr(c()))));P1(Jt,{insert:!0,get selected(){return l(b)},onContextMenu:nA}),we((et,ai)=>{Rt=jt(Mi,1,"jse-insert-area jse-inside svelte-oawf7x",null,Rt,et),gn(Mi,"title",aG),Bi=eg(Mi,"",Bi,ai)},[()=>({"jse-hovered":l(d)===zC,"jse-selected":l(D)&&yr(c())}),()=>({"--level":(l(u),oA(()=>l(u).length+1))})],ZA),iA(Ht,Mi)};GA(Zi,Ht=>{k(g()),l(d),k(zC),l(D),k(yr),k(c()),oA(()=>!g().readOnly&&(l(d)===zC||l(D)&&yr(c())))&&Ht(Oi)}),jo(CA(Zi,2),1,()=>(k(o()),l(E),oA(()=>function(Ht,Rt){var Bi=Object.keys(Ht);return Rt&&Rt.offset!==0?yrA(Bi,Rt.selectionStartIndex,Rt.selectionItemsCount,Rt.offset):Bi}(o(),l(E)))),cr,(Ht,Rt)=>{var Bi=_o(),Mi=ZA(()=>(k(e4),k(n()),l(Rt),oA(()=>e4(n(),l(Rt))))),Jt=ZA(()=>(k(Ua),k(a()),l(Rt),oA(()=>Ua(a())?a().properties[l(Rt)]:void 0))),b=ZA(()=>(k(Ua),k(s()),l(Rt),oA(()=>Ua(s())?s().properties[l(Rt)]:void 0))),et=ZA(()=>(l(u),l(Rt),oA(()=>l(u).concat(l(Rt))))),ai=ZA(()=>(k(uy),k(g()),k(c()),k(l(et)),oA(()=>uy(g().getJson(),c(),l(et))))),Wi=Mt(Bi),Xi=ZA(()=>(k(Ua),k(r()),l(Rt),oA(()=>Ua(r())?r().properties[l(Rt)]:void 0)));jG(Wi,{get value(){return k(o()),l(Rt),oA(()=>o()[l(Rt)])},get pointer(){return l(Mi)},get state(){return l(Xi)},get validationErrors(){return l(b)},get searchResults(){return l(Jt)},get selection(){return l(ai)},get context(){return g()},onDragSelectionStart:dA,$$slots:{identifier:(xn,Mo)=>{var vn,In=PJA(),qo=W(In),Vo=ZA(()=>(k(XrA),k(l(Jt)),oA(()=>XrA(l(Jt)))));(function(uo,Qn){ft(Qn,!1);var Kn=$(void 0,!0),$A=$(void 0,!0),Ei=M(Qn,"pointer",9),Ri=M(Qn,"key",9),un=M(Qn,"selection",9),Un=M(Qn,"searchResultItems",9),Zo=M(Qn,"onUpdateKey",9),Ci=M(Qn,"context",9),io=$(void 0,!0);function Wo(re){l($A)||Ci().readOnly||(re.preventDefault(),Ci().onSelect(yK(l(io))))}function Xo(re,xe){var ue=Zo()(Ri(),Ci().normalization.unescapeValue(re)),aA=yi(l(io)).concat(ue);Ci().onSelect(xe===eI.nextInside?vi(aA):a2(aA)),xe!==eI.self&&Ci().focus()}function nr(){Ci().onSelect(a2(l(io))),Ci().focus()}pA(()=>k(Ei()),()=>{y(io,xs(Ei()))}),pA(()=>(k(un()),l(io)),()=>{y(Kn,Lr(un())&&ri(un().path,l(io)))}),pA(()=>(l(Kn),k(un())),()=>{y($A,l(Kn)&&Sr(un()))}),ln(),qt(!0);var on=DJA(),$i=Mt(on),yt=re=>{var xe=ZA(()=>(k(Ci()),k(Ri()),oA(()=>Ci().normalization.escapeValue(Ri())))),ue=ZA(()=>(k(Sr),k(un()),oA(()=>Sr(un())?un().initialValue:void 0)));kaA(re,{get value(){return l(xe)},get initialValue(){return l(ue)},label:"Edit key",shortText:!0,onChange:Xo,onCancel:nr,get onFind(){return k(Ci()),oA(()=>Ci().onFind)}})},hn=re=>{var xe,ue=pJA(),aA=W(ue),DA=Je=>{var vt=ZA(()=>(k(Ci()),k(Ri()),oA(()=>Ci().normalization.escapeValue(Ri()))));_aA(Je,{get text(){return l(vt)},get searchResultItems(){return Un()}})},PA=Je=>{var vt=jr();we(Yt=>pt(vt,Yt),[()=>(k(bQ),k(Ci()),k(Ri()),oA(()=>bQ(Ci().normalization.escapeValue(Ri()))))],ZA),iA(Je,vt)};GA(aA,Je=>{Un()?Je(DA):Je(PA,!1)}),we(Je=>xe=jt(ue,1,"jse-key svelte-2iqnqn",null,xe,Je),[()=>({"jse-empty":Ri()===""})],ZA),ce("dblclick",ue,Wo),iA(re,ue)};GA($i,re=>{k(Ci()),l($A),oA(()=>!Ci().readOnly&&l($A))?re(yt):re(hn,!1)});var hA=CA($i,2),Ae=re=>{P1(re,{selected:!0,get onContextMenu(){return k(Ci()),oA(()=>Ci().onContextMenu)}})};GA(hA,re=>{k(Ci()),l(Kn),l($A),oA(()=>!Ci().readOnly&&l(Kn)&&!l($A))&&re(Ae)}),iA(uo,on),mt()})(qo,{get pointer(){return l(Mi)},get key(){return l(Rt)},get selection(){return l(ai)},get searchResultItems(){return l(Vo)},get context(){return g()},onUpdateKey:z}),we(uo=>vn=jt(In,1,"jse-key-outer svelte-oawf7x",null,vn,uo),[()=>({"jse-selected-key":Lr(l(ai))&&ri(l(ai).path,l(et))})],ZA),iA(xn,In)}}}),iA(Ht,Bi)});var Le=CA(Si,2),zi=CA(W(Le),2),fi=Ht=>{var Rt=jJA();ce("click",Rt,SA),iA(Ht,Rt)};GA(zi,Ht=>{l(i)||Ht(fi)}),iA(XA,ot)};GA(dt,XA=>{l(h)&&XA($e)}),ce("click",cA,G),iA(zA,xA)},gA=zA=>{var xA=$JA(),Me=W(xA),LA=W(Me);Po(LA,e,"identifier",{},null);var cA=CA(LA,2),Gt=P=>{iA(P,ZJA())};GA(cA,P=>{l(i)||P(Gt)});var ct=CA(cA,2),oe=W(ct),Dt=ZA(()=>l(D)?c():void 0),_e=ZA(()=>(k($rA),k(a()),oA(()=>$rA(a()))));XaA(oe,{get path(){return l(u)},get value(){return o()},get enforceString(){return l(w)},get selection(){return l(Dt)},get searchResultItems(){return l(_e)},get context(){return g()}});var Re=CA(ct,2),St=P=>{var X=WJA();P1(W(X),{get root(){return l(i)},selected:!0,get onContextMenu(){return k(g()),oA(()=>g().onContextMenu)}}),iA(P,X)};GA(Re,P=>{k(g()),l(D),k(c()),k(Vi),k(Gn),k(Sr),k(ri),k(nt),l(u),oA(()=>!g().readOnly&&l(D)&&c()&&(Vi(c())||Gn(c()))&&!Sr(c())&&ri(nt(c()),l(u)))&&P(St)});var Se=CA(Me,2),Wt=P=>{wQ(P,{get validationError(){return l(R)},onExpand:J})};GA(Se,P=>{l(R)&&P(Wt)});var L=CA(Se,2),T=P=>{var X=XJA();ce("click",X,SA),iA(P,X)};GA(L,P=>{l(i)||P(T)}),iA(zA,xA)};GA(KA,zA=>{k(nn),k(o()),oA(()=>nn(o()))?zA(OA):zA(gA,!1)},tA)};GA(UA,KA=>{k(o()),oA(()=>Array.isArray(o()))?KA(BA):KA(JA,!1)});var Xe=CA(UA,2),We=KA=>{var tA,OA=AYA(),gA=W(OA),zA=ZA(()=>(l(D),k(Ya),k(c()),oA(()=>l(D)&&Ya(c()))));P1(gA,{insert:!0,get selected(){return l(zA)},onContextMenu:lA}),we(xA=>{tA=jt(OA,1,"jse-insert-area jse-after svelte-oawf7x",null,tA,xA),gn(OA,"title",aG)},[()=>({"jse-hovered":l(d)===Ey,"jse-selected":l(D)&&Ya(c())})],ZA),iA(KA,OA)};GA(Xe,KA=>{k(g()),l(d),k(Ey),l(D),k(Ya),k(c()),oA(()=>!g().readOnly&&(l(d)===Ey||l(D)&&Ya(c())))&&KA(We)}),we((KA,tA,OA)=>{wA=jt(ie,1,KA,"svelte-oawf7x",wA,tA),gn(ie,"data-path",l(A)),gn(ie,"aria-selected",l(D)),VA=eg(ie,"",VA,OA)},[()=>rI((k(Vg),l(h),k(g()),l(u),k(o()),oA(()=>Vg("jse-json-node",{"jse-expanded":l(h)},g().onClassName(l(u),o()))))),()=>({"jse-root":l(i),"jse-selected":l(D)&&Gn(c()),"jse-selected-value":l(D)&&Vi(c()),"jse-readonly":g().readOnly,"jse-hovered":l(d)===krA}),()=>({"--level":(l(u),oA(()=>l(u).length))})],ZA),ce("mousedown",ie,function(KA){if((KA.buttons===1||KA.buttons===2)&&!((tA=KA.target).nodeName==="DIV"&&tA.contentEditable==="true"||KA.buttons===1&&EaA(KA.target,"BUTTON"))){var tA;KA.stopPropagation(),KA.preventDefault(),g().focus(),document.addEventListener("mousemove",K,!0),document.addEventListener("mouseup",O);var OA=oG(KA.target),gA=g().getJson(),zA=g().getDocumentState();if(!c()||OA===Ln.after||OA===Ln.inside||c().type!==OA&&c().type!==Ln.multi||!nf(gA,c(),l(u)))if(Eo(Eo().selecting=!0),Eo(Eo().selectionAnchor=l(u)),Eo(Eo().selectionAnchorType=OA),Eo(Eo().selectionFocus=l(u)),KA.shiftKey){var xA=g().getSelection();xA&&g().onSelect(Js(WC(xA),l(u)))}else if(OA===Ln.multi)if(l(i)&&KA.target.hasAttribute("data-path")){var Me=li(waA(o(),zA));g().onSelect(UG(Me))}else g().onSelect(Js(l(u),l(u)));else gA!==void 0&&g().onSelect(zrA(OA,l(u)));else KA.button===0&&I()(KA)}}),ce("mousemove",ie,function(KA){if(Eo().selecting){KA.preventDefault(),KA.stopPropagation(),Eo().selectionFocus===void 0&&window.getSelection&&window.getSelection().empty();var tA=oG(KA.target);ri(l(u),Eo().selectionFocus)&&tA===Eo().selectionAnchorType||(Eo(Eo().selectionFocus=l(u)),Eo(Eo().selectionAnchorType=tA),g().onSelect(Js(Eo().selectionAnchor||Eo().selectionFocus,Eo().selectionFocus)))}}),ce("mouseover",ie,function(KA){Eo().selecting||Eo().dragging||(KA.stopPropagation(),Z1(KA.target,"data-type","selectable-value")?y(d,krA):Z1(KA.target,"data-type","selectable-key")?y(d,void 0):Z1(KA.target,"data-type","insert-selection-area-inside")?y(d,zC):Z1(KA.target,"data-type","insert-selection-area-after")&&y(d,Ey),clearTimeout(B))}),ce("mouseout",ie,function(KA){KA.stopPropagation(),B=window.setTimeout(()=>y(d,void 0))}),iA(t,ie),mt()}var tYA={prefix:"fas",iconName:"jsoneditor-expand",icon:[512,512,[],"","M 0,448 V 512 h 512 v -64 z M 0,0 V 64 H 512 V 0 Z M 256,96 128,224 h 256 z M 256,416 384,288 H 128 Z"]},iYA={prefix:"fas",iconName:"jsoneditor-collapse",icon:[512,512,[],"","m 0,224 v 64 h 512 v -64 z M 256,192 384,64 H 128 Z M 256,320 128,448 h 256 z"]},lsA={prefix:"fas",iconName:"jsoneditor-format",icon:[512,512,[],"","M 0,32 v 64 h 416 v -64 z M 160,160 v 64 h 352 v -64 z M 160,288 v 64 h 288 v -64 z M 0,416 v 64 h 320 v -64 z"]},nYA={prefix:"fas",iconName:"jsoneditor-compact",icon:[512,512,[],"","M 0,32 v 64 h 512 v -64 z M 0,160 v 64 h 512 v -64 z M 0,288 v 64 h 352 v -64 z"]};function oYA(t,e){t.stopPropagation(),e.onCreateObject()}function rYA(t,e){t.stopPropagation(),e.onCreateArray()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-welcome.svelte-1eamlhk { - flex: 1; - overflow: auto; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - display: flex; - flex-direction: column; - align-items: center; - border-left: var(--jse-main-border, 1px solid #d7d7d7); - border-right: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-welcome.svelte-1eamlhk:last-child { - border-bottom: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-welcome.svelte-1eamlhk .jse-space.jse-before:where(.svelte-1eamlhk) { - flex: 1; -} -.jse-welcome.svelte-1eamlhk .jse-space.jse-after:where(.svelte-1eamlhk) { - flex: 2; -} -.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) { - display: flex; - flex-direction: column; - max-width: 300px; - margin: 2em var(--jse-padding, 10px); - gap: var(--jse-padding, 10px); -} -.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) .jse-welcome-info:where(.svelte-1eamlhk) { - color: var(--jse-panel-color-readonly, #b2b2b2); -} -.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) button:where(.svelte-1eamlhk) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); - color: var(--jse-button-primary-color, #fff); - padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); - border-radius: 3px; -} -.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) button:where(.svelte-1eamlhk):hover { - background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); -} -.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) button:where(.svelte-1eamlhk):disabled { - background: var(--jse-button-primary-background-disabled, #9d9d9d); -}`);var sYA=(t,e)=>e.onClick(),aYA=vA('
            You can paste clipboard data using Ctrl+V, or use the following options:
            ',1),cYA=vA('
            Empty document
            ');function qG(t,e){var A=typeof t=="string"?t.toLowerCase():t,i=typeof e=="string"?e.toLowerCase():e;return(0,QsA.default)(A,i)}function $aA(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,n=Ye(t,e);if(wo(n)){if(A===void 0)throw new Error("Cannot sort: no property selected by which to sort the array");return function(o){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,c=function(I,C){var d={boolean:0,number:1,string:2,undefined:4},B=3;return function(E,u){var h=Ye(E,I),w=Ye(u,I);if(typeof h!=typeof w){var x,R,D=(x=d[typeof h])!==null&&x!==void 0?x:B,G=(R=d[typeof w])!==null&&R!==void 0?R:B;return D>G?C:Dw?C:h1&&arguments[1]!==void 0?arguments[1]:[],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,a=Ye(o,r),c=Object.keys(a).slice();c.sort((I,C)=>s*qG(I,C));var g={};return c.forEach(I=>g[I]=a[I]),[{op:"replace",path:Ct(r),value:g}]}(t,e,i);throw new Error("Cannot sort: no array or object")}df(["click"]);Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-navigation-bar-dropdown.svelte-2nnd2m { - position: absolute; - top: 100%; - left: 0; - z-index: 3; - background: var(--jse-navigation-bar-background, var(--jse-background-color, #fff)); - color: var(--jse-navigation-bar-dropdown-color, #656565); - box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); - display: flex; - flex-direction: column; - max-height: 300px; - overflow: auto; - min-width: 80px; -} -.jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item:where(.svelte-2nnd2m) { - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - border: none; - background: transparent; - color: inherit; - cursor: pointer; - outline: none; - text-align: left; - white-space: nowrap; - box-sizing: border-box; - padding: calc(0.5 * var(--jse-padding, 10px)) 36px; -} -.jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item:where(.svelte-2nnd2m):focus, .jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item:where(.svelte-2nnd2m):hover { - background: var(--jse-navigation-bar-background-highlight, #e5e5e5); -} -.jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item.jse-selected:where(.svelte-2nnd2m) { - background: var(--jse-navigation-bar-dropdown-color, #656565); - color: var(--jse-navigation-bar-background, var(--jse-background-color, #fff)); -}`);var gYA=vA(''),lYA=vA(''),IYA=vA('
            ');function CYA(t,e){ft(e,!1);var A=M(e,"items",9),i=M(e,"selectedItem",9),n=M(e,"onSelect",9);qt(!0);var o=IYA(),r=W(o);jo(r,1,()=>(k(_y),k(A()),oA(()=>_y(A(),100))),c=>c,(c,g)=>{var I,C=gYA(),d=W(C);we((B,E,u)=>{I=jt(C,1,"jse-navigation-bar-dropdown-item svelte-2nnd2m",null,I,B),gn(C,"title",E),pt(d,u)},[()=>({"jse-selected":l(g)===i()}),()=>(l(g),oA(()=>l(g).toString())),()=>(k(X0),l(g),oA(()=>X0(l(g).toString(),30)))],ZA),ce("click",C,Z0(()=>n()(l(g)))),iA(c,C)});var s=CA(r,2),a=c=>{var g=lYA();gn(g,"title","Limited to 100 items"),iA(c,g)};GA(s,c=>{k(A()),oA(()=>A().length>100)&&c(a)}),iA(t,o),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-navigation-bar-item.svelte-752ro1 { - position: relative; - display: flex; -} -.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button:where(.svelte-752ro1) { - font-family: inherit; - font-size: inherit; - padding: calc(0.5 * var(--jse-padding, 10px)) 2px; - border: none; - background: transparent; - color: inherit; - cursor: pointer; - outline: none; - min-width: 2em; - white-space: nowrap; -} -.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button:where(.svelte-752ro1):focus, .jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button:where(.svelte-752ro1):hover { - background: var(--jse-panel-button-background-highlight, #e0e0e0); - color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); -} -.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button.jse-navigation-bar-arrow:where(.svelte-752ro1) { - padding: 2px var(--jse-padding, 10px) 0; -} -.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button.jse-navigation-bar-arrow.jse-open:where(.svelte-752ro1) { - background: var(--jse-navigation-bar-background, var(--jse-background-color, #fff)); - color: var(--jse-navigation-bar-dropdown-color, #656565); -} -.jse-navigation-bar-item.svelte-752ro1:last-child { - padding-right: var(--jse-padding, 10px); -}`);var dYA=vA(''),BYA=vA('
            ');function IsA(t,e){ft(e,!1);var A,i=$(void 0,!0),n=$(void 0,!0),{openAbsolutePopup:o,closeAbsolutePopup:r}=cI("absolute-popup"),s=M(e,"path",9),a=M(e,"index",9),c=M(e,"onSelect",9),g=M(e,"getItems",9),I=$(void 0,!0),C=$(!1,!0);function d(x){r(A),c()(l(i).concat(x))}pA(()=>(k(s()),k(a())),()=>{y(i,s().slice(0,a()))}),pA(()=>(k(s()),k(a())),()=>{y(n,s()[a()])}),ln(),qt(!0);var B,E=BYA(),u=W(E);Ui(W(u),{get data(){return nL}});var h=CA(u,2),w=x=>{var R=dYA(),D=W(R);we(()=>pt(D,l(n))),ce("click",R,()=>d(l(n))),iA(x,R)};GA(h,x=>{l(n)!==void 0&&x(w)}),Qo(E,x=>y(I,x),()=>l(I)),we(x=>B=jt(u,1,"jse-navigation-bar-button jse-navigation-bar-arrow svelte-752ro1",null,B,x),[()=>({"jse-open":l(C)})],ZA),ce("click",u,function(){if(l(I)){y(C,!0);var x={items:g()(l(i)),selectedItem:l(n),onSelect:d};A=o(CYA,x,{anchor:l(I),closeOnOuterClick:!0,onClose:()=>{y(C,!1)}})}}),iA(t,E),mt()}function RK(t){var e,A;if(navigator.clipboard)return navigator.clipboard.writeText(t);if((e=(A=document).queryCommandSupported)!==null&&e!==void 0&&e.call(A,"copy")){var i=document.createElement("textarea");i.value=t,i.style.position="fixed",i.style.opacity="0",document.body.appendChild(i),i.select();try{document.execCommand("copy")}catch(n){console.error(n)}finally{document.body.removeChild(i)}return Promise.resolve()}return console.error("Copy failed."),Promise.resolve()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-navigation-bar-path-editor.svelte-zc2wx7 { - flex: 1; - display: flex; - border: var(--jse-edit-outline, 2px solid #656565); - background: var(--jse-background-color, #fff); -} -.jse-navigation-bar-path-editor.svelte-zc2wx7 input.jse-navigation-bar-text:where(.svelte-zc2wx7) { - flex: 1; - font-family: inherit; - font-size: inherit; - padding: 0 5px 1px; - background: var(--jse-background-color, #fff); - color: var(--jse-text-color, #4d4d4d); - border: none; - outline: none; -} -.jse-navigation-bar-path-editor.svelte-zc2wx7 button:where(.svelte-zc2wx7) { - border: none; - background: var(--jse-background-color, #fff); - cursor: pointer; - font-family: inherit; - font-size: 80%; - color: inherit; -} -.jse-navigation-bar-path-editor.svelte-zc2wx7 button.jse-navigation-bar-copy.copied:where(.svelte-zc2wx7) { - color: var(--message-success-background, #9ac45d); -} -.jse-navigation-bar-path-editor.svelte-zc2wx7 button.jse-navigation-bar-validation-error:where(.svelte-zc2wx7) { - color: var(--jse-error-color, #ee5341); -} -.jse-navigation-bar-path-editor.error.svelte-zc2wx7 { - border-color: var(--jse-error-color, #ee5341); -} -.jse-navigation-bar-path-editor.error.svelte-zc2wx7 input.jse-navigation-bar-text:where(.svelte-zc2wx7) { - color: var(--jse-error-color, #ee5341); -} -.jse-navigation-bar-path-editor.svelte-zc2wx7 .jse-copied-text:where(.svelte-zc2wx7) { - background: var(--message-success-background, #9ac45d); - color: var(--jse-message-success-color, #fff); - position: relative; - margin: 2px; - padding: 0 5px; - border-radius: 3px; -}`);var EYA=vA(''),QYA=vA('
            Copied!
            '),uYA=vA('
            ');function hYA(t,e){ft(e,!1);var A=$(),i=cI("absolute-popup"),n=M(e,"path",8),o=M(e,"pathParser",8),r=M(e,"onChange",8),s=M(e,"onClose",8),a=M(e,"onError",8),c=M(e,"pathExists",8),g=$(),I=$(),C=$(!1),d=void 0,B=$(!1);function E(){l(g).focus()}function u(O){try{var V=o().parse(O);return function(j){if(!c()(j))throw new Error("Path does not exist in current document")}(V),{path:V,error:void 0}}catch(j){return{path:void 0,error:j}}}ws(()=>{E()}),ig(()=>{clearTimeout(d)}),pA(()=>(k(o()),k(n())),()=>{y(I,o().stringify(n()))}),pA(()=>(l(C),l(I)),()=>{y(A,l(C)?u(l(I)).error:void 0)}),ln(),qt();var h,w=uYA(),x=W(w);Qo(x,O=>y(g,O),()=>l(g));var R=CA(x,2),D=O=>{var V=EYA();Ui(W(V),{get data(){return m1}}),Ts(V,(j,dA)=>RQ?.(j,dA),()=>pe({text:String(l(A)||"")},i)),iA(O,V)};GA(R,O=>{l(A)&&O(D)});var G=CA(R,2),J=O=>{iA(O,QYA())};GA(G,O=>{l(B)&&O(J)});var z,K=CA(G,2);Ui(W(K),{get data(){return G0}}),we((O,V)=>{h=jt(w,1,"jse-navigation-bar-path-editor svelte-zc2wx7",null,h,O),ed(x,l(I)),z=jt(K,1,"jse-navigation-bar-copy svelte-zc2wx7",null,z,V)},[()=>({error:l(A)}),()=>({copied:l(B)})],ZA),ce("keydown",x,Z0(function(O){var V=s2(O);if(V==="Escape"&&(O.preventDefault(),s()()),V==="Enter"){O.preventDefault(),y(C,!0);var j=u(l(I));j.path!==void 0?r()(j.path):a()(j.error)}})),ce("input",x,function(O){y(I,O.currentTarget.value)}),ce("click",K,function(){RK(l(I)),y(B,!0),d=window.setTimeout(()=>y(B,!1),1e3),E()}),iA(t,w),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-navigation-bar.svelte-xs03gj { - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - background: var(--jse-panel-background, #ebebeb); - color: var(--jse-panel-button-color, inherit); - padding: 0; - margin: 0; - display: flex; - overflow: auto; - border-left: var(--jse-main-border, 1px solid #d7d7d7); - border-right: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj) { - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); - color: var(--jse-panel-color-readonly, #b2b2b2); - background: transparent; - border: none; - display: flex; - cursor: pointer; - outline: none; - align-items: center; -} -.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit.flex:where(.svelte-xs03gj) { - flex: 1; -} -.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj):focus, .jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj):hover, .jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit.editing:where(.svelte-xs03gj) { - background: var(--jse-panel-button-background-highlight, #e0e0e0); - color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); - transition: color 0.2s ease-in, background 0.2s ease-in; -} -.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj) .jse-navigation-bar-space:where(.svelte-xs03gj) { - flex: 1; - text-align: left; -}`);var fYA=vA(" ",1),mYA=vA('
            ');function pYA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=xr("jsoneditor:NavigationBar"),o=M(e,"json",9),r=M(e,"selection",9),s=M(e,"onSelect",9),a=M(e,"onError",9),c=M(e,"pathParser",9),g=$(void 0,!0),I=$(!1,!0);function C(V){n("get items for path",V);var j=Ye(o(),V);if(Array.isArray(j))return N5(0,j.length).map(String);if(nn(j)){var dA=Object.keys(j).slice(0);return dA.sort(qG),dA}return[]}function d(V){return As(o(),V)}function B(V){n("select path",JSON.stringify(V)),s()(Js(V,V))}function E(){y(I,!1)}function u(V){E(),B(V)}pA(()=>(k(r()),nt),()=>{y(A,r()?nt(r()):[])}),pA(()=>(k(o()),l(A)),()=>{y(i,Fo(Ye(o(),l(A))))}),pA(()=>l(A),()=>{l(A),setTimeout(()=>{if(l(g)&&l(g).scrollTo){var V=l(g).scrollWidth-l(g).clientWidth;V>0&&(n("scrollTo ",V),l(g).scrollTo({left:V,behavior:"smooth"}))}})}),ln(),qt(!0);var h=mYA(),w=W(h),x=V=>{var j=fYA(),dA=Mt(j);jo(dA,1,()=>l(A),cr,(IA,SA,nA)=>{IsA(IA,{getItems:C,get path(){return l(A)},index:nA,onSelect:B})});var fA=CA(dA,2),EA=IA=>{IsA(IA,{getItems:C,get path(){return l(A)},get index(){return l(A),oA(()=>l(A).length)},onSelect:B})};GA(fA,IA=>{l(i)&&IA(EA)}),iA(V,j)},R=V=>{hYA(V,{get path(){return l(A)},onClose:E,onChange:u,get onError(){return a()},pathExists:d,get pathParser(){return c()}})};GA(w,V=>{l(I)?V(R,!1):V(x)});var D,G=CA(w,2),J=W(G),z=W(J),K=CA(J,2),O=ZA(()=>l(I)?yX:EX);Ui(K,{get data(){return l(O)}}),Qo(h,V=>y(g,V),()=>l(g)),we((V,j)=>{D=jt(G,1,"jse-navigation-bar-edit svelte-xs03gj",null,D,V),gn(G,"title",l(I)?"Cancel editing the selected path":"Edit the selected path"),pt(z,j)},[()=>({flex:!l(I),editing:l(I)}),()=>(k(Fo),k(o()),l(I),oA(()=>Fo(o())||l(I)?"\xA0":"Navigation bar"))],ZA),ce("click",G,function(){y(I,!l(I))}),iA(t,h),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-search-box.svelte-1mxl2uo { - border: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); - border-radius: 3px; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - background: var(--jse-panel-background, #ebebeb); - color: var(--jse-panel-color-readonly, #b2b2b2); - box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); - display: inline-block; - width: 400px; - max-width: 100%; - overflow: auto; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) { - display: flex; - align-items: stretch; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo), -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) input:where(.svelte-1mxl2uo) { - font-family: inherit; - font-size: inherit; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo) { - display: block; - text-align: center; - border: none; - padding: 0 5px; - margin: 0; - cursor: pointer; - color: var(--jse-panel-button-color, inherit); - background: var(--jse-panel-button-background, transparent); -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo):hover { - color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); - background: var(--jse-panel-button-background-highlight, #e0e0e0); -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) input:where(.svelte-1mxl2uo) { - color: var(--jse-panel-color, var(--jse-text-color, #4d4d4d)); - border: var(--jse-input-border, 1px solid #d8dbdf); - border-radius: 3px; - background: var(--jse-input-background, var(--jse-background-color, #fff)); - height: 28px; - padding: 0 5px; - margin: 0; - flex: 1; - width: 0; - min-width: 50px; - outline: none; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-replace-toggle:where(.svelte-1mxl2uo) { - padding: var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)); - min-width: 20px; - background: var(--jse-panel-button-background-highlight, #e0e0e0); -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) { - flex: 1; - display: flex; - flex-direction: column; - padding: calc(0.5 * var(--jse-padding, 10px)); - gap: calc(0.5 * var(--jse-padding, 10px)); -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) { - flex: 1; - display: flex; - align-items: center; - position: relative; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) .jse-search-icon:where(.svelte-1mxl2uo) { - color: inherit; - cursor: inherit; - background: inherit; - width: 32px; - text-align: center; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) label.jse-search-input-label:where(.svelte-1mxl2uo) { - flex: 1; - display: flex; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) .jse-search-count:where(.svelte-1mxl2uo) { - color: inherit; - font-size: 80%; - visibility: hidden; - padding: 0 5px; - min-width: 36px; - text-align: center; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) .jse-search-count.jse-visible:where(.svelte-1mxl2uo) { - visibility: visible; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-replace-section:where(.svelte-1mxl2uo) { - flex: 1; - display: flex; - padding-left: 32px; -} -.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-replace-section:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo) { - width: auto; -}`);var DYA=vA(''),wYA=vA('
            '),yYA=vA('');function AcA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=xr("jsoneditor:SearchBox"),r=M(e,"json",9),s=M(e,"documentState",9),a=M(e,"parser",9),c=M(e,"showSearch",9),g=M(e,"showReplace",13),I=M(e,"readOnly",9),C=M(e,"columns",9),d=M(e,"onSearch",9),B=M(e,"onFocus",9),E=M(e,"onPatch",9),u=M(e,"onClose",9),h=$("",!0),w="",x=$("",!0),R=$(!1,!0),D=$(void 0,!0),G=EE(function(xA){return JA.apply(this,arguments)},300),J=EE(function(xA){return Xe.apply(this,arguments)},300);function z(){g(!g()&&!I())}function K(xA){xA.stopPropagation();var Me=s2(xA);Me==="Enter"&&(xA.preventDefault(),l(h)!==w?G.flush():nA()),Me==="Shift+Enter"&&(xA.preventDefault(),wA()),Me==="Ctrl+Enter"&&(xA.preventDefault(),g()?dA():nA()),Me==="Ctrl+H"&&(xA.preventDefault(),z()),Me==="Escape"&&(xA.preventDefault(),tA())}function O(xA){s2(xA)==="Enter"&&(xA.preventDefault(),xA.stopPropagation(),dA())}function V(){return j.apply(this,arguments)}function j(){return(j=_t(function*(){to(),yield G.flush()})).apply(this,arguments)}function dA(){return fA.apply(this,arguments)}function fA(){return(fA=_t(function*(){var xA;if(!I()){var Me=(xA=l(D))===null||xA===void 0?void 0:xA.activeItem;if(o("handleReplace",{replaceText:l(x),activeItem:Me}),l(D)&&Me&&r()!==void 0){y(D,pe(pe({},jrA(l(D))),{},{activeIndex:l(i)}));var{operations:LA,newSelection:cA}=GKA(r(),s(),l(x),Me,a());E()(LA,(Gt,ct)=>({state:ct,selection:cA})),to(),yield J.flush(),yield ie()}}})).apply(this,arguments)}function EA(){return IA.apply(this,arguments)}function IA(){return(IA=_t(function*(){if(!I()){o("handleReplaceAll",{text:l(h),replaceText:l(x)});var{operations:xA,newSelection:Me}=function(LA,cA,Gt,ct,oe){for(var Dt=qrA(Gt,LA,{maxResults:1/0}),_e=[],Re=0;ReT.field!==P.field?T.field===zg.key?1:-1:P.path.length-T.path.length);var Wt,L=[];return _e.forEach(T=>{var{field:P,path:X,items:kA}=T;if(P===zg.key){var le=yi(X),Ee=Ye(LA,le),FA=li(X),MA=ff(le,Object.keys(Ee),FA,ZrA(FA,ct,kA));L=L.concat(MA),Wt=SQ(LA,MA)}else{if(P!==zg.value)throw new Error("Cannot replace: unknown type of search result field ".concat(P));var dt=Ye(LA,X);if(dt===void 0)throw new Error("Cannot replace: path not found ".concat(Ct(X)));var $e=typeof dt=="string"?dt:String(dt),XA=t0(LA,cA,X),ot=ZrA($e,ct,kA),Si=[{op:"replace",path:Ct(X),value:XA?ot:GQ(ot,oe)}];L=L.concat(Si),Wt=SQ(LA,Si)}}),{operations:L,newSelection:Wt}}(r(),s(),l(h),l(x),a());E()(xA,(LA,cA)=>({state:cA,selection:Me})),yield ie()}})).apply(this,arguments)}function SA(xA){xA.select()}function nA(){return lA.apply(this,arguments)}function lA(){return(lA=_t(function*(){y(D,l(D)?jrA(l(D)):void 0),yield ie()})).apply(this,arguments)}function wA(){return VA.apply(this,arguments)}function VA(){return VA=_t(function*(){y(D,l(D)?function(xA){var Me=xA.activeIndex>0?xA.activeIndex-1:xA.items.length-1,LA=xA.items[Me],cA=xA.items.map((Gt,ct)=>pe(pe({},Gt),{},{active:ct===Me}));return pe(pe({},xA),{},{items:cA,activeItem:LA,activeIndex:Me})}(l(D)):void 0),yield ie()}),VA.apply(this,arguments)}function ie(){return UA.apply(this,arguments)}function UA(){return(UA=_t(function*(){var xA;o("handleFocus",l(D));var Me=(xA=l(D))===null||xA===void 0?void 0:xA.activeItem;Me&&r()!==void 0&&(yield B()(Me.path,Me.resultIndex))})).apply(this,arguments)}function BA(){return BA=_t(function*(xA){yield We(xA,l(h),r())}),BA.apply(this,arguments)}function JA(){return JA=_t(function*(xA){yield We(c(),xA,r()),yield ie()}),JA.apply(this,arguments)}function Xe(){return Xe=_t(function*(xA){yield We(c(),l(h),xA)}),Xe.apply(this,arguments)}function We(xA,Me,LA){return KA.apply(this,arguments)}function KA(){return KA=_t(function*(xA,Me,LA){return xA?(o("applySearch",{showSearch:xA,text:Me}),Me===""?(o("clearing search result"),l(D)!==void 0&&y(D,void 0),Promise.resolve()):(w=Me,y(R,!0),new Promise(cA=>{setTimeout(()=>{var Gt=qrA(Me,LA,{maxResults:rG,columns:C()});y(D,function(ct,oe){var Dt=oe!=null&&oe.activeItem?WrA(oe.activeItem):void 0,_e=ct.findIndex(Se=>ri(Dt,WrA(Se))),Re=_e!==-1?_e:oe?.activeIndex!==void 0&&oe?.activeIndex0?0:-1,St=ct.map((Se,Wt)=>pe(pe({resultIndex:Wt},Se),{},{active:Wt===Re}));return{items:St,activeItem:St[Re],activeIndex:Re}}(Gt,l(D))),y(R,!1),cA()})}))):(l(D)&&y(D,void 0),Promise.resolve())}),KA.apply(this,arguments)}function tA(){o("handleClose"),G.cancel(),J.cancel(),We(!1,l(h),r()),u()()}pA(()=>l(D),()=>{var xA;y(A,((xA=l(D))===null||xA===void 0||(xA=xA.items)===null||xA===void 0?void 0:xA.length)||0)}),pA(()=>l(D),()=>{var xA;y(i,((xA=l(D))===null||xA===void 0?void 0:xA.activeIndex)||0)}),pA(()=>(l(A),rG),()=>{y(n,l(A)>=rG?"".concat(999,"+"):String(l(A)))}),pA(()=>(k(d()),l(D)),()=>{d()(l(D))}),pA(()=>k(c()),()=>{(function(xA){BA.apply(this,arguments)})(c())}),pA(()=>l(h),()=>{G(l(h))}),pA(()=>k(r()),()=>{J(r())}),ln(),qt(!0);var OA=_o(),gA=Mt(OA),zA=xA=>{var Me=yYA(),LA=W(Me),cA=W(LA),Gt=FA=>{var MA=DYA(),dt=W(MA),$e=ZA(()=>g()?Nl:uE);Ui(dt,{get data(){return l($e)}}),ce("click",MA,z),iA(FA,MA)};GA(cA,FA=>{I()||FA(Gt)});var ct=W(CA(cA,2)),oe=W(ct),Dt=W(oe),_e=FA=>{Ui(FA,{get data(){return CX},spin:!0})},Re=FA=>{Ui(FA,{get data(){return u4}})};GA(Dt,FA=>{l(R)?FA(_e):FA(Re,!1)});var St=CA(oe,2),Se=W(St);rs(()=>Fy(Se,()=>l(h),FA=>y(h,FA))),Ts(Se,FA=>SA?.(FA)),rs(()=>ce("paste",Se,V));var Wt,L=CA(St,2),T=W(L),P=CA(L,2);Ui(W(P),{get data(){return DX}});var X=CA(P,2);Ui(W(X),{get data(){return QX}});var kA=CA(X,2);Ui(W(kA),{get data(){return h4}});var le=CA(ct,2),Ee=FA=>{var MA=wYA(),dt=W(MA),$e=CA(dt,2),XA=CA($e,2);Fy(dt,()=>l(x),ot=>y(x,ot)),ce("keydown",dt,O),ce("click",$e,dA),ce("click",XA,EA),iA(FA,MA)};GA(le,FA=>{g()&&!I()&&FA(Ee)}),we(FA=>{var MA;Wt=jt(L,1,"jse-search-count svelte-1mxl2uo",null,Wt,FA),pt(T,"".concat(l(i)!==-1&&l(i)({"jse-visible":l(h)!==""})],ZA),ce("click",P,nA),ce("click",X,wA),ce("click",kA,tA),ce("keydown",LA,K),iA(xA,Me)};GA(gA,xA=>{c()&&xA(zA)}),iA(t,OA),mt()}var af=Symbol("path");function vYA(t,e){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1/0,i={};Array.isArray(t)&&function(o,r,s){if(o.length1?(o.length-1)/(r-1):o.length,c=0;c{nn(o)?ecA(o,i,e):i[af]=!0});var n=[];return af in i&&n.push([]),tcA(i,[],n,e),n}function ecA(t,e,A){for(var i in t){var n=t[i],o=e[i]||(e[i]={});nn(n)&&A?ecA(n,o,A):o[af]===void 0&&(o[af]=!0)}}function tcA(t,e,A,i){for(var n in t){var o=e.concat(n),r=t[n];r&&r[af]===!0&&A.push(o),Lo(r)&&i&&tcA(r,o,A,i)}}function MYA(t,e,A,i,n,o){for(var r=arguments.length>6&&arguments[6]!==void 0?arguments[6]:80,s=wo(A)?A.length:0,a=function(w,x){var R=Object.values(w);if(Gi(R))return x;var D=(G,J)=>G+J;return R.reduce(D)/R.length}(i,n),c=t-r,g=e+2*r,I=w=>i[w]||n,C=0,d=o;d0&&(d-=I(--C));for(var B=C,E=0;En0(i,o))}}function PC(t,e){var{rowIndex:A,columnIndex:i}=t;return[String(A),...e[i]]}function bYA(t,e){var[A,i]=jR(t,r=>cK(r.path[0])),n=zR(A,kYA),o=PR(n,r=>{var s={row:[],columns:{}};return r.forEach(a=>{var c=function(g,I){var C=Xc(g.path,I);return C.columnIndex!==-1?C.columnIndex:-1}(a,e);c!==-1?(s.columns[c]===void 0&&(s.columns[c]=[]),s.columns[c].push(a)):s.row.push(a)}),s});return{root:i,rows:o}}function lQ(t,e){if(e&&e.length!==0)return e.length===1?e[0]:{path:t,message:"Multiple validation issues: "+e.map(A=>Ta(A.path)+" "+A.message).join(", "),severity:Og.warning}}function kYA(t){return parseInt(t.path[0],10)}function SYA(t,e,A){var i=e.some(n=>function(o,r,s){if(!o)return!1;if(r.op==="replace"){var a=xs(r.path),{rowIndex:c,columnIndex:g}=Xc(a,s),I=s.findIndex(C=>ri(C,o.path));if(c!==-1&&g!==-1&&g!==I)return!1}return!0}(t,n,A));return i?void 0:t}var Ys=xr("jsoneditor:actions");function icA(t){return VG.apply(this,arguments)}function VG(){return VG=_t(function*(t){var{json:e,selection:A,indentation:i,readOnly:n,parser:o,onPatch:r}=t;if(!n&&e!==void 0&&A&&uQ(A)){var s=MaA(e,A,i,o);if(s!==void 0){Ys("cut",{selection:A,clipboard:s,indentation:i}),yield RK(s);var{operations:a,newSelection:c}=xaA(e,A);r(a,(g,I)=>({state:I,selection:c}))}}}),VG.apply(this,arguments)}function ncA(t){return ZG.apply(this,arguments)}function ZG(){return ZG=_t(function*(t){var{json:e,selection:A,indentation:i,parser:n}=t,o=MaA(e,A,i,n);o!==void 0&&(Ys("copy",{clipboard:o,indentation:i}),yield RK(o))}),ZG.apply(this,arguments)}function ocA(t){var{clipboardText:e,json:A,selection:i,readOnly:n,parser:o,onPatch:r,onChangeText:s,onPasteMultilineText:a,openRepairModal:c}=t;if(!n)try{g(e)}catch{c(e,C=>{Ys("repaired pasted text: ",C),g(C)})}function g(I){if(A!==void 0){var C=i||vi([]),d=LaA(A,C,I,o),B=function(E,u,h){var w=arguments.length>3&&arguments[3]!==void 0?arguments[3]:kKA;if(E.length>w)return!1;var x=/\n/.test(E);if(!x)return!1;var R=u.some(G=>G.op==="replace"&&Array.isArray(G.value)),D=u.filter(G=>G.op==="add").length>1;if(!R&&!D)return!1;try{return Ef(E,h.parse),!1}catch{return!0}}(e,d,o);Ys("paste",{pastedText:I,operations:d,ensureSelection:C,pasteMultilineText:B}),r(d,(E,u)=>{var h=u;return d.filter(w=>(fR(w)||V8(w))&&Fo(w.value)).forEach(w=>{var x=ba(A,w.path);h=id(E,h,x)}),{state:h}}),B&&a(I)}else Ys("paste text",{pastedText:I}),s(e,(E,u)=>{if(E)return{state:id(E,u,[])}})}}function rcA(t){var{json:e,text:A,selection:i,keepSelection:n,readOnly:o,onChange:r,onPatch:s}=t;if(!o&&i){var a=e!==void 0&&(Lr(i)||Vi(i))?Js(i.path,i.path):i;if(Gi(nt(i)))Ys("remove root",{selection:i}),r&&r({text:"",json:void 0},e!==void 0?{text:void 0,json:e}:{text:A||"",json:e},{contentErrors:void 0,patchResult:void 0});else if(e!==void 0){var{operations:c,newSelection:g}=xaA(e,a);Ys("remove",{operations:c,selection:i,newSelection:g}),s(c,(I,C)=>({state:C,selection:n?i:g}))}}}function Zy(t){var{insertType:e,selectInside:A,initialValue:i,json:n,selection:o,readOnly:r,parser:s,onPatch:a,onReplaceJson:c}=t;if(!r){var g=function(E,u,h){if(h==="object")return{};if(h==="array")return[];if(h==="structure"&&E!==void 0){var w=u?yaA(u):[],x=Ye(E,w);if(Array.isArray(x)&&!Gi(x)){var R=Tc(x);return Fo(R)?YR(R,D=>Array.isArray(D)?[]:nn(D)?void 0:""):""}}return""}(n,o,e);if(n!==void 0){var I=s.stringify(g),C=LaA(n,o,I,s);Ys("onInsert",{insertType:e,operations:C,newValue:g,data:I});var d=li(C.filter(E=>E.op==="add"||E.op==="replace"));a(C,(E,u,h)=>{if(d){var w=ba(E,d.path);if(Fo(g))return{state:Yg(E,u,w,wK),selection:A?c2(w):h};if(g===""){var x=Gi(w)?void 0:Ye(E,yi(w));return{state:Yg(E,u,w,by),selection:nn(x)?yK(w,i):Yy(w,i)}}}}),Ys("after patch")}else{Ys("onInsert",{insertType:e,newValue:g});var B=[];c(g,(E,u)=>({state:id(E,u,B),selection:Fo(g)?c2(B):Yy(B)}))}}}function scA(t){return WG.apply(this,arguments)}function WG(){return WG=_t(function*(t){var{char:e,selectInside:A,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a,onSelect:c}=t;o||(Lr(n)?c(pe(pe({},n),{},{edit:!0,initialValue:e})):e==="{"?Zy({insertType:"object",selectInside:A,initialValue:void 0,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a}):e==="["?Zy({insertType:"array",selectInside:A,initialValue:void 0,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a}):Vi(n)&&i!==void 0?Fo(Ye(i,n.path))||c(pe(pe({},n),{},{edit:!0,initialValue:e})):(Ys("onInsertValueWithCharacter",{char:e}),yield function(g){return XG.apply(this,arguments)}({char:e,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a})))}),WG.apply(this,arguments)}function XG(){return XG=_t(function*(t){var{char:e,json:A,selection:i,readOnly:n,parser:o,onPatch:r,onReplaceJson:s}=t;n||Zy({insertType:"value",selectInside:!1,initialValue:e,json:A,selection:i,readOnly:n,parser:o,onPatch:r,onReplaceJson:s})}),XG.apply(this,arguments)}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-json-preview.svelte-1vjn89h { - flex: 1; - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - color: var(--jse-panel-color-readonly, #b2b2b2); - overflow: auto; - white-space: pre-wrap; - padding: 2px; - border-left: var(--jse-main-border, 1px solid #d7d7d7); - border-right: var(--jse-main-border, 1px solid #d7d7d7); - border-bottom: var(--jse-main-border, 1px solid #d7d7d7); -}`);var RYA=vA('
            ');function acA(t,e){ft(e,!1);var A=$(),i=$(),n=M(e,"text",8),o=M(e,"json",8),r=M(e,"indentation",8),s=M(e,"parser",8);pA(()=>(k(o()),k(n())),()=>{y(A,o()!==void 0?{json:o()}:{text:n()||""})}),pA(()=>(l(A),k(r()),k(s()),Gy),()=>{y(i,X0(xG(l(A),r(),s()),Gy))}),ln(),qt();var a=RYA(),c=W(a);we(()=>pt(c,l(i))),iA(t,a),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -button.jse-context-menu-button.svelte-1idfykj { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - flex: 1; - white-space: nowrap; - padding: var(--jse-padding, 10px); - color: inherit; -} -button.jse-context-menu-button.svelte-1idfykj:hover { - background: var(--jse-context-menu-background-highlight, #7a7a7a); -} -button.jse-context-menu-button.svelte-1idfykj:focus { - background: var(--jse-context-menu-background-highlight, #7a7a7a); - z-index: 1; -} -button.jse-context-menu-button.svelte-1idfykj:disabled { - color: var(--jse-context-menu-color-disabled, #9d9d9d); - background: unset; -} -button.jse-context-menu-button.left.svelte-1idfykj { - text-align: left; -} -button.jse-context-menu-button.svelte-1idfykj svg { - width: 16px; -}`);var LYA=vA('');function hG(t,e){ft(e,!1);var A=M(e,"item",8),i=M(e,"className",8,void 0),n=M(e,"onRequestClose",8);qt();var o=LYA(),r=W(o),s=g=>{Ui(g,{get data(){return k(A()),oA(()=>A().icon)}})};GA(r,g=>{k(A()),oA(()=>A().icon)&&g(s)});var a=CA(r,2),c=g=>{var I=jr();we(()=>pt(I,(k(A()),oA(()=>A().text)))),iA(g,I)};GA(a,g=>{k(A()),oA(()=>A().text)&&g(c)}),we(g=>{jt(o,1,g,"svelte-1idfykj"),gn(o,"title",(k(A()),oA(()=>A().title))),o.disabled=(k(A()),oA(()=>A().disabled||!1))},[()=>rI((k(Vg),k(i()),k(A()),oA(()=>Vg("jse-context-menu-button",i(),A().className))))],ZA),ce("click",o,g=>{n()(),A().onClick(g)}),iA(t,o),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-dropdown-button.svelte-11rxb2m { - flex: 1; - line-height: normal; - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - position: relative; - padding: 0; - display: flex; -} -.jse-dropdown-button.svelte-11rxb2m ul:where(.svelte-11rxb2m) { - margin: 0; - padding: 0; -} -.jse-dropdown-button.svelte-11rxb2m ul:where(.svelte-11rxb2m) li:where(.svelte-11rxb2m) { - margin: 0; - padding: 0; - list-style-type: none; -} -.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - width: 2em; - background: var(--jse-context-menu-background, #656565); - color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); - border-radius: 0; -} -.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown.jse-visible:where(.svelte-11rxb2m) { - background: var(--jse-context-menu-background, #656565); -} -.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m):hover { - background: var(--jse-context-menu-background-highlight, #7a7a7a); -} -.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m):focus { - z-index: 1; -} -.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m):disabled { - color: var(--jse-context-menu-color-disabled, #9d9d9d); - background: unset; -} -.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) { - display: none; - position: absolute; - top: 100%; - left: 0; - z-index: 1; - background: var(--jse-context-menu-background, #656565); - color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); - box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); -} -.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items.jse-visible:where(.svelte-11rxb2m) { - display: block; -} -.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) button:where(.svelte-11rxb2m) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - width: 100%; - text-align: left; - padding: var(--jse-padding, 10px); - margin: 0; -} -.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) button:where(.svelte-11rxb2m):hover { - background: var(--jse-context-menu-background-highlight, #7a7a7a); -} -.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) button:where(.svelte-11rxb2m):disabled { - color: var(--jse-context-menu-color-disabled, #9d9d9d); - background: unset; -}`);var xYA=vA('
          • '),NYA=vA('
              ');Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -button.jse-context-menu-button.svelte-1idfykj { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - flex: 1; - white-space: nowrap; - padding: var(--jse-padding, 10px); - color: inherit; -} -button.jse-context-menu-button.svelte-1idfykj:hover { - background: var(--jse-context-menu-background-highlight, #7a7a7a); -} -button.jse-context-menu-button.svelte-1idfykj:focus { - background: var(--jse-context-menu-background-highlight, #7a7a7a); - z-index: 1; -} -button.jse-context-menu-button.svelte-1idfykj:disabled { - color: var(--jse-context-menu-color-disabled, #9d9d9d); - background: unset; -} -button.jse-context-menu-button.left.svelte-1idfykj { - text-align: left; -} -button.jse-context-menu-button.svelte-1idfykj svg { - width: 16px; -}`);var FYA=vA('');function fG(t,e){ft(e,!1);var A=$(),i=M(e,"item",8),n=M(e,"className",8,void 0),o=M(e,"onRequestClose",8);pA(()=>(k(i()),k(o())),()=>{y(A,i().items.map(r=>pe(pe({},r),{},{onClick:s=>{o()(),r.onClick(s)}})))}),ln(),qt(),function(r,s){ft(s,!1);var a=$(void 0,!0),c=M(s,"items",25,()=>[]),g=M(s,"title",9,void 0),I=M(s,"width",9,"120px"),C=$(!1,!0);function d(){y(C,!1)}function B(D){s2(D)==="Escape"&&(D.preventDefault(),y(C,!1))}ws(()=>{document.addEventListener("click",d),document.addEventListener("keydown",B)}),ig(()=>{document.removeEventListener("click",d),document.removeEventListener("keydown",B)}),pA(()=>k(c()),()=>{y(a,c().every(D=>D.disabled===!0))}),ln(),qt(!0);var E=NYA(),u=W(E);Po(u,s,"defaultItem",{},null);var h,w=CA(u,2);Ui(W(w),{get data(){return Nl}});var x,R=CA(w,2);jo(W(R),5,c,cr,(D,G)=>{var J=xYA(),z=W(J),K=W(z),O=j=>{Ui(j,{get data(){return l(G),oA(()=>l(G).icon)}})};GA(K,j=>{l(G),oA(()=>l(G).icon)&&j(O)});var V=CA(K);we(()=>{var j;gn(z,"title",(l(G),oA(()=>l(G).title))),z.disabled=(l(G),oA(()=>l(G).disabled)),jt(z,1,rI((l(G),oA(()=>l(G).className))),"svelte-11rxb2m"),pt(V," ".concat((l(G),(j=oA(()=>l(G).text))!==null&&j!==void 0?j:"")))}),ce("click",z,j=>l(G).onClick(j)),iA(D,J)}),we((D,G)=>{var J;gn(E,"title",g()),h=jt(w,1,"jse-open-dropdown svelte-11rxb2m",null,h,D),w.disabled=l(a),x=jt(R,1,"jse-dropdown-items svelte-11rxb2m",null,x,G),eg(R,"width: ".concat((J=I())!==null&&J!==void 0?J:"",";"))},[()=>({"jse-visible":l(C)}),()=>({"jse-visible":l(C)})],ZA),ce("click",w,function(){var D=l(C);setTimeout(()=>y(C,!D))}),ce("click",E,d),iA(r,E),mt()}(t,{get width(){return k(i()),oA(()=>i().width)},get items(){return l(A)},$$slots:{defaultItem:(r,s)=>{var a=FYA(),c=W(a),g=C=>{Ui(C,{get data(){return k(i()),oA(()=>i().main.icon)}})};GA(c,C=>{k(i()),oA(()=>i().main.icon)&&C(g)});var I=CA(c);we(C=>{var d;jt(a,1,C,"svelte-1idfykj"),gn(a,"title",(k(i()),oA(()=>i().main.title))),a.disabled=(k(i()),oA(()=>i().main.disabled||!1)),pt(I," ".concat((k(i()),(d=oA(()=>i().main.text))!==null&&d!==void 0?d:"")))},[()=>rI((k(Vg),k(n()),k(i()),oA(()=>Vg("jse-context-menu-button",n(),i().main.className))))],ZA),ce("click",a,C=>{o()(),i().main.onClick(C)}),iA(r,a)}}}),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-contextmenu.svelte-12z7bz1 { - box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - background: var(--jse-context-menu-background, #656565); - color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); -} -.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) { - display: flex; - flex-direction: row; - align-items: flex-start; - justify-content: stretch; -} -.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) div.jse-label:where(.svelte-12z7bz1) { - flex: 1; - white-space: nowrap; - padding: var(--jse-padding, 10px); - color: var(--jse-context-menu-color-disabled, #9d9d9d); - line-height: normal; -} -.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) div.jse-tip:where(.svelte-12z7bz1) { - flex: 1; - background: var(--jse-context-menu-tip-background, rgba(255, 255, 255, 0.2)); - color: var(--context-menu-tip-color, inherit); - margin: calc(0.5 * var(--jse-padding, 10px)); - padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); - font-size: 80%; - line-height: 1.3em; - display: flex; - flex-direction: row; - align-items: flex-start; - gap: var(--jse-padding, 10px); - border-radius: 3px; -} -.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) div.jse-tip:where(.svelte-12z7bz1) div.jse-tip-icon:where(.svelte-12z7bz1) { - padding-top: calc(0.5 * var(--jse-padding, 10px)); -} -.jse-contextmenu.svelte-12z7bz1 .jse-column:where(.svelte-12z7bz1) { - flex: 1; - display: flex; - flex-direction: column; - align-items: stretch; -} -.jse-contextmenu.svelte-12z7bz1 .jse-column:where(.svelte-12z7bz1):not(:last-child) { - border-right: 1px solid var(--jse-context-menu-separator-color, #7a7a7a); -} -.jse-contextmenu.svelte-12z7bz1 .jse-separator:where(.svelte-12z7bz1) { - width: 100%; - height: 1px; - background: var(--jse-context-menu-separator-color, #7a7a7a); -}`);var _YA=vA('
              '),GYA=vA('
              '),KYA=vA('
              '),UYA=vA('
              '),JYA=vA('
              '),YYA=vA('
              '),TYA=vA('
              '),HYA=vA('');function ccA(t,e){ft(e,!1);var A=M(e,"items",9),i=M(e,"onRequestClose",9),n=M(e,"tip",9),o=$(void 0,!0);ws(()=>{var C=Array.from(l(o).querySelectorAll("button")).find(d=>!d.disabled);C&&C.focus()});var r={ArrowUp:"Up",ArrowDown:"Down",ArrowLeft:"Left",ArrowRight:"Right"};function s(C){return console.error("Unknown type of context menu item",C),"???"}qt(!0);var a=HYA(),c=W(a);jo(c,1,A,cr,(C,d)=>{var B=_o(),E=Mt(B),u=w=>{hG(w,{get item(){return l(d)},get onRequestClose(){return i()}})},h=(w,x)=>{var R=G=>{fG(G,{get item(){return l(d)},get onRequestClose(){return i()}})},D=(G,J)=>{var z=O=>{var V=JYA();jo(V,5,()=>(l(d),oA(()=>l(d).items)),cr,(j,dA)=>{var fA=_o(),EA=Mt(fA),IA=nA=>{hG(nA,{get item(){return l(dA)},get onRequestClose(){return i()}})},SA=(nA,lA)=>{var wA=ie=>{fG(ie,{get item(){return l(dA)},get onRequestClose(){return i()}})},VA=(ie,UA)=>{var BA=Xe=>{var We=KYA();jo(We,5,()=>(l(dA),oA(()=>l(dA).items)),cr,(KA,tA)=>{var OA=_o(),gA=Mt(OA),zA=Me=>{hG(Me,{className:"left",get item(){return l(tA)},get onRequestClose(){return i()}})},xA=(Me,LA)=>{var cA=ct=>{fG(ct,{className:"left",get item(){return l(tA)},get onRequestClose(){return i()}})},Gt=(ct,oe)=>{var Dt=Re=>{iA(Re,_YA())},_e=(Re,St)=>{var Se=L=>{var T=GYA(),P=W(T);we(()=>pt(P,(l(tA),oA(()=>l(tA).text)))),iA(L,T)},Wt=L=>{var T=jr();we(P=>pt(T,P),[()=>(l(tA),oA(()=>s(l(tA))))],ZA),iA(L,T)};GA(Re,L=>{k(LrA),l(tA),oA(()=>LrA(l(tA)))?L(Se):L(Wt,!1)},St)};GA(ct,Re=>{k(j1),l(tA),oA(()=>j1(l(tA)))?Re(Dt):Re(_e,!1)},oe)};GA(Me,ct=>{k(cQ),l(tA),oA(()=>cQ(l(tA)))?ct(cA):ct(Gt,!1)},LA)};GA(gA,Me=>{k(W0),l(tA),oA(()=>W0(l(tA)))?Me(zA):Me(xA,!1)}),iA(KA,OA)}),iA(Xe,We)},JA=(Xe,We)=>{var KA=OA=>{iA(OA,UYA())},tA=OA=>{var gA=jr();we(zA=>pt(gA,zA),[()=>(l(dA),oA(()=>s(l(dA))))],ZA),iA(OA,gA)};GA(Xe,OA=>{k(j1),l(dA),oA(()=>j1(l(dA)))?OA(KA):OA(tA,!1)},We)};GA(ie,Xe=>{k(NrA),l(dA),oA(()=>NrA(l(dA)))?Xe(BA):Xe(JA,!1)},UA)};GA(nA,ie=>{k(cQ),l(dA),oA(()=>cQ(l(dA)))?ie(wA):ie(VA,!1)},lA)};GA(EA,nA=>{k(W0),l(dA),oA(()=>W0(l(dA)))?nA(IA):nA(SA,!1)}),iA(j,fA)}),iA(O,V)},K=(O,V)=>{var j=fA=>{iA(fA,YYA())},dA=fA=>{var EA=jr();we(IA=>pt(EA,IA),[()=>(l(d),oA(()=>s(l(d))))],ZA),iA(fA,EA)};GA(O,fA=>{k(j1),l(d),oA(()=>j1(l(d)))?fA(j):fA(dA,!1)},V)};GA(G,O=>{k(xrA),l(d),oA(()=>xrA(l(d)))?O(z):O(K,!1)},J)};GA(w,G=>{k(cQ),l(d),oA(()=>cQ(l(d)))?G(R):G(D,!1)},x)};GA(E,w=>{k(W0),l(d),oA(()=>W0(l(d)))?w(u):w(h,!1)}),iA(C,B)});var g=CA(c,2),I=C=>{var d=TYA(),B=W(d),E=W(B);Ui(W(E),{get data(){return gX}});var u=W(CA(E,2));we(()=>pt(u,n())),iA(C,d)};GA(g,C=>{n()&&C(I)}),Qo(a,C=>y(o,C),()=>l(o)),ce("keydown",a,function(C){var d=s2(C),B=r[d];if(B&&C.target){C.preventDefault();var E=aKA({allElements:Array.from(l(o).querySelectorAll("button:not([disabled])")),currentElement:C.target,direction:B,hasPrio:u=>u.getAttribute("data-type")!=="jse-open-dropdown"});E&&E.focus()}}),iA(t,a),mt()}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-value.jse-string.svelte-6ttr41 { - color: var(--jse-value-color-string, #008000); -} -.jse-value.jse-object.svelte-6ttr41, .jse-value.jse-array.svelte-6ttr41 { - min-width: 16px; - color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); -} -.jse-value.jse-number.svelte-6ttr41 { - color: var(--jse-value-color-number, #ee422e); -} -.jse-value.jse-boolean.svelte-6ttr41 { - color: var(--jse-value-color-boolean, #ff8c00); -} -.jse-value.jse-null.svelte-6ttr41 { - color: var(--jse-value-color-null, #004ed0); -} -.jse-value.jse-invalid.svelte-6ttr41 { - color: var(--jse-text-color, #4d4d4d); -} -.jse-value.jse-url.svelte-6ttr41 { - color: var(--jse-value-color-url, #008000); - text-decoration: underline; -} - -.jse-enum-value.svelte-6ttr41 { - background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); - border: none; - padding: 0; - font-family: inherit; - font-size: inherit; - cursor: pointer; - outline: none; -} -.jse-enum-value.jse-selected.svelte-6ttr41 { - background: var(--jse-selection-background-color, #d3d3d3); - color: inherit; -} -.jse-enum-value.jse-value.svelte-6ttr41:focus { - color: var(--jse-text-color, #4d4d4d); -}`);var dwe=vA(""),Bwe=vA("");var py,Dy;function wy(t,e){return py||(Dy=new WeakMap,py=new ResizeObserver(A=>{for(var i of A){var n=Dy.get(i.target);n&&n(i.target)}})),Dy.set(t,e),py.observe(t),{destroy:()=>{Dy.delete(t),py.unobserve(t)}}}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-tree-mode.svelte-vrx1dr { - flex: 1; - display: flex; - flex-direction: column; - position: relative; - background: var(--jse-background-color, #fff); - min-width: 0; - min-height: 0; - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - color: var(--jse-text-color, #4d4d4d); - line-height: var(--jse-line-height, calc(1em + 4px)); -} -.jse-tree-mode.svelte-vrx1dr .jse-hidden-input-label:where(.svelte-vrx1dr) .jse-hidden-input:where(.svelte-vrx1dr) { - position: fixed; - top: -10px; - left: -10px; - width: 1px; - height: 1px; - padding: 0; - border: 0; - outline: none; -} -.jse-tree-mode.no-main-menu.svelte-vrx1dr { - border-top: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-tree-mode.svelte-vrx1dr .jse-search-box-container:where(.svelte-vrx1dr) { - position: relative; - height: 0; - top: var(--jse-padding, 10px); - margin-right: calc(var(--jse-padding, 10px) + 20px); - margin-left: var(--jse-padding, 10px); - text-align: right; - z-index: 3; -} -.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) { - flex: 1; - overflow: auto; - position: relative; - padding: 2px; - display: flex; - flex-direction: column; - border-left: var(--jse-main-border, 1px solid #d7d7d7); - border-right: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr):last-child { - border-bottom: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) .jse-loading-space:where(.svelte-vrx1dr) { - flex: 1; -} -.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) .jse-loading:where(.svelte-vrx1dr) { - flex: 2; - text-align: center; - color: var(--jse-panel-color-readonly, #b2b2b2); - box-sizing: border-box; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); -} -.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) .jse-search-box-background:where(.svelte-vrx1dr) { - border: 50px solid var(--jse-modal-background, #f5f5f5); - margin: -2px; - margin-bottom: 2px; - display: inline-block; -}`);var OYA=vA(" ",1),zYA=vA('
              '),PYA=vA('
              ',1),jYA=vA(' ',1),qYA=vA('
              loading...
              '),VYA=vA('
              ',1);function $G(t,e){ft(e,!1);var A=$(void 0,!0),i=xr("jsoneditor:TreeMode"),n=typeof window>"u";i("isSSR:",n);var o=h1(),r=h1(),{openAbsolutePopup:s,closeAbsolutePopup:a}=cI("absolute-popup"),c=$(void 0,!0),g=$(void 0,!0),I=$(void 0,!0),C=!1,d=qaA(),B=M(e,"readOnly",9),E=M(e,"externalContent",9),u=M(e,"externalSelection",9),h=M(e,"history",9),w=M(e,"truncateTextSize",9),x=M(e,"mainMenuBar",9),R=M(e,"navigationBar",9),D=M(e,"escapeControlCharacters",9),G=M(e,"escapeUnicodeCharacters",9),J=M(e,"parser",9),z=M(e,"parseMemoizeOne",9),K=M(e,"validator",9),O=M(e,"validationParser",9),V=M(e,"pathParser",9),j=M(e,"indentation",9),dA=M(e,"onError",9),fA=M(e,"onChange",9),EA=M(e,"onChangeMode",9),IA=M(e,"onSelect",9),SA=M(e,"onUndo",9),nA=M(e,"onRedo",9),lA=M(e,"onRenderValue",9),wA=M(e,"onRenderMenu",9),VA=M(e,"onRenderContextMenu",9),ie=M(e,"onClassName",9),UA=M(e,"onFocus",9),BA=M(e,"onBlur",9),JA=M(e,"onSortModal",9),Xe=M(e,"onTransformModal",9),We=M(e,"onJSONEditorModal",9),KA=!1,tA=$(!1,!0),OA=$(void 0,!0);kK({onMount:ws,onDestroy:ig,getWindow:()=>Qf(l(I)),hasFocus:()=>KA&&document.hasFocus()||CK(l(I)),onFocus:()=>{C=!0,UA()&&UA()()},onBlur:()=>{C=!1,BA()&&BA()()}});var gA=$(void 0,!0),zA=$(void 0,!0),xA=void 0,Me=!1,LA=$(GG({json:l(gA)}),!0),cA=$(tf(u())?u():void 0,!0);function Gt(H){y(cA,H)}ws(()=>{if(l(cA)){var H=nt(l(cA));y(LA,Yg(l(gA),l(LA),H,by)),setTimeout(()=>re(H))}});var ct,oe=$(void 0,!0),Dt=$(void 0,!0),_e=$(void 0,!0),Re=$(void 0,!0),St=$(!1,!0),Se=$(!1,!0);function Wt(H){y(Re,(ct=H)?FaA(l(gA),ct.items):void 0)}function L(H,rA){return T.apply(this,arguments)}function T(){return(T=_t(function*(H,rA){y(LA,Yg(l(gA),l(LA),H,by));var HA=Ae(rA);yield yt(H,{element:HA})})).apply(this,arguments)}function P(){y(St,!1),y(Se,!1),Ot()}function X(H){i("select validation error",H),y(cA,vi(H.path)),yt(H.path)}function kA(H){var rA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:KG;i("expand"),y(LA,Yg(l(gA),l(LA),H,rA))}function le(H,rA){y(LA,KrA(l(gA),l(LA),H,rA)),l(cA)&&function(HA,De){return n0(nt(HA),De)&&(nt(HA).length>De.length||yr(HA))}(l(cA),H)&&y(cA,void 0)}var Ee=$(!1,!0),FA=$([],!0),MA=$(void 0,!0),dt=hE(VaA);function $e(H,rA,HA,De){fQ(()=>{var fe;try{fe=dt(H,rA,HA,De)}catch(Ie){fe=[{path:[],message:"Failed to validate: "+Ie.message,severity:Og.warning}]}ri(fe,l(FA))||(i("validationErrors changed:",fe),y(FA,fe),y(MA,function(Ie,Bt){var At;return Bt.forEach(ui=>{At=gsA(Ie,At,ui.path,(Cn,xi)=>pe(pe({},xi),{},{validationError:ui}))}),Bt.forEach(ui=>{for(var Cn=ui.path;Cn.length>0;)Cn=yi(Cn),At=gsA(Ie,At,Cn,(xi,Yn)=>Yn.validationError?Yn:pe(pe({},Yn),{},{validationError:{isChildError:!0,path:Cn,message:"Contains invalid data",severity:Og.warning}}))}),At}(H,l(FA))))},fe=>i("validationErrors updated in ".concat(fe," ms")))}function XA(){return i("validate"),xA?{parseError:xA,isRepairable:!1}:($e(l(gA),K(),J(),O()),Gi(l(FA))?void 0:{validationErrors:l(FA)})}function ot(){return l(gA)}function Si(){return l(LA)}function Zi(){return l(cA)}function Oi(H){i("applyExternalContent",{updatedContent:H}),X3(H)?function(rA){if(rA!==void 0){var HA=!ri(l(gA),rA);if(i("update external json",{isChanged:HA,currentlyText:l(gA)===void 0}),!!HA){var De={documentState:l(LA),selection:l(cA),json:l(gA),text:l(zA),textIsRepaired:l(Ee)};y(gA,rA),y(LA,uc(rA,l(LA))),Le(l(gA)),y(zA,void 0),y(Ee,!1),xA=void 0,zi(l(gA)),fi(De)}}}(H.json):W3(H)&&function(rA){if(!(rA===void 0||X3(E()))){var HA=rA!==l(zA);if(i("update external text",{isChanged:HA}),!!HA){var De={documentState:l(LA),selection:l(cA),json:l(gA),text:l(zA),textIsRepaired:l(Ee)};try{y(gA,z()(rA)),y(LA,uc(l(gA),l(LA))),Le(l(gA)),y(zA,rA),y(Ee,!1),xA=void 0}catch(fe){try{y(gA,z()(Uc(rA))),y(LA,uc(l(gA),l(LA))),Le(l(gA)),y(zA,rA),y(Ee,!0),xA=void 0,zi(l(gA))}catch{y(gA,void 0),y(LA,void 0),y(zA,E().text),y(Ee,!1),xA=l(zA)!==void 0&&l(zA)!==""?MQ(l(zA),fe.message||String(fe)):void 0}}zi(l(gA)),fi(De)}}}(H.text)}function Le(H){Me||(Me=!0,y(LA,id(H,l(LA),[])))}function zi(H){l(cA)&&(As(H,WC(l(cA)))&&As(H,nt(l(cA)))||(i("clearing selection: path does not exist anymore",l(cA)),y(cA,gQ(H,l(LA)))))}function fi(H){if(H.json!==void 0||H.text!==void 0){var rA=l(gA)!==void 0&&H.json!==void 0;h().add({type:"tree",undo:{patch:rA?[{op:"replace",path:"",value:H.json}]:void 0,json:H.json,text:H.text,documentState:H.documentState,textIsRepaired:H.textIsRepaired,selection:e0(H.selection),sortedColumn:void 0},redo:{patch:rA?[{op:"replace",path:"",value:l(gA)}]:void 0,json:l(gA),text:l(zA),documentState:l(LA),textIsRepaired:l(Ee),selection:e0(l(cA)),sortedColumn:void 0}})}}function Ht(H,rA){var HA;if(i("patch",H,rA),l(gA)===void 0)throw new Error("Cannot apply patch: no JSON");var De=l(gA),fe={json:void 0,text:l(zA),documentState:l(LA),selection:e0(l(cA)),textIsRepaired:l(Ee),sortedColumn:void 0},Ie=NaA(l(gA),H),Bt=paA(l(gA),l(LA),H),At=(HA=SQ(l(gA),H))!==null&&HA!==void 0?HA:l(cA),ui=typeof rA=="function"?rA(Bt.json,Bt.documentState,At):void 0;return y(gA,ui?.json!==void 0?ui.json:Bt.json),y(LA,ui?.state!==void 0?ui.state:Bt.documentState),y(cA,ui?.selection!==void 0?ui.selection:At),y(zA,void 0),y(Ee,!1),y(Dt,void 0),y(_e,void 0),xA=void 0,zi(l(gA)),h().add({type:"tree",undo:pe({patch:Ie},fe),redo:{patch:H,json:void 0,text:l(zA),documentState:l(LA),selection:e0(l(cA)),sortedColumn:void 0,textIsRepaired:l(Ee)}}),{json:l(gA),previousJson:De,undo:Ie,redo:H}}function Rt(){!B()&&l(cA)&&y(cA,yK(nt(l(cA))))}function Bi(){if(!B()&&l(cA)){var H=nt(l(cA)),rA=Ye(l(gA),H);Fo(rA)?function(HA,De){i("openJSONEditorModal",{path:HA,value:De}),KA=!0,We()({content:{json:De},path:HA,onPatch:l(m).onPatch,onClose:()=>{KA=!1,setTimeout(Ot)}})}(H,rA):y(cA,Yy(H))}}function Mi(){if(!B()&&Vi(l(cA))){var H=nt(l(cA)),rA=Ct(H),HA=Ye(l(gA),H),De=!t0(l(gA),l(LA),H),fe=De?String(HA):GQ(String(HA),J());i("handleToggleEnforceString",{enforceString:De,value:HA,updatedValue:fe}),ue([{op:"replace",path:rA,value:fe}],(Ie,Bt)=>({state:o7(l(gA),Bt,H,{type:"value",enforceString:De})}))}}function Jt(){return l(Ee)&&l(gA)!==void 0&&aA(l(gA)),l(gA)!==void 0?{json:l(gA)}:{text:l(zA)||""}}function b(){return et.apply(this,arguments)}function et(){return et=_t(function*(){var H=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];yield icA({json:l(gA),selection:l(cA),indentation:H?j():void 0,readOnly:B(),parser:J(),onPatch:ue})}),et.apply(this,arguments)}function ai(){return Wi.apply(this,arguments)}function Wi(){return Wi=_t(function*(){var H=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];l(gA)!==void 0&&(yield ncA({json:l(gA),selection:l(cA),indentation:H?j():void 0,parser:J()}))}),Wi.apply(this,arguments)}function Xi(H){var rA;H.preventDefault(),vn((rA=H.clipboardData)===null||rA===void 0?void 0:rA.getData("text/plain"))}function xn(){return Mo.apply(this,arguments)}function Mo(){return(Mo=_t(function*(){try{vn(yield navigator.clipboard.readText())}catch(H){console.error(H),y(tA,!0)}})).apply(this,arguments)}function vn(H){H!==void 0&&ocA({clipboardText:H,json:l(gA),selection:l(cA),readOnly:B(),parser:J(),onPatch:ue,onChangeText:DA,onPasteMultilineText:sn,openRepairModal:In})}function In(H,rA){y(OA,{text:H,onParse:HA=>Ef(HA,De=>Bf(De,J())),onRepair:aaA,onApply:rA,onClose:Ot})}function qo(){rcA({json:l(gA),text:l(zA),selection:l(cA),keepSelection:!1,readOnly:B(),onChange:fA(),onPatch:ue})}function Vo(){!B()&&l(gA)!==void 0&&l(cA)&&uQ&&!Gi(nt(l(cA)))&&(i("duplicate",{selection:l(cA)}),ue(SaA(l(gA),sI(l(gA),l(cA)))))}function uo(){B()||!l(cA)||!Gn(l(cA))&&!Vi(l(cA))||Gi(nt(l(cA)))||(i("extract",{selection:l(cA)}),ue(RaA(l(gA),l(cA)),(H,rA)=>{if(Fo(H))return{state:lG(H,rA,[])}}))}function Qn(H){Zy({insertType:H,selectInside:!0,initialValue:void 0,json:l(gA),selection:l(cA),readOnly:B(),parser:J(),onPatch:ue,onReplaceJson:aA})}function Kn(H){Lr(l(cA))&&y(cA,vi(l(cA).path)),l(cA)||y(cA,gQ(l(gA),l(LA))),Qn(H)}function $A(H){if(!B()&&l(cA))if(Qy(l(cA)))try{var rA=WC(l(cA)),HA=Ye(l(gA),rA),De=function(Ie,Bt,At){if(Bt==="array"){if(Array.isArray(Ie))return Ie;if(nn(Ie))return wrA(Ie);if(typeof Ie=="string")try{var ui=At.parse(Ie);if(Array.isArray(ui))return ui;if(nn(ui))return wrA(ui)}catch{return[Ie]}return[Ie]}if(Bt==="object"){if(Array.isArray(Ie))return DrA(Ie);if(nn(Ie))return Ie;if(typeof Ie=="string")try{var Cn=At.parse(Ie);if(nn(Cn))return Cn;if(Array.isArray(Cn))return DrA(Cn)}catch{return{value:Ie}}return{value:Ie}}if(Bt==="value")return Fo(Ie)?At.stringify(Ie):Ie;throw new Error("Cannot convert ".concat(gK(Ie,At)," to ").concat(Bt))}(HA,H,J());if(De===HA)return;var fe=[{op:"replace",path:Ct(rA),value:De}];i("handleConvert",{selection:l(cA),path:rA,type:H,operations:fe}),ue(fe,(Ie,Bt)=>({state:l(cA)?id(Ie,Bt,nt(l(cA))):l(LA)}))}catch(Ie){dA()(Ie)}else dA()(new Error("Cannot convert current selection to ".concat(H)))}function Ei(){if(l(cA)){var H=TrA(l(gA),l(LA),l(cA),!1),rA=yi(nt(l(cA)));H&&!Gi(nt(H))&&ri(rA,yi(nt(H)))?y(cA,o2(nt(H))):y(cA,c2(rA)),i("insert before",{selection:l(cA),selectionBefore:H,parentPath:rA}),to(),bt()}}function Ri(){if(l(cA)){var H=tI(l(gA),l(cA));i("insert after",H),y(cA,o2(H)),to(),bt()}}function un(H){return Un.apply(this,arguments)}function Un(){return(Un=_t(function*(H){yield scA({char:H,selectInside:!0,json:l(gA),selection:l(cA),readOnly:B(),parser:J(),onPatch:ue,onReplaceJson:aA,onSelect:Gt})})).apply(this,arguments)}function Zo(){if(!B()&&h().canUndo){var H=h().undo();if(Uy(H)){var rA={json:l(gA),text:l(zA)};y(gA,H.undo.patch?Ma(l(gA),H.undo.patch):H.undo.json),y(LA,H.undo.documentState),y(cA,H.undo.selection),y(zA,H.undo.text),y(Ee,H.undo.textIsRepaired),xA=void 0,i("undo",{item:H,json:l(gA),documentState:l(LA),selection:l(cA)}),xe(rA,H.undo.patch&&H.redo.patch?{json:l(gA),previousJson:rA.json,redo:H.undo.patch,undo:H.redo.patch}:void 0),Ot(),l(cA)&&yt(nt(l(cA)),{scrollToWhenVisible:!1})}else SA()(H)}}function Ci(){if(!B()&&h().canRedo){var H=h().redo();if(Uy(H)){var rA={json:l(gA),text:l(zA)};y(gA,H.redo.patch?Ma(l(gA),H.redo.patch):H.redo.json),y(LA,H.redo.documentState),y(cA,H.redo.selection),y(zA,H.redo.text),y(Ee,H.redo.textIsRepaired),xA=void 0,i("redo",{item:H,json:l(gA),documentState:l(LA),selection:l(cA)}),xe(rA,H.undo.patch&&H.redo.patch?{json:l(gA),previousJson:rA.json,redo:H.redo.patch,undo:H.undo.patch}:void 0),Ot(),l(cA)&&yt(nt(l(cA)),{scrollToWhenVisible:!1})}else nA()(H)}}function io(H){var rA;B()||l(gA)===void 0||(KA=!0,JA()({id:o,json:l(gA),rootPath:H,onSort:(rA=_t(function*(HA){var{operations:De}=HA;i("onSort",H,De),ue(De,(fe,Ie)=>({state:lG(fe,Ie,H),selection:vi(H)}))}),function(HA){return rA.apply(this,arguments)}),onClose:()=>{KA=!1,setTimeout(Ot)}}))}function Wo(){l(cA)&&io(OrA(l(gA),l(cA)))}function Xo(){io([])}function nr(H){if(l(gA)!==void 0){var{id:rA,onTransform:HA,onClose:De}=H,fe=H.rootPath||[];KA=!0,Xe()({id:rA||r,json:l(gA),rootPath:fe,onTransform:Ie=>{HA?HA({operations:Ie,json:l(gA),transformedJson:Ma(l(gA),Ie)}):(i("onTransform",fe,Ie),ue(Ie,(Bt,At)=>({state:lG(Bt,At,fe),selection:vi(fe)})))},onClose:()=>{KA=!1,setTimeout(Ot),De&&De()}})}}function on(){l(cA)&&nr({rootPath:OrA(l(gA),l(cA))})}function $i(){nr({rootPath:[]})}function yt(H){return hn.apply(this,arguments)}function hn(){return hn=_t(function*(H){var{scrollToWhenVisible:rA=!0,element:HA}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};y(LA,Yg(l(gA),l(LA),H,by));var De=HA??hA(H);if(i("scrollTo",{path:H,elem:De,refContents:l(c)}),!De||!l(c))return Promise.resolve();var fe=l(c).getBoundingClientRect(),Ie=De.getBoundingClientRect();if(!rA&&Ie.bottom>fe.top&&Ie.top{d(De,{container:l(c),offset:Bt,duration:300,callback:()=>At()})})}),hn.apply(this,arguments)}function hA(H){var rA,HA;return to(),(rA=(HA=l(c))===null||HA===void 0?void 0:HA.querySelector('div[data-path="'.concat(My(H),'"]')))!==null&&rA!==void 0?rA:void 0}function Ae(H){var rA,HA;return to(),(rA=(HA=l(c))===null||HA===void 0?void 0:HA.querySelector('span[data-search-result-index="'.concat(H,'"]')))!==null&&rA!==void 0?rA:void 0}function re(H){var rA=hA(H);if(rA&&l(c)){var HA=l(c).getBoundingClientRect(),De=rA.getBoundingClientRect(),fe=Fo(Ye(l(gA),H))?20:De.height;De.topHA.bottom-20&&d(rA,{container:l(c),offset:-(HA.height-fe-20),duration:0})}}function xe(H,rA){if(H.json!==void 0||H?.text!==void 0){if(l(zA)!==void 0){var HA,De={text:l(zA),json:void 0};(HA=fA())===null||HA===void 0||HA(De,H,{contentErrors:XA(),patchResult:rA})}else if(l(gA)!==void 0){var fe,Ie={text:void 0,json:l(gA)};(fe=fA())===null||fe===void 0||fe(Ie,H,{contentErrors:XA(),patchResult:rA})}}}function ue(H,rA){i("handlePatch",H,rA);var HA={json:l(gA),text:l(zA)},De=Ht(H,rA);return xe(HA,De),De}function aA(H,rA){var HA={json:l(gA),text:l(zA)},De={documentState:l(LA),selection:l(cA),json:l(gA),text:l(zA),textIsRepaired:l(Ee)},fe=Yg(l(gA),uc(H,l(LA)),[],z3),Ie=typeof rA=="function"?rA(H,fe,l(cA)):void 0;y(gA,Ie?.json!==void 0?Ie.json:H),y(LA,Ie?.state!==void 0?Ie.state:fe),y(cA,Ie?.selection!==void 0?Ie.selection:l(cA)),y(zA,void 0),y(Ee,!1),xA=void 0,zi(l(gA)),fi(De),xe(HA,void 0)}function DA(H,rA){i("handleChangeText");var HA={json:l(gA),text:l(zA)},De={documentState:l(LA),selection:l(cA),json:l(gA),text:l(zA),textIsRepaired:l(Ee)};try{y(gA,z()(H)),y(LA,Yg(l(gA),uc(l(gA),l(LA)),[],z3)),y(zA,void 0),y(Ee,!1),xA=void 0}catch(Ie){try{y(gA,z()(Uc(H))),y(LA,Yg(l(gA),uc(l(gA),l(LA)),[],z3)),y(zA,H),y(Ee,!0),xA=void 0}catch{y(gA,void 0),y(LA,GG({json:l(gA),expand:z3})),y(zA,H),y(Ee,!1),xA=l(zA)!==""?MQ(l(zA),Ie.message||String(Ie)):void 0}}if(typeof rA=="function"){var fe=rA(l(gA),l(LA),l(cA));y(gA,fe?.json!==void 0?fe.json:l(gA)),y(LA,fe?.state!==void 0?fe.state:l(LA)),y(cA,fe?.selection!==void 0?fe.selection:l(cA))}zi(l(gA)),fi(De),xe(HA,void 0)}function PA(H,rA){var HA=arguments.length>2&&arguments[2]!==void 0&&arguments[2];i("handleExpand",{path:H,expanded:rA,recursive:HA}),rA?kA(H,HA?wK:KG):le(H,HA),Ot()}function Je(){PA([],!0,!0)}function vt(){PA([],!1,!0)}function Yt(H){i("openFind",{findAndReplace:H}),y(St,!1),y(Se,!1),to(),y(St,!0),y(Se,H)}function rn(H,rA){i("handleExpandSection",H,rA),y(LA,function(HA,De,fe,Ie){return kQ(HA,De,fe,(Bt,At)=>{if(!Rr(At))return At;var ui=haA(At.visibleSections.concat(Ie));return pe(pe({},At),{},{visibleSections:ui})})}(l(gA),l(LA),H,rA))}function no(H){i("pasted json as text",H),y(Dt,H)}function sn(H){i("pasted multiline text",{pastedText:H}),y(_e,H)}function Ji(H){var rA,{anchor:HA,left:De,top:fe,width:Ie,height:Bt,offsetTop:At,offsetLeft:ui,showTip:Cn}=H,xi=function(kn){var{json:oo,documentState:An,selection:Lt,readOnly:Ti,onEditKey:xt,onEditValue:rt,onToggleEnforceString:Ai,onCut:ho,onCopy:Fr,onPaste:Tn,onRemove:ko,onDuplicate:qr,onExtract:g0,onInsertBefore:Ha,onInsert:ng,onConvert:Wg,onInsertAfter:og,onSort:Vr,onTransform:Zr}=kn,Oa=oo!==void 0,l0=!!Lt,za=!!Lt&&Gi(nt(Lt)),Uo=Lt?Ye(oo,nt(Lt)):void 0,Zn=Array.isArray(Uo)?"Edit array":nn(Uo)?"Edit object":"Edit value",$o=Oa&&(Gn(Lt)||Lr(Lt)||Vi(Lt)),Xg=Lt&&!za?Ye(oo,yi(nt(Lt))):void 0,gd=!Ti&&Oa&&Jy(Lt)&&!za&&!Array.isArray(Xg),ld=!Ti&&Oa&&Lt!==void 0&&Jy(Lt),jQ=ld&&!Fo(Uo),Id=!Ti&&$o,qQ=$o,hv=!Ti&&l0,fv=!Ti&&Oa&&$o&&!za,mv=!Ti&&Oa&&Lt!==void 0&&(Gn(Lt)||Vi(Lt))&&!za,$g=$o,BI=$g?"Convert to:":"Insert:",gr=!Ti&&(yr(Lt)&&Array.isArray(Uo)||Ya(Lt)&&Array.isArray(Xg)),sa=!Ti&&($g?Qy(Lt)&&!nn(Uo):l0),VQ=!Ti&&($g?Qy(Lt)&&!Array.isArray(Uo):l0),ZQ=!Ti&&($g?Qy(Lt)&&Fo(Uo):l0),EI=Lt!==void 0&&t0(oo,An,nt(Lt));function as(WQ){$o?WQ!=="structure"&&Wg(WQ):ng(WQ)}return[{type:"row",items:[{type:"button",onClick:()=>xt(),icon:EC,text:"Edit key",title:"Edit the key (Double-click on the key)",disabled:!gd},{type:"dropdown-button",main:{type:"button",onClick:()=>rt(),icon:EC,text:Zn,title:"Edit the value (Double-click on the value)",disabled:!ld},width:"11em",items:[{type:"button",icon:EC,text:Zn,title:"Edit the value (Double-click on the value)",onClick:()=>rt(),disabled:!ld},{type:"button",icon:EI?iL:rL,text:"Enforce string",title:"Enforce keeping the value as string when it contains a numeric value",onClick:()=>Ai(),disabled:!jQ}]}]},{type:"separator"},{type:"row",items:[{type:"dropdown-button",main:{type:"button",onClick:()=>ho(!0),icon:BC,text:"Cut",title:"Cut selected contents, formatted with indentation (Ctrl+X)",disabled:!Id},width:"10em",items:[{type:"button",icon:BC,text:"Cut formatted",title:"Cut selected contents, formatted with indentation (Ctrl+X)",onClick:()=>ho(!0),disabled:!Id},{type:"button",icon:BC,text:"Cut compacted",title:"Cut selected contents, without indentation (Ctrl+Shift+X)",onClick:()=>ho(!1),disabled:!Id}]},{type:"dropdown-button",main:{type:"button",onClick:()=>Fr(!0),icon:G0,text:"Copy",title:"Copy selected contents, formatted with indentation (Ctrl+C)",disabled:!qQ},width:"12em",items:[{type:"button",icon:G0,text:"Copy formatted",title:"Copy selected contents, formatted with indentation (Ctrl+C)",onClick:()=>Fr(!0),disabled:!qQ},{type:"button",icon:G0,text:"Copy compacted",title:"Copy selected contents, without indentation (Ctrl+Shift+C)",onClick:()=>Fr(!1),disabled:!qQ}]},{type:"button",onClick:()=>Tn(),icon:tL,text:"Paste",title:"Paste clipboard contents (Ctrl+V)",disabled:!hv}]},{type:"separator"},{type:"row",items:[{type:"column",items:[{type:"button",onClick:()=>qr(),icon:cL,text:"Duplicate",title:"Duplicate selected contents (Ctrl+D)",disabled:!fv},{type:"button",onClick:()=>g0(),icon:fX,text:"Extract",title:"Extract selected contents",disabled:!mv},{type:"button",onClick:()=>Vr(),icon:Q4,text:"Sort",title:"Sort array or object contents",disabled:Ti||!$o},{type:"button",onClick:()=>Zr(),icon:d4,text:"Transform",title:"Transform array or object contents (filter, sort, project)",disabled:Ti||!$o},{type:"button",onClick:()=>ko(),icon:_5,text:"Remove",title:"Remove selected contents (Delete)",disabled:Ti||!$o}]},{type:"column",items:[{type:"label",text:BI},{type:"button",onClick:()=>as("structure"),icon:$g?E4:QC,text:"Structure",title:BI+" structure like the first item in the array",disabled:!gr},{type:"button",onClick:()=>as("object"),icon:$g?E4:QC,text:"Object",title:BI+" object",disabled:!sa},{type:"button",onClick:()=>as("array"),icon:$g?E4:QC,text:"Array",title:BI+" array",disabled:!VQ},{type:"button",onClick:()=>as("value"),icon:$g?E4:QC,text:"Value",title:BI+" value",disabled:!ZQ}]}]},{type:"separator"},{type:"row",items:[{type:"button",onClick:()=>Ha(),icon:uX,text:"Insert before",title:"Select area before current entry to insert or paste contents",disabled:Ti||!$o||za},{type:"button",onClick:()=>og(),icon:dX,text:"Insert after",title:"Select area after current entry to insert or paste contents",disabled:Ti||!$o||za}]}]}({json:l(gA),documentState:l(LA),selection:l(cA),readOnly:B(),onEditKey:Rt,onEditValue:Bi,onToggleEnforceString:Mi,onCut:b,onCopy:ai,onPaste:xn,onRemove:qo,onDuplicate:Vo,onExtract:uo,onInsertBefore:Ei,onInsert:Kn,onInsertAfter:Ri,onConvert:$A,onSort:Wo,onTransform:on}),Yn=(rA=VA()(xi))!==null&&rA!==void 0?rA:xi;if(Yn!==!1){var Tt={left:De,top:fe,offsetTop:At,offsetLeft:ui,width:Ie,height:Bt,anchor:HA,closeOnOuterClick:!0,onClose:()=>{KA=!1,Ot()}};KA=!0;var bo=s(ccA,{tip:Cn?"Tip: you can open this context menu via right-click or with Ctrl+Q":void 0,items:Yn,onRequestClose:()=>a(bo)},Tt)}}function bt(H){if(!Sr(l(cA)))if(H&&(H.stopPropagation(),H.preventDefault()),H&&H.type==="contextmenu"&&H.target!==l(g))Ji({left:H.clientX,top:H.clientY,width:A2,height:$0,showTip:!1});else{var rA,HA=(rA=l(c))===null||rA===void 0?void 0:rA.querySelector(".jse-context-menu-pointer.jse-selected");if(HA)Ji({anchor:HA,offsetTop:2,width:A2,height:$0,showTip:!1});else{var De,fe=(De=l(c))===null||De===void 0?void 0:De.getBoundingClientRect();fe&&Ji({top:fe.top+2,left:fe.left+2,width:A2,height:$0,showTip:!1})}}}function Li(H){Ji({anchor:QaA(H.target,"BUTTON"),offsetTop:0,width:A2,height:$0,showTip:!0})}function Mn(){return Qt.apply(this,arguments)}function Qt(){return(Qt=_t(function*(){if(i("apply pasted json",l(Dt)),l(Dt)){var{onPasteAsJson:H}=l(Dt);y(Dt,void 0),H(),setTimeout(Ot)}})).apply(this,arguments)}function fn(){return Te.apply(this,arguments)}function Te(){return(Te=_t(function*(){i("apply pasted multiline text",l(_e)),l(_e)&&(vn(JSON.stringify(l(_e))),setTimeout(Ot))})).apply(this,arguments)}function Qi(){i("clear pasted json"),y(Dt,void 0),Ot()}function mi(){i("clear pasted multiline text"),y(_e,void 0),Ot()}function bn(){EA()(ir.text)}function Ko(H){y(cA,H),Ot(),yt(nt(H))}function Ot(){i("focus"),l(g)&&(l(g).focus(),l(g).select())}function Nr(H){return function(rA,HA,De){var fe=yi(De),Ie=[li(De)],Bt=Ye(rA,fe),At=Bt?gG(Bt,HA,Ie):void 0;return At?vi(fe.concat(At)):o2(De)}(l(gA),l(LA),H)}function Jn(H){l(A)&&l(A).onDrag(H)}function Q(){l(A)&&l(A).onDragEnd()}var m=$(void 0,!0);pA(()=>l(cA),()=>{var H;H=l(cA),ri(H,u())||(i("onSelect",H),IA()(H))}),pA(()=>(k(D()),k(G())),()=>{y(oe,lK({escapeControlCharacters:D(),escapeUnicodeCharacters:G()}))}),pA(()=>l(St),()=>{(function(H){l(c)&&H&&l(c).scrollTop===0&&(hc(c,l(c).style.overflowAnchor="none"),hc(c,l(c).scrollTop+=O3),setTimeout(()=>{l(c)&&hc(c,l(c).style.overflowAnchor="")}))})(l(St))}),pA(()=>k(E()),()=>{Oi(E())}),pA(()=>k(u()),()=>{(function(H){ri(l(cA),H)||(i("applyExternalSelection",{selection:l(cA),externalSelection:H}),tf(H)&&y(cA,H))})(u())}),pA(()=>(l(gA),k(K()),k(J()),k(O())),()=>{$e(l(gA),K(),J(),O())}),pA(()=>(l(c),csA),()=>{y(A,l(c)?csA(l(c)):void 0)}),pA(()=>(k(B()),k(w()),k(J()),l(oe),k(lA()),k(ie())),()=>{y(m,{mode:ir.tree,readOnly:B(),truncateTextSize:w(),parser:J(),normalization:l(oe),getJson:ot,getDocumentState:Si,getSelection:Zi,findElement:hA,findNextInside:Nr,focus:Ot,onPatch:ue,onInsert:Qn,onExpand:PA,onSelect:Gt,onFind:Yt,onExpandSection:rn,onPasteJson:no,onRenderValue:lA(),onContextMenu:Ji,onClassName:ie()||(()=>{}),onDrag:Jn,onDragEnd:Q})}),pA(()=>l(m),()=>{i("context changed",l(m))}),ln(),qt(!0);var v=VYA();ce("mousedown",i2,function(H){!KQ(H.target,rA=>rA===l(I))&&Sr(l(cA))&&(i("click outside the editor, exit edit mode"),y(cA,e0(l(cA))),C&&l(g)&&(l(g).focus(),l(g).blur()),i("blur (outside editor)"),l(g)&&l(g).blur())});var p,F=Mt(v),U=W(F),q=H=>{(function(rA,HA){ft(HA,!1);var De=$(void 0,!0),fe=$(void 0,!0),Ie=$(void 0,!0),Bt=M(HA,"json",9),At=M(HA,"selection",9),ui=M(HA,"readOnly",9),Cn=M(HA,"showSearch",13,!1),xi=M(HA,"history",9),Yn=M(HA,"onExpandAll",9),Tt=M(HA,"onCollapseAll",9),bo=M(HA,"onUndo",9),kn=M(HA,"onRedo",9),oo=M(HA,"onSort",9),An=M(HA,"onTransform",9),Lt=M(HA,"onContextMenu",9),Ti=M(HA,"onCopy",9),xt=M(HA,"onRenderMenu",9);function rt(){Cn(!Cn())}var Ai=$(void 0,!0),ho=$(void 0,!0),Fr=$(void 0,!0),Tn=$(void 0,!0);pA(()=>k(Bt()),()=>{y(De,Bt()!==void 0)}),pA(()=>(l(De),k(At()),Vi),()=>{y(fe,l(De)&&(Gn(At())||Lr(At())||Vi(At())))}),pA(()=>(k(Yn()),k(Bt())),()=>{y(Ai,{type:"button",icon:tYA,title:"Expand all",className:"jse-expand-all",onClick:Yn(),disabled:!Fo(Bt())})}),pA(()=>(k(Tt()),k(Bt())),()=>{y(ho,{type:"button",icon:iYA,title:"Collapse all",className:"jse-collapse-all",onClick:Tt(),disabled:!Fo(Bt())})}),pA(()=>k(Bt()),()=>{y(Fr,{type:"button",icon:u4,title:"Search (Ctrl+F)",className:"jse-search",onClick:rt,disabled:Bt()===void 0})}),pA(()=>(k(ui()),l(Ai),l(ho),k(oo()),k(Bt()),k(An()),l(Fr),k(Lt()),k(bo()),k(xi()),k(kn()),k(Ti()),l(fe)),()=>{y(Tn,ui()?[l(Ai),l(ho),{type:"separator"},{type:"button",icon:G0,title:"Copy (Ctrl+C)",className:"jse-copy",onClick:Ti(),disabled:!l(fe)},{type:"separator"},l(Fr),{type:"space"}]:[l(Ai),l(ho),{type:"separator"},{type:"button",icon:Q4,title:"Sort",className:"jse-sort",onClick:oo(),disabled:ui()||Bt()===void 0},{type:"button",icon:d4,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:An(),disabled:ui()||Bt()===void 0},l(Fr),{type:"button",icon:sL,title:EK,className:"jse-contextmenu",onClick:Lt()},{type:"separator"},{type:"button",icon:K5,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:bo(),disabled:!xi().canUndo},{type:"button",icon:G5,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:kn(),disabled:!xi().canRedo},{type:"space"}])}),pA(()=>(k(xt()),l(Tn)),()=>{y(Ie,xt()(l(Tn))||l(Tn))}),ln(),qt(!0),l7(rA,{get items(){return l(Ie)}}),mt()})(H,{get json(){return l(gA)},get selection(){return l(cA)},get readOnly(){return B()},get history(){return h()},onExpandAll:Je,onCollapseAll:vt,onUndo:Zo,onRedo:Ci,onSort:Xo,onTransform:$i,onContextMenu:Li,onCopy:ai,get onRenderMenu(){return wA()},get showSearch(){return l(St)},set showSearch(rA){y(St,rA)},$$legacy:!0})};GA(U,H=>{x()&&H(q)});var Z=CA(U,2),RA=H=>{pYA(H,{get json(){return l(gA)},get selection(){return l(cA)},onSelect:Ko,get onError(){return dA()},get pathParser(){return V()}})};GA(Z,H=>{R()&&H(RA)});var ee=CA(Z,2),ne=H=>{var rA=jYA(),HA=Mt(rA),De=W(HA);De.readOnly=!0,Qo(De,At=>y(g,At),()=>l(g));var fe=CA(HA,2),Ie=At=>{var ui=_o(),Cn=Mt(ui),xi=Tt=>{(function(bo,kn){ft(kn,!0);var oo=cYA();oo.__click=[sYA,kn];var An=CA(W(oo),2),Lt=CA(W(An),2),Ti=xt=>{var rt=aYA(),Ai=CA(Mt(rt),2);gn(Ai,"title","Create an empty JSON object (press '{')"),Ai.__click=[oYA,kn];var ho=CA(Ai,2);gn(ho,"title","Create an empty JSON array (press '[')"),ho.__click=[rYA,kn],iA(xt,rt)};GA(Lt,xt=>{kn.readOnly||xt(Ti)}),iA(bo,oo),mt()})(Tt,{get readOnly(){return B()},onCreateObject:()=>{Ot(),un("{")},onCreateArray:()=>{Ot(),un("[")},onClick:()=>{Ot()}})},Yn=Tt=>{var bo=OYA(),kn=Mt(bo),oo=ZA(()=>B()?[]:[{icon:B4,text:"Repair manually",title:'Open the document in "code" mode and repair it manually',onClick:bn}]);pc(kn,{type:"error",message:"The loaded JSON document is invalid and could not be repaired automatically.",get actions(){return l(oo)}}),acA(CA(kn,2),{get text(){return l(zA)},get json(){return l(gA)},get indentation(){return j()},get parser(){return J()}}),iA(Tt,bo)};GA(Cn,Tt=>{l(zA)===""||l(zA)===void 0?Tt(xi):Tt(Yn,!1)}),iA(At,ui)},Bt=At=>{var ui=PYA(),Cn=Mt(ui);AcA(W(Cn),{get json(){return l(gA)},get documentState(){return l(LA)},get parser(){return J()},get showSearch(){return l(St)},get showReplace(){return l(Se)},get readOnly(){return B()},columns:void 0,onSearch:Wt,onFocus:L,onPatch:ue,onClose:P});var xi=CA(Cn,2);gn(xi,"data-jsoneditor-scrollable-contents",!0);var Yn=W(xi),Tt=xt=>{iA(xt,zYA())};GA(Yn,xt=>{l(St)&&xt(Tt)}),jG(CA(Yn,2),{get value(){return l(gA)},pointer:"",get state(){return l(LA)},get validationErrors(){return l(MA)},get searchResults(){return l(Re)},get selection(){return l(cA)},get context(){return l(m)},get onDragSelectionStart(){return er}}),Qo(xi,xt=>y(c,xt),()=>l(c));var bo=CA(xi,2),kn=xt=>{var rt=ZA(()=>(l(Dt),oA(()=>"You pasted a JSON ".concat(Array.isArray(l(Dt).contents)?"array":"object"," as text")))),Ai=ZA(()=>[{icon:_0,text:"Paste as JSON instead",title:"Replace the value with the pasted JSON",onMouseDown:Mn},{text:"Leave as is",title:"Keep the JSON embedded in the value",onClick:Qi}]);pc(xt,{type:"info",get message(){return l(rt)},get actions(){return l(Ai)}})};GA(bo,xt=>{l(Dt)&&xt(kn)});var oo=CA(bo,2),An=xt=>{var rt=ZA(()=>[{icon:_0,text:"Paste as string instead",title:"Paste the clipboard data as a single string value instead of an array",onClick:fn},{text:"Leave as is",title:"Keep the pasted array",onClick:mi}]);pc(xt,{type:"info",message:"Multiline text was pasted as array",get actions(){return l(rt)}})};GA(oo,xt=>{l(_e)&&xt(An)});var Lt=CA(oo,2),Ti=xt=>{var rt=ZA(()=>B()?[]:[{icon:U5,text:"Ok",title:"Accept the repaired document",onClick:Jt},{icon:B4,text:"Repair manually instead",title:"Leave the document unchanged and repair it manually instead",onClick:bn}]);pc(xt,{type:"success",message:"The loaded JSON document was invalid but is successfully repaired.",get actions(){return l(rt)},onClose:Ot})};GA(Lt,xt=>{l(Ee)&&xt(Ti)}),SK(CA(Lt,2),{get validationErrors(){return l(FA)},selectError:X}),iA(At,ui)};GA(fe,At=>{l(gA)===void 0?At(Ie):At(Bt,!1)}),ce("paste",De,Xi),iA(H,rA)},Pe=H=>{iA(H,qYA())};GA(ee,H=>{n?H(Pe,!1):H(ne)}),Qo(F,H=>y(I,H),()=>l(I));var Oe=CA(F,2),ve=H=>{ZaA(H,{onClose:()=>y(tA,!1)})};GA(Oe,H=>{l(tA)&&H(ve)});var Ne=CA(Oe,2),Yi=H=>{WaA(H,AI(()=>l(OA),{onClose:()=>{var rA;(rA=l(OA))===null||rA===void 0||rA.onClose(),y(OA,void 0)}}))};return GA(Ne,H=>{l(OA)&&H(Yi)}),we(H=>p=jt(F,1,"jse-tree-mode svelte-vrx1dr",null,p,H),[()=>({"no-main-menu":!x()})],ZA),ce("keydown",F,function(H){var rA=s2(H),HA=H.shiftKey;if(i("keydown",{combo:rA,key:H.key}),rA==="Ctrl+X"&&(H.preventDefault(),b(!0)),rA==="Ctrl+Shift+X"&&(H.preventDefault(),b(!1)),rA==="Ctrl+C"&&(H.preventDefault(),ai(!0)),rA==="Ctrl+Shift+C"&&(H.preventDefault(),ai(!1)),rA==="Ctrl+D"&&(H.preventDefault(),Vo()),rA!=="Delete"&&rA!=="Backspace"||(H.preventDefault(),qo()),rA==="Insert"&&(H.preventDefault(),Qn("structure")),rA==="Ctrl+A"&&(H.preventDefault(),y(cA,vi([]))),rA==="Ctrl+Q"&&bt(H),rA==="ArrowUp"||rA==="Shift+ArrowUp"){H.preventDefault();var De=l(cA)?TrA(l(gA),l(LA),l(cA),HA)||l(cA):gQ(l(gA),l(LA));y(cA,De),re(nt(De))}if(rA==="ArrowDown"||rA==="Shift+ArrowDown"){H.preventDefault();var fe=l(cA)?function(xi,Yn,Tt){var bo=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(Tt){var kn=bo?nt(Tt):tI(xi,Tt),oo=Fo(Ye(xi,kn))?KrA(xi,Yn,kn,!0):Yn,An=gG(xi,Yn,kn),Lt=gG(xi,oo,kn);if(bo)return yr(Tt)?An!==void 0?Js(An,An):void 0:Ya(Tt)?Lt!==void 0?Js(Lt,Lt):void 0:Lt!==void 0?Js(WC(Tt),Lt):void 0;if(Ya(Tt))return Lt!==void 0?vi(Lt):void 0;if(yr(Tt)||Vi(Tt))return An!==void 0?vi(An):void 0;if(Lr(Tt)){if(An===void 0||An.length===0)return;var Ti=yi(An),xt=Ye(xi,Ti);return Array.isArray(xt)?vi(An):a2(An)}return Gn(Tt)?Lt!==void 0?vi(Lt):An!==void 0?vi(An):void 0:void 0}}(l(gA),l(LA),l(cA),HA)||l(cA):gQ(l(gA),l(LA));y(cA,fe),re(nt(fe))}if(rA==="ArrowLeft"||rA==="Shift+ArrowLeft"){H.preventDefault();var Ie=l(cA)?function(xi,Yn,Tt){var bo=arguments.length>3&&arguments[3]!==void 0&&arguments[3],kn=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(Tt){var{caret:oo,previous:An}=HrA(xi,Yn,Tt,kn);if(bo)return Gn(Tt)?void 0:Js(Tt.path,Tt.path);if(oo&&An)return UG(An);var Lt=yi(nt(Tt)),Ti=Ye(xi,Lt);return Vi(Tt)&&Array.isArray(Ti)?Js(Tt.path,Tt.path):Gn(Tt)&&!Array.isArray(Ti)?a2(Tt.focusPath):void 0}}(l(gA),l(LA),l(cA),HA,!B())||l(cA):gQ(l(gA),l(LA));y(cA,Ie),re(nt(Ie))}if(rA==="ArrowRight"||rA==="Shift+ArrowRight"){H.preventDefault();var Bt=l(cA)&&l(gA)!==void 0?function(xi,Yn,Tt){var bo=arguments.length>3&&arguments[3]!==void 0&&arguments[3],kn=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(Tt){var{caret:oo,next:An}=HrA(xi,Yn,Tt,kn);return bo?Gn(Tt)?void 0:Js(Tt.path,Tt.path):oo&&An?UG(An):Gn(Tt)?vi(Tt.focusPath):void 0}}(l(gA),l(LA),l(cA),HA,!B())||l(cA):gQ(l(gA),l(LA));y(cA,Bt),re(nt(Bt))}if(rA==="Enter"&&l(cA)){if(r7(l(cA))){var At=l(cA).focusPath,ui=Ye(l(gA),yi(At));Array.isArray(ui)&&(H.preventDefault(),y(cA,vi(At)))}Lr(l(cA))&&(H.preventDefault(),y(cA,pe(pe({},l(cA)),{},{edit:!0}))),Vi(l(cA))&&(H.preventDefault(),Fo(Ye(l(gA),l(cA).path))?PA(l(cA).path,!0):y(cA,pe(pe({},l(cA)),{},{edit:!0})))}if(rA.replace(/^Shift\+/,"").length===1&&l(cA))return H.preventDefault(),void un(H.key);if(rA==="Enter"&&(Ya(l(cA))||yr(l(cA))))return H.preventDefault(),void un("");if(rA==="Ctrl+Enter"&&Vi(l(cA))){var Cn=Ye(l(gA),l(cA).path);n7(Cn)&&window.open(String(Cn),"_blank")}rA==="Escape"&&l(cA)&&(H.preventDefault(),y(cA,void 0)),rA==="Ctrl+F"&&(H.preventDefault(),Yt(!1)),rA==="Ctrl+H"&&(H.preventDefault(),Yt(!0)),rA==="Ctrl+Z"&&(H.preventDefault(),Zo()),rA==="Ctrl+Shift+Z"&&(H.preventDefault(),Ci())}),ce("mousedown",F,function(H){i("handleMouseDown",H);var rA=H.target;EaA(rA,"BUTTON")||rA.isContentEditable||(Ot(),l(cA)||l(gA)!==void 0||l(zA)!==""&&l(zA)!==void 0||(i("createDefaultSelection"),y(cA,vi([]))))}),ce("contextmenu",F,bt),iA(t,v),Ft(e,"expand",kA),Ft(e,"collapse",le),Ft(e,"validate",XA),Ft(e,"getJson",ot),Ft(e,"patch",Ht),Ft(e,"acceptAutoRepair",Jt),Ft(e,"openTransformModal",nr),Ft(e,"scrollTo",yt),Ft(e,"findElement",hA),Ft(e,"findSearchResult",Ae),Ft(e,"focus",Ot),mt({expand:kA,collapse:le,validate:XA,getJson:ot,patch:Ht,acceptAutoRepair:Jt,openTransformModal:nr,scrollTo:yt,findElement:hA,findSearchResult:Ae,focus:Ot})}function gcA(t){return typeof(e=t)!="object"||e===null?t:new Proxy(t,{get:(A,i,n)=>gcA(Reflect.get(A,i,n)),set:()=>!1,deleteProperty:()=>!1});var e}var yy=xr("jsoneditor:History");function lcA(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=t.maxItems||1e3,A=[],i=0;function n(){return i0}function r(){return{canUndo:n(),canRedo:o(),items:()=>A.slice().reverse(),add:a,undo:g,redo:I,clear:c}}function s(){t.onChange&&t.onChange(r())}function a(C){yy("add",C),A=[C].concat(A.slice(i)).slice(0,e),i=0,s()}function c(){yy("clear"),A=[],i=0,s()}function g(){if(n()){var C=A[i];return i+=1,yy("undo",C),s(),C}}function I(){if(o())return yy("redo",A[i-=1]),s(),A[i]}return{get:r}}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-transform-modal-inner.svelte-rrrjnb { - flex: 1; - display: flex; - flex-direction: column; - min-width: 0; - min-height: 0; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) { - color: inherit; - flex: 1; - display: flex; - flex-direction: column; - padding: 0; - overflow: auto; - min-width: 0; - min-height: 0; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) { - display: flex; - flex-direction: row; - justify-content: flex-end; - padding-top: var(--jse-padding, 10px); -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) button.jse-primary:where(.svelte-rrrjnb) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); - color: var(--jse-button-primary-color, #fff); - padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); - border-radius: 3px; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) button.jse-primary:where(.svelte-rrrjnb):hover { - background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) button.jse-primary:where(.svelte-rrrjnb):disabled { - background: var(--jse-button-primary-background-disabled, #9d9d9d); -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) { - flex: 1; - display: flex; - gap: calc(2 * var(--jse-padding, 10px)); - min-height: 0; - box-sizing: border-box; - padding: 0 calc(2 * var(--jse-padding, 10px)) var(--jse-padding, 10px); -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) { - flex: 1; - display: flex; - flex-direction: column; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) p { - margin: var(--jse-padding, 10px) 0; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) p:first-child { - margin-top: 0; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) p:last-child { - margin-bottom: 0; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) code { - background: var(--jse-modal-code-background, rgba(0, 0, 0, 0.05)); - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .query-error:where(.svelte-rrrjnb) { - color: var(--jse-error-color, #ee5341); -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) textarea.jse-query:where(.svelte-rrrjnb) { - flex: 1; - outline: none; - resize: vertical; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) { - flex: 1; - display: flex; - flex-direction: column; - gap: calc(2 * var(--jse-padding, 10px)); -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-original-data:where(.svelte-rrrjnb) { - flex: 1; - display: flex; - flex-direction: column; - min-height: 0; - box-sizing: border-box; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-original-data.jse-hide:where(.svelte-rrrjnb) { - flex: none; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-preview-data:where(.svelte-rrrjnb) { - flex: 1; - display: flex; - flex-direction: column; - min-height: 0; - box-sizing: border-box; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents.jse-hide-original-data:where(.svelte-rrrjnb) { - flex-direction: column; - gap: 0; - margin-bottom: 0; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) { - padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)) calc(2 * var(--jse-padding, 10px)); -} -@media screen and (max-width: 1200px) { - .jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) { - flex-direction: column; - overflow: auto; - } - .jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) textarea.jse-query:where(.svelte-rrrjnb) { - min-height: 150px; - flex: none; - } - .jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-tree-mode { - height: 300px; - flex: none; - } -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-label:where(.svelte-rrrjnb) { - font-weight: bold; - display: block; - box-sizing: border-box; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-label:where(.svelte-rrrjnb) .jse-label-inner:where(.svelte-rrrjnb) { - margin-top: calc(2 * var(--jse-padding, 10px)); - margin-bottom: calc(0.5 * var(--jse-padding, 10px)); - box-sizing: border-box; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-label:where(.svelte-rrrjnb) .jse-label-inner:where(.svelte-rrrjnb) button:where(.svelte-rrrjnb) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - font-weight: bold; - padding: 0; -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-tree-mode { - flex: 1; - background: var(--jse-input-background-readonly, transparent); - box-shadow: none; - box-sizing: border-box; - --jse-main-border: var(--jse-input-border, 1px solid #d8dbdf); -} -.jse-transform-modal-inner.svelte-rrrjnb input:where(.svelte-rrrjnb), -.jse-transform-modal-inner.svelte-rrrjnb textarea:where(.svelte-rrrjnb) { - border: var(--jse-input-border, 1px solid #d8dbdf); - outline: none; - box-sizing: border-box; - padding: calc(0.5 * var(--jse-padding, 10px)); - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - color: inherit; - background: var(--jse-input-background, var(--jse-background-color, #fff)); -} -.jse-transform-modal-inner.svelte-rrrjnb input:where(.svelte-rrrjnb):focus, -.jse-transform-modal-inner.svelte-rrrjnb textarea:where(.svelte-rrrjnb):focus { - border: var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa))); -} -.jse-transform-modal-inner.svelte-rrrjnb input:where(.svelte-rrrjnb):read-only, -.jse-transform-modal-inner.svelte-rrrjnb textarea:where(.svelte-rrrjnb):read-only { - background: var(--jse-input-background-readonly, transparent); -} -.jse-transform-modal-inner.svelte-rrrjnb .jse-preview.jse-error:where(.svelte-rrrjnb) { - flex: 1; - background: var(--jse-input-background-readonly, transparent); - border: var(--jse-input-border, 1px solid #d8dbdf); - color: var(--jse-error-color, #ee5341); - padding: calc(0.5 * var(--jse-padding, 10px)); -} -.jse-transform-modal-inner.svelte-rrrjnb a { - color: var(--jse-a-color, #156fc5); -} -.jse-transform-modal-inner.svelte-rrrjnb a:hover { - color: var(--jse-a-color-highlight, #0f508d); -}`);var Y3=i7(()=>XKA),IQ=i7(()=>$KA),ZYA=vA('
              '),WYA=vA(" ",1),XYA=vA('
              '),$YA=vA('
              Language
              Path
              Query
              Preview
              ',1),ATA=vA('
              ');function eTA(t,e){var A,i,n;ft(e,!1);var o=xr("jsoneditor:TransformModal"),r=M(e,"id",25,()=>"transform-modal-"+QQ()),s=M(e,"json",9),a=M(e,"rootPath",25,()=>[]),c=M(e,"indentation",9),g=M(e,"truncateTextSize",9),I=M(e,"escapeControlCharacters",9),C=M(e,"escapeUnicodeCharacters",9),d=M(e,"parser",9),B=M(e,"parseMemoizeOne",9),E=M(e,"validationParser",9),u=M(e,"pathParser",9),h=M(e,"queryLanguages",9),w=M(e,"queryLanguageId",13),x=M(e,"onChangeQueryLanguage",9),R=M(e,"onRenderValue",9),D=M(e,"onRenderMenu",9),G=M(e,"onRenderContextMenu",9),J=M(e,"onClassName",9),z=M(e,"onTransform",9),K=M(e,"onClose",9),O=$(void 0,!0),V=$(lcA({onChange:LA=>y(V,LA)}).get(),!0),j=$(void 0,!0),dA=$(void 0,!0),fA=$(!1,!0),EA="".concat(r(),":").concat(Ct(a())),IA=(A=Y3()[EA])!==null&&A!==void 0?A:{},SA=$(IQ().showWizard!==!1,!0),nA=$(IQ().showOriginal!==!1,!0),lA=$((i=IA.queryOptions)!==null&&i!==void 0?i:{},!0),wA=$(w()===IA.queryLanguageId&&IA.query?IA.query:"",!0),VA=$((n=IA.isManual)!==null&&n!==void 0&&n,!0),ie=$(void 0,!0),UA=$(void 0,!0),BA=$({text:""},!0);function JA(LA){var cA;return(cA=h().find(Gt=>Gt.id===LA))!==null&&cA!==void 0?cA:h()[0]}function Xe(LA){try{y(lA,LA),y(wA,JA(w()).createQuery(l(j),LA)),y(ie,void 0),y(VA,!1),o("updateQueryByWizard",{queryOptions:l(lA),query:l(wA),isManual:l(VA)})}catch(cA){y(ie,String(cA))}}function We(LA){y(wA,LA.target.value),y(VA,!0),o("handleChangeQuery",{query:l(wA),isManual:l(VA)})}l(VA)||Xe(l(lA)),ws(()=>{var LA;(LA=l(O))===null||LA===void 0||LA.focus()});var KA=EE(function(LA,cA){if(LA===void 0)return y(BA,{text:""}),void y(UA,"Error: No JSON");if(cA.trim()!=="")try{o("previewTransform",{query:cA});var Gt=JA(w()).executeQuery(LA,cA,d());y(BA,{json:Gt}),y(UA,void 0)}catch(ct){y(BA,{text:""}),y(UA,String(ct))}else y(BA,{json:LA})},300);function tA(){if(l(j)===void 0)return y(BA,{text:""}),void y(UA,"Error: No JSON");try{o("handleTransform",{query:l(wA)});var LA=JA(w()).executeQuery(l(j),l(wA),d());z()([{op:"replace",path:Ct(a()),value:LA}]),K()()}catch(cA){console.error(cA),y(BA,{text:""}),y(UA,String(cA))}}function OA(){y(SA,!l(SA)),IQ(IQ().showWizard=l(SA))}function gA(){y(nA,!l(nA)),IQ(IQ().showOriginal=l(nA))}function zA(LA){LA.focus()}function xA(LA){o("handleChangeQueryLanguage",LA),w(LA),x()(LA),Xe(l(lA))}function Me(){l(fA)?y(fA,!l(fA)):K()()}pA(()=>(k(s()),k(a())),()=>{y(j,gcA(Ye(s(),a())))}),pA(()=>l(j),()=>{y(dA,l(j)?{json:l(j)}:{text:""})}),pA(()=>(l(j),l(wA)),()=>{KA(l(j),l(wA))}),pA(()=>(Y3(),l(lA),l(wA),k(w()),l(VA)),()=>{Y3(Y3()[EA]={queryOptions:l(lA),query:l(wA),queryLanguageId:w(),isManual:l(VA)}),o("store state in memory",EA,Y3()[EA])}),ln(),qt(!0),sf(t,{get onClose(){return K()},className:"jse-transform-modal",get fullscreen(){return l(fA)},children:(LA,cA)=>{var Gt=ATA();NG(W(Gt),{children:(ct,oe)=>{var Dt=$YA(),_e=Mt(Dt);(function(b,et){ft(et,!1);var ai,Wi=M(et,"queryLanguages",9),Xi=M(et,"queryLanguageId",9),xn=M(et,"fullscreen",13),Mo=M(et,"onChangeQueryLanguage",9),vn=M(et,"onClose",9),In=$(void 0,!0),{openAbsolutePopup:qo,closeAbsolutePopup:Vo}=cI("absolute-popup");function uo(){var Qn={queryLanguages:Wi(),queryLanguageId:Xi(),onChangeQueryLanguage:Kn=>{Vo(ai),Mo()(Kn)}};ai=qo(qUA,Qn,{offsetTop:-2,offsetLeft:0,anchor:l(In),closeOnOuterClick:!0})}qt(!0),qy(b,{title:"Transform",fullScreenButton:!0,get onClose(){return vn()},get fullscreen(){return xn()},set fullscreen(Qn){xn(Qn)},$$slots:{actions:(Qn,Kn)=>{var $A,Ei=WUA();Ui(W(Ei),{get data(){return mX}}),Qo(Ei,Ri=>y(In,Ri),()=>l(In)),we(Ri=>$A=jt(Ei,1,"jse-config svelte-1kpylsp",null,$A,Ri),[()=>({hide:Wi().length<=1})],ZA),ce("click",Ei,uo),iA(Qn,Ei)}},$$legacy:!0}),mt()})(_e,{get queryLanguages(){return h()},get queryLanguageId(){return w()},onChangeQueryLanguage:xA,get onClose(){return K()},get fullscreen(){return l(fA)},set fullscreen(b){y(fA,b)},$$legacy:!0});var Re=W(CA(_e,2)),St=W(Re),Se=CA(W(St),2);$sA(W(Se),()=>(k(w()),oA(()=>JA(w()).description)));var Wt=CA(Se,4),L=CA(Wt,2),T=W(L),P=W(T),X=W(P),kA=ZA(()=>l(SA)?Nl:uE);Ui(X,{get data(){return l(kA)}});var le=CA(L,2),Ee=b=>{var et=_o(),ai=Mt(et),Wi=xn=>{var Mo=WYA(),vn=Mt(Mo);zUA(vn,{get queryOptions(){return l(lA)},get json(){return l(j)},onChange:Xe});var In=CA(vn,2),qo=Vo=>{var uo=ZYA(),Qn=W(uo);we(()=>pt(Qn,l(ie))),iA(Vo,uo)};GA(In,Vo=>{l(ie)&&Vo(qo)}),iA(xn,Mo)},Xi=xn=>{iA(xn,jr("(Only available for arrays, not for objects)"))};GA(ai,xn=>{l(j),oA(()=>Array.isArray(l(j)))?xn(Wi):xn(Xi,!1)}),iA(b,et)};GA(le,b=>{l(SA)&&b(Ee)});var FA=CA(le,4);Qo(FA,b=>y(O,b),()=>l(O));var MA,dt,$e=CA(St,2),XA=W($e),ot=W(XA),Si=W(ot),Zi=W(Si),Oi=W(Zi),Le=ZA(()=>l(nA)?Nl:uE);Ui(Oi,{get data(){return l(Le)}});var zi=CA(ot,2),fi=b=>{$G(b,{get externalContent(){return l(dA)},externalSelection:void 0,get history(){return l(V)},readOnly:!0,get truncateTextSize(){return g()},mainMenuBar:!1,navigationBar:!1,get indentation(){return c()},get escapeControlCharacters(){return I()},get escapeUnicodeCharacters(){return C()},get parser(){return d()},get parseMemoizeOne(){return B()},get onRenderValue(){return R()},get onRenderMenu(){return D()},get onRenderContextMenu(){return G()},onError:oA(()=>console.error),get onChange(){return er},get onChangeMode(){return er},get onSelect(){return er},get onUndo(){return er},get onRedo(){return er},get onFocus(){return er},get onBlur(){return er},get onSortModal(){return er},get onTransformModal(){return er},get onJSONEditorModal(){return er},get onClassName(){return J()},validator:void 0,get validationParser(){return E()},get pathParser(){return u()}})};GA(zi,b=>{l(nA)&&b(fi)});var Ht=CA(XA,2),Rt=CA(W(Ht),2),Bi=b=>{$G(b,{get externalContent(){return l(BA)},externalSelection:void 0,get history(){return l(V)},readOnly:!0,get truncateTextSize(){return g()},mainMenuBar:!1,navigationBar:!1,get indentation(){return c()},get escapeControlCharacters(){return I()},get escapeUnicodeCharacters(){return C()},get parser(){return d()},get parseMemoizeOne(){return B()},get onRenderValue(){return R()},get onRenderMenu(){return D()},get onRenderContextMenu(){return G()},onError:oA(()=>console.error),get onChange(){return er},get onChangeMode(){return er},get onSelect(){return er},get onUndo(){return er},get onRedo(){return er},get onFocus(){return er},get onBlur(){return er},get onSortModal(){return er},get onTransformModal(){return er},get onJSONEditorModal(){return er},get onClassName(){return J()},validator:void 0,get validationParser(){return E()},get pathParser(){return u()}})},Mi=b=>{var et=XYA(),ai=W(et);we(()=>pt(ai,l(UA))),iA(b,et)};GA(Rt,b=>{l(UA)?b(Mi,!1):b(Bi)});var Jt=W(CA(Re,2));rs(()=>ce("click",Jt,tA)),Ts(Jt,b=>zA?.(b)),we((b,et,ai)=>{ed(Wt,b),ed(FA,l(wA)),MA=jt($e,1,"jse-data-contents svelte-rrrjnb",null,MA,et),dt=jt(XA,1,"jse-original-data svelte-rrrjnb",null,dt,ai),Jt.disabled=!!l(UA)},[()=>(k(Gi),k(a()),k(Ta),oA(()=>Gi(a())?"(document root)":Ta(a()))),()=>({"jse-hide-original-data":!l(nA)}),()=>({"jse-hide":!l(nA)})],ZA),ce("click",P,OA),ce("input",FA,We),ce("click",Zi,gA),iA(ct,Dt)},$$slots:{default:!0}}),Ts(Gt,(ct,oe)=>Vy?.(ct,oe),()=>Me),iA(LA,Gt)},$$slots:{default:!0}}),mt()}function $c(){}var tTA=0,Pr=class{constructor(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.id=tTA++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=cf.match(e)),A=>{var i=e(A);return i===void 0?null:[this,i]}}};Pr.closedBy=new Pr({deserialize:t=>t.split(" ")}),Pr.openedBy=new Pr({deserialize:t=>t.split(" ")}),Pr.group=new Pr({deserialize:t=>t.split(" ")}),Pr.isolate=new Pr({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}}),Pr.contextHash=new Pr({perNode:!0}),Pr.lookAhead=new Pr({perNode:!0}),Pr.mounted=new Pr({perNode:!0});var dsA,iTA=Object.create(null),cf=class t{constructor(e,A,i){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;this.name=e,this.props=A,this.id=i,this.flags=n}static define(e){var A=e.props&&e.props.length?Object.create(null):iTA,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),n=new t(e.name||"",A,e.id,i);if(e.props){for(var o of e.props)if(Array.isArray(o)||(o=o(n)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");A[o[0].id]=o[1]}}return n}prop(e){return this.props[e.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;var A=this.prop(Pr.group);return!!A&&A.indexOf(e)>-1}return this.id==e}static match(e){var A=Object.create(null);for(var i in e)for(var n of i.split(" "))A[n]=e[i];return o=>{for(var r=o.prop(Pr.group),s=-1;s<(r?r.length:0);s++){var a=A[s<0?o.name:r[s]];if(a)return a}}}};cf.none=new cf("",Object.create(null),0,8),function(t){t[t.ExcludeBuffers=1]="ExcludeBuffers",t[t.IncludeAnonymous=2]="IncludeAnonymous",t[t.IgnoreMounts=4]="IgnoreMounts",t[t.IgnoreOverlays=8]="IgnoreOverlays"}(dsA||(dsA={})),new Pr({perNode:!0});Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-status-bar.svelte-1ulj7zd { - background: var(--jse-panel-background, #ebebeb); - color: var(--jse-panel-color-readonly, #b2b2b2); - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - margin: 0; - border-top: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); - border-left: var(--jse-main-border, 1px solid #d7d7d7); - border-right: var(--jse-main-border, 1px solid #d7d7d7); - display: flex; - gap: var(--jse-padding, 10px); -} -.jse-status-bar.svelte-1ulj7zd:last-child { - border-bottom: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-status-bar.svelte-1ulj7zd .jse-status-bar-info:where(.svelte-1ulj7zd) { - padding: 2px; -}`);var nTA=vA('
              '),oTA=vA('
              '),rTA=vA('
              '),sTA=vA('
              '),LK=AQ.define([{tag:ke.propertyName,color:"var(--internal-key-color)"},{tag:ke.number,color:"var(--internal-value-color-number)"},{tag:ke.bool,color:"var(--internal-value-color-boolean)"},{tag:ke.string,color:"var(--internal-value-color-string)"},{tag:ke.keyword,color:"var(--internal-value-color-null)"}]),aTA=t_(LK),cTA=LK.style;LK.style=t=>cTA(t||[]);var gTA=[Bo.fromClass(class{constructor(t){this.view=t,this.indentUnit=Ug(t.state),this.initialPaddingLeft=null,this.isChrome=window?.navigator.userAgent.includes("Chrome"),this.generate(t.state)}update(t){var e=Ug(t.state);(e!==this.indentUnit||t.docChanged||t.viewportChanged)&&(this.indentUnit=e,this.generate(t.state))}generate(t){var e=new fs;this.initialPaddingLeft?this.addStyleToBuilder(e,t,this.initialPaddingLeft):this.view.requestMeasure({read:A=>{var i=A.contentDOM.querySelector(".cm-line");i&&(this.initialPaddingLeft=window.getComputedStyle(i).getPropertyValue("padding-left"),this.addStyleToBuilder(e,A.state,this.initialPaddingLeft)),this.decorations=e.finish()}}),this.decorations=e.finish()}addStyleToBuilder(t,e,A){var i=this.getVisibleLines(e);for(var n of i){var{numColumns:o,containsTab:r}=this.numColumns(n.text,e.tabSize),s="calc(".concat(o+this.indentUnit,"ch + ").concat(A,")"),a=this.isChrome?"calc(-".concat(o+this.indentUnit,"ch - ").concat(r?1:0,"px)"):"-".concat(o+this.indentUnit,"ch");t.add(n.from,n.from,ht.line({attributes:{style:"padding-left: ".concat(s,"; text-indent: ").concat(a,";")}}))}}getVisibleLines(t){var e=new Set,A=null;for(var{from:i,to:n}of this.view.visibleRanges)for(var o=i;o<=n;){var r=t.doc.lineAt(o);A!==r&&(e.add(r),A=r),o=r.to+1}return e}numColumns(t,e){var A=0,i=!1;A:for(var n=0;nt.decorations})];Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-text-mode.svelte-1pr65po { - --internal-key-color: var(--jse-key-color, #1a1a1a); - --internal-value-color-number: var(--jse-value-color-number, #ee422e); - --internal-value-color-boolean: var(--jse-value-color-boolean, #ff8c00); - --internal-value-color-string: var(--jse-value-color-string, #008000); - --internal-value-color-null: var(--jse-value-color-null, #004ed0); - flex: 1; - box-sizing: border-box; - display: flex; - flex-direction: column; - background: var(--jse-background-color, #fff); -} -.jse-text-mode.no-main-menu.svelte-1pr65po { - border-top: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) { - flex: 1; - display: flex; - position: relative; - flex-direction: column; - overflow: hidden; - min-width: 0; - min-height: 0; - border-left: var(--jse-main-border, 1px solid #d7d7d7); - border-right: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po):last-child { - border-bottom: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-text-mode.svelte-1pr65po .jse-contents.jse-hidden:where(.svelte-1pr65po) { - visibility: hidden; - position: absolute; - top: 0; - left: 0; -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor { - flex: 1; - overflow: hidden; -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-scroller { - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - line-height: var(--jse-line-height, calc(1em + 4px)); - color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-gutters { - background: var(--jse-panel-background, #ebebeb); - color: var(--jse-panel-color-readonly, #b2b2b2); - border-right: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-activeLine, -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-activeLineGutter { - background: var(--jse-active-line-background-color, rgba(0, 0, 0, 0.06)); -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-selectionBackground { - background: var(--jse-selection-background-color, #d3d3d3); -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-searchMatch { - background-color: var(--jse-search-match-color, #ffe665); - outline: var(--jse-search-match-outline, none); -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-searchMatch.cm-searchMatch-selected { - background-color: var(--jse-search-match-active-color, var(--jse-search-match-color, #ffe665)); - outline: var(--jse-search-match-outline, 2px solid #e0be00); -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-selectionMatch { - background-color: var(--jse-search-match-background-color, rgba(153, 255, 119, 0.5019607843)); -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-foldPlaceholder { - background: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); - color: var(--jse-tag-color, var(--jse-text-color-inverse, #fff)); - border: none; - padding: 0 var(--jse-padding, 10px); -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-tooltip { - font-size: var(--jse-font-size, 16px); - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - color: var(--jse-tooltip-color, var(--jse-text-color, #4d4d4d)); - background: var(--jse-tooltip-background, var(--jse-modal-background, #f5f5f5)); - border: var(--jse-tooltip-border, var(--jse-main-border, 1px solid #d7d7d7)); -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-diagnosticAction { - background: var(--jse-tooltip-action-button-color, var(--jse-text-color-inverse, #fff)); - background: var(--jse-tooltip-action-button-background, #4d4d4d); -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-panels { - border-bottom: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search { - background: var(--jse-panel-background, #ebebeb); - color: var(--jse-panel-color, var(--jse-text-color, #4d4d4d)); - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search input { - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size-text-mode-search, 80%); - color: var(--jse-input-color, var(--jse-text-color, #4d4d4d)); - border: var(--jse-input-border, 1px solid #d8dbdf); - background: var(--jse-input-background, var(--jse-background-color, #fff)); - margin-right: 2px; -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search button { - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size-text-mode-search, 80%); - color: var(--jse-panel-button-color, inherit); - background: var(--jse-panel-button-background, transparent); - border: none; - cursor: pointer; - text-transform: capitalize; - padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); - margin: 0; -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search button:hover { - color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); - background: var(--jse-panel-button-background-highlight, #e0e0e0); -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search label { - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size-text-mode-search, 80%); - padding-left: var(--jse-padding, 10px); -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search label input { - margin-right: 2px; -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search button[name="close"] { - width: 32px; - height: 32px; - font-size: 24px; - line-height: 24px; - padding: 0; - right: 0; - top: -4px; -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-cursor-primary { - border-color: var(--jse-text-color, #4d4d4d); -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .jse-loading-space:where(.svelte-1pr65po) { - flex: 1; -} -.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .jse-loading:where(.svelte-1pr65po) { - flex: 2; - text-align: center; - color: var(--jse-panel-color-readonly, #b2b2b2); - box-sizing: border-box; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); -} -.jse-text-mode.svelte-1pr65po .jse-contents.jse-preview:where(.svelte-1pr65po) { - flex: 1; - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - color: var(--jse-panel-color-readonly, #b2b2b2); - overflow: auto; - white-space: pre-wrap; - word-break: break-word; - padding: 2px; -} -.jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) { - display: flex; - align-items: center; - gap: 8px; - padding: 8px 12px; - background: var(--jse-background-color, #fff); - border-top: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); - border-bottom: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); -} -.jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) .jse-fold-tip:where(.svelte-1pr65po) { - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size-mono, 14px); - color: var(--jse-panel-color-readonly, #b2b2b2); -} -.jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) .jse-fold-progress-track:where(.svelte-1pr65po) { - flex: 1; - height: 6px; - background: var(--jse-panel-background, #ebebeb); - border-radius: 3px; - overflow: hidden; - border: 1px solid var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); -} -.jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) .jse-fold-progress-fill:where(.svelte-1pr65po) { - height: 100%; - background: linear-gradient(90deg, var(--jse-theme-color, #3883fa), var(--jse-theme-color-highlight, #5f9dff)); - border-radius: 2px; - transition: width 0.1s ease; - min-width: 2px; -} -.jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) .jse-fold-cancel-button:where(.svelte-1pr65po) { - padding: 4px 12px; - font-size: 12px; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - background: var(--jse-theme-color, #3883fa); - color: #fff; - border-radius: 3px; - cursor: pointer; - transition: background-color 0.2s ease; - flex-shrink: 0; - border: 1px solid var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) .jse-fold-cancel-button:where(.svelte-1pr65po):hover { - background: var(--jse-theme-color-highlight, #5f9dff); - color: #fff; -}`);var lTA=vA('
              Collapsing
              '),ITA=vA('
              ',1),CTA=vA(" ",1),dTA=vA("
              ",1),BTA=vA('
              loading...
              '),ETA=vA("
              ");function QTA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=M(e,"readOnly",9),o=M(e,"mainMenuBar",9),r=M(e,"statusBar",9),s=M(e,"askToFormat",9),a=M(e,"externalContent",9),c=M(e,"externalSelection",9),g=M(e,"history",9),I=M(e,"indentation",9),C=M(e,"tabSize",9),d=M(e,"escapeUnicodeCharacters",9),B=M(e,"parser",9),E=M(e,"validator",9),u=M(e,"validationParser",9),h=M(e,"onChange",9),w=M(e,"onChangeMode",9),x=M(e,"onSelect",9),R=M(e,"onUndo",9),D=M(e,"onRedo",9),G=M(e,"onError",9),J=M(e,"onFocus",9),z=M(e,"onBlur",9),K=M(e,"onRenderMenu",9),O=M(e,"onSortModal",9),V=M(e,"onTransformModal",9),j=xr("jsoneditor:TextMode"),dA={key:"Mod-i",run:kA,shift:le,preventDefault:!0},fA=typeof window>"u";j("isSSR:",fA);var EA,IA=$(void 0,!0),SA=$(void 0,!0),nA=$(void 0,!0),lA=$(!1,!0),wA=$(s(),!0),VA=$([],!0),ie=$(!1,!0),UA=$(0,!0),BA=$(0,!0),JA=null,Xe=new Jl,We=new Jl,KA=new Jl,tA=new Jl,OA=new Jl,gA=a(),zA=$(xG(gA,I(),B()),!0),xA=Fa.define(),Me=null;function LA(){if(!Me||Me.length===0)return!1;var hA=Me[0].startState,Ae=Me[Me.length-1].state,re=Me.map(ue=>ue.changes).reduce((ue,aA)=>ue.compose(aA)),xe={type:"text",undo:{changes:re.invert(hA.doc).toJSON(),selection:uo(hA.selection)},redo:{changes:re.toJSON(),selection:uo(Ae.selection)}};return j("add history item",xe),g().add(xe),Me=null,!0}var cA=$(d(),!0);ws(_t(function*(){if(!fA)try{EA=function(hA){var{target:Ae,initialText:re,readOnly:xe,indentation:ue}=hA;j("Create CodeMirror editor",{readOnly:xe,indentation:ue});var aA=function(PA,Je){return IG(PA)?PA.ranges.every(vt=>vt.anchor{y(nA,PA.state),PA.docChanged&&(PA.transactions.some(Je=>!!Je.annotation(xA))||(Me=[...Me??[],PA]),vn()),PA.selectionSet&&Vo()}),DoA(),RoA({top:!0}),Pt.lineWrapping,We.of(Dr.readOnly.of(xe)),tA.of(Dr.tabSize.of(C())),KA.of(Mo(ue)),OA.of(Pt.theme({},{dark:Rt()}))]});return EA=new Pt({state:DA,parent:Ae}),aA&&EA.dispatch(EA.state.update({selection:aA.main,scrollIntoView:!0})),EA}({target:l(IA),initialText:Qn(l(zA),l(lA))?"":l(A).escapeValue(l(zA)),readOnly:n(),indentation:I()})}catch(hA){console.error(hA)}})),ig(()=>{In(),EA&&(j("Destroy CodeMirror editor"),EA.destroy()),Wt()});var Gt=h1(),ct=h1();function oe(){EA&&(j("focus"),EA.focus())}function Dt(hA,Ae){if(EA)try{(function(){var re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],xe=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],ue=EA.state,aA=ue.doc.length,DA=VF(ue,aA,1/0);if(DA){var PA=[];if(re.length===0)PA=St(DA,ue,void 0,xe);else{var{from:Je}=iG(l(A).escapeValue(l(zA)),re);Je!==void 0&&Je!==0&&(PA=St(DA,ue,Je,xe))}PA.length>0&&function(vt){Se.apply(this,arguments)}(PA)}})(hA,Ae)}catch(re){G()(re)}}function _e(){return XF.of((hA,Ae,re)=>{var xe=VF(hA,hA.doc.length,1/0);if(!xe||xe.lengthre)){if(ue&&DA.from=Ae&&Je.to>re&&(ue=Je)}}}return ue})}function Re(hA){var Ae=hA.lastChild;return Ae&&Ae.to==hA.to&&Ae.type.isError}function St(hA,Ae,re){var xe=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3],ue=[],aA=new Set;return hA.iterate({enter(DA){if(re===void 0||DA.from>=re){var PA=$E(Ae,DA.from,DA.to);if(PA){var Je="".concat(PA.from,"-").concat(PA.to);if(!aA.has(Je))if(xe)ue.push({from:PA.from,to:PA.to}),aA.add(Je);else{var vt=ue.some(Yt=>Yt.from<=PA.from&&Yt.to>=PA.to);vt||(ue.push({from:PA.from,to:PA.to}),aA.add(Je))}}}}}),ue}function Se(){return Se=_t(function*(hA){if(hA.length!==0){var Ae=hA.length>5e3;Ae&&(y(ie,!0),y(UA,0),y(BA,hA.length),JA=new AbortController);var re=xe=>new Promise(ue=>{var aA;Ae&&(aA=JA)!==null&&aA!==void 0&&aA.signal.aborted?ue():requestAnimationFrame(()=>{var DA=Math.min(xe+100,hA.length),PA=hA.slice(xe,DA);EA.dispatch({effects:PA.map(Je=>tQ.of({from:Je.from,to:Je.to}))}),Ae&&y(UA,DA),DA1&&arguments[1]!==void 0?arguments[1]:KG;if(EA)try{if(hA&&hA.length>0){var{from:re}=iG(l(A).escapeValue(l(zA)),hA);re!==void 0&&(EA.dispatch({selection:{anchor:re,head:re}}),$F(EA))}else A_(EA);Ae?.(hA)}catch(xe){G()(xe)}}var T=!1;function P(hA){return X(hA,!1)}function X(hA,Ae){j("handlePatch",hA,Ae);var re=B().parse(l(zA)),xe=Ma(re,hA),ue=W8(re,hA);return b({text:B().stringify(xe,null,I())},Ae,!1),{json:xe,previousJson:re,undo:ue,redo:hA}}function kA(){if(j("format"),n())return!1;try{var hA=B().parse(l(zA));return b({text:B().stringify(hA,null,I())},!0,!1),y(wA,s()),!0}catch(Ae){G()(Ae)}return!1}function le(){if(j("compact"),n())return!1;try{var hA=B().parse(l(zA));return b({text:B().stringify(hA)},!0,!1),y(wA,!1),!0}catch(Ae){G()(Ae)}return!1}function Ee(){if(j("repair"),!n())try{b({text:Uc(l(zA))},!0,!1),y(Kn,cG),y($A,void 0)}catch(hA){G()(hA)}}function FA(){var hA;if(!n())try{var Ae=B().parse(l(zA));T=!0,O()({id:Gt,json:Ae,rootPath:[],onSort:(hA=_t(function*(re){var{operations:xe}=re;j("onSort",xe),X(xe,!0)}),function(re){return hA.apply(this,arguments)}),onClose:()=>{T=!1,oe()}})}catch(re){G()(re)}}function MA(hA){var{id:Ae,rootPath:re,onTransform:xe,onClose:ue}=hA;try{var aA=B().parse(l(zA));T=!0,V()({id:Ae||ct,json:aA,rootPath:re||[],onTransform:DA=>{xe?xe({operations:DA,json:aA,transformedJson:Ma(aA,DA)}):(j("onTransform",DA),X(DA,!0))},onClose:()=>{T=!1,oe(),ue&&ue()}})}catch(DA){G()(DA)}}function dt(){n()||MA({rootPath:[]})}function $e(){EA&&(l(IA)&&l(IA).querySelector(".cm-search")?ty(EA):ey(EA))}function XA(){if(n())return!1;In();var hA=g().undo();return j("undo",hA),_rA(hA)?(EA.dispatch({annotations:xA.of("undo"),changes:hs.fromJSON(hA.undo.changes),selection:ae.fromJSON(hA.undo.selection),scrollIntoView:!0}),!0):(R()(hA),!1)}function ot(){if(n())return!1;In();var hA=g().redo();return j("redo",hA),_rA(hA)?(EA.dispatch({annotations:xA.of("redo"),changes:hs.fromJSON(hA.redo.changes),selection:ae.fromJSON(hA.redo.selection),scrollIntoView:!0}),!0):(D()(hA),!1)}function Si(){y(lA,!0),b(a(),!0,!0)}function Zi(){w()(ir.tree)}function Oi(){Xi()}function Le(hA){j("select validation error",hA);var{from:Ae,to:re}=Bi(hA);Ae!==void 0&&re!==void 0&&(zi(Ae,re),oe())}function zi(hA,Ae){j("setSelection",{anchor:hA,head:Ae}),EA&&EA.dispatch(EA.state.update({selection:{anchor:hA,head:Ae},scrollIntoView:!0}))}function fi(hA,Ae){if(Ae.state.selection.ranges.length===1){var re=Ae.state.selection.ranges[0],xe=l(zA).slice(re.from,re.to);if(xe==="{"||xe==="["){var ue=AK.default.parse(l(zA)),aA=Object.keys(ue.pointers).find(PA=>{var Je;return((Je=ue.pointers[PA].value)===null||Je===void 0?void 0:Je.pos)===re.from}),DA=ue.pointers[aA];aA&&DA&&DA.value&&DA.valueEnd&&(j("pointer found, selecting inner contents of path:",aA,DA),zi(DA.value.pos+1,DA.valueEnd.pos-1))}}}function Ht(){return coA(Ei,{delay:300})}function Rt(){return!!l(IA)&&getComputedStyle(l(IA)).getPropertyValue("--jse-theme").includes("dark")}function Bi(hA){var{path:Ae,message:re,severity:xe}=hA,{line:ue,column:aA,from:DA,to:PA}=iG(l(A).escapeValue(l(zA)),Ae);return{path:Ae,line:ue,column:aA,from:DA,to:PA,message:re,severity:xe,actions:[]}}function Mi(hA,Ae){var{line:re,column:xe,position:ue,message:aA}=hA;return{path:[],line:re,column:xe,from:ue,to:ue,severity:Og.error,message:aA,actions:Ae&&!n()?[{name:"Auto repair",apply:()=>Ee()}]:void 0}}function Jt(hA){return{from:hA.from||0,to:hA.to||0,message:hA.message||"",actions:hA.actions,severity:hA.severity}}function b(hA,Ae,re){var xe=xG(hA,I(),B()),ue=!ri(hA,gA),aA=gA;j("setCodeMirrorContent",{isChanged:ue,emitChange:Ae,forceUpdate:re}),EA&&(ue||re)&&(gA=hA,y(zA,xe),Qn(l(zA),l(lA))||EA.dispatch({changes:{from:0,to:EA.state.doc.length,insert:l(A).escapeValue(l(zA))}}),LA(),ue&&Ae&&qo(gA,aA))}function et(hA){return IG(hA)?ae.fromJSON(hA):void 0}function ai(){return Wi.apply(this,arguments)}function Wi(){return Wi=_t(function*(){j("refresh"),yield function(){return xn.apply(this,arguments)}()}),Wi.apply(this,arguments)}function Xi(){if(EA){var hA=EA?l(A).unescapeValue(EA.state.doc.toString()):"",Ae=hA!==l(zA);if(j("onChangeCodeMirrorValue",{isChanged:Ae}),Ae){var re=gA;y(zA,hA),gA={text:l(zA)},LA(),qo(gA,re),to(),Vo()}}}function xn(){return(xn=_t(function*(){if(to(),EA){var hA=Rt();return j("updateTheme",{dark:hA}),EA.dispatch({effects:[OA.reconfigure(Pt.theme({},{dark:hA}))]}),new Promise(Ae=>setTimeout(Ae))}return Promise.resolve()})).apply(this,arguments)}function Mo(hA){var Ae=JC.of(typeof hA=="number"?" ".repeat(hA):hA);return hA===" "?[Ae]:[Ae,gTA]}kK({onMount:ws,onDestroy:ig,getWindow:()=>Qf(l(SA)),hasFocus:()=>T&&document.hasFocus()||CK(l(SA)),onFocus:J(),onBlur:()=>{In(),z()()}});var vn=EE(Xi,300);function In(){vn.flush()}function qo(hA,Ae){h()&&h()(hA,Ae,{contentErrors:Ri(),patchResult:void 0})}function Vo(){x()(uo(l(nA).selection))}function uo(hA){return pe({type:Ln.text},hA.toJSON())}function Qn(hA,Ae){return!!hA&&hA.length>sG&&!Ae}var Kn=$(cG,!0),$A=$(void 0,!0);function Ei(){if(Qn(l(zA),l(lA)))return[];var hA=Ri();if(FrA(hA)){var{parseError:Ae,isRepairable:re}=hA;return[Jt(Mi(Ae,re))]}return SKA(hA)?hA.validationErrors.map(Bi).map(Jt):[]}function Ri(){j("validate:start"),In();var hA=un(l(A).escapeValue(l(zA)),E(),B(),u());return FrA(hA)?(y(Kn,hA.isRepairable?SrA:"invalid"),y($A,hA.parseError),y(VA,[])):(y(Kn,cG),y($A,void 0),y(VA,hA?.validationErrors||[])),j("validate:end"),hA}var un=hE(AJA);function Un(){l($A)&&function(hA){j("select parse error",hA);var Ae=Mi(hA,!1);zi(Ae.from!=null?Ae.from:0,Ae.to!=null?Ae.to:0),oe()}(l($A))}var Zo={icon:hX,text:"Show me",title:"Move to the parse error location",onClick:Un};pA(()=>k(d()),()=>{y(A,lK({escapeControlCharacters:!1,escapeUnicodeCharacters:d()}))}),pA(()=>k(a()),()=>{b(a(),!1,!1)}),pA(()=>k(c()),()=>{(function(hA){if(IG(hA)){var Ae=et(hA);!EA||!Ae||l(nA)&&l(nA).selection.eq(Ae)||(j("applyExternalSelection",Ae),EA.dispatch({selection:Ae}))}})(c())}),pA(()=>k(E()),()=>{(function(hA){j("updateLinter",hA),EA&&EA.dispatch({effects:Xe.reconfigure(Ht())})})(E())}),pA(()=>k(I()),()=>{(function(hA){EA&&(j("updateIndentation",hA),EA.dispatch({effects:KA.reconfigure(Mo(hA))}))})(I())}),pA(()=>k(C()),()=>{(function(hA){EA&&(j("updateTabSize",hA),EA.dispatch({effects:tA.reconfigure(Dr.tabSize.of(hA))}))})(C())}),pA(()=>k(n()),()=>{(function(hA){EA&&(j("updateReadOnly",hA),EA.dispatch({effects:[We.reconfigure(Dr.readOnly.of(hA))]}))})(n())}),pA(()=>(l(cA),k(d())),()=>{l(cA)!==d()&&(y(cA,d()),j("forceUpdateText",{escapeUnicodeCharacters:d()}),EA&&EA.dispatch({changes:{from:0,to:EA.state.doc.length,insert:l(A).escapeValue(l(zA))}}))}),pA(()=>(l(Kn),k(n()),_0),()=>{y(i,l(Kn)!==SrA||n()?[Zo]:[{icon:_0,text:"Auto repair",title:"Automatically repair JSON",onClick:Ee},Zo])}),ln(),qt(!0);var Ci,io=ETA(),Wo=W(io),Xo=hA=>{var Ae=ZA(()=>(l(zA),oA(()=>l(zA).length===0))),re=ZA(()=>!l(Ae)),xe=ZA(()=>!l(Ae)),ue=ZA(()=>!l(Ae)),aA=ZA(()=>!l(Ae));(function(DA,PA){ft(PA,!1);var Je=$(void 0,!0),vt=M(PA,"readOnly",9,!1),Yt=M(PA,"onFormat",9),rn=M(PA,"onCompact",9),no=M(PA,"onSort",9),sn=M(PA,"onTransform",9),Ji=M(PA,"onToggleSearch",9),bt=M(PA,"onUndo",9),Li=M(PA,"onRedo",9),Mn=M(PA,"canUndo",9),Qt=M(PA,"canRedo",9),fn=M(PA,"canFormat",9),Te=M(PA,"canCompact",9),Qi=M(PA,"canSort",9),mi=M(PA,"canTransform",9),bn=M(PA,"onRenderMenu",9),Ko={type:"button",icon:u4,title:"Search (Ctrl+F)",className:"jse-search",onClick:Ji()},Ot=$(void 0,!0);pA(()=>(k(vt()),k(Yt()),k(fn()),k(rn()),k(Te()),k(no()),k(Qi()),k(sn()),k(mi()),k(bt()),k(Mn()),k(Li()),k(Qt())),()=>{y(Ot,vt()?[Ko,{type:"space"}]:[{type:"button",icon:lsA,title:"Format JSON: add proper indentation and new lines (Ctrl+I)",className:"jse-format",onClick:Yt(),disabled:vt()||!fn()},{type:"button",icon:nYA,title:"Compact JSON: remove all white spacing and new lines (Ctrl+Shift+I)",className:"jse-compact",onClick:rn(),disabled:vt()||!Te()},{type:"separator"},{type:"button",icon:Q4,title:"Sort",className:"jse-sort",onClick:no(),disabled:vt()||!Qi()},{type:"button",icon:d4,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:sn(),disabled:vt()||!mi()},Ko,{type:"separator"},{type:"button",icon:K5,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:bt(),disabled:!Mn()},{type:"button",icon:G5,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:Li(),disabled:!Qt()},{type:"space"}])}),pA(()=>(k(bn()),l(Ot)),()=>{y(Je,bn()(l(Ot))||l(Ot))}),ln(),qt(!0),l7(DA,{get items(){return l(Je)}}),mt()})(hA,{get readOnly(){return n()},onFormat:kA,onCompact:le,onSort:FA,onTransform:dt,onToggleSearch:$e,onUndo:XA,onRedo:ot,get canFormat(){return l(re)},get canCompact(){return l(xe)},get canSort(){return l(ue)},get canTransform(){return l(aA)},get canUndo(){return k(g()),oA(()=>g().canUndo)},get canRedo(){return k(g()),oA(()=>g().canRedo)},get onRenderMenu(){return K()}})};GA(Wo,hA=>{o()&&hA(Xo)});var nr=CA(Wo,2),on=hA=>{var Ae=lTA(),re=CA(W(Ae),2),xe=W(re),ue=CA(re,2);we(()=>eg(xe,"width: ".concat(l(BA)>0?l(UA)/l(BA)*100:0,"%"))),ce("click",ue,Wt),iA(hA,Ae)};GA(nr,hA=>{l(ie)&&hA(on)});var $i=CA(nr,2),yt=hA=>{var Ae,re=dTA(),xe=ZA(()=>(l(zA),l(lA),oA(()=>Qn(l(zA),l(lA))))),ue=Mt(re);Qo(ue,vt=>y(IA,vt),()=>l(IA));var aA=CA(ue,2),DA=vt=>{var Yt=ITA(),rn=Mt(Yt),no=ZA(()=>(k(ky),k(sG),l(zA),oA(()=>"The JSON document is larger than ".concat(ky(sG),", ")+"and may crash your browser when loading it in text mode. Actual size: ".concat(ky(l(zA).length),"."))));pc(rn,{get icon(){return m1},type:"error",get message(){return l(no)},actions:[{text:"Open anyway",title:"Open the document in text mode. This may freeze or crash your browser.",onClick:Si},{text:"Open in tree mode",title:"Open the document in tree mode. Tree mode can handle large documents.",onClick:Zi},{text:"Cancel",title:"Cancel opening this large document.",onClick:Oi}],onClose:oe});var sn=W(CA(rn,2));we(Ji=>pt(sn,Ji),[()=>(k(X0),l(zA),k(Gy),oA(()=>X0(l(zA)||"",Gy)))],ZA),iA(vt,Yt)};GA(aA,vt=>{l(xe)&&vt(DA)});var PA=CA(aA,2),Je=vt=>{var Yt=CTA(),rn=Mt(Yt),no=Mn=>{(function(Qt,fn){ft(fn,!1);var Te=M(fn,"editorState",8),Qi=$(),mi=$(),bn=$(),Ko=$(),Ot=$();pA(()=>k(Te()),()=>{var U;y(Qi,(U=Te())===null||U===void 0||(U=U.selection)===null||U===void 0||(U=U.main)===null||U===void 0?void 0:U.head)}),pA(()=>(l(Qi),k(Te())),()=>{var U;y(mi,l(Qi)!==void 0?(U=Te())===null||U===void 0||(U=U.doc)===null||U===void 0?void 0:U.lineAt(l(Qi)):void 0)}),pA(()=>l(mi),()=>{y(bn,l(mi)!==void 0?l(mi).number:void 0)}),pA(()=>(l(mi),l(Qi)),()=>{y(Ko,l(mi)!==void 0&&l(Qi)!==void 0?l(Qi)-l(mi).from+1:void 0)}),pA(()=>k(Te()),()=>{var U;y(Ot,(U=Te())===null||U===void 0||(U=U.selection)===null||U===void 0||(U=U.ranges)===null||U===void 0?void 0:U.reduce((q,Z)=>q+Z.to-Z.from,0))}),ln(),qt();var Nr=sTA(),Jn=W(Nr),Q=U=>{var q=nTA(),Z=W(q);we(()=>{var RA;return pt(Z,"Line: ".concat((RA=l(bn))!==null&&RA!==void 0?RA:""))}),iA(U,q)};GA(Jn,U=>{l(bn)!==void 0&&U(Q)});var m=CA(Jn,2),v=U=>{var q=oTA(),Z=W(q);we(()=>{var RA;return pt(Z,"Column: ".concat((RA=l(Ko))!==null&&RA!==void 0?RA:""))}),iA(U,q)};GA(m,U=>{l(Ko)!==void 0&&U(v)});var p=CA(m,2),F=U=>{var q=rTA(),Z=W(q);we(()=>{var RA;return pt(Z,"Selection: ".concat((RA=l(Ot))!==null&&RA!==void 0?RA:""," characters"))}),iA(U,q)};GA(p,U=>{l(Ot)!==void 0&&l(Ot)>0&&U(F)}),iA(Qt,Nr),mt()})(Mn,{get editorState(){return l(nA)}})};GA(rn,Mn=>{r()&&Mn(no)});var sn=CA(rn,2),Ji=Mn=>{pc(Mn,{type:"error",get icon(){return m1},get message(){return l($A),oA(()=>l($A).message)},get actions(){return l(i)},onClick:Un,onClose:oe})};GA(sn,Mn=>{l($A)&&Mn(Ji)});var bt=CA(sn,2),Li=Mn=>{var Qt=ZA(()=>[{icon:lsA,text:"Format",title:"Format JSON: add proper indentation and new lines (Ctrl+I)",onClick:kA},{icon:h4,text:"No thanks",title:"Close this message",onClick:()=>y(wA,!1)}]);pc(Mn,{type:"success",message:"Do you want to format the JSON?",get actions(){return l(Qt)},onClose:oe})};GA(bt,Mn=>{l($A),l(wA),k(brA),l(zA),oA(()=>!l($A)&&l(wA)&&brA(l(zA)))&&Mn(Li)}),SK(CA(bt,2),{get validationErrors(){return l(VA)},selectError:Le}),iA(vt,Yt)};GA(PA,vt=>{l(xe)||vt(Je)}),we(vt=>Ae=jt(ue,1,"jse-contents svelte-1pr65po",null,Ae,vt),[()=>({"jse-hidden":l(xe)})],ZA),iA(hA,re)},hn=hA=>{iA(hA,BTA())};return GA($i,hA=>{fA?hA(hn,!1):hA(yt)}),Qo(io,hA=>y(SA,hA),()=>l(SA)),we(hA=>Ci=jt(io,1,"jse-text-mode svelte-1pr65po",null,Ci,hA),[()=>({"no-main-menu":!o()})],ZA),iA(t,io),Ft(e,"focus",oe),Ft(e,"collapse",Dt),Ft(e,"expand",L),Ft(e,"patch",P),Ft(e,"handlePatch",X),Ft(e,"openTransformModal",MA),Ft(e,"refresh",ai),Ft(e,"flush",In),Ft(e,"validate",Ri),mt({focus:oe,collapse:Dt,expand:L,patch:P,handlePatch:X,openTransformModal:MA,refresh:ai,flush:In,validate:Ri})}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-inline-value.svelte-h57m0p { - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - line-height: var(--jse-line-height, calc(1em + 4px)); - border: none; - padding: 0 calc(0.5 * var(--jse-padding, 10px)); - background: transparent; - color: inherit; - cursor: inherit; -} -.jse-inline-value.jse-highlight.svelte-h57m0p { - background-color: var(--jse-search-match-color, #ffe665); - outline: var(--jse-search-match-outline, none); -} -.jse-inline-value.jse-highlight.jse-active.svelte-h57m0p { - background-color: var(--jse-search-match-active-color, var(--jse-search-match-color, #ffe665)); - outline: var(--jse-search-match-outline, 2px solid #e0be00); -}`);var uTA=vA('');Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-column-header.svelte-2i3vdx { - background: none; - border: none; - font-family: inherit; - font-size: inherit; - color: inherit; - display: flex; - gap: var(--jse-padding, 10px); - padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)) calc(0.5 * var(--jse-padding, 10px)); - width: 100%; -} -.jse-column-header.svelte-2i3vdx:hover { - background: var(--jse-table-header-background-highlight, #e8e8e8); -} -.jse-column-header.svelte-2i3vdx:not(.jse-column-header.jse-readonly) { - cursor: pointer; -} -.jse-column-header.svelte-2i3vdx span.jse-column-sort-icon:where(.svelte-2i3vdx) { - height: 1em; -}`);var hTA=vA(''),fTA=vA('');Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-table-mode-welcome.svelte-17xl1jx { - flex: 1; - display: flex; - flex-direction: column; - overflow: auto; - align-items: center; - border-left: var(--jse-main-border, 1px solid #d7d7d7); - border-right: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-table-mode-welcome.svelte-17xl1jx:last-child { - border-bottom: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-space.jse-before:where(.svelte-17xl1jx) { - flex: 1; -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) { - display: flex; - flex-direction: column; - gap: var(--jse-padding, 10px); - max-width: 400px; - margin: 2em var(--jse-padding, 10px); - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-arrays-info:where(.svelte-17xl1jx) { - color: var(--jse-panel-color-readonly, #b2b2b2); -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-property:where(.svelte-17xl1jx) { - display: flex; - align-items: center; - gap: var(--jse-padding, 10px); -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-property:where(.svelte-17xl1jx) .jse-nested-property-path:where(.svelte-17xl1jx) { - flex: 1; -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-property:where(.svelte-17xl1jx) .jse-nested-property-path:where(.svelte-17xl1jx) .jse-nested-property-count:where(.svelte-17xl1jx) { - opacity: 0.5; - white-space: nowrap; -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) button.jse-nested-array-action:where(.svelte-17xl1jx) { - text-align: left; - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); - color: var(--jse-button-primary-color, #fff); - padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); - border-radius: 3px; -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) button.jse-nested-array-action:where(.svelte-17xl1jx):hover { - background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) button.jse-nested-array-action:where(.svelte-17xl1jx):disabled { - background: var(--jse-button-primary-background-disabled, #9d9d9d); -} -.jse-table-mode-welcome.svelte-17xl1jx .jse-space.jse-after:where(.svelte-17xl1jx) { - flex: 2; -}`);var mTA=(t,e)=>e.onClick(),pTA=vA(`An empty document cannot be opened in table mode. You can go to tree mode instead, or paste - a JSON Array using Ctrl+V.`,1),DTA=(t,e,A)=>e.openJSONEditorModal(l(A)),wTA=(t,e,A)=>e.extractPath(l(A)),yTA=vA(''),vTA=vA('
              '),MTA=(t,e)=>e.onChangeMode(ir.tree),bTA=vA('
              ');function kTA(t,e){ft(e,!0);var A=Ja(()=>e.json?function(E){var u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2,h=[];return function w(x,R){Lo(x)&&R.length{w(x[D],R.concat(D))}),wo(x)&&h.push(R)}(E,[]),h}(e.json).slice(0,99).filter(E=>E.length>0):[]),i=Ja(()=>!Gi(l(A))),n=Ja(()=>e.json===void 0&&(e.text===""||e.text===void 0)),o=Ja(()=>l(i)?"Object with nested arrays":l(n)?"An empty document":Lo(e.json)?"An object":wo(e.json)?"An empty array":"A ".concat(gK(e.json,e.parser))),r=bTA();r.__click=[mTA,e];var s=CA(W(r),2),a=W(s),c=W(a),g=CA(a,2),I=W(g),C=E=>{iA(E,jr(`An object cannot be opened in table mode. You can open a nested array instead, or open the - document in tree mode.`))},d=(E,u)=>{var h=x=>{iA(x,pTA())},w=x=>{var R=jr();we(()=>{var D;return pt(R,"".concat((D=l(o))!==null&&D!==void 0?D:""," cannot be opened in table mode. You can open the document in tree mode instead."))}),iA(x,R)};GA(E,x=>{l(n)&&!e.readOnly?x(h):x(w,!1)},u)};GA(I,E=>{l(i)?E(C):E(d,!1)});var B=CA(g,2);jo(B,17,()=>l(A),cr,(E,u)=>{var h=vTA(),w=Ja(()=>function(O){return Ye(e.json,O).length}(l(u))),x=W(h),R=W(x),D=W(CA(R)),G=CA(x,2);G.__click=[DTA,e,u];var J=W(G),z=CA(G,2),K=O=>{var V=yTA();V.__click=[wTA,e,u],iA(O,V)};GA(z,O=>{e.readOnly||O(K)}),we(O=>{var V;pt(R,'"'.concat(O??"",'" ')),pt(D,"(".concat((V=l(w))!==null&&V!==void 0?V:""," ").concat(l(w)!==1?"items":"item",")")),pt(J,e.readOnly?"View":"Edit")},[()=>Ta(l(u))]),iA(E,h)}),CA(B,2).__click=[MTA,e],we(()=>pt(c,l(o))),iA(t,r),mt()}df(["click"]);Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-column-header.svelte-fzj761 { - background: none; - border: none; - font-family: inherit; - font-size: inherit; - color: inherit; - display: flex; - gap: var(--jse-padding, 10px); - padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)) calc(0.5 * var(--jse-padding, 10px)); - width: 100%; -} -.jse-column-header.svelte-fzj761:hover { - background: var(--jse-table-header-background-highlight, #e8e8e8); -} -.jse-column-header.svelte-fzj761:not(.jse-column-header.jse-readonly) { - cursor: pointer; -}`);var STA=vA('');Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-table-mode.svelte-u14cgx { - flex: 1; - display: flex; - flex-direction: column; - position: relative; - background: var(--jse-background-color, #fff); - min-width: 0; - min-height: 0; - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - color: var(--jse-text-color, #4d4d4d); - line-height: var(--jse-line-height, calc(1em + 4px)); -} -.jse-table-mode.no-main-menu.svelte-u14cgx { - border-top: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-table-mode.svelte-u14cgx .jse-search-box-container:where(.svelte-u14cgx) { - position: relative; - height: 0; - top: calc(var(--jse-line-height, calc(1em + 4px)) + 2 * var(--jse-padding, 10px)); - margin-right: calc(var(--jse-padding, 10px) + 20px); - margin-left: var(--jse-padding, 10px); - text-align: right; - z-index: 3; -} -.jse-table-mode.svelte-u14cgx .jse-hidden-input-label:where(.svelte-u14cgx) { - position: fixed; - right: 0; - top: 0; - width: 0; - height: 0; -} -.jse-table-mode.svelte-u14cgx .jse-hidden-input-label:where(.svelte-u14cgx) .jse-hidden-input:where(.svelte-u14cgx) { - width: 0; - height: 0; - padding: 0; - border: 0; - outline: none; -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) { - flex: 1; - align-items: flex-start; - flex-direction: column; - display: flex; - overflow: auto; - overflow-anchor: none; - scrollbar-gutter: stable; - border-left: var(--jse-main-border, 1px solid #d7d7d7); - border-right: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx):last-child { - border-bottom: var(--jse-main-border, 1px solid #d7d7d7); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) { - border-collapse: collapse; - border-spacing: 0; -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-invisible-start-section:where(.svelte-u14cgx) td:where(.svelte-u14cgx), -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-invisible-end-section:where(.svelte-u14cgx) td:where(.svelte-u14cgx) { - margin: 0; - padding: 0; -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-search-box-background:where(.svelte-u14cgx) { - background: var(--jse-table-header-background, #f5f5f5); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-invisible-end-section:where(.svelte-u14cgx) td:where(.svelte-u14cgx) { - padding-bottom: var(--jse-padding, 10px); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx):hover { - background-color: var(--jse-table-row-odd-background, rgba(0, 0, 0, 0.05)); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) { - padding: 0 var(--jse-padding, 10px) 0 0; - vertical-align: top; - white-space: nowrap; - height: var(--jse-line-height, calc(1em + 4px)); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-header:where(.svelte-u14cgx), .jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-gutter:where(.svelte-u14cgx) { - font-weight: normal; - text-align: left; - color: var(--jse-text-readonly, #8d8d8d); - background: var(--jse-table-header-background, #f5f5f5); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-header:where(.svelte-u14cgx) { - padding: 0; - position: sticky; - top: 0; -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-header:where(.svelte-u14cgx) .jse-table-root-error:where(.svelte-u14cgx) { - padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)) calc(0.5 * var(--jse-padding, 10px)); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-gutter:where(.svelte-u14cgx) { - padding: 0 var(--jse-padding, 10px) 0 calc(0.5 * var(--jse-padding, 10px)); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-value-outer:where(.svelte-u14cgx) { - display: inline-block; - cursor: var(--jse-contents-cursor, pointer); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-value-outer:where(.svelte-u14cgx):hover { - background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-value-outer.jse-selected-value:where(.svelte-u14cgx) { - background: var(--jse-selection-background-color, #d3d3d3); -} -.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-context-menu-anchor:where(.svelte-u14cgx) { - display: inline-flex; - position: relative; - vertical-align: top; -} -.jse-table-mode.svelte-u14cgx .jse-contents.jse-contents-loading:where(.svelte-u14cgx) { - align-items: unset; -} -.jse-table-mode.svelte-u14cgx .jse-contents.jse-contents-loading:where(.svelte-u14cgx) .jse-loading-space:where(.svelte-u14cgx) { - flex: 1; -} -.jse-table-mode.svelte-u14cgx .jse-contents.jse-contents-loading:where(.svelte-u14cgx) .jse-loading:where(.svelte-u14cgx) { - flex: 2; - text-align: center; - color: var(--jse-panel-color-readonly, #b2b2b2); - box-sizing: border-box; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); -}`);var RTA=vA('
              '),LTA=vA(''),xTA=vA(''),NTA=vA(' '),FTA=vA('
              '),_TA=vA('
              '),GTA=vA(''),KTA=vA(''),UTA=vA('
              ',1),JTA=vA(" ",1),YTA=vA(' ',1),TTA=vA('
              loading...
              '),HTA=vA('
              ',1);function OTA(t,e){ft(e,!1);var A=$(void 0,!0),i=$(void 0,!0),n=$(void 0,!0),o=xr("jsoneditor:TableMode"),{openAbsolutePopup:r,closeAbsolutePopup:s}=cI("absolute-popup"),a=qaA(),c=h1(),g=h1(),I=typeof window>"u";o("isSSR:",I);var C=M(e,"readOnly",9),d=M(e,"externalContent",9),B=M(e,"externalSelection",9),E=M(e,"history",9),u=M(e,"truncateTextSize",9),h=M(e,"mainMenuBar",9),w=M(e,"escapeControlCharacters",9),x=M(e,"escapeUnicodeCharacters",9),R=M(e,"flattenColumns",9),D=M(e,"parser",9),G=M(e,"parseMemoizeOne",9),J=M(e,"validator",9),z=M(e,"validationParser",9),K=M(e,"indentation",9),O=M(e,"onChange",9),V=M(e,"onChangeMode",9),j=M(e,"onSelect",9),dA=M(e,"onUndo",9),fA=M(e,"onRedo",9),EA=M(e,"onRenderValue",9),IA=M(e,"onRenderMenu",9),SA=M(e,"onRenderContextMenu",9),nA=M(e,"onFocus",9),lA=M(e,"onBlur",9),wA=M(e,"onSortModal",9),VA=M(e,"onTransformModal",9),ie=M(e,"onJSONEditorModal",9),UA=$(void 0,!0),BA=$(void 0,!0),JA=$(void 0,!0),Xe=$(void 0,!0),We=$(void 0,!0);kK({onMount:ws,onDestroy:ig,getWindow:()=>Qf(l(BA)),hasFocus:()=>Se&&document.hasFocus()||CK(l(BA)),onFocus:()=>{Wt=!0,nA()&&nA()()},onBlur:()=>{Wt=!1,lA()&&lA()()}});var KA,tA=$(void 0,!0),OA=$(void 0,!0),gA=$(void 0,!0),zA=$(void 0,!0),xA=$(void 0,!0),Me=$(void 0,!0),LA=$(!1,!0),cA=$(!1,!0);function Gt(p){y(Me,(KA=p)?FaA(l(tA),KA.items):void 0)}function ct(p){return oe.apply(this,arguments)}function oe(){return(oe=_t(function*(p){y(MA,void 0),yield Xi(p)})).apply(this,arguments)}function Dt(){y(LA,!1),y(cA,!1),b()}var _e=$(1e4,!0),Re=$([],!0),St=$(void 0,!0),Se=!1,Wt=!1,L=$(!1,!0),T=$({},!0),P=$(600,!0),X=$(0,!0),kA=18;function le(p){y(MA,p)}function Ee(p){l(MA)&&p!==void 0&&(As(p,WC(l(MA)))&&As(p,nt(l(MA)))||(o("clearing selection: path does not exist anymore",l(MA)),y(MA,void 0)))}var FA=$(l(tA)!==void 0?GG({json:l(tA)}):void 0,!0),MA=$(tf(B())?B():void 0,!0),dt=$(void 0,!0),$e=$(!1,!0);function XA(p){if(!C()){o("onSortByHeader",p);var F=p.sortDirection===Ag.desc?-1:1;Ht($aA(l(tA),[],p.path,F),(U,q)=>({state:q,sortedColumn:p}))}}ws(()=>{l(MA)&&Mo(nt(l(MA)))});var ot=$(void 0,!0);function Si(p){if(p.json!==void 0||p.text!==void 0){var F=l(tA)!==void 0&&p.json!==void 0;E().add({type:"tree",undo:{patch:F?[{op:"replace",path:"",value:p.json}]:void 0,json:p.json,text:p.text,documentState:p.documentState,textIsRepaired:p.textIsRepaired,selection:e0(p.selection),sortedColumn:p.sortedColumn},redo:{patch:F?[{op:"replace",path:"",value:l(tA)}]:void 0,json:l(tA),text:l(OA),documentState:l(FA),textIsRepaired:l($e),selection:e0(l(MA)),sortedColumn:l(dt)}})}}var Zi=$([],!0),Oi=hE(VaA);function Le(p,F,U,q){fQ(()=>{var Z;try{Z=Oi(p,F,U,q)}catch(RA){Z=[{path:[],message:"Failed to validate: "+RA.message,severity:Og.warning}]}ri(Z,l(Zi))||(o("validationErrors changed:",Z),y(Zi,Z))},Z=>o("validationErrors updated in ".concat(Z," ms")))}function zi(){return o("validate"),l(gA)?{parseError:l(gA),isRepairable:!1}:(Le(l(tA),J(),D(),z()),Gi(l(Zi))?void 0:{validationErrors:l(Zi)})}function fi(p,F){if(o("patch",p,F),l(tA)===void 0)throw new Error("Cannot apply patch: no JSON");var U=l(tA),q={json:void 0,text:l(OA),documentState:l(FA),selection:e0(l(MA)),sortedColumn:l(dt),textIsRepaired:l($e)},Z=NaA(l(tA),p),RA=paA(l(tA),l(FA),p),ee=SYA(l(dt),p,l(Re)),ne=typeof F=="function"?F(RA.json,RA.documentState,l(MA)):void 0;return y(tA,ne?.json!==void 0?ne.json:RA.json),y(FA,ne?.state!==void 0?ne.state:RA.documentState),y(MA,ne?.selection!==void 0?ne.selection:l(MA)),y(dt,ne?.sortedColumn!==void 0?ne.sortedColumn:ee),y(OA,void 0),y($e,!1),y(zA,void 0),y(xA,void 0),y(gA,void 0),E().add({type:"tree",undo:pe({patch:Z},q),redo:{patch:p,json:void 0,text:void 0,documentState:l(FA),selection:e0(l(MA)),sortedColumn:l(dt),textIsRepaired:l($e)}}),{json:l(tA),previousJson:U,undo:Z,redo:p}}function Ht(p,F){o("handlePatch",p,F);var U={json:l(tA),text:l(OA)},q=fi(p,F);return Rt(U,q),q}function Rt(p,F){if((p.json!==void 0||p?.text!==void 0)&&O()){if(l(OA)!==void 0){var U={text:l(OA),json:void 0};O()(U,p,{contentErrors:zi(),patchResult:F})}else if(l(tA)!==void 0){var q={text:void 0,json:l(tA)};O()(q,p,{contentErrors:zi(),patchResult:F})}}}function Bi(p){o("pasted json as text",p),y(zA,p)}function Mi(p){o("pasted multiline text",{pastedText:p}),y(xA,p)}function Jt(p){var F=parseInt(p[0],10),U=[String(F+1),...p.slice(1)];return As(l(tA),U)?vi(U):vi(p)}function b(){o("focus"),l(Xe)&&(l(Xe).focus(),l(Xe).select())}function et(p){y(X,p.target.scrollTop)}function ai(){l(MA)||y(MA,function(){if(wo(l(tA))&&!Gi(l(tA))&&!Gi(l(Re)))return vi(["0",...l(Re)[0]])}())}function Wi(){if(l($e)&&l(tA)!==void 0){var p={json:l(tA),text:l(OA)},F={json:l(tA),documentState:l(FA),selection:l(MA),sortedColumn:l(dt),text:l(OA),textIsRepaired:l($e)};y(OA,void 0),y($e,!1),Ee(l(tA)),Si(F),Rt(p,void 0)}return{json:l(tA),text:l(OA)}}function Xi(p){var{scrollToWhenVisible:F=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},U=l(LA)?O3:0,q=CsA(p,l(Re),T,kA),Z=q-l(X)+U+kA,RA=vn(p);if(o("scrollTo",{path:p,top:q,scrollTop:l(X),elem:RA}),!l(JA))return Promise.resolve();var ee=l(JA).getBoundingClientRect();if(RA&&!F){var ne=RA.getBoundingClientRect();if(ne.bottom>ee.top&&ne.top{a(RA,{container:l(JA),offset:Pe,duration:300,callback:()=>{xn(p),Oe()}})}:Oe=>{a(Z,{container:l(JA),offset:Pe,duration:300,callback:()=>{to(),xn(p),Oe()}})})}function xn(p){var F=vn(p);if(F&&l(JA)){var U=l(JA).getBoundingClientRect(),q=F.getBoundingClientRect();if(q.right>U.right){var Z=q.right-U.right;hc(JA,l(JA).scrollLeft+=Z)}if(q.leftPe){var Oe=Z-Pe;hc(JA,l(JA).scrollTop+=Oe)}if(qn0(p.slice(1),RA)),Z=q?p.slice(0,1).concat(q):p;return(F=(U=l(JA))===null||U===void 0?void 0:U.querySelector('td[data-path="'.concat(My(Z),'"]')))!==null&&F!==void 0?F:void 0}function In(p){var F,{anchor:U,left:q,top:Z,width:RA,height:ee,offsetTop:ne,offsetLeft:Pe,showTip:Oe}=p,ve=function(rA){var{json:HA,documentState:De,selection:fe,readOnly:Ie,onEditValue:Bt,onEditRow:At,onToggleEnforceString:ui,onCut:Cn,onCopy:xi,onPaste:Yn,onRemove:Tt,onDuplicateRow:bo,onInsertBeforeRow:kn,onInsertAfterRow:oo,onRemoveRow:An}=rA,Lt=HA!==void 0,Ti=!!fe,xt=HA!==void 0&&fe?Ye(HA,nt(fe)):void 0,rt=Lt&&(Gn(fe)||Lr(fe)||Vi(fe)),Ai=!Ie&&Lt&&fe!==void 0&&Jy(fe),ho=Ai&&!Fo(xt),Fr=!Ie&&rt,Tn=fe!==void 0&&t0(HA,De,nt(fe));return[{type:"separator"},{type:"row",items:[{type:"column",items:[{type:"label",text:"Table cell:"},{type:"dropdown-button",main:{type:"button",onClick:()=>Bt(),icon:EC,text:"Edit",title:"Edit the value (Double-click on the value)",disabled:!Ai},width:"11em",items:[{type:"button",icon:EC,text:"Edit",title:"Edit the value (Double-click on the value)",onClick:()=>Bt(),disabled:!Ai},{type:"button",icon:Tn?iL:rL,text:"Enforce string",title:"Enforce keeping the value as string when it contains a numeric value",onClick:()=>ui(),disabled:!ho}]},{type:"dropdown-button",main:{type:"button",onClick:()=>Cn(!0),icon:BC,text:"Cut",title:"Cut selected contents, formatted with indentation (Ctrl+X)",disabled:!Fr},width:"10em",items:[{type:"button",icon:BC,text:"Cut formatted",title:"Cut selected contents, formatted with indentation (Ctrl+X)",onClick:()=>Cn(!0),disabled:Ie||!rt},{type:"button",icon:BC,text:"Cut compacted",title:"Cut selected contents, without indentation (Ctrl+Shift+X)",onClick:()=>Cn(!1),disabled:Ie||!rt}]},{type:"dropdown-button",main:{type:"button",onClick:()=>xi(!0),icon:G0,text:"Copy",title:"Copy selected contents, formatted with indentation (Ctrl+C)",disabled:!rt},width:"12em",items:[{type:"button",icon:G0,text:"Copy formatted",title:"Copy selected contents, formatted with indentation (Ctrl+C)",onClick:()=>xi(!1),disabled:!rt},{type:"button",icon:G0,text:"Copy compacted",title:"Copy selected contents, without indentation (Ctrl+Shift+C)",onClick:()=>xi(!1),disabled:!rt}]},{type:"button",onClick:()=>Yn(),icon:tL,text:"Paste",title:"Paste clipboard contents (Ctrl+V)",disabled:Ie||!Ti},{type:"button",onClick:()=>Tt(),icon:_5,text:"Remove",title:"Remove selected contents (Delete)",disabled:Ie||!rt}]},{type:"column",items:[{type:"label",text:"Table row:"},{type:"button",onClick:()=>At(),icon:EC,text:"Edit row",title:"Edit the current row",disabled:Ie||!Ti||!Lt},{type:"button",onClick:()=>bo(),icon:cL,text:"Duplicate row",title:"Duplicate the current row (Ctrl+D)",disabled:Ie||!Ti||!Lt},{type:"button",onClick:()=>kn(),icon:QC,text:"Insert before",title:"Insert a row before the current row",disabled:Ie||!Ti||!Lt},{type:"button",onClick:()=>oo(),icon:QC,text:"Insert after",title:"Insert a row after the current row",disabled:Ie||!Ti||!Lt},{type:"button",onClick:()=>An(),icon:_5,text:"Remove row",title:"Remove current row",disabled:Ie||!Ti||!Lt}]}]}]}({json:l(tA),documentState:l(FA),selection:l(MA),readOnly:C(),onEditValue:uo,onEditRow:Qn,onToggleEnforceString:Kn,onCut:Xo,onCopy:on,onPaste:Ri,onRemove:yt,onDuplicateRow:hA,onInsertBeforeRow:Ae,onInsertAfterRow:re,onRemoveRow:xe}),Ne=(F=SA()(ve))!==null&&F!==void 0?F:ve;if(Ne!==!1){var Yi={left:q,top:Z,offsetTop:ne,offsetLeft:Pe,width:RA,height:ee,anchor:U,closeOnOuterClick:!0,onClose:()=>{Se=!1,b()}};Se=!0;var H=r(ccA,{tip:Oe?"Tip: you can open this context menu via right-click or with Ctrl+Q":void 0,items:Ne,onRequestClose(){s(H),b()}},Yi)}}function qo(p){if(!Sr(l(MA)))if(p&&(p.stopPropagation(),p.preventDefault()),p&&p.type==="contextmenu"&&p.target!==l(Xe))In({left:p.clientX,top:p.clientY,width:A2,height:$0,showTip:!1});else{var F,U=(F=l(JA))===null||F===void 0?void 0:F.querySelector(".jse-table-cell.jse-selected-value");if(U)In({anchor:U,offsetTop:2,width:A2,height:$0,showTip:!1});else{var q,Z=(q=l(JA))===null||q===void 0?void 0:q.getBoundingClientRect();Z&&In({top:Z.top+2,left:Z.left+2,width:A2,height:$0,showTip:!1})}}}function Vo(p){In({anchor:QaA(p.target,"BUTTON"),offsetTop:0,width:A2,height:$0,showTip:!0})}function uo(){if(!C()&&l(MA)){var p=nt(l(MA));Fo(Ye(l(tA),p))?rn(p):y(MA,vi(p))}}function Qn(){!C()&&l(MA)&&rn(nt(l(MA)).slice(0,1))}function Kn(){if(!C()&&Vi(l(MA))){var p=l(MA).path,F=Ct(p),U=Ye(l(tA),p),q=!t0(l(tA),l(FA),p),Z=q?String(U):GQ(String(U),D());o("handleToggleEnforceString",{enforceString:q,value:U,updatedValue:Z}),Ht([{op:"replace",path:F,value:Z}],(RA,ee)=>({state:o7(l(tA),ee,p,{type:"value",enforceString:q})}))}}function $A(){return Ei.apply(this,arguments)}function Ei(){return(Ei=_t(function*(){if(o("apply pasted json",l(zA)),l(zA)){var{onPasteAsJson:p}=l(zA);p(),setTimeout(b)}})).apply(this,arguments)}function Ri(){return un.apply(this,arguments)}function un(){return(un=_t(function*(){try{DA(yield navigator.clipboard.readText())}catch(p){console.error(p),y(L,!0)}})).apply(this,arguments)}function Un(){return Zo.apply(this,arguments)}function Zo(){return(Zo=_t(function*(){o("apply pasted multiline text",l(xA)),l(xA)&&(DA(JSON.stringify(l(xA))),setTimeout(b))})).apply(this,arguments)}function Ci(){o("clear pasted json"),y(zA,void 0),b()}function io(){o("clear pasted multiline text"),y(xA,void 0),b()}function Wo(){V()(ir.text)}function Xo(p){return nr.apply(this,arguments)}function nr(){return(nr=_t(function*(p){yield icA({json:l(tA),selection:l(MA),indentation:p?K():void 0,readOnly:C(),parser:D(),onPatch:Ht})})).apply(this,arguments)}function on(){return $i.apply(this,arguments)}function $i(){return $i=_t(function*(){var p=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];l(tA)!==void 0&&(yield ncA({json:l(tA),selection:l(MA),indentation:p?K():void 0,parser:D()}))}),$i.apply(this,arguments)}function yt(){rcA({json:l(tA),text:l(OA),selection:l(MA),keepSelection:!0,readOnly:C(),onChange:O(),onPatch:Ht})}function hn(p){C()||(o("extract",{path:p}),Ht(RaA(l(tA),vi(p))))}function hA(){(function(p){var{json:F,selection:U,columns:q,readOnly:Z,onPatch:RA}=p;if(!Z&&F!==void 0&&U&&uQ(U)){var{rowIndex:ee,columnIndex:ne}=Xc(nt(U),q);Ys("duplicate row",{rowIndex:ee});var Pe=[String(ee)];RA(SaA(F,[Pe]),(Oe,ve)=>({state:ve,selection:vi(PC({rowIndex:ee({state:Yi,selection:vi(PC({rowIndex:Pe,columnIndex:ne},q))}))}})({json:l(tA),selection:l(MA),columns:l(Re),readOnly:C(),onPatch:Ht})}function xe(){(function(p){var{json:F,selection:U,columns:q,readOnly:Z,onPatch:RA}=p;if(!Z&&F!==void 0&&U&&uQ(U)){var{rowIndex:ee,columnIndex:ne}=Xc(nt(U),q);Ys("remove row",{rowIndex:ee}),RA(Ty([[String(ee)]]),(Pe,Oe)=>{var ve=ee0?ee-1:void 0,Ne=ve!==void 0?vi(PC({rowIndex:ve,columnIndex:ne},q)):void 0;return Ys("remove row new selection",{rowIndex:ee,newRowIndex:ve,newSelection:Ne}),{state:Oe,selection:Ne}})}})({json:l(tA),selection:l(MA),columns:l(Re),readOnly:C(),onPatch:Ht})}function ue(){return(ue=_t(function*(p){yield scA({char:p,selectInside:!1,json:l(tA),selection:l(MA),readOnly:C(),parser:D(),onPatch:Ht,onReplaceJson:PA,onSelect:le})})).apply(this,arguments)}function aA(p){var F;p.preventDefault(),DA((F=p.clipboardData)===null||F===void 0?void 0:F.getData("text/plain"))}function DA(p){p!==void 0&&ocA({clipboardText:p,json:l(tA),selection:l(MA),readOnly:C(),parser:D(),onPatch:Ht,onChangeText:Je,onPasteMultilineText:Mi,openRepairModal:no})}function PA(p,F){var U={json:l(tA),text:l(OA)},q={json:l(tA),documentState:l(FA),selection:l(MA),sortedColumn:l(dt),text:l(OA),textIsRepaired:l($e)},Z=uc(p,l(FA)),RA=typeof F=="function"?F(p,Z,l(MA)):void 0;y(tA,RA?.json!==void 0?RA.json:p),y(FA,RA?.state!==void 0?RA.state:Z),y(MA,RA?.selection!==void 0?RA.selection:l(MA)),y(dt,void 0),y(OA,void 0),y($e,!1),y(gA,void 0),Ee(l(tA)),Si(q),Rt(U,void 0)}function Je(p,F){o("handleChangeText");var U={json:l(tA),text:l(OA)},q={json:l(tA),documentState:l(FA),selection:l(MA),sortedColumn:l(dt),text:l(OA),textIsRepaired:l($e)};try{y(tA,G()(p)),y(FA,uc(l(tA),l(FA))),y(OA,void 0),y($e,!1),y(gA,void 0)}catch(RA){try{y(tA,G()(Uc(p))),y(FA,uc(l(tA),l(FA))),y(OA,p),y($e,!0),y(gA,void 0)}catch{y(tA,void 0),y(FA,void 0),y(OA,p),y($e,!1),y(gA,l(OA)!==""?MQ(l(OA),RA.message||String(RA)):void 0)}}if(typeof F=="function"){var Z=F(l(tA),l(FA),l(MA));y(tA,Z?.json!==void 0?Z.json:l(tA)),y(FA,Z?.state!==void 0?Z.state:l(FA)),y(MA,Z?.selection!==void 0?Z.selection:l(MA))}Ee(l(tA)),Si(q),Rt(U,void 0)}function vt(p){o("select validation error",p),y(MA,vi(p.path)),Xi(p.path)}function Yt(p){if(l(tA)!==void 0){var{id:F,onTransform:U,onClose:q}=p,Z=p.rootPath||[];Se=!0,VA()({id:F||g,json:l(tA),rootPath:Z||[],onTransform:RA=>{U?U({operations:RA,json:l(tA),transformedJson:Ma(l(tA),RA)}):(o("onTransform",Z,RA),Ht(RA))},onClose:()=>{Se=!1,setTimeout(b),q&&q()}})}}function rn(p){o("openJSONEditorModal",{path:p}),Se=!0,ie()({content:{json:Ye(l(tA),p)},path:p,onPatch:Ht,onClose:()=>{Se=!1,setTimeout(b)}})}function no(p,F){y(We,{text:p,onParse:U=>Ef(U,q=>Bf(q,D())),onRepair:aaA,onApply:F,onClose:b})}function sn(){(function(p){C()||l(tA)===void 0||(Se=!0,wA()({id:c,json:l(tA),rootPath:p,onSort:F=>{var{operations:U,itemPath:q,direction:Z}=F;o("onSort",U,p,q,Z),Ht(U,(RA,ee)=>({state:ee,sortedColumn:{path:q,sortDirection:Z===-1?Ag.desc:Ag.asc}}))},onClose:()=>{Se=!1,setTimeout(b)}}))})([])}function Ji(){Yt({rootPath:[]})}function bt(p){o("openFind",{findAndReplace:p}),y(LA,!1),y(cA,!1),to(),y(LA,!0),y(cA,p)}function Li(){if(!C()&&E().canUndo){var p=E().undo();if(Uy(p)){var F={json:l(tA),text:l(OA)};y(tA,p.undo.patch?Ma(l(tA),p.undo.patch):p.undo.json),y(FA,p.undo.documentState),y(MA,p.undo.selection),y(dt,p.undo.sortedColumn),y(OA,p.undo.text),y($e,p.undo.textIsRepaired),y(gA,void 0),o("undo",{item:p,json:l(tA)}),Rt(F,p.undo.patch&&p.redo.patch?{json:l(tA),previousJson:F.json,redo:p.undo.patch,undo:p.redo.patch}:void 0),b(),l(MA)&&Xi(nt(l(MA)),{scrollToWhenVisible:!1})}else dA()(p)}}function Mn(){if(!C()&&E().canRedo){var p=E().redo();if(Uy(p)){var F={json:l(tA),text:l(OA)};y(tA,p.redo.patch?Ma(l(tA),p.redo.patch):p.redo.json),y(FA,p.redo.documentState),y(MA,p.redo.selection),y(dt,p.redo.sortedColumn),y(OA,p.redo.text),y($e,p.redo.textIsRepaired),y(gA,void 0),o("redo",{item:p,json:l(tA)}),Rt(F,p.undo.patch&&p.redo.patch?{json:l(tA),previousJson:F.json,redo:p.redo.patch,undo:p.undo.patch}:void 0),b(),l(MA)&&Xi(nt(l(MA)),{scrollToWhenVisible:!1})}else fA()(p)}}function Qt(p){y(P,p.getBoundingClientRect().height)}pA(()=>(k(w()),k(x())),()=>{y(UA,lK({escapeControlCharacters:w(),escapeUnicodeCharacters:x()}))}),pA(()=>l(LA),()=>{(function(p){if(l(JA)){var F=p?O3:-100;l(JA).scrollTo({top:hc(JA,l(JA).scrollTop+=F),left:l(JA).scrollLeft})}})(l(LA))}),pA(()=>k(d()),()=>{(function(p){var F={json:l(tA)},U=W3(p)?p.text!==l(OA):!ri(F.json,p.json);if(o("update external content",{isChanged:U}),U){var q={json:l(tA),documentState:l(FA),selection:l(MA),sortedColumn:l(dt),text:l(OA),textIsRepaired:l($e)};if(W3(p))try{y(tA,G()(p.text)),y(FA,uc(l(tA),l(FA))),y(OA,p.text),y($e,!1),y(gA,void 0)}catch(Z){try{y(tA,G()(Uc(p.text))),y(FA,uc(l(tA),l(FA))),y(OA,p.text),y($e,!0),y(gA,void 0)}catch{y(tA,void 0),y(FA,void 0),y(OA,p.text),y($e,!1),y(gA,l(OA)!==""?MQ(l(OA),Z.message||String(Z)):void 0)}}else y(tA,p.json),y(FA,uc(l(tA),l(FA))),y(OA,void 0),y($e,!1),y(gA,void 0);Ee(l(tA)),y(dt,void 0),Si(q)}})(d())}),pA(()=>k(B()),()=>{(function(p){ri(l(MA),p)||(o("applyExternalSelection",{selection:l(MA),externalSelection:p}),tf(p)&&y(MA,p))})(B())}),pA(()=>(l(Re),l(tA),k(R()),l(_e)),()=>{y(Re,wo(l(tA))?function(p,F){var U=new Set(F.map(Ct)),q=new Set(p.map(Ct));for(var Z of U)q.has(Z)||U.delete(Z);for(var RA of q)U.has(RA)||U.add(RA);return[...U].map(xs)}(vYA(l(tA),R(),l(_e)),l(Re)):[])}),pA(()=>(l(tA),l(Re)),()=>{y(St,!(!l(tA)||Gi(l(Re))))}),pA(()=>(l(tA),l(_e)),()=>{y(A,Array.isArray(l(tA))&&l(tA).length>l(_e))}),pA(()=>(l(X),l(P),l(tA),l(LA),O3),()=>{y(i,MYA(l(X),l(P),l(tA),T,kA,l(LA)?O3:0))}),pA(()=>l(tA),()=>{l(tA),l(JA)&&l(JA).scrollTo({top:l(JA).scrollTop,left:l(JA).scrollLeft})}),pA(()=>l(MA),()=>{var p;p=l(MA),ri(p,B())||(o("onSelect",p),j()(p))}),pA(()=>(k(C()),k(u()),k(D()),l(UA),l(tA),l(FA),k(EA())),()=>{y(ot,{mode:ir.table,readOnly:C(),truncateTextSize:u(),parser:D(),normalization:l(UA),getJson:()=>l(tA),getDocumentState:()=>l(FA),findElement:vn,findNextInside:Jt,focus:b,onPatch:(p,F)=>Ht(function(U,q){return U.flatMap(Z=>{if(V8(Z)){var RA=xs(Z.path);if(RA.length>0){for(var ee=[Z],ne=yi(RA);ne.length>0&&!As(q,ne);)ee.unshift({op:"add",path:Ct(ne),value:{}}),ne=yi(ne);return ee}}return Z})}(p,l(tA)),F),onSelect:le,onFind:bt,onPasteJson:Bi,onRenderValue:EA()})}),pA(()=>(l(tA),k(J()),k(D()),k(z())),()=>{Le(l(tA),J(),D(),z())}),pA(()=>(l(Zi),l(Re)),()=>{y(n,bYA(l(Zi),l(Re)))}),ln(),qt(!0);var fn=HTA();ce("mousedown",i2,function(p){!KQ(p.target,F=>F===l(BA))&&Sr(l(MA))&&(o("click outside the editor, exit edit mode"),y(MA,e0(l(MA))),Wt&&l(Xe)&&(l(Xe).focus(),l(Xe).blur()),o("blur (outside editor)"),l(Xe)&&l(Xe).blur())});var Te,Qi=Mt(fn),mi=W(Qi),bn=p=>{(function(F,U){ft(U,!1);var q=M(U,"containsValidArray",9),Z=M(U,"readOnly",9),RA=M(U,"showSearch",13,!1),ee=M(U,"history",9),ne=M(U,"onSort",9),Pe=M(U,"onTransform",9),Oe=M(U,"onContextMenu",9),ve=M(U,"onUndo",9),Ne=M(U,"onRedo",9),Yi=M(U,"onRenderMenu",9);function H(){RA(!RA())}var rA=$(void 0,!0),HA=$(void 0,!0);pA(()=>(k(Z()),k(ne()),k(q()),k(Pe()),k(Oe()),k(ve()),k(ee()),k(Ne())),()=>{y(rA,Z()?[{type:"space"}]:[{type:"button",icon:Q4,title:"Sort",className:"jse-sort",onClick:ne(),disabled:Z()||!q()},{type:"button",icon:d4,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:Pe(),disabled:Z()||!q()},{type:"button",icon:u4,title:"Search (Ctrl+F)",className:"jse-search",onClick:H,disabled:!q()},{type:"button",icon:sL,title:EK,className:"jse-contextmenu",onClick:Oe()},{type:"separator"},{type:"button",icon:K5,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:ve(),disabled:!ee().canUndo},{type:"button",icon:G5,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:Ne(),disabled:!ee().canRedo},{type:"space"}])}),pA(()=>(k(Yi()),l(rA)),()=>{y(HA,Yi()(l(rA))||l(rA))}),ln(),qt(!0),l7(F,{get items(){return l(HA)}}),mt()})(p,{get containsValidArray(){return l(St)},get readOnly(){return C()},get history(){return E()},onSort:sn,onTransform:Ji,onUndo:Li,onRedo:Mn,onContextMenu:Vo,get onRenderMenu(){return IA()},get showSearch(){return l(LA)},set showSearch(F){y(LA,F)},$$legacy:!0})};GA(mi,p=>{h()&&p(bn)});var Ko=CA(mi,2),Ot=p=>{var F=YTA(),U=Mt(F),q=W(U);q.readOnly=!0,Qo(q,ne=>y(Xe,ne),()=>l(Xe));var Z=CA(U,2),RA=ne=>{var Pe=UTA(),Oe=Mt(Pe);AcA(W(Oe),{get json(){return l(tA)},get documentState(){return l(FA)},get parser(){return D()},get showSearch(){return l(LA)},get showReplace(){return l(cA)},get readOnly(){return C()},get columns(){return l(Re)},onSearch:Gt,onFocus:ct,onPatch:Ht,onClose:Dt});var ve=CA(Oe,2),Ne=W(ve),Yi=W(Ne),H=W(Yi),rA=W(H),HA=W(rA),De=rt=>{var Ai=_o(),ho=ZA(()=>(k(lQ),l(n),oA(()=>{var ko;return lQ([],(ko=l(n))===null||ko===void 0?void 0:ko.root)}))),Fr=Mt(Ai),Tn=ko=>{var qr=RTA();wQ(W(qr),{get validationError(){return l(ho)},get onExpand(){return $c}}),iA(ko,qr)};GA(Fr,ko=>{l(ho)&&ko(Tn)}),iA(rt,Ai)};GA(HA,rt=>{k(Gi),l(n),oA(()=>{var Ai;return!Gi((Ai=l(n))===null||Ai===void 0?void 0:Ai.root)})&&rt(De)});var fe=CA(rA);jo(fe,1,()=>l(Re),cr,(rt,Ai)=>{var ho=LTA();(function(Fr,Tn){ft(Tn,!1);var ko=$(void 0,!0),qr=$(void 0,!0),g0=$(void 0,!0),Ha=M(Tn,"path",9),ng=M(Tn,"sortedColumn",9),Wg=M(Tn,"readOnly",9),og=M(Tn,"onSort",9);pA(()=>(k(Ha()),Ta),()=>{y(ko,Gi(Ha())?"values":Ta(Ha()))}),pA(()=>(k(ng()),k(Ha())),()=>{var Zn;y(qr,ng()&&ri(Ha(),(Zn=ng())===null||Zn===void 0?void 0:Zn.path)?ng().sortDirection:void 0)}),pA(()=>(l(qr),RrA),()=>{y(g0,l(qr)?RrA[l(qr)]:void 0)}),ln(),qt(!0);var Vr,Zr=fTA(),Oa=W(Zr),l0=W(Oa),za=CA(Oa,2),Uo=Zn=>{var $o=hTA(),Xg=W($o),gd=ZA(()=>(l(qr),k(Ag),k(Nl),k(oL),oA(()=>l(qr)===Ag.asc?Nl:oL)));Ui(Xg,{get data(){return l(gd)}}),we(()=>gn($o,"title","Currently sorted in ".concat(l(g0)," order"))),iA(Zn,$o)};GA(za,Zn=>{l(qr)!==void 0&&Zn(Uo)}),we((Zn,$o)=>{Vr=jt(Zr,1,"jse-column-header svelte-2i3vdx",null,Vr,Zn),gn(Zr,"title",Wg()?l(ko):l(ko)+" (Click to sort the data by this column)"),pt(l0,$o)},[()=>({"jse-readonly":Wg()}),()=>(k(X0),l(ko),k(50),oA(()=>X0(l(ko),50)))],ZA),ce("click",Zr,function(){Wg()||og()({path:Ha(),sortDirection:l(qr)===Ag.asc?Ag.desc:Ag.asc})}),iA(Fr,Zr),mt()})(W(ho),{get path(){return l(Ai)},get sortedColumn(){return l(dt)},get readOnly(){return C()},onSort:XA}),iA(rt,ho)});var Ie=CA(fe),Bt=rt=>{var Ai=xTA(),ho=W(Ai),Fr=ZA(()=>(l(tA),oA(()=>Array.isArray(l(tA))?l(tA).length:0)));(function(Tn,ko){ft(ko,!1);var qr=M(ko,"count",9),g0=M(ko,"maxSampleCount",9),Ha=M(ko,"readOnly",9),ng=M(ko,"onRefresh",9);qt(!0);var Wg,og=STA();Ui(W(og),{get data(){return vX}}),we(Vr=>{Wg=jt(og,1,"jse-column-header svelte-fzj761",null,Wg,Vr),gn(og,"title","The Columns are created by sampling ".concat(g0()," items out of ").concat(qr(),". ")+"If you're missing a column, click here to sample all of the items instead of a subset. This is slower.")},[()=>({"jse-readonly":Ha()})],ZA),ce("click",og,()=>ng()()),iA(Tn,og),mt()})(ho,{get count(){return l(Fr)},get maxSampleCount(){return l(_e)},get readOnly(){return C()},onRefresh:()=>y(_e,1/0)}),iA(rt,Ai)};GA(Ie,rt=>{l(A)&&rt(Bt)});var At,ui,Cn=CA(H),xi=W(Cn),Yn=CA(Cn);jo(Yn,1,()=>(l(i),oA(()=>l(i).visibleItems)),cr,(rt,Ai,ho)=>{var Fr=KTA(),Tn=ZA(()=>(l(i),oA(()=>l(i).startIndex+ho))),ko=ZA(()=>(l(n),k(l(Tn)),oA(()=>l(n).rows[l(Tn)]))),qr=ZA(()=>(k(lQ),k(l(Tn)),k(l(ko)),oA(()=>{var Vr;return lQ([String(l(Tn))],(Vr=l(ko))===null||Vr===void 0?void 0:Vr.row)}))),g0=ZA(()=>(k($l),l(tA),l(Me),k(l(Tn)),oA(()=>$l(l(tA),l(Me),[String(l(Tn))])))),Ha=W(Fr);XsA(Ha,()=>l(Tn),Vr=>{var Zr=NTA(),Oa=W(Zr),l0=CA(Oa),za=Uo=>{wQ(Uo,{get validationError(){return l(qr)},get onExpand(){return $c}})};GA(l0,Uo=>{l(qr)&&Uo(za)}),Ts(Zr,(Uo,Zn)=>wy?.(Uo,Zn),()=>Uo=>function(Zn,$o){T[$o]=Zn.getBoundingClientRect().height}(Uo,l(Tn))),we(()=>{var Uo;return pt(Oa,"".concat((Uo=l(Tn))!==null&&Uo!==void 0?Uo:""," "))}),iA(Vr,Zr)});var ng=CA(Ha);jo(ng,1,()=>l(Re),cr,(Vr,Zr,Oa,l0)=>{var za,Uo=_TA(),Zn=ZA(()=>(k(l(Tn)),l(Zr),oA(()=>[String(l(Tn))].concat(l(Zr))))),$o=ZA(()=>(k(Ye),l(Ai),l(Zr),oA(()=>Ye(l(Ai),l(Zr))))),Xg=ZA(()=>(k(Vi),l(MA),k(n0),k(l(Zn)),oA(()=>Vi(l(MA))&&n0(l(MA).path,l(Zn))))),gd=ZA(()=>(k(l(ko)),oA(()=>{var gr;return(gr=l(ko))===null||gr===void 0?void 0:gr.columns[Oa]}))),ld=ZA(()=>(k(lQ),k(l(Zn)),k(l(gd)),oA(()=>lQ(l(Zn),l(gd))))),jQ=W(Uo),Id=W(jQ),qQ=gr=>{var sa=ZA(()=>(k(Hy),k($l),l(Ai),k(l(g0)),l(Zr),oA(()=>Hy($l(l(Ai),l(g0),l(Zr)))))),VQ=ZA(()=>(k(l(sa)),oA(()=>!!l(sa)&&l(sa).some(EI=>EI.active)))),ZQ=ZA(()=>(k(Gi),k(l(sa)),oA(()=>!Gi(l(sa)))));(function(EI,as){ft(as,!1);var WQ=M(as,"path",9),LU=M(as,"value",9),xU=M(as,"parser",9),WlA=M(as,"isSelected",9),XlA=M(as,"containsSearchResult",9),$lA=M(as,"containsActiveSearchResult",9),A0A=M(as,"onEdit",9);qt(!0);var NU,Nf=uTA(),e0A=W(Nf);we((XQ,t0A)=>{NU=jt(Nf,1,"jse-inline-value svelte-h57m0p",null,NU,XQ),pt(e0A,t0A)},[()=>({"jse-selected":WlA(),"jse-highlight":XlA(),"jse-active":$lA()}),()=>(k(X0),k(xU()),k(LU()),k(50),oA(()=>{var XQ;return X0((XQ=xU().stringify(LU()))!==null&&XQ!==void 0?XQ:"",50)}))],ZA),ce("dblclick",Nf,()=>A0A()(WQ())),iA(EI,Nf),mt()})(gr,{get path(){return l(Zn)},get value(){return l($o)},get parser(){return D()},get isSelected(){return l(Xg)},get containsSearchResult(){return l(ZQ)},get containsActiveSearchResult(){return l(VQ)},onEdit:rn})},hv=gr=>{var sa=ZA(()=>(k($l),l(tA),l(Me),k(l(Zn)),oA(()=>{var as;return(as=$l(l(tA),l(Me),l(Zn)))===null||as===void 0?void 0:as.searchResults}))),VQ=ZA(()=>l($o)!==void 0?l($o):""),ZQ=ZA(()=>(k(t0),l(tA),l(FA),k(l(Zn)),oA(()=>t0(l(tA),l(FA),l(Zn))))),EI=ZA(()=>l(Xg)?l(MA):void 0);XaA(gr,{get path(){return l(Zn)},get value(){return l(VQ)},get enforceString(){return l(ZQ)},get selection(){return l(EI)},get searchResultItems(){return l(sa)},get context(){return l(ot)}})};GA(Id,gr=>{k(Fo),k(l($o)),oA(()=>Fo(l($o)))?gr(qQ):gr(hv,!1)});var fv=CA(Id),mv=gr=>{var sa=FTA();P1(W(sa),{selected:!0,onContextMenu:In}),iA(gr,sa)};GA(fv,gr=>{k(C()),k(l(Xg)),k(Sr),l(MA),oA(()=>!C()&&l(Xg)&&!Sr(l(MA)))&&gr(mv)});var $g=CA(jQ,2),BI=gr=>{wQ(gr,{get validationError(){return l(ld)},get onExpand(){return $c}})};GA($g,gr=>{l(ld)&&gr(BI)}),we((gr,sa)=>{gn(Uo,"data-path",gr),za=jt(jQ,1,"jse-value-outer svelte-u14cgx",null,za,sa)},[()=>(k(My),k(l(Zn)),oA(()=>My(l(Zn)))),()=>({"jse-selected-value":l(Xg)})],ZA),iA(Vr,Uo)});var Wg=CA(ng),og=Vr=>{iA(Vr,GTA())};GA(Wg,Vr=>{l(A)&&Vr(og)}),iA(rt,Fr)});var Tt,bo=W(CA(Yn));Qo(ve,rt=>y(JA,rt),()=>l(JA)),Ts(ve,(rt,Ai)=>wy?.(rt,Ai),()=>Qt),rs(()=>ce("scroll",ve,et));var kn=CA(ve,2),oo=rt=>{var Ai=ZA(()=>(l(zA),oA(()=>"You pasted a JSON ".concat(Array.isArray(l(zA).contents)?"array":"object"," as text")))),ho=ZA(()=>[{icon:_0,text:"Paste as JSON instead",title:"Paste the text as JSON instead of a single value",onMouseDown:$A},{text:"Leave as is",title:"Keep the pasted content as a single value",onClick:Ci}]);pc(rt,{type:"info",get message(){return l(Ai)},get actions(){return l(ho)}})};GA(kn,rt=>{l(zA)&&rt(oo)});var An=CA(kn,2),Lt=rt=>{var Ai=ZA(()=>[{icon:_0,text:"Paste as string instead",title:"Paste the clipboard data as a single string value instead of an array",onClick:Un},{text:"Leave as is",title:"Keep the pasted array",onClick:io}]);pc(rt,{type:"info",message:"Multiline text was pasted as array",get actions(){return l(Ai)}})};GA(An,rt=>{l(xA)&&rt(Lt)});var Ti=CA(An,2),xt=rt=>{var Ai=ZA(()=>C()?[]:[{icon:U5,text:"Ok",title:"Accept the repaired document",onClick:Wi},{icon:B4,text:"Repair manually instead",title:"Leave the document unchanged and repair it manually instead",onClick:Wo}]);pc(rt,{type:"success",message:"The loaded JSON document was invalid but is successfully repaired.",get actions(){return l(Ai)},onClose:b})};GA(Ti,rt=>{l($e)&&rt(xt)}),SK(CA(Ti,2),{get validationErrors(){return l(Zi)},selectError:vt}),we((rt,Ai,ho)=>{At=jt(Cn,1,"jse-table-invisible-start-section svelte-u14cgx",null,At,rt),gn(xi,"colspan",(l(Re),oA(()=>l(Re).length))),ui=eg(xi,"",ui,Ai),gn(bo,"colspan",(l(Re),oA(()=>l(Re).length))),Tt=eg(bo,"",Tt,ho)},[()=>({"jse-search-box-background":l(LA)}),()=>({height:(l(i),oA(()=>l(i).startHeight+"px"))}),()=>({height:(l(i),oA(()=>l(i).endHeight+"px"))})],ZA),iA(ne,Pe)},ee=(ne,Pe)=>{var Oe=Ne=>{var Yi=JTA(),H=Mt(Yi),rA=ZA(()=>C()?[]:[{icon:B4,text:"Repair manually",title:'Open the document in "code" mode and repair it manually',onClick:Wo}]);pc(H,{type:"error",message:"The loaded JSON document is invalid and could not be repaired automatically.",get actions(){return l(rA)}}),acA(CA(H,2),{get text(){return l(OA)},get json(){return l(tA)},get indentation(){return K()},get parser(){return D()}}),iA(Ne,Yi)},ve=Ne=>{kTA(Ne,{get text(){return l(OA)},get json(){return l(tA)},get readOnly(){return C()},get parser(){return D()},openJSONEditorModal:rn,extractPath:hn,get onChangeMode(){return V()},onClick:()=>{b()}})};GA(ne,Ne=>{l(gA)&&l(OA)!==void 0&&l(OA)!==""?Ne(Oe):Ne(ve,!1)},Pe)};GA(Z,ne=>{l(St)?ne(RA):ne(ee,!1)}),ce("paste",q,aA),iA(p,F)},Nr=p=>{iA(p,TTA())};GA(Ko,p=>{I?p(Nr,!1):p(Ot)}),Qo(Qi,p=>y(BA,p),()=>l(BA));var Jn=CA(Qi,2),Q=p=>{ZaA(p,{onClose:()=>y(L,!1)})};GA(Jn,p=>{l(L)&&p(Q)});var m=CA(Jn,2),v=p=>{WaA(p,AI(()=>l(We),{onClose:()=>{var F;(F=l(We))===null||F===void 0||F.onClose(),y(We,void 0)}}))};return GA(m,p=>{l(We)&&p(v)}),we(p=>Te=jt(Qi,1,"jse-table-mode svelte-u14cgx",null,Te,p),[()=>({"no-main-menu":!h()})],ZA),ce("mousedown",Qi,function(p){if(p.buttons===1||p.buttons===2){var F=p.target;F.isContentEditable||b();var U=uaA(F);if(U){if(Sr(l(MA))&&nf(l(tA),l(MA),U))return;y(MA,vi(U)),p.preventDefault()}}}),ce("keydown",Qi,function(p){var F=s2(p);if(o("keydown",{combo:F,key:p.key}),F==="Ctrl+X"&&(p.preventDefault(),Xo(!0)),F==="Ctrl+Shift+X"&&(p.preventDefault(),Xo(!1)),F==="Ctrl+C"&&(p.preventDefault(),on(!0)),F==="Ctrl+Shift+C"&&(p.preventDefault(),on(!1)),F==="Ctrl+D"&&(p.preventDefault(),hA()),F!=="Delete"&&F!=="Backspace"||(p.preventDefault(),yt()),F==="Insert"&&p.preventDefault(),F==="Ctrl+A"&&p.preventDefault(),F==="Ctrl+Q"&&qo(p),F==="ArrowLeft"&&(p.preventDefault(),ai(),l(MA))){var U=function(Pe,Oe){var{rowIndex:ve,columnIndex:Ne}=Xc(nt(Oe),Pe);return Ne>0?vi(PC({rowIndex:ve,columnIndex:Ne-1},Pe)):Oe}(l(Re),l(MA));y(MA,U),Mo(nt(U))}if(F==="ArrowRight"&&(p.preventDefault(),ai(),l(MA))){var q=function(Pe,Oe){var{rowIndex:ve,columnIndex:Ne}=Xc(nt(Oe),Pe);return Ne0?vi(PC({rowIndex:ve-1,columnIndex:Ne},Pe)):Oe}(l(Re),l(MA));y(MA,Z),Mo(nt(Z))}if(F==="ArrowDown"&&(p.preventDefault(),ai(),l(MA))){var RA=function(Pe,Oe,ve){var{rowIndex:Ne,columnIndex:Yi}=Xc(nt(ve),Oe);return Ney(UA,L)}).get()),BA=$(a());function JA(L){if(GrA(L)){y(BA,L.undo.mode);var T=l(UA).items(),P=T.findIndex(kA=>kA===L),X=P!==-1?T[P-1]:void 0;ie("handleUndo",{index:P,item:L,items:T,prevItem:X}),X&&i(X.redo.selection),J()(l(BA))}}function Xe(L){if(GrA(L)){y(BA,L.redo.mode);var T=l(UA).items(),P=T.findIndex(kA=>kA===L),X=P!==-1?T[P+1]:void 0;ie("handleRedo",{index:P,item:L,items:T,nextItem:X}),X&&i(X.undo.selection),J()(l(BA))}}var We=$(),KA={type:"separator"},tA=$(),OA=$();function gA(L){if(l(lA))return l(lA).patch(L);if(l(wA))return l(wA).patch(L);if(l(VA))return l(VA).patch(L);throw new Error('Method patch is not available in mode "'.concat(l(BA),'"'))}function zA(L,T){if(l(lA))return l(lA).expand(L,T);if(l(VA))return l(VA).expand(L,T);throw new Error('Method expand is not available in mode "'.concat(l(BA),'"'))}function xA(L,T){if(l(lA))return l(lA).collapse(L,T);if(l(VA))return l(VA).collapse(L,T);throw new Error('Method collapse is not available in mode "'.concat(l(BA),'"'))}function Me(L){if(l(VA))l(VA).openTransformModal(L);else if(l(lA))l(lA).openTransformModal(L);else{if(!l(wA))throw new Error('Method transform is not available in mode "'.concat(l(BA),'"'));l(wA).openTransformModal(L)}}function LA(){if(l(VA))return l(VA).validate();if(l(lA))return l(lA).validate();if(l(wA))return l(wA).validate();throw new Error('Method validate is not available in mode "'.concat(l(BA),'"'))}function cA(){return l(lA)?l(lA).acceptAutoRepair():A()}function Gt(L){if(l(lA))return l(lA).scrollTo(L);if(l(wA))return l(wA).scrollTo(L);throw new Error('Method scrollTo is not available in mode "'.concat(l(BA),'"'))}function ct(L){if(l(lA))return l(lA).findElement(L);if(l(wA))return l(wA).findElement(L);throw new Error('Method findElement is not available in mode "'.concat(l(BA),'"'))}function oe(){l(VA)?l(VA).focus():l(lA)?l(lA).focus():l(wA)&&l(wA).focus()}function Dt(){return _e.apply(this,arguments)}function _e(){return(_e=_t(function*(){l(VA)&&(yield l(VA).refresh())})).apply(this,arguments)}pA(()=>k(a()),()=>{(function(L){if(L!==l(BA)){var T={type:"mode",undo:{mode:l(BA),selection:void 0},redo:{mode:L,selection:void 0}};l(BA)==="text"&&l(VA)&&l(VA).flush(),ie("add history item",T),l(UA).add(T),y(BA,L)}})(a())}),pA(()=>(l(BA),k(J())),()=>{y(We,[{type:"button",text:"text",title:"Switch to text mode (current mode: ".concat(l(BA),")"),className:"jse-group-button jse-first"+(l(BA)===ir.text?" jse-selected":""),onClick:()=>J()(ir.text)},{type:"button",text:"tree",title:"Switch to tree mode (current mode: ".concat(l(BA),")"),className:"jse-group-button "+(l(BA)===ir.tree?" jse-selected":""),onClick:()=>J()(ir.tree)},{type:"button",text:"table",title:"Switch to table mode (current mode: ".concat(l(BA),")"),className:"jse-group-button jse-last"+(l(BA)===ir.table?" jse-selected":""),onClick:()=>J()(ir.table)}])}),pA(()=>(l(We),k(V()),l(BA),k(D()),k(n())),()=>{y(tA,L=>{var T=_G(L[0])?l(We).concat(L):l(We).concat(KA,L),P=g4(T);return V()(T,{mode:l(BA),modal:D(),readOnly:n()})||P})}),pA(()=>(k(j()),l(BA),k(D()),k(n()),k(i())),()=>{y(OA,L=>{var T,P=g4(L);return(T=j()(L,{mode:l(BA),modal:D(),readOnly:n(),selection:i()}))!==null&&T!==void 0?T:!n()&&P})}),ln(),qt();var Re=_o(),St=Mt(Re),Se=L=>{Qo(QTA(L,{get externalContent(){return A()},get externalSelection(){return i()},get history(){return l(UA)},get readOnly(){return n()},get indentation(){return o()},get tabSize(){return r()},get mainMenuBar(){return c()},get statusBar(){return I()},get askToFormat(){return C()},get escapeUnicodeCharacters(){return B()},get parser(){return u()},get validator(){return w()},get validationParser(){return x()},get onChange(){return G()},get onChangeMode(){return J()},get onSelect(){return z()},onUndo:JA,onRedo:Xe,get onError(){return dA()},get onFocus(){return fA()},get onBlur(){return EA()},get onRenderMenu(){return l(tA)},get onSortModal(){return IA()},get onTransformModal(){return SA()},$$legacy:!0}),T=>y(VA,T),()=>l(VA))},Wt=(L,T)=>{var P=kA=>{Qo(OTA(kA,{get externalContent(){return A()},get externalSelection(){return i()},get history(){return l(UA)},get readOnly(){return n()},get truncateTextSize(){return s()},get mainMenuBar(){return c()},get escapeControlCharacters(){return d()},get escapeUnicodeCharacters(){return B()},get flattenColumns(){return E()},get parser(){return u()},get parseMemoizeOne(){return h()},get validator(){return w()},get validationParser(){return x()},get indentation(){return o()},get onChange(){return G()},get onChangeMode(){return J()},get onSelect(){return z()},onUndo:JA,onRedo:Xe,get onRenderValue(){return K()},get onFocus(){return fA()},get onBlur(){return EA()},get onRenderMenu(){return l(tA)},get onRenderContextMenu(){return l(OA)},get onSortModal(){return IA()},get onTransformModal(){return SA()},get onJSONEditorModal(){return nA()},$$legacy:!0}),le=>y(wA,le),()=>l(wA))},X=kA=>{Qo($G(kA,{get externalContent(){return A()},get externalSelection(){return i()},get history(){return l(UA)},get readOnly(){return n()},get indentation(){return o()},get truncateTextSize(){return s()},get mainMenuBar(){return c()},get navigationBar(){return g()},get escapeControlCharacters(){return d()},get escapeUnicodeCharacters(){return B()},get parser(){return u()},get parseMemoizeOne(){return h()},get validator(){return w()},get validationParser(){return x()},get pathParser(){return R()},get onError(){return dA()},get onChange(){return G()},get onChangeMode(){return J()},get onSelect(){return z()},onUndo:JA,onRedo:Xe,get onRenderValue(){return K()},get onClassName(){return O()},get onFocus(){return fA()},get onBlur(){return EA()},get onRenderMenu(){return l(tA)},get onRenderContextMenu(){return l(OA)},get onSortModal(){return IA()},get onTransformModal(){return SA()},get onJSONEditorModal(){return nA()},$$legacy:!0}),le=>y(lA,le),()=>l(lA))};GA(L,kA=>{l(BA),k(ir),oA(()=>l(BA)===ir.table)?kA(P):kA(X,!1)},T)};return GA(St,L=>{l(BA),k(ir),oA(()=>l(BA)===ir.text||String(l(BA))==="code")?L(Se):L(Wt,!1)}),iA(t,Re),Ft(e,"patch",gA),Ft(e,"expand",zA),Ft(e,"collapse",xA),Ft(e,"transform",Me),Ft(e,"validate",LA),Ft(e,"acceptAutoRepair",cA),Ft(e,"scrollTo",Gt),Ft(e,"findElement",ct),Ft(e,"focus",oe),Ft(e,"refresh",Dt),mt({patch:gA,expand:zA,collapse:xA,transform:Me,validate:LA,acceptAutoRepair:cA,scrollTo:Gt,findElement:ct,focus:oe,refresh:Dt})}Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-modal-wrapper.svelte-v0el4e { - flex: 1; - display: flex; - min-width: 0; - min-height: 0; - flex-direction: column; -} -.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) { - flex: 1; - display: flex; - flex-direction: column; - padding: 20px; - overflow: auto; - min-width: 0; - min-height: 0; -} -.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) { - display: flex; - flex-direction: row; - justify-content: flex-end; - padding-top: var(--jse-padding, 10px); -} -.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) button.jse-primary:where(.svelte-v0el4e) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); - color: var(--jse-button-primary-color, #fff); - padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); - border-radius: 3px; -} -.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) button.jse-primary:where(.svelte-v0el4e):hover { - background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); -} -.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) button.jse-primary:where(.svelte-v0el4e):disabled { - background: var(--jse-button-primary-background-disabled, #9d9d9d); -} -.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-label:where(.svelte-v0el4e) { - font-weight: bold; - display: block; - box-sizing: border-box; -} -.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-label:where(.svelte-v0el4e) .jse-label-inner:where(.svelte-v0el4e) { - margin-top: calc(2 * var(--jse-padding, 10px)); - margin-bottom: calc(0.5 * var(--jse-padding, 10px)); - box-sizing: border-box; -} -.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-modal-inline-editor:where(.svelte-v0el4e) { - flex: 1; - min-height: 150px; - min-width: 0; - max-width: 100%; - display: flex; - --jse-theme-color: var(--jse-modal-editor-theme-color, #707070); - --jse-theme-color-highlight: var(--jse-modal-editor-theme-color-highlight, #646464); -} -.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) { - gap: var(--jse-padding, 10px); - align-items: center; -} -.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) .jse-error:where(.svelte-v0el4e) { - flex: 1; - color: var(--jse-error-color, #ee5341); -} -.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) button.jse-secondary:where(.svelte-v0el4e) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - background: var(--jse-button-secondary-background, #d3d3d3); - color: var(--jse-button-secondary-color, var(--jse-text-color, #4d4d4d)); - padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); - border-radius: 3px; -} -.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) button.jse-secondary:where(.svelte-v0el4e):hover { - background: var(--jse-button-secondary-background-highlight, #e1e1e1); -} -.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) button.jse-secondary:where(.svelte-v0el4e):disabled { - background: var(--jse-button-secondary-background-disabled, #9d9d9d); -} -.jse-modal-wrapper.svelte-v0el4e input:where(.svelte-v0el4e) { - border: var(--jse-input-border, 1px solid #d8dbdf); - outline: none; - box-sizing: border-box; - padding: calc(0.5 * var(--jse-padding, 10px)); - font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); - font-size: var(--jse-font-size-mono, 14px); - color: inherit; - background: var(--jse-input-background, var(--jse-background-color, #fff)); -} -.jse-modal-wrapper.svelte-v0el4e input:where(.svelte-v0el4e):focus { - border: var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa))); -} -.jse-modal-wrapper.svelte-v0el4e input:where(.svelte-v0el4e):read-only { - background: var(--jse-input-background-readonly, transparent); -}`);var zTA=vA('
              '),PTA=vA(''),jTA=vA(''),qTA=vA(''),VTA=vA('
              Path
              Contents
              ',1),ZTA=vA('
              '),WTA={};Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-modal-contents.svelte-1v9c92j { - flex: 1; - display: flex; - flex-direction: column; - padding: 20px; - overflow: auto; - min-width: 0; - min-height: 0; -} -.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) { - display: flex; - flex-direction: row; - justify-content: flex-end; - padding-top: var(--jse-padding, 10px); -} -.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) button.jse-primary:where(.svelte-1v9c92j) { - border: none; - background: transparent; - color: inherit; - cursor: pointer; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - padding: 5px; - margin: 0; - background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); - color: var(--jse-button-primary-color, #fff); - padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); - border-radius: 3px; -} -.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) button.jse-primary:where(.svelte-1v9c92j):hover { - background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); -} -.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) button.jse-primary:where(.svelte-1v9c92j):disabled { - background: var(--jse-button-primary-background-disabled, #9d9d9d); -} -.jse-modal-contents.svelte-1v9c92j table:where(.svelte-1v9c92j) { - width: 100%; - border-collapse: collapse; - border-spacing: 0; -} -.jse-modal-contents.svelte-1v9c92j table:where(.svelte-1v9c92j) th:where(.svelte-1v9c92j), -.jse-modal-contents.svelte-1v9c92j table:where(.svelte-1v9c92j) td:where(.svelte-1v9c92j) { - text-align: left; - vertical-align: middle; - font-weight: normal; - padding-bottom: var(--jse-padding, 10px); -} -.jse-modal-contents.svelte-1v9c92j input.jse-path:where(.svelte-1v9c92j) { - width: 100%; - box-sizing: border-box; - padding: 5px 10px; - border: var(--jse-input-border, 1px solid #d8dbdf); - border-radius: var(--jse-input-radius, 3px); - font-family: inherit; - font-size: inherit; - background: inherit; - background: var(--jse-input-background-readonly, transparent); - color: inherit; - outline: none; -} -.jse-modal-contents.svelte-1v9c92j .svelte-select input { - box-sizing: border-box; -} -.jse-modal-contents.svelte-1v9c92j .jse-space:where(.svelte-1v9c92j) { - height: 200px; -} -.jse-modal-contents.svelte-1v9c92j .jse-space:where(.svelte-1v9c92j) .jse-error:where(.svelte-1v9c92j) { - color: var(--jse-error-color, #ee5341); -}`);var CQ=i7(()=>WTA),XTA=vA('Property'),$TA=vA('
              '),AHA=vA('
              Path
              Direction
              ',1);Ut(`/* over all fonts, sizes, and colors */ -/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ -/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ -/* main, menu, modal */ -/* jsoneditor modal */ -/* tooltip in text mode */ -/* panels: navigation bar, gutter, search box */ -/* navigation-bar */ -/* context menu */ -/* contents: json key and values */ -/* contents: selected or hovered */ -/* contents: section of collapsed items in an array */ -/* contents: highlighting of search matches */ -/* contents: inline tags inside the JSON document */ -/* contents: table */ -/* controls in modals: inputs, buttons, and \`a\` */ -/* messages */ -/* svelte-select */ -/* color picker */ -.jse-main.svelte-57bmz4 { - width: 100%; - height: 100%; - min-width: 0; - min-height: 150px; - font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); - font-size: var(--jse-font-size, 16px); - line-height: normal; - position: relative; - display: flex; - flex-direction: row; -} -.jse-main.svelte-57bmz4:not(.jse-focus) { - --jse-selection-background-color: var(--jse-selection-background-inactive-color, #e8e8e8); - --jse-context-menu-pointer-background: var(--jse-context-menu-pointer-hover-background, #b2b2b2); -}`);var eHA=vA('
              ',1);function tHA(t,e){ft(e,!1);var A=$(void 0,!0),i=xr("jsoneditor:JSONEditor"),n={text:""},o=void 0,r=!1,s=ir.tree,a=!0,c=!0,g=!0,I=!0,C=!1,d=!1,B=!0,E=JSON,u=void 0,h=JSON,w={parse:ZKA,stringify:Ta},x=[BKA],R=x[0].id,D=$c,G=void 0,J=void 0,z=VKA,K=$c,O=$c,V=$c,j=$c,dA=$A=>{console.error($A),alert($A.toString())},fA=$c,EA=$c,IA=M(e,"content",13,n),SA=M(e,"selection",13,o),nA=M(e,"readOnly",13,r),lA=M(e,"indentation",13,2),wA=M(e,"tabSize",13,4),VA=M(e,"truncateTextSize",13,1e3),ie=M(e,"mode",13,s),UA=M(e,"mainMenuBar",13,a),BA=M(e,"navigationBar",13,c),JA=M(e,"statusBar",13,g),Xe=M(e,"askToFormat",13,I),We=M(e,"escapeControlCharacters",13,C),KA=M(e,"escapeUnicodeCharacters",13,d),tA=M(e,"flattenColumns",13,B),OA=M(e,"parser",13,E),gA=M(e,"validator",13,u),zA=M(e,"validationParser",13,h),xA=M(e,"pathParser",13,w),Me=M(e,"queryLanguages",13,x),LA=M(e,"queryLanguageId",13,R),cA=M(e,"onChangeQueryLanguage",13,D),Gt=M(e,"onChange",13,G),ct=M(e,"onSelect",13,J),oe=M(e,"onRenderValue",13,z),Dt=M(e,"onClassName",13,K),_e=M(e,"onRenderMenu",13,O),Re=M(e,"onRenderContextMenu",13,V),St=M(e,"onChangeMode",13,j),Se=M(e,"onError",13,dA),Wt=M(e,"onFocus",13,fA),L=M(e,"onBlur",13,EA),T=$(QQ(),!0),P=$(!1,!0),X=$(void 0,!0),kA=$(void 0,!0),le=$(void 0,!0),Ee=$(void 0,!0),FA=$(OA(),!0);function MA(){return IA()}function dt($A){i("set");var Ei=nG($A);if(Ei)throw new Error(Ei);y(T,QQ()),IA($A),to()}function $e($A){i("update");var Ei=nG($A);if(Ei)throw new Error(Ei);IA($A),to()}function XA($A){var Ei=l(X).patch($A);return to(),Ei}function ot($A){SA($A),to()}function Si($A,Ei){l(X).expand($A,Ei),to()}function Zi($A){var Ei=arguments.length>1&&arguments[1]!==void 0&&arguments[1];l(X).collapse($A,Ei),to()}function Oi(){var $A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};l(X).transform($A),to()}function Le(){return l(X).validate()}function zi(){var $A=l(X).acceptAutoRepair();return to(),$A}function fi($A){return Ht.apply(this,arguments)}function Ht(){return(Ht=_t(function*($A){yield l(X).scrollTo($A)})).apply(this,arguments)}function Rt($A){return l(X).findElement($A)}function Bi(){l(X).focus(),to()}function Mi(){return Jt.apply(this,arguments)}function Jt(){return(Jt=_t(function*(){yield l(X).refresh()})).apply(this,arguments)}function b($A){var Ei,Ri,un,Un,Zo,Ci,io,Wo,Xo,nr,on,$i,yt,hn,hA,Ae,re,xe,ue,aA,DA,PA,Je,vt,Yt,rn,no,sn,Ji,bt,Li,Mn=Object.keys($A);for(var Qt of Mn)switch(Qt){case"content":IA((Ei=$A[Qt])!==null&&Ei!==void 0?Ei:n);break;case"selection":SA((Ri=$A[Qt])!==null&&Ri!==void 0?Ri:o);break;case"readOnly":nA((un=$A[Qt])!==null&&un!==void 0?un:r);break;case"indentation":lA((Un=$A[Qt])!==null&&Un!==void 0?Un:2);break;case"tabSize":wA((Zo=$A[Qt])!==null&&Zo!==void 0?Zo:4);break;case"truncateTextSize":VA((Ci=$A[Qt])!==null&&Ci!==void 0?Ci:1e3);break;case"mode":ie((io=$A[Qt])!==null&&io!==void 0?io:s);break;case"mainMenuBar":UA((Wo=$A[Qt])!==null&&Wo!==void 0?Wo:a);break;case"navigationBar":BA((Xo=$A[Qt])!==null&&Xo!==void 0?Xo:c);break;case"statusBar":JA((nr=$A[Qt])!==null&&nr!==void 0?nr:g);break;case"askToFormat":Xe((on=$A[Qt])!==null&&on!==void 0?on:I);break;case"escapeControlCharacters":We(($i=$A[Qt])!==null&&$i!==void 0?$i:C);break;case"escapeUnicodeCharacters":KA((yt=$A[Qt])!==null&&yt!==void 0?yt:d);break;case"flattenColumns":tA((hn=$A[Qt])!==null&&hn!==void 0?hn:B);break;case"parser":OA((hA=$A[Qt])!==null&&hA!==void 0?hA:E);break;case"validator":gA((Ae=$A[Qt])!==null&&Ae!==void 0?Ae:u);break;case"validationParser":zA((re=$A[Qt])!==null&&re!==void 0?re:h);break;case"pathParser":xA((xe=$A[Qt])!==null&&xe!==void 0?xe:w);break;case"queryLanguages":Me((ue=$A[Qt])!==null&&ue!==void 0?ue:x);break;case"queryLanguageId":LA((aA=$A[Qt])!==null&&aA!==void 0?aA:R);break;case"onChangeQueryLanguage":cA((DA=$A[Qt])!==null&&DA!==void 0?DA:D);break;case"onChange":Gt((PA=$A[Qt])!==null&&PA!==void 0?PA:G);break;case"onRenderValue":oe((Je=$A[Qt])!==null&&Je!==void 0?Je:z);break;case"onClassName":Dt((vt=$A[Qt])!==null&&vt!==void 0?vt:K);break;case"onRenderMenu":_e((Yt=$A[Qt])!==null&&Yt!==void 0?Yt:O);break;case"onRenderContextMenu":Re((rn=$A[Qt])!==null&&rn!==void 0?rn:V);break;case"onChangeMode":St((no=$A[Qt])!==null&&no!==void 0?no:j);break;case"onSelect":ct((sn=$A[Qt])!==null&&sn!==void 0?sn:J);break;case"onError":Se((Ji=$A[Qt])!==null&&Ji!==void 0?Ji:dA);break;case"onFocus":Wt((bt=$A[Qt])!==null&&bt!==void 0?bt:fA);break;case"onBlur":L((Li=$A[Qt])!==null&&Li!==void 0?Li:EA);break;default:fn(Qt)}function fn(Te){i('Unknown property "'.concat(Te,'"'))}Me().some(Te=>Te.id===LA())||LA(Me()[0].id),to()}function et(){return ai.apply(this,arguments)}function ai(){return(ai=_t(function*(){throw new Error("class method destroy() is deprecated. It is replaced with a method destroy() in the vanilla library.")})).apply(this,arguments)}function Wi($A,Ei,Ri){IA($A),Gt()&&Gt()($A,Ei,Ri)}function Xi($A){SA($A),ct()&&ct()(g4($A))}function xn(){y(P,!0),Wt()&&Wt()()}function Mo(){y(P,!1),L()&&L()()}function vn($A){return In.apply(this,arguments)}function In(){return(In=_t(function*($A){ie()!==$A&&(ie($A),to(),Bi(),St()($A))})).apply(this,arguments)}function qo($A){i("handleChangeQueryLanguage",$A),LA($A),cA()($A)}function Vo($A){var{id:Ei,json:Ri,rootPath:un,onTransform:Un,onClose:Zo}=$A;nA()||y(Ee,{id:Ei,json:Ri,rootPath:un,indentation:lA(),truncateTextSize:VA(),escapeControlCharacters:We(),escapeUnicodeCharacters:KA(),parser:OA(),parseMemoizeOne:l(A),validationParser:zA(),pathParser:xA(),queryLanguages:Me(),queryLanguageId:LA(),onChangeQueryLanguage:qo,onRenderValue:oe(),onRenderMenu:Ci=>_e()(Ci,{mode:ie(),modal:!0,readOnly:nA()}),onRenderContextMenu:Ci=>Re()(Ci,{mode:ie(),modal:!0,readOnly:nA(),selection:SA()}),onClassName:Dt(),onTransform:Un,onClose:Zo})}function uo($A){nA()||y(le,$A)}function Qn($A){var{content:Ei,path:Ri,onPatch:un,onClose:Un}=$A;i("onJSONEditorModal",{content:Ei,path:Ri}),y(kA,{content:Ei,path:Ri,onPatch:un,readOnly:nA(),indentation:lA(),tabSize:wA(),truncateTextSize:VA(),mainMenuBar:UA(),navigationBar:BA(),statusBar:JA(),askToFormat:Xe(),escapeControlCharacters:We(),escapeUnicodeCharacters:KA(),flattenColumns:tA(),parser:OA(),validator:void 0,validationParser:zA(),pathParser:xA(),onRenderValue:oe(),onClassName:Dt(),onRenderMenu:_e(),onRenderContextMenu:Re(),onSortModal:uo,onTransformModal:Vo,onClose:Un})}function Kn($A){$A.stopPropagation()}return pA(()=>(k(OA()),l(FA),k(IA()),QQ),()=>{if(!gaA(OA(),l(FA))){if(i("parser changed, recreate editor"),X3(IA())){var $A=l(FA).stringify(IA().json);IA({json:$A!==void 0?OA().parse($A):void 0})}y(FA,OA()),y(T,QQ())}}),pA(()=>k(IA()),()=>{var $A=nG(IA());$A&&console.error("Error: "+$A)}),pA(()=>k(SA()),()=>{SA()===null&&console.warn("selection is invalid: it is null but should be undefined")}),pA(()=>k(OA()),()=>{y(A,hE(OA().parse))}),pA(()=>k(ie()),()=>{i("mode changed to",ie())}),ln(),qt(!0),NG(t,{children:($A,Ei)=>{var Ri,un=eHA(),Un=Mt(un);XsA(W(Un),()=>l(T),on=>{Qo(BsA(on,{get externalMode(){return ie()},get content(){return IA()},get selection(){return SA()},get readOnly(){return nA()},get indentation(){return lA()},get tabSize(){return wA()},get truncateTextSize(){return VA()},get statusBar(){return JA()},get askToFormat(){return Xe()},get mainMenuBar(){return UA()},get navigationBar(){return BA()},get escapeControlCharacters(){return We()},get escapeUnicodeCharacters(){return KA()},get flattenColumns(){return tA()},get parser(){return OA()},get parseMemoizeOne(){return l(A)},get validator(){return gA()},get validationParser(){return zA()},get pathParser(){return xA()},insideModal:!1,get onError(){return Se()},onChange:Wi,onChangeMode:vn,onSelect:Xi,get onRenderValue(){return oe()},get onClassName(){return Dt()},onFocus:xn,onBlur:Mo,get onRenderMenu(){return _e()},get onRenderContextMenu(){return Re()},onSortModal:uo,onTransformModal:Vo,onJSONEditorModal:Qn,$$legacy:!0}),$i=>y(X,$i),()=>l(X))});var Zo=CA(Un,2),Ci=on=>{(function($i,yt){var hn,hA;ft(yt,!1);var Ae=$(void 0,!0),re=$(void 0,!0),xe=$(void 0,!0),ue=$(void 0,!0),aA=xr("jsoneditor:SortModal"),DA=M(yt,"id",9),PA=M(yt,"json",9),Je=M(yt,"rootPath",9),vt=M(yt,"onSort",9),Yt=M(yt,"onClose",9),rn={value:1,label:"ascending"},no=[rn,{value:-1,label:"descending"}],sn="".concat(DA(),":").concat(Ct(Je())),Ji=$((hn=CQ()[sn])===null||hn===void 0?void 0:hn.selectedProperty,!0),bt=$(((hA=CQ()[sn])===null||hA===void 0?void 0:hA.selectedDirection)||rn,!0),Li=$(void 0,!0);function Mn(){try{var fn,Te,Qi;y(Li,void 0);var mi=((fn=l(Ji))===null||fn===void 0?void 0:fn.value)||((Te=l(ue))===null||Te===void 0||(Te=Te[0])===null||Te===void 0?void 0:Te.value)||[],bn=(Qi=l(bt))===null||Qi===void 0?void 0:Qi.value,Ko=$aA(PA(),Je(),mi,bn);vt()!==void 0&&Je()!==void 0&&vt()({operations:Ko,rootPath:Je(),itemPath:mi,direction:bn}),Yt()()}catch(Ot){y(Li,String(Ot))}}function Qt(fn){fn.focus()}pA(()=>(k(PA()),k(Je())),()=>{y(Ae,Ye(PA(),Je()))}),pA(()=>l(Ae),()=>{y(re,Array.isArray(l(Ae)))}),pA(()=>(l(re),l(Ae)),()=>{y(xe,l(re)?LG(l(Ae)):void 0)}),pA(()=>(l(xe),q1),()=>{y(ue,l(xe)?l(xe).map(q1):void 0)}),pA(()=>(CQ(),l(Ji),l(bt)),()=>{CQ(CQ()[sn]={selectedProperty:l(Ji),selectedDirection:l(bt)}),aA("store state in memory",sn,CQ()[sn])}),ln(),qt(!0),sf($i,{get onClose(){return Yt()},className:"jse-sort-modal",children:(fn,Te)=>{var Qi=AHA(),mi=Mt(Qi),bn=ZA(()=>l(re)?"Sort array items":"Sort object keys");qy(mi,{get title(){return l(bn)},get onClose(){return Yt()}});var Ko=W(CA(mi,2)),Ot=CA(W(Ko)),Nr=W(Ot),Jn=CA(W(Nr)),Q=W(Jn),m=CA(Nr),v=ee=>{var ne=XTA(),Pe=CA(W(ne));jC(W(Pe),{showChevron:!0,get items(){return l(ue)},get value(){return l(Ji)},set value(Oe){y(Ji,Oe)},$$legacy:!0}),iA(ee,ne)};GA(m,ee=>{l(re),l(ue),oA(()=>{var ne;return l(re)&&l(ue)&&((ne=l(ue))===null||ne===void 0?void 0:ne.length)>1})&&ee(v)});var p=CA(m),F=CA(W(p));jC(W(F),{showChevron:!0,clearable:!1,get items(){return no},get value(){return l(bt)},set value(ee){y(bt,ee)},$$legacy:!0});var U=CA(Ko,2),q=W(U),Z=ee=>{var ne=$TA(),Pe=W(ne);we(()=>pt(Pe,l(Li))),iA(ee,ne)};GA(q,ee=>{l(Li)&&ee(Z)});var RA=W(CA(U,2));rs(()=>ce("click",RA,Mn)),Ts(RA,ee=>Qt?.(ee)),we(ee=>{ed(Q,ee),RA.disabled=(l(re),l(ue),l(Ji),oA(()=>{var ne;return!!(l(re)&&l(ue)&&((ne=l(ue))===null||ne===void 0?void 0:ne.length)>1)&&!l(Ji)}))},[()=>(k(Je()),k(Gi),k(Ta),oA(()=>Je()&&!Gi(Je())?Ta(Je()):"(document root)"))],ZA),iA(fn,Qi)},$$slots:{default:!0}}),mt()})(on,AI(()=>l(le),{onClose:()=>{var $i;($i=l(le))===null||$i===void 0||$i.onClose(),y(le,void 0)}}))};GA(Zo,on=>{l(le)&&on(Ci)});var io=CA(Zo,2),Wo=on=>{eTA(on,AI(()=>l(Ee),{onClose:()=>{var $i;($i=l(Ee))===null||$i===void 0||$i.onClose(),y(Ee,void 0)}}))};GA(io,on=>{l(Ee)&&on(Wo)});var Xo=CA(io,2),nr=on=>{(function($i,yt){ft(yt,!1);var hn=$(void 0,!0),hA=$(void 0,!0),Ae=$(void 0,!0),re=$(void 0,!0),xe=xr("jsoneditor:JSONEditorModal"),ue=M(yt,"content",9),aA=M(yt,"path",9),DA=M(yt,"onPatch",9),PA=M(yt,"readOnly",9),Je=M(yt,"indentation",9),vt=M(yt,"tabSize",9),Yt=M(yt,"truncateTextSize",9),rn=M(yt,"mainMenuBar",9),no=M(yt,"navigationBar",9),sn=M(yt,"statusBar",9),Ji=M(yt,"askToFormat",9),bt=M(yt,"escapeControlCharacters",9),Li=M(yt,"escapeUnicodeCharacters",9),Mn=M(yt,"flattenColumns",9),Qt=M(yt,"parser",9),fn=M(yt,"validator",9),Te=M(yt,"validationParser",9),Qi=M(yt,"pathParser",9),mi=M(yt,"onRenderValue",9),bn=M(yt,"onClassName",9),Ko=M(yt,"onRenderMenu",9),Ot=M(yt,"onRenderContextMenu",9),Nr=M(yt,"onSortModal",9),Jn=M(yt,"onTransformModal",9),Q=M(yt,"onClose",9),m=$(void 0,!0),v=$(void 0,!0),p={mode:q(ue()),content:ue(),selection:void 0,relativePath:aA()},F=$([p],!0),U=$(void 0,!0);function q(rA){return X3(rA)&&wo(rA.json)?ir.table:ir.tree}function Z(){var rA,HA=(rA=li(l(F)))===null||rA===void 0?void 0:rA.selection;tf(HA)&&l(m).scrollTo(nt(HA))}function RA(){if(xe("handleApply"),!PA())try{y(U,void 0);var rA=l(hn).relativePath,HA=l(hn).content,De=[{op:"replace",path:Ct(rA),value:vrA(HA,Qt()).json}];if(l(F).length>1){var fe=vrA(l(F)[l(F).length-2].content,Qt()).json,Ie={json:Ma(fe,De)},Bt=pe(pe({},l(F)[l(F).length-2]||p),{},{content:Ie});y(F,[...l(F).slice(0,l(F).length-2),Bt]),to(),Z()}else DA()(De),Q()()}catch(At){y(U,String(At))}}function ee(){if(xe("handleClose"),l(v))y(v,!1);else if(l(F).length>1){var rA;y(F,yi(l(F))),to(),(rA=l(m))===null||rA===void 0||rA.focus(),Z(),y(U,void 0)}else Q()()}function ne(rA){xe("handleChange",rA),ve(HA=>pe(pe({},HA),{},{content:rA}))}function Pe(rA){xe("handleChangeSelection",rA),ve(HA=>pe(pe({},HA),{},{selection:rA}))}function Oe(rA){xe("handleChangeMode",rA),ve(HA=>pe(pe({},HA),{},{mode:rA}))}function ve(rA){var HA=rA(li(l(F)));y(F,[...yi(l(F)),HA])}function Ne(rA){y(U,rA.toString()),console.error(rA)}function Yi(rA){var HA,{content:De,path:fe}=rA;xe("handleJSONEditorModal",{content:De,path:fe});var Ie={mode:q(De),content:De,selection:void 0,relativePath:fe};y(F,[...l(F),Ie]),to(),(HA=l(m))===null||HA===void 0||HA.focus()}function H(rA){rA.focus()}ws(()=>{var rA;(rA=l(m))===null||rA===void 0||rA.focus()}),pA(()=>l(F),()=>{y(hn,li(l(F))||p)}),pA(()=>l(F),()=>{y(hA,l(F).flatMap(rA=>rA.relativePath))}),pA(()=>(l(hA),Ta),()=>{y(Ae,Gi(l(hA))?"(document root)":Ta(l(hA)))}),pA(()=>k(Qt()),()=>{y(re,hE(Qt().parse))}),ln(),qt(!0),sf($i,{onClose:ee,className:"jse-jsoneditor-modal",get fullscreen(){return l(v)},children:(rA,HA)=>{var De=ZTA();NG(W(De),{children:(fe,Ie)=>{var Bt=VTA(),At=Mt(Bt),ui=ZA(()=>(l(F),oA(()=>l(F).length>1?" (".concat(l(F).length,")"):"")));qy(At,{get title(){var xt;return"Edit nested content ".concat((xt=l(ui))!==null&&xt!==void 0?xt:"")},fullScreenButton:!0,onClose:ee,get fullscreen(){return l(v)},set fullscreen(xt){y(v,xt)},$$legacy:!0});var Cn=CA(At,2),xi=CA(W(Cn),2),Yn=CA(xi,4);Qo(BsA(W(Yn),{get externalMode(){return l(hn),oA(()=>l(hn).mode)},get content(){return l(hn),oA(()=>l(hn).content)},get selection(){return l(hn),oA(()=>l(hn).selection)},get readOnly(){return PA()},get indentation(){return Je()},get tabSize(){return vt()},get truncateTextSize(){return Yt()},get statusBar(){return sn()},get askToFormat(){return Ji()},get mainMenuBar(){return rn()},get navigationBar(){return no()},get escapeControlCharacters(){return bt()},get escapeUnicodeCharacters(){return Li()},get flattenColumns(){return Mn()},get parser(){return Qt()},get parseMemoizeOne(){return l(re)},get validator(){return fn()},get validationParser(){return Te()},get pathParser(){return Qi()},insideModal:!0,onError:Ne,onChange:ne,onChangeMode:Oe,onSelect:Pe,get onRenderValue(){return mi()},get onClassName(){return bn()},get onFocus(){return $c},get onBlur(){return $c},get onRenderMenu(){return Ko()},get onRenderContextMenu(){return Ot()},get onSortModal(){return Nr()},get onTransformModal(){return Jn()},onJSONEditorModal:Yi,$$legacy:!0}),xt=>y(m,xt),()=>l(m));var Tt=W(CA(Yn,2)),bo=xt=>{var rt=zTA(),Ai=W(rt);we(()=>pt(Ai,l(U))),iA(xt,rt)};GA(Tt,xt=>{l(U)&&xt(bo)});var kn=CA(Tt,2),oo=xt=>{var rt=PTA();Ui(W(rt),{get data(){return BX}}),ce("click",rt,ee),iA(xt,rt)};GA(kn,xt=>{l(F),oA(()=>l(F).length>1)&&xt(oo)});var An=CA(kn,2),Lt=xt=>{var rt=jTA();rs(()=>ce("click",rt,RA)),Ts(rt,Ai=>H?.(Ai)),iA(xt,rt)},Ti=xt=>{var rt=qTA();ce("click",rt,ee),iA(xt,rt)};GA(An,xt=>{PA()?xt(Ti,!1):xt(Lt)}),we(()=>ed(xi,l(Ae))),iA(fe,Bt)},$$slots:{default:!0}}),iA(rA,De)},$$slots:{default:!0}}),mt()})(on,AI(()=>l(kA),{onClose:()=>{var $i;($i=l(kA))===null||$i===void 0||$i.onClose(),y(kA,void 0)}}))};GA(Xo,on=>{l(kA)&&on(nr)}),we(on=>Ri=jt(Un,1,"jse-main svelte-57bmz4",null,Ri,on),[()=>({"jse-focus":l(P)})],ZA),ce("keydown",Un,Kn),iA($A,un)},$$slots:{default:!0}}),Ft(e,"get",MA),Ft(e,"set",dt),Ft(e,"update",$e),Ft(e,"patch",XA),Ft(e,"select",ot),Ft(e,"expand",Si),Ft(e,"collapse",Zi),Ft(e,"transform",Oi),Ft(e,"validate",Le),Ft(e,"acceptAutoRepair",zi),Ft(e,"scrollTo",fi),Ft(e,"findElement",Rt),Ft(e,"focus",Bi),Ft(e,"refresh",Mi),Ft(e,"updateProps",b),Ft(e,"destroy",et),mt({get:MA,set:dt,update:$e,patch:XA,select:ot,expand:Si,collapse:Zi,transform:Oi,validate:Le,acceptAutoRepair:zi,scrollTo:fi,findElement:Rt,focus:Bi,refresh:Mi,updateProps:b,destroy:et})}function IcA(t){var{target:e,props:A}=t,i=xGA(tHA,{target:e,props:A});return i.destroy=_t(function*(){return function(n,o){var r=kG.get(n);return r?(kG.delete(n),r(o)):Promise.resolve()}(i)}),to(),i}var UQ=class t{constructor(e){this.el=e}jsonString;editor=null;ngAfterViewInit(){let e={text:this.jsonString};this.editor=IcA({target:document.getElementById("json-editor"),props:{content:e,mode:ir.text,mainMenuBar:!1}})}getJsonString(){return this.editor?.get().text}static \u0275fac=function(A){return new(A||t)(Ge(se))};static \u0275cmp=jA({type:t,selectors:[["app-json-editor"]],inputs:{jsonString:"jsonString"},decls:1,vars:0,consts:[["id","json-editor",1,"json-editor-container","jse-theme-dark"]],template:function(A,i){A&1&&TA(0,"div",0)},styles:[".jse-theme-dark[_ngcontent-%COMP%]{--jse-theme: dark;--jse-theme-color: #2f6dd0;--jse-theme-color-highlight: #467cd2;--jse-background-color: #1e1e1e;--jse-text-color: #d4d4d4;--jse-text-color-inverse: #4d4d4d;--jse-main-border: 1px solid #4f4f4f;--jse-menu-color: #fff;--jse-modal-background: #2f2f2f;--jse-modal-overlay-background: rgba(0, 0, 0, .5);--jse-modal-code-background: #2f2f2f;--jse-tooltip-color: var(--jse-text-color);--jse-tooltip-background: #4b4b4b;--jse-tooltip-border: 1px solid #737373;--jse-tooltip-action-button-color: inherit;--jse-tooltip-action-button-background: #737373;--jse-panel-background: #333333;--jse-panel-background-border: 1px solid #464646;--jse-panel-color: var(--jse-text-color);--jse-panel-color-readonly: #737373;--jse-panel-border: 1px solid #3c3c3c;--jse-panel-button-color-highlight: #e5e5e5;--jse-panel-button-background-highlight: #464646;--jse-navigation-bar-background: #656565;--jse-navigation-bar-background-highlight: #7e7e7e;--jse-navigation-bar-dropdown-color: var(--jse-text-color);--jse-context-menu-background: #4b4b4b;--jse-context-menu-background-highlight: #595959;--jse-context-menu-separator-color: #595959;--jse-context-menu-color: var(--jse-text-color);--jse-context-menu-pointer-background: #737373;--jse-context-menu-pointer-background-highlight: #818181;--jse-context-menu-pointer-color: var(--jse-context-menu-color);--jse-key-color: #9cdcfe;--jse-value-color: var(--jse-text-color);--jse-value-color-number: #b5cea8;--jse-value-color-boolean: #569cd6;--jse-value-color-null: #569cd6;--jse-value-color-string: #ce9178;--jse-value-color-url: #ce9178;--jse-delimiter-color: #949494;--jse-edit-outline: 2px solid var(--jse-text-color);--jse-selection-background-color: #464646;--jse-selection-background-inactive-color: #333333;--jse-hover-background-color: #343434;--jse-active-line-background-color: rgba(255, 255, 255, .06);--jse-search-match-background-color: #343434;--jse-collapsed-items-background-color: #333333;--jse-collapsed-items-selected-background-color: #565656;--jse-collapsed-items-link-color: #b2b2b2;--jse-collapsed-items-link-color-highlight: #ec8477;--jse-search-match-color: #724c27;--jse-search-match-outline: 1px solid #966535;--jse-search-match-active-color: #9f6c39;--jse-search-match-active-outline: 1px solid #bb7f43;--jse-tag-background: #444444;--jse-tag-color: #bdbdbd;--jse-table-header-background: #333333;--jse-table-header-background-highlight: #424242;--jse-table-row-odd-background: rgba(255, 255, 255, .1);--jse-input-background: #3d3d3d;--jse-input-border: var(--jse-main-border);--jse-button-background: #808080;--jse-button-background-highlight: #7a7a7a;--jse-button-color: #e0e0e0;--jse-button-secondary-background: #494949;--jse-button-secondary-background-highlight: #5d5d5d;--jse-button-secondary-background-disabled: #9d9d9d;--jse-button-secondary-color: var(--jse-text-color);--jse-a-color: #55abff;--jse-a-color-highlight: #4387c9;--jse-svelte-select-background: #3d3d3d;--jse-svelte-select-border: 1px solid #4f4f4f;--list-background: #3d3d3d;--item-hover-bg: #505050;--multi-item-bg: #5b5b5b;--input-color: #d4d4d4;--multi-clear-bg: #8a8a8a;--multi-item-clear-icon-color: #d4d4d4;--multi-item-outline: 1px solid #696969;--list-shadow: 0 2px 8px 0 rgba(0, 0, 0, .4);--jse-color-picker-background: #656565;--jse-color-picker-border-box-shadow: #8c8c8c 0 0 0 1px}.json-editor-container[_ngcontent-%COMP%]{height:300px;max-height:300px}"]})};var mf=class t{constructor(e,A){this.dialogRef=e;this.data=A;this.jsonString=JSON.stringify(A.jsonContent,null,2),this.functionName=A.functionName||""}jsonEditorComponent=qs(UQ);jsonString="";functionName="";ngOnInit(){}onSave(){try{this.jsonString=this.jsonEditorComponent().getJsonString();let e=JSON.parse(this.jsonString);this.dialogRef.close(e)}catch(e){alert("Invalid JSON: "+e)}}onCancel(){this.dialogRef.close(null)}static \u0275fac=function(A){return new(A||t)(Ge(fr),Ge(Cs))};static \u0275cmp=jA({type:t,selectors:[["app-edit-json-dialog"]],viewQuery:function(A,i){A&1&&ls(i.jsonEditorComponent,UQ,5),A&2&&yc()},decls:11,vars:3,consts:[[1,"dialog-container"],["mat-dialog-title",""],[3,"jsonString"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2),N(),S(3,"mat-dialog-content"),AA(4),TA(5,"app-json-editor",2),N(),S(6,"mat-dialog-actions",3)(7,"button",4),AA(8,"Cancel"),N(),S(9,"button",5),mA("click",function(){return i.onSave()}),AA(10,"Save"),N()()()),A&2&&(_(2),tt(i.data.dialogHeader),_(2),It(" ",i.functionName," "),_(),yA("jsonString",i.jsonString))},dependencies:[Ls,ya,UQ,va,dr,bl],styles:[".dialog-container[_ngcontent-%COMP%]{border-radius:12px;padding:18px;width:500px;box-shadow:0 8px 16px var(--edit-json-dialog-container-box-shadow-color)}.editor[_ngcontent-%COMP%]{padding-top:12px}"]})};var iHA=["input"],nHA=["label"],oHA=["*"],rHA=new eA("mat-checkbox-default-options",{providedIn:"root",factory:dcA});function dcA(){return{color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1}}var Hs=function(t){return t[t.Init=0]="Init",t[t.Checked=1]="Checked",t[t.Unchecked=2]="Unchecked",t[t.Indeterminate=3]="Indeterminate",t}(Hs||{}),sHA={provide:bc,useExisting:Ur(()=>pf),multi:!0},xK=class{source;checked},CcA=dcA(),pf=(()=>{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_ngZone=f(ye);_animationMode=f(_i,{optional:!0});_options=f(rHA,{optional:!0});focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(A){let i=new xK;return i.source=this,i.checked=A,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return`${this.id||this._uniqueId}-input`}required;labelPosition="after";name=null;change=new YA;indeterminateChange=new YA;value;disableRipple;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=Hs.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){f(Pn).load(Yr);let A=f(new Wr("tabindex"),{optional:!0});this._options=this._options||CcA,this.color=this._options.color||CcA.color,this.tabIndex=A==null?0:parseInt(A)||0,this.id=this._uniqueId=f(an).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??!1}ngOnChanges(A){A.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(A){A!=this.checked&&(this._checked=A,this._changeDetectorRef.markForCheck())}_checked=!1;get disabled(){return this._disabled}set disabled(A){A!==this.disabled&&(this._disabled=A,this._changeDetectorRef.markForCheck())}_disabled=!1;get indeterminate(){return this._indeterminate}set indeterminate(A){let i=A!=this._indeterminate;this._indeterminate=A,i&&(this._indeterminate?this._transitionCheckState(Hs.Indeterminate):this._transitionCheckState(this.checked?Hs.Checked:Hs.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_indeterminate=!1;_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(A){this.checked=!!A}registerOnChange(A){this._controlValueAccessorChangeFn=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A}validate(A){return this.required&&A.value!==!0?{required:!0}:null}registerOnValidatorChange(A){this._validatorChangeFn=A}_transitionCheckState(A){let i=this._currentCheckState,n=this._getAnimationTargetElement();if(!(i===A||!n)&&(this._currentAnimationClass&&n.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,A),this._currentCheckState=A,this._currentAnimationClass.length>0)){n.classList.add(this._currentAnimationClass);let o=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{n.classList.remove(o)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){let A=this._options?.clickAction;!this.disabled&&A!=="noop"?(this.indeterminate&&A!=="check"&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Hs.Checked:Hs.Unchecked),this._emitChangeEvent()):(this.disabled&&this.disabledInteractive||!this.disabled&&A==="noop")&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate)}_onInteractionEvent(A){A.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(A,i){if(this._animationMode==="NoopAnimations")return"";switch(A){case Hs.Init:if(i===Hs.Checked)return this._animationClasses.uncheckedToChecked;if(i==Hs.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Hs.Unchecked:return i===Hs.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Hs.Checked:return i===Hs.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Hs.Indeterminate:return i===Hs.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(A){let i=this._inputElement;i&&(i.nativeElement.indeterminate=A)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(A){A.target&&this._labelElement.nativeElement.contains(A.target)&&A.stopPropagation()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-checkbox"]],viewQuery:function(i,n){if(i&1&&(st(iHA,5),st(nHA,5)),i&2){let o;de(o=Be())&&(n._inputElement=o.first),de(o=Be())&&(n._labelElement=o.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,n){i&2&&(Qa("id",n.id),Ke("tabindex",null)("aria-label",null)("aria-labelledby",null),Ro(n.color?"mat-"+n.color:"mat-accent"),he("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mdc-checkbox--disabled",n.disabled)("mat-mdc-checkbox-disabled",n.disabled)("mat-mdc-checkbox-checked",n.checked)("mat-mdc-checkbox-disabled-interactive",n.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",ge],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",ge],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",ge],tabIndex:[2,"tabIndex","tabIndex",A=>A==null?void 0:en(A)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge],checked:[2,"checked","checked",ge],disabled:[2,"disabled","disabled",ge],indeterminate:[2,"indeterminate","indeterminate",ge]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[ut([sHA,{provide:M0,useExisting:t,multi:!0}]),Xt],ngContentSelectors:oHA,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"div",3),mA("click",function(s){return QA(o),uA(n._preventBubblingFromLabel(s))}),S(1,"div",4,0)(3,"div",5),mA("click",function(){return QA(o),uA(n._onTouchTargetClick())}),N(),S(4,"input",6,1),mA("blur",function(){return QA(o),uA(n._onBlur())})("click",function(){return QA(o),uA(n._onInputClick())})("change",function(s){return QA(o),uA(n._onInteractionEvent(s))}),N(),TA(6,"div",7),S(7,"div",8),ur(),S(8,"svg",9),TA(9,"path",10),N(),_I(),TA(10,"div",11),N(),TA(11,"div",12),N(),S(12,"label",13,2),Ue(14),N()()}if(i&2){let o=Cr(2);yA("labelPosition",n.labelPosition),_(4),he("mdc-checkbox--selected",n.checked),yA("checked",n.checked)("indeterminate",n.indeterminate)("disabled",n.disabled&&!n.disabledInteractive)("id",n.inputId)("required",n.required)("tabIndex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex),Ke("aria-label",n.ariaLabel||null)("aria-labelledby",n.ariaLabelledby)("aria-describedby",n.ariaDescribedby)("aria-checked",n.indeterminate?"mixed":null)("aria-controls",n.ariaControls)("aria-disabled",n.disabled&&n.disabledInteractive?!0:null)("aria-expanded",n.ariaExpanded)("aria-owns",n.ariaOwns)("name",n.name)("value",n.value),_(7),yA("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)("matRippleCentered",!0),_(),yA("for",n.inputId)}},dependencies:[Xs,B6],styles:['.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom;padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover>.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:hover>.mat-mdc-checkbox-ripple>.mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control+.mdc-checkbox__ripple{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox--disabled{cursor:default;pointer-events:none}@media(forced-colors: active){.mdc-checkbox--disabled{opacity:.5}}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mdc-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-touch-target,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__native-control,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__ripple,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-ripple::before,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__mixedmark{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox .mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox .mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display, block)}.mat-mdc-checkbox .mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();var cHA=[[["caption"]],[["colgroup"],["col"]],"*"],gHA=["caption","colgroup, col","*"];function lHA(t,e){t&1&&Ue(0,2)}function IHA(t,e){t&1&&(S(0,"thead",0),rr(1,1),N(),S(2,"tbody",0),rr(3,2)(4,3),N(),S(5,"tfoot",0),rr(6,4),N())}function CHA(t,e){t&1&&rr(0,1)(1,2)(2,3)(3,4)}var Zg=new eA("CDK_TABLE");var Q7=(()=>{class t{template=f(mn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkCellDef",""]]})}return t})(),u7=(()=>{class t{template=f(mn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkHeaderCellDef",""]]})}return t})(),QcA=(()=>{class t{template=f(mn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkFooterCellDef",""]]})}return t})(),JQ=(()=>{class t{_table=f(Zg,{optional:!0});_hasStickyChanged=!1;get name(){return this._name}set name(A){this._setNameInput(A)}_name;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;get stickyEnd(){return this._stickyEnd}set stickyEnd(A){A!==this._stickyEnd&&(this._stickyEnd=A,this._hasStickyChanged=!0)}_stickyEnd=!1;cell;headerCell;footerCell;cssClassFriendlyName;_columnCssClassName;constructor(){}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}_updateColumnCssClassName(){this._columnCssClassName=[`cdk-column-${this.cssClassFriendlyName}`]}_setNameInput(A){A&&(this._name=A,this.cssClassFriendlyName=A.replace(/[^a-z0-9_-]/gi,"-"),this._updateColumnCssClassName())}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkColumnDef",""]],contentQueries:function(i,n,o){if(i&1&&(gi(o,Q7,5),gi(o,u7,5),gi(o,QcA,5)),i&2){let r;de(r=Be())&&(n.cell=r.first),de(r=Be())&&(n.headerCell=r.first),de(r=Be())&&(n.footerCell=r.first)}},inputs:{name:[0,"cdkColumnDef","name"],sticky:[2,"sticky","sticky",ge],stickyEnd:[2,"stickyEnd","stickyEnd",ge]},features:[ut([{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}])]})}return t})(),C7=class{constructor(e,A){A.nativeElement.classList.add(...e._columnCssClassName)}},ucA=(()=>{class t extends C7{constructor(){super(f(JQ),f(se))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["cdk-header-cell"],["th","cdk-header-cell",""]],hostAttrs:["role","columnheader",1,"cdk-header-cell"],features:[lt]})}return t})();var hcA=(()=>{class t extends C7{constructor(){let A=f(JQ),i=f(se);super(A,i);let n=A._table?._getCellRole();n&&i.nativeElement.setAttribute("role",n)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["cdk-cell"],["td","cdk-cell",""]],hostAttrs:[1,"cdk-cell"],features:[lt]})}return t})(),d7=class{tasks=[];endTasks=[]},B7=new eA("_COALESCED_STYLE_SCHEDULER"),FK=(()=>{class t{_currentSchedule=null;_ngZone=f(ye);constructor(){}schedule(A){this._createScheduleIfNeeded(),this._currentSchedule.tasks.push(A)}scheduleEnd(A){this._createScheduleIfNeeded(),this._currentSchedule.endTasks.push(A)}_createScheduleIfNeeded(){this._currentSchedule||(this._currentSchedule=new d7,this._ngZone.runOutsideAngular(()=>queueMicrotask(()=>{for(;this._currentSchedule.tasks.length||this._currentSchedule.endTasks.length;){let A=this._currentSchedule;this._currentSchedule=new d7;for(let i of A.tasks)i();for(let i of A.endTasks)i()}this._currentSchedule=null})))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac})}return t})();var _K=(()=>{class t{template=f(mn);_differs=f(Ql);columns;_columnsDiffer;constructor(){}ngOnChanges(A){if(!this._columnsDiffer){let i=A.columns&&A.columns.currentValue||[];this._columnsDiffer=this._differs.find(i).create(),this._columnsDiffer.diff(i)}}getColumnsDiff(){return this._columnsDiffer.diff(this.columns)}extractCellTemplate(A){return this instanceof Df?A.headerCell.template:this instanceof GK?A.footerCell.template:A.cell.template}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,features:[Xt]})}return t})(),Df=(()=>{class t extends _K{_table=f(Zg,{optional:!0});_hasStickyChanged=!1;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;constructor(){super(f(mn),f(Ql))}ngOnChanges(A){super.ngOnChanges(A)}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkHeaderRowDef",""]],inputs:{columns:[0,"cdkHeaderRowDef","columns"],sticky:[2,"cdkHeaderRowDefSticky","sticky",ge]},features:[lt,Xt]})}return t})(),GK=(()=>{class t extends _K{_table=f(Zg,{optional:!0});_hasStickyChanged=!1;get sticky(){return this._sticky}set sticky(A){A!==this._sticky&&(this._sticky=A,this._hasStickyChanged=!0)}_sticky=!1;constructor(){super(f(mn),f(Ql))}ngOnChanges(A){super.ngOnChanges(A)}hasStickyChanged(){let A=this._hasStickyChanged;return this.resetStickyChanged(),A}resetStickyChanged(){this._hasStickyChanged=!1}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkFooterRowDef",""]],inputs:{columns:[0,"cdkFooterRowDef","columns"],sticky:[2,"cdkFooterRowDefSticky","sticky",ge]},features:[lt,Xt]})}return t})(),h7=(()=>{class t extends _K{_table=f(Zg,{optional:!0});when;constructor(){super(f(mn),f(Ql))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkRowDef",""]],inputs:{columns:[0,"cdkRowDefColumns","columns"],when:[0,"cdkRowDefWhen","when"]},features:[lt]})}return t})(),sd=(()=>{class t{_viewContainer=f(Sn);cells;context;static mostRecentCellOutlet=null;constructor(){t.mostRecentCellOutlet=this}ngOnDestroy(){t.mostRecentCellOutlet===this&&(t.mostRecentCellOutlet=null)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","cdkCellOutlet",""]]})}return t})(),KK=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["cdk-header-row"],["tr","cdk-header-row",""]],hostAttrs:["role","row",1,"cdk-header-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&rr(0,0)},dependencies:[sd],encapsulation:2})}return t})();var UK=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["cdk-row"],["tr","cdk-row",""]],hostAttrs:["role","row",1,"cdk-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&rr(0,0)},dependencies:[sd],encapsulation:2})}return t})(),fcA=(()=>{class t{templateRef=f(mn);_contentClassName="cdk-no-data-row";constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["ng-template","cdkNoDataRow",""]]})}return t})(),BcA=["top","bottom","left","right"],NK=class{_isNativeHtmlTable;_stickCellCss;direction;_coalescedStyleScheduler;_isBrowser;_needsPositionStickyOnElement;_positionListener;_tableInjector;_elemSizeCache=new WeakMap;_resizeObserver=globalThis?.ResizeObserver?new globalThis.ResizeObserver(e=>this._updateCachedSizes(e)):null;_updatedStickyColumnsParamsToReplay=[];_stickyColumnsReplayTimeout=null;_cachedCellWidths=[];_borderCellCss;_destroyed=!1;constructor(e,A,i,n,o=!0,r=!0,s,a){this._isNativeHtmlTable=e,this._stickCellCss=A,this.direction=i,this._coalescedStyleScheduler=n,this._isBrowser=o,this._needsPositionStickyOnElement=r,this._positionListener=s,this._tableInjector=a,this._borderCellCss={top:`${A}-border-elem-top`,bottom:`${A}-border-elem-bottom`,left:`${A}-border-elem-left`,right:`${A}-border-elem-right`}}clearStickyPositioning(e,A){(A.includes("left")||A.includes("right"))&&this._removeFromStickyColumnReplayQueue(e);let i=[];for(let n of e)n.nodeType===n.ELEMENT_NODE&&i.push(n,...Array.from(n.children));this._afterNextRender({write:()=>{for(let n of i)this._removeStickyStyle(n,A)}})}updateStickyColumns(e,A,i,n=!0,o=!0){if(!e.length||!this._isBrowser||!(A.some(u=>u)||i.some(u=>u))){this._positionListener?.stickyColumnsUpdated({sizes:[]}),this._positionListener?.stickyEndColumnsUpdated({sizes:[]});return}let r=e[0],s=r.children.length,a=this.direction==="rtl",c=a?"right":"left",g=a?"left":"right",I=A.lastIndexOf(!0),C=i.indexOf(!0),d,B,E;o&&this._updateStickyColumnReplayQueue({rows:[...e],stickyStartStates:[...A],stickyEndStates:[...i]}),this._afterNextRender({earlyRead:()=>{d=this._getCellWidths(r,n),B=this._getStickyStartColumnPositions(d,A),E=this._getStickyEndColumnPositions(d,i)},write:()=>{for(let u of e)for(let h=0;h!!u)&&(this._positionListener.stickyColumnsUpdated({sizes:I===-1?[]:d.slice(0,I+1).map((u,h)=>A[h]?u:null)}),this._positionListener.stickyEndColumnsUpdated({sizes:C===-1?[]:d.slice(C).map((u,h)=>i[h+C]?u:null).reverse()}))}})}stickRows(e,A,i){if(!this._isBrowser)return;let n=i==="bottom"?e.slice().reverse():e,o=i==="bottom"?A.slice().reverse():A,r=[],s=[],a=[];this._afterNextRender({earlyRead:()=>{for(let c=0,g=0;c{let c=o.lastIndexOf(!0);for(let g=0;g{let i=e.querySelector("tfoot");i&&(A.some(n=>!n)?this._removeStickyStyle(i,["bottom"]):this._addStickyStyle(i,"bottom",0,!1))}})}destroy(){this._stickyColumnsReplayTimeout&&clearTimeout(this._stickyColumnsReplayTimeout),this._resizeObserver?.disconnect(),this._destroyed=!0}_removeStickyStyle(e,A){for(let n of A)e.style[n]="",e.classList.remove(this._borderCellCss[n]);BcA.some(n=>A.indexOf(n)===-1&&e.style[n])?e.style.zIndex=this._getCalculatedZIndex(e):(e.style.zIndex="",this._needsPositionStickyOnElement&&(e.style.position=""),e.classList.remove(this._stickCellCss))}_addStickyStyle(e,A,i,n){e.classList.add(this._stickCellCss),n&&e.classList.add(this._borderCellCss[A]),e.style[A]=`${i}px`,e.style.zIndex=this._getCalculatedZIndex(e),this._needsPositionStickyOnElement&&(e.style.cssText+="position: -webkit-sticky; position: sticky; ")}_getCalculatedZIndex(e){let A={top:100,bottom:10,left:1,right:1},i=0;for(let n of BcA)e.style[n]&&(i+=A[n]);return i?`${i}`:""}_getCellWidths(e,A=!0){if(!A&&this._cachedCellWidths.length)return this._cachedCellWidths;let i=[],n=e.children;for(let o=0;o0;o--)A[o]&&(i[o]=n,n+=e[o]);return i}_retrieveElementSize(e){let A=this._elemSizeCache.get(e);if(A)return A;let i=e.getBoundingClientRect(),n={width:i.width,height:i.height};return this._resizeObserver&&(this._elemSizeCache.set(e,n),this._resizeObserver.observe(e,{box:"border-box"})),n}_updateStickyColumnReplayQueue(e){this._removeFromStickyColumnReplayQueue(e.rows),this._stickyColumnsReplayTimeout||this._updatedStickyColumnsParamsToReplay.push(e)}_removeFromStickyColumnReplayQueue(e){let A=new Set(e);for(let i of this._updatedStickyColumnsParamsToReplay)i.rows=i.rows.filter(n=>!A.has(n));this._updatedStickyColumnsParamsToReplay=this._updatedStickyColumnsParamsToReplay.filter(i=>!!i.rows.length)}_updateCachedSizes(e){let A=!1;for(let i of e){let n=i.borderBoxSize?.length?{width:i.borderBoxSize[0].inlineSize,height:i.borderBoxSize[0].blockSize}:{width:i.contentRect.width,height:i.contentRect.height};n.width!==this._elemSizeCache.get(i.target)?.width&&dHA(i.target)&&(A=!0),this._elemSizeCache.set(i.target,n)}A&&this._updatedStickyColumnsParamsToReplay.length&&(this._stickyColumnsReplayTimeout&&clearTimeout(this._stickyColumnsReplayTimeout),this._stickyColumnsReplayTimeout=setTimeout(()=>{if(!this._destroyed){for(let i of this._updatedStickyColumnsParamsToReplay)this.updateStickyColumns(i.rows,i.stickyStartStates,i.stickyEndStates,!0,!1);this._updatedStickyColumnsParamsToReplay=[],this._stickyColumnsReplayTimeout=null}},0))}_afterNextRender(e){this._tableInjector?Ir(e,{injector:this._tableInjector}):this._coalescedStyleScheduler.schedule(()=>{e.earlyRead?.(),e.write()})}};function dHA(t){return["cdk-cell","cdk-header-cell","cdk-footer-cell"].some(e=>t.classList.contains(e))}var E7=new eA("CDK_SPL");var JK=(()=>{class t{viewContainer=f(Sn);elementRef=f(se);constructor(){let A=f(Zg);A._rowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","rowOutlet",""]]})}return t})(),YK=(()=>{class t{viewContainer=f(Sn);elementRef=f(se);constructor(){let A=f(Zg);A._headerRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","headerRowOutlet",""]]})}return t})(),TK=(()=>{class t{viewContainer=f(Sn);elementRef=f(se);constructor(){let A=f(Zg);A._footerRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","footerRowOutlet",""]]})}return t})(),HK=(()=>{class t{viewContainer=f(Sn);elementRef=f(se);constructor(){let A=f(Zg);A._noDataRowOutlet=this,A._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","noDataRowOutlet",""]]})}return t})();var OK=(()=>{class t{_differs=f(Ql);_changeDetectorRef=f(Et);_elementRef=f(se);_dir=f(po,{optional:!0});_platform=f(ni);_viewRepeater=f(Hh);_coalescedStyleScheduler=f(B7);_viewportRuler=f(Nc);_stickyPositioningListener=f(E7,{optional:!0,skipSelf:!0});_document=f(at);_data;_onDestroy=new qA;_renderRows;_renderChangeSubscription;_columnDefsByName=new Map;_rowDefs;_headerRowDefs;_footerRowDefs;_dataDiffer;_defaultRowDef;_customColumnDefs=new Set;_customRowDefs=new Set;_customHeaderRowDefs=new Set;_customFooterRowDefs=new Set;_customNoDataRow;_headerRowDefChanged=!0;_footerRowDefChanged=!0;_stickyColumnStylesNeedReset=!0;_forceRecalculateCellWidths=!0;_cachedRenderRowsMap=new Map;_isNativeHtmlTable;_stickyStyler;stickyCssClass="cdk-table-sticky";needsPositionStickyOnElement=!0;_isServer;_isShowingNoDataRow=!1;_hasAllOutlets=!1;_hasInitialized=!1;_getCellRole(){if(this._cellRoleInternal===void 0){let A=this._elementRef.nativeElement.getAttribute("role");return A==="grid"||A==="treegrid"?"gridcell":"cell"}return this._cellRoleInternal}_cellRoleInternal=void 0;get trackBy(){return this._trackByFn}set trackBy(A){this._trackByFn=A}_trackByFn;get dataSource(){return this._dataSource}set dataSource(A){this._dataSource!==A&&this._switchDataSource(A)}_dataSource;get multiTemplateDataRows(){return this._multiTemplateDataRows}set multiTemplateDataRows(A){this._multiTemplateDataRows=A,this._rowOutlet&&this._rowOutlet.viewContainer.length&&(this._forceRenderDataRows(),this.updateStickyColumnStyles())}_multiTemplateDataRows=!1;get fixedLayout(){return this._fixedLayout}set fixedLayout(A){this._fixedLayout=A,this._forceRecalculateCellWidths=!0,this._stickyColumnStylesNeedReset=!0}_fixedLayout=!1;contentChanged=new YA;viewChange=new Fi({start:0,end:Number.MAX_VALUE});_rowOutlet;_headerRowOutlet;_footerRowOutlet;_noDataRowOutlet;_contentColumnDefs;_contentRowDefs;_contentHeaderRowDefs;_contentFooterRowDefs;_noDataRow;_injector=f(Zt);constructor(){f(new Wr("role"),{optional:!0})||this._elementRef.nativeElement.setAttribute("role","table"),this._isServer=!this._platform.isBrowser,this._isNativeHtmlTable=this._elementRef.nativeElement.nodeName==="TABLE"}ngOnInit(){this._setupStickyStyler(),this._dataDiffer=this._differs.find([]).create((A,i)=>this.trackBy?this.trackBy(i.dataIndex,i.data):i),this._viewportRuler.change().pipe(kt(this._onDestroy)).subscribe(()=>{this._forceRecalculateCellWidths=!0})}ngAfterContentInit(){this._hasInitialized=!0}ngAfterContentChecked(){this._canRender()&&this._render()}ngOnDestroy(){this._stickyStyler?.destroy(),[this._rowOutlet?.viewContainer,this._headerRowOutlet?.viewContainer,this._footerRowOutlet?.viewContainer,this._cachedRenderRowsMap,this._customColumnDefs,this._customRowDefs,this._customHeaderRowDefs,this._customFooterRowDefs,this._columnDefsByName].forEach(A=>{A?.clear()}),this._headerRowDefs=[],this._footerRowDefs=[],this._defaultRowDef=null,this._onDestroy.next(),this._onDestroy.complete(),M8(this.dataSource)&&this.dataSource.disconnect(this)}renderRows(){this._renderRows=this._getAllRenderRows();let A=this._dataDiffer.diff(this._renderRows);if(!A){this._updateNoDataRow(),this.contentChanged.next();return}let i=this._rowOutlet.viewContainer;this._viewRepeater.applyChanges(A,i,(n,o,r)=>this._getEmbeddedViewArgs(n.item,r),n=>n.item.data,n=>{n.operation===GB.INSERTED&&n.context&&this._renderCellTemplateForItem(n.record.item.rowDef,n.context)}),this._updateRowIndexContext(),A.forEachIdentityChange(n=>{let o=i.get(n.currentIndex);o.context.$implicit=n.item.data}),this._updateNoDataRow(),this.contentChanged.next(),this.updateStickyColumnStyles()}addColumnDef(A){this._customColumnDefs.add(A)}removeColumnDef(A){this._customColumnDefs.delete(A)}addRowDef(A){this._customRowDefs.add(A)}removeRowDef(A){this._customRowDefs.delete(A)}addHeaderRowDef(A){this._customHeaderRowDefs.add(A),this._headerRowDefChanged=!0}removeHeaderRowDef(A){this._customHeaderRowDefs.delete(A),this._headerRowDefChanged=!0}addFooterRowDef(A){this._customFooterRowDefs.add(A),this._footerRowDefChanged=!0}removeFooterRowDef(A){this._customFooterRowDefs.delete(A),this._footerRowDefChanged=!0}setNoDataRow(A){this._customNoDataRow=A}updateStickyHeaderRowStyles(){let A=this._getRenderedRows(this._headerRowOutlet);if(this._isNativeHtmlTable){let n=EcA(this._headerRowOutlet,"thead");n&&(n.style.display=A.length?"":"none")}let i=this._headerRowDefs.map(n=>n.sticky);this._stickyStyler.clearStickyPositioning(A,["top"]),this._stickyStyler.stickRows(A,i,"top"),this._headerRowDefs.forEach(n=>n.resetStickyChanged())}updateStickyFooterRowStyles(){let A=this._getRenderedRows(this._footerRowOutlet);if(this._isNativeHtmlTable){let n=EcA(this._footerRowOutlet,"tfoot");n&&(n.style.display=A.length?"":"none")}let i=this._footerRowDefs.map(n=>n.sticky);this._stickyStyler.clearStickyPositioning(A,["bottom"]),this._stickyStyler.stickRows(A,i,"bottom"),this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement,i),this._footerRowDefs.forEach(n=>n.resetStickyChanged())}updateStickyColumnStyles(){let A=this._getRenderedRows(this._headerRowOutlet),i=this._getRenderedRows(this._rowOutlet),n=this._getRenderedRows(this._footerRowOutlet);(this._isNativeHtmlTable&&!this._fixedLayout||this._stickyColumnStylesNeedReset)&&(this._stickyStyler.clearStickyPositioning([...A,...i,...n],["left","right"]),this._stickyColumnStylesNeedReset=!1),A.forEach((o,r)=>{this._addStickyColumnStyles([o],this._headerRowDefs[r])}),this._rowDefs.forEach(o=>{let r=[];for(let s=0;s{this._addStickyColumnStyles([o],this._footerRowDefs[r])}),Array.from(this._columnDefsByName.values()).forEach(o=>o.resetStickyChanged())}_outletAssigned(){!this._hasAllOutlets&&this._rowOutlet&&this._headerRowOutlet&&this._footerRowOutlet&&this._noDataRowOutlet&&(this._hasAllOutlets=!0,this._canRender()&&this._render())}_canRender(){return this._hasAllOutlets&&this._hasInitialized}_render(){this._cacheRowDefs(),this._cacheColumnDefs(),!this._headerRowDefs.length&&!this._footerRowDefs.length&&this._rowDefs.length;let i=this._renderUpdatedColumns()||this._headerRowDefChanged||this._footerRowDefChanged;this._stickyColumnStylesNeedReset=this._stickyColumnStylesNeedReset||i,this._forceRecalculateCellWidths=i,this._headerRowDefChanged&&(this._forceRenderHeaderRows(),this._headerRowDefChanged=!1),this._footerRowDefChanged&&(this._forceRenderFooterRows(),this._footerRowDefChanged=!1),this.dataSource&&this._rowDefs.length>0&&!this._renderChangeSubscription?this._observeRenderChanges():this._stickyColumnStylesNeedReset&&this.updateStickyColumnStyles(),this._checkStickyStates()}_getAllRenderRows(){let A=[],i=this._cachedRenderRowsMap;this._cachedRenderRowsMap=new Map;for(let n=0;n{let s=n&&n.has(r)?n.get(r):[];if(s.length){let a=s.shift();return a.dataIndex=i,a}else return{data:A,rowDef:r,dataIndex:i}})}_cacheColumnDefs(){this._columnDefsByName.clear(),I7(this._getOwnDefs(this._contentColumnDefs),this._customColumnDefs).forEach(i=>{this._columnDefsByName.has(i.name),this._columnDefsByName.set(i.name,i)})}_cacheRowDefs(){this._headerRowDefs=I7(this._getOwnDefs(this._contentHeaderRowDefs),this._customHeaderRowDefs),this._footerRowDefs=I7(this._getOwnDefs(this._contentFooterRowDefs),this._customFooterRowDefs),this._rowDefs=I7(this._getOwnDefs(this._contentRowDefs),this._customRowDefs);let A=this._rowDefs.filter(i=>!i.when);!this.multiTemplateDataRows&&A.length>1,this._defaultRowDef=A[0]}_renderUpdatedColumns(){let A=(r,s)=>{let a=!!s.getColumnsDiff();return r||a},i=this._rowDefs.reduce(A,!1);i&&this._forceRenderDataRows();let n=this._headerRowDefs.reduce(A,!1);n&&this._forceRenderHeaderRows();let o=this._footerRowDefs.reduce(A,!1);return o&&this._forceRenderFooterRows(),i||n||o}_switchDataSource(A){this._data=[],M8(this.dataSource)&&this.dataSource.disconnect(this),this._renderChangeSubscription&&(this._renderChangeSubscription.unsubscribe(),this._renderChangeSubscription=null),A||(this._dataDiffer&&this._dataDiffer.diff([]),this._rowOutlet&&this._rowOutlet.viewContainer.clear()),this._dataSource=A}_observeRenderChanges(){if(!this.dataSource)return;let A;M8(this.dataSource)?A=this.dataSource.connect(this):B2(this.dataSource)?A=this.dataSource:Array.isArray(this.dataSource)&&(A=Ce(this.dataSource)),this._renderChangeSubscription=A.pipe(kt(this._onDestroy)).subscribe(i=>{this._data=i||[],this.renderRows()})}_forceRenderHeaderRows(){this._headerRowOutlet.viewContainer.length>0&&this._headerRowOutlet.viewContainer.clear(),this._headerRowDefs.forEach((A,i)=>this._renderRow(this._headerRowOutlet,A,i)),this.updateStickyHeaderRowStyles()}_forceRenderFooterRows(){this._footerRowOutlet.viewContainer.length>0&&this._footerRowOutlet.viewContainer.clear(),this._footerRowDefs.forEach((A,i)=>this._renderRow(this._footerRowOutlet,A,i)),this.updateStickyFooterRowStyles()}_addStickyColumnStyles(A,i){let n=Array.from(i?.columns||[]).map(s=>{let a=this._columnDefsByName.get(s);return a}),o=n.map(s=>s.sticky),r=n.map(s=>s.stickyEnd);this._stickyStyler.updateStickyColumns(A,o,r,!this._fixedLayout||this._forceRecalculateCellWidths)}_getRenderedRows(A){let i=[];for(let n=0;n!o.when||o.when(i,A));else{let o=this._rowDefs.find(r=>r.when&&r.when(i,A))||this._defaultRowDef;o&&n.push(o)}return n.length,n}_getEmbeddedViewArgs(A,i){let n=A.rowDef,o={$implicit:A.data};return{templateRef:n.template,context:o,index:i}}_renderRow(A,i,n,o={}){let r=A.viewContainer.createEmbeddedView(i.template,o,n);return this._renderCellTemplateForItem(i,o),r}_renderCellTemplateForItem(A,i){for(let n of this._getCellTemplates(A))sd.mostRecentCellOutlet&&sd.mostRecentCellOutlet._viewContainer.createEmbeddedView(n,i);this._changeDetectorRef.markForCheck()}_updateRowIndexContext(){let A=this._rowOutlet.viewContainer;for(let i=0,n=A.length;i{let n=this._columnDefsByName.get(i);return A.extractCellTemplate(n)})}_forceRenderDataRows(){this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear(),this.renderRows()}_checkStickyStates(){let A=(i,n)=>i||n.hasStickyChanged();this._headerRowDefs.reduce(A,!1)&&this.updateStickyHeaderRowStyles(),this._footerRowDefs.reduce(A,!1)&&this.updateStickyFooterRowStyles(),Array.from(this._columnDefsByName.values()).reduce(A,!1)&&(this._stickyColumnStylesNeedReset=!0,this.updateStickyColumnStyles())}_setupStickyStyler(){let A=this._dir?this._dir.value:"ltr";this._stickyStyler=new NK(this._isNativeHtmlTable,this.stickyCssClass,A,this._coalescedStyleScheduler,this._platform.isBrowser,this.needsPositionStickyOnElement,this._stickyPositioningListener,this._injector),(this._dir?this._dir.change:Ce()).pipe(kt(this._onDestroy)).subscribe(i=>{this._stickyStyler.direction=i,this.updateStickyColumnStyles()})}_getOwnDefs(A){return A.filter(i=>!i._table||i._table===this)}_updateNoDataRow(){let A=this._customNoDataRow||this._noDataRow;if(!A)return;let i=this._rowOutlet.viewContainer.length===0;if(i===this._isShowingNoDataRow)return;let n=this._noDataRowOutlet.viewContainer;if(i){let o=n.createEmbeddedView(A.templateRef),r=o.rootNodes[0];o.rootNodes.length===1&&r?.nodeType===this._document.ELEMENT_NODE&&(r.setAttribute("role","row"),r.classList.add(A._contentClassName))}else n.clear();this._isShowingNoDataRow=i,this._changeDetectorRef.markForCheck()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["cdk-table"],["table","cdk-table",""]],contentQueries:function(i,n,o){if(i&1&&(gi(o,fcA,5),gi(o,JQ,5),gi(o,h7,5),gi(o,Df,5),gi(o,GK,5)),i&2){let r;de(r=Be())&&(n._noDataRow=r.first),de(r=Be())&&(n._contentColumnDefs=r),de(r=Be())&&(n._contentRowDefs=r),de(r=Be())&&(n._contentHeaderRowDefs=r),de(r=Be())&&(n._contentFooterRowDefs=r)}},hostAttrs:[1,"cdk-table"],hostVars:2,hostBindings:function(i,n){i&2&&he("cdk-table-fixed-layout",n.fixedLayout)},inputs:{trackBy:"trackBy",dataSource:"dataSource",multiTemplateDataRows:[2,"multiTemplateDataRows","multiTemplateDataRows",ge],fixedLayout:[2,"fixedLayout","fixedLayout",ge]},outputs:{contentChanged:"contentChanged"},exportAs:["cdkTable"],features:[ut([{provide:Zg,useExisting:t},{provide:Hh,useClass:KB},{provide:B7,useClass:FK},{provide:E7,useValue:null}])],ngContentSelectors:gHA,decls:5,vars:2,consts:[["role","rowgroup"],["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,n){i&1&&($t(cHA),Ue(0),Ue(1,1),NA(2,lHA,1,0)(3,IHA,7,0)(4,CHA,4,0)),i&2&&(_(2),_A(n._isServer?2:-1),_(),_A(n._isNativeHtmlTable?3:4))},dependencies:[YK,JK,HK,TK],styles:[".cdk-table-fixed-layout{table-layout:fixed}"],encapsulation:2})}return t})();function I7(t,e){return t.concat(Array.from(e))}function EcA(t,e){let A=e.toUpperCase(),i=t.viewContainer.element.nativeElement;for(;i;){let n=i.nodeType===1?i.nodeName:null;if(n===A)return i;if(n==="TABLE")break;i=i.parentNode}return null}var BHA=[[["caption"]],[["colgroup"],["col"]],"*"],EHA=["caption","colgroup, col","*"];function QHA(t,e){t&1&&Ue(0,2)}function uHA(t,e){t&1&&(S(0,"thead",0),rr(1,1),N(),S(2,"tbody",2),rr(3,3)(4,4),N(),S(5,"tfoot",0),rr(6,5),N())}function hHA(t,e){t&1&&rr(0,1)(1,3)(2,4)(3,5)}var mcA=(()=>{class t extends OK{stickyCssClass="mat-mdc-table-sticky";needsPositionStickyOnElement=!1;static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-table"],["table","mat-table",""]],hostAttrs:[1,"mat-mdc-table","mdc-data-table__table"],hostVars:2,hostBindings:function(i,n){i&2&&he("mdc-table-fixed-layout",n.fixedLayout)},exportAs:["matTable"],features:[ut([{provide:OK,useExisting:t},{provide:Zg,useExisting:t},{provide:B7,useClass:FK},{provide:Hh,useClass:KB},{provide:E7,useValue:null}]),lt],ngContentSelectors:EHA,decls:5,vars:2,consts:[["role","rowgroup"],["headerRowOutlet",""],["role","rowgroup",1,"mdc-data-table__content"],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,n){i&1&&($t(BHA),Ue(0),Ue(1,1),NA(2,QHA,1,0)(3,uHA,7,0)(4,hHA,4,0)),i&2&&(_(2),_A(n._isServer?2:-1),_(),_A(n._isNativeHtmlTable?3:4))},dependencies:[YK,JK,HK,TK],styles:[".mat-mdc-table-sticky{position:sticky !important}mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{min-width:100%;border:0;border-spacing:0;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color, var(--mat-sys-surface))}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell{text-align:right}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-header-headline-font, var(--mat-sys-title-small-font, Roboto, sans-serif));line-height:var(--mat-table-header-headline-line-height, var(--mat-sys-title-small-line-height));font-size:var(--mat-table-header-headline-size, var(--mat-sys-title-small-size, 14px));font-weight:var(--mat-table-header-headline-weight, var(--mat-sys-title-small-weight, 500))}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-row-item-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-row-item-label-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-row-item-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-footer-supporting-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-footer-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-footer-supporting-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-footer-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mat-table-footer-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking, var(--mat-sys-title-small-tracking));font-weight:inherit;line-height:inherit;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mat-mdc-header-cell{text-align:right}.mdc-data-table__row:last-child>.mat-mdc-header-cell{border-bottom:none}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking));line-height:inherit}.mdc-data-table__row:last-child>.mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking))}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}"],encapsulation:2})}return t})(),pcA=(()=>{class t extends Q7{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matCellDef",""]],features:[ut([{provide:Q7,useExisting:t}]),lt]})}return t})(),DcA=(()=>{class t extends u7{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matHeaderCellDef",""]],features:[ut([{provide:u7,useExisting:t}]),lt]})}return t})();var wcA=(()=>{class t extends JQ{get name(){return this._name}set name(A){this._setNameInput(A)}_updateColumnCssClassName(){super._updateColumnCssClassName(),this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matColumnDef",""]],inputs:{name:[0,"matColumnDef","name"]},features:[ut([{provide:JQ,useExisting:t},{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}]),lt]})}return t})(),ycA=(()=>{class t extends ucA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["mat-header-cell"],["th","mat-header-cell",""]],hostAttrs:["role","columnheader",1,"mat-mdc-header-cell","mdc-data-table__header-cell"],features:[lt]})}return t})();var vcA=(()=>{class t extends hcA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["mat-cell"],["td","mat-cell",""]],hostAttrs:[1,"mat-mdc-cell","mdc-data-table__cell"],features:[lt]})}return t})();var McA=(()=>{class t extends Df{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matHeaderRowDef",""]],inputs:{columns:[0,"matHeaderRowDef","columns"],sticky:[2,"matHeaderRowDefSticky","sticky",ge]},features:[ut([{provide:Df,useExisting:t}]),lt]})}return t})();var bcA=(()=>{class t extends h7{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matRowDef",""]],inputs:{columns:[0,"matRowDefColumns","columns"],when:[0,"matRowDefWhen","when"]},features:[ut([{provide:h7,useExisting:t}]),lt]})}return t})(),kcA=(()=>{class t extends KK{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-header-row"],["tr","mat-header-row",""]],hostAttrs:["role","row",1,"mat-mdc-header-row","mdc-data-table__header-row"],exportAs:["matHeaderRow"],features:[ut([{provide:KK,useExisting:t}]),lt],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&rr(0,0)},dependencies:[sd],encapsulation:2})}return t})();var ScA=(()=>{class t extends UK{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-row"],["tr","mat-row",""]],hostAttrs:["role","row",1,"mat-mdc-row","mdc-data-table__row"],exportAs:["matRow"],features:[ut([{provide:UK,useExisting:t}]),lt],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&rr(0,0)},dependencies:[sd],encapsulation:2})}return t})();var fHA=9007199254740991,wf=class extends v8{_data;_renderData=new Fi([]);_filter=new Fi("");_internalPageChanges=new qA;_renderChangesSubscription=null;filteredData;get data(){return this._data.value}set data(e){e=Array.isArray(e)?e:[],this._data.next(e),this._renderChangesSubscription||this._filterData(e)}get filter(){return this._filter.value}set filter(e){this._filter.next(e),this._renderChangesSubscription||this._filterData(this.data)}get sort(){return this._sort}set sort(e){this._sort=e,this._updateChangeSubscription()}_sort;get paginator(){return this._paginator}set paginator(e){this._paginator=e,this._updateChangeSubscription()}_paginator;sortingDataAccessor=(e,A)=>{let i=e[A];if(Ek(i)){let n=Number(i);return n{let i=A.active,n=A.direction;return!i||n==""?e:e.sort((o,r)=>{let s=this.sortingDataAccessor(o,i),a=this.sortingDataAccessor(r,i),c=typeof s,g=typeof a;c!==g&&(c==="number"&&(s+=""),g==="number"&&(a+=""));let I=0;return s!=null&&a!=null?s>a?I=1:s{let i=A.trim().toLowerCase();return Object.values(e).some(n=>`${n}`.toLowerCase().includes(i))};constructor(e=[]){super(),this._data=new Fi(e),this._updateChangeSubscription()}_updateChangeSubscription(){let e=this._sort?Hn(this._sort.sortChange,this._sort.initialized):Ce(null),A=this._paginator?Hn(this._paginator.page,this._internalPageChanges,this._paginator.initialized):Ce(null),i=this._data,n=ga([i,this._filter]).pipe(je(([s])=>this._filterData(s))),o=ga([n,e]).pipe(je(([s])=>this._orderData(s))),r=ga([o,A]).pipe(je(([s])=>this._pageData(s)));this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=r.subscribe(s=>this._renderData.next(s))}_filterData(e){return this.filteredData=this.filter==null||this.filter===""?e:e.filter(A=>this.filterPredicate(A,this.filter)),this.paginator&&this._updatePaginator(this.filteredData.length),this.filteredData}_orderData(e){return this.sort?this.sortData(e.slice(),this.sort):e}_pageData(e){if(!this.paginator)return e;let A=this.paginator.pageIndex*this.paginator.pageSize;return e.slice(A,A+this.paginator.pageSize)}_updatePaginator(e){Promise.resolve().then(()=>{let A=this.paginator;if(A&&(A.length=e,A.pageIndex>0)){let i=Math.ceil(A.length/A.pageSize)-1||0,n=Math.min(A.pageIndex,i);n!==A.pageIndex&&(A.pageIndex=n,this._internalPageChanges.next())}})}connect(){return this._renderChangesSubscription||this._updateChangeSubscription(),this._renderData}disconnect(){this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=null}};var RcA=[{metricName:"tool_trajectory_avg_score",threshold:1},{metricName:"response_match_score",threshold:.7}];var f7="0123456789abcdef",m7=class t{constructor(e){this.bytes=e}static ofInner(e){if(e.length!==16)throw new TypeError("not 128-bit length");return new t(e)}static fromFieldsV7(e,A,i,n){if(!Number.isInteger(e)||!Number.isInteger(A)||!Number.isInteger(i)||!Number.isInteger(n)||e<0||A<0||i<0||n<0||e>0xffffffffffff||A>4095||i>1073741823||n>4294967295)throw new RangeError("invalid field value");let o=new Uint8Array(16);return o[0]=e/2**40,o[1]=e/2**32,o[2]=e/2**24,o[3]=e/2**16,o[4]=e/2**8,o[5]=e,o[6]=112|A>>>8,o[7]=A,o[8]=128|i>>>24,o[9]=i>>>16,o[10]=i>>>8,o[11]=i,o[12]=n>>>24,o[13]=n>>>16,o[14]=n>>>8,o[15]=n,new t(o)}static parse(e){var A,i,n,o;let r;switch(e.length){case 32:r=(A=/^[0-9a-f]{32}$/i.exec(e))===null||A===void 0?void 0:A[0];break;case 36:r=(i=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(e))===null||i===void 0?void 0:i.slice(1,6).join("");break;case 38:r=(n=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(e))===null||n===void 0?void 0:n.slice(1,6).join("");break;case 45:r=(o=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(e))===null||o===void 0?void 0:o.slice(1,6).join("");break;default:break}if(r){let s=new Uint8Array(16);for(let a=0;a<16;a+=4){let c=parseInt(r.substring(2*a,2*a+8),16);s[a+0]=c>>>24,s[a+1]=c>>>16,s[a+2]=c>>>8,s[a+3]=c}return new t(s)}else throw new SyntaxError("could not parse UUID string")}toString(){let e="";for(let A=0;A>>4),e+=f7.charAt(this.bytes[A]&15),(A===3||A===5||A===7||A===9)&&(e+="-");return e}toHex(){let e="";for(let A=0;A>>4),e+=f7.charAt(this.bytes[A]&15);return e}toJSON(){return this.toString()}getVariant(){let e=this.bytes[8]>>>4;if(e<0)throw new Error("unreachable");if(e<=7)return this.bytes.every(A=>A===0)?"NIL":"VAR_0";if(e<=11)return"VAR_10";if(e<=13)return"VAR_110";if(e<=15)return this.bytes.every(A=>A===255)?"MAX":"VAR_RESERVED";throw new Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new t(this.bytes.slice(0))}equals(e){return this.compareTo(e)===0}compareTo(e){for(let A=0;A<16;A++){let i=this.bytes[A]-e.bytes[A];if(i!==0)return Math.sign(i)}return 0}},zK=class{constructor(e){this.timestamp=0,this.counter=0,this.random=e??mHA()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(e,A){let i=this.generateOrAbortCore(e,A);return i===void 0&&(this.timestamp=0,i=this.generateOrAbortCore(e,A)),i}generateOrAbortCore(e,A){if(!Number.isInteger(e)||e<1||e>0xffffffffffff)throw new RangeError("`unixTsMs` must be a 48-bit positive integer");if(A<0||A>0xffffffffffff)throw new RangeError("`rollbackAllowance` out of reasonable range");if(e>this.timestamp)this.timestamp=e,this.resetCounter();else if(e+A>=this.timestamp)this.counter++,this.counter>4398046511103&&(this.timestamp++,this.resetCounter());else return;return m7.fromFieldsV7(this.timestamp,Math.trunc(this.counter/2**30),this.counter&2**30-1,this.random.nextUint32())}resetCounter(){this.counter=this.random.nextUint32()*1024+(this.random.nextUint32()&1023)}generateV4(){let e=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return e[6]=64|e[6]>>>4,e[8]=128|e[8]>>>2,m7.ofInner(e)}},mHA=()=>{if(typeof crypto<"u"&&typeof crypto.getRandomValues<"u")return new PK;if(typeof UUIDV7_DENY_WEAK_RNG<"u"&&UUIDV7_DENY_WEAK_RNG)throw new Error("no cryptographically strong RNG available");return{nextUint32:()=>Math.trunc(Math.random()*65536)*65536+Math.trunc(Math.random()*65536)}},PK=class{constructor(){this.buffer=new Uint32Array(8),this.cursor=65535}nextUint32(){return this.cursor>=this.buffer.length&&(crypto.getRandomValues(this.buffer),this.cursor=0),this.buffer[this.cursor++]}},LcA;var p7=()=>pHA().toString(),pHA=()=>(LcA||(LcA=new zK)).generateV4();var D7=class t{evalService=f(Rl);data=f(Cs);dialogRef=f(fr);newCaseId="case"+p7().slice(0,6);constructor(){}createNewEvalCase(){!this.newCaseId||this.newCaseId==""?alert("Cannot create eval set with empty id!"):this.evalService.addCurrentSession(this.data.appName,this.data.evalSetId,this.newCaseId,this.data.sessionId,this.data.userId).subscribe(e=>{this.dialogRef.close(!0)})}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-add-eval-session-dialog"]],decls:11,vars:1,consts:[["mat-dialog-title",""],[2,"padding-left","20px","padding-right","24px"],["matInput","",3,"ngModelChange","keydown.enter","ngModel"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"h2",0),AA(1,"Add Current Session To Eval Set"),N(),S(2,"mat-dialog-content"),AA(3,` Please enter the eval case name -`),N(),S(4,"mat-form-field",1)(5,"input",2),Xa("ngModelChange",function(o){return Wa(i.newCaseId,o)||(i.newCaseId=o),o}),mA("keydown.enter",function(){return i.createNewEvalCase()}),N()(),S(6,"mat-dialog-actions",3)(7,"button",4),AA(8,"Cancel"),N(),S(9,"button",5),mA("click",function(){return i.createNewEvalCase()}),AA(10,"Create"),N()()),A&2&&(_(5),Za("ngModel",i.newCaseId))},dependencies:[Ls,ya,fl,J2,Mr,kc,Ss,tc,va,dr,bl],encapsulation:2})};var w7=class t{evalService=f(Rl);data=f(Cs);dialogRef=f(fr);newSetId="evalset"+p7().slice(0,6);constructor(){}createNewEvalSet(){!this.newSetId||this.newSetId==""?alert("Cannot create eval set with empty id!"):this.evalService.createNewEvalSet(this.data.appName,this.newSetId).subscribe(e=>{this.dialogRef.close(!0)})}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-new-eval-set-dialog-component"]],decls:11,vars:1,consts:[["mat-dialog-title",""],[2,"padding-left","20px","padding-right","24px"],["matInput","",3,"ngModelChange","keydown.enter","ngModel"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"h2",0),AA(1,"Create New Eval Set"),N(),S(2,"mat-dialog-content"),AA(3,` Please enter the eval set name -`),N(),S(4,"mat-form-field",1)(5,"input",2),Xa("ngModelChange",function(o){return Wa(i.newSetId,o)||(i.newSetId=o),o}),mA("keydown.enter",function(){return i.createNewEvalSet()}),N()(),S(6,"mat-dialog-actions",3)(7,"button",4),AA(8,"Cancel"),N(),S(9,"button",5),mA("click",function(){return i.createNewEvalSet()}),AA(10,"Create"),N()()),A&2&&(_(5),Za("ngModel",i.newSetId))},dependencies:[Ls,ya,fl,J2,Mr,kc,Ss,tc,va,dr,bl],encapsulation:2})};var DHA=["knob"],wHA=["valueIndicatorContainer"];function yHA(t,e){if(t&1&&(S(0,"div",2,1)(2,"div",5)(3,"span",6),AA(4),N()()()),t&2){let A=Y();_(4),tt(A.valueIndicatorText)}}var vHA=["trackActive"],MHA=["*"];function bHA(t,e){if(t&1&&TA(0,"div"),t&2){let A=e.$implicit,i=e.$index,n=Y(3);Ro(A===0?"mdc-slider__tick-mark--active":"mdc-slider__tick-mark--inactive"),mo("transform",n._calcTickMarkTransform(i))}}function kHA(t,e){if(t&1&&dn(0,bHA,1,4,"div",8,AB),t&2){let A=Y(2);Bn(A._tickMarks)}}function SHA(t,e){if(t&1&&(S(0,"div",6,1),NA(2,kHA,2,0),N()),t&2){let A=Y();_(2),_A(A._cachedWidth?2:-1)}}function RHA(t,e){if(t&1&&TA(0,"mat-slider-visual-thumb",7),t&2){let A=Y();yA("discrete",A.discrete)("thumbPosition",1)("valueIndicatorText",A.startValueIndicatorText)}}var Ii=function(t){return t[t.START=1]="START",t[t.END=2]="END",t}(Ii||{}),YQ=function(t){return t[t.ACTIVE=0]="ACTIVE",t[t.INACTIVE=1]="INACTIVE",t}(YQ||{}),jK=new eA("_MatSlider"),xcA=new eA("_MatSliderThumb"),LHA=new eA("_MatSliderRangeThumb"),NcA=new eA("_MatSliderVisualThumb");var xHA=(()=>{class t{_cdr=f(Et);_ngZone=f(ye);_slider=f(jK);_renderer=f(qi);_listenerCleanups;discrete;thumbPosition;valueIndicatorText;_ripple;_knob;_valueIndicatorContainer;_sliderInput;_sliderInputEl;_hoverRippleRef;_focusRippleRef;_activeRippleRef;_isHovered=!1;_isActive=!1;_isValueIndicatorVisible=!1;_hostElement=f(se).nativeElement;_platform=f(ni);constructor(){}ngAfterViewInit(){let A=this._slider._getInput(this.thumbPosition);A&&(this._ripple.radius=24,this._sliderInput=A,this._sliderInputEl=this._sliderInput._hostElement,this._ngZone.runOutsideAngular(()=>{let i=this._sliderInputEl,n=this._renderer;this._listenerCleanups=[n.listen(i,"pointermove",this._onPointerMove),n.listen(i,"pointerdown",this._onDragStart),n.listen(i,"pointerup",this._onDragEnd),n.listen(i,"pointerleave",this._onMouseLeave),n.listen(i,"focus",this._onFocus),n.listen(i,"blur",this._onBlur)]}))}ngOnDestroy(){this._listenerCleanups?.forEach(A=>A())}_onPointerMove=A=>{if(this._sliderInput._isFocused)return;let i=this._hostElement.getBoundingClientRect(),n=this._slider._isCursorOnSliderThumb(A,i);this._isHovered=n,n?this._showHoverRipple():this._hideRipple(this._hoverRippleRef)};_onMouseLeave=()=>{this._isHovered=!1,this._hideRipple(this._hoverRippleRef)};_onFocus=()=>{this._hideRipple(this._hoverRippleRef),this._showFocusRipple(),this._hostElement.classList.add("mdc-slider__thumb--focused")};_onBlur=()=>{this._isActive||this._hideRipple(this._focusRippleRef),this._isHovered&&this._showHoverRipple(),this._hostElement.classList.remove("mdc-slider__thumb--focused")};_onDragStart=A=>{A.button===0&&(this._isActive=!0,this._showActiveRipple())};_onDragEnd=()=>{this._isActive=!1,this._hideRipple(this._activeRippleRef),this._sliderInput._isFocused||this._hideRipple(this._focusRippleRef),this._platform.SAFARI&&this._showHoverRipple()};_showHoverRipple(){this._isShowingRipple(this._hoverRippleRef)||(this._hoverRippleRef=this._showRipple({enterDuration:0,exitDuration:0}),this._hoverRippleRef?.element.classList.add("mat-mdc-slider-hover-ripple"))}_showFocusRipple(){this._isShowingRipple(this._focusRippleRef)||(this._focusRippleRef=this._showRipple({enterDuration:0,exitDuration:0},!0),this._focusRippleRef?.element.classList.add("mat-mdc-slider-focus-ripple"))}_showActiveRipple(){this._isShowingRipple(this._activeRippleRef)||(this._activeRippleRef=this._showRipple({enterDuration:225,exitDuration:400}),this._activeRippleRef?.element.classList.add("mat-mdc-slider-active-ripple"))}_isShowingRipple(A){return A?.state===Ws.FADING_IN||A?.state===Ws.VISIBLE}_showRipple(A,i){if(!this._slider.disabled&&(this._showValueIndicator(),this._slider._isRange&&this._slider._getThumb(this.thumbPosition===Ii.START?Ii.END:Ii.START)._showValueIndicator(),!(this._slider._globalRippleOptions?.disabled&&!i)))return this._ripple.launch({animation:this._slider._noopAnimations?{enterDuration:0,exitDuration:0}:A,centered:!0,persistent:!0})}_hideRipple(A){if(A?.fadeOut(),this._isShowingAnyRipple())return;this._slider._isRange||this._hideValueIndicator();let i=this._getSibling();i._isShowingAnyRipple()||(this._hideValueIndicator(),i._hideValueIndicator())}_showValueIndicator(){this._hostElement.classList.add("mdc-slider__thumb--with-indicator")}_hideValueIndicator(){this._hostElement.classList.remove("mdc-slider__thumb--with-indicator")}_getSibling(){return this._slider._getThumb(this.thumbPosition===Ii.START?Ii.END:Ii.START)}_getValueIndicatorContainer(){return this._valueIndicatorContainer?.nativeElement}_getKnob(){return this._knob.nativeElement}_isShowingAnyRipple(){return this._isShowingRipple(this._hoverRippleRef)||this._isShowingRipple(this._focusRippleRef)||this._isShowingRipple(this._activeRippleRef)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-slider-visual-thumb"]],viewQuery:function(i,n){if(i&1&&(st(Xs,5),st(DHA,5),st(wHA,5)),i&2){let o;de(o=Be())&&(n._ripple=o.first),de(o=Be())&&(n._knob=o.first),de(o=Be())&&(n._valueIndicatorContainer=o.first)}},hostAttrs:[1,"mdc-slider__thumb","mat-mdc-slider-visual-thumb"],inputs:{discrete:"discrete",thumbPosition:"thumbPosition",valueIndicatorText:"valueIndicatorText"},features:[ut([{provide:NcA,useExisting:t}])],decls:4,vars:2,consts:[["knob",""],["valueIndicatorContainer",""],[1,"mdc-slider__value-indicator-container"],[1,"mdc-slider__thumb-knob"],["matRipple","",1,"mat-focus-indicator",3,"matRippleDisabled"],[1,"mdc-slider__value-indicator"],[1,"mdc-slider__value-indicator-text"]],template:function(i,n){i&1&&(NA(0,yHA,5,1,"div",2),TA(1,"div",3,0)(3,"div",4)),i&2&&(_A(n.discrete?0:-1),_(3),yA("matRippleDisabled",!0))},dependencies:[Xs],styles:[".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}"],encapsulation:2,changeDetection:0})}return t})(),FcA=(()=>{class t{_ngZone=f(ye);_cdr=f(Et);_elementRef=f(se);_dir=f(po,{optional:!0});_globalRippleOptions=f(ZI,{optional:!0});_trackActive;_thumbs;_input;_inputs;get disabled(){return this._disabled}set disabled(A){this._disabled=A;let i=this._getInput(Ii.END),n=this._getInput(Ii.START);i&&(i.disabled=this._disabled),n&&(n.disabled=this._disabled)}_disabled=!1;get discrete(){return this._discrete}set discrete(A){this._discrete=A,this._updateValueIndicatorUIs()}_discrete=!1;showTickMarks=!1;get min(){return this._min}set min(A){let i=isNaN(A)?this._min:A;this._min!==i&&this._updateMin(i)}_min=0;color;disableRipple=!1;_updateMin(A){let i=this._min;this._min=A,this._isRange?this._updateMinRange({old:i,new:A}):this._updateMinNonRange(A),this._onMinMaxOrStepChange()}_updateMinRange(A){let i=this._getInput(Ii.END),n=this._getInput(Ii.START),o=i.value,r=n.value;n.min=A.new,i.min=Math.max(A.new,n.value),n.max=Math.min(i.max,i.value),n._updateWidthInactive(),i._updateWidthInactive(),A.newA.old?this._onTranslateXChangeBySideEffect(n,i):this._onTranslateXChangeBySideEffect(i,n),o!==i.value&&this._onValueChange(i),r!==n.value&&this._onValueChange(n)}_updateMaxNonRange(A){let i=this._getInput(Ii.END);if(i){let n=i.value;i.max=A,i._updateThumbUIByValue(),this._updateTrackUI(i),n!==i.value&&this._onValueChange(i)}}get step(){return this._step}set step(A){let i=isNaN(A)?this._step:A;this._step!==i&&this._updateStep(i)}_step=1;_updateStep(A){this._step=A,this._isRange?this._updateStepRange():this._updateStepNonRange(),this._onMinMaxOrStepChange()}_updateStepRange(){let A=this._getInput(Ii.END),i=this._getInput(Ii.START),n=A.value,o=i.value,r=i.value;A.min=this._min,i.max=this._max,A.step=this._step,i.step=this._step,this._platform.SAFARI&&(A.value=A.value,i.value=i.value),A.min=Math.max(this._min,i.value),i.max=Math.min(this._max,A.value),i._updateWidthInactive(),A._updateWidthInactive(),A.value`${A}`;_tickMarks;_noopAnimations;_dirChangeSubscription;_resizeObserver;_cachedWidth;_cachedLeft;_rippleRadius=24;startValueIndicatorText="";endValueIndicatorText="";_endThumbTransform;_startThumbTransform;_isRange=!1;_isRtl=!1;_hasViewInitialized=!1;_tickMarkTrackWidth=0;_hasAnimation=!1;_resizeTimer=null;_platform=f(ni);constructor(){f(Pn).load(Yr);let A=f(_i,{optional:!0});this._noopAnimations=A==="NoopAnimations",this._dir&&(this._dirChangeSubscription=this._dir.change.subscribe(()=>this._onDirChange()),this._isRtl=this._dir.value==="rtl")}_knobRadius=8;_inputPadding;ngAfterViewInit(){this._platform.isBrowser&&this._updateDimensions();let A=this._getInput(Ii.END),i=this._getInput(Ii.START);this._isRange=!!A&&!!i,this._cdr.detectChanges();let n=this._getThumb(Ii.END);this._rippleRadius=n._ripple.radius,this._inputPadding=this._rippleRadius-this._knobRadius,this._isRange?this._initUIRange(A,i):this._initUINonRange(A),this._updateTrackUI(A),this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._observeHostResize(),this._cdr.detectChanges()}_initUINonRange(A){A.initProps(),A.initUI(),this._updateValueIndicatorUI(A),this._hasViewInitialized=!0,A._updateThumbUIByValue()}_initUIRange(A,i){A.initProps(),A.initUI(),i.initProps(),i.initUI(),A._updateMinMax(),i._updateMinMax(),A._updateStaticStyles(),i._updateStaticStyles(),this._updateValueIndicatorUIs(),this._hasViewInitialized=!0,A._updateThumbUIByValue(),i._updateThumbUIByValue()}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._resizeObserver?.disconnect(),this._resizeObserver=null}_onDirChange(){this._isRtl=this._dir?.value==="rtl",this._isRange?this._onDirChangeRange():this._onDirChangeNonRange(),this._updateTickMarkUI()}_onDirChangeRange(){let A=this._getInput(Ii.END),i=this._getInput(Ii.START);A._setIsLeftThumb(),i._setIsLeftThumb(),A.translateX=A._calcTranslateXByValue(),i.translateX=i._calcTranslateXByValue(),A._updateStaticStyles(),i._updateStaticStyles(),A._updateWidthInactive(),i._updateWidthInactive(),A._updateThumbUIByValue(),i._updateThumbUIByValue()}_onDirChangeNonRange(){this._getInput(Ii.END)._updateThumbUIByValue()}_observeHostResize(){typeof ResizeObserver>"u"||!ResizeObserver||this._ngZone.runOutsideAngular(()=>{this._resizeObserver=new ResizeObserver(()=>{this._isActive()||(this._resizeTimer&&clearTimeout(this._resizeTimer),this._onResize())}),this._resizeObserver.observe(this._elementRef.nativeElement)})}_isActive(){return this._getThumb(Ii.START)._isActive||this._getThumb(Ii.END)._isActive}_getValue(A=Ii.END){let i=this._getInput(A);return i?i.value:this.min}_skipUpdate(){return!!(this._getInput(Ii.START)?._skipUIUpdate||this._getInput(Ii.END)?._skipUIUpdate)}_updateDimensions(){this._cachedWidth=this._elementRef.nativeElement.offsetWidth,this._cachedLeft=this._elementRef.nativeElement.getBoundingClientRect().left}_setTrackActiveStyles(A){let i=this._trackActive.nativeElement.style;i.left=A.left,i.right=A.right,i.transformOrigin=A.transformOrigin,i.transform=A.transform}_calcTickMarkTransform(A){let i=A*(this._tickMarkTrackWidth/(this._tickMarks.length-1));return`translateX(${this._isRtl?this._cachedWidth-6-i:i}px`}_onTranslateXChange(A){this._hasViewInitialized&&(this._updateThumbUI(A),this._updateTrackUI(A),this._updateOverlappingThumbUI(A))}_onTranslateXChangeBySideEffect(A,i){this._hasViewInitialized&&(A._updateThumbUIByValue(),i._updateThumbUIByValue())}_onValueChange(A){this._hasViewInitialized&&(this._updateValueIndicatorUI(A),this._updateTickMarkUI(),this._cdr.detectChanges())}_onMinMaxOrStepChange(){this._hasViewInitialized&&(this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.markForCheck())}_onResize(){if(this._hasViewInitialized){if(this._updateDimensions(),this._isRange){let A=this._getInput(Ii.END),i=this._getInput(Ii.START);A._updateThumbUIByValue(),i._updateThumbUIByValue(),A._updateStaticStyles(),i._updateStaticStyles(),A._updateMinMax(),i._updateMinMax(),A._updateWidthInactive(),i._updateWidthInactive()}else{let A=this._getInput(Ii.END);A&&A._updateThumbUIByValue()}this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.detectChanges()}}_thumbsOverlap=!1;_areThumbsOverlapping(){let A=this._getInput(Ii.START),i=this._getInput(Ii.END);return!A||!i?!1:i.translateX-A.translateX<20}_updateOverlappingThumbClassNames(A){let i=A.getSibling(),n=this._getThumb(A.thumbPosition);this._getThumb(i.thumbPosition)._hostElement.classList.remove("mdc-slider__thumb--top"),n._hostElement.classList.toggle("mdc-slider__thumb--top",this._thumbsOverlap)}_updateOverlappingThumbUI(A){!this._isRange||this._skipUpdate()||this._thumbsOverlap!==this._areThumbsOverlapping()&&(this._thumbsOverlap=!this._thumbsOverlap,this._updateOverlappingThumbClassNames(A))}_updateThumbUI(A){if(this._skipUpdate())return;let i=this._getThumb(A.thumbPosition===Ii.END?Ii.END:Ii.START);i._hostElement.style.transform=`translateX(${A.translateX}px)`}_updateValueIndicatorUI(A){if(this._skipUpdate())return;let i=this.displayWith(A.value);if(this._hasViewInitialized?A._valuetext.set(i):A._hostElement.setAttribute("aria-valuetext",i),this.discrete){A.thumbPosition===Ii.START?this.startValueIndicatorText=i:this.endValueIndicatorText=i;let n=this._getThumb(A.thumbPosition);i.length<3?n._hostElement.classList.add("mdc-slider__thumb--short-value"):n._hostElement.classList.remove("mdc-slider__thumb--short-value")}}_updateValueIndicatorUIs(){let A=this._getInput(Ii.END),i=this._getInput(Ii.START);A&&this._updateValueIndicatorUI(A),i&&this._updateValueIndicatorUI(i)}_updateTickMarkTrackUI(){if(!this.showTickMarks||this._skipUpdate())return;let A=this._step&&this._step>0?this._step:1,n=(Math.floor(this.max/A)*A-this.min)/(this.max-this.min);this._tickMarkTrackWidth=(this._cachedWidth-6)*n}_updateTrackUI(A){this._skipUpdate()||(this._isRange?this._updateTrackUIRange(A):this._updateTrackUINonRange(A))}_updateTrackUIRange(A){let i=A.getSibling();if(!i||!this._cachedWidth)return;let n=Math.abs(i.translateX-A.translateX)/this._cachedWidth;A._isLeftThumb&&this._cachedWidth?this._setTrackActiveStyles({left:"auto",right:`${this._cachedWidth-i.translateX}px`,transformOrigin:"right",transform:`scaleX(${n})`}):this._setTrackActiveStyles({left:`${i.translateX}px`,right:"auto",transformOrigin:"left",transform:`scaleX(${n})`})}_updateTrackUINonRange(A){this._isRtl?this._setTrackActiveStyles({left:"auto",right:"0px",transformOrigin:"right",transform:`scaleX(${1-A.fillPercentage})`}):this._setTrackActiveStyles({left:"0px",right:"auto",transformOrigin:"left",transform:`scaleX(${A.fillPercentage})`})}_updateTickMarkUI(){if(!this.showTickMarks||this.step===void 0||this.min===void 0||this.max===void 0)return;let A=this.step>0?this.step:1;this._isRange?this._updateTickMarkUIRange(A):this._updateTickMarkUINonRange(A)}_updateTickMarkUINonRange(A){let i=this._getValue(),n=Math.max(Math.round((i-this.min)/A),0)+1,o=Math.max(Math.round((this.max-i)/A),0)-1;this._isRtl?n++:o++,this._tickMarks=Array(n).fill(YQ.ACTIVE).concat(Array(o).fill(YQ.INACTIVE))}_updateTickMarkUIRange(A){let i=this._getValue(),n=this._getValue(Ii.START),o=Math.max(Math.round((n-this.min)/A),0),r=Math.max(Math.round((i-n)/A)+1,0),s=Math.max(Math.round((this.max-i)/A),0);this._tickMarks=Array(o).fill(YQ.INACTIVE).concat(Array(r).fill(YQ.ACTIVE),Array(s).fill(YQ.INACTIVE))}_getInput(A){if(A===Ii.END&&this._input)return this._input;if(this._inputs?.length)return A===Ii.START?this._inputs.first:this._inputs.last}_getThumb(A){return A===Ii.END?this._thumbs?.last:this._thumbs?.first}_setTransition(A){this._hasAnimation=!this._platform.IOS&&A&&!this._noopAnimations,this._elementRef.nativeElement.classList.toggle("mat-mdc-slider-with-animation",this._hasAnimation)}_isCursorOnSliderThumb(A,i){let n=i.width/2,o=i.x+n,r=i.y+n,s=A.clientX-o,a=A.clientY-r;return Math.pow(s,2)+Math.pow(a,2)qK),multi:!0};var qK=(()=>{class t{_ngZone=f(ye);_elementRef=f(se);_cdr=f(Et);_slider=f(jK);_platform=f(ni);_listenerCleanups;get value(){return en(this._hostElement.value,0)}set value(A){A=isNaN(A)?0:A;let i=A+"";if(!this._hasSetInitialValue){this._initialValue=i;return}this._isActive||this._setValue(i)}_setValue(A){this._hostElement.value=A,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges(),this._slider._cdr.markForCheck()}valueChange=new YA;dragStart=new YA;dragEnd=new YA;get translateX(){return this._slider.min>=this._slider.max?(this._translateX=this._tickMarkOffset,this._translateX):(this._translateX===void 0&&(this._translateX=this._calcTranslateXByValue()),this._translateX)}set translateX(A){this._translateX=A}_translateX;thumbPosition=Ii.END;get min(){return en(this._hostElement.min,0)}set min(A){this._hostElement.min=A+"",this._cdr.detectChanges()}get max(){return en(this._hostElement.max,0)}set max(A){this._hostElement.max=A+"",this._cdr.detectChanges()}get step(){return en(this._hostElement.step,0)}set step(A){this._hostElement.step=A+"",this._cdr.detectChanges()}get disabled(){return ge(this._hostElement.disabled)}set disabled(A){this._hostElement.disabled=A,this._cdr.detectChanges(),this._slider.disabled!==this.disabled&&(this._slider.disabled=this.disabled)}get percentage(){return this._slider.min>=this._slider.max?this._slider._isRtl?1:0:(this.value-this._slider.min)/(this._slider.max-this._slider.min)}get fillPercentage(){return this._slider._cachedWidth?this._translateX===0?0:this.translateX/this._slider._cachedWidth:this._slider._isRtl?1:0}_hostElement=this._elementRef.nativeElement;_valuetext=Ao("");_knobRadius=8;_tickMarkOffset=3;_isActive=!1;_isFocused=!1;_setIsFocused(A){this._isFocused=A}_hasSetInitialValue=!1;_initialValue;_formControl;_destroyed=new qA;_skipUIUpdate=!1;_onChangeFn;_onTouchedFn=()=>{};_isControlInitialized=!1;constructor(){let A=f(qi);this._ngZone.runOutsideAngular(()=>{this._listenerCleanups=[A.listen(this._hostElement,"pointerdown",this._onPointerDown.bind(this)),A.listen(this._hostElement,"pointermove",this._onPointerMove.bind(this)),A.listen(this._hostElement,"pointerup",this._onPointerUp.bind(this))]})}ngOnDestroy(){this._listenerCleanups.forEach(A=>A()),this._destroyed.next(),this._destroyed.complete(),this.dragStart.complete(),this.dragEnd.complete()}initProps(){this._updateWidthInactive(),this.disabled!==this._slider.disabled&&(this._slider.disabled=!0),this.step=this._slider.step,this.min=this._slider.min,this.max=this._slider.max,this._initValue()}initUI(){this._updateThumbUIByValue()}_initValue(){this._hasSetInitialValue=!0,this._initialValue===void 0?this.value=this._getDefaultValue():(this._hostElement.value=this._initialValue,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges())}_getDefaultValue(){return this.min}_onBlur(){this._setIsFocused(!1),this._onTouchedFn()}_onFocus(){this._slider._setTransition(!1),this._slider._updateTrackUI(this),this._setIsFocused(!0)}_onChange(){this.valueChange.emit(this.value),this._isActive&&this._updateThumbUIByValue({withAnimation:!0})}_onInput(){this._onChangeFn?.(this.value),(this._slider.step||!this._isActive)&&this._updateThumbUIByValue({withAnimation:!0}),this._slider._onValueChange(this)}_onNgControlValueChange(){(!this._isActive||!this._isFocused)&&(this._slider._onValueChange(this),this._updateThumbUIByValue()),this._slider.disabled=this._formControl.disabled}_onPointerDown(A){if(!(this.disabled||A.button!==0)){if(this._platform.IOS){let i=this._slider._isCursorOnSliderThumb(A,this._slider._getThumb(this.thumbPosition)._hostElement.getBoundingClientRect());this._isActive=i,this._updateWidthActive(),this._slider._updateDimensions();return}this._isActive=!0,this._setIsFocused(!0),this._updateWidthActive(),this._slider._updateDimensions(),this._slider.step||this._updateThumbUIByPointerEvent(A,{withAnimation:!0}),this.disabled||(this._handleValueCorrection(A),this.dragStart.emit({source:this,parent:this._slider,value:this.value}))}}_handleValueCorrection(A){this._skipUIUpdate=!0,setTimeout(()=>{this._skipUIUpdate=!1,this._fixValue(A)},0)}_fixValue(A){let i=A.clientX-this._slider._cachedLeft,n=this._slider._cachedWidth,o=this._slider.step===0?1:this._slider.step,r=Math.floor((this._slider.max-this._slider.min)/o),s=this._slider._isRtl?1-i/n:i/n,c=Math.round(s*r)/r*(this._slider.max-this._slider.min)+this._slider.min,g=Math.round(c/o)*o,I=this.value;if(g===I){this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(A,{withAnimation:this._slider._hasAnimation});return}this.value=g,this.valueChange.emit(this.value),this._onChangeFn?.(this.value),this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(A,{withAnimation:this._slider._hasAnimation})}_onPointerMove(A){!this._slider.step&&this._isActive&&this._updateThumbUIByPointerEvent(A)}_onPointerUp(){this._isActive&&(this._isActive=!1,this._platform.SAFARI&&this._setIsFocused(!1),this.dragEnd.emit({source:this,parent:this._slider,value:this.value}),setTimeout(()=>this._updateWidthInactive(),this._platform.IOS?10:0))}_clamp(A){let i=this._tickMarkOffset,n=this._slider._cachedWidth-this._tickMarkOffset;return Math.max(Math.min(A,n),i)}_calcTranslateXByValue(){return this._slider._isRtl?(1-this.percentage)*(this._slider._cachedWidth-this._tickMarkOffset*2)+this._tickMarkOffset:this.percentage*(this._slider._cachedWidth-this._tickMarkOffset*2)+this._tickMarkOffset}_calcTranslateXByPointerEvent(A){return A.clientX-this._slider._cachedLeft}_updateWidthActive(){}_updateWidthInactive(){this._hostElement.style.padding=`0 ${this._slider._inputPadding}px`,this._hostElement.style.width=`calc(100% + ${this._slider._inputPadding-this._tickMarkOffset*2}px)`,this._hostElement.style.left=`-${this._slider._rippleRadius-this._tickMarkOffset}px`}_updateThumbUIByValue(A){this.translateX=this._clamp(this._calcTranslateXByValue()),this._updateThumbUI(A)}_updateThumbUIByPointerEvent(A,i){this.translateX=this._clamp(this._calcTranslateXByPointerEvent(A)),this._updateThumbUI(i)}_updateThumbUI(A){this._slider._setTransition(!!A?.withAnimation),this._slider._onTranslateXChange(this)}writeValue(A){(this._isControlInitialized||A!==null)&&(this.value=A)}registerOnChange(A){this._onChangeFn=A,this._isControlInitialized=!0}registerOnTouched(A){this._onTouchedFn=A}setDisabledState(A){this.disabled=A}focus(){this._hostElement.focus()}blur(){this._hostElement.blur()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["input","matSliderThumb",""]],hostAttrs:["type","range",1,"mdc-slider__input"],hostVars:1,hostBindings:function(i,n){i&1&&mA("change",function(){return n._onChange()})("input",function(){return n._onInput()})("blur",function(){return n._onBlur()})("focus",function(){return n._onFocus()}),i&2&&Ke("aria-valuetext",n._valuetext())},inputs:{value:[2,"value","value",en]},outputs:{valueChange:"valueChange",dragStart:"dragStart",dragEnd:"dragEnd"},exportAs:["matSliderThumb"],features:[ut([NHA,{provide:xcA,useExisting:t}])]})}return t})();var y7=class t{constructor(e,A,i){this.dialogRef=e;this.fb=A;this.data=i;this.evalMetrics=this.data.evalMetrics,this.evalForm=this.fb.group({tool_trajectory_avg_score_threshold:[this.getEvalMetricThresholdFromData("tool_trajectory_avg_score"),[Ac.required,Ac.min(0),Ac.max(1)]],response_match_score_threshold:[this.getEvalMetricThresholdFromData("response_match_score"),[Ac.required,Ac.min(0),Ac.max(1)]]})}evalForm;evalMetrics=[];getEvalMetricThresholdFromData(e){return this.evalMetrics.find(A=>A.metricName===e)?.threshold??0}onStart(){if(this.evalForm.valid){let{tool_trajectory_avg_score_threshold:e,response_match_score_threshold:A}=this.evalForm.value;for(let i of this.evalMetrics)i.metricName==="tool_trajectory_avg_score"?i.threshold=e:i.metricName==="response_match_score"&&(i.threshold=A);this.dialogRef.close(this.evalMetrics)}}onCancel(){this.dialogRef.close(null)}static \u0275fac=function(A){return new(A||t)(Ge(fr),Ge(gz),Ge(Cs))};static \u0275cmp=jA({type:t,selectors:[["app-run-eval-config-dialog"]],decls:26,vars:3,consts:[[1,"dialog-container"],["mat-dialog-title","",1,"dialog-title"],[1,"eval-form",3,"formGroup"],[1,"metric-row"],[1,"metric-name"],[1,"flex-1","pl-4"],["min","0","max","1","step","0.1","thumbLabel","",1,"threshold-slider"],["matSliderThumb","","formControlName","tool_trajectory_avg_score_threshold"],[1,"threshold-value"],["matSliderThumb","","formControlName","response_match_score_threshold"],["align","end",1,"dialog-actions"],["mat-button","",1,"cancel-button",3,"click"],["mat-button","",1,"save-button",3,"click"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2,"EVALUATION METRIC"),N(),S(3,"mat-dialog-content")(4,"form",2)(5,"div",3)(6,"div",4),AA(7,"Tool trajectory avg score: "),N(),S(8,"div",5)(9,"mat-slider",6),TA(10,"input",7),N(),S(11,"span",8),AA(12),N()()(),S(13,"div",3)(14,"div",4),AA(15,"Response match score: "),N(),S(16,"div",5)(17,"mat-slider",6),TA(18,"input",9),N(),S(19,"span",8),AA(20),N()()()()(),S(21,"mat-dialog-actions",10)(22,"button",11),mA("click",function(){return i.onCancel()}),AA(23,"Cancel"),N(),S(24,"button",12),mA("click",function(){return i.onStart()}),AA(25,"Start"),N()()()),A&2&&(_(4),yA("formGroup",i.evalForm),_(8),It(" ",i.evalForm.controls.tool_trajectory_avg_score_threshold.value," "),_(8),It(" ",i.evalForm.controls.response_match_score_threshold.value," "))},dependencies:[Ls,ya,Mr,az,kc,Ss,ez,cB,YI,gk,FcA,qK,va,dr],styles:[".dialog-container[_ngcontent-%COMP%]{border-radius:12px;padding:18px;width:500px;box-shadow:0 8px 16px var(--run-eval-config-dialog-container-box-shadow-color)}.threshold-slider[_ngcontent-%COMP%]{--mdc-slider-active-track-color: var(--run-eval-config-dialog-threshold-slider-active-track-color);--mdc-slider-inactive-track-color: var(--run-eval-config-dialog-threshold-slider-inactive-track-color);--mdc-slider-handle-color: var(--run-eval-config-dialog-threshold-slider-handle-color);--mdc-slider-ripple-color: var(--run-eval-config-dialog-threshold-slider-ripple-color);width:100px}.metric-row[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center}.metric-name[_ngcontent-%COMP%]{width:250px}.threshold-value[_ngcontent-%COMP%]{margin-left:20px}.mdc-slider__thumb--with-indicator[_ngcontent-%COMP%]{background-color:var(--mdc-slider-handle-color, var(--run-eval-config-dialog-mdc-slider-thumb-background-color));border:none!important;box-shadow:none!important}"]})};var FHA=["determinateSpinner"];function _HA(t,e){if(t&1&&(ur(),S(0,"svg",11),TA(1,"circle",12),N()),t&2){let A=Y();Ke("viewBox",A._viewBox()),_(),mo("stroke-dasharray",A._strokeCircumference(),"px")("stroke-dashoffset",A._strokeCircumference()/2,"px")("stroke-width",A._circleStrokeWidth(),"%"),Ke("r",A._circleRadius())}}var GHA=new eA("mat-progress-spinner-default-options",{providedIn:"root",factory:KHA});function KHA(){return{diameter:_cA}}var _cA=100,UHA=10,GcA=(()=>{class t{_elementRef=f(se);_noopAnimations;get color(){return this._color||this._defaultColor}set color(A){this._color=A}_color;_defaultColor="primary";_determinateCircle;constructor(){let A=f(_i,{optional:!0}),i=f(GHA);this._noopAnimations=A==="NoopAnimations"&&!!i&&!i._forceAnimations,this.mode=this._elementRef.nativeElement.nodeName.toLowerCase()==="mat-spinner"?"indeterminate":"determinate",i&&(i.color&&(this.color=this._defaultColor=i.color),i.diameter&&(this.diameter=i.diameter),i.strokeWidth&&(this.strokeWidth=i.strokeWidth))}mode;get value(){return this.mode==="determinate"?this._value:0}set value(A){this._value=Math.max(0,Math.min(100,A||0))}_value=0;get diameter(){return this._diameter}set diameter(A){this._diameter=A||0}_diameter=_cA;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(A){this._strokeWidth=A||0}_strokeWidth;_circleRadius(){return(this.diameter-UHA)/2}_viewBox(){let A=this._circleRadius()*2+this.strokeWidth;return`0 0 ${A} ${A}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return this.mode==="determinate"?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,n){if(i&1&&st(FHA,5),i&2){let o;de(o=Be())&&(n._determinateCircle=o.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,n){i&2&&(Ke("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow",n.mode==="determinate"?n.value:null)("mode",n.mode),Ro("mat-"+n.color),mo("width",n.diameter,"px")("height",n.diameter,"px")("--mdc-circular-progress-size",n.diameter+"px")("--mdc-circular-progress-active-indicator-width",n.diameter+"px"),he("_mat-animation-noopable",n._noopAnimations)("mdc-circular-progress--indeterminate",n.mode==="indeterminate"))},inputs:{color:"color",mode:"mode",value:[2,"value","value",en],diameter:[2,"diameter","diameter",en],strokeWidth:[2,"strokeWidth","strokeWidth",en]},exportAs:["matProgressSpinner"],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,n){if(i&1&&(NA(0,_HA,2,8,"ng-template",null,0,Gu),S(2,"div",2,1),ur(),S(4,"svg",3),TA(5,"circle",4),N()(),_I(),S(6,"div",5)(7,"div",6)(8,"div",7),rr(9,8),N(),S(10,"div",9),rr(11,8),N(),S(12,"div",10),rr(13,8),N()()()),i&2){let o=Cr(1);_(4),Ke("viewBox",n._viewBox()),_(),mo("stroke-dasharray",n._strokeCircumference(),"px")("stroke-dashoffset",n._strokeDashOffset(),"px")("stroke-width",n._circleStrokeWidth(),"%"),Ke("r",n._circleRadius()),_(4),yA("ngTemplateOutlet",o),_(2),yA("ngTemplateOutlet",o),_(2),yA("ngTemplateOutlet",o)}},dependencies:[Hu],styles:[".mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}"],encapsulation:2,changeDetection:0})}return t})();function JHA(t,e){if(t&1){let A=me();S(0,"div",1)(1,"div"),AA(2,"All eval sets"),N(),S(3,"mat-icon",2),mA("click",function(){QA(A);let n=Y();return uA(n.openNewEvalSetDialog())}),AA(4,"add"),N()()}}function YHA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",3)(2,"div",4),AA(3," Create New Evaluation Set "),N(),S(4,"div",5),AA(5," An evaluation set is a curated collection of evaluation cases, where each case includes input-output examples for assessing agent performance. "),N(),S(6,"div",6),mA("click",function(){QA(A);let n=Y();return uA(n.openNewEvalSetDialog())}),AA(7," Create Evaluation Set "),N()()()}}function THA(t,e){if(t&1){let A=me();S(0,"div",8),mA("click",function(){let n=QA(A).$implicit,o=Y(2);return uA(o.selectEvalSet(n))}),S(1,"div",9)(2,"span",10),AA(3,"folder"),N(),S(4,"div",11),AA(5),N()(),S(6,"div")(7,"mat-icon",12),AA(8,"chevron_right"),N()()()}if(t&2){let A=e.$implicit;_(5),tt(A)}}function HHA(t,e){if(t&1&&(S(0,"div"),dn(1,THA,9,1,"div",7,zn),N()),t&2){let A=Y();_(),Bn(A.evalsets)}}function OHA(t,e){if(t&1){let A=me();S(0,"th",29)(1,"mat-checkbox",30),mA("change",function(n){QA(A);let o=Y(4);return uA(n?o.toggleAllRows():null)}),N()()}if(t&2){let A=Y(4);_(),yA("checked",A.selection.hasValue()&&A.isAllSelected())("indeterminate",A.selection.hasValue()&&!A.isAllSelected())}}function zHA(t,e){if(t&1){let A=me();S(0,"td",31)(1,"mat-checkbox",32),mA("click",function(n){return QA(A),uA(n.stopPropagation())})("change",function(n){let o=QA(A).$implicit,r=Y(4);return uA(n?r.selection.toggle(o):null)}),N()()}if(t&2){let A=e.$implicit,i=Y(4);_(),yA("checked",i.selection.isSelected(A))}}function PHA(t,e){t&1&&(S(0,"th",29),AA(1," Case ID "),N())}function jHA(t,e){if(t&1){let A=me();S(0,"td",33),mA("click",function(){let n=QA(A).$implicit,o=Y(4);return uA(o.getEvalCase(n))}),AA(1),N()}if(t&2){let A,i=e.$implicit,n=Y(4);he("selected-eval-case",i===((A=n.selectedEvalCase())==null?null:A.evalId)),_(),It(" ",i," ")}}function qHA(t,e){t&1&&(S(0,"th",29),AA(1," Result "),N())}function VHA(t,e){if(t&1){let A=me();S(0,"button",35),mA("click",function(){QA(A);let n=Y().$implicit,o=Y(4);return uA(o.getSession(n))}),S(1,"span",36),AA(2),N(),S(3,"div",37),AA(4),N()()}if(t&2){let A=Y().$implicit,i=Y(4);yA("ngClass",i.getEvalResultForCase(A)==1?"result-btn pass":"result-btn fail"),_(2),It(" ",i.getEvalResultForCase(A)==1?"check":"close"," "),_(2),It("",i.getEvalResultForCase(A)==1?"Pass":"Fail"," ")}}function ZHA(t,e){if(t&1&&(S(0,"td",31),NA(1,VHA,5,3,"button",34),N()),t&2){let A=e.$implicit,i=Y(4);_(),_A(i.getEvalResultForCase(A)?1:-1)}}function WHA(t,e){t&1&&TA(0,"tr",38)}function XHA(t,e){t&1&&TA(0,"tr",39)}function $HA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",16)(2,"button",17),mA("click",function(){QA(A);let n=Y(3);return uA(n.openEvalConfigDialog())}),AA(3,"Run Evaluation"),N(),S(4,"mat-icon",18),mA("click",function(){QA(A);let n=Y(3);return uA(n.toggleEvalHistoryButton())}),AA(5,"history"),N()(),S(6,"div",19)(7,"table",20),S2(8,21),NA(9,OHA,2,2,"th",22)(10,zHA,2,1,"td",23),R2(),S2(11,24),NA(12,PHA,2,0,"th",22)(13,jHA,2,3,"td",25),R2(),S2(14,26),NA(15,qHA,2,0,"th",22)(16,ZHA,2,1,"td",23),R2(),NA(17,WHA,1,0,"tr",27)(18,XHA,1,0,"tr",28),N()()()}if(t&2){let A=Y(3);_(7),yA("dataSource",A.dataSource),_(10),yA("matHeaderRowDef",A.displayedColumns),_(),yA("matRowDefColumns",A.displayedColumns)}}function AOA(t,e){if(t&1&&(S(0,"div")(1,"span",50),AA(2,"|"),N(),S(3,"span",51),AA(4),N()()),t&2){let A=Y().$implicit,i=Y(4);_(4),It("",i.getFailCountForCurrentResult(A.evaluationResults.evaluationResults)," Failed")}}function eOA(t,e){if(t&1&&(S(0,"span",52),AA(1),N()),t&2){let A=e.$implicit;_(),x2(" ",A.metricName,": ",A.threshold," ")}}function tOA(t,e){if(t&1&&(S(0,"div",46),dn(1,eOA,2,2,"span",52,zn),N()),t&2){let A=Y().$implicit,i=Y(4);_(),Bn(i.getEvalMetrics(A))}}function iOA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",53)(2,"span"),AA(3),N(),S(4,"button",54),mA("click",function(){let n=QA(A).$implicit,o=Y(6);return uA(o.getHistorySession(n))}),S(5,"span",36),AA(6),N(),S(7,"div",37),AA(8),N()()()()}if(t&2){let A=e.$implicit;_(3),It(" ",A.evalId," "),_(),yA("ngClass",A.finalEvalStatus==1?"result-btn pass":"result-btn fail"),_(2),It(" ",A.finalEvalStatus==1?"check":"close"," "),_(2),It("",A.finalEvalStatus==1?"PASS":"FAIL"," ")}}function nOA(t,e){if(t&1&&(S(0,"div",49),dn(1,iOA,9,4,"div",null,zn),N()),t&2){let A=Y().$implicit,i=Y(4);_(),Bn(i.generateHistoryEvaluationDatasource(A.timestamp))}}function oOA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",40)(2,"div",41)(3,"div",42)(4,"div",43),AA(5),N(),S(6,"div",44)(7,"span",45),AA(8),N(),NA(9,AOA,5,1,"div"),N(),NA(10,tOA,3,0,"div",46),N(),S(11,"div",47)(12,"mat-icon",48),mA("click",function(){let n=QA(A).$implicit,o=Y(4);return uA(o.toggleHistoryStatusCard(n.timestamp))}),AA(13),N()()(),NA(14,nOA,3,0,"div",49),N()()}if(t&2){let A=e.$implicit,i=Y(4);_(5),tt(i.formatTimestamp(A.timestamp)),_(3),It("",i.getPassCountForCurrentResult(A.evaluationResults.evaluationResults)," Passed"),_(),_A(i.getFailCountForCurrentResult(A.evaluationResults.evaluationResults)>0?9:-1),_(),_A(i.getEvalMetrics(A)?10:-1),_(3),tt(i.getEvaluationStatusCardActionButtonIcon(A.timestamp)),_(),_A(i.isEvaluationStatusCardToggled(A.timestamp)?14:-1)}}function rOA(t,e){if(t&1&&(S(0,"div"),dn(1,oOA,15,6,"div",null,zn),N()),t&2){let A=Y(3);_(),Bn(A.getEvalHistoryOfCurrentSetSorted())}}function sOA(t,e){if(t&1&&(S(0,"div"),NA(1,$HA,19,3,"div")(2,rOA,3,0,"div"),N()),t&2){let A=Y(2);_(),_A(A.showEvalHistory()?-1:1),_(),_A(A.showEvalHistory()?2:-1)}}function aOA(t,e){if(t&1){let A=me();S(0,"button",55),mA("click",function(){QA(A);let n=Y(2);return uA(n.openNewEvalCaseDialog())}),S(1,"div",56)(2,"mat-icon"),AA(3,"add"),N(),S(4,"div",57),AA(5),N()()()}if(t&2){let A=Y(2);_(5),It(" Add current session to ",A.selectedEvalSet," ")}}function cOA(t,e){t&1&&(S(0,"div"),TA(1,"mat-spinner",58),N()),t&2&&(_(),yA("diameter",28)("strokeWidth",3))}function gOA(t,e){if(t&1){let A=me();S(0,"div")(1,"div",9)(2,"mat-icon",13),mA("click",function(){QA(A);let n=Y();return uA(n.clearSelectedEvalSet())}),AA(3,"chevron_left"),N(),S(4,"div",14),mA("click",function(){QA(A);let n=Y();return uA(n.clearSelectedEvalSet())}),AA(5),N()(),NA(6,sOA,3,2,"div")(7,aOA,6,1,"button",15)(8,cOA,2,2,"div"),N()}if(t&2){let A=Y();_(5),It(" ",A.selectedEvalSet," "),_(),_A(A.evalCases.length>0&&!A.evalRunning()?6:-1),_(),_A(!A.evalRunning()&&!A.showEvalHistory()?7:-1),_(),_A(A.evalRunning()?8:-1)}}var g2=class t{checkboxes=MH(pf);appName=bs("");userId=bs("");sessionId=bs("");sessionSelected=GI();shouldShowTab=GI();evalNotInstalledMsg=GI();evalCaseSelected=GI();evalSetIdSelected=GI();shouldReturnToSession=GI();evalCasesSubject=new Fi([]);changeDetectorRef=f(Et);flagService=f(Gc);displayedColumns=["select","evalId","finalEvalStatus"];evalsets=[];selectedEvalSet="";evalCases=[];selectedEvalCase=Ao(null);deletedEvalCaseIndex=-1;dataSource=new wf(this.evalCases);selection=new P2(!0,[]);showEvalHistory=Ao(!1);evalRunning=Ao(!1);evalMetrics=RcA;currentEvalResultBySet=new Map;dialog=f(Fc);appEvaluationResults={};evalService=f(Rl);sessionService=f(A1);constructor(){this.evalCasesSubject.subscribe(e=>{!this.selectedEvalCase()&&this.deletedEvalCaseIndex>=0&&e.length>0?(this.selectNewEvalCase(e),this.deletedEvalCaseIndex=-1):e.length===0&&this.shouldReturnToSession.emit(!0)})}ngOnChanges(e){e.appName&&(this.selectedEvalSet="",this.evalCases=[],this.getEvalSet(),this.getEvaluationResult())}ngOnInit(){}selectNewEvalCase(e){let A=this.deletedEvalCaseIndex;this.deletedEvalCaseIndex===e.length&&(A=0),this.getEvalCase(e[A])}getEvalSet(){this.appName()!==""&&this.evalService.getEvalSets(this.appName()).pipe(Gr(e=>e.status===404&&e.statusText==="Not Found"?(this.shouldShowTab.emit(!1),Ce(null)):Ce([]))).subscribe(e=>{e!==null&&(this.shouldShowTab.emit(!0),this.evalsets=e)})}openNewEvalSetDialog(){this.dialog.open(w7,{width:"600px",data:{appName:this.appName()}}).afterClosed().subscribe(A=>{A&&this.getEvalSet()})}openNewEvalCaseDialog(){this.dialog.open(D7,{width:"600px",data:{appName:this.appName(),userId:this.userId(),sessionId:this.sessionId(),evalSetId:this.selectedEvalSet}}).afterClosed().subscribe(A=>{A&&this.listEvalCases()})}listEvalCases(){this.evalCases=[],this.evalService.listEvalCases(this.appName(),this.selectedEvalSet).subscribe(e=>{this.evalCases=e,this.dataSource=new wf(this.evalCases),this.evalCasesSubject.next(this.evalCases),this.changeDetectorRef.detectChanges()})}runEval(){if(this.evalRunning.set(!0),this.selection.selected.length==0){alert("No case selected!"),this.evalRunning.set(!1);return}this.evalService.runEval(this.appName(),this.selectedEvalSet,this.selection.selected,this.evalMetrics).pipe(Gr(e=>(e.error?.detail?.includes("not installed")&&this.evalNotInstalledMsg.emit(e.error.detail),Ce([])))).subscribe(e=>{this.evalRunning.set(!1),this.currentEvalResultBySet.set(this.selectedEvalSet,e),this.getEvaluationResult()})}selectEvalSet(e){this.selectedEvalSet=e,this.listEvalCases()}clearSelectedEvalSet(){if(this.showEvalHistory()){this.toggleEvalHistoryButton();return}this.selectedEvalSet=""}isAllSelected(){let e=this.selection.selected.length,A=this.dataSource.data.length;return e===A}toggleAllRows(){if(this.isAllSelected()){this.selection.clear();return}this.selection.select(...this.dataSource.data)}getEvalResultForCase(e){let A=this.currentEvalResultBySet.get(this.selectedEvalSet)?.filter(i=>i.evalId==e);if(!(!A||A.length==0))return A[0].finalEvalStatus}formatToolUses(e){let A=[];for(let i of e)A.push({name:i.name,args:i.args});return A}addEvalCaseResultToEvents(e,A){let i=A.evalMetricResultPerInvocation,n=-1;if(i)for(let o=0;on.evalId==e)[0],i=A.sessionId;this.sessionService.getSession(this.userId(),this.appName(),i).subscribe(n=>{this.addEvalCaseResultToEvents(n,A);let o=this.fromApiResultToSession(n);this.sessionSelected.emit(o)})}toggleEvalHistoryButton(){this.showEvalHistory.set(!this.showEvalHistory())}getEvalHistoryOfCurrentSet(){return this.appEvaluationResults[this.appName()][this.selectedEvalSet]}getEvalHistoryOfCurrentSetSorted(){let e=this.getEvalHistoryOfCurrentSet();return Object.keys(e).sort((n,o)=>o.localeCompare(n)).map(n=>({timestamp:n,evaluationResults:e[n]}))}getPassCountForCurrentResult(e){return e.filter(A=>A.finalEvalStatus==1).length}getFailCountForCurrentResult(e){return e.filter(A=>A.finalEvalStatus==2).length}formatTimestamp(e){let A=Number(e);if(isNaN(A))return"Invalid timestamp provided";let i=new Date(A*1e3);if(isNaN(i.getTime()))return"Invalid date created from timestamp";let n={month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0};return new Intl.DateTimeFormat("en-US",n).format(i)}getEvaluationStatusCardActionButtonIcon(e){return this.getEvalHistoryOfCurrentSet()[e].isToggled?"keyboard_arrow_up":"keyboard_arrow_down"}toggleHistoryStatusCard(e){this.getEvalHistoryOfCurrentSet()[e].isToggled=!this.getEvalHistoryOfCurrentSet()[e].isToggled}isEvaluationStatusCardToggled(e){return this.getEvalHistoryOfCurrentSet()[e].isToggled}generateHistoryEvaluationDatasource(e){return this.getEvalHistoryOfCurrentSet()[e].evaluationResults}getHistorySession(e){this.addEvalCaseResultToEvents(e.sessionDetails,e);let A=this.fromApiResultToSession(e.sessionDetails);this.sessionSelected.emit(A)}getEvalCase(e){this.evalService.getEvalCase(this.appName(),this.selectedEvalSet,e).subscribe(A=>{this.selectedEvalCase.set(A),this.evalCaseSelected.emit(A),this.evalSetIdSelected.emit(this.selectedEvalSet)})}resetEvalCase(){this.selectedEvalCase.set(null)}resetEvalResults(){this.currentEvalResultBySet.clear()}deleteEvalCase(e){this.evalService.deleteEvalCase(this.appName(),this.selectedEvalSet,e).subscribe(A=>{this.deletedEvalCaseIndex=this.evalCases.indexOf(e),this.selectedEvalCase.set(null),this.listEvalCases()})}getEvaluationResult(){this.evalService.listEvalResults(this.appName()).pipe(Gr(e=>e.status===404&&e.statusText==="Not Found"?(this.shouldShowTab.emit(!1),Ce(null)):Ce([]))).subscribe(e=>{for(let A of e)this.evalService.getEvalResult(this.appName(),A).subscribe(i=>{this.appEvaluationResults[this.appName()]||(this.appEvaluationResults[this.appName()]={}),this.appEvaluationResults[this.appName()][i.evalSetId]||(this.appEvaluationResults[this.appName()][i.evalSetId]={});let n=i.creationTimestamp;this.appEvaluationResults[this.appName()][i.evalSetId][n]||(this.appEvaluationResults[this.appName()][i.evalSetId][n]={isToggled:!1,evaluationResults:[]});let o={isToggled:!1,evaluationResults:i.evalCaseResults.map(r=>({setId:r.id,evalId:r.evalId,finalEvalStatus:r.finalEvalStatus,evalMetricResults:r.evalMetricResults,evalMetricResultPerInvocation:r.evalMetricResultPerInvocation,sessionId:r.sessionId,sessionDetails:r.sessionDetails,overallEvalMetricResults:r.overallEvalMetricResults??[]}))};this.appEvaluationResults[this.appName()][i.evalSetId][n]=o})})}openEvalConfigDialog(){if(this.selection.selected.length==0){alert("No case selected!");return}this.dialog.open(y7,{maxWidth:"90vw",maxHeight:"90vh",data:{evalMetrics:this.evalMetrics}}).afterClosed().subscribe(A=>{A&&(this.evalMetrics=A,this.runEval())})}getEvalMetrics(e){if(!e||!e.evaluationResults||!e.evaluationResults.evaluationResults)return this.evalMetrics;let A=e.evaluationResults.evaluationResults;return A.length===0?this.evalMetrics:typeof A[0].overallEvalMetricResults>"u"||!A[0].overallEvalMetricResults||A[0].overallEvalMetricResults.length===0?this.evalMetrics:A[0].overallEvalMetricResults.map(n=>({metricName:n.metricName,threshold:n.threshold}))}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-eval-tab"]],viewQuery:function(A,i){A&1&&ls(i.checkboxes,pf,5),A&2&&yc()},inputs:{appName:[1,"appName"],userId:[1,"userId"],sessionId:[1,"sessionId"]},outputs:{sessionSelected:"sessionSelected",shouldShowTab:"shouldShowTab",evalNotInstalledMsg:"evalNotInstalledMsg",evalCaseSelected:"evalCaseSelected",evalSetIdSelected:"evalSetIdSelected",shouldReturnToSession:"shouldReturnToSession"},features:[Xt],decls:5,vars:4,consts:[[1,"eval-container"],[1,"eval-set-actions"],["matTooltip","Create new evaluation set",2,"cursor","pointer",3,"click"],[1,"empty-eval-info"],[1,"info-title"],[1,"info-detail"],[1,"info-create",3,"click"],[1,"eval-set-row"],[1,"eval-set-row",3,"click"],[2,"display","flex"],[1,"material-symbols-outlined",2,"margin-right","10px","padding-top","16px"],[2,"font-family","Roboto","font-size","14px","padding","16px","padding-top","20px"],[2,"padding-top","20px","color","#9AA0A6"],[2,"color","white","cursor","pointer",3,"click"],[2,"color","#9AA0A6","padding-top","2px","cursor","pointer",3,"click"],[1,"save-session-btn"],[1,"evaluation-tab-header"],[1,"run-eval-btn",3,"click"],["matTooltip","View eval run history",1,"evaluation-history-icon",3,"click"],[1,"mat-table-container",2,"margin-top","16px"],["mat-table","",3,"dataSource"],["matColumnDef","select"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","evalId"],["mat-cell","","class","eval-case-id",3,"selected-eval-case","click",4,"matCellDef"],["matColumnDef","finalEvalStatus"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],[3,"change","checked","indeterminate"],["mat-cell",""],[3,"click","change","checked"],["mat-cell","",1,"eval-case-id",3,"click"],["matTooltip","View eval run result",3,"ngClass"],["matTooltip","View eval run result",3,"click","ngClass"],[1,"material-symbols-outlined"],[2,"padding-top","4px"],["mat-header-row",""],["mat-row",""],[1,"status-card"],[1,"status-card__overview"],[1,"status-card__info"],[1,"status-card__timestamp"],[1,"status-card__summary"],[1,"status-card__passed"],[1,"status-card__metrics"],[1,"status-card__action"],[3,"click"],[1,"status-card__history-cases"],[1,"status-card__separator"],[1,"status-card__failed"],[1,"status-card__metric"],[1,"status-card__history-case"],[3,"click","ngClass"],[1,"save-session-btn",3,"click"],[1,"save-session-btn-detail"],[1,"save-session-btn-text"],[1,"eval-spinner",3,"diameter","strokeWidth"]],template:function(A,i){A&1&&(S(0,"div",0),NA(1,JHA,5,0,"div",1)(2,YHA,8,0,"div")(3,HHA,3,0,"div")(4,gOA,9,4,"div"),N()),A&2&&(_(),_A(i.selectedEvalSet==""?1:-1),_(),_A(i.evalsets.length==0?2:-1),_(),_A(i.evalsets.length>0&&i.selectedEvalSet==""?3:-1),_(),_A(i.selectedEvalSet!=""?4:-1))},dependencies:[_c,kl,mcA,wcA,DcA,ycA,pf,pcA,vcA,Vs,McA,kcA,bcA,ScA,GcA],styles:[".eval-container[_ngcontent-%COMP%]{margin-top:20px;padding-left:25px;padding-right:25px}.eval-case-id[_ngcontent-%COMP%]{cursor:pointer}.eval-set-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between;color:var(--eval-tab-eval-set-actions-color);font-style:normal;font-weight:700;font-size:14px}.empty-eval-info[_ngcontent-%COMP%]{margin-top:12px;background-color:var(--eval-tab-empty-eval-info-background-color);border-radius:8px;box-shadow:0 2px 6px 2px var(--eval-tab-empty-eval-info-box-shadow-color1),0 1px 2px 0 var(--eval-tab-empty-eval-info-box-shadow-color2)}.info-title[_ngcontent-%COMP%]{color:var(--eval-tab-info-title-color);font-family:Roboto;font-size:14px;font-weight:500;padding-top:13px;padding-right:16px;padding-left:16px}.info-detail[_ngcontent-%COMP%]{color:var(--eval-tab-info-detail-color);font-family:Roboto;font-size:14px;font-weight:400;padding-top:13px;padding-right:16px;padding-left:16px;letter-spacing:.2px}.info-create[_ngcontent-%COMP%]{color:var(--eval-tab-info-create-color);font-size:14px;font-style:normal;font-weight:500;padding-right:16px;padding-left:16px;margin-top:19px;padding-bottom:16px;cursor:pointer}.eval-set-row[_ngcontent-%COMP%]{display:flex;justify-content:space-between;cursor:pointer}.selected-eval-case[_ngcontent-%COMP%]{font-weight:900;color:var(--eval-tab-selected-eval-case-color)}.save-session-btn[_ngcontent-%COMP%]{width:100%;background:linear-gradient(0deg,var(--eval-tab-save-session-btn-background-color1) 0%,var(--eval-tab-save-session-btn-background-color1) 100%),var(--eval-tab-save-session-btn-background-color2);border:none;border-radius:4px;margin-top:12px;cursor:pointer}.save-session-btn-detail[_ngcontent-%COMP%]{display:flex;padding:8px 16px 8px 12px;justify-content:center}.save-session-btn-text[_ngcontent-%COMP%]{padding-top:2px;color:var(--eval-tab-save-session-btn-text-color);font-family:Google Sans;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.run-eval-btn[_ngcontent-%COMP%]{border-radius:4px;border:1px solid var(--eval-tab-run-eval-btn-border-color);background-color:transparent;padding:8px 24px;margin-top:16px;color:var(--eval-tab-run-eval-btn-color);cursor:pointer}.run-eval-btn[_ngcontent-%COMP%]:hover{background-color:var(--eval-tab-run-eval-btn-hover-background-color)}.result-btn[_ngcontent-%COMP%]{display:flex;background-color:transparent;border-radius:4px;border:1px solid var(--eval-tab-result-btn-border-color);margin-top:4px;cursor:pointer}.result-btn[_ngcontent-%COMP%]:hover{background-color:var(--eval-tab-result-btn-hover-background-color)}.result-btn.pass[_ngcontent-%COMP%]{color:var(--eval-tab-result-btn-pass-color)}.result-btn.fail[_ngcontent-%COMP%]{color:var(--eval-tab-result-btn-fail-color)}.evaluation-tab-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%}.evaluation-history-icon[_ngcontent-%COMP%]{cursor:pointer;margin-top:4px}.status-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;border-radius:8px;background-color:var(--eval-tab-status-card-background-color);padding:12px 16px;margin-top:12px}.status-card__overview[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%}.status-card__info[_ngcontent-%COMP%]{display:flex;flex-direction:column}.status-card__timestamp[_ngcontent-%COMP%]{font-size:.9em;color:var(--eval-tab-status-card-timestamp-color);margin-bottom:5px}.status-card__summary[_ngcontent-%COMP%]{display:flex;align-items:center;font-size:.95em;font-weight:500}.status-card__metrics[_ngcontent-%COMP%]{display:flex;align-items:center;font-size:.75em;font-weight:300;margin-top:3px}.status-card__metric[_ngcontent-%COMP%]{width:180px;color:var(--eval-tab-status-card-metric-color)}.status-card__failed[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-failed-color)}.status-card__separator[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-separator-color);margin:0 8px}.status-card__passed[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-passed-color)}.status-card__action[_ngcontent-%COMP%]{display:flex;align-items:center}.status-card__action[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-action-mat-icon-color);cursor:pointer;transition:transform .2s ease-in-out}.status-card__action[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]:hover{opacity:.8}.status-card__action[_ngcontent-%COMP%] .status-card__icon[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-icon-color);font-size:1.2em;cursor:pointer}.status-card__action[_ngcontent-%COMP%] .status-card__icon[_ngcontent-%COMP%]:hover{opacity:.8}.status-card__history-cases[_ngcontent-%COMP%]{display:flex;flex-direction:column;margin-top:3px;justify-content:flex-start;width:100%}.status-card__history-case[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:15px}.eval-spinner[_ngcontent-%COMP%]{margin-top:12px}"],changeDetection:0})};function lOA(t,e){t&1&&(S(0,"h2",0),AA(1,"Events List"),N())}function IOA(t,e){t&1&&(S(0,"h2",0),AA(1,"Send Response To Pending Event"),N())}function COA(t,e){t&1&&(S(0,"h2",4),AA(1,"Events List"),N())}function dOA(t,e){t&1&&(S(0,"h2",4),AA(1,"Send Response To Pending Event"),N())}function BOA(t,e){if(t&1){let A=me();S(0,"div")(1,"p"),AA(2,"Name"),N(),S(3,"p"),AA(4),N(),S(5,"p"),AA(6,"Args"),N(),S(7,"p"),AA(8),N(),S(9,"mat-form-field",5)(10,"mat-label"),AA(11,"Response"),N(),S(12,"textarea",6),Xa("ngModelChange",function(n){QA(A);let o=Y();return Wa(o.selectedEvent.response,n)||(o.selectedEvent.response=n),uA(n)}),N()()()}if(t&2){let A=Y();_(4),tt(A.selectedEvent.name),_(4),tt(A.argsToJson(A.selectedEvent.args)),_(4),Za("ngModel",A.selectedEvent.response)}}function EOA(t,e){if(t&1){let A=me();S(0,"button",7),mA("click",function(){QA(A);let n=Y();return uA(n.sendResponse())}),AA(1),N()}if(t&2){let A=Y();yA("disabled",A.sending),_(),It(" ",A.sending?"Sending...":"Send"," ")}}var v7=class t{dialogRef=f(fr);data=f(Cs);agentService=f(HB);selectedEvent=this.data.event;appName=this.data.appName;userId=this.data.userId;sessionId=this.data.sessionId;functionCallEventId=this.data.functionCallEventId;sending=!1;response=[];constructor(){}argsToJson(e){return JSON.stringify(e)}sendResponse(){this.sending=!0;let e={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:[]},invocationId:this.data.invocationId};this.selectedEvent.response&&(e.functionCallEventId=this.functionCallEventId,e.newMessage.parts.push({function_response:{id:this.selectedEvent.id,name:this.selectedEvent.name,response:{response:this.selectedEvent.response}}})),this.agentService.runSse(e).subscribe({next:A=>Ni(this,null,function*(){this.response.push(A)}),error:A=>console.error("SSE error:",A),complete:()=>{this.sending=!1,this.dialogRef.close({response:this.response,events:[this.selectedEvent]})}})}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-pending-event-dialog"]],decls:10,vars:6,consts:[["mat-dialog-title",""],["mat-dialog-title","","class","dialog-title",4,"ngIf"],["mat-button","",3,"disabled"],["mat-button","","mat-dialog-close",""],["mat-dialog-title","",1,"dialog-title"],["appearance","outline",1,"response-textarea"],["matInput","",3,"ngModelChange","ngModel"],["mat-button","",3,"click","disabled"]],template:function(A,i){A&1&&(NA(0,lOA,2,0,"h2",0)(1,IOA,2,0,"h2",0)(2,COA,2,0,"h2",1)(3,dOA,2,0,"h2",1),S(4,"mat-dialog-content"),NA(5,BOA,13,3,"div"),N(),S(6,"mat-dialog-actions"),NA(7,EOA,2,2,"button",2),S(8,"button",3),AA(9,"Close"),N()()),A&2&&(_A(i.selectedEvent?-1:0),_(),_A(i.selectedEvent?1:-1),_(),yA("ngIf",!i.selectedEvent),_(),yA("ngIf",i.selectedEvent),_(2),_A(i.selectedEvent?5:-1),_(2),_A(i.selectedEvent&&i.selectedEvent.response?7:-1))},dependencies:[Ls,Tu,ya,fl,m6,J2,Mr,kc,Ss,tc,va,dr,bl],styles:[".response-textarea[_ngcontent-%COMP%]{min-width:500px;margin-top:15px}.dialog-title[_ngcontent-%COMP%]{font-weight:700;font-size:large}"]})};var yf=class t{constructor(e,A){this.dialogRef=e;this.data=A}onConfirm(){this.dialogRef.close(!0)}onCancel(){this.dialogRef.close(!1)}static \u0275fac=function(A){return new(A||t)(Ge(fr),Ge(Cs))};static \u0275cmp=jA({type:t,selectors:[["app-delete-session-dialog"]],decls:11,vars:4,consts:[[1,"confirm-delete-wrapper"],["mat-dialog-title",""],["align","end"],["mat-button","",3,"click"],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2),N(),S(3,"mat-dialog-content")(4,"p"),AA(5),N()(),S(6,"mat-dialog-actions",2)(7,"button",3),mA("click",function(){return i.onCancel()}),AA(8),N(),S(9,"button",4),mA("click",function(){return i.onConfirm()}),AA(10),N()()()),A&2&&(_(2),tt(i.data.title),_(3),tt(i.data.message),_(3),tt(i.data.cancelButtonText),_(2),tt(i.data.confirmButtonText))},dependencies:[Ls,ya,va,dr],encapsulation:2})};var XK=["*"];function QOA(t,e){t&1&&Ue(0)}var uOA=["tabListContainer"],hOA=["tabList"],fOA=["tabListInner"],mOA=["nextPaginator"],pOA=["previousPaginator"],DOA=t=>({animationDuration:t}),wOA=(t,e)=>({value:t,params:e});function yOA(t,e){}var vOA=["tabBodyWrapper"],MOA=["tabHeader"];function bOA(t,e){}function kOA(t,e){if(t&1&&NA(0,bOA,0,0,"ng-template",12),t&2){let A=Y().$implicit;yA("cdkPortalOutlet",A.templateLabel)}}function SOA(t,e){if(t&1&&AA(0),t&2){let A=Y().$implicit;tt(A.textLabel)}}function ROA(t,e){if(t&1){let A=me();S(0,"div",7,2),mA("click",function(){let n=QA(A),o=n.$implicit,r=n.$index,s=Y(),a=Cr(1);return uA(s._handleClick(o,a,r))})("cdkFocusChange",function(n){let o=QA(A).$index,r=Y();return uA(r._tabFocusChanged(n,o))}),TA(2,"span",8)(3,"div",9),S(4,"span",10)(5,"span",11),NA(6,kOA,1,1,null,12)(7,SOA,1,1),N()()()}if(t&2){let A=e.$implicit,i=e.$index,n=Cr(1),o=Y();Ro(A.labelClass),he("mdc-tab--active",o.selectedIndex===i),yA("id",o._getTabLabelId(i))("disabled",A.disabled)("fitInkBarToContent",o.fitInkBarToContent),Ke("tabIndex",o._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",o._tabs.length)("aria-controls",o._getTabContentId(i))("aria-selected",o.selectedIndex===i)("aria-label",A.ariaLabel||null)("aria-labelledby",!A.ariaLabel&&A.ariaLabelledby?A.ariaLabelledby:null),_(3),yA("matRippleTrigger",n)("matRippleDisabled",A.disabled||o.disableRipple),_(3),_A(A.templateLabel?6:7)}}function LOA(t,e){t&1&&Ue(0)}function xOA(t,e){if(t&1){let A=me();S(0,"mat-tab-body",13),mA("_onCentered",function(){QA(A);let n=Y();return uA(n._removeTabBodyWrapperHeight())})("_onCentering",function(n){QA(A);let o=Y();return uA(o._setTabBodyWrapperHeight(n))}),N()}if(t&2){let A=e.$implicit,i=e.$index,n=Y();Ro(A.bodyClass),he("mat-mdc-tab-body-active",n.selectedIndex===i),yA("id",n._getTabContentId(i))("content",A.content)("position",A.position)("origin",A.origin)("animationDuration",n.animationDuration)("preserveContent",n.preserveContent),Ke("tabindex",n.contentTabIndex!=null&&n.selectedIndex===i?n.contentTabIndex:null)("aria-labelledby",n._getTabLabelId(i))("aria-hidden",n.selectedIndex!==i)}}var NOA=new eA("MatTabContent"),FOA=(()=>{class t{template=f(mn);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matTabContent",""]],features:[ut([{provide:NOA,useExisting:t}])]})}return t})(),_OA=new eA("MatTabLabel"),JcA=new eA("MAT_TAB"),$K=(()=>{class t extends sq{_closestTab=f(JcA,{optional:!0});static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[ut([{provide:_OA,useExisting:t}]),lt]})}return t})(),YcA=new eA("MAT_TAB_GROUP"),vf=(()=>{class t{_viewContainerRef=f(Sn);_closestTabGroup=f(YcA,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(A){this._setTemplateLabelInput(A)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new qA;position=null;origin=null;isActive=!1;constructor(){f(Pn).load(Yr)}ngOnChanges(A){(A.hasOwnProperty("textLabel")||A.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new Rs(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(A){A&&A._closestTab===this&&(this._templateLabel=A)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-tab"]],contentQueries:function(i,n,o){if(i&1&&(gi(o,$K,5),gi(o,FOA,7,mn)),i&2){let r;de(r=Be())&&(n.templateLabel=r.first),de(r=Be())&&(n._explicitContent=r.first)}},viewQuery:function(i,n){if(i&1&&st(mn,7),i&2){let o;de(o=Be())&&(n._implicitContent=o.first)}},hostAttrs:["hidden",""],inputs:{disabled:[2,"disabled","disabled",ge],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},exportAs:["matTab"],features:[ut([{provide:JcA,useExisting:t}]),Xt],ngContentSelectors:XK,decls:1,vars:0,template:function(i,n){i&1&&($t(),NA(0,QOA,1,0,"ng-template"))},encapsulation:2})}return t})(),VK="mdc-tab-indicator--active",KcA="mdc-tab-indicator--no-transition",ZK=class{_items;_currentItem;constructor(e){this._items=e}hide(){this._items.forEach(e=>e.deactivateInkBar()),this._currentItem=void 0}alignToElement(e){let A=this._items.find(n=>n.elementRef.nativeElement===e),i=this._currentItem;if(A!==i&&(i?.deactivateInkBar(),A)){let n=i?.elementRef.nativeElement.getBoundingClientRect?.();A.activateInkBar(n),this._currentItem=A}}},GOA=(()=>{class t{_elementRef=f(se);_inkBarElement;_inkBarContentElement;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(A){this._fitToContent!==A&&(this._fitToContent=A,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(A){let i=this._elementRef.nativeElement;if(!A||!i.getBoundingClientRect||!this._inkBarContentElement){i.classList.add(VK);return}let n=i.getBoundingClientRect(),o=A.width/n.width,r=A.left-n.left;i.classList.add(KcA),this._inkBarContentElement.style.setProperty("transform",`translateX(${r}px) scaleX(${o})`),i.getBoundingClientRect(),i.classList.remove(KcA),i.classList.add(VK),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(VK)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){let A=this._elementRef.nativeElement.ownerDocument||document,i=this._inkBarElement=A.createElement("span"),n=this._inkBarContentElement=A.createElement("span");i.className="mdc-tab-indicator",n.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",i.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){this._inkBarElement;let A=this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement;A.appendChild(this._inkBarElement)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",ge]}})}return t})();var TcA=(()=>{class t extends GOA{elementRef=f(se);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,n){i&2&&(Ke("aria-disabled",!!n.disabled),he("mat-mdc-tab-disabled",n.disabled))},inputs:{disabled:[2,"disabled","disabled",ge]},features:[lt]})}return t})(),UcA={passive:!0},KOA=650,UOA=100,JOA=(()=>{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_viewportRuler=f(Nc);_dir=f(po,{optional:!0});_ngZone=f(ye);_platform=f(ni);_sharedResizeObserver=f(h6);_injector=f(Zt);_renderer=f(qi);_animationMode=f(_i,{optional:!0});_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new qA;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged;_keyManager;_currentTextContent;_stopScrolling=new qA;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(A){let i=isNaN(A)?0:A;this._selectedIndex!=i&&(this._selectedIndexChanged=!0,this._selectedIndex=i,this._keyManager&&this._keyManager.updateActiveItem(i))}_selectedIndex=0;selectFocusedIndex=new YA;indexFocused=new YA;constructor(){this._eventCleanups=this._ngZone.runOutsideAngular(()=>[this._renderer.listen(this._elementRef.nativeElement,"mouseleave",()=>this._stopInterval())])}ngAfterViewInit(){this._eventCleanups.push(Bk(this._renderer,this._previousPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("before"),UcA),Bk(this._renderer,this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),UcA))}ngAfterContentInit(){let A=this._dir?this._dir.change:Ce("ltr"),i=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(ag(32),kt(this._destroyed)),n=this._viewportRuler.change(150).pipe(kt(this._destroyed)),o=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new zI(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(this._selectedIndex),Ir(o,{injector:this._injector}),Hn(A,n,i,this._items.changes,this._itemsResized()).pipe(kt(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),o()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(r=>{this.indexFocused.emit(r),this._setTabFocus(r)})}_itemsResized(){return typeof ResizeObserver!="function"?lr:this._items.changes.pipe(On(this._items),$n(A=>new gt(i=>this._ngZone.runOutsideAngular(()=>{let n=new ResizeObserver(o=>i.next(o));return A.forEach(o=>n.observe(o.elementRef.nativeElement)),()=>{n.disconnect()}}))),mI(1),Nt(A=>A.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._eventCleanups.forEach(A=>A()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(A){if(!sr(A))switch(A.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){let i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(A))}break;default:this._keyManager.onKeydown(A)}}_onContentChanges(){let A=this._elementRef.nativeElement.textContent;A!==this._currentTextContent&&(this._currentTextContent=A||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(A){!this._isValidIndex(A)||this.focusIndex===A||!this._keyManager||this._keyManager.setActiveItem(A)}_isValidIndex(A){return this._items?!!this._items.toArray()[A]:!0}_setTabFocus(A){if(this._showPaginationControls&&this._scrollToLabel(A),this._items&&this._items.length){this._items.toArray()[A].focus();let i=this._tabListContainer.nativeElement;this._getLayoutDirection()=="ltr"?i.scrollLeft=0:i.scrollLeft=i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;let A=this.scrollDistance,i=this._getLayoutDirection()==="ltr"?-A:A;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(A){this._scrollTo(A)}_scrollHeader(A){let i=this._tabListContainer.nativeElement.offsetWidth,n=(A=="before"?-1:1)*i/3;return this._scrollTo(this._scrollDistance+n)}_handlePaginatorClick(A){this._stopInterval(),this._scrollHeader(A)}_scrollToLabel(A){if(this.disablePagination)return;let i=this._items?this._items.toArray()[A]:null;if(!i)return;let n=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:o,offsetWidth:r}=i.elementRef.nativeElement,s,a;this._getLayoutDirection()=="ltr"?(s=o,a=s+r):(a=this._tabListInner.nativeElement.offsetWidth-o,s=a-r);let c=this.scrollDistance,g=this.scrollDistance+n;sg&&(this.scrollDistance+=Math.min(a-g,s-c))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{let A=this._tabListInner.nativeElement.scrollWidth,i=this._elementRef.nativeElement.offsetWidth,n=A-i>=5;n||(this.scrollDistance=0),n!==this._showPaginationControls&&(this._showPaginationControls=n,this._changeDetectorRef.markForCheck())}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=this.scrollDistance==0,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){let A=this._tabListInner.nativeElement.scrollWidth,i=this._tabListContainer.nativeElement.offsetWidth;return A-i||0}_alignInkBarToSelectedTab(){let A=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=A?A.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(A,i){i&&i.button!=null&&i.button!==0||(this._stopInterval(),fI(KOA,UOA).pipe(kt(Hn(this._stopScrolling,this._destroyed))).subscribe(()=>{let{maxScrollDistance:n,distance:o}=this._scrollHeader(A);(o===0||o>=n)&&this._stopInterval()}))}_scrollTo(A){if(this.disablePagination)return{maxScrollDistance:0,distance:0};let i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,A)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,inputs:{disablePagination:[2,"disablePagination","disablePagination",ge],selectedIndex:[2,"selectedIndex","selectedIndex",en]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return t})(),YOA=(()=>{class t extends JOA{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new ZK(this._items),super.ngAfterContentInit()}_itemSelected(A){A.preventDefault()}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-tab-header"]],contentQueries:function(i,n,o){if(i&1&&gi(o,TcA,4),i&2){let r;de(r=Be())&&(n._items=r)}},viewQuery:function(i,n){if(i&1&&(st(uOA,7),st(hOA,7),st(fOA,7),st(mOA,5),st(pOA,5)),i&2){let o;de(o=Be())&&(n._tabListContainer=o.first),de(o=Be())&&(n._tabList=o.first),de(o=Be())&&(n._tabListInner=o.first),de(o=Be())&&(n._nextPaginator=o.first),de(o=Be())&&(n._previousPaginator=o.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,n){i&2&&he("mat-mdc-tab-header-pagination-controls-enabled",n._showPaginationControls)("mat-mdc-tab-header-rtl",n._getLayoutDirection()=="rtl")},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",ge]},features:[lt],ngContentSelectors:XK,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"div",5,0),mA("click",function(){return QA(o),uA(n._handlePaginatorClick("before"))})("mousedown",function(s){return QA(o),uA(n._handlePaginatorPress("before",s))})("touchend",function(){return QA(o),uA(n._stopInterval())}),TA(2,"div",6),N(),S(3,"div",7,1),mA("keydown",function(s){return QA(o),uA(n._handleKeydown(s))}),S(5,"div",8,2),mA("cdkObserveContent",function(){return QA(o),uA(n._onContentChanges())}),S(7,"div",9,3),Ue(9),N()()(),S(10,"div",10,4),mA("mousedown",function(s){return QA(o),uA(n._handlePaginatorPress("after",s))})("click",function(){return QA(o),uA(n._handlePaginatorClick("after"))})("touchend",function(){return QA(o),uA(n._stopInterval())}),TA(12,"div",6),N()}i&2&&(he("mat-mdc-tab-header-pagination-disabled",n._disableScrollBefore),yA("matRippleDisabled",n._disableScrollBefore||n.disableRipple),_(3),he("_mat-animation-noopable",n._animationMode==="NoopAnimations"),_(2),Ke("aria-label",n.ariaLabel||null)("aria-labelledby",n.ariaLabelledby||null),_(5),he("mat-mdc-tab-header-pagination-disabled",n._disableScrollAfter),yA("matRippleDisabled",n._disableScrollAfter||n.disableRipple))},dependencies:[Xs,e6],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height, 1px);border-bottom-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-header-divider-height, 1px);border-top-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mdc-secondary-navigation-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}"],encapsulation:2})}return t})(),TOA=new eA("MAT_TABS_CONFIG"),HOA={translateTab:nc("translateTab",[$s("center, void, left-origin-center, right-origin-center",Do({transform:"none",visibility:"visible"})),$s("left",Do({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),$s("right",Do({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),$r("* => left, * => right, left => center, right => center",Is("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),$r("void => left-origin-center",[Do({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),Is("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),$r("void => right-origin-center",[Do({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),Is("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])},OOA=(()=>{class t extends wa{_host=f(HcA);_centeringSub=Kt.EMPTY;_leavingSub=Kt.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(On(this._host._isCenterPosition(this._host._position))).subscribe(A=>{this._host._content&&A&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matTabBodyHost",""]],features:[lt]})}return t})(),HcA=(()=>{class t{_elementRef=f(se);_dir=f(po,{optional:!0});_positionIndex;_dirChangeSubscription=Kt.EMPTY;_position;_translateTabComplete=new qA;_onCentering=new YA;_beforeCentering=new YA;_afterLeavingCenter=new YA;_onCentered=new YA(!0);_portalHost;_content;origin;animationDuration="500ms";preserveContent=!1;set position(A){this._positionIndex=A,this._computePositionAnimationState()}constructor(){if(this._dir){let A=f(Et);this._dirChangeSubscription=this._dir.change.subscribe(i=>{this._computePositionAnimationState(i),A.markForCheck()})}this._translateTabComplete.subscribe(A=>{this._isCenterPosition(A.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(A.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}ngOnInit(){this._position=="center"&&this.origin!=null&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(A){let i=this._isCenterPosition(A.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_isCenterPosition(A){return A=="center"||A=="left-origin-center"||A=="right-origin-center"}_computePositionAnimationState(A=this._getLayoutDirection()){this._positionIndex<0?this._position=A=="ltr"?"left":"right":this._positionIndex>0?this._position=A=="ltr"?"right":"left":this._position="center"}_computePositionFromOrigin(A){let i=this._getLayoutDirection();return i=="ltr"&&A<=0||i=="rtl"&&A>0?"left-origin-center":"right-origin-center"}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-tab-body"]],viewQuery:function(i,n){if(i&1&&st(wa,5),i&2){let o;de(o=Be())&&(n._portalHost=o.first)}},hostAttrs:[1,"mat-mdc-tab-body"],inputs:{_content:[0,"content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(i,n){if(i&1){let o=me();S(0,"div",1,0),mA("@translateTab.start",function(s){return QA(o),uA(n._onTranslateTabStarted(s))})("@translateTab.done",function(s){return QA(o),uA(n._translateTabComplete.next(s))}),NA(2,yOA,0,0,"ng-template",2),N()}i&2&&yA("@translateTab",Bg(3,wOA,n._position,vc(1,DOA,n.animationDuration)))},dependencies:[OOA,k0],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[HOA.translateTab]}})}return t})(),zOA=!0,M7=(()=>{class t{_elementRef=f(se);_changeDetectorRef=f(Et);_animationMode=f(_i,{optional:!0});_allTabs;_tabBodyWrapper;_tabHeader;_tabs=new qa;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;_tabsSubscription=Kt.EMPTY;_tabLabelSubscription=Kt.EMPTY;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(A){this._fitInkBarToContent=A,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(A){this._indexToSelect=isNaN(A)?null:A}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(A){let i=A+"";this._animationDuration=/^\d+$/.test(i)?A+"ms":i}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(A){this._contentTabIndex=isNaN(A)?null:A}_contentTabIndex;disablePagination=!1;disableRipple=!1;preserveContent=!1;get backgroundColor(){return this._backgroundColor}set backgroundColor(A){if(!zOA)throw new Error("mat-tab-group background color must be set through the Sass theming API");let i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),A&&i.add("mat-tabs-with-background",`mat-background-${A}`),this._backgroundColor=A}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new YA;focusChange=new YA;animationDone=new YA;selectedTabChange=new YA(!0);_groupId;_isServer=!f(ni).isBrowser;constructor(){let A=f(TOA,{optional:!0});this._groupId=f(an).getId("mat-tab-group-"),this.animationDuration=A&&A.animationDuration?A.animationDuration:"500ms",this.disablePagination=A&&A.disablePagination!=null?A.disablePagination:!1,this.dynamicHeight=A&&A.dynamicHeight!=null?A.dynamicHeight:!1,A?.contentTabIndex!=null&&(this.contentTabIndex=A.contentTabIndex),this.preserveContent=!!A?.preserveContent,this.fitInkBarToContent=A&&A.fitInkBarToContent!=null?A.fitInkBarToContent:!1,this.stretchTabs=A&&A.stretchTabs!=null?A.stretchTabs:!0,this.alignTabs=A&&A.alignTabs!=null?A.alignTabs:null}ngAfterContentChecked(){let A=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=A){let i=this._selectedIndex==null;if(!i){this.selectedTabChange.emit(this._createChangeEvent(A));let n=this._tabBodyWrapper.nativeElement;n.style.minHeight=n.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((n,o)=>n.isActive=o===A),i||(this.selectedIndexChange.emit(A),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,n)=>{i.position=n-A,this._selectedIndex!=null&&i.position==0&&!i.origin&&(i.origin=A-this._selectedIndex)}),this._selectedIndex!==A&&(this._selectedIndex=A,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{let A=this._clampTabIndex(this._indexToSelect);if(A===this._selectedIndex){let i=this._tabs.toArray(),n;for(let o=0;o{i[A].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(A))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(On(this._allTabs)).subscribe(A=>{this._tabs.reset(A.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(A){let i=this._tabHeader;i&&(i.focusIndex=A)}_focusChanged(A){this._lastFocusedTabIndex=A,this.focusChange.emit(this._createChangeEvent(A))}_createChangeEvent(A){let i=new WK;return i.index=A,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[A]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=Hn(...this._tabs.map(A=>A._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(A){return Math.min(this._tabs.length-1,Math.max(A||0,0))}_getTabLabelId(A){return`${this._groupId}-label-${A}`}_getTabContentId(A){return`${this._groupId}-content-${A}`}_setTabBodyWrapperHeight(A){if(!this.dynamicHeight||!this._tabBodyWrapperHeight)return;let i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=A+"px")}_removeTabBodyWrapperHeight(){let A=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=A.clientHeight,A.style.height="",this.animationDone.emit()}_handleClick(A,i,n){i.focusIndex=n,A.disabled||(this.selectedIndex=n)}_getTabIndex(A){let i=this._lastFocusedTabIndex??this.selectedIndex;return A===i?0:-1}_tabFocusChanged(A,i){A&&A!=="mouse"&&A!=="touch"&&(this._tabHeader.focusIndex=i)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-tab-group"]],contentQueries:function(i,n,o){if(i&1&&gi(o,vf,5),i&2){let r;de(r=Be())&&(n._allTabs=r)}},viewQuery:function(i,n){if(i&1&&(st(vOA,5),st(MOA,5)),i&2){let o;de(o=Be())&&(n._tabBodyWrapper=o.first),de(o=Be())&&(n._tabHeader=o.first)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(i,n){i&2&&(Ke("mat-align-tabs",n.alignTabs),Ro("mat-"+(n.color||"primary")),mo("--mat-tab-animation-duration",n.animationDuration),he("mat-mdc-tab-group-dynamic-height",n.dynamicHeight)("mat-mdc-tab-group-inverted-header",n.headerPosition==="below")("mat-mdc-tab-group-stretch-tabs",n.stretchTabs))},inputs:{color:"color",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",ge],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",ge],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",ge],selectedIndex:[2,"selectedIndex","selectedIndex",en],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",en],disablePagination:[2,"disablePagination","disablePagination",ge],disableRipple:[2,"disableRipple","disableRipple",ge],preserveContent:[2,"preserveContent","preserveContent",ge],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[ut([{provide:YcA,useExisting:t}])],ngContentSelectors:XK,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","mat-mdc-tab-body-active","class","content","position","origin","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","id","content","position","origin","animationDuration","preserveContent"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"mat-tab-header",3,0),mA("indexFocused",function(s){return QA(o),uA(n._focusChanged(s))})("selectFocusedIndex",function(s){return QA(o),uA(n.selectedIndex=s)}),dn(2,ROA,8,17,"div",4,zn),N(),NA(4,LOA,1,0),S(5,"div",5,1),dn(7,xOA,1,13,"mat-tab-body",6,zn),N()}i&2&&(yA("selectedIndex",n.selectedIndex||0)("disableRipple",n.disableRipple)("disablePagination",n.disablePagination)("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby),_(2),Bn(n._tabs),_(2),_A(n._isServer?4:-1),_(),he("_mat-animation-noopable",n._animationMode==="NoopAnimations"),_(2),Bn(n._tabs))},dependencies:[YOA,TcA,Mz,Xs,wa,HcA],styles:['.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mdc-secondary-navigation-tab-container-height, 48px);font-family:var(--mat-tab-header-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-header-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-header-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-header-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-header-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-tab-indicator-active-indicator-height, 2px);border-radius:var(--mdc-tab-indicator-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2})}return t})(),WK=class{index;tab};var b7=new eA("LOGO_COMPONENT");function POA(t,e){t&1&&TA(0,"div",6)}function jOA(t,e){if(t&1&&(S(0,"div",3)(1,"div",5),dn(2,POA,1,0,"div",6,AB),N(),S(4,"span",7),AA(5),N(),S(6,"div",8),AA(7),S(8,"span",9),AA(9),N()(),S(10,"div",10)(11,"div",11),AA(12),N()()()),t&2){let A=e.$implicit,i=Y();_(2),Bn(i.getArray(A.level)),_(3),It(" ",i.getSpanIcon(A.span.name)," "),_(),mo("width",400-A.level*20,"px"),_(),It(" ",A.span.name," "),_(2),It(" (",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms) "),_(2),mo("left",i.getRelativeStart(A.span),"%")("width",i.getRelativeWidth(A.span),"%"),_(),It(" ",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms ")}}var k7=class t{constructor(e,A){this.dialogRef=e;this.data=A}tree=[];baseStartTimeMs=0;totalDurationMs=1;flatTree=[];traceLabelIconMap=new Map([["Invocation","start"],["agent_run","directions_run"],["invoke_agent","directions_run"],["tool","build"],["call_llm","chat"]]);ngOnInit(){this.tree=this.buildSpanTree(this.data.spans),this.flatTree=this.flattenTree(this.tree);let e=this.getGlobalTimes(this.data.spans);this.baseStartTimeMs=e.start,this.totalDurationMs=e.duration}buildSpanTree(e){let A=e.map(o=>sA({},o)),i=new Map,n=[];return A.forEach(o=>i.set(o.span_id,o)),A.forEach(o=>{if(o.parent_span_id&&i.has(o.parent_span_id)){let r=i.get(o.parent_span_id);r.children=r.children||[],r.children.push(o)}else n.push(o)}),n}getGlobalTimes(e){let A=Math.min(...e.map(n=>this.toMs(n.start_time))),i=Math.max(...e.map(n=>this.toMs(n.end_time)));return{start:A,duration:i-A}}toMs(e){return e/1e6}getRelativeStart(e){return(this.toMs(e.start_time)-this.baseStartTimeMs)/this.totalDurationMs*100}getRelativeWidth(e){return(this.toMs(e.end_time)-this.toMs(e.start_time))/this.totalDurationMs*100}flattenTree(e,A=0){return e.flatMap(n=>[{span:n,level:A},...n.children?this.flattenTree(n.children,A+1):[]])}getSpanIcon(e){for(let[A,i]of this.traceLabelIconMap.entries())if(e.startsWith(A))return i;return"start"}getArray(e){return Array.from({length:e})}static \u0275fac=function(A){return new(A||t)(Ge(fr),Ge(Cs))};static \u0275cmp=jA({type:t,selectors:[["app-trace-chart"]],decls:9,vars:1,consts:[["mat-dialog-title",""],[2,"margin-top","8px"],[1,"trace-container"],[1,"trace-row"],["mat-button","","mat-dialog-close",""],[1,"trace-indent"],[1,"indent-connector"],[1,"material-symbols-outlined",2,"margin-right","8px"],[1,"trace-label"],[1,"trace-duration"],[1,"trace-bar-container"],[1,"trace-bar"]],template:function(A,i){A&1&&(S(0,"h2",0),AA(1),N(),S(2,"mat-dialog-content",1)(3,"div",2),dn(4,jOA,13,10,"div",3,zn),N()(),S(6,"mat-dialog-actions")(7,"button",4),AA(8,"Close"),N()()),A&2&&(_(),It("Invocation ",i.data.invocId,""),_(3),Bn(i.flatTree))},dependencies:[Ls,ya,va,dr,bl],styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-label[_ngcontent-%COMP%]{width:400px;color:var(--trace-chart-trace-label-color);text-overflow:ellipsis;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px}.trace-bar-container[_ngcontent-%COMP%]{width:50vw;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:var(--trace-chart-trace-bar-background-color);border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:var(--trace-chart-trace-bar-color);font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:var(--trace-chart-trace-duration-color);font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:var(--trace-chart-vertical-line-background-color)}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:var(--trace-chart-horizontal-line-background-color)}"]})};var qOA=["button"],VOA=["*"];function ZOA(t,e){if(t&1&&(S(0,"div",2),TA(1,"mat-pseudo-checkbox",6),N()),t&2){let A=Y();_(),yA("disabled",A.disabled)}}var OcA=new eA("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:WOA});function WOA(){return{hideSingleSelectionIndicator:!1,hideMultipleSelectionIndicator:!1,disabledInteractive:!1}}var zcA=new eA("MatButtonToggleGroup"),XOA={provide:bc,useExisting:Ur(()=>AU),multi:!0},S7=class{source;value;constructor(e,A){this.source=e,this.value=A}},AU=(()=>{class t{_changeDetector=f(Et);_dir=f(po,{optional:!0});_multiple=!1;_disabled=!1;_disabledInteractive=!1;_selectionModel;_rawValue;_controlValueAccessorChangeFn=()=>{};_onTouched=()=>{};_buttonToggles;appearance;get name(){return this._name}set name(A){this._name=A,this._markButtonsForCheck()}_name=f(an).getId("mat-button-toggle-group-");vertical;get value(){let A=this._selectionModel?this._selectionModel.selected:[];return this.multiple?A.map(i=>i.value):A[0]?A[0].value:void 0}set value(A){this._setSelectionByValue(A),this.valueChange.emit(this.value)}valueChange=new YA;get selected(){let A=this._selectionModel?this._selectionModel.selected:[];return this.multiple?A:A[0]||null}get multiple(){return this._multiple}set multiple(A){this._multiple=A,this._markButtonsForCheck()}get disabled(){return this._disabled}set disabled(A){this._disabled=A,this._markButtonsForCheck()}get disabledInteractive(){return this._disabledInteractive}set disabledInteractive(A){this._disabledInteractive=A,this._markButtonsForCheck()}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}change=new YA;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(A){this._hideSingleSelectionIndicator=A,this._markButtonsForCheck()}_hideSingleSelectionIndicator;get hideMultipleSelectionIndicator(){return this._hideMultipleSelectionIndicator}set hideMultipleSelectionIndicator(A){this._hideMultipleSelectionIndicator=A,this._markButtonsForCheck()}_hideMultipleSelectionIndicator;constructor(){let A=f(OcA,{optional:!0});this.appearance=A&&A.appearance?A.appearance:"standard",this.hideSingleSelectionIndicator=A?.hideSingleSelectionIndicator??!1,this.hideMultipleSelectionIndicator=A?.hideMultipleSelectionIndicator??!1}ngOnInit(){this._selectionModel=new P2(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(A=>A.checked)),this.multiple||this._initializeTabIndex()}writeValue(A){this.value=A,this._changeDetector.markForCheck()}registerOnChange(A){this._controlValueAccessorChangeFn=A}registerOnTouched(A){this._onTouched=A}setDisabledState(A){this.disabled=A}_keydown(A){if(this.multiple||this.disabled)return;let n=A.target.id,o=this._buttonToggles.toArray().findIndex(s=>s.buttonId===n),r=null;switch(A.keyCode){case 32:case 13:r=this._buttonToggles.get(o)||null;break;case 38:r=this._getNextButton(o,-1);break;case 37:r=this._getNextButton(o,this.dir==="ltr"?-1:1);break;case 40:r=this._getNextButton(o,1);break;case 39:r=this._getNextButton(o,this.dir==="ltr"?1:-1);break;default:return}r&&(A.preventDefault(),r._onButtonClick(),r.focus())}_emitChangeEvent(A){let i=new S7(A,this.value);this._rawValue=i.value,this._controlValueAccessorChangeFn(i.value),this.change.emit(i)}_syncButtonToggle(A,i,n=!1,o=!1){!this.multiple&&this.selected&&!A.checked&&(this.selected.checked=!1),this._selectionModel?i?this._selectionModel.select(A):this._selectionModel.deselect(A):o=!0,o?Promise.resolve().then(()=>this._updateModelValue(A,n)):this._updateModelValue(A,n)}_isSelected(A){return this._selectionModel&&this._selectionModel.isSelected(A)}_isPrechecked(A){return typeof this._rawValue>"u"?!1:this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some(i=>A.value!=null&&i===A.value):A.value===this._rawValue}_initializeTabIndex(){if(this._buttonToggles.forEach(A=>{A.tabIndex=-1}),this.selected)this.selected.tabIndex=0;else for(let A=0;Athis._selectValue(n,i))):(this._clearSelection(),this._selectValue(A,i)),!this.multiple&&i.every(n=>n.tabIndex===-1)){for(let n of i)if(!n.disabled){n.tabIndex=0;break}}}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(A=>{A.checked=!1,this.multiple||(A.tabIndex=-1)})}_selectValue(A,i){for(let n of i)if(n.value===A){n.checked=!0,this._selectionModel.select(n),this.multiple||(n.tabIndex=0);break}}_updateModelValue(A,i){i&&this._emitChangeEvent(A),this.valueChange.emit(this.value)}_markButtonsForCheck(){this._buttonToggles?.forEach(A=>A._markForCheck())}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["mat-button-toggle-group"]],contentQueries:function(i,n,o){if(i&1&&gi(o,eU,5),i&2){let r;de(r=Be())&&(n._buttonToggles=r)}},hostAttrs:[1,"mat-button-toggle-group"],hostVars:6,hostBindings:function(i,n){i&1&&mA("keydown",function(r){return n._keydown(r)}),i&2&&(Ke("role",n.multiple?"group":"radiogroup")("aria-disabled",n.disabled),he("mat-button-toggle-vertical",n.vertical)("mat-button-toggle-group-appearance-standard",n.appearance==="standard"))},inputs:{appearance:"appearance",name:"name",vertical:[2,"vertical","vertical",ge],value:"value",multiple:[2,"multiple","multiple",ge],disabled:[2,"disabled","disabled",ge],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",ge],hideMultipleSelectionIndicator:[2,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",ge]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],features:[ut([XOA,{provide:zcA,useExisting:t}])]})}return t})(),eU=(()=>{class t{_changeDetectorRef=f(Et);_elementRef=f(se);_focusMonitor=f(Jr);_idGenerator=f(an);_animationMode=f(_i,{optional:!0});_checked=!1;ariaLabel;ariaLabelledby=null;_buttonElement;buttonToggleGroup;get buttonId(){return`${this.id}-button`}id;name;value;get tabIndex(){return this._tabIndex}set tabIndex(A){A!==this._tabIndex&&(this._tabIndex=A,this._markForCheck())}_tabIndex;disableRipple;get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(A){this._appearance=A}_appearance;get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(A){A!==this._checked&&(this._checked=A,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(A){this._disabled=A}_disabled=!1;get disabledInteractive(){return this._disabledInteractive||this.buttonToggleGroup!==null&&this.buttonToggleGroup.disabledInteractive}set disabledInteractive(A){this._disabledInteractive=A}_disabledInteractive;change=new YA;constructor(){f(Pn).load(Yr);let A=f(zcA,{optional:!0}),i=f(new Wr("tabindex"),{optional:!0})||"",n=f(OcA,{optional:!0});this._tabIndex=parseInt(i)||0,this.buttonToggleGroup=A,this.appearance=n&&n.appearance?n.appearance:"standard",this.disabledInteractive=n?.disabledInteractive??!1}ngOnInit(){let A=this.buttonToggleGroup;this.id=this.id||this._idGenerator.getId("mat-button-toggle-"),A&&(A._isPrechecked(this)?this.checked=!0:A._isSelected(this)!==this._checked&&A._syncButtonToggle(this,this._checked))}ngAfterViewInit(){this._animationMode!=="NoopAnimations"&&this._elementRef.nativeElement.classList.add("mat-button-toggle-animations-enabled"),this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){let A=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),A&&A._isSelected(this)&&A._syncButtonToggle(this,!1,!1,!0)}focus(A){this._buttonElement.nativeElement.focus(A)}_onButtonClick(){if(this.disabled)return;let A=this.isSingleSelector()?!0:!this._checked;if(A!==this._checked&&(this._checked=A,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.isSingleSelector()){let i=this.buttonToggleGroup._buttonToggles.find(n=>n.tabIndex===0);i&&(i.tabIndex=-1),this.tabIndex=0}this.change.emit(new S7(this,this.value))}_markForCheck(){this._changeDetectorRef.markForCheck()}_getButtonName(){return this.isSingleSelector()?this.buttonToggleGroup.name:this.name||null}isSingleSelector(){return this.buttonToggleGroup&&!this.buttonToggleGroup.multiple}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-button-toggle"]],viewQuery:function(i,n){if(i&1&&st(qOA,5),i&2){let o;de(o=Be())&&(n._buttonElement=o.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:14,hostBindings:function(i,n){i&1&&mA("focus",function(){return n.focus()}),i&2&&(Ke("aria-label",null)("aria-labelledby",null)("id",n.id)("name",null),he("mat-button-toggle-standalone",!n.buttonToggleGroup)("mat-button-toggle-checked",n.checked)("mat-button-toggle-disabled",n.disabled)("mat-button-toggle-disabled-interactive",n.disabledInteractive)("mat-button-toggle-appearance-standard",n.appearance==="standard"))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[2,"disableRipple","disableRipple",ge],appearance:"appearance",checked:[2,"checked","checked",ge],disabled:[2,"disabled","disabled",ge],disabledInteractive:[2,"disabledInteractive","disabledInteractive",ge]},outputs:{change:"change"},exportAs:["matButtonToggle"],ngContentSelectors:VOA,decls:7,vars:13,consts:[["button",""],["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"click","id","disabled"],[1,"mat-button-toggle-checkbox-wrapper"],[1,"mat-button-toggle-label-content"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"],["state","checked","aria-hidden","true","appearance","minimal",3,"disabled"]],template:function(i,n){if(i&1){let o=me();$t(),S(0,"button",1,0),mA("click",function(){return QA(o),uA(n._onButtonClick())}),NA(2,ZOA,2,1,"div",2),S(3,"span",3),Ue(4),N()(),TA(5,"span",4)(6,"span",5)}if(i&2){let o=Cr(1);yA("id",n.buttonId)("disabled",n.disabled&&!n.disabledInteractive||null),Ke("role",n.isSingleSelector()?"radio":"button")("tabindex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("aria-pressed",n.isSingleSelector()?null:n.checked)("aria-checked",n.isSingleSelector()?n.checked:null)("name",n._getButtonName())("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),_(2),_A(n.buttonToggleGroup&&(!n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideSingleSelectionIndicator||n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideMultipleSelectionIndicator)?2:-1),_(4),yA("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)}},dependencies:[Xs,Lk],styles:[".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0);border-radius:var(--mat-legacy-button-toggle-shape)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}@media(forced-colors: active){.mat-button-toggle-standalone,.mat-button-toggle-group{outline:solid 1px}}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,.mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}@media(forced-colors: active){.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{outline:0}}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-legacy-button-toggle-text-color);font-family:var(--mat-legacy-button-toggle-label-text-font);font-size:var(--mat-legacy-button-toggle-label-text-size);line-height:var(--mat-legacy-button-toggle-label-text-line-height);font-weight:var(--mat-legacy-button-toggle-label-text-weight);letter-spacing:var(--mat-legacy-button-toggle-label-text-tracking);--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-legacy-button-toggle-selected-state-text-color)}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-legacy-button-toggle-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle-checkbox-wrapper{display:inline-block;justify-content:flex-start;align-items:center;width:0;height:18px;line-height:18px;overflow:hidden;box-sizing:border-box;position:absolute;top:50%;left:16px;transform:translate3d(0, -50%, 0)}[dir=rtl] .mat-button-toggle-checkbox-wrapper{left:auto;right:16px}.mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:12px}[dir=rtl] .mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:auto;right:12px}.mat-button-toggle-checked .mat-button-toggle-checkbox-wrapper{width:18px}.mat-button-toggle-animations-enabled .mat-button-toggle-checkbox-wrapper{transition:width 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-checkbox-wrapper{transition:none}.mat-button-toggle-checked{color:var(--mat-legacy-button-toggle-selected-state-text-color);background-color:var(--mat-legacy-button-toggle-selected-state-background-color)}.mat-button-toggle-disabled{pointer-events:none;color:var(--mat-legacy-button-toggle-disabled-state-text-color);background-color:var(--mat-legacy-button-toggle-disabled-state-background-color);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-legacy-button-toggle-disabled-state-text-color)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-legacy-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-disabled-interactive{pointer-events:auto}.mat-button-toggle-appearance-standard{color:var(--mat-standard-button-toggle-text-color, var(--mat-sys-on-surface));background-color:var(--mat-standard-button-toggle-background-color, transparent);font-family:var(--mat-standard-button-toggle-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-standard-button-toggle-label-text-size, var(--mat-sys-label-large-size));line-height:var(--mat-standard-button-toggle-label-text-line-height, var(--mat-sys-label-large-line-height));font-weight:var(--mat-standard-button-toggle-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mat-standard-button-toggle-label-text-tracking, var(--mat-sys-label-large-tracking))}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container));background-color:var(--mat-standard-button-toggle-selected-state-background-color, var(--mat-sys-secondary-container))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-standard-button-toggle-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-state-background-color, transparent)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-selected-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-standard-button-toggle-state-layer-color, var(--mat-sys-on-surface))}.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-button-toggle-appearance-standard.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}@media(hover: none){.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-legacy-button-toggle-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-standard-button-toggle-height, 40px)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-legacy-button-toggle-state-layer-color)}@media(forced-colors: active){.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-animations-enabled .mat-button-toggle-button{transition:padding 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-button{transition:none}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}.mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:30px}[dir=rtl] .mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:0;padding-right:30px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{--mat-focus-indicator-border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}"],encapsulation:2,changeDetection:0})}return t})();var $OA=["*"],AzA='.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item{display:flex;position:relative;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer;padding-left:16px;padding-right:16px;background-color:var(--mdc-list-list-item-container-color, transparent);border-radius:var(--mdc-list-list-item-container-shape, var(--mat-sys-corner-none))}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item:focus{outline:0}.mdc-list-item.mdc-list-item--disabled{cursor:auto}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mdc-list-list-item-one-line-container-height, 48px)}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mdc-list-list-item-two-line-container-height, 64px)}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height, 88px)}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--selected::before,.mdc-list-item.mdc-list-item--selected:focus::before,.mdc-list-item:not(.mdc-list-item--selected):focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;content:"";pointer-events:none}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color, var(--mat-sys-on-surface-variant));width:var(--mdc-list-list-item-leading-icon-size, 24px);height:var(--mdc-list-list-item-leading-icon-size, 24px);margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mdc-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size, 40px);height:var(--mdc-list-list-item-leading-avatar-size, 40px);margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item--with-leading-avatar .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font, var(--mat-sys-label-small-font));line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height, var(--mat-sys-label-small-line-height));font-size:var(--mdc-list-list-item-trailing-supporting-text-size, var(--mat-sys-label-small-size));font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight, var(--mat-sys-label-small-weight));letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking, var(--mat-sys-label-small-tracking))}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color, var(--mat-sys-on-surface-variant));width:var(--mdc-list-list-item-trailing-icon-size, 24px);height:var(--mdc-list-list-item-trailing-icon-size, 24px)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color, var(--mat-sys-on-surface-variant))}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color, var(--mat-sys-primary))}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:var(--mdc-list-list-item-label-text-color, var(--mat-sys-on-surface));font-family:var(--mdc-list-list-item-label-text-font, var(--mat-sys-body-large-font));line-height:var(--mdc-list-list-item-label-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mdc-list-list-item-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-list-list-item-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-list-list-item-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;color:var(--mdc-list-list-item-supporting-text-color, var(--mat-sys-on-surface-variant));font-family:var(--mdc-list-list-item-supporting-text-font, var(--mat-sys-body-medium-font));line-height:var(--mdc-list-list-item-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mdc-list-list-item-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mdc-list-list-item-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mdc-list-list-item-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:16px}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:16px;padding-right:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-trailing-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:0;padding-right:0}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-webkit-user-select:none;user-select:none;margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;line-height:normal;align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-left:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-right:0}.mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-group__subheader{margin:.75rem 16px}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text{opacity:var(--mdc-list-list-item-disabled-label-text-opacity, 0.3)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-disabled-leading-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-leading-icon-opacity, 0.38)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-disabled-trailing-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity, 0.38)}.mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing,[dir=rtl] .mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing{padding-left:0;padding-right:0}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mdc-list-list-item-disabled-label-text-opacity, 0.3)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mdc-list-list-item-leading-avatar-shape, var(--mat-sys-corner-full));background-color:var(--mdc-list-list-item-leading-avatar-color, var(--mat-sys-primary-container))}.mat-mdc-list-item-icon{font-size:var(--mdc-list-list-item-leading-icon-size, 24px)}@media(forced-colors: active){a.mdc-list-item--activated::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:"";opacity:0;pointer-events:none;border-radius:inherit}.mat-mdc-list-item>.mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-focus-indicator::before{content:""}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:start}mat-action-list button::-moz-focus-inner{border:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-inline-start:var(--mat-list-list-item-leading-icon-start-space, 16px);margin-inline-end:var(--mat-list-list-item-leading-icon-end-space, 16px)}.mat-mdc-nav-list .mat-mdc-list-item{border-radius:var(--mat-list-active-indicator-shape, var(--mat-sys-corner-full));--mat-focus-indicator-border-radius:var(--mat-list-active-indicator-shape, var(--mat-sys-corner-full))}.mat-mdc-nav-list .mat-mdc-list-item.mdc-list-item--activated{background-color:var(--mat-list-active-indicator-color, var(--mat-sys-secondary-container))}',ezA=["unscopedContent"],tzA=["text"],izA=[[["","matListItemAvatar",""],["","matListItemIcon",""]],[["","matListItemTitle",""]],[["","matListItemLine",""]],"*",[["","matListItemMeta",""]],[["mat-divider"]]],nzA=["[matListItemAvatar],[matListItemIcon]","[matListItemTitle]","[matListItemLine]","*","[matListItemMeta]","mat-divider"];var ozA=new eA("ListOption"),rzA=(()=>{class t{_elementRef=f(se);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matListItemTitle",""]],hostAttrs:[1,"mat-mdc-list-item-title","mdc-list-item__primary-text"]})}return t})(),szA=(()=>{class t{_elementRef=f(se);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matListItemLine",""]],hostAttrs:[1,"mat-mdc-list-item-line","mdc-list-item__secondary-text"]})}return t})(),azA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["","matListItemMeta",""]],hostAttrs:[1,"mat-mdc-list-item-meta","mdc-list-item__end"]})}return t})(),PcA=(()=>{class t{_listOption=f(ozA,{optional:!0});constructor(){}_isAlignedAtStart(){return!this._listOption||this._listOption?._getTogglePosition()==="after"}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,hostVars:4,hostBindings:function(i,n){i&2&&he("mdc-list-item__start",n._isAlignedAtStart())("mdc-list-item__end",!n._isAlignedAtStart())}})}return t})(),czA=(()=>{class t extends PcA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matListItemAvatar",""]],hostAttrs:[1,"mat-mdc-list-item-avatar"],features:[lt]})}return t})(),gzA=(()=>{class t extends PcA{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275dir=WA({type:t,selectors:[["","matListItemIcon",""]],hostAttrs:[1,"mat-mdc-list-item-icon"],features:[lt]})}return t})(),lzA=new eA("MAT_LIST_CONFIG"),tU=(()=>{class t{_isNonInteractive=!0;get disableRipple(){return this._disableRipple}set disableRipple(A){this._disableRipple=Ar(A)}_disableRipple=!1;get disabled(){return this._disabled}set disabled(A){this._disabled=Ar(A)}_disabled=!1;_defaultOptions=f(lzA,{optional:!0});static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,hostVars:1,hostBindings:function(i,n){i&2&&Ke("aria-disabled",n.disabled)},inputs:{disableRipple:"disableRipple",disabled:"disabled"}})}return t})(),IzA=(()=>{class t{_elementRef=f(se);_ngZone=f(ye);_listBase=f(tU,{optional:!0});_platform=f(ni);_hostElement;_isButtonElement;_noopAnimations;_avatars;_icons;set lines(A){this._explicitLines=Zs(A,null),this._updateItemLines(!1)}_explicitLines=null;get disableRipple(){return this.disabled||this._disableRipple||this._noopAnimations||!!this._listBase?.disableRipple}set disableRipple(A){this._disableRipple=Ar(A)}_disableRipple=!1;get disabled(){return this._disabled||!!this._listBase?.disabled}set disabled(A){this._disabled=Ar(A)}_disabled=!1;_subscriptions=new Kt;_rippleRenderer=null;_hasUnscopedTextContent=!1;rippleConfig;get rippleDisabled(){return this.disableRipple||!!this.rippleConfig.disabled}constructor(){f(Pn).load(Yr);let A=f(ZI,{optional:!0}),i=f(_i,{optional:!0});this.rippleConfig=A||{},this._hostElement=this._elementRef.nativeElement,this._isButtonElement=this._hostElement.nodeName.toLowerCase()==="button",this._noopAnimations=i==="NoopAnimations",this._listBase&&!this._listBase._isNonInteractive&&this._initInteractiveListItem(),this._isButtonElement&&!this._hostElement.hasAttribute("type")&&this._hostElement.setAttribute("type","button")}ngAfterViewInit(){this._monitorProjectedLinesAndTitle(),this._updateItemLines(!0)}ngOnDestroy(){this._subscriptions.unsubscribe(),this._rippleRenderer!==null&&this._rippleRenderer._removeTriggerEvents()}_hasIconOrAvatar(){return!!(this._avatars.length||this._icons.length)}_initInteractiveListItem(){this._hostElement.classList.add("mat-mdc-list-item-interactive"),this._rippleRenderer=new EB(this,this._ngZone,this._hostElement,this._platform,f(Zt)),this._rippleRenderer.setupTriggerEvents(this._hostElement)}_monitorProjectedLinesAndTitle(){this._ngZone.runOutsideAngular(()=>{this._subscriptions.add(Hn(this._lines.changes,this._titles.changes).subscribe(()=>this._updateItemLines(!1)))})}_updateItemLines(A){if(!this._lines||!this._titles||!this._unscopedContent)return;A&&this._checkDomForUnscopedTextContent();let i=this._explicitLines??this._inferLinesFromContent(),n=this._unscopedContent.nativeElement;if(this._hostElement.classList.toggle("mat-mdc-list-item-single-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-one-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-two-lines",i===2),this._hostElement.classList.toggle("mdc-list-item--with-three-lines",i===3),this._hasUnscopedTextContent){let o=this._titles.length===0&&i===1;n.classList.toggle("mdc-list-item__primary-text",o),n.classList.toggle("mdc-list-item__secondary-text",!o)}else n.classList.remove("mdc-list-item__primary-text"),n.classList.remove("mdc-list-item__secondary-text")}_inferLinesFromContent(){let A=this._titles.length+this._lines.length;return this._hasUnscopedTextContent&&(A+=1),A}_checkDomForUnscopedTextContent(){this._hasUnscopedTextContent=Array.from(this._unscopedContent.nativeElement.childNodes).filter(A=>A.nodeType!==A.COMMENT_NODE).some(A=>!!(A.textContent&&A.textContent.trim()))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,contentQueries:function(i,n,o){if(i&1&&(gi(o,czA,4),gi(o,gzA,4)),i&2){let r;de(r=Be())&&(n._avatars=r),de(r=Be())&&(n._icons=r)}},hostVars:4,hostBindings:function(i,n){i&2&&(Ke("aria-disabled",n.disabled)("disabled",n._isButtonElement&&n.disabled||null),he("mdc-list-item--disabled",n.disabled))},inputs:{lines:"lines",disableRipple:"disableRipple",disabled:"disabled"}})}return t})();var jcA=(()=>{class t extends tU{static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-list"]],hostAttrs:[1,"mat-mdc-list","mat-mdc-list-base","mdc-list"],exportAs:["matList"],features:[ut([{provide:tU,useExisting:t}]),lt],ngContentSelectors:$OA,decls:1,vars:0,template:function(i,n){i&1&&($t(),Ue(0))},styles:[AzA],encapsulation:2,changeDetection:0})}return t})(),qcA=(()=>{class t extends IzA{_lines;_titles;_meta;_unscopedContent;_itemText;get activated(){return this._activated}set activated(A){this._activated=Ar(A)}_activated=!1;_getAriaCurrent(){return this._hostElement.nodeName==="A"&&this._activated?"page":null}_hasBothLeadingAndTrailing(){return this._meta.length!==0&&(this._avatars.length!==0||this._icons.length!==0)}static \u0275fac=(()=>{let A;return function(n){return(A||(A=ci(t)))(n||t)}})();static \u0275cmp=jA({type:t,selectors:[["mat-list-item"],["a","mat-list-item",""],["button","mat-list-item",""]],contentQueries:function(i,n,o){if(i&1&&(gi(o,szA,5),gi(o,rzA,5),gi(o,azA,5)),i&2){let r;de(r=Be())&&(n._lines=r),de(r=Be())&&(n._titles=r),de(r=Be())&&(n._meta=r)}},viewQuery:function(i,n){if(i&1&&(st(ezA,5),st(tzA,5)),i&2){let o;de(o=Be())&&(n._unscopedContent=o.first),de(o=Be())&&(n._itemText=o.first)}},hostAttrs:[1,"mat-mdc-list-item","mdc-list-item"],hostVars:13,hostBindings:function(i,n){i&2&&(Ke("aria-current",n._getAriaCurrent()),he("mdc-list-item--activated",n.activated)("mdc-list-item--with-leading-avatar",n._avatars.length!==0)("mdc-list-item--with-leading-icon",n._icons.length!==0)("mdc-list-item--with-trailing-meta",n._meta.length!==0)("mat-mdc-list-item-both-leading-and-trailing",n._hasBothLeadingAndTrailing())("_mat-animation-noopable",n._noopAnimations))},inputs:{activated:"activated"},exportAs:["matListItem"],features:[lt],ngContentSelectors:nzA,decls:10,vars:0,consts:[["unscopedContent",""],[1,"mdc-list-item__content"],[1,"mat-mdc-list-item-unscoped-content",3,"cdkObserveContent"],[1,"mat-focus-indicator"]],template:function(i,n){if(i&1){let o=me();$t(izA),Ue(0),S(1,"span",1),Ue(2,1),Ue(3,2),S(4,"span",2,0),mA("cdkObserveContent",function(){return QA(o),uA(n._updateItemLines(!0))}),Ue(6,3),N()(),Ue(7,4),Ue(8,5),TA(9,"div",3)}},dependencies:[e6],encapsulation:2,changeDetection:0})}return t})();var R7=class t{transform(e){if(e)return e.find(A=>A.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in A.attributes)?.attributes["gcp.vertex.agent.invocation_id"]}static \u0275fac=function(A){return new(A||t)};static \u0275pipe=$d({name:"invocId",type:t,pure:!0})};function CzA(t,e){t&1&&(S(0,"p"),AA(1,"Conversations"),N())}function dzA(t,e){t&1&&(S(0,"p"),AA(1,"Trace"),N())}function BzA(t,e){t&1&&(S(0,"mat-button-toggle",7),AA(1,"Trace"),N())}function EzA(t,e){if(t&1){let A=me();S(0,"mat-button-toggle-group",5),Xa("ngModelChange",function(n){QA(A);let o=Y(2);return Wa(o.view,n)||(o.view=n),uA(n)}),S(1,"mat-button-toggle",6),AA(2,"Events"),N(),NA(3,BzA,2,0,"mat-button-toggle",7),eo(4,"async"),N()}if(t&2){let A=Y(2);Za("ngModel",A.view),_(3),_A(Yo(4,2,A.isTraceEnabledObs)?3:-1)}}function QzA(t,e){if(t&1){let A=me();S(0,"mat-list-item",8),mA("click",function(){let n=QA(A).$implicit,o=Y(3);return uA(o.selectEvent(n.key))}),S(1,"span",9),AA(2),N(),S(3,"span",10),AA(4),N()()}if(t&2){let A=e.$implicit,i=e.$index;_(2),tt(i),_(2),tt(A.value.title)}}function uzA(t,e){if(t&1&&(S(0,"mat-list",4),dn(1,QzA,5,2,"mat-list-item",null,zn),eo(3,"keyvalue"),N()),t&2){let A=Y(2);_(),Bn(_u(3,0,A.eventsMap(),A.mapOrderPreservingSort))}}function hzA(t,e){if(t&1){let A=me();S(0,"mat-list-item",8),mA("click",function(){let n=QA(A).$implicit,o=Y(3);return uA(o.openDialog(n.key))}),S(1,"span",9),AA(2),N(),S(3,"span"),AA(4),eo(5,"invocId"),N()()}if(t&2){let A=e.$implicit,i=e.$index;_(2),tt(i),_(2),It("Invocation ",Yo(5,2,A.value),"")}}function fzA(t,e){if(t&1&&(S(0,"mat-list",4),dn(1,hzA,6,4,"mat-list-item",null,zn),eo(3,"keyvalue"),N()),t&2){let A=Y(2);_(),Bn(_u(3,0,A.spansByTraceId(),A.mapOrderPreservingSort))}}function mzA(t,e){if(t&1&&(S(0,"div",1)(1,"div",2),NA(2,CzA,2,0,"p")(3,dzA,2,0,"p")(4,EzA,5,4,"mat-button-toggle-group",3),N(),NA(5,uzA,4,3,"mat-list",4)(6,fzA,4,3,"mat-list",4),N()),t&2){let A=Y();_(2),_A(A.isTraceView()?-1:2),_(),_A(A.isTraceView()?3:-1),_(),_A(A.traceData().length>0?4:-1),_(),_A(A.isTraceView()?-1:5),_(),_A(A.isTraceView()?6:-1)}}function pzA(t,e){t&1&&(S(0,"div")(1,"p"),AA(2,"No conversations"),N()())}var TQ=class t{eventsMap=bs(new Map);traceData=bs([]);selectedEvent=new YA;dialog=f(Fc);featureFlagService=f(Gc);view=Ao("events");isTraceView=Mc(()=>this.view()==="trace");spansByTraceId=Mc(()=>!this.traceData()||this.traceData().length==0?new Map:this.traceData().reduce((e,A)=>{let i=A.trace_id,n=e.get(i);return n?(A.invoc_id=A.attributes?.["gcp.vertex.agent.invocation_id"],n.push(A),n.sort((o,r)=>o.start_time-r.start_time)):e.set(i,[A]),e},new Map));showJson=Array(this.eventsMap().size).fill(!1);isTraceEnabledObs=this.featureFlagService.isTraceEnabled();toggleJson(e){this.showJson[e]=!this.showJson[e]}selectEvent(e){this.selectedEvent.emit(e)}mapOrderPreservingSort=(e,A)=>0;findInvocId(e){return e.find(A=>A.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in A.attributes)?.attributes["gcp.vertex.agent.invocation_id"]}openDialog(e){let A=this.spansByTraceId().get(e);if(!A)return;let i=this.dialog.open(k7,{width:"auto",maxWidth:"90vw",data:{spans:A,invocId:this.findInvocId(A)}})}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-event-tab"]],inputs:{eventsMap:[1,"eventsMap"],traceData:[1,"traceData"]},outputs:{selectedEvent:"selectedEvent"},decls:3,vars:2,consts:[[1,"events-wrapper"],[1,"events-container"],[1,"event-header"],["name","fontStyle","aria-label","Font Style",2,"scale","0.8",3,"ngModel"],[1,"event-list"],["name","fontStyle","aria-label","Font Style",2,"scale","0.8",3,"ngModelChange","ngModel"],["value","events"],["value","trace"],[3,"click"],[1,"event-index"],[1,"event-title"]],template:function(A,i){A&1&&(S(0,"div",0),NA(1,mzA,7,5,"div",1)(2,pzA,3,0,"div"),N()),A&2&&(_(),_A(i.eventsMap().size>0?1:-1),_(),_A(i.eventsMap().size==0?2:-1))},dependencies:[AU,Mr,Ss,tc,eU,jcA,qcA,Ou,R7,Qg],styles:[".events-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;color:var(--event-tab-events-wrapper-color);font-size:14px;font-weight:700}.event-index[_ngcontent-%COMP%]{color:var(--event-tab-event-index-color);font-family:Roboto;font-size:14px;font-style:normal;font-weight:400;margin-right:10px}.event-title[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}.spacer[_ngcontent-%COMP%]{flex:1 1 auto}.events-container[_ngcontent-%COMP%]{margin-top:20px}.event-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;margin-top:20px}.function-event-button[_ngcontent-%COMP%]{margin-top:11px}.event-list[_ngcontent-%COMP%]{--mat-list-active-indicator-color: var(--event-tab-event-list-active-indicator-color)}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-container-color: var(--event-tab-event-list-list-item-container-color)}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-label-text-size: 14px}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-label-text-weight: 400}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-one-line-container-height: 52px}[_nghost-%COMP%] .mdc-list-item{border:1px solid var(--event-tab-mdc-list-item-border-color);cursor:pointer}[_nghost-%COMP%] .mdc-list-item:hover{background-color:var(--event-tab-mdc-list-item-hover-background-color)}.event-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"]})};function DzA(t,e){if(t&1){let A=me();S(0,"div",3),mA("click",function(){let n=QA(A).$implicit,o=Y();return uA(o.getSession(n.id))}),S(1,"div",4)(2,"div",5),AA(3),N(),S(4,"div",6),AA(5),N()()()}if(t&2){let A=e.$implicit,i=Y();yA("ngClass",A.id===i.sessionId?"session-item current":"session-item"),_(3),It(" ",A.id," "),_(2),tt(i.getDate(A))}}var HQ=class t{userId="";appName="";sessionId="";sessionSelected=new YA;sessionReloaded=new YA;sessionList=[];refreshSessionsSubject=new qA;changeDetectorRef=f(Et);sessionService=f(A1);constructor(){this.refreshSessionsSubject.pipe($n(()=>this.sessionService.listSessions(this.userId,this.appName))).subscribe(e=>{e=e.sort((A,i)=>Number(i.lastUpdateTime)-Number(A.lastUpdateTime)),this.sessionList=e,this.changeDetectorRef.detectChanges()})}ngOnInit(){setTimeout(()=>{this.refreshSessionsSubject.next()},500)}getSession(e){this.sessionService.getSession(this.userId,this.appName,e).subscribe(A=>{let i=this.fromApiResultToSession(A);this.sessionSelected.emit(i)})}getDate(e){let A=e.lastUpdateTime;return new Date(A*1e3).toLocaleString()}fromApiResultToSession(e){return{id:e?.id??"",appName:e?.appName??"",userId:e?.userId??"",state:e?.state??[],events:e?.events??[]}}reloadSession(e){this.sessionService.getSession(this.userId,this.appName,e).subscribe(A=>{let i=this.fromApiResultToSession(A);this.sessionReloaded.emit(i)})}refreshSession(e){if(this.refreshSessionsSubject.next(),!(this.sessionList.length<=1)){let A=this.sessionList.findIndex(i=>i.id==e);return A==this.sessionList.length-1&&(A=-1),this.sessionList[A+1]}}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-session-tab"]],inputs:{userId:"userId",appName:"appName",sessionId:"sessionId"},outputs:{sessionSelected:"sessionSelected",sessionReloaded:"sessionReloaded"},decls:4,vars:0,consts:[[1,"session-wrapper"],[1,"session-tab-container",2,"margin-top","16px"],[3,"ngClass"],[3,"click","ngClass"],[1,"session-info"],[1,"session-id"],[1,"session-date"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"div",1),dn(2,DzA,6,3,"div",2,zn),N()()),A&2&&(_(2),Bn(i.sessionList))},dependencies:[Vs],styles:[".session-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;color:var(--session-tab-session-wrapper-color);font-size:14px;font-weight:700}.session-item[_ngcontent-%COMP%]{display:flex;justify-content:space-between;border:none;background-color:var(--session-tab-session-item-background-color);border-radius:8px;margin-bottom:4px;cursor:pointer}.session-item[_ngcontent-%COMP%]:hover{background-color:var(--session-tab-session-item-hover-background-color)}.session-item.current[_ngcontent-%COMP%]{background-color:var(--session-tab-session-item-current-background-color)}.session-id[_ngcontent-%COMP%]{color:var(--session-tab-session-id-color);font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.session-date[_ngcontent-%COMP%]{color:var(--session-tab-session-date-color);font-family:Roboto;font-size:12px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.3px}.session-info[_ngcontent-%COMP%]{padding:11px}"]})};var L7=class t{sessionState={};constructor(){}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-state-tab"]],inputs:{sessionState:"sessionState"},decls:3,vars:1,consts:[[1,"state-wrapper"],[3,"json"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"div"),TA(2,"ngx-json-viewer",1),N()()),A&2&&(_(2),yA("json",i.sessionState))},dependencies:[Sl,X2],styles:[".state-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;margin-top:16px}"]})};var VcA=new eA("CdkAccordion");var ZcA=(()=>{class t{accordion=f(VcA,{optional:!0,skipSelf:!0});_changeDetectorRef=f(Et);_expansionDispatcher=f(b8);_openCloseAllSubscription=Kt.EMPTY;closed=new YA;opened=new YA;destroyed=new YA;expandedChange=new YA;id=f(an).getId("cdk-accordion-child-");get expanded(){return this._expanded}set expanded(A){if(this._expanded!==A){if(this._expanded=A,this.expandedChange.emit(A),A){this.opened.emit();let i=this.accordion?this.accordion.id:this.id;this._expansionDispatcher.notify(this.id,i)}else this.closed.emit();this._changeDetectorRef.markForCheck()}}_expanded=!1;disabled=!1;_removeUniqueSelectionListener=()=>{};constructor(){}ngOnInit(){this._removeUniqueSelectionListener=this._expansionDispatcher.listen((A,i)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===i&&this.id!==A&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(A=>{this.disabled||(this.expanded=A)})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[2,"expanded","expanded",ge],disabled:[2,"disabled","disabled",ge]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[ut([{provide:VcA,useValue:void 0}])]})}return t})();var wzA=["body"],yzA=["bodyWrapper"],vzA=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],MzA=["mat-expansion-panel-header","*","mat-action-row"];function bzA(t,e){}var kzA=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],SzA=["mat-panel-title","mat-panel-description","*"];function RzA(t,e){t&1&&(S(0,"span",1),ur(),S(1,"svg",2),TA(2,"path",3),N()())}var WcA=new eA("MAT_ACCORDION"),XcA=new eA("MAT_EXPANSION_PANEL"),LzA=(()=>{class t{_template=f(mn);_expansionPanel=f(XcA,{optional:!0});constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["ng-template","matExpansionPanelContent",""]]})}return t})(),$cA=new eA("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS"),iU=(()=>{class t extends ZcA{_viewContainerRef=f(Sn);_animationsDisabled=f(_i,{optional:!0})==="NoopAnimations";_document=f(at);_ngZone=f(ye);_elementRef=f(se);_renderer=f(qi);_cleanupTransitionEnd;get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(A){this._hideToggle=A}_hideToggle=!1;get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(A){this._togglePosition=A}_togglePosition;afterExpand=new YA;afterCollapse=new YA;_inputChanges=new qA;accordion=f(WcA,{optional:!0,skipSelf:!0});_lazyContent;_body;_bodyWrapper;_portal;_headerId=f(an).getId("mat-expansion-panel-header-");constructor(){super();let A=f($cA,{optional:!0});this._expansionDispatcher=f(b8),A&&(this.hideToggle=A.hideToggle)}_hasSpacing(){return this.accordion?this.expanded&&this.accordion.displayMode==="default":!1}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(On(null),Nt(()=>this.expanded&&!this._portal),Xn(1)).subscribe(()=>{this._portal=new Rs(this._lazyContent._template,this._viewContainerRef)}),this._setupAnimationEvents()}ngOnChanges(A){this._inputChanges.next(A)}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTransitionEnd?.(),this._inputChanges.complete()}_containsFocus(){if(this._body){let A=this._document.activeElement,i=this._body.nativeElement;return A===i||i.contains(A)}return!1}_transitionEndListener=({target:A,propertyName:i})=>{A===this._bodyWrapper?.nativeElement&&i==="grid-template-rows"&&this._ngZone.run(()=>{this.expanded?this.afterExpand.emit():this.afterCollapse.emit()})};_setupAnimationEvents(){this._ngZone.runOutsideAngular(()=>{this._animationsDisabled?(this.opened.subscribe(()=>this._ngZone.run(()=>this.afterExpand.emit())),this.closed.subscribe(()=>this._ngZone.run(()=>this.afterCollapse.emit()))):setTimeout(()=>{let A=this._elementRef.nativeElement;this._cleanupTransitionEnd=this._renderer.listen(A,"transitionend",this._transitionEndListener),A.classList.add("mat-expansion-panel-animations-enabled")},200)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-expansion-panel"]],contentQueries:function(i,n,o){if(i&1&&gi(o,LzA,5),i&2){let r;de(r=Be())&&(n._lazyContent=r.first)}},viewQuery:function(i,n){if(i&1&&(st(wzA,5),st(yzA,5)),i&2){let o;de(o=Be())&&(n._body=o.first),de(o=Be())&&(n._bodyWrapper=o.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:4,hostBindings:function(i,n){i&2&&he("mat-expanded",n.expanded)("mat-expansion-panel-spacing",n._hasSpacing())},inputs:{hideToggle:[2,"hideToggle","hideToggle",ge],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[ut([{provide:WcA,useValue:void 0},{provide:XcA,useExisting:t}]),lt,Xt],ngContentSelectors:MzA,decls:9,vars:4,consts:[["bodyWrapper",""],["body",""],[1,"mat-expansion-panel-content-wrapper"],["role","region",1,"mat-expansion-panel-content",3,"id"],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(i,n){i&1&&($t(vzA),Ue(0),S(1,"div",2,0)(3,"div",3,1)(5,"div",4),Ue(6,1),NA(7,bzA,0,0,"ng-template",5),N(),Ue(8,2),N()()),i&2&&(_(),Ke("inert",n.expanded?null:""),_(2),yA("id",n.id),Ke("aria-labelledby",n._headerId),_(4),yA("cdkPortalOutlet",n._portal))},dependencies:[wa],styles:[".mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden;position:relative;background:var(--mat-expansion-container-background-color, var(--mat-sys-surface));color:var(--mat-expansion-container-text-color, var(--mat-sys-on-surface));border-radius:var(--mat-expansion-container-shape, 12px)}.mat-expansion-panel.mat-expansion-panel-animations-enabled{transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape, 12px);border-top-left-radius:var(--mat-expansion-container-shape, 12px)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape, 12px);border-bottom-left-radius:var(--mat-expansion-container-shape, 12px)}@media(forced-colors: active){.mat-expansion-panel{outline:solid 1px}}.mat-expansion-panel-content-wrapper{display:grid;grid-template-rows:0fr;grid-template-columns:100%}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content-wrapper{transition:grid-template-rows 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{grid-template-rows:1fr}@supports not (grid-template-rows: 0fr){.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;min-height:0;visibility:hidden;font-family:var(--mat-expansion-container-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-expansion-container-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-expansion-container-text-weight, var(--mat-sys-body-large-weight));line-height:var(--mat-expansion-container-text-line-height, var(--mat-sys-body-large-line-height));letter-spacing:var(--mat-expansion-container-text-tracking, var(--mat-sys-body-large-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content{transition:visibility 190ms linear}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper>.mat-expansion-panel-content{visibility:visible}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color, var(--mat-sys-outline))}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}return t})();var AgA=(()=>{class t{panel=f(iU,{host:!0});_element=f(se);_focusMonitor=f(Jr);_changeDetectorRef=f(Et);_parentChangeSubscription=Kt.EMPTY;constructor(){f(Pn).load(Yr);let A=this.panel,i=f($cA,{optional:!0}),n=f(new Wr("tabindex"),{optional:!0}),o=A.accordion?A.accordion._stateChanges.pipe(Nt(r=>!!(r.hideToggle||r.togglePosition))):lr;this.tabIndex=parseInt(n||"")||0,this._parentChangeSubscription=Hn(A.opened,A.closed,o,A._inputChanges.pipe(Nt(r=>!!(r.hideToggle||r.disabled||r.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),A.closed.pipe(Nt(()=>A._containsFocus())).subscribe(()=>this._focusMonitor.focusVia(this._element,"program")),i&&(this.expandedHeight=i.expandedHeight,this.collapsedHeight=i.collapsedHeight)}expandedHeight;collapsedHeight;tabIndex=0;get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){let A=this._isExpanded();return A&&this.expandedHeight?this.expandedHeight:!A&&this.collapsedHeight?this.collapsedHeight:null}_keydown(A){switch(A.keyCode){case 32:case 13:sr(A)||(A.preventDefault(),this._toggle());break;default:this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(A);return}}focus(A,i){A?this._focusMonitor.focusVia(this._element,A,i):this._element.nativeElement.focus(i)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(A=>{A&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=jA({type:t,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:13,hostBindings:function(i,n){i&1&&mA("click",function(){return n._toggle()})("keydown",function(r){return n._keydown(r)}),i&2&&(Ke("id",n.panel._headerId)("tabindex",n.disabled?-1:n.tabIndex)("aria-controls",n._getPanelId())("aria-expanded",n._isExpanded())("aria-disabled",n.panel.disabled),mo("height",n._getHeaderHeight()),he("mat-expanded",n._isExpanded())("mat-expansion-toggle-indicator-after",n._getTogglePosition()==="after")("mat-expansion-toggle-indicator-before",n._getTogglePosition()==="before"))},inputs:{expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight",tabIndex:[2,"tabIndex","tabIndex",A=>A==null?0:en(A)]},ngContentSelectors:SzA,decls:5,vars:3,consts:[[1,"mat-content"],[1,"mat-expansion-indicator"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 -960 960 960","aria-hidden","true","focusable","false"],["d","M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z"]],template:function(i,n){i&1&&($t(kzA),S(0,"span",0),Ue(1),Ue(2,1),Ue(3,2),N(),NA(4,RzA,3,0,"span",1)),i&2&&(he("mat-content-hide-toggle",!n._showToggle()),_(4),_A(n._showToggle()?4:-1))},styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;height:var(--mat-expansion-header-collapsed-state-height, 48px);font-family:var(--mat-expansion-header-text-font, var(--mat-sys-title-medium-font));font-size:var(--mat-expansion-header-text-size, var(--mat-sys-title-medium-size));font-weight:var(--mat-expansion-header-text-weight, var(--mat-sys-title-medium-weight));line-height:var(--mat-expansion-header-text-line-height, var(--mat-sys-title-medium-line-height));letter-spacing:var(--mat-expansion-header-text-tracking, var(--mat-sys-title-medium-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-header{transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header::before{border-radius:inherit}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height, 64px)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color, var(--mat-sys-surface))}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color, var(--mat-sys-on-surface))}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color, var(--mat-sys-on-surface-variant))}.mat-expansion-panel-animations-enabled .mat-expansion-indicator{transition:transform 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header.mat-expanded .mat-expansion-indicator{transform:rotate(180deg)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-legacy-header-indicator-display, none)}.mat-expansion-indicator svg{width:24px;height:24px;margin:0 -8px;vertical-align:middle;fill:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-header-indicator-display, inline-block)}@media(forced-colors: active){.mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}}'],encapsulation:2,changeDetection:0})}return t})();var egA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=WA({type:t,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]})}return t})();function xzA(t,e){t&1&&TA(0,"div",8)}function NzA(t,e){if(t&1&&(S(0,"span",14),AA(1),N()),t&2){let A=Y().$implicit,i=Y();mo("left",i.getRelativeStart(A.span)+5,"%"),_(),It("",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms")}}function FzA(t,e){if(t&1){let A=me();S(0,"div",5),mA("click",function(){let n=QA(A).$implicit,o=Y();return uA(o.selectRow(n))})("mouseenter",function(){let n=QA(A).$implicit,o=Y();return uA(o.onHover(n))})("mouseleave",function(){QA(A);let n=Y();return uA(n.onHoverOut())}),S(1,"div",6)(2,"div",7),dn(3,xzA,1,0,"div",8,AB),N(),S(5,"span",9),AA(6),N(),S(7,"div",10),AA(8),N()(),S(9,"div",11)(10,"div",12),AA(11),N(),NA(12,NzA,2,3,"span",13),N()()}if(t&2){let A=e.$implicit,i=Y();he("selected",i.rowSelected(A)),_(3),Bn(i.getArray(A.level)),_(2),he("is-event-row",i.isEventRow(A)),_(),It(" ",i.getSpanIcon(A.span.name)," "),_(),mo("width",400-A.level*20,"px"),he("is-event-row",i.isEventRow(A)),_(),It(" ",A.span.name," "),_(2),mo("left",i.getRelativeStart(A.span),"%")("width",i.getRelativeWidth(A.span),"%"),_(),It(" ",(i.toMs(A.span.end_time)-i.toMs(A.span.start_time)).toFixed(2),"ms "),_(),_A(i.getRelativeWidth(A.span)<10?12:-1)}}var x7=class t{spans=[];invocationId="";tree=[];eventData;baseStartTimeMs=0;totalDurationMs=1;flatTree=[];traceLabelIconMap=new Map([["Invocation","start"],["agent_run","directions_run"],["invoke_agent","directions_run"],["tool","build"],["call_llm","chat"]]);selectedRow=void 0;traceService=f(e1);constructor(){}ngOnInit(){this.tree=this.buildSpanTree(this.spans),this.flatTree=this.flattenTree(this.tree);let e=this.getGlobalTimes(this.spans);this.baseStartTimeMs=e.start,this.totalDurationMs=e.duration,this.traceService.selectedTraceRow$.subscribe(A=>this.selectedRow=A),this.traceService.eventData$.subscribe(A=>this.eventData=A)}buildSpanTree(e){let A=e.map(o=>sA({},o)),i=new Map,n=[];return A.forEach(o=>i.set(o.span_id,o)),A.forEach(o=>{if(o.parent_span_id&&i.has(o.parent_span_id)){let r=i.get(o.parent_span_id);r.children=r.children||[],r.children.push(o)}else n.push(o)}),n}getGlobalTimes(e){let A=Math.min(...e.map(n=>this.toMs(n.start_time))),i=Math.max(...e.map(n=>this.toMs(n.end_time)));return{start:A,duration:i-A}}toMs(e){return e/1e6}getRelativeStart(e){return(this.toMs(e.start_time)-this.baseStartTimeMs)/this.totalDurationMs*100}getRelativeWidth(e){return(this.toMs(e.end_time)-this.toMs(e.start_time))/this.totalDurationMs*100}flattenTree(e,A=0){return e.flatMap(n=>[{span:n,level:A},...n.children?this.flattenTree(n.children,A+1):[]])}getSpanIcon(e){for(let[A,i]of this.traceLabelIconMap.entries())if(e.startsWith(A))return i;return"start"}getArray(e){return Array.from({length:e})}selectRow(e){if(this.selectedRow&&this.selectedRow.span_id==e.span.span_id){this.traceService.selectedRow(void 0),this.traceService.setHoveredMessages(void 0,this.invocationId);return}this.traceService.selectedRow(e.span),this.traceService.setHoveredMessages(e.span,this.invocationId)}rowSelected(e){return this.selectedRow==e.span}isEventRow(e){if(!e.span.attributes)return!1;let A=e?.span.attributes["gcp.vertex.agent.event_id"];return!!(A&&this.eventData&&this.eventData.has(A))}onHover(e){this.traceService.setHoveredMessages(e.span,this.invocationId)}onHoverOut(){this.traceService.setHoveredMessages(void 0,this.invocationId),this.selectedRow&&this.traceService.setHoveredMessages(this.selectedRow,this.invocationId)}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-trace-tree"]],inputs:{spans:"spans",invocationId:"invocationId"},decls:8,vars:1,consts:[[2,"margin-top","15px"],[1,"invocation-id-container"],[1,"invocation-id"],[1,"trace-container"],[1,"trace-row",3,"selected"],[1,"trace-row",3,"click","mouseenter","mouseleave"],[1,"trace-row-left"],[1,"trace-indent"],[1,"indent-connector"],[1,"material-symbols-outlined",2,"margin-right","8px"],[1,"trace-label"],[1,"trace-bar-container"],[1,"trace-bar"],[1,"short-trace-bar-duration",3,"left"],[1,"short-trace-bar-duration"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"div",1),AA(2,"Invocation ID: "),S(3,"div",2),AA(4),N()(),S(5,"div",3),dn(6,FzA,13,16,"div",4,zn),N()()),A&2&&(_(4),tt(i.invocationId),_(2),Bn(i.flatTree))},styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-label[_ngcontent-%COMP%]{width:400px;color:var(--trace-tree-trace-label-color);font-family:Google Sans Mono,monospace;font-size:13px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.trace-bar-container[_ngcontent-%COMP%]{width:100%;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:var(--trace-tree-trace-bar-background-color);border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:var(--trace-tree-trace-bar-color);font-family:Google Sans}.short-trace-bar-duration[_ngcontent-%COMP%]{position:absolute;color:var(--trace-tree-short-trace-bar-duration-color)}.trace-duration[_ngcontent-%COMP%]{color:var(--trace-tree-trace-duration-color);font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px;align-items:center;cursor:pointer}.trace-row[_ngcontent-%COMP%]:hover{background-color:var(--trace-tree-trace-row-hover-background-color)}.trace-row.selected[_ngcontent-%COMP%]{background-color:var(--trace-tree-trace-row-selected-background-color)}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:var(--trace-tree-vertical-line-background-color)}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:var(--trace-tree-horizontal-line-background-color)}.trace-row-left[_ngcontent-%COMP%]{display:flex;width:50%}.invocation-id-container[_ngcontent-%COMP%]{color:var(--trace-tree-invocation-id-container-color);font-size:14px;font-style:normal;font-weight:700;line-height:20px;letter-spacing:0px;margin-bottom:5px}.invocation-id[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}.trace-row-left[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .trace-row-left[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{color:var(--trace-tree-trace-row-left-span-div-color)}.trace-row-left[_ngcontent-%COMP%] .is-event-row[_ngcontent-%COMP%]{color:var(--trace-tree-trace-row-left-is-event-row-color)}"]})};function _zA(t,e){if(t&1&&(S(0,"div",3)(1,"mat-expansion-panel")(2,"mat-expansion-panel-header")(3,"mat-panel-title"),AA(4),N()(),TA(5,"app-trace-tree",4),N()()),t&2){let A=e.$implicit,i=Y();_(4),It(" ",i.invocToUserMsg.get(A.key)," "),_(),yA("spans",A.value)("invocationId",i.findInvocIdFromTraceId(A.key))}}var N7=class t{traceData=[];invocTraces=new Map;invocToUserMsg=new Map;constructor(){}ngOnInit(){}ngOnChanges(e){"traceData"in e&&this.rebuildTrace()}rebuildTrace(){this.invocTraces=this.traceData.reduce((e,A)=>{let i=A.trace_id,n=e.get(i);return n?(n.push(A),n.sort((o,r)=>o.start_time-r.start_time)):e.set(i,[A]),e},new Map);for(let[e,A]of this.invocTraces)this.invocToUserMsg.set(e,this.findUserMsgFromInvocGroup(A))}getArray(e){return Array.from({length:e})}findUserMsgFromInvocGroup(e){let A=e?.find(o=>o.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in o.attributes);return A?JSON.parse(A.attributes["gcp.vertex.agent.llm_request"]).contents.filter(o=>o.role=="user").at(-1)?.parts[0]?.text??"[attachment]":"[no invocation id found]"}findInvocIdFromTraceId(e){return this.invocTraces.get(e)?.find(i=>i.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in i.attributes).attributes["gcp.vertex.agent.invocation_id"]}mapOrderPreservingSort=(e,A)=>0;static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-trace-tab"]],inputs:{traceData:"traceData"},features:[Xt],decls:7,vars:3,consts:[[2,"padding-left","25px","padding-right","25px"],["mat-dialog-title","",1,"trace-title"],[1,"trace-list-wrapper"],[1,"trace-item"],[3,"spans","invocationId"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"h2",1),AA(2,"Invocations"),N(),S(3,"div",2),dn(4,_zA,6,3,"div",3,zn),eo(6,"keyvalue"),N()()),A&2&&(_(4),Bn(_u(6,0,i.invocTraces,i.mapOrderPreservingSort)))},dependencies:[Ls,iU,AgA,egA,x7,Ou],styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-title[_ngcontent-%COMP%]{color:var(--trace-tab-trace-title-color);font-size:14px;font-style:normal;font-weight:700;line-height:20px;letter-spacing:0px}.trace-label[_ngcontent-%COMP%]{width:400px;color:var(--trace-tab-trace-label-color);text-overflow:ellipsis;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px}.trace-bar-container[_ngcontent-%COMP%]{width:50vw;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:var(--trace-tab-trace-bar-background-color);border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:var(--trace-tab-trace-bar-color);font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:var(--trace-tab-trace-duration-color);font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:var(--trace-tab-vertical-line-background-color)}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:var(--trace-tab-horizontal-line-background-color)}.trace-item[_ngcontent-%COMP%]{margin-top:5px}.trace-item[_ngcontent-%COMP%]{--mat-expansion-container-background-color: var(--trace-tab-trace-item-container-background-color)}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-focus-state-layer-color: var(--trace-tab-trace-item-header-focus-state-layer-color)}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-description-color: var(--trace-tab-trace-item-header-description-color)}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-text-size: 15}.trace-item[_ngcontent-%COMP%] .mat-expansion-panel-header.mat-expanded:focus{background-color:var(--trace-tab-mat-expansion-panel-header-focus-background-color)}.trace-item[_ngcontent-%COMP%] .mat-expansion-panel-header.mat-expanded{background-color:var(--trace-tab-mat-expansion-panel-header-background-color)}.trace-item[_ngcontent-%COMP%] .mat-expansion-panel-header.mat-expanded:hover{background-color:var(--trace-tab-mat-expansion-panel-header-hover-background-color)} .mat-expansion-panel-header-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden} .mat-expansion-panel-header-description{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}"]})};var GzA={agentDevelopmentKitLabel:"Agent Development Kit",collapsePanelTooltip:"Collapse panel",traceTabLabel:"Trace",eventsTabLabel:"Events",stateTabLabel:"State",artifactsTabLabel:"Artifacts",sessionsTabLabel:"Sessions",evalTabLabel:"Eval",selectEventAriaLabel:"Select event",eventDetailsTabLabel:"Event",requestDetailsTabLabel:"Request",responseDetailsTabLabel:"Response"},tgA=new eA("Side Panel Messages",{factory:()=>GzA});function KzA(t,e){t&1&&rr(0)}function UzA(t,e){if(t&1&&(S(0,"div"),NA(1,KzA,1,0,"ng-container",9),S(2,"div",10),AA(3,"Powered by Agent Development Kit"),N()()),t&2){let A=Y(2);_(),yA("ngComponentOutlet",A.logoComponent)}}function JzA(t,e){if(t&1&&(TA(0,"img",11),AA(1)),t&2){let A=Y(2);_(),It(" ",A.i18n.agentDevelopmentKitLabel," ")}}function YzA(t,e){if(t&1&&(S(0,"mat-option",13),AA(1),N()),t&2){let A=e.$implicit;yA("value",A),_(),tt(A)}}function TzA(t,e){t&1&&dn(0,YzA,2,2,"mat-option",13,zn),t&2&&Bn(e)}function HzA(t,e){if(t&1&&(S(0,"mat-option",13),AA(1),N()),t&2){let A=Y(3);yA("value",A.selectedAppControl.value),_(),tt(A.selectedAppControl.value)}}function OzA(t,e){if(t&1){let A=me();S(0,"div",8)(1,"mat-select",12),mA("selectionChange",function(n){QA(A);let o=Y(2);return uA(o.appSelectionChange.emit(n))}),NA(2,TzA,2,0),eo(3,"async"),NA(4,HzA,2,2,"mat-option",13),N()()}if(t&2){let A,i=Y(2);_(),yA("placeholder",i.isLoadingApps()?"Loading...":"Select an agent")("formControl",i.selectedAppControl),_(),_A((A=Yo(3,4,i.apps$))?2:-1,A),_(2),_A(i.selectedAppControl.value&&i.isLoadingApps()?4:-1)}}function zzA(t,e){if(t&1){let A=me();S(0,"div",3)(1,"div",4)(2,"div",5)(3,"div",6),NA(4,UzA,4,1,"div")(5,JzA,2,1),N(),S(6,"span",7),mA("click",function(){QA(A);let n=Y();return uA(n.closePanel.emit())}),AA(7,"left_panel_close"),N()()()(),NA(8,OzA,5,6,"div",8),eo(9,"async")}if(t&2){let A=Y();_(4),_A(A.logoComponent?4:5),_(2),L2("matTooltip",A.i18n.collapsePanelTooltip),_(2),_A(Yo(9,3,A.isApplicationSelectorEnabledObs)?8:-1)}}function PzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(3);_(),tt(A.i18n.traceTabLabel)}}function jzA(t,e){if(t&1&&(S(0,"mat-tab",15),NA(1,PzA,2,1,"ng-template",16),TA(2,"app-trace-tab",20),N()),t&2){let A=Y(2);_(2),yA("traceData",A.traceData)}}function qzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(2);_(),tt(A.i18n.eventsTabLabel)}}function VzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(2);_(),tt(A.i18n.stateTabLabel)}}function ZzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(3);_(),tt(A.i18n.artifactsTabLabel)}}function WzA(t,e){if(t&1&&(S(0,"mat-tab"),NA(1,ZzA,2,1,"ng-template",16),TA(2,"app-artifact-tab",22),N()),t&2){let A=Y(2);_(2),yA("artifacts",A.artifacts)}}function XzA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(2);_(),tt(A.i18n.sessionsTabLabel)}}function $zA(t,e){if(t&1&&(S(0,"span",21),AA(1),N()),t&2){let A=Y(3);_(),tt(A.i18n.evalTabLabel)}}function APA(t,e){if(t&1){let A=me();S(0,"mat-tab"),NA(1,$zA,2,1,"ng-template",16),S(2,"app-eval-tab",23),mA("sessionSelected",function(n){QA(A);let o=Y(2);return uA(o.sessionSelected.emit(n))})("evalCaseSelected",function(n){QA(A);let o=Y(2);return uA(o.evalCaseSelected.emit(n))})("evalSetIdSelected",function(n){QA(A);let o=Y(2);return uA(o.evalSetIdSelected.emit(n))})("shouldReturnToSession",function(n){QA(A);let o=Y(2);return uA(o.returnToSession.emit(n))})("evalNotInstalledMsg",function(n){QA(A);let o=Y(2);return uA(o.evalNotInstalled.emit(n))}),N()()}if(t&2){let A=Y(2);_(2),yA("appName",A.appName)("userId",A.userId)("sessionId",A.sessionId)}}function ePA(t,e){if(t&1){let A=me();S(0,"div",0)(1,"mat-tab-group",14),mA("selectedTabChange",function(n){QA(A);let o=Y();return uA(o.tabChange.emit(n))}),NA(2,jzA,3,1,"mat-tab",15),eo(3,"async"),S(4,"mat-tab",15),NA(5,qzA,2,1,"ng-template",16),S(6,"app-event-tab",17),mA("selectedEvent",function(n){QA(A);let o=Y();return uA(o.eventSelected.emit(n))}),N()(),S(7,"mat-tab"),NA(8,VzA,2,1,"ng-template",16),TA(9,"app-state-tab",18),N(),NA(10,WzA,3,1,"mat-tab"),eo(11,"async"),S(12,"mat-tab"),NA(13,XzA,2,1,"ng-template",16),S(14,"app-session-tab",19),mA("sessionSelected",function(n){QA(A);let o=Y();return uA(o.sessionSelected.emit(n))})("sessionReloaded",function(n){QA(A);let o=Y();return uA(o.sessionReloaded.emit(n))}),N()(),NA(15,APA,3,3,"mat-tab"),eo(16,"async"),N()()}if(t&2){let A=Y();_(2),_A(Yo(3,9,A.isTraceEnabledObs)?2:-1),_(4),yA("eventsMap",A.eventData)("traceData",A.traceData),_(3),yA("sessionState",A.currentSessionState),_(),_A(Yo(11,11,A.isArtifactsTabEnabledObs)?10:-1),_(4),yA("userId",A.userId)("appName",A.appName)("sessionId",A.sessionId),_(),_A(Yo(16,13,A.isEvalEnabledObs)?15:-1)}}function tPA(t,e){if(t&1){let A=me();S(0,"div",34),mA("click",function(){QA(A);let n=Y(2);return uA(n.openImageDialog.emit(n.rawSvgString))}),N()}if(t&2){let A=Y(2);yA("innerHtml",A.renderedEventGraph,b2)}}function iPA(t,e){if(t&1){let A=me();S(0,"div",1)(1,"div",24)(2,"div",25)(3,"mat-paginator",26),mA("page",function(n){QA(A);let o=Y();return uA(o.page.emit(n))}),N(),S(4,"button",27)(5,"mat-icon",28),mA("click",function(){QA(A);let n=Y();return uA(n.closeSelectedEvent.emit())}),AA(6,"close"),N()()()(),S(7,"div")(8,"mat-tab-group")(9,"mat-tab",29)(10,"div",30),NA(11,tPA,1,1,"div",31),N(),S(12,"div",32),TA(13,"ngx-json-viewer",33),N()(),S(14,"mat-tab",29)(15,"div",32),TA(16,"ngx-json-viewer",33),N()(),S(17,"mat-tab",29)(18,"div",32),TA(19,"ngx-json-viewer",33),N()()()()()}if(t&2){let A=Y();_(3),yA("length",A.eventData.size)("pageSize",1)("pageIndex",A.selectedEventIndex),Ke("aria-label",A.i18n.selectEventAriaLabel),_(6),L2("label",A.i18n.eventDetailsTabLabel),_(2),_A(A.renderedEventGraph?11:-1),_(2),yA("json",A.selectedEvent),_(),L2("label",A.i18n.requestDetailsTabLabel),_(2),yA("json",A.llmRequest),_(),L2("label",A.i18n.responseDetailsTabLabel),_(2),yA("json",A.llmResponse)}}var OQ=class t{appName="";userId="";sessionId="";traceData=[];eventData=new Map;currentSessionState;artifacts=[];selectedEvent;selectedEventIndex;renderedEventGraph;rawSvgString=null;llmRequest;llmResponse;showSidePanel=!1;isApplicationSelectorEnabledObs=Ce(!1);apps$=Ce([]);isLoadingApps=Ao(!1);selectedAppControl=new y0("",{nonNullable:!0});closePanel=new YA;appSelectionChange=new YA;tabChange=new YA;eventSelected=new YA;sessionSelected=new YA;sessionReloaded=new YA;evalCaseSelected=new YA;evalSetIdSelected=new YA;returnToSession=new YA;evalNotInstalled=new YA;page=new YA;closeSelectedEvent=new YA;openImageDialog=new YA;eventTabComponent=qs(TQ);sessionTabComponent=qs(HQ);evalTabComponent=qs(g2);logoComponent=f(b7,{optional:!0});i18n=f(tgA);featureFlagService=f(Gc);isAlwaysOnSidePanelEnabledObs=this.featureFlagService.isAlwaysOnSidePanelEnabled();isTraceEnabledObs=this.featureFlagService.isTraceEnabled();isArtifactsTabEnabledObs=this.featureFlagService.isArtifactsTabEnabled();isEvalEnabledObs=this.featureFlagService.isEvalEnabled();isTokenStreamingEnabledObs=this.featureFlagService.isTokenStreamingEnabled();isMessageFileUploadEnabledObs=this.featureFlagService.isMessageFileUploadEnabled();isManualStateUpdateEnabledObs=this.featureFlagService.isManualStateUpdateEnabled();isBidiStreamingEnabledObs=this.featureFlagService.isBidiStreamingEnabled;static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-side-panel"]],viewQuery:function(A,i){A&1&&(ls(i.eventTabComponent,TQ,5),ls(i.sessionTabComponent,HQ,5),ls(i.evalTabComponent,g2,5)),A&2&&yc(3)},inputs:{appName:"appName",userId:"userId",sessionId:"sessionId",traceData:"traceData",eventData:"eventData",currentSessionState:"currentSessionState",artifacts:"artifacts",selectedEvent:"selectedEvent",selectedEventIndex:"selectedEventIndex",renderedEventGraph:"renderedEventGraph",rawSvgString:"rawSvgString",llmRequest:"llmRequest",llmResponse:"llmResponse",showSidePanel:"showSidePanel",isApplicationSelectorEnabledObs:"isApplicationSelectorEnabledObs",apps$:"apps$",isLoadingApps:"isLoadingApps",selectedAppControl:"selectedAppControl"},outputs:{closePanel:"closePanel",appSelectionChange:"appSelectionChange",tabChange:"tabChange",eventSelected:"eventSelected",sessionSelected:"sessionSelected",sessionReloaded:"sessionReloaded",evalCaseSelected:"evalCaseSelected",evalSetIdSelected:"evalSetIdSelected",returnToSession:"returnToSession",evalNotInstalled:"evalNotInstalled",page:"page",closeSelectedEvent:"closeSelectedEvent",openImageDialog:"openImageDialog"},decls:5,vars:5,consts:[[1,"tabs-container"],[1,"details-panel-container"],[1,"resize-handler"],[2,"margin-top","20px","margin-left","20px","display","flex"],[2,"width","100%"],[1,"drawer-header"],[1,"drawer-logo"],[1,"material-symbols-outlined",2,"color","#c4c7c5","cursor","pointer","margin-right","15px",3,"click","matTooltip"],[1,"app-select-container"],[4,"ngComponentOutlet"],[1,"powered-by-adk"],["src","assets/ADK-512-color.svg","width","32px","height","32px"],[1,"app-select",3,"selectionChange","placeholder","formControl"],[1,"app-name-option",3,"value"],[3,"selectedTabChange"],[1,"tabs-header"],["mat-tab-label",""],[3,"selectedEvent","eventsMap","traceData"],[3,"sessionState"],[3,"sessionSelected","sessionReloaded","userId","appName","sessionId"],[3,"traceData"],[1,"tab-label"],[3,"artifacts"],[3,"sessionSelected","evalCaseSelected","evalSetIdSelected","shouldReturnToSession","evalNotInstalledMsg","appName","userId","sessionId"],[1,"details-content"],[2,"display","flex","justify-content","flex-end","margin-top","10px"],[1,"event-paginator",3,"page","length","pageSize","pageIndex"],["mat-mini-fab",""],[3,"click"],[3,"label"],[1,"event-graph-container"],[3,"innerHtml"],[1,"json-viewer-container"],[3,"json"],[3,"click","innerHtml"]],template:function(A,i){A&1&&(NA(0,zzA,10,5),eo(1,"async"),NA(2,ePA,17,15,"div",0)(3,iPA,20,11,"div",1),TA(4,"div",2)),A&2&&(_A(Yo(1,3,i.isAlwaysOnSidePanelEnabledObs)===!1?0:-1),_(2),_A(i.appName!=""&&i.showSidePanel?2:-1),_(),_A(i.selectedEvent&&i.showSidePanel?3:-1))},dependencies:[Qg,Mr,Ss,Yu,kl,M7,vf,$K,N7,TQ,L7,z8,HQ,g2,Gq,u6,_c,Sl,X2,K2,YB,cB,ck],styles:[".drawer-header[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:space-between;align-items:center}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-container-color: var(--side-panel-button-filled-container-color)}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-label-text-color: var(--side-panel-button-filled-label-text-color)}.drawer-header[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{width:36px;height:36px;color:var(--side-panel-mat-icon-color);cursor:pointer;display:flex;align-items:center;justify-content:center}.tabs-container[_ngcontent-%COMP%]{width:100%;margin-top:20px}.tab-label[_ngcontent-%COMP%]{font-size:14px}.resize-handler[_ngcontent-%COMP%]{background:var(--side-panel-resize-handler-background-color);width:4px;border-radius:4px;position:absolute;display:block;height:20%;top:40%;right:0;z-index:9999;cursor:ew-resize}.json-viewer-container[_ngcontent-%COMP%]{margin:10px}.event-paginator[_ngcontent-%COMP%]{margin-top:-8px;margin-right:auto;background-color:inherit;display:flex;justify-content:center}[_nghost-%COMP%] .mat-mdc-paginator-page-size{display:none}.details-panel-container[_ngcontent-%COMP%]{position:absolute;width:100%;height:98%;left:0;right:0;bottom:0;background:var(--side-panel-details-panel-container-background-color);display:inline-block;justify-content:center;align-items:center;z-index:10}.details-content[_ngcontent-%COMP%]{color:var(--side-panel-details-content-color);font-size:14px}.event-graph-container[_ngcontent-%COMP%]{margin-top:16px;margin-bottom:16px;display:flex;justify-content:center;max-height:33%;cursor:pointer}.event-graph-container[_ngcontent-%COMP%] svg{width:100%;height:100%;display:block;object-fit:contain}.event-graph-container[_ngcontent-%COMP%] svg text{font-family:Google Sans Mono,monospace;font-size:11px}.drawer-logo[_ngcontent-%COMP%]{margin-left:9px;display:flex;align-items:center;font-size:16px;font-style:normal;font-weight:500;line-height:24px;letter-spacing:.1px}.drawer-logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{margin-right:9px}.powered-by-adk[_ngcontent-%COMP%]{font-size:10px;color:var(--side-panel-powered-by-adk-color);text-align:right;margin-top:-5px}.app-select[_ngcontent-%COMP%]{width:100%}.app-select-container[_ngcontent-%COMP%]{width:35%;margin-top:12px;background-color:var(--side-panel-app-select-container-background-color);margin-left:10px;height:30px;display:flex;justify-content:space-between;padding-left:20px;padding-right:20px;border-radius:10px;padding-top:5px}.app-select-container[_ngcontent-%COMP%]{--mat-select-placeholder-text-color: var(--side-panel-select-placeholder-text-color)}.app-select-container[_ngcontent-%COMP%]{--mat-select-enabled-trigger-text-color: var(--side-panel-select-enabled-trigger-text-color)}.app-select-container[_ngcontent-%COMP%]{--mat-select-enabled-arrow-color: var(--side-panel-select-enabled-arrow-color)}.app-name-option[_ngcontent-%COMP%], .app-select[_ngcontent-%COMP%]{color:var(--side-panel-app-name-option-color);font-family:Google Sans Mono,monospace;font-style:normal;font-weight:400;padding-left:unset}"]})};function nPA(t,e){if(t&1){let A=me();S(0,"div",11),mA("click",function(){QA(A);let n=Y();return uA(n.openViewImageDialog(n.rawSvgString))}),N()}if(t&2){let A=Y();yA("innerHtml",A.renderedEventGraph,b2)}}var F7=class t{userId="";sessionId="";appName="";panelClosed=new YA;renderedEventGraph;eventData;selectedRow=void 0;rawSvgString=null;llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";dialog=f(Fc);traceService=f(e1);eventService=f(zB);graphService=f(PB);sanitizer=f(oc);constructor(){}ngOnInit(){this.traceService.selectedTraceRow$.subscribe(e=>{this.selectedRow=e;let A=this.getEventIdFromSpan();if(A){let i=A;this.eventService.getEventTrace(i).subscribe(n=>{this.llmRequest=JSON.parse(n[this.llmRequestKey]),this.llmResponse=JSON.parse(n[this.llmResponseKey])}),this.getEventGraph(A)}}),this.traceService.eventData$.subscribe(e=>this.eventData=e)}openViewImageDialog(e){let A=this.dialog.open(t1,{maxWidth:"90vw",maxHeight:"90vh",data:{imageData:e}})}getEventDetails(){if(this.eventData&&this.selectedRow)return this.eventData.get(this.getEventIdFromSpan())}getEventIdFromSpan(){if(this.selectedRow)return this.selectedRow.attributes["gcp.vertex.agent.event_id"]}getEventGraph(e){this.eventService.getEvent(this.userId,this.appName,this.sessionId,e).subscribe(A=>Ni(this,null,function*(){if(!A.dotSrc){this.renderedEventGraph=void 0;return}let i=A.dotSrc,n=yield this.graphService.render(i);this.rawSvgString=n,this.renderedEventGraph=this.sanitizer.bypassSecurityTrustHtml(n)}))}closePanel(){this.panelClosed.emit(!0)}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-trace-event"]],inputs:{userId:"userId",sessionId:"sessionId",appName:"appName"},outputs:{panelClosed:"panelClosed"},decls:17,vars:4,consts:[[1,"wrapper"],["mat-stretch-tabs","false","mat-align-tabs","start"],["label","Event"],[1,"json-viewer-container"],[3,"json"],["label","Request"],["label","Response"],["label","Graph"],[1,"event-graph-container"],[3,"innerHtml"],["mat-icon-button","",1,"tab-header-action",3,"click"],[3,"click","innerHtml"]],template:function(A,i){A&1&&(S(0,"div",0)(1,"mat-tab-group",1)(2,"mat-tab",2)(3,"div",3),TA(4,"ngx-json-viewer",4),N()(),S(5,"mat-tab",5)(6,"div",3),TA(7,"ngx-json-viewer",4),N()(),S(8,"mat-tab",6)(9,"div",3),TA(10,"ngx-json-viewer",4),N()(),S(11,"mat-tab",7)(12,"div",8),NA(13,nPA,1,1,"div",9),N()()(),S(14,"button",10),mA("click",function(){return i.closePanel()}),S(15,"mat-icon"),AA(16,"close"),N()()()),A&2&&(_(4),yA("json",i.getEventDetails()),_(3),yA("json",i.llmRequest),_(3),yA("json",i.llmResponse),_(3),_A(i.renderedEventGraph?13:-1))},dependencies:[M7,vf,Sl,X2,QB,_c],styles:[".json-viewer-container[_ngcontent-%COMP%]{padding-top:8px;padding-left:12px;padding-right:12px;background-color:var(--trace-event-json-viewer-container-background-color)}.event-graph-container[_ngcontent-%COMP%]{text-align:center;padding-top:20px}.event-graph-container[_ngcontent-%COMP%] svg text{font-family:Google Sans Mono,monospace;font-size:11px}.wrapper[_ngcontent-%COMP%]{position:relative}.tab-header-action[_ngcontent-%COMP%]{position:absolute;top:0;right:0;height:48px;z-index:2;margin-right:10px}"]})};var oPA=["sideDrawer"],rPA=["autoScroll"],sPA=["bottomPanel"],aPA=t=>({"edit-mode":t}),cPA=()=>[];function gPA(t,e){if(t&1){let A=me();S(0,"span",12),mA("click",function(){QA(A);let n=Y();return uA(n.toggleSidePanel())}),AA(1,"left_panel_open"),N()}}function lPA(t,e){if(t&1){let A=me();S(0,"span",14),mA("click",function(){QA(A);let n=Y(2);return uA(n.toggleSidePanel())}),AA(1,"left_panel_open"),N()}}function IPA(t,e){if(t&1){let A=me();S(0,"button",19),mA("click",function(){QA(A);let n=Y(3);return uA(n.cancelEditEvalCase())}),AA(1,"Cancel"),N(),S(2,"button",20),mA("click",function(){QA(A);let n=Y(3);return uA(n.saveEvalCase())}),AA(3," Save "),N()}if(t&2){let A=Y(3);_(2),yA("disabled",!A.hasEvalCaseChanged()||A.isEvalCaseEditing())}}function CPA(t,e){if(t&1){let A=me();S(0,"span",21),mA("click",function(){QA(A);let n=Y(3);return uA(n.editEvalCase())}),AA(1," edit "),N(),S(2,"span",22),mA("click",function(){QA(A);let n=Y(3);return uA(n.deleteEvalCase())}),AA(3," delete "),N()}}function dPA(t,e){if(t&1&&(S(0,"div",15)(1,"div",16),AA(2,"Eval Case ID"),N(),S(3,"div",17),AA(4),N()(),S(5,"div",18),NA(6,IPA,4,1)(7,CPA,4,0),N()),t&2){let A=Y(2);_(4),tt(A.evalCase.evalId),_(2),_A(A.isEvalEditMode()?6:7)}}function BPA(t,e){if(t&1){let A=me();S(0,"span",31),mA("click",function(){QA(A);let n=Y(3);return uA(n.exportSession())}),AA(1," download "),N()}}function EPA(t,e){if(t&1){let A=me();S(0,"span",32),mA("click",function(){QA(A);let n=Y(3);return uA(n.importSession())}),AA(1," upload "),N()}}function QPA(t,e){if(t&1){let A=me();S(0,"div",15)(1,"div",16),AA(2,"Session ID"),N(),S(3,"div",17),AA(4),N()(),S(5,"div",18)(6,"div",23)(7,"mat-slide-toggle",24),eo(8,"async"),mA("change",function(){QA(A);let n=Y(2);return uA(n.toggleSse())}),AA(9," Token Streaming "),N()(),TA(10,"mat-divider",25),S(11,"div",26)(12,"div",27),mA("click",function(){QA(A);let n=Y(2);return uA(n.onNewSessionClick())}),S(13,"mat-icon"),AA(14,"add"),N(),AA(15," New Session "),N(),S(16,"span",28),mA("click",function(){QA(A);let n=Y(2);return uA(n.deleteSession(n.sessionId))}),AA(17," delete "),N(),NA(18,BPA,2,0,"span",29),eo(19,"async"),NA(20,EPA,2,0,"span",30),eo(21,"async"),N()()}if(t&2){let A=Y(2);_(4),tt(A.sessionId),_(3),yA("checked",A.enableSseIndicator())("disabled",!Yo(8,6,A.isTokenStreamingEnabledObs)),_(3),yA("vertical",!0),_(8),_A(Yo(19,8,A.isExportSessionEnabledObs)?18:-1),_(2),_A(Yo(21,10,A.importSessionEnabledObs)?20:-1)}}function uPA(t,e){if(t&1&&(S(0,"div",7),NA(1,lPA,2,0,"span",13)(2,dPA,8,2)(3,QPA,22,12),N()),t&2){let A=Y();yA("ngClass",vc(3,aPA,A.isEvalEditMode())),_(),_A(A.showSidePanel?-1:1),_(),_A(A.evalCase?2:3)}}function hPA(t,e){t&1&&(S(0,"div",33)(1,"span"),AA(2,"Loading agents, please wait..."),N()())}function fPA(t,e){t&1&&(S(0,"span"),AA(1,"Welcome to ADK!"),TA(2,"br"),AA(3," Select an agent on the left to begin with."),N())}function mPA(t,e){if(t&1&&(AA(0," Error message: "),TA(1,"br"),S(2,"pre",35),AA(3),N()),t&2){let A=Y(4);_(3),tt(A.loadingError())}}function pPA(t,e){t&1&&(S(0,"pre",34),AA(1,"Warning: No agents found in current folder."),N())}function DPA(t,e){if(t&1&&(S(0,"div"),AA(1," Failed to load agents. To get started, run "),S(2,"pre"),AA(3,"adk web"),N(),AA(4," in the folder that contains the agents."),TA(5,"br"),NA(6,mPA,4,1)(7,pPA,2,0,"pre",34),N()),t&2){let A=Y(3);_(6),_A(A.loadingError()?6:7)}}function wPA(t,e){if(t&1&&(S(0,"div",33),NA(1,fPA,4,0,"span"),eo(2,"async"),NA(3,DPA,8,1,"div"),N()),t&2){let A=Y(2);_(),_A((Yo(2,1,A.apps$)||AO(3,cPA)).length>0?1:3)}}function yPA(t,e){if(t&1&&(NA(0,hPA,3,0,"div",33),eo(1,"async"),NA(2,wPA,4,4,"div",33)),t&2){let A=Y();_A(A.isLoadingApps()?0:Yo(1,1,A.isApplicationSelectorEnabledObs)?2:-1)}}function vPA(t,e){if(t&1){let A=me();S(0,"button",36),mA("click",function(){QA(A);let n=Y();return uA(n.openDialog())}),S(1,"mat-icon"),AA(2,"priority_high"),N()()}}function MPA(t,e){if(t&1){let A=me();S(0,"app-chat-panel",37),eo(1,"async"),Xa("userInputChange",function(n){QA(A);let o=Y();return Wa(o.userInput,n)||(o.userInput=n),uA(n)})("userEditEvalCaseMessageChange",function(n){QA(A);let o=Y();return Wa(o.userEditEvalCaseMessage,n)||(o.userEditEvalCaseMessage=n),uA(n)}),mA("clickEvent",function(n){QA(A);let o=Y();return uA(o.clickEvent(n))})("handleKeydown",function(n){QA(A);let o=Y();return uA(o.handleKeydown(n.event,n.message))})("cancelEditMessage",function(n){QA(A);let o=Y();return uA(o.cancelEditMessage(n))})("saveEditMessage",function(n){QA(A);let o=Y();return uA(o.saveEditMessage(n))})("openViewImageDialog",function(n){QA(A);let o=Y();return uA(o.openViewImageDialog(n))})("openBase64InNewTab",function(n){QA(A);let o=Y();return uA(o.openBase64InNewTab(n.data,n.mimeType))})("editEvalCaseMessage",function(n){QA(A);let o=Y();return uA(o.editEvalCaseMessage(n))})("deleteEvalCaseMessage",function(n){QA(A);let o=Y();return uA(o.deleteEvalCaseMessage(n.message,n.index))})("editFunctionArgs",function(n){QA(A);let o=Y();return uA(o.editFunctionArgs(n))})("fileSelect",function(n){QA(A);let o=Y();return uA(o.onFileSelect(n))})("removeFile",function(n){QA(A);let o=Y();return uA(o.removeFile(n))})("removeStateUpdate",function(){QA(A);let n=Y();return uA(n.removeStateUpdate())})("sendMessage",function(n){QA(A);let o=Y();return uA(o.sendMessage(n))})("updateState",function(){QA(A);let n=Y();return uA(n.updateState())})("toggleAudioRecording",function(){QA(A);let n=Y();return uA(n.toggleAudioRecording())})("toggleVideoRecording",function(){QA(A);let n=Y();return uA(n.toggleVideoRecording())}),N()}if(t&2){let A,i=Y();yA("appName",i.appName)("messages",i.messages())("isChatMode",i.isChatMode())("evalCase",i.evalCase)("isEvalEditMode",i.isEvalEditMode())("isEvalCaseEditing",i.isEvalCaseEditing())("isEditFunctionArgsEnabled",(A=Yo(1,15,i.isEditFunctionArgsEnabledObs))!==null&&A!==void 0?A:!1),Za("userInput",i.userInput)("userEditEvalCaseMessage",i.userEditEvalCaseMessage),yA("selectedFiles",i.selectedFiles)("updatedSessionState",i.updatedSessionState())("eventData",i.eventData)("isAudioRecording",i.isAudioRecording)("isVideoRecording",i.isVideoRecording)("hoveredEventMessageIndices",i.hoveredEventMessageIndices)}}function bPA(t,e){if(t&1){let A=me();S(0,"div",11,1),TA(2,"div",38),S(3,"app-trace-event",39),mA("panelClosed",function(){QA(A);let n=Y();return uA(n.closeTraceEventDetailPanel())}),N()()}if(t&2){let A=Y();_(3),yA("userId",A.userId)("appName",A.appName)("sessionId",A.sessionId)}}var kPA="root_agent";function SPA(t){for(t=t.replace(/-/g,"+").replace(/_/g,"/");t.length%4!==0;)t+="=";return t}var nU=class t extends _8{nextPageLabel="Next Event";previousPageLabel="Previous Event";firstPageLabel="First Event";lastPageLabel="Last Event";getRangeLabel=(e,A,i)=>i===0?`Event 0 of ${i}`:(i=Math.max(i,0),`Event ${e*A+1} of ${i}`);static \u0275fac=(()=>{let e;return function(i){return(e||(e=ci(t)))(i||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac})},igA="Restarting bidirectional streaming is not currently supported. Please refresh the page or start a new session.",_7=class t{_snackBar=f(Yq);activatedRoute=f(xc);agentService=f(HB);artifactService=f(U8);changeDetectorRef=f(Et);dialog=f(Fc);document=f(at);downloadService=f(OB);evalService=f(Rl);eventService=f(zB);featureFlagService=f(Gc);graphService=f(PB);localFileService=f(J8);location=f(ha);renderer=f(qi);router=f(vl);safeValuesService=f($2);sessionService=f(A1);streamChatService=f(T8);stringToColorService=f(jB);traceService=f(e1);chatPanel=qs.required(ZB);sideDrawer=qs.required("sideDrawer");sidePanel=qs.required(OQ);evalTab=qs(g2);scrollContainer=qs.required("autoScroll");bottomPanelRef=qs.required("bottomPanel");enableSseIndicator=Ao(!1);isChatMode=Ao(!0);isEvalCaseEditing=Ao(!1);hasEvalCaseChanged=Ao(!1);isEvalEditMode=Ao(!1);videoElement;currentMessage="";messages=Ao([]);lastTextChunk="";streamingTextMessage=null;latestThought="";artifacts=[];userInput="";userEditEvalCaseMessage="";userId="user";appName="";sessionId="";evalCase=null;updatedEvalCase=null;evalSetId="";isAudioRecording=!1;isVideoRecording=!1;longRunningEvents=[];functionCallEventId="";redirectUri=ds.getBaseUrlWithoutPath();showSidePanel=!0;useSse=!1;currentSessionState={};root_agent=kPA;updatedSessionState=Ao(null);isModelThinkingSubject=new Fi(!1);sessionHasUsedBidi=new Set;eventData=new Map;traceData=[];renderedEventGraph;rawSvgString=null;selectedEvent=void 0;selectedEventIndex=void 0;llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";getMediaTypeFromMimetype=P8;selectedFiles=[];MediaType=gC;selectedAppControl=new y0("",{nonNullable:!0});openBase64InNewTab=this.safeValuesService.openBase64InNewTab;isLoadingApps=Ao(!1);loadingError=Ao("");apps$=Ce([]).pipe(So(()=>{this.isLoadingApps.set(!0),this.selectedAppControl.disable()}),$n(()=>this.agentService.listApps().pipe(Gr(e=>(this.loadingError.set(e.message),Ce(void 0))))),Xn(1),So(e=>{this.isLoadingApps.set(!1),this.selectedAppControl.enable(),e?.length==1&&this.router.navigate([],{relativeTo:this.activatedRoute,queryParams:{app:e[0]}})}),h2());importSessionEnabledObs=this.featureFlagService.isImportSessionEnabled();isEditFunctionArgsEnabledObs=this.featureFlagService.isEditFunctionArgsEnabled();isSessionUrlEnabledObs=this.featureFlagService.isSessionUrlEnabled();isApplicationSelectorEnabledObs=this.featureFlagService.isApplicationSelectorEnabled();isTokenStreamingEnabledObs=this.featureFlagService.isTokenStreamingEnabled();isExportSessionEnabledObs=this.featureFlagService.isExportSessionEnabled();bottomPanelVisible=!1;hoveredEventMessageIndices=[];constructor(){}ngOnInit(){if(this.syncSelectedAppFromUrl(),this.updateSelectedAppUrl(),this.streamChatService.onStreamClose().subscribe(i=>{let n=`Please check server log for full details: -`+i;this.openSnackBar(n,"OK")}),new URL(window.location.href).searchParams.has("code")){let i=window.location.href;window.opener?.postMessage({authResponseUrl:i},window.origin),window.close()}this.agentService.getApp().subscribe(i=>{this.appName=i}),ga([this.agentService.getLoadingState(),this.isModelThinkingSubject]).subscribe(([i,n])=>{let o=this.messages()[this.messages().length-1];i?!o?.isLoading&&!this.streamingTextMessage&&this.messages.update(r=>[...r,{role:"bot",isLoading:!0}]):o?.isLoading&&!n&&(this.messages.update(r=>r.slice(0,-1)),this.changeDetectorRef.detectChanges())}),this.traceService.selectedTraceRow$.subscribe(i=>{let n=i?.attributes["gcp.vertex.agent.event_id"];n&&this.eventData.has(n)?this.bottomPanelVisible=!0:this.bottomPanelVisible=!1}),this.traceService.hoveredMessageIndices$.subscribe(i=>this.hoveredEventMessageIndices=i)}get sessionTab(){return this.sidePanel().sessionTabComponent()}ngAfterViewInit(){this.showSidePanel=!0,this.sideDrawer()?.open()}selectApp(e){e!=this.appName&&(this.agentService.setApp(e),this.loadSessionByUrlOrReset())}loadSessionByUrlOrReset(){this.isSessionUrlEnabledObs.subscribe(e=>{let A=this.activatedRoute.snapshot.queryParams.session;if(!e||!A){this.createSessionAndReset();return}A&&this.sessionService.getSession(this.userId,this.appName,A).pipe(Xn(1),Gr(i=>(this.openSnackBar("Cannot find specified session. Creating a new one.","OK"),this.createSessionAndReset(),Ce(null)))).subscribe(i=>{i&&this.updateWithSelectedSession(i)})})}createSessionAndReset(){this.createSession(),this.eventData=new Map,this.messages.set([]),this.artifacts=[],this.userInput="",this.longRunningEvents=[]}createSession(){this.sessionService.createSession(this.userId,this.appName).subscribe(e=>{this.currentSessionState=e.state,this.sessionId=e.id??"",this.sessionTab?.refreshSession(),this.isSessionUrlEnabledObs.subscribe(A=>{A&&this.updateSelectedSessionUrl()})})}sendMessage(e){return Ni(this,null,function*(){if(e.preventDefault(),!this.userInput.trim()&&this.selectedFiles.length<=0||e instanceof KeyboardEvent&&(e.isComposing||e.keyCode===229))return;if(this.userInput.trim()&&this.messages.update(i=>[...i,{role:"user",text:this.userInput}]),this.selectedFiles.length>0){let i=this.selectedFiles.map(n=>({file:n.file,url:n.url}));this.messages.update(n=>[...n,{role:"user",attachments:i}])}let A={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:yield this.getUserMessageParts()},streaming:this.useSse,stateDelta:this.updatedSessionState()};this.selectedFiles=[],this.streamingTextMessage=null,this.agentService.runSse(A).subscribe({next:i=>Ni(this,null,function*(){if(i.error){this.openSnackBar(i.error,"OK");return}if(i.content)for(let n of this.combineTextParts(i.content.parts))this.processPart(i,n),this.traceService.setEventData(this.eventData);else i.errorMessage?this.processErrorMessage(i):i.actions&&this.processActionArtifact(i);this.changeDetectorRef.detectChanges()}),error:i=>{console.error("Send message error:",i),this.openSnackBar(i,"OK")},complete:()=>{this.updatedSessionState()&&(this.currentSessionState=this.updatedSessionState(),this.updatedSessionState.set(null)),this.streamingTextMessage=null,this.sessionTab?.reloadSession(this.sessionId),this.eventService.getTrace(this.sessionId).pipe(Gr(i=>i.status===404?Ce(null):Ce([]))).subscribe(i=>{this.traceData=i,this.changeDetectorRef.detectChanges()}),this.traceService.setMessages(this.messages()),this.changeDetectorRef.detectChanges()}}),this.userInput="",this.changeDetectorRef.detectChanges()})}processErrorMessage(e){this.storeEvents(e,e),this.insertMessageBeforeLoadingMessage({text:e.errorMessage,role:"bot"})}processPart(e,A){let i=e.groundingMetadata?.searchEntryPoint?.renderedContent;if(A.text){this.isModelThinkingSubject.next(!1);let n=A.text;if(A.thought){if(n!==this.latestThought){this.storeEvents(A,e);let o={role:"bot",text:this.processThoughtText(n),thought:!0,eventId:e.id};this.insertMessageBeforeLoadingMessage(o)}this.latestThought=n}else if(this.streamingTextMessage){if(i&&(this.streamingTextMessage.renderedContent=e.groundingMetadata.searchEntryPoint.renderedContent),n==this.streamingTextMessage.text){this.storeEvents(A,e),this.streamingTextMessage=null;return}this.streamingTextMessage.text+=n}else if(this.streamingTextMessage={role:"bot",text:this.processThoughtText(n),thought:!!A.thought,eventId:e.id},i&&(this.streamingTextMessage.renderedContent=e.groundingMetadata.searchEntryPoint.renderedContent),this.insertMessageBeforeLoadingMessage(this.streamingTextMessage),!this.useSse){this.storeEvents(A,e),this.streamingTextMessage=null;return}}else A.thought?this.isModelThinkingSubject.next(!0):(this.isModelThinkingSubject.next(!1),this.storeEvents(A,e),this.storeMessage(A,e,e.author==="user"?"user":"bot"))}getUserMessageParts(){return Ni(this,null,function*(){let e=[];if(this.userInput.trim()&&e.push({text:`${this.userInput}`}),this.selectedFiles.length>0)for(let A of this.selectedFiles)e.push(yield this.localFileService.createMessagePartFromFile(A.file));return e})}processActionArtifact(e){e.actions&&e.actions.artifactDelta&&(this.storeEvents(null,e),this.storeMessage(null,e,"bot"))}combineTextParts(e){let A=[],i;for(let n of e)n.text&&!n.thought?i?i.text+=n.text:(i={text:n.text},A.push(i)):(i=void 0,A.push(n));return A}updateRedirectUri(e,A){try{let i=new URL(e);return i.searchParams.set("redirect_uri",A),i.toString()}catch(i){return console.warn("Failed to update redirect URI: ",i),e}}storeMessage(e,A,i,n,o){if(A?.author&&this.createAgentIconColorClass(A.author),A?.longRunningToolIds&&A.longRunningToolIds.length>0){this.getAsyncFunctionsFromParts(A.longRunningToolIds,A.content.parts,A.invocationId);let s=this.longRunningEvents[0].function;if(s.args.authConfig&&s.args.authConfig.exchangedAuthCredential&&s.args.authConfig.exchangedAuthCredential.oauth2){let a=s.args.authConfig.exchangedAuthCredential.oauth2.authUri,c=this.updateRedirectUri(a,this.redirectUri);this.openOAuthPopup(c).then(g=>{this.functionCallEventId=A.id,this.sendOAuthResponse(s,g,this.redirectUri)}).catch(g=>{console.error("OAuth Error:",g)})}else this.functionCallEventId=A.id}if(A?.actions&&A.actions.artifactDelta)for(let s in A.actions.artifactDelta)A.actions.artifactDelta.hasOwnProperty(s)&&this.renderArtifact(s,A.actions.artifactDelta[s]);A?.evalStatus&&this.isChatMode.set(!1);let r={role:i,evalStatus:A?.evalStatus,failedMetric:A?.failedMetric,evalScore:A?.evalScore,evalThreshold:A?.evalThreshold,actualInvocationToolUses:A?.actualInvocationToolUses,expectedInvocationToolUses:A?.expectedInvocationToolUses,actualFinalResponse:A?.actualFinalResponse,expectedFinalResponse:A?.expectedFinalResponse,invocationIndex:n!==void 0?n:void 0,finalResponsePartIndex:o?.finalResponsePartIndex!==void 0?o.finalResponsePartIndex:void 0,toolUseIndex:o?.toolUseIndex!==void 0?o.toolUseIndex:void 0};if(e){if(e.inlineData){let s=this.formatBase64Data(e.inlineData.data,e.inlineData.mimeType);r.inlineData={displayName:e.inlineData.displayName,data:s,mimeType:e.inlineData.mimeType}}else if(e.text)r.text=e.text,r.thought=!!e.thought,A?.groundingMetadata&&A.groundingMetadata.searchEntryPoint&&A.groundingMetadata.searchEntryPoint.renderedContent&&(r.renderedContent=A.groundingMetadata.searchEntryPoint.renderedContent),r.eventId=A?.id;else if(e.functionCall)r.functionCall=e.functionCall,r.eventId=A?.id;else if(e.functionResponse)r.functionResponse=e.functionResponse,r.eventId=A?.id;else if(e.executableCode)r.executableCode=e.executableCode;else if(e.codeExecutionResult&&(r.codeExecutionResult=e.codeExecutionResult,A.actions&&A.actions.artifact_delta))for(let s in A.actions.artifact_delta)A.actions.artifact_delta.hasOwnProperty(s)&&this.renderArtifact(s,A.actions.artifact_delta[s])}e&&Object.keys(e).length>0&&this.insertMessageBeforeLoadingMessage(r)}insertMessageBeforeLoadingMessage(e){this.messages.update(A=>{let i=A[A.length-1];return i?.isLoading?[...A.slice(0,-1),e,i]:[...A,e]})}formatBase64Data(e,A){let i=SPA(e);return`data:${A};base64,${i}`}renderArtifact(e,A){let i={role:"bot",inlineData:{data:"",mimeType:"image/png"}};this.insertMessageBeforeLoadingMessage(i);let n=this.messages(),r=n[n.length-1]?.isLoading?n.length-2:n.length-1;this.artifactService.getArtifactVersion(this.userId,this.appName,this.sessionId,e,A).subscribe(s=>{let a=s.inlineData.mimeType,c=this.formatBase64Data(s.inlineData.data,a),g=P8(a),I={name:this.createDefaultArtifactName(a),data:c,mimeType:a,mediaType:g};this.messages.update(C=>{let d=[...C];return d[r]={role:"bot",inlineData:I},d}),this.artifacts=[...this.artifacts,{id:e,data:c,mimeType:a,versionId:A,mediaType:P8(a)}]})}storeEvents(e,A){let i="";e==null&&A.actions.artifactDelta?i+="eventAction: artifact":e&&(e.text?i+="text:"+e.text:e.functionCall?i+="functionCall:"+e.functionCall.name:e.functionResponse?i+="functionResponse:"+e.functionResponse.name:e.executableCode?i+="executableCode:"+e.executableCode.code.slice(0,10):e.codeExecutionResult?i+="codeExecutionResult:"+e.codeExecutionResult.outcome:e.errorMessage&&(i+="errorMessage:"+e.errorMessage)),A.title=i,this.eventData.set(A.id,A),this.eventData=new Map(this.eventData)}sendOAuthResponse(e,A,i){this.longRunningEvents.pop();let n={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:[]}};var o=structuredClone(e.args.authConfig);o.exchangedAuthCredential.oauth2.authResponseUri=A,o.exchangedAuthCredential.oauth2.redirectUri=i,n.functionCallEventId=this.functionCallEventId,n.newMessage.parts.push({function_response:{id:e.id,name:e.name,response:o}});let r=[];this.agentService.runSse(n).subscribe({next:s=>Ni(this,null,function*(){r.push(s)}),error:s=>console.error("SSE error:",s),complete:()=>{this.processRunSseResponse(r)}})}processRunSseResponse(e){for(let A of e)if(A.content)for(let i of A.content.parts)this.processPart(A,i)}openDialog(){this.dialog.open(v7,{width:"600px",data:{event:this.longRunningEvents[0].function,appName:this.appName,userId:this.userId,sessionId:this.sessionId,functionCallEventId:this.functionCallEventId,invocationId:this.longRunningEvents[0].invocationId}}).afterClosed().subscribe(A=>{A&&(this.removeFinishedLongRunningEvents(A.events),this.processRunSseResponse(A.response),this.changeDetectorRef.detectChanges())})}removeFinishedLongRunningEvents(e){let A=new Set(e.map(i=>i.id));this.longRunningEvents=this.longRunningEvents.filter(i=>!A.has(i.id))}createAgentIconColorClass(e){let A=this.stringToColorService.stc(e),i=`custom-icon-color-${A.replace("#","")}`;this.injectCustomIconColorStyle(i,A)}clickEvent(e){let A=this.messages()[e].eventId;this.sideDrawer()?.open(),this.showSidePanel=!0,this.selectedEvent=this.eventData.get(A),this.selectedEventIndex=this.getIndexOfKeyInMap(A);let i=A;this.eventService.getEventTrace(i).subscribe(n=>{n[this.llmRequestKey]&&(this.llmRequest=JSON.parse(n[this.llmRequestKey])),n[this.llmResponseKey]&&(this.llmResponse=JSON.parse(n[this.llmResponseKey]))}),this.eventService.getEvent(this.userId,this.appName,this.sessionId,this.selectedEvent.id).subscribe(n=>Ni(this,null,function*(){if(!n.dotSrc){this.renderedEventGraph=void 0;return}let o=n.dotSrc,r=yield this.graphService.render(o);this.rawSvgString=r,this.renderedEventGraph=this.safeValuesService.bypassSecurityTrustHtml(r)}))}ngOnDestroy(){this.streamChatService.closeStream()}onAppSelection(e){this.isAudioRecording&&(this.stopAudioRecording(),this.isAudioRecording=!1),this.isVideoRecording&&(this.stopVideoRecording(),this.isVideoRecording=!1),this.evalTab()?.resetEvalResults(),this.traceData=[],this.bottomPanelVisible=!1}toggleAudioRecording(){this.isAudioRecording?this.stopAudioRecording():this.startAudioRecording()}startAudioRecording(){if(this.sessionHasUsedBidi.has(this.sessionId)){this.openSnackBar(igA,"OK");return}this.isAudioRecording=!0,this.streamChatService.startAudioChat({appName:this.appName,userId:this.userId,sessionId:this.sessionId}),this.messages.update(e=>[...e,{role:"user",text:"Speaking..."},{role:"bot",text:"Speaking..."}]),this.sessionHasUsedBidi.add(this.sessionId)}stopAudioRecording(){this.streamChatService.stopAudioChat(),this.isAudioRecording=!1}toggleVideoRecording(){this.isVideoRecording?this.stopVideoRecording():this.startVideoRecording()}startVideoRecording(){if(this.sessionHasUsedBidi.has(this.sessionId)){this.openSnackBar(igA,"OK");return}let e=this.chatPanel()?.videoContainer;e&&(this.isVideoRecording=!0,this.streamChatService.startVideoChat({appName:this.appName,userId:this.userId,sessionId:this.sessionId,videoContainer:e}),this.messages.update(A=>[...A,{role:"user",text:"Speaking..."}]),this.sessionHasUsedBidi.add(this.sessionId))}stopVideoRecording(){let e=this.chatPanel()?.videoContainer;e&&(this.streamChatService.stopVideoChat(e),this.isVideoRecording=!1)}getAsyncFunctionsFromParts(e,A,i){for(let n of A)n.functionCall&&e.includes(n.functionCall.id)&&this.longRunningEvents.push({function:n.functionCall,invocationId:i})}openOAuthPopup(e){return new Promise((A,i)=>{if(!this.safeValuesService.windowOpen(window,e,"oauthPopup","width=600,height=700")){i("Popup blocked!");return}let o=r=>{if(r.origin!==window.location.origin)return;let{authResponseUrl:s}=r.data;s?(A(s),window.removeEventListener("message",o)):console.log("OAuth failed",r)};window.addEventListener("message",o)})}toggleSidePanel(){this.showSidePanel?this.sideDrawer()?.close():this.sideDrawer()?.open(),this.showSidePanel=!this.showSidePanel}handleTabChange(e){this.isChatMode()||(this.resetEditEvalCaseVars(),this.handleReturnToSession(!0))}handleReturnToSession(e){this.sessionTab?.getSession(this.sessionId),this.evalTab()?.resetEvalCase(),this.isChatMode.set(!0)}handleEvalNotInstalled(e){e&&this.openSnackBar(e,"OK")}resetEventsAndMessages(){this.eventData.clear(),this.messages.set([]),this.artifacts=[]}updateWithSelectedSession(e){!e||!e.id||!e.events||!e.state||(this.traceService.resetTraceService(),this.sessionId=e.id,this.currentSessionState=e.state,this.evalCase=null,this.isChatMode.set(!0),this.isSessionUrlEnabledObs.subscribe(A=>{A&&this.updateSelectedSessionUrl()}),this.resetEventsAndMessages(),e.events.forEach(A=>{A.content?.parts?.forEach(i=>{this.storeMessage(i,A,A.author==="user"?"user":"bot"),A.author&&A.author!=="user"&&this.storeEvents(i,A)})}),this.eventService.getTrace(this.sessionId).subscribe(A=>{this.traceData=A,this.traceService.setEventData(this.eventData),this.traceService.setMessages(this.messages())}),this.bottomPanelVisible=!1,this.changeDetectorRef.detectChanges())}updateWithSelectedEvalCase(e){this.evalCase=e,this.isChatMode.set(!1),this.resetEventsAndMessages();let A=0;for(let i of e.conversation){if(i.userContent?.parts)for(let n of i.userContent.parts)this.storeMessage(n,null,"user");if(i.intermediateData?.toolUses){let n=0;for(let o of i.intermediateData.toolUses){let r={functionCall:{name:o.name,args:o.args}};this.storeMessage(r,null,"bot",A,{toolUseIndex:n}),n++;let s={functionResponse:{name:o.name}};this.storeMessage(s,null,"bot")}}if(i.finalResponse?.parts){let n=0;for(let o of i.finalResponse.parts)this.storeMessage(o,null,"bot",A,{finalResponsePartIndex:n}),n++}A++}}updateSelectedEvalSetId(e){this.evalSetId=e}editEvalCaseMessage(e){this.isEvalCaseEditing.set(!0),this.userEditEvalCaseMessage=e.text,e.isEditing=!0,setTimeout(()=>{let A=this.chatPanel()?.textarea?.nativeElement;if(!A)return;A.focus();let i=A.value.length;e.text.charAt(i-1)===` -`&&i--,A.setSelectionRange(i,i)},0)}editFunctionArgs(e){this.isEvalCaseEditing.set(!0),this.dialog.open(mf,{maxWidth:"90vw",maxHeight:"90vh",data:{dialogHeader:"Edit function arguments",functionName:e.functionCall.name,jsonContent:e.functionCall.args}}).afterClosed().subscribe(i=>{this.isEvalCaseEditing.set(!1),i&&(this.hasEvalCaseChanged.set(!0),e.functionCall.args=i,this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[e.invocationIndex].intermediateData.toolUses[e.toolUseIndex].args=i)})}saveEvalCase(){this.evalService.updateEvalCase(this.appName,this.evalSetId,this.updatedEvalCase.evalId,this.updatedEvalCase).subscribe(e=>{this.openSnackBar("Eval case updated","OK"),this.resetEditEvalCaseVars()})}cancelEditEvalCase(){this.resetEditEvalCaseVars(),this.updateWithSelectedEvalCase(this.evalCase)}resetEditEvalCaseVars(){this.hasEvalCaseChanged.set(!1),this.isEvalCaseEditing.set(!1),this.isEvalEditMode.set(!1),this.updatedEvalCase=null}cancelEditMessage(e){e.isEditing=!1,this.isEvalCaseEditing.set(!1)}saveEditMessage(e){this.hasEvalCaseChanged.set(!0),this.isEvalCaseEditing.set(!1),e.isEditing=!1,e.text=this.userEditEvalCaseMessage?this.userEditEvalCaseMessage:" ",this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[e.invocationIndex].finalResponse.parts[e.finalResponsePartIndex]={text:this.userEditEvalCaseMessage},this.userEditEvalCaseMessage=""}handleKeydown(e,A){e.key==="Enter"&&!e.shiftKey?(e.preventDefault(),this.saveEditMessage(A)):e.key==="Escape"&&this.cancelEditMessage(A)}deleteEvalCaseMessage(e,A){this.hasEvalCaseChanged.set(!0),this.messages.update(i=>i.filter((n,o)=>o!==A)),this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[e.invocationIndex].finalResponse.parts.splice(e.finalResponsePartIndex,1)}editEvalCase(){this.isEvalEditMode.set(!0)}deleteEvalCase(){let e={title:"Confirm delete",message:`Are you sure you want to delete ${this.evalCase.evalId}?`,confirmButtonText:"Delete",cancelButtonText:"Cancel"};this.dialog.open(yf,{width:"600px",data:e}).afterClosed().subscribe(i=>{i&&(this.evalTab()?.deleteEvalCase(this.evalCase.evalId),this.openSnackBar("Eval case deleted","OK"))})}updateSessionState(e){this.currentSessionState=e.state}onNewSessionClick(){this.createSession(),this.eventData.clear(),this.messages.set([]),this.artifacts=[],this.traceData=[],this.bottomPanelVisible=!1,this.evalTab()?.showEvalHistory&&this.evalTab()?.toggleEvalHistoryButton()}onFileSelect(e){let A=e.target;if(A.files)for(let i=0;i{i[this.llmRequestKey]&&(this.llmRequest=JSON.parse(i[this.llmRequestKey])),i[this.llmResponseKey]&&(this.llmResponse=JSON.parse(i[this.llmResponseKey]))}),this.eventService.getEvent(this.userId,this.appName,this.sessionId,this.selectedEvent.id).subscribe(i=>Ni(this,null,function*(){if(!i.dotSrc){this.renderedEventGraph=void 0;return}let n=yield this.graphService.render(i.dotSrc);this.rawSvgString=n,this.renderedEventGraph=this.safeValuesService.bypassSecurityTrustHtml(n)}))}deleteSession(e){let A={title:"Confirm delete",message:`Are you sure you want to delete this session ${this.sessionId}?`,confirmButtonText:"Delete",cancelButtonText:"Cancel"};this.dialog.open(yf,{width:"600px",data:A}).afterClosed().subscribe(n=>{n&&this.sessionService.deleteSession(this.userId,this.appName,e).subscribe(o=>{let r=this.sessionTab?.refreshSession(e);r?this.sessionTab?.getSession(r.id):window.location.reload()})})}syncSelectedAppFromUrl(){ga([this.router.events.pipe(Nt(e=>e instanceof ac),je(()=>this.activatedRoute.snapshot.queryParams)),this.apps$]).subscribe(([e,A])=>{if(A&&A.length){let i=e.app;i&&A.includes(i)?this.selectedAppControl.setValue(i):i&&this.openSnackBar(`Agent '${i}' not found`,"OK")}})}updateSelectedAppUrl(){this.selectedAppControl.valueChanges.pipe(il(),Nt(Boolean)).subscribe(e=>{this.selectApp(e);let A=this.activatedRoute.snapshot.queryParams.app;e!==A&&this.router.navigate([],{queryParams:{app:e},queryParamsHandling:"merge"})})}updateSelectedSessionUrl(){let e=this.router.createUrlTree([],{queryParams:{session:this.sessionId},queryParamsHandling:"merge"}).toString();this.location.replaceState(e)}handlePageEvent(e){if(e.pageIndex>=0){let A=this.getKeyAtIndexInMap(e.pageIndex);A&&this.selectEvent(A)}}closeSelectedEvent(){this.selectedEvent=void 0,this.selectedEventIndex=void 0}getIndexOfKeyInMap(e){let A=0,i=(o,r)=>0,n=Array.from(this.eventData.keys()).sort(i);for(let o of n){if(o===e)return A;A++}}getKeyAtIndexInMap(e){let A=(n,o)=>0,i=Array.from(this.eventData.keys()).sort(A);if(e>=0&&e{console.log(e),this.downloadService.downloadObjectAsJson(e,`session-${this.sessionId}.json`)})}updateState(){this.dialog.open(mf,{maxWidth:"90vw",maxHeight:"90vh",data:{dialogHeader:"Update state",jsonContent:this.currentSessionState}}).afterClosed().subscribe(A=>{A&&this.updatedSessionState.set(A)})}removeStateUpdate(){this.updatedSessionState.set(null)}closeTraceEventDetailPanel(){this.bottomPanelVisible=!1,this.traceService.selectedRow(void 0),this.traceService.setHoveredMessages(void 0,"")}importSession(){let e=document.createElement("input");e.type="file",e.accept="application/json",e.onchange=()=>{if(!e.files||e.files.length===0)return;let A=e.files[0],i=new FileReader;i.onload=n=>{if(n.target?.result)try{let o=JSON.parse(n.target.result);if(!o.userId||!o.appName||!o.events){this.openSnackBar("Invalid session file format","OK");return}this.sessionService.importSession(o.userId,o.appName,o.events).subscribe(r=>{this.openSnackBar("Session imported","OK"),this.sessionTab?.refreshSession()})}catch{this.openSnackBar("Error parsing session file","OK")}},i.readAsText(A)},e.click()}injectCustomIconColorStyle(e,A){if(this.document.getElementById(e))return;let i=this.renderer.createElement("style");this.renderer.setAttribute(i,"id",e),this.renderer.setAttribute(i,"type","text/css");let n=` - .${e} { - background-color: ${A} !important; - } - `;this.renderer.appendChild(i,this.renderer.createText(n)),this.renderer.appendChild(this.document.head,i)}static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-chat"]],viewQuery:function(A,i){A&1&&(ls(i.chatPanel,ZB,5),ls(i.sideDrawer,oPA,5),ls(i.sidePanel,OQ,5),ls(i.evalTab,g2,5),ls(i.scrollContainer,rPA,5),ls(i.bottomPanelRef,sPA,5)),A&2&&yc(6)},features:[ut([{provide:_8,useClass:nU}])],decls:12,vars:24,consts:[["sideDrawer",""],["bottomPanel",""],["autosize","",1,"drawer-container"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"position","absolute","width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","20px","z-index","9999"],["mode","side","appResizableDrawer","",1,"side-drawer"],[3,"closePanel","tabChange","eventSelected","sessionSelected","sessionReloaded","evalCaseSelected","evalSetIdSelected","returnToSession","evalNotInstalled","page","closeSelectedEvent","openImageDialog","appSelectionChange","isApplicationSelectorEnabledObs","apps$","isLoadingApps","selectedAppControl","showSidePanel","appName","userId","sessionId","traceData","eventData","currentSessionState","artifacts","selectedEvent","selectedEventIndex","renderedEventGraph","rawSvgString","llmRequest","llmResponse"],[1,"chat-container"],[1,"chat-toolbar",3,"ngClass"],[1,"chat-card"],["mat-fab","","color","primary",1,"fab-button"],[3,"appName","messages","isChatMode","evalCase","isEvalEditMode","isEvalCaseEditing","isEditFunctionArgsEnabled","userInput","userEditEvalCaseMessage","selectedFiles","updatedSessionState","eventData","isAudioRecording","isVideoRecording","hoveredEventMessageIndices"],["appResizableBottomPanel","",1,"trace-detail-container"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"position","absolute","width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","20px","z-index","9999",3,"click"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","-2px","z-index","9999"],["matTooltip","Open panel",1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","-2px","z-index","9999",3,"click"],[2,"display","flex"],[1,"toolbar-session-text"],[1,"toolbar-session-id"],[1,"toolbar-actions"],["mat-button","",2,"height","30px",3,"click"],["mat-flat-button","",2,"height","30px",3,"click","disabled"],["matTooltip","Edit current eval case",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Delete current eval case",1,"material-symbols-outlined","toolbar-icon",3,"click"],[1,"toolbar-sse-toggle"],[1,"example-margin",3,"change","checked","disabled"],[2,"margin-left","8px","margin-right","8px","height","22px",3,"vertical"],[2,"display","flex","align-items","center"],[1,"toolbar-new-sesison",3,"click"],["matTooltip","Delete current session",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Export current session",1,"material-symbols-outlined","toolbar-icon"],["matTooltip","Import session",1,"material-symbols-outlined","toolbar-icon"],["matTooltip","Export current session",1,"material-symbols-outlined","toolbar-icon",3,"click"],["matTooltip","Import session",1,"material-symbols-outlined","toolbar-icon",3,"click"],[1,"empty-state-container"],[1,"warning"],[1,"error"],["mat-fab","","color","primary",1,"fab-button",3,"click"],[3,"userInputChange","userEditEvalCaseMessageChange","clickEvent","handleKeydown","cancelEditMessage","saveEditMessage","openViewImageDialog","openBase64InNewTab","editEvalCaseMessage","deleteEvalCaseMessage","editFunctionArgs","fileSelect","removeFile","removeStateUpdate","sendMessage","updateState","toggleAudioRecording","toggleVideoRecording","appName","messages","isChatMode","evalCase","isEvalEditMode","isEvalCaseEditing","isEditFunctionArgsEnabled","userInput","userEditEvalCaseMessage","selectedFiles","updatedSessionState","eventData","isAudioRecording","isVideoRecording","hoveredEventMessageIndices"],[1,"bottom-resize-handler"],[3,"panelClosed","userId","appName","sessionId"]],template:function(A,i){if(A&1){let n=me();S(0,"mat-drawer-container",2),NA(1,gPA,2,0,"span",3),S(2,"mat-drawer",4,0)(4,"app-side-panel",5),mA("closePanel",function(){return QA(n),uA(i.toggleSidePanel())})("tabChange",function(r){return QA(n),uA(i.handleTabChange(r))})("eventSelected",function(r){return QA(n),uA(i.selectEvent(r))})("sessionSelected",function(r){return QA(n),uA(i.updateWithSelectedSession(r))})("sessionReloaded",function(r){return QA(n),uA(i.updateSessionState(r))})("evalCaseSelected",function(r){return QA(n),uA(i.updateWithSelectedEvalCase(r))})("evalSetIdSelected",function(r){return QA(n),uA(i.updateSelectedEvalSetId(r))})("returnToSession",function(r){return QA(n),uA(i.handleReturnToSession(r))})("evalNotInstalled",function(r){return QA(n),uA(i.handleEvalNotInstalled(r))})("page",function(r){return QA(n),uA(i.handlePageEvent(r))})("closeSelectedEvent",function(){return QA(n),uA(i.closeSelectedEvent())})("openImageDialog",function(r){return QA(n),uA(i.openViewImageDialog(r))})("appSelectionChange",function(r){return QA(n),uA(i.onAppSelection(r))}),N()(),S(5,"div",6),NA(6,uPA,4,5,"div",7),S(7,"mat-card",8),NA(8,yPA,3,3)(9,vPA,3,0,"button",9)(10,MPA,2,17,"app-chat-panel",10),N(),NA(11,bPA,4,3,"div",11),N()()}A&2&&(_(),_A(!i.showSidePanel&&i.appName===""?1:-1),_(3),yA("isApplicationSelectorEnabledObs",i.isApplicationSelectorEnabledObs)("apps$",i.apps$)("isLoadingApps",i.isLoadingApps)("selectedAppControl",i.selectedAppControl)("showSidePanel",i.showSidePanel)("appName",i.appName)("userId",i.userId)("sessionId",i.sessionId)("traceData",i.traceData)("eventData",i.eventData)("currentSessionState",i.currentSessionState)("artifacts",i.artifacts)("selectedEvent",i.selectedEvent)("selectedEventIndex",i.selectedEventIndex)("renderedEventGraph",i.renderedEventGraph)("rawSvgString",i.rawSvgString)("llmRequest",i.llmRequest)("llmResponse",i.llmResponse),_(2),_A(i.appName!=""?6:-1),_(2),_A(i.selectedAppControl.value?-1:8),_(),_A(i.longRunningEvents.length>0?9:-1),_(),_A(i.appName!=""?10:-1),_(),_A(i.bottomPanelVisible?11:-1))},dependencies:[BR,kl,dR,O8,Mr,cB,_c,Sl,Vs,dr,ER,vq,y8,Jz,H8,F7,Qg,ZB,OQ],styles:[".expand-side-drawer[_ngcontent-%COMP%]{position:relative;top:4%;left:1%}.drawer-container[_ngcontent-%COMP%]{height:100%;background-color:var(--chat-drawer-container-background-color)}.chat-container[_ngcontent-%COMP%]{width:100%;height:100%;max-width:100%;margin:auto;display:flex;flex-direction:column;flex:1}.event-container[_ngcontent-%COMP%]{color:var(--chat-event-container-color)}.chat-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;overflow:hidden;flex:1;min-height:12%;box-shadow:none;background-color:var(--chat-card-background-color)}.function-event-button[_ngcontent-%COMP%] .mdc-button__label[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}.loading-bar[_ngcontent-%COMP%]{width:100px;margin:15px}.chat-messages[_ngcontent-%COMP%]{flex-grow:1;overflow-y:auto;padding:20px;margin-top:16px}.message-card[_ngcontent-%COMP%]{padding:5px 20px;margin:5px;border-radius:20px;max-width:80%;font-size:14px;font-weight:400;position:relative;display:inline-block}.function-event-button[_ngcontent-%COMP%]{background-color:var(--chat-function-event-button-background-color);margin:5px 5px 10px}.function-event-button-highlight[_ngcontent-%COMP%]{background-color:var(--chat-function-event-button-highlight-background-color);border-color:var(--chat-function-event-button-highlight-border-color)!important;color:var(--chat-function-event-button-highlight-color)!important}.user-message[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center}.user-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-user-message-message-card-background-color);align-self:flex-end;color:var(--chat-user-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]{display:flex;align-items:center}.bot-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-bot-message-message-card-background-color);align-self:flex-start;color:var(--chat-bot-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]:focus-within .message-card[_ngcontent-%COMP%]{background-color:var(--chat-bot-message-focus-within-message-card-background-color);border:1px solid var(--chat-bot-message-focus-within-message-card-border-color)}.message-textarea[_ngcontent-%COMP%]{background-color:var(--chat-message-textarea-background-color);max-width:100%;border:none;font-family:Google Sans,Helvetica Neue,sans-serif}.message-textarea[_ngcontent-%COMP%]:focus{background-color:var(--chat-message-textarea-focus-background-color);outline:none}.edit-message-buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%]{visibility:hidden;position:absolute;left:10px;z-index:10;background-color:var(--chat-eval-compare-container-background-color);overflow:hidden;border-radius:20px;padding:5px 20px;margin-bottom:10px;font-size:16px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .actual-result[_ngcontent-%COMP%]{border-right:2px solid var(--chat-actual-result-border-right-color);padding-right:8px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .expected-result[_ngcontent-%COMP%]{padding-left:12px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%]:hover .eval-compare-container[_ngcontent-%COMP%]{visibility:visible}.actual-expected-compare-container[_ngcontent-%COMP%]{display:flex}.score-threshold-container[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:10px;align-items:center;margin-top:15px;font-size:14px;font-weight:600}.eval-response-header[_ngcontent-%COMP%]{padding-bottom:5px;border-bottom:2px solid var(--chat-eval-response-header-border-bottom-color);font-style:italic;font-weight:700}.header-expected[_ngcontent-%COMP%]{color:var(--chat-header-expected-color)}.header-actual[_ngcontent-%COMP%]{color:var(--chat-header-actual-color)}.eval-case-edit-button[_ngcontent-%COMP%]{cursor:pointer;margin-left:4px;margin-right:4px}.eval-pass[_ngcontent-%COMP%]{display:flex;color:var(--chat-eval-pass-color)}.eval-fail[_ngcontent-%COMP%]{display:flex;color:var(--chat-eval-fail-color)}.navigation-button-sidepanel[_ngcontent-%COMP%]{margin-left:auto;margin-right:20px}.fab-button[_ngcontent-%COMP%]{position:fixed;bottom:200px;right:100px;z-index:1000}.sidepanel-toggle[_ngcontent-%COMP%]{position:relative;top:100px;z-index:1000}.side-drawer[_ngcontent-%COMP%]{background-color:var(--chat-side-drawer-background-color);color:var(--chat-side-drawer-color);border-radius:0}.file-preview[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px;margin-bottom:8px}.file-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:5px;background:var(--chat-file-item-background-color);padding:5px;border-radius:4px}button[_ngcontent-%COMP%]{margin-left:20px;margin-right:20px}.empty-state-container[_ngcontent-%COMP%]{color:var(--chat-empty-state-container-color);height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:Google Sans,sans-serif;font-weight:400;letter-spacing:normal;line-height:24px;font-size:18px}.empty-state-container[_ngcontent-%COMP%] pre.warning[_ngcontent-%COMP%]{color:var(--chat-warning-color)}.empty-state-container[_ngcontent-%COMP%] pre.error[_ngcontent-%COMP%]{color:var(--chat-error-color)}[_nghost-%COMP%] .mat-mdc-unelevated-button:not(:disabled){color:var(--chat-mat-mdc-unelevated-button-color);background-color:var(--chat-mat-mdc-unelevated-button-background-color)}[_nghost-%COMP%] .mdc-linear-progress__buffer-dots{background:var(--chat-mdc-linear-progress-buffer-dots-background-color)}[_nghost-%COMP%] .mat-mdc-select-arrow-wrapper{margin-left:4px}[_nghost-%COMP%] .mat-mdc-text-field-wrapper{border:1px solid var(--chat-mat-mdc-text-field-wrapper-border-color)}[_nghost-%COMP%] .mdc-notched-outline__leading, [_nghost-%COMP%] .mdc-notched-outline__notch, [_nghost-%COMP%] .mdc-notched-outline__trailing{border:none}[_nghost-%COMP%] .mat-mdc-form-field-icon-suffix{padding:0 10px 0 40px}[_nghost-%COMP%] .segment-key{color:var(--chat-segment-key-color)!important}.mat-mdc-select-placeholder[_ngcontent-%COMP%]{margin-left:20px}.bottom-resize-handler[_ngcontent-%COMP%]{background:var(--chat-bottom-resize-handler-background-color);height:5px;border-radius:4px;position:absolute;display:block;width:20%;left:40%;top:0;right:0;z-index:9999;cursor:ns-resize}.trace-detail-container[_ngcontent-%COMP%]{position:relative;background-color:var(--chat-trace-detail-container-background-color)}.trace-detail-container[_ngcontent-%COMP%] app-trace-event[_ngcontent-%COMP%]{padding-top:8px}.new-session-button[_ngcontent-%COMP%]{margin-top:0;margin-left:50px;width:130px;height:28px;font-size:14px}.adk-checkbox[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;right:0;margin-bottom:20px;margin-left:20px}.chat-toolbar[_ngcontent-%COMP%]{position:sticky;top:0;height:48px;background:var(--chat-toolbar-background-color);display:flex;align-items:center;z-index:10}.chat-toolbar.edit-mode[_ngcontent-%COMP%]{background:var(--chat-toolbar-edit-mode-background-color)}.toolbar-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center}.toolbar-session-text[_ngcontent-%COMP%]{color:var(--chat-toolbar-session-text-color);font-family:Roboto;font-size:12px;font-style:normal;font-weight:500;line-height:12px;letter-spacing:.8px;text-transform:uppercase;margin-left:20px;padding-top:4px}.toolbar-session-id[_ngcontent-%COMP%]{color:var(--chat-toolbar-session-id-color);font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px;margin-left:5px}.toolbar-icon[_ngcontent-%COMP%]{width:24px;height:24px;color:var(--chat-toolbar-icon-color);cursor:pointer;margin-right:16px}.toolbar-new-sesison[_ngcontent-%COMP%]{font-size:14px;margin-right:16px;color:var(--chat-toolbar-new-session-color);cursor:pointer;display:flex;align-items:center}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-label-text-size: 14px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-label-text-color: var(--chat-toolbar-sse-toggle-label-text-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-track-color: var(--chat-toolbar-sse-toggle-selected-track-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-focus-track-color: var(--chat-toolbar-sse-toggle-selected-track-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-hover-track-color: var(--chat-toolbar-sse-toggle-selected-track-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-handle-color: var(--chat-toolbar-sse-toggle-selected-handle-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-focus-handle-color: var(--chat-toolbar-sse-toggle-selected-handle-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-hover-handle-color: var(--chat-toolbar-sse-toggle-selected-handle-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-track-height: 24px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-track-width: 46px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-track-outline-color: var(--chat-toolbar-sse-toggle-track-outline-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-with-icon-handle-size: 20px} .mat-drawer-content{display:flex!important} .mat-drawer{border-right:1px solid var(--chat-mat-drawer-border-right-color)!important}"],changeDetection:0})};var zQ=class t{static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-root"]],decls:1,vars:0,template:function(A,i){A&1&&TA(0,"app-chat")},dependencies:[_7],encapsulation:2})};var RPA=[{path:"",component:zQ}],G7=class t{static \u0275fac=function(A){return new(A||t)};static \u0275mod=Ze({type:t});static \u0275inj=Ve({imports:[w8.forRoot(RPA),w8]})};var K7=class{static getRuntimeConfig(){return window.runtimeConfig}};function LPA(t,e){if(t&1&&(S(0,"a",0),TA(1,"img",1),AA(2),N()),t&2){Y();let A=xb(0),i=xb(1);_(),L2("src",A,js),_(),It(" ",i," ")}}function xPA(t,e){t&1&&(S(0,"div"),AA(1," Invalid custom logo config. Make sure that your runtime config specifies both imgUrl and text in the logo field. "),N())}var U7=class t{logoConfig=K7.getRuntimeConfig().logo;static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-custom-logo"]],decls:4,vars:3,consts:[["href","/"],["width","32px","height","32px",1,"orcas-logo",3,"src"]],template:function(A,i){if(A&1&&(Rb(0)(1),NA(2,LPA,3,2,"a",0)(3,xPA,2,0,"div")),A&2){let n=Lb(i.logoConfig==null?null:i.logoConfig.imageUrl);_();let o=Lb(i.logoConfig==null?null:i.logoConfig.text);_(),_A(n&&o?2:3)}},styles:[`a[_ngcontent-%COMP%]{color:inherit;text-decoration:none;display:flex;align-items:center;gap:8px} - - - - - - - - - - - - - - - - -`]})};function aU(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var cd=aU();function cgA(t){cd=t}var kf={exec:()=>null};function Vn(t,e=""){let A=typeof t=="string"?t:t.source,i={replace:(n,o)=>{let r=typeof o=="string"?o:o.source;return r=r.replace(ra.caret,"$1"),A=A.replace(n,r),i},getRegex:()=>new RegExp(A,e)};return i}var ra={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i")},NPA=/^(?:[ \t]*(?:\n|$))+/,FPA=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,_PA=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Sf=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,GPA=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,cU=/(?:[*+-]|\d{1,9}[.)])/,ggA=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,lgA=Vn(ggA).replace(/bull/g,cU).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),KPA=Vn(ggA).replace(/bull/g,cU).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),gU=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,UPA=/^[^\n]+/,lU=/(?!\s*\])(?:\\.|[^\[\]\\])+/,JPA=Vn(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",lU).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),YPA=Vn(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,cU).getRegex(),O7="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",IU=/|$))/,TPA=Vn("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",IU).replace("tag",O7).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),IgA=Vn(gU).replace("hr",Sf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O7).getRegex(),HPA=Vn(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",IgA).getRegex(),CU={blockquote:HPA,code:FPA,def:JPA,fences:_PA,heading:GPA,hr:Sf,html:TPA,lheading:lgA,list:YPA,newline:NPA,paragraph:IgA,table:kf,text:UPA},ngA=Vn("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Sf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O7).getRegex(),OPA=Fe(sA({},CU),{lheading:KPA,table:ngA,paragraph:Vn(gU).replace("hr",Sf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",ngA).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O7).getRegex()}),zPA=Fe(sA({},CU),{html:Vn(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",IU).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:kf,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Vn(gU).replace("hr",Sf).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",lgA).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()}),PPA=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,jPA=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,CgA=/^( {2,}|\\)\n(?!\s*$)/,qPA=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,EgA=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,$PA=Vn(EgA,"u").replace(/punct/g,z7).getRegex(),AjA=Vn(EgA,"u").replace(/punct/g,BgA).getRegex(),QgA="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",ejA=Vn(QgA,"gu").replace(/notPunctSpace/g,dgA).replace(/punctSpace/g,dU).replace(/punct/g,z7).getRegex(),tjA=Vn(QgA,"gu").replace(/notPunctSpace/g,WPA).replace(/punctSpace/g,ZPA).replace(/punct/g,BgA).getRegex(),ijA=Vn("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,dgA).replace(/punctSpace/g,dU).replace(/punct/g,z7).getRegex(),njA=Vn(/\\(punct)/,"gu").replace(/punct/g,z7).getRegex(),ojA=Vn(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),rjA=Vn(IU).replace("(?:-->|$)","-->").getRegex(),sjA=Vn("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",rjA).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),T7=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,ajA=Vn(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",T7).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),ugA=Vn(/^!?\[(label)\]\[(ref)\]/).replace("label",T7).replace("ref",lU).getRegex(),hgA=Vn(/^!?\[(ref)\](?:\[\])?/).replace("ref",lU).getRegex(),cjA=Vn("reflink|nolink(?!\\()","g").replace("reflink",ugA).replace("nolink",hgA).getRegex(),BU={_backpedal:kf,anyPunctuation:njA,autolink:ojA,blockSkip:XPA,br:CgA,code:jPA,del:kf,emStrongLDelim:$PA,emStrongRDelimAst:ejA,emStrongRDelimUnd:ijA,escape:PPA,link:ajA,nolink:hgA,punctuation:VPA,reflink:ugA,reflinkSearch:cjA,tag:sjA,text:qPA,url:kf},gjA=Fe(sA({},BU),{link:Vn(/^!?\[(label)\]\((.*?)\)/).replace("label",T7).getRegex(),reflink:Vn(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",T7).getRegex()}),oU=Fe(sA({},BU),{emStrongRDelimAst:tjA,emStrongLDelim:AjA,url:Vn(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},ogA=t=>IjA[t];function c0(t,e){if(e){if(ra.escapeTest.test(t))return t.replace(ra.escapeReplace,ogA)}else if(ra.escapeTestNoEncode.test(t))return t.replace(ra.escapeReplaceNoEncode,ogA);return t}function rgA(t){try{t=encodeURI(t).replace(ra.percentDecode,"%")}catch{return null}return t}function sgA(t,e){let A=t.replace(ra.findPipe,(o,r,s)=>{let a=!1,c=r;for(;--c>=0&&s[c]==="\\";)a=!a;return a?"|":" |"}),i=A.split(ra.splitPipe),n=0;if(i[0].trim()||i.shift(),i.length>0&&!i.at(-1)?.trim()&&i.pop(),e)if(i.length>e)i.splice(e);else for(;i.length0?-2:-1}function agA(t,e,A,i,n){let o=e.href,r=e.title||null,s=t[1].replace(n.other.outputLinkReplace,"$1");i.state.inLink=!0;let a={type:t[0].charAt(0)==="!"?"image":"link",raw:A,href:o,title:r,text:s,tokens:i.inlineTokens(s)};return i.state.inLink=!1,a}function djA(t,e,A){let i=t.match(A.other.indentCodeCompensation);if(i===null)return e;let n=i[1];return e.split(` -`).map(o=>{let r=o.match(A.other.beginningSpace);if(r===null)return o;let[s]=r;return s.length>=n.length?o.slice(n.length):o}).join(` -`)}var H7=class{options;rules;lexer;constructor(t){this.options=t||cd}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let A=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?A:bf(A,` -`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let A=e[0],i=djA(A,e[3]||"",this.rules);return{type:"code",raw:A,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:i}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let A=e[2].trim();if(this.rules.other.endingHash.test(A)){let i=bf(A,"#");(this.options.pedantic||!i||this.rules.other.endingSpaceChar.test(i))&&(A=i.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:A,tokens:this.lexer.inline(A)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:bf(e[0],` -`)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let A=bf(e[0],` -`).split(` -`),i="",n="",o=[];for(;A.length>0;){let r=!1,s=[],a;for(a=0;a1,n={type:"list",raw:"",ordered:i,start:i?+A.slice(0,-1):"",loose:!1,items:[]};A=i?`\\d{1,9}\\${A.slice(-1)}`:`\\${A}`,this.options.pedantic&&(A=i?A:"[*+-]");let o=this.rules.other.listItemRegex(A),r=!1;for(;t;){let a=!1,c="",g="";if(!(e=o.exec(t))||this.rules.block.hr.test(t))break;c=e[0],t=t.substring(c.length);let I=e[2].split(` -`,1)[0].replace(this.rules.other.listReplaceTabs,h=>" ".repeat(3*h.length)),C=t.split(` -`,1)[0],d=!I.trim(),B=0;if(this.options.pedantic?(B=2,g=I.trimStart()):d?B=e[1].length+1:(B=e[2].search(this.rules.other.nonSpaceChar),B=B>4?1:B,g=I.slice(B),B+=e[1].length),d&&this.rules.other.blankLine.test(C)&&(c+=C+` -`,t=t.substring(C.length+1),a=!0),!a){let h=this.rules.other.nextBulletRegex(B),w=this.rules.other.hrRegex(B),x=this.rules.other.fencesBeginRegex(B),R=this.rules.other.headingBeginRegex(B),D=this.rules.other.htmlBeginRegex(B);for(;t;){let G=t.split(` -`,1)[0],J;if(C=G,this.options.pedantic?(C=C.replace(this.rules.other.listReplaceNesting," "),J=C):J=C.replace(this.rules.other.tabCharGlobal," "),x.test(C)||R.test(C)||D.test(C)||h.test(C)||w.test(C))break;if(J.search(this.rules.other.nonSpaceChar)>=B||!C.trim())g+=` -`+J.slice(B);else{if(d||I.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||x.test(I)||R.test(I)||w.test(I))break;g+=` -`+C}!d&&!C.trim()&&(d=!0),c+=G+` -`,t=t.substring(G.length+1),I=J.slice(B)}}n.loose||(r?n.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(r=!0));let E=null,u;this.options.gfm&&(E=this.rules.other.listIsTask.exec(g),E&&(u=E[0]!=="[ ] ",g=g.replace(this.rules.other.listReplaceTask,""))),n.items.push({type:"list_item",raw:c,task:!!E,checked:u,loose:!1,text:g,tokens:[]}),n.raw+=c}let s=n.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;n.raw=n.raw.trimEnd();for(let a=0;aI.type==="space"),g=c.length>0&&c.some(I=>this.rules.other.anyLine.test(I.raw));n.loose=g}if(n.loose)for(let a=0;a({text:s,tokens:this.lexer.inline(s),header:!1,align:o.align[a]})));return o}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let A=e[1].charAt(e[1].length-1)===` -`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:A,tokens:this.lexer.inline(A)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let A=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(A)){if(!this.rules.other.endAngleBracket.test(A))return;let o=bf(A.slice(0,-1),"\\");if((A.length-o.length)%2===0)return}else{let o=CjA(e[2],"()");if(o===-2)return;if(o>-1){let s=(e[0].indexOf("!")===0?5:4)+e[1].length+o;e[2]=e[2].substring(0,o),e[0]=e[0].substring(0,s).trim(),e[3]=""}}let i=e[2],n="";if(this.options.pedantic){let o=this.rules.other.pedanticHrefTitle.exec(i);o&&(i=o[1],n=o[3])}else n=e[3]?e[3].slice(1,-1):"";return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(A)?i=i.slice(1):i=i.slice(1,-1)),agA(e,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let A;if((A=this.rules.inline.reflink.exec(t))||(A=this.rules.inline.nolink.exec(t))){let i=(A[2]||A[1]).replace(this.rules.other.multipleSpaceGlobal," "),n=e[i.toLowerCase()];if(!n){let o=A[0].charAt(0);return{type:"text",raw:o,text:o}}return agA(A,n,A[0],this.lexer,this.rules)}}emStrong(t,e,A=""){let i=this.rules.inline.emStrongLDelim.exec(t);if(!i||i[3]&&A.match(this.rules.other.unicodeAlphaNumeric))return;if(!(i[1]||i[2]||"")||!A||this.rules.inline.punctuation.exec(A)){let o=[...i[0]].length-1,r,s,a=o,c=0,g=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(g.lastIndex=0,e=e.slice(-1*t.length+o);(i=g.exec(e))!=null;){if(r=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!r)continue;if(s=[...r].length,i[3]||i[4]){a+=s;continue}else if((i[5]||i[6])&&o%3&&!((o+s)%3)){c+=s;continue}if(a-=s,a>0)continue;s=Math.min(s,s+a+c);let I=[...i[0]][0].length,C=t.slice(0,o+i.index+I+s);if(Math.min(o,s)%2){let B=C.slice(1,-1);return{type:"em",raw:C,text:B,tokens:this.lexer.inlineTokens(B)}}let d=C.slice(2,-2);return{type:"strong",raw:C,text:d,tokens:this.lexer.inlineTokens(d)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let A=e[2].replace(this.rules.other.newLineCharGlobal," "),i=this.rules.other.nonSpaceChar.test(A),n=this.rules.other.startingSpaceChar.test(A)&&this.rules.other.endingSpaceChar.test(A);return i&&n&&(A=A.substring(1,A.length-1)),{type:"codespan",raw:e[0],text:A}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){let e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let A,i;return e[2]==="@"?(A=e[1],i="mailto:"+A):(A=e[1],i=A),{type:"link",raw:e[0],text:A,href:i,tokens:[{type:"text",raw:A,text:A}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let A,i;if(e[2]==="@")A=e[0],i="mailto:"+A;else{let n;do n=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(n!==e[0]);A=e[0],e[1]==="www."?i="http://"+e[0]:i=e[0]}return{type:"link",raw:e[0],text:A,href:i,tokens:[{type:"text",raw:A,text:A}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let A=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:A}}}},l2=class rU{tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||cd,this.options.tokenizer=this.options.tokenizer||new H7,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let A={other:ra,block:J7.normal,inline:Mf.normal};this.options.pedantic?(A.block=J7.pedantic,A.inline=Mf.pedantic):this.options.gfm&&(A.block=J7.gfm,this.options.breaks?A.inline=Mf.breaks:A.inline=Mf.gfm),this.tokenizer.rules=A}static get rules(){return{block:J7,inline:Mf}}static lex(e,A){return new rU(A).lex(e)}static lexInline(e,A){return new rU(A).inlineTokens(e)}lex(e){e=e.replace(ra.carriageReturn,` -`),this.blockTokens(e,this.tokens);for(let A=0;A(n=r.call({lexer:this},e,A))?(e=e.substring(n.raw.length),A.push(n),!0):!1))continue;if(n=this.tokenizer.space(e)){e=e.substring(n.raw.length);let r=A.at(-1);n.raw.length===1&&r!==void 0?r.raw+=` -`:A.push(n);continue}if(n=this.tokenizer.code(e)){e=e.substring(n.raw.length);let r=A.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=` -`+n.raw,r.text+=` -`+n.text,this.inlineQueue.at(-1).src=r.text):A.push(n);continue}if(n=this.tokenizer.fences(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.heading(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.hr(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.blockquote(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.list(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.html(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.def(e)){e=e.substring(n.raw.length);let r=A.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=` -`+n.raw,r.text+=` -`+n.raw,this.inlineQueue.at(-1).src=r.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title});continue}if(n=this.tokenizer.table(e)){e=e.substring(n.raw.length),A.push(n);continue}if(n=this.tokenizer.lheading(e)){e=e.substring(n.raw.length),A.push(n);continue}let o=e;if(this.options.extensions?.startBlock){let r=1/0,s=e.slice(1),a;this.options.extensions.startBlock.forEach(c=>{a=c.call({lexer:this},s),typeof a=="number"&&a>=0&&(r=Math.min(r,a))}),r<1/0&&r>=0&&(o=e.substring(0,r+1))}if(this.state.top&&(n=this.tokenizer.paragraph(o))){let r=A.at(-1);i&&r?.type==="paragraph"?(r.raw+=` -`+n.raw,r.text+=` -`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):A.push(n),i=o.length!==e.length,e=e.substring(n.raw.length);continue}if(n=this.tokenizer.text(e)){e=e.substring(n.raw.length);let r=A.at(-1);r?.type==="text"?(r.raw+=` -`+n.raw,r.text+=` -`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):A.push(n);continue}if(e){let r="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(r);break}else throw new Error(r)}}return this.state.top=!0,A}inline(e,A=[]){return this.inlineQueue.push({src:e,tokens:A}),A}inlineTokens(e,A=[]){let i=e,n=null;if(this.tokens.links){let s=Object.keys(this.tokens.links);if(s.length>0)for(;(n=this.tokenizer.rules.inline.reflinkSearch.exec(i))!=null;)s.includes(n[0].slice(n[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(n=this.tokenizer.rules.inline.anyPunctuation.exec(i))!=null;)i=i.slice(0,n.index)+"++"+i.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(n=this.tokenizer.rules.inline.blockSkip.exec(i))!=null;)i=i.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let o=!1,r="";for(;e;){o||(r=""),o=!1;let s;if(this.options.extensions?.inline?.some(c=>(s=c.call({lexer:this},e,A))?(e=e.substring(s.raw.length),A.push(s),!0):!1))continue;if(s=this.tokenizer.escape(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.tag(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.link(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(s.raw.length);let c=A.at(-1);s.type==="text"&&c?.type==="text"?(c.raw+=s.raw,c.text+=s.text):A.push(s);continue}if(s=this.tokenizer.emStrong(e,i,r)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.codespan(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.br(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.del(e)){e=e.substring(s.raw.length),A.push(s);continue}if(s=this.tokenizer.autolink(e)){e=e.substring(s.raw.length),A.push(s);continue}if(!this.state.inLink&&(s=this.tokenizer.url(e))){e=e.substring(s.raw.length),A.push(s);continue}let a=e;if(this.options.extensions?.startInline){let c=1/0,g=e.slice(1),I;this.options.extensions.startInline.forEach(C=>{I=C.call({lexer:this},g),typeof I=="number"&&I>=0&&(c=Math.min(c,I))}),c<1/0&&c>=0&&(a=e.substring(0,c+1))}if(s=this.tokenizer.inlineText(a)){e=e.substring(s.raw.length),s.raw.slice(-1)!=="_"&&(r=s.raw.slice(-1)),o=!0;let c=A.at(-1);c?.type==="text"?(c.raw+=s.raw,c.text+=s.text):A.push(s);continue}if(e){let c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return A}},CI=class{options;parser;constructor(t){this.options=t||cd}space(t){return""}code({text:t,lang:e,escaped:A}){let i=(e||"").match(ra.notSpaceStart)?.[0],n=t.replace(ra.endingNewline,"")+` -`;return i?'
              '+(A?n:c0(n,!0))+`
              -`:"
              "+(A?n:c0(n,!0))+`
              -`}blockquote({tokens:t}){return`
              -${this.parser.parse(t)}
              -`}html({text:t}){return t}heading({tokens:t,depth:e}){return`${this.parser.parseInline(t)} -`}hr(t){return`
              -`}list(t){let e=t.ordered,A=t.start,i="";for(let r=0;r -`+i+" -`}listitem(t){let e="";if(t.task){let A=this.checkbox({checked:!!t.checked});t.loose?t.tokens[0]?.type==="paragraph"?(t.tokens[0].text=A+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=A+" "+c0(t.tokens[0].tokens[0].text),t.tokens[0].tokens[0].escaped=!0)):t.tokens.unshift({type:"text",raw:A+" ",text:A+" ",escaped:!0}):e+=A+" "}return e+=this.parser.parse(t.tokens,!!t.loose),`
            • ${e}
            • -`}checkbox({checked:t}){return"'}paragraph({tokens:t}){return`

              ${this.parser.parseInline(t)}

              -`}table(t){let e="",A="";for(let n=0;n${i}`),` - -`+e+` -`+i+`
              -`}tablerow({text:t}){return` -${t} -`}tablecell(t){let e=this.parser.parseInline(t.tokens),A=t.header?"th":"td";return(t.align?`<${A} align="${t.align}">`:`<${A}>`)+e+` -`}strong({tokens:t}){return`${this.parser.parseInline(t)}`}em({tokens:t}){return`${this.parser.parseInline(t)}`}codespan({text:t}){return`${c0(t,!0)}`}br(t){return"
              "}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:e,tokens:A}){let i=this.parser.parseInline(A),n=rgA(t);if(n===null)return i;t=n;let o='
              ",o}image({href:t,title:e,text:A,tokens:i}){i&&(A=this.parser.parseInline(i,this.parser.textRenderer));let n=rgA(t);if(n===null)return c0(A);t=n;let o=`${A}{let r=n[o].flat(1/0);A=A.concat(this.walkTokens(r,e))}):n.tokens&&(A=A.concat(this.walkTokens(n.tokens,e)))}}return A}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(A=>{let i=sA({},A);if(i.async=this.defaults.async||i.async||!1,A.extensions&&(A.extensions.forEach(n=>{if(!n.name)throw new Error("extension name required");if("renderer"in n){let o=e.renderers[n.name];o?e.renderers[n.name]=function(...r){let s=n.renderer.apply(this,r);return s===!1&&(s=o.apply(this,r)),s}:e.renderers[n.name]=n.renderer}if("tokenizer"in n){if(!n.level||n.level!=="block"&&n.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let o=e[n.level];o?o.unshift(n.tokenizer):e[n.level]=[n.tokenizer],n.start&&(n.level==="block"?e.startBlock?e.startBlock.push(n.start):e.startBlock=[n.start]:n.level==="inline"&&(e.startInline?e.startInline.push(n.start):e.startInline=[n.start]))}"childTokens"in n&&n.childTokens&&(e.childTokens[n.name]=n.childTokens)}),i.extensions=e),A.renderer){let n=this.defaults.renderer||new CI(this.defaults);for(let o in A.renderer){if(!(o in n))throw new Error(`renderer '${o}' does not exist`);if(["options","parser"].includes(o))continue;let r=o,s=A.renderer[r],a=n[r];n[r]=(...c)=>{let g=s.apply(n,c);return g===!1&&(g=a.apply(n,c)),g||""}}i.renderer=n}if(A.tokenizer){let n=this.defaults.tokenizer||new H7(this.defaults);for(let o in A.tokenizer){if(!(o in n))throw new Error(`tokenizer '${o}' does not exist`);if(["options","rules","lexer"].includes(o))continue;let r=o,s=A.tokenizer[r],a=n[r];n[r]=(...c)=>{let g=s.apply(n,c);return g===!1&&(g=a.apply(n,c)),g}}i.tokenizer=n}if(A.hooks){let n=this.defaults.hooks||new Y7;for(let o in A.hooks){if(!(o in n))throw new Error(`hook '${o}' does not exist`);if(["options","block"].includes(o))continue;let r=o,s=A.hooks[r],a=n[r];Y7.passThroughHooks.has(o)?n[r]=c=>{if(this.defaults.async)return Promise.resolve(s.call(n,c)).then(I=>a.call(n,I));let g=s.call(n,c);return a.call(n,g)}:n[r]=(...c)=>{let g=s.apply(n,c);return g===!1&&(g=a.apply(n,c)),g}}i.hooks=n}if(A.walkTokens){let n=this.defaults.walkTokens,o=A.walkTokens;i.walkTokens=function(r){let s=[];return s.push(o.call(this,r)),n&&(s=s.concat(n.call(this,r))),s}}this.defaults=sA(sA({},this.defaults),i)}),this}setOptions(t){return this.defaults=sA(sA({},this.defaults),t),this}lexer(t,e){return l2.lex(t,e??this.defaults)}parser(t,e){return I2.parse(t,e??this.defaults)}parseMarkdown(t){return(A,i)=>{let n=sA({},i),o=sA(sA({},this.defaults),n),r=this.onError(!!o.silent,!!o.async);if(this.defaults.async===!0&&n.async===!1)return r(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof A>"u"||A===null)return r(new Error("marked(): input parameter is undefined or null"));if(typeof A!="string")return r(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(A)+", string expected"));o.hooks&&(o.hooks.options=o,o.hooks.block=t);let s=o.hooks?o.hooks.provideLexer():t?l2.lex:l2.lexInline,a=o.hooks?o.hooks.provideParser():t?I2.parse:I2.parseInline;if(o.async)return Promise.resolve(o.hooks?o.hooks.preprocess(A):A).then(c=>s(c,o)).then(c=>o.hooks?o.hooks.processAllTokens(c):c).then(c=>o.walkTokens?Promise.all(this.walkTokens(c,o.walkTokens)).then(()=>c):c).then(c=>a(c,o)).then(c=>o.hooks?o.hooks.postprocess(c):c).catch(r);try{o.hooks&&(A=o.hooks.preprocess(A));let c=s(A,o);o.hooks&&(c=o.hooks.processAllTokens(c)),o.walkTokens&&this.walkTokens(c,o.walkTokens);let g=a(c,o);return o.hooks&&(g=o.hooks.postprocess(g)),g}catch(c){return r(c)}}}onError(t,e){return A=>{if(A.message+=` -Please report this to https://github.com/markedjs/marked.`,t){let i="

              An error occurred:

              "+c0(A.message+"",!0)+"
              ";return e?Promise.resolve(i):i}if(e)return Promise.reject(A);throw A}}},ad=new BjA;function yn(t,e){return ad.parse(t,e)}yn.options=yn.setOptions=function(t){return ad.setOptions(t),yn.defaults=ad.defaults,cgA(yn.defaults),yn};yn.getDefaults=aU;yn.defaults=cd;yn.use=function(...t){return ad.use(...t),yn.defaults=ad.defaults,cgA(yn.defaults),yn};yn.walkTokens=function(t,e){return ad.walkTokens(t,e)};yn.parseInline=ad.parseInline;yn.Parser=I2;yn.parser=I2.parse;yn.Renderer=CI;yn.TextRenderer=EU;yn.Lexer=l2;yn.lexer=l2.lex;yn.Tokenizer=H7;yn.Hooks=Y7;yn.parse=yn;var oSe=yn.options,rSe=yn.setOptions,sSe=yn.use,aSe=yn.walkTokens,cSe=yn.parseInline;var gSe=I2.parse,lSe=l2.lex;var EjA=["*"],QjA="Copy",ujA="Copied",hjA=(()=>{class t{constructor(){this._buttonClick$=new qA,this.copied$=this._buttonClick$.pipe($n(()=>Hn(Ce(!0),fI(3e3).pipe(wd(!1)))),il(),h2(1)),this.copiedText$=this.copied$.pipe(On(!1),je(A=>A?ujA:QjA))}onCopyToClipboardClick(){this._buttonClick$.next()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=jA({type:t,selectors:[["markdown-clipboard"]],decls:4,vars:7,consts:[[1,"markdown-clipboard-button",3,"click"]],template:function(i,n){i&1&&(S(0,"button",0),eo(1,"async"),mA("click",function(){return n.onCopyToClipboardClick()}),AA(2),eo(3,"async"),N()),i&2&&(he("copied",Yo(1,3,n.copied$)),_(2),tt(Yo(3,5,n.copiedText$)))},dependencies:[Qg],encapsulation:2,changeDetection:0})}}return t})(),fjA=new eA("CLIPBOARD_OPTIONS");var QU=function(t){return t.CommandLine="command-line",t.LineHighlight="line-highlight",t.LineNumbers="line-numbers",t}(QU||{}),fgA=new eA("MARKED_EXTENSIONS"),mjA=new eA("MARKED_OPTIONS"),pjA=new eA("MERMAID_OPTIONS"),DjA="[ngx-markdown] When using the `emoji` attribute you *have to* include Emoji-Toolkit files to `angular.json` or use imports. See README for more information",wjA="[ngx-markdown] When using the `katex` attribute you *have to* include KaTeX files to `angular.json` or use imports. See README for more information",yjA="[ngx-markdown] When using the `mermaid` attribute you *have to* include Mermaid files to `angular.json` or use imports. See README for more information",vjA="[ngx-markdown] When using the `clipboard` attribute you *have to* include Clipboard files to `angular.json` or use imports. See README for more information",MjA="[ngx-markdown] When using the `clipboard` attribute you *have to* provide the `viewContainerRef` parameter to `MarkdownService.render()` function",bjA="[ngx-markdown] When using the `src` attribute you *have to* pass the `HttpClient` as a parameter of the `forRoot` method. See README for more information",mgA=new eA("SECURITY_CONTEXT");var pgA=(()=>{class t{get options(){return this._options}set options(A){this._options=sA(sA({},this.DEFAULT_MARKED_OPTIONS),A)}get renderer(){return this.options.renderer}set renderer(A){this.options.renderer=A}constructor(A,i,n,o,r,s,a,c){this.clipboardOptions=A,this.extensions=i,this.mermaidOptions=o,this.platform=r,this.securityContext=s,this.http=a,this.sanitizer=c,this.DEFAULT_MARKED_OPTIONS={renderer:new CI},this.DEFAULT_KATEX_OPTIONS={delimiters:[{left:"$$",right:"$$",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}]},this.DEFAULT_MERMAID_OPTIONS={startOnLoad:!1},this.DEFAULT_CLIPBOARD_OPTIONS={buttonComponent:void 0},this.DEFAULT_PARSE_OPTIONS={decodeHtml:!1,inline:!1,emoji:!1,mermaid:!1,markedOptions:void 0,disableSanitizer:!1},this.DEFAULT_RENDER_OPTIONS={clipboard:!1,clipboardOptions:void 0,katex:!1,katexOptions:void 0,mermaid:!1,mermaidOptions:void 0},this._reload$=new qA,this.reload$=this._reload$.asObservable(),this.options=n}parse(A,i=this.DEFAULT_PARSE_OPTIONS){let{decodeHtml:n,inline:o,emoji:r,mermaid:s,disableSanitizer:a}=i,c=sA(sA({},this.options),i.markedOptions),g=c.renderer||this.renderer||new CI;this.extensions&&(this.renderer=this.extendsRendererForExtensions(g)),s&&(this.renderer=this.extendsRendererForMermaid(g));let I=this.trimIndentation(A),C=n?this.decodeHtml(I):I,d=r?this.parseEmoji(C):C,B=this.parseMarked(d,c,o);return(a?B:this.sanitizer.sanitize(this.securityContext,B))||""}render(A,i=this.DEFAULT_RENDER_OPTIONS,n){let{clipboard:o,clipboardOptions:r,katex:s,katexOptions:a,mermaid:c,mermaidOptions:g}=i;s&&this.renderKatex(A,sA(sA({},this.DEFAULT_KATEX_OPTIONS),a)),c&&this.renderMermaid(A,sA(sA(sA({},this.DEFAULT_MERMAID_OPTIONS),this.mermaidOptions),g)),o&&this.renderClipboard(A,n,sA(sA(sA({},this.DEFAULT_CLIPBOARD_OPTIONS),this.clipboardOptions),r)),this.highlight(A)}reload(){this._reload$.next()}getSource(A){if(!this.http)throw new Error(bjA);return this.http.get(A,{responseType:"text"}).pipe(je(i=>this.handleExtension(A,i)))}highlight(A){if(!ul(this.platform)||typeof Prism>"u"||typeof Prism.highlightAllUnder>"u")return;A||(A=document);let i=A.querySelectorAll('pre code:not([class*="language-"])');Array.prototype.forEach.call(i,n=>n.classList.add("language-none")),Prism.highlightAllUnder(A)}decodeHtml(A){if(!ul(this.platform))return A;let i=document.createElement("textarea");return i.innerHTML=A,i.value}extendsRendererForExtensions(A){let i=A;return i.\u0275NgxMarkdownRendererExtendedForExtensions===!0||(this.extensions?.length>0&&yn.use(...this.extensions),i.\u0275NgxMarkdownRendererExtendedForExtensions=!0),A}extendsRendererForMermaid(A){let i=A;if(i.\u0275NgxMarkdownRendererExtendedForMermaid===!0)return A;let n=A.code;return A.code=o=>o.lang==="mermaid"?`
              ${o.text}
              `:n(o),i.\u0275NgxMarkdownRendererExtendedForMermaid=!0,A}handleExtension(A,i){let n=A.lastIndexOf("://"),o=n>-1?A.substring(n+4):A,r=o.lastIndexOf("/"),s=r>-1?o.substring(r+1).split("?")[0]:"",a=s.lastIndexOf("."),c=a>-1?s.substring(a+1):"";return c&&c!=="md"?"```"+c+` -`+i+"\n```":i}parseMarked(A,i,n=!1){if(i.renderer){let o=sA({},i.renderer);delete o.\u0275NgxMarkdownRendererExtendedForExtensions,delete o.\u0275NgxMarkdownRendererExtendedForMermaid,delete i.renderer,yn.use({renderer:o})}return n?yn.parseInline(A,i):yn.parse(A,i)}parseEmoji(A){if(!ul(this.platform))return A;if(typeof joypixels>"u"||typeof joypixels.shortnameToUnicode>"u")throw new Error(DjA);return joypixels.shortnameToUnicode(A)}renderKatex(A,i){if(ul(this.platform)){if(typeof katex>"u"||typeof renderMathInElement>"u")throw new Error(wjA);renderMathInElement(A,i)}}renderClipboard(A,i,n){if(!ul(this.platform))return;if(typeof ClipboardJS>"u")throw new Error(vjA);if(!i)throw new Error(MjA);let{buttonComponent:o,buttonTemplate:r}=n,s=A.querySelectorAll("pre");for(let a=0;aI.classList.add("hover"),g.onmouseleave=()=>I.classList.remove("hover");let C;if(o){let B=i.createComponent(o);C=B.hostView,B.changeDetectorRef.markForCheck()}else if(r)C=i.createEmbeddedView(r);else{let B=i.createComponent(hjA);C=B.hostView,B.changeDetectorRef.markForCheck()}let d;C.rootNodes.forEach(B=>{I.appendChild(B),d=new ClipboardJS(B,{text:()=>c.innerText})}),C.onDestroy(()=>d.destroy())}}renderMermaid(A,i=this.DEFAULT_MERMAID_OPTIONS){if(!ul(this.platform))return;if(typeof mermaid>"u"||typeof mermaid.initialize>"u")throw new Error(yjA);let n=A.querySelectorAll(".mermaid");n.length!==0&&(mermaid.initialize(i),mermaid.run({nodes:n}))}trimIndentation(A){if(!A)return"";let i;return A.split(` -`).map(n=>{let o=i;return n.length>0&&(o=isNaN(o)?n.search(/\S|$/):Math.min(n.search(/\S|$/),o)),isNaN(i)&&(i=o),o?n.substring(o):n}).join(` -`)}static{this.\u0275fac=function(i){return new(i||t)(be(fjA,8),be(fgA,8),be(mjA,8),be(pjA,8),be(El),be(mgA),be(ks,8),be(oc))}}static{this.\u0275prov=bA({token:t,factory:t.\u0275fac})}}return t})(),DgA=(()=>{class t{get disableSanitizer(){return this._disableSanitizer}set disableSanitizer(A){this._disableSanitizer=this.coerceBooleanProperty(A)}get inline(){return this._inline}set inline(A){this._inline=this.coerceBooleanProperty(A)}get clipboard(){return this._clipboard}set clipboard(A){this._clipboard=this.coerceBooleanProperty(A)}get emoji(){return this._emoji}set emoji(A){this._emoji=this.coerceBooleanProperty(A)}get katex(){return this._katex}set katex(A){this._katex=this.coerceBooleanProperty(A)}get mermaid(){return this._mermaid}set mermaid(A){this._mermaid=this.coerceBooleanProperty(A)}get lineHighlight(){return this._lineHighlight}set lineHighlight(A){this._lineHighlight=this.coerceBooleanProperty(A)}get lineNumbers(){return this._lineNumbers}set lineNumbers(A){this._lineNumbers=this.coerceBooleanProperty(A)}get commandLine(){return this._commandLine}set commandLine(A){this._commandLine=this.coerceBooleanProperty(A)}constructor(A,i,n){this.element=A,this.markdownService=i,this.viewContainerRef=n,this.error=new YA,this.load=new YA,this.ready=new YA,this._clipboard=!1,this._commandLine=!1,this._disableSanitizer=!1,this._emoji=!1,this._inline=!1,this._katex=!1,this._lineHighlight=!1,this._lineNumbers=!1,this._mermaid=!1,this.destroyed$=new qA}ngOnChanges(){this.loadContent()}loadContent(){if(this.data!=null){this.handleData();return}if(this.src!=null){this.handleSrc();return}}ngAfterViewInit(){!this.data&&!this.src&&this.handleTransclusion(),this.markdownService.reload$.pipe(kt(this.destroyed$)).subscribe(()=>this.loadContent())}ngOnDestroy(){this.destroyed$.next(),this.destroyed$.complete()}render(A,i=!1){return Ni(this,null,function*(){let n={decodeHtml:i,inline:this.inline,emoji:this.emoji,mermaid:this.mermaid,disableSanitizer:this.disableSanitizer},o={clipboard:this.clipboard,clipboardOptions:this.getClipboardOptions(),katex:this.katex,katexOptions:this.katexOptions,mermaid:this.mermaid,mermaidOptions:this.mermaidOptions},r=yield this.markdownService.parse(A,n);this.element.nativeElement.innerHTML=r,this.handlePlugins(),this.markdownService.render(this.element.nativeElement,o,this.viewContainerRef),this.ready.emit()})}coerceBooleanProperty(A){return A!=null&&`${String(A)}`!="false"}getClipboardOptions(){if(this.clipboardButtonComponent||this.clipboardButtonTemplate)return{buttonComponent:this.clipboardButtonComponent,buttonTemplate:this.clipboardButtonTemplate}}handleData(){this.render(this.data)}handleSrc(){this.markdownService.getSource(this.src).subscribe({next:A=>{this.render(A).then(()=>{this.load.emit(A)})},error:A=>this.error.emit(A)})}handleTransclusion(){this.render(this.element.nativeElement.innerHTML,!0)}handlePlugins(){this.commandLine&&(this.setPluginClass(this.element.nativeElement,QU.CommandLine),this.setPluginOptions(this.element.nativeElement,{dataFilterOutput:this.filterOutput,dataHost:this.host,dataPrompt:this.prompt,dataOutput:this.output,dataUser:this.user})),this.lineHighlight&&this.setPluginOptions(this.element.nativeElement,{dataLine:this.line,dataLineOffset:this.lineOffset}),this.lineNumbers&&(this.setPluginClass(this.element.nativeElement,QU.LineNumbers),this.setPluginOptions(this.element.nativeElement,{dataStart:this.start}))}setPluginClass(A,i){let n=A.querySelectorAll("pre");for(let o=0;o{let s=i[r];if(s){let a=this.toLispCase(r);n.item(o).setAttribute(a,s.toString())}})}toLispCase(A){let i=A.match(/([A-Z])/g);if(!i)return A;let n=A.toString();for(let o=0,r=i.length;o{let i=kjA(A)?Fe(sA({},A),{multi:!0}):{provide:fgA,useValue:A,multi:!0};return[...e,i]},[])}var wgA=(()=>{class t{static forRoot(A){return{ngModule:t,providers:[uU(A)]}}static forChild(){return{ngModule:t}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Ze({type:t})}static{this.\u0275inj=Ve({imports:[ug]})}}return t})();var LjA=(t,e)=>({"font-style":t,color:e}),P7=class t{text=bs("");thought=bs(!1);static \u0275fac=function(A){return new(A||t)};static \u0275cmp=jA({type:t,selectors:[["app-markdown"]],inputs:{text:[1,"text"],thought:[1,"thought"]},features:[ut([uU()])],decls:1,vars:5,consts:[[3,"data","ngStyle"]],template:function(A,i){A&1&&TA(0,"markdown",0),A&2&&yA("data",i.text())("ngStyle",Bg(2,LjA,i.thought()?"italic":"normal",i.thought()?"#9aa0a6":"white"))},dependencies:[ug,Yb,wgA,DgA],encapsulation:2})};var j7=class t{constructor(e,A){this.http=e;this.zone=A}apiServerDomain=ds.getApiServerBaseUrl();_currentApp=new Fi("");currentApp=this._currentApp.asObservable();isLoading=new Fi(!1);getApp(){return this.currentApp}setApp(e){this._currentApp.next(e)}getLoadingState(){return this.isLoading}runSse(e){let A=this.apiServerDomain+"/run_sse";return this.isLoading.next(!0),new gt(i=>{let n=this;fetch(A,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify(e)}).then(o=>{let r=o.body?.getReader(),s=new TextDecoder("utf-8"),a="",c=()=>{r?.read().then(({done:g,value:I})=>{if(this.isLoading.next(!0),g)return this.isLoading.next(!1),i.complete();let C=s.decode(I,{stream:!0});a+=C;try{a.split(/\r?\n/).filter(B=>B.startsWith("data:")).forEach(B=>{let E=B.replace(/^data:\s*/,""),u=JSON.parse(E);n.zone.run(()=>i.next(u))}),a=""}catch(d){d instanceof SyntaxError&&c()}c()}).catch(g=>{n.zone.run(()=>i.error(g))})};c()}).catch(o=>{n.zone.run(()=>i.error(o))})})}listApps(){if(this.apiServerDomain!=null){let e=this.apiServerDomain+"/list-apps?relative_path=./";return this.http.get(e)}return new gt}static \u0275fac=function(A){return new(A||t)(be(ks),be(ye))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var q7=class t{constructor(e){this.http=e}apiServerDomain=ds.getApiServerBaseUrl();getLatestArtifact(e,A,i,n){let o=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}/artifacts/${n}`;return this.http.get(o)}getArtifactVersion(e,A,i,n,o){let r=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}/artifacts/${n}/versions/${o}`;return this.http.get(r)}static \u0275fac=function(A){return new(A||t)(be(ks))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var V7=class t{audioContext=new AudioContext({sampleRate:22e3});lastAudioTime=0;playAudio(e){let A=this.combineAudioBuffer(e);A&&this.playPCM(A)}combineAudioBuffer(e){if(e.length===0)return;let A=e.reduce((o,r)=>o+r.length,0),i=new Uint8Array(A),n=0;for(let o of e)i.set(o,n),n+=o.length;return i}playPCM(e){let A=new Float32Array(e.length/2);for(let s=0;s=32768&&(a-=65536),A[s]=a/32768}let i=this.audioContext.createBuffer(1,A.length,22e3);i.copyToChannel(A,0);let n=this.audioContext.createBufferSource();n.buffer=i,n.connect(this.audioContext.destination);let o=this.audioContext.currentTime,r=Math.max(this.lastAudioTime,o);n.start(r),this.lastAudioTime=r+i.duration}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Z7=new eA("AudioRecordingService"),W7=new eA("AudioWorkletModulePath");var X7=class t{audioWorkletModulePath=f(W7);stream;audioContext;source;audioBuffer=[];startRecording(){return Ni(this,null,function*(){try{this.stream=yield navigator.mediaDevices.getUserMedia({audio:!0}),this.audioContext=new AudioContext,yield this.audioContext.audioWorklet.addModule(this.audioWorkletModulePath),this.source=this.audioContext.createMediaStreamSource(this.stream);let e=new AudioWorkletNode(this.audioContext,"audio-processor");e.port.onmessage=A=>{let i=A.data,n=this.float32ToPCM(i);this.audioBuffer.push(n)},this.source.connect(e),e.connect(this.audioContext.destination)}catch(e){console.error("Error accessing microphone:",e)}})}stopRecording(){this.source&&this.source.disconnect(),this.audioContext&&this.audioContext.close(),this.stream&&this.stream.getTracks().forEach(e=>e.stop())}getCombinedAudioBuffer(){if(this.audioBuffer.length===0)return;let e=this.audioBuffer.reduce((n,o)=>n+o.length,0),A=new Uint8Array(e),i=0;for(let n of this.audioBuffer)A.set(n,i),i+=n.length;return A}cleanAudioBuffer(){this.audioBuffer=[]}float32ToPCM(e){let A=new ArrayBuffer(e.length*2),i=new DataView(A);for(let n=0;ne[Tq]==="true"))}isEditFunctionArgsEnabled(){return this.route.queryParams.pipe(je(e=>e[Hq]==="true"))}isSessionUrlEnabled(){return Ce(!0)}isA2ACardEnabled(){return this.route.queryParams.pipe(je(e=>e[Oq]==="true"))}isApplicationSelectorEnabled(){return Ce(!0)}isAlwaysOnSidePanelEnabled(){return Ce(!1)}isTraceEnabled(){return Ce(!0)}isArtifactsTabEnabled(){return Ce(!0)}isEvalEnabled(){return Ce(!0)}isTokenStreamingEnabled(){return Ce(!0)}isMessageFileUploadEnabled(){return Ce(!0)}isManualStateUpdateEnabled(){return Ce(!0)}isBidiStreamingEnabled(){return Ce(!0)}isExportSessionEnabled(){return Ce(!0)}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var xjA=(()=>{var t=import.meta.url;return function(e={}){var A,i=e,n,o,r=new Promise((Q,m)=>{n=Q,o=m});i.agerrMessages=[],i.stderrMessages=[],B=Q=>i.stderrMessages.push(Q);var s=Object.assign({},i),a="./this.program",c=(Q,m)=>{throw m},g="",I,C;typeof document<"u"&&document.currentScript&&(g=document.currentScript.src),t&&(g=t),g.startsWith("blob:")?g="":g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1),I=Q=>fetch(Q,{credentials:"same-origin"}).then(m=>m.ok?m.arrayBuffer():Promise.reject(new Error(m.status+" : "+m.url)));var d=console.log.bind(console),B=console.error.bind(console);Object.assign(i,s),s=null;var E;function u(Q){for(var m=atob(Q),v=new Uint8Array(m.length),p=0;pQ.startsWith(Xe);function KA(){var Q="data:application/octet-stream;base64,AGFzbQEAAAABmQd0YAJ/fwF/YAF/AGABfwF/YAJ/fwBgA39/fwF/YAN/f38AYAR/f39/AX9gBH9/f38AYAV/f39/fwF/YAZ/f39/f38Bf2AFf39/f38AYAZ/f39/f38AYAAAYAABf2AIf39/f39/f38Bf2AHf39/f39/fwF/YAF8AXxgAn9/AXxgAX8BfGAHf39/f39/fwBgA39/fwF8YAd/f39/fHx/AGACf3wAYAR8fHx/AXxgAnx8AXxgA398fABgCX9/f39/f39/fwBgBX9+fn5+AGAEf39/fABgCn9/f39/f39/f38Bf2ADf35/AX5gBH9/fHwBf2ADfHx8AXxgA39/fgBgAAF8YAR/f39/AXxgAn9/AX5gA39/fABgBX9/f39+AX9gA39/fgF/YAR/fn5/AGAEf398fwBgAn9+AGACfH8BfGABfwF+YAR/f398AX9gAn9+AX9gAn98AX9gA3x8fwF8YAN/fH8AYAh/f39/f39/fwBgBX9/f398AX9gC39/f39/f39/f39/AX9gBX9/fn9/AGAEf398fwF/YAABfmAFf39/f3wAYAN/f3wBf2ACfX0BfWAGf3x8fHx8AXxgA39/fwF+YAx/f39/f39/f39/f38Bf2AFf398f38Bf2AHf39/fHx/fwBgBn9/f3x/fwBgBn9/f39+fwF/YA9/f39/f39/f39/f39/f38AYAp/f39/f39/f39/AGAEf39/fwF+YAZ/fH9/f38Bf2AHf39/f39+fgF/YAZ/f39/fn4Bf2AHf39/f35/fwF/YAZ/f39/f34Bf2ACfn8AYAR/fn9/AX9gBH9/fHwBfGAFf398f38AYAl/f39/f39/f38Bf2AGf39/fH9/AX9gBH9/fHwAYAR+fn5+AX9gAn99AX9gAn5/AX9gCH9/f398fHx/AGADf31/AGABfAF/YAJ+fgF9YAJ/fQBgBH9/f34BfmADf35/AX9gBn99f39/fwBgBH9/fX8AYAN/fHwBf2AFf39/fH8AYAZ/f398fH8AYAZ8fHx/f38AYAJ+fgF8YAJ8fwF/YAR/fHx8AGAGf39/f398AGAEf3x/fwBgBnx8f3x8fwBgB398fHx8fHwAYAF/AX1gA39/fwF9YAN+fn4Bf2AEf35+fgBgBH98f38Bf2AKf3x/f39/f39/fwBgBX9/fHx8AGAFf39/f38BfGAD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uPwIKAIAQYT0AyACEB4aECgACyACIAAgAWw2AhBBuPwIKAIAQdPzAyACQRBqEB4aECgACxcAQQFBfyAAIAEgARA8IgAQqwIgAEYbCyUBAX8gACgCLCIAQQBBgAEgACgCABEEACIABH8gACgCEAVBAAsLNAEBfwJAIAAgARDnASIBRQ0AIAAoAiwiACABQQggACgCABEEACIARQ0AIAAoAhAhAgsgAgtuAQF/IwBBIGsiAyQAIANCADcDGCADQgA3AxAgAyACNgIMAkAgA0EQaiABIAIQwwsiAUEASARAIANB4I8LKAIAEHg2AgBBsokEIAMQNgwBCyAAIANBEGoiABCqBSABEKsCGiAAEF8LIANBIGokAAskAQF/IwBBEGsiAyQAIAMgAjYCDCAAIAEgAhCDDCADQRBqJAALMwEBfyACBEAgACEDA0AgAyABLQAAOgAAIANBAWohAyABQQFqIQEgAkEBayICDQALCyAAC6QBAQN/IwBBEGsiAiQAAkAgABAvIgMgACgCAEEDcSAAKQMIEJ0KIgEEfyABKAIYBUEACyIBDQAgAygCTCIBKAIAKAIMIgMEQCABKAIIIAAoAgBBA3EgACkDCCADEScAIgENAQtBACEBIAAoAgBBA3FBAkYNACACIAApAwg3AwggAkElNgIAQaDkCiEBQaDkCkEgQagYIAIQoQEaCyACQRBqJAAgAQsPACAAIAEgAiADQQAQ0QwLQwAgACAAIAGlIAG9Qv///////////wCDQoCAgICAgID4/wBWGyABIAC9Qv///////////wCDQoCAgICAgID4/wBYGwsVACAAEKgBBEAgACgCBA8LIAAQqQMLFAAgABAnBEAgAC0ADw8LIAAoAgQLVQACQCABBEAgAiABKAIITw0BIAAgASgCACABKAIEIAJqIAEoAgxwQcgAbGpByAAQHxoPC0GJ2gFB4oMBQT1BhyUQAAALQcK8A0HigwFBPUGHJRAAAAsmACAAIAEQ1QciAUUEQEEADwsgABDwASgCDCABKAIQQQJ0aigCAAsuACAALQAPIgBBAWpB/wFxQRFPBEBB38UDQcmEAUHJAEH+ngEQAAALIABB/wFHCwcAQQEQBwALFQAgACABQZEqQT1B4oMBQcgAEMgKC0MAIAAgACABpCABvUL///////////8Ag0KAgICAgICA+P8AVhsgASAAvUL///////////8Ag0KAgICAgICA+P8AWBsLCwAgACABQQAQhQcLPAEBf0EHIQICQAJAAkAgAEEoag4IAgICAgAAAAABC0EIDwsgAEF/RyABQX1NckUEQEEADwtBHSECCyACC0IBAX8gACABEOcBIgFFBEBBAA8LIAAoAjQgASgCIBDoASAAKAI0IgJBAEGAASACKAIAEQQAIAEgACgCNBDeAjYCIAtvAQJ/IAAtAAAiAgR/AkADQCABLQAAIgNFDQECQCACIANGDQAgAhCAAiABLQAAEIACRg0AIAAtAAAhAgwCCyABQQFqIQEgAC0AASECIABBAWohACACDQALQQAhAgsgAgVBAAsQgAIgAS0AABCAAmsLLAACQAJAAkAgACgCAEEDcUEBaw4DAQAAAgsgACgCKCEACyAAKAIYIQALIAALVQECfyAAIAFBMEEAIAEoAgBBA3FBA0cbaigCKBDnASIDBEAgACgCNCADKAIgEOgBIAAoAjQiAiABQQggAigCABEEACECIAMgACgCNBDeAjYCIAsgAgukAQMBfAF+AX8gAL0iAkI0iKdB/w9xIgNBsghNBHwgA0H9B00EQCAARAAAAAAAAAAAog8LAnwgAJkiAEQAAAAAAAAwQ6BEAAAAAAAAMMOgIAChIgFEAAAAAAAA4D9kBEAgACABoEQAAAAAAADwv6AMAQsgACABoCIAIAFEAAAAAAAA4L9lRQ0AGiAARAAAAAAAAPA/oAsiAJogACACQgBTGwUgAAsLKgEBfyMAQRBrIgMkACADIAI2AgwgACABIAJBgQRBABC2BxogA0EQaiQACykBAX8gAgRAIAAhAwNAIAMgAToAACADQQFqIQMgAkEBayICDQALCyAACxwBAX8gABCoAQRAIAAoAgAgABD4AhoQrwULIAALxwEBA38jAEEQayIFJAAgABAvIQYCQAJAIAAgAUEAEG0iBCACRXINACACQQEQRyIERQ0BIAQgBiABELIBNgIAAkAgACgCECICRQRAIAQgBDYCBAwBCyACIAIoAgQiBkYEQCACIAQ2AgQgBCACNgIEDAELIAQgBjYCBCACIAQ2AgQLIAAtAABBBHENACAAIARBABDzBwsgAwRAIAAgAUEBEG0aCyAFQRBqJAAgBA8LIAUgAjYCAEG4/AgoAgBB0/MDIAUQHhoQKAALCwAgACAB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uKgLQRgQ2AFFDQJBGBBIIgFFDQELIAEgAikCCDcCACABIAIpAhg3AhAgASACKQIQNwIIDAELQQAhAQsgAkEgaiQAQcSqC0EBOgAAQcCqCyABNgIAIAELIAAgAARAIAAoAhQQGCAAKAIYEBggACgCHBAYIAAQGAsLCQAgAEEAEPkGC78KAgV/D34jAEHgAGsiBSQAIARC////////P4MhDCACIASFQoCAgICAgICAgH+DIQogAkL///////8/gyINQiCIIQ4gBEIwiKdB//8BcSEHAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgB0H//wFrQYGAfksNAQsgAVAgAkL///////////8AgyILQoCAgICAgMD//wBUIAtCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhCgwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEKIAMhAQwCCyABIAtCgICAgICAwP//AIWEUARAIAIgA4RQBEBCgICAgICA4P//ACEKQgAhAQwDCyAKQoCAgICAgMD//wCEIQpCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEAgASALhEIAIQFQBEBCgICAgICA4P//ACEKDAMLIApCgICAgICAwP//AIQhCgwCCyABIAuEUARAQgAhAQwCCyACIAOEUARAQgAhAQwCCyALQv///////z9YBEAgBUHQAGogASANIAEgDSANUCIGG3kgBkEGdK18pyIGQQ9rELYBQRAgBmshBiAFKQNYIg1CIIghDiAFKQNQIQELIAJC////////P1YNACAFQUBrIAMgDCADIAwgDFAiCBt5IAhBBnStfKciCEEPaxC2ASAGIAhrQRBqIQYgBSkDSCEMIAUpA0AhAwsgA0IPhiILQoCA/v8PgyICIAFCIIgiBH4iECALQiCIIhMgAUL/////D4MiAX58Ig9CIIYiESABIAJ+fCILIBFUrSACIA1C/////w+DIg1+IhUgBCATfnwiESAMQg+GIhIgA0IxiIRC/////w+DIgMgAX58IhQgDyAQVK1CIIYgD0IgiIR8Ig8gAiAOQoCABIQiDH4iFiANIBN+fCIOIBJCIIhCgICAgAiEIgIgAX58IhAgAyAEfnwiEkIghnwiF3wh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AUpqIQIMAQsLIABBAEwgAEH/AE5yDQEgAiwAACAEKAIAQQFrSw0BCyADQQQ2AgALC4QBAQJ/IwBBEGsiAiQAIAAQqAEEQCAAKAIAIAAQ+AIaEK8FCyABECMaIAEQqAEhAyAAIAEoAgg2AgggACABKQIANwIAIAFBABDUASACQQA6AA8gASACQQ9qENMBAkAgACABRiIBIANyRQ0ACyAAEKgBIAFyRQRAIAAQqQMaCyACQRBqJAALUAEBfgJAIANBwABxBEAgASADQUBqrYYhAkIAIQEMAQsgA0UNACACIAOtIgSGIAFBwAAgA2utiIQhAiABIASGIQELIAAgATcDACAAIAI3AwgLzgkCBH8EfiMAQfAAayIGJAAgBEL///////////8AgyEJAkACQCABUCIFIAJC////////////AIMiCkKAgICAgIDA//8AfUKAgICAgIDAgIB/VCAKUBtFBEAgA0IAUiAJQoCAgICAgMD//wB9IgtCgICAgICAwICAf1YgC0KAgICAgIDAgIB/URsNAQsgBSAKQoCAgICAgMD//wBUIApCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhBCABIQMMAgsgA1AgCUKAgICAgIDA//8AVCAJQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQQMAgsgASAKQoCAgICAgMD//wCFhFAEQEKAgICAgIDg//8AIAIgASADhSACIASFQoCAgICAgICAgH+FhFAiBRshBEIAIAEgBRshAwwCCyADIAlCgICAgICAwP//AIWEUA0BIAEgCoRQBEAgAyAJhEIAUg0CIAEgA4MhAyACIASDIQQMAgsgAyAJhFBFDQAgASEDIAIhBAwBCyADIAEgASADVCAJIApWIAkgClEbIggbIQogBCACIAgbIgxC////////P4MhCSACIAQgCBsiC0IwiKdB//8BcSEHIAxCMIinQf//AXEiBUUEQCAGQeAAaiAKIAkgCiAJIAlQIgUbeSAFQQZ0rXynIgVBD2sQtgEgBikDaCEJIAYpA2AhCkEQIAVrIQULIAEgAyAIGyEDIAtC////////P4MhASAHBH4gAQUgBkHQAGogAyABIAMgASABUCIHG3kgB0EGdK18pyIHQQ9rELYBQRAgB2shByAGKQNQIQMgBikDWAtCA4YgA0I9iIRCgICAgICA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AxA8EKsCGiAAQZzYA0EBEKsCGiACIAErAwgQsQsgACACEKoFIgAgABA8EKsCGiACEF8gAkEQaiQAC18BAn8gAkUEQEEADwsgAC0AACIDBH8CQANAIAMgAS0AACIERyAERXINASACQQFrIgJFDQEgAUEBaiEBIAAtAAEhAyAAQQFqIQAgAw0AC0EAIQMLIAMFQQALIAEtAABrCzoBAX8CQCACRQ0AIAAQLyACEM8DIgMgAkcNACADEHZFDQAgACABIAJBARCSDA8LIAAgASACQQAQkgwLLgAQmQwgACkDAEGgkAsQD0HIkAtB2JALQdSQC0HAkAsoAgAbKAIANgIAQaCQCwsoAQF/IAAoAkQiAUEBRgRAIAAQngwgAEEANgJEDwsgACABQQFrNgJEC5kBAQR/AkACQEHckQsoAgAiBCAAKAJMIgNB/////3txRgRAQX8hAiAAKAJEIgFB/////wdGDQIgACABQQFqNgJEDAELIABBzABqIQFBfyECAkAgA0EASARAIAFBADYCAAwBCyADDQILIAEgASgCACIBIAQgARs2AgAgAQ0BIABBxJELEJwMC0EAIQILIAIEQCAAQcSRCxCcDAsLHgAgAEUEQEGJ2gFBjoIBQRVBuo8BEAAACyAAKAIICwwAIABBhaEFQQAQbQs9AQJ/IABBACAAQQBKGyEAA0AgACAERkUEQCADIARBA3QiBWogAiABIAVqKwMAojkDACAEQQFqIQQMAQsLCz0AIAEoAgggAk0EQEHCvANB4oMBQT1BhyUQAAALIAAgASgCACABKAIEIAJqIAEoAgxwQcgAbGpByAAQHxoLnQIBB38jAEEQayIGJAACQAJAIAAoAggiBSAAKAIMIgFHBEAgACgCACECIAAoAgQhAwwBCyAFQQF0QQEgBRsiAUHmzJkzSwRAQcQAIQAMAgsgACgCACABQShsEDoiAkUEQEEwIQAMAgsgAiAAKAIMIgRBKGxqQQAgASAEa0EobBAzGiAEIAAoAggiBSAAKAIEIgNqSQRAIANBKGwhByACIAEgBCADayIEayIDQShsaiACIAdqIARBKGwQUxogACADNgIECyAAIAE2AgwgACACNgIACyACIAMgBWogAXBBKGxqQQBBKBAzGiAAIAAoAggiAEEBajYCCCAGQRBqJAAgAA8LIAYgABB4NgIAQbj8CCgCAEHa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IAQQtgIgARB5IQEMAAsACyAAEBshAyABQQFHIQYDQCADRQ0BAkAgBkUEQCADIAIgBSAEEDUaDAELIAAgAxAtIQEDQCABRQ0BIAEgAiAFIAQQNRogACABEDAhAQwACwALIAAgAxAcIQMMAAsACwsRACAAQQRBEEGAgICAARCDBwsxAQF/IAAoAgQiASgCICsDECABKwMYoCAAKwMIoSAAKAIAIgAoAiArAxAgACsDGKChC1ABAX9BCCEFAkACQAJAAkAgA0EBaw4EAwACAQILQRAhBQwCC0EEIQUMAQtBACEFCyAAIAEgAyAFIAQQhg4hACACQQBKBEAgACACEIUOCyAACy4BAn8gABAbIQEDQCABBEAgACABQQBBARCgCCACaiECIAAgARAcIQEMAQsLIAILpAEBA39BwAAQjwYiAiACKAIAQXxxQQFyNgIAIAJBwAIQjwYiATYCECACIAAQNzYCGCABQoCAgICAgID4PzcDYCABQQE6AKwBIAFCgICAgICAgPg/NwNYIAFBATYC7AEgAUKAgICAgICA+D83A1AgAUEANgLEAUEFQQQQ1QIhAyABQQA2AswBIAEgAzYCwAEgAUEFQQQQ1QI2AsgBIAAgAhDECCACCxMAIAAgASgCABDvDiABQgA3AgAL/QMBB38gBUEYQRQgAC0AABtqKAIAIAAQvAMiBigCKCAAKAIoIAEoAigQmAYgBEEAIARBAEobQQFqIQxBASELA0AgCyAMRkUEQCAAIgQgAhC7AyEAIAEiByADELsDIQECfyAELQAARQRAIAUoAhggABC8AyEJIAcoAighByAEKAIoIQggBigCKCEGIAArAwggBCsDEGEEQCAEKAIgIAYgCCAHEL0DIQYgCSgCKCEEQQFGBEAgACABIAYbIQcgASAAIAYbIQggCQwDCyABIAAgBhshByAAIAEgBhshCCAJDAILIAQoAiQgBiAIIAcQvQMhBiAJKAIoIQRBAUYEQCABIAAgBhshByAAIAEgBhshCCAJDAILIAAgASAGGyEHIAEgACAGGyEIIAkMAQsgBSgCFCAAELwDIQkgBygCKCEHIAQoAighCCAGKAIoIQYCfyAAKwMIIAQrAxBhBEAgBCgCICAGIAggBxC9AyEGIAkoAighBEECRgRAIAAgASAGGyEIIAEgACAGGwwCCyABIAAgBhshCCAAIAEg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QUBrJAALIwEBfyMAQRBrIgEkACABIAA2AgwgAUEMahCRByABQRBqJAALxQIBCH8jAEEgayICJAACQCAAIAJBHGoQmgUiAEUNACACKAIcIgVBAEwNAANAIAAtAAAiA0UNASADQS1HBEAgAEEBaiEADAELCyACQgA3AxAgAkIANwMIIABBAWohBkEAIQMDQCAEIAVIBEAgAyAGaiIHLAAAIggEQCACQQhqIAgQ+woCQCAHLQAAQdwARgRAIANFDQEgACADai0AAEHcAEcNAQsgBEEBaiEECyADQQFqIQMMAgUgAkEIahBfQQAhBAwDCwALCyABIwBBEGsiASQAAkAgAkEIaiIAECcEQCAAIAAQJCIFEMwCIgQNASABIAVBAWo2AgBBuPwIKAIAQdPzAyABEB4aECgACyAAQQAQ+wogACgCACEECyAAQgA3AgAgAEIANwIIIAFBEGokACAENgIAIAMgBmohBAsgAkEgaiQAIAQLVAEDfyMAQRBrIgEkAEHo5AooAgACQCAARQ0AIAAQqgEiAg0AIAEgABA8QQFqNgIAQbj8CCgCAEHT8wMgARAeGhAoAAtB6OQKIAI2AgAgAUEQaiQACw8AIAAgACgCACgCJBECAAsRACAAIAEgASgCACgCIBEDAAsRACAAIAEgASgCACgCLBEDAAsMACAAQYKGgCA2AAALEQAgABBCIAAQI0ECdGoQngcLDQAgACgCACABKAIARwsOACAAEEIgABAjahCeBwsWACAAIAEgAiADIAAoAgAoAiARBgAaCw4AIAAoAghB/////wdxC4ABAQJ/IwBBEGsiBCQAIwBBIGsiAyQAIANBGGogASABIAJBAnRqELIFIANBEGogAygCGCADKAIcIAAQ5AsgAyABIAMoAhAQsQU2AgwgAyAAIAMoAhQQqAM2AgggBEEIaiADQQxqIANBCGoQ/QEgA0EgaiQAIAQoAgwaIARBEGokAAtFAQF/IwBBEGsiBSQAIAUgASACIAMgBEKAgICAgICAgIB/hRC3ASAFKQMAIQEgACAFKQMINwMIIAAgATcDACAFQRBqJAALtQEBA38jAEEgayIDJAACQAJAIAEsAAAiAgRAIAEtAAENAQsgACACEMEFIQEMAQsgA0EAQSAQMxogAS0AACICBEADQCADIAJBA3ZBHHFqIgQgBCgCAEEBIAJ0cjYCACAB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IAJBBHRqIgMgAUEQayICQQhqKQMANwMIIAMgAikDADcDACAAIBEgEyAEEEMgERAYIA8gAikDCDcDKCAPIAIpAwA3AyAgDyABKQMYNwM4IA8gASkDEDcDMCAPIA8rAzAgDysDICABKwMAoaA5A0AgDyAPKwM4IA8rAyggASsDCKGgOQNIIAAgD0EwakECEDkgDyAPKQNINwM4IA8gDykDQDcDMCAAIA9BIGpBAhA5DBoFIBEgA0EEdCISaiIUIAEgEmoiEikDADcDACAUIBIpAwg3AwggA0EBaiEDDAELAAsACyACQQJqIgNBEBAZIgIgASkDCDcDCCACIAEpAwA3AwAgAiAQKQMgNwMQIAIgECkDKDcDGCACIBArAyAgECsDMCIGIBArA0ChRAAAAAAAAAhAoyIHoDkDICAQKwMoIQggECsDSCEJIBArAzghBSACIAYgB6A5AzAgAiAFIAUgCaFEAAAAAAAACECjIgWgOQM4IAIgCCAFoDkDKEEEIAMgA0EETRshESABQSBrIRNBBCEBA0AgASARRgRAIAAgAiADIAQQQyACEBggDyAQKQM4NwMoIA8gECkDMDcDICAPIBApAyg3AzggDyAQKQMgNwMwIAAgD0EgakECEDkMGQUgAiABQQR0IhJqIhQgEiATaiISKQMANwMAIBQgEikDCDcDCCABQQFqIQEMAQsACwALIAJBA2oiA0EQEBkiAiABQQhqKQMANwMIIAIgASkDADcDACACIAErAwAiBSAFIBArAxChIgZEAAAAAAAA0L+ioDkDECABKwMIIQggECsDSCEJIAIgECsDOCIHOQM4IAIgBSAGRAAAAAAAAALAoqA5AzAgAiAFIAYgBqChOQMgIAIgCCAHIAmhRAAAAAAAAAhAo6AiBTkDKCACIAU5AxggECsDMCEFIAIgBzkDSCACIAU5A0BBBCADIANBBE0bIREgAUEwayETQQQhAQNAIAEgEUYEQCAAIAIgAyAEEEMgAhAYDBgFIAIgAUEEdCISaiIUIBIgE2oiEikDADcDACAUIBIpAwg3AwggAUEBaiEBDAELAAsACyACQQRHDRtBBkEQEBkiAiABKQMINwMIIAIgASkDADcDACACIBApAyg3AxggAiAQKQMgNwMQIAIgECkDSDcDKCACIBApA0A3AyAgAiABKQMoNwM4IAIgASkDIDcDMCAC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AEcEQCACQbQBRg0BIAJBjgJGDQJBipYDQbDEAUGWAUHqiwEQAAALIAErAwghAyAAIAErAwA5AwggACADmjkDAA8LIAAgASsDADkDACAAIAErAwiaOQMIDwsgASsDCCEDIAAgASsDADkDCCAAIAM5AwAPCyAAIAEpAwA3AwAgACABKQMINwMICwoAIABBCGoQ2AMLDQAgACgCACABQQJ0agsZACAAEKgBBEAgACABEL8BDwsgACABENQBC2EBAX8jAEEQayICJAAgAiAANgIMAkAgACABRg0AA0AgAiABQQFrIgE2AgggACABTw0BIAIoAgwgAigCCBCyCyACIAIoAgxBAWoiADYCDCACKAIIIQEMAAsACyACQRBqJAALsQEBA38jAEEQayIHJAACQAJAIABFDQAgBCgCDCEGIAIgAWtBAnUiCEEASgRAIAAgASAIEOQDIAhHDQELIAYgAyABa0ECdSIBa0EAIAEgBkgbIgFBAEoEQCAAIAdBBGogASAFELsLIgUQQiABEOQDIQYgBRB3GiABIAZHDQELIAMgAmtBAnUiAUEASgRAIAAgAiABEOQDIAFHDQELIAQQvwsMAQtBACEACyAHQRBqJAAgAAuoAQEDfyMAQRBrIgckAAJAAkAgAEUNACAEKAIMIQYgAiABayIIQQBKBEAgACABIAgQ5AMgCEcNAQsgBiADIAFrIgFrQQAgASAGSBsiAUEASgRAIAAgB0EEaiABIAUQwAsiBRBCIAEQ5AMhBiAFEDQaIAEgBkcNAQsgAyACayIBQQBKBEAgACACIAEQ5AMgAUcNAQsgBBC/CwwBC0EAIQALIAdBEGokACAACw4AIAAgASgCADYCACAACwoAIAAgASAAa2oLCwAgAC0AC0H/AHEL6QEBBH8jAEEQayIEJAAgABBGIgMgAWoiASADQQF0QYAIIAMbIgIgASACSxshASAAECQhBQJAAkACQCAALQAPQf8BRgRAIANBf0YNAiAAKAIAIQIgAUUEQCACEBhBACECDAILIAIgARA6IgJFDQMgASADTQ0BIAIgA2pBACABIANrEDMaDAELIAFBARAZIgIgACAFEB8aIAAgBTYCBAsgAEH/AToADyAAIAE2AgggACACNgIAIARBEGokAA8LQd/JA0GYhQFBzQBB77oBEAAACyAEIAE2AgBBuPwIKAIAQdPzAyAEEB4aECgACwgAIABB/wFxC1ABAX4CQCADQcAAcQRAIAIgA0FAaq2IIQFCACECDAELIANFDQAgAkHAACADa62GIAEgA60iBIiEIQEgAiAEiCECCyAAIAE3AwAgACACNwMIC9sBAgF/An5BASEEAkAgAEIAUiABQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AURsNACACQgBSIANC////////////AIMiBkKAgICAgIDA//8AViAGQoCAgICAgMD//wBRGw0AIAAgAoQgBSAGhIRQBEBBAA8LIAEgA4NCAFkEQCAAIAJUIAEgA1MgASADURsEQEF/DwsgACAChSABIAOFhEIAUg8LIAAgAlYgASADVSABIANRGwRAQX8PCyAAIAKFIAEgA4WEQgBSIQQLIAQLFgAgAEUEQEEADwtB4I8LIAA2AgBBfwsLACAAIAEgAhEAAAtkAQJ/IwBBEGsiAyQAAkAgAEEAELUCIgBFDQACQAJAAkACQCABDgQAAQICAwsgACgCECECDAMLIAAoAgghAgwCCyAAKAIMIQIMAQsgAyABNgIAQeHOBCADEDYLIANBEGokACACC6QBAgN/AnwjAEEQayICJAAgABDDAiAAKAIQIgErAxhEAAAAAAAAUkCjIQQgASsDEEQAAAAAAABSQKMhBSAAEBshAQNAIAEEQCABKAIQKAKUASIDIAMrAwAgBaE5AwAgAyADKwMIIAShOQMIIAAgARAcIQEMAQsLIAIgACgCECIBKQMYNwMIIAIgASkDEDcDACAAIAIQgQ0gAEEBENgFIAJBEGokAAsPACABQQFqIAAgABCwAZ8LqAECBH8CfCABKAIAIQIgAEEEaiIDIQAgAyEBA0AgACgCACIABEAgACgCECIEKwMIIgYgAisDCCIHYwRAIABBBGohAAwCBSAAIAEgACACIARLIgQbIAYgB2QiBRshASAAIAAgBEECdGogBRshAAwCCwALCwJAAkAgASADRg0AIAIrAwgiBiABKAIQIgArAwgiB2MNACAAIAJNIAYgB2RyDQELIAMhAQsgAQtkAQF/IwBBEGsiBCQAIABBADsBHCAAQQA2AhggACADOQMIIAAgAjYCBCAAIAE2AgAgBCAANgIMIAFBNGogBEEMahDBASAAKAIEIAQgADYCCEEoaiAEQQhqEMEBIARB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BCgCECgClAEiBSsDADkDCCADIAUrAwg5AxAgA0EoaiAEIBYgFCAJER8ARQRAIANBATYCHCADIAc2AhggA0IANwNYIAMgBDYCACAHQQFqIQcgACAEEBwhBAwBCwtByIULKAIAEBhByIULQQA2AgAQmA0MAgtBACEHIAJBsANqQQBB0AAQMxogBQRAQciFCygCACEERP///////+9/IRRE////////7/8hGET////////v/yEbRP///////+9/IRkDQCAFIAdGBEBEmpmZmZmZqT8hFgJAIABBwOoAECYiAEUNACAALQAARQ0AIAAQsQIhFgtBkIYLIBsgGyAZoSAWoiIToCIXOQMAQZiGCyAZIBOhIhU5AwBBiIYLIBQgGCAUoSAWoiIToSIUOQMAQYCGCyAYIBOgIhM5AwAgAiAVOQPYAyACIBc5A+gDIAIgFTkDuAMgAiATOQPQAyACIBc5A8gDIAIgFDkD8AMgAiATOQPAAyACIBQ5A+ADIAEoAgAhAEEAEO8HIQkCQAJAIABBAkYEQCAJRQ0CIAJBsANqEJcNQQAhBQNAQciFCygCACEBQZSFCygCACEAQQAhBANAIAAgBEcEQCABIARB4ABsaiIJIAkrAwhEzczMzMzM8D+iOQMIIAkgCSsDEETNzMzMzMzwP6I5AxAgBEEBaiEEDAELCyAFQQFqIgUQ7wcNAAtBjOEKLQAARQ0BIAIgBTYCEEG4/AgoAgBByucDIAJBEGoQHhoMAQsgCUUNASACQbADahCXDUEAIQdBACEEA0AgAkGwA2oiASEAIAcEQCAAEJUNC0GohQtC/////////3c3AwBBoIULQv/////////3/wA3AwACQEGUhQsoAgAiAwRAIAAoAgAhCET////////vfyEURP///////+//IRZBACEAA0AgACADRg0CQaCFCyAUIAggAEECdGooAgAiBSsDABAqIhQ5AwBBqIULIBYgBSsDABAiIhY5AwAgAEEBaiEADAALAAtBlJsDQeDAAUHQAUHFmgEQAAALQbCFCyAIKAIAKwMIOQMAIAggA0ECdGpBBGsoAgArAwghE0HAhQsgFiAUoTkDAEG4hQsgEzkDAEQAAAAAAAAAACEVRAAAAAAAAAAAIRQjAEEwayINJAAQow0QpQ1BAUEQEBkiDEGYhQsoAgBBAnQiADYCBCAMIABBKBAZ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AUH/vwFB1QlBmTUQAAALQZrOAUH/vwFB6AlBmTUQAAALC3oBAX8jAEEQayIEJAAgAwRAIAMgACACIAIQ/AUiAjYCCEGM4QotAAAEQCAEIAI2AgBBuPwIKAIAQb3nAyAEEB4aCyADQQA2AhQgA0EAOgAMIAAgASADEKcIGiADKAIQIARBEGokAA8LQcbkAEGMxQFBhApB8eQAEAAACzwBAn8jAEEQayIBJABBASAAEEciAkUEQCABIAA2AgBBuPwIKAIAQdPzAyABEB4aECgACyABQRBqJAAgAgspAQF/A0AgACIBKAIQKAKwASIADQALA0AgASIAKAIQKAJ4IgENAAsgAAvgAQIIfAF/IAFBIEEYQcyECy0AACIMG2orAwAhBCACIAFBGEEgIAwbaisDACIFOQMYIAIgBDkDECACIAEpAzg3AwAgAiABQUBrKQMANwMIIAIgAisDACAERAAAAAAAAOA/oqEiBjkDACACIAIrAwggBUQAAAAAAADgP6KhIgc5AwggAysDACEIIAMrAwghCSADKwMQIQogACADKwMYIgsgBSAHoCIFIAUgC2MbOQMYIAAgCiAEIAagIgQgBCAKYxs5AxAgACAJIAcgByAJZBs5AwggACAIIAYgBiAIZBs5AwAL6QEBBH8jAEEQayIEJAAgABBGIgMgAWoiASADQQF0QYAIIAMbIgIgASACSxshASAAECQhBQJAAkACQCAALQAPQf8BRgRAIANBf0YNAiAAKAIAIQIgAUUEQCACEBhBACECDAILIAIgARA6IgJFDQMgASADTQ0BIAIgA2pBACABIANrEDMaDAELIAFBARBKIgIgACAFEB8aIAAgBTYCBAsgAEH/AToADyAAIAE2AgggACACNgIAIARBEGokAA8LQd/JA0GYhQFBzQBB77oBEAAACyAEIAE2AgBBuPwIKAIAQdPzAyAEEB4aECgAC3wBAXwgAEEATgRAIAFEAAAAAAAAAABjBEBBAA8LIAFEAAAAAAAA8D9kRSAAuCICRAAAwP///99BIAGjZEVyRQRAQf////8HDwsgASACoiIBmUQAAAAAAADgQWMEQCABqg8LQYCAgIB4DwtB3Z0DQZWEAUHKAEG83wAQAAALEgAgACABQa0kQS1BqsIBEMgBC7ECAQd/IwBBEGsiByQAAkACQCAAKAIIIgYgACgCDCICRwRA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ACADIAI2ArwBQaSECyABNgIAIANBADYCuAEgAQu5AQEDfyAAIABBMGoiAiAAKAIAQQNxQQNGGygCKCgCECIBKALgASABKALkASIBQQFqIAFBAmoQwgEhASAAIAIgACgCAEEDcUEDRhsoAigoAhAgATYC4AEgACACIAAoAgBBA3FBA0YbKAIoKAIQIgEgASgC5AEiA0EBajYC5AEgASgC4AEgA0ECdGogADYCACAAIAIgACgCAEEDcUEDRhsoAigoAhAiACgC4AEgACgC5AFBAnRqQQA2AgALIAAgACABIAIgAEGljwEQJiIABH8gABCRAgVBHgsQug8LTAAgASgCEEHAAWohAQNAIAEoAgAiAQRAIAEoAhAoApgCEBggASgCECgCoAIQGCABKAIQIgFBADYCsAEgAUG4AWohAQwBCwsgABCvDws/AQJ/IAAoAhAoAqgCIQADQCAAIgEoAgwiAEUgACABRnJFBEAgACgCDCICRQ0BIAEgAjYCDCACIQAMAQsLIAELCwAgACABQQEQww8LCwAgACABQQAQww8LugIBB38jAEEQayIHJAACQAJAIAAoAggiBiAAKAIMIgJHBEAgACgCACEDIAAoAgQhBAwBCyAGQQF0QQEgBhsiAkH///8/SwRAQcQAIQAMAgsgACgCACACQQV0EDoiA0UEQEEwIQAMAgsgAyAAKAIMIgVBBXRqQQAgAiAFa0EFdBAzGiAFIAAoAggiBiAAKAIEIgRqSQRAIARBBXQhCCADIAIgBSAEayIFayIEQQV0aiADIAhqIAVBBXQQUxogACAENgIECyAAIAI2AgwgACADNgIACyADIAQgBmogAnBBBXRqIgIgASkDADcDACACIAEpAxg3AxggAiABKQMQNwMQIAIgASkDCDcDCCAAIAAoAghBAWo2AgggB0EQaiQADwsgByAAEHg2AgBBuPwIKAIAQdqKBCAHEB4aECgAC1wAIAEoAgggAk0EQEHCvANB+YIBQQhBqSUQAAALIAAgASgCACABKAIEIAJqIAEoAgxwQQV0aiIBKQMANwMAIAAgASkDGDcDGCAAIAEpAxA3AxAgACABKQMINwMIC9oCAQV8IAEgAEE4bGoiACsAECEDAnwgACsAGCIEIAArAAgiBURIr7ya8td6PqBkRSAAKwAAIgYgA2NFIAQgBURIr7ya8td6vqBjcnFFBEAgBCACKwMIIgehmURIr7ya8td6PmUEQEQAAAAAAADwP0QAAAAAAADwvyACKwMAIANjGwwCCyAFIAehmURIr7ya8td6PmUEQEQAAAAAAADwP0QAAAAAAADwvyACKwMAIAZjGwwCCyADIAahIAcgBaGiIAQgBaEgAisAACAGoaKhDAELIAQgAisDCCIHoZlESK+8mvLXej5lBEBEAAAAAAAA8D9EAAAAAAAA8L8gAisDACADYxsMAQsgBSAHoZlESK+8mvLXej5lBEBEAAAAAAAA8D9EAAAAAAAA8L8gAisDACAGYxsMAQsgBiADoSAHIAShoiAFIAShIAIrAAAgA6GioQtEAAAAAAAAAABkC4YBAQJ/AkAgACABKQMIEMMDRQ0AIAAQNyAARgRAIAAgARBvIQIDQCACBEAgACACIAEQcyAAIAIQqQYhAgwBCwsgAC0AGEEgcQRAIAEQmAwLIAAgARD/ByABEOQHIABBASABKQMIEOAGCyAAIAFBEkEAQQAQzAMNACAAEDcgAEYEQCABEBgLCwuDAQEDfyMAQSBrIgEkACAAKAIQIgIoAgwiA0EMTwRAIAFB5AA2AhQgAUHyxAE2AhBBuPwIKAIAQffIBCABQRBqEB4aEGwACyABIAIoAgg2AgggASADQQJ0IgJB2MsIaigCADYCBCABIAJBiMwIaigCADYCACAAQZAIIAEQHSABQSBqJAALKQEBf0GuyAEhASAAIAAtAJABQQFGBH8gACgCjAEoAgAFQa7IAQsQGhoLdAECfyMAQSBrIgIkAAJAIACtIAGtfkIgiFAEQCAAIAEQRyIDRQ0BIAJBIGokACADDwsgAiABNgIEIAIgADYCAEG4/AgoAgBBhPQDIAIQHhoQKAALIAIgACABbDYCEEG4/AgoAgBB0/MDIAJBEGoQHhoQKAAL2AMBAn8jAEGQAWsiAyQAIAAoAhAhBCAAQdPNAxAaGgJAAkACQAJAAkAgAQ4EAwIAAQILIABBlbYDEBoaIAQoAtwBIgEEQCAAIAEQjAEgAEHfABBnCyADIAI2AnAgAEGdsAMgA0HwAGoQHQwDCyAAQZW2AxAaGiAEKALcASIBBEAgACABEIwBIABB3wAQZwsgAyACNgKAASAAQZewAyADQYABahAdDAILIANByABqIgEgBEE4akEoEB8aIAAgARD7DyAEKAJYQQFHDQEgBC0AOyIBRSABQf8BRnINASADIAG4RAAAAAAA4G9AozkDQCAAQdCOASADQUBrEB0MAQsgAEG8ywgQGhoLIABBuc4DEBoaIANBGGoiASAEQRBqQSgQHxogACABEPsPIAQrA6ABRAAAAAAAAPC/oJlEexSuR+F6dD9jRQRAIABB280DEBoaIAAgBCsDoAEQfQtBwcsIIQECQAJAAkAgBCgCmAFBAWsOAgEAAgtBxcsIIQELIAMgATYCECAAQaE5IANBEGoQHQsCQCAEKAIwQQFHDQAgBC0AEyIBRSABQf8BRnINACADIAG4RAAAAAAA4G9AozkDACAAQeOOASADEB0LIABBIhBnIANBkAFqJAALJQAgACABKAIAEOgBIAAgAkEBIAAoAgARBAAaIAEgABDeAjYCAAsTACAAQbvUAyAAKAIQQRBqEOsIC3MBAX8gABAkIAAQRk8EQCAAQQEQgQQLIAAQJCECAkAgABAnBEAgACACaiABOgAAIAAgAC0AD0EBajoADyAAECRBEEkNAUG8wANByYQBQZ0CQZS6ARAAAAsgACgCACACaiABOgAAIAAgACgCBEEBajYCBAsLOQAgACABKAIAEOgBIAAgAkECIAAoAgARBABFBEBBpxRB9MYBQaABQf31ABAAAAsgASAAEN4CNgIACy8BAX8gAMAiAUEASCABQV9xQcEAa0EaSSABQTBrQQpJciAAQS1rQf8BcUECSXJyC8sBAQV/IAAoAgAiAkEDIAFBABDlAxogAigCYCIBBEAgACABKAIQIgMoAgwiBTYCTCAAIAMoAhAiBDYCVCAAIAMoAgAiAzYCUCAAIAEoAgQ2AlggACAAKAKYASAEKAIAciIENgKYASACKAJUIgEEQCAAIAEoAhAiAigCDDYCPCAAIAIoAhAiBjYCRCAAIAEoAgQ2AkggACAGKAIAIARyNgKYASAFBEAgACACKAIANgJAQawCDwsgACADNgJAQawCDwsgAEEANgI8C0HnBwuYBAIEfwN8IwBB8ABrIgkkACAAKAKYASELIAlCADcDOCAJQgA3AzACQCABRQ0AIAEtAFFBAUcNACAHBEBBrfYAIQoCQAJAAkACQCACQQZrDgYAAgEBAQMBC0GI9gAhCgwCCyAJQagUNgIUIAlB58EBNgIQQbj8CCgCAEH3yAQgCUEQahAeGhBsAAtBkvYAIQoLIAkgCjYCJCAJIAc2AiAgCUEwaiIHQYY5IAlBIGoQgAEgBxDJAyEKCyAAKAIQIgcoAgwhDCAHIAI2AgwgC0EEcSIHIAMgBHIiA0VyRQRAIAAgARCKCSAAIAQgBSAGIAoQxgELIANBAEcgACACIAEQlwMCQCAIRQ0AIAEoAgAhAgNAAkACQAJAIAItAAAiCw4OBAICAgICAgICAQEBAQEACyALQSBHDQELIAJBAWohAgwBCwsgASsDOCENIAErAxghDiAJIAFBQGsiAisDACABKwMgRAAAAAAAAOA/oqEiDzkDWCAJIA85A0ggCSANIA5EAAAAAAAA4D+ioCINOQNAIAkgDSAOoTkDUCAJIAIpAwA3AwggCSABKQM4NwMAIAlB4ABqIAggCRCzCiAAIAAoAgAoAsgCEOYBIAAgASgCCBBFIAAgCUFAa0EDEDkLBEAgBwRAIAAgARCKCSAAIAQgBSAGIAoQxgELIAAQmAILIAlBMGoQXyAAKAIQIAw2AgwLIAlB8ABqJAALwA0BDn8jAEGAAmsiAyQAIAJBCHEhECACQQRxIQxBASENA0AgASgCECIEKAK0ASANTgRAIAQoArgBIA1BAnRqKAIAIQUCQAJAIAAoApwBQQJIDQAgACAFIAVBAEGUPUEAECFB5ooFEHwiBBCRBA0AIAQtAAANASAFEBshBANAIARFDQIgACAFIAQQkAkNASAFIAQQHCEEDAALAAsgDARAIAAgBSACEOoEC0EBIQ4gABCXBCIEQQE2AgwgBCAFNgIIIARBATYCBCAAIAUoAhAoAgwgBRC/BgJAIAAoAjwiBEUNACAEKAIgIgRFDQAgACAEEQEACyAAKAIQIgkoAtgBRQRAIAktAIwCQQFxIQ4LIAVBt58BECYQ7wIhDyAMIA5FckUEQCADIAUoAhAiBCkDKDcDoAEgAyAEKQMgNwOYASADIAQpAxg3A5ABIAMgBCkDEDcDiAEgACADQYgBahDsBCAAIAkoAtgBIAkoAuwBIAkoAvwBIAkoAtwBEMYBC0EAIQogA0EANgK8ASAFIANBvAFqEJEJIgQEfyAAIAQQ5gEgAygCvAEiCkEBcQVBAAshB0EBIQQCQCAFKAIQLQBwIgZBAXEEQEHqvgEhBkH0lQMhCAwBCyAGQQJxBEBB/+4BIQZByZcDIQgMAQsgBkEIcQRAQfOUAyEGQfuUAyEIDAELIAZBBHEEQEH37gEhBkGAmAMhCAwBCyAFQdI8ECYiBgR/IAZBACAGLQAAGwVBAAsiBiEIIAVBvTwQJiILBEAgCyAGIAstAAAbIQgLIAVBxjwQJiILBEAgCyAGIAstAAAbIQYLIAogBkEAR3ENACAFQdA8ECYiCkUEQCAHIQQMAQtBASAHIAotAAAiBxshBCAKIAYgBxshBgsgA0IANwOwASAGQY0PIAYbIQcCf0EAIARFDQAaIAcgA0GwAWogA0GoAWoQkwQEQCAAIAMoArABEF4gACADKAK0ASIEQfD6ACAEGyAFQfjhCigCAEEAQQAQZCADKwOoARCVA0EDQQIgAy0AvAFBAnEbDAELIAAgBxBeQQELIQQCQEH04QooAgAiBkUNACAFIAYQQSIGRQ0AIAYtAABFDQAgACAFQfThCigCAEQAAAAAAADwP0QAAAAAAAAAABBLEIgCCyAIQfD6ACAIGyEGAkAgAygCvAEiCEEEcQRAIAVB8OEKKAIAQQFBABBkIgggBHJFDQEgAyAFKAIQIgcpAxA3A8ABIAMgBykDGDcDyAEgAyAHKQMoNwPoASADIAcpAyA3A+ABIAMgAysD4AE5A9ABIAMgAysDyAE5A9gBIAMgAysDwAE5A/ABIAMgAysD6AE5A/gBIAAgBkGjICAIGxBFIAMgAygCvAE2AoQBIAAgA0HAAWpBBCADQYQBaiAEEJsDDAELIAhBwABxBEAgAyAFKAIQIgQpAxA3A8ABIAMgBCkDGDcDyAEgAyAEKQMoNwPoASADIAQpAyA3A+ABIAMgAysD4AE5A9ABIAMgAysDyAE5A9gBIAMgAysDwAE5A/ABIAMgAysD6AE5A/gBIAAgBkGjICAFQfDhCigCAEEBQQAQZBsQRSAAIANBwAFqIAdBABDBBkECTwRAIAMgBRAgNgKAAUHM/AMgA0GAAWoQggELIAMgBSgCECIEKQMoNwN4IAMgBCkDIDcDcCADIAQpAxg3A2ggAyAEKQMQNwNgIAAgA0HgAGpBABCKAgwBCyAFQfDhCigCAEEBQQAQZARAIAAgBhBFIAMgBSgCECIHKQMoNwNYIAMgBykDIDcDUCADIAcpAxg3A0ggAyAHKQMQNwNAIAAgA0FAayAEEIoCDAELIARFDQAgAEGjIBBFIAMgBSgCECIHKQMoNwM4IAMgBykDIDcDMCADIAcpAxg3AyggAyAHKQMQNwMgIAAgA0EgaiAEEIoCCyADKAKwARAYIAMoArQBEBggBSgCECgCDCIEBEAgAEEFIAQQlwMLIA4EQCAMBEAgAyAFKAIQIgQpAyg3AxggAyAEKQMgNwMQIAMgBCkDGDcDCCADIAQpAxA3AwAgACADEOwEIAAgCSgC2AEgCSgC7AEgCSgC/AEgCSgC3AEQxgELIAAQmAILAkAgEEUNACAFEBshBgNAIAZFDQEgACAGEMcDIAUgBhAtIQQDQCAEBEAgACAEEJIEIAUgBBAwIQQMAQsLIAUgBhAcIQYMAAsACwJAIAAoAjwiBEUNACAEKAIkIgRFDQAgACAEEQEACyAAEJYEIAxFBEAgACAFIAIQ6gQLIA8Q7wIQGCAPEBgLIA1BAWohDQwBCwsgA0GAAmokAAuDAwIFfAN/IwBBkAFrIggkAAJAAkAgASsDACIEIAArAxAiAmQNACAEIAArAwAiBWMNACABKwMIIgMgACsDGCIEZA0AIAMgACsDCCIGYw0AIAErAxAiAyACZCADIAVjcg0AIAErAxgiAyAEZCADIAZjcg0AIAErAyAiAyACZCADIAVjcg0AIAErAygiAyAEZCADIAZjcg0AIAIgASsDMCICYyACIAVjcg0AIAErAzgiAiAEZA0AIAIgBmNFDQELIAEQlQkEQCAAKwMYIQUgACsDECEEA0AgB0EERg0CAkAgBCABIAdBBHRqIgkrAwAiAmMEQCAAIAI5AxAgAiEEDAELIAIgACsDAGNFDQAgACACOQMACwJAIAUgCSsDCCICYwRAIAAgAjkDGCACIQUMAQsgAiAAKwMIY0UNACAAIAI5AwgLIAdBAWohBwwACwALIAggAUQAAAAAAADgPyAIQdAAaiIBIAhBEGoiBxCmASAAIAEQ6wQgACAHEOsECyAIQZABaiQAC6EBAQN/AkAgACgCmAEiA0GAgIQCcUUNACAAKAIQIgJBAkEEIANBgIAIcSIEGzYClAIgAiAEQRB2QQJzNgKQAiACKAKYAhAYIAIgAigClAJBEBBKIgI2ApgCIAIgASkDCDcDCCACIAEpAwA3AwAgAiABKQMQNwMQIAIgASkDGDcDGCADQYDAAHFFBEAgACACIAJBAhCZAhoLIAQNACACEJQFCwv8CAILfwN8IwBBgAFrIgIkACACQgA3A3ggAkIANwNwIAAEQAJAA0AgBkEBRg0BIAZB4ugBaiAGQePoAWohBCAGQQFqIQYtAAAhBQNAIAQtAAAiA0UNASAEQQFqIQQgAyAFRw0ACwtB07sDQeGEAUE1QeP4ABAAAAtEAAAAAAAA8D8hDSAAQeLoARD7AiEGQQAhBCAAIQUCQAJAA0ACQAJAIAUEQAJAAkACQAJAAn8gBUE7IAYQ/QIiA0UEQEQAAAAAAAAAACEOIAYMAQsgA0EBaiIEIAJBQGsQ4gEiDkQAAAAAAAAAAGZFIAIoAkAgBEZyDQEgAyAFawshAwJAIA4gDaEiD0QAAAAAAAAAAGRFDQAgD0TxaOOItfjkPmNFBEBB7OgKLQAAQezoCkEBOgAAIA0hDkEBcQ0BIAIgADYCIEGb1AMgAkEgahArQQMhCQsgDSEOCwJAIANFBEBBACEKDAELIAUgAxDMAiIKRQ0CCyACKAJ4IgQgAigCfCIDRwRAIAIoAnAhByACKAJ0IQgMBAsgBEEBdEEBIAQbIgNBqtWq1QBLBEBBxAAhBAwDCyACKAJwIANBGGwQOiIHRQRAQTAhBAwDCyAHIARBGGxqQQAgAyAEa0EYbBAzGiAEIAIoAnQiCCAEakkEQCAIQRhsIQsgByADIAQgCGsiDGsiCEEYbGogByALaiAMQRhsEFMaIAIgCDYCdAsgAiADNgJ8IAIgBzYCcAwDC0Hs6AotAABBASEJQezoCkEBOgAAQQFxRQRAIAIgADYCMEGE/wQgAkEwahA2QQIhCQsgAkHwAGoQlQQMCAsgAiADQQFqNgIQQbj8CCgCAEHT8wMgAkEQahAeGhAoAAsgAiAEEHg2AgBBuPwIKAIAQdqKBCACEB4aECgACyAHIAQgCGogA3BBGGxqIgNBADYAESADIA5EAAAAAAAAAABkOgAQIAMgDjkDCCADQQA2AgQgAyAKNgIAIANBADYAFCACIARBAWoiBDYCeCANIA6hIg2ZRPFo44i1+OQ+Y0UNAUQAAAAAAAAAACENCyANRAAAAAAAAAAAZEUNA0EAIQVBACEDDAELIAUgBmohA0EAIQVBACEGIAMgABA8IABqRg0BIANB4ugBELMEIANqIgVB4ugBEPsCIQYMAQsLA0AgAyAERwRAIAJB2ABqIAJB8ABqIAMQmgIgA0EBaiEDIAUgAisDYEQAAAAAAAAAAGVqIQUMAQsLIAUEQCANIAW4oyENQQAhAwNAIAMgBEYNAiACQfAAaiADEJQEIgArAwhEAAAAAAAAAABlBEAgACANOQMICyADQQFqIQMMAAsACyACQfAAahCWCSIAIA0gACsDCKA5AwgLA0ACQCAERQ0AIAJB8ABqIgAQlgkrAwhEAAAAAAAAAABkDQAgAkFAayAAIARBAWsiBBCaAiAAIAQQlAQaIAIgBDYCeCACKAJAEBgMAQsLIAEgAikDcDcCACABIAIpA3g3AggLIAJBgAFqJAAgCQ8LQfvZAUHhhAFBLUHj+AAQAAALBABBAQusAQEEfyMAQRBrIgQkAAJAIAAoAgAiA0H/////AEkEQCAAKAIEIANBBHQiBUEQaiIGEDoiA0UNASADIAVqIgVCADcAACAFQgA3AAggACADNgIEIAAgACgCACIAQQFqNgIAIAMgAEEEdGoiACACOQMIIAAgATkDACAEQRBqJAAPC0HfyQNBmIUBQc0AQe+6ARAAAAsgBCAGNgIAQbj8CCgCAEHT8wMgBBAeGhAoAAszACAAKAIAEBggACgCBBAYIAAoAggQGCAAKAIQEBggACgCDBAYIAAoAhQQGCAAKAIYEBgLwQEBAX8CfyAAKAIQIgIoAtgBRQRAQQAgAi0AjAJBAXFFDQEaCyAAEJgCIAIoAtgBCyIAIAEoAgBHBEAgABAYIAIgASgCADYC2AELIAIoAuwBIgAgASgCBEcEQCAAEBggAiABKAIENgLsAQsgAigC/AEiACABKAIIRwRAIAAQGCACIAEoAgg2AvwBCyACKALcASIAIAEoAgxHBEAgABAYIAIgASgCDDYC3AELIAIgAS0AECACLwGMAkH+/wNxcjsBjAIL3AUBBn8jAEFAaiIFJAAgACgCECEGIAVCADcDOCAFQgA3AzAgBCAGKALYATYCACAEIAYoAuwBNgIEIAQgBigC/AE2AgggBCAGKALcATYCDCAEIAYtAIwCQQFxOgAQAkAgAigCECIEBEAgBC0AAA0BCyABKAI8IgRFBEAgACAGKAIIIAVBMGoQwwYQZiEEIAFBAToAQCABIAQ2AjwLQYDmCkGA5gooAgAiAUEBajYCACAFIAQ2AiAgBSABNgIkIAVBMGohASMAQTBrIgQkACAEIAVBIGoiBzYCDCAEIAc2AiwgBCAHNgIQAkACQAJAAkACQAJAQQBBAEH+uAEgBxBiIgpBAEgNAEEBIQggCkEBaiEHAkAgCiABEEYgARAkayIJTwRAIAEQJ0EAIAcgCWsiCUEBRhsNASABIAkQqgMLQQAhCAsgBEIANwMYIARCADcDECAIIApBEE9xDQEgBEEQaiEJIAogCAR/IAkFIAEQdAsgB0H+uAEgBCgCLBBiIgdHIAdBAE5xDQIgB0EATA0AIAEQJwRAIAdBgAJPDQQgCARAIAEQdCAEQRBqIAcQHxoLIAEgAS0ADyAHajoADyABECRBEEkNAUG8wANByYQBQdgBQekfEAAACyAIDQQgASABKAIEIAdqNgIECyAEQTBqJAAMBAtBn68DQcmEAUHLAUHpHxAAAAtB+KIDQcmEAUHQAUHpHxAAAAtB39QBQcmEAUHTAUHpHxAAAAtB46QBQcmEAUHaAUHpHxAAAAsgARCsAiEECyAAQQAgAigCACACKAIMIAIoAgggBCAGKAIIEJoJIQEgBUEwahBfAkAgAUUNACAGKALYAUUEQCAGLQCMAkEBcUUNAQsgBSADKQMYNwMYIAUgAykDEDcDECAFIAMpAwg3AwggBSADKQMANwMAIAAgBRDsBCAAIAYoAtgBIAYoAuwBIAYoAvwBIAYoAtwBEMYBCyAFQUBrJAAgAQsTACAAIAFBkSVB7wBB+4QBEKUEC+cCAQh/IwBBEGsiCSQAAkAgACgCBCIKQdQAahDBCSgCACIABEACQCAAKAIIIgcgACgCDCIERwRAIAAoAgAhBSAAKAIEIQYMAQsgB0EBdEEBIAcbIgRB/////wNLBEBBxAAhAAwDCyAAKAIAIARBAnQQOiIFRQRAQTAhAAwDCyAFIAAoAgwiCEECdGpBACAEIAhrQQJ0EDMaIAggACgCCCIHIAAoAgQiBmpJBEAgBkECdCELIAUgBCAIIAZrIghrIgZBAnRqIAUgC2ogCEECdBBTGiAAIAY2AgQLIAAgBDYCDCAAIAU2AgALIAUgBiAHaiAEcEECdGogATYCACAAIAdBAWo2AgggASADNgJcIAotAHxBAnEEQCABIAEtAGRB/AFxQQFyOgBkCyABIAI2AlggCUEQaiQADwtBidoBQfuEAUHvAEHSrAEQAAALIAkgABB4NgIAQbj8CCgCAEHaigQgCRAeGhAoAAtBAQF/AkAgAARAIAAoAggiAUUNASAAIAFBAWsQyQYPC0GJ2gFBpRJBJkH8+gAQAAALQbimA0GlEkEmQfz6ABAAAAtCAQF/IwBBEGsiAiQAIAAoAiRFBEAgAEEBNgIkIAIgABDMBjYCBCACIAE2AgBB5oYFIAIQNiAAEM0JCyACQRBqJAALKgEDfwNAIAIiA0EBaiECIAAiBCgC9AMiAA0ACyABBEAgASADNgIACyAEC+QBAQN/QcACIQRBvAIhBQJAAkACQCADQQFrDgICAQALIABB2gE2AqACQbgCIQRBtAIhBQwBC0HIAiEEQcQCIQULAkACQCAAIARqIgYoAgAiBARAIAYgBCgCCDYCAAwBC0EcIAAoAgwRAgAiBA0AQQEhBgwBCyABQYECOwEgIAAgAUGDLxDSBkEAIQYgAUEANgIMIAQgACAFaiIFKAIANgIIIAUgBDYCACAEIAM2AhggBCABNgIMIAAoAtACIQEgBCACOgAUIAQgATYCECAEQgA3AgAgAw0AIABBAToAwARBAA8LIAYLagEBfyMAQRBrIgQkACAEIAI2AgwCfwJAIAAoAgxFBEAgABBhRQ0BCyAAQQxqIQIDQCABIARBDGogAyACIAAoAgggASgCOBEIAEECTwRAIAAQYQ0BDAILCyAAKAIQDAELQQALIARBEGokAAtOAQJ/IAAoAgAhAQNAIAEEQCABKAIAIAEgACgCFCgCCBEBACEBDAELCyAAKAIEIQEDQCABBEAgASgCACABIAAoAhQoAggRAQAhAQwBCwsLSwECfyAAIAAoAhQgACgCDEECdGoiAigCACIBKAIQNgIcIAAgASgCCCIBNgIkIAAgATYCUCAAIAIoAgAoAgA2AgQgACABLQAAOgAYC9YFAQZ/AkAgAiABayIGQQJIDQACQAJAAkACQAJAAkACQAJ/IAEtAAAiB0UEQCAAIAEtAAEiBWotAEgMAQsgB8AgASwAASIFECwLQf8BcSIEQRNrDgYCBgYBBgEACwJAIARBBmsOAgQDAAsgBEEdRw0FIAVBA3ZBHHEgB0GQiwhqLQAAQQV0ckGg/gdqKAIAIAV2QQFxRQ0FCyAAQcgAaiEJAkACQANAIAIgASIAQQJqIgFrIgZBAkgNCCAALQADIQUCQAJAAkACfyAALQACIgdFBEAgBSAJai0AAAwBCyAHwCAFwBAsC0H/AXEiBEESaw4MBQoKCgMKAwMDAwoBAAsgBEEGaw4CAQMJCyAFQQN2QRxxIAdBkI0Iai0AAEEFdHJBoP4HaigCACAFdkEBcQ0BDAgLCyAGQQJGDQUMBgsgBkEESQ0EDAULIABBBGohAUEJIQgMBAsgAiABQQJqIgRrQQJIDQQgAS0AAyIGwCEFAn8gASwAAiIHRQRAIAVB+ABGBEAgAiABQQRqIgRrQQJIDQcCfyAELAAAIgVFBEAgACABLQAFai0ASAwBCyAFIAEsAAUQLAtB/gFxQRhHBEAgBCEBDAcLIABByABqIQUgBCEBA0AgAiABIgBBAmoiAWtBAkgNCCAALQADIQQCfyAALAACIgZFBEAgBCAFai0AAAwBCyAGIATAECwLQf8BcSIEQRhrQQJJDQALIARBEkcNBiAAQQRqIQFBCiEIDAYLIAAgBmotAEgMAQsgByAFECwLQRlHBEAgBCEBDAQLIABByABqIQUgBCEBA0AgAiABIgBBAmoiAWtBAkgNBSAALQADIQQCfyAALAACIgZFBEAgBCAFai0AAAwBCyAGIATAECwLQf8BcSIEQRlGDQALIARBEkcNAyAAQQRqIQFBCiEIDAMLIAZBBEkNAQwCCyAGQQJHDQELQX4PCyADIAE2AgAgCA8LQX8LGwAgACgCTCIAKAIIIAEgAiAAKAIAKAIUEQUAC9YFAQZ/AkAgAiABayIGQQJIDQACQAJAAkACQAJAAkACQAJ/IAEtAAEiB0UEQCAAIAEtAAAiBWotAEgMAQsgB8AgASwAACIFECwLQf8BcSIEQRNrDgYCBgYBBgEACwJAIARBBmsOAgQDAAsgBEEdRw0FIAVBA3ZBHHEgB0GQiwhqLQAAQQV0ckGg/gdqKAIAIAV2QQFxRQ0FCyAAQcgAaiEJAkACQANAIAIgASIAQQJqIgFrIgZBAkgNCCAALQACIQUCQAJAAkACfyAALQADIgdFBEAgBSAJai0AAAwBCyAHwCAFwBAsC0H/AXEiBEESaw4MBQoKCgMKAwMDAwoBAAsgBEEGaw4CAQMJCyAFQQN2QRxxIAdBkI0Iai0AAEEFdHJBoP4HaigCACAFdkEBcQ0BDAgLCyAGQQJGDQUMBgsgBkEESQ0EDAULIABBBGohAUEJIQgMBAsgAiABQQJqIgRrQQJIDQQgAS0AAiIGwCEFAn8gASwAAyIHRQRAIAVB+ABGBEAgAiABQQRqIgRrQQJIDQcCfyABLAAFIgFFBEAgACAELQAAai0ASAwBCyABIAQsAAAQLAtB/gFxQRhHBEAgBCEBDAcLIABByABqIQUgBCEBA0AgAiABIgBBAmoiAWtBAkgNCCAALQACIQQCfyAALAADIgZFBEAgBCAFai0AAAwBCyAGIATAECwLQf8BcSIEQRhrQQJJDQALIARBEkcNBiAAQQRqIQFBCiEIDAYLIAAgBmotAEgMAQsgByAFECwLQRlHBEAgBCEBDAQLIABByABqIQUgBCEBA0AgAiABIgBBAmoiAWtBAkgNBSAALQACIQQCfyAALAADIgZFBEAgBCAFai0AAAwBCyAGIATAECwLQf8BcSIEQRlGDQALIARBEkcNAyAAQQRqIQFBCiEIDAMLIAZBBEkNAQwCCyAGQQJHDQELQX4PCyADIAE2AgAgCA8LQX8LpQUBBX9BASEEAkAgAiABayIFQQBMDQACQAJAAkACQAJAAkACQAJAIABByABqIgYgAS0AAGotAAAiCEEFaw4DAQIDAAsgCEETaw4GAwUFBAUEBQsgBUEBRg0FIAAgASAAKALgAhEAAA0EIAAgASAAKALUAhEAAEUNBEECIQQMAwsgBUEDSQ0EIAAgASAAKALkAhEAAA0DIAAgASAAKALYAhEAAEUNA0EDIQQMAgsgBUEESQ0DIAAgASAAKALoAhEAAA0CIAAgASAAKALcAhEAAEUNAkEEIQQMAQsgAiABQQFqIgBrQQBMDQMgAC0AACIEQfgARgRAIAIgAUECaiIBa0EATA0EIAYgAS0AAGotAABB/gFxQRhHDQIDQCACIAEiAEEBaiIBa0EATA0FIAYgAS0AAGotAAAiBEEYa0ECSQ0ACyAEQRJHDQIgAEECaiEBQQohBwwCCyAEIAZqLQAAQRlHBEAgACEBDAILIAAhAQNAIAIgASIAQQFqIgFrQQBMDQQgBiABLQAAai0AACIEQRlGDQALIARBEkcNASAAQQJqIQFBCiEHDAELIAEgBGohAQNAIAIgAWsiBUEATA0DQQEhBAJAAkACQCAGIAEtAABqLQAAIghBEmsOCgIEBAQBBAEBAQEACwJAAkACQCAIQQVrDgMAAQIGCyAFQQFGDQYgACABIAAoAuACEQAADQUgACABIAAoAsgCEQAARQ0FQQIhBAwCCyAFQQNJDQUgACABIAAoAuQCEQAADQQgACABIAAoAswCEQAARQ0EQQMhBAwBCyAFQQRJDQQgACABIAAoAugCEQAADQMgACABIAAoAtACEQAARQ0DQQQhBAsgASAEaiEBDAELCyABQQFqIQFBCSEHCyADIAE2AgAgBw8LQX4PC0F/C/gDAQV/IAMgBE8EQEF8DwsgASgCSCEHAkACQAJAAkAgBCADQQFqRgRAQX8hBiABLQBFIglBA2tB/wFxQQNJDQMgAy0AACIIQe8BayIKQRBLQQEgCnRBgYAGcUVyDQEgAkUNAyAJRQ0CDAMLAkACQAJAIAMtAAEiCCADLQAAIglBCHRyIgZBgPgARwRAIAZBu98DRg0CIAZB/v8DRg0BIAZB//0DRw0DIAIEQCABLQBFRQ0GCyAFIANBAmo2AgAgByAAKAIQNgIAQQ4PCwJAIAEtAEUiBkEERwRAIAJFIAZBA0dyDQEMBgsgAg0FCyAHIAAoAhQiADYCAAwGCyACBEAgAS0ARUUNBAsgBSADQQJqNgIAIAcgACgCFDYCAEEODwsCQCACRQ0AIAEtAEUiBkEFSw0AQQEgBnRBOXENAwsgBCADQQJqRgRAQX8PCyADLQACQb8BRw0CIAUgA0EDajYCACAHIAAoAgg2AgBBDg8LIAlFBEAgAgRAIAEtAEVBBUYNAwsgByAAKAIQIgA2AgAMBAsgAiAIcg0BIAcgACgCFCIANgIAIAAgAyAEIAUgACgCABEGACEGDAILIAhFIAhBPEZyDQELIAcgACABLABFQQJ0aigCACIANgIADAELIAYPCyAAIAMgBCAFIAAgAkECdGooAgARBgALsgMCA38CfAJAIABBrfYAECYiAUUNACABLQAARQ0AIAAoAkgoAhAiAiACLQBxQQhyOgBxIAAgASABEHZBAEdBAXQgACAAQQBBnI8BQQAQIUQAAAAAAAAsQEQAAAAAAADwPxBLIAAgAEEAQdqfAUEAECFB2O8AEJEBIAAgAEEAQbM8QQAQIUHw+gAQkQEQ3QIhASAAKAIQIAE2AgwgAEHmugEQJiEBAn8CQAJAIAAQNyAARwRAIAFFDQIgAS0AAEHiAEYNAQwCCyABRQ0AIAEtAABB9ABGDQELQQAMAQtBAQshAQJAIABB4BkQJiICRQ0AIAItAAAiAkHyAEcEQCACQewARw0BIAFBAnIhAQwBCyABQQRyIQELIAAoAhAgAToAkwIgABA3IABGDQAgACgCECgCDCIBKwMgRAAAAAAAACBAoCEEIAErAxhEAAAAAAAAMECgIQUgABA3IAAoAhAiAEEwaiEBIAAtAJMCIQIoAhAtAHRBAXFFBEAgASACQQV0QSBxaiIAIAQ5AwggACAFOQMADwsgAUEQQTAgAkEBcRsiAmogBDkDACAAIAJqIAU5AzgLCwgAQeAEENQKCyYAIAAgAUGM4gooAgBB5ooFEJEBIgBB8PoAIAAtAAAbIgAQRSAAC4oEAg18A38jAEFAaiIRJAAgARAvKAJIKAIQKAJ0IRIgESABKAIQIhMpAxg3AxggESATKQMQNwMQIBFBMGogEUEQaiASQQNxIhIQmQogESACKAIQIgIpAxg3AwggESACKQMQNwMAIBFBIGogESASEJkKAkAgAy0AISISRSASQQ9GckUEQAJ8IAMoAhgiAgRAIAIrAxghBiACKwMQIQcgAisDACEIIAIrAwgMAQsgARAvIQIgASgCECITKwNYIgQgEysDUEQAAAAAAADgP6IiBSACKAIQLQB0QQFxIgIbIQYgBSAEIAIbIQcgBZoiBSAEmiIEIAIbIQggBCAFIAIbCyEJIAggB6BEAAAAAAAA4D+iIQogCSAGoEQAAAAAAADgP6IhDEEAIRMgESsDKCENIBErAyAhDiARKwM4IQ8gESsDMCEQQQAhAgNAIAJBBEZFBEACQCASIAJ2QQFxRQ0AIAohBCAJIQUCQAJ8AkACQAJAIAJBAWsOAwABAgQLIAcMAgsgBiEFDAILIAgLIQQgDCEFC0EAIBMgECAEoCAOoSIEIASiIA8gBaAgDaEiBCAEoqAiBCALYxsNACACQQJ0QYD+B2ooAgAhEyAEIQsLIAJBAWohAgwBCwsgAy0AISESDAELQQAhEwsgACADKAIkNgIkIAEgAygCGCAAIBMgEkEAEJ4EGiARQUBrJAALOQIBfwF8IwBBEGsiAiQAIAAgAkEMahDiASEDIAIoAgwgAEYEf0EBBSABIAM5AwBBAAsgAkEQaiQAC1IBA38gABCeCiAAQQRqIQIDfyAAKAIAELACIgFBMGshAyABQS5GIANBCklyBH8gAiABwBDtBgwBBSABQX9HBEAgASAAKAIAEIgMCyACEKAKCwsL5AIBBX8jAEEQayIEJAACQAJAEKAEEKMKTwRAEKMKIgNBAWoiASADQQF0QYAIIAMbIgIgASACSxshARCgBCEFAkBBt+UKLQAAQf8BRgRAIANBf0YNA0Go5QooAgAhAiABRQRAIAIQGEEAIQIMAgsgAiABEDoiAkUNBCABIANNDQEgAiADakEAIAEgA2sQMxoMAQsgAUEBEBkiAkGo5QogBRAfGkGs5QogBTYCAAtBt+UKQf8BOgAAQbDlCiABNgIAQajlCiACNgIACxCgBCEBAkAQ0AMEQCABQajlCmogADoAAEG35QpBt+UKLQAAQQFqOgAAEKAEQRBJDQFBvMADQcmEAUGdAkGUugEQAAALQajlCigCACABaiAAOgAAQazlCkGs5QooAgBBAWo2AgALIARBEGokAA8LQd/JA0GYhQFBzQBB77oBEAAACyAEIAE2AgBBuPwIKAIAQdPzAyAEEB4aECgAC2gBA38gACgCECIBKAIIIgIEf0EAIQEDfyACKAIAIQMgAigCBCABTQR/IAMQGCAAKAIQKAIIEBggACgCEAUgAyABQTBsaigCABAYIAFBAWohASAAKAIQKAIIIQIMAQsLBSABC0EANgIIC9gBAQJ/IwBBEGsiBCQAQaDlCkGg5QooAgAiBUEBajYCACAEIAEQIDYCBCAEIAU2AgAgAkH3OCAEEMQCIAEQNyACELQKQQEQjwEiAkHGK0HAAkEBEDUaIAIoAhBBAToAhgEgASACQQEQhgEaIAMgAEEBEIYBGkGg4gogAhAvIAJBrfYAQeaKBUGg4gooAgAQ9QY2AgBBrOIKIAIQLyACQdygAUGQM0Gs4gooAgAQ9QY2AgBBiOIKIAIQLyACQcidAUHiEkGI4gooAgAQ9QY2AgAgBEEQaiQAIAILiQYCBn8BfCAAQYTiCigCAEQAAAAAAADoP0R7FK5H4XqEPxBLIQcgACgCECAHOQMgIABBgOIKKAIARAAAAAAAAOA/RHsUrkfhepQ/EEshByAAKAIQIAc5AygCfyAAQYjiCigCAEGFmwEQkQEhAiMAQSBrIgQkACAAQd2hARAmEIsFBEAgAkGD8gAgAkHXiwEQTRshAgsCQAJAAkACQCACQYPyABBNDQBBkIUKIQEDQCABKAIAIgNFDQEgAyACEE0NAiABQRBqIQEMAAsACyACEOgGIgENAEHQ5QpB0OUKKAIAIgNBAWoiATYCACADQf////8DTw0BQczlCigCACABQQJ0IgEQOiIFRQ0CIAEgA0ECdCIGSwRAIAUgBmpBADYAAAtBzOUKIAU2AgBBEBBUIQFBzOUKKAIAIANBAnRqIAE2AgAgAUGYhQopAwA3AgggAUGQhQopAwA3AgAgASACEKoBNgIAQQEhAwJAQYDhCigCAA0AIAJBg/IAEE0NACABKAIAIQJBACEDIARBkIUKKAIANgIQIAQgAjYCFEGNhAQgBEEQahArCyABIAM6AAwLIARBIGokACABDAILQd/JA0GYhQFBzQBB77oBEAAACyAEIAE2AgBBuPwIKAIAQdPzAyAEEB4aECgACyEBIAAoAhAgATYCCCAAQaDiCigCABBBIQEgAEGU4gooAgBEAAAAAAAALEBEAAAAAAAA8D8QSyEHIABBmOIKKAIAQdjvABCRASECIABBnOIKKAIAQfD6ABCRASEEIAEQdiEDIAAgASAAEOcCQQJGQQJ0IANBAEdBAXRyIAcgAiAEEN0CIQEgACgCECABNgJ4AkBBpOIKKAIAIgFFDQAgACABEEEiAUUNACABLQAARQ0AIAAgASABEHZBAEdBAXQgByACIAQQ3QIhASAAKAIQIAE2AnwgABAvKAIQIgEgAS0AcUEQcjoAcQsgAEGw4gooAgBBAEEAEGQhASAAKAIQIgJB/wEgASABQf8BThs6AKABIAAgAigCCCgCBCgCABEBAAvTAgEDfyMAQRBrIgMkAAJAIABFDQAgAC0AAEUNAEGQ4QooAgAiAgRAQfjkCi0AAA0BIAMgAjYCAEHdgQUgAxArQfjkCkEBOgAADAELQfzkCigCACECQYThCigCAARAIAJFBEBBgOUKKAIAEBhB/OQKQYThCigCACIBNgIAQYDlCiABELYKNgIAC0EAIQEDQCABQQNGBEBBgOUKKAIAIAAQtQohAQwDBSAAIAFB4OgBaiwAACAAEDxBAWoQmgwiAkEBaiAAIAIbIQAgAUEBaiEBDAELAAsAC0GA5QooAgAhAQJAIAJBiOEKKAIARg0AIAEQGEEAIQFB/OQKQYjhCigCACICNgIAQYDlCkEANgIAIAJFDQAgAi0AAEUNAEGA5QogAhC2CiIBNgIACyABRSAALQAAQS9GckUEQCABIAAQtQohAQwBCyAAIQELIANBEGokACABC7QBAQR/AkAgACABRg0AAkAgACgCECICKALwAUUEQCACQQE2AuwBIAIgADYC8AEMAQsgABCnASEACwJAIAEoAhAiAigC8AFFBEAgAkEBNgLsASACIAE2AvABDAELIAEQpwEhAQsgACABRg0AIAAoAhAiAiABKAIQIgMgAigCiAEgAygCiAFKIgQbIgUgASAAIAQbIgA2AvABIAMgAiAEGyIBIAEoAuwBIAUoAuwBajYC7AELIAAL5gMBCX8gACgCBCIHRQRAIAAgATYCBCABDwsCQCABRQ0AIAAoAiAoAgAhCCAALQAJQRBxBEAgAEEAEOgBCyAAIAE2AgQgABCzASEEIABBADYCGCAAQQA2AgwgACAAKAIIIgNB/19xNgIIAkAgA0EBcUUNACAAKAIQIgIgACgCFEECdGohAwNAIAIgA08NASACQQA2AgAgAkEEaiECDAALAAsDQCAERQ0BAn8gASgCCCIDQQBIBEAgBCgCCAwBCyAEIANrCyABKAIAaiECIAQoAgAgBAJ/IAEoAgQiA0EASARAIAIoAgAhAgtBACEFAkACQAJAIANBAEwEQCACIQMDQCADLQAAIgoEQCADQQJBASADLQABIgYbaiEDIAYgCkEIdCAFampBs6aUCGwhBQwBCwsgAhA8QQBIDQIgAyACayEDDAELIAIgA2pBAWshBgNAIAIgBkkEQCACLQABIAItAABBCHQgBWpqQbOmlAhsIQUgAkECaiECDAELCyACIAZLDQAgAi0AAEEIdCAFakGzppQIbCEFCyADQQBIDQEgAyAFakGzppQIbAwCC0HP0wFBn8UBQRxB9P8AEAAAC0G9nQNBn8UBQSZB9P8AEAAACzYCBCAAIARBICAIEQQAGiEEDAALAAsgBwu6BQIGfwV8IwBB0ABrIgQkAAJAAkAgACgCEC0AcEEGRg0AAkBB3OMKKAIAIgMEQCAAIAMQQS0AAA0BC0HY4wooAgAiA0UNAiAAIAMQQS0AAEUNAgsgACgCEEHkAEHoACABG2ooAgAhBiAAEJ4DIgJFDQAgAigCACEDAnwCQCABRQRAIAMoAggEQCADKwMYIQkgAysDECEKIAMoAgAiASsDCCEIIAErAwAMAwsgAygCACIBKwMIIQkgASsDACEKQQAhAgNAIAJBBEYEQCAEIARBEGpEmpmZmZmZuT9BAEEAEKYBDAMFIAJBBHQiASAEQRBqaiIFIAMoAgAgAWoiASkDADcDACAFIAEpAwg3AwggAkEBaiECDAELAAsACyADIAIoAgRBMGxqIgFBMGshAyABQSRrKAIABEAgAUEIaysDACEJIAFBEGsrAwAhCiADKAIAIAFBLGsoAgBBBHRqIgFBCGsrAwAhCCABQRBrKwMADAILIAMoAgAgAUEsayIBKAIAQQR0aiICQQhrKwMAIQkgAkEQaysDACEKQQAhAgNAIAJBBEYEQCAEIARBEGpEzczMzMzM7D9BAEEAEKYBBSACQQR0IgUgBEEQamoiByADKAIAIAEoAgBBBHRqIAVqQUBqIgUpAwA3AwAgByAFKQMINwMIIAJBAWohAgwBCwsLIAQrAwghCCAEKwMACyELIAggCaEgCyAKoRCtASEIIABB3OMKKAIARAAAAAAAADnARAAAAAAAgGbAEEshC0EBIQIgAEHY4wooAgBEAAAAAAAA8D9EAAAAAAAAAAAQSyEMIAZBAToAUSAGIAxEAAAAAAAAJECiIgwgCCALRAAAAAAAgGZAo0QYLURU+yEJQKKgIggQWKIgCaA5A0AgBiAMIAgQRKIgCqA5AzgMAQtBACECCyAEQdAAaiQAIAILiwEBAX8DQAJAIAJBCEYEQEF/IQIMAQsgASACQQJ0QeDmB2ooAgBGDQAgAkEBaiECDAELC0EAIQEDQAJAIAFBCEYEQEF/IQEMAQsgACABQQJ0QeDmB2ooAgBGDQAgAUEBaiEBDAELC0EAIQAgASACckEATgR/IAFBBXQgAkECdGpBgOcHaigCAAVBAAsL6Q8CCHwGfyMAQTBrIhEkACABIAFBMGsiEiABKAIAQQNxIg1BAkYbKAIoIQ4gASgCECIPLQBXQQFGBEAgEUEIaiIQIA4gAUEwQQAgDUEDRxtqKAIoIA9BOGoiDRCEBSANIBBBKBAfGgsgDigCECIPKAIIIg0EfyANKAIEKAIQBUEACyEQIA8rABAhBSABKAIQIg0rADghBiAAIA0rAEAgDysAGKA5AzAgACAGIAWgOQMoAkAgBARAIAAgASASIAEoAgBBA3FBAkYbKAIoEMEKRBgtRFT7IQlAoCIFOQM4IAVEGC1EVPshGUBjBEBBASEEDAILQa3eAUHcwgFB1QRBjv8AEAAAC0EBIQQgDS0AVUEBRwRAQQAhBAwBCyAAIA0rA0g5AzgLIAAgBDoARSADIAApAzA3AyggAyAAKQMoNwMgAkACQAJAAkACQCACQQFrDgIAAQILQQQhDSAOKAIQIgQtAKwBDQIgASgCEC0AWSIPRQ0CIAMrAxAhBiADKwMAIQUCQCAPQQRxBEAgA0EENgIwIAArAzAhCCADIAU5AzggA0EBNgI0IAMgBjkDSCADIAMrAxg5A1AgAyADKwMIIgUgCCAFIAhjGzkDQCAAIAArAzBEAAAAAAAA8D+gOQMwDAELIA9BAXEEQCADQQE2AjAgBCsDGCAEKwNQRAAAAAAAAOC/oqAhCgJ8IAArAyggBCsDEGMEQCAAKwMwIQggDhAvIQ0gBUQAAAAAAADwv6AiBSEJIA4oAhAiBCsDECAEKwNYoQwBCyAAKwMwIQggDhAvIQ0gDigCECIEKwMQIAQrA2CgRAAAAAAAAAAAoCEJIAZEAAAAAAAA8D+gIgYLIQcgDSgCECgC/AEhAiAEKwMYIQsgBCsDUCEMIAMgBzkDaCADIAg5A2AgAyAJOQNYIAMgCDkDUCADIAY5A0ggAyAFOQM4IANBAjYCNCADIAsgDEQAAAAAAADgP6KgOQNwIAMgCiACQQJtt6E5A0AgACAAKwMwRAAAAAAAAPC/oDkDMAwBCyAPQQhxBEAgA0EINgIwIAQrAxghBiAEKwNQIQggACsDMCEHIAMgACsDKDkDSCADIAc5A0AgAyAFOQM4IANBATYCNCADIAYgCEQAAAAAAADgP6KgOQNQIAAgACsDKEQAAAAAAADwv6A5AygMAQsgA0ECNgIwIAQrAxghBSAEKwNQIQggACsDKCEHIAArAzAhCSADIAY5A0ggAyAJOQNAIAMgBzkDOCADQQE2AjQgAyAFIAhEAAAAAAAA4D+ioDkDUCAAIAArAyhEAAAAAAAA8D+gOQMoCwNAIAEiACgCECICKAJ4IgEEQCACLQBwDQELCyACQdYAQS4gDiAAQVBBACAAKAIAQQNxQQJHG2ooAihGG2pBADoAACADIA82AjAMAwsgASgCEC0AWSINRQ0AIAMrAxghByADKwMQIQggAysDCCEGIAMrAwAhBQJAIA1BBHEEQCAAKwMwIQkgAyAHOQNQIAMgCDkDSCADIAU5AzggA0EBNgI0IAMgBiAJIAYgCWMbOQNAIAAgACsDMEQAAAAAAADwP6A5AzAMAQsgDUEBcQRAAn8gAygCMEEERgRAIA4oAhAiAisDUCEGIAIrAxghByAAKwMoIQggDhAvIA4oAhAiAisDGCEJIAIrA1AhCigCECgC/AEhDyACKwNYIQsgAisDECEMIAMgByAGRAAAAAAAAOA/oqEiBzkDYCADIAVEAAAAAAAA8L+gIgU5A1ggAyAFOQM4IAMgDCALoUQAAAAAAAAAwKA5A2hBAiEEIAcgD0ECbbehIQYgCSAKRAAAAAAAAOA/oqAhBUHwAAwBCyAHIAArAwgiCSAHIAlkGyEHQQEhBEE4CyADaiAFOQMAIAMgBzkDUCADIAg5A0ggAyAGOQNAIAMgBDYCNCAAIAArAzBEAAAAAAAA8L+gOQMwDAELIAArAzAiBkQAAAAAAADwv6AhByAOKAIQIgIrAxgiCiACKwNQRAAAAAAAAOA/oiILoSEJIAogC6AhCiADKAIwIQIgACsDKCELIA1BCHEEQCADIAU5AzggA0EBNgI0IAMgC0QAAAAAAADwP6A5A0ggAyAKIAZEAAAAAAAA8D+gIAJBBEYiAhs5A1AgAyAHIAkgAhs5A0AgACAAKwMoRAAAAAAAAPC/oDkDKAwBCyADIAg5A0ggA0EBNgI0IAMgC0QAAAAAAADwv6A5AzggAyAKIAYgAkEERiICGzkDUCADIAcgCSACGzkDQCAAIAArAyhEAAAAAAAA8D+gOQMoCwNAIAEiACgCECICKAJ4IgEEQCACLQBwDQELCyACQdYAQS4gDiAAQVBBACAAKAIAQQNxQQJHG2ooAihGG2pBADoAACADIA02AjAMAgsgAygCMCENCwJAIBBFDQAgDiABKAIQQThqIA0gA0E4aiADQTRqIBARCAAiAUUNACADIAE2AjAMAQsgA0EBNgI0IAMgAykDADcDOCADIAMpAxg3A1AgAyADKQMQNwNIIANBQGsgAykDCDcDAAJAAkACQCACQQFrDgICAQALIAJBCEcNAkG/owNB3MIBQfYFQY7/ABAAAAsgACsDMCEFIAMoAjBBBEYEQCADIAU5A0AMAgsgAyAFOQNQDAELIAArAzAhBSADQQQ2AjAgAyAFOQNAIAAgBUQAAAAAAADwP6A5AzALIBFBMGokAAvnDwIIfAZ/IwBBMGsiESQAIAEgAUEwaiISIAEoAgBBA3EiDUEDRhsoAighDiABKAIQIhAtAC9BAUYEQCARQQhqIg8gDiABQVBBACANQQJHG2ooAiggEEEQaiINEIQFIA0gD0EoEB8aCyAOKAIQIg8oAggiDQR/IA0oAgQoAhAFQQALIRAgDysAECEFIAEoAhAiDSsAECEIIAAgDSsAGCAPKwAYoDkDCCAAIAggBaA5AwACfyAAAnwgBARAIAEgEiABKAIAQQNxQQNGGygCKBDBCgwBC0EAIA0tAC1BAUcNARogDSsDIAs5AxBBAQshBCAAIAE2AlggAEEANgJQIAAgBDoAHSADIAApAwA3AyAgAyAAKQMINwMoAkACQAJAAkACQCACQQFrDgIAAQILQQEhBCAOKAIQIg0tAKwBDQIgASgCEC0AMSIPRQ0CIAMrAxAhBSADKwMAIQgCQCAPQQRxBEAgA0EENgIwIA0rAxggDSsDUEQAAAAAAADgP6KgIQoCfCAAKwMAIA0rAxBjBEAgACsDCCEHIA4QLyECIAhEAAAAAAAA8L+gIgghCSAOKAIQIgQrAxAgBCsDWKEMAQsgACsDCCEHIA4QLyECIA4oAhAiBCsDECAEKwNgoEQAAAAAAAAAAKAhCSAFRAAAAAAAAPA/oCIFCyEGIAIoAhAoAvwBIQIgBCsDGCELIAQrA1AhDCADIAc5A3AgAyAGOQNoIAMgCTkDWCADIAU5A0ggAyAHOQNAIAMgCDkDOCADIAsgDEQAAAAAAADgv6KgOQNgIAMgCiACQQJtt6A5A1AgACAAKwMIRAAAAAAAAPA/oDkDCCADQQI2AjQMAQsgD0EBcQRAIAMrAxghByADKwMIIQkgA0EBNgIwIAArAwghBiADIAU5A0ggAyAJOQNAIAMgCDkDOCADQQE2AjQgAyAHIAYgBiAHYxs5A1AgACAAKwMIRAAAAAAAAPC/oDkDCAwBCyAPQQhxBEAgA0EINgIwIA0rAxghBSANKwNQIQcgACsDACEGIAMgACsDCDkDUCADIAY5A0ggAyAIOQM4IANBATYCNCADIAUgB0QAAAAAAADgv6KgOQNAIAAgACsDAEQAAAAAAADwv6A5AwAMAQsgA0ECNgIwIA0rAxghCCANKwNQIQcgACsDACEGIAMgACsDCDkDUCADIAU5A0ggAyAGOQM4IANBATYCNCADIAggB0QAAAAAAADgv6KgOQNAIAAgACsDAEQAAAAAAADwP6A5AwALA0AgASIAKAIQIgIoAngiAQRAIAItAHANAQsLIABBMEEAIAAoAgBBA3FBA0cbaigCKCAORgRAIAJBADoALgwECyACQQA6AFYMAwsgASgCEC0AMSINRQ0AIAMrAxghBiADKwMQIQggAysDCCEFIAMrAwAhBwJAIA1BBHEEQCAAKwMIIQkgAyAGOQNQIAMgCDkDSCADIAc5AzggA0EBNgI0IAMgBSAJIAUgCWMbOQNAIAAgACsDCEQAAAAAAADwP6A5AwgMAQsgDUEBcQRAAn8gAygCMEEERgRAIAArAwAhBSAOKAIQIgIrAxghByACKwNQIQYgDhAvIA4oAhAiAisDGCEJIAIrA1AhCigCECgC/AEhECACKwNgIQsgAisDECEMIAMgCEQAAAAAAADwP6AiCDkDaCADIAcgBkQAAAAAAADgP6KhIgY5A2AgAyAFOQM4IAMgDCALoEQAAAAAAAAAAKA5A1hBAiEEIAYgEEECbbehIQUgCSAKRAAAAAAAAOA/oqAhB0HwAAwBCyAGIAArAwgiCSAGIAlkGyEGQQEhBEE4CyADaiAHOQMAIAMgBjkDUCADIAg5A0ggAyAFOQNAIAMgBDYCNCAAIAArAwhEAAAAAAAA8L+gOQMIDAELIAArAwAhBSANQQhxBEAgDigCECICKwMYIQggAisDUCEJIAArAwghBiADIAVEAAAAAAAA8D+gOQNIIAMgBzkDOCADQQE2AjQgAyAIIAlEAAAAAAAA4D+iIgWgIAZEAAAAAAAA8D+gIAMoAjBBBEYiAhs5A1AgAyAGRAAAAAAAAPC/oCAIIAWhIAIbOQNAIAAgACsDAEQAAAAAAADwv6A5AwAMAQsgDigCECICKwMYIQcgAisDUCEJIAArAwghBiADIAg5A0ggAyAFOQM4IANBATYCNCADIAcgCUQAAAAAAADgP6IiBaAgBkQAAAAAAADwP6AgAygCMEEERiICGzkDUCADIAYgByAFoSACGzkDQCAAIAArAwBEAAAAAAAA8D+gOQMACwNAIAEiACgCECICKAJ4IgEEQCACLQBwDQELCyACQS5B1gAgDiAAQTBBACAAKAIAQQNxQQNHG2ooAihGG2pBADoAACADIA02AjAMAgsgAygCMCEECwJAIBBFDQAgDiABKAIQQRBqIAQgA0E4aiADQTRqIBARCAAiAUUNACADIAE2AjAMAQsgA0EBNgI0IAMgAykDADcDOCADIAMpAxg3A1AgAyADKQMQNwNIIANBQGsgAykDCDcDAAJAAkACQCACQQFrDgICAQALIAJBCEcNAkG/owNB3MIBQbAEQfr+ABAAAAsgACsDCCEFIAMoAjBBBEYEQCADIAU5A0AMAgsgAyAFOQNQDAELIAArAwghBSADQQE2AjAgAyAFOQNQIAAgBUQAAAAAAADwv6A5AwgLIBFBMGokAAuJBAMHfwN8AX4jAEHAAWsiBCQAIAQCfyADBEAgBEEgaiEGIARBKGohByAEQYABaiEIIAIMAQsgBEEoaiEGIARBIGohByAEQYABaiEJIAJBMGoLIgMpAwg3AzggBCADKQMANwMwIARCADcDKCAEQoCAgICAgID4PzcDIEQAAAAAAADwPyELIAQrAzAhDANAIAQrAzghDSAEQRBqIAIgC0QAAAAAAADgP6IiCyAJIAgQpgEgBCAEKQMYIg43AzggBCAONwMIIAQgBCkDECIONwMwIAQgDjcDAAJAIAAgBCABEQAABEAgByALOQMAQQAhAwNAIANBBEYEQEEBIQUMAwUgA0EEdCIFIARBQGtqIgogBEGAAWogBWoiBSkDCDcDCCAKIAUpAwA3AwAgA0EBaiEDDAELAAsACyAGIAs5AwALAkAgDCAEKwMwIgyhmUQAAAAAAADgP2RFBEAgDSAEKwM4oZlEAAAAAAAA4D9kRQ0BCyAEKwMgIAQrAyigIQsMAQsLQQAhAwJAIAUEQANAIANBBEYNAiACIANBBHQiAGoiASAEQUBrIABqIgApAwg3AwggASAAKQMANwMAIANBAWohAwwACwALA0AgA0EERg0BIAIgA0EEdCIAaiIBIARBgAFqIABqIgApAwg3AwggASAAKQMANwMAIANBAWohAwwACwALIARBwAFqJAALjAEBBX8gACgCBCEFAkACQANAIAUEQCAAKAIMIgZFDQIgACgCACgCACEHA0AgBgRAIAAoAgAgBkEBayIGQQJ0aiIIKAIAIAggBzYCACEHDAEFIAAgBUEBayIFNgIEDAMLAAsACwsgACgCCCAAKAIMSw0BDwtB4poDIAMgAiABEAAACyAEIAMgAiABEAAACzUBAXwgACAAKwMQIgE5AzAgACABOQMgIAAgACsDGDkDKCAAIAArAwg5AzggACAAKwMAOQMQC0kBAn8gACgCBCIGQQh1IQUgBkEBcQRAIAIoAgAgBRCJByEFCyAAKAIAIgAgASACIAVqIANBAiAGQQJxGyAEIAAoAgAoAhgRCgALsAEBA38jAEEQayICJAAgAiABOgAPAkACQAJ/IAAQqAEiBEUEQEEKIQEgABCpAwwBCyAAEPgCQQFrIQEgACgCBAsiAyABRgRAIAAgAUEBIAEgARCaByAAEEIaDAELIAAQQhogBA0AIAAiASADQQFqENQBDAELIAAoAgAhASAAIANBAWoQvwELIAEgA2oiACACQQ9qENMBIAJBADoADiAAQQFqIAJBDmoQ0wEgAkEQaiQACw0AIABB2PEJNgIAIAALBwAgAEEIagsHACAAQQJJCzQBAX8jAEEQayICJAAgASAAIAJBDGoQtwc2AgAgAigCDCEBIAJBEGokACABQQAgACABRxsLBABBBAvYAQECfyMAQSBrIgQkAAJAAkACQCADBEAgAUF/IANuIgVPDQEgAiAFSw0CAkAgAiADbCICRQRAIAAQGEEAIQAMAQsgACACEDoiAEUNBCACIAEgA2wiAU0NACAAIAFqQQAgAiABaxAzGgsgBEEgaiQAIAAPC0G0ugNBmIUBQcwAQe+6ARAAAAtB38kDQZiFAUHNAEHvugEQAAALIAQgAzYCBCAEIAI2AgBBuPwIKAIAQYT0AyAEEB4aECgACyAEIAI2AhBBuPwIKAIAQdPzAyAEQRBqEB4aECgACx0AIABBBGoQlQdBf0YEQCAAIAAoAgAoAggRAQALCwsAIAAgASgCABAuCxEAIAAgASABKAIAKAIoEQMACwgAQf////8HCwUAQf8AC2EBAX8jAEEQayICJAAgAiAANgIMAkAgACABRg0AA0AgAiABQQRrIgE2AgggACABTw0BIAIoAgwgAigCCBCzBSACIAIoAgxBBGoiADYCDCACKAIIIQEMAAsACyACQRBqJAALEQAgABAnBH8gAAUgACgCAAsL0AEBAn8gAkGAEHEEQCAAQSs6AAAgAEEBaiEACyACQYAIcQRAIABBIzoAACAAQQFqIQALIAJBhAJxIgNBhAJHBEAgAEGu1AA7AAAgAEECaiEACyACQYCAAXEhAgNAIAEtAAAiBARAIAAgBDoAACAAQQFqIQAgAUEBaiEBDAELCyAAAn8CQCADQYACRwRAIANBBEcNAUHGAEHmACACGwwCC0HFAEHlACACGwwBC0HBAEHhACACGyADQYQCRg0AGkHHAEHnACACGws6AAAgA0GEAkcLqgEBAX8CQCADQYAQcUUNACACRSADQcoAcSIEQQhGIARBwABGcnINACAAQSs6AAAgAEEBaiEACyADQYAEcQRAIABBIzoAACAAQQFqIQALA0AgAS0AACIEBEAgACAEOgAAIABBAWohACABQQFqIQEMAQsLIAACf0HvACADQcoAcSIBQcAARg0AGkHYAEH4ACADQYCAAXEbIAFBCEYNABpB5ABB9QAgAhsLOgAACwwAIAAQQiABQQJ0agucBAELfyMAQYABayIMJAAgDCABNgJ8IAIgAxDQCyEIIAxBCjYCECAMQQhqQQAgDEEQaiIJEH8hDwJAAkACQCAIQeUATwRAIAgQSCIJRQ0BIA8gCRCSAQsgCSEHIAIhAQNAIAEgA0YEQEEAIQsDQCAAIAxB/ABqIgEQW0EBIAgbBEAgACABEFsEQCAFIAUoAgBBAnI2AgALA0AgAiADRg0GIAktAABBAkYNByAJQQFqIQkgAkEMaiECDAALAAsgABCEASENIAZFBEAgBCANEJ8BIQ0LIAtBAWohEEEAIQ4gCSEHIAIhAQNAIAEgA0YEQCAQIQsgDkUNAiAAEJgBGiAJIQcgAiEBIAggCmpBAkkNAgNAIAEgA0YEQAwEBQJAIActAABBAkcNACABECMgC0YNACAHQQA6AAAgCkEBayEKCyAHQQFqIQcgAUEMaiEBDAELAAsABQJAIActAABBAUcNACABIAsQpgUoAgAhEQJAIAYEfyARBSAEIBEQnwELIA1GBEBBASEOIAEQIyAQRw0CIAdBAjoAACAKQQFqIQoMAQsgB0EAOgAACyAIQQFrIQgLIAdBAWohByABQQxqIQEMAQsACwALAAUgB0ECQQEgARD4ASILGzoAACAHQQFqIQcgAUEMaiEBIAogC2ohCiAIIAtrIQgMAQsACwALEJMBAAsgBSAFKAIAQQRyNgIACyAPEH4gDEGAAWokACACCxEAIAAgASAAKAIAKAIMEQAAC5sEAQt/IwBBgAFrIgwkACAMIAE2AnwgAiADENALIQggDEEKNgIQIAxBCGpBACAMQRBqIgkQfyEPAkACQAJAIAhB5QBPBEAgCBBIIglFDQEgDyAJEJIBCyAJIQcgAiEBA0AgASADRgRAQQAhCwNAIAAgDEH8AGoiARBcQQEgCBsEQCAAIAEQXARAIAUgBSgCAEECcjYCAAsDQCACIANGDQYgCS0AAEECRg0HIAlBAWohCSACQQxqIQIMAAsACyAAEIUBIQ0gBkUEQCAEIA0QqAUhDQsgC0EBaiEQQQAhDiAJIQcgAiEBA0AgASADRgRAIBAhCyAORQ0CIAAQmQEaIAkhByACIQEgCCAKakECSQ0CA0AgASADRgRADAQFAkAgBy0AAEECRw0AIAEQIyALRg0AIAdBADoAACAKQQFrIQoLIAdBAWohByABQQxqIQEMAQsACwAFAkAgBy0AAEEBRw0AIAEgCxA/LAAAIRECQCAGBH8gEQUgBCAREKgFCyANRgRAQQEhDiABECMgEEcNAiAHQQI6AAAgCkEBaiEKDAELIAdBADoAAAsgCEEBayEICyAHQQFqIQcgAUEMaiEBDAELAAsACwAFIAdBAkEBIAEQ+AEiCxs6AAAgB0EBaiEHIAFBDGohASAKIAtqIQogCCALayEIDAELAAsACxCTAQALIAUgBSgCAEEEcjYCAAsgDxB+IAxBgAFqJAAgAgs7AAJAIAAQJwRAIAAQJEEPRg0BCyAAQQAQzgMLAkAgABAnBEAgAEEAOgAPDAELIABBADYCBAsgABCjBQslAQF/IwBBEGsiAyQAIAMgAjYCDCAAIAEgAhDDCxogA0EQaiQAC6EBAQJ/AkACQCABEDwiAkUNACAAEEYgABAkayACSQRAIAAgAhDRAQsgABAkIQMgABAnBEAgACADaiABIAIQHxogAkGAAk8NAiAAIAAtAA8gAmo6AA8gABAkQRBJDQFBvMADQcmEAUGFAkGy8AAQAAALIAAoAgAgA2ogASACEB8aIAAgACgCBCACajYCBAsPC0H41AFByYQBQYMCQbLwABAAAAsNACAAKAIAIAEoAgBJCwcAIABBC0kLCQAgAEEBEOELCxYAIAAgASgCADYCACAAIAIoAgA2AgQLCQAgACABEKgDCzEBAX8jAEEQayIDJAAgAyABNgIMIAMgAjYCCCAAIANBDGogA0EIahCwBSADQRBqJAALHAEBfyAAKAIAIQIgACABKAIANgIAIAEgAjYCAAsIACAAKAIARQuNAQEBfwJAIAAoAgQiASABKAIAQQxrKAIAaigCGEUNACAAKAIEIgEgASgCAEEMaygCAGoQ+QtFDQAgACgCBCIBIAEoAgBBDGsoAgBqKAIEQYDAAHFFDQAgACgCBCIBIAEoAgBBDGsoAgBqKAIYEPgLQX9HDQAgACgCBCIAIAAoAgBBDGsoAgBqQQEQtwULC7MBAQF/IAAgATYCBCAAQQA6AAAgASABKAIAQQxrKAIAahD5CwRAIAEgASgCAEEMaygCAGooAkgiAQRAIwBBEGsiAiQAIAEgASgCAEEMaygCAGooAhgEQCACQQhqIAEQtgUaAkAgAi0ACEUNACABIAEoAgBBDGsoAgBqKAIYEPgLQX9HDQAgASABKAIAQQxrKAIAakEBELcFCyACQQhqELUFCyACQRBqJAALIABBAToAAAsgAAsJACAAIAEQ9g0LawEBfyMAQRBrIgIkAAJAIAAoAgAEQCABKAIARQ0BIAIgACkCADcDCCACIAEpAgA3AwAgAkEIaiACEPwLIAJBEGokAEUPC0G+3AFB9YEBQdsAQdnBABAAAAtBr9wBQfWBAUHcAEHZwQAQAAAL2gMCBX8CfiMAQSBrIgQkACABQv///////z+DIQcCQCABQjCIQv//AYMiCKciA0GB/wBrQf0BTQRAIAdCGYinIQICQCAAUCABQv///w+DIgdCgICACFQgB0KAgIAIURtFBEAgAkEBaiECDAELIAAgB0KAgIAIhYRCAFINACACQQFxIAJqIQILQQAgAiACQf///wNLIgUbIQJBgYF/QYCBfyAFGyADaiEDDAELIAAgB4RQIAhC//8BUnJFBEAgB0IZiKdBgICAAnIhAkH/ASEDDAELIANB/oABSwRAQf8BIQMMAQtBgP8AQYH/ACAIUCIFGyIGIANrIgJB8ABKBEBBACECQQAhAwwBCyAEQRBqIAAgByAHQoCAgICAgMAAhCAFGyIHQYABIAJrELYBIAQgACAHIAIQrAMgBCkDCCIAQhmIpyECAkAgBCkDACADIAZHIAQpAxAgBCkDGIRCAFJxrYQiB1AgAEL///8PgyIAQoCAgAhUIABCgICACFEbRQRAIAJBAWohAgwBCyAHIABCgICACIWEQgBSDQAgAkEBcSACaiECCyACQYCAgARzIAIgAkH///8DSyIDGyECCyAEQSBqJAAgAUIgiKdBgICAgHhxIANBF3RyIAJyvgu/AQIFfwJ+IwBBEGsiAyQAIAG8IgRB////A3EhAgJ/IARBF3YiBUH/AXEiBgRAIAZB/wFHBEAgAq1CGYYhByAFQf8BcUGA/wBqDAILIAKtQhmGIQdB//8BDAELIAJFBEBBAAwBCyADIAKtQgAgAmciAkHRAGoQtgEgAykDCEKAgICAgIDAAIUhByADKQMAIQhBif8AIAJrCyECIAAgCDcDACAAIAKtQjCGIARBH3atQj+GhCAHhDcDCCADQRBqJAALqwsBBn8gACABaiEFAkACQCAAKAIEIgJBAXENACACQQJxRQ0BIAAoAgAiAiABaiEBAkACQAJAIAAgAmsiAEHEpAsoAgBHBEAgACgCDCEDIAJB/wFNBEAgAyAAKAIIIgRHDQJBsKQLQbCkCygCAEF+IAJBA3Z3cTYCAAwFCyAAKAIYIQYgACADRwRAIAAoAggiAiADNgIMIAMgAjYCCAwECyAAKAIUIgQEfyAAQRRqBSAAKAIQIgRFDQMgAEEQagshAgNAIAIhByAEIgNBFGohAiADKAIUIgQNACADQRBqIQIgAygCECIEDQALIAdBADYCAAwDCyAFKAIEIgJBA3FBA0cNA0G4pAsgATYCACAFIAJBfnE2AgQgACABQQFyNgIEIAUgATYCAA8LIAQgAzYCDCADIAQ2AggMAgtBACEDCyAGRQ0AAkAgACgCHCICQQJ0QeCmC2oiBCgCACAARgRAIAQgAzYCACADDQFBtKQLQbSkCygCAEF+IAJ3cTYCAAwCCwJAIAAgBigCEEYEQCAGIAM2AhAMAQsgBiADNgIUCyADRQ0BCyADIAY2AhggACgCECICBEAgAyACNgIQIAIgAzYCGAsgACgCFCICRQ0AIAMgAjYCFCACIAM2AhgLAkACQAJAAkAgBSgCBCICQQJxRQRAQcikCygCACAFRgRAQcikCyAANgIAQbykC0G8pAsoAgAgAWoiATYCACAAIAFBAXI2AgQgAEHEpAsoAgBHDQZBuKQLQQA2AgBBxKQLQQA2AgAPC0HEpAsoAgAgBUYEQEHEpAsgADYCAEG4pAtBuKQLKAIAIAFqIgE2AgAgACABQQFyNgIEIAAgAWogATYCAA8LIAJBeHEgAWohASAFKAIMIQMgAkH/AU0EQCAFKAIIIgQgA0YEQEGwpAtBsKQLKAIAQX4gAkEDdndxNgIADAULIAQgAzYCDCADIAQ2AggMBAsgBSgCGCEGIAMgBUcEQCAFKAIIIgIgAzYCDCADIAI2AggMAwsgBSgCFCIEBH8gBUEUagUgBSgCECIERQ0CIAVBEGoLIQIDQCACIQcgBCIDQRRqIQIgAygCFCIEDQAgA0EQaiECIAMoAhAiBA0ACyAHQQA2AgAMAgsgBSACQX5xNgIEIAAgAUEBcjYCBCAAIAFqIAE2AgAMAwtBACEDCyAGRQ0AAkAgBSgCHCICQQJ0QeCmC2oiBCgCACAFRgRAIAQgAzYCACADDQFBtKQLQbSkCygCAEF+IAJ3cTYCAAwCCwJAIAUgBigCEEYEQCAGIAM2AhAMAQsgBiADNgIUCyADRQ0BCyADIAY2AhggBSgCECICBEAgAyACNgIQIAIgAzYCGAsgBSgCFCICRQ0AIAMgAjYCFCACIAM2AhgLIAAgAUEBcjYCBCAAIAFqIAE2AgAgAEHEpAsoAgBHDQBBuKQLIAE2AgAPCyABQf8BTQRAIAFBeHFB2KQLaiECAn9BsKQLKAIAIgNBASABQQN2dCIBcUUEQEGwpAsgASADcjYCACACDAELIAIoAggLIQEgAiAANgIIIAEgADYCDCAAIAI2AgwgACABNgIIDwtBHyEDIAFB////B00EQCABQSYgAUEIdmciAmt2QQFxIAJBAXRrQT5qIQMLIAAgAzYCHCAAQgA3AhAgA0ECdEHgpgtqIQICQAJAQbSkCygCACIEQQEgA3QiB3FFBEBBtKQLIAQgB3I2AgAgAiAANgIAIAAgAjYCGAwBCyABQRkgA0EBdmtBACADQR9HG3QhAyACKAIAIQIDQCACIgQoAgRBeHEgAUYNAiADQR12IQIgA0EBdCEDIAQgAkEEcWoiBygCECICDQALIAcgADYCECAAIAQ2AhgLIAAgADYCDCAAIAA2AggPCyAEKAIIIgEgADYCDCAEIAA2AgggAEEANgIYIAAgBDYCDCAAIAE2AggLC28BBH8gABAvIQUCQCAAKAIAIgIgASgCAHNBA3ENAANAIAUgAkEDcSADEPADIgNFDQEgASADKAIIENUHIgJFDQECQCAAIAMQQSIEEHYEQCABIAIgBBCyBAwBCyABIAIgBBByCyAAKAIAIQIMAAsACwu+AgEEfyADQaykCyADGyIFKAIAIQMCQAJ/AkAgAUUEQCADDQFBAA8LQX4gAkUNARoCQCADBEAgAiEEDAELIAEtAAAiA8AiBEEATgRAIAAEQCAAIAM2AgALIARBAEcPC0GkkgsoAgAoAgBFBEBBASAARQ0DGiAAIARB/78DcTYCAEEBDwsgA0HCAWsiA0EySw0BIANBAnRB0JUJaigCACEDIAJBAWsiBEUNAyABQQFqIQELIAEtAAAiBkEDdiIHQRBrIANBGnUgB2pyQQdLDQADQCAEQQFrIQQgBkH/AXFBgAFrIANBBnRyIgNBAE4EQCAFQQA2AgAgAARAIAAgAzYCAAsgAiAEaw8LIARFDQMgAUEBaiIBLAAAIgZBQEgNAAsLIAVBADYCAEHgjwtBGTYCAEF/Cw8LIAUgAzYCAEF+C50EAgd/BH4jAEEQayIIJAACQAJAAkAgAkEkTARAIAAtAAAiBQ0BIAAhBAwCC0HgjwtBHDYCAEIAIQMMAgsgACEEAkADQCAFwBDNAkUNASAELQABIQUgBEEBaiEEIAUNAAsMAQsCQCAFQf8BcSIGQStrDgMAAQABC0F/QQAgBkEtRhshByAEQQFqIQQLAn8CQCACQRByQRBHDQAgBC0AAEEwRw0AQQEhCSAELQABQd8BcUHYAEYEQCAEQQJqIQRBEAwCCyAEQQFqIQQgAkEIIAIbDAELIAJBCiACGwsiCq0hDEEAIQIDQAJAAkAgBC0AACIGQTBrIgVB/wFxQQpJDQAgBkHhAGtB/wFxQRlNBEAgBkHXAGshBQwBCyAGQcEAa0H/AXFBGUsNASAGQTdrIQULIAogBUH/AXFMDQAgCCAMQgAgC0IAEKABQQEhBgJAIAgpAwhCAFINACALIAx+Ig0gBa1C/wGDIg5Cf4VWDQAgDSAOfCELQQEhCSACIQYLIARBAWohBCAGIQIMAQsLIAEEQCABIAQgACAJGzYCAAsCQAJAIAIEQEHgjwtBxAA2AgAgB0EAIANCAYMiDFAbIQcgAyELDAELIAMgC1YNASADQgGDIQwLIAynIAdyRQRAQeCPC0HEADYCACADQgF9IQMMAgsgAyALWg0AQeCPC0HEADYCAAwBCyALIAesIgOFIAN9IQMLIAhBEGokACADC2sBAX8CQCAARQRAQaikCygCACIARQ0BCyAAIAEQswQgAGoiAi0AAEUEQEGopAtBADYCAEEADwsgAiABEPsCIAJqIgAtAAAEQEGopAsgAEEBajYCACAAQQA6AAAgAg8LQaikC0EANgIACyACC9IKAQ1/IAEsAAAiAkUEQCAADwsCQCAAIAIQzwEiAEUNACABLQABRQRAIAAPCyAALQABRQ0AIAEtAAJFBEAgAC0AASICQQBHIQQCQCACRQ0AIAAtAABBCHQgAnIiAiABLQABIAEtAABBCHRyIgVGDQAgAEEBaiEBA0AgASIALQABIgNBAEchBCADRQ0BIABBAWohASACQQh0QYD+A3EgA3IiAiAFRw0ACwsgAEEAIAQbDwsgAC0AAkUNACABLQADRQRAIABBAmohAiAALQACIgRBAEchAwJAAkAgBEUNACAALQABQRB0IAAtAABBGHRyIARBCHRyIgQgAS0AAUEQdCABLQAAQRh0ciABLQACQQh0ciIFRg0AA0AgAkEBaiEAIAItAAEiAUEARyEDIAFFDQIgACECIAEgBHJBCHQiBCAFRw0ACwwBCyACIQALIABBAmtBACADGw8LIAAtAANFDQAgAS0ABEUEQCAAQQNqIQIgAC0AAyIEQQBHIQMCQAJAIARFDQAgAC0AAUEQdCAALQAAQRh0ciAALQACQQh0ciAEciIEIAEoAAAiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnIiBUYNAANAIAJBAWohACACLQABIgFBAEchAyABRQ0CIAAhAiAEQQh0IAFyIgQgBUcNAAsMAQsgAiEACyAAQQNrQQAgAxsPCyAAIQRBACECIwBBoAhrIggkACAIQZgIakIANwMAIAhBkAhqQgA3AwAgCEIANwOICCAIQgA3A4AIAkACQAJAAkAgASIFLQAAIgFFBEBBfyEJQQEhAAwBCwNAIAQgBmotAABFDQQgCCABQf8BcUECdGogBkEBaiIGNgIAIAhBgAhqIAFBA3ZBHHFqIgAgACgCAEEBIAF0cjYCACAFIAZqLQAAIgENAAtBASEAQX8hCSAGQQFLDQELQX8hA0EBIQcMAQtBASEKQQEhAQNAAn8gBSAJaiABai0AACIDIAAgBWotAAAiB0YEQCABIApGBEAgAiAKaiECQQEMAgsgAUEBagwBCyADIAdLBEAgACAJayEKIAAhAkEBDAELIAIiCUEBaiECQQEhCkEBCyIBIAJqIgAgBkkNAAtBfyEDQQAhAEEBIQJBASEHQQEhAQNAAn8gAyAFaiABai0AACILIAIgBWotAAAiDEYEQCABIAdGBEAgACAHaiEAQQEMAgsgAUEBagwBCyALIAxJBEAgAiADayEHIAIhAEEBDAELIAAiA0EBaiEAQQEhB0EBCyIBIABqIgIgBkkNAAsgCiEACwJ/IAUgBSAHIAAgA0EBaiAJQQFqSyIAGyIKaiADIAkgABsiC0EBaiIHENgBBEAgCyAGIAtBf3NqIgAgACALSRtBAWohCkEADAELIAYgCmsLIQ0gBkEBayEOIAZBP3IhDEEAIQMgBCEAA0ACQCAEIABrIAZPDQBBACECIARBACAMEP0CIgEgBCAMaiABGyEEIAFFDQAgASAAayAGSQ0CCwJ/An8gBiAIQYAIaiAAIA5qLQAAIgFBA3ZBHHFqKAIAIAF2QQFxRQ0AGiAIIAFBAnRqKAIAIgEgBkcEQCAGIAFrIgEgAyABIANLGwwBCwJAIAUgByIBIAMgASADSxsiAmotAAAiCQRAA0AgACACai0AACAJQf8BcUcNAiAFIAJBAWoiAmotAAAiCQ0ACwsDQCABIANNBEAgACECDAYLIAUgAUEBayIBai0AACAAIAFqLQAARg0ACyAKIQEgDQwCCyACIAtrCyEBQQALIQMgACABaiEADAALAAsgCEGgCGokACACIQQLIAQL6gEBA38CQAJAAkAgAUH/AXEiAiIDBEAgAEEDcQRAA0AgAC0AACIERSACIARGcg0FIABBAWoiAEEDcQ0ACwtBgIKECCAAKAIAIgJrIAJyQYCBgoR4cUGAgYKEeEcNASADQYGChAhsIQQDQEGAgoQIIAIgBHMiA2sgA3JBgIGChHhxQYCBgoR4Rw0CIAAoAgQhAiAAQQRqIgMhACACQYCChAggAmtyQYCBgoR4cUGAgYKEeEYNAAsMAgsgABA8IABqDwsgACEDCwNAIAMiAC0AACICRQ0BIABBAWohAyACIAFB/wFxRw0ACwsgAAsPAEHIkgsgAEEBa603AwALSAECfwJ/IAFBH00EQCAAKAIAIQIgAEEEagwBCyABQSBrIQEgAAsoAgAhAyAAIAIgAXQ2AgAgACADIAF0IAJBICABa3ZyNgIEC8gCAQZ/IwBB8AFrIggkACAIIAMoAgAiBzYC6AEgAygCBCEDIAggADYCACAIIAM2AuwBQQAgAWshDCAFRSEJAkACQAJAAkAgB0EBRwRAIAAhB0EBIQUMAQsgACEHQQEhBSADDQAMAQsDQCAHIAYgBEECdGoiCigCAGsiAyAAIAIQrwNBAEwNASAJQX9zIQtBASEJAkAgCyAEQQJIckEBcUUEQCAKQQhrKAIAIQogByAMaiILIAMgAhCvA0EATg0BIAsgCmsgAyACEK8DQQBODQELIAggBUECdGogAzYCACAIQegBaiIHIAcQlgwiBxDFBSAFQQFqIQUgBCAHaiEEIAMhByAIKALoAUEBRw0BIAgoAuwBDQEMAwsLIAchAwwBCyAHIQMgCUUNAQsgASAIIAUQlQwgAyABIAIgBCAGEL4HCyAIQfABaiQAC0sBAn8gACgCBCECIAACfyABQR9NBEAgACgCACEDIAIMAQsgAUEgayEBIAIhA0EACyICIAF2NgIEIAAgAkEgIAFrdCADIAF2cjYCAAubAQEBfwJAIAJBA08EQEHgjwtBHDYCAAwBCwJAIAJBAUcNACAAKAIIIgNFDQAgASADIAAoAgRrrH0hAQsgACgCFCAAKAIcRwRAIABBAEEAIAAoAiQRBAAaIAAoAhRFDQELIABBADYCHCAAQgA3AxAgACABIAIgACgCKBEeAEIAUw0AIABCADcCBCAAIAAoAgBBb3E2AgBBAA8LQX8LrwEBA38gAygCTBogASACbCEFIAMgAygCSCIEQQFrIARyNgJIIAMoAgQiBiADKAIIIgRGBH8gBQUgACAGIAQgBmsiBCAFIAQgBUkbIgQQHxogAyADKAIEIARqNgIEIAAgBGohACAFIARrCyIEBEADQAJAIAMQywVFBEAgAyAAIAQgAygCIBEEACIGDQELIAUgBGsgAW4PCyAAIAZqIQAgBCAGayIEDQALCyACQQAgARsLIQAgABAvEDcgACgCAEEDcRCwAyIARQRAQQAPCyAAEJ0BCy8AIAAgACABlyABvEH/////B3FBgICA/AdLGyABIAC8Qf////8HcUGAgID8B00bC0EBAn8jAEEQayIBJABBfyECAkAgABDLBQ0AIAAgAUEPakEBIAAoAiARBABBAUcNACABLQAPIQILIAFBEGokACACC3wBAn8gACAAKAJIIgFBAWsgAXI2AkggACgCFCAAKAIcRwRAIABBAEEAIAAoAiQRBAAaCyAAQQA2AhwgAEIANwMQIAAoAgAiAUEEcQRAIAAgAUEgcjYCAEF/DwsgACAAKAIsIAAoAjBqIgI2AgggACACNgIEIAFBG3RBH3UL+gMDA3wCfwF+IAC9IgZCIIinQf////8HcSIEQYCAwKAETwRAIABEGC1EVPsh+T8gAKYgAL1C////////////AINCgICAgICAgPj/AFYbDwsCQAJ/IARB///v/gNNBEBBfyAEQYCAgPIDTw0BGgwCCyAAmSEAIARB///L/wNNBEAgBEH//5f/A00EQCAAIACgRAAAAAAAAPC/oCAARAAAAAAAAABAoKMhAEEADAILIABEAAAAAAAA8L+gIABEAAAAAAAA8D+goyEAQQEMAQsgBEH//42ABE0EQCAARAAAAAAAAPi/oCAARAAAAAAAAPg/okQAAAAAAADwP6CjIQBBAgwBC0QAAAAAAADwvyAAoyEAQQMLIAAgAKIiAiACoiIBIAEgASABIAFEL2xqLES0or+iRJr93lIt3q2/oKJEbZp0r/Kws7+gokRxFiP+xnG8v6CiRMTrmJmZmcm/oKIhAyACIAEgASABIAEgAUQR2iLjOq2QP6JE6w12JEt7qT+gokRRPdCgZg2xP6CiRG4gTMXNRbc/oKJE/4MAkiRJwj+gokQNVVVVVVXVP6CiIQEgBEH//+/+A00EQCAAIAAgAyABoKKhDwtBA3QiBEHQ0ghqKwMAIAAgAyABoKIgBEHw0ghqKwMAoSAAoaEiAJogACAGQgBTGyEACyAAC38BAn8jAEEQayIEJAACQCAADQBBxOQKKAIAIgANACAEQZD3CSgCADYCDEHE5ApBACAEQQxqQQAQ5AEiADYCAAsCfwJAIANFDQAgACADEM8DIgUgA0cNACAFEHZFDQAgACABIAIgAxDxAwwBCyAAIAEgAiADECELGiAEQRBqJAALGgEBfxD0AyEAQYfkCi0AAEH84wooAgAgABsL0gcCDn8EfCMAQTBrIgQkACABKAIYIQ8gASgCFCEMIAEoAgAhBiABKAIAIgdBACAHQQBKGyEJIAEoAhghDSABKAIUIQgDQCADIAlHBEAgCCADQQJ0aigCACIFIAggA0EBaiIBQQJ0aigCACIKIAUgCkobIQoDQCAFIApGBEAgASEDDAMLIAVBAnQhCyAFQQFqIQUgAyALIA1qKAIARw0ACwsLAkACQCADIAdOBEAgBEEANgIoIAQgBjYCLCAGQSFPBEAgBCAGQQN2IAZBB3FBAEdqQQEQGTYCKAsgBkEAIAZBAEobIQ0DQCAQIgEgDUYNAiAMIAFBAWoiEEECdGooAgAgDCABQQJ0aiIDKAIAa0EBRw0AIAQgBCkCKDcDECAEQRBqIAEQzgINACAPIAMoAgBBAnRqKAIAIQkgBCAEKQIoNwMIIARBCGogCRDOAg0AIARBKGogCRCIBiAMIAlBAnRqIgooAgAhAUQAAAAAAAAAACERQQAhCEEAIQNBACEFQQAhBwNAAkACQAJAIAooAgQgAUoEQCAMIA8gAUECdGoiBigCACILQQJ0aiIOKAIEIA4oAgBrQQFHDQMgBEEoaiALEIgGIAIgACAJIAYoAgAQ2QEhEiAGKAIAIQsgAyAFRw0CIANBAXRBASADGyIGQf////8DSwRAQcQAIQUMCQsgByAGQQJ0EDoiB0UEQEEwIQUMCQsgByADQQJ0akEAIAYgA2tBAnQQMxogAyAIaiADTQ0BIAhBAnQhDiAHIAYgAyAIayIDayIIQQJ0aiAHIA5qIANBAnQQUxoMAQsgBCADNgIkIAQgBTYCICAEIAg2AhwgBCAHNgIYIAUEQEQAAAAAAAAAAERMYHeHLlUYQCAFuCISoyAFQQFGGyETIBEgEqMhEiACIAAgCWxBA3RqIQZBACEBRJqZmZmZmbk/IRFBACEDA0AgAyAFRgRAA0AgASAFRwRAIARBGGogARDSDBogAUEBaiEBDAELCyAHEBgMBwUgERBEIRQgAiAEQRhqIAMQ0gwgAGxBA3RqIgggFCASoiAGKwMAoDkDACAIIBEQWCASoiAGKwMIoDkDCCADQQFqIQMgEyARoCERDAELAAsAC0HsqwNB3sQBQdsBQeMzEAAACyAGIQMLIBEgEqAhESAHIAUgCGogA3BBAnRqIAs2AgAgBUEBaiEFCyABQQFqIQEMAAsACwALQamwA0HexAFByAFB4zMQAAALIAQoAixBIU8EQCAEKAIoEBgLIARBMGokAA8LIAQgBRB4NgIAQbj8CCgCAEHaigQgBBAeGhAoAAusAgIKfwN8IAAoAhghByAAKAIUIQUgAEEBENQCBEAgBSAAKAIAIgRBAnRqKAIAIghFBEBEAAAAAAAA8D8PC0EAIQAgBEEAIARBAEobIQkgAUEAIAFBAEobIQoDQCAAIAlHBEAgBSAAQQJ0aigCACIDIAUgAEEBaiIEQQJ0aigCACIGIAMgBkobIQYgAiAAIAFsQQN0aiELA0AgAyAGRgRAIAQhAAwDBSAHIANBAnRqIQxBACEARAAAAAAAAAAAIQ4DQCAAIApGRQRAIAsgAEEDdGorAwAgAiAMKAIAIAFsQQN0aisDAKEiDyAPoiAOoCEOIABBAWohAAwBCwsgA0EBaiEDIA0gDp+gIQ0MAQsACwALCyANIAi3ow8LQcGuA0HexAFBmQFBqf4AEAAAC5gBAQN/IAAEQCAAKAIQIQIgACgCFBAYIAAoAiAQGCAAKAIwEBggACgCJARAQQEgAnQiAkEAIAJBAEobIQIDQCAAKAIkIQMgASACRkUEQCADIAFBAnRqKAIAENEFIAFBAWohAQwBCwsgAxAYCyAAKAIoIQEDQCABBEAgASgCFCECIAEQ4QggACACNgIoIAIhAQwBCwsgABAYCwseAQF/IAAoAjAiAkUEQCAAIAFBCBAZIgI2AjALIAILSgICfwJ8IAJBACACQQBKGyECA0AgAiADRkUEQCAAIANBA3QiBGorAwAgASAEaisDAKEiBiAGoiAFoCEFIANBAWohAwwBCwsgBZ8LHwEBfwJAIAEQ8AEiAgRAIAIoAggNAQsgACABEKMMCwvvAQEEfyMAQRBrIgckACABKAIQKAKIASIEIAMoAgQiBkkEQCADIQUgBkEhTwR/IAMoAgAFIAULIARBA3ZqIgUgBS0AAEEBIARBB3F0cjoAACACIAFBARCGARogACABEG8hBANAIAQEQCABIARBMEEAIAQoAgBBA3EiBkEDRxtqKAIoIgVGBEAgBEFQQQAgBkECRxtqKAIoIQULIAUoAhAoAogBIQYgByADKQIANwMIIAdBCGogBhDOAkUEQCAAIAUgAiADENUFCyAAIAQgARBzIQQMAQsLIAdBEGokAA8LQfC6A0HbgQFB0QBBpiIQAAALrgMCA38IfCABEBshBQNAIAUEQAJAIAMgBUYgAiAFRnINACAFKAIQIgYoAugBIAFHDQAgBi0AhgENACAAIAUgBEEAEIgNEFULIAEgBRAcIQUMAQVBASEGA0AgASgCECIFKAK0ASAGTgRAIAUoArgBIAZBAnRqKAIAIgUgAkYgAyAFRnJFBEBBAUEIENUCIQcgBSgCECIFKwMoIQsgBSsDICEIIAUrAxghCSAFKwMQIQogB0EENgIEIAdBBEEQENUCIgU2AgACfCAELQAQQQFGBEAgCSAEKwMIIgyhIQkgCiAEKwMAIg2hIQogCCANoCEIIAsgDKAMAQsgBCsDCCIMIAmiIAkgC6BEAAAAAAAA4L+iIAxEAAAAAAAA8L+goiIOoCEJIAQrAwAiDSAKoiAKIAigRAAAAAAAAOC/oiANRAAAAAAAAPC/oKIiD6AhCiANIAiiIA+gIQggDCALoiAOoAshCyAFIAk5AzggBSAIOQMwIAUgCzkDKCAFIAg5AyAgBSALOQMYIAUgCjkDECAFIAk5AwggBSAKOQMAIAAgBxBVCyAGQQFqIQYMAQsLCwsLnAEBCH8gAUEAIAFBAEobIQkgAUEBaiABbEECbUEEEBkhByABQQQQGSEEIAEhBQNAIAMgCUZFBEAgAyAAIAEgBBD2AyACIAVqIQggAyEGA0AgAiAIRkUEQCAHIAJBAnRqIAQgBkECdGooAgCyOAIAIAZBAWohBiACQQFqIQIMAQsLIAVBAWshBSADQQFqIQMgCCECDAELCyAEEBggBwspAQF/IAAoAhAvAYgBQQ5xIQIgAQRAIAAQ7QcaCyACBEAgACACENkFCwsNACAAQdkDIAEQhA0aC7sCAgN/AXwjAEEgayIEJAADfyAALQAAIgZBCWtBBUkgBkEgRnIEfyAAQQFqIQAMAQUgBkErRgRAQQEhBSAAQQFqIQALIAEgBToAECAEIARBGGo2AgAgBCAEQRBqNgIEAkACQAJAIABBoowBIAQQTyIADgICAAELIAQgBCsDGDkDEAsgAQJ8IAEtABBBAUYEQCACRAAAAAAAAPA/ZARAIAEgAyAEKwMYIAKjECo5AwAgAyAEKwMQIAKjECoMAgsgBCsDGCEHIAJEAAAAAAAA8D9jBEAgASADIAcgAqMQIjkDACADIAQrAxAgAqMQIgwCCyABIAc5AwAgBCsDEAwBCyABIAQrAxggAqNEAAAAAAAA8D+gOQMAIAQrAxAgAqNEAAAAAAAA8D+gCzkDCEEBIQALIARBIGokACAACwsLJgECfyAAKAJIIgEgACgCBEkEfyAAIAFBBGo2AkggASgCAAVBAAsL9AECBX8IfAJAIAAoAggiAkUNACABKAIIIgNFDQAgAigCJCIEIAMoAiQiBUYNACACKwMAIgogAysDCCIHoiACKwMIIgggAysDACILoqEiCZlEu73X2d982z1jDQAgAisDECIMIAeiIAMrAxAiDSAIoqEgCaMhBwJAIAQrAwgiCCAFKwMIIg5jDQAgCCAOYQRAIAQrAwAgBSsDAGMNAQsgBSEEIAEhAAsgAC0ADCEAAkAgBCsDACAHZQRAIAANAQwCCyAAQQFGDQELQdyFCxCnDSIGIA0gCqIgDCALmqKgIAmjOQMIIAYgBzkDACAGQQA2AhQLIAYLhgECAn8BfCABIAI2AhAgAhDeBSABIAMgAisDCKA5AxggACgCACAAIAEQoA1BKGxqIQQDQAJAIAQiBSgCICIERQ0AIAErAxgiBiAEKwMYIgNkDQEgAyAGZA0AIAIrAwAgBCgCECsDAGQNAQsLIAEgBDYCICAFIAE2AiAgACAAKAIIQQFqNgIICw8AIAAgACgCFEEBajYCFAsiAQF/IAAgACgCFEEBayIBNgIUIAFFBEAgAEHchQsQpg0LCxoAIAArAwAgASsDAKEgACsDCCABKwMIoRBQC7UBAgN/AnwCQCAAQYksECYiBARAIAQQkQIiBEECSg0BC0EUIQQLIAQQtwIhBSADIAAoAhAiACsDKEQAAAAAAADgP6KgIQMgAiAAKwMgRAAAAAAAAOA/oqAhAiAEuCEIQQAhAAN/IAAgBEYEfyABIAQ2AgAgBQUgBSAAQQR0aiIGIAC4IAijRBgtRFT7IQlAoiIHIAegIgcQWCADojkDCCAGIAcQRCACojkDACAAQQFqIQAMAQsLCyIAIAAgASsDACACKwMAoDkDACAAIAErAwggAisDCKA5AwgLphECEX8IfCMAQRBrIg0kACAAKAIIIAAoAgRqIgdBIBAZIRAgByAFKAIwIglBAXRBACAJQQBKG2siFUEAIBVBAEobIQ4gASABQ0cDgD+UIAMbuyEXA0AgBiAORwRAIBAgBkEFdGoiCCAFKwMYRAAAAAAAAOA/oiIYIAUoAiggBkEEdGoiESsDACAXokQAAAAAAADgP6IiGSAGQQJ0IhIgAigCAGoqAgC7IhqgoDkDECAIIBogGaEgGKE5AwAgCCAFKwMgRAAAAAAAAOA/oiIYIBErAwggF6JEAAAAAAAA4D+iIhkgAigCBCASaioCALsiGqCgOQMYIAggGiAZoSAYoTkDCCAGQQFqIQYMAQsLAkAgCUEASgRAIAlBAWpBBBAZIRFBACESIAUoAjBBAWpBBBAZIQ5BACECA0AgBSgCMCIGIAJKBEBBACEGIAJBAnQiCiAFKAI0aigCACIIQQAgCEEAShshE0T////////vfyEXRP///////+//IRggCEECaiIMQQQQGSEHIAxBIBAZIQlE////////7/8hGUT////////vfyEaA0AgBiATRwRAIAcgBkECdCILaiAAKAIQIAUoAjggCmooAgAgC2ooAgAiD0ECdGooAgA2AgAgCSAGQQV0aiILIBAgD0EFdGoiDysDACIbOQMAIAsgDysDCCIcOQMIIAsgDysDECIdOQMQIAsgDysDGCIeOQMYIAZBAWohBiAaIBsQKiEaIBcgHBAqIRcgGSAdECIhGSAYIB4QIiEYDAELCyAFKAJEIAJBBXRqIgYgGDkDGCAGIBk5AxAgBiAXOQMIIAYgGjkDACAHIAhBAnRqIAAoAhAgFUECdGogAkEDdGoiBigCADYCACAHIAhBAWoiC0ECdGogBigCBDYCACAJIAhBBXRqIgYgGDkDGCAGIBk5AxAgBiAXOQMIIAYgGjkDACAJIAtBBXRqIgggGDkDGCAIIBk5AxAgCCAXOQMIIAggGjkDACAKIBFqIQsgCiAOagJ/IANFBEAgBiAaRC1DHOviNho/oDkDECAIIBlELUMc6+I2Gr+gOQMAIAwgCSAHIAsgBBCHCAwBCyAGIBdELUMc6+I2Gj+gOQMYIAggGEQtQxzr4jYav6A5AwggDCAJIAcgCxCGCAsiBjYCACAHEBggCRAYIAJBAWohAiAGIBJqIRIMAQsLIAUoAjwgBmoiB0EEEBkhCSAHQSAQGSEIQQAhAiAFKAI8IgZBACAGQQBKGyELA0AgAiALRgRAIAYgByAGIAdKGyEMA0AgBiAMRwRAIAkgBkECdGogBkH7AGpEAAAAAAAA8D8QiAg2AgAgCCAGQQV0aiICIAUoAkQgBiAFKAI8a0EFdGoiCisDADkDACACIAorAwg5AwggAiAKKwMQOQMQIAIgCisDGDkDGCAGQQFqIQYMAQsLIBEgBSgCMCIGQQJ0aiECIA4gBkECdGoCfyADRQRAIAcgCCAJIAIgBBCHCAwBCyAHIAggCSACEIYICzYCACAFKAI8IgYgByAGIAdKGyEPA0AgBiAPRwRAIAggBkEFdGohAiAJIAZBAnRqIgwoAgAhBCAGIAUoAjxrQQF0IBVqQQJ0IhMgACgCEGooAgAhCwJ8IANFBEAgAisDECACKwMAoQwBCyACKwMYIAIrAwihC0QAAAAAAADgv6IhFyMAQRBrIgckACALQShqIRQgBCgCLCEWIAQoAighAgNAIAIgFkYEQCAEIAQoAig2AiwgB0EQaiQABSAHIAIoAgAiCjYCDCAKIAs2AgQgCiAXIAorAwigOQMIIBQgB0EMahDBASACQQRqIQIMAQsLIAwoAgAhAiAAKAIQIBNqKAIEIQojAEEQayIEJAAgCkE0aiELIAIoAjghEyACKAI0IQcDQCAHIBNGBEAgAiACKAI0NgI4IARBEGokAAUgBCAHKAIAIhQ2AgwgFCAKNgIAIAQoAgwiFCAXIBQrAwigOQMIIAsgBEEMahDBASAHQQRqIQcMAQsLIAwoAgAQzg0gBkEBaiEGDAELCyAOIAUoAjBBAnRqKAIAIQIgCRAYIAgQGCANIAIgEmoiAxDGBCICNgIMQQAhBANAIAUoAjAgBE4EQEEAIQYgDiAEQQJ0IgdqKAIAIglBACAJQQBKGyEJIAcgEWohCANAIAgoAgAhByAGIAlHBEAgAiAHIAZBAnRqKAIANgIAIAZBAWohBiACQQRqIQIMAQsLQQAgBxD4AyAEQQFqIQQMAQsLIBEQGCAOEBgMAwUgCSACQQJ0IgpqIAAoAhAgBSgCQCAKaigCACIMQQJ0aigCADYCACAIIAJBBXRqIgogECAMQQV0aiIMKwMAOQMAIAogDCsDCDkDCCAKIAwrAxA5AxAgCiAMKwMYOQMYIAJBAWohAgwBCwALAAsgACgCECECIANFBEAgByAQIAIgDUEMaiAEEIcIIQMMAQsgByAQIAIgDUEMahCGCCEDCwJAIAAoAhRBAEwNACAAKAIkEMwNIAAoAhghBgNAIAAoAhwhAiAAKAIUIAZKBEAgAiAGQQJ0aigCACICBEAgAhD4DQsgAhAYIAZBAWohBgwBCwsgAiAAKAIgRg0AQQAgAhD4AwsCQCAAKAIYIgJFBEAgACADNgIUIAAgDSgCDDYCHAwBCyAAIAIgA2oiAjYCFCAAIAIQxgQ2AhxBACEGIAAoAhQiAkEAIAJBAEobIQIDQCACIAZHBEAgBkECdCIDIAAoAhxqAn8gACgCGCIEIAZKBEAgAyAAKAIgagwBCyANKAIMIAYgBGtBAnRqCygCADYCACAGQQFqIQYMAQsLQQAgDSgCDBD4AyAAKAIUIQMLQYzhCi0AAARAIA0gAzYCAEG4/AgoAgBB8e0DIA0QHhogACgCFCEDCyAAIAAoAgwgACgCCCAAKAIEamogACgCECADIAAoAhwQ0A02AiQgEBAYIA1BEGokAAs4AQF/IABBACAAQQBKGyEAA0AgACACRwRAIAEgAkEDdGpEAAAAAAAAAAA5AwAgAkEBaiECDAELCwtFAQN/IABBACAAQQBKGyEAA0AgACAERkUEQCABIARBAnQiBWoiBiACIAMgBWoqAgCUIAYqAgCSOAIAIARBAWohBAwBCwsLQwECfyAAQQAgAEEAShshBQNAIAQgBUZFBEAgAyAEQQN0IgBqIAAgAWorAwAgACACaisDAKA5AwAgBEEBaiEEDAELCwtDAQJ/IABBACAAQQBKGyEFA0AgBCAFRkUEQCADIARBA3QiAGogACABaisDACAAIAJqKwMAoTkDACAEQQFqIQQMAQsLCxAAIAAoAiArAxAgACsDGKALzQICBH8BfCMAQSBrIgUkAAJAIAAoAgQiBCAAKAIISQRAIAMrAwAhCCAEIAEoAgA2AgAgBCACKAIANgIEIAQgAigCBCIBNgIIIAEEQCABIAEoAgRBAWo2AgQLIAQgCDkDECAEQRhqIQIMAQsgBCAAKAIAa0EYbUEBaiIEQavVqtUATwRAEMoEAAsgBUEMakGq1arVACAAKAIIIAAoAgBrQRhtIgZBAXQiByAEIAQgB0kbIAZB1arVKk8bIAAoAgQgACgCAGtBGG0gAEEIahDcDSEEIAMrAwAhCCAEKAIIIgMgASgCADYCACADIAIoAgA2AgQgAyACKAIEIgI2AgggAyEBIAIEQCACIAIoAgRBAWo2AgQgBCgCCCEBCyADIAg5AxAgBCABQRhqNgIIIAAgBBDbDSAAKAIEIQIgBBDaDQsgACACNgIEIAVBIGokAAtKAQF/IAAgARCzAyIBIABBBGpHBEAgARCxASECIAEgACgCAEYEQCAAIAI2AgALIAAgACgCCEEBazYCCCAAKAIEIAEQ5A0gARAYCwt6AQZ8IAErAwAiAiABKwMIIgQgAqFEAAAAAAAA4D+ioCEFIAArAwAiAyAAKwMIIgYgA6FEAAAAAAAA4D+ioCEHIAIgBmNFIAUgB2ZFckUEQCAGIAKhDwsgBCADoUQAAAAAAAAAACAFIAdlG0QAAAAAAAAAACADIARjGwu6AgECfyADIAE2AgggA0IANwIAIAIgAzYCACAAKAIAKAIAIgEEQCAAIAE2AgAgAigCACEDCyADIAMgACgCBCIFRjoADAJAA0AgAyAFRg0BIAMoAggiAi0ADA0BIAIoAggiASgCACIEIAJGBEACQCABKAIEIgRFDQAgBC0ADA0AIAJBAToADCABIAEgBUY6AAwgBEEBOgAMIAEhAwwCCyACKAIAIANHBEAgAhDJBCACKAIIIgIoAgghAQsgAkEBOgAMIAFBADoADCABEMgEDAILAkAgBEUNACAELQAMDQAgAkEBOgAMIAEgASAFRjoADCAEQQE6AAwgASEDDAELCyACKAIAIANGBEAgAhDIBCACKAIIIgIoAgghAQsgAkEBOgAMIAFBADoADCABEMkECyAAIAAoAghBAWo2AggLdAEEfyAAQQRqIQMgACgCACEBA0AgASADRwRAIAEoAhAiBC0AKEEBRgRAIAEiAhCxASEBIAIgACgCAEYEQCAAIAE2AgALIAAgACgCCEEBazYCCCAAKAIEIAIQ5A0gAhAYIAQQ6w0QGAUgARCxASEBCwwBCwsLPgEBfyABQYCAgIAETwRAEMoEAAtB/////wMgACgCCCAAKAIAayIAQQF1IgIgASABIAJJGyAAQfz///8HTxsLuQEBBH8gASACEPUNIAIoAiwhBiACKAIoIQQDQCAEIAZGBEACQCACKAI4IQYgAigCNCEEA0AgBCAGRg0BAkAgBCgCACIHKAIEIgUoAiAgAEcgAyAFRnINACAHLQAcQQFxRQ0AIAAgASAFIAIQ7wULIARBBGohBAwACwALBQJAIAQoAgAiBygCACIFKAIgIABHIAMgBUZyDQAgBy0AHEEBcUUNACAAIAEgBSACEO8FCyAEQQRqIQQMAQsLC7wBAQR/IAEoAjghBiABKAI0IQMDQCADIAZGBEACQCABKAIsIQYgASgCKCEDA0AgAyAGRg0BAkAgAygCACIEKAIAIgUoAiAgAEcgAiAFRnINACAELQAcQQFxRQ0AIARCADcDECAAIAUgARDwBQsgA0EEaiEDDAALAAsFAkAgAygCACIEKAIEIgUoAiAgAEcgAiAFRnINACAELQAcQQFxRQ0AIARCADcDECAAIAUgARDwBQsgA0EEaiEDDAELCwurAQIDfwN8IwBBEGsiBCQAIAJBAToAHCABKwMgIQcgACABKwMYIgggACsDGKAiCTkDGCAAIAArAyAgByADIAiioaAiBzkDICAAIAcgCaM5AxAgASgCBCEGIAEoAgAhAgNAIAIgBkYEQCABQQE6ACggBEEQaiQABSAEIAIoAgAiBTYCDCAFIAA2AiAgBSADIAUrAxigOQMYIAAgBEEMahDBASACQQRqIQIMAQsLCw0AIAAtABhBAXZBAXEL6hsCE38GfCMAQfAAayIHJAAgACAAQQBBx5wBQQAQIUF/QQEQZCEJIABBChCLAiMAQSBrIgIkACACQQU2AhQCQCAAQbEnECYiBEUNACACIAJBFGo2AgQgAiACQRhqNgIAIARBt7kBIAIQT0EATA0AQYTuBEEAECsLIAJBIGokACAAIAAQkQ4gABCVDkGM4QotAAAEQEG4/AgoAgAiDBDuASAHENYBNwNoIAdB6ABqEOwBIgooAhQhCyAKKAIQIQYgCigCDCECIAooAgghBCAHIAooAgA2AlggByAENgJUIAcgAjYCUCAHQa8CNgJEIAdBtcEBNgJAIAcgBkEBajYCTCAHIAtB7A5qNgJIIAxBidYDIAdBQGsQHhpBtc0BQRtBASAMEEwaQQogDBCsARogDBDtAQsgABCfDwJAIAlBAUYEQCAAQQEQoQhBACELDAELQYzhCi0AAARAQbj8CCgCACIMEO4BIAcQ1gE3A2ggB0HoAGoQ7AEiCigCFCELIAooAhAhBiAKKAIMIQIgCigCCCEEIAcgCigCADYCOCAHIAQ2AjQgByACNgIwIAdBtQI2AiQgB0G1wQE2AiAgByAGQQFqNgIsIAcgC0HsDmo2AiggDEGJ1gMgB0EgahAeGkHRzAFBH0EBIAwQTBpBCiAMEKwBGiAMEO0BCyAAEJEPIgsNACAJQQJGBEAgAEECEKEIQQAhCwwBC0GM4QotAAAEQEG4/AgoAgAiDBDuASAHENYBNwNoIAdB6ABqEOwBIgooAhQhCyAKKAIQIQYgCigCDCECIAooAgghBCAHIAooAgA2AhggByAENgIUIAcgAjYCECAHQb4CNgIEIAdBtcEBNgIAIAcgBkEBajYCDCAHIAtB7A5qNgIIIAxBidYDIAcQHhpB8cwBQR9BASAMEEwaQQogDBCsARogDBDtAQsgABC9DiAJQQNGBEAgAEECEKEIQQAhCwwBCwJAIAAoAhAtAIgBQRBxRQ0AIABB6/kAQQAQlgEiD0UNACAPEBshCwNAIAsEQCAPIAsQHCAAIAsQjgZBACEGIAAoAhAoAsQBIgwgCygCECgC9AFByABsIgpqIgkoAgAiDUEAIA1BAEobIQICQANAIAIgBkcEQCALIAkoAgQgBkECdGooAgBGBEADQCAKIAxqIQkgBkEBaiICIA1ODQQgCSgCBCIJIAZBAnRqIAkgAkECdGooAgA2AgAgACgCECgCxAEiDCAKaigCACENIAIhBgwACwAFIAZBAWohBgwCCwALC0GS8QBBtcEBQfcBQYX6ABAAAAsgCSANQQFrNgIAIAsQkw4gACALEN4EIQsMAQsLIAAgDxDhDQsgABDwDiAAQQEQ2g4iCw0AQQAhCyAAQdyqARAmEGpFDQAjAEHAAmsiASQAIAAQrgohESAAEBshEANAIBAEQCAAIBAQLSEIA0ACQAJAAkACQAJAIAgEQCAIQem4ARAmIBEQlw4iBSAIQd70ABAmIBEQlw4iDXJFDQUgCCgCECgCCCICRQ0FIAIoAgRBAk8EQCAIQTBBACAIKAIAQQNxQQNHG2ooAigQICEEIAEgCEFQQQAgCCgCAEEDcUECRxtqKAIoECA2AgQgASAENgIAQfPABCABECsMBgsgCCAIQTBqIgYgCCgCAEEDcSIEQQNGGygCKCESIAggCEEwayIPIARBAkYbKAIoIQwgAigCACIDKAIEIQogAUGQAmpBAEEwEDMaIAEgAygCDCIONgKcAiABIAMoAggiAjYCmAICQAJAAkACQCAFRQ0AQbP+AyEJAkAgBSgCECIFKwMQIhUgDCgCECIEKwAQIhRlRQ0AIBQgBSsDICIWZUUNACAFKwMYIhcgBCsAGCIUZUUNACAUIAUrAygiGGVFDQAgBUEQaiETAkACQAJAIBUgAygCACIFKwAAIhRlRSAUIBZlRXINACAXIAUrAAgiFGVFDQAgFCAYZQ0BCyAKQQFrIQRBACEFA0AgBCAFTQ0CIAMoAgAgBUEEdGogExCWDg0CIAVBA2ohBQwACwALAkAgFSASKAIQIgQrABAiFGVFIBQgFmVFcg0AIBcgBCsAGCIUZUUNAEHe/gMhCSAUIBhlDQILAkAgFSADKwAQIhRlRSAUIBZlRXINACAXIAMrABgiFGVFDQAgFCAYZQ0DCyACRQ0FIAEgBSkDCDcDyAEgASAFKQMANwPAASABIAMpAxg3A7gBIAEgAykDEDcDsAEgAUHQAWogAUHAAWogAUGwAWogExD2BSADKAIAIgQgASkD0AE3AzAgBCABKQPYATcDOCADKwAQIRQgASsD0AEhGSADKAIAIgIgAysAGCABKwPYASIXoEQAAAAAAADgP6IiFTkDGCACIBQgGaBEAAAAAAAA4D+iIhY5AxAgAysAECEYIAMrABghFCACIBcgFaBEAAAAAAAA4D+iOQMoIAIgGSAWoEQAAAAAAADgP6I5AyAgAiAVIBSgRAAAAAAAAOA/ojkDCCACIBYgGKBEAAAAAAAA4D+iOQMAIAMoAgwiBEUEQEEDIQQMBAsgCCACQQBBACABQZACaiAEEPsGQQNqIQQMAwsgAygCDCECIAQgBUYEQCACRQ0EIAMoAgAhAiABIAMpAyg3A6gBIAEgAykDIDcDoAEgASACIARBBHRqIgIpAwg3A5gBIAEgAikDADcDkAEgAUHQAWogAUGgAWogAUGQAWogExD2BSABIAEpA9gBNwO4AiABIAEpA9ABNwOwAgwDCyACBH8gCCADKAIAQQAgBSABQZACaiACEPsGBSAFC0EDaiEEDAILIBIQICECIAggDyAIKAIAQQNxQQJGGygCKBAgIQQgASAIQem4ARAmNgKIASABIAQ2AoQBIAEgAjYCgAEgCSABQYABahArIAMoAgwhDgsgCkEBayEEIA5FDQAgASADKQMgNwOwAiABIAMpAyg3A7gCCyANRQ0EQZH9AyEFIA0oAhAiCSsDECIVIBIoAhAiAisAECIUZUUNAyAUIAkrAyAiFmVFDQMgCSsDGCIXIAIrABgiFGVFDQMgFCAJKwMoIhhlRQ0DIAlBEGohDQJAIBUgBCICQQR0IgkgAygCAGoiCisAACIUZUUgFCAWZUVyDQAgFyAKKwAIIhRlRSAUIBhlRXINAAJAIBUgDCgCECICKwAQIhRlRSAUIBZlRXINACAXIAIrABgiFGVFDQBBvP0DIQUgFCAYZQ0FCyADKAIMRQ0FAkAgFSABKwOwAiIUZUUgFCAWZUVyDQAgFyABKwO4AiIUZUUNACAUIBhlDQYLIAEgCikDCDcDeCABIAopAwA3A3AgASABKQO4AjcDaCABIAEpA7ACNwNgIAFB0AFqIAFB8ABqIAFB4ABqIA0Q9gUgAygCACAEQQNrIgJBBHRqIgYgASkD0AE3AwAgBiABKQPYATcDCCABKwOwAiEUIAErA9ABIRkgCSADKAIAIglqIgZBCGsgASsDuAIgASsD2AEiF6BEAAAAAAAA4D+iIhU5AwAgBkEQayAUIBmgRAAAAAAAAOA/oiIWOQMAIAErA7ACIRggASsDuAIhFCAGQRhrIBcgFaBEAAAAAAAA4D+iOQMAIAZBIGsgGSAWoEQAAAAAAADgP6I5AwAgBiAVIBSgRAAAAAAAAOA/ojkDCCAGIBYgGKBEAAAAAAAA4D+iOQMAIAMoAggiBkUNByAIIAkgAiACIAFBkAJqIAYQ+gYhAgwHCwNAIAJFDQZBACEFA0AgBUEERgRAIAFB0AFqIA0Qlg5FBEAgAkEDayECDAMLQQAhBQNAIAVBBEcEQCADKAIAIAIgBWtBBHRqIgkgAUHQAWogBUEEdGoiBikDADcDACAJIAYpAwg3AwggBUEBaiEFDAELCyACQQNrIQIgAygCCCIGRQ0JIAggAygCACACIARBA2sgAUGQAmogBhD6BiECDAkFIAFB0AFqIAVBBHRqIgkgAygCACACIAVrQQR0aiIGKQMANwMAIAkgBikDCDcDCCAFQQFqIQUMAQsACwALAAtBiosBQcDHAUHgAkHSpAEQAAALQf+KAUHAxwFBzgJB0qQBEAAACyAAIBAQHCEQDAcLIAggBiAIKAIAQQNxQQNGGygCKBAgIQYgCCAPIAgoAgBBA3FBAkYbKAIoECAhAiABIAhB3vQAECY2AjggASACNgI0IAEgBjYCMCAFIAFBMGoQKwtBACECIAMoAghFDQEgASADKQMQNwOgAiABIAMpAxg3A6gCDAELQQAhAiADKAIIRQ0AIAMoAgAhBiABIAMpAxg3A1ggASADKQMQNwNQIAEgBikDCDcDSCABIAYpAwA3A0AgAUHQAWogAUHQAGogAUFAayANEPYFIAEgASkD2AE3A6gCIAEgASkD0AE3A6ACCyABIAQgAmtBAWoiDjYClAIgDkGAgICAAUkEQEEAIA4gDkEQEEciBBtFBEAgASAENgKQAkEAIQUDQCAFIA5PBEAgAygCABAYIAgoAhAoAggoAgAgAUGQAmpBMBAfGgwEBSABKAKQAiAFQQR0aiIGIAMoAgAgAkEEdGoiBCkDADcDACAGIAQpAwg3AwggAkEBaiECIAVBAWohBSABKAKUAiEODAELAAsACyABIA5BBHQ2AiBBuPwIKAIAQdPzAyABQSBqEB4aECgACyABQRA2AhQgASAONgIQQbj8CCgCAEGE9AMgAUEQahAeGhAoAAsgACAIEDAhCAwACwALCyAREJsBGiABQcACaiQACyAHQfAAaiQAIAsLtgICAXwEfyMAQZABayIIJAACQCABIAJhBEAgASEGDAELQX8gACsDCCIGIANkIAMgBmQbIglFIQpBASEHA0AgB0EERkUEQCAKIAlBAEcgCUF/IAAgB0EEdGorAwgiBiADZCADIAZkGyIJR3FqIQogB0EBaiEHDAELC0QAAAAAAADwvyEGAkACQCAKDgICAAELIAArAzggA6GZRHsUrkfhenQ/ZUUNACACRAAAAAAAAPC/IAArAzAiASAFZRtEAAAAAAAA8L8gASAEZhshBgwBCyAIIABEAAAAAAAA4D8gCEHQAGoiACAIQRBqIgcQpgEgACABIAEgAqBEAAAAAAAA4D+iIgEgAyAEIAUQ9AUiBkQAAAAAAAAAAGYNACAHIAEgAiADIAQgBRD0BSEGCyAIQZABaiQAIAYLtgICAXwEfyMAQZABayIIJAACQCABIAJhBEAgASEGDAELQX8gACsDACIGIANkIAMgBmQbIglFIQpBASEHA0AgB0EERkUEQCAKIAlBAEcgCUF/IAAgB0EEdGorAwAiBiADZCADIAZkGyIJR3FqIQogB0EBaiEHDAELC0QAAAAAAADwvyEGAkACQCAKDgICAAELIAArAzAgA6GZRHsUrkfhenQ/ZUUNACACRAAAAAAAAPC/IAArAzgiASAFZRtEAAAAAAAA8L8gASAEZhshBgwBCyAIIABEAAAAAAAA4D8gCEHQAGoiACAIQRBqIgcQpgEgACABIAEgAqBEAAAAAAAA4D+iIgEgAyAEIAUQ9QUiBkQAAAAAAAAAAGYNACAHIAEgAiADIAQgBRD1BSEGCyAIQZABaiQAIAYLlwMCCXwBfyMAQUBqIg0kACADKwMYIQggAysDECEJIAMrAwghCiACKwMIIQcgASsDCCEFIAErAwAhBgJAAkAgAisDACILIAMrAwAiDGNFDQAgACAMOQMAIAAgBSAFIAehIAwgBqGiIAYgC6GjEDGgIgQ5AwggBCAKZkUNACAEIAhlDQELAkAgCSALY0UNACAAIAk5AwAgACAFIAUgB6EgCSAGoaIgBiALoaMQMaAiBDkDCCAEIApmRQ0AIAQgCGUNAQsCQCAHIApjRQ0AIAAgCjkDCCAAIAYgBiALoSAKIAWhoiAFIAehoxAxoCIEOQMAIAQgDGZFDQAgBCAJZQ0BCwJAIAcgCGRFDQAgACAIOQMIIAAgBiAGIAuhIAggBaGiIAUgB6GjEDGgIgQ5AwAgBCAMZkUNACAEIAllDQELIA0gCDkDOCANIAk5AzAgDSAKOQMoIA0gDDkDICANIAc5AxggDSALOQMQIA0gBTkDCCANIAY5AwBBwfgEIA0QNkG/owNBwMcBQcMAQcmLARAAAAsgDUFAayQAC8gBAQR/IAMgARCdDgNAAkAgAygCCCIBRQ0AIAMgAUEBaxCcDiEEIAMgAygCCEEBaxCbDiADIAMoAghBAWs2AgggBEUNACADKAIQIgEEQCAEIAIgAREDAAsgBUEBaiEFIAAgBBBvIQEDQCABRQ0CIAQgAUEwQQAgASgCAEEDcSIHQQNHG2ooAigiBkYEQCABQVBBACAHQQJHG2ooAighBgsgBkF/IAMoAhQRAABFBEAgAyAGEJ0OCyAAIAEgBBBzIQEMAAsACwsgBQusAQEBfwJAIAAQJwRAIAAQJEEPRg0BCyAAECQgABBGTwRAIABBARCkCAsgABAkIQEgABAnBEAgACABakEAOgAAIAAgAC0AD0EBajoADyAAECRBEEkNAUG8wANByYQBQZ0CQZS6ARAAAAsgACgCACABakEAOgAAIAAgACgCBEEBajYCBAsCQCAAECcEQCAAQQA6AA8MAQsgAEEANgIECyAAECcEfyAABSAAKAIACwvxAgEEfyMAQTBrIgIkACACIAE2AgwgAiABNgIsIAIgATYCEAJAAkACQAJAAkBBAEEAQZQYIAEQYiIFQQBIDQBBASEDIAVBAWohAQJAIAUgABBGIAAQJGsiBE8EQCAAECdBACABIARrIgRBAUYbDQEgACAEEKQIC0EAIQMLIAJCADcDGCACQgA3AxAgAyAFQRBPcQ0BIAJBEGohBCAFIAMEfyAEBSAAEHQLIAFBlBggAigCLBBiIgFHIAFBAE5xDQIgAUEATA0AIAAQJwRAIAFBgAJPDQQgAwRAIAAQdCACQRBqIAEQHxoLIAAgAC0ADyABajoADyAAECRBEEkNAUG8wANByYQBQdgBQekfEAAACyADDQQgACAAKAIEIAFqNgIECyACQTBqJAAPC0GfrwNByYQBQcsBQekfEAAAC0H4ogNByYQBQdABQekfEAAAC0Hf1AFByYQBQdMBQekfEAAAC0HjpAFByYQBQdoBQekfEAAAC/IBAQN/QcLMASEEAkAgAUUNACABIQIDQCACLQAAIQMgAkEBaiECIANB3wBGDQAgA0UEQCABIQQMAgsgA8AiA0FfcUHBAGtBGkkgA0Ewa0EKSXINAAsLAkACQCAEEDwiAUUNACAAEEYgABAkayABSQRAIAAgARCkCAsgABAkIQIgABAnBEAgACACaiAEIAEQHxogAUGAAk8NAiAAIAAtAA8gAWo6AA8gABAkQRBJDQFBvMADQcmEAUGFAkGy8AAQAAALIAAoAgAgAmogBCABEB8aIAAgACgCBCABajYCBAsPC0H41AFByYQBQYMCQbLwABAAAAv/AwIBfAd/An8gACsDCCIDRAAAAAAAAOA/RAAAAAAAAOC/IANEAAAAAAAAAABmG6AiA5lEAAAAAAAA4EFjBEAgA6oMAQtBgICAgHgLIQYCfyABKwMIIgNEAAAAAAAA4D9EAAAAAAAA4L8gA0QAAAAAAAAAAGYboCIDmUQAAAAAAADgQWMEQCADqgwBC0GAgICAeAsiByAGayIEIARBH3UiBXMgBWsCfyAAKwMAIgNEAAAAAAAA4D9EAAAAAAAA4L8gA0QAAAAAAAAAAGYboCIDmUQAAAAAAADgQWMEQCADqgwBC0GAgICAeAshAEEBdCEFQX9BASAEQQBMGyEJQX9BAQJ/IAErAwAiA0QAAAAAAADgP0QAAAAAAADgvyADRAAAAAAAAAAAZhugIgOZRAAAAAAAAOBBYwRAIAOqDAELQYCAgIB4CyIIIABrIgFBAEwbIQoCQCAFIAEgAUEfdSIEcyAEa0EBdCIESARAIAUgBEEBdWshAQNAIAIgALcgBrcQwQIgACAIRg0CIAEgBWogBEEAIAFBAE4iBxtrIQEgACAKaiEAIAlBACAHGyAGaiEGDAALAAsgBCAFQQF1ayEBA0AgAiAAtyAGtxDBAiAGIAdGDQEgASAEaiAFQQAgAUEATiIIG2shASAGIAlqIQYgCkEAIAgbIABqIQAMAAsACwtpAQJ/IwBBEGsiAyQAAkAgAEHm+gAQJiIERQRAIAEhAAwBCyADIANBDGo2AgAgBEGRugEgAxBPQQFGBEAgAygCDCIAQQBODQELIAEhACAELQAAQSByQfQARw0AIAIhAAsgA0EQaiQAIAAL8QECBH8HfCAAIAEgAiADEKAORQRAIAIQwwIgAigCECIDKwMoIQggAysDICEJIAMrAxghCiADKwMQIQsDQCAAIAVGBEAgAyAIOQMoIAMgCTkDICADIAo5AxggAyALOQMQBUEBIQIgASAFQQJ0aigCACgCECIGKAK0ASIEQQAgBEEAShtBAWohBwNAIAIgB0cEQCAGKAK4ASACQQJ0aigCACgCECIEKwAQIQwgBCsAGCENIAQrACAhDiAIIAQrACgQIiEIIAkgDhAiIQkgCiANECohCiALIAwQKiELIAJBAWohAgwBCwsgBUEBaiEFDAELCwsLjQQCBX8CfCADKAIQIgUoAmAEfyACKAIQKAL0ASABKAIQKAL0AWpBAm0FQX8LIQgCQCAFKAKwAUUEQCABKAIQKAL0ASEHA0AgAigCECgC9AEiBCAHSgRAIAIhBSAEIAdBAWoiB0oEQAJAIAcgCEYEQCADKAIQKAJgIgUrAyAhCSAFKwMYIQogABC7AiIFKAIQIAMoAhAoAmA2AnggBRA3IQYgBSgCECIEIAYoAhAoAvgBtzkDWCADKAIQLQBzDQEgABA3IQYgBSgCECIEIAkgCiAGKAIQKAJ0QQFxIgYbOQNgIAQgCiAJIAYbOQNQDAELIAAgABC7AiIFELAOIAUoAhAhBAsgBCAHNgL0AQsCQAJAQTBBACABIAUgAxDlASIBKAIAQQNxIgRBA0cbIAFqKAIoKAIQIgYtAKwBQQFHBH8gBiwAtgFBAkgFQQILQQxsIAFBUEEAIARBAkcbaigCKCgCECIELQCsAUEBRwR/IAQsALYBQQJIBUECC0ECdGpBgM8IaigCACIEQQBOBEAgASgCECIBKAKcASIGQf////8HIARuSg0BIAEgBCAGbDYCnAEMAgtBn50DQf7BAUGTDkHJIRAAAAtBo7sEQQAQNhAoAAsgBSEBDAELCyADKAIQKAKwAUUNAQ8LQZbZAUH7xwFBzwBB7eoAEAAAC0H+3AFB+8cBQd0AQe3qABAAAAu0AQICfAN/IAAoAhAoAoACRQRAIAAQYxC7AiIDKAIQQQI6AKwBIAAQYxC7AiIEKAIQQQI6AKwBAkAgACgCECgCDEUNACAAEGMgAEYNACAAEDcoAhAtAHRBAXENACADIAQCfyAAKAIQIgUrAzAiASAFKwNQIgIgASACZBsiAZlEAAAAAAAA4EFjBEAgAaoMAQtBgICAgHgLt0EAEKQBGgsgACgCECIAIAQ2AoQCIAAgAzYCgAILC5cCAgJ/BHwjAEHQAGsiByQAIAdBCGoiCCABQSgQHxogB0EwaiAAIAggA0EAIAQQtwMgBSAHKQNINwMYIAUgB0FAaykDADcDECAFIAcpAzg3AwggBSAHKQMwNwMAIAVBBDYCMCAFKwMQIQkgBSsDACEKAkAgBgRAIAIgBEECIAVBABCRBQwBCyACIARBAiAFQQAQkAULAkAgCSAKZEUNACAFQThqIgIgBSgCNCIBQQV0akEIaysDACILIAMoAhAiAysDGCAAKAIQKALEASADKAL0AUHIAGxqKwMYoCIMY0UNACAFIAFBAWo2AjQgAiABQQV0aiIAIAw5AxggACAJOQMQIAAgCzkDCCAAIAo5AwALIAdB0ABqJAALFQAgACABQQRB/ilBxwBBysIBEKICC6lJAhR/CHwjAEGAB2siAiQAQcyECyAAKAIQKAJ0IgRBAXEiCToAAEHIhAsgBEEDcTYCAAJAIAkEQCAAEN8ODAELIAAQ3g4LIAAoAhAiBC8BiAEhCQJAIAQtAHEiBEE2cUUEQCAEQQFxRQ0BQdThCigCAA0BCyAJQQ5xIQYgABAbIQpBACEEQQAhCQNAIAoEQAJAIAooAhAoAnwiB0UNACAHLQBRQQFGBEAgA0EBaiEDDAELIAlBAWohCQsgACAKEC0hBQNAIAUEQAJAIAUoAhAiBygCbCIMRQ0AIAwtAFFBAUYEQCADQQFqIQMMAQsgBkUNACAEIAcoAghBAEdqIQQLAkAgBygCZCIMRQ0AIAwtAFFBAUYEQCADQQFqIQMMAQsgBkUNACAEIAcoAghBAEdqIQQLAkAgBygCaCIMRQ0AIAwtAFFBAUYEQCADQQFqIQMMAQsgBkUNACAEIAcoAghBAEdqIQQLAkAgBygCYCIMRQ0AIAwtAFFBAUYEQCADQQFqIQMMAQsgBkUNACAEIAcoAghBAEdqIQQLIAAgBRAwIQUMAQsLIAAgChAcIQoMAQsLIAAoAhAtAHFBCHEEQCAAEN0OIQ0LIAQgCWoiEEUNACAAEDggAyAEaiANamoiDEEoEBkhCSAQQSgQGSEKIAJC/////////3c3A/gGIAJC/////////3c3A/AGIAJC//////////f/ADcD6AYgAkL/////////9/8ANwPgBiAAEBshCyAJIQQgCiEHA0AgCwRAIAsoAhAiBUEoQSBBzIQLLQAAIgMbaisDACEWIAIrA/gGIRggAisD6AYhGSACKwPgBiEaIAIrA/AGIR0gBCAFQSBBKCADG2orAwBEAAAAAAAAUkCiIhs5AxggBCAWRAAAAAAAAFJAoiIcOQMQIAQgCygCECIFKQMQNwMAIAQgBSkDGDcDCCAEIAQrAwAgHEQAAAAAAADgP6KhIhY5AwAgBCAEKwMIIBtEAAAAAAAA4D+ioSIXOQMIIAIgHSAcIBagIhwgHCAdYxs5A/AGIAIgGiAWIBYgGmQbOQPgBiACIBkgFyAXIBlkGzkD6AYgAiAYIBsgF6AiFiAWIBhjGzkD+AYCQCALKAIQKAJ8IgVFDQAgBS0AUUEBRgRAIAIgAikD6AY3A7gFIAIgAikD8AY3A8AFIAIgAikD+AY3A8gFIAIgAikD4AY3A7AFIAJB+AVqIAUgBEEoaiIEIAJBsAVqEIAEIAIgAikDkAY3A/gGIAIgAikDiAY3A/AGIAIgAikDgAY3A+gGIAIgAikD+AU3A+AGDAELAkAgAwRAIAcgBSsDIDkDACAHIAUrAxg5AwgMAQsgByAFKQMYNwMAIAcgBSkDIDcDCAsgB0EAOgAkIAcgBTYCICAEIAc2AiAgB0EoaiEHCyAEQShqIQQgACALEC0hBQNAAkACQAJAAkACQCAFBEAgBSgCECIDKAJgIggEQAJAIAgtAFFBAUYEQCACIAIpA+gGNwOIBSACIAIpA/AGNwOQBSACIAIpA/gGNwOYBSACIAIpA+AGNwOABSACQfgFaiAIIAQgAkGABWoQgAQgAiACKQOQBjcD+AYgAiACKQOIBjcD8AYgAiACKQOABjcD6AYgAiACKQP4BTcD4AYMAQsgBkUNAyADKAIIRQ0DIAJB0AZqIAAgBRDACiACIAIpA9gGNwOABiACIAIpA9AGNwP4BSACQgA3A5AGIAJCADcDiAYgBCACKQOQBjcDGCAEIAIpA4gGNwMQIAQgAikDgAY3AwggBCACKQP4BTcDACAEQgA3AyACQEHMhAstAABBAUYEQCAHIAgrAyA5AwAgByAIKwMYOQMIDAELIAcgCCkDGDcDACAHIAgpAyA3AwgLIAdBADoAJCAHIAg2AiAgBCAHNgIgIAdBKGohBwsgBSgCECEDIARBKGohBAsgAygCaCIIBEACQCAILQBRQQFGBEAgAiACKQPoBjcD2AQgAiACKQPwBjcD4AQgAiACKQP4BjcD6AQgAiACKQPgBjcD0AQgAkH4BWogCCAEIAJB0ARqEIAEIAIgAikDkAY3A/gGIAIgAikDiAY3A/AGIAIgAikDgAY3A+gGIAIgAikD+AU3A+AGDAELIAZFDQQgAygCCEUNBAJAIAUQngMiA0UEQCACQgA3A8gGIAJCADcDwAYMAQsgAygCACIDKAIIBEAgAiADKQMYNwPIBiACIAMpAxA3A8AGDAELIAIgAygCACIDKQMINwPIBiACIAMpAwA3A8AGCyACIAIpA8gGNwOABiACIAIpA8AGNwP4BSACQgA3A5AGIAJCADcDiAYgBCACKQOQBjcDGCAEIAIpA4gGNwMQIAQgAikDgAY3AwggBCACKQP4BTcDACAEQgA3AyACQEHMhAstAABBAUYEQCAHIAgrAyA5AwAgByAIKwMYOQMIDAELIAcgCCkDGDcDACAHIAgpAyA3AwgLIAdBADoAJCAHIAg2AiAgBCAHNgIgIAdBKGohBwsgBSgCECEDIARBKGohBAsgAygCZCIIBEACQCAILQBRQQFGBEAgAiACKQPoBjcDqAQgAiACKQPwBjcDsAQgAiACKQP4BjcDuAQgAiACKQPgBjcDoAQgAkH4BWogCCAEIAJBoARqEIAEIAIgAikDkAY3A/gGIAIgAikDiAY3A/AGIAIgAikDgAY3A+gGIAIgAikD+AU3A+AGDAELIAZFDQUgAygCCEUNBQJAIAUQngMiA0UEQCACQgA3A7gGIAJCADcDsAYMAQsgAygCACADKAIEQTBsaiIDQSRrKAIABEAgAiADQRBrIgMpAwg3A7gGIAIgAykDADcDsAYMAQsgAiADQTBrKAIAIANBLGsoAgBBBHRqQRBrIgMpAwg3A7gGIAIgAykDADcDsAYLIAIgAikDuAY3A4AGIAIgAikDsAY3A/gFIAJCADcDkAYgAkIANwOIBiAEIAIpA5AGNwMYIAQgAikDiAY3AxAgBCACKQOABjcDCCAEIAIpA/gFNwMAIARCADcDIAJAQcyECy0AAEEBRgRAIAcgCCsDIDkDACAHIAgrAxg5AwgMAQsgByAIKQMYNwMAIAcgCCkDIDcDCAsgB0EAOgAkIAcgCDYCICAEIAc2AiAgB0EoaiEHCyAFKAIQIQMgBEEoaiEECyADKAJsIghFDQUCQCAILQBRQQFGBEAgAiACKQPoBjcD+AMgAiACKQPwBjcDgAQgAiACKQP4BjcDiAQgAiACKQPgBjcD8AMgAkH4BWogCCAEIAJB8ANqEIAEIAIgAikDkAY3A/gGIAIgAikDiAY3A/AGIAIgAikDgAY3A+gGIAIgAikD+AU3A+AGDAELIAZFDQUgAygCCEUNBSACQaAGaiAAIAUQwAogAiACKQOoBjcDgAYgAiACKQOgBjcD+AUgAkIANwOQBiACQgA3A4gGIAQgAikDkAY3AxggBCACKQOIBjcDECAEIAIpA4AGNwMIIAQgAikD+AU3AwAgBEIANwMgAkBBzIQLLQAAQQFGBEAgByAIKwMgOQMAIAcgCCsDGDkDCAwBCyAHIAgpAxg3AwAgByAIKQMgNwMICyAHQQA6ACQgByAINgIgIAQgBzYCICAHQShqIQcLIARBKGohBAwFCyAAIAsQHCELDAcLIAIgCCgCADYCoAVBzoAEIAJBoAVqECsMAwsgAiAIKAIANgLwBEGlgAQgAkHwBGoQKwwCCyACIAgoAgA2AsAEQfKABCACQcAEahArDAELIAIgCCgCADYCkARBgIAEIAJBkARqECsLIAAgBRAwIQUMAAsACwsgDQRAIAIgAikD+AY3A5AGIAIgAikD8AY3A4gGIAIgAikD6AY3A4AGIAIgAikD4AY3A/gFIAIgBDYCmAYgAkHIA2oiBCACQfgFaiIHQSgQHxogAkHQBWoiBSAAIAQQ3A4gByAFQSgQHxogAiACKQOABjcD6AYgAiACKQOIBjcD8AYgAiACKQOQBjcD+AYgAiACKQP4BTcD4AYLQQAhByAAQQBB4jJBABAhIQQgAiACKQP4BjcDkAYgAiACKQPwBjcDiAYgAiACKQPoBjcDgAYgAiACKQPgBjcD+AUgACAEQQEQuAohBCACQQA2AJwGIAJBADYAmQYgAiAEOgCYBiACQfgFaiEEIwBBoAFrIgMkAEEcEP4DIghB7NYKQbj0CSgCABCXASILNgIUAkACQAJAAkACQCALBEBBuBkQ/gMiBRCwCCIGQQA2AgQgBjYCACAIIAQ2AhAgCCAQNgIMIAggCjYCCCAIIAw2AgQgCCAJNgIAIAggBTYCGCADQUBrIRQCfyACKwOIBiACKwOQBhAiEDEQyAecIhZEAAAAAAAA8EFjIBZEAAAAAAAAAABmcQRAIBarDAELQQALQQFqIQUCQANAIAwgEUYNAUE4EP4DIg8gCSARQShsaiIENgIwAnwgBCgCICIGRQRARAAAAAAAAAAAIRZEAAAAAAAAAAAMAQsgBisDCCEWIAYrAwALIRcgBCsDECEdIAQrAxghGyAEKwMAIRggDyAEKwMIIhwgFqGcIhk5AxggDyAYIBehnCIaOQMQIA8gFiAcIBugoJsiGzkDKCAPIBcgGCAdoKCbIhY5AyAgGiAWIBqhRAAAAAAAAOA/oqAiFkQAAAAAAADgwWZFIBZEAADA////30FlRXINAyAZIBsgGaFEAAAAAAAA4D+ioCIXRAAAAAAAAODBZkUgF0QAAMD////fQWVFcg0EAn8gF5lEAAAAAAAA4EFjBEAgF6oMAQtBgICAgHgLIQYCfyAWmUQAAAAAAADgQWMEQCAWqgwBC0GAgICAeAshDkEAIQ0gBSEEA0AgBEEASgRAIA4gBEEBayIEdkEBcSISQQF0IA1BAnRyIBIgBiAEdkEBcSITc3IhDSATQQFrIhNBACASa3EgEyAGIA5zcXMiEiAGcyEGIA4gEnMhDgwBCwsgDyANNgIIIBFBAWohESALIA9BASALKAIAEQQADQALDAYLIAtBAEGAASALKAIAEQQAIQQDQCAEBEAgBCgCMCELIAgoAhghBiADIAQpAyg3AxggAyAEKQMgNwMQIAMgBCkDGDcDCCADIAQpAxA3AwAjAEHwAGsiBSQAIAVBADYCbAJAIAYEQCADKwMAIAMrAxBlBEAgAysDCCADKwMYZQ0CC0HhzgFBmMABQbABQc0cEAAAC0G18QBBmMABQa4BQc0cEAAACyAGKAIAIQ0gBSADKQMYNwMYIAUgAykDEDcDECAFIAMpAwg3AwggBSADKQMANwMAIAYgBSALIA0gBUHsAGoQ4g4EQBCwCCILIAYoAgAiDigCBEEBajYCBCAFQUBrIg0gDhCEBiAFIAYoAgA2AmAgBiANIAtBABDSBBogBUEgaiAFKAJsEIQGIAUgBSkDODcDWCAFIAUpAzA3A1AgBSAFKQMoNwNIIAUgBSkDIDcDQCAFIAUoAmw2AmAgBiANIAtBABDSBBogBiALNgIACyAFQfAAaiQAIAgoAhQiCyAEQQggCygCABEEACEEDAELC0EAIQYgCxCdAQNAIAsQnQEEQCALKAIMIgRFDQUCfyALKAIEKAIIIg1BAEgEQCAEKAIIDAELIAQgDWsLIgRFDQUgCyAEQYAgIAsoAgARBAAaIAQQGCAGQQFqIQYMAQsLIAZHDQQgCxCbAUEASA0FQQAhBEEAIQ4DQCAMIA5GBEAgCCgCGCIEKAIAEOUOIAQoAgAQGCAEEBggCBAYDAcFIAkgDkEobGoiBSgCICIGBEAgBSsDECEaIAYrAwghFyAFKwMYIRggBisDACEWIANB8ABqIgtBAEEkEDMaIAYgBSsDACAWoTkDECAGIBggBSsDCKA5AxggA0HQAGogCCAFIAsQhgICfwJAIAMoAlBFBEAgAyADKQNoNwMoIAMgAykDYDcDIAwBCyAGIAUrAwg5AxggA0EwaiAIIAUgA0HwAGoQhgICQAJAIAMoAjBFDQAgAysDOCADKwNYYwRAIAMgAykDSDcDaCADIANBQGspAwA3A2AgAyADKQM4NwNYIAMgAykDMDcDUAsgBiAFKwMIIAYrAwihOQMYIANBMGogCCAFIANB8ABqEIYCIAMoAjBFDQAgAysDOCADKwNYYwRAIAMgAykDSDcDaCADIANBQGspAwA3A2AgAyADKQM4NwNYIAMgAykDMDcDUAsgBiAFKwMAOQMQIAYgBSsDCCAFKwMYoDkDGCADQTBqIAggBSADQfAAahCGAiADKAIwRQ0AIAMrAzggAysDWGMEQCADIAMpA0g3A2ggAyADQUBrKQMANwNgIAMgAykDODcDWCADIAMpAzA3A1ALIAYgBSsDCCAGKwMIoTkDGCADQTBqIAggBSADQfAAahCGAiADKAIwRQ0AIAMrAzggAysDWGMEQCADIAMpA0g3A2ggAyADQUBrKQMANwNgIAMgAykDODcDWCADIAMpAzA3A1ALIAYgBSsDACAFKwMQoDkDECAGIAUrAwggBSsDGKA5AxggA0EwaiAIIAUgA0HwAGoQhgIgAygCMEUNACADKwM4IAMrA1hjBEAgAyADKQNINwNoIAMgA0FAaykDADcDYCADIAMpAzg3A1ggAyADKQMwNwNQCyAGIAUrAwg5AxggA0EwaiAIIAUgA0HwAGoQhgIgAygCMEUNACADKwM4IAMrA1hjBEAgAyADKQNINwNoIAMgA0FAaykDADcDYCADIAMpAzg3A1ggAyADKQMwNwNQCyAGIAUrAwggBisDCKE5AxggA0EwaiAIIAUgA0HwAGoQhgIgAygCMEUNACADKwM4IAMrA1hjBEAgAyADKQNINwNoIAMgA0FAaykDADcDYCADIAMpAzg3A1ggAyADKQMwNwNQCyAXIBegIBigRAAAAAAAAOA/oiEZIBYgFqAgGqBEAAAAAAAAwD+iIRoCQCADKAJwIg0gAygCjAEiCyADKAKIAXIgAygCfCIPIAMoApABIhFycnJFBEAgBSsDCCEWQQAhDQwBCyAFKwMIIRYgCyARcgR/IA8FIAYgBSsDACIXIAYrAwChIhg5AxAgBiAWIAUrAxigOQMYA0AgFyAFKwMQoCAYZgRAIANBMGogCCAFIANB8ABqEIYCIAMoAjBFDQQgAysDOCADKwNYYwRAIAMgAykDSDcDaCADIANBQGspAwA3A2AgAyADKQM4NwNYIAMgAykDMDcDUAsgBiAaIAYrAxCgIhg5AxAgBSsDACEXDAELCyADKAJwIQ0gBSsDCCEWIAMoAnwLIA1yDQAgBiAFKwMAIAYrAwChOQMQIBYgBSsDGKAhFwNAAkAgBiAXOQMYIBcgFiAGKwMIoWZFDQAgA0EwaiAIIAUgA0HwAGoQhgIgAygCMEUNAyADKwM4IAMrA1hjBEAgAyADKQNINwNoIAMgA0FAaykDADcDYCADIAMpAzg3A1ggAyADKQMwNwNQCyAGKwMYIBmhIRcgBSsDCCEWDAELCyADKAJwIQ0LIAYgBSsDACIXIAUrAxCgIhg5AxAgBiAWIAYrAwihOQMYIAMoApABIgsgAygCdCIPIAMoAnhyIA0gAygChAEiEXJyckUNASANIA9yBH8gEQUDQCAXIAYrAwChIBhlBEAgA0EwaiAIIAUgA0HwAGoQhgIgAygCMEUNAyADKwM4IAMrA1hjBEAgAyADKQNINwNoIAMgA0FAaykDADcDYCADIAMpAzg3A1ggAyADKQMwNwNQCyAGIAYrAxAgGqEiGDkDECAFKwMAIRcMAQsLIAMoApABIQsgAygChAELIAtyDQEgBiAXIAUrAxCgOQMQIAUrAwgiFiAGKwMIoSEXA0AgBiAXOQMYIBcgFiAFKwMYoGVFDQIgA0EwaiAIIAUgA0HwAGoQhgIgAygCMEUNASADKwM4IAMrA1hjBEAgAyADKQNINwNoIAMgA0FAaykDADcDYCADIAMpAzg3A1ggAyADKQMwNwNQCyAZIAYrAxigIRcgBSsDCCEWDAALAAsgAyAUKQMINwMoIAMgFCkDADcDIAwBCyADIAMpA2g3AyggAyADKQNgNwMgIAMoAlBFDQAgAysDWEQAAAAAAAAAAGEEQCAFKAIgIgYgAykDIDcDECAGIAMpAyg3AxgMAQtBASACLQCYBkEBRw0BGiAFKAIgIgYgAykDIDcDECAGIAMpAyg3AxgLIAUoAiBBAToAJCAECyEECyAOQQFqIQ4MAQsACwALQabjA0EOQQFBuPwIKAIAEEwaECgAC0HP0AFBt8IBQfgDQcS4ARAAAAtBstABQbfCAUH5A0HEuAEQAAALQZfCAEG3wgFBiARBzrgBEAAAC0GbtgFBt8IBQY8EQc64ARAAAAsgA0GgAWokAAJAQYzhCi0AAEUNACACIAIrA/gFOQOgAyACIAIrA4AGOQOoAyACIAIrA4gGOQOwAyACIAIrA5AGOQO4AyACIAw2ApADIAIgEDYClAMgAiACLQCYBjYCmANBuPwIKAIAIgNB4/oEIAJBkANqEDJBjOEKLQAAQQJJDQBBzO4DQQhBASADEEwaQQAhBSAJIQQDQCAFIAxGBEBB4PIDQQhBASADEEwaQQAhBSAKIQQDQCAFIBBGDQMgBC0AJCEMIAQrAxAhFiAEKwMYIRcgBCsDACEYIAQrAwghGSACIAQoAiAoAgA2AtACIAIgGTkDyAIgAiAYOQPAAiACIBc5A7gCIAIgFjkDsAIgAiAMNgKoAiACIAQ2AqQCIAIgBTYCoAIgA0GhjAQgAkGgAmoQMiAEQShqIQQgBUEBaiEFDAALAAUgBCsDGCEWIAQrAxAhFyAEKwMIIRggBCsDACEZIAIgBCgCICIGBH8gBigCICgCAAVB5ooFCzYCjAMgAiAGNgKIAyACIBY5A4ADIAIgFzkD+AIgAiAYOQPwAiACIBk5A+gCIAIgBTYC4AIgA0HiggUgAkHgAmoQMiAEQShqIQQgBUEBaiEFDAELAAsACyAKIQRBACEFAkADQCAFIBBGBEBBjOEKLQAABEAgAiAQNgKUAiACIAc2ApACQbj8CCgCAEHC7wQgAkGQAmoQHhoMAwsFIAQtACQEQCAEKAIgIgxBAToAUSAEKwMQIRYgBCsDACEXIAwgBCsDGCAEKwMIRAAAAAAAAOA/oqA5A0AgDCAWIBdEAAAAAAAA4D+ioDkDOCAAIAwQjAIgB0EBaiEHCyAFQQFqIQUgBEEoaiEEDAELCyAHIBBGDQAgAiAQNgKEAiACIAc2AoACQeXvBCACQYACahArCyAJEBggChAYC0QAAAAAAAAAACEXAkAgACgCECIEKAIMIgVFBEBEAAAAAAAAAAAhFgwBC0QAAAAAAAAAACEWIAUtAFENACAELQCTAkEBcSEJIAUrAyBEAAAAAAAAIECgIRYgBSsDGEQAAAAAAAAwQKAhF0HMhAstAABBAUYEQAJAIAkEQCAEIBYgBCsDIKA5AyAMAQsgBCAEKwMQIBahOQMQCyAXIAQrAygiGCAEKwMYIhmhIhpkRQ0BIAQgGCAXIBqhRAAAAAAAAOA/oiIYoDkDKCAEIBkgGKE5AxgMAQtByIQLKAIAIQoCQCAJBEAgCkUEQCAEIBYgBCsDKKA5AygMAgsgBCAEKwMYIBahOQMYDAELIApFBEAgBCAEKwMYIBahOQMYDAELIAQgFiAEKwMooDkDKAsgFyAEKwMgIhggBCsDECIZoSIaZEUNACAEIBggFyAaoUQAAAAAAADgP6IiGKA5AyAgBCAZIBihOQMQCwJAIAFFDQACQAJAAkACQAJAAkBByIQLKAIAIgFBAWsOAwECAwALQdCECyAEKQMQNwMAQdiECyAEKQMYNwMAQdCECysDACEYQdiECysDACEZDAQLIAQrAyhB2IQLIAQrAxAiGTkDAJohGAwCCyAEKwMoIRlB0IQLIAQrAxAiGDkDAEHYhAsgGZoiGTkDAAwCCyAEKwMYIRhB2IQLIAQrAxAiGTkDAAtB0IQLIBg5AwALIAEgGEQAAAAAAAAAAGJyRSAZRAAAAAAAAAAAYXENACAAEBshAQNAAkAgAQRAQciECygCAARAIAFBABChBAsgAiABKAIQIgQpAxg3A/gBIAIgBCkDEDcD8AEgAkH4BWoiCSACQfABahCFAiAEIAIpA4AGNwMYIAQgAikD+AU3AxAgASgCECgCfCIEBEAgAiAEQUBrIgopAwA3A+gBIAIgBCkDODcD4AEgCSACQeABahCFAiAKIAIpA4AGNwMAIAQgAikD+AU3AzgLQdDhCigCAEEBRw0BIAAgARAtIQkDQCAJRQ0CQQAhCgJAIAkoAhAiBCgCCCIFRQRAQbzhCi0AAA0BIAQtAHBBBkYNASAJQTBBACAJKAIAQQNxQQNHG2ooAigQICEEIAIgCUFQQQAgCSgCAEEDcUECRxtqKAIoECA2AmQgAiAENgJgQZK7BCACQeAAahA2DAELA0AgBSgCBCAKTQRAIAQoAmAiCgRAIAIgCkFAayIEKQMANwPYASACIAopAzg3A9ABIAJB+AVqIAJB0AFqEIUCIAQgAikDgAY3AwAgCiACKQP4BTcDOCAJKAIQIQQLIAQoAmwiCgRAIAIgCkFAayIEKQMANwPIASACIAopAzg3A8ABIAJB+AVqIAJBwAFqEIUCIAQgAikDgAY3AwAgCiACKQP4BTcDOCAJKAIQIQQLIAQoAmQiCgR/IAIgCkFAayIEKQMANwO4ASACIAopAzg3A7ABIAJB+AVqIAJBsAFqEIUCIAQgAikDgAY3AwAgCiACKQP4BTcDOCAJKAIQBSAECygCaCIERQ0CIAIgBEFAayIKKQMANwOoASACIAQpAzg3A6ABIAJB+AVqIAJBoAFqEIUCIAogAikDgAY3AwAgBCACKQP4BTcDOAwCCyAKQTBsIgwgBSgCAGoiBCgCDCEFIAQoAgghAyAEKAIEIQYgBCgCACEIQQAhBANAIAQgBkYEQCAJKAIQIQQgAwRAIAIgBCgCCCgCACAMaiIEKQMYNwOIASACIAQpAxA3A4ABIAJB+AVqIAJBgAFqEIUCIAQgAikDgAY3AxggBCACKQP4BTcDECAJKAIQIQQLIApBAWohCiAFBEAgAiAEKAIIKAIAIAxqIgQpAyg3A3ggAiAEKQMgNwNwIAJB+AVqIAJB8ABqEIUCIAQgAikDgAY3AyggBCACKQP4BTcDICAJKAIQIQQLIAQoAgghBQwCBSACIAggBEEEdGoiBykDCDcDmAEgAiAHKQMANwOQASACQfgFaiACQZABahCFAiAHIAIpA4AGNwMIIAcgAikD+AU3AwAgBEEBaiEEDAELAAsACwALIAAgCRAwIQkMAAsACyAAIAAoAhAoAnRBA3EQ4A4gACgCECIEKAIMIQUMAgsgACABEBwhAQwACwALAkAgBUUNACAFLQBRDQACfCAELQCTAiIAQQRxBEAgBCsDICAXRAAAAAAAAOC/oqAMAQsgF0QAAAAAAADgP6IgBCsDECIXoCAAQQJxDQAaIBcgBCsDIKBEAAAAAAAA4D+iCyEXIBZEAAAAAAAA4D+iIRYCfCAAQQFxBEAgBCsDKCAWoQwBCyAWIAQrAxigCyEWIAVBAToAUSAFIBY5A0AgBSAXOQM4CwJAAkBBsOEKKAIABEAgAkIANwOABiACQgA3A/gFAkBBzIQLLQAAQQFGBEAgAkHQhAsrAwAiFjkDICACQdiECysDACIXOQMoIAIgFjkDECACIBc5AxggAkH4BWpBhakEIAJBEGoQxAIMAQsgAkFAa0HYhAsrAwAiFjkDACACQdCECysDACIXOQNIIAIgF5o5A1AgAiAWmjkDWCACIBY5AzAgAiAXOQM4IAJB+AVqQeqiBCACQTBqEMQCCyACQfgFaiIBECchBCABECQhAAJAIAQEQCABIAAQzAIiAw0BIAIgAEEBajYCAEG4/AgoAgBB0/MDIAIQHhoQKAALIAJB+AVqIgEQRiAATQRAIAFBARDRAwsgAkH4BWoiABAkIQECQCAAECcEQCAAIAFqQQA6AAAgAiACLQCHBkEBajoAhwYgABAkQRBJDQFBvMADQcmEAUGdAkGUugEQAAALIAIoAvgFIAFqQQA6AAALIAIoAvgFIQMLIAJCADcDgAYgAkIANwP4BUGw4QooAgAiBUG04QooAgAiBEYEQCAFQQF0QQEgBRsiBEGAgICABE8NAkGo4QooAgAgBSAEQQQQigEiAEG04QooAgAiAUECdGpBACAEIAFrQQJ0EDMaIAFBsOEKKAIAIgVBrOEKKAIAIglqSQRAIAAgBCABIAlrIgFrIgpBAnRqIAAgCUECdGogAUECdBBTGkGs4QogCjYCAAtBtOEKIAQ2AgBBqOEKIAA2AgALIAQgBU0NAkGo4QooAgAgBEGs4QooAgBqQQFrIARwIgBBAnRqIAM2AgBBsOEKIAVBAWo2AgBBrOEKIAA2AgALIAJBgAdqJAAPC0GyvwRBJUEBQbj8CCgCABBMGhAoAAtBswxB3oIBQS1Biq0BEAAAC0MBAnwgACABKAIgIgErAxAiAhAxOQMAIAAgASsDGCIDEDE5AwggACACIAErAwCgEDE5AxAgACADIAErAwigEDE5AxgLpQIBBH8jAEHgAGsiAiQAAkAgAQRAIAAQ6g4gAUEIaiEFQQAhAUEBIQQDQCABQcAARg0CIAUgAUEobGoiAygCIARAAkAgBARAIAAgAykDADcDACAAIAMpAxg3AxggACADKQMQNwMQIAAgAykDCDcDCAwBCyACIAApAwg3AyggAiAAKQMQNwMwIAIgACkDGDcDOCACIAApAwA3AyAgAiADKQMINwMIIAIgAykDEDcDECACIAMpAxg3AxggAiADKQMANwMAIAJBQGsgAkEgaiACEI0DIAAgAikDWDcDGCAAIAIpA1A3AxAgACACKQNINwMIIAAgAikDQDcDAAtBACEECyABQQFqIQEMAAsAC0G18QBBoMcBQdQAQak9EAAACyACQeAAaiQAC6QDAQR/IwBBgAFrIgMkACAAIAFBAnRqIgRB3BZqIgUoAgBFBEAgAEEIaiEGIARB2BRqIAI2AgAgBUEBNgIAIAAgAkEFdGpB6BhqIQQCQCAAIAJBAnRqQeAYaiIFKAIARQRAIAQgBiABQShsaiIBKQMANwMAIAQgASkDGDcDGCAEIAEpAxA3AxAgBCABKQMINwMIDAELIAMgBiABQShsaiIBKQMINwNIIAMgASkDEDcDUCADIAEpAxg3A1ggAyABKQMANwNAIAMgBCkDCDcDKCADIAQpAxA3AzAgAyAEKQMYNwM4IAMgBCkDADcDICADQeAAaiADQUBrIANBIGoQjQMgBCADKQN4NwMYIAQgAykDcDcDECAEIAMpA2g3AwggBCADKQNgNwMACyADIAAgAkEFdGoiAUGAGWopAwA3AxggAyABQfgYaikDADcDECADIAFB8BhqKQMANwMIIAMgAUHoGGopAwA3AwAgACACQQN0akGoGWogAxCOAzcDACAFIAUoAgBBAWo2AgAgA0GAAWokAA8LQb7OAUG0wwFB3AFB/w4QAAALFAAgACABIAJBnyRBIkGJwQEQ2QoLFAAgACABQRRBsilBIkGJwQEQpgQLTAEBfyAAKAIEIgIgAUsEQCACQSFPBH8gACgCAAUgAAsgAUEDdmoiACAALQAAQQEgAUEHcXRyOgAADwtB8LoDQduBAUHRAEGmIhAAAAsTACAAIAFBzSVB3gpB/sEBEMgBC1ABAX8gASgCECgCnAFFBEBBAA8LIAAgAUEwQQAgASgCAEEDcUEDRxtqKAIoEPEOBH8gACABQVBBACABKAIAQQNxQQJHG2ooAigQ8Q4FQQALCzUBAn8CQCAAEBsiAUUEQAwBCyABEIcCIQIDQCAAIAEQHCIBRQ0BIAIgARC9CBoMAAsACyACC0sBA38gACgCECICIAIoArQBIgRBAWoiAzYCtAEgAigCuAEgAyAEQQJqEMIBIQIgACgCECACNgK4ASACIANBAnRqIAE2AgAgARCBBQuGAwEDfyABIAFBMGoiAyABKAIAQQNxQQNGGygCKCgCECICKALQASACKALUASICQQFqIAJBAmoQwgEhAiABIAMgASgCAEEDcUEDRhsoAigoAhAgAjYC0AEgASADIAEoAgBBA3FBA0YbKAIoKAIQIgIgAigC1AEiBEEBajYC1AEgAigC0AEgBEECdGogATYCACABIAMgASgCAEEDcUEDRhsoAigoAhAiAygC0AEgAygC1AFBAnRqQQA2AgAgASABQTBrIgMgASgCAEEDcUECRhsoAigoAhAiAigC2AEgAigC3AEiAkEBaiACQQJqEMIBIQIgASADIAEoAgBBA3FBAkYbKAIoKAIQIAI2AtgBIAEgAyABKAIAQQNxQQJGGygCKCgCECICIAIoAtwBIgRBAWo2AtwBIAIoAtgBIARBAnRqIAE2AgAgASADIAEoAgBBA3FBAkYbKAIoKAIQIgEoAtgBIAEoAtwBQQJ0akEANgIAIAAoAhBBAToA8AEgABBjKAIQQQE6APABC4ABAQJ/QcABIQMgACECA0AgAigCECADaigCACICBEBBuAEhAyABIAJHDQELCyACBEAgASgCECICKAK8ASEBIAIoArgBIgIEQCACKAIQIAE2ArwBCyABIAAgARsoAhBBuAFBwAEgARtqIAI2AgAPC0GcrQNBjsMBQb0BQdOmARAAAAsJAEEBIAAQ1QILYQEEfyAAKAIEIQQCQANAIAIgBEYNASACQQJ0IAJBAWohAiAAKAIAIgVqIgMoAgAgAUcNAAsgACAEQQFrIgE2AgQgAyAFIAFBAnQiAWooAgA2AgAgACgCACABakEANgIACwsgAQF/QRAQjwMiAyACNgIIIAMgATYCBCADIAA2AgAgAwsSACAAIAFBuyRBLEGqwgEQyAELKwEBfyAAKAIIIgFFBEBBqacDQarCAUGACUH9+wAQAAALIAAgAUEBaxDHCAsrAQF/IAAoAggiAUUEQEHjpgNBqsIBQc8CQZH7ABAAAAsgACABQQFrEK0PCx8AIABFBEBBidoBQcDEAUGTBkHsjwEQAAALIAAoAggLKAAgAEEFTwRAQZ/WAUHbwwFB7QNB5DoQAAALIABBAnRB6M4IaigCAAsXACAAKAIAIgAgASgCACIBSiAAIAFIawu0AgEGfyMAQRBrIgckAAJAIAAgASACEL0DRQRAIAAoAgQgAUEYbGoiACEBAkAgACgCECIGIAAoAhQiAEcEQCABKAIIIQMgASgCDCEEDAELIAZBAXRBASAGGyIAQf////8DSwRAQcQAIQEMAwsgASgCCCAAQQJ0EDoiA0UEQEEwIQEMAwsgAyABKAIUIgVBAnRqQQAgACAFa0ECdBAzGiAFIAEoAhAiBiABKAIMIgRqSQRAIARBAnQhCCADIAAgBSAEayIFayIEQQJ0aiADIAhqIAVBAnQQUxogASAENgIMCyABIAA2AhQgASADNgIICyADIAQgBmogAHBBAnRqIAI2AgAgASABKAIQQQFqNgIQCyAHQRBqJAAPCyAHIAEQeDYCAEG4/AgoAgBB2ooEIAcQHhoQKAALFAAgACABQQJBmilBEUGuhAEQogILngECAn8BfgJAIAEgAkGABCABKAIAEQQAIgVFBEAgACgCECAAKAIAIgVBKGxqIgYgBTYCICAAIAVBAWo2AgAgBiEAIANFDQEgAyAAKAIgQQV0aiIFIAIpAwA3AwggAikDCCEHIAUgADYCACAFIAc3AxAgACAEOgAkIAEgBUEBIAEoAgARBAAaCyAFKAIADwtBgzJB5sUBQagCQdkcEAAAC8sDAgZ8A38jAEEQayIMJAADQAJAAkACQAJAAkAgBCACEDsiCygCAEEBaw4DAgEAAwsgCygCGCAMQRBqJAAPC0EkIQIgACsACCIFIAsrABAiB0RIr7ya8td6PqAiCGQNAiAFIAdESK+8mvLXer6gIgljRSAAKwAAIgogCysACCIGZHENAkEgIQIgBSAHoZlESK+8mvLXej5lRSAKIAahmURIr7ya8td6PmVFcg0CQSQhAiABKwAIIgUgCGQNAkEgQSRBICABKwAAIAZkGyAFIAljGyECDAILIAArAAAhBgJAAkAgACsACCIFIAMgCygCBCINQThsaiICKwAIoZlESK+8mvLXej5lBEAgBiACKwAAoZlESK+8mvLXej5lDQELIAUgAisAGKGZREivvJry13o+ZUUNASAGIAIrABChmURIr7ya8td6PmVFDQELIAUgASsDCKGZREivvJry13o+ZQRAQSBBJCABKwMAIAZjGyECDAMLQSBBJCANIAMgARDdBBshAgwCC0EgQSQgDSADIAAQ3QQbIQIMAQsgDEGzAjYCBCAMQcvHATYCAEG4/AgoAgBB98gEIAwQHhoQbAALIAIgC2ooAgAhAgwACwALQwACQCAAECcEQCAAECRBD0YNAQsgABDyDwsCQCAAECcEQCAAQQA6AA8MAQsgAEEANgIECyAAECcEfyAABSAAKAIACwu3DQIIfwN8IwBBwAJrIgQkAAJAIAAQNyIJIAAoAgBBA3EiCkEAEPADIgVFDQADQCAFRQ0BAkAgACAFEEEiA0UNACADLQAARQRAIAUoAghBrfYAEE1FDQELIAFBkPYEEBoaIAEgAigCABBAIAUoAgggAiABEL4CIAFB8tYDEBoaAkAgAi0ABUEBRw0AAkAgBSgCCCIDQZfMARBNDQAgA0GHzAEQTQ0AIANBj8wBEE0NACADQe3LARBNDQAgA0H+ywEQTQ0AIANB9csBEE1FDQELIAAgBRBBIgNFDQEgAy0AAEUNASADQQAQ/woiCEUEQCAEIAM2AgBBqYIFIAQQKwwCCyABQeOKBRAaGiACIAIoAgAiA0EBajYCACABIAMQQCABQZvXBBAaGkEAIQcDQCAIKAIAIAdNBEAgAiACKAIAQQFrNgIAIAFB44oFEBoaIAEgAigCABBAIAFB4s8BEBoaIAgQ9AoMAwsgBwRAIAFBkPYEEBoaCyAIKAIIIQMgAiACKAIAIgZBAWo2AgAgASAGEEAgAUHO4gMQGhogASACKAIAEEACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAyAHQdAAbGoiAygCACIGDhAKCgAAAQECAwQEBgcLBQUICQsgBEHQAEHwACAGQQJGGzYCUCABQcb1BCAEQdAAahAdIAEgAigCABBAIAEgA0EIahDiCAwKCyAEQcIAQeIAIAZBBEYbNgJgIAFBxvUEIARB4ABqEB0gASACKAIAEEAgASADQQhqEOIIDAkLIAFB+/UEQQAQHSABIAIoAgAQQCABIANBCGoQ4ggMCAsgAUHj9QRBABAdIAEgAigCABBAIAMrAwghCyAEIAMrAxA5A5gBIAQgCzkDkAEgAUHO8wQgBEGQAWoQHSABIAIoAgAQQCAEQeMAQfIAIAMoAhgiBkEBRhtB7AAgBhs2AoABIAFB0/UEIARBgAFqEB0gASACKAIAEEAgBCADKwMgOQNwIAFBkvMEIARB8ABqEB0gASACKAIAEEAgAUG21gMQGhogAygCKCACIAEQvgIgAUEKEGcMBwsgBEHDAEHjACAGQQhGGzYCoAEgAUHG9QQgBEGgAWoQHSABIAIoAgAQQCABQfr0BEEAEB0gASACKAIAEEAgAUHP1gMQGhogAygCCCACIAEQvgIgAUEKEGcMBgsgBEHDAEHjACAGQQ1GGzYCkAIgAUHG9QQgBEGQAmoQHSABIAIoAgAQQAJAAkACQCADKAIIDgIAAQILIAFB+vQEQQAQHSABIAIoAgAQQCABQc/WAxAaGiADKAIQIAIgARC+AiABQQoQZwwHCyABQdT0BEEAEB0gASACKAIAEEAgASACKAIAEEAgAysDECELIAQgAysDGDkDiAIgBCALOQOAAiABQfrzBCAEQYACahAdIAEgAigCABBAIAMrAyAhCyAEIAMrAyg5A/gBIAQgCzkD8AEgAUHk8wQgBEHwAWoQHSABIAIoAgAQQCABIAMoAjAgAygCNCACEPUPDAYLIAFB5/QEQQAQHSABIAIoAgAQQCABIAIoAgAQQCADKwMQIQsgAysDGCEMIAQgAysDIDkD4AEgBCAMOQPYASAEIAs5A9ABIAFBrPQEIARB0AFqEB0gASACKAIAEEAgAysDKCELIAMrAzAhDCAEIAMrAzg5A8ABIAQgDDkDuAEgBCALOQOwASABQZD0BCAEQbABahAdIAEgAigCABBAIAEgAygCQCADKAJEIAIQ9Q8MBQsgAUGH9gRBABAdIAEgAigCABBAIAQgAysDCDkDoAIgAUGj8wQgBEGgAmoQHSABIAIoAgAQQCABQezWAxAaGiADKAIQIAIgARC+AiABQQoQZwwECyABQe/1BEEAEB0gASACKAIAEEAgAUHi1gMQGhogAygCCCACIAEQvgIgAUEKEGcMAwsgAUHI9ARBABAdIAEgAigCABBAIAQgAygCCDYCsAIgAUGL0QQgBEGwAmoQHQwCCyAEQbICNgIUIARB48MBNgIQQbj8CCgCAEH3yAQgBEEQahAeGhBsAAsgBEHlAEHFACAGGzYCQCABQcb1BCAEQUBrEB0gASACKAIAEEAgAysDCCELIAMrAxAhDCADKwMYIQ0gBCADKwMgOQM4IAQgDTkDMCAEIAw5AyggBCALOQMgIAFB5tMEIARBIGoQHQsgAiACKAIAQQFrIgM2AgAgASADEEAgAUGvCBAaGiAHQQFqIQcMAAsACyAAIAUQQSACIAEQvgILIAkgCiAFEPADIQUMAAsACyAEQcACaiQAC/wCAQN/IwBBQGoiAyQAAkAgAZlE/Knx0k1iQD9jBEAgAEGt6AEQGhoMAQsgAUQAAAAAAADwv6CZRPyp8dJNYkA/YwRAIABBiegBEBoaDAELIAMgATkDMCAAQeHnASADQTBqEB0LIAIoAgAhBAJAAkACQAJAAkAgAigCICICQQFrDgQBAgIAAgsgBEHJywgQSQ0CIABBsMsIEBoaDAMLIAMgBEH/AXE2AiAgAyAEQRB2Qf8BcTYCKCADIARBCHZB/wFxNgIkIABB5RMgA0EgahAdDAILIANBoAE2AgQgA0G2xQE2AgBBuPwIKAIAQffIBCADEB4aEGwACyAAIAQQGhoLIABBi+cBEBoaAkACQCACQQFHDQAgBEEYdiIFQf8BRg0AIAMgBbhEAAAAAADgb0CjOQMQIABBg48BIANBEGoQHQwBCwJAIAJBBEcNACAEQcnLCBBJDQAgAEG/owMQGhoMAQsgAEHmpAMQGhoLIABB6N0EEBoaIANBQGskAAuxAgIEfwJ8IwBB8ABrIgEkAEHcggtB3IILKAIAIgRBAWo2AgACfCAAKAIQIgMoAogBIgJFBEBEAAAAAAAASUAhBUQAAAAAAABJQAwBCyACt0QYLURU+yEJQKJEAAAAAACAZkCjIgUQREQAAAAAAADwPyAFEFihRAAAAAAAAElAohAxIQVEAAAAAAAA8D+gRAAAAAAAAElAohAxCyEGIABB4M4DEBoaIAMoAtwBIgIEQCAAIAIQjAEgAEHfABBnCyABIAU5A2AgASAGOQNYIAEgBDYCUCAAQfXeBCABQdAAahAdIAFBKGoiAiADQThqQSgQHxogAEQAAAAAAAAAACACEJ4GIABEAAAAAAAA8D8gASADQeAAakEoEB8iARCeBiAAQe7bBBAaGiABQfAAaiQAIAQLgAMCBH8BfCMAQYABayIDJABB2IILQdiCCygCACIFQQFqNgIAIAAoAhAiBCgCiAEhBiADQgA3A3ggA0IANwNwIANCADcDaCADQgA3A2AgASADQeAAaiACIAa3RBgtRFT7IQlAokQAAAAAAIBmQKNBABDyBiAAQcTOAxAaGiAEKALcASIBBEAgACABEIwBIABB3wAQZwsgAyAFNgJQIABBi9cDIANB0ABqEB0gAEGozwMQGhogACADKwNgEH0gAEGhzwMQGhogACADKwNoEH0gAEGazwMQGhogACADKwNwEH0gAEGTzwMQGhogACADKwN4EH0gAEGy3wQQGhogBCsDkAEhByADQShqIgEgBEE4akEoEB8aIAAgB0T8qfHSTWJQv6BEAAAAAAAAAAAgB0QAAAAAAAAAAGQbIAEQngYgACAEKwOQASIHRAAAAAAAAPA/IAdEAAAAAAAAAABkGyADIARB4ABqQSgQHyIBEJ4GIABB09sEEBoaIAFBgAFqJAAgBQsLACAAQee4BBAaGguoCAICfwR8IwBBsAJrIggkAAJAAkAgAkUgA0VyDQAgACgCQCIJIARFckUEQCAELQAARQ0BAkACQAJAAkAgAQ4DAAECAwsgAisDACEKIAIrAxghCyACKwMQIQwgCCACKwMIOQMwIAggDDkDKCAIIAs5AyAgCCAKOQMYIAggBDYCECAAQd+vBCAIQRBqEB0MBAsgAisDECELIAIrAwAhCiAIIAIrAwg5A1AgCCALIAqhOQNYIAggCjkDSCAIIAQ2AkAgAEHFrwQgCEFAaxAdDAMLIAggBDYCcCAAQcQ5IAhB8ABqEB1BACEEA0AgAyAERgRAIABB44oFEBoaDAQFIAIgBEEEdGoiASsDACEKIAggASsDCDkDaCAIIAo5A2AgAEGxjgEgCEHgAGoQHSAEQQFqIQQMAQsACwALIAhBOzYCBCAIQcfDATYCAEG4/AgoAgBB98gEIAgQHhoQbAALIARFIAlBAUdyRQRAIAQtAABFDQEgAUUEQCACKwMAIQogAisDGCELIAIrAxAhDCACKwMIIQ0gCCAFNgKkASAIIAQ2AqABIAggDTkDmAEgCCAMOQOQASAIIAs5A4gBIAggCjkDgAEgAEGj/AMgCEGAAWoQHQwCCyAIQcYANgK0ASAIQcfDATYCsAFBuPwIKAIAQffIBCAIQbABahAeGhBsAAsgCUF+cUECRw0AIAFBA08NASAAIAFBAnRBlMsIaigCABAaGgJAIAdFDQAgBy0AAEUNACAAQYjPAxAaGiAAIAcQ5gggAEHg0AMQGhoLAkAgBEUNACAELQAARQ0AIABBkM4DEBoaIAAgBBDmCCAAQeDQAxAaGgsCQCAGRQ0AIAYtAABFDQAgAEGizQMQGhogACAGEIwBIABB4NADEBoaCwJAIAVFDQAgBS0AAEUNACAAQbDOAxAaGiAAIAUQjAEgAEHg0AMQGhoLIABB2tADEBoaIABBts0DEBoaIAIrAwAhCgJAAkACQAJAIAFBAWsOAgIBAAsgAisDGCELIAIrAxAhDCAIIAIrAwg5A/gBIAggDDkD8AEgCCALOQPoASAIIAo5A+ABIABBnY4BIAhB4AFqEB0MAgsgCCACKwMIOQOYAiAIIAo5A5ACIABBso4BIAhBkAJqEB1BASEEA0AgAyAERg0CIAIgBEEEdGoiASsDACEKIAggASsDCDkDiAIgCCAKOQOAAiAAQaaOASAIQYACahAdIARBAWohBAwACwALIAIrAwghCyACKwMQIQwgCCAKOQPAASAIIAwgCqE5A9ABIAggCzkDyAEgAEGijgEgCEHAAWoQHQsgACgCQEEDRgRAIABB6d0EEBoaDAELIABBrt8EEBoaCyAIQbACaiQADwsgCEHVADYCpAIgCEHHwwE2AqACQbj8CCgCAEH3yAQgCEGgAmoQHhoQbAALCwBBwOoKQQI2AgALPQEBfyMAQRBrIgMkACADIAE5AwAgAEHUjQEgAxCUASAAEKgGIABBIBDcASAAQeaKBSACEOoIIANBEGokAAsTACAAQd7UAyAAKAIQQThqEOsIC/0CAgV/AXwjAEEwayIBJAAgAUIANwMoIAFCADcDIAJAIAAoAhAiAisDoAEiBiACKAIMQQN0QYCsCmoiAysDAKGZRPyp8dJNYkA/ZgR/IAMgBjkDACABQSBqIgJB6LQDEPQBIAEgACgCECsDoAE5AxAgAkGNjgEgAUEQahCUASACEKgGIAJBKRDcASAAQczUAyACEMQBEMQDIAAoAhAFIAILKAKoASIERQ0AA0AgBCgCACIDRQ0BIARBBGohBCADQf60ARBlDQAgA0HWrQEQZQ0AIANB0f4AEGUNACABQSBqIAMQ9AEDQCADLQAAIANBAWoiAiEDDQALIAItAAAEQCABQSBqQSgQ3AFB5ooFIQMDQCACLQAABEAgASACNgIEIAEgAzYCACABQSBqQZU4IAEQlAEDQCACLQAAIAJBAWohAg0AC0GFpQMhAwwBBSABQSBqQSkQ3AELCwsgAEHM1AMgAUEgahDEARDEAwwACwALIAFBIGoQXyABQTBqJAALawECfyMAQRBrIgMkACADQgA3AwggA0IANwMAA0ACQCACLQAAIgRB3ABHBEAgBA0BIAAgASADEMQBEHIgAxBfIANBEGokAA8LIANB3AAQ3AEgAi0AACEECyADIATAENwBIAJBAWohAgwACwALkgIBBX8gABCjBSEDIAAQJCEBAkACQAJAA0AgASICRQ0BIAMgAUEBayIBai0AAEEuRw0ACyAAECQhAQNAIAFBAWshBSABIAJHBEAgAyAFai0AAEEwRw0CCwJAIAAQJwRAIAAtAA8iBEUNBCAAIARBAWs6AA8MAQsgACAAKAIEQQFrNgIECyABIAJHIAUhAQ0ACyAAECQiAUECSQ0AIAEgA2oiAUECayICLQAAQS1HDQAgAUEBay0AAEEwRw0AIAJBMDoAACAAECcEQCAALQAPIgFFDQMgACABQQFrOgAPDwsgACAAKAIEQQFrNgIECw8LQYOVA0HJhAFBgANBuzAQAAALQYOVA0HJhAFBlgNBuzAQAAALxwEBA38jAEEQayICJAAgAUFQQQAgASgCAEEDcUECRxtqIgFBUEEAIAEoAgBBA3EiA0ECRxtqKAIoIQQgAUEwQQAgA0EDRxtqKAIoIQMgAiABKQMINwMIIAIgASkDADcDAAJAIAAgAyAEIAIQ2wJFDQAgABA3IABGBEAgAC0AGEEgcQRAIAEQmAwLIAAgARD/ByABEOQHIABBAiABKQMIEOAGCyAAIAFBD0EAQQAQzAMNACAAEDcgAEYEQCABEBgLCyACQRBqJAALGgAgACABELIBIgEgAhDFAyAAIAFBABCOARoLRQAgACABQZzYAyACKwMARAAAAAAAAFJAoxCUAyAAIAFBnNgDIAMgAisDCCIDoSADQejhCi0AABtEAAAAAAAAUkCjEJQDC30BA38jAEEwayICJAAgABAgIQMgABAvIQQCQAJAIAMEQEF/IQAgBCABIAMQrgZBf0cNAQwCCyACIAApAwg3AwAgAkEQaiIDQR5ButYBIAIQoQEaQX8hACABIAMgBCgCTCgCBCgCBBEAAEF/Rg0BC0EAIQALIAJBMGokACAAC/0DAQV/IARFBEAgA0EAEOoCIQcLIANBAEGAASADKAIAEQQAIQYCQAJAA0AgBgRAAkACQCAGKAIMIgUEQCAFLQAADQELIAYtABYNACAHRQ0BIAcgBkEEIAcoAgARBAAiBUUNBSAFKAIMIgkEQCAJLQAADQELIAUtABYNAQsCQCAIRQRAQX8hBSAAIAEQ2gJBf0YNBSABIAIgACgCTCgCBCgCBBEAAEF/Rg0FIAFB+88BIAAoAkwoAgQoAgQRAABBf0YNBUH06ApB9OgKKAIAQQFqNgIADAELQX8hBSABQZD2BCAAKAJMKAIEKAIEEQAAQX9GDQQgACABENoCQX9GDQQLIAAgASAGKAIIQQEQvwJBf0YNAyABQb/mASAAKAJMKAIEKAIEEQAAQX9GDQMgACABIAYoAgxBARC/AkF/Rg0DIAhBAWohCAsgAyAGQQggAygCABEEACEGDAELCwJAIAhBAEoEQEF/IQVB9OgKQfToCigCAEEBazYCACAIQQFHBEAgAUHjigUgACgCTCgCBCgCBBEAAEF/Rg0DIAAgARDaAkF/Rg0DC0F/QQAgAUHh4AQgACgCTCgCBCgCBBEAAEF/RiIAGyEFIAQNAiAARQ0BDAILQQAhBSAEDQELIAMgBxDqAhpBACEFCyAFDwtBt/EAQZbGAUGwAkHuJhAAAAseACAAIAEgACACELIBIgJBARC/AiAAIAJBABCOARoLpSECCX8DfCMAQdACayIGJAACfyAAIAIQjQpB5wdGBEAgBiAAQQEgAhCvBDYCBCAGIAI2AgBBnfoDIAYQNkF/DAELIwBBEGsiCSQAIAFBrCtBmAJBARA1GiABKAIQIAA2ApABIAEQNyABRwRAIAEQN0GsK0GYAkEBEDUaIAEQNygCECAANgKQAQsCfwJAAkACQCABQb8ZECYiAkUNACAAQQA2AqQBIAAgAhCNCkHnB0cNACAJIABBASACEK8ENgIEIAkgAjYCAEGd+gMgCRA2DAELIAAoAqQBIgoNAQtBfwwBC0EBENwCIAAoAqwBKAIAQQFxIQsjAEFAaiICJABBAUHgABAZIQAgASgCECAANgIIIAFB3ugAECYiAARAIAJCADcDOCACQgA3AzAgARCDAiEDIAIgADYCJCACQZeAAUHogAEgAxs2AiAgAkEwaiEAIwBBMGsiBCQAIAQgAkEgaiIDNgIMIAQgAzYCLCAEIAM2AhACQAJAAkACQAJAAkBBAEEAQacIIAMQYiIHQQBIDQBBASEDIAdBAWohBQJAIAcgABBGIAAQJGsiCE8EQCAAECdBACAFIAhrIghBAUYbDQEgACAIEIsKC0EAIQMLIARCADcDGCAEQgA3AxAgAyAHQRBPcQ0BIARBEGohCCAHIAMEfyAIBSAAEHQLIAVBpwggBCgCLBBiIgVHIAVBAE5xDQIgBUEATA0AIAAQJwRAIAVBgAJPDQQgAwRAIAAQdCAEQRBqIAUQHxoLIAAgAC0ADyAFajoADyAAECRBEEkNAUG8wANByYQBQdgBQekfEAAACyADDQQgACAAKAIEIAVqNgIECyAEQTBqJAAMBAtBn68DQcmEAUHLAUHpHxAAAAtB+KIDQcmEAUHQAUHpHxAAAAtB39QBQcmEAUHTAUHpHxAAAAtB46QBQcmEAUHaAUHpHxAAAAsCQCAAECcEQCAAECRBD0YNAQsgABAkIAAQRk8EQCAAQQEQiwoLIAAQJCEDIAAQJwRAIAAgA2pBADoAACAAIAAtAA9BAWo6AA8gABAkQRBJDQFBvMADQcmEAUGdAkGUugEQAAALIAAoAgAgA2pBADoAACAAIAAoAgRBAWo2AgQLAkAgABAnBEAgAEEAOgAPDAELIABBADYCBAsgASAAECcEfyAABSAAKAIACxDEDhogABBfCwJAIAFB6P4AECYiAEUEQEHY3gEQtAQiAEUNAQsCQAJAQeTeAUE9EMEFIgNB5N4BRwRAIANB5N4BayIDQeTeAWotAABFDQELQeCPC0EcNgIADAELIAMgABA8IgVqQQJqEEgiBEUNACAEQeTeASADEB8aIAMgBGoiB0E9OgAAIAdBAWogACAFQQFqEB8aAkACQAJAAkBB5I8LKAIAIgBFBEBBACEADAELIAAoAgAiBQ0BC0EAIQMMAQsgA0EBaiEHQQAhAwNAIAQgBSAHEOoBRQRAIAAoAgAgACAENgIAIAQQkwwMAwsgA0EBaiEDIAAoAgQhBSAAQQRqIQAgBQ0AC0HkjwsoAgAhAAsgA0ECdCIHQQhqIQUCQAJAIABB0JILKAIAIghGBEAgCCAFEDoiAA0BDAILIAUQSCIARQ0BIAMEQCAAQeSPCygCACAHEB8aC0HQkgsoAgAQGAsgACADQQJ0aiIDIAQ2AgAgA0EANgIEQeSPCyAANgIAQdCSCyAANgIAIAQEQEEAIAQQkwwLDAELIAQQGAsLC0EBIQACQCABIAFBAEGCIkEAECFB0/cBEJEBIgNB6JEDEC5FDQAgA0Gu9QIQLkUNACADQZf2AhAuRQ0AIANBhZIDEC5FDQAgA0HwkQMQLkUNACADQfuRAxAuRQ0AIANBu5oDEC5FDQBBAiEAIANBtqICEC5FDQAgA0HDkQIQLkUNAEEAIQAgA0HT9wEQLkUNACADQfLuARAuRQ0AIAIgAzYCEEHd4gQgAkEQahArCyABKAIQIAA6AHMCQEGQ4QooAgANAEGI4QogAUGE/wAQJiIANgIAIAANAEGI4QpBhOEKKAIANgIACyABIAFBAEHN8QBBABAhRAAAAAAAAAAARAAAAAAAAAAAEEshDCABKAIQKAIIIAw5AwACf0EAIAFBhD0QJiIARQ0AGkEBIABBn9cBEE0NABpBAiAAQcjWARBNDQAaQQNBACAAQYbZARBNGwshACABKAIQIABBBWwgAEECdCALGzYCdCACIAEgAUEAQYLhAEEAECFEAAAAAAAA0D9EexSuR+F6lD8QSyIMOQMwIAEoAhACfyAMRAAAAAAAAFJAoiIMRAAAAAAAAOA/RAAAAAAAAOC/IAxEAAAAAAAAAABmG6AiDJlEAAAAAAAA4EFjBEAgDKoMAQtBgICAgHgLNgL4AQJAIAEgAUEAQfrgAEEAECFBABB8IgMEQCACIAJBMGo2AgACQAJAIANBtowBIAIQT0UEQEQAAAAAAADgPyEMDAELRHsUrkfhepQ/IQwgAisDMCINRHsUrkfhepQ/Y0UNAQsgAiAMOQMwIAwhDQsgASgCECEAIANBxQ4QwAVFDQEgAEEBOgCUAgwBCyACQoCAgICAgIDwPzcDMCABKAIQIQBEAAAAAAAA4D8hDQsgAAJ/IA1EAAAAAAAAUkCiIgxEAAAAAAAA4D9EAAAAAAAA4L8gDEQAAAAAAAAAAGYboCIMmUQAAAAAAADgQWMEQCAMqgwBC0GAgICAeAs2AvwBIAEgAUEAQdkzQQAQIUEAQQAQZCEAIAEoAhBB/wEgACAAQf8BThs6APEBIAEgAUEAQc80QQAQIUEAEHxBsKEKQcChChD3BiEAIAEoAhAgADYC9AECQCABQaXkABAmIgNFBEAgASgCECEADAELIANBueMAEE0EQCABKAIQIgAoAghBBDYCVAwBCyADQakuEE0EQCABKAIQIgAoAghBAzYCVAwBCyADQaetARBNBEAgASgCECIAKAIIQQU2AlQMAQsgA0GT9AAQTQRAIAEoAhAiACgCCEECNgJUDAELIAEoAhAhACADELECIgxEAAAAAAAAAABkRQ0AIAAoAggiAyAMOQMQIANBATYCVAsgAUHIkAEgACgCCEFAaxCMCiEAIAEoAhAoAggiAyAAOgBQIAFB9KQBIANBMGoQjAoaIAFB6T0QJhBqIQAgASgCECgCCCAAOgBSAkACfyABQeqZARAmIgAEQCAAEJECQdoARgwBCyABQfLoABAmIgAEQCAALQAAQd8BcUHMAEYMAQsgAUHOnQEQJiIARQ0BIAAQagshACABKAIQKAIIIAA6AFELQbjhCiABQd/5ABAmQZChCkGgoQoQ9wY2AgBBvOEKIAFB8ZkBECYQajoAAEHQ4QpBADYCAEHU4QpBADYCACABKAIQKAIIQgA3AxgCQAJAIAFBw/wAECYiAARAIAAtAAANAQsgAUHw5wAQJiIARQ0BIAAtAABFDQELIAEoAhAoAgggABCxAjkDGAsgARCBBUHY4QpCm9LdmoT3hc/HADcDAEHs4QogAUEAQbOHAUEAECE2AgBB+OEKIAFBAEHnoQFBABAhNgIAQfzhCiABQQBBxeoAQQAQITYCAEGA4gogAUEBQdkhQQAQITYCAEGE4gogAUEBQdj+AEEAECE2AgBBiOIKIAFBAUHInQFBABAhNgIAQYziCiABQQFB0jxBABAhNgIAQZDiCiABQQFBxjxBABAhNgIAQaziCiABQQFB3KABQQAQITYCAEGU4gogAUEBQZyPAUEAECE2AgBBmOIKIAFBAUHanwFBABAhNgIAQZziCiABQQFBszxBABAhNgIAQaDiCiABQQFBrfYAQQAQISIANgIAIABFBEBBoOIKIAFBAUGt9gBBo9gBECE2AgALQaTiCiABQQFBgfYAQQAQITYCAEGw4gogAUEBQdkzQQAQITYCAEHs4gogAUEBQcH+AEEAECE2AgBBvOIKIAFBAUGzhwFBABAhNgIAQbTiCiABQQFB+jZBABAhNgIAQbjiCiABQQFBuTVBABAhNgIAQcTiCiABQQFBkhdBABAhNgIAQcDiCiABQQFB8ugAQQAQITYCAEHI4gogAUEBQfvnAEEAECE2AgBBzOIKIAFBAUGwjwFBABAhNgIAQdDiCiABQQFBq6MBQQAQITYCAEHU4gogAUEBQdowQQAQITYCAEGo4gogAUEBQfUOQQAQITYCAEHY4gogAUEBQZQ9QQAQITYCAEHc4gogAUEBQa7eAEEAECE2AgBB4OIKIAFBAUHKIEEAECE2AgBB5OIKIAFBAUGHN0EAECE2AgBB6OIKIAFBAUH5CEEAECE2AgBB8OIKIAFBAUHnoQFBABAhNgIAQfTiCiABQQJB0SFBABAhNgIAQfziCiABQQJB0jxBABAhNgIAQYDjCiABQQJBxjxBABAhNgIAQYTjCiABQQJBnI8BQQAQITYCAEGI4wogAUECQdqfAUEAECE2AgBBjOMKIAFBAkGzPEEAECE2AgBBkOMKIAFBAkGt9gBBABAhNgIAQZTjCiABQQJBgfYAQQAQITYCAEG44wogAUECQbIoQQAQITYCAEGY4wogAUECQZA9QQAQITYCAEHE4wogAUECQZL2AEEAECE2AgBByOMKIAFBAkGI9gBBABAhNgIAQczjCiABQQJBl48BQQAQITYCAEHQ4wogAUECQdWfAUEAECE2AgBB1OMKIAFBAkGuPEEAECE2AgBB2OMKIAFBAkHFqAFBABAhNgIAQdzjCiABQQJBiaIBQQAQITYCAEH44gogAUECQYvsAEEAECE2AgBBpOMKIAFBAkHZM0EAECE2AgBBnOMKIAFBAkHcoAFBABAhNgIAQaDjCiABQQJB/ZkBQQAQITYCAEGo4wogAUECQY2PAUEAECE2AgBBrOMKIAFBAkGYIEEAECE2AgBBsOMKIAFBAkGUPUEAECE2AgBBtOMKIAFBAkHKIEEAECE2AgBB4OMKIAFBAkGe4ABBABAhNgIAQeTjCiABQQJBp+AAQQAQITYCAEHo4wogAUECQcH+AEEAECE2AgBBACEAIwBBIGsiAyQAAkACQCABQdCqARAmIgQEQCAELQAADQELIAFBl8wBECYiBEUNASAELQAARQ0BCyAEQfgAEP8KIgANACADIAEQIDYCEEHbgQQgA0EQahArIAMgBDYCAEHxhQUgAxCCAUEAIQALIANBIGokACABKAIQKAIIIAA2AlgCQCABQcKvARAmIgBFDQAgAC0AAEUNACAAIAEQgwEhACABKAIQKAIIIAA2AlwLIAJBQGskACABKAIQKAIIIQAgARA3KAIQIAA2AggCQCAKKAIAIgBFDQAgASAAEQEAIAooAgQiAEUNACABKAIQIAA2ApQBC0EAENwCQQALIQAgCUEQaiQAQX8gAEF/Rg0AGgJAIAEoAhAiACgCCC0AUUEBRgRAIAArAxghDCAAKwMQIQ0gACsDKCEOIAYgACsDIBAxOQMoIAYgDhAxOQMgIAYgDRAxOQMYIAYgDBAxOQMQIAZB0ABqQYACQbyOASAGQRBqEKEBGgwBCyAAKwMQIQwgACsDGCENIAArAyAhDiAGIAArAygQMTkDSCAGQUBrIA4QMTkDACAGIA0QMTkDOCAGIAwQMTkDMCAGQdAAakGAAkG8jgEgBkEwahChARoLIAFBiMkBIAZB0ABqELUHQQALIAZB0AJqJAALnQUBDX9BAEEBQa32AEGj2AEQIRoQhAkiAEEANgIkIABBoNwKNgIgIABBmQI2AhAgAEHIpgo2AgACQCAAIgIoAiAiBUUNAANAIAUoAgAiAEUNAQJAIAAtAABB5wBHDQAgAEH3DRDABUUNACAFKAIEIQMjAEEQayIHJAAgAygCACEAAkBBAUEMEEciBARAIARBADYCBCAEIAAQZjYCCCAEIAIoAmg2AgAgAiAENgJoIAMoAgQhBgNAQQAhCCAGKAIEIgsEQANAIAsgCEEUbGoiCSgCBCIDBEAgBigCACEAIAkoAgghCiMAQTBrIgEkACADEKoBIgwEQCABQShqIANBOhDVASACIABBAnRqQUBrIQMDQAJAIAMoAgAiAEUNACABQSBqIAAoAgRBOhDVASABIAEpAig3AxggASABKQIgNwMQIAFBGGogAUEQahD8C0EATA0AIAMoAgAhAwwBCwsDQAJAIAMoAgAiAEUNACABQSBqIAAoAgRBOhDVASABIAEpAig3AwggASABKQIgNwMAIAFBCGogARC4BUUNACAKIAMoAgAiACgCCE4NACAAIQMMAQsLQQFBFBAZIgAgAygCADYCACADIAA2AgAgACAJNgIQIAAgBDYCDCAAIAo2AgggACAMNgIECyABQTBqJAAgCEEBaiEIDAELCyAGQQhqIQYMAQsLIAdBEGokAAwBCyAHQQw2AgBBuPwIKAIAQdPzAyAHEB4aECgACwsgBUEIaiEFDAALAAsgAkEAOgAsIAJBAkGjGUEAEOUDIgAEQCACIAAoAhAoAgw2AowBCyACQSM2AoQBIAJBJDYCgAEgAkElNgJ8IAJBfzYCeCACQoCAgICABDcDcCACIAJB8ABqQaz0CSgCABCXATYCiAEgAgviAQEEf0HA5gooAgAiAQRAIAEQmwEaQcDmCkEANgIACyAAKAI4IQEDQCABBEAgASgCBCABEBghAQwBCwsgACgCaCEBA0AgAQRAIAEoAgAgASgCBBAYIAEoAggQGCABEBghAQwBCwsgABCdBCAAKAIoEBggACgCMBAYIAAoAogBEJsBGiAAQUBrIQQDQCADQQVHBEAgBCADQQJ0aigCACEBA0AgAQRAIAEoAgAgASgCBBAYIAEQGCEBDAELCyADQQFqIQMMAQsLIAAoAqwCEBggABAYQZThCigCABpBiOQKKAIAGgsSACAAKAK4ASIABEAgABCPBAsLxwEBBn8jAEEQayIDJAAgAUFQQQAgASgCAEEDcSIEQQJHG2oiBSgCKCEGIAFBMEEAIARBA0cbaiIEKAIoIQcDQAJAIABFDQAgAyABKQMINwMIIAMgASkDADcDACAAIAcgBiADENsCDQAgACAHEOcBIQIgACgCNCACQSBqIAUQ4wQgACgCOCACQRhqIAUQ4wQgACAGEOcBIQIgACgCNCACQRxqIAQQ4wQgACgCOCACQRRqIAQQ4wQgACgCRCEADAELCyADQRBqJAALuQEBA38jAEEwayIDJAACQCACKAIAIgRFDQAgBC0AAEUNACAAKAI8IQQgACgCECIFBEAgBSgCmAFFDQELAkAgAC0AmQFBIHEEQCADIAEpAwg3AyggAyABKQMANwMgDAELIAMgASkDCDcDGCADIAEpAwA3AxAgA0EgaiAAIANBEGoQuAYLIARFDQAgBCgCWCIBRQ0AIAMgAykDKDcDCCADIAMpAyA3AwAgACADIAIgAREFAAsgA0EwaiQACyIBAX8CQCAAKAI8IgFFDQAgASgCMCIBRQ0AIAAgAREBAAsLIgEBfwJAIAAoAjwiAUUNACABKAIsIgFFDQAgACABEQEACwsiAQF/AkAgACgCPCIBRQ0AIAEoAigiAUUNACAAIAERAQALC3sBBnwgASsDkAQhByABKwOIBCEIIAErA+ACIQQgASsDgAQhAyABKwP4AyEFAnwgASgC6AIEQCAFIAIrAwCgIQYgAyACKwMIoJoMAQsgAyACKwMIoCEGIAUgAisDAKALIQMgACAEIAeiIAaiOQMIIAAgBCAIoiADojkDAAuBAQEBfwJAIAFBqfQAEE0NACABIQMDQCADLAAAIQIgA0EBaiEDIAJBOmtBdUsNAAsgAkUEQCABEJECDwtBfyECIAAoAqwCRQ0AQQEhAwN/IAMgACgCsAJKDQEgASAAKAKsAiADQQJ0aigCABBNBH8gAwUgA0EBaiEDDAELCyECCyACC6MzAwx/CXwBfiMAQfAEayIDJABBjOEKLQAABEBBsOYKEK4BCwJAAkAgAUGsK0EAQQEQNQRAIAEoAhAoAggNAQtBlocFQQAQNkF/IQJBjOEKLQAARQ0BQbj8CCgCACIAEO4BIAMQ1gE3A7AEIANBsARqEOwBIgQoAhQhBSAEKAIQIQYgBCgCDCEHIAQoAgghCCADIAQoAgA2AiggAyAINgIkIAMgBzYCICADQbMeNgIUIANB58EBNgIQIAMgBkEBajYCHCADIAVB7A5qNgIYIABBidYDIANBEGoQHhogARAgIQEgAxCQATkDCCADIAE2AgAgAEHJowMgAxAyQQogABCsARogABDtAQwBCyABEBshBAJAA0AgBARAIAQoAhAiAiACKwMQIg4gAisDWKE5AzAgAiAOIAIrA2CgOQNAIAIgAisDGCIOIAIrA1BEAAAAAAAA4D+iIhChOQM4IAIgDiAQoDkDSCABIAQQLSEHA0AgBwRAIAcoAhAoAggiBQRAIAUoAgRFDQUgA0GwBGogBSgCACICQTAQHxogA0HgA2oiBiACQTAQHxogA0GQBGogBhCNCSADKwOoBCEOIAMrA6AEIRAgAysDmAQhESADKwOQBCESQQAhAgNAIAUoAgQgAksEQCACBEAgA0GwBGogBSgCACACQTBsaiIGQTAQHxogA0GwA2oiCCAGQTAQHxogA0GQBGogCBCNCSADKwOQBCEPIAMrA5gEIRQgAysDoAQhEyAOIAMrA6gEECIhDiAQIBMQIiEQIBEgFBAqIREgEiAPECohEgsgAygCuAQEQCADIAMpA8gENwOoAyADIAMpA8AENwOgAyADIAMoArAEIgYpAwg3A5gDIAMgBikDADcDkAMgA0GQBGogA0GgA2ogA0GQA2oQ0gMgAysDkAQhDyADKwOYBCEUIAMrA6AEIRMgDiADKwOoBBAiIQ4gECATECIhECARIBQQKiERIBIgDxAqIRILIAMoArwEBEAgAyADKQPYBDcDiAMgAyADKQPQBDcDgAMgAyADKAKwBCADKAK0BEEEdGpBEGsiBikDCDcD+AIgAyAGKQMANwPwAiADQZAEaiADQYADaiADQfACahDSAyADKwOQBCEPIAMrA5gEIRQgAysDoAQhEyAOIAMrA6gEECIhDiAQIBMQIiEQIBEgFBAqIREgEiAPECohEgsgAkEBaiECDAELCyAFIA45AyAgBSAQOQMYIAUgETkDECAFIBI5AwgLIAEgBxAwIQcMAQsLIAEgBBAcIQQMAQsLIABBADoAnQIgACABNgKgAQJAIAFBxeoAECYiAkUNACADIANBkARqNgLkAiADIANBsARqNgLgAiACQaKMASADQeACahBPIgJBAEwNACAAIAMrA7AERAAAAAAAAFJAoiIOOQPAASAAIA45A8gBIAJBAUcEQCAAIAMrA5AERAAAAAAAAFJAojkDyAELIABBAToAnQILIABBADoAnAICQCABQcC4ARAmIgJFDQAgAyADQZAEajYC1AIgAyADQbAEajYC0AIgAkGijAEgA0HQAmoQTyICQQBMDQAgACADKwOwBEQAAAAAAABSQKIiDjkD0AEgACAOOQPYASACQQFHBEAgACADKwOQBEQAAAAAAABSQKI5A9gBCyAAQQE6AJwCCyAAQQA6AJ4CIAAgASgCECgCCCICKQMwNwPgASAAIAIpAzg3A+gBAkAgASgCECgCCCICKwMwRPyp8dJNYlA/ZEUNACACKwM4RPyp8dJNYlA/ZEUNACAAQQE6AJ4CCyACLQBRIQIgAEGe3QE2ArwBIABB2gBBACACGzYCmAICQCABQYw9ECYiAkUNACACLQAARQ0AIAAgAjYCvAELIAAgASgCECICKQMQNwP4ASAAIAIpAyg3A5ACIAAgAikDIDcDiAIgACACKQMYNwOAAkHw4QogAUEAQbk1QQAQITYCAEH04QogAUEAQcH+AEEAECE2AgAgAEEAQZjiCigCAEHY7wAQkQE2ArgCQQBBlOIKKAIARAAAAAAAACxARAAAAAAAAPA/EEshDiAAQbymCjYCyAIgACAOOQPAAiAAIAEQIDYCtAEgACgCqAIQGCAAQQA2AqgCIAAoAqwCEBggAEEANgKsAiAAKAK0AhAYIABBADYCtAICQAJAAkACQCABQf0uECYiAgRAIAAgAUHr4AAQJiIEQZrYAyAEGzYCoAIgACABQd7gABAmIgRBhaUDIAQbIgQ2AqQCIAAoAqACIgUgBBD7AiAFaiIEQQAgBC0AABsiBARAIAMgBCwAADYCwAJBn+0EIANBwAJqECsgAEHmigU2AqQCCyAAIAIQZjYCqAIgA0IANwO4BCADQgA3A7AEIANBsARqQQAQVSAAKAKoAiECA0AgAiAAKAKgAhC/BSICBEAgA0GwBGogAhBVQQAhAgwBCwsgAygCuAQiAkEBayIJQQBIDQQCfyACQQFNBEAgAygCsAQMAQsgA0GwBGpBABBVIAMoArAEIQggAygCvAQhBiADKAK0BCEHA0AgBwRAIAZFDQYgCCgCACEEIAYhAgNAIAIEQCAIIAJBAWsiAkECdGoiCigCACAKIAQ2AgAhBAwBBSAHQQFrIQcMAwsACwALCyADKAK4BCAGSw0DIAAgCDYCrAJBAAsQGCAAIAk2ArACIAFBuCcQJiIGRQ0BIAYtAABFDQFBACEEIAAoArACQQJqQQQQSiEFQQEhAgNAIAAoArACIgcgAk4EQCAAIAIgByAGEIwJBEAgBSAEQQFqIgRBAnRqIAI2AgALIAJBAWohAgwBCwsCQCAEBEAgBSAENgIAIAUgBEECdGogB0EBajYCBAwBCyADIAY2ArACQd3uBCADQbACahArIAUQGEEAIQULIAAgBTYCtAIMAQsgAEEBNgKwAgtBARDcAiADQZgEaiEJIANBuARqIQtB8MkIKAIAIQwgACAAKAKYASICNgKcAQNAAkACQAJAIAIEQAJ/IAAoAjwiBUUEQEEAIQRBAAwBCyAFKAIMIQQgBSgCCAshBSACIAQ2AhggAiAFNgIUIAIgADYCDCAAKAKwASEEIAIgDDYC2AQgAkGQpQo2AtQEIAIgBDYCHCABKAIQKAIIRQRAQf64BEEAEDZBABDcAkF/IQJBjOEKLQAARQ0KQbj8CCgCACIAEO4BIAMQ1gE3A7AEIANBsARqEOwBIgQoAhQhBSAEKAIQIQYgBCgCDCEHIAQoAgghCCADIAQoAgA2AogBIAMgCDYChAEgAyAHNgKAASADQcweNgJ0IANB58EBNgJwIAMgBkEBajYCfCADIAVB7A5qNgJ4IABBidYDIANB8ABqEB4aIAEQICEBIAMQkAE5A2ggAyABNgJgIABByaMDIANB4ABqEDJBCiAAEKwBGiAAEO0BDAoLIAIgAiACKAI0EOgEIgU2AjhBASEEAkAgBUEVRg0AIAVB5wdGBEAgAyACKAI0NgKgAkHwuQQgA0GgAmoQNkEAENwCQX8hAkGM4QotAABFDQtBuPwIKAIAIgAQ7gEgAxDWATcDsAQgA0GwBGoQ7AEiBCgCFCEFIAQoAhAhBiAEKAIMIQcgBCgCCCEIIAMgBCgCADYCmAIgAyAINgKUAiADIAc2ApACIANB1B42AoQCIANB58EBNgKAAiADIAZBAWo2AowCIAMgBUHsDmo2AogCIABBidYDIANBgAJqEB4aIAEQICEBIAMQkAE5A/gBIAMgATYC8AEgAEHJowMgA0HwAWoQMkEKIAAQrAEaIAAQ7QEMCwsCQCABQZo/ECYiBUUNACAFQYUaEElFDQEgBUH6GRBJDQBBECEEDAELQQAhBAsgAiACKAKYASAEcjYCmAECQCAAKAK4ASIEBEAgBC0AmAFBIHEEQCACKAI0IAQoAjQQSUUNAgsgBBCPBCAAQQA2AhwgAEEANgK4AQtB6OgKQQA2AgAMAgtB6OgKKAIAIgRFDQEgBCACNgIIIAIgBCgCJDYCJAwCC0EAIQJBABDcAkGM4QotAABFDQhBuPwIKAIAIgAQ7gEgAxDWATcDsAQgA0GwBGoQ7AEiBCgCFCEFIAQoAhAhBiAEKAIMIQcgBCgCCCEIIAMgBCgCADYCWCADIAg2AlQgAyAHNgJQIANBoB82AkQgA0HnwQE2AkAgAyAGQQFqNgJMIAMgBUHsDmo2AkggAEGJ1gMgA0FAaxAeGiABECAhASADEJABOQM4IAMgATYCMCAAQcmjAyADQTBqEDJBCiAAEKwBGiAAEO0BDAgLIAIoAjwhCkEBIQQjAEFAaiIHJAAgAigCACEFAn8CQAJAAkAgAigCTCIGRQ0AIAYoAgAiBkUNACACIAYRAQAMAQsgAigCKA0AIAIoAiQNAAJAIAUtAA1FBEAgAigCICEFDAELQdjkCiACKAIUIgVB2BcgBRsQrAUgAigCGCIFBEAgByAFQQFqNgIwQdjkCkGquQEgB0EwahCrBQtB2OQKQS4QzgMgAigCNCIIEDwgCGoiBiEFA0AgBS0AAEE6RgRAIAcgBUEBajYCJCAHIAVBf3MgBmo2AiBB2OQKQeWjAyAHQSBqEKsFIAUhBgsgBSAIRyAFQQFrIQUNAAsgByAINgIUIAcgBiAIazYCEEHY5ApBkDggB0EQahCrBSACQdjkChCqBSIFNgIgCyAFBEAgAiAFQbYXEK4EIgU2AiQgBQ0BIAIoAgwoAhAhBSACKAIgIQYgB0HgjwsoAgAQeDYCBCAHIAY2AgBBl4sEIAcgBREDAAwCCyACQcD8CCgCADYCJAtBACACLQCZAUEEcUUNARpBm+gEQQAgAigCDCgCEBEDAAtBAQshBSAHQUBrJAACQCAFDQBBACEEIApFDQAgCigCACIFRQ0AIAIgBREBAAsgBA0BIAAgAjYCuAELIAJBgKYKNgJoIAJBADYCCAJAIAIoAgAiBC0AnAJBAUYEQCACIAQpA9ABNwPwASACIAQpA9gBNwP4AQwBCyACKAI4QawCRgRAIAIgAigCRCsDCCIOOQP4ASACIA45A/ABDAELIAJCgICAgICAgIjAADcD8AEgAkKAgICAgICAiMAANwP4AQsCQCAELQCdAkEBRgRAIAIgBCkDwAE3A6ADIAIgBCkDyAE3A6gDDAELIAIoAjgiBUEeS0EBIAV0QZiAgIMEcUVyRQRAIAJCgICAgICAgKHAADcDoAMgAkKAgICAgICAocAANwOoAwwBCyAFQawCRgRAIAIgAigCVCIFKQMINwOgAyACIAUpAxA3A6gDDAELIAJCADcDoAMgAkIANwOoAwsCQCABKAIQKAIIKwMYIg5EAAAAAAAAAABiBEAgAiAOOQOwAyACIA45A7gDDAELAkAgBCgCuAEiBUUNACAFLQCAAUEBRw0AIAIgBSkDcDcDsAMgAiAFKQN4NwO4AwwBCyACKAI4QawCRgRAIAIgAigCVCIFKQMoNwOwAyACIAUpAzA3A7gDDAELIAJCgICAgICAgKzAADcDsAMgAkKAgICAgICArMAANwO4AwsgBCsD+AEhFCAEKwOAAiETIAQrA4gCIRUgAiAEKwOQAiIWIAIrAPgBIg6gIhA5A+gBIAIgFSACKwDwASIRoCISOQPgASACIBMgDqEiDjkD2AEgAiAUIBGhIhE5A9ABIANCgICAgICAgPg/NwPoBCAQIA6hIRAgEiARoSERRAAAAAAAAPA/IQ4CQCABKAIQKAIIIgUrA0AiEkT8qfHSTWJQP2RFDQAgBSsDSCIPRPyp8dJNYlA/ZEUNACASIBIgESARRPyp8dJNYlA/ZRsiEWMgDyAPIBAgEET8qfHSTWJQP2UbIhBjckUEQCAPIBBkRSARIBJjRXINASAFLQBQQQFxRQ0BCyADIBIgEaMgDyAQoxAqIg45A+gECyADIBYgE6BEAAAAAAAA4D+iOQO4BCADIBUgFKBEAAAAAAAA4D+iOQOwBCACIAQoApgCNgLoAiADIA4gEKI5A5gEIAMgDiARojkDkAQgAUHuGxAmIgQEQCADIAQQPEEBahCPAyIFNgLsASADIAk2AuQBIAMgA0HoBGo2AugBIAMgA0GQBGo2AuABAkAgBEG5tQMgA0HgAWoQT0EERgRAIAEoAkggBUEAEI8BIgRFDQEgAyAEKAIQIgQpAxg3A7gEIAMgBCkDEDcDsAQMAQsgA0EAOgDnBCADIAk2AsQBIAMgBTYCzAEgAyADQecEajYC0AEgAyADQZAEajYCwAEgAyADQegEajYCyAEgBEGWyAEgA0HAAWoQT0EERgRAIAEoAkggBUEAEI8BIgRFDQEgAyAEKAIQIgQpAxg3A7gEIAMgBCkDEDcDsAQMAQsgAyALNgKwASADIAk2AqQBIAMgA0GwBGo2AqwBIAMgA0HoBGo2AqgBIAMgA0GQBGo2AqABIARBlowBIANBoAFqEE8aCyAFEBggAysD6AQhDgsgAiADKQOQBDcD8AIgAiADKQOYBDcD+AIgAiAOOQPgAiACIAMpA7AENwPQAiACIAMpA7gENwPYAiACKwPwAiIOIAIrA/gCIhAgAigC6AIiBBshEiAQIA4gBBshDiACKwOoAyERIAIrA6ADIRACQAJAIAIoAgAiBi0AngJBAUcNACACLQCYAUEgcUUNACAGKwPoASARIBGgoSEPAkAgAiAGKwPgASAQIBCgoSIURC1DHOviNho/YwR/QQEFIAICfyAOIBSjIhOZRAAAAAAAAOBBYwRAIBOqDAELQYCAgIB4CyIENgKkASAOIAS3IBSioUQtQxzr4jYaP2RFDQEgBEEBagsiBDYCpAELAkAgAiAPRC1DHOviNho/YwR/QQEFIAICfyASIA+jIhOZRAAAAAAAAOBBYwRAIBOqDAELQYCAgIB4CyIFNgKoASASIAW3IA+ioUQtQxzr4jYaP2RFDQEgBUEBagsiBTYCqAELIAIgBCAFbDYCzAEgEiAPECohEiAOIBQQKiEODAELAnwgAigCREUEQEQAAAAAAAAAACEPRAAAAAAAAAAADAELIAIoAlQiBCsDGCAEKwMgIBEgEaChRAAAAAAAAAAAECIhDyAQIBCgoUQAAAAAAAAAABAiCyACQQE2AswBIAJCgYCAgBA3AqQBIA8gEhAiIQ8gDhAiIRQLIAJCADcCrAEgAkIANwK0ASACQgA3ArwBIAICfyAQIBCgIBSgIAIrA7ADokQAAAAAAABSQKMiE0QAAAAAAADgP0QAAAAAAADgvyATRAAAAAAAAAAAZhugIhOZRAAAAAAAAOBBYwRAIBOqDAELQYCAgIB4CzYCwAMgAgJ/IBEgEaAgD6AgAisDuAOiRAAAAAAAAFJAoyITRAAAAAAAAOA/RAAAAAAAAOC/IBNEAAAAAAAAAABmG6AiE5lEAAAAAAAA4EFjBEAgE6oMAQtBgICAgHgLNgLEAyADQbAEaiIEIAIgBigCvAEsAAAQiwkgAiADKQOwBDcCtAEgBCACIAYoArwBLAABEIsJIAIgAykDsAQiFzcCvAECQCACKAK0ASAXp2oiBCAEQR91IgRzIARrQQFGBEAgAigCuAEgF0IgiKdqIgQgBEEfdSIEcyAEa0EBRg0BCyACQgE3ArwBIAJCgICAgBA3ArQBIAMgBigCvAE2ApABQazBBCADQZABahArC0QAAAAAAAAAACETAnxEAAAAAAAAAAAgASgCECgCCC0AUkEBRw0AGiAUIA6hRAAAAAAAAOA/okQAAAAAAAAAACAOIBRjGyETRAAAAAAAAAAAIA8gEmRFDQAaIA8gEqFEAAAAAAAA4D+iCyEVAkAgAigC6AIiBEUEQCAQIRQgESEQIA4hDyASIQ4gFSERIBMhFQwBCyARIRQgEiEPIBMhEQsgAiAQIBGgIhA5A4gDIAIgFCAVoCIROQOAAyACIA4gEKAiEjkDmAMgAiAPIBGgIhQ5A5ADIAIgDiACKwPgAiIOozkDyAIgAiAPIA6jOQPAAiACAn8gESACKwOwAyIOokQAAAAAAABSQKMiD0QAAAAAAADgP0QAAAAAAADgvyAPRAAAAAAAAAAAZhugIg+ZRAAAAAAAAOBBYwRAIA+qDAELQYCAgIB4CyIFNgLIAyACAn8gECACKwO4AyIPokQAAAAAAABSQKMiE0QAAAAAAADgP0QAAAAAAADgvyATRAAAAAAAAAAAZhugIhOZRAAAAAAAAOBBYwRAIBOqDAELQYCAgIB4CyIGNgLMAyACAn8gEiAPokQAAAAAAABSQKMiD0QAAAAAAADgP0QAAAAAAADgvyAPRAAAAAAAAAAAZhugIg+ZRAAAAAAAAOBBYwRAIA+qDAELQYCAgIB4CyIHNgLUAyACAn8gFCAOokQAAAAAAABSQKMiDkQAAAAAAADgP0QAAAAAAADgvyAORAAAAAAAAAAAZhugIg6ZRAAAAAAAAOBBYwRAIA6qDAELQYCAgIB4CyIINgLQAyAEBEAgAiAUOQOYAyACIBI5A5ADIAIgETkDiAMgAiAQOQOAAyACIAetIAitQiCGhDcD0AMgAiAGrSAFrUIghoQ3A8gDCyACLQCYAUGAAXFFBEAgAiABEJQJC0Ho6AogAjYCAAsCQCAAKAKcASIEKAIEIgJFDQAgAigCNA0AIAIgBCgCNDYCNAsgACACNgKcAQwACwALQfCpA0HnwQFBsghBobwBEAAAC0HimgNB58EBQbIIQaG8ARAAAAtBpNMBQefBAUHUCEH3LhAAAAtBoJwDQefBAUHJHUHxyAEQAAALIANB8ARqJAAgAgswACAAKAIIRQRAQfimA0HnwQFBlgZBnx8QAAALIAAoAgAgACgCBCAAKAIMcEEEdGoLswEBAn8jAEGQAWsiAiQAAkAgABCVCQRAIAEoAhBBAUYEQCABQQA2AhAgASAAKQMANwMAIAEgACkDCDcDCAsgAiAAKQA4NwNYIAIgACkAMDcDUEEYEI8DIgBBADYCECAAIAIpA1A3AwAgACACKQNYNwMIIAEgADYCEAwBCyACIABEAAAAAAAA4D8gAkHQAGoiACACQRBqIgMQpgEgAyAAIAEQvAYQvAYhAAsgAkGQAWokACAAC1sBA39BwOYKKAIAIgFFBEBBwOYKQaSmCkGs9AkoAgAQlwEiATYCAAsgASAAQQQgASgCABEEACIBRQRAQcDmCigCACICKAIAIQMgAiAAEGZBASADEQQAGgsgAUULRwEEfyABQRAQSiEDA38gASACRgR/IAMFIAMgAkEEdGoiBCAAIAJBGGxqIgUrAwA5AwAgBCAFKwMIOQMIIAJBAWohAgwBCwsLmwEBBX8jAEEQayIDJAAgAkGsjQEQJiEEIAJBj+AAECYhBSACQdgjECYhBiADQgA3AwggA0IANwMAIAEEfyABKAIABUEACyEBAkAgBARAIAQtAAANAQsgAkGF2QEQJiEECyAAIAIgAxDDBiEHIAAgASAEIAUEfyAFIAIQkAQFQQALIgEgBiAHIAIQmgkaIAEQGCADEF8gA0EQaiQAC+wBAgV8AX9BASACIAJBAU0bIQkgASsDCCIFIQYgASsDACIHIQhBASECA0AgAiAJRkUEQAJAIAggASsDGCIEZARAIAQhCAwBCyAEIAdkRQ0AIAQhBwsCQCAGIAErAyAiBGQEQCAEIQYMAQsgBCAFZEUNACAEIQULIAFBGGohASACQQFqIQIMAQsLIAAgBzkDECAAIAg5AwAgACAFOQMYIAAgBjkDCCADIAMrAxAgCBAiIAcQIjkDECADIAMrAxggBhAiIAUQIjkDGCADIAMrAwAgCBAqIAcQKjkDACADIAMrAwggBhAqIAUQKjkDCAviAwIDfwR8IwBB8ABrIgQkACAAKAIQKwOgASEJIAIgBEHgAGoQ7QQiBkEBa0ECTwRAQTAhAiAEQdAAaiEFAkAgAwRAIAQgASkDIDcDICAEIAEpAyg3AyggBCABKQM4NwM4IAQgASkDMDcDMCAEIAEpAwg3A0ggBCABKQMANwNAQRAhAgwBCyAEIAEpAwA3AyAgBCABKQMINwMoIAQgASkDGDcDOCAEIAEpAxA3AzAgBCABKQMoNwNIIAQgASkDIDcDQAsgBSABIAJqIgEpAwA3AwAgBSABKQMINwMIIAQrAzAhCiAEIAQrAyAiCDkDMCAEIAg5A0AgCUQAAAAAAADgP2QEQCAARAAAAAAAAOA/EIgCCyAKIAihIQhBACEBIAQoAmghAgNAAkAgASACRg0AIARBCGogBEHgAGogARCaAiAEKAIIIgNFDQAgBCsDECIHRAAAAAAAAAAAZQRAIAFBAWohAQwCBSAAIAMQXiAEIAogCCAHoiAEKwMgoCABQQFqIgEgAkYbIgc5A0AgBCAHOQMwIAAgBEEgakEEQQEQQyAEIAQrAzAiBzkDUCAEIAc5AyAMAgsACwsgCUQAAAAAAADgP2QEQCAAIAkQiAILIARB4ABqEJUECyAEQfAAaiQAIAYLcwEBfyAAECQgABBGTwRAIABBARCBBAsgABAkIQECQCAAECcEQCAAIAFqQQA6AAAgACAALQAPQQFqOgAPIAAQJEEQSQ0BQbzAA0HJhAFBnQJBlLoBEAAACyAAKAIAIAFqQQA6AAAgACAAKAIEQQFqNgIECwvwAQEDfyMAQSBrIgQkACAAKAIAKAKgASIFKAIQKAIIKAJcIQMgACACEJkJAkACQCABQcKvARAmIgBFDQAgAC0AAEUNACACIAAQygMMAQsgASAFRiIFIANFckUEQCAEIAM2AhAgAkGzzAEgBEEQahCAAQtBACEAQQAhAwJAAkACQAJAIAEQkwIOAwABAgMLQeiAAUHRGSAFGyEDIAEoAgBBBHYhAAwCCyABKAIAQQR2IQBB36YBIQMMAQsgASgCAEEEdiEAQa+kASEDCyAEIAA2AgQgBCADNgIAIAJB6a4BIAQQgAELIAIQyQMgBEEgaiQAC6sSAw5/C3wBfiMAQYABayIEJAAgACsD4AIhECABKwMIIREgASsDACESIAAoAgAoAqABIQggACsDgAQhFAJ/IAAoAugCBEAgESAQIAArA5AEoqMgACsD+AOhIRMgEpohESAAQYgEagwBCyASIBAgACsDiASioyAAKwP4A6EhEyAAQZAEagsrAwAhFSAEIBNEAAAAAAAA8D8gEKMiEqA5A3AgBCATIBKhOQNgIAQgESAQIBWioyAUoSIQIBKgOQN4IAQgECASoTkDaCAIEBshAwJAA0AgAwRAIAggAxAtIQEDQCABBEAgBCAEKQN4NwNYIAQgBCkDcDcDUCAEIAQpA2g3A0ggBCAEKQNgNwNAAn8gBEFAayEFQQAhCiMAQbACayICJAACQAJ/AkAgASgCECIGKAIIIglFDQAgCSsAGCAFKwMAZkUNACAFKwMQIAkrAAhmRQ0AIAkrACAgBSsDCGZFDQAgBSsDGCAJKwAQZkUNAAJAA0AgCiAJKAIETw0BIAkoAgAhBiACIAUpAxg3A4gCIAIgBSkDEDcDgAIgAiAFKQMINwP4ASACIAUpAwA3A/ABIAJBwAFqIAYgCkEwbGpBMBAfGiACKALEASIMRQ0EIAIgAigCwAEiCykDCDcDqAIgAiALKQMANwOgAkEBIQYCQANAIAYgDEcEQCACIAsgBkEEdGoiBykDCDcDmAIgAiAHKQMANwOQAiACIAcpAwg3A7gBIAcpAwAhGyACIAIpA6gCNwOoASACIAIpA/gBNwOIASACIAIpA4ACNwOQASACIAIpA4gCNwOYASACIBs3A7ABIAIgAikDoAI3A6ABIAIgAikD8AE3A4ABAn9BACEHIAIrA4ABIhMgAisDsAEiEGUiDUUgECACKwOQASISZUVyRQRAIAIrA7gBIhEgAisDiAFmIBEgAisDmAFlcSEHCwJAAkAgEyACKwOgASIUZSIOIBIgFGZxRQRAIAdFDQEMAgsgByACKwOoASIRIAIrA4gBZiARIAIrA5gBZXEiD0cNASAHIA9xRQ0AQQEMAgsgAisDuAEhEQJAAkAgECAUYQRAIA1FDQEgAisDiAEiEyACKwOoAWUgESATZnNFDQEgECASZQ0DDAELIAIrA6gBIhYgEWEEQCAOIBAgE2ZGDQEgAisDiAEgEWVFDQEgESACKwOYAWUNAwwBCyAQIBQQKiEYIAIrA5gBIRVBACEHIBMgEKEgFiARoSAUIBChoyIZoiARoCIaIAIrA4gBIhdmRSATIBhmRSAQIBQQIiIUIBNmRXJyRSAVIBpmcQ0BIBIgGGZFIBcgEiAToSAZoiAaoCIYZUUgFSAYZkVyckUgEiAUZXENASARIBYQIiEUIBEgFhAqIhYgF2VFIBMgECAXIBGhIBmjoCIQZUUgECASZUVyckUgFCAXZnENASAVIBZmRSATIBAgFSAXoSAZo6AiEGVFIBAgEmVFcnINACAUIBVmDQELQX8hBwsgBwwBC0EAC0F/Rw0CIAIgAikDmAI3A6gCIAIgAikDkAI3A6ACIAZBAWohBgwBCwsgAigCyAEEQCACIAIpA9gBNwN4IAIgAikD0AE3A3AgAiALKQMINwNoIAspAwAhGyACIAIpA/gBNwNIIAIgAikDgAI3A1AgAiACKQOIAjcDWCACIBs3A2AgAiACKQPwATcDQCACQfAAaiACQeAAaiACQUBrEKUKDQELIAIoAswBBEAgAiACKQPoATcDOCACIAIpA+ABNwMwIAIgAigCwAEgAigCxAFBBHRqQRBrIgYpAwg3AyggBikDACEbIAIgAikD+AE3AwggAiACKQOAAjcDECACIAIpA4gCNwMYIAIgGzcDICACIAIpA/ABNwMAIAJBMGogAkEgaiACEKUKDQELIApBAWohCgwBCwtBAQwCCyABKAIQIQYLAkAgBigCYCIGRQ0AIAUrAxAgBisAOCIQIAYrAxhEAAAAAAAA4D+iIhGhZkUNACAFKwMAIBEgEKBlRQ0AIAUrAxggBisAQCIQIAYrAyBEAAAAAAAA4D+iIhGhZkUNAEEBIAUrAwggESAQoGUNARoLQQALIAJBsAJqJAAMAQtBupABQa/CAUG3CkHdPhAAAAsNBCAIIAEQMCEBDAELCyAIIAMQHCEDDAELCyAIKAIsIgFBAEGAAiABKAIAEQQAIgEEfyABKAIQBUEACyEBA0AgAQRAIAQgBCkDeDcDOCAEIAQpA3A3AzAgBCAEKQNoNwMoIAQgBCkDYDcDIEEAIQUjAEHwAGsiAyQAAkAgBCsDMCIQIAEoAhAiAisDMGZFDQAgBCsDICIRIAIrA0BlRQ0AIAQrAzgiEyACKwM4ZkUNACAEKwMoIhIgAisDSGVFDQAgAisAECEUIAMgAisAGCASIBOgRAAAAAAAAOA/oqE5A2ggAyAUIBAgEaBEAAAAAAAA4D+ioTkDYCADQRhqIgVBAEHIABAzGiADIAE2AhggAigCCCgCBCgCDCECIAMgAykDaDcDECADIAMpA2A3AwggBSADQQhqIAIRAAAhBQsgA0HwAGokACAFDQJBACEDAkAgCCABEOcBIgFFDQAgCCgCLCICIAFBECACKAIAEQQAIgFFDQAgASgCECEDCyADIQEMAQsLIAQgBCkDeDcDGCAEIAQpA3A3AxAgBCAEKQNoNwMIIAQgBCkDYDcDACAIIAQQnAkiASAIIAEbIQELIAAoAsAEIgMgAUcEQAJAIANFDQACQAJAAkAgAxCTAg4DAAECAwsgAygCECIDIAMtAHBB/gFxOgBwDAILIAMoAhAiAyADLQCFAUH+AXE6AIUBDAELIAMoAhAiAyADLQB0Qf4BcToAdAsgAEEANgLIBCAAIAE2AsAEAkAgAUUNAAJAAkACQAJAIAEQkwIOAwABAgQLIAEoAhAiAyADLQBwQQFyOgBwIAFBAEGP4ABBABAhIgMNAgwDCyABKAIQIgMgAy0AhQFBAXI6AIUBIAEQL0EBQY/gAEEAECEiAw0BDAILIAEoAhAiAyADLQB0QQFyOgB0IAFBUEEAIAEoAgBBA3FBAkcbaigCKBAvQQJBj+AAQQAQISIDRQ0BCyAAIAEgAxBBIAEQgwE2AsgECyAAQQE6AJkECyAEQYABaiQAC7kCAgN/AnwjAEEwayIEJAAgASABKAJIIAEoAkwiBUEBaiAFQQJqQTgQigEiBTYCSCAFIAEoAkwiBkE4bGoiBSADOgAwIAUgAjYCAAJ8AkAgAkUNACACLQAARQ0AIARCADcDKCAEQgA3AyAgBEIANwMYIARCADcDECAEIAEoAgQ2AhAgBCABKwMQOQMgIAUgACgCiAEiAiAEQRBqQQEgAigCABEEADYCBCAEIAAgBRCMByAEKwMIIQcgASgCTCEGIAQrAwAMAQsgBQJ/IAErAxBEMzMzMzMz8z+iIgiZRAAAAAAAAOBBYwRAIAiqDAELQYCAgIB4C7ciBzkDKEQAAAAAAAAAAAshCCABIAZBAWo2AkwgASAHIAErAyCgOQMgIAEgASsDGCIHIAggByAIZBs5AxggBEEwaiQACxMAIAAgAUHgJEH8AEH7hAEQyAELrgEBBH8gACgCACECAkACQAJAAkAgACgCBEEBaw4DAAIBAgsgAkHUAGohBQJAIAIoAnBBf0YEQCAFEK4JDAELIAIoAlQhAyACKAJoEBggAigCbBAYA0AgAygCACIEBEAgBEHYAGpBABDHBiAEEPAEIAQQGCADQQRqIQMMAQsLIAUoAgAQGAsgAhDwBCACEBgMAgsgAigCIBAYIAIQGAwBCyACEK8JCyABBEAgABAYCws2AQF/IwBBIGsiAyQAIAMgAjkDGCADIAE5AxAgACADQQhqQQQgACgCABEEACADQSBqJABBAEcLEwAgACABQQJB2SlBJkGlEhCiAguRAQEEfwJAIAAEQANAIAIgACgCCE8NAiAAKAIAIAAoAgQgAmogACgCDHBBBXRqIgEoAgQhBCABKAIAIQNBACEBA0AgASAERkUEQCADIAFBOGxqKAIAEBggAUEBaiEBDAELCyADEBggACACEL4JGiACQQFqIQIMAAsAC0GJ2gFBpRJBNUGUwQAQAAALIABCADcCBAteAQF/AkAgAARAA0AgASAAKAIITw0CIAAoAgAgACgCBCABaiAAKAIMcEE4bGooAgAQGCAAIAEQvQkaIAFBAWohAQwACwALQYnaAUGlEkEsQZXBABAAAAsgAEIANwIEC1sBA38gACgCACIABH8CQCAAKAKoAiIBRQ0AIAEgACgCsAIiAkkNACAAKAKcASIDIAIgASAAQbADaiADKAIwEQcAIAAgACgCqAI2ArACCyAAKAKwA0EBagVBAAsL2wMBBH8jAEEQayIFJAAgACABNgKoAiAAQdwBNgKgAgJAAkACQANAIAVBADYCDCAAIAAoApwBIgQgASACIAVBDGogBCgCABEGACIHIAEgBSgCDEGULkEAEJwCRQRAIAAQ4gJBKyEEDAQLIAAgBSgCDCIGNgKsAkEJIQQCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAHQQtrDgUCEAMQAQALAkAgB0EEag4FBxAGBQwACyAHQXFHDQ8gAyAAKAJcBH8gACAAKAKcASABIAYQiAEgACgC+ANBAkYNDyAFKAIMBSAGCzYCAEEAIQQMDwsgACgCXEUNAiAAIAAoApwBIAEgBhCIAQwCCyAAIAAoApwBIAEgBhDTBg0BDAsLIAAgACgCnAEgASAGENQGRQ0KCyAAKAL4A0EBaw4DBQQDBgsgAC0A/ANFDQFBBSEEDAoLIAAtAPwDRQ0AQQYhBAwJCyADIAE2AgBBACEEDAgLIAAgBSgCDCIANgKoAiADIAA2AgBBACEEDAcLIAAgBSgCDDYCqAIMBQsgAC0AwARFDQBBFyEEDAULIAAgBSgCDCIBNgKoAgwBCwsgACAGNgKoAkEEIQQMAgtBASEEDAELQSMhBAsgBUEQaiQAIAQLlQECBX4BfyAAKQMQIQQgACkDGCECIAApAwAhBSAAKQMIIQMDQCABIAdGRQRAIAIgBHwiBCADIAV8IgUgA0INiYUiA3wiBiADQhGJhSEDIAQgAkIQiYUiAkIViSACIAVCIIl8IgWFIQIgBkIgiSEEIAdBAWohBwwBCwsgACACNwMYIAAgBTcDACAAIAM3AwggACAENwMQC54BAgR/AX4gAEEgaiEFIABBKGohAyABIAJqIQQDQCADKAIAIgIgA08gASAET3JFBEAgAS0AACEGIAMgAkEBajYCACACIAY6AAAgAUEBaiEBDAELIAIgA08EQCAAIAApAyAiByAAKQMYhTcDGCAAQQIQzgYgACAFNgIoIAAgByAAKQMAhTcDACAAIAApAzBCCHw3AzAgASAESQ0BCwsgAAvPHwEPfyMAQTBrIggkACAIIAM2AiwgACgC/AIhEgJ/IAAoApwBIAJGBEAgAEGoAmohDiAAQawCagwBCyAAKAK0AiIOQQRqCyETIA4gAzYCACASQdAAaiEUIABBuANqIQ0gCEElaiEVAkACQANAIAggCCgCLCIDNgIoAn8CQAJAIAIgAyAEIAhBKGogAigCBBEGACIDQQVqIgsOAwABAAELIAgoAiwiCiAEIAYbDAELIAgoAiwhCiAIKAIoCyEJIAAgAyAKIAlBmhcgBxCcAkUEQCAAEOICQSshCgwDCyATIAgoAigiAzYCAEERIQoCQCAIAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCw4TDAEABAMCBgYHBwgOCgsFCQ8fEBELIAYEQCAFIAgoAiw2AgBBACEKDB8LIBMgBDYCAAJAIAAoAkgiAwRAIAhBCjoADCAAKAIEIAhBDGpBASADEQUADAELIAAoAlxFDQAgACACIAgoAiwgBBCIAQsgAUUNHSAAKALQAiABRg0MDBsLIAYEQCAFIAgoAiw2AgBBACEKDB4LIAFBAEwNHCAAKALQAiABRw0aIAUgCCgCLDYCAEEAIQoMHQsgDiADNgIAQQQhCgwcCyAGRQRAQQUhCgwcCyAFIAgoAiw2AgBBACEKDBsLIAZFBEBBBiEKDBsLIAUgCCgCLDYCAEEAIQoMGgsgCCACIAIoAkAiCSAIKAIsaiADIAlrIAIoAiwRBAAiAzoAJCADQf8BcQRAIABBCSAIQSRqIgkgFUHcF0EBEJwCGiAAKAJIIgMEQCAAKAIEIAlBASADEQUADBMLIAAoAlxFDRIgACACIAgoAiwgCCgCKBCIAQwSC0EBIQogFCACIAIoAkAiAyAIKAIsaiAIKAIoIANrEIcBIgNFDRkgACASIANBABCaASELIBIgEigCYDYCXAJAAkAgEi0AgQEEQCASLQCCAUUNAQsgC0UEQEELIQoMHAsgCy0AIw0BQRghCgwbCyALDQAgACgChAEiCQRAIAAoAgQgA0EAIAkRBQAMEwsgACgCXEUNEiAAIAIgCCgCLCAIKAIoEIgBDBILIAstACAEQEEMIQoMGgsgCygCHARAQQ8hCgwaCyALKAIEBEAgAC0AzAINDSAAKAKEASIDBEAgACgCBCALKAIAQQAgAxEFAAwTCyAAKAJcRQ0SIAAgAiAIKAIsIAgoAigQiAEMEgsgACgCfARAIAtBAToAIAJAIAAoAvwCIg8oApwBIgxFDQAgACgCxAMiAyAAKALAA0YEQCANEGFFDRAgACgCxAMhAwsgACADQQFqNgLEAyADQT06AABBACEDIA8oApwBKAIUIAAtAPADQQBHayIJQQAgCUEAShshEANAIAMgEEYNASAAKALEAyIJIAAoAsADRgRAIA0QYUUNESAAKALEAyEJCyAPKAKcASgCECADai0AACERIAAgCUEBajYCxAMgCSAROgAAIANBAWohAwwACwALIAggDygCPCIDNgIMIAxFIQkgCCADBH8gAyAPKAJEQQJ0agVBAAs2AhADQCAIQQxqEN4GIhAEQCAQKAIERQ0BIAlFBEAgACgCxAMiAyAAKALAA0YEQCANEGFFDRIgACgCxAMhAwsgACADQQFqNgLEAyADQQw6AAALIBAoAgAhDANAAkAgACgCwAMhCSAAKALEAyEDIAwtAAAiEUUNACADIAlGBEAgDRBhRQ0TIAwtAAAhESAAKALEAyEDCyAAIANBAWo2AsQDIAMgEToAACAMQQFqIQwMAQsLIAMgCUYEQCANEGFFDREgACgCxAMhAwsgACADQQFqNgLEAyADQT06AABBACEJIBAoAgQoAhQgAC0A8ANBAEdrIgNBACADQQBKGyERQQAhAwNAIAMgEUYNAiAAKALEAyIMIAAoAsADRgRAIA0QYUUNEiAAKALEAyEMCyAQKAIEKAIQIANqLQAAIRYgACAMQQFqNgLEAyAMIBY6AAAgA0EBaiEDDAALAAsLIAggDygCACIDNgIMIAggAwR/IAMgDygCCEECdGoFQQALNgIQA0AgCEEMahDeBiIDBEAgAy0AIEUNASAJRQRAIAAoAsQDIgkgACgCwANGBEAgDRBhRQ0SIAAoAsQDIQkLIAAgCUEBajYCxAMgCUEMOgAACyADKAIAIQMDQCADLQAAIgxFBEBBACEJDAMLIAAoAsQDIgkgACgCwANGBEAgDRBhRQ0SIAMtAAAhDCAAKALEAyEJCyAAIAlBAWo2AsQDIAkgDDoAACADQQFqIQMMAAsACwsgACgCxAMiAyAAKALAA0YEQCANEGFFDQ8gACgCxAMhAwsgACADQQFqNgLEAyADQQA6AAAgACgCyAMhAyALQQA6ACAgA0UNGiAAKAKAASADIAsoAhQgCygCECALKAIYIAAoAnwRCABFBEBBFSEKDBsLIAAgACgCyAM2AsQDDBILIAAoAlxFDREgACACIAgoAiwgCCgCKBCIAQwRCwJAIAAoAogDIgMEQCAAIAMoAgA2AogDDAELQQEhCkEwIAAoAgwRAgAiA0UNGSADQSAgACgCDBECACIJNgIkIAlFBEAgAyAAKAIUEQEADBoLIAMgCUEgajYCKAsgA0EANgIsIAMgACgChAM2AgAgACADNgKEAyADQgA3AhAgAyAIKAIsIAIoAkBqIgk2AgQgAyACIAkgAigCHBEAADYCCCAAIAAoAtACQQFqNgLQAiADKAIIIAggAygCBCIKNgIkIANBDGohCyADQSxqIRAgCmohDyADKAIoIQwgAygCJCEKA0ACQCAIIAo2AgwgAiAIQSRqIA8gCEEMaiAMQQFrIAIoAjgRCAAgCCgCDCIRIAMoAiQiCWshCkEBRiAIKAIkIA9Pcg0AIAkgAygCKCAJa0EBdCIMIAAoAhARAAAiCUUNDyADIAk2AiQgAyAJIAxqIgw2AiggCSAKaiEKDAELCyADIAo2AhggAyAJNgIMIBFBADoAACAAIAIgCCgCLCALIBAgBxDSCSIKDRggACgCQCIDBEAgACgCBCALKAIAIAAoAqADIAMRBQAMEAsgACgCXEUNDyAAIAIgCCgCLCAIKAIoEIgBDA8LIAIoAkAhAyAIKAIsIQkgCEEANgIkIAggDSACIAMgCWoiAyACIAMgAigCHBEAACADahCHASIDNgIMIANFDQwgACAAKALEAzYCyAMgACACIAgoAiwgCEEMaiAIQSRqQQIQ0gkiCgRAIAAgCCgCJBDRCQwYCyAAIAAoAsQDNgLIAwJAAkAgACgCQCIDRQRAIAAoAkQiAw0BIAAoAlxFDQIgACACIAgoAiwgCCgCKBCIAQwCCyAAKAIEIAgoAgwgACgCoAMgAxEFACAAKAJEIgNFDQEgACgCQEUNACAOIBMoAgA2AgAgACgCRCEDCyAAKAIEIAgoAgwgAxEDAAsgDRCeAiAAIAgoAiQQ0QkgACgC0AINDwJAAkAgACgC+ANBAWsOAwASDwELIAAtAMAEDQ4LIAAgCCgCKCAEIAUQzQYhCgwXCyAAKALQAiABRg0TIAAoAoQDIQoCQCACIAgoAiwgAigCQEEBdGoiAyACKAIcEQAAIgkgCigCCEYEQCAKKAIEIAMgCRDYAUUNAQsgDiADNgIAQQchCgwXCyAAIAooAgA2AoQDIAogACgCiAM2AgAgACAKNgKIAyAAIAAoAtACQQFrNgLQAgJAIAAoAkQiAwRAAkAgAC0A9AFFDQAgCigCECIJRQ0AIAooAgwgCigCHGohAwNAIAktAAAiCwRAIAMgCzoAACADQQFqIQMgCUEBaiEJDAELCwJAIAAtAPUBRQ0AIAooAhQiCUUNACADIAAtAPADOgAAA0AgA0EBaiEDIAktAAAiC0UNASADIAs6AAAgCUEBaiEJDAALAAsgA0EAOgAAIAAoAkQhAwsgACgCBCAKKAIMIAMRAwAMAQsgACgCXEUNACAAIAIgCCgCLCAIKAIoEIgBCwNAIAooAiwiAwRAIAMhCSAKIAAoAnQiCwR/IAAoAgQgAygCACgCACALEQMAIAooAiwFIAkLKAIENgIsIAMgACgCkAM2AgQgACADNgKQAyADKAIAIAMoAgg2AgQMAQsLIAAoAtACDQ4CQAJAIAAoAvgDQQFrDgMAEQ4BCyAALQDABA0NCyAAIAgoAiggBCAFEM0GIQoMFgsgAiAIKAIsIAIoAigRAAAiA0EASARAQQ4hCgwWCyAAKAJIIgkEQCAAKAIEIAhBDGoiDCADIAwQnAQgCREFAAwOCyAAKAJcRQ0NIAAgAiAIKAIsIAgoAigQiAEMDQsgACgCSCIJBEAgCEEKOgAMIAAoAgQgCEEMakEBIAkRBQAMDQsgACgCXEUNDCAAIAIgCCgCLCADEIgBDAwLAkAgACgCVCIJBEAgACgCBCAJEQEADAELIAAoAlxFDQAgACACIAgoAiwgAxCIAQsgACACIAhBKGogBCAFIAYgBxDPCSIKDRMgCCgCKA0LIABB2wE2AqACQQAhCgwTCyAGBEAgBSAIKAIsNgIAQQAhCgwTCwJAIAAoAkgiAwRAIAItAERFBEAgCCAAKAI4NgIMIAIgCEEsaiAEIAhBDGogACgCPCACKAI4EQgAGiAAKAIEIAAoAjgiAiAIKAIMIAJrIAAoAkgRBQAMAgsgACgCBCAIKAIsIgIgBCACayADEQUADAELIAAoAlxFDQAgACACIAgoAiwgBBCIAQsgAUUEQCAOIAQ2AgAMEgsgACgC0AIgAUYNACAOIAQ2AgAMDwsgBSAENgIAQQAhCgwRCyAAKAJIIgkEQCACLQBERQRAA0AgCCAAKAI4NgIMIAIgCEEsaiADIAhBDGogACgCPCACKAI4EQgAIBMgCCgCLDYCACAAKAIEIAAoAjgiCiAIKAIMIAprIAkRBQBBAU0NCyAOIAgoAiw2AgAgCCgCKCEDDAALAAsgACgCBCAIKAIsIgogAyAKayAJEQUADAkLIAAoAlxFDQggACACIAgoAiwgAxCIAQwICyAAIAIgCCgCLCADENMGDQcMBAsgACACIAgoAiwgAxDUBkUNAwwGCyAAKAJcRQ0FIAAgAiAIKAIsIAMQiAEMBQsgACALQQBBABD4BEUNBAwMCyALQQA6ACAMCwtBASEKDAoLIABB3AE2AqACDAELIA0QngILAkAgACgC+ANBAWsOAwIBAAMLIA4gCCgCKCIANgIAIAUgADYCAEEAIQoMBwsgDiAIKAIoNgIAQSMhCgwGCyAIKAIoIgMgAC0AwARFDQEaIAUgAzYCAEEAIQoMBQsgCCgCKAsiAzYCLCAOIAM2AgAMAQsLQQ0hCgwBC0EDIQoLIAhBMGokACAKC5wBAgF/An4jAEHQAGsiAiQAIAAgAkEIahDVCSACQgA3A0ggAiACQThqNgJAIAIgAikDCCIDQvXKzYPXrNu38wCFNwMYIAIgAikDECIEQvPK0cunjNmy9ACFNwMwIAIgA0Lh5JXz1uzZvOwAhTcDKCACIARC7d6R85bM3LfkAIU3AyAgAkEYaiABIAEQ1AkQzwYQ0wkgAkHQAGokAKcLbgEBfyAAQQAQ9wQiACgC9ANFBEAgACAAKAKwBEEBajYCsAQgACAAKAK0BEEBaiIDNgK0BCADIAAoArgEIgNLBEAgACADQQFqNgK4BAsgACABQc/UAyACENcJDwtBij5BqcYBQcbAAEHl6wAQAAALqgEBA38CQCAAKAJMRQRAQQEhBCAAKAJcRQ0BIAAgASACIAMQiAFBAQ8LIABBuANqIgUgASACIAEoAkBBAXRqIgIgASACIAEoAhwRAAAgAmoiAhCHASIGRQ0AIAAgACgCxAM2AsgDIAUgASABIAIgASgCIBEAACADIAEoAkBBAXRrEIcBIgFFDQAgARDWCSAAKAIEIAYgASAAKAJMEQUAIAUQngJBASEECyAEC2wBAX8CQCAAKAJQRQRAIAAoAlxFDQEgACABIAIgAxCIAUEBDwsgAEG4A2oiBCABIAIgASgCQCIBQQJ0aiADIAFBfWxqEIcBIgFFBEBBAA8LIAEQ1gkgACgCBCABIAAoAlARAwAgBBCeAgtBAQtoAQJ/AkAgACgC/AIiBEHQAGogASACIAMQhwEiAkUNACAAIARBFGogAkEYEJoBIgFFDQACQCACIAEoAgBHBEAgBCAEKAJgNgJcDAELIAQgBCgCXDYCYCAAIAEQ2glFDQELIAEhBQsgBQs5AAJAIAAgACgC9ANBAEcgACgCnAEgASACIAMgAC0A/ANFQQAQ0AYiAw0AIAAQ2wkNAEEBIQMLIAMLlQEBA38gACIBIQMDQAJ/AkACQAJAAkAgAy0AACICQQprDgQBAwMBAAsgAkEgRg0AIAJFDQEMAgsgACAAIAFGDQIaQSAhAiABQQFrLQAAQSBHDQEgAQwCCyAAIAFHBH8gAUEBayIAIAEgAC0AAEEgRhsFIAALQQA6AAAPCyABIAI6AAAgAUEBagsgA0EBaiEDIQEMAAsAC1kBAn8jAEEQayIEJAAgBCABNgIMIAAoApwBIgUgASACIARBDGogBSgCABEGACEFIAAgACgCnAEgASACIAUgBCgCDCADIAAtAPwDRUEBQQAQ5gkgBEEQaiQACxMAIABBgAFzQQJ0Qfy1CGooAgALLAEBfwNAIAAEQCAAKAIEIAAoAhAgASgCFBEBACAAIAEoAhQRAQAhAAwBCwsL1AEBBn8gACgCFCAAKAIMQQJ0aigCACgCHCAAKAIsaiEBIAAoAiQhBCAAKAJQIQIDQCACIARJBEAgAi0AACIDBH8gA0HwigVqLQAABUEBCyEDIAFBAXRB8IwFai8BAARAIAAgAjYCRCAAIAE2AkALA0ACQANAIAEgAUEBdCIFQdCSBWouAQAgA2pBAXQiBkGwjgVqLgEARg0BIAVBsJQFai4BACIBQd0ASA0ACyADQZCWBWotAAAhAwwBCwsgAkEBaiECIAZB0JYFai4BACEBDAELCyABC5cGAQh/IAEoAgAhBQJAIAMtAAAiBkUEQCAFBEBBHA8LQQEhC0EoIQcMAQtBASELQSghByAFRQ0AIAUtAABB+ABHDQAgBS0AAUHtAEcNACAFLQACQewARw0AIAUtAAMiCARAIAhB7gBHDQEgBS0ABEHzAEcNASAFLQAFDQFBJw8LQQEhCkEAIQtBJiEHC0EBIQhBASEMQQAhBQJAA0AgBkH/AXEiCQRAAkAgCEH/AXFFIAVBJEtyRQRAIAkgBUHQswhqLQAARg0BC0EAIQgLAkAgCyAMcUUNACAFQR1NBEAgCSAFQYC0CGotAABGDQELQQAhDAsCQCAALQD0AUUNACAJIAAtAPADRw0AQQIhBiAJQSFrDl4AAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAwADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMAAwsgAyAFQQFqIgVqLQAAIQYMAQsLIAchBiAKIAVBJEYgCEH/AXFBAEdxRw0AIAxFIAVBHUdyRQRAQSgPCyAFIAAtAPADQQBHaiEHAkAgACgCkAMiBQRAIAUoAhggB0gEQEEBIQYgB0Hn////B0sNAyAFKAIQIAdBGGoiCCAAKAIQEQAAIglFDQMgBSAINgIYIAUgCTYCEAsgACAFKAIENgKQAyAFKAIQIQgMAQtBASEGQRwgACgCDBECACIFRSAHQef///8HS3INASAFIAdBGGoiBiAAKAIMEQIAIgg2AhAgCEUEQCAFIAAoAhQRAQBBAQ8LIAUgBjYCGAsgBSAHNgIUIAggAyAHEB8aIAAtAPADIgYEQCAFKAIQIAdqQQFrIAY6AAALIAUgAjYCDCAFIAE2AgAgBSABKAIENgIIIAECfwJAIAMtAAANACABIAAoAvwCQZgBakcNAEEADAELIAULNgIEIAUgBCgCADYCBCAEIAU2AgBBACEGIAJFDQAgACgCcCICRQ0AIAAoAgQgASgCACADQQAgASgCBBsgAhEFAAsgBgtuAQN/IwBBEGsiASQAAkAgABC0BCICBEBB4I8LQQA2AgAgAUEANgIMIAIgAUEMakEKELEEIQACQEHgjwsoAgANACACIAEoAgwiA0YNACADLQAARQ0CC0HgjwtBADYCAAtBACEACyABQRBqJAAgAAs+AQR/IAAoAgAhASAAKAIEIQMDQCABIANGBEBBAA8LIAAgAUEEaiIENgIAIAEoAgAhAiAEIQEgAkUNAAsgAgu8AgIBfgJ/IAAEQCAAIAAQPCIEQXhxaiEDIAStIQIDQCACQpXTx9618qnSRn4hAiAAIANGRQRAIAIgACkAAEKV08fetfKp0kZ+IgJCL4ggAoVCldPH3rXyqdJGfoUhAiAAQQhqIQAMAQsLIAJCgICAgICAgIABQgAgARuFIQICQAJAAkACQAJAAkACQAJAIARBB3FBAWsOBwYFBAMCAQAHCyADMQAGQjCGIAKFIQILIAMxAAVCKIYgAoUhAgsgAzEABEIghiAChSECCyADMQADQhiGIAKFIQILIAMxAAJCEIYgAoUhAgsgAzEAAUIIhiAChSECCyACIAMxAACFIQILIAJCldPH3rXyqdJGfiICQi+IIAKFQpXTx9618qnSRn4iAkIviCAChacPC0HA2gFBhcMBQZgBQf7/ABAAAAskACAAIAEgAhCYCiAAKAJMIgAoAgggASACIAAoAgAoAggRIQAL0QMBAX8CQCABIAJGBEAgA0EANgIADAELAkACQCAAIAEgAhDlAkEJayIHQRdLQQEgB3RBk4CABHFFcg0AA0AgACABIAAoAkBqIgEgAhDlAkEJayIHQRdNBEBBASAHdEGTgIAEcQ0BCwsgASACRgRAIANBADYCAAwDCyADIAE2AgACQAJAAkADQAJAIAAgASACEOUCIgdBCWtBAkkNACAHQT1GDQIgB0ENRiAHQSBGcg0AIAdBf0YNBSABIAAoAkBqIQEMAQsLIAQgATYCAANAIAAgASAAKAJAaiIBIAIQ5QIiBEEJayIHQRdLDQJBASAHdEGTgIAEcQ0ACwwBCyAEIAE2AgAMAQsgBEE9Rw0BCyABIAMoAgBGDQADQCAAIAEgACgCQGoiASACEOUCIgNBCWtBAkkNAAJAIANBIGsOAwECAwALIANBDUYNAAsgA0EnRg0BCyAGIAE2AgBBAA8LIAUgASAAKAJAaiIENgIAA0AgAyAAIAQgAhDlAiIBRwRAIAFBOmtBdUsgAUFfcUHbAGtBZUtyIAFB3wBGIAFBLWtBAklycgRAIAQgACgCQGohBAwCBSAGIAQ2AgBBAA8LAAsLIAYgBCAAKAJAajYCAAtBAQsRACAAIAEgAkHbAEHaABDfCgumBQEKfyAAQaCICEHsAhAfIQRBACEAA0ACQAJAIABBgAFGBEAgBEH0AmohCCAEQfQGaiEJIARByABqIQdBACEAAn8DQCAAQYACRwRAAkAgASAAQQJ0IgpqKAIAIgVBf0YEQCAAIAdqQQE6AAAgCCAAQQF0akH//wM7AQAgCSAKakEBOwEADAELIAVBAEgEQEEAIAJFIAVBfElyDQQaIAAgB2pBAyAFazoAACAJIApqQQA6AAAgCCAAQQF0akEAOwEADAELIAVB/wBNBEAgBUHoiAhqLQAAIgZFIAZBHEZyRSAAIAVHcQ0GIAAgB2ogBjoAACAJIApqIgYgBToAASAGQQE6AAAgCCAAQQF0aiAFQX8gBRs7AQAMAQsgBRCbBEEASARAIAAgB2pBADoAACAIIABBAXRqQf//AzsBACAJIApqQQE7AQAMAQsgBUH//wNLDQUCQEEBIAV0IgwgBUEFdkEHcUECdCINIAVBCHYiBkGQiwhqLQAAQQV0ckGg/gdqKAIAcQRAIAAgB2pBFjoAAAwBCyAAIAdqIQsgBkGQjQhqLQAAQQV0IA1yQaD+B2ooAgAgDHEEQCALQRo6AAAMAQsgC0EcOgAACyAJIApqIgYgBSAGQQFqEJwEOgAAIAggAEEBdGogBTsBAAsgAEEBaiEADAELCyAEIAI2AuwCIAQgAzYC8AIgAgRAIARB1AA2AugCIARB1AA2AuQCIARB1AA2AuACIARB1QA2AtwCIARB1QA2AtgCIARB1QA2AtQCIARB1gA2AtACIARB1gA2AswCIARB1gA2AsgCCyAEQdcANgI8IARB2AA2AjggBAsPCyAAQeiICGotAAAiBkUgBkEcRnINASABIABBAnRqKAIAIABGDQELQQAPCyAAQQFqIQAMAAsAC0kBAX8jAEEQayIBJAACQCAAQdjnABAmIgBFDQAgASABQQhqNgIAIABBtowBIAEQT0EATA0AQcDhCiABKwMIOQMACyABQRBqJAALcwECfwJAIAAoApgBIgJFBEAgABCCBSICNgKcASAAIAI2ApgBDAELQdzlCigCACIDRQ0AIAMoAgQiAg0AEIIFIQJB3OUKKAIAIAI2AgQLQdzlCiACNgIAIAIgADYCACACIAE2AjQgAEEDIAFBABDlA0EARwsKACAAQY0PEJAKC0cBAX8DQCABIAAoAjBORQRAIAAoAjggAUECdGooAgAQ5wYgAUEBaiEBDAELCyAAKAI8EBggACgCNBC+ASAAKAI4EBggABAYC1gBAX9BzOUKKAIABH8DQEHQ5QooAgAgAU0EQEEADwtBzOUKKAIAIAFBAnRqKAIAKAIAIAAQTUUEQCABQQFqIQEMAQsLQczlCigCACABQQJ0aigCAAVBAAsLuQoBEX8jAEEQayIPJABByAAQVCELQdTlCigCACEEIAAoAhAoAnghDEEBIQUDQAJAAkACQAJAIAQtAAAiCkHcAEcEQCAKDQEMBAsgBEEBaiEHIAQtAAEiCkH7AGtBA0kNASAHIQQgCkHcAEYNAQsCQAJAAkACQCAKQfsAaw4DAgEAAQsgCUEBayEJDAILIApB/ABHIAlyDQEgBUEBaiEFQQAhCQwDCyAJQQFqIQkLIAlBAEgNAgwBCyAHIQQLIARBAWohBAwBCwsgBUEEEBkhByALIAE6AEAgCyAHNgI4IANBAWohESABQQFzIRIgA0EBayETQdTlCigCACEEIAJBf3MhFEEAIQcgAyEBQQAhAkEAIQVBACEJAkADQEEBIQoCQAJAAkACQAJAAkACQAJAAkADQCAKQQFxRQ0GIAQtAAAiBkEBa0H/AXFBHk0EQEEBIQpB1OUKIARBAWoiBDYCAAwBCwJAAkACQCAGQfsAaw4DAQICAAsCQAJAAkAgBkE8aw4DAQkCAAsgBkUNAyAGQdwARw0IIAQtAAEiBkH7AGtBA0kNByAGQTxrDgMHBgcFCyAFQQZxDQwgDC0AUg0HIAVBEnIhBSADIgchEAwLCyAMLQBSDQYgBUEQcUUNCwJAIAcgEU0NACAHQQFrIgIgEEYNACACIAcgAi0AAEEgRhshBwsgB0EAOgAAIAMQqgEiAkUNCSAFQW9xIQVB1OUKKAIAIQQMCgtB1OUKIARBAWo2AgAgBQ0KIAQtAAFFDQogACASQQAgAxDpBiEGIAsoAjggCUECdGogBjYCAEEBIQogCUEBaiEJQdTlCigCACEEQQQhBSAGDQEMCgsgFCAGRXEgBUEQcXINCSAFQQRxRQRAQcgAEFQhDSALKAI4IAlBAnRqIA02AgAgCUEBaiEJCyACBEAgDSACNgI8CyAFQQVxRQRAIAMgCGpBIDoAACAFQQFyIQUgCEEBaiEICyAFQQFxBEAgAyAIaiEEAkAgCEECSA0AIAEgBEEBayICRg0AIAIgBCACLQAAQSBGGyEEC0EAIQggBEEAOgAAIAAgA0ECQQAgDC0AUhsgDCsDECAMKAIEIAwoAggQ3QIhASANQQE6AEAgDSABNgI0IAMhAQtBACECQQAhCkHU5QooAgAiBC0AACIGRQ0ACyAGQf0ARg0EQQAhBQwHCyAGRQ0CIAZBIEcNACAMLQBSQQFGDQBBASEODAELIAMgCGpB3AA6AAAgBUEJciEFIAhBAWohCAtB1OUKIARBAWoiBDYCAAsgBUEEcQRAIAQtAABBIEcNBQsgBUEYcUUEQCAFIAVBCXIgBC0AAEEgRhshBQsCQCAFQQhxBEAgAyAIaiEKAkACQCAOIAQtAAAiBkEgR3INACAKQQFrLQAAQSBHDQAgDC0AUkEBRw0BCyAKIAY6AAAgCEEBaiEICyAIIBNqIAEgDhshAQwBCyAFQRBxRQ0AAkAgDiAELQAAIgZBIEdyRQRAIAMgB0YNASAHQQFrLQAAQSBGDQELIAcgBjoAACAHQQFqIQdB1OUKKAIAIQQLIAdBAWsgECAOGyEQC0HU5QogBEEBaiIENgIAA0AgBCwAACIGQb9/Sg0GQdTlCiAEQQFqIgQ2AgAgAyAIaiAGOgAAIAhBAWohCAwACwALQdTlCiAEQQFqNgIACyALIAk2AjAMBAsgDyADEDxBAWo2AgBBuPwIKAIAQdPzAyAPEB4aECgAC0HU5QogBEEBaiIENgIADAELCyALEOcGIAIQGEEAIQsLIA9BEGokACALC64EAgZ/CHxEAAAAAAAAKEAhESABQQJ0QQRqQRAQGSEFA0AgASAERgRAAkAgAigCAEEMdkH/AHFBAWshCEEAIQRBACECA0AgAiEGIAEgBEYNASARIAAgBEEBaiIHQQAgASAHSxtBBHRqIgkrAwAgACAEQQR0aiICKwMAIgyhIg8gCSsDCCACKwMIIg2hIhAQUKMhCgJAAkACQCAIDgUBAgIAAAILIApEAAAAAAAACECjIQoMAQsgCkQAAAAAAADgP6IhCgsgDCEOIA0hCyADBEAgCkQAAAAAAADgP6IiDiAQoiANoCELIA4gD6IgDKAhDgsgBSAGQQR0aiICIAs5AwggAiAOOQMAIAJEAAAAAAAA8D8gCqEiCyAQoiANoDkDKCACIAsgD6IgDKA5AyAgAiAKIBCiIA2gOQMYIAIgCiAPoiAMoDkDECAGQQNqIQIgByEEIANFDQAgBSACQQR0aiICIApEAAAAAAAA4L+iRAAAAAAAAPA/oCILIBCiIA2gOQMIIAIgCyAPoiAMoDkDACAGQQRqIQIMAAsACwUgESAAIARBAWoiB0EAIAEgB0sbQQR0aiIGKwMAIAAgBEEEdGoiBCsDAKEgBisDCCAEKwMIoRBQRAAAAAAAAAhAoxAqIREgByEEDAELCyAFIAZBBHRqIgAgBSkDADcDACAAIAUpAwg3AwggACAFKQMQNwMQIAAgBSkDGDcDGCAAIAUpAyA3AyAgACAFKQMoNwMoIAULYgECfyMAQRBrIgEkAAJAIAAoAgAiAgRAIAIgACgCBCIAEMwCIgJFDQEgAUEQaiQAIAIPC0Gb3AFB9YEBQStBuToQAAALIAEgAEEBajYCAEG4/AgoAgBB0/MDIAEQHhoQKAALXAECfwJAIAAoAgAiAwRAIAFFDQEgACgCBCIAIAEQPCICRiADIAEgACACIAAgAkkbEOoBRXEPC0G+3AFB9YEBQeQAQeTBABAAAAtBkdwBQfWBAUHlAEHkwQAQAAAL0QIBBX8jAEEQayIFJAACQAJAIAAQJCAAEEZPBEAgABBGIgRBAWoiAiAEQQF0QYAIIAQbIgMgAiADSxshAiAAECQhBgJAIAAtAA9B/wFGBEAgBEF/Rg0DIAAoAgAhAyACRQRAIAMQGEEAIQMMAgsgAyACEDoiA0UNBCACIARNDQEgAyAEakEAIAIgBGsQMxoMAQsgAkEBEBkiAyAAIAYQHxogACAGNgIECyAAQf8BOgAPIAAgAjYCCCAAIAM2AgALIAAQJCECAkAgABAnBEAgACACaiABOgAAIAAgAC0AD0EBajoADyAAECRBEEkNAUG8wANByYQBQZ0CQZS6ARAAAAsgACgCACACaiABOgAAIAAgACgCBEEBajYCBAsgBUEQaiQADwtB38kDQZiFAUHNAEHvugEQAAALIAUgAjYCAEG4/AgoAgBB0/MDIAUQHhoQKAAL5hoDDX8FfAJ+IwBB4AlrIgMkAAJAAkAgAgRAIAItAAANAQsgAEJ/NwIADAELAn9BkOEKKAIABEBBwOUKKAIADAELQcDlCigCACIFQYjhCigCACIEQcjlCigCAEYNABpByOUKIAQ2AgBBACAFRQ0AGiAFEJsBGkHA5QpBADYCAEEACyABKAIQKAIIKwMYIRJFBEBBwOUKQbSDCkHE9AkoAgAQlwE2AgALAn4CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIQogoiBEUEQEEBQdAAEBkiBEEAIAIQsgE2AgggBBChCkUNEyAEKAIUIgFFDQFBACECIANBADYCsAEgA0IANwOoASADQgA3A6ABAkAgA0GgAWpBAUEUIAEQxwVBFEcNAANAIAJBCkYNASACQQR0IQEgAkEBaiECIANBoAFqIAFBkPwHaiIFKAIAIAFBlPwHaigCABDYAQ0ACyAEIAUoAggiAjYCGCAEIAUoAgw2AhwCQAJAIAJBCWsOAgABBgsCQCADQaABakE+QRQQ/QINAANAIAQoAhQQsAIiAUE+Rg0BIAFBf0cNAAsMBQsgA0EANgLMCSADQcwJaiIBQQFBBCAEKAIUEMcFQQRHDQQgAUEBciEBA0AgAygCzAlBvObZuwZGBEBBCCECIARBCDYCGCAEQYOGATYCHAwHCyAEKAIUELACIgJBf0YNBSABLwAAIQUgAyABLQACOgDOCSADIAU7AcwJIAMgAjoAzwkMAAsACyADKAKoAUHXiomCBUcNESAEQQs2AhggBEG54QA2AhwMBQsgBEEANgIYIARBo7ADNgIcDAULIAQQ7wYMEAtBzo0BQdHGAUH0BUHU6wAQAAALIAQoAhghAgsgAg4NAQQCAwULBgwJDAwACgwLIARBADYCQCAEKAIUQQ9BABCvAhogBCgCFBCwAiAEKAIUIQFB2ABHDQYgAUEYQQAQrwIaIAQoAhRBBCADQaABahCgAkUNCyAEKAIUQQQgA0HMCWoQoAINBwwLCyAEIAQoAggQ6AYiATYCRCABDQogAyAEKAIINgIAQbaSBCADECsMDQsgBEEANgJAIAQoAhRBBkEAEK8CGiAEKAIUQQIgA0GgAWoQoAJFDQkgBCgCFEECIANBzAlqEKACRQ0JIAQgAygCoAG3OQMwIAQgAygCzAm3OQM4DAkLIARBADYCQCAEKAIUQRBBABCvAhogBCgCFEEEIANBoAFqEJ8CRQ0IIAQoAhRBBCADQcwJahCfAkUNCCAEIAMoAqABtzkDMCAEIAMoAswJtzkDOAwICyAEQQA2AkAgBCgCFEEQQQAQrwIaIAQoAhRBAiADQaABahCgAkUNByAEKAIUQQIgA0HMCWoQoAJFDQcgBCgCFEECIANBwAlqEKACRQ0HIAQoAhRBAiADQbAJahCgAkUNByAEIAMoAswJIAMoAqABQRB0crc5AzAgBCADKAKwCSADKALACUEQdHK3OQM4DAcLIARBADYCQCAEKAIUEOoDA0AgBCgCFEEBIANBoAFqEJ8CRQRAIAMgBCgCCDYCEEHfyAQgA0EQahArDAgLIAMoAqABIgJB/wFGDQBBtf0HIAJBCxD9Ag0AIAQoAhQhAQJAAkACQCACQcABaw4DAAIBAgsgAUEDQQEQrwINCSAEKAIUQQIgA0HACWoQnwJFDQkgBCgCFEECIANBsAlqEJ8CRQ0JIAQgAygCwAm3OQM4IAQgAygCsAm3OQMwDAkLIAFBA0EBEK8CDQggBCgCFEECIANBwAlqEJ8CRQ0IIAQoAhRBAiADQbAJahCfAkUNCCAEIAMoAsAJtzkDOCAEIAMoArAJtzkDMAwICyABQQIgA0HMCWoQnwJFDQcgBCgCFCADKALMCUECa0EBEK8CGgwACwALIARByAA2AkAgBCgCFBDqAwNAIANBoAFqIgFBgAggBCgCFBDDB0UNBiABQZrnARDABSIBRQ0AIAMgA0GoCWo2AiwgAyADQbAJajYCKCADIANBwAlqNgIkIAMgA0HMCWo2AiAgAUHMuQEgA0EgahBPQQRHDQALIAQgAygCzAkiAbc5AyAgBCADKALACSICtzkDKCAEIAMoArAJIAFrtzkDMCAEIAMoAqgJIAJrtzkDOAwFCyABQRpBABCvAhogBCgCFEECIANBoAFqEKACRQ0EIAQoAhRBAiADQcwJahCgAkUNBAsgBCADKAKgAbc5AzAgBCADKALMCbc5AzgMAwsgA0IANwOoASADQgA3A6ABIAQoAhQQ6gMgA0HUCWohCUEAIQUCQANAIAcgBUEBcXENAQJ/A0AgBCgCFBCwAiIBQX9HBEBBACABQQpGDQIaIANBoAFqIAHAEO0GDAELC0EBCyADQaABahCgCiEIAkADQCAIQQJqIQxBACECAkADQCACIAhqIg0sAAAiBkUNAUEBIQECQCAGQeEAa0EZTQRAA0AgASIOQQFqIQEgCCACIgZBAWoiAmotAAAiCkHfAXHAQcEAa0EaSQ0ACyAKQT1HDQIgBiAMai0AAEEiRw0CQQAhASAGQQNqIgYhAgNAIAIgCGotAAAiCkUNAyAKQSJGDQIgAUEBaiEBIAJBAWohAgwACwALIAJBAWohAgwBCwsgAyAONgLQCSADIA02AswJIAMgAykCzAk3A5gBIAMgBiAIaiICNgLUCSADIAE2AtgJIAEgAmpBAWohCCADQZgBakHY/gAQ7AYEQCADIAkpAgA3A0ggA0HIAGoQ6wYhAiADIANBvQlqIgE2AkQgAyADQcAJaiIGNgJAAkAgAkHYNyADQUBrEE9BAkcEQCADIAY2AjAgAkG2jAEgA0EwahBPQQFHDQFBgx0hAQtBASEFIAMrA8AJIAEQnwohEAsgAhAYIAdBACEHRQ0CQQEhBwwBCyADIAMpAswJNwOQASADQZABakHZIRDsBgRAIAMgCSkCADcDaCADQegAahDrBiECIAMgA0G9CWoiATYCZCADIANBwAlqIgY2AmACQCACQdg3IANB4ABqEE9BAkcEQCADIAY2AlAgAkG2jAEgA0HQAGoQT0EBRw0BQYMdIQELQQEhByADKwPACSABEJ8KIRELIAIQGEEBIQIgBUEBcUEAIQVFDQIMAwsgAyADKQLMCTcDiAEgA0GIAWpB5hIQ7AZFDQEgAyAJKQIANwOAASADQYABahDrBiEBIAMgA0GwCWo2AnAgAyADQagJajYCdCABQaqMASADQfAAahBPQQJGBEAgAysDsAkhFEEBIQ8gAysDqAkhEwsgARAYDAELCyAFIQILIA8EQCAQIBQgAkEBcRshECARIBMgBxshEQwCCyACIQVFDQALIBBEAAAAAAAAAAAgAkEBcRshECARRAAAAAAAAAAAIAcbIRELIARBADYCQAJAIBBEAAAAAAAAAABmRSAQRAAAwP///99BZUVyRQRAIAQCfyAQmUQAAAAAAADgQWMEQCAQqgwBC0GAgICAeAu3OQMwIBFEAAAAAAAAAABmRSARRAAAwP///99BZUVyDQEgBAJ/IBGZRAAAAAAAAOBBYwRAIBGqDAELQYCAgIB4C7c5AzggA0GgAWoQXwwEC0Hs0AFB0cYBQeICQYWQARAAAAtB19IBQdHGAUHkAkGFkAEQAAALIARBADYCQCAEKAIUQQZBABCvAhogBCgCFEEBIANBoAFqEJ8CRQ0BIAQoAhRBASADQcwJahCfAkUNASAEIAMoAqABtzkDMCAEIAMoAswJtzkDOAwBC0EAIQEgBEEANgJAIAQoAhQQ6gMgBCgCFCIFRQ0CAkADQCABQQlGBEBBACECA0AgAkH6EmosAAAiB0UNAyAFELACIgFBf0YNBCACQQFqIAFBL0YgASAHRhshAgwACwALIAFB+hJqLQAAIQcgAUEBaiIBIQIDQCACQfoSai0AACIGRQ0BIAJBAWohAiAGIAdHDQALC0GDzgFB0cYBQegEQbQ6EAAACyADQdgJakIANwIAIANCADcC0AkgAyAFNgLMCSADQcwJaiIBEJ4KIANB0AlqIQICQCAFELACQdsARw0AIAEQhgUgA0GgAWoQhQUNACABEIYFIANBqAFqEIUFDQAgARCGBSADQbABahCFBQ0AIAEQhgUgA0G4AWoQhQUgAhBfDQEgBCADKwOgASIQOQMgIAQgAysDqAEiETkDKCAEIAMrA7ABIBChOQMwIAQgAysDuAEgEaE5AzgMAQsgAhBfCyAEEO8GQcDlCigCACIBIARBASABKAIAEQQAGiAERQ0DCwJ/IAQrAzhEAAAAAAAAUkCiIAQoAkAiAbcgEkQAAAAAAABYQCASRAAAAAAAAPA/ZhsgARsiEKMiEZlEAAAAAAAA4EFjBEAgEaoMAQtBgICAgHgLrQJ/IAQrAzBEAAAAAAAAUkCiIBCjIhCZRAAAAAAAAOBBYwRAIBCqDAELQYCAgIB4C60hFkIghgwDC0GW2wFB0cYBQeEEQbQ6EAAACyAEKAIIIgEEQEEAIAFBABCOARoLIAQQGAtC/////w8hFkKAgICAcAshFSAAIBUgFoQ3AgALIANB4AlqJAALJwEBfwJAIAAtABFBAUcNACAAKAIUIgFFDQAgARDtAyAAQQA2AhQLC4cDAQN/QQEhBCAAIgIhAwJAAkACQCABDgICAQALAkADQCACIgEtAAAiA0UNASABQQFqIQIgA0H/AEkNACABQQJqIQJBACEEIANB/AFxQcABRg0AC0G45QotAABBuOUKQQE6AAAgACEDQQFxDQJB9Y8EQQAQKwwCCyAAIQMgBA0BCyAAIQEjAEEQayICJAAgAkIANwMIIAJCADcDAANAIAEtAAAiAwRAIANB/wBJBH8gAUEBagUgAS0AAUE/cSADQQZ0ciEDIAFBAmoLIQEgAiADwBCcAQwBCwsgAhCcAyACQRBqJAAhAwtBKCEBIAMhAgJAA0ACQCABwBCHBQJAIAItAAAiAUEoa0ECSSABQdwARnJFBEAgAQ0BQSkQhwUgACADRwRAIAMQGAsCQBDQAwRAEKAEQQ9GDQELQQAQhwULENADRQ0CQbflCkEAOgAADAQLQdwAEIcFIAItAAAhAQsgAkEBaiECDAELC0Gs5QpBADYCAAsQ0AMhAEGo5QpBqOUKKAIAIAAbC6oCAQN/IwBBoAhrIgUkAAJAAkACQCABRQ0AQQEhBANAIARBAXFFDQIgASADQQJ0aigCACIERQ0BIANBAWohAyAELQAAQQBHIQQMAAsACwNAIAIoAgAiBARAIAAgBBAaGiAAQeOKBRAaGiACQQRqIQIMAQsLIAFFDQELQQAhBANAIAEgBEECdGooAgAiAkUNAQJAIAItAABFDQAgAhCLBSIDRQRAIAUgAjYCAEHchAQgBRArDAELIANB0cEAEK4EIgIEQANAIAVBIGoiA0EAQYAIEDMaIAAgAyADQQFBgAggAhDHBSIDEKsCGiADQf8HSw0ACyAAQeOKBRAaGiACEO0DDAELIAUgAzYCEEHAhAQgBUEQahArCyAEQQFqIQQMAAsACyAFQaAIaiQAC58DAgZ8A38gBEEBcSEMAkAgAkECRgRAIAArAwgiBiAAKwMYIAahIgWgIQcgBiAFoSEGIAArAwAiBSAAKwMQIAWhIgigIQogBSAIoSEIDAELIAArAwAiCiEIIAArAwgiByEGA0AgAiALRg0BIAAgC0EEdGoiDSsDCCIFIAcgBSAHZBshByANKwMAIgkgCiAJIApkGyEKIAUgBiAFIAZjGyEGIAkgCCAIIAlkGyEIIAtBAWohCwwACwALIARBAnEhACAGIAcgBqFEAAAAAAAA4D+ioCEFIAggCiAIoUQAAAAAAADgP6KgIQkCfyAMBEAgASAJOQMAIAEgBSAFmiAAGzkDCCABIAkgCKEgBSAGoRBQIgNEAAAAAAAA0D+iOQMQQRgMAQsgByAFoSEHIAogCaEhCCADEEQhCiADEFghAwJ8IAAEQCAHIAOiIgMgBaAhBiAFIAOhDAELIAUgBqGaIAOiIAWhIQYgByADoiAFoQshByABIAY5AxggASAHOQMIIAEgCSAIIAqiIgOhOQMAIAMgCaAhA0EQCyABaiADOQMAC40EAQV/IwBBMGsiAyQAIAMgADYCLCABQYjlCigCAEcEQEGI5QogATYCAEGM5QpBADoAAAsgA0IANwMgIANCADcDGANAIAMgAEEBajYCLCAALQAAIgIEQAJAAkACQAJAAn8gAkHAAU8EQEEBIAJB4AFJDQEaQQIgAkHwAUkNARpBAyACQfgBSQ0BGkGM5QotAABBjOUKQQE6AABBAXFFBEAgAyABECA2AhBB0doEIANBEGoQKwsgAiADQRhqEKkKIQJBfwwBCyACQSZGDQFBAAshBUEAIQQgBUEAIAVBAEobIQYgAygCLCEAA0AgBCAGRg0DIAAsAABBv39KDQIgA0EYaiACwBCcASAEQQFqIQQgAC0AACECIABBAWohAAwACwALIANBLGoQqAoiAkUEQEEmIQIMAwsgAkH+AE0NAiACQf4PTQRAIANBGGogAkEGdkFAchCcASACQT9xQYB/ciECDAMLIANBGGoiACACQQx2QWByEJwBIAAgAkEGdkE/cUGAf3IQnAEgAkE/cUGAf3IhAgwCC0GM5QotAABBjOUKQQE6AAAgAyAANgIsQQFxRQRAIAMgARAgNgIEIAMgBUEBajYCAEHk2QQgAxArCyACQf8BcSADQRhqEKkKIQIMAQsgAyAANgIsCyADQRhqIALAEJwBIAMoAiwhAAwBCwsgA0EYahCcAyADQTBqJAALwQEBBH8jAEEwayIEJAAgBCACNgIkIAQgATYCICAEQgA3AxggBCADIANBMGoiBSADKAIAQQNxIgZBA0YbKAIoNgIoIAQgAyADQTBrIgcgBkECRhsoAig2AiwgACAEQRhqQQEgACgCABEEABogBCABNgIMIAQgAjYCCCAEQgA3AwAgBCADIAcgAygCAEEDcSIBQQJGGygCKDYCECAEIAMgBSABQQNGGygCKDYCFCAAIARBASAAKAIAEQQAGiAEQTBqJAALMwEBfwJAIAQNAEEAIQQgARCTAiIFQQJLDQAgACAFIAJB5ooFECEhBAsgASAEIAMQciAEC04AIAEgAEGE4wooAgBEAAAAAAAALEBEAAAAAAAA8D8QSzkDACABIABBiOMKKAIAQdjvABCRATYCCCABIABBjOMKKAIAQfD6ABCRATYCDAs8AQJ/A0ACQCABIANBAnRqKAIAIgRFDQAgAARAIAAgBBBJRQ0BCyADQQFqIQMMAQsLIAIgA0ECdGooAgALMwAgACABKAIQKAKUASIBKwMARAAAAAAAAFJAojkDACAAIAErAwhEAAAAAAAAUkCiOQMIC2UBAn8CQCAARQ0AIAAsAAAiA0UNAAJAIABB95sBEC5FDQAgAEGc5AAQLkUNAEEBIQIgAEGzkgEQLkUNACAAQdUzEC5FDQAgASECIANBMGtBCUsNACAAEJECQQBHIQILIAIPCyABC/MCAgF/AnwjAEGgAWsiBiQAIAYgACAFENMDIgggCKIiBzkDCCAEIAU2AgggBCABIAJBBHRqIgUpAwA3AxAgBCAFKQMINwMYAkAgAiADTw0AIAcgBSsDACABIAJBA2oiAEEEdGoiAysDAKEiByAHoiAFKwMIIAMrAwihIgcgB6KgZEUNACAAIQILIAYgASACQQR0aiIAKQM4NwMYIAYgACkDMDcDECAGIAApAyg3AyggBiAAKQMgNwMgIAYgACkDGDcDOCAGIAApAxA3AzAgBiAFKQMINwNIIAYgBSkDADcDQCAGQUBrIQEgCEQAAAAAAAAAAGQEQCAGIAE2AlggBiAGQQhqNgJcIAZB2ABqQSYgBkEQakEAEJIFCyAAIAEpAwA3AwAgACABKQMINwMIIAAgBikDODcDGCAAIAYpAzA3AxAgACAGKQMoNwMoIAAgBikDIDcDICAAIAYpAxg3AzggACAGKQMQNwMwIAZBoAFqJAAgAgvxAgIBfwJ8IwBBoAFrIgYkACAGIAAgBRDTAyIIIAiiIgc5AwggBCAFNgIMIAQgASADQQR0aiIAIgVBMGopAwA3AyAgBCAAKQM4NwMoAkAgAiADTw0AIAcgACsDACAFKwMwoSIHIAeiIAArAwggACsDOKEiByAHoqBkRQ0AIANBA2shAwsgBiABIANBBHRqIgBBCGopAwA3A0ggBiAAKQMANwNAIAYgACkDGDcDOCAGIAApAxA3AzAgBiAAKQMoNwMoIAYgACkDIDcDICAGIAUpAzA3AxAgBiAFKQM4NwMYIAhEAAAAAAAAAABkBEAgBiAGQQhqNgJcIAYgBkEQaiIBNgJYIAZB2ABqQSYgAUEBEJIFCyAAIAZBQGsiASkDADcDACAAIAEpAwg3AwggACAGKQM4NwMYIAAgBikDMDcDECAAIAYpAyg3AyggACAGKQMgNwMgIAAgBikDGDcDOCAAIAYpAxA3AzAgBkGgAWokACADC18BAX8DQAJAAkAgASgCACIDBH8gAEUNASAAIAMgAxA8IgMQ6gENAiACIAIoAgAgASgCBHI2AgAgACADagUgAAsPC0HA2gFB+YMBQQxB/v0AEAAACyABQQhqIQEMAAsAC/sCAQR/IwBBEGsiBCQAIAFBADYCACACIAAQLxCDAkEARyIDNgIAAkBBmOMKKAIAIgVFDQACQCAAIAUQQSIFLQAARQ0AQYDpByEDA0AgAygCACIGRQ0BIAUgBhBJBEAgA0EMaiEDDAEFIAEgAygCBDYCACACIAMoAggiAzYCAAwDCwALAAsgAigCACEDCwJAIANBAUcNACAAEC9BAkHfuAFBABAhIgNFDQAgACADEEEiAy0AAEUNACADIAIQvwoLAkAgASgCAEEBRw0AIAAQL0ECQdT0AEEAECEiA0UNACAAIAMQQSIDLQAARQ0AIAMgARC/CgsgACgCEC0AmQFBAUYEQCAAIABBMGsiAyAAKAIAQQNxQQJGGygCKBAvIAAgAyAAKAIAQQNxIgNBAkYbKAIoIABBMEEAIANBA0cbaigCKEEAQQAQYCAEQQxqIARBCGoQ/QYgAiACKAIAIAQoAgxyNgIAIAEgASgCACAEKAIIcjYCAAsgBEEQaiQAC8MXAgh/DXwjAEHwAGsiByQAAkACQAJAAkACQAJAIAAgAUECdGooAgAiCSgCECIGLQAsDQAgBi0AVA0AIAYtADEhCCAGLQBZIQoMAQsgBi0AMSIIQQhxDQEgBi0AWSIKQQhxDQEgCEEFcUUNACAIIApGDQILQQFBfyAJQTBBACAJKAIAQQNxQQNHG2ooAigiDCgCECIJKwMYIg4gBisDGKAiESAOIAYrA0CgIhJmIgsbIAkrAxAiEyAGKwM4oCEXIBMgBisDEKAhFSAJKwNgIQ4gCCAKEI8FIQggBEQAAAAAAADgP6IgArijRAAAAAAAAABAECIhDyARIBKgRAAAAAAAAOA/oiEYRAAAAAAAAAAAIQQgDiATIA6gIhAgF6FEAAAAAAAACECiECohFCAOIBAgFaFEAAAAAAAACECiECohEEF/QQEgCxsgCEHBAEcgCEEgR3EgESASYnIbtyAPoiEWQQAhCANAIAIgCEYNBCAAIAFBAnRqKAIAIQYgByATIAMgDqAiDqAiDzkDQCAHIBg5AzggByAPOQMwIAcgDzkDICAHIBI5A2ggByASIBYgBKAiBKEiDzkDWCAHIBc5A2AgByAXIAMgFKAiFEQAAAAAAAAIQKOgOQNQIAcgDzkDSCAHIBE5AwggByARIASgIg85AyggByAPOQMYIAcgFTkDACAHIBUgAyAQoCIQRAAAAAAAAAhAo6A5AxACQCAGKAIQKAJgRQ0AIAZBMEEAIAYoAgBBA3FBA0cbaigCKBAvIQogBigCECgCYCIJIAlBIEEYIAooAhAoAnRBAXEbaisDACIPRAAAAAAAAOA/oiAOIAwoAhAiCisDEKCgOQM4IAorAxghGSAJQQE6AFEgCSAZOQNAIAMgD2NFDQAgDiAPIAOhoCEOCyABQQFqIQEgBiAGQVBBACAGKAIAQQNxQQJHG2ooAiggB0EHIAUQngEgCEEBaiEIDAALAAsgCEECcQ0BIAYtAFkiCkECcQ0BQQFBfyAJQTBBACAJKAIAQQNxQQNHG2ooAigiDCgCECIJKwMYIg4gBisDGKAiESAOIAYrA0CgIhJmIgsbIAkrAxAiEyAGKwM4oCEXIBMgBisDEKAhFSAJKwNYIQ4gCCAKEI8FIQggBEQAAAAAAADgP6IgArijRAAAAAAAAABAECIhDyARIBKgRAAAAAAAAOA/oiEYRAAAAAAAAAAAIQQgDiAXIA6gIBOhRAAAAAAAAAhAohAqIRQgDiAVIA6gIBOhRAAAAAAAAAhAohAqIRBBf0EBIAsbIAhBwwBHIAhBDEdxIBEgEmJyG7cgD6IhFkEAIQgDQCACIAhGDQMgACABQQJ0aigCACEGIAcgEyADIA6gIg6hIg85A0AgByAYOQM4IAcgDzkDMCAHIA85AyAgByASOQNoIAcgEiAWIASgIgShIg85A1ggByAXOQNgIAcgFyADIBSgIhREAAAAAAAACECjoTkDUCAHIA85A0ggByAROQMIIAcgESAEoCIPOQMoIAcgDzkDGCAHIBU5AwAgByAVIAMgEKAiEEQAAAAAAAAIQKOhOQMQAkAgBigCECgCYEUNACAGQTBBACAGKAIAQQNxQQNHG2ooAigQLyEKIAYoAhAoAmAiCSAMKAIQIgsrAxAgDqEgCUEgQRggCigCECgCdEEBcRtqKwMAIg9EAAAAAAAA4L+ioDkDOCALKwMYIRkgCUEBOgBRIAkgGTkDQCADIA9jRQ0AIA4gDyADoaAhDgsgAUEBaiEBIAYgBkFQQQAgBigCAEEDcUECRxtqKAIoIAdBByAFEJ4BIAhBAWohCAwACwALIAhBBHENACAIQQFxBEAgCUEwQQAgCSgCAEEDcUEDRxtqKAIoIgwoAhAiCSsDGCEUIAkrA1AgBisDQCETIAYrAxghFSAIIAoQjwUhCCAJKwMQIg4gBisDEKAiESAOIAYrAzigIhKgRAAAAAAAAOA/oiEYRAAAAAAAAAAAIQ4gA0QAAAAAAADgP6IgArijRAAAAAAAAABAECIhD0QAAAAAAADgP6IiAyADIBQgE6AiE6AgFKFEAAAAAAAACECiECohFyADIAMgFCAVoCIVoCAUoUQAAAAAAAAIQKIQKiEQIA9BAEEBQX8gESASZhsiBmsgBiAIQcMARhu3oiEWQQAhCANAIAIgCEYNAyAAIAFBAnRqKAIAIQYgByAUIAQgA6AiA6EiDzkDSCAHIA85AzggByAYOQMwIAcgDzkDKCAHIBM5A2ggByATIAQgF6AiF0QAAAAAAAAIQKOhOQNYIAcgEjkDYCAHIBIgFiAOoCIOoSIPOQNQIAcgDzkDQCAHIBE5AwAgByARIA6gIg85AyAgByAVOQMIIAcgFSAEIBCgIhBEAAAAAAAACECjoTkDGCAHIA85AxACQCAGKAIQKAJgRQ0AIAZBMEEAIAYoAgBBA3FBA0cbaigCKBAvIQogBigCECgCYCIJIAwoAhAiCysDGCADoSAJQRhBICAKKAIQKAJ0QQFxG2orAwAiD0QAAAAAAADgv6KgOQNAIAsrAxAhGSAJQQE6AFEgCSAZOQM4IAQgD2NFDQAgAyAPIAShoCEDCyABQQFqIQEgBiAGQVBBACAGKAIAQQNxQQJHG2ooAiggB0EHIAUQngEgCEEBaiEIDAALAAtBv6MDQdzCAUG3CUHFpAEQAAALIwBB8ABrIggkAEQAAAAAAADwP0QAAAAAAADwvyAAIAFBAnRqKAIAIglBMEEAIAkoAgBBA3FBA0cbaigCKCIMKAIQIgYrAxAiDiAJKAIQIgkrAxCgIhQgDiAJKwM4oCISZhshESAGKwNQRAAAAAAAAOA/oiETIAYrAxgiFyAJKwNAoCEVIBcgCSsDGKAhDyAJLQAxIAktAFkQjwUhCSADRAAAAAAAAOA/oiACuKNEAAAAAAAAAEAQIiEDAkACQAJAAkACQAJAAkACQAJAAkACQCAJQSVrDg8FAQoKAgoKCgoKBQMKCgUACwJAIAlByQBrDg0GCQkKCgoKCgoKBwgJAAsCQCAJQQ5rDgIFAAQLIBEgAyAGKwNgIBIgDqGhoKIhEAwJCyARIAMgBisDWCAOIBKhoaCiIRAMCAsgESADIAYrA2AgFCAOoaGgoiEQDAcLIBEgAyAGKwNgIBQgDqGhoKIhEAwGCyAJQTlrQQJPDQULIBEgBisDWCAOIBShoSAGKwNgIBIgDqGhoEQAAAAAAAAIQKOiIRAMBAsgESADIAYrA1ggDiAUoaGgoiEQDAMLIBEgBisDWCAOIBShoaIhEAwCCyARIAMgBisDWCAOIBShoSAGKwNgIBIgDqGhoEQAAAAAAADgP6KgoiEQDAELIBEgAyADoCAGKwNYIA4gFKGhIAYrA2AgEiAOoaGgRAAAAAAAAOA/oqCiIRALIBQgEqBEAAAAAAAA4D+iIRkgEyAXIBOgIhggFaFEAAAAAAAACECiECohDiATIBggD6FEAAAAAAAACECiECohGEEAIQkDQCACIAlHBEAgACABQQJ0aigCACEGIAggFyAEIBOgIhOgIhY5A0ggCCAWOQM4IAggGTkDMCAIIBY5AyggCCAVOQNoIAggFSAEIA6gIg5EAAAAAAAACECjoDkDWCAIIBI5A2AgCCASIBEgA6IgEKAiEKEiFjkDUCAIIBY5A0AgCCAUOQMAIAggFCAQoCIWOQMgIAggDzkDCCAIIA8gBCAYoCIYRAAAAAAAAAhAo6A5AxggCCAWOQMQAkAgBigCECgCYEUNACAGQTBBACAGKAIAQQNxQQNHG2ooAigQLyELIAYoAhAoAmAiCiAKQRhBICALKAIQKAJ0QQFxG2orAwAiFkQAAAAAAADgP6IgEyAMKAIQIgsrAxigoDkDQCALKwMQIRogCkEBOgBRIAogGjkDOCAEIBZjRQ0AIBMgFiAEoaAhEwsgAUEBaiEBIAYgBkFQQQAgBigCAEEDcUECRxtqKAIoIAhBByAFEJ4BIAlBAWohCQwBCwsgCEHwAGokAAsgB0HwAGokAAv6AQEEfyMAQRBrIgQkAANAIAAiAygCECICKAJ4IgAEQCACLQBwDQELCyACKAIIIgBFBEBBAUEoEBkhACADKAIQIAA2AggLAkAgACgCBCICQdWq1SpJBEAgACgCACACQTBsIgJBMGoiBRA6IgBFDQEgACACakEAQTAQMxogAygCECgCCCIDIAA2AgAgAyADKAIEIgNBAWo2AgQgAUEQEBkhAiAAIANBMGxqIgAgATYCBCAAIAI2AgAgAEEIakEAQSgQMxogBEEQaiQAIAAPC0HfyQNBmIUBQc0AQe+6ARAAAAsgBCAFNgIAQbj8CCgCAEHT8wMgBBAeGhAoAAvQAQIFfwF8IwBBQGoiBSQAIAEoAhAiBisDYCEJA0AgBEEERkUEQCAFIARBBHQiB2oiCCACIAdqIgcrAwAgBisDEKE5AwAgCCAHKwMIIAYrAxihOQMIIARBAWohBAwBCwsgACAGKAIIKAIEKAIMIAUgAxCSBSABKAIQIQBBACEEA0AgBEEERkUEQCACIARBBHQiAWoiAyABIAVqIgErAwAgACsDEKA5AwAgAyABKwMIIAArAxigOQMIIARBAWohBAwBCwsgACAJOQNgIAVBQGskAAtqAQF/IwBBEGsiCCQAAn8CQAJAIAEgBxAuRQRAIAAgAC8BJCAGcjsBJAwBCyABIAUQLkUEQCAAIAAvASQgBHI7ASQMAQsgASADEC4NAQtBAAwBCyAIIAE2AgAgAiAIECtBAQsgCEEQaiQACy0BAX8gAygCACIERQRAQee3A0GsggFBE0HAPhAAAAsgACABIAIoAgAgBBEEAAtyAQJ/IwBBIGsiBCQAAkAgACADSQRAQQAgACAAIAIQRyIFGw0BIARBIGokACAFDwsgBCACNgIEIAQgADYCAEG4/AgoAgBBhPQDIAQQHhoQKAALIAQgACABdDYCEEG4/AgoAgBB0/MDIARBEGoQHhoQKAALVAAgByECIAYhBCAFIQMCQAJAAkACQCABQQ9rDgQDAQECAAsgAUEpRg0BC0F/IQJBngEhBCABQRxHDQAgACgCEA0AQTsPCyAAIAQ2AgAgAiEDCyADCyQBAX8jAEEQayIDJAAgAyABNgIMIAIgACABELgTIANBEGokAAtLAQJ/IAAoAgQiB0EIdSEGIAdBAXEEQCADKAIAIAYQiQchBgsgACgCACIAIAEgAiADIAZqIARBAiAHQQJxGyAFIAAoAgAoAhQRCwALIAACQCABIAAoAgRHDQAgACgCHEEBRg0AIAAgAjYCHAsLmgEAIABBAToANQJAIAIgACgCBEcNACAAQQE6ADQCQCAAKAIQIgJFBEAgAEEBNgIkIAAgAzYCGCAAIAE2AhAgA0EBRw0CIAAoAjBBAUYNAQwCCyABIAJGBEAgACgCGCICQQJGBEAgACADNgIYIAMhAgsgACgCMEEBRw0CIAJBAUYNAQwCCyAAIAAoAiRBAWo2AiQLIABBAToANgsLCgAgACABaigCAAt2AQF/IAAoAiQiA0UEQCAAIAI2AhggACABNgIQIABBATYCJCAAIAAoAjg2AhQPCwJAAkAgACgCFCAAKAI4Rw0AIAAoAhAgAUcNACAAKAIYQQJHDQEgACACNgIYDwsgAEEBOgA2IABBAjYCGCAAIANBAWo2AiQLC7MBAQN/IwBBEGsiAiQAIAIgATYCDAJAAkACfyAAEKgBIgRFBEBBASEBIAAQqQMMAQsgABD4AkEBayEBIAAoAgQLIgMgAUYEQCAAIAFBASABIAEQowsgABBCGgwBCyAAEEIaIAQNACAAIgEgA0EBahDUAQwBCyAAKAIAIQEgACADQQFqEL8BCyABIANBAnRqIgAgAkEMahDeASACQQA2AgggAEEEaiACQQhqEN4BIAJBEGokAAuTBgIJfwF8IwBBIGsiBSQAIAVBADYCHAJAIAIoAgQiBgRAIAYoAgAiA0UNASAGKAIIRQRAAkACQEHw5AooAgAiBEUNACAEIAMQLg0AQfTkCigCACEEDAELIAQQGEHw5AogAxBmIgM2AgBB9OQKIANBgPkJQSNBJEEiEO8DIgQ2AgALIAYgBDYCCAtBACEEQYzhCi0AAARAIAVBHGpBACAGKAIAEL0GGyEEC0EAIQMCQCABKAKMASIBRQ0AIAEoAgAiAUUNACACIAQgAREAACEDCwJAAkAgA0UEQCACKAIEIgEoAhghAyABKwMQIQwgAkIANwMgIAJCADcDECACQgA3AwggAiAMRDMzMzMzM/M/ojkDKCACIAxEmpmZmZmZuT+iOQMYIAIgDAJ8IAEoAgAhASACKAIAIQkgA0EBcSEHIANBAnFBAXYhAyMAQSBrIggkAAJAAkACQCABBEAgCUUNASABEOoKIgpBkAZBkAIgAxtBkARBECADGyAHG2ohC0EAIQcDQCAJLQAAIgFFDQMCQCABwEEATgRAIAEhAwwBC0EgIQNB7OQKLQAADQBB7OQKQQE6AAAgCCABNgIQQZ+RBCAIQRBqECsLAkAgCyADQQF0ai4BACIBQX9GBEBBACEBQe3kCi0AAA0BQe3kCkEBOgAAIAggAzYCAEH05gQgCBArDAELIAFBAEgNBQsgCUEBaiEJIAEgB2ohBwwACwALQe6fAUHRwAFBwAZB7hwQAAALQY8ZQdHAAUHBBkHuHBAAAAsgCisDCCEMIAhBIGokACAHuCAMowwBC0GZngNB0cABQboGQYX4ABAAAAuiOQMgIARFDQIgBEGYzwE2AgAMAQsgBEUNAQsgBigCACEBQbj8CCgCACEDIAUoAhwiBARAIAUgBDYCFCAFIAE2AhAgA0HLiAQgBUEQahAeGgwBCyAFIAE2AgAgA0GOgwUgBRAeGgsgACACKQMgNwMAIAAgAikDKDcDCCAFQSBqJAAPC0HeH0GlxAFB1QBB948BEAAAC0H4nwFBpcQBQdgAQfePARAAAAscACAAEJcFIgBB3PIJNgIAIABBBGogARCOByAACzgBAn8gARA8IgJBDWoQiwEiA0EANgIIIAMgAjYCBCADIAI2AgAgACADQQxqIAEgAkEBahAfNgIACw0AIAAgASACQn8QvgULBwAgAEEMagsnAQF/IAAoAgAhASMAQRBrIgAkACAAIAE2AgwgACgCDCAAQRBqJAALFwAgACgCCBBoRwRAIAAoAggQ1AsLIAALsgEBBn8jAEEQayICJAACQCAAIAJBDGoQgAsiBARAIAIoAgwiA0EYEEohBSABIAM2AgAgBSEAAkADQCADIAZLBEAgACAEIAJBCGoiBxDiATkDACAEIAIoAggiA0YNAiAAIAMgBxDiATkDCCADIAIoAggiBEYNAiAAQgA3AxAgBkEBaiEGIABBGGohACABKAIAIQMMAQsLIAEgBTYCBAwCCyAFEBgLQQAhBAsgAkEQaiQAIAQLNgEBfyMAQRBrIgMkACADIAI2AgwgA0EIaiADQQxqEI8CIAAgARC0ByEAEI4CIANBEGokACAACxMAIAAgACgCAEEBayIANgIAIAALMwEBfyMAQRBrIgIkACACIAAoAgA2AgwgAiACKAIMIAFBAnRqNgIMIAIoAgwgAkEQaiQAC9UCAgN8An8jAEEQayIJJAACQCABRAAAAAAAAAAAZQRAIAIiBiIBIQAMAQsCf0QAAAAAAAAAACAARAAAAAAAABhAoiAARAAAAAAAAPA/ZhsiAJlEAAAAAAAA4EFjBEAgAKoMAQtBgICAgHgLIQogAkQAAAAAAADwPyABIAAgCrehIgeioaIhCCACRAAAAAAAAPA/IAGhoiEAIAIhBiACRAAAAAAAAPA/IAFEAAAAAAAA8D8gB6GioaIiByEBAkACQAJAAkACQAJAIAoOBgYFAAECAwQLIAAhBiACIQEgByEADAULIAAhBiAIIQEgAiEADAQLIAchBiAAIQEgAiEADAMLIAAhASAIIQAMAgsgCUHWADYCBCAJQZ7GATYCAEG4/AgoAgBB98gEIAkQHhoQbAALIAghBiACIQELIAMgBjkDACAEIAE5AwAgBSAAOQMAIAlBEGokAAsbAQF/QQEhASAAEKgBBH8gABD4AkEBawVBAQsLMAEBfyMAQRBrIgIkACACIAAoAgA2AgwgAiACKAIMIAFqNgIMIAIoAgwgAkEQaiQAC9ABAQN/IwBBEGsiBSQAAkBB9////wcgAWsgAk8EQCAAEEIhBiAFQQRqIgcgAUHz////A0kEfyAFIAFBAXQ2AgwgBSABIAJqNgIEIAcgBUEMahDjAygCABDiA0EBagVB9////wcLEOEDIAUoAgQhAiAFKAIIGiAEBEAgAiAGIAQQrQILIAMgBEcEQCACIARqIAQgBmogAyAEaxCtAgsgAUEKRwRAIAYQrwULIAAgAhD8ASAAIAUoAggQ+wEgBUEQaiQADAELEMwBAAsgACADEL8BC8YBAQR/IwBBEGsiBCQAAkAgARCoAUUEQCAAIAEoAgg2AgggACABKQIANwIAIAAQqQMaDAELIAEoAgAhBSABKAIEIQIjAEEQayIDJAACQAJAAkAgAhCuBQRAIAAiASACENQBDAELIAJB9////wdLDQEgA0EIaiACEOIDQQFqEOEDIAMoAgwaIAAgAygCCCIBEPwBIAAgAygCDBD7ASAAIAIQvwELIAEgBSACQQFqEK0CIANBEGokAAwBCxDMAQALCyAEQRBqJAALDwAgACAAKAIAQQRqNgIACywBAn8CQCAAKAIkIgJFDQAgAC0AkAENACAAKAIAKAJsDQAgAhDsAyEBCyABCyEBAX8jAEEQayIBJAAgAUEMaiAAEKMCKAIAIAFBEGokAAsPACAAIAAoAgBBAWo2AgALWQECfyMAQRBrIgMkACACKAIAIQQgAAJ/IAEgAGtBAnUiAgRAA0AgACAEIAAoAgBGDQIaIABBBGohACACQQFrIgINAAsLQQALIgAgASAAGxCoAyADQRBqJAAL+AMBAX8jAEEQayIMJAAgDCAANgIMAkACQCAAIAVGBEAgAS0AAEEBRw0BQQAhACABQQA6AAAgBCAEKAIAIgFBAWo2AgAgAUEuOgAAIAcQI0UNAiAJKAIAIgEgCGtBnwFKDQIgCigCACECIAkgAUEEajYCACABIAI2AgAMAgsCQAJAIAAgBkcNACAHECNFDQAgAS0AAEEBRw0CIAkoAgAiACAIa0GfAUoNASAKKAIAIQEgCSAAQQRqNgIAIAAgATYCAEEAIQAgCkEANgIADAMLIAsgC0GAAWogDEEMahCgByALayIAQQJ1IgZBH0oNASAGQfC3CWosAAAhBQJAAkAgAEF7cSIAQdgARwRAIABB4ABHDQEgAyAEKAIAIgFHBEBBfyEAIAFBAWssAAAQ4AMgAiwAABDgA0cNBgsgBCABQQFqNgIAIAEgBToAAAwDCyACQdAAOgAADAELIAUQ4AMiACACLAAARw0AIAIgABCAAjoAACABLQAAQQFHDQAgAUEAOgAAIAcQI0UNACAJKAIAIgAgCGtBnwFKDQAgCigCACEBIAkgAEEEajYCACAAIAE2AgALIAQgBCgCACIAQQFqNgIAIAAgBToAAEEAIQAgBkEVSg0CIAogCigCAEEBajYCAAwCC0EAIQAMAQtBfyEACyAMQRBqJAAgAAtVAQJ/IwBBEGsiBiQAIAZBDGoiBSABEFEgBRDNAUHwtwlBkLgJIAIQygIgAyAFEN0DIgEQ9wE2AgAgBCABEMsBNgIAIAAgARDKASAFEE4gBkEQaiQACy8BAX8jAEEQayIDJAAgACAAIAIsAAAgASAAaxD9AiIAIAEgABsQqAMgA0EQaiQACwgAIAAgARAaC/ADAQF/IwBBEGsiDCQAIAwgADoADwJAAkAgACAFRgRAIAEtAABBAUcNAUEAIQAgAUEAOgAAIAQgBCgCACIBQQFqNgIAIAFBLjoAACAHECNFDQIgCSgCACIBIAhrQZ8BSg0CIAooAgAhAiAJIAFBBGo2AgAgASACNgIADAILAkACQCAAIAZHDQAgBxAjRQ0AIAEtAABBAUcNAiAJKAIAIgAgCGtBnwFKDQEgCigCACEBIAkgAEEEajYCACAAIAE2AgBBACEAIApBADYCAAwDCyALIAtBIGogDEEPahCjByALayIFQR9KDQEgBUHwtwlqLAAAIQYCQAJAAkACQCAFQX5xQRZrDgMBAgACCyADIAQoAgAiAUcEQEF/IQAgAUEBaywAABDgAyACLAAAEOADRw0GCyAEIAFBAWo2AgAgASAGOgAADAMLIAJB0AA6AAAMAQsgBhDgAyIAIAIsAABHDQAgAiAAEIACOgAAIAEtAABBAUcNACABQQA6AAAgBxAjRQ0AIAkoAgAiACAIa0GfAUoNACAKKAIAIQEgCSAAQQRqNgIAIAAgATYCAAsgBCAEKAIAIgBBAWo2AgAgACAGOgAAQQAhACAFQRVKDQIgCiAKKAIAQQFqNgIADAILQQAhAAwBC0F/IQALIAxBEGokACAAC1UBAn8jAEEQayIGJAAgBkEMaiIFIAEQUSAFEM4BQfC3CUGQuAkgAhD3AiADIAUQ3wMiARD3AToAACAEIAEQywE6AAAgACABEMoBIAUQTiAGQRBqJAALnAEBA39BNSEBAkAgACgCHCICIAAoAhgiA0EGakEHcGtBB2pBB24gAyACayICQfECakEHcEEDSWoiA0E1RwRAIAMiAQ0BQTQhAQJAAkAgAkEGakEHcEEEaw4CAQADCyAAKAIUQZADb0EBaxDVC0UNAgtBNQ8LAkACQCACQfMCakEHcEEDaw4CAAIBCyAAKAIUENULDQELQQEhAQsgAQtqAQJ/IABBlJwJNgIAIAAoAighAQNAIAEEQEEAIAAgAUEBayIBQQJ0IgIgACgCJGooAgAgACgCICACaigCABEFAAwBCwsgAEEcahBOIAAoAiAQGCAAKAIkEBggACgCMBAYIAAoAjwQGCAACzoBAX8gAEGAmwkoAgAiATYCACAAIAFBDGsoAgBqQYybCSgCADYCACAAQQRqEKoHGiAAQThqEPsLIAALGAAgAEGUmAk2AgAgAEEgahA0GiAAELIHC1sBA38CQCAAKAIAIgIEQCABKAIAIgNFDQEgACgCBCIAIAEoAgRGBH8gAiADIAAQgQIFQQELRQ8LQb7cAUH1gQFBM0GHwgAQAAALQa/cAUH1gQFBNEGHwgAQAAALHQAjAEEQayIDJAAgACABIAIQ6gsgA0EQaiQAIAALrgEBBn8jAEEQayICJAAgAkEIaiIDIAAQtgUaAkAgAy0AAEUNACACQQRqIgMgACAAKAIAQQxrKAIAahBRIAMQ8wshBCADEE4gAiAAEPILIQUgACAAKAIAQQxrKAIAaiIGEPELIQcgAiAEIAUoAgAgBiAHIAEgBCgCACgCIBEzADYCBCADELQFRQ0AIAAgACgCAEEMaygCAGpBBRC3BQsgAkEIahC1BSACQRBqJAAgAAsMACAAQQRqEPsLIAALKAECfyMAQRBrIgIkACABKAIAIAAoAgBIIQMgAkEQaiQAIAEgACADGwsQACAAIAE3AwggAEIANwMACwIACxQAIABBpJcJNgIAIABBBGoQTiAAC/MDAgJ+BX8jAEEgayIFJAAgAUL///////8/gyECAn4gAUIwiEL//wGDIgOnIgRBgfgAa0H9D00EQCACQgSGIABCPIiEIQIgBEGA+ABrrSEDAkAgAEL//////////w+DIgBCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyAAQoCAgICAgICACFINACACQgGDIAJ8IQILQgAgAiACQv////////8HViIEGyEAIAStIAN8DAELIAAgAoRQIANC//8BUnJFBEAgAkIEhiAAQjyIhEKAgICAgICABIQhAEL/DwwBCyAEQf6HAUsEQEIAIQBC/w8MAQtBgPgAQYH4ACADUCIHGyIIIARrIgZB8ABKBEBCACEAQgAMAQsgBUEQaiAAIAIgAkKAgICAgIDAAIQgBxsiAkGAASAGaxC2ASAFIAAgAiAGEKwDIAUpAwhCBIYgBSkDACICQjyIhCEAAkAgBCAIRyAFKQMQIAUpAxiEQgBSca0gAkL//////////w+DhCICQoGAgICAgICACFoEQCAAQgF8IQAMAQsgAkKAgICAgICAgAhSDQAgAEIBgyAAfCEACyAAQoCAgICAgIAIhSAAIABC/////////wdWIgQbIQAgBK0LIQIgBUEgaiQAIAFCgICAgICAgICAf4MgAkI0hoQgAIS/C4kCAAJAIAAEfyABQf8ATQ0BAkBBpJILKAIAKAIARQRAIAFBgH9xQYC/A0YNAwwBCyABQf8PTQRAIAAgAUE/cUGAAXI6AAEgACABQQZ2QcABcjoAAEECDwsgAUGAQHFBgMADRyABQYCwA09xRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMPCyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBA8LC0HgjwtBGTYCAEF/BUEBCw8LIAAgAToAAEEBC5kBAQJ/AkAgABAvIgQgACgCAEEDcSABQQAQISIDDQACQCAEQeaKBRDPAyIDQeaKBUcNACADEHZFDQAgBCAAKAIAQQNxIAFB5ooFEPEDIQMMAQsgBCAAKAIAQQNxIAFB5ooFECEhAwsCQAJAIAJFDQAgBCACEM8DIgEgAkcNACABEHZFDQAgACADIAIQsgQMAQsgACADIAIQcgsLwgIBBH8jAEHQAWsiBSQAIAUgAjYCzAEgBUGgAWoiAkEAQSgQMxogBSAFKALMATYCyAECQEEAIAEgBUHIAWogBUHQAGogAiADIAQQhgxBAEgEQEF/IQQMAQsgACgCTEEASCAAIAAoAgAiCEFfcTYCAAJ/AkACQCAAKAIwRQRAIABB0AA2AjAgAEEANgIcIABCADcDECAAKAIsIQYgACAFNgIsDAELIAAoAhANAQtBfyAAEMEHDQEaCyAAIAEgBUHIAWogBUHQAGogBUGgAWogAyAEEIYMCyECIAYEQCAAQQBBACAAKAIkEQQAGiAAQQA2AjAgACAGNgIsIABBADYCHCAAKAIUIQEgAEIANwMQIAJBfyABGyECCyAAIAAoAgAiACAIQSBxcjYCAEF/IAIgAEEgcRshBA0ACyAFQdABaiQAIAQLEgAgACABQQpCgICAgAgQvgWnC2EAAkAgAA0AIAIoAgAiAA0AQQAPCyAAIAEQswQgAGoiAC0AAEUEQCACQQA2AgBBAA8LIAAgARD7AiAAaiIBLQAABEAgAiABQQFqNgIAIAFBADoAACAADwsgAkEANgIAIAALfwICfwJ+IwBBoAFrIgQkACAEIAE2AjwgBCABNgIUIARBfzYCGCAEQRBqIgVCABCQAiAEIAUgA0EBEI0MIAQpAwghBiAEKQMAIQcgAgRAIAIgBCgCiAEgASAEKAIUIAQoAjxramo2AgALIAAgBjcDCCAAIAc3AwAgBEGgAWokAAvcAQECfwJAAkAgASAAIgNzQQNxBEAgAS0AACECDAELIAFBA3EEQANAIAMgAS0AACICOgAAIAJFDQMgA0EBaiEDIAFBAWoiAUEDcQ0ACwtBgIKECCABKAIAIgJrIAJyQYCBgoR4cUGAgYKEeEcNAANAIAMgAjYCACADQQRqIQMgASgCBCECIAFBBGohASACQYCChAggAmtyQYCBgoR4cUGAgYKEeEYNAAsLIAMgAjoAACACQf8BcUUNAANAIAMgAS0AASICOgABIANBAWohAyABQQFqIQEgAg0ACwsgAAtJAQF/IwBBEGsiASQAIAFBjuYAOwEKIAEgADsBDCABIABBEHY7AQ5BgJQLQcDcCkEGEB8aQcDcCiABQQpqQQYQHxogAUEQaiQAC1EBAn8jAEEwayIBJAACQAJAIAAEQEEBIAAQvQciAEF/Rg0CQYyQCyAANgIADAELQYyQCygCACEACyAAQQhqQfLjASAAGyECCyABQTBqJAAgAgvnAgEDfwJAIAEtAAANAEGX3QEQtAQiAQRAIAEtAAANAQsgAEEMbEHQ+whqELQEIgEEQCABLQAADQELQeLfARC0BCIBBEAgAS0AAA0BC0HZ9wEhAQsCQANAIAEgAmotAAAiBEUgBEEvRnJFBEBBFyEEIAJBAWoiAkEXRw0BDAILCyACIQQLQdn3ASEDAkACQAJAAkACQCABLQAAIgJBLkYNACABIARqLQAADQAgASEDIAJBwwBHDQELIAMtAAFFDQELIANB2fcBEElFDQAgA0Gs0AEQSQ0BCyAARQRAQfT6CCECIAMtAAFBLkYNAgtBAA8LQeCSCygCACICBEADQCADIAJBCGoQSUUNAiACKAIgIgINAAsLQSQQSCICBEAgAkH0+ggpAgA3AgAgAkEIaiIBIAMgBBAfGiABIARqQQA6AAAgAkHgkgsoAgA2AiBB4JILIAI2AgALIAJB9PoIIAAgAnIbIQILIAILrwEBBn8jAEHwAWsiBiQAIAYgADYCAEEBIQcCQCADQQJIDQBBACABayEJIAAhBQNAIAAgBSAJaiIFIAQgA0ECayIKQQJ0aigCAGsiCCACEK8DQQBOBEAgACAFIAIQrwNBAE4NAgsgBiAHQQJ0aiAIIAUgCCAFIAIQrwNBAE4iCBsiBTYCACAHQQFqIQcgA0EBayAKIAgbIgNBAUoNAAsLIAEgBiAHEJUMIAZB8AFqJAALwgEBA38CQCACKAIQIgMEfyADBSACEMEHDQEgAigCEAsgAigCFCIEayABSQRAIAIgACABIAIoAiQRBAAPCwJAAkAgAUUgAigCUEEASHINACABIQMDQCAAIANqIgVBAWstAABBCkcEQCADQQFrIgMNAQwCCwsgAiAAIAMgAigCJBEEACIEIANJDQIgASADayEBIAIoAhQhBAwBCyAAIQVBACEDCyAEIAUgARAfGiACIAIoAhQgAWo2AhQgASADaiEECyAEC5QBAQN/IwBBEGsiAyQAIAMgAToADwJAAkAgACgCECICBH8gAgUgABDBBwRAQX8hAgwDCyAAKAIQCyAAKAIUIgRGDQAgAUH/AXEiAiAAKAJQRg0AIAAgBEEBajYCFCAEIAE6AAAMAQsgACADQQ9qQQEgACgCJBEEAEEBRwRAQX8hAgwBCyADLQAPIQILIANBEGokACACC1kBAX8gACAAKAJIIgFBAWsgAXI2AkggACgCACIBQQhxBEAgACABQSByNgIAQX8PCyAAQgA3AgQgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCEEEAC5QDAgN+An8CQCAAvSICQjSIp0H/D3EiBEH/D0cNACAARAAAAAAAgFZAoiIAIACjDwsgAkIBhiIBQoCAgICAgMDWgH9YBEAgAEQAAAAAAAAAAKIgACABQoCAgICAgMDWgH9RGw8LAn4gBEUEQEEAIQQgAkIMhiIBQgBZBEADQCAEQQFrIQQgAUIBhiIBQgBZDQALCyACQQEgBGuthgwBCyACQv////////8Hg0KAgICAgICACIQLIQEgBEGFCEoEQANAAkAgAUKAgICAgICgC30iA0IAUw0AIAMiAUIAUg0AIABEAAAAAAAAAACiDwsgAUIBhiEBIARBAWsiBEGFCEoNAAtBhQghBAsCQCABQoCAgICAgKALfSIDQgBTDQAgAyIBQgBSDQAgAEQAAAAAAAAAAKIPCyABQv////////8HWARAA0AgBEEBayEEIAFCgICAgICAgARUIAFCAYYhAQ0ACwsgAkKAgICAgICAgIB/gyABQoCAgICAgIAIfSAErUI0hoQgAUEBIARrrYggBEEAShuEvwviAgEFfwJAAkACQCACKAJMQQBOBEAgAUECSA0BDAILQQEhBiABQQFKDQELIAIgAigCSCICQQFrIAJyNgJIIAFBAUcNASAAQQA6AAAgAA8LIAFBAWshBCAAIQECQANAAkACQAJAIAIoAgQiAyACKAIIIgVGDQACfyADQQogBSADaxD9AiIHBEAgByACKAIEIgNrQQFqDAELIAIoAgggAigCBCIDawshBSABIAMgBSAEIAQgBUsbIgMQHxogAiACKAIEIANqIgU2AgQgASADaiEBIAcNAiAEIANrIgRFDQIgBSACKAIIRg0AIAIgBUEBajYCBCAFLQAAIQMMAQsgAhDKBSIDQQBODQBBACEEIAAgAUYNAyACLQAAQRBxDQEMAwsgASADOgAAIAFBAWohASADQf8BcUEKRg0AIARBAWsiBA0BCwsgAEUEQEEAIQQMAQsgAUEAOgAAIAAhBAsgBg0ACyAEC5QBAQJ/AkAgARCdAUUEQCAAQQBBgAEgACgCABEEACEEA0AgBEUNAiAEKAIMEHYhBSACIAQoAgggBCgCDCAFQQBHIAQoAhAgAxC5BCIFIAQtABY6ABYgBSAELQAVOgAVIAEgBUEBIAEoAgARBAAaIAAgBEEIIAAoAgARBAAhBAwACwALQY2hA0H+wgFB2QBBviYQAAALC6QYAxN/BHwBfiMAQTBrIgkkAAJAAkACQCAAvSIZQiCIpyIDQf////8HcSIGQfrUvYAETQRAIANB//8/cUH7wyRGDQEgBkH8souABE0EQCAZQgBZBEAgASAARAAAQFT7Ifm/oCIARDFjYhphtNC9oCIVOQMAIAEgACAVoUQxY2IaYbTQvaA5AwhBASEDDAULIAEgAEQAAEBU+yH5P6AiAEQxY2IaYbTQPaAiFTkDACABIAAgFaFEMWNiGmG00D2gOQMIQX8hAwwECyAZQgBZBEAgASAARAAAQFT7IQnAoCIARDFjYhphtOC9oCIVOQMAIAEgACAVoUQxY2IaYbTgvaA5AwhBAiEDDAQLIAEgAEQAAEBU+yEJQKAiAEQxY2IaYbTgPaAiFTkDACABIAAgFaFEMWNiGmG04D2gOQMIQX4hAwwDCyAGQbuM8YAETQRAIAZBvPvXgARNBEAgBkH8ssuABEYNAiAZQgBZBEAgASAARAAAMH982RLAoCIARMqUk6eRDum9oCIVOQMAIAEgACAVoUTKlJOnkQ7pvaA5AwhBAyEDDAULIAEgAEQAADB/fNkSQKAiAETKlJOnkQ7pPaAiFTkDACABIAAgFaFEypSTp5EO6T2gOQMIQX0hAwwECyAGQfvD5IAERg0BIBlCAFkEQCABIABEAABAVPshGcCgIgBEMWNiGmG08L2gIhU5AwAgASAAIBWhRDFjYhphtPC9oDkDCEEEIQMMBAsgASAARAAAQFT7IRlAoCIARDFjYhphtPA9oCIVOQMAIAEgACAVoUQxY2IaYbTwPaA5AwhBfCEDDAMLIAZB+sPkiQRLDQELIAAgAESDyMltMF/kP6JEAAAAAAAAOEOgRAAAAAAAADjDoCIWRAAAQFT7Ifm/oqAiFSAWRDFjYhphtNA9oiIXoSIYRBgtRFT7Iem/YyECAn8gFplEAAAAAAAA4EFjBEAgFqoMAQtBgICAgHgLIQMCQCACBEAgA0EBayEDIBZEAAAAAAAA8L+gIhZEMWNiGmG00D2iIRcgACAWRAAAQFT7Ifm/oqAhFQwBCyAYRBgtRFT7Iek/ZEUNACADQQFqIQMgFkQAAAAAAADwP6AiFkQxY2IaYbTQPaIhFyAAIBZEAABAVPsh+b+ioCEVCyABIBUgF6EiADkDAAJAIAZBFHYiAiAAvUI0iKdB/w9xa0ERSA0AIAEgFSAWRAAAYBphtNA9oiIAoSIYIBZEc3ADLooZozuiIBUgGKEgAKGhIhehIgA5AwAgAiAAvUI0iKdB/w9xa0EySARAIBghFQwBCyABIBggFkQAAAAuihmjO6IiAKEiFSAWRMFJICWag3s5oiAYIBWhIAChoSIXoSIAOQMACyABIBUgAKEgF6E5AwgMAQsgBkGAgMD/B08EQCABIAAgAKEiADkDACABIAA5AwhBACEDDAELIAlBEGoiA0EIciEEIBlC/////////weDQoCAgICAgICwwQCEvyEAQQEhAgNAIAMCfyAAmUQAAAAAAADgQWMEQCAAqgwBC0GAgICAeAu3IhU5AwAgACAVoUQAAAAAAABwQaIhACACQQAhAiAEIQMNAAsgCSAAOQMgQQIhAwNAIAMiAkEBayEDIAlBEGoiDiACQQN0aisDAEQAAAAAAAAAAGENAAtBACEEIwBBsARrIgUkACAGQRR2QZYIayIDQQNrQRhtIgdBACAHQQBKGyIPQWhsIANqIQdB1NMIKAIAIgogAkEBaiINQQFrIghqQQBOBEAgCiANaiEDIA8gCGshAgNAIAVBwAJqIARBA3RqIAJBAEgEfEQAAAAAAAAAAAUgAkECdEHg0whqKAIAtws5AwAgAkEBaiECIARBAWoiBCADRw0ACwsgB0EYayEGQQAhAyAKQQAgCkEAShshBCANQQBMIQsDQAJAIAsEQEQAAAAAAAAAACEADAELIAMgCGohDEEAIQJEAAAAAAAAAAAhAANAIA4gAkEDdGorAwAgBUHAAmogDCACa0EDdGorAwCiIACgIQAgAkEBaiICIA1HDQALCyAFIANBA3RqIAA5AwAgAyAERiADQQFqIQNFDQALQS8gB2shEUEwIAdrIRAgB0EZayESIAohAwJAA0AgBSADQQN0aisDACEAQQAhAiADIQQgA0EASgRAA0AgBUHgA2ogAkECdGoCfwJ/IABEAAAAAAAAcD6iIhWZRAAAAAAAAOBBYwRAIBWqDAELQYCAgIB4C7ciFUQAAAAAAABwwaIgAKAiAJlEAAAAAAAA4EFjBEAgAKoMAQtBgICAgHgLNgIAIAUgBEEBayIEQQN0aisDACAVoCEAIAJBAWoiAiADRw0ACwsCfyAAIAYQ/AIiACAARAAAAAAAAMA/opxEAAAAAAAAIMCioCIAmUQAAAAAAADgQWMEQCAAqgwBC0GAgICAeAshCCAAIAi3oSEAAkACQAJAAn8gBkEATCITRQRAIANBAnQgBWoiAiACKALcAyICIAIgEHUiAiAQdGsiBDYC3AMgAiAIaiEIIAQgEXUMAQsgBg0BIANBAnQgBWooAtwDQRd1CyILQQBMDQIMAQtBAiELIABEAAAAAAAA4D9mDQBBACELDAELQQAhAkEAIQxBASEEIANBAEoEQANAIAVB4ANqIAJBAnRqIhQoAgAhBAJ/AkAgFCAMBH9B////BwUgBEUNAUGAgIAICyAEazYCAEEBIQxBAAwBC0EAIQxBAQshBCACQQFqIgIgA0cNAAsLAkAgEw0AQf///wMhAgJAAkAgEg4CAQACC0H///8BIQILIANBAnQgBWoiDCAMKALcAyACcTYC3AMLIAhBAWohCCALQQJHDQBEAAAAAAAA8D8gAKEhAEECIQsgBA0AIABEAAAAAAAA8D8gBhD8AqEhAAsgAEQAAAAAAAAAAGEEQEEAIQQgAyECAkAgAyAKTA0AA0AgBUHgA2ogAkEBayICQQJ0aigCACAEciEEIAIgCkoNAAsgBEUNACAGIQcDQCAHQRhrIQcgBUHgA2ogA0EBayIDQQJ0aigCAEUNAAsMAwtBASECA0AgAiIEQQFqIQIgBUHgA2ogCiAEa0ECdGooAgBFDQALIAMgBGohBANAIAVBwAJqIAMgDWoiCEEDdGogA0EBaiIDIA9qQQJ0QeDTCGooAgC3OQMAQQAhAkQAAAAAAAAAACEAIA1BAEoEQANAIA4gAkEDdGorAwAgBUHAAmogCCACa0EDdGorAwCiIACgIQAgAkEBaiICIA1HDQALCyAFIANBA3RqIAA5AwAgAyAESA0ACyAEIQMMAQsLAkAgAEEYIAdrEPwCIgBEAAAAAAAAcEFmBEAgBUHgA2ogA0ECdGoCfwJ/IABEAAAAAAAAcD6iIhWZRAAAAAAAAOBBYwRAIBWqDAELQYCAgIB4CyICt0QAAAAAAABwwaIgAKAiAJlEAAAAAAAA4EFjBEAgAKoMAQtBgICAgHgLNgIAIANBAWohAwwBCwJ/IACZRAAAAAAAAOBBYwRAIACqDAELQYCAgIB4CyECIAYhBwsgBUHgA2ogA0ECdGogAjYCAAtEAAAAAAAA8D8gBxD8AiEAIANBAE4EQCADIQIDQCAFIAIiBEEDdGogACAFQeADaiACQQJ0aigCALeiOQMAIAJBAWshAiAARAAAAAAAAHA+oiEAIAQNAAsgAyEEA0BEAAAAAAAAAAAhAEEAIQIgCiADIARrIgcgByAKShsiBkEATgRAA0AgAkEDdEGw6QhqKwMAIAUgAiAEakEDdGorAwCiIACgIQAgAiAGRyACQQFqIQINAAsLIAVBoAFqIAdBA3RqIAA5AwAgBEEASiAEQQFrIQQNAAsLRAAAAAAAAAAAIQAgA0EATgRAIAMhAgNAIAIiBEEBayECIAAgBUGgAWogBEEDdGorAwCgIQAgBA0ACwsgCSAAmiAAIAsbOQMAIAUrA6ABIAChIQBBASECIANBAEoEQANAIAAgBUGgAWogAkEDdGorAwCgIQAgAiADRyACQQFqIQINAAsLIAkgAJogACALGzkDCCAFQbAEaiQAIAhBB3EhAyAJKwMAIQAgGUIAUwRAIAEgAJo5AwAgASAJKwMImjkDCEEAIANrIQMMAQsgASAAOQMAIAEgCSsDCDkDCAsgCUEwaiQAIAMLFAAgABAEIgBBACAAQRtHGxCuAxoL9gECAXwBfyAAvUIgiKdB/////wdxIgJBgIDA/wdPBEAgACAAoA8LAkACfyACQf//P0sEQCAAIQFBk/H91AIMAQsgAEQAAAAAAABQQ6IiAb1CIIinQf////8HcSICRQ0BQZPx/csCCyACQQNuaq1CIIa/IAGmIgEgASABoiABIACjoiIBIAEgAaKiIAFE1+3k1ACwwj+iRNlR577LROi/oKIgASABRMLWSUpg8fk/okQgJPCS4Cj+v6CiRJLmYQ/mA/4/oKCivUKAgICAfINCgICAgAh8vyIBIAAgASABoqMiACABoSABIAGgIACgo6IgAaAhAAsgAAvHAwMFfAJ+An8CQAJ/AkAgAL0iBkL/////////B1cEQCAARAAAAAAAAAAAYQRARAAAAAAAAPC/IAAgAKKjDwsgBkIAWQ0BIAAgAKFEAAAAAAAAAACjDwsgBkL/////////9/8AVg0CQYF4IQkgBkIgiCIHQoCAwP8DUgRAIAenDAILQYCAwP8DIAanDQEaRAAAAAAAAAAADwtBy3chCSAARAAAAAAAAFBDor0iBkIgiKcLIQggBkL/////D4MgCEHiviVqIghB//8/cUGewZr/A2qtQiCGhL9EAAAAAAAA8L+gIgAgACAARAAAAAAAAOA/oqIiA6G9QoCAgIBwg78iBEQAACBlRxX3P6IiASAJIAhBFHZqtyICoCIFIAEgAiAFoaAgACAARAAAAAAAAABAoKMiASADIAEgAaIiAiACoiIBIAEgAUSfxnjQCZrDP6JEr3iOHcVxzD+gokQE+peZmZnZP6CiIAIgASABIAFERFI+3xLxwj+iRN4Dy5ZkRsc/oKJEWZMilCRJ0j+gokSTVVVVVVXlP6CioKCiIAAgBKEgA6GgIgAgBKBEAKLvLvwF5z2iIABEAAAgZUcV9z+ioKCgIQALIAALlAIBA38gABAvIQUgABDwASEGAkAgASgCECIEQQBIDQAgABDIBSAETA0AIAUgBigCDCABKAIQQQJ0aigCACIEIAQQdkEARxCOARoCfyADBEAgBSACENYCDAELIAUgAhCyAQshBCAGKAIMIAEoAhBBAnRqIAQ2AgACQCAALQAAQQNxDQAgBUEAELUCKAIQIgQgASgCCBDQByIGBEAgBSAGKAIMIgQgBBB2QQBHEI4BGiAGAn8gAwRAIAUgAhDWAgwBCyAFIAIQsgELNgIMDAELIAQgBSABKAIIIAIgAyABKAIQIAAoAgBBA3EQuQRBASAEKAIAEQQAGgsgBSAAIAEQwQ0PC0HRrQNB/sIBQfgDQZ7MARAAAAvYAQEEfyMAQRBrIgQkAAJAAkAgARDwASIBBEAgAigCECIDQf////8DTw0BIAEoAgwgA0ECdCIFQQRqIgYQOiIDRQ0CIAMgBWpBADYAACABIAM2AgwgAigCDBB2IQUgAigCDCEDAn8gBQRAIAAgAxDWAgwBCyAAIAMQsgELIQAgASgCDCACKAIQQQJ0aiAANgIAIARBEGokAA8LQcraAUH+wgFB1gFBozoQAAALQd/JA0GYhQFBzQBB77oBEAAACyAEIAY2AgBBuPwIKAIAQdPzAyAEEB4aECgAC5UBAgN/BXwgAxBYIgiaIQkgACgCCCEGIAMQRCEHIAYQGyEEA0AgBARAIAQoAhAoApQBIgUgAiAFKwMAIgogCKIgByAFKwMIIguioKA5AwggBSABIAogB6IgCyAJoqCgOQMAIAYgBBAcIQQMAQsLIABBMGohBANAIAQoAgAiAARAIAAgASACIAMQywcgAEEEaiEEDAELCwt2AQN/IAAEQCAAKAIIIQICQANAIAEgAk8NASAAIAEQ0AEaIAEgACgCCCICSSABQQFqIQENAAtBwrwDQY6CAUEVQY4pEAAACyAAQgA3AgQgACgCABAYIABCADcCCCAAQgA3AgAPC0GJ2gFBjoIBQRVB/KUBEAAAC0EAAkAgAARAIAEgACgCCE8NASAAIAEQ/wIgAjYCAA8LQYnaAUGOggFBFUG+IhAAAAtB7rwDQY6CAUEVQb4iEAAAC4MCAQV/AkACQAJAIAAQ7wEgAU8EQCAAQQAQkgIgAEUNASAAKAIEIQQDQCAEBEAgACgCDCIFRQ0EIAAoAgAoAgAhAwNAIAUEQCAAKAIAIAVBAWsiBUECdGoiBigCACAGIAM2AgAhAwwBBSAAIARBAWsiBDYCBAwDCwALAAsLIAAoAgggACgCDEsNAyAAEO8BIAFBf3NqQQJ0IgMEQCAAIAFBAWoQ/wIgACABEP8CIAMQUxoLIAAgASACEM0HDwtBg6sDQenAAUETQekaEAAAC0GJ2gFBjoIBQRVBvbsBEAAAC0HimgNBjoIBQRVBvbsBEAAAC0GUqANBjoIBQRVBvbsBEAAACx0AIAAoAgggAUEBEIYBGiABKAIQKAKAASAANgIMC1YBAn8jAEEgayICJAAgAEEAEOoCIQMgAkIANwMIIAJBADYCGCACQgA3AxAgAiABNgIIIAJCADcDACAAIAJBBCAAKAIAEQQAIAAgAxDqAhogAkEgaiQAC0QBAX8gAARAIAAoAgQiAQRAIAEQaQsgACgCCCIBBEAgARBpCyAAKAIMEBggACgCFCIBBEAgASAAKAIQEQEACyAAEBgLCxsAIAAgASACQQhBA0GAgICAAkH/////ARDTCgvlBwIHfwJ8IAAoAhAhBwJAAkACQAJAAkACQAJAAkAgACgCACIGRQRAIAAgAjkDCCAAQQE2AgAgACAHQQgQGSIHNgIgIAAoAhAiBEEAIARBAEobIQYDQCAFIAZGRQRAIAcgBUEDdCIIaiABIAhqKwMAOQMAIAVBAWohBQwBCwsgBCACIAEgAxDbDCEBIAAoAigNASAAIAE2AiggAA8LIAAoAiwiCiAESgRAIAAgAiAAKwMIoDkDCCAHQQAgB0EAShshCCAGQQFqtyEMIAa3IQ0DQCAFIAhGRQRAIAVBA3QiBiAAKAIgaiIJIAkrAwAgDaIgASAGaisDAKAgDKM5AwAgBUEBaiEFDAELC0EBIAd0IQggACgCJCIFRQRAIAAgCEEEEBkiBTYCJAsgByAAKAIUIgsgARDaDCIJIAhOIAlBAEhyDQIgBSAJQQJ0IgZqKAIAIgUEfyAFBSAAKAIQIAsgACsDGEQAAAAAAADgP6IgCiAJENwMIQUgACgCJCAGaiAFNgIAIAAoAiQgBmooAgALIAEgAiADIARBAWoiBRDTByEBIAAoAiQgBmogATYCACAAKAIkIgQgBmooAgBFDQMCQCAAKAIoIgFFDQAgACgCAEEBRw0FIAEoAgwhBiABKwMAIQIgCCAHIAAoAhQiByABKAIIIggQ2gwiA0wgA0EASHINBiAEIANBAnQiAWooAgAiBAR/IAQFIAAoAhAgByAAKwMYRAAAAAAAAOA/oiAKIAMQ3AwhAyAAKAIkIAFqIAM2AgAgACgCJCABaigCAAsgCCACIAYgBRDTByEDIAAoAiQgAWogAzYCACAAKAIkIAFqKAIARQ0HIAAoAighBQNAIAVFDQEgBSgCFCEBIAUQ4QggACABNgIoIAEhBQwACwALIAAgACgCAEEBajYCACAADwsgACgCJA0GIAAgBkEBaiIENgIAIAAgAiAAKwMIoDkDCCAHQQAgB0EAShshCCAGQQJqtyEMIAS3IQ0DQCAFIAhGRQRAIAVBA3QiBCAAKAIgaiIGIAYrAwAgDaIgASAEaisDAKAgDKM5AwAgBUEBaiEFDAELCyAHIAIgASADENsMIQEgACgCKCIDRQ0HIAEgAzYCFCAAIAE2AiggAA8LQcmtA0GVxwFBzANBufcAEAAAC0GCngNBlccBQdgDQbn3ABAAAAtBs84BQZXHAUHcA0G59wAQAAALQZeSA0GVxwFB4ANBufcAEAAAC0GCngNBlccBQeQDQbn3ABAAAAtBs84BQZXHAUHpA0G59wAQAAALQeKrA0GVxwFB9QNBufcAEAAAC0Gv+ABBlccBQfsDQbn3ABAAAAvbAwIKfwN8AkAgAEEIEBkiB0UgAEEIEBkiCEVyIABBCBAZIgpFcg0AIABBACAAQQBKGyEJA0AgBSAJRgRAA0AgBCAJRgRAQQEgASABQQFMGyELQQEhBQNAIAUgC0cEQCADIAAgBWxBA3RqIQxBACEEA0AgBCAJRwRAIAcgBEEDdCIGaiINIA0rAwAgBiAMaisDACIOECo5AwAgBiAIaiIGIAYrAwAgDhAiOQMAIARBAWohBAwBCwsgBUEBaiEFDAELCyAIKwMAIAcrAwChIQ5BACEEA0AgBCAJRwRAIAogBEEDdCIFaiAFIAdqKwMAIg8gBSAIaisDACIQoEQAAAAAAADgP6I5AwAgBEEBaiEEIA4gECAPoRAiIQ4MAQsLQQAhBCABQQAgAUEAShshASAAIAogDkTxaOOItfjkPhAiRKRwPQrXo+A/oiACEN0MIQUDQCABIARGDQUgBQRAIAUgAyAAIARsQQN0akQAAAAAAADwPyAEQQAQ0wcaCyAEQQFqIQQMAAsABSAIIARBA3QiBWogAyAFaisDADkDACAEQQFqIQQMAQsACwAFIAcgBUEDdCIGaiADIAZqKwMAOQMAIAVBAWohBQwBCwALAAsgBxAYIAgQGCAKEBggBQtZAQF/IwBBIGsiAiQAIAAQ8AEiAAR/IAAoAgghACACQgA3AwggAkEANgIYIAJCADcDECACIAE2AgggAkIANwMAIAAgAkEEIAAoAgARBAAFQQALIAJBIGokAAtHAQF/IAAgAUEBEI8BIgFBxitBwAJBARA1GkEgEFQhAiABKAIQIAI2AoABIAAoAhAvAbABQQgQGSEAIAEoAhAgADYClAEgAQtSAQF/IABBACACQQAQISIDBEAgACADEEEhACABQQAgAkEAECEiAwRAIAEgAyAAEHIPCyAAEHYEQCABQQAgAiAAEPEDGg8LIAFBACACIAAQIRoLC+MCAQV/IwBBEGsiAyQAIANCADcDCCADQgA3AwAgASEGIAFFBEAgA0EAEFUgAyEGCyAAEHohBANAIAQEQAJAIAQQxwEEQCAEQawrQZgCQQEQNRpBOBBUIQUgBCgCECAFNgKMASACEDchBSAEKAIQIgcgBSgCEC8BsAE7AbABIAIoAhAoAowBKAIsIQUgBygCjAEiByACNgIwIAcgBUEBajYCLCAGIAQQVSAEQQAgBBDYBwwBCyAEIAYgAhDYBwsgBBB5IQQMAQsLAkACQCABDQAgAygCCCIBQQFrIgJBAEgNASAAKAIQIAI2ArQBIAFBAk8EQCADEOUMIAMoAgwiASADKAIIIgJLBEAgAyADKAIAIAEgAhDCATYCACADIAMoAgg2AgwLIAMQ5QwgACgCECADKAIANgK4AQwBCyADQgA3AgQgAygCABAYCyADQRBqJAAPC0GD0wFByMABQfUHQYQvEAAAC0QBAXwgACgCECsDKCEBQdCHCy0AAEEBRgRAIAFEAAAAAAAA4D+iQciHCysDAKAPCyABQciHCysDAKJEAAAAAAAA4D+iC0QBAXwgACgCECsDICEBQdCHCy0AAEEBRgRAIAFEAAAAAAAA4D+iQcCHCysDAKAPCyABQcCHCysDAKJEAAAAAAAA4D+iC0wBA38gASgCECgClAEiAysDACAAKAIQKAKUASIEKwMAoZkgABDaByABENoHoGUEfyADKwMIIAQrAwihmSAAENkHIAEQ2QegZQVBAAsLCABBAUE4EBkLIgAgACgCCEUEQEGgpgNB5sIBQSFBkR8QAAALIABBABDqDAsOACAAEMMCIABBARDYBQudqwEEMH8IfAZ9An4jAEHQAWsiECQAAkAgAUHwPRAmIgUEQCAFEJECIQUMAQtByAEhBQJAAkAgAkEBaw4EAgEBAAELQR4hBQwBCyABEDhB5ABsIQULQcjhCiAFNgIAAkACQCABIAIQjw4iBkECSA0AQcjhCigCAEEASA0AAkACQAJAAkAgAg4FAAICAgECCwJAAkACQAJAIANBAWsOAwEAAwILQQAhACABIAYgEEGAAWpBAEECQQAQ9QwiAigCCCEFIAIgBhD7ByACIAYQtg0hBCACIAYgBRD6ByABKAIQKAKgASEHA0AgACAGRwRAIAcgAEECdCIFaigCACEIIAQgBWooAgAhCUEAIQUDQCAFIAZHBEAgCCAFQQN0aiAJIAVBAnRqKAIAtzkDACAFQQFqIQUMAQsLIABBAWohAAwBCwsgBCgCABAYIAQQGCACEP8MDAULIAYgBkQAAAAAAAAAABCKAyEEIAYgBkQAAAAAAAAAABCKAyEFIAEQGyECA0AgAgRAIAEgAhBvIQADQCAABEAgAEEwQQAgACgCAEEDcSIIQQNHG2ooAigoAgBBBHYiByAAQVBBACAIQQJHG2ooAigoAgBBBHYiCEcEQCAEIAhBAnRqKAIAIAdBA3RqRAAAAAAAAPC/IAAoAhArA4gBoyI1OQMAIAQgB0ECdGooAgAgCEEDdGogNTkDAAsgASAAIAIQcyEADAELCyABIAIQHCECDAELCwJAIAYgBCAFEP4MIghFDQBBACECIAZBACAGQQBKGyEJA0AgAiAJRg0BIAUgAkECdCIKaiETQQAhAANAIAAgBkcEQCAAQQN0IgcgASgCECgCoAEgCmooAgBqIBMoAgAiFiACQQN0aisDACAFIABBAnRqKAIAIAdqKwMAoCAHIBZqKwMAIjUgNaChOQMAIABBAWohAAwBCwsgAkEBaiECDAALAAsgBBCJAyAFEIkDIAgNBCAQIAEQIDYCYEHalwQgEEHgAGoQK0HR6gRBABCCAUHTnwRBABCCAUHl6ARBABCCAQsgASAGEIcODAMLIAEgBhCHDiABEBshCgNAIApFDQMgASAKEC0hBQNAIAUEQCAFQTBBACAFKAIAQQNxIgJBA0cbaigCKCgCAEEEdiIAIAVBUEEAIAJBAkcbaigCKCgCAEEEdiICRwRAIAEoAhAoAqABIgQgAkECdGooAgAgAEEDdGogBSgCECsDiAEiNTkDACAEIABBAnRqKAIAIAJBA3RqIDU5AwALIAEgBRAwIQUMAQsLIAEgChAcIQoMAAsACyABIQJBACEEIwBBsBRrIgUkAEH+mAQhAAJAAkACQCADQQFrDgMBAgACC0HKmQQhAAtBACEDIABBABArCyACEDghE0GM4QotAAAEQEGp5wFBN0EBQbj8CCgCABBMGkGw5goQrgELIBNBACATQQBKGyEWQQAhAAJAA0AgACAWRgRAAkAgBEEQEBkhCiACEBshAUEAIQcCQANAAkAgAUUEQEEBQRgQGSIGIAhBAWpBBBAZIgA2AgQgBUHYAGogCBDrByAGIAUpA1g3AgggBiAHQQQQGTYCECAHQQQQGSEBIAYgCDYCACAGIAE2AhQgB0EATg0BQeLRAUHXxwFBOEGjEBAAAAsgASgCECgCiAEgCEcNAiACIAEQbyEAA0AgAARAIAcgAEEwQQAgACgCAEEDcSIGQQNHG2ooAiggAEFQQQAgBkECRxtqKAIoR2ohByACIAAgARBzIQAMAQUgCEEBaiEIIAIgARAcIQEMAwsACwALCyAGQQhqIRQgACAIQQJ0aiAHNgIAIAIQGyEIQQAhAQJAAkADQAJAIAhFBEAgCSAGKAIARg0BQb/wAEHXxwFBzgBBoxAQAAALIAFBAEgNAyAGKAIEIAlBAnRqIAE2AgAgFCAJIAgoAhAtAIcBQQFLEL0EIAIgCBBvIQADQCAARQRAIAlBAWohCSACIAgQHCEIDAMLIABBMEEAIAAoAgBBA3EiC0EDRxtqKAIoIgcgAEFQQQAgC0ECRxtqKAIoIgtHBEAgAUECdCIOIAYoAhBqIAsgByAHIAhGGygCECgCiAE2AgAgBigCFCAOaiAAKAIQKwOIAbYiPTgCACA9QwAAAABeRQ0EIAFBAWohAQsgAiAAIAgQcyEADAALAAsLIAFBAE4EQCAGKAIEIgsgCUECdGooAgAgAUYEQAJAIAMOAwkGAAYLIAVB2ABqIAkQ6wcgBUGgFGogCRDrB0EAIQADQCAAIAlGBEAgBUHYAGoQ6gcgBUGgFGoQ6gdBACEDDAoLIAsgAEEBaiIBQQJ0aiEOIAsgAEECdGoiDygCACEHQQAhEgNAIA4oAgAiACAHTQRAIA8oAgAhAwNAIAAgA00EQCAPKAIAIQcDQCAAIAdNBEAgASEADAYFIAVB2ABqIAYoAhAgB0ECdGooAgBBABC9BCAHQQFqIQcgDigCACEADAELAAsACyALIAYoAhAiESADQQJ0IhVqKAIAQQJ0aiINKAIAIQBBACEIQQAhDANAIA0oAgQiByAATQRAAkAgBigCFCAVaiAMIBJqIAhBAXRrIgCyOAIAIABBAEoNAEHTnANB18cBQfIAQaMQEAAACwUgESAAQQJ0aigCACEHIAUgBSkCoBQ3A1AgBUHQAGogBxDOAkUEQCAFQaAUaiAHQQEQvQQgBSAFKQJYNwNIIAxBAWohDCAFQcgAaiAHEM4CIAhqIQgLIABBAWohAAwBCwsgDSgCACEAA0AgACAHTwRAIANBAWohAyAOKAIAIQAMAgUgBUGgFGogESAAQQJ0aigCAEEAEL0EIABBAWohACANKAIEIQcMAQsACwALAAUgBigCECAHQQJ0aigCACEAIAUgBSkCWDcDQCAFQUBrIAAQzgJFBEAgBUHYAGogAEEBEL0EIBJBAWohEgsgB0EBaiEHDAELAAsACwALQZHNAUHXxwFB0ABBoxAQAAALQeLRAUHXxwFBzwBBoxAQAAALQemcA0HXxwFByQBBoxAQAAALQeLRAUHXxwFBPUGjEBAAAAtB2zZB18cBQSlBoxAQAAALBSAHIAdBAWoiASACKAIQKAKYASAAQQJ0aigCACgCEC0AhwFBAUsiBhshB0EAIBMgAWsgBhsgBGohBCAAQQFqIQAMAQsLIAVBgQE2AgQgBUHXxwE2AgBBuPwIKAIAQffIBCAFEB4aEGwACyADIQADQCADIBZGBEAgACAERwRAQfExQdfHAUGwAUHOrwEQAAALBSACKAIQKAKYASADQQJ0aigCACgCEC0AhwFBAU0EQAJ/IAogAEEEdGohDUEAIQEjAEEgayIHJAAgBigCABDAASEJIAYoAgAQwAEhCCAGKAIAIQsDQCABIAtGBEAgCCADQQJ0IgFqQQA2AgAgBigCBCABaiIOKAIAIgEgDigCBCIOIAEgDksbIQ4CQANAIAEgDkYEQCALQQBOBEAgB0EQaiADIAkgCCALELoNQQAhCyAHQQA2AgwDQAJAIAdBEGogB0EMaiAJIAgQuQ1FDQAgCCAHKAIMIgFBAnQiEmoqAgAiPUP//39/Ww0AIAcgBikACCJDNwMYIAEgQ0IgiKdPDQ8CQCABIANOBEAgAUEDdiAHQRhqIEOnIENCgICAgJAEVBtqLQAAQQEgAUEHcXRxRQ0BCyANIAtBBHRqIg5DAACAPyA9ID2UlTgCDCAOID04AgggDiABNgIEIA4gAzYCACALQQFqIQsLIAYoAgQiDiASaigCACEBA0AgASAOIBJqKAIETw0CIAFBAnQiDiAGKAIQaigCACIMQQBIDQYgB0EQaiAMID0gBigCFCAOaioCAJIgCSAIELgNIAFBAWohASAGKAIEIQ4MAAsACwsgBygCEBAYIAkQGCAIEBggB0EgaiQAIAsMBgsFIAggAUECdCISIAYoAhBqKAIAQQJ0aiAGKAIUIBJqKgIAOAIAIAFBAWohAQwBCwtBw9IBQerHAUGxAkHFrwEQAAALQb/RAUHqxwFBxwJBxa8BEAAABSAIIAFBAnRqQf////sHNgIAIAFBAWohAQwBCwALAAsgAGohAAsgA0EBaiEDDAELCyAGKAIEEBggFBDqByAGKAIQEBggBigCFBAYIAYQGEGM4QotAAAEQCAFEJABOQMwQbj8CCgCAEHH0wQgBUEwahAyC0EBIAQgBEEBTBshAUEBIQAgCioCDCI9IT4DQCAAIAFGBEBBACEAQcjhCigCAEHA4QorAwAhNSACIBMQjA5EAAAAAAAA8D8gPrujIjcgNSA9u6OjITVBAWshByATQQF0QQgQGSEGIBNBARAZIQkDQCAAIBZGBEACQEG4/AgoAgAhE0GM4QotAAACfAJAAn8CQCA1vSJDQv////////8HVwRARAAAAAAAAPC/IDUgNaKjIDVEAAAAAAAAAABhDQQaIENCAFkNASA1IDWhRAAAAAAAAAAAowwECyBDQv/////////3/wBWDQJBgXghACBDQiCIIkRCgIDA/wNSBEAgRKcMAgtBgIDA/wMgQ6cNARpEAAAAAAAAAAAMAwtBy3chACA1RAAAAAAAAFBDor0iQ0IgiKcLQeK+JWoiA0EUdiAAarciOEQAAOD+Qi7mP6IgQ0L/////D4MgA0H//z9xQZ7Bmv8Daq1CIIaEv0QAAAAAAADwv6AiNSA1IDVEAAAAAAAAAECgoyI2IDUgNUQAAAAAAADgP6KiIjogNiA2oiI2IDaiIjUgNSA1RJ/GeNAJmsM/okSveI4dxXHMP6CiRAT6l5mZmdk/oKIgNiA1IDUgNUREUj7fEvHCP6JE3gPLlmRGxz+gokRZkyKUJEnSP6CiRJNVVVVVVeU/oKKgoKIgOER2PHk17znqPaKgIDqhoKAhNQsgNQshNQRAQdHoAUEOQQEgExBMGkGw5goQrgELIAVB2ABqIQNBACEAQQAhAQNAIAFB8ARHBEAgAyABQQJ0aiAANgIAIAFBAWoiASAAQR52IABzQeWSnuAGbGohAAwBCwsgA0HwBDYCwBMgBEEAIARBAEobIQsgNZogB7ejIThBACEIA0AgBCEAQcjhCigCACAITARAQQAhAEGM4QotAAAEQCAFEJABOQMgIBNBr9MEIAVBIGoQMgsgChAYA0AgACAWRg0DIAIoAhAoApgBIABBAnRqKAIAKAIQKAKUASIBIAYgAEEEdGoiAysDADkDACABIAMrAwg5AwggAEEBaiEADAALAAUDQCAAQQJOBEAgAEEBayIABH8gBUHYAGohAyAAQQF2IAByIgFBAnYgAXIiAUEEdiABciIBQQh2IAFyIgFBEHYgAXIhDgNAQQAhBwJAIAMoAsATIgFB8ARGBEADQEHjASEBIAdB4wFGBEADQCABQe8ERwRAIAMgAUECdGoiByAHQYwHaygCAEHf4aLIeUEAIAMgAUEBaiIBQQJ0aigCACISQQFxG3MgEkH+////B3EgBygCAEGAgICAeHFyQQF2czYCAAwBCwtBASEHIAMgAygCsAxB3+GiyHlBACADKAIAIgFBAXEbcyABQf7///8HcSADKAK8E0GAgICAeHFyQQF2czYCvBMMAwUgAyAHQQJ0aiIBIAFBtAxqKAIAQd/hosh5QQAgAyAHQQFqIgdBAnRqKAIAIhJBAXEbcyASQf7///8HcSABKAIAQYCAgIB4cXJBAXZzNgIADAELAAsACyABQQFqIQcgAyABQQJ0aigCACEBCyADIAc2AsATIA4gAUELdiABcyIBQQd0QYCtsel5cSABcyIBQQ90QYCAmP5+cSABcyIBQRJ2IAFzcSIBIABLDQALIAEFQQALIQMgBUGoFGoiByAKIABBBHRqIgEpAgg3AwAgBSABKQIANwOgFCABIAogA0EEdGoiAykCCDcCCCABIAMpAgA3AgAgAyAHKQMANwIIIAMgBSkDoBQ3AgAMAQsLIDcgOCAIuKIQpgyiITpBACEAAkADQAJAIAAgC0YEQEEAIQBBjOEKLQAARQ0DRAAAAAAAAAAAITUDQCAAIAtGDQIgCiAAQQR0aiIBKgIMuyAGIAEoAgBBBHRqIgMrAwAgBiABKAIEQQR0aiIHKwMAoSADKwMIIAcrAwihEFAgASoCCLuhIjYgNqKiIDWgITUgAEEBaiEADAALAAsgBiAKIABBBHRqIgMoAgAiDkEEdGoiBysDACI7IAYgAygCBCISQQR0aiIBKwMAoSI2IAcrAwgiPCABKwMIoSI5EFAhNSADKgIIIT0gOSA6IAMqAgy7okQAAAAAAADwPxAqIDUgPbuhoiA1IDWgoyI5oiE1IDYgOaIhNiAJIA5qLQAAQQFGBEAgByA7IDahOQMAIAcgPCA1oTkDCAsgCSASai0AAEEBRgRAIAEgNiABKwMAoDkDACABIDUgASsDCKA5AwgLIABBAWohAAwBCwsgBSA1OQMQIBNBjI4BIAVBEGoQMgsgCEEBaiEIDAELAAsACwUgBiAAQQR0aiIBIAIoAhAoApgBIABBAnRqKAIAKAIQIgMoApQBIggrAwA5AwAgASAIKwMIOQMIIAAgCWogAy0AhwFBAkk6AAAgAEEBaiEADAELCyAGEBggCRAYIAVBsBRqJAAFID0gCiAAQQR0aioCDCI/EMkFIT0gPiA/EKEMIT4gAEEBaiEADAELCwwCC0HM4QovAQAhBSABIAYgAkECR0EBdBD3DCEHIAEgAUEAQZQZQQAQIUECQQAQZCILQQAgC0EDSBtFBEAgEEGUGTYCQEHCoQQgEEFAaxArQQIhCwsgBUEEEBkiEyAFIAZsQQgQGSIINgIAQQFBzOEKLwEAIgUgBUEBTRshCUEBIQUCQAJAA0AgBSAJRgRAAkAgCyALQQRyIAcbIQVBjOEKLQAABEAgEEHA4QorAwA5AzAgECADNgIgIBAgB0U2AiQgECAFQQNxNgIoIBBByOEKKAIANgIsQbj8CCgCACIHQcizBCAQQSBqEDJB8NUDQQ9BASAHEEwaQbDmChCuAUH7lQRBDUEBIAcQTBoLIAEgBiAQQcwBaiACIAMgEEHIAWoQ9QwhFkGM4QotAAAEQCAQEJABOQMYIBAgBjYCEEG4/AgoAgBB9NIEIBBBEGoQMgsCQCACQQFHBEAgASABQQBB0OIAQQAQIUQAAAAAAAAAAET////////v/xBLITYgAkECRgRAIAYhBCAQKALIASEHQczhCi8BACEKQcjhCigCACErQQAhAEEAIQJBACEIIwBBMGsiFCQAIBRBADYCLCAUQQA2AigCQAJAIBYoAhBFDQAgBEEAIARBAEobIR4DQCAVIB5HBEBBASEGQQEgFiAVQRRsaiIJKAIAIgsgC0EBTRshCwNAIAYgC0YEQCAVQQFqIRUMAwUgACAJKAIQIAZBAnRqKgIAQwAAAABcciEAIAZBAWohBgwBCwALAAsLIABBAXFFDQACQAJAIAVBBHEiGwRAAkAgCkEDSQ0AQX8hGkEAIQYgFiAEIBNBBGogByAKQQFrIgAgBSADQQ8Q4wdBAEgNBSATIABBAnRqIQADQCAGIB5GDQEgBkEDdCIJIAAoAgBqIBMoAgQgCWorAwA5AwAgBkEBaiEGDAALAAsgEygCACEJQX8hGiAWIAQgEygCBCILIAQQvA0NAiAWIAQgCyAUQSxqIBRBKGogFEEkahD5Bw0CIBQoAiQiDkEATARAIBQoAigQGAwECwJAIDZEAAAAAAAAAABkRQ0AIA5BAWshEkEAIQcgFCgCKCENIBQoAiwhBQNAIAcgDkYNASAEIQAgNUQAAAAAAAAAACA2IAsgBSANIAdBAnRqIgwoAgAiBkECdGoiD0EEaygCAEEDdGorAwAgNSALIA8oAgBBA3RqKwMAoKGgIjUgNUQAAAAAAAAAAGMboCE1IAcgEkgEQCAMKAIEIQALIAAgBiAAIAZKGyEAA0AgACAGRgRAIAdBAWohBwwCBSALIAUgBkECdGooAgBBA3RqIgwgNSAMKwMAoDkDACAGQQFqIQYMAQsACwALAAsgCkECRw0BAn9BwOEKKwMAITpBACEFIARBACAEQQBKGyEHIARBBBAZIQ4gBEEIEBkhDwJAIBYoAggEQCAWIAQQtg0hBgwBCyAEQQAgBEEAShshACAEIARsEMABIRIgBBDAASEGA0AgACAFRgRAA0AgACAIRg0DIAggFiAEIAYgCEECdGooAgAQ9gMgCEEBaiEIDAALAAUgBiAFQQJ0aiASIAQgBWxBAnRqNgIAIAVBAWohBQwBCwALAAsDQCACIAdHBEAgBiACQQJ0aiEFQQAhAANAIAAgBEcEQCAFKAIAIABBAnRqIgggCCgCAEEIdDYCACAAQQFqIQAMAQsLIAJBAWohAgwBCwsgCwRAQQEgBCAEQQFMGyEXQQEhAgNAIAIgF0cEQCALIAJBA3RqKwMAITsgBiACQQJ0aigCACEIQQAhAANAIAAgAkcEQEQAAAAAAADwPyAIIABBAnRqKAIAIgW3oyA7IAsgAEEDdGorAwChmSI1oiA3oCE3RAAAAAAAAPA/IAUgBWy4oyA1oiA1oiA4oCE4IABBAWohAAwBCwsgAkEBaiECDAELCyA3IDijIjtEAAAAAAAAAAAgOJkiPEQAAAAAAADwf2IbITVBACEAA0AgACAHRwRAIAsgAEEDdGoiAiA1IAIrAwCiOQMAIABBAWohAAwBCwtBACEAIAQgBGwiGEEEEBkhAiAEQQQQGSESA0AgACAHRwRAIBIgAEECdGogAiAAIARsQQJ0ajYCACAAQQFqIQAMAQsLIASyIT1EAAAAAAAAAAAhOEEAIQIgBEEEEBkhBQNAIAIgB0cEQCAGIAJBAnQiCGohDUQAAAAAAAAAACE3QQAhAANAIAAgBEcEQCANKAIAIABBAnRqKAIAtyI5IDmiIjkgN6AhNyA5IDigITggAEEBaiEADAELCyAFIAhqIDe2ID2VOAIAIAJBAWohAgwBCwsgOLYgGLOVIT1BACEIQQEhAgNAIAcgCEcEQCASIAhBAnQiDWooAgAhESAFIA1qKgIAIT4gBiANaigCACEVQQAhAANAIAAgAkcEQCARIABBAnQiDGogBSAMaioCACA+IAwgFWooAgCyIj8gP5STkiA9kyI/OAIAIAwgEmooAgAgDWogPzgCACAAQQFqIQAMAQsLIAJBAWohAiAIQQFqIQgMAQsLIAUQGEEAIQBBAUEIEBkhESAEQQgQGSEFQQAhAgNAIAIgB0YEQEQAAAAAAAAAACE3A0AgACAHRwRAIDcgBSAAQQN0aisDAKAhNyAAQQFqIQAMAQsLIDcgBLejITdBACEAA0AgACAHRwRAIAUgAEEDdGoiAiACKwMAIDehOQMAIABBAWohAAwBCwsgBSAEQQFrIg0QsgMiN5lEAAAAAAAAsDxjRQRAIAQgBUQAAAAAAADwPyA3oyAFEPEBC0EBIAQgBEEAShshGUQAAAAAAADwPyA6oSE4QQAhCCAEQQgQGSEMIARBCBAZIRUCQANAAkBBACEAIAggGU4NAANAIAAgBEcEQCAJIABBA3RqEKsBQeQAb7c5AwAgAEEBaiEADAELIAVFDQMgCSANIAQgBSAJELABmiAFEMUEQQAhACAJIA0QsgMiN0S7vdfZ33zbPWMNAAsgBCAJRAAAAAAAAPA/IDejIAkQ8QEDQCAEIAkgFRCUAkEAIQIDQCACIAdHBEAgEiACQQJ0aiEdRAAAAAAAAAAAITdBACEAA0AgACAHRwRAIB0oAgAgAEECdGoqAgC7IAkgAEEDdGorAwCiIDegITcgAEEBaiEADAELCyAMIAJBA3RqIDc5AwAgAkEBaiECDAELCyAMIA0gBCAMIAUQsAGaIAUQxQQgBCAMIAkQlAIgCSANELIDIjdEu73X2d982z1jDQEgBCAJRAAAAAAAAPA/IDejIAkQ8QEgBCAJIBUQsAEiOZkgOGMNAAsgESA3IDmiOQMAQQEhCAwBCwsDQEEAIQACQCAIIBlIBEADQCAAIARGDQIgCSAAQQN0ahCrAUHkAG+3OQMAIABBAWohAAwACwALIAwQGCAVEBgDQCAAIAdHBEAgCSAAQQN0aiICIAIrAwAgESsDAJmfojkDACAAQQFqIQAMAQsLIBIoAgAQGCASEBggERAYIAUQGEEAIQIgGEEEEBkhDUEBIQgDQCACIAdGBEBBACEFA0AgCCAXRgRAA0AgBSAHRgRAQQAhBUEAIQgDQAJAIAVBAXFFIAhBxwFNcUUEQEEAIQUgO5lEAAAAAAAAsDxjRSA8RAAAAAAAAPB/YnFFDQFBACEAA0AgACAHRg0CIAsgAEEDdCICaiIIIAgrAwAgNaM5AwAgAiAJaiICIAIrAwAgNaM5AwAgAEEBaiEADAALAAtBACECQQEhBSAOIAkgDyAEIDogBEEBEL0NQQBIDQADQCACIAdHBEAgDiACQQJ0IgBqIRIgACAGaiENIAkgAkEDdCIMaisDACE5RAAAAAAAAAAAITdBACEAA0AgACAERwRAAkAgACACRg0AIABBAnQiESANKAIAaigCALIgEigCACARaioCAIyUuyE4IAkgAEEDdGorAwAgOWUEQCA3IDigITcMAQsgNyA4oSE3CyAAQQFqIQAMAQsLIDcgDCAPaiIAKwMAIjhhRAAAAAAAAPA/IDcgOKOhmUTxaOOItfjkPmRFckUEQCAAIDc5AwBBACEFCyACQQFqIQIMAQsLIAhBAWohCAwBCwsgBigCABAYIAYQGCAOKAIAEBggDhAYIA8QGCAFDAwFIAkgBUEDdCIAaisDACE4IAAgD2oiAkIANwMAIA4gBUECdCIAaiEIIAAgBmohEkEAIQBEAAAAAAAAAAAhNwNAIAAgBEcEQCAAIAVHBEAgAiA3IABBAnQiDSASKAIAaigCALIgCCgCACANaioCAIyUuyI5oCA3IDmhIDggCSAAQQN0aisDAGYbIjc5AwALIABBAWohAAwBCwsgBUEBaiEFDAELAAsABSAGIAhBAnQiAmooAgAhEiALIAhBA3RqKwMAITdBACEAA0AgACAIRwRAIBIgAEECdCINaiIMKAIAtyI4IDiiIDcgCyAAQQN0aisDAKEiOCA4oqEiOEQAAAAAAAAAAGQhESAGIA1qKAIAIAJqAn8gOJ8iOJlEAAAAAAAA4EFjBEAgOKoMAQtBgICAgHgLQQAgERsiDTYCACAMIA02AgAgAEEBaiEADAELCyAIQQFqIQgMAQsACwAFIA4gAkECdCIFaiANIAIgBGxBAnRqIhI2AgAgBSAGaiEMQQAhAEMAAAAAIT0DQCAAIARHBEAgACACRwRAIBIgAEECdCIRakMAAIC/IAwoAgAgEWooAgCyIj4gPpSVIj44AgAgPSA+kyE9CyAAQQFqIQAMAQsLIAUgEmogPTgCACACQQFqIQIMAQsACwALIAQgCUQAAAAAAADwPyAJIA0QsgOjIAkQ8QEgEUIANwMAQQEhCAwACwALQYTbAUGgwAFB4ABBlIYBEAAABSAFIAJBA3QiCGogCCALaisDADkDACACQQFqIQIMAQsACwALQY7ZAUGgwAFBlAJBvfIAEAAAC0UNAQwCCyAEIAogEyAHEOkHGkF/IRogFiAEQQAgFEEsaiAUQShqIBRBJGoQ+QcNAQsgBEEBRgRAIBQoAigQGEEAIRoMAwsgK0UEQCAUKAIoEBhBACEaDAMLQYzhCi0AAARAQbDmChCuAQsCQAJAAn8CQAJAAkAgA0EBaw4DAQACBAtBjOEKLQAABEBB0vUAQRhBAUG4/AgoAgAQTBoLIBYgBBDlBwwCCyAWIAQQ6AciGA0DQY6YBEEAECtB0eoEQQAQggEMAgtBjOEKLQAABEBB6/UAQRVBAUG4/AgoAgAQTBoLIBYgBBDnBwsiGA0BC0GM4QotAAAEQEG6M0EaQQFBuPwIKAIAEEwaCyAWIAQQ1wUhGAtBjOEKLQAABEAgFBCQATkDEEG4/AgoAgAiAEHG0wQgFEEQahAyQfkwQRlBASAAEEwaQbDmChCuAQsgBEEBayILIARsQQJtIQMCQCAbDQBBACEFIAohAkQAAAAAAADwPyE1A0AgAiAFRwRAIBMgBUECdGohAEEAIQYDQCAGIB5GBEAgBUEBaiEFDAMFIDUgACgCACAGQQN0aisDAJkQIiE1IAZBAWohBgwBCwALAAsLRAAAAAAAACRAIDWjITVBACEAA0AgACACRg0BIBMgAEECdGohBUEAIQYDQCAGIB5GBEAgAEEBaiEADAIFIAUoAgAgBkEDdGoiByA1IAcrAwCiOQMAIAZBAWohBgwBCwALAAsACyADIARqISREAAAAAAAAAAAhNQJAIDZEAAAAAAAAAABkRQ0AQQAhBSALQQAgC0EAShshByADsiE9QQAhAANAIAUgB0cEQCAFQQFqIgIhBgNAIABBAWohACAEIAZMBEAgAiEFDAMFIDUgEyAKIAUgBhC1DSAYIABBAnRqKgIAu6OgITUgBkEBaiEGDAELAAsACwtBACEGICRBACAkQQBKGyEAIDUgPbujtiE9A0AgACAGRg0BIBggBkECdGoiAiACKgIAID2UOAIAIAZBAWohBgwACwALQQAhBiAKIR0DQCAGIB1HBEAgBCATIAZBAnRqKAIAENECIAZBAWohBgwBCwsgEygCBCIAKwMAITVBACEGA0AgBiAeRwRAIAAgBkEDdGoiAiACKwMAIDWhOQMAIAZBAWohBgwBCwtBACEAIApBBBAZIRkgBCAKbCIIQQQQGSECA0AgACAdRwRAIBkgAEECdCIFaiACIAAgBGxBAnRqIgc2AgAgBSATaiEFQQAhBgNAIAYgHkYEQCAAQQFqIQAMAwUgByAGQQJ0aiAFKAIAIAZBA3RqKwMAtjgCACAGQQFqIQYMAQsACwALC0EAIQBBjOEKLQAABEAgFBCQATkDAEG4/AgoAgBBnb8BIBQQMgsgA7IgJCAYEMQEICQgGBCCCCAEIARBCBAZIh8Q5AUgC0EAIAtBAEobIS8gBCEHQQAhBgNAAkAgACAvRgRAQQAhBiAEIQBBACEFA0AgBiAeRg0CIBggBUECdGogHyAGQQN0aisDALY4AgAgACAFaiEFIAZBAWohBiAAQQFrIQAMAAsACyAfIABBA3RqIQNBASEFIAZBASAHIAdBAUwbakEBayEJRAAAAAAAAAAAITUDQCAGQQFqIQIgBiAJRgRAIAMgAysDACA1oTkDACAHQQFrIQcgAEEBaiEAIAIhBgwDBSADIAVBA3RqIgYgBisDACAYIAJBAnRqKgIAuyI3oTkDACAFQQFqIQUgNSA3oCE1IAIhBgwBCwALAAsLIApBBBAZIiAgCEEEEBkiADYCAEEBIAogCkEBTRshAkEBIQYDQCACIAZHBEAgICAGQQJ0aiAAIAQgBmxBAnRqNgIAIAZBAWohBgwBCwsgH0EIaiEyIDa2IUG7ITdE////////738hNiAEQQQQGSEhIARBBBAZISIgJEEEEBkhJyAUKAIsIQAgFCgCKCECIBQoAiQhA0EBQSQQGSIMIAM2AiAgDCACNgIcIAwgADYCGCAMIAQ2AgQgDCAYIAQQsQ02AgAgDCAEQQQQGTYCCCAMIARBBBAZNgIMIAwgBEEEEBk2AhAgDCAEQQQQGTYCFEEAIRVBACEaAkADQCAVQQFxIBogK05yRQRAIAQgHxDkBSAkIBggJxCBCEEAIQMgCyEAQQAhBUEAIRUDQCAFIC9GBEAgBCEAQQAhFQNAQQAhBiADIB5GBEBBACEAA0AgACAdRgRAAkBEAAAAAAAAAAAhNQNAIAYgHUYNASA1IAQgGSAGQQJ0IgBqKAIAIAAgIGooAgAQ0AKgITUgBkEBaiEGDAALAAsFICcgBCAZIABBAnQiAmooAgAgAiAgaigCABCEAyAAQQFqIQAMAQsLIDUgNaAgN6AhNUEAIQYDQCAGIB1HBEAgGCAEIBkgBkECdGoiACgCACAhEIQDIAZBAWohBiA1IAQgACgCACAhENACoSE1DAELC0EAIQYgGkEBSyA1IDZkcUHA4QorAwAgNSA2oSA2RLu919nffNs9oKOZZHIhFQNAAkAgBiAdRwRAIAZBAUYEQCAgKAIEITNBACEAQQAhDkEAISwjAEEQayIPJAAgGSgCBCEXIAwoAiAhEiAMKAIcISkgDCgCACEmIAwoAgQiCUEAIAlBAEobIS0gDCgCGCIRQQRrIQVDKGtuziE9QX8hAkEAIQMDQCAAIC1HBEAgACADTgRAIAkhAyASIAJBAWoiAkcEQCApIAJBAnRqKAIAIQMLIAAEfSBBIBcgBSAAQQJ0aigCAEECdGoqAgCSBUMoa27OCyE9IANBAWsiByAASgRAIBEgAEECdGogByAAa0EBakHRAyAXELMNCwsgPSAXIBEgAEECdGooAgBBAnRqIgcqAgBeBEAgByA9OAIACyAAQQFqIQAMAQsLIAwoAhAhKiAMKAIMITAgDCgCCCElIA9CADcDCCAPQgA3AwBBACECQX8hAyAJQQQQGSEbQQAhAANAIAAgLUYEQAJAIDBBBGsiMSAJQQJ0aiE0IAlBAWshDSAMKAIUISgDQAJAICxBD0gEQEMoa27OIUIgDkEAIQJBASEORQ0BCyAbEBggDxCwDSAPKAIAEBgMAgsDQCACIAlIBEBDAAAAACE9IBcgESACIgVBAnRqKAIAIgBBAnRqKgIAIkAhPgNAICggAEECdGogPTgCACAFQQFqIQoCQAJ/IAUgDUYEQCANIQUgCQwBCyAXIBEgCkECdCIDaigCACIAQQJ0aioCACI9IEEgPpIgPiADIBtqKAIAIBsgBUECdGooAgBKGyI+k4u7RJXWJugLLhE+ZEUNASAKCyEIIAIhBwNAIAUgB0gEQCAPELANIAIhAANAIAAgBUoEQEEAIQNDAAAAACE/IA8oAgghB0MAAAAAIT0DQCADIAdGBEAgByAJRiAJQQBOcSIuBEAgNCBAOAIAC0MAAAAAIT9DAAAAACE9IAchAANAIABFBEAgLgRAICogQDgCAAtBACEAQX8hA0QAAAAAAAAAACE2AkACQAJAA0AgACAHRgRAAkAgA0F/Rg0EICogA0ECdCIAaioCACI9IT4gAwRAIAAgMWoqAgAhPgsgPSAJIApKBH0gFyARIAhBAnRqKAIAQQJ0IgBqKgIAIj0gQZMgPSAAIBtqKAIAIBsgESAFQQJ0aigCAEECdGooAgBKGyAoIA8gB0EBaxDaAUECdGoqAgCTBUMoa25OCxChDCI/ID4gQhDJBSI9XUUNAyA/IEBdRQ0AIEAgPSA9IEBeGyI9IT8MAwsFICogAEECdCIcaioCACE+AkAgAARAID4gHCAxaioCACI9XUUNASA+IEBdBEAgQCA9ID0gQF4bIj0hPgwCCyA9IEBeRQ0BCyA+IT0LIAcgAGuzuyA+IECTi7uiIACzuyA9IECTi7uioCI4IDYgNiA4YyIcGyE2IAAgAyAcGyEDIABBAWohAAwBCwsgPSBAXkUNACA/IT0LQQAhAANAIAAgA0YEQCADIAcgAyAHSxshAANAIAAgA0YEQAJ9AkAgCSAKTA0AIBsgESAIQQJ0aigCAEECdGooAgAgGyARIAVBAnRqKAIAQQJ0aigCAEwNACBBIBcgDyAHQQFrENoBQQJ0aioCAJIMAQsgFyAPIAdBAWsQ2gFBAnRqKgIACyFCIAIhAANAIAAgBUoEQCAOID0gQJOLQwrXIzxdcSA/IECTi0MK1yM8XXEhDgwHBSARIABBAnRqIA8gACACaxDaATYCACAAQQFqIQAMAQsACwAFICggDyADENoBQQJ0aioCACE+IBcgDyADENoBQQJ0aiA/ID6SOAIAIANBAWohAwwBCwALAAUgKCAPIAAQ2gFBAnRqKgIAIT4gFyAPIAAQ2gFBAnRqID0gPpI4AgAgAEEBaiEADAELAAsACwJAIAkgCkoEQCAbIBEgCEECdGooAgBBAnRqKAIAIBsgESAFQQJ0aigCAEECdGooAgBKDQELIBcgDyAHQQFrENoBQQJ0aioCACFCDAELIEEgFyAPIAdBAWsQ2gFBAnRqKgIAkiFCCyAIIQIMCwsgJiAPIABBAWsiAxDaAUECdCIcaigCACEjQwAAAAAhPgNAIAAgB08EQCAqIANBAnRqID4gPpIiPiBAlCA9ID+UIBwgJWoqAgAgHCAjaiIAKgIAIj+Uk5IgPiA9ID+TkpUiPzgCACA9ID4gACoCAJOSIT0gAyEADAIFID4gIyAPIAAQ2gFBAnRqKgIAkyE+IABBAWohAAwBCwALAAsACyAmIA8gAxDaAUECdCIcaigCACEjQQAhAEMAAAAAIT4DQCAAIANGBEAgMCADQQJ0aiA+ID6SIj4gQJQgPSA/lCAcICVqKgIAIBwgI2oiACoCACI/lJOSID4gPSA/k5KVIj84AgAgA0EBaiEDID0gPiAAKgIAk5IhPQwCBSA+ICMgDyAAENoBQQJ0aioCAJMhPiAAQQFqIQAMAQsACwALAAsgCCEHIBIgGyARIABBAnRqKAIAQQJ0aigCACIDRwRAIAcgKSADQQJ0aigCACIDIAMgB0obIQcLIAcgACAAIAdIGyEcIAAhAwNAAkAgAyAcRgRAIAAhAwNAIAMgHEYNAiBAICUgESADQQJ0aigCACIjQQJ0aioCAFsEQCAPICMQVQsgA0EBaiEDDAALAAsgQCAlIBEgA0ECdGooAgAiI0ECdGoqAgBeBEAgDyAjEFULIANBAWohAwwBCwsDQCAAIBxGBEAgByEADAILIEAgJSARIABBAnRqKAIAIgNBAnRqKgIAXQRAIA8gAxBVCyAAQQFqIQAMAAsACwALICYgESAHQQJ0aigCACIjQQJ0IgNqKAIAIRwgAyAzaioCAIwhPkEAIQADQCAAIC1GBEAgAyAlaiA+IAMgHGoqAgCMlSADIChqKgIAkzgCACAHQQFqIQcMAgUgACAjRwRAIBwgAEECdCIuaioCACAXIC5qKgIAlCA+kiE+CyAAQQFqIQAMAQsACwALAAsgPSBAkyE9IAohBQwACwALCyAJIBcQhQMgLEEBaiEsDAALAAsFAkAgACACSA0AIANBAWohBSAJIQIgBSASIgNGDQAgKSAFQQJ0aigCACECIAUhAwsgGyARIABBAnRqKAIAQQJ0aiADNgIAIABBAWohAAwBCwsgD0EQaiQADAILIBggGSAGQQJ0IgBqKAIAIAAgIGooAgAgBCAEEMMERQ0BQX8hGgwJCyAaQQFqIRogNSE2DAcLIAZBAWohBgwACwAFICcgFUECdGogHyADQQN0aisDALY4AgAgACAVaiEVIANBAWohAyAAQQFrIQAMAQsACwAFIABBACAAQQBKGyEHIARDAAAAACAiEPcDIAQgBUF/c2ohAkEAIQYDQCAGIB1HBEAgAiAFQQJ0IgggGSAGQQJ0aiIJKAIAaioCACAhEPcDIAIgIUMAAIC/IAkoAgAgCGpBBGoQ5QUgAiAhEMQEIAIgISAiICIQwA0gBkEBaiEGDAELCyACICIQgAhBACEGA0ACQCAGIAdGBEAgMiAFQQN0IgJqIQhBACEGRAAAAAAAAAAAITUMAQsgIiAGQQJ0aiICKgIAIj1D//9/f2AgPUMAAAAAXXIEQCACQQA2AgALIAZBAWohBgwBCwsDQCAVQQFqIRUgBiAHRwRAICcgFUECdGoiCSAiIAZBAnRqKgIAIAkqAgCUIj04AgAgCCAGQQN0aiIJIAkrAwAgPbsiOKE5AwAgNSA4oCE1IAZBAWohBgwBCwsgAiAfaiICIAIrAwAgNaE5AwAgAEEBayEAIAVBAWohBQwBCwALAAsLIBkEQEEAIQADQCAAIB1HBEAgEyAAQQJ0IgJqIQMgAiAZaiECQQAhBgNAIAYgHkYEQCAAQQFqIQAMAwUgAygCACAGQQN0aiACKAIAIAZBAnRqKgIAuzkDACAGQQFqIQYMAQsACwALCyAZKAIAEBggGRAYCyAhEBggIhAYIB8QGCAYEBggJxAYCyAMBEAgDCgCACgCABAYIAwoAgAQGCAMKAIIEBggDCgCDBAYIAwoAhAQGCAMKAIUEBggDBAYCyAgKAIAEBggIBAYCyAUKAIsEBggFCgCKBAYDAELIBYgBCATIAcgCiAFIAMgKxDjByEaCyAUQTBqJAAgGiEFDAILIBAgARA4IgI2AmwgEEEANgJoIAJBIU8EQCAQIAJBA3YgAkEHcUEAR2pBARAZNgJoCyABEDghCyAAEHohBQNAIAUEQCAFEMcBIBhqIRggBRB5IQUMAQsLIBhBBBAZIQ4gGEEEEBkhEiAAEHohACAOIQggEiEHA0AgAARAAkAgABDHAUUNACAHIAAQOCICNgIAIAggAkEEEBkiCjYCACAIQQRqIQggB0EEaiEHIAIgDWohDSAAEBshAgNAIAJFDQFBACEJIAEQGyEFA0ACQCAFRQ0AIAIoAgAgBSgCAHNBEEkNACAJQQFqIQkgASAFEBwhBQwBCwsgCiAJNgIAIAkgECgCbCIFTw0GIAlBA3YgEEHoAGogECgCaCAFQSFJG2oiBSAFLQAAQQEgCUEHcXRyOgAAIAtBAWshCyAKQQRqIQogACACEBwhAgwACwALIAAQeSEADAELCyAYQSAQGSEnIAtBBBAZISAgEEGAAWogECkDaCJDpyIAIENCgICAgJAEVBshAiBDQiCIpyEHQQAhBUEAIQkDQCABEDggBUoEQCAQIEM3A4ABIAUgB0YNCyACIAVBA3ZqLQAAIAVBB3F2QQFxRQRAICAgCUECdGogBTYCACAJQQFqIQkLIAVBAWohBQwBCwsgCyABEDggDWtHDQUgQ0KAgICAkARaBEAgABAYCyAGQRAQGSEhIBAgJzYCxAEgECAgNgLAASAQIAs2ArwBIBAgDjYCuAEgECASNgK0ASAQIBg2ArABIBAgDTYCrAEgECAhNgKoASAQIDY5A4gBAkAgAUGWLBAmIgAQagRAIBBBATYCgAFBjOEKLQAARQ0BQdjwBEEfQQFBuPwIKAIAEEwaDAELAkAgAEUNACAAQYc/QQQQgQINACAQQQI2AoABQYzhCi0AAEUNAUH48ARBKEEBQbj8CCgCABBMGgwBCyAQQQA2AoABCwJAAkACQAJAIAQoAgBBEGsOAgEAAgsgEEEBNgKQAUGM4QotAABFDQJBsfAEQSZBAUG4/AgoAgAQTBoMAgsgEEECNgKQAUGM4QotAABFDQFBofEEQSRBAUG4/AgoAgAQTBoMAQsgEEEANgKQAQsgEEHoAGogARCBA0Qcx3Ecx3G8PyE1RBzHcRzHcbw/ITYgEC0AeEEBRgRAIBArA3BEAAAAAAAAUkCjIjUgNaAhNiAQKwNoRAAAAAAAAFJAoyI1IDWgITULIBAgNjkDoAEgECA1OQOYAUEAIQlBjOEKLQAABEAgECA2OQMIIBAgNTkDAEG4/AgoAgBBlrMEIBAQMgsgARAbIQUDQCAFBEAgISAJQQR0aiIAIAUoAhAiAisDIDkDACAAIAIrAyg5AwggCUEBaiEJIAEgBRAcIQUMAQsLIBAoAsgBIQBBzOEKLwEAIQtByOEKKAIAISIgEEGAAWohFEEAIQRBACEHQQAhBSMAQeAAayIMJAAgBiALIBMgABDpBxoCQCAGQQFGDQAgBkEAIAZBAEobIRoDQCAEIBpHBEBBASECQQEgFiAEQRRsaiIAKAIAIgggCEEBTRshCANAIAIgCEYEQCAEQQFqIQQMAwUgACgCCCACQQJ0aioCACI+ID0gPSA+XRshPSACQQFqIQIMAQsACwALCyAiRQ0AQYzhCi0AAARAQbDmChCuAQsCQAJAAn8CQAJAAkAgA0EBaw4DAQACBAtBjOEKLQAABEBB0vUAQRhBAUG4/AgoAgAQTBoLIBYgBhDlBwwCCyAWIAYQ6AciBw0DQY6YBEEAECtB0eoEQQAQggEMAgtBjOEKLQAABEBB6/UAQRVBAUG4/AgoAgAQTBoLIBYgBhDnBwsiBw0BC0GM4QotAAAEQEG6M0EaQQFBuPwIKAIAEEwaCyAWIAYQ1wUhBwtBjOEKLQAABEAgDBCQATkDUEG4/AgoAgAiAEHG0wQgDEHQAGoQMkH5MEEZQQEgABBMGkGw5goQrgELIAZBAWsiCiAGbEECbUQAAAAAAADwPyE1A0AgBSALRwRAIBMgBUECdGohA0EAIQIDQCACIBpGBEAgBUEBaiEFDAMFIDUgAygCACACQQN0aisDAJkQIiE1IAJBAWohAgwBCwALAAsLRAAAAAAAACRAIDWjITVBACEEQQAhAwNAAkAgAyALRgRAA0AgBCALRg0CIAYgEyAEQQJ0aigCABDRAiAEQQFqIQQMAAsACyATIANBAnRqIQVBACECA0AgAiAaRgRAIANBAWohAwwDBSAFKAIAIAJBA3RqIgggNSAIKwMAojkDACACQQFqIQIMAQsACwALCyATKAIEIgMrAwAhNUEAIQIDQCACIBpHBEAgAyACQQN0aiIEIAQrAwAgNaE5AwAgAkEBaiECDAELCyAGaiEZQYzhCi0AAARAIAwQkAE5A0BBuPwIKAIAQZ2/ASAMQUBrEDILIBkgBxDEBCAZIAcQgggCQCAUKAIwIgBBAEwEQCAHIQkgBiEADAELQwAAgD8gPSA9lCI9lSA9ID1DCtcjPF4bIT4gAEEBdCAGaiIAQQAgAEEAShshDSAAQQFrIgogAGxBAm0gAGoiGUEEEBkhCSAAIQhBACEEQQAhBUEAIQMDQCAEIA1HBEAgCEEAIAhBAEobIQ8gBEEBcSERIAYgBGshFUEAIQIDQCACIA9GBEAgCEEBayEIIARBAWohBAwDBQJAIAQgBk4gAiAVTnJFBEAgByAFQQJ0aioCACE9IAVBAWohBQwBC0MAAAAAID4gAkEBRxtDAAAAACARGyE9CyAJIANBAnRqID04AgAgAkEBaiECIANBAWohAwwBCwALAAsLIAcQGAsgACAAQQgQGSIREOQFQQAhAiAKQQAgCkEAShshKCAAIQRBACEIA0AgCCAoRwRAIBEgCEEDdGohB0EBIQUgAkEBIAQgBEEBTBtqQQFrIQ1EAAAAAAAAAAAhNQNAIAJBAWohAyACIA1GBEAgByAHKwMAIDWhOQMAIARBAWshBCAIQQFqIQggAyECDAMFIAcgBUEDdGoiAiACKwMAIAkgA0ECdGoqAgC7IjahOQMAIAVBAWohBSA1IDagITUgAyECDAELAAsACwtBACEDIABBACAAQQBKGyEkIAAhBUEAIQIDQCACICRHBEAgCSADQQJ0aiARIAJBA3RqKwMAtjgCACADIAVqIQMgAkEBaiECIAVBAWshBQwBCwtBACEEIAtBBBAZIQ0gACALbCIDQQQQGSEFA0AgBCALRwRAIA0gBEECdCICaiAFIAAgBGxBAnRqIgc2AgAgAiATaiEIQQAhAgNAIAIgJEYEQCAEQQFqIQQMAwUgByACQQJ0aiACIAZIBH0gCCgCACACQQN0aisDALYFQwAAAAALOAIAIAJBAWohAgwBCwALAAsLIAtBBBAZIg8gA0EEEBkiAzYCAEEBIAsgC0EBTRshBCAAIApsQQJtIQVBASECA0AgAiAERwRAIA8gAkECdGogAyAAIAJsQQJ0ajYCACACQQFqIQIMAQsLQX8hByAAQQQQGSEVIABBBBAZIRcCQAJAAkAgACAJIBYgFEEAEPgHIh5FDQAgACAJIBYgFCAUKAIAEPgHIh1FDQAgIkEBayErIBFBCGohLEG4/AgoAgAhHyAFsrshOET////////vfyE2IBlBBBAZIRtEAAAAAAAAAAAhNUEAIQRBACEHA0AgBEEBcSAHICJOckUEQCAAIBEQ5AUgGSAJIBsQgQhBACElIAohBUEAIQNBACEIA0AgCCAoRgRAIAAhA0EAIQQDQEEAIQIgBCAkRgRAQQAhBANAIAQgC0YEQAJARAAAAAAAAAAAITUDQCACIAtGDQEgNSAAIA0gAkECdCIDaigCACADIA9qKAIAENACoCE1IAJBAWohAgwACwALBSAbIAAgDSAEQQJ0IgNqKAIAIAMgD2ooAgAQhAMgBEEBaiEEDAELCyA1IDWgIDigITVBACECA0AgAiALRwRAIAkgACANIAJBAnRqIgMoAgAgFRCEAyACQQFqIQIgNSAAIAMoAgAgFRDQAqEhNQwBCwsCQEGM4QotAABFDQAgDCA1OQMwIB9BvtMDIAxBMGoQMiAHQQpvDQBBCiAfEKwBGgtBACEEQQAhAyAUKAIQIQIgNSA2YwRAQcDhCisDACA1IDahIDZEu73X2d982z2go5lkIQMLAkAgA0UgByArSHENACA3RCuHFtnO9+8/Y0UgAkEBR3JFBEAgN0SamZmZmZm5P6AhN0GM4QotAAAEfyAMIAc2AiggDCA3OQMgIB9B68kEIAxBIGoQMiAUKAIQBUEBCyECQQAhBwwBCyADIQQLIDdE/Knx0k1iUD9kRSACQQFHckUEQCAeIDe2IA1BACA3RAAAAAAAAOA/ZiAUEOMFCwJAAkACQAJAIB4oAhRBAEoEQCAeIA8oAgAgDSgCABCvDRoMAQsgCSANKAIAIA8oAgAgACAAEMMEQQBIDQELIDdE/Knx0k1iUD9kRSAUKAIQQQFHckUEQCAdIDe2IA1BAUEAIBQQ4wULIB0oAhRBAEwNASAdIA8oAgQgDSgCBBCvDUEATg0CC0F/IQcMCQsgCSANKAIEIA8oAgQgACAAEMMEGgsgB0EBaiEHIDUhNgwFBSAbICVBAnRqIBEgBEEDdGorAwC2OAIAIAMgJWohJSAEQQFqIQQgA0EBayEDDAELAAsABSAFQQAgBUEAShshKiAAQwAAAAAgFxD3AyAAIAhBf3NqIQJBACEEA0AgBCALRwRAIAIgCEECdCIpIA0gBEECdGoiJigCAGoqAgAgFRD3AyACIBVDAACAvyAmKAIAIClqQQRqEOUFIAIgFRDEBCACIBUgFyAXEMANIARBAWohBAwBCwsgAiAXEIAIQQAhAgNAAkAgAiAqRgRAICwgCEEDdCIEaiEpQQAhAkQAAAAAAAAAACE1DAELIBcgAkECdGoiBCoCACI9Q///f39gID1DAAAAAF1yBEAgBEEANgIACyACQQFqIQIMAQsLA0AgA0EBaiEDIAIgKkcEQCAbIANBAnRqIiYgFyACQQJ0aioCACAmKgIAlCI9OAIAICkgAkEDdGoiJiAmKwMAID27IjqhOQMAIDUgOqAhNSACQQFqIQIMAQsLIAQgEWoiAiACKwMAIDWhOQMAIAVBAWshBSAIQQFqIQgMAQsACwALC0GM4QotAAAEQCAMEJABOQMQIAwgBzYCCCAMIDU5AwAgH0HO0gQgDBAyCyAeEPcHIB0Q9wcgFCgCEEECRw0AIAYgDSAUEK4NCyANRQ0BC0EAIQgDQCAIIAtHBEAgEyAIQQJ0IgBqIQMgACANaiEAQQAhAgNAIAIgGkYEQCAIQQFqIQgMAwUgAygCACACQQN0aiAAKAIAIAJBAnRqKgIAuzkDACACQQFqIQIMAQsACwALCyANKAIAEBggDRAYCyAPKAIAEBggDxAYIBUQGCAXEBggERAYIAkQGCAbEBgLIAxB4ABqJAAgByEFIBgEQCAOKAIAEBggDhAYIBIQGCAgEBggJxAYCyAhEBgMAQsgFiAGIBMgECgCyAFBzOEKLwEAIAUgA0HI4QooAgAQ4wchBQsgBUEASARAQZzBBEEAEIIBDAULIAEQGyEKA0AgCkUNBUEAIQVBzOEKLwEAIQAgCigCECICKAKIAUEDdCEDA0AgACAFRgRAIAEgChAcIQoMAgUgAigClAEgBUEDdGogEyAFQQJ0aigCACADaisDADkDACAFQQFqIQUMAQsACwALAAsFIBMgBUECdGogCCAFIAZsQQN0ajYCACAFQQFqIQUMAQsLQfC6A0HbgQFB0QBBpiIQAAALQasvQb/BAUH2AUHE4QAQAAALIBYQ/wwgEygCABAYIBMQGCAQKALIARAYDAELIAEgBhCMDkEAIQIjAEHgAGsiBCQAQYzhCi0AAARAQdbVA0EZQQFBuPwIKAIAEEwaQbDmChCuAQsgBkEAIAZBAEobIQkgASgCECIAKAKgASEIIAAoAqQBIQUDQCACIAlHBEAgBSACQQJ0IgdqIQogByAIaiETQQAhAANAIAAgAkcEQEQAAAAAAADwPyAAQQN0IhYgEygCAGorAwAiNSA1oqMhNSABIAEoAhAoApgBIgsgB2ooAgAgCyAAQQJ0Ig5qKAIAQQBBABBgIgsEQCA1IAsoAhArA4ABoiE1CyAFIA5qKAIAIAJBA3RqIDU5AwAgCigCACAWaiA1OQMAIABBAWohAAwBCwsgAkEBaiECDAELC0EAIQJBzOEKLwEAIQUDf0EAIQAgAiAJRgR/IAEoAhAiBSgCmAEhCkEABQNAIAAgBUcEQCABKAIQKAKoASACQQJ0aigCACAAQQN0akIANwMAIABBAWohAAwBCwsgAkEBaiECDAELCyEHA0ACQAJAIAogB0ECdCIIaigCACIWBEBBACECQczhCi8BACELA0AgAiAJRg0CAkAgAiAHRg0AQQAhACAWKAIQKAKUASAKIAJBAnQiDmooAgAoAhAoApQBIARBEGoQiw4hNQNAIAAgC0YNASAAQQN0IhMgBSgCrAEgCGooAgAgDmooAgBqIAJBA3QiEiAFKAKkASAIaigCAGorAwAgBEEQaiATaisDACI2IDYgBSgCoAEgCGooAgAgEmorAwCiIDWjoaIiNjkDACAFKAKoASAIaigCACATaiITIDYgEysDAKA5AwAgAEEBaiEADAALAAsgAkEBaiECDAALAAtBjOEKLQAABEAgBBCQATkDAEG4/AgoAgBByNMEIAQQMgsgBEHgAGokAAwBCyAHQQFqIQcMAQsLQYzhCi0AAARAIBAgAzYCUCAQQcjhCigCADYCVCAQQcDhCisDADkDWEG4/AgoAgBBgbQEIBBB0ABqEDJBsOYKEK4BCyABIQkjAEHAAmsiCiQAQfCEC0HA4QorAwAiNSA1ojkDACAGQQAgBkEAShshFkG4/AgoAgAhEwNAAkBBhIULQYSFCygCAEEBaiIENgIAIAkoAhAiAygCnAFByOEKKAIATg0AQQAhCEHM4QovAQAhBUQAAAAAAAAAACE1QQAhAQNAIAggFkcEQAJAIAhBAnQiByADKAKYAWooAgAiAigCEC0AhwFBAUsNAEQAAAAAAAAAACE2QQAhAANAIAAgBUcEQCADKAKoASAHaigCACAAQQN0aisDACI3IDeiIDagITYgAEEBaiEADAELCyA1IDZjRQ0AIDYhNSACIQELIAhBAWohCAwBCwsgNUHwhAsrAwBjDQACQEGM4QotAABFIARB5ABvcg0AIAogNZ85A0AgE0G+0wMgCkFAaxAyQYSFCygCAEHoB28NAEEKIBMQrAEaCyABRQ0AQQAhAyAKQaABakEAQdAAEDMaIApB0ABqQQBB0AAQMxogASgCECgCiAEhC0HM4QovAQAiACAAbEEIEBkhBSAJKAIQIgIoApgBIg4gC0ECdCIIaigCACESQczhCi8BACEEIAIoAqABIAIoAqQBIQ0DQCADIARHBEAgBSADIARsQQN0aiEMQQAhAANAIAAgBEcEQCAMIABBA3RqQgA3AwAgAEEBaiEADAELCyADQQFqIQMMAQsLIARBAWohDCAIaiEUIAggDWohDUEAIQcDfyAHIBZGBH9BASEDQQEgBCAEQQFNGwUCQCAHIAtGDQAgDiAHQQJ0aigCACEPRAAAAAAAAAAAITVBACEAA0AgACAERwRAIABBA3QiAyAKQfABamogEigCECgClAEgA2orAwAgDygCECgClAEgA2orAwChIjY5AwAgNiA2oiA1oCE1IABBAWohAAwBCwtEAAAAAAAA8D8gNUQAAAAAAAD4PxCiAaMhNkEAIQMDQCADIARGDQEgB0EDdCIAIA0oAgBqKwMAIjggFCgCACAAaisDACI6oiADQQN0IgAgCkHwAWpqKwMAIjeiITsgACAFaiEPQQAhAANAIAAgA0cEQCAPIAAgBGxBA3RqIhEgOyAKQfABaiAAQQN0aisDAKIgNqIgESsDAKA5AwAgAEEBaiEADAELCyAFIAMgDGxBA3RqIgAgOEQAAAAAAADwPyA6IDUgNyA3oqGiIDaioaIgACsDAKA5AwAgA0EBaiEDDAALAAsgB0EBaiEHDAELCyEHA0ACQCADIAdHBEAgBSADQQN0aiEOIAUgAyAEbEEDdGohEkEAIQADQCAAIANGDQIgEiAAQQN0aiAOIAAgBGxBA3RqKwMAOQMAIABBAWohAAwACwALQQAhAANAIAAgBEcEQCAAQQN0IgMgCkHQAGpqIAIoAqgBIAhqKAIAIANqKwMAmjkDACAAQQFqIQAMAQsLIApBoAFqIQ4gCkHQAGohB0EAIQJBACEDAkACQAJAIARBAUsEQCAEIARsIhIQxQEhDSAEEMUBIQwDQCADIARGBEADQCACIBJGBEAgBEEBayEUQQAhAANAIAAgFEYNBiAFIABBA3QiD2ohEUQAAAAAAAAAACE1QQAhAyAAIQIDQCACIARPBEAgNUS7vdfZ33zbPWMNCSAFIAAgBGxBA3RqIREgBSADIARsQQN0aiEVIAAhAgNAIAIgBE8EQCAHIANBA3RqIgIpAwAhQyACIAcgD2oiFSsDADkDACAVIEM3AwAgDyARaiEXIAAhAwNAIAQgA0EBaiIDSwRAIAcgA0EDdGoiAiAFIAMgBGxBA3RqIhggD2orAwCaIBcrAwCjIjUgFSsDAKIgAisDAKA5AwBBACECA0AgAiAERg0CIBggAkEDdCIaaiIZIDUgESAaaisDAKIgGSsDAKA5AwAgAkEBaiECDAALAAsLIABBAWohAAwEBSAVIAJBA3QiF2oiGCkDACFDIBggESAXaiIXKwMAOQMAIBcgQzcDACACQQFqIQIMAQsACwAFIDUgESACIARsQQN0aisDAJkiNiA1IDZkIhUbITUgAyACIBUbIQMgAkEBaiECDAELAAsACwAFIA0gAkEDdCIAaiAAIAVqKwMAOQMAIAJBAWohAgwBCwALAAUgDCADQQN0IgBqIAAgB2orAwA5AwAgA0EBaiEDDAELAAsAC0Ho8wJBhsYBQRdBsZEBEAAACyAFIBJBA3RqQQhrKwMAIjWZRLu919nffNs9Yw0AIA4gFEEDdCIAaiAAIAdqKwMAIDWjOQMAIARBAWohFUEAIQBBACEDA0AgAyAURgRAA0AgACAERgRAQQAhAgNAIAIgEkYNBiAFIAJBA3QiAGogACANaisDADkDACACQQFqIQIMAAsABSAHIABBA3QiAmogAiAMaisDADkDACAAQQFqIQAMAQsACwALIA4gBCADayICQQJrIg9BA3QiF2oiESAHIBdqKwMAIjU5AwAgAkEBayECIAUgBCAPbEEDdGohFwNAIAIgBE8EQCARIDUgBSAPIBVsQQN0aisDAKM5AwAgA0EBaiEDDAIFIBEgNSAXIAJBA3QiGGorAwAgDiAYaisDAKKhIjU5AwAgAkEBaiECDAELAAsACwALQcTfCigCABoCQEGEtAFB+N4KEI0BQQBIDQACQEHI3wooAgBBCkYNAEGM3wooAgAiAEGI3wooAgBGDQBBjN8KIABBAWo2AgAgAEEKOgAADAELQfjeCkEKEMAHGgsLIA0QGCAMEBhBACEAA0BBzOEKLwEAIg4gAEsEQEHg4QorAwAhNRDXASE2IABBA3QiAiAKQaABamoiAyADKwMAIDUgNkQAAAAAAADwPyA1oSI1IDWgoqCiIjU5AwAgASgCECgClAEgAmoiAiA1IAIrAwCgOQMAIABBAWohAAwBCwsgCSgCECICIAIoApwBQQFqNgKcASACKAKYASISIAhqKAIAIQ1BACEAA0AgACAORgRAQQAhAwNAIAMgFkcEQAJAIAMgC0YNAEEAIQcgDSgCECgClAEgEiADQQJ0IgRqKAIAKAIQKAKUASAKQfABahCLDiE1A0AgByAORg0BIAdBA3QiACACKAKsASIMIAhqKAIAIARqKAIAaiIUIANBA3QiDyACKAKkASAIaigCAGorAwAgCkHwAWogAGorAwAiNiA2IAIoAqABIAhqKAIAIA9qKwMAoiA1o6GiIjY5AwAgAigCqAEiDyAIaigCACAAaiIRIDYgESsDAKA5AwAgBCAMaigCACAIaigCACAAaiIMKwMAITYgDCAUKwMAmiI3OQMAIAQgD2ooAgAgAGoiACA3IDahIAArAwCgOQMAIAdBAWohBwwACwALIANBAWohAwwBCwtBhOUKKAIABEBBACEAQczhCi8BACECRAAAAAAAAAAAITYDQCAAIAJHBEAgNiAKQaABaiAAQQN0aisDAJmg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IQEMAQsLIAYgAhD/BiEHIA0EQCAEKAJ8IQAgByAVOQMYIAcgEzkDECAHIAA2AggLIAwEQCAEKAJ4IQAgByAUOQMoIAcgFjkDICAHIAA2AgwLIAFBAWohAUEAIQADQCAAIAJHBEAgAEEEdCIPIAcoAgBqIhAgCyAPaiIPKQMANwMAIBAgDykDCDcDCCAAQQFqIQAMAQsLIAsQGCAODQALIAYoAhAiACgCYCIBBEAgBiABQePfABC7BCAGKAIQIQALIAAoAmwiAQRAIAYgAUHI3wAQuwQgBigCECEACyAAKAJkIgEEfyAGIAFB3t8AELsEIAYoAhAFIAALKAJoIgAEQCAGIABB1t8AELsECyAFQQFqIQULIAMgBhAwIQYMAQsLIAMgChAcIQoMAQsLIAVFBEBBACEHDAELQQJBASADELoCIAVGGyEHC0EAIQZBACECIAMoAhAoAggiACgCWCIMBEAgAEEANgJUQQEhAgsCQCAMDQBBmOEKKAIAQQFHDQAgAxDABEUNAEEBIQYgAygCECgCDCIARQ0AIABBADoAUQsgAxDDAiAMBEAgAygCECEKRAAAAAAAAAAAIRVEAAAAAAAAAAAhFkEAIQ1BACEOQQAhDyMAQUBqIgUkACADKAIQIgAoApABIRAgBEHYAGoiASAAKQMQNwMAIAEgACkDKDcDGCABIAApAyA3AxAgASAAKQMYNwMIAkAgACgCCCgCWCILRQ0AAkAgASsDACABKwMQYg0AIAErAwggASsDGGINACABQv////////93NwMYIAFC//////////f/ADcDACABQv/////////3/wA3AwggAUL/////////dzcDEAsgCygCCCEAA0AgDSALKAIATw0BIAVCADcDOCAFQgA3AzAgBUIANwMoIAVCADcDIAJAAkACQAJAAkACQAJAAkAgACgCAA4QAAABAQICAwQHBwUHBwcHBgcLIAAgACsDECIXIAArAyAiGKAiEzkDaCAAIAArAwgiGyAAKwMYIhygIhQ5A2AgACAXIBihIhc5A1ggACAbIByhIhg5A1AgASABKwMAIBgQKiAUECo5AwAgASABKwMYIBcQIiATECI5AxggASABKwMIIBcQKiATECo5AwggASABKwMQIBgQIiAUECI5AxAMBgsgBSAAKAIMIAAoAgggARDABiAAIAUpAxg3A2ggACAF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A0cbaigCKCgCECgClAEiBSsDCKJEAAAAAAAAUkCiIRAgFSAFKwMAokQAAAAAAABSQKIhESAUIANBUEEAIAJBAkcbaigCKCgCECgClAEiAisDCKJEAAAAAAAAUkCiIRIgFSACKwMAokQAAAAAAABSQKIhEyABKAIAIQIDQCAEIAhGBEACQCAHKAJgIgFFDQAgAS0AUUEBRw0AIAEgDyABKwM4ojkDOCABIA0gASsDQKI5A0ALAkAgBygCZCIBRQ0AIAEtAFFBAUcNACABIBMgASsDOKA5AzggASASIAErA0CgOQNACyAHKAJoIgFFDQMgAS0AUUEBRw0DIAEgESABKwM4oDkDOCABIBAgASsDQKA5A0AMAwsgAigCBCIKQQFrIQsgAigCACEBQQAhBSAEIAlHIQwDQCAFIApGBEAgAigCCARAIAIgESACKwMQoDkDECACIBAgAisDGKA5AxgLIAIoAgwEQCACIBMgAisDIKA5AyAgAiASIAIrAyigOQMoCyAEQQFqIQQgAkEwaiECDAIFIAECfCAEIAVyRQRAIAEgESABKwMAoDkDACAQIAErAwigDAELIAErAwAhDiAMIAUgC0dyRQRAIAEgEyAOoDkDACASIAErAwigDAELIAEgDyAOojkDACANIAErAwiiCzkDCCAFQQFqIQUgAUEQaiEBDAELAAsACwALIAAgBhAcIQYMAgsgACADEDAhAwwACwALAAsgABAbIQEDQCABBEAgASgCECgClAEiAiAPIAIrAwCiOQMAIAIgDSACKwMIojkDCCAAIAEQHCEBDAELCyAAIA8gDRCCDUEBIQMLIAAQGyEBA0AgAQRAIAEoAhAiAiACKAKUASIEKwMARAAAAAAAAFJAojkDECACIAQrAwhEAAAAAAAAUkCiOQMYIAAgARAcIQEMAQsLIAML7AIBBH8jAEGAAWsiByQAIAJBACACQQBKGyECAkADQCACIAhGBEAgBCADIAMgBEgbIQQDQCADIARGIgINAyAGIANBAnRqKAIAIQggByAAKQMINwM4IAcgACkDADcDMCAHIAEpAwg3AyggByABKQMANwMgIAcgBSADQQR0aiIJKQMINwMYIAcgCSkDADcDECAHIAUgCEEEdGoiCCkDCDcDCCAHIAgpAwA3AwAgA0EBaiEDIAdBMGogB0EgaiAHQRBqIAcQvgRFDQALDAILIAYgCEECdGooAgAhCSAHIAApAwg3A3ggByAAKQMANwNwIAcgASkDCDcDaCAHIAEpAwA3A2AgByAFIAhBBHRqIgopAwg3A1ggByAKKQMANwNQIAcgBSAJQQR0aiIJKQMINwNIIAcgCSkDADcDQCAIQQFqIQggB0HwAGogB0HgAGogB0HQAGogB0FAaxC+BEUNAAtBACECCyAHQYABaiQAIAIL/RECGn8MfCMAQTBrIgMkAEHIhQsoAgAhBUGUhQsoAgAhAgNAIAIgD0YEQANAIAJBAWsgC00EQEGM4QotAABBAUsEQCADIBA2AiQgAyAANgIgQbj8CCgCAEHl5wMgA0EgahAeGgsgA0EwaiQAIBAPC0HIhQsoAgAgC0HgAGxqIhNBKGohCSALQQFqIg8hCwNAIAIgC00EQCAPIQsMAgUgAyATKQMQNwMYIAMgEykDCDcDECADQciFCygCACALQeAAbGoiBykDEDcDCCADIAcpAwg3AwBBACECQQAhBiMAQbAEayIBJAAgASADKQMYNwOoAyABIAMpAxA3A6ADIAEgCSkDCDcDmAMgASAJKQMANwOQAyABQeADaiABQaADaiABQZADahDiBSABIAMpAxg3A4gDIAEgAykDEDcDgAMgASAJKQMYNwP4AiABIAkpAxA3A/ACIAFB0ANqIAFBgANqIAFB8AJqEOIFIAEgAykDCDcD6AIgASADKQMANwPgAiABIAcpAzA3A9gCIAEgBykDKDcD0AIgAUHAA2ogAUHgAmogAUHQAmoQ4gUgASADKQMINwPIAiABIAMpAwA3A8ACIAEgBykDQDcDuAIgASAHKQM4NwOwAiABQbADaiABQcACaiABQbACahDiBQJAIAErA+ADIAErA7ADZUUNACABKwPAAyABKwPQA2VFDQAgASsD6AMgASsDuANlRQ0AIAErA8gDIAErA9gDZUUNAEEBIQIgCSgCKCIFQQFxBEAgBy0AUEEBcQ0BCwJAIAVBAnFFDQAgBy0AUEECcUUNACADKwMQIAMrAwChIhsgG6IgAysDGCADKwMIoSIbIBuioCAJKwMQIAkrAwChIAcrAzigIAcrAyihIhsgG6JEAAAAAAAA0D+iZEUhAgwBC0HQhQsoAgAiBUUEQEHQhQtBzIULKAIAELcCNgIAQdSFC0HMhQsoAgAQtwI2AgBB0IULKAIAIQULIAkoAiAiDEEAIAxBAEobIQggAysDGCEbIAMrAxAhHCAJKAIkIQQgBSECA0AgBiAIRwRAIAIgHCAEKwMAoDkDACACIBsgBCsDCKA5AwggBkEBaiEGIAJBEGohAiAEQRBqIQQMAQsLQQAhBiAHKAJIIg1BACANQQBKGyEIIAMrAwghGyADKwMAIRwgBygCTCEEQdSFCygCACIUIQIDQCAGIAhHBEAgAiAcIAQrAwCgOQMAIAIgGyAEKwMIoDkDCCAGQQFqIQYgAkEQaiECIARBEGohBAwBCwsgDUEBdCEXIAxBAXQhGCANQQFrIRkgDEEBayEaQQAhAkEAIQRBACEGQQAhCAJAAkADQCABIAUgCEEEdGoiCikDCDcDqAIgASAKKQMANwOgAiABIAUgCCAaaiAMb0EEdGoiESkDCDcDmAIgASARKQMANwOQAiABQaAEaiABQaACaiABQZACahCtDSABIBQgBkEEdGoiDikDCDcDiAIgASAOKQMANwOAAiABIBQgBiAZaiANb0EEdGoiEikDCDcD+AEgASASKQMANwPwASABQZAEaiABQYACaiABQfABahCtDSABQgA3A/gDIAFCADcD6AEgASABKQOoBDcD2AEgASABKQOYBDcDyAEgAUIANwPwAyABQgA3A+ABIAEgASkDoAQ3A9ABIAEgASkDkAQ3A8ABIAErA+gBIAErA9gBIhuhIAErA8ABIAErA9ABIhyhoiABKwPIASAboSABKwPgASAcoaKhIR8gASARKQMINwO4ASABIBEpAwA3A7ABIAEgCikDCDcDqAEgASAKKQMANwOgASABIA4pAwg3A5gBIAEgDikDADcDkAEgAUGwAWogAUGgAWogAUGQAWoQrA0hFSABIBIpAwg3A4gBIAEgEikDADcDgAEgASAOKQMINwN4IAEgDikDADcDcCABIAopAwg3A2ggASAKKQMANwNgIAFBgAFqIAFB8ABqIAFB4ABqEKwNIRYgASARKQMINwNYIAEgESkDADcDUCABIAopAwg3A0ggASAKKQMANwNAIAEgEikDCDcDOCABIBIpAwA3AzAgASAOKQMINwMoIAEgDikDADcDICABKwMwIiAgASsDWCIbIAFBQGsiCisDCCIhoaIgASsDICIlICEgG6EiIqIgASsDUCIeIAErAygiHSABKwM4IhyhoiImIAor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JGoQ6gUgAhCxASECDAELAAsACyABKAIUIQIgASgCECIFBEAgBSgCBCIIKwMAIQ8gCCsDCCEQIAEoAgQiCCsDACERIAgrAwghEiAAQSAQiwEgBSgCACABKAIAIBIgEaEgECAPoaBEAAAAAAAA4D+iELQDNgIYIABBKGogAEEYahDBASAFIAEoAhQ2AhQLIAJFDQAgAigCBCIFKwMAIQ8gBSsDCCEQIAEoAgQiBSsDACERIAUrAwghEiAAQSAQiwEgASgCACACKAIAIBIgEaEgECAPoaBEAAAAAAAA4D+iELQDNgIYIABBKGogAEEYahDBASACIAEoAhA2AhALIABBOGogAEEkahDqBQwBCyAAQThqIABBJGoQswMiAiAAKAI4RwRAIAEgAhCKCCgCECICNgIQIAIgATYCFAsgAEE4aiAAQSRqELMDELEBIgIgC0YNACABIAIoAhAiAjYCFCACIAE2AhALIAZBGGohBgwACwAFIAIgBkECdGoiCSgCACAFIAZBBXQiC2oiBysDACIPIAcrAwggD6FEAAAAAAAA4D+ioCIPOQMIIAAgDzkDKCAAQThqIgUgCSAHIABBKGoiBxDdDSAAQQA2AhggACABKAIAIAtqKwMQOQMoIABBxABqIgkgAEEYaiIMIAUgBxDpBSAAQQE2AhggACABKAIAIAtqKwMYOQMoIAZBAWohBiAJIAwgBSAHEOkFIAUQ2wEMAQsACwALIA4QggIaIApBEGokAAUgCkEEaiABIAZBBXRqIgAgAEEQaiAAQQhqIABBGGoQzw0gBkEBaiEGDAELCwtSAQF/QcAAEIsBIgJCADcDKCACQQA6ACQgAkEANgIgIAJCADcDGCACIAE5AxAgAkQAAAAAAADwPzkDCCACIAA2AgAgAkIANwMwIAJCADcDOCACC1IAIAAgASACIAQQ0gICQCADIAIgBCgCABEAAEUNACACIAMQuQEgAiABIAQoAgARAABFDQAgASACELkBIAEgACAEKAIAEQAARQ0AIAAgARC5AQsLOwECfyAAKAIAIgEEQCABIQADQCAAIgEoAgQiAA0ACyABDwsDQCAAIAAoAggiASgCAEYgASEADQALIAALXQEEfyAAQaDYCjYCAEGIhQtBADYCACAAQQRqIgJBBGohBCACKAIAIQEDQCABIARHBEAgASgCECIDBEAgAxDrDRoL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RQ0BQcDlCigCACIBBH8gASAAQYAEIAEoAgARBAAFQQALDwtB16ABQdHGAUGsBUH2qwEQAAALQczPAUHRxgFBrQVB9qsBEAAACxUBAX8Q0AMhAEEPQbDlCigCACAAGwuZAgECfyABKAJEIQEDQCABLQAAIgIEQAJAAkAgAUHv3wFBBRCBAkUNACABQbPYAUEHEIECRQ0AIAFB4uIBQQUQgQJFDQAgAUGw1wFBCRCBAg0BCwJ/AkADQAJAAkACQCACQf8BcSICQQprDgQEAQECAAsgAkUNAwsgAS0AASECIAFBAWohAQwBCwtBASABLQABQQpHDQEaIAFBAmohAQwECyACQQBHCyECIAEgAmohAQwCCwJ/AkADQAJAAkACQCACQf8BcSIDQQprDgQEAQECAAsgA0UNAwsgACACwBBnIAEtAAEhAiABQQFqIQEMAQsLQQJBASABLQABQQpGGwwBCyADQQBHCyECIABBChBnIAEgAmohAQwBCwsLyAICAn8BfCMAQYACayIDJAAgAisDECEFIAMgACkDCDcDeCADIAApAwA3A3AgAyABKQMINwNoIAMgASkDADcDYCADQeABaiADQfAAaiADQeAAahDSAwJAIAUgAysD4AFmRQ0AIAMgACkDCDcDWCADIAApAwA3A1AgAyABKQMINwNIIAMgASkDADcDQCADQcABaiADQdAAaiADQUBrENIDIAMrA9ABIAIrAwBmRQ0AIAIrAxggAyAAKQMINwM4IAMgACkDADcDMCADIAEpAwg3AyggAyABKQMANwMgIANBoAFqIANBMGogA0EgahDSAyADKwOoAWZFDQAgAyAAKQMINwMYIAMgACkDADcDECADIAEpAwg3AwggAyABKQMANwMAIANBgAFqIANBEGogAxDSAyADKwOYASACKwMIZiEECyADQYACaiQAIAQLagICfAF/AkAgASsDECAAKwA4IgIgACsDGEQAAAAAAADgP6IiA6FmRQ0AIAErAwAgAyACoGVFDQAgASsDGCAAKwBAIgIgACsDIEQAAAAAAADgP6IiA6FmRQ0AIAErAwggAyACoGUhBAsgBAsoAQF/A38gAAR/IAAoAgQQpwogAWpBAWohASAAKAIAIQAMAQUgAQsLC/oCAQZ/IwBBEGsiBiQAAkACQAJAIAAoAgAiAy0AAEEjRgRAIAMtAAEiAkHfAXFB2ABGBEBBAiEBA0AgAUEIRg0DAkAgASADai0AACICQcEAa0H/AXFBBkkEQEFJIQUMAQsgAkHhAGtB/wFxQQZJBEBBqX8hBQwBC0FQIQUgAkEwa0H/AXFBCUsNBQsgAiAFaiICIARBBHRqIQQgAUEBaiEBDAALAAtBASEBA0AgAUEIRg0CIAEgA2otAAAiAkEwa0H/AXFBCUsNAyABQQFqIQEgBEEKbCACakEwayEEDAALAAsgBiADNgIIA0AgBiABNgIMIAFBCEYNAyABIANqIgUtAAAiAkUEQCACIQQMBAsgAkE7RgRAIAZBCGpBsOwHQfwBQQhBNxDvAyICRQ0EIAVBAWohAyACKAIEIQQMBAUgAUEBaiEBDAELAAsAC0EIIQELIAJBO0cEQEEAIQQMAQsgASADakEBaiEDCyAAIAM2AgAgBkEQaiQAIAQLYwEDfyMAQRBrIgIkACACQQA6AA8gAiAAOgAOIAJBDmoQogQiBBA8IQAgBCEDA0AgAEECSUUEQCABIAMsAAAQnAEgA0EBaiEDIABBAWshAAwBCwsgAy0AACAEEBggAkEQaiQAC64BAQJ/IAAQLyECAkACQCAAKAIQLQCGAUEBRw0AIAEgAEEBEIYBGiAAECBBOhDPASIARQ0BQQAhASACIABBAWoiA0EAEI8BIgANACACIANBARCPASIAQcYrQcACQQEQNRogACgCEEEBOgCGAQNAIAJBASABEPADIgFFDQEgACABEEEgASgCDCIDRg0AIAAgASADEHIMAAsACyAADwtB16ABQa/CAUHWB0Ge2AEQAAALpQMBB38CQAJAIABB5OQAQQAQbSICRQ0AIAIoAggiA0UNACAAQcM2QQEQlgEiBUGsK0GYAkEBEDUaIANBBBAZIQcgABAbIQIDQCACBEAgACACEC0hAQNAIAEEQCABKAIQLQBxBEAgByAEQQJ0aiABNgIAIARBAWohBAsgACABEDAhAQwBCwsgACACEBwhAgwBCwsgAyAERw0BIANBACADQQBKGyEEQQAhAwNAIAMgBEZFBEAgByADQQJ0aigCACIGQVBBACAGKAIAQQNxIgFBAkcbaigCKCECIAYgBkEwQQAgAUEDRxtqKAIoIAUQqgogAiAFEKoKEKMEKAIQIgIgBigCECIBKAIINgIIIAFBADYCCCACIAEoAmA2AmAgAUEANgJgIAIgASgCbDYCbCABQQA2AmwgAiABKAJkNgJkIAFBADYCZCACIAEoAmg2AmggAUEANgJoIAYQwgIgA0EBaiEDDAELCyAHEBggBRAbIQEDQCABBEAgBSABEBwgARDpAiAAIAEQugEhAQwBCwsgBRC7AQsPC0HzIEGvwgFBlwhBmDYQAAALlwEBBX8jAEEQayIEJABBASECA0AgAiAAKAIQIgMoArQBSkUEQAJAIAEgAygCuAEgAkECdGooAgAiAxAgIgVBgAQgASgCABEEAARAIAQgBTYCAEHAwQQgBBArDAELQRAQVCIGIAM2AgwgBiAFNgIIIAEgBkEBIAEoAgARBAAaCyADIAEQrAogAkEBaiECDAELCyAEQRBqJAALTQECfyABECAiAwRAAkAgA0G/PUEHEOoBDQAgACABECBBgAQgACgCABEEACIARQ0AIAAoAgwhAgsgAg8LQcDaAUH5gwFBDEH+/QAQAAALGQAgAEGEgwpBrPQJKAIAEJcBIgAQrAogAAvyAQIDfwZ8IAAgASgCLCABKAIIIgMgASgCBCIBQQFrIgJBACABIAJPG2xBBHRqIgIpAwA3AxAgACACKQMINwMYIAAgAikDCDcDCCAAIAIpAwA3AwBBASADIANBAU0bIQMgACsDGCEFIAArAwghBiAAKwMQIQcgACsDACEIQQEhAQNAIAEgA0YEQCAAIAU5AxggACAGOQMIIAAgBzkDECAAIAg5AwAFIAUgAiABQQR0aiIEKwMIIgkgBSAJZBshBSAHIAQrAwAiCiAHIApkGyEHIAYgCSAGIAljGyEGIAggCiAIIApjGyEIIAFBAWohAQwBCwsLKgEBfwJAIAFFDQAgACABEEEiAEUNACAALQAARQ0AIAAQakEBcyECCyACC1EBAX8CQAJAIANFDQAgA0E6EM8BIgRFDQAgBEEAOgAAIAAgAiADIARBAWoiAyABEQcAIARBOjoAAAwBCyAAIAIgA0EAIAERBwALIAAgAzYCJAtcACABKAIIRQRAIAAgARD2BgsgAiAAQczjCigCACABKwMARAAAAAAAAPA/EEs5AwAgAiAAQdDjCigCACABKAIIEJEBNgIIIAIgAEHU4wooAgAgASgCDBCRATYCDAuXBAIIfAh/IwBBQGoiDCQAIAEoAgAhDyACKwMIIQYgAisDACEHIAEoAgQhEESxoRYq087SRyEDQX8hDUF/IQIDQAJAIAsgEEYEQCAPIA1BMGxqIgEoAgAgAiACIAEoAgRBAWtGayIBIAFBA3BrQQR0aiECQQAhAQwBCyAPIAtBMGxqIgEoAgQhESABKAIAIRJBACEBA0AgASARRgRAIAtBAWohCwwDBSASIAFBBHRqIg4rAwAgB6EiBCAEoiAOKwMIIAahIgQgBKKgIgQgAyACQX9GIAMgBGRyIg4bIQMgASACIA4bIQIgCyANIA4bIQ0gAUEBaiEBDAELAAsACwsDQCABQQRGRQRAIAwgAUEEdCILaiINIAIgC2oiCysDADkDACANIAsrAwg5AwggAUEBaiEBDAELCyAMKwMwIAehIgMgA6IgDCsDOCAGoSIDIAOioCEEIAwrAwAgB6EiAyADoiAMKwMIIAahIgMgA6KgIQhEAAAAAAAAAAAhA0QAAAAAAADwPyEJA0AgACAMIAkgA6BEAAAAAAAA4D+iIgpBAEEAEKYBIAggBKGZRAAAAAAAAPA/YyAJIAOhmUTxaOOItfjkPmNyRQRAIAggACsDACAHoSIFIAWiIAArAwggBqEiBSAFoqAiBSAEIAhkIgEbIQggBSAEIAEbIQQgAyAKIAEbIQMgCiAJIAEbIQkMAQsLIAxBQGskAAtFAAJAIAAQJwRAIAAQJEEPRg0BCyAAQQAQnAELAkAgABAnBEAgAEEAOgAPDAELIABBADYCBAsgABAnBH8gAAUgACgCAAsLfAEDfyMAQRBrIgIkAANAAkBBACEDIABFDQAgACgCACIERQ0AIAAoAgQhAyACIAE2AgwgAkEvNgIIIAIgBDYCBCACIAM2AgBBkOUKQec4IAIQxAIgAEEIaiEAQZx/QZDlChC0CiIDQQRBABAXEOkDDQELCyACQRBqJAAgAwvwAQEFf0EBQQgQGSEFAkAgAARAA0AgAUEBRgRAQQAhASAAIQIDQCACQeLoARD7AiEDA0AgAkUNBSABQQJqIQQgAUEDdCAFIAFBAWoiASAEQQgQigEiBWogAq0gA61CIIaENwIAIAIgA2ohBEEAIQJBACEDIAQgABA8IABqRg0ACyAEQeLoARCzBCAEaiECDAALAAsgAUHi6AFqIAFB4+gBaiECIAFBAWohAS0AACEDA0AgAi0AACIERQ0BIAJBAWohAiADIARHDQALC0HTuwNB4YQBQTVB4/gAEAAAC0H72QFB4YQBQS1B4/gAEAAACyAFCxcAIAAoAhAiAEEAOgC1ASAAQgE3AuwBCxIAIAEEfyAAIAEQQRBqBSACCwtPAQF8QaDhCisDACIBRAAAAAAAAAAAZAR8IAEFRAAAAAAAAFJAIAAgAEEAQZmjAUEAECFEAAAAAAAA8L9EAAAAAAAAAAAQSyIBIAG9UBsLC5gEAwF/CXwBfiMAQZABayIGJAAgAisDACIIRAAAAAAAAAhAoyEKIAIrAwgiCUQAAAAAAADgv6IhByAIRAAAAAAAAOC/oiELIAlEAAAAAAAACMCjIQwCQCAEQYABcQRAIAZCADcDiAEgBkIANwOAAQwBCyAGIAcgCqE5A4gBIAYgCyAMoTkDgAELIAErAwghDSABKwMAIQ4CQCAEQcAAcQRAIAZCADcDeCAGQgA3A3AMAQsgBiAHIAqgOQN4IAYgDCALoDkDcAsgBiAJmjkDaCAGIAYpA4gBNwMoIAYgBikDeDcDCCAGIAYpA2g3AxggBiAImjkDYCAGIAYpA4ABNwMgIAYgBikDcDcDACAGIAYpA2A3AxAgBkEwaiAGQSBqIAZBEGogBiADEOsCIAYrAzAhByABIA0gCSAGKwM4oCIDoTkDCCABIA4gCCAHoCIHoTkDACAAIAkgDaAgA6EiCzkDCCAAIAggDqAgB6EiDzkDACAFIAApAwg3A0ggBSAAKQMANwNAIAUgACkDCDcDCCAAKQMAIRAgBSAKIAlEAAAAAAAA4D+iIA2gIAOhIgmgOQMYIAUgDCAOIAhEAAAAAAAA4D+ioCAHoSIIoDkDECAFIBA3AwAgBSABKQMINwMoIAUgASkDADcDICAFIAkgCqE5AzggBSAIIAyhOQMwIAAgCyADoTkDCCAAIA8gB6E5AwAgBkGQAWokAAtAAQF/AkAgAUUNACAAEMIDKAIAIAFBARCfBCICRSACQQhqIAFHcg0AIAAgARDPAw8LIAAQwgMoAgAgAUEAEJsJCx4AIAAgAaJEAAAAAAAAJECiIAJEAAAAAAAA4D+ioAvsDgMEfxJ8AX4jAEHQAmsiByQARM3MzMzMzNw/IQ0gBCADRAAAAAAAABBAoiILZEUgBUEgcSIIRXJFBEAgBCALo0TNzMzMzMzcP6IhDQsCfEQAAAAAAAAAACAERAAAAAAAAPA/ZEUNABpEAAAAAAAAAAAgCEUNABogBEQAAAAAAADwv6BEmpmZmZmZqT+iIAOjCyELRAAAAAAAAAAAIA0gAisDACIQoiIUIAVBgAFxIgkbIQxEAAAAAAAAAAAgFJogBUHAAHEiChshDkQAAAAAAAAAACANIAIrAwgiEpoiA6IiFSAJGyEPRAAAAAAAAAAAIBWaIAobIREgEiABKwMIIhigIRkgECABKwMAIhqgIRsgCyAQoiENIBJEAAAAAAAA4D+iIBigIRYgEEQAAAAAAADgP6IgGqAhFyALIAOiIRMgAAJ8AnwCQAJ8AkAgCEUEQCAHIAw5A8gCIAcgDzkDwAIgByAOOQO4AiAHIBE5A7ACIAcgAikDCDcDqAIgByACKQMANwOgAkQAAAAAAAAAACEMIBBEAAAAAAAAAABhBEBEAAAAAAAAAAAhDkQAAAAAAAAAACELRAAAAAAAAAAAIBJEAAAAAAAAAABhDQUaCyAHKwOoAiEDIAcrA6ACIQsMAQsgByAOOQPIAiAHIBE5A8ACIAcgDDkDuAIgByAPOQOwAiAHIAM5A6gCIAcgEJoiCzkDoAJEAAAAAAAAAAAhDCAQRAAAAAAAAAAAYg0ARAAAAAAAAAAAIQ5EAAAAAAAAAAAhEUQAAAAAAAAAACASRAAAAAAAAAAAYQ0BGgsgCyALIAMQUCIMoyIPELICIg4gDpogA0QAAAAAAAAAAGQbIRwgAyAMoyERAnwCQCAFQeAAcUHgAEcEQCAIQQBHIgIgCUVyDQELIAcgBykDyAI3A7gBIAcgBykDqAI3A6gBIAcgBykDuAI3A5gBIAcgBykDwAI3A7ABIAcgBykDoAI3A6ABIAcgBykDsAI3A5ABIAdB8AFqIAdBsAFqIAdBoAFqIAdBkAFqIAQQ6wIgESAHKwOQAiALoSILIAcrA5gCIAOhIgMQUCIMIAsgDKMQsgIiCyALmiADRAAAAAAAAAAAZBsgHKEQRKIiA6IhDiAPIAOiDAELIAVBoAFxQaABR0EAIApFIAJyG0UEQCAHIAcpA8gCNwOIASAHIAcpA6gCNwN4IAcgBykDuAI3A2ggByAHKQPAAjcDgAEgByAHKQOgAjcDcCAHIAcpA7ACNwNgIAdB8AFqIAdBgAFqIAdB8ABqIAdB4ABqIAQQ6wIgESAHKwOAAiALoSILIAcrA4gCIAOhIgMQUCIMIAsgDKMQsgIiCyALmiADRAAAAAAAAAAAZBsgHKEQRKIiA6IhDiAPIAOiDAELIAcgBykDyAI3A1ggByAHKQOoAjcDSCAHIAcpA7gCNwM4IAcgBykDwAI3A1AgByAHKQOgAjcDQCAHIAcpA7ACNwMwIAdB8AFqIAdB0ABqIAdBQGsgB0EwaiAEEOsCIAcrA/gBIAOhIQ4gBysD8AEgC6ELIQwgCEUNASAERAAAAAAAAOA/oiIDIBGiIREgAyAPogshDyABIBggDqE5AwggASAaIAyhOQMAIAAgGSAOoSIDOQMIIAAgGyAMoSIEOQMAIAYgASkDCDcDiAEgBiABKQMANwOAASAGIAEpAwA3AwAgBiABKQMINwMIIAYgAyANoTkDOCAGIAQgE6E5AzAgBiAWIA2hOQMoIAYgFyAToTkDICAGIAMgFKE5AxggBiAEIBWhOQMQIAYgACkDADcDQCAGIAApAwg3A0ggBiAUIAOgOQN4IAYgFSAEoDkDcCAGIA0gFqA5A2ggBiATIBegOQNgIAYgDSADoDkDWCAGIBMgBKA5A1AgACAEIA+hOQMAIAMgEaEMAgsgByANIBYgGaGgOQPoASAHIBMgFyAboaA5A+ABIAdCADcD2AEgB0IANwPQASAHIBQgEqEiAzkDyAEgByAHKQPoATcDKCAHIAcpA8gBNwMYIAcgBykD4AE3AyAgByAVIBChIgs5A8ABIAcgBykDwAE3AxAgB0IANwMIIAdCADcDACAHQfABaiAHQSBqIAdBEGogByAEEOsCIBEgBysDgAIgC6EiBCAEIAcrA4gCIAOhIgMQUCIEoxCyAiILIAuaIANEAAAAAAAAAABkGyAcoRBEIASaoiIDoiELIA8gA6ILIQMgACAZIAugIhI5AwggACAbIAOgIg85AwAgBiAAKQMINwOIASAGIAApAwA3A4ABIAYgACkDCDcDCCAAKQMAIR0gBiAUIBggC6AiBKA5A3ggBiAVIBogA6AiEKA5A3AgBiANIBagOQNoIAYgEyAXoDkDYCAGIAsgBKAiCzkDWCAGIAMgEKAiAzkDUCAGIAs5A0ggBiADOQNAIAYgCzkDOCAGIAM5AzAgBiAWIA2hOQMoIAYgFyAToTkDICAGIAQgFKE5AxggBiAQIBWhOQMQIAYgHTcDACAAIAwgD6A5AwAgDiASoAs5AwggB0HQAmokAAvOCQIDfwx8IwBB8AFrIgYkAEQAAAAAAAAAACADRAAAAAAAANA/okRmZmZmZmbWP6JEZmZmZmZm1j8gA0QAAAAAAAAQQGQbIgogAisDACIOoiISIARBwABxIgcbIQ1EAAAAAAAAAAAgCiACKwMIIhCaIguiIhMgBxshD0QAAAAAAAAAACASmiAEQYABcSIIGyEKRAAAAAAAAAAAIBOaIAgbIQkCQCAEQSBxIgQEQCAGIAIpAwg3A8gBIAYgAikDADcDwAEgDyELIA0hDAwBCyAGIAs5A8gBIAYgDpo5A8ABIAkhCyAKIQwgDyEJIA0hCgsgASsDCCENIAErAwAhDyAGIAw5A+gBIAYgCzkD4AEgBiAKOQPYASAGIAk5A9ABRAAAAAAAAAAAIQoCfCAORAAAAAAAAAAAYQRARAAAAAAAAAAAIQlEAAAAAAAAAAAhC0QAAAAAAAAAACAQRAAAAAAAAAAAYQ0BGgsgBisDwAEiCSAJIAYrA8gBIgoQUCILoyIMELICIhEgEZogCkQAAAAAAAAAAGQbIREgCiALoyELAnwgBwRAIAYgBikD6AE3A4gBIAYgBikDyAE3A3ggBiAGKQPYATcDaCAGIAYpA+ABNwOAASAGIAYpA8ABNwNwIAYgBikD0AE3A2AgBkGQAWogBkGAAWogBkHwAGogBkHgAGogAxDrAiALIAYrA6ABIAmhIgkgBisDqAEgCqEiChBQIhQgCSAUoxCyAiIJIAmaIApEAAAAAAAAAABkGyARoRBEoiIJoiEKIAwgCaIMAQsgCARAIAYgBikD6AE3A1ggBiAGKQPIATcDSCAGIAYpA9gBNwM4IAYgBikD4AE3A1AgBiAGKQPAATcDQCAGIAYpA9ABNwMwIAZBkAFqIAZB0ABqIAZBQGsgBkEwaiADEOsCIAsgBisDsAEgCaEiCSAGKwO4ASAKoSIKEFAiFCAJIBSjELICIgkgCZogCkQAAAAAAAAAAGQbIBGhEESiIgmiIQogDCAJogwBCyAGIAYpA+gBNwMoIAYgBikDyAE3AxggBiAGKQPYATcDCCAGIAYpA+ABNwMgIAYgBikDwAE3AxAgBiAGKQPQATcDACAGQZABaiAGQSBqIAZBEGogBiADEOsCIAYrA5gBIAqhIQogBisDkAEgCaELIQkgA0QAAAAAAADgP6IiAyALoiELIAMgDKILIQwgECANoCEQIA4gD6AhDiAFQUBrIQICfCAEBEAgASANIAugIgM5AwggASAPIAygIg05AwAgACAQIAugIgs5AwggACAOIAygIgw5AwAgAiABKQMINwMIIAIgASkDADcDACAFIAEpAwg3AwggBSABKQMANwMAIAUgACkDCDcDKCAFIAApAwA3AyAgCSAMoCEJIAogC6AMAQsgASANIAqhOQMIIAEgDyAJoTkDACAAIBAgCqEiAzkDCCAAIA4gCaEiDTkDACACIAApAwg3AwggAiAAKQMANwMAIAUgACkDCDcDCCAFIAApAwA3AwAgBSABKQMINwMoIAUgASkDADcDICANIAyhIQkgAyALoQshCiAFIBIgA6A5AzggBSATIA2gOQMwIAUgAyASoTkDGCAFIA0gE6E5AxAgACAKOQMIIAAgCTkDACAGQfABaiQAC/cBAQZ/IwBBEGsiBCQAA0AgASACNgIAIAAhAgNAAkAgAi0AAEUgAyIFQQNKckUEQCAEQQA2AgwgAiACQcDpByAEQQxqEPwGIgBGBEADQCAAIABB0OkHIARBDGoiBxD8BiIDRyADIQANAAsgAEGA6gcgBxD8BiEACyAEKAIMIgMgA0EPcUUgA0EAR3FyIgYNASAEIAI2AgBB8qAEIAQQKwsgBEEQaiQADwsgBkEIRyIHRQRAQQMhAyAAIQIgBUEDRg0BCyAFIAdyRQRAQQAhAyAAIQIgAC0AAEUNAQsLIAVBAWohAyABKAIAIAYgBUEDdHRyIQIMAAsAC8EFAgd8CH8jAEEwayIKJAACfyACKAIQKAIIIgsoAgAiDCgCCARAIAxBEGohDSAMQRhqDAELIAwoAgAiDUEIagsrAwAhBAJAIA0rAwAiAyAMIAsoAgQiDUEwbGoiAkEkaygCAEUEQCACQTBrKAIAIAJBLGsoAgBBBHRqIQILIAJBEGsrAwAiB6EiBSAFoiAEIAJBCGsrAwAiBaEiBiAGoqBEje21oPfGsD5jBEAgACAEOQMIIAAgAzkDAAwBCyABKAIQLwGIAUEOcSIBQQpGIAFBBEZyRQRAQQAhAUQAAAAAAAAAACEDA0ACQCABIA1GBEAgA0QAAAAAAADgP6IhA0EAIQEMAQsgDCABQTBsaiICKAIEIQ8gAigCACEOQQMhAkEAIQsDQCACIA9PBEAgAUEBaiEBDAMFIAMgDiALQQR0aiIQKwMAIA4gAkEEdGoiESsDAKEiAyADoiAQKwMIIBErAwihIgMgA6Kgn6AhAyACQQNqIQIgC0EDaiELDAELAAsACwsDQAJAAkAgASANRwRAIAwgAUEwbGoiAigCBCEPIAIoAgAhDkEDIQJBACELA0AgAiAPTw0DIA4gC0EEdGoiECsDACIHIA4gAkEEdGoiESsDACIFoSIEIASiIBArAwgiBiARKwMIIgihIgQgBKKgnyIEIANmDQIgAkEDaiECIAtBA2ohCyADIAShIQMMAAsACyAKQYsKNgIEIApB3MIBNgIAQbj8CCgCAEH3yAQgChAeGhBsAAsgACAIIAOiIAYgBCADoSIGoqAgBKM5AwggACAFIAOiIAcgBqKgIASjOQMADAMLIAFBAWohAQwACwALIAogBCAFoEQAAAAAAADgP6I5AyggCiAKKQMoNwMYIAogAyAHoEQAAAAAAADgP6I5AyAgCiAKKQMgNwMQIAAgCyAKQRBqELMKCyAKQTBqJAALkwICBX8EfCAAKAIQIgMoAsABIQJBACEAA3wgAiAAQQJ0aigCACIBBHwgAEEBaiEAIAYgAUEwQQAgASgCAEEDcUEDRxtqKAIoKAIQKwMQoCEGDAEFIAMoAsgBIQRBACEBA0AgBCABQQJ0aigCACIFBEAgAUEBaiEBIAcgBUFQQQAgBSgCAEEDcUECRxtqKAIoKAIQKwMQoCEHDAELCyADKwMYIgggAigCACICQTBBACACKAIAQQNxQQNHG2ooAigoAhArAxihIAMrAxAiCSAGIAC4o6EQrQEgBCgCACIAQVBBACAAKAIAQQNxQQJHG2ooAigoAhArAxggCKEgByABuKMgCaEQrQGgRAAAAAAAAOA/ogsLCxMAQYjkCigCABpBiOQKQQA2AgALYQEEfCACKwMIIAArAwgiBKEgASsDACAAKwMAIgOhIgWiIAIrAwAgA6EgASsDCCAEoSIEoqEiAyADoiIDRLu919nffNs9YwR8RAAAAAAAAAAABSADIAUgBaIgBCAEoqCjCws/ACAAEKYGIAAQ5AQgACADBH8CQCADQX5xQQJGBEAgACADIAEgAhDtCAwBCyAAEKUGCyAFBSAECyABIAIQ7AgLTQBBASABLQACIgB0IABBBXZBAXEgAS0AASIAQQJ2QQ9xIAEtAABBBHRB8AFxciACai0AAEEDdCAAQQF0QQZxcnJBAnRBoP4HaigCAHELQABBASABLQABIgB0IABBBXZBAXEgAS0AACIAQQJ2QQdxIAJqLQAAQQN0IABBAXRBBnFyckECdEGg/gdqKAIAcQtHAQF/IAAoAvACIAEgACgC7AIRAAAiAEH//wNNBH8gAEEDdkEccSAAQQh2IAJqLQAAQQV0ckGg/gdqKAIAQQEgAHRxBUEACwtGAAJAIAAEQCABIAAoAghPDQEgACgCACAAKAIEIAFqIAAoAgxwIAVsag8LQYnaASAEIAMgAhAAAAtBwrwDIAQgAyACEAAAC6MBAQN/IwBBkAFrIgAkACAAQiU3A4gBIABBiAFqIgZBAXJByvgAIAUgAigCBBClBRBoIQcgACAENgIAIABB+wBqIgQgBEENIAcgBiAAEN8BIARqIgcgAhCoAiEIIABBBGoiBiACEFEgBCAIIAcgAEEQaiIEIABBDGogAEEIaiAGEL4LIAYQTiABIAQgACgCDCAAKAIIIAIgAxClAyAAQZABaiQAC6MBAQR/IwBBgAJrIgAkACAAQiU3A/gBIABB+AFqIgdBAXJBqvQAIAUgAigCBBClBRBoIQggACAENwMAIABB4AFqIgYgBkEYIAggByAAEN8BIAZqIgggAhCoAiEJIABBFGoiByACEFEgBiAJIAggAEEgaiIGIABBHGogAEEYaiAHEL4LIAcQTiABIAYgACgCHCAAKAIYIAIgAxClAyAAQYACaiQAC54BAQN/IwBBQGoiACQAIABCJTcDOCAAQThqIgZBAXJByvgAIAUgAigCBBClBRBoIQcgACAENgIAIABBK2oiBCAEQQ0gByAGIAAQ3wEgBGoiByACEKgCIQggAEEEaiIGIAIQUSAEIAggByAAQRBqIgQgAEEMaiAAQQhqIAYQwgsgBhBOIAEgBCAAKAIMIAAoAgggAiADEKYDIABBQGskAAuiAQEEfyMAQfAAayIAJAAgAEIlNwNoIABB6ABqIgdBAXJBqvQAIAUgAigCBBClBRBoIQggACAENwMAIABB0ABqIgYgBkEYIAggByAAEN8BIAZqIgggAhCoAiEJIABBFGoiByACEFEgBiAJIAggAEEgaiIGIABBHGogAEEYaiAHEMILIAcQTiABIAYgACgCHCAAKAIYIAIgAxCmAyAAQfAAaiQACz8AA0AgASACRwRAIAEgASgCACIAQf8ATQR/IAMoAgAgASgCAEECdGooAgAFIAALNgIAIAFBBGohAQwBCwsgAQs+AANAIAEgAkcEQCABIAEsAAAiAEEATgR/IAMoAgAgASwAAEECdGooAgAFIAALOgAAIAFBAWohAQwBCwsgAQuTAQEBfCACBEACQAJAIAJB2gBHBEAgAkG0AUYNASACQY4CRg0CQciWA0GwxAFBhAFB64sBEAAACyAAIAErAwg5AwAgACABKwMAmjkDCA8LIAAgASsDADkDACAAIAErAwiaOQMIDwsgASsDCCEDIAAgASsDADkDCCAAIAM5AwAPCyAAIAEpAwA3AwAgACABKQMINwMIC+UBAQN/IwBBIGsiAyQAIAAoAgQhBAJAAkADQCAEBEAgACgCDCIERQ0CIAMgACgCACIFKQMINwMYIAMgBSkDADcDEANAIAQEQCADIAAoAgAgBEEBayIEQQR0aiIFQQhqKQMANwMIIAMgBSkDADcDACAFIAMpAxg3AwggBSADKQMQNwMAIAMgAykDCDcDGCADIAMpAwA3AxAMAQUgACAAKAIEQQFrIgQ2AgQMAwsACwALCyAAKAIIIAAoAgxLDQEgA0EgaiQADwtB4poDIAIgAUHzuwEQAAALQYapAyACIAFB87sBEAAAC0YAAkAgAARAIAEgACgCCE8NASAAKAIAIAAoAgQgAWogACgCDHAgBXRqDwtBidoBIAQgAyACEAAAC0HCvAMgBCADIAIQAAALXQEDfyAAKAIQIQUgACgCPCEDIAFBOhDPASIEBEAgBEEAOgAACwJAIANFDQAgACgCRCABIAUgAmoiARCGCSADKAJcIgNFDQAgACABIAMRAwALIAQEQCAEQTo6AAALC7oBAQF/IwBBIGsiByQAAkACQCABIAZJBEAgAiAFTw0BAkAgAkUEQCAAEBhBACECDAELIAAgAiAEdCIAEDoiAkUNAyAAIAEgBHQiAU0NACABIAJqQQAgACABaxAzGgsgB0EgaiQAIAIPC0HfyQNBmIUBQc0AQe+6ARAAAAsgByADNgIEIAcgAjYCAEG4/AgoAgBBhPQDIAcQHhoQKAALIAcgADYCEEG4/AgoAgBB0/MDIAdBEGoQHhoQKAALPAECfyMAQRBrIgEkAEEBIAAQRyICRQRAIAEgADYCAEG4/AgoAgBB0/MDIAEQHhoQKAALIAFBEGokACACC6gBAQJ/IwBBoAFrIgQkACAEIAE2ApwBQQAhASAEQRBqIgVBAEGAARAzGiAEIAU2AgwgACAEQZwBaiACIARBDGogBEGPAWogACgCOBEIABoCQCAEKAKcASACRw0AIAQoAgxBADoAACAFQbKSCBCICgRAIAAiASgCQEECRg0BC0EAIQEgBEEQahCJCiIAQX9GDQAgAEECdCADaigCACEBCyAEQaABaiQAIAELTgEBf0EBIAAgAUEUbGoiACgCACIBIAFBAU0bIQRBASEBA0AgASAERwRAIAIgACgCBCABQQJ0aigCAEECdGogAzYCACABQQFqIQEMAQsLC5wBAQF/QQshBwJAAkACQAJAAkAgAUEPaw4EAwICAAELIAQgAiADQcixCCAEKAIYEQYABEAgACAGNgIAQQsPCyAEIAIgA0HPsQggBCgCGBEGAEUNASAAIAU2AgBBCw8LIAFBG0YNAgsgAUEcRgRAQTshByAAKAIQRQ0BCyAAQZ4BNgIAQX8hBwsgBw8LIABBCzYCCCAAQbMBNgIAQQwLSgAgByECIAYhBCAFIQMCQAJAAkAgAUEPaw4EAgAAAQALQX8hAkGeASEEIAFBHEcNACAAKAIQDQBBOw8LIAAgBDYCACACIQMLIAMLTwAgASgCCCACTQRAQcK8AyAFIAQgAxAAAAsgACABKAIAIAEoAgQgAmogASgCDHBBFGxqIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCAtCAQF/IwBBEGsiBCQAAn8gAS0AAEEqRwRAIAQgATYCACADIAQQK0EBDAELIAAgAC0AfCACcjoAfEEACyAEQRBqJAALRQAgASgCCCACTQRAQcK8AyAFIAQgAxAAAAsgACABKAIAIAEoAgQgAmogASgCDHBBBHRqIgEpAwA3AwAgACABKQMINwMIC1oAQcABIQRBISEDAn8CQAJAAkACQCABQRVrDgQAAgIDAQsgBSEEDAILQSEgAUEPRg0CGgtBfyEDQZ4BIQQgAUEcRw0AQTsgACgCEEUNARoLIAAgBDYCACADCwswAQF/IAAtAAAiAUEBakH/AXFBEU8EQEHfxQNByYQBQckAQf6eARAAAAsgAUH/AUcL7wIBBH8jAEEwayIDJAAgAyABNgIMIAMgATYCLCADIAE2AhACQAJAAkACQAJAQQBBACACIAEQYiIGQQBIDQBBASEEIAZBAWohAQJAIAYgABBGIAAQJGsiBU8EQCAAECdBACABIAVrIgVBAUYbDQEgACAFENEBC0EAIQQLIANCADcDGCADQgA3AxAgBCAGQRBPcQ0BIANBEGohBSAGIAQEfyAFBSAAEHQLIAEgAiADKAIsEGIiAUcgAUEATnENAiABQQBMDQAgABAnBEAgAUGAAk8NBCAEBEAgABB0IANBEGogARAfGgsgACAALQAPIAFqOgAPIAAQJEEQSQ0BQbzAA0HJhAFB2AFB6R8QAAALIAQNBCAAIAAoAgQgAWo2AgQLIANBMGokAA8LQZ+vA0HJhAFBywFB6R8QAAALQfiiA0HJhAFB0AFB6R8QAAALQd/UAUHJhAFB0wFB6R8QAAALQeOkAUHJhAFB2gFB6R8QAAALPwAgAhCJCiICQX9GBEBBAA8LIAAgATYCSCAAQdkANgIwIAAgBDYCBCAAIAM2AgAgACACOgBFIAEgADYCAEEBCzIBAn8jAEEQayIDJAAgA0EEaiIEIAAgAhCcFCAAIAFqIAQQmxQgBBCCAhogA0EQaiQACxUAIABB3PIJNgIAIABBBGoQ4wogAAsMACAAEOQKGiAAEBgLHgACQCAAKAIAQQxrIgBBCGoQlQdBAE4NACAAEBgLCxUAIABByPIJNgIAIABBBGoQ4wogAAuBAQEDfyAAKAIEIgRBAXEhBQJ/IAEtADdBAUYEQCAEQQh1IgYgBUUNARogAigCACAGEIkHDAELIARBCHUgBUUNABogASAAKAIAKAIENgI4IAAoAgQhBEEAIQJBAAshBSAAKAIAIgAgASACIAVqIANBAiAEQQJxGyAAKAIAKAIcEQcAC5wCAQN/IwBBEGsiCCQAIAFBf3NB9////wNqIAJPBEAgABBCIQkgCEEEaiIKIAFB8////wFJBH8gCCABQQF0NgIMIAggASACajYCBCAKIAhBDGoQ4wMoAgAQ1gNBAWoFQff///8DCxDVAyAIKAIEIQIgCCgCCBogBARAIAIgCSAEEPkCCyAGBEAgBEECdCACaiAHIAYQ+QILIAMgBCAFaiIKayEHIAMgCkcEQCAEQQJ0IgMgAmogBkECdGogAyAJaiAFQQJ0aiAHEPkCCyABQQFHBEAgCRCnBAsgACACEPwBIAAgCCgCCBD7ASAAIAQgBmogB2oiABC/ASAIQQA2AgwgAiAAQQJ0aiAIQQxqEN4BIAhBEGokAA8LEMwBAAuNAQECfyMAQRBrIgMkACABQff///8HTQRAAkAgARCuBQRAIAAgARDUASAAIQQMAQsgA0EIaiABEOIDQQFqEOEDIAMoAgwaIAAgAygCCCIEEPwBIAAgAygCDBD7ASAAIAEQvwELIAQgASACEOgKIANBADoAByABIARqIANBB2oQ0wEgA0EQaiQADwsQzAEACz0BAX8jAEEQayIDJAAgAyACOgAPA0AgAQRAIAAgAy0ADzoAACABQQFrIQEgAEEBaiEADAELCyADQRBqJAALiwIBA38jAEEQayIIJAAgAUF/c0H3////B2ogAk8EQCAAEEIhCSAIQQRqIgogAUHz////A0kEfyAIIAFBAXQ2AgwgCCABIAJqNgIEIAogCEEMahDjAygCABDiA0EBagVB9////wcLEOEDIAgoAgQhAiAIKAIIGiAEBEAgAiAJIAQQrQILIAYEQCACIARqIAcgBhCtAgsgAyAEIAVqIgprIQcgAyAKRwRAIAIgBGogBmogBCAJaiAFaiAHEK0CCyABQQpHBEAgCRCvBQsgACACEPwBIAAgCCgCCBD7ASAAIAQgBmogB2oiABC/ASAIQQA6AAwgACACaiAIQQxqENMBIAhBEGokAA8LEMwBAAv4BwENfyMAQTBrIgMkAAJAAkACQANAIAVBC0cEQCAARQ0DIAAtAABFDQMgBUGQCGxBsI0HaiIGKAIAIghFDQQgCCgCACIERQ0EQQAhCSAAEDwhCgNAIAQEQEEAIQIgBBA8IQtBACEBAkADQCAAIAJqIQcCQAJAA0AgAiAKRiABIAtGcg0CIAcsAAAiDEFfcUHBAGtBGUsNASABIARqLAAAIg1BX3FBwQBrQRpPBEAgAUEBaiEBDAELCyAMEIACIA0QgAJHDQMgAUEBaiEBCyACQQFqIQIMAQsLA0AgAiAKRwRAIAAgAmogAkEBaiECLAAAQV9xQcEAa0EaTw0BDAILCwNAIAEgC0YNBiABIARqIAFBAWohASwAAEFfcUHBAGtBGUsNAAsLIAggCUEBaiIJQQJ0aigCACEEDAELCyAFQQFqIQUMAQsLIANCADcDKCADQgA3AyAgAyAANgIQIANBIGohACMAQTBrIgEkACABIANBEGoiAjYCDCABIAI2AiwgASACNgIQAkACQAJAAkACQAJAQQBBAEGF+QMgAhBiIgVBAEgNAEEBIQQgBUEBaiECAkAgBSAAEEYgABAkayIGTwRAIAAQJ0EAIAIgBmsiBkEBRhsNASAAIAYQ0QELQQAhBAsgAUIANwMYIAFCADcDECAEIAVBEE9xDQEgAUEQaiEGIAUgBAR/IAYFIAAQdAsgAkGF+QMgASgCLBBiIgJHIAJBAE5xDQIgAkEATA0AIAAQJwRAIAJBgAJPDQQgBARAIAAQdCABQRBqIAIQHxoLIAAgAC0ADyACajoADyAAECRBEEkNAUG8wANByYQBQdgBQekfEAAACyAEDQQgACAAKAIEIAJqNgIECyABQTBqJAAMBAtBn68DQcmEAUHLAUHpHxAAAAtB+KIDQcmEAUHQAUHpHxAAAAtB39QBQcmEAUHTAUHpHxAAAAtB46QBQcmEAUHaAUHpHxAAAAsCQCAAECcEQCAAECRBD0YNAQsgA0EgaiIAECQgABBGTwRAIABBARDRAQsgA0EgaiIAECQhASAAECcEQCAAIAFqQQA6AAAgAyADLQAvQQFqOgAvIAAQJEEQSQ0BQbzAA0HJhAFBnQJBlLoBEAAACyADKAIgIAFqQQA6AAAgAyADKAIkQQFqNgIkCwJAIANBIGoQJwRAIANBADoALwwBCyADQQA2AiQLIANBIGoiABAnIQEgACADKAIgIAEbIgAQvQYEQCADIAA2AgBBjDogAxArCyADLQAvQf8BRgRAIAMoAiAQGAtByTQQ6gohBgsgA0EwaiQAIAYPC0HkrgNB0cABQfAFQcqRARAAAAtBzdwBQdHAAUHxBUHKkQEQAAALFgAgACABIAJCgICAgICAgICAfxC+BQsJACAAEGg2AgALIwECfyAAIQEDQCABIgJBBGohASACKAIADQALIAIgAGtBAnULDwAgACAAKAIAQQRrNgIACwoAIAAoAgBBBGsLBwAgACgCBAstAQF/IwBBEGsiAiQAAkAgACABRgRAIABBADoAeAwBCyABEKcECyACQRBqJAALEwAgABCYBSgCACAAKAIAa0ECdQssAQF/IAAoAgQhAgNAIAEgAkcEQCAAEKEDGiACQQRrIQIMAQsLIAAgATYCBAu/AgEGfyAAKAIIIQUgACgCDCEGA0AgACgCACAESwRAIAUgACgCBCAEbGohASAGBEAgASAGEQEACwJAAkACQAJAAkACQAJAAkACQAJAIAEoAgBBAmsODQAAAQECAwQEBgcIBQUJCyABKAIMEBgMCAsgASgCDBAYDAcLIAEoAgwQGAwGCyABKAIoEBgMBQsgASgCCBAYDAQLQQAhAgJAAkACQAJAIAEoAghBAWsOAgABAwsDQCABKAI0IQMgAiABKAIwTg0CIAMgAkEEdGooAggQGCACQQFqIQIMAAsACwNAIAEoAkQhAyACIAEoAkBODQEgAyACQQR0aigCCBAYIAJBAWohAgwACwALIAMQGAsMAwsgASgCEBAYDAILIAEoAggQGAwBCyABKAIoEBgLIARBAWohBAwBCwsgBRAYIAAQGAsJACAAQQA2AgALSQEBfyMAQRBrIgMkAAJAAkAgAkEeSw0AIAEtAHhBAXENACABQQE6AHgMAQsgAhD9CiEBCyADQRBqJAAgACACNgIEIAAgATYCAAtAAQF/IwBBEGsiASQAIAAQoQMaIAFB/////wM2AgwgAUH/////BzYCCCABQQxqIAFBCGoQ6AsoAgAgAUEQaiQACwsAIABBADYCACAACzcBAX8jAEEQayIDJAAgAyABEO0CNgIMIAMgAhDtAjYCCCAAIANBDGogA0EIahCwBSADQRBqJAALTgEBfyMAQRBrIgMkACADIAE2AgggAyAANgIMIAMgAjYCBEEAIQEgA0EEaiIAIANBDGoQrQVFBEAgACADQQhqEK0FIQELIANBEGokACABC98BAQN/IAAQJCAAEEZPBEAgABBGIgJBAWoiAyACQQF0QYAIIAIbIgQgAyAESxshAyAAECQhBAJAIAAtAA9B/wFGBEAgACgCACACIANBARCcBSECDAELIANBARBKIgIgACAEEB8aIAAgBDYCBAsgAEH/AToADyAAIAM2AgggACACNgIACyAAECQhAgJAIAAQJwRAIAAgAmogAToAACAAIAAtAA9BAWo6AA8gABAkQRBJDQFBvMADQcmEAUGdAkGUugEQAAALIAAoAgAgAmogAToAACAAIAAoAgRBAWo2AgQLCzQBAX8jAEEQayIDJAAgABAjGiAAIAIQowMgA0EAOgAPIAEgAmogA0EPahDTASADQRBqJAALHAAgAEH/////A0sEQBCTAQALIABBAnRBBBDdCwsJACAAEJIHEBgLngcBCn8jAEGgAWsiAiQAAkAgAEUNAEEBQRQQSiIDQdAAIAEg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ELILCyACIAEgASACKAIAEN4LIAZBDGogAyAAKAIAENYLIAFqNgIAIAZBEGokAAtCACABIAIgAyAEQQQQpQIhASADLQAAQQRxRQRAIAAgAUHQD2ogAUHsDmogASABQeQASRsgAUHFAEgbQewOazYCAAsLQAAgAiADIABBCGogACgCCCgCBBECACIAIABBoAJqIAUgBEEAEKcFIABrIgBBnwJMBEAgASAAQQxtQQxvNgIACwtAACACIAMgAEEIaiAAKAIIKAIAEQIAIgAgAEGoAWogBSAEQQAQpwUgAGsiAEGnAUwEQCABIABBDG1BB282AgALC0IAIAEgAiADIARBBBCmAiEBIAMtAABBBHFFBEAgACABQdAPaiABQewOaiABIAFB5ABJGyABQcUASBtB7A5rNgIACwtAACACIAMgAEEIaiAAKAIIKAIEEQIAIgAgAEGgAmogBSAEQQAQqQUgAGsiAEGfAkwEQCABIABBDG1BDG82AgALC0AAIAIgAyAAQQhqIAAoAggoAgARAgAiACAAQagBaiAFIARBABCpBSAAayIAQacBTARAIAEgAEEMbUEHbzYCAAsLBABBAgveAQEFfyMAQRBrIgckACMAQRBrIgMkACAAIQQCQCABQff///8DTQRAAkAgARCZBQRAIAQgARDUAQwBCyADQQhqIAEQ1gNBAWoQ1QMgAygCDBogBCADKAIIIgAQ/AEgBCADKAIMEPsBIAQgARC/AQsjAEEQayIFJAAgBSACNgIMIAAhAiABIQYDQCAGBEAgAiAFKAIMNgIAIAZBAWshBiACQQRqIQIMAQsLIAVBEGokACADQQA2AgQgACABQQJ0aiADQQRqEN4BIANBEGokAAwBCxDMAQALIAdBEGokACAEC8AFAQ5/IwBBEGsiCyQAIAYQzQEhCiALQQRqIAYQ3QMiDhDKASAFIAM2AgACQAJAIAAiBy0AACIGQStrDgMAAQABCyAKIAbAENIBIQYgBSAFKAIAIghBBGo2AgAgCCAGNgIAIABBAWohBwsCQAJAIAIgByIGa0EBTA0AIAYtAABBMEcNACAGLQABQSByQfgARw0AIApBMBDSASEIIAUgBSgCACIHQQRqNgIAIAcgCDYCACAKIAYsAAEQ0gEhCCAFIAUoAgAiB0EEajYCACAHIAg2AgAgBkECaiIHIQYDQCACIAZNDQIg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QX8LCAAgABCoBxoLRAECfwJAIAAoAgAgASgCACAAKAIEIgAgASgCBCICIAAgAkkiAxsQ6gEiAQ0AQQEhASAAIAJLDQBBf0EAIAMbIQELIAELvg8CBX8PfiMAQdACayIFJAAgBEL///////8/gyEKIAJC////////P4MhCyACIASFQoCAgICAgICAgH+DIQwgBEIwiKdB//8BcSEIAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgCEH//wFrQYGAfksNAQsgAVAgAkL///////////8AgyINQoCAgICAgMD//wBUIA1CgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhDAwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEMIAMhAQwCCyABIA1CgICAgICAwP//AIWEUARAIAMgAkKAgICAgIDA//8AhYRQBEBCACEBQoCAgICAgOD//wAhDAwDCyAMQoCAgICAgMD//wCEIQxCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEBCACEBDAILIAEgDYRQBEBCgICAgICA4P//ACAMIAIgA4RQGyEMQgAhAQwCCyACIAOEUARAIAxCgICAgICAwP//AIQhDEIAIQEMAgsgDUL///////8/WARAIAVBwAJqIAEgCyABIAsgC1AiBht5IAZBBnStfKciBkEPaxC2AUEQIAZrIQYgBSkDyAIhCyAFKQPAAiEBCyACQv///////z9WDQAgBUGwAmogAyAKIAMgCiAKUCIHG3kgB0EGdK18pyIHQQ9rELYBIAYgB2pBEGshBiAFKQO4AiEKIAUpA7ACIQMLIAVBoAJqIApCgICAgICAwACEIhJCD4YgA0IxiIQiAkIAQoCAgICw5ryC9QAgAn0iBEIAEKABIAVBkAJqQgAgBSkDqAJ9QgAgBEIAEKABIAVBgAJqIAUpA5gCQgGGIAUpA5ACQj+IhCIEQgAgAkIAEKABIAVB8AFqIARCAEIAIAUpA4gCfUIAEKABIAVB4AFqIAUpA/gBQgGGIAUpA/ABQj+IhCIEQgAgAkIAEKABIAVB0AFqIARCAEIAIAUpA+gBfUIAEKABIAVBwAFqIAUpA9gBQgGGIAUpA9ABQj+IhCIEQgAgAkIAEKABIAVBsAFqIARCAEIAIAUpA8gBfUIAEKABIAVBoAFqIAJCACAFKQO4AUIBhiAFKQOwAUI/iIRCAX0iAkIAEKABIAVBkAFqIANCD4ZCACACQgAQoAEgBUHwAGogAkIAQgAgBSkDqAEgBSkDoAEiDSAFKQOYAXwiBCANVK18IARCAVatfH1CABCgASAFQYABakIBIAR9QgAgAkIAEKABIAYgCSAIa2ohBgJ/IAUpA3AiE0IBhiIOIAUpA4gBIg9CAYYgBSkDgAFCP4iEfCIQQufsAH0iFEIgiCICIAtCgICAgICAwACEIhVCAYYiFkIgiCIEfiIRIAFCAYYiDUIgiCIKIBAgFFatIA4gEFatIAUpA3hCAYYgE0I/iIQgD0I/iHx8fEIBfSITQiCIIhB+fCIOIBFUrSAOIA4gE0L/////D4MiEyABQj+IIhcgC0IBhoRC/////w+DIgt+fCIOVq18IAQgEH58IAQgE34iESALIBB+fCIPIBFUrUIghiAPQiCIhHwgDiAOIA9CIIZ8Ig5WrXwgDiAOIBRC/////w+DIhQgC34iESACIAp+fCIPIBFUrSAPIA8gEyANQv7///8PgyIRfnwiD1atfHwiDlatfCAOIAQgFH4iGCAQIBF+fCIEIAIgC358IgsgCiATfnwiEEIgiCALIBBWrSAEIBhUrSAEIAtWrXx8QiCGhHwiBCAOVK18IAQgDyACIBF+IgIgCiAUfnwiCkIgiCACIApWrUIghoR8IgIgD1StIAIgEEIghnwgAlStfHwiAiAEVK18IgRC/////////wBYBEAgFiAXhCEVIAVB0ABqIAIgBCADIBIQoAEgAUIxhiAFKQNYfSAFKQNQIgFCAFKtfSEKQgAgAX0hCyAGQf7/AGoMAQsgBUHgAGogBEI/hiACQgGIhCICIARCAYgiBCADIBIQoAEgAUIwhiAFKQNofSAFKQNgIg1CAFKtfSEKQgAgDX0hCyABIQ0gBkH//wBqCyIGQf//AU4EQCAMQoCAgICAgMD//wCEIQxCACEBDAELAn4gBkEASgRAIApCAYYgC0I/iIQhASAEQv///////z+DIAatQjCGhCEKIAtCAYYMAQsgBkGPf0wEQEIAIQEMAgsgBUFAayACIARBASAGaxCsAyAFQTBqIA0gFSAGQfAAahC2ASAFQSBqIAMgEiAFKQNAIgIgBSkDSCIKEKABIAUpAzggBSkDKEIBhiAFKQMgIgFCP4iEfSAFKQMwIgQgAUIBhiINVK19IQEgBCANfQshBCAFQRBqIAMgEkIDQgAQoAEgBSADIBJCBUIAEKABIAogAiACIAMgBCACQgGDIgR8IgNUIAEgAyAEVK18IgEgElYgASASURutfCICVq18IgQgAiACIARCgICAgICAwP//AFQgAyAFKQMQViABIAUpAxgiBFYgASAEURtxrXwiAlatfCIEIAIgBEKAgICAgIDA//8AVCADIAUpAwBWIAEgBSkDCCIDViABIANRG3GtfCIBIAJUrXwgDIQhDAsgACABNwMAIAAgDDcDCCAFQdACaiQAC8ABAgF/An5BfyEDAkAgAEIAUiABQv///////////wCDIgRCgICAgICAwP//AFYgBEKAgICAgIDA//8AURsNACACQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AUnENACAAIAQgBYSEUARAQQAPCyABIAKDQgBZBEAgASACUiABIAJTcQ0BIAAgASAChYRCAFIPCyAAQgBSIAEgAlUgASACURsNACAAIAEgAoWEQgBSIQMLIAMLnwMBBX9BECECAkBBECAAIABBEE0bIgMgA0EBa3FFBEAgAyEADAELA0AgAiIAQQF0IQIgACADSQ0ACwtBQCAAayABTQRAQeCPC0EwNgIAQQAPC0EQIAFBC2pBeHEgAUELSRsiAyAAakEMahBIIgJFBEBBAA8LIAJBCGshAQJAIABBAWsgAnFFBEAgASEADAELIAJBBGsiBSgCACIGQXhxIAAgAmpBAWtBACAAa3FBCGsiAiAAQQAgAiABa0EPTRtqIgAgAWsiAmshBCAGQQNxRQRAIAEoAgAhASAAIAQ2AgQgACABIAJqNgIADAELIAAgBCAAKAIEQQFxckECcjYCBCAAIARqIgQgBCgCBEEBcjYCBCAFIAIgBSgCAEEBcXJBAnI2AgAgASACaiIEIAQoAgRBAXI2AgQgASACELsFCwJAIAAoAgQiAUEDcUUNACABQXhxIgIgA0EQak0NACAAIAMgAUEBcXJBAnI2AgQgACADaiIBIAIgA2siA0EDcjYCBCAAIAJqIgIgAigCBEEBcjYCBCABIAMQuwULIABBCGoLEgAgAEUEQEEADwsgACABELQHC+UeAg9/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ACEHA0AgASENIAcgDkH/////B3NKDQIgByAOaiEOAkACQAJAAkAgASIHLQAAIgsEQANAAkACQCALQf8BcSIBRQRAIAchAQwBCyABQSVHDQEgByELA0AgCy0AAUElRwRAIAshAQwCCyAHQQFqIQcgCy0AAiALQQJqIgEhC0ElRg0ACwsgByANayIHIA5B/////wdzIhdKDQkgAARAIAAgDSAHEKkBCyAHDQcgCCABNgI8IAFBAWohB0F/IRACQCABLAABQTBrIgpBCUsNACABLQACQSRHDQAgAUEDaiEHQQEhEiAKIRALIAggBzYCPEEAIQwCQCAHLAAAIgtBIGsiAUEfSwRAIAchCgwBCyAHIQpBASABdCIBQYnRBHFFDQADQCAIIAdBAWoiCjYCPCABIAxyIQwgBywAASILQSBrIgFBIE8NASAKIQdBASABdCIBQYnRBHENAAsLAkAgC0EqRgRAAn8CQCAKLAABQTBrIgFBCUsNACAKLQACQSRHDQACfyAARQRAIAQgAUECdGpBCjYCAEEADAELIAMgAUEDdGooAgALIQ8gCkEDaiEBQQEMAQsgEg0GIApBAWohASAARQRAIAggATYCPEEAIRJBACEPDAMLIAIgAigCACIHQQRqNgIAIAcoAgAhD0EACyESIAggATYCPCAPQQBODQFBACAPayEPIAxBgMAAciEMDAELIAhBPGoQhQwiD0EASA0KIAgoAjwhAQtBACEHQX8hCQJ/QQAgAS0AAEEuRw0AGiABLQABQSpGBEACfwJAIAEsAAJBMGsiCkEJSw0AIAEtAANBJEcNACABQQRqIQECfyAARQRAIAQgCkECdGpBCjYCAEEADAELIAMgCkEDdGooAgALDAELIBINBiABQQJqIQFBACAARQ0AGiACIAIoAgAiCkEEajYCACAKKAIACyEJIAggATYCPCAJQQBODAELIAggAUEBajYCPCAIQTxqEIUMIQkgCCgCPCEBQQELIRMDQCAHIRRBHCEKIAEiGCwAACIHQfsAa0FGSQ0LIAFBAWohASAHIBRBOmxqQY+OCWotAAAiB0EBa0EISQ0ACyAIIAE2AjwCQCAHQRtHBEAgB0UNDCAQQQBOBEAgAEUEQCAEIBBBAnRqIAc2AgAMDAsgCCADIBBBA3RqKQMANwMwDAILIABFDQggCEEwaiAHIAIgBhCEDAwB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AgALIARB8AJqIBcgFiANEI8MIAQpA/gCIRUgBCkD8AILIRYgDiAVNwMoIA4gFjcDICAEQZDGAGokACAOKQMoIRUgDikDICEWDAELQgAhFQsgACAWNwMAIAAgFTcDCCAOQTBqJAALwwYCBH8DfiMAQYABayIFJAACQAJAAkAgAyAEQgBCABCtA0UNAAJ/IARC////////P4MhCgJ/IARCMIinQf//AXEiB0H//wFHBEBBBCAHDQEaQQJBAyADIAqEUBsMAgsgAyAKhFALC0UNACACQjCIpyIIQf//AXEiBkH//wFHDQELIAVBEGogASACIAMgBBBrIAUgBSkDECICIAUpAxgiASACIAEQ/QsgBSkDCCECIAUpAwAhBAwBCyABIAJC////////////AIMiCiADIARC////////////AIMiCRCtA0EATARAIAEgCiADIAkQrQMEQCABIQQMAgsgBUHwAGogASACQgBCABBrIAUpA3ghAiAFKQNwIQQMAQsgBEIwiKdB//8BcSEHIAYEfiABBSAFQeAAaiABIApCAEKAgICAgIDAu8AAEGsgBSkDaCIKQjCIp0H4AGshBiAFKQNgCyEEIAdFBEAgBUHQAGogAyAJQgBCgICAgICAwLvAABBrIAUpA1giCUIwiKdB+ABrIQcgBSkDUCEDCyAJQv///////z+DQoCAgICAgMAAhCELIApC////////P4NCgICAgICAwACEIQogBiAHSgRAA0ACfiAKIAt9IAMgBFatfSIJQgBZBEAgCSAEIAN9IgSEUARAIAVBIGogASACQgBCABBrIAUpAyghAiAFKQMgIQQMBQsgCUIBhiAEQj+IhAwBCyAKQgGGIARCP4iECyEKIARCAYYhBCAGQQFrIgYgB0oNAAsgByEGCwJAIAogC30gAyAEVq19IglCAFMEQCAKIQkMAQsgCSAEIAN9IgSEQgBSDQAgBUEwaiABIAJCAEIAEGsgBSkDOCECIAUpAzAhBAwBCyAJQv///////z9YBEADQCAEQj+IIAZBAWshBiAEQgGGIQQgCUIBhoQiCUKAgICAgIDAAFQNAAsLIAhBgIACcSEHIAZBAEwEQCAFQUBrIAQgCUL///////8/gyAGQfgAaiAHcq1CMIaEQgBCgICAgICAwMM/EGsgBSkDSCECIAUpA0AhBAwBCyAJQv///////z+DIAYgB3KtQjCGhCECCyAAIAQ3AwAgACACNwMIIAVBgAFqJAALvwIBAX8jAEHQAGsiBCQAAkAgA0GAgAFOBEAgBEEgaiABIAJCAEKAgICAgICA//8AEGsgBCkDKCECIAQpAyAhASADQf//AUkEQCADQf//AGshAwwCCyAEQRBqIAEgAkIAQoCAgICAgID//wAQa0H9/wIgAyADQf3/Ak8bQf7/AWshAyAEKQMYIQIgBCkDECEBDAELIANBgYB/Sg0AIARBQGsgASACQgBCgICAgICAgDkQayAEKQNIIQIgBCkDQCEBIANB9IB+SwRAIANBjf8AaiEDDAELIARBMGogASACQgBCgICAgICAgDkQa0HogX0gAyADQeiBfU0bQZr+AWohAyAEKQM4IQIgBCkDMCEBCyAEIAEgAkIAIANB//8Aaq1CMIYQayAAIAQpAwg3AwggACAEKQMANwMAIARB0ABqJAALPAAgACABNwMAIAAgAkL///////8/gyACQoCAgICAgMD//wCDQjCIpyADQjCIp0GAgAJxcq1CMIaENwMICxcBAX8gAEEAIAEQ/QIiAiAAayABIAIbCywAIAAgARDVByIBRQRADwsCQCADBEAgACABIAIQsgQMAQsgACABIAIQiwwLC6UBAQV/QdiSCygCACIDBEBB1JILKAIAIQUDQCAAIAUgAkECdGoiBCgCACIGRgRAIAQgATYCACAAEBgPCyAGIAFFckUEQCAEIAE2AgBBACEBCyACQQFqIgIgA0cNAAsLAkAgAUUNAEHUkgsoAgAgA0ECdEEEahA6IgBFDQBB1JILIAA2AgBB2JILQdiSCygCACICQQFqNgIAIAAgAkECdGogATYCAAsLCgAgAGhBACAAGwuYAQEFfyMAQYACayIFJAACQCACQQJIDQAgASACQQJ0aiIHIAU2AgAgAEUNAANAIAcoAgAgASgCAEGAAiAAIABBgAJPGyIEEB8aQQAhAwNAIAEgA0ECdGoiBigCACABIANBAWoiA0ECdGooAgAgBBAfGiAGIAYoAgAgBGo2AgAgAiADRw0ACyAAIARrIgANAAsLIAVBgAJqJAALKQEBfyAAKAIAQQFrEJQMIgEEfyABBSAAKAIEEJQMIgBBIHJBACAAGwsLWwEBfyMAQRBrIgMkACADAn4gAUHAAHFFBEBCACABQYCAhAJx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AgwBCwALAAUgCyACQQJ0aiAKIAJBBHRqNgIAIAJBAWohAgwBCwALAAUgCiACQQR0aiILIAI2AgwgBygCCCENIANCADcDaCADQgA3A2AgAyAIIAJBBXRqIgUpAwg3AzggA0FAayAFKQMQNwMAIAMgBSkDGDcDSCAFKQMAIRogA0IANwMoIAMgGjcDMCADQgA3AyAgA0EwaiALIAkgDSADQSBqQeaKBRCkDiACQQFqIQIMAQsACwALIAYgCCAHEKIOIQULIANB8ABqJAAgBSEKIAQoArgCEBhBuPwIKAIAIQdE////////7/8hEET////////vfyERRP///////+9/IRJE////////7/8hFkEAIQIDQCACIAZHBEAgCCACQQV0aiIFKwMAIRcgCiACQQR0aiILKwMAIRMgBSsDCCEVIAUrAxAhFCAAKAIQKAK0ASENIAwgAkECdGooAgAiCSgCECEDIBYgCysDCCIYIAUrAxigIg8QIiEWIBAgEyAUoCIUECIhECASIBggFaAiFRAqIRIgESATIBegIhMQKiERAkAgAiANSARAIAMgDzkDKCADIBQ5AyAgAyAVOQMYIAMgEzkDEEGM4QotAABBAkkNASABELMCIAkQICEDIAQgDzkD0AEgBCAUOQPIASAEIBU5A8ABIAQgEzkDuAEgBCADNgKwASAHQdy0BCAEQbABahAyDAELIAMgFSAPoEQAAAAAAADgP6I5AxggAyATIBSgRAAAAAAAAOA/ojkDEEGM4QotAABBAkkNACABELMCIAkQICEDIAkoAhAiBSsDECEPIAQgBSsDGDkD8AEgBCAPOQPoASAEIAM2AuABIAdB7rQEIARB4AFqEDILIAJBAWohAgwBCwsCQCAAKAIQIgIoAgwiA0UNACADKwMYIg8gBkUEQCADKwMgIRZEAAAAAAAAAAAhEUQAAAAAAAAAACESIA8hEAsgECARoaEiD0QAAAAAAAAAAGRFDQAgECAPRAAAAAAAAOA/oiIPoCEQIBEgD6EhEQsgECAEKAKoArhEAAAAAAAA4D+iRAAAAAAAAAAAIAFBAEobIg+gIRQgESAPoSEQIBYgAisDWCAPoKAhESASIAIrAzggD6ChIQ9BjOEKLQAAQQJPBEAgARCzAiAAECAhAiAEIBE5A6ABIAQgFDkDmAEgBCAPOQOQASAEIBA5A4gBIAQgAjYCgAEgB0HctAQgBEGAAWoQMgsgBEFAayEJQQAhAwNAIAMgBkcEQCAMIANBAnRqKAIAIgUoAhAhAgJAIAAoAhAoArQBIANKBEAgAiACKwMoIA+hIhI5AyggAiACKwMgIBChIhY5AyAgAiACKwMYIA+hIhU5AxggAiACKwMQIBChIhM5AxBBjOEKLQAAQQJJDQEgARCzAiAFECAhAiAEIBI5A1AgBCAWOQNIIAkgFTkDACAEIBM5AzggBCACNgIwIAdB3LQEIARBMGoQMgwBCyACIAIrABggD6E5AxggAiACKwAQIBChOQMQQYzhCi0AAEECSQ0AIAEQswIgBRAgIQIgBSgCECIFKwMQIRIgBCAFKwMYOQNwIAQgEjkDaCAEIAI2AmAgB0HutAQgBEHgAGoQMgsgA0EBaiEDDAELCyAAKAIQIgYgESAPoSIROQMoIAYgFCAQoSISOQMgIAYgDyAPoSIPOQMYIAYgECAQoSIQOQMQQYzhCi0AAEECTwRAIAEQswIgABAgIQAgBCAROQMgIAQgEjkDGCAEIA85AxAgBCAQOQMIIAQgADYCACAHQdy0BCAEEDILIAgQGCAMEBggChAYCyAEQcACaiQADwtB0p0DQdvBAUGRAUG/GRAAAAvtAgEDfyMAQSBrIgIkACACQgA3AxggAkIANwMQIAEiA0UEQCACQRBqIgNBABBVCyAAEHohBANAIAQEQCAEIAQQxwEEfyAEQawrQZgCQQEQNRogBBCBBSADIAQQVUEABSADCxCtDCAEEHkhBAwBCwsCQAJAAkACQCABDQAgAigCGCIBQQFrIgNBAEgNASAAKAIQIAM2ArQBIAFBAk8EQCACQRBqEKoMIAIoAhwiAyACKAIYIgFLBEAgA0H/////A08NBCACKAIQIQMCQCABRQRAIAMQGEEAIQQMAQsgAyABQQJ0IgEQOiIERQ0GCyACIAQ2AhAgAiACKAIYNgIcCyACQRBqEKoMIAAoAhAgAigCEDYCuAEMAQsgAkIANwIUIAIoAhAQGAsgAkEgaiQADwtBg9MBQdvBAUHGAkGELxAAAAtB38kDQZiFAUHNAEHvugEQAAALIAIgATYCAEG4/AgoAgBB0/MDIAIQHhoQKAALFQAgAEHLuwFBGUHLwQFBsagDEJMFC+cCAQN/IwBBIGsiAiQAIAJCADcDGCACQgA3AxAgASIDRQRAIAJBEGoiA0EAEFULIAAQeiEEA0AgBARAIAQgBBDHAQR/IARBrCtBmAJBARA1GiADIAQQVUEABSADCxCvDCAEEHkhBAwBCwsCQAJAAkACQCABDQAgAigCGCIBQQFrIgNBAEgNASAAKAIQIAM2ArQBIAFBAk8EQCACQRBqEK4MIAIoAhwiAyACKAIYIgFLBEAgA0H/////A08NBCACKAIQIQMCQCABRQRAIAMQGEEAIQQMAQsgAyABQQJ0IgEQOiIERQ0GCyACIAQ2AhAgAiACKAIYNgIcCyACQRBqEK4MIAAoAhAgAigCEDYCuAEMAQsgAkIANwIUIAIoAhAQGAsgAkEgaiQADwtBg9MBQcvBAUE8QYQvEAAAC0HfyQNBmIUBQc0AQe+6ARAAAAsgAiABNgIAQbj8CCgCAEHT8wMgAhAeGhAoAAs+AQF8RAAAAAAAQI9AIAAgAUQAAAAAAADwP0QAAAAAAAAAABBLIgJEAAAAAABAj0CiIAJEAAAAAAAAAABhGwsKAEEBQcgAEOEECzcBBH8gACgCQCEDIAAoAjAhAQNAIAIgA0YEQCAAEBgFIAEoAjQgARCyDCACQQFqIQIhAQwBCwsLzAMCA38EfCMAQfAAayICJAACQCAAKAI8RQRAIABBMGohAQNAIAEoAgAiAQRAIAEQswwgAUE0aiEBDAELCyAAKwMQIQQgACsDICEFIAAoAjgoAhAiASAAKwMYIAArAygiBkQAAAAAAADgP6KhIgc5AxggASAEIAVEAAAAAAAA4D+ioSIEOQMQIAEgBiAHoDkDKCABIAUgBKA5AyAMAQsgACsDECEFIAArAxghBCAAKwMgIQYgACgCOCIBKAIQIgMgACsDKEQAAAAAAABSQKM5AyggAyAGRAAAAAAAAFJAozkDICADIAQ5AxggAyAFOQMQIAEgARAvKAIQKAJ0QQFxEKEEAkBBlOIKKAIAIgBFDQAgASAAEEEtAAANACACIAEoAhArA1BEZmZmZmZm5j+iOQMwIAJBQGsiAEEoQdSNASACQTBqEKEBGiABQZTiCigCACAAEHILIAEQigVBjOEKLQAARQ0AIAEQICEDIAEoAhAiACsDECEFIAArA2AhBCAAKwNYIQYgACsDGCEHIAIgACsDUDkDGCACIAc5AxAgAiAGIASgOQMgIAIgBTkDCCACIAM2AgBBuPwIKAIAQai0BCACEDILIAJB8ABqJAALswYCCn8FfCMAQdABayIBJAACQCAAKAJAIgRFDQAgBEEEEOEEIQUgAEEwaiIHIQMDQCACIARGBEAgBSAEQQRB6AMQlQFBACECIARBCBDhBCEDA0AgAiAERgRAAn8gACsDCCIMIAArAwBhBEAgASAAKQMoNwOIASABIAApAyA3A4ABIAEgACkDGDcDeCABIAApAxA3A3AgBCADIAFB8ABqELYMDAELIAArAyAhCyAAKwMoIQ0gASAAKwMQOQOwASABIAArAxg5A7gBIAEgCyANIAugIA0gC6EiCyALoiAMRAAAAAAAABBAoqCfoUQAAAAAAADgP6IiC6E5A8ABIAEgDSALoTkDyAEgASABKQO4ATcDmAEgASABKQPAATcDoAEgASABKQPIATcDqAEgASABKQOwATcDkAEgBCADIAFBkAFqELYMCyEIQbj8CCgCACEJQYzhCi0AAARAIAArAxAhCyAAKwMYIQ0gACsDICEMIAEgACsDKDkDaCABIAw5A2AgASANOQNYIAEgCzkDUCAJQcu0BCABQdAAahAyCyABQUBrIQpBACECA0AgAiAERgRAIAUQGCADEBggCBAYQQAhAgNAIAIgBEYNByAHKAIAIgAoAjxFBEAgABC0DAsgAkEBaiECIABBNGohBwwACwALIAUgAkECdGooAgAiBiAIIAJBBXRqIgApAwA3AxAgBiAAKQMYNwMoIAYgACkDEDcDICAGIAApAwg3AxhBjOEKLQAABEAgAyACQQN0aisDACEPIAArAwAhCyAAKwMIIQ0gACsDECEMIAEgACsDGCIOOQNIIAogDDkDACABIA05AzggASALOQMwIAEgDCAOojkDKCABIA0gDkQAAAAAAADgP6IiDqA5AyAgASALIAxEAAAAAAAA4D+iIgygOQMYIAEgDSAOoTkDECABIAsgDKE5AwggASAPOQMAIAlB0/wEIAEQMgsgAkEBaiECDAALAAUgAyACQQN0aiAFIAJBAnRqKAIAKwMAOQMAIAJBAWohAgwBCwALAAUgBSACQQJ0aiADKAIAIgM2AgAgAkEBaiECIANBNGohAwwBCwALAAsgAUHQAWokAAvYAgIGfwJ8ELEMIgYgADYCOCAGQQA2AjxBASEEA0AgACgCECIFKAK0ASAETgRAIAUoArgBIARB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8ABqEB4aCyAAEBshAgNAIAIEQCACKAIQQQA2ArgBIAAgAhAcIQIMAQsLQYzhCi0AAEECTwRAIAEoAhAhAiAIIAAQIDYCZCAIIAI2AmBBuPwIKAIAQeuCBCAIQeAAahAeGgsgASABKAIQQQFqNgIQIAhB1PYJKAIANgJcQd+vASAIQdwAakEAEOQBIgpBrCtBmAJBARA1GkE4EFQhAiAKKAIQIAI2AowBIAAQNyECIAooAhAgAigCEC8BsAE7AbABIAAgCkHI4gAQ1wcgACAKQYbhABDXByAAIApBn94BENcHIAhBmAFqIQcgCEGQAWohBiAIQYgBaiEJQQEhDANAIAAoAhAiAigCtAEgDE4EQCACKAK4ASAMQQJ0aigCACIDEIEFIAogAxAgENYHIgQoAhAiAiALNgKIASACIAM2AugBAkACQCABKAIEIgVFBEBE////////738hG0T////////v/yEaDAELRP///////+9/IRtE////////7/8hGiADIAUQQSICLQAARQ0AIAEoAgAgA0cEQCACIAMoAkQgBRBBEElFDQELIAhBADoArAEgCCAJNgJEIAggBjYCSCAIIAc2AkwgCCAIQawBajYCUCAIIAhBgAFqNgJAIAJBhMgBIAhBQGsQT0EETgRAIAgrA5gBIRogCCsDkAEhHiAIKwOIASEbIAgrA4ABIRxBoOEKKwMAIh1EAAAAAAAAAABkBEAgHiAdoyEeIBsgHaMhGyAcIB2jIRwgGiAdoyEaCyAEKAIQQQNBAkEBIAgtAKwBIgJBP0YbIAJBIUYbOgCHAQwCCyADECAhBSAIIAI2AjQgCCAFNgIwQeX0AyAIQTBqECsLRP///////+//IR5E////////738hHAsgC0EBaiELIAMQGyECA0AgAgRAIAIoAhAgBDYCuAEgAyACEBwhAgwBCwsgBCgCECICLQCHAQRAIAIoApQBIgIgGiAboEQAAAAAAADgP6I5AwggAiAeIBygRAAAAAAAAOA/ojkDAAsgDEEBaiEMDAELCyAAEBshAgJ/AkADQCACBEACQCACKAIQIgMoArgBDQACQCADKALoASIERQ0AIAQgACgCECgCjAEoAjBGDQAgAhAgIQEgABAgIQAgCCACKAIQKALoARAgNgIoIAggADYCJCAIIAE2AiBB6YQFIAhBIGoQNgwECyADIAA2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AgAgACABQZSFCygCAEECdGo2AgQLQQAhAQNAQZSFCygCACICIAFNBEAgACgCACACQQRB1wMQlQEgACAAKAIANgJIBSAAKAIAIAFBAnRqQciFCygCACABQeAAbGoiAkEIajYCACACQQE2AhwgAkIANwNYIAFBAWohAQwBCwsLNwECfyMAQSBrIgMkACAAEDhBAk4EQCAAIAEgA0EIaiIBEJkNIAAgARD1AyECCyADQSBqJAAgAgvmAgIGfwR8IAAQlQ0gACgCBCEFIAAoAgAhAANAAkAgBSAAIgFLBEAgAEEEaiIAIAVPDQIgASgCACIDKwMAIgcgASgCBCICKwMAYg0CIAMrAwgiCCACKwMIYg0CIAFBCGohA0ECIQICQANAIAMgBU8NASADKAIAIgQrAwghCSAEKwMAIgogB2IgCCAJYnJFBEAgA0EEaiEDIAJBAWohAgwBCwsgCCAJYg0AIAogB6EgArijIQdBASEBA0AgACADTw0DIAAoAgAiAiABuCAHoiACKwMAoDkDACAAQQRqIQAgAUEBaiEBDAALAAtByIULKAIAIQIDQCAAIANPDQIgACgCACIEIAEoAgAiBisDACACIAYoAhBB4ABsaiIGKwM4IAYrAyihIAIgBCgCEEHgAGxqIgQrAzggBCsDKKGgRAAAAAAAAOA/oqA5AwAgAEEEaiEAIAFBBGohAQwACwALDwsgAyEADAALAAuPAQEBfwNAQZSFCygCACAATQRAQcyFC0EANgIAQdCFCygCABAYQdSFCygCABAYQdiFCygCABAYQdSFC0EANgIAQdCFC0EANgIAQdiFC0EANgIAQciFCygCACIABH8gACgCWBAYQciFCygCAAVBAAsQGAVByIULKAIAIABB4ABsaigCTBAYIABBAWohAAwBCwsLvQMCB38BfiMAQTBrIgUkAEHnnQEhCAJAAkAgAUUNACABLQAARQ0AQZzQCCEEA0ACQAJAIAQoAgQiA0UEQEHc0QghBAwBCyABIAMQLkUgBCgCACIGQRJGBH8gASADIAMQPBCBAgVBAQtFckUNASAEKAIIIgdFBEAgBSADNgIgQcXDBCAFQSBqECsgAkHP/AA2AgQgAkEBNgIAQZzQCCEEDAELIAIgBzYCBCACIAY2AgAgBkESRw0AIAQoAgQQPCABaiMAQRBrIgMkACADIANBDGo2AgBB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QYiFC0GIhQsoAgBBAWoiAjYCACAAIAI2AiwgABCXCANAAkAgABCVCCICRQ0AIAIQuAJEAAAAAAAAAABjRQ0AIABBMGoQywQgAigCACIBKAIgIgMoAjAgAygCNEYEQCADEJcIIAIoAgAhAQsgAisDCCEHIAErAxghCCACKAIEKwMYIQkgACgCACEBIAAoAgQhBCADKAIAIQUgAygCBCEGQYiFC0GIhQsoAgBBAWo2AgAgACADIAQgAWsgBiAFa0kiBBshASADIAAgBBsiACABIAIgCSAIoSAHoSIHmiAHIAQbEPEFIAAQlQgaIAEQlQgaIABBMGogAUEwahDxDSAAQYiFCygCADYCLCABQQE6ACgMAQsLC+wBAQN/IwBBEGsiAyQAIAMgATYCDCABQQE6ACQgASgCOCEEIAEoAjQhAQNAIAEgBEcEQCABKAIAKAIEIgUtACRFBEAgACAFIAIQ6g0LIAFBBGohAQwBCwsjAEEQayIAJAAgAEEBNgIIIABBDBCLATYCDCAAKAIMIgFBADYCBCABQQA2AgAgASADKAIMNgIIIAAoAgwhASAAQQA2AgwgACgCDCIEBEAgACgCCBogBBAYCyAAQRBqJAAgASACNgIAIAEgAigCBCIANgIEIAAgATYCACACIAE2AgQgAiACKAIIQQFqNgIIIANBEGokAAsZACAAQTxqEIICGiAAQTBqEIICGiAAEIICCxoAIABBgICAgARPBEAQgwgACyAAQQJ0EIsBC5EBAQN/IAEoAgQhAiAAKAIAIQQgACgCBCEDA0AgAyAERkUEQCACQQRrIgIgA0EEayIDKAIANgIADAELCyABIAI2AgQgACgCACEDIAAgAjYCACABIAM2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIAC34BAn8CQCADQQJIDQAgACADQQJrQQF2IgNBAnRqIgQoAgAgAUEEayIBKAIAIAIoAgARAABFDQAgASgCACEFA0ACQCABIAQiASgCADYCACADRQ0AIAAgA0EBa0EBdiIDQQJ0aiIEKAIAIAUgAigCABEAAA0BCwsgASAFNgIACwtEAQF/IwBBEGsiASQAIAFBADYCDCAAIAAoAgAoAgBBABDwBSAAIAAoAgAoAgBBACABQQxqEJEIGiABKAIMIAFBEGokAAtOAQJ/IwBB0ABrIgIkACAAKAJAIgNBABCNBUG49glHBEAgA0G49gkQjQUaCyACIAE3AwggACgCQCIAIAJBBCAAKAIAEQQAIAJB0ABqJAALyQQBCX8gACICKAIEIQYgASgCACIAIQMgASgCBCEBIwBBIGsiCSQAAkAgASAAa0ECdSIFQQBMDQAgAigCCCACKAIEIgBrQQJ1IAVOBEACQCAAIAZrIgRBAnUiCCAFTgRAIAMgBUECdGohBwwBCyABIAMgBGoiB2shBCABIAdHBEAgACAHIAQQUxoLIAIgACAEajYCBCAIQQBMDQILIAAhBCAGIAIoAgQiASAGIAVBAnRqIgprIghqIQUgASEAA0AgBCAFTQRAIAIgADYCBCABIApHBEAgASAIayAGIAgQUxoLBSAAIAUoAgA2AgAgAEEEaiEAIAVBBGohBQwBCwsgAyAHRg0BIAYgAyAHIANrEFMaDAELIAlBDGogAiAAIAIoAgBrQQJ1IAVqEO4FIAYgAigCAGtBAnUgAkEIahCOCCIBKAIIIgAgBUECdGohBANAIAAgBEcEQCAAIAMoAgA2AgAgA0EEaiEDIABBBGohAAwBCwsgASAENgIIIAIoAgAhBCAGIQAgASgCBCEDA0AgACAERwRAIANBBGsiAyAAQQRrIgAoAgA2AgAMAQsLIAEgAzYCBCACKAIEIgUgBmshACABKAIIIQQgBSAGRwRAIAQgBiAAEFMaIAEoAgQhAwsgASAAIARqNgIIIAIoAgAhACACIAM2AgAgASAANgIEIAIoAgQhACACIAEoAgg2AgQgASAANgIIIAIoAgghACACIAEoAgw2AgggASAANgIMIAEgASgCBDYCACABEI0ICyAJQSBqJAAgAhDzDQtjAgJ/AXwgAigCBCIDKwMYIAIoAgAiBCsDGKEgAisDCKEhBSADKAIgIQMgBCgCICEEIAAoAgQgACgCAGsgASgCBCABKAIAa0kEQCADIAQgAiAFEPEFDwsgBCADIAIgBZoQ8QUL4gIBCX8gACgCACEFIAAoAgQhACMAQRBrIgMkACADQb8DNgIMAkAgACAFa0ECdSIGQQJIDQAgBkECa0EBdiEIA0AgCEEASA0BIAUgCEECdGohBAJAIAZBAkgNACAGQQJrQQF2IgkgBCAFayIAQQJ1SA0AIAUgAEEBdSIBQQFyIgJBAnRqIQAgBiABQQJqIgFKBEAgASACIAAoAgAgACgCBCADKAIMEQAAIgEbIQIgAEEEaiAAIAEbIQALIAAoAgAgBCgCACADKAIMEQAADQAgBCgCACEBA0ACQCAEIAAiBCgCADYCACACIAlKDQAgBSACQQF0IgdBAXIiAkECdGohACAGIAdBAmoiB0oEQCAHIAIgACgCACAAKAIEIAMoAgwRAAAiBxshAiAAQQRqIAAgBxshAAsgACgCACABIAMoAgwRAABFDQELCyAEIAE2AgALIAhBAWshCAwACwALIANBEGokAAtGAgF8An8gACgCBCEDIAAoAgAhAAN8IAAgA0YEfCABBSAAKAIAIgIrAwggAisDGKEgAisDEKIgAaAhASAAQQRqIQAMAQsLC2wCAX8CfCMAQRBrIgIkACACIAE2AgwgASAANgIgIAAgAkEMahDBASAAIAIoAgwiASsDECIDIAArAxigIgQ5AxggACADIAErAwggASsDGKGiIAArAyCgIgM5AyAgACADIASjOQMQIAJBEGokAAsnACAAIAAoAhhFIAAoAhAgAXJyIgE2AhAgACgCFCABcQRAEJMBAAsLMAEDfyAAKAIEIgQgAUEEaiICayEDIAIgBEcEQCABIAIgAxBTGgsgACABIANqNgIEC34BA38gACgCACIBQTRqIAEoAjghAyABKAI0IQEDQAJAIAEgA0YNACABKAIAIABGDQAgAUEEaiEBDAELCyABEPcNIAAoAgQiAUEoaiABKAIsIQMgASgCKCEBA0ACQCABIANGDQAgASgCACAARg0AIAFBBGohAQwBCwsgARD3DQvqAQEIfyAAQay1AxDTAiECIAEoAgAhBiMAQRBrIgMkACADQQhqIgQgAhC2BRoCQCAELQAARQ0AIAIgAigCAEEMaygCAGoiBSgCBBogA0EEaiIEIAUQUSAEEPMLIQUgBBBOIAMgAhDyCyEHIAIgAigCAEEMaygCAGoiCBDxCyEJIAMgBSAHKAIAIAggCSAGIAUoAgAoAhARCAA2AgQgBBC0BUUNACACIAIoAgBBDGsoAgBqQQUQtwULIANBCGoQtQUgA0EQaiQAIAJBv+YBENMCIAEoAiArAxAgASsDGKAQrQdB5rQDENMCGiAACw4AIABBpwVBqMEBENAKCzgBAX8gABAbIQEDQCABBEAgASgC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BEAgBSAAKAIQIgAoAugBQcgAbGoiASABKwMYIgkgByAHIAljGzkDGCAFIAAoAuwBQcgAbGoiACAAKwMQIgcgCCAHIAhkGzkDEAsgAwtwAQJ/QQEhBANAIAQgACgCECIDKAK0AUpFBEAgAygCuAEgBEECdGooAgAgASACELQOIARBAWohBAwBCwsgAyABIAMrAxCiOQMQIAMgAiADKwMYojkDGCADIAEgAysDIKI5AyAgAyACIAMrAyiiOQMoC+UEAgh/BHxBASECA0AgAiAAKAIQIgMoArQBSkUEQCADKAK4ASACQQJ0aigCACABELUOIAJBAWohAgwBCwsgABBjIQIgACgCECEDAkAgACACRgRAIAMoAuwBIQVEAADA////38EhCkQAAMD////fQSELIAMoAugBIgghBANAIAQgBUoEQCADKAK0ASIAQQAgAEEAShtBAWohAEEBIQIDQCAAIAJGDQQgCiADKAK4ASACQQJ0aigCACgCECIEKwMgRAAAAAAAACBAoCIMIAogDGQbIQogCyAEKwMQRAAAAAAAACDAoCIMIAsgDGMbIQsgAkEBaiECDAALAAUCQCADKALEASAEQcgAbGoiACgCACIGRQ0AQQEhAiAAKAIEIgcoAgAiAEUNAANAIAAoAhAiAC0ArAEiCUUgAiAGTnJFBEAgByACQQJ0aigCACEAIAJBAWohAgwBCwsgCQ0AIAZBAmshAiAAKwMQIAArA1ihIQwgByAGQQJ0akEEayEAA0AgACgCACgCECIALQCsAQRAIAcgAkECdGohACACQQFrIQIMAQsLIAogACsDECAAKwNgoCINIAogDWQbIQogCyAMIAsgDGMbIQsLIARBAWohBAwBCwALAAsgAygC6AEhCCADKALsASEFIAMoAoQCKAIQKAL0AbchCiADKAKAAigCECgC9AG3IQsLIAEoAhAoAsQBIgAgBUHIAGxqKAIEKAIAKAIQKwMYIQwgACAIQcgAbGooAgQoAgAoAhArAxghDSADIAo5AyAgAyALOQMQIAMgDSADKwOAAaA5AyggAyAMIAMrA3ihOQMYC6IBAgJ8AX8CQAJ/Qf////8HIABBqiEQJiIDRQ0AGiAAEDghACADELECIQEgAEEASA0BQQAgAUQAAAAAAAAAAGMNABogALghAiABRAAAAAAAAPA/ZARAQf////8HRAAAwP///99BIAGjIAJjDQEaCyABIAKiIgGZRAAAAAAAAOBBYwRAIAGqDwtBgICAgHgLDwtB3Z0DQZWEAUHKAEG83wAQAAALiAICB38BfCMAQRBrIgQkACAAQfzhCigCAEEIQQAQZCAAEP8FtyEIIAAoAhAiASgC6AEhAyABKAKEAiEFIAEoAoACIQYDQCADIAEoAuwBSkUEQAJAIANByABsIgcgASgCxAFqIgIoAgBFDQAgAigCBCgCACICRQRAIAAQICEBIAQgAzYCBCAEIAE2AgBB1L0EIAQQNgwBCyAGIAIgAigCECsDWCAIoCABKwNgoEEAEKQBGiAAKAIQIgEoAsQBIAdqIgIoAgQgAigCAEECdGpBBGsoAgAiAiAFIAIoAhArA2AgCKAgASsDQKBBABCkARoLIANBAWohAyAAKAIQIQEMAQsLIARBEGokAAvbAgIKfwF8IABB/OEKKAIAQQhBABBkIQdBASEBA0AgACgCECIFKAK0ASIEIAFIBEAgB7chC0EBIQEDQCABIARKRQRAIAFBAnQhCSABQQFqIgchAQNAIAUoArgBIgIgCWooAgAhAyABIARKRQRAIAIgAUECdGooAgAiBiADIAMoAhAoAugBIAYoAhAoAugBSiICGyIIKAIQIgooAuwBIAMgBiACGyIDKAIQIgYoAugBIgJOBEAgCCADIAJByABsIgIgCigCxAFqKAIEKAIAKAIQKAL4ASAGKALEASACaigCBCgCACgCECgC+AFIIgIbKAIQKAKEAiADIAggAhsoAhAoAoACIAtBABCkARogACgCECIFKAK0ASEECyABQQFqIQEMAQsLIAMQuA4gACgCECIFKAK0ASEEIAchAQwBCwsFIAUoArgBIAFBAnRqKAIAEP8FIAFBAWohAQwBCwsLnAECA38BfCAAQfzhCigCAEEIQQAQZCAAEP8FtyEEQQEhAQNAIAEgACgCECICKAK0AUpFBEAgAigCuAEgAUECdGooAgAiAhD/BSAAKAIQIgMoAoACIAIoAhAoAoACIAMrA2AgBKBBABCkARogAigCECgChAIgACgCECIDKAKEAiADKwNAIASgQQAQpAEaIAIQuQ4gAUEBaiEBDAELCwulAwIHfwF8IABB/OEKKAIAQQhBABBktyEIIAAoAhAiASgC6AEhBEEBIQUDQCABKALsASAESARAA0AC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4EFjBEAgEaoMAQtBgICAgHgLIghBACAIQQBKIgcbIglBAWq4IAUoApwBEKQBGiADIAEgAUEwayIFIAEoAgBBA3FBAkYbKAIoQQBBACAIayAHGyIIQQFquCABKAIQKAKcARCkARogAygCECABIAYgASgCAEEDcSIDQQNGGygCKCgCECgC9AEgCUF/c2oiBiABIAUgA0ECRhsoAigoAhAoAvQBIAhBf3NqIgEgASAGShs2AvQBIAJBAWohAiAEKAIQIgUoApACIQEMAAsACyAFQbgBaiEBDAELCwJAIAAoAhAiASgCtAFBAEoEfyAAELsOIAAQug4gABC5DiAAELgOIAAoAhAFIAELKAIIIgEoAlRBA0cNACABKwNAIhEgASsDSCISokQAAAAAAADwP2UNACAAELcOIAAoAhAiASgCgAIgASgChAIgEiARIAEoAnRBAXEbIhFEAAAAAOD/70AgEUQAAAAA4P/vQGMbQegHEKQBGgsCQCAAQQIgABC2DhDWBEUNACAAKAIQIgIoAugBIQUDQAJAAkAgAigC7AEiCyAFTgRAQQAhByACKALEASAFQcgAbGoiCCgCACIJQQAgCUEAShshA0EAIQEDQCABIANGDQNBACEEAkAgCCgCBCABQQJ0aigCACIHKAIQIgooApACIgxFDQADQCAMIARBAnRqKAIAIgZFDQEgBkFQQQAgBigCAEEDcSINQQJHG2ooAigoAhAoAvQBIAVKDQQgBEEBaiEEIAZBMEEAIA1BA0cbaigCKCgCECgC9AEgBUwNAAsMAwtBACEEAkAgCigCiAIiCkUNAANAIAogBEECdGooAgAiBkUNASAGQTBBACAGKAIAQQNxIgxBA0cbaigCKCgCECgC9AEgBUoNBCAEQQFqIQQgBSAGQVBBACAMQQJHG2ooAigoAhAoAvQBTg0ACwwDCyABQQFqIQEMAAsACyAAQQIgABC2DhDWBEUNA0GWoANBhMQBQYsBQZ/oABAAAAsgASEDCwJAIAdFIAMgCUhyRQRAIAhBzABBvH8gBSALSBtqKAIAKAIAIgJFDQEgCCgCBCgCACEDIAAQuwIiASgCEEECOgCsASABIANEAAAAAAAAAABBABCkARogASACRAAAAAAAAAAAQQAQpAEaIAEoAhAgAygCECgC9AEiASACKAIQKAL0ASICIAEgAkgbNgL0ASAA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IAQgAisDADkDKCAEIAg3AyAgAEGr1gQgBEEgahAyIANBAWohAwwACwALAkAgBAJ8IAEoAhAgA0EobGoiBSgCFCICIAUoAhgiBkYEQCACKwMoIAIrAzigRAAAAAAAAOA/oiEHIAIrAzAgAisDQKBEAAAAAAAA4D+iDAELIAUgBiACIAItAABBAXEbIgIoAiQiBigCBEYEQCACKwMoIAIrAzigRAAAAAAAAOA/oiEHIAIrA0AMAQsgBSAGKAIMRgRAIAIrAyggAisDOKBEAAAAAAAA4D+iIQcgAisDMAwBCyAFIAYoAghGBEAgAisDKCEHIAIrAzAgAisDQKBEAAAAAAAA4D+iDAELIAYoAgAgBUcNASACKwM4IQcgAisDMCACKwNAoEQAAAAAAADgP6ILOQMQIAQgBzkDCCAEIAM2AgAgAEHD1gQgBBAyIANBAWohAwwBCwtBhp8EQQAQNhAoAAtB9OEDIAAQjQEaIARBMGokAAvmVAIafwp8IwBB0AJrIgckACAAELoCQQgQGSEYQbzhCi0AAEEBRgRAEM0DIRkLIABB7cgBECYhAkHggwtBADYCAAJAIAJFDQAgAi0AACIFRQ0AA0ACQEHggwsCfwJAAkACQAJAIAVB/wFxIghB7QBrDgcBBQUFBQIDAAtBCCAIQeMARg0DGiAIQekARwRAIAgNBQwHC0ESDAMLQQEMAgtBBAwBC0ECCyAGciIGNgIACyACQQFqIgItAAAhBQwACwALIAEEQEGL6QRBABArCwJ/IwBB4AJrIgMkAEEBQRwQGSEOAkAgACIIEDhBAE4EQCAOIAAQOCIKNgIEIA4gCkHIABAZIgY2AgxE////////738hHET////////v/yEfIAAQGyEFRP///////+//IR1E////////738hHiAGIQEDQCAFBEAgBSgCECIAKwMQISIgACsDYCEhIAArA1ghIyAAKwMYISAgACsDUCEkIAEgASgCAEEBcjYCACABICAgJEQAAAAAAADgP6JEAAAAAAAA8D8QIiIkoCIlOQNAIAEgICAkoSIgOQMwIAEgIiAjICGgRAAAAAAAAOA/okQAAAAAAADwPxAiIiGgIiM5AzggASAiICGhIiI5AyggACABNgKAASABQcgAaiEBIB8gJRAiIR8gHCAgECohHCAdICMQIiEdIB4gIhAqIR4gCCAFEBwh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Amo2AgBBJQ8LIAJBFUYNDwsgAyAANgIADBELIAMgAUEBajYCAEEVDwsgAyABQQFqNgIAQREPCyACIAFBAWoiAWsiBkEATA0MQQAhBQJAAkACQAJAAkACQCAHIAEtAABqLQAAIghBBWsOAwECAwALIAhBFmsOAwMEAwQLIAZBAUYNDiAAIAEgACgC4AIRAAANAyAAIAEgACgC1AIRAABFDQNBAiEEDAILIAZBA0kNDSAAIAEgACgC5AIRAAANAiAAIAEgACgC2AIRAABFDQJBAyEEDAELIAZBBEkNDCAAIAEgACgC6AIRAAANASAAIAEgACgC3AIRAABFDQFBBCEECyABIARqIQEDQCACIAFrIgZBAEwEQEFsDwtBASEEQRQhBQJAAkACQAJAAkAgByABLQAAai0AAEEFaw4gAAECBAYGBgQEBAQEBAQEBAYDBAMDAwMEBAYEBgQEBAYECyAGQQFGDRAgACABIAAoAuACEQAADQMgACABIAAoAsgCEQAARQ0DQQIhBAwCCyAGQQNJDQ8gACABIAAoAuQCEQAADQIgACABIAAoAswCEQAARQ0CQQMhBAwBCyAGQQRJDQ4gACABIAAoAugCEQAADQEgACABIAAoAtACEQAARQ0BQQQhBAsgASAEaiEBDAELC0EAIQULIAMgATYCACAFDwsgAiABa0ECSA0JIAAgASAAKALgAhEAAA0IQQIhBCAAIAEgACgC1AIRAAANAiAAIAEgACgCyAIRAABFDQgMBQsgAiABa0EDSA0IIAAgASAAKALkAhEAAA0HQQMhBCAAIAEgACgC2AIRAAANASAAIAEgACgCzAIRAABFDQcMBAsgAiABa0EESA0HIAAgASAAKALoAhEAAA0GQQQhBCAAIAEgACgC3AIRAABFDQELDAMLIAAgASAAKALQAhEAAEUNBAwBC0ETIQUMAQtBEyEFCyABIARqIQQCQAJAAkACQANAIAIgBCIBayIEQQBMDQQCQAJAAkACQAJAAkACQCAHIAEtAABqLQAAQQVrDiABAgMKBAQECgoKCQoKCgoEBAAFAAAAAAoKBAoECAYEBAoLIAFBAWohBAwGCyAEQQFGDQwgACABIAAoAuACEQAADQggACABIAAoAsgCEQAARQ0IIAFBAmohBAwFCyAEQQNJDQsgACABIAAoAuQCEQAADQcgACABIAAoAswC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AgAgAiEIA0AgAyAIRgRAIAMhCAwGCyAILQAARQ0FIAhBAWohCAwACwALIAQgAjYCAEEBDAILIAQoAgAhAgsgAiADRwsgEUEQaiQADwsgBygCACEFDAALAAumBQEMfyMAQRBrIg8kACACIQgDQAJAIAMgCEYEQCADIQgMAQsgCCgCAEUNACAIQQRqIQgMAQsLIAcgBTYCACAEIAI2AgACQANAAkACQCACIANGIAUgBkZyBH8gAgUgDyABKQIANwMIQQEhECAAKAIIIQkjAEEQayIOJAAgDiAJNgIMIA5BCGogDkEMahCPAiAFIQkgBiAFayEKQQAhDCMAQRBrIhEkAAJAIAQoAgAiC0UgCCACa0ECdSISRXINACAKQQAgBRshCgNAIBFBDGogCSAKQQRJGyALKAIAELQHIg1Bf0YEQEF/IQwMAgsgCQR/IApBA00EQCAKIA1JDQMgCSARQQxqIA0QHxoLIAogDWshCiAJIA1qBUEACyEJIAsoAgBFBEBBACELDAILIAwgDWohDCALQQRqIQsgEkEBayISDQALCyAJBEAgBCALNgIACyARQRBqJAAQjgIgDkEQaiQAAkACQAJAAkAgDEEBag4CAAgBCyAHIAU2AgADQCACIAQoAgBGDQIgBSACKAIAIAAoAggQlAciAUF/Rg0CIAcgBygCACABaiIFNgIAIAJBBGohAgwACwALIAcgBygCACAMaiIFNgIAIAUgBkYNASADIAhGBEAgBCgCACECIAMhCAwGCyAPQQRqIgJBACAAKAIIEJQHIghBf0YNBCAGIAcoAgBrIAhJDQYDQCAIBEAgAi0AACEFIAcgBygCACIJQQFqNgIAIAkgBToAACAIQQFrIQggAkEBaiECDAELCyAEIAQoAgBBBGoiAjYCACACIQgDQCADIAhGBEAgAyEIDAULIAgoAgBFDQQgCEEEaiEIDAALAAsgBCACNgIADAMLIAQoAgALIANHIRAMAwsgBygCACEFDAELC0ECIRALIA9BEGokACAQCwkAIAAQmAsQGAszACMAQRBrIgAkACAAIAQ2AgwgACADIAJrNgIIIABBDGogAEEIahDoCygCACAAQRBqJAALNAADQCABIAJGRQRAIAQgAyABLAAAIgAgAEEASBs6AAAgBEEBaiEEIAFBAWohAQwBCwsgAQsMACACIAEgAUEASBsLKgAD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IAZHDQALCyAGQSBqJAAgAQvnAgEBfyMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIABBxAFqEFIhBiAAQRBqIgIgAxBRIAIQzgFB8LcJQYq4CSAAQdABahD3AiACEE4gAEG4AWoQUiIDIAMQVhA9IAAgA0EAED8iATYCtAEgACACNgIMIABBADYCCANAAkAgAEH8AWogAEH4AWoQXA0AIAAoArQBIAMQIyABakYEQCADECMhAiADIAMQI0EBdBA9IAMgAxBWED0gACACIANBABA/IgFqNgK0AQsgAEH8AWoiAhCFAUEQIAEgAEG0AWogAEEIakEAIAYgAEEQaiAAQQxqIABB0AFqEN4DDQAgAhCZARoMAQsLIAMgACgCtAEgAWsQPSADEEIQaCAAIAU2AgAgABDGC0EBRwRAIARBBDYCAAsgAEH8AWogAEH4AWoQXARAIAQgBCgCAEECcjYCAAsgACgC/AEgAxA0GiAGEDQaIABBgAJqJAAL0AMBAX4jAEGQAmsiACQAIAAgAjYCiAIgACABNgKMAiAAQdABaiADIABB4AFqIABB3wFqIABB3gFqEKYHIABBxAFqEFIiASABEFYQPSAAIAFBABA/IgI2AsABIAAgAEEgajYCHCAAQQA2AhggAEEBOgAXIABBxQA6ABYDQAJAIABBjAJqIABBiAJqEFwNACAAKALAASABECMgAmpGBEAgARAjIQMgASABECNBAXQQPSABIAEQVhA9IAAgAyABQQAQPyICajYCwAELIABBjAJqIgMQhQEgAEEXaiAAQRZqIAIgAEHAAWogACwA3wEgACwA3gEgAEHQAWogAEEgaiAAQRxqIABBGGogAEHgAWoQpQcNACADEJkBGgwBCwsCQCAAQdABahAjRQ0AIAAtABdBAUcNACAAKAIcIgMgAEEgamtBnwFKDQAgACADQQRqNgIcIAMgACgCGDYCAAsgACACIAAoAsABIAQQxwsgACkDACEGIAUgACkDCDcDCCAFIAY3AwAgAEHQAWogAEEgaiAAKAIcIAQQtAEgAEGMAmogAEGIAmoQXARAIAQgBCgCAEECcjYCAAsgACgCjAIgARA0GiAAQdABahA0GiAAQZACaiQAC7kDACMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIABBwAFqIAMgAEHQAWogAEHPAWogAEHOAWoQpgcgAEG0AWoQUiIBIAEQVhA9IAAgAUEAED8iAjYCsAEgACAAQRBqNgIMIABBADYCCCAAQQE6AAcgAEHFADoABgNAAkAgAEH8AWogAEH4AWoQXA0AIAAoArABIAEQIyACakYEQCABECMhAyABIAEQI0EBdBA9IAEgARBWED0gACADIAFBABA/IgJqNgKwAQsgAEH8AWoiAxCFASAAQQdqIABBBmogAiAAQbABaiAALADPASAALADOASAAQcABaiAAQRBqIABBDGogAEEIaiAAQdABahClBw0AIAMQmQEaDAELCwJAIABBwAFqECNFDQAgAC0AB0EBRw0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCsAEgBBDICzkDACAAQcABaiAAQRBqIAAoAgwgBBC0ASAAQfwBaiAAQfgBahBcBEAgBCAEKAIAQQJyNgIACyAAKAL8ASABEDQaIABBwAFqEDQaIABBgAJqJAALuQMAIwBBgAJrIgAkACAAIAI2AvgBIAAgATYC/AEgAEHAAWogAyAAQdABaiAAQc8BaiAAQc4BahCmByAAQbQBahBSIgEgARBWED0gACABQQAQPyICNgKwASAAIABBEGo2AgwgAEEANgIIIABBAToAByAAQcUAOgAGA0ACQCAAQfwBaiAAQfgBahBcDQAgACgCsAEgARAjIAJqRgRAIAEQIyEDIAEgARAjQQF0ED0gASABEFYQPSAAIAMgAUEAED8iAmo2ArABCyAAQfwBaiIDEIUBIABBB2ogAEEGaiACIABBsAFqIAAsAM8BIAAsAM4BIABBwAFqIABBEGogAEEMaiAAQQhqIABB0AFqEKUHDQAgAxCZARoMAQsLAkAgAEHAAWoQI0UNACAALQAHQQFHDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAKwASAEEMkLOAIAIABBwAFqIABBEGogACgCDCAEELQBIABB/AFqIABB+AFqEFwEQCAEIAQoAgBBAnI2AgALIAAoAvwBIAEQNBogAEHAAWoQNBogAEGAAmokAAuPAwEBfyMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIAMQqQIhBiAAQcQBaiADIABB9wFqEKsEIABBuAFqEFIiASABEFYQ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8bic1j83A4gCAkAgAygCmAJBEkcgBEECR3JFBEAgAyADKAKgAjYC5AEgAyADKwOoAjkD8AEgA0GIAWogABCBA0EBIQUgAy0AmAFBAXFFDQEgAysDiAEhCCADIAMrA5ABRAAAAAAAAFJAozkDkAIgAyAIRAAAAAAAAFJAozkDiAIMAQsgA0F/NgLkASAEQQJHIQULQYzhCi0AAARAIANBKGoiASADQbABakHYABAfGiMAQeABayICJABBweIEQRtBAUG4/AgoAgAiBBBMGiACIAErAwA5A9ABIARBjK4EIAJB0AFqEDIgAS0ALCEGIAIgASgCKDYCxAEgAiAGQQFxNgLAASAEQfzOBCACQcABahAeGiABKwMIIQggAkKas+bMmbPm5D83A7gBIAIgCDkDsAEgBEGprgQgAkGwAWoQMiACIAEoAhA2AqABIARBiMsEIAJBoAFqEB4aIAIgASgCFDYClAEgAkEtNgKQASAEQfTLBCACQZABahAeGiACIAEoAhg2AoABIAJC/NPGl93JmKg/NwN4IAJCs+bMmbPmzPE/NwNwIARBocsEIAJB8ABqEDIgASsDICEIIAIgBkEBdkEBcTYCYCACIAg5A1ggAkLNmbPmzJmz9j83A1AgBEG5zQQgAkHQAGoQMiACIAErA0g5A0ggAkEANgJEIAIgBkECdkEBcTYCQCAEQdetBCACQUBrEDIgASgCMCEGIAEoAjQhByABKwNAIQggAiABLQA4NgIwIAIgCDkDKCACIAc2AiQgAiAGQQJ0QfDRCGooAgA2AiAgBEH4zAQgAkEgahAyIAIgASgCPEECdEGQ0ghqKAIANgIQIARBrIQEIAJBEGoQHhogAiABKAJQNgIAIARBxs4EIAIQHhogAkHgAWokAAsgACADQawBahCjCCEEAkAgAygCrAFBAUYEQCADIAMpA5ACNwMQIAMgAykDiAI3AwggACADQbABaiADQQhqEM8MIAVFBEAgACADQZgCahD1AxoLIAAQsQMMAQsgAEECQQggA0GIAWoQ/QMaIANBAToAlAFBACECA0AgAygCrAEiASACTQRAIAEgBCAAIANBiAFqEP0FDAILIAQgAkECdGooAgAiAUEAELYDGiADIAMpA5ACNwMgIAMgAykDiAI3AxggASADQbABaiADQRhqEM8MIAVFBEAgASADQZgCahD1AxoL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CBDUA0GMIBCNB0G48wlBwAMQAQALIAEoAggoAiAiAy0AKA0BIAMQ6Q0MAQsLAkAgBUEEaiICKAIIRQ0AIAIoAgQiACgCACIBIAIoAgAoAgQiAzYCBCADIAE2AgAgAkEANgIIA0AgACACRg0BIAAoAgQgABAYIQAMAAsACyAFQRBqJAALugECAn8CfET////////v/yEEAnxE////////7/8gASgCACgCICICKAIsIAEoAhhKDQAaRP///////+//IAIgASgCBCgCIEYNABogARC4AgshBQJAIAAoAgAoAiAiAigCLCAAKAIYSg0AIAIgACgCBCgCIEYNACAAELgCIQQLIAQgBWEEQCABKAIAKAIAIgIgACgCACgCACIDRgRAIAEoAgQoAgAgACgCBCgCAEgPCyACIANIDwsgBCAFZAsZAQJ+IAApAwgiAiABKQMIIgNWIAIgA1RrCzMAIAAQ5Q0gACABKAIANgIAIAAgASgCBDYCBCAAIAEoAgg2AgggAUEANgIIIAFCADcCAAvKAQEHfyMAQRBrIgUkACAAQQA2AgggAEIANwIAQShBNCACGyEHIAEoAgQhCCABKAIAIQQDQCAEIAhHBEAgBCgCACAHaiIDKAIEIQkgAygCACEDA0AgAyAJRgRAIARBBGohBAwDBSAFIAMoAgAiBjYCDCAGQYiFCygCADYCGAJAAkAgAgRAIAYoAgAoAiAgAUcNAQsgAg0BIAYoAgQoAiAgAUYNAQsgACAFQQxqEMEBCyADQQRqIQMMAQsACwALCyAAEPMNIAVBEGokAAsdACAAKAIAQQR2IgAgASgCAEEEdiIBSyAAIAFJaws+AQJ8An9BfyAAKwMAIgIgASsDACIDYw0AGkEBIAIgA2QNABpBfyAAKwMIIgIgASsDCCIDYw0AGiACIANkCwscACAAKAIMIAEoAgxqIAAoAgQgASgCBGprQQJtCxwAIAAoAgggASgCCGogACgCACABKAIAamtBAm0LjAEBB38CQCAAKAIgIgMgASgCKCIESg0AIAEoAiAiBSAAKAIoIgZKDQBBASECIAAoAiwiByABKAIkIghIDQAgACgCECABKAIQayAHIAEoAixqIAAoAiQgCGprQQJtaiAGIAMgBWprIARqQQJtIAEoAgwiASAAKAIMIgBrIAAgAWsgACABShtqTCECCyACC4wBAQd/AkAgACgCJCIDIAEoAiwiBEoNACABKAIkIgUgACgCLCIGSg0AQQEhAiAAKAIoIgcgASgCICIISA0AIAAoAgwgASgCDGsgASgCKCAHIAggACgCIGprakECbWogBCAGaiADIAVqa0ECbSABKAIQIgEgACgCECIAayAAIAFrIAAgAUobakwhAgsgAgsgAQF/IAAoAiAgASgCKEwEfyABKAIgIAAoAihMBUEACwsgAQF/IAAoAiQgASgCLEwEfyABKAIkIAAoAixMBUEACwu3DgELfyMAQTBrIgckAAJAAkACQCAAEDhFDQAgAEF/QQgQ/AUhAyAAQQAgB0EQaiICEKcIIQEgAEECQQggAhD9AxogASADQQBOckUEQCAAEPMFRQ0BDAMLAkACQAJAAkAgAQRAQQggAyADQQBIGyEDDAELIAdBAzYCICADQQBIDQELIAdBADYCJCAHIAM2AhhBACECIwBB4ABrIgEkACABQgA3A1ggAUIANwNQAkAgABA4RQRAIAdBADYCDAwBCyAAQQBBzOQAQXRBABC2AiAAQQFB2OQAQRBBABC2AiABQdz2CSgCADYCJEHgigEgAUEkakEAEOQBIgMgABCZDiAAEBshAgNAIAIEQCACQdjkAEEAEG0oAgxFBEAgAyACECBBARCPASIEQdjkAEEQQQEQNRogBCgCECACNgIMIAJB2OQAQQAQbSAENgIMCyAAIAIQHCECDAELCyAAEBshBANAIAQEQCAEQdjkAEEAEG0oAgwhBSAAIAQQLSECA0AgAgRAAkAgAkFQQQAgAigCAEEDcUECRxtqKAIoQdjkAEEAEG0oAgwiBiAFRg0AIAUgBkkEQCADIAUgBkEAQQEQYBoMAQsgAyAGIAVBAEEBEGAaCyAAIAIQMCECDAELCyAAIAQQHCEEDAELCyADEDghAiABQgA3AzAgAUIANwMoIAIEQEEAQQAgAkEEEIoBIQQgASACNgI0IAEgBDYCKAsgAUFAa0IANwMAIAFCADcDOCABQbQDNgJMIAFBswM2AkhBuPwIKAIAIQogAxAbIQYDQAJAIAYEQCAGQX8gASgCTBEAAA0BIAFB0ABqIgJBABD6BSABIAEoAjA2AiAgAiABQSBqEPkFIAMgAhD4BSICQQEQlgEhCCAAIAJBARCWASIFQczkAEEMQQAQNRogBUHM5ABBABBtQQE6AAggAyAGIAggAUE4ahD3BSELIAgQGyEEA0ACQCAEBEAgBCgCECgCDCIJKAIAQQNxQQFGBEAgBSAJQQEQhgEaDAILIAkQGyECA0AgAkUNAiAFIAJBARCGARogCSACEBwhAgwACwALIAVBABC2AyECIAAgBUEAEJgOIAFBKGogBRBVIAMgCBC6AUGM4QotAABFDQMgASALNgIUIAEgAjYCGCABIAEoAjBBAWs2AhAgCkHi9QMgAUEQahAeGgwDCyAIIAQQHCEEDAALAAsCQEGM4QotAABFBEAgASgCMCECDAELIAAQOCEEIAAQugIhBSABKAIwIQIgASAAECA2AgwgASACNgIIIAEgBTYCBCABIAQ2AgAgCkGd+wMgARAeGgsgAxC7ASAAQQBBzOQAEOwHIABBAUHY5AAQ7AcgAUE4ahCmCCABQdAAahBfIAcgAjYCDCABQShqEKUIIQIMAgsgAyAGEBwhBgwACwALIAFB4ABqJAAgAiEEIAcoAgxBAUYEQCAAEPMFDQUMAwsgACgCECgCCCgCVA0BIAdBAToAHEEAIQMDQCAHKAIMIANLBEAgBCADQQJ0aigCACIGQawrQZgCQQEQNRpBAUHgABAZIQUgBigCECIBIAU2AgggBSAAKAIQIgIoAggiCCsDADkDACAFIAgrAxg5AxggASACKAKQATYCkAEgASACLQBzOgBzIAEgAigCdDYCdCABIAIoAvgBNgL4ASABIAIoAvwBNgL8ASABIAIoAvQBNgL0ASADQQFqIQMgBhDzBUUNAQwGCwsgABA4QQF0QQgQGSEDIAAQGyEBA0AgAQRAIAEoAhAiAiADNgKUASADIAIrAxBEAAAAAAAAUkCjOQMAIAMgAisDGEQAAAAAAABSQKM5AwggA0EQaiEDIAAgARAcIQEMAQsLIAcoAgwgBCAAIAdBEGoQ/QUgABAbKAIQKAKUASECIAAQGyEDIAIhAQNAIAMEQCADKAIQIgVBADYClAEgBSABKwMARAAAAAAAAFJAojkDECAFIAErAwhEAAAAAAAAUkCiOQMYIAFBEGohASAAIAMQHCEDDAELCyACEBhBACEBIAcoAgwhBUEAIQMDQCADIAVGBEAgACgCECABNgK0ASABQQFqQQQQGSEBIAAoAhAgATYCuAFBACECQQEhAQNAIAIgBUYNBSAEIAJBAnRqKAIAIQZBASEDA0AgBigCECIIKAK0ASADTgRAIANBAnQiCSAIKAK4AWooAgAQmg4hCCAAKAIQKAK4ASABQQJ0aiAINgIAIAYoAhAoArgBIAlqKAIAIAgQkg4gA0EBaiEDIAFBAWohAQwBCwsgAkEBaiECDAALAAUgBCADQQJ0aigCACgCECgCtAEgAWohASADQQFqIQMMAQsACwALQfidA0G1wQFBywNBix8QAAALIAAQ8wUNAgtBACEDA0AgBygCDCADSwRAIAQgA0ECdGoiASgCABCiCCAAIAEoAgAQugEgA0EBaiEDDAELCyAEEBgLIAAQuAMMAQsgBBAYCyAHQTBqJAALIAEBfyAAKAIQIgAtAAggAUEATgRAIAAgAToACAtBAEcLDAAgASAAQQEQhgEaCyUBAX8gACgCECIAKAKwASABQQBOBEAgACABQQBHNgKwAQtBAEcLNgECfEEBQX9BACAAKAIAIgArAwggACsDAKAiAiABKAIAIgArAwggACsDAKAiA2QbIAIgA2MbCxEAIAAgAUHohAtB5IQLEIIHCy8AIAIgACgCACgCEEECdGooAgAiACACIAEoAgAoAhBBAnRqKAIAIgFLIAAgAUlrCx0AIAEoAgAoAgAiASAAKAIAKAIAIgBKIAAgAUprC3EBA38CQCACRQ0AIAAoAggiAyAAKAIETw0AIAAoAgAgA2oiBS0AACEDA0ACQCABIAM6AAAgA0EKRiAEQQFqIgQgAk5yDQAgAUEBaiEBIAUtAAEhAyAFQQFqIQUgAw0BCwsgACAAKAIIIARqNgIICyAEC3MBA38DQCAAIgEoAhAoAngiAA0ACwJ/QQAgAUFQQQAgASgCAEEDcSIAQQJHG2ooAigoAhAiAigC9AEiAyABQTBBACAAQQNHG2ooAigoAhAiASgC9AEiAEoNABpBASAAIANKDQAaIAIoAvgBIAEoAvgBSAsLBwAgABDsAwtvAgJ8AX8gASgCACgCECgCYCEBAkAgACgCACgCECgCYCIEBEBBfyEAIAFFDQEgBCsDGCICIAErAxgiA2QNAUEBIQAgAiADYw0BQX8hACAEKwMgIgIgASsDICIDZA0BIAIgA2MPCyABQQBHIQALIAAL9wcCD38CfCMAQeADayIEJAAgBCAEQagCajYCIEEBIQICQCAAKAIAIgkoAhAiBSgCpAEiDEEPcSIGIAEoAgAiACgCECIDKAKkAUEPcSIBSQ0AAkAgASAGSQ0AIAkQ/wMiAUEwQQAgASgCACIIQQNxIgZBA0cbaigCKCgCECIKKAL0ASABQVBBACAGQQJHG2ooAigoAhAiDSgC9AFrIgYgBkEfdSIGcyAGayIOIAAQ/wMiBkEwQQAgBigCACIPQQNxIgtBA0cbaigCKCgCECIQKAL0ASAGQVBBACALQQJHG2ooAigoAhAiCygC9AFrIgcgB0EfdSIHcyAHayIHSQ0AIAcgDkkNASAKKwMQIA0rAxChmSIRIBArAxAgCysDEKGZIhJjDQAgESASZA0BIAhBBHYiCCAPQQR2IgpJDQAgCCAKSw0BAkAgBS0ALARAIAkhAgwBCyAJIAEgBS0AVBsiAigCECIFKAKkASEMCyAMQSBxBEAgBEGoAmoiByAFQbgBEB8aIARBEGoiCCACQTAQHxogBCAHNgIgQShB2AAgBCgCEEEDcSIBQQNGGyAIaiACQVBBACACKAIAQQNxIgNBAkcbaigCKDYCAEEoQXggAUECRhsgCGogAkEwQQAgA0EDRxtqKAIoNgIAIARBuAJqIAIoAhBBOGpBKBAfGiAEQeACaiACKAIQQRBqQSgQHxogBCACNgKgAyAEQQE6AJgDIAAoAhAhAyAHIQUgCCECCwJAIAMtACwEQCAAIQEMAQsgACAGIAMtAFQbIgEoAhAhAwsgAy0ApAFBIHEEQCAEQfAAaiIHIANBuAEQHxogASgCACEDIAQgASgCKDYCCCAEQQhqIAQgA0EDcSIDQQNGIgUbIAFBUEEAIANBAkcbaigCKDYCACAEIAFBAEEwIAUbaigCKDYCCCAEQYABaiABKAIQIgNBOGpBKBAfGiAEQagBaiADQRBqQSgQHxogBCABNgLoASAEQQE6AOABIAIoAhAhBSAHIQMLIAUtACwhAgJAIAMtACxBAXEEQCACQQFxRQ0CIAUrABAiESADKwAQIhJjDQIgESASZA0BIAUrABgiESADKwAYIhJjDQIgESASZCECCyACDQIgBS0AVCECIAMtAFRBAXEEQCACQQFxRQ0CIAUrADgiESADKwA4IhJjDQIgESASZA0BIAUrAEAiESADKwBAIhJjDQIgESASZCECCyACDQIgCSgCECgCpAFBwAFxIgEgACgCECgCpAFBwAFxIgJJDQEgASACSw0AQX8hAiAJKAIAQQR2IgEgACgCAEEEdiIASQ0CIAAgAUkhAgwCC0EBIQIMAQtBfyECCyAEQeADaiQAIAILCQAgASAAEI0BCxYAIAEgAiAAEMMHRQRAQQAPCyABEDwLJQAgACgCACgCECgC+AEiACABKAIAKAIQKAL4ASIBSiAAIAFIawsSACABQcO/ASACKAIIQQEQNRoLEgAgAUHSvwEgAigCBEEBEDUaCxIAIAFBs78BIAIoAgBBARA1GgsZAEF/IAAoAgAiACABKAIAIgFLIAAgAUkbCyUAIAAoAgAoAhAoAvQBIgAgASgCACgCECgC9AEiAUogACABSGsLJQAgASgCACgCECgC9AEiASAAKAIAKAIQKAL0ASIASiAAIAFKawtAAgJ8AX8gACsDACICIAErAwAiA2QEQCAAKwMIIAErAwhlRQ8LIAIgA2MEf0EAQX8gACsDCCABKwMIZhsFQQALC9wBAQV/IAAoAighBQNAIAUoAgQhASAFKAIAIANLBEAgASADQRhsakEIaiEBQQAhAgNAIAEoAgggAksEQCABIAIQ2wgaIAEgAhCZBhogAkEBaiECDAELCyABQgA3AgQgASgCABAYIAFCADcCCCABQgA3AgAgA0EBaiEDDAELCyABEBggBRAYIABBGGohAiAAKAIgIQECQANAIAEgBE0NASACIAQQXRogBCAAKAIgIgFJIARBAWohBA0AC0HCvANBkoMBQTVBpikQAAALIABCADcCHCAAKAIYEBggABAYCyABAnxBAUF/QQAgACsDACICIAErAwAiA2MbIAIgA2QbCw8AIAAoAhAQmwEaIAAQGAtaAgF8AX9BfyAAKwMIIAErAwihIgJESK+8mvLXej5kIAJESK+8mvLXer5jGyIDBH8gAwVBfyAAKwMAIAErAwChIgJESK+8mvLXej5kIAJESK+8mvLXer5jGwsLWgIBfAF/QX8gACsDACABKwMAoSICREivvJry13o+ZCACREivvJry13q+YxsiAwR/IAMFQX8gACsDCCABKwMIoSICREivvJry13o+ZCACREivvJry13q+YxsLCyMAIAAoAhAoAgBBBHYiACABKAIQKAIAQQR2IgFLIAAgAUlrCxQAIAAoAhBBHGogAEcEQCAAEBgLC44BAgF/BHwjAEEwayIDJAAgAyABKAIIIgQ2AiQgAyAENgIgIABB6YMF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BEGk3AQgA0HgAWoQgQEgA0GUgwsoAgA2AtABIAMgBiAHIA2goiIGOQPAASADIAogCyAMoKIiBzkDyAEgBEHD3QQgA0HAAWoQgQEgAyABNgKwASAEQZ7YAyADQbABahCBASAAIAQQnAYQGhogARAYIAIEQCADQYgBaiIBIAAoAhBBOGpBKBAfGiABQwAAAAAQwAMhASADQgA3A4ABIANCADcDeCADQgA3A3AgAEHQ5gQgA0HwAGoQHSADQoCAgICAgID4PzcDYCADIAg5A1ggAyAFOQNQIABByNwEIANB0ABqEB0gA0FAayAAKALoArK7OQMAIANCADcDOCADQgA3AzAgAEGk3AQgA0EwahAdIANBlIMLKAIANgIgIAMgBjkDECADIAc5AxggAEHD3QQgA0EQahAdIAMgATYCACAAQZ7YAyADEB0gARAYCyADQeACahBfIANB8AJqJAAL7QMCA38GfCMAQdABayIDJAAgAigCACEEIAIoAgQiBSsDECEGIAMgBSgCADYCsAEgAyAGOQOoASADIAQ2AqABIABB7YcEIANBoAFqEB1BlIMLQZCDCygCAEEJazYCAAJ8IAErAwAiBiACLQAwIgRB7ABGDQAaIARB8gBGBEAgBiACKwMgoQwBCyAGIAIrAyBEAAAAAAAA4L+ioAshBiAAKwPwAyEHIAArA4AEIQggASsDCCEJIAArA+gDIQogACsD+AMhCyADQfgAaiIBIAAoAhBBEGpBKBAfGiABQwAAAAAQwAMhASADQgA3A8gBIANCADcDwAEgAigCBCgCACEEIAIoAgAhBSADQgA3A3AgA0KAgICAgICA6D83A2ggAyAFNgJkIAMgBDYCYCADQcABaiIEQfXlAyADQeAAahCBASADIAIoAgQrAxAgACsD6AOiOQNQIARB5a4EIANB0ABqEIEBIANBQGsgACgC6AKyuzkDACADQgA3AzggA0IANwMwIARBpNwEIANBMGoQgQEgA0GUgwsoAgA2AiAgAyAKIAYgC6CiOQMQIAMgByAJIAigojkDGCAEQcPdBCADQRBqEIEBIAMgATYCACAEQZ7YAyADEIEBIAAgBBCcBhAaGiAEEF8gARAYIANB0AFqJAALHAAgAEGCuwQQGhpBkIMLQZCDCygCAEEFajYCAAscACAAQfC6BBAaGkGQgwtBkIMLKAIAQQVrNgIA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NBDoBDYCOAJAIABBrCtBAEEBEDUEQCAAKAIQKAIIDQELIAEtAJsBQQRxDQBBk7kEQQAQNgwBCyABQQA2AiQgASABKAKYAUGAgIDAAHI2ApgBIAIgABC6BhogARCPBCACEJ0ECyADQRBqJAAgAhCdBCACEBgPCyAAKAIAKAKgARDvCAsLGwAgAEH41gMQGhogACABEIwBIABBgN4EEBoaC2gBAn8gAEG1ngEQGhogAEEAQQAQ4gQgAEGszQMQGhoDQCACIANHBEAgACABIANBBHRqIgQrAwAQfSAAQSwQZyAAIAQrAwiaEH0gA0EBaiIDIAJGDQEgAEEgEGcMAQsLIABB6d0EEBoaCwurmQqVAwBBgAgL5oIF/9j/AMXQ08YAfgB7JXN9ACAtdGFncyB7JWQlcyVwfQAgJS4wZn0AJXMgeyAlcyB9AHxlZGdlbGFiZWx8ACAtZm9udCB7AHF1YXJ0egBpZHggPT0gc3oAY250ID09IHN6AGxvegBncmFwaHZpegBndndyaXRlX25vX3oAcG9ydGhveHkAc2NhbGV4eQAvc3ZnL25hdnkAaW52ZW1wdHkAbm9kZV9zZXRfaXNfZW1wdHkAbm9kZXNfaXNfZW1wdHkAcmVmZXJlbmNlIHRvIGJpbmFyeSBlbnRpdHkAYXN5bmNocm9ub3VzIGVudGl0eQBpbmNvbXBsZXRlIG1hcmt1cCBpbiBwYXJhbWV0ZXIgZW50aXR5AGVudGl0eSBkZWNsYXJlZCBpbiBwYXJhbWV0ZXIgZW50aXR5AGNhbm5vdCBzdXNwZW5kIGluIGV4dGVybmFsIHBhcmFtZXRlciBlbnRpdHkAWE1MIG9yIHRleHQgZGVjbGFyYXRpb24gbm90IGF0IHN0YXJ0IG9mIGVudGl0eQB1bmRlZmluZWQgZW50aXR5AHBhcnNlci0+bV9vcGVuSW50ZXJuYWxFbnRpdGllcyA9PSBvcGVuRW50aXR5AHBhcnNlci0+bV9vcGVuVmFsdWVFbnRpdGllcyA9PSBvcGVuRW50aXR5AHBhcnNlci0+bV9vcGVuQXR0cmlidXRlRW50aXRpZXMgPT0gb3BlbkVudGl0eQBpbmZpbml0eQBsaXN0LT5zaXplIDwgbGlzdC0+Y2FwYWNpdHkAZmFudGFzeQBTcGFyc2VNYXRyaXhfY29vcmRpbmF0ZV9mb3JtX2FkZF9lbnRyeQAvc3ZnL2l2b3J5AG91dCBvZiBtZW1vcnkARmVicnVhcnkASmFudWFyeQBndnBsdWdpbl9kb3RfbGF5b3V0X0xUWF9saWJyYXJ5AGd2cGx1Z2luX25lYXRvX2xheW91dF9MVFhfbGlicmFyeQBndnBsdWdpbl9jb3JlX0xUWF9saWJyYXJ5AGdhdGhlcl90aW1lX2VudHJvcHkAbm9kZXNfY29weQBhbGJhbnkASnVseQBTcGFyc2VNYXRyaXhfbXVsdGlwbHkAZXF1YWxseQBhc3NlbWJseQBzdW1tZXJza3kAc2h5AHNhdGlzZnkAYmVhdXRpZnkAbm9qdXN0aWZ5AENsYXNzaWZ5AC9zdmcvbGlnaHRncmV5AC9zdmcvZGltZ3JleQAvc3ZnL2RhcmtncmV5AC9zdmcvbGlnaHRzbGF0ZWdyZXkAL3N2Zy9kYXJrc2xhdGVncmV5AC9zdmcvc2xhdGVncmV5AHdlYmdyZXkAeDExZ3JleQAvc3ZnL2dyZXkAbW92ZSB0byBmcm9udCBsb2NrIGluY29uc2lzdGVuY3kAZXh0cmFjdF9hZGphY2VuY3kAbWVyZ2Vfb25ld2F5AGFycmF5AGFsbG9jQXJyYXkAL3N2Zy9saWdodGdyYXkAL3N2Zy9kaW1ncmF5AC9zdmcvZGFya2dyYXkAL3N2Zy9saWdodHNsYXRlZ3JheQAvc3ZnL2RhcmtzbGF0ZWdyYXkAL3N2Zy9zbGF0ZWdyYXkAd2ViZ3JheQB4MTFncmF5AC9zdmcvZ3JheQBUaHVyc2RheQBUdWVzZGF5AFdlZG5lc2RheQBTYXR1cmRheQBTdW5kYXkATW9uZGF5AEZyaWRheQBNYXkALi4vLi4vbGliL2NncmFwaC9ncmFtbWFyLnkALi4vLi4vbGliL2NvbW1vbi9odG1scGFyc2UueQAlbS8lZC8leQBwb3J0aG95eABwb3J0aG9feXgAeHh4AGJveAB2aWV3Qm94AGNoa0JvdW5kQm94AC9NZWRpYUJveABnZXRfZWRnZV9sYWJlbF9tYXRyaXgAaWRlYWxfZGlzdGFuY2VfbWF0cml4AG11c3Qgbm90IHVuZGVjbGFyZSBwcmVmaXgAdW5ib3VuZCBwcmVmaXgAaHRtbGxleABtYXgAIyUwMnglMDJ4JTAyeAAjJTJ4JTJ4JTJ4JTJ4ACMlMXglMXglMXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweAByYXJyb3cAbGFycm93AEhlbHZldGljYS1OYXJyb3cAYXJyb3dfbGVuZ3RoX2Nyb3cAL3N2Zy9zbm93AHNwcmluZ19lbGVjdHJpY2FsX2VtYmVkZGluZ19zbG93AC9zdmcvbGlnaHR5ZWxsb3cAL3N2Zy9ncmVlbnllbGxvdwAvc3ZnL2xpZ2h0Z29sZGVucm9keWVsbG93AC9zdmcveWVsbG93AGZhdGFsIGVycm9yIC0gc2Nhbm5lciBpbnB1dCBidWZmZXIgb3ZlcmZsb3cAZmxleCBzY2FubmVyIHB1c2gtYmFjayBvdmVyZmxvdwBjb3VyaWVybmV3AFNwcmluZ1Ntb290aGVyX25ldwBUcmlhbmdsZVNtb290aGVyX25ldwBkaWFnX3ByZWNvbl9uZXcAUXVhZFRyZWVfbmV3AFN0cmVzc01ham9yaXphdGlvblNtb290aGVyMl9uZXcAbiAmJiBuZXcAc2tldwBzdHJ2aWV3AC9zdmcvaG9uZXlkZXcAIC1hbmNob3IgdwBzb3J0dgBwb3Y6cG92AE5vdgBpbnYAZXF1aXYAcGl2AG5vbmFtZS5ndgBHRF9yYW5rKGcpW3JdLmF2ID09IEdEX3JhbmsoZylbcl0udgBjYyVzXyV6dQBjYyVzKyV6dQAvc3ZnL3BlcnUAbnUAbXUAJWMlbGx1AFRodQB0YXUAVGF1AE51AE11AF9wb3J0XyVzXyglZClfKCVkKV8ldQBOdW1iZXIgb2YgaXRlcmF0aW9ucyA9ICV1AE51bWJlciBvZiBpbmNyZWFzZXMgPSAldQBwbGFpbnRleHQAc3RyZXNzd3QAaW5wdXQAdGV4dGxheW91dABkb3RfbGF5b3V0AG5lYXRvX2xheW91dABpbml0TGF5b3V0AGNsdXN0AG1hcENsdXN0AGxhYmVsanVzdABzY0FkanVzdABBdWd1c3QAZWRnZXNmaXJzdABub2Rlc2ZpcnN0AG1heGltYWxfaW5kZXBlbmRlbnRfZWRnZV9zZXRfaGVhdmVzdF9lZGdlX3Blcm5vZGVfc3VwZXJub2Rlc19maXJzdABleGlzdAByZWFsaWduTm9kZWxpc3QAYXBwZW5kTm9kZWxpc3QAZGVmYXVsdGRpc3QAbWluZGlzdABwb3dlcl9kaXN0AGdyYXBoX2Rpc3QAYXZnX2Rpc3QAZ2V0RWRnZUxpc3QAaXF1ZXN0AGxvd2FzdABzcHJpbmdfZWxlY3RyaWNhbF9lbWJlZGRpbmdfZmFzdABndl9zb3J0AHZpZXdwb3J0AHRhaWxwb3J0AHVuZXhwZWN0ZWQgcGFyc2VyIHN0YXRlIC0gcGxlYXNlIHNlbmQgYSBidWcgcmVwb3J0AGhlYWRwb3J0AGh0bWxfcG9ydABpbnNlcnQAUlRyZWVJbnNlcnQAZmluZFNWZXJ0AHN0YXJ0AHBhcnQAZXN0aW1hdGVfdGV4dF93aWR0aF8xcHQAcXVvdAB/cm9vdABub3QAbWFrZV92bl9zbG90AGVtaXRfeGRvdAB4ZG90Onhkb3QAZXBzOnhkb3QAc3ZnOnhkb3QAanBnOnhkb3QAcG5nOnhkb3QAanBlZzp4ZG90AGdpZjp4ZG90AGpwZTp4ZG90AHhkb3QxLjQ6eGRvdAB4ZG90MS4yOnhkb3QAc2RvdABtaWRkb3QAZ3Y6ZG90AHBsYWluLWV4dDpkb3QAZG90OmRvdABlcHM6ZG90AGNhbm9uOmRvdABwbGFpbjpkb3QAc3ZnOmRvdABqcGc6ZG90AHBuZzpkb3QAanBlZzpkb3QAZ2lmOmRvdABqcGU6ZG90AH9ib3QAZG9Eb3QAb2JqbGlzdF9mcm9udABwb2ludHNfZnJvbnQAY29sb3JzZWdzX2Zyb250AG5vZGVsaXN0X3BvcF9mcm9udABwYnNfc2l6ZV9mcm9udABzcGFuLT5mb250AHZhZ3hicHJpbnQAeGRvdF9wb2ludABkZWNpZGVfcG9pbnQAVW5zYXRpc2ZpZWQgY29uc3RyYWludAB0cmFuc3BhcmVudABjb21wb25lbnQAaW52YWxpZCBhcmd1bWVudABjb21tZW50AGp1bmsgYWZ0ZXIgZG9jdW1lbnQgZWxlbWVudABjZW50AGkgPT0gZWNudABhcmlhbG10AGx0AGNpcmN1aXQAcG9seV9pbml0AE11bHRpbGV2ZWxfaW5pdABuc2xpbWl0AG1jbGltaXQAUG9ydHJhaXQAbGlnaHQAdmlydHVhbF93ZWlnaHQAbGhlaWdodABLUF9SaWdodABCb29rbWFuLUxpZ2h0AGd0AEtQX0xlZnQAY2hhcnNldABpbnNldABiaXRhcnJheV9yZXNldABzdWJzZXQAYml0YXJyYXlfc2V0AG1hdHJpeF9zZXQAbm9kZWxpc3Rfc2V0AGVkZ2VfbGlzdF9zZXQAdHJhcHNfc2V0AG5vZGVzX3NldABzY2FybGV0AC9zdmcvZGFya3Zpb2xldAAvc3ZnL2JsdWV2aW9sZXQAL3N2Zy92aW9sZXQAVHJlYnVjaGV0AGFneGdldAB0YWlsdGFyZ2V0AGxhYmVsdGFyZ2V0AGVkZ2V0YXJnZXQAaGVhZHRhcmdldABiaXRhcnJheV9nZXQAZGVnbGlzdF9nZXQAbm9kZWxpc3RfZ2V0AGFkal9saXN0X2dldABzZWdfbGlzdF9nZXQAc2FtZV9saXN0X2dldABlZGdlX2xpc3RfZ2V0AG5vZGVfbGlzdF9nZXQAc2ZvbnRfZ2V0AGVkZ2Vfc2V0X2dldAByb3dzX2dldAB0c3RzX2dldABwb2ludHNfZ2V0AHBhaXJzX2dldAB0cmFwc19nZXQAY2VsbHNfZ2V0AGNvbG9yc2Vnc19nZXQAYm94ZXNfZ2V0AHRyaWFuZ2xlc19nZXQAY3ljbGVzX2dldABxbm9kZXNfZ2V0AGVzdGFja19nZXQAaW50X3N0YWNrX2dldABkZnNfc3RhY2tfZ2V0AG5vZGVfc3RhY2tfZ2V0AGJlemllcl9wYXRoX2dldABub2RlX3F1ZXVlX2dldABzdHlsZXNoZWV0AHN0cmljdABhZ2NvcHlkaWN0AGFnbWFrZWRhdGFkaWN0AHJlYy0+ZGljdCA9PSBkYXRhZGljdAB3cml0ZV9kaWN0AHNlY3QAZW5jb2Rpbmcgc3BlY2lmaWVkIGluIFhNTCBkZWNsYXJhdGlvbiBpcyBpbmNvcnJlY3QAYXNwZWN0AGxheWVyc2VsZWN0AEtQX1N1YnRyYWN0AFF1YWRUcmVlX3JlcHVsc2l2ZV9mb3JjZV9pbnRlcmFjdABjb21wYWN0AE9jdAByZXF1ZXN0ZWQgZmVhdHVyZSByZXF1aXJlcyBYTUxfRFREIHN1cHBvcnQgaW4gRXhwYXQAbGFiZWxmbG9hdABsYWJlbF9mbG9hdABTcGFyc2VNYXRyaXhfZnJvbV9jb29yZGluYXRlX2Zvcm1hdAAvc3ZnL3doZWF0AG9iamxpc3RfYXQAZGVnbGlzdF9hdABub2RlbGlzdF9hdABhZGpfbGlzdF9hdABzZWdfbGlzdF9hdABzYW1lX2xpc3RfYXQAZWRnZV9saXN0X2F0AG5vZGVfbGlzdF9hdABzZm9udF9hdABlZGdlX3NldF9hdAByb3dzX2F0AHRzdHNfYXQAcG9pbnRzX2F0AHBhaXJzX2F0AHRyYXBzX2F0AGh0ZXh0c3BhbnNfYXQAY2VsbHNfYXQAY29sb3JzZWdzX2F0AGJveGVzX2F0AHRyaWFuZ2xlc19hdABjeWNsZXNfYXQAcW5vZGVzX2F0AGVzdGFja19hdABpbnRfc3RhY2tfYXQAZGZzX3N0YWNrX2F0AG5vZGVfc3RhY2tfYXQAbm9kZV9xdWV1ZV9hdABTYXQAQWdyYXBoaW5mb190AEFnZWRnZWluZm9fdABBZ25vZGVpbmZvX3QAXHQAZmxhdGluZGV4KGFnaGVhZChlKSkgPCBNLT5ucm93cwBtaW51cwBvcGx1cwBoZWFydHMAc2FtcGxlcG9pbnRzAGRpcmVkZ2Vjb25zdHJhaW50cwBsZXZlbCBhc3NpZ25tZW50IGNvbnN0cmFpbnRzAHh5IHBzZXVkby1vcnRob2dvbmFsIGNvbnN0cmFpbnRzAHl4IHBzZXVkby1vcnRob2dvbmFsIGNvbnN0cmFpbnRzAHh5IG9ydGhvZ29uYWwgY29uc3RyYWludHMAeXggb3J0aG9nb25hbCBjb25zdHJhaW50cwBsaW5lIHNlZ21lbnRzAHNldF9jZWxsX2hlaWdodHMAcmVjdHMAYWNjb3VudGluZ1JlcG9ydFN0YXRzAGVudGl0eVRyYWNraW5nUmVwb3J0U3RhdHMAWmFwZkRpbmdiYXRzAHJlbWluY3Jvc3MAY29tcHJlc3MAZ3Z1c2Vyc2hhcGVfZmlsZV9hY2Nlc3MAYnJhc3MAY2xhc3MAYXBwbHlhdHRycwBhZ21ha2VhdHRycwBiaW5kYXR0cnMAcGFyc2VfbGF5ZXJzAG1rQ2x1c3RlcnMAcm91bmRfY29ybmVycwBtYWtlX2JhcnJpZXJzAGNkYXRhLm50b3BsZXZlbCA9PSBhZ25ub2RlcyhnKSAtIGNkYXRhLm52YXJzAGNhbm5vdCByZWFsbG9jIG9wcwBjYW5ub3QgcmVhbGxvYyBwbmxwcwBlcHMAY29yZV9sb2FkaW1hZ2VfcHMAZXBzOnBzAHBzMjpwcwAobGliKTpwcwBndl90cmltX3plcm9zAGFneGJ1Zl90cmltX3plcm9zAHRleGd5cmVoZXJvcwBpbWFnZXBvcwB0aW5vcwBzZXRFZGdlTGFiZWxQb3MAU2V0dGluZyBpbml0aWFsIHBvc2l0aW9ucwB4bGludGVyc2VjdGlvbnMAY29sdW1ucwBub2Rlc19jb250YWlucwBkZWphdnVzYW5zAG5pbWJ1c3NhbnMAbGliZXJhdGlvbnNhbnMAZnJlZXNhbnMAT3BlblNhbnMAb2Zmc2V0ID09IG5fdGVybXMAZGl0ZW1zAGRpYW1zAGZsYXRpbmRleChhZ3RhaWwoZSkpIDwgTS0+bmNvbHMAY2Fubm90IHJlYWxsb2MgZHEucG5scwBjYW5ub3QgcmVhbGxvYyBwbmxzAGxldmVscwBmb3JjZWxhYmVscwBkaWFnb25hbHMAbWVyZ2VfcmFua3MAc3BsaXRCbG9ja3MAaW52aXMAY2Fubm90IHJlYWxsb2MgdHJpcwBzZXRfY2VsbF93aWR0aHMAQ2FsY3VsYXRpbmcgc2hvcnRlc3QgcGF0aHMAeWVzAHNob3dib3hlcwBiZWF1dGlmeV9sZWF2ZXMAYXR0YWNoX2VkZ2VfbGFiZWxfY29vcmRpbmF0ZXMAcG9seWxpbmVzAHNwbGluZXMAb3J0aG9nb25hbCBsaW5lcwB0ZXhneXJldGVybWVzAG90aW1lcwBUaW1lcwBmb250bmFtZXMAcHJlZml4IG11c3Qgbm90IGJlIGJvdW5kIHRvIG9uZSBvZiB0aGUgcmVzZXJ2ZWQgbmFtZXNwYWNlIG5hbWVzAFNwYXJzZU1hdHJpeF9zdW1fcmVwZWF0X2VudHJpZXMAcGVyaXBoZXJpZXMAR2V0QnJhbmNoZXMAZiA8IGdyYXBoW2pdLm5lZGdlcwBtaW5tYXhfZWRnZXMAZXhjaGFuZ2VfdHJlZV9lZGdlcwBtYWtlU3RyYWlnaHRFZGdlcwB1bmRvQ2x1c3RlckVkZ2VzAGNvbXBvdW5kRWRnZXMAbWVyZ2VfdHJlZXMAX19jbHVzdGVybm9kZXMAYWdubm9kZXMATkRfaWQobnApID09IG5fbm9kZXMATG9hZE5vZGVzAHNpZGVzAHNwYWRlcwB2ZXJ0aWNlcwBjb29yZHMAc2V0Ym91bmRzAG1kcwBjZHMAbWFrZVNlbGZBcmNzAGVtaXRfZWRnZV9ncmFwaGljcwBjbHVicwBjb25zb2xhcwAlbGYlMnMAClN0cmluZyBzdGFydGluZzo8JS44MHMAClN0cmluZyBzdGFydGluZzoiJS44MHMAICUuKnMAJXMlcwBleHBhdDogQWNjb3VudGluZyglcCk6IERpcmVjdCAlMTBsbHUsIGluZGlyZWN0ICUxMGxsdSwgYW1wbGlmaWNhdGlvbiAlOC4yZiVzACUuKnMlYyVzACAlczolcwBfXyVkOiVzAC8lcy8lcwAlcy0lcwAsJXMAIGZvbnQtZmFtaWx5PSIlcwAiIHN0cm9rZS1kYXNoYXJyYXk9IiVzACIgY2xhc3M9IiVzAHBvbHkgJXMAKCglZiwlZiksKCVmLCVmKSkgJXMgJXMAY29sb3IgJXMAcm9vdCA9ICVzACBUaXRsZTogJXMAInN0cmljdCI6ICVzAGNvdXIAdXRyAGFwcGVuZGF0dHIAYWRkYXR0cgBiZWdpbnN0cgBmc3RyAHN0cnZpZXdfc3RyAHBvdl9jb2xvcl9hc19zdHIAdnBzYyE9bnVsbHB0cgBiZW5kVG9TdHIAdWFycgBjcmFycgBsYXJyAGhhcnIAZGFycgB1QXJyAHJBcnIAbEFycgBoQXJyAGRBcnIAQXByAFNwYXJzZU1hdHJpeF9tdWx0aXBseV92ZWN0b3IAdGVybWluYXRvcgBpbnN1bGF0b3IAaW50ZXJuYWxFbnRpdHlQcm9jZXNzb3IAdGV4Z3lyZWN1cnNvcgBzeW50YXggZXJyb3IAbW9uZXlfZ2V0IGVycm9yAEVycm9yAHJmbG9vcgBsZmxvb3IAbGFiZWxmb250Y29sb3IAcGVuY29sb3IAZmlsbGNvbG9yAGJnY29sb3IAcm93IG1ham9yAGNvbHVtbiBtYWpvcgBuZWlnaGJvcgBzdHlsZV9vcgBtcgByYW5rZGlyAHBhZ2VkaXIAbGF5ZXIAdXBwZXIgPj0gbG93ZXIATm9kZUNvdmVyAC9zdmcvc2lsdmVyAGNsdXN0ZXIAZXhwYW5kQ2x1c3RlcgBycHJvbW90ZXIAbHByb21vdGVyAGNlbnRlcgBtYXhpdGVyAHBhcnRpYWwgY2hhcmFjdGVyACEgcm9vdFBhcnNlci0+bV9wYXJlbnRQYXJzZXIAZGtncmVlbmNvcHBlcgBjb29sY29wcGVyAGd2X3NvcnRfY29tcGFyX3dyYXBwZXIAdGFwZXIAb3ZlcmxhcF9iZXppZXIAZmlnX2JlemllcgBjb3VyaWVyAENvdXJpZXIAaGllcgBkYWdnZXIARGFnZ2VyAG91dHB1dG9yZGVyAHBvc3RvcmRlcgBmbGF0X3Jlb3JkZXIAY2VsbGJvcmRlcgBmaXhMYWJlbE9yZGVyAGN5bGluZGVyAC9zdmcvbGF2ZW5kZXIAcmVuZGVyAGZvbGRlcgBjbHVzdGVyX2xlYWRlcgBORF9VRl9zaXplKG4pIDw9IDEgfHwgbiA9PSBsZWFkZXIAT2N0b2JlcgByZWZlcmVuY2UgdG8gaW52YWxpZCBjaGFyYWN0ZXIgbnVtYmVyAE5vdmVtYmVyAFNlcHRlbWJlcgBEZWNlbWJlcgBtYWNyAGJyAHN0YXIAZmVsZHNwYXIAcmVndWxhcgBodGV4dHNwYW5zX2NsZWFyAGlvc19iYXNlOjpjbGVhcgBicnZiYXIATWFyAFxyAE5EX3JhbmsodikgPT0gcgBzdHJlcQBzdHJ2aWV3X2VxAHN0cnZpZXdfc3RyX2VxAHN0cnZpZXdfY2FzZV9zdHJfZXEAc3Rydmlld19jYXNlX2VxAHZwACUlQmVnaW5Qcm9sb2cKL0RvdERpY3QgMjAwIGRpY3QgZGVmCkRvdERpY3QgYmVnaW4KCi9zZXR1cExhdGluMSB7Cm1hcmsKL0VuY29kaW5nVmVjdG9yIDI1NiBhcnJheSBkZWYKIEVuY29kaW5nVmVjdG9yIDAKCklTT0xhdGluMUVuY29kaW5nIDAgMjU1IGdldGludGVydmFsIHB1dGludGVydmFsCkVuY29kaW5nVmVjdG9yIDQ1IC9oeXBoZW4gcHV0CgolIFNldCB1cCBJU08gTGF0aW4gMSBjaGFyYWN0ZXIgZW5jb2RpbmcKL3N0YXJuZXRJU08gewogICAgICAgIGR1cCBkdXAgZmluZGZvbnQgZHVwIGxlbmd0aCBkaWN0IGJlZ2luCiAgICAgICAgeyAxIGluZGV4IC9GSUQgbmUgeyBkZWYgfXsgcG9wIHBvcCB9IGlmZWxzZQogICAgICAgIH0gZm9yYWxsCiAgICAgICAgL0VuY29kaW5nIEVuY29kaW5nVmVjdG9yIGRlZgogICAgICAgIGN1cnJlbnRkaWN0IGVuZCBkZWZpbmVmb250Cn0gZGVmCi9UaW1lcy1Sb21hbiBzdGFybmV0SVNPIGRlZgovVGltZXMtSXRhbGljIHN0YXJuZXRJU08gZGVmCi9UaW1lcy1Cb2xkIHN0YXJuZXRJU08gZGVmCi9UaW1lcy1Cb2xkSXRhbGljIHN0YXJuZXRJU08gZGVmCi9IZWx2ZXRpY2Egc3Rhcm5ldElTTyBkZWYKL0hlbHZldGljYS1PYmxpcXVlIHN0YXJuZXRJU08gZGVmCi9IZWx2ZXRpY2EtQm9sZCBzdGFybmV0SVNPIGRlZgovSGVsdmV0aWNhLUJvbGRPYmxpcXVlIHN0YXJuZXRJU08gZGVmCi9Db3VyaWVyIHN0YXJuZXRJU08gZGVmCi9Db3VyaWVyLU9ibGlxdWUgc3Rhcm5ldElTTyBkZWYKL0NvdXJpZXItQm9sZCBzdGFybmV0SVNPIGRlZgovQ291cmllci1Cb2xkT2JsaXF1ZSBzdGFybmV0SVNPIGRlZgpjbGVhcnRvbWFyawp9IGJpbmQgZGVmCgolJUJlZ2luUmVzb3VyY2U6IHByb2NzZXQgZ3JhcGh2aXogMCAwCi9jb29yZC1mb250LWZhbWlseSAvVGltZXMtUm9tYW4gZGVmCi9kZWZhdWx0LWZvbnQtZmFtaWx5IC9UaW1lcy1Sb21hbiBkZWYKL2Nvb3JkZm9udCBjb29yZC1mb250LWZhbWlseSBmaW5kZm9udCA4IHNjYWxlZm9udCBkZWYKCi9JbnZTY2FsZUZhY3RvciAxLjAgZGVmCi9zZXRfc2NhbGUgewogICAgICAgZHVwIDEgZXhjaCBkaXYgL0ludlNjYWxlRmFjdG9yIGV4Y2ggZGVmCiAgICAgICBzY2FsZQp9IGJpbmQgZGVmCgolIHN0eWxlcwovc29saWQgeyBbXSAwIHNldGRhc2ggfSBiaW5kIGRlZgovZGFzaGVkIHsgWzkgSW52U2NhbGVGYWN0b3IgbXVsIGR1cCBdIDAgc2V0ZGFzaCB9IGJpbmQgZGVmCi9kb3R0ZWQgeyBbMSBJbnZTY2FsZUZhY3RvciBtdWwgNiBJbnZTY2FsZUZhY3RvciBtdWxdIDAgc2V0ZGFzaCB9IGJpbmQgZGVmCi9pbnZpcyB7L2ZpbGwge25ld3BhdGh9IGRlZiAvc3Ryb2tlIHtuZXdwYXRofSBkZWYgL3Nob3cge3BvcCBuZXdwYXRofSBkZWZ9IGJpbmQgZGVmCi9ib2xkIHsgMiBzZXRsaW5ld2lkdGggfSBiaW5kIGRlZgovZmlsbGVkIHsgfSBiaW5kIGRlZgovdW5maWxsZWQgeyB9IGJpbmQgZGVmCi9yb3VuZGVkIHsgfSBiaW5kIGRlZgovZGlhZ29uYWxzIHsgfSBiaW5kIGRlZgovdGFwZXJlZCB7IH0gYmluZCBkZWYKCiUgaG9va3MgZm9yIHNldHRpbmcgY29sb3IgCi9ub2RlY29sb3IgeyBzZXRoc2Jjb2xvciB9IGJpbmQgZGVmCi9lZGdlY29sb3IgeyBzZXRoc2Jjb2xvciB9IGJpbmQgZGVmCi9ncmFwaGNvbG9yIHsgc2V0aHNiY29sb3IgfSBiaW5kIGRlZgovbm9wY29sb3Ige3BvcCBwb3AgcG9wfSBiaW5kIGRlZgoKL2JlZ2lucGFnZSB7CSUgaSBqIG5wYWdlcwoJL25wYWdlcyBleGNoIGRlZgoJL2ogZXhjaCBkZWYKCS9pIGV4Y2ggZGVmCgkvc3RyIDEwIHN0cmluZyBkZWYKCW5wYWdlcyAxIGd0IHsKCQlnc2F2ZQoJCQljb29yZGZvbnQgc2V0Zm9udAoJCQkwIDAgbW92ZXRvCgkJCShcKCkgc2hvdyBpIHN0ciBjdnMgc2hvdyAoLCkgc2hvdyBqIHN0ciBjdnMgc2hvdyAoXCkpIHNob3cKCQlncmVzdG9yZQoJfSBpZgp9IGJpbmQgZGVmCgovc2V0X2ZvbnQgewoJZmluZGZvbnQgZXhjaAoJc2NhbGVmb250IHNldGZvbnQKfSBkZWYKCiUgZHJhdyB0ZXh0IGZpdHRlZCB0byBpdHMgZXhwZWN0ZWQgd2lkdGgKL2FsaWduZWR0ZXh0IHsJCQklIHdpZHRoIHRleHQKCS90ZXh0IGV4Y2ggZGVmCgkvd2lkdGggZXhjaCBkZWYKCWdzYXZlCgkJd2lkdGggMCBndCB7CgkJCVtdIDAgc2V0ZGFzaAoJCQl0ZXh0IHN0cmluZ3dpZHRoIHBvcCB3aWR0aCBleGNoIHN1YiB0ZXh0IGxlbmd0aCBkaXYgMCB0ZXh0IGFzaG93CgkJfSBpZgoJZ3Jlc3RvcmUKfSBkZWYKCi9ib3hwcmltIHsJCQkJJSB4Y29ybmVyIHljb3JuZXIgeHNpemUgeXNpemUKCQk0IDIgcm9sbAoJCW1vdmV0bwoJCTIgY29weQoJCWV4Y2ggMCBybGluZXRvCgkJMCBleGNoIHJsaW5ldG8KCQlwb3AgbmVnIDAgcmxpbmV0bwoJCWNsb3NlcGF0aAp9IGJpbmQgZGVmCgovZWxsaXBzZV9wYXRoIHsKCS9yeSBleGNoIGRlZgoJL3J4IGV4Y2ggZGVmCgkveSBleGNoIGRlZgoJL3ggZXhjaCBkZWYKCW1hdHJpeCBjdXJyZW50bWF0cml4CgluZXdwYXRoCgl4IHkgdHJhbnNsYXRlCglyeCByeSBzY2FsZQoJMCAwIDEgMCAzNjAgYXJjCglzZXRtYXRyaXgKfSBiaW5kIGRlZgoKL2VuZHBhZ2UgeyBzaG93cGFnZSB9IGJpbmQgZGVmCi9zaG93cGFnZSB7IH0gZGVmCgovbGF5ZXJjb2xvcnNlcQoJWwklIGxheWVyIGNvbG9yIHNlcXVlbmNlIC0gZGFya2VzdCB0byBsaWdodGVzdAoJCVswIDAgMF0KCQlbLjIgLjggLjhdCgkJWy40IC44IC44XQoJCVsuNiAuOCAuOF0KCQlbLjggLjggLjhdCgldCmRlZgoKL2xheWVybGVuIGxheWVyY29sb3JzZXEgbGVuZ3RoIGRlZgoKL3NldGxheWVyIHsvbWF4bGF5ZXIgZXhjaCBkZWYgL2N1cmxheWVyIGV4Y2ggZGVmCglsYXllcmNvbG9yc2VxIGN1cmxheWVyIDEgc3ViIGxheWVybGVuIG1vZCBnZXQKCWFsb2FkIHBvcCBzZXRoc2Jjb2xvcgoJL25vZGVjb2xvciB7bm9wY29sb3J9IGRlZgoJL2VkZ2Vjb2xvciB7bm9wY29sb3J9IGRlZgoJL2dyYXBoY29sb3Ige25vcGNvbG9yfSBkZWYKfSBiaW5kIGRlZgoKL29ubGF5ZXIgeyBjdXJsYXllciBuZSB7aW52aXN9IGlmIH0gZGVmCgovb25sYXllcnMgewoJL215dXBwZXIgZXhjaCBkZWYKCS9teWxvd2VyIGV4Y2ggZGVmCgljdXJsYXllciBteWxvd2VyIGx0CgljdXJsYXllciBteXVwcGVyIGd0CglvcgoJe2ludmlzfSBpZgp9IGRlZgoKL2N1cmxheWVyIDAgZGVmCgolJUVuZFJlc291cmNlCiUlRW5kUHJvbG9nCiUlQmVnaW5TZXR1cAoxNCBkZWZhdWx0LWZvbnQtZmFtaWx5IHNldF9mb250CiUgL2Fycm93bGVuZ3RoIDEwIGRlZgolIC9hcnJvd3dpZHRoIDUgZGVmCgolIG1ha2Ugc3VyZSBwZGZtYXJrIGlzIGhhcm1sZXNzIGZvciBQUy1pbnRlcnByZXRlcnMgb3RoZXIgdGhhbiBEaXN0aWxsZXIKL3BkZm1hcmsgd2hlcmUge3BvcH0ge3VzZXJkaWN0IC9wZGZtYXJrIC9jbGVhcnRvbWFyayBsb2FkIHB1dH0gaWZlbHNlCiUgbWFrZSAnPDwnIGFuZCAnPj4nIHNhZmUgb24gUFMgTGV2ZWwgMSBkZXZpY2VzCi9sYW5ndWFnZWxldmVsIHdoZXJlIHtwb3AgbGFuZ3VhZ2VsZXZlbH17MX0gaWZlbHNlCjIgbHQgewogICAgdXNlcmRpY3QgKDw8KSBjdm4gKFspIGN2biBsb2FkIHB1dAogICAgdXNlcmRpY3QgKD4+KSBjdm4gKFspIGN2biBsb2FkIHB1dAp9IGlmCgolJUVuZFNldHVwAHN1cABncm91cABjdXAAdGhpbnNwAGVuc3AAZW1zcABuYnNwAHBlcnAAd2VpZXJwAGdlbmVyYXRlLWNvbnN0cmFpbnRzLmNwcABibG9jay5jcHAAY3NvbHZlX1ZQU0MuY3BwAH90b3AAcHJvcABhZ3hicG9wAG5vcABhc3ltcABjb21wAGZpbmRDQ29tcABibXAAc2NhbGVfY2xhbXAAeGxwAGxwICE9IGNscAB0YWlsX2xwAGhlYWRfbHAAdGFpbHRvb2x0aXAAbGFiZWx0b29sdGlwAGVkZ2V0b29sdGlwAGhlYWR0b29sdGlwAGhlbGxpcAB0YWlsY2xpcABoZWFkY2xpcAAvc3ZnL3BhcGF5YXdoaXAAaHAAdHJhbnNwb3NlX3N0ZXAAY29tcHV0ZVN0ZXAAbGF5ZXJsaXN0c2VwAGxheWVyc2VwAGlwc2VwAHJhbmtzZXAAbm9kZXNlcABzdWJncmFwaHMgbmVzdGVkIG1vcmUgdGhhbiAlZCBkZWVwAFNlcABzZmRwAGNwAHdlYnAAaWRtYXAAY2x1c3Rlcl9tYXAAY21hcHg6bWFwAGVwczptYXAAY21hcHhfbnA6bWFwAGltYXBfbnA6bWFwAGlzbWFwOm1hcABpbWFwOm1hcABjbWFwOm1hcABzdmc6bWFwAGpwZzptYXAAcG5nOm1hcABqcGVnOm1hcABnaWY6bWFwAGpwZTptYXAAb3ZlcmxhcABsZXZlbHNnYXAAY2FwAEtQX1VwACVJOiVNOiVTICVwAHN0YXJ0IDw9IHAAcnNxdW8AbHNxdW8AcmRxdW8AbGRxdW8AYmRxdW8Ac2JxdW8AcnNhcXVvAGxzYXF1bwByYXF1bwBsYXF1bwBhdXRvAE51bml0bwAvc3ZnL3RvbWF0bwBuZWF0bwBldXJvAC9zdmcvZ2FpbnNib3JvAE1ldGhvZFplcm8AbWljcm8AbmltYnVzbW9ubwBsaWJlcmF0aW9ubW9ubwBmcmVlbW9ubwBhcmltbwByYXRpbwBwb3J0aG8AcmhvAFJobwAvc3ZnL2luZGlnbwBwaW5mbwBjY2dyYXBoaW5mbwBjY2dub2RlaW5mbwBjbF9lZGdlX2luZm8AZ2V0UGFja0luZm8AbWFrZUluZm8AcGFyc2VQYWNrTW9kZUluZm8AY2lyY28AaWNvAFwlMDNvAC9zdmcvcm9zeWJyb3duAC9zdmcvc2FuZHlicm93bgB2ZXJ5ZGFya2Jyb3duAC9zdmcvc2FkZGxlYnJvd24AL3N2Zy9icm93bgBLUF9Eb3duAGNhbm5vdCBjaGFuZ2Ugc2V0dGluZyBvbmNlIHBhcnNpbmcgaGFzIGJlZ3VuAFN1bgBKdW4AdGhvcm4AL3N2Zy9jcmltc29uAHhkb3RfanNvbgB4ZG90X2pzb246anNvbgBqc29uMDpqc29uAG9taWNyb24AT21pY3JvbgBzY2Fyb24AU2Nhcm9uAHdlYm1hcm9vbgB4MTFtYXJvb24AL3N2Zy9tYXJvb24AL3N2Zy9saWdodHNhbG1vbgAvc3ZnL2RhcmtzYWxtb24AL3N2Zy9zYWxtb24AdXBzaWxvbgBlcHNpbG9uAFVwc2lsb24ARXBzaWxvbgByZXNvbHV0aW9uAGRpc3RvcnRpb24Ac3RkOjpleGNlcHRpb24AcGFydGl0aW9uAGRvdF9wb3NpdGlvbgBTZXR0aW5nIHVwIHN0cmVzcyBmdW5jdGlvbgB1bmNsb3NlZCBDREFUQSBzZWN0aW9uAHBvc3RhY3Rpb24Acm90YXRpb24Ab3JpZW50YXRpb24AYWJvbWluYXRpb24AYWNjb3VudGluZ0dldEN1cnJlbnRBbXBsaWZpY2F0aW9uAHhkb3R2ZXJzaW9uAFNUc2V0VW5pb24APHBvbHlnb24AaGV4YWdvbgBzZXB0YWdvbgBwZW50YWdvbgB0cmlwbGVvY3RhZ29uAGRvdWJsZW9jdGFnb24AL3N2Zy9sZW1vbmNoaWZmb24ATW9uAHBsdXNtbgBub3RpbgBpc2luAC9zdmcvbW9jY2FzaW4AcGluAG1pbgB2b3JvX21hcmdpbgBpbmZpbgBvbmVkX29wdGltaXplcl90cmFpbgBwbGFpbgBtYWtlX2NoYWluAG1lcmdlX2NoYWluAGRlbGV0ZU1pbgBmaW5kTWluAHZhbGlnbgBiYWxpZ24AeWVuAE11bHRpbGV2ZWxfY29hcnNlbgBjdXJyZW4AUG9ic29wZW4AZ3ZfZm9wZW4AZ3Z1c2Vyc2hhcGVfb3BlbgBlbnRpdHlUcmFja2luZ09uT3BlbgAvc3ZnL2xpbmVuAGRpbWVuAG1pbmxlbgBzdHlsZV90b2tlbgB1bmNsb3NlZCB0b2tlbgAvc3ZnL3llbGxvd2dyZWVuAG1lZGl1bWZvcmVzdGdyZWVuAC9zdmcvZm9yZXN0Z3JlZW4AL3N2Zy9saWdodGdyZWVuAGh1bnRlcnNncmVlbgAvc3ZnL2xhd25ncmVlbgAvc3ZnL2RhcmtncmVlbgAvc3ZnL21lZGl1bXNwcmluZ2dyZWVuAC9zdmcvc3ByaW5nZ3JlZW4AL3N2Zy9kYXJrb2xpdmVncmVlbgAvc3ZnL2xpbWVncmVlbgAvc3ZnL3BhbGVncmVlbgB3ZWJncmVlbgAvc3ZnL2xpZ2h0c2VhZ3JlZW4AL3N2Zy9tZWRpdW1zZWFncmVlbgAvc3ZnL2RhcmtzZWFncmVlbgAvc3ZnL3NlYWdyZWVuAHgxMWdyZWVuAC9zdmcvZ3JlZW4AR3JlZW4AL3N2Zy9saWdodGN5YW4AL3N2Zy9kYXJrY3lhbgAvc3ZnL2N5YW4AbmV3dGFuAGRhcmt0YW4AL3N2Zy90YW4Acm93c3BhbgBjb2xzcGFuAG5hbgB0aW1lc25ld3JvbWFuAG5pbWJ1c3JvbWFuAHRpbWVzcm9tYW4AVGltZXMtUm9tYW4AUGFsYXRpbm8tUm9tYW4ATmV3Q2VudHVyeVNjaGxiay1Sb21hbgBKYW4AR0RfcmFuayhnKVtyXS5uIDw9IEdEX3JhbmsoZylbcl0uYW4AYWd4YnB1dF9uAFxuAG5fbm9kZXMgPT0gZ3JhcGgtPm4AQS0+bSA9PSBBLT5uAGpvYi0+b2JqLT51Lm4AcywlbGYsJWxmJW4AIGUsJWxmLCVsZiVuACVkICUxWyJdJW4AdiA9PSBuAG56YyA9PSBuAGIgPT0gbgBuY2x1c3RlciA8PSBuAHBzeW0AYWxlZnN5bQB0aGV0YXN5bQBxdWFudHVtAHN1bQAvc3ZnL3BsdW0AaW52dHJhcGV6aXVtAG1lZGl1bQA5OnByaXNtAGxybQBjdXN0b20AYXB0ci0+dGFnID09IFRfYXRvbQAvZGV2L3VyYW5kb20AZ3ZfcmFuZG9tAHJsbQBzaW0ASU1EU19naXZlbl9kaW0Ab3JkbQBwYXJhbGxlbG9ncmFtAC9zdmcvbWludGNyZWFtAEp1bAB0bABmcmFzbABTeW1ib2wAZmluZENvbAA8P3htbAB5dW1sAHV1bWwAb3VtbABpdW1sAGV1bWwAYXVtbABZdW1sAFV1bWwAT3VtbABJdW1sAEV1bWwAQXVtbABjb3JlX2xvYWRpbWFnZV92cm1sAGpwZzp2cm1sAHBuZzp2cm1sAGpwZWc6dnJtbABnaWY6dnJtbABqcGU6dnJtbABidWxsAGZpbGwAL3N2Zy9zZWFzaGVsbABmb3JhbGwAQXByaWwAcGVybWlsAHJjZWlsAGxjZWlsAGNjZWRpbABDY2VkaWwAYXJyb3d0YWlsAGx0YWlsAHNhbWV0YWlsAGxldmVsID49IDAgJiYgbGV2ZWwgPD0gbi0+bGV2ZWwAc3RyZXNzX21ham9yaXphdGlvbl9rRF9ta2VybmVsAGlzX3BhcmFsbGVsAENhbGN1bGF0aW5nIGNpcmN1aXQgbW9kZWwAQ2FsY3VsYXRpbmcgc3Vic2V0IG1vZGVsAENhbGN1bGF0aW5nIE1EUyBtb2RlbAB4bGFiZWwAdGFpbGxhYmVsAGhlYWRsYWJlbABtYWtlX2xhYmVsAGdyYXBoIGxhYmVsAGlleGNsAG9ianAtPmxibABvdmFsAG1lcmdldmlydHVhbAAvc3ZnL2xpZ2h0Y29yYWwAL3N2Zy9jb3JhbABTcGFyc2VNYXRyaXhfZnJvbV9jb29yZGluYXRlX2FycmF5c19pbnRlcm5hbABNdWx0aWxldmVsX2NvYXJzZW5faW50ZXJuYWwAUXVhZFRyZWVfYWRkX2ludGVybmFsAGFycm93X2xlbmd0aF9ub3JtYWwAYXJpYWwAcmFkaWFsAC9zdmcvdGVhbAByZWFsAGxvY2FsAGVzdGltYXRlX2NoYXJhY3Rlcl93aWR0aF9jYW5vbmljYWwAZ2xvYmFsAHEtPmwALi4vLi4vbGliL2NncmFwaC9zY2FuLmwAdGs6dGsAZ2lmOnRrAHBhdGNod29yawB0b2sAYm9vawBBdmFudEdhcmRlLUJvb2sAc2luawBvdmVybGFwX3NocmluawBzcGljeXBpbmsAL3N2Zy9ob3RwaW5rAC9zdmcvbGlnaHRwaW5rAC9zdmcvZGVlcHBpbmsAbmVvbnBpbmsAL3N2Zy9waW5rAG5ld3JhbmsAY2x1c3RlcnJhbmsAX25ld19yYW5rAGluc3RhbGxfaW5fcmFuawByZW1vdmVfZnJvbV9yYW5rAC9zdmcvY29ybnNpbGsAb25lYmxvY2sAdi0+bGVmdC0+YmxvY2sgPT0gdi0+cmlnaHQtPmJsb2NrAC9zdmcvZmlyZWJyaWNrAFBRY2hlY2sAcGFjawAvc3ZnL2JsYWNrAEJsYWNrAHNmb250X2JhY2sAcm93c19iYWNrAHRzdHNfYmFjawBjb2xvcnNlZ3NfYmFjawBub2RlX2xpc3RfcG9wX2JhY2sAc2ZvbnRfcG9wX2JhY2sAdHN0c19wb3BfYmFjawBlc3RhY2tfcG9wX2JhY2sAZGZzX3N0YWNrX3BvcF9iYWNrAGRmc19zdGFja19iYWNrAHp3agB6d25qAGpvYi0+b2JqAGdldGludHJzeGkAcHNpAFBzaQBDYWxpYnJpAEZyaQB0d29waQBkcGkAdm9yb25vaQBWb3Jvbm9pAGNoYW5pAGRlbWkAQm9va21hbi1EZW1pAEF2YW50R2FyZGUtRGVtaQAvc3ZnL2RhcmtraGFraQAvc3ZnL2toYWtpAHBoaQBjaGkAUGhpAENoaQBkaQBYaQBQaQBORF9pZChucCkgPT0gaQBTdHJlc3NNYWpvcml6YXRpb25TbW9vdGhlcl9zbW9vdGgAU3ByaW5nU21vb3RoZXJfc21vb3RoAGJvdGgAc3RhcnRzd2l0aABsaW5lbGVuZ3RoAGJhZF9hcnJheV9uZXdfbGVuZ3RoAGF2ZXJhZ2VfZWRnZV9sZW5ndGgAZXRoAHBlbndpZHRoAGx3aWR0aABzZXRsaW5ld2lkdGgAc2hvcnRwYXRoAGZvbnRwYXRoAFBvYnNwYXRoAGJlZ2lucGF0aABpbWFnZXBhdGgAZW5kcGF0aABzdHJhaWdodF9wYXRoAG1hcF9wYXRoADxwYXRoAGNhbm5vdCBmaW5kIHRyaWFuZ2xlIHBhdGgAL3N2Zy9sYXZlbmRlcmJsdXNoAGZsZXNoAG9zbGFzaABPc2xhc2gAZHRzdHJoYXNoAHN0cmRpY3RfaGFzaABuZGFzaABtZGFzaABkaWdyYXBoAHN1YmdyYXBoAGNvbnN0cnVjdF9ncmFwaABjaGtTZ3JhcGgAY2xvc2VzdF9wYWlyczJncmFwaABhZ2RlbGV0ZSBvbiB3cm9uZyBncmFwaABjb25uZWN0R3JhcGgAdXBzaWgAJXNsaW5lLXRocm91Z2gAZmxhdF9zZWFyY2gAY2hhblNlYXJjaABSVHJlZVNlYXJjaABNYXJjaABEaXNjb25CcmFuY2gAUGlja0JyYW5jaABBZGRCcmFuY2gALi4vLi4vbGliL3V0aWwvYml0YXJyYXkuaAAuLi8uLi9saWIvdXRpbC9zdHJ2aWV3LmgALi4vLi4vbGliL2NpcmNvZ2VuL25vZGVsaXN0LmgALi4vLi4vbGliL3V0aWwvc29ydC5oAC4uLy4uL2xpYi9jZ3JhcGgvbm9kZV9zZXQuaAAuLi8uLi9saWIvY29tbW9uL2dsb2JhbHMuaAAuLi8uLi9saWIvY29tbW9uL2JveGVzLmgALi4vLi4vbGliL29ydGhvL3N0cnVjdHVyZXMuaAAuLi8uLi9saWIvZG90Z2VuL2RvdHByb2NzLmgALi4vLi4vbGliL3V0aWwvc3RyZXEuaAAuLi8uLi9saWIvb3J0aG8vdHJhcC5oAC4uLy4uL2xpYi91dGlsL3N0YXJ0c3dpdGguaAAuLi8uLi9saWIvdXRpbC9ndl9tYXRoLmgALi4vLi4vbGliL29ydGhvL3Jhd2dyYXBoLmgALi4vLi4vbGliL3V0aWwvYWd4YnVmLmgALi4vLi4vbGliL3V0aWwvdG9rZW5pemUuaAAuLi8uLi9saWIvY29tbW9uL2h0bWx0YWJsZS5oAC4uLy4uL2xpYi91dGlsL2FsbG9jLmgAYXV4ZwBjb3JlX2xvYWRpbWFnZV9zdmcAc3ZnOnN2ZwBqcGc6c3ZnAHBuZzpzdmcAanBlZzpzdmcAZ2lmOnN2ZwBqcGU6c3ZnAHN2Z19pbmxpbmU6c3ZnAEF1ZwBkb1Byb2xvZwBwb3dlcl9pdGVyYXRpb25fb3J0aG9nAHBuZwBpZGVhbF9kaXN0X3NjaGVtZSB2YWx1ZSB3cm9uZwB4ZG90IHZlcnNpb24gIiVzIiB0b28gbG9uZwBjb25nAGxibGVuY2xvc2luZwBiYXNpY19zdHJpbmcAZmFpbHVyZSBtYWxsb2MnaW5nIGZvciByZXN1bHQgc3RyaW5nAHNwcmluZwBvcmRlcmluZwBnZW5lcmF0ZVJhbmRvbU9yZGVyaW5nAGFyaW5nAEFyaW5nAERhbXBpbmcAV2FybmluZwBvdmVybGFwX3NjYWxpbmcAeCBhbmQgeSBzY2FsaW5nAG9sZCBzY2FsaW5nAHNtb290aGluZwB1bmtub3duIGVuY29kaW5nAG11bHRpbGV2ZWxfc3ByaW5nX2VsZWN0cmljYWxfZW1iZWRkaW5nAHNwcmluZ19lbGVjdHJpY2FsX3NwcmluZ19lbWJlZGRpbmcAY2VsbHBhZGRpbmcAY2VsbHNwYWNpbmcAcmFuZwBsYW5nAGZpdmVwb3ZlcmhhbmcAdGhyZWVwb3ZlcmhhbmcAbm92ZXJoYW5nAGVtaXRfaHRtbF9pbWcAbGcAb3JpZwBzemxpZwBvZWxpZwBhZWxpZwBPRWxpZwBBRWxpZwBjb3JlX2xvYWRpbWFnZV9maWcAanBnOmZpZwBwbmc6ZmlnAGZpZzpmaWcAanBlZzpmaWcAZ2lmOmZpZwBqcGU6ZmlnAGVnZwBuZXh0X3NlZwByZWcAanBlZwBpID09IGRlZwBkZwBjZwBjbG9zZXN1YmcAbWlzbWF0Y2hlZCB0YWcAYmV6LT5zZmxhZwBiZXotPmVmbGFnACEqZmxhZwAhZmxhZwA8ZwAlLjVnLCUuNWcsJS41ZywlLjVnACUuNWcgJS41ZwAlZyAlZwBib3hJbnRlcnNlY3RmAGVwc2YAYWdlZGdlc2VxY21wZgBjY3dyb3RhdGVwZgBmbm9mAGluZgBzZWxmAGhhbGYAJWxmJWxmJWxmJWxmACVsZiwlbGYsJWxmLCVsZiwlbGYAJSpmICUqZiAlbGYgJWxmAGxpYmVyYXRpb25zZXJpZgBmcmVlc2VyaWYAc2Fucy1TZXJpZgBnaWYAL3N2Zy9wZWFjaHB1ZmYAcmlmZgBhY2NvdW50aW5nUmVwb3J0RGlmZgB0YWlsaHJlZgBsYWJlbGhyZWYAZWRnZWhyZWYAaGVhZGhyZWYAb3JkZgBwZGYAc2lnbWFmAFxmACUuMExmACVMZgB1cy0+ZgAlLjAzZgAlcyB0cmFuc21pdCAlLjNmAHJnYjwlOS4zZiwgJTkuM2YsICU5LjNmPiB0cmFuc21pdCAlLjNmACUuMDJmACUuMmYAJS4wZiwlLjBmLCUuMGYsJS4wZgAgJS4wZiwlLjBmACUuMGYgJS4wZiAlLjBmICUuMGYAIiBmaWxsLW9wYWNpdHk9IiVmACIgc3Ryb2tlLW9wYWNpdHk9IiVmAApmaW5hbCBlID0gJWYAYnJvbnplAGFycm93c2l6ZQBsYWJlbGZvbnRzaXplAHNlYXJjaHNpemUAZml4ZWRzaXplAG5vZGVsaXN0X3NpemUAbm9kZV9zZXRfc2l6ZQB0cmFwc19zaXplAGNlbGxzX3NpemUAbm9kZXNfc2l6ZQB0ZXh0c3Bhbl9zaXplAHN2Z19zaXplAGNhcGFjaXR5ID4gZGljdC0+c2l6ZQBjYXBhY2l0eSA+IHNlbGYtPnNpemUAYnouc2l6ZQBwb2ludC1zaXplAG5vcm1hbGl6ZQBFTGluaXRpYWxpemUAbWtNYXplAGljdXJ2ZQBub2RlbGlzdF9yZW1vdmUAYWRqX2xpc3RfcmVtb3ZlAG5vZGVfc2V0X3JlbW92ZQBzdHJkaWN0X3JlbW92ZQBzb2x2ZQAhdi0+YWN0aXZlAC1hY3RpdmUAZm9udF9pbl9saXN0X3Blcm1pc3NpdmUAL3N2Zy9vbGl2ZQB1Z3JhdmUAb2dyYXZlAGlncmF2ZQBlZ3JhdmUAYWdyYXZlAFVncmF2ZQBPZ3JhdmUASWdyYXZlAEVncmF2ZQBBZ3JhdmUAdHJ1ZQAvc3ZnL2Jpc3F1ZQBvYmxpcXVlAEF2YW50R2FyZGUtQm9va09ibGlxdWUAQXZhbnRHYXJkZS1EZW1pT2JsaXF1ZQBIZWx2ZXRpY2EtTmFycm93LUJvbGRPYmxpcXVlAENvdXJpZXItQm9sZE9ibGlxdWUASGVsdmV0aWNhLUJvbGRPYmxpcXVlAEhlbHZldGljYS1OYXJyb3ctT2JsaXF1ZQBDb3VyaWVyLU9ibGlxdWUASGVsdmV0aWNhLU9ibGlxdWUAbmF2eWJsdWUAL3N2Zy9saWdodHNreWJsdWUAL3N2Zy9kZWVwc2t5Ymx1ZQAvc3ZnL3NreWJsdWUAbmV3bWlkbmlnaHRibHVlAC9zdmcvbWlkbmlnaHRibHVlAC9zdmcvbGlnaHRibHVlAC9zdmcvY2FkZXRibHVlAC9zdmcvY29ybmZsb3dlcmJsdWUAL3N2Zy9kb2RnZXJibHVlAC9zdmcvcG93ZGVyYmx1ZQBuZW9uYmx1ZQAvc3ZnL21lZGl1bWJsdWUAL3N2Zy9saWdodHN0ZWVsYmx1ZQAvc3ZnL3N0ZWVsYmx1ZQAvc3ZnL3JveWFsYmx1ZQAvc3ZnL2RhcmtibHVlAHJpY2hibHVlAGxpZ2h0c2xhdGVibHVlAC9zdmcvbWVkaXVtc2xhdGVibHVlAC9zdmcvZGFya3NsYXRlYmx1ZQAvc3ZnL3NsYXRlYmx1ZQAvc3ZnL2FsaWNlYmx1ZQAvc3ZnL2JsdWUAY2FsbFN0b3JlRW50aXR5VmFsdWUAc3RvcmVBdHRyaWJ1dGVWYWx1ZQBCbHVlAG5lYXRvX2VucXVldWUAVHVlAGNvbnZlcnRTUHRvUm91dGUAeWFjdXRlAHVhY3V0ZQBvYWN1dGUAaWFjdXRlAGVhY3V0ZQBhYWN1dGUAWWFjdXRlAFVhY3V0ZQBPYWN1dGUASWFjdXRlAEVhY3V0ZQBBYWN1dGUAcmVmZXJlbmNlIHRvIGV4dGVybmFsIGVudGl0eSBpbiBhdHRyaWJ1dGUAZHVwbGljYXRlIGF0dHJpYnV0ZQBub3RlAHByaW1lcnNpdGUAcmlib3NpdGUAcmVzdHJpY3Rpb25zaXRlAHByb3RlYXNlc2l0ZQAvc3ZnL2dob3N0d2hpdGUAL3N2Zy9uYXZham93aGl0ZQAvc3ZnL2Zsb3JhbHdoaXRlAC9zdmcvYW50aXF1ZXdoaXRlAC9zdmcvd2hpdGUAV2hpdGUAcG9wX29ial9zdGF0ZQBwY3Bfcm90YXRlAGNvbmNlbnRyYXRlAGRlY29yYXRlAFF1YWRUcmVlX3JlcHVsc2l2ZV9mb3JjZV9hY2N1bXVsYXRlAG5vdHJhbnNsYXRlAC9zdmcvY2hvY29sYXRlAGdlb21VcGRhdGUAaW52aG91c2UAL3N2Zy9jaGFydHJldXNlAG5vZGVsaXN0X3JldmVyc2UAWE1MX1BhcnNlADxlbGxpcHNlAGR1c3R5cm9zZQAvc3ZnL21pc3R5cm9zZQBTcGFyc2VNYXRyaXhfdHJhbnNwb3NlAGFnY2xvc2UAZW50aXR5VHJhY2tpbmdPbkNsb3NlAFNwYXJzZU1hdHJpeF9tdWx0aXBseV9kZW5zZQBmYWxzZQAvc3ZnL21lZGl1bXR1cnF1b2lzZQAvc3ZnL2Rhcmt0dXJxdW9pc2UAL3N2Zy9wYWxldHVycXVvaXNlAC9zdmcvdHVycXVvaXNlAHBoYXNlAC9zdmcvYXp1cmUAc2lnbmF0dXJlAGNvcmUATXNxdWFyZQBQYWxhdGlubyBMaW5vdHlwZQBBLT50eXBlID09IEItPnR5cGUAc3VwZQBlbGxpcHNlX3RhbmdlbnRfc2xvcGUAZ3ZyZW5kZXJfdXNlcnNoYXBlAG1pdGVyX3NoYXBlAGxhbmRzY2FwZQBMYW5kc2NhcGUASnVuZQBub25lAGRvY3VtZW50IGlzIG5vdCBzdGFuZGFsb25lAGNvdXNpbmUAL3N2Zy9tZWRpdW1hcXVhbWFyaW5lAC9zdmcvYXF1YW1hcmluZQA8cG9seWxpbmUAJXNvdmVybGluZQB1bmRlcmxpbmUAUHJvdXRlc3BsaW5lAGxpbmVhcl9zcGxpbmUAYl9zcGxpbmUAb2xpbmUAYWd4YnVmX2lzX2lubGluZQBzdmdfaW5saW5lAHJlZmluZQBwcmltZQBQcmltZQAvc3ZnL2xpbWUAY29sb3JzY2hlbWUAbGFiZWxfc2NoZW1lAHNhbWUAbGFiZWxmb250bmFtZQBVRl9zZXRuYW1lAGZvbnRfbmFtZQBmb250LT5uYW1lAHVzLT5uYW1lAHJlc2VydmVkIHByZWZpeCAoeG1sKSBtdXN0IG5vdCBiZSB1bmRlY2xhcmVkIG9yIGJvdW5kIHRvIGFub3RoZXIgbmFtZXNwYWNlIG5hbWUAc3R5bGUAL3N2Zy90aGlzdGxlAHRpdGxlAC9zdmcvbWVkaXVtcHVycGxlAGRhcmtwdXJwbGUAd2VicHVycGxlAHJlYmVjY2FwdXJwbGUAdmVyeV9saWdodF9wdXJwbGUAbWVkX3B1cnBsZQB4MTFwdXJwbGUAL3N2Zy9wdXJwbGUAc2hhcGVmaWxlAGdyYWRpZW50YW5nbGUAcmVjdGFuZ2xlAFJlY3RhbmdsZQBsYWJlbGFuZ2xlAGludnRyaWFuZ2xlAGRlc3RpbmF0aW9uIHBvaW50IG5vdCBpbiBhbnkgdHJpYW5nbGUAc291cmNlIHBvaW50IG5vdCBpbiBhbnkgdHJpYW5nbGUAZGZzQ3ljbGUAZG91YmxlY2lyY2xlAE1jaXJjbGUAaW52aXNpYmxlAHRob3JuZGFsZQBpbnB1dHNjYWxlAG9zY2FsZQBpbWFnZXNjYWxlAC9zdmcvd2hpdGVzbW9rZQBtYW5kYXJpbm9yYW5nZQAvc3ZnL2RhcmtvcmFuZ2UAL3N2Zy9vcmFuZ2UAL3N2Zy9iZWlnZQBuZXdlZGdlAGRlbGV0ZV9mYXN0X2VkZ2UAZGVsZXRlX2ZsYXRfZWRnZQBhZGRfdHJlZV9lZGdlAG1ha2VTdHJhaWdodEVkZ2UAbWFrZVNlbGZFZGdlAG1ha2VDb21wb3VuZEVkZ2UAIXVzZV9zdGFnZQBvc2FnZQBwYWdlAGd2bG9hZGltYWdlAHZlZQB0ZWUAUVVBRF9UUkVFX0hZQlJJRCwgc2l6ZSBsYXJnZXIgdGhhbiAlZCwgc3dpdGNoIHRvIGZhc3QgcXVhZHRyZWUAZmVhc2libGVfdHJlZQBTcGFyc2VNYXRyaXhfZGl2aWRlX3Jvd19ieV9kZWdyZWUAbm9kZWxpc3RfZnJlZQBzZm9udF9mcmVlAG5vZGVfc2V0X2ZyZWUAcm93c19mcmVlAGNlbGxzX2ZyZWUAbmV3bm9kZQBpbnN0YWxsbm9kZQBhZ25vZGUAZGVsZXRlX2Zhc3Rfbm9kZQBwYWNrbW9kZQBTcGxpdE5vZGUAb3RpbGRlAG50aWxkZQBhdGlsZGUAT3RpbGRlAE50aWxkZQBBdGlsZGUAZGl2aWRlAHRyYWRlAGdyYXBodml6X25vZGVfaW5kdWNlAHNvdXJjZQByZXB1bHNpdmVmb3JjZQBpbGxlZ2FsIHBhcmFtZXRlciBlbnRpdHkgcmVmZXJlbmNlAGVycm9yIGluIHByb2Nlc3NpbmcgZXh0ZXJuYWwgZW50aXR5IHJlZmVyZW5jZQByZWN1cnNpdmUgZW50aXR5IHJlZmVyZW5jZQBsYWJlbGRpc3RhbmNlAFRCX2JhbGFuY2UAVEJiYWxhbmNlAGRldmljZQBtb25vc3BhY2UAL3N2Zy9vbGRsYWNlAGZhY2UAc3ViZQAgLWFuY2hvciBlAHMxLT5jb21tX2Nvb3JkPT1zMi0+Y29tbV9jb29yZABNcmVjb3JkAGZvcndhcmQAcHJvZABsaWdodGdvbGRlbnJvZABtZWRpdW1nb2xkZW5yb2QAL3N2Zy9kYXJrZ29sZGVucm9kAC9zdmcvcGFsZWdvbGRlbnJvZAAvc3ZnL2dvbGRlbnJvZAAvc3ZnL2J1cmx5d29vZABsaWdodHdvb2QAbWVkaXVtd29vZABkYXJrd29vZABfYmFja2dyb3VuZABjb21wb3VuZABubyBlbGVtZW50IGZvdW5kAGZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0tbm8gYWN0aW9uIGZvdW5kAC9zdmcvYmxhbmNoZWRhbG1vbmQAYXJyb3dfbGVuZ3RoX2RpYW1vbmQATWRpYW1vbmQAbm9kZV9zZXRfZmluZABzdHJkaWN0X2ZpbmQAZ3Z1c2Vyc2hhcGVfZmluZABub2RlbGlzdF90cnlfYXBwZW5kAGVkZ2VfbGlzdF90cnlfYXBwZW5kAHNmb250X3RyeV9hcHBlbmQAdHJhcHNfdHJ5X2FwcGVuZABjZWxsc190cnlfYXBwZW5kAG5vZGVzX3RyeV9hcHBlbmQAbm9kZV9xdWV1ZV90cnlfYXBwZW5kAHNob3dfYm94ZXNfcHJlcGVuZABFTGxlZnRibmQAZXhwYW5kAGN1bWJlcmxhbmQAYnJpZ2h0Z29sZABvbGRnb2xkAC9zdmcvZ29sZABib2xkAEhlbHZldGljYS1OYXJyb3ctQm9sZABUaW1lcy1Cb2xkAENvdXJpZXItQm9sZABQYWxhdGluby1Cb2xkAE5ld0NlbnR1cnlTY2hsYmstQm9sZABIZWx2ZXRpY2EtQm9sZAAlMCpsbGQAJSpsbGQAKyVsbGQAbi0+YnJhbmNoW2ldLmNoaWxkACUrLjRsZAAlcyVsZABzb2xpZAAvc3ZnL21lZGl1bW9yY2hpZAAvc3ZnL2RhcmtvcmNoaWQAL3N2Zy9vcmNoaWQAaWxsZWdhbCBjaGFyYWN0ZXIocykgaW4gcHVibGljIGlkAGRpamtzdHJhX3NnZABmaXhlZABjdXJ2ZWQAZGVyaXZlZABkb3R0ZWQAbWVtb3J5IGV4aGF1c3RlZABsb2NhbGUgbm90IHN1cHBvcnRlZABwYXJzaW5nIGFib3J0ZWQAcGFyc2VyIG5vdCBzdGFydGVkAGF0dHJpYnV0ZSBtYWNyb3Mgbm90IGltcGxlbWVudGVkAGFjY291bnRpbmdEaWZmVG9sZXJhdGVkAGZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0tZW5kIG9mIGJ1ZmZlciBtaXNzZWQAY29uZGVuc2VkAC9zdmcvbWVkaXVtdmlvbGV0cmVkAC9zdmcvcGFsZXZpb2xldHJlZABJbXByb3BlciAlcyB2YWx1ZSAlcyAtIGlnbm9yZWQAJXMgdmFsdWUgJXMgPCAlZCAtIHRvbyBzbWFsbCAtIGlnbm9yZWQAJXMgdmFsdWUgJXMgPiAlZCAtIHRvbyBsYXJnZSAtIGlnbm9yZWQAL3N2Zy9pbmRpYW5yZWQAL3N2Zy9kYXJrcmVkAGEgc3VjY2Vzc2Z1bCBwcmlvciBjYWxsIHRvIGZ1bmN0aW9uIFhNTF9HZXRCdWZmZXIgaXMgcmVxdWlyZWQAdGFwZXJlZAAvc3ZnL29yYW5nZXJlZAByZXNlcnZlZCBwcmVmaXggKHhtbG5zKSBtdXN0IG5vdCBiZSBkZWNsYXJlZCBvciB1bmRlY2xhcmVkAC9zdmcvcmVkAHN0cmlwZWQAaWxsLWNvbmRpdGlvbmVkAHVuZGVmaW5lZABub3QgY29uc3RyYWluZWQAbGFiZWxhbGlnbmVkAHRleHQgZGVjbGFyYXRpb24gbm90IHdlbGwtZm9ybWVkAFhNTCBkZWNsYXJhdGlvbiBub3Qgd2VsbC1mb3JtZWQAdW5maWxsZWQAaW5wdXQgaW4gZmxleCBzY2FubmVyIGZhaWxlZAB0cmlhbmd1bGF0aW9uIGZhaWxlZABwYXJzaW5nIGZpbmlzaGVkAGRhc2hlZABsaW1pdCBvbiBpbnB1dCBhbXBsaWZpY2F0aW9uIGZhY3RvciAoZnJvbSBEVEQgYW5kIGVudGl0aWVzKSBicmVhY2hlZAB3ZWRnZWQAc2l6ZSA9PSBmcmVlZAByb3VuZGVkAHNwbGluZSBbJS4wM2YsICUuMDNmXSAtLSBbJS4wM2YsICUuMDNmXSBpcyBob3Jpem9udGFsOyB3aWxsIGJlIHRyaXZpYWxseSBib3VuZGVkAHNwbGluZSBbJS4wM2YsICUuMDNmXSAtLSBbJS4wM2YsICUuMDNmXSBpcyB2ZXJ0aWNhbDsgd2lsbCBiZSB0cml2aWFsbHkgYm91bmRlZABwYXJzZXIgbm90IHN1c3BlbmRlZABwYXJzZXIgc3VzcGVuZGVkAFdlZABSZWQAU3BhcnNlTWF0cml4X2FkZABub2RlX3NldF9hZGQAc3RyZGljdF9hZGQAZGQgIT0gcGFyZW50X2RkAEtQX0FkZABwYWQAeGxoZHhsb2FkAHhsaGR4dW5sb2FkAHJlYWQAYXJyb3doZWFkAGxoZWFkAHNhbWVoZWFkAGJveDNkACVzXyVkAF9zcGFuXyVkAF9ibG9ja18lZABfd2Vha18lZABfY2xvbmVfJWQALiVkACVZLSVtLSVkACVsZiwlZAAlcyBpbiBsaW5lICVkACUlJSVCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQAIl9zdWJncmFwaF9jbnQiOiAlZAAiX2d2aWQiOiAlZAAiaGVhZCI6ICVkAGFneGJwdXRjAHZwc2MAY3AtPnNyYwB1Y2lyYwBvY2lyYwBpY2lyYwBlY2lyYwBhY2lyYwBVY2lyYwBPY2lyYwBJY2lyYwBFY2lyYwBBY2lyYwBsYWJlbGxvYwBndl9yZWNhbGxvYwBzdGQ6OmJhZF9hbGxvYwBiYWtlcnNjaG9jAHNlbWlTd2VldENob2MAb2JqbGlzdF9zeW5jAGRlZ2xpc3Rfc3luYwBub2RlbGlzdF9zeW5jAGNsaXN0X3N5bmMAbm9kZV9saXN0X3N5bmMAZWRnZV9zZXRfc3luYwBwb2ludHNfc3luYwBzdHJzX3N5bmMAQWdyYXBoc19zeW5jAGJveGVzX3N5bmMAbGF5ZXJfbmFtZXNfc3luYwBzbm9kZXNfc3luYwB2YXJhcnJfc3luYwBiZXppZXJfcGF0aF9zeW5jAHBic19zaXplX3N5bmMAbWMAU3BhcnNlTWF0cml4X2lzX3N5bW1ldHJpYwBBLT5pc19wYXR0ZXJuX3N5bW1ldHJpYwBwaWM6cGljAGl0YWxpYwBCb29rbWFuLUxpZ2h0SXRhbGljAFphcGZDaGFuY2VyeS1NZWRpdW1JdGFsaWMAQm9va21hbi1EZW1pSXRhbGljAFRpbWVzLUJvbGRJdGFsaWMAUGFsYXRpbm8tQm9sZEl0YWxpYwBOZXdDZW50dXJ5U2NobGJrLUJvbGRJdGFsaWMAVGltZXMtSXRhbGljAFBhbGF0aW5vLUl0YWxpYwBOZXdDZW50dXJ5U2NobGJrLUl0YWxpYwByYWRpYwAjZmNmY2ZjAHJvdXRlc3BsaW5lczogJWQgZWRnZXMsICV6dSBib3hlcyAlLjJmIHNlYwA6ICUuMmYgc2VjAGxpc3RkZWxyZWMAbGV2ZWwgZ3JhcGggcmVjAGxldmVsIGVkZ2UgcmVjAGxldmVsIG5vZGUgcmVjAERlYwBfbmVhdG9fY2MAYmMAdmlzaWJpbGl0eS5jAFNwYXJzZU1hdHJpeC5jAGh0bWxsZXguYwBpbmRleC5jAHNtYXJ0X2luaV94LmMAZ3ZyZW5kZXJfY29yZV9wb3YuYwBjdnQuYwBsYXlvdXQuYwB0ZXh0c3Bhbl9sdXQuYwBhZGp1c3QuYwBub2RlbGlzdC5jAHNob3J0ZXN0LmMAY2xvc2VzdC5jAHNhbWVwb3J0LmMAZ3ZyZW5kZXJfY29yZV9kb3QuYwBjb25zdHJhaW50LmMAZG90aW5pdC5jAG5lYXRvaW5pdC5jAHBhdGNod29ya2luaXQuYwBvc2FnZWluaXQuYwBlbWl0LmMAZmxhdC5jAGFycm93cy5jAG1pbmNyb3NzLmMAc3RyZXNzLmMAcG9zdF9wcm9jZXNzLmMAY2NvbXBzLmMAbnMuYwB1dGlscy5jAHhsYWJlbHMuYwBzaGFwZXMuYwBkb3RzcGxpbmVzLmMAbmVhdG9zcGxpbmVzLmMAY2x1c3RlcmVkZ2VzLmMAaGVkZ2VzLmMAYXR0ci5jAHJlZnN0ci5jAGZhc3Rnci5jAGNsdXN0ZXIuYwB0YXBlci5jAGd2cmVuZGVyLmMAc3BsaXQucS5jAGRlY29tcC5jAGd2cmVuZGVyX2NvcmVfbWFwLmMAb3J0aG8uYwBndnJlbmRlcl9jb3JlX2pzb24uYwBwYXJ0aXRpb24uYwBwb3NpdGlvbi5jAGd2cGx1Z2luLmMAZ3ZfZm9wZW4uYwB0ZXh0c3Bhbi5jAGdlb20uYwByYW5kb20uYwByb3V0ZXNwbC5jAHhtbC5jAE11bHRpbGV2ZWwuYwBzcHJpbmdfZWxlY3RyaWNhbC5jAGd2cmVuZGVyX2NvcmVfdGsuYwByYW5rLmMAcGFjay5jAGJsb2NrcGF0aC5jAGR0c3RyaGFzaC5jAHJhd2dyYXBoLmMAZ3ZyZW5kZXJfY29yZV9zdmcuYwBndnJlbmRlcl9jb3JlX2ZpZy5jAHN0dWZmLmMAbWF6ZS5jAHF1YWRfcHJvZ19zb2x2ZS5jAHNwYXJzZV9zb2x2ZS5jAHJvdXRlLmMAd3JpdGUuYwBjb2x4bGF0ZS5jAHhtbHBhcnNlLmMAZWxsaXBzZS5jAGd2bG9hZGltYWdlX2NvcmUuYwBndnVzZXJzaGFwZS5jAGNpcmNsZS5jAGh0bWx0YWJsZS5jAGVkZ2UuYwBndmxvYWRpbWFnZS5jAGJsb2NrdHJlZS5jAFF1YWRUcmVlLmMAbm9kZS5jAG5vZGVfaW5kdWNlLmMAZ3ZkZXZpY2UuYwBjb21wb3VuZC5jAHRyYXBlem9pZC5jAHNnZC5jAGNvbmMuYwByZWMuYwBkaWprc3RyYS5jAGZQUS5jAGNsYXNzMi5jACVsZiwlbGYsJWxmLCVsZiVjACVsZiwlbGYsJWxmLCVbXixdJWMAXCVjACRjAHdiAG5zdWIAc2V0aHNiAHJiAHByb3RlY3RfcnNxYgBqb2IAY29yZV9sb2FkaW1hZ2VfcHNsaWIARmViAG9kYgBpbml0X3NwbGluZXNfYmIAYmV6aWVyX2JiAHByb3RlaW5zdGFiAHJuYXN0YWIAL3N2Zy9vbGl2ZWRyYWIAXGIAcndhAC9zdmcvYXF1YQBpb3RhAElvdGEAL3N2Zy9kYXJrbWFnZW50YQAvc3ZnL21hZ2VudGEAZGVsdGEARGVsdGEAemV0YQB0aGV0YQBUaGV0YQBiZXRhAFpldGEAQmV0YQBwcmV2ICE9IG9iai0+ZGF0YQBtYWtlR3JhcGhEYXRhAEV0YQBuaW1idXNzYW5zYQBwYXJhAGthcHBhAEthcHBhAC9zdmcvc2llbm5hAFZlcmRhbmEAZ2FtbWEAR2FtbWEAc2lnbWEAU2lnbWEAY29uc29sYQBuYWJsYQAvc3ZnL2Z1Y2hzaWEAR2VvcmdpYQBhbHBoYQBBbHBoYQBvbWVnYQBPbWVnYQBhcmVhAGxhbWJkYQBMYW1iZGEAaGVsdmV0aWNhAEhlbHZldGljYQBtaWNhAD48YQBgAF90ZHJhd18AX3RsZHJhd18AX2hsZHJhd18AX2xkcmF3XwBfaGRyYXdfAF9kcmF3XwBhZ3hzZXRfAGRvdF9zcGxpbmVzXwAlc18AcGFnZSVkLCVkXwBfY2NfACBpZD0iYV8AXgBTdGFydGluZyBwaGFzZSAyIFtkb3RfbWluY3Jvc3NdAFN0YXJ0aW5nIHBoYXNlIDMgW2RvdF9wb3NpdGlvbl0Abl9lZGdlcyA9PSBncmFwaC0+c291cmNlc1tncmFwaC0+bl0AU3RhcnRpbmcgcGhhc2UgMSBbZG90X3JhbmtdAGpkW21hc2tbamNba11dXSA9PSBqY1trXQBqY1ttYXNrW2piW2tdXV0gPT0gamJba10AbmVlZGxlW2ldICE9IG5lZWRsZVtqXQBqYVttYXNrW2phW2pdXV0gPT0gamFbal0AcS0+cXRzW2lpXQAhcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLnRha2VuW2ldAHIuYm91bmRhcnlbaV0gPD0gci5ib3VuZGFyeVtOVU1ESU1TICsgaV0AWyUuMDNmLCUuMDNmXQBbaW50ZXJuYWwgaGFyZC1jb2RlZF0AbnAtPmNlbGxzWzFdAG5wLT5jZWxsc1swXQB1cy0+bmFtZVswXQBjcC0+c3JjWzBdAFsuLl0AXFwAInBvaW50cyI6IFsAInN0b3BzIjogWwAJWwBaAGNvbXB1dGVTY2FsZVhZAHk8PVkAJWEgJWIgJWQgJUg6JU06JVMgJVkAUE9TSVgAeSA+PSBJTlRfTUlOICYmIHkgPD0gSU5UX01BWAB4ID49IElOVF9NSU4gJiYgeCA8PSBJTlRfTUFYAHcgPj0gMCAmJiB3IDw9IElOVF9NQVgAZV9jbnQgPD0gSU5UX01BWABwYWlyLnJpZ2h0IDw9IElOVF9NQVgAcGFpci5sZWZ0IDw9IElOVF9NQVgAdGFyZ2V0IDw9IElOVF9NQVgAbnNlZ3MgPD0gSU5UX01BWABuX2VkZ2VzIDw9IElOVF9NQVgAc3RwLm52ZXJ0aWNlcyA8PSBJTlRfTUFYAG9ic1twb2x5X2ldLT5wbiA8PSBJTlRfTUFYAGlucHV0X3JvdXRlLnBuIDw9IElOVF9NQVgAZ3JhcGgtPm4gPD0gSU5UX01BWABoID49IDAgJiYgaCA8PSBJTlRfTUFYAGVfY250IC0gMSA8PSBJTlRfTUFYAGNsaXN0X3NpemUoJmxpc3QpIC0gMSA8PSBJTlRfTUFYAGxheWVyX25hbWVzX3NpemUoJmxheWVySURzKSAtIDEgPD0gSU5UX01BWABzdHJsZW4oYXJncykgPD0gSU5UX01BWABvYmpsaXN0X3NpemUoJm9iamwpIDw9IElOVF9NQVgAZWRnZV9saXN0X3NpemUoJmN0eC0+VHJlZV9lZGdlKSA8PSBJTlRfTUFYAG5vZGVfc2V0X3NpemUoZy0+bl9pZCkgPD0gSU5UX01BWABpIDwgSU5UX01BWAByZXN1bHQgPD0gKGludClVQ0hBUl9NQVgAc3N6IDw9IFVDSEFSX01BWABjb2wgPj0gMCAmJiBjb2wgPD0gVUlOVDE2X01BWAB4PD1YAFcAVgBVAFxUAFRFWFQAU1RSRVNTX01BSk9SSVpBVElPTl9QT1dFUl9ESVNUAFNUUkVTU19NQUpPUklaQVRJT05fR1JBUEhfRElTVABTVFJFU1NfTUFKT1JJWkFUSU9OX0FWR19ESVNUAEZBU1QARk9OVABiID09IEJfUklHSFQASEVJR0hUAEJfTEVGVABfJWxsdV9TVVNQRUNUAEJUAFRyZWJ1Y2hldCBNUwBJTlZJUwAlSDolTTolUwBWUgBUUgBBLT5mb3JtYXQgPT0gQi0+Zm9ybWF0ICYmIEEtPmZvcm1hdCA9PSBGT1JNQVRfQ1NSAExSAERJUgBIUgBDRU5URVIAJSVUUkFJTEVSAEEtPnR5cGUgPT0gTUFUUklYX1RZUEVfUkVBTCB8fCBBLT50eXBlID09IE1BVFJJWF9UWVBFX0lOVEVHRVIAQ0VMTEJPUkRFUgBCUgAqUgBRAEVYUABCX1VQAFNVUABUT1AATwBtYXBOAFxOAEJfRE9XTgBUSE9STgAlJUJFR0lOAFJPV1NQQU4AQ09MU1BBTgBOQU4AUE0AQk9UVE9NAEJNAEFNACVIOiVNAFxMAHRhaWxVUkwAbGFiZWxVUkwAZWRnZVVSTABoZWFkVVJMAEhUTUwAeCE9TlVMTABFRF90b192aXJ0KG9yaWcpID09IE5VTEwARURfdG9fdmlydChlKSA9PSBOVUxMAHByZWZpeCAhPSBOVUxMAGR0ZC0+c2NhZmZJbmRleCAhPSBOVUxMAHNtLT5MdyAhPSBOVUxMAGlucHV0ICE9IE5VTEwAbGlzdCAhPSBOVUxMAHJlZmVyZW50ICE9IE5VTEwAZGljdCAhPSBOVUxMAGRpY3QtPmJ1Y2tldHMgIT0gTlVMTABhdHRyICE9IE5VTEwAbGVhZGVyICE9IE5VTEwAaXRlbSAhPSBOVUxMAGhheXN0YWNrICE9IE5VTEwAb3J0aG9nICE9IE5VTEwAc2VsZiAhPSBOVUxMAHZhbHVlICE9IE5VTEwAZmlsZW5hbWUgIT0gTlVMTABqb2ItPm91dHB1dF9maWxlICE9IE5VTEwAbW9kZSAhPSBOVUxMAHNvdXJjZSAhPSBOVUxMAHhkICE9IE5VTEwAc20tPkx3ZCAhPSBOVUxMAGpvYiAhPSBOVUxMAHNvdXJjZS5kYXRhICE9IE5VTEwAYi5kYXRhICE9IE5VTEwAYS5kYXRhICE9IE5VTEwAbGlzdCAmJiBsaXN0WzBdICE9IE5VTEwAQUYgIT0gTlVMTABzbS0+RCAhPSBOVUxMAEVEX3RvX3ZpcnQob3JpZykgIT0gTlVMTABMQ19BTEwAQkwAYmVzdGNvc3QgPCBIVUdFX1ZBTABOT1JNQUwAUkFESUFMAEEtPnR5cGUgPT0gTUFUUklYX1RZUEVfUkVBTABVUlcgQ2hhbmNlcnkgTABVUlcgQm9va21hbiBMAENlbnR1cnkgU2Nob29sYm9vayBMAFVSVyBHb3RoaWMgTABLSwBKAGkgPCBNQVhfSQBQLT5lbmQudGhldGEgPCAyICogTV9QSQBBU0NJSQBcSABFVEgAV0lEVEgARE9URk9OVFBBVEgAR0RGT05UUEFUSABta05Db25zdHJhaW50RwBcRwBFWFBBVF9FTlRJVFlfREVCVUcARVhQQVRfRU5UUk9QWV9ERUJVRwBFWFBBVF9BQ0NPVU5USU5HX0RFQlVHAFJORwBTUFJJTkcAQ0VMTFBBRERJTkcAQ0VMTFNQQUNJTkcATEFORwBJTUcAXHhGACUlRU9GAElORgBceEZGAFJJRkYAZGVsdGEgPD0gMHhGRkZGAFx4RUYAXHhERgBceENGAFx4QkYAXHhBRgBceDlGAFx4OEYAXHg3RgBceDFGAFx4RQBcRQBQT0lOVC1TSVpFAFRSVUUAQ0xPU0UARkFMU0UAa2V5ICE9IFRPTUJTVE9ORQByICE9IFRPTUJTVE9ORQBraW5kID09IExUX05PTkUAR1JBRElFTlRBTkdMRQBUUklBTkdMRQBNSURETEUASU5WSVNJQkxFAFRBQkxFAEFHVFlQRShvYmopID09IEFHSU5FREdFIHx8IEFHVFlQRShvYmopID09IEFHT1VURURHRQBceEZFAFx4RUUAXHhERQBCX05PREUAXHhDRQBceEJFAFx4QUUAXHg5RQBceDhFAFx4MUUAVEQAQS0+Zm9ybWF0ID09IEZPUk1BVF9DT09SRABuICYmIGkgPj0gMCAmJiBpIDwgTk9ERUNBUkQAJSVFTkQASFlCUklEAFNPTElEAFx4RkQAXHhFRABET1RURUQAREFTSEVEAFJPVU5ERUQAXHhERABceENEAFx4QkQAXHhBRABceDlEAFx4OEQAXHgxRABceEMAZGVsZXRlVlBTQwBceEZDAFx4RUMAXHhEQwBceENDAFx4QkMAXHhBQwBceDlDAFx4OEMAXHgxQwBceEIAU1VCAFx4RkIAXHhFQgBceERCAFx4Q0IAXHhCQgBceEFCAFx4OUIAXHg4QgBceDFCAEEgJiYgQgBceEZBAFx4RUEAXHhEQQBceENBAFx4QkEAXHhBQQBceDlBAFx4OEEAXHgxQQBAAD8APCVzPgA8bmlsPgA8L3RzcGFuPjwvdGV4dFBhdGg+AAogICAgPCU5LjNmLCAlOS4zZiwgJTkuM2Y+AD4KPHRpdGxlPgA8Rk9OVD4APEJSPgA8SFRNTD4APC9IVE1MPgA8SU1HPgBTeW50YXggZXJyb3I6IG5vbi1zcGFjZSBzdHJpbmcgdXNlZCBiZWZvcmUgPFRBQkxFPgBTeW50YXggZXJyb3I6IG5vbi1zcGFjZSBzdHJpbmcgdXNlZCBhZnRlciA8L1RBQkxFPgA8VEQ+AC0+ACI+AAlba2V5PQA8PQA8ACYjeCV4OwAmcXVvdDsAJmx0OwAmZ3Q7ACZhbXA7ACMlZDsAJiMzOTsAJiM0NTsAJiM5MzsAJiMxMzsAJiMxNjA7ACYjMTA7ADtzdG9wLW9wYWNpdHk6ACUlQm91bmRpbmdCb3g6AGNhbGN1bGF0aW5nIHNob3J0ZXN0IHBhdGhzIGFuZCBzZXR0aW5nIHVwIHN0cmVzcyB0ZXJtczoAPHN0b3Agb2Zmc2V0PSIlLjAzZiIgc3R5bGU9InN0b3AtY29sb3I6ADxzdG9wIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6ADxzdG9wIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6AHNvbHZpbmcgbW9kZWw6AC9cOgBncmV5OQBncmF5OQBceEY5AFx4RTkAXHhEOQBceEM5AFx4QjkAXHhBOQBncmV5OTkAZ3JheTk5AFx4OTkAZ3JleTg5AGdyYXk4OQBceDg5ADAxMjM0NTY3ODkAZ3JleTc5AGdyYXk3OQBncmV5NjkAZ3JheTY5AGdyZXk1OQBncmF5NTkAZ3JleTQ5AGdyYXk0OQBncmV5MzkAZ3JheTM5AGdyZXkyOQBncmF5MjkAZ3JleTE5AGdyYXkxOQBceDE5AC9yZGd5OS85AC9idXB1OS85AC9yZHB1OS85AC9wdWJ1OS85AC95bGduYnU5LzkAL2duYnU5LzkAL3JkeWxidTkvOQAvcmRidTkvOQAvZ3JleXM5LzkAL2dyZWVuczkvOQAvYmx1ZXM5LzkAL3B1cnBsZXM5LzkAL29yYW5nZXM5LzkAL3JlZHM5LzkAL3B1b3I5LzkAL3lsb3JicjkvOQAvcHVidWduOS85AC9idWduOS85AC9wcmduOS85AC9yZHlsZ245LzkAL3lsZ245LzkAL3NwZWN0cmFsOS85AC9waXlnOS85AC9icmJnOS85AC9wdXJkOS85AC95bG9ycmQ5LzkAL29ycmQ5LzkAL3BhaXJlZDkvOQAvc2V0MzkvOQAvc2V0MTkvOQAvcGFzdGVsMTkvOQAvcGFpcmVkMTIvOQAvc2V0MzEyLzkAL3JkZ3kxMS85AC9yZHlsYnUxMS85AC9yZGJ1MTEvOQAvcHVvcjExLzkAL3ByZ24xMS85AC9yZHlsZ24xMS85AC9zcGVjdHJhbDExLzkAL3BpeWcxMS85AC9icmJnMTEvOQAvcGFpcmVkMTEvOQAvc2V0MzExLzkAL3JkZ3kxMC85AC9yZHlsYnUxMC85AC9yZGJ1MTAvOQAvcHVvcjEwLzkAL3ByZ24xMC85AC9yZHlsZ24xMC85AC9zcGVjdHJhbDEwLzkAL3BpeWcxMC85AC9icmJnMTAvOQAvcGFpcmVkMTAvOQAvc2V0MzEwLzkAZ3JleTgAZ3JheTgAXHg4AHV0ZjgAI2Y4ZjhmOAAjZThlOGU4AFx4RjgAR0lGOABceEU4AFx4RDgAXHhDOABceEI4AFx4QTgAZ3JleTk4AGdyYXk5OABceDk4AGdyZXk4OABncmF5ODgAXHg4OABncmV5NzgAZ3JheTc4AGdyZXk2OABncmF5NjgAZ3JleTU4AGdyYXk1OABncmV5NDgAZ3JheTQ4AGdyZXkzOABncmF5MzgAZ3JleTI4AGdyYXkyOABncmV5MTgAZ3JheTE4AFx4MTgAL3JkZ3k5LzgAL2J1cHU5LzgAL3JkcHU5LzgAL3B1YnU5LzgAL3lsZ25idTkvOAAvZ25idTkvOAAvcmR5bGJ1OS84AC9yZGJ1OS84AC9ncmV5czkvOAAvZ3JlZW5zOS84AC9ibHVlczkvOAAvcHVycGxlczkvOAAvb3JhbmdlczkvOAAvcmVkczkvOAAvcHVvcjkvOAAveWxvcmJyOS84AC9wdWJ1Z245LzgAL2J1Z245LzgAL3ByZ245LzgAL3JkeWxnbjkvOAAveWxnbjkvOAAvc3BlY3RyYWw5LzgAL3BpeWc5LzgAL2JyYmc5LzgAL3B1cmQ5LzgAL3lsb3JyZDkvOAAvb3JyZDkvOAAvcGFpcmVkOS84AC9zZXQzOS84AC9zZXQxOS84AC9wYXN0ZWwxOS84AC9yZGd5OC84AC9idXB1OC84AC9yZHB1OC84AC9wdWJ1OC84AC95bGduYnU4LzgAL2duYnU4LzgAL3JkeWxidTgvOAAvcmRidTgvOAAvYWNjZW50OC84AC9ncmV5czgvOAAvZ3JlZW5zOC84AC9ibHVlczgvOAAvcHVycGxlczgvOAAvb3JhbmdlczgvOAAvcmVkczgvOAAvcHVvcjgvOAAveWxvcmJyOC84AC9wdWJ1Z244LzgAL2J1Z244LzgAL3ByZ244LzgAL3JkeWxnbjgvOAAveWxnbjgvOAAvc3BlY3RyYWw4LzgAL3BpeWc4LzgAL2JyYmc4LzgAL3B1cmQ4LzgAL3lsb3JyZDgvOAAvb3JyZDgvOAAvcGFpcmVkOC84AC9zZXQzOC84AC9zZXQyOC84AC9wYXN0ZWwyOC84AC9kYXJrMjgvOAAvc2V0MTgvOAAvcGFzdGVsMTgvOAAvcGFpcmVkMTIvOAAvc2V0MzEyLzgAL3JkZ3kxMS84AC9yZHlsYnUxMS84AC9yZGJ1MTEvOAAvcHVvcjExLzgAL3ByZ24xMS84AC9yZHlsZ24xMS84AC9zcGVjdHJhbDExLzgAL3BpeWcxMS84AC9icmJnMTEvOAAvcGFpcmVkMTEvOAAvc2V0MzExLzgAL3JkZ3kxMC84AC9yZHlsYnUxMC84AC9yZGJ1MTAvOAAvcHVvcjEwLzgAL3ByZ24xMC84AC9yZHlsZ24xMC84AC9zcGVjdHJhbDEwLzgAL3BpeWcxMC84AC9icmJnMTAvOAAvcGFpcmVkMTAvOAAvc2V0MzEwLzgAdXRmLTgAQy5VVEYtOABncmV5NwBncmF5NwBceDcAXHhGNwBceEU3AFx4RDcAXHhDNwBceEI3AFx4QTcAZ3JleTk3AGdyYXk5NwBceDk3AGdyZXk4NwBncmF5ODcAXHg4NwBncmV5NzcAZ3JheTc3AGdyZXk2NwBncmF5NjcAZ3JleTU3AGdyYXk1NwBncmV5NDcAZ3JheTQ3AGdyZXkzNwBncmF5MzcAZ3JleTI3AGdyYXkyNwBncmV5MTcAZ3JheTE3AFx4MTcAL3JkZ3k5LzcAL2J1cHU5LzcAL3JkcHU5LzcAL3B1YnU5LzcAL3lsZ25idTkvNwAvZ25idTkvNwAvcmR5bGJ1OS83AC9yZGJ1OS83AC9ncmV5czkvNwAvZ3JlZW5zOS83AC9ibHVlczkvNwAvcHVycGxlczkvNwAvb3JhbmdlczkvNwAvcmVkczkvNwAvcHVvcjkvNwAveWxvcmJyOS83AC9wdWJ1Z245LzcAL2J1Z245LzcAL3ByZ245LzcAL3JkeWxnbjkvNwAveWxnbjkvNwAvc3BlY3RyYWw5LzcAL3BpeWc5LzcAL2JyYmc5LzcAL3B1cmQ5LzcAL3lsb3JyZDkvNwAvb3JyZDkvNwAvcGFpcmVkOS83AC9zZXQzOS83AC9zZXQxOS83AC9wYXN0ZWwxOS83AC9yZGd5OC83AC9idXB1OC83AC9yZHB1OC83AC9wdWJ1OC83AC95bGduYnU4LzcAL2duYnU4LzcAL3JkeWxidTgvNwAvcmRidTgvNwAvYWNjZW50OC83AC9ncmV5czgvNwAvZ3JlZW5zOC83AC9ibHVlczgvNwAvcHVycGxlczgvNwAvb3JhbmdlczgvNwAvcmVkczgvNwAvcHVvcjgvNwAveWxvcmJyOC83AC9wdWJ1Z244LzcAL2J1Z244LzcAL3ByZ244LzcAL3JkeWxnbjgvNwAveWxnbjgvNwAvc3BlY3RyYWw4LzcAL3BpeWc4LzcAL2JyYmc4LzcAL3B1cmQ4LzcAL3lsb3JyZDgvNwAvb3JyZDgvNwAvcGFpcmVkOC83AC9zZXQzOC83AC9zZXQyOC83AC9wYXN0ZWwyOC83AC9kYXJrMjgvNwAvc2V0MTgvNwAvcGFzdGVsMTgvNwAvcmRneTcvNwAvYnVwdTcvNwAvcmRwdTcvNwAvcHVidTcvNwAveWxnbmJ1Ny83AC9nbmJ1Ny83AC9yZHlsYnU3LzcAL3JkYnU3LzcAL2FjY2VudDcvNwAvZ3JleXM3LzcAL2dyZWVuczcvNwAvYmx1ZXM3LzcAL3B1cnBsZXM3LzcAL29yYW5nZXM3LzcAL3JlZHM3LzcAL3B1b3I3LzcAL3lsb3JicjcvNwAvcHVidWduNy83AC9idWduNy83AC9wcmduNy83AC9yZHlsZ243LzcAL3lsZ243LzcAL3NwZWN0cmFsNy83AC9waXlnNy83AC9icmJnNy83AC9wdXJkNy83AC95bG9ycmQ3LzcAL29ycmQ3LzcAL3BhaXJlZDcvNwAvc2V0MzcvNwAvc2V0MjcvNwAvcGFzdGVsMjcvNwAvZGFyazI3LzcAL3NldDE3LzcAL3Bhc3RlbDE3LzcAL3BhaXJlZDEyLzcAL3NldDMxMi83AC9yZGd5MTEvNwAvcmR5bGJ1MTEvNwAvcmRidTExLzcAL3B1b3IxMS83AC9wcmduMTEvNwAvcmR5bGduMTEvNwAvc3BlY3RyYWwxMS83AC9waXlnMTEvNwAvYnJiZzExLzcAL3BhaXJlZDExLzcAL3NldDMxMS83AC9yZGd5MTAvNwAvcmR5bGJ1MTAvNwAvcmRidTEwLzcAL3B1b3IxMC83AC9wcmduMTAvNwAvcmR5bGduMTAvNwAvc3BlY3RyYWwxMC83AC9waXlnMTAvNwAvYnJiZzEwLzcAL3BhaXJlZDEwLzcAL3NldDMxMC83ADEuNwBncmV5NgBncmF5NgBceDYAXHhGNgBceEU2AFx4RDYAXHhDNgBceEI2AFx4QTYAZ3JleTk2AGdyYXk5NgBceDk2AGdyZXk4NgBncmF5ODYAXHg4NgBncmV5NzYAZ3JheTc2AGdyZXk2NgBncmF5NjYAZ3JleTU2AGdyYXk1NgBncmV5NDYAZ3JheTQ2AGdyZXkzNgBncmF5MzYAZ3JleTI2AGdyYXkyNgBncmV5MTYAZ3JheTE2AFx4MTYAL3JkZ3k5LzYAL2J1cHU5LzYAL3JkcHU5LzYAL3B1YnU5LzYAL3lsZ25idTkvNgAvZ25idTkvNgAvcmR5bGJ1OS82AC9yZGJ1OS82AC9ncmV5czkvNgAvZ3JlZW5zOS82AC9ibHVlczkvNgAvcHVycGxlczkvNgAvb3JhbmdlczkvNgAvcmVkczkvNgAvcHVvcjkvNgAveWxvcmJyOS82AC9wdWJ1Z245LzYAL2J1Z245LzYAL3ByZ245LzYAL3JkeWxnbjkvNgAveWxnbjkvNgAvc3BlY3RyYWw5LzYAL3BpeWc5LzYAL2JyYmc5LzYAL3B1cmQ5LzYAL3lsb3JyZDkvNgAvb3JyZDkvNgAvcGFpcmVkOS82AC9zZXQzOS82AC9zZXQxOS82AC9wYXN0ZWwxOS82AC9yZGd5OC82AC9idXB1OC82AC9yZHB1OC82AC9wdWJ1OC82AC95bGduYnU4LzYAL2duYnU4LzYAL3JkeWxidTgvNgAvcmRidTgvNgAvYWNjZW50OC82AC9ncmV5czgvNgAvZ3JlZW5zOC82AC9ibHVlczgvNgAvcHVycGxlczgvNgAvb3JhbmdlczgvNgAvcmVkczgvNgAvcHVvcjgvNgAveWxvcmJyOC82AC9wdWJ1Z244LzYAL2J1Z244LzYAL3ByZ244LzYAL3JkeWxnbjgvNgAveWxnbjgvNgAvc3BlY3RyYWw4LzYAL3BpeWc4LzYAL2JyYmc4LzYAL3B1cmQ4LzYAL3lsb3JyZDgvNgAvb3JyZDgvNgAvcGFpcmVkOC82AC9zZXQzOC82AC9zZXQyOC82AC9wYXN0ZWwyOC82AC9kYXJrMjgvNgAvc2V0MTgvNgAvcGFzdGVsMTgvNgAvcmRneTcvNgAvYnVwdTcvNgAvcmRwdTcvNgAvcHVidTcvNgAveWxnbmJ1Ny82AC9nbmJ1Ny82AC9yZHlsYnU3LzYAL3JkYnU3LzYAL2FjY2VudDcvNgAvZ3JleXM3LzYAL2dyZWVuczcvNgAvYmx1ZXM3LzYAL3B1cnBsZXM3LzYAL29yYW5nZXM3LzYAL3JlZHM3LzYAL3B1b3I3LzYAL3lsb3JicjcvNgAvcHVidWduNy82AC9idWduNy82AC9wcmduNy82AC9yZHlsZ243LzYAL3lsZ243LzYAL3NwZWN0cmFsNy82AC9waXlnNy82AC9icmJnNy82AC9wdXJkNy82AC95bG9ycmQ3LzYAL29ycmQ3LzYAL3BhaXJlZDcvNgAvc2V0MzcvNgAvc2V0MjcvNgAvcGFzdGVsMjcvNgAvZGFyazI3LzYAL3NldDE3LzYAL3Bhc3RlbDE3LzYAL3JkZ3k2LzYAL2J1cHU2LzYAL3JkcHU2LzYAL3B1YnU2LzYAL3lsZ25idTYvNgAvZ25idTYvNgAvcmR5bGJ1Ni82AC9yZGJ1Ni82AC9hY2NlbnQ2LzYAL2dyZXlzNi82AC9ncmVlbnM2LzYAL2JsdWVzNi82AC9wdXJwbGVzNi82AC9vcmFuZ2VzNi82AC9yZWRzNi82AC9wdW9yNi82AC95bG9yYnI2LzYAL3B1YnVnbjYvNgAvYnVnbjYvNgAvcHJnbjYvNgAvcmR5bGduNi82AC95bGduNi82AC9zcGVjdHJhbDYvNgAvcGl5ZzYvNgAvYnJiZzYvNgAvcHVyZDYvNgAveWxvcnJkNi82AC9vcnJkNi82AC9wYWlyZWQ2LzYAL3NldDM2LzYAL3NldDI2LzYAL3Bhc3RlbDI2LzYAL2RhcmsyNi82AC9zZXQxNi82AC9wYXN0ZWwxNi82AC9wYWlyZWQxMi82AC9zZXQzMTIvNgAvcmRneTExLzYAL3JkeWxidTExLzYAL3JkYnUxMS82AC9wdW9yMTEvNgAvcHJnbjExLzYAL3JkeWxnbjExLzYAL3NwZWN0cmFsMTEvNgAvcGl5ZzExLzYAL2JyYmcxMS82AC9wYWlyZWQxMS82AC9zZXQzMTEvNgAvcmRneTEwLzYAL3JkeWxidTEwLzYAL3JkYnUxMC82AC9wdW9yMTAvNgAvcHJnbjEwLzYAL3JkeWxnbjEwLzYAL3NwZWN0cmFsMTAvNgAvcGl5ZzEwLzYAL2JyYmcxMC82AC9wYWlyZWQxMC82AC9zZXQzMTAvNgBncmV5NQBncmF5NQBceDUAYmlnNQBceEY1AFx4RTUAXHhENQBceEM1AFx4QjUAXHhBNQBncmV5OTUAZ3JheTk1AFx4OTUAZ3JleTg1AGdyYXk4NQBceDg1AGdyZXk3NQBncmF5NzUAZ3JleTY1AGdyYXk2NQBncmV5NTUAZ3JheTU1AGdyZXk0NQBncmF5NDUAZ3JleTM1AGdyYXkzNQBncmV5MjUAZ3JheTI1AGdyZXkxNQBncmF5MTUAXHgxNQBncmF5MDUAL3JkZ3k5LzUAL2J1cHU5LzUAL3JkcHU5LzUAL3B1YnU5LzUAL3lsZ25idTkvNQAvZ25idTkvNQAvcmR5bGJ1OS81AC9yZGJ1OS81AC9ncmV5czkvNQAvZ3JlZW5zOS81AC9ibHVlczkvNQAvcHVycGxlczkvNQAvb3JhbmdlczkvNQAvcmVkczkvNQAvcHVvcjkvNQAveWxvcmJyOS81AC9wdWJ1Z245LzUAL2J1Z245LzUAL3ByZ245LzUAL3JkeWxnbjkvNQAveWxnbjkvNQAvc3BlY3RyYWw5LzUAL3BpeWc5LzUAL2JyYmc5LzUAL3B1cmQ5LzUAL3lsb3JyZDkvNQAvb3JyZDkvNQAvcGFpcmVkOS81AC9zZXQzOS81AC9zZXQxOS81AC9wYXN0ZWwxOS81AC9yZGd5OC81AC9idXB1OC81AC9yZHB1OC81AC9wdWJ1OC81AC95bGduYnU4LzUAL2duYnU4LzUAL3JkeWxidTgvNQAvcmRidTgvNQAvYWNjZW50OC81AC9ncmV5czgvNQAvZ3JlZW5zOC81AC9ibHVlczgvNQAvcHVycGxlczgvNQAvb3JhbmdlczgvNQAvcmVkczgvNQAvcHVvcjgvNQAveWxvcmJyOC81AC9wdWJ1Z244LzUAL2J1Z244LzUAL3ByZ244LzUAL3JkeWxnbjgvNQAveWxnbjgvNQAvc3BlY3RyYWw4LzUAL3BpeWc4LzUAL2JyYmc4LzUAL3B1cmQ4LzUAL3lsb3JyZDgvNQAvb3JyZDgvNQAvcGFpcmVkOC81AC9zZXQzOC81AC9zZXQyOC81AC9wYXN0ZWwyOC81AC9kYXJrMjgvNQAvc2V0MTgvNQAvcGFzdGVsMTgvNQAvcmRneTcvNQAvYnVwdTcvNQAvcmRwdTcvNQAvcHVidTcvNQAveWxnbmJ1Ny81AC9nbmJ1Ny81AC9yZHlsYnU3LzUAL3JkYnU3LzUAL2FjY2VudDcvNQAvZ3JleXM3LzUAL2dyZWVuczcvNQAvYmx1ZXM3LzUAL3B1cnBsZXM3LzUAL29yYW5nZXM3LzUAL3JlZHM3LzUAL3B1b3I3LzUAL3lsb3JicjcvNQAvcHVidWduNy81AC9idWduNy81AC9wcmduNy81AC9yZHlsZ243LzUAL3lsZ243LzUAL3NwZWN0cmFsNy81AC9waXlnNy81AC9icmJnNy81AC9wdXJkNy81AC95bG9ycmQ3LzUAL29ycmQ3LzUAL3BhaXJlZDcvNQAvc2V0MzcvNQAvc2V0MjcvNQAvcGFzdGVsMjcvNQAvZGFyazI3LzUAL3NldDE3LzUAL3Bhc3RlbDE3LzUAL3JkZ3k2LzUAL2J1cHU2LzUAL3JkcHU2LzUAL3B1YnU2LzUAL3lsZ25idTYvNQAvZ25idTYvNQAvcmR5bGJ1Ni81AC9yZGJ1Ni81AC9hY2NlbnQ2LzUAL2dyZXlzNi81AC9ncmVlbnM2LzUAL2JsdWVzNi81AC9wdXJwbGVzNi81AC9vcmFuZ2VzNi81AC9yZWRzNi81AC9wdW9yNi81AC95bG9yYnI2LzUAL3B1YnVnbjYvNQAvYnVnbjYvNQAvcHJnbjYvNQAvcmR5bGduNi81AC95bGduNi81AC9zcGVjdHJhbDYvNQAvcGl5ZzYvNQAvYnJiZzYvNQAvcHVyZDYvNQAveWxvcnJkNi81AC9vcnJkNi81AC9wYWlyZWQ2LzUAL3NldDM2LzUAL3NldDI2LzUAL3Bhc3RlbDI2LzUAL2RhcmsyNi81AC9zZXQxNi81AC9wYXN0ZWwxNi81AC9yZGd5NS81AC9idXB1NS81AC9yZHB1NS81AC9wdWJ1NS81AC95bGduYnU1LzUAL2duYnU1LzUAL3JkeWxidTUvNQAvcmRidTUvNQAvYWNjZW50NS81AC9ncmV5czUvNQAvZ3JlZW5zNS81AC9ibHVlczUvNQAvcHVycGxlczUvNQAvb3JhbmdlczUvNQAvcmVkczUvNQAvcHVvcjUvNQAveWxvcmJyNS81AC9wdWJ1Z241LzUAL2J1Z241LzUAL3ByZ241LzUAL3JkeWxnbjUvNQAveWxnbjUvNQAvc3BlY3RyYWw1LzUAL3BpeWc1LzUAL2JyYmc1LzUAL3B1cmQ1LzUAL3lsb3JyZDUvNQAvb3JyZDUvNQAvcGFpcmVkNS81AC9zZXQzNS81AC9zZXQyNS81AC9wYXN0ZWwyNS81AC9kYXJrMjUvNQAvc2V0MTUvNQAvcGFzdGVsMTUvNQAvcGFpcmVkMTIvNQAvc2V0MzEyLzUAL3JkZ3kxMS81AC9yZHlsYnUxMS81AC9yZGJ1MTEvNQAvcHVvcjExLzUAL3ByZ24xMS81AC9yZHlsZ24xMS81AC9zcGVjdHJhbDExLzUAL3BpeWcxMS81AC9icmJnMTEvNQAvcGFpcmVkMTEvNQAvc2V0MzExLzUAL3JkZ3kxMC81AC9yZHlsYnUxMC81AC9yZGJ1MTAvNQAvcHVvcjEwLzUAL3ByZ24xMC81AC9yZHlsZ24xMC81AC9zcGVjdHJhbDEwLzUAL3BpeWcxMC81AC9icmJnMTAvNQAvcGFpcmVkMTAvNQAvc2V0MzEwLzUAYmlnLTUAQklHLTUAIC1kYXNoIDUAaXZvcnk0AGdyZXk0AGRhcmtzbGF0ZWdyYXk0AFx4NABzbm93NABsaWdodHllbGxvdzQAaG9uZXlkZXc0AHdoZWF0NAB0b21hdG80AHJvc3licm93bjQAbWFyb29uNABsaWdodHNhbG1vbjQAbGVtb25jaGlmZm9uNABzcHJpbmdncmVlbjQAZGFya29saXZlZ3JlZW40AHBhbGVncmVlbjQAZGFya3NlYWdyZWVuNABsaWdodGN5YW40AHRhbjQAcGx1bTQAc2Vhc2hlbGw0AGNvcmFsNABob3RwaW5rNABsaWdodHBpbms0AGRlZXBwaW5rNABjb3Juc2lsazQAZmlyZWJyaWNrNABraGFraTQAbGF2ZW5kZXJibHVzaDQAcGVhY2hwdWZmNABiaXNxdWU0AGxpZ2h0c2t5Ymx1ZTQAZGVlcHNreWJsdWU0AGxpZ2h0Ymx1ZTQAY2FkZXRibHVlNABkb2RnZXJibHVlNABsaWdodHN0ZWVsYmx1ZTQAcm95YWxibHVlNABzbGF0ZWJsdWU0AG5hdmFqb3doaXRlNABhbnRpcXVld2hpdGU0AGNob2NvbGF0ZTQAY2hhcnRyZXVzZTQAbWlzdHlyb3NlNABwYWxldHVycXVvaXNlNABhenVyZTQAdGhlcmU0AGFxdWFtYXJpbmU0AHRoaXN0bGU0AG1lZGl1bXB1cnBsZTQAZGFya29yYW5nZTQAbGlnaHRnb2xkZW5yb2Q0AGRhcmtnb2xkZW5yb2Q0AGJ1cmx5d29vZDQAZ29sZDQAbWVkaXVtb3JjaGlkNABkYXJrb3JjaGlkNABwYWxldmlvbGV0cmVkNABpbmRpYW5yZWQ0AG9yYW5nZXJlZDQAb2xpdmVkcmFiNABtYWdlbnRhNABzaWVubmE0AFx4RjQAXHhFNABceEQ0AFx4QzQAXHhCNABceEE0AGdyZXk5NABncmF5OTQAXHg5NABncmV5ODQAZ3JheTg0AFx4ODQAZ3JleTc0AGdyYXk3NABncmV5NjQAZ3JheTY0AGdyZXk1NABncmF5NTQAZ3JleTQ0AGdyYXk0NABncmV5MzQAZ3JheTM0AGZyYWMzNABncmV5MjQAZ3JheTI0AGdyZXkxNABncmF5MTQAXHgxNABmcmFjMTQAL3JkZ3k5LzQAL2J1cHU5LzQAL3JkcHU5LzQAL3B1YnU5LzQAL3lsZ25idTkvNAAvZ25idTkvNAAvcmR5bGJ1OS80AC9yZGJ1OS80AC9ncmV5czkvNAAvZ3JlZW5zOS80AC9ibHVlczkvNAAvcHVycGxlczkvNAAvb3JhbmdlczkvNAAvcmVkczkvNAAvcHVvcjkvNAAveWxvcmJyOS80AC9wdWJ1Z245LzQAL2J1Z245LzQAL3ByZ245LzQAL3JkeWxnbjkvNAAveWxnbjkvNAAvc3BlY3RyYWw5LzQAL3BpeWc5LzQAL2JyYmc5LzQAL3B1cmQ5LzQAL3lsb3JyZDkvNAAvb3JyZDkvNAAvcGFpcmVkOS80AC9zZXQzOS80AC9zZXQxOS80AC9wYXN0ZWwxOS80AC9yZGd5OC80AC9idXB1OC80AC9yZHB1OC80AC9wdWJ1OC80AC95bGduYnU4LzQAL2duYnU4LzQAL3JkeWxidTgvNAAvcmRidTgvNAAvYWNjZW50OC80AC9ncmV5czgvNAAvZ3JlZW5zOC80AC9ibHVlczgvNAAvcHVycGxlczgvNAAvb3JhbmdlczgvNAAvcmVkczgvNAAvcHVvcjgvNAAveWxvcmJyOC80AC9wdWJ1Z244LzQAL2J1Z244LzQAL3ByZ244LzQAL3JkeWxnbjgvNAAveWxnbjgvNAAvc3BlY3RyYWw4LzQAL3BpeWc4LzQAL2JyYmc4LzQAL3B1cmQ4LzQAL3lsb3JyZDgvNAAvb3JyZDgvNAAvcGFpcmVkOC80AC9zZXQzOC80AC9zZXQyOC80AC9wYXN0ZWwyOC80AC9kYXJrMjgvNAAvc2V0MTgvNAAvcGFzdGVsMTgvNAAvcmRneTcvNAAvYnVwdTcvNAAvcmRwdTcvNAAvcHVidTcvNAAveWxnbmJ1Ny80AC9nbmJ1Ny80AC9yZHlsYnU3LzQAL3JkYnU3LzQAL2FjY2VudDcvNAAvZ3JleXM3LzQAL2dyZWVuczcvNAAvYmx1ZXM3LzQAL3B1cnBsZXM3LzQAL29yYW5nZXM3LzQAL3JlZHM3LzQAL3B1b3I3LzQAL3lsb3JicjcvNAAvcHVidWduNy80AC9idWduNy80AC9wcmduNy80AC9yZHlsZ243LzQAL3lsZ243LzQAL3NwZWN0cmFsNy80AC9waXlnNy80AC9icmJnNy80AC9wdXJkNy80AC95bG9ycmQ3LzQAL29ycmQ3LzQAL3BhaXJlZDcvNAAvc2V0MzcvNAAvc2V0MjcvNAAvcGFzdGVsMjcvNAAvZGFyazI3LzQAL3NldDE3LzQAL3Bhc3RlbDE3LzQAL3JkZ3k2LzQAL2J1cHU2LzQAL3JkcHU2LzQAL3B1YnU2LzQAL3lsZ25idTYvNAAvZ25idTYvNAAvcmR5bGJ1Ni80AC9yZGJ1Ni80AC9hY2NlbnQ2LzQAL2dyZXlzNi80AC9ncmVlbnM2LzQAL2JsdWVzNi80AC9wdXJwbGVzNi80AC9vcmFuZ2VzNi80AC9yZWRzNi80AC9wdW9yNi80AC95bG9yYnI2LzQAL3B1YnVnbjYvNAAvYnVnbjYvNAAvcHJnbjYvNAAvcmR5bGduNi80AC95bGduNi80AC9zcGVjdHJhbDYvNAAvcGl5ZzYvNAAvYnJiZzYvNAAvcHVyZDYvNAAveWxvcnJkNi80AC9vcnJkNi80AC9wYWlyZWQ2LzQAL3NldDM2LzQAL3NldDI2LzQAL3Bhc3RlbDI2LzQAL2RhcmsyNi80AC9zZXQxNi80AC9wYXN0ZWwxNi80AC9yZGd5NS80AC9idXB1NS80AC9yZHB1NS80AC9wdWJ1NS80AC95bGduYnU1LzQAL2duYnU1LzQAL3JkeWxidTUvNAAvcmRidTUvNAAvYWNjZW50NS80AC9ncmV5czUvNAAvZ3JlZW5zNS80AC9ibHVlczUvNAAvcHVycGxlczUvNAAvb3JhbmdlczUvNAAvcmVkczUvNAAvcHVvcjUvNAAveWxvcmJyNS80AC9wdWJ1Z241LzQAL2J1Z241LzQAL3ByZ241LzQAL3JkeWxnbjUvNAAveWxnbjUvNAAvc3BlY3RyYWw1LzQAL3BpeWc1LzQAL2JyYmc1LzQAL3B1cmQ1LzQAL3lsb3JyZDUvNAAvb3JyZDUvNAAvcGFpcmVkNS80AC9zZXQzNS80AC9zZXQyNS80AC9wYXN0ZWwyNS80AC9kYXJrMjUvNAAvc2V0MTUvNAAvcGFzdGVsMTUvNAAvcmRneTQvNAAvYnVwdTQvNAAvcmRwdTQvNAAvcHVidTQvNAAveWxnbmJ1NC80AC9nbmJ1NC80AC9yZHlsYnU0LzQAL3JkYnU0LzQAL2FjY2VudDQvNAAvZ3JleXM0LzQAL2dyZWVuczQvNAAvYmx1ZXM0LzQAL3B1cnBsZXM0LzQAL29yYW5nZXM0LzQAL3JlZHM0LzQAL3B1b3I0LzQAL3lsb3JicjQvNAAvcHVidWduNC80AC9idWduNC80AC9wcmduNC80AC9yZHlsZ240LzQAL3lsZ240LzQAL3NwZWN0cmFsNC80AC9waXlnNC80AC9icmJnNC80AC9wdXJkNC80AC95bG9ycmQ0LzQAL29ycmQ0LzQAL3BhaXJlZDQvNAAvc2V0MzQvNAAvc2V0MjQvNAAvcGFzdGVsMjQvNAAvZGFyazI0LzQAL3NldDE0LzQAL3Bhc3RlbDE0LzQAL3BhaXJlZDEyLzQAL3NldDMxMi80AC9yZGd5MTEvNAAvcmR5bGJ1MTEvNAAvcmRidTExLzQAL3B1b3IxMS80AC9wcmduMTEvNAAvcmR5bGduMTEvNAAvc3BlY3RyYWwxMS80AC9waXlnMTEvNAAvYnJiZzExLzQAL3BhaXJlZDExLzQAL3NldDMxMS80AC9yZGd5MTAvNAAvcmR5bGJ1MTAvNAAvcmRidTEwLzQAL3B1b3IxMC80AC9wcmduMTAvNAAvcmR5bGduMTAvNAAvc3BlY3RyYWwxMC80AC9waXlnMTAvNAAvYnJiZzEwLzQAL3BhaXJlZDEwLzQAL3NldDMxMC80ADEuNABuID49IDQAc2lkZXMgPT0gNABpdm9yeTMAU3BhcnNlTWF0cml4X211bHRpcGx5MwBncmV5MwBkYXJrc2xhdGVncmF5MwBceDMAc25vdzMAbGlnaHR5ZWxsb3czAGhvbmV5ZGV3MwB3aGVhdDMAc3VwMwB0b21hdG8zAHJvc3licm93bjMAbWFyb29uMwBsaWdodHNhbG1vbjMAbGVtb25jaGlmZm9uMwBzcHJpbmdncmVlbjMAZGFya29saXZlZ3JlZW4zAHBhbGVncmVlbjMAZGFya3NlYWdyZWVuMwBsaWdodGN5YW4zAHRhbjMAcGx1bTMAc2Vhc2hlbGwzAGNvcmFsMwBob3RwaW5rMwBsaWdodHBpbmszAGRlZXBwaW5rMwBjb3Juc2lsazMAZmlyZWJyaWNrMwBraGFraTMAbGF2ZW5kZXJibHVzaDMAcGVhY2hwdWZmMwBiaXNxdWUzAGxpZ2h0c2t5Ymx1ZTMAZGVlcHNreWJsdWUzAGxpZ2h0Ymx1ZTMAY2FkZXRibHVlMwBkb2RnZXJibHVlMwBsaWdodHN0ZWVsYmx1ZTMAcm95YWxibHVlMwBzbGF0ZWJsdWUzAG5hdmFqb3doaXRlMwBhbnRpcXVld2hpdGUzAGNob2NvbGF0ZTMAY2hhcnRyZXVzZTMAbWlzdHlyb3NlMwBwYWxldHVycXVvaXNlMwBhenVyZTMAYXF1YW1hcmluZTMAdGhpc3RsZTMAbWVkaXVtcHVycGxlMwBkYXJrb3JhbmdlMwBsaWdodGdvbGRlbnJvZDMAZGFya2dvbGRlbnJvZDMAYnVybHl3b29kMwBnb2xkMwBtZWRpdW1vcmNoaWQzAGRhcmtvcmNoaWQzAHBhbGV2aW9sZXRyZWQzAGluZGlhbnJlZDMAb3JhbmdlcmVkMwBvbGl2ZWRyYWIzAG1hZ2VudGEzAHNpZW5uYTMAXHhGMwBceEUzAFx4RDMAXHhDMwBceEIzAFx4QTMAZ3JleTkzAGdyYXk5MwBceDkzAGdyZXk4MwBncmF5ODMAXHg4MwBncmV5NzMAZ3JheTczAGdyZXk2MwBncmF5NjMAZ3JleTUzAGdyYXk1MwBncmV5NDMAZ3JheTQzAGdyZXkzMwBncmF5MzMAZ3JleTIzAGdyYXkyMwBncmV5MTMAZ3JheTEzAFx4MTMAL3JkZ3k5LzMAL2J1cHU5LzMAL3JkcHU5LzMAL3B1YnU5LzMAL3lsZ25idTkvMwAvZ25idTkvMwAvcmR5bGJ1OS8zAC9yZGJ1OS8zAC9ncmV5czkvMwAvZ3JlZW5zOS8zAC9ibHVlczkvMwAvcHVycGxlczkvMwAvb3JhbmdlczkvMwAvcmVkczkvMwAvcHVvcjkvMwAveWxvcmJyOS8zAC9wdWJ1Z245LzMAL2J1Z245LzMAL3ByZ245LzMAL3JkeWxnbjkvMwAveWxnbjkvMwAvc3BlY3RyYWw5LzMAL3BpeWc5LzMAL2JyYmc5LzMAL3B1cmQ5LzMAL3lsb3JyZDkvMwAvb3JyZDkvMwAvcGFpcmVkOS8zAC9zZXQzOS8zAC9zZXQxOS8zAC9wYXN0ZWwxOS8zAC9yZGd5OC8zAC9idXB1OC8zAC9yZHB1OC8zAC9wdWJ1OC8zAC95bGduYnU4LzMAL2duYnU4LzMAL3JkeWxidTgvMwAvcmRidTgvMwAvYWNjZW50OC8zAC9ncmV5czgvMwAvZ3JlZW5zOC8zAC9ibHVlczgvMwAvcHVycGxlczgvMwAvb3JhbmdlczgvMwAvcmVkczgvMwAvcHVvcjgvMwAveWxvcmJyOC8zAC9wdWJ1Z244LzMAL2J1Z244LzMAL3ByZ244LzMAL3JkeWxnbjgvMwAveWxnbjgvMwAvc3BlY3RyYWw4LzMAL3BpeWc4LzMAL2JyYmc4LzMAL3B1cmQ4LzMAL3lsb3JyZDgvMwAvb3JyZDgvMwAvcGFpcmVkOC8zAC9zZXQzOC8zAC9zZXQyOC8zAC9wYXN0ZWwyOC8zAC9kYXJrMjgvMwAvc2V0MTgvMwAvcGFzdGVsMTgvMwAvcmRneTcvMwAvYnVwdTcvMwAvcmRwdTcvMwAvcHVidTcvMwAveWxnbmJ1Ny8zAC9nbmJ1Ny8zAC9yZHlsYnU3LzMAL3JkYnU3LzMAL2FjY2VudDcvMwAvZ3JleXM3LzMAL2dyZWVuczcvMwAvYmx1ZXM3LzMAL3B1cnBsZXM3LzMAL29yYW5nZXM3LzMAL3JlZHM3LzMAL3B1b3I3LzMAL3lsb3JicjcvMwAvcHVidWduNy8zAC9idWduNy8zAC9wcmduNy8zAC9yZHlsZ243LzMAL3lsZ243LzMAL3NwZWN0cmFsNy8zAC9waXlnNy8zAC9icmJnNy8zAC9wdXJkNy8zAC95bG9ycmQ3LzMAL29ycmQ3LzMAL3BhaXJlZDcvMwAvc2V0MzcvMwAvc2V0MjcvMwAvcGFzdGVsMjcvMwAvZGFyazI3LzMAL3NldDE3LzMAL3Bhc3RlbDE3LzMAL3JkZ3k2LzMAL2J1cHU2LzMAL3JkcHU2LzMAL3B1YnU2LzMAL3lsZ25idTYvMwAvZ25idTYvMwAvcmR5bGJ1Ni8zAC9yZGJ1Ni8zAC9hY2NlbnQ2LzMAL2dyZXlzNi8zAC9ncmVlbnM2LzMAL2JsdWVzNi8zAC9wdXJwbGVzNi8zAC9vcmFuZ2VzNi8zAC9yZWRzNi8zAC9wdW9yNi8zAC95bG9yYnI2LzMAL3B1YnVnbjYvMwAvYnVnbjYvMwAvcHJnbjYvMwAvcmR5bGduNi8zAC95bGduNi8zAC9zcGVjdHJhbDYvMwAvcGl5ZzYvMwAvYnJiZzYvMwAvcHVyZDYvMwAveWxvcnJkNi8zAC9vcnJkNi8zAC9wYWlyZWQ2LzMAL3NldDM2LzMAL3NldDI2LzMAL3Bhc3RlbDI2LzMAL2RhcmsyNi8zAC9zZXQxNi8zAC9wYXN0ZWwxNi8zAC9yZGd5NS8zAC9idXB1NS8zAC9yZHB1NS8zAC9wdWJ1NS8zAC95bGduYnU1LzMAL2duYnU1LzMAL3JkeWxidTUvMwAvcmRidTUvMwAvYWNjZW50NS8zAC9ncmV5czUvMwAvZ3JlZW5zNS8zAC9ibHVlczUvMwAvcHVycGxlczUvMwAvb3JhbmdlczUvMwAvcmVkczUvMwAvcHVvcjUvMwAveWxvcmJyNS8zAC9wdWJ1Z241LzMAL2J1Z241LzMAL3ByZ241LzMAL3JkeWxnbjUvMwAveWxnbjUvMwAvc3BlY3RyYWw1LzMAL3BpeWc1LzMAL2JyYmc1LzMAL3B1cmQ1LzMAL3lsb3JyZDUvMwAvb3JyZDUvMwAvcGFpcmVkNS8zAC9zZXQzNS8zAC9zZXQyNS8zAC9wYXN0ZWwyNS8zAC9kYXJrMjUvMwAvc2V0MTUvMwAvcGFzdGVsMTUvMwAvcmRneTQvMwAvYnVwdTQvMwAvcmRwdTQvMwAvcHVidTQvMwAveWxnbmJ1NC8zAC9nbmJ1NC8zAC9yZHlsYnU0LzMAL3JkYnU0LzMAL2FjY2VudDQvMwAvZ3JleXM0LzMAL2dyZWVuczQvMwAvYmx1ZXM0LzMAL3B1cnBsZXM0LzMAL29yYW5nZXM0LzMAL3JlZHM0LzMAL3B1b3I0LzMAL3lsb3JicjQvMwAvcHVidWduNC8zAC9idWduNC8zAC9wcmduNC8zAC9yZHlsZ240LzMAL3lsZ240LzMAL3NwZWN0cmFsNC8zAC9waXlnNC8zAC9icmJnNC8zAC9wdXJkNC8zAC95bG9ycmQ0LzMAL29ycmQ0LzMAL3BhaXJlZDQvMwAvc2V0MzQvMwAvc2V0MjQvMwAvcGFzdGVsMjQvMwAvZGFyazI0LzMAL3NldDE0LzMAL3Bhc3RlbDE0LzMAL3JkZ3kzLzMAL2J1cHUzLzMAL3JkcHUzLzMAL3B1YnUzLzMAL3lsZ25idTMvMwAvZ25idTMvMwAvcmR5bGJ1My8zAC9yZGJ1My8zAC9hY2NlbnQzLzMAL2dyZXlzMy8zAC9ncmVlbnMzLzMAL2JsdWVzMy8zAC9wdXJwbGVzMy8zAC9vcmFuZ2VzMy8zAC9yZWRzMy8zAC9wdW9yMy8zAC95bG9yYnIzLzMAL3B1YnVnbjMvMwAvYnVnbjMvMwAvcHJnbjMvMwAvcmR5bGduMy8zAC95bGduMy8zAC9zcGVjdHJhbDMvMwAvcGl5ZzMvMwAvYnJiZzMvMwAvcHVyZDMvMwAveWxvcnJkMy8zAC9vcnJkMy8zAC9wYWlyZWQzLzMAL3NldDMzLzMAL3NldDIzLzMAL3Bhc3RlbDIzLzMAL2RhcmsyMy8zAC9zZXQxMy8zAC9wYXN0ZWwxMy8zAC9wYWlyZWQxMi8zAC9zZXQzMTIvMwAvcmRneTExLzMAL3JkeWxidTExLzMAL3JkYnUxMS8zAC9wdW9yMTEvMwAvcHJnbjExLzMAL3JkeWxnbjExLzMAL3NwZWN0cmFsMTEvMwAvcGl5ZzExLzMAL2JyYmcxMS8zAC9wYWlyZWQxMS8zAC9zZXQzMTEvMwAvcmRneTEwLzMAL3JkeWxidTEwLzMAL3JkYnUxMC8zAC9wdW9yMTAvMwAvcHJnbjEwLzMAL3JkeWxnbjEwLzMAL3NwZWN0cmFsMTAvMwAvcGl5ZzEwLzMAL2JyYmcxMC8zAC9wYWlyZWQxMC8zAC9zZXQzMTAvMwBpdm9yeTIAZ3JleTIAZGFya3NsYXRlZ3JheTIAXHgyAHNub3cyAGxpZ2h0eWVsbG93MgBob25leWRldzIAUlRyZWVJbnNlcnQyAHdoZWF0MgBzdXAyAG5vcDIAdG9tYXRvMgByb3N5YnJvd24yAG1hcm9vbjIAbGlnaHRzYWxtb24yAGxlbW9uY2hpZmZvbjIAc3ByaW5nZ3JlZW4yAGRhcmtvbGl2ZWdyZWVuMgBwYWxlZ3JlZW4yAGRhcmtzZWFncmVlbjIAbGlnaHRjeWFuMgB0YW4yAHBsdW0yAHNlYXNoZWxsMgBjb3JhbDIAaG90cGluazIAbGlnaHRwaW5rMgBkZWVwcGluazIAY29ybnNpbGsyAGZpcmVicmljazIAa2hha2kyAGxhdmVuZGVyYmx1c2gyAHBlYWNocHVmZjIAYnJvbnplMgBiaXNxdWUyAGxpZ2h0c2t5Ymx1ZTIAZGVlcHNreWJsdWUyAGxpZ2h0Ymx1ZTIAY2FkZXRibHVlMgBkb2RnZXJibHVlMgBsaWdodHN0ZWVsYmx1ZTIAcm95YWxibHVlMgBzbGF0ZWJsdWUyAG5hdmFqb3doaXRlMgBhbnRpcXVld2hpdGUyAGNob2NvbGF0ZTIAY2hhcnRyZXVzZTIAbWlzdHlyb3NlMgBwYWxldHVycXVvaXNlMgBhenVyZTIAYXF1YW1hcmluZTIAdGhpc3RsZTIAbWVkaXVtcHVycGxlMgBkYXJrb3JhbmdlMgBsaWdodGdvbGRlbnJvZDIAZGFya2dvbGRlbnJvZDIAYnVybHl3b29kMgBnb2xkMgBtZWRpdW1vcmNoaWQyAGRhcmtvcmNoaWQyAHBhbGV2aW9sZXRyZWQyAGluZGlhbnJlZDIAb3JhbmdlcmVkMgBvbGl2ZWRyYWIyAG1hZ2VudGEyAHNpZW5uYTIAXHhGMgBceEUyAFx4RDIAXHhDMgBceEIyAFx4QTIAZ3JleTkyAGdyYXk5MgBceDkyAGdyZXk4MgBncmF5ODIAXHg4MgBncmV5NzIAZ3JheTcyAGdyZXk2MgBncmF5NjIAZ3JleTUyAGdyYXk1MgBncmV5NDIAZ3JheTQyAGdyZXkzMgBncmF5MzIAZ3JleTIyAGdyYXkyMgBncmV5MTIAZ3JheTEyAFx4MTIAZnJhYzEyAC9wYWlyZWQxMi8xMgAvc2V0MzEyLzEyAC9yZGd5OS8yAC9idXB1OS8yAC9yZHB1OS8yAC9wdWJ1OS8yAC95bGduYnU5LzIAL2duYnU5LzIAL3JkeWxidTkvMgAvcmRidTkvMgAvZ3JleXM5LzIAL2dyZWVuczkvMgAvYmx1ZXM5LzIAL3B1cnBsZXM5LzIAL29yYW5nZXM5LzIAL3JlZHM5LzIAL3B1b3I5LzIAL3lsb3JicjkvMgAvcHVidWduOS8yAC9idWduOS8yAC9wcmduOS8yAC9yZHlsZ245LzIAL3lsZ245LzIAL3NwZWN0cmFsOS8yAC9waXlnOS8yAC9icmJnOS8yAC9wdXJkOS8yAC95bG9ycmQ5LzIAL29ycmQ5LzIAL3BhaXJlZDkvMgAvc2V0MzkvMgAvc2V0MTkvMgAvcGFzdGVsMTkvMgAvcmRneTgvMgAvYnVwdTgvMgAvcmRwdTgvMgAvcHVidTgvMgAveWxnbmJ1OC8yAC9nbmJ1OC8yAC9yZHlsYnU4LzIAL3JkYnU4LzIAL2FjY2VudDgvMgAvZ3JleXM4LzIAL2dyZWVuczgvMgAvYmx1ZXM4LzIAL3B1cnBsZXM4LzIAL29yYW5nZXM4LzIAL3JlZHM4LzIAL3B1b3I4LzIAL3lsb3JicjgvMgAvcHVidWduOC8yAC9idWduOC8yAC9wcmduOC8yAC9yZHlsZ244LzIAL3lsZ244LzIAL3NwZWN0cmFsOC8yAC9waXlnOC8yAC9icmJnOC8yAC9wdXJkOC8yAC95bG9ycmQ4LzIAL29ycmQ4LzIAL3BhaXJlZDgvMgAvc2V0MzgvMgAvc2V0MjgvMgAvcGFzdGVsMjgvMgAvZGFyazI4LzIAL3NldDE4LzIAL3Bhc3RlbDE4LzIAL3JkZ3k3LzIAL2J1cHU3LzIAL3JkcHU3LzIAL3B1YnU3LzIAL3lsZ25idTcvMgAvZ25idTcvMgAvcmR5bGJ1Ny8yAC9yZGJ1Ny8yAC9hY2NlbnQ3LzIAL2dyZXlzNy8yAC9ncmVlbnM3LzIAL2JsdWVzNy8yAC9wdXJwbGVzNy8yAC9vcmFuZ2VzNy8yAC9yZWRzNy8yAC9wdW9yNy8yAC95bG9yYnI3LzIAL3B1YnVnbjcvMgAvYnVnbjcvMgAvcHJnbjcvMgAvcmR5bGduNy8yAC95bGduNy8yAC9zcGVjdHJhbDcvMgAvcGl5ZzcvMgAvYnJiZzcvMgAvcHVyZDcvMgAveWxvcnJkNy8yAC9vcnJkNy8yAC9wYWlyZWQ3LzIAL3NldDM3LzIAL3NldDI3LzIAL3Bhc3RlbDI3LzIAL2RhcmsyNy8yAC9zZXQxNy8yAC9wYXN0ZWwxNy8yAC9yZGd5Ni8yAC9idXB1Ni8yAC9yZHB1Ni8yAC9wdWJ1Ni8yAC95bGduYnU2LzIAL2duYnU2LzIAL3JkeWxidTYvMgAvcmRidTYvMgAvYWNjZW50Ni8yAC9ncmV5czYvMgAvZ3JlZW5zNi8yAC9ibHVlczYvMgAvcHVycGxlczYvMgAvb3JhbmdlczYvMgAvcmVkczYvMgAvcHVvcjYvMgAveWxvcmJyNi8yAC9wdWJ1Z242LzIAL2J1Z242LzIAL3ByZ242LzIAL3JkeWxnbjYvMgAveWxnbjYvMgAvc3BlY3RyYWw2LzIAL3BpeWc2LzIAL2JyYmc2LzIAL3B1cmQ2LzIAL3lsb3JyZDYvMgAvb3JyZDYvMgAvcGFpcmVkNi8yAC9zZXQzNi8yAC9zZXQyNi8yAC9wYXN0ZWwyNi8yAC9kYXJrMjYvMgAvc2V0MTYvMgAvcGFzdGVsMTYvMgAvcmRneTUvMgAvYnVwdTUvMgAvcmRwdTUvMgAvcHVidTUvMgAveWxnbmJ1NS8yAC9nbmJ1NS8yAC9yZHlsYnU1LzIAL3JkYnU1LzIAL2FjY2VudDUvMgAvZ3JleXM1LzIAL2dyZWVuczUvMgAvYmx1ZXM1LzIAL3B1cnBsZXM1LzIAL29yYW5nZXM1LzIAL3JlZHM1LzIAL3B1b3I1LzIAL3lsb3JicjUvMgAvcHVidWduNS8yAC9idWduNS8yAC9wcmduNS8yAC9yZHlsZ241LzIAL3lsZ241LzIAL3NwZWN0cmFsNS8yAC9waXlnNS8yAC9icmJnNS8yAC9wdXJkNS8yAC95bG9ycmQ1LzIAL29ycmQ1LzIAL3BhaXJlZDUvMgAvc2V0MzUvMgAvc2V0MjUvMgAvcGFzdGVsMjUvMgAvZGFyazI1LzIAL3NldDE1LzIAL3Bhc3RlbDE1LzIAL3JkZ3k0LzIAL2J1cHU0LzIAL3JkcHU0LzIAL3B1YnU0LzIAL3lsZ25idTQvMgAvZ25idTQvMgAvcmR5bGJ1NC8yAC9yZGJ1NC8yAC9hY2NlbnQ0LzIAL2dyZXlzNC8yAC9ncmVlbnM0LzIAL2JsdWVzNC8yAC9wdXJwbGVzNC8yAC9vcmFuZ2VzNC8yAC9yZWRzNC8yAC9wdW9yNC8yAC95bG9yYnI0LzIAL3B1YnVnbjQvMgAvYnVnbjQvMgAvcHJnbjQvMgAvcmR5bGduNC8yAC95bGduNC8yAC9zcGVjdHJhbDQvMgAvcGl5ZzQvMgAvYnJiZzQvMgAvcHVyZDQvMgAveWxvcnJkNC8yAC9vcnJkNC8yAC9wYWlyZWQ0LzIAL3NldDM0LzIAL3NldDI0LzIAL3Bhc3RlbDI0LzIAL2RhcmsyNC8yAC9zZXQxNC8yAC9wYXN0ZWwxNC8yAC9yZGd5My8yAC9idXB1My8yAC9yZHB1My8yAC9wdWJ1My8yAC95bGduYnUzLzIAL2duYnUzLzIAL3JkeWxidTMvMgAvcmRidTMvMgAvYWNjZW50My8yAC9ncmV5czMvMgAvZ3JlZW5zMy8yAC9ibHVlczMvMgAvcHVycGxlczMvMgAvb3JhbmdlczMvMgAvcmVkczMvMgAvcHVvcjMvMgAveWxvcmJyMy8yAC9wdWJ1Z24zLzIAL2J1Z24zLzIAL3ByZ24zLzIAL3JkeWxnbjMvMgAveWxnbjMvMgAvc3BlY3RyYWwzLzIAL3BpeWczLzIAL2JyYmczLzIAL3B1cmQzLzIAL3lsb3JyZDMvMgAvb3JyZDMvMgAvcGFpcmVkMy8yAC9zZXQzMy8yAC9zZXQyMy8yAC9wYXN0ZWwyMy8yAC9kYXJrMjMvMgAvc2V0MTMvMgAvcGFzdGVsMTMvMgAvcGFpcmVkMTIvMgAvc2V0MzEyLzIAL3JkZ3kxMS8yAC9yZHlsYnUxMS8yAC9yZGJ1MTEvMgAvcHVvcjExLzIAL3ByZ24xMS8yAC9yZHlsZ24xMS8yAC9zcGVjdHJhbDExLzIAL3BpeWcxMS8yAC9icmJnMTEvMgAvcGFpcmVkMTEvMgAvc2V0MzExLzIAL3JkZ3kxMC8yAC9yZHlsYnUxMC8yAC9yZGJ1MTAvMgAvcHVvcjEwLzIAL3ByZ24xMC8yAC9yZHlsZ24xMC8yAC9zcGVjdHJhbDEwLzIAL3BpeWcxMC8yAC9icmJnMTAvMgAvcGFpcmVkMTAvMgAvc2V0MzEwLzIAMTMuMS4yACAtZGFzaCAyAHN6ID49IDIAbGVuID49IDIAZXhwID09IDEgfHwgZXhwID09IDIAZGltID09IDIATkRfb3V0KHYpLnNpemUgPT0gMgBpdm9yeTEAZ3JleTEAZGFya3NsYXRlZ3JheTEAXHgxAHNub3cxAGxpZ2h0eWVsbG93MQBob25leWRldzEAbnNsaW1pdDEAd2hlYXQxAHN1cDEAbm9wMQB0b21hdG8xAHJvc3licm93bjEAbWFyb29uMQBsaWdodHNhbG1vbjEAbGVtb25jaGlmZm9uMQBsYXRpbjEAYWdvcGVuMQBzcHJpbmdncmVlbjEAZGFya29saXZlZ3JlZW4xAHBhbGVncmVlbjEAZGFya3NlYWdyZWVuMQBsaWdodGN5YW4xAHRhbjEAcGx1bTEAc2Vhc2hlbGwxAGNvcmFsMQBob3RwaW5rMQBsaWdodHBpbmsxAGRlZXBwaW5rMQBjb3Juc2lsazEAZmlyZWJyaWNrMQBqMCA8PSBpMSAmJiBpMSA8PSBqMQBraGFraTEAbGF2ZW5kZXJibHVzaDEAcGVhY2hwdWZmMQBiaXNxdWUxAGxpZ2h0c2t5Ymx1ZTEAZGVlcHNreWJsdWUxAGxpZ2h0Ymx1ZTEAY2FkZXRibHVlMQBkb2RnZXJibHVlMQBsaWdodHN0ZWVsYmx1ZTEAcm95YWxibHVlMQBzbGF0ZWJsdWUxAG5hdmFqb3doaXRlMQBhbnRpcXVld2hpdGUxAGNob2NvbGF0ZTEAY2hhcnRyZXVzZTEAbWlzdHlyb3NlMQBwYWxldHVycXVvaXNlMQBhenVyZTEAYXF1YW1hcmluZTEAdGhpc3RsZTEAbWVkaXVtcHVycGxlMQBkYXJrb3JhbmdlMQBhcmdfZTAgJiYgYXJnX2UxAGxpZ2h0Z29sZGVucm9kMQBkYXJrZ29sZGVucm9kMQBidXJseXdvb2QxAGdvbGQxAG1lZGl1bW9yY2hpZDEAZGFya29yY2hpZDEAcGFsZXZpb2xldHJlZDEAaW5kaWFucmVkMQBvcmFuZ2VyZWQxAG9saXZlZHJhYjEAbWFnZW50YTEAc2llbm5hMQBceEYxAFx4RTEAXHhEMQBceEMxAFx4QjEAXHhBMQBncmV5OTEAZ3JheTkxAFx4OTEAZ3JleTgxAGdyYXk4MQBceDgxAGdyZXk3MQBncmF5NzEAZ3JleTYxAGdyYXk2MQBncmV5NTEAZ3JheTUxAGdyZXk0MQBncmF5NDEAZ3JleTMxAGdyYXkzMQBncmV5MjEAZ3JheTIxAGdyZXkxMQBncmF5MTEAXHgxMQAvcGFpcmVkMTIvMTEAL3NldDMxMi8xMQAvcmRneTExLzExAC9yZHlsYnUxMS8xMQAvcmRidTExLzExAC9wdW9yMTEvMTEAL3ByZ24xMS8xMQAvcmR5bGduMTEvMTEAL3NwZWN0cmFsMTEvMTEAL3BpeWcxMS8xMQAvYnJiZzExLzExAC9wYWlyZWQxMS8xMQAvc2V0MzExLzExAGNzW2ldLT5zbGFjaygpPi0wLjAwMDAwMDEAL3JkZ3k5LzEAL2J1cHU5LzEAL3JkcHU5LzEAL3B1YnU5LzEAL3lsZ25idTkvMQAvZ25idTkvMQAvcmR5bGJ1OS8xAC9yZGJ1OS8xAC9ncmV5czkvMQAvZ3JlZW5zOS8xAC9ibHVlczkvMQAvcHVycGxlczkvMQAvb3JhbmdlczkvMQAvcmVkczkvMQAvcHVvcjkvMQAveWxvcmJyOS8xAC9wdWJ1Z245LzEAL2J1Z245LzEAL3ByZ245LzEAL3JkeWxnbjkvMQAveWxnbjkvMQAvc3BlY3RyYWw5LzEAL3BpeWc5LzEAL2JyYmc5LzEAL3B1cmQ5LzEAL3lsb3JyZDkvMQAvb3JyZDkvMQAvcGFpcmVkOS8xAC9zZXQzOS8xAC9zZXQxOS8xAC9wYXN0ZWwxOS8xAC9yZGd5OC8xAC9idXB1OC8xAC9yZHB1OC8xAC9wdWJ1OC8xAC95bGduYnU4LzEAL2duYnU4LzEAL3JkeWxidTgvMQAvcmRidTgvMQAvYWNjZW50OC8xAC9ncmV5czgvMQAvZ3JlZW5zOC8xAC9ibHVlczgvMQAvcHVycGxlczgvMQAvb3JhbmdlczgvMQAvcmVkczgvMQAvcHVvcjgvMQAveWxvcmJyOC8xAC9wdWJ1Z244LzEAL2J1Z244LzEAL3ByZ244LzEAL3JkeWxnbjgvMQAveWxnbjgvMQAvc3BlY3RyYWw4LzEAL3BpeWc4LzEAL2JyYmc4LzEAL3B1cmQ4LzEAL3lsb3JyZDgvMQAvb3JyZDgvMQAvcGFpcmVkOC8xAC9zZXQzOC8xAC9zZXQyOC8xAC9wYXN0ZWwyOC8xAC9kYXJrMjgvMQAvc2V0MTgvMQAvcGFzdGVsMTgvMQAvcmRneTcvMQAvYnVwdTcvMQAvcmRwdTcvMQAvcHVidTcvMQAveWxnbmJ1Ny8xAC9nbmJ1Ny8xAC9yZHlsYnU3LzEAL3JkYnU3LzEAL2FjY2VudDcvMQAvZ3JleXM3LzEAL2dyZWVuczcvMQAvYmx1ZXM3LzEAL3B1cnBsZXM3LzEAL29yYW5nZXM3LzEAL3JlZHM3LzEAL3B1b3I3LzEAL3lsb3JicjcvMQAvcHVidWduNy8xAC9idWduNy8xAC9wcmduNy8xAC9yZHlsZ243LzEAL3lsZ243LzEAL3NwZWN0cmFsNy8xAC9waXlnNy8xAC9icmJnNy8xAC9wdXJkNy8xAC95bG9ycmQ3LzEAL29ycmQ3LzEAL3BhaXJlZDcvMQAvc2V0MzcvMQAvc2V0MjcvMQAvcGFzdGVsMjcvMQAvZGFyazI3LzEAL3NldDE3LzEAL3Bhc3RlbDE3LzEAL3JkZ3k2LzEAL2J1cHU2LzEAL3JkcHU2LzEAL3B1YnU2LzEAL3lsZ25idTYvMQAvZ25idTYvMQAvcmR5bGJ1Ni8xAC9yZGJ1Ni8xAC9hY2NlbnQ2LzEAL2dyZXlzNi8xAC9ncmVlbnM2LzEAL2JsdWVzNi8xAC9wdXJwbGVzNi8xAC9vcmFuZ2VzNi8xAC9yZWRzNi8xAC9wdW9yNi8xAC95bG9yYnI2LzEAL3B1YnVnbjYvMQAvYnVnbjYvMQAvcHJnbjYvMQAvcmR5bGduNi8xAC95bGduNi8xAC9zcGVjdHJhbDYvMQAvcGl5ZzYvMQAvYnJiZzYvMQAvcHVyZDYvMQAveWxvcnJkNi8xAC9vcnJkNi8xAC9wYWlyZWQ2LzEAL3NldDM2LzEAL3NldDI2LzEAL3Bhc3RlbDI2LzEAL2RhcmsyNi8xAC9zZXQxNi8xAC9wYXN0ZWwxNi8xAC9yZGd5NS8xAC9idXB1NS8xAC9yZHB1NS8xAC9wdWJ1NS8xAC95bGduYnU1LzEAL2duYnU1LzEAL3JkeWxidTUvMQAvcmRidTUvMQAvYWNjZW50NS8xAC9ncmV5czUvMQAvZ3JlZW5zNS8xAC9ibHVlczUvMQAvcHVycGxlczUvMQAvb3JhbmdlczUvMQAvcmVkczUvMQAvcHVvcjUvMQAveWxvcmJyNS8xAC9wdWJ1Z241LzEAL2J1Z241LzEAL3ByZ241LzEAL3JkeWxnbjUvMQAveWxnbjUvMQAvc3BlY3RyYWw1LzEAL3BpeWc1LzEAL2JyYmc1LzEAL3B1cmQ1LzEAL3lsb3JyZDUvMQAvb3JyZDUvMQAvcGFpcmVkNS8xAC9zZXQzNS8xAC9zZXQyNS8xAC9wYXN0ZWwyNS8xAC9kYXJrMjUvMQAvc2V0MTUvMQAvcGFzdGVsMTUvMQAvcmRneTQvMQAvYnVwdTQvMQAvcmRwdTQvMQAvcHVidTQvMQAveWxnbmJ1NC8xAC9nbmJ1NC8xAC9yZHlsYnU0LzEAL3JkYnU0LzEAL2FjY2VudDQvMQAvZ3JleXM0LzEAL2dyZWVuczQvMQAvYmx1ZXM0LzEAL3B1cnBsZXM0LzEAL29yYW5nZXM0LzEAL3JlZHM0LzEAL3B1b3I0LzEAL3lsb3JicjQvMQAvcHVidWduNC8xAC9idWduNC8xAC9wcmduNC8xAC9yZHlsZ240LzEAL3lsZ240LzEAL3NwZWN0cmFsNC8xAC9waXlnNC8xAC9icmJnNC8xAC9wdXJkNC8xAC95bG9ycmQ0LzEAL29ycmQ0LzEAL3BhaXJlZDQvMQAvc2V0MzQvMQAvc2V0MjQvMQAvcGFzdGVsMjQvMQAvZGFyazI0LzEAL3NldDE0LzEAL3Bhc3RlbDE0LzEAL3JkZ3kzLzEAL2J1cHUzLzEAL3JkcHUzLzEAL3B1YnUzLzEAL3lsZ25idTMvMQAvZ25idTMvMQAvcmR5bGJ1My8xAC9yZGJ1My8xAC9hY2NlbnQzLzEAL2dyZXlzMy8xAC9ncmVlbnMzLzEAL2JsdWVzMy8xAC9wdXJwbGVzMy8xAC9vcmFuZ2VzMy8xAC9yZWRzMy8xAC9wdW9yMy8xAC95bG9yYnIzLzEAL3B1YnVnbjMvMQAvYnVnbjMvMQAvcHJnbjMvMQAvcmR5bGduMy8xAC95bGduMy8xAC9zcGVjdHJhbDMvMQAvcGl5ZzMvMQAvYnJiZzMvMQAvcHVyZDMvMQAveWxvcnJkMy8xAC9vcnJkMy8xAC9wYWlyZWQzLzEAL3NldDMzLzEAL3NldDIzLzEAL3Bhc3RlbDIzLzEAL2RhcmsyMy8xAC9zZXQxMy8xAC9wYXN0ZWwxMy8xAC9wYWlyZWQxMi8xAC9zZXQzMTIvMQAvcmRneTExLzEAL3JkeWxidTExLzEAL3JkYnUxMS8xAC9wdW9yMTEvMQAvcHJnbjExLzEAL3JkeWxnbjExLzEAL3NwZWN0cmFsMTEvMQAvcGl5ZzExLzEAL2JyYmcxMS8xAC9wYWlyZWQxMS8xAC9zZXQzMTEvMQAvcmRneTEwLzEAL3JkeWxidTEwLzEAL3JkYnUxMC8xAC9wdW9yMTAvMQAvcHJnbjEwLzEAL3JkeWxnbjEwLzEAL3NwZWN0cmFsMTAvMQAvcGl5ZzEwLzEAL2JyYmcxMC8xAC9wYWlyZWQxMC8xAC9zZXQzMTAvMQBsYXRpbi0xAElTT184ODU5LTEASVNPODg1OS0xAElTTy04ODU5LTEAaSA+PSAxAHEtPm4gPT0gMQBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0ucGFydGl0aW9uW2ldID09IDAgfHwgcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLnBhcnRpdGlvbltpXSA9PSAxAGJ6LnNpemUgJSAzID09IDEAZWRnZV9saXN0X3NpemUoJmN0eC0+VHJlZV9lZGdlKSA9PSBjdHgtPk5fbm9kZXMgLSAxAG5vZGVfc2V0X3NpemUoZy0+bl9pZCkgPT0gb3NpemUgKyAxAG4tPmNvdW50ICsgKCpubiktPmNvdW50ID09IE5PREVDQVJEICsgMQBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0uY291bnRbMF0gKyBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0uY291bnRbMV0gPT0gTk9ERUNBUkQgKyAxAGdyZXkwAGdyYXkwAGpzb24wACNmMGYwZjAAI2UwZTBlMAB4Yi0+dS5zLmxvY2F0ZWQgPiBBR1hCVUZfSU5MSU5FX1NJWkVfMABcMABUMABceEYwAFx4RTAAXHhEMABceEMwAFx4QjAAXHhBMABncmV5OTAAZ3JheTkwAFx4OTAAZ3JleTgwAGdyYXk4MABceDgwACM4MDgwODAAZ3JleTcwAGdyYXk3MABjY3dyb3QgPT0gMCB8fCBjY3dyb3QgPT0gOTAgfHwgY2N3cm90ID09IDE4MCB8fCBjY3dyb3QgPT0gMjcwAGN3cm90ID09IDAgfHwgY3dyb3QgPT0gOTAgfHwgY3dyb3QgPT0gMTgwIHx8IGN3cm90ID09IDI3MABncmV5NjAAZ3JheTYwAGdyZXk1MABncmF5NTAAZ3JleTQwAGdyYXk0MAByLndpZHRoKCk8MWU0MABncmV5MzAAZ3JheTMwACMzMDMwMzAAZ3JleTIwAGdyYXkyMAAyMDI1MDgwOC4yMzIwAGdyZXkxMABncmF5MTAAXHgxMAAjMTAxMDEwAC9wYWlyZWQxMi8xMAAvc2V0MzEyLzEwAC9yZGd5MTEvMTAAL3JkeWxidTExLzEwAC9yZGJ1MTEvMTAAL3B1b3IxMS8xMAAvcHJnbjExLzEwAC9yZHlsZ24xMS8xMAAvc3BlY3RyYWwxMS8xMAAvcGl5ZzExLzEwAC9icmJnMTEvMTAAL3BhaXJlZDExLzEwAC9zZXQzMTEvMTAAL3JkZ3kxMC8xMAAvcmR5bGJ1MTAvMTAAL3JkYnUxMC8xMAAvcHVvcjEwLzEwAC9wcmduMTAvMTAAL3JkeWxnbjEwLzEwAC9zcGVjdHJhbDEwLzEwAC9waXlnMTAvMTAAL2JyYmcxMC8xMAAvcGFpcmVkMTAvMTAAL3NldDMxMC8xMAAxMjAwAGdyZXkxMDAAZ3JheTEwMABJU08tSVItMTAwADEwMDAwACUhUFMtQWRvYmUtMy4wAG56ID4gMABsaXN0LT5jYXBhY2l0eSA+IDAAZGlzdCA+IDAAcGF0aGNvdW50ID4gMAB3Z3QgPiAwAG5zaXRlcyA+IDAAc2lkZXMgPiAwAHJ2ID09IDAgfHwgKE5EX29yZGVyKHJ2KS1ORF9vcmRlcih2KSkqZGlyID4gMABsZW4gPiAwAHF0MS0+biA+IDAgJiYgcXQyLT5uID4gMAB3aWR0aCA+IDAAbGlzdC0+c2l6ZSA+IDAAZGljdC0+c2l6ZSA+IDAAc3BsLT5zaXplID4gMABzZWxmLT5zaXplID4gMABiei5zaXplID4gMABib3VuZCA+IDAAZ3JhcGgtPndlaWdodHNbeF0gPiAwAGdyYXBoLT53ZWlnaHRzW25fZWRnZXNdID4gMABtID4gMCAmJiBuID4gMCAmJiBueiA+PSAwAHQgPj0gMABubm9kZXMgPj0gMABuX29icyA+PSAwAG4gPj0gMABuLT5sZXZlbCA+PSAwAHRvdGFsID49IDAAb3JpZ2luYWwgPj0gMABNYXhyYW5rID49IDAAUGFjayA+PSAwAGlpIDwgMTw8ZGltICYmIGlpID49IDAAd2lkdGggPj0gMABqZGlhZyA+PSAwAGlkaWFnID49IDAAZCA+PSAwAHJ0cC0+c3BsaXQuUGFydGl0aW9uc1swXS5jb3VudFswXSA+PSAwICYmIHJ0cC0+c3BsaXQuUGFydGl0aW9uc1swXS5jb3VudFsxXSA+PSAwAFYgPj0gMABhZ25ub2RlcyhncmFwaCkgPj0gMABhZ25ub2RlcyhnKSA+PSAwAEVEX3RyZWVfaW5kZXgoZSkgPj0gMABFRF9jb3VudChlKSA+PSAwAG9ianAxLT5zei54ID09IDAgJiYgb2JqcDEtPnN6LnkgPT0gMABjX2NudCA9PSAwAHJhbmtfcmVzdWx0ID09IDAAZ2V0dGltZW9mZGF5X3JlcyA9PSAwAGogPT0gMABORF9pbihyaWdodCkuc2l6ZSArIE5EX291dChyaWdodCkuc2l6ZSA9PSAwAGEuc2hhcGUgPT0gMCB8fCBiLnNoYXBlID09IDAAZHRzaXplKGRlc3QpID09IDAAZHRzaXplKGctPm5fc2VxKSA9PSAwAGR0c2l6ZShnLT5nX3NlcSkgPT0gMABkdHNpemUoZy0+ZV9zZXEpID09IDAAR0RfbWlucmFuayhnKSA9PSAwAGR0c2l6ZShnLT5nX2lkKSA9PSAwAGR0c2l6ZShnLT5lX2lkKSA9PSAwAGNvc3ggIT0gMCB8fCBzaW54ICE9IDAAbWVtY21wKCZzdHlsZSwgJihncmFwaHZpel9wb2x5Z29uX3N0eWxlX3QpezB9LCBzaXplb2Yoc3R5bGUpKSAhPSAwAHJlc3VsdCA9PSAoaW50KShzaXplIC0gMSkgfHwgcmVzdWx0IDwgMABtYXNrW2lpXSA8IDAATkRfaGVhcGluZGV4KHYpIDwgMABcLwBYMTEvAGd2UmVuZGVySm9icyAlczogJS4yZiBzZWNzLgAlLipzLgBzcGVjaWZpZWQgcm9vdCBub2RlICIlcyIgd2FzIG5vdCBmb3VuZC4AR3JhcGggJXMgaGFzIGFycmF5IHBhY2tpbmcgd2l0aCB1c2VyIHZhbHVlcyBidXQgbm8gInNvcnR2IiBhdHRyaWJ1dGVzIGFyZSBkZWZpbmVkLgAxLgAtMC4AJSFQUy1BZG9iZS0AJVBERi0APCEtLQAgLAArACoAc3RyZXEoYXB0ci0+dS5uYW1lLEtleSkAIWlzX2V4YWN0bHlfZXF1YWwoUi54LCBRLngpIHx8ICFpc19leGFjdGx5X2VxdWFsKFIueSwgUS55KQBORF9vcmRlcih2KSA8IE5EX29yZGVyKHcpAHUgPT0gVUZfZmluZCh1KQAhcG9pbnRzX2lzX2VtcHR5KHBsaXN0KQAhb2JqbGlzdF9pc19lbXB0eShsaXN0KQAhc2ZvbnRfaXNfZW1wdHkobGlzdCkAIXJvd3NfaXNfZW1wdHkobGlzdCkAIXRzdHNfaXNfZW1wdHkobGlzdCkAIXBvaW50c19pc19lbXB0eShsaXN0KQAhY29sb3JzZWdzX2lzX2VtcHR5KGxpc3QpACFkZnNfc3RhY2tfaXNfZW1wdHkobGlzdCkAIXBic19zaXplX2lzX2VtcHR5KGxpc3QpAG9iamxpc3RfaXNfY29udGlndW91cyhsaXN0KQBkZWdsaXN0X2lzX2NvbnRpZ3VvdXMobGlzdCkAbm9kZWxpc3RfaXNfY29udGlndW91cyhsaXN0KQBjbGlzdF9pc19jb250aWd1b3VzKGxpc3QpAG5vZGVfbGlzdF9pc19jb250aWd1b3VzKGxpc3QpAGVkZ2Vfc2V0X2lzX2NvbnRpZ3VvdXMobGlzdCkAcG9pbnRzX2lzX2NvbnRpZ3VvdXMobGlzdCkAc3Ryc19pc19jb250aWd1b3VzKGxpc3QpAEFncmFwaHNfaXNfY29udGlndW91cyhsaXN0KQBib3hlc19pc19jb250aWd1b3VzKGxpc3QpAGxheWVyX25hbWVzX2lzX2NvbnRpZ3VvdXMobGlzdCkAc25vZGVzX2lzX2NvbnRpZ3VvdXMobGlzdCkAdmFyYXJyX2lzX2NvbnRpZ3VvdXMobGlzdCkAYmV6aWVyX3BhdGhfaXNfY29udGlndW91cyhsaXN0KQBwYnNfc2l6ZV9pc19jb250aWd1b3VzKGxpc3QpAG9uZSA8PSBub2RlbGlzdF9zaXplKGxpc3QpAG5wIDwgbm9kZWxpc3Rfc2l6ZShsaXN0KQBzdGQ6OmlzX2hlYXAoaGVhcC5iZWdpbigpLCBoZWFwLmVuZCgpLCBndCkAIShxLT5xdHMpACFpbnRzX2lzX2VtcHR5KCZsZWF2ZXMpAG9uX2hlYXAocikAbm9kZV9zZXRfc2l6ZShnLT5uX2lkKSA9PSAoc2l6ZV90KWR0c2l6ZShnLT5uX3NlcSkATkRfcmFuayhmcm9tKSA8IE5EX3JhbmsodG8pAG5vdCB3ZWxsLWZvcm1lZCAoaW52YWxpZCB0b2tlbikAYWdzdWJyZXAoZyxuKQBuICE9IE5EX25leHQobikAZmluZF9mYXN0X25vZGUoZywgbikAKG51bGwpACghamNuKSAmJiAoIXZhbCkAIShxLT5sKQBzeW0tPmlkID49IDAgJiYgc3ltLT5pZCA8IHRvcGRpY3RzaXplKG9iaikAbW92ZSB0byAoJS4wZiwgJS4wZikAOyBzcGxpbmUgdG8gKCUuMGYsICUuMGYpADsgbGluZSB0byAoJS4wZiwgJS4wZikAU3BhcnNlTWF0cml4X2lzX3N5bW1ldHJpYyhBLCB0cnVlKQB2YWx1ZSAmJiBzdHJsZW4odmFsdWUpAFNwYXJzZU1hdHJpeF9pc19zeW1tZXRyaWMoQSwgZmFsc2UpACF1c2Vfc3RhZ2UgfHwgc2l6ZSA8PSBzaXplb2Yoc3RhZ2UpAEVEX2xhYmVsKGZlKQAhVFJFRV9FREdFKGUpACFjb25zdHJhaW5pbmdfZmxhdF9lZGdlKGcsIGUpAG5vZGVfc2V0X2lzX2VtcHR5KGctPm5faWQpAHJfJWQpAGxfJWQpAChsaWIpACFTcGFyc2VNYXRyaXhfaGFzX2RpYWdvbmFsKEEpACBzY2FubmluZyBhIEhUTUwgc3RyaW5nIChtaXNzaW5nICc+Jz8gYmFkIG5lc3Rpbmc/IGxvbmdlciB0aGFuICVkPykAIHNjYW5uaW5nIGEgcXVvdGVkIHN0cmluZyAobWlzc2luZyBlbmRxdW90ZT8gbG9uZ2VyIHRoYW4gJWQ/KQAgc2Nhbm5pbmcgYSAvKi4uLiovIGNvbW1lbnQgKG1pc3NpbmcgJyovPyBsb25nZXIgdGhhbiAlZD8pAGZhbGxiYWNrKDQpAG9uX2hlYXAocjApIHx8IG9uX2hlYXAocjEpAGFndGFpbChlKSA9PSBVRl9maW5kKGFndGFpbChlKSkAYWdoZWFkKGUpID09IFVGX2ZpbmQoYWdoZWFkKGUpKQBvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXlfZ2V0X25leHRfYnVmZmVyKCkAb3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X2NyZWF0ZV9idWZmZXIoKQBvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXllbnN1cmVfYnVmZmVyX3N0YWNrKCkAc3RyZXEobW9kZSwgInIiKSB8fCBzdHJlcShtb2RlLCAicmIiKSB8fCBzdHJlcShtb2RlLCAidyIpIHx8IHN0cmVxKG1vZGUsICJ3YiIpAHBuYW1lICE9IE5VTEwgJiYgIXN0cmVxKHBuYW1lLCAiIikAc2V0bGluZXdpZHRoKAApIHJvdGF0ZSglZCkgdHJhbnNsYXRlKAAgdHJhbnNmb3JtPSJzY2FsZSgATk9UQVRJT04oACAoACBuZWFyICclcycAJWxmLCVsZiwlbGYsJyVbXiddJwBpc2RpZ2l0KChpbnQpZG90cFsxXSkgJiYgaXNkaWdpdCgoaW50KWRvdHBbMl0pICYmIGRvdHBbM10gPT0gJ1wwJwAmACUAJAB1cmwoIwA8dGV4dFBhdGggeGxpbms6aHJlZj0iIwA8YXJlYSBzaGFwZT0icG9seSIAIGZpbGw9IiMlMDJ4JTAyeCUwMngiAChzZXEgJiBTRVFfTUFTSykgPT0gc2VxICYmICJzZXF1ZW5jZSBJRCBvdmVyZmxvdyIAZ3Zfc29ydF9jb21wYXIgPT0gTlVMTCAmJiBndl9zb3J0X2FyZyA9PSBOVUxMICYmICJ1bnN1cHBvcnRlZCByZWN1cnNpdmUgY2FsbCB0byBndl9zb3J0IgBndl9zb3J0X2NvbXBhciAhPSBOVUxMICYmICJubyBjb21wYXJhdG9yIHNldCBpbiBndl9zb3J0IgBvcC0+b3AudS5wb2x5Z29uLmNudCA8PSBJTlRfTUFYICYmICJwb2x5Z29uIGNvdW50IGV4Y2VlZHMgZ3ZyZW5kZXJfcG9seWdvbiBzdXBwb3J0IgAgdGV4dC1hbmNob3I9InN0YXJ0IgBwLnggIT0gYSAmJiAiY2Fubm90IGhhbmRsZSBlbGxpcHNlIHRhbmdlbnQgc2xvcGUgaW4gaG9yaXpvbnRhbCBleHRyZW1lIHBvaW50IgBmdWxsX2xlbmd0aF93aXRob3V0X3NoYWZ0ID4gMCAmJiAibm9uLXBvc2l0aXZlIGZ1bGwgbGVuZ3RoIHdpdGhvdXQgc2hhZnQiADxhcmVhIHNoYXBlPSJyZWN0IgBzaXplID4gMCAmJiAiYXR0ZW1wdCB0byBhbGxvY2F0ZSBhcnJheSBvZiAwLXNpemVkIGVsZW1lbnRzIgBpbmRleCA8IHNlbGYtPnNpemVfYml0cyAmJiAib3V0IG9mIGJvdW5kcyBhY2Nlc3MiAGluZGV4IDwgc2VsZi5zaXplX2JpdHMgJiYgIm91dCBvZiBib3VuZHMgYWNjZXNzIgAqczEgIT0gKnMyICYmICJkdXBsaWNhdGUgc2VwYXJhdG9yIGNoYXJhY3RlcnMiAEdEX21pbnJhbmsoc3ViZykgPD0gR0RfbWF4cmFuayhzdWJnKSAmJiAiY29ycnVwdGVkIHJhbmsgYm91bmRzIgBpbmRleCA8IGxpc3QtPnNpemUgJiYgImluZGV4IG91dCBvZiBib3VuZHMiAGluZGV4IDwgbm9kZWxpc3Rfc2l6ZShsaXN0KSAmJiAiaW5kZXggb3V0IG9mIGJvdW5kcyIAaW5kZXggPCBlZGdlX2xpc3Rfc2l6ZShsaXN0KSAmJiAiaW5kZXggb3V0IG9mIGJvdW5kcyIAaW5kZXggPCB0cmFwc19zaXplKGxpc3QpICYmICJpbmRleCBvdXQgb2YgYm91bmRzIgBpbmRleCA8IG5vZGVzX3NpemUobGlzdCkgJiYgImluZGV4IG91dCBvZiBib3VuZHMiACh1aW50cHRyX3QpcyAlIDIgPT0gMCAmJiAiaGVhcCBwb2ludGVyIHdpdGggbG93IGJpdCBzZXQgd2lsbCBjb2xsaWRlIHdpdGggYW5vbnltb3VzIElEcyIAICgrJTZsZCBieXRlcyAlc3wldSwgeG1scGFyc2UuYzolZCkgJSpzIgAgZm9udC1mYW1pbHk9IiVzIgAgZm9udC13ZWlnaHQ9IiVzIgAgZmlsbD0iJXMiACBmb250LXN0cmV0Y2g9IiVzIgAgZm9udC1zdHlsZT0iJXMiAGJhZCBlZGdlIGxlbiAiJXMiACBiYXNlbGluZS1zaGlmdD0ic3VwZXIiAGFneGJsZW4oeGIpIDw9IHNpemVvZih4Yi0+dS5zdG9yZSkgJiYgImFneGJ1ZiBjb3JydXB0aW9uIgBjZWxsLnJvdyA8IHRhYmxlLT5yb3dfY291bnQgJiYgIm91dCBvZiByYW5nZSBjZWxsIgBjZWxsLmNvbCA8IHRhYmxlLT5jb2x1bW5fY291bnQgJiYgIm91dCBvZiByYW5nZSBjZWxsIgAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIAZnVsbF9sZW5ndGggPiAwICYmICJub24tcG9zaXRpdmUgZnVsbCBsZW5ndGgiAGZ1bGxfYmFzZV93aWR0aCA+IDAgJiYgIm5vbi1wb3NpdGl2ZSBmdWxsIGJhc2Ugd2lkdGgiAG5vbWluYWxfYmFzZV93aWR0aCA+IDAgJiYgIm5vbi1wb3NpdGl2ZSBub21pbmFsIGJhc2Ugd2lkdGgiACIgd2lkdGg9IiVncHgiIGhlaWdodD0iJWdweCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4gbWVldCIgeD0iJWciIHk9IiVnIgAiIHdpZHRoPSIlZ3B4IiBoZWlnaHQ9IiVncHgiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiIHg9IiVnIiB5PSIlZyIAIGZvbnQtc2l6ZT0iJS4yZiIAIGZpbGwtb3BhY2l0eT0iJWYiADx0ZXh0IHhtbDpzcGFjZT0icHJlc2VydmUiAGlzZmluaXRlKG0pICYmICJlbGxpcHNlIHRhbmdlbnQgc2xvcGUgaXMgaW5maW5pdGUiACh4Yi0+dS5zLmxvY2F0ZWQgPT0gQUdYQlVGX09OX0hFQVAgfHwgeGItPnUucy5sb2NhdGVkIDw9IHNpemVvZih4Yi0+dS5zdG9yZSkpICYmICJjb3JydXB0ZWQgYWd4YnVmIHR5cGUiACB0ZXh0LWFuY2hvcj0ibWlkZGxlIgA8YXJlYSBzaGFwZT0iY2lyY2xlIgBjZWxsLT5yb3cgKyBjZWxsLT5yb3dzcGFuIDw9IHRhYmxlLT5yb3dfY291bnQgJiYgImNlbGwgc3BhbnMgaGlnaGVyIHRoYW4gY29udGFpbmluZyB0YWJsZSIAY2VsbC5yb3cgKyBjZWxsLnJvd3NwYW4gPD0gdGFibGUtPnJvd19jb3VudCAmJiAiY2VsbCBzcGFucyBoaWdoZXIgdGhhbiBjb250YWluaW5nIHRhYmxlIgBjZWxsLT5jb2wgKyBjZWxsLT5jb2xzcGFuIDw9IHRhYmxlLT5jb2x1bW5fY291bnQgJiYgImNlbGwgc3BhbnMgd2lkZXIgdGhhbiBjb250YWluaW5nIHRhYmxlIgBjZWxsLmNvbCArIGNlbGwuY29sc3BhbiA8PSB0YWJsZS0+Y29sdW1uX2NvdW50ICYmICJjZWxsIHNwYW5zIHdpZGVyIHRoYW4gY29udGFpbmluZyB0YWJsZSIAb2xkX25tZW1iIDwgU0laRV9NQVggLyBzaXplICYmICJjbGFpbWVkIHByZXZpb3VzIGV4dGVudCBpcyB0b28gbGFyZ2UiAHRoZXRhID49IDAgJiYgdGhldGEgPD0gTV9QSSAmJiAidGhldGEgb3V0IG9mIHJhbmdlIgB0YWJsZS0+aGVpZ2h0cyA9PSBOVUxMICYmICJ0YWJsZSBoZWlnaHRzIGNvbXB1dGVkIHR3aWNlIgB0YWJsZS0+d2lkdGhzID09IE5VTEwgJiYgInRhYmxlIHdpZHRocyBjb21wdXRlZCB0d2ljZSIAIHRleHQtYW5jaG9yPSJlbmQiACBmb250LXdlaWdodD0iYm9sZCIAIGZvbnQtc3R5bGU9Iml0YWxpYyIAIGJhc2VsaW5lLXNoaWZ0PSJzdWIiAFwiAGxsZW4gPD0gSU5UX01BWCAmJiAiWE1MIHRva2VuIHRvbyBsb25nIGZvciBleHBhdCBBUEkiACIgcnk9IgBfcCIgc3RhcnRPZmZzZXQ9IjUwJSI+PHRzcGFuIHg9IjAiIGR5PSIAIiBjeT0iACIgeT0iACIgcng9IgAgY3g9IgAgeD0iACB0YXJnZXQ9IgAgcG9pbnRzPSIAIGNvb3Jkcz0iACB0ZXh0LWRlY29yYXRpb249IgAgZmlsbD0iACIgc3Ryb2tlLXdpZHRoPSIAPGltYWdlIHhsaW5rOmhyZWY9IgA8P3htbC1zdHlsZXNoZWV0IGhyZWY9IgAiIG5hbWU9IgAgeGxpbms6dGl0bGU9IgAgdGl0bGU9IgAiIHN0cm9rZT0iADxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9IgA8ZGVmcz4KPHJhZGlhbEdyYWRpZW50IGlkPSIAPG1hcCBpZD0iADxnIGlkPSIAIGQ9IgAiIHkyPSIAIiB4Mj0iACIgeTE9IgB4MT0iACB2aWV3Qm94PSIlZC4wMCAlZC4wMCAlZC4wMCAlZC4wMCIAIHRyYW5zZm9ybT0icm90YXRlKCVkICVnICVnKSIAYWd4YmxlbigmY3R4LT5TYnVmKSA9PSAwICYmICJwZW5kaW5nIHN0cmluZyBkYXRhIHRoYXQgd2FzIG5vdCBjb25zdW1lZCAobWlzc2luZyAiICJlbmRzdHIoKS9lbmRodG1sc3RyKCk/KSIAIGFsdD0iIgBDeWNsZSBFcnJvciEAUHVyZSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGxlZCEAPCEtLSBHZW5lcmF0ZWQgYnkgACVzJXp1IC0jJTAyeCUwMnglMDJ4JTAyeCAAJXMlenUgLSMlMDJ4JTAyeCUwMnggACVjICV6dSAAdCAldSAAIGNyZWF0ZSB0ZXh0IAB4TGF5b3V0IABkZWZhdWx0IABzdHJpY3QgACVzJXp1IC0lcyAAIC1zbW9vdGggYmV6aWVyIAAgbW92ZXRvIAAgdmVyc2lvbiAAIGNyZWF0ZSBwb2x5Z29uIAAgLXRleHQgeyVzfSAtZmlsbCAAIGNyZWF0ZSBvdmFsIAAgLXdpZHRoIABuZXdwYXRoIABncmFwaCAAcywlLjVnLCUuNWcgACUuNWcsJS41ZywlLjVnLCUuNWcgAGUsJS41ZywlLjVnIAAlZyAlZyAAJS4wM2xmIAAlLjNmIAAlZCAlZCAlZCAlZCAlZCAlZCAlLjFmICUuNGYgJWQgJS4xZiAlLjFmICUuMGYgJS4wZiAAIC1vdXRsaW5lIAAgY3JlYXRlIGxpbmUgAG5vZGUgACVkIABUb3RhbCBzaXplID4gMSBpbiAiJXMiIGNvbG9yIHNwZWMgAFsgL1JlY3QgWyAAVCAAUyAAT1BFTiAASSAARiAARSAAQyAAIC0+IABSYW5rIHNlcGFyYXRpb24gPSAAbmV0d29yayBzaW1wbGV4OiAAVW5zYXRpc2ZpZWQgY29uc3RyYWludDogAENhbGN1bGF0aW5nIHNob3J0ZXN0IHBhdGhzOiAAJXM6IABTb2x2aW5nIG1vZGVsOiAAU2V0dGluZyB1cCBzcHJpbmcgbW9kZWw6IABjb252ZXJ0IGdyYXBoOiAAIFRpdGxlOiAAW0dyYXBodml6XSAlczolZDogJTA0ZC0lMDJkLSUwMmQgJTAyZDolMDJkOiAAInRleHQiOiAAeyJmcmFjIjogJS4wM2YsICJjb2xvciI6IAAibmFtZSI6IAAic3R5bGUiOiAAImZhY2UiOiAAMiAAPCEtLSAAIC0tIAAlIABfcCIgAGxfJWQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAADSAgICAgICAgICAgICAgICBpdGVyID0gJWQsIHN0ZXAgPSAlZiBGbm9ybSA9ICVmIG56ID0gJWQgIEsgPSAlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAACiAgICAAOgkgACAgICAlc30KAHRyeWluZyB0byBhZGQgdG8gcmVjdCB7JWYgKy8tICVmLCAlZiArLy0gJWZ9CgAjZGVmYXVsdCB7IGZpbmlzaCB7IGFtYmllbnQgMC4xIGRpZmZ1c2UgMC45IH0gfQoAcGlnbWVudCB7IGNvbG9yICVzIH0KAGxpZ2h0X3NvdXJjZSB7IDwxNTAwLDMwMDAsLTI1MDA+IGNvbG9yIFdoaXRlIH0KAGdsb2JhbF9zZXR0aW5ncyB7IGFzc3VtZWRfZ2FtbWEgMS4wIH0KACAgICB0ZXh0dXJlIEltYWdlVGV4dHVyZSB7IHVybCAiJXMiIH0KACAgICB9CgAvL3NreQpwbGFuZSB7IDwwLCAxLCAwPiwgMSBob2xsb3cKICAgIHRleHR1cmUgewogICAgICAgIHBpZ21lbnQgeyBib3pvIHR1cmJ1bGVuY2UgMC45NQogICAgICAgICAgICBjb2xvcl9tYXAgewogICAgICAgICAgICAgICAgWzAuMDAgcmdiIDwwLjA1LCAwLjIwLCAwLjUwPl0KICAgICAgICAgICAgICAgIFswLjUwIHJnYiA8MC4wNSwgMC4yMCwgMC41MD5dCiAgICAgICAgICAgICAgICBbMC43NSByZ2IgPDEuMDAsIDEuMDAsIDEuMDA+XQogICAgICAgICAgICAgICAgWzAuNzUgcmdiIDwwLjI1LCAwLjI1LCAwLjI1Pl0KICAgICAgICAgICAgICAgIFsxLjAwIHJnYiA8MC41MCwgMC41MCwgMC41MD5dCiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2NhbGUgPDEuMDAsIDEuMDAsIDEuNTA+ICogMi41MAogICAgICAgICAgICB0cmFuc2xhdGUgPDAuMDAsIDAuMDAsIDAuMDA+CiAgICAgICAgfQogICAgICAgIGZpbmlzaCB7IGFtYmllbnQgMSBkaWZmdXNlIDAgfQogICAgfQogICAgc2NhbGUgMTAwMDAKfQovL21pc3QKZm9nIHsgZm9nX3R5cGUgMgogICAgZGlzdGFuY2UgNTAKICAgIGNvbG9yIHJnYiA8MS4wMCwgMS4wMCwgMS4wMD4gKiAwLjc1CiAgICBmb2dfb2Zmc2V0IDAuMTAKICAgIGZvZ19hbHQgMS41MAogICAgdHVyYnVsZW5jZSAxLjc1Cn0KLy9nbmQKcGxhbmUgeyA8MC4wMCwgMS4wMCwgMC4wMD4sIDAKICAgIHRleHR1cmUgewogICAgICAgIHBpZ21lbnR7IGNvbG9yIHJnYiA8MC4yNSwgMC40NSwgMC4wMD4gfQogICAgICAgIG5vcm1hbCB7IGJ1bXBzIDAuNzUgc2NhbGUgMC4wMSB9CiAgICAgICAgZmluaXNoIHsgcGhvbmcgMC4xMCB9CiAgICB9Cn0KAGNhbWVyYSB7IGxvY2F0aW9uIDwlLjNmICwgJS4zZiAsIC01MDAuMDAwPgogICAgICAgICBsb29rX2F0ICA8JS4zZiAsICUuM2YgLCAwLjAwMD4KICAgICAgICAgcmlnaHQgeCAqIGltYWdlX3dpZHRoIC8gaW1hZ2VfaGVpZ2h0CiAgICAgICAgIGFuZ2xlICUuM2YKfQoAICAgIG1hdGVyaWFsIE1hdGVyaWFsIHsKAFNoYXBlIHsKACAgYXBwZWFyYW5jZSBBcHBlYXJhbmNlIHsKAC91c2VyX3NoYXBlXyVkIHsKAGdyYXBoIEcgewoAYXJyb3doZWFkID0gNyAlcyBub3QgdXNlZCBieSBncmFwaHZpegoAYm94cmFkID0gMCAlcyBubyByb3VuZGVkIGNvcm5lcnMgaW4gZ3JhcGh2aXoKAG91dCBvZiBtZW1vcnkKACVzOiBjb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5CgBHcmFwaHZpeiBidWlsdCB3aXRob3V0IGFueSB0cmlhbmd1bGF0aW9uIGxpYnJhcnkKAHJlbW92ZV9vdmVybGFwOiBHcmFwaHZpeiBub3QgYnVpbHQgd2l0aCB0cmlhbmd1bGF0aW9uIGxpYnJhcnkKACVzIGZpbGwgaGFzIG5vIG1lYW5pbmcgaW4gRFdCIDIsIGdwaWMgY2FuIHVzZSBmaWxsIG9yIGZpbGxlZCwgMTB0aCBFZGl0aW9uIHVzZXMgZmlsbCBvbmx5CgBib3hyYWQ9Mi4wICVzIHdpbGwgYmUgcmVzZXQgdG8gMC4wIGJ5IGdwaWMgb25seQoAJWQgJWQgIyUwMnglMDJ4JTAyeAoASGVhcCBvdmVyZmxvdwoAdGV4dCB7CiAgICB0dGYgIiVzIiwKICAgICIlcyIsICUuM2YsICUuM2YKICAgICAgICBub19zaGFkb3cKACVkICVkICVkICUuMGYgJWQgJWQgJWQgJWQgJWQgJS4xZiAlZCAlZCAlZCAlZCAlZCAlenUKAHRvdGFsIGFkZGVkIHNvIGZhciA9ICV6dQoAcm9vdCA9ICVzIG1heCBzdGVwcyB0byByb290ID0gJWxsdQoALnBzICUuMGYqXG4oU0Z1LyUuMGZ1CgAgIG1hcmdpbiAldQoATnVtYmVyIG9mIGl0ZXJhdGlvbnMgPSAldQoAb3ZlcmxhcCBbJXVdIDogJXUKACAlcyBhbGlnbmVkdGV4dAoAbGF5ZXJzIG5vdCBzdXBwb3J0ZWQgaW4gJXMgb3V0cHV0CgBhZGRfdHJlZV9lZGdlOiBlbXB0eSBvdXRlZGdlIGxpc3QKAGFkZF90cmVlX2VkZ2U6IGVtcHR5IGluZWRnZSBsaXN0CgBObyBsaWJ6IHN1cHBvcnQKACVzIC5QUyB3L28gYXJncyBjYXVzZXMgR05VIHBpYyB0byBzY2FsZSBkcmF3aW5nIHRvIGZpdCA4LjV4MTEgcGFwZXI7IERXQiBkb2VzIG5vdAoAJXMgR05VIHBpYyBzdXBwb3J0cyBhIGxpbmV0aGljayB2YXJpYWJsZSB0byBzZXQgbGluZSB0aGlja25lc3M7IERXQiBhbmQgMTB0aCBFZC4gZG8gbm90CgAlcyBHTlUgcGljIHN1cHBvcnRzIGEgYm94cmFkIHZhcmlhYmxlIHRvIGRyYXcgYm94ZXMgd2l0aCByb3VuZGVkIGNvcm5lcnM7IERXQiBhbmQgMTB0aCBFZC4gZG8gbm90CgAgLyVzIHNldF9mb250CgAlcyUuKnMgaXMgbm90IGEgdHJvZmYgZm9udAoAY2VsbCBzaXplIHRvbyBzbWFsbCBmb3IgY29udGVudAoAdGFibGUgc2l6ZSB0b28gc21hbGwgZm9yIGNvbnRlbnQKACUlRW5kRG9jdW1lbnQKAFVuY2xvc2VkIGNvbW1lbnQKAExhYmVsIGNsb3NlZCBiZWZvcmUgZW5kIG9mIEhUTUwgZWxlbWVudAoAUG9ydHJhaXQKAGZpeGVkIGNlbGwgc2l6ZSB3aXRoIHVuc3BlY2lmaWVkIHdpZHRoIG9yIGhlaWdodAoAZml4ZWQgdGFibGUgc2l6ZSB3aXRoIHVuc3BlY2lmaWVkIHdpZHRoIG9yIGhlaWdodAoAcG9zIGF0dHJpYnV0ZSBmb3IgZWRnZSAoJXMsJXMpIGRvZXNuJ3QgaGF2ZSAzbisxIHBvaW50cwoAICBnZW5lcmF0ZWQgJWQgY29uc3RyYWludHMKAHNwbGluZXMgYW5kIGNsdXN0ZXIgZWRnZXMgbm90IHN1cHBvcnRlZCAtIHVzaW5nIGxpbmUgc2VnbWVudHMKAG9iamVjdHMKAFdhcm5pbmc6IG5vZGUgJXMsIHBvc2l0aW9uICVzLCBleHBlY3RlZCB0d28gZmxvYXRzCgBmb250IG5hbWUgJXMgY29udGFpbnMgY2hhcmFjdGVycyB0aGF0IG1heSBub3QgYmUgYWNjZXB0ZWQgYnkgc29tZSBQUyB2aWV3ZXJzCgBmb250IG5hbWUgJXMgaXMgbG9uZ2VyIHRoYW4gMjkgY2hhcmFjdGVycyB3aGljaCBtYXkgYmUgcmVqZWN0ZWQgYnkgc29tZSBQUyB2aWV3ZXJzCgBjYW5ub3QgYWxsb2NhdGUgcHMKAHNjYWxlPTEuMCAlcyByZXF1aXJlZCBmb3IgY29tcGFyaXNvbnMKAFNldHRpbmcgaW5pdGlhbCBwb3NpdGlvbnMKACVzIERXQiAyIGNvbXBhdGliaWxpdHkgZGVmaW5pdGlvbnMKAGFycmF5IHBhY2tpbmc6ICVzICV6dSByb3dzICV6dSBjb2x1bW5zCgBzeW50YXggYW1iaWd1aXR5IC0gYmFkbHkgZGVsaW1pdGVkIG51bWJlciAnJXMnIGluIGxpbmUgJWQgb2YgJXMgc3BsaXRzIGludG8gdHdvIHRva2VucwoAZWRnZSBsYWJlbHMgd2l0aCBzcGxpbmVzPWN1cnZlZCBub3Qgc3VwcG9ydGVkIGluIGRvdCAtIHVzZSB4bGFiZWxzCgBmbGF0IGVkZ2UgYmV0d2VlbiBhZGphY2VudCBub2RlcyBvbmUgb2Ygd2hpY2ggaGFzIGEgcmVjb3JkIHNoYXBlIC0gcmVwbGFjZSByZWNvcmRzIHdpdGggSFRNTC1saWtlIGxhYmVscwoAb3V0IG9mIG1lbW9yeSB3aGVuIHRyeWluZyB0byBhbGxvY2F0ZSAlenUgYnl0ZXMKAGludGVnZXIgb3ZlcmZsb3cgd2hlbiB0cnlpbmcgdG8gYWxsb2NhdGUgJXp1ICogJXp1IGJ5dGVzCgB1cGRhdGU6IG1pc21hdGNoZWQgbGNhIGluIHRyZWV1cGRhdGVzCgBncmFwaCAlcywgY29vcmQgJXMsIGV4cGVjdGVkIGZvdXIgZG91YmxlcwoAbm9kZSAlcywgcG9zaXRpb24gJXMsIGV4cGVjdGVkIHR3byBkb3VibGVzCgBGb3VuZCAlZCBEaUctQ29MYSBib3VuZGFyaWVzCgBJbmNoZXMKACglNHp1KSAlN3p1IG5vZGVzICU3enUgZWRnZXMKAGNvbXBvdW5kRWRnZXM6IGNvdWxkIG5vdCBjb25zdHJ1Y3Qgb2JzdGFjbGVzIC0gZmFsbGluZyBiYWNrIHRvIHN0cmFpZ2h0IGxpbmUgZWRnZXMKAHRoZSBib3VuZGluZyBib3hlcyBvZiBzb21lIG5vZGVzIHRvdWNoIC0gZmFsbGluZyBiYWNrIHRvIHN0cmFpZ2h0IGxpbmUgZWRnZXMKAGNvbXBvdW5kRWRnZXM6IG5vZGVzIHRvdWNoIC0gZmFsbGluZyBiYWNrIHRvIHN0cmFpZ2h0IGxpbmUgZWRnZXMKAHNvbWUgbm9kZXMgd2l0aCBtYXJnaW4gKCUuMDJmLCUuMDJmKSB0b3VjaCAtIGZhbGxpbmcgYmFjayB0byBzdHJhaWdodCBsaW5lIGVkZ2VzCgBtZXJnZTI6IGdyYXBoICVzLCByYW5rICVkIGhhcyBvbmx5ICVkIDwgJWQgbm9kZXMKAFNjYW5uaW5nIGdyYXBoICVzLCAlZCBub2RlcwoAV2FybmluZzogbm8gaGFyZC1jb2RlZCBtZXRyaWNzIGZvciAnJXMnLiAgRmFsbGluZyBiYWNrIHRvICdUaW1lcycgbWV0cmljcwoAaW4gZWRnZSAlcyVzJXMKAFVzaW5nICVzOiAlczolcwoARm9ybWF0OiAiJXMiIG5vdCByZWNvZ25pemVkLiBVc2Ugb25lIG9mOiVzCgBMYXlvdXQgdHlwZTogIiVzIiBub3QgcmVjb2duaXplZC4gVXNlIG9uZSBvZjolcwoAbGF5b3V0ICVzCgAuZnQgJXMKAGJhZCBsYWJlbCBmb3JtYXQgJXMKAGluIHJvdXRlc3BsaW5lcywgZWRnZSBpcyBhIGxvb3AgYXQgJXMKACAgICAgICAlN2Qgbm9kZXMgJTdkIGVkZ2VzICU3enUgY29tcG9uZW50cyAlcwoAaW4gbGFiZWwgb2YgZWRnZSAlcyAlcyAlcwoAICBFZGdlICVzICVzICVzCgBvcnRobyAlcyAlcwoAcG9seWxpbmUgJXMgJXMKAHNwbGluZSAlcyAlcwoAcmVjdGFuZ2xlICglLjBmLCUuMGYpICglLjBmLCUuMGYpICVzICVzCgBpbiBjbHVzdGVyICVzCgAlcyB3YXMgYWxyZWFkeSBpbiBhIHJhbmtzZXQsIGRlbGV0ZWQgZnJvbSBjbHVzdGVyICVzCgAlcyAtPiAlczogdGFpbCBub3QgaW5zaWRlIHRhaWwgY2x1c3RlciAlcwoAJXMgLT4gJXM6IGhlYWQgaXMgaW5zaWRlIHRhaWwgY2x1c3RlciAlcwoAaGVhZCBjbHVzdGVyICVzIGluc2lkZSB0YWlsIGNsdXN0ZXIgJXMKAGhlYWQgbm9kZSAlcyBpbnNpZGUgdGFpbCBjbHVzdGVyICVzCgAlcyAtPiAlczogaGVhZCBub3QgaW5zaWRlIGhlYWQgY2x1c3RlciAlcwoAJXMgLT4gJXM6IHRhaWwgaXMgaW5zaWRlIGhlYWQgY2x1c3RlciAlcwoAdGFpbCBjbHVzdGVyICVzIGluc2lkZSBoZWFkIGNsdXN0ZXIgJXMKAHRhaWwgbm9kZSAlcyBpbnNpZGUgaGVhZCBjbHVzdGVyICVzCgBVbmhhbmRsZWQgYWRqdXN0IG9wdGlvbiAlcwoAcmVwb3NpdGlvbiAlcwoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCB4bGFiZWwgJXMKAG5vIHBvc2l0aW9uIGZvciBlZGdlIHdpdGggdGFpbCBsYWJlbCAlcwoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCBsYWJlbCAlcwoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCBoZWFkIGxhYmVsICVzCgAvLyoqKiBiZWdpbl9ncmFwaCAlcwoATWF4LiBpdGVyYXRpb25zICglZCkgcmVhY2hlZCBvbiBncmFwaCAlcwoAQ291bGQgbm90IHBhcnNlICJfYmFja2dyb3VuZCIgYXR0cmlidXRlIGluIGdyYXBoICVzCgBpbiBsYWJlbCBvZiBncmFwaCAlcwoAQ3JlYXRpbmcgZWRnZXMgdXNpbmcgJXMKAEFkanVzdGluZyAlcyB1c2luZyAlcwoAJXMgd2hpbGUgb3BlbmluZyAlcwoAZGVyaXZlIGdyYXBoIF9kZ18lZCBvZiAlcwoAIF0gICV6dSB0cnVlICVzCgBdICAlZCB0cnVlICVzCgAgXSAgJXp1IGZhbHNlICVzCgBdICAlZCBmYWxzZSAlcwoAbWFrZVBvbHk6IHVua25vd24gc2hhcGUgdHlwZSAlcwoAbWFrZUFkZFBvbHk6IHVua25vd24gc2hhcGUgdHlwZSAlcwoAdXNpbmcgJXMgZm9yIHVua25vd24gc2hhcGUgJXMKACAgb2N0cmVlIHNjaGVtZSAlcwoAY2FuJ3Qgb3BlbiBsaWJyYXJ5IGZpbGUgJXMKAGNhbid0IGZpbmQgbGlicmFyeSBmaWxlICVzCgBCb3VuZGluZ0JveCBub3QgZm91bmQgaW4gZXBzZiBmaWxlICVzCgBjb3VsZG4ndCBvcGVuIGVwc2YgZmlsZSAlcwoAY291bGRuJ3QgcmVhZCBmcm9tIGVwc2YgZmlsZSAlcwoAaW4gbm9kZSAlcwoAc2hhcGVmaWxlIG5vdCBzZXQgb3Igbm90IGZvdW5kIGZvciBlcHNmIG5vZGUgJXMKAGluIGxhYmVsIG9mIG5vZGUgJXMKAGVuZCAlcwoAcmFua2luZzogZmFpbHVyZSB0byBjcmVhdGUgc3Ryb25nIGNvbnN0cmFpbnQgZWRnZSBiZXR3ZWVuIG5vZGVzICVzIGFuZCAlcwoAb29wcywgaW50ZXJuYWwgZXJyb3I6IHVuaGFuZGxlZCBjb2xvciB0eXBlPSVkICVzCgAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlLjFmICVkICVkICVkICVkICVkICVkCiAlZCAlcwoALy8qKiogdGV4dHNwYW46ICVzLCBmb250c2l6ZSA9ICUuM2YsIGZvbnRuYW1lID0gJXMKAHRyaWVzID0gJWQsIG1vZGUgPSAlcwoALy8qKiogY29tbWVudDogJXMKAGZvbnRuYW1lOiAiJXMiIHJlc29sdmVkIHRvOiAlcwoAJSUlJVBhZ2VPcmllbnRhdGlvbjogJXMKAGRlbGF1bmF5X3RyaWFuZ3VsYXRpb246ICVzCgBkZWxhdW5heV90cmk6ICVzCgBndnByaW50ZjogJXMKAG5lc3Rpbmcgbm90IGFsbG93ZWQgaW4gc3R5bGU6ICVzCgB1bm1hdGNoZWQgJyknIGluIHN0eWxlOiAlcwoAdW5tYXRjaGVkICcoJyBpbiBzdHlsZTogJXMKACUlJSVUaXRsZTogJXMKACVzIFRpdGxlOiAlcwoAIyBUaXRsZTogJXMKAC8vKioqIGJlZ2luX25vZGU6ICVzCgByZWFsbG9jIGZhaWxlZDogJXMKAGxpYi9wYXRocGxhbi8lczolZDogJXMKAGdyaWQoJWQsJWQpOiAlcwoAQ291bGQgbm90IG9wZW4gIiVzIiBmb3Igd3JpdGluZyA6ICVzCgBzdGFydCBwb3J0OiAoJS41ZywgJS41ZyksIHRhbmdlbnQgYW5nbGU6ICUuNWcsICVzCgBlbmQgcG9ydDogKCUuNWcsICUuNWcpLCB0YW5nZW50IGFuZ2xlOiAlLjVnLCAlcwoAIFslenVdICVwIHNldCAlZCAoJS4wMmYsJS4wMmYpICglLjAyZiwlLjAyZikgJXMKACUlICVzCgAjICVzCgAgIG1vZGUgICAlcwoAY29uanVnYXRlX2dyYWRpZW50OiB1bmV4cGVjdGVkIGxlbmd0aCAwIHZlY3RvcgoAJXMgdG8gY2hhbmdlIGRyYXdpbmcgc2l6ZSwgbXVsdGlwbHkgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb24gdGhlIC5QUyBsaW5lIGFib3ZlIGFuZCB0aGUgbnVtYmVyIG9uIHRoZSB0d28gbGluZXMgYmVsb3cgKHJvdW5kZWQgdG8gdGhlIG5lYXJlc3QgaW50ZWdlcikgYnkgYSBzY2FsZSBmYWN0b3IKAGFkZF9zZWdtZW50OiBlcnJvcgoAJS41ZyAlLjVnICUuNWcgJXNjb2xvcgoAMCAwIDAgZWRnZWNvbG9yCgAwLjggMC44IDAuOCBzZXRyZ2Jjb2xvcgoAMCAwIDEgc2V0cmdiY29sb3IKADEgMCAwIHNldHJnYmNvbG9yCgAwIDAgMCBzZXRyZ2Jjb2xvcgoAJWQgJWQgc2V0bGF5ZXIKAC8vKioqIGVuZF9sYXllcgoAVVRGLTggaW5wdXQgdXNlcyBub24tTGF0aW4xIGNoYXJhY3RlcnMgd2hpY2ggY2Fubm90IGJlIGhhbmRsZWQgYnkgdGhpcyBQb3N0U2NyaXB0IGRyaXZlcgoATGV0dGVyCgAvLyoqKiBiZWdpbl9jbHVzdGVyCgAvLyoqKiBlbmRfY2x1c3RlcgoAcmVtb3ZpbmcgZW1wdHkgY2x1c3RlcgoAQ2VudGVyCgBXYXJuaW5nOiBubyB2YWx1ZSBmb3Igd2lkdGggb2Ygbm9uLUFTQ0lJIGNoYXJhY3RlciAldS4gRmFsbGluZyBiYWNrIHRvIHdpZHRoIG9mIHNwYWNlIGNoYXJhY3RlcgoAYmFzZSByZWZlcmVyCgAlJVBhZ2VUcmFpbGVyCgAlJVRyYWlsZXIKAC8vKioqIGJlemllcgoAIiVzIiB3YXMgbm90IGZvdW5kIGFzIGEgZmlsZSBvciBhcyBhIHNoYXBlIGxpYnJhcnkgbWVtYmVyCgBzdG9wCgAgY3VydmV0bwoAbmV3cGF0aCAlLjBmICUuMGYgbW92ZXRvCgAlLjBmICUuMGYgbGluZXRvCgAgbGF5b3V0PW5lYXRvCgBub2RlICVzIGluIGdyYXBoICVzIGhhcyBubyBwb3NpdGlvbgoAJXMgbWF4cHNodCBhbmQgbWF4cHN3aWQgaGF2ZSBubyBtZWFuaW5nIGluIERXQiAyLjAsIHNldCBwYWdlIGJvdW5kYXJpZXMgaW4gZ3BpYyBhbmQgaW4gMTB0aCBFZGl0aW9uCgAlcyBhcnJvd2hlYWQgaGFzIG5vIG1lYW5pbmcgaW4gRFdCIDIsIGFycm93aGVhZCA9IDcgbWFrZXMgZmlsbGVkIGFycm93aGVhZHMgaW4gZ3BpYyBhbmQgaW4gMTB0aCBFZGl0aW9uCgAlcyBhcnJvd2hlYWQgaXMgdW5kZWZpbmVkIGluIERXQiAyLCBpbml0aWFsbHkgMSBpbiBncGljLCAyIGluIDEwdGggRWRpdGlvbgoAbWFqb3JpemF0aW9uCgAvLyoqKiBwb2x5Z29uCgBvdmVyZmxvdyB3aGVuIGNvbXB1dGluZyBlZGdlIHdlaWdodCBzdW0KAHNmZHAgb25seSBzdXBwb3J0cyBzdGFydD1yYW5kb20KAG5vZGUgcG9zaXRpb25zIGFyZSBpZ25vcmVkIHVubGVzcyBzdGFydD1yYW5kb20KAGNsb3NlcGF0aCBmaWxsCgAgZWxsaXBzZV9wYXRoIGZpbGwKACAgJS4wZiAlLjBmIGNlbGwKACVmICVmICVmICVmIGNlbGwKAGdyYXBoICVzIGlzIGRpc2Nvbm5lY3RlZC4gSGVuY2UsIHRoZSBjaXJjdWl0IG1vZGVsCgBncmFwaCBpcyBkaXNjb25uZWN0ZWQuIEhlbmNlLCB0aGUgY2lyY3VpdCBtb2RlbAoAZWRnZXMgaW4gZ3JhcGggJXMgaGF2ZSBubyBsZW4gYXR0cmlidXRlLiBIZW5jZSwgdGhlIG1kcyBtb2RlbAoAY2lyY3VpdCBtb2RlbCBub3QgeWV0IHN1cHBvcnRlZCBpbiBHbW9kZT1zZ2QsIHJldmVydGluZyB0byBzaG9ydHBhdGggbW9kZWwKAG1kcyBtb2RlbCBub3QgeWV0IHN1cHBvcnRlZCBpbiBHbW9kZT1zZ2QsIHJldmVydGluZyB0byBzaG9ydHBhdGggbW9kZWwKAG5vZGUgJyVzJywgZ3JhcGggJyVzJyBzaXplIHRvbyBzbWFsbCBmb3IgbGFiZWwKACVzIERXQiAyIGRvZXNuJ3QgdXNlIGZpbGwgYW5kIGRvZXNuJ3QgZGVmaW5lIGZpbGx2YWwKAFsge0NhdGFsb2d9IDw8IC9VUkkgPDwgL0Jhc2UgJXMgPj4gPj4KL1BVVCBwZGZtYXJrCgBbIC9Dcm9wQm94IFslZCAlZCAlZCAlZF0gL1BBR0VTIHBkZm1hcmsKACAgL0JvcmRlciBbIDAgMCAwIF0KICAvQWN0aW9uIDw8IC9TdWJ0eXBlIC9VUkkgL1VSSSAlcyA+PgogIC9TdWJ0eXBlIC9MaW5rCi9BTk4gcGRmbWFyawoAdHJvdWJsZSBpbiBpbml0X3JhbmsKAGxpbmV0aGljayA9IDA7IG9sZGxpbmV0aGljayA9IGxpbmV0aGljawoAIHNldGxpbmV3aWR0aAoAZ3NhdmUKJWQgJWQgJWQgJWQgYm94cHJpbSBjbGlwIG5ld3BhdGgKAGdzYXZlICVnICVnIHRyYW5zbGF0ZSBuZXdwYXRoCgAvLyoqKiBlbmRfZ3JhcGgKAGxheW91dCBhdHRyaWJ1dGUgaXMgaW52YWxpZCBleGNlcHQgb24gdGhlIHJvb3QgZ3JhcGgKAGluIGNoZWNrcGF0aCwgYm94ZXMgJXp1IGFuZCAlenUgZG9uJ3QgdG91Y2gKAG1lcmdlX29uZXdheSBnbGl0Y2gKACVzIGRvbid0IGNoYW5nZSBhbnl0aGluZyBiZWxvdyB0aGlzIGxpbmUgaW4gdGhpcyBkcmF3aW5nCgBOb2RlIG5vdCBhZGphY2VudCB0byBjZWxsIC0tIEFib3J0aW5nCgBpbmNvbXBhcmFibGUgc2VnbWVudHMgISEgLS0gQWJvcnRpbmcKAEFsdGVybmF0aXZlbHksIGNvbnNpZGVyIHJ1bm5pbmcgbmVhdG8gdXNpbmcgLUdwYWNrPXRydWUgb3IgZGVjb21wb3NpbmcKAGxhYmVsX3NjaGVtZSA9ICVkID4gNCA6IGlnbm9yaW5nCgBndnJlbmRlcl9zZXRfc3R5bGU6IHVuc3VwcG9ydGVkIHN0eWxlICVzIC0gaWdub3JpbmcKAEFycm93IHR5cGUgIiVzIiB1bmtub3duIC0gaWdub3JpbmcKAGZkcCBkb2VzIG5vdCBzdXBwb3J0IHN0YXJ0PXNlbGYgLSBpZ25vcmluZwoAJXMgYXR0cmlidXRlIHZhbHVlIG11c3QgYmUgMSBvciAyIC0gaWdub3JpbmcKAE1vcmUgdGhhbiAyIGNvbG9ycyBzcGVjaWZpZWQgZm9yIGEgZ3JhZGllbnQgLSBpZ25vcmluZyByZW1haW5pbmcKAGFzIHJlcXVpcmVkIGJ5IHRoZSAtbiBmbGFnCgBiYlslc10gJS41ZyAlLjVnICUuNWcgJS41ZwoAL3BhdGhib3ggewogICAgL1kgZXhjaCAlLjVnIHN1YiBkZWYKICAgIC9YIGV4Y2ggJS41ZyBzdWIgZGVmCiAgICAveSBleGNoICUuNWcgc3ViIGRlZgogICAgL3ggZXhjaCAlLjVnIHN1YiBkZWYKICAgIG5ld3BhdGggeCB5IG1vdmV0bwogICAgWCB5IGxpbmV0bwogICAgWCBZIGxpbmV0bwogICAgeCBZIGxpbmV0bwogICAgY2xvc2VwYXRoIHN0cm9rZQogfSBkZWYKL2RiZ3N0YXJ0IHsgZ3NhdmUgJS41ZyAlLjVnIHRyYW5zbGF0ZSB9IGRlZgovYXJyb3dsZW5ndGggMTAgZGVmCi9hcnJvd3dpZHRoIGFycm93bGVuZ3RoIDIgZGl2IGRlZgovYXJyb3doZWFkIHsKICAgIGdzYXZlCiAgICByb3RhdGUKICAgIGN1cnJlbnRwb2ludAogICAgbmV3cGF0aAogICAgbW92ZXRvCiAgICBhcnJvd2xlbmd0aCBhcnJvd3dpZHRoIDIgZGl2IHJsaW5ldG8KICAgIDAgYXJyb3d3aWR0aCBuZWcgcmxpbmV0bwogICAgY2xvc2VwYXRoIGZpbGwKICAgIGdyZXN0b3JlCn0gYmluZCBkZWYKL21ha2VhcnJvdyB7CiAgICBjdXJyZW50cG9pbnQgZXhjaCBwb3Agc3ViIGV4Y2ggY3VycmVudHBvaW50IHBvcCBzdWIgYXRhbgogICAgYXJyb3doZWFkCn0gYmluZCBkZWYKL3BvaW50IHsgICAgbmV3cGF0aCAgICAyIDAgMzYwIGFyYyBmaWxsfSBkZWYvbWFrZXZlYyB7CiAgICAvWSBleGNoIGRlZgogICAgL1ggZXhjaCBkZWYKICAgIC95IGV4Y2ggZGVmCiAgICAveCBleGNoIGRlZgogICAgbmV3cGF0aCB4IHkgbW92ZXRvCiAgICBYIFkgbGluZXRvIHN0cm9rZQogICAgWCBZIG1vdmV0bwogICAgeCB5IG1ha2VhcnJvdwp9IGRlZgoAL3BhdGhib3ggewogICAgL1ggZXhjaCBuZWcgJS41ZyBzdWIgZGVmCiAgICAvWSBleGNoICUuNWcgc3ViIGRlZgogICAgL3ggZXhjaCBuZWcgJS41ZyBzdWIgZGVmCiAgICAveSBleGNoICUuNWcgc3ViIGRlZgogICAgbmV3cGF0aCB4IHkgbW92ZXRvCiAgICBYIHkgbGluZXRv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eSBhbGxvY2F0aW9uIGZhaWx1cmUKACVzOiB2c25wcmludGYgZmFpbHVyZQoAZW5kcGFnZQpzaG93cGFnZQpncmVzdG9yZQoAZW5kCnJlc3RvcmUKAGxheW91dCB3YXMgbm90IGRvbmUKAExheW91dCB3YXMgbm90IGRvbmUKAC8vKioqIHBvbHlsaW5lCgB0cnlpbmcgdG8gZGVsZXRlIGEgbm9uLWxpbmUKACMgZW5kIG9mIEZJRyBmaWxlCgBTaW5nbGUKAHJlbmRlcmVyIGZvciAlcyBpcyB1bmF2YWlsYWJsZQoAZHluYW1pYyBsb2FkaW5nIG5vdCBhdmFpbGFibGUKACUuMGYgJS4wZiBsaW5ldG8gc3Ryb2tlCgBjbG9zZXBhdGggc3Ryb2tlCgAgZWxsaXBzZV9wYXRoIHN0cm9rZQoALy8qKiogYmVnaW5fZWRnZQoALy8qKiogZW5kX2VkZ2UKAGxvc3QgJXMgJXMgZWRnZQoAb3ZlcmZsb3cgd2hlbiBjYWxjdWxhdGluZyB2aXJ0dWFsIHdlaWdodCBvZiBlZGdlCgBhZGRfdHJlZV9lZGdlOiBtaXNzaW5nIHRyZWUgZWRnZQoAaW4gcm91dGVzcGxpbmVzLCBjYW5ub3QgZmluZCBOT1JNQUwgZWRnZQoAc2hvd3BhZ2UKACVkICVkICVkIGJlZ2lucGFnZQoALy8qKiogYmVnaW5fcGFnZQoALy8qKiogZW5kX3BhZ2UKAEZpbGVuYW1lICIlcyIgaXMgdW5zYWZlCgBsYWJlbDogYXJlYSB0b28gbGFyZ2UgZm9yIHJ0cmVlCgAvLyoqKiBlbmRfbm9kZQoAVXNpbmcgZGVmYXVsdCBjYWxjdWxhdGlvbiBmb3Igcm9vdCBub2RlCgBjb250YWluX25vZGVzIGNsdXN0ICVzIHJhbmsgJWQgbWlzc2luZyBub2RlCgAlZiAlZiAlZiAlZiBub2RlCgA8PCAvUGFnZVNpemUgWyVkICVkXSA+PiBzZXRwYWdlZGV2aWNlCgBpbiBjaGVja3BhdGgsIGJveCAlenUgaGFzIExMIGNvb3JkID4gVVIgY29vcmQKAGluIGNoZWNrcGF0aCwgYm94IDAgaGFzIExMIGNvb3JkID4gVVIgY29vcmQKAGNsdXN0ZXIgbmFtZWQgJXMgbm90IGZvdW5kCgBpbnRlZ2VyIG92ZXJmbG93IGR1cmluZyBsaXN0IHByZXBlbmQKAG1pbmNyb3NzOiBwYXNzICVkIGl0ZXIgJWQgdHJ5aW5nICVkIGN1cl9jcm9zcyAlbGxkIGJlc3RfY3Jvc3MgJWxsZAoAbm9kZSAlcywgcG9ydCAlcyB1bnJlY29nbml6ZWQKACVzJXMgdW5zdXBwb3J0ZWQKAGNsdXN0ZXIgY3ljbGUgJXMgLS0gJXMgbm90IHN1cHBvcnRlZAoAJXMgLT4gJXM6IHNwbGluZSBzaXplID4gMSBub3Qgc3VwcG9ydGVkCgBsYXlvdXQgYWJvcnRlZAoAcGFnZWRpcj0lcyBpZ25vcmVkCgBUd28gY2x1c3RlcnMgbmFtZWQgJXMgLSB0aGUgc2Vjb25kIHdpbGwgYmUgaWdub3JlZAoASWxsZWdhbCBhdHRyaWJ1dGUgJXMgaW4gJXMgLSBpZ25vcmVkCgBVbmtub3duIHZhbHVlICVzIGZvciBhdHRyaWJ1dGUgIm1vZGVsIiBpbiBncmFwaCAlcyAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIGF0dHJpYnV0ZSAibW9kZSIgaW4gZ3JhcGggJXMgLSBpZ25vcmVkCgBzdGFydD0wIG5vdCBzdXBwb3J0ZWQgd2l0aCBtb2RlPXNlbGYgLSBpZ25vcmVkCgBPdmVybGFwIHZhbHVlICIlcyIgdW5zdXBwb3J0ZWQgLSBpZ25vcmVkCgBVbmtub3duIHZhbHVlICVzIGZvciBST1dTIC0gaWdub3JlZAoAVW5rbm93biB2YWx1ZSAlcyBmb3IgQ09MVU1OUyAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIFZBTElHTiAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIEFMSUdOIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlcyBmb3IgRklYRURTSVpFIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlLipzIGZvciBTVFlMRSAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIEJBTElHTiBpbiBURCAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIEFMSUdOIGluIFREIC0gaWdub3JlZAoAUk9XU1BBTiB2YWx1ZSBjYW5ub3QgYmUgMCAtIGlnbm9yZWQKAENPTFNQQU4gdmFsdWUgY2Fubm90IGJlIDAgLSBpZ25vcmVkCgBub2RlICVzLCBwb3J0ICVzLCB1bnJlY29nbml6ZWQgY29tcGFzcyBwb2ludCAnJXMnIC0gaWdub3JlZAoAVW5rbm93biAic3BsaW5lcyIgdmFsdWU6ICIlcyIgLSBpZ25vcmVkCgBpbiByb3V0ZXNwbGluZXMsIFBzaG9ydGVzdHBhdGggZmFpbGVkCgBpbiByb3V0ZXNwbGluZXMsIFByb3V0ZXNwbGluZSBmYWlsZWQKACMgcGx1Z2luIGxvYWRpbmcgb2YgZGVwZW5kZW5jeSAiJS4qcyIgZmFpbGVkCgBQYXJzaW5nIG9mICIlcyIgZmFpbGVkCgAlczolZDogY2xhaW1lZCB1bnJlYWNoYWJsZSBjb2RlIHdhcyByZWFjaGVkCgAjIHVuc3VjY2Vzc2Z1bCBwbHVnaW4gbG9hZAoAJS41ZyAlLjVnIHRyYW5zbGF0ZSBuZXdwYXRoIHVzZXJfc2hhcGVfJWQKAG5zaXplc2NhbGU9JWYsaXRlcmF0aW9ucz0lZAoAY3RybC0+b3ZlcmxhcD0lZAoAJXMgJWQgbm9kZXMgJWQgZWRnZXMgbWF4aXRlcj0lZCBiYWxhbmNlPSVkCgAvLyoqKiBiZWdpbl9sYXllcjogJXMsICVkLyVkCgBkZWdlbmVyYXRlIGNvbmNlbnRyYXRlZCByYW5rICVzLCVkCgAgIG1heCBsZXZlbHMgJWQKAAklcyAlZAoAICBCYXJuZXMtSHV0dCBjb25zdGFudCAlLjAzZiB0b2xlcmFuY2UgICUuMDNmIG1heGl0ZXIgJWQKAGd2d3JpdGVfbm9feiBwcm9ibGVtICVkCgAgIHF1YWR0cmVlIHNpemUgJWQgbWF4X2xldmVsICVkCgByZWJ1aWxkX3ZsaXN0czogbGVhZCBpcyBudWxsIGZvciByYW5rICVkCgByZWJ1aWxkX3ZsaXN0czogcmFuayBsZWFkICVzIG5vdCBpbiBvcmRlciAlZCBvZiByYW5rICVkCgAgIHNtb290aGluZyAlcyBvdmVybGFwICVkIGluaXRpYWxfc2NhbGluZyAlLjAzZiBkb19zaHJpbmtpbmcgJWQKACAgY29vbGluZyAlLjAzZiBzdGVwIHNpemUgICUuMDNmIGFkYXB0aXZlICVkCgBVbnN1cHBvcnRlZCBjaGFyc2V0IHZhbHVlICVkCgBpbiByb3V0ZXNwbGluZXMsIGlsbGVnYWwgdmFsdWVzIG9mIHByZXYgJWQgYW5kIG5leHQgJWQsIGxpbmUgJWQKACAgZWRnZV9sYWJlbGluZ19zY2hlbWUgJWQKAGFnZGljdG9mOiB1bmtub3duIGtpbmQgJWQKACAgcmFuZG9tIHN0YXJ0ICVkIHNlZWQgJWQKACVkICVkICVkICUuMGYgJWQgJWQgJWQgJWQgJWQgJS4xZiAlZCAlZCAlZCAlZAoAJSUlJVBhZ2VCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQKACUlJSVCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQKACUlJSVQYWdlOiAlZCAlZAoAJXMgbm8uIGNlbGxzICVkIFcgJWQgSCAlZAoATWF4cmFuayA9ICVkLCBtaW5yYW5rID0gJWQKAHN0ZXAgc2l6ZSA9ICVkCgAlJSUlUGFnZXM6ICVkCgAjIFBhZ2VzOiAlZAoAJSUlJUVuZFBhZ2U6ICVkCgAiZm9udGNoYXIiOiAlZAoAICBmbGFncyAgJWQKACAgc2l6ZSAgICVkCgAlcyBkYXNod2lkIGlzIDAuMSBpbiAxMHRoIEVkaXRpb24sIDAuMDUgaW4gRFdCIDIgYW5kIGluIGdwaWMKACVzIG1heHBzaHQgYW5kIG1heHBzd2lkIGFyZSBwcmVkZWZpbmVkIHRvIDExLjAgYW5kIDguNSBpbiBncGljCgAgJWQlcyBpdGVyYXRpb25zICUuMmYgc2VjCgAKZmluYWwgZSA9ICVmICVkIGl0ZXJhdGlvbnMgJS4yZiBzZWMKACVkIG5vZGVzICUuMmYgc2VjCgAlcyV6dSBub2RlcyAlenUgZWRnZXMgJWQgaXRlciAlLjJmIHNlYwoACmZpbmlzaGVkIGluICUuMmYgc2VjCgA6ICUuMmYgc2VjCgAgbm9kZVtzaGFwZT1wb2ludF0KACJyZWN0IjogWyUuMDNmLCUuMDNmLCUuMDNmLCUuMDNmXQoAaW5zdGFsbF9pbl9yYW5rLCBsaW5lICVkOiBORF9vcmRlciglcykgWyVkXSA+IEdEX3JhbmsoUm9vdClbJWRdLmFuIFslZF0KAGluc3RhbGxfaW5fcmFuaywgbGluZSAlZDogR0RfcmFuayhnKVslZF0udiArIE5EX29yZGVyKCVzKSBbJWRdID4gR0RfcmFuayhnKVslZF0uYXYgKyBHRF9yYW5rKFJvb3QpWyVkXS5hbiBbJWRdCgBpbnN0YWxsX2luX3JhbmssIGxpbmUgJWQ6IHJhbmsgJWQgbm90IGluIHJhbmsgcmFuZ2UgWyVkLCVkXQoAZmFpbGVkIGF0IG5vZGUgJWRbMV0KAGZhaWxlZCBhdCBub2RlICVkWzBdCgAgICVkIC0tICVkW2xhYmVsPSIlZiJdCgAgICVkIFtwb3M9IiUuMGYsJS4wZiEiXQoAIF0KAERvdDogWwoAIm9iamVjdHMiOiBbCgAic3ViZ3JhcGhzIjogWwoAImVkZ2VzIjogWwoAIm5vZGVzIjogWwoAWCBlbHNlIFoKCWRlZmluZSBzZXRmaWxsdmFsIFkgZmlsbHZhbCA9IFk7CglkZWZpbmUgYm9sZCBZIFk7CglkZWZpbmUgZmlsbGVkIFkgZmlsbCBZOwpaCgBpZiBib3hyYWQgPiAxLjAgJiYgZGFzaHdpZCA8IDAuMDc1IHRoZW4gWAoJZmlsbHZhbCA9IDE7CglkZWZpbmUgZmlsbCBZIFk7CglkZWZpbmUgc29saWQgWSBZOwoJZGVmaW5lIHJlc2V0IFkgc2NhbGU9MS4wIFk7ClgKACBBQk9SVElORwoAJSVFT0YKACVzIHJlc3RvcmUgcG9pbnQgc2l6ZSBhbmQgZm9udAoucHMgXG4oLlMKLmZ0IFxuKERGCgBdCi5QRQoAaW52YWxpZGF0ZV9wYXRoOiBza2lwcGVkIG92ZXIgTENBCgBJbnZhbGlkICVkLWJ5dGUgVVRGOCBmb3VuZCBpbiBpbnB1dCBvZiBncmFwaCAlcyAtIHRyZWF0ZWQgYXMgTGF0aW4tMS4gUGVyaGFwcyAiLUdjaGFyc2V0PWxhdGluMSIgaXMgbmVlZGVkPwoAVVRGOCBjb2RlcyA+IDQgYnl0ZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIChncmFwaCAlcykgLSB0cmVhdGVkIGFzIExhdGluLTEuIFBlcmhhcHMgIi1HY2hhcnNldD1sYXRpbjEiIGlzIG5lZWRlZD8KADwvdGV4dD4KADwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KADwvcmFkaWFsR3JhZGllbnQ+CjwvZGVmcz4KADwvbWFwPgoAPC9zdmc+CgA8L2E+CjwvZz4KACAgICByb3RhdGUgICA8JTkuM2YsICU5LjNmLCAlOS4zZj4KACAgICBzY2FsZSAgICA8JTkuM2YsICU5LjNmLCAlOS4zZj4KADwvdGl0bGU+CgAiIHR5cGU9InRleHQvY3NzIj8+CgA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KACAgICB0cmFuc2xhdGU8JTkuM2YsICU5LjNmLCAlZC4wMDA+CgA7Ii8+CgAgUGFnZXM6ICVkIC0tPgoAKQogLS0+CgAgLT4KADwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgoAKSI+CgByXyVkIiBjeD0iNTAlJSIgY3k9IjUwJSUiIHI9Ijc1JSUiIGZ4PSIlLjBmJSUiIGZ5PSIlLjBmJSUiPgoAIiA+CgAjZGVjbGFyZSAlcyA9ICVzOwoACSVzCXNvcnJ5LCB0aGUgZ3JvZmYgZm9sa3MgY2hhbmdlZCBncGljOyBzZW5kIGFueSBjb21wbGFpbnQgdG8gdGhlbTsKAAklcwlpbnN0YWxsIGEgbW9yZSByZWNlbnQgdmVyc2lvbiBvZiBncGljIG9yIHN3aXRjaCB0byBEV0Igb3IgMTB0aCBFZGl0aW9uIHBpYzsKAF07CgBpZiBmaWxsdmFsID4gMC40IHRoZW4gWAoJZGVmaW5lIHNldGZpbGx2YWwgWSBmaWxsdmFsID0gMSAtIFk7CglkZWZpbmUgYm9sZCBZIHRoaWNrbmVzcyAyIFk7CgAjdmVyc2lvbiAzLjY7CgBlbGxpcHNlIGF0dHJzMCAlc3dpZCAlLjVmIGh0ICUuNWYgYXQgKCUuNWYsJS41Zik7CgAiIGF0ICglLjVmLCUuNWYpOwoAJSVCZWdpbkRvY3VtZW50OgoAJXp1IGJveGVzOgoAcGFjayBpbmZvOgoAc3ByaW5nX2VsZWN0cmljYWxfY29udHJvbDoKAFVuc3VwcG9ydGVkIGNoYXJzZXQgIiVzIiAtIGFzc3VtaW5nIHV0Zi04CgAgICAgICBhbWJpZW50SW50ZW5zaXR5IDAuMzMKACNGSUcgMy4yCgAtMgoAJXMgbm9uLWZhdGFsIHJ1bi10aW1lIHBpYyB2ZXJzaW9uIGRldGVybWluYXRpb24sIHZlcnNpb24gMgoAJXMgZmlsbHZhbCBpcyAwLjMgaW4gMTB0aCBFZGl0aW9uIChmaWxsIDAgbWVhbnMgYmxhY2spLCAwLjUgaW4gZ3BpYyAoZmlsbCAwIG1lYW5zIHdoaXRlKSwgdW5kZWZpbmVkIGluIERXQiAyCgAlcyByZXNldCB3b3JrcyBpbiBncGljIGFuZCAxMHRoIGVkaXRpb24sIGJ1dCBpc24ndCBkZWZpbmVkIGluIERXQiAyCgBzZXR1cExhdGluMQoAXDAwMQoAJXMgICAgICAgIHRvbGVyYW5jZSAwLjAxCgAgICAgdG9sZXJhbmNlIDAuMQoAJSVQYWdlczogMQoAICAgICAgICBkaWZmdXNlQ29sb3IgMSAxIDEKADEwMC4wMAoAIEVQU0YtMy4wCgAlcyBib3hyYWQgaXMgbm93IDAuMCBpbiBncGljLCBlbHNlIGl0IHJlbWFpbnMgMi4wCgBzcGhlcmUgezwlOS4zZiwgJTkuM2YsICU5LjNmPiwgMS4wCgBXYXJuaW5nOiBubyB2YWx1ZSBmb3Igd2lkdGggb2YgQVNDSUkgY2hhcmFjdGVyICV1LiBGYWxsaW5nIGJhY2sgdG8gMAoAaW5zdGFsbF9pbl9yYW5rLCBsaW5lICVkOiAlcyAlcyByYW5rICVkIGkgPSAlZCBhbiA9IDAKAGNvbmNlbnRyYXRlPXRydWUgbWF5IG5vdCB3b3JrIGNvcnJlY3RseS4KAE5vIGxpYnogc3VwcG9ydC4KAHR3b3BpOiB1c2Ugb2Ygd2VpZ2h0PTAgY3JlYXRlcyBkaXNjb25uZWN0ZWQgY29tcG9uZW50LgoAdGhlIGdyYXBoIGludG8gY29ubmVjdGVkIGNvbXBvbmVudHMuCgBPcnRob2dvbmFsIGVkZ2VzIGRvIG5vdCBjdXJyZW50bHkgaGFuZGxlIGVkZ2UgbGFiZWxzLiBUcnkgdXNpbmcgeGxhYmVscy4KAG1pbmNyb3NzICVzOiAlbGxkIGNyb3NzaW5ncywgJS4yZiBzZWNzLgoAJXMgaXMgbm90IGEga25vd24gY29sb3IuCgBpcyBpbmFwcHJvcHJpYXRlLiBSZXZlcnRpbmcgdG8gdGhlIHNob3J0ZXN0IHBhdGggbW9kZWwuCgBpcyB1bmRlZmluZWQuIFJldmVydGluZyB0byB0aGUgc2hvcnRlc3QgcGF0aCBtb2RlbC4KAFVuYWJsZSB0byByZWNsYWltIGJveCBzcGFjZSBpbiBzcGxpbmUgcm91dGluZyBmb3IgZWRnZSAiJXMiIC0+ICIlcyIuIFNvbWV0aGluZyBpcyBwcm9iYWJseSBzZXJpb3VzbHkgd3JvbmcuCgBFcnJvciBkdXJpbmcgY29udmVyc2lvbiB0byAiVVRGLTgiLiBRdWl0aW5nLgoAb3JkZXJpbmcgJyVzJyBub3QgcmVjb2duaXplZC4KAGdyYWRpZW50IHBlbiBjb2xvcnMgbm90IHlldCBzdXBwb3J0ZWQuCgAgIGluaXRDTWFqVlBTQyBkb25lOiAlZCBnbG9iYWwgY29uc3RyYWludHMgZ2VuZXJhdGVkLgoAVGhlIGNoYXJhY3RlciAnJWMnIGFwcGVhcnMgaW4gYm90aCB0aGUgbGF5ZXJzZXAgYW5kIGxheWVybGlzdHNlcCBhdHRyaWJ1dGVzIC0gbGF5ZXJsaXN0c2VwIGlnbm9yZWQuCgB0aGUgYXNwZWN0IGF0dHJpYnV0ZSBoYXMgYmVlbiBkaXNhYmxlZCBkdWUgdG8gaW1wbGVtZW50YXRpb24gZmxhd3MgLSBhdHRyaWJ1dGUgaWdub3JlZC4KAFRoZSBsYXllcnNlbGVjdCBhdHRyaWJ1dGUgIiVzIiBkb2VzIG5vdCBtYXRjaCBhbnkgbGF5ZXIgc3BlY2lmZWQgYnkgdGhlIGxheWVycyBhdHRyaWJ1dGUgLSBpZ25vcmVkLgoAJXp1IG91dCBvZiAlenUgbGFiZWxzIHBvc2l0aW9uZWQuCgAlenUgb3V0IG9mICV6dSBleHRlcmlvciBsYWJlbHMgcG9zaXRpb25lZC4KACAgZ2VuZXJhdGUgZWRnZSBjb25zdHJhaW50cy4uLgoAR2VuZXJhdGluZyBOb24tb3ZlcmxhcCBD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MSkpCgBlcnJvciBpbiBjb2xvcnhsYXRlKCkKAHRydW5jYXRpbmcgc3R5bGUgJyVzJwoASWxsZWdhbCB2YWx1ZSBpbiAiJXMiIGNvbG9yIGF0dHJpYnV0ZTsgZmxvYXQgZXhwZWN0ZWQgYWZ0ZXIgJzsnCgBkZWZpbmUgYXR0cnMwICUlICUlOyBkZWZpbmUgdW5maWxsZWQgJSUgJSU7IGRlZmluZSByb3VuZGVkICUlICUlOyBkZWZpbmUgZGlhZ29uYWxzICUlICUlCgA8c3ZnIHdpZHRoPSIlZHB0IiBoZWlnaHQ9IiVkcHQiCgAjIGRlcGVuZGVuY2llcyAiJS4qcyIgZGlkIG5vdCBtYXRjaCAiJS4qcyIKACMgdHlwZSAiJS4qcyIgZGlkIG5vdCBtYXRjaCAiJS4qcyIKACRjIGNyZWF0ZSBpbWFnZSAlLjJmICUuMmYgLWltYWdlICJwaG90b18lcyIKAE5vIG9yIGltcHJvcGVyIGltYWdlIGZpbGU9IiVzIgoAZmlsZSBsb2FkaW5nIGlzIGRpc2FibGVkIGJlY2F1c2UgdGhlIGVudmlyb25tZW50IGNvbnRhaW5zIFNFUlZFUl9OQU1FPSIlcyIKAENvdWxkIG5vdCBwYXJzZSB4ZG90ICIlcyIKAE5vIGxvYWRpbWFnZSBwbHVnaW4gZm9yICIlcyIKACBbJXp1XSAoJS4wMmYsJS4wMmYpICglLjAyZiwlLjAyZikgJXAgIiVzIgoAZm9udG5hbWU6IHVuYWJsZSB0byByZXNvbHZlICIlcyIKAER1cGxpY2F0ZSBjbHVzdGVyIG5hbWUgIiVzIgoAdW5yZWNvZ25pemVkIGFwaSBuYW1lICIlcyIKAGltYWdlIGNyZWF0ZSBwaG90byAicGhvdG9fJXMiIC1maWxlICIlcyIKAE5vIG9yIGltcHJvcGVyIHNoYXBlZmlsZT0iJXMiIGZvciBub2RlICIlcyIKAE5vIG9yIGltcHJvcGVyIGltYWdlPSIlcyIgZm9yIG5vZGUgIiVzIgoAbm9kZSAiJXMiIGlzIGNvbnRhaW5lZCBpbiB0d28gbm9uLWNvbXBhcmFibGUgY2x1c3RlcnMgIiVzIiBhbmQgIiVzIgoARXJyb3I6IG5vZGUgIiVzIiBiZWxvbmdzIHRvIHR3byBub24tbmVzdGVkIGNsdXN0ZXJzICIlcyIgYW5kICIlcyIKACAgIiVzIgoAI2luY2x1ZGUgImNvbG9ycy5pbmMiCiNpbmNsdWRlICJ0ZXh0dXJlcy5pbmMiCiNpbmNsdWRlICJzaGFwZXMuaW5jIgoAVW5rbm93biBIVE1MIGVsZW1lbnQgPCVzPiBvbiBsaW5lICVsdSAKACVzIGluIGxpbmUgJWx1IAoAc2NhbGUgYnkgJWcsJWcgCgBjb21wcmVzcyAlZyAKAExheW91dCB3YXMgbm90IGRvbmUuICBNaXNzaW5nIGxheW91dCBwbHVnaW5zPyAKAIlQTkcNChoKACUlIVBTLUFkb2JlLTIuMAolJSUlQm91bmRpbmdCb3g6IChhdGVuZCkKL3BvaW50IHsKICAvWSBleGNoIGRlZgogIC9YIGV4Y2ggZGVmCiAgbmV3cGF0aAogIFggWSAzIDAgMzYwIGFyYyBmaWxsCn0gZGVmCi9jZWxsIHsKICAvWSBleGNoIGRlZgogIC9YIGV4Y2ggZGVmCiAgL3kgZXhjaCBkZWYKICAveCBleGNoIGRlZgogIG5ld3BhdGgKICB4IHkgbW92ZXRvCiAgeCBZIGxpbmV0bwogIFggWSBsaW5ldG8KICBYIHkgbGluZXRvCiAgY2xvc2VwYXRoIHN0cm9rZQp9IGRlZgovbm9kZSB7CiAvdSBleGNoIGRlZgogL3IgZXhjaCBkZWYKIC9kIGV4Y2ggZGVmCiAvbCBleGNoIGRlZgogbmV3cGF0aCBsIGQgbW92ZXRvCiByIGQgbGluZXRvIHIgdSBsaW5ldG8gbCB1IGxpbmV0bwogY2xvc2VwYXRoIGZpbGwKfSBkZWYKCgAJAEHxigULtgMBAQEBAQEBAQIDAQECAQEBAQEBAQEBAQEBAQEBAQEBAgEEBQEBAQEBAQYBAQcICQoKCgoKCgoKCgoBAQsBDAENDg8QERITFBUWExMTExcYGRMaGxwdExMTExMBHgEBEwEfICEiIxMkJSYTExMTJygpEyorLC0TExMTEwEBAQEBExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMuExMTLxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTMBMTExMTExMTExMTExMTExMAAAAAAAAEAAQAHAAcACEAIQAkACIACgACABYACQAiACIAIgAVAB0AAQAUABQAFAAUABQAFAAUAAgABAAFABwAGwAXABwAIQAgAB8AHgAJABMAAAAVABIAFQADAAcAFQAVABQAFAAUABQAFAAUABQAFAAIAAQABQAFAAYAHAAaABgAGQAhAAcAFQAUABQAFAAUABQAFAALABQADQAUAAwAFAAUABQADgAUABQAFAAQABQADwAUABEAQbKOBQuVBAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAMABAAHAAMABAAFAAUABgAGAAgABwAHABEAFgASABEAEgAIAAgADwAPABcADwAYAA8AGQAaABoAHgAWADQAHgAFADIABgAiACIAMwAXABgANQAZABoAGgAqADYAKgA0ADcAMgBFADsAPAAzADsAPABGADUARwBIAEwANgAiAEkASgA3AEUATgBQAGIAUQBSAFQARgBHAFUASABMAFYASQBKAFgAWgBOAEQAUABRAFIAVAA4AC8ALABVACkAVgAbABAAWABaAF0AXQBdAF0AXQBdAF0AXgBeAF4AXgBeAF4AXgBfAF8AXwBfAF8AXwBfAGAACQBgAGAAYABgAGAAYQBhAGMAAgBjAGMAYwBjAGMAZAAAAGQAAABkAGQAZABlAAAAZQBlAGUAZQBlAGYAAAAAAGYAZgBmAGYAZwAAAGcAZwBnAGcAaAAAAGgAaABoAGgAaABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAEHUkgULzQGuAC4ALwAzADUAMAA3AKoA2wDbANsA2wAAAD0AhwA3ADcA2wDbAAAAKAA1AC4AMgAvAGIAAAAAAEcAAADbANsAUQAAANsA2wDbAAAA2wCEAFUA2wCCANsAAACBANsAAAA+AEIAQQBIAEQAUgBbAAAAAABeAF8A2wAAANsA2wDbAAAAAAB7AEkAVwBSAFoAWgBdAAAAXwAAAF8AAABlAF0AXwAAAF0AbgBqAAAAaQAAAG4AAADbAJMAmgChAKgAqwBwALEAuAC/AMYAzQDTAEGylAULzwFcAAEAXQBdAF4AXgBfAF8AXABcAFwAXABcAGAAXABcAFwAYQBcAFwAYgBiAGIAYgBiAGIAYgBjAGQAZQBmAFwAXABcAGcAXABcAFwAYABcAFwAYQBcAGEAXABoAGEAXABiAGIAYgBiAGIAYgBiAGIAYwBkAGUAZQBcAGYAXABcAFwAZwBoAGEAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAAAAXABcAFwAXABcAFwAXABcAFwAXABcAFwAQZGWBQswAQECAwEEAQUBBgcHAQYGBgYGBgYGBgYGBgYGBgYDBgYGBgYGBgYGBgYGBgYGBgYGAEHSlgULowQKAAsADAANAA4ACgAPABAAEQASABMACgAUABUAFQAVABYAFwAVABgAFQAVABkAFQAVABUAGgAVABUACgAVABUAFQAWABcAGAAVABUAGQAVABUAFQAaABUAFQAVABUAGwAMAAwAJAAeAB4AIAAhACAAIQAkACUAJgAtADIALwAuACoAJQAmACgAKQAzACoANAArADUANgA3ADwAMgBHAD0AIgBFACIAPwBAAEYAMwA0AEgANQA2ADcALwBJACoARwBKAEUATABcADwARgBcAD0ATQBIAE4ATwBSAEkAQQBQAFEASgBMAFMAVAAxAFUAVgBXAE0ATgBYAE8AUgBZAFAAUQBaAFsAUwBEAFQAVQBWAFcASwBEACwAWAAsAFkAOAAsAFoAWwAdAB0AHQAdAB0AHQAdAB8AHwAfAB8AHwAfAB8AIwAjACMAIwAjACMAIwAnAFwAJwAnACcAJwAnADAAMAA5ABwAOQA5ADkAOQA5ADoAXAA6AFwAOgA6ADoAOwBcADsAOwA7ADsAOwA+AFwAXAA+AD4APgA+AEIAXABCAEIAQgBCAEMAXABDAEMAQwBDAEMACQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAMAAAADQAAAA4AAAAOAEGAmwUL0QUR7u4TCAPu/u7u7gHu7u4B7u4J/u4SFRfuEgHu7u7uCg3u7u7u7u7u7u4B7u4WCAEBGQ4Y7u4bGBru7h3u7u7uARX77u7u7hAe7u7uAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWEQICAgICAgICAgICAgISEAITAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIUAhUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4CDwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBAgMEBQYHCAkKCwwNAAAACwMEBQ8HAwwNBgwNDgwNGhUAAQADBw4GDwgMDRITCSoQERAWLzANMhETLjIUEhQSQRMsE0JAKkIZ//8sAAAAACIMDQ4jDwkQEQoQEcwQES1F/AEG9g8H9iQCEBEvMCg2SUomMTs8PTYqOTo+Py/YQEQwNyVHQzVIKwAAOAAAAAAAAwkAAAABDgILDAgjJCUzODoADRASGxYcEicvIhcwHjkGBzIFDxEUGCkAEykAAAAAADQVKB0eACEmMR8uOxksABsAIBoqKzcANTYtAAAAAAACAgEAAwMBAAEAAQEBAAIBAQACAgMBAQAABQABAwEDBQMBAQEBAgABAAQCAAIDAQADAgEAAQEAAQEBAwAAAAAAFxgYGBkaGxscHB0dHh4fHyAgISEiIyMlJiQkJycoKCgpKSoqKisrLCwtLi4vMDEzMjQ0NDU1NTY2NzcAAAAA7u787u7u7u7uHyDu+e/u7u4M7u7uBg/u7vLu7u7u7vXuAEHhoAULLwMIBCEFCxITJxQVFikyQRcYGRosMzRCRhscHS4eSx8ga2V5AF9BR19zdHJkYXRhAEGgoQULFe0fAAC/DAAAowwAAGhUAAB7UgAABgBBwKEFC+PrAc7GAABVXcl/yX//ALS3AAC7LdS+rtT/AKypAAAUd/39wIb/AG7FAABVXcl/yX//AFS2AAC7LdS+rtT/AEyoAAAUd/39wIb/ALCbAAAqZv///5n/AA7EAABVXcl/yX//APS0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AAAYX/391J7/ALKVAAATef39u4T/AH6KAAANpPz8jVn/AFuDAAAHsu/vZUj/AKB9AAAD2tfXMB//ADt5AAAA/7OzAAD/ACp2AAAA/39/AAD/ANLIAACOROOmzuP/AA7NAAC+mZpqPZr/ALi5AACQ07QfeLT/ALCrAABBYd+y34r/ALSdAABSuKAzoCz/ACCRAAAAY/v7mpn/AJ2IAAD+4ePjGhz/AIKBAAAXj/39v2//AL17AAAV////fwD/AEx3AADGKtbKstb/AFrIAACOROOmzuP/AIvMAAC+mZpqPZr/ADq+AAAqZv///5n/AEC5AACQ07QfeLT/ADirAABBYd+y34r/ADydAABSuKAzoCz/AKiQAAAAY/v7mpn/ACWIAAD+4ePjGhz/AAqBAAAXj/39v2//AEV7AAAV////fwD/ANR2AADGKtbKstb/AOLHAACOROOmzuP/AAjMAAC+mZpqPZr/ALe9AAAqZv///5n/ADqvAAAPxbGxWSj/AMi4AACQ07QfeLT/AMCqAABBYd+y34r/AMScAABSuKAzoCz/ADCQAAAAY/v7mpn/AK2HAAD+4ePjGhz/AJKAAAAXj/39v2//AM16AAAV////fwD/AFx2AADGKtbKstb/AJrHAACOROOmzuP/AIC4AACQ07QfeLT/AHiqAABBYd+y34r/ADrGAACOROOmzuP/ACC3AACQ07QfeLT/ABipAABBYd+y34r/AHycAABSuKAzoCz/ANrEAACOROOmzuP/AMC1AACQ07QfeLT/ALinAABBYd+y34r/ABybAABSuKAzoCz/AOiPAAAAY/v7mpn/AHrDAACOROOmzuP/AGC0AACQ07QfeLT/AFimAABBYd+y34r/ALyZAABSuKAzoCz/AIiOAAAAY/v7mpn/AGWHAAD+4ePjGhz/ABrCAACOROOmzuP/AACzAACQ07QfeLT/APikAABBYd+y34r/AFyYAABSuKAzoCz/ACiNAAAAY/v7mpn/AAWGAAD+4ePjGhz/AEqAAAAXj/39v2//ALrAAACOROOmzuP/AKCxAACQ07QfeLT/AJijAABBYd+y34r/APyWAABSuKAzoCz/AMiLAAAAY/v7mpn/AKWEAAD+4ePjGhz/AOp+AAAXj/39v2//AIV6AAAV////fwD/AHm/AACOROOmzuP/AF+wAACQ07QfeLT/AFei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AADSFejn1Oj/AGWIAABMHvDZ8NP/AEqBAABQRNum26D/AIV7AABYe65armH/ABR3AABhxXgbeDf/ACLIAADO/0tAAEv/AE7MAABhxXgbeDf/AP29AABl/0QARBv/AAi5AADOrYN2KoP/AACrAADHV6uZcKv/AASdAADHM8/Cpc//AHCQAADSFejn1Oj/AO2HAAAAAPf39/f/ANKAAABMHvDZ8NP/AA17AABQRNum26D/AJx2AABYe65armH/AEHHAADERsOvjcP/ACe4AAAAAPf39/f/AB+qAABSWr9/v3v/AOHFAADJqJR7MpT/AMe2AADHM8/Cpc//AL+oAABQRNum26D/ACOcAABm/4gAiDf/AIHEAADJqJR7MpT/AGe1AADHM8/Cpc//AF+nAAAAAPf39/f/AMOaAABQRNum26D/AI+PAABm/4gAiDf/ACHDAADOrYN2KoP/AAe0AADERsOvjcP/AP+lAADSFejn1Oj/AGOZAABMHvDZ8NP/AC+OAABSWr9/v3v/AAyHAABhxXgbeDf/AMHBAADOrYN2KoP/AKeyAADERsOvjcP/AJ+kAADSFejn1Oj/AAOYAAAAAPf39/f/AM+MAABMHvDZ8NP/AKyFAABSWr9/v3v/APF/AABhxXgbeDf/AGHAAADOrYN2KoP/AEexAADHV6uZcKv/AD+jAADHM8/Cpc//AKOWAADSFejn1Oj/AG+LAABMHvDZ8NP/AEyEAABQRNum26D/AJF+AABYe65armH/ACx6AABhxXgbeDf/ACC/AADOrYN2KoP/AAawAADHV6uZcKv/AP6hAADHM8/Cpc//AGKVAADSFejn1Oj/AC6KAAAAAPf39/f/AAuDAABMHvDZ8NP/AFB9AABQRNum26D/AOt4AABYe65armH/ANp1AABhxXgbeDf/AJ3GAAC9C/Ls5/L/AIO3AACXPdumvdv/AHupAACNxb4rjL7/AD3FAAC5CPbx7vb/ACO2AACbKOG9yeH/ABuoAACRcM90qc//AH+bAACP97AFcLD/AN3DAAC5CPbx7vb/AMO0AACbKOG9yeH/ALumAACRcM90qc//AB+aAACNxb4rjL7/AOuOAACP940EWo3/AH3CAAC5CPbx7vb/AGOzAACoGObQ0eb/AFulAACXPdumvdv/AL+YAACRcM90qc//AIuNAACNxb4rjL7/AGiG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AAALm/z8jWL/AMynAACcTcuNoMv/ADCbAADkZufnisP/APyPAAA6m9im2FT/AI7DAAByeMJmwqX/AHS0AAALm/z8jWL/AGymAACcTcuNoMv/ANCZAADkZufnisP/AJyOAAA6m9im2FT/AHmHAAAi0P//2S//AC7CAAByeMJmwqX/ABSzAAALm/z8jWL/AAylAACcTcuNoMv/AHCYAADkZufnisP/ADyNAAA6m9im2FT/ABmGAAAi0P//2S//AF6AAAAZWuXlxJT/AM7AAAByeMJmwqX/ALSxAAALm/z8jWL/AKyjAACcTcuNoMv/ABCXAADkZufnisP/ANyLAAA6m9im2FT/ALmEAAAi0P//2S//AP5+AAAZWuXlxJT/AJl6AAAAALOzs7P/AN7IAAB4VNON08f/ABvNAADTUr28gL3/AMS5AAAqTP///7P/ALyrAACvJdq+utr/AMCdAAAEi/v7gHL/ACyRAACQZNOAsdP/AKmIAAAWnP39tGL/AI6BAAA6ht6z3mn/AMl7AADpL/z8zeX/AFh3AAAAANnZ2dn/AGbIAAB4VNON08f/AJjMAADTUr28gL3/AEe+AABNKevM68X/AEy5AAAqTP///7P/AESrAACvJdq+utr/AEidAAAEi/v7gHL/ALSQAACQZNOAsdP/ADGIAAAWnP39tGL/ABaBAAA6ht6z3mn/AFF7AADpL/z8zeX/AOB2AAAAANnZ2dn/AO7HAAB4VNON08f/ABXMAADTUr28gL3/AMS9AABNKevM68X/AEevAAAlkP//7W//ANS4AAAqTP///7P/AMyqAACvJdq+utr/ANCcAAAEi/v7gHL/ADyQAACQZNOAsdP/ALmHAAAWnP39tGL/AJ6AAAA6ht6z3mn/ANl6AADpL/z8zeX/AGh2AAAAANnZ2dn/AKXHAAB4VNON08f/AIu4AAAqTP///7P/AIOqAACvJdq+utr/AEXGAAB4VNON08f/ACu3AAAqTP///7P/ACOpAACvJdq+utr/AIecAAAEi/v7gHL/AOXEAAB4VNON08f/AMu1AAAqTP///7P/AMOnAACvJdq+utr/ACebAAAEi/v7gHL/APOPAACQZNOAsdP/AIXDAAB4VNON08f/AGu0AAAqTP///7P/AGOmAACvJdq+utr/AMeZAAAEi/v7gHL/AJOOAACQZNOAsdP/AHCHAAAWnP39tGL/ACXCAAB4VNON08f/AAuzAAAqTP///7P/AAOlAACvJdq+utr/AGeYAAAEi/v7gHL/ADONAACQZNOAsdP/ABCGAAAWnP39tGL/AFWAAAA6ht6z3mn/AMXAAAB4VNON08f/AKuxAAAqTP///7P/AKOjAACvJdq+utr/AAeXAAAEi/v7gHL/ANOLAACQZNOAsdP/ALCEAAAWnP39tGL/APV+AAA6ht6z3mn/AJB6AADpL/z8zeX/AIS/AAB4VNON08f/AGqwAAAqTP///7P/AGKiAACvJdq+utr/AMaVAAAEi/v7gHL/AJKKAACQZNOAsdP/AG+DAAAWnP39tGL/ALR9AAA6ht6z3mn/AE95AADpL/z8zeX/AD52AAAAANnZ2dn/ALDIAADt/Z6eAUL/AOnMAACxgqJeT6L/AJa5AAD6tNXVPk//AI6rAAAKuPT0bUP/AJKdAAAUnf39rmH/AP6QAAAfc/7+4Iv/AHuIAAAxYPXm9Zj/AGCBAABPQd2r3aT/AJt7AAByeMJmwqX/ACp3AACPu70yiL3/ADjIAADt/Z6eAUL/AGbMAACPu70yiL3/ABW+AACxgqJeT6L/AB65AAD6tNXVPk//ABarAAAKuPT0bUP/ABqdAAAUnf39rmH/AIaQAAAfc/7+4Iv/AAOIAAAqQP///7//AOiAAAAxYPXm9Zj/ACN7AABPQd2r3aT/ALJ2AAByeMJmwqX/AF7HAAANpPz8jVn/AES4AAAqQP///7//ADyqAABRTdWZ1ZT/AP7FAAD+4dfXGRz/AOS2AAAUnf39rmH/ANyoAABPQd2r3aT/AECcAACPxLorg7r/AJ7EAAD+4dfXGRz/AIS1AAAUnf39rmH/AHynAAAqQP///7//AOCaAABPQd2r3aT/AKyPAACPxLorg7r/AD7DAAD6tNXVPk//ACS0AAANpPz8jVn/ABymAAAfc/7+4Iv/AICZAAAxYPXm9Zj/AEyOAABRTdWZ1ZT/ACmHAACPu70yiL3/AN7BAAD6tNXVPk//AMSyAAANpPz8jVn/ALykAAAfc/7+4Iv/ACCYAAAqQP///7//AOyMAAAxYPXm9Zj/AMmFAABRTdWZ1ZT/AA6AAACPu70yiL3/AH7AAAD6tNXVPk//AGSxAAAKuPT0bUP/AFyjAAAUnf39rmH/AMCWAAAfc/7+4Iv/AIyLAAAxYPXm9Zj/AGmEAABPQd2r3aT/AK5+AAByeMJmwqX/AEl6AACPu70yiL3/AD2/AAD6tNXVPk//ACOwAAAKuPT0bUP/ABuiAAAUnf39rmH/AH+VAAAfc/7+4Iv/AEuKAAAqQP///7//ACiDAAAxYPXm9Zj/AG19AABPQd2r3aT/AAh5AAByeMJmwqX/APd1AACPu70yiL3/AFFLAACTD//w+P//ALVMAAAYI/r669f/ALVkAAB///8A////ACVPAABxgP9//9T/AE1OAAB/D//w////APFRAAAqGvX19dz/ADhJAAAXOv//5MT/AGs9AAAAAAAAAAD/AKlVAAAZMf//683/AGBLAACq//8AAP//AIURAADAzuKKK+L/AOYyAAAAvqWlKir/ACNVAAAXY97euIf/AGZKAACAZ6BfnqD/AFlNAAA///9//wD/ADZNAAAR2tLSaR7/AGU7AAALr///f1D/AHVKAACak+1kle3/ABY9AAAhIv//+Nz/ADQzAAD259zcFDz/AH03AAB///8A////APRKAACq/4sAAIv/AG83AAB//4sAi4v/AO5UAAAe77i4hgv/AG8IAAAAAKmpqan/AI02AABV/2QAZAD/AKQHAAAAAKmpqan/AH8+AAAnbr29t2v/AMlkAADU/4uLAIv/AMQ2AAA6jmtVay//ANVRAAAX////jAD/AIdXAADGwMyZMsz/AFZZAAAA/4uLAAD/ALQzAAAKeenplnr/ACY3AABVPbyPvI//AC9LAACvj4tIPYv/AJEIAAB/Z08vT0//AMYHAAB/Z08vT0//ABJOAACA/9EAztH/AHURAADH/9OUANP/ALY8AADo6///FJP/ABdKAACK//8Av///AGIIAAAAAGlpaWn/AJcHAAAAAGlpaWn/AIlKAACU4f8ekP//AE89AAAAzrKyIiL/AKRMAAAcD///+vD/AFA2AABVwIsiiyL/AI5lAADU////AP//ANwxAAAAANzc3Nz/AINMAACqB//4+P//AMxWAAAj////1wD/ABRVAAAe2drapSD/AMMIAAAAAICAgID/AE83AABV/4AAgAD/AJYKAAA70P+t/y//APgHAAAAAICAgID/AJ8LAABVD//w//D/AJo8AADplv//abT/AEdZAAAAjM3NXFz/ADoyAADC/4JLAIL/AH4GAAAqD/////D/AI4+AAAmavDw5oz/AN8fAACqFPrm5vr/AM0/AADwD///8PX/AH42AABA//x8/AD/AAI1AAAmMf//+s3/AFdKAACJP+at2Ob/AFU7AAAAd/DwgID/AGA3AAB/H//g////AKcKAAAqKPr6+tL/AFMIAAAAANPT09P/AGE2AABVZO6Q7pD/AIgHAAAAANPT09P/AKc8AAD4Sf//tsH/AKMzAAAMhP//oHr/AP82AAB90bIgsqr/AAVKAACPdfqHzvr/AH0IAACUOJl3iJn/ALIHAACUOJl3iJn/AMJKAACXNN6wxN7/AIUKAAAqH////+D/AK1PAABV//8A/wD/ANg2AABVwM0yzTL/APo1AAAVFPr68Ob/ANpkAADU////AP//AJczAAAA/4CAAAD/AA9PAABxgM1mzar/ALJKAACq/80AAM3/AHVXAADMmNO6VdP/AHVQAAC3fNuTcNv/ABI3AABnqbM8s3H/ABpLAACwj+57aO7/AJw2AABv//oA+pr/AP1NAAB9p9FI0cz/ALJYAADk5MfHFYX/AEVKAACqxnAZGXD/AF85AABqCf/1//r/AJdNAAAEHv//5OH/ACo1AAAaSf//5LX/AJNMAAAZUf//3q3/AIwEAACq/4AAAID/AHlUAAAbF/399eb/AOJIAAAq/4CAgAD/AJ9kAAA4wI5rjiP/AOVRAAAb////pQD/AKlZAAAL////RQD/AJdXAADWe9racNb/AAFVAAAmSO7u6Kr/AOc2AABVZPuY+5j/ACVOAAB/Q+6v7u7/AMdYAADxfNvbcJP/ADAwAAAaKf//79X/AGNGAAAURv//2rn/ABgMAAAUsM3NhT//AM08AAD3P///wMv/ANk4AADURt3doN3/AJlKAACEO+aw4Ob/ANFQAADU/4CAAID/APNZAAAA////AAD/AKgyAAAAPby8j4//AOVKAACfteFBaeH/ANUyAAAR3IuLRRP/AMQzAAAEivr6gHL/ALcyAAATmvT0pGD/ADg3AABnqosui1f/ABg6AAAREP//9e7/AFRlAAANt6CgUi3/ALMeAAAAAMDAwMD/AChKAACLbOuHzuv/AEJLAACvj81qWs3/AKQIAACUOJBwgJD/ANkHAACUOJBwgJD/AFoKAAAABf//+vr/ALM2AABq//8A/3//ANZKAACSm7RGgrT/AJY3AAAYVNLStIz/APA7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AAA///9//wD/AKGtAAA//+527gD/ALifAAA//81mzQD/AAeTAAA//4tFiwD/ADtNAAAR2tLSaR7/AAm8AAAR2///fyT/AJatAAAR2+7udiH/AK2fAAAR2s3NZh3/APySAAAR3IuLRRP/AGo7AAALr///f1D/ABO7AAAHqf//clb/AK2sAAAGqe7ualD/AMyeAAAGqc3NW0X/ABuSAAAGqIuLPi//AHpKAACak+1kle3/ABs9AAAhIv//+Nz/ADi7AAAhIv//+Nz/ANKsAAAiI+7u6M3/APGeAAAiIs3NyLH/AECSAAAjIouLiHj/ADkzAAD259zcFDz/AII3AAB///8A////APi6AAB///8A////AJKsAAB//+4A7u7/ALGeAAB//80Azc3/AACSAAB//4sAi4v/APlKAACq/4sAAIv/AHQ3AAB//4sAi4v/APNUAAAe77i4hgv/AJG8AAAe8P//uQ//AA2uAAAe8O7urQ7/ACSgAAAe8M3NlQz/AHqTAAAe8IuLZQj/AHQIAAAAAKmpqan/AJI2AABV/2QAZAD/AKkHAAAAAKmpqan/AIQ+AAAnbr29t2v/AM5kAADU/4uLAIv/AMk2AAA6jmtVay//AMq6AAA6j//K/3D/AGSsAAA6j+687mj/AIOeAAA6j82izVr/ANKRAAA6j4tuiz3/ANpRAAAX////jAD/AGS8AAAV////fwD/APGtAAAV/+7udgD/AAigAAAV/83NZgD/AF6TAAAV/4uLRQD/AIxXAADGwMyZMsz/AL+8AADGwf+/Pv//ADuuAADGwO6yOu7/AFKgAADGwM2aMs3/AKiTAADGwItoIov/AFtZAAAA/4uLAAD/ALkzAAAKeenplnr/ACs3AABVPbyPvI//AOW6AABVPv/B/8H/AH+sAABVPu607rT/AJ6eAABVPs2bzZv/AO2RAABVPotpi2n/ADRLAACvj4tIPYv/AJYIAAB/Z08vT0//AC66AAB/aP+X////ANOrAAB/Z+6N7u7/AASeAAB/aM15zc3/AFiRAAB/aItSi4v/AMsHAAB/Z08vT0//ABdOAACA/9EAztH/AHoRAADH/9OUANP/ALs8AADo6///FJP/AC67AADo6///FJP/AMisAADo6+7uEon/AOeeAADo683NEHb/ADaSAADn7IuLClD/ABxKAACK//8Av///AJm7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AACfts06X83/AMuSAACft4snQIv/ANoyAAAR3IuLRRP/AMkzAAAEivr6gHL/AJi6AAAJlv//jGn/AEGsAAAJlu7ugmL/AGCeAAAJls3NcFT/AK+RAAAJlouLTDn/ALwyAAATmvT0pGD/AD03AABnqosui1f/AOm6AABnq/9U/5//AIOsAABnq+5O7pT/AKKeAABnq81DzYD/APGRAABnqosui1f/AB06AAAREP//9e7/AAm7AAAREP//9e7/AKOsAAASEe7u5d7/AMKeAAASEc3Nxb//ABGSAAASEIuLhoL/AFllAAANt6CgUi3/AAS9AAANuP//gkf/AICuAAANuO7ueUL/AJegAAANuM3NaDn/AO2TAAANuYuLRyb/ALgeAAAAAMDAwMD/AC1KAACLbOuHzuv/AJ27AACQeP+Hzv//ACqtAACQeO5+wO7/AEGfAACQeM1sps3/AJCSAACRd4tKcIv/AEdLAACvj81qWs3/AOO7AACvkP+Db///AHCtAACvkO56Z+7/AIefAACvkM1pWc3/ANaSAACvkItHPIv/AKkIAACUOJBwgJD/ADK6AACVOP/G4v//ANerAACVOO650+7/AAieAACUOc2fts3/AFyRAACVOItse4v/AN4HAACUOJBwgJD/AF8KAAAABf//+vr/AEG6AAAABf//+vr/AOarAAAABe7u6en/ABeeAAAABM3Nycn/AGuRAAAAA4uLiYn/ALg2AABq//8A/3//AL26AABq//8A/3//AFesAABq/+4A7nb/AHaeAABq/80AzWb/AMWRAABq/4sAi0X/ANtKAACSm7RGgrT/AM27AACSnP9juP//AFqtAACSnO5crO7/AHGfAACSnM1PlM3/AMCSAACTm4s2ZIv/AJs3AAAYVNLStIz/AP66AAAUsP//pU//AJisAAAUsO7umkn/ALeeAAAUsM3NhT//AAaSAAAUsIuLWiv/APU7AAB//4AAgID/AGdQAADUHdjYv9j/AE28AADUHv//4f//ANqtAADUHu7u0u7/APGfAADUHc3Ntc3/AEeTAADUHYuLe4v/AMoxAAAGuP//Y0f/AHi6AAAGuP//Y0f/ACGsAAAGuO7uXEL/AECeAAAGuM3NTzn/AI+RAAAGuYuLNib/ACMQAAAqAP////4AAD1OAAB7tuBA4ND/AC+8AACB//8A9f//ALytAACB/+4A5e7/ANOfAACB/80Axc3/ACKTAACB/4sAhov/AJoRAADUc+7ugu7/ANBYAADj19DQIJD/AM+8AADrwf//Ppb/AEuuAADrwO7uOoz/AGKgAADrwM3NMnj/ALiTAADrwIuLIlL/ALMIAAAAAICAgID/APY2AABV/4AAgAD/AOgHAAAAAICAgID/AIMzAAAA/4CAAAD/AJJQAADU/4CAAID/AHIUAAAbRPX13rP/AGe6AAAbRf//57r/ABCsAAAbRO7u2K7/ADSeAAAbRM3Nupb/AIiRAAAbQ4uLfmb/AMxMAAAAAP//////ALtRAAAAAPX19fX/ALsIAAAAAL6+vr7/AEY3AABV//8A/wD/APAHAAAAAL6+vr7/AI0zAADvubCwMGD/AMdQAADE3fCgIPD/AMYKAAAq/////wD/AEy6AAAq/////wD/APGrAAAq/+7u7gD/ACKeAAAq/83NzQD/AHaRAAAq/4uLiwD/ADI2AAA4wM2azTL/AEGwjQcLA7R7AgBBvo0HC4UIoED/////////////////////////////////////////////////////////////////////////////////////AAKqAkQDAAQABKoGOQZxAaoCqgIABIMEAAKqAgACOQIABAAEAAQABAAEAAQABAAEAAQABDkCOQKDBIMEgwSNA14HxwVWBVYFxwXjBHMExwXHBaoCHQPHBeMEHQfHBccFcwTHBVYFcwTjBMcFxwWNB8cFxwXjBKoCOQKqAsEDAASqAo0DAASNAwAEjQOqAgAEAAQ5AjkCAAQ5AjkGAAQABAAEAASqAh0DOQIABAAExwUABAAEjQPXA5oB1wNUBP///////////////////////////////////////////////////////////////////////////////////////wACqgJxBAAEAAQACKoGOQKqAqoCAASPBAACqgIAAjkCAAQABAAEAAQABAAEAAQABAAEAASqAqoCjwSPBI8EAARxB8cFVgXHBccFVgXjBDkGOQYdAwAEOQZWBY0HxwU5BuMEOQbHBXMEVgXHBccFAAjHBccFVgWqAjkCqgKmBAAEqgIABHMEjQNzBI0DqgIABHMEOQKqAnMEOQKqBnMEAARzBHMEjQMdA6oCcwQABMcFAAQABI0DJwPDAScDKQT///////////////////////////////////////////////////////////////////////////////////////8AAqoCXAMABAAEqgY5BrYBqgKqAgAEZgUAAqoCAAI5AgAEAAQABAAEAAQABAAEAAQABAAEqgKqAmYFZgVmBQAEXAfjBOMEVgXHBeME4wTHBccFqgKNA1YFcwSqBlYFxwXjBMcF4wQABHMExwXjBKoG4wRzBHMEHQM5Ah0DYAMABKoCAAQABI0DAASNAzkCAAQABDkCOQKNAzkCxwUABAAEAAQABB0DHQM5AgAEjQNWBY0DjQMdAzMDMwIzA1QE////////////////////////////////////////////////////////////////////////////////////////AAIdA3EEAAQABKoGOQY5AqoCqgIABI8EAAKqAgACOQIABAAEAAQABAAEAAQABAAEAAQABKoCqgKPBI8EjwQABKgGVgVWBVYFxwVWBVYFxwU5Bh0DAARWBeMEHQfHBccF4wTHBVYFcwTjBMcFVgUdB1YF4wTjBKoCOQKqAo8EAASqAgAEAASNAwAEjQOqAgAEcwQ5AjkCAAQ5AjkGcwQABAAEAAQdAx0DOQJzBI0DVgUABI0DHQPJAsMByQKPBP//3HsCAEHOlQcLhQigQP////////////////////////////////////////////////////////////////////////////////////85AjkC1wJzBHMEHQdWBYcBqgKqAh0DrAQ5AqoCOQI5AnMEcwRzBHMEcwRzBHMEcwRzBHMEOQI5AqwErASsBHMEHwhWBVYFxwXHBVYF4wQ5BscFOQIABFYFcwSqBscFOQZWBTkGxwVWBeMExwVWBY0HVgVWBeMEOQI5AjkCwQNzBKoCcwRzBAAEcwRzBDkCcwRzBMcBxwEABMcBqgZzBHMEcwRzBKoCAAQ5AnMEAATHBQAEAAQABKwCFAKsAqwE////////////////////////////////////////////////////////////////////////////////////////OQKqAssDcwRzBB0HxwXnAaoCqgIdA6wEOQKqAjkCOQJzBHMEcwRzBHMEcwRzBHMEcwRzBKoCqgKsBKwErATjBM0HxwXHBccFxwVWBeMEOQbHBTkCcwTHBeMEqgbHBTkGVgU5BscFVgXjBMcFVgWNB1YFVgXjBKoCOQKqAqwEcwSqAnME4wRzBOMEcwSqAuME4wQ5AjkCcwQ5Ah0H4wTjBOME4wQdA3MEqgLjBHMEOQZzBHMEAAQdAz0CHQOsBP///////////////////////////////////////////////////////////////////////////////////////zkCOQLXAnMEcwQdB1YFhwGqAqoCHQOsBDkCqgI5AjkCcwRzBHMEcwRzBHMEcwRzBHMEcwQ5AjkCrASsBKwEcwQfCFYFVgXHBccFVgXjBDkGxwU5AgAEVgVzBKoGxwU5BlYFOQbHBVYF4wTHBVYFjQdWBVYF4wQ5AjkCOQLBA3MEqgJzBHMEAARzBHMEOQJzBHMExwHHAQAExwGqBnMEcwRzBHMEqgIABDkCcwQABMcFAAQABAAErAIUAqwCrAT///////////////////////////////////////////////////////////////////////////////////////85AqoCywNzBHMEHQfHBecBqgKqAh0DrAQ5AqoCOQI5AnMEcwRzBHMEcwRzBHMEcwRzBHMEqgKqAqwErASsBOMEzQfHBccFxwXHBVYF4wQ5BscFOQJzBMcF4wSqBscFOQZWBTkGxwVWBeMExwVWBY0HVgVWBeMEqgI5AqoCrARzBKoCcwTjBHME4wRzBKoC4wTjBDkCOQJzBDkCHQfjBOME4wTjBB0DcwSqAuMEcwQ5BnMEcwQABB0DPQIdA6wE//8QfAIAQd6dBwuFCKBA/////////////////////////////////////////////////////////////////////////////////////80EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQT////////////////////////////////////////////////////////////////////////////////////////NBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0E////////////////////////////////////////////////////////////////////////////////////////zQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBP///////////////////////////////////////////////////////////////////////////////////////80EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQT//zh8AgBB7aUHC4YIQI9AAAD///////////////////////////////8CAf///////////////////////////////////////////////wIB5ACIAVgCWAKiA7UC3QA9AT0BwgFYAuQAqAHkABsBWAJYAlgCWAJYAlgCWAJYAlgCWALkAOQAWAJYAlgCuwGyA9kCpAKhAuYCRwIkAtYC+QIBAUQBcQIfAlcD5AL/AnkC/wKdAmcCWgLYArECTQSKAlQCTQI7ARsBOwFYAvQB9AESAkcCzwFHAhQCTQFKAjgC6ADsAPQBKAFYAzgCLAJHAkcCZgHhAV4BMQIDAkkDDQICAs8BYAEJAWABWAL//wAA////////////////////////////////DwH///////////////////////////////////////////////8PAfgAwAFYAlgCsQPWAvMAZgFmAcUBWAL4ALIB+AA5AVgCWAJYAlgCWAJYAlgCWAJYAlgC+AD4AFgCWAJYAssBtgPoArACqAL6AlUCMgLgAgUDGgFiAZkCMgJkA+wCEQOMAhEDrgJ3Am0C4gLJAlkEoAJqAl0CYgE5AWIBWAL0AfQBIwJYAtgBWAIeAmwBXAJJAv8AAwEYAj8BbQNJAkACWAJYAogB6AGAAUMCDwJVAyICDgLaAYcBIAGHAVgC//8AAP///////////////////////////////wIB////////////////////////////////////////////////AgHkAIgBWAJYAqIDtQLdAD0BPQHCAVgC5ACoAeQAGwFYAlgCWAJYAlgCWAJYAlgCWAJYAuQA5ABYAlgCWAK7AbID2QKkAqEC5gJHAiQC1gL5AgEBRAFxAh8CWAPjAv8CeQL/Ap0CZwJaAtgCsAJNBIoCVAJNAjsBGwE7AVgC9AH0ARICRwLPAUcCFAJNAUoCOALoAOwA9AEoAVgDOAIsAkcCRwJmAeEBXgExAgMCSQMNAgICzwFgAQkBYAFYAv//AAD///////////////////////////////8PAf///////////////////////////////////////////////w8B+ADAAVgCWAKxA9YC8wBmAWYBxQFYAvgAsgH4ADkBWAJYAlgCWAJYAlgCWAJYAlgCWAL4APgAWAJYAlgCywG2A+gCsAKoAvoCVQIyAuACBQMaAWIBmAIyAmUD6wIRA4wCEQOuAncCbQLiAskCWQSgAmoCXQJiATkBYgFYAvQB9AEjAlgC2AFYAh4CbAFcAkkC/wADARgCPwFtA0kCQAJYAlgCiAHoAYABQwIPAlUDIgIOAtoBhwEgAYcBWAL//0B8AgBB/q0HC4UIoED/////////////////////////////////////////////////////////////////////////////////////iwI1A64DtAYXBZoHPQYzAh8DHwMABLQGiwLjAosCsgIXBRcFFwUXBRcFFwUXBRcFFwUXBbICsgK0BrQGtAY/BAAIeQV9BZYFKQYOBZoEMwYEBlwCXAI/BXUE5wb8BUwG0wRMBo8FFAXjBNsFeQXpB3sF4wR7BR8DsgIfA7QGAAQABOcEFAVmBBQF7ATRAhQFEgU5AjkCogQ5AssHEgXlBBQFFAVKAysEIwMSBbwEiwa8BLwEMwQXBbICFwW0Bv///////////////////////////////////////////////////////////////////////////////////////8kCpgMrBLQGkQUECPoGcwKoA6gDLwS0BgoDUgMKA+wCkQWRBZEFkQWRBZEFkQWRBZEFkQUzAzMDtAa0BrQGpAQACDEGGQbfBaQGdwV3BZEGsgb6AvoCMwYZBfYHsgbNBt0FzQYpBsMFdQV/BjEG0wgrBssFzQWoA+wCqAO0BgAEAARmBboFvgS6BW0FewO6BbIFvgK+AlIFvgJWCLIFfwW6BboF8gPDBNMDsgU3BWQHKQU3BagEsgXsArIFtAb///////////////////////////////////////////////////////////////////////////////////////+LAjUDrgO0BhcFmgc9BjMCHwMfAwAEtAaLAuMCiwKyAhcFFwUXBRcFFwUXBRcFFwUXBRcFsgKyArQGtAa0Bj8EAAh5BX0FlgUpBg4FmgQzBgQGXAJcAj8FdQTnBvwFTAbTBEwGjwUUBeME2wV5BekHewXjBHsFHwOyAh8DtAYABAAE5wQUBWYEFAXsBNECFAUSBTkCOQKiBDkCywcSBeUEFAUUBUoDKwQjAxIFvASLBrwEvAQzBBcFsgIXBbQG////////////////////////////////////////////////////////////////////////////////////////yQKmAysEkQWRBQQI+gZzAqgDqAMvBLQGCgNSAwoD7AKRBZEFkQWRBZEFkQWRBZEFkQWRBTMDMwO0BrQGtAakBAAIMQYZBt8FpAZ3BXcFkQayBvoC+gIzBhkF9geyBs0G3QXNBikGwwV1BX8GMQbTCCsGywXNBagD7AKoA7QGAAQABGYFugW+BLoFbQV7A7oFsgW+Ar4CUgW+AlYIsgV/BboFugXyA8ME0wOyBTcFZAcpBTcFqASyBewCsgW0Bv//SHwCAEGOtgcLhQigQGYE////////////////////////////////AAD///////////////////////////////////////////////9mBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYE//9mBP///////////////////////////////wAA////////////////////////////////////////////////ZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBP//ZgT///////////////////////////////8AAP///////////////////////////////////////////////2YEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgT///////////////////////////////////////////////////////////////////////////////////////9mBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYE//9UfAIAQZ6+BwuFCKBA/////////////////////////////////////////////////////////////////////////////////////2kC8AKZAjIEMgTNBKYFRwHwAvAC8AIyBPAC8ALwAjIEMgQyBDIEMgQyBDIEMgQyBDIEMgTwAvACMgQyBDIE8AIqBrgEhwTJBOgESQQzBGkFPAU6AtADmwQNBK0FGwVkBXYEaAWoBNkDpQQwBbME0QZ0BJAEZwTwAtgC8AIyBDIEMgQ0BHUE9gN1BF0E9QIEBF8ESALvAgkEXAKkBl8ESwR1BHUEHAM9AywDXwTrA/QFAgTyA8wD8AIyBPACMgT///////////////////////////////////////////////////////////////////////////////////////9pAvAC7wKwBLAEeQWmBdYB8ALwAnUDsATwAvAC8AIfA7AEsASwBLAEsASwBLAEsASwBLAE8ALwArAEsASwBIEDKgYRBcME5QQkBY0EqwRfBXgFOgJDBPAEbAT2BVcFoAWyBKwF4wQXBOUEbAX5BBIHzgToBHsENwPYAjcDsASwBLAEQwSnBBgEpQSZBPUCBAS+BGMC7wJiBFwC4Aa5BIcEqQSsBGsDcgMsA7oEOARFBmsERQQ6BHgDsAR4A7AE////////////////////////////////////////////////////////////////////////////////////////aQLwApkCMgTZA80EpgVHAfAC8ALwAjIE8ALwAvACMgQyBDIEMgQyBDIEMgQyBDIEMgQyBPAC8AIyBDIEMgTwAioG4wSHBMkE6ARJBDMEaQU8BToC0AObBA0EFwYbBWQFWQRkBagE2QOlBDAFswTRBnQEkARnBPAC2ALwAjIEMgQyBDQEdQSuA3UETAQ2AwQEdQR0Au8CCQSQAqQGXwRLBHUEdQRVAz0DXAN0BOsD9AUCBPIDzAPwAjIE8AIyBP///////////////////////////////////////////////////////////////////////////////////////2kC8AIgA7AEsATcBaYFaQLwAvACdQOwBPAC8ALwAi0DsASwBLAEsASwBLAEsASwBLAEsATwAvACsASwBLAELQMqBukEuATnBA8FvwSvBGkFbQU6Av0DMwU6BEoGSAWeBasEKAb9BAMEewVLBXcFaQdBBXgF5ATiA9ID4gOwBLAEsAS+BL8E8QO/BGoESANIBH8EnQIaA1EEjwKkBn8EjwTKBMoEkwOsA4EDdQRrBDAGmwSDBEME4gOwBOIDsAT//2B8AgBBrsYHC4UIoED/////////////////////////////////////////////////////////////////////////////////////0AImA6wDjAYWBZwI0AUmAqIDogMWBYwG6QKiA+kCogMWBRYFFgUWBRYFFgUWBRYFFgUWBaIDogOMBowGjAZdBAAIeAV8BZYFKgYPBZkENAYDBl4DowOLBXQEvgb8BUwG0wRMBpAFeAXuBNsFeAXpB3sF7AR7BaIDogOiA4wGFgUWBc4E/AQrBPwExATQAvwEEAUyAsECvAQyAsgHEAXbBPwE/ARqAysEJwMQBbwEjAa8BLwENAQUBaIDFAWMBv///////////////////////////////////////////////////////////////////////////////////////7wCOAOzBPAGsAUtCuYGqAJZBFkEsAXwBuQC1wPkAoQFsAWwBbAFsAWwBbAFsAWwBbAFsAU4AzgD8AbwBvAG7wS2BzYGGAbKBaQGdwU0BX0GswZeBHEEKwYZBZUHxgbNBt0FzQZCBq8FdAV/BhwGBwkcBuUFiQVZBIQFWQTwBrAFsAVYBZgFtQSYBVAFYQOYBbMFvAI5A14FvAJ3CLMFfgWYBZgF+gO/BKUDswUzBdYHWgU1BcYEsAVZBLAF8Ab////////////////////////////////////////////////////////////////////////////////////////QAiYDrAOMBhYFnAjQBSYCogOiAxYFjAbpAqID6QKiAxYFFgUWBRYFFgUWBRYFFgUWBRYFogOiA4wGjAaMBl0EAAh2BXwFlgUgBg8FmQQ0BgMGXgOjA4sFdAS+BvwFTAbTBEwGkAV4Be4E2wV2BewHewXsBHsFogOiA6IDjAYWBRYFzgT8BCsE/ATEBNAC+QQQBTICwQKyBDICyQcQBdsE/AT8BGoDKwQnAxAFugSMBrwEugQ0BBQFogMUBYwG////////////////////////////////////////////////////////////////////////////////////////vAI4A7ME8AawBS0K5gaoAlkEWQSwBfAG5ALXA+QChAWwBbAFsAWwBbAFsAWwBbAFsAWwBTgDOAPwBvAG8AbvBLYHNgYYBsoFpAZ3BTQFfQazBl4EcQQrBhkFlQfGBs0G3QXNBkIGrwV0BX8GHAYHCRwG5QWJBVkEhAVZBPAGsAWwBVgFmAW1BJgFUAVhA5gFswW8AjkDXgW8AncIswV8BZgFmAX6A78EpQOzBTEF1gdaBTUFxgSwBVkEsAXwBv//aHwCAEG+zgcLhQigQP////////////////////////////////////////////////////////////////////////////////////8UAiMCNQMrBZMElgbXBcUBXgJeAmoEkwT2AZMCIQLwApMEkwSTBJMEkwSTBJMEkwSTBJMEIQIhApMEkwSTBG8DMQcQBS8FDAXVBXMEIQTTBecFOwIjAukEJwQ5BwgGOwbRBDsG8gRkBG0E0wXDBGgHngR7BJEEogLwAqICVgSWA54EcwTnBM8D5wR9BLYCYgTpBAYCBgIzBAYCcQfpBNUE5wTnBEQD0QPTAukEAgQ5BjEECAS+AwgDaAQIA5ME////////////////////////////////////////////////////////////////////////////////////////FAJKAscDKwWRBDUHAAYhArYCtgJcBJEEUgKTAkgCTgORBJEEkQSRBJEEkQSRBJEEkQSRBEgCUgKRBJEEkQTRAy0HhQVgBRkF7AV7BGQEywUfBqYCpgJQBYUEiweBBl4GBgVeBkgFaASiBAwGMwW8B1YF/gSiBKYCTgOmAkIESgPbBNUEEAUdBBAFugQZA4UEQgVxAnEC9gRxAtsHQgX0BBAFEAWiA/oDeQNCBY0E2QagBI0E5wMnA2gEJwORBP///////////////////////////////////////////////////////////////////////////////////////xQCEgIXAysFaARYBlwFvAFIAkgCagRoBOwBfwIGAs0CaARoBGgEaARoBGgEaARoBGgEaAQGAgYCaARoBGgEagPHBnEEyQSuBFQFFwTHA2oFbQUvAiMCdQTLA7IGngXDBYcEwwWNBAQE/ANoBWIE0QYnBAYEPwRKAs0CSgIjBCcDbwSFBJ4EmgOeBPIDgQICBJ4ECAIIAucDCAL6Bp4EfQSeBJ4EKwNtA5gCngSyA7wF0wOyA40DywJoBMsCaAT///////////////////////////////////////////////////////////////////////////////////////8UAkoCoAMrBWgE2QaqBQoCtgK2AlwEaAQ5ApMCSAJeA2gEaARoBGgEaARoBGgEaARoBGgESAJIAmgEaARoBKwD2QYGBfYE5QRqBVYEPwSFBZoFkwKmAucEJQQKBwoG1wWkBNcF3wQ9BD8EhwW4BCcH2QSDBEoEpgJeA6YCOQQzA28EwQTDBN0DwQR1BPwCVATVBGACYAKLBGACPQfVBK4EwwTBBF4DyQNIA9UEGQROBj8EJwSkA9cCaATXAmgE//9wfAIAQc7WBwuFCKBA/////////////////////////////////////////////////////////////////////////////////////+4BpgJLAyUF4QSKBq8FuQEAAwADxwMlBSgC/gIoAsAD6QRwA3gEagSFBDoEhwQFBMUEhwSAAoACJQUlBSUF1ANuB14FOwUjBf4FOgXLBM0FhQYeAyQEjgXUBGsHIwb0BeEE9AWdBX0E8wQNBlUFzgevBewE0AQAA8ADAAMlBSUFAAQIBHsEogOYBN4DmgITBKgEWAJWAkkESgIMB7oEUASSBHoERwN1A8MCmgT5A+YFCgTwA40DcQMAA3EDJQX///////////////////////////////////////////////////////////////////////////////////////8IAgMDFASgBSAFCQdlBicCkwOTA9sDoAWgAggDoALGA5wF6wMDBf8EMgXLBC8FbwRpBS8F8ALwAqAFoAWgBWMEvAcRBg8GuQWsBsUFXwV1Bk4HkQPDBIkGfAUwCLcGjwacBY8GYQYxBXkFqwYZBgMJeAbbBYQFkwPGA5MDoAWgBQAExAQqBUAETgWTBCUDnQRwBdQCxQIOBcECIAiFBRYFQwUwBSkEGgQuA2oFiQToBrQEfwQ0BAAEGgMABKAF////////////////////////////////////////////////////////////////////////////////////////7gGmAksDJQXhBIoGrwW5AQADAAPHAyUFKAL+AigCwAPpBHADeARqBIUEOgSHBPkDxQSHBBIDEgMlBSUFJQXUA24HXgU7BSMF/gU6BcsEzQWFBh4DJASOBdQEawcjBtgF4QTYBZ0FfQTzBA0GVQXOB68F7ATQBAADwAMAAyUFJQUABJUEbgShA5oExgOhApUEgARhAlQCOQRIAgkHuARMBKAEcQSxA3MDxwKaBE4ElAYCBHoEjQNxAwADcQMlBf///////////////////////////////////////////////////////////////////////////////////////wgCAwMUBKAFIAUJB2UGJwKTA5MD2wOgBaACCAOgAsYDnAXrAwMF/wQyBcsELwWIBGkFLwXwAvACoAWgBaAFYwS8BxEGEwa5BawGxQVfBXUGTgebA8MEiQZ8BUQIowaPBqYFjwZhBjkFeQWrBhkGAwlrBtsFhAWTA8YDkwOgBaAFAARIBTEFSQRNBXUEDAMyBWcF7QLrAiEF1gIECIUFFgVNBTMFRQQjBFYDewXmBHgHqwRbBSMEAAQaAwAEoAX//3h8AgBB3t4HC8gKoED/////////////////////////////////////////////////////////////////////////////////////zwGbAjUD/AMOBLgFdQXEAW0CbQL8A/wD/wFzAgUCFwMOBA4EDgQOBA4EDgQOBA4EDgQOBCQCJAL8A/wD/AO1AycHoQRaBEQE7AToA60DDAX8BAQCjQIoBF0D1wYqBUwFIgRiBVgErQPmAyIFigQeBycE5gO/A3QCFwN0AvwD/ANUAtUDNARiAzQE+wNxAsQDNATWAeoBowPWAWQGNAQ4BDQENATKAiEDrgI0BJ0DuAV3A58DKQOEAq8DhAL8A///AAD///////////////////////////////8AAP///////////////////////////////////////////////88BmwKCA/wDDgTVBaMF3gF+An4C/AP8AxACcwIjAnADDgQOBA4EDgQOBA4EDgQOBA4EDgQ1AjUC/AP8A/wDtQMwB9kEfAQ8BAsF5wOsAxkFDAUiAqYCYARiA/4GRQVpBUIEfQWBBMgD9gM5BbsEQAdoBCgE0wOZAnADmQL8A/wDZwLzA0sEWQNLBAcEiALLA0sE9wELAtcD9wGCBksETQRLBEsE2AIxA8YCSwTJA/YFrQPKAy4DwALNA8AC/AP////////////////////////////////////////////////////////////////////////////////////////PAZsCNQP8Aw4EuAV1BcQBbQJtAvwD/AP/AXMCBQIaAw4EDgQOBA4EDgQOBA4EDgQOBA4EJAIkAvwD/AP8A7UDJwehBFoELgTsBOgDrQMMBfwEBAKNAigEXQPXBigFPAUiBFAFWASeA+YDIgWKBB8HJwTmA78DdAITA3QC/AP8A1QCHQQdBFQDHQTSA3ECHQQdBNYB6gGjA9YBVAYdBBsEHQQdBL4CHQOuAh0EkQO4BXcDlAMpA4QCrwOEAvwD////////////////////////////////////////////////////////////////////////////////////////zwGbAoID/AMOBNUFowXeAX4CfgL8A/wDEAJzAiMCeQMOBA4EDgQOBA4EDgQOBA4EDgQOBDUCNQL8A/wD/AO1AzAH2QR8BCYECwXnA6wDGQUMBSICpgJgBGID/gZABVkF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AABTLwAAGCEAACY+AAC+AwAAu0sAAP0AAACkNQAApQAAAJA5AAD/AAAA82QAALYDAAAMPgAADSAAABA+AAAMIAAAxkMBAAgAAAADAAAAK0MAAG3SAAALAAAABgAAACoYAABZbAAAAgAAAAEAAAC4LwAAjHcAAAQAAAACAAAAX0YAAAAEAAADAAAABAAAAFJFAAB50gAABQAAAAUAAAC2RgAABAQAAAQAAAAHAAAAABgAAIo5AAAFAAAACQAAAIw5AAD+bwAABAAAAAoAAAByRgAAsP4BAAQAAAAMAAAAnjIAAAAAAQAAAdDR0tPU1dbX2NkAQdb9BwsJ8L8AAAAAAAABAEHo/QcLDWludmlzAABmaWxsZWQAQYD+BwsaDR0AAJlUAAC1OAAAtgsAANt7AAAFyQAAPJEAQcD+Bwt5//////////////////////////////////////////8AAAAAAAAABP7//4f+//8HAAAAAAAAAAD//3////9///////////N//v3//////3///////////w/g/////zH8////AAAAAAAAAP//////////////AQD4AwBB0P8HC0FA1///+/////9/f1T9/w8A/t////////////7f/////wMA////////nxn////PPwMAAAAAAAD+////fwL+////fwBBmoAIC7MB////BwcAAAAAAP7//wf+BwAAAAD+//////////98/38vAGAAAADg////////IwAAAP8DAAAA4J/5///9xQMAAACwAwADAOCH+f///W0DAAAAXgAAHADgr/v///3tIwAAAAABAAAA4J/5///9zSMAAACwAwAAAODHPdYYx78DAAAAAAAAAADg3/3///3vAwAAAAADAAAA4N/9///97wMAAABAAwAAAODf/f///f8DAAAAAAMAQeCBCAsZ/v////9/DQA/AAAAAAAAAJYl8P6ubA0gHwBBiIIICwb//v///wMAQbSCCAty/////z8A/////38A7doHAAAAAFABUDGCq2IsAAAAAEAAyYD1BwAAAAAIAQL/////////////////////////D///////////////A///Pz//////Pz//qv///z/////////fX9wfzw//H9wfAAAAAEBMAEGwgwgLAQcAQcCDCAsmgAAAAP4DAAD+////////////HwD+/////////////wfg/////x8AQYCECAsV//////////////////////////8/AEGghAgLFf//////////////////////////DwBBxYQIC8kCYP8H/v//h/7//wcAAAAAAACAAP//f////3//////AAAAAAAAAP//////////////AQD4AwADAAAAAAD//////////z8AAAADAAAAwNf///v/////f39U/f8PAP7f///////////+3/////97AP///////58Z////zz8DAAAAAAAA/v///38C/v///38A/v/7//+7FgD///8HBwAAAAAA/v//B///BwD/A////////////3z/f+///z3/A+7////////z/z8e/8//AADun/n///3F0585gLDP/wMA5If5///9bdOHOQBewP8fAO6v+////e3zvzsAAMH/AADun/n///3N8485wLDD/wAA7Mc91hjHv8PHPYAAgP8AAO7f/f///e/D3z1gAMP/AADs3/3///3vw989YEDD/wAA7N/9///9/8PPPYAAw/8AQaCHCAs4/v////9//wf/f/8DAAAAAJYl8P6ubP87Xz//AwAAAAAAAAAD/wOgwv/+////A/7/3w+//v8//gIAQfqHCAtn/x8CAAAAoAAAAP7/PgD+////////////H2b+/////////////3dgAAAAYQAAAGIAAABjAAAAZAAAAGUAAABmAAAAZwAAAGgAAABpAAAAagAAAGsAAABsAAAAbQAAAG4AAABvAAAAAQBB8YgICwUVCgAACQBBiIkIC+ABFRAMExweAw0fICEiIxsaERkZGRkZGRkZGRkWEgIOCw8cGBgYGBgYFhYWFhYWFhYWFhYWFhYWFhYWFhYUHAQcFhwYGBgYGBgWFhYWFhYWFhYWFhYWFhYWFhYWFhwkHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcFhwcHBwcHBwcHBwWHBocHBYcHBwcHBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWHBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYcFhYWFhYWFhYAQZCLCAsSAgMEBQYHCAAACQoLDA0ODxARAEGuiwgLBBITABQAQcCLCAsCFRYAQd6LCAtSAQEBAQEBAQEBAQEBAQEBAQEBAQEB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ACdxAAA+cAAA6W8AAG1vAABJbwAAIW8AAB9vAAAcbwAAY2wAAE1sAAAcbAAAGmwAAAlsAAAHbAAAZWsAAElrAACwagAArmoAAKxqAACqagAAKmgAAAFoAAD/ZwAA5GcAAOJnAABPZgAATWYAAOtlAADpZQAAr2QAAC9kAAASXQAAmVQAAIRHAADHRQAArUIAAL8+AAAcPgAACj4AAEo8AABsOQAAtTgAAKYyAAB5MQAAFSEAANEgAAANHQAA1BUAAIgMAAAEDAAAtgsAACcKAABJCQAAeQQAAEQEAAA7BAAALwQAAAkEAAA2cAAAAAAAAAgArv/RAAoArv+u/wsArv+u/67/rv+u/67/rv+u/wUA0QCu/9EA0QDRANEA0QDRANEA0QCu//v/rv8OAOz/rv+u/67/rv/RANEA0QDRANEADQAlAAwAQgAQAFAAEwBtAHsAFACYAA8ApgDDAK7/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/xcArv93AK7/BwAuAK7/JgCu/xcAEQAjAK7/DQCu/67/rv+u/zoArv+u/zUArv+u/67/KACu/wcArv87AEUArv9IAK7/rv+u/67/rv8AQfG/CAvBBgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygAAAAAAAAAAAICAgICAhAMWQEAH1AIAwcSExRXFhcIC2kMHwoFDA4pESsPLRAvMCAyBjQ1GxwdHgsMISIjJCUmJygMGBkXBAobHBogKgohIiMkJSYnKAwKDlMKLFgxWFhYWFhYDBscDy5YMyEiIyQlJicoGxz/U///ISIjJCUmJygM//8F////CRT//////wwbHP8QFRYhIiMkJSYnKBsc/////yEiIyQlJicoDP8SExQRFhf///////8MGxz///8SISIjJCUmJygbHP////8hIiMkJSYnKAz///////8T////////DBsc/////yEiIyQlJicoGxz/////ISIjJCUmJygSExQVFhcYGf///////////yMkJSYnGxITFBYXIjZoAR84ViEgAhsbG14bGzc5cDbSwk8EPCJHIj8iRCIiWCJlIiIFBl9gOQQHCAkKCwwNDgRmZ11qbQUGb1g7cQcICQoLDA0OBHI8W3M+YUYbEhMUFhcEBQY/QWJJBwgJCgsMDQ4FBgBcAAAHCAkKCwwNDgQAAE8AAABTQgAAAAAABAUGAERUVQcICQoLDA0OBQYAAAAABwgJCgsMDQ4EACosLkcxMwAAAAAAAAQFBgAAAEoHCAkKCwwNDgUGAAAAAAcICQoLDA0OBAAAAAAAAEwAAAAAAAAEBQYAAAAABwgJCgsMDQ4FBgAAAAAHCAkKCwwNDikrLS8wMjQ1AEG7xggLLikrLTAyAAQvACQjABIUFhocHiAYAAUHLy8vAC8vAAAJCCgAAAEiAgYAAAAAAAgAQfbGCAs+JQMmEwopFQsqFw4tGREbDCsdDSwfDyEQADMAMAAvQwAxAC8ANS4nQjJBADo4ADw0RQA2AEAAAD8ARDc7OT0AQcHHCAtFAgMDAQECAQEBAwMDAwMDAwMBAQEBAQEBAQEBAQEBAQEBAgEBAgAGAQMDAwMDAQABAgMABAECAwAEAAQABAADAgECAQIBAEGRyAgLRSkqKiorLCwtLS0tLS0tLS0tLi8wMTIzNDU2Nzg5Ojs8PT4+Pz9BQEJCQkJCQkNDRERERkVHR0dJSEpIS0hMSE1NTk5PTwBB4MgIC8YBrv+u//z/6AD2////GgAAACcAAQAyAK7/rv8CACQAAwAvAK7/rv+u/67/rv/+/5QArv8JABsArv+8/67/rv+v/67/rv+u/67/rv+u/67/AAAAAw8QESM6JD0lQBVDJkUnSBhLGU0aKBxOHR5QUVJZWmxrbmNkV2kASAAAACgAAAAYAAAAOAAAABgAAAAIAAAADgAAAGxucnNvbGlkAABzZXRsaW5ld2lkdGgAMQAAAABfUwAAL1IAADcTAABoQAAAF0AAAB9AAEGwyggL5QGAtAIAkLQCAKC0AgCwtAIAwLQCANC0AgDgtAIA8LQCAJC0AgCQtAIA0LQCANC0AgAfAAAAPwAAAH8AAAAAAAAAcD0AAGVLAABUNwAAgjcAAPhZAADfZAAAxgoAAMxMAAAAAAAAId0AAF7jAAAz2wAAaEAAAGhAAABfUwAAL1IAAGJsYWNrAAAABwAAAG5vbmUANSwyADEsNQB0cmFuc3BhcmVudAAAAABoQAAAaEAAAC9SAAAvUgAAJzsAAGhAAAAvUgAAL1IAAF9TAAAvUgAAX1MAAC9SAAABAAAAAQAAAAEAAAABAEGozAgLBQEAAAABAEG4zAgLGC5cIiAAIyAAZG90IHBpYyBwbHVnaW46IABB4MwIC/YEQUIAAG8+AABBSQAATEkAAEFSAABsPAAAQVgAAGNJAABCIAAA8VYAAEJJAADuXgAAQ0IAAPxWAABDTwAAfx8AAENYAACXSQAASCAAANhlAABIQgAALVcAAEhJAADqSQAASFgAAKtJAABIYgAA21YAAEhpAADBSQAASHIAADcKAABIeAAAekkAAEkgAAAvXwAAS0IAAGI+AABLSQAArV4AAEtSAADpEAAAS1gAANteAABOQgAAF1cAAE5JAABMXwAATlIAAPM3AABOWAAAE18AAFBBAADkNwAAUEIAAAlXAABQSQAAPF8AAFBYAAD/XgAAUiAAANg3AABTIAAAezkAAFpEAAARFwAABHEAAA9sAAAzawAAJmwAACRrAAAAAAAAAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAQAAAAIAAAAEAAAAvx4AAF9TAABoQAAAQggAALETAAA0VlBTQwA3SW5jVlBTQwBOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUlOMTJfR0xPQkFMX19OXzE0Tm9kZUVOU185YWxsb2NhdG9ySVMyX0VFRUUAAAAAAGZFAQDnTgAAAQAAAEc+AABPPgAAAwAAALBRAAATRAAADwAAACkXAAApFwAAEAAAAB1dAAAdXQAAEQAAAHQwAAB0MAAAAgAAAKRRAAAPRAAABAAAAIQEAAD/QwAABwAAACwyAAClFgAACAAAAFUJAAClFgAACQAAAHwEAACIFgAACgAAAEwJAACiFgAACwAAACsyAABqFgAADAAAAFQJAABqFgAADQAAAHsEAABGFgAADgAAAEsJAABnFgAAEgAAAPk4AEHw0QgLUI5wAADZagAA+GoAALpqAADDbwAAoXAAAL9vAAAAAAAAjnAAALVuAAAVawAAaHEAAAAAAAAAAPA/AAAAAAAA+D8AAAAAAAAAAAbQz0Pr/Uw+AEHL0ggLZUADuOI/T7thBWes3T8YLURU+yHpP5v2gdILc+8/GC1EVPsh+T/iZS8ifyt6PAdcFDMmpoE8vcvweogHcDwHXBQzJqaRPBgtRFT7Iek/GC1EVPsh6b/SITN/fNkCQNIhM3982QLAAEG/0wgL6BWAGC1EVPshCUAYLURU+yEJwAMAAAAEAAAABAAAAAYAAACD+aIARE5uAPwpFQDRVycA3TT1AGLbwAA8mZUAQZBDAGNR/gC73qsAt2HFADpuJADSTUIASQbgAAnqLgAcktEA6x3+ACmxHADoPqcA9TWCAES7LgCc6YQAtCZwAEF+XwDWkTkAU4M5AJz0OQCLX4QAKPm9APgfOwDe/5cAD5gFABEv7wAKWosAbR9tAM9+NgAJyycARk+3AJ5mPwAt6l8Auid1AOXrxwA9e/EA9zkHAJJSigD7a+oAH7FfAAhdjQAwA1YAe/xGAPCrawAgvM8ANvSaAOOpHQBeYZEACBvmAIWZZQCgFF8AjUBoAIDY/wAnc00ABgYxAMpWFQDJqHMAe+JgAGuMwAAZxEcAzWfDAAno3ABZgyoAi3bEAKYclgBEr90AGVfRAKU+BQAFB/8AM34/AMIy6ACYT94Au30yACY9wwAea+8An/heADUfOgB/8soA8YcdAHyQIQBqJHwA1W76ADAtdwAVO0MAtRTGAMMZnQCtxMIALE1BAAwAXQCGfUYA43EtAJvGmgAzYgAAtNJ8ALSnlwA3VdUA1z72AKMQGABNdvwAZJ0qAHDXqwBjfPgAerBXABcV5wDASVYAO9bZAKeEOAAkI8sA1op3AFpUIwAAH7kA8QobABnO3wCfMf8AZh5qAJlXYQCs+0cAfn/YACJltwAy6IkA5r9gAO/EzQBsNgkAXT/UABbe1wBYO94A3puSANIiKAAohugA4lhNAMbKMgAI4xYA4H3LABfAUADzHacAGOBbAC4TNACDEmIAg0gBAPWOWwCtsH8AHunyAEhKQwAQZ9MAqt3YAK5fQgBqYc4ACiikANOZtAAGpvIAXHd/AKPCgwBhPIgAinN4AK+MWgBv170ALaZjAPS/ywCNge8AJsFnAFXKRQDK2TYAKKjSAMJhjQASyXcABCYUABJGmwDEWcQAyMVEAE2ykQAAF/MA1EOtAClJ5QD91RAAAL78AB6UzABwzu4AEz71AOzxgACz58MAx/goAJMFlADBcT4ALgmzAAtF8wCIEpwAqyB7AC61nwBHksIAezIvAAxVbQByp5AAa+cfADHLlgB5FkoAQXniAPTfiQDolJcA4uaEAJkxlwCI7WsAX182ALv9DgBImrQAZ6RsAHFyQgCNXTIAnxW4ALzlCQCNMSUA93Q5ADAFHAANDAEASwhoACzuWABHqpAAdOcCAL3WJAD3faYAbkhyAJ8W7wCOlKYAtJH2ANFTUQDPCvIAIJgzAPVLfgCyY2gA3T5fAEBdAwCFiX8AVVIpADdkwABt2BAAMkgyAFtMdQBOcdQARVRuAAsJwQAq9WkAFGbVACcHnQBdBFAAtDvbAOp2xQCH+RcASWt9AB0nugCWaSkAxsysAK0UVACQ4moAiNmJACxyUAAEpL4AdweUAPMwcAAA/CcA6nGoAGbCSQBk4D0Al92DAKM/lwBDlP0ADYaMADFB3gCSOZ0A3XCMABe35wAI3zsAFTcrAFyAoABagJMAEBGSAA/o2ABsgK8A2/9LADiQDwBZGHYAYqUVAGHLuwDHibkAEEC9ANLyBABJdScA67b2ANsiuwAKFKoAiSYvAGSDdgAJOzMADpQaAFE6qgAdo8IAr+2uAFwmEgBtwk0ALXqcAMBWlwADP4MACfD2ACtAjABtMZkAObQHAAwgFQDYw1sA9ZLEAMatSwBOyqUApzfNAOapNgCrkpQA3UJoABlj3gB2jO8AaItSAPzbNwCuoasA3xUxAACuoQAM+9oAZE1mAO0FtwApZTAAV1a/AEf/OgBq+bkAdb7zACiT3wCrgDAAZoz2AATLFQD6IgYA2eQdAD2zpABXG48ANs0JAE5C6QATvqQAMyO1APCqGgBPZagA0sGlAAs/DwBbeM0AI/l2AHuLBACJF3IAxqZTAG9u4gDv6wAAm0pYAMTatwCqZroAds/PANECHQCx8S0AjJnBAMOtdwCGSNoA912gAMaA9ACs8C8A3eyaAD9cvADQ3m0AkMcfACrbtgCjJToAAK+aAK1TkwC2VwQAKS20AEuAfgDaB6cAdqoOAHtZoQAWEioA3LctAPrl/QCJ2/4Aib79AOR2bAAGqfwAPoBwAIVuFQD9h/8AKD4HAGFnMwAqGIYATb3qALPnrwCPbW4AlWc5ADG/WwCE10gAMN8WAMctQwAlYTUAyXDOADDLuAC/bP0ApACiAAVs5ABa3aAAIW9HAGIS0gC5XIQAcGFJAGtW4ACZUgEAUFU3AB7VtwAz8cQAE25fAF0w5ACFLqkAHbLDAKEyNgAIt6QA6rHUABb3IQCPaeQAJ/93AAwDgACNQC0AT82gACClmQCzotMAL10KALT5QgAR2ssAfb7QAJvbwQCrF70AyqKBAAhqXAAuVRcAJwBVAH8U8ADhB4YAFAtkAJZBjQCHvt4A2v0qAGsltgB7iTQABfP+ALm/ngBoak8ASiqoAE/EWgAt+LwA11qYAPTHlQANTY0AIDqmAKRXXwAUP7EAgDiVAMwgAQBx3YYAyd62AL9g9QBNZREAAQdrAIywrACywNAAUVVIAB77DgCVcsMAowY7AMBANQAG3HsA4EXMAE4p+gDWysgA6PNBAHxk3gCbZNgA2b4xAKSXwwB3WNQAaePFAPDaEwC6OjwARhhGAFV1XwDSvfUAbpLGAKwuXQAORO0AHD5CAGHEhwAp/ekA59bzACJ8ygBvkTUACODFAP/XjQBuauIAsP3GAJMIwQB8XXQAa62yAM1unQA+cnsAxhFqAPfPqQApc98Atcm6ALcAUQDisg0AdLokAOV9YAB02IoADRUsAIEYDAB+ZpQAASkWAJ96dgD9/b4AVkXvANl+NgDs2RMAi7q5AMSX/AAxqCcA8W7DAJTFNgDYqFYAtKi1AM/MDgASiS0Ab1c0ACxWiQCZzuMA1iC5AGteqgA+KpwAEV/MAP0LSgDh9PsAjjttAOKGLADp1IQA/LSpAO/u0QAuNckALzlhADghRAAb2cgAgfwKAPtKagAvHNgAU7SEAE6ZjABUIswAKlXcAMDG1gALGZYAGnC4AGmVZAAmWmAAP1LuAH8RDwD0tREA/Mv1ADS8LQA0vO4A6F3MAN1eYABnjpsAkjPvAMkXuABhWJsA4Ve8AFGDxgDYPhAA3XFIAC0c3QCvGKEAISxGAFnz1wDZepgAnlTAAE+G+gBWBvwA5XmuAIkiNgA4rSIAZ5PcAFXoqgCCJjgAyuebAFENpACZM7EAqdcOAGkFSABlsvAAf4inAIhMlwD50TYAIZKzAHuCSgCYzyEAQJ/cANxHVQDhdDoAZ+tCAP6d3wBe1F8Ae2ekALqsegBV9qIAK4gjAEG6VQBZbggAISqGADlHgwCJ4+YA5Z7UAEn7QAD/VukAHA/KAMVZigCU+isA08HFAA/FzwDbWq4AR8WGAIVDYgAhhjsALHmUABBhhwAqTHsAgCwaAEO/EgCIJpAAeDyJAKjE5ADl23sAxDrCACb06gD3Z4oADZK/AGWjKwA9k7EAvXwLAKRR3AAn3WMAaeHdAJqUGQCoKZUAaM4oAAnttABEnyAATpjKAHCCYwB+fCMAD7kyAKf1jgAUVucAIfEIALWdKgBvfk0ApRlRALX5qwCC39YAlt1hABY2AgDEOp8Ag6KhAHLtbQA5jXoAgripAGsyXABGJ1sAADTtANIAdwD89FUAAVlNAOBxgABBs+kIC60BQPsh+T8AAAAALUR0PgAAAICYRvg8AAAAYFHMeDsAAACAgxvwOQAAAEAgJXo4AAAAgCKC4zYAAAAAHfNpNf6CK2VHFWdAAAAAAAAAOEMAAPr+Qi52vzo7nrya9wy9vf3/////3z88VFVVVVXFP5ErF89VVaU/F9CkZxERgT8AAAAAAADIQu85+v5CLuY/JMSC/72/zj+19AzXCGusP8xQRtKrsoM/hDpOm+DXVT8AQe7qCAuVEPA/br+IGk87mzw1M/upPfbvP13c2JwTYHG8YYB3Pprs7z/RZocQel6QvIV/bugV4+8/E/ZnNVLSjDx0hRXTsNnvP/qO+SOAzou83vbdKWvQ7z9hyOZhTvdgPMibdRhFx+8/mdMzW+SjkDyD88bKPr7vP217g12mmpc8D4n5bFi17z/87/2SGrWOPPdHciuSrO8/0ZwvcD2+Pjyi0dMy7KPvPwtukIk0A2q8G9P+r2ab7z8OvS8qUlaVvFFbEtABk+8/VepOjO+AULzMMWzAvYrvPxb01bkjyZG84C2prpqC7z+vVVzp49OAPFGOpciYeu8/SJOl6hUbgLx7UX08uHLvPz0y3lXwH4+86o2MOPlq7z+/UxM/jImLPHXLb+tbY+8/JusRdpzZlrzUXASE4FvvP2AvOj737Jo8qrloMYdU7z+dOIbLguePvB3Z/CJQTe8/jcOmREFvijzWjGKIO0bvP30E5LAFeoA8ltx9kUk/7z+UqKjj/Y6WPDhidW56OO8/fUh08hhehzw/prJPzjHvP/LnH5grR4A83XziZUUr7z9eCHE/e7iWvIFj9eHfJO8/MasJbeH3gjzh3h/1nR7vP/q/bxqbIT28kNna0H8Y7z+0CgxygjeLPAsD5KaFEu8/j8vOiZIUbjxWLz6prwzvP7arsE11TYM8FbcxCv4G7z9MdKziAUKGPDHYTPxwAe8/SvjTXTndjzz/FmSyCPzuPwRbjjuAo4a88Z+SX8X27j9oUEvM7UqSvMupOjen8e4/ji1RG/gHmbxm2AVtruzuP9I2lD7o0XG895/lNNvn7j8VG86zGRmZvOWoE8Mt4+4/bUwqp0ifhTwiNBJMpt7uP4ppKHpgEpO8HICsBEXa7j9biRdIj6dYvCou9yEK1u4/G5pJZ5ssfLyXqFDZ9dHuPxGswmDtY0M8LYlhYAjO7j/vZAY7CWaWPFcAHe1Byu4/eQOh2uHMbjzQPMG1osbuPzASDz+O/5M83tPX8CrD7j+wr3q7zpB2PCcqNtXav+4/d+BU670dkzwN3f2ZsrzuP46jcQA0lI+8pyyddrK57j9Jo5PczN6HvEJmz6Latu4/XzgPvcbeeLyCT51WK7TuP/Zce+xGEoa8D5JdyqSx7j+O1/0YBTWTPNontTZHr+4/BZuKL7eYezz9x5fUEq3uPwlUHOLhY5A8KVRI3Qer7j/qxhlQhcc0PLdGWYomqe4/NcBkK+YylDxIIa0Vb6fuP592mWFK5Iy8Cdx2ueGl7j+oTe87xTOMvIVVOrB+pO4/rukriXhThLwgw8w0RqPuP1hYVnjdzpO8JSJVgjii7j9kGX6AqhBXPHOpTNRVoe4/KCJev++zk7zNO39mnqDuP4K5NIetEmq8v9oLdRKg7j/uqW2472djvC8aZTyyn+4/UYjgVD3cgLyElFH5fZ/uP88+Wn5kH3i8dF/s6HWf7j+wfYvASu6GvHSBpUian+4/iuZVHjIZhrzJZ0JW65/uP9PUCV7LnJA8P13eT2mg7j8dpU253DJ7vIcB63MUoe4/a8BnVP3slDwywTAB7aHuP1Vs1qvh62U8Yk7PNvOi7j9Cz7MvxaGIvBIaPlQnpO4/NDc78bZpk7wTzkyZiaXuPx7/GTqEXoC8rccjRhqn7j9uV3LYUNSUvO2SRJvZqO4/AIoOW2etkDyZZorZx6ruP7Tq8MEvt40826AqQuWs7j//58WcYLZlvIxEtRYyr+4/RF/zWYP2ezw2dxWZrrHuP4M9HqcfCZO8xv+RC1u07j8pHmyLuKldvOXFzbA3t+4/WbmQfPkjbLwPUsjLRLruP6r59CJDQ5K8UE7en4K97j9LjmbXbMqFvLoHynDxwO4/J86RK/yvcTyQ8KOCkcTuP7tzCuE10m08IyPjGWPI7j9jImIiBMWHvGXlXXtmzO4/1THi44YcizwzLUrsm9DuPxW7vNPRu5G8XSU+sgPV7j/SMe6cMcyQPFizMBOe2e4/s1pzboRphDy//XlVa97uP7SdjpfN34K8evPTv2vj7j+HM8uSdxqMPK3TWpmf6O4/+tnRSo97kLxmto0pB+7uP7qu3FbZw1W8+xVPuKLz7j9A9qY9DqSQvDpZ5Y1y+e4/NJOtOPTWaLxHXvvydv/uPzWKWGvi7pG8SgahMLAF7z/N3V8K1/90PNLBS5AeDO8/rJiS+vu9kbwJHtdbwhLvP7MMrzCubnM8nFKF3ZsZ7z+U/Z9cMuOOPHrQ/1+rIO8/rFkJ0Y/ghDxL0Vcu8SfvP2caTjivzWM8tecGlG0v7z9oGZJsLGtnPGmQ79wgN+8/0rXMgxiKgLz6w11VCz/vP2/6/z9drY+8fIkHSi1H7z9JqXU4rg2QvPKJDQiHT+8/pwc9poWjdDyHpPvcGFjvPw8iQCCekYK8mIPJFuNg7z+sksHVUFqOPIUy2wPmae8/S2sBrFk6hDxgtAHzIXPvPx8+tAch1YK8X5t7M5d87z/JDUc7uSqJvCmh9RRGhu8/04g6YAS2dDz2P4vnLpDvP3FynVHsxYM8g0zH+1Ga7z/wkdOPEvePvNqQpKKvpO8/fXQj4piujbzxZ44tSK/vPwggqkG8w448J1ph7hu67z8y66nDlCuEPJe6azcrxe8/7oXRMalkijxARW5bdtDvP+3jO+S6N468FL6crf3b7z+dzZFNO4l3PNiQnoHB5+8/icxgQcEFUzzxcY8rwvPvP94SBJUAAAAA////////////////YD0CABQAAABDLlVURi04AEGw+wgLA3Q9AgBB0PsIC0dMQ19DVFlQRQAAAABMQ19OVU1FUklDAABMQ19USU1FAAAAAABMQ19DT0xMQVRFAABMQ19NT05FVEFSWQBMQ19NRVNTQUdFUwBBoPwICwdDLlVURi04AEG4/AgLoBBQrgIA6K4CAHivAgBObyBlcnJvciBpbmZvcm1hdGlvbgBJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBNdWx0aWhvcCBhdHRlbXB0ZWQAUmVxdWlyZWQga2V5IG5vdCBhdmFpbGFibGUAS2V5IGhhcyBleHBpcmVkAEtleSBoYXMgYmVlbiByZXZva2VkAEtleSB3YXMgcmVqZWN0ZWQgYnkgc2VydmljZQAAAAAApQJbAPABtQWMBSUBgwYdA5QE/wDHAzEDCwa8AY8BfwPKBCsA2gavAEIDTgPcAQ4EFQChBg0BlAILAjgGZAK8Av8CXQPnBAsHzwLLBe8F2wXhAh4GRQKFAIICbANvBPEA8wMYBdkA2gNMBlQCewGdA70EAABRABUCuwCzA20A/wGFBC8F+QQ4AGUBRgGfALcGqAFzAlMBAEGIjQkLDCEEAAAAAAAAAAAvAgBBqI0JCwY1BEcEVgQAQb6NCQsCoAQAQdKNCQsiRgVgBW4FYQYAAM8BAAAAAAAAAADJBukG+QYeBzkHSQdeBwBBgI4JC5EB0XSeAFedvSqAcFIP//8+JwoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFGAAAADUAAABxAAAAa////877//+Sv///AAAAAAAAAAAZAAsAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkACgoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQBBoY8JCyEOAAAAAAAAAAAZAAsNGRkZAA0AAAIACQ4AAAAJAA4AAA4AQduPCQsBDABB548JCxUTAAAAABMAAAAACQwAAAAAAAwAAAwAQZWQCQsBEABBoZAJCxUPAAAABA8AAAAACRAAAAAAABAAABAAQc+QCQsBEgBB25AJCx4RAAAAABEAAAAACRIAAAAAABIAABIAABoAAAAaGhoAQZKRCQsOGgAAABoaGgAAAAAAAAkAQcORCQsBFABBz5EJCxUXAAAAABcAAAAACRQAAAAAABQAABQAQf2RCQsBFgBBiZIJCycVAAAAABUAAAAACRYAAAAAABYAABYAADAxMjM0NTY3ODlBQkNERUYAQdSSCQsCAwIAQfySCQsI//////////8AQcCTCQv1CP////////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAECBAcDBgUAAAAAAAAAAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADAFAAAwBUAAMAWAADAFwAAwBgAAMAZAADAGgAAwBsAAMAcAADAHQAAwB4AAMAfAADAAAAAswEAAMMCAADDAwAAwwQAAMMFAADDBgAAwwcAAMMIAADDCQAAwwoAAMMLAADDDAAAww0AANMOAADDDwAAwwAADLsBAAzDAgAMwwMADMMEAAzbAAAAAIRMAgAFAgAABgIAAAcCAAAIAgAACQIAAAoCAAALAgAADAIAAA0CAAAOAgAADwIAABACAAARAgAAEgIAAAQAAAAAAAAAwEwCABMCAAAUAgAA/P////z////ATAIAFQIAABYCAADoSwIA/EsCAAAAAAAITQIAFwIAABgCAAAHAgAACAIAABkCAAAaAgAACwIAAAwCAAANAgAAGwIAAA8CAAAcAgAAEQIAAB0CAAD4dwIAWEwCABxOAgBOU3QzX18yOWJhc2ljX2lvc0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQAAANB3AgCMTAIATlN0M19fMjE1YmFzaWNfc3RyZWFtYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAAAAAFR4AgDYTAIAAAAAAAEAAABMTAIAA/T//05TdDNfXzIxM2Jhc2ljX29zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUAAPh3AgAUTQIAhEwCAE5TdDNfXzIxNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAAAAOAAAAAAAAAC4TQIAHgIAAB8CAADI////yP///7hNAgAgAgAAIQIAAGRNAgCcTQIAsE0CAHhNAgA4AAAAAAAAAMBMAgATAgAAFAIAAMj////I////wEwCABUCAAAWAgAA+HcCAMRNAgDATAIATlN0M19fMjE5YmFzaWNfb3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAAAAAAAAABxOAgAiAgAAIwIAANB3AgAkTgIATlN0M19fMjhpb3NfYmFzZUUAQcScCQstgN4oAIDITQAAp3YAADSeAIASxwCAn+4AAH4XAYBcQAGA6WcBAMiQAQBVuAEuAEGAnQkL1wJTdW4ATW9uAFR1ZQBXZWQAVGh1AEZyaQBTYXQAU3VuZGF5AE1vbmRheQBUdWVzZGF5AFdlZG5lc2RheQBUaHVyc2RheQBGcmlkYXkAU2F0dXJkYXkASmFuAEZlYgBNYXIAQXByAE1heQBKdW4ASnVsAEF1ZwBTZXAAT2N0AE5vdgBEZWMASmFudWFyeQBGZWJydWFyeQBNYXJjaABBcHJpbABNYXkASnVuZQBKdWx5AEF1Z3VzdABTZXB0ZW1iZXIAT2N0b2JlcgBOb3ZlbWJlcgBEZWNlbWJlcgBBTQBQTQAlYSAlYiAlZSAlVCAlWQAlbS8lZC8leQAlSDolTTolUwAlSTolTTolUyAlcAAAACVtLyVkLyV5ADAxMjM0NTY3ODkAJWEgJWIgJWUgJVQgJVkAJUg6JU06JVMAAAAAAF5beVldAF5bbk5dAHllcwBubwAA4FECAEHkowkL+QMBAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACQAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAALwAAADAAAAAxAAAAMgAAADMAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAAAD8AAABAAAAAQQAAAEIAAABDAAAARAAAAEUAAABGAAAARwAAAEgAAABJAAAASgAAAEsAAABMAAAATQAAAE4AAABPAAAAUAAAAFEAAABSAAAAUwAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAFoAAABbAAAAXAAAAF0AAABeAAAAXwAAAGAAAABBAAAAQgAAAEMAAABEAAAARQAAAEYAAABHAAAASAAAAEkAAABKAAAASwAAAEwAAABNAAAATgAAAE8AAABQAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAAVwAAAFgAAABZAAAAWgAAAHsAAAB8AAAAfQAAAH4AAAB/AEHgqwkLA/BXAgBB9K8JC/kDAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAAC8AAAAwAAAAMQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAAAA5AAAAOgAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAGEAAABiAAAAYwAAAGQAAABlAAAAZgAAAGcAAABoAAAAaQAAAGoAAABrAAAAbAAAAG0AAABuAAAAbwAAAHAAAABxAAAAcgAAAHMAAAB0AAAAdQAAAHYAAAB3AAAAeAAAAHkAAAB6AAAAWwAAAFwAAABdAAAAXgAAAF8AAABgAAAAYQAAAGIAAABjAAAAZAAAAGUAAABmAAAAZwAAAGgAAABpAAAAagAAAGsAAABsAAAAbQAAAG4AAABvAAAAcAAAAHEAAAByAAAAcwAAAHQAAAB1AAAAdgAAAHcAAAB4AAAAeQAAAHoAAAB7AAAAfAAAAH0AAAB+AAAAfwBB8LcJCzEwMTIzNDU2Nzg5YWJjZGVmQUJDREVGeFgrLXBQaUluTgAlSTolTTolUyAlcCVIOiVNAEGwuAkLgQElAAAAbQAAAC8AAAAlAAAAZAAAAC8AAAAlAAAAeQAAACUAAABZAAAALQAAACUAAABtAAAALQAAACUAAABkAAAAJQAAAEkAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAgAAAAJQAAAHAAAAAAAAAAJQAAAEgAAAA6AAAAJQAAAE0AQcC5CQtmJQAAAEgAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAAAAAAIGYCADcCAAA4AgAAOQIAAAAAAACEZgIAOgIAADsCAAA5AgAAPAIAAD0CAAA+AgAAPwIAAEACAABBAgAAQgIAAEMCAEGwugkL/QMEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAFAgAABQAAAAUAAAAFAAAABQAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAMCAACCAAAAggAAAIIAAACCAAAAggAAAIIAAACCAAAAggAAAIIAAACCAAAAggAAAIIAAACCAAAAggAAAIIAAABCAQAAQgEAAEIBAABCAQAAQgEAAEIBAABCAQAAQgEAAEIBAABCAQAAggAAAIIAAACCAAAAggAAAIIAAACCAAAAggAAACoBAAAqAQAAKgEAACoBAAAqAQAAKgEAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAAAqAAAAggAAAIIAAACCAAAAggAAAIIAAACCAAAAMgEAADIBAAAyAQAAMgEAADIBAAAyAQAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAACCAAAAggAAAIIAAACCAAAABABBtMIJC+0C3GUCAEQCAABFAgAAOQIAAEYCAABHAgAASAIAAEkCAABKAgAASwIAAEwCAAAAAAAAuGYCAE0CAABOAgAAOQIAAE8CAABQAgAAUQIAAFICAABTAgAAAAAAANxmAgBUAgAAVQIAADkCAABWAgAAVwIAAFgCAABZAgAAWgIAAHQAAAByAAAAdQAAAGUAAAAAAAAAZgAAAGEAAABsAAAAcwAAAGUAAAAAAAAAJQAAAG0AAAAvAAAAJQAAAGQAAAAvAAAAJQAAAHkAAAAAAAAAJQAAAEgAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAAAAAAJQAAAGEAAAAgAAAAJQAAAGIAAAAgAAAAJQAAAGQAAAAgAAAAJQAAAEgAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAgAAAAJQAAAFkAAAAAAAAAJQAAAEkAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAgAAAAJQAAAHAAQazFCQv9J7xiAgBbAgAAXAIAADkCAAD4dwIAyGICAAx3AgBOU3QzX18yNmxvY2FsZTVmYWNldEUAAAAAAAAAJGMCAFsCAABdAgAAOQIAAF4CAABfAgAAYAIAAGECAABiAgAAYwIAAGQCAABlAgAAZgIAAGcCAABoAgAAaQIAAFR4AgBEYwIAAAAAAAIAAAC8YgIAAgAAAFhjAgACAAAATlN0M19fMjVjdHlwZUl3RUUAAADQdwIAYGMCAE5TdDNfXzIxMGN0eXBlX2Jhc2VFAAAAAAAAAACoYwIAWwIAAGoCAAA5AgAAawIAAGwCAABtAgAAbgIAAG8CAABwAgAAcQIAAFR4AgDIYwIAAAAAAAIAAAC8YgIAAgAAAOxjAgACAAAATlN0M19fMjdjb2RlY3Z0SWNjMTFfX21ic3RhdGVfdEVFAAAA0HcCAPRjAgBOU3QzX18yMTJjb2RlY3Z0X2Jhc2VFAAAAAAAAPGQCAFsCAAByAgAAOQIAAHMCAAB0AgAAdQIAAHYCAAB3AgAAeAIAAHkCAABUeAIAXGQCAAAAAAACAAAAvGICAAIAAADsYwIAAgAAAE5TdDNfXzI3Y29kZWN2dElEc2MxMV9fbWJzdGF0ZV90RUUAAAAAAACwZAIAWwIAAHoCAAA5AgAAewIAAHwCAAB9AgAAfgIAAH8CAACAAgAAgQIAAFR4AgDQZAIAAAAAAAIAAAC8YgIAAgAAAOxjAgACAAAATlN0M19fMjdjb2RlY3Z0SURzRHUxMV9fbWJzdGF0ZV90RUUAAAAAACRlAgBbAgAAggIAADkCAACDAgAAhAIAAIUCAACGAgAAhwIAAIgCAACJAgAAVHgCAERlAgAAAAAAAgAAALxiAgACAAAA7GMCAAIAAABOU3QzX18yN2NvZGVjdnRJRGljMTFfX21ic3RhdGVfdEVFAAAAAAAAmGUCAFsCAACKAgAAOQIAAIsCAACMAgAAjQIAAI4CAACPAgAAkAIAAJECAABUeAIAuGUCAAAAAAACAAAAvGICAAIAAADsYwIAAgAAAE5TdDNfXzI3Y29kZWN2dElEaUR1MTFfX21ic3RhdGVfdEVFAFR4AgD8ZQIAAAAAAAIAAAC8YgIAAgAAAOxjAgACAAAATlN0M19fMjdjb2RlY3Z0SXdjMTFfX21ic3RhdGVfdEVFAAAA+HcCACxmAgC8YgIATlN0M19fMjZsb2NhbGU1X19pbXBFAAAA+HcCAFBmAgC8YgIATlN0M19fMjdjb2xsYXRlSWNFRQD4dwIAcGYCALxiAgBOU3QzX18yN2NvbGxhdGVJd0VFAFR4AgCkZgIAAAAAAAIAAAC8YgIAAgAAAFhjAgACAAAATlN0M19fMjVjdHlwZUljRUUAAAD4dwIAxGYCALxiAgBOU3QzX18yOG51bXB1bmN0SWNFRQAAAAD4dwIA6GYCALxiAgBOU3QzX18yOG51bXB1bmN0SXdFRQAAAAAAAAAARGYCAJICAACTAgAAOQIAAJQCAACVAgAAlgIAAAAAAABkZgIAlwIAAJgCAAA5AgAAmQIAAJoCAACbAgAAAAAAAIBnAgBbAgAAnAIAADkCAACdAgAAngIAAJ8CAACgAgAAoQIAAKICAACjAgAApAIAAKUCAACmAgAApwIAAFR4AgCgZwIAAAAAAAIAAAC8YgIAAgAAAORnAgAAAAAATlN0M19fMjdudW1fZ2V0SWNOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJY05TXzExY2hhcl90cmFpdHNJY0VFRUVFRQBUeAIA/GcCAAAAAAABAAAAFGgCAAAAAABOU3QzX18yOV9fbnVtX2dldEljRUUAAADQdwIAHGgCAE5TdDNfXzIxNF9fbnVtX2dldF9iYXNlRQAAAAAAAAAAeGgCAFsCAACoAgAAOQIAAKkCAACqAgAAqwIAAKwCAACtAgAArgIAAK8CAACwAgAAsQIAALICAACzAgAAVHgCAJhoAgAAAAAAAgAAALxiAgACAAAA3GgCAAAAAABOU3QzX18yN251bV9nZXRJd05TXzE5aXN0cmVhbWJ1Zl9pdGVyYXRvckl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRUVFAFR4AgD0aAIAAAAAAAEAAAAUaAIAAAAAAE5TdDNfXzI5X19udW1fZ2V0SXdFRQAAAAAAAABAaQIAWwIAALQCAAA5AgAAtQIAALYCAAC3AgAAuAIAALkCAAC6AgAAuwIAALwCAABUeAIAYGkCAAAAAAACAAAAvGICAAIAAACkaQIAAAAAAE5TdDNfXzI3bnVtX3B1dEljTlNfMTlvc3RyZWFtYnVmX2l0ZXJhdG9ySWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFRUUAVHgCALxpAgAAAAAAAQAAANRpAgAAAAAATlN0M19fMjlfX251bV9wdXRJY0VFAAAA0HcCANxpAgBOU3QzX18yMTRfX251bV9wdXRfYmFzZUUAAAAAAAAAACxqAgBbAgAAvQIAADkCAAC+AgAAvwIAAMACAADBAgAAwgIAAMMCAADEAgAAxQIAAFR4AgBMagIAAAAAAAIAAAC8YgIAAgAAAJBqAgAAAAAATlN0M19fMjdudW1fcHV0SXdOU18xOW9zdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBUeAIAqGoCAAAAAAABAAAA1GkCAAAAAABOU3QzX18yOV9fbnVtX3B1dEl3RUUAAAAAAAAAFGsCAMYCAADHAgAAOQIAAMgCAADJAgAAygIAAMsCAADMAgAAzQIAAM4CAAD4////FGsCAM8CAADQAgAA0QIAANICAADTAgAA1AIAANUCAABUeAIAPGsCAAAAAAADAAAAvGICAAIAAACEawIAAgAAAKBrAgAACAAATlN0M19fMjh0aW1lX2dldEljTlNfMTlpc3RyZWFtYnVmX2l0ZXJhdG9ySWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFRUUAAAAA0HcCAIxrAgBOU3QzX18yOXRpbWVfYmFzZUUAANB3AgCoawIATlN0M19fMjIwX190aW1lX2dldF9jX3N0b3JhZ2VJY0VFAAAAAAAAACBsAgDWAgAA1wIAADkCAADYAgAA2QIAANoCAADbAgAA3AIAAN0CAADeAgAA+P///yBsAgDfAgAA4AIAAOECAADiAgAA4wIAAOQCAADlAgAAVHgCAEhsAgAAAAAAAwAAALxiAgACAAAAhGsCAAIAAACQbAIAAAgAAE5TdDNfXzI4dGltZV9nZXRJd05TXzE5aXN0cmVhbWJ1Zl9pdGVyYXRvckl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRUVFAAAAANB3AgCYbAIATlN0M19fMjIwX190aW1lX2dldF9jX3N0b3JhZ2VJd0VFAAAAAAAAANRsAgDmAgAA5wIAADkCAADoAgAAVHgCAPRsAgAAAAAAAgAAALxiAgACAAAAPG0CAAAIAABOU3QzX18yOHRpbWVfcHV0SWNOU18xOW9zdHJlYW1idWZfaXRlcmF0b3JJY05TXzExY2hhcl90cmFpdHNJY0VFRUVFRQAAAADQdwIARG0CAE5TdDNfXzIxMF9fdGltZV9wdXRFAAAAAAAAAAB0bQIA6QIAAOoCAAA5AgAA6wIAAFR4AgCUbQIAAAAAAAIAAAC8YgIAAgAAADxtAgAACAAATlN0M19fMjh0aW1lX3B1dEl3TlNfMTlvc3RyZWFtYnVmX2l0ZXJhdG9ySXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFRUUAAAAAAAAAABRuAgBbAgAA7AIAADkCAADtAgAA7gIAAO8CAADwAgAA8QIAAPICAADzAgAA9AIAAPUCAABUeAIANG4CAAAAAAACAAAAvGICAAIAAABQbgIAAgAAAE5TdDNfXzIxMG1vbmV5cHVuY3RJY0xiMEVFRQDQdwIAWG4CAE5TdDNfXzIxMG1vbmV5X2Jhc2VFAAAAAAAAAACobgIAWwIAAPYCAAA5AgAA9wIAAPgCAAD5AgAA+gIAAPsCAAD8AgAA/QIAAP4CAAD/AgAAVHgCAMhuAgAAAAAAAgAAALxiAgACAAAAUG4CAAIAAABOU3QzX18yMTBtb25leXB1bmN0SWNMYjFFRUUAAAAAABxvAgBbAgAAAAMAADkCAAABAwAAAgMAAAMDAAAEAwAABQMAAAYDAAAHAwAACAMAAAkDAABUeAIAPG8CAAAAAAACAAAAvGICAAIAAABQbgIAAgAAAE5TdDNfXzIxMG1vbmV5cHVuY3RJd0xiMEVFRQAAAAAAkG8CAFsCAAAKAwAAOQIAAAsDAAAMAwAADQMAAA4DAAAPAwAAEAMAABEDAAASAwAAEwMAAFR4AgCwbwIAAAAAAAIAAAC8YgIAAgAAAFBuAgACAAAATlN0M19fMjEwbW9uZXlwdW5jdEl3TGIxRUVFAAAAAADobwIAWwIAABQDAAA5AgAAFQMAABYDAABUeAIACHACAAAAAAACAAAAvGICAAIAAABQcAIAAAAAAE5TdDNfXzI5bW9uZXlfZ2V0SWNOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJY05TXzExY2hhcl90cmFpdHNJY0VFRUVFRQAAANB3AgBYcAIATlN0M19fMjExX19tb25leV9nZXRJY0VFAAAAAAAAAACQcAIAWwIAABcDAAA5AgAAGAMAABkDAABUeAIAsHACAAAAAAACAAAAvGICAAIAAAD4cAIAAAAAAE5TdDNfXzI5bW9uZXlfZ2V0SXdOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQAAANB3AgAAcQIATlN0M19fMjExX19tb25leV9nZXRJd0VFAAAAAAAAAAA4cQIAWwIAABoDAAA5AgAAGwMAABwDAABUeAIAWHECAAAAAAACAAAAvGICAAIAAACgcQIAAAAAAE5TdDNfXzI5bW9uZXlfcHV0SWNOU18xOW9zdHJlYW1idWZfaXRlcmF0b3JJY05TXzExY2hhcl90cmFpdHNJY0VFRUVFRQAAANB3AgCocQIATlN0M19fMjExX19tb25leV9wdXRJY0VFAAAAAAAAAADgcQIAWwIAAB0DAAA5AgAAHgMAAB8DAABUeAIAAHICAAAAAAACAAAAvGICAAIAAABIcgIAAAAAAE5TdDNfXzI5bW9uZXlfcHV0SXdOU18xOW9zdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQAAANB3AgBQcgIATlN0M19fMjExX19tb25leV9wdXRJd0VFAAAAAAAAAACMcgIAWwIAACADAAA5AgAAIQMAACIDAAAjAwAAVHgCAKxyAgAAAAAAAgAAALxiAgACAAAAxHICAAIAAABOU3QzX18yOG1lc3NhZ2VzSWNFRQAAAADQdwIAzHICAE5TdDNfXzIxM21lc3NhZ2VzX2Jhc2VFAAAAAAAEcwIAWwIAACQDAAA5AgAAJQMAACYDAAAnAwAAVHgCACRzAgAAAAAAAgAAALxiAgACAAAAxHICAAIAAABOU3QzX18yOG1lc3NhZ2VzSXdFRQAAAABTAAAAdQAAAG4AAABkAAAAYQAAAHkAAAAAAAAATQAAAG8AAABuAAAAZAAAAGEAAAB5AAAAAAAAAFQAAAB1AAAAZQAAAHMAAABkAAAAYQAAAHkAAAAAAAAAVwAAAGUAAABkAAAAbgAAAGUAAABzAAAAZAAAAGEAAAB5AAAAAAAAAFQAAABoAAAAdQAAAHIAAABzAAAAZAAAAGEAAAB5AAAAAAAAAEYAAAByAAAAaQAAAGQAAABhAAAAeQAAAAAAAABTAAAAYQAAAHQAAAB1AAAAcgAAAGQAAABhAAAAeQAAAAAAAABTAAAAdQAAAG4AAAAAAAAATQAAAG8AAABuAAAAAAAAAFQAAAB1AAAAZQAAAAAAAABXAAAAZQAAAGQAAAAAAAAAVAAAAGgAAAB1AAAAAAAAAEYAAAByAAAAaQAAAAAAAABTAAAAYQAAAHQAAAAAAAAASgAAAGEAAABuAAAAdQAAAGEAAAByAAAAeQAAAAAAAABGAAAAZQAAAGIAAAByAAAAdQAAAGEAAAByAAAAeQAAAAAAAABNAAAAYQAAAHIAAABjAAAAaAAAAAAAAABBAAAAcAAAAHIAAABpAAAAbAAAAAAAAABNAAAAYQAAAHkAAAAAAAAASgAAAHUAAABuAAAAZQAAAAAAAABKAAAAdQAAAGwAAAB5AAAAAAAAAEEAAAB1AAAAZwAAAHUAAABzAAAAdAAAAAAAAABTAAAAZQAAAHAAAAB0AAAAZQAAAG0AAABiAAAAZQAAAHIAAAAAAAAATwAAAGMAAAB0AAAAbwAAAGIAAABlAAAAcgAAAAAAAABOAAAAbwAAAHYAAABlAAAAbQAAAGIAAABlAAAAcgAAAAAAAABEAAAAZQAAAGMAAABlAAAAbQAAAGIAAABlAAAAcgAAAAAAAABKAAAAYQAAAG4AAAAAAAAARgAAAGUAAABiAAAAAAAAAE0AAABhAAAAcgAAAAAAAABBAAAAcAAAAHIAAAAAAAAASgAAAHUAAABuAAAAAAAAAEoAAAB1AAAAbAAAAAAAAABBAAAAdQAAAGcAAAAAAAAAUwAAAGUAAABwAAAAAAAAAE8AAABjAAAAdAAAAAAAAABOAAAAbwAAAHYAAAAAAAAARAAAAGUAAABjAAAAAAAAAEEAAABNAAAAAAAAAFAAAABNAEG07QkLuAagawIAzwIAANACAADRAgAA0gIAANMCAADUAgAA1QIAAAAAAACQbAIA3wIAAOACAADhAgAA4gIAAOMCAADkAgAA5QIAAAAAAAAMdwIAKAMAACkDAAAqAwAA0HcCABR3AgBOU3QzX18yMTRfX3NoYXJlZF9jb3VudEUAAAAAVHgCAEh3AgAAAAAAAQAAAAx3AgAAAAAATlN0M19fMjE5X19zaGFyZWRfd2Vha19jb3VudEUAAAD4dwIAdHcCANh5AgBOMTBfX2N4eGFiaXYxMTZfX3NoaW1fdHlwZV9pbmZvRQAAAAD4dwIApHcCAGh3AgBOMTBfX2N4eGFiaXYxMTdfX2NsYXNzX3R5cGVfaW5mb0UAAAAAAAAAmHcCACsDAAAsAwAALQMAAC4DAAAvAwAAMAMAADEDAAAyAwAAAAAAABh4AgArAwAAMwMAAC0DAAAuAwAALwMAADQDAAA1AwAANgMAAPh3AgAkeAIAmHcCAE4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRQAAAAAAAAAAdHgCACsDAAA3AwAALQMAAC4DAAAvAwAAOAMAADkDAAA6AwAA+HcCAIB4AgCYdwIATjEwX19jeHhhYml2MTIxX192bWlfY2xhc3NfdHlwZV9pbmZvRQAAAAAAAAD8eAIA0AEAADsDAAA8AwAAAAAAABh5AgDQAQAAPQMAAD4DAAAAAAAA5HgCANABAAA/AwAAQAMAANB3AgDseAIAU3Q5ZXhjZXB0aW9uAAAAAPh3AgAIeQIA5HgCAFN0OWJhZF9hbGxvYwAAAAD4dwIAJHkCAPx4AgBTdDIwYmFkX2FycmF5X25ld19sZW5ndGgAAAAAAAAAAGh5AgDPAQAAQQMAAEIDAAAAAAAAuHkCAMABAABDAwAARAMAAPh3AgB0eQIA5HgCAFN0MTFsb2dpY19lcnJvcgAAAAAAmHkCAM8BAABFAwAAQgMAAPh3AgCkeQIAaHkCAFN0MTJsZW5ndGhfZXJyb3IAAAAA+HcCAMR5AgDkeAIAU3QxM3J1bnRpbWVfZXJyb3IAAADQdwIA4HkCAFN0OXR5cGVfaW5mbwBB8PMJCw0BAAAAAQAAAP////8yAEGO9AkLOfA/AAAAAAAA8L8AAAAAAADwv/B5AgACAAAABAAAACR6AgACAAAACAAAADB6AgACAAAABAAAADx6AgBB3PQJCwEEAEHo9AkLAQgAQfT0CQsZBQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwBBmPUJCwEgAEGk9QkLARAAQbD1CQsN/////wAAAAAAAAAAEABByPUJCwEYAEHU9QkLAREAQeD1CQsN/////wAAAAAAAAAAEQBBgPYJCxUTAAAAFAAAABUAAAAWAAAAFwAAABgAQaj2CQsBHABBtPYJCwEZAEHA9gkLASQAQcz2CQtFGgAAAAkAAAALAAAACAAAAAoAAAB4egIACHsCAAgAAAD/////AAAAAAAAAAAfAAAAAAAAAF9BR19kYXRhZGljdAAAAAAVAEGg9wkL6gEtOTk5OTk5OTk5OTk5OTk5Ljk5AEMaAADNNwAAszcAAEpGAAA6RgAAwTcAADQaAABjGAAAj1EAAAAAAADOZQAA4zsAAH0QAADfGAAA0BgAAB8yAAAjBwAAxRgAADdlAABNGAAAIwcAAB8yAAAAAAAADx0AAHcfAAAZCwAA/DEAAO8dAAAWMgAABzIAAAdPAACuVgAAAAAAAL4xAAAAAAAAuhgAAAAAAACAZQAAzxsAAAAAAABLawAAoREAAAAAAABgZQAAAAAAAOgYAAAAAAAAm2UAAAAAAAAxPgAAAAAAAGw8AAARbwAAZzwAQZT5CQsGBAAAAFRGAEGk+QkLLkxJAAARbwAAZzwAAAAAAABESQAABQAAAFRGAAAAAAAApl4AAG8+AAARbwAAXT4AQdz5CQs+BgAAAFRGAADWVgAAAAAAAGNJAAARbwAAXT4AAAAAAABESQAABwAAAFRGAADWVgAApl4AAGI+AADubgAAXT4AQaT6CQs+CgAAAE5GAADWVgAAAAAAANteAADubgAAXT4AAAAAAACmXgAACwAAAE5GAADWVgAApl4AAOkQAADubgAAwxAAQez6CQsGCAAAAE5GAEH8+gkLKq1eAADubgAAwxAAAAAAAACmXgAACQAAAE5GAAAAAAAApl4AAH8fAAB/HwBBtPsJCwYMAAAAb1QAQcT7CQsK/FYAAH8fAADWVgBB2PsJCzoOAAAAb1QAANZWAAAAAAAAl0kAAH8fAADWVgAAAAAAAERJAAAPAAAAb1QAANZWAACmXgAA2kkAAH8fAEGc/AkLGkRJAAANAAAAb1QAAAAAAACmXgAA2GUAANhlAEHE/AkLBhAAAABURgBB1PwJCwotVwAA2GUAANZWAEHo/AkLThIAAABURgAA1lYAAAAAAACrSQAA2GUAANZWAAAAAAAAREkAABMAAABURgAA1lYAAKZeAAA3CgAA2GUAAAAAAACoWAAAAAAAABQAAABURgBBwP0JC3LbVgAA2GUAANZWAACoWAAAAAAAABYAAABURgAA1lYAAAAAAAB6SQAA2GUAANZWAACoWAAAREkAABcAAABURgAA1lYAAKZeAADBSQAA2GUAAAAAAACoWAAAREkAABUAAABURgAAAAAAAKZeAADqSQAA2GUAQbz+CQseREkAABEAAABURgAAAAAAAKZeAAAXVwAA/G4AANZWAEHk/gkLOhoAAABORgAA1lYAAAAAAAATXwAA/G4AANZWAAAAAAAApl4AABsAAABORgAA1lYAAKZeAABMXwAA/G4AQaj/CQsepl4AABkAAABORgAAAAAAAKZeAADzNwAA/G4AANI3AEHQ/wkLBhgAAABORgBB4P8JCwoJVwAAb04AANZWAEH0/wkLOh4AAABORgAA1lYAAAAAAAD/XgAAb04AANZWAAAAAAAApl4AAB8AAABORgAA1lYAAKZeAAA8XwAAb04AQbiACgsepl4AAB0AAABORgAAAAAAAKZeAADkNwAAb04AANI3AEHggAoLBhwAAABORgBB8IAKCwZ7OQAAezkAQYSBCgsGIAAAAE8GAEGUgQoLCvFWAABJGgAA1lYAQaiBCgs6AgAAAE5GAADWVgAAAAAAAO5eAABJGgAA1lYAAAAAAACmXgAAAwAAAE5GAADWVgAApl4AAC9fAABJGgBB7IEKCxqmXgAAAQAAAE5GAAAAAAAApl4AANg3AABJGgBBmIIKCwJORgBBpIIKCyrBXgAA324AAPA4AAAAAAAApl4AACEAAABORgAAAAAAAKZeAAARFwAAFRcAQdyCCgsGIgAAAE8GAEHsggoLWQgAAAAEAAAAAAAAADgAAAAKAAAAOQAAAAgAAAD/////AAAAAAAAAAAKAAAAAAAAAAgAAAD/////AAAAAAAAAAA6AAAAAAAAAAgAAAD/////AAAAAAAAAAA7AEHYgwoLAQQAQYCECgu3CDwAAABAAAAAQQAAAEIAAABDAAAARAAAAD4AAABAAAAAQQAAAEUAAAAAAAAARgAAADwAAABAAAAAQQAAAEIAAABDAAAARAAAAD0AAABHAAAASAAAAEkAAABKAAAASwAAAD8AAABMAAAAQQAAAE0AAAAAAAAATgAAADwAAABAAAAAQQAAAE8AAABDAAAARAAAAGIJAAAAggIAgIYCAAAAAADENAAAAIICALCGAgAAAAAAhU0AAACCAgDghgIAAAAAAEM7AAAAggIA4IYCAAAAAAB+UQAAAIICABCHAgAAAAAABhAAABiCAgAQhwIAAAAAAEFFAAAAggIAUIcCAAAAAABeUQAAAIICAICHAgAA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";return Q}var tA;function OA(Q){if(Q==tA&&E)return new Uint8Array(E);var m=h(Q);if(m)return m;throw"both async and sync fetching of the wasm failed"}function gA(Q){return Promise.resolve().then(()=>OA(Q))}function zA(Q,m,v){return gA(Q).then(p=>WebAssembly.instantiate(p,m)).then(v,p=>{B(`failed to asynchronously prepare wasm: ${p}`),JA(p)})}function xA(Q,m,v,p){return zA(m,v,p)}function Me(){return{a:fn}}function LA(){var Q=Me();function m(p,F){return Te=p.exports,w=Te.y,j(),lA(Te.z),BA(),Te}UA();function v(p){m(p.instance)}return tA??=KA(),xA(E,tA,Q,v).catch(o),{}}function cA(Q){return i.agerrMessages.push(Se(Q)),0}function Gt(Q){this.name="ExitStatus",this.message=`Program terminated with exit(${Q})`,this.status=Q}var ct=Q=>{Q.forEach(m=>m(i))};function oe(Q,m="i8"){switch(m.endsWith("*")&&(m="*"),m){case"i1":return R[Q];case"i8":return R[Q];case"i16":return G[Q>>1];case"i32":return J[Q>>2];case"i64":return O[Q>>3];case"float":return K[Q>>2];case"double":return V[Q>>3];case"*":return z[Q>>2];default:JA(`invalid type for getValue: ${m}`)}}var Dt=Q=>mi(Q),_e=()=>Ko(),Re=typeof TextDecoder<"u"?new TextDecoder:void 0,St=(Q,m=0,v=NaN)=>{for(var p=m+v,F=m;Q[F]&&!(F>=p);)++F;if(F-m>16&&Q.buffer&&Re)return Re.decode(Q.subarray(m,F));for(var U="";m>10,56320|ee&1023)}}return U},Se=(Q,m)=>Q?St(D,Q,m):"",Wt=(Q,m,v,p)=>{JA(`Assertion failed: ${Se(Q)}, at: `+[m?Se(m):"unknown filename",v,p?Se(p):"unknown function"])};class L{constructor(m){this.excPtr=m,this.ptr=m-24}set_type(m){z[this.ptr+4>>2]=m}get_type(){return z[this.ptr+4>>2]}set_destructor(m){z[this.ptr+8>>2]=m}get_destructor(){return z[this.ptr+8>>2]}set_caught(m){m=m?1:0,R[this.ptr+12]=m}get_caught(){return R[this.ptr+12]!=0}set_rethrown(m){m=m?1:0,R[this.ptr+13]=m}get_rethrown(){return R[this.ptr+13]!=0}init(m,v){this.set_adjusted_ptr(0),this.set_type(m),this.set_destructor(v)}set_adjusted_ptr(m){z[this.ptr+16>>2]=m}get_adjusted_ptr(){return z[this.ptr+16>>2]}}var T=0,P=(Q,m,v)=>{var p=new L(Q);throw p.init(m,v),T=Q,T},X={isAbs:Q=>Q.charAt(0)==="/",splitPath:Q=>{var m=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return m.exec(Q).slice(1)},normalizeArray:(Q,m)=>{for(var v=0,p=Q.length-1;p>=0;p--){var F=Q[p];F==="."?Q.splice(p,1):F===".."?(Q.splice(p,1),v++):v&&(Q.splice(p,1),v--)}if(m)for(;v;v--)Q.unshift("..");return Q},normalize:Q=>{var m=X.isAbs(Q),v=Q.substr(-1)==="/";return Q=X.normalizeArray(Q.split("/").filter(p=>!!p),!m).join("/"),!Q&&!m&&(Q="."),Q&&v&&(Q+="/"),(m?"/":"")+Q},dirname:Q=>{var m=X.splitPath(Q),v=m[0],p=m[1];return!v&&!p?".":(p&&(p=p.substr(0,p.length-1)),v+p)},basename:Q=>{if(Q==="/")return"/";Q=X.normalize(Q),Q=Q.replace(/\/$/,"");var m=Q.lastIndexOf("/");return m===-1?Q:Q.substr(m+1)},join:(...Q)=>X.normalize(Q.join("/")),join2:(Q,m)=>X.normalize(Q+"/"+m)},kA=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return Q=>crypto.getRandomValues(Q);JA("initRandomDevice")},le=Q=>(le=kA())(Q),Ee={resolve:(...Q)=>{for(var m="",v=!1,p=Q.length-1;p>=-1&&!v;p--){var F=p>=0?Q[p]:b.cwd();if(typeof F!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!F)return"";m=F+"/"+m,v=X.isAbs(F)}return m=X.normalizeArray(m.split("/").filter(U=>!!U),!v).join("/"),(v?"/":"")+m||"."},relative:(Q,m)=>{Q=Ee.resolve(Q).substr(1),m=Ee.resolve(m).substr(1);function v(ee){for(var ne=0;ne=0&&ee[Pe]==="";Pe--);return ne>Pe?[]:ee.slice(ne,Pe-ne+1)}for(var p=v(Q.split("/")),F=v(m.split("/")),U=Math.min(p.length,F.length),q=U,Z=0;Z{for(var m=0,v=0;v=55296&&p<=57343?(m+=4,++v):m+=3}return m},dt=(Q,m,v,p)=>{if(!(p>0))return 0;for(var F=v,U=v+p-1,q=0;q=55296&&Z<=57343){var RA=Q.charCodeAt(++q);Z=65536+((Z&1023)<<10)|RA&1023}if(Z<=127){if(v>=U)break;m[v++]=Z}else if(Z<=2047){if(v+1>=U)break;m[v++]=192|Z>>6,m[v++]=128|Z&63}else if(Z<=65535){if(v+2>=U)break;m[v++]=224|Z>>12,m[v++]=128|Z>>6&63,m[v++]=128|Z&63}else{if(v+3>=U)break;m[v++]=240|Z>>18,m[v++]=128|Z>>12&63,m[v++]=128|Z>>6&63,m[v++]=128|Z&63}}return m[v]=0,v-F};function $e(Q,m,v){var p=v>0?v:MA(Q)+1,F=new Array(p),U=dt(Q,F,0,F.length);return m&&(F.length=U),F}var XA=()=>{if(!FA.length){var Q=null;if(typeof window<"u"&&typeof window.prompt=="function"&&(Q=window.prompt("Input: "),Q!==null&&(Q+=` -`)),!Q)return null;FA=$e(Q,!0)}return FA.shift()},ot={ttys:[],init(){},shutdown(){},register(Q,m){ot.ttys[Q]={input:[],output:[],ops:m},b.registerDevice(Q,ot.stream_ops)},stream_ops:{open(Q){var m=ot.ttys[Q.node.rdev];if(!m)throw new b.ErrnoError(43);Q.tty=m,Q.seekable=!1},close(Q){Q.tty.ops.fsync(Q.tty)},fsync(Q){Q.tty.ops.fsync(Q.tty)},read(Q,m,v,p,F){if(!Q.tty||!Q.tty.ops.get_char)throw new b.ErrnoError(60);for(var U=0,q=0;q0&&(d(St(Q.output)),Q.output=[])},ioctl_tcgets(Q){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(Q,m,v){return 0},ioctl_tiocgwinsz(Q){return[24,80]}},default_tty1_ops:{put_char(Q,m){m===null||m===10?(B(St(Q.output)),Q.output=[]):m!=0&&Q.output.push(m)},fsync(Q){Q.output&&Q.output.length>0&&(B(St(Q.output)),Q.output=[])}}},Si=(Q,m)=>{D.fill(0,Q,Q+m)},Zi=(Q,m)=>Math.ceil(Q/m)*m,Oi=Q=>{Q=Zi(Q,65536);var m=Qi(65536,Q);return m&&Si(m,Q),m},Le={ops_table:null,mount(Q){return Le.createNode(null,"/",16895,0)},createNode(Q,m,v,p){if(b.isBlkdev(v)||b.isFIFO(v))throw new b.ErrnoError(63);Le.ops_table||={dir:{node:{getattr:Le.node_ops.getattr,setattr:Le.node_ops.setattr,lookup:Le.node_ops.lookup,mknod:Le.node_ops.mknod,rename:Le.node_ops.rename,unlink:Le.node_ops.unlink,rmdir:Le.node_ops.rmdir,readdir:Le.node_ops.readdir,symlink:Le.node_ops.symlink},stream:{llseek:Le.stream_ops.llseek}},file:{node:{getattr:Le.node_ops.getattr,setattr:Le.node_ops.setattr},stream:{llseek:Le.stream_ops.llseek,read:Le.stream_ops.read,write:Le.stream_ops.write,allocate:Le.stream_ops.allocate,mmap:Le.stream_ops.mmap,msync:Le.stream_ops.msync}},link:{node:{getattr:Le.node_ops.getattr,setattr:Le.node_ops.setattr,readlink:Le.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Le.node_ops.getattr,setattr:Le.node_ops.setattr},stream:b.chrdev_stream_ops}};var F=b.createNode(Q,m,v,p);return b.isDir(F.mode)?(F.node_ops=Le.ops_table.dir.node,F.stream_ops=Le.ops_table.dir.stream,F.contents={}):b.isFile(F.mode)?(F.node_ops=Le.ops_table.file.node,F.stream_ops=Le.ops_table.file.stream,F.usedBytes=0,F.contents=null):b.isLink(F.mode)?(F.node_ops=Le.ops_table.link.node,F.stream_ops=Le.ops_table.link.stream):b.isChrdev(F.mode)&&(F.node_ops=Le.ops_table.chrdev.node,F.stream_ops=Le.ops_table.chrdev.stream),F.timestamp=Date.now(),Q&&(Q.contents[m]=F,Q.timestamp=F.timestamp),F},getFileDataAsTypedArray(Q){return Q.contents?Q.contents.subarray?Q.contents.subarray(0,Q.usedBytes):new Uint8Array(Q.contents):new Uint8Array(0)},expandFileStorage(Q,m){var v=Q.contents?Q.contents.length:0;if(!(v>=m)){var p=1024*1024;m=Math.max(m,v*(v>>0),v!=0&&(m=Math.max(m,256));var F=Q.contents;Q.contents=new Uint8Array(m),Q.usedBytes>0&&Q.contents.set(F.subarray(0,Q.usedBytes),0)}},resizeFileStorage(Q,m){if(Q.usedBytes!=m)if(m==0)Q.contents=null,Q.usedBytes=0;else{var v=Q.contents;Q.contents=new Uint8Array(m),v&&Q.contents.set(v.subarray(0,Math.min(m,Q.usedBytes))),Q.usedBytes=m}},node_ops:{getattr(Q){var m={};return m.dev=b.isChrdev(Q.mode)?Q.id:1,m.ino=Q.id,m.mode=Q.mode,m.nlink=1,m.uid=0,m.gid=0,m.rdev=Q.rdev,b.isDir(Q.mode)?m.size=4096:b.isFile(Q.mode)?m.size=Q.usedBytes:b.isLink(Q.mode)?m.size=Q.link.length:m.size=0,m.atime=new Date(Q.timestamp),m.mtime=new Date(Q.timestamp),m.ctime=new Date(Q.timestamp),m.blksize=4096,m.blocks=Math.ceil(m.size/m.blksize),m},setattr(Q,m){m.mode!==void 0&&(Q.mode=m.mode),m.timestamp!==void 0&&(Q.timestamp=m.timestamp),m.size!==void 0&&Le.resizeFileStorage(Q,m.size)},lookup(Q,m){throw b.genericErrors[44]},mknod(Q,m,v,p){return Le.createNode(Q,m,v,p)},rename(Q,m,v){if(b.isDir(Q.mode)){var p;try{p=b.lookupNode(m,v)}catch{}if(p)for(var F in p.contents)throw new b.ErrnoError(55)}delete Q.parent.contents[Q.name],Q.parent.timestamp=Date.now(),Q.name=v,m.contents[v]=Q,m.timestamp=Q.parent.timestamp},unlink(Q,m){delete Q.contents[m],Q.timestamp=Date.now()},rmdir(Q,m){var v=b.lookupNode(Q,m);for(var p in v.contents)throw new b.ErrnoError(55);delete Q.contents[m],Q.timestamp=Date.now()},readdir(Q){var m=[".",".."];for(var v of Object.keys(Q.contents))m.push(v);return m},symlink(Q,m,v){var p=Le.createNode(Q,m,41471,0);return p.link=v,p},readlink(Q){if(!b.isLink(Q.mode))throw new b.ErrnoError(28);return Q.link}},stream_ops:{read(Q,m,v,p,F){var U=Q.node.contents;if(F>=Q.node.usedBytes)return 0;var q=Math.min(Q.node.usedBytes-F,p);if(q>8&&U.subarray)m.set(U.subarray(F,F+q),v);else for(var Z=0;Z0||v+m{var F=p?"":`al ${Q}`;I(Q).then(U=>{m(new Uint8Array(U)),F&&BA()},U=>{if(v)v();else throw`Loading data file "${Q}" failed.`}),F&&UA()},fi=(Q,m,v,p,F,U)=>{b.createDataFile(Q,m,v,p,F,U)},Ht=[],Rt=(Q,m,v,p)=>{typeof Browser<"u"&&Browser.init();var F=!1;return Ht.forEach(U=>{F||U.canHandle(m)&&(U.handle(Q,m,v,p),F=!0)}),F},Bi=(Q,m,v,p,F,U,q,Z,RA,ee)=>{var ne=m?Ee.resolve(X.join2(Q,m)):Q;function Pe(Oe){function ve(Ne){ee?.(),Z||fi(Q,m,Ne,p,F,RA),U?.(),BA()}Rt(Oe,ne,ve,()=>{q?.(),BA()})||ve(Oe)}UA(),typeof v=="string"?zi(v,Pe,q):Pe(v)},Mi=Q=>{var m={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},v=m[Q];if(typeof v>"u")throw new Error(`Unknown file open mode: ${Q}`);return v},Jt=(Q,m)=>{var v=0;return Q&&(v|=365),m&&(v|=146),v},b={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class{constructor(Q){this.name="ErrnoError",this.errno=Q}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(Q){this.node=Q}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(Q){this.shared.flags=Q}get position(){return this.shared.position}set position(Q){this.shared.position=Q}},FSNode:class{constructor(Q,m,v,p){Q||(Q=this),this.parent=Q,this.mount=Q.mount,this.mounted=null,this.id=b.nextInode++,this.name=m,this.mode=v,this.node_ops={},this.stream_ops={},this.rdev=p,this.readMode=365,this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(Q){Q?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(Q){Q?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return b.isDir(this.mode)}get isDevice(){return b.isChrdev(this.mode)}},lookupPath(Q,m={}){if(Q=Ee.resolve(Q),!Q)return{path:"",node:null};var v={follow_mount:!0,recurse_count:0};if(m=Object.assign(v,m),m.recurse_count>8)throw new b.ErrnoError(32);for(var p=Q.split("/").filter(Pe=>!!Pe),F=b.root,U="/",q=0;q40)throw new b.ErrnoError(32)}}return{path:U,node:F}},getPath(Q){for(var m;;){if(b.isRoot(Q)){var v=Q.mount.mountpoint;return m?v[v.length-1]!=="/"?`${v}/${m}`:v+m:v}m=m?`${Q.name}/${m}`:Q.name,Q=Q.parent}},hashName(Q,m){for(var v=0,p=0;p>>0)%b.nameTable.length},hashAddNode(Q){var m=b.hashName(Q.parent.id,Q.name);Q.name_next=b.nameTable[m],b.nameTable[m]=Q},hashRemoveNode(Q){var m=b.hashName(Q.parent.id,Q.name);if(b.nameTable[m]===Q)b.nameTable[m]=Q.name_next;else for(var v=b.nameTable[m];v;){if(v.name_next===Q){v.name_next=Q.name_next;break}v=v.name_next}},lookupNode(Q,m){var v=b.mayLookup(Q);if(v)throw new b.ErrnoError(v);for(var p=b.hashName(Q.id,m),F=b.nameTable[p];F;F=F.name_next){var U=F.name;if(F.parent.id===Q.id&&U===m)return F}return b.lookup(Q,m)},createNode(Q,m,v,p){var F=new b.FSNode(Q,m,v,p);return b.hashAddNode(F),F},destroyNode(Q){b.hashRemoveNode(Q)},isRoot(Q){return Q===Q.parent},isMountpoint(Q){return!!Q.mounted},isFile(Q){return(Q&61440)===32768},isDir(Q){return(Q&61440)===16384},isLink(Q){return(Q&61440)===40960},isChrdev(Q){return(Q&61440)===8192},isBlkdev(Q){return(Q&61440)===24576},isFIFO(Q){return(Q&61440)===4096},isSocket(Q){return(Q&49152)===49152},flagsToPermissionString(Q){var m=["r","w","rw"][Q&3];return Q&512&&(m+="w"),m},nodePermissions(Q,m){return b.ignorePermissions?0:m.includes("r")&&!(Q.mode&292)||m.includes("w")&&!(Q.mode&146)||m.includes("x")&&!(Q.mode&73)?2:0},mayLookup(Q){if(!b.isDir(Q.mode))return 54;var m=b.nodePermissions(Q,"x");return m||(Q.node_ops.lookup?0:2)},mayCreate(Q,m){try{var v=b.lookupNode(Q,m);return 20}catch{}return b.nodePermissions(Q,"wx")},mayDelete(Q,m,v){var p;try{p=b.lookupNode(Q,m)}catch(U){return U.errno}var F=b.nodePermissions(Q,"wx");if(F)return F;if(v){if(!b.isDir(p.mode))return 54;if(b.isRoot(p)||b.getPath(p)===b.cwd())return 10}else if(b.isDir(p.mode))return 31;return 0},mayOpen(Q,m){return Q?b.isLink(Q.mode)?32:b.isDir(Q.mode)&&(b.flagsToPermissionString(m)!=="r"||m&512)?31:b.nodePermissions(Q,b.flagsToPermissionString(m)):44},MAX_OPEN_FDS:4096,nextfd(){for(var Q=0;Q<=b.MAX_OPEN_FDS;Q++)if(!b.streams[Q])return Q;throw new b.ErrnoError(33)},getStreamChecked(Q){var m=b.getStream(Q);if(!m)throw new b.ErrnoError(8);return m},getStream:Q=>b.streams[Q],createStream(Q,m=-1){return Q=Object.assign(new b.FSStream,Q),m==-1&&(m=b.nextfd()),Q.fd=m,b.streams[m]=Q,Q},closeStream(Q){b.streams[Q]=null},dupStream(Q,m=-1){var v=b.createStream(Q,m);return v.stream_ops?.dup?.(v),v},chrdev_stream_ops:{open(Q){var m=b.getDevice(Q.node.rdev);Q.stream_ops=m.stream_ops,Q.stream_ops.open?.(Q)},llseek(){throw new b.ErrnoError(70)}},major:Q=>Q>>8,minor:Q=>Q&255,makedev:(Q,m)=>Q<<8|m,registerDevice(Q,m){b.devices[Q]={stream_ops:m}},getDevice:Q=>b.devices[Q],getMounts(Q){for(var m=[],v=[Q];v.length;){var p=v.pop();m.push(p),v.push(...p.mounts)}return m},syncfs(Q,m){typeof Q=="function"&&(m=Q,Q=!1),b.syncFSRequests++,b.syncFSRequests>1&&B(`warning: ${b.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var v=b.getMounts(b.root.mount),p=0;function F(q){return b.syncFSRequests--,m(q)}function U(q){if(q)return U.errored?void 0:(U.errored=!0,F(q));++p>=v.length&&F(null)}v.forEach(q=>{if(!q.type.syncfs)return U(null);q.type.syncfs(q,Q,U)})},mount(Q,m,v){var p=v==="/",F=!v,U;if(p&&b.root)throw new b.ErrnoError(10);if(!p&&!F){var q=b.lookupPath(v,{follow_mount:!1});if(v=q.path,U=q.node,b.isMountpoint(U))throw new b.ErrnoError(10);if(!b.isDir(U.mode))throw new b.ErrnoError(54)}var Z={type:Q,opts:m,mountpoint:v,mounts:[]},RA=Q.mount(Z);return RA.mount=Z,Z.root=RA,p?b.root=RA:U&&(U.mounted=Z,U.mount&&U.mount.mounts.push(Z)),RA},unmount(Q){var m=b.lookupPath(Q,{follow_mount:!1});if(!b.isMountpoint(m.node))throw new b.ErrnoError(28);var v=m.node,p=v.mounted,F=b.getMounts(p);Object.keys(b.nameTable).forEach(q=>{for(var Z=b.nameTable[q];Z;){var RA=Z.name_next;F.includes(Z.mount)&&b.destroyNode(Z),Z=RA}}),v.mounted=null;var U=v.mount.mounts.indexOf(p);v.mount.mounts.splice(U,1)},lookup(Q,m){return Q.node_ops.lookup(Q,m)},mknod(Q,m,v){var p=b.lookupPath(Q,{parent:!0}),F=p.node,U=X.basename(Q);if(!U||U==="."||U==="..")throw new b.ErrnoError(28);var q=b.mayCreate(F,U);if(q)throw new b.ErrnoError(q);if(!F.node_ops.mknod)throw new b.ErrnoError(63);return F.node_ops.mknod(F,U,m,v)},create(Q,m){return m=m!==void 0?m:438,m&=4095,m|=32768,b.mknod(Q,m,0)},mkdir(Q,m){return m=m!==void 0?m:511,m&=1023,m|=16384,b.mknod(Q,m,0)},mkdirTree(Q,m){for(var v=Q.split("/"),p="",F=0;F"u"&&(v=m,m=438),m|=8192,b.mknod(Q,m,v)},symlink(Q,m){if(!Ee.resolve(Q))throw new b.ErrnoError(44);var v=b.lookupPath(m,{parent:!0}),p=v.node;if(!p)throw new b.ErrnoError(44);var F=X.basename(m),U=b.mayCreate(p,F);if(U)throw new b.ErrnoError(U);if(!p.node_ops.symlink)throw new b.ErrnoError(63);return p.node_ops.symlink(p,F,Q)},rename(Q,m){var v=X.dirname(Q),p=X.dirname(m),F=X.basename(Q),U=X.basename(m),q,Z,RA;if(q=b.lookupPath(Q,{parent:!0}),Z=q.node,q=b.lookupPath(m,{parent:!0}),RA=q.node,!Z||!RA)throw new b.ErrnoError(44);if(Z.mount!==RA.mount)throw new b.ErrnoError(75);var ee=b.lookupNode(Z,F),ne=Ee.relative(Q,p);if(ne.charAt(0)!==".")throw new b.ErrnoError(28);if(ne=Ee.relative(m,v),ne.charAt(0)!==".")throw new b.ErrnoError(55);var Pe;try{Pe=b.lookupNode(RA,U)}catch{}if(ee!==Pe){var Oe=b.isDir(ee.mode),ve=b.mayDelete(Z,F,Oe);if(ve)throw new b.ErrnoError(ve);if(ve=Pe?b.mayDelete(RA,U,Oe):b.mayCreate(RA,U),ve)throw new b.ErrnoError(ve);if(!Z.node_ops.rename)throw new b.ErrnoError(63);if(b.isMountpoint(ee)||Pe&&b.isMountpoint(Pe))throw new b.ErrnoError(10);if(RA!==Z&&(ve=b.nodePermissions(Z,"w"),ve))throw new b.ErrnoError(ve);b.hashRemoveNode(ee);try{Z.node_ops.rename(ee,RA,U),ee.parent=RA}catch(Ne){throw Ne}finally{b.hashAddNode(ee)}}},rmdir(Q){var m=b.lookupPath(Q,{parent:!0}),v=m.node,p=X.basename(Q),F=b.lookupNode(v,p),U=b.mayDelete(v,p,!0);if(U)throw new b.ErrnoError(U);if(!v.node_ops.rmdir)throw new b.ErrnoError(63);if(b.isMountpoint(F))throw new b.ErrnoError(10);v.node_ops.rmdir(v,p),b.destroyNode(F)},readdir(Q){var m=b.lookupPath(Q,{follow:!0}),v=m.node;if(!v.node_ops.readdir)throw new b.ErrnoError(54);return v.node_ops.readdir(v)},unlink(Q){var m=b.lookupPath(Q,{parent:!0}),v=m.node;if(!v)throw new b.ErrnoError(44);var p=X.basename(Q),F=b.lookupNode(v,p),U=b.mayDelete(v,p,!1);if(U)throw new b.ErrnoError(U);if(!v.node_ops.unlink)throw new b.ErrnoError(63);if(b.isMountpoint(F))throw new b.ErrnoError(10);v.node_ops.unlink(v,p),b.destroyNode(F)},readlink(Q){var m=b.lookupPath(Q),v=m.node;if(!v)throw new b.ErrnoError(44);if(!v.node_ops.readlink)throw new b.ErrnoError(28);return Ee.resolve(b.getPath(v.parent),v.node_ops.readlink(v))},stat(Q,m){var v=b.lookupPath(Q,{follow:!m}),p=v.node;if(!p)throw new b.ErrnoError(44);if(!p.node_ops.getattr)throw new b.ErrnoError(63);return p.node_ops.getattr(p)},lstat(Q){return b.stat(Q,!0)},chmod(Q,m,v){var p;if(typeof Q=="string"){var F=b.lookupPath(Q,{follow:!v});p=F.node}else p=Q;if(!p.node_ops.setattr)throw new b.ErrnoError(63);p.node_ops.setattr(p,{mode:m&4095|p.mode&-4096,timestamp:Date.now()})},lchmod(Q,m){b.chmod(Q,m,!0)},fchmod(Q,m){var v=b.getStreamChecked(Q);b.chmod(v.node,m)},chown(Q,m,v,p){var F;if(typeof Q=="string"){var U=b.lookupPath(Q,{follow:!p});F=U.node}else F=Q;if(!F.node_ops.setattr)throw new b.ErrnoError(63);F.node_ops.setattr(F,{timestamp:Date.now()})},lchown(Q,m,v){b.chown(Q,m,v,!0)},fchown(Q,m,v){var p=b.getStreamChecked(Q);b.chown(p.node,m,v)},truncate(Q,m){if(m<0)throw new b.ErrnoError(28);var v;if(typeof Q=="string"){var p=b.lookupPath(Q,{follow:!0});v=p.node}else v=Q;if(!v.node_ops.setattr)throw new b.ErrnoError(63);if(b.isDir(v.mode))throw new b.ErrnoError(31);if(!b.isFile(v.mode))throw new b.ErrnoError(28);var F=b.nodePermissions(v,"w");if(F)throw new b.ErrnoError(F);v.node_ops.setattr(v,{size:m,timestamp:Date.now()})},ftruncate(Q,m){var v=b.getStreamChecked(Q);if((v.flags&2097155)===0)throw new b.ErrnoError(28);b.truncate(v.node,m)},utime(Q,m,v){var p=b.lookupPath(Q,{follow:!0}),F=p.node;F.node_ops.setattr(F,{timestamp:Math.max(m,v)})},open(Q,m,v){if(Q==="")throw new b.ErrnoError(44);m=typeof m=="string"?Mi(m):m,m&64?(v=typeof v>"u"?438:v,v=v&4095|32768):v=0;var p;if(typeof Q=="object")p=Q;else{Q=X.normalize(Q);try{var F=b.lookupPath(Q,{follow:!(m&131072)});p=F.node}catch{}}var U=!1;if(m&64)if(p){if(m&128)throw new b.ErrnoError(20)}else p=b.mknod(Q,v,0),U=!0;if(!p)throw new b.ErrnoError(44);if(b.isChrdev(p.mode)&&(m&=-513),m&65536&&!b.isDir(p.mode))throw new b.ErrnoError(54);if(!U){var q=b.mayOpen(p,m);if(q)throw new b.ErrnoError(q)}m&512&&!U&&b.truncate(p,0),m&=-131713;var Z=b.createStream({node:p,path:b.getPath(p),flags:m,seekable:!0,position:0,stream_ops:p.stream_ops,ungotten:[],error:!1});return Z.stream_ops.open&&Z.stream_ops.open(Z),Z},close(Q){if(b.isClosed(Q))throw new b.ErrnoError(8);Q.getdents&&(Q.getdents=null);try{Q.stream_ops.close&&Q.stream_ops.close(Q)}catch(m){throw m}finally{b.closeStream(Q.fd)}Q.fd=null},isClosed(Q){return Q.fd===null},llseek(Q,m,v){if(b.isClosed(Q))throw new b.ErrnoError(8);if(!Q.seekable||!Q.stream_ops.llseek)throw new b.ErrnoError(70);if(v!=0&&v!=1&&v!=2)throw new b.ErrnoError(28);return Q.position=Q.stream_ops.llseek(Q,m,v),Q.ungotten=[],Q.position},read(Q,m,v,p,F){if(p<0||F<0)throw new b.ErrnoError(28);if(b.isClosed(Q))throw new b.ErrnoError(8);if((Q.flags&2097155)===1)throw new b.ErrnoError(8);if(b.isDir(Q.node.mode))throw new b.ErrnoError(31);if(!Q.stream_ops.read)throw new b.ErrnoError(28);var U=typeof F<"u";if(!U)F=Q.position;else if(!Q.seekable)throw new b.ErrnoError(70);var q=Q.stream_ops.read(Q,m,v,p,F);return U||(Q.position+=q),q},write(Q,m,v,p,F,U){if(p<0||F<0)throw new b.ErrnoError(28);if(b.isClosed(Q))throw new b.ErrnoError(8);if((Q.flags&2097155)===0)throw new b.ErrnoError(8);if(b.isDir(Q.node.mode))throw new b.ErrnoError(31);if(!Q.stream_ops.write)throw new b.ErrnoError(28);Q.seekable&&Q.flags&1024&&b.llseek(Q,0,2);var q=typeof F<"u";if(!q)F=Q.position;else if(!Q.seekable)throw new b.ErrnoError(70);var Z=Q.stream_ops.write(Q,m,v,p,F,U);return q||(Q.position+=Z),Z},allocate(Q,m,v){if(b.isClosed(Q))throw new b.ErrnoError(8);if(m<0||v<=0)throw new b.ErrnoError(28);if((Q.flags&2097155)===0)throw new b.ErrnoError(8);if(!b.isFile(Q.node.mode)&&!b.isDir(Q.node.mode))throw new b.ErrnoError(43);if(!Q.stream_ops.allocate)throw new b.ErrnoError(138);Q.stream_ops.allocate(Q,m,v)},mmap(Q,m,v,p,F){if((p&2)!==0&&(F&2)===0&&(Q.flags&2097155)!==2)throw new b.ErrnoError(2);if((Q.flags&2097155)===1)throw new b.ErrnoError(2);if(!Q.stream_ops.mmap)throw new b.ErrnoError(43);if(!m)throw new b.ErrnoError(28);return Q.stream_ops.mmap(Q,m,v,p,F)},msync(Q,m,v,p,F){return Q.stream_ops.msync?Q.stream_ops.msync(Q,m,v,p,F):0},ioctl(Q,m,v){if(!Q.stream_ops.ioctl)throw new b.ErrnoError(59);return Q.stream_ops.ioctl(Q,m,v)},readFile(Q,m={}){if(m.flags=m.flags||0,m.encoding=m.encoding||"binary",m.encoding!=="utf8"&&m.encoding!=="binary")throw new Error(`Invalid encoding type "${m.encoding}"`);var v,p=b.open(Q,m.flags),F=b.stat(Q),U=F.size,q=new Uint8Array(U);return b.read(p,q,0,U,0),m.encoding==="utf8"?v=St(q):m.encoding==="binary"&&(v=q),b.close(p),v},writeFile(Q,m,v={}){v.flags=v.flags||577;var p=b.open(Q,v.flags,v.mode);if(typeof m=="string"){var F=new Uint8Array(MA(m)+1),U=dt(m,F,0,F.length);b.write(p,F,0,U,void 0,v.canOwn)}else if(ArrayBuffer.isView(m))b.write(p,m,0,m.byteLength,void 0,v.canOwn);else throw new Error("Unsupported data type");b.close(p)},cwd:()=>b.currentPath,chdir(Q){var m=b.lookupPath(Q,{follow:!0});if(m.node===null)throw new b.ErrnoError(44);if(!b.isDir(m.node.mode))throw new b.ErrnoError(54);var v=b.nodePermissions(m.node,"x");if(v)throw new b.ErrnoError(v);b.currentPath=m.path},createDefaultDirectories(){b.mkdir("/tmp"),b.mkdir("/home"),b.mkdir("/home/web_user")},createDefaultDevices(){b.mkdir("/dev"),b.registerDevice(b.makedev(1,3),{read:()=>0,write:(p,F,U,q,Z)=>q}),b.mkdev("/dev/null",b.makedev(1,3)),ot.register(b.makedev(5,0),ot.default_tty_ops),ot.register(b.makedev(6,0),ot.default_tty1_ops),b.mkdev("/dev/tty",b.makedev(5,0)),b.mkdev("/dev/tty1",b.makedev(6,0));var Q=new Uint8Array(1024),m=0,v=()=>(m===0&&(m=le(Q).byteLength),Q[--m]);b.createDevice("/dev","random",v),b.createDevice("/dev","urandom",v),b.mkdir("/dev/shm"),b.mkdir("/dev/shm/tmp")},createSpecialDirectories(){b.mkdir("/proc");var Q=b.mkdir("/proc/self");b.mkdir("/proc/self/fd"),b.mount({mount(){var m=b.createNode(Q,"fd",16895,73);return m.node_ops={lookup(v,p){var F=+p,U=b.getStreamChecked(F),q={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>U.path}};return q.parent=q,q}},m}},{},"/proc/self/fd")},createStandardStreams(Q,m,v){Q?b.createDevice("/dev","stdin",Q):b.symlink("/dev/tty","/dev/stdin"),m?b.createDevice("/dev","stdout",null,m):b.symlink("/dev/tty","/dev/stdout"),v?b.createDevice("/dev","stderr",null,v):b.symlink("/dev/tty1","/dev/stderr"),b.open("/dev/stdin",0),b.open("/dev/stdout",1),b.open("/dev/stderr",1)},staticInit(){[44].forEach(Q=>{b.genericErrors[Q]=new b.ErrnoError(Q),b.genericErrors[Q].stack=""}),b.nameTable=new Array(4096),b.mount(Le,{},"/"),b.createDefaultDirectories(),b.createDefaultDevices(),b.createSpecialDirectories(),b.filesystems={MEMFS:Le}},init(Q,m,v){b.initialized=!0,b.createStandardStreams(Q,m,v)},quit(){b.initialized=!1;for(var Q=0;Qthis.length-1||ve<0)){var Ne=ve%this.chunkSize,Yi=ve/this.chunkSize|0;return this.getter(Yi)[Ne]}}setDataGetter(ve){this.getter=ve}cacheLength(){var ve=new XMLHttpRequest;if(ve.open("HEAD",v,!1),ve.send(null),!(ve.status>=200&&ve.status<300||ve.status===304))throw new Error("Couldn't load "+v+". Status: "+ve.status);var Ne=Number(ve.getResponseHeader("Content-length")),Yi,H=(Yi=ve.getResponseHeader("Accept-Ranges"))&&Yi==="bytes",rA=(Yi=ve.getResponseHeader("Content-Encoding"))&&Yi==="gzip",HA=1024*1024;H||(HA=Ne);var De=(Ie,Bt)=>{if(Ie>Bt)throw new Error("invalid range ("+Ie+", "+Bt+") or no bytes requested!");if(Bt>Ne-1)throw new Error("only "+Ne+" bytes available! programmer error!");var At=new XMLHttpRequest;if(At.open("GET",v,!1),Ne!==HA&&At.setRequestHeader("Range","bytes="+Ie+"-"+Bt),At.responseType="arraybuffer",At.overrideMimeType&&At.overrideMimeType("text/plain; charset=x-user-defined"),At.send(null),!(At.status>=200&&At.status<300||At.status===304))throw new Error("Couldn't load "+v+". Status: "+At.status);return At.response!==void 0?new Uint8Array(At.response||[]):$e(At.responseText||"",!0)},fe=this;fe.setDataGetter(Ie=>{var Bt=Ie*HA,At=(Ie+1)*HA-1;if(At=Math.min(At,Ne-1),typeof fe.chunks[Ie]>"u"&&(fe.chunks[Ie]=De(Bt,At)),typeof fe.chunks[Ie]>"u")throw new Error("doXHR failed!");return fe.chunks[Ie]}),(rA||!Ne)&&(HA=Ne=1,Ne=this.getter(0).length,HA=Ne,d("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=Ne,this._chunkSize=HA,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var q,Z}else var Z={isDevice:!1,url:v};var RA=b.createFile(Q,m,Z,p,F);Z.contents?RA.contents=Z.contents:Z.url&&(RA.contents=null,RA.url=Z.url),Object.defineProperties(RA,{usedBytes:{get:function(){return this.contents.length}}});var ee={},ne=Object.keys(RA.stream_ops);ne.forEach(Oe=>{var ve=RA.stream_ops[Oe];ee[Oe]=(...Ne)=>(b.forceLoadFile(RA),ve(...Ne))});function Pe(Oe,ve,Ne,Yi,H){var rA=Oe.node.contents;if(H>=rA.length)return 0;var HA=Math.min(rA.length-H,Yi);if(rA.slice)for(var De=0;De(b.forceLoadFile(RA),Pe(Oe,ve,Ne,Yi,H)),ee.mmap=(Oe,ve,Ne,Yi,H)=>{b.forceLoadFile(RA);var rA=Oi(ve);if(!rA)throw new b.ErrnoError(48);return Pe(Oe,R,rA,ve,Ne),{ptr:rA,allocated:!0}},RA.stream_ops=ee,RA}},et={DEFAULT_POLLMASK:5,calculateAt(Q,m,v){if(X.isAbs(m))return m;var p;if(Q===-100)p=b.cwd();else{var F=et.getStreamFromFD(Q);p=F.path}if(m.length==0){if(!v)throw new b.ErrnoError(44);return p}return X.join2(p,m)},doStat(Q,m,v){var p=Q(m);J[v>>2]=p.dev,J[v+4>>2]=p.mode,z[v+8>>2]=p.nlink,J[v+12>>2]=p.uid,J[v+16>>2]=p.gid,J[v+20>>2]=p.rdev,O[v+24>>3]=BigInt(p.size),J[v+32>>2]=4096,J[v+36>>2]=p.blocks;var F=p.atime.getTime(),U=p.mtime.getTime(),q=p.ctime.getTime();return O[v+40>>3]=BigInt(Math.floor(F/1e3)),z[v+48>>2]=F%1e3*1e3*1e3,O[v+56>>3]=BigInt(Math.floor(U/1e3)),z[v+64>>2]=U%1e3*1e3*1e3,O[v+72>>3]=BigInt(Math.floor(q/1e3)),z[v+80>>2]=q%1e3*1e3*1e3,O[v+88>>3]=BigInt(p.ino),0},doMsync(Q,m,v,p,F){if(!b.isFile(m.node.mode))throw new b.ErrnoError(43);if(p&2)return 0;var U=D.slice(Q,Q+v);b.msync(m,U,F,v,p)},getStreamFromFD(Q){var m=b.getStreamChecked(Q);return m},varargs:void 0,getStr(Q){var m=Se(Q);return m}};function ai(Q,m,v,p){try{if(m=et.getStr(m),m=et.calculateAt(Q,m),v&-8)return-28;var F=b.lookupPath(m,{follow:!0}),U=F.node;if(!U)return-44;var q="";return v&4&&(q+="r"),v&2&&(q+="w"),v&1&&(q+="x"),q&&b.nodePermissions(U,q)?-2:0}catch(Z){if(typeof b>"u"||Z.name!=="ErrnoError")throw Z;return-Z.errno}}function Wi(){var Q=J[+et.varargs>>2];return et.varargs+=4,Q}var Xi=Wi;function xn(Q,m,v){et.varargs=v;try{var p=et.getStreamFromFD(Q);switch(m){case 0:{var F=Wi();if(F<0)return-28;for(;b.streams[F];)F++;var U;return U=b.dupStream(p,F),U.fd}case 1:case 2:return 0;case 3:return p.flags;case 4:{var F=Wi();return p.flags|=F,0}case 12:{var F=Xi(),q=0;return G[F+q>>1]=2,0}case 13:case 14:return 0}return-28}catch(Z){if(typeof b>"u"||Z.name!=="ErrnoError")throw Z;return-Z.errno}}function Mo(Q,m){try{var v=et.getStreamFromFD(Q);return et.doStat(b.stat,v.path,m)}catch(p){if(typeof b>"u"||p.name!=="ErrnoError")throw p;return-p.errno}}function vn(Q,m,v){et.varargs=v;try{var p=et.getStreamFromFD(Q);switch(m){case 21509:return p.tty?0:-59;case 21505:{if(!p.tty)return-59;if(p.tty.ops.ioctl_tcgets){var F=p.tty.ops.ioctl_tcgets(p),U=Xi();J[U>>2]=F.c_iflag||0,J[U+4>>2]=F.c_oflag||0,J[U+8>>2]=F.c_cflag||0,J[U+12>>2]=F.c_lflag||0;for(var q=0;q<32;q++)R[U+q+17]=F.c_cc[q]||0;return 0}return 0}case 21510:case 21511:case 21512:return p.tty?0:-59;case 21506:case 21507:case 21508:{if(!p.tty)return-59;if(p.tty.ops.ioctl_tcsets){for(var U=Xi(),Z=J[U>>2],RA=J[U+4>>2],ee=J[U+8>>2],ne=J[U+12>>2],Pe=[],q=0;q<32;q++)Pe.push(R[U+q+17]);return p.tty.ops.ioctl_tcsets(p.tty,m,{c_iflag:Z,c_oflag:RA,c_cflag:ee,c_lflag:ne,c_cc:Pe})}return 0}case 21519:{if(!p.tty)return-59;var U=Xi();return J[U>>2]=0,0}case 21520:return p.tty?-28:-59;case 21531:{var U=Xi();return b.ioctl(p,m,U)}case 21523:{if(!p.tty)return-59;if(p.tty.ops.ioctl_tiocgwinsz){var Oe=p.tty.ops.ioctl_tiocgwinsz(p.tty),U=Xi();G[U>>1]=Oe[0],G[U+2>>1]=Oe[1]}return 0}case 21524:return p.tty?0:-59;case 21515:return p.tty?0:-59;default:return-28}}catch(ve){if(typeof b>"u"||ve.name!=="ErrnoError")throw ve;return-ve.errno}}function In(Q,m,v,p){try{m=et.getStr(m);var F=p&256,U=p&4096;return p=p&-6401,m=et.calculateAt(Q,m,U),et.doStat(F?b.lstat:b.stat,m,v)}catch(q){if(typeof b>"u"||q.name!=="ErrnoError")throw q;return-q.errno}}function qo(Q,m,v,p){et.varargs=p;try{m=et.getStr(m),m=et.calculateAt(Q,m);var F=p?Wi():0;return b.open(m,v,F).fd}catch(U){if(typeof b>"u"||U.name!=="ErrnoError")throw U;return-U.errno}}function Vo(Q,m){try{return Q=et.getStr(Q),et.doStat(b.stat,Q,m)}catch(v){if(typeof b>"u"||v.name!=="ErrnoError")throw v;return-v.errno}}var uo=()=>{JA("")},Qn=Q=>Q%4===0&&(Q%100!==0||Q%400===0),Kn=[0,31,60,91,121,152,182,213,244,274,305,335],$A=[0,31,59,90,120,151,181,212,243,273,304,334],Ei=Q=>{var m=Qn(Q.getFullYear()),v=m?Kn:$A,p=v[Q.getMonth()]+Q.getDate()-1;return p},Ri=9007199254740992,un=-9007199254740992,Un=Q=>QRi?NaN:Number(Q);function Zo(Q,m){Q=Un(Q);var v=new Date(Q*1e3);J[m>>2]=v.getSeconds(),J[m+4>>2]=v.getMinutes(),J[m+8>>2]=v.getHours(),J[m+12>>2]=v.getDate(),J[m+16>>2]=v.getMonth(),J[m+20>>2]=v.getFullYear()-1900,J[m+24>>2]=v.getDay();var p=Ei(v)|0;J[m+28>>2]=p,J[m+36>>2]=-(v.getTimezoneOffset()*60);var F=new Date(v.getFullYear(),0,1),U=new Date(v.getFullYear(),6,1).getTimezoneOffset(),q=F.getTimezoneOffset(),Z=(U!=q&&v.getTimezoneOffset()==Math.min(q,U))|0;J[m+32>>2]=Z}function Ci(Q,m,v,p,F,U,q){F=Un(F);try{if(isNaN(F))return 61;var Z=et.getStreamFromFD(p),RA=b.mmap(Z,Q,F,m,v),ee=RA.ptr;return J[U>>2]=RA.allocated,z[q>>2]=ee,0}catch(ne){if(typeof b>"u"||ne.name!=="ErrnoError")throw ne;return-ne.errno}}function io(Q,m,v,p,F,U){U=Un(U);try{var q=et.getStreamFromFD(F);v&2&&et.doMsync(Q,q,m,p,U)}catch(Z){if(typeof b>"u"||Z.name!=="ErrnoError")throw Z;return-Z.errno}}var Wo=(Q,m,v)=>dt(Q,D,m,v),Xo=(Q,m,v,p)=>{var F=new Date().getFullYear(),U=new Date(F,0,1),q=new Date(F,6,1),Z=U.getTimezoneOffset(),RA=q.getTimezoneOffset(),ee=Math.max(Z,RA);z[Q>>2]=ee*60,J[m>>2]=+(Z!=RA);var ne=ve=>{var Ne=ve>=0?"-":"+",Yi=Math.abs(ve),H=String(Math.floor(Yi/60)).padStart(2,"0"),rA=String(Yi%60).padStart(2,"0");return`UTC${Ne}${H}${rA}`},Pe=ne(Z),Oe=ne(RA);RADate.now(),on=()=>2147483648,$i=Q=>{var m=w.buffer,v=(Q-m.byteLength+65535)/65536|0;try{return w.grow(v),j(),1}catch{}},yt=Q=>{var m=D.length;Q>>>=0;var v=on();if(Q>v)return!1;for(var p=1;p<=4;p*=2){var F=m*(1+.2/p);F=Math.min(F,Q+100663296);var U=Math.min(v,Zi(Math.max(Q,F),65536)),q=$i(U);if(q)return!0}return!1},hn={},hA=()=>a,Ae=()=>{if(!Ae.strings){var Q=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",m={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:Q,_:hA()};for(var v in hn)hn[v]===void 0?delete m[v]:m[v]=hn[v];var p=[];for(var v in m)p.push(`${v}=${m[v]}`);Ae.strings=p}return Ae.strings},re=(Q,m)=>{for(var v=0;v{var v=0;return Ae().forEach((p,F)=>{var U=m+v;z[Q+F*4>>2]=U,re(p,U),v+=p.length+1}),0},ue=(Q,m)=>{var v=Ae();z[Q>>2]=v.length;var p=0;return v.forEach(F=>p+=F.length+1),z[m>>2]=p,0},aA=Q=>{c(Q,new Gt(Q))},DA=(Q,m)=>{aA(Q)},PA=DA;function Je(Q){try{var m=et.getStreamFromFD(Q);return b.close(m),0}catch(v){if(typeof b>"u"||v.name!=="ErrnoError")throw v;return v.errno}}var vt=(Q,m,v,p)=>{for(var F=0,U=0;U>2],Z=z[m+4>>2];m+=8;var RA=b.read(Q,R,q,Z,p);if(RA<0)return-1;if(F+=RA,RA>2]=U,0}catch(q){if(typeof b>"u"||q.name!=="ErrnoError")throw q;return q.errno}}function rn(Q,m,v,p){m=Un(m);try{if(isNaN(m))return 61;var F=et.getStreamFromFD(Q);return b.llseek(F,m,v),O[p>>3]=BigInt(F.position),F.getdents&&m===0&&v===0&&(F.getdents=null),0}catch(U){if(typeof b>"u"||U.name!=="ErrnoError")throw U;return U.errno}}var no=(Q,m,v,p)=>{for(var F=0,U=0;U>2],Z=z[m+4>>2];m+=8;var RA=b.write(Q,R,q,Z,p);if(RA<0)return-1;if(F+=RA,RA>2]=U,0}catch(q){if(typeof b>"u"||q.name!=="ErrnoError")throw q;return q.errno}}var Ji=Q=>{var m=i["_"+Q];return m},bt=(Q,m)=>{R.set(Q,m)},Li=Q=>bn(Q),Mn=Q=>{var m=MA(Q)+1,v=Li(m);return Wo(Q,v,m),v},Qt=(Q,m,v,p,F)=>{var U={string:Ne=>{var Yi=0;return Ne!=null&&Ne!==0&&(Yi=Mn(Ne)),Yi},array:Ne=>{var Yi=Li(Ne.length);return bt(Ne,Yi),Yi}};function q(Ne){return m==="string"?Se(Ne):m==="boolean"?!!Ne:Ne}var Z=Ji(Q),RA=[],ee=0;if(p)for(var ne=0;ne(i._viz_set_y_invert=Te.A)(Q),i._viz_set_reduce=Q=>(i._viz_set_reduce=Te.B)(Q),i._viz_get_graphviz_version=()=>(i._viz_get_graphviz_version=Te.C)(),i._free=Q=>(i._free=Te.D)(Q),i._malloc=Q=>(i._malloc=Te.E)(Q),i._viz_get_plugin_list=Q=>(i._viz_get_plugin_list=Te.G)(Q),i._viz_create_graph=(Q,m,v)=>(i._viz_create_graph=Te.H)(Q,m,v),i._viz_read_one_graph=Q=>(i._viz_read_one_graph=Te.I)(Q),i._viz_string_dup=(Q,m)=>(i._viz_string_dup=Te.J)(Q,m),i._viz_string_dup_html=(Q,m)=>(i._viz_string_dup_html=Te.K)(Q,m),i._viz_string_free=(Q,m)=>(i._viz_string_free=Te.L)(Q,m),i._viz_string_free_html=(Q,m)=>(i._viz_string_free_html=Te.M)(Q,m),i._viz_add_node=(Q,m)=>(i._viz_add_node=Te.N)(Q,m),i._viz_add_edge=(Q,m,v)=>(i._viz_add_edge=Te.O)(Q,m,v),i._viz_add_subgraph=(Q,m)=>(i._viz_add_subgraph=Te.P)(Q,m),i._viz_set_default_graph_attribute=(Q,m,v)=>(i._viz_set_default_graph_attribute=Te.Q)(Q,m,v),i._viz_set_default_node_attribute=(Q,m,v)=>(i._viz_set_default_node_attribute=Te.R)(Q,m,v),i._viz_set_default_edge_attribute=(Q,m,v)=>(i._viz_set_default_edge_attribute=Te.S)(Q,m,v),i._viz_set_attribute=(Q,m,v)=>(i._viz_set_attribute=Te.T)(Q,m,v),i._viz_free_graph=Q=>(i._viz_free_graph=Te.U)(Q),i._viz_create_context=()=>(i._viz_create_context=Te.V)(),i._viz_free_context=Q=>(i._viz_free_context=Te.W)(Q),i._viz_layout=(Q,m,v)=>(i._viz_layout=Te.X)(Q,m,v),i._viz_free_layout=(Q,m)=>(i._viz_free_layout=Te.Y)(Q,m),i._viz_reset_errors=()=>(i._viz_reset_errors=Te.Z)(),i._viz_render=(Q,m,v)=>(i._viz_render=Te._)(Q,m,v);var Qi=(Q,m)=>(Qi=Te.$)(Q,m),mi=Q=>(mi=Te.aa)(Q),bn=Q=>(bn=Te.ba)(Q),Ko=()=>(Ko=Te.ca)();i.ccall=Qt,i.getValue=oe,i.PATH=X,i.UTF8ToString=Se,i.stringToUTF8=Wo,i.lengthBytesUTF8=MA,i.FS=b;var Ot,Nr;VA=function Q(){Ot||Jn(),Ot||(VA=Q)};function Jn(){if(wA>0||!Nr&&(Nr=1,IA(),wA>0))return;function Q(){Ot||(Ot=1,i.calledRun=1,!x&&(SA(),n(i),nA()))}Q()}return Jn(),A=r,A}})(),ygA=[[/^Error: (.*)/,"error"],[/^Warning: (.*)/,"warning"]];function NjA(t){return t.map(e=>{for(let A=0;A{if(typeof A.name!="string")throw new Error("image name must be a string");if(typeof A.width!="number"&&typeof A.width!="string")throw new Error("image width must be a number or string");if(typeof A.height!="number"&&typeof A.height!="string")throw new Error("image height must be a number or string");let i=t.PATH.join("/",A.name),n=` - -`;return t.FS.createPath("/",t.PATH.dirname(i)),t.FS.writeFile(i,n),i}):[]}function KjA(t,e){for(let A of e)t.FS.analyzePath(A).exists&&t.FS.unlink(A)}function UjA(t,e,A){let i;try{let n=t.lengthBytesUTF8(e);return i=t.ccall("malloc","number",["number"],[n+1]),t.stringToUTF8(e,i,n+1),t.ccall("viz_read_one_graph","number",["number"],[i])}finally{i&&t.ccall("free","number",["number"],[i])}}function JjA(t,e,A){let i=t.ccall("viz_create_graph","number",["string","number","number"],[e.name,typeof e.directed<"u"?e.directed:!0,typeof e.strict<"u"?e.strict:!1]);return kgA(t,i,e),i}function kgA(t,e,A){SgA(t,e,A),A.nodes&&A.nodes.forEach(i=>{let n=t.ccall("viz_add_node","number",["number","string"],[e,String(i.name)]);i.attributes&&bgA(t,e,n,i.attributes)}),A.edges&&A.edges.forEach(i=>{let n=t.ccall("viz_add_edge","number",["number","string","string"],[e,String(i.tail),String(i.head)]);i.attributes&&bgA(t,e,n,i.attributes)}),A.subgraphs&&A.subgraphs.forEach(i=>{let n=t.ccall("viz_add_subgraph","number",["number","string"],[e,String(i.name)]);kgA(t,n,i)})}function SgA(t,e,A){if(A.graphAttributes)for(let[i,n]of Object.entries(A.graphAttributes))iv(t,e,n,o=>{t.ccall("viz_set_default_graph_attribute","number",["number","string","number"],[e,i,o])});if(A.nodeAttributes)for(let[i,n]of Object.entries(A.nodeAttributes))iv(t,e,n,o=>{t.ccall("viz_set_default_node_attribute","number",["number","string","number"],[e,i,o])});if(A.edgeAttributes)for(let[i,n]of Object.entries(A.edgeAttributes))iv(t,e,n,o=>{t.ccall("viz_set_default_edge_attribute","number",["number","string","number"],[e,i,o])})}function bgA(t,e,A,i){for(let[n,o]of Object.entries(i))iv(t,e,o,r=>{t.ccall("viz_set_attribute","number",["number","string","number"],[A,n,r])})}function iv(t,e,A,i){let n;if(typeof A=="object"&&"html"in A?n=t.ccall("viz_string_dup_html","number",["number","string"],[e,String(A.html)]):n=t.ccall("viz_string_dup","number",["number","string"],[e,String(A)]),n==0)throw new Error("couldn't dup string");i(n),typeof A=="object"&&"html"in A?t.ccall("viz_string_free_html","number",["number","number"],[e,n]):t.ccall("viz_string_free","number",["number","number"],[e,n])}var hU=class{constructor(e){this.module=e}get graphvizVersion(){return _jA(this.module)}get formats(){return vgA(this.module,"device")}get engines(){return vgA(this.module,"layout")}renderFormats(e,A,i={}){return MgA(this.module,e,A,sA({engine:"dot"},i))}render(e,A={}){let i;A.format===void 0?i="dot":i=A.format;let n=MgA(this.module,e,[i],sA({engine:"dot"},A));return n.status==="success"&&(n.output=n.output[i]),n}renderString(e,A={}){let i=this.render(e,A);if(i.status!=="success")throw new Error(i.errors.find(n=>n.level=="error")?.message||"render failed");return i.output}renderSVGElement(e,A={}){let i=this.renderString(e,Fe(sA({},A),{format:"svg"}));return new DOMParser().parseFromString(i,"image/svg+xml").documentElement}renderJSON(e,A={}){let i=this.renderString(e,Fe(sA({},A),{format:"json"}));return JSON.parse(i)}};function RgA(){return xjA().then(t=>new hU(t))}var nv=class t{render(e){return Ni(this,null,function*(){let A={format:"svg",engine:"dot"};return(yield RgA()).renderString(e,A)})}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var ov=new eA("AudioPlayingService");var LgA=new eA("PendingEventService"),rv=class{};var sv=new eA("VideoService");var av=new eA("WebSocketService");var cv=class t{createMessagePartFromFile(e){return Ni(this,null,function*(){return{inlineData:{displayName:e.name,data:yield this.readFileAsBytes(e),mimeType:e.type}}})}readFileAsBytes(e){return new Promise((A,i)=>{let n=new FileReader;n.onload=o=>{let r=o.target.result.split(",")[1];A(r)},n.onerror=i,n.readAsDataURL(e)})}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var gv=class t extends rv{createFunctionResponse(e,A,i){return{function_response:{id:e,name:A,response:{response:i}}}}static \u0275fac=(()=>{let e;return function(i){return(e||(e=ci(t)))(i||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var lv=class t extends Y8{sanitizer=f(oc);windowOpen(e,A,i,n){return e.open(A,i,n)}createObjectUrl(e){return URL.createObjectURL(e)}openBlobUrl(e){let A=this.createObjectUrl(e);return this.windowOpen(window,A,"_blank")}setAnchorHref(e,A){e.href=A}bypassSecurityTrustHtml(e){return this.sanitizer.bypassSecurityTrustHtml(e)}static \u0275fac=(()=>{let e;return function(i){return(e||(e=ci(t)))(i||t)}})();static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Iv=class t{constructor(e){this.http=e}apiServerDomain=ds.getApiServerBaseUrl();createSession(e,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${A}/users/${e}/sessions`;return this.http.post(i,null)}return new gt}listSessions(e,A){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${A}/users/${e}/sessions`;return this.http.get(i)}return new gt}deleteSession(e,A,i){let n=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}`;return this.http.delete(n)}getSession(e,A,i){let n=this.apiServerDomain+`/apps/${A}/users/${e}/sessions/${i}`;return this.http.get(n)}importSession(e,A,i){if(this.apiServerDomain!=null){let n=this.apiServerDomain+`/apps/${A}/users/${e}/sessions`;return this.http.post(n,{appName:A,userId:e,events:i})}return new gt}static \u0275fac=function(A){return new(A||t)(be(ks))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Cv=class t{audioRecordingService=f(Z7);videoService=f(sv);webSocketService=f(av);audioIntervalId=void 0;videoIntervalId=void 0;constructor(){}startAudioChat(n){return Ni(this,arguments,function*({appName:e,userId:A,sessionId:i}){let o=window.location.protocol==="https:"?"wss":"ws";this.webSocketService.connect(`${o}://${ds.getWSServerUrl()}/run_live?app_name=${e}&user_id=${A}&session_id=${i}`),yield this.startAudioStreaming()})}stopAudioChat(){this.stopAudioStreaming(),this.webSocketService.closeConnection()}startAudioStreaming(){return Ni(this,null,function*(){try{yield this.audioRecordingService.startRecording(),this.audioIntervalId=setInterval(()=>this.sendBufferedAudio(),250)}catch(e){console.error("Error accessing microphone:",e)}})}stopAudioStreaming(){clearInterval(this.audioIntervalId),this.audioIntervalId=void 0,this.audioRecordingService.stopRecording()}sendBufferedAudio(){let e=this.audioRecordingService.getCombinedAudioBuffer();if(!e)return;let A={blob:{mime_type:"audio/pcm",data:e}};this.webSocketService.sendMessage(A),this.audioRecordingService.cleanAudioBuffer()}startVideoChat(o){return Ni(this,arguments,function*({appName:e,userId:A,sessionId:i,videoContainer:n}){let r=window.location.protocol==="https:"?"wss":"ws";this.webSocketService.connect(`${r}://${ds.getWSServerUrl()}/run_live?app_name=${e}&user_id=${A}&session_id=${i}`),yield this.startAudioStreaming(),yield this.startVideoStreaming(n)})}stopVideoChat(e){this.stopAudioStreaming(),this.stopVideoStreaming(e),this.webSocketService.closeConnection()}startVideoStreaming(e){return Ni(this,null,function*(){try{yield this.videoService.startRecording(e),this.videoIntervalId=setInterval(()=>Ni(this,null,function*(){return yield this.sendCapturedFrame()}),1e3)}catch(A){console.error("Error accessing camera:",A)}})}sendCapturedFrame(){return Ni(this,null,function*(){let e=yield this.videoService.getCapturedFrame();if(!e)return;let A={blob:{mime_type:"image/jpeg",data:e}};this.webSocketService.sendMessage(A)})}stopVideoStreaming(e){clearInterval(this.videoIntervalId),this.videoIntervalId=void 0,this.videoService.stopRecording(e)}onStreamClose(){return this.webSocketService.onCloseReason()}closeStream(){this.webSocketService.closeConnection()}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var VlA=$Q(qlA());var Bv=class t{stc(e){return(0,VlA.default)(e)}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Ev=class t{selectedTraceRowSource=new Fi(void 0);selectedTraceRow$=this.selectedTraceRowSource.asObservable();eventDataSource=new Fi(void 0);eventData$=this.eventDataSource.asObservable();hoveredMessageIndicesSource=new Fi([]);hoveredMessageIndices$=this.hoveredMessageIndicesSource.asObservable();messagesSource=new Fi([]);messages$=this.messagesSource.asObservable();selectedRow(e){this.selectedTraceRowSource.next(e)}setEventData(e){this.eventDataSource.next(e)}setMessages(e){this.messagesSource.next(e)}setHoveredMessages(e,A){if(!e){this.hoveredMessageIndicesSource.next([]);return}let i=e.attributes,n=i&&i["gcp.vertex.agent.event_id"],o=0,r=[];for(let s of this.messagesSource.value){if(s.role=="user"){o++;continue}if(this.eventDataSource.value?.get(s.eventId).invocationId!=A){o++;continue}if(n)if(i["gcp.vertex.agent.event_id"]==s.eventId){r.push(o),o++;continue}else{o++;continue}else{r.push(o),o++;continue}}this.hoveredMessageIndicesSource.next(r)}resetTraceService(){this.eventDataSource.next(void 0),this.messagesSource.next([]),this.hoveredMessageIndicesSource.next([])}static \u0275fac=function(A){return new(A||t)};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var Qv=class t{mediaRecorder;stream;renderer;videoElement;videoBuffer=[];constructor(e){this.renderer=e.createRenderer(null,null)}createVideoElement(e){this.clearVideoElement(e),this.videoElement=this.renderer.createElement("video"),this.renderer.setAttribute(this.videoElement,"width","400"),this.renderer.setAttribute(this.videoElement,"height","300"),this.renderer.setAttribute(this.videoElement,"autoplay","true"),this.renderer.setAttribute(this.videoElement,"muted","true"),this.renderer.appendChild(e.nativeElement,this.videoElement)}startRecording(e){return Ni(this,null,function*(){this.createVideoElement(e);try{this.stream=yield navigator.mediaDevices.getUserMedia({video:!0}),this.videoElement.srcObject=this.stream,this.mediaRecorder=new MediaRecorder(this.stream,{mimeType:"video/webm"}),this.mediaRecorder.start(1e3)}catch(A){console.error("Error accessing camera/microphone:",A)}})}getCapturedFrame(){return Ni(this,null,function*(){try{let e=yield this.captureFrame();return this.blobToUint8Array(e)}catch(e){console.error("Error capturing frame:",e);return}})}blobToUint8Array(e){return Ni(this,null,function*(){let A=yield e.arrayBuffer();return new Uint8Array(A)})}captureFrame(){return Ni(this,null,function*(){return new Promise((e,A)=>{try{let i=document.createElement("canvas");i.width=this.videoElement.videoWidth,i.height=this.videoElement.videoHeight;let n=i.getContext("2d");if(!n){A(new Error("Canvas context not supported"));return}n.drawImage(this.videoElement,0,0,i.width,i.height),i.toBlob(o=>{o?e(o):A(new Error("Failed to create image blob"))},"image/png")}catch(i){A(i)}})})}stopRecording(e){this.mediaRecorder&&this.mediaRecorder.stop(),this.stream&&this.stream.getTracks().forEach(A=>A.stop()),this.clearVideoElement(e)}clearVideoElement(e){let A=e.nativeElement.querySelector("video");A&&this.renderer.removeChild(e.nativeElement,A)}static \u0275fac=function(A){return new(A||t)(be(Ms))};static \u0275prov=bA({token:t,factory:t.\u0275fac,providedIn:"root"})};var zVA={url:"",deserializer:t=>JSON.parse(t.data),serializer:t=>JSON.stringify(t)},PVA="WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }",xf=class t extends hd{constructor(e,A){if(super(),this._socket=null,e instanceof gt)this.destination=A,this.source=e;else{let i=this._config=Object.assign({},zVA);if(this._output=new qA,typeof e=="string")i.url=e;else for(let n in e)e.hasOwnProperty(n)&&(i[n]=e[n]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new sg}}lift(e){let A=new t(this._config,this.destination);return A.operator=e,A.source=this,A}_resetState(){this._socket=null,this.source||(this.destination=new sg),this._output=new qA}multiplex(e,A,i){let n=this;return new gt(o=>{try{n.next(e())}catch(s){o.error(s)}let r=n.subscribe({next:s=>{try{i(s)&&o.next(s)}catch(a){o.error(a)}},error:s=>o.error(s),complete:()=>o.complete()});return()=>{try{n.next(A())}catch(s){o.error(s)}r.unsubscribe()}})}_connectSocket(){let{WebSocketCtor:e,protocol:A,url:i,binaryType:n}=this._config,o=this._output,r=null;try{r=A?new e(i,A):new e(i),this._socket=r,n&&(this._socket.binaryType=n)}catch(a){o.error(a);return}let s=new Kt(()=>{this._socket=null,r&&r.readyState===1&&r.close()});r.onopen=a=>{let{_socket:c}=this;if(!c){r.close(),this._resetState();return}let{openObserver:g}=this._config;g&&g.next(a);let I=this.destination;this.destination=C0.create(C=>{if(r.readyState===1)try{let{serializer:d}=this._config;r.send(d(C))}catch(d){this.destination.error(d)}},C=>{let{closingObserver:d}=this._config;d&&d.next(void 0),C&&C.code?r.close(C.code,C.reason):o.error(new TypeError(PVA)),this._resetState()},()=>{let{closingObserver:C}=this._config;C&&C.next(void 0),r.close(),this._resetState()}),I&&I instanceof sg&&s.add(I.subscribe(this.destination))},r.onerror=a=>{this._resetState(),o.error(a)},r.onclose=a=>{r===this._socket&&this._resetState();let{closeObserver:c}=this._config;c&&c.next(a),a.wasClean?o.complete():o.error(a)},r.onmessage=a=>{try{let{deserializer:c}=this._config;o.next(c(a))}catch(c){o.error(c)}}}_subscribe(e){let{source:A}=this;return A?A.subscribe(e):(this._socket||this._connectSocket(),this._output.subscribe(e),e.add(()=>{let{_socket:i}=this;this._output.observers.length===0&&(i&&(i.readyState===1||i.readyState===0)&&i.close(),this._resetState())}),e)}unsubscribe(){let{_socket:e}=this;e&&(e.readyState===1||e.readyState===0)&&e.close(),this._resetState(),super.unsubscribe()}};var uv=class t{audioPlayingService=f(ov);socket$;messages$=new Fi("");audioBuffer=[];audioIntervalId=null;closeReasonSubject=new qA;connect(e){this.socket$=new xf({url:e,serializer:A=>JSON.stringify(A),deserializer:A=>A.data,closeObserver:{next:A=>{this.emitWsCloseReason(A.reason)}}}),this.socket$.subscribe(A=>{this.handleIncomingAudio(A),this.messages$.next(A)},A=>{console.error("WebSocket error:",A)}),this.audioIntervalId=setInterval(()=>this.playIncomingAudio(),250)}playIncomingAudio(){this.audioPlayingService.playAudio(this.audioBuffer),this.audioBuffer=[]}sendMessage(e){if(e.blob.data=this.arrayBufferToBase64(e.blob.data.buffer),!this.socket$||this.socket$.closed){console.error("WebSocket is not open.");return}this.socket$.next(e)}closeConnection(){clearInterval(this.audioIntervalId),this.audioIntervalId=null,this.socket$&&this.socket$.complete()}getMessages(){return this.messages$.asObservable()}arrayBufferToBase64(e){let A="",i=new Uint8Array(e),n=i.byteLength;for(let o=0;ot.json()).then(t=>{window.runtimeConfig=t,Pk(zQ,{providers:[yM(jk,Mr,Vb,G7,D6,U2,uB),{provide:A1,useClass:Iv},{provide:HB,useClass:j7},{provide:av,useClass:uv},{provide:W7,useValue:"./assets/audio-processor.js"},{provide:Z7,useClass:X7},{provide:ov,useClass:V7},{provide:sv,useClass:Qv},{provide:T8,useClass:Cv},{provide:zB,useClass:ev},{provide:Rl,useClass:Av},{provide:U8,useClass:q7},{provide:OB,useClass:$7},{provide:e1,useClass:Ev},{provide:Gc,useClass:tv},{provide:PB,useClass:nv},{provide:jB,useClass:Bv},{provide:$2,useClass:lv},{provide:J8,useClass:cv},{provide:LgA,useClass:gv},{provide:q8,useValue:P7},...t.logo?[{provide:b7,useValue:U7}]:[],aj(),{provide:ZlA,useClass:ha}]}).catch(e=>console.error(e))}); diff --git a/src/google/adk/cli/browser/main-OS2OH2S3.js b/src/google/adk/cli/browser/main-OS2OH2S3.js new file mode 100644 index 0000000000..c68ffdc892 --- /dev/null +++ b/src/google/adk/cli/browser/main-OS2OH2S3.js @@ -0,0 +1,4093 @@ +import{a as ae,b as _A,c as wk,d as XA,e as JQ,f as Ci,g as cA}from"./chunk-2WH2EVR6.js";var ote=XA(jF=>{"use strict";var nte={b:"\b",f:"\f",n:` +`,r:"\r",t:" ",'"':'"',"/":"/","\\":"\\"},lSe=97;jF.parse=function(t,A,e){var i={},n=0,o=0,r=0,s=e&&e.bigint&&typeof BigInt<"u";return{data:a("",!0),pointers:i};function a(O,H){c();var V;k(O,"value");var Z=h();switch(Z){case"t":u("rue"),V=!0;break;case"f":u("alse"),V=!1;break;case"n":u("ull"),V=null;break;case'"':V=l();break;case"[":V=C(O);break;case"{":V=I(O);break;default:B(),"-0123456789".indexOf(Z)>=0?V=d():_()}return k(O,"valueEnd"),c(),H&&rNumber.MAX_SAFE_INTEGER||V="a"&&V<="f"?H+=V.charCodeAt()-lSe+10:V>="0"&&V<="9"?H+=+V:K()}return String.fromCharCode(H)}function b(){for(var O="";t[r]>="0"&&t[r]<="9";)O+=h();if(O.length)return O;J(),_()}function k(O,H){S(O,H,w())}function S(O,H,V){i[O]=i[O]||{},i[O][H]=V}function w(){return{line:n,column:o,pos:r}}function _(){throw new SyntaxError("Unexpected token "+t[r]+" in JSON at position "+r)}function K(){B(),_()}function J(){if(r>=t.length)throw new SyntaxError("Unexpected end of JSON input")}};jF.stringify=function(t,A,e){if(!kD(t))return;var i=0,n,o,r=typeof e=="object"?e.space:e;switch(typeof r){case"number":var s=r>10?10:r<0?0:Math.floor(r);r=s&&S(s," "),n=s,o=s;break;case"string":r=r.slice(0,10),n=0,o=0;for(var a=0;a=0}var dSe=/"|\\/g,CSe=/[\b]/g,ISe=/\f/g,uSe=/\n/g,hSe=/\r/g,BSe=/\t/g;function xD(t){return t=t.replace(dSe,"\\$&").replace(ISe,"\\f").replace(CSe,"\\b").replace(uSe,"\\n").replace(hSe,"\\r").replace(BSe,"\\t"),'"'+t+'"'}var ESe=/~/g,fSe=/\//g;function PF(t){return t.replace(ESe,"~0").replace(fSe,"~1")}});var Doe=XA((zKA,yoe)=>{"use strict";var woe=function(t,A){var e,i,n=1,o=0,r=0,s=String.alphabet;function a(c,l,d){if(d){for(e=l;d=a(c,e),d<76&&d>65;)++e;return+c.slice(l-1,e)}return d=s&&s.indexOf(c.charAt(l)),d>-1?d+76:(d=c.charCodeAt(l)||0,d<45||d>127?d:d<46?65:d<48?d-1:d<58?d+18:d<65?d-11:d<91?d+11:d<97?d-37:d<123?d+5:d-63)}if((t+="")!=(A+="")){for(;n;)if(i=a(t,o++),n=a(A,r++),i<76&&n<76&&i>66&&n>66&&(i=a(t,o,o),n=a(A,r,o=e),r=e),i!=n)return i{"use strict";Object.defineProperty($n,"__esModule",{value:!0});$n.regexpCode=$n.getEsmExportName=$n.getProperty=$n.safeStringify=$n.stringify=$n.strConcat=$n.addCodeArg=$n.str=$n._=$n.nil=$n._Code=$n.Name=$n.IDENTIFIER=$n._CodeOrName=void 0;var s3=class{};$n._CodeOrName=s3;$n.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Du=class extends s3{constructor(A){if(super(),!$n.IDENTIFIER.test(A))throw new Error("CodeGen: name must be a valid identifier");this.str=A}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};$n.Name=Du;var Zl=class extends s3{constructor(A){super(),this._items=typeof A=="string"?[A]:A}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let A=this._items[0];return A===""||A==='""'}get str(){var A;return(A=this._str)!==null&&A!==void 0?A:this._str=this._items.reduce((e,i)=>`${e}${i}`,"")}get names(){var A;return(A=this._names)!==null&&A!==void 0?A:this._names=this._items.reduce((e,i)=>(i instanceof Du&&(e[i.str]=(e[i.str]||0)+1),e),{})}};$n._Code=Zl;$n.nil=new Zl("");function boe(t,...A){let e=[t[0]],i=0;for(;i{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});_c.ValueScope=_c.ValueScopeName=_c.Scope=_c.varKinds=_c.UsedValueState=void 0;var xc=c3(),_G=class extends Error{constructor(A){super(`CodeGen: "code" for ${A} not defined`),this.value=A.value}},Ev=function(t){return t[t.Started=0]="Started",t[t.Completed=1]="Completed",t}(Ev||(_c.UsedValueState=Ev={}));_c.varKinds={const:new xc.Name("const"),let:new xc.Name("let"),var:new xc.Name("var")};var fv=class{constructor({prefixes:A,parent:e}={}){this._names={},this._prefixes=A,this._parent=e}toName(A){return A instanceof xc.Name?A:this.name(A)}name(A){return new xc.Name(this._newName(A))}_newName(A){let e=this._names[A]||this._nameGroup(A);return`${A}${e.index++}`}_nameGroup(A){var e,i;if(!((i=(e=this._parent)===null||e===void 0?void 0:e._prefixes)===null||i===void 0)&&i.has(A)||this._prefixes&&!this._prefixes.has(A))throw new Error(`CodeGen: prefix "${A}" is not allowed in this scope`);return this._names[A]={prefix:A,index:0}}};_c.Scope=fv;var Qv=class extends xc.Name{constructor(A,e){super(e),this.prefix=A}setValue(A,{property:e,itemIndex:i}){this.value=A,this.scopePath=(0,xc._)`.${new xc.Name(e)}[${i}]`}};_c.ValueScopeName=Qv;var BGe=(0,xc._)`\n`,RG=class extends fv{constructor(A){super(A),this._values={},this._scope=A.scope,this.opts=_A(ae({},A),{_n:A.lines?BGe:xc.nil})}get(){return this._scope}name(A){return new Qv(A,this._newName(A))}value(A,e){var i;if(e.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let n=this.toName(A),{prefix:o}=n,r=(i=e.key)!==null&&i!==void 0?i:e.ref,s=this._values[o];if(s){let l=s.get(r);if(l)return l}else s=this._values[o]=new Map;s.set(r,n);let a=this._scope[o]||(this._scope[o]=[]),c=a.length;return a[c]=e.ref,n.setValue(e,{property:o,itemIndex:c}),n}getValue(A,e){let i=this._values[A];if(i)return i.get(e)}scopeRefs(A,e=this._values){return this._reduceValues(e,i=>{if(i.scopePath===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return(0,xc._)`${A}${i.scopePath}`})}scopeCode(A=this._values,e,i){return this._reduceValues(A,n=>{if(n.value===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return n.value.code},e,i)}_reduceValues(A,e,i={},n){let o=xc.nil;for(let r in A){let s=A[r];if(!s)continue;let a=i[r]=i[r]||new Map;s.forEach(c=>{if(a.has(c))return;a.set(c,Ev.Started);let l=e(c);if(l){let d=this.opts.es5?_c.varKinds.var:_c.varKinds.const;o=(0,xc._)`${o}${d} ${c} = ${l};${this.opts._n}`}else if(l=n?.(c))o=(0,xc._)`${o}${l}${this.opts._n}`;else throw new _G(c);a.set(c,Ev.Completed)})}return o}};_c.ValueScope=RG});var hn=XA(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.or=gn.and=gn.not=gn.CodeGen=gn.operators=gn.varKinds=gn.ValueScopeName=gn.ValueScope=gn.Scope=gn.Name=gn.regexpCode=gn.stringify=gn.getProperty=gn.nil=gn.strConcat=gn.str=gn._=void 0;var _n=c3(),Ug=NG(),BC=c3();Object.defineProperty(gn,"_",{enumerable:!0,get:function(){return BC._}});Object.defineProperty(gn,"str",{enumerable:!0,get:function(){return BC.str}});Object.defineProperty(gn,"strConcat",{enumerable:!0,get:function(){return BC.strConcat}});Object.defineProperty(gn,"nil",{enumerable:!0,get:function(){return BC.nil}});Object.defineProperty(gn,"getProperty",{enumerable:!0,get:function(){return BC.getProperty}});Object.defineProperty(gn,"stringify",{enumerable:!0,get:function(){return BC.stringify}});Object.defineProperty(gn,"regexpCode",{enumerable:!0,get:function(){return BC.regexpCode}});Object.defineProperty(gn,"Name",{enumerable:!0,get:function(){return BC.Name}});var Dv=NG();Object.defineProperty(gn,"Scope",{enumerable:!0,get:function(){return Dv.Scope}});Object.defineProperty(gn,"ValueScope",{enumerable:!0,get:function(){return Dv.ValueScope}});Object.defineProperty(gn,"ValueScopeName",{enumerable:!0,get:function(){return Dv.ValueScopeName}});Object.defineProperty(gn,"varKinds",{enumerable:!0,get:function(){return Dv.varKinds}});gn.operators={GT:new _n._Code(">"),GTE:new _n._Code(">="),LT:new _n._Code("<"),LTE:new _n._Code("<="),EQ:new _n._Code("==="),NEQ:new _n._Code("!=="),NOT:new _n._Code("!"),OR:new _n._Code("||"),AND:new _n._Code("&&"),ADD:new _n._Code("+")};var S2=class{optimizeNodes(){return this}optimizeNames(A,e){return this}},LG=class extends S2{constructor(A,e,i){super(),this.varKind=A,this.name=e,this.rhs=i}render({es5:A,_n:e}){let i=A?Ug.varKinds.var:this.varKind,n=this.rhs===void 0?"":` = ${this.rhs}`;return`${i} ${this.name}${n};`+e}optimizeNames(A,e){if(A[this.name.str])return this.rhs&&(this.rhs=JE(this.rhs,A,e)),this}get names(){return this.rhs instanceof _n._CodeOrName?this.rhs.names:{}}},pv=class extends S2{constructor(A,e,i){super(),this.lhs=A,this.rhs=e,this.sideEffects=i}render({_n:A}){return`${this.lhs} = ${this.rhs};`+A}optimizeNames(A,e){if(!(this.lhs instanceof _n.Name&&!A[this.lhs.str]&&!this.sideEffects))return this.rhs=JE(this.rhs,A,e),this}get names(){let A=this.lhs instanceof _n.Name?{}:ae({},this.lhs.names);return yv(A,this.rhs)}},FG=class extends pv{constructor(A,e,i,n){super(A,i,n),this.op=e}render({_n:A}){return`${this.lhs} ${this.op}= ${this.rhs};`+A}},GG=class extends S2{constructor(A){super(),this.label=A,this.names={}}render({_n:A}){return`${this.label}:`+A}},KG=class extends S2{constructor(A){super(),this.label=A,this.names={}}render({_n:A}){return`break${this.label?` ${this.label}`:""};`+A}},UG=class extends S2{constructor(A){super(),this.error=A}render({_n:A}){return`throw ${this.error};`+A}get names(){return this.error.names}},TG=class extends S2{constructor(A){super(),this.code=A}render({_n:A}){return`${this.code};`+A}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(A,e){return this.code=JE(this.code,A,e),this}get names(){return this.code instanceof _n._CodeOrName?this.code.names:{}}},l3=class extends S2{constructor(A=[]){super(),this.nodes=A}render(A){return this.nodes.reduce((e,i)=>e+i.render(A),"")}optimizeNodes(){let{nodes:A}=this,e=A.length;for(;e--;){let i=A[e].optimizeNodes();Array.isArray(i)?A.splice(e,1,...i):i?A[e]=i:A.splice(e,1)}return A.length>0?this:void 0}optimizeNames(A,e){let{nodes:i}=this,n=i.length;for(;n--;){let o=i[n];o.optimizeNames(A,e)||(EGe(A,o.names),i.splice(n,1))}return i.length>0?this:void 0}get names(){return this.nodes.reduce((A,e)=>vu(A,e.names),{})}},k2=class extends l3{render(A){return"{"+A._n+super.render(A)+"}"+A._n}},OG=class extends l3{},JG=(()=>{class t extends k2{}return t.kind="else",t})(),mv=(()=>{class t extends k2{constructor(e,i){super(i),this.condition=e}render(e){let i=`if(${this.condition})`+super.render(e);return this.else&&(i+="else "+this.else.render(e)),i}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let i=this.else;if(i){let n=i.optimizeNodes();i=this.else=Array.isArray(n)?new JG(n):n}if(i)return e===!1?i instanceof t?i:i.nodes:this.nodes.length?this:new t(Roe(e),i instanceof t?[i]:i.nodes);if(!(e===!1||!this.nodes.length))return this}optimizeNames(e,i){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(e,i),!!(super.optimizeNames(e,i)||this.else))return this.condition=JE(this.condition,e,i),this}get names(){let e=super.names;return yv(e,this.condition),this.else&&vu(e,this.else.names),e}}return t.kind="if",t})(),vv=(()=>{class t extends k2{}return t.kind="for",t})(),YG=class extends vv{constructor(A){super(),this.iteration=A}render(A){return`for(${this.iteration})`+super.render(A)}optimizeNames(A,e){if(super.optimizeNames(A,e))return this.iteration=JE(this.iteration,A,e),this}get names(){return vu(super.names,this.iteration.names)}},HG=class extends vv{constructor(A,e,i,n){super(),this.varKind=A,this.name=e,this.from=i,this.to=n}render(A){let e=A.es5?Ug.varKinds.var:this.varKind,{name:i,from:n,to:o}=this;return`for(${e} ${i}=${n}; ${i}<${o}; ${i}++)`+super.render(A)}get names(){let A=yv(super.names,this.from);return yv(A,this.to)}},wv=class extends vv{constructor(A,e,i,n){super(),this.loop=A,this.varKind=e,this.name=i,this.iterable=n}render(A){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(A)}optimizeNames(A,e){if(super.optimizeNames(A,e))return this.iterable=JE(this.iterable,A,e),this}get names(){return vu(super.names,this.iterable.names)}},Soe=(()=>{class t extends k2{constructor(e,i,n){super(),this.name=e,this.args=i,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}}return t.kind="func",t})(),koe=(()=>{class t extends l3{render(e){return"return "+super.render(e)}}return t.kind="return",t})(),zG=class extends k2{render(A){let e="try"+super.render(A);return this.catch&&(e+=this.catch.render(A)),this.finally&&(e+=this.finally.render(A)),e}optimizeNodes(){var A,e;return super.optimizeNodes(),(A=this.catch)===null||A===void 0||A.optimizeNodes(),(e=this.finally)===null||e===void 0||e.optimizeNodes(),this}optimizeNames(A,e){var i,n;return super.optimizeNames(A,e),(i=this.catch)===null||i===void 0||i.optimizeNames(A,e),(n=this.finally)===null||n===void 0||n.optimizeNames(A,e),this}get names(){let A=super.names;return this.catch&&vu(A,this.catch.names),this.finally&&vu(A,this.finally.names),A}},xoe=(()=>{class t extends k2{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}}return t.kind="catch",t})(),_oe=(()=>{class t extends k2{render(e){return"finally"+super.render(e)}}return t.kind="finally",t})(),PG=class{constructor(A,e={}){this._values={},this._blockStarts=[],this._constants={},this.opts=_A(ae({},e),{_n:e.lines?` +`:""}),this._extScope=A,this._scope=new Ug.Scope({parent:A}),this._nodes=[new OG]}toString(){return this._root.render(this.opts)}name(A){return this._scope.name(A)}scopeName(A){return this._extScope.name(A)}scopeValue(A,e){let i=this._extScope.value(A,e);return(this._values[i.prefix]||(this._values[i.prefix]=new Set)).add(i),i}getScopeValue(A,e){return this._extScope.getValue(A,e)}scopeRefs(A){return this._extScope.scopeRefs(A,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(A,e,i,n){let o=this._scope.toName(e);return i!==void 0&&n&&(this._constants[o.str]=i),this._leafNode(new LG(A,o,i)),o}const(A,e,i){return this._def(Ug.varKinds.const,A,e,i)}let(A,e,i){return this._def(Ug.varKinds.let,A,e,i)}var(A,e,i){return this._def(Ug.varKinds.var,A,e,i)}assign(A,e,i){return this._leafNode(new pv(A,e,i))}add(A,e){return this._leafNode(new FG(A,gn.operators.ADD,e))}code(A){return typeof A=="function"?A():A!==_n.nil&&this._leafNode(new TG(A)),this}object(...A){let e=["{"];for(let[i,n]of A)e.length>1&&e.push(","),e.push(i),(i!==n||this.opts.es5)&&(e.push(":"),(0,_n.addCodeArg)(e,n));return e.push("}"),new _n._Code(e)}if(A,e,i){if(this._blockNode(new mv(A)),e&&i)this.code(e).else().code(i).endIf();else if(e)this.code(e).endIf();else if(i)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(A){return this._elseNode(new mv(A))}else(){return this._elseNode(new JG)}endIf(){return this._endBlockNode(mv,JG)}_for(A,e){return this._blockNode(A),e&&this.code(e).endFor(),this}for(A,e){return this._for(new YG(A),e)}forRange(A,e,i,n,o=this.opts.es5?Ug.varKinds.var:Ug.varKinds.let){let r=this._scope.toName(A);return this._for(new HG(o,r,e,i),()=>n(r))}forOf(A,e,i,n=Ug.varKinds.const){let o=this._scope.toName(A);if(this.opts.es5){let r=e instanceof _n.Name?e:this.var("_arr",e);return this.forRange("_i",0,(0,_n._)`${r}.length`,s=>{this.var(o,(0,_n._)`${r}[${s}]`),i(o)})}return this._for(new wv("of",n,o,e),()=>i(o))}forIn(A,e,i,n=this.opts.es5?Ug.varKinds.var:Ug.varKinds.const){if(this.opts.ownProperties)return this.forOf(A,(0,_n._)`Object.keys(${e})`,i);let o=this._scope.toName(A);return this._for(new wv("in",n,o,e),()=>i(o))}endFor(){return this._endBlockNode(vv)}label(A){return this._leafNode(new GG(A))}break(A){return this._leafNode(new KG(A))}return(A){let e=new koe;if(this._blockNode(e),this.code(A),e.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(koe)}try(A,e,i){if(!e&&!i)throw new Error('CodeGen: "try" without "catch" and "finally"');let n=new zG;if(this._blockNode(n),this.code(A),e){let o=this.name("e");this._currNode=n.catch=new xoe(o),e(o)}return i&&(this._currNode=n.finally=new _oe,this.code(i)),this._endBlockNode(xoe,_oe)}throw(A){return this._leafNode(new UG(A))}block(A,e){return this._blockStarts.push(this._nodes.length),A&&this.code(A).endBlock(e),this}endBlock(A){let e=this._blockStarts.pop();if(e===void 0)throw new Error("CodeGen: not in self-balancing block");let i=this._nodes.length-e;if(i<0||A!==void 0&&i!==A)throw new Error(`CodeGen: wrong number of nodes: ${i} vs ${A} expected`);return this._nodes.length=e,this}func(A,e=_n.nil,i,n){return this._blockNode(new Soe(A,e,i)),n&&this.code(n).endFunc(),this}endFunc(){return this._endBlockNode(Soe)}optimize(A=1){for(;A-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(A){return this._currNode.nodes.push(A),this}_blockNode(A){this._currNode.nodes.push(A),this._nodes.push(A)}_endBlockNode(A,e){let i=this._currNode;if(i instanceof A||e&&i instanceof e)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${e?`${A.kind}/${e.kind}`:A.kind}"`)}_elseNode(A){let e=this._currNode;if(!(e instanceof mv))throw new Error('CodeGen: "else" without "if"');return this._currNode=e.else=A,this}get _root(){return this._nodes[0]}get _currNode(){let A=this._nodes;return A[A.length-1]}set _currNode(A){let e=this._nodes;e[e.length-1]=A}};gn.CodeGen=PG;function vu(t,A){for(let e in A)t[e]=(t[e]||0)+(A[e]||0);return t}function yv(t,A){return A instanceof _n._CodeOrName?vu(t,A.names):t}function JE(t,A,e){if(t instanceof _n.Name)return i(t);if(!n(t))return t;return new _n._Code(t._items.reduce((o,r)=>(r instanceof _n.Name&&(r=i(r)),r instanceof _n._Code?o.push(...r._items):o.push(r),o),[]));function i(o){let r=e[o.str];return r===void 0||A[o.str]!==1?o:(delete A[o.str],r)}function n(o){return o instanceof _n._Code&&o._items.some(r=>r instanceof _n.Name&&A[r.str]===1&&e[r.str]!==void 0)}}function EGe(t,A){for(let e in A)t[e]=(t[e]||0)-(A[e]||0)}function Roe(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,_n._)`!${jG(t)}`}gn.not=Roe;var fGe=Noe(gn.operators.AND);function QGe(...t){return t.reduce(fGe)}gn.and=QGe;var mGe=Noe(gn.operators.OR);function pGe(...t){return t.reduce(mGe)}gn.or=pGe;function Noe(t){return(A,e)=>A===_n.nil?e:e===_n.nil?A:(0,_n._)`${jG(A)} ${t} ${jG(e)}`}function jG(t){return t instanceof _n.Name?t:(0,_n._)`(${t})`}});var eo=XA(Bn=>{"use strict";Object.defineProperty(Bn,"__esModule",{value:!0});Bn.checkStrictMode=Bn.getErrorPath=Bn.Type=Bn.useFunc=Bn.setEvaluated=Bn.evaluatedPropsToName=Bn.mergeEvaluated=Bn.eachItem=Bn.unescapeJsonPointer=Bn.escapeJsonPointer=Bn.escapeFragment=Bn.unescapeFragment=Bn.schemaRefOrVal=Bn.schemaHasRulesButRef=Bn.schemaHasRules=Bn.checkUnknownRules=Bn.alwaysValidSchema=Bn.toHash=void 0;var Zo=hn(),wGe=c3();function yGe(t){let A={};for(let e of t)A[e]=!0;return A}Bn.toHash=yGe;function DGe(t,A){return typeof A=="boolean"?A:Object.keys(A).length===0?!0:(Goe(t,A),!Koe(A,t.self.RULES.all))}Bn.alwaysValidSchema=DGe;function Goe(t,A=t.schema){let{opts:e,self:i}=t;if(!e.strictSchema||typeof A=="boolean")return;let n=i.RULES.keywords;for(let o in A)n[o]||Ooe(t,`unknown keyword: "${o}"`)}Bn.checkUnknownRules=Goe;function Koe(t,A){if(typeof t=="boolean")return!t;for(let e in t)if(A[e])return!0;return!1}Bn.schemaHasRules=Koe;function vGe(t,A){if(typeof t=="boolean")return!t;for(let e in t)if(e!=="$ref"&&A.all[e])return!0;return!1}Bn.schemaHasRulesButRef=vGe;function bGe({topSchemaRef:t,schemaPath:A},e,i,n){if(!n){if(typeof e=="number"||typeof e=="boolean")return e;if(typeof e=="string")return(0,Zo._)`${e}`}return(0,Zo._)`${t}${A}${(0,Zo.getProperty)(i)}`}Bn.schemaRefOrVal=bGe;function MGe(t){return Uoe(decodeURIComponent(t))}Bn.unescapeFragment=MGe;function SGe(t){return encodeURIComponent(qG(t))}Bn.escapeFragment=SGe;function qG(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}Bn.escapeJsonPointer=qG;function Uoe(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}Bn.unescapeJsonPointer=Uoe;function kGe(t,A){if(Array.isArray(t))for(let e of t)A(e);else A(t)}Bn.eachItem=kGe;function Loe({mergeNames:t,mergeToName:A,mergeValues:e,resultToName:i}){return(n,o,r,s)=>{let a=r===void 0?o:r instanceof Zo.Name?(o instanceof Zo.Name?t(n,o,r):A(n,o,r),r):o instanceof Zo.Name?(A(n,r,o),o):e(o,r);return s===Zo.Name&&!(a instanceof Zo.Name)?i(n,a):a}}Bn.mergeEvaluated={props:Loe({mergeNames:(t,A,e)=>t.if((0,Zo._)`${e} !== true && ${A} !== undefined`,()=>{t.if((0,Zo._)`${A} === true`,()=>t.assign(e,!0),()=>t.assign(e,(0,Zo._)`${e} || {}`).code((0,Zo._)`Object.assign(${e}, ${A})`))}),mergeToName:(t,A,e)=>t.if((0,Zo._)`${e} !== true`,()=>{A===!0?t.assign(e,!0):(t.assign(e,(0,Zo._)`${e} || {}`),WG(t,e,A))}),mergeValues:(t,A)=>t===!0?!0:ae(ae({},t),A),resultToName:Toe}),items:Loe({mergeNames:(t,A,e)=>t.if((0,Zo._)`${e} !== true && ${A} !== undefined`,()=>t.assign(e,(0,Zo._)`${A} === true ? true : ${e} > ${A} ? ${e} : ${A}`)),mergeToName:(t,A,e)=>t.if((0,Zo._)`${e} !== true`,()=>t.assign(e,A===!0?!0:(0,Zo._)`${e} > ${A} ? ${e} : ${A}`)),mergeValues:(t,A)=>t===!0?!0:Math.max(t,A),resultToName:(t,A)=>t.var("items",A)})};function Toe(t,A){if(A===!0)return t.var("props",!0);let e=t.var("props",(0,Zo._)`{}`);return A!==void 0&&WG(t,e,A),e}Bn.evaluatedPropsToName=Toe;function WG(t,A,e){Object.keys(e).forEach(i=>t.assign((0,Zo._)`${A}${(0,Zo.getProperty)(i)}`,!0))}Bn.setEvaluated=WG;var Foe={};function xGe(t,A){return t.scopeValue("func",{ref:A,code:Foe[A.code]||(Foe[A.code]=new wGe._Code(A.code))})}Bn.useFunc=xGe;var VG=function(t){return t[t.Num=0]="Num",t[t.Str=1]="Str",t}(VG||(Bn.Type=VG={}));function _Ge(t,A,e){if(t instanceof Zo.Name){let i=A===VG.Num;return e?i?(0,Zo._)`"[" + ${t} + "]"`:(0,Zo._)`"['" + ${t} + "']"`:i?(0,Zo._)`"/" + ${t}`:(0,Zo._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return e?(0,Zo.getProperty)(t).toString():"/"+qG(t)}Bn.getErrorPath=_Ge;function Ooe(t,A,e=t.opts.strictSchema){if(e){if(A=`strict mode: ${A}`,e===!0)throw new Error(A);t.self.logger.warn(A)}}Bn.checkStrictMode=Ooe});var x2=XA(ZG=>{"use strict";Object.defineProperty(ZG,"__esModule",{value:!0});var ka=hn(),RGe={data:new ka.Name("data"),valCxt:new ka.Name("valCxt"),instancePath:new ka.Name("instancePath"),parentData:new ka.Name("parentData"),parentDataProperty:new ka.Name("parentDataProperty"),rootData:new ka.Name("rootData"),dynamicAnchors:new ka.Name("dynamicAnchors"),vErrors:new ka.Name("vErrors"),errors:new ka.Name("errors"),this:new ka.Name("this"),self:new ka.Name("self"),scope:new ka.Name("scope"),json:new ka.Name("json"),jsonPos:new ka.Name("jsonPos"),jsonLen:new ka.Name("jsonLen"),jsonPart:new ka.Name("jsonPart")};ZG.default=RGe});var g3=XA(xa=>{"use strict";Object.defineProperty(xa,"__esModule",{value:!0});xa.extendErrors=xa.resetErrorsCount=xa.reportExtraError=xa.reportError=xa.keyword$DataError=xa.keywordError=void 0;var Tn=hn(),bv=eo(),oc=x2();xa.keywordError={message:({keyword:t})=>(0,Tn.str)`must pass "${t}" keyword validation`};xa.keyword$DataError={message:({keyword:t,schemaType:A})=>A?(0,Tn.str)`"${t}" keyword must be ${A} ($data)`:(0,Tn.str)`"${t}" keyword is invalid ($data)`};function NGe(t,A=xa.keywordError,e,i){let{it:n}=t,{gen:o,compositeRule:r,allErrors:s}=n,a=Hoe(t,A,e);i??(r||s)?Joe(o,a):Yoe(n,(0,Tn._)`[${a}]`)}xa.reportError=NGe;function LGe(t,A=xa.keywordError,e){let{it:i}=t,{gen:n,compositeRule:o,allErrors:r}=i,s=Hoe(t,A,e);Joe(n,s),o||r||Yoe(i,oc.default.vErrors)}xa.reportExtraError=LGe;function FGe(t,A){t.assign(oc.default.errors,A),t.if((0,Tn._)`${oc.default.vErrors} !== null`,()=>t.if(A,()=>t.assign((0,Tn._)`${oc.default.vErrors}.length`,A),()=>t.assign(oc.default.vErrors,null)))}xa.resetErrorsCount=FGe;function GGe({gen:t,keyword:A,schemaValue:e,data:i,errsCount:n,it:o}){if(n===void 0)throw new Error("ajv implementation error");let r=t.name("err");t.forRange("i",n,oc.default.errors,s=>{t.const(r,(0,Tn._)`${oc.default.vErrors}[${s}]`),t.if((0,Tn._)`${r}.instancePath === undefined`,()=>t.assign((0,Tn._)`${r}.instancePath`,(0,Tn.strConcat)(oc.default.instancePath,o.errorPath))),t.assign((0,Tn._)`${r}.schemaPath`,(0,Tn.str)`${o.errSchemaPath}/${A}`),o.opts.verbose&&(t.assign((0,Tn._)`${r}.schema`,e),t.assign((0,Tn._)`${r}.data`,i))})}xa.extendErrors=GGe;function Joe(t,A){let e=t.const("err",A);t.if((0,Tn._)`${oc.default.vErrors} === null`,()=>t.assign(oc.default.vErrors,(0,Tn._)`[${e}]`),(0,Tn._)`${oc.default.vErrors}.push(${e})`),t.code((0,Tn._)`${oc.default.errors}++`)}function Yoe(t,A){let{gen:e,validateName:i,schemaEnv:n}=t;n.$async?e.throw((0,Tn._)`new ${t.ValidationError}(${A})`):(e.assign((0,Tn._)`${i}.errors`,A),e.return(!1))}var bu={keyword:new Tn.Name("keyword"),schemaPath:new Tn.Name("schemaPath"),params:new Tn.Name("params"),propertyName:new Tn.Name("propertyName"),message:new Tn.Name("message"),schema:new Tn.Name("schema"),parentSchema:new Tn.Name("parentSchema")};function Hoe(t,A,e){let{createErrors:i}=t.it;return i===!1?(0,Tn._)`{}`:KGe(t,A,e)}function KGe(t,A,e={}){let{gen:i,it:n}=t,o=[UGe(n,e),TGe(t,e)];return OGe(t,A,o),i.object(...o)}function UGe({errorPath:t},{instancePath:A}){let e=A?(0,Tn.str)`${t}${(0,bv.getErrorPath)(A,bv.Type.Str)}`:t;return[oc.default.instancePath,(0,Tn.strConcat)(oc.default.instancePath,e)]}function TGe({keyword:t,it:{errSchemaPath:A}},{schemaPath:e,parentSchema:i}){let n=i?A:(0,Tn.str)`${A}/${t}`;return e&&(n=(0,Tn.str)`${n}${(0,bv.getErrorPath)(e,bv.Type.Str)}`),[bu.schemaPath,n]}function OGe(t,{params:A,message:e},i){let{keyword:n,data:o,schemaValue:r,it:s}=t,{opts:a,propertyName:c,topSchemaRef:l,schemaPath:d}=s;i.push([bu.keyword,n],[bu.params,typeof A=="function"?A(t):A||(0,Tn._)`{}`]),a.messages&&i.push([bu.message,typeof e=="function"?e(t):e]),a.verbose&&i.push([bu.schema,r],[bu.parentSchema,(0,Tn._)`${l}${d}`],[oc.default.data,o]),c&&i.push([bu.propertyName,c])}});var Poe=XA(YE=>{"use strict";Object.defineProperty(YE,"__esModule",{value:!0});YE.boolOrEmptySchema=YE.topBoolOrEmptySchema=void 0;var JGe=g3(),YGe=hn(),HGe=x2(),zGe={message:"boolean schema is false"};function PGe(t){let{gen:A,schema:e,validateName:i}=t;e===!1?zoe(t,!1):typeof e=="object"&&e.$async===!0?A.return(HGe.default.data):(A.assign((0,YGe._)`${i}.errors`,null),A.return(!0))}YE.topBoolOrEmptySchema=PGe;function jGe(t,A){let{gen:e,schema:i}=t;i===!1?(e.var(A,!1),zoe(t)):e.var(A,!0)}YE.boolOrEmptySchema=jGe;function zoe(t,A){let{gen:e,data:i}=t,n={gen:e,keyword:"false schema",data:i,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,JGe.reportError)(n,zGe,void 0,A)}});var XG=XA(HE=>{"use strict";Object.defineProperty(HE,"__esModule",{value:!0});HE.getRules=HE.isJSONType=void 0;var VGe=["string","number","integer","boolean","null","object","array"],qGe=new Set(VGe);function WGe(t){return typeof t=="string"&&qGe.has(t)}HE.isJSONType=WGe;function ZGe(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:_A(ae({},t),{integer:!0,boolean:!0,null:!0}),rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}HE.getRules=ZGe});var $G=XA(EC=>{"use strict";Object.defineProperty(EC,"__esModule",{value:!0});EC.shouldUseRule=EC.shouldUseGroup=EC.schemaHasRulesForType=void 0;function XGe({schema:t,self:A},e){let i=A.RULES.types[e];return i&&i!==!0&&joe(t,i)}EC.schemaHasRulesForType=XGe;function joe(t,A){return A.rules.some(e=>Voe(t,e))}EC.shouldUseGroup=joe;function Voe(t,A){var e;return t[A.keyword]!==void 0||((e=A.definition.implements)===null||e===void 0?void 0:e.some(i=>t[i]!==void 0))}EC.shouldUseRule=Voe});var d3=XA(_a=>{"use strict";Object.defineProperty(_a,"__esModule",{value:!0});_a.reportTypeError=_a.checkDataTypes=_a.checkDataType=_a.coerceAndCheckDataType=_a.getJSONTypes=_a.getSchemaTypes=_a.DataType=void 0;var $Ge=XG(),eKe=$G(),AKe=g3(),Vi=hn(),qoe=eo(),zE=function(t){return t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong",t}(zE||(_a.DataType=zE={}));function tKe(t){let A=Woe(t.type);if(A.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!A.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&A.push("null")}return A}_a.getSchemaTypes=tKe;function Woe(t){let A=Array.isArray(t)?t:t?[t]:[];if(A.every($Ge.isJSONType))return A;throw new Error("type must be JSONType or JSONType[]: "+A.join(","))}_a.getJSONTypes=Woe;function iKe(t,A){let{gen:e,data:i,opts:n}=t,o=nKe(A,n.coerceTypes),r=A.length>0&&!(o.length===0&&A.length===1&&(0,eKe.schemaHasRulesForType)(t,A[0]));if(r){let s=AK(A,i,n.strictNumbers,zE.Wrong);e.if(s,()=>{o.length?oKe(t,A,o):tK(t)})}return r}_a.coerceAndCheckDataType=iKe;var Zoe=new Set(["string","number","integer","boolean","null"]);function nKe(t,A){return A?t.filter(e=>Zoe.has(e)||A==="array"&&e==="array"):[]}function oKe(t,A,e){let{gen:i,data:n,opts:o}=t,r=i.let("dataType",(0,Vi._)`typeof ${n}`),s=i.let("coerced",(0,Vi._)`undefined`);o.coerceTypes==="array"&&i.if((0,Vi._)`${r} == 'object' && Array.isArray(${n}) && ${n}.length == 1`,()=>i.assign(n,(0,Vi._)`${n}[0]`).assign(r,(0,Vi._)`typeof ${n}`).if(AK(A,n,o.strictNumbers),()=>i.assign(s,n))),i.if((0,Vi._)`${s} !== undefined`);for(let c of e)(Zoe.has(c)||c==="array"&&o.coerceTypes==="array")&&a(c);i.else(),tK(t),i.endIf(),i.if((0,Vi._)`${s} !== undefined`,()=>{i.assign(n,s),rKe(t,s)});function a(c){switch(c){case"string":i.elseIf((0,Vi._)`${r} == "number" || ${r} == "boolean"`).assign(s,(0,Vi._)`"" + ${n}`).elseIf((0,Vi._)`${n} === null`).assign(s,(0,Vi._)`""`);return;case"number":i.elseIf((0,Vi._)`${r} == "boolean" || ${n} === null + || (${r} == "string" && ${n} && ${n} == +${n})`).assign(s,(0,Vi._)`+${n}`);return;case"integer":i.elseIf((0,Vi._)`${r} === "boolean" || ${n} === null + || (${r} === "string" && ${n} && ${n} == +${n} && !(${n} % 1))`).assign(s,(0,Vi._)`+${n}`);return;case"boolean":i.elseIf((0,Vi._)`${n} === "false" || ${n} === 0 || ${n} === null`).assign(s,!1).elseIf((0,Vi._)`${n} === "true" || ${n} === 1`).assign(s,!0);return;case"null":i.elseIf((0,Vi._)`${n} === "" || ${n} === 0 || ${n} === false`),i.assign(s,null);return;case"array":i.elseIf((0,Vi._)`${r} === "string" || ${r} === "number" + || ${r} === "boolean" || ${n} === null`).assign(s,(0,Vi._)`[${n}]`)}}}function rKe({gen:t,parentData:A,parentDataProperty:e},i){t.if((0,Vi._)`${A} !== undefined`,()=>t.assign((0,Vi._)`${A}[${e}]`,i))}function eK(t,A,e,i=zE.Correct){let n=i===zE.Correct?Vi.operators.EQ:Vi.operators.NEQ,o;switch(t){case"null":return(0,Vi._)`${A} ${n} null`;case"array":o=(0,Vi._)`Array.isArray(${A})`;break;case"object":o=(0,Vi._)`${A} && typeof ${A} == "object" && !Array.isArray(${A})`;break;case"integer":o=r((0,Vi._)`!(${A} % 1) && !isNaN(${A})`);break;case"number":o=r();break;default:return(0,Vi._)`typeof ${A} ${n} ${t}`}return i===zE.Correct?o:(0,Vi.not)(o);function r(s=Vi.nil){return(0,Vi.and)((0,Vi._)`typeof ${A} == "number"`,s,e?(0,Vi._)`isFinite(${A})`:Vi.nil)}}_a.checkDataType=eK;function AK(t,A,e,i){if(t.length===1)return eK(t[0],A,e,i);let n,o=(0,qoe.toHash)(t);if(o.array&&o.object){let r=(0,Vi._)`typeof ${A} != "object"`;n=o.null?r:(0,Vi._)`!${A} || ${r}`,delete o.null,delete o.array,delete o.object}else n=Vi.nil;o.number&&delete o.integer;for(let r in o)n=(0,Vi.and)(n,eK(r,A,e,i));return n}_a.checkDataTypes=AK;var sKe={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:A})=>typeof t=="string"?(0,Vi._)`{type: ${t}}`:(0,Vi._)`{type: ${A}}`};function tK(t){let A=aKe(t);(0,AKe.reportError)(A,sKe)}_a.reportTypeError=tK;function aKe(t){let{gen:A,data:e,schema:i}=t,n=(0,qoe.schemaRefOrVal)(t,i,"type");return{gen:A,keyword:"type",data:e,schema:i.type,schemaCode:n,schemaValue:n,parentSchema:i,params:{},it:t}}});var $oe=XA(Mv=>{"use strict";Object.defineProperty(Mv,"__esModule",{value:!0});Mv.assignDefaults=void 0;var PE=hn(),cKe=eo();function lKe(t,A){let{properties:e,items:i}=t.schema;if(A==="object"&&e)for(let n in e)Xoe(t,n,e[n].default);else A==="array"&&Array.isArray(i)&&i.forEach((n,o)=>Xoe(t,o,n.default))}Mv.assignDefaults=lKe;function Xoe(t,A,e){let{gen:i,compositeRule:n,data:o,opts:r}=t;if(e===void 0)return;let s=(0,PE._)`${o}${(0,PE.getProperty)(A)}`;if(n){(0,cKe.checkStrictMode)(t,`default is ignored for: ${s}`);return}let a=(0,PE._)`${s} === undefined`;r.useDefaults==="empty"&&(a=(0,PE._)`${a} || ${s} === null || ${s} === ""`),i.if(a,(0,PE._)`${s} = ${(0,PE.stringify)(e)}`)}});var Xl=XA(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.validateUnion=Go.validateArray=Go.usePattern=Go.callValidateCode=Go.schemaProperties=Go.allSchemaProperties=Go.noPropertyInData=Go.propertyInData=Go.isOwnProperty=Go.hasPropFunc=Go.reportMissingProp=Go.checkMissingProp=Go.checkReportMissingProp=void 0;var ur=hn(),iK=eo(),fC=x2(),gKe=eo();function dKe(t,A){let{gen:e,data:i,it:n}=t;e.if(oK(e,i,A,n.opts.ownProperties),()=>{t.setParams({missingProperty:(0,ur._)`${A}`},!0),t.error()})}Go.checkReportMissingProp=dKe;function CKe({gen:t,data:A,it:{opts:e}},i,n){return(0,ur.or)(...i.map(o=>(0,ur.and)(oK(t,A,o,e.ownProperties),(0,ur._)`${n} = ${o}`)))}Go.checkMissingProp=CKe;function IKe(t,A){t.setParams({missingProperty:A},!0),t.error()}Go.reportMissingProp=IKe;function ere(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,ur._)`Object.prototype.hasOwnProperty`})}Go.hasPropFunc=ere;function nK(t,A,e){return(0,ur._)`${ere(t)}.call(${A}, ${e})`}Go.isOwnProperty=nK;function uKe(t,A,e,i){let n=(0,ur._)`${A}${(0,ur.getProperty)(e)} !== undefined`;return i?(0,ur._)`${n} && ${nK(t,A,e)}`:n}Go.propertyInData=uKe;function oK(t,A,e,i){let n=(0,ur._)`${A}${(0,ur.getProperty)(e)} === undefined`;return i?(0,ur.or)(n,(0,ur.not)(nK(t,A,e))):n}Go.noPropertyInData=oK;function Are(t){return t?Object.keys(t).filter(A=>A!=="__proto__"):[]}Go.allSchemaProperties=Are;function hKe(t,A){return Are(A).filter(e=>!(0,iK.alwaysValidSchema)(t,A[e]))}Go.schemaProperties=hKe;function BKe({schemaCode:t,data:A,it:{gen:e,topSchemaRef:i,schemaPath:n,errorPath:o},it:r},s,a,c){let l=c?(0,ur._)`${t}, ${A}, ${i}${n}`:A,d=[[fC.default.instancePath,(0,ur.strConcat)(fC.default.instancePath,o)],[fC.default.parentData,r.parentData],[fC.default.parentDataProperty,r.parentDataProperty],[fC.default.rootData,fC.default.rootData]];r.opts.dynamicRef&&d.push([fC.default.dynamicAnchors,fC.default.dynamicAnchors]);let C=(0,ur._)`${l}, ${e.object(...d)}`;return a!==ur.nil?(0,ur._)`${s}.call(${a}, ${C})`:(0,ur._)`${s}(${C})`}Go.callValidateCode=BKe;var EKe=(0,ur._)`new RegExp`;function fKe({gen:t,it:{opts:A}},e){let i=A.unicodeRegExp?"u":"",{regExp:n}=A.code,o=n(e,i);return t.scopeValue("pattern",{key:o.toString(),ref:o,code:(0,ur._)`${n.code==="new RegExp"?EKe:(0,gKe.useFunc)(t,n)}(${e}, ${i})`})}Go.usePattern=fKe;function QKe(t){let{gen:A,data:e,keyword:i,it:n}=t,o=A.name("valid");if(n.allErrors){let s=A.let("valid",!0);return r(()=>A.assign(s,!1)),s}return A.var(o,!0),r(()=>A.break()),o;function r(s){let a=A.const("len",(0,ur._)`${e}.length`);A.forRange("i",0,a,c=>{t.subschema({keyword:i,dataProp:c,dataPropType:iK.Type.Num},o),A.if((0,ur.not)(o),s)})}}Go.validateArray=QKe;function mKe(t){let{gen:A,schema:e,keyword:i,it:n}=t;if(!Array.isArray(e))throw new Error("ajv implementation error");if(e.some(a=>(0,iK.alwaysValidSchema)(n,a))&&!n.opts.unevaluated)return;let r=A.let("valid",!1),s=A.name("_valid");A.block(()=>e.forEach((a,c)=>{let l=t.subschema({keyword:i,schemaProp:c,compositeRule:!0},s);A.assign(r,(0,ur._)`${r} || ${s}`),t.mergeValidEvaluated(l,s)||A.if((0,ur.not)(r))})),t.result(r,()=>t.reset(),()=>t.error(!0))}Go.validateUnion=mKe});var nre=XA(gd=>{"use strict";Object.defineProperty(gd,"__esModule",{value:!0});gd.validateKeywordUsage=gd.validSchemaType=gd.funcKeywordCode=gd.macroKeywordCode=void 0;var rc=hn(),Mu=x2(),pKe=Xl(),wKe=g3();function yKe(t,A){let{gen:e,keyword:i,schema:n,parentSchema:o,it:r}=t,s=A.macro.call(r.self,n,o,r),a=ire(e,i,s);r.opts.validateSchema!==!1&&r.self.validateSchema(s,!0);let c=e.name("valid");t.subschema({schema:s,schemaPath:rc.nil,errSchemaPath:`${r.errSchemaPath}/${i}`,topSchemaRef:a,compositeRule:!0},c),t.pass(c,()=>t.error(!0))}gd.macroKeywordCode=yKe;function DKe(t,A){var e;let{gen:i,keyword:n,schema:o,parentSchema:r,$data:s,it:a}=t;bKe(a,A);let c=!s&&A.compile?A.compile.call(a.self,o,r,a):A.validate,l=ire(i,n,c),d=i.let("valid");t.block$data(d,C),t.ok((e=A.valid)!==null&&e!==void 0?e:d);function C(){if(A.errors===!1)h(),A.modifying&&tre(t),B(()=>t.error());else{let f=A.async?I():u();A.modifying&&tre(t),B(()=>vKe(t,f))}}function I(){let f=i.let("ruleErrs",null);return i.try(()=>h((0,rc._)`await `),b=>i.assign(d,!1).if((0,rc._)`${b} instanceof ${a.ValidationError}`,()=>i.assign(f,(0,rc._)`${b}.errors`),()=>i.throw(b))),f}function u(){let f=(0,rc._)`${l}.errors`;return i.assign(f,null),h(rc.nil),f}function h(f=A.async?(0,rc._)`await `:rc.nil){let b=a.opts.passContext?Mu.default.this:Mu.default.self,k=!("compile"in A&&!s||A.schema===!1);i.assign(d,(0,rc._)`${f}${(0,pKe.callValidateCode)(t,l,b,k)}`,A.modifying)}function B(f){var b;i.if((0,rc.not)((b=A.valid)!==null&&b!==void 0?b:d),f)}}gd.funcKeywordCode=DKe;function tre(t){let{gen:A,data:e,it:i}=t;A.if(i.parentData,()=>A.assign(e,(0,rc._)`${i.parentData}[${i.parentDataProperty}]`))}function vKe(t,A){let{gen:e}=t;e.if((0,rc._)`Array.isArray(${A})`,()=>{e.assign(Mu.default.vErrors,(0,rc._)`${Mu.default.vErrors} === null ? ${A} : ${Mu.default.vErrors}.concat(${A})`).assign(Mu.default.errors,(0,rc._)`${Mu.default.vErrors}.length`),(0,wKe.extendErrors)(t)},()=>t.error())}function bKe({schemaEnv:t},A){if(A.async&&!t.$async)throw new Error("async keyword in sync schema")}function ire(t,A,e){if(e===void 0)throw new Error(`keyword "${A}" failed to compile`);return t.scopeValue("keyword",typeof e=="function"?{ref:e}:{ref:e,code:(0,rc.stringify)(e)})}function MKe(t,A,e=!1){return!A.length||A.some(i=>i==="array"?Array.isArray(t):i==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==i||e&&typeof t>"u")}gd.validSchemaType=MKe;function SKe({schema:t,opts:A,self:e,errSchemaPath:i},n,o){if(Array.isArray(n.keyword)?!n.keyword.includes(o):n.keyword!==o)throw new Error("ajv implementation error");let r=n.dependencies;if(r?.some(s=>!Object.prototype.hasOwnProperty.call(t,s)))throw new Error(`parent schema must have dependencies of ${o}: ${r.join(",")}`);if(n.validateSchema&&!n.validateSchema(t[o])){let a=`keyword "${o}" value is invalid at path "${i}": `+e.errorsText(n.validateSchema.errors);if(A.validateSchema==="log")e.logger.error(a);else throw new Error(a)}}gd.validateKeywordUsage=SKe});var rre=XA(QC=>{"use strict";Object.defineProperty(QC,"__esModule",{value:!0});QC.extendSubschemaMode=QC.extendSubschemaData=QC.getSubschema=void 0;var dd=hn(),ore=eo();function kKe(t,{keyword:A,schemaProp:e,schema:i,schemaPath:n,errSchemaPath:o,topSchemaRef:r}){if(A!==void 0&&i!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(A!==void 0){let s=t.schema[A];return e===void 0?{schema:s,schemaPath:(0,dd._)`${t.schemaPath}${(0,dd.getProperty)(A)}`,errSchemaPath:`${t.errSchemaPath}/${A}`}:{schema:s[e],schemaPath:(0,dd._)`${t.schemaPath}${(0,dd.getProperty)(A)}${(0,dd.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${A}/${(0,ore.escapeFragment)(e)}`}}if(i!==void 0){if(n===void 0||o===void 0||r===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:i,schemaPath:n,topSchemaRef:r,errSchemaPath:o}}throw new Error('either "keyword" or "schema" must be passed')}QC.getSubschema=kKe;function xKe(t,A,{dataProp:e,dataPropType:i,data:n,dataTypes:o,propertyName:r}){if(n!==void 0&&e!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=A;if(e!==void 0){let{errorPath:c,dataPathArr:l,opts:d}=A,C=s.let("data",(0,dd._)`${A.data}${(0,dd.getProperty)(e)}`,!0);a(C),t.errorPath=(0,dd.str)`${c}${(0,ore.getErrorPath)(e,i,d.jsPropertySyntax)}`,t.parentDataProperty=(0,dd._)`${e}`,t.dataPathArr=[...l,t.parentDataProperty]}if(n!==void 0){let c=n instanceof dd.Name?n:s.let("data",n,!0);a(c),r!==void 0&&(t.propertyName=r)}o&&(t.dataTypes=o);function a(c){t.data=c,t.dataLevel=A.dataLevel+1,t.dataTypes=[],A.definedProperties=new Set,t.parentData=A.data,t.dataNames=[...A.dataNames,c]}}QC.extendSubschemaData=xKe;function _Ke(t,{jtdDiscriminator:A,jtdMetadata:e,compositeRule:i,createErrors:n,allErrors:o}){i!==void 0&&(t.compositeRule=i),n!==void 0&&(t.createErrors=n),o!==void 0&&(t.allErrors=o),t.jtdDiscriminator=A,t.jtdMetadata=e}QC.extendSubschemaMode=_Ke});var rK=XA((gUA,sre)=>{"use strict";sre.exports=function t(A,e){if(A===e)return!0;if(A&&e&&typeof A=="object"&&typeof e=="object"){if(A.constructor!==e.constructor)return!1;var i,n,o;if(Array.isArray(A)){if(i=A.length,i!=e.length)return!1;for(n=i;n--!==0;)if(!t(A[n],e[n]))return!1;return!0}if(A.constructor===RegExp)return A.source===e.source&&A.flags===e.flags;if(A.valueOf!==Object.prototype.valueOf)return A.valueOf()===e.valueOf();if(A.toString!==Object.prototype.toString)return A.toString()===e.toString();if(o=Object.keys(A),i=o.length,i!==Object.keys(e).length)return!1;for(n=i;n--!==0;)if(!Object.prototype.hasOwnProperty.call(e,o[n]))return!1;for(n=i;n--!==0;){var r=o[n];if(!t(A[r],e[r]))return!1}return!0}return A!==A&&e!==e}});var cre=XA((dUA,are)=>{"use strict";var mC=are.exports=function(t,A,e){typeof A=="function"&&(e=A,A={}),e=A.cb||e;var i=typeof e=="function"?e:e.pre||function(){},n=e.post||function(){};Sv(A,i,n,t,"",t)};mC.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};mC.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};mC.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};mC.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function Sv(t,A,e,i,n,o,r,s,a,c){if(i&&typeof i=="object"&&!Array.isArray(i)){A(i,n,o,r,s,a,c);for(var l in i){var d=i[l];if(Array.isArray(d)){if(l in mC.arrayKeywords)for(var C=0;C{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});Rc.getSchemaRefs=Rc.resolveUrl=Rc.normalizeId=Rc._getFullPath=Rc.getFullPath=Rc.inlineRef=void 0;var NKe=eo(),LKe=rK(),FKe=cre(),GKe=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function KKe(t,A=!0){return typeof t=="boolean"?!0:A===!0?!sK(t):A?lre(t)<=A:!1}Rc.inlineRef=KKe;var UKe=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function sK(t){for(let A in t){if(UKe.has(A))return!0;let e=t[A];if(Array.isArray(e)&&e.some(sK)||typeof e=="object"&&sK(e))return!0}return!1}function lre(t){let A=0;for(let e in t){if(e==="$ref")return 1/0;if(A++,!GKe.has(e)&&(typeof t[e]=="object"&&(0,NKe.eachItem)(t[e],i=>A+=lre(i)),A===1/0))return 1/0}return A}function gre(t,A="",e){e!==!1&&(A=jE(A));let i=t.parse(A);return dre(t,i)}Rc.getFullPath=gre;function dre(t,A){return t.serialize(A).split("#")[0]+"#"}Rc._getFullPath=dre;var TKe=/#\/?$/;function jE(t){return t?t.replace(TKe,""):""}Rc.normalizeId=jE;function OKe(t,A,e){return e=jE(e),t.resolve(A,e)}Rc.resolveUrl=OKe;var JKe=/^[a-z_][-a-z0-9._]*$/i;function YKe(t,A){if(typeof t=="boolean")return{};let{schemaId:e,uriResolver:i}=this.opts,n=jE(t[e]||A),o={"":n},r=gre(i,n,!1),s={},a=new Set;return FKe(t,{allKeys:!0},(d,C,I,u)=>{if(u===void 0)return;let h=r+C,B=o[u];typeof d[e]=="string"&&(B=f.call(this,d[e])),b.call(this,d.$anchor),b.call(this,d.$dynamicAnchor),o[C]=B;function f(k){let S=this.opts.uriResolver.resolve;if(k=jE(B?S(B,k):k),a.has(k))throw l(k);a.add(k);let w=this.refs[k];return typeof w=="string"&&(w=this.refs[w]),typeof w=="object"?c(d,w.schema,k):k!==jE(h)&&(k[0]==="#"?(c(d,s[k],k),s[k]=d):this.refs[k]=h),k}function b(k){if(typeof k=="string"){if(!JKe.test(k))throw new Error(`invalid anchor "${k}"`);f.call(this,`#${k}`)}}}),s;function c(d,C,I){if(C!==void 0&&!LKe(d,C))throw l(I)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}Rc.getSchemaRefs=YKe});var h3=XA(pC=>{"use strict";Object.defineProperty(pC,"__esModule",{value:!0});pC.getData=pC.KeywordCxt=pC.validateFunctionCode=void 0;var Bre=Poe(),Cre=d3(),cK=$G(),kv=d3(),HKe=$oe(),u3=nre(),aK=rre(),Lt=hn(),yi=x2(),zKe=C3(),_2=eo(),I3=g3();function PKe(t){if(Qre(t)&&(mre(t),fre(t))){qKe(t);return}Ere(t,()=>(0,Bre.topBoolOrEmptySchema)(t))}pC.validateFunctionCode=PKe;function Ere({gen:t,validateName:A,schema:e,schemaEnv:i,opts:n},o){n.code.es5?t.func(A,(0,Lt._)`${yi.default.data}, ${yi.default.valCxt}`,i.$async,()=>{t.code((0,Lt._)`"use strict"; ${Ire(e,n)}`),VKe(t,n),t.code(o)}):t.func(A,(0,Lt._)`${yi.default.data}, ${jKe(n)}`,i.$async,()=>t.code(Ire(e,n)).code(o))}function jKe(t){return(0,Lt._)`{${yi.default.instancePath}="", ${yi.default.parentData}, ${yi.default.parentDataProperty}, ${yi.default.rootData}=${yi.default.data}${t.dynamicRef?(0,Lt._)`, ${yi.default.dynamicAnchors}={}`:Lt.nil}}={}`}function VKe(t,A){t.if(yi.default.valCxt,()=>{t.var(yi.default.instancePath,(0,Lt._)`${yi.default.valCxt}.${yi.default.instancePath}`),t.var(yi.default.parentData,(0,Lt._)`${yi.default.valCxt}.${yi.default.parentData}`),t.var(yi.default.parentDataProperty,(0,Lt._)`${yi.default.valCxt}.${yi.default.parentDataProperty}`),t.var(yi.default.rootData,(0,Lt._)`${yi.default.valCxt}.${yi.default.rootData}`),A.dynamicRef&&t.var(yi.default.dynamicAnchors,(0,Lt._)`${yi.default.valCxt}.${yi.default.dynamicAnchors}`)},()=>{t.var(yi.default.instancePath,(0,Lt._)`""`),t.var(yi.default.parentData,(0,Lt._)`undefined`),t.var(yi.default.parentDataProperty,(0,Lt._)`undefined`),t.var(yi.default.rootData,yi.default.data),A.dynamicRef&&t.var(yi.default.dynamicAnchors,(0,Lt._)`{}`)})}function qKe(t){let{schema:A,opts:e,gen:i}=t;Ere(t,()=>{e.$comment&&A.$comment&&wre(t),eUe(t),i.let(yi.default.vErrors,null),i.let(yi.default.errors,0),e.unevaluated&&WKe(t),pre(t),iUe(t)})}function WKe(t){let{gen:A,validateName:e}=t;t.evaluated=A.const("evaluated",(0,Lt._)`${e}.evaluated`),A.if((0,Lt._)`${t.evaluated}.dynamicProps`,()=>A.assign((0,Lt._)`${t.evaluated}.props`,(0,Lt._)`undefined`)),A.if((0,Lt._)`${t.evaluated}.dynamicItems`,()=>A.assign((0,Lt._)`${t.evaluated}.items`,(0,Lt._)`undefined`))}function Ire(t,A){let e=typeof t=="object"&&t[A.schemaId];return e&&(A.code.source||A.code.process)?(0,Lt._)`/*# sourceURL=${e} */`:Lt.nil}function ZKe(t,A){if(Qre(t)&&(mre(t),fre(t))){XKe(t,A);return}(0,Bre.boolOrEmptySchema)(t,A)}function fre({schema:t,self:A}){if(typeof t=="boolean")return!t;for(let e in t)if(A.RULES.all[e])return!0;return!1}function Qre(t){return typeof t.schema!="boolean"}function XKe(t,A){let{schema:e,gen:i,opts:n}=t;n.$comment&&e.$comment&&wre(t),AUe(t),tUe(t);let o=i.const("_errs",yi.default.errors);pre(t,o),i.var(A,(0,Lt._)`${o} === ${yi.default.errors}`)}function mre(t){(0,_2.checkUnknownRules)(t),$Ke(t)}function pre(t,A){if(t.opts.jtd)return ure(t,[],!1,A);let e=(0,Cre.getSchemaTypes)(t.schema),i=(0,Cre.coerceAndCheckDataType)(t,e);ure(t,e,!i,A)}function $Ke(t){let{schema:A,errSchemaPath:e,opts:i,self:n}=t;A.$ref&&i.ignoreKeywordsWithRef&&(0,_2.schemaHasRulesButRef)(A,n.RULES)&&n.logger.warn(`$ref: keywords ignored in schema at path "${e}"`)}function eUe(t){let{schema:A,opts:e}=t;A.default!==void 0&&e.useDefaults&&e.strictSchema&&(0,_2.checkStrictMode)(t,"default is ignored in the schema root")}function AUe(t){let A=t.schema[t.opts.schemaId];A&&(t.baseId=(0,zKe.resolveUrl)(t.opts.uriResolver,t.baseId,A))}function tUe(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function wre({gen:t,schemaEnv:A,schema:e,errSchemaPath:i,opts:n}){let o=e.$comment;if(n.$comment===!0)t.code((0,Lt._)`${yi.default.self}.logger.log(${o})`);else if(typeof n.$comment=="function"){let r=(0,Lt.str)`${i}/$comment`,s=t.scopeValue("root",{ref:A.root});t.code((0,Lt._)`${yi.default.self}.opts.$comment(${o}, ${r}, ${s}.schema)`)}}function iUe(t){let{gen:A,schemaEnv:e,validateName:i,ValidationError:n,opts:o}=t;e.$async?A.if((0,Lt._)`${yi.default.errors} === 0`,()=>A.return(yi.default.data),()=>A.throw((0,Lt._)`new ${n}(${yi.default.vErrors})`)):(A.assign((0,Lt._)`${i}.errors`,yi.default.vErrors),o.unevaluated&&nUe(t),A.return((0,Lt._)`${yi.default.errors} === 0`))}function nUe({gen:t,evaluated:A,props:e,items:i}){e instanceof Lt.Name&&t.assign((0,Lt._)`${A}.props`,e),i instanceof Lt.Name&&t.assign((0,Lt._)`${A}.items`,i)}function ure(t,A,e,i){let{gen:n,schema:o,data:r,allErrors:s,opts:a,self:c}=t,{RULES:l}=c;if(o.$ref&&(a.ignoreKeywordsWithRef||!(0,_2.schemaHasRulesButRef)(o,l))){n.block(()=>Dre(t,"$ref",l.all.$ref.definition));return}a.jtd||oUe(t,A),n.block(()=>{for(let C of l.rules)d(C);d(l.post)});function d(C){(0,cK.shouldUseGroup)(o,C)&&(C.type?(n.if((0,kv.checkDataType)(C.type,r,a.strictNumbers)),hre(t,C),A.length===1&&A[0]===C.type&&e&&(n.else(),(0,kv.reportTypeError)(t)),n.endIf()):hre(t,C),s||n.if((0,Lt._)`${yi.default.errors} === ${i||0}`))}}function hre(t,A){let{gen:e,schema:i,opts:{useDefaults:n}}=t;n&&(0,HKe.assignDefaults)(t,A.type),e.block(()=>{for(let o of A.rules)(0,cK.shouldUseRule)(i,o)&&Dre(t,o.keyword,o.definition,A.type)})}function oUe(t,A){t.schemaEnv.meta||!t.opts.strictTypes||(rUe(t,A),t.opts.allowUnionTypes||sUe(t,A),aUe(t,t.dataTypes))}function rUe(t,A){if(A.length){if(!t.dataTypes.length){t.dataTypes=A;return}A.forEach(e=>{yre(t.dataTypes,e)||lK(t,`type "${e}" not allowed by context "${t.dataTypes.join(",")}"`)}),lUe(t,A)}}function sUe(t,A){A.length>1&&!(A.length===2&&A.includes("null"))&&lK(t,"use allowUnionTypes to allow union type keyword")}function aUe(t,A){let e=t.self.RULES.all;for(let i in e){let n=e[i];if(typeof n=="object"&&(0,cK.shouldUseRule)(t.schema,n)){let{type:o}=n.definition;o.length&&!o.some(r=>cUe(A,r))&&lK(t,`missing type "${o.join(",")}" for keyword "${i}"`)}}}function cUe(t,A){return t.includes(A)||A==="number"&&t.includes("integer")}function yre(t,A){return t.includes(A)||A==="integer"&&t.includes("number")}function lUe(t,A){let e=[];for(let i of t.dataTypes)yre(A,i)?e.push(i):A.includes("integer")&&i==="number"&&e.push("integer");t.dataTypes=e}function lK(t,A){let e=t.schemaEnv.baseId+t.errSchemaPath;A+=` at "${e}" (strictTypes)`,(0,_2.checkStrictMode)(t,A,t.opts.strictTypes)}var xv=class{constructor(A,e,i){if((0,u3.validateKeywordUsage)(A,e,i),this.gen=A.gen,this.allErrors=A.allErrors,this.keyword=i,this.data=A.data,this.schema=A.schema[i],this.$data=e.$data&&A.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,_2.schemaRefOrVal)(A,this.schema,i,this.$data),this.schemaType=e.schemaType,this.parentSchema=A.schema,this.params={},this.it=A,this.def=e,this.$data)this.schemaCode=A.gen.const("vSchema",vre(this.$data,A));else if(this.schemaCode=this.schemaValue,!(0,u3.validSchemaType)(this.schema,e.schemaType,e.allowUndefined))throw new Error(`${i} value must be ${JSON.stringify(e.schemaType)}`);("code"in e?e.trackErrors:e.errors!==!1)&&(this.errsCount=A.gen.const("_errs",yi.default.errors))}result(A,e,i){this.failResult((0,Lt.not)(A),e,i)}failResult(A,e,i){this.gen.if(A),i?i():this.error(),e?(this.gen.else(),e(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(A,e){this.failResult((0,Lt.not)(A),void 0,e)}fail(A){if(A===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(A),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(A){if(!this.$data)return this.fail(A);let{schemaCode:e}=this;this.fail((0,Lt._)`${e} !== undefined && (${(0,Lt.or)(this.invalid$data(),A)})`)}error(A,e,i){if(e){this.setParams(e),this._error(A,i),this.setParams({});return}this._error(A,i)}_error(A,e){(A?I3.reportExtraError:I3.reportError)(this,this.def.error,e)}$dataError(){(0,I3.reportError)(this,this.def.$dataError||I3.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,I3.resetErrorsCount)(this.gen,this.errsCount)}ok(A){this.allErrors||this.gen.if(A)}setParams(A,e){e?Object.assign(this.params,A):this.params=A}block$data(A,e,i=Lt.nil){this.gen.block(()=>{this.check$data(A,i),e()})}check$data(A=Lt.nil,e=Lt.nil){if(!this.$data)return;let{gen:i,schemaCode:n,schemaType:o,def:r}=this;i.if((0,Lt.or)((0,Lt._)`${n} === undefined`,e)),A!==Lt.nil&&i.assign(A,!0),(o.length||r.validateSchema)&&(i.elseIf(this.invalid$data()),this.$dataError(),A!==Lt.nil&&i.assign(A,!1)),i.else()}invalid$data(){let{gen:A,schemaCode:e,schemaType:i,def:n,it:o}=this;return(0,Lt.or)(r(),s());function r(){if(i.length){if(!(e instanceof Lt.Name))throw new Error("ajv implementation error");let a=Array.isArray(i)?i:[i];return(0,Lt._)`${(0,kv.checkDataTypes)(a,e,o.opts.strictNumbers,kv.DataType.Wrong)}`}return Lt.nil}function s(){if(n.validateSchema){let a=A.scopeValue("validate$data",{ref:n.validateSchema});return(0,Lt._)`!${a}(${e})`}return Lt.nil}}subschema(A,e){let i=(0,aK.getSubschema)(this.it,A);(0,aK.extendSubschemaData)(i,this.it,A),(0,aK.extendSubschemaMode)(i,A);let n=_A(ae(ae({},this.it),i),{items:void 0,props:void 0});return ZKe(n,e),n}mergeEvaluated(A,e){let{it:i,gen:n}=this;i.opts.unevaluated&&(i.props!==!0&&A.props!==void 0&&(i.props=_2.mergeEvaluated.props(n,A.props,i.props,e)),i.items!==!0&&A.items!==void 0&&(i.items=_2.mergeEvaluated.items(n,A.items,i.items,e)))}mergeValidEvaluated(A,e){let{it:i,gen:n}=this;if(i.opts.unevaluated&&(i.props!==!0||i.items!==!0))return n.if(e,()=>this.mergeEvaluated(A,Lt.Name)),!0}};pC.KeywordCxt=xv;function Dre(t,A,e,i){let n=new xv(t,e,A);"code"in e?e.code(n,i):n.$data&&e.validate?(0,u3.funcKeywordCode)(n,e):"macro"in e?(0,u3.macroKeywordCode)(n,e):(e.compile||e.validate)&&(0,u3.funcKeywordCode)(n,e)}var gUe=/^\/(?:[^~]|~0|~1)*$/,dUe=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function vre(t,{dataLevel:A,dataNames:e,dataPathArr:i}){let n,o;if(t==="")return yi.default.rootData;if(t[0]==="/"){if(!gUe.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);n=t,o=yi.default.rootData}else{let c=dUe.exec(t);if(!c)throw new Error(`Invalid JSON-pointer: ${t}`);let l=+c[1];if(n=c[2],n==="#"){if(l>=A)throw new Error(a("property/index",l));return i[A-l]}if(l>A)throw new Error(a("data",l));if(o=e[A-l],!n)return o}let r=o,s=n.split("/");for(let c of s)c&&(o=(0,Lt._)`${o}${(0,Lt.getProperty)((0,_2.unescapeJsonPointer)(c))}`,r=(0,Lt._)`${r} && ${o}`);return r;function a(c,l){return`Cannot access ${c} ${l} levels up, current level is ${A}`}}pC.getData=vre});var _v=XA(dK=>{"use strict";Object.defineProperty(dK,"__esModule",{value:!0});var gK=class extends Error{constructor(A){super("validation failed"),this.errors=A,this.ajv=this.validation=!0}};dK.default=gK});var B3=XA(uK=>{"use strict";Object.defineProperty(uK,"__esModule",{value:!0});var CK=C3(),IK=class extends Error{constructor(A,e,i,n){super(n||`can't resolve reference ${i} from id ${e}`),this.missingRef=(0,CK.resolveUrl)(A,e,i),this.missingSchema=(0,CK.normalizeId)((0,CK.getFullPath)(A,this.missingRef))}};uK.default=IK});var Nv=XA($l=>{"use strict";Object.defineProperty($l,"__esModule",{value:!0});$l.resolveSchema=$l.getCompilingSchema=$l.resolveRef=$l.compileSchema=$l.SchemaEnv=void 0;var Tg=hn(),CUe=_v(),Su=x2(),Og=C3(),bre=eo(),IUe=h3(),VE=class{constructor(A){var e;this.refs={},this.dynamicAnchors={};let i;typeof A.schema=="object"&&(i=A.schema),this.schema=A.schema,this.schemaId=A.schemaId,this.root=A.root||this,this.baseId=(e=A.baseId)!==null&&e!==void 0?e:(0,Og.normalizeId)(i?.[A.schemaId||"$id"]),this.schemaPath=A.schemaPath,this.localRefs=A.localRefs,this.meta=A.meta,this.$async=i?.$async,this.refs={}}};$l.SchemaEnv=VE;function BK(t){let A=Mre.call(this,t);if(A)return A;let e=(0,Og.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:i,lines:n}=this.opts.code,{ownProperties:o}=this.opts,r=new Tg.CodeGen(this.scope,{es5:i,lines:n,ownProperties:o}),s;t.$async&&(s=r.scopeValue("Error",{ref:CUe.default,code:(0,Tg._)`require("ajv/dist/runtime/validation_error").default`}));let a=r.scopeName("validate");t.validateName=a;let c={gen:r,allErrors:this.opts.allErrors,data:Su.default.data,parentData:Su.default.parentData,parentDataProperty:Su.default.parentDataProperty,dataNames:[Su.default.data],dataPathArr:[Tg.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:r.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,Tg.stringify)(t.schema)}:{ref:t.schema}),validateName:a,ValidationError:s,schema:t.schema,schemaEnv:t,rootId:e,baseId:t.baseId||e,schemaPath:Tg.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,Tg._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(t),(0,IUe.validateFunctionCode)(c),r.optimize(this.opts.code.optimize);let d=r.toString();l=`${r.scopeRefs(Su.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,t));let I=new Function(`${Su.default.self}`,`${Su.default.scope}`,l)(this,this.scope.get());if(this.scope.value(a,{ref:I}),I.errors=null,I.schema=t.schema,I.schemaEnv=t,t.$async&&(I.$async=!0),this.opts.code.source===!0&&(I.source={validateName:a,validateCode:d,scopeValues:r._values}),this.opts.unevaluated){let{props:u,items:h}=c;I.evaluated={props:u instanceof Tg.Name?void 0:u,items:h instanceof Tg.Name?void 0:h,dynamicProps:u instanceof Tg.Name,dynamicItems:h instanceof Tg.Name},I.source&&(I.source.evaluated=(0,Tg.stringify)(I.evaluated))}return t.validate=I,t}catch(d){throw delete t.validate,delete t.validateName,l&&this.logger.error("Error compiling schema, function code:",l),d}finally{this._compilations.delete(t)}}$l.compileSchema=BK;function uUe(t,A,e){var i;e=(0,Og.resolveUrl)(this.opts.uriResolver,A,e);let n=t.refs[e];if(n)return n;let o=EUe.call(this,t,e);if(o===void 0){let r=(i=t.localRefs)===null||i===void 0?void 0:i[e],{schemaId:s}=this.opts;r&&(o=new VE({schema:r,schemaId:s,root:t,baseId:A}))}if(o!==void 0)return t.refs[e]=hUe.call(this,o)}$l.resolveRef=uUe;function hUe(t){return(0,Og.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:BK.call(this,t)}function Mre(t){for(let A of this._compilations)if(BUe(A,t))return A}$l.getCompilingSchema=Mre;function BUe(t,A){return t.schema===A.schema&&t.root===A.root&&t.baseId===A.baseId}function EUe(t,A){let e;for(;typeof(e=this.refs[A])=="string";)A=e;return e||this.schemas[A]||Rv.call(this,t,A)}function Rv(t,A){let e=this.opts.uriResolver.parse(A),i=(0,Og._getFullPath)(this.opts.uriResolver,e),n=(0,Og.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&i===n)return hK.call(this,e,t);let o=(0,Og.normalizeId)(i),r=this.refs[o]||this.schemas[o];if(typeof r=="string"){let s=Rv.call(this,t,r);return typeof s?.schema!="object"?void 0:hK.call(this,e,s)}if(typeof r?.schema=="object"){if(r.validate||BK.call(this,r),o===(0,Og.normalizeId)(A)){let{schema:s}=r,{schemaId:a}=this.opts,c=s[a];return c&&(n=(0,Og.resolveUrl)(this.opts.uriResolver,n,c)),new VE({schema:s,schemaId:a,root:t,baseId:n})}return hK.call(this,e,r)}}$l.resolveSchema=Rv;var fUe=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function hK(t,{baseId:A,schema:e,root:i}){var n;if(((n=t.fragment)===null||n===void 0?void 0:n[0])!=="/")return;for(let s of t.fragment.slice(1).split("/")){if(typeof e=="boolean")return;let a=e[(0,bre.unescapeFragment)(s)];if(a===void 0)return;e=a;let c=typeof e=="object"&&e[this.opts.schemaId];!fUe.has(s)&&c&&(A=(0,Og.resolveUrl)(this.opts.uriResolver,A,c))}let o;if(typeof e!="boolean"&&e.$ref&&!(0,bre.schemaHasRulesButRef)(e,this.RULES)){let s=(0,Og.resolveUrl)(this.opts.uriResolver,A,e.$ref);o=Rv.call(this,i,s)}let{schemaId:r}=this.opts;if(o=o||new VE({schema:e,schemaId:r,root:i,baseId:A}),o.schema!==o.root.schema)return o}});var Sre=XA((fUA,QUe)=>{QUe.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var fK=XA((QUA,Rre)=>{"use strict";var mUe=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),xre=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function EK(t){let A="",e=0,i=0;for(i=0;i=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102))return"";A+=t[i];break}for(i+=1;i=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102))return"";A+=t[i]}return A}var pUe=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function kre(t){return t.length=0,!0}function wUe(t,A,e){if(t.length){let i=EK(t);if(i!=="")A.push(i);else return e.error=!0,!1;t.length=0}return!0}function yUe(t){let A=0,e={error:!1,address:"",zone:""},i=[],n=[],o=!1,r=!1,s=wUe;for(let a=0;a7){e.error=!0;break}a>0&&t[a-1]===":"&&(o=!0),i.push(":");continue}else if(c==="%"){if(!s(n,i,e))break;s=kre}else{n.push(c);continue}}return n.length&&(s===kre?e.zone=n.join(""):r?i.push(n.join("")):i.push(EK(n))),e.address=i.join(""),e}function _re(t){if(DUe(t,":")<2)return{host:t,isIPV6:!1};let A=yUe(t);if(A.error)return{host:t,isIPV6:!1};{let e=A.address,i=A.address;return A.zone&&(e+="%"+A.zone,i+="%25"+A.zone),{host:e,isIPV6:!0,escapedHost:i}}}function DUe(t,A){let e=0;for(let i=0;i{"use strict";var{isUUID:SUe}=fK(),kUe=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,xUe=["http","https","ws","wss","urn","urn:uuid"];function _Ue(t){return xUe.indexOf(t)!==-1}function QK(t){return t.secure===!0?!0:t.secure===!1?!1:t.scheme?t.scheme.length===3&&(t.scheme[0]==="w"||t.scheme[0]==="W")&&(t.scheme[1]==="s"||t.scheme[1]==="S")&&(t.scheme[2]==="s"||t.scheme[2]==="S"):!1}function Nre(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function Lre(t){let A=String(t.scheme).toLowerCase()==="https";return(t.port===(A?443:80)||t.port==="")&&(t.port=void 0),t.path||(t.path="/"),t}function RUe(t){return t.secure=QK(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function NUe(t){if((t.port===(QK(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[A,e]=t.resourceName.split("?");t.path=A&&A!=="/"?A:void 0,t.query=e,t.resourceName=void 0}return t.fragment=void 0,t}function LUe(t,A){if(!t.path)return t.error="URN can not be parsed",t;let e=t.path.match(kUe);if(e){let i=A.scheme||t.scheme||"urn";t.nid=e[1].toLowerCase(),t.nss=e[2];let n=`${i}:${A.nid||t.nid}`,o=mK(n);t.path=void 0,o&&(t=o.parse(t,A))}else t.error=t.error||"URN can not be parsed.";return t}function FUe(t,A){if(t.nid===void 0)throw new Error("URN without nid cannot be serialized");let e=A.scheme||t.scheme||"urn",i=t.nid.toLowerCase(),n=`${e}:${A.nid||i}`,o=mK(n);o&&(t=o.serialize(t,A));let r=t,s=t.nss;return r.path=`${i||A.nid}:${s}`,A.skipEscape=!0,r}function GUe(t,A){let e=t;return e.uuid=e.nss,e.nss=void 0,!A.tolerant&&(!e.uuid||!SUe(e.uuid))&&(e.error=e.error||"UUID is not valid."),e}function KUe(t){let A=t;return A.nss=(t.uuid||"").toLowerCase(),A}var Fre={scheme:"http",domainHost:!0,parse:Nre,serialize:Lre},UUe={scheme:"https",domainHost:Fre.domainHost,parse:Nre,serialize:Lre},Lv={scheme:"ws",domainHost:!0,parse:RUe,serialize:NUe},TUe={scheme:"wss",domainHost:Lv.domainHost,parse:Lv.parse,serialize:Lv.serialize},OUe={scheme:"urn",parse:LUe,serialize:FUe,skipNormalize:!0},JUe={scheme:"urn:uuid",parse:GUe,serialize:KUe,skipNormalize:!0},Fv={http:Fre,https:UUe,ws:Lv,wss:TUe,urn:OUe,"urn:uuid":JUe};Object.setPrototypeOf(Fv,null);function mK(t){return t&&(Fv[t]||Fv[t.toLowerCase()])||void 0}Gre.exports={wsIsSecure:QK,SCHEMES:Fv,isValidSchemeName:_Ue,getSchemeHandler:mK}});var Ore=XA((pUA,Kv)=>{"use strict";var{normalizeIPv6:YUe,removeDotSegments:E3,recomposeAuthority:HUe,normalizeComponentEncoding:Gv,isIPv4:zUe,nonSimpleDomain:PUe}=fK(),{SCHEMES:jUe,getSchemeHandler:Ure}=Kre();function VUe(t,A){return typeof t=="string"?t=Cd(R2(t,A),A):typeof t=="object"&&(t=R2(Cd(t,A),A)),t}function qUe(t,A,e){let i=e?Object.assign({scheme:"null"},e):{scheme:"null"},n=Tre(R2(t,i),R2(A,i),i,!0);return i.skipEscape=!0,Cd(n,i)}function Tre(t,A,e,i){let n={};return i||(t=R2(Cd(t,e),e),A=R2(Cd(A,e),e)),e=e||{},!e.tolerant&&A.scheme?(n.scheme=A.scheme,n.userinfo=A.userinfo,n.host=A.host,n.port=A.port,n.path=E3(A.path||""),n.query=A.query):(A.userinfo!==void 0||A.host!==void 0||A.port!==void 0?(n.userinfo=A.userinfo,n.host=A.host,n.port=A.port,n.path=E3(A.path||""),n.query=A.query):(A.path?(A.path[0]==="/"?n.path=E3(A.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?n.path="/"+A.path:t.path?n.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+A.path:n.path=A.path,n.path=E3(n.path)),n.query=A.query):(n.path=t.path,A.query!==void 0?n.query=A.query:n.query=t.query),n.userinfo=t.userinfo,n.host=t.host,n.port=t.port),n.scheme=t.scheme),n.fragment=A.fragment,n}function WUe(t,A,e){return typeof t=="string"?(t=unescape(t),t=Cd(Gv(R2(t,e),!0),_A(ae({},e),{skipEscape:!0}))):typeof t=="object"&&(t=Cd(Gv(t,!0),_A(ae({},e),{skipEscape:!0}))),typeof A=="string"?(A=unescape(A),A=Cd(Gv(R2(A,e),!0),_A(ae({},e),{skipEscape:!0}))):typeof A=="object"&&(A=Cd(Gv(A,!0),_A(ae({},e),{skipEscape:!0}))),t.toLowerCase()===A.toLowerCase()}function Cd(t,A){let e={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},i=Object.assign({},A),n=[],o=Ure(i.scheme||e.scheme);o&&o.serialize&&o.serialize(e,i),e.path!==void 0&&(i.skipEscape?e.path=unescape(e.path):(e.path=escape(e.path),e.scheme!==void 0&&(e.path=e.path.split("%3A").join(":")))),i.reference!=="suffix"&&e.scheme&&n.push(e.scheme,":");let r=HUe(e);if(r!==void 0&&(i.reference!=="suffix"&&n.push("//"),n.push(r),e.path&&e.path[0]!=="/"&&n.push("/")),e.path!==void 0){let s=e.path;!i.absolutePath&&(!o||!o.absolutePath)&&(s=E3(s)),r===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),n.push(s)}return e.query!==void 0&&n.push("?",e.query),e.fragment!==void 0&&n.push("#",e.fragment),n.join("")}var ZUe=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function R2(t,A){let e=Object.assign({},A),i={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},n=!1;e.reference==="suffix"&&(e.scheme?t=e.scheme+":"+t:t="//"+t);let o=t.match(ZUe);if(o){if(i.scheme=o[1],i.userinfo=o[3],i.host=o[4],i.port=parseInt(o[5],10),i.path=o[6]||"",i.query=o[7],i.fragment=o[8],isNaN(i.port)&&(i.port=o[5]),i.host)if(zUe(i.host)===!1){let a=YUe(i.host);i.host=a.host.toLowerCase(),n=a.isIPV6}else n=!0;i.scheme===void 0&&i.userinfo===void 0&&i.host===void 0&&i.port===void 0&&i.query===void 0&&!i.path?i.reference="same-document":i.scheme===void 0?i.reference="relative":i.fragment===void 0?i.reference="absolute":i.reference="uri",e.reference&&e.reference!=="suffix"&&e.reference!==i.reference&&(i.error=i.error||"URI is not a "+e.reference+" reference.");let r=Ure(e.scheme||i.scheme);if(!e.unicodeSupport&&(!r||!r.unicodeSupport)&&i.host&&(e.domainHost||r&&r.domainHost)&&n===!1&&PUe(i.host))try{i.host=URL.domainToASCII(i.host.toLowerCase())}catch(s){i.error=i.error||"Host's domain name can not be converted to ASCII: "+s}(!r||r&&!r.skipNormalize)&&(t.indexOf("%")!==-1&&(i.scheme!==void 0&&(i.scheme=unescape(i.scheme)),i.host!==void 0&&(i.host=unescape(i.host))),i.path&&(i.path=escape(unescape(i.path))),i.fragment&&(i.fragment=encodeURI(decodeURIComponent(i.fragment)))),r&&r.parse&&r.parse(i,e)}else i.error=i.error||"URI can not be parsed.";return i}var pK={SCHEMES:jUe,normalize:VUe,resolve:qUe,resolveComponent:Tre,equal:WUe,serialize:Cd,parse:R2};Kv.exports=pK;Kv.exports.default=pK;Kv.exports.fastUri=pK});var Yre=XA(wK=>{"use strict";Object.defineProperty(wK,"__esModule",{value:!0});var Jre=Ore();Jre.code='require("ajv/dist/runtime/uri").default';wK.default=Jre});var Zre=XA(sa=>{"use strict";Object.defineProperty(sa,"__esModule",{value:!0});sa.CodeGen=sa.Name=sa.nil=sa.stringify=sa.str=sa._=sa.KeywordCxt=void 0;var XUe=h3();Object.defineProperty(sa,"KeywordCxt",{enumerable:!0,get:function(){return XUe.KeywordCxt}});var qE=hn();Object.defineProperty(sa,"_",{enumerable:!0,get:function(){return qE._}});Object.defineProperty(sa,"str",{enumerable:!0,get:function(){return qE.str}});Object.defineProperty(sa,"stringify",{enumerable:!0,get:function(){return qE.stringify}});Object.defineProperty(sa,"nil",{enumerable:!0,get:function(){return qE.nil}});Object.defineProperty(sa,"Name",{enumerable:!0,get:function(){return qE.Name}});Object.defineProperty(sa,"CodeGen",{enumerable:!0,get:function(){return qE.CodeGen}});var $Ue=_v(),Vre=B3(),eTe=XG(),f3=Nv(),ATe=hn(),Q3=C3(),Uv=d3(),DK=eo(),Hre=Sre(),tTe=Yre(),qre=(t,A)=>new RegExp(t,A);qre.code="new RegExp";var iTe=["removeAdditional","useDefaults","coerceTypes"],nTe=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),oTe={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},rTe={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},zre=200;function sTe(t){var A,e,i,n,o,r,s,a,c,l,d,C,I,u,h,B,f,b,k,S,w,_,K,J,O;let H=t.strict,V=(A=t.code)===null||A===void 0?void 0:A.optimize,Z=V===!0||V===void 0?1:V||0,ye=(i=(e=t.code)===null||e===void 0?void 0:e.regExp)!==null&&i!==void 0?i:qre,P=(n=t.uriResolver)!==null&&n!==void 0?n:tTe.default;return{strictSchema:(r=(o=t.strictSchema)!==null&&o!==void 0?o:H)!==null&&r!==void 0?r:!0,strictNumbers:(a=(s=t.strictNumbers)!==null&&s!==void 0?s:H)!==null&&a!==void 0?a:!0,strictTypes:(l=(c=t.strictTypes)!==null&&c!==void 0?c:H)!==null&&l!==void 0?l:"log",strictTuples:(C=(d=t.strictTuples)!==null&&d!==void 0?d:H)!==null&&C!==void 0?C:"log",strictRequired:(u=(I=t.strictRequired)!==null&&I!==void 0?I:H)!==null&&u!==void 0?u:!1,code:t.code?_A(ae({},t.code),{optimize:Z,regExp:ye}):{optimize:Z,regExp:ye},loopRequired:(h=t.loopRequired)!==null&&h!==void 0?h:zre,loopEnum:(B=t.loopEnum)!==null&&B!==void 0?B:zre,meta:(f=t.meta)!==null&&f!==void 0?f:!0,messages:(b=t.messages)!==null&&b!==void 0?b:!0,inlineRefs:(k=t.inlineRefs)!==null&&k!==void 0?k:!0,schemaId:(S=t.schemaId)!==null&&S!==void 0?S:"$id",addUsedSchema:(w=t.addUsedSchema)!==null&&w!==void 0?w:!0,validateSchema:(_=t.validateSchema)!==null&&_!==void 0?_:!0,validateFormats:(K=t.validateFormats)!==null&&K!==void 0?K:!0,unicodeRegExp:(J=t.unicodeRegExp)!==null&&J!==void 0?J:!0,int32range:(O=t.int32range)!==null&&O!==void 0?O:!0,uriResolver:P}}var m3=class{constructor(A={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,A=this.opts=ae(ae({},A),sTe(A));let{es5:e,lines:i}=this.opts.code;this.scope=new ATe.ValueScope({scope:{},prefixes:nTe,es5:e,lines:i}),this.logger=CTe(A.logger);let n=A.validateFormats;A.validateFormats=!1,this.RULES=(0,eTe.getRules)(),Pre.call(this,oTe,A,"NOT SUPPORTED"),Pre.call(this,rTe,A,"DEPRECATED","warn"),this._metaOpts=gTe.call(this),A.formats&&cTe.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),A.keywords&&lTe.call(this,A.keywords),typeof A.meta=="object"&&this.addMetaSchema(A.meta),aTe.call(this),A.validateFormats=n}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:A,meta:e,schemaId:i}=this.opts,n=Hre;i==="id"&&(n=ae({},Hre),n.id=n.$id,delete n.$id),e&&A&&this.addMetaSchema(n,n[i],!1)}defaultMeta(){let{meta:A,schemaId:e}=this.opts;return this.opts.defaultMeta=typeof A=="object"?A[e]||A:void 0}validate(A,e){let i;if(typeof A=="string"){if(i=this.getSchema(A),!i)throw new Error(`no schema with key or ref "${A}"`)}else i=this.compile(A);let n=i(e);return"$async"in i||(this.errors=i.errors),n}compile(A,e){let i=this._addSchema(A,e);return i.validate||this._compileSchemaEnv(i)}compileAsync(A,e){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:i}=this.opts;return n.call(this,A,e);function n(l,d){return Ci(this,null,function*(){yield o.call(this,l.$schema);let C=this._addSchema(l,d);return C.validate||r.call(this,C)})}function o(l){return Ci(this,null,function*(){l&&!this.getSchema(l)&&(yield n.call(this,{$ref:l},!0))})}function r(l){return Ci(this,null,function*(){try{return this._compileSchemaEnv(l)}catch(d){if(!(d instanceof Vre.default))throw d;return s.call(this,d),yield a.call(this,d.missingSchema),r.call(this,l)}})}function s({missingSchema:l,missingRef:d}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${d} cannot be resolved`)}function a(l){return Ci(this,null,function*(){let d=yield c.call(this,l);this.refs[l]||(yield o.call(this,d.$schema)),this.refs[l]||this.addSchema(d,l,e)})}function c(l){return Ci(this,null,function*(){let d=this._loading[l];if(d)return d;try{return yield this._loading[l]=i(l)}finally{delete this._loading[l]}})}}addSchema(A,e,i,n=this.opts.validateSchema){if(Array.isArray(A)){for(let r of A)this.addSchema(r,void 0,i,n);return this}let o;if(typeof A=="object"){let{schemaId:r}=this.opts;if(o=A[r],o!==void 0&&typeof o!="string")throw new Error(`schema ${r} must be string`)}return e=(0,Q3.normalizeId)(e||o),this._checkUnique(e),this.schemas[e]=this._addSchema(A,i,e,n,!0),this}addMetaSchema(A,e,i=this.opts.validateSchema){return this.addSchema(A,e,!0,i),this}validateSchema(A,e){if(typeof A=="boolean")return!0;let i;if(i=A.$schema,i!==void 0&&typeof i!="string")throw new Error("$schema must be a string");if(i=i||this.opts.defaultMeta||this.defaultMeta(),!i)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let n=this.validate(i,A);if(!n&&e){let o="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(o);else throw new Error(o)}return n}getSchema(A){let e;for(;typeof(e=jre.call(this,A))=="string";)A=e;if(e===void 0){let{schemaId:i}=this.opts,n=new f3.SchemaEnv({schema:{},schemaId:i});if(e=f3.resolveSchema.call(this,n,A),!e)return;this.refs[A]=e}return e.validate||this._compileSchemaEnv(e)}removeSchema(A){if(A instanceof RegExp)return this._removeAllSchemas(this.schemas,A),this._removeAllSchemas(this.refs,A),this;switch(typeof A){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let e=jre.call(this,A);return typeof e=="object"&&this._cache.delete(e.schema),delete this.schemas[A],delete this.refs[A],this}case"object":{let e=A;this._cache.delete(e);let i=A[this.opts.schemaId];return i&&(i=(0,Q3.normalizeId)(i),delete this.schemas[i],delete this.refs[i]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(A){for(let e of A)this.addKeyword(e);return this}addKeyword(A,e){let i;if(typeof A=="string")i=A,typeof e=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),e.keyword=i);else if(typeof A=="object"&&e===void 0){if(e=A,i=e.keyword,Array.isArray(i)&&!i.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(uTe.call(this,i,e),!e)return(0,DK.eachItem)(i,o=>yK.call(this,o)),this;BTe.call(this,e);let n=_A(ae({},e),{type:(0,Uv.getJSONTypes)(e.type),schemaType:(0,Uv.getJSONTypes)(e.schemaType)});return(0,DK.eachItem)(i,n.type.length===0?o=>yK.call(this,o,n):o=>n.type.forEach(r=>yK.call(this,o,n,r))),this}getKeyword(A){let e=this.RULES.all[A];return typeof e=="object"?e.definition:!!e}removeKeyword(A){let{RULES:e}=this;delete e.keywords[A],delete e.all[A];for(let i of e.rules){let n=i.rules.findIndex(o=>o.keyword===A);n>=0&&i.rules.splice(n,1)}return this}addFormat(A,e){return typeof e=="string"&&(e=new RegExp(e)),this.formats[A]=e,this}errorsText(A=this.errors,{separator:e=", ",dataVar:i="data"}={}){return!A||A.length===0?"No errors":A.map(n=>`${i}${n.instancePath} ${n.message}`).reduce((n,o)=>n+e+o)}$dataMetaSchema(A,e){let i=this.RULES.all;A=JSON.parse(JSON.stringify(A));for(let n of e){let o=n.split("/").slice(1),r=A;for(let s of o)r=r[s];for(let s in i){let a=i[s];if(typeof a!="object")continue;let{$data:c}=a.definition,l=r[s];c&&l&&(r[s]=Wre(l))}}return A}_removeAllSchemas(A,e){for(let i in A){let n=A[i];(!e||e.test(i))&&(typeof n=="string"?delete A[i]:n&&!n.meta&&(this._cache.delete(n.schema),delete A[i]))}}_addSchema(A,e,i,n=this.opts.validateSchema,o=this.opts.addUsedSchema){let r,{schemaId:s}=this.opts;if(typeof A=="object")r=A[s];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof A!="boolean")throw new Error("schema must be object or boolean")}let a=this._cache.get(A);if(a!==void 0)return a;i=(0,Q3.normalizeId)(r||i);let c=Q3.getSchemaRefs.call(this,A,i);return a=new f3.SchemaEnv({schema:A,schemaId:s,meta:e,baseId:i,localRefs:c}),this._cache.set(a.schema,a),o&&!i.startsWith("#")&&(i&&this._checkUnique(i),this.refs[i]=a),n&&this.validateSchema(A,!0),a}_checkUnique(A){if(this.schemas[A]||this.refs[A])throw new Error(`schema with key or id "${A}" already exists`)}_compileSchemaEnv(A){if(A.meta?this._compileMetaSchema(A):f3.compileSchema.call(this,A),!A.validate)throw new Error("ajv implementation error");return A.validate}_compileMetaSchema(A){let e=this.opts;this.opts=this._metaOpts;try{f3.compileSchema.call(this,A)}finally{this.opts=e}}};m3.ValidationError=$Ue.default;m3.MissingRefError=Vre.default;sa.default=m3;function Pre(t,A,e,i="error"){for(let n in t){let o=n;o in A&&this.logger[i](`${e}: option ${n}. ${t[o]}`)}}function jre(t){return t=(0,Q3.normalizeId)(t),this.schemas[t]||this.refs[t]}function aTe(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let A in t)this.addSchema(t[A],A)}function cTe(){for(let t in this.opts.formats){let A=this.opts.formats[t];A&&this.addFormat(t,A)}}function lTe(t){if(Array.isArray(t)){this.addVocabulary(t);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let A in t){let e=t[A];e.keyword||(e.keyword=A),this.addKeyword(e)}}function gTe(){let t=ae({},this.opts);for(let A of iTe)delete t[A];return t}var dTe={log(){},warn(){},error(){}};function CTe(t){if(t===!1)return dTe;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var ITe=/^[a-z_$][a-z0-9_$:-]*$/i;function uTe(t,A){let{RULES:e}=this;if((0,DK.eachItem)(t,i=>{if(e.keywords[i])throw new Error(`Keyword ${i} is already defined`);if(!ITe.test(i))throw new Error(`Keyword ${i} has invalid name`)}),!!A&&A.$data&&!("code"in A||"validate"in A))throw new Error('$data keyword must have "code" or "validate" function')}function yK(t,A,e){var i;let n=A?.post;if(e&&n)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:o}=this,r=n?o.post:o.rules.find(({type:a})=>a===e);if(r||(r={type:e,rules:[]},o.rules.push(r)),o.keywords[t]=!0,!A)return;let s={keyword:t,definition:_A(ae({},A),{type:(0,Uv.getJSONTypes)(A.type),schemaType:(0,Uv.getJSONTypes)(A.schemaType)})};A.before?hTe.call(this,r,s,A.before):r.rules.push(s),o.all[t]=s,(i=A.implements)===null||i===void 0||i.forEach(a=>this.addKeyword(a))}function hTe(t,A,e){let i=t.rules.findIndex(n=>n.keyword===e);i>=0?t.rules.splice(i,0,A):(t.rules.push(A),this.logger.warn(`rule ${e} is not defined`))}function BTe(t){let{metaSchema:A}=t;A!==void 0&&(t.$data&&this.opts.$data&&(A=Wre(A)),t.validateSchema=this.compile(A,!0))}var ETe={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Wre(t){return{anyOf:[t,ETe]}}});var Xre=XA(vK=>{"use strict";Object.defineProperty(vK,"__esModule",{value:!0});var fTe={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};vK.default=fTe});var tse=XA(ku=>{"use strict";Object.defineProperty(ku,"__esModule",{value:!0});ku.callRef=ku.getValidate=void 0;var QTe=B3(),$re=Xl(),Nc=hn(),WE=x2(),ese=Nv(),Tv=eo(),mTe={keyword:"$ref",schemaType:"string",code(t){let{gen:A,schema:e,it:i}=t,{baseId:n,schemaEnv:o,validateName:r,opts:s,self:a}=i,{root:c}=o;if((e==="#"||e==="#/")&&n===c.baseId)return d();let l=ese.resolveRef.call(a,c,n,e);if(l===void 0)throw new QTe.default(i.opts.uriResolver,n,e);if(l instanceof ese.SchemaEnv)return C(l);return I(l);function d(){if(o===c)return Ov(t,r,o,o.$async);let u=A.scopeValue("root",{ref:c});return Ov(t,(0,Nc._)`${u}.validate`,c,c.$async)}function C(u){let h=Ase(t,u);Ov(t,h,u,u.$async)}function I(u){let h=A.scopeValue("schema",s.code.source===!0?{ref:u,code:(0,Nc.stringify)(u)}:{ref:u}),B=A.name("valid"),f=t.subschema({schema:u,dataTypes:[],schemaPath:Nc.nil,topSchemaRef:h,errSchemaPath:e},B);t.mergeEvaluated(f),t.ok(B)}}};function Ase(t,A){let{gen:e}=t;return A.validate?e.scopeValue("validate",{ref:A.validate}):(0,Nc._)`${e.scopeValue("wrapper",{ref:A})}.validate`}ku.getValidate=Ase;function Ov(t,A,e,i){let{gen:n,it:o}=t,{allErrors:r,schemaEnv:s,opts:a}=o,c=a.passContext?WE.default.this:Nc.nil;i?l():d();function l(){if(!s.$async)throw new Error("async schema referenced by sync schema");let u=n.let("valid");n.try(()=>{n.code((0,Nc._)`await ${(0,$re.callValidateCode)(t,A,c)}`),I(A),r||n.assign(u,!0)},h=>{n.if((0,Nc._)`!(${h} instanceof ${o.ValidationError})`,()=>n.throw(h)),C(h),r||n.assign(u,!1)}),t.ok(u)}function d(){t.result((0,$re.callValidateCode)(t,A,c),()=>I(A),()=>C(A))}function C(u){let h=(0,Nc._)`${u}.errors`;n.assign(WE.default.vErrors,(0,Nc._)`${WE.default.vErrors} === null ? ${h} : ${WE.default.vErrors}.concat(${h})`),n.assign(WE.default.errors,(0,Nc._)`${WE.default.vErrors}.length`)}function I(u){var h;if(!o.opts.unevaluated)return;let B=(h=e?.validate)===null||h===void 0?void 0:h.evaluated;if(o.props!==!0)if(B&&!B.dynamicProps)B.props!==void 0&&(o.props=Tv.mergeEvaluated.props(n,B.props,o.props));else{let f=n.var("props",(0,Nc._)`${u}.evaluated.props`);o.props=Tv.mergeEvaluated.props(n,f,o.props,Nc.Name)}if(o.items!==!0)if(B&&!B.dynamicItems)B.items!==void 0&&(o.items=Tv.mergeEvaluated.items(n,B.items,o.items));else{let f=n.var("items",(0,Nc._)`${u}.evaluated.items`);o.items=Tv.mergeEvaluated.items(n,f,o.items,Nc.Name)}}}ku.callRef=Ov;ku.default=mTe});var ise=XA(bK=>{"use strict";Object.defineProperty(bK,"__esModule",{value:!0});var pTe=Xre(),wTe=tse(),yTe=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",pTe.default,wTe.default];bK.default=yTe});var nse=XA(MK=>{"use strict";Object.defineProperty(MK,"__esModule",{value:!0});var Jv=hn(),wC=Jv.operators,Yv={maximum:{okStr:"<=",ok:wC.LTE,fail:wC.GT},minimum:{okStr:">=",ok:wC.GTE,fail:wC.LT},exclusiveMaximum:{okStr:"<",ok:wC.LT,fail:wC.GTE},exclusiveMinimum:{okStr:">",ok:wC.GT,fail:wC.LTE}},DTe={message:({keyword:t,schemaCode:A})=>(0,Jv.str)`must be ${Yv[t].okStr} ${A}`,params:({keyword:t,schemaCode:A})=>(0,Jv._)`{comparison: ${Yv[t].okStr}, limit: ${A}}`},vTe={keyword:Object.keys(Yv),type:"number",schemaType:"number",$data:!0,error:DTe,code(t){let{keyword:A,data:e,schemaCode:i}=t;t.fail$data((0,Jv._)`${e} ${Yv[A].fail} ${i} || isNaN(${e})`)}};MK.default=vTe});var ose=XA(SK=>{"use strict";Object.defineProperty(SK,"__esModule",{value:!0});var p3=hn(),bTe={message:({schemaCode:t})=>(0,p3.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,p3._)`{multipleOf: ${t}}`},MTe={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:bTe,code(t){let{gen:A,data:e,schemaCode:i,it:n}=t,o=n.opts.multipleOfPrecision,r=A.let("res"),s=o?(0,p3._)`Math.abs(Math.round(${r}) - ${r}) > 1e-${o}`:(0,p3._)`${r} !== parseInt(${r})`;t.fail$data((0,p3._)`(${i} === 0 || (${r} = ${e}/${i}, ${s}))`)}};SK.default=MTe});var sse=XA(kK=>{"use strict";Object.defineProperty(kK,"__esModule",{value:!0});function rse(t){let A=t.length,e=0,i=0,n;for(;i=55296&&n<=56319&&i{"use strict";Object.defineProperty(xK,"__esModule",{value:!0});var xu=hn(),STe=eo(),kTe=sse(),xTe={message({keyword:t,schemaCode:A}){let e=t==="maxLength"?"more":"fewer";return(0,xu.str)`must NOT have ${e} than ${A} characters`},params:({schemaCode:t})=>(0,xu._)`{limit: ${t}}`},_Te={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:xTe,code(t){let{keyword:A,data:e,schemaCode:i,it:n}=t,o=A==="maxLength"?xu.operators.GT:xu.operators.LT,r=n.opts.unicode===!1?(0,xu._)`${e}.length`:(0,xu._)`${(0,STe.useFunc)(t.gen,kTe.default)}(${e})`;t.fail$data((0,xu._)`${r} ${o} ${i}`)}};xK.default=_Te});var cse=XA(_K=>{"use strict";Object.defineProperty(_K,"__esModule",{value:!0});var RTe=Xl(),Hv=hn(),NTe={message:({schemaCode:t})=>(0,Hv.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,Hv._)`{pattern: ${t}}`},LTe={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:NTe,code(t){let{data:A,$data:e,schema:i,schemaCode:n,it:o}=t,r=o.opts.unicodeRegExp?"u":"",s=e?(0,Hv._)`(new RegExp(${n}, ${r}))`:(0,RTe.usePattern)(t,i);t.fail$data((0,Hv._)`!${s}.test(${A})`)}};_K.default=LTe});var lse=XA(RK=>{"use strict";Object.defineProperty(RK,"__esModule",{value:!0});var w3=hn(),FTe={message({keyword:t,schemaCode:A}){let e=t==="maxProperties"?"more":"fewer";return(0,w3.str)`must NOT have ${e} than ${A} properties`},params:({schemaCode:t})=>(0,w3._)`{limit: ${t}}`},GTe={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:FTe,code(t){let{keyword:A,data:e,schemaCode:i}=t,n=A==="maxProperties"?w3.operators.GT:w3.operators.LT;t.fail$data((0,w3._)`Object.keys(${e}).length ${n} ${i}`)}};RK.default=GTe});var gse=XA(NK=>{"use strict";Object.defineProperty(NK,"__esModule",{value:!0});var y3=Xl(),D3=hn(),KTe=eo(),UTe={message:({params:{missingProperty:t}})=>(0,D3.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,D3._)`{missingProperty: ${t}}`},TTe={keyword:"required",type:"object",schemaType:"array",$data:!0,error:UTe,code(t){let{gen:A,schema:e,schemaCode:i,data:n,$data:o,it:r}=t,{opts:s}=r;if(!o&&e.length===0)return;let a=e.length>=s.loopRequired;if(r.allErrors?c():l(),s.strictRequired){let I=t.parentSchema.properties,{definedProperties:u}=t.it;for(let h of e)if(I?.[h]===void 0&&!u.has(h)){let B=r.schemaEnv.baseId+r.errSchemaPath,f=`required property "${h}" is not defined at "${B}" (strictRequired)`;(0,KTe.checkStrictMode)(r,f,r.opts.strictRequired)}}function c(){if(a||o)t.block$data(D3.nil,d);else for(let I of e)(0,y3.checkReportMissingProp)(t,I)}function l(){let I=A.let("missing");if(a||o){let u=A.let("valid",!0);t.block$data(u,()=>C(I,u)),t.ok(u)}else A.if((0,y3.checkMissingProp)(t,e,I)),(0,y3.reportMissingProp)(t,I),A.else()}function d(){A.forOf("prop",i,I=>{t.setParams({missingProperty:I}),A.if((0,y3.noPropertyInData)(A,n,I,s.ownProperties),()=>t.error())})}function C(I,u){t.setParams({missingProperty:I}),A.forOf(I,i,()=>{A.assign(u,(0,y3.propertyInData)(A,n,I,s.ownProperties)),A.if((0,D3.not)(u),()=>{t.error(),A.break()})},D3.nil)}}};NK.default=TTe});var dse=XA(LK=>{"use strict";Object.defineProperty(LK,"__esModule",{value:!0});var v3=hn(),OTe={message({keyword:t,schemaCode:A}){let e=t==="maxItems"?"more":"fewer";return(0,v3.str)`must NOT have ${e} than ${A} items`},params:({schemaCode:t})=>(0,v3._)`{limit: ${t}}`},JTe={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:OTe,code(t){let{keyword:A,data:e,schemaCode:i}=t,n=A==="maxItems"?v3.operators.GT:v3.operators.LT;t.fail$data((0,v3._)`${e}.length ${n} ${i}`)}};LK.default=JTe});var zv=XA(FK=>{"use strict";Object.defineProperty(FK,"__esModule",{value:!0});var Cse=rK();Cse.code='require("ajv/dist/runtime/equal").default';FK.default=Cse});var Ise=XA(KK=>{"use strict";Object.defineProperty(KK,"__esModule",{value:!0});var GK=d3(),aa=hn(),YTe=eo(),HTe=zv(),zTe={message:({params:{i:t,j:A}})=>(0,aa.str)`must NOT have duplicate items (items ## ${A} and ${t} are identical)`,params:({params:{i:t,j:A}})=>(0,aa._)`{i: ${t}, j: ${A}}`},PTe={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:zTe,code(t){let{gen:A,data:e,$data:i,schema:n,parentSchema:o,schemaCode:r,it:s}=t;if(!i&&!n)return;let a=A.let("valid"),c=o.items?(0,GK.getSchemaTypes)(o.items):[];t.block$data(a,l,(0,aa._)`${r} === false`),t.ok(a);function l(){let u=A.let("i",(0,aa._)`${e}.length`),h=A.let("j");t.setParams({i:u,j:h}),A.assign(a,!0),A.if((0,aa._)`${u} > 1`,()=>(d()?C:I)(u,h))}function d(){return c.length>0&&!c.some(u=>u==="object"||u==="array")}function C(u,h){let B=A.name("item"),f=(0,GK.checkDataTypes)(c,B,s.opts.strictNumbers,GK.DataType.Wrong),b=A.const("indices",(0,aa._)`{}`);A.for((0,aa._)`;${u}--;`,()=>{A.let(B,(0,aa._)`${e}[${u}]`),A.if(f,(0,aa._)`continue`),c.length>1&&A.if((0,aa._)`typeof ${B} == "string"`,(0,aa._)`${B} += "_"`),A.if((0,aa._)`typeof ${b}[${B}] == "number"`,()=>{A.assign(h,(0,aa._)`${b}[${B}]`),t.error(),A.assign(a,!1).break()}).code((0,aa._)`${b}[${B}] = ${u}`)})}function I(u,h){let B=(0,YTe.useFunc)(A,HTe.default),f=A.name("outer");A.label(f).for((0,aa._)`;${u}--;`,()=>A.for((0,aa._)`${h} = ${u}; ${h}--;`,()=>A.if((0,aa._)`${B}(${e}[${u}], ${e}[${h}])`,()=>{t.error(),A.assign(a,!1).break(f)})))}}};KK.default=PTe});var use=XA(TK=>{"use strict";Object.defineProperty(TK,"__esModule",{value:!0});var UK=hn(),jTe=eo(),VTe=zv(),qTe={message:"must be equal to constant",params:({schemaCode:t})=>(0,UK._)`{allowedValue: ${t}}`},WTe={keyword:"const",$data:!0,error:qTe,code(t){let{gen:A,data:e,$data:i,schemaCode:n,schema:o}=t;i||o&&typeof o=="object"?t.fail$data((0,UK._)`!${(0,jTe.useFunc)(A,VTe.default)}(${e}, ${n})`):t.fail((0,UK._)`${o} !== ${e}`)}};TK.default=WTe});var hse=XA(OK=>{"use strict";Object.defineProperty(OK,"__esModule",{value:!0});var b3=hn(),ZTe=eo(),XTe=zv(),$Te={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,b3._)`{allowedValues: ${t}}`},eOe={keyword:"enum",schemaType:"array",$data:!0,error:$Te,code(t){let{gen:A,data:e,$data:i,schema:n,schemaCode:o,it:r}=t;if(!i&&n.length===0)throw new Error("enum must have non-empty array");let s=n.length>=r.opts.loopEnum,a,c=()=>a??(a=(0,ZTe.useFunc)(A,XTe.default)),l;if(s||i)l=A.let("valid"),t.block$data(l,d);else{if(!Array.isArray(n))throw new Error("ajv implementation error");let I=A.const("vSchema",o);l=(0,b3.or)(...n.map((u,h)=>C(I,h)))}t.pass(l);function d(){A.assign(l,!1),A.forOf("v",o,I=>A.if((0,b3._)`${c()}(${e}, ${I})`,()=>A.assign(l,!0).break()))}function C(I,u){let h=n[u];return typeof h=="object"&&h!==null?(0,b3._)`${c()}(${e}, ${I}[${u}])`:(0,b3._)`${e} === ${h}`}}};OK.default=eOe});var Bse=XA(JK=>{"use strict";Object.defineProperty(JK,"__esModule",{value:!0});var AOe=nse(),tOe=ose(),iOe=ase(),nOe=cse(),oOe=lse(),rOe=gse(),sOe=dse(),aOe=Ise(),cOe=use(),lOe=hse(),gOe=[AOe.default,tOe.default,iOe.default,nOe.default,oOe.default,rOe.default,sOe.default,aOe.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},cOe.default,lOe.default];JK.default=gOe});var HK=XA(M3=>{"use strict";Object.defineProperty(M3,"__esModule",{value:!0});M3.validateAdditionalItems=void 0;var _u=hn(),YK=eo(),dOe={message:({params:{len:t}})=>(0,_u.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,_u._)`{limit: ${t}}`},COe={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:dOe,code(t){let{parentSchema:A,it:e}=t,{items:i}=A;if(!Array.isArray(i)){(0,YK.checkStrictMode)(e,'"additionalItems" is ignored when "items" is not an array of schemas');return}Ese(t,i)}};function Ese(t,A){let{gen:e,schema:i,data:n,keyword:o,it:r}=t;r.items=!0;let s=e.const("len",(0,_u._)`${n}.length`);if(i===!1)t.setParams({len:A.length}),t.pass((0,_u._)`${s} <= ${A.length}`);else if(typeof i=="object"&&!(0,YK.alwaysValidSchema)(r,i)){let c=e.var("valid",(0,_u._)`${s} <= ${A.length}`);e.if((0,_u.not)(c),()=>a(c)),t.ok(c)}function a(c){e.forRange("i",A.length,s,l=>{t.subschema({keyword:o,dataProp:l,dataPropType:YK.Type.Num},c),r.allErrors||e.if((0,_u.not)(c),()=>e.break())})}}M3.validateAdditionalItems=Ese;M3.default=COe});var zK=XA(S3=>{"use strict";Object.defineProperty(S3,"__esModule",{value:!0});S3.validateTuple=void 0;var fse=hn(),Pv=eo(),IOe=Xl(),uOe={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:A,it:e}=t;if(Array.isArray(A))return Qse(t,"additionalItems",A);e.items=!0,!(0,Pv.alwaysValidSchema)(e,A)&&t.ok((0,IOe.validateArray)(t))}};function Qse(t,A,e=t.schema){let{gen:i,parentSchema:n,data:o,keyword:r,it:s}=t;l(n),s.opts.unevaluated&&e.length&&s.items!==!0&&(s.items=Pv.mergeEvaluated.items(i,e.length,s.items));let a=i.name("valid"),c=i.const("len",(0,fse._)`${o}.length`);e.forEach((d,C)=>{(0,Pv.alwaysValidSchema)(s,d)||(i.if((0,fse._)`${c} > ${C}`,()=>t.subschema({keyword:r,schemaProp:C,dataProp:C},a)),t.ok(a))});function l(d){let{opts:C,errSchemaPath:I}=s,u=e.length,h=u===d.minItems&&(u===d.maxItems||d[A]===!1);if(C.strictTuples&&!h){let B=`"${r}" is ${u}-tuple, but minItems or maxItems/${A} are not specified or different at path "${I}"`;(0,Pv.checkStrictMode)(s,B,C.strictTuples)}}}S3.validateTuple=Qse;S3.default=uOe});var mse=XA(PK=>{"use strict";Object.defineProperty(PK,"__esModule",{value:!0});var hOe=zK(),BOe={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,hOe.validateTuple)(t,"items")};PK.default=BOe});var wse=XA(jK=>{"use strict";Object.defineProperty(jK,"__esModule",{value:!0});var pse=hn(),EOe=eo(),fOe=Xl(),QOe=HK(),mOe={message:({params:{len:t}})=>(0,pse.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,pse._)`{limit: ${t}}`},pOe={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:mOe,code(t){let{schema:A,parentSchema:e,it:i}=t,{prefixItems:n}=e;i.items=!0,!(0,EOe.alwaysValidSchema)(i,A)&&(n?(0,QOe.validateAdditionalItems)(t,n):t.ok((0,fOe.validateArray)(t)))}};jK.default=pOe});var yse=XA(VK=>{"use strict";Object.defineProperty(VK,"__esModule",{value:!0});var eg=hn(),jv=eo(),wOe={message:({params:{min:t,max:A}})=>A===void 0?(0,eg.str)`must contain at least ${t} valid item(s)`:(0,eg.str)`must contain at least ${t} and no more than ${A} valid item(s)`,params:({params:{min:t,max:A}})=>A===void 0?(0,eg._)`{minContains: ${t}}`:(0,eg._)`{minContains: ${t}, maxContains: ${A}}`},yOe={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:wOe,code(t){let{gen:A,schema:e,parentSchema:i,data:n,it:o}=t,r,s,{minContains:a,maxContains:c}=i;o.opts.next?(r=a===void 0?1:a,s=c):r=1;let l=A.const("len",(0,eg._)`${n}.length`);if(t.setParams({min:r,max:s}),s===void 0&&r===0){(0,jv.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&r>s){(0,jv.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,jv.alwaysValidSchema)(o,e)){let h=(0,eg._)`${l} >= ${r}`;s!==void 0&&(h=(0,eg._)`${h} && ${l} <= ${s}`),t.pass(h);return}o.items=!0;let d=A.name("valid");s===void 0&&r===1?I(d,()=>A.if(d,()=>A.break())):r===0?(A.let(d,!0),s!==void 0&&A.if((0,eg._)`${n}.length > 0`,C)):(A.let(d,!1),C()),t.result(d,()=>t.reset());function C(){let h=A.name("_valid"),B=A.let("count",0);I(h,()=>A.if(h,()=>u(B)))}function I(h,B){A.forRange("i",0,l,f=>{t.subschema({keyword:"contains",dataProp:f,dataPropType:jv.Type.Num,compositeRule:!0},h),B()})}function u(h){A.code((0,eg._)`${h}++`),s===void 0?A.if((0,eg._)`${h} >= ${r}`,()=>A.assign(d,!0).break()):(A.if((0,eg._)`${h} > ${s}`,()=>A.assign(d,!1).break()),r===1?A.assign(d,!0):A.if((0,eg._)`${h} >= ${r}`,()=>A.assign(d,!0)))}}};VK.default=yOe});var bse=XA(Id=>{"use strict";Object.defineProperty(Id,"__esModule",{value:!0});Id.validateSchemaDeps=Id.validatePropertyDeps=Id.error=void 0;var qK=hn(),DOe=eo(),k3=Xl();Id.error={message:({params:{property:t,depsCount:A,deps:e}})=>{let i=A===1?"property":"properties";return(0,qK.str)`must have ${i} ${e} when property ${t} is present`},params:({params:{property:t,depsCount:A,deps:e,missingProperty:i}})=>(0,qK._)`{property: ${t}, + missingProperty: ${i}, + depsCount: ${A}, + deps: ${e}}`};var vOe={keyword:"dependencies",type:"object",schemaType:"object",error:Id.error,code(t){let[A,e]=bOe(t);Dse(t,A),vse(t,e)}};function bOe({schema:t}){let A={},e={};for(let i in t){if(i==="__proto__")continue;let n=Array.isArray(t[i])?A:e;n[i]=t[i]}return[A,e]}function Dse(t,A=t.schema){let{gen:e,data:i,it:n}=t;if(Object.keys(A).length===0)return;let o=e.let("missing");for(let r in A){let s=A[r];if(s.length===0)continue;let a=(0,k3.propertyInData)(e,i,r,n.opts.ownProperties);t.setParams({property:r,depsCount:s.length,deps:s.join(", ")}),n.allErrors?e.if(a,()=>{for(let c of s)(0,k3.checkReportMissingProp)(t,c)}):(e.if((0,qK._)`${a} && (${(0,k3.checkMissingProp)(t,s,o)})`),(0,k3.reportMissingProp)(t,o),e.else())}}Id.validatePropertyDeps=Dse;function vse(t,A=t.schema){let{gen:e,data:i,keyword:n,it:o}=t,r=e.name("valid");for(let s in A)(0,DOe.alwaysValidSchema)(o,A[s])||(e.if((0,k3.propertyInData)(e,i,s,o.opts.ownProperties),()=>{let a=t.subschema({keyword:n,schemaProp:s},r);t.mergeValidEvaluated(a,r)},()=>e.var(r,!0)),t.ok(r))}Id.validateSchemaDeps=vse;Id.default=vOe});var Sse=XA(WK=>{"use strict";Object.defineProperty(WK,"__esModule",{value:!0});var Mse=hn(),MOe=eo(),SOe={message:"property name must be valid",params:({params:t})=>(0,Mse._)`{propertyName: ${t.propertyName}}`},kOe={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:SOe,code(t){let{gen:A,schema:e,data:i,it:n}=t;if((0,MOe.alwaysValidSchema)(n,e))return;let o=A.name("valid");A.forIn("key",i,r=>{t.setParams({propertyName:r}),t.subschema({keyword:"propertyNames",data:r,dataTypes:["string"],propertyName:r,compositeRule:!0},o),A.if((0,Mse.not)(o),()=>{t.error(!0),n.allErrors||A.break()})}),t.ok(o)}};WK.default=kOe});var XK=XA(ZK=>{"use strict";Object.defineProperty(ZK,"__esModule",{value:!0});var Vv=Xl(),Jg=hn(),xOe=x2(),qv=eo(),_Oe={message:"must NOT have additional properties",params:({params:t})=>(0,Jg._)`{additionalProperty: ${t.additionalProperty}}`},ROe={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:_Oe,code(t){let{gen:A,schema:e,parentSchema:i,data:n,errsCount:o,it:r}=t;if(!o)throw new Error("ajv implementation error");let{allErrors:s,opts:a}=r;if(r.props=!0,a.removeAdditional!=="all"&&(0,qv.alwaysValidSchema)(r,e))return;let c=(0,Vv.allSchemaProperties)(i.properties),l=(0,Vv.allSchemaProperties)(i.patternProperties);d(),t.ok((0,Jg._)`${o} === ${xOe.default.errors}`);function d(){A.forIn("key",n,B=>{!c.length&&!l.length?u(B):A.if(C(B),()=>u(B))})}function C(B){let f;if(c.length>8){let b=(0,qv.schemaRefOrVal)(r,i.properties,"properties");f=(0,Vv.isOwnProperty)(A,b,B)}else c.length?f=(0,Jg.or)(...c.map(b=>(0,Jg._)`${B} === ${b}`)):f=Jg.nil;return l.length&&(f=(0,Jg.or)(f,...l.map(b=>(0,Jg._)`${(0,Vv.usePattern)(t,b)}.test(${B})`))),(0,Jg.not)(f)}function I(B){A.code((0,Jg._)`delete ${n}[${B}]`)}function u(B){if(a.removeAdditional==="all"||a.removeAdditional&&e===!1){I(B);return}if(e===!1){t.setParams({additionalProperty:B}),t.error(),s||A.break();return}if(typeof e=="object"&&!(0,qv.alwaysValidSchema)(r,e)){let f=A.name("valid");a.removeAdditional==="failing"?(h(B,f,!1),A.if((0,Jg.not)(f),()=>{t.reset(),I(B)})):(h(B,f),s||A.if((0,Jg.not)(f),()=>A.break()))}}function h(B,f,b){let k={keyword:"additionalProperties",dataProp:B,dataPropType:qv.Type.Str};b===!1&&Object.assign(k,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(k,f)}}};ZK.default=ROe});var _se=XA(eU=>{"use strict";Object.defineProperty(eU,"__esModule",{value:!0});var NOe=h3(),kse=Xl(),$K=eo(),xse=XK(),LOe={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:A,schema:e,parentSchema:i,data:n,it:o}=t;o.opts.removeAdditional==="all"&&i.additionalProperties===void 0&&xse.default.code(new NOe.KeywordCxt(o,xse.default,"additionalProperties"));let r=(0,kse.allSchemaProperties)(e);for(let d of r)o.definedProperties.add(d);o.opts.unevaluated&&r.length&&o.props!==!0&&(o.props=$K.mergeEvaluated.props(A,(0,$K.toHash)(r),o.props));let s=r.filter(d=>!(0,$K.alwaysValidSchema)(o,e[d]));if(s.length===0)return;let a=A.name("valid");for(let d of s)c(d)?l(d):(A.if((0,kse.propertyInData)(A,n,d,o.opts.ownProperties)),l(d),o.allErrors||A.else().var(a,!0),A.endIf()),t.it.definedProperties.add(d),t.ok(a);function c(d){return o.opts.useDefaults&&!o.compositeRule&&e[d].default!==void 0}function l(d){t.subschema({keyword:"properties",schemaProp:d,dataProp:d},a)}}};eU.default=LOe});var Fse=XA(AU=>{"use strict";Object.defineProperty(AU,"__esModule",{value:!0});var Rse=Xl(),Wv=hn(),Nse=eo(),Lse=eo(),FOe={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:A,schema:e,data:i,parentSchema:n,it:o}=t,{opts:r}=o,s=(0,Rse.allSchemaProperties)(e),a=s.filter(h=>(0,Nse.alwaysValidSchema)(o,e[h]));if(s.length===0||a.length===s.length&&(!o.opts.unevaluated||o.props===!0))return;let c=r.strictSchema&&!r.allowMatchingProperties&&n.properties,l=A.name("valid");o.props!==!0&&!(o.props instanceof Wv.Name)&&(o.props=(0,Lse.evaluatedPropsToName)(A,o.props));let{props:d}=o;C();function C(){for(let h of s)c&&I(h),o.allErrors?u(h):(A.var(l,!0),u(h),A.if(l))}function I(h){for(let B in c)new RegExp(h).test(B)&&(0,Nse.checkStrictMode)(o,`property ${B} matches pattern ${h} (use allowMatchingProperties)`)}function u(h){A.forIn("key",i,B=>{A.if((0,Wv._)`${(0,Rse.usePattern)(t,h)}.test(${B})`,()=>{let f=a.includes(h);f||t.subschema({keyword:"patternProperties",schemaProp:h,dataProp:B,dataPropType:Lse.Type.Str},l),o.opts.unevaluated&&d!==!0?A.assign((0,Wv._)`${d}[${B}]`,!0):!f&&!o.allErrors&&A.if((0,Wv.not)(l),()=>A.break())})})}}};AU.default=FOe});var Gse=XA(tU=>{"use strict";Object.defineProperty(tU,"__esModule",{value:!0});var GOe=eo(),KOe={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:A,schema:e,it:i}=t;if((0,GOe.alwaysValidSchema)(i,e)){t.fail();return}let n=A.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},n),t.failResult(n,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};tU.default=KOe});var Kse=XA(iU=>{"use strict";Object.defineProperty(iU,"__esModule",{value:!0});var UOe=Xl(),TOe={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:UOe.validateUnion,error:{message:"must match a schema in anyOf"}};iU.default=TOe});var Use=XA(nU=>{"use strict";Object.defineProperty(nU,"__esModule",{value:!0});var Zv=hn(),OOe=eo(),JOe={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Zv._)`{passingSchemas: ${t.passing}}`},YOe={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:JOe,code(t){let{gen:A,schema:e,parentSchema:i,it:n}=t;if(!Array.isArray(e))throw new Error("ajv implementation error");if(n.opts.discriminator&&i.discriminator)return;let o=e,r=A.let("valid",!1),s=A.let("passing",null),a=A.name("_valid");t.setParams({passing:s}),A.block(c),t.result(r,()=>t.reset(),()=>t.error(!0));function c(){o.forEach((l,d)=>{let C;(0,OOe.alwaysValidSchema)(n,l)?A.var(a,!0):C=t.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},a),d>0&&A.if((0,Zv._)`${a} && ${r}`).assign(r,!1).assign(s,(0,Zv._)`[${s}, ${d}]`).else(),A.if(a,()=>{A.assign(r,!0),A.assign(s,d),C&&t.mergeEvaluated(C,Zv.Name)})})}}};nU.default=YOe});var Tse=XA(oU=>{"use strict";Object.defineProperty(oU,"__esModule",{value:!0});var HOe=eo(),zOe={keyword:"allOf",schemaType:"array",code(t){let{gen:A,schema:e,it:i}=t;if(!Array.isArray(e))throw new Error("ajv implementation error");let n=A.name("valid");e.forEach((o,r)=>{if((0,HOe.alwaysValidSchema)(i,o))return;let s=t.subschema({keyword:"allOf",schemaProp:r},n);t.ok(n),t.mergeEvaluated(s)})}};oU.default=zOe});var Yse=XA(rU=>{"use strict";Object.defineProperty(rU,"__esModule",{value:!0});var Xv=hn(),Jse=eo(),POe={message:({params:t})=>(0,Xv.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Xv._)`{failingKeyword: ${t.ifClause}}`},jOe={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:POe,code(t){let{gen:A,parentSchema:e,it:i}=t;e.then===void 0&&e.else===void 0&&(0,Jse.checkStrictMode)(i,'"if" without "then" and "else" is ignored');let n=Ose(i,"then"),o=Ose(i,"else");if(!n&&!o)return;let r=A.let("valid",!0),s=A.name("_valid");if(a(),t.reset(),n&&o){let l=A.let("ifClause");t.setParams({ifClause:l}),A.if(s,c("then",l),c("else",l))}else n?A.if(s,c("then")):A.if((0,Xv.not)(s),c("else"));t.pass(r,()=>t.error(!0));function a(){let l=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);t.mergeEvaluated(l)}function c(l,d){return()=>{let C=t.subschema({keyword:l},s);A.assign(r,s),t.mergeValidEvaluated(C,r),d?A.assign(d,(0,Xv._)`${l}`):t.setParams({ifClause:l})}}}};function Ose(t,A){let e=t.schema[A];return e!==void 0&&!(0,Jse.alwaysValidSchema)(t,e)}rU.default=jOe});var Hse=XA(sU=>{"use strict";Object.defineProperty(sU,"__esModule",{value:!0});var VOe=eo(),qOe={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:A,it:e}){A.if===void 0&&(0,VOe.checkStrictMode)(e,`"${t}" without "if" is ignored`)}};sU.default=qOe});var zse=XA(aU=>{"use strict";Object.defineProperty(aU,"__esModule",{value:!0});var WOe=HK(),ZOe=mse(),XOe=zK(),$Oe=wse(),eJe=yse(),AJe=bse(),tJe=Sse(),iJe=XK(),nJe=_se(),oJe=Fse(),rJe=Gse(),sJe=Kse(),aJe=Use(),cJe=Tse(),lJe=Yse(),gJe=Hse();function dJe(t=!1){let A=[rJe.default,sJe.default,aJe.default,cJe.default,lJe.default,gJe.default,tJe.default,iJe.default,AJe.default,nJe.default,oJe.default];return t?A.push(ZOe.default,$Oe.default):A.push(WOe.default,XOe.default),A.push(eJe.default),A}aU.default=dJe});var Pse=XA(cU=>{"use strict";Object.defineProperty(cU,"__esModule",{value:!0});var rs=hn(),CJe={message:({schemaCode:t})=>(0,rs.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,rs._)`{format: ${t}}`},IJe={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:CJe,code(t,A){let{gen:e,data:i,$data:n,schema:o,schemaCode:r,it:s}=t,{opts:a,errSchemaPath:c,schemaEnv:l,self:d}=s;if(!a.validateFormats)return;n?C():I();function C(){let u=e.scopeValue("formats",{ref:d.formats,code:a.code.formats}),h=e.const("fDef",(0,rs._)`${u}[${r}]`),B=e.let("fType"),f=e.let("format");e.if((0,rs._)`typeof ${h} == "object" && !(${h} instanceof RegExp)`,()=>e.assign(B,(0,rs._)`${h}.type || "string"`).assign(f,(0,rs._)`${h}.validate`),()=>e.assign(B,(0,rs._)`"string"`).assign(f,h)),t.fail$data((0,rs.or)(b(),k()));function b(){return a.strictSchema===!1?rs.nil:(0,rs._)`${r} && !${f}`}function k(){let S=l.$async?(0,rs._)`(${h}.async ? await ${f}(${i}) : ${f}(${i}))`:(0,rs._)`${f}(${i})`,w=(0,rs._)`(typeof ${f} == "function" ? ${S} : ${f}.test(${i}))`;return(0,rs._)`${f} && ${f} !== true && ${B} === ${A} && !${w}`}}function I(){let u=d.formats[o];if(!u){b();return}if(u===!0)return;let[h,B,f]=k(u);h===A&&t.pass(S());function b(){if(a.strictSchema===!1){d.logger.warn(w());return}throw new Error(w());function w(){return`unknown format "${o}" ignored in schema at path "${c}"`}}function k(w){let _=w instanceof RegExp?(0,rs.regexpCode)(w):a.code.formats?(0,rs._)`${a.code.formats}${(0,rs.getProperty)(o)}`:void 0,K=e.scopeValue("formats",{key:o,ref:w,code:_});return typeof w=="object"&&!(w instanceof RegExp)?[w.type||"string",w.validate,(0,rs._)`${K}.validate`]:["string",w,K]}function S(){if(typeof u=="object"&&!(u instanceof RegExp)&&u.async){if(!l.$async)throw new Error("async format in sync schema");return(0,rs._)`await ${f}(${i})`}return typeof B=="function"?(0,rs._)`${f}(${i})`:(0,rs._)`${f}.test(${i})`}}}};cU.default=IJe});var jse=XA(lU=>{"use strict";Object.defineProperty(lU,"__esModule",{value:!0});var uJe=Pse(),hJe=[uJe.default];lU.default=hJe});var Vse=XA(ZE=>{"use strict";Object.defineProperty(ZE,"__esModule",{value:!0});ZE.contentVocabulary=ZE.metadataVocabulary=void 0;ZE.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];ZE.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var Wse=XA(gU=>{"use strict";Object.defineProperty(gU,"__esModule",{value:!0});var BJe=ise(),EJe=Bse(),fJe=zse(),QJe=jse(),qse=Vse(),mJe=[BJe.default,EJe.default,(0,fJe.default)(),QJe.default,qse.metadataVocabulary,qse.contentVocabulary];gU.default=mJe});var Xse=XA($v=>{"use strict";Object.defineProperty($v,"__esModule",{value:!0});$v.DiscrError=void 0;var Zse=function(t){return t.Tag="tag",t.Mapping="mapping",t}(Zse||($v.DiscrError=Zse={}))});var eae=XA(CU=>{"use strict";Object.defineProperty(CU,"__esModule",{value:!0});var XE=hn(),dU=Xse(),$se=Nv(),pJe=B3(),wJe=eo(),yJe={message:({params:{discrError:t,tagName:A}})=>t===dU.DiscrError.Tag?`tag "${A}" must be string`:`value of tag "${A}" must be in oneOf`,params:({params:{discrError:t,tag:A,tagName:e}})=>(0,XE._)`{error: ${t}, tag: ${e}, tagValue: ${A}}`},DJe={keyword:"discriminator",type:"object",schemaType:"object",error:yJe,code(t){let{gen:A,data:e,schema:i,parentSchema:n,it:o}=t,{oneOf:r}=n;if(!o.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=i.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(i.mapping)throw new Error("discriminator: mapping is not supported");if(!r)throw new Error("discriminator: requires oneOf keyword");let a=A.let("valid",!1),c=A.const("tag",(0,XE._)`${e}${(0,XE.getProperty)(s)}`);A.if((0,XE._)`typeof ${c} == "string"`,()=>l(),()=>t.error(!1,{discrError:dU.DiscrError.Tag,tag:c,tagName:s})),t.ok(a);function l(){let I=C();A.if(!1);for(let u in I)A.elseIf((0,XE._)`${c} === ${u}`),A.assign(a,d(I[u]));A.else(),t.error(!1,{discrError:dU.DiscrError.Mapping,tag:c,tagName:s}),A.endIf()}function d(I){let u=A.name("valid"),h=t.subschema({keyword:"oneOf",schemaProp:I},u);return t.mergeEvaluated(h,XE.Name),u}function C(){var I;let u={},h=f(n),B=!0;for(let S=0;S{vJe.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var iae=XA((hr,IU)=>{"use strict";Object.defineProperty(hr,"__esModule",{value:!0});hr.MissingRefError=hr.ValidationError=hr.CodeGen=hr.Name=hr.nil=hr.stringify=hr.str=hr._=hr.KeywordCxt=hr.Ajv=void 0;var bJe=Zre(),MJe=Wse(),SJe=eae(),tae=Aae(),kJe=["/properties"],e7="http://json-schema.org/draft-07/schema",$E=class extends bJe.default{_addVocabularies(){super._addVocabularies(),MJe.default.forEach(A=>this.addVocabulary(A)),this.opts.discriminator&&this.addKeyword(SJe.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let A=this.opts.$data?this.$dataMetaSchema(tae,kJe):tae;this.addMetaSchema(A,e7,!1),this.refs["http://json-schema.org/schema"]=e7}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(e7)?e7:void 0)}};hr.Ajv=$E;IU.exports=hr=$E;IU.exports.Ajv=$E;Object.defineProperty(hr,"__esModule",{value:!0});hr.default=$E;var xJe=h3();Object.defineProperty(hr,"KeywordCxt",{enumerable:!0,get:function(){return xJe.KeywordCxt}});var ef=hn();Object.defineProperty(hr,"_",{enumerable:!0,get:function(){return ef._}});Object.defineProperty(hr,"str",{enumerable:!0,get:function(){return ef.str}});Object.defineProperty(hr,"stringify",{enumerable:!0,get:function(){return ef.stringify}});Object.defineProperty(hr,"nil",{enumerable:!0,get:function(){return ef.nil}});Object.defineProperty(hr,"Name",{enumerable:!0,get:function(){return ef.Name}});Object.defineProperty(hr,"CodeGen",{enumerable:!0,get:function(){return ef.CodeGen}});var _Je=_v();Object.defineProperty(hr,"ValidationError",{enumerable:!0,get:function(){return _Je.default}});var RJe=B3();Object.defineProperty(hr,"MissingRefError",{enumerable:!0,get:function(){return RJe.default}})});var nae=XA(A7=>{"use strict";(function(t){"use strict";function A(G){return G!==null?Object.prototype.toString.call(G)==="[object Array]":!1}function e(G){return G!==null?Object.prototype.toString.call(G)==="[object Object]":!1}function i(G,z){if(G===z)return!0;var Ae=Object.prototype.toString.call(G);if(Ae!==Object.prototype.toString.call(z))return!1;if(A(G)===!0){if(G.length!==z.length)return!1;for(var de=0;de",9:"Array"},k="EOF",S="UnquotedIdentifier",w="QuotedIdentifier",_="Rbracket",K="Rparen",J="Comma",O="Colon",H="Rbrace",V="Number",Z="Current",ye="Expref",P="Pipe",se="Or",X="And",ue="EQ",oe="GT",le="LT",me="GTE",Te="LTE",$e="NE",Je="Flatten",Qe="Star",He="Filter",PA="Dot",JA="Not",Ye="Lbrace",Ie="Lbracket",We="Lparen",we="Literal",Ze={".":PA,"*":Qe,",":J,":":O,"{":Ye,"}":H,"]":_,"(":We,")":K,"@":Z},Ge={"<":!0,">":!0,"=":!0,"!":!0},LA={" ":!0," ":!0,"\n":!0};function Fe(G){return G>="a"&&G<="z"||G>="A"&&G<="Z"||G==="_"}function pe(G){return G>="0"&&G<="9"||G==="-"}function Wt(G){return G>="a"&&G<="z"||G>="A"&&G<="Z"||G>="0"&&G<="9"||G==="_"}function Qt(){}Qt.prototype={tokenize:function(G){var z=[];this._current=0;for(var Ae,de,Ne;this._current")return G[this._current]==="="?(this._current++,{type:me,value:">=",start:z}):{type:oe,value:">",start:z};if(Ae==="="&&G[this._current]==="=")return this._current++,{type:ue,value:"==",start:z}},_consumeLiteral:function(G){this._current++;for(var z=this._current,Ae=G.length,de;G[this._current]!=="`"&&this._current=0)return!0;if(Ae.indexOf(G)>=0)return!0;if(de.indexOf(G[0])>=0)try{return JSON.parse(G),!0}catch{return!1}else return!1}};var BA={};BA[k]=0,BA[S]=0,BA[w]=0,BA[_]=0,BA[K]=0,BA[J]=0,BA[H]=0,BA[V]=0,BA[Z]=0,BA[ye]=0,BA[P]=1,BA[se]=2,BA[X]=3,BA[ue]=5,BA[oe]=5,BA[le]=5,BA[me]=5,BA[Te]=5,BA[$e]=5,BA[Je]=9,BA[Qe]=20,BA[He]=21,BA[PA]=40,BA[JA]=45,BA[Ye]=50,BA[Ie]=55,BA[We]=60;function _t(){}_t.prototype={parse:function(G){this._loadTokens(G),this.index=0;var z=this.expression(0);if(this._lookahead(0)!==k){var Ae=this._lookaheadToken(0),de=new Error("Unexpected token type: "+Ae.type+", value: "+Ae.value);throw de.name="ParserError",de}return z},_loadTokens:function(G){var z=new Qt,Ae=z.tokenize(G);Ae.push({type:k,value:"",start:G.length}),this.tokens=Ae},expression:function(G){var z=this._lookaheadToken(0);this._advance();for(var Ae=this.nud(z),de=this._lookahead(0);G=0)return this.expression(G);if(z===Ie)return this._match(Ie),this._parseMultiselectList();if(z===Ye)return this._match(Ye),this._parseMultiselectHash()},_parseProjectionRHS:function(G){var z;if(BA[this._lookahead(0)]<10)z={type:"Identity"};else if(this._lookahead(0)===Ie)z=this.expression(G);else if(this._lookahead(0)===He)z=this.expression(G);else if(this._lookahead(0)===PA)this._match(PA),z=this._parseDotRHS(G);else{var Ae=this._lookaheadToken(0),de=new Error("Sytanx error, unexpected token: "+Ae.value+"("+Ae.type+")");throw de.name="ParserError",de}return z},_parseMultiselectList:function(){for(var G=[];this._lookahead(0)!==_;){var z=this.expression(0);if(G.push(z),this._lookahead(0)===J&&(this._match(J),this._lookahead(0)===_))throw new Error("Unexpected token Rbracket")}return this._match(_),{type:"MultiSelectList",children:G}},_parseMultiselectHash:function(){for(var G=[],z=[S,w],Ae,de,Ne,pA;;){if(Ae=this._lookaheadToken(0),z.indexOf(Ae.type)<0)throw new Error("Expecting an identifier token, got: "+Ae.type);if(de=Ae.value,this._advance(),this._match(O),Ne=this.expression(0),pA={type:"KeyValuePair",name:de,value:Ne},G.push(pA),this._lookahead(0)===J)this._match(J);else if(this._lookahead(0)===H){this._match(H);break}}return{type:"MultiSelectHash",children:G}}};function VA(G){this.runtime=G}VA.prototype={search:function(G,z){return this.visit(G,z)},visit:function(G,z){var Ae,de,Ne,pA,vA,Ke,Re,wt,st,nA;switch(G.type){case"Field":return z!==null&&e(z)?(Ke=z[G.name],Ke===void 0?null:Ke):null;case"Subexpression":for(Ne=this.visit(G.children[0],z),nA=1;nA0)for(nA=dn;nAHA;nA+=Cn)Ne.push(z[nA]);return Ne;case"Projection":var Gi=this.visit(G.children[0],z);if(!A(Gi))return null;for(st=[],nA=0;nAvA;break;case me:Ne=pA>=vA;break;case le:Ne=pA=G&&(z=Ae<0?G-1:G),z}};function YA(G){this._interpreter=G,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[a]}]},avg:{_func:this._functionAvg,_signature:[{types:[B]}]},ceil:{_func:this._functionCeil,_signature:[{types:[a]}]},contains:{_func:this._functionContains,_signature:[{types:[l,d]},{types:[c]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[l]},{types:[l]}]},floor:{_func:this._functionFloor,_signature:[{types:[a]}]},length:{_func:this._functionLength,_signature:[{types:[l,d,C]}]},map:{_func:this._functionMap,_signature:[{types:[u]},{types:[d]}]},max:{_func:this._functionMax,_signature:[{types:[B,f]}]},merge:{_func:this._functionMerge,_signature:[{types:[C],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[d]},{types:[u]}]},sum:{_func:this._functionSum,_signature:[{types:[B]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[l]},{types:[l]}]},min:{_func:this._functionMin,_signature:[{types:[B,f]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[d]},{types:[u]}]},type:{_func:this._functionType,_signature:[{types:[c]}]},keys:{_func:this._functionKeys,_signature:[{types:[C]}]},values:{_func:this._functionValues,_signature:[{types:[C]}]},sort:{_func:this._functionSort,_signature:[{types:[f,B]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[d]},{types:[u]}]},join:{_func:this._functionJoin,_signature:[{types:[l]},{types:[f]}]},reverse:{_func:this._functionReverse,_signature:[{types:[l,d]}]},to_array:{_func:this._functionToArray,_signature:[{types:[c]}]},to_string:{_func:this._functionToString,_signature:[{types:[c]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[c]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[c],variadic:!0}]}}}YA.prototype={callFunction:function(G,z){var Ae=this.functionTable[G];if(Ae===void 0)throw new Error("Unknown function: "+G+"()");return this._validateArgs(G,z,Ae._signature),Ae._func.call(this,z)},_validateArgs:function(G,z,Ae){var de;if(Ae[Ae.length-1].variadic){if(z.length=0;Ne--)de+=Ae[Ne];return de}else{var pA=G[0].slice(0);return pA.reverse(),pA}},_functionAbs:function(G){return Math.abs(G[0])},_functionCeil:function(G){return Math.ceil(G[0])},_functionAvg:function(G){for(var z=0,Ae=G[0],de=0;de=0},_functionFloor:function(G){return Math.floor(G[0])},_functionLength:function(G){return e(G[0])?Object.keys(G[0]).length:G[0].length},_functionMap:function(G){for(var z=[],Ae=this._interpreter,de=G[0],Ne=G[1],pA=0;pA0){var z=this._getTypeName(G[0][0]);if(z===a)return Math.max.apply(Math,G[0]);for(var Ae=G[0],de=Ae[0],Ne=1;Ne0){var z=this._getTypeName(G[0][0]);if(z===a)return Math.min.apply(Math,G[0]);for(var Ae=G[0],de=Ae[0],Ne=1;NeBt?1:nANe&&(Ne=vA,pA=Ae[Ke]);return pA},_functionMinBy:function(G){for(var z=G[1],Ae=G[0],de=this.createKeyFunction(z,[a,l]),Ne=1/0,pA,vA,Ke=0;Ke"u"?A7.jmespath={}:A7)});var MBe=XA((rdt,bBe)=>{"use strict";bBe.exports=[{value:"#B0171F",name:"indian red"},{value:"#DC143C",css:!0,name:"crimson"},{value:"#FFB6C1",css:!0,name:"lightpink"},{value:"#FFAEB9",name:"lightpink 1"},{value:"#EEA2AD",name:"lightpink 2"},{value:"#CD8C95",name:"lightpink 3"},{value:"#8B5F65",name:"lightpink 4"},{value:"#FFC0CB",css:!0,name:"pink"},{value:"#FFB5C5",name:"pink 1"},{value:"#EEA9B8",name:"pink 2"},{value:"#CD919E",name:"pink 3"},{value:"#8B636C",name:"pink 4"},{value:"#DB7093",css:!0,name:"palevioletred"},{value:"#FF82AB",name:"palevioletred 1"},{value:"#EE799F",name:"palevioletred 2"},{value:"#CD6889",name:"palevioletred 3"},{value:"#8B475D",name:"palevioletred 4"},{value:"#FFF0F5",name:"lavenderblush 1"},{value:"#FFF0F5",css:!0,name:"lavenderblush"},{value:"#EEE0E5",name:"lavenderblush 2"},{value:"#CDC1C5",name:"lavenderblush 3"},{value:"#8B8386",name:"lavenderblush 4"},{value:"#FF3E96",name:"violetred 1"},{value:"#EE3A8C",name:"violetred 2"},{value:"#CD3278",name:"violetred 3"},{value:"#8B2252",name:"violetred 4"},{value:"#FF69B4",css:!0,name:"hotpink"},{value:"#FF6EB4",name:"hotpink 1"},{value:"#EE6AA7",name:"hotpink 2"},{value:"#CD6090",name:"hotpink 3"},{value:"#8B3A62",name:"hotpink 4"},{value:"#872657",name:"raspberry"},{value:"#FF1493",name:"deeppink 1"},{value:"#FF1493",css:!0,name:"deeppink"},{value:"#EE1289",name:"deeppink 2"},{value:"#CD1076",name:"deeppink 3"},{value:"#8B0A50",name:"deeppink 4"},{value:"#FF34B3",name:"maroon 1"},{value:"#EE30A7",name:"maroon 2"},{value:"#CD2990",name:"maroon 3"},{value:"#8B1C62",name:"maroon 4"},{value:"#C71585",css:!0,name:"mediumvioletred"},{value:"#D02090",name:"violetred"},{value:"#DA70D6",css:!0,name:"orchid"},{value:"#FF83FA",name:"orchid 1"},{value:"#EE7AE9",name:"orchid 2"},{value:"#CD69C9",name:"orchid 3"},{value:"#8B4789",name:"orchid 4"},{value:"#D8BFD8",css:!0,name:"thistle"},{value:"#FFE1FF",name:"thistle 1"},{value:"#EED2EE",name:"thistle 2"},{value:"#CDB5CD",name:"thistle 3"},{value:"#8B7B8B",name:"thistle 4"},{value:"#FFBBFF",name:"plum 1"},{value:"#EEAEEE",name:"plum 2"},{value:"#CD96CD",name:"plum 3"},{value:"#8B668B",name:"plum 4"},{value:"#DDA0DD",css:!0,name:"plum"},{value:"#EE82EE",css:!0,name:"violet"},{value:"#FF00FF",vga:!0,name:"magenta"},{value:"#FF00FF",vga:!0,css:!0,name:"fuchsia"},{value:"#EE00EE",name:"magenta 2"},{value:"#CD00CD",name:"magenta 3"},{value:"#8B008B",name:"magenta 4"},{value:"#8B008B",css:!0,name:"darkmagenta"},{value:"#800080",vga:!0,css:!0,name:"purple"},{value:"#BA55D3",css:!0,name:"mediumorchid"},{value:"#E066FF",name:"mediumorchid 1"},{value:"#D15FEE",name:"mediumorchid 2"},{value:"#B452CD",name:"mediumorchid 3"},{value:"#7A378B",name:"mediumorchid 4"},{value:"#9400D3",css:!0,name:"darkviolet"},{value:"#9932CC",css:!0,name:"darkorchid"},{value:"#BF3EFF",name:"darkorchid 1"},{value:"#B23AEE",name:"darkorchid 2"},{value:"#9A32CD",name:"darkorchid 3"},{value:"#68228B",name:"darkorchid 4"},{value:"#4B0082",css:!0,name:"indigo"},{value:"#8A2BE2",css:!0,name:"blueviolet"},{value:"#9B30FF",name:"purple 1"},{value:"#912CEE",name:"purple 2"},{value:"#7D26CD",name:"purple 3"},{value:"#551A8B",name:"purple 4"},{value:"#9370DB",css:!0,name:"mediumpurple"},{value:"#AB82FF",name:"mediumpurple 1"},{value:"#9F79EE",name:"mediumpurple 2"},{value:"#8968CD",name:"mediumpurple 3"},{value:"#5D478B",name:"mediumpurple 4"},{value:"#483D8B",css:!0,name:"darkslateblue"},{value:"#8470FF",name:"lightslateblue"},{value:"#7B68EE",css:!0,name:"mediumslateblue"},{value:"#6A5ACD",css:!0,name:"slateblue"},{value:"#836FFF",name:"slateblue 1"},{value:"#7A67EE",name:"slateblue 2"},{value:"#6959CD",name:"slateblue 3"},{value:"#473C8B",name:"slateblue 4"},{value:"#F8F8FF",css:!0,name:"ghostwhite"},{value:"#E6E6FA",css:!0,name:"lavender"},{value:"#0000FF",vga:!0,css:!0,name:"blue"},{value:"#0000EE",name:"blue 2"},{value:"#0000CD",name:"blue 3"},{value:"#0000CD",css:!0,name:"mediumblue"},{value:"#00008B",name:"blue 4"},{value:"#00008B",css:!0,name:"darkblue"},{value:"#000080",vga:!0,css:!0,name:"navy"},{value:"#191970",css:!0,name:"midnightblue"},{value:"#3D59AB",name:"cobalt"},{value:"#4169E1",css:!0,name:"royalblue"},{value:"#4876FF",name:"royalblue 1"},{value:"#436EEE",name:"royalblue 2"},{value:"#3A5FCD",name:"royalblue 3"},{value:"#27408B",name:"royalblue 4"},{value:"#6495ED",css:!0,name:"cornflowerblue"},{value:"#B0C4DE",css:!0,name:"lightsteelblue"},{value:"#CAE1FF",name:"lightsteelblue 1"},{value:"#BCD2EE",name:"lightsteelblue 2"},{value:"#A2B5CD",name:"lightsteelblue 3"},{value:"#6E7B8B",name:"lightsteelblue 4"},{value:"#778899",css:!0,name:"lightslategray"},{value:"#708090",css:!0,name:"slategray"},{value:"#C6E2FF",name:"slategray 1"},{value:"#B9D3EE",name:"slategray 2"},{value:"#9FB6CD",name:"slategray 3"},{value:"#6C7B8B",name:"slategray 4"},{value:"#1E90FF",name:"dodgerblue 1"},{value:"#1E90FF",css:!0,name:"dodgerblue"},{value:"#1C86EE",name:"dodgerblue 2"},{value:"#1874CD",name:"dodgerblue 3"},{value:"#104E8B",name:"dodgerblue 4"},{value:"#F0F8FF",css:!0,name:"aliceblue"},{value:"#4682B4",css:!0,name:"steelblue"},{value:"#63B8FF",name:"steelblue 1"},{value:"#5CACEE",name:"steelblue 2"},{value:"#4F94CD",name:"steelblue 3"},{value:"#36648B",name:"steelblue 4"},{value:"#87CEFA",css:!0,name:"lightskyblue"},{value:"#B0E2FF",name:"lightskyblue 1"},{value:"#A4D3EE",name:"lightskyblue 2"},{value:"#8DB6CD",name:"lightskyblue 3"},{value:"#607B8B",name:"lightskyblue 4"},{value:"#87CEFF",name:"skyblue 1"},{value:"#7EC0EE",name:"skyblue 2"},{value:"#6CA6CD",name:"skyblue 3"},{value:"#4A708B",name:"skyblue 4"},{value:"#87CEEB",css:!0,name:"skyblue"},{value:"#00BFFF",name:"deepskyblue 1"},{value:"#00BFFF",css:!0,name:"deepskyblue"},{value:"#00B2EE",name:"deepskyblue 2"},{value:"#009ACD",name:"deepskyblue 3"},{value:"#00688B",name:"deepskyblue 4"},{value:"#33A1C9",name:"peacock"},{value:"#ADD8E6",css:!0,name:"lightblue"},{value:"#BFEFFF",name:"lightblue 1"},{value:"#B2DFEE",name:"lightblue 2"},{value:"#9AC0CD",name:"lightblue 3"},{value:"#68838B",name:"lightblue 4"},{value:"#B0E0E6",css:!0,name:"powderblue"},{value:"#98F5FF",name:"cadetblue 1"},{value:"#8EE5EE",name:"cadetblue 2"},{value:"#7AC5CD",name:"cadetblue 3"},{value:"#53868B",name:"cadetblue 4"},{value:"#00F5FF",name:"turquoise 1"},{value:"#00E5EE",name:"turquoise 2"},{value:"#00C5CD",name:"turquoise 3"},{value:"#00868B",name:"turquoise 4"},{value:"#5F9EA0",css:!0,name:"cadetblue"},{value:"#00CED1",css:!0,name:"darkturquoise"},{value:"#F0FFFF",name:"azure 1"},{value:"#F0FFFF",css:!0,name:"azure"},{value:"#E0EEEE",name:"azure 2"},{value:"#C1CDCD",name:"azure 3"},{value:"#838B8B",name:"azure 4"},{value:"#E0FFFF",name:"lightcyan 1"},{value:"#E0FFFF",css:!0,name:"lightcyan"},{value:"#D1EEEE",name:"lightcyan 2"},{value:"#B4CDCD",name:"lightcyan 3"},{value:"#7A8B8B",name:"lightcyan 4"},{value:"#BBFFFF",name:"paleturquoise 1"},{value:"#AEEEEE",name:"paleturquoise 2"},{value:"#AEEEEE",css:!0,name:"paleturquoise"},{value:"#96CDCD",name:"paleturquoise 3"},{value:"#668B8B",name:"paleturquoise 4"},{value:"#2F4F4F",css:!0,name:"darkslategray"},{value:"#97FFFF",name:"darkslategray 1"},{value:"#8DEEEE",name:"darkslategray 2"},{value:"#79CDCD",name:"darkslategray 3"},{value:"#528B8B",name:"darkslategray 4"},{value:"#00FFFF",name:"cyan"},{value:"#00FFFF",css:!0,name:"aqua"},{value:"#00EEEE",name:"cyan 2"},{value:"#00CDCD",name:"cyan 3"},{value:"#008B8B",name:"cyan 4"},{value:"#008B8B",css:!0,name:"darkcyan"},{value:"#008080",vga:!0,css:!0,name:"teal"},{value:"#48D1CC",css:!0,name:"mediumturquoise"},{value:"#20B2AA",css:!0,name:"lightseagreen"},{value:"#03A89E",name:"manganeseblue"},{value:"#40E0D0",css:!0,name:"turquoise"},{value:"#808A87",name:"coldgrey"},{value:"#00C78C",name:"turquoiseblue"},{value:"#7FFFD4",name:"aquamarine 1"},{value:"#7FFFD4",css:!0,name:"aquamarine"},{value:"#76EEC6",name:"aquamarine 2"},{value:"#66CDAA",name:"aquamarine 3"},{value:"#66CDAA",css:!0,name:"mediumaquamarine"},{value:"#458B74",name:"aquamarine 4"},{value:"#00FA9A",css:!0,name:"mediumspringgreen"},{value:"#F5FFFA",css:!0,name:"mintcream"},{value:"#00FF7F",css:!0,name:"springgreen"},{value:"#00EE76",name:"springgreen 1"},{value:"#00CD66",name:"springgreen 2"},{value:"#008B45",name:"springgreen 3"},{value:"#3CB371",css:!0,name:"mediumseagreen"},{value:"#54FF9F",name:"seagreen 1"},{value:"#4EEE94",name:"seagreen 2"},{value:"#43CD80",name:"seagreen 3"},{value:"#2E8B57",name:"seagreen 4"},{value:"#2E8B57",css:!0,name:"seagreen"},{value:"#00C957",name:"emeraldgreen"},{value:"#BDFCC9",name:"mint"},{value:"#3D9140",name:"cobaltgreen"},{value:"#F0FFF0",name:"honeydew 1"},{value:"#F0FFF0",css:!0,name:"honeydew"},{value:"#E0EEE0",name:"honeydew 2"},{value:"#C1CDC1",name:"honeydew 3"},{value:"#838B83",name:"honeydew 4"},{value:"#8FBC8F",css:!0,name:"darkseagreen"},{value:"#C1FFC1",name:"darkseagreen 1"},{value:"#B4EEB4",name:"darkseagreen 2"},{value:"#9BCD9B",name:"darkseagreen 3"},{value:"#698B69",name:"darkseagreen 4"},{value:"#98FB98",css:!0,name:"palegreen"},{value:"#9AFF9A",name:"palegreen 1"},{value:"#90EE90",name:"palegreen 2"},{value:"#90EE90",css:!0,name:"lightgreen"},{value:"#7CCD7C",name:"palegreen 3"},{value:"#548B54",name:"palegreen 4"},{value:"#32CD32",css:!0,name:"limegreen"},{value:"#228B22",css:!0,name:"forestgreen"},{value:"#00FF00",vga:!0,name:"green 1"},{value:"#00FF00",vga:!0,css:!0,name:"lime"},{value:"#00EE00",name:"green 2"},{value:"#00CD00",name:"green 3"},{value:"#008B00",name:"green 4"},{value:"#008000",vga:!0,css:!0,name:"green"},{value:"#006400",css:!0,name:"darkgreen"},{value:"#308014",name:"sapgreen"},{value:"#7CFC00",css:!0,name:"lawngreen"},{value:"#7FFF00",name:"chartreuse 1"},{value:"#7FFF00",css:!0,name:"chartreuse"},{value:"#76EE00",name:"chartreuse 2"},{value:"#66CD00",name:"chartreuse 3"},{value:"#458B00",name:"chartreuse 4"},{value:"#ADFF2F",css:!0,name:"greenyellow"},{value:"#CAFF70",name:"darkolivegreen 1"},{value:"#BCEE68",name:"darkolivegreen 2"},{value:"#A2CD5A",name:"darkolivegreen 3"},{value:"#6E8B3D",name:"darkolivegreen 4"},{value:"#556B2F",css:!0,name:"darkolivegreen"},{value:"#6B8E23",css:!0,name:"olivedrab"},{value:"#C0FF3E",name:"olivedrab 1"},{value:"#B3EE3A",name:"olivedrab 2"},{value:"#9ACD32",name:"olivedrab 3"},{value:"#9ACD32",css:!0,name:"yellowgreen"},{value:"#698B22",name:"olivedrab 4"},{value:"#FFFFF0",name:"ivory 1"},{value:"#FFFFF0",css:!0,name:"ivory"},{value:"#EEEEE0",name:"ivory 2"},{value:"#CDCDC1",name:"ivory 3"},{value:"#8B8B83",name:"ivory 4"},{value:"#F5F5DC",css:!0,name:"beige"},{value:"#FFFFE0",name:"lightyellow 1"},{value:"#FFFFE0",css:!0,name:"lightyellow"},{value:"#EEEED1",name:"lightyellow 2"},{value:"#CDCDB4",name:"lightyellow 3"},{value:"#8B8B7A",name:"lightyellow 4"},{value:"#FAFAD2",css:!0,name:"lightgoldenrodyellow"},{value:"#FFFF00",vga:!0,name:"yellow 1"},{value:"#FFFF00",vga:!0,css:!0,name:"yellow"},{value:"#EEEE00",name:"yellow 2"},{value:"#CDCD00",name:"yellow 3"},{value:"#8B8B00",name:"yellow 4"},{value:"#808069",name:"warmgrey"},{value:"#808000",vga:!0,css:!0,name:"olive"},{value:"#BDB76B",css:!0,name:"darkkhaki"},{value:"#FFF68F",name:"khaki 1"},{value:"#EEE685",name:"khaki 2"},{value:"#CDC673",name:"khaki 3"},{value:"#8B864E",name:"khaki 4"},{value:"#F0E68C",css:!0,name:"khaki"},{value:"#EEE8AA",css:!0,name:"palegoldenrod"},{value:"#FFFACD",name:"lemonchiffon 1"},{value:"#FFFACD",css:!0,name:"lemonchiffon"},{value:"#EEE9BF",name:"lemonchiffon 2"},{value:"#CDC9A5",name:"lemonchiffon 3"},{value:"#8B8970",name:"lemonchiffon 4"},{value:"#FFEC8B",name:"lightgoldenrod 1"},{value:"#EEDC82",name:"lightgoldenrod 2"},{value:"#CDBE70",name:"lightgoldenrod 3"},{value:"#8B814C",name:"lightgoldenrod 4"},{value:"#E3CF57",name:"banana"},{value:"#FFD700",name:"gold 1"},{value:"#FFD700",css:!0,name:"gold"},{value:"#EEC900",name:"gold 2"},{value:"#CDAD00",name:"gold 3"},{value:"#8B7500",name:"gold 4"},{value:"#FFF8DC",name:"cornsilk 1"},{value:"#FFF8DC",css:!0,name:"cornsilk"},{value:"#EEE8CD",name:"cornsilk 2"},{value:"#CDC8B1",name:"cornsilk 3"},{value:"#8B8878",name:"cornsilk 4"},{value:"#DAA520",css:!0,name:"goldenrod"},{value:"#FFC125",name:"goldenrod 1"},{value:"#EEB422",name:"goldenrod 2"},{value:"#CD9B1D",name:"goldenrod 3"},{value:"#8B6914",name:"goldenrod 4"},{value:"#B8860B",css:!0,name:"darkgoldenrod"},{value:"#FFB90F",name:"darkgoldenrod 1"},{value:"#EEAD0E",name:"darkgoldenrod 2"},{value:"#CD950C",name:"darkgoldenrod 3"},{value:"#8B6508",name:"darkgoldenrod 4"},{value:"#FFA500",name:"orange 1"},{value:"#FF8000",css:!0,name:"orange"},{value:"#EE9A00",name:"orange 2"},{value:"#CD8500",name:"orange 3"},{value:"#8B5A00",name:"orange 4"},{value:"#FFFAF0",css:!0,name:"floralwhite"},{value:"#FDF5E6",css:!0,name:"oldlace"},{value:"#F5DEB3",css:!0,name:"wheat"},{value:"#FFE7BA",name:"wheat 1"},{value:"#EED8AE",name:"wheat 2"},{value:"#CDBA96",name:"wheat 3"},{value:"#8B7E66",name:"wheat 4"},{value:"#FFE4B5",css:!0,name:"moccasin"},{value:"#FFEFD5",css:!0,name:"papayawhip"},{value:"#FFEBCD",css:!0,name:"blanchedalmond"},{value:"#FFDEAD",name:"navajowhite 1"},{value:"#FFDEAD",css:!0,name:"navajowhite"},{value:"#EECFA1",name:"navajowhite 2"},{value:"#CDB38B",name:"navajowhite 3"},{value:"#8B795E",name:"navajowhite 4"},{value:"#FCE6C9",name:"eggshell"},{value:"#D2B48C",css:!0,name:"tan"},{value:"#9C661F",name:"brick"},{value:"#FF9912",name:"cadmiumyellow"},{value:"#FAEBD7",css:!0,name:"antiquewhite"},{value:"#FFEFDB",name:"antiquewhite 1"},{value:"#EEDFCC",name:"antiquewhite 2"},{value:"#CDC0B0",name:"antiquewhite 3"},{value:"#8B8378",name:"antiquewhite 4"},{value:"#DEB887",css:!0,name:"burlywood"},{value:"#FFD39B",name:"burlywood 1"},{value:"#EEC591",name:"burlywood 2"},{value:"#CDAA7D",name:"burlywood 3"},{value:"#8B7355",name:"burlywood 4"},{value:"#FFE4C4",name:"bisque 1"},{value:"#FFE4C4",css:!0,name:"bisque"},{value:"#EED5B7",name:"bisque 2"},{value:"#CDB79E",name:"bisque 3"},{value:"#8B7D6B",name:"bisque 4"},{value:"#E3A869",name:"melon"},{value:"#ED9121",name:"carrot"},{value:"#FF8C00",css:!0,name:"darkorange"},{value:"#FF7F00",name:"darkorange 1"},{value:"#EE7600",name:"darkorange 2"},{value:"#CD6600",name:"darkorange 3"},{value:"#8B4500",name:"darkorange 4"},{value:"#FFA54F",name:"tan 1"},{value:"#EE9A49",name:"tan 2"},{value:"#CD853F",name:"tan 3"},{value:"#CD853F",css:!0,name:"peru"},{value:"#8B5A2B",name:"tan 4"},{value:"#FAF0E6",css:!0,name:"linen"},{value:"#FFDAB9",name:"peachpuff 1"},{value:"#FFDAB9",css:!0,name:"peachpuff"},{value:"#EECBAD",name:"peachpuff 2"},{value:"#CDAF95",name:"peachpuff 3"},{value:"#8B7765",name:"peachpuff 4"},{value:"#FFF5EE",name:"seashell 1"},{value:"#FFF5EE",css:!0,name:"seashell"},{value:"#EEE5DE",name:"seashell 2"},{value:"#CDC5BF",name:"seashell 3"},{value:"#8B8682",name:"seashell 4"},{value:"#F4A460",css:!0,name:"sandybrown"},{value:"#C76114",name:"rawsienna"},{value:"#D2691E",css:!0,name:"chocolate"},{value:"#FF7F24",name:"chocolate 1"},{value:"#EE7621",name:"chocolate 2"},{value:"#CD661D",name:"chocolate 3"},{value:"#8B4513",name:"chocolate 4"},{value:"#8B4513",css:!0,name:"saddlebrown"},{value:"#292421",name:"ivoryblack"},{value:"#FF7D40",name:"flesh"},{value:"#FF6103",name:"cadmiumorange"},{value:"#8A360F",name:"burntsienna"},{value:"#A0522D",css:!0,name:"sienna"},{value:"#FF8247",name:"sienna 1"},{value:"#EE7942",name:"sienna 2"},{value:"#CD6839",name:"sienna 3"},{value:"#8B4726",name:"sienna 4"},{value:"#FFA07A",name:"lightsalmon 1"},{value:"#FFA07A",css:!0,name:"lightsalmon"},{value:"#EE9572",name:"lightsalmon 2"},{value:"#CD8162",name:"lightsalmon 3"},{value:"#8B5742",name:"lightsalmon 4"},{value:"#FF7F50",css:!0,name:"coral"},{value:"#FF4500",name:"orangered 1"},{value:"#FF4500",css:!0,name:"orangered"},{value:"#EE4000",name:"orangered 2"},{value:"#CD3700",name:"orangered 3"},{value:"#8B2500",name:"orangered 4"},{value:"#5E2612",name:"sepia"},{value:"#E9967A",css:!0,name:"darksalmon"},{value:"#FF8C69",name:"salmon 1"},{value:"#EE8262",name:"salmon 2"},{value:"#CD7054",name:"salmon 3"},{value:"#8B4C39",name:"salmon 4"},{value:"#FF7256",name:"coral 1"},{value:"#EE6A50",name:"coral 2"},{value:"#CD5B45",name:"coral 3"},{value:"#8B3E2F",name:"coral 4"},{value:"#8A3324",name:"burntumber"},{value:"#FF6347",name:"tomato 1"},{value:"#FF6347",css:!0,name:"tomato"},{value:"#EE5C42",name:"tomato 2"},{value:"#CD4F39",name:"tomato 3"},{value:"#8B3626",name:"tomato 4"},{value:"#FA8072",css:!0,name:"salmon"},{value:"#FFE4E1",name:"mistyrose 1"},{value:"#FFE4E1",css:!0,name:"mistyrose"},{value:"#EED5D2",name:"mistyrose 2"},{value:"#CDB7B5",name:"mistyrose 3"},{value:"#8B7D7B",name:"mistyrose 4"},{value:"#FFFAFA",name:"snow 1"},{value:"#FFFAFA",css:!0,name:"snow"},{value:"#EEE9E9",name:"snow 2"},{value:"#CDC9C9",name:"snow 3"},{value:"#8B8989",name:"snow 4"},{value:"#BC8F8F",css:!0,name:"rosybrown"},{value:"#FFC1C1",name:"rosybrown 1"},{value:"#EEB4B4",name:"rosybrown 2"},{value:"#CD9B9B",name:"rosybrown 3"},{value:"#8B6969",name:"rosybrown 4"},{value:"#F08080",css:!0,name:"lightcoral"},{value:"#CD5C5C",css:!0,name:"indianred"},{value:"#FF6A6A",name:"indianred 1"},{value:"#EE6363",name:"indianred 2"},{value:"#8B3A3A",name:"indianred 4"},{value:"#CD5555",name:"indianred 3"},{value:"#A52A2A",css:!0,name:"brown"},{value:"#FF4040",name:"brown 1"},{value:"#EE3B3B",name:"brown 2"},{value:"#CD3333",name:"brown 3"},{value:"#8B2323",name:"brown 4"},{value:"#B22222",css:!0,name:"firebrick"},{value:"#FF3030",name:"firebrick 1"},{value:"#EE2C2C",name:"firebrick 2"},{value:"#CD2626",name:"firebrick 3"},{value:"#8B1A1A",name:"firebrick 4"},{value:"#FF0000",vga:!0,name:"red 1"},{value:"#FF0000",vga:!0,css:!0,name:"red"},{value:"#EE0000",name:"red 2"},{value:"#CD0000",name:"red 3"},{value:"#8B0000",name:"red 4"},{value:"#8B0000",css:!0,name:"darkred"},{value:"#800000",vga:!0,css:!0,name:"maroon"},{value:"#8E388E",name:"sgi beet"},{value:"#7171C6",name:"sgi slateblue"},{value:"#7D9EC0",name:"sgi lightblue"},{value:"#388E8E",name:"sgi teal"},{value:"#71C671",name:"sgi chartreuse"},{value:"#8E8E38",name:"sgi olivedrab"},{value:"#C5C1AA",name:"sgi brightgray"},{value:"#C67171",name:"sgi salmon"},{value:"#555555",name:"sgi darkgray"},{value:"#1E1E1E",name:"sgi gray 12"},{value:"#282828",name:"sgi gray 16"},{value:"#515151",name:"sgi gray 32"},{value:"#5B5B5B",name:"sgi gray 36"},{value:"#848484",name:"sgi gray 52"},{value:"#8E8E8E",name:"sgi gray 56"},{value:"#AAAAAA",name:"sgi lightgray"},{value:"#B7B7B7",name:"sgi gray 72"},{value:"#C1C1C1",name:"sgi gray 76"},{value:"#EAEAEA",name:"sgi gray 92"},{value:"#F4F4F4",name:"sgi gray 96"},{value:"#FFFFFF",vga:!0,css:!0,name:"white"},{value:"#F5F5F5",name:"white smoke"},{value:"#F5F5F5",name:"gray 96"},{value:"#DCDCDC",css:!0,name:"gainsboro"},{value:"#D3D3D3",css:!0,name:"lightgrey"},{value:"#C0C0C0",vga:!0,css:!0,name:"silver"},{value:"#A9A9A9",css:!0,name:"darkgray"},{value:"#808080",vga:!0,css:!0,name:"gray"},{value:"#696969",css:!0,name:"dimgray"},{value:"#696969",name:"gray 42"},{value:"#000000",vga:!0,css:!0,name:"black"},{value:"#FCFCFC",name:"gray 99"},{value:"#FAFAFA",name:"gray 98"},{value:"#F7F7F7",name:"gray 97"},{value:"#F2F2F2",name:"gray 95"},{value:"#F0F0F0",name:"gray 94"},{value:"#EDEDED",name:"gray 93"},{value:"#EBEBEB",name:"gray 92"},{value:"#E8E8E8",name:"gray 91"},{value:"#E5E5E5",name:"gray 90"},{value:"#E3E3E3",name:"gray 89"},{value:"#E0E0E0",name:"gray 88"},{value:"#DEDEDE",name:"gray 87"},{value:"#DBDBDB",name:"gray 86"},{value:"#D9D9D9",name:"gray 85"},{value:"#D6D6D6",name:"gray 84"},{value:"#D4D4D4",name:"gray 83"},{value:"#D1D1D1",name:"gray 82"},{value:"#CFCFCF",name:"gray 81"},{value:"#CCCCCC",name:"gray 80"},{value:"#C9C9C9",name:"gray 79"},{value:"#C7C7C7",name:"gray 78"},{value:"#C4C4C4",name:"gray 77"},{value:"#C2C2C2",name:"gray 76"},{value:"#BFBFBF",name:"gray 75"},{value:"#BDBDBD",name:"gray 74"},{value:"#BABABA",name:"gray 73"},{value:"#B8B8B8",name:"gray 72"},{value:"#B5B5B5",name:"gray 71"},{value:"#B3B3B3",name:"gray 70"},{value:"#B0B0B0",name:"gray 69"},{value:"#ADADAD",name:"gray 68"},{value:"#ABABAB",name:"gray 67"},{value:"#A8A8A8",name:"gray 66"},{value:"#A6A6A6",name:"gray 65"},{value:"#A3A3A3",name:"gray 64"},{value:"#A1A1A1",name:"gray 63"},{value:"#9E9E9E",name:"gray 62"},{value:"#9C9C9C",name:"gray 61"},{value:"#999999",name:"gray 60"},{value:"#969696",name:"gray 59"},{value:"#949494",name:"gray 58"},{value:"#919191",name:"gray 57"},{value:"#8F8F8F",name:"gray 56"},{value:"#8C8C8C",name:"gray 55"},{value:"#8A8A8A",name:"gray 54"},{value:"#878787",name:"gray 53"},{value:"#858585",name:"gray 52"},{value:"#828282",name:"gray 51"},{value:"#7F7F7F",name:"gray 50"},{value:"#7D7D7D",name:"gray 49"},{value:"#7A7A7A",name:"gray 48"},{value:"#787878",name:"gray 47"},{value:"#757575",name:"gray 46"},{value:"#737373",name:"gray 45"},{value:"#707070",name:"gray 44"},{value:"#6E6E6E",name:"gray 43"},{value:"#666666",name:"gray 40"},{value:"#636363",name:"gray 39"},{value:"#616161",name:"gray 38"},{value:"#5E5E5E",name:"gray 37"},{value:"#5C5C5C",name:"gray 36"},{value:"#595959",name:"gray 35"},{value:"#575757",name:"gray 34"},{value:"#545454",name:"gray 33"},{value:"#525252",name:"gray 32"},{value:"#4F4F4F",name:"gray 31"},{value:"#4D4D4D",name:"gray 30"},{value:"#4A4A4A",name:"gray 29"},{value:"#474747",name:"gray 28"},{value:"#454545",name:"gray 27"},{value:"#424242",name:"gray 26"},{value:"#404040",name:"gray 25"},{value:"#3D3D3D",name:"gray 24"},{value:"#3B3B3B",name:"gray 23"},{value:"#383838",name:"gray 22"},{value:"#363636",name:"gray 21"},{value:"#333333",name:"gray 20"},{value:"#303030",name:"gray 19"},{value:"#2E2E2E",name:"gray 18"},{value:"#2B2B2B",name:"gray 17"},{value:"#292929",name:"gray 16"},{value:"#262626",name:"gray 15"},{value:"#242424",name:"gray 14"},{value:"#212121",name:"gray 13"},{value:"#1F1F1F",name:"gray 12"},{value:"#1C1C1C",name:"gray 11"},{value:"#1A1A1A",name:"gray 10"},{value:"#171717",name:"gray 9"},{value:"#141414",name:"gray 8"},{value:"#121212",name:"gray 7"},{value:"#0F0F0F",name:"gray 6"},{value:"#0D0D0D",name:"gray 5"},{value:"#0A0A0A",name:"gray 4"},{value:"#080808",name:"gray 3"},{value:"#050505",name:"gray 2"},{value:"#030303",name:"gray 1"},{value:"#F5F5F5",css:!0,name:"whitesmoke"}]});var xBe=XA((sdt,mI)=>{"use strict";var Ik=MBe(),SBe=Ik.filter(function(t){return!!t.css}),kBe=Ik.filter(function(t){return!!t.vga});mI.exports=function(t){var A=mI.exports.get(t);return A&&A.value};mI.exports.get=function(t){return t=t||"",t=t.trim().toLowerCase(),Ik.filter(function(A){return A.name.toLowerCase()===t}).pop()};mI.exports.all=mI.exports.get.all=function(){return Ik};mI.exports.get.css=function(t){return t?(t=t||"",t=t.trim().toLowerCase(),SBe.filter(function(A){return A.name.toLowerCase()===t}).pop()):SBe};mI.exports.get.vga=function(t){return t?(t=t||"",t=t.trim().toLowerCase(),kBe.filter(function(A){return A.name.toLowerCase()===t}).pop()):kBe}});var $Be=XA((adt,XBe)=>{"use strict";var GgA=1/0,KgA="[object Symbol]",UgA=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,UBe="\\ud800-\\udfff",TgA="\\u0300-\\u036f\\ufe20-\\ufe23",OgA="\\u20d0-\\u20f0",TBe="\\u2700-\\u27bf",OBe="a-z\\xdf-\\xf6\\xf8-\\xff",JgA="\\xac\\xb1\\xd7\\xf7",YgA="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",HgA="\\u2000-\\u206f",zgA=" \\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",JBe="A-Z\\xc0-\\xd6\\xd8-\\xde",PgA="\\ufe0e\\ufe0f",YBe=JgA+YgA+HgA+zgA,HBe="['\u2019]",_Be="["+YBe+"]",jgA="["+TgA+OgA+"]",zBe="\\d+",VgA="["+TBe+"]",PBe="["+OBe+"]",jBe="[^"+UBe+YBe+zBe+TBe+OBe+JBe+"]",qgA="\\ud83c[\\udffb-\\udfff]",WgA="(?:"+jgA+"|"+qgA+")",ZgA="[^"+UBe+"]",VBe="(?:\\ud83c[\\udde6-\\uddff]){2}",qBe="[\\ud800-\\udbff][\\udc00-\\udfff]",LQ="["+JBe+"]",XgA="\\u200d",RBe="(?:"+PBe+"|"+jBe+")",$gA="(?:"+LQ+"|"+jBe+")",NBe="(?:"+HBe+"(?:d|ll|m|re|s|t|ve))?",LBe="(?:"+HBe+"(?:D|LL|M|RE|S|T|VE))?",WBe=WgA+"?",ZBe="["+PgA+"]?",e0A="(?:"+XgA+"(?:"+[ZgA,VBe,qBe].join("|")+")"+ZBe+WBe+")*",A0A=ZBe+WBe+e0A,t0A="(?:"+[VgA,VBe,qBe].join("|")+")"+A0A,i0A=RegExp([LQ+"?"+PBe+"+"+NBe+"(?="+[_Be,LQ,"$"].join("|")+")",$gA+"+"+LBe+"(?="+[_Be,LQ+RBe,"$"].join("|")+")",LQ+"?"+RBe+"+"+NBe,LQ+"+"+LBe,zBe,t0A].join("|"),"g"),n0A=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,o0A=typeof global=="object"&&global&&global.Object===Object&&global,r0A=typeof self=="object"&&self&&self.Object===Object&&self,s0A=o0A||r0A||Function("return this")();function a0A(t){return t.match(UgA)||[]}function c0A(t){return n0A.test(t)}function l0A(t){return t.match(i0A)||[]}var g0A=Object.prototype,d0A=g0A.toString,FBe=s0A.Symbol,GBe=FBe?FBe.prototype:void 0,KBe=GBe?GBe.toString:void 0;function C0A(t){if(typeof t=="string")return t;if(u0A(t))return KBe?KBe.call(t):"";var A=t+"";return A=="0"&&1/t==-GgA?"-0":A}function I0A(t){return!!t&&typeof t=="object"}function u0A(t){return typeof t=="symbol"||I0A(t)&&d0A.call(t)==KgA}function h0A(t){return t==null?"":C0A(t)}function B0A(t,A,e){return t=h0A(t),A=e?void 0:A,A===void 0?c0A(t)?l0A(t):a0A(t):t.match(A)||[]}XBe.exports=B0A});var uEe=XA((cdt,IEe)=>{"use strict";var E0A=1/0,f0A="[object Symbol]",Q0A=/^\s+/,jz="\\ud800-\\udfff",nEe="\\u0300-\\u036f\\ufe20-\\ufe23",oEe="\\u20d0-\\u20f0",rEe="\\ufe0e\\ufe0f",m0A="["+jz+"]",zz="["+nEe+oEe+"]",Pz="\\ud83c[\\udffb-\\udfff]",p0A="(?:"+zz+"|"+Pz+")",sEe="[^"+jz+"]",aEe="(?:\\ud83c[\\udde6-\\uddff]){2}",cEe="[\\ud800-\\udbff][\\udc00-\\udfff]",lEe="\\u200d",gEe=p0A+"?",dEe="["+rEe+"]?",w0A="(?:"+lEe+"(?:"+[sEe,aEe,cEe].join("|")+")"+dEe+gEe+")*",y0A=dEe+gEe+w0A,D0A="(?:"+[sEe+zz+"?",zz,aEe,cEe,m0A].join("|")+")",v0A=RegExp(Pz+"(?="+Pz+")|"+D0A+y0A,"g"),b0A=RegExp("["+lEe+jz+nEe+oEe+rEe+"]"),M0A=typeof global=="object"&&global&&global.Object===Object&&global,S0A=typeof self=="object"&&self&&self.Object===Object&&self,k0A=M0A||S0A||Function("return this")();function x0A(t){return t.split("")}function _0A(t,A,e,i){for(var n=t.length,o=e+(i?1:-1);i?o--:++o-1;);return e}function F0A(t){return b0A.test(t)}function eEe(t){return F0A(t)?G0A(t):x0A(t)}function G0A(t){return t.match(v0A)||[]}var K0A=Object.prototype,U0A=K0A.toString,AEe=k0A.Symbol,tEe=AEe?AEe.prototype:void 0,iEe=tEe?tEe.toString:void 0;function T0A(t,A,e){var i=-1,n=t.length;A<0&&(A=-A>n?0:n+A),e=e>n?n:e,e<0&&(e+=n),n=A>e?0:e-A>>>0,A>>>=0;for(var o=Array(n);++i=i?t:T0A(t,A,e)}function J0A(t){return!!t&&typeof t=="object"}function Y0A(t){return typeof t=="symbol"||J0A(t)&&U0A.call(t)==f0A}function H0A(t){return t==null?"":CEe(t)}function z0A(t,A,e){if(t=H0A(t),t&&(e||A===void 0))return t.replace(Q0A,"");if(!t||!(A=CEe(A)))return t;var i=eEe(t),n=L0A(i,eEe(A));return O0A(i,n).join("")}IEe.exports=z0A});var LEe=XA((ldt,NEe)=>{"use strict";var Vz=1/0,P0A=9007199254740991,j0A=17976931348623157e292,hEe=NaN,V0A="[object Symbol]",q0A=/^\s+|\s+$/g,W0A=/^[-+]0x[0-9a-f]+$/i,Z0A=/^0b[01]+$/i,X0A=/^0o[0-7]+$/i,Xz="\\ud800-\\udfff",pEe="\\u0300-\\u036f\\ufe20-\\ufe23",wEe="\\u20d0-\\u20f0",yEe="\\ufe0e\\ufe0f",$0A="["+Xz+"]",qz="["+pEe+wEe+"]",Wz="\\ud83c[\\udffb-\\udfff]",edA="(?:"+qz+"|"+Wz+")",DEe="[^"+Xz+"]",vEe="(?:\\ud83c[\\udde6-\\uddff]){2}",bEe="[\\ud800-\\udbff][\\udc00-\\udfff]",MEe="\\u200d",SEe=edA+"?",kEe="["+yEe+"]?",AdA="(?:"+MEe+"(?:"+[DEe,vEe,bEe].join("|")+")"+kEe+SEe+")*",tdA=kEe+SEe+AdA,idA="(?:"+[DEe+qz+"?",qz,vEe,bEe,$0A].join("|")+")",Zz=RegExp(Wz+"(?="+Wz+")|"+idA+tdA,"g"),ndA=RegExp("["+MEe+Xz+pEe+wEe+yEe+"]"),odA=parseInt,rdA=typeof global=="object"&&global&&global.Object===Object&&global,sdA=typeof self=="object"&&self&&self.Object===Object&&self,adA=rdA||sdA||Function("return this")(),cdA=gdA("length");function ldA(t){return t.split("")}function gdA(t){return function(A){return A?.[t]}}function $z(t){return ndA.test(t)}function xEe(t){return $z(t)?CdA(t):cdA(t)}function ddA(t){return $z(t)?IdA(t):ldA(t)}function CdA(t){for(var A=Zz.lastIndex=0;Zz.test(t);)A++;return A}function IdA(t){return t.match(Zz)||[]}var udA=Object.prototype,hdA=udA.toString,BEe=adA.Symbol,BdA=Math.ceil,EdA=Math.floor,EEe=BEe?BEe.prototype:void 0,fEe=EEe?EEe.toString:void 0;function QEe(t,A){var e="";if(!t||A<1||A>P0A)return e;do A%2&&(e+=t),A=EdA(A/2),A&&(t+=t);while(A);return e}function fdA(t,A,e){var i=-1,n=t.length;A<0&&(A=-A>n?0:n+A),e=e>n?n:e,e<0&&(e+=n),n=A>e?0:e-A>>>0,A>>>=0;for(var o=Array(n);++i=i?t:fdA(t,A,e)}function mdA(t,A){A=A===void 0?" ":_Ee(A);var e=A.length;if(e<2)return e?QEe(A,t):A;var i=QEe(A,BdA(t/xEe(A)));return $z(A)?QdA(ddA(i),0,t).join(""):i.slice(0,t)}function mEe(t){var A=typeof t;return!!t&&(A=="object"||A=="function")}function pdA(t){return!!t&&typeof t=="object"}function REe(t){return typeof t=="symbol"||pdA(t)&&hdA.call(t)==V0A}function wdA(t){if(!t)return t===0?t:0;if(t=DdA(t),t===Vz||t===-Vz){var A=t<0?-1:1;return A*j0A}return t===t?t:0}function ydA(t){var A=wdA(t),e=A%1;return A===A?e?A-e:A:0}function DdA(t){if(typeof t=="number")return t;if(REe(t))return hEe;if(mEe(t)){var A=typeof t.valueOf=="function"?t.valueOf():t;t=mEe(A)?A+"":A}if(typeof t!="string")return t===0?t:+t;t=t.replace(q0A,"");var e=Z0A.test(t);return e||X0A.test(t)?odA(t.slice(2),e?2:8):W0A.test(t)?hEe:+t}function vdA(t){return t==null?"":_Ee(t)}function bdA(t,A,e){t=vdA(t),A=ydA(A);var i=A?xEe(t):0;return A&&i{"use strict";FEe.exports=(t,A,e,i)=>{let n=(t+(i||"")).toString().includes("%");if(typeof t=="string"?[t,A,e,i]=t.match(/(0?\.?\d{1,3})%?\b/g).map(Number):i!==void 0&&(i=parseFloat(i)),typeof t!="number"||typeof A!="number"||typeof e!="number"||t>255||A>255||e>255)throw new TypeError("Expected three numbers below 256");if(typeof i=="number"){if(!n&&i>=0&&i<=1)i=Math.round(255*i);else if(n&&i>=0&&i<=100)i=Math.round(255*i/100);else throw new TypeError(`Expected alpha value (${i}) as a fraction or percentage`);i=(i|256).toString(16).slice(1)}else i="";return(e|A<<8|t<<16|1<<24).toString(16).slice(1)+i}});var UEe=XA((ddt,KEe)=>{"use strict";var n8="a-f\\d",MdA=`#?[${n8}]{3}[${n8}]?`,SdA=`#?[${n8}]{6}([${n8}]{2})?`,kdA=new RegExp(`[^#${n8}]`,"gi"),xdA=new RegExp(`^${MdA}$|^${SdA}$`,"i");KEe.exports=(t,A={})=>{if(typeof t!="string"||kdA.test(t)||!xdA.test(t))throw new TypeError("Expected a valid hex string");t=t.replace(/^#/,"");let e=1;t.length===8&&(e=Number.parseInt(t.slice(6,8),16)/255,t=t.slice(0,6)),t.length===4&&(e=Number.parseInt(t.slice(3,4).repeat(2),16)/255,t=t.slice(0,3)),t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let i=Number.parseInt(t,16),n=i>>16,o=i>>8&255,r=i&255,s=typeof A.alpha=="number"?A.alpha:e;if(A.format==="array")return[n,o,r,s];if(A.format==="css"){let a=s===1?"":` / ${Number((s*100).toFixed(2))}%`;return`rgb(${n} ${o} ${r}${a})`}return{red:n,green:o,blue:r,alpha:s}}});var JEe=XA((Cdt,OEe)=>{"use strict";var _dA=xBe(),RdA=$Be(),NdA=uEe(),LdA=LEe(),FdA=GEe(),TEe=UEe(),eP=.75,AP=.25,tP=16777215,GdA=49979693;OEe.exports=function(t){return"#"+TdA(String(JSON.stringify(t)))};function KdA(t){var A=RdA(t),e=[];return A.forEach(function(i){var n=_dA(i);n&&e.push(TEe(NdA(n,"#"),{format:"array"}))}),e}function UdA(t){var A=[0,0,0];return t.forEach(function(e){for(var i=0;i<3;i++)A[i]+=e[i]}),[A[0]/t.length,A[1]/t.length,A[2]/t.length]}function TdA(t){var A,e=KdA(t);e.length>0&&(A=UdA(e));var i=1,n=0,o=1;if(t.length>0)for(var r=0;rn&&(n=t[r].charCodeAt(0)),o=parseInt(tP/n),i=(i+t[r].charCodeAt(0)*o*GdA)%tP;var s=(i*t.length%tP).toString(16);s=LdA(s,6,s);var a=TEe(s,{format:"array"});return A?FdA(AP*a[0]+eP*A[0],AP*a[1]+eP*A[1],AP*a[2]+eP*A[2]):s}});function bk(t,A){return Object.is(t,A)}var ms=null,s8=!1,Mk=1,Cc=Symbol("SIGNAL");function Ui(t){let A=ms;return ms=t,A}function Sk(){return ms}var Rh={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:"unknown",producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function HQ(t){if(s8)throw new Error("");if(ms===null)return;ms.consumerOnSignalRead(t);let A=ms.nextProducerIndex++;if(d8(ms),At.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function l8(t){d8(t);for(let A=0;A0}function d8(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}function aP(t){t.liveConsumerNode??=[],t.liveConsumerIndexOfThis??=[]}function cP(t){return t.producerNode!==void 0}function C8(t,A){let e=Object.create(ZEe);e.computation=t,A!==void 0&&(e.equal=A);let i=()=>{if(kk(e),HQ(e),e.value===a8)throw e.error;return e.value};return i[Cc]=e,i}var yk=Symbol("UNSET"),Dk=Symbol("COMPUTING"),a8=Symbol("ERRORED"),ZEe=_A(ae({},Rh),{value:yk,dirty:!0,error:null,equal:bk,kind:"computed",producerMustRecompute(t){return t.value===yk||t.value===Dk},producerRecomputeValue(t){if(t.value===Dk)throw new Error("Detected cycle in computations.");let A=t.value;t.value=Dk;let e=zQ(t),i,n=!1;try{i=t.computation(),Ui(null),n=A!==yk&&A!==a8&&i!==a8&&t.equal(A,i)}catch(o){i=a8,t.error=o}finally{c8(t,e)}if(n){t.value=A;return}t.value=i,t.version++}});function XEe(){throw new Error}var lP=XEe;function gP(t){lP(t)}function Rk(t){lP=t}var $Ee=null;function Nk(t,A){let e=Object.create(I8);e.value=t,A!==void 0&&(e.equal=A);let i=()=>(HQ(e),e.value);return i[Cc]=e,i}function jQ(t,A){_k()||gP(t),t.equal(t.value,A)||(t.value=A,efe(t))}function Lk(t,A){_k()||gP(t),jQ(t,A(t.value))}var I8=_A(ae({},Rh),{equal:bk,value:void 0,kind:"signal"});function efe(t){t.version++,rP(),xk(t),$Ee?.()}function Fk(t){let A=Ui(null);try{return t()}finally{Ui(A)}}var Gk;function VQ(){return Gk}function qd(t){let A=Gk;return Gk=t,A}var u8=Symbol("NotFound");function gi(t){return typeof t=="function"}function Nh(t){let e=t(i=>{Error.call(i),i.stack=new Error().stack});return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}var h8=Nh(t=>function(e){t(this),this.message=e?`${e.length} errors occurred during unsubscription: +${e.map((i,n)=>`${n+1}) ${i.toString()}`).join(` + `)}`:"",this.name="UnsubscriptionError",this.errors=e});function yI(t,A){if(t){let e=t.indexOf(A);0<=e&&t.splice(e,1)}}var Ot=class t{constructor(A){this.initialTeardown=A,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let A;if(!this.closed){this.closed=!0;let{_parentage:e}=this;if(e)if(this._parentage=null,Array.isArray(e))for(let o of e)o.remove(this);else e.remove(this);let{initialTeardown:i}=this;if(gi(i))try{i()}catch(o){A=o instanceof h8?o.errors:[o]}let{_finalizers:n}=this;if(n){this._finalizers=null;for(let o of n)try{dP(o)}catch(r){A=A??[],r instanceof h8?A=[...A,...r.errors]:A.push(r)}}if(A)throw new h8(A)}}add(A){var e;if(A&&A!==this)if(this.closed)dP(A);else{if(A instanceof t){if(A.closed||A._hasParent(this))return;A._addParent(this)}(this._finalizers=(e=this._finalizers)!==null&&e!==void 0?e:[]).push(A)}}_hasParent(A){let{_parentage:e}=this;return e===A||Array.isArray(e)&&e.includes(A)}_addParent(A){let{_parentage:e}=this;this._parentage=Array.isArray(e)?(e.push(A),e):e?[e,A]:A}_removeParent(A){let{_parentage:e}=this;e===A?this._parentage=null:Array.isArray(e)&&yI(e,A)}remove(A){let{_finalizers:e}=this;e&&yI(e,A),A instanceof t&&A._removeParent(this)}};Ot.EMPTY=(()=>{let t=new Ot;return t.closed=!0,t})();var Kk=Ot.EMPTY;function B8(t){return t instanceof Ot||t&&"closed"in t&&gi(t.remove)&&gi(t.add)&&gi(t.unsubscribe)}function dP(t){gi(t)?t():t.unsubscribe()}var Eg={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var Lh={setTimeout(t,A,...e){let{delegate:i}=Lh;return i?.setTimeout?i.setTimeout(t,A,...e):setTimeout(t,A,...e)},clearTimeout(t){let{delegate:A}=Lh;return(A?.clearTimeout||clearTimeout)(t)},delegate:void 0};function E8(t){Lh.setTimeout(()=>{let{onUnhandledError:A}=Eg;if(A)A(t);else throw t})}function DI(){}var CP=Uk("C",void 0,void 0);function IP(t){return Uk("E",void 0,t)}function uP(t){return Uk("N",t,void 0)}function Uk(t,A,e){return{kind:t,value:A,error:e}}var vI=null;function Fh(t){if(Eg.useDeprecatedSynchronousErrorHandling){let A=!vI;if(A&&(vI={errorThrown:!1,error:null}),t(),A){let{errorThrown:e,error:i}=vI;if(vI=null,e)throw i}}else t()}function hP(t){Eg.useDeprecatedSynchronousErrorHandling&&vI&&(vI.errorThrown=!0,vI.error=t)}var Wd=class extends Ot{constructor(A){super(),this.isStopped=!1,A?(this.destination=A,B8(A)&&A.add(this)):this.destination=rfe}static create(A,e,i){return new fg(A,e,i)}next(A){this.isStopped?Ok(uP(A),this):this._next(A)}error(A){this.isStopped?Ok(IP(A),this):(this.isStopped=!0,this._error(A))}complete(){this.isStopped?Ok(CP,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(A){this.destination.next(A)}_error(A){try{this.destination.error(A)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},nfe=Function.prototype.bind;function Tk(t,A){return nfe.call(t,A)}var Jk=class{constructor(A){this.partialObserver=A}next(A){let{partialObserver:e}=this;if(e.next)try{e.next(A)}catch(i){f8(i)}}error(A){let{partialObserver:e}=this;if(e.error)try{e.error(A)}catch(i){f8(i)}else f8(A)}complete(){let{partialObserver:A}=this;if(A.complete)try{A.complete()}catch(e){f8(e)}}},fg=class extends Wd{constructor(A,e,i){super();let n;if(gi(A)||!A)n={next:A??void 0,error:e??void 0,complete:i??void 0};else{let o;this&&Eg.useDeprecatedNextContext?(o=Object.create(A),o.unsubscribe=()=>this.unsubscribe(),n={next:A.next&&Tk(A.next,o),error:A.error&&Tk(A.error,o),complete:A.complete&&Tk(A.complete,o)}):n=A}this.destination=new Jk(n)}};function f8(t){Eg.useDeprecatedSynchronousErrorHandling?hP(t):E8(t)}function ofe(t){throw t}function Ok(t,A){let{onStoppedNotification:e}=Eg;e&&Lh.setTimeout(()=>e(t,A))}var rfe={closed:!0,next:DI,error:ofe,complete:DI};var Gh=typeof Symbol=="function"&&Symbol.observable||"@@observable";function qs(t){return t}function Yk(...t){return Hk(t)}function Hk(t){return t.length===0?qs:t.length===1?t[0]:function(e){return t.reduce((i,n)=>n(i),e)}}var nt=(()=>{class t{constructor(e){e&&(this._subscribe=e)}lift(e){let i=new t;return i.source=this,i.operator=e,i}subscribe(e,i,n){let o=afe(e)?e:new fg(e,i,n);return Fh(()=>{let{operator:r,source:s}=this;o.add(r?r.call(o,s):s?this._subscribe(o):this._trySubscribe(o))}),o}_trySubscribe(e){try{return this._subscribe(e)}catch(i){e.error(i)}}forEach(e,i){return i=BP(i),new i((n,o)=>{let r=new fg({next:s=>{try{e(s)}catch(a){o(a),r.unsubscribe()}},error:o,complete:n});this.subscribe(r)})}_subscribe(e){var i;return(i=this.source)===null||i===void 0?void 0:i.subscribe(e)}[Gh](){return this}pipe(...e){return Hk(e)(this)}toPromise(e){return e=BP(e),new e((i,n)=>{let o;this.subscribe(r=>o=r,r=>n(r),()=>i(o))})}}return t.create=A=>new t(A),t})();function BP(t){var A;return(A=t??Eg.Promise)!==null&&A!==void 0?A:Promise}function sfe(t){return t&&gi(t.next)&&gi(t.error)&&gi(t.complete)}function afe(t){return t&&t instanceof Wd||sfe(t)&&B8(t)}function zk(t){return gi(t?.lift)}function hi(t){return A=>{if(zk(A))return A.lift(function(e){try{return t(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function si(t,A,e,i,n){return new Pk(t,A,e,i,n)}var Pk=class extends Wd{constructor(A,e,i,n,o,r){super(A),this.onFinalize=o,this.shouldUnsubscribe=r,this._next=e?function(s){try{e(s)}catch(a){A.error(a)}}:super._next,this._error=n?function(s){try{n(s)}catch(a){A.error(a)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(s){A.error(s)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var A;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){let{closed:e}=this;super.unsubscribe(),!e&&((A=this.onFinalize)===null||A===void 0||A.call(this))}}};function Kh(){return hi((t,A)=>{let e=null;t._refCount++;let i=si(A,void 0,void 0,void 0,()=>{if(!t||t._refCount<=0||0<--t._refCount){e=null;return}let n=t._connection,o=e;e=null,n&&(!o||n===o)&&n.unsubscribe(),A.unsubscribe()});t.subscribe(i),i.closed||(e=t.connect())})}var g1=class extends nt{constructor(A,e){super(),this.source=A,this.subjectFactory=e,this._subject=null,this._refCount=0,this._connection=null,zk(A)&&(this.lift=A.lift)}_subscribe(A){return this.getSubject().subscribe(A)}getSubject(){let A=this._subject;return(!A||A.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;let{_connection:A}=this;this._subject=this._connection=null,A?.unsubscribe()}connect(){let A=this._connection;if(!A){A=this._connection=new Ot;let e=this.getSubject();A.add(this.source.subscribe(si(e,void 0,()=>{this._teardown(),e.complete()},i=>{this._teardown(),e.error(i)},()=>this._teardown()))),A.closed&&(this._connection=null,A=Ot.EMPTY)}return A}refCount(){return Kh()(this)}};var Uh={schedule(t){let A=requestAnimationFrame,e=cancelAnimationFrame,{delegate:i}=Uh;i&&(A=i.requestAnimationFrame,e=i.cancelAnimationFrame);let n=A(o=>{e=void 0,t(o)});return new Ot(()=>e?.(n))},requestAnimationFrame(...t){let{delegate:A}=Uh;return(A?.requestAnimationFrame||requestAnimationFrame)(...t)},cancelAnimationFrame(...t){let{delegate:A}=Uh;return(A?.cancelAnimationFrame||cancelAnimationFrame)(...t)},delegate:void 0};var EP=Nh(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var je=(()=>{class t extends nt{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){let i=new Th(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new EP}next(e){Fh(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let i of this.currentObservers)i.next(e)}})}error(e){Fh(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;let{observers:i}=this;for(;i.length;)i.shift().error(e)}})}complete(){Fh(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:e}=this;for(;e.length;)e.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var e;return((e=this.observers)===null||e===void 0?void 0:e.length)>0}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){let{hasError:i,isStopped:n,observers:o}=this;return i||n?Kk:(this.currentObservers=null,o.push(e),new Ot(()=>{this.currentObservers=null,yI(o,e)}))}_checkFinalizedStatuses(e){let{hasError:i,thrownError:n,isStopped:o}=this;i?e.error(n):o&&e.complete()}asObservable(){let e=new nt;return e.source=this,e}}return t.create=(A,e)=>new Th(A,e),t})(),Th=class extends je{constructor(A,e){super(),this.destination=A,this.source=e}next(A){var e,i;(i=(e=this.destination)===null||e===void 0?void 0:e.next)===null||i===void 0||i.call(e,A)}error(A){var e,i;(i=(e=this.destination)===null||e===void 0?void 0:e.error)===null||i===void 0||i.call(e,A)}complete(){var A,e;(e=(A=this.destination)===null||A===void 0?void 0:A.complete)===null||e===void 0||e.call(A)}_subscribe(A){var e,i;return(i=(e=this.source)===null||e===void 0?void 0:e.subscribe(A))!==null&&i!==void 0?i:Kk}};var Mt=class extends je{constructor(A){super(),this._value=A}get value(){return this.getValue()}_subscribe(A){let e=super._subscribe(A);return!e.closed&&A.next(this._value),e}getValue(){let{hasError:A,thrownError:e,_value:i}=this;if(A)throw e;return this._throwIfClosed(),i}next(A){super.next(this._value=A)}};var qQ={now(){return(qQ.delegate||Date).now()},delegate:void 0};var Zc=class extends je{constructor(A=1/0,e=1/0,i=qQ){super(),this._bufferSize=A,this._windowTime=e,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=e===1/0,this._bufferSize=Math.max(1,A),this._windowTime=Math.max(1,e)}next(A){let{isStopped:e,_buffer:i,_infiniteTimeWindow:n,_timestampProvider:o,_windowTime:r}=this;e||(i.push(A),!n&&i.push(o.now()+r)),this._trimBuffer(),super.next(A)}_subscribe(A){this._throwIfClosed(),this._trimBuffer();let e=this._innerSubscribe(A),{_infiniteTimeWindow:i,_buffer:n}=this,o=n.slice();for(let r=0;r0?super.requestAsyncId(A,e,i):(A.actions.push(this),A._scheduled||(A._scheduled=Uh.requestAnimationFrame(()=>A.flush(void 0))))}recycleAsyncId(A,e,i=0){var n;if(i!=null?i>0:this.delay>0)return super.recycleAsyncId(A,e,i);let{actions:o}=A;e!=null&&e===A._scheduled&&((n=o[o.length-1])===null||n===void 0?void 0:n.id)!==e&&(Uh.cancelAnimationFrame(e),A._scheduled=void 0)}};var p8=class extends Yh{flush(A){this._active=!0;let e;A?e=A.id:(e=this._scheduled,this._scheduled=void 0);let{actions:i}=this,n;A=A||i.shift();do if(n=A.execute(A.state,A.delay))break;while((A=i[0])&&A.id===e&&i.shift());if(this._active=!1,n){for(;(A=i[0])&&A.id===e&&i.shift();)A.unsubscribe();throw n}}};var ZQ=new p8(m8);var vr=new nt(t=>t.complete());function w8(t){return t&&gi(t.schedule)}function Vk(t){return t[t.length-1]}function d1(t){return gi(Vk(t))?t.pop():void 0}function v0(t){return w8(Vk(t))?t.pop():void 0}function fP(t,A){return typeof Vk(t)=="number"?t.pop():A}function XQ(t,A,e,i){var n=arguments.length,o=n<3?A:i===null?i=Object.getOwnPropertyDescriptor(A,e):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(t,A,e,i);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(n<3?r(o):n>3?r(A,e,o):r(A,e))||o);return n>3&&o&&Object.defineProperty(A,e,o),o}function mP(t,A,e,i){function n(o){return o instanceof e?o:new e(function(r){r(o)})}return new(e||(e=Promise))(function(o,r){function s(l){try{c(i.next(l))}catch(d){r(d)}}function a(l){try{c(i.throw(l))}catch(d){r(d)}}function c(l){l.done?o(l.value):n(l.value).then(s,a)}c((i=i.apply(t,A||[])).next())})}function QP(t){var A=typeof Symbol=="function"&&Symbol.iterator,e=A&&t[A],i=0;if(e)return e.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(A?"Object is not iterable.":"Symbol.iterator is not defined.")}function bI(t){return this instanceof bI?(this.v=t,this):new bI(t)}function pP(t,A,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=e.apply(t,A||[]),n,o=[];return n=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",r),n[Symbol.asyncIterator]=function(){return this},n;function r(I){return function(u){return Promise.resolve(u).then(I,d)}}function s(I,u){i[I]&&(n[I]=function(h){return new Promise(function(B,f){o.push([I,h,B,f])>1||a(I,h)})},u&&(n[I]=u(n[I])))}function a(I,u){try{c(i[I](u))}catch(h){C(o[0][3],h)}}function c(I){I.value instanceof bI?Promise.resolve(I.value.v).then(l,d):C(o[0][2],I)}function l(I){a("next",I)}function d(I){a("throw",I)}function C(I,u){I(u),o.shift(),o.length&&a(o[0][0],o[0][1])}}function wP(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var A=t[Symbol.asyncIterator],e;return A?A.call(t):(t=typeof QP=="function"?QP(t):t[Symbol.iterator](),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(o){e[o]=t[o]&&function(r){return new Promise(function(s,a){r=t[o](r),n(s,a,r.done,r.value)})}}function n(o,r,s,a){Promise.resolve(a).then(function(c){o({value:c,done:s})},r)}}var Hh=t=>t&&typeof t.length=="number"&&typeof t!="function";function y8(t){return gi(t?.then)}function D8(t){return gi(t[Gh])}function v8(t){return Symbol.asyncIterator&&gi(t?.[Symbol.asyncIterator])}function b8(t){return new TypeError(`You provided ${t!==null&&typeof t=="object"?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}function cfe(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var M8=cfe();function S8(t){return gi(t?.[M8])}function k8(t){return pP(this,arguments,function*(){let e=t.getReader();try{for(;;){let{value:i,done:n}=yield bI(e.read());if(n)return yield bI(void 0);yield yield bI(i)}}finally{e.releaseLock()}})}function x8(t){return gi(t?.getReader)}function zn(t){if(t instanceof nt)return t;if(t!=null){if(D8(t))return lfe(t);if(Hh(t))return gfe(t);if(y8(t))return dfe(t);if(v8(t))return yP(t);if(S8(t))return Cfe(t);if(x8(t))return Ife(t)}throw b8(t)}function lfe(t){return new nt(A=>{let e=t[Gh]();if(gi(e.subscribe))return e.subscribe(A);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function gfe(t){return new nt(A=>{for(let e=0;e{t.then(e=>{A.closed||(A.next(e),A.complete())},e=>A.error(e)).then(null,E8)})}function Cfe(t){return new nt(A=>{for(let e of t)if(A.next(e),A.closed)return;A.complete()})}function yP(t){return new nt(A=>{ufe(t,A).catch(e=>A.error(e))})}function Ife(t){return yP(k8(t))}function ufe(t,A){var e,i,n,o;return mP(this,void 0,void 0,function*(){try{for(e=wP(t);i=yield e.next(),!i.done;){let r=i.value;if(A.next(r),A.closed)return}}catch(r){n={error:r}}finally{try{i&&!i.done&&(o=e.return)&&(yield o.call(e))}finally{if(n)throw n.error}}A.complete()})}function Ic(t,A,e,i=0,n=!1){let o=A.schedule(function(){e(),n?t.add(this.schedule(null,i)):this.unsubscribe()},i);if(t.add(o),!n)return o}function Qg(t,A=0){return hi((e,i)=>{e.subscribe(si(i,n=>Ic(i,t,()=>i.next(n),A),()=>Ic(i,t,()=>i.complete(),A),n=>Ic(i,t,()=>i.error(n),A)))})}function _8(t,A=0){return hi((e,i)=>{i.add(t.schedule(()=>e.subscribe(i),A))})}function DP(t,A){return zn(t).pipe(_8(A),Qg(A))}function vP(t,A){return zn(t).pipe(_8(A),Qg(A))}function bP(t,A){return new nt(e=>{let i=0;return A.schedule(function(){i===t.length?e.complete():(e.next(t[i++]),e.closed||this.schedule())})})}function MP(t,A){return new nt(e=>{let i;return Ic(e,A,()=>{i=t[M8](),Ic(e,A,()=>{let n,o;try{({value:n,done:o}=i.next())}catch(r){e.error(r);return}o?e.complete():e.next(n)},0,!0)}),()=>gi(i?.return)&&i.return()})}function R8(t,A){if(!t)throw new Error("Iterable cannot be null");return new nt(e=>{Ic(e,A,()=>{let i=t[Symbol.asyncIterator]();Ic(e,A,()=>{i.next().then(n=>{n.done?e.complete():e.next(n.value)})},0,!0)})})}function SP(t,A){return R8(k8(t),A)}function kP(t,A){if(t!=null){if(D8(t))return DP(t,A);if(Hh(t))return bP(t,A);if(y8(t))return vP(t,A);if(v8(t))return R8(t,A);if(S8(t))return MP(t,A);if(x8(t))return SP(t,A)}throw b8(t)}function xo(t,A){return A?kP(t,A):zn(t)}function dA(...t){let A=v0(t);return xo(t,A)}function C1(t,A){let e=gi(t)?t:()=>t,i=n=>n.error(e());return new nt(A?n=>A.schedule(i,0,n):i)}function I1(t){return!!t&&(t instanceof nt||gi(t.lift)&&gi(t.subscribe))}var mg=Nh(t=>function(){t(this),this.name="EmptyError",this.message="no elements in sequence"});function qk(t,A){let e=typeof A=="object";return new Promise((i,n)=>{let o=new fg({next:r=>{i(r),o.unsubscribe()},error:n,complete:()=>{e?i(A.defaultValue):n(new mg)}});t.subscribe(o)})}function xP(t){return t instanceof Date&&!isNaN(t)}function aA(t,A){return hi((e,i)=>{let n=0;e.subscribe(si(i,o=>{i.next(t.call(A,o,n++))}))})}var{isArray:hfe}=Array;function Bfe(t,A){return hfe(A)?t(...A):t(A)}function zh(t){return aA(A=>Bfe(t,A))}var{isArray:Efe}=Array,{getPrototypeOf:ffe,prototype:Qfe,keys:mfe}=Object;function N8(t){if(t.length===1){let A=t[0];if(Efe(A))return{args:A,keys:null};if(pfe(A)){let e=mfe(A);return{args:e.map(i=>A[i]),keys:e}}}return{args:t,keys:null}}function pfe(t){return t&&typeof t=="object"&&ffe(t)===Qfe}function L8(t,A){return t.reduce((e,i,n)=>(e[i]=A[n],e),{})}function uc(...t){let A=v0(t),e=d1(t),{args:i,keys:n}=N8(t);if(i.length===0)return xo([],A);let o=new nt(wfe(i,A,n?r=>L8(n,r):qs));return e?o.pipe(zh(e)):o}function wfe(t,A,e=qs){return i=>{_P(A,()=>{let{length:n}=t,o=new Array(n),r=n,s=n;for(let a=0;a{let c=xo(t[a],A),l=!1;c.subscribe(si(i,d=>{o[a]=d,l||(l=!0,s--),s||i.next(e(o.slice()))},()=>{--r||i.complete()}))},i)},i)}}function _P(t,A,e){t?Ic(e,t,A):A()}function RP(t,A,e,i,n,o,r,s){let a=[],c=0,l=0,d=!1,C=()=>{d&&!a.length&&!c&&A.complete()},I=h=>c{o&&A.next(h),c++;let B=!1;zn(e(h,l++)).subscribe(si(A,f=>{n?.(f),o?I(f):A.next(f)},()=>{B=!0},void 0,()=>{if(B)try{for(c--;a.length&&cu(f)):u(f)}C()}catch(f){A.error(f)}}))};return t.subscribe(si(A,I,()=>{d=!0,C()})),()=>{s?.()}}function Lr(t,A,e=1/0){return gi(A)?Lr((i,n)=>aA((o,r)=>A(i,o,n,r))(zn(t(i,n))),e):(typeof A=="number"&&(e=A),hi((i,n)=>RP(i,n,t,e)))}function u1(t=1/0){return Lr(qs,t)}function NP(){return u1(1)}function h1(...t){return NP()(xo(t,v0(t)))}function b0(t){return new nt(A=>{zn(t()).subscribe(A)})}function $Q(...t){let A=d1(t),{args:e,keys:i}=N8(t),n=new nt(o=>{let{length:r}=e;if(!r){o.complete();return}let s=new Array(r),a=r,c=r;for(let l=0;l{d||(d=!0,c--),s[l]=C},()=>a--,void 0,()=>{(!a||!d)&&(c||o.next(i?L8(i,s):s),o.complete())}))}});return A?n.pipe(zh(A)):n}var yfe=["addListener","removeListener"],Dfe=["addEventListener","removeEventListener"],vfe=["on","off"];function Ya(t,A,e,i){if(gi(e)&&(i=e,e=void 0),i)return Ya(t,A,e).pipe(zh(i));let[n,o]=Sfe(t)?Dfe.map(r=>s=>t[r](A,s,e)):bfe(t)?yfe.map(LP(t,A)):Mfe(t)?vfe.map(LP(t,A)):[];if(!n&&Hh(t))return Lr(r=>Ya(r,A,e))(zn(t));if(!n)throw new TypeError("Invalid event target");return new nt(r=>{let s=(...a)=>r.next(1o(s)})}function LP(t,A){return e=>i=>t[e](A,i)}function bfe(t){return gi(t.addListener)&&gi(t.removeListener)}function Mfe(t){return gi(t.on)&&gi(t.off)}function Sfe(t){return gi(t.addEventListener)&&gi(t.removeEventListener)}function MI(t=0,A,e=jk){let i=-1;return A!=null&&(w8(A)?e=A:i=A),new nt(n=>{let o=xP(t)?+t-e.now():t;o<0&&(o=0);let r=0;return e.schedule(function(){n.closed||(n.next(r++),0<=i?this.schedule(void 0,i):n.complete())},o)})}function Bi(...t){let A=v0(t),e=fP(t,1/0),i=t;return i.length?i.length===1?zn(i[0]):u1(e)(xo(i,A)):vr}var{isArray:kfe}=Array;function FP(t){return t.length===1&&kfe(t[0])?t[0]:t}function $A(t,A){return hi((e,i)=>{let n=0;e.subscribe(si(i,o=>t.call(A,o,n++)&&i.next(o)))})}function Wk(...t){let A=d1(t),e=FP(t);return e.length?new nt(i=>{let n=e.map(()=>[]),o=e.map(()=>!1);i.add(()=>{n=o=null});for(let r=0;!i.closed&&r{if(n[r].push(s),n.every(a=>a.length)){let a=n.map(c=>c.shift());i.next(A?A(...a):a),n.some((c,l)=>!c.length&&o[l])&&i.complete()}},()=>{o[r]=!0,!n[r].length&&i.complete()}));return()=>{n=o=null}}):vr}function GP(t){return hi((A,e)=>{let i=!1,n=null,o=null,r=!1,s=()=>{if(o?.unsubscribe(),o=null,i){i=!1;let c=n;n=null,e.next(c)}r&&e.complete()},a=()=>{o=null,r&&e.complete()};A.subscribe(si(e,c=>{i=!0,n=c,o||zn(t(c)).subscribe(o=si(e,s,a))},()=>{r=!0,(!i||!o||o.closed)&&e.complete()}))})}function Ph(t,A=D0){return GP(()=>MI(t,A))}function br(t){return hi((A,e)=>{let i=null,n=!1,o;i=A.subscribe(si(e,void 0,void 0,r=>{o=zn(t(r,br(t)(A))),i?(i.unsubscribe(),i=null,o.subscribe(e)):n=!0})),n&&(i.unsubscribe(),i=null,o.subscribe(e))})}function KP(t,A,e,i,n){return(o,r)=>{let s=e,a=A,c=0;o.subscribe(si(r,l=>{let d=c++;a=s?t(a,l,d):(s=!0,l),i&&r.next(a)},n&&(()=>{s&&r.next(a),r.complete()})))}}function M0(t,A){return gi(A)?Lr(t,A,1):Lr(t,1)}function Ws(t,A=D0){return hi((e,i)=>{let n=null,o=null,r=null,s=()=>{if(n){n.unsubscribe(),n=null;let c=o;o=null,i.next(c)}};function a(){let c=r+t,l=A.now();if(l{o=c,r=A.now(),n||(n=A.schedule(a,t),i.add(n))},()=>{s(),i.complete()},void 0,()=>{o=n=null}))})}function B1(t){return hi((A,e)=>{let i=!1;A.subscribe(si(e,n=>{i=!0,e.next(n)},()=>{i||e.next(t),e.complete()}))})}function Pn(t){return t<=0?()=>vr:hi((A,e)=>{let i=0;A.subscribe(si(e,n=>{++i<=t&&(e.next(n),t<=i&&e.complete())}))})}function jh(t){return aA(()=>t)}function Ha(t,A=qs){return t=t??xfe,hi((e,i)=>{let n,o=!0;e.subscribe(si(i,r=>{let s=A(r);(o||!t(n,s))&&(o=!1,n=s,i.next(r))}))})}function xfe(t,A){return t===A}function F8(t=_fe){return hi((A,e)=>{let i=!1;A.subscribe(si(e,n=>{i=!0,e.next(n)},()=>i?e.complete():e.error(t())))})}function _fe(){return new mg}function S0(t){return hi((A,e)=>{try{A.subscribe(e)}finally{e.add(t)}})}function _l(t,A){let e=arguments.length>=2;return i=>i.pipe(t?$A((n,o)=>t(n,o,i)):qs,Pn(1),e?B1(A):F8(()=>new mg))}function Vh(t){return t<=0?()=>vr:hi((A,e)=>{let i=[];A.subscribe(si(e,n=>{i.push(n),t{for(let n of i)e.next(n);e.complete()},void 0,()=>{i=null}))})}function Zk(t,A){let e=arguments.length>=2;return i=>i.pipe(t?$A((n,o)=>t(n,o,i)):qs,Vh(1),e?B1(A):F8(()=>new mg))}function k0(){return hi((t,A)=>{let e,i=!1;t.subscribe(si(A,n=>{let o=e;e=n,i&&A.next([o,n]),i=!0}))})}function Xk(t,A){return hi(KP(t,A,arguments.length>=2,!0))}function Rl(t={}){let{connector:A=()=>new je,resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:n=!0}=t;return o=>{let r,s,a,c=0,l=!1,d=!1,C=()=>{s?.unsubscribe(),s=void 0},I=()=>{C(),r=a=void 0,l=d=!1},u=()=>{let h=r;I(),h?.unsubscribe()};return hi((h,B)=>{c++,!d&&!l&&C();let f=a=a??A();B.add(()=>{c--,c===0&&!d&&!l&&(s=$k(u,n))}),f.subscribe(B),!r&&c>0&&(r=new fg({next:b=>f.next(b),error:b=>{d=!0,C(),s=$k(I,e,b),f.error(b)},complete:()=>{l=!0,C(),s=$k(I,i),f.complete()}}),zn(h).subscribe(r))})(o)}}function $k(t,A,...e){if(A===!0){t();return}if(A===!1)return;let i=new fg({next:()=>{i.unsubscribe(),t()}});return zn(A(...e)).subscribe(i)}function za(t,A,e){let i,n=!1;return t&&typeof t=="object"?{bufferSize:i=1/0,windowTime:A=1/0,refCount:n=!1,scheduler:e}=t:i=t??1/0,Rl({connector:()=>new Zc(i,A,e),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:n})}function Pa(t){return $A((A,e)=>t<=e)}function In(...t){let A=v0(t);return hi((e,i)=>{(A?h1(t,e,A):h1(t,e)).subscribe(i)})}function Si(t,A){return hi((e,i)=>{let n=null,o=0,r=!1,s=()=>r&&!n&&i.complete();e.subscribe(si(i,a=>{n?.unsubscribe();let c=0,l=o++;zn(t(a,l)).subscribe(n=si(i,d=>i.next(A?A(a,d,l,c++):d),()=>{n=null,s()}))},()=>{r=!0,s()}))})}function mt(t){return hi((A,e)=>{zn(t).subscribe(si(e,()=>e.complete(),DI)),!e.closed&&A.subscribe(e)})}function ex(t,A=!1){return hi((e,i)=>{let n=0;e.subscribe(si(i,o=>{let r=t(o,n++);(r||A)&&i.next(o),!r&&i.complete()}))})}function Pt(t,A,e){let i=gi(t)||A||e?{next:t,error:A,complete:e}:t;return i?hi((n,o)=>{var r;(r=i.subscribe)===null||r===void 0||r.call(i);let s=!0;n.subscribe(si(o,a=>{var c;(c=i.next)===null||c===void 0||c.call(i,a),o.next(a)},()=>{var a;s=!1,(a=i.complete)===null||a===void 0||a.call(i),o.complete()},a=>{var c;s=!1,(c=i.error)===null||c===void 0||c.call(i,a),o.error(a)},()=>{var a,c;s&&((a=i.unsubscribe)===null||a===void 0||a.call(i)),(c=i.finalize)===null||c===void 0||c.call(i)}))}):qs}function e4(...t){let A=d1(t);return hi((e,i)=>{let n=t.length,o=new Array(n),r=t.map(()=>!1),s=!1;for(let a=0;a{o[a]=c,!s&&!r[a]&&(r[a]=!0,(s=r.every(qs))&&(r=null))},DI));e.subscribe(si(i,a=>{if(s){let c=[a,...o];i.next(A?A(...c):c)}}))})}var Rj="https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss",lA=class extends Error{code;constructor(A,e){super(mw(A,e)),this.code=A}};function Rfe(t){return`NG0${Math.abs(t)}`}function mw(t,A){return`${Rfe(t)}${A?": "+A:""}`}var Nj=Symbol("InputSignalNode#UNSET"),Nfe=_A(ae({},I8),{transformFn:void 0,applyValueToInputSignal(t,A){jQ(t,A)}});function Lj(t,A){let e=Object.create(Nfe);e.value=t,e.transformFn=A?.transform;function i(){if(HQ(e),e.value===Nj){let n=null;throw new lA(-950,n)}return e.value}return i[Cc]=e,i}function C4(t){return{toString:t}.toString()}var G8="__parameters__";function Lfe(t){return function(...e){if(t){let i=t(...e);for(let n in i)this[n]=i[n]}}}function Fj(t,A,e){return C4(()=>{let i=Lfe(A);function n(...o){if(this instanceof n)return i.apply(this,o),this;let r=new n(...o);return s.annotation=r,s;function s(a,c,l){let d=a.hasOwnProperty(G8)?a[G8]:Object.defineProperty(a,G8,{value:[]})[G8];for(;d.length<=l;)d.push(null);return(d[l]=d[l]||[]).push(r),a}}return n.prototype.ngMetadataName=t,n.annotationCls=n,n})}var Xc=globalThis;function jo(t){for(let A in t)if(t[A]===jo)return A;throw Error("Could not find renamed property on target object.")}function Ffe(t,A){for(let e in A)A.hasOwnProperty(e)&&!t.hasOwnProperty(e)&&(t[e]=A[e])}function Bc(t){if(typeof t=="string")return t;if(Array.isArray(t))return`[${t.map(Bc).join(", ")}]`;if(t==null)return""+t;let A=t.overriddenName||t.name;if(A)return`${A}`;let e=t.toString();if(e==null)return""+e;let i=e.indexOf(` +`);return i>=0?e.slice(0,i):e}function ux(t,A){return t?A?`${t} ${A}`:t:A||""}var Gfe=jo({__forward_ref__:jo});function zr(t){return t.__forward_ref__=zr,t.toString=function(){return Bc(this())},t}function Zs(t){return Gj(t)?t():t}function Gj(t){return typeof t=="function"&&t.hasOwnProperty(Gfe)&&t.__forward_ref__===zr}function be(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function TA(t){return{providers:t.providers||[],imports:t.imports||[]}}function pw(t){return UP(t,Uj)||UP(t,Tj)}function Kj(t){return pw(t)!==null}function UP(t,A){return t.hasOwnProperty(A)?t[A]:null}function Kfe(t){let A=t&&(t[Uj]||t[Tj]);return A||null}function TP(t){return t&&(t.hasOwnProperty(OP)||t.hasOwnProperty(Ufe))?t[OP]:null}var Uj=jo({\u0275prov:jo}),OP=jo({\u0275inj:jo}),Tj=jo({ngInjectableDef:jo}),Ufe=jo({ngInjectorDef:jo}),re=class{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(A,e){this._desc=A,this.\u0275prov=void 0,typeof e=="number"?this.__NG_ELEMENT_ID__=e:e!==void 0&&(this.\u0275prov=be({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}};function Oj(t){return t&&!!t.\u0275providers}var Tfe=jo({\u0275cmp:jo}),Ofe=jo({\u0275dir:jo}),Jfe=jo({\u0275pipe:jo}),Yfe=jo({\u0275mod:jo}),V8=jo({\u0275fac:jo}),n4=jo({__NG_ELEMENT_ID__:jo}),JP=jo({__NG_ENV_ID__:jo});function xI(t){return typeof t=="string"?t:t==null?"":String(t)}function Hfe(t){return typeof t=="function"?t.name||t.toString():typeof t=="object"&&t!=null&&typeof t.type=="function"?t.type.name||t.type.toString():xI(t)}function Jj(t,A){throw new lA(-200,t)}function v_(t,A){throw new lA(-201,!1)}var ji=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(ji||{}),hx;function Yj(){return hx}function hc(t){let A=hx;return hx=t,A}function Hj(t,A,e){let i=pw(t);if(i&&i.providedIn=="root")return i.value===void 0?i.value=i.factory():i.value;if(e&ji.Optional)return null;if(A!==void 0)return A;v_(t,"Injector")}var zfe={},SI=zfe,Bx="__NG_DI_FLAG__",q8=class{injector;constructor(A){this.injector=A}retrieve(A,e){let i=e;return this.injector.get(A,i.optional?u8:SI,i)}},W8="ngTempTokenPath",Pfe="ngTokenPath",jfe=/\n/gm,Vfe="\u0275",YP="__source";function qfe(t,A=ji.Default){if(VQ()===void 0)throw new lA(-203,!1);if(VQ()===null)return Hj(t,void 0,A);{let e=VQ(),i;return e instanceof q8?i=e.injector:i=e,i.get(t,A&ji.Optional?null:void 0,A)}}function UA(t,A=ji.Default){return(Yj()||qfe)(Zs(t),A)}function E(t,A=ji.Default){return UA(t,ww(A))}function ww(t){return typeof t>"u"||typeof t=="number"?t:0|(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function Ex(t){let A=[];for(let e=0;e ");else if(typeof A=="object"){let o=[];for(let r in A)if(A.hasOwnProperty(r)){let s=A[r];o.push(r+":"+(typeof s=="string"?JSON.stringify(s):Bc(s)))}n=`{${o.join(", ")}}`}return`${e}${i?"("+i+")":""}[${n}]: ${t.replace(jfe,` + `)}`}var gB=zj(Fj("Optional"),8);var yw=zj(Fj("SkipSelf"),4);function _I(t,A){let e=t.hasOwnProperty(V8);return e?t[V8]:null}function $fe(t,A,e){if(t.length!==A.length)return!1;for(let i=0;iArray.isArray(e)?b_(e,A):A(e))}function Pj(t,A,e){A>=t.length?t.push(e):t.splice(A,0,e)}function Z8(t,A){return A>=t.length-1?t.pop():t.splice(A,1)[0]}function AQe(t,A){let e=[];for(let i=0;iA;){let o=n-2;t[n]=t[o],n--}t[A]=e,t[A+1]=i}}function I4(t,A,e){let i=u4(t,A);return i>=0?t[i|1]=e:(i=~i,tQe(t,i,A,e)),i}function Ax(t,A){let e=u4(t,A);if(e>=0)return t[e|1]}function u4(t,A){return iQe(t,A,1)}function iQe(t,A,e){let i=0,n=t.length>>e;for(;n!==i;){let o=i+(n-i>>1),r=t[o<A?n=o:i=o+1}return~(n<{e.push(r)};return b_(A,r=>{let s=r;fx(s,o,[],i)&&(n||=[],n.push(s))}),n!==void 0&&Xj(n,o),e}function Xj(t,A){for(let e=0;e{A(o,i)})}}function fx(t,A,e,i){if(t=Zs(t),!t)return!1;let n=null,o=TP(t),r=!o&&Q1(t);if(!o&&!r){let a=t.ngModule;if(o=TP(a),o)n=a;else return!1}else{if(r&&!r.standalone)return!1;n=t}let s=i.has(n);if(r){if(s)return!1;if(i.add(n),r.dependencies){let a=typeof r.dependencies=="function"?r.dependencies():r.dependencies;for(let c of a)fx(c,A,e,i)}}else if(o){if(o.imports!=null&&!s){i.add(n);let c;try{b_(o.imports,l=>{fx(l,A,e,i)&&(c||=[],c.push(l))})}finally{}c!==void 0&&Xj(c,A)}if(!s){let c=_I(n)||(()=>new n);A({provide:n,useFactory:c,deps:ja},n),A({provide:Vj,useValue:n,multi:!0},n),A({provide:AB,useValue:()=>UA(n),multi:!0},n)}let a=o.providers;if(a!=null&&!s){let c=t;S_(a,l=>{A(l,c)})}}else return!1;return n!==t&&t.providers!==void 0}function S_(t,A){for(let e of t)Oj(e)&&(e=e.\u0275providers),Array.isArray(e)?S_(e,A):A(e)}var oQe=jo({provide:String,useValue:jo});function $j(t){return t!==null&&typeof t=="object"&&oQe in t}function rQe(t){return!!(t&&t.useExisting)}function sQe(t){return!!(t&&t.useFactory)}function tB(t){return typeof t=="function"}function aQe(t){return!!t.useClass}var Dw=new re(""),J8={},HP={},tx;function vw(){return tx===void 0&&(tx=new X8),tx}var Hr=class{},o4=class extends Hr{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(A,e,i,n){super(),this.parent=e,this.source=i,this.scopes=n,mx(A,r=>this.processProvider(r)),this.records.set(jj,qh(void 0,this)),n.has("environment")&&this.records.set(Hr,qh(void 0,this));let o=this.records.get(Dw);o!=null&&typeof o.value=="string"&&this.scopes.add(o.value),this.injectorDefTypes=new Set(this.get(Vj,ja,ji.Self))}retrieve(A,e){let i=e;return this.get(A,i.optional?u8:SI,i)}destroy(){t4(this),this._destroyed=!0;let A=Ui(null);try{for(let i of this._ngOnDestroyHooks)i.ngOnDestroy();let e=this._onDestroyHooks;this._onDestroyHooks=[];for(let i of e)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),Ui(A)}}onDestroy(A){return t4(this),this._onDestroyHooks.push(A),()=>this.removeOnDestroy(A)}runInContext(A){t4(this);let e=qd(this),i=hc(void 0),n;try{return A()}finally{qd(e),hc(i)}}get(A,e=SI,i=ji.Default){if(t4(this),A.hasOwnProperty(JP))return A[JP](this);i=ww(i);let n,o=qd(this),r=hc(void 0);try{if(!(i&ji.SkipSelf)){let a=this.records.get(A);if(a===void 0){let c=CQe(A)&&pw(A);c&&this.injectableDefInScope(c)?a=qh(Qx(A),J8):a=null,this.records.set(A,a)}if(a!=null)return this.hydrate(A,a,i)}let s=i&ji.Self?vw():this.parent;return e=i&ji.Optional&&e===SI?null:e,s.get(A,e)}catch(s){if(s.name==="NullInjectorError"){if((s[W8]=s[W8]||[]).unshift(Bc(A)),o)throw s;return Zfe(s,A,"R3InjectorError",this.source)}else throw s}finally{hc(r),qd(o)}}resolveInjectorInitializers(){let A=Ui(null),e=qd(this),i=hc(void 0),n;try{let o=this.get(AB,ja,ji.Self);for(let r of o)r()}finally{qd(e),hc(i),Ui(A)}}toString(){let A=[],e=this.records;for(let i of e.keys())A.push(Bc(i));return`R3Injector[${A.join(", ")}]`}processProvider(A){A=Zs(A);let e=tB(A)?A:Zs(A&&A.provide),i=lQe(A);if(!tB(A)&&A.multi===!0){let n=this.records.get(e);n||(n=qh(void 0,J8,!0),n.factory=()=>Ex(n.multi),this.records.set(e,n)),e=A,n.multi.push(A)}this.records.set(e,i)}hydrate(A,e,i){let n=Ui(null);try{return e.value===HP?Jj(Bc(A)):e.value===J8&&(e.value=HP,e.value=e.factory(void 0,i)),typeof e.value=="object"&&e.value&&dQe(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}finally{Ui(n)}}injectableDefInScope(A){if(!A.providedIn)return!1;let e=Zs(A.providedIn);return typeof e=="string"?e==="any"||this.scopes.has(e):this.injectorDefTypes.has(e)}removeOnDestroy(A){let e=this._onDestroyHooks.indexOf(A);e!==-1&&this._onDestroyHooks.splice(e,1)}};function Qx(t){let A=pw(t),e=A!==null?A.factory:_I(t);if(e!==null)return e;if(t instanceof re)throw new lA(204,!1);if(t instanceof Function)return cQe(t);throw new lA(204,!1)}function cQe(t){if(t.length>0)throw new lA(204,!1);let e=Kfe(t);return e!==null?()=>e.factory(t):()=>new t}function lQe(t){if($j(t))return qh(void 0,t.useValue);{let A=eV(t);return qh(A,J8)}}function eV(t,A,e){let i;if(tB(t)){let n=Zs(t);return _I(n)||Qx(n)}else if($j(t))i=()=>Zs(t.useValue);else if(sQe(t))i=()=>t.useFactory(...Ex(t.deps||[]));else if(rQe(t))i=(n,o)=>UA(Zs(t.useExisting),o!==void 0&&o&ji.Optional?ji.Optional:void 0);else{let n=Zs(t&&(t.useClass||t.provide));if(gQe(t))i=()=>new n(...Ex(t.deps));else return _I(n)||Qx(n)}return i}function t4(t){if(t.destroyed)throw new lA(205,!1)}function qh(t,A,e=!1){return{factory:t,value:A,multi:e?[]:void 0}}function gQe(t){return!!t.deps}function dQe(t){return t!==null&&typeof t=="object"&&typeof t.ngOnDestroy=="function"}function CQe(t){return typeof t=="function"||typeof t=="object"&&t instanceof re}function mx(t,A){for(let e of t)Array.isArray(e)?mx(e,A):e&&Oj(e)?mx(e.\u0275providers,A):A(e)}function Xr(t,A){let e;t instanceof o4?(t4(t),e=t):e=new q8(t);let i,n=qd(e),o=hc(void 0);try{return A()}finally{qd(n),hc(o)}}function k_(){return Yj()!==void 0||VQ()!=null}function e2(t){if(!k_())throw new lA(-203,!1)}function IQe(t){return typeof t=="function"}var K0=0,Li=1,fi=2,Ea=3,wg=4,Qc=5,iB=6,$8=7,gs=8,nB=9,Zd=10,dr=11,r4=12,zP=13,dB=14,Ec=15,RI=16,Wh=17,Xd=18,bw=19,AV=20,E1=21,ix=22,NI=23,Nl=24,$h=25,Zr=26,x_=1;var LI=7,ew=8,oB=9,Ba=10;function f1(t){return Array.isArray(t)&&typeof t[x_]=="object"}function A2(t){return Array.isArray(t)&&t[x_]===!0}function __(t){return(t.flags&4)!==0}function CB(t){return t.componentOffset>-1}function Mw(t){return(t.flags&1)===1}function yg(t){return!!t.template}function Aw(t){return(t[fi]&512)!==0}function IB(t){return(t[fi]&256)===256}var px=class{previousValue;currentValue;firstChange;constructor(A,e,i){this.previousValue=A,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}};function tV(t,A,e,i){A!==null?A.applyValueToInputSignal(A,i):t[e]=i}var ti=(()=>{let t=()=>iV;return t.ngInherit=!0,t})();function iV(t){return t.type.prototype.ngOnChanges&&(t.setInput=hQe),uQe}function uQe(){let t=oV(this),A=t?.current;if(A){let e=t.previous;if(e===_0)t.previous=A;else for(let i in A)e[i]=A[i];t.current=null,this.ngOnChanges(A)}}function hQe(t,A,e,i,n){let o=this.declaredInputs[i],r=oV(t)||BQe(t,{previous:_0,current:null}),s=r.current||(r.current={}),a=r.previous,c=a[o];s[o]=new px(c&&c.currentValue,e,a===_0),tV(t,A,n,e)}var nV="__ngSimpleChanges__";function oV(t){return t[nV]||null}function BQe(t,A){return t[nV]=A}var PP=null;var _o=function(t,A=null,e){PP?.(t,A,e)},rV="svg",EQe="math";function R0(t){for(;Array.isArray(t);)t=t[K0];return t}function fQe(t){for(;Array.isArray(t);){if(typeof t[x_]=="object")return t;t=t[K0]}return null}function sV(t,A){return R0(A[t])}function U0(t,A){return R0(A[t.index])}function R_(t,A){return t.data[A]}function Sw(t,A){return t[A]}function N_(t,A,e,i){e>=t.data.length&&(t.data[e]=null,t.blueprint[e]=null),A[e]=i}function N0(t,A){let e=A[t];return f1(e)?e:e[K0]}function QQe(t){return(t[fi]&4)===4}function L_(t){return(t[fi]&128)===128}function mQe(t){return A2(t[Ea])}function m1(t,A){return A==null?null:t[A]}function aV(t){t[Wh]=0}function cV(t){t[fi]&1024||(t[fi]|=1024,L_(t)&&uB(t))}function pQe(t,A){for(;t>0;)A=A[dB],t--;return A}function kw(t){return!!(t[fi]&9216||t[Nl]?.dirty)}function wx(t){t[Zd].changeDetectionScheduler?.notify(8),t[fi]&64&&(t[fi]|=1024),kw(t)&&uB(t)}function uB(t){t[Zd].changeDetectionScheduler?.notify(0);let A=FI(t);for(;A!==null&&!(A[fi]&8192||(A[fi]|=8192,!L_(A)));)A=FI(A)}function lV(t,A){if(IB(t))throw new lA(911,!1);t[E1]===null&&(t[E1]=[]),t[E1].push(A)}function wQe(t,A){if(t[E1]===null)return;let e=t[E1].indexOf(A);e!==-1&&t[E1].splice(e,1)}function FI(t){let A=t[Ea];return A2(A)?A[Ea]:A}function F_(t){return t[$8]??=[]}function G_(t){return t.cleanup??=[]}function yQe(t,A,e,i){let n=F_(A);n.push(e),t.firstCreatePass&&G_(t).push(i,n.length-1)}var Ti={lFrame:BV(null),bindingsEnabled:!0,skipHydrationRootTNode:null};var yx=!1;function DQe(){return Ti.lFrame.elementDepthCount}function vQe(){Ti.lFrame.elementDepthCount++}function bQe(){Ti.lFrame.elementDepthCount--}function K_(){return Ti.bindingsEnabled}function gV(){return Ti.skipHydrationRootTNode!==null}function MQe(t){return Ti.skipHydrationRootTNode===t}function SQe(){Ti.skipHydrationRootTNode=null}function Ai(){return Ti.lFrame.lView}function Ro(){return Ti.lFrame.tView}function q(t){return Ti.lFrame.contextLView=t,t[gs]}function W(t){return Ti.lFrame.contextLView=null,t}function Xs(){let t=dV();for(;t!==null&&t.type===64;)t=t.parent;return t}function dV(){return Ti.lFrame.currentTNode}function kQe(){let t=Ti.lFrame,A=t.currentTNode;return t.isParent?A:A.parent}function p1(t,A){let e=Ti.lFrame;e.currentTNode=t,e.isParent=A}function U_(){return Ti.lFrame.isParent}function T_(){Ti.lFrame.isParent=!1}function CV(){return Ti.lFrame.contextLView}function IV(){return yx}function tw(t){let A=yx;return yx=t,A}function B4(){let t=Ti.lFrame,A=t.bindingRootIndex;return A===-1&&(A=t.bindingRootIndex=t.tView.bindingStartIndex),A}function xQe(){return Ti.lFrame.bindingIndex}function _Qe(t){return Ti.lFrame.bindingIndex=t}function w1(){return Ti.lFrame.bindingIndex++}function O_(t){let A=Ti.lFrame,e=A.bindingIndex;return A.bindingIndex=A.bindingIndex+t,e}function RQe(){return Ti.lFrame.inI18n}function NQe(t,A){let e=Ti.lFrame;e.bindingIndex=e.bindingRootIndex=t,Dx(A)}function LQe(){return Ti.lFrame.currentDirectiveIndex}function Dx(t){Ti.lFrame.currentDirectiveIndex=t}function J_(t){let A=Ti.lFrame.currentDirectiveIndex;return A===-1?null:t[A]}function Y_(){return Ti.lFrame.currentQueryIndex}function xw(t){Ti.lFrame.currentQueryIndex=t}function FQe(t){let A=t[Li];return A.type===2?A.declTNode:A.type===1?t[Qc]:null}function uV(t,A,e){if(e&ji.SkipSelf){let n=A,o=t;for(;n=n.parent,n===null&&!(e&ji.Host);)if(n=FQe(o),n===null||(o=o[dB],n.type&10))break;if(n===null)return!1;A=n,t=o}let i=Ti.lFrame=hV();return i.currentTNode=A,i.lView=t,!0}function H_(t){let A=hV(),e=t[Li];Ti.lFrame=A,A.currentTNode=e.firstChild,A.lView=t,A.tView=e,A.contextLView=t,A.bindingIndex=e.bindingStartIndex,A.inI18n=!1}function hV(){let t=Ti.lFrame,A=t===null?null:t.child;return A===null?BV(t):A}function BV(t){let A={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return t!==null&&(t.child=A),A}function EV(){let t=Ti.lFrame;return Ti.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}var fV=EV;function z_(){let t=EV();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function GQe(t){return(Ti.lFrame.contextLView=pQe(t,Ti.lFrame.contextLView))[gs]}function T0(){return Ti.lFrame.selectedIndex}function GI(t){Ti.lFrame.selectedIndex=t}function hB(){let t=Ti.lFrame;return R_(t.tView,t.selectedIndex)}function ft(){Ti.lFrame.currentNamespace=rV}function $s(){KQe()}function KQe(){Ti.lFrame.currentNamespace=null}function UQe(){return Ti.lFrame.currentNamespace}var QV=!0;function _w(){return QV}function Rw(t){QV=t}function TQe(t,A,e){let{ngOnChanges:i,ngOnInit:n,ngDoCheck:o}=A.type.prototype;if(i){let r=iV(A);(e.preOrderHooks??=[]).push(t,r),(e.preOrderCheckHooks??=[]).push(t,r)}n&&(e.preOrderHooks??=[]).push(0-t,n),o&&((e.preOrderHooks??=[]).push(t,o),(e.preOrderCheckHooks??=[]).push(t,o))}function P_(t,A){for(let e=A.directiveStart,i=A.directiveEnd;e=i)break}else A[a]<0&&(t[Wh]+=65536),(s>14>16&&(t[fi]&3)===A&&(t[fi]+=16384,jP(s,o)):jP(s,o)}var eB=-1,KI=class{factory;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(A,e,i){this.factory=A,this.canSeeViewProviders=e,this.injectImpl=i}};function JQe(t){return(t.flags&8)!==0}function YQe(t){return(t.flags&16)!==0}function HQe(t,A,e){let i=0;for(;iA){r=o-1;break}}}for(;o>16}function nw(t,A){let e=PQe(t),i=A;for(;e>0;)i=i[dB],e--;return i}var vx=!0;function ow(t){let A=vx;return vx=t,A}var jQe=256,yV=jQe-1,DV=5,VQe=0,x0={};function qQe(t,A,e){let i;typeof e=="string"?i=e.charCodeAt(0)||0:e.hasOwnProperty(n4)&&(i=e[n4]),i==null&&(i=e[n4]=VQe++);let n=i&yV,o=1<>DV)]|=o}function rw(t,A){let e=vV(t,A);if(e!==-1)return e;let i=A[Li];i.firstCreatePass&&(t.injectorIndex=A.length,ox(i.data,t),ox(A,null),ox(i.blueprint,null));let n=j_(t,A),o=t.injectorIndex;if(wV(n)){let r=iw(n),s=nw(n,A),a=s[Li].data;for(let c=0;c<8;c++)A[o+c]=s[r+c]|a[r+c]}return A[o+8]=n,o}function ox(t,A){t.push(0,0,0,0,0,0,0,0,A)}function vV(t,A){return t.injectorIndex===-1||t.parent&&t.parent.injectorIndex===t.injectorIndex||A[t.injectorIndex+8]===null?-1:t.injectorIndex}function j_(t,A){if(t.parent&&t.parent.injectorIndex!==-1)return t.parent.injectorIndex;let e=0,i=null,n=A;for(;n!==null;){if(i=xV(n),i===null)return eB;if(e++,n=n[dB],i.injectorIndex!==-1)return i.injectorIndex|e<<16}return eB}function bx(t,A,e){qQe(t,A,e)}function WQe(t,A){if(A==="class")return t.classes;if(A==="style")return t.styles;let e=t.attrs;if(e){let i=e.length,n=0;for(;n>20,d=i?s:s+l,C=n?s+l:c;for(let I=d;I=a&&u.type===e)return I}if(n){let I=r[a];if(I&&yg(I)&&I.type===e)return a}return null}function s4(t,A,e,i,n){let o=t[e],r=A.data;if(o instanceof KI){let s=o;s.resolving&&Jj(Hfe(r[e]));let a=ow(s.canSeeViewProviders);s.resolving=!0;let c,l=s.injectImpl?hc(s.injectImpl):null,d=uV(t,i,ji.Default);try{o=t[e]=s.factory(void 0,n,r,t,i),A.firstCreatePass&&e>=i.directiveStart&&TQe(e,r[e],A)}finally{l!==null&&hc(l),ow(a),s.resolving=!1,fV()}}return o}function XQe(t){if(typeof t=="string")return t.charCodeAt(0)||0;let A=t.hasOwnProperty(n4)?t[n4]:void 0;return typeof A=="number"?A>=0?A&yV:$Qe:A}function qP(t,A,e){let i=1<>DV)]&i)}function WP(t,A){return!(t&ji.Self)&&!(t&ji.Host&&A)}var kI=class{_tNode;_lView;constructor(A,e){this._tNode=A,this._lView=e}get(A,e,i){return SV(this._tNode,this._lView,A,ww(i),e)}};function $Qe(){return new kI(Xs(),Ai())}function ii(t){return C4(()=>{let A=t.prototype.constructor,e=A[V8]||Mx(A),i=Object.prototype,n=Object.getPrototypeOf(t.prototype).constructor;for(;n&&n!==i;){let o=n[V8]||Mx(n);if(o&&o!==e)return o;n=Object.getPrototypeOf(n)}return o=>new o})}function Mx(t){return Gj(t)?()=>{let A=Mx(Zs(t));return A&&A()}:_I(t)}function e4e(t,A,e,i,n){let o=t,r=A;for(;o!==null&&r!==null&&r[fi]&2048&&!Aw(r);){let s=kV(o,r,e,i|ji.Self,x0);if(s!==x0)return s;let a=o.parent;if(!a){let c=r[AV];if(c){let l=c.get(e,x0,i);if(l!==x0)return l}a=xV(r),r=r[dB]}o=a}return n}function xV(t){let A=t[Li],e=A.type;return e===2?A.declTNode:e===1?t[Qc]:null}function V_(t){return WQe(Xs(),t)}function ZP(t,A=null,e=null,i){let n=_V(t,A,e,i);return n.resolveInjectorInitializers(),n}function _V(t,A=null,e=null,i,n=new Set){let o=[e||ja,M_(t)];return i=i||(typeof t=="object"?void 0:Bc(t)),new o4(o,A||vw(),i||null,n)}var Dt=class t{static THROW_IF_NOT_FOUND=SI;static NULL=new X8;static create(A,e){if(Array.isArray(A))return ZP({name:""},e,A,"");{let i=A.name??"";return ZP({name:i},A.parent,A.providers,i)}}static \u0275prov=be({token:t,providedIn:"any",factory:()=>UA(jj)});static __NG_ELEMENT_ID__=-1};var ws=class{attributeName;constructor(A){this.attributeName=A}__NG_ELEMENT_ID__=()=>V_(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}},A4e=new re("");A4e.__NG_ELEMENT_ID__=t=>{let A=Xs();if(A===null)throw new lA(204,!1);if(A.type&2)return A.value;if(t&ji.Optional)return null;throw new lA(204,!1)};var RV=!1,Fr=(()=>{class t{static __NG_ELEMENT_ID__=t4e;static __NG_ENV_ID__=e=>e}return t})(),sw=class extends Fr{_lView;constructor(A){super(),this._lView=A}onDestroy(A){let e=this._lView;return IB(e)?(A(),()=>{}):(lV(e,A),()=>wQe(e,A))}};function t4e(){return new sw(Ai())}var UI=class{},q_=new re("",{providedIn:"root",factory:()=>!1});var NV=new re(""),LV=new re(""),t2=(()=>{class t{taskId=0;pendingTasks=new Set;get _hasPendingTasks(){return this.hasPendingTasks.value}hasPendingTasks=new Mt(!1);add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);let e=this.taskId++;return this.pendingTasks.add(e),e}has(e){return this.pendingTasks.has(e)}remove(e){this.pendingTasks.delete(e),this.pendingTasks.size===0&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static \u0275prov=be({token:t,providedIn:"root",factory:()=>new t})}return t})();var Sx=class extends je{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(A=!1){super(),this.__isAsync=A,k_()&&(this.destroyRef=E(Fr,{optional:!0})??void 0,this.pendingTasks=E(t2,{optional:!0})??void 0)}emit(A){let e=Ui(null);try{super.next(A)}finally{Ui(e)}}subscribe(A,e,i){let n=A,o=e||(()=>null),r=i;if(A&&typeof A=="object"){let a=A;n=a.next?.bind(a),o=a.error?.bind(a),r=a.complete?.bind(a)}this.__isAsync&&(o=this.wrapInTimeout(o),n&&(n=this.wrapInTimeout(n)),r&&(r=this.wrapInTimeout(r)));let s=super.subscribe({next:n,error:o,complete:r});return A instanceof Ot&&A.add(s),s}wrapInTimeout(A){return e=>{let i=this.pendingTasks?.add();setTimeout(()=>{try{A(e)}finally{i!==void 0&&this.pendingTasks?.remove(i)}})}}},Ve=Sx;function a4(...t){}function FV(t){let A,e;function i(){t=a4;try{e!==void 0&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(e),A!==void 0&&clearTimeout(A)}catch{}}return A=setTimeout(()=>{t(),i()}),typeof requestAnimationFrame=="function"&&(e=requestAnimationFrame(()=>{t(),i()})),()=>i()}function XP(t){return queueMicrotask(()=>t()),()=>{t=a4}}var W_="isAngularZone",aw=W_+"_ID",i4e=0,yA=class t{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new Ve(!1);onMicrotaskEmpty=new Ve(!1);onStable=new Ve(!1);onError=new Ve(!1);constructor(A){let{enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:i=!1,shouldCoalesceRunChangeDetection:n=!1,scheduleInRootZone:o=RV}=A;if(typeof Zone>"u")throw new lA(908,!1);Zone.assertZonePatched();let r=this;r._nesting=0,r._outer=r._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!n&&i,r.shouldCoalesceRunChangeDetection=n,r.callbackScheduled=!1,r.scheduleInRootZone=o,r4e(r)}static isInAngularZone(){return typeof Zone<"u"&&Zone.current.get(W_)===!0}static assertInAngularZone(){if(!t.isInAngularZone())throw new lA(909,!1)}static assertNotInAngularZone(){if(t.isInAngularZone())throw new lA(909,!1)}run(A,e,i){return this._inner.run(A,e,i)}runTask(A,e,i,n){let o=this._inner,r=o.scheduleEventTask("NgZoneEvent: "+n,A,n4e,a4,a4);try{return o.runTask(r,e,i)}finally{o.cancelTask(r)}}runGuarded(A,e,i){return this._inner.runGuarded(A,e,i)}runOutsideAngular(A){return this._outer.run(A)}},n4e={};function Z_(t){if(t._nesting==0&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function o4e(t){if(t.isCheckStableRunning||t.callbackScheduled)return;t.callbackScheduled=!0;function A(){FV(()=>{t.callbackScheduled=!1,kx(t),t.isCheckStableRunning=!0,Z_(t),t.isCheckStableRunning=!1})}t.scheduleInRootZone?Zone.root.run(()=>{A()}):t._outer.run(()=>{A()}),kx(t)}function r4e(t){let A=()=>{o4e(t)},e=i4e++;t._inner=t._inner.fork({name:"angular",properties:{[W_]:!0,[aw]:e,[aw+e]:!0},onInvokeTask:(i,n,o,r,s,a)=>{if(s4e(a))return i.invokeTask(o,r,s,a);try{return $P(t),i.invokeTask(o,r,s,a)}finally{(t.shouldCoalesceEventChangeDetection&&r.type==="eventTask"||t.shouldCoalesceRunChangeDetection)&&A(),ej(t)}},onInvoke:(i,n,o,r,s,a,c)=>{try{return $P(t),i.invoke(o,r,s,a,c)}finally{t.shouldCoalesceRunChangeDetection&&!t.callbackScheduled&&!a4e(a)&&A(),ej(t)}},onHasTask:(i,n,o,r)=>{i.hasTask(o,r),n===o&&(r.change=="microTask"?(t._hasPendingMicrotasks=r.microTask,kx(t),Z_(t)):r.change=="macroTask"&&(t.hasPendingMacrotasks=r.macroTask))},onHandleError:(i,n,o,r)=>(i.handleError(o,r),t.runOutsideAngular(()=>t.onError.emit(r)),!1)})}function kx(t){t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&t.callbackScheduled===!0?t.hasPendingMicrotasks=!0:t.hasPendingMicrotasks=!1}function $P(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function ej(t){t._nesting--,Z_(t)}var xx=class{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new Ve;onMicrotaskEmpty=new Ve;onStable=new Ve;onError=new Ve;run(A,e,i){return A.apply(e,i)}runGuarded(A,e,i){return A.apply(e,i)}runOutsideAngular(A){return A()}runTask(A,e,i,n){return A.apply(e,i)}};function s4e(t){return GV(t,"__ignore_ng_zone__")}function a4e(t){return GV(t,"__scheduler_tick__")}function GV(t,A){return!Array.isArray(t)||t.length!==1?!1:t[0]?.data?.[A]===!0}var Va=class{_console=console;handleError(A){this._console.error("ERROR",A)}},c4e=new re("",{providedIn:"root",factory:()=>{let t=E(yA),A=E(Va);return e=>t.runOutsideAngular(()=>A.handleError(e))}}),c4=class{destroyed=!1;listeners=null;errorHandler=E(Va,{optional:!0});destroyRef=E(Fr);constructor(){this.destroyRef.onDestroy(()=>{this.destroyed=!0,this.listeners=null})}subscribe(A){if(this.destroyed)throw new lA(953,!1);return(this.listeners??=[]).push(A),{unsubscribe:()=>{let e=this.listeners?.indexOf(A);e!==void 0&&e!==-1&&this.listeners?.splice(e,1)}}}emit(A){if(this.destroyed){console.warn(mw(953,!1));return}if(this.listeners===null)return;let e=Ui(null);try{for(let i of this.listeners)try{i(A)}catch(n){this.errorHandler?.handleError(n)}}finally{Ui(e)}}};function No(t){return new c4}function Aj(t,A){return Lj(t,A)}function l4e(t){return Lj(Nj,t)}var lt=(Aj.required=l4e,Aj);function g4e(){return BB(Xs(),Ai())}function BB(t,A){return new eA(U0(t,A))}var eA=(()=>{class t{nativeElement;constructor(e){this.nativeElement=e}static __NG_ELEMENT_ID__=g4e}return t})();function KV(t){return t instanceof eA?t.nativeElement:t}function y1(t){return typeof t=="function"&&t[Cc]!==void 0}function mA(t,A){let e=Nk(t,A?.equal),i=e[Cc];return e.set=n=>jQ(i,n),e.update=n=>Lk(i,n),e.asReadonly=d4e.bind(e),e}function d4e(){let t=this[Cc];if(t.readonlyFn===void 0){let A=()=>this();A[Cc]=t,t.readonlyFn=A}return t.readonlyFn}function UV(t){return y1(t)&&typeof t.set=="function"}function C4e(){return this._results[Symbol.iterator]()}var qa=class{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new je}constructor(A=!1){this._emitDistinctChangesOnly=A}get(A){return this._results[A]}map(A){return this._results.map(A)}filter(A){return this._results.filter(A)}find(A){return this._results.find(A)}reduce(A,e){return this._results.reduce(A,e)}forEach(A){this._results.forEach(A)}some(A){return this._results.some(A)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(A,e){this.dirty=!1;let i=eQe(A);(this._changesDetected=!$fe(this._results,i,e))&&(this._results=i,this.length=i.length,this.last=i[this.length-1],this.first=i[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(A){this._onDirty=A}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}[Symbol.iterator]=C4e};function TV(t){return(t.flags&128)===128}var OV=function(t){return t[t.OnPush=0]="OnPush",t[t.Default=1]="Default",t}(OV||{}),JV=new Map,I4e=0;function u4e(){return I4e++}function h4e(t){JV.set(t[bw],t)}function _x(t){JV.delete(t[bw])}var tj="__ngContext__";function EB(t,A){f1(A)?(t[tj]=A[bw],h4e(A)):t[tj]=A}function YV(t){return zV(t[r4])}function HV(t){return zV(t[wg])}function zV(t){for(;t!==null&&!A2(t);)t=t[wg];return t}var Rx;function PV(t){Rx=t}function jV(){if(Rx!==void 0)return Rx;if(typeof document<"u")return document;throw new lA(210,!1)}var fB=new re("",{providedIn:"root",factory:()=>B4e}),B4e="ng",X_=new re(""),O0=new re("",{providedIn:"platform",factory:()=>"unknown"});var Oi=new re(""),E4=new re("",{providedIn:"root",factory:()=>jV().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});var E4e="h",f4e="b";var VV=!1,Q4e=new re("",{providedIn:"root",factory:()=>VV});var $_=function(t){return t[t.CHANGE_DETECTION=0]="CHANGE_DETECTION",t[t.AFTER_NEXT_RENDER=1]="AFTER_NEXT_RENDER",t}($_||{}),QB=new re(""),ij=new Set;function Dg(t){ij.has(t)||(ij.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}var eR=(()=>{class t{view;node;constructor(e,i){this.view=e,this.node=i}static __NG_ELEMENT_ID__=m4e}return t})();function m4e(){return new eR(Ai(),Xs())}var Zh=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(Zh||{}),qV=(()=>{class t{impl=null;execute(){this.impl?.execute()}static \u0275prov=be({token:t,providedIn:"root",factory:()=>new t})}return t})(),p4e=[Zh.EarlyRead,Zh.Write,Zh.MixedReadWrite,Zh.Read],w4e=(()=>{class t{ngZone=E(yA);scheduler=E(UI);errorHandler=E(Va,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){E(QB,{optional:!0})}execute(){let e=this.sequences.size>0;e&&_o(16),this.executing=!0;for(let i of p4e)for(let n of this.sequences)if(!(n.erroredOrDestroyed||!n.hooks[i]))try{n.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>{let o=n.hooks[i];return o(n.pipelinedValue)},n.snapshot))}catch(o){n.erroredOrDestroyed=!0,this.errorHandler?.handleError(o)}this.executing=!1;for(let i of this.sequences)i.afterRun(),i.once&&(this.sequences.delete(i),i.destroy());for(let i of this.deferredRegistrations)this.sequences.add(i);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),e&&_o(17)}register(e){let{view:i}=e;i!==void 0?((i[$h]??=[]).push(e),uB(i),i[fi]|=8192):this.executing?this.deferredRegistrations.add(e):this.addSequence(e)}addSequence(e){this.sequences.add(e),this.scheduler.notify(7)}unregister(e){this.executing&&this.sequences.has(e)?(e.erroredOrDestroyed=!0,e.pipelinedValue=void 0,e.once=!0):(this.sequences.delete(e),this.deferredRegistrations.delete(e))}maybeTrace(e,i){return i?i.run($_.AFTER_NEXT_RENDER,e):e()}static \u0275prov=be({token:t,providedIn:"root",factory:()=>new t})}return t})(),Nx=class{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(A,e,i,n,o,r=null){this.impl=A,this.hooks=e,this.view=i,this.once=n,this.snapshot=r,this.unregisterOnDestroy=o?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();let A=this.view?.[$h];A&&(this.view[$h]=A.filter(e=>e!==this))}};function f4(t,A){!A?.injector&&e2(f4);let e=A?.injector??E(Dt);return Dg("NgAfterRender"),WV(t,e,A,!1)}function Gr(t,A){!A?.injector&&e2(Gr);let e=A?.injector??E(Dt);return Dg("NgAfterNextRender"),WV(t,e,A,!0)}function y4e(t,A){if(t instanceof Function){let e=[void 0,void 0,void 0,void 0];return e[A]=t,e}else return[t.earlyRead,t.write,t.mixedReadWrite,t.read]}function WV(t,A,e,i){let n=A.get(qV);n.impl??=A.get(w4e);let o=A.get(QB,null,{optional:!0}),r=e?.phase??Zh.MixedReadWrite,s=e?.manualCleanup!==!0?A.get(Fr):null,a=A.get(eR,null,{optional:!0}),c=new Nx(n.impl,y4e(t,r),a?.view,i,s,o?.snapshot(null));return n.impl.register(c),c}var D4e=(t,A,e,i)=>{};function v4e(t,A,e,i){D4e(t,A,e,i)}var b4e=()=>null;function ZV(t,A,e=!1){return b4e(t,A,e)}function XV(t,A){let e=t.contentQueries;if(e!==null){let i=Ui(null);try{for(let n=0;nt,createScript:t=>t,createScriptURL:t=>t})}catch{}return K8}function Nw(t){return M4e()?.createHTML(t)||t}var U8;function S4e(){if(U8===void 0&&(U8=null,Xc.trustedTypes))try{U8=Xc.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return U8}function nj(t){return S4e()?.createHTML(t)||t}var $d=class{changingThisBreaksApplicationSecurity;constructor(A){this.changingThisBreaksApplicationSecurity=A}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Rj})`}},Fx=class extends $d{getTypeName(){return"HTML"}},Gx=class extends $d{getTypeName(){return"Style"}},Kx=class extends $d{getTypeName(){return"Script"}},Ux=class extends $d{getTypeName(){return"URL"}},Tx=class extends $d{getTypeName(){return"ResourceURL"}};function Ll(t){return t instanceof $d?t.changingThisBreaksApplicationSecurity:t}function D1(t,A){let e=k4e(t);if(e!=null&&e!==A){if(e==="ResourceURL"&&A==="URL")return!0;throw new Error(`Required a safe ${A}, got a ${e} (see ${Rj})`)}return e===A}function k4e(t){return t instanceof $d&&t.getTypeName()||null}function $V(t){return new Fx(t)}function eq(t){return new Gx(t)}function Aq(t){return new Kx(t)}function tq(t){return new Ux(t)}function iq(t){return new Tx(t)}function x4e(t){let A=new Jx(t);return _4e()?new Ox(A):A}var Ox=class{inertDocumentHelper;constructor(A){this.inertDocumentHelper=A}getInertBodyElement(A){A=""+A;try{let e=new window.DOMParser().parseFromString(Nw(A),"text/html").body;return e===null?this.inertDocumentHelper.getInertBodyElement(A):(e.firstChild?.remove(),e)}catch{return null}}},Jx=class{defaultDoc;inertDocument;constructor(A){this.defaultDoc=A,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(A){let e=this.inertDocument.createElement("template");return e.innerHTML=Nw(A),e}};function _4e(){try{return!!new window.DOMParser().parseFromString(Nw(""),"text/html")}catch{return!1}}var R4e=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Lw(t){return t=String(t),t.match(R4e)?t:"unsafe:"+t}function i2(t){let A={};for(let e of t.split(","))A[e]=!0;return A}function Q4(...t){let A={};for(let e of t)for(let i in e)e.hasOwnProperty(i)&&(A[i]=!0);return A}var nq=i2("area,br,col,hr,img,wbr"),oq=i2("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),rq=i2("rp,rt"),N4e=Q4(rq,oq),L4e=Q4(oq,i2("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),F4e=Q4(rq,i2("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),oj=Q4(nq,L4e,F4e,N4e),sq=i2("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),G4e=i2("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),K4e=i2("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"),U4e=Q4(sq,G4e,K4e),T4e=i2("script,style,template"),Yx=class{sanitizedSomething=!1;buf=[];sanitizeChildren(A){let e=A.firstChild,i=!0,n=[];for(;e;){if(e.nodeType===Node.ELEMENT_NODE?i=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,i&&e.firstChild){n.push(e),e=Y4e(e);continue}for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let o=J4e(e);if(o){e=o;break}e=n.pop()}}return this.buf.join("")}startElement(A){let e=rj(A).toLowerCase();if(!oj.hasOwnProperty(e))return this.sanitizedSomething=!0,!T4e.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);let i=A.attributes;for(let n=0;n"),!0}endElement(A){let e=rj(A).toLowerCase();oj.hasOwnProperty(e)&&!nq.hasOwnProperty(e)&&(this.buf.push(""))}chars(A){this.buf.push(sj(A))}};function O4e(t,A){return(t.compareDocumentPosition(A)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}function J4e(t){let A=t.nextSibling;if(A&&t!==A.previousSibling)throw aq(A);return A}function Y4e(t){let A=t.firstChild;if(A&&O4e(t,A))throw aq(A);return A}function rj(t){let A=t.nodeName;return typeof A=="string"?A:"FORM"}function aq(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}var H4e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,z4e=/([^\#-~ |!])/g;function sj(t){return t.replace(/&/g,"&").replace(H4e,function(A){let e=A.charCodeAt(0),i=A.charCodeAt(1);return"&#"+((e-55296)*1024+(i-56320)+65536)+";"}).replace(z4e,function(A){return"&#"+A.charCodeAt(0)+";"}).replace(//g,">")}var T8;function tR(t,A){let e=null;try{T8=T8||x4e(t);let i=A?String(A):"";e=T8.getInertBodyElement(i);let n=5,o=i;do{if(n===0)throw new Error("Failed to sanitize html because the input is unstable");n--,i=o,o=e.innerHTML,e=T8.getInertBodyElement(i)}while(i!==o);let s=new Yx().sanitizeChildren(aj(e)||e);return Nw(s)}finally{if(e){let i=aj(e)||e;for(;i.firstChild;)i.firstChild.remove()}}}function aj(t){return"content"in t&&P4e(t)?t.content:null}function P4e(t){return t.nodeType===Node.ELEMENT_NODE&&t.nodeName==="TEMPLATE"}var Ls=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(Ls||{});function J0(t){let A=cq();return A?nj(A.sanitize(Ls.HTML,t)||""):D1(t,"HTML")?nj(Ll(t)):tR(jV(),xI(t))}function $r(t){let A=cq();return A?A.sanitize(Ls.URL,t)||"":D1(t,"URL")?Ll(t):Lw(xI(t))}function cq(){let t=Ai();return t&&t[Zd].sanitizer}var j4e=/^>|^->||--!>|)/g,q4e="\u200B$1\u200B";function W4e(t){return t.replace(j4e,A=>A.replace(V4e,q4e))}function Fw(t){return t.ownerDocument.defaultView}function n2(t){return t.ownerDocument}function lq(t){return t instanceof Function?t():t}function Z4e(t,A,e){let i=t.length;for(;;){let n=t.indexOf(A,e);if(n===-1)return n;if(n===0||t.charCodeAt(n-1)<=32){let o=A.length;if(n+o===i||t.charCodeAt(n+o)<=32)return n}e=n+1}}var gq="ng-template";function X4e(t,A,e,i){let n=0;if(i){for(;n-1){let o;for(;++no?d="":d=n[l+1].toLowerCase(),i&2&&c!==d){if(pg(i))return!1;r=!0}}}}return pg(i)||r}function pg(t){return(t&1)===0}function Ame(t,A,e,i){if(A===null)return-1;let n=0;if(i||!e){let o=!1;for(;n-1)for(e++;e0?'="'+s+'"':"")+"]"}else i&8?n+="."+r:i&4&&(n+=" "+r);else n!==""&&!pg(r)&&(A+=cj(o,n),n=""),i=r,o=o||!pg(i);e++}return n!==""&&(A+=cj(o,n)),A}function sme(t){return t.map(rme).join(",")}function ame(t){let A=[],e=[],i=1,n=2;for(;iZr&&Eq(t,A,Zr,!1),_o(r?2:0,n),e(i,n)}finally{GI(o),_o(r?3:1,n)}}function Kw(t,A,e){wme(t,A,e),(e.flags&64)===64&&yme(t,A,e)}function sR(t,A,e=U0){let i=A.localNames;if(i!==null){let n=A.index+1;for(let o=0;onull;function mme(t){return t==="class"?"className":t==="for"?"htmlFor":t==="formaction"?"formAction":t==="innerHtml"?"innerHTML":t==="readonly"?"readOnly":t==="tabindex"?"tabIndex":t}function m4(t,A,e,i,n,o,r,s){if(!s&&cR(A,t,e,i,n)){CB(A)&&pme(e,A.index);return}if(A.type&3){let a=U0(A,e);i=mme(i),n=r!=null?r(n,A.value||"",i):n,o.setProperty(a,i,n)}else A.type&12}function pme(t,A){let e=N0(A,t);e[fi]&16||(e[fi]|=64)}function wme(t,A,e){let i=e.directiveStart,n=e.directiveEnd;CB(e)&&Bme(A,e,t.data[i+e.componentOffset]),t.firstCreatePass||rw(e,A);let o=e.initialInputs;for(let r=i;r=0?i[s]():i[-s].unsubscribe(),r+=2}else{let s=i[e[r+1]];e[r].call(s)}i!==null&&(A[$8]=null);let n=A[E1];if(n!==null){A[E1]=null;for(let r=0;r{uB(t.lView)},consumerOnSignalRead(){this.lView[Nl]=this}});function Wme(t){let A=t[Nl]??Object.create(Zme);return A.lView=t,A}var Zme=_A(ae({},Rh),{consumerIsAlwaysLive:!0,kind:"template",consumerMarkedDirty:t=>{let A=FI(t.lView);for(;A&&!Mq(A[Li]);)A=FI(A);A&&cV(A)},consumerOnSignalRead(){this.lView[Nl]=this}});function Mq(t){return t.type!==2}function Sq(t){if(t[NI]===null)return;let A=!0;for(;A;){let e=!1;for(let i of t[NI])i.dirty&&(e=!0,i.zone===null||Zone.current===i.zone?i.run():i.zone.run(()=>i.run()));A=e&&!!(t[fi]&8192)}}var Xme=100;function kq(t,A=!0,e=0){let n=t[Zd].rendererFactory,o=!1;o||n.begin?.();try{$me(t,e)}catch(r){throw A&&Sme(t,r),r}finally{o||n.end?.()}}function $me(t,A){let e=IV();try{tw(!0),Px(t,A);let i=0;for(;kw(t);){if(i===Xme)throw new lA(103,!1);i++,Px(t,1)}}finally{tw(e)}}function e3e(t,A,e,i){if(IB(A))return;let n=A[fi],o=!1,r=!1;H_(A);let s=!0,a=null,c=null;o||(Mq(t)?(c=Pme(A),a=zQ(c)):Sk()===null?(s=!1,c=Wme(A),a=zQ(c)):A[Nl]&&(PQ(A[Nl]),A[Nl]=null));try{aV(A),_Qe(t.bindingStartIndex),e!==null&&fq(t,A,e,2,i);let l=(n&3)===3;if(!o)if(l){let I=t.preOrderCheckHooks;I!==null&&Y8(A,I,null)}else{let I=t.preOrderHooks;I!==null&&H8(A,I,0,null),nx(A,0)}if(r||A3e(A),Sq(A),xq(A,0),t.contentQueries!==null&&XV(t,A),!o)if(l){let I=t.contentCheckHooks;I!==null&&Y8(A,I)}else{let I=t.contentHooks;I!==null&&H8(A,I,1),nx(A,1)}i3e(t,A);let d=t.components;d!==null&&Rq(A,d,0);let C=t.viewQuery;if(C!==null&&Lx(2,C,i),!o)if(l){let I=t.viewCheckHooks;I!==null&&Y8(A,I)}else{let I=t.viewHooks;I!==null&&H8(A,I,2),nx(A,2)}if(t.firstUpdatePass===!0&&(t.firstUpdatePass=!1),A[ix]){for(let I of A[ix])I();A[ix]=null}o||(vq(A),A[fi]&=-73)}catch(l){throw o||uB(A),l}finally{c!==null&&(c8(c,a),s&&Vme(c)),z_()}}function xq(t,A){for(let e=YV(t);e!==null;e=HV(e))for(let i=Ba;i0&&(t[e-1][wg]=i[wg]);let o=Z8(t,Ba+A);Nme(i[Li],i);let r=o[Xd];r!==null&&r.detachView(o[Li]),i[Ea]=null,i[wg]=null,i[fi]&=-129}return i}function n3e(t,A,e,i){let n=Ba+i,o=e.length;i>0&&(e[n-1][wg]=A),i-1&&(l4(A,i),Z8(e,i))}this._attachedToViewContainer=!1}Uw(this._lView[Li],this._lView)}onDestroy(A){lV(this._lView,A)}markForCheck(){uR(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[fi]&=-129}reattach(){wx(this._lView),this._lView[fi]|=128}detectChanges(){this._lView[fi]|=1024,kq(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new lA(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;let A=Aw(this._lView),e=this._lView[RI];e!==null&&!A&&CR(e,this._lView),mq(this._lView[Li],this._lView)}attachToAppRef(A){if(this._attachedToViewContainer)throw new lA(902,!1);this._appRef=A;let e=Aw(this._lView),i=this._lView[RI];i!==null&&!e&&Gq(i,this._lView),wx(this._lView)}};var en=(()=>{class t{static __NG_ELEMENT_ID__=s3e}return t})(),o3e=en,r3e=class extends o3e{_declarationLView;_declarationTContainer;elementRef;constructor(A,e,i){super(),this._declarationLView=A,this._declarationTContainer=e,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(A,e){return this.createEmbeddedViewImpl(A,e)}createEmbeddedViewImpl(A,e,i){let n=p4(this._declarationLView,this._declarationTContainer,A,{embeddedViewInjector:e,dehydratedView:i});return new g4(n)}};function s3e(){return Jw(Xs(),Ai())}function Jw(t,A){return t.type&4?new r3e(A,t,BB(t,A)):null}function mB(t,A,e,i,n){let o=t.data[A];if(o===null)o=a3e(t,A,e,i,n),RQe()&&(o.flags|=32);else if(o.type&64){o.type=e,o.value=i,o.attrs=n;let r=kQe();o.injectorIndex=r===null?-1:r.injectorIndex}return p1(o,!0),o}function a3e(t,A,e,i,n){let o=dV(),r=U_(),s=r?o:o&&o.parent,a=t.data[A]=l3e(t,s,e,A,i,n);return c3e(t,a,o,r),a}function c3e(t,A,e,i){t.firstChild===null&&(t.firstChild=A),e!==null&&(i?e.child==null&&A.parent!==null&&(e.child=A):e.next===null&&(e.next=A,A.prev=e))}function l3e(t,A,e,i,n,o){let r=A?A.injectorIndex:-1,s=0;return gV()&&(s|=128),{type:e,index:i,insertBeforeIndex:null,injectorIndex:r,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:s,providerIndexes:0,value:n,attrs:o,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:A,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}var dfA=new RegExp(`^(\\d+)*(${f4e}|${E4e})*(.*)`);var g3e=()=>null;function aB(t,A){return g3e(t,A)}var d3e=class{},Kq=class{},jx=class{resolveComponentFactory(A){throw Error(`No component factory found for ${Bc(A)}.`)}},Yw=class{static NULL=new jx},fa=class{},an=(()=>{class t{destroyNode=null;static __NG_ELEMENT_ID__=()=>C3e()}return t})();function C3e(){let t=Ai(),A=Xs(),e=N0(A.index,t);return(f1(e)?e:t)[dr]}var I3e=(()=>{class t{static \u0275prov=be({token:t,providedIn:"root",factory:()=>null})}return t})();var sx={},Vx=class{injector;parentInjector;constructor(A,e){this.injector=A,this.parentInjector=e}get(A,e,i){i=ww(i);let n=this.injector.get(A,sx,i);return n!==sx||e===sx?n:this.parentInjector.get(A,e,i)}};function qx(t,A,e){let i=e?t.styles:null,n=e?t.classes:null,o=0;if(A!==null)for(let r=0;r0&&(e.directiveToIndex=new Map);for(let C=0;C0;){let e=t[--A];if(typeof e=="number"&&e<0)return e}return 0}function y3e(t,A,e){if(e){if(A.exportAs)for(let i=0;i{let[e,i,n]=t[A],o={propName:e,templateName:A,isSignal:(i&Gw.SignalBased)!==0};return n&&(o.transform=n),o})}function b3e(t){return Object.keys(t).map(A=>({propName:t[A],templateName:A}))}function M3e(t,A,e){let i=A instanceof Hr?A:A?.injector;return i&&t.getStandaloneInjector!==null&&(i=t.getStandaloneInjector(i)||i),i?new Vx(e,i):e}function S3e(t){let A=t.get(fa,null);if(A===null)throw new lA(407,!1);let e=t.get(I3e,null),i=t.get(UI,null);return{rendererFactory:A,sanitizer:e,changeDetectionScheduler:i}}function k3e(t,A){let e=(t.selectors[0][0]||"div").toLowerCase();return Cq(A,e,e==="svg"?rV:e==="math"?EQe:null)}var TI=class extends Kq{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=v3e(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=b3e(this.componentDef.outputs),this.cachedOutputs}constructor(A,e){super(),this.componentDef=A,this.ngModule=e,this.componentType=A.type,this.selector=sme(A.selectors),this.ngContentSelectors=A.ngContentSelectors??[],this.isBoundToModule=!!e}create(A,e,i,n){_o(22);let o=Ui(null);try{let r=this.componentDef,s=i?["ng-version","19.2.15"]:ame(this.componentDef.selectors[0]),a=nR(0,null,null,1,0,null,null,null,null,[s],null),c=M3e(r,n||this.ngModule,A),l=S3e(c),d=l.rendererFactory.createRenderer(null,r),C=i?Eme(d,i,r.encapsulation,c):k3e(r,d),I=oR(null,a,null,512|hq(r),null,null,l,d,c,null,ZV(C,c,!0));I[Zr]=C,H_(I);let u=null;try{let h=Oq(Zr,a,I,"#host",()=>[this.componentDef],!0,0);C&&(uq(d,C,h),EB(C,I)),Kw(a,I,h),AR(a,h,I),Jq(a,h),e!==void 0&&x3e(h,this.ngContentSelectors,e),u=N0(h.index,I),I[gs]=u[gs],lR(a,I,null)}catch(h){throw u!==null&&_x(u),_x(I),h}finally{_o(23),z_()}return new Wx(this.componentType,I)}finally{Ui(o)}}},Wx=class extends d3e{_rootLView;instance;hostView;changeDetectorRef;componentType;location;previousInputValues=null;_tNode;constructor(A,e){super(),this._rootLView=e,this._tNode=R_(e[Li],Zr),this.location=BB(this._tNode,e),this.instance=N0(this._tNode.index,e)[gs],this.hostView=this.changeDetectorRef=new g4(e,void 0,!1),this.componentType=A}setInput(A,e){let i=this._tNode;if(this.previousInputValues??=new Map,this.previousInputValues.has(A)&&Object.is(this.previousInputValues.get(A),e))return;let n=this._rootLView,o=cR(i,n[Li],n,A,e);this.previousInputValues.set(A,e);let r=N0(i.index,n);uR(r,1)}get injector(){return new kI(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(A){this.hostView.onDestroy(A)}};function x3e(t,A,e){let i=t.projection=[];for(let n=0;n{class t{static __NG_ELEMENT_ID__=_3e}return t})();function _3e(){let t=Xs();return Hq(t,Ai())}var R3e=xn,Yq=class extends R3e{_lContainer;_hostTNode;_hostLView;constructor(A,e,i){super(),this._lContainer=A,this._hostTNode=e,this._hostLView=i}get element(){return BB(this._hostTNode,this._hostLView)}get injector(){return new kI(this._hostTNode,this._hostLView)}get parentInjector(){let A=j_(this._hostTNode,this._hostLView);if(wV(A)){let e=nw(A,this._hostLView),i=iw(A),n=e[Li].data[i+8];return new kI(n,e)}else return new kI(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(A){let e=uj(this._lContainer);return e!==null&&e[A]||null}get length(){return this._lContainer.length-Ba}createEmbeddedView(A,e,i){let n,o;typeof i=="number"?n=i:i!=null&&(n=i.index,o=i.injector);let r=aB(this._lContainer,A.ssrId),s=A.createEmbeddedViewImpl(e||{},o,r);return this.insertImpl(s,n,sB(this._hostTNode,r)),s}createComponent(A,e,i,n,o){let r=A&&!IQe(A),s;if(r)s=e;else{let u=e||{};s=u.index,i=u.injector,n=u.projectableNodes,o=u.environmentInjector||u.ngModuleRef}let a=r?A:new TI(Q1(A)),c=i||this.parentInjector;if(!o&&a.ngModule==null){let h=(r?c:this.parentInjector).get(Hr,null);h&&(o=h)}let l=Q1(a.componentType??{}),d=aB(this._lContainer,l?.id??null),C=d?.firstChild??null,I=a.create(c,n,C,o);return this.insertImpl(I.hostView,s,sB(this._hostTNode,d)),I}insert(A,e){return this.insertImpl(A,e,!0)}insertImpl(A,e,i){let n=A._lView;if(mQe(n)){let s=this.indexOf(A);if(s!==-1)this.detach(s);else{let a=n[Ea],c=new Yq(a,a[Qc],a[Ea]);c.detach(c.indexOf(A))}}let o=this._adjustIndex(e),r=this._lContainer;return w4(r,n,o,i),A.attachToViewContainerRef(),Pj(ax(r),o,A),A}move(A,e){return this.insert(A,e)}indexOf(A){let e=uj(this._lContainer);return e!==null?e.indexOf(A):-1}remove(A){let e=this._adjustIndex(A,-1),i=l4(this._lContainer,e);i&&(Z8(ax(this._lContainer),e),Uw(i[Li],i))}detach(A){let e=this._adjustIndex(A,-1),i=l4(this._lContainer,e);return i&&Z8(ax(this._lContainer),e)!=null?new g4(i):null}_adjustIndex(A,e=0){return A??this.length+e}};function uj(t){return t[ew]}function ax(t){return t[ew]||(t[ew]=[])}function Hq(t,A){let e,i=A[t.index];return A2(i)?e=i:(e=Nq(i,A,null,t),A[t.index]=e,rR(A,e)),L3e(e,A,t,i),new Yq(e,t,A)}function N3e(t,A){let e=t[dr],i=e.createComment(""),n=U0(A,t),o=e.parentNode(n);return cw(e,o,i,e.nextSibling(n),!1),i}var L3e=K3e,F3e=()=>!1;function G3e(t,A,e){return F3e(t,A,e)}function K3e(t,A,e,i){if(t[LI])return;let n;e.type&8?n=R0(i):n=N3e(A,e),t[LI]=n}var Zx=class t{queryList;matches=null;constructor(A){this.queryList=A}clone(){return new t(this.queryList)}setDirty(){this.queryList.setDirty()}},Xx=class t{queries;constructor(A=[]){this.queries=A}createEmbeddedView(A){let e=A.queries;if(e!==null){let i=A.contentQueries!==null?A.contentQueries[0]:e.length,n=[];for(let o=0;o0)i.push(r[s/2]);else{let c=o[s+1],l=A[-a];for(let d=Ba;dA.trim())}function qq(t,A,e){t.queries===null&&(t.queries=new $x),t.queries.track(new e_(A,e))}function H3e(t,A){let e=t.contentQueries||(t.contentQueries=[]),i=e.length?e[e.length-1]:-1;A!==i&&e.push(t.queries.length-1,A)}function ER(t,A){return t.queries.getByIndex(A)}function Wq(t,A){let e=t[Li],i=ER(e,A);return i.crossesNgTemplate?A_(e,t,A,[]):zq(e,t,i,A)}function fR(t,A,e){let i,n=C8(()=>{i._dirtyCounter();let o=P3e(i,t);if(A&&o===void 0)throw new lA(-951,!1);return o});return i=n[Cc],i._dirtyCounter=mA(0),i._flatValue=void 0,n}function Zq(t){return fR(!0,!1,t)}function Xq(t){return fR(!0,!0,t)}function z3e(t){return fR(!1,!1,t)}function $q(t,A){let e=t[Cc];e._lView=Ai(),e._queryIndex=A,e._queryList=BR(e._lView,A),e._queryList.onDirty(()=>e._dirtyCounter.update(i=>i+1))}function P3e(t,A){let e=t._lView,i=t._queryIndex;if(e===void 0||i===void 0||e[fi]&4)return A?void 0:ja;let n=BR(e,i),o=Wq(e,i);return n.reset(o,KV),A?n.first:n._changesDetected||t._flatValue===void 0?t._flatValue=n.toArray():t._flatValue}function hj(t,A){return Zq(A)}function j3e(t,A){return Xq(A)}var es=(hj.required=j3e,hj);function eW(t,A){return z3e(A)}function Bj(t,A){return Zq(A)}function V3e(t,A){return Xq(A)}var o2=(Bj.required=V3e,Bj);var G0=class{},QR=class{};function AW(t,A){return new Cw(t,A??null,[])}var Cw=class extends G0{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];componentFactoryResolver=new gw(this);constructor(A,e,i,n=!0){super(),this.ngModuleType=A,this._parent=e;let o=qj(A);this._bootstrapComponents=lq(o.bootstrap),this._r3Injector=_V(A,e,[{provide:G0,useValue:this},{provide:Yw,useValue:this.componentFactoryResolver},...i],Bc(A),new Set(["environment"])),n&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}get injector(){return this._r3Injector}destroy(){let A=this._r3Injector;!A.destroyed&&A.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(A){this.destroyCbs.push(A)}},t_=class extends QR{moduleType;constructor(A){super(),this.moduleType=A}create(A){return new Cw(this.moduleType,A,[])}};var Iw=class extends G0{injector;componentFactoryResolver=new gw(this);instance=null;constructor(A){super();let e=new o4([...A.providers,{provide:G0,useValue:this},{provide:Yw,useValue:this.componentFactoryResolver}],A.parent||vw(),A.debugName,new Set(["environment"]));this.injector=e,A.runEnvironmentInitializers&&e.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(A){this.injector.onDestroy(A)}};function y4(t,A,e=null){return new Iw({providers:t,parent:A,debugName:e,runEnvironmentInitializers:!0}).injector}var q3e=(()=>{class t{_injector;cachedInjectors=new Map;constructor(e){this._injector=e}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e)){let i=Zj(!1,e.type),n=i.length>0?y4([i],this._injector,`Standalone[${e.type.name}]`):null;this.cachedInjectors.set(e,n)}return this.cachedInjectors.get(e)}ngOnDestroy(){try{for(let e of this.cachedInjectors.values())e!==null&&e.destroy()}finally{this.cachedInjectors.clear()}}static \u0275prov=be({token:t,providedIn:"environment",factory:()=>new t(UA(Hr))})}return t})();function xe(t){return C4(()=>{let A=tW(t),e=_A(ae({},A),{decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===OV.OnPush,directiveDefs:null,pipeDefs:null,dependencies:A.standalone&&t.dependencies||null,getStandaloneInjector:A.standalone?n=>n.get(q3e).getOrCreateStandaloneInjector(e):null,getExternalStyles:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||L0.Emulated,styles:t.styles||ja,_:null,schemas:t.schemas||null,tView:null,id:""});A.standalone&&Dg("NgStandalone"),iW(e);let i=t.dependencies;return e.directiveDefs=Ej(i,!1),e.pipeDefs=Ej(i,!0),e.id=epe(e),e})}function W3e(t){return Q1(t)||Wj(t)}function Z3e(t){return t!==null}function OA(t){return C4(()=>({type:t.type,bootstrap:t.bootstrap||ja,declarations:t.declarations||ja,imports:t.imports||ja,exports:t.exports||ja,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function X3e(t,A){if(t==null)return _0;let e={};for(let i in t)if(t.hasOwnProperty(i)){let n=t[i],o,r,s,a;Array.isArray(n)?(s=n[0],o=n[1],r=n[2]??o,a=n[3]||null):(o=n,r=n,s=Gw.None,a=null),e[o]=[i,s,a],A[o]=r}return e}function $3e(t){if(t==null)return _0;let A={};for(let e in t)t.hasOwnProperty(e)&&(A[t[e]]=e);return A}function Oe(t){return C4(()=>{let A=tW(t);return iW(A),A})}function pB(t){return{type:t.type,name:t.name,factory:null,pure:t.pure!==!1,standalone:t.standalone??!0,onDestroy:t.type.prototype.ngOnDestroy||null}}function tW(t){let A={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:A,inputConfig:t.inputs||_0,exportAs:t.exportAs||null,standalone:t.standalone??!0,signals:t.signals===!0,selectors:t.selectors||ja,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:X3e(t.inputs,A),outputs:$3e(t.outputs),debugInfo:null}}function iW(t){t.features?.forEach(A=>A(t))}function Ej(t,A){if(!t)return null;let e=A?nQe:W3e;return()=>(typeof t=="function"?t():t).map(i=>e(i)).filter(Z3e)}function epe(t){let A=0,e=typeof t.consts=="function"?"":t.consts,i=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,e,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery];for(let o of i.join("|"))A=Math.imul(31,A)+o.charCodeAt(0)<<0;return A+=2147483648,"c"+A}function Ape(t){return Object.getPrototypeOf(t.prototype).constructor}function Ct(t){let A=Ape(t.type),e=!0,i=[t];for(;A;){let n;if(yg(t))n=A.\u0275cmp||A.\u0275dir;else{if(A.\u0275cmp)throw new lA(903,!1);n=A.\u0275dir}if(n){if(e){i.push(n);let r=t;r.inputs=cx(t.inputs),r.declaredInputs=cx(t.declaredInputs),r.outputs=cx(t.outputs);let s=n.hostBindings;s&&rpe(t,s);let a=n.viewQuery,c=n.contentQueries;if(a&&npe(t,a),c&&ope(t,c),tpe(t,n),Ffe(t.outputs,n.outputs),yg(n)&&n.data.animation){let l=t.data;l.animation=(l.animation||[]).concat(n.data.animation)}}let o=n.features;if(o)for(let r=0;r=0;i--){let n=t[i];n.hostVars=A+=n.hostVars,n.hostAttrs=rB(n.hostAttrs,e=rB(e,n.hostAttrs))}}function cx(t){return t===_0?{}:t===ja?[]:t}function npe(t,A){let e=t.viewQuery;e?t.viewQuery=(i,n)=>{A(i,n),e(i,n)}:t.viewQuery=A}function ope(t,A){let e=t.contentQueries;e?t.contentQueries=(i,n,o)=>{A(i,n,o),e(i,n,o)}:t.contentQueries=A}function rpe(t,A){let e=t.hostBindings;e?t.hostBindings=(i,n)=>{A(i,n),e(i,n)}:t.hostBindings=A}function Hw(t){let A=e=>{let i=Array.isArray(t);e.hostDirectives===null?(e.findHostDirectiveDefs=nW,e.hostDirectives=i?t.map(i_):[t]):i?e.hostDirectives.unshift(...t.map(i_)):e.hostDirectives.unshift(t)};return A.ngInherit=!0,A}function nW(t,A,e){if(t.hostDirectives!==null)for(let i of t.hostDirectives)if(typeof i=="function"){let n=i();for(let o of n)fj(i_(o),A,e)}else fj(i,A,e)}function fj(t,A,e){let i=Wj(t.directive);spe(i.declaredInputs,t.inputs),nW(i,A,e),e.set(i,t),A.push(i)}function i_(t){return typeof t=="function"?{directive:Zs(t),inputs:_0,outputs:_0}:{directive:Zs(t.directive),inputs:Qj(t.inputs),outputs:Qj(t.outputs)}}function Qj(t){if(t===void 0||t.length===0)return _0;let A={};for(let e=0;e{class t{log(e){console.log(e)}warn(e){console.warn(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();var yR=new re(""),D4=new re(""),zw=(()=>{class t{_ngZone;registry;_isZoneStable=!0;_callbacks=[];_taskTrackingZone=null;_destroyRef;constructor(e,i,n){this._ngZone=e,this.registry=i,k_()&&(this._destroyRef=E(Fr,{optional:!0})??void 0),DR||(Cpe(n),n.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this._taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){let e=this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),i=this._ngZone.runOutsideAngular(()=>this._ngZone.onStable.subscribe({next:()=>{yA.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}}));this._destroyRef?.onDestroy(()=>{e.unsubscribe(),i.unsubscribe()})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;this._callbacks.length!==0;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb()}});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>i.updateCb&&i.updateCb(e)?(clearTimeout(i.timeoutId),!1):!0)}}getPendingTasks(){return this._taskTrackingZone?this._taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,n){let o=-1;i&&i>0&&(o=setTimeout(()=>{this._callbacks=this._callbacks.filter(r=>r.timeoutId!==o),e()},i)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})}whenStable(e,i,n){if(n&&!this._taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(e,i,n),this._runCallbacksIfReady()}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,n){return[]}static \u0275fac=function(i){return new(i||t)(UA(yA),UA(Pw),UA(D4))};static \u0275prov=be({token:t,factory:t.\u0275fac})}return t})(),Pw=(()=>{class t{_applications=new Map;registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return DR?.findTestabilityInTree(this,e,i)??null}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function Cpe(t){DR=t}var DR,sW=(()=>{class t{static \u0275prov=be({token:t,providedIn:"root",factory:()=>new n_})}return t})(),n_=class{queuedEffectCount=0;queues=new Map;schedule(A){this.enqueue(A)}remove(A){let e=A.zone,i=this.queues.get(e);i.has(A)&&(i.delete(A),this.queuedEffectCount--)}enqueue(A){let e=A.zone;this.queues.has(e)||this.queues.set(e,new Set);let i=this.queues.get(e);i.has(A)||(this.queuedEffectCount++,i.add(A))}flush(){for(;this.queuedEffectCount>0;)for(let[A,e]of this.queues)A===null?this.flushQueue(e):A.run(()=>this.flushQueue(e))}flushQueue(A){for(let e of A)A.delete(e),this.queuedEffectCount--,e.run()}};function v1(t){return!!t&&typeof t.then=="function"}function vR(t){return!!t&&typeof t.subscribe=="function"}var aW=new re("");function bR(t){return h4([{provide:aW,multi:!0,useValue:t}])}var cW=(()=>{class t{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((e,i)=>{this.resolve=e,this.reject=i});appInits=E(aW,{optional:!0})??[];injector=E(Dt);constructor(){}runInitializers(){if(this.initialized)return;let e=[];for(let n of this.appInits){let o=Xr(this.injector,n);if(v1(o))e.push(o);else if(vR(o)){let r=new Promise((s,a)=>{o.subscribe({complete:s,error:a})});e.push(r)}}let i=()=>{this.done=!0,this.resolve()};Promise.all(e).then(()=>{i()}).catch(n=>{this.reject(n)}),e.length===0&&i(),this.initialized=!0}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),MR=new re("");function Ipe(){Rk(()=>{throw new lA(600,!1)})}function upe(t){return t.isBoundToModule}var hpe=10;var fc=(()=>{class t{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=E(c4e);afterRenderManager=E(qV);zonelessEnabled=E(q_);rootEffectScheduler=E(sW);dirtyFlags=0;tracingSnapshot=null;externalTestViews=new Set;afterTick=new je;get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];isStable=E(t2).hasPendingTasks.pipe(aA(e=>!e));constructor(){E(QB,{optional:!0})}whenStable(){let e;return new Promise(i=>{e=this.isStable.subscribe({next:n=>{n&&i()}})}).finally(()=>{e.unsubscribe()})}_injector=E(Hr);_rendererFactory=null;get injector(){return this._injector}bootstrap(e,i){return this.bootstrapImpl(e,i)}bootstrapImpl(e,i,n=Dt.NULL){_o(10);let o=e instanceof Kq;if(!this._injector.get(cW).done){let I="";throw new lA(405,I)}let s;o?s=e:s=this._injector.get(Yw).resolveComponentFactory(e),this.componentTypes.push(s.componentType);let a=upe(s)?void 0:this._injector.get(G0),c=i||s.selector,l=s.create(n,[],c,a),d=l.location.nativeElement,C=l.injector.get(yR,null);return C?.registerApplication(d),l.onDestroy(()=>{this.detachView(l.hostView),P8(this.components,l),C?.unregisterApplication(d)}),this._loadComponent(l),_o(11,l),l}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){_o(12),this.tracingSnapshot!==null?this.tracingSnapshot.run($_.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw new lA(101,!1);let e=Ui(null);try{this._runningTick=!0,this.synchronize()}catch(i){this.internalErrorHandler(i)}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,Ui(e),this.afterTick.next(),_o(13)}};synchronize(){this._rendererFactory===null&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(fa,null,{optional:!0}));let e=0;for(;this.dirtyFlags!==0&&e++kw(e))){this.dirtyFlags|=2;return}else this.dirtyFlags&=-8}attachView(e){let i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){let i=e;P8(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(MR,[]).forEach(n=>n(e))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(e=>e()),this._views.slice().forEach(e=>e.destroy())}finally{this._destroyed=!0,this._views=[],this._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>P8(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new lA(406,!1);let e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function P8(t,A){let e=t.indexOf(A);e>-1&&t.splice(e,1)}function Bpe(t,A,e,i){if(!e&&!kw(t))return;kq(t,A,e&&!i?0:1)}function AA(t,A,e,i){let n=Ai(),o=w1();if($c(n,o,A)){let r=Ro(),s=hB();vme(s,n,t,A,e,i)}return AA}function SR(t,A,e,i){return $c(t,w1(),e)?A+xI(e)+i:mc}function Epe(t,A,e,i,n,o){let r=xQe(),s=rW(t,r,e,n);return O_(2),s?A+xI(e)+i+xI(n)+o:mc}function O8(t,A){return t<<17|A<<2}function OI(t){return t>>17&32767}function fpe(t){return(t&2)==2}function Qpe(t,A){return t&131071|A<<17}function o_(t){return t|2}function cB(t){return(t&131068)>>2}function lx(t,A){return t&-131069|A<<2}function mpe(t){return(t&1)===1}function r_(t){return t|1}function ppe(t,A,e,i,n,o){let r=o?A.classBindings:A.styleBindings,s=OI(r),a=cB(r);t[i]=e;let c=!1,l;if(Array.isArray(e)){let d=e;l=d[1],(l===null||u4(d,l)>0)&&(c=!0)}else l=e;if(n)if(a!==0){let C=OI(t[s+1]);t[i+1]=O8(C,s),C!==0&&(t[C+1]=lx(t[C+1],i)),t[s+1]=Qpe(t[s+1],i)}else t[i+1]=O8(s,0),s!==0&&(t[s+1]=lx(t[s+1],i)),s=i;else t[i+1]=O8(a,0),s===0?s=i:t[a+1]=lx(t[a+1],i),a=i;c&&(t[i+1]=o_(t[i+1])),mj(t,l,i,!0),mj(t,l,i,!1),wpe(A,l,t,i,o),r=O8(s,a),o?A.classBindings=r:A.styleBindings=r}function wpe(t,A,e,i,n){let o=n?t.residualClasses:t.residualStyles;o!=null&&typeof A=="string"&&u4(o,A)>=0&&(e[i+1]=r_(e[i+1]))}function mj(t,A,e,i){let n=t[e+1],o=A===null,r=i?OI(n):cB(n),s=!1;for(;r!==0&&(s===!1||o);){let a=t[r],c=t[r+1];ype(a,A)&&(s=!0,t[r+1]=i?r_(c):o_(c)),r=i?OI(c):cB(c)}s&&(t[e+1]=i?o_(n):r_(n))}function ype(t,A){return t===null||A==null||(Array.isArray(t)?t[1]:t)===A?!0:Array.isArray(t)&&typeof A=="string"?u4(t,A)>=0:!1}var ps={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function lW(t){return t.substring(ps.key,ps.keyEnd)}function Dpe(t){return t.substring(ps.value,ps.valueEnd)}function vpe(t){return CW(t),gW(t,lB(t,0,ps.textEnd))}function gW(t,A){let e=ps.textEnd;return e===A?-1:(A=ps.keyEnd=Mpe(t,ps.key=A,e),lB(t,A,e))}function bpe(t){return CW(t),dW(t,lB(t,0,ps.textEnd))}function dW(t,A){let e=ps.textEnd,i=ps.key=lB(t,A,e);return e===i?-1:(i=ps.keyEnd=Spe(t,i,e),i=pj(t,i,e,58),i=ps.value=lB(t,i,e),i=ps.valueEnd=kpe(t,i,e),pj(t,i,e,59))}function CW(t){ps.key=0,ps.keyEnd=0,ps.value=0,ps.valueEnd=0,ps.textEnd=t.length}function lB(t,A,e){for(;A32;)A++;return A}function Spe(t,A,e){let i;for(;A=65&&(i&-33)<=90||i>=48&&i<=57);)A++;return A}function pj(t,A,e,i){return A=lB(t,A,e),A32&&(s=r),o=n,n=i,i=a&-33}return s}function wj(t,A,e,i){let n=-1,o=e;for(;o=0;e=dW(A,e))fW(t,lW(A),Dpe(A))}function Lo(t){kR(Gpe,uW,t,!0)}function uW(t,A){for(let e=vpe(A);e>=0;e=gW(A,e))I4(t,lW(A),!0)}function hW(t,A,e,i){let n=Ai(),o=Ro(),r=O_(2);if(o.firstUpdatePass&&EW(o,t,r,i),A!==mc&&$c(n,r,A)){let s=o.data[T0()];QW(o,s,n,n[dr],t,n[r+1]=Upe(A,e),i,r)}}function kR(t,A,e,i){let n=Ro(),o=O_(2);n.firstUpdatePass&&EW(n,null,o,i);let r=Ai();if(e!==mc&&$c(r,o,e)){let s=n.data[T0()];if(mW(s,i)&&!BW(n,o)){let a=i?s.classesWithoutHost:s.stylesWithoutHost;a!==null&&(e=ux(a,e||"")),s_(n,s,r,e,i)}else Kpe(n,s,r,r[dr],r[o+1],r[o+1]=Fpe(t,A,e),i,o)}}function BW(t,A){return A>=t.expandoStartIndex}function EW(t,A,e,i){let n=t.data;if(n[e+1]===null){let o=n[T0()],r=BW(t,e);mW(o,i)&&A===null&&!r&&(A=!1),A=_pe(n,o,A,i),ppe(n,o,A,e,r,i)}}function _pe(t,A,e,i){let n=J_(t),o=i?A.residualClasses:A.residualStyles;if(n===null)(i?A.classBindings:A.styleBindings)===0&&(e=gx(null,t,A,e,i),e=d4(e,A.attrs,i),o=null);else{let r=A.directiveStylingLast;if(r===-1||t[r]!==n)if(e=gx(n,t,A,e,i),o===null){let a=Rpe(t,A,i);a!==void 0&&Array.isArray(a)&&(a=gx(null,t,A,a[1],i),a=d4(a,A.attrs,i),Npe(t,A,i,a))}else o=Lpe(t,A,i)}return o!==void 0&&(i?A.residualClasses=o:A.residualStyles=o),e}function Rpe(t,A,e){let i=e?A.classBindings:A.styleBindings;if(cB(i)!==0)return t[OI(i)]}function Npe(t,A,e,i){let n=e?A.classBindings:A.styleBindings;t[OI(n)]=i}function Lpe(t,A,e){let i,n=A.directiveEnd;for(let o=1+A.directiveStylingLast;o0;){let a=t[n],c=Array.isArray(a),l=c?a[1]:a,d=l===null,C=e[n+1];C===mc&&(C=d?ja:void 0);let I=d?Ax(C,i):l===i?C:void 0;if(c&&!hw(I)&&(I=Ax(a,i)),hw(I)&&(s=I,r))return s;let u=t[n+1];n=r?OI(u):cB(u)}if(A!==null){let a=o?A.residualClasses:A.residualStyles;a!=null&&(s=Ax(a,i))}return s}function hw(t){return t!==void 0}function Upe(t,A){return t==null||t===""||(typeof A=="string"?t=t+A:typeof t=="object"&&(t=Bc(Ll(t)))),t}function mW(t,A){return(t.flags&(A?8:16))!==0}function pW(t,A,e){let i=Ai(),n=SR(i,t,A,e);kR(I4,uW,n,!0)}function wB(){return Ai()[Ec][gs]}var a_=class{destroy(A){}updateValue(A,e){}swap(A,e){let i=Math.min(A,e),n=Math.max(A,e),o=this.detach(n);if(n-i>1){let r=this.detach(i);this.attach(i,o),this.attach(n,r)}else this.attach(i,o)}move(A,e){this.attach(e,this.detach(A))}};function dx(t,A,e,i,n){return t===e&&Object.is(A,i)?1:Object.is(n(t,A),n(e,i))?-1:0}function Tpe(t,A,e){let i,n,o=0,r=t.length-1,s=void 0;if(Array.isArray(A)){let a=A.length-1;for(;o<=r&&o<=a;){let c=t.at(o),l=A[o],d=dx(o,c,o,l,e);if(d!==0){d<0&&t.updateValue(o,l),o++;continue}let C=t.at(r),I=A[a],u=dx(r,C,a,I,e);if(u!==0){u<0&&t.updateValue(r,I),r--,a--;continue}let h=e(o,c),B=e(r,C),f=e(o,l);if(Object.is(f,B)){let b=e(a,I);Object.is(b,h)?(t.swap(o,r),t.updateValue(r,I),a--,r--):t.move(r,o),t.updateValue(o,l),o++;continue}if(i??=new Bw,n??=vj(t,o,r,e),c_(t,i,o,f))t.updateValue(o,l),o++,r++;else if(n.has(f))i.set(h,t.detach(o)),r--;else{let b=t.create(o,A[o]);t.attach(o,b),o++,r++}}for(;o<=a;)Dj(t,i,e,o,A[o]),o++}else if(A!=null){let a=A[Symbol.iterator](),c=a.next();for(;!c.done&&o<=r;){let l=t.at(o),d=c.value,C=dx(o,l,o,d,e);if(C!==0)C<0&&t.updateValue(o,d),o++,c=a.next();else{i??=new Bw,n??=vj(t,o,r,e);let I=e(o,d);if(c_(t,i,o,I))t.updateValue(o,d),o++,r++,c=a.next();else if(!n.has(I))t.attach(o,t.create(o,d)),o++,r++,c=a.next();else{let u=e(o,l);i.set(u,t.detach(o)),r--}}}for(;!c.done;)Dj(t,i,e,t.length,c.value),c=a.next()}for(;o<=r;)t.destroy(t.detach(r--));i?.forEach(a=>{t.destroy(a)})}function c_(t,A,e,i){return A!==void 0&&A.has(i)?(t.attach(e,A.get(i)),A.delete(i),!0):!1}function Dj(t,A,e,i,n){if(c_(t,A,i,e(i,n)))t.updateValue(i,n);else{let o=t.create(i,n);t.attach(i,o)}}function vj(t,A,e,i){let n=new Set;for(let o=A;o<=e;o++)n.add(i(o,t.at(o)));return n}var Bw=class{kvMap=new Map;_vMap=void 0;has(A){return this.kvMap.has(A)}delete(A){if(!this.has(A))return!1;let e=this.kvMap.get(A);return this._vMap!==void 0&&this._vMap.has(e)?(this.kvMap.set(A,this._vMap.get(e)),this._vMap.delete(e)):this.kvMap.delete(A),!0}get(A){return this.kvMap.get(A)}set(A,e){if(this.kvMap.has(A)){let i=this.kvMap.get(A);this._vMap===void 0&&(this._vMap=new Map);let n=this._vMap;for(;n.has(i);)i=n.get(i);n.set(i,e)}else this.kvMap.set(A,e)}forEach(A){for(let[e,i]of this.kvMap)if(A(i,e),this._vMap!==void 0){let n=this._vMap;for(;n.has(i);)i=n.get(i),A(i,e)}}};function $(t,A){Dg("NgControlFlow");let e=Ai(),i=w1(),n=e[i]!==mc?e[i]:-1,o=n!==-1?Ew(e,Zr+n):void 0,r=0;if($c(e,i,t)){let s=Ui(null);try{if(o!==void 0&&Fq(o,r),t!==-1){let a=Zr+t,c=Ew(e,a),l=C_(e[Li],a),d=aB(c,l.tView.ssrId),C=p4(e,l,A,{dehydratedView:d});w4(c,C,r,sB(l,d))}}finally{Ui(s)}}else if(o!==void 0){let s=Lq(o,r);s!==void 0&&(s[gs]=A)}}var l_=class{lContainer;$implicit;$index;constructor(A,e,i){this.lContainer=A,this.$implicit=e,this.$index=i}get $count(){return this.lContainer.length-Ba}};function b1(t){return t}function Fi(t,A){return A}var g_=class{hasEmptyBlock;trackByFn;liveCollection;constructor(A,e,i){this.hasEmptyBlock=A,this.trackByFn=e,this.liveCollection=i}};function Rt(t,A,e,i,n,o,r,s,a,c,l,d,C){Dg("NgControlFlow");let I=Ai(),u=Ro(),h=a!==void 0,B=Ai(),f=s?r.bind(B[Ec][gs]):r,b=new g_(h,f);B[Zr+t]=b,uw(I,u,t+1,A,e,i,n,m1(u.consts,o)),h&&uw(I,u,t+2,a,c,l,d,m1(u.consts,C))}var d_=class extends a_{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(A,e,i){super(),this.lContainer=A,this.hostLView=e,this.templateTNode=i}get length(){return this.lContainer.length-Ba}at(A){return this.getLView(A)[gs].$implicit}attach(A,e){let i=e[iB];this.needsIndexUpdate||=A!==this.length,w4(this.lContainer,e,A,sB(this.templateTNode,i))}detach(A){return this.needsIndexUpdate||=A!==this.length-1,Ope(this.lContainer,A)}create(A,e){let i=aB(this.lContainer,this.templateTNode.tView.ssrId),n=p4(this.hostLView,this.templateTNode,new l_(this.lContainer,e,A),{dehydratedView:i});return this.operationsCounter?.recordCreate(),n}destroy(A){Uw(A[Li],A),this.operationsCounter?.recordDestroy()}updateValue(A,e){this.getLView(A)[gs].$implicit=e}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let A=0;A(Rw(!0),Cq(i,n,UQe()));function Hpe(t,A,e,i,n){let o=A.consts,r=m1(o,i),s=mB(A,t,8,"ng-container",r);r!==null&&qx(s,r,!0);let a=m1(o,n);return K_()&&hR(A,e,s,a,aR),s.mergedAttrs=rB(s.mergedAttrs,s.attrs),A.queries!==null&&A.queries.elementStart(A,s),s}function Qa(t,A,e){let i=Ai(),n=Ro(),o=t+Zr,r=n.firstCreatePass?Hpe(o,n,i,A,e):n.data[o];p1(r,!0);let s=zpe(n,i,r,t);return i[o]=s,_w()&&Tw(n,i,s,r),EB(s,i),Mw(r)&&(Kw(n,i,r),AR(n,r,i)),e!=null&&sR(i,r),Qa}function ma(){let t=Xs(),A=Ro();return U_()?T_():(t=t.parent,p1(t,!1)),A.firstCreatePass&&(P_(A,t),__(t)&&A.queries.elementEnd(t)),ma}function En(t,A,e){return Qa(t,A,e),ma(),En}var zpe=(t,A,e,i)=>(Rw(!0),gme(A[dr],""));function Ue(){return Ai()}function ea(t,A,e){let i=Ai(),n=w1();if($c(i,n,A)){let o=Ro(),r=hB();m4(o,r,i,t,A,i[dr],e,!0)}return ea}function xR(t,A,e){let i=Ai(),n=w1();if($c(i,n,A)){let o=Ro(),r=hB(),s=J_(o.data),a=Qq(s,r,i);m4(o,r,i,t,A,a,e,!0)}return xR}var fw="en-US";var Ppe=fw;function jpe(t){typeof t=="string"&&(Ppe=t.toLowerCase().replace(/_/g,"-"))}function bj(t,A,e){return function i(n){if(n===Function)return e;let o=CB(t)?N0(t.index,A):A;uR(o,5);let r=A[gs],s=Mj(A,r,e,n),a=i.__ngNextListenerFn__;for(;a;)s=Mj(A,r,a,n)&&s,a=a.__ngNextListenerFn__;return s}}function Mj(t,A,e,i){let n=Ui(null);try{return _o(6,A,e),e(i)!==!1}catch(o){return Vpe(t,o),!1}finally{_o(7,A,e),Ui(n)}}function Vpe(t,A){let e=t[nB],i=e?e.get(Va,null):null;i&&i.handleError(A)}function Sj(t,A,e,i,n,o){let r=A[e],s=A[Li],c=s.data[e].outputs[i],l=r[c],d=s.firstCreatePass?G_(s):null,C=F_(A),I=l.subscribe(o),u=C.length;C.push(o,I),d&&d.push(n,t.index,u,-(u+1))}function ee(t,A,e,i){let n=Ai(),o=Ro(),r=Xs();return RR(o,n,n[dr],r,t,A,i),ee}function _R(t,A){let e=Xs(),i=Ai(),n=Ro(),o=J_(n.data),r=Qq(o,e,i);return RR(n,i,r,e,t,A),_R}function qpe(t,A,e,i){let n=t.cleanup;if(n!=null)for(let o=0;oa?s[a]:null}typeof r=="string"&&(o+=2)}return null}function RR(t,A,e,i,n,o,r){let s=Mw(i),c=t.firstCreatePass?G_(t):null,l=F_(A),d=!0;if(i.type&3||r){let C=U0(i,A),I=r?r(C):C,u=l.length,h=r?f=>r(R0(f[i.index])):i.index,B=null;if(!r&&s&&(B=qpe(t,A,n,i.index)),B!==null){let f=B.__ngLastListenerFn__||B;f.__ngNextListenerFn__=o,B.__ngLastListenerFn__=o,d=!1}else{o=bj(i,A,o),v4e(A,I,n,o);let f=e.listen(I,n,o);l.push(o,f),c&&c.push(n,h,u,u+1)}}else o=bj(i,A,o);if(d){let C=i.outputs?.[n],I=i.hostDirectiveOutputs?.[n];if(I&&I.length)for(let u=0;u(Rw(!0),cme(A[dr],i));function Pe(t){return FA("",t,""),Pe}function FA(t,A,e){let i=Ai(),n=SR(i,t,A,e);return n!==mc&&yW(i,T0(),n),FA}function el(t,A,e,i,n){let o=Ai(),r=Epe(o,t,A,e,i,n);return r!==mc&&yW(o,T0(),r),el}function yW(t,A,e){let i=sV(A,t);lme(t[dr],i,e)}function jn(t,A,e){UV(A)&&(A=A());let i=Ai(),n=w1();if($c(i,n,A)){let o=Ro(),r=hB();m4(o,r,i,t,A,i[dr],e,!1)}return jn}function Vn(t,A){let e=UV(t);return e&&t.set(A),e}function qn(t,A){let e=Ai(),i=Ro(),n=Xs();return RR(i,e,e[dr],n,t,A),qn}var DW={};function Wa(t){let A=Ro(),e=Ai(),i=t+Zr,n=mB(A,i,128,null,null);return p1(n,!1),N_(A,e,i,DW),Wa}function S1(t){Dg("NgLet");let A=Ro(),e=Ai(),i=T0();return N_(A,e,i,t),t}function s2(t){let A=CV(),e=Sw(A,Zr+t);if(e===DW)throw new lA(314,!1);return e}function $pe(t,A,e){let i=Ro();if(i.firstCreatePass){let n=yg(t);I_(e,i.data,i.blueprint,n,!0),I_(A,i.data,i.blueprint,n,!1)}}function I_(t,A,e,i,n){if(t=Zs(t),Array.isArray(t))for(let o=0;o>20;if(tB(t)||!t.multi){let I=new KI(c,n,DA),u=Ix(a,A,n?l:l+C,d);u===-1?(bx(rw(s,r),o,a),Cx(o,t,A.length),A.push(a),s.directiveStart++,s.directiveEnd++,n&&(s.providerIndexes+=1048576),e.push(I),r.push(I)):(e[u]=I,r[u]=I)}else{let I=Ix(a,A,l+C,d),u=Ix(a,A,l,l+C),h=I>=0&&e[I],B=u>=0&&e[u];if(n&&!B||!n&&!h){bx(rw(s,r),o,a);let f=t6e(n?A6e:e6e,e.length,n,i,c);!n&&B&&(e[u].providerFactory=f),Cx(o,t,A.length,0),A.push(a),s.directiveStart++,s.directiveEnd++,n&&(s.providerIndexes+=1048576),e.push(f),r.push(f)}else{let f=vW(e[n?u:I],c,!n&&i);Cx(o,t,I>-1?I:u,f)}!n&&i&&B&&e[u].componentProviders++}}}function Cx(t,A,e,i){let n=tB(A),o=aQe(A);if(n||o){let a=(o?Zs(A.useClass):A).prototype.ngOnDestroy;if(a){let c=t.destroyHooks||(t.destroyHooks=[]);if(!n&&A.multi){let l=c.indexOf(e);l===-1?c.push(e,[i,a]):c[l+1].push(i,a)}else c.push(e,a)}}}function vW(t,A,e){return e&&t.componentProviders++,t.multi.push(A)-1}function Ix(t,A,e,i){for(let n=e;n{e.providersResolver=(i,n)=>$pe(i,n?n(t):t,A)}}function v4(t,A,e){let i=B4()+t,n=Ai();return n[i]===mc?pR(n,i,e?A.call(e):A()):cpe(n,i)}function Al(t,A,e,i){return MW(Ai(),B4(),t,A,e,i)}function tl(t,A,e,i,n){return SW(Ai(),B4(),t,A,e,i,n)}function bW(t,A){let e=t[A];return e===mc?void 0:e}function MW(t,A,e,i,n,o){let r=A+e;return $c(t,r,n)?pR(t,r+1,o?i.call(o,n):i(n)):bW(t,r+1)}function SW(t,A,e,i,n,o,r){let s=A+e;return rW(t,s,n,o)?pR(t,s+2,r?i.call(r,n,o):i(n,o)):bW(t,s+2)}function Ii(t,A){let e=Ro(),i,n=t+Zr;e.firstCreatePass?(i=i6e(A,e.pipeRegistry),e.data[n]=i,i.onDestroy&&(e.destroyHooks??=[]).push(n,i.onDestroy)):i=e.data[n];let o=i.factory||(i.factory=_I(i.type,!0)),r,s=hc(DA);try{let a=ow(!1),c=o();return ow(a),N_(e,Ai(),n,c),c}finally{hc(s)}}function i6e(t,A){if(A)for(let e=A.length-1;e>=0;e--){let i=A[e];if(t===i.name)return i}}function Qi(t,A,e){let i=t+Zr,n=Ai(),o=Sw(n,i);return kW(n,i)?MW(n,B4(),A,o.transform,e,o):o.transform(e)}function b4(t,A,e,i){let n=t+Zr,o=Ai(),r=Sw(o,n);return kW(o,n)?SW(o,B4(),A,r.transform,e,i,r):r.transform(e,i)}function kW(t,A){return t[Li].data[A].pure}function a2(t,A){return Jw(t,A)}var JI=class{full;major;minor;patch;constructor(A){this.full=A;let e=A.split(".");this.major=e[0],this.minor=e[1],this.patch=e.slice(2).join(".")}},NR=new JI("19.2.15"),h_=class{ngModuleFactory;componentFactories;constructor(A,e){this.ngModuleFactory=A,this.componentFactories=e}},xW=(()=>{class t{compileModuleSync(e){return new t_(e)}compileModuleAsync(e){return Promise.resolve(this.compileModuleSync(e))}compileModuleAndAllComponentsSync(e){let i=this.compileModuleSync(e),n=qj(e),o=lq(n.declarations).reduce((r,s)=>{let a=Q1(s);return a&&r.push(new TI(a)),r},[]);return new h_(i,o)}compileModuleAndAllComponentsAsync(e){return Promise.resolve(this.compileModuleAndAllComponentsSync(e))}clearCache(){}clearCacheFor(e){}getModuleId(e){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var n6e=(()=>{class t{zone=E(yA);changeDetectionScheduler=E(UI);applicationRef=E(fc);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function o6e({ngZoneFactory:t,ignoreChangesOutsideZone:A,scheduleInRootZone:e}){return t??=()=>new yA(_A(ae({},r6e()),{scheduleInRootZone:e})),[{provide:yA,useFactory:t},{provide:AB,multi:!0,useFactory:()=>{let i=E(n6e,{optional:!0});return()=>i.initialize()}},{provide:AB,multi:!0,useFactory:()=>{let i=E(s6e);return()=>{i.initialize()}}},A===!0?{provide:NV,useValue:!0}:[],{provide:LV,useValue:e??RV}]}function r6e(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}var s6e=(()=>{class t{subscription=new Ot;initialized=!1;zone=E(yA);pendingTasks=E(t2);initialize(){if(this.initialized)return;this.initialized=!0;let e=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(e=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{yA.assertNotInAngularZone(),queueMicrotask(()=>{e!==null&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(e),e=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{yA.assertInAngularZone(),e??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var a6e=(()=>{class t{appRef=E(fc);taskService=E(t2);ngZone=E(yA);zonelessEnabled=E(q_);tracing=E(QB,{optional:!0});disableScheduling=E(NV,{optional:!0})??!1;zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new Ot;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(aw):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(E(LV,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof xx||!this.zoneIsDefined)}notify(e){if(!this.zonelessEnabled&&e===5)return;let i=!1;switch(e){case 0:{this.appRef.dirtyFlags|=2;break}case 3:case 2:case 4:case 5:case 1:{this.appRef.dirtyFlags|=4;break}case 6:{this.appRef.dirtyFlags|=2,i=!0;break}case 12:{this.appRef.dirtyFlags|=16,i=!0;break}case 13:{this.appRef.dirtyFlags|=2,i=!0;break}case 11:{i=!0;break}case 9:case 8:case 7:case 10:default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick(i))return;let n=this.useMicrotaskScheduler?XP:FV;this.pendingRenderTaskId=this.taskService.add(),this.scheduleInRootZone?this.cancelScheduledCallback=Zone.root.run(()=>n(()=>this.tick())):this.cancelScheduledCallback=this.ngZone.runOutsideAngular(()=>n(()=>this.tick()))}shouldScheduleTick(e){return!(this.disableScheduling&&!e||this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(aw+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(this.appRef.dirtyFlags===0){this.cleanup();return}!this.zonelessEnabled&&this.appRef.dirtyFlags&7&&(this.appRef.dirtyFlags|=1);let e=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(i){throw this.taskService.remove(e),i}finally{this.cleanup()}this.useMicrotaskScheduler=!0,XP(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(e)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){let e=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(e)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function c6e(){return typeof $localize<"u"&&$localize.locale||fw}var jw=new re("",{providedIn:"root",factory:()=>E(jw,ji.Optional|ji.SkipSelf)||c6e()});var B_=new re(""),l6e=new re("");function A4(t){return!t.moduleRef}function g6e(t){let A=A4(t)?t.r3Injector:t.moduleRef.injector,e=A.get(yA);return e.run(()=>{A4(t)?t.r3Injector.resolveInjectorInitializers():t.moduleRef.resolveInjectorInitializers();let i=A.get(Va,null),n;if(e.runOutsideAngular(()=>{n=e.onError.subscribe({next:o=>{i.handleError(o)}})}),A4(t)){let o=()=>A.destroy(),r=t.platformInjector.get(B_);r.add(o),A.onDestroy(()=>{n.unsubscribe(),r.delete(o)})}else{let o=()=>t.moduleRef.destroy(),r=t.platformInjector.get(B_);r.add(o),t.moduleRef.onDestroy(()=>{P8(t.allPlatformModules,t.moduleRef),n.unsubscribe(),r.delete(o)})}return C6e(i,e,()=>{let o=A.get(cW);return o.runInitializers(),o.donePromise.then(()=>{let r=A.get(jw,fw);if(jpe(r||fw),!A.get(l6e,!0))return A4(t)?A.get(fc):(t.allPlatformModules.push(t.moduleRef),t.moduleRef);if(A4(t)){let a=A.get(fc);return t.rootComponent!==void 0&&a.bootstrap(t.rootComponent),a}else return d6e(t.moduleRef,t.allPlatformModules),t.moduleRef})})})}function d6e(t,A){let e=t.injector.get(fc);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(i=>e.bootstrap(i));else if(t.instance.ngDoBootstrap)t.instance.ngDoBootstrap(e);else throw new lA(-403,!1);A.push(t)}function C6e(t,A,e){try{let i=e();return v1(i)?i.catch(n=>{throw A.runOutsideAngular(()=>t.handleError(n)),n}):i}catch(i){throw A.runOutsideAngular(()=>t.handleError(i)),i}}var j8=null;function I6e(t=[],A){return Dt.create({name:A,providers:[{provide:Dw,useValue:"platform"},{provide:B_,useValue:new Set([()=>j8=null])},...t]})}function u6e(t=[]){if(j8)return j8;let A=I6e(t);return j8=A,Ipe(),h6e(A),A}function h6e(t){let A=t.get(X_,null);Xr(t,()=>{A?.forEach(e=>e())})}var ut=(()=>{class t{static __NG_ELEMENT_ID__=B6e}return t})();function B6e(t){return E6e(Xs(),Ai(),(t&16)===16)}function E6e(t,A,e){if(CB(t)&&!e){let i=N0(t.index,A);return new g4(i,i)}else if(t.type&175){let i=A[Ec];return new g4(i,A)}return null}var E_=class{constructor(){}supports(A){return oW(A)}create(A){return new f_(A)}},f6e=(t,A)=>A,f_=class{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(A){this._trackByFn=A||f6e}forEachItem(A){let e;for(e=this._itHead;e!==null;e=e._next)A(e)}forEachOperation(A){let e=this._itHead,i=this._removalsHead,n=0,o=null;for(;e||i;){let r=!i||e&&e.currentIndex{r=this._trackByFn(n,s),e===null||!Object.is(e.trackById,r)?(e=this._mismatch(e,s,r,n),i=!0):(i&&(e=this._verifyReinsertion(e,s,r,n)),Object.is(e.item,s)||this._addIdentityChange(e,s)),e=e._next,n++}),this.length=n;return this._truncate(e),this.collection=A,this.isDirty}get isDirty(){return this._additionsHead!==null||this._movesHead!==null||this._removalsHead!==null||this._identityChangesHead!==null}_reset(){if(this.isDirty){let A;for(A=this._previousItHead=this._itHead;A!==null;A=A._next)A._nextPrevious=A._next;for(A=this._additionsHead;A!==null;A=A._nextAdded)A.previousIndex=A.currentIndex;for(this._additionsHead=this._additionsTail=null,A=this._movesHead;A!==null;A=A._nextMoved)A.previousIndex=A.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(A,e,i,n){let o;return A===null?o=this._itTail:(o=A._prev,this._remove(A)),A=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null),A!==null?(Object.is(A.item,e)||this._addIdentityChange(A,e),this._reinsertAfter(A,o,n)):(A=this._linkedRecords===null?null:this._linkedRecords.get(i,n),A!==null?(Object.is(A.item,e)||this._addIdentityChange(A,e),this._moveAfter(A,o,n)):A=this._addAfter(new Q_(e,i),o,n)),A}_verifyReinsertion(A,e,i,n){let o=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null);return o!==null?A=this._reinsertAfter(o,A._prev,n):A.currentIndex!=n&&(A.currentIndex=n,this._addToMoves(A,n)),A}_truncate(A){for(;A!==null;){let e=A._next;this._addToRemovals(this._unlink(A)),A=e}this._unlinkedRecords!==null&&this._unlinkedRecords.clear(),this._additionsTail!==null&&(this._additionsTail._nextAdded=null),this._movesTail!==null&&(this._movesTail._nextMoved=null),this._itTail!==null&&(this._itTail._next=null),this._removalsTail!==null&&(this._removalsTail._nextRemoved=null),this._identityChangesTail!==null&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(A,e,i){this._unlinkedRecords!==null&&this._unlinkedRecords.remove(A);let n=A._prevRemoved,o=A._nextRemoved;return n===null?this._removalsHead=o:n._nextRemoved=o,o===null?this._removalsTail=n:o._prevRemoved=n,this._insertAfter(A,e,i),this._addToMoves(A,i),A}_moveAfter(A,e,i){return this._unlink(A),this._insertAfter(A,e,i),this._addToMoves(A,i),A}_addAfter(A,e,i){return this._insertAfter(A,e,i),this._additionsTail===null?this._additionsTail=this._additionsHead=A:this._additionsTail=this._additionsTail._nextAdded=A,A}_insertAfter(A,e,i){let n=e===null?this._itHead:e._next;return A._next=n,A._prev=e,n===null?this._itTail=A:n._prev=A,e===null?this._itHead=A:e._next=A,this._linkedRecords===null&&(this._linkedRecords=new Qw),this._linkedRecords.put(A),A.currentIndex=i,A}_remove(A){return this._addToRemovals(this._unlink(A))}_unlink(A){this._linkedRecords!==null&&this._linkedRecords.remove(A);let e=A._prev,i=A._next;return e===null?this._itHead=i:e._next=i,i===null?this._itTail=e:i._prev=e,A}_addToMoves(A,e){return A.previousIndex===e||(this._movesTail===null?this._movesTail=this._movesHead=A:this._movesTail=this._movesTail._nextMoved=A),A}_addToRemovals(A){return this._unlinkedRecords===null&&(this._unlinkedRecords=new Qw),this._unlinkedRecords.put(A),A.currentIndex=null,A._nextRemoved=null,this._removalsTail===null?(this._removalsTail=this._removalsHead=A,A._prevRemoved=null):(A._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=A),A}_addIdentityChange(A,e){return A.item=e,this._identityChangesTail===null?this._identityChangesTail=this._identityChangesHead=A:this._identityChangesTail=this._identityChangesTail._nextIdentityChange=A,A}},Q_=class{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(A,e){this.item=A,this.trackById=e}},m_=class{_head=null;_tail=null;add(A){this._head===null?(this._head=this._tail=A,A._nextDup=null,A._prevDup=null):(this._tail._nextDup=A,A._prevDup=this._tail,A._nextDup=null,this._tail=A)}get(A,e){let i;for(i=this._head;i!==null;i=i._nextDup)if((e===null||e<=i.currentIndex)&&Object.is(i.trackById,A))return i;return null}remove(A){let e=A._prevDup,i=A._nextDup;return e===null?this._head=i:e._nextDup=i,i===null?this._tail=e:i._prevDup=e,this._head===null}},Qw=class{map=new Map;put(A){let e=A.trackById,i=this.map.get(e);i||(i=new m_,this.map.set(e,i)),i.add(A)}get(A,e){let i=A,n=this.map.get(i);return n?n.get(A,e):null}remove(A){let e=A.trackById;return this.map.get(e).remove(A)&&this.map.delete(e),A}get isEmpty(){return this.map.size===0}clear(){this.map.clear()}};function kj(t,A,e){let i=t.previousIndex;if(i===null)return i;let n=0;return e&&i{if(e&&e.key===n)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{let o=this._getOrCreateRecordForKey(n,i);e=this._insertBeforeOrAppend(e,o)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;i!==null;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(A,e){if(A){let i=A._prev;return e._next=A,e._prev=i,A._prev=e,i&&(i._next=e),A===this._mapHead&&(this._mapHead=e),this._appendAfter=A,A}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(A,e){if(this._records.has(A)){let n=this._records.get(A);this._maybeAddToChanges(n,e);let o=n._prev,r=n._next;return o&&(o._next=r),r&&(r._prev=o),n._next=null,n._prev=null,n}let i=new y_(A);return this._records.set(A,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let A;for(this._previousMapHead=this._mapHead,A=this._previousMapHead;A!==null;A=A._next)A._nextPrevious=A._next;for(A=this._changesHead;A!==null;A=A._nextChanged)A.previousValue=A.currentValue;for(A=this._additionsHead;A!=null;A=A._nextAdded)A.previousValue=A.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(A,e){Object.is(e,A.currentValue)||(A.previousValue=A.currentValue,A.currentValue=e,this._addToChanges(A))}_addToAdditions(A){this._additionsHead===null?this._additionsHead=this._additionsTail=A:(this._additionsTail._nextAdded=A,this._additionsTail=A)}_addToChanges(A){this._changesHead===null?this._changesHead=this._changesTail=A:(this._changesTail._nextChanged=A,this._changesTail=A)}_forEach(A,e){A instanceof Map?A.forEach(e):Object.keys(A).forEach(i=>e(A[i],i))}},y_=class{key;previousValue=null;currentValue=null;_nextPrevious=null;_next=null;_prev=null;_nextAdded=null;_nextRemoved=null;_nextChanged=null;constructor(A){this.key=A}};function xj(){return new Y0([new E_])}var Y0=(()=>{class t{factories;static \u0275prov=be({token:t,providedIn:"root",factory:xj});constructor(e){this.factories=e}static create(e,i){if(i!=null){let n=i.factories.slice();e=e.concat(n)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||xj()),deps:[[t,new yw,new gB]]}}find(e){let i=this.factories.find(n=>n.supports(e));if(i!=null)return i;throw new lA(901,!1)}}return t})();function _j(){return new Vw([new p_])}var Vw=(()=>{class t{static \u0275prov=be({token:t,providedIn:"root",factory:_j});factories;constructor(e){this.factories=e}static create(e,i){if(i){let n=i.factories.slice();e=e.concat(n)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||_j()),deps:[[t,new yw,new gB]]}}find(e){let i=this.factories.find(n=>n.supports(e));if(i)return i;throw new lA(901,!1)}}return t})();var _W=(()=>{class t{constructor(e){}static \u0275fac=function(i){return new(i||t)(UA(fc))};static \u0275mod=OA({type:t});static \u0275inj=TA({})}return t})();function RW(t){let{rootComponent:A,appProviders:e,platformProviders:i,platformRef:n}=t;_o(8);try{let o=n?.injector??u6e(i),r=[o6e({}),{provide:UI,useExisting:a6e},...e||[]],s=new Iw({providers:r,parent:o,debugName:"",runEnvironmentInitializers:!1});return g6e({r3Injector:s.injector,platformInjector:o,rootComponent:A})}catch(o){return Promise.reject(o)}finally{_o(9)}}function IA(t){return typeof t=="boolean"?t:t!=null&&t!=="false"}function ln(t,A=NaN){return!isNaN(parseFloat(t))&&!isNaN(Number(t))?Number(t):A}function As(t){return Fk(t)}function ot(t,A){return C8(t,A?.equal)}var D_=class{[Cc];constructor(A){this[Cc]=A}destroy(){this[Cc].destroy()}};function pa(t,A){!A?.injector&&e2(pa);let e=A?.injector??E(Dt),i=A?.manualCleanup!==!0?e.get(Fr):null,n,o=e.get(eR,null,{optional:!0}),r=e.get(UI);return o!==null&&!A?.forceRoot?(n=p6e(o.view,r,t),i instanceof sw&&i._lView===o.view&&(i=null)):n=w6e(t,e.get(sW),r),n.injector=e,i!==null&&(n.onDestroyFn=i.onDestroy(()=>n.destroy())),new D_(n)}var NW=_A(ae({},Rh),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,hasRun:!1,cleanupFns:void 0,zone:null,kind:"effect",onDestroyFn:a4,run(){if(this.dirty=!1,this.hasRun&&!l8(this))return;this.hasRun=!0;let t=i=>(this.cleanupFns??=[]).push(i),A=zQ(this),e=tw(!1);try{this.maybeCleanup(),this.fn(t)}finally{tw(e),c8(this,A)}},maybeCleanup(){if(this.cleanupFns?.length)try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[]}}}),Q6e=_A(ae({},NW),{consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){PQ(this),this.onDestroyFn(),this.maybeCleanup(),this.scheduler.remove(this)}}),m6e=_A(ae({},NW),{consumerMarkedDirty(){this.view[fi]|=8192,uB(this.view),this.notifier.notify(13)},destroy(){PQ(this),this.onDestroyFn(),this.maybeCleanup(),this.view[NI]?.delete(this)}});function p6e(t,A,e){let i=Object.create(m6e);return i.view=t,i.zone=typeof Zone<"u"?Zone.current:null,i.notifier=A,i.fn=e,t[NI]??=new Set,t[NI].add(i),i.consumerMarkedDirty(i),i}function w6e(t,A,e){let i=Object.create(Q6e);return i.fn=t,i.scheduler=A,i.notifier=e,i.zone=typeof Zone<"u"?Zone.current:null,i.scheduler.schedule(i),i.notifier.notify(12),i}function qw(t,A){let e=Q1(t),i=A.elementInjector||vw();return new TI(e).create(i,A.projectableNodes,A.hostElement,A.environmentInjector)}function LW(t){let A=Q1(t);if(!A)return null;let e=new TI(A);return{get selector(){return e.selector},get type(){return e.componentType},get inputs(){return e.inputs},get outputs(){return e.outputs},get ngContentSelectors(){return e.ngContentSelectors},get isStandalone(){return A.standalone},get isSignal(){return A.signals}}}var ht=new re("");var KW=null;function il(){return KW}function LR(t){KW??=t}var M4=class{},S4=(()=>{class t{historyGo(e){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:()=>E(UW),providedIn:"platform"})}return t})(),FR=new re(""),UW=(()=>{class t extends S4{_location;_history;_doc=E(ht);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return il().getBaseHref(this._doc)}onPopState(e){let i=il().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){let i=il().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(e){this._location.pathname=e}pushState(e,i,n){this._history.pushState(e,i,n)}replaceState(e,i,n){this._history.replaceState(e,i,n)}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function Ww(t,A){return t?A?t.endsWith("/")?A.startsWith("/")?t+A.slice(1):t+A:A.startsWith("/")?t+A:`${t}/${A}`:t:A}function FW(t){let A=t.search(/#|\?|$/);return t[A-1]==="/"?t.slice(0,A-1)+t.slice(A):t}function vg(t){return t&&t[0]!=="?"?`?${t}`:t}var c2=(()=>{class t{historyGo(e){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:()=>E(Xw),providedIn:"root"})}return t})(),Zw=new re(""),Xw=(()=>{class t extends c2{_platformLocation;_baseHref;_removeListenerFns=[];constructor(e,i){super(),this._platformLocation=e,this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??E(ht).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return Ww(this._baseHref,e)}path(e=!1){let i=this._platformLocation.pathname+vg(this._platformLocation.search),n=this._platformLocation.hash;return n&&e?`${i}${n}`:i}pushState(e,i,n,o){let r=this.prepareExternalUrl(n+vg(o));this._platformLocation.pushState(e,i,r)}replaceState(e,i,n,o){let r=this.prepareExternalUrl(n+vg(o));this._platformLocation.replaceState(e,i,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static \u0275fac=function(i){return new(i||t)(UA(S4),UA(Zw,8))};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Fl=(()=>{class t{_subject=new je;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(e){this._locationStrategy=e;let i=this._locationStrategy.getBaseHref();this._basePath=v6e(FW(GW(i))),this._locationStrategy.onPopState(n=>{this._subject.next({url:this.path(!0),pop:!0,state:n.state,type:n.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+vg(i))}normalize(e){return t.stripTrailingSlash(D6e(this._basePath,GW(e)))}prepareExternalUrl(e){return e&&e[0]!=="/"&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,i="",n=null){this._locationStrategy.pushState(n,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+vg(i)),n)}replaceState(e,i="",n=null){this._locationStrategy.replaceState(n,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+vg(i)),n)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{let i=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(i,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(n=>n(e,i))}subscribe(e,i,n){return this._subject.subscribe({next:e,error:i??void 0,complete:n??void 0})}static normalizeQueryParams=vg;static joinWithSlash=Ww;static stripTrailingSlash=FW;static \u0275fac=function(i){return new(i||t)(UA(c2))};static \u0275prov=be({token:t,factory:()=>y6e(),providedIn:"root"})}return t})();function y6e(){return new Fl(UA(c2))}function D6e(t,A){if(!t||!A.startsWith(t))return A;let e=A.substring(t.length);return e===""||["/",";","?","#"].includes(e[0])?e:A}function GW(t){return t.replace(/\/index.html$/,"")}function v6e(t){if(new RegExp("^(https?:)?//").test(t)){let[,e]=t.split(/\/\/[^\/]+/);return e}return t}var TR=(()=>{class t extends c2{_platformLocation;_baseHref="";_removeListenerFns=[];constructor(e,i){super(),this._platformLocation=e,i!=null&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}path(e=!1){let i=this._platformLocation.hash??"#";return i.length>0?i.substring(1):i}prepareExternalUrl(e){let i=Ww(this._baseHref,e);return i.length>0?"#"+i:i}pushState(e,i,n,o){let r=this.prepareExternalUrl(n+vg(o))||this._platformLocation.pathname;this._platformLocation.pushState(e,i,r)}replaceState(e,i,n,o){let r=this.prepareExternalUrl(n+vg(o))||this._platformLocation.pathname;this._platformLocation.replaceState(e,i,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static \u0275fac=function(i){return new(i||t)(UA(S4),UA(Zw,8))};static \u0275prov=be({token:t,factory:t.\u0275fac})}return t})();var GR=/\s+/,TW=[],ta=(()=>{class t{_ngEl;_renderer;initialClasses=TW;rawClass;stateMap=new Map;constructor(e,i){this._ngEl=e,this._renderer=i}set klass(e){this.initialClasses=e!=null?e.trim().split(GR):TW}set ngClass(e){this.rawClass=typeof e=="string"?e.trim().split(GR):e}ngDoCheck(){for(let i of this.initialClasses)this._updateState(i,!0);let e=this.rawClass;if(Array.isArray(e)||e instanceof Set)for(let i of e)this._updateState(i,!0);else if(e!=null)for(let i of Object.keys(e))this._updateState(i,!!e[i]);this._applyStateDiff()}_updateState(e,i){let n=this.stateMap.get(e);n!==void 0?(n.enabled!==i&&(n.changed=!0,n.enabled=i),n.touched=!0):this.stateMap.set(e,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(let e of this.stateMap){let i=e[0],n=e[1];n.changed?(this._toggleClass(i,n.enabled),n.changed=!1):n.touched||(n.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),n.touched=!1}}_toggleClass(e,i){e=e.trim(),e.length>0&&e.split(GR).forEach(n=>{i?this._renderer.addClass(this._ngEl.nativeElement,n):this._renderer.removeClass(this._ngEl.nativeElement,n)})}static \u0275fac=function(i){return new(i||t)(DA(eA),DA(an))};static \u0275dir=Oe({type:t,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return t})(),YI=(()=>{class t{_viewContainerRef;ngComponentOutlet=null;ngComponentOutletInputs;ngComponentOutletInjector;ngComponentOutletContent;ngComponentOutletNgModule;ngComponentOutletNgModuleFactory;_componentRef;_moduleRef;_inputsUsed=new Map;get componentInstance(){return this._componentRef?.instance??null}constructor(e){this._viewContainerRef=e}_needToReCreateNgModuleInstance(e){return e.ngComponentOutletNgModule!==void 0||e.ngComponentOutletNgModuleFactory!==void 0}_needToReCreateComponentInstance(e){return e.ngComponentOutlet!==void 0||e.ngComponentOutletContent!==void 0||e.ngComponentOutletInjector!==void 0||this._needToReCreateNgModuleInstance(e)}ngOnChanges(e){if(this._needToReCreateComponentInstance(e)&&(this._viewContainerRef.clear(),this._inputsUsed.clear(),this._componentRef=void 0,this.ngComponentOutlet)){let i=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;this._needToReCreateNgModuleInstance(e)&&(this._moduleRef?.destroy(),this.ngComponentOutletNgModule?this._moduleRef=AW(this.ngComponentOutletNgModule,OW(i)):this.ngComponentOutletNgModuleFactory?this._moduleRef=this.ngComponentOutletNgModuleFactory.create(OW(i)):this._moduleRef=void 0),this._componentRef=this._viewContainerRef.createComponent(this.ngComponentOutlet,{injector:i,ngModuleRef:this._moduleRef,projectableNodes:this.ngComponentOutletContent})}}ngDoCheck(){if(this._componentRef){if(this.ngComponentOutletInputs)for(let e of Object.keys(this.ngComponentOutletInputs))this._inputsUsed.set(e,!0);this._applyInputStateDiff(this._componentRef)}}ngOnDestroy(){this._moduleRef?.destroy()}_applyInputStateDiff(e){for(let[i,n]of this._inputsUsed)n?(e.setInput(i,this.ngComponentOutletInputs[i]),this._inputsUsed.set(i,!1)):(e.setInput(i,void 0),this._inputsUsed.delete(i))}static \u0275fac=function(i){return new(i||t)(DA(xn))};static \u0275dir=Oe({type:t,selectors:[["","ngComponentOutlet",""]],inputs:{ngComponentOutlet:"ngComponentOutlet",ngComponentOutletInputs:"ngComponentOutletInputs",ngComponentOutletInjector:"ngComponentOutletInjector",ngComponentOutletContent:"ngComponentOutletContent",ngComponentOutletNgModule:"ngComponentOutletNgModule",ngComponentOutletNgModuleFactory:"ngComponentOutletNgModuleFactory"},exportAs:["ngComponentOutlet"],features:[ti]})}return t})();function OW(t){return t.get(G0).injector}var $w=class{$implicit;ngForOf;index;count;constructor(A,e,i,n){this.$implicit=A,this.ngForOf=e,this.index=i,this.count=n}get first(){return this.index===0}get last(){return this.index===this.count-1}get even(){return this.index%2===0}get odd(){return!this.even}},k1=(()=>{class t{_viewContainer;_template;_differs;set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(e,i,n){this._viewContainer=e,this._template=i,this._differs=n}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;let e=this._ngForOf;!this._differ&&e&&(this._differ=this._differs.find(e).create(this.ngForTrackBy))}if(this._differ){let e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){let i=this._viewContainer;e.forEachOperation((n,o,r)=>{if(n.previousIndex==null)i.createEmbeddedView(this._template,new $w(n.item,this._ngForOf,-1,-1),r===null?void 0:r);else if(r==null)i.remove(o===null?void 0:o);else if(o!==null){let s=i.get(o);i.move(s,r),JW(s,n)}});for(let n=0,o=i.length;n{let o=i.get(n.currentIndex);JW(o,n)})}static ngTemplateContextGuard(e,i){return!0}static \u0275fac=function(i){return new(i||t)(DA(xn),DA(en),DA(Y0))};static \u0275dir=Oe({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return t})();function JW(t,A){t.context.$implicit=A.item}var bg=(()=>{class t{_viewContainer;_context=new e5;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(e,i){this._viewContainer=e,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){YW(e,!1),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){YW(e,!1),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(e,i){return!0}static \u0275fac=function(i){return new(i||t)(DA(xn),DA(en))};static \u0275dir=Oe({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return t})(),e5=class{$implicit=null;ngIf=null};function YW(t,A){if(t&&!t.createEmbeddedView)throw new lA(2020,!1)}var OR=(()=>{class t{_ngEl;_differs;_renderer;_ngStyle=null;_differ=null;constructor(e,i,n){this._ngEl=e,this._differs=i,this._renderer=n}set ngStyle(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create())}ngDoCheck(){if(this._differ){let e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}}_setStyle(e,i){let[n,o]=e.split("."),r=n.indexOf("-")===-1?void 0:F0.DashCase;i!=null?this._renderer.setStyle(this._ngEl.nativeElement,n,o?`${i}${o}`:i,r):this._renderer.removeStyle(this._ngEl.nativeElement,n,r)}_applyChanges(e){e.forEachRemovedItem(i=>this._setStyle(i.key,null)),e.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),e.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static \u0275fac=function(i){return new(i||t)(DA(eA),DA(Vw),DA(an))};static \u0275dir=Oe({type:t,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}})}return t})(),nl=(()=>{class t{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;constructor(e){this._viewContainerRef=e}ngOnChanges(e){if(this._shouldRecreateView(e)){let i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet){this._viewRef=null;return}let n=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,n,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(e){return!!e.ngTemplateOutlet||!!e.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(e,i,n)=>this.ngTemplateOutletContext?Reflect.set(this.ngTemplateOutletContext,i,n):!1,get:(e,i,n)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,n)}})}static \u0275fac=function(i){return new(i||t)(DA(xn))};static \u0275dir=Oe({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[ti]})}return t})();function b6e(t,A){return new lA(2100,!1)}var KR=class{createSubscription(A,e){return As(()=>A.subscribe({next:e,error:i=>{throw i}}))}dispose(A){As(()=>A.unsubscribe())}},UR=class{createSubscription(A,e){return A.then(i=>e?.(i),i=>{throw i}),{unsubscribe:()=>{e=null}}}dispose(A){A.unsubscribe()}},M6e=new UR,S6e=new KR,ts=(()=>{class t{_ref;_latestValue=null;markForCheckOnValueUpdate=!0;_subscription=null;_obj=null;_strategy=null;constructor(e){this._ref=e}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(e){if(!this._obj){if(e)try{this.markForCheckOnValueUpdate=!1,this._subscribe(e)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return e!==this._obj?(this._dispose(),this.transform(e)):this._latestValue}_subscribe(e){this._obj=e,this._strategy=this._selectStrategy(e),this._subscription=this._strategy.createSubscription(e,i=>this._updateLatestValue(e,i))}_selectStrategy(e){if(v1(e))return M6e;if(vR(e))return S6e;throw b6e(t,e)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(e,i){e===this._obj&&(this._latestValue=i,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static \u0275fac=function(i){return new(i||t)(DA(ut,16))};static \u0275pipe=pB({name:"async",type:t,pure:!1})}return t})();function k6e(t,A){return{key:t,value:A}}var HI=(()=>{class t{differs;constructor(e){this.differs=e}differ;keyValues=[];compareFn=HW;transform(e,i=HW){if(!e||!(e instanceof Map)&&typeof e!="object")return null;this.differ??=this.differs.find(e).create();let n=this.differ.diff(e),o=i!==this.compareFn;return n&&(this.keyValues=[],n.forEachItem(r=>{this.keyValues.push(k6e(r.key,r.currentValue))})),(n||o)&&(i&&this.keyValues.sort(i),this.compareFn=i),this.keyValues}static \u0275fac=function(i){return new(i||t)(DA(Vw,16))};static \u0275pipe=pB({name:"keyvalue",type:t,pure:!1})}return t})();function HW(t,A){let e=t.key,i=A.key;if(e===i)return 0;if(e==null)return 1;if(i==null)return-1;if(typeof e=="string"&&typeof i=="string")return e{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({})}return t})();function k4(t,A){A=encodeURIComponent(A);for(let e of t.split(";")){let i=e.indexOf("="),[n,o]=i==-1?[e,""]:[e.slice(0,i),e.slice(i+1)];if(n.trim()===A)return decodeURIComponent(o)}return null}var A5="browser",zW="server";function H0(t){return t===A5}function t5(t){return t===zW}var zI=class{};var PW=(()=>{class t{static \u0275prov=be({token:t,providedIn:"root",factory:()=>new JR(E(ht),window)})}return t})(),JR=class{document;window;offset=()=>[0,0];constructor(A,e){this.document=A,this.window=e}setOffset(A){Array.isArray(A)?this.offset=()=>A:this.offset=A}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(A){this.window.scrollTo(A[0],A[1])}scrollToAnchor(A){let e=x6e(this.document,A);e&&(this.scrollToElement(e),e.focus())}setHistoryScrollRestoration(A){this.window.history.scrollRestoration=A}scrollToElement(A){let e=A.getBoundingClientRect(),i=e.left+this.window.pageXOffset,n=e.top+this.window.pageYOffset,o=this.offset();this.window.scrollTo(i-o[0],n-o[1])}};function x6e(t,A){let e=t.getElementById(A)||t.getElementsByName(A)[0];if(e)return e;if(typeof t.createTreeWalker=="function"&&t.body&&typeof t.body.attachShadow=="function"){let i=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT),n=i.currentNode;for(;n;){let o=n.shadowRoot;if(o){let r=o.getElementById(A)||o.querySelector(`[name="${A}"]`);if(r)return r}n=i.nextNode()}}return null}var DB=class{},x4=class{},_1=class t{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(A){A?typeof A=="string"?this.lazyInit=()=>{this.headers=new Map,A.split(` +`).forEach(e=>{let i=e.indexOf(":");if(i>0){let n=e.slice(0,i),o=e.slice(i+1).trim();this.addHeaderEntry(n,o)}})}:typeof Headers<"u"&&A instanceof Headers?(this.headers=new Map,A.forEach((e,i)=>{this.addHeaderEntry(i,e)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(A).forEach(([e,i])=>{this.setHeaderEntries(e,i)})}:this.headers=new Map}has(A){return this.init(),this.headers.has(A.toLowerCase())}get(A){this.init();let e=this.headers.get(A.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(A){return this.init(),this.headers.get(A.toLowerCase())||null}append(A,e){return this.clone({name:A,value:e,op:"a"})}set(A,e){return this.clone({name:A,value:e,op:"s"})}delete(A,e){return this.clone({name:A,value:e,op:"d"})}maybeSetNormalizedName(A,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,A)}init(){this.lazyInit&&(this.lazyInit instanceof t?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(A=>this.applyUpdate(A)),this.lazyUpdate=null))}copyFrom(A){A.init(),Array.from(A.headers.keys()).forEach(e=>{this.headers.set(e,A.headers.get(e)),this.normalizedNames.set(e,A.normalizedNames.get(e))})}clone(A){let e=new t;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof t?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([A]),e}applyUpdate(A){let e=A.name.toLowerCase();switch(A.op){case"a":case"s":let i=A.value;if(typeof i=="string"&&(i=[i]),i.length===0)return;this.maybeSetNormalizedName(A.name,e);let n=(A.op==="a"?this.headers.get(e):void 0)||[];n.push(...i),this.headers.set(e,n);break;case"d":let o=A.value;if(!o)this.headers.delete(e),this.normalizedNames.delete(e);else{let r=this.headers.get(e);if(!r)return;r=r.filter(s=>o.indexOf(s)===-1),r.length===0?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,r)}break}}addHeaderEntry(A,e){let i=A.toLowerCase();this.maybeSetNormalizedName(A,i),this.headers.has(i)?this.headers.get(i).push(e):this.headers.set(i,[e])}setHeaderEntries(A,e){let i=(Array.isArray(e)?e:[e]).map(o=>o.toString()),n=A.toLowerCase();this.headers.set(n,i),this.maybeSetNormalizedName(A,n)}forEach(A){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>A(this.normalizedNames.get(e),this.headers.get(e)))}};var n5=class{encodeKey(A){return jW(A)}encodeValue(A){return jW(A)}decodeKey(A){return decodeURIComponent(A)}decodeValue(A){return decodeURIComponent(A)}};function _6e(t,A){let e=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(n=>{let o=n.indexOf("="),[r,s]=o==-1?[A.decodeKey(n),""]:[A.decodeKey(n.slice(0,o)),A.decodeValue(n.slice(o+1))],a=e.get(r)||[];a.push(s),e.set(r,a)}),e}var R6e=/%(\d[a-f0-9])/gi,N6e={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function jW(t){return encodeURIComponent(t).replace(R6e,(A,e)=>N6e[e]??A)}function i5(t){return`${t}`}var l2=class t{map;encoder;updates=null;cloneFrom=null;constructor(A={}){if(this.encoder=A.encoder||new n5,A.fromString){if(A.fromObject)throw new lA(2805,!1);this.map=_6e(A.fromString,this.encoder)}else A.fromObject?(this.map=new Map,Object.keys(A.fromObject).forEach(e=>{let i=A.fromObject[e],n=Array.isArray(i)?i.map(i5):[i5(i)];this.map.set(e,n)})):this.map=null}has(A){return this.init(),this.map.has(A)}get(A){this.init();let e=this.map.get(A);return e?e[0]:null}getAll(A){return this.init(),this.map.get(A)||null}keys(){return this.init(),Array.from(this.map.keys())}append(A,e){return this.clone({param:A,value:e,op:"a"})}appendAll(A){let e=[];return Object.keys(A).forEach(i=>{let n=A[i];Array.isArray(n)?n.forEach(o=>{e.push({param:i,value:o,op:"a"})}):e.push({param:i,value:n,op:"a"})}),this.clone(e)}set(A,e){return this.clone({param:A,value:e,op:"s"})}delete(A,e){return this.clone({param:A,value:e,op:"d"})}toString(){return this.init(),this.keys().map(A=>{let e=this.encoder.encodeKey(A);return this.map.get(A).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(A=>A!=="").join("&")}clone(A){let e=new t({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(A),e}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(A=>this.map.set(A,this.cloneFrom.map.get(A))),this.updates.forEach(A=>{switch(A.op){case"a":case"s":let e=(A.op==="a"?this.map.get(A.param):void 0)||[];e.push(i5(A.value)),this.map.set(A.param,e);break;case"d":if(A.value!==void 0){let i=this.map.get(A.param)||[],n=i.indexOf(i5(A.value));n!==-1&&i.splice(n,1),i.length>0?this.map.set(A.param,i):this.map.delete(A.param)}else{this.map.delete(A.param);break}}}),this.cloneFrom=this.updates=null)}};var o5=class{map=new Map;set(A,e){return this.map.set(A,e),this}get(A){return this.map.has(A)||this.map.set(A,A.defaultValue()),this.map.get(A)}delete(A){return this.map.delete(A),this}has(A){return this.map.has(A)}keys(){return this.map.keys()}};function L6e(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function VW(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function qW(t){return typeof Blob<"u"&&t instanceof Blob}function WW(t){return typeof FormData<"u"&&t instanceof FormData}function F6e(t){return typeof URLSearchParams<"u"&&t instanceof URLSearchParams}var ZW="Content-Type",XW="Accept",eZ="X-Request-URL",AZ="text/plain",tZ="application/json",G6e=`${tZ}, ${AZ}, */*`,yB=class t{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;responseType="json";method;params;urlWithParams;transferCache;constructor(A,e,i,n){this.url=e,this.method=A.toUpperCase();let o;if(L6e(this.method)||n?(this.body=i!==void 0?i:null,o=n):o=i,o&&(this.reportProgress=!!o.reportProgress,this.withCredentials=!!o.withCredentials,o.responseType&&(this.responseType=o.responseType),o.headers&&(this.headers=o.headers),o.context&&(this.context=o.context),o.params&&(this.params=o.params),this.transferCache=o.transferCache),this.headers??=new _1,this.context??=new o5,!this.params)this.params=new l2,this.urlWithParams=e;else{let r=this.params.toString();if(r.length===0)this.urlWithParams=e;else{let s=e.indexOf("?"),a=s===-1?"?":sC.set(I,A.setHeaders[I]),c)),A.setParams&&(l=Object.keys(A.setParams).reduce((C,I)=>C.set(I,A.setParams[I]),l)),new t(e,i,r,{params:l,headers:c,context:d,reportProgress:a,responseType:n,withCredentials:s,transferCache:o})}},PI=function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t}(PI||{}),vB=class{headers;status;statusText;url;ok;type;constructor(A,e=200,i="OK"){this.headers=A.headers||new _1,this.status=A.status!==void 0?A.status:e,this.statusText=A.statusText||i,this.url=A.url||null,this.ok=this.status>=200&&this.status<300}},r5=class t extends vB{constructor(A={}){super(A)}type=PI.ResponseHeader;clone(A={}){return new t({headers:A.headers||this.headers,status:A.status!==void 0?A.status:this.status,statusText:A.statusText||this.statusText,url:A.url||this.url||void 0})}},_4=class t extends vB{body;constructor(A={}){super(A),this.body=A.body!==void 0?A.body:null}type=PI.Response;clone(A={}){return new t({body:A.body!==void 0?A.body:this.body,headers:A.headers||this.headers,status:A.status!==void 0?A.status:this.status,statusText:A.statusText||this.statusText,url:A.url||this.url||void 0})}},R4=class extends vB{name="HttpErrorResponse";message;error;ok=!1;constructor(A){super(A,0,"Unknown Error"),this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${A.url||"(unknown url)"}`:this.message=`Http failure response for ${A.url||"(unknown url)"}: ${A.status} ${A.statusText}`,this.error=A.error||null}},K6e=200,U6e=204;function YR(t,A){return{body:A,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials,transferCache:t.transferCache}}var wa=(()=>{class t{handler;constructor(e){this.handler=e}request(e,i,n={}){let o;if(e instanceof yB)o=e;else{let a;n.headers instanceof _1?a=n.headers:a=new _1(n.headers);let c;n.params&&(n.params instanceof l2?c=n.params:c=new l2({fromObject:n.params})),o=new yB(e,i,n.body!==void 0?n.body:null,{headers:a,context:n.context,params:c,reportProgress:n.reportProgress,responseType:n.responseType||"json",withCredentials:n.withCredentials,transferCache:n.transferCache})}let r=dA(o).pipe(M0(a=>this.handler.handle(a)));if(e instanceof yB||n.observe==="events")return r;let s=r.pipe($A(a=>a instanceof _4));switch(n.observe||"body"){case"body":switch(o.responseType){case"arraybuffer":return s.pipe(aA(a=>{if(a.body!==null&&!(a.body instanceof ArrayBuffer))throw new lA(2806,!1);return a.body}));case"blob":return s.pipe(aA(a=>{if(a.body!==null&&!(a.body instanceof Blob))throw new lA(2807,!1);return a.body}));case"text":return s.pipe(aA(a=>{if(a.body!==null&&typeof a.body!="string")throw new lA(2808,!1);return a.body}));case"json":default:return s.pipe(aA(a=>a.body))}case"response":return s;default:throw new lA(2809,!1)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:new l2().append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,n={}){return this.request("PATCH",e,YR(n,i))}post(e,i,n={}){return this.request("POST",e,YR(n,i))}put(e,i,n={}){return this.request("PUT",e,YR(n,i))}static \u0275fac=function(i){return new(i||t)(UA(DB))};static \u0275prov=be({token:t,factory:t.\u0275fac})}return t})();var T6e=new re("");function iZ(t,A){return A(t)}function O6e(t,A){return(e,i)=>A.intercept(e,{handle:n=>t(n,i)})}function J6e(t,A,e){return(i,n)=>Xr(e,()=>A(i,o=>t(o,n)))}var nZ=new re(""),zR=new re(""),oZ=new re(""),PR=new re("",{providedIn:"root",factory:()=>!0});function Y6e(){let t=null;return(A,e)=>{t===null&&(t=(E(nZ,{optional:!0})??[]).reduceRight(O6e,iZ));let i=E(t2);if(E(PR)){let o=i.add();return t(A,e).pipe(S0(()=>i.remove(o)))}else return t(A,e)}}var s5=(()=>{class t extends DB{backend;injector;chain=null;pendingTasks=E(t2);contributeToStability=E(PR);constructor(e,i){super(),this.backend=e,this.injector=i}handle(e){if(this.chain===null){let i=Array.from(new Set([...this.injector.get(zR),...this.injector.get(oZ,[])]));this.chain=i.reduceRight((n,o)=>J6e(n,o,this.injector),iZ)}if(this.contributeToStability){let i=this.pendingTasks.add();return this.chain(e,n=>this.backend.handle(n)).pipe(S0(()=>this.pendingTasks.remove(i)))}else return this.chain(e,i=>this.backend.handle(i))}static \u0275fac=function(i){return new(i||t)(UA(x4),UA(Hr))};static \u0275prov=be({token:t,factory:t.\u0275fac})}return t})();var H6e=/^\)\]\}',?\n/,z6e=RegExp(`^${eZ}:`,"m");function P6e(t){return"responseURL"in t&&t.responseURL?t.responseURL:z6e.test(t.getAllResponseHeaders())?t.getResponseHeader(eZ):null}var HR=(()=>{class t{xhrFactory;constructor(e){this.xhrFactory=e}handle(e){if(e.method==="JSONP")throw new lA(-2800,!1);let i=this.xhrFactory;return(i.\u0275loadImpl?xo(i.\u0275loadImpl()):dA(null)).pipe(Si(()=>new nt(o=>{let r=i.build();if(r.open(e.method,e.urlWithParams),e.withCredentials&&(r.withCredentials=!0),e.headers.forEach((h,B)=>r.setRequestHeader(h,B.join(","))),e.headers.has(XW)||r.setRequestHeader(XW,G6e),!e.headers.has(ZW)){let h=e.detectContentTypeHeader();h!==null&&r.setRequestHeader(ZW,h)}if(e.responseType){let h=e.responseType.toLowerCase();r.responseType=h!=="json"?h:"text"}let s=e.serializeBody(),a=null,c=()=>{if(a!==null)return a;let h=r.statusText||"OK",B=new _1(r.getAllResponseHeaders()),f=P6e(r)||e.url;return a=new r5({headers:B,status:r.status,statusText:h,url:f}),a},l=()=>{let{headers:h,status:B,statusText:f,url:b}=c(),k=null;B!==U6e&&(k=typeof r.response>"u"?r.responseText:r.response),B===0&&(B=k?K6e:0);let S=B>=200&&B<300;if(e.responseType==="json"&&typeof k=="string"){let w=k;k=k.replace(H6e,"");try{k=k!==""?JSON.parse(k):null}catch(_){k=w,S&&(S=!1,k={error:_,text:k})}}S?(o.next(new _4({body:k,headers:h,status:B,statusText:f,url:b||void 0})),o.complete()):o.error(new R4({error:k,headers:h,status:B,statusText:f,url:b||void 0}))},d=h=>{let{url:B}=c(),f=new R4({error:h,status:r.status||0,statusText:r.statusText||"Unknown Error",url:B||void 0});o.error(f)},C=!1,I=h=>{C||(o.next(c()),C=!0);let B={type:PI.DownloadProgress,loaded:h.loaded};h.lengthComputable&&(B.total=h.total),e.responseType==="text"&&r.responseText&&(B.partialText=r.responseText),o.next(B)},u=h=>{let B={type:PI.UploadProgress,loaded:h.loaded};h.lengthComputable&&(B.total=h.total),o.next(B)};return r.addEventListener("load",l),r.addEventListener("error",d),r.addEventListener("timeout",d),r.addEventListener("abort",d),e.reportProgress&&(r.addEventListener("progress",I),s!==null&&r.upload&&r.upload.addEventListener("progress",u)),r.send(s),o.next({type:PI.Sent}),()=>{r.removeEventListener("error",d),r.removeEventListener("abort",d),r.removeEventListener("load",l),r.removeEventListener("timeout",d),e.reportProgress&&(r.removeEventListener("progress",I),s!==null&&r.upload&&r.upload.removeEventListener("progress",u)),r.readyState!==r.DONE&&r.abort()}})))}static \u0275fac=function(i){return new(i||t)(UA(zI))};static \u0275prov=be({token:t,factory:t.\u0275fac})}return t})(),rZ=new re(""),j6e="XSRF-TOKEN",V6e=new re("",{providedIn:"root",factory:()=>j6e}),q6e="X-XSRF-TOKEN",W6e=new re("",{providedIn:"root",factory:()=>q6e}),N4=class{},Z6e=(()=>{class t{doc;cookieName;lastCookieString="";lastToken=null;parseCount=0;constructor(e,i){this.doc=e,this.cookieName=i}getToken(){let e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=k4(e,this.cookieName),this.lastCookieString=e),this.lastToken}static \u0275fac=function(i){return new(i||t)(UA(ht),UA(V6e))};static \u0275prov=be({token:t,factory:t.\u0275fac})}return t})();function X6e(t,A){let e=t.url.toLowerCase();if(!E(rZ)||t.method==="GET"||t.method==="HEAD"||e.startsWith("http://")||e.startsWith("https://"))return A(t);let i=E(N4).getToken(),n=E(W6e);return i!=null&&!t.headers.has(n)&&(t=t.clone({headers:t.headers.set(n,i)})),A(t)}var jR=function(t){return t[t.Interceptors=0]="Interceptors",t[t.LegacyInterceptors=1]="LegacyInterceptors",t[t.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",t[t.NoXsrfProtection=3]="NoXsrfProtection",t[t.JsonpSupport=4]="JsonpSupport",t[t.RequestsMadeViaParent=5]="RequestsMadeViaParent",t[t.Fetch=6]="Fetch",t}(jR||{});function $6e(t,A){return{\u0275kind:t,\u0275providers:A}}function sZ(...t){let A=[wa,HR,s5,{provide:DB,useExisting:s5},{provide:x4,useFactory:()=>E(T6e,{optional:!0})??E(HR)},{provide:zR,useValue:X6e,multi:!0},{provide:rZ,useValue:!0},{provide:N4,useClass:Z6e}];for(let e of t)A.push(...e.\u0275providers);return h4(A)}var $W=new re("");function aZ(){return $6e(jR.LegacyInterceptors,[{provide:$W,useFactory:Y6e},{provide:zR,useExisting:$W,multi:!0}])}var VR=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({providers:[sZ(aZ())]})}return t})();var hZ=(()=>{class t{_renderer;_elementRef;onChange=e=>{};onTouched=()=>{};constructor(e,i){this._renderer=e,this._elementRef=i}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static \u0275fac=function(i){return new(i||t)(DA(an),DA(eA))};static \u0275dir=Oe({type:t})}return t})(),BZ=(()=>{class t extends hZ{static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275dir=Oe({type:t,features:[Ct]})}return t})(),sl=new re("");var e8e={provide:sl,useExisting:zr(()=>Mr),multi:!0};function A8e(){let t=il()?il().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}var t8e=new re(""),Mr=(()=>{class t extends hZ{_compositionMode;_composing=!1;constructor(e,i,n){super(e,i),this._compositionMode=n,this._compositionMode==null&&(this._compositionMode=!A8e())}writeValue(e){let i=e??"";this.setProperty("value",i)}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static \u0275fac=function(i){return new(i||t)(DA(an),DA(eA),DA(t8e,8))};static \u0275dir=Oe({type:t,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,n){i&1&&ee("input",function(r){return n._handleInput(r.target.value)})("blur",function(){return n.onTouched()})("compositionstart",function(){return n._compositionStart()})("compositionend",function(r){return n._compositionEnd(r.target.value)})},standalone:!1,features:[gt([e8e]),Ct]})}return t})();function XR(t){return t==null||$R(t)===0}function $R(t){return t==null?null:Array.isArray(t)||typeof t=="string"?t.length:t instanceof Set?t.size:null}var z0=new re(""),O4=new re(""),i8e=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,ol=class{static min(A){return EZ(A)}static max(A){return n8e(A)}static required(A){return o8e(A)}static requiredTrue(A){return r8e(A)}static email(A){return s8e(A)}static minLength(A){return a8e(A)}static maxLength(A){return c8e(A)}static pattern(A){return l8e(A)}static nullValidator(A){return c5()}static compose(A){return yZ(A)}static composeAsync(A){return DZ(A)}};function EZ(t){return A=>{if(A.value==null||t==null)return null;let e=parseFloat(A.value);return!isNaN(e)&&e{if(A.value==null||t==null)return null;let e=parseFloat(A.value);return!isNaN(e)&&e>t?{max:{max:t,actual:A.value}}:null}}function o8e(t){return XR(t.value)?{required:!0}:null}function r8e(t){return t.value===!0?null:{required:!0}}function s8e(t){return XR(t.value)||i8e.test(t.value)?null:{email:!0}}function a8e(t){return A=>{let e=A.value?.length??$R(A.value);return e===null||e===0?null:e{let e=A.value?.length??$R(A.value);return e!==null&&e>t?{maxlength:{requiredLength:t,actualLength:e}}:null}}function l8e(t){if(!t)return c5;let A,e;return typeof t=="string"?(e="",t.charAt(0)!=="^"&&(e+="^"),e+=t,t.charAt(t.length-1)!=="$"&&(e+="$"),A=new RegExp(e)):(e=t.toString(),A=t),i=>{if(XR(i.value))return null;let n=i.value;return A.test(n)?null:{pattern:{requiredPattern:e,actualValue:n}}}}function c5(t){return null}function fZ(t){return t!=null}function QZ(t){return v1(t)?xo(t):t}function mZ(t){let A={};return t.forEach(e=>{A=e!=null?ae(ae({},A),e):A}),Object.keys(A).length===0?null:A}function pZ(t,A){return A.map(e=>e(t))}function g8e(t){return!t.validate}function wZ(t){return t.map(A=>g8e(A)?A:e=>A.validate(e))}function yZ(t){if(!t)return null;let A=t.filter(fZ);return A.length==0?null:function(e){return mZ(pZ(e,A))}}function eN(t){return t!=null?yZ(wZ(t)):null}function DZ(t){if(!t)return null;let A=t.filter(fZ);return A.length==0?null:function(e){let i=pZ(e,A).map(QZ);return $Q(i).pipe(aA(mZ))}}function AN(t){return t!=null?DZ(wZ(t)):null}function cZ(t,A){return t===null?[A]:Array.isArray(t)?[...t,A]:[t,A]}function vZ(t){return t._rawValidators}function bZ(t){return t._rawAsyncValidators}function qR(t){return t?Array.isArray(t)?t:[t]:[]}function l5(t,A){return Array.isArray(t)?t.includes(A):t===A}function lZ(t,A){let e=qR(A);return qR(t).forEach(n=>{l5(e,n)||e.push(n)}),e}function gZ(t,A){return qR(A).filter(e=>!l5(t,e))}var g5=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(A){this._rawValidators=A||[],this._composedValidatorFn=eN(this._rawValidators)}_setAsyncValidators(A){this._rawAsyncValidators=A||[],this._composedAsyncValidatorFn=AN(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(A){this._onDestroyCallbacks.push(A)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(A=>A()),this._onDestroyCallbacks=[]}reset(A=void 0){this.control&&this.control.reset(A)}hasError(A,e){return this.control?this.control.hasError(A,e):!1}getError(A,e){return this.control?this.control.getError(A,e):null}},d2=class extends g5{name;get formDirective(){return null}get path(){return null}},rl=class extends g5{_parent=null;name=null;valueAccessor=null},d5=class{_cd;constructor(A){this._cd=A}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}},d8e={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},$4A=_A(ae({},d8e),{"[class.ng-submitted]":"isSubmitted"}),Fo=(()=>{class t extends d5{constructor(e){super(e)}static \u0275fac=function(i){return new(i||t)(DA(rl,2))};static \u0275dir=Oe({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,n){i&2&&iA("ng-untouched",n.isUntouched)("ng-touched",n.isTouched)("ng-pristine",n.isPristine)("ng-dirty",n.isDirty)("ng-valid",n.isValid)("ng-invalid",n.isInvalid)("ng-pending",n.isPending)},standalone:!1,features:[Ct]})}return t})(),MZ=(()=>{class t extends d5{constructor(e){super(e)}static \u0275fac=function(i){return new(i||t)(DA(d2,10))};static \u0275dir=Oe({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,n){i&2&&iA("ng-untouched",n.isUntouched)("ng-touched",n.isTouched)("ng-pristine",n.isPristine)("ng-dirty",n.isDirty)("ng-valid",n.isValid)("ng-invalid",n.isInvalid)("ng-pending",n.isPending)("ng-submitted",n.isSubmitted)},standalone:!1,features:[Ct]})}return t})();var L4="VALID",a5="INVALID",MB="PENDING",F4="DISABLED",R1=class{},C5=class extends R1{value;source;constructor(A,e){super(),this.value=A,this.source=e}},K4=class extends R1{pristine;source;constructor(A,e){super(),this.pristine=A,this.source=e}},U4=class extends R1{touched;source;constructor(A,e){super(),this.touched=A,this.source=e}},SB=class extends R1{status;source;constructor(A,e){super(),this.status=A,this.source=e}},I5=class extends R1{source;constructor(A){super(),this.source=A}},u5=class extends R1{source;constructor(A){super(),this.source=A}};function tN(t){return(f5(t)?t.validators:t)||null}function C8e(t){return Array.isArray(t)?eN(t):t||null}function iN(t,A){return(f5(A)?A.asyncValidators:t)||null}function I8e(t){return Array.isArray(t)?AN(t):t||null}function f5(t){return t!=null&&!Array.isArray(t)&&typeof t=="object"}function SZ(t,A,e){let i=t.controls;if(!(A?Object.keys(i):i).length)throw new lA(1e3,"");if(!i[e])throw new lA(1001,"")}function kZ(t,A,e){t._forEachChild((i,n)=>{if(e[n]===void 0)throw new lA(1002,"")})}var kB=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(A,e){this._assignValidators(A),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(A){this._rawValidators=this._composedValidatorFn=A}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(A){this._rawAsyncValidators=this._composedAsyncValidatorFn=A}get parent(){return this._parent}get status(){return As(this.statusReactive)}set status(A){As(()=>this.statusReactive.set(A))}_status=ot(()=>this.statusReactive());statusReactive=mA(void 0);get valid(){return this.status===L4}get invalid(){return this.status===a5}get pending(){return this.status==MB}get disabled(){return this.status===F4}get enabled(){return this.status!==F4}errors;get pristine(){return As(this.pristineReactive)}set pristine(A){As(()=>this.pristineReactive.set(A))}_pristine=ot(()=>this.pristineReactive());pristineReactive=mA(!0);get dirty(){return!this.pristine}get touched(){return As(this.touchedReactive)}set touched(A){As(()=>this.touchedReactive.set(A))}_touched=ot(()=>this.touchedReactive());touchedReactive=mA(!1);get untouched(){return!this.touched}_events=new je;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(A){this._assignValidators(A)}setAsyncValidators(A){this._assignAsyncValidators(A)}addValidators(A){this.setValidators(lZ(A,this._rawValidators))}addAsyncValidators(A){this.setAsyncValidators(lZ(A,this._rawAsyncValidators))}removeValidators(A){this.setValidators(gZ(A,this._rawValidators))}removeAsyncValidators(A){this.setAsyncValidators(gZ(A,this._rawAsyncValidators))}hasValidator(A){return l5(this._rawValidators,A)}hasAsyncValidator(A){return l5(this._rawAsyncValidators,A)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(A={}){let e=this.touched===!1;this.touched=!0;let i=A.sourceControl??this;this._parent&&!A.onlySelf&&this._parent.markAsTouched(_A(ae({},A),{sourceControl:i})),e&&A.emitEvent!==!1&&this._events.next(new U4(!0,i))}markAllAsTouched(A={}){this.markAsTouched({onlySelf:!0,emitEvent:A.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(A))}markAsUntouched(A={}){let e=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=A.sourceControl??this;this._forEachChild(n=>{n.markAsUntouched({onlySelf:!0,emitEvent:A.emitEvent,sourceControl:i})}),this._parent&&!A.onlySelf&&this._parent._updateTouched(A,i),e&&A.emitEvent!==!1&&this._events.next(new U4(!1,i))}markAsDirty(A={}){let e=this.pristine===!0;this.pristine=!1;let i=A.sourceControl??this;this._parent&&!A.onlySelf&&this._parent.markAsDirty(_A(ae({},A),{sourceControl:i})),e&&A.emitEvent!==!1&&this._events.next(new K4(!1,i))}markAsPristine(A={}){let e=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=A.sourceControl??this;this._forEachChild(n=>{n.markAsPristine({onlySelf:!0,emitEvent:A.emitEvent})}),this._parent&&!A.onlySelf&&this._parent._updatePristine(A,i),e&&A.emitEvent!==!1&&this._events.next(new K4(!0,i))}markAsPending(A={}){this.status=MB;let e=A.sourceControl??this;A.emitEvent!==!1&&(this._events.next(new SB(this.status,e)),this.statusChanges.emit(this.status)),this._parent&&!A.onlySelf&&this._parent.markAsPending(_A(ae({},A),{sourceControl:e}))}disable(A={}){let e=this._parentMarkedDirty(A.onlySelf);this.status=F4,this.errors=null,this._forEachChild(n=>{n.disable(_A(ae({},A),{onlySelf:!0}))}),this._updateValue();let i=A.sourceControl??this;A.emitEvent!==!1&&(this._events.next(new C5(this.value,i)),this._events.next(new SB(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(_A(ae({},A),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(n=>n(!0))}enable(A={}){let e=this._parentMarkedDirty(A.onlySelf);this.status=L4,this._forEachChild(i=>{i.enable(_A(ae({},A),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:A.emitEvent}),this._updateAncestors(_A(ae({},A),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(A,e){this._parent&&!A.onlySelf&&(this._parent.updateValueAndValidity(A),A.skipPristineCheck||this._parent._updatePristine({},e),this._parent._updateTouched({},e))}setParent(A){this._parent=A}getRawValue(){return this.value}updateValueAndValidity(A={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===L4||this.status===MB)&&this._runAsyncValidator(i,A.emitEvent)}let e=A.sourceControl??this;A.emitEvent!==!1&&(this._events.next(new C5(this.value,e)),this._events.next(new SB(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!A.onlySelf&&this._parent.updateValueAndValidity(_A(ae({},A),{sourceControl:e}))}_updateTreeValidity(A={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(A)),this.updateValueAndValidity({onlySelf:!0,emitEvent:A.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?F4:L4}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(A,e){if(this.asyncValidator){this.status=MB,this._hasOwnPendingAsyncValidator={emitEvent:e!==!1};let i=QZ(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(n=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(n,{emitEvent:e,shouldHaveEmitted:A})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let A=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,A}return!1}setErrors(A,e={}){this.errors=A,this._updateControlsErrors(e.emitEvent!==!1,this,e.shouldHaveEmitted)}get(A){let e=A;return e==null||(Array.isArray(e)||(e=e.split(".")),e.length===0)?null:e.reduce((i,n)=>i&&i._find(n),this)}getError(A,e){let i=e?this.get(e):this;return i&&i.errors?i.errors[A]:null}hasError(A,e){return!!this.getError(A,e)}get root(){let A=this;for(;A._parent;)A=A._parent;return A}_updateControlsErrors(A,e,i){this.status=this._calculateStatus(),A&&this.statusChanges.emit(this.status),(A||i)&&this._events.next(new SB(this.status,e)),this._parent&&this._parent._updateControlsErrors(A,e,i)}_initObservables(){this.valueChanges=new Ve,this.statusChanges=new Ve}_calculateStatus(){return this._allControlsDisabled()?F4:this.errors?a5:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(MB)?MB:this._anyControlsHaveStatus(a5)?a5:L4}_anyControlsHaveStatus(A){return this._anyControls(e=>e.status===A)}_anyControlsDirty(){return this._anyControls(A=>A.dirty)}_anyControlsTouched(){return this._anyControls(A=>A.touched)}_updatePristine(A,e){let i=!this._anyControlsDirty(),n=this.pristine!==i;this.pristine=i,this._parent&&!A.onlySelf&&this._parent._updatePristine(A,e),n&&this._events.next(new K4(this.pristine,e))}_updateTouched(A={},e){this.touched=this._anyControlsTouched(),this._events.next(new U4(this.touched,e)),this._parent&&!A.onlySelf&&this._parent._updateTouched(A,e)}_onDisabledChange=[];_registerOnCollectionChange(A){this._onCollectionChange=A}_setUpdateStrategy(A){f5(A)&&A.updateOn!=null&&(this._updateOn=A.updateOn)}_parentMarkedDirty(A){let e=this._parent&&this._parent.dirty;return!A&&!!e&&!this._parent._anyControlsDirty()}_find(A){return null}_assignValidators(A){this._rawValidators=Array.isArray(A)?A.slice():A,this._composedValidatorFn=C8e(this._rawValidators)}_assignAsyncValidators(A){this._rawAsyncValidators=Array.isArray(A)?A.slice():A,this._composedAsyncValidatorFn=I8e(this._rawAsyncValidators)}},xB=class extends kB{constructor(A,e,i){super(tN(e),iN(i,e)),this.controls=A,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(A,e){return this.controls[A]?this.controls[A]:(this.controls[A]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(A,e,i={}){this.registerControl(A,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(A,e={}){this.controls[A]&&this.controls[A]._registerOnCollectionChange(()=>{}),delete this.controls[A],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(A,e,i={}){this.controls[A]&&this.controls[A]._registerOnCollectionChange(()=>{}),delete this.controls[A],e&&this.registerControl(A,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(A){return this.controls.hasOwnProperty(A)&&this.controls[A].enabled}setValue(A,e={}){kZ(this,!0,A),Object.keys(A).forEach(i=>{SZ(this,!0,i),this.controls[i].setValue(A[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(A,e={}){A!=null&&(Object.keys(A).forEach(i=>{let n=this.controls[i];n&&n.patchValue(A[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(A={},e={}){this._forEachChild((i,n)=>{i.reset(A?A[n]:null,{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(A,e,i)=>(A[i]=e.getRawValue(),A))}_syncPendingControls(){let A=this._reduceChildren(!1,(e,i)=>i._syncPendingControls()?!0:e);return A&&this.updateValueAndValidity({onlySelf:!0}),A}_forEachChild(A){Object.keys(this.controls).forEach(e=>{let i=this.controls[e];i&&A(i,e)})}_setUpControls(){this._forEachChild(A=>{A.setParent(this),A._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(A){for(let[e,i]of Object.entries(this.controls))if(this.contains(e)&&A(i))return!0;return!1}_reduceValue(){let A={};return this._reduceChildren(A,(e,i,n)=>((i.enabled||this.disabled)&&(e[n]=i.value),e))}_reduceChildren(A,e){let i=A;return this._forEachChild((n,o)=>{i=e(i,n,o)}),i}_allControlsDisabled(){for(let A of Object.keys(this.controls))if(this.controls[A].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(A){return this.controls.hasOwnProperty(A)?this.controls[A]:null}};var WR=class extends xB{};var _B=new re("",{providedIn:"root",factory:()=>Q5}),Q5="always";function xZ(t,A){return[...A.path,t]}function T4(t,A,e=Q5){nN(t,A),A.valueAccessor.writeValue(t.value),(t.disabled||e==="always")&&A.valueAccessor.setDisabledState?.(t.disabled),h8e(t,A),E8e(t,A),B8e(t,A),u8e(t,A)}function h5(t,A,e=!0){let i=()=>{};A.valueAccessor&&(A.valueAccessor.registerOnChange(i),A.valueAccessor.registerOnTouched(i)),E5(t,A),t&&(A._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function B5(t,A){t.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(A)})}function u8e(t,A){if(A.valueAccessor.setDisabledState){let e=i=>{A.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(e),A._registerOnDestroy(()=>{t._unregisterOnDisabledChange(e)})}}function nN(t,A){let e=vZ(t);A.validator!==null?t.setValidators(cZ(e,A.validator)):typeof e=="function"&&t.setValidators([e]);let i=bZ(t);A.asyncValidator!==null?t.setAsyncValidators(cZ(i,A.asyncValidator)):typeof i=="function"&&t.setAsyncValidators([i]);let n=()=>t.updateValueAndValidity();B5(A._rawValidators,n),B5(A._rawAsyncValidators,n)}function E5(t,A){let e=!1;if(t!==null){if(A.validator!==null){let n=vZ(t);if(Array.isArray(n)&&n.length>0){let o=n.filter(r=>r!==A.validator);o.length!==n.length&&(e=!0,t.setValidators(o))}}if(A.asyncValidator!==null){let n=bZ(t);if(Array.isArray(n)&&n.length>0){let o=n.filter(r=>r!==A.asyncValidator);o.length!==n.length&&(e=!0,t.setAsyncValidators(o))}}}let i=()=>{};return B5(A._rawValidators,i),B5(A._rawAsyncValidators,i),e}function h8e(t,A){A.valueAccessor.registerOnChange(e=>{t._pendingValue=e,t._pendingChange=!0,t._pendingDirty=!0,t.updateOn==="change"&&_Z(t,A)})}function B8e(t,A){A.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,t.updateOn==="blur"&&t._pendingChange&&_Z(t,A),t.updateOn!=="submit"&&t.markAsTouched()})}function _Z(t,A){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),A.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function E8e(t,A){let e=(i,n)=>{A.valueAccessor.writeValue(i),n&&A.viewToModelUpdate(i)};t.registerOnChange(e),A._registerOnDestroy(()=>{t._unregisterOnChange(e)})}function RZ(t,A){t==null,nN(t,A)}function f8e(t,A){return E5(t,A)}function oN(t,A){if(!t.hasOwnProperty("model"))return!1;let e=t.model;return e.isFirstChange()?!0:!Object.is(A,e.currentValue)}function Q8e(t){return Object.getPrototypeOf(t.constructor)===BZ}function NZ(t,A){t._syncPendingControls(),A.forEach(e=>{let i=e.control;i.updateOn==="submit"&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function rN(t,A){if(!A)return null;Array.isArray(A);let e,i,n;return A.forEach(o=>{o.constructor===Mr?e=o:Q8e(o)?i=o:n=o}),n||i||e||null}function m8e(t,A){let e=t.indexOf(A);e>-1&&t.splice(e,1)}var p8e={provide:d2,useExisting:zr(()=>J4)},G4=Promise.resolve(),J4=(()=>{class t extends d2{callSetDisabledState;get submitted(){return As(this.submittedReactive)}_submitted=ot(()=>this.submittedReactive());submittedReactive=mA(!1);_directives=new Set;form;ngSubmit=new Ve;options;constructor(e,i,n){super(),this.callSetDisabledState=n,this.form=new xB({},eN(e),AN(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){G4.then(()=>{let i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),T4(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){G4.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){G4.then(()=>{let i=this._findContainer(e.path),n=new xB({});RZ(n,e),i.registerControl(e.name,n),n.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){G4.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){G4.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submittedReactive.set(!0),NZ(this.form,this._directives),this.ngSubmit.emit(e),this.form._events.next(new I5(this.control)),e?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submittedReactive.set(!1),this.form._events.next(new u5(this.form))}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static \u0275fac=function(i){return new(i||t)(DA(z0,10),DA(O4,10),DA(_B,8))};static \u0275dir=Oe({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,n){i&1&&ee("submit",function(r){return n.onSubmit(r)})("reset",function(){return n.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[gt([p8e]),Ct]})}return t})();function dZ(t,A){let e=t.indexOf(A);e>-1&&t.splice(e,1)}function CZ(t){return typeof t=="object"&&t!==null&&Object.keys(t).length===2&&"value"in t&&"disabled"in t}var g2=class extends kB{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(A=null,e,i){super(tN(e),iN(i,e)),this._applyFormState(A),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),f5(e)&&(e.nonNullable||e.initialValueIsDefault)&&(CZ(A)?this.defaultValue=A.value:this.defaultValue=A)}setValue(A,e={}){this.value=this._pendingValue=A,this._onChange.length&&e.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,e.emitViewToModelChange!==!1)),this.updateValueAndValidity(e)}patchValue(A,e={}){this.setValue(A,e)}reset(A=this.defaultValue,e={}){this._applyFormState(A),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(A){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(A){this._onChange.push(A)}_unregisterOnChange(A){dZ(this._onChange,A)}registerOnDisabledChange(A){this._onDisabledChange.push(A)}_unregisterOnDisabledChange(A){dZ(this._onDisabledChange,A)}_forEachChild(A){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(A){CZ(A)?(this.value=this._pendingValue=A.value,A.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=A}};var w8e=t=>t instanceof g2;var y8e={provide:rl,useExisting:zr(()=>Cr)},IZ=Promise.resolve(),Cr=(()=>{class t extends rl{_changeDetectorRef;callSetDisabledState;control=new g2;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new Ve;constructor(e,i,n,o,r,s){super(),this._changeDetectorRef=r,this.callSetDisabledState=s,this._parent=e,this._setValidators(i),this._setAsyncValidators(n),this.valueAccessor=rN(this,o)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){let i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),oN(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){T4(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(e){IZ.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){let i=e.isDisabled.currentValue,n=i!==0&&IA(i);IZ.then(()=>{n&&!this.control.disabled?this.control.disable():!n&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?xZ(e,this._parent):[e]}static \u0275fac=function(i){return new(i||t)(DA(d2,9),DA(z0,10),DA(O4,10),DA(sl,10),DA(ut,8),DA(_B,8))};static \u0275dir=Oe({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[gt([y8e]),Ct,ti]})}return t})();var LZ=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return t})(),D8e={provide:sl,useExisting:zr(()=>sN),multi:!0},sN=(()=>{class t extends BZ{writeValue(e){let i=e??"";this.setProperty("value",i)}registerOnChange(e){this.onChange=i=>{e(i==""?null:parseFloat(i))}}static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275dir=Oe({type:t,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(i,n){i&1&&ee("input",function(r){return n.onChange(r.target.value)})("blur",function(){return n.onTouched()})},standalone:!1,features:[gt([D8e]),Ct]})}return t})();var aN=new re(""),v8e={provide:rl,useExisting:zr(()=>cN)},cN=(()=>{class t extends rl{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(e){}model;update=new Ve;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,n,o,r){super(),this._ngModelWarningConfig=o,this.callSetDisabledState=r,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=rN(this,n)}ngOnChanges(e){if(this._isControlChanged(e)){let i=e.form.previousValue;i&&h5(i,this,!1),T4(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}oN(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&h5(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static \u0275fac=function(i){return new(i||t)(DA(z0,10),DA(O4,10),DA(sl,10),DA(aN,8),DA(_B,8))};static \u0275dir=Oe({type:t,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[gt([v8e]),Ct,ti]})}return t})(),b8e={provide:d2,useExisting:zr(()=>jI)},jI=(()=>{class t extends d2{callSetDisabledState;get submitted(){return As(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}_submitted=ot(()=>this._submittedReactive());_submittedReactive=mA(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];form=null;ngSubmit=new Ve;constructor(e,i,n){super(),this.callSetDisabledState=n,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(E5(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){let i=this.form.get(e.path);return T4(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){h5(e.control||null,e,!1),m8e(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this._submittedReactive.set(!0),NZ(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new I5(this.control)),e?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this._submittedReactive.set(!1),this.form._events.next(new u5(this.form))}_updateDomValue(){this.directives.forEach(e=>{let i=e.control,n=this.form.get(e.path);i!==n&&(h5(i||null,e),w8e(n)&&(T4(n,e,this.callSetDisabledState),e.control=n))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){let i=this.form.get(e.path);RZ(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){let i=this.form.get(e.path);i&&f8e(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){nN(this.form,this),this._oldForm&&E5(this._oldForm,this)}static \u0275fac=function(i){return new(i||t)(DA(z0,10),DA(O4,10),DA(_B,8))};static \u0275dir=Oe({type:t,selectors:[["","formGroup",""]],hostBindings:function(i,n){i&1&&ee("submit",function(r){return n.onSubmit(r)})("reset",function(){return n.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[gt([b8e]),Ct,ti]})}return t})();var M8e={provide:rl,useExisting:zr(()=>lN)},lN=(()=>{class t extends rl{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(e){}model;update=new Ve;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,n,o,r){super(),this._ngModelWarningConfig=r,this._parent=e,this._setValidators(i),this._setAsyncValidators(n),this.valueAccessor=rN(this,o)}ngOnChanges(e){this._added||this._setUpControl(),oN(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return xZ(this.name==null?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_setUpControl(){this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||t)(DA(d2,13),DA(z0,10),DA(O4,10),DA(sl,10),DA(aN,8))};static \u0275dir=Oe({type:t,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[gt([M8e]),Ct,ti]})}return t})();function S8e(t){return typeof t=="number"?t:parseFloat(t)}var k8e=(()=>{class t{_validator=c5;_onChange;_enabled;ngOnChanges(e){if(this.inputName in e){let i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):c5,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return e!=null}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,features:[ti]})}return t})();var x8e={provide:z0,useExisting:zr(()=>gN),multi:!0},gN=(()=>{class t extends k8e{min;inputName="min";normalizeInput=e=>S8e(e);createValidator=e=>EZ(e);static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275dir=Oe({type:t,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(i,n){i&2&&AA("min",n._enabled?n.min:null)},inputs:{min:"min"},standalone:!1,features:[gt([x8e]),Ct]})}return t})();var FZ=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({})}return t})(),ZR=class extends kB{constructor(A,e,i){super(tN(e),iN(i,e)),this.controls=A,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(A){return this.controls[this._adjustIndex(A)]}push(A,e={}){this.controls.push(A),this._registerControl(A),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(A,e,i={}){this.controls.splice(A,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(A,e={}){let i=this._adjustIndex(A);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(A,e,i={}){let n=this._adjustIndex(A);n<0&&(n=0),this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),this.controls.splice(n,1),e&&(this.controls.splice(n,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(A,e={}){kZ(this,!1,A),A.forEach((i,n)=>{SZ(this,!1,n),this.at(n).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(A,e={}){A!=null&&(A.forEach((i,n)=>{this.at(n)&&this.at(n).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(A=[],e={}){this._forEachChild((i,n)=>{i.reset(A[n],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(A=>A.getRawValue())}clear(A={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:A.emitEvent}))}_adjustIndex(A){return A<0?A+this.length:A}_syncPendingControls(){let A=this.controls.reduce((e,i)=>i._syncPendingControls()?!0:e,!1);return A&&this.updateValueAndValidity({onlySelf:!0}),A}_forEachChild(A){this.controls.forEach((e,i)=>{A(e,i)})}_updateValue(){this.value=this.controls.filter(A=>A.enabled||this.disabled).map(A=>A.value)}_anyControls(A){return this.controls.some(e=>e.enabled&&A(e))}_setUpControls(){this._forEachChild(A=>this._registerControl(A))}_allControlsDisabled(){for(let A of this.controls)if(A.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(A){A.setParent(this),A._registerOnCollectionChange(this._onCollectionChange)}_find(A){return this.at(A)??null}};function uZ(t){return!!t&&(t.asyncValidators!==void 0||t.validators!==void 0||t.updateOn!==void 0)}var GZ=(()=>{class t{useNonNullable=!1;get nonNullable(){let e=new t;return e.useNonNullable=!0,e}group(e,i=null){let n=this._reduceControls(e),o={};return uZ(i)?o=i:i!==null&&(o.validators=i.validator,o.asyncValidators=i.asyncValidator),new xB(n,o)}record(e,i=null){let n=this._reduceControls(e);return new WR(n,i)}control(e,i,n){let o={};return this.useNonNullable?(uZ(i)?o=i:(o.validators=i,o.asyncValidators=n),new g2(e,_A(ae({},o),{nonNullable:!0}))):new g2(e,i,n)}array(e,i,n){let o=e.map(r=>this._createControl(r));return new ZR(o,i,n)}_reduceControls(e){let i={};return Object.keys(e).forEach(n=>{i[n]=this._createControl(e[n])}),i}_createControl(e){if(e instanceof g2)return e;if(e instanceof kB)return e;if(Array.isArray(e)){let i=e[0],n=e.length>1?e[1]:null,o=e.length>2?e[2]:null;return this.control(i,n,o)}else return this.control(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Kn=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:_B,useValue:e.callSetDisabledState??Q5}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({imports:[FZ]})}return t})(),RB=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:aN,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:_B,useValue:e.callSetDisabledState??Q5}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({imports:[FZ]})}return t})();var CN;try{CN=typeof Intl<"u"&&Intl.v8BreakIterator}catch{CN=!1}var mi=(()=>{class t{_platformId=E(O0);isBrowser=this._platformId?H0(this._platformId):typeof document=="object"&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!!(window.chrome||CN)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var NB,KZ=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function IN(){if(NB)return NB;if(typeof document!="object"||!document)return NB=new Set(KZ),NB;let t=document.createElement("input");return NB=new Set(KZ.filter(A=>(t.setAttribute("type",A),t.type===A))),NB}var Y4;function _8e(){if(Y4==null&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Y4=!0}))}finally{Y4=Y4||!1}return Y4}function Gl(t){return _8e()?t:!!t.capture}var Mg=function(t){return t[t.NORMAL=0]="NORMAL",t[t.NEGATED=1]="NEGATED",t[t.INVERTED=2]="INVERTED",t}(Mg||{}),m5,VI;function p5(){if(VI==null){if(typeof document!="object"||!document||typeof Element!="function"||!Element)return VI=!1,VI;if("scrollBehavior"in document.documentElement.style)VI=!0;else{let t=Element.prototype.scrollTo;t?VI=!/\{\s*\[native code\]\s*\}/.test(t.toString()):VI=!1}}return VI}function LB(){if(typeof document!="object"||!document)return Mg.NORMAL;if(m5==null){let t=document.createElement("div"),A=t.style;t.dir="rtl",A.width="1px",A.overflow="auto",A.visibility="hidden",A.pointerEvents="none",A.position="absolute";let e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",t.appendChild(e),document.body.appendChild(t),m5=Mg.NORMAL,t.scrollLeft===0&&(t.scrollLeft=1,m5=t.scrollLeft===0?Mg.NEGATED:Mg.INVERTED),t.remove()}return m5}var dN;function R8e(){if(dN==null){let t=typeof document<"u"?document.head:null;dN=!!(t&&(t.createShadowRoot||t.attachShadow))}return dN}function UZ(t){if(R8e()){let A=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&A instanceof ShadowRoot)return A}return null}function FB(){let t=typeof document<"u"&&document?document.activeElement:null;for(;t&&t.shadowRoot;){let A=t.shadowRoot.activeElement;if(A===t)break;t=A}return t}function al(t){return t.composedPath?t.composedPath()[0]:t.target}function uN(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}function hN(t,A,e,i,n){let o=parseInt(NR.major),r=parseInt(NR.minor);return o>19||o===19&&r>0||o===0&&r===0?t.listen(A,e,i,n):(A.addEventListener(e,i,n),()=>{A.removeEventListener(e,i,n)})}var w5=new WeakMap,Wn=(()=>{class t{_appRef;_injector=E(Dt);_environmentInjector=E(Hr);load(e){let i=this._appRef=this._appRef||this._injector.get(fc),n=w5.get(i);n||(n={loaders:new Set,refs:[]},w5.set(i,n),i.onDestroy(()=>{w5.get(i)?.refs.forEach(o=>o.destroy()),w5.delete(i)})),n.loaders.has(e)||(n.loaders.add(e),n.refs.push(qw(e,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),qI=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["ng-component"]],exportAs:["cdkVisuallyHidden"],decls:0,vars:0,template:function(i,n){},styles:[".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}"],encapsulation:2,changeDetection:0})}return t})();function Tr(t,...A){return A.length?A.some(e=>t[e]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}function Sr(t){return t!=null&&`${t}`!="false"}function Za(t,A=0){return BN(t)?Number(t):arguments.length===2?A:0}function BN(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}function GB(t){return Array.isArray(t)?t:[t]}function is(t){return t==null?"":typeof t=="string"?t:`${t}px`}function wc(t){return t instanceof eA?t.nativeElement:t}function N8e(t){if(t.type==="characterData"&&t.target instanceof Comment)return!0;if(t.type==="childList"){for(let A=0;A{class t{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),OZ=(()=>{class t{_mutationObserverFactory=E(TZ);_observedElements=new Map;_ngZone=E(yA);constructor(){}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){let i=wc(e);return new nt(n=>{let r=this._observeElement(i).pipe(aA(s=>s.filter(a=>!N8e(a))),$A(s=>!!s.length)).subscribe(s=>{this._ngZone.run(()=>{n.next(s)})});return()=>{r.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(e))this._observedElements.get(e).count++;else{let i=new je,n=this._mutationObserverFactory.create(o=>i.next(o));n&&n.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:n,stream:i,count:1})}return this._observedElements.get(e).stream})}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){let{observer:i,stream:n}=this._observedElements.get(e);i&&i.disconnect(),n.complete(),this._observedElements.delete(e)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),y5=(()=>{class t{_contentObserver=E(OZ);_elementRef=E(eA);event=new Ve;get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._disabled?this._unsubscribe():this._subscribe()}_disabled=!1;get debounce(){return this._debounce}set debounce(e){this._debounce=Za(e),this._subscribe()}_debounce;_currentSubscription=null;constructor(){}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();let e=this._contentObserver.observe(this._elementRef);this._currentSubscription=(this.debounce?e.pipe(Ws(this.debounce)):e).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",IA],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}return t})(),H4=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({providers:[TZ]})}return t})();var JZ=new Set,WI,L8e=(()=>{class t{_platform=E(mi);_nonce=E(E4,{optional:!0});_matchMedia;constructor(){this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):G8e}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&F8e(e,this._nonce),this._matchMedia(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function F8e(t,A){if(!JZ.has(t))try{WI||(WI=document.createElement("style"),A&&WI.setAttribute("nonce",A),WI.setAttribute("type","text/css"),document.head.appendChild(WI)),WI.sheet&&(WI.sheet.insertRule(`@media ${t} {body{ }}`,0),JZ.add(t))}catch(e){console.error(e)}}function G8e(t){return{matches:t==="all"||t==="",media:t,addListener:()=>{},removeListener:()=>{}}}var D5=(()=>{class t{_mediaMatcher=E(L8e);_zone=E(yA);_queries=new Map;_destroySubject=new je;constructor(){}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return YZ(GB(e)).some(n=>this._registerQuery(n).mql.matches)}observe(e){let n=YZ(GB(e)).map(r=>this._registerQuery(r).observable),o=uc(n);return o=h1(o.pipe(Pn(1)),o.pipe(Pa(1),Ws(0))),o.pipe(aA(r=>{let s={matches:!1,breakpoints:{}};return r.forEach(({matches:a,query:c})=>{s.matches=s.matches||a,s.breakpoints[c]=a}),s}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);let i=this._mediaMatcher.matchMedia(e),o={observable:new nt(r=>{let s=a=>this._zone.run(()=>r.next(a));return i.addListener(s),()=>{i.removeListener(s)}}).pipe(In(i),aA(({matches:r})=>({query:e,matches:r})),mt(this._destroySubject)),mql:i};return this._queries.set(e,o),o}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function YZ(t){return t.map(A=>A.split(",")).reduce((A,e)=>A.concat(e)).map(A=>A.trim())}var HZ={XSmall:"(max-width: 599.98px)",Small:"(min-width: 600px) and (max-width: 959.98px)",Medium:"(min-width: 960px) and (max-width: 1279.98px)",Large:"(min-width: 1280px) and (max-width: 1919.98px)",XLarge:"(min-width: 1920px)",Handset:"(max-width: 599.98px) and (orientation: portrait), (max-width: 959.98px) and (orientation: landscape)",Tablet:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), (min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",Web:"(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)",HandsetPortrait:"(max-width: 599.98px) and (orientation: portrait)",TabletPortrait:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)",WebPortrait:"(min-width: 840px) and (orientation: portrait)",HandsetLandscape:"(max-width: 959.98px) and (orientation: landscape)",TabletLandscape:"(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",WebLandscape:"(min-width: 1280px) and (orientation: landscape)"};var qZ=" ";function DN(t,A,e){let i=S5(t,A);e=e.trim(),!i.some(n=>n.trim()===e)&&(i.push(e),t.setAttribute(A,i.join(qZ)))}function _5(t,A,e){let i=S5(t,A);e=e.trim();let n=i.filter(o=>o!==e);n.length?t.setAttribute(A,n.join(qZ)):t.removeAttribute(A)}function S5(t,A){return t.getAttribute(A)?.match(/\S+/g)??[]}var WZ="cdk-describedby-message",v5="cdk-describedby-host",mN=0,ZZ=(()=>{class t{_platform=E(mi);_document=E(ht);_messageRegistry=new Map;_messagesContainer=null;_id=`${mN++}`;constructor(){E(Wn).load(qI),this._id=E(fB)+"-"+mN++}describe(e,i,n){if(!this._canBeDescribed(e,i))return;let o=EN(i,n);typeof i!="string"?(zZ(i,this._id),this._messageRegistry.set(o,{messageElement:i,referenceCount:0})):this._messageRegistry.has(o)||this._createMessageElement(i,n),this._isElementDescribedByMessage(e,o)||this._addMessageReference(e,o)}removeDescription(e,i,n){if(!i||!this._isElementNode(e))return;let o=EN(i,n);if(this._isElementDescribedByMessage(e,o)&&this._removeMessageReference(e,o),typeof i=="string"){let r=this._messageRegistry.get(o);r&&r.referenceCount===0&&this._deleteMessageElement(o)}this._messagesContainer?.childNodes.length===0&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){let e=this._document.querySelectorAll(`[${v5}="${this._id}"]`);for(let i=0;in.indexOf(WZ)!=0);e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){let n=this._messageRegistry.get(i);DN(e,"aria-describedby",n.messageElement.id),e.setAttribute(v5,this._id),n.referenceCount++}_removeMessageReference(e,i){let n=this._messageRegistry.get(i);n.referenceCount--,_5(e,"aria-describedby",n.messageElement.id),e.removeAttribute(v5)}_isElementDescribedByMessage(e,i){let n=S5(e,"aria-describedby"),o=this._messageRegistry.get(i),r=o&&o.messageElement.id;return!!r&&n.indexOf(r)!=-1}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&typeof i=="object")return!0;let n=i==null?"":`${i}`.trim(),o=e.getAttribute("aria-label");return n?!o||o.trim()!==n:!1}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function EN(t,A){return typeof t=="string"?`${A||""}/${t}`:t}function zZ(t,A){t.id||(t.id=`${WZ}-${A}-${mN++}`)}var Z8e=200,pN=class{_letterKeyStream=new je;_items=[];_selectedItemIndex=-1;_pressedLetters=[];_skipPredicateFn;_selectedItem=new je;selectedItem=this._selectedItem;constructor(A,e){let i=typeof e?.debounceInterval=="number"?e.debounceInterval:Z8e;e?.skipPredicate&&(this._skipPredicateFn=e.skipPredicate),this.setItems(A),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(A){this._selectedItemIndex=A}setItems(A){this._items=A}handleKey(A){let e=A.keyCode;A.key&&A.key.length===1?this._letterKeyStream.next(A.key.toLocaleUpperCase()):(e>=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(A){this._letterKeyStream.pipe(Pt(e=>this._pressedLetters.push(e)),Ws(A),$A(()=>this._pressedLetters.length>0),aA(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(e=>{for(let i=1;iA.disabled;constructor(A,e){this._items=A,A instanceof qa?this._itemChangesSubscription=A.changes.subscribe(i=>this._itemsChanged(i.toArray())):y1(A)&&(this._effectRef=pa(()=>this._itemsChanged(A()),{injector:e}))}tabOut=new je;change=new je;skipPredicate(A){return this._skipPredicateFn=A,this}withWrap(A=!0){return this._wrap=A,this}withVerticalOrientation(A=!0){return this._vertical=A,this}withHorizontalOrientation(A){return this._horizontal=A,this}withAllowedModifierKeys(A){return this._allowedModifierKeys=A,this}withTypeAhead(A=200){this._typeaheadSubscription.unsubscribe();let e=this._getItemsArray();return this._typeahead=new pN(e,{debounceInterval:typeof A=="number"?A:void 0,skipPredicate:i=>this._skipPredicateFn(i)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(i=>{this.setActiveItem(i)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(A=!0){return this._homeAndEnd=A,this}withPageUpDown(A=!0,e=10){return this._pageUpAndDown={enabled:A,delta:e},this}setActiveItem(A){let e=this._activeItem();this.updateActiveItem(A),this._activeItem()!==e&&this.change.next(this._activeItemIndex)}onKeydown(A){let e=A.keyCode,n=["altKey","ctrlKey","metaKey","shiftKey"].every(o=>!A[o]||this._allowedModifierKeys.indexOf(o)>-1);switch(e){case 9:this.tabOut.next();return;case 40:if(this._vertical&&n){this.setNextItemActive();break}else return;case 38:if(this._vertical&&n){this.setPreviousItemActive();break}else return;case 39:if(this._horizontal&&n){this._horizontal==="rtl"?this.setPreviousItemActive():this.setNextItemActive();break}else return;case 37:if(this._horizontal&&n){this._horizontal==="rtl"?this.setNextItemActive():this.setPreviousItemActive();break}else return;case 36:if(this._homeAndEnd&&n){this.setFirstItemActive();break}else return;case 35:if(this._homeAndEnd&&n){this.setLastItemActive();break}else return;case 33:if(this._pageUpAndDown.enabled&&n){let o=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(o>0?o:0,1);break}else return;case 34:if(this._pageUpAndDown.enabled&&n){let o=this._activeItemIndex+this._pageUpAndDown.delta,r=this._getItemsArray().length;this._setActiveItemByIndex(o-1&&i!==this._activeItemIndex&&(this._activeItemIndex=i,this._typeahead?.setCurrentSelectedItemIndex(i))}}},x5=class extends k5{setActiveItem(A){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(A),this.activeItem&&this.activeItem.setActiveStyles()}},C2=class extends k5{_origin="program";setFocusOrigin(A){return this._origin=A,this}setActiveItem(A){super.setActiveItem(A),this.activeItem&&this.activeItem.focus(this._origin)}};var z4=(()=>{class t{_platform=E(mi);constructor(){}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return $8e(e)&&getComputedStyle(e).visibility==="visible"}isTabbable(e){if(!this._platform.isBrowser)return!1;let i=X8e(swe(e));if(i&&(PZ(i)===-1||!this.isVisible(i)))return!1;let n=e.nodeName.toLowerCase(),o=PZ(e);return e.hasAttribute("contenteditable")?o!==-1:n==="iframe"||n==="object"||this._platform.WEBKIT&&this._platform.IOS&&!owe(e)?!1:n==="audio"?e.hasAttribute("controls")?o!==-1:!1:n==="video"?o===-1?!1:o!==null?!0:this._platform.FIREFOX||e.hasAttribute("controls"):e.tabIndex>=0}isFocusable(e,i){return rwe(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function X8e(t){try{return t.frameElement}catch{return null}}function $8e(t){return!!(t.offsetWidth||t.offsetHeight||typeof t.getClientRects=="function"&&t.getClientRects().length)}function ewe(t){let A=t.nodeName.toLowerCase();return A==="input"||A==="select"||A==="button"||A==="textarea"}function Awe(t){return iwe(t)&&t.type=="hidden"}function twe(t){return nwe(t)&&t.hasAttribute("href")}function iwe(t){return t.nodeName.toLowerCase()=="input"}function nwe(t){return t.nodeName.toLowerCase()=="a"}function XZ(t){if(!t.hasAttribute("tabindex")||t.tabIndex===void 0)return!1;let A=t.getAttribute("tabindex");return!!(A&&!isNaN(parseInt(A,10)))}function PZ(t){if(!XZ(t))return null;let A=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(A)?-1:A}function owe(t){let A=t.nodeName.toLowerCase(),e=A==="input"&&t.type;return e==="text"||e==="password"||A==="select"||A==="textarea"}function rwe(t){return Awe(t)?!1:ewe(t)||twe(t)||t.hasAttribute("contenteditable")||XZ(t)}function swe(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}var wN=class{_element;_checker;_ngZone;_document;_injector;_startAnchor;_endAnchor;_hasAttached=!1;startAnchorListener=()=>this.focusLastTabbableElement();endAnchorListener=()=>this.focusFirstTabbableElement();get enabled(){return this._enabled}set enabled(A){this._enabled=A,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(A,this._startAnchor),this._toggleAnchorTabIndex(A,this._endAnchor))}_enabled=!0;constructor(A,e,i,n,o=!1,r){this._element=A,this._checker=e,this._ngZone=i,this._document=n,this._injector=r,o||this.attachAnchors()}destroy(){let A=this._startAnchor,e=this._endAnchor;A&&(A.removeEventListener("focus",this.startAnchorListener),A.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return this._hasAttached?!0:(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(A){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(A)))})}focusFirstTabbableElementWhenReady(A){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(A)))})}focusLastTabbableElementWhenReady(A){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(A)))})}_getRegionBoundary(A){let e=this._element.querySelectorAll(`[cdk-focus-region-${A}], [cdkFocusRegion${A}], [cdk-focus-${A}]`);return A=="start"?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(A){let e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){let i=this._getFirstTabbableElement(e);return i?.focus(A),!!i}return e.focus(A),!0}return this.focusFirstTabbableElement(A)}focusFirstTabbableElement(A){let e=this._getRegionBoundary("start");return e&&e.focus(A),!!e}focusLastTabbableElement(A){let e=this._getRegionBoundary("end");return e&&e.focus(A),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(A){if(this._checker.isFocusable(A)&&this._checker.isTabbable(A))return A;let e=A.children;for(let i=0;i=0;i--){let n=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(n)return n}return null}_createAnchor(){let A=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,A),A.classList.add("cdk-visually-hidden"),A.classList.add("cdk-focus-trap-anchor"),A.setAttribute("aria-hidden","true"),A}_toggleAnchorTabIndex(A,e){A?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(A){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(A,this._startAnchor),this._toggleAnchorTabIndex(A,this._endAnchor))}_executeOnStable(A){this._injector?Gr(A,{injector:this._injector}):setTimeout(A)}},R5=(()=>{class t{_checker=E(z4);_ngZone=E(yA);_document=E(ht);_injector=E(Dt);constructor(){E(Wn).load(qI)}create(e,i=!1){return new wN(e,this._checker,this._ngZone,this._document,i,this._injector)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function P4(t){return t.buttons===0||t.detail===0}function j4(t){let A=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!!A&&A.identifier===-1&&(A.radiusX==null||A.radiusX===1)&&(A.radiusY==null||A.radiusY===1)}var awe=new re("cdk-input-modality-detector-options"),cwe={ignoreKeys:[18,17,224,91,16]},$Z=650,KB=Gl({passive:!0,capture:!0}),lwe=(()=>{class t{_platform=E(mi);modalityDetected;modalityChanged;get mostRecentModality(){return this._modality.value}_mostRecentTarget=null;_modality=new Mt(null);_options;_lastTouchMs=0;_onKeydown=e=>{this._options?.ignoreKeys?.some(i=>i===e.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=al(e))};_onMousedown=e=>{Date.now()-this._lastTouchMs<$Z||(this._modality.next(P4(e)?"keyboard":"mouse"),this._mostRecentTarget=al(e))};_onTouchstart=e=>{if(j4(e)){this._modality.next("keyboard");return}this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=al(e)};constructor(){let e=E(yA),i=E(ht),n=E(awe,{optional:!0});this._options=ae(ae({},cwe),n),this.modalityDetected=this._modality.pipe(Pa(1)),this.modalityChanged=this.modalityDetected.pipe(Ha()),this._platform.isBrowser&&e.runOutsideAngular(()=>{i.addEventListener("keydown",this._onKeydown,KB),i.addEventListener("mousedown",this._onMousedown,KB),i.addEventListener("touchstart",this._onTouchstart,KB)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,KB),document.removeEventListener("mousedown",this._onMousedown,KB),document.removeEventListener("touchstart",this._onTouchstart,KB))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),gwe=new re("liveAnnouncerElement",{providedIn:"root",factory:dwe});function dwe(){return null}var Cwe=new re("LIVE_ANNOUNCER_DEFAULT_OPTIONS"),Iwe=0,N5=(()=>{class t{_ngZone=E(yA);_defaultOptions=E(Cwe,{optional:!0});_liveElement;_document=E(ht);_previousTimeout;_currentPromise;_currentResolve;constructor(){let e=E(gwe,{optional:!0});this._liveElement=e||this._createLiveElement()}announce(e,...i){let n=this._defaultOptions,o,r;return i.length===1&&typeof i[0]=="number"?r=i[0]:[o,r]=i,this.clear(),clearTimeout(this._previousTimeout),o||(o=n&&n.politeness?n.politeness:"polite"),r==null&&n&&(r=n.duration),this._liveElement.setAttribute("aria-live",o),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(s=>this._currentResolve=s)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,typeof r=="number"&&(this._previousTimeout=setTimeout(()=>this.clear(),r)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){let e="cdk-live-announcer-element",i=this._document.getElementsByClassName(e),n=this._document.createElement("div");for(let o=0;o .cdk-overlay-container [aria-modal="true"]');for(let n=0;n{class t{_ngZone=E(yA);_platform=E(mi);_inputModalityDetector=E(lwe);_origin=null;_lastFocusOrigin;_windowFocused=!1;_windowFocusTimeoutId;_originTimeoutId;_originFromTouchInteraction=!1;_elementInfo=new Map;_monitoredElementCount=0;_rootNodeFocusListenerCount=new Map;_detectionMode;_windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)};_document=E(ht,{optional:!0});_stopInputModalityDetector=new je;constructor(){let e=E(uwe,{optional:!0});this._detectionMode=e?.detectionMode||M5.IMMEDIATE}_rootNodeFocusAndBlurListener=e=>{let i=al(e);for(let n=i;n;n=n.parentElement)e.type==="focus"?this._onFocus(e,n):this._onBlur(e,n)};monitor(e,i=!1){let n=wc(e);if(!this._platform.isBrowser||n.nodeType!==1)return dA();let o=UZ(n)||this._getDocument(),r=this._elementInfo.get(n);if(r)return i&&(r.checkChildren=!0),r.subject;let s={checkChildren:i,subject:new je,rootNode:o};return this._elementInfo.set(n,s),this._registerGlobalListeners(s),s.subject}stopMonitoring(e){let i=wc(e),n=this._elementInfo.get(i);n&&(n.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(n))}focusVia(e,i,n){let o=wc(e),r=this._getDocument().activeElement;o===r?this._getClosestElementsInfo(o).forEach(([s,a])=>this._originChanged(s,i,a)):(this._setOrigin(i),typeof o.focus=="function"&&o.focus(n))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return this._detectionMode===M5.EVENTUAL||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused",i==="touch"),e.classList.toggle("cdk-keyboard-focused",i==="keyboard"),e.classList.toggle("cdk-mouse-focused",i==="mouse"),e.classList.toggle("cdk-program-focused",i==="program")}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{if(this._origin=e,this._originFromTouchInteraction=e==="touch"&&i,this._detectionMode===M5.IMMEDIATE){clearTimeout(this._originTimeoutId);let n=this._originFromTouchInteraction?$Z:1;this._originTimeoutId=setTimeout(()=>this._origin=null,n)}})}_onFocus(e,i){let n=this._elementInfo.get(i),o=al(e);!n||!n.checkChildren&&i!==o||this._originChanged(i,this._getFocusOrigin(o),n)}_onBlur(e,i){let n=this._elementInfo.get(i);!n||n.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(n,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;let i=e.rootNode,n=this._rootNodeFocusListenerCount.get(i)||0;n||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,b5),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,b5)}),this._rootNodeFocusListenerCount.set(i,n+1),++this._monitoredElementCount===1&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(mt(this._stopInputModalityDetector)).subscribe(o=>{this._setOrigin(o,!0)}))}_removeGlobalListeners(e){let i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){let n=this._rootNodeFocusListenerCount.get(i);n>1?this._rootNodeFocusListenerCount.set(i,n-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,b5),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,b5),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,n){this._setClasses(e,i),this._emitOrigin(n,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){let i=[];return this._elementInfo.forEach((n,o)=>{(o===e||n.checkChildren&&o.contains(e))&&i.push([o,n])}),i}_isLastInteractionFromInputLabel(e){let{_mostRecentTarget:i,mostRecentModality:n}=this._inputModalityDetector;if(n!=="mouse"||!i||i===e||e.nodeName!=="INPUT"&&e.nodeName!=="TEXTAREA"||e.disabled)return!1;let o=e.labels;if(o){for(let r=0;r{class t{_elementRef=E(eA);_focusMonitor=E(ns);_monitorSubscription;_focusOrigin=null;cdkFocusChange=new Ve;constructor(){}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){let e=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(e,e.nodeType===1&&e.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return t})(),ZI=function(t){return t[t.NONE=0]="NONE",t[t.BLACK_ON_WHITE=1]="BLACK_ON_WHITE",t[t.WHITE_ON_BLACK=2]="WHITE_ON_BLACK",t}(ZI||{}),jZ="cdk-high-contrast-black-on-white",VZ="cdk-high-contrast-white-on-black",fN="cdk-high-contrast-active",vN=(()=>{class t{_platform=E(mi);_hasCheckedHighContrastMode;_document=E(ht);_breakpointSubscription;constructor(){this._breakpointSubscription=E(D5).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return ZI.NONE;let e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);let i=this._document.defaultView||window,n=i&&i.getComputedStyle?i.getComputedStyle(e):null,o=(n&&n.backgroundColor||"").replace(/ /g,"");switch(e.remove(),o){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return ZI.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return ZI.BLACK_ON_WHITE}return ZI.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){let e=this._document.body.classList;e.remove(fN,jZ,VZ),this._hasCheckedHighContrastMode=!0;let i=this.getHighContrastMode();i===ZI.BLACK_ON_WHITE?e.add(fN,jZ):i===ZI.WHITE_ON_BLACK&&e.add(fN,VZ)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),L5=(()=>{class t{constructor(){E(vN)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({imports:[H4]})}return t})(),QN={},un=(()=>{class t{_appId=E(fB);getId(e){return this._appId!=="ng"&&(e+=this._appId),QN.hasOwnProperty(e)||(QN[e]=0),`${e}${QN[e]++}`}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var hwe=new re("cdk-dir-doc",{providedIn:"root",factory:Bwe});function Bwe(){return E(ht)}var Ewe=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;function fwe(t){let A=t?.toLowerCase()||"";return A==="auto"&&typeof navigator<"u"&&navigator?.language?Ewe.test(navigator.language)?"rtl":"ltr":A==="rtl"?"rtl":"ltr"}var Do=(()=>{class t{value="ltr";change=new Ve;constructor(){let e=E(hwe,{optional:!0});if(e){let i=e.body?e.body.dir:null,n=e.documentElement?e.documentElement.dir:null;this.value=fwe(i||n||"ltr")}}ngOnDestroy(){this.change.complete()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var N1=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({})}return t})();var Qwe=["text"],mwe=[[["mat-icon"]],"*"],pwe=["mat-icon","*"];function wwe(t,A){if(t&1&&ve(0,"mat-pseudo-checkbox",1),t&2){let e=M();te("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function ywe(t,A){if(t&1&&ve(0,"mat-pseudo-checkbox",3),t&2){let e=M();te("disabled",e.disabled)}}function Dwe(t,A){if(t&1&&(m(0,"span",4),T(1),p()),t&2){let e=M();y(),FA("(",e.group.label,")")}}var vwe=["mat-internal-form-field",""],bwe=["*"];var ui=(()=>{class t{constructor(){E(vN)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({imports:[N1,N1]})}return t})(),tu=class{_defaultMatcher;ngControl;_parentFormGroup;_parentForm;_stateChanges;errorState=!1;matcher;constructor(A,e,i,n,o){this._defaultMatcher=A,this.ngControl=e,this._parentFormGroup=i,this._parentForm=n,this._stateChanges=o}updateErrorState(){let A=this.errorState,e=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,n=this.ngControl?this.ngControl.control:null,o=i?.isErrorState(n,e)??!1;o!==A&&(this.errorState=o,this._stateChanges.next())}};var TB=(()=>{class t{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Pr=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["structural-styles"]],decls:0,vars:0,template:function(i,n){},styles:['.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}'],encapsulation:2,changeDetection:0})}return t})();var Xa=function(t){return t[t.FADING_IN=0]="FADING_IN",t[t.VISIBLE=1]="VISIBLE",t[t.FADING_OUT=2]="FADING_OUT",t[t.HIDDEN=3]="HIDDEN",t}(Xa||{}),SN=class{_renderer;element;config;_animationForciblyDisabledThroughCss;state=Xa.HIDDEN;constructor(A,e,i,n=!1){this._renderer=A,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=n}fadeOut(){this._renderer.fadeOutRipple(this)}},AX=Gl({passive:!0,capture:!0}),kN=class{_events=new Map;addHandler(A,e,i,n){let o=this._events.get(e);if(o){let r=o.get(i);r?r.add(n):o.set(i,new Set([n]))}else this._events.set(e,new Map([[i,new Set([n])]])),A.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,AX)})}removeHandler(A,e,i){let n=this._events.get(A);if(!n)return;let o=n.get(e);o&&(o.delete(i),o.size===0&&n.delete(e),n.size===0&&(this._events.delete(A),document.removeEventListener(A,this._delegateEventHandler,AX)))}_delegateEventHandler=A=>{let e=al(A);e&&this._events.get(A.type)?.forEach((i,n)=>{(n===e||n.contains(e))&&i.forEach(o=>o.handleEvent(A))})}},G5={enterDuration:225,exitDuration:150},Mwe=800,tX=Gl({passive:!0,capture:!0}),iX=["mousedown","touchstart"],nX=["mouseup","mouseleave","touchend","touchcancel"],Swe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["ng-component"]],hostAttrs:["mat-ripple-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:[".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}"],encapsulation:2,changeDetection:0})}return t})(),UB=class t{_target;_ngZone;_platform;_containerElement;_triggerElement;_isPointerDown=!1;_activeRipples=new Map;_mostRecentTransientRipple;_lastTouchStartEvent;_pointerUpEventsRegistered=!1;_containerRect;static _eventManager=new kN;constructor(A,e,i,n,o){this._target=A,this._ngZone=e,this._platform=n,n.isBrowser&&(this._containerElement=wc(i)),o&&o.get(Wn).load(Swe)}fadeInRipple(A,e,i={}){let n=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),o=ae(ae({},G5),i.animation);i.centered&&(A=n.left+n.width/2,e=n.top+n.height/2);let r=i.radius||kwe(A,e,n),s=A-n.left,a=e-n.top,c=o.enterDuration,l=document.createElement("div");l.classList.add("mat-ripple-element"),l.style.left=`${s-r}px`,l.style.top=`${a-r}px`,l.style.height=`${r*2}px`,l.style.width=`${r*2}px`,i.color!=null&&(l.style.backgroundColor=i.color),l.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(l);let d=window.getComputedStyle(l),C=d.transitionProperty,I=d.transitionDuration,u=C==="none"||I==="0s"||I==="0s, 0s"||n.width===0&&n.height===0,h=new SN(this,l,i,u);l.style.transform="scale3d(1, 1, 1)",h.state=Xa.FADING_IN,i.persistent||(this._mostRecentTransientRipple=h);let B=null;return!u&&(c||o.exitDuration)&&this._ngZone.runOutsideAngular(()=>{let f=()=>{B&&(B.fallbackTimer=null),clearTimeout(k),this._finishRippleTransition(h)},b=()=>this._destroyRipple(h),k=setTimeout(b,c+100);l.addEventListener("transitionend",f),l.addEventListener("transitioncancel",b),B={onTransitionEnd:f,onTransitionCancel:b,fallbackTimer:k}}),this._activeRipples.set(h,B),(u||!c)&&this._finishRippleTransition(h),h}fadeOutRipple(A){if(A.state===Xa.FADING_OUT||A.state===Xa.HIDDEN)return;let e=A.element,i=ae(ae({},G5),A.config.animation);e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",A.state=Xa.FADING_OUT,(A._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(A)}fadeOutAll(){this._getActiveRipples().forEach(A=>A.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(A=>{A.config.persistent||A.fadeOut()})}setupTriggerEvents(A){let e=wc(A);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,iX.forEach(i=>{t._eventManager.addHandler(this._ngZone,i,e,this)}))}handleEvent(A){A.type==="mousedown"?this._onMousedown(A):A.type==="touchstart"?this._onTouchStart(A):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{nX.forEach(e=>{this._triggerElement.addEventListener(e,this,tX)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(A){A.state===Xa.FADING_IN?this._startFadeOutTransition(A):A.state===Xa.FADING_OUT&&this._destroyRipple(A)}_startFadeOutTransition(A){let e=A===this._mostRecentTransientRipple,{persistent:i}=A.config;A.state=Xa.VISIBLE,!i&&(!e||!this._isPointerDown)&&A.fadeOut()}_destroyRipple(A){let e=this._activeRipples.get(A)??null;this._activeRipples.delete(A),this._activeRipples.size||(this._containerRect=null),A===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),A.state=Xa.HIDDEN,e!==null&&(A.element.removeEventListener("transitionend",e.onTransitionEnd),A.element.removeEventListener("transitioncancel",e.onTransitionCancel),e.fallbackTimer!==null&&clearTimeout(e.fallbackTimer)),A.element.remove()}_onMousedown(A){let e=P4(A),i=this._lastTouchStartEvent&&Date.now(){let e=A.state===Xa.VISIBLE||A.config.terminateOnPointerUp&&A.state===Xa.FADING_IN;!A.config.persistent&&e&&A.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){let A=this._triggerElement;A&&(iX.forEach(e=>t._eventManager.removeHandler(e,A,this)),this._pointerUpEventsRegistered&&(nX.forEach(e=>A.removeEventListener(e,this,tX)),this._pointerUpEventsRegistered=!1))}};function kwe(t,A,e){let i=Math.max(Math.abs(t-e.left),Math.abs(t-e.right)),n=Math.max(Math.abs(A-e.top),Math.abs(A-e.bottom));return Math.sqrt(i*i+n*n)}var I2=new re("mat-ripple-global-options"),ec=(()=>{class t{_elementRef=E(eA);_animationMode=E(Oi,{optional:!0});color;unbounded;centered;radius=0;animation;get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}_disabled=!1;get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}_trigger;_rippleRenderer;_globalOptions;_isInitialized=!1;constructor(){let e=E(yA),i=E(mi),n=E(I2,{optional:!0}),o=E(Dt);this._globalOptions=n||{},this._rippleRenderer=new UB(this,e,this._elementRef,i,o)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:ae(ae(ae({},this._globalOptions.animation),this._animationMode==="NoopAnimations"?{enterDuration:0,exitDuration:0}:{}),this.animation),terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,n){return typeof e=="number"?this._rippleRenderer.fadeInRipple(e,i,ae(ae({},this.rippleConfig),n)):this._rippleRenderer.fadeInRipple(0,0,ae(ae({},this.rippleConfig),e))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,n){i&2&&iA("mat-ripple-unbounded",n.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return t})(),P0=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({imports:[ui,ui]})}return t})(),_N=(()=>{class t{_animationMode=E(Oi,{optional:!0});state="unchecked";disabled=!1;appearance="full";constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,n){i&2&&iA("mat-pseudo-checkbox-indeterminate",n.state==="indeterminate")("mat-pseudo-checkbox-checked",n.state==="checked")("mat-pseudo-checkbox-disabled",n.disabled)("mat-pseudo-checkbox-minimal",n.appearance==="minimal")("mat-pseudo-checkbox-full",n.appearance==="full")("_mat-animation-noopable",n._animationMode==="NoopAnimations")},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(i,n){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-minimal-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-primary))}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full{border-color:var(--mat-full-pseudo-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-full-pseudo-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-full-pseudo-checkbox-selected-icon-color, var(--mat-sys-primary));border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-full-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-full-pseudo-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-full-pseudo-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}return t})(),aX=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({imports:[ui]})}return t})(),RN=new re("MAT_OPTION_PARENT_COMPONENT"),NN=new re("MatOptgroup");var xN=class{source;isUserInput;constructor(A,e=!1){this.source=A,this.isUserInput=e}},Ac=(()=>{class t{_element=E(eA);_changeDetectorRef=E(ut);_parent=E(RN,{optional:!0});group=E(NN,{optional:!0});_signalDisableRipple=!1;_selected=!1;_active=!1;_disabled=!1;_mostRecentViewValue="";get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}value;id=E(un).getId("mat-option-");get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(e){this._disabled=e}get disableRipple(){return this._signalDisableRipple?this._parent.disableRipple():!!this._parent?.disableRipple}get hideSingleSelectionIndicator(){return!!(this._parent&&this._parent.hideSingleSelectionIndicator)}onSelectionChange=new Ve;_text;_stateChanges=new je;constructor(){let e=E(Wn);e.load(Pr),e.load(qI),this._signalDisableRipple=!!this._parent&&y1(this._parent.disableRipple)}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(e=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}deselect(e=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}focus(e,i){let n=this._getHostElement();typeof n.focus=="function"&&n.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(e){(e.keyCode===13||e.keyCode===32)&&!Tr(e)&&(this._selectViaInteraction(),e.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=this.multiple?!this._selected:!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){let e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=e)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(e=!1){this.onSelectionChange.emit(new xN(this,e))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-option"]],viewQuery:function(i,n){if(i&1&&At(Qwe,7),i&2){let o;oA(o=rA())&&(n._text=o.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,n){i&1&&ee("click",function(){return n._selectViaInteraction()})("keydown",function(r){return n._handleKeydown(r)}),i&2&&(ea("id",n.id),AA("aria-selected",n.selected)("aria-disabled",n.disabled.toString()),iA("mdc-list-item--selected",n.selected)("mat-mdc-option-multiple",n.multiple)("mat-mdc-option-active",n.active)("mdc-list-item--disabled",n.disabled))},inputs:{value:"value",id:"id",disabled:[2,"disabled","disabled",IA]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],ngContentSelectors:pwe,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,n){i&1&&(Kt(mwe),ne(0,wwe,1,2,"mat-pseudo-checkbox",1),NA(1),m(2,"span",2,0),NA(4,1),p(),ne(5,ywe,1,1,"mat-pseudo-checkbox",3)(6,Dwe,2,1,"span",4),ve(7,"div",5)),i&2&&($(n.multiple?0:-1),y(5),$(!n.multiple&&n.selected&&!n.hideSingleSelectionIndicator?5:-1),y(),$(n.group&&n.group._inert?6:-1),y(),te("matRippleTrigger",n._getHostElement())("matRippleDisabled",n.disabled||n.disableRipple))},dependencies:[_N,ec],styles:['.mat-mdc-option{-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;min-height:48px;padding:0 16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-option-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-option-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-option-label-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-option-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-option-label-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));outline:0}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color, var(--mat-sys-secondary-container))}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}@media(forced-colors: active){.mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{right:auto;left:16px}}.mat-mdc-option-multiple{--mdc-list-list-item-selected-container-color:var(--mdc-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();function cX(t,A,e){if(e.length){let i=A.toArray(),n=e.toArray(),o=0;for(let r=0;re+i?Math.max(0,t-i+A):e}var LN=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({imports:[P0,ui,aX]})}return t})(),oX={capture:!0},rX=["focus","mousedown","mouseenter","touchstart"],bN="mat-ripple-loader-uninitialized",MN="mat-ripple-loader-class-name",sX="mat-ripple-loader-centered",F5="mat-ripple-loader-disabled",K5=(()=>{class t{_document=E(ht,{optional:!0});_animationMode=E(Oi,{optional:!0});_globalRippleOptions=E(I2,{optional:!0});_platform=E(mi);_ngZone=E(yA);_injector=E(Dt);_hosts=new Map;constructor(){this._ngZone.runOutsideAngular(()=>{for(let e of rX)this._document?.addEventListener(e,this._onInteraction,oX)})}ngOnDestroy(){let e=this._hosts.keys();for(let i of e)this.destroyRipple(i);for(let i of rX)this._document?.removeEventListener(i,this._onInteraction,oX)}configureRipple(e,i){e.setAttribute(bN,this._globalRippleOptions?.namespace??""),(i.className||!e.hasAttribute(MN))&&e.setAttribute(MN,i.className||""),i.centered&&e.setAttribute(sX,""),i.disabled&&e.setAttribute(F5,"")}setDisabled(e,i){let n=this._hosts.get(e);n?(n.target.rippleDisabled=i,!i&&!n.hasSetUpEvents&&(n.hasSetUpEvents=!0,n.renderer.setupTriggerEvents(e))):i?e.setAttribute(F5,""):e.removeAttribute(F5)}_onInteraction=e=>{let i=al(e);if(i instanceof HTMLElement){let n=i.closest(`[${bN}="${this._globalRippleOptions?.namespace??""}"]`);n&&this._createRipple(n)}};_createRipple(e){if(!this._document||this._hosts.has(e))return;e.querySelector(".mat-ripple")?.remove();let i=this._document.createElement("span");i.classList.add("mat-ripple",e.getAttribute(MN)),e.append(i);let n=this._animationMode==="NoopAnimations",o=this._globalRippleOptions,r=n?0:o?.animation?.enterDuration??G5.enterDuration,s=n?0:o?.animation?.exitDuration??G5.exitDuration,a={rippleDisabled:n||o?.disabled||e.hasAttribute(F5),rippleConfig:{centered:e.hasAttribute(sX),terminateOnPointerUp:o?.terminateOnPointerUp,animation:{enterDuration:r,exitDuration:s}}},c=new UB(a,this._ngZone,i,this._platform,this._injector),l=!a.rippleDisabled;l&&c.setupTriggerEvents(e),this._hosts.set(e,{target:a,renderer:c,hasSetUpEvents:l}),e.removeAttribute(bN)}destroyRipple(e){let i=this._hosts.get(e);i&&(i.renderer._removeTriggerEvents(),this._hosts.delete(e))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),U5=(()=>{class t{labelPosition;static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,n){i&2&&iA("mdc-form-field--align-end",n.labelPosition==="before")},inputs:{labelPosition:"labelPosition"},attrs:vwe,ngContentSelectors:bwe,decls:1,vars:0,template:function(i,n){i&1&&(Kt(),NA(0))},styles:[".mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0}"],encapsulation:2,changeDetection:0})}return t})();var _we=["mat-button",""],FN=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],GN=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"];var Rwe="@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}",Nwe=["mat-fab",""],Lwe=["mat-mini-fab",""],Fwe='.mat-mdc-fab-base{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus>.mat-focus-indicator::before{content:""}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-sys-corner-large));color:var(--mat-fab-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display, block)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-sys-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-small-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-mini-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;height:var(--mdc-extended-fab-container-height, 56px);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-sys-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-sys-label-large-tracking));box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}',Gwe=["mat-icon-button",""],Kwe=["*"];var Uwe=new re("MAT_BUTTON_CONFIG");var Twe=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],O5=(()=>{class t{_elementRef=E(eA);_ngZone=E(yA);_animationMode=E(Oi,{optional:!0});_focusMonitor=E(ns);_rippleLoader=E(K5);_isFab=!1;color;get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=e,this._updateRippleDisabled()}_disableRipple=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._updateRippleDisabled()}_disabled=!1;ariaDisabled;disabledInteractive;constructor(){E(Wn).load(Pr);let e=E(Uwe,{optional:!0}),i=this._elementRef.nativeElement,n=i.classList;this.disabledInteractive=e?.disabledInteractive??!1,this.color=e?.color??null,this._rippleLoader?.configureRipple(i,{className:"mat-mdc-button-ripple"});for(let{attribute:o,mdcClasses:r}of Twe)i.hasAttribute(o)&&n.add(...r)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(e="program",i){e?this._focusMonitor.focusVia(this._elementRef.nativeElement,e,i):this._elementRef.nativeElement.focus(i)}_getAriaDisabled(){return this.ariaDisabled!=null?this.ariaDisabled:this.disabled&&this.disabledInteractive?!0:null}_getDisabledAttribute(){return this.disabledInteractive||!this.disabled?null:!0}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",IA],disabled:[2,"disabled","disabled",IA],ariaDisabled:[2,"aria-disabled","ariaDisabled",IA],disabledInteractive:[2,"disabledInteractive","disabledInteractive",IA]}})}return t})();var Un=(()=>{class t extends O5{static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275cmp=xe({type:t,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(i,n){i&2&&(AA("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Lo(n.color?"mat-"+n.color:""),iA("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[Ct],attrs:_we,ngContentSelectors:GN,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&(Kt(FN),ve(0,"span",0),NA(1),m(2,"span",1),NA(3,1),p(),NA(4,2),ve(5,"span",2)(6,"span",3)),i&2&&iA("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:['.mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 12px);height:var(--mdc-text-button-container-height, 40px);font-family:var(--mdc-text-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-sys-label-large-weight))}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-sys-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 16px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display, block)}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-filled-button-container-height, 40px);font-family:var(--mdc-filled-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-filled-button-horizontal-padding, 24px)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color, var(--mat-sys-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-unelevated-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display, block)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-sys-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-sys-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-filled-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-sys-level1));height:var(--mdc-protected-button-container-height, 40px);font-family:var(--mdc-protected-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-protected-button-horizontal-padding, 24px)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-raised-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-raised-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display, block)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-sys-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-sys-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-sys-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-protected-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow, var(--mat-sys-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-outlined-button-container-height, 40px);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-sys-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-sys-corner-full));border-width:var(--mdc-outlined-button-outline-width, 1px);padding:0 var(--mat-outlined-button-horizontal-padding, 24px)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-outlined-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-outlined-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display, block)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-sys-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-sys-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:var(--mdc-outlined-button-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button .mdc-button__ripple{border-width:var(--mdc-outlined-button-outline-width, 1px);border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-focus-indicator,.mat-mdc-unelevated-button .mat-focus-indicator,.mat-mdc-raised-button .mat-focus-indicator,.mat-mdc-outlined-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus>.mat-focus-indicator::before,.mat-mdc-unelevated-button:focus>.mat-focus-indicator::before,.mat-mdc-raised-button:focus>.mat-focus-indicator::before,.mat-mdc-outlined-button:focus>.mat-focus-indicator::before{content:""}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-focus-indicator::before,.mat-mdc-raised-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}',"@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}"],encapsulation:2,changeDetection:0})}return t})();var gX=new re("mat-mdc-fab-default-options",{providedIn:"root",factory:dX});function dX(){return{color:"accent"}}var T5=dX(),CX=(()=>{class t extends O5{_options=E(gX,{optional:!0});_isFab=!0;extended;constructor(){super(),this._options=this._options||T5,this.color=this._options.color||T5.color}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["button","mat-fab",""]],hostVars:18,hostBindings:function(i,n){i&2&&(AA("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Lo(n.color?"mat-"+n.color:""),iA("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0)("mdc-fab--extended",n.extended)("mat-mdc-extended-fab",n.extended))},inputs:{extended:[2,"extended","extended",IA]},exportAs:["matButton"],features:[Ct],attrs:Nwe,ngContentSelectors:GN,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&(Kt(FN),ve(0,"span",0),NA(1),m(2,"span",1),NA(3,1),p(),NA(4,2),ve(5,"span",2)(6,"span",3)),i&2&&iA("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:['.mat-mdc-fab-base{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus>.mat-focus-indicator::before{content:""}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-sys-corner-large));color:var(--mat-fab-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display, block)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-sys-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-sys-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-small-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-mini-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;height:var(--mdc-extended-fab-container-height, 56px);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-sys-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-sys-label-large-tracking));box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}'],encapsulation:2,changeDetection:0})}return t})(),J5=(()=>{class t extends O5{_options=E(gX,{optional:!0});_isFab=!0;constructor(){super(),this._options=this._options||T5,this.color=this._options.color||T5.color}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["button","mat-mini-fab",""]],hostVars:14,hostBindings:function(i,n){i&2&&(AA("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Lo(n.color?"mat-"+n.color:""),iA("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[Ct],attrs:Lwe,ngContentSelectors:GN,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&(Kt(FN),ve(0,"span",0),NA(1),m(2,"span",1),NA(3,1),p(),NA(4,2),ve(5,"span",2)(6,"span",3)),i&2&&iA("mdc-button__ripple",!n._isFab)("mdc-fab__ripple",n._isFab)},styles:[Fwe],encapsulation:2,changeDetection:0})}return t})();var ya=(()=>{class t extends O5{constructor(){super(),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["button","mat-icon-button",""]],hostVars:14,hostBindings:function(i,n){i&2&&(AA("disabled",n._getDisabledAttribute())("aria-disabled",n._getAriaDisabled()),Lo(n.color?"mat-"+n.color:""),iA("mat-mdc-button-disabled",n.disabled)("mat-mdc-button-disabled-interactive",n.disabledInteractive)("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mat-unthemed",!n.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[Ct],attrs:Gwe,ngContentSelectors:Kwe,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,n){i&1&&(Kt(),ve(0,"span",0),NA(1),ve(2,"span",1)(3,"span",2))},styles:['.mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:50%;flex-shrink:0;text-align:center;width:var(--mdc-icon-button-state-layer-size, 40px);height:var(--mdc-icon-button-state-layer-size, 40px);padding:calc(calc(var(--mdc-icon-button-state-layer-size, 40px) - var(--mdc-icon-button-icon-size, 24px)) / 2);font-size:var(--mdc-icon-button-icon-size, 24px);color:var(--mdc-icon-button-icon-color, var(--mat-sys-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus>.mat-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-icon-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-icon-button-touch-target-display, block)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mdc-icon-button-icon-size, 24px);height:var(--mdc-icon-button-icon-size, 24px);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button[hidden]{display:none}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',Rwe],encapsulation:2,changeDetection:0})}return t})();var j0=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({imports:[ui,P0,ui]})}return t})();var UN=class{_box;_destroyed=new je;_resizeSubject=new je;_resizeObserver;_elementObservables=new Map;constructor(A){this._box=A,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(e=>this._resizeSubject.next(e)))}observe(A){return this._elementObservables.has(A)||this._elementObservables.set(A,new nt(e=>{let i=this._resizeSubject.subscribe(e);return this._resizeObserver?.observe(A,{box:this._box}),()=>{this._resizeObserver?.unobserve(A),i.unsubscribe(),this._elementObservables.delete(A)}}).pipe($A(e=>e.some(i=>i.target===A)),za({bufferSize:1,refCount:!0}),mt(this._destroyed))),this._elementObservables.get(A)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}},Y5=(()=>{class t{_cleanupErrorListener;_observers=new Map;_ngZone=E(yA);constructor(){typeof ResizeObserver<"u"}ngOnDestroy(){for(let[,e]of this._observers)e.destroy();this._observers.clear(),this._cleanupErrorListener?.()}observe(e,i){let n=i?.box||"content-box";return this._observers.has(n)||this._observers.set(n,new UN(n)),this._observers.get(n).observe(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var pi=function(t){return t[t.State=0]="State",t[t.Transition=1]="Transition",t[t.Sequence=2]="Sequence",t[t.Group=3]="Group",t[t.Animate=4]="Animate",t[t.Keyframes=5]="Keyframes",t[t.Style=6]="Style",t[t.Trigger=7]="Trigger",t[t.Reference=8]="Reference",t[t.AnimateChild=9]="AnimateChild",t[t.AnimateRef=10]="AnimateRef",t[t.Query=11]="Query",t[t.Stagger=12]="Stagger",t}(pi||{}),Kl="*";function ll(t,A){return{type:pi.Trigger,name:t,definitions:A,options:{}}}function ia(t,A=null){return{type:pi.Animate,styles:A,timings:t}}function IX(t,A=null){return{type:pi.Sequence,steps:t,options:A}}function Vo(t){return{type:pi.Style,styles:t,offset:null}}function tc(t,A,e){return{type:pi.State,name:t,styles:A,options:e}}function Fs(t,A,e=null){return{type:pi.Transition,expr:t,animation:A,options:e}}function TN(t=null){return{type:pi.AnimateChild,options:t}}function ON(t,A,e=null){return{type:pi.Query,selector:t,animation:A,options:e}}var V0=class{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(A=0,e=0){this.totalTime=A+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(A=>A()),this._onDoneFns=[])}onStart(A){this._originalOnStartFns.push(A),this._onStartFns.push(A)}onDone(A){this._originalOnDoneFns.push(A),this._onDoneFns.push(A)}onDestroy(A){this._onDestroyFns.push(A)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(A=>A()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(A=>A()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(A){this._position=this.totalTime?A*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(A){let e=A=="start"?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}},iu=class{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(A){this.players=A;let e=0,i=0,n=0,o=this.players.length;o==0?queueMicrotask(()=>this._onFinish()):this.players.forEach(r=>{r.onDone(()=>{++e==o&&this._onFinish()}),r.onDestroy(()=>{++i==o&&this._onDestroy()}),r.onStart(()=>{++n==o&&this._onStart()})}),this.totalTime=this.players.reduce((r,s)=>Math.max(r,s.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(A=>A()),this._onDoneFns=[])}init(){this.players.forEach(A=>A.init())}onStart(A){this._onStartFns.push(A)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(A=>A()),this._onStartFns=[])}onDone(A){this._onDoneFns.push(A)}onDestroy(A){this._onDestroyFns.push(A)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(A=>A.play())}pause(){this.players.forEach(A=>A.pause())}restart(){this.players.forEach(A=>A.restart())}finish(){this._onFinish(),this.players.forEach(A=>A.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(A=>A.destroy()),this._onDestroyFns.forEach(A=>A()),this._onDestroyFns=[])}reset(){this.players.forEach(A=>A.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(A){let e=A*this.totalTime;this.players.forEach(i=>{let n=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(n)})}getPosition(){let A=this.players.reduce((e,i)=>e===null||i.totalTime>e.totalTime?i:e,null);return A!=null?A.getPosition():0}beforeDestroy(){this.players.forEach(A=>{A.beforeDestroy&&A.beforeDestroy()})}triggerCallback(A){let e=A=="start"?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}},OB="!";var Owe=["notch"],Jwe=["matFormFieldNotchedOutline",""],Ywe=["*"],Hwe=["textField"],zwe=["iconPrefixContainer"],Pwe=["textPrefixContainer"],jwe=["iconSuffixContainer"],Vwe=["textSuffixContainer"],qwe=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],Wwe=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function Zwe(t,A){t&1&&ve(0,"span",21)}function Xwe(t,A){if(t&1&&(m(0,"label",20),NA(1,1),ne(2,Zwe,1,0,"span",21),p()),t&2){let e=M(2);te("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),AA("for",e._control.disableAutomaticLabeling?null:e._control.id),y(2),$(!e.hideRequiredMarker&&e._control.required?2:-1)}}function $we(t,A){if(t&1&&ne(0,Xwe,3,5,"label",20),t&2){let e=M();$(e._hasFloatingLabel()?0:-1)}}function e5e(t,A){t&1&&ve(0,"div",7)}function A5e(t,A){}function t5e(t,A){if(t&1&&ne(0,A5e,0,0,"ng-template",13),t&2){M(2);let e=Ji(1);te("ngTemplateOutlet",e)}}function i5e(t,A){if(t&1&&(m(0,"div",9),ne(1,t5e,1,1,null,13),p()),t&2){let e=M();te("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),y(),$(e._forceDisplayInfixLabel()?-1:1)}}function n5e(t,A){t&1&&(m(0,"div",10,2),NA(2,2),p())}function o5e(t,A){t&1&&(m(0,"div",11,3),NA(2,3),p())}function r5e(t,A){}function s5e(t,A){if(t&1&&ne(0,r5e,0,0,"ng-template",13),t&2){M();let e=Ji(1);te("ngTemplateOutlet",e)}}function a5e(t,A){t&1&&(m(0,"div",14,4),NA(2,4),p())}function c5e(t,A){t&1&&(m(0,"div",15,5),NA(2,5),p())}function l5e(t,A){t&1&&ve(0,"div",16)}function g5e(t,A){if(t&1&&(m(0,"div",18),NA(1,6),p()),t&2){let e=M();te("@transitionMessages",e._subscriptAnimationState)}}function d5e(t,A){if(t&1&&(m(0,"mat-hint",22),T(1),p()),t&2){let e=M(2);te("id",e._hintLabelId),y(),Pe(e.hintLabel)}}function C5e(t,A){if(t&1&&(m(0,"div",19),ne(1,d5e,2,2,"mat-hint",22),NA(2,7),ve(3,"div",23),NA(4,8),p()),t&2){let e=M();te("@transitionMessages",e._subscriptAnimationState),y(),$(e.hintLabel?1:-1)}}var q0=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["mat-label"]]})}return t})(),mX=new re("MatError"),pX=(()=>{class t{id=E(un).getId("mat-mdc-error-");constructor(){E(new ws("aria-live"),{optional:!0})||E(eA).nativeElement.setAttribute("aria-live","polite")}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["mat-error"],["","matError",""]],hostAttrs:["aria-atomic","true",1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(i,n){i&2&&ea("id",n.id)},inputs:{id:"id"},features:[gt([{provide:mX,useExisting:t}])]})}return t})(),JB=(()=>{class t{align="start";id=E(un).getId("mat-mdc-hint-");static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,n){i&2&&(ea("id",n.id),AA("align",null),iA("mat-mdc-form-field-hint-end",n.align==="end"))},inputs:{align:"align",id:"id"}})}return t})(),I5e=new re("MatPrefix");var wX=new re("MatSuffix"),yX=(()=>{class t{set _isTextSelector(e){this._isText=!0}_isText=!1;static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","matSuffix",""],["","matIconSuffix",""],["","matTextSuffix",""]],inputs:{_isTextSelector:[0,"matTextSuffix","_isTextSelector"]},features:[gt([{provide:wX,useExisting:t}])]})}return t})(),DX=new re("FloatingLabelParent"),uX=(()=>{class t{_elementRef=E(eA);get floating(){return this._floating}set floating(e){this._floating=e,this.monitorResize&&this._handleResize()}_floating=!1;get monitorResize(){return this._monitorResize}set monitorResize(e){this._monitorResize=e,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}_monitorResize=!1;_resizeObserver=E(Y5);_ngZone=E(yA);_parent=E(DX);_resizeSubscription=new Ot;constructor(){}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return u5e(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,n){i&2&&iA("mdc-floating-label--float-above",n.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return t})();function u5e(t){let A=t;if(A.offsetParent!==null)return A.scrollWidth;let e=A.cloneNode(!0);e.style.setProperty("position","absolute"),e.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(e);let i=e.scrollWidth;return e.remove(),i}var hX="mdc-line-ripple--active",H5="mdc-line-ripple--deactivating",BX=(()=>{class t{_elementRef=E(eA);_cleanupTransitionEnd;constructor(){let e=E(yA),i=E(an);e.runOutsideAngular(()=>{this._cleanupTransitionEnd=i.listen(this._elementRef.nativeElement,"transitionend",this._handleTransitionEnd)})}activate(){let e=this._elementRef.nativeElement.classList;e.remove(H5),e.add(hX)}deactivate(){this._elementRef.nativeElement.classList.add(H5)}_handleTransitionEnd=e=>{let i=this._elementRef.nativeElement.classList,n=i.contains(H5);e.propertyName==="opacity"&&n&&i.remove(hX,H5)};ngOnDestroy(){this._cleanupTransitionEnd()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return t})(),EX=(()=>{class t{_elementRef=E(eA);_ngZone=E(yA);open=!1;_notch;constructor(){}ngAfterViewInit(){let e=this._elementRef.nativeElement.querySelector(".mdc-floating-label");e?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),typeof requestAnimationFrame=="function"&&(e.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>e.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(e){!this.open||!e?this._notch.nativeElement.style.width="":this._notch.nativeElement.style.width=`calc(${e}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,n){if(i&1&&At(Owe,5),i&2){let o;oA(o=rA())&&(n._notch=o.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,n){i&2&&iA("mdc-notched-outline--notched",n.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},attrs:Jwe,ngContentSelectors:Ywe,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,n){i&1&&(Kt(),ve(0,"div",1),m(1,"div",2,0),NA(3),p(),ve(4,"div",3))},encapsulation:2,changeDetection:0})}return t})(),h5e={transitionMessages:ll("transitionMessages",[tc("enter",Vo({opacity:1,transform:"translateY(0%)"})),Fs("void => enter",[Vo({opacity:0,transform:"translateY(-5px)"}),ia("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},V4=(()=>{class t{value;stateChanges;id;placeholder;ngControl;focused;empty;shouldLabelFloat;required;disabled;errorState;controlType;autofilled;userAriaDescribedBy;disableAutomaticLabeling;static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t})}return t})();var q4=new re("MatFormField"),B5e=new re("MAT_FORM_FIELD_DEFAULT_OPTIONS"),fX="fill",E5e="auto",QX="fixed",f5e="translateY(-50%)",ds=(()=>{class t{_elementRef=E(eA);_changeDetectorRef=E(ut);_dir=E(Do);_platform=E(mi);_idGenerator=E(un);_defaults=E(B5e,{optional:!0});_animationMode=E(Oi,{optional:!0});_textField;_iconPrefixContainer;_textPrefixContainer;_iconSuffixContainer;_textSuffixContainer;_floatingLabel;_notchedOutline;_lineRipple;_formFieldControl;_prefixChildren;_suffixChildren;_errorChildren;_hintChildren;_labelChild=o2(q0);get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=Sr(e)}_hideRequiredMarker=!1;color="primary";get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||E5e}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}_floatLabel;get appearance(){return this._appearance}set appearance(e){let i=this._appearance,n=e||this._defaults?.appearance||fX;this._appearance=n,this._appearance==="outline"&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdate=!0)}_appearance=fX;get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||QX}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||QX}_subscriptSizing=null;get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}_hintLabel="";_hasIconPrefix=!1;_hasTextPrefix=!1;_hasIconSuffix=!1;_hasTextSuffix=!1;_labelId=this._idGenerator.getId("mat-mdc-form-field-label-");_hintLabelId=this._idGenerator.getId("mat-mdc-hint-");_subscriptAnimationState="";get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}_destroyed=new je;_isFocused=null;_explicitFormFieldControl;_needsOutlineLabelOffsetUpdate=!1;_previousControl=null;_stateChanges;_valueChanges;_describedByChanges;_injector=E(Dt);constructor(){let e=this._defaults;e&&(e.appearance&&(this.appearance=e.appearance),this._hideRequiredMarker=!!e?.hideRequiredMarker,e.color&&(this.color=e.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._previousControl=this._control)}ngOnDestroy(){this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._describedByChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getLabelId=ot(()=>this._hasFloatingLabel()?this._labelId:null);getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(e){let i=this._control,n="mat-mdc-form-field-type-";e&&this._elementRef.nativeElement.classList.remove(n+e.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(n+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._changeDetectorRef.markForCheck()}),this._describedByChanges?.unsubscribe(),this._describedByChanges=i.stateChanges.pipe(In([void 0,void 0]),aA(()=>[i.errorState,i.userAriaDescribedBy]),k0(),$A(([[o,r],[s,a]])=>o!==s||r!==a)).subscribe(()=>this._syncDescribedByIds()),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(mt(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck()))}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(e=>!e._isText),this._hasTextPrefix=!!this._prefixChildren.find(e=>e._isText),this._hasIconSuffix=!!this._suffixChildren.find(e=>!e._isText),this._hasTextSuffix=!!this._suffixChildren.find(e=>e._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),Bi(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){this._control}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||this._isFocused===null)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0),f4(()=>{this._needsOutlineLabelOffsetUpdate&&(this._needsOutlineLabelOffsetUpdate=!1,this._updateOutlineLabelOffset())},{injector:this._injector}),this._dir.change.pipe(mt(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0)}_shouldAlwaysFloat(){return this.floatLabel==="always"}_hasOutline(){return this.appearance==="outline"}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel=ot(()=>!!this._labelChild());_shouldLabelFloat(){return this._hasFloatingLabel()?this._control.shouldLabelFloat||this._shouldAlwaysFloat():!1}_shouldForward(e){let i=this._control?this._control.ngControl:null;return i&&i[e]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){!this._hasOutline()||!this._floatingLabel||!this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(0):this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth())}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){this._hintChildren}_syncDescribedByIds(){if(this._control){let e=[];if(this._control.userAriaDescribedBy&&typeof this._control.userAriaDescribedBy=="string"&&e.push(...this._control.userAriaDescribedBy.split(" ")),this._getDisplayedMessages()==="hint"){let i=this._hintChildren?this._hintChildren.find(o=>o.align==="start"):null,n=this._hintChildren?this._hintChildren.find(o=>o.align==="end"):null;i?e.push(i.id):this._hintLabel&&e.push(this._hintLabelId),n&&e.push(n.id)}else this._errorChildren&&e.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(e)}}_updateOutlineLabelOffset(){if(!this._hasOutline()||!this._floatingLabel)return;let e=this._floatingLabel.element;if(!(this._iconPrefixContainer||this._textPrefixContainer)){e.style.transform="";return}if(!this._isAttachedToDom()){this._needsOutlineLabelOffsetUpdate=!0;return}let i=this._iconPrefixContainer?.nativeElement,n=this._textPrefixContainer?.nativeElement,o=this._iconSuffixContainer?.nativeElement,r=this._textSuffixContainer?.nativeElement,s=i?.getBoundingClientRect().width??0,a=n?.getBoundingClientRect().width??0,c=o?.getBoundingClientRect().width??0,l=r?.getBoundingClientRect().width??0,d=this._dir.value==="rtl"?"-1":"1",C=`${s+a}px`,u=`calc(${d} * (${C} + var(--mat-mdc-form-field-label-offset-x, 0px)))`;e.style.transform=`var( + --mat-mdc-form-field-label-transform, + ${f5e} translateX(${u}) + )`;let h=s+a+c+l;this._elementRef.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${h}px)`)}_isAttachedToDom(){let e=this._elementRef.nativeElement;if(e.getRootNode){let i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-form-field"]],contentQueries:function(i,n,o){if(i&1&&(r2(o,n._labelChild,q0,5),ni(o,V4,5),ni(o,I5e,5),ni(o,wX,5),ni(o,mX,5),ni(o,JB,5)),i&2){Aa();let r;oA(r=rA())&&(n._formFieldControl=r.first),oA(r=rA())&&(n._prefixChildren=r),oA(r=rA())&&(n._suffixChildren=r),oA(r=rA())&&(n._errorChildren=r),oA(r=rA())&&(n._hintChildren=r)}},viewQuery:function(i,n){if(i&1&&(At(Hwe,5),At(zwe,5),At(Pwe,5),At(jwe,5),At(Vwe,5),At(uX,5),At(EX,5),At(BX,5)),i&2){let o;oA(o=rA())&&(n._textField=o.first),oA(o=rA())&&(n._iconPrefixContainer=o.first),oA(o=rA())&&(n._textPrefixContainer=o.first),oA(o=rA())&&(n._iconSuffixContainer=o.first),oA(o=rA())&&(n._textSuffixContainer=o.first),oA(o=rA())&&(n._floatingLabel=o.first),oA(o=rA())&&(n._notchedOutline=o.first),oA(o=rA())&&(n._lineRipple=o.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,n){i&2&&iA("mat-mdc-form-field-label-always-float",n._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",n._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",n._hasIconSuffix)("mat-form-field-invalid",n._control.errorState)("mat-form-field-disabled",n._control.disabled)("mat-form-field-autofilled",n._control.autofilled)("mat-form-field-no-animations",n._animationMode==="NoopAnimations")("mat-form-field-appearance-fill",n.appearance=="fill")("mat-form-field-appearance-outline",n.appearance=="outline")("mat-form-field-hide-placeholder",n._hasFloatingLabel()&&!n._shouldLabelFloat())("mat-focused",n._control.focused)("mat-primary",n.color!=="accent"&&n.color!=="warn")("mat-accent",n.color==="accent")("mat-warn",n.color==="warn")("ng-untouched",n._shouldForward("untouched"))("ng-touched",n._shouldForward("touched"))("ng-pristine",n._shouldForward("pristine"))("ng-dirty",n._shouldForward("dirty"))("ng-valid",n._shouldForward("valid"))("ng-invalid",n._shouldForward("invalid"))("ng-pending",n._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[gt([{provide:q4,useExisting:t},{provide:DX,useExisting:t}])],ngContentSelectors:Wwe,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,n){if(i&1){let o=Ue();Kt(qwe),ne(0,$we,1,1,"ng-template",null,0,a2),m(2,"div",6,1),ee("click",function(s){return q(o),W(n._control.onContainerClick(s))}),ne(4,e5e,1,0,"div",7),m(5,"div",8),ne(6,i5e,2,2,"div",9)(7,n5e,3,0,"div",10)(8,o5e,3,0,"div",11),m(9,"div",12),ne(10,s5e,1,1,null,13),NA(11),p(),ne(12,a5e,3,0,"div",14)(13,c5e,3,0,"div",15),p(),ne(14,l5e,1,0,"div",16),p(),m(15,"div",17),ne(16,g5e,2,1,"div",18)(17,C5e,5,2,"div",19),p()}if(i&2){let o;y(2),iA("mdc-text-field--filled",!n._hasOutline())("mdc-text-field--outlined",n._hasOutline())("mdc-text-field--no-label",!n._hasFloatingLabel())("mdc-text-field--disabled",n._control.disabled)("mdc-text-field--invalid",n._control.errorState),y(2),$(!n._hasOutline()&&!n._control.disabled?4:-1),y(2),$(n._hasOutline()?6:-1),y(),$(n._hasIconPrefix?7:-1),y(),$(n._hasTextPrefix?8:-1),y(2),$(!n._hasOutline()||n._forceDisplayInfixLabel()?10:-1),y(2),$(n._hasTextSuffix?12:-1),y(),$(n._hasIconSuffix?13:-1),y(),$(n._hasOutline()?-1:14),y(),iA("mat-mdc-form-field-subscript-dynamic-size",n.subscriptSizing==="dynamic"),y(),$((o=n._getDisplayedMessages())==="error"?16:o==="hint"?17:-1)}},dependencies:[uX,EX,nl,BX,JB],styles:['.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-moz-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-webkit-input-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive:-ms-input-placeholder{opacity:0}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-filled-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-outlined-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color, var(--mat-sys-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 4%, transparent))}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)));padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px);padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}@media(forced-colors: active){.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-filled-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-filled-text-field-hover-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-filled-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-filled-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-filled-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-filled-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-filled-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-filled-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-outlined-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-outlined-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-outlined-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-outlined-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-outlined-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-outlined-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-outline-color, var(--mat-sys-outline));border-width:var(--mdc-outlined-text-field-outline-width, 1px)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-hover-outline-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-focus-outline-color, var(--mat-sys-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-hover-outline-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-focus-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mdc-outlined-text-field-focus-outline-width, 2px)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),100% - max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))*2)}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none;--mat-form-field-notch-max-width: 100%}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1;border-bottom-width:var(--mdc-filled-text-field-active-indicator-height, 1px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color, var(--mat-sys-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color, var(--mat-sys-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height, 2px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color, var(--mat-sys-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color, var(--mat-sys-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height, 56px);padding-top:var(--mat-form-field-filled-with-label-container-padding-top, 24px);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom, 8px)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding, 16px);padding-bottom:var(--mat-form-field-container-vertical-padding, 16px)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height, 56px)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height, 56px) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color, var(--mat-sys-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-sys-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-sys-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-sys-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity, 0)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color, var(--mat-sys-neutral10))}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color, color-mix(in srgb, var(--mat-sys-neutral10) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-sys-on-surface-variant))}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}@media(forced-colors: active){.mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}}@media(forced-colors: active){.mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-sys-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-sys-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-sys-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-sys-error))}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field-infix:has(textarea[cols]){width:auto}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[h5e.transitionMessages]},changeDetection:0})}return t})(),gl=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({imports:[ui,H4,ui]})}return t})();var bX=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-text-field-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:["textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}"],encapsulation:2,changeDetection:0})}return t})(),vX=Gl({passive:!0}),MX=(()=>{class t{_platform=E(mi);_ngZone=E(yA);_styleLoader=E(Wn);_monitoredElements=new Map;constructor(){}monitor(e){if(!this._platform.isBrowser)return vr;this._styleLoader.load(bX);let i=wc(e),n=this._monitoredElements.get(i);if(n)return n.subject;let o=new je,r="cdk-text-field-autofilled",s=a=>{a.animationName==="cdk-text-field-autofill-start"&&!i.classList.contains(r)?(i.classList.add(r),this._ngZone.run(()=>o.next({target:a.target,isAutofilled:!0}))):a.animationName==="cdk-text-field-autofill-end"&&i.classList.contains(r)&&(i.classList.remove(r),this._ngZone.run(()=>o.next({target:a.target,isAutofilled:!1})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",s,vX),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:o,unlisten:()=>{i.removeEventListener("animationstart",s,vX)}}),o}stopMonitoring(e){let i=wc(e),n=this._monitoredElements.get(i);n&&(n.unlisten(),n.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((e,i)=>this.stopMonitoring(i))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var z5=(()=>{class t{_elementRef=E(eA);_platform=E(mi);_ngZone=E(yA);_renderer=E(an);_resizeEvents=new je;_previousValue;_initialHeight;_destroyed=new je;_listenerCleanups;_minRows;_maxRows;_enabled=!0;_previousMinRows=-1;_textareaElement;get minRows(){return this._minRows}set minRows(e){this._minRows=Za(e),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(e){this._maxRows=Za(e),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(e){this._enabled!==e&&((this._enabled=e)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(e){this._cachedPlaceholderHeight=void 0,e?this._textareaElement.setAttribute("placeholder",e):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}_cachedLineHeight;_cachedPlaceholderHeight;_document=E(ht,{optional:!0});_hasFocus;_isViewInited=!1;constructor(){E(Wn).load(bX),this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){let e=this.minRows&&this._cachedLineHeight?`${this.minRows*this._cachedLineHeight}px`:null;e&&(this._textareaElement.style.minHeight=e)}_setMaxHeight(){let e=this.maxRows&&this._cachedLineHeight?`${this.maxRows*this._cachedLineHeight}px`:null;e&&(this._textareaElement.style.maxHeight=e)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{this._listenerCleanups=[this._renderer.listen("window","resize",()=>this._resizeEvents.next()),this._renderer.listen(this._textareaElement,"focus",this._handleFocusEvent),this._renderer.listen(this._textareaElement,"blur",this._handleFocusEvent)],this._resizeEvents.pipe(Ph(16)).subscribe(()=>{this._cachedLineHeight=this._cachedPlaceholderHeight=void 0,this.resizeToFitContent(!0)})}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._listenerCleanups?.forEach(e=>e()),this._resizeEvents.complete(),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let e=this._textareaElement.cloneNode(!1),i=e.style;e.rows=1,i.position="absolute",i.visibility="hidden",i.border="none",i.padding="0",i.height="",i.minHeight="",i.maxHeight="",i.top=i.bottom=i.left=i.right="auto",i.overflow="hidden",this._textareaElement.parentNode.appendChild(e),this._cachedLineHeight=e.clientHeight,e.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){let e=this._textareaElement,i=e.style.marginBottom||"",n=this._platform.FIREFOX,o=n&&this._hasFocus,r=n?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";o&&(e.style.marginBottom=`${e.clientHeight}px`),e.classList.add(r);let s=e.scrollHeight-4;return e.classList.remove(r),o&&(e.style.marginBottom=i),s}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||this._cachedPlaceholderHeight!=null)return;if(!this.placeholder){this._cachedPlaceholderHeight=0;return}let e=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=e}_handleFocusEvent=e=>{this._hasFocus=e.type==="focus"};ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(e=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight))return;let i=this._elementRef.nativeElement,n=i.value;if(!e&&this._minRows===this._previousMinRows&&n===this._previousValue)return;let o=this._measureScrollHeight(),r=Math.max(o,this._cachedPlaceholderHeight||0);i.style.height=`${r}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=n,this._previousMinRows=this._minRows}reset(){this._initialHeight!==void 0&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_scrollToCaretPosition(e){let{selectionStart:i,selectionEnd:n}=e;!this._destroyed.isStopped&&this._hasFocus&&e.setSelectionRange(i,n)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,n){i&1&&ee("input",function(){return n._noopInputHandler()})},inputs:{minRows:[0,"cdkAutosizeMinRows","minRows"],maxRows:[0,"cdkAutosizeMaxRows","maxRows"],enabled:[2,"cdkTextareaAutosize","enabled",IA],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"]})}return t})(),YB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({})}return t})();var Q5e=new re("MAT_INPUT_VALUE_ACCESSOR"),m5e=["button","checkbox","file","hidden","image","radio","range","reset","submit"],p5e=new re("MAT_INPUT_CONFIG"),Gs=(()=>{class t{_elementRef=E(eA);_platform=E(mi);ngControl=E(rl,{optional:!0,self:!0});_autofillMonitor=E(MX);_ngZone=E(yA);_formField=E(q4,{optional:!0});_renderer=E(an);_uid=E(un).getId("mat-input-");_previousNativeValue;_inputValueAccessor;_signalBasedValueAccessor;_previousPlaceholder;_errorStateTracker;_config=E(p5e,{optional:!0});_cleanupIosKeyup;_cleanupWebkitWheel;_formFieldDescribedBy;_isServer;_isNativeSelect;_isTextarea;_isInFormField;focused=!1;stateChanges=new je;controlType="mat-input";autofilled=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=Sr(e),this.focused&&(this.focused=!1,this.stateChanges.next())}_disabled=!1;get id(){return this._id}set id(e){this._id=e||this._uid}_id;placeholder;name;get required(){return this._required??this.ngControl?.control?.hasValidator(ol.required)??!1}set required(e){this._required=Sr(e)}_required;get type(){return this._type}set type(e){let i=this._type;this._type=e||"text",this._validateType(),!this._isTextarea&&IN().has(this._type)&&(this._elementRef.nativeElement.type=this._type),this._type!==i&&this._ensureWheelDefaultBehavior()}_type="text";get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}userAriaDescribedBy;get value(){return this._signalBasedValueAccessor?this._signalBasedValueAccessor.value():this._inputValueAccessor.value}set value(e){e!==this.value&&(this._signalBasedValueAccessor?this._signalBasedValueAccessor.value.set(e):this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=Sr(e)}_readonly=!1;disabledInteractive;get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}_neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(e=>IN().has(e));constructor(){let e=E(J4,{optional:!0}),i=E(jI,{optional:!0}),n=E(TB),o=E(Q5e,{optional:!0,self:!0}),r=this._elementRef.nativeElement,s=r.nodeName.toLowerCase();o?y1(o.value)?this._signalBasedValueAccessor=o:this._inputValueAccessor=o:this._inputValueAccessor=r,this._previousNativeValue=this.value,this.id=this.id,this._platform.IOS&&this._ngZone.runOutsideAngular(()=>{this._cleanupIosKeyup=this._renderer.listen(r,"keyup",this._iOSKeyupListener)}),this._errorStateTracker=new tu(n,this.ngControl,i,e,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect=s==="select",this._isTextarea=s==="textarea",this._isInFormField=!!this._formField,this.disabledInteractive=this._config?.disabledInteractive||!1,this._isNativeSelect&&(this.controlType=r.multiple?"mat-native-select-multiple":"mat-native-select"),this._signalBasedValueAccessor&&pa(()=>{this._signalBasedValueAccessor.value(),this.stateChanges.next()})}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(e=>{this.autofilled=e.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._cleanupIosKeyup?.(),this._cleanupWebkitWheel?.()}ngDoCheck(){this.ngControl&&(this.updateErrorState(),this.ngControl.disabled!==null&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(e){this._elementRef.nativeElement.focus(e)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(e){if(e!==this.focused){if(!this._isNativeSelect&&e&&this.disabled&&this.disabledInteractive){let i=this._elementRef.nativeElement;i.type==="number"?(i.type="text",i.setSelectionRange(0,0),i.type="number"):i.setSelectionRange(0,0)}this.focused=e,this.stateChanges.next()}}_onInput(){}_dirtyCheckNativeValue(){let e=this._elementRef.nativeElement.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())}_dirtyCheckPlaceholder(){let e=this._getPlaceholder();if(e!==this._previousPlaceholder){let i=this._elementRef.nativeElement;this._previousPlaceholder=e,e?i.setAttribute("placeholder",e):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){m5e.indexOf(this._type)>-1}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let e=this._elementRef.nativeElement.validity;return e&&e.badInput}get empty(){return!this._isNeverEmpty()&&!this._elementRef.nativeElement.value&&!this._isBadInput()&&!this.autofilled}get shouldLabelFloat(){if(this._isNativeSelect){let e=this._elementRef.nativeElement,i=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&i&&i.label)}else return this.focused&&!this.disabled||!this.empty}setDescribedByIds(e){let i=this._elementRef.nativeElement,n=i.getAttribute("aria-describedby"),o;if(n){let r=this._formFieldDescribedBy||e;o=e.concat(n.split(" ").filter(s=>s&&!r.includes(s)))}else o=e;this._formFieldDescribedBy=e,o.length?i.setAttribute("aria-describedby",o.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){let e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}_iOSKeyupListener=e=>{let i=e.target;!i.value&&i.selectionStart===0&&i.selectionEnd===0&&(i.setSelectionRange(1,1),i.setSelectionRange(0,0))};_webkitBlinkWheelListener=()=>{};_ensureWheelDefaultBehavior(){this._cleanupWebkitWheel?.(),this._type==="number"&&(this._platform.BLINK||this._platform.WEBKIT)&&(this._cleanupWebkitWheel=this._renderer.listen(this._elementRef.nativeElement,"wheel",this._webkitBlinkWheelListener))}_getReadonlyAttribute(){return this._isNativeSelect?null:this.readonly||this.disabled&&this.disabledInteractive?"true":null}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:21,hostBindings:function(i,n){i&1&&ee("focus",function(){return n._focusChanged(!0)})("blur",function(){return n._focusChanged(!1)})("input",function(){return n._onInput()}),i&2&&(ea("id",n.id)("disabled",n.disabled&&!n.disabledInteractive)("required",n.required),AA("name",n.name||null)("readonly",n._getReadonlyAttribute())("aria-disabled",n.disabled&&n.disabledInteractive?"true":null)("aria-invalid",n.empty&&n.required?null:n.errorState)("aria-required",n.required)("id",n.id),iA("mat-input-server",n._isServer)("mat-mdc-form-field-textarea-control",n._isInFormField&&n._isTextarea)("mat-mdc-form-field-input-control",n._isInFormField)("mat-mdc-input-disabled-interactive",n.disabledInteractive)("mdc-text-field__input",n._isInFormField)("mat-mdc-native-select-inline",n._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly",disabledInteractive:[2,"disabledInteractive","disabledInteractive",IA]},exportAs:["matInput"],features:[gt([{provide:V4,useExisting:t}]),ti]})}return t})(),L1=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({imports:[ui,gl,gl,YB,ui]})}return t})();var V5=new re(""),jN=(()=>{class t{_zone;_plugins;_eventNameToPlugin=new Map;constructor(e,i){this._zone=i,e.forEach(n=>{n.manager=this}),this._plugins=e.slice().reverse()}addEventListener(e,i,n,o){return this._findPluginFor(i).addEventListener(e,i,n,o)}getZone(){return this._zone}_findPluginFor(e){let i=this._eventNameToPlugin.get(e);if(i)return i;if(i=this._plugins.find(o=>o.supports(e)),!i)throw new lA(5101,!1);return this._eventNameToPlugin.set(e,i),i}static \u0275fac=function(i){return new(i||t)(UA(V5),UA(yA))};static \u0275prov=be({token:t,factory:t.\u0275fac})}return t})(),W4=class{_doc;constructor(A){this._doc=A}manager},P5="ng-app-id";function kX(t){for(let A of t)A.remove()}function xX(t,A){let e=A.createElement("style");return e.textContent=t,e}function w5e(t,A,e,i){let n=t.head?.querySelectorAll(`style[${P5}="${A}"],link[${P5}="${A}"]`);if(n)for(let o of n)o.removeAttribute(P5),o instanceof HTMLLinkElement?i.set(o.href.slice(o.href.lastIndexOf("/")+1),{usage:0,elements:[o]}):o.textContent&&e.set(o.textContent,{usage:0,elements:[o]})}function zN(t,A){let e=A.createElement("link");return e.setAttribute("rel","stylesheet"),e.setAttribute("href",t),e}var VN=(()=>{class t{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;isServer;constructor(e,i,n,o={}){this.doc=e,this.appId=i,this.nonce=n,this.isServer=t5(o),w5e(e,i,this.inline,this.external),this.hosts.add(e.head)}addStyles(e,i){for(let n of e)this.addUsage(n,this.inline,xX);i?.forEach(n=>this.addUsage(n,this.external,zN))}removeStyles(e,i){for(let n of e)this.removeUsage(n,this.inline);i?.forEach(n=>this.removeUsage(n,this.external))}addUsage(e,i,n){let o=i.get(e);o?o.usage++:i.set(e,{usage:1,elements:[...this.hosts].map(r=>this.addElement(r,n(e,this.doc)))})}removeUsage(e,i){let n=i.get(e);n&&(n.usage--,n.usage<=0&&(kX(n.elements),i.delete(e)))}ngOnDestroy(){for(let[,{elements:e}]of[...this.inline,...this.external])kX(e);this.hosts.clear()}addHost(e){this.hosts.add(e);for(let[i,{elements:n}]of this.inline)n.push(this.addElement(e,xX(i,this.doc)));for(let[i,{elements:n}]of this.external)n.push(this.addElement(e,zN(i,this.doc)))}removeHost(e){this.hosts.delete(e)}addElement(e,i){return this.nonce&&i.setAttribute("nonce",this.nonce),this.isServer&&i.setAttribute(P5,this.appId),e.appendChild(i)}static \u0275fac=function(i){return new(i||t)(UA(ht),UA(fB),UA(E4,8),UA(O0))};static \u0275prov=be({token:t,factory:t.\u0275fac})}return t})(),HN={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},qN=/%COMP%/g;var RX="%COMP%",y5e=`_nghost-${RX}`,D5e=`_ngcontent-${RX}`,v5e=!0,b5e=new re("",{providedIn:"root",factory:()=>v5e});function M5e(t){return D5e.replace(qN,t)}function S5e(t){return y5e.replace(qN,t)}function NX(t,A){return A.map(e=>e.replace(qN,t))}var $4=(()=>{class t{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;platformId;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;platformIsServer;constructor(e,i,n,o,r,s,a,c=null,l=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=n,this.removeStylesOnCompDestroy=o,this.doc=r,this.platformId=s,this.ngZone=a,this.nonce=c,this.tracingService=l,this.platformIsServer=t5(s),this.defaultRenderer=new Z4(e,r,a,this.platformIsServer,this.tracingService)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===L0.ShadowDom&&(i=_A(ae({},i),{encapsulation:L0.Emulated}));let n=this.getOrCreateRenderer(e,i);return n instanceof j5?n.applyToHost(e):n instanceof X4&&n.applyStyles(),n}getOrCreateRenderer(e,i){let n=this.rendererByCompId,o=n.get(i.id);if(!o){let r=this.doc,s=this.ngZone,a=this.eventManager,c=this.sharedStylesHost,l=this.removeStylesOnCompDestroy,d=this.platformIsServer,C=this.tracingService;switch(i.encapsulation){case L0.Emulated:o=new j5(a,c,i,this.appId,l,r,s,d,C);break;case L0.ShadowDom:return new PN(a,c,e,i,r,s,this.nonce,d,C);default:o=new X4(a,c,i,l,r,s,d,C);break}n.set(i.id,o)}return o}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(e){this.rendererByCompId.delete(e)}static \u0275fac=function(i){return new(i||t)(UA(jN),UA(VN),UA(fB),UA(b5e),UA(ht),UA(O0),UA(yA),UA(E4),UA(QB,8))};static \u0275prov=be({token:t,factory:t.\u0275fac})}return t})(),Z4=class{eventManager;doc;ngZone;platformIsServer;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(A,e,i,n,o){this.eventManager=A,this.doc=e,this.ngZone=i,this.platformIsServer=n,this.tracingService=o}destroy(){}destroyNode=null;createElement(A,e){return e?this.doc.createElementNS(HN[e]||e,A):this.doc.createElement(A)}createComment(A){return this.doc.createComment(A)}createText(A){return this.doc.createTextNode(A)}appendChild(A,e){(_X(A)?A.content:A).appendChild(e)}insertBefore(A,e,i){A&&(_X(A)?A.content:A).insertBefore(e,i)}removeChild(A,e){e.remove()}selectRootElement(A,e){let i=typeof A=="string"?this.doc.querySelector(A):A;if(!i)throw new lA(-5104,!1);return e||(i.textContent=""),i}parentNode(A){return A.parentNode}nextSibling(A){return A.nextSibling}setAttribute(A,e,i,n){if(n){e=n+":"+e;let o=HN[n];o?A.setAttributeNS(o,e,i):A.setAttribute(e,i)}else A.setAttribute(e,i)}removeAttribute(A,e,i){if(i){let n=HN[i];n?A.removeAttributeNS(n,e):A.removeAttribute(`${i}:${e}`)}else A.removeAttribute(e)}addClass(A,e){A.classList.add(e)}removeClass(A,e){A.classList.remove(e)}setStyle(A,e,i,n){n&(F0.DashCase|F0.Important)?A.style.setProperty(e,i,n&F0.Important?"important":""):A.style[e]=i}removeStyle(A,e,i){i&F0.DashCase?A.style.removeProperty(e):A.style[e]=""}setProperty(A,e,i){A!=null&&(A[e]=i)}setValue(A,e){A.nodeValue=e}listen(A,e,i,n){if(typeof A=="string"&&(A=il().getGlobalEventTarget(this.doc,A),!A))throw new lA(5102,!1);let o=this.decoratePreventDefault(i);return this.tracingService?.wrapEventListener&&(o=this.tracingService.wrapEventListener(A,e,o)),this.eventManager.addEventListener(A,e,o,n)}decoratePreventDefault(A){return e=>{if(e==="__ngUnwrap__")return A;(this.platformIsServer?this.ngZone.runGuarded(()=>A(e)):A(e))===!1&&e.preventDefault()}}};function _X(t){return t.tagName==="TEMPLATE"&&t.content!==void 0}var PN=class extends Z4{sharedStylesHost;hostEl;shadowRoot;constructor(A,e,i,n,o,r,s,a,c){super(A,o,r,a,c),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);let l=n.styles;l=NX(n.id,l);for(let C of l){let I=document.createElement("style");s&&I.setAttribute("nonce",s),I.textContent=C,this.shadowRoot.appendChild(I)}let d=n.getExternalStyles?.();if(d)for(let C of d){let I=zN(C,o);s&&I.setAttribute("nonce",s),this.shadowRoot.appendChild(I)}}nodeOrShadowRoot(A){return A===this.hostEl?this.shadowRoot:A}appendChild(A,e){return super.appendChild(this.nodeOrShadowRoot(A),e)}insertBefore(A,e,i){return super.insertBefore(this.nodeOrShadowRoot(A),e,i)}removeChild(A,e){return super.removeChild(null,e)}parentNode(A){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(A)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}},X4=class extends Z4{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(A,e,i,n,o,r,s,a,c){super(A,o,r,s,a),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=n;let l=i.styles;this.styles=c?NX(c,l):l,this.styleUrls=i.getExternalStyles?.(c)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},j5=class extends X4{contentAttr;hostAttr;constructor(A,e,i,n,o,r,s,a,c){let l=n+"-"+i.id;super(A,e,i,o,r,s,a,c,l),this.contentAttr=M5e(l),this.hostAttr=S5e(l)}applyToHost(A){this.applyStyles(),this.setAttribute(A,this.hostAttr,"")}createElement(A,e){let i=super.createElement(A,e);return super.setAttribute(i,this.contentAttr,""),i}};var q5=class t extends M4{supportsDOMEvents=!0;static makeCurrent(){LR(new t)}onAndCancel(A,e,i,n){return A.addEventListener(e,i,n),()=>{A.removeEventListener(e,i,n)}}dispatchEvent(A,e){A.dispatchEvent(e)}remove(A){A.remove()}createElement(A,e){return e=e||this.getDefaultDocument(),e.createElement(A)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(A){return A.nodeType===Node.ELEMENT_NODE}isShadowRoot(A){return A instanceof DocumentFragment}getGlobalEventTarget(A,e){return e==="window"?window:e==="document"?A:e==="body"?A.body:null}getBaseHref(A){let e=k5e();return e==null?null:x5e(e)}resetBaseElement(){em=null}getUserAgent(){return window.navigator.userAgent}getCookie(A){return k4(document.cookie,A)}},em=null;function k5e(){return em=em||document.head.querySelector("base"),em?em.getAttribute("href"):null}function x5e(t){return new URL(t,document.baseURI).pathname}var W5=class{addToWindow(A){Xc.getAngularTestability=(i,n=!0)=>{let o=A.findTestabilityInTree(i,n);if(o==null)throw new lA(5103,!1);return o},Xc.getAllAngularTestabilities=()=>A.getAllTestabilities(),Xc.getAllAngularRootElements=()=>A.getAllRootElements();let e=i=>{let n=Xc.getAllAngularTestabilities(),o=n.length,r=function(){o--,o==0&&i()};n.forEach(s=>{s.whenStable(r)})};Xc.frameworkStabilizers||(Xc.frameworkStabilizers=[]),Xc.frameworkStabilizers.push(e)}findTestabilityInTree(A,e,i){if(e==null)return null;let n=A.getTestability(e);return n??(i?il().isShadowRoot(e)?this.findTestabilityInTree(A,e.host,!0):this.findTestabilityInTree(A,e.parentElement,!0):null)}},_5e=(()=>{class t{build(){return new XMLHttpRequest}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac})}return t})(),FX=(()=>{class t extends W4{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,n,o){return e.addEventListener(i,n,o),()=>this.removeEventListener(e,i,n,o)}removeEventListener(e,i,n,o){return e.removeEventListener(i,n,o)}static \u0275fac=function(i){return new(i||t)(UA(ht))};static \u0275prov=be({token:t,factory:t.\u0275fac})}return t})(),LX=["alt","control","meta","shift"],R5e={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},N5e={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey},GX=(()=>{class t extends W4{constructor(e){super(e)}supports(e){return t.parseEventName(e)!=null}addEventListener(e,i,n,o){let r=t.parseEventName(i),s=t.eventCallback(r.fullKey,n,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>il().onAndCancel(e,r.domEventName,s,o))}static parseEventName(e){let i=e.toLowerCase().split("."),n=i.shift();if(i.length===0||!(n==="keydown"||n==="keyup"))return null;let o=t._normalizeKey(i.pop()),r="",s=i.indexOf("code");if(s>-1&&(i.splice(s,1),r="code."),LX.forEach(c=>{let l=i.indexOf(c);l>-1&&(i.splice(l,1),r+=c+".")}),r+=o,i.length!=0||o.length===0)return null;let a={};return a.domEventName=n,a.fullKey=r,a}static matchEventFullKeyCode(e,i){let n=R5e[e.key]||e.key,o="";return i.indexOf("code.")>-1&&(n=e.code,o="code."),n==null||!n?!1:(n=n.toLowerCase(),n===" "?n="space":n==="."&&(n="dot"),LX.forEach(r=>{if(r!==n){let s=N5e[r];s(e)&&(o+=r+".")}}),o+=n,o===i)}static eventCallback(e,i,n){return o=>{t.matchEventFullKeyCode(o,e)&&n.runGuarded(()=>i(o))}}static _normalizeKey(e){return e==="esc"?"escape":e}static \u0275fac=function(i){return new(i||t)(UA(ht))};static \u0275prov=be({token:t,factory:t.\u0275fac})}return t})();function WN(t,A,e){return RW(ae({rootComponent:t,platformRef:e?.platformRef},L5e(A)))}function L5e(t){return{appProviders:[...KX,...t?.providers??[]],platformProviders:U5e}}function F5e(){q5.makeCurrent()}function G5e(){return new Va}function K5e(){return PV(document),document}var U5e=[{provide:O0,useValue:A5},{provide:X_,useValue:F5e,multi:!0},{provide:ht,useFactory:K5e}];var T5e=[{provide:D4,useClass:W5},{provide:yR,useClass:zw,deps:[yA,Pw,D4]},{provide:zw,useClass:zw,deps:[yA,Pw,D4]}],KX=[{provide:Dw,useValue:"root"},{provide:Va,useFactory:G5e},{provide:V5,useClass:FX,multi:!0,deps:[ht]},{provide:V5,useClass:GX,multi:!0,deps:[ht]},$4,VN,jN,{provide:fa,useExisting:$4},{provide:zI,useClass:_5e},[]],ZN=(()=>{class t{constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({providers:[...KX,...T5e],imports:[Ur,_W]})}return t})();var UX=(()=>{class t{_doc;constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}static \u0275fac=function(i){return new(i||t)(UA(ht))};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var dl=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:function(i){let n=null;return i?n=new(i||t):n=UA(O5e),n},providedIn:"root"})}return t})(),O5e=(()=>{class t extends dl{_doc;constructor(e){super(),this._doc=e}sanitize(e,i){if(i==null)return null;switch(e){case Ls.NONE:return i;case Ls.HTML:return D1(i,"HTML")?Ll(i):tR(this._doc,String(i)).toString();case Ls.STYLE:return D1(i,"Style")?Ll(i):i;case Ls.SCRIPT:if(D1(i,"Script"))return Ll(i);throw new lA(5200,!1);case Ls.URL:return D1(i,"URL")?Ll(i):Lw(String(i));case Ls.RESOURCE_URL:if(D1(i,"ResourceURL"))return Ll(i);throw new lA(5201,!1);default:throw new lA(5202,!1)}}bypassSecurityTrustHtml(e){return $V(e)}bypassSecurityTrustStyle(e){return eq(e)}bypassSecurityTrustScript(e){return Aq(e)}bypassSecurityTrustUrl(e){return tq(e)}bypassSecurityTrustResourceUrl(e){return iq(e)}static \u0275fac=function(i){return new(i||t)(UA(ht))};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function TX(t){return new lA(3e3,!1)}function J5e(){return new lA(3100,!1)}function Y5e(){return new lA(3101,!1)}function H5e(t){return new lA(3001,!1)}function z5e(t){return new lA(3003,!1)}function P5e(t){return new lA(3004,!1)}function JX(t,A){return new lA(3005,!1)}function YX(){return new lA(3006,!1)}function HX(){return new lA(3007,!1)}function zX(t,A){return new lA(3008,!1)}function PX(t){return new lA(3002,!1)}function jX(t,A,e,i,n){return new lA(3010,!1)}function VX(){return new lA(3011,!1)}function qX(){return new lA(3012,!1)}function WX(){return new lA(3200,!1)}function ZX(){return new lA(3202,!1)}function XX(){return new lA(3013,!1)}function $X(t){return new lA(3014,!1)}function e$(t){return new lA(3015,!1)}function A$(t){return new lA(3016,!1)}function t$(t,A){return new lA(3404,!1)}function j5e(t){return new lA(3502,!1)}function i$(t){return new lA(3503,!1)}function n$(){return new lA(3300,!1)}function o$(t){return new lA(3504,!1)}function r$(t){return new lA(3301,!1)}function s$(t,A){return new lA(3302,!1)}function a$(t){return new lA(3303,!1)}function c$(t,A){return new lA(3400,!1)}function l$(t){return new lA(3401,!1)}function g$(t){return new lA(3402,!1)}function d$(t,A){return new lA(3505,!1)}function u2(t){switch(t.length){case 0:return new V0;case 1:return t[0];default:return new iu(t)}}function AL(t,A,e=new Map,i=new Map){let n=[],o=[],r=-1,s=null;if(A.forEach(a=>{let c=a.get("offset"),l=c==r,d=l&&s||new Map;a.forEach((C,I)=>{let u=I,h=C;if(I!=="offset")switch(u=t.normalizePropertyName(u,n),h){case OB:h=e.get(I);break;case Kl:h=i.get(I);break;default:h=t.normalizeStyleValue(I,u,h,n);break}d.set(u,h)}),l||o.push(d),s=d,r=c}),n.length)throw j5e(n);return o}function Z5(t,A,e,i){switch(A){case"start":t.onStart(()=>i(e&&XN(e,"start",t)));break;case"done":t.onDone(()=>i(e&&XN(e,"done",t)));break;case"destroy":t.onDestroy(()=>i(e&&XN(e,"destroy",t)));break}}function XN(t,A,e){let i=e.totalTime,n=!!e.disabled,o=X5(t.element,t.triggerName,t.fromState,t.toState,A||t.phaseName,i??t.totalTime,n),r=t._data;return r!=null&&(o._data=r),o}function X5(t,A,e,i,n="",o=0,r){return{element:t,triggerName:A,fromState:e,toState:i,phaseName:n,totalTime:o,disabled:!!r}}function yc(t,A,e){let i=t.get(A);return i||t.set(A,i=e),i}function tL(t){let A=t.indexOf(":"),e=t.substring(1,A),i=t.slice(A+1);return[e,i]}var V5e=typeof document>"u"?null:document.documentElement;function $5(t){let A=t.parentNode||t.host||null;return A===V5e?null:A}function q5e(t){return t.substring(1,6)=="ebkit"}var nu=null,OX=!1;function C$(t){nu||(nu=W5e()||{},OX=nu.style?"WebkitAppearance"in nu.style:!1);let A=!0;return nu.style&&!q5e(t)&&(A=t in nu.style,!A&&OX&&(A="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in nu.style)),A}function W5e(){return typeof document<"u"?document.body:null}function iL(t,A){for(;A;){if(A===t)return!0;A=$5(A)}return!1}function nL(t,A,e){if(e)return Array.from(t.querySelectorAll(A));let i=t.querySelector(A);return i?[i]:[]}var Z5e=1e3,oL="{{",X5e="}}",rL="ng-enter",ey="ng-leave",tm="ng-trigger",im=".ng-trigger",sL="ng-animating",Ay=".ng-animating";function W0(t){if(typeof t=="number")return t;let A=t.match(/^(-?[\.\d]+)(m?s)/);return!A||A.length<2?0:$N(parseFloat(A[1]),A[2])}function $N(t,A){switch(A){case"s":return t*Z5e;default:return t}}function nm(t,A,e){return t.hasOwnProperty("duration")?t:$5e(t,A,e)}function $5e(t,A,e){let i=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,n,o=0,r="";if(typeof t=="string"){let s=t.match(i);if(s===null)return A.push(TX(t)),{duration:0,delay:0,easing:""};n=$N(parseFloat(s[1]),s[2]);let a=s[3];a!=null&&(o=$N(parseFloat(a),s[4]));let c=s[5];c&&(r=c)}else n=t;if(!e){let s=!1,a=A.length;n<0&&(A.push(J5e()),s=!0),o<0&&(A.push(Y5e()),s=!0),s&&A.splice(a,0,TX(t))}return{duration:n,delay:o,easing:r}}function I$(t){return t.length?t[0]instanceof Map?t:t.map(A=>new Map(Object.entries(A))):[]}function Sg(t,A,e){A.forEach((i,n)=>{let o=ty(n);e&&!e.has(n)&&e.set(n,t.style[o]),t.style[o]=i})}function F1(t,A){A.forEach((e,i)=>{let n=ty(i);t.style[n]=""})}function HB(t){return Array.isArray(t)?t.length==1?t[0]:IX(t):t}function u$(t,A,e){let i=A.params||{},n=aL(t);n.length&&n.forEach(o=>{i.hasOwnProperty(o)||e.push(H5e(o))})}var eL=new RegExp(`${oL}\\s*(.+?)\\s*${X5e}`,"g");function aL(t){let A=[];if(typeof t=="string"){let e;for(;e=eL.exec(t);)A.push(e[1]);eL.lastIndex=0}return A}function zB(t,A,e){let i=`${t}`,n=i.replace(eL,(o,r)=>{let s=A[r];return s==null&&(e.push(z5e(r)),s=""),s.toString()});return n==i?t:n}var eye=/-+([a-z0-9])/g;function ty(t){return t.replace(eye,(...A)=>A[1].toUpperCase())}function h$(t,A){return t===0||A===0}function B$(t,A,e){if(e.size&&A.length){let i=A[0],n=[];if(e.forEach((o,r)=>{i.has(r)||n.push(r),i.set(r,o)}),n.length)for(let o=1;or.set(s,iy(t,s)))}}return A}function Dc(t,A,e){switch(A.type){case pi.Trigger:return t.visitTrigger(A,e);case pi.State:return t.visitState(A,e);case pi.Transition:return t.visitTransition(A,e);case pi.Sequence:return t.visitSequence(A,e);case pi.Group:return t.visitGroup(A,e);case pi.Animate:return t.visitAnimate(A,e);case pi.Keyframes:return t.visitKeyframes(A,e);case pi.Style:return t.visitStyle(A,e);case pi.Reference:return t.visitReference(A,e);case pi.AnimateChild:return t.visitAnimateChild(A,e);case pi.AnimateRef:return t.visitAnimateRef(A,e);case pi.Query:return t.visitQuery(A,e);case pi.Stagger:return t.visitStagger(A,e);default:throw P5e(A.type)}}function iy(t,A){return window.getComputedStyle(t)[A]}var DL=(()=>{class t{validateStyleProperty(e){return C$(e)}containsElement(e,i){return iL(e,i)}getParentElement(e){return $5(e)}query(e,i,n){return nL(e,i,n)}computeStyle(e,i,n){return n||""}animate(e,i,n,o,r,s=[],a){return new V0(n,o)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac})}return t})(),ru=class{static NOOP=new DL},su=class{};var Aye=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),ay=class extends su{normalizePropertyName(A,e){return ty(A)}normalizeStyleValue(A,e,i,n){let o="",r=i.toString().trim();if(Aye.has(e)&&i!==0&&i!=="0")if(typeof i=="number")o="px";else{let s=i.match(/^[+-]?[\d\.]+([a-z]*)$/);s&&s[1].length==0&&n.push(JX(A,i))}return r+o}};var cy="*";function tye(t,A){let e=[];return typeof t=="string"?t.split(/\s*,\s*/).forEach(i=>iye(i,e,A)):e.push(t),e}function iye(t,A,e){if(t[0]==":"){let a=nye(t,e);if(typeof a=="function"){A.push(a);return}t=a}let i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(i==null||i.length<4)return e.push(e$(t)),A;let n=i[1],o=i[2],r=i[3];A.push(E$(n,r));let s=n==cy&&r==cy;o[0]=="<"&&!s&&A.push(E$(r,n))}function nye(t,A){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}var ny=new Set(["true","1"]),oy=new Set(["false","0"]);function E$(t,A){let e=ny.has(t)||oy.has(t),i=ny.has(A)||oy.has(A);return(n,o)=>{let r=t==cy||t==n,s=A==cy||A==o;return!r&&e&&typeof n=="boolean"&&(r=n?ny.has(t):oy.has(t)),!s&&i&&typeof o=="boolean"&&(s=o?ny.has(A):oy.has(A)),r&&s}}var M$=":self",oye=new RegExp(`s*${M$}s*,?`,"g");function S$(t,A,e,i){return new IL(t).build(A,e,i)}var f$="",IL=class{_driver;constructor(A){this._driver=A}build(A,e,i){let n=new uL(e);return this._resetContextStyleTimingState(n),Dc(this,HB(A),n)}_resetContextStyleTimingState(A){A.currentQuerySelector=f$,A.collectedStyles=new Map,A.collectedStyles.set(f$,new Map),A.currentTime=0}visitTrigger(A,e){let i=e.queryCount=0,n=e.depCount=0,o=[],r=[];return A.name.charAt(0)=="@"&&e.errors.push(YX()),A.definitions.forEach(s=>{if(this._resetContextStyleTimingState(e),s.type==pi.State){let a=s,c=a.name;c.toString().split(/\s*,\s*/).forEach(l=>{a.name=l,o.push(this.visitState(a,e))}),a.name=c}else if(s.type==pi.Transition){let a=this.visitTransition(s,e);i+=a.queryCount,n+=a.depCount,r.push(a)}else e.errors.push(HX())}),{type:pi.Trigger,name:A.name,states:o,transitions:r,queryCount:i,depCount:n,options:null}}visitState(A,e){let i=this.visitStyle(A.styles,e),n=A.options&&A.options.params||null;if(i.containsDynamicStyles){let o=new Set,r=n||{};i.styles.forEach(s=>{s instanceof Map&&s.forEach(a=>{aL(a).forEach(c=>{r.hasOwnProperty(c)||o.add(c)})})}),o.size&&e.errors.push(zX(A.name,[...o.values()]))}return{type:pi.State,name:A.name,style:i,options:n?{params:n}:null}}visitTransition(A,e){e.queryCount=0,e.depCount=0;let i=Dc(this,HB(A.animation),e),n=tye(A.expr,e.errors);return{type:pi.Transition,matchers:n,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:ou(A.options)}}visitSequence(A,e){return{type:pi.Sequence,steps:A.steps.map(i=>Dc(this,i,e)),options:ou(A.options)}}visitGroup(A,e){let i=e.currentTime,n=0,o=A.steps.map(r=>{e.currentTime=i;let s=Dc(this,r,e);return n=Math.max(n,e.currentTime),s});return e.currentTime=n,{type:pi.Group,steps:o,options:ou(A.options)}}visitAnimate(A,e){let i=cye(A.timings,e.errors);e.currentAnimateTimings=i;let n,o=A.styles?A.styles:Vo({});if(o.type==pi.Keyframes)n=this.visitKeyframes(o,e);else{let r=A.styles,s=!1;if(!r){s=!0;let c={};i.easing&&(c.easing=i.easing),r=Vo(c)}e.currentTime+=i.duration+i.delay;let a=this.visitStyle(r,e);a.isEmptyStep=s,n=a}return e.currentAnimateTimings=null,{type:pi.Animate,timings:i,style:n,options:null}}visitStyle(A,e){let i=this._makeStyleAst(A,e);return this._validateStyleAst(i,e),i}_makeStyleAst(A,e){let i=[],n=Array.isArray(A.styles)?A.styles:[A.styles];for(let s of n)typeof s=="string"?s===Kl?i.push(s):e.errors.push(PX(s)):i.push(new Map(Object.entries(s)));let o=!1,r=null;return i.forEach(s=>{if(s instanceof Map&&(s.has("easing")&&(r=s.get("easing"),s.delete("easing")),!o)){for(let a of s.values())if(a.toString().indexOf(oL)>=0){o=!0;break}}}),{type:pi.Style,styles:i,easing:r,offset:A.offset,containsDynamicStyles:o,options:null}}_validateStyleAst(A,e){let i=e.currentAnimateTimings,n=e.currentTime,o=e.currentTime;i&&o>0&&(o-=i.duration+i.delay),A.styles.forEach(r=>{typeof r!="string"&&r.forEach((s,a)=>{let c=e.collectedStyles.get(e.currentQuerySelector),l=c.get(a),d=!0;l&&(o!=n&&o>=l.startTime&&n<=l.endTime&&(e.errors.push(jX(a,l.startTime,l.endTime,o,n)),d=!1),o=l.startTime),d&&c.set(a,{startTime:o,endTime:n}),e.options&&u$(s,e.options,e.errors)})})}visitKeyframes(A,e){let i={type:pi.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(VX()),i;let n=1,o=0,r=[],s=!1,a=!1,c=0,l=A.steps.map(f=>{let b=this._makeStyleAst(f,e),k=b.offset!=null?b.offset:aye(b.styles),S=0;return k!=null&&(o++,S=b.offset=k),a=a||S<0||S>1,s=s||S0&&o{let k=C>0?b==I?1:C*b:r[b],S=k*B;e.currentTime=u+h.delay+S,h.duration=S,this._validateStyleAst(f,e),f.offset=k,i.styles.push(f)}),i}visitReference(A,e){return{type:pi.Reference,animation:Dc(this,HB(A.animation),e),options:ou(A.options)}}visitAnimateChild(A,e){return e.depCount++,{type:pi.AnimateChild,options:ou(A.options)}}visitAnimateRef(A,e){return{type:pi.AnimateRef,animation:this.visitReference(A.animation,e),options:ou(A.options)}}visitQuery(A,e){let i=e.currentQuerySelector,n=A.options||{};e.queryCount++,e.currentQuery=A;let[o,r]=rye(A.selector);e.currentQuerySelector=i.length?i+" "+o:o,yc(e.collectedStyles,e.currentQuerySelector,new Map);let s=Dc(this,HB(A.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:pi.Query,selector:o,limit:n.limit||0,optional:!!n.optional,includeSelf:r,animation:s,originalSelector:A.selector,options:ou(A.options)}}visitStagger(A,e){e.currentQuery||e.errors.push(XX());let i=A.timings==="full"?{duration:0,delay:0,easing:"full"}:nm(A.timings,e.errors,!0);return{type:pi.Stagger,animation:Dc(this,HB(A.animation),e),timings:i,options:null}}};function rye(t){let A=!!t.split(/\s*,\s*/).find(e=>e==M$);return A&&(t=t.replace(oye,"")),t=t.replace(/@\*/g,im).replace(/@\w+/g,e=>im+"-"+e.slice(1)).replace(/:animating/g,Ay),[t,A]}function sye(t){return t?ae({},t):null}var uL=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(A){this.errors=A}};function aye(t){if(typeof t=="string")return null;let A=null;if(Array.isArray(t))t.forEach(e=>{if(e instanceof Map&&e.has("offset")){let i=e;A=parseFloat(i.get("offset")),i.delete("offset")}});else if(t instanceof Map&&t.has("offset")){let e=t;A=parseFloat(e.get("offset")),e.delete("offset")}return A}function cye(t,A){if(t.hasOwnProperty("duration"))return t;if(typeof t=="number"){let o=nm(t,A).duration;return cL(o,0,"")}let e=t;if(e.split(/\s+/).some(o=>o.charAt(0)=="{"&&o.charAt(1)=="{")){let o=cL(0,0,"");return o.dynamic=!0,o.strValue=e,o}let n=nm(e,A);return cL(n.duration,n.delay,n.easing)}function ou(t){return t?(t=ae({},t),t.params&&(t.params=sye(t.params))):t={},t}function cL(t,A,e){return{duration:t,delay:A,easing:e}}function vL(t,A,e,i,n,o,r=null,s=!1){return{type:1,element:t,keyframes:A,preStyleProps:e,postStyleProps:i,duration:n,delay:o,totalTime:n+o,easing:r,subTimeline:s}}var rm=class{_map=new Map;get(A){return this._map.get(A)||[]}append(A,e){let i=this._map.get(A);i||this._map.set(A,i=[]),i.push(...e)}has(A){return this._map.has(A)}clear(){this._map.clear()}},lye=1,gye=":enter",dye=new RegExp(gye,"g"),Cye=":leave",Iye=new RegExp(Cye,"g");function k$(t,A,e,i,n,o=new Map,r=new Map,s,a,c=[]){return new hL().buildKeyframes(t,A,e,i,n,o,r,s,a,c)}var hL=class{buildKeyframes(A,e,i,n,o,r,s,a,c,l=[]){c=c||new rm;let d=new BL(A,e,c,n,o,l,[]);d.options=a;let C=a.delay?W0(a.delay):0;d.currentTimeline.delayNextStep(C),d.currentTimeline.setStyles([r],null,d.errors,a),Dc(this,i,d);let I=d.timelines.filter(u=>u.containsAnimation());if(I.length&&s.size){let u;for(let h=I.length-1;h>=0;h--){let B=I[h];if(B.element===e){u=B;break}}u&&!u.allowOnlyTimelineStyles()&&u.setStyles([s],null,d.errors,a)}return I.length?I.map(u=>u.buildKeyframes()):[vL(e,[],[],[],0,C,"",!1)]}visitTrigger(A,e){}visitState(A,e){}visitTransition(A,e){}visitAnimateChild(A,e){let i=e.subInstructions.get(e.element);if(i){let n=e.createSubContext(A.options),o=e.currentTimeline.currentTime,r=this._visitSubInstructions(i,n,n.options);o!=r&&e.transformIntoNewTimeline(r)}e.previousNode=A}visitAnimateRef(A,e){let i=e.createSubContext(A.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([A.options,A.animation.options],e,i),this.visitReference(A.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=A}_applyAnimationRefDelays(A,e,i){for(let n of A){let o=n?.delay;if(o){let r=typeof o=="number"?o:W0(zB(o,n?.params??{},e.errors));i.delayNextStep(r)}}}_visitSubInstructions(A,e,i){let o=e.currentTimeline.currentTime,r=i.duration!=null?W0(i.duration):null,s=i.delay!=null?W0(i.delay):null;return r!==0&&A.forEach(a=>{let c=e.appendInstructionToTimeline(a,r,s);o=Math.max(o,c.duration+c.delay)}),o}visitReference(A,e){e.updateOptions(A.options,!0),Dc(this,A.animation,e),e.previousNode=A}visitSequence(A,e){let i=e.subContextCount,n=e,o=A.options;if(o&&(o.params||o.delay)&&(n=e.createSubContext(o),n.transformIntoNewTimeline(),o.delay!=null)){n.previousNode.type==pi.Style&&(n.currentTimeline.snapshotCurrentStyles(),n.previousNode=ly);let r=W0(o.delay);n.delayNextStep(r)}A.steps.length&&(A.steps.forEach(r=>Dc(this,r,n)),n.currentTimeline.applyStylesToKeyframe(),n.subContextCount>i&&n.transformIntoNewTimeline()),e.previousNode=A}visitGroup(A,e){let i=[],n=e.currentTimeline.currentTime,o=A.options&&A.options.delay?W0(A.options.delay):0;A.steps.forEach(r=>{let s=e.createSubContext(A.options);o&&s.delayNextStep(o),Dc(this,r,s),n=Math.max(n,s.currentTimeline.currentTime),i.push(s.currentTimeline)}),i.forEach(r=>e.currentTimeline.mergeTimelineCollectedStyles(r)),e.transformIntoNewTimeline(n),e.previousNode=A}_visitTiming(A,e){if(A.dynamic){let i=A.strValue,n=e.params?zB(i,e.params,e.errors):i;return nm(n,e.errors)}else return{duration:A.duration,delay:A.delay,easing:A.easing}}visitAnimate(A,e){let i=e.currentAnimateTimings=this._visitTiming(A.timings,e),n=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),n.snapshotCurrentStyles());let o=A.style;o.type==pi.Keyframes?this.visitKeyframes(o,e):(e.incrementTime(i.duration),this.visitStyle(o,e),n.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=A}visitStyle(A,e){let i=e.currentTimeline,n=e.currentAnimateTimings;!n&&i.hasCurrentStyleProperties()&&i.forwardFrame();let o=n&&n.easing||A.easing;A.isEmptyStep?i.applyEmptyStep(o):i.setStyles(A.styles,o,e.errors,e.options),e.previousNode=A}visitKeyframes(A,e){let i=e.currentAnimateTimings,n=e.currentTimeline.duration,o=i.duration,s=e.createSubContext().currentTimeline;s.easing=i.easing,A.styles.forEach(a=>{let c=a.offset||0;s.forwardTime(c*o),s.setStyles(a.styles,a.easing,e.errors,e.options),s.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(s),e.transformIntoNewTimeline(n+o),e.previousNode=A}visitQuery(A,e){let i=e.currentTimeline.currentTime,n=A.options||{},o=n.delay?W0(n.delay):0;o&&(e.previousNode.type===pi.Style||i==0&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=ly);let r=i,s=e.invokeQuery(A.selector,A.originalSelector,A.limit,A.includeSelf,!!n.optional,e.errors);e.currentQueryTotal=s.length;let a=null;s.forEach((c,l)=>{e.currentQueryIndex=l;let d=e.createSubContext(A.options,c);o&&d.delayNextStep(o),c===e.element&&(a=d.currentTimeline),Dc(this,A.animation,d),d.currentTimeline.applyStylesToKeyframe();let C=d.currentTimeline.currentTime;r=Math.max(r,C)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(r),a&&(e.currentTimeline.mergeTimelineCollectedStyles(a),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=A}visitStagger(A,e){let i=e.parentContext,n=e.currentTimeline,o=A.timings,r=Math.abs(o.duration),s=r*(e.currentQueryTotal-1),a=r*e.currentQueryIndex;switch(o.duration<0?"reverse":o.easing){case"reverse":a=s-a;break;case"full":a=i.currentStaggerTime;break}let l=e.currentTimeline;a&&l.delayNextStep(a);let d=l.currentTime;Dc(this,A.animation,e),e.previousNode=A,i.currentStaggerTime=n.currentTime-d+(n.startTime-i.currentTimeline.startTime)}},ly={},BL=class t{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=ly;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(A,e,i,n,o,r,s,a){this._driver=A,this.element=e,this.subInstructions=i,this._enterClassName=n,this._leaveClassName=o,this.errors=r,this.timelines=s,this.currentTimeline=a||new gy(this._driver,e,0),s.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(A,e){if(!A)return;let i=A,n=this.options;i.duration!=null&&(n.duration=W0(i.duration)),i.delay!=null&&(n.delay=W0(i.delay));let o=i.params;if(o){let r=n.params;r||(r=this.options.params={}),Object.keys(o).forEach(s=>{(!e||!r.hasOwnProperty(s))&&(r[s]=zB(o[s],r,this.errors))})}}_copyOptions(){let A={};if(this.options){let e=this.options.params;if(e){let i=A.params={};Object.keys(e).forEach(n=>{i[n]=e[n]})}}return A}createSubContext(A=null,e,i){let n=e||this.element,o=new t(this._driver,n,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(n,i||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(A),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o}transformIntoNewTimeline(A){return this.previousNode=ly,this.currentTimeline=this.currentTimeline.fork(this.element,A),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(A,e,i){let n={duration:e??A.duration,delay:this.currentTimeline.currentTime+(i??0)+A.delay,easing:""},o=new EL(this._driver,A.element,A.keyframes,A.preStyleProps,A.postStyleProps,n,A.stretchStartingKeyframe);return this.timelines.push(o),n}incrementTime(A){this.currentTimeline.forwardTime(this.currentTimeline.duration+A)}delayNextStep(A){A>0&&this.currentTimeline.delayNextStep(A)}invokeQuery(A,e,i,n,o,r){let s=[];if(n&&s.push(this.element),A.length>0){A=A.replace(dye,"."+this._enterClassName),A=A.replace(Iye,"."+this._leaveClassName);let a=i!=1,c=this._driver.query(this.element,A,a);i!==0&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),s.push(...c)}return!o&&s.length==0&&r.push($X(e)),s}},gy=class t{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(A,e,i,n){this._driver=A,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=n,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(A){let e=this._keyframes.size===1&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+A),e&&this.snapshotCurrentStyles()):this.startTime+=A}fork(A,e){return this.applyStylesToKeyframe(),new t(this._driver,A,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=lye,this._loadKeyframe()}forwardTime(A){this.applyStylesToKeyframe(),this.duration=A,this._loadKeyframe()}_updateStyle(A,e){this._localTimelineStyles.set(A,e),this._globalTimelineStyles.set(A,e),this._styleSummary.set(A,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(A){A&&this._previousKeyframe.set("easing",A);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||Kl),this._currentKeyframe.set(e,Kl);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(A,e,i,n){e&&this._previousKeyframe.set("easing",e);let o=n&&n.params||{},r=uye(A,this._globalTimelineStyles);for(let[s,a]of r){let c=zB(a,o,i);this._pendingStyles.set(s,c),this._localTimelineStyles.has(s)||this._backFill.set(s,this._globalTimelineStyles.get(s)??Kl),this._updateStyle(s,c)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((A,e)=>{this._currentKeyframe.set(e,A)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((A,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,A)}))}snapshotCurrentStyles(){for(let[A,e]of this._localTimelineStyles)this._pendingStyles.set(A,e),this._updateStyle(A,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let A=[];for(let e in this._currentKeyframe)A.push(e);return A}mergeTimelineCollectedStyles(A){A._styleSummary.forEach((e,i)=>{let n=this._styleSummary.get(i);(!n||e.time>n.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();let A=new Set,e=new Set,i=this._keyframes.size===1&&this.duration===0,n=[];this._keyframes.forEach((s,a)=>{let c=new Map([...this._backFill,...s]);c.forEach((l,d)=>{l===OB?A.add(d):l===Kl&&e.add(d)}),i||c.set("offset",a/this.duration),n.push(c)});let o=[...A.values()],r=[...e.values()];if(i){let s=n[0],a=new Map(s);s.set("offset",0),a.set("offset",1),n=[s,a]}return vL(this.element,n,o,r,this.duration,this.startTime,this.easing,!1)}},EL=class extends gy{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(A,e,i,n,o,r,s=!1){super(A,e,r.delay),this.keyframes=i,this.preStyleProps=n,this.postStyleProps=o,this._stretchStartingKeyframe=s,this.timings={duration:r.duration,delay:r.delay,easing:r.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let A=this.keyframes,{delay:e,duration:i,easing:n}=this.timings;if(this._stretchStartingKeyframe&&e){let o=[],r=i+e,s=e/r,a=new Map(A[0]);a.set("offset",0),o.push(a);let c=new Map(A[0]);c.set("offset",Q$(s)),o.push(c);let l=A.length-1;for(let d=1;d<=l;d++){let C=new Map(A[d]),I=C.get("offset"),u=e+I*i;C.set("offset",Q$(u/r)),o.push(C)}i=r,e=0,n="",A=o}return vL(this.element,A,this.preStyleProps,this.postStyleProps,i,e,n,!0)}};function Q$(t,A=3){let e=Math.pow(10,A-1);return Math.round(t*e)/e}function uye(t,A){let e=new Map,i;return t.forEach(n=>{if(n==="*"){i??=A.keys();for(let o of i)e.set(o,Kl)}else for(let[o,r]of n)e.set(o,r)}),e}function m$(t,A,e,i,n,o,r,s,a,c,l,d,C){return{type:0,element:t,triggerName:A,isRemovalTransition:n,fromState:e,fromStyles:o,toState:i,toStyles:r,timelines:s,queriedElements:a,preStyleProps:c,postStyleProps:l,totalTime:d,errors:C}}var lL={},dy=class{_triggerName;ast;_stateStyles;constructor(A,e,i){this._triggerName=A,this.ast=e,this._stateStyles=i}match(A,e,i,n){return hye(this.ast.matchers,A,e,i,n)}buildStyles(A,e,i){let n=this._stateStyles.get("*");return A!==void 0&&(n=this._stateStyles.get(A?.toString())||n),n?n.buildStyles(e,i):new Map}build(A,e,i,n,o,r,s,a,c,l){let d=[],C=this.ast.options&&this.ast.options.params||lL,I=s&&s.params||lL,u=this.buildStyles(i,I,d),h=a&&a.params||lL,B=this.buildStyles(n,h,d),f=new Set,b=new Map,k=new Map,S=n==="void",w={params:x$(h,C),delay:this.ast.options?.delay},_=l?[]:k$(A,e,this.ast.animation,o,r,u,B,w,c,d),K=0;return _.forEach(J=>{K=Math.max(J.duration+J.delay,K)}),d.length?m$(e,this._triggerName,i,n,S,u,B,[],[],b,k,K,d):(_.forEach(J=>{let O=J.element,H=yc(b,O,new Set);J.preStyleProps.forEach(Z=>H.add(Z));let V=yc(k,O,new Set);J.postStyleProps.forEach(Z=>V.add(Z)),O!==e&&f.add(O)}),m$(e,this._triggerName,i,n,S,u,B,_,[...f.values()],b,k,K))}};function hye(t,A,e,i,n){return t.some(o=>o(A,e,i,n))}function x$(t,A){let e=ae({},A);return Object.entries(t).forEach(([i,n])=>{n!=null&&(e[i]=n)}),e}var fL=class{styles;defaultParams;normalizer;constructor(A,e,i){this.styles=A,this.defaultParams=e,this.normalizer=i}buildStyles(A,e){let i=new Map,n=x$(A,this.defaultParams);return this.styles.styles.forEach(o=>{typeof o!="string"&&o.forEach((r,s)=>{r&&(r=zB(r,n,e));let a=this.normalizer.normalizePropertyName(s,e);r=this.normalizer.normalizeStyleValue(s,a,r,e),i.set(s,r)})}),i}};function Bye(t,A,e){return new QL(t,A,e)}var QL=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(A,e,i){this.name=A,this.ast=e,this._normalizer=i,e.states.forEach(n=>{let o=n.options&&n.options.params||{};this.states.set(n.name,new fL(n.style,o,i))}),p$(this.states,"true","1"),p$(this.states,"false","0"),e.transitions.forEach(n=>{this.transitionFactories.push(new dy(A,n,this.states))}),this.fallbackTransition=Eye(A,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(A,e,i,n){return this.transitionFactories.find(r=>r.match(A,e,i,n))||null}matchStyles(A,e,i){return this.fallbackTransition.buildStyles(A,e,i)}};function Eye(t,A,e){let i=[(r,s)=>!0],n={type:pi.Sequence,steps:[],options:null},o={type:pi.Transition,animation:n,matchers:i,options:null,queryCount:0,depCount:0};return new dy(t,o,A)}function p$(t,A,e){t.has(A)?t.has(e)||t.set(e,t.get(A)):t.has(e)&&t.set(A,t.get(e))}var fye=new rm,mL=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(A,e,i){this.bodyNode=A,this._driver=e,this._normalizer=i}register(A,e){let i=[],n=[],o=S$(this._driver,e,i,n);if(i.length)throw i$(i);this._animations.set(A,o)}_buildPlayer(A,e,i){let n=A.element,o=AL(this._normalizer,A.keyframes,e,i);return this._driver.animate(n,o,A.duration,A.delay,A.easing,[],!0)}create(A,e,i={}){let n=[],o=this._animations.get(A),r,s=new Map;if(o?(r=k$(this._driver,e,o,rL,ey,new Map,new Map,i,fye,n),r.forEach(l=>{let d=yc(s,l.element,new Map);l.postStyleProps.forEach(C=>d.set(C,null))})):(n.push(n$()),r=[]),n.length)throw o$(n);s.forEach((l,d)=>{l.forEach((C,I)=>{l.set(I,this._driver.computeStyle(d,I,Kl))})});let a=r.map(l=>{let d=s.get(l.element);return this._buildPlayer(l,new Map,d)}),c=u2(a);return this._playersById.set(A,c),c.onDestroy(()=>this.destroy(A)),this.players.push(c),c}destroy(A){let e=this._getPlayer(A);e.destroy(),this._playersById.delete(A);let i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(A){let e=this._playersById.get(A);if(!e)throw r$(A);return e}listen(A,e,i,n){let o=X5(e,"","","");return Z5(this._getPlayer(A),i,o,n),()=>{}}command(A,e,i,n){if(i=="register"){this.register(A,n[0]);return}if(i=="create"){let r=n[0]||{};this.create(A,e,r);return}let o=this._getPlayer(A);switch(i){case"play":o.play();break;case"pause":o.pause();break;case"reset":o.reset();break;case"restart":o.restart();break;case"finish":o.finish();break;case"init":o.init();break;case"setPosition":o.setPosition(parseFloat(n[0]));break;case"destroy":this.destroy(A);break}}},w$="ng-animate-queued",Qye=".ng-animate-queued",gL="ng-animate-disabled",mye=".ng-animate-disabled",pye="ng-star-inserted",wye=".ng-star-inserted",yye=[],_$={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Dye={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},kg="__ng_removed",sm=class{namespaceId;value;options;get params(){return this.options.params}constructor(A,e=""){this.namespaceId=e;let i=A&&A.hasOwnProperty("value"),n=i?A.value:A;if(this.value=bye(n),i){let o=A,{value:r}=o,s=wk(o,["value"]);this.options=s}else this.options={};this.options.params||(this.options.params={})}absorbOptions(A){let e=A.params;if(e){let i=this.options.params;Object.keys(e).forEach(n=>{i[n]==null&&(i[n]=e[n])})}}},om="void",dL=new sm(om),pL=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(A,e,i){this.id=A,this.hostElement=e,this._engine=i,this._hostClassName="ng-tns-"+A,Ul(e,this._hostClassName)}listen(A,e,i,n){if(!this._triggers.has(e))throw s$(i,e);if(i==null||i.length==0)throw a$(e);if(!Mye(i))throw c$(i,e);let o=yc(this._elementListeners,A,[]),r={name:e,phase:i,callback:n};o.push(r);let s=yc(this._engine.statesByElement,A,new Map);return s.has(e)||(Ul(A,tm),Ul(A,tm+"-"+e),s.set(e,dL)),()=>{this._engine.afterFlush(()=>{let a=o.indexOf(r);a>=0&&o.splice(a,1),this._triggers.has(e)||s.delete(e)})}}register(A,e){return this._triggers.has(A)?!1:(this._triggers.set(A,e),!0)}_getTrigger(A){let e=this._triggers.get(A);if(!e)throw l$(A);return e}trigger(A,e,i,n=!0){let o=this._getTrigger(e),r=new am(this.id,e,A),s=this._engine.statesByElement.get(A);s||(Ul(A,tm),Ul(A,tm+"-"+e),this._engine.statesByElement.set(A,s=new Map));let a=s.get(e),c=new sm(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&a&&c.absorbOptions(a.options),s.set(e,c),a||(a=dL),!(c.value===om)&&a.value===c.value){if(!xye(a.params,c.params)){let h=[],B=o.matchStyles(a.value,a.params,h),f=o.matchStyles(c.value,c.params,h);h.length?this._engine.reportError(h):this._engine.afterFlush(()=>{F1(A,B),Sg(A,f)})}return}let C=yc(this._engine.playersByElement,A,[]);C.forEach(h=>{h.namespaceId==this.id&&h.triggerName==e&&h.queued&&h.destroy()});let I=o.matchTransition(a.value,c.value,A,c.params),u=!1;if(!I){if(!n)return;I=o.fallbackTransition,u=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:A,triggerName:e,transition:I,fromState:a,toState:c,player:r,isFallbackTransition:u}),u||(Ul(A,w$),r.onStart(()=>{PB(A,w$)})),r.onDone(()=>{let h=this.players.indexOf(r);h>=0&&this.players.splice(h,1);let B=this._engine.playersByElement.get(A);if(B){let f=B.indexOf(r);f>=0&&B.splice(f,1)}}),this.players.push(r),C.push(r),r}deregister(A){this._triggers.delete(A),this._engine.statesByElement.forEach(e=>e.delete(A)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(n=>n.name!=A))})}clearElementCache(A){this._engine.statesByElement.delete(A),this._elementListeners.delete(A);let e=this._engine.playersByElement.get(A);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(A))}_signalRemovalForInnerTriggers(A,e){let i=this._engine.driver.query(A,im,!0);i.forEach(n=>{if(n[kg])return;let o=this._engine.fetchNamespacesByElement(n);o.size?o.forEach(r=>r.triggerLeaveAnimation(n,e,!1,!0)):this.clearElementCache(n)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(n=>this.clearElementCache(n)))}triggerLeaveAnimation(A,e,i,n){let o=this._engine.statesByElement.get(A),r=new Map;if(o){let s=[];if(o.forEach((a,c)=>{if(r.set(c,a.value),this._triggers.has(c)){let l=this.trigger(A,c,om,n);l&&s.push(l)}}),s.length)return this._engine.markElementAsRemoved(this.id,A,!0,e,r),i&&u2(s).onDone(()=>this._engine.processLeaveNode(A)),!0}return!1}prepareLeaveAnimationListeners(A){let e=this._elementListeners.get(A),i=this._engine.statesByElement.get(A);if(e&&i){let n=new Set;e.forEach(o=>{let r=o.name;if(n.has(r))return;n.add(r);let a=this._triggers.get(r).fallbackTransition,c=i.get(r)||dL,l=new sm(om),d=new am(this.id,r,A);this._engine.totalQueuedPlayers++,this._queue.push({element:A,triggerName:r,transition:a,fromState:c,toState:l,player:d,isFallbackTransition:!0})})}}removeNode(A,e){let i=this._engine;if(A.childElementCount&&this._signalRemovalForInnerTriggers(A,e),this.triggerLeaveAnimation(A,e,!0))return;let n=!1;if(i.totalAnimations){let o=i.players.length?i.playersByQueriedElement.get(A):[];if(o&&o.length)n=!0;else{let r=A;for(;r=r.parentNode;)if(i.statesByElement.get(r)){n=!0;break}}}if(this.prepareLeaveAnimationListeners(A),n)i.markElementAsRemoved(this.id,A,!1,e);else{let o=A[kg];(!o||o===_$)&&(i.afterFlush(()=>this.clearElementCache(A)),i.destroyInnerAnimations(A),i._onRemovalComplete(A,e))}}insertNode(A,e){Ul(A,this._hostClassName)}drainQueuedTransitions(A){let e=[];return this._queue.forEach(i=>{let n=i.player;if(n.destroyed)return;let o=i.element,r=this._elementListeners.get(o);r&&r.forEach(s=>{if(s.name==i.triggerName){let a=X5(o,i.triggerName,i.fromState.value,i.toState.value);a._data=A,Z5(i.player,s.phase,a,s.callback)}}),n.markedForDestroy?this._engine.afterFlush(()=>{n.destroy()}):e.push(i)}),this._queue=[],e.sort((i,n)=>{let o=i.transition.ast.depCount,r=n.transition.ast.depCount;return o==0||r==0?o-r:this._engine.driver.containsElement(i.element,n.element)?1:-1})}destroy(A){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,A)}},wL=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(A,e)=>{};_onRemovalComplete(A,e){this.onRemovalComplete(A,e)}constructor(A,e,i){this.bodyNode=A,this.driver=e,this._normalizer=i}get queuedPlayers(){let A=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&A.push(i)})}),A}createNamespace(A,e){let i=new pL(A,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[A]=i}_balanceNamespaceList(A,e){let i=this._namespaceList,n=this.namespacesByHostElement;if(i.length-1>=0){let r=!1,s=this.driver.getParentElement(e);for(;s;){let a=n.get(s);if(a){let c=i.indexOf(a);i.splice(c+1,0,A),r=!0;break}s=this.driver.getParentElement(s)}r||i.unshift(A)}else i.push(A);return n.set(e,A),A}register(A,e){let i=this._namespaceLookup[A];return i||(i=this.createNamespace(A,e)),i}registerTrigger(A,e,i){let n=this._namespaceLookup[A];n&&n.register(e,i)&&this.totalAnimations++}destroy(A,e){A&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let i=this._fetchNamespace(A);this.namespacesByHostElement.delete(i.hostElement);let n=this._namespaceList.indexOf(i);n>=0&&this._namespaceList.splice(n,1),i.destroy(e),delete this._namespaceLookup[A]}))}_fetchNamespace(A){return this._namespaceLookup[A]}fetchNamespacesByElement(A){let e=new Set,i=this.statesByElement.get(A);if(i){for(let n of i.values())if(n.namespaceId){let o=this._fetchNamespace(n.namespaceId);o&&e.add(o)}}return e}trigger(A,e,i,n){if(ry(e)){let o=this._fetchNamespace(A);if(o)return o.trigger(e,i,n),!0}return!1}insertNode(A,e,i,n){if(!ry(e))return;let o=e[kg];if(o&&o.setForRemoval){o.setForRemoval=!1,o.setForMove=!0;let r=this.collectedLeaveElements.indexOf(e);r>=0&&this.collectedLeaveElements.splice(r,1)}if(A){let r=this._fetchNamespace(A);r&&r.insertNode(e,i)}n&&this.collectEnterElement(e)}collectEnterElement(A){this.collectedEnterElements.push(A)}markElementAsDisabled(A,e){e?this.disabledNodes.has(A)||(this.disabledNodes.add(A),Ul(A,gL)):this.disabledNodes.has(A)&&(this.disabledNodes.delete(A),PB(A,gL))}removeNode(A,e,i){if(ry(e)){let n=A?this._fetchNamespace(A):null;n?n.removeNode(e,i):this.markElementAsRemoved(A,e,!1,i);let o=this.namespacesByHostElement.get(e);o&&o.id!==A&&o.removeNode(e,i)}else this._onRemovalComplete(e,i)}markElementAsRemoved(A,e,i,n,o){this.collectedLeaveElements.push(e),e[kg]={namespaceId:A,setForRemoval:n,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:o}}listen(A,e,i,n,o){return ry(e)?this._fetchNamespace(A).listen(e,i,n,o):()=>{}}_buildInstruction(A,e,i,n,o){return A.transition.build(this.driver,A.element,A.fromState.value,A.toState.value,i,n,A.fromState.options,A.toState.options,e,o)}destroyInnerAnimations(A){let e=this.driver.query(A,im,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),this.playersByQueriedElement.size!=0&&(e=this.driver.query(A,Ay,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(A){let e=this.playersByElement.get(A);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(A){let e=this.playersByQueriedElement.get(A);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(A=>{if(this.players.length)return u2(this.players).onDone(()=>A());A()})}processLeaveNode(A){let e=A[kg];if(e&&e.setForRemoval){if(A[kg]=_$,e.namespaceId){this.destroyInnerAnimations(A);let i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(A)}this._onRemovalComplete(A,e.setForRemoval)}A.classList?.contains(gL)&&this.markElementAsDisabled(A,!1),this.driver.query(A,mye,!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(A=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,n)=>this._balanceNamespaceList(i,n)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){let i=this._whenQuietFns;this._whenQuietFns=[],e.length?u2(e).onDone(()=>{i.forEach(n=>n())}):i.forEach(n=>n())}}reportError(A){throw g$(A)}_flushAnimations(A,e){let i=new rm,n=[],o=new Map,r=[],s=new Map,a=new Map,c=new Map,l=new Set;this.disabledNodes.forEach(X=>{l.add(X);let ue=this.driver.query(X,Qye,!0);for(let oe=0;oe{let oe=rL+h++;u.set(ue,oe),X.forEach(le=>Ul(le,oe))});let B=[],f=new Set,b=new Set;for(let X=0;Xf.add(le)):b.add(ue))}let k=new Map,S=v$(C,Array.from(f));S.forEach((X,ue)=>{let oe=ey+h++;k.set(ue,oe),X.forEach(le=>Ul(le,oe))}),A.push(()=>{I.forEach((X,ue)=>{let oe=u.get(ue);X.forEach(le=>PB(le,oe))}),S.forEach((X,ue)=>{let oe=k.get(ue);X.forEach(le=>PB(le,oe))}),B.forEach(X=>{this.processLeaveNode(X)})});let w=[],_=[];for(let X=this._namespaceList.length-1;X>=0;X--)this._namespaceList[X].drainQueuedTransitions(e).forEach(oe=>{let le=oe.player,me=oe.element;if(w.push(le),this.collectedEnterElements.length){let JA=me[kg];if(JA&&JA.setForMove){if(JA.previousTriggersValues&&JA.previousTriggersValues.has(oe.triggerName)){let Ye=JA.previousTriggersValues.get(oe.triggerName),Ie=this.statesByElement.get(oe.element);if(Ie&&Ie.has(oe.triggerName)){let We=Ie.get(oe.triggerName);We.value=Ye,Ie.set(oe.triggerName,We)}}le.destroy();return}}let Te=!d||!this.driver.containsElement(d,me),$e=k.get(me),Je=u.get(me),Qe=this._buildInstruction(oe,i,Je,$e,Te);if(Qe.errors&&Qe.errors.length){_.push(Qe);return}if(Te){le.onStart(()=>F1(me,Qe.fromStyles)),le.onDestroy(()=>Sg(me,Qe.toStyles)),n.push(le);return}if(oe.isFallbackTransition){le.onStart(()=>F1(me,Qe.fromStyles)),le.onDestroy(()=>Sg(me,Qe.toStyles)),n.push(le);return}let He=[];Qe.timelines.forEach(JA=>{JA.stretchStartingKeyframe=!0,this.disabledNodes.has(JA.element)||He.push(JA)}),Qe.timelines=He,i.append(me,Qe.timelines);let PA={instruction:Qe,player:le,element:me};r.push(PA),Qe.queriedElements.forEach(JA=>yc(s,JA,[]).push(le)),Qe.preStyleProps.forEach((JA,Ye)=>{if(JA.size){let Ie=a.get(Ye);Ie||a.set(Ye,Ie=new Set),JA.forEach((We,we)=>Ie.add(we))}}),Qe.postStyleProps.forEach((JA,Ye)=>{let Ie=c.get(Ye);Ie||c.set(Ye,Ie=new Set),JA.forEach((We,we)=>Ie.add(we))})});if(_.length){let X=[];_.forEach(ue=>{X.push(d$(ue.triggerName,ue.errors))}),w.forEach(ue=>ue.destroy()),this.reportError(X)}let K=new Map,J=new Map;r.forEach(X=>{let ue=X.element;i.has(ue)&&(J.set(ue,ue),this._beforeAnimationBuild(X.player.namespaceId,X.instruction,K))}),n.forEach(X=>{let ue=X.element;this._getPreviousPlayers(ue,!1,X.namespaceId,X.triggerName,null).forEach(le=>{yc(K,ue,[]).push(le),le.destroy()})});let O=B.filter(X=>b$(X,a,c)),H=new Map;D$(H,this.driver,b,c,Kl).forEach(X=>{b$(X,a,c)&&O.push(X)});let Z=new Map;I.forEach((X,ue)=>{D$(Z,this.driver,new Set(X),a,OB)}),O.forEach(X=>{let ue=H.get(X),oe=Z.get(X);H.set(X,new Map([...ue?.entries()??[],...oe?.entries()??[]]))});let ye=[],P=[],se={};r.forEach(X=>{let{element:ue,player:oe,instruction:le}=X;if(i.has(ue)){if(l.has(ue)){oe.onDestroy(()=>Sg(ue,le.toStyles)),oe.disabled=!0,oe.overrideTotalTime(le.totalTime),n.push(oe);return}let me=se;if(J.size>1){let $e=ue,Je=[];for(;$e=$e.parentNode;){let Qe=J.get($e);if(Qe){me=Qe;break}Je.push($e)}Je.forEach(Qe=>J.set(Qe,me))}let Te=this._buildAnimation(oe.namespaceId,le,K,o,Z,H);if(oe.setRealPlayer(Te),me===se)ye.push(oe);else{let $e=this.playersByElement.get(me);$e&&$e.length&&(oe.parentPlayer=u2($e)),n.push(oe)}}else F1(ue,le.fromStyles),oe.onDestroy(()=>Sg(ue,le.toStyles)),P.push(oe),l.has(ue)&&n.push(oe)}),P.forEach(X=>{let ue=o.get(X.element);if(ue&&ue.length){let oe=u2(ue);X.setRealPlayer(oe)}}),n.forEach(X=>{X.parentPlayer?X.syncPlayerEvents(X.parentPlayer):X.destroy()});for(let X=0;X!Te.destroyed);me.length?Sye(this,ue,me):this.processLeaveNode(ue)}return B.length=0,ye.forEach(X=>{this.players.push(X),X.onDone(()=>{X.destroy();let ue=this.players.indexOf(X);this.players.splice(ue,1)}),X.play()}),ye}afterFlush(A){this._flushFns.push(A)}afterFlushAnimationsDone(A){this._whenQuietFns.push(A)}_getPreviousPlayers(A,e,i,n,o){let r=[];if(e){let s=this.playersByQueriedElement.get(A);s&&(r=s)}else{let s=this.playersByElement.get(A);if(s){let a=!o||o==om;s.forEach(c=>{c.queued||!a&&c.triggerName!=n||r.push(c)})}}return(i||n)&&(r=r.filter(s=>!(i&&i!=s.namespaceId||n&&n!=s.triggerName))),r}_beforeAnimationBuild(A,e,i){let n=e.triggerName,o=e.element,r=e.isRemovalTransition?void 0:A,s=e.isRemovalTransition?void 0:n;for(let a of e.timelines){let c=a.element,l=c!==o,d=yc(i,c,[]);this._getPreviousPlayers(c,l,r,s,e.toState).forEach(I=>{let u=I.getRealPlayer();u.beforeDestroy&&u.beforeDestroy(),I.destroy(),d.push(I)})}F1(o,e.fromStyles)}_buildAnimation(A,e,i,n,o,r){let s=e.triggerName,a=e.element,c=[],l=new Set,d=new Set,C=e.timelines.map(u=>{let h=u.element;l.add(h);let B=h[kg];if(B&&B.removedBeforeQueried)return new V0(u.duration,u.delay);let f=h!==a,b=kye((i.get(h)||yye).map(K=>K.getRealPlayer())).filter(K=>{let J=K;return J.element?J.element===h:!1}),k=o.get(h),S=r.get(h),w=AL(this._normalizer,u.keyframes,k,S),_=this._buildPlayer(u,w,b);if(u.subTimeline&&n&&d.add(h),f){let K=new am(A,s,h);K.setRealPlayer(_),c.push(K)}return _});c.forEach(u=>{yc(this.playersByQueriedElement,u.element,[]).push(u),u.onDone(()=>vye(this.playersByQueriedElement,u.element,u))}),l.forEach(u=>Ul(u,sL));let I=u2(C);return I.onDestroy(()=>{l.forEach(u=>PB(u,sL)),Sg(a,e.toStyles)}),d.forEach(u=>{yc(n,u,[]).push(I)}),I}_buildPlayer(A,e,i){return e.length>0?this.driver.animate(A.element,e,A.duration,A.delay,A.easing,i):new V0(A.duration,A.delay)}},am=class{namespaceId;triggerName;element;_player=new V0;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(A,e,i){this.namespaceId=A,this.triggerName=e,this.element=i}setRealPlayer(A){this._containsRealPlayer||(this._player=A,this._queuedCallbacks.forEach((e,i)=>{e.forEach(n=>Z5(A,i,void 0,n))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(A.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(A){this.totalTime=A}syncPlayerEvents(A){let e=this._player;e.triggerCallback&&A.onStart(()=>e.triggerCallback("start")),A.onDone(()=>this.finish()),A.onDestroy(()=>this.destroy())}_queueEvent(A,e){yc(this._queuedCallbacks,A,[]).push(e)}onDone(A){this.queued&&this._queueEvent("done",A),this._player.onDone(A)}onStart(A){this.queued&&this._queueEvent("start",A),this._player.onStart(A)}onDestroy(A){this.queued&&this._queueEvent("destroy",A),this._player.onDestroy(A)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(A){this.queued||this._player.setPosition(A)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(A){let e=this._player;e.triggerCallback&&e.triggerCallback(A)}};function vye(t,A,e){let i=t.get(A);if(i){if(i.length){let n=i.indexOf(e);i.splice(n,1)}i.length==0&&t.delete(A)}return i}function bye(t){return t??null}function ry(t){return t&&t.nodeType===1}function Mye(t){return t=="start"||t=="done"}function y$(t,A){let e=t.style.display;return t.style.display=A??"none",e}function D$(t,A,e,i,n){let o=[];e.forEach(a=>o.push(y$(a)));let r=[];i.forEach((a,c)=>{let l=new Map;a.forEach(d=>{let C=A.computeStyle(c,d,n);l.set(d,C),(!C||C.length==0)&&(c[kg]=Dye,r.push(c))}),t.set(c,l)});let s=0;return e.forEach(a=>y$(a,o[s++])),r}function v$(t,A){let e=new Map;if(t.forEach(s=>e.set(s,[])),A.length==0)return e;let i=1,n=new Set(A),o=new Map;function r(s){if(!s)return i;let a=o.get(s);if(a)return a;let c=s.parentNode;return e.has(c)?a=c:n.has(c)?a=i:a=r(c),o.set(s,a),a}return A.forEach(s=>{let a=r(s);a!==i&&e.get(a).push(s)}),e}function Ul(t,A){t.classList?.add(A)}function PB(t,A){t.classList?.remove(A)}function Sye(t,A,e){u2(e).onDone(()=>t.processLeaveNode(A))}function kye(t){let A=[];return R$(t,A),A}function R$(t,A){for(let e=0;en.add(o)):A.set(t,i),e.delete(t),!0}var jB=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(A,e)=>{};constructor(A,e,i){this._driver=e,this._normalizer=i,this._transitionEngine=new wL(A.body,e,i),this._timelineEngine=new mL(A.body,e,i),this._transitionEngine.onRemovalComplete=(n,o)=>this.onRemovalComplete(n,o)}registerTrigger(A,e,i,n,o){let r=A+"-"+n,s=this._triggerCache[r];if(!s){let a=[],c=[],l=S$(this._driver,o,a,c);if(a.length)throw t$(n,a);s=Bye(n,l,this._normalizer),this._triggerCache[r]=s}this._transitionEngine.registerTrigger(e,n,s)}register(A,e){this._transitionEngine.register(A,e)}destroy(A,e){this._transitionEngine.destroy(A,e)}onInsert(A,e,i,n){this._transitionEngine.insertNode(A,e,i,n)}onRemove(A,e,i){this._transitionEngine.removeNode(A,e,i)}disableAnimations(A,e){this._transitionEngine.markElementAsDisabled(A,e)}process(A,e,i,n){if(i.charAt(0)=="@"){let[o,r]=tL(i),s=n;this._timelineEngine.command(o,e,r,s)}else this._transitionEngine.trigger(A,e,i,n)}listen(A,e,i,n,o){if(i.charAt(0)=="@"){let[r,s]=tL(i);return this._timelineEngine.listen(r,e,s,o)}return this._transitionEngine.listen(A,e,i,n,o)}flush(A=-1){this._transitionEngine.flush(A)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(A){this._transitionEngine.afterFlushAnimationsDone(A)}};function _ye(t,A){let e=null,i=null;return Array.isArray(A)&&A.length?(e=CL(A[0]),A.length>1&&(i=CL(A[A.length-1]))):A instanceof Map&&(e=CL(A)),e||i?new Rye(t,e,i):null}var Rye=(()=>{class t{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(e,i,n){this._element=e,this._startStyles=i,this._endStyles=n;let o=t.initialStylesByElement.get(e);o||t.initialStylesByElement.set(e,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&Sg(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Sg(this._element,this._initialStyles),this._endStyles&&(Sg(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(t.initialStylesByElement.delete(this._element),this._startStyles&&(F1(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(F1(this._element,this._endStyles),this._endStyles=null),Sg(this._element,this._initialStyles),this._state=3)}}return t})();function CL(t){let A=null;return t.forEach((e,i)=>{Nye(i)&&(A=A||new Map,A.set(i,e))}),A}function Nye(t){return t==="display"||t==="position"}var Cy=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(A,e,i,n){this.element=A,this.keyframes=e,this.options=i,this._specialStyles=n,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(A=>A()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;let A=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,A,this.options),this._finalKeyframe=A.length?A[A.length-1]:new Map;let e=()=>this._onFinish();this.domPlayer.addEventListener("finish",e),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",e)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(A){let e=[];return A.forEach(i=>{e.push(Object.fromEntries(i))}),e}_triggerWebAnimation(A,e,i){return A.animate(this._convertKeyframesToObject(e),i)}onStart(A){this._originalOnStartFns.push(A),this._onStartFns.push(A)}onDone(A){this._originalOnDoneFns.push(A),this._onDoneFns.push(A)}onDestroy(A){this._onDestroyFns.push(A)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(A=>A()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(A=>A()),this._onDestroyFns=[])}setPosition(A){this.domPlayer===void 0&&this.init(),this.domPlayer.currentTime=A*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){let A=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,n)=>{n!=="offset"&&A.set(n,this._finished?i:iy(this.element,n))}),this.currentSnapshot=A}triggerCallback(A){let e=A==="start"?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}},Iy=class{validateStyleProperty(A){return!0}validateAnimatableStyleProperty(A){return!0}containsElement(A,e){return iL(A,e)}getParentElement(A){return $5(A)}query(A,e,i){return nL(A,e,i)}computeStyle(A,e,i){return iy(A,e)}animate(A,e,i,n,o,r=[]){let s=n==0?"both":"forwards",a={duration:i,delay:n,fill:s};o&&(a.easing=o);let c=new Map,l=r.filter(I=>I instanceof Cy);h$(i,n)&&l.forEach(I=>{I.currentSnapshot.forEach((u,h)=>c.set(h,u))});let d=I$(e).map(I=>new Map(I));d=B$(A,d,c);let C=_ye(A,d);return new Cy(A,d,a,C)}};var sy="@",N$="@.disabled",uy=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(A,e,i,n){this.namespaceId=A,this.delegate=e,this.engine=i,this._onDestroy=n}get data(){return this.delegate.data}destroyNode(A){this.delegate.destroyNode?.(A)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(A,e){return this.delegate.createElement(A,e)}createComment(A){return this.delegate.createComment(A)}createText(A){return this.delegate.createText(A)}appendChild(A,e){this.delegate.appendChild(A,e),this.engine.onInsert(this.namespaceId,e,A,!1)}insertBefore(A,e,i,n=!0){this.delegate.insertBefore(A,e,i),this.engine.onInsert(this.namespaceId,e,A,n)}removeChild(A,e,i){this.parentNode(e)&&this.engine.onRemove(this.namespaceId,e,this.delegate)}selectRootElement(A,e){return this.delegate.selectRootElement(A,e)}parentNode(A){return this.delegate.parentNode(A)}nextSibling(A){return this.delegate.nextSibling(A)}setAttribute(A,e,i,n){this.delegate.setAttribute(A,e,i,n)}removeAttribute(A,e,i){this.delegate.removeAttribute(A,e,i)}addClass(A,e){this.delegate.addClass(A,e)}removeClass(A,e){this.delegate.removeClass(A,e)}setStyle(A,e,i,n){this.delegate.setStyle(A,e,i,n)}removeStyle(A,e,i){this.delegate.removeStyle(A,e,i)}setProperty(A,e,i){e.charAt(0)==sy&&e==N$?this.disableAnimations(A,!!i):this.delegate.setProperty(A,e,i)}setValue(A,e){this.delegate.setValue(A,e)}listen(A,e,i,n){return this.delegate.listen(A,e,i,n)}disableAnimations(A,e){this.engine.disableAnimations(A,e)}},yL=class extends uy{factory;constructor(A,e,i,n,o){super(e,i,n,o),this.factory=A,this.namespaceId=e}setProperty(A,e,i){e.charAt(0)==sy?e.charAt(1)=="."&&e==N$?(i=i===void 0?!0:!!i,this.disableAnimations(A,i)):this.engine.process(this.namespaceId,A,e.slice(1),i):this.delegate.setProperty(A,e,i)}listen(A,e,i,n){if(e.charAt(0)==sy){let o=Lye(A),r=e.slice(1),s="";return r.charAt(0)!=sy&&([r,s]=Fye(r)),this.engine.listen(this.namespaceId,o,r,s,a=>{let c=a._data||-1;this.factory.scheduleListenerCallback(c,i,a)})}return this.delegate.listen(A,e,i,n)}};function Lye(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}function Fye(t){let A=t.indexOf("."),e=t.substring(0,A),i=t.slice(A+1);return[e,i]}var hy=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(A,e,i){this.delegate=A,this.engine=e,this._zone=i,e.onRemovalComplete=(n,o)=>{o?.removeChild(null,n)}}createRenderer(A,e){let i="",n=this.delegate.createRenderer(A,e);if(!A||!e?.data?.animation){let c=this._rendererCache,l=c.get(n);if(!l){let d=()=>c.delete(n);l=new uy(i,n,this.engine,d),c.set(n,l)}return l}let o=e.id,r=e.id+"-"+this._currentId;this._currentId++,this.engine.register(r,A);let s=c=>{Array.isArray(c)?c.forEach(s):this.engine.registerTrigger(o,r,A,c.name,c)};return e.data.animation.forEach(s),new yL(this,r,n,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(A,e,i){if(A>=0&&Ae(i));return}let n=this._animationCallbacksBuffer;n.length==0&&queueMicrotask(()=>{this._zone.run(()=>{n.forEach(o=>{let[r,s]=o;r(s)}),this._animationCallbacksBuffer=[]})}),n.push([e,i])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}componentReplaced(A){this.engine.flush(),this.delegate.componentReplaced?.(A)}};var Kye=(()=>{class t extends jB{constructor(e,i,n){super(e,i,n)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||t)(UA(ht),UA(ru),UA(su))};static \u0275prov=be({token:t,factory:t.\u0275fac})}return t})();function Uye(){return new ay}function Tye(t,A,e){return new hy(t,A,e)}var L$=[{provide:su,useFactory:Uye},{provide:jB,useClass:Kye},{provide:fa,useFactory:Tye,deps:[$4,jB,yA]}],U6A=[{provide:ru,useClass:DL},{provide:Oi,useValue:"NoopAnimations"},...L$],Oye=[{provide:ru,useFactory:()=>new Iy},{provide:Oi,useFactory:()=>"BrowserAnimations"},...L$];function F$(){return Dg("NgEagerAnimations"),[...Oye]}function kL(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var cu=kL();function J$(t){cu=t}var gm={exec:()=>null};function mo(t,A=""){let e=typeof t=="string"?t:t.source,i={replace:(n,o)=>{let r=typeof o=="string"?o:o.source;return r=r.replace(ic.caret,"$1"),e=e.replace(n,r),i},getRegex:()=>new RegExp(e,A)};return i}var ic={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^
              /i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i")},Jye=/^(?:[ \t]*(?:\n|$))+/,Yye=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Hye=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,dm=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,zye=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,xL=/(?:[*+-]|\d{1,9}[.)])/,Y$=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,H$=mo(Y$).replace(/bull/g,xL).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Pye=mo(Y$).replace(/bull/g,xL).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),_L=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,jye=/^[^\n]+/,RL=/(?!\s*\])(?:\\.|[^\[\]\\])+/,Vye=mo(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",RL).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),qye=mo(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,xL).getRegex(),my="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",NL=/|$))/,Wye=mo("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",NL).replace("tag",my).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),z$=mo(_L).replace("hr",dm).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",my).getRegex(),Zye=mo(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",z$).getRegex(),LL={blockquote:Zye,code:Yye,def:Vye,fences:Hye,heading:zye,hr:dm,html:Wye,lheading:H$,list:qye,newline:Jye,paragraph:z$,table:gm,text:jye},G$=mo("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",dm).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",my).getRegex(),Xye=_A(ae({},LL),{lheading:Pye,table:G$,paragraph:mo(_L).replace("hr",dm).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",G$).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",my).getRegex()}),$ye=_A(ae({},LL),{html:mo(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",NL).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:gm,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:mo(_L).replace("hr",dm).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",H$).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()}),eDe=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,ADe=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,P$=/^( {2,}|\\)\n(?!\s*$)/,tDe=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,q$=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,sDe=mo(q$,"u").replace(/punct/g,py).getRegex(),aDe=mo(q$,"u").replace(/punct/g,V$).getRegex(),W$="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",cDe=mo(W$,"gu").replace(/notPunctSpace/g,j$).replace(/punctSpace/g,FL).replace(/punct/g,py).getRegex(),lDe=mo(W$,"gu").replace(/notPunctSpace/g,oDe).replace(/punctSpace/g,nDe).replace(/punct/g,V$).getRegex(),gDe=mo("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,j$).replace(/punctSpace/g,FL).replace(/punct/g,py).getRegex(),dDe=mo(/\\(punct)/,"gu").replace(/punct/g,py).getRegex(),CDe=mo(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),IDe=mo(NL).replace("(?:-->|$)","-->").getRegex(),uDe=mo("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",IDe).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),fy=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,hDe=mo(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",fy).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Z$=mo(/^!?\[(label)\]\[(ref)\]/).replace("label",fy).replace("ref",RL).getRegex(),X$=mo(/^!?\[(ref)\](?:\[\])?/).replace("ref",RL).getRegex(),BDe=mo("reflink|nolink(?!\\()","g").replace("reflink",Z$).replace("nolink",X$).getRegex(),GL={_backpedal:gm,anyPunctuation:dDe,autolink:CDe,blockSkip:rDe,br:P$,code:ADe,del:gm,emStrongLDelim:sDe,emStrongRDelimAst:cDe,emStrongRDelimUnd:gDe,escape:eDe,link:hDe,nolink:X$,punctuation:iDe,reflink:Z$,reflinkSearch:BDe,tag:uDe,text:tDe,url:gm},EDe=_A(ae({},GL),{link:mo(/^!?\[(label)\]\((.*?)\)/).replace("label",fy).getRegex(),reflink:mo(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",fy).getRegex()}),bL=_A(ae({},GL),{emStrongRDelimAst:lDe,emStrongLDelim:aDe,url:mo(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},K$=t=>QDe[t];function Z0(t,A){if(A){if(ic.escapeTest.test(t))return t.replace(ic.escapeReplace,K$)}else if(ic.escapeTestNoEncode.test(t))return t.replace(ic.escapeReplaceNoEncode,K$);return t}function U$(t){try{t=encodeURI(t).replace(ic.percentDecode,"%")}catch{return null}return t}function T$(t,A){let e=t.replace(ic.findPipe,(o,r,s)=>{let a=!1,c=r;for(;--c>=0&&s[c]==="\\";)a=!a;return a?"|":" |"}),i=e.split(ic.splitPipe),n=0;if(i[0].trim()||i.shift(),i.length>0&&!i.at(-1)?.trim()&&i.pop(),A)if(i.length>A)i.splice(A);else for(;i.length0?-2:-1}function O$(t,A,e,i,n){let o=A.href,r=A.title||null,s=t[1].replace(n.other.outputLinkReplace,"$1");i.state.inLink=!0;let a={type:t[0].charAt(0)==="!"?"image":"link",raw:e,href:o,title:r,text:s,tokens:i.inlineTokens(s)};return i.state.inLink=!1,a}function pDe(t,A,e){let i=t.match(e.other.indentCodeCompensation);if(i===null)return A;let n=i[1];return A.split(` +`).map(o=>{let r=o.match(e.other.beginningSpace);if(r===null)return o;let[s]=r;return s.length>=n.length?o.slice(n.length):o}).join(` +`)}var Qy=class{options;rules;lexer;constructor(t){this.options=t||cu}space(t){let A=this.rules.block.newline.exec(t);if(A&&A[0].length>0)return{type:"space",raw:A[0]}}code(t){let A=this.rules.block.code.exec(t);if(A){let e=A[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:A[0],codeBlockStyle:"indented",text:this.options.pedantic?e:lm(e,` +`)}}}fences(t){let A=this.rules.block.fences.exec(t);if(A){let e=A[0],i=pDe(e,A[3]||"",this.rules);return{type:"code",raw:e,lang:A[2]?A[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):A[2],text:i}}}heading(t){let A=this.rules.block.heading.exec(t);if(A){let e=A[2].trim();if(this.rules.other.endingHash.test(e)){let i=lm(e,"#");(this.options.pedantic||!i||this.rules.other.endingSpaceChar.test(i))&&(e=i.trim())}return{type:"heading",raw:A[0],depth:A[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(t){let A=this.rules.block.hr.exec(t);if(A)return{type:"hr",raw:lm(A[0],` +`)}}blockquote(t){let A=this.rules.block.blockquote.exec(t);if(A){let e=lm(A[0],` +`).split(` +`),i="",n="",o=[];for(;e.length>0;){let r=!1,s=[],a;for(a=0;a1,n={type:"list",raw:"",ordered:i,start:i?+e.slice(0,-1):"",loose:!1,items:[]};e=i?`\\d{1,9}\\${e.slice(-1)}`:`\\${e}`,this.options.pedantic&&(e=i?e:"[*+-]");let o=this.rules.other.listItemRegex(e),r=!1;for(;t;){let a=!1,c="",l="";if(!(A=o.exec(t))||this.rules.block.hr.test(t))break;c=A[0],t=t.substring(c.length);let d=A[2].split(` +`,1)[0].replace(this.rules.other.listReplaceTabs,f=>" ".repeat(3*f.length)),C=t.split(` +`,1)[0],I=!d.trim(),u=0;if(this.options.pedantic?(u=2,l=d.trimStart()):I?u=A[1].length+1:(u=A[2].search(this.rules.other.nonSpaceChar),u=u>4?1:u,l=d.slice(u),u+=A[1].length),I&&this.rules.other.blankLine.test(C)&&(c+=C+` +`,t=t.substring(C.length+1),a=!0),!a){let f=this.rules.other.nextBulletRegex(u),b=this.rules.other.hrRegex(u),k=this.rules.other.fencesBeginRegex(u),S=this.rules.other.headingBeginRegex(u),w=this.rules.other.htmlBeginRegex(u);for(;t;){let _=t.split(` +`,1)[0],K;if(C=_,this.options.pedantic?(C=C.replace(this.rules.other.listReplaceNesting," "),K=C):K=C.replace(this.rules.other.tabCharGlobal," "),k.test(C)||S.test(C)||w.test(C)||f.test(C)||b.test(C))break;if(K.search(this.rules.other.nonSpaceChar)>=u||!C.trim())l+=` +`+K.slice(u);else{if(I||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||k.test(d)||S.test(d)||b.test(d))break;l+=` +`+C}!I&&!C.trim()&&(I=!0),c+=_+` +`,t=t.substring(_.length+1),d=K.slice(u)}}n.loose||(r?n.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(r=!0));let h=null,B;this.options.gfm&&(h=this.rules.other.listIsTask.exec(l),h&&(B=h[0]!=="[ ] ",l=l.replace(this.rules.other.listReplaceTask,""))),n.items.push({type:"list_item",raw:c,task:!!h,checked:B,loose:!1,text:l,tokens:[]}),n.raw+=c}let s=n.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;n.raw=n.raw.trimEnd();for(let a=0;ad.type==="space"),l=c.length>0&&c.some(d=>this.rules.other.anyLine.test(d.raw));n.loose=l}if(n.loose)for(let a=0;a({text:s,tokens:this.lexer.inline(s),header:!1,align:o.align[a]})));return o}}lheading(t){let A=this.rules.block.lheading.exec(t);if(A)return{type:"heading",raw:A[0],depth:A[2].charAt(0)==="="?1:2,text:A[1],tokens:this.lexer.inline(A[1])}}paragraph(t){let A=this.rules.block.paragraph.exec(t);if(A){let e=A[1].charAt(A[1].length-1)===` +`?A[1].slice(0,-1):A[1];return{type:"paragraph",raw:A[0],text:e,tokens:this.lexer.inline(e)}}}text(t){let A=this.rules.block.text.exec(t);if(A)return{type:"text",raw:A[0],text:A[0],tokens:this.lexer.inline(A[0])}}escape(t){let A=this.rules.inline.escape.exec(t);if(A)return{type:"escape",raw:A[0],text:A[1]}}tag(t){let A=this.rules.inline.tag.exec(t);if(A)return!this.lexer.state.inLink&&this.rules.other.startATag.test(A[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(A[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(A[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(A[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:A[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:A[0]}}link(t){let A=this.rules.inline.link.exec(t);if(A){let e=A[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let o=lm(e.slice(0,-1),"\\");if((e.length-o.length)%2===0)return}else{let o=mDe(A[2],"()");if(o===-2)return;if(o>-1){let s=(A[0].indexOf("!")===0?5:4)+A[1].length+o;A[2]=A[2].substring(0,o),A[0]=A[0].substring(0,s).trim(),A[3]=""}}let i=A[2],n="";if(this.options.pedantic){let o=this.rules.other.pedanticHrefTitle.exec(i);o&&(i=o[1],n=o[3])}else n=A[3]?A[3].slice(1,-1):"";return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?i=i.slice(1):i=i.slice(1,-1)),O$(A,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},A[0],this.lexer,this.rules)}}reflink(t,A){let e;if((e=this.rules.inline.reflink.exec(t))||(e=this.rules.inline.nolink.exec(t))){let i=(e[2]||e[1]).replace(this.rules.other.multipleSpaceGlobal," "),n=A[i.toLowerCase()];if(!n){let o=e[0].charAt(0);return{type:"text",raw:o,text:o}}return O$(e,n,e[0],this.lexer,this.rules)}}emStrong(t,A,e=""){let i=this.rules.inline.emStrongLDelim.exec(t);if(!i||i[3]&&e.match(this.rules.other.unicodeAlphaNumeric))return;if(!(i[1]||i[2]||"")||!e||this.rules.inline.punctuation.exec(e)){let o=[...i[0]].length-1,r,s,a=o,c=0,l=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(l.lastIndex=0,A=A.slice(-1*t.length+o);(i=l.exec(A))!=null;){if(r=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!r)continue;if(s=[...r].length,i[3]||i[4]){a+=s;continue}else if((i[5]||i[6])&&o%3&&!((o+s)%3)){c+=s;continue}if(a-=s,a>0)continue;s=Math.min(s,s+a+c);let d=[...i[0]][0].length,C=t.slice(0,o+i.index+d+s);if(Math.min(o,s)%2){let u=C.slice(1,-1);return{type:"em",raw:C,text:u,tokens:this.lexer.inlineTokens(u)}}let I=C.slice(2,-2);return{type:"strong",raw:C,text:I,tokens:this.lexer.inlineTokens(I)}}}}codespan(t){let A=this.rules.inline.code.exec(t);if(A){let e=A[2].replace(this.rules.other.newLineCharGlobal," "),i=this.rules.other.nonSpaceChar.test(e),n=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return i&&n&&(e=e.substring(1,e.length-1)),{type:"codespan",raw:A[0],text:e}}}br(t){let A=this.rules.inline.br.exec(t);if(A)return{type:"br",raw:A[0]}}del(t){let A=this.rules.inline.del.exec(t);if(A)return{type:"del",raw:A[0],text:A[2],tokens:this.lexer.inlineTokens(A[2])}}autolink(t){let A=this.rules.inline.autolink.exec(t);if(A){let e,i;return A[2]==="@"?(e=A[1],i="mailto:"+e):(e=A[1],i=e),{type:"link",raw:A[0],text:e,href:i,tokens:[{type:"text",raw:e,text:e}]}}}url(t){let A;if(A=this.rules.inline.url.exec(t)){let e,i;if(A[2]==="@")e=A[0],i="mailto:"+e;else{let n;do n=A[0],A[0]=this.rules.inline._backpedal.exec(A[0])?.[0]??"";while(n!==A[0]);e=A[0],A[1]==="www."?i="http://"+A[0]:i=A[0]}return{type:"link",raw:A[0],text:e,href:i,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(t){let A=this.rules.inline.text.exec(t);if(A){let e=this.lexer.state.inRawBlock;return{type:"text",raw:A[0],text:A[0],escaped:e}}}},h2=class ML{tokens;options;state;tokenizer;inlineQueue;constructor(A){this.tokens=[],this.tokens.links=Object.create(null),this.options=A||cu,this.options.tokenizer=this.options.tokenizer||new Qy,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let e={other:ic,block:By.normal,inline:cm.normal};this.options.pedantic?(e.block=By.pedantic,e.inline=cm.pedantic):this.options.gfm&&(e.block=By.gfm,this.options.breaks?e.inline=cm.breaks:e.inline=cm.gfm),this.tokenizer.rules=e}static get rules(){return{block:By,inline:cm}}static lex(A,e){return new ML(e).lex(A)}static lexInline(A,e){return new ML(e).inlineTokens(A)}lex(A){A=A.replace(ic.carriageReturn,` +`),this.blockTokens(A,this.tokens);for(let e=0;e(n=r.call({lexer:this},A,e))?(A=A.substring(n.raw.length),e.push(n),!0):!1))continue;if(n=this.tokenizer.space(A)){A=A.substring(n.raw.length);let r=e.at(-1);n.raw.length===1&&r!==void 0?r.raw+=` +`:e.push(n);continue}if(n=this.tokenizer.code(A)){A=A.substring(n.raw.length);let r=e.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=` +`+n.raw,r.text+=` +`+n.text,this.inlineQueue.at(-1).src=r.text):e.push(n);continue}if(n=this.tokenizer.fences(A)){A=A.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.heading(A)){A=A.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.hr(A)){A=A.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.blockquote(A)){A=A.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.list(A)){A=A.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.html(A)){A=A.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.def(A)){A=A.substring(n.raw.length);let r=e.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=` +`+n.raw,r.text+=` +`+n.raw,this.inlineQueue.at(-1).src=r.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title});continue}if(n=this.tokenizer.table(A)){A=A.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.lheading(A)){A=A.substring(n.raw.length),e.push(n);continue}let o=A;if(this.options.extensions?.startBlock){let r=1/0,s=A.slice(1),a;this.options.extensions.startBlock.forEach(c=>{a=c.call({lexer:this},s),typeof a=="number"&&a>=0&&(r=Math.min(r,a))}),r<1/0&&r>=0&&(o=A.substring(0,r+1))}if(this.state.top&&(n=this.tokenizer.paragraph(o))){let r=e.at(-1);i&&r?.type==="paragraph"?(r.raw+=` +`+n.raw,r.text+=` +`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):e.push(n),i=o.length!==A.length,A=A.substring(n.raw.length);continue}if(n=this.tokenizer.text(A)){A=A.substring(n.raw.length);let r=e.at(-1);r?.type==="text"?(r.raw+=` +`+n.raw,r.text+=` +`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):e.push(n);continue}if(A){let r="Infinite loop on byte: "+A.charCodeAt(0);if(this.options.silent){console.error(r);break}else throw new Error(r)}}return this.state.top=!0,e}inline(A,e=[]){return this.inlineQueue.push({src:A,tokens:e}),e}inlineTokens(A,e=[]){let i=A,n=null;if(this.tokens.links){let s=Object.keys(this.tokens.links);if(s.length>0)for(;(n=this.tokenizer.rules.inline.reflinkSearch.exec(i))!=null;)s.includes(n[0].slice(n[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(n=this.tokenizer.rules.inline.anyPunctuation.exec(i))!=null;)i=i.slice(0,n.index)+"++"+i.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(n=this.tokenizer.rules.inline.blockSkip.exec(i))!=null;)i=i.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let o=!1,r="";for(;A;){o||(r=""),o=!1;let s;if(this.options.extensions?.inline?.some(c=>(s=c.call({lexer:this},A,e))?(A=A.substring(s.raw.length),e.push(s),!0):!1))continue;if(s=this.tokenizer.escape(A)){A=A.substring(s.raw.length),e.push(s);continue}if(s=this.tokenizer.tag(A)){A=A.substring(s.raw.length),e.push(s);continue}if(s=this.tokenizer.link(A)){A=A.substring(s.raw.length),e.push(s);continue}if(s=this.tokenizer.reflink(A,this.tokens.links)){A=A.substring(s.raw.length);let c=e.at(-1);s.type==="text"&&c?.type==="text"?(c.raw+=s.raw,c.text+=s.text):e.push(s);continue}if(s=this.tokenizer.emStrong(A,i,r)){A=A.substring(s.raw.length),e.push(s);continue}if(s=this.tokenizer.codespan(A)){A=A.substring(s.raw.length),e.push(s);continue}if(s=this.tokenizer.br(A)){A=A.substring(s.raw.length),e.push(s);continue}if(s=this.tokenizer.del(A)){A=A.substring(s.raw.length),e.push(s);continue}if(s=this.tokenizer.autolink(A)){A=A.substring(s.raw.length),e.push(s);continue}if(!this.state.inLink&&(s=this.tokenizer.url(A))){A=A.substring(s.raw.length),e.push(s);continue}let a=A;if(this.options.extensions?.startInline){let c=1/0,l=A.slice(1),d;this.options.extensions.startInline.forEach(C=>{d=C.call({lexer:this},l),typeof d=="number"&&d>=0&&(c=Math.min(c,d))}),c<1/0&&c>=0&&(a=A.substring(0,c+1))}if(s=this.tokenizer.inlineText(a)){A=A.substring(s.raw.length),s.raw.slice(-1)!=="_"&&(r=s.raw.slice(-1)),o=!0;let c=e.at(-1);c?.type==="text"?(c.raw+=s.raw,c.text+=s.text):e.push(s);continue}if(A){let c="Infinite loop on byte: "+A.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return e}},G1=class{options;parser;constructor(t){this.options=t||cu}space(t){return""}code({text:t,lang:A,escaped:e}){let i=(A||"").match(ic.notSpaceStart)?.[0],n=t.replace(ic.endingNewline,"")+` +`;return i?'
              '+(e?n:Z0(n,!0))+`
              +`:"
              "+(e?n:Z0(n,!0))+`
              +`}blockquote({tokens:t}){return`
              +${this.parser.parse(t)}
              +`}html({text:t}){return t}heading({tokens:t,depth:A}){return`${this.parser.parseInline(t)} +`}hr(t){return`
              +`}list(t){let A=t.ordered,e=t.start,i="";for(let r=0;r +`+i+" +`}listitem(t){let A="";if(t.task){let e=this.checkbox({checked:!!t.checked});t.loose?t.tokens[0]?.type==="paragraph"?(t.tokens[0].text=e+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=e+" "+Z0(t.tokens[0].tokens[0].text),t.tokens[0].tokens[0].escaped=!0)):t.tokens.unshift({type:"text",raw:e+" ",text:e+" ",escaped:!0}):A+=e+" "}return A+=this.parser.parse(t.tokens,!!t.loose),`
            • ${A}
            • +`}checkbox({checked:t}){return"'}paragraph({tokens:t}){return`

              ${this.parser.parseInline(t)}

              +`}table(t){let A="",e="";for(let n=0;n${i}`),` + +`+A+` +`+i+`
              +`}tablerow({text:t}){return` +${t} +`}tablecell(t){let A=this.parser.parseInline(t.tokens),e=t.header?"th":"td";return(t.align?`<${e} align="${t.align}">`:`<${e}>`)+A+` +`}strong({tokens:t}){return`${this.parser.parseInline(t)}`}em({tokens:t}){return`${this.parser.parseInline(t)}`}codespan({text:t}){return`${Z0(t,!0)}`}br(t){return"
              "}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:A,tokens:e}){let i=this.parser.parseInline(e),n=U$(t);if(n===null)return i;t=n;let o='
              ",o}image({href:t,title:A,text:e,tokens:i}){i&&(e=this.parser.parseInline(i,this.parser.textRenderer));let n=U$(t);if(n===null)return Z0(e);t=n;let o=`${e}{let r=n[o].flat(1/0);e=e.concat(this.walkTokens(r,A))}):n.tokens&&(e=e.concat(this.walkTokens(n.tokens,A)))}}return e}use(...t){let A=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(e=>{let i=ae({},e);if(i.async=this.defaults.async||i.async||!1,e.extensions&&(e.extensions.forEach(n=>{if(!n.name)throw new Error("extension name required");if("renderer"in n){let o=A.renderers[n.name];o?A.renderers[n.name]=function(...r){let s=n.renderer.apply(this,r);return s===!1&&(s=o.apply(this,r)),s}:A.renderers[n.name]=n.renderer}if("tokenizer"in n){if(!n.level||n.level!=="block"&&n.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let o=A[n.level];o?o.unshift(n.tokenizer):A[n.level]=[n.tokenizer],n.start&&(n.level==="block"?A.startBlock?A.startBlock.push(n.start):A.startBlock=[n.start]:n.level==="inline"&&(A.startInline?A.startInline.push(n.start):A.startInline=[n.start]))}"childTokens"in n&&n.childTokens&&(A.childTokens[n.name]=n.childTokens)}),i.extensions=A),e.renderer){let n=this.defaults.renderer||new G1(this.defaults);for(let o in e.renderer){if(!(o in n))throw new Error(`renderer '${o}' does not exist`);if(["options","parser"].includes(o))continue;let r=o,s=e.renderer[r],a=n[r];n[r]=(...c)=>{let l=s.apply(n,c);return l===!1&&(l=a.apply(n,c)),l||""}}i.renderer=n}if(e.tokenizer){let n=this.defaults.tokenizer||new Qy(this.defaults);for(let o in e.tokenizer){if(!(o in n))throw new Error(`tokenizer '${o}' does not exist`);if(["options","rules","lexer"].includes(o))continue;let r=o,s=e.tokenizer[r],a=n[r];n[r]=(...c)=>{let l=s.apply(n,c);return l===!1&&(l=a.apply(n,c)),l}}i.tokenizer=n}if(e.hooks){let n=this.defaults.hooks||new Ey;for(let o in e.hooks){if(!(o in n))throw new Error(`hook '${o}' does not exist`);if(["options","block"].includes(o))continue;let r=o,s=e.hooks[r],a=n[r];Ey.passThroughHooks.has(o)?n[r]=c=>{if(this.defaults.async)return Promise.resolve(s.call(n,c)).then(d=>a.call(n,d));let l=s.call(n,c);return a.call(n,l)}:n[r]=(...c)=>{let l=s.apply(n,c);return l===!1&&(l=a.apply(n,c)),l}}i.hooks=n}if(e.walkTokens){let n=this.defaults.walkTokens,o=e.walkTokens;i.walkTokens=function(r){let s=[];return s.push(o.call(this,r)),n&&(s=s.concat(n.call(this,r))),s}}this.defaults=ae(ae({},this.defaults),i)}),this}setOptions(t){return this.defaults=ae(ae({},this.defaults),t),this}lexer(t,A){return h2.lex(t,A??this.defaults)}parser(t,A){return B2.parse(t,A??this.defaults)}parseMarkdown(t){return(e,i)=>{let n=ae({},i),o=ae(ae({},this.defaults),n),r=this.onError(!!o.silent,!!o.async);if(this.defaults.async===!0&&n.async===!1)return r(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return r(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return r(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));o.hooks&&(o.hooks.options=o,o.hooks.block=t);let s=o.hooks?o.hooks.provideLexer():t?h2.lex:h2.lexInline,a=o.hooks?o.hooks.provideParser():t?B2.parse:B2.parseInline;if(o.async)return Promise.resolve(o.hooks?o.hooks.preprocess(e):e).then(c=>s(c,o)).then(c=>o.hooks?o.hooks.processAllTokens(c):c).then(c=>o.walkTokens?Promise.all(this.walkTokens(c,o.walkTokens)).then(()=>c):c).then(c=>a(c,o)).then(c=>o.hooks?o.hooks.postprocess(c):c).catch(r);try{o.hooks&&(e=o.hooks.preprocess(e));let c=s(e,o);o.hooks&&(c=o.hooks.processAllTokens(c)),o.walkTokens&&this.walkTokens(c,o.walkTokens);let l=a(c,o);return o.hooks&&(l=o.hooks.postprocess(l)),l}catch(c){return r(c)}}}onError(t,A){return e=>{if(e.message+=` +Please report this to https://github.com/markedjs/marked.`,t){let i="

              An error occurred:

              "+Z0(e.message+"",!0)+"
              ";return A?Promise.resolve(i):i}if(A)return Promise.reject(e);throw e}}},au=new wDe;function Zn(t,A){return au.parse(t,A)}Zn.options=Zn.setOptions=function(t){return au.setOptions(t),Zn.defaults=au.defaults,J$(Zn.defaults),Zn};Zn.getDefaults=kL;Zn.defaults=cu;Zn.use=function(...t){return au.use(...t),Zn.defaults=au.defaults,J$(Zn.defaults),Zn};Zn.walkTokens=function(t,A){return au.walkTokens(t,A)};Zn.parseInline=au.parseInline;Zn.Parser=B2;Zn.parser=B2.parse;Zn.Renderer=G1;Zn.TextRenderer=KL;Zn.Lexer=h2;Zn.lexer=h2.lex;Zn.Tokenizer=Qy;Zn.Hooks=Ey;Zn.parse=Zn;var O6A=Zn.options,J6A=Zn.setOptions,Y6A=Zn.use,H6A=Zn.walkTokens,z6A=Zn.parseInline;var P6A=B2.parse,j6A=h2.lex;var yDe=["*"],DDe="Copy",vDe="Copied",bDe=(()=>{class t{constructor(){this._buttonClick$=new je,this.copied$=this._buttonClick$.pipe(Si(()=>Bi(dA(!0),MI(3e3).pipe(jh(!1)))),Ha(),za(1)),this.copiedText$=this.copied$.pipe(In(!1),aA(e=>e?vDe:DDe))}onCopyToClipboardClick(){this._buttonClick$.next()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=xe({type:t,selectors:[["markdown-clipboard"]],decls:4,vars:7,consts:[[1,"markdown-clipboard-button",3,"click"]],template:function(i,n){i&1&&(m(0,"button",0),Ii(1,"async"),ee("click",function(){return n.onCopyToClipboardClick()}),T(2),Ii(3,"async"),p()),i&2&&(iA("copied",Qi(1,3,n.copied$)),y(2),Pe(Qi(3,5,n.copiedText$)))},dependencies:[ts],encapsulation:2,changeDetection:0})}}return t})(),MDe=new re("CLIPBOARD_OPTIONS");var UL=function(t){return t.CommandLine="command-line",t.LineHighlight="line-highlight",t.LineNumbers="line-numbers",t}(UL||{}),$$=new re("MARKED_EXTENSIONS"),SDe=new re("MARKED_OPTIONS"),kDe=new re("MERMAID_OPTIONS"),xDe="[ngx-markdown] When using the `emoji` attribute you *have to* include Emoji-Toolkit files to `angular.json` or use imports. See README for more information",_De="[ngx-markdown] When using the `katex` attribute you *have to* include KaTeX files to `angular.json` or use imports. See README for more information",RDe="[ngx-markdown] When using the `mermaid` attribute you *have to* include Mermaid files to `angular.json` or use imports. See README for more information",NDe="[ngx-markdown] When using the `clipboard` attribute you *have to* include Clipboard files to `angular.json` or use imports. See README for more information",LDe="[ngx-markdown] When using the `clipboard` attribute you *have to* provide the `viewContainerRef` parameter to `MarkdownService.render()` function",FDe="[ngx-markdown] When using the `src` attribute you *have to* pass the `HttpClient` as a parameter of the `forRoot` method. See README for more information",eee=new re("SECURITY_CONTEXT");var Aee=(()=>{class t{get options(){return this._options}set options(e){this._options=ae(ae({},this.DEFAULT_MARKED_OPTIONS),e)}get renderer(){return this.options.renderer}set renderer(e){this.options.renderer=e}constructor(e,i,n,o,r,s,a,c){this.clipboardOptions=e,this.extensions=i,this.mermaidOptions=o,this.platform=r,this.securityContext=s,this.http=a,this.sanitizer=c,this.DEFAULT_MARKED_OPTIONS={renderer:new G1},this.DEFAULT_KATEX_OPTIONS={delimiters:[{left:"$$",right:"$$",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}]},this.DEFAULT_MERMAID_OPTIONS={startOnLoad:!1},this.DEFAULT_CLIPBOARD_OPTIONS={buttonComponent:void 0},this.DEFAULT_PARSE_OPTIONS={decodeHtml:!1,inline:!1,emoji:!1,mermaid:!1,markedOptions:void 0,disableSanitizer:!1},this.DEFAULT_RENDER_OPTIONS={clipboard:!1,clipboardOptions:void 0,katex:!1,katexOptions:void 0,mermaid:!1,mermaidOptions:void 0},this._reload$=new je,this.reload$=this._reload$.asObservable(),this.options=n}parse(e,i=this.DEFAULT_PARSE_OPTIONS){let{decodeHtml:n,inline:o,emoji:r,mermaid:s,disableSanitizer:a}=i,c=ae(ae({},this.options),i.markedOptions),l=c.renderer||this.renderer||new G1;this.extensions&&(this.renderer=this.extendsRendererForExtensions(l)),s&&(this.renderer=this.extendsRendererForMermaid(l));let d=this.trimIndentation(e),C=n?this.decodeHtml(d):d,I=r?this.parseEmoji(C):C,u=this.parseMarked(I,c,o);return(a?u:this.sanitizer.sanitize(this.securityContext,u))||""}render(e,i=this.DEFAULT_RENDER_OPTIONS,n){let{clipboard:o,clipboardOptions:r,katex:s,katexOptions:a,mermaid:c,mermaidOptions:l}=i;s&&this.renderKatex(e,ae(ae({},this.DEFAULT_KATEX_OPTIONS),a)),c&&this.renderMermaid(e,ae(ae(ae({},this.DEFAULT_MERMAID_OPTIONS),this.mermaidOptions),l)),o&&this.renderClipboard(e,n,ae(ae(ae({},this.DEFAULT_CLIPBOARD_OPTIONS),this.clipboardOptions),r)),this.highlight(e)}reload(){this._reload$.next()}getSource(e){if(!this.http)throw new Error(FDe);return this.http.get(e,{responseType:"text"}).pipe(aA(i=>this.handleExtension(e,i)))}highlight(e){if(!H0(this.platform)||typeof Prism>"u"||typeof Prism.highlightAllUnder>"u")return;e||(e=document);let i=e.querySelectorAll('pre code:not([class*="language-"])');Array.prototype.forEach.call(i,n=>n.classList.add("language-none")),Prism.highlightAllUnder(e)}decodeHtml(e){if(!H0(this.platform))return e;let i=document.createElement("textarea");return i.innerHTML=e,i.value}extendsRendererForExtensions(e){let i=e;return i.\u0275NgxMarkdownRendererExtendedForExtensions===!0||(this.extensions?.length>0&&Zn.use(...this.extensions),i.\u0275NgxMarkdownRendererExtendedForExtensions=!0),e}extendsRendererForMermaid(e){let i=e;if(i.\u0275NgxMarkdownRendererExtendedForMermaid===!0)return e;let n=e.code;return e.code=o=>o.lang==="mermaid"?`
              ${o.text}
              `:n(o),i.\u0275NgxMarkdownRendererExtendedForMermaid=!0,e}handleExtension(e,i){let n=e.lastIndexOf("://"),o=n>-1?e.substring(n+4):e,r=o.lastIndexOf("/"),s=r>-1?o.substring(r+1).split("?")[0]:"",a=s.lastIndexOf("."),c=a>-1?s.substring(a+1):"";return c&&c!=="md"?"```"+c+` +`+i+"\n```":i}parseMarked(e,i,n=!1){if(i.renderer){let o=ae({},i.renderer);delete o.\u0275NgxMarkdownRendererExtendedForExtensions,delete o.\u0275NgxMarkdownRendererExtendedForMermaid,delete i.renderer,Zn.use({renderer:o})}return n?Zn.parseInline(e,i):Zn.parse(e,i)}parseEmoji(e){if(!H0(this.platform))return e;if(typeof joypixels>"u"||typeof joypixels.shortnameToUnicode>"u")throw new Error(xDe);return joypixels.shortnameToUnicode(e)}renderKatex(e,i){if(H0(this.platform)){if(typeof katex>"u"||typeof renderMathInElement>"u")throw new Error(_De);renderMathInElement(e,i)}}renderClipboard(e,i,n){if(!H0(this.platform))return;if(typeof ClipboardJS>"u")throw new Error(NDe);if(!i)throw new Error(LDe);let{buttonComponent:o,buttonTemplate:r}=n,s=e.querySelectorAll("pre");for(let a=0;ad.classList.add("hover"),l.onmouseleave=()=>d.classList.remove("hover");let C;if(o){let u=i.createComponent(o);C=u.hostView,u.changeDetectorRef.markForCheck()}else if(r)C=i.createEmbeddedView(r);else{let u=i.createComponent(bDe);C=u.hostView,u.changeDetectorRef.markForCheck()}let I;C.rootNodes.forEach(u=>{d.appendChild(u),I=new ClipboardJS(u,{text:()=>c.innerText})}),C.onDestroy(()=>I.destroy())}}renderMermaid(e,i=this.DEFAULT_MERMAID_OPTIONS){if(!H0(this.platform))return;if(typeof mermaid>"u"||typeof mermaid.initialize>"u")throw new Error(RDe);let n=e.querySelectorAll(".mermaid");n.length!==0&&(mermaid.initialize(i),mermaid.run({nodes:n}))}trimIndentation(e){if(!e)return"";let i;return e.split(` +`).map(n=>{let o=i;return n.length>0&&(o=isNaN(o)?n.search(/\S|$/):Math.min(n.search(/\S|$/),o)),isNaN(i)&&(i=o),o?n.substring(o):n}).join(` +`)}static{this.\u0275fac=function(i){return new(i||t)(UA(MDe,8),UA($$,8),UA(SDe,8),UA(kDe,8),UA(O0),UA(eee),UA(wa,8),UA(dl))}}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return t})(),wy=(()=>{class t{get disableSanitizer(){return this._disableSanitizer}set disableSanitizer(e){this._disableSanitizer=this.coerceBooleanProperty(e)}get inline(){return this._inline}set inline(e){this._inline=this.coerceBooleanProperty(e)}get clipboard(){return this._clipboard}set clipboard(e){this._clipboard=this.coerceBooleanProperty(e)}get emoji(){return this._emoji}set emoji(e){this._emoji=this.coerceBooleanProperty(e)}get katex(){return this._katex}set katex(e){this._katex=this.coerceBooleanProperty(e)}get mermaid(){return this._mermaid}set mermaid(e){this._mermaid=this.coerceBooleanProperty(e)}get lineHighlight(){return this._lineHighlight}set lineHighlight(e){this._lineHighlight=this.coerceBooleanProperty(e)}get lineNumbers(){return this._lineNumbers}set lineNumbers(e){this._lineNumbers=this.coerceBooleanProperty(e)}get commandLine(){return this._commandLine}set commandLine(e){this._commandLine=this.coerceBooleanProperty(e)}constructor(e,i,n){this.element=e,this.markdownService=i,this.viewContainerRef=n,this.error=new Ve,this.load=new Ve,this.ready=new Ve,this._clipboard=!1,this._commandLine=!1,this._disableSanitizer=!1,this._emoji=!1,this._inline=!1,this._katex=!1,this._lineHighlight=!1,this._lineNumbers=!1,this._mermaid=!1,this.destroyed$=new je}ngOnChanges(){this.loadContent()}loadContent(){if(this.data!=null){this.handleData();return}if(this.src!=null){this.handleSrc();return}}ngAfterViewInit(){!this.data&&!this.src&&this.handleTransclusion(),this.markdownService.reload$.pipe(mt(this.destroyed$)).subscribe(()=>this.loadContent())}ngOnDestroy(){this.destroyed$.next(),this.destroyed$.complete()}render(e,i=!1){return Ci(this,null,function*(){let n={decodeHtml:i,inline:this.inline,emoji:this.emoji,mermaid:this.mermaid,disableSanitizer:this.disableSanitizer},o={clipboard:this.clipboard,clipboardOptions:this.getClipboardOptions(),katex:this.katex,katexOptions:this.katexOptions,mermaid:this.mermaid,mermaidOptions:this.mermaidOptions},r=yield this.markdownService.parse(e,n);this.element.nativeElement.innerHTML=r,this.handlePlugins(),this.markdownService.render(this.element.nativeElement,o,this.viewContainerRef),this.ready.emit()})}coerceBooleanProperty(e){return e!=null&&`${String(e)}`!="false"}getClipboardOptions(){if(this.clipboardButtonComponent||this.clipboardButtonTemplate)return{buttonComponent:this.clipboardButtonComponent,buttonTemplate:this.clipboardButtonTemplate}}handleData(){this.render(this.data)}handleSrc(){this.markdownService.getSource(this.src).subscribe({next:e=>{this.render(e).then(()=>{this.load.emit(e)})},error:e=>this.error.emit(e)})}handleTransclusion(){this.render(this.element.nativeElement.innerHTML,!0)}handlePlugins(){this.commandLine&&(this.setPluginClass(this.element.nativeElement,UL.CommandLine),this.setPluginOptions(this.element.nativeElement,{dataFilterOutput:this.filterOutput,dataHost:this.host,dataPrompt:this.prompt,dataOutput:this.output,dataUser:this.user})),this.lineHighlight&&this.setPluginOptions(this.element.nativeElement,{dataLine:this.line,dataLineOffset:this.lineOffset}),this.lineNumbers&&(this.setPluginClass(this.element.nativeElement,UL.LineNumbers),this.setPluginOptions(this.element.nativeElement,{dataStart:this.start}))}setPluginClass(e,i){let n=e.querySelectorAll("pre");for(let o=0;o{let s=i[r];if(s){let a=this.toLispCase(r);n.item(o).setAttribute(a,s.toString())}})}toLispCase(e){let i=e.match(/([A-Z])/g);if(!i)return e;let n=e.toString();for(let o=0,r=i.length;o{let i=GDe(e)?_A(ae({},e),{multi:!0}):{provide:$$,useValue:e,multi:!0};return[...A,i]},[])}var tee=(()=>{class t{static forRoot(e){return{ngModule:t,providers:[Cm(e)]}}static forChild(){return{ngModule:t}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=OA({type:t})}static{this.\u0275inj=TA({imports:[Ur]})}}return t})();var Yi="primary",vm=Symbol("RouteTitle"),HL=class{params;constructor(A){this.params=A||{}}has(A){return Object.prototype.hasOwnProperty.call(this.params,A)}get(A){if(this.has(A)){let e=this.params[A];return Array.isArray(e)?e[0]:e}return null}getAll(A){if(this.has(A)){let e=this.params[A];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}};function du(t){return new HL(t)}function lee(t,A,e){let i=e.path.split("/");if(i.length>t.length||e.pathMatch==="full"&&(A.hasChildren()||i.lengthi[o]===n)}else return t===A}function dee(t){return t.length>0?t[t.length-1]:null}function O1(t){return I1(t)?t:v1(t)?xo(Promise.resolve(t)):dA(t)}var ODe={exact:Iee,subset:uee},Cee={exact:JDe,subset:YDe,ignored:()=>!0};function iee(t,A,e){return ODe[e.paths](t.root,A.root,e.matrixParams)&&Cee[e.queryParams](t.queryParams,A.queryParams)&&!(e.fragment==="exact"&&t.fragment!==A.fragment)}function JDe(t,A){return X0(t,A)}function Iee(t,A,e){if(!lu(t.segments,A.segments)||!vy(t.segments,A.segments,e)||t.numberOfChildren!==A.numberOfChildren)return!1;for(let i in A.children)if(!t.children[i]||!Iee(t.children[i],A.children[i],e))return!1;return!0}function YDe(t,A){return Object.keys(A).length<=Object.keys(t).length&&Object.keys(A).every(e=>gee(t[e],A[e]))}function uee(t,A,e){return hee(t,A,A.segments,e)}function hee(t,A,e,i){if(t.segments.length>e.length){let n=t.segments.slice(0,e.length);return!(!lu(n,e)||A.hasChildren()||!vy(n,e,i))}else if(t.segments.length===e.length){if(!lu(t.segments,e)||!vy(t.segments,e,i))return!1;for(let n in A.children)if(!t.children[n]||!uee(t.children[n],A.children[n],i))return!1;return!0}else{let n=e.slice(0,t.segments.length),o=e.slice(t.segments.length);return!lu(t.segments,n)||!vy(t.segments,n,i)||!t.children[Yi]?!1:hee(t.children[Yi],A,o,i)}}function vy(t,A,e){return A.every((i,n)=>Cee[e](t[n].parameters,i.parameters))}var ed=class{root;queryParams;fragment;_queryParamMap;constructor(A=new ao([],{}),e={},i=null){this.root=A,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap??=du(this.queryParams),this._queryParamMap}toString(){return PDe.serialize(this)}},ao=class{segments;children;parent=null;constructor(A,e){this.segments=A,this.children=e,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return by(this)}},K1=class{path;parameters;_parameterMap;constructor(A,e){this.path=A,this.parameters=e}get parameterMap(){return this._parameterMap??=du(this.parameters),this._parameterMap}toString(){return Eee(this)}};function HDe(t,A){return lu(t,A)&&t.every((e,i)=>X0(e.parameters,A[i].parameters))}function lu(t,A){return t.length!==A.length?!1:t.every((e,i)=>e.path===A[i].path)}function zDe(t,A){let e=[];return Object.entries(t.children).forEach(([i,n])=>{i===Yi&&(e=e.concat(A(n,i)))}),Object.entries(t.children).forEach(([i,n])=>{i!==Yi&&(e=e.concat(A(n,i)))}),e}var Cu=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:()=>new U1,providedIn:"root"})}return t})(),U1=class{parse(A){let e=new jL(A);return new ed(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(A){let e=`/${Im(A.root,!0)}`,i=qDe(A.queryParams),n=typeof A.fragment=="string"?`#${jDe(A.fragment)}`:"";return`${e}${i}${n}`}},PDe=new U1;function by(t){return t.segments.map(A=>Eee(A)).join("/")}function Im(t,A){if(!t.hasChildren())return by(t);if(A){let e=t.children[Yi]?Im(t.children[Yi],!1):"",i=[];return Object.entries(t.children).forEach(([n,o])=>{n!==Yi&&i.push(`${n}:${Im(o,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}else{let e=zDe(t,(i,n)=>n===Yi?[Im(t.children[Yi],!1)]:[`${n}:${Im(i,!1)}`]);return Object.keys(t.children).length===1&&t.children[Yi]!=null?`${by(t)}/${e[0]}`:`${by(t)}/(${e.join("//")})`}}function Bee(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function yy(t){return Bee(t).replace(/%3B/gi,";")}function jDe(t){return encodeURI(t)}function PL(t){return Bee(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function My(t){return decodeURIComponent(t)}function nee(t){return My(t.replace(/\+/g,"%20"))}function Eee(t){return`${PL(t.path)}${VDe(t.parameters)}`}function VDe(t){return Object.entries(t).map(([A,e])=>`;${PL(A)}=${PL(e)}`).join("")}function qDe(t){let A=Object.entries(t).map(([e,i])=>Array.isArray(i)?i.map(n=>`${yy(e)}=${yy(n)}`).join("&"):`${yy(e)}=${yy(i)}`).filter(e=>e);return A.length?`?${A.join("&")}`:""}var WDe=/^[^\/()?;#]+/;function TL(t){let A=t.match(WDe);return A?A[0]:""}var ZDe=/^[^\/()?;=#]+/;function XDe(t){let A=t.match(ZDe);return A?A[0]:""}var $De=/^[^=?&#]+/;function eve(t){let A=t.match($De);return A?A[0]:""}var Ave=/^[^&#]+/;function tve(t){let A=t.match(Ave);return A?A[0]:""}var jL=class{url;remaining;constructor(A){this.url=A,this.remaining=A}parseRootSegment(){return this.consumeOptional("/"),this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new ao([],{}):new ao([],this.parseChildren())}parseQueryParams(){let A={};if(this.consumeOptional("?"))do this.parseQueryParam(A);while(this.consumeOptional("&"));return A}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(this.remaining==="")return{};this.consumeOptional("/");let A=[];for(this.peekStartsWith("(")||A.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),A.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(A.length>0||Object.keys(e).length>0)&&(i[Yi]=new ao(A,e)),i}parseSegment(){let A=TL(this.remaining);if(A===""&&this.peekStartsWith(";"))throw new lA(4009,!1);return this.capture(A),new K1(My(A),this.parseMatrixParams())}parseMatrixParams(){let A={};for(;this.consumeOptional(";");)this.parseParam(A);return A}parseParam(A){let e=XDe(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){let n=TL(this.remaining);n&&(i=n,this.capture(i))}A[My(e)]=My(i)}parseQueryParam(A){let e=eve(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){let r=tve(this.remaining);r&&(i=r,this.capture(i))}let n=nee(e),o=nee(i);if(A.hasOwnProperty(n)){let r=A[n];Array.isArray(r)||(r=[r],A[n]=r),r.push(o)}else A[n]=o}parseParens(A){let e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){let i=TL(this.remaining),n=this.remaining[i.length];if(n!=="/"&&n!==")"&&n!==";")throw new lA(4010,!1);let o;i.indexOf(":")>-1?(o=i.slice(0,i.indexOf(":")),this.capture(o),this.capture(":")):A&&(o=Yi);let r=this.parseChildren();e[o]=Object.keys(r).length===1?r[Yi]:new ao([],r),this.consumeOptional("//")}return e}peekStartsWith(A){return this.remaining.startsWith(A)}consumeOptional(A){return this.peekStartsWith(A)?(this.remaining=this.remaining.substring(A.length),!0):!1}capture(A){if(!this.consumeOptional(A))throw new lA(4011,!1)}};function fee(t){return t.segments.length>0?new ao([],{[Yi]:t}):t}function Qee(t){let A={};for(let[i,n]of Object.entries(t.children)){let o=Qee(n);if(i===Yi&&o.segments.length===0&&o.hasChildren())for(let[r,s]of Object.entries(o.children))A[r]=s;else(o.segments.length>0||o.hasChildren())&&(A[i]=o)}let e=new ao(t.segments,A);return ive(e)}function ive(t){if(t.numberOfChildren===1&&t.children[Yi]){let A=t.children[Yi];return new ao(t.segments.concat(A.segments),A.children)}return t}function XB(t){return t instanceof ed}function mee(t,A,e=null,i=null){let n=pee(t);return wee(n,A,e,i)}function pee(t){let A;function e(o){let r={};for(let a of o.children){let c=e(a);r[a.outlet]=c}let s=new ao(o.url,r);return o===t&&(A=s),s}let i=e(t.root),n=fee(i);return A??n}function wee(t,A,e,i){let n=t;for(;n.parent;)n=n.parent;if(A.length===0)return OL(n,n,n,e,i);let o=nve(A);if(o.toRoot())return OL(n,n,new ao([],{}),e,i);let r=ove(o,n,t),s=r.processChildren?hm(r.segmentGroup,r.index,o.commands):Dee(r.segmentGroup,r.index,o.commands);return OL(n,r.segmentGroup,s,e,i)}function ky(t){return typeof t=="object"&&t!=null&&!t.outlets&&!t.segmentPath}function Em(t){return typeof t=="object"&&t!=null&&t.outlets}function OL(t,A,e,i,n){let o={};i&&Object.entries(i).forEach(([a,c])=>{o[a]=Array.isArray(c)?c.map(l=>`${l}`):`${c}`});let r;t===A?r=e:r=yee(t,A,e);let s=fee(Qee(r));return new ed(s,o,n)}function yee(t,A,e){let i={};return Object.entries(t.children).forEach(([n,o])=>{o===A?i[n]=e:i[n]=yee(o,A,e)}),new ao(t.segments,i)}var xy=class{isAbsolute;numberOfDoubleDots;commands;constructor(A,e,i){if(this.isAbsolute=A,this.numberOfDoubleDots=e,this.commands=i,A&&i.length>0&&ky(i[0]))throw new lA(4003,!1);let n=i.find(Em);if(n&&n!==dee(i))throw new lA(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}};function nve(t){if(typeof t[0]=="string"&&t.length===1&&t[0]==="/")return new xy(!0,0,t);let A=0,e=!1,i=t.reduce((n,o,r)=>{if(typeof o=="object"&&o!=null){if(o.outlets){let s={};return Object.entries(o.outlets).forEach(([a,c])=>{s[a]=typeof c=="string"?c.split("/"):c}),[...n,{outlets:s}]}if(o.segmentPath)return[...n,o.segmentPath]}return typeof o!="string"?[...n,o]:r===0?(o.split("/").forEach((s,a)=>{a==0&&s==="."||(a==0&&s===""?e=!0:s===".."?A++:s!=""&&n.push(s))}),n):[...n,o]},[]);return new xy(e,A,i)}var WB=class{segmentGroup;processChildren;index;constructor(A,e,i){this.segmentGroup=A,this.processChildren=e,this.index=i}};function ove(t,A,e){if(t.isAbsolute)return new WB(A,!0,0);if(!e)return new WB(A,!1,NaN);if(e.parent===null)return new WB(e,!0,0);let i=ky(t.commands[0])?0:1,n=e.segments.length-1+i;return rve(e,n,t.numberOfDoubleDots)}function rve(t,A,e){let i=t,n=A,o=e;for(;o>n;){if(o-=n,i=i.parent,!i)throw new lA(4005,!1);n=i.segments.length}return new WB(i,!1,n-o)}function sve(t){return Em(t[0])?t[0].outlets:{[Yi]:t}}function Dee(t,A,e){if(t??=new ao([],{}),t.segments.length===0&&t.hasChildren())return hm(t,A,e);let i=ave(t,A,e),n=e.slice(i.commandIndex);if(i.match&&i.pathIndexo!==Yi)&&t.children[Yi]&&t.numberOfChildren===1&&t.children[Yi].segments.length===0){let o=hm(t.children[Yi],A,e);return new ao(t.segments,o.children)}return Object.entries(i).forEach(([o,r])=>{typeof r=="string"&&(r=[r]),r!==null&&(n[o]=Dee(t.children[o],A,r))}),Object.entries(t.children).forEach(([o,r])=>{i[o]===void 0&&(n[o]=r)}),new ao(t.segments,n)}}function ave(t,A,e){let i=0,n=A,o={match:!1,pathIndex:0,commandIndex:0};for(;n=e.length)return o;let r=t.segments[n],s=e[i];if(Em(s))break;let a=`${s}`,c=i0&&a===void 0)break;if(a&&c&&typeof c=="object"&&c.outlets===void 0){if(!ree(a,c,r))return o;i+=2}else{if(!ree(a,{},r))return o;i++}n++}return{match:!0,pathIndex:n,commandIndex:i}}function VL(t,A,e){let i=t.segments.slice(0,A),n=0;for(;n{typeof i=="string"&&(i=[i]),i!==null&&(A[e]=VL(new ao([],{}),0,i))}),A}function oee(t){let A={};return Object.entries(t).forEach(([e,i])=>A[e]=`${i}`),A}function ree(t,A,e){return t==e.path&&X0(A,e.parameters)}var Sy="imperative",ys=function(t){return t[t.NavigationStart=0]="NavigationStart",t[t.NavigationEnd=1]="NavigationEnd",t[t.NavigationCancel=2]="NavigationCancel",t[t.NavigationError=3]="NavigationError",t[t.RoutesRecognized=4]="RoutesRecognized",t[t.ResolveStart=5]="ResolveStart",t[t.ResolveEnd=6]="ResolveEnd",t[t.GuardsCheckStart=7]="GuardsCheckStart",t[t.GuardsCheckEnd=8]="GuardsCheckEnd",t[t.RouteConfigLoadStart=9]="RouteConfigLoadStart",t[t.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",t[t.ChildActivationStart=11]="ChildActivationStart",t[t.ChildActivationEnd=12]="ChildActivationEnd",t[t.ActivationStart=13]="ActivationStart",t[t.ActivationEnd=14]="ActivationEnd",t[t.Scroll=15]="Scroll",t[t.NavigationSkipped=16]="NavigationSkipped",t}(ys||{}),Il=class{id;url;constructor(A,e){this.id=A,this.url=e}},T1=class extends Il{type=ys.NavigationStart;navigationTrigger;restoredState;constructor(A,e,i="imperative",n=null){super(A,e),this.navigationTrigger=i,this.restoredState=n}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}},ul=class extends Il{urlAfterRedirects;type=ys.NavigationEnd;constructor(A,e,i){super(A,e),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}},vc=function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromResolver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t}(vc||{}),$B=function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t}($B||{}),$0=class extends Il{reason;code;type=ys.NavigationCancel;constructor(A,e,i,n){super(A,e),this.reason=i,this.code=n}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}},Ad=class extends Il{reason;code;type=ys.NavigationSkipped;constructor(A,e,i,n){super(A,e),this.reason=i,this.code=n}},eE=class extends Il{error;target;type=ys.NavigationError;constructor(A,e,i,n){super(A,e),this.error=i,this.target=n}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}},fm=class extends Il{urlAfterRedirects;state;type=ys.RoutesRecognized;constructor(A,e,i,n){super(A,e),this.urlAfterRedirects=i,this.state=n}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},_y=class extends Il{urlAfterRedirects;state;type=ys.GuardsCheckStart;constructor(A,e,i,n){super(A,e),this.urlAfterRedirects=i,this.state=n}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Ry=class extends Il{urlAfterRedirects;state;shouldActivate;type=ys.GuardsCheckEnd;constructor(A,e,i,n,o){super(A,e),this.urlAfterRedirects=i,this.state=n,this.shouldActivate=o}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}},Ny=class extends Il{urlAfterRedirects;state;type=ys.ResolveStart;constructor(A,e,i,n){super(A,e),this.urlAfterRedirects=i,this.state=n}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Ly=class extends Il{urlAfterRedirects;state;type=ys.ResolveEnd;constructor(A,e,i,n){super(A,e),this.urlAfterRedirects=i,this.state=n}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Fy=class{route;type=ys.RouteConfigLoadStart;constructor(A){this.route=A}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}},Gy=class{route;type=ys.RouteConfigLoadEnd;constructor(A){this.route=A}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}},Ky=class{snapshot;type=ys.ChildActivationStart;constructor(A){this.snapshot=A}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Uy=class{snapshot;type=ys.ChildActivationEnd;constructor(A){this.snapshot=A}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Ty=class{snapshot;type=ys.ActivationStart;constructor(A){this.snapshot=A}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Oy=class{snapshot;type=ys.ActivationEnd;constructor(A){this.snapshot=A}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},AE=class{routerEvent;position;anchor;type=ys.Scroll;constructor(A,e,i){this.routerEvent=A,this.position=e,this.anchor=i}toString(){let A=this.position?`${this.position[0]}, ${this.position[1]}`:null;return`Scroll(anchor: '${this.anchor}', position: '${A}')`}},Qm=class{},tE=class{url;navigationBehaviorOptions;constructor(A,e){this.url=A,this.navigationBehaviorOptions=e}};function lve(t,A){return t.providers&&!t._injector&&(t._injector=y4(t.providers,A,`Route: ${t.path}`)),t._injector??A}function xg(t){return t.outlet||Yi}function gve(t,A){let e=t.filter(i=>xg(i)===A);return e.push(...t.filter(i=>xg(i)!==A)),e}function bm(t){if(!t)return null;if(t.routeConfig?._injector)return t.routeConfig._injector;for(let A=t.parent;A;A=A.parent){let e=A.routeConfig;if(e?._loadedInjector)return e._loadedInjector;if(e?._injector)return e._injector}return null}var Jy=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return bm(this.route?.snapshot)??this.rootInjector}constructor(A){this.rootInjector=A,this.children=new Iu(this.rootInjector)}},Iu=(()=>{class t{rootInjector;contexts=new Map;constructor(e){this.rootInjector=e}onChildOutletCreated(e,i){let n=this.getOrCreateContext(e);n.outlet=i,this.contexts.set(e,n)}onChildOutletDestroyed(e){let i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){let e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new Jy(this.rootInjector),this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}static \u0275fac=function(i){return new(i||t)(UA(Hr))};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Yy=class{_root;constructor(A){this._root=A}get root(){return this._root.value}parent(A){let e=this.pathFromRoot(A);return e.length>1?e[e.length-2]:null}children(A){let e=qL(A,this._root);return e?e.children.map(i=>i.value):[]}firstChild(A){let e=qL(A,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(A){let e=WL(A,this._root);return e.length<2?[]:e[e.length-2].children.map(n=>n.value).filter(n=>n!==A)}pathFromRoot(A){return WL(A,this._root).map(e=>e.value)}};function qL(t,A){if(t===A.value)return A;for(let e of A.children){let i=qL(t,e);if(i)return i}return null}function WL(t,A){if(t===A.value)return[A];for(let e of A.children){let i=WL(t,e);if(i.length)return i.unshift(A),i}return[]}var Cl=class{value;children;constructor(A,e){this.value=A,this.children=e}toString(){return`TreeNode(${this.value})`}};function qB(t){let A={};return t&&t.children.forEach(e=>A[e.value.outlet]=e),A}var mm=class extends Yy{snapshot;constructor(A,e){super(A),this.snapshot=e,nF(this,A)}toString(){return this.snapshot.toString()}};function vee(t){let A=dve(t),e=new Mt([new K1("",{})]),i=new Mt({}),n=new Mt({}),o=new Mt({}),r=new Mt(""),s=new Tl(e,i,o,r,n,Yi,t,A.root);return s.snapshot=A.root,new mm(new Cl(s,[]),A)}function dve(t){let A={},e={},i={},n="",o=new gu([],A,i,n,e,Yi,t,null,{});return new pm("",new Cl(o,[]))}var Tl=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(A,e,i,n,o,r,s,a){this.urlSubject=A,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=n,this.dataSubject=o,this.outlet=r,this.component=s,this._futureSnapshot=a,this.title=this.dataSubject?.pipe(aA(c=>c[vm]))??dA(void 0),this.url=A,this.params=e,this.queryParams=i,this.fragment=n,this.data=o}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(aA(A=>du(A))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(aA(A=>du(A))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}};function Hy(t,A,e="emptyOnly"){let i,{routeConfig:n}=t;return A!==null&&(e==="always"||n?.path===""||!A.component&&!A.routeConfig?.loadComponent)?i={params:ae(ae({},A.params),t.params),data:ae(ae({},A.data),t.data),resolve:ae(ae(ae(ae({},t.data),A.data),n?.data),t._resolvedData)}:i={params:ae({},t.params),data:ae({},t.data),resolve:ae(ae({},t.data),t._resolvedData??{})},n&&Mee(n)&&(i.resolve[vm]=n.title),i}var gu=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;get title(){return this.data?.[vm]}constructor(A,e,i,n,o,r,s,a,c){this.url=A,this.params=e,this.queryParams=i,this.fragment=n,this.data=o,this.outlet=r,this.component=s,this.routeConfig=a,this._resolve=c}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=du(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=du(this.queryParams),this._queryParamMap}toString(){let A=this.url.map(i=>i.toString()).join("/"),e=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${A}', path:'${e}')`}},pm=class extends Yy{url;constructor(A,e){super(e),this.url=A,nF(this,e)}toString(){return bee(this._root)}};function nF(t,A){A.value._routerState=t,A.children.forEach(e=>nF(t,e))}function bee(t){let A=t.children.length>0?` { ${t.children.map(bee).join(", ")} } `:"";return`${t.value}${A}`}function JL(t){if(t.snapshot){let A=t.snapshot,e=t._futureSnapshot;t.snapshot=e,X0(A.queryParams,e.queryParams)||t.queryParamsSubject.next(e.queryParams),A.fragment!==e.fragment&&t.fragmentSubject.next(e.fragment),X0(A.params,e.params)||t.paramsSubject.next(e.params),TDe(A.url,e.url)||t.urlSubject.next(e.url),X0(A.data,e.data)||t.dataSubject.next(e.data)}else t.snapshot=t._futureSnapshot,t.dataSubject.next(t._futureSnapshot.data)}function ZL(t,A){let e=X0(t.params,A.params)&&HDe(t.url,A.url),i=!t.parent!=!A.parent;return e&&!i&&(!t.parent||ZL(t.parent,A.parent))}function Mee(t){return typeof t.title=="string"||t.title===null}var See=new re(""),oF=(()=>{class t{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=Yi;activateEvents=new Ve;deactivateEvents=new Ve;attachEvents=new Ve;detachEvents=new Ve;routerOutletData=lt(void 0);parentContexts=E(Iu);location=E(xn);changeDetector=E(ut);inputBinder=E(Mm,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(e){if(e.name){let{firstChange:i,previousValue:n}=e.name;if(i)return;this.isTrackedInParentContexts(n)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(n)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new lA(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new lA(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new lA(4012,!1);this.location.detach();let e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){let e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new lA(4013,!1);this._activatedRoute=e;let n=this.location,r=e.snapshot.component,s=this.parentContexts.getOrCreateContext(this.name).children,a=new XL(e,s,n.injector,this.routerOutletData);this.activated=n.createComponent(r,{index:n.length,injector:a,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[ti]})}return t})(),XL=class{route;childContexts;parent;outletData;constructor(A,e,i,n){this.route=A,this.childContexts=e,this.parent=i,this.outletData=n}get(A,e){return A===Tl?this.route:A===Iu?this.childContexts:A===See?this.outletData:this.parent.get(A,e)}},Mm=new re(""),rF=(()=>{class t{outletDataSubscriptions=new Map;bindActivatedRouteToOutletComponent(e){this.unsubscribeFromRouteData(e),this.subscribeToRouteData(e)}unsubscribeFromRouteData(e){this.outletDataSubscriptions.get(e)?.unsubscribe(),this.outletDataSubscriptions.delete(e)}subscribeToRouteData(e){let{activatedRoute:i}=e,n=uc([i.queryParams,i.params,i.data]).pipe(Si(([o,r,s],a)=>(s=ae(ae(ae({},o),r),s),a===0?dA(s):Promise.resolve(s)))).subscribe(o=>{if(!e.isActivated||!e.activatedComponentRef||e.activatedRoute!==i||i.component===null){this.unsubscribeFromRouteData(e);return}let r=LW(i.component);if(!r){this.unsubscribeFromRouteData(e);return}for(let{templateName:s}of r.inputs)e.activatedComponentRef.setInput(s,o[s])});this.outletDataSubscriptions.set(e,n)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac})}return t})(),sF=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(i,n){i&1&&ve(0,"router-outlet")},dependencies:[oF],encapsulation:2})}return t})();function aF(t){let A=t.children&&t.children.map(aF),e=A?_A(ae({},t),{children:A}):ae({},t);return!e.component&&!e.loadComponent&&(A||e.loadChildren)&&e.outlet&&e.outlet!==Yi&&(e.component=sF),e}function Cve(t,A,e){let i=wm(t,A._root,e?e._root:void 0);return new mm(i,A)}function wm(t,A,e){if(e&&t.shouldReuseRoute(A.value,e.value.snapshot)){let i=e.value;i._futureSnapshot=A.value;let n=Ive(t,A,e);return new Cl(i,n)}else{if(t.shouldAttach(A.value)){let o=t.retrieve(A.value);if(o!==null){let r=o.route;return r.value._futureSnapshot=A.value,r.children=A.children.map(s=>wm(t,s)),r}}let i=uve(A.value),n=A.children.map(o=>wm(t,o));return new Cl(i,n)}}function Ive(t,A,e){return A.children.map(i=>{for(let n of e.children)if(t.shouldReuseRoute(i.value,n.value.snapshot))return wm(t,i,n);return wm(t,i)})}function uve(t){return new Tl(new Mt(t.url),new Mt(t.params),new Mt(t.queryParams),new Mt(t.fragment),new Mt(t.data),t.outlet,t.component,t)}var iE=class{redirectTo;navigationBehaviorOptions;constructor(A,e){this.redirectTo=A,this.navigationBehaviorOptions=e}},kee="ngNavigationCancelingError";function zy(t,A){let{redirectTo:e,navigationBehaviorOptions:i}=XB(A)?{redirectTo:A,navigationBehaviorOptions:void 0}:A,n=xee(!1,vc.Redirect);return n.url=e,n.navigationBehaviorOptions=i,n}function xee(t,A){let e=new Error(`NavigationCancelingError: ${t||""}`);return e[kee]=!0,e.cancellationCode=A,e}function hve(t){return _ee(t)&&XB(t.url)}function _ee(t){return!!t&&t[kee]}var Bve=(t,A,e,i)=>aA(n=>(new $L(A,n.targetRouterState,n.currentRouterState,e,i).activate(t),n)),$L=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(A,e,i,n,o){this.routeReuseStrategy=A,this.futureState=e,this.currState=i,this.forwardEvent=n,this.inputBindingEnabled=o}activate(A){let e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,A),JL(this.futureState.root),this.activateChildRoutes(e,i,A)}deactivateChildRoutes(A,e,i){let n=qB(e);A.children.forEach(o=>{let r=o.value.outlet;this.deactivateRoutes(o,n[r],i),delete n[r]}),Object.values(n).forEach(o=>{this.deactivateRouteAndItsChildren(o,i)})}deactivateRoutes(A,e,i){let n=A.value,o=e?e.value:null;if(n===o)if(n.component){let r=i.getContext(n.outlet);r&&this.deactivateChildRoutes(A,e,r.children)}else this.deactivateChildRoutes(A,e,i);else o&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(A,e){A.value.component&&this.routeReuseStrategy.shouldDetach(A.value.snapshot)?this.detachAndStoreRouteSubtree(A,e):this.deactivateRouteAndOutlet(A,e)}detachAndStoreRouteSubtree(A,e){let i=e.getContext(A.value.outlet),n=i&&A.value.component?i.children:e,o=qB(A);for(let r of Object.values(o))this.deactivateRouteAndItsChildren(r,n);if(i&&i.outlet){let r=i.outlet.detach(),s=i.children.onOutletDeactivated();this.routeReuseStrategy.store(A.value.snapshot,{componentRef:r,route:A,contexts:s})}}deactivateRouteAndOutlet(A,e){let i=e.getContext(A.value.outlet),n=i&&A.value.component?i.children:e,o=qB(A);for(let r of Object.values(o))this.deactivateRouteAndItsChildren(r,n);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(A,e,i){let n=qB(e);A.children.forEach(o=>{this.activateRoutes(o,n[o.value.outlet],i),this.forwardEvent(new Oy(o.value.snapshot))}),A.children.length&&this.forwardEvent(new Uy(A.value.snapshot))}activateRoutes(A,e,i){let n=A.value,o=e?e.value:null;if(JL(n),n===o)if(n.component){let r=i.getOrCreateContext(n.outlet);this.activateChildRoutes(A,e,r.children)}else this.activateChildRoutes(A,e,i);else if(n.component){let r=i.getOrCreateContext(n.outlet);if(this.routeReuseStrategy.shouldAttach(n.snapshot)){let s=this.routeReuseStrategy.retrieve(n.snapshot);this.routeReuseStrategy.store(n.snapshot,null),r.children.onOutletReAttached(s.contexts),r.attachRef=s.componentRef,r.route=s.route.value,r.outlet&&r.outlet.attach(s.componentRef,s.route.value),JL(s.route.value),this.activateChildRoutes(A,null,r.children)}else r.attachRef=null,r.route=n,r.outlet&&r.outlet.activateWith(n,r.injector),this.activateChildRoutes(A,null,r.children)}else this.activateChildRoutes(A,null,i)}},Py=class{path;route;constructor(A){this.path=A,this.route=this.path[this.path.length-1]}},ZB=class{component;route;constructor(A,e){this.component=A,this.route=e}};function Eve(t,A,e){let i=t._root,n=A?A._root:null;return um(i,n,e,[i.value])}function fve(t){let A=t.routeConfig?t.routeConfig.canActivateChild:null;return!A||A.length===0?null:{node:t,guards:A}}function oE(t,A){let e=Symbol(),i=A.get(t,e);return i===e?typeof t=="function"&&!Kj(t)?t:A.get(t):i}function um(t,A,e,i,n={canDeactivateChecks:[],canActivateChecks:[]}){let o=qB(A);return t.children.forEach(r=>{Qve(r,o[r.value.outlet],e,i.concat([r.value]),n),delete o[r.value.outlet]}),Object.entries(o).forEach(([r,s])=>Bm(s,e.getContext(r),n)),n}function Qve(t,A,e,i,n={canDeactivateChecks:[],canActivateChecks:[]}){let o=t.value,r=A?A.value:null,s=e?e.getContext(t.value.outlet):null;if(r&&o.routeConfig===r.routeConfig){let a=mve(r,o,o.routeConfig.runGuardsAndResolvers);a?n.canActivateChecks.push(new Py(i)):(o.data=r.data,o._resolvedData=r._resolvedData),o.component?um(t,A,s?s.children:null,i,n):um(t,A,e,i,n),a&&s&&s.outlet&&s.outlet.isActivated&&n.canDeactivateChecks.push(new ZB(s.outlet.component,r))}else r&&Bm(A,s,n),n.canActivateChecks.push(new Py(i)),o.component?um(t,null,s?s.children:null,i,n):um(t,null,e,i,n);return n}function mve(t,A,e){if(typeof e=="function")return e(t,A);switch(e){case"pathParamsChange":return!lu(t.url,A.url);case"pathParamsOrQueryParamsChange":return!lu(t.url,A.url)||!X0(t.queryParams,A.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!ZL(t,A)||!X0(t.queryParams,A.queryParams);case"paramsChange":default:return!ZL(t,A)}}function Bm(t,A,e){let i=qB(t),n=t.value;Object.entries(i).forEach(([o,r])=>{n.component?A?Bm(r,A.children.getContext(o),e):Bm(r,null,e):Bm(r,A,e)}),n.component?A&&A.outlet&&A.outlet.isActivated?e.canDeactivateChecks.push(new ZB(A.outlet.component,n)):e.canDeactivateChecks.push(new ZB(null,n)):e.canDeactivateChecks.push(new ZB(null,n))}function Sm(t){return typeof t=="function"}function pve(t){return typeof t=="boolean"}function wve(t){return t&&Sm(t.canLoad)}function yve(t){return t&&Sm(t.canActivate)}function Dve(t){return t&&Sm(t.canActivateChild)}function vve(t){return t&&Sm(t.canDeactivate)}function bve(t){return t&&Sm(t.canMatch)}function Ree(t){return t instanceof mg||t?.name==="EmptyError"}var Dy=Symbol("INITIAL_VALUE");function nE(){return Si(t=>uc(t.map(A=>A.pipe(Pn(1),In(Dy)))).pipe(aA(A=>{for(let e of A)if(e!==!0){if(e===Dy)return Dy;if(e===!1||Mve(e))return e}return!0}),$A(A=>A!==Dy),Pn(1)))}function Mve(t){return XB(t)||t instanceof iE}function Sve(t,A){return Lr(e=>{let{targetSnapshot:i,currentSnapshot:n,guards:{canActivateChecks:o,canDeactivateChecks:r}}=e;return r.length===0&&o.length===0?dA(_A(ae({},e),{guardsResult:!0})):kve(r,i,n,t).pipe(Lr(s=>s&&pve(s)?xve(i,o,t,A):dA(s)),aA(s=>_A(ae({},e),{guardsResult:s})))})}function kve(t,A,e,i){return xo(t).pipe(Lr(n=>Fve(n.component,n.route,e,A,i)),_l(n=>n!==!0,!0))}function xve(t,A,e,i){return xo(A).pipe(M0(n=>h1(Rve(n.route.parent,i),_ve(n.route,i),Lve(t,n.path,e),Nve(t,n.route,e))),_l(n=>n!==!0,!0))}function _ve(t,A){return t!==null&&A&&A(new Ty(t)),dA(!0)}function Rve(t,A){return t!==null&&A&&A(new Ky(t)),dA(!0)}function Nve(t,A,e){let i=A.routeConfig?A.routeConfig.canActivate:null;if(!i||i.length===0)return dA(!0);let n=i.map(o=>b0(()=>{let r=bm(A)??e,s=oE(o,r),a=yve(s)?s.canActivate(A,t):Xr(r,()=>s(A,t));return O1(a).pipe(_l())}));return dA(n).pipe(nE())}function Lve(t,A,e){let i=A[A.length-1],o=A.slice(0,A.length-1).reverse().map(r=>fve(r)).filter(r=>r!==null).map(r=>b0(()=>{let s=r.guards.map(a=>{let c=bm(r.node)??e,l=oE(a,c),d=Dve(l)?l.canActivateChild(i,t):Xr(c,()=>l(i,t));return O1(d).pipe(_l())});return dA(s).pipe(nE())}));return dA(o).pipe(nE())}function Fve(t,A,e,i,n){let o=A&&A.routeConfig?A.routeConfig.canDeactivate:null;if(!o||o.length===0)return dA(!0);let r=o.map(s=>{let a=bm(A)??n,c=oE(s,a),l=vve(c)?c.canDeactivate(t,A,e,i):Xr(a,()=>c(t,A,e,i));return O1(l).pipe(_l())});return dA(r).pipe(nE())}function Gve(t,A,e,i){let n=A.canLoad;if(n===void 0||n.length===0)return dA(!0);let o=n.map(r=>{let s=oE(r,t),a=wve(s)?s.canLoad(A,e):Xr(t,()=>s(A,e));return O1(a)});return dA(o).pipe(nE(),Nee(i))}function Nee(t){return Yk(Pt(A=>{if(typeof A!="boolean")throw zy(t,A)}),aA(A=>A===!0))}function Kve(t,A,e,i){let n=A.canMatch;if(!n||n.length===0)return dA(!0);let o=n.map(r=>{let s=oE(r,t),a=bve(s)?s.canMatch(A,e):Xr(t,()=>s(A,e));return O1(a)});return dA(o).pipe(nE(),Nee(i))}var ym=class{segmentGroup;constructor(A){this.segmentGroup=A||null}},Dm=class extends Error{urlTree;constructor(A){super(),this.urlTree=A}};function VB(t){return C1(new ym(t))}function Uve(t){return C1(new lA(4e3,!1))}function Tve(t){return C1(xee(!1,vc.GuardRejected))}var eF=class{urlSerializer;urlTree;constructor(A,e){this.urlSerializer=A,this.urlTree=e}lineralizeSegments(A,e){let i=[],n=e.root;for(;;){if(i=i.concat(n.segments),n.numberOfChildren===0)return dA(i);if(n.numberOfChildren>1||!n.children[Yi])return Uve(`${A.redirectTo}`);n=n.children[Yi]}}applyRedirectCommands(A,e,i,n,o){if(typeof e!="string"){let s=e,{queryParams:a,fragment:c,routeConfig:l,url:d,outlet:C,params:I,data:u,title:h}=n,B=Xr(o,()=>s({params:I,data:u,queryParams:a,fragment:c,routeConfig:l,url:d,outlet:C,title:h}));if(B instanceof ed)throw new Dm(B);e=B}let r=this.applyRedirectCreateUrlTree(e,this.urlSerializer.parse(e),A,i);if(e[0]==="/")throw new Dm(r);return r}applyRedirectCreateUrlTree(A,e,i,n){let o=this.createSegmentGroup(A,e.root,i,n);return new ed(o,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(A,e){let i={};return Object.entries(A).forEach(([n,o])=>{if(typeof o=="string"&&o[0]===":"){let s=o.substring(1);i[n]=e[s]}else i[n]=o}),i}createSegmentGroup(A,e,i,n){let o=this.createSegments(A,e.segments,i,n),r={};return Object.entries(e.children).forEach(([s,a])=>{r[s]=this.createSegmentGroup(A,a,i,n)}),new ao(o,r)}createSegments(A,e,i,n){return e.map(o=>o.path[0]===":"?this.findPosParam(A,o,n):this.findOrReturn(o,i))}findPosParam(A,e,i){let n=i[e.path.substring(1)];if(!n)throw new lA(4001,!1);return n}findOrReturn(A,e){let i=0;for(let n of e){if(n.path===A.path)return e.splice(i),n;i++}return A}},AF={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Ove(t,A,e,i,n){let o=Lee(t,A,e);return o.matched?(i=lve(A,i),Kve(i,A,e,n).pipe(aA(r=>r===!0?o:ae({},AF)))):dA(o)}function Lee(t,A,e){if(A.path==="**")return Jve(e);if(A.path==="")return A.pathMatch==="full"&&(t.hasChildren()||e.length>0)?ae({},AF):{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};let n=(A.matcher||lee)(e,t,A);if(!n)return ae({},AF);let o={};Object.entries(n.posParams??{}).forEach(([s,a])=>{o[s]=a.path});let r=n.consumed.length>0?ae(ae({},o),n.consumed[n.consumed.length-1].parameters):o;return{matched:!0,consumedSegments:n.consumed,remainingSegments:e.slice(n.consumed.length),parameters:r,positionalParamSegments:n.posParams??{}}}function Jve(t){return{matched:!0,parameters:t.length>0?dee(t).parameters:{},consumedSegments:t,remainingSegments:[],positionalParamSegments:{}}}function see(t,A,e,i){return e.length>0&&zve(t,e,i)?{segmentGroup:new ao(A,Hve(i,new ao(e,t.children))),slicedSegments:[]}:e.length===0&&Pve(t,e,i)?{segmentGroup:new ao(t.segments,Yve(t,e,i,t.children)),slicedSegments:e}:{segmentGroup:new ao(t.segments,t.children),slicedSegments:e}}function Yve(t,A,e,i){let n={};for(let o of e)if(Vy(t,A,o)&&!i[xg(o)]){let r=new ao([],{});n[xg(o)]=r}return ae(ae({},i),n)}function Hve(t,A){let e={};e[Yi]=A;for(let i of t)if(i.path===""&&xg(i)!==Yi){let n=new ao([],{});e[xg(i)]=n}return e}function zve(t,A,e){return e.some(i=>Vy(t,A,i)&&xg(i)!==Yi)}function Pve(t,A,e){return e.some(i=>Vy(t,A,i))}function Vy(t,A,e){return(t.hasChildren()||A.length>0)&&e.pathMatch==="full"?!1:e.path===""}function jve(t,A,e){return A.length===0&&!t.children[e]}var tF=class{};function Vve(t,A,e,i,n,o,r="emptyOnly"){return new iF(t,A,e,i,n,r,o).recognize()}var qve=31,iF=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(A,e,i,n,o,r,s){this.injector=A,this.configLoader=e,this.rootComponentType=i,this.config=n,this.urlTree=o,this.paramsInheritanceStrategy=r,this.urlSerializer=s,this.applyRedirects=new eF(this.urlSerializer,this.urlTree)}noMatchError(A){return new lA(4002,`'${A.segmentGroup}'`)}recognize(){let A=see(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(A).pipe(aA(({children:e,rootSnapshot:i})=>{let n=new Cl(i,e),o=new pm("",n),r=mee(i,[],this.urlTree.queryParams,this.urlTree.fragment);return r.queryParams=this.urlTree.queryParams,o.url=this.urlSerializer.serialize(r),{state:o,tree:r}}))}match(A){let e=new gu([],Object.freeze({}),Object.freeze(ae({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),Yi,this.rootComponentType,null,{});return this.processSegmentGroup(this.injector,this.config,A,Yi,e).pipe(aA(i=>({children:i,rootSnapshot:e})),br(i=>{if(i instanceof Dm)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof ym?this.noMatchError(i):i}))}processSegmentGroup(A,e,i,n,o){return i.segments.length===0&&i.hasChildren()?this.processChildren(A,e,i,o):this.processSegment(A,e,i,i.segments,n,!0,o).pipe(aA(r=>r instanceof Cl?[r]:[]))}processChildren(A,e,i,n){let o=[];for(let r of Object.keys(i.children))r==="primary"?o.unshift(r):o.push(r);return xo(o).pipe(M0(r=>{let s=i.children[r],a=gve(e,r);return this.processSegmentGroup(A,a,s,r,n)}),Xk((r,s)=>(r.push(...s),r)),B1(null),Zk(),Lr(r=>{if(r===null)return VB(i);let s=Fee(r);return Wve(s),dA(s)}))}processSegment(A,e,i,n,o,r,s){return xo(e).pipe(M0(a=>this.processSegmentAgainstRoute(a._injector??A,e,a,i,n,o,r,s).pipe(br(c=>{if(c instanceof ym)return dA(null);throw c}))),_l(a=>!!a),br(a=>{if(Ree(a))return jve(i,n,o)?dA(new tF):VB(i);throw a}))}processSegmentAgainstRoute(A,e,i,n,o,r,s,a){return xg(i)!==r&&(r===Yi||!Vy(n,o,i))?VB(n):i.redirectTo===void 0?this.matchSegmentAgainstRoute(A,n,i,o,r,a):this.allowRedirects&&s?this.expandSegmentAgainstRouteUsingRedirect(A,n,e,i,o,r,a):VB(n)}expandSegmentAgainstRouteUsingRedirect(A,e,i,n,o,r,s){let{matched:a,parameters:c,consumedSegments:l,positionalParamSegments:d,remainingSegments:C}=Lee(e,n,o);if(!a)return VB(e);typeof n.redirectTo=="string"&&n.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>qve&&(this.allowRedirects=!1));let I=new gu(o,c,Object.freeze(ae({},this.urlTree.queryParams)),this.urlTree.fragment,aee(n),xg(n),n.component??n._loadedComponent??null,n,cee(n)),u=Hy(I,s,this.paramsInheritanceStrategy);I.params=Object.freeze(u.params),I.data=Object.freeze(u.data);let h=this.applyRedirects.applyRedirectCommands(l,n.redirectTo,d,I,A);return this.applyRedirects.lineralizeSegments(n,h).pipe(Lr(B=>this.processSegment(A,i,e,B.concat(C),r,!1,s)))}matchSegmentAgainstRoute(A,e,i,n,o,r){let s=Ove(e,i,n,A,this.urlSerializer);return i.path==="**"&&(e.children={}),s.pipe(Si(a=>a.matched?(A=i._injector??A,this.getChildConfig(A,i,n).pipe(Si(({routes:c})=>{let l=i._loadedInjector??A,{parameters:d,consumedSegments:C,remainingSegments:I}=a,u=new gu(C,d,Object.freeze(ae({},this.urlTree.queryParams)),this.urlTree.fragment,aee(i),xg(i),i.component??i._loadedComponent??null,i,cee(i)),h=Hy(u,r,this.paramsInheritanceStrategy);u.params=Object.freeze(h.params),u.data=Object.freeze(h.data);let{segmentGroup:B,slicedSegments:f}=see(e,C,I,c);if(f.length===0&&B.hasChildren())return this.processChildren(l,c,B,u).pipe(aA(k=>new Cl(u,k)));if(c.length===0&&f.length===0)return dA(new Cl(u,[]));let b=xg(i)===o;return this.processSegment(l,c,B,f,b?Yi:o,!0,u).pipe(aA(k=>new Cl(u,k instanceof Cl?[k]:[])))}))):VB(e)))}getChildConfig(A,e,i){return e.children?dA({routes:e.children,injector:A}):e.loadChildren?e._loadedRoutes!==void 0?dA({routes:e._loadedRoutes,injector:e._loadedInjector}):Gve(A,e,i,this.urlSerializer).pipe(Lr(n=>n?this.configLoader.loadChildren(A,e).pipe(Pt(o=>{e._loadedRoutes=o.routes,e._loadedInjector=o.injector})):Tve(e))):dA({routes:[],injector:A})}};function Wve(t){t.sort((A,e)=>A.value.outlet===Yi?-1:e.value.outlet===Yi?1:A.value.outlet.localeCompare(e.value.outlet))}function Zve(t){let A=t.value.routeConfig;return A&&A.path===""}function Fee(t){let A=[],e=new Set;for(let i of t){if(!Zve(i)){A.push(i);continue}let n=A.find(o=>i.value.routeConfig===o.value.routeConfig);n!==void 0?(n.children.push(...i.children),e.add(n)):A.push(i)}for(let i of e){let n=Fee(i.children);A.push(new Cl(i.value,n))}return A.filter(i=>!e.has(i))}function aee(t){return t.data||{}}function cee(t){return t.resolve||{}}function Xve(t,A,e,i,n,o){return Lr(r=>Vve(t,A,e,i,r.extractedUrl,n,o).pipe(aA(({state:s,tree:a})=>_A(ae({},r),{targetSnapshot:s,urlAfterRedirects:a}))))}function $ve(t,A){return Lr(e=>{let{targetSnapshot:i,guards:{canActivateChecks:n}}=e;if(!n.length)return dA(e);let o=new Set(n.map(a=>a.route)),r=new Set;for(let a of o)if(!r.has(a))for(let c of Gee(a))r.add(c);let s=0;return xo(r).pipe(M0(a=>o.has(a)?e7e(a,i,t,A):(a.data=Hy(a,a.parent,t).resolve,dA(void 0))),Pt(()=>s++),Vh(1),Lr(a=>s===r.size?dA(e):vr))})}function Gee(t){let A=t.children.map(e=>Gee(e)).flat();return[t,...A]}function e7e(t,A,e,i){let n=t.routeConfig,o=t._resolve;return n?.title!==void 0&&!Mee(n)&&(o[vm]=n.title),A7e(o,t,A,i).pipe(aA(r=>(t._resolvedData=r,t.data=Hy(t,t.parent,e).resolve,null)))}function A7e(t,A,e,i){let n=zL(t);if(n.length===0)return dA({});let o={};return xo(n).pipe(Lr(r=>t7e(t[r],A,e,i).pipe(_l(),Pt(s=>{if(s instanceof iE)throw zy(new U1,s);o[r]=s}))),Vh(1),aA(()=>o),br(r=>Ree(r)?vr:C1(r)))}function t7e(t,A,e,i){let n=bm(A)??i,o=oE(t,n),r=o.resolve?o.resolve(A,e):Xr(n,()=>o(A,e));return O1(r)}function YL(t){return Si(A=>{let e=t(A);return e?xo(e).pipe(aA(()=>A)):dA(A)})}var cF=(()=>{class t{buildTitle(e){let i,n=e.root;for(;n!==void 0;)i=this.getResolvedTitleForRoute(n)??i,n=n.children.find(o=>o.outlet===Yi);return i}getResolvedTitleForRoute(e){return e.data[vm]}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:()=>E(Kee),providedIn:"root"})}return t})(),Kee=(()=>{class t extends cF{title;constructor(e){super(),this.title=e}updateTitle(e){let i=this.buildTitle(e);i!==void 0&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||t)(UA(UX))};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),uu=new re("",{providedIn:"root",factory:()=>({})}),rE=new re(""),qy=(()=>{class t{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=E(xW);loadComponent(e){if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return dA(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);let i=O1(e.loadComponent()).pipe(aA(Tee),Pt(o=>{this.onLoadEndListener&&this.onLoadEndListener(e),e._loadedComponent=o}),S0(()=>{this.componentLoaders.delete(e)})),n=new g1(i,()=>new je).pipe(Kh());return this.componentLoaders.set(e,n),n}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return dA({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);let o=Uee(i,this.compiler,e,this.onLoadEndListener).pipe(S0(()=>{this.childrenLoaders.delete(i)})),r=new g1(o,()=>new je).pipe(Kh());return this.childrenLoaders.set(i,r),r}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Uee(t,A,e,i){return O1(t.loadChildren()).pipe(aA(Tee),Lr(n=>n instanceof QR||Array.isArray(n)?dA(n):xo(A.compileModuleAsync(n))),aA(n=>{i&&i(t);let o,r,s=!1;return Array.isArray(n)?(r=n,s=!0):(o=n.create(e).injector,r=o.get(rE,[],{optional:!0,self:!0}).flat()),{routes:r.map(aF),injector:o}}))}function i7e(t){return t&&typeof t=="object"&&"default"in t}function Tee(t){return i7e(t)?t.default:t}var Wy=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:()=>E(n7e),providedIn:"root"})}return t})(),n7e=(()=>{class t{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),lF=new re(""),gF=new re("");function Oee(t,A,e){let i=t.get(gF),n=t.get(ht);return t.get(yA).runOutsideAngular(()=>{if(!n.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,new Promise(c=>setTimeout(c));let o,r=new Promise(c=>{o=c}),s=n.startViewTransition(()=>(o(),o7e(t))),{onViewTransitionCreated:a}=i;return a&&Xr(t,()=>a({transition:s,from:A,to:e})),r})}function o7e(t){return new Promise(A=>{Gr({read:()=>setTimeout(A)},{injector:t})})}var dF=new re(""),Zy=(()=>{class t{currentNavigation=null;currentTransition=null;lastSuccessfulNavigation=null;events=new je;transitionAbortSubject=new je;configLoader=E(qy);environmentInjector=E(Hr);destroyRef=E(Fr);urlSerializer=E(Cu);rootContexts=E(Iu);location=E(Fl);inputBindingEnabled=E(Mm,{optional:!0})!==null;titleStrategy=E(cF);options=E(uu,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=E(Wy);createViewTransition=E(lF,{optional:!0});navigationErrorHandler=E(dF,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>dA(void 0);rootComponentType=null;destroyed=!1;constructor(){let e=n=>this.events.next(new Fy(n)),i=n=>this.events.next(new Gy(n));this.configLoader.onLoadEndListener=i,this.configLoader.onLoadStartListener=e,this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(e){let i=++this.navigationId;this.transitions?.next(_A(ae({},e),{extractedUrl:this.urlHandlingStrategy.extract(e.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:i}))}setupNavigations(e){return this.transitions=new Mt(null),this.transitions.pipe($A(i=>i!==null),Si(i=>{let n=!1,o=!1;return dA(i).pipe(Si(r=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",vc.SupersededByNewNavigation),vr;this.currentTransition=i,this.currentNavigation={id:r.id,initialUrl:r.rawUrl,extractedUrl:r.extractedUrl,targetBrowserUrl:typeof r.extras.browserUrl=="string"?this.urlSerializer.parse(r.extras.browserUrl):r.extras.browserUrl,trigger:r.source,extras:r.extras,previousNavigation:this.lastSuccessfulNavigation?_A(ae({},this.lastSuccessfulNavigation),{previousNavigation:null}):null};let s=!e.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),a=r.extras.onSameUrlNavigation??e.onSameUrlNavigation;if(!s&&a!=="reload"){let c="";return this.events.next(new Ad(r.id,this.urlSerializer.serialize(r.rawUrl),c,$B.IgnoredSameUrlNavigation)),r.resolve(!1),vr}if(this.urlHandlingStrategy.shouldProcessUrl(r.rawUrl))return dA(r).pipe(Si(c=>(this.events.next(new T1(c.id,this.urlSerializer.serialize(c.extractedUrl),c.source,c.restoredState)),c.id!==this.navigationId?vr:Promise.resolve(c))),Xve(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,this.paramsInheritanceStrategy),Pt(c=>{i.targetSnapshot=c.targetSnapshot,i.urlAfterRedirects=c.urlAfterRedirects,this.currentNavigation=_A(ae({},this.currentNavigation),{finalUrl:c.urlAfterRedirects});let l=new fm(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(l)}));if(s&&this.urlHandlingStrategy.shouldProcessUrl(r.currentRawUrl)){let{id:c,extractedUrl:l,source:d,restoredState:C,extras:I}=r,u=new T1(c,this.urlSerializer.serialize(l),d,C);this.events.next(u);let h=vee(this.rootComponentType).snapshot;return this.currentTransition=i=_A(ae({},r),{targetSnapshot:h,urlAfterRedirects:l,extras:_A(ae({},I),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.finalUrl=l,dA(i)}else{let c="";return this.events.next(new Ad(r.id,this.urlSerializer.serialize(r.extractedUrl),c,$B.IgnoredByUrlHandlingStrategy)),r.resolve(!1),vr}}),Pt(r=>{let s=new _y(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects),r.targetSnapshot);this.events.next(s)}),aA(r=>(this.currentTransition=i=_A(ae({},r),{guards:Eve(r.targetSnapshot,r.currentSnapshot,this.rootContexts)}),i)),Sve(this.environmentInjector,r=>this.events.next(r)),Pt(r=>{if(i.guardsResult=r.guardsResult,r.guardsResult&&typeof r.guardsResult!="boolean")throw zy(this.urlSerializer,r.guardsResult);let s=new Ry(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects),r.targetSnapshot,!!r.guardsResult);this.events.next(s)}),$A(r=>r.guardsResult?!0:(this.cancelNavigationTransition(r,"",vc.GuardRejected),!1)),YL(r=>{if(r.guards.canActivateChecks.length!==0)return dA(r).pipe(Pt(s=>{let a=new Ny(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(a)}),Si(s=>{let a=!1;return dA(s).pipe($ve(this.paramsInheritanceStrategy,this.environmentInjector),Pt({next:()=>a=!0,complete:()=>{a||this.cancelNavigationTransition(s,"",vc.NoDataFromResolver)}}))}),Pt(s=>{let a=new Ly(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(a)}))}),YL(r=>{let s=a=>{let c=[];a.routeConfig?.loadComponent&&!a.routeConfig._loadedComponent&&c.push(this.configLoader.loadComponent(a.routeConfig).pipe(Pt(l=>{a.component=l}),aA(()=>{})));for(let l of a.children)c.push(...s(l));return c};return uc(s(r.targetSnapshot.root)).pipe(B1(null),Pn(1))}),YL(()=>this.afterPreactivation()),Si(()=>{let{currentSnapshot:r,targetSnapshot:s}=i,a=this.createViewTransition?.(this.environmentInjector,r.root,s.root);return a?xo(a).pipe(aA(()=>i)):dA(i)}),aA(r=>{let s=Cve(e.routeReuseStrategy,r.targetSnapshot,r.currentRouterState);return this.currentTransition=i=_A(ae({},r),{targetRouterState:s}),this.currentNavigation.targetRouterState=s,i}),Pt(()=>{this.events.next(new Qm)}),Bve(this.rootContexts,e.routeReuseStrategy,r=>this.events.next(r),this.inputBindingEnabled),Pn(1),Pt({next:r=>{n=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new ul(r.id,this.urlSerializer.serialize(r.extractedUrl),this.urlSerializer.serialize(r.urlAfterRedirects))),this.titleStrategy?.updateTitle(r.targetRouterState.snapshot),r.resolve(!0)},complete:()=>{n=!0}}),mt(this.transitionAbortSubject.pipe(Pt(r=>{throw r}))),S0(()=>{!n&&!o&&this.cancelNavigationTransition(i,"",vc.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation=null,this.currentTransition=null)}),br(r=>{if(this.destroyed)return i.resolve(!1),vr;if(o=!0,_ee(r))this.events.next(new $0(i.id,this.urlSerializer.serialize(i.extractedUrl),r.message,r.cancellationCode)),hve(r)?this.events.next(new tE(r.url,r.navigationBehaviorOptions)):i.resolve(!1);else{let s=new eE(i.id,this.urlSerializer.serialize(i.extractedUrl),r,i.targetSnapshot??void 0);try{let a=Xr(this.environmentInjector,()=>this.navigationErrorHandler?.(s));if(a instanceof iE){let{message:c,cancellationCode:l}=zy(this.urlSerializer,a);this.events.next(new $0(i.id,this.urlSerializer.serialize(i.extractedUrl),c,l)),this.events.next(new tE(a.redirectTo,a.navigationBehaviorOptions))}else throw this.events.next(s),r}catch(a){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(a)}}return vr}))}))}cancelNavigationTransition(e,i,n){let o=new $0(e.id,this.urlSerializer.serialize(e.extractedUrl),i,n);this.events.next(o),e.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let e=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=this.currentNavigation?.targetBrowserUrl??this.currentNavigation?.extractedUrl;return e.toString()!==i?.toString()&&!this.currentNavigation?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function r7e(t){return t!==Sy}var Jee=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:()=>E(s7e),providedIn:"root"})}return t})(),jy=class{shouldDetach(A){return!1}store(A,e){}shouldAttach(A){return!1}retrieve(A){return null}shouldReuseRoute(A,e){return A.routeConfig===e.routeConfig}},s7e=(()=>{class t extends jy{static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Yee=(()=>{class t{urlSerializer=E(Cu);options=E(uu,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=E(Fl);urlHandlingStrategy=E(Wy);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new ed;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:e,initialUrl:i,targetBrowserUrl:n}){let o=e!==void 0?this.urlHandlingStrategy.merge(e,i):i,r=n??o;return r instanceof ed?this.urlSerializer.serialize(r):r}commitTransition({targetRouterState:e,finalUrl:i,initialUrl:n}){i&&e?(this.currentUrlTree=i,this.rawUrlTree=this.urlHandlingStrategy.merge(i,n),this.routerState=e):this.rawUrlTree=n}routerState=vee(null);getRouterState(){return this.routerState}stateMemento=this.createStateMemento();updateStateMemento(){this.stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}resetInternalState({finalUrl:e}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e??this.rawUrlTree)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:()=>E(a7e),providedIn:"root"})}return t})(),a7e=(()=>{class t extends Yee{currentPageId=0;lastSuccessfulId=-1;restoredState(){return this.location.getState()}get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(e){return this.location.subscribe(i=>{i.type==="popstate"&&setTimeout(()=>{e(i.url,i.state,"popstate")})})}handleRouterEvent(e,i){e instanceof T1?this.updateStateMemento():e instanceof Ad?this.commitTransition(i):e instanceof fm?this.urlUpdateStrategy==="eager"&&(i.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(i),i)):e instanceof Qm?(this.commitTransition(i),this.urlUpdateStrategy==="deferred"&&!i.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(i),i)):e instanceof $0&&(e.code===vc.GuardRejected||e.code===vc.NoDataFromResolver)?this.restoreHistory(i):e instanceof eE?this.restoreHistory(i,!0):e instanceof ul&&(this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId)}setBrowserUrl(e,{extras:i,id:n}){let{replaceUrl:o,state:r}=i;if(this.location.isCurrentPathEqualTo(e)||o){let s=this.browserPageId,a=ae(ae({},r),this.generateNgRouterState(n,s));this.location.replaceState(e,"",a)}else{let s=ae(ae({},r),this.generateNgRouterState(n,this.browserPageId+1));this.location.go(e,"",s)}}restoreHistory(e,i=!1){if(this.canceledNavigationResolution==="computed"){let n=this.browserPageId,o=this.currentPageId-n;o!==0?this.location.historyGo(o):this.getCurrentUrlTree()===e.finalUrl&&o===0&&(this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(i&&this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return this.canceledNavigationResolution==="computed"?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Xy(t,A){t.events.pipe($A(e=>e instanceof ul||e instanceof $0||e instanceof eE||e instanceof Ad),aA(e=>e instanceof ul||e instanceof Ad?0:(e instanceof $0?e.code===vc.Redirect||e.code===vc.SupersededByNewNavigation:!1)?2:1),$A(e=>e!==2),Pn(1)).subscribe(()=>{A()})}var c7e={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},l7e={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"},Da=(()=>{class t{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=E(wR);stateManager=E(Yee);options=E(uu,{optional:!0})||{};pendingTasks=E(t2);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=E(Zy);urlSerializer=E(Cu);location=E(Fl);urlHandlingStrategy=E(Wy);_events=new je;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=E(Jee);onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=E(rE,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!E(Mm,{optional:!0});constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:e=>{this.console.warn(e)}}),this.subscribeToNavigationEvents()}eventsSubscription=new Ot;subscribeToNavigationEvents(){let e=this.navigationTransitions.events.subscribe(i=>{try{let n=this.navigationTransitions.currentTransition,o=this.navigationTransitions.currentNavigation;if(n!==null&&o!==null){if(this.stateManager.handleRouterEvent(i,o),i instanceof $0&&i.code!==vc.Redirect&&i.code!==vc.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof ul)this.navigated=!0;else if(i instanceof tE){let r=i.navigationBehaviorOptions,s=this.urlHandlingStrategy.merge(i.url,n.currentRawUrl),a=ae({browserUrl:n.extras.browserUrl,info:n.extras.info,skipLocationChange:n.extras.skipLocationChange,replaceUrl:n.extras.replaceUrl||this.urlUpdateStrategy==="eager"||r7e(n.source)},r);this.scheduleNavigation(s,Sy,null,a,{resolve:n.resolve,reject:n.reject,promise:n.promise})}}d7e(i)&&this._events.next(i)}catch(n){this.navigationTransitions.transitionAbortSubject.next(n)}});this.eventsSubscription.add(e)}resetRootComponentType(e){this.routerState.root.component=e,this.navigationTransitions.rootComponentType=e}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Sy,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((e,i,n)=>{this.navigateToSyncWithBrowser(e,n,i)})}navigateToSyncWithBrowser(e,i,n){let o={replaceUrl:!0},r=n?.navigationId?n:null;if(n){let a=ae({},n);delete a.navigationId,delete a.\u0275routerPageId,Object.keys(a).length!==0&&(o.state=a)}let s=this.parseUrl(e);this.scheduleNavigation(s,i,r,o)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map(aF),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(e,i={}){let{relativeTo:n,queryParams:o,fragment:r,queryParamsHandling:s,preserveFragment:a}=i,c=a?this.currentUrlTree.fragment:r,l=null;switch(s??this.options.defaultQueryParamsHandling){case"merge":l=ae(ae({},this.currentUrlTree.queryParams),o);break;case"preserve":l=this.currentUrlTree.queryParams;break;default:l=o||null}l!==null&&(l=this.removeEmptyProps(l));let d;try{let C=n?n.snapshot:this.routerState.snapshot.root;d=pee(C)}catch{(typeof e[0]!="string"||e[0][0]!=="/")&&(e=[]),d=this.currentUrlTree.root}return wee(d,e,l,c??null)}navigateByUrl(e,i={skipLocationChange:!1}){let n=XB(e)?e:this.parseUrl(e),o=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(o,Sy,null,i)}navigate(e,i={skipLocationChange:!1}){return g7e(e),this.navigateByUrl(this.createUrlTree(e,i),i)}serializeUrl(e){return this.urlSerializer.serialize(e)}parseUrl(e){try{return this.urlSerializer.parse(e)}catch{return this.urlSerializer.parse("/")}}isActive(e,i){let n;if(i===!0?n=ae({},c7e):i===!1?n=ae({},l7e):n=i,XB(e))return iee(this.currentUrlTree,e,n);let o=this.parseUrl(e);return iee(this.currentUrlTree,o,n)}removeEmptyProps(e){return Object.entries(e).reduce((i,[n,o])=>(o!=null&&(i[n]=o),i),{})}scheduleNavigation(e,i,n,o,r){if(this.disposed)return Promise.resolve(!1);let s,a,c;r?(s=r.resolve,a=r.reject,c=r.promise):c=new Promise((d,C)=>{s=d,a=C});let l=this.pendingTasks.add();return Xy(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(l))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:n,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:o,resolve:s,reject:a,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(d=>Promise.reject(d))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function g7e(t){for(let A=0;A{class t{router;injector;preloadingStrategy;loader;subscription;constructor(e,i,n,o){this.router=e,this.injector=i,this.preloadingStrategy=n,this.loader=o}setUpPreloading(){this.subscription=this.router.events.pipe($A(e=>e instanceof ul),M0(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(e,i){let n=[];for(let o of i){o.providers&&!o._injector&&(o._injector=y4(o.providers,e,`Route: ${o.path}`));let r=o._injector??e,s=o._loadedInjector??r;(o.loadChildren&&!o._loadedRoutes&&o.canLoad===void 0||o.loadComponent&&!o._loadedComponent)&&n.push(this.preloadConfig(r,o)),(o.children||o._loadedRoutes)&&n.push(this.processRoutes(s,o.children??o._loadedRoutes))}return xo(n).pipe(u1())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{let n;i.loadChildren&&i.canLoad===void 0?n=this.loader.loadChildren(e,i):n=dA(null);let o=n.pipe(Lr(r=>r===null?dA(void 0):(i._loadedRoutes=r.routes,i._loadedInjector=r.injector,this.processRoutes(r.injector??e,r.routes))));if(i.loadComponent&&!i._loadedComponent){let r=this.loader.loadComponent(i);return xo([o,r]).pipe(u1())}else return o})}static \u0275fac=function(i){return new(i||t)(UA(Da),UA(Hr),UA(km),UA(qy))};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),zee=new re(""),C7e=(()=>{class t{urlSerializer;transitions;viewportScroller;zone;options;routerEventsSubscription;scrollEventsSubscription;lastId=0;lastSource="imperative";restoredId=0;store={};constructor(e,i,n,o,r={}){this.urlSerializer=e,this.transitions=i,this.viewportScroller=n,this.zone=o,this.options=r,r.scrollPositionRestoration||="disabled",r.anchorScrolling||="disabled"}init(){this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof T1?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof ul?(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment)):e instanceof Ad&&e.code===$B.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof AE&&(e.position?this.options.scrollPositionRestoration==="top"?this.viewportScroller.scrollToPosition([0,0]):this.options.scrollPositionRestoration==="enabled"&&this.viewportScroller.scrollToPosition(e.position):e.anchor&&this.options.anchorScrolling==="enabled"?this.viewportScroller.scrollToAnchor(e.anchor):this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(e,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new AE(e,this.lastSource==="popstate"?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static \u0275fac=function(i){Uq()};static \u0275prov=be({token:t,factory:t.\u0275fac})}return t})();function I7e(t){return t.routerState.root}function xm(t,A){return{\u0275kind:t,\u0275providers:A}}function u7e(){let t=E(Dt);return A=>{let e=t.get(fc);if(A!==e.components[0])return;let i=t.get(Da),n=t.get(Pee);t.get(IF)===1&&i.initialNavigation(),t.get(qee,null,ji.Optional)?.setUpPreloading(),t.get(zee,null,ji.Optional)?.init(),i.resetRootComponentType(e.componentTypes[0]),n.closed||(n.next(),n.complete(),n.unsubscribe())}}var Pee=new re("",{factory:()=>new je}),IF=new re("",{providedIn:"root",factory:()=>1});function jee(){let t=[{provide:IF,useValue:0},bR(()=>{let A=E(Dt);return A.get(FR,Promise.resolve()).then(()=>new Promise(i=>{let n=A.get(Da),o=A.get(Pee);Xy(n,()=>{i(!0)}),A.get(Zy).afterPreactivation=()=>(i(!0),o.closed?dA(void 0):o),n.initialNavigation()}))})];return xm(2,t)}function Vee(){let t=[bR(()=>{E(Da).setUpLocationChangeListener()}),{provide:IF,useValue:2}];return xm(3,t)}var qee=new re("");function Wee(t){return xm(0,[{provide:qee,useExisting:Hee},{provide:km,useExisting:t}])}function Zee(){return xm(8,[rF,{provide:Mm,useExisting:rF}])}function Xee(t){Dg("NgRouterViewTransitions");let A=[{provide:lF,useValue:Oee},{provide:gF,useValue:ae({skipNextTransition:!!t?.skipInitialTransition},t)}];return xm(9,A)}var $ee=[Fl,{provide:Cu,useClass:U1},Da,Iu,{provide:Tl,useFactory:I7e,deps:[Da]},qy,[]],$y=(()=>{class t{constructor(){}static forRoot(e,i){return{ngModule:t,providers:[$ee,[],{provide:rE,multi:!0,useValue:e},[],i?.errorHandler?{provide:dF,useValue:i.errorHandler}:[],{provide:uu,useValue:i||{}},i?.useHash?B7e():E7e(),h7e(),i?.preloadingStrategy?Wee(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?f7e(i):[],i?.bindToComponentInputs?Zee().\u0275providers:[],i?.enableViewTransitions?Xee().\u0275providers:[],Q7e()]}}static forChild(e){return{ngModule:t,providers:[{provide:rE,multi:!0,useValue:e}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({})}return t})();function h7e(){return{provide:zee,useFactory:()=>{let t=E(PW),A=E(yA),e=E(uu),i=E(Zy),n=E(Cu);return e.scrollOffset&&t.setOffset(e.scrollOffset),new C7e(n,i,t,A,e)}}}function B7e(){return{provide:c2,useClass:TR}}function E7e(){return{provide:c2,useClass:Xw}}function f7e(t){return[t.initialNavigation==="disabled"?Vee().\u0275providers:[],t.initialNavigation==="enabledBlocking"?jee().\u0275providers:[]]}var CF=new re("");function Q7e(){return[{provide:CF,useFactory:u7e},{provide:MR,multi:!0,useExisting:CF}]}function va(t){t||(e2(va),t=E(Fr));let A=new nt(e=>t.onDestroy(e.next.bind(e)));return e=>e.pipe(mt(A))}var uF=class{source;destroyed=!1;destroyRef=E(Fr);constructor(A){this.source=A,this.destroyRef.onDestroy(()=>{this.destroyed=!0})}subscribe(A){if(this.destroyed)throw new lA(953,!1);let e=this.source.pipe(va(this.destroyRef)).subscribe({next:i=>A(i)});return{unsubscribe:()=>e.unsubscribe()}}};function Xn(t,A){return new uF(t)}function vo(t,A){!A?.injector&&e2(vo);let e=A?.injector??E(Dt),i=new Zc(1),n=pa(()=>{let o;try{o=t()}catch(r){As(()=>i.error(r));return}As(()=>i.next(o))},{injector:e,manualCleanup:!0});return e.get(Fr).onDestroy(()=>{n.destroy(),i.complete()}),i.asObservable()}function _g(t,A){let e=!A?.manualCleanup;e&&!A?.injector&&e2(_g);let i=e?A?.injector?.get(Fr)??E(Fr):null,n=w7e(A?.equal),o;A?.requireSync?o=mA({kind:0},{equal:n}):o=mA({kind:1,value:A?.initialValue},{equal:n});let r,s=t.subscribe({next:a=>o.set({kind:1,value:a}),error:a=>{if(A?.rejectErrors)throw a;o.set({kind:2,error:a})},complete:()=>{r?.()}});if(A?.requireSync&&o().kind===0)throw new lA(601,!1);return r=i?.onDestroy(s.unsubscribe.bind(s)),ot(()=>{let a=o();switch(a.kind){case 1:return a.value;case 2:throw a.error;case 0:throw new lA(601,!1)}},{equal:A?.equal})}function w7e(t=Object.is){return(A,e)=>A.kind===1&&e.kind===1&&t(A.value,e.value)}var y7e=["*"];var D7e=new re("MAT_CARD_CONFIG"),sE=(()=>{class t{appearance;constructor(){let e=E(D7e,{optional:!0});this.appearance=e?.appearance||"raised"}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,n){i&2&&iA("mat-mdc-card-outlined",n.appearance==="outlined")("mdc-card--outlined",n.appearance==="outlined")},inputs:{appearance:"appearance"},exportAs:["matCard"],ngContentSelectors:y7e,decls:1,vars:0,template:function(i,n){i&1&&(Kt(),NA(0))},styles:['.mat-mdc-card{display:flex;flex-direction:column;box-sizing:border-box;position:relative;border-style:solid;border-width:0;background-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium));box-shadow:var(--mdc-elevated-card-container-elevation, var(--mat-sys-level1))}.mat-mdc-card::after{position:absolute;top:0;left:0;width:100%;height:100%;border:solid 1px rgba(0,0,0,0);content:"";display:block;pointer-events:none;box-sizing:border-box;border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium))}.mat-mdc-card-outlined{background-color:var(--mdc-outlined-card-container-color, var(--mat-sys-surface));border-radius:var(--mdc-outlined-card-container-shape, var(--mat-sys-corner-medium));border-width:var(--mdc-outlined-card-outline-width, 1px);border-color:var(--mdc-outlined-card-outline-color, var(--mat-sys-outline-variant));box-shadow:var(--mdc-outlined-card-container-elevation, var(--mat-sys-level0))}.mat-mdc-card-outlined::after{border:none}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mat-mdc-card-actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font, var(--mat-sys-title-large-font));line-height:var(--mat-card-title-text-line-height, var(--mat-sys-title-large-line-height));font-size:var(--mat-card-title-text-size, var(--mat-sys-title-large-size));letter-spacing:var(--mat-card-title-text-tracking, var(--mat-sys-title-large-tracking));font-weight:var(--mat-card-title-text-weight, var(--mat-sys-title-large-weight))}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color, var(--mat-sys-on-surface));font-family:var(--mat-card-subtitle-text-font, var(--mat-sys-title-medium-font));line-height:var(--mat-card-subtitle-text-line-height, var(--mat-sys-title-medium-line-height));font-size:var(--mat-card-subtitle-text-size, var(--mat-sys-title-medium-size));letter-spacing:var(--mat-card-subtitle-text-tracking, var(--mat-sys-title-medium-tracking));font-weight:var(--mat-card-subtitle-text-weight, var(--mat-sys-title-medium-weight))}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end}'],encapsulation:2,changeDetection:0})}return t})();var eAe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({imports:[ui,ui]})}return t})();var eD=class{};function AD(t){return t&&typeof t.connect=="function"&&!(t instanceof g1)}var aE=function(t){return t[t.REPLACED=0]="REPLACED",t[t.INSERTED=1]="INSERTED",t[t.MOVED=2]="MOVED",t[t.REMOVED=3]="REMOVED",t}(aE||{}),_m=new re("_ViewRepeater"),cE=class{applyChanges(A,e,i,n,o){A.forEachOperation((r,s,a)=>{let c,l;if(r.previousIndex==null){let d=i(r,s,a);c=e.createEmbeddedView(d.templateRef,d.context,d.index),l=aE.INSERTED}else a==null?(e.remove(s),l=aE.REMOVED):(c=e.get(s),e.move(c,a),l=aE.MOVED);o&&o({context:c?.context,operation:l,record:r})})}detach(){}};var J1=class{_multiple;_emitChanges;compareWith;_selection=new Set;_deselectedToEmit=[];_selectedToEmit=[];_selected;get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}changed=new je;constructor(A=!1,e,i=!0,n){this._multiple=A,this._emitChanges=i,this.compareWith=n,e&&e.length&&(A?e.forEach(o=>this._markSelected(o)):this._markSelected(e[0]),this._selectedToEmit.length=0)}select(...A){this._verifyValueAssignment(A),A.forEach(i=>this._markSelected(i));let e=this._hasQueuedChanges();return this._emitChangeEvent(),e}deselect(...A){this._verifyValueAssignment(A),A.forEach(i=>this._unmarkSelected(i));let e=this._hasQueuedChanges();return this._emitChangeEvent(),e}setSelection(...A){this._verifyValueAssignment(A);let e=this.selected,i=new Set(A);A.forEach(o=>this._markSelected(o)),e.filter(o=>!i.has(this._getConcreteValue(o,i))).forEach(o=>this._unmarkSelected(o));let n=this._hasQueuedChanges();return this._emitChangeEvent(),n}toggle(A){return this.isSelected(A)?this.deselect(A):this.select(A)}clear(A=!0){this._unmarkAll();let e=this._hasQueuedChanges();return A&&this._emitChangeEvent(),e}isSelected(A){return this._selection.has(this._getConcreteValue(A))}isEmpty(){return this._selection.size===0}hasValue(){return!this.isEmpty()}sort(A){this._multiple&&this.selected&&this._selected.sort(A)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(A){A=this._getConcreteValue(A),this.isSelected(A)||(this._multiple||this._unmarkAll(),this.isSelected(A)||this._selection.add(A),this._emitChanges&&this._selectedToEmit.push(A))}_unmarkSelected(A){A=this._getConcreteValue(A),this.isSelected(A)&&(this._selection.delete(A),this._emitChanges&&this._deselectedToEmit.push(A))}_unmarkAll(){this.isEmpty()||this._selection.forEach(A=>this._unmarkSelected(A))}_verifyValueAssignment(A){A.length>1&&this._multiple}_hasQueuedChanges(){return!!(this._deselectedToEmit.length||this._selectedToEmit.length)}_getConcreteValue(A,e){if(this.compareWith){e=e??this._selection;for(let i of e)if(this.compareWith(A,i))return i;return A}else return A}};var tD=(()=>{class t{_listeners=[];notify(e,i){for(let n of this._listeners)n(e,i)}listen(e){return this._listeners.push(e),()=>{this._listeners=this._listeners.filter(i=>e!==i)}}ngOnDestroy(){this._listeners=[]}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var b7e=20,Y1=(()=>{class t{_ngZone=E(yA);_platform=E(mi);_renderer=E(fa).createRenderer(null,null);_cleanupGlobalListener;constructor(){}_scrolled=new je;_scrolledCount=0;scrollContainers=new Map;register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){let i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=b7e){return this._platform.isBrowser?new nt(i=>{this._cleanupGlobalListener||(this._cleanupGlobalListener=this._ngZone.runOutsideAngular(()=>this._renderer.listen("document","scroll",()=>this._scrolled.next())));let n=e>0?this._scrolled.pipe(Ph(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{n.unsubscribe(),this._scrolledCount--,this._scrolledCount||(this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0)}}):dA()}ngOnDestroy(){this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0,this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){let n=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe($A(o=>!o||n.indexOf(o)>-1))}getAncestorScrollContainers(e){let i=[];return this.scrollContainers.forEach((n,o)=>{this._scrollableContainsElement(o,e)&&i.push(o)}),i}_scrollableContainsElement(e,i){let n=wc(i),o=e.getElementRef().nativeElement;do if(n==o)return!0;while(n=n.parentElement);return!1}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),f2=(()=>{class t{elementRef=E(eA);scrollDispatcher=E(Y1);ngZone=E(yA);dir=E(Do,{optional:!0});_scrollElement=this.elementRef.nativeElement;_destroyed=new je;_renderer=E(an);_cleanupScroll;_elementScrolled=new je;constructor(){}ngOnInit(){this._cleanupScroll=this.ngZone.runOutsideAngular(()=>this._renderer.listen(this._scrollElement,"scroll",e=>this._elementScrolled.next(e))),this.scrollDispatcher.register(this)}ngOnDestroy(){this._cleanupScroll?.(),this._elementScrolled.complete(),this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(e){let i=this.elementRef.nativeElement,n=this.dir&&this.dir.value=="rtl";e.left==null&&(e.left=n?e.end:e.start),e.right==null&&(e.right=n?e.start:e.end),e.bottom!=null&&(e.top=i.scrollHeight-i.clientHeight-e.bottom),n&&LB()!=Mg.NORMAL?(e.left!=null&&(e.right=i.scrollWidth-i.clientWidth-e.left),LB()==Mg.INVERTED?e.left=e.right:LB()==Mg.NEGATED&&(e.left=e.right?-e.right:e.right)):e.right!=null&&(e.left=i.scrollWidth-i.clientWidth-e.right),this._applyScrollToOptions(e)}_applyScrollToOptions(e){let i=this.elementRef.nativeElement;p5()?i.scrollTo(e):(e.top!=null&&(i.scrollTop=e.top),e.left!=null&&(i.scrollLeft=e.left))}measureScrollOffset(e){let i="left",n="right",o=this.elementRef.nativeElement;if(e=="top")return o.scrollTop;if(e=="bottom")return o.scrollHeight-o.clientHeight-o.scrollTop;let r=this.dir&&this.dir.value=="rtl";return e=="start"?e=r?n:i:e=="end"&&(e=r?i:n),r&&LB()==Mg.INVERTED?e==i?o.scrollWidth-o.clientWidth-o.scrollLeft:o.scrollLeft:r&&LB()==Mg.NEGATED?e==i?o.scrollLeft+o.scrollWidth-o.clientWidth:-o.scrollLeft:e==i?o.scrollLeft:o.scrollWidth-o.clientWidth-o.scrollLeft}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return t})(),M7e=20,Ol=(()=>{class t{_platform=E(mi);_listeners;_viewportSize;_change=new je;_document=E(ht,{optional:!0});constructor(){let e=E(yA),i=E(fa).createRenderer(null,null);e.runOutsideAngular(()=>{if(this._platform.isBrowser){let n=o=>this._change.next(o);this._listeners=[i.listen("window","resize",n),i.listen("window","orientationchange",n)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(e=>e()),this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();let e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){let e=this.getViewportScrollPosition(),{width:i,height:n}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+n,right:e.left+i,height:n,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};let e=this._document,i=this._getWindow(),n=e.documentElement,o=n.getBoundingClientRect(),r=-o.top||e.body.scrollTop||i.scrollY||n.scrollTop||0,s=-o.left||e.body.scrollLeft||i.scrollX||n.scrollLeft||0;return{top:r,left:s}}change(e=M7e){return e>0?this._change.pipe(Ph(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){let e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var E2=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({})}return t})(),iD=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({imports:[N1,E2,N1,E2]})}return t})();var Rm=class{_attachedHost;attach(A){return this._attachedHost=A,A.attach(this)}detach(){let A=this._attachedHost;A!=null&&(this._attachedHost=null,A.detach())}get isAttached(){return this._attachedHost!=null}setAttachedHost(A){this._attachedHost=A}},Rg=class extends Rm{component;viewContainerRef;injector;componentFactoryResolver;projectableNodes;constructor(A,e,i,n,o){super(),this.component=A,this.viewContainerRef=e,this.injector=i,this.projectableNodes=o}},ba=class extends Rm{templateRef;viewContainerRef;context;injector;constructor(A,e,i,n){super(),this.templateRef=A,this.viewContainerRef=e,this.context=i,this.injector=n}get origin(){return this.templateRef.elementRef}attach(A,e=this.context){return this.context=e,super.attach(A)}detach(){return this.context=void 0,super.detach()}},hF=class extends Rm{element;constructor(A){super(),this.element=A instanceof eA?A.nativeElement:A}},H1=class{_attachedPortal;_disposeFn;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(A){if(A instanceof Rg)return this._attachedPortal=A,this.attachComponentPortal(A);if(A instanceof ba)return this._attachedPortal=A,this.attachTemplatePortal(A);if(this.attachDomPortal&&A instanceof hF)return this._attachedPortal=A,this.attachDomPortal(A)}attachDomPortal=null;detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(A){this._disposeFn=A}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}};var Nm=class extends H1{outletElement;_appRef;_defaultInjector;_document;constructor(A,e,i,n,o){super(),this.outletElement=A,this._appRef=i,this._defaultInjector=n,this._document=o}attachComponentPortal(A){let e;if(A.viewContainerRef){let i=A.injector||A.viewContainerRef.injector,n=i.get(G0,null,{optional:!0})||void 0;e=A.viewContainerRef.createComponent(A.component,{index:A.viewContainerRef.length,injector:i,ngModuleRef:n,projectableNodes:A.projectableNodes||void 0}),this.setDisposeFn(()=>e.destroy())}else e=qw(A.component,{elementInjector:A.injector||this._defaultInjector||Dt.NULL,environmentInjector:this._appRef.injector,projectableNodes:A.projectableNodes||void 0}),this._appRef.attachView(e.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(e.hostView),e.destroy()});return this.outletElement.appendChild(this._getComponentRootNode(e)),this._attachedPortal=A,e}attachTemplatePortal(A){let e=A.viewContainerRef,i=e.createEmbeddedView(A.templateRef,A.context,{injector:A.injector});return i.rootNodes.forEach(n=>this.outletElement.appendChild(n)),i.detectChanges(),this.setDisposeFn(()=>{let n=e.indexOf(i);n!==-1&&e.remove(n)}),this._attachedPortal=A,i}attachDomPortal=A=>{let e=A.element;e.parentNode;let i=this._document.createComment("dom-portal");e.parentNode.insertBefore(i,e),this.outletElement.appendChild(e),this._attachedPortal=A,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(e,i)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(A){return A.hostView.rootNodes[0]}};var AAe=(()=>{class t extends ba{constructor(){let e=E(en),i=E(xn);super(e,i)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[Ct]})}return t})();var bc=(()=>{class t extends H1{_moduleRef=E(G0,{optional:!0});_document=E(ht);_viewContainerRef=E(xn);_isInitialized=!1;_attachedRef;constructor(){super()}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}attached=new Ve;get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);let i=e.viewContainerRef!=null?e.viewContainerRef:this._viewContainerRef,n=i.createComponent(e.component,{index:i.length,injector:e.injector||i.injector,projectableNodes:e.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0});return i!==this._viewContainerRef&&this._getRootNode().appendChild(n.hostView.rootNodes[0]),super.setDisposeFn(()=>n.destroy()),this._attachedPortal=e,this._attachedRef=n,this.attached.emit(n),n}attachTemplatePortal(e){e.setAttachedHost(this);let i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}attachDomPortal=e=>{let i=e.element;i.parentNode;let n=this._document.createComment("dom-portal");e.setAttachedHost(this),i.parentNode.insertBefore(n,i),this._getRootNode().appendChild(i),this._attachedPortal=e,super.setDisposeFn(()=>{n.parentNode&&n.parentNode.replaceChild(i,n)})};_getRootNode(){let e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[Ct]})}return t})();var td=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({})}return t})();var tAe=p5(),BF=class{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(A,e){this._viewportRuler=A,this._document=e}attach(){}enable(){if(this._canBeEnabled()){let A=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=A.style.left||"",this._previousHTMLStyles.top=A.style.top||"",A.style.left=is(-this._previousScrollPosition.left),A.style.top=is(-this._previousScrollPosition.top),A.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){let A=this._document.documentElement,e=this._document.body,i=A.style,n=e.style,o=i.scrollBehavior||"",r=n.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,A.classList.remove("cdk-global-scrollblock"),tAe&&(i.scrollBehavior=n.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),tAe&&(i.scrollBehavior=o,n.scrollBehavior=r)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;let e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}};var EF=class{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(A,e,i,n){this._scrollDispatcher=A,this._ngZone=e,this._viewportRuler=i,this._config=n}attach(A){this._overlayRef,this._overlayRef=A}enable(){if(this._scrollSubscription)return;let A=this._scrollDispatcher.scrolled(0).pipe($A(e=>!e||!this._overlayRef.overlayElement.contains(e.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=A.subscribe(()=>{let e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=A.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}},nD=class{enable(){}disable(){}attach(){}};function fF(t,A){return A.some(e=>{let i=t.bottome.bottom,o=t.righte.right;return i||n||o||r})}function iAe(t,A){return A.some(e=>{let i=t.tope.bottom,o=t.lefte.right;return i||n||o||r})}var QF=class{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(A,e,i,n){this._scrollDispatcher=A,this._viewportRuler=e,this._ngZone=i,this._config=n}attach(A){this._overlayRef,this._overlayRef=A}enable(){if(!this._scrollSubscription){let A=this._config?this._config.scrollThrottle:0;this._scrollSubscription=this._scrollDispatcher.scrolled(A).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){let e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:n}=this._viewportRuler.getViewportSize();fF(e,[{width:i,height:n,bottom:n,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}})}}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}},k7e=(()=>{class t{_scrollDispatcher=E(Y1);_viewportRuler=E(Ol);_ngZone=E(yA);_document=E(ht);constructor(){}noop=()=>new nD;close=e=>new EF(this._scrollDispatcher,this._ngZone,this._viewportRuler,e);block=()=>new BF(this._viewportRuler,this._document);reposition=e=>new QF(this._scrollDispatcher,this._viewportRuler,this._ngZone,e);static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),id=class{positionStrategy;scrollStrategy=new nD;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;constructor(A){if(A){let e=Object.keys(A);for(let i of e)A[i]!==void 0&&(this[i]=A[i])}}};var mF=class{connectionPair;scrollableViewProperties;constructor(A,e){this.connectionPair=A,this.scrollableViewProperties=e}};var cAe=(()=>{class t{_attachedOverlays=[];_document=E(ht);_isAttached;constructor(){}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){let i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),this._attachedOverlays.length===0&&this.detach()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),x7e=(()=>{class t extends cAe{_ngZone=E(yA);_renderer=E(fa).createRenderer(null,null);_cleanupKeydown;add(e){super.add(e),this._isAttached||(this._ngZone.runOutsideAngular(()=>{this._cleanupKeydown=this._renderer.listen("body","keydown",this._keydownListener)}),this._isAttached=!0)}detach(){this._isAttached&&(this._cleanupKeydown?.(),this._isAttached=!1)}_keydownListener=e=>{let i=this._attachedOverlays;for(let n=i.length-1;n>-1;n--)if(i[n]._keydownEvents.observers.length>0){this._ngZone.run(()=>i[n]._keydownEvents.next(e));break}};static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),_7e=(()=>{class t extends cAe{_platform=E(mi);_ngZone=E(yA,{optional:!0});_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget;add(e){if(super.add(e),!this._isAttached){let i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){let e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}_pointerDownListener=e=>{this._pointerDownEventTarget=al(e)};_clickListener=e=>{let i=al(e),n=e.type==="click"&&this._pointerDownEventTarget?this._pointerDownEventTarget:i;this._pointerDownEventTarget=null;let o=this._attachedOverlays.slice();for(let r=o.length-1;r>-1;r--){let s=o[r];if(s._outsidePointerEvents.observers.length<1||!s.hasAttached())continue;if(nAe(s.overlayElement,i)||nAe(s.overlayElement,n))break;let a=s._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>a.next(e)):a.next(e)}};static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function nAe(t,A){let e=typeof ShadowRoot<"u"&&ShadowRoot,i=A;for(;i;){if(i===t)return!0;i=e&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}var lAe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:[".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}"],encapsulation:2,changeDetection:0})}return t})(),oD=(()=>{class t{_platform=E(mi);_containerElement;_document=E(ht);_styleLoader=E(Wn);constructor(){}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let e="cdk-overlay-container";if(this._platform.isBrowser||uN()){let n=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let o=0;o{let A=this.element;clearTimeout(this._fallbackTimeout),this._cleanupTransitionEnd?.(),this._cleanupTransitionEnd=this._renderer.listen(A,"transitionend",this.dispose),this._fallbackTimeout=setTimeout(this.dispose,500),A.style.pointerEvents="none",A.classList.remove("cdk-overlay-backdrop-showing")})}dispose=()=>{clearTimeout(this._fallbackTimeout),this._cleanupClick?.(),this._cleanupTransitionEnd?.(),this._cleanupClick=this._cleanupTransitionEnd=this._fallbackTimeout=void 0,this.element.remove()}},lE=class{_portalOutlet;_host;_pane;_config;_ngZone;_keyboardDispatcher;_document;_location;_outsideClickDispatcher;_animationsDisabled;_injector;_renderer;_backdropClick=new je;_attachments=new je;_detachments=new je;_positionStrategy;_scrollStrategy;_locationChanges=Ot.EMPTY;_backdropRef=null;_previousHostParent;_keydownEvents=new je;_outsidePointerEvents=new je;_renders=new je;_afterRenderRef;_afterNextRenderRef;constructor(A,e,i,n,o,r,s,a,c,l=!1,d,C){this._portalOutlet=A,this._host=e,this._pane=i,this._config=n,this._ngZone=o,this._keyboardDispatcher=r,this._document=s,this._location=a,this._outsideClickDispatcher=c,this._animationsDisabled=l,this._injector=d,this._renderer=C,n.scrollStrategy&&(this._scrollStrategy=n.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=n.positionStrategy,this._afterRenderRef=As(()=>f4(()=>{this._renders.next()},{injector:this._injector}))}get overlayElement(){return this._pane}get backdropElement(){return this._backdropRef?.element||null}get hostElement(){return this._host}attach(A){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);let e=this._portalOutlet.attach(A);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=Gr(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),typeof e?.onDestroy=="function"&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();let A=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),A}dispose(){let A=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._backdropRef?.dispose(),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=this._backdropRef=null,A&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(A){A!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=A,this.hasAttached()&&(A.attach(this),this.updatePosition()))}updateSize(A){this._config=ae(ae({},this._config),A),this._updateElementSize()}setDirection(A){this._config=_A(ae({},this._config),{direction:A}),this._updateElementDirection()}addPanelClass(A){this._pane&&this._toggleClasses(this._pane,A,!0)}removePanelClass(A){this._pane&&this._toggleClasses(this._pane,A,!1)}getDirection(){let A=this._config.direction;return A?typeof A=="string"?A:A.value:"ltr"}updateScrollStrategy(A){A!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=A,this.hasAttached()&&(A.attach(this),A.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;let A=this._pane.style;A.width=is(this._config.width),A.height=is(this._config.height),A.minWidth=is(this._config.minWidth),A.minHeight=is(this._config.minHeight),A.maxWidth=is(this._config.maxWidth),A.maxHeight=is(this._config.maxHeight)}_togglePointerEvents(A){this._pane.style.pointerEvents=A?"":"none"}_attachBackdrop(){let A="cdk-overlay-backdrop-showing";this._backdropRef?.dispose(),this._backdropRef=new pF(this._document,this._renderer,this._ngZone,e=>{this._backdropClick.next(e)}),this._animationsDisabled&&this._backdropRef.element.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropRef.element,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropRef.element,this._host),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this._backdropRef?.element.classList.add(A))}):this._backdropRef.element.classList.add(A)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){this._animationsDisabled?(this._backdropRef?.dispose(),this._backdropRef=null):this._backdropRef?.detach()}_toggleClasses(A,e,i){let n=GB(e||[]).filter(o=>!!o);n.length&&(i?A.classList.add(...n):A.classList.remove(...n))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{let A=this._renders.pipe(mt(Bi(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||this._pane.children.length===0)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),A.unsubscribe())})})}_disposeScrollStrategy(){let A=this._scrollStrategy;A?.disable(),A?.detach?.()}},oAe="cdk-overlay-connected-position-bounding-box",R7e=/([A-Za-z%]+)$/,wF=class{_viewportRuler;_document;_platform;_overlayContainer;_overlayRef;_isInitialRender;_lastBoundingBoxSize={width:0,height:0};_isPushed=!1;_canPush=!0;_growAfterOpen=!1;_hasFlexibleDimensions=!0;_positionLocked=!1;_originRect;_overlayRect;_viewportRect;_containerRect;_viewportMargin=0;_scrollables=[];_preferredPositions=[];_origin;_pane;_isDisposed;_boundingBox;_lastPosition;_lastScrollVisibility;_positionChanges=new je;_resizeSubscription=Ot.EMPTY;_offsetX=0;_offsetY=0;_transformOriginSelector;_appliedPanelClasses=[];_previousPushAmount;positionChanges=this._positionChanges;get positions(){return this._preferredPositions}constructor(A,e,i,n,o){this._viewportRuler=e,this._document=i,this._platform=n,this._overlayContainer=o,this.setOrigin(A)}attach(A){this._overlayRef&&this._overlayRef,this._validatePositions(),A.hostElement.classList.add(oAe),this._overlayRef=A,this._boundingBox=A.hostElement,this._pane=A.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition){this.reapplyLastPosition();return}this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let A=this._originRect,e=this._overlayRect,i=this._viewportRect,n=this._containerRect,o=[],r;for(let s of this._preferredPositions){let a=this._getOriginPoint(A,n,s),c=this._getOverlayPoint(a,e,s),l=this._getOverlayFit(c,e,i,s);if(l.isCompletelyWithinViewport){this._isPushed=!1,this._applyPosition(s,a);return}if(this._canFitWithFlexibleDimensions(l,c,i)){o.push({position:s,origin:a,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(a,s)});continue}(!r||r.overlayFit.visibleAreaa&&(a=l,s=c)}this._isPushed=!1,this._applyPosition(s.position,s.origin);return}if(this._canPush){this._isPushed=!0,this._applyPosition(r.position,r.originPoint);return}this._applyPosition(r.position,r.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&hu(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(oAe),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;let A=this._lastPosition;if(A){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let e=this._getOriginPoint(this._originRect,this._containerRect,A);this._applyPosition(A,e)}else this.apply()}withScrollableContainers(A){return this._scrollables=A,this}withPositions(A){return this._preferredPositions=A,A.indexOf(this._lastPosition)===-1&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(A){return this._viewportMargin=A,this}withFlexibleDimensions(A=!0){return this._hasFlexibleDimensions=A,this}withGrowAfterOpen(A=!0){return this._growAfterOpen=A,this}withPush(A=!0){return this._canPush=A,this}withLockedPosition(A=!0){return this._positionLocked=A,this}setOrigin(A){return this._origin=A,this}withDefaultOffsetX(A){return this._offsetX=A,this}withDefaultOffsetY(A){return this._offsetY=A,this}withTransformOriginOn(A){return this._transformOriginSelector=A,this}_getOriginPoint(A,e,i){let n;if(i.originX=="center")n=A.left+A.width/2;else{let r=this._isRtl()?A.right:A.left,s=this._isRtl()?A.left:A.right;n=i.originX=="start"?r:s}e.left<0&&(n-=e.left);let o;return i.originY=="center"?o=A.top+A.height/2:o=i.originY=="top"?A.top:A.bottom,e.top<0&&(o-=e.top),{x:n,y:o}}_getOverlayPoint(A,e,i){let n;i.overlayX=="center"?n=-e.width/2:i.overlayX==="start"?n=this._isRtl()?-e.width:0:n=this._isRtl()?0:-e.width;let o;return i.overlayY=="center"?o=-e.height/2:o=i.overlayY=="top"?0:-e.height,{x:A.x+n,y:A.y+o}}_getOverlayFit(A,e,i,n){let o=sAe(e),{x:r,y:s}=A,a=this._getOffset(n,"x"),c=this._getOffset(n,"y");a&&(r+=a),c&&(s+=c);let l=0-r,d=r+o.width-i.width,C=0-s,I=s+o.height-i.height,u=this._subtractOverflows(o.width,l,d),h=this._subtractOverflows(o.height,C,I),B=u*h;return{visibleArea:B,isCompletelyWithinViewport:o.width*o.height===B,fitsInViewportVertically:h===o.height,fitsInViewportHorizontally:u==o.width}}_canFitWithFlexibleDimensions(A,e,i){if(this._hasFlexibleDimensions){let n=i.bottom-e.y,o=i.right-e.x,r=rAe(this._overlayRef.getConfig().minHeight),s=rAe(this._overlayRef.getConfig().minWidth),a=A.fitsInViewportVertically||r!=null&&r<=n,c=A.fitsInViewportHorizontally||s!=null&&s<=o;return a&&c}return!1}_pushOverlayOnScreen(A,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:A.x+this._previousPushAmount.x,y:A.y+this._previousPushAmount.y};let n=sAe(e),o=this._viewportRect,r=Math.max(A.x+n.width-o.width,0),s=Math.max(A.y+n.height-o.height,0),a=Math.max(o.top-i.top-A.y,0),c=Math.max(o.left-i.left-A.x,0),l=0,d=0;return n.width<=o.width?l=c||-r:l=A.xu&&!this._isInitialRender&&!this._growAfterOpen&&(r=A.y-u/2)}let a=e.overlayX==="start"&&!n||e.overlayX==="end"&&n,c=e.overlayX==="end"&&!n||e.overlayX==="start"&&n,l,d,C;if(c)C=i.width-A.x+this._viewportMargin*2,l=A.x-this._viewportMargin;else if(a)d=A.x,l=i.right-A.x;else{let I=Math.min(i.right-A.x+i.left,A.x),u=this._lastBoundingBoxSize.width;l=I*2,d=A.x-I,l>u&&!this._isInitialRender&&!this._growAfterOpen&&(d=A.x-u/2)}return{top:r,left:d,bottom:s,right:C,width:l,height:o}}_setBoundingBoxStyles(A,e){let i=this._calculateBoundingBoxRect(A,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));let n={};if(this._hasExactPosition())n.top=n.left="0",n.bottom=n.right=n.maxHeight=n.maxWidth="",n.width=n.height="100%";else{let o=this._overlayRef.getConfig().maxHeight,r=this._overlayRef.getConfig().maxWidth;n.height=is(i.height),n.top=is(i.top),n.bottom=is(i.bottom),n.width=is(i.width),n.left=is(i.left),n.right=is(i.right),e.overlayX==="center"?n.alignItems="center":n.alignItems=e.overlayX==="end"?"flex-end":"flex-start",e.overlayY==="center"?n.justifyContent="center":n.justifyContent=e.overlayY==="bottom"?"flex-end":"flex-start",o&&(n.maxHeight=is(o)),r&&(n.maxWidth=is(r))}this._lastBoundingBoxSize=i,hu(this._boundingBox.style,n)}_resetBoundingBoxStyles(){hu(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){hu(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(A,e){let i={},n=this._hasExactPosition(),o=this._hasFlexibleDimensions,r=this._overlayRef.getConfig();if(n){let l=this._viewportRuler.getViewportScrollPosition();hu(i,this._getExactOverlayY(e,A,l)),hu(i,this._getExactOverlayX(e,A,l))}else i.position="static";let s="",a=this._getOffset(e,"x"),c=this._getOffset(e,"y");a&&(s+=`translateX(${a}px) `),c&&(s+=`translateY(${c}px)`),i.transform=s.trim(),r.maxHeight&&(n?i.maxHeight=is(r.maxHeight):o&&(i.maxHeight="")),r.maxWidth&&(n?i.maxWidth=is(r.maxWidth):o&&(i.maxWidth="")),hu(this._pane.style,i)}_getExactOverlayY(A,e,i){let n={top:"",bottom:""},o=this._getOverlayPoint(e,this._overlayRect,A);if(this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i)),A.overlayY==="bottom"){let r=this._document.documentElement.clientHeight;n.bottom=`${r-(o.y+this._overlayRect.height)}px`}else n.top=is(o.y);return n}_getExactOverlayX(A,e,i){let n={left:"",right:""},o=this._getOverlayPoint(e,this._overlayRect,A);this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i));let r;if(this._isRtl()?r=A.overlayX==="end"?"left":"right":r=A.overlayX==="end"?"right":"left",r==="right"){let s=this._document.documentElement.clientWidth;n.right=`${s-(o.x+this._overlayRect.width)}px`}else n.left=is(o.x);return n}_getScrollVisibility(){let A=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(n=>n.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:iAe(A,i),isOriginOutsideView:fF(A,i),isOverlayClipped:iAe(e,i),isOverlayOutsideView:fF(e,i)}}_subtractOverflows(A,...e){return e.reduce((i,n)=>i-Math.max(n,0),A)}_getNarrowedViewportRect(){let A=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+A-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:A-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return this._overlayRef.getDirection()==="rtl"}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(A,e){return e==="x"?A.offsetX==null?this._offsetX:A.offsetX:A.offsetY==null?this._offsetY:A.offsetY}_validatePositions(){}_addPanelClasses(A){this._pane&&GB(A).forEach(e=>{e!==""&&this._appliedPanelClasses.indexOf(e)===-1&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(A=>{this._pane.classList.remove(A)}),this._appliedPanelClasses=[])}_getOriginRect(){let A=this._origin;if(A instanceof eA)return A.nativeElement.getBoundingClientRect();if(A instanceof Element)return A.getBoundingClientRect();let e=A.width||0,i=A.height||0;return{top:A.y,bottom:A.y+i,left:A.x,right:A.x+e,height:i,width:e}}};function hu(t,A){for(let e in A)A.hasOwnProperty(e)&&(t[e]=A[e]);return t}function rAe(t){if(typeof t!="number"&&t!=null){let[A,e]=t.split(R7e);return!e||e==="px"?parseFloat(A):null}return t||null}function sAe(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}function N7e(t,A){return t===A?!0:t.isOriginClipped===A.isOriginClipped&&t.isOriginOutsideView===A.isOriginOutsideView&&t.isOverlayClipped===A.isOverlayClipped&&t.isOverlayOutsideView===A.isOverlayOutsideView}var aAe="cdk-global-overlay-wrapper",yF=class{_overlayRef;_cssPosition="static";_topOffset="";_bottomOffset="";_alignItems="";_xPosition="";_xOffset="";_width="";_height="";_isDisposed=!1;attach(A){let e=A.getConfig();this._overlayRef=A,this._width&&!e.width&&A.updateSize({width:this._width}),this._height&&!e.height&&A.updateSize({height:this._height}),A.hostElement.classList.add(aAe),this._isDisposed=!1}top(A=""){return this._bottomOffset="",this._topOffset=A,this._alignItems="flex-start",this}left(A=""){return this._xOffset=A,this._xPosition="left",this}bottom(A=""){return this._topOffset="",this._bottomOffset=A,this._alignItems="flex-end",this}right(A=""){return this._xOffset=A,this._xPosition="right",this}start(A=""){return this._xOffset=A,this._xPosition="start",this}end(A=""){return this._xOffset=A,this._xPosition="end",this}width(A=""){return this._overlayRef?this._overlayRef.updateSize({width:A}):this._width=A,this}height(A=""){return this._overlayRef?this._overlayRef.updateSize({height:A}):this._height=A,this}centerHorizontally(A=""){return this.left(A),this._xPosition="center",this}centerVertically(A=""){return this.top(A),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;let A=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:n,height:o,maxWidth:r,maxHeight:s}=i,a=(n==="100%"||n==="100vw")&&(!r||r==="100%"||r==="100vw"),c=(o==="100%"||o==="100vh")&&(!s||s==="100%"||s==="100vh"),l=this._xPosition,d=this._xOffset,C=this._overlayRef.getConfig().direction==="rtl",I="",u="",h="";a?h="flex-start":l==="center"?(h="center",C?u=d:I=d):C?l==="left"||l==="end"?(h="flex-end",I=d):(l==="right"||l==="start")&&(h="flex-start",u=d):l==="left"||l==="start"?(h="flex-start",I=d):(l==="right"||l==="end")&&(h="flex-end",u=d),A.position=this._cssPosition,A.marginLeft=a?"0":I,A.marginTop=c?"0":this._topOffset,A.marginBottom=this._bottomOffset,A.marginRight=a?"0":u,e.justifyContent=h,e.alignItems=c?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;let A=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(aAe),i.justifyContent=i.alignItems=A.marginTop=A.marginBottom=A.marginLeft=A.marginRight=A.position="",this._overlayRef=null,this._isDisposed=!0}},L7e=(()=>{class t{_viewportRuler=E(Ol);_document=E(ht);_platform=E(mi);_overlayContainer=E(oD);constructor(){}global(){return new yF}flexibleConnectedTo(e){return new wF(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Or=(()=>{class t{scrollStrategies=E(k7e);_overlayContainer=E(oD);_positionBuilder=E(L7e);_keyboardDispatcher=E(x7e);_injector=E(Dt);_ngZone=E(yA);_document=E(ht);_directionality=E(Do);_location=E(Fl);_outsideClickDispatcher=E(_7e);_animationsModuleType=E(Oi,{optional:!0});_idGenerator=E(un);_renderer=E(fa).createRenderer(null,null);_appRef;_styleLoader=E(Wn);constructor(){}create(e){this._styleLoader.load(lAe);let i=this._createHostElement(),n=this._createPaneElement(i),o=this._createPortalOutlet(n),r=new id(e);return r.direction=r.direction||this._directionality.value,new lE(o,i,n,r,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,this._animationsModuleType==="NoopAnimations",this._injector.get(Hr),this._renderer)}position(){return this._positionBuilder}_createPaneElement(e){let i=this._document.createElement("div");return i.id=this._idGenerator.getId("cdk-overlay-"),i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){let e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(fc)),new Nm(e,null,this._appRef,this._injector,this._document)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),F7e=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],gAe=new re("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{let t=E(Or);return()=>t.scrollStrategies.reposition()}}),Lm=(()=>{class t{elementRef=E(eA);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]})}return t})(),DF=(()=>{class t{_overlay=E(Or);_dir=E(Do,{optional:!0});_overlayRef;_templatePortal;_backdropSubscription=Ot.EMPTY;_attachSubscription=Ot.EMPTY;_detachSubscription=Ot.EMPTY;_positionSubscription=Ot.EMPTY;_offsetX;_offsetY;_position;_scrollStrategyFactory=E(gAe);_disposeOnNavigation=!1;_ngZone=E(yA);origin;positions;positionStrategy;get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}width;height;minWidth;minHeight;backdropClass;panelClass;viewportMargin=0;scrollStrategy;open=!1;disableClose=!1;transformOriginSelector;hasBackdrop=!1;lockPosition=!1;flexibleDimensions=!1;growAfterOpen=!1;push=!1;get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(e){this._disposeOnNavigation=e}backdropClick=new Ve;positionChange=new Ve;attach=new Ve;detach=new Ve;overlayKeydown=new Ve;overlayOutsideClick=new Ve;constructor(){let e=E(en),i=E(xn);this._templatePortal=new ba(e,i),this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=F7e);let e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),i.keyCode===27&&!this.disableClose&&!Tr(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{let n=this._getOriginElement(),o=al(i);(!n||n!==o&&!n.contains(o))&&this.overlayOutsideClick.next(i)})}_buildConfig(){let e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new id({direction:this._dir||"ltr",positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||this.width===0)&&(i.width=this.width),(this.height||this.height===0)&&(i.height=this.height),(this.minWidth||this.minWidth===0)&&(i.minWidth=this.minWidth),(this.minHeight||this.minHeight===0)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){let i=this.positions.map(n=>({originX:n.originX,originY:n.originY,overlayX:n.overlayX,overlayY:n.overlayY,offsetX:n.offsetX||this.offsetX,offsetY:n.offsetY||this.offsetY,panelClass:n.panelClass||void 0}));return e.setOrigin(this._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){let e=this._overlay.position().flexibleConnectedTo(this._getOrigin());return this._updatePositionStrategy(e),e}_getOrigin(){return this.origin instanceof Lm?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof Lm?this.origin.elementRef.nativeElement:this.origin instanceof eA?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(ex(()=>this.positionChange.observers.length>0)).subscribe(e=>{this._ngZone.run(()=>this.positionChange.emit(e)),this.positionChange.observers.length===0&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",IA],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",IA],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",IA],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",IA],push:[2,"cdkConnectedOverlayPush","push",IA],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",IA]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[ti]})}return t})();function G7e(t){return()=>t.scrollStrategies.reposition()}var K7e={provide:gAe,deps:[Or],useFactory:G7e},Lg=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({providers:[Or,K7e],imports:[N1,td,iD,iD]})}return t})();function U7e(t,A){}var z1=class{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;width="";height="";minWidth;minHeight;maxWidth;maxHeight;positionStrategy;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;scrollStrategy;closeOnNavigation=!0;closeOnDestroy=!0;closeOnOverlayDetachments=!0;componentFactoryResolver;providers;container;templateContext};var bF=(()=>{class t extends H1{_elementRef=E(eA);_focusTrapFactory=E(R5);_config;_interactivityChecker=E(z4);_ngZone=E(yA);_overlayRef=E(lE);_focusMonitor=E(ns);_renderer=E(an);_platform=E(mi);_document=E(ht,{optional:!0});_portalOutlet;_focusTrap=null;_elementFocusedBeforeDialogWasOpened=null;_closeInteractionType=null;_ariaLabelledByQueue=[];_changeDetectorRef=E(ut);_injector=E(Dt);_isDestroyed=!1;constructor(){super(),this._config=E(z1,{optional:!0})||new z1,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(e){this._ariaLabelledByQueue.push(e),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(e){let i=this._ariaLabelledByQueue.indexOf(e);i>-1&&(this._ariaLabelledByQueue.splice(i,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._isDestroyed=!0,this._restoreFocus()}attachComponentPortal(e){this._portalOutlet.hasAttached();let i=this._portalOutlet.attachComponentPortal(e);return this._contentAttached(),i}attachTemplatePortal(e){this._portalOutlet.hasAttached();let i=this._portalOutlet.attachTemplatePortal(e);return this._contentAttached(),i}attachDomPortal=e=>{this._portalOutlet.hasAttached();let i=this._portalOutlet.attachDomPortal(e);return this._contentAttached(),i};_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let n=()=>{o(),r(),e.removeAttribute("tabindex")},o=this._renderer.listen(e,"blur",n),r=this._renderer.listen(e,"mousedown",n)})),e.focus(i)}_focusByCssSelector(e,i){let n=this._elementRef.nativeElement.querySelector(e);n&&this._forceFocus(n,i)}_trapFocus(){this._isDestroyed||Gr(()=>{let e=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||e.focus();break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElement()||this._focusDialogContainer();break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus);break}},{injector:this._injector})}_restoreFocus(){let e=this._config.restoreFocus,i=null;if(typeof e=="string"?i=this._document.querySelector(e):typeof e=="boolean"?i=e?this._elementFocusedBeforeDialogWasOpened:null:e&&(i=e),this._config.restoreFocus&&i&&typeof i.focus=="function"){let n=FB(),o=this._elementRef.nativeElement;(!n||n===this._document.body||n===o||o.contains(n))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){let e=this._elementRef.nativeElement,i=FB();return e===i||e.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=FB()))}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["cdk-dialog-container"]],viewQuery:function(i,n){if(i&1&&At(bc,7),i&2){let o;oA(o=rA())&&(n._portalOutlet=o.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,n){i&2&&AA("id",n._config.id||null)("role",n._config.role)("aria-modal",n._config.ariaModal)("aria-labelledby",n._config.ariaLabel?null:n._ariaLabelledByQueue[0])("aria-label",n._config.ariaLabel)("aria-describedby",n._config.ariaDescribedBy||null)},features:[Ct],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,n){i&1&&ne(0,U7e,0,0,"ng-template",0)},dependencies:[bc],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}return t})(),Fm=class{overlayRef;config;componentInstance;componentRef;containerInstance;disableClose;closed=new je;backdropClick;keydownEvents;outsidePointerEvents;id;_detachSubscription;constructor(A,e){this.overlayRef=A,this.config=e,this.disableClose=e.disableClose,this.backdropClick=A.backdropClick(),this.keydownEvents=A.keydownEvents(),this.outsidePointerEvents=A.outsidePointerEvents(),this.id=e.id,this.keydownEvents.subscribe(i=>{i.keyCode===27&&!this.disableClose&&!Tr(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=A.detachments().subscribe(()=>{e.closeOnOverlayDetachments!==!1&&this.close()})}close(A,e){if(this.containerInstance){let i=this.closed;this.containerInstance._closeInteractionType=e?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(A),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(A="",e=""){return this.overlayRef.updateSize({width:A,height:e}),this}addPanelClass(A){return this.overlayRef.addPanelClass(A),this}removePanelClass(A){return this.overlayRef.removePanelClass(A),this}},T7e=new re("DialogScrollStrategy",{providedIn:"root",factory:()=>{let t=E(Or);return()=>t.scrollStrategies.block()}}),O7e=new re("DialogData"),J7e=new re("DefaultDialogConfig");var MF=(()=>{class t{_overlay=E(Or);_injector=E(Dt);_defaultOptions=E(J7e,{optional:!0});_parentDialog=E(t,{optional:!0,skipSelf:!0});_overlayContainer=E(oD);_idGenerator=E(un);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new je;_afterOpenedAtThisLevel=new je;_ariaHiddenElements=new Map;_scrollStrategy=E(T7e);get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}afterAllClosed=b0(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(In(void 0)));constructor(){}open(e,i){let n=this._defaultOptions||new z1;i=ae(ae({},n),i),i.id=i.id||this._idGenerator.getId("cdk-dialog-"),i.id&&this.getDialogById(i.id);let o=this._getOverlayConfig(i),r=this._overlay.create(o),s=new Fm(r,i),a=this._attachContainer(r,s,i);return s.containerInstance=a,this._attachDialogContent(e,s,a,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(s),s.closed.subscribe(()=>this._removeOpenDialog(s,!0)),this.afterOpened.next(s),s}closeAll(){vF(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){vF(this._openDialogsAtThisLevel,e=>{e.config.closeOnDestroy===!1&&this._removeOpenDialog(e,!1)}),vF(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){let i=new id({positionStrategy:e.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:e.scrollStrategy||this._scrollStrategy(),panelClass:e.panelClass,hasBackdrop:e.hasBackdrop,direction:e.direction,minWidth:e.minWidth,minHeight:e.minHeight,maxWidth:e.maxWidth,maxHeight:e.maxHeight,width:e.width,height:e.height,disposeOnNavigation:e.closeOnNavigation});return e.backdropClass&&(i.backdropClass=e.backdropClass),i}_attachContainer(e,i,n){let o=n.injector||n.viewContainerRef?.injector,r=[{provide:z1,useValue:n},{provide:Fm,useValue:i},{provide:lE,useValue:e}],s;n.container?typeof n.container=="function"?s=n.container:(s=n.container.type,r.push(...n.container.providers(n))):s=bF;let a=new Rg(s,n.viewContainerRef,Dt.create({parent:o||this._injector,providers:r}));return e.attach(a).instance}_attachDialogContent(e,i,n,o){if(e instanceof en){let r=this._createInjector(o,i,n,void 0),s={$implicit:o.data,dialogRef:i};o.templateContext&&(s=ae(ae({},s),typeof o.templateContext=="function"?o.templateContext():o.templateContext)),n.attachTemplatePortal(new ba(e,null,s,r))}else{let r=this._createInjector(o,i,n,this._injector),s=n.attachComponentPortal(new Rg(e,o.viewContainerRef,r));i.componentRef=s,i.componentInstance=s.instance}}_createInjector(e,i,n,o){let r=e.injector||e.viewContainerRef?.injector,s=[{provide:O7e,useValue:e.data},{provide:Fm,useValue:i}];return e.providers&&(typeof e.providers=="function"?s.push(...e.providers(i,e,n)):s.push(...e.providers)),e.direction&&(!r||!r.get(Do,null,{optional:!0}))&&s.push({provide:Do,useValue:{value:e.direction,change:dA()}}),Dt.create({parent:r||o,providers:s})}_removeOpenDialog(e,i){let n=this.openDialogs.indexOf(e);n>-1&&(this.openDialogs.splice(n,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((o,r)=>{o?r.setAttribute("aria-hidden",o):r.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){let e=this._overlayContainer.getContainerElement();if(e.parentElement){let i=e.parentElement.children;for(let n=i.length-1;n>-1;n--){let o=i[n];o!==e&&o.nodeName!=="SCRIPT"&&o.nodeName!=="STYLE"&&!o.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(o,o.getAttribute("aria-hidden")),o.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){let e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function vF(t,A){let e=t.length;for(;e--;)A(t[e])}var dAe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({providers:[MF],imports:[Lg,td,L5,td]})}return t})();function Y7e(t,A){}var sD=class{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;width="";height="";minWidth;minHeight;maxWidth;maxHeight;position;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;delayFocusTrap=!0;scrollStrategy;closeOnNavigation=!0;componentFactoryResolver;enterAnimationDuration;exitAnimationDuration},SF="mdc-dialog--open",CAe="mdc-dialog--opening",IAe="mdc-dialog--closing",H7e=150,z7e=75,P7e=(()=>{class t extends bF{_animationMode=E(Oi,{optional:!0});_animationStateChanged=new Ve;_animationsEnabled=this._animationMode!=="NoopAnimations";_actionSectionCount=0;_hostElement=this._elementRef.nativeElement;_enterAnimationDuration=this._animationsEnabled?hAe(this._config.enterAnimationDuration)??H7e:0;_exitAnimationDuration=this._animationsEnabled?hAe(this._config.exitAnimationDuration)??z7e:0;_animationTimer=null;_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(uAe,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(CAe,SF)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(SF),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(SF),this._animationsEnabled?(this._hostElement.style.setProperty(uAe,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(IAe)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(e){this._actionSectionCount+=e,this._changeDetectorRef.markForCheck()}_finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)};_finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})};_clearAnimationClasses(){this._hostElement.classList.remove(CAe,IAe)}_waitForAnimationToComplete(e,i){this._animationTimer!==null&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,e)}_requestAnimationFrame(e){this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(e):e()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(e){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})}ngOnDestroy(){super.ngOnDestroy(),this._animationTimer!==null&&clearTimeout(this._animationTimer)}attachComponentPortal(e){let i=super.attachComponentPortal(e);return i.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),i}static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275cmp=xe({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,n){i&2&&(ea("id",n._config.id),AA("aria-modal",n._config.ariaModal)("role",n._config.role)("aria-labelledby",n._config.ariaLabel?null:n._ariaLabelledByQueue[0])("aria-label",n._config.ariaLabel)("aria-describedby",n._config.ariaDescribedBy||null),iA("_mat-animation-noopable",!n._animationsEnabled)("mat-mdc-dialog-container-with-actions",n._actionSectionCount>0))},features:[Ct],decls:3,vars:0,consts:[[1,"mat-mdc-dialog-inner-container","mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,n){i&1&&(m(0,"div",0)(1,"div",1),ne(2,Y7e,0,0,"ng-template",2),p()())},dependencies:[bc],styles:['.mat-mdc-dialog-container{width:100%;height:100%;display:block;box-sizing:border-box;max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;outline:0}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 560px);min-width:var(--mat-dialog-container-min-width, 280px)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, calc(100vw - 32px))}}.mat-mdc-dialog-inner-container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;transition:opacity linear var(--mat-dialog-transition-duration, 0ms);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mdc-dialog--closing .mat-mdc-dialog-inner-container{transition:opacity 75ms linear;transform:none}.mdc-dialog--open .mat-mdc-dialog-inner-container{opacity:1}._mat-animation-noopable .mat-mdc-dialog-inner-container{transition:none}.mat-mdc-dialog-surface{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;width:100%;height:100%;position:relative;overflow-y:auto;outline:0;transform:scale(0.8);transition:transform var(--mat-dialog-transition-duration, 0ms) cubic-bezier(0, 0, 0.2, 1);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;box-shadow:var(--mat-dialog-container-elevation-shadow, none);border-radius:var(--mdc-dialog-container-shape, var(--mat-sys-corner-extra-large, 4px));background-color:var(--mdc-dialog-container-color, var(--mat-sys-surface, white))}[dir=rtl] .mat-mdc-dialog-surface{text-align:right}.mdc-dialog--open .mat-mdc-dialog-surface,.mdc-dialog--closing .mat-mdc-dialog-surface{transform:none}._mat-animation-noopable .mat-mdc-dialog-surface{transition:none}.mat-mdc-dialog-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-dialog-title{display:block;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:var(--mat-dialog-headline-padding, 6px 24px 13px)}.mat-mdc-dialog-title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mat-mdc-dialog-title{text-align:right}.mat-mdc-dialog-container .mat-mdc-dialog-title{color:var(--mdc-dialog-subhead-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mdc-dialog-subhead-font, var(--mat-sys-headline-small-font, inherit));line-height:var(--mdc-dialog-subhead-line-height, var(--mat-sys-headline-small-line-height, 1.5rem));font-size:var(--mdc-dialog-subhead-size, var(--mat-sys-headline-small-size, 1rem));font-weight:var(--mdc-dialog-subhead-weight, var(--mat-sys-headline-small-weight, 400));letter-spacing:var(--mdc-dialog-subhead-tracking, var(--mat-sys-headline-small-tracking, 0.03125em))}.mat-mdc-dialog-content{display:block;flex-grow:1;box-sizing:border-box;margin:0;overflow:auto;max-height:65vh}.mat-mdc-dialog-content>:first-child{margin-top:0}.mat-mdc-dialog-content>:last-child{margin-bottom:0}.mat-mdc-dialog-container .mat-mdc-dialog-content{color:var(--mdc-dialog-supporting-text-color, var(--mat-sys-on-surface-variant, rgba(0, 0, 0, 0.6)));font-family:var(--mdc-dialog-supporting-text-font, var(--mat-sys-body-medium-font, inherit));line-height:var(--mdc-dialog-supporting-text-line-height, var(--mat-sys-body-medium-line-height, 1.5rem));font-size:var(--mdc-dialog-supporting-text-size, var(--mat-sys-body-medium-size, 1rem));font-weight:var(--mdc-dialog-supporting-text-weight, var(--mat-sys-body-medium-weight, 400));letter-spacing:var(--mdc-dialog-supporting-text-tracking, var(--mat-sys-body-medium-tracking, 0.03125em))}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px 0)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0);padding:var(--mat-dialog-actions-padding, 16px 24px);justify-content:var(--mat-dialog-actions-alignment, flex-end)}@media(forced-colors: active){.mat-mdc-dialog-actions{border-top-color:CanvasText}}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}.mat-mdc-dialog-component-host{display:contents}'],encapsulation:2})}return t})(),uAe="--mat-dialog-transition-duration";function hAe(t){return t==null?null:typeof t=="number"?t:t.endsWith("ms")?Za(t.substring(0,t.length-2)):t.endsWith("s")?Za(t.substring(0,t.length-1))*1e3:t==="0"?0:null}var rD=function(t){return t[t.OPEN=0]="OPEN",t[t.CLOSING=1]="CLOSING",t[t.CLOSED=2]="CLOSED",t}(rD||{}),co=class{_ref;_containerInstance;componentInstance;componentRef;disableClose;id;_afterOpened=new je;_beforeClosed=new je;_result;_closeFallbackTimeout;_state=rD.OPEN;_closeInteractionType;constructor(A,e,i){this._ref=A,this._containerInstance=i,this.disableClose=e.disableClose,this.id=A.id,A.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe($A(n=>n.state==="opened"),Pn(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe($A(n=>n.state==="closed"),Pn(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),A.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),Bi(this.backdropClick(),this.keydownEvents().pipe($A(n=>n.keyCode===27&&!this.disableClose&&!Tr(n)))).subscribe(n=>{this.disableClose||(n.preventDefault(),BAe(this,n.type==="keydown"?"keyboard":"mouse"))})}close(A){this._result=A,this._containerInstance._animationStateChanged.pipe($A(e=>e.state==="closing"),Pn(1)).subscribe(e=>{this._beforeClosed.next(A),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),e.totalTime+100)}),this._state=rD.CLOSING,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(A){let e=this._ref.config.positionStrategy;return A&&(A.left||A.right)?A.left?e.left(A.left):e.right(A.right):e.centerHorizontally(),A&&(A.top||A.bottom)?A.top?e.top(A.top):e.bottom(A.bottom):e.centerVertically(),this._ref.updatePosition(),this}updateSize(A="",e=""){return this._ref.updateSize(A,e),this}addPanelClass(A){return this._ref.addPanelClass(A),this}removePanelClass(A){return this._ref.removePanelClass(A),this}getState(){return this._state}_finishDialogClose(){this._state=rD.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}};function BAe(t,A,e){return t._closeInteractionType=A,t.close(e)}var qo=new re("MatMdcDialogData"),j7e=new re("mat-mdc-dialog-default-options"),V7e=new re("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{let t=E(Or);return()=>t.scrollStrategies.block()}});var na=(()=>{class t{_overlay=E(Or);_defaultOptions=E(j7e,{optional:!0});_scrollStrategy=E(V7e);_parentDialog=E(t,{optional:!0,skipSelf:!0});_idGenerator=E(un);_dialog=E(MF);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new je;_afterOpenedAtThisLevel=new je;dialogConfigClass=sD;_dialogRefConstructor;_dialogContainerType;_dialogDataToken;get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){let e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}afterAllClosed=b0(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(In(void 0)));constructor(){this._dialogRefConstructor=co,this._dialogContainerType=P7e,this._dialogDataToken=qo}open(e,i){let n;i=ae(ae({},this._defaultOptions||new sD),i),i.id=i.id||this._idGenerator.getId("mat-mdc-dialog-"),i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();let o=this._dialog.open(e,_A(ae({},i),{positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:z1,useValue:i}]},templateContext:()=>({dialogRef:n}),providers:(r,s,a)=>(n=new this._dialogRefConstructor(r,i,a),n.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:a},{provide:this._dialogDataToken,useValue:s.data},{provide:this._dialogRefConstructor,useValue:n}])}));return n.componentRef=o.componentRef,n.componentInstance=o.componentInstance,this.openDialogs.push(n),this.afterOpened.next(n),n.afterClosed().subscribe(()=>{let r=this.openDialogs.indexOf(n);r>-1&&(this.openDialogs.splice(r,1),this.openDialogs.length||this._getAfterAllClosed().next())}),n}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(e){let i=e.length;for(;i--;)e[i].close()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Jl=(()=>{class t{dialogRef=E(co,{optional:!0});_elementRef=E(eA);_dialog=E(na);ariaLabel;type="button";dialogResult;_matDialogClose;constructor(){}ngOnInit(){this.dialogRef||(this.dialogRef=fAe(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){let i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){BAe(this.dialogRef,e.screenX===0&&e.screenY===0?"keyboard":"mouse",this.dialogResult)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,n){i&1&&ee("click",function(r){return n._onButtonClick(r)}),i&2&&AA("aria-label",n.ariaLabel||null)("type",n.type)},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],type:"type",dialogResult:[0,"mat-dialog-close","dialogResult"],_matDialogClose:[0,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[ti]})}return t})(),EAe=(()=>{class t{_dialogRef=E(co,{optional:!0});_elementRef=E(eA);_dialog=E(na);constructor(){}ngOnInit(){this._dialogRef||(this._dialogRef=fAe(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._onAdd()})}ngOnDestroy(){this._dialogRef?._containerInstance&&Promise.resolve().then(()=>{this._onRemove()})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t})}return t})(),tr=(()=>{class t extends EAe{id=E(un).getId("mat-mdc-dialog-title-");_onAdd(){this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id)}_onRemove(){this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id)}static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275dir=Oe({type:t,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,n){i&2&&ea("id",n.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],features:[Ct]})}return t})(),jr=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],features:[Hw([f2])]})}return t})(),kr=(()=>{class t extends EAe{align;_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275dir=Oe({type:t,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:6,hostBindings:function(i,n){i&2&&iA("mat-mdc-dialog-actions-align-start",n.align==="start")("mat-mdc-dialog-actions-align-center",n.align==="center")("mat-mdc-dialog-actions-align-end",n.align==="end")},inputs:{align:"align"},features:[Ct]})}return t})();function fAe(t,A){let e=t.nativeElement.parentElement;for(;e&&!e.classList.contains("mat-mdc-dialog-container");)e=e.parentElement;return e?A.find(i=>i.id===e.id):null}var QAe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({providers:[na],imports:[dAe,Lg,td,ui,ui]})}return t})();var aD=(()=>{class t{get vertical(){return this._vertical}set vertical(e){this._vertical=Sr(e)}_vertical=!1;get inset(){return this._inset}set inset(e){this._inset=Sr(e)}_inset=!1;static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,n){i&2&&(AA("aria-orientation",n.vertical?"vertical":"horizontal"),iA("mat-divider-vertical",n.vertical)("mat-divider-horizontal",!n.vertical)("mat-divider-inset",n.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(i,n){},styles:[".mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color, var(--mat-sys-outline));border-top-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color, var(--mat-sys-outline));border-right-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}return t})(),mAe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({imports:[ui,ui]})}return t})();var W7e=["*"],cD;function Z7e(){if(cD===void 0&&(cD=null,typeof window<"u")){let t=window;t.trustedTypes!==void 0&&(cD=t.trustedTypes.createPolicy("angular#components",{createHTML:A=>A}))}return cD}function Gm(t){return Z7e()?.createHTML(t)||t}function pAe(t){return Error(`Unable to find icon with the name "${t}"`)}function X7e(){return Error("Could not find HttpClient for use with Angular Material icons. Please add provideHttpClient() to your providers.")}function wAe(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function yAe(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}var Q2=class{url;svgText;options;svgElement;constructor(A,e,i){this.url=A,this.svgText=e,this.options=i}},$7e=(()=>{class t{_httpClient;_sanitizer;_errorHandler;_document;_svgIconConfigs=new Map;_iconSetConfigs=new Map;_cachedIconsByUrl=new Map;_inProgressUrlFetches=new Map;_fontCssClassesByAlias=new Map;_resolvers=[];_defaultFontSetClass=["material-icons","mat-ligature-font"];constructor(e,i,n,o){this._httpClient=e,this._sanitizer=i,this._errorHandler=o,this._document=n}addSvgIcon(e,i,n){return this.addSvgIconInNamespace("",e,i,n)}addSvgIconLiteral(e,i,n){return this.addSvgIconLiteralInNamespace("",e,i,n)}addSvgIconInNamespace(e,i,n,o){return this._addSvgIconConfig(e,i,new Q2(n,null,o))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,n,o){let r=this._sanitizer.sanitize(Ls.HTML,n);if(!r)throw yAe(n);let s=Gm(r);return this._addSvgIconConfig(e,i,new Q2("",s,o))}addSvgIconSet(e,i){return this.addSvgIconSetInNamespace("",e,i)}addSvgIconSetLiteral(e,i){return this.addSvgIconSetLiteralInNamespace("",e,i)}addSvgIconSetInNamespace(e,i,n){return this._addSvgIconSetConfig(e,new Q2(i,null,n))}addSvgIconSetLiteralInNamespace(e,i,n){let o=this._sanitizer.sanitize(Ls.HTML,i);if(!o)throw yAe(i);let r=Gm(o);return this._addSvgIconSetConfig(e,new Q2("",r,n))}registerFontClassAlias(e,i=e){return this._fontCssClassesByAlias.set(e,i),this}classNameForFontAlias(e){return this._fontCssClassesByAlias.get(e)||e}setDefaultFontSetClass(...e){return this._defaultFontSetClass=e,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(e){let i=this._sanitizer.sanitize(Ls.RESOURCE_URL,e);if(!i)throw wAe(e);let n=this._cachedIconsByUrl.get(i);return n?dA(lD(n)):this._loadSvgIconFromConfig(new Q2(e,null)).pipe(Pt(o=>this._cachedIconsByUrl.set(i,o)),aA(o=>lD(o)))}getNamedSvgIcon(e,i=""){let n=DAe(i,e),o=this._svgIconConfigs.get(n);if(o)return this._getSvgFromConfig(o);if(o=this._getIconConfigFromResolvers(i,e),o)return this._svgIconConfigs.set(n,o),this._getSvgFromConfig(o);let r=this._iconSetConfigs.get(i);return r?this._getSvgFromIconSetConfigs(e,r):C1(pAe(n))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?dA(lD(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(aA(i=>lD(i)))}_getSvgFromIconSetConfigs(e,i){let n=this._extractIconWithNameFromAnySet(e,i);if(n)return dA(n);let o=i.filter(r=>!r.svgText).map(r=>this._loadSvgIconSetFromConfig(r).pipe(br(s=>{let c=`Loading icon set URL: ${this._sanitizer.sanitize(Ls.RESOURCE_URL,r.url)} failed: ${s.message}`;return this._errorHandler.handleError(new Error(c)),dA(null)})));return $Q(o).pipe(aA(()=>{let r=this._extractIconWithNameFromAnySet(e,i);if(!r)throw pAe(e);return r}))}_extractIconWithNameFromAnySet(e,i){for(let n=i.length-1;n>=0;n--){let o=i[n];if(o.svgText&&o.svgText.toString().indexOf(e)>-1){let r=this._svgElementFromConfig(o),s=this._extractSvgIconFromSet(r,e,o.options);if(s)return s}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(Pt(i=>e.svgText=i),aA(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?dA(null):this._fetchIcon(e).pipe(Pt(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,n){let o=e.querySelector(`[id="${i}"]`);if(!o)return null;let r=o.cloneNode(!0);if(r.removeAttribute("id"),r.nodeName.toLowerCase()==="svg")return this._setSvgAttributes(r,n);if(r.nodeName.toLowerCase()==="symbol")return this._setSvgAttributes(this._toSvgElement(r),n);let s=this._svgElementFromString(Gm(""));return s.appendChild(r),this._setSvgAttributes(s,n)}_svgElementFromString(e){let i=this._document.createElement("DIV");i.innerHTML=e;let n=i.querySelector("svg");if(!n)throw Error(" tag not found");return n}_toSvgElement(e){let i=this._svgElementFromString(Gm("")),n=e.attributes;for(let o=0;oGm(c)),S0(()=>this._inProgressUrlFetches.delete(r)),Rl());return this._inProgressUrlFetches.set(r,a),a}_addSvgIconConfig(e,i,n){return this._svgIconConfigs.set(DAe(e,i),n),this}_addSvgIconSetConfig(e,i){let n=this._iconSetConfigs.get(e);return n?n.push(i):this._iconSetConfigs.set(e,[i]),this}_svgElementFromConfig(e){if(!e.svgElement){let i=this._svgElementFromString(e.svgText);this._setSvgAttributes(i,e.options),e.svgElement=i}return e.svgElement}_getIconConfigFromResolvers(e,i){for(let n=0;nA?A.pathname+A.search:""}}var vAe=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],nbe=vAe.map(t=>`[${t}]`).join(", "),obe=/^url\(['"]?#(.*?)['"]?\)$/,ir=(()=>{class t{_elementRef=E(eA);_iconRegistry=E($7e);_location=E(tbe);_errorHandler=E(Va);_defaultColor;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;inline=!1;get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}_svgIcon;get fontSet(){return this._fontSet}set fontSet(e){let i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}_fontSet;get fontIcon(){return this._fontIcon}set fontIcon(e){let i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_fontIcon;_previousFontSetClass=[];_previousFontIconClass;_svgName;_svgNamespace;_previousPath;_elementsWithExternalReferences;_currentIconFetch=Ot.EMPTY;constructor(){let e=E(new ws("aria-hidden"),{optional:!0}),i=E(Abe,{optional:!0});i&&(i.color&&(this.color=this._defaultColor=i.color),i.fontSet&&(this.fontSet=i.fontSet)),e||this._elementRef.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(e){if(!e)return["",""];let i=e.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${e}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){let e=this._elementsWithExternalReferences;if(e&&e.size){let i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(e){this._clearSvgElement();let i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(e),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(e)}_clearSvgElement(){let e=this._elementRef.nativeElement,i=e.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){let n=e.childNodes[i];(n.nodeType!==1||n.nodeName.toLowerCase()==="svg")&&n.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;let e=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(n=>n.length>0);this._previousFontSetClass.forEach(n=>e.classList.remove(n)),i.forEach(n=>e.classList.add(n)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&e.classList.remove(this._previousFontIconClass),this.fontIcon&&e.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(e){return typeof e=="string"?e.trim().split(" ")[0]:e}_prependPathToReferences(e){let i=this._elementsWithExternalReferences;i&&i.forEach((n,o)=>{n.forEach(r=>{o.setAttribute(r.name,`url('${e}#${r.value}')`)})})}_cacheChildrenWithExternalReferences(e){let i=e.querySelectorAll(nbe),n=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let o=0;o{let s=i[o],a=s.getAttribute(r),c=a?a.match(obe):null;if(c){let l=n.get(s);l||(l=[],n.set(s,l)),l.push({name:r,value:c[1]})}})}_updateSvgIcon(e){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),e){let[i,n]=this._splitIconName(e);i&&(this._svgNamespace=i),n&&(this._svgName=n),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(n,i).pipe(Pn(1)).subscribe(o=>this._setSvgElement(o),o=>{let r=`Error retrieving icon ${i}:${n}! ${o.message}`;this._errorHandler.handleError(new Error(r))})}}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(i,n){i&2&&(AA("data-mat-icon-type",n._usingFontIcon()?"font":"svg")("data-mat-icon-name",n._svgName||n.fontIcon)("data-mat-icon-namespace",n._svgNamespace||n.fontSet)("fontIcon",n._usingFontIcon()?n.fontIcon:null),Lo(n.color?"mat-"+n.color:""),iA("mat-icon-inline",n.inline)("mat-icon-no-color",n.color!=="primary"&&n.color!=="accent"&&n.color!=="warn"))},inputs:{color:"color",inline:[2,"inline","inline",IA],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],ngContentSelectors:W7e,decls:1,vars:0,template:function(i,n){i&1&&(Kt(),NA(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color, inherit)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0})}return t})(),gD=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({imports:[ui,ui]})}return t})();var rbe=["trigger"],sbe=["panel"],abe=[[["mat-select-trigger"]],"*"],cbe=["mat-select-trigger","*"];function lbe(t,A){if(t&1&&(m(0,"span",4),T(1),p()),t&2){let e=M();y(),Pe(e.placeholder)}}function gbe(t,A){t&1&&NA(0)}function dbe(t,A){if(t&1&&(m(0,"span",11),T(1),p()),t&2){let e=M(2);y(),Pe(e.triggerValue)}}function Cbe(t,A){if(t&1&&(m(0,"span",5),ne(1,gbe,1,0)(2,dbe,2,1,"span",11),p()),t&2){let e=M();y(),$(e.customTrigger?1:2)}}function Ibe(t,A){if(t&1){let e=Ue();m(0,"div",12,1),ee("@transformPanel.done",function(n){q(e);let o=M();return W(o._panelDoneAnimatingStream.next(n.toState))})("keydown",function(n){q(e);let o=M();return W(o._handleKeydown(n))}),NA(2,1),p()}if(t&2){let e=M();pW("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),te("ngClass",e.panelClass)("@transformPanel","showing"),AA("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}var ube={transformPanelWrap:ll("transformPanelWrap",[Fs("* => void",ON("@transformPanel",[TN()],{optional:!0}))]),transformPanel:ll("transformPanel",[tc("void",Vo({opacity:0,transform:"scale(1, 0.8)"})),Fs("void => showing",ia("120ms cubic-bezier(0, 0, 0.2, 1)",Vo({opacity:1,transform:"scale(1, 1)"}))),Fs("* => void",ia("100ms linear",Vo({opacity:0})))])};var MAe=new re("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{let t=E(Or);return()=>t.scrollStrategies.reposition()}});function hbe(t){return()=>t.scrollStrategies.reposition()}var Bbe=new re("MAT_SELECT_CONFIG"),Ebe={provide:MAe,deps:[Or],useFactory:hbe},fbe=new re("MatSelectTrigger"),kF=class{source;value;constructor(A,e){this.source=A,this.value=e}},Yl=(()=>{class t{_viewportRuler=E(Ol);_changeDetectorRef=E(ut);_elementRef=E(eA);_dir=E(Do,{optional:!0});_idGenerator=E(un);_parentFormField=E(q4,{optional:!0});ngControl=E(rl,{self:!0,optional:!0});_liveAnnouncer=E(N5);_defaultOptions=E(Bbe,{optional:!0});_initialized=new je;options;optionGroups;customTrigger;_positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}];_scrollOptionIntoView(e){let i=this.options.toArray()[e];if(i){let n=this.panel.nativeElement,o=cX(e,this.options,this.optionGroups),r=i._getHostElement();e===0&&o===1?n.scrollTop=0:n.scrollTop=lX(r.offsetTop,r.offsetHeight,n.scrollTop,n.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new kF(this,e)}_scrollStrategyFactory=E(MAe);_panelOpen=!1;_compareWith=(e,i)=>e===i;_uid=this._idGenerator.getId("mat-select-");_triggerAriaLabelledBy=null;_previousControl;_destroy=new je;_errorStateTracker;stateChanges=new je;disableAutomaticLabeling=!0;userAriaDescribedBy;_selectionModel;_keyManager;_preferredOverlayOrigin;_overlayWidth;_onChange=()=>{};_onTouched=()=>{};_valueId=this._idGenerator.getId("mat-select-value-");_panelDoneAnimatingStream=new je;_scrollStrategy;_overlayPanelClass=this._defaultOptions?.overlayPanelClass||"";get focused(){return this._focused||this._panelOpen}_focused=!1;controlType="mat-select";trigger;panel;_overlayDir;panelClass;disabled=!1;disableRipple=!1;tabIndex=0;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._syncParentProperties()}_hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1;get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}_placeholder;get required(){return this._required??this.ngControl?.control?.hasValidator(ol.required)??!1}set required(e){this._required=e,this.stateChanges.next()}_required;get multiple(){return this._multiple}set multiple(e){this._selectionModel,this._multiple=e}_multiple=!1;disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1;get compareWith(){return this._compareWith}set compareWith(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(e){this._assignValue(e)&&this._onChange(e)}_value;ariaLabel="";ariaLabelledby;get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}typeaheadDebounceInterval;sortComparator;get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}_id;get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto";canSelectNullableOptions=this._defaultOptions?.canSelectNullableOptions??!1;optionSelectionChanges=b0(()=>{let e=this.options;return e?e.changes.pipe(In(e),Si(()=>Bi(...e.map(i=>i.onSelectionChange)))):this._initialized.pipe(Si(()=>this.optionSelectionChanges))});openedChange=new Ve;_openedStream=this.openedChange.pipe($A(e=>e),aA(()=>{}));_closedStream=this.openedChange.pipe($A(e=>!e),aA(()=>{}));selectionChange=new Ve;valueChange=new Ve;constructor(){let e=E(TB),i=E(J4,{optional:!0}),n=E(jI,{optional:!0}),o=E(new ws("tabindex"),{optional:!0});this.ngControl&&(this.ngControl.valueAccessor=this),this._defaultOptions?.typeaheadDebounceInterval!=null&&(this.typeaheadDebounceInterval=this._defaultOptions.typeaheadDebounceInterval),this._errorStateTracker=new tu(e,this.ngControl,n,i,this.stateChanges),this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=o==null?0:parseInt(o)||0,this.id=this.id}ngOnInit(){this._selectionModel=new J1(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(Ha(),mt(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen)),this._viewportRuler.change().pipe(mt(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(mt(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(In(null),mt(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){let e=this._getTriggerAriaLabelledby(),i=this.ngControl;if(e!==this._triggerAriaLabelledBy){let n=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?n.setAttribute("aria-labelledby",e):n.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(this._previousControl!==void 0&&i.disabled!==null&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(e){(e.disabled||e.userAriaDescribedBy)&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this.typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_trackedModal=null;_applyModalPanelOwnership(){let e=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!e)return;let i=`${this.id}-panel`;this._trackedModal&&_5(this._trackedModal,"aria-owns",i),DN(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){if(!this._trackedModal)return;let e=`${this.id}-panel`;_5(this._trackedModal,"aria-owns",e),this._trackedModal=null}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next())}writeValue(e){this._assignValue(e)}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){let e=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}updateErrorState(){this._errorStateTracker.updateErrorState()}_isRtl(){return this._dir?this._dir.value==="rtl":!1}_handleKeydown(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}_handleClosedKeydown(e){let i=e.keyCode,n=i===40||i===38||i===37||i===39,o=i===13||i===32,r=this._keyManager;if(!r.isTyping()&&o&&!Tr(e)||(this.multiple||e.altKey)&&n)e.preventDefault(),this.open();else if(!this.multiple){let s=this.selected;r.onKeydown(e);let a=this.selected;a&&s!==a&&this._liveAnnouncer.announce(a.viewValue,1e4)}}_handleOpenKeydown(e){let i=this._keyManager,n=e.keyCode,o=n===40||n===38,r=i.isTyping();if(o&&e.altKey)e.preventDefault(),this.close();else if(!r&&(n===13||n===32)&&i.activeItem&&!Tr(e))e.preventDefault(),i.activeItem._selectViaInteraction();else if(!r&&this._multiple&&n===65&&e.ctrlKey){e.preventDefault();let s=this.options.some(a=>!a.disabled&&!a.selected);this.options.forEach(a=>{a.disabled||(s?a.select():a.deselect())})}else{let s=i.activeItemIndex;i.onKeydown(e),this._multiple&&o&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==s&&i.activeItem._selectViaInteraction()}}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(Pn(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(e){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{let i=this._selectOptionByValue(e);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(e){let i=this.options.find(n=>{if(this._selectionModel.isSelected(n))return!1;try{return(n.value!=null||this.canSelectNullableOptions)&&this._compareWith(n.value,e)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(e){return e!==this._value||this._multiple&&Array.isArray(e)?(this.options&&this._setSelectionByValue(e),this._value=e,!0):!1}_skipPredicate=e=>this.panelOpen?!1:e.disabled;_getOverlayWidth(e){return this.panelWidth==="auto"?(e instanceof Lm?e.elementRef:e||this._elementRef).nativeElement.getBoundingClientRect().width:this.panelWidth===null?"":this.panelWidth}_syncParentProperties(){if(this.options)for(let e of this.options)e._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new x5(this.options).withTypeAhead(this.typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){let e=Bi(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(mt(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Bi(...this.options.map(i=>i._stateChanges)).pipe(mt(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){let n=this._selectionModel.isSelected(e);!this.canSelectNullableOptions&&e.value==null&&!this._multiple?(e.deselect(),this._selectionModel.clear(),this.value!=null&&this._propagateChanges(e.value)):(n!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),i&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),i&&this.focus())),n!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){let e=this.options.toArray();this._selectionModel.sort((i,n)=>this.sortComparator?this.sortComparator(i,n,e):e.indexOf(i)-e.indexOf(n)),this.stateChanges.next()}}_propagateChanges(e){let i;this.multiple?i=this.selected.map(n=>n.value):i=this.selected?this.selected.value:e,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let e=-1;for(let i=0;i0}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;let e=this._parentFormField?.getLabelId()||null,i=e?e+" ":"";return this.ariaLabelledby?i+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;let e=this._parentFormField?.getLabelId(),i=(e?e+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(e){this.openedChange.emit(e)}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-select"]],contentQueries:function(i,n,o){if(i&1&&(ni(o,fbe,5),ni(o,Ac,5),ni(o,NN,5)),i&2){let r;oA(r=rA())&&(n.customTrigger=r.first),oA(r=rA())&&(n.options=r),oA(r=rA())&&(n.optionGroups=r)}},viewQuery:function(i,n){if(i&1&&(At(rbe,5),At(sbe,5),At(DF,5)),i&2){let o;oA(o=rA())&&(n.trigger=o.first),oA(o=rA())&&(n.panel=o.first),oA(o=rA())&&(n._overlayDir=o.first)}},hostAttrs:["role","combobox","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,n){i&1&&ee("keydown",function(r){return n._handleKeydown(r)})("focus",function(){return n._onFocus()})("blur",function(){return n._onBlur()}),i&2&&(AA("id",n.id)("tabindex",n.disabled?-1:n.tabIndex)("aria-controls",n.panelOpen?n.id+"-panel":null)("aria-expanded",n.panelOpen)("aria-label",n.ariaLabel||null)("aria-required",n.required.toString())("aria-disabled",n.disabled.toString())("aria-invalid",n.errorState)("aria-activedescendant",n._getAriaActiveDescendant()),iA("mat-mdc-select-disabled",n.disabled)("mat-mdc-select-invalid",n.errorState)("mat-mdc-select-required",n.required)("mat-mdc-select-empty",n.empty)("mat-mdc-select-multiple",n.multiple))},inputs:{userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[2,"disabled","disabled",IA],disableRipple:[2,"disableRipple","disableRipple",IA],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:ln(e)],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",IA],placeholder:"placeholder",required:[2,"required","required",IA],multiple:[2,"multiple","multiple",IA],disableOptionCentering:[2,"disableOptionCentering","disableOptionCentering",IA],compareWith:"compareWith",value:"value",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[2,"typeaheadDebounceInterval","typeaheadDebounceInterval",ln],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth",canSelectNullableOptions:[2,"canSelectNullableOptions","canSelectNullableOptions",IA]},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],features:[gt([{provide:V4,useExisting:t},{provide:RN,useExisting:t}]),ti],ngContentSelectors:cbe,decls:11,vars:8,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","attach","detach","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"keydown","ngClass"]],template:function(i,n){if(i&1){let o=Ue();Kt(abe),m(0,"div",2,0),ee("click",function(){return q(o),W(n.open())}),m(3,"div",3),ne(4,lbe,2,1,"span",4)(5,Cbe,3,1,"span",5),p(),m(6,"div",6)(7,"div",7),ft(),m(8,"svg",8),ve(9,"path",9),p()()()(),ne(10,Ibe,3,9,"ng-template",10),ee("backdropClick",function(){return q(o),W(n.close())})("attach",function(){return q(o),W(n._onAttached())})("detach",function(){return q(o),W(n.close())})}if(i&2){let o=Ji(1);y(3),AA("id",n._valueId),y(),$(n.empty?4:5),y(6),te("cdkConnectedOverlayPanelClass",n._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",n._scrollStrategy)("cdkConnectedOverlayOrigin",n._preferredOverlayOrigin||o)("cdkConnectedOverlayOpen",n.panelOpen)("cdkConnectedOverlayPositions",n._positions)("cdkConnectedOverlayWidth",n._overlayWidth)}},dependencies:[Lm,DF,ta],styles:['.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color, var(--mat-sys-on-surface));font-family:var(--mat-select-trigger-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-select-trigger-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-select-trigger-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-select-trigger-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-select-trigger-text-tracking, var(--mat-sys-body-large-tracking))}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-disabled .mat-mdc-select-placeholder{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color, var(--mat-sys-error))}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}@media(forced-colors: active){.mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .mat-mdc-select-arrow svg{fill:GrayText}}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color, var(--mat-sys-surface-container))}@media(forced-colors: active){div.mat-mdc-select-panel{outline:solid 1px}}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}div.mat-mdc-select-panel .mat-mdc-option{--mdc-list-list-item-container-color: var(--mat-select-panel-background-color)}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color, var(--mat-sys-on-surface-variant))}.mat-form-field-no-animations .mat-mdc-select-placeholder,._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform, translateY(-8px))}'],encapsulation:2,data:{animation:[ube.transformPanel]},changeDetection:0})}return t})();var xF=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({providers:[Ebe],imports:[Lg,LN,ui,E2,gl,LN,ui]})}return t})();var mbe=["tooltip"],xAe=20;var _Ae=new re("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{let t=E(Or);return()=>t.scrollStrategies.reposition({scrollThrottle:xAe})}});function pbe(t){return()=>t.scrollStrategies.reposition({scrollThrottle:xAe})}var wbe={provide:_Ae,deps:[Or],useFactory:pbe};function ybe(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}var Dbe=new re("mat-tooltip-default-options",{providedIn:"root",factory:ybe});var SAe="tooltip-panel",kAe=Gl({passive:!0}),vbe=8,bbe=8,Mbe=24,Sbe=200,Ma=(()=>{class t{_elementRef=E(eA);_ngZone=E(yA);_platform=E(mi);_ariaDescriber=E(ZZ);_focusMonitor=E(ns);_dir=E(Do);_injector=E(Dt);_defaultOptions=E(Dbe,{optional:!0});_overlayRef;_tooltipInstance;_portal;_position="below";_positionAtOrigin=!1;_disabled=!1;_tooltipClass;_viewInitialized=!1;_pointerExitEventsInitialized=!1;_tooltipComponent=kbe;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending;_dirSubscribed=!1;get position(){return this._position}set position(e){e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(e){this._positionAtOrigin=Sr(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){let i=Sr(e);this._disabled!==i&&(this._disabled=i,i?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=Za(e)}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=Za(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}_hideDelay;touchGestures="auto";get message(){return this._message}set message(e){let i=this._message;this._message=e!=null?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(i)}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}_passiveListeners=[];_touchstartTimeout=null;_destroyed=new je;_isDestroyed=!1;constructor(){let e=this._defaultOptions;e&&(this._showDelay=e.showDelay,this._hideDelay=e.hideDelay,e.position&&(this.position=e.position),e.positionAtOrigin&&(this.positionAtOrigin=e.positionAtOrigin),e.touchGestures&&(this.touchGestures=e.touchGestures),e.tooltipClass&&(this.tooltipClass=e.tooltipClass)),this._viewportMargin=vbe}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(mt(this._destroyed)).subscribe(e=>{e?e==="keyboard"&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){let e=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,n])=>{e.removeEventListener(i,n,kAe)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._isDestroyed=!0,this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}show(e=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible()){this._tooltipInstance?._cancelPendingAnimations();return}let n=this._createOverlay(i);this._detach(),this._portal=this._portal||new Rg(this._tooltipComponent,this._injector.get(xn));let o=this._tooltipInstance=n.attach(this._portal).instance;o._triggerElement=this._elementRef.nativeElement,o._mouseLeaveHideDelay=this._hideDelay,o.afterHidden().pipe(mt(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),o.show(e)}hide(e=this.hideDelay){let i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}toggle(e){this._isTooltipVisible()?this.hide():this.show(void 0,e)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(e){if(this._overlayRef){let r=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&r._origin instanceof eA)return this._overlayRef;this._detach()}let i=this._injector.get(Y1).getAncestorScrollContainers(this._elementRef),n=this._injector.get(Or),o=n.position().flexibleConnectedTo(this.positionAtOrigin?e||this._elementRef:this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return o.positionChanges.pipe(mt(this._destroyed)).subscribe(r=>{this._updateCurrentPositionClass(r.connectionPair),this._tooltipInstance&&r.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=n.create({direction:this._dir,positionStrategy:o,panelClass:`${this._cssClassPrefix}-${SAe}`,scrollStrategy:this._injector.get(_Ae)()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(mt(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(mt(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(mt(this._destroyed)).subscribe(r=>{this._isTooltipVisible()&&r.keyCode===27&&!Tr(r)&&(r.preventDefault(),r.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._dirSubscribed||(this._dirSubscribed=!0,this._dir.change.pipe(mt(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(e){let i=e.getConfig().positionStrategy,n=this._getOrigin(),o=this._getOverlayPosition();i.withPositions([this._addOffset(ae(ae({},n.main),o.main)),this._addOffset(ae(ae({},n.fallback),o.fallback))])}_addOffset(e){let i=bbe,n=!this._dir||this._dir.value=="ltr";return e.originY==="top"?e.offsetY=-i:e.originY==="bottom"?e.offsetY=i:e.originX==="start"?e.offsetX=n?-i:i:e.originX==="end"&&(e.offsetX=n?i:-i),e}_getOrigin(){let e=!this._dir||this._dir.value=="ltr",i=this.position,n;i=="above"||i=="below"?n={originX:"center",originY:i=="above"?"top":"bottom"}:i=="before"||i=="left"&&e||i=="right"&&!e?n={originX:"start",originY:"center"}:(i=="after"||i=="right"&&e||i=="left"&&!e)&&(n={originX:"end",originY:"center"});let{x:o,y:r}=this._invertPosition(n.originX,n.originY);return{main:n,fallback:{originX:o,originY:r}}}_getOverlayPosition(){let e=!this._dir||this._dir.value=="ltr",i=this.position,n;i=="above"?n={overlayX:"center",overlayY:"bottom"}:i=="below"?n={overlayX:"center",overlayY:"top"}:i=="before"||i=="left"&&e||i=="right"&&!e?n={overlayX:"end",overlayY:"center"}:(i=="after"||i=="right"&&e||i=="left"&&!e)&&(n={overlayX:"start",overlayY:"center"});let{x:o,y:r}=this._invertPosition(n.overlayX,n.overlayY);return{main:n,fallback:{overlayX:o,overlayY:r}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),Gr(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}_invertPosition(e,i){return this.position==="above"||this.position==="below"?i==="top"?i="bottom":i==="bottom"&&(i="top"):e==="end"?e="start":e==="start"&&(e="end"),{x:e,y:i}}_updateCurrentPositionClass(e){let{overlayY:i,originX:n,originY:o}=e,r;if(i==="center"?this._dir&&this._dir.value==="rtl"?r=n==="end"?"left":"right":r=n==="start"?"left":"right":r=i==="bottom"&&o==="top"?"above":"below",r!==this._currentPosition){let s=this._overlayRef;if(s){let a=`${this._cssClassPrefix}-${SAe}-`;s.removePanelClass(a+this._currentPosition),s.addPanelClass(a+r)}this._currentPosition=r}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",e=>{this._setupPointerExitEventsIfNeeded();let i;e.x!==void 0&&e.y!==void 0&&(i=e),this.show(void 0,i)}]):this.touchGestures!=="off"&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",e=>{let i=e.targetTouches?.[0],n=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout);let o=500;this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,n)},this._defaultOptions?.touchLongPressShowDelay??o)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;let e=[];if(this._platformSupportsMouseEvents())e.push(["mouseleave",i=>{let n=i.relatedTarget;(!n||!this._overlayRef?.overlayElement.contains(n))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if(this.touchGestures!=="off"){this._disableNativeGesturesIfNecessary();let i=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay)};e.push(["touchend",i],["touchcancel",i])}this._addListeners(e),this._passiveListeners.push(...e)}_addListeners(e){e.forEach(([i,n])=>{this._elementRef.nativeElement.addEventListener(i,n,kAe)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(e){if(this._isTooltipVisible()){let i=this._injector.get(ht).elementFromPoint(e.clientX,e.clientY),n=this._elementRef.nativeElement;i!==n&&!n.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){let e=this.touchGestures;if(e!=="off"){let i=this._elementRef.nativeElement,n=i.style;(e==="on"||i.nodeName!=="INPUT"&&i.nodeName!=="TEXTAREA")&&(n.userSelect=n.msUserSelect=n.webkitUserSelect=n.MozUserSelect="none"),(e==="on"||!i.draggable)&&(n.webkitUserDrag="none"),n.touchAction="none",n.webkitTapHighlightColor="transparent"}}_syncAriaDescription(e){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,e,"tooltip"),this._isDestroyed||Gr({write:()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")}},{injector:this._injector}))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,n){i&2&&iA("mat-mdc-tooltip-disabled",n.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return t})(),kbe=(()=>{class t{_changeDetectorRef=E(ut);_elementRef=E(eA);_isMultiline=!1;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled;_tooltip;_closeOnInteraction=!1;_isVisible=!1;_onHide=new je;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";constructor(){let e=E(Oi,{optional:!0});this._animationsDisabled=e==="NoopAnimations"}show(e){this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},e)}hide(e){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},e)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:e}){(!e||!this._triggerElement.contains(e))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){let e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>Mbe&&e.width>=Sbe}_handleAnimationEnd({animationName:e}){(e===this._showAnimation||e===this._hideAnimation)&&this._finalizeAnimation(e===this._showAnimation)}_cancelPendingAnimations(){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(e){let i=this._tooltip.nativeElement,n=this._showAnimation,o=this._hideAnimation;if(i.classList.remove(e?o:n),i.classList.add(e?n:o),this._isVisible!==e&&(this._isVisible=e,this._changeDetectorRef.markForCheck()),e&&!this._animationsDisabled&&typeof getComputedStyle=="function"){let r=getComputedStyle(i);(r.getPropertyValue("animation-duration")==="0s"||r.getPropertyValue("animation-name")==="none")&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-tooltip-component"]],viewQuery:function(i,n){if(i&1&&At(mbe,7),i&2){let o;oA(o=rA())&&(n._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(i,n){i&1&&ee("mouseleave",function(r){return n._handleMouseLeave(r)})},decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(i,n){if(i&1){let o=Ue();m(0,"div",1,0),ee("animationend",function(s){return q(o),W(n._handleAnimationEnd(s))}),m(2,"div",2),T(3),p()()}i&2&&(iA("mdc-tooltip--multiline",n._isMultiline),te("ngClass",n.tooltipClass),y(3),Pe(n.message))},dependencies:[ta],styles:['.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mdc-plain-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mdc-plain-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-plain-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mdc-plain-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mdc-plain-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mdc-plain-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mdc-plain-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-mdc-tooltip-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel{line-height:normal}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}return t})();var _F=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({providers:[wbe],imports:[L5,Lg,ui,ui,E2]})}return t})();function _be(t,A){if(t&1&&(m(0,"mat-option",17),T(1),p()),t&2){let e=A.$implicit;te("value",e),y(),FA(" ",e," ")}}function Rbe(t,A){if(t&1){let e=Ue();m(0,"mat-form-field",14)(1,"mat-select",16,0),ee("selectionChange",function(n){q(e);let o=M(2);return W(o._changePageSize(n.value))}),Rt(3,_be,2,2,"mat-option",17,Fi),p(),m(5,"div",18),ee("click",function(){q(e);let n=Ji(2);return W(n.open())}),p()()}if(t&2){let e=M(2);te("appearance",e._formFieldAppearance)("color",e.color),y(),te("value",e.pageSize)("disabled",e.disabled)("aria-labelledby",e._pageSizeLabelId)("panelClass",e.selectConfig.panelClass||"")("disableOptionCentering",e.selectConfig.disableOptionCentering),y(2),Nt(e._displayedPageSizeOptions)}}function Nbe(t,A){if(t&1&&(m(0,"div",15),T(1),p()),t&2){let e=M(2);y(),Pe(e.pageSize)}}function Lbe(t,A){if(t&1&&(m(0,"div",3)(1,"div",13),T(2),p(),ne(3,Rbe,6,7,"mat-form-field",14)(4,Nbe,2,1,"div",15),p()),t&2){let e=M();y(),AA("id",e._pageSizeLabelId),y(),FA(" ",e._intl.itemsPerPageLabel," "),y(),$(e._displayedPageSizeOptions.length>1?3:-1),y(),$(e._displayedPageSizeOptions.length<=1?4:-1)}}function Fbe(t,A){if(t&1){let e=Ue();m(0,"button",19),ee("click",function(){q(e);let n=M();return W(n._buttonClicked(0,n._previousButtonsDisabled()))}),ft(),m(1,"svg",8),ve(2,"path",20),p()()}if(t&2){let e=M();te("matTooltip",e._intl.firstPageLabel)("matTooltipDisabled",e._previousButtonsDisabled())("disabled",e._previousButtonsDisabled()),AA("aria-label",e._intl.firstPageLabel)}}function Gbe(t,A){if(t&1){let e=Ue();m(0,"button",21),ee("click",function(){q(e);let n=M();return W(n._buttonClicked(n.getNumberOfPages()-1,n._nextButtonsDisabled()))}),ft(),m(1,"svg",8),ve(2,"path",22),p()()}if(t&2){let e=M();te("matTooltip",e._intl.lastPageLabel)("matTooltipDisabled",e._nextButtonsDisabled())("disabled",e._nextButtonsDisabled()),AA("aria-label",e._intl.lastPageLabel)}}var dD=(()=>{class t{changes=new je;itemsPerPageLabel="Items per page:";nextPageLabel="Next page";previousPageLabel="Previous page";firstPageLabel="First page";lastPageLabel="Last page";getRangeLabel=(e,i,n)=>{if(n==0||i==0)return`0 of ${n}`;n=Math.max(n,0);let o=e*i,r=o{class t{_intl=E(dD);_changeDetectorRef=E(ut);_formFieldAppearance;_pageSizeLabelId=E(un).getId("mat-paginator-page-size-label-");_intlChanges;_isInitialized=!1;_initializedStream=new Zc(1);color;get pageIndex(){return this._pageIndex}set pageIndex(e){this._pageIndex=Math.max(e||0,0),this._changeDetectorRef.markForCheck()}_pageIndex=0;get length(){return this._length}set length(e){this._length=e||0,this._changeDetectorRef.markForCheck()}_length=0;get pageSize(){return this._pageSize}set pageSize(e){this._pageSize=Math.max(e||0,0),this._updateDisplayedPageSizeOptions()}_pageSize;get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(e){this._pageSizeOptions=(e||[]).map(i=>ln(i,0)),this._updateDisplayedPageSizeOptions()}_pageSizeOptions=[];hidePageSize=!1;showFirstLastButtons=!1;selectConfig={};disabled=!1;page=new Ve;_displayedPageSizeOptions;initialized=this._initializedStream;constructor(){let e=this._intl,i=E(Ube,{optional:!0});if(this._intlChanges=e.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),i){let{pageSize:n,pageSizeOptions:o,hidePageSize:r,showFirstLastButtons:s}=i;n!=null&&(this._pageSize=n),o!=null&&(this._pageSizeOptions=o),r!=null&&(this.hidePageSize=r),s!=null&&(this.showFirstLastButtons=s)}this._formFieldAppearance=i?.formFieldAppearance||"outline"}ngOnInit(){this._isInitialized=!0,this._updateDisplayedPageSizeOptions(),this._initializedStream.next()}ngOnDestroy(){this._initializedStream.complete(),this._intlChanges.unsubscribe()}nextPage(){this.hasNextPage()&&this._navigate(this.pageIndex+1)}previousPage(){this.hasPreviousPage()&&this._navigate(this.pageIndex-1)}firstPage(){this.hasPreviousPage()&&this._navigate(0)}lastPage(){this.hasNextPage()&&this._navigate(this.getNumberOfPages()-1)}hasPreviousPage(){return this.pageIndex>=1&&this.pageSize!=0}hasNextPage(){let e=this.getNumberOfPages()-1;return this.pageIndexe-i),this._changeDetectorRef.markForCheck())}_emitPageEvent(e){this.page.emit({previousPageIndex:e,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}_navigate(e){let i=this.pageIndex;e!==i&&(this.pageIndex=e,this._emitPageEvent(i))}_buttonClicked(e,i){i||this._navigate(e)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-mdc-paginator"],inputs:{color:"color",pageIndex:[2,"pageIndex","pageIndex",ln],length:[2,"length","length",ln],pageSize:[2,"pageSize","pageSize",ln],pageSizeOptions:"pageSizeOptions",hidePageSize:[2,"hidePageSize","hidePageSize",IA],showFirstLastButtons:[2,"showFirstLastButtons","showFirstLastButtons",IA],selectConfig:"selectConfig",disabled:[2,"disabled","disabled",IA]},outputs:{page:"page"},exportAs:["matPaginator"],decls:14,vars:12,consts:[["selectRef",""],[1,"mat-mdc-paginator-outer-container"],[1,"mat-mdc-paginator-container"],[1,"mat-mdc-paginator-page-size"],[1,"mat-mdc-paginator-range-actions"],["aria-live","polite",1,"mat-mdc-paginator-range-label"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","disabled"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-previous",3,"click","matTooltip","matTooltipDisabled","disabled"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true",1,"mat-mdc-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-next",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","disabled"],[1,"mat-mdc-paginator-page-size-label"],[1,"mat-mdc-paginator-page-size-select",3,"appearance","color"],[1,"mat-mdc-paginator-page-size-value"],["hideSingleSelectionIndicator","",3,"selectionChange","value","disabled","aria-labelledby","panelClass","disableOptionCentering"],[3,"value"],[1,"mat-mdc-paginator-touch-target",3,"click"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"click","matTooltip","matTooltipDisabled","disabled"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(i,n){i&1&&(m(0,"div",1)(1,"div",2),ne(2,Lbe,5,4,"div",3),m(3,"div",4)(4,"div",5),T(5),p(),ne(6,Fbe,3,4,"button",6),m(7,"button",7),ee("click",function(){return n._buttonClicked(n.pageIndex-1,n._previousButtonsDisabled())}),ft(),m(8,"svg",8),ve(9,"path",9),p()(),$s(),m(10,"button",10),ee("click",function(){return n._buttonClicked(n.pageIndex+1,n._nextButtonsDisabled())}),ft(),m(11,"svg",8),ve(12,"path",11),p()(),ne(13,Gbe,3,4,"button",12),p()()()),i&2&&(y(2),$(n.hidePageSize?-1:2),y(3),FA(" ",n._intl.getRangeLabel(n.pageIndex,n.pageSize,n.length)," "),y(),$(n.showFirstLastButtons?6:-1),y(),te("matTooltip",n._intl.previousPageLabel)("matTooltipDisabled",n._previousButtonsDisabled())("disabled",n._previousButtonsDisabled()),AA("aria-label",n._intl.previousPageLabel),y(3),te("matTooltip",n._intl.nextPageLabel)("matTooltipDisabled",n._nextButtonsDisabled())("disabled",n._nextButtonsDisabled()),AA("aria-label",n._intl.nextPageLabel),y(3),$(n.showFirstLastButtons?13:-1))},dependencies:[ds,Yl,Ac,ya,Ma],styles:[".mat-mdc-paginator{display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-paginator-container-text-color, var(--mat-sys-on-surface));background-color:var(--mat-paginator-container-background-color, var(--mat-sys-surface));font-family:var(--mat-paginator-container-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-paginator-container-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-paginator-container-text-size, var(--mat-sys-body-small-size));font-weight:var(--mat-paginator-container-text-weight, var(--mat-sys-body-small-weight));letter-spacing:var(--mat-paginator-container-text-tracking, var(--mat-sys-body-small-tracking));--mat-form-field-container-height:var(--mat-paginator-form-field-container-height, 40px);--mat-form-field-container-vertical-padding:var(--mat-paginator-form-field-container-vertical-padding, 8px)}.mat-mdc-paginator .mat-mdc-select-value{font-size:var(--mat-paginator-select-trigger-text-size, var(--mat-sys-body-small-size))}.mat-mdc-paginator .mat-mdc-form-field-subscript-wrapper{display:none}.mat-mdc-paginator .mat-mdc-select{line-height:1.5}.mat-mdc-paginator-outer-container{display:flex}.mat-mdc-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap;width:100%;min-height:var(--mat-paginator-container-size, 56px)}.mat-mdc-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-mdc-paginator-page-size{margin-right:0;margin-left:8px}.mat-mdc-paginator-page-size-label{margin:0 4px}.mat-mdc-paginator-page-size-select{margin:0 4px;width:84px}.mat-mdc-paginator-range-label{margin:0 32px 0 24px}.mat-mdc-paginator-range-actions{display:flex;align-items:center}.mat-mdc-paginator-icon{display:inline-block;width:28px;fill:var(--mat-paginator-enabled-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button[aria-disabled] .mat-mdc-paginator-icon{fill:var(--mat-paginator-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}[dir=rtl] .mat-mdc-paginator-icon{transform:rotate(180deg)}@media(forced-colors: active){.mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon,.mat-mdc-paginator-icon{fill:currentColor;fill:CanvasText}.mat-mdc-paginator-range-actions .mat-mdc-icon-button{outline:solid 1px}}.mat-mdc-paginator-touch-target{display:var(--mat-paginator-touch-target-display, block);position:absolute;top:50%;left:50%;width:84px;height:48px;background-color:rgba(0,0,0,0);transform:translate(-50%, -50%);cursor:pointer}"],encapsulation:2,changeDetection:0})}return t})();var NAe=["*"],Tbe=["content"],Obe=[[["mat-drawer"]],[["mat-drawer-content"]],"*"],Jbe=["mat-drawer","mat-drawer-content","*"];function Ybe(t,A){if(t&1){let e=Ue();m(0,"div",1),ee("click",function(){q(e);let n=M();return W(n._onBackdropClicked())}),p()}if(t&2){let e=M();iA("mat-drawer-shown",e._isShowingBackdrop())}}function Hbe(t,A){t&1&&(m(0,"mat-drawer-content"),NA(1,2),p())}var zbe=new re("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:Pbe}),LAe=new re("MAT_DRAWER_CONTAINER");function Pbe(){return!1}var RF=(()=>{class t extends f2{_platform=E(mi);_changeDetectorRef=E(ut);_container=E(LF);constructor(){let e=E(eA),i=E(Y1),n=E(yA);super(e,i,n)}ngAfterContentInit(){this._container._contentMarginChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})}_shouldBeHidden(){if(this._platform.isBrowser)return!1;let{start:e,end:i}=this._container;return e!=null&&e.mode!=="over"&&e.opened||i!=null&&i.mode!=="over"&&i.opened}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-drawer-content"]],hostAttrs:[1,"mat-drawer-content"],hostVars:6,hostBindings:function(i,n){i&2&&(cn("margin-left",n._container._contentMargins.left,"px")("margin-right",n._container._contentMargins.right,"px"),iA("mat-drawer-content-hidden",n._shouldBeHidden()))},features:[gt([{provide:f2,useExisting:t}]),Ct],ngContentSelectors:NAe,decls:1,vars:0,template:function(i,n){i&1&&(Kt(),NA(0))},encapsulation:2,changeDetection:0})}return t})(),NF=(()=>{class t{_elementRef=E(eA);_focusTrapFactory=E(R5);_focusMonitor=E(ns);_platform=E(mi);_ngZone=E(yA);_renderer=E(an);_interactivityChecker=E(z4);_doc=E(ht,{optional:!0});_container=E(LAe,{optional:!0});_focusTrap=null;_elementFocusedBeforeDrawerWasOpened=null;_eventCleanups;_isAttached;_anchor;get position(){return this._position}set position(e){e=e==="end"?"end":"start",e!==this._position&&(this._isAttached&&this._updatePositionInParent(e),this._position=e,this.onPositionChanged.emit())}_position="start";get mode(){return this._mode}set mode(e){this._mode=e,this._updateFocusTrapState(),this._modeChanged.next()}_mode="over";get disableClose(){return this._disableClose}set disableClose(e){this._disableClose=Sr(e)}_disableClose=!1;get autoFocus(){let e=this._autoFocus;return e??(this.mode==="side"?"dialog":"first-tabbable")}set autoFocus(e){(e==="true"||e==="false"||e==null)&&(e=Sr(e)),this._autoFocus=e}_autoFocus;get opened(){return this._opened}set opened(e){this.toggle(Sr(e))}_opened=!1;_openedVia;_animationStarted=new je;_animationEnd=new je;openedChange=new Ve(!0);_openedStream=this.openedChange.pipe($A(e=>e),aA(()=>{}));openedStart=this._animationStarted.pipe($A(()=>this.opened),jh(void 0));_closedStream=this.openedChange.pipe($A(e=>!e),aA(()=>{}));closedStart=this._animationStarted.pipe($A(()=>!this.opened),jh(void 0));_destroyed=new je;onPositionChanged=new Ve;_content;_modeChanged=new je;_injector=E(Dt);_changeDetectorRef=E(ut);constructor(){this.openedChange.pipe(mt(this._destroyed)).subscribe(e=>{e?(this._doc&&(this._elementFocusedBeforeDrawerWasOpened=this._doc.activeElement),this._takeFocus()):this._isFocusWithinDrawer()&&this._restoreFocus(this._openedVia||"program")}),this._ngZone.runOutsideAngular(()=>{let e=this._elementRef.nativeElement;Ya(e,"keydown").pipe($A(i=>i.keyCode===27&&!this.disableClose&&!Tr(i)),mt(this._destroyed)).subscribe(i=>this._ngZone.run(()=>{this.close(),i.stopPropagation(),i.preventDefault()})),this._eventCleanups=[this._renderer.listen(e,"transitionrun",this._handleTransitionEvent),this._renderer.listen(e,"transitionend",this._handleTransitionEvent),this._renderer.listen(e,"transitioncancel",this._handleTransitionEvent)]}),this._animationEnd.subscribe(()=>{this.openedChange.emit(this._opened)})}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let n=()=>{o(),r(),e.removeAttribute("tabindex")},o=this._renderer.listen(e,"blur",n),r=this._renderer.listen(e,"mousedown",n)})),e.focus(i)}_focusByCssSelector(e,i){let n=this._elementRef.nativeElement.querySelector(e);n&&this._forceFocus(n,i)}_takeFocus(){if(!this._focusTrap)return;let e=this._elementRef.nativeElement;switch(this.autoFocus){case!1:case"dialog":return;case!0:case"first-tabbable":Gr(()=>{!this._focusTrap.focusInitialElement()&&typeof e.focus=="function"&&e.focus()},{injector:this._injector});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this.autoFocus);break}}_restoreFocus(e){this.autoFocus!=="dialog"&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,e):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null)}_isFocusWithinDrawer(){let e=this._doc.activeElement;return!!e&&this._elementRef.nativeElement.contains(e)}ngAfterViewInit(){this._isAttached=!0,this._position==="end"&&this._updatePositionInParent("end"),this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState())}ngOnDestroy(){this._eventCleanups.forEach(e=>e()),this._focusTrap?.destroy(),this._anchor?.remove(),this._anchor=null,this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}open(e){return this.toggle(!0,e)}close(){return this.toggle(!1)}_closeViaBackdropClick(){return this._setOpen(!1,!0,"mouse")}toggle(e=!this.opened,i){e&&i&&(this._openedVia=i);let n=this._setOpen(e,!e&&this._isFocusWithinDrawer(),this._openedVia||"program");return e||(this._openedVia=null),n}_setOpen(e,i,n){return e===this._opened?Promise.resolve(e?"open":"close"):(this._opened=e,this._container?._transitionsEnabled?this._setIsAnimating(!0):setTimeout(()=>{this._animationStarted.next(),this._animationEnd.next()}),this._elementRef.nativeElement.classList.toggle("mat-drawer-opened",e),!e&&i&&this._restoreFocus(n),this._changeDetectorRef.markForCheck(),this._updateFocusTrapState(),new Promise(o=>{this.openedChange.pipe(Pn(1)).subscribe(r=>o(r?"open":"close"))}))}_setIsAnimating(e){this._elementRef.nativeElement.classList.toggle("mat-drawer-animating",e)}_getWidth(){return this._elementRef.nativeElement.offsetWidth||0}_updateFocusTrapState(){this._focusTrap&&(this._focusTrap.enabled=!!this._container?.hasBackdrop&&this.opened)}_updatePositionInParent(e){if(!this._platform.isBrowser)return;let i=this._elementRef.nativeElement,n=i.parentNode;e==="end"?(this._anchor||(this._anchor=this._doc.createComment("mat-drawer-anchor"),n.insertBefore(this._anchor,i)),n.appendChild(i)):this._anchor&&this._anchor.parentNode.insertBefore(i,this._anchor)}_handleTransitionEvent=e=>{let i=this._elementRef.nativeElement;e.target===i&&this._ngZone.run(()=>{e.type==="transitionrun"?this._animationStarted.next(e):(e.type==="transitionend"&&this._setIsAnimating(!1),this._animationEnd.next(e))})};static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-drawer"]],viewQuery:function(i,n){if(i&1&&At(Tbe,5),i&2){let o;oA(o=rA())&&(n._content=o.first)}},hostAttrs:["tabIndex","-1",1,"mat-drawer"],hostVars:11,hostBindings:function(i,n){i&2&&(AA("align",null),cn("visibility",!n._container&&!n.opened?"hidden":null),iA("mat-drawer-end",n.position==="end")("mat-drawer-over",n.mode==="over")("mat-drawer-push",n.mode==="push")("mat-drawer-side",n.mode==="side"))},inputs:{position:"position",mode:"mode",disableClose:"disableClose",autoFocus:"autoFocus",opened:"opened"},outputs:{openedChange:"openedChange",_openedStream:"opened",openedStart:"openedStart",_closedStream:"closed",closedStart:"closedStart",onPositionChanged:"positionChanged"},exportAs:["matDrawer"],ngContentSelectors:NAe,decls:3,vars:0,consts:[["content",""],["cdkScrollable","",1,"mat-drawer-inner-container"]],template:function(i,n){i&1&&(Kt(),m(0,"div",1,0),NA(2),p())},dependencies:[f2],encapsulation:2,changeDetection:0})}return t})(),LF=(()=>{class t{_dir=E(Do,{optional:!0});_element=E(eA);_ngZone=E(yA);_changeDetectorRef=E(ut);_animationMode=E(Oi,{optional:!0});_transitionsEnabled=!1;_allDrawers;_drawers=new qa;_content;_userContent;get start(){return this._start}get end(){return this._end}get autosize(){return this._autosize}set autosize(e){this._autosize=Sr(e)}_autosize=E(zbe);get hasBackdrop(){return this._drawerHasBackdrop(this._start)||this._drawerHasBackdrop(this._end)}set hasBackdrop(e){this._backdropOverride=e==null?null:Sr(e)}_backdropOverride;backdropClick=new Ve;_start;_end;_left;_right;_destroyed=new je;_doCheckSubject=new je;_contentMargins={left:null,right:null};_contentMarginChanges=new je;get scrollable(){return this._userContent||this._content}_injector=E(Dt);constructor(){let e=E(mi),i=E(Ol);this._dir?.change.pipe(mt(this._destroyed)).subscribe(()=>{this._validateDrawers(),this.updateContentMargins()}),i.change().pipe(mt(this._destroyed)).subscribe(()=>this.updateContentMargins()),this._animationMode!=="NoopAnimations"&&e.isBrowser&&this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{this._element.nativeElement.classList.add("mat-drawer-transition"),this._transitionsEnabled=!0},200)})}ngAfterContentInit(){this._allDrawers.changes.pipe(In(this._allDrawers),mt(this._destroyed)).subscribe(e=>{this._drawers.reset(e.filter(i=>!i._container||i._container===this)),this._drawers.notifyOnChanges()}),this._drawers.changes.pipe(In(null)).subscribe(()=>{this._validateDrawers(),this._drawers.forEach(e=>{this._watchDrawerToggle(e),this._watchDrawerPosition(e),this._watchDrawerMode(e)}),(!this._drawers.length||this._isDrawerOpen(this._start)||this._isDrawerOpen(this._end))&&this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(()=>{this._doCheckSubject.pipe(Ws(10),mt(this._destroyed)).subscribe(()=>this.updateContentMargins())})}ngOnDestroy(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}open(){this._drawers.forEach(e=>e.open())}close(){this._drawers.forEach(e=>e.close())}updateContentMargins(){let e=0,i=0;if(this._left&&this._left.opened){if(this._left.mode=="side")e+=this._left._getWidth();else if(this._left.mode=="push"){let n=this._left._getWidth();e+=n,i-=n}}if(this._right&&this._right.opened){if(this._right.mode=="side")i+=this._right._getWidth();else if(this._right.mode=="push"){let n=this._right._getWidth();i+=n,e-=n}}e=e||null,i=i||null,(e!==this._contentMargins.left||i!==this._contentMargins.right)&&(this._contentMargins={left:e,right:i},this._ngZone.run(()=>this._contentMarginChanges.next(this._contentMargins)))}ngDoCheck(){this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(()=>this._doCheckSubject.next())}_watchDrawerToggle(e){e._animationStarted.pipe(mt(this._drawers.changes)).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),e.mode!=="side"&&e.openedChange.pipe(mt(this._drawers.changes)).subscribe(()=>this._setContainerClass(e.opened))}_watchDrawerPosition(e){e.onPositionChanged.pipe(mt(this._drawers.changes)).subscribe(()=>{Gr({read:()=>this._validateDrawers()},{injector:this._injector})})}_watchDrawerMode(e){e._modeChanged.pipe(mt(Bi(this._drawers.changes,this._destroyed))).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()})}_setContainerClass(e){let i=this._element.nativeElement.classList,n="mat-drawer-container-has-open";e?i.add(n):i.remove(n)}_validateDrawers(){this._start=this._end=null,this._drawers.forEach(e=>{e.position=="end"?(this._end!=null,this._end=e):(this._start!=null,this._start=e)}),this._right=this._left=null,this._dir&&this._dir.value==="rtl"?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}_isPushed(){return this._isDrawerOpen(this._start)&&this._start.mode!="over"||this._isDrawerOpen(this._end)&&this._end.mode!="over"}_onBackdropClicked(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}_closeModalDrawersViaBackdrop(){[this._start,this._end].filter(e=>e&&!e.disableClose&&this._drawerHasBackdrop(e)).forEach(e=>e._closeViaBackdropClick())}_isShowingBackdrop(){return this._isDrawerOpen(this._start)&&this._drawerHasBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._drawerHasBackdrop(this._end)}_isDrawerOpen(e){return e!=null&&e.opened}_drawerHasBackdrop(e){return this._backdropOverride==null?!!e&&e.mode!=="side":this._backdropOverride}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-drawer-container"]],contentQueries:function(i,n,o){if(i&1&&(ni(o,RF,5),ni(o,NF,5)),i&2){let r;oA(r=rA())&&(n._content=r.first),oA(r=rA())&&(n._allDrawers=r)}},viewQuery:function(i,n){if(i&1&&At(RF,5),i&2){let o;oA(o=rA())&&(n._userContent=o.first)}},hostAttrs:[1,"mat-drawer-container"],hostVars:2,hostBindings:function(i,n){i&2&&iA("mat-drawer-container-explicit-backdrop",n._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[gt([{provide:LAe,useExisting:t}])],ngContentSelectors:Jbe,decls:4,vars:2,consts:[[1,"mat-drawer-backdrop",3,"mat-drawer-shown"],[1,"mat-drawer-backdrop",3,"click"]],template:function(i,n){i&1&&(Kt(Obe),ne(0,Ybe,1,2,"div",0),NA(1),NA(2,1),ne(3,Hbe,2,0,"mat-drawer-content")),i&2&&($(n.hasBackdrop?0:-1),y(3),$(n._content?-1:3))},dependencies:[RF],styles:[".mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color, var(--mat-sys-on-background));background-color:var(--mat-sidenav-content-background-color, var(--mat-sys-background));box-sizing:border-box;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color, color-mix(in srgb, var(--mat-sys-neutral-variant20) 40%, transparent))}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}@media(forced-colors: active){.mat-drawer-backdrop{opacity:.5}}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-content.mat-drawer-content-hidden{opacity:0}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;color:var(--mat-sidenav-container-text-color, var(--mat-sys-on-surface-variant));box-shadow:var(--mat-sidenav-container-elevation-shadow, none);background-color:var(--mat-sidenav-container-background-color, var(--mat-sys-surface));border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));width:var(--mat-sidenav-container-width, 360px);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}@media(forced-colors: active){.mat-drawer,[dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}}@media(forced-colors: active){[dir=rtl] .mat-drawer,.mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer-transition .mat-drawer{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating){visibility:hidden;box-shadow:none}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating) .mat-drawer-inner-container{display:none}.mat-drawer.mat-drawer-opened.mat-drawer-opened{transform:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto}.mat-sidenav-fixed{position:fixed}"],encapsulation:2,changeDetection:0})}return t})();var Vbe=["switch"],qbe=["*"];function Wbe(t,A){t&1&&(m(0,"span",10),ft(),m(1,"svg",12),ve(2,"path",13),p(),m(3,"svg",14),ve(4,"path",15),p()())}var Zbe=new re("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1,disabledInteractive:!1})}),Xbe={provide:sl,useExisting:zr(()=>FF),multi:!0},CD=class{source;checked;constructor(A,e){this.source=A,this.checked=e}},FF=(()=>{class t{_elementRef=E(eA);_focusMonitor=E(ns);_changeDetectorRef=E(ut);defaults=E(Zbe);_onChange=e=>{};_onTouched=()=>{};_validatorOnChange=()=>{};_uniqueId;_checked=!1;_createChangeEvent(e){return new CD(this,e)}_labelId;get buttonId(){return`${this.id||this._uniqueId}-button`}_switchElement;focus(){this._switchElement.nativeElement.focus()}_noopAnimations;_focused;name=null;id;labelPosition="after";ariaLabel=null;ariaLabelledby=null;ariaDescribedby;required;color;disabled=!1;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(e){this._checked=e,this._changeDetectorRef.markForCheck()}hideIcon;disabledInteractive;change=new Ve;toggleChange=new Ve;get inputId(){return`${this.id||this._uniqueId}-input`}constructor(){E(Wn).load(Pr);let e=E(new ws("tabindex"),{optional:!0}),i=this.defaults,n=E(Oi,{optional:!0});this.tabIndex=e==null?0:parseInt(e)||0,this.color=i.color||"accent",this._noopAnimations=n==="NoopAnimations",this.id=this._uniqueId=E(un).getId("mat-mdc-slide-toggle-"),this.hideIcon=i.hideIcon??!1,this.disabledInteractive=i.disabledInteractive??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{e==="keyboard"||e==="program"?(this._focused=!0,this._changeDetectorRef.markForCheck()):e||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(e){e.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(e){this.checked=!!e}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}validate(e){return this.required&&e.value!==!0?{required:!0}:null}registerOnValidatorChange(e){this._validatorOnChange=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.disabled||(this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new CD(this,this.checked))))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-slide-toggle"]],viewQuery:function(i,n){if(i&1&&At(Vbe,5),i&2){let o;oA(o=rA())&&(n._switchElement=o.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,n){i&2&&(ea("id",n.id),AA("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),Lo(n.color?"mat-"+n.color:""),iA("mat-mdc-slide-toggle-focused",n._focused)("mat-mdc-slide-toggle-checked",n.checked)("_mat-animation-noopable",n._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],required:[2,"required","required",IA],color:"color",disabled:[2,"disabled","disabled",IA],disableRipple:[2,"disableRipple","disableRipple",IA],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:ln(e)],checked:[2,"checked","checked",IA],hideIcon:[2,"hideIcon","hideIcon",IA],disabledInteractive:[2,"disabledInteractive","disabledInteractive",IA]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],features:[gt([Xbe,{provide:z0,useExisting:t,multi:!0}]),ti],ngContentSelectors:qbe,decls:13,vars:27,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,n){if(i&1){let o=Ue();Kt(),m(0,"div",1)(1,"button",2,0),ee("click",function(){return q(o),W(n._handleClick())}),ve(3,"span",3),m(4,"span",4)(5,"span",5)(6,"span",6),ve(7,"span",7),p(),m(8,"span",8),ve(9,"span",9),p(),ne(10,Wbe,5,0,"span",10),p()()(),m(11,"label",11),ee("click",function(s){return q(o),W(s.stopPropagation())}),NA(12),p()()}if(i&2){let o=Ji(2);te("labelPosition",n.labelPosition),y(),iA("mdc-switch--selected",n.checked)("mdc-switch--unselected",!n.checked)("mdc-switch--checked",n.checked)("mdc-switch--disabled",n.disabled)("mat-mdc-slide-toggle-disabled-interactive",n.disabledInteractive),te("tabIndex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("disabled",n.disabled&&!n.disabledInteractive),AA("id",n.buttonId)("name",n.name)("aria-label",n.ariaLabel)("aria-labelledby",n._getAriaLabelledBy())("aria-describedby",n.ariaDescribedby)("aria-required",n.required||null)("aria-checked",n.checked)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),y(8),te("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)("matRippleCentered",!0),y(),$(n.hideIcon?-1:10),y(),te("for",n.buttonId),AA("id",n._labelId)}},dependencies:[ec,U5],styles:['.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative;width:var(--mdc-switch-track-width, 52px)}.mdc-switch.mdc-switch--disabled{cursor:default;pointer-events:none}.mdc-switch.mat-mdc-slide-toggle-disabled-interactive{pointer-events:auto}.mdc-switch__track{overflow:hidden;position:relative;width:100%;height:var(--mdc-switch-track-height, 32px);border-radius:var(--mdc-switch-track-shape, var(--mat-sys-corner-full))}.mdc-switch--disabled.mdc-switch .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity, 0.12)}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%;border-width:var(--mat-switch-track-outline-width, 2px);border-color:var(--mat-switch-track-outline-color, var(--mat-sys-outline))}.mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track::after{border-width:var(--mat-switch-selected-track-outline-width, 2px);border-color:var(--mat-switch-selected-track-outline-color, transparent)}.mdc-switch--disabled .mdc-switch__track::before,.mdc-switch--disabled .mdc-switch__track::after{border-width:var(--mat-switch-disabled-unselected-track-outline-width, 2px);border-color:var(--mat-switch-disabled-unselected-track-outline-color, var(--mat-sys-on-surface))}@media(forced-colors: active){.mdc-switch__track{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0);background:var(--mdc-switch-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch--selected .mdc-switch__track::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color, var(--mat-sys-surface-variant))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::before,.mdc-switch.mdc-switch--disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch__track::after{transform:translateX(-100%);background:var(--mdc-switch-selected-track-color, var(--mat-sys-primary))}[dir=rtl] .mdc-switch__track::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::after{transform:translateX(0)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color, var(--mat-sys-primary))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::after,.mdc-switch.mdc-switch--disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color, var(--mat-sys-on-surface))}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0);width:calc(100% - var(--mdc-switch-handle-width))}[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto;transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1);width:var(--mdc-switch-handle-width);height:var(--mdc-switch-handle-height);border-radius:var(--mdc-switch-handle-shape, var(--mat-sys-corner-full))}[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size, 16px);height:var(--mat-switch-unselected-handle-size, 16px);margin:var(--mat-switch-unselected-handle-horizontal-margin, 0 8px)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin, 0 4px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size, 24px);height:var(--mat-switch-selected-handle-size, 24px);margin:var(--mat-switch-selected-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size, 24px);height:var(--mat-switch-with-icon-handle-size, 24px)}.mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size, 28px);height:var(--mat-switch-pressed-handle-size, 28px)}.mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin, 0 22px)}.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin, 0 2px)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity, 1)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity, 0.38)}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media(forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color, var(--mat-sys-on-primary))}.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color, var(--mat-sys-primary-container))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:hover:not(:focus):not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:focus:not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:active .mdc-switch__handle::after,.mdc-switch--selected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color, var(--mat-sys-surface))}.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color, var(--mat-sys-outline))}.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color, var(--mat-sys-on-surface))}.mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__shadow,.mdc-switch.mdc-switch--disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1;width:var(--mdc-switch-state-layer-size, 40px);height:var(--mdc-switch-state-layer-size, 40px)}.mdc-switch__ripple::after{content:"";opacity:0}.mdc-switch--disabled .mdc-switch__ripple::after{display:none}.mat-mdc-slide-toggle-disabled-interactive .mdc-switch__ripple::after{display:block}.mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:75ms opacity cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:focus .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:active .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-pressed-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-selected-pressed-state-layer-color, var(--mat-sys-primary));opacity:var(--mdc-switch-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch__icons{position:relative;height:100%;width:100%;z-index:1}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity, 0.38)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity, 0.38)}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size, 16px);height:var(--mdc-switch-unselected-icon-size, 16px);fill:var(--mdc-switch-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size, 16px);height:var(--mdc-switch-selected-icon-size, 16px);fill:var(--mdc-switch-selected-icon-color, var(--mat-sys-on-primary-container))}.mdc-switch--selected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color, var(--mat-sys-on-surface))}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle{-webkit-user-select:none;user-select:none;display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-internal-form-field{color:var(--mat-switch-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-switch-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-switch-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-switch-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-switch-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-switch-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}'],encapsulation:2,changeDetection:0})}return t})();function $be(t,A){if(t&1){let e=Ue();m(0,"div",1)(1,"button",2),ee("click",function(){q(e);let n=M();return W(n.action())}),T(2),p()()}if(t&2){let e=M();y(2),FA(" ",e.data.action," ")}}var eMe=["label"];function AMe(t,A){}var tMe=Math.pow(2,31)-1,Km=class{_overlayRef;instance;containerInstance;_afterDismissed=new je;_afterOpened=new je;_onAction=new je;_durationTimeoutId;_dismissedByAction=!1;constructor(A,e){this._overlayRef=e,this.containerInstance=A,A._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(A){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(A,tMe))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}},FAe=new re("MatSnackBarData"),gE=class{politeness="assertive";announcementMessage="";viewContainerRef;duration=0;panelClass;direction;data=null;horizontalPosition="center";verticalPosition="bottom"},iMe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return t})(),nMe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return t})(),oMe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return t})(),rMe=(()=>{class t{snackBarRef=E(Km);data=E(FAe);constructor(){}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(i,n){i&1&&(m(0,"div",0),T(1),p(),ne(2,$be,3,1,"div",1)),i&2&&(y(),FA(" ",n.data.message,` +`),y(),$(n.hasAction?2:-1))},dependencies:[Un,iMe,nMe,oMe],styles:[".mat-mdc-simple-snack-bar{display:flex}"],encapsulation:2,changeDetection:0})}return t})(),sMe={snackBarState:ll("state",[tc("void, hidden",Vo({transform:"scale(0.8)",opacity:0})),tc("visible",Vo({transform:"scale(1)",opacity:1})),Fs("* => visible",ia("150ms cubic-bezier(0, 0, 0.2, 1)")),Fs("* => void, * => hidden",ia("75ms cubic-bezier(0.4, 0.0, 1, 1)",Vo({opacity:0})))])},aMe=(()=>{class t extends H1{_ngZone=E(yA);_elementRef=E(eA);_changeDetectorRef=E(ut);_platform=E(mi);snackBarConfig=E(gE);_document=E(ht);_trackedModals=new Set;_announceDelay=150;_announceTimeoutId;_destroyed=!1;_portalOutlet;_onAnnounce=new je;_onExit=new je;_onEnter=new je;_animationState="void";_live;_label;_role;_liveElementId=E(un).getId("mat-snack-bar-container-live-");constructor(){super();let e=this.snackBarConfig;e.politeness==="assertive"&&!e.announcementMessage?this._live="assertive":e.politeness==="off"?this._live="off":this._live="polite",this._platform.FIREFOX&&(this._live==="polite"&&(this._role="status"),this._live==="assertive"&&(this._role="alert"))}attachComponentPortal(e){this._assertNotAttached();let i=this._portalOutlet.attachComponentPortal(e);return this._afterPortalAttached(),i}attachTemplatePortal(e){this._assertNotAttached();let i=this._portalOutlet.attachTemplatePortal(e);return this._afterPortalAttached(),i}attachDomPortal=e=>{this._assertNotAttached();let i=this._portalOutlet.attachDomPortal(e);return this._afterPortalAttached(),i};onAnimationEnd(e){let{fromState:i,toState:n}=e;if((n==="void"&&i!=="void"||n==="hidden")&&this._completeExit(),n==="visible"){let o=this._onEnter;this._ngZone.run(()=>{o.next(),o.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.markForCheck(),this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._ngZone.run(()=>{this._animationState="hidden",this._changeDetectorRef.markForCheck(),this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId)}),this._onExit}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){queueMicrotask(()=>{this._onExit.next(),this._onExit.complete()})}_afterPortalAttached(){let e=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(r=>e.classList.add(r)):e.classList.add(i)),this._exposeToModals();let n=this._label.nativeElement,o="mdc-snackbar__label";n.classList.toggle(o,!n.querySelector(`.${o}`))}_exposeToModals(){let e=this._liveElementId,i=this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');for(let n=0;n{let i=e.getAttribute("aria-owns");if(i){let n=i.replace(this._liveElementId,"").trim();n.length>0?e.setAttribute("aria-owns",n):e.removeAttribute("aria-owns")}}),this._trackedModals.clear()}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{let e=this._elementRef.nativeElement.querySelector("[aria-hidden]"),i=this._elementRef.nativeElement.querySelector("[aria-live]");if(e&&i){let n=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&e.contains(document.activeElement)&&(n=document.activeElement),e.removeAttribute("aria-hidden"),i.appendChild(e),n?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-snack-bar-container"]],viewQuery:function(i,n){if(i&1&&(At(bc,7),At(eMe,7)),i&2){let o;oA(o=rA())&&(n._portalOutlet=o.first),oA(o=rA())&&(n._label=o.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container"],hostVars:1,hostBindings:function(i,n){i&1&&_R("@state.done",function(r){return n.onAnimationEnd(r)}),i&2&&xR("@state",n._animationState)},features:[Ct],decls:6,vars:3,consts:[["label",""],[1,"mdc-snackbar__surface","mat-mdc-snackbar-surface"],[1,"mat-mdc-snack-bar-label"],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(i,n){i&1&&(m(0,"div",1)(1,"div",2,0)(3,"div",3),ne(4,AMe,0,0,"ng-template",4),p(),ve(5,"div"),p()()),i&2&&(y(5),AA("aria-live",n._live)("role",n._role)("id",n._liveElementId))},dependencies:[bc],styles:[".mat-mdc-snack-bar-container{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);margin:8px}.mat-mdc-snack-bar-handset .mat-mdc-snack-bar-container{width:100vw}.mat-mdc-snackbar-surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;padding-left:0;padding-right:8px}[dir=rtl] .mat-mdc-snackbar-surface{padding-right:0;padding-left:8px}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{min-width:344px;max-width:672px}.mat-mdc-snack-bar-handset .mat-mdc-snackbar-surface{width:100%;min-width:0}@media(forced-colors: active){.mat-mdc-snackbar-surface{outline:solid 1px}}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{color:var(--mdc-snackbar-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-snackbar-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mdc-snackbar-container-color, var(--mat-sys-inverse-surface))}.mdc-snackbar__label{width:100%;flex-grow:1;box-sizing:border-box;margin:0;padding:14px 8px 14px 16px}[dir=rtl] .mdc-snackbar__label{padding-left:8px;padding-right:16px}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-family:var(--mdc-snackbar-supporting-text-font, var(--mat-sys-body-medium-font));font-size:var(--mdc-snackbar-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mdc-snackbar-supporting-text-weight, var(--mat-sys-body-medium-weight));line-height:var(--mdc-snackbar-supporting-text-line-height, var(--mat-sys-body-medium-line-height))}.mat-mdc-snack-bar-actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled).mat-unthemed{color:var(--mat-snack-bar-button-color, var(--mat-sys-inverse-primary))}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){--mat-text-button-state-layer-color:currentColor;--mat-text-button-ripple-color:currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{opacity:.1}"],encapsulation:2,data:{animation:[sMe.snackBarState]}})}return t})();function cMe(){return new gE}var lMe=new re("mat-snack-bar-default-options",{providedIn:"root",factory:cMe}),P1=(()=>{class t{_overlay=E(Or);_live=E(N5);_injector=E(Dt);_breakpointObserver=E(D5);_parentSnackBar=E(t,{optional:!0,skipSelf:!0});_defaultConfig=E(lMe);_snackBarRefAtThisLevel=null;simpleSnackBarComponent=rMe;snackBarContainerComponent=aMe;handsetCssClass="mat-mdc-snack-bar-handset";get _openedSnackBarRef(){let e=this._parentSnackBar;return e?e._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(e){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=e:this._snackBarRefAtThisLevel=e}constructor(){}openFromComponent(e,i){return this._attach(e,i)}openFromTemplate(e,i){return this._attach(e,i)}open(e,i="",n){let o=ae(ae({},this._defaultConfig),n);return o.data={message:e,action:i},o.announcementMessage===e&&(o.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,o)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(e,i){let n=i&&i.viewContainerRef&&i.viewContainerRef.injector,o=Dt.create({parent:n||this._injector,providers:[{provide:gE,useValue:i}]}),r=new Rg(this.snackBarContainerComponent,i.viewContainerRef,o),s=e.attach(r);return s.instance.snackBarConfig=i,s.instance}_attach(e,i){let n=ae(ae(ae({},new gE),this._defaultConfig),i),o=this._createOverlay(n),r=this._attachSnackBarContainer(o,n),s=new Km(r,o);if(e instanceof en){let a=new ba(e,null,{$implicit:n.data,snackBarRef:s});s.instance=r.attachTemplatePortal(a)}else{let a=this._createInjector(n,s),c=new Rg(e,void 0,a),l=r.attachComponentPortal(c);s.instance=l.instance}return this._breakpointObserver.observe(HZ.HandsetPortrait).pipe(mt(o.detachments())).subscribe(a=>{o.overlayElement.classList.toggle(this.handsetCssClass,a.matches)}),n.announcementMessage&&r._onAnnounce.subscribe(()=>{this._live.announce(n.announcementMessage,n.politeness)}),this._animateSnackBar(s,n),this._openedSnackBarRef=s,this._openedSnackBarRef}_animateSnackBar(e,i){e.afterDismissed().subscribe(()=>{this._openedSnackBarRef==e&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{e.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):e.containerInstance.enter(),i.duration&&i.duration>0&&e.afterOpened().subscribe(()=>e._dismissAfter(i.duration))}_createOverlay(e){let i=new id;i.direction=e.direction;let n=this._overlay.position().global(),o=e.direction==="rtl",r=e.horizontalPosition==="left"||e.horizontalPosition==="start"&&!o||e.horizontalPosition==="end"&&o,s=!r&&e.horizontalPosition!=="center";return r?n.left("0"):s?n.right("0"):n.centerHorizontally(),e.verticalPosition==="top"?n.top("0"):n.bottom("0"),i.positionStrategy=n,this._overlay.create(i)}_createInjector(e,i){let n=e&&e.viewContainerRef&&e.viewContainerRef.injector;return Dt.create({parent:n||this._injector,providers:[{provide:Km,useValue:i},{provide:FAe,useValue:e.data}]})}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var gMe=t=>["segment",t],dMe=(t,A)=>({"segment-main":!0,expandable:t,expanded:A});function CMe(t,A){t&1&&ve(0,"div",9)}function IMe(t,A){if(t&1&&(m(0,"span",10),T(1),p()),t&2){let e=M().$implicit;y(),Pe(e.description)}}function uMe(t,A){if(t&1&&(m(0,"section",11),ve(1,"ngx-json-viewer",12),p()),t&2){let e=M().$implicit,i=M();y(),te("json",e.value)("expanded",i.expanded)("depth",i.depth)("_currentDepth",i._currentDepth+1)}}function hMe(t,A){if(t&1){let e=Ue();m(0,"section",2)(1,"section",3),ee("click",function(){let n=q(e).$implicit,o=M();return W(o.toggle(n))}),ne(2,CMe,1,0,"div",4),m(3,"span",5),T(4),p(),m(5,"span",6),T(6,": "),p(),ne(7,IMe,2,1,"span",7),p(),ne(8,uMe,2,4,"section",8),p()}if(t&2){let e=A.$implicit,i=M();te("ngClass",Al(6,gMe,"segment-type-"+e.type)),y(),te("ngClass",tl(8,dMe,i.isExpandable(e),e.expanded)),y(),te("ngIf",i.isExpandable(e)),y(2),Pe(e.key),y(3),te("ngIf",!e.expanded||!i.isExpandable(e)),y(),te("ngIf",e.expanded&&i.isExpandable(e))}}var j1=(()=>{class t{constructor(){this.expanded=!0,this.depth=-1,this._currentDepth=0,this.segments=[]}ngOnChanges(){this.segments=[],this.json=this.decycle(this.json),typeof this.json=="object"?Object.keys(this.json).forEach(e=>{this.segments.push(this.parseKeyValue(e,this.json[e]))}):this.segments.push(this.parseKeyValue(`(${typeof this.json})`,this.json))}isExpandable(e){return e.type==="object"||e.type==="array"}toggle(e){this.isExpandable(e)&&(e.expanded=!e.expanded)}parseKeyValue(e,i){let n={key:e,value:i,type:void 0,description:""+i,expanded:this.isExpanded()};switch(typeof n.value){case"number":{n.type="number";break}case"boolean":{n.type="boolean";break}case"function":{n.type="function";break}case"string":{n.type="string",n.description='"'+n.value+'"';break}case"undefined":{n.type="undefined",n.description="undefined";break}case"object":{n.value===null?(n.type="null",n.description="null"):Array.isArray(n.value)?(n.type="array",n.description="Array["+n.value.length+"] "+JSON.stringify(n.value)):n.value instanceof Date?n.type="date":(n.type="object",n.description="Object "+JSON.stringify(n.value));break}}return n}isExpanded(){return this.expanded&&!(this.depth>-1&&this._currentDepth>=this.depth)}decycle(e){let i=new WeakMap;return function n(o,r){let s,a;return typeof o=="object"&&o!==null&&!(o instanceof Boolean)&&!(o instanceof Date)&&!(o instanceof Number)&&!(o instanceof RegExp)&&!(o instanceof String)?(s=i.get(o),s!==void 0?{$ref:s}:(i.set(o,r),Array.isArray(o)?(a=[],o.forEach(function(c,l){a[l]=n(c,r+"["+l+"]")})):(a={},Object.keys(o).forEach(function(c){a[c]=n(o[c],r+"["+JSON.stringify(c)+"]")})),a)):o}(e,"$")}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=xe({type:t,selectors:[["ngx-json-viewer"]],inputs:{json:"json",expanded:"expanded",depth:"depth",_currentDepth:"_currentDepth"},standalone:!1,features:[ti],decls:2,vars:1,consts:[[1,"ngx-json-viewer"],[3,"ngClass",4,"ngFor","ngForOf"],[3,"ngClass"],[3,"click","ngClass"],["class","toggler",4,"ngIf"],[1,"segment-key"],[1,"segment-separator"],["class","segment-value",4,"ngIf"],["class","children",4,"ngIf"],[1,"toggler"],[1,"segment-value"],[1,"children"],[3,"json","expanded","depth","_currentDepth"]],template:function(e,i){e&1&&(m(0,"section",0),ne(1,hMe,9,11,"section",1),p()),e&2&&(y(),te("ngForOf",i.segments))},dependencies:[ta,k1,bg,t],styles:['@charset "UTF-8";.ngx-json-viewer[_ngcontent-%COMP%]{font-family:var(--ngx-json-font-family, monospace);font-size:var(--ngx-json-font-size, 1em);width:100%;height:100%;overflow:hidden;position:relative}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%]{padding:2px;margin:1px 1px 1px 12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%]{word-wrap:break-word}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]{position:absolute;margin-left:-14px;margin-top:3px;font-size:.8em;line-height:1.2em;vertical-align:middle;color:var(--ngx-json-toggler, #787878)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]:after{display:inline-block;content:"\\25ba";transition:transform .1s ease-in}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-key, #4E187C)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-separator[_ngcontent-%COMP%]{color:var(--ngx-json-separator, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-value, #000)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .children[_ngcontent-%COMP%]{margin-left:12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-string[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-string, #FF6B6B)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-number[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-number, #009688)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-boolean[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-boolean, #B938A4)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-date[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-date, #05668D)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-array, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-object, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-function[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-function, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-null, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-undefined, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-null-bg, red)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%]{white-space:nowrap}.ngx-json-viewer[_ngcontent-%COMP%] .expanded[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]:after{transform:rotate(90deg)}.ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]{cursor:pointer}']}),t})(),nd=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=OA({type:t}),t.\u0275inj=TA({imports:[Ur]}),t})();var oa=class t{static getBaseUrlWithoutPath(){let A=window.location.href;return new URL(A).origin+"/dev-ui/"}static getApiServerBaseUrl(){return window.runtimeConfig?.backendUrl||""}static getWSServerUrl(){let A=t.getApiServerBaseUrl();return!A||A==""?window.location.host:A.startsWith("http://")?A.slice(7):A.startsWith("https://")?A.slice(8):A}};var Hl=new re("AgentService");var uD=new re("ArtifactService");var dE=new re("DownloadService");var od=new re("EvalService");var CE=new re("EventService");var GAe="import_session",KAe="edit_function_args";var UAe="a2a_card",Ks=new re("FeatureFlagService");var IE=new re("GraphService");var hD=new re("LocalFileService");var V1=new re("SafeValuesService"),BD=class{openBase64InNewTab(A,e){try{if(!A)return;let i=A;if(A.startsWith("data:")&&A.includes(";base64,")&&(i=i.substring(i.indexOf(";base64,")+8)),!e||!i)return;let n=atob(i),o=new Array(n.length);for(let c=0;cthis.onResizeHandleMouseDown(A)),document.documentElement.style.setProperty("--bottom-panel-height","310px"),this.renderer.setStyle(this.el.nativeElement,"height","var(--bottom-panel-height)")}onResizeHandleMouseDown(A){this.resizingEvent={isResizing:!0,startingCursorY:A.clientY,startingHeight:this.bottomPanelHeight},A.preventDefault()}onMouseMove(A){if(!this.resizingEvent.isResizing)return;let e=this.resizingEvent.startingCursorY-A.clientY,i=this.resizingEvent.startingHeight+e;this.bottomPanelHeight=i,this.renderer.addClass(document.body,"resizing")}onMouseUp(){this.resizingEvent.isResizing=!1,this.renderer.removeClass(document.body,"resizing")}onResize(){this.bottomMaxHeight=window.innerHeight/2,this.bottomPanelHeight=this.bottomPanelHeight}set bottomPanelHeight(A){let e=Math.min(Math.max(A,this.bottomMinHeight),this.bottomMaxHeight);document.body.style.setProperty("--bottom-panel-height",`${e}px`)}get bottomPanelHeight(){let A=getComputedStyle(document.body).getPropertyValue("--bottom-panel-height"),e=parseInt(A,10);return isNaN(e)?500:e}static \u0275fac=function(e){return new(e||t)(DA(eA),DA(an))};static \u0275dir=Oe({type:t,selectors:[["","appResizableBottomPanel",""]],hostBindings:function(e,i){e&1&&ee("mousemove",function(o){return i.onMouseMove(o)},!1,n2)("mouseup",function(){return i.onMouseUp()},!1,n2)("resize",function(){return i.onResize()},!1,Fw)}})};var mD=class t{constructor(A,e){this.el=A;this.renderer=e}sideDrawerMinWidth=310;sideDrawerMaxWidth=window.innerWidth/2;resizeHandle=null;resizingEvent={isResizing:!1,startingCursorX:0,startingWidth:0};ngAfterViewInit(){this.sideDrawerMaxWidth=window.innerWidth/2,this.resizeHandle=document.getElementsByClassName("resize-handler")[0],this.resizeHandle&&this.renderer.listen(this.resizeHandle,"mousedown",A=>this.onResizeHandleMouseDown(A)),document.documentElement.style.setProperty("--side-drawer-width","570px"),this.renderer.setStyle(this.el.nativeElement,"width","var(--side-drawer-width)")}onResizeHandleMouseDown(A){this.resizingEvent={isResizing:!0,startingCursorX:A.clientX,startingWidth:this.sideDrawerWidth},A.preventDefault()}onMouseMove(A){if(!this.resizingEvent.isResizing)return;let e=A.clientX-this.resizingEvent.startingCursorX,i=this.resizingEvent.startingWidth+e;this.sideDrawerWidth=i,this.renderer.addClass(document.body,"resizing")}onMouseUp(){this.resizingEvent.isResizing=!1,this.renderer.removeClass(document.body,"resizing")}onResize(){this.sideDrawerMaxWidth=window.innerWidth/2,this.sideDrawerWidth=this.sideDrawerWidth}set sideDrawerWidth(A){let e=Math.min(Math.max(A,this.sideDrawerMinWidth),this.sideDrawerMaxWidth);document.documentElement.style.setProperty("--side-drawer-width",`${e}px`)}get sideDrawerWidth(){let A=getComputedStyle(document.documentElement).getPropertyValue("--side-drawer-width"),e=parseFloat(A);return isNaN(e)?500:e}static \u0275fac=function(e){return new(e||t)(DA(eA),DA(an))};static \u0275dir=Oe({type:t,selectors:[["","appResizableDrawer",""]],hostBindings:function(e,i){e&1&&ee("mousemove",function(o){return i.onMouseMove(o)},!1,n2)("mouseup",function(){return i.onMouseUp()},!1,n2)("resize",function(){return i.onResize()},!1,Fw)}})};var BMe=["audioPlayer"],hE=class t{base64data=lt("");audioPlayerRef=es("audioPlayer");audioSrc="";constructor(){}ngOnChanges(A){A.base64data&&this.base64data()&&this.setAudioSource(this.base64data())}setAudioSource(A){A.startsWith("data:")?this.audioSrc=A:this.audioSrc=`data:audio/mpeg;base64,${A}`,this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&this.audioPlayerRef().nativeElement.load()}play(){this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&this.audioPlayerRef().nativeElement.play()}pause(){this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&this.audioPlayerRef().nativeElement.pause()}stop(){this.audioPlayerRef()&&this.audioPlayerRef().nativeElement&&(this.audioPlayerRef().nativeElement.pause(),this.audioPlayerRef().nativeElement.currentTime=0)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-audio-player"]],viewQuery:function(e,i){e&1&&Kr(i.audioPlayerRef,BMe,5),e&2&&Aa()},inputs:{base64data:[1,"base64data"]},features:[ti],decls:3,vars:1,consts:[["audioPlayer",""],["controls","",3,"src"]],template:function(e,i){e&1&&(m(0,"div"),ve(1,"audio",1,0),p()),e&2&&(y(),te("src",i.audioSrc,$r))},styles:[".audio-player-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;padding:15px;background-color:var(--audio-player-container-background-color);border-radius:8px;box-shadow:0 2px 5px var(--audio-player-container-box-shadow-color);margin:20px auto;max-width:350px}audio[_ngcontent-%COMP%]{outline:none;border-radius:5px;width:350px}.custom-controls[_ngcontent-%COMP%]{margin-top:10px;display:flex;gap:10px}.custom-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:8px 15px;border:none;border-radius:5px;background-color:var(--audio-player-custom-controls-button-background-color);color:var(--audio-player-custom-controls-button-color);cursor:pointer;font-size:14px;transition:background-color .2s ease}.custom-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background-color:var(--audio-player-custom-controls-button-hover-background-color)}"]})};function EMe(t,A){if(t&1&&ve(0,"img",5),t&2){let e=M(2);te("src",e.displayContent,$r)}}function fMe(t,A){t&1&&(m(0,"div",6),T(1," No image data provided. "),p())}function QMe(t,A){if(t&1&&(m(0,"div",3),ne(1,EMe,1,1,"img",5)(2,fMe,2,0,"div",6),p()),t&2){let e=M();y(),$(e.displayContent?1:-1),y(),$(e.displayContent?-1:2)}}function mMe(t,A){if(t&1&&ve(0,"div",4),t&2){let e=M();te("innerHTML",e.displayContent,J0)}}var W1=class t{constructor(A,e,i){this.dialogRef=A;this.data=e;this.sanitizer=i}displayContent=null;isSvgContent=!1;ngOnInit(){this.processImageData()}processImageData(){let A=this.data.imageData;if(!A){this.displayContent=null,this.isSvgContent=!1;return}if(A.trim().includes("0?1:-1),y(3),FA(" ",o.getArtifactName(i)," "),y(5),jn("ngModel",o.selectedArtifacts[n]),y(),Nt(o.getSortedArtifactsFromId(i)),y(7),$((e=o.selectedArtifacts[n].mediaType)===o.MediaType.IMAGE?17:e===o.MediaType.AUDIO?18:-1)}}var bMe="default_artifact_name",Bu=(n=>(n.IMAGE="image",n.AUDIO="audio",n.TEXT="text",n.UNSPECIFIED="unspecified",n))(Bu||{});function wD(t){let A=t.toLowerCase();for(let e of Object.values(Bu))if(e!=="unspecified"&&A.startsWith(e+"/"))return e;return"unspecified"}function MMe(t){return t?t.startsWith("image/"):!1}function SMe(t){return t?t.startsWith("audio/"):!1}var pD=class t{artifacts=lt([]);selectedArtifacts=[];isArtifactAudio=SMe;isArtifactImage=MMe;MediaType=Bu;downloadService=E(dE);dialog=E(na);safeValuesService=E(V1);ngOnChanges(A){if(A.artifacts){this.selectedArtifacts=[];for(let e of this.getDistinctArtifactIds())this.selectedArtifacts.push(this.getSortedArtifactsFromId(e)[0])}}downloadArtifact(A){this.downloadService.downloadBase64Data(A.data,A.mimeType,A.id)}getArtifactName(A){return A??bMe}getDistinctArtifactIds(){return[...new Set(this.artifacts().map(A=>A.id))]}getSortedArtifactsFromId(A){return this.artifacts().filter(e=>e.id===A).sort((e,i)=>i.versionId-e.versionId)}onArtifactVersionChange(A,e){this.selectedArtifacts[e]=A.value}openViewImageDialog(A){if(!A||!A.startsWith("data:")||A.indexOf(";base64,")===-1)return;let e=this.dialog.open(W1,{maxWidth:"90vw",maxHeight:"90vh",data:{imageData:A}})}openArtifact(A,e){if(this.isArtifactImage(e)){this.openViewImageDialog(A);return}this.openBase64InNewTab(A,e)}openBase64InNewTab(A,e){}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-artifact-tab"]],inputs:{artifacts:[1,"artifacts"]},features:[ti],decls:3,vars:0,consts:[[1,"artifact-container"],[1,"artifact-box"],[1,"white-separator"],[1,"artifact-metadata"],[1,"link-style-button",3,"click"],[1,"version-select-container"],[3,"ngModelChange","selectionChange","ngModel"],[3,"value"],["mat-flat-button","",1,"download-button",3,"click"],["alt","artifact.id",1,"generated-image",3,"click","src"],[3,"base64data"]],template:function(e,i){e&1&&(m(0,"div",0),Rt(1,vMe,19,4,"div",1,Fi),p()),e&2&&(y(),Nt(i.getDistinctArtifactIds()))},dependencies:[Yl,Kn,Fo,Cr,Ac,Un,ir,hE],styles:[".artifact-container[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.artifact-box[_ngcontent-%COMP%]{padding:10px;max-width:100%;margin-left:26px;display:flex;flex-direction:column}.artifact-metadata[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:15px;flex-wrap:wrap;gap:5px}.download-button[_ngcontent-%COMP%]{background-color:var(--artifact-tab-download-button-background-color)!important;margin-left:35px;width:130px;height:28px;font-size:14px}.generated-image[_ngcontent-%COMP%]{max-width:60%;border-radius:8px;cursor:pointer}hr.white-separator[_ngcontent-%COMP%]{border:none;border-top:1px solid var(--artifact-tab-white-separator-border-top-color);margin-bottom:1.2em;margin-right:15px}.version-select-container[_ngcontent-%COMP%]{background-color:var(--artifact-tab-version-select-container-background-color);width:80px;margin-left:15px}.link-style-button[_ngcontent-%COMP%]{background:none;border:none;padding:0;font:inherit;color:var(--artifact-tab-link-style-button-color)!important;text-decoration:underline;cursor:pointer;outline:none}.link-style-button[_ngcontent-%COMP%]:hover{color:var(--artifact-tab-link-style-button-hover-color);text-decoration:underline}.link-style-button[_ngcontent-%COMP%]:focus{outline:1px dotted var(--artifact-tab-link-style-button-focus-outline-color)}.link-style-button[_ngcontent-%COMP%]:active{color:var(--artifact-tab-link-style-button-active-color)}.link-style-button[_ngcontent-%COMP%]:disabled{color:var(--artifact-tab-link-style-button-disabled-color);text-decoration:none;cursor:not-allowed}"]})};var kMe=["mat-menu-item",""],xMe=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],_Me=["mat-icon, [matMenuItemIcon]","*"];function RMe(t,A){t&1&&(ft(),m(0,"svg",2),ve(1,"polygon",3),p())}var NMe=["*"];function LMe(t,A){if(t&1){let e=Ue();m(0,"div",0),ee("click",function(){q(e);let n=M();return W(n.closed.emit("click"))})("animationstart",function(n){q(e);let o=M();return W(o._onAnimationStart(n.animationName))})("animationend",function(n){q(e);let o=M();return W(o._onAnimationDone(n.animationName))})("animationcancel",function(n){q(e);let o=M();return W(o._onAnimationDone(n.animationName))}),m(1,"div",1),NA(2),p()()}if(t&2){let e=M();Lo(e._classList),iA("mat-menu-panel-animations-disabled",e._animationsDisabled)("mat-menu-panel-exit-animation",e._panelAnimationState==="void")("mat-menu-panel-animating",e._isAnimating),te("id",e.panelId),AA("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}var KF=new re("MAT_MENU_PANEL"),m2=(()=>{class t{_elementRef=E(eA);_document=E(ht);_focusMonitor=E(ns);_parentMenu=E(KF,{optional:!0});_changeDetectorRef=E(ut);role="menuitem";disabled=!1;disableRipple=!1;_hovered=new je;_focused=new je;_highlighted=!1;_triggersSubmenu=!1;constructor(){E(Wn).load(Pr),this._parentMenu?.addItem?.(this)}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){let e=this._elementRef.nativeElement.cloneNode(!0),i=e.querySelectorAll("mat-icon, .material-icons");for(let n=0;n{class t{_elementRef=E(eA);_changeDetectorRef=E(ut);_injector=E(Dt);_keyManager;_xPosition;_yPosition;_firstItemFocusRef;_exitFallbackTimeout;_animationsDisabled;_allItems;_directDescendantItems=new qa;_classList={};_panelAnimationState="void";_animationDone=new je;_isAnimating=!1;parentMenu;direction;overlayPanelClass;backdropClass;ariaLabel;ariaLabelledby;ariaDescribedby;get xPosition(){return this._xPosition}set xPosition(e){this._xPosition=e,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(e){this._yPosition=e,this.setPositionClasses()}templateRef;items;lazyContent;overlapTrigger;hasBackdrop;set panelClass(e){let i=this._previousPanelClass,n=ae({},this._classList);i&&i.length&&i.split(" ").forEach(o=>{n[o]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(o=>{n[o]=!0}),this._elementRef.nativeElement.className=""),this._classList=n}_previousPanelClass;get classList(){return this.panelClass}set classList(e){this.panelClass=e}closed=new Ve;close=this.closed;panelId=E(un).getId("mat-menu-panel-");constructor(){let e=E(GMe);this.overlayPanelClass=e.overlayPanelClass||"",this._xPosition=e.xPosition,this._yPosition=e.yPosition,this.backdropClass=e.backdropClass,this.overlapTrigger=e.overlapTrigger,this.hasBackdrop=e.hasBackdrop,this._animationsDisabled=E(Oi,{optional:!0})==="NoopAnimations"}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new C2(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(In(this._directDescendantItems),Si(e=>Bi(...e.map(i=>i._focused)))).subscribe(e=>this._keyManager.updateActiveItem(e)),this._directDescendantItems.changes.subscribe(e=>{let i=this._keyManager;if(this._panelAnimationState==="enter"&&i.activeItem?._hasFocus()){let n=e.toArray(),o=Math.max(0,Math.min(n.length-1,i.activeItemIndex||0));n[o]&&!n[o].disabled?i.setActiveItem(o):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusRef?.destroy(),clearTimeout(this._exitFallbackTimeout)}_hovered(){return this._directDescendantItems.changes.pipe(In(this._directDescendantItems),Si(i=>Bi(...i.map(n=>n._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){let i=e.keyCode,n=this._keyManager;switch(i){case 27:Tr(e)||(e.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&this.direction==="ltr"&&this.closed.emit("keydown");break;case 39:this.parentMenu&&this.direction==="rtl"&&this.closed.emit("keydown");break;default:(i===38||i===40)&&n.setFocusOrigin("keyboard"),n.onKeydown(e);return}}focusFirstItem(e="program"){this._firstItemFocusRef?.destroy(),this._firstItemFocusRef=Gr(()=>{let i=this._resolvePanel();if(!i||!i.contains(document.activeElement)){let n=this._keyManager;n.setFocusOrigin(e).setFirstItemActive(),!n.activeItem&&i&&i.focus()}},{injector:this._injector})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){}setPositionClasses(e=this.xPosition,i=this.yPosition){this._classList=_A(ae({},this._classList),{"mat-menu-before":e==="before","mat-menu-after":e==="after","mat-menu-above":i==="above","mat-menu-below":i==="below"}),this._changeDetectorRef.markForCheck()}_onAnimationDone(e){let i=e===yD;(i||e===GF)&&(i&&(clearTimeout(this._exitFallbackTimeout),this._exitFallbackTimeout=void 0),this._animationDone.next(i?"void":"enter"),this._isAnimating=!1)}_onAnimationStart(e){(e===GF||e===yD)&&(this._isAnimating=!0)}_setIsOpen(e){if(this._panelAnimationState=e?"enter":"void",e){if(this._keyManager.activeItemIndex===0){let i=this._resolvePanel();i&&(i.scrollTop=0)}}else this._animationsDisabled||(this._exitFallbackTimeout=setTimeout(()=>this._onAnimationDone(yD),200));this._animationsDisabled&&setTimeout(()=>{this._onAnimationDone(e?GF:yD)}),this._changeDetectorRef.markForCheck()}_updateDirectDescendants(){this._allItems.changes.pipe(In(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}_resolvePanel(){let e=null;return this._directDescendantItems.length&&(e=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),e}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-menu"]],contentQueries:function(i,n,o){if(i&1&&(ni(o,FMe,5),ni(o,m2,5),ni(o,m2,4)),i&2){let r;oA(r=rA())&&(n.lazyContent=r.first),oA(r=rA())&&(n._allItems=r),oA(r=rA())&&(n.items=r)}},viewQuery:function(i,n){if(i&1&&At(en,5),i&2){let o;oA(o=rA())&&(n.templateRef=o.first)}},hostVars:3,hostBindings:function(i,n){i&2&&AA("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[2,"overlapTrigger","overlapTrigger",IA],hasBackdrop:[2,"hasBackdrop","hasBackdrop",e=>e==null?null:IA(e)],panelClass:[0,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],features:[gt([{provide:KF,useExisting:t}])],ngContentSelectors:NMe,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel",3,"click","animationstart","animationend","animationcancel","id"],[1,"mat-mdc-menu-content"]],template:function(i,n){i&1&&(Kt(),ne(0,LMe,3,12,"ng-template"))},styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;outline:0}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-menu-item-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-menu-item-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-menu-item-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-menu-item-label-text-weight, var(--mat-sys-label-large-weight))}@keyframes _mat-menu-enter{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:none}}@keyframes _mat-menu-exit{from{opacity:1}to{opacity:0}}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;box-sizing:border-box;outline:0;animation:_mat-menu-enter 120ms cubic-bezier(0, 0, 0.2, 1);border-radius:var(--mat-menu-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-menu-container-color, var(--mat-sys-surface-container));box-shadow:var(--mat-menu-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));will-change:transform,opacity}.mat-mdc-menu-panel.mat-menu-panel-exit-animation{animation:_mat-menu-exit 100ms 25ms linear forwards}.mat-mdc-menu-panel.mat-menu-panel-animations-disabled{animation:none}.mat-mdc-menu-panel.mat-menu-panel-animating{pointer-events:none}.mat-mdc-menu-panel.mat-menu-panel-animating:has(.mat-mdc-menu-content:empty){display:none}@media(forced-colors: active){.mat-mdc-menu-panel{outline:solid 1px}}.mat-mdc-menu-panel .mat-divider{color:var(--mat-menu-divider-color, var(--mat-sys-surface-variant));margin-bottom:var(--mat-menu-divider-bottom-spacing, 8px);margin-top:var(--mat-menu-divider-top-spacing, 8px)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px;padding-left:var(--mat-menu-item-leading-spacing, 12px);padding-right:var(--mat-menu-item-trailing-spacing, 12px);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-menu-item::-moz-focus-inner{border:0}[dir=rtl] .mat-mdc-menu-item{padding-left:var(--mat-menu-item-trailing-spacing, 12px);padding-right:var(--mat-menu-item-leading-spacing, 12px)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-trailing-spacing, 12px)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-trailing-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-leading-spacing, 12px)}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item:focus{outline:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing, 12px);height:var(--mat-menu-item-icon-size, 24px);width:var(--mat-menu-item-icon-size, 24px)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing, 12px)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}@media(forced-colors: active){.mat-mdc-menu-item{margin-top:1px}}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size, 24px);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing, 12px)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing, 12px);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1);transform-origin:center}@media(forced-colors: active){.mat-mdc-menu-submenu-icon{fill:CanvasText}}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,changeDetection:0})}return t})(),OAe=new re("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{let t=E(Or);return()=>t.scrollStrategies.reposition()}});function UMe(t){return()=>t.scrollStrategies.reposition()}var TMe={provide:OAe,deps:[Or],useFactory:UMe},TAe=Gl({passive:!0});var Um=new WeakMap,BE=(()=>{class t{_overlay=E(Or);_element=E(eA);_viewContainerRef=E(xn);_menuItemInstance=E(m2,{optional:!0,self:!0});_dir=E(Do,{optional:!0});_focusMonitor=E(ns);_ngZone=E(yA);_scrollStrategy=E(OAe);_changeDetectorRef=E(ut);_portal;_overlayRef=null;_menuOpen=!1;_closingActionsSubscription=Ot.EMPTY;_hoverSubscription=Ot.EMPTY;_menuCloseSubscription=Ot.EMPTY;_pendingRemoval;_parentMaterialMenu;_parentInnerPadding;_handleTouchStart=e=>{j4(e)||(this._openedBy="touch")};_openedBy=void 0;get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){e!==this._menu&&(this._menu=e,this._menuCloseSubscription.unsubscribe(),e&&(this._parentMaterialMenu,this._menuCloseSubscription=e.close.subscribe(i=>{this._destroyMenu(i),(i==="click"||i==="tab")&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}_menu;menuData;restoreFocus=!0;menuOpened=new Ve;onMenuOpen=this.menuOpened;menuClosed=new Ve;onMenuClose=this.menuClosed;constructor(){let e=E(KF,{optional:!0});this._parentMaterialMenu=e instanceof sd?e:void 0,this._element.nativeElement.addEventListener("touchstart",this._handleTouchStart,TAe)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this.menu&&this._ownsMenu(this.menu)&&Um.delete(this.menu),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,TAe),this._pendingRemoval?.unsubscribe(),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe(),this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null)}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){let e=this.menu;if(this._menuOpen||!e)return;this._pendingRemoval?.unsubscribe();let i=Um.get(e);Um.set(e,this),i&&i!==this&&i.closeMenu();let n=this._createOverlay(e),o=n.getConfig(),r=o.positionStrategy;this._setPosition(e,r),o.hasBackdrop=e.hasBackdrop==null?!this.triggersSubmenu():e.hasBackdrop,n.hasAttached()||(n.attach(this._getPortal(e)),e.lazyContent?.attach(this.menuData)),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),e.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,e.direction=this.dir,e.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0),e instanceof sd&&(e._setIsOpen(!0),e._directDescendantItems.changes.pipe(mt(e.close)).subscribe(()=>{r.withLockedPosition(!1).reapplyLastPosition(),r.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(e){let i=this._overlayRef,n=this._menu;!i||!this.menuOpen||(this._closingActionsSubscription.unsubscribe(),this._pendingRemoval?.unsubscribe(),n instanceof sd&&this._ownsMenu(n)?(this._pendingRemoval=n._animationDone.pipe(Pn(1)).subscribe(()=>{i.detach(),n.lazyContent?.detach()}),n._setIsOpen(!1)):(i.detach(),n?.lazyContent?.detach()),n&&this._ownsMenu(n)&&Um.delete(n),this.restoreFocus&&(e==="keydown"||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,this._setIsMenuOpen(!1))}_setIsMenuOpen(e){e!==this._menuOpen&&(this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(e),this._changeDetectorRef.markForCheck())}_createOverlay(e){if(!this._overlayRef){let i=this._getOverlayConfig(e);this._subscribeToPositions(e,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe(n=>{this.menu instanceof sd&&this.menu._handleKeydown(n)})}return this._overlayRef}_getOverlayConfig(e){return new id({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:e.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:e.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir||"ltr"})}_subscribeToPositions(e,i){e.setPositionClasses&&i.positionChanges.subscribe(n=>{this._ngZone.run(()=>{let o=n.connectionPair.overlayX==="start"?"after":"before",r=n.connectionPair.overlayY==="top"?"below":"above";e.setPositionClasses(o,r)})})}_setPosition(e,i){let[n,o]=e.xPosition==="before"?["end","start"]:["start","end"],[r,s]=e.yPosition==="above"?["bottom","top"]:["top","bottom"],[a,c]=[r,s],[l,d]=[n,o],C=0;if(this.triggersSubmenu()){if(d=n=e.xPosition==="before"?"start":"end",o=l=n==="end"?"start":"end",this._parentMaterialMenu){if(this._parentInnerPadding==null){let I=this._parentMaterialMenu.items.first;this._parentInnerPadding=I?I._getHostElement().offsetTop:0}C=r==="bottom"?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(a=r==="top"?"bottom":"top",c=s==="top"?"bottom":"top");i.withPositions([{originX:n,originY:a,overlayX:l,overlayY:r,offsetY:C},{originX:o,originY:a,overlayX:d,overlayY:r,offsetY:C},{originX:n,originY:c,overlayX:l,overlayY:s,offsetY:-C},{originX:o,originY:c,overlayX:d,overlayY:s,offsetY:-C}])}_menuClosingActions(){let e=this._overlayRef.backdropClick(),i=this._overlayRef.detachments(),n=this._parentMaterialMenu?this._parentMaterialMenu.closed:dA(),o=this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe($A(r=>this._menuOpen&&r!==this._menuItemInstance)):dA();return Bi(e,n,o,i)}_handleMousedown(e){P4(e)||(this._openedBy=e.button===0?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault())}_handleKeydown(e){let i=e.keyCode;(i===13||i===32)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(i===39&&this.dir==="ltr"||i===37&&this.dir==="rtl")&&(this._openedBy="keyboard",this.openMenu())}_handleClick(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){this.triggersSubmenu()&&this._parentMaterialMenu&&(this._hoverSubscription=this._parentMaterialMenu._hovered().subscribe(e=>{e===this._menuItemInstance&&!e.disabled&&(this._openedBy="mouse",this.openMenu())}))}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new ba(e.templateRef,this._viewContainerRef)),this._portal}_ownsMenu(e){return Um.get(e)===this}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(i,n){i&1&&ee("click",function(r){return n._handleClick(r)})("mousedown",function(r){return n._handleMousedown(r)})("keydown",function(r){return n._handleKeydown(r)}),i&2&&AA("aria-haspopup",n.menu?"menu":null)("aria-expanded",n.menuOpen)("aria-controls",n.menuOpen?n.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[0,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[0,"matMenuTriggerFor","menu"],menuData:[0,"matMenuTriggerData","menuData"],restoreFocus:[0,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"]})}return t})(),JAe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({providers:[TMe],imports:[P0,ui,Lg,E2,ui]})}return t})(),YAe={transformMenu:ll("transformMenu",[tc("void",Vo({opacity:0,transform:"scale(0.8)"})),Fs("void => enter",ia("120ms cubic-bezier(0, 0, 0.2, 1)",Vo({opacity:1,transform:"scale(1)"}))),Fs("* => void",ia("100ms 25ms linear",Vo({opacity:0})))]),fadeInItems:ll("fadeInItems",[tc("showing",Vo({opacity:1})),Fs("void => *",[Vo({opacity:0}),ia("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},sbA=YAe.fadeInItems,abA=YAe.transformMenu;function JMe(t,A){t&1&&ve(0,"div",2)}var YMe=new re("MAT_PROGRESS_BAR_DEFAULT_OPTIONS");var DD=(()=>{class t{_elementRef=E(eA);_ngZone=E(yA);_changeDetectorRef=E(ut);_renderer=E(an);_cleanupTransitionEnd;_animationMode=E(Oi,{optional:!0});constructor(){let e=E(YMe,{optional:!0});this._isNoopAnimation=this._animationMode==="NoopAnimations",e&&(e.color&&(this.color=this._defaultColor=e.color),this.mode=e.mode||this.mode)}_isNoopAnimation=!1;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;_defaultColor="primary";get value(){return this._value}set value(e){this._value=HAe(e||0),this._changeDetectorRef.markForCheck()}_value=0;get bufferValue(){return this._bufferValue||0}set bufferValue(e){this._bufferValue=HAe(e||0),this._changeDetectorRef.markForCheck()}_bufferValue=0;animationEnd=new Ve;get mode(){return this._mode}set mode(e){this._mode=e,this._changeDetectorRef.markForCheck()}_mode="determinate";ngAfterViewInit(){this._ngZone.runOutsideAngular(()=>{this._cleanupTransitionEnd=this._renderer.listen(this._elementRef.nativeElement,"transitionend",this._transitionendHandler)})}ngOnDestroy(){this._cleanupTransitionEnd?.()}_getPrimaryBarTransform(){return`scaleX(${this._isIndeterminate()?1:this.value/100})`}_getBufferBarFlexBasis(){return`${this.mode==="buffer"?this.bufferValue:100}%`}_isIndeterminate(){return this.mode==="indeterminate"||this.mode==="query"}_transitionendHandler=e=>{this.animationEnd.observers.length===0||!e.target||!e.target.classList.contains("mdc-linear-progress__primary-bar")||(this.mode==="determinate"||this.mode==="buffer")&&this._ngZone.run(()=>this.animationEnd.next({value:this.value}))};static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-progress-bar"]],hostAttrs:["role","progressbar","aria-valuemin","0","aria-valuemax","100","tabindex","-1",1,"mat-mdc-progress-bar","mdc-linear-progress"],hostVars:10,hostBindings:function(i,n){i&2&&(AA("aria-valuenow",n._isIndeterminate()?null:n.value)("mode",n.mode),Lo("mat-"+n.color),iA("_mat-animation-noopable",n._isNoopAnimation)("mdc-linear-progress--animation-ready",!n._isNoopAnimation)("mdc-linear-progress--indeterminate",n._isIndeterminate()))},inputs:{color:"color",value:[2,"value","value",ln],bufferValue:[2,"bufferValue","bufferValue",ln],mode:"mode"},outputs:{animationEnd:"animationEnd"},exportAs:["matProgressBar"],decls:7,vars:5,consts:[["aria-hidden","true",1,"mdc-linear-progress__buffer"],[1,"mdc-linear-progress__buffer-bar"],[1,"mdc-linear-progress__buffer-dots"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__primary-bar"],[1,"mdc-linear-progress__bar-inner"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__secondary-bar"]],template:function(i,n){i&1&&(m(0,"div",0),ve(1,"div",1),ne(2,JMe,1,0,"div",2),p(),m(3,"div",3),ve(4,"span",4),p(),m(5,"div",5),ve(6,"span",4),p()),i&2&&(y(),cn("flex-basis",n._getBufferBarFlexBasis()),y(),$(n.mode==="buffer"?2:-1),y(),cn("transform",n._getPrimaryBarTransform()))},styles:[`.mat-mdc-progress-bar{display:block;text-align:start}.mat-mdc-progress-bar[mode=query]{transform:scaleX(-1)}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-dots,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__secondary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__bar-inner.mdc-linear-progress__bar-inner{animation:none}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-bar{transition:transform 1ms}.mdc-linear-progress{position:relative;width:100%;transform:translateZ(0);outline:1px solid rgba(0,0,0,0);overflow-x:hidden;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);height:max(var(--mdc-linear-progress-track-height, 4px),var(--mdc-linear-progress-active-indicator-height, 4px))}@media(forced-colors: active){.mdc-linear-progress{outline-color:CanvasText}}.mdc-linear-progress__bar{position:absolute;top:0;bottom:0;margin:auto 0;width:100%;animation:none;transform-origin:top left;transition:transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);height:var(--mdc-linear-progress-active-indicator-height, 4px)}.mdc-linear-progress--indeterminate .mdc-linear-progress__bar{transition:none}[dir=rtl] .mdc-linear-progress__bar{right:0;transform-origin:center right}.mdc-linear-progress__bar-inner{display:inline-block;position:absolute;width:100%;animation:none;border-top-style:solid;border-color:var(--mdc-linear-progress-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-linear-progress-active-indicator-height, 4px)}.mdc-linear-progress__buffer{display:flex;position:absolute;top:0;bottom:0;margin:auto 0;width:100%;overflow:hidden;height:var(--mdc-linear-progress-track-height, 4px);border-radius:var(--mdc-linear-progress-track-shape, var(--mat-sys-corner-none))}.mdc-linear-progress__buffer-dots{-webkit-mask-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E");background-repeat:repeat-x;flex:auto;transform:rotate(180deg);animation:mdc-linear-progress-buffering 250ms infinite linear;background-color:var(--mdc-linear-progress-track-color, var(--mat-sys-surface-variant))}@media(forced-colors: active){.mdc-linear-progress__buffer-dots{background-color:ButtonBorder}}[dir=rtl] .mdc-linear-progress__buffer-dots{animation:mdc-linear-progress-buffering-reverse 250ms infinite linear;transform:rotate(0)}.mdc-linear-progress__buffer-bar{flex:0 1 100%;transition:flex-basis 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);background-color:var(--mdc-linear-progress-track-color, var(--mat-sys-surface-variant))}.mdc-linear-progress__primary-bar{transform:scaleX(0)}.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{left:-145.166611%}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation:mdc-linear-progress-primary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-primary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation-name:mdc-linear-progress-primary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{right:-145.166611%;left:auto}.mdc-linear-progress__secondary-bar{display:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{left:-54.888891%;display:block}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation:mdc-linear-progress-secondary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-secondary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation-name:mdc-linear-progress-secondary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{right:-54.888891%;left:auto}@keyframes mdc-linear-progress-buffering{from{transform:rotate(180deg) translateX(calc(var(--mdc-linear-progress-track-height, 4px) * -2.5))}}@keyframes mdc-linear-progress-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(83.67142%)}100%{transform:translateX(200.611057%)}}@keyframes mdc-linear-progress-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(84.386165%)}100%{transform:translateX(160.277782%)}}@keyframes mdc-linear-progress-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-primary-indeterminate-translate-reverse{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(-83.67142%)}100%{transform:translateX(-200.611057%)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate-reverse{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(-37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(-84.386165%)}100%{transform:translateX(-160.277782%)}}@keyframes mdc-linear-progress-buffering-reverse{from{transform:translateX(-10px)}}`],encapsulation:2,changeDetection:0})}return t})();function HAe(t,A=0,e=100){return Math.max(A,Math.min(e,t))}var zAe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({imports:[ui]})}return t})();var zMe=["determinateSpinner"];function PMe(t,A){if(t&1&&(ft(),m(0,"svg",11),ve(1,"circle",12),p()),t&2){let e=M();AA("viewBox",e._viewBox()),y(),cn("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),AA("r",e._circleRadius())}}var jMe=new re("mat-progress-spinner-default-options",{providedIn:"root",factory:VMe});function VMe(){return{diameter:PAe}}var PAe=100,qMe=10,Z1=(()=>{class t{_elementRef=E(eA);_noopAnimations;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;_defaultColor="primary";_determinateCircle;constructor(){let e=E(Oi,{optional:!0}),i=E(jMe);this._noopAnimations=e==="NoopAnimations"&&!!i&&!i._forceAnimations,this.mode=this._elementRef.nativeElement.nodeName.toLowerCase()==="mat-spinner"?"indeterminate":"determinate",i&&(i.color&&(this.color=this._defaultColor=i.color),i.diameter&&(this.diameter=i.diameter),i.strokeWidth&&(this.strokeWidth=i.strokeWidth))}mode;get value(){return this.mode==="determinate"?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,e||0))}_value=0;get diameter(){return this._diameter}set diameter(e){this._diameter=e||0}_diameter=PAe;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=e||0}_strokeWidth;_circleRadius(){return(this.diameter-qMe)/2}_viewBox(){let e=this._circleRadius()*2+this.strokeWidth;return`0 0 ${e} ${e}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return this.mode==="determinate"?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,n){if(i&1&&At(zMe,5),i&2){let o;oA(o=rA())&&(n._determinateCircle=o.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,n){i&2&&(AA("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow",n.mode==="determinate"?n.value:null)("mode",n.mode),Lo("mat-"+n.color),cn("width",n.diameter,"px")("height",n.diameter,"px")("--mdc-circular-progress-size",n.diameter+"px")("--mdc-circular-progress-active-indicator-width",n.diameter+"px"),iA("_mat-animation-noopable",n._noopAnimations)("mdc-circular-progress--indeterminate",n.mode==="indeterminate"))},inputs:{color:"color",mode:"mode",value:[2,"value","value",ln],diameter:[2,"diameter","diameter",ln],strokeWidth:[2,"strokeWidth","strokeWidth",ln]},exportAs:["matProgressSpinner"],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,n){if(i&1&&(ne(0,PMe,2,8,"ng-template",null,0,a2),m(2,"div",2,1),ft(),m(4,"svg",3),ve(5,"circle",4),p()(),$s(),m(6,"div",5)(7,"div",6)(8,"div",7),En(9,8),p(),m(10,"div",9),En(11,8),p(),m(12,"div",10),En(13,8),p()()()),i&2){let o=Ji(1);y(4),AA("viewBox",n._viewBox()),y(),cn("stroke-dasharray",n._strokeCircumference(),"px")("stroke-dashoffset",n._strokeDashOffset(),"px")("stroke-width",n._circleStrokeWidth(),"%"),AA("r",n._circleRadius()),y(4),te("ngTemplateOutlet",o),y(2),te("ngTemplateOutlet",o),y(2),te("ngTemplateOutlet",o)}},dependencies:[nl],styles:[".mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}"],encapsulation:2,changeDetection:0})}return t})();var jAe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({imports:[ui]})}return t})();var vD=new re("MARKDOWN_COMPONENT");var ZMe={cancelEditingTooltip:"Cancel editing",saveEvalMessageTooltip:"Save eval case message",thoughtChipLabel:"Thought",outcomeLabel:"Outcome",outputLabel:"Output",actualToolUsesLabel:"Actual tool uses:",expectedToolUsesLabel:"Expected tool uses:",actualResponseLabel:"Actual response:",expectedResponseLabel:"Expected response:",matchScoreLabel:"Match score",thresholdLabel:"Threshold",evalPassLabel:"Pass",evalFailLabel:"Fail",editEvalMessageTooltip:"Edit eval case message",deleteEvalMessageTooltip:"Delete eval case message",editFunctionArgsTooltip:"Edit function arguments",typeMessagePlaceholder:"Type a Message...",uploadFileTooltip:"Upload local file",moreOptionsTooltip:"More options",updateStateMenuLabel:"Update state",updateStateMenuTooltip:"Update the session state",turnOffMicTooltip:"Turn off microphone",useMicTooltip:"Use microphone",turnOffCamTooltip:"Turn off camera",useCamTooltip:"Use camera",updatedSessionStateChipLabel:"Updated session state",cannotEditSessionMessage:"This session is read-only. You cannot send messages or update the state."},VAe=new re("Chat Panel Messages",{factory:()=>ZMe});var XMe=["videoContainer"],$Me=["autoScroll"],e9e=["messageTextarea"],A9e=(t,A)=>({"user-message":t,"bot-message":A}),t9e=(t,A)=>({"eval-pass":t,"eval-fail":A}),i9e=t=>({hidden:t}),n9e=(t,A)=>({"eval-fail":t,"message-card--highlighted":A}),o9e=(t,A)=>({text:t,thought:A}),WAe=t=>({"function-event-button-highlight":t}),UF=t=>({hidden:t});function r9e(t,A){if(t&1){let e=Ue();m(0,"button",13),ee("click",function(){q(e);let n=M().$index,o=M(2);return W(o.clickEvent.emit(n))}),m(1,"mat-icon",14),T(2,"robot_2"),p()()}if(t&2){let e=M(),i=e.$implicit,n=e.$index,o=M(2);Lo(o.customIconColorClass(n)),te("disabled",!i.eventId)("matTooltip",o.getAgentNameFromEvent(n))("ngClass",Al(5,i9e,!o.getAgentNameFromEvent(n)))}}function s9e(t,A){t&1&&ve(0,"mat-progress-bar",15)}function a9e(t,A){if(t&1&&ve(0,"img",20),t&2){let e=M().$implicit;te("src",e.url,$r)}}function c9e(t,A){if(t&1&&(m(0,"a",21),T(1),p()),t&2){let e=M(2).$implicit;te("href",e.url,$r),y(),Pe(e.file.name)}}function l9e(t,A){if(t&1&&T(0),t&2){let e=M(2).$implicit;FA(" ",e.file.name," ")}}function g9e(t,A){if(t&1&&(m(0,"mat-icon"),T(1,"insert_drive_file"),p(),ne(2,c9e,2,2,"a",21)(3,l9e,1,1)),t&2){let e=M().$implicit;y(2),$(e.url?2:3)}}function d9e(t,A){if(t&1&&(m(0,"div",19),ne(1,a9e,1,1,"img",20)(2,g9e,4,1),p()),t&2){let e=A.$implicit;y(),$(e.file.type.startsWith("image/")?1:-1),y(),$(e.file.type.startsWith("image/")?-1:2)}}function C9e(t,A){if(t&1&&(m(0,"div",16),Rt(1,d9e,3,2,"div",19,Fi),p()),t&2){let e=M(2).$implicit;y(),Nt(e.attachments)}}function I9e(t,A){if(t&1&&(m(0,"div",17),T(1),p()),t&2){let e=M(4);y(),Pe(e.i18n.thoughtChipLabel)}}function u9e(t,A){if(t&1){let e=Ue();m(0,"div",22)(1,"textarea",24,2),ee("ngModelChange",function(n){q(e);let o=M(5);return W(o.userEditEvalCaseMessageChange.emit(n))})("keydown",function(n){q(e);let o=M(3).$implicit,r=M(2);return W(r.handleKeydown.emit({event:n,message:o}))}),p(),m(3,"div",25)(4,"span",26),ee("click",function(){q(e);let n=M(3).$implicit,o=M(2);return W(o.cancelEditMessage.emit(n))}),T(5," close "),p(),m(6,"span",27),ee("click",function(){q(e);let n=M(3).$implicit,o=M(2);return W(o.saveEditMessage.emit(n))}),T(7," check "),p()()()}if(t&2){let e=M(5);y(),te("ngModel",e.userEditEvalCaseMessage),y(3),te("matTooltip",e.i18n.cancelEditingTooltip),y(2),te("matTooltip",e.i18n.saveEvalMessageTooltip)}}function h9e(t,A){if(t&1&&En(0,23),t&2){let e=M(3).$implicit,i=M(2);te("ngComponentOutlet",i.markdownComponent)("ngComponentOutletInputs",tl(2,o9e,e.text,e.thought))}}function B9e(t,A){if(t&1&&ne(0,u9e,8,3,"div",22)(1,h9e,1,5,"ng-container",23),t&2){let e=M(2).$implicit;$(e.isEditing?0:1)}}function E9e(t,A){if(t&1&&(m(0,"div"),ve(1,"div",28),p()),t&2){let e=M(2).$implicit,i=M(2);y(),te("innerHTML",i.renderGooglerSearch(e.renderedContent),J0)}}function f9e(t,A){if(t&1&&(m(0,"code"),T(1),p()),t&2){let e=M(2).$implicit;y(),FA(" ",e.executableCode.code," ")}}function Q9e(t,A){if(t&1&&(m(0,"div")(1,"div"),T(2),p(),m(3,"div"),T(4),p()()),t&2){let e=M(2).$implicit,i=M(2);y(2),el("",i.i18n.outcomeLabel,": ",e.codeExecutionResult.outcome,""),y(2),el("",i.i18n.outputLabel,": ",e.codeExecutionResult.output,"")}}function m9e(t,A){if(t&1){let e=Ue();m(0,"div",29)(1,"img",30),ee("click",function(){q(e);let n=M(4).$implicit,o=M(2);return W(o.openViewImageDialog.emit(n.inlineData.data))}),p()()}if(t&2){let e=M(4).$implicit;y(),te("src",e.inlineData.data,$r)}}function p9e(t,A){if(t&1&&(m(0,"div"),ve(1,"app-audio-player",31),p()),t&2){let e=M(4).$implicit;y(),te("base64data",e.inlineData.data)}}function w9e(t,A){if(t&1){let e=Ue();m(0,"div")(1,"div",32)(2,"mat-icon"),T(3,"description"),p(),m(4,"button",33),ee("click",function(){q(e);let n=M(4).$implicit,o=M(2);return W(o.openBase64InNewTab.emit({data:n.inlineData.data,mimeType:n.inlineData.mimeType}))}),T(5),p()()()}if(t&2){let e=M(4).$implicit;y(5),FA(" ",e.inlineData.name," ")}}function y9e(t,A){if(t&1){let e=Ue();m(0,"div")(1,"button",33),ee("click",function(){q(e);let n=M(4).$implicit,o=M(2);return W(o.openBase64InNewTab.emit({data:n.inlineData.data,mimeType:n.inlineData.mimeType}))}),T(2),p()()}if(t&2){let e=M(4).$implicit;y(2),FA(" ",e.inlineData.name," ")}}function D9e(t,A){if(t&1&&(m(0,"div")(1,"div"),ne(2,m9e,2,1,"div",29)(3,p9e,2,1,"div")(4,w9e,6,1,"div")(5,y9e,3,1,"div"),p()()),t&2){let e,i=M(3).$implicit,n=M(2);y(2),$((e=i.inlineData.mediaType)===n.MediaType.IMAGE?2:e===n.MediaType.AUDIO?3:e===n.MediaType.TEXT?4:5)}}function v9e(t,A){if(t&1){let e=Ue();m(0,"div")(1,"img",34),ee("click",function(){q(e);let n=M(4).$implicit,o=M(2);return W(o.openViewImageDialog.emit(n.inlineData.data))}),p()()}if(t&2){let e=M(4).$implicit;y(),te("src",e.inlineData.data,$r)}}function b9e(t,A){if(t&1&&(m(0,"div",19)(1,"mat-icon"),T(2,"insert_drive_file"),p(),m(3,"a",21),T(4),p()()),t&2){let e=M(4).$implicit;y(3),te("href",e.inlineData.data,$r),y(),Pe(e.inlineData.displayName)}}function M9e(t,A){if(t&1&&(m(0,"div"),ne(1,v9e,2,1,"div")(2,b9e,5,2,"div",19),p()),t&2){let e=M(3).$implicit;y(),$(e.inlineData.mimeType.startsWith("image/")?1:2)}}function S9e(t,A){if(t&1&&ne(0,D9e,6,1,"div")(1,M9e,3,1,"div"),t&2){let e=M(2).$implicit;$(e.role==="bot"?0:1)}}function k9e(t,A){if(t&1&&(m(0,"div",37)(1,"div",38),T(2),p(),ve(3,"ngx-json-viewer",39),p(),m(4,"div",40)(5,"div",41),T(6),p(),ve(7,"ngx-json-viewer",39),p()),t&2){let e=M(3).$implicit,i=M(2);y(2),Pe(i.i18n.actualToolUsesLabel),y(),te("json",e.actualInvocationToolUses),y(3),Pe(i.i18n.expectedToolUsesLabel),y(),te("json",e.expectedInvocationToolUses)}}function x9e(t,A){if(t&1&&(m(0,"div",37)(1,"div",38),T(2),p(),m(3,"div"),T(4),p()(),m(5,"div",40)(6,"div",41),T(7),p(),m(8,"div"),T(9),p()()),t&2){let e=M(3).$implicit,i=M(2);y(2),Pe(i.i18n.actualResponseLabel),y(2),Pe(e.actualFinalResponse),y(3),Pe(i.i18n.expectedResponseLabel),y(2),Pe(e.expectedFinalResponse)}}function _9e(t,A){if(t&1&&(m(0,"div",36)(1,"span",42),T(2),p(),m(3,"span",43),T(4),p()()),t&2){let e=M(3).$implicit,i=M(2);y(2),el("",i.i18n.matchScoreLabel,": ",e.evalScore,""),y(2),el("",i.i18n.thresholdLabel,": ",e.evalThreshold,"")}}function R9e(t,A){if(t&1&&(m(0,"div",18)(1,"div",35),ne(2,k9e,8,4)(3,x9e,10,4),p(),ne(4,_9e,5,4,"div",36),p()),t&2){let e=M(2).$implicit;y(2),$(e.actualInvocationToolUses?2:e.actualFinalResponse?3:-1),y(2),$(e.evalScore!==void 0&&e.evalThreshold!==void 0?4:-1)}}function N9e(t,A){if(t&1&&(m(0,"mat-card",9),ne(1,s9e,1,0,"mat-progress-bar",15)(2,C9e,3,0,"div",16),m(3,"div"),ne(4,I9e,2,1,"div",17),m(5,"div"),ne(6,B9e,2,1),p(),ne(7,E9e,2,1,"div"),p(),ne(8,f9e,2,1,"code")(9,Q9e,5,4,"div")(10,S9e,2,1)(11,R9e,5,2,"div",18),p()),t&2){let e=M(),i=e.$implicit,n=e.$index,o=M(2);te("ngClass",tl(10,n9e,i.evalStatus===2,o.shouldMessageHighlighted(n))),y(),$(i.isLoading?1:-1),y(),$(i.attachments?2:-1),y(2),$(i.thought?4:-1),y(2),$(i.text?6:-1),y(),$(i.renderedContent?7:-1),y(),$(i.executableCode?8:-1),y(),$(i.codeExecutionResult?9:-1),y(),$(i.inlineData?10:-1),y(),$(i.failedMetric&&i.evalStatus===2?11:-1)}}function L9e(t,A){if(t&1){let e=Ue();m(0,"button",44),ee("click",function(){q(e);let n=M().$index,o=M(2);return W(o.clickEvent.emit(n))}),m(1,"mat-icon"),T(2,"bolt"),p(),T(3),p()}if(t&2){let e=M(),i=e.$implicit,n=e.$index,o=M(2);te("ngClass",Al(2,WAe,o.shouldMessageHighlighted(n))),y(3),FA(" ",i.functionCall.name," ")}}function F9e(t,A){if(t&1){let e=Ue();m(0,"button",44),ee("click",function(){q(e);let n=M().$index,o=M(2);return W(o.clickEvent.emit(n))}),m(1,"mat-icon"),T(2,"check"),p(),T(3),p()}if(t&2){let e=M(),i=e.$implicit,n=e.$index,o=M(2);te("ngClass",Al(2,WAe,o.shouldMessageHighlighted(n))),y(3),FA(" ",i.functionResponse.name," ")}}function G9e(t,A){if(t&1){let e=Ue();m(0,"div")(1,"span",45),ee("click",function(){q(e);let n=M(2).$implicit,o=M(2);return W(o.editEvalCaseMessage.emit(n))}),T(2," edit "),p(),m(3,"span",45),ee("click",function(){q(e);let n=M(2),o=n.$implicit,r=n.$index,s=M(2);return W(s.deleteEvalCaseMessage.emit({message:o,index:r}))}),T(4," delete "),p()()}if(t&2){let e=M(4);y(),te("ngClass",Al(4,UF,e.isEvalCaseEditing))("matTooltip",e.i18n.editEvalMessageTooltip),y(2),te("ngClass",Al(6,UF,e.isEvalCaseEditing))("matTooltip",e.i18n.deleteEvalMessageTooltip)}}function K9e(t,A){if(t&1){let e=Ue();m(0,"div")(1,"span",45),ee("click",function(){q(e);let n=M(2).$implicit,o=M(2);return W(o.editFunctionArgs.emit(n))}),T(2," edit "),p()()}if(t&2){let e=M(4);y(),te("ngClass",Al(2,UF,e.isEvalCaseEditing))("matTooltip",e.i18n.editFunctionArgsTooltip)}}function U9e(t,A){if(t&1&&ne(0,G9e,5,8,"div")(1,K9e,3,4,"div"),t&2){let e=M().$implicit,i=M(2);$(e.text?0:i.isEditFunctionArgsEnabled&&e.functionCall?1:-1)}}function T9e(t,A){t&1&&(m(0,"button",12)(1,"mat-icon"),T(2,"person"),p()())}function O9e(t,A){if(t&1&&(m(0,"div",7),ne(1,r9e,3,7,"button",8)(2,N9e,12,13,"mat-card",9)(3,L9e,4,4,"button",10)(4,F9e,4,4,"button",10),m(5,"div",7)(6,"span",11),T(7),p(),m(8,"span"),T(9),p()(),ne(10,U9e,2,1)(11,T9e,3,0,"button",12),p()),t&2){let e=A.$implicit,i=M(2);te("ngClass",tl(10,A9e,e.role==="user",e.role==="bot")),y(),$(e.role==="bot"?1:-1),y(),$(!e.functionCall&&!e.functionResponse?2:-1),y(),$(e.functionCall?3:-1),y(),$(e.functionResponse?4:-1),y(),te("ngClass",tl(13,t9e,e.evalStatus===1,e.evalStatus===2)),y(2),Pe(e.evalStatus===1?"check":e.evalStatus===2?"close":""),y(2),Pe(e.evalStatus===1?i.i18n.evalPassLabel:e.evalStatus===2?i.i18n.evalFailLabel:""),y(),$(i.evalCase&&e.role==="bot"&&i.isEvalEditMode?10:-1),y(),$(e.role==="user"?11:-1)}}function J9e(t,A){if(t&1&&(m(0,"div",5,0),ve(2,"div",null,1),Rt(4,O9e,12,16,"div",7,Fi),p()),t&2){let e=M();y(4),Nt(e.messages)}}function Y9e(t,A){if(t&1){let e=Ue();m(0,"div",59),ve(1,"img",60),m(2,"button",61),ee("click",function(){q(e);let n=M().$index,o=M(4);return W(o.removeFile.emit(n))}),m(3,"mat-icon",62),T(4,"close"),p()()()}if(t&2){let e=M().$implicit;y(),te("src",e.url,$r)}}function H9e(t,A){if(t&1){let e=Ue();m(0,"div",58)(1,"button",61),ee("click",function(){q(e);let n=M().$index,o=M(4);return W(o.removeFile.emit(n))}),m(2,"mat-icon",62),T(3,"close"),p()(),m(4,"div",63)(5,"mat-icon"),T(6,"insert_drive_file"),p(),m(7,"span"),T(8),p()()()}if(t&2){let e=M().$implicit;y(8),Pe(e.file.name)}}function z9e(t,A){if(t&1&&(m(0,"div"),ne(1,Y9e,5,1,"div",59)(2,H9e,9,1,"div",58),p()),t&2){let e=A.$implicit;y(),$(e.file.type.startsWith("image/")?1:e.file.type.startsWith("image/")?-1:2)}}function P9e(t,A){if(t&1){let e=Ue();m(0,"div",58)(1,"button",61),ee("click",function(){q(e);let n=M(4);return W(n.removeStateUpdate.emit())}),m(2,"mat-icon",62),T(3,"close"),p()(),m(4,"div",63)(5,"span"),T(6),p()()()}if(t&2){let e=M(4);y(6),Pe(e.i18n.updatedSessionStateChipLabel)}}function j9e(t,A){if(t&1&&(m(0,"div",50),Rt(1,z9e,3,1,"div",null,Fi),ne(3,P9e,7,1,"div",58),p()),t&2){let e=M(3);y(),Nt(e.selectedFiles),y(2),$(e.updatedSessionState?3:-1)}}function V9e(t,A){if(t&1){let e=Ue();m(0,"div",46)(1,"input",48,3),ee("change",function(n){q(e);let o=M(2);return W(o.fileSelect.emit(n))}),p(),m(3,"mat-form-field",49),ne(4,j9e,4,1,"div",50),m(5,"textarea",51),ee("ngModelChange",function(n){q(e);let o=M(2);return W(o.userInputChange.emit(n))})("keydown.enter",function(n){q(e);let o=M(2);return W(o.sendMessage.emit(n))}),p(),m(6,"div",52)(7,"div")(8,"button",53),Ii(9,"async"),ee("click",function(){q(e);let n=Ji(2);return W(n.click())}),m(10,"mat-icon"),T(11,"attach_file"),p()(),m(12,"button",54),Ii(13,"async"),m(14,"mat-icon"),T(15,"more_vert"),p()(),m(16,"mat-menu",null,4)(18,"span",55),ee("click",function(){q(e);let n=M(2);return W(n.updateState.emit())}),T(19),p()()(),m(20,"div")(21,"button",56),Ii(22,"async"),ee("click",function(){q(e);let n=M(2);return W(n.toggleAudioRecording.emit())}),m(23,"mat-icon"),T(24,"mic"),p()(),m(25,"button",57),Ii(26,"async"),ee("click",function(){q(e);let n=M(2);return W(n.toggleVideoRecording.emit())}),m(27,"mat-icon"),T(28,"videocam"),p()()()()()()}if(t&2){let e=Ji(17),i=M(2);y(4),$(i.selectedFiles.length&&i.appName!=""||i.updatedSessionState?4:-1),y(),te("ngModel",i.userInput)("placeholder",i.i18n.typeMessagePlaceholder),y(3),te("matTooltip",i.i18n.uploadFileTooltip)("disabled",!Qi(9,18,i.isMessageFileUploadEnabledObs)),y(4),te("matMenuTriggerFor",e)("matTooltip",i.i18n.moreOptionsTooltip)("disabled",!Qi(13,20,i.isManualStateUpdateEnabledObs)),y(6),te("matTooltip",i.i18n.updateStateMenuTooltip),y(),FA(" ",i.i18n.updateStateMenuLabel," "),y(2),iA("recording",i.isAudioRecording),te("matTooltip",i.isAudioRecording?i.i18n.turnOffMicTooltip:i.i18n.useMicTooltip)("disabled",!Qi(22,22,i.isBidiStreamingEnabledObs)),y(4),iA("recording",i.isVideoRecording),te("matTooltip",i.isVideoRecording?i.i18n.turnOffCamTooltip:i.i18n.useCamTooltip)("disabled",!Qi(26,24,i.isBidiStreamingEnabledObs))}}function q9e(t,A){if(t&1&&(m(0,"div",47),T(1),p()),t&2){let e=M(2);y(),Pe(e.i18n.cannotEditSessionMessage)}}function W9e(t,A){if(t&1&&ne(0,V9e,29,26,"div",46)(1,q9e,2,1,"div",47),t&2){let e=M();$(e.canEditSession()?0:1)}}function Z9e(t,A){t&1&&(m(0,"div",6),ve(1,"mat-progress-spinner",64),p())}var qAe="root_agent",EE=class t{constructor(A){this.sanitizer=A}appName="";messages=[];isChatMode=!0;evalCase=null;isEvalEditMode=!1;isEvalCaseEditing=!1;isEditFunctionArgsEnabled=!1;userInput="";userEditEvalCaseMessage="";selectedFiles=[];updatedSessionState=null;eventData=new Map;isAudioRecording=!1;isVideoRecording=!1;hoveredEventMessageIndices=[];userInputChange=new Ve;userEditEvalCaseMessageChange=new Ve;clickEvent=new Ve;handleKeydown=new Ve;cancelEditMessage=new Ve;saveEditMessage=new Ve;openViewImageDialog=new Ve;openBase64InNewTab=new Ve;editEvalCaseMessage=new Ve;deleteEvalCaseMessage=new Ve;editFunctionArgs=new Ve;fileSelect=new Ve;removeFile=new Ve;removeStateUpdate=new Ve;sendMessage=new Ve;updateState=new Ve;toggleAudioRecording=new Ve;toggleVideoRecording=new Ve;videoContainer;scrollContainer;textarea;scrollInterrupted=!1;previousMessageCount=0;i18n=E(VAe);uiStateService=E(zl);stringToColorService=E(uE);markdownComponent=E(vD);featureFlagService=E(Ks);MediaType=Bu;isMessageFileUploadEnabledObs=this.featureFlagService.isMessageFileUploadEnabled();isManualStateUpdateEnabledObs=this.featureFlagService.isManualStateUpdateEnabled();isBidiStreamingEnabledObs=this.featureFlagService.isBidiStreamingEnabled();canEditSession=mA(!0);ngAfterViewInit(){this.scrollContainer?.nativeElement&&(this.scrollContainer.nativeElement.addEventListener("wheel",()=>{this.scrollInterrupted=!0}),this.scrollContainer.nativeElement.addEventListener("touchmove",()=>{this.scrollInterrupted=!0}))}ngOnChanges(A){A.messages&&(this.messages.length>this.previousMessageCount&&(this.messages.slice(this.previousMessageCount).some(i=>i.role==="user")&&(this.scrollInterrupted=!1),this.scrollToBottom()),this.previousMessageCount=this.messages.length)}scrollToBottom(){!this.scrollInterrupted&&this.scrollContainer?.nativeElement&&setTimeout(()=>{this.scrollContainer.nativeElement.scrollTo({top:this.scrollContainer.nativeElement.scrollHeight,behavior:"auto"})},50)}getAgentNameFromEvent(A){let e=this.messages[A].eventId;return this.eventData.get(e)?.author??qAe}customIconColorClass(A){let e=this.getAgentNameFromEvent(A);return e!==qAe?`custom-icon-color-${this.stringToColorService.stc(e).replace("#","")}`:""}shouldMessageHighlighted(A){return this.hoveredEventMessageIndices.includes(A)}renderGooglerSearch(A){return this.sanitizer.bypassSecurityTrustHtml(A)}static \u0275fac=function(e){return new(e||t)(DA(dl))};static \u0275cmp=xe({type:t,selectors:[["app-chat-panel"]],viewQuery:function(e,i){if(e&1&&(At(XMe,5,eA),At($Me,5),At(e9e,5)),e&2){let n;oA(n=rA())&&(i.videoContainer=n.first),oA(n=rA())&&(i.scrollContainer=n.first),oA(n=rA())&&(i.textarea=n.first)}},inputs:{appName:"appName",messages:"messages",isChatMode:"isChatMode",evalCase:"evalCase",isEvalEditMode:"isEvalEditMode",isEvalCaseEditing:"isEvalCaseEditing",isEditFunctionArgsEnabled:"isEditFunctionArgsEnabled",userInput:"userInput",userEditEvalCaseMessage:"userEditEvalCaseMessage",selectedFiles:"selectedFiles",updatedSessionState:"updatedSessionState",eventData:"eventData",isAudioRecording:"isAudioRecording",isVideoRecording:"isVideoRecording",hoveredEventMessageIndices:"hoveredEventMessageIndices"},outputs:{userInputChange:"userInputChange",userEditEvalCaseMessageChange:"userEditEvalCaseMessageChange",clickEvent:"clickEvent",handleKeydown:"handleKeydown",cancelEditMessage:"cancelEditMessage",saveEditMessage:"saveEditMessage",openViewImageDialog:"openViewImageDialog",openBase64InNewTab:"openBase64InNewTab",editEvalCaseMessage:"editEvalCaseMessage",deleteEvalCaseMessage:"deleteEvalCaseMessage",editFunctionArgs:"editFunctionArgs",fileSelect:"fileSelect",removeFile:"removeFile",removeStateUpdate:"removeStateUpdate",sendMessage:"sendMessage",updateState:"updateState",toggleAudioRecording:"toggleAudioRecording",toggleVideoRecording:"toggleVideoRecording"},features:[ti],decls:5,vars:5,consts:[["autoScroll",""],["videoContainer",""],["messageTextarea",""],["fileInput",""],["moreMenu","matMenu"],[1,"chat-messages"],[1,"loading-spinner-container"],[3,"ngClass"],["mat-mini-fab","",3,"disabled","matTooltip","class","ngClass"],[1,"message-card",3,"ngClass"],["mat-stroked-button","",1,"function-event-button",3,"ngClass"],[1,"material-symbols-outlined"],["mat-mini-fab",""],["mat-mini-fab","",3,"click","disabled","matTooltip","ngClass"],["fontSet","material-symbols-outlined"],["mode","buffer",1,"loading-bar"],[1,"attachments"],[1,"thought-chip"],[1,"eval-compare-container"],[1,"attachment"],["alt","attachment",1,"image-preview-chat",3,"src"],["download","",3,"href"],[1,"edit-message-container"],[3,"ngComponentOutlet","ngComponentOutletInputs"],["rows","4","cols","80",1,"message-textarea",3,"ngModelChange","keydown","ngModel"],[1,"edit-message-buttons-container"],[1,"material-symbols-outlined","cancel-edit-button",3,"click","matTooltip"],[1,"material-symbols-outlined","save-edit-button",3,"click","matTooltip"],[3,"innerHTML"],[1,"generated-image-container"],["alt","image",1,"generated-image",3,"click","src"],[3,"base64data"],[1,"html-artifact-container"],[1,"link-style-button",3,"click"],["alt","image",1,"image-preview-chat",3,"click","src"],[1,"actual-expected-compare-container"],[1,"score-threshold-container"],[1,"actual-result"],[1,"eval-response-header","header-actual"],[3,"json"],[1,"expected-result"],[1,"eval-response-header","header-expected"],[1,"header-actual"],[1,"header-expected"],["mat-stroked-button","",1,"function-event-button",3,"click","ngClass"],[1,"material-symbols-outlined","eval-case-edit-button",3,"click","ngClass","matTooltip"],[1,"chat-input"],[1,"readonly-session-message"],["type","file","multiple","","hidden","",3,"change"],["appearance","outline",1,"input-field"],[1,"file-preview"],["matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","1","cdkAutosizeMaxRows","10",1,"chat-input-box",3,"ngModelChange","keydown.enter","ngModel","placeholder"],[1,"chat-input-actions"],["mat-icon-button","",1,"function-event-button",3,"click","matTooltip","disabled"],["mat-icon-button","",1,"function-event-button",3,"matMenuTriggerFor","matTooltip","disabled"],["mat-menu-item","",3,"click","matTooltip"],["mat-icon-button","","matSuffix","",1,"audio-rec-btn",3,"click","matTooltip","disabled"],["mat-icon-button","","matSuffix","",1,"video-rec-btn",3,"click","matTooltip","disabled"],[1,"file-container"],[1,"image-container"],["alt","preview",1,"image-preview",3,"src"],["mat-icon-button","",1,"delete-button",3,"click"],["color","warn"],[1,"file-info"],["mode","indeterminate","diameter","50"]],template:function(e,i){if(e&1&&(Wa(0),Ii(1,"async"),ne(2,J9e,6,0,"div",5)(3,W9e,2,1)(4,Z9e,2,0,"div",6)),e&2){let n=Qi(1,3,i.uiStateService.isSessionLoading());y(2),$(i.appName!=""&&!n?2:-1),y(),$(i.appName!=""&&i.isChatMode&&!n?3:-1),y(),$(n?4:-1)}},dependencies:[Ur,ta,YI,ts,Kn,Mr,Fo,Cr,gD,ir,eAe,sE,zAe,DD,j0,Un,ya,J5,L1,Gs,ds,yX,z5,YB,gl,JAe,sd,m2,BE,jAe,Z1,nd,j1,hE,_F,Ma],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}.generated-image-container[_ngcontent-%COMP%]{max-width:400px}.generated-image[_ngcontent-%COMP%]{max-width:100%;min-width:40px;border-radius:8px}.html-artifact-container[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:flex-start;align-items:center}.loading-bar[_ngcontent-%COMP%]{width:100px;margin:15px}.chat-messages[_ngcontent-%COMP%]{flex-grow:1;overflow-y:auto;padding:20px;margin-top:16px}.message-card[_ngcontent-%COMP%]{padding:5px 20px;margin:5px;border-radius:20px;max-width:80%;font-size:14px;font-weight:400;position:relative;display:inline-block}.message-card.message-card--highlighted[_ngcontent-%COMP%]{background-color:var(--chat-panel-function-event-button-highlight-background-color)}.function-event-button[_ngcontent-%COMP%]{background-color:var(--chat-panel-function-event-button-background-color);margin:5px 5px 10px}.function-event-button-highlight[_ngcontent-%COMP%]{background-color:var(--chat-panel-function-event-button-highlight-background-color);border-color:var(--chat-panel-function-event-button-highlight-border-color)!important;color:var(--chat-panel-function-event-button-highlight-color)!important}.user-message[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center}.user-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-panel-user-message-message-card-background-color);align-self:flex-end;color:var(--chat-panel-user-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]{display:flex;align-items:center}.bot-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-panel-bot-message-message-card-background-color);align-self:flex-start;color:var(--chat-panel-bot-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]:focus-within .message-card[_ngcontent-%COMP%]{background-color:var(--chat-panel-bot-message-focus-within-message-card-background-color);border:1px solid var(--chat-panel-bot-message-focus-within-message-card-border-color)}.message-textarea[_ngcontent-%COMP%]{background-color:var(--chat-panel-message-textarea-background-color);max-width:100%;border:none;font-family:Google Sans,Helvetica Neue,sans-serif}.message-textarea[_ngcontent-%COMP%]:focus{background-color:var(--chat-panel-message-textarea-focus-background-color);outline:none}.edit-message-buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%]{visibility:hidden;position:absolute;left:10px;z-index:10;background-color:var(--chat-panel-eval-compare-container-background-color);overflow:hidden;border-radius:20px;padding:5px 20px;margin-bottom:10px;font-size:16px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .actual-result[_ngcontent-%COMP%]{border-right:2px solid var(--chat-panel-actual-result-border-right-color);padding-right:8px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .expected-result[_ngcontent-%COMP%]{padding-left:12px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%]:hover .eval-compare-container[_ngcontent-%COMP%]{visibility:visible}.actual-expected-compare-container[_ngcontent-%COMP%]{display:flex}.score-threshold-container[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:10px;align-items:center;margin-top:15px;font-size:14px;font-weight:600}.eval-response-header[_ngcontent-%COMP%]{padding-bottom:5px;border-bottom:2px solid var(--chat-panel-eval-response-header-border-bottom-color);font-style:italic;font-weight:700}.header-expected[_ngcontent-%COMP%]{color:var(--chat-panel-header-expected-color)}.header-actual[_ngcontent-%COMP%]{color:var(--chat-panel-header-actual-color)}.eval-case-edit-button[_ngcontent-%COMP%]{cursor:pointer;margin-left:4px;margin-right:4px}.eval-pass[_ngcontent-%COMP%]{display:flex;color:var(--chat-panel-eval-pass-color)}.eval-fail[_ngcontent-%COMP%]{display:flex;color:var(--chat-panel-eval-fail-color)}.hidden[_ngcontent-%COMP%]{visibility:hidden}.chat-input[_ngcontent-%COMP%]{display:flex;padding:10px;width:60%;margin:0 auto}.readonly-session-message[_ngcontent-%COMP%]{display:block;text-align:center;padding:10px;width:100%;margin:0 auto;color:var(--chat-error-color)}.input-field[_ngcontent-%COMP%]{flex-grow:1}.input-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{color:var(--chat-panel-input-field-textarea-color);border:none;padding:10px;box-sizing:content-box;caret-color:var(--chat-panel-input-field-textarea-caret-color)}.input-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]::placeholder{color:var(--chat-panel-input-field-textarea-placeholder-color)}.input-field[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{color:var(--chat-panel-input-field-button-color);background-color:var(--chat-panel-input-field-button-background-color)}.chat-input-actions[_ngcontent-%COMP%]{width:106%;margin-top:10px;display:flex;justify-content:space-between;align-items:center;max-width:100%}.chat-input-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:10px;margin-right:10px}.file-preview[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px;margin-bottom:8px}.image-preview[_ngcontent-%COMP%]{width:40px;height:40px;object-fit:cover;border-radius:4px}.image-preview-chat[_ngcontent-%COMP%]{max-width:90%;max-height:70vh;width:auto;height:auto;border-radius:8px;cursor:pointer;transition:transform .2s ease-in-out}.attachment[_ngcontent-%COMP%]{display:flex;align-items:center}[_nghost-%COMP%] .mat-mdc-mini-fab{background-color:var(--chat-panel-mat-mdc-mini-fab-background-color)}[_nghost-%COMP%] .mat-mdc-mini-fab mat-icon{color:var(--chat-panel-mat-mdc-mini-fab-mat-icon-color)}[_nghost-%COMP%] .message-text p{white-space:pre-line;word-break:break-word;overflow-wrap:break-word}[_nghost-%COMP%] .input-field .mat-mdc-text-field-wrapper{border:1px solid var(--chat-panel-input-field-mat-mdc-text-field-wrapper-border-color);border-radius:16px}.image-container[_ngcontent-%COMP%]{position:relative;display:inline-block;border-radius:12px;overflow:hidden}.image-preview[_ngcontent-%COMP%]{display:block;width:100%;height:auto;border-radius:12px;width:80px;height:80px}.delete-button[_ngcontent-%COMP%]{position:absolute;top:1px;right:1px;background-color:var(--chat-panel-delete-button-background-color);border:none;border-radius:50%;padding:8px;cursor:pointer;color:var(--chat-panel-delete-button-color);display:flex;align-items:center;justify-content:center;margin-right:0;scale:.7}.delete-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px}.file-container[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;gap:8px;height:80px;background-color:var(--chat-panel-file-container-background-color);border-radius:12px}.file-info[_ngcontent-%COMP%]{margin-right:60px;padding-top:20px;padding-left:16px}.thought-chip[_ngcontent-%COMP%]{border-radius:5px;background-color:var(--chat-panel-thought-chip-background-color);width:80px;text-align:center;margin-top:5px}[_nghost-%COMP%] pre{white-space:pre-wrap;word-break:break-word;overflow-x:auto;max-width:100%}.link-style-button[_ngcontent-%COMP%]{background:none;border:none;padding:0;font:inherit;color:var(--chat-panel-link-style-button-color)!important;text-decoration:underline;cursor:pointer;outline:none;font-size:14px}.cancel-edit-button[_ngcontent-%COMP%]{width:24px;height:24px;color:var(--chat-mat-mdc-text-field-wrapper-border-color);cursor:pointer;margin-right:16px}.save-edit-button[_ngcontent-%COMP%]{width:24px;height:24px;color:var(--mat-sys-primary);cursor:pointer;margin-right:16px}.chat-input-box[_ngcontent-%COMP%]{caret-color:#fff}button.audio-rec-btn[_ngcontent-%COMP%], button.video-rec-btn[_ngcontent-%COMP%]{background-color:var(--chat-card-background-color)}button.audio-rec-btn.recording[_ngcontent-%COMP%], button.video-rec-btn.recording[_ngcontent-%COMP%]{background-color:var(--chat-panel-eval-fail-color)}.loading-spinner-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;height:100%}"]})};function Wo(t){return Array.isArray(t)}function nr(t){return t!==null&&typeof t=="object"&&(t.constructor===void 0||t.constructor.name==="Object")}function TF(t){return t&&typeof t=="object"?t.op==="add":!1}function OF(t){return t&&typeof t=="object"?t.op==="remove":!1}function bD(t){return t&&typeof t=="object"?t.op==="replace":!1}function MD(t){return t&&typeof t=="object"?t.op==="copy":!1}function X1(t){return t&&typeof t=="object"?t.op==="move":!1}function ZAe(t,A){return JSON.stringify(t)===JSON.stringify(A)}function X9e(t,A){return t===A}function JF(t){return t.slice(0,t.length-1)}function XAe(t){return t[t.length-1]}function $Ae(t,A){let e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:X9e;if(t.length{A[e]=t[e]}),A}if(nr(t)){let A=ae({},t);return Object.getOwnPropertySymbols(t).forEach(e=>{A[e]=t[e]}),A}return t}function zF(t,A,e){if(t[A]===e)return t;let i=HF(t);return i[A]=e,i}function WA(t,A){let e=t,i=0;for(;i3&&arguments[3]!==void 0?arguments[3]:!1;if(A.length===0)return e;let n=A[0],o=ra(t?t[n]:void 0,A.slice(1),e,i);if(nr(t)||Wo(t))return zF(t,n,o);if(i){let r=$9e.test(n)?[]:{};return r[n]=o,r}throw new Error("Path does not exist")}var $9e=/^\d+$/;function Tm(t,A,e){if(A.length===0)return e(t);if(!YF(t))throw new Error("Path doesn't exist");let i=A[0],n=Tm(t[i],A.slice(1),e);return zF(t,i,n)}function Eu(t,A){if(A.length===0)return t;if(!YF(t))throw new Error("Path does not exist");if(A.length===1){let n=A[0];if(!(n in t))return t;let o=HF(t);return Wo(o)&&o.splice(Number.parseInt(n),1),nr(o)&&delete o[n],o}let e=A[0],i=Eu(t[e],A.slice(1));return zF(t,e,i)}function Om(t,A,e){let i=A.slice(0,A.length-1),n=A[A.length-1];return Tm(t,i,o=>{if(!Array.isArray(o))throw new TypeError(`Array expected at path ${JSON.stringify(i)}`);let r=HF(o);return r.splice(Number.parseInt(n),0,e),r})}function Us(t,A){return t===void 0?!1:A.length===0?!0:t===null?!1:Us(t[A[0]],A.slice(1))}function Sa(t){let A=t.split("/");return A.shift(),A.map(e=>e.replace(/~1/g,"/").replace(/~0/g,"~"))}function pt(t){return t.map(ete).join("")}function ete(t){return`/${String(t).replace(/~/g,"~0").replace(/\//g,"~1")}`}function Jm(t,A){return t+ete(A)}function Mc(t,A,e){let i=t;for(let n=0;n{let s,a=Sc(o,r.path);if(r.op==="add")s=ite(o,a);else if(r.op==="remove")s=tte(o,a);else if(r.op==="replace")s=Ate(o,a);else if(r.op==="copy")s=aSe(o,a);else if(r.op==="move")s=cSe(o,a,Ym(r.from));else if(r.op==="test")s=[];else throw new Error(`Unknown JSONPatch operation ${JSON.stringify(r)}`);let c;if(e?.before){let l=e.before(o,r,s);if(l?.revertOperations&&(s=l.revertOperations),l?.document&&(c=l.document),l?.json)throw new Error('Deprecation warning: returned object property ".json" has been renamed to ".document"')}if(i=s.concat(i),c!==void 0)return{document:c}}}),i}function Ate(t,A){return Us(t,A)?[{op:"replace",path:pt(A),value:WA(t,A)}]:[]}function tte(t,A){return[{op:"add",path:pt(A),value:WA(t,A)}]}function ite(t,A){return fE(t,A)||!Us(t,A)?[{op:"remove",path:pt(A)}]:Ate(t,A)}function aSe(t,A){return ite(t,A)}function cSe(t,A,e){if(A.length="0"&&t<="9"}function ste(t){return t>=" "}function Hm(t){return`,:[]/{}() ++`.includes(t)}function VF(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="_"||t==="$"}function qF(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="_"||t==="$"||t>="0"&&t<="9"}var WF=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,ZF=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function XF(t){return`,[]/{} ++`.includes(t)}function $F(t){return zm(t)||QSe.test(t)}var QSe=/^[[{\w-]$/;function ate(t){return t===` +`||t==="\r"||t===" "||t==="\b"||t==="\f"}function $1(t,A){let e=t.charCodeAt(A);return e===32||e===10||e===9||e===13}function cte(t,A){let e=t.charCodeAt(A);return e===32||e===9||e===13}function lte(t,A){let e=t.charCodeAt(A);return e===160||e>=8192&&e<=8202||e===8239||e===8287||e===12288}function zm(t){return eG(t)||_D(t)}function eG(t){return t==='"'||t==="\u201C"||t==="\u201D"}function AG(t){return t==='"'}function _D(t){return t==="'"||t==="\u2018"||t==="\u2019"||t==="`"||t==="\xB4"}function tG(t){return t==="'"}function QE(t,A){let e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=t.lastIndexOf(A);return i!==-1?t.substring(0,i)+(e?"":t.substring(i+1)):t}function Pl(t,A){let e=t.length;if(!$1(t,e-1))return t+A;for(;$1(t,e-1);)e--;return t.substring(0,e)+A+t.substring(e)}function gte(t,A,e){return t.substring(0,A)+t.substring(A+e)}function dte(t){return/[,\n][ \t\r]*$/.test(t)}var mSe={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},pSe={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` +`,r:"\r",t:" "};function jl(t){let A=0,e="";c(["```","[```","{```"]),o()||P(),c(["```","```]","```}"]);let n=d(",");for(n&&r(),$F(t[A])&&dte(e)?(n||(e=Pl(e,",")),f()):n&&(e=QE(e,","));t[A]==="}"||t[A]==="]";)A++,r();if(A>=t.length)return e;ye();function o(){r();let oe=h()||B()||b()||S()||w()||K(!1)||J();return r(),oe}function r(){let oe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,le=A,me=s(oe);do me=a(),me&&(me=s(oe));while(me);return A>le}function s(oe){let le=oe?$1:cte,me="";for(;;)if(le(t,A))me+=t[A],A++;else if(lte(t,A))me+=" ",A++;else break;return me.length>0?(e+=me,!0):!1}function a(){if(t[A]==="/"&&t[A+1]==="*"){for(;A=t.length;Te||($F(t[A])||$e?e=Pl(e,":"):X()),o()||(Te||$e?e+="null":X())}return t[A]==="}"?(e+="}",A++):e=Pl(e,"}"),!0}return!1}function B(){if(t[A]==="["){e+="[",A++,r(),C(",")&&r();let oe=!0;for(;A0&&arguments[0]!==void 0?arguments[0]:!1,le=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,me=t[A]==="\\";if(me&&(A++,me=!0),zm(t[A])){let Te=AG(t[A])?AG:tG(t[A])?tG:_D(t[A])?_D:eG,$e=A,Je=e.length,Qe='"';for(A++;;){if(A>=t.length){let He=O(A-1);return!oe&&Hm(t.charAt(He))?(A=$e,e=e.substring(0,Je),b(!0)):(Qe=Pl(Qe,'"'),e+=Qe,!0)}if(A===le)return Qe=Pl(Qe,'"'),e+=Qe,!0;if(Te(t[A])){let He=A,PA=Qe.length;if(Qe+='"',A++,e+=Qe,r(!1),oe||A>=t.length||Hm(t[A])||zm(t[A])||eC(t[A]))return k(),!0;let JA=O(He-1),Ye=t.charAt(JA);if(Ye===",")return A=$e,e=e.substring(0,Je),b(!1,JA);if(Hm(Ye))return A=$e,e=e.substring(0,Je),b(!0);e=e.substring(0,Je),A=He+1,Qe=`${Qe.substring(0,PA)}\\${Qe.substring(PA)}`}else if(oe&&XF(t[A])){if(t[A-1]===":"&&WF.test(t.substring($e+1,A+2)))for(;A=t.length?A=t.length:ue()}else Qe+=He,A+=2}else{let He=t.charAt(A);He==='"'&&t[A-1]!=="\\"?(Qe+=`\\${He}`,A++):ate(He)?(Qe+=mSe[He],A++):(ste(He)||Z(He),Qe+=He,A++)}me&&I()}}return!1}function k(){let oe=!1;for(r();t[A]==="+";){oe=!0,A++,r(),e=QE(e,'"',!0);let le=e.length;b()?e=gte(e,le,1):e=Pl(e,'"')}return oe}function S(){let oe=A;if(t[A]==="-"){if(A++,H())return V(oe),!0;if(!eC(t[A]))return A=oe,!1}for(;eC(t[A]);)A++;if(t[A]==="."){if(A++,H())return V(oe),!0;if(!eC(t[A]))return A=oe,!1;for(;eC(t[A]);)A++}if(t[A]==="e"||t[A]==="E"){if(A++,(t[A]==="-"||t[A]==="+")&&A++,H())return V(oe),!0;if(!eC(t[A]))return A=oe,!1;for(;eC(t[A]);)A++}if(!H())return A=oe,!1;if(A>oe){let le=t.slice(oe,A),me=/^0\d/.test(le);return e+=me?`"${le}"`:le,!0}return!1}function w(){return _("true","true")||_("false","false")||_("null","null")||_("True","true")||_("False","false")||_("None","null")}function _(oe,le){return t.slice(A,A+oe.length)===oe?(e+=le,A+=oe.length,!0):!1}function K(oe){let le=A;if(VF(t[A])){for(;Ale){for(;$1(t,A-1)&&A>0;)A--;let me=t.slice(le,A);return e+=me==="undefined"?"null":JSON.stringify(me),t[A]==='"'&&A++,!0}}function J(){if(t[A]==="/"){let oe=A;for(A++;A0&&$1(t,le);)le--;return le}function H(){return A>=t.length||Hm(t[A])||$1(t,A)}function V(oe){e+=`${t.slice(oe,A)}0`}function Z(oe){throw new p2(`Invalid character ${JSON.stringify(oe)}`,A)}function ye(){throw new p2(`Unexpected character ${JSON.stringify(t[A])}`,A)}function P(){throw new p2("Unexpected end of json string",t.length)}function se(){throw new p2("Object key expected",A)}function X(){throw new p2("Colon expected",A)}function ue(){let oe=t.slice(A,A+6);throw new p2(`Invalid unicode character "${oe}"`,A)}}function wSe(t,A){return t[A]==="*"&&t[A+1]==="/"}var ySe=typeof global=="object"&&global&&global.Object===Object&&global,RD=ySe;var DSe=typeof self=="object"&&self&&self.Object===Object&&self,vSe=RD||DSe||Function("return this")(),Vr=vSe;var bSe=Vr.Symbol,Ts=bSe;var Cte=Object.prototype,MSe=Cte.hasOwnProperty,SSe=Cte.toString,Pm=Ts?Ts.toStringTag:void 0;function kSe(t){var A=MSe.call(t,Pm),e=t[Pm];try{t[Pm]=void 0;var i=!0}catch{}var n=SSe.call(t);return i&&(A?t[Pm]=e:delete t[Pm]),n}var Ite=kSe;var xSe=Object.prototype,_Se=xSe.toString;function RSe(t){return _Se.call(t)}var ute=RSe;var NSe="[object Null]",LSe="[object Undefined]",hte=Ts?Ts.toStringTag:void 0;function FSe(t){return t==null?t===void 0?LSe:NSe:hte&&hte in Object(t)?Ite(t):ute(t)}var Gg=FSe;function GSe(t){return t!=null&&typeof t=="object"}var nc=GSe;var KSe="[object Symbol]";function USe(t){return typeof t=="symbol"||nc(t)&&Gg(t)==KSe}var hl=USe;function TSe(t,A){for(var e=-1,i=t==null?0:t.length,n=Array(i);++e0){if(++A>=Mke)return arguments[0]}else A=0;return t.apply(void 0,arguments)}}var Nte=xke;function _ke(t){return function(){return t}}var Lte=_ke;var Rke=function(){try{var t=kc(Object,"defineProperty");return t({},"",{}),t}catch{}}(),pE=Rke;var Nke=pE?function(t,A){return pE(t,"toString",{configurable:!0,enumerable:!1,value:Lte(A),writable:!0})}:ad,Fte=Nke;var Lke=Nte(Fte),Gte=Lke;function Fke(t,A){for(var e=-1,i=t==null?0:t.length;++e-1&&t%1==0&&t-1&&t%1==0&&t<=Vke}var yE=qke;function Wke(t){return t!=null&&yE(t.length)&&!ND(t)}var Vl=Wke;function Zke(t,A,e){if(!Ds(e))return!1;var i=typeof A;return(i=="number"?Vl(e)&&wE(A,e.length):i=="string"&&A in e)?iC(e[A],t):!1}var Vm=Zke;var Xke=Object.prototype;function $ke(t){var A=t&&t.constructor,e=typeof A=="function"&&A.prototype||Xke;return t===e}var oC=$ke;function exe(t,A){for(var e=-1,i=Array(t);++e-1}var sie=Q_e;function m_e(t,A){var e=this.__data__,i=aC(e,t);return i<0?(++this.size,e.push([t,A])):e[i][1]=A,this}var aie=m_e;function SE(t){var A=-1,e=t==null?0:t.length;for(this.clear();++A0&&e(s)?A>1?mie(s,A-1,e,i,n):_E(n,s):i||(n[n.length]=s)}return n}var pie=mie;var H_e=TD(Object.getPrototypeOf,Object),HD=H_e;function z_e(t,A,e){var i=-1,n=t.length;A<0&&(A=-A>n?0:n+A),e=e>n?n:e,e<0&&(e+=n),n=A>e?0:e-A>>>0,A>>>=0;for(var o=Array(n);++is))return!1;var c=o.get(t),l=o.get(A);if(c&&l)return c==A&&l==t;var d=-1,C=!0,I=e&HNe?new dne:void 0;for(o.set(t,A),o.set(A,t);++d=A||K<0||d&&J>=o}function f(){var _=cv();if(B(_))return b(_);s=setTimeout(f,h(_))}function b(_){return s=void 0,C&&i?I(_):(i=n=void 0,r)}function k(){s!==void 0&&clearTimeout(s),c=0,i=a=n=s=void 0}function S(){return s===void 0?r:b(cv())}function w(){var _=cv(),K=B(_);if(i=arguments,n=this,a=_,K){if(s===void 0)return u(a);if(d)return clearTimeout(s),s=setTimeout(f,A),I(a)}return s===void 0&&(s=setTimeout(f,A)),r}return w.cancel=k,w.flush=S,w}var KE=HLe;function zLe(t){var A=t==null?0:t.length;return A?t[A-1]:void 0}var vi=zLe;function PLe(t){return typeof t=="function"?t:ad}var lv=PLe;function jLe(t,A){for(var e=t==null?0:t.length;e--&&A(t[e],e,t)!==!1;);return t}var Kne=jLe;var VLe=nv(!0),Une=VLe;function qLe(t,A){return t&&Une(t,A,ql)}var Tne=qLe;var WLe=rv(Tne,!0),One=WLe;function ZLe(t,A){var e=go(t)?Kne:One;return e(t,lv(A))}var cG=ZLe;function XLe(t){return t&&t.length?t[0]:void 0}var Wl=XLe;function $Le(t,A){var e=-1,i=Vl(t)?Array(t.length):[];return sv(t,function(n,o,r){i[++e]=A(n,o,r)}),i}var gv=$Le;function eFe(t,A){var e=go(t)?AC:gv;return e(t,cd(A,3))}var lG=eFe;var AFe=Object.prototype,tFe=AFe.hasOwnProperty,iFe=av(function(t,A,e){tFe.call(t,e)?t[e].push(A):tC(t,e,[A])}),gG=iFe;function nFe(t){var A=t==null?0:t.length;return A?wie(t,0,-1):[]}var Hi=nFe;var oFe="[object Map]",rFe="[object Set]",sFe=Object.prototype,aFe=sFe.hasOwnProperty;function cFe(t){if(t==null)return!0;if(Vl(t)&&(go(t)||typeof t=="string"||typeof t.splice=="function"||y2(t)||DE(t)||rC(t)))return!t.length;var A=Kg(t);if(A==oFe||A==rFe)return!t.size;if(oC(t))return!OD(t).length;for(var e in t)if(aFe.call(t,e))return!1;return!0}var An=cFe;function lFe(t,A){return GE(t,A)}var wi=lFe;function gFe(t,A){return tA||o&&r&&a&&!s&&!c||i&&r&&a||!e&&a||!n)return 1;if(!i&&!o&&!c&&t=s)return a;var c=e[i];return a*(c=="desc"?-1:1)}}return t.index-A.index}var Pne=BFe;function EFe(t,A,e){A.length?A=AC(A,function(o){return go(o)?function(r){return xE(r,o.length===1?o[0]:o)}:o}):A=[ad];var i=-1;A=AC(A,sC(cd));var n=gv(t,function(o,r,s){var a=AC(A,function(c){return c(o)});return{criteria:a,index:++i,value:o}});return Hne(n,function(o,r){return Pne(o,r,e)})}var jne=EFe;var fFe=av(function(t,A,e){t[e?0:1].push(A)},function(){return[[],[]]}),CG=fFe;var QFe=Math.ceil,mFe=Math.max;function pFe(t,A,e,i){for(var n=-1,o=mFe(QFe((A-t)/(e||1)),0),r=Array(o);o--;)r[i?o:++n]=t,t+=e;return r}var Vne=pFe;function wFe(t){return function(A,e,i){return i&&typeof i!="number"&&Vm(A,e,i)&&(e=i=void 0),A=mE(A),e===void 0?(e=A,A=0):e=mE(e),i=i===void 0?A1&&Vm(t,A[0],A[1])?A=[]:e>2&&Vm(A[0],A[1],A[2])&&(A=[A[0]]),jne(t,pie(A,1),[])}),IG=DFe;var vFe=9007199254740991,uG=4294967295,bFe=Math.min;function MFe(t,A){if(t=Dte(t),t<1||t>vFe)return[];var e=uG,i=bFe(t,uG);A=lv(A),t-=uG;for(var n=KD(i,A);++eArray.isArray(t),xFe=t=>t!==null&&typeof t=="object"&&!uC(t),_Fe=t=>typeof t=="string",mu=(t,A)=>t===A?!0:t!==null&&A!==null&&typeof t=="object"&&typeof A=="object"&&Object.keys(t).length===Object.keys(A).length&&Object.entries(t).every(([e,i])=>mu(i,A[e]));function os(t){return(...A)=>{let e=A.map(o=>vs(o)),i=e[0],n=e[1];return e.length===1?o=>t(i(o)):e.length===2?o=>t(i(o),n(o)):o=>t(...e.map(r=>r(o)))}}var e3={boolean:0,number:1,string:2},Wne=3,Xne=(t,A)=>typeof t==typeof A&&typeof t in e3?t>A:!1,RFe=(t,A)=>mu(t,A)||Xne(t,A),$ne=(t,A)=>typeof t==typeof A&&typeof t in e3?tmu(t,A)||$ne(t,A),$m={pipe:(...t)=>{let A=t.map(e=>vs(e));return e=>A.reduce((i,n)=>n(i),e)},object:t=>{let A=Object.keys(t).map(e=>[e,vs(t[e])]);return e=>{let i={};for(let[n,o]of A)i[n]=o(e);return i}},array:(...t)=>{let A=t.map(e=>vs(e));return e=>A.map(i=>i(e))},get:(...t)=>{if(t.length===0)return A=>A??null;if(t.length===1){let A=t[0];return e=>e?.[A]??null}return A=>{let e=A;for(let i of t)e=e?.[i];return e??null}},map:t=>{let A=vs(t);return e=>e.map(A)},mapObject:t=>{let A=vs(t);return e=>{let i={};for(let n of Object.keys(e)){let o=A({key:n,value:e[n]});i[o.key]=o.value}return i}},mapKeys:t=>{let A=vs(t);return e=>{let i={};for(let n of Object.keys(e)){let o=A(n);i[o]=e[n]}return i}},mapValues:t=>{let A=vs(t);return e=>{let i={};for(let n of Object.keys(e))i[n]=A(e[n]);return i}},filter:t=>{let A=vs(t);return e=>e.filter(i=>Zne(A(i)))},sort:(t=["get"],A)=>{let e=vs(t),i=A==="desc"?-1:1;function n(o,r){let s=e(o),a=e(r);if(typeof s!=typeof a){let c=e3[typeof s]??Wne,l=e3[typeof a]??Wne;return c>l?i:ca?i:so.slice().sort(n)},reverse:()=>t=>t.toReversed(),pick:(...t)=>{let A=t.map(([i,...n])=>[n[n.length-1],$m.get(...n)]),e=(i,n)=>{let o={};for(let[r,s]of n)o[r]=s(i);return o};return i=>uC(i)?i.map(n=>e(n,A)):e(i,A)},groupBy:t=>{let A=vs(t);return e=>{let i={};for(let n of e){let o=A(n);i[o]?i[o].push(n):i[o]=[n]}return i}},keyBy:t=>{let A=vs(t);return e=>{let i={};for(let n of e){let o=A(n);o in i||(i[o]=n)}return i}},flatten:()=>t=>t.flat(),join:(t="")=>A=>A.join(t),split:os((t,A)=>A!==void 0?t.split(A):t.trim().split(/\s+/)),substring:os((t,A,e)=>t.slice(Math.max(A,0),e)),uniq:()=>t=>{let A=[];for(let e of t)A.findIndex(i=>mu(i,e))===-1&&A.push(e);return A},uniqBy:t=>A=>Object.values($m.keyBy(t)(A)),limit:t=>A=>A.slice(0,Math.max(t,0)),size:()=>t=>t.length,keys:()=>Object.keys,values:()=>Object.values,prod:()=>t=>Xm(t,(A,e)=>A*e),sum:()=>t=>uC(t)?t.reduce((A,e)=>A+e,0):BG(),average:()=>t=>uC(t)?t.length>0?t.reduce((A,e)=>A+e)/t.length:null:BG(),min:()=>t=>Xm(t,(A,e)=>Math.min(A,e)),max:()=>t=>Xm(t,(A,e)=>Math.max(A,e)),and:os((...t)=>Xm(t,(A,e)=>!!(A&&e))),or:os((...t)=>Xm(t,(A,e)=>!!(A||e))),not:os(t=>!t),exists:t=>{let A=t.slice(1),e=A.pop(),i=$m.get(...A);return n=>{let o=i(n);return!!o&&Object.hasOwnProperty.call(o,e)}},if:(t,A,e)=>{let i=vs(t),n=vs(A),o=vs(e);return r=>Zne(i(r))?n(r):o(r)},in:(t,A)=>{let e=vs(t),i=vs(A);return n=>{let o=e(n);return i(n).findIndex(r=>mu(r,o))!==-1}},"not in":(t,A)=>{let e=$m.in(t,A);return i=>!e(i)},regex:(t,A,e)=>{let i=new RegExp(A,e),n=vs(t);return o=>i.test(n(o))},eq:os(mu),gt:os(Xne),gte:os(RFe),lt:os($ne),lte:os(NFe),ne:os((t,A)=>!mu(t,A)),add:os((t,A)=>t+A),subtract:os((t,A)=>t-A),multiply:os((t,A)=>t*A),divide:os((t,A)=>t/A),mod:os((t,A)=>t%A),pow:os((t,A)=>t**A),abs:os(Math.abs),round:os((t,A=0)=>+`${Math.round(+`${t}e${A}`)}e${-A}`),number:os(t=>{let A=Number(t);return Number.isNaN(Number(t))?null:A}),string:os(String)},Zne=t=>t!==null&&t!==0&&t!==!1,Xm=(t,A)=>(uC(t)||BG(),t.length===0?null:t.reduce(A)),BG=()=>{EG("Array expected")},EG=t=>{throw new TypeError(t)},Cv=[];function vs(t,A){Cv.unshift(ae(ae(ae({},$m),Cv[0]),A?.functions));try{let e=uC(t)?LFe(t,Cv[0]):xFe(t)?EG(`Function notation ["object", {...}] expected but got ${JSON.stringify(t)}`):()=>t;return i=>{try{return e(i)}catch(n){throw n.jsonquery=[{data:i,query:t},...n.jsonquery??[]],n}}}finally{Cv.shift()}}function LFe(t,A){let[e,...i]=t,n=A[e];return n||EG(`Unknown function '${e}'`),n(...i)}var eoe=[{pow:"^"},{multiply:"*",divide:"/",mod:"%"},{add:"+",subtract:"-"},{gt:">",gte:">=",lt:"<",lte:"<=",in:"in","not in":"not in"},{eq:"==",ne:"!="},{and:"and"},{or:"or"},{pipe:"|"}],FFe=["|","and","or"],Aoe=["|","and","or","*","/","%","+","-"];function toe(t,A){if(!uC(A))throw new Error("Invalid custom operators");return A.reduce(GFe,t)}function GFe(t,{name:A,op:e,at:i,after:n,before:o}){if(i)return t.map(a=>Object.values(a).includes(i)?_A(ae({},a),{[A]:e}):a);let r=n??o,s=t.findIndex(a=>Object.values(a).includes(r));if(s!==-1)return t.toSpliced(s+(n?1:0),0,{[A]:e});throw new Error("Invalid custom operator")}var KFe=/^[a-zA-Z_$][a-zA-Z\d_$]*$/,UFe=/^[a-zA-Z_$][a-zA-Z\d_$]*/,TFe=/^"(?:[^"\\]|\\.)*"/,OFe=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/,JFe=/^(0|[1-9][0-9]*)/,YFe=/^(true|false|null)/,HFe=/^[ \n\t\r]+/;function fG(t,A){let e=A?.operators??[],i=toe(eoe,e),n=Object.assign({},...i),o=FFe.concat(e.filter(H=>H.vararg).map(H=>H.op)),r=Aoe.concat(e.filter(H=>H.leftAssociative).map(H=>H.op)),s=(H=i.length-1)=>{let V=i[H];if(!V)return c();let Z=t[J]==="(",ye=s(H-1);for(;;){w();let P=J,se=a(V);if(!se)break;let X=s(H-1),ue=ye[0],oe=se===ue&&!Z;if(oe&&!r.includes(n[se])){J=P;break}ye=oe&&o.includes(n[se])?[...ye,X]:[se,ye,X]}return ye},a=H=>{let V=Object.keys(H).sort((Z,ye)=>ye.length-Z.length);for(let Z of V){let ye=H[Z];if(t.substring(J,J+ye.length)===ye)return J+=ye.length,w(),Z}},c=()=>{if(w(),t[J]==="("){J++;let H=s();return _(")"),H}return l()},l=()=>{if(t[J]==="."){let H=[];for(;t[J]===".";)J++,H.push(u()??h()??f()??K("Property expected"));return["get",...H]}return d()},d=()=>{let H=J,V=h();if(w(),!V||t[J]!=="(")return J=H,C();J++,w();let Z=t[J]!==")"?[s()]:[];for(;J{if(t[J]==="{"){J++,w();let H={},V=!0;for(;J{if(t[J]==="["){J++,w();let H=[],V=!0;for(;JS(TFe,JSON.parse),h=()=>S(UFe,H=>H),B=()=>S(OFe,JSON.parse),f=()=>S(JFe,JSON.parse),b=()=>{let H=S(YFe,JSON.parse);if(H!==void 0)return H;K("Value expected")},k=()=>{w(),J{let Z=t.substring(J).match(H);if(Z)return J+=Z[0].length,V(Z[0])},w=()=>S(HFe,H=>H),_=H=>{t[J]!==H&&K(`Character '${H}' expected`),J++},K=(H,V=J)=>{throw new SyntaxError(`${H} (pos: ${V})`)},J=0,O=s();return k(),O}var zFe=40,PFe=" ",ioe=(t,A)=>{let e=A?.indentation??PFe,i=A?.operators??[],n=toe(eoe,i),o=Object.assign({},...n),r=Aoe.concat(i.filter(I=>I.leftAssociative).map(I=>I.op)),s=(I,u,h=!1)=>uC(I)?a(I,u,h):JSON.stringify(I),a=(I,u,h)=>{let[B,...f]=I;if(B==="get"&&f.length>0)return l(f);if(B==="object")return c(f[0],u);if(B==="array"){let w=f.map(_=>s(_,u));return C(w,["[",", ","]"],[`[ +${u+e}`,`, +${u+e}`,` +${u}]`])}let b=o[B];if(b){let w=h?"(":"",_=h?")":"",K=f.map((J,O)=>{let H=J?.[0],V=n.findIndex(P=>B in P),Z=n.findIndex(P=>H in P),ye=V0||B===H&&!r.includes(b);return s(J,u+e,ye)});return C(K,[w,` ${b} `,_],[w,` +${u+e}${b} `,_])}let k=f.length===1?u:u+e,S=f.map(w=>s(w,k));return C(S,[`${B}(`,", ",")"],f.length===1?[`${B}(`,`, +${u}`,")"]:[`${B}( +${k}`,`, +${k}`,` +${u})`])},c=(I,u)=>{let h=u+e,B=Object.entries(I).map(([f,b])=>`${d(f)}: ${s(b,h)}`);return C(B,["{ ",", "," }"],[`{ +${h}`,`, +${h}`,` +${u}}`])},l=I=>I.map(u=>`.${d(u)}`).join(""),d=I=>KFe.test(I)?I:JSON.stringify(I),C=(I,[u,h,B],[f,b,k])=>u.length+I.reduce((S,w)=>S+w.length+h.length,0)-h.length+B.length<=(A?.maxLineLength??zFe)?u+I.join(h)+B:f+I.join(b)+k;return s(t,"")};function noe(t,A,e){return vs(_Fe(A)?fG(A,e):A,e)(t)}var ooe={prefix:"far",iconName:"lightbulb",icon:[384,512,[128161],"f0eb","M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7c0 0 0 0 0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5L109 384c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8c0 0 0 0 0 0s0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4c0 0 0 0 0 0s0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5l-48.6 0c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80l0-16 160 0 0 16c0 44.2-35.8 80-80 80z"]};var jFe={prefix:"far",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},QG=jFe;var mG={prefix:"far",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"]};var roe={prefix:"far",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]};var Iv={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z"]};var soe={prefix:"fas",iconName:"down-left-and-up-right-to-center",icon:[512,512,["compress-alt"],"f422","M439 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39L439 7zM72 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39L73 505c-9.4 9.4-24.6 9.4-33.9 0L7 473c-9.4-9.4-9.4-24.6 0-33.9l87-87L55 313c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8z"]};var TE={prefix:"fas",iconName:"caret-right",icon:[256,512,[],"f0da","M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z"]};var pG={prefix:"fas",iconName:"paste",icon:[512,512,["file-clipboard"],"f0ea","M160 0c-23.7 0-44.4 12.9-55.4 32L48 32C21.5 32 0 53.5 0 80L0 400c0 26.5 21.5 48 48 48l144 0 0-272c0-44.2 35.8-80 80-80l48 0 0-16c0-26.5-21.5-48-48-48l-56.6 0C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48l0 272 0 16c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-220.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L320 128l-48 0zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]};var aoe={prefix:"fas",iconName:"circle-notch",icon:[512,512,[],"f1ce","M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z"]};var VFe={prefix:"fas",iconName:"scissors",icon:[512,512,[9984,9986,9988,"cut"],"f0c4","M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"]},pu=VFe;var qFe={prefix:"fas",iconName:"square-caret-down",icon:[448,512,["caret-square-down"],"f150","M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"]},coe=qFe;var loe={prefix:"fas",iconName:"caret-left",icon:[256,512,[],"f0d9","M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z"]};var WFe={prefix:"fas",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},wG=WFe;var ZFe={prefix:"fas",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z"]},goe=ZFe;var doe={prefix:"fas",iconName:"chevron-up",icon:[512,512,[],"f077","M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"]};var yG={prefix:"fas",iconName:"angle-right",icon:[320,512,[8250],"f105","M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"]};var XFe={prefix:"fas",iconName:"square-caret-up",icon:[448,512,["caret-square-up"],"f151","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"]},Coe=XFe;var DG={prefix:"fas",iconName:"caret-up",icon:[320,512,[],"f0d8","M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"]};var vG={prefix:"fas",iconName:"square",icon:[448,512,[9632,9723,9724,61590],"f0c8","M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"]};var A3={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.9 54.9C10.5 40.9 24.5 32 40 32l432 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9 320 448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z"]};var t3={prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"]};var b2={prefix:"fas",iconName:"wrench",icon:[512,512,[128295],"f0ad","M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7L336 192c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]};var Ioe={prefix:"fas",iconName:"eye",icon:[576,512,[128065],"f06e","M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"]};var wu={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z"]};var $Fe={prefix:"fas",iconName:"arrow-rotate-right",icon:[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M386.3 160L336 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z"]};var uv=$Fe;var eGe={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z"]};var hv=eGe;var AGe={prefix:"fas",iconName:"crop-simple",icon:[512,512,["crop-alt"],"f565","M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-224 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64L160 64l0 64 224 0 0 352z"]},uoe=AGe;var tGe={prefix:"fas",iconName:"gear",icon:[512,512,[9881,"cog"],"f013","M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"]},hoe=tGe;var ld={prefix:"fas",iconName:"caret-down",icon:[320,512,[],"f0d7","M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"]};var iGe={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"]},bG=iGe;var i3={prefix:"fas",iconName:"arrow-right-arrow-left",icon:[448,512,[8644,"exchange"],"f0ec","M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z"]};var nGe={prefix:"fas",iconName:"arrow-down-short-wide",icon:[576,512,["sort-amount-desc","sort-amount-down-alt"],"f884","M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]};var n3=nGe;var Boe={prefix:"fas",iconName:"angle-down",icon:[448,512,[8964],"f107","M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]};var MG={prefix:"fas",iconName:"arrow-down",icon:[384,512,[8595],"f063","M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]};var oGe={prefix:"fas",iconName:"magnifying-glass",icon:[512,512,[128269,"search"],"f002","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"]},o3=oGe;var Eoe={prefix:"fas",iconName:"chevron-down",icon:[512,512,[],"f078","M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"]};var M2={prefix:"fas",iconName:"copy",icon:[448,512,[],"f0c5","M208 0L332.1 0c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9L448 336c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48zM48 128l80 0 0 64-64 0 0 256 192 0 0-32 64 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48z"]};var yu={prefix:"fas",iconName:"plus",icon:[448,512,[10133,61543,"add"],"2b","M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z"]};var foe={prefix:"fas",iconName:"xmark",icon:[384,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"]},Qoe=foe;var r3=foe;var moe={prefix:"fas",iconName:"rotate",icon:[512,512,[128260,"sync-alt"],"f2f1","M142.9 142.9c-17.5 17.5-30.1 38-37.8 59.8c-5.9 16.7-24.2 25.4-40.8 19.5s-25.4-24.2-19.5-40.8C55.6 150.7 73.2 122 97.6 97.6c87.2-87.2 228.3-87.5 315.8-1L455 55c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 128c0 13.3-10.7 24-24 24l-8.4 0c0 0 0 0 0 0L344 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l41.1-41.1c-62.6-61.5-163.1-61.2-225.3 1zM16 312c0-13.3 10.7-24 24-24l7.6 0 .7 0L168 288c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-41.1 41.1c62.6 61.5 163.1 61.2 225.3-1c17.5-17.5 30.1-38 37.8-59.8c5.9-16.7 24.2-25.4 40.8-19.5s25.4 24.2 19.5 40.8c-10.8 30.6-28.4 59.3-52.9 83.8c-87.2 87.2-228.3 87.5-315.8 1L57 457c-6.9 6.9-17.2 8.9-26.2 5.2S16 449.7 16 440l0-119.6 0-.7 0-7.6z"]};var poe={prefix:"fas",iconName:"up-right-and-down-left-from-center",icon:[512,512,["expand-alt"],"f424","M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z"]};var SG={prefix:"fas",iconName:"clone",icon:[512,512,[],"f24d","M288 448L64 448l0-224 64 0 0-64-64 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-64-64 0 0 64zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z"]};var Bv={prefix:"fas",iconName:"check",icon:[448,512,[10003,10004],"f00c","M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"]};var rGe={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},hC=rGe;var d2e=JQ(Doe(),1);var voe=Number.isNaN||function(A){return typeof A=="number"&&A!==A};function sGe(t,A){return!!(t===A||voe(t)&&voe(A))}function aGe(t,A){if(t.length!==A.length)return!1;for(var e=0;e{if(typeof n!="object"||!n.name||!n.init)throw new Error("Invalid JSEP plugin format");this.registered[n.name]||(n.init(this.jsep),this.registered[n.name]=n)})}},Lc=class t{static get version(){return"1.4.0"}static toString(){return"JavaScript Expression Parser (JSEP) v"+t.version}static addUnaryOp(A){return t.max_unop_len=Math.max(A.length,t.max_unop_len),t.unary_ops[A]=1,t}static addBinaryOp(A,e,i){return t.max_binop_len=Math.max(A.length,t.max_binop_len),t.binary_ops[A]=e,i?t.right_associative.add(A):t.right_associative.delete(A),t}static addIdentifierChar(A){return t.additional_identifier_chars.add(A),t}static addLiteral(A,e){return t.literals[A]=e,t}static removeUnaryOp(A){return delete t.unary_ops[A],A.length===t.max_unop_len&&(t.max_unop_len=t.getMaxKeyLen(t.unary_ops)),t}static removeAllUnaryOps(){return t.unary_ops={},t.max_unop_len=0,t}static removeIdentifierChar(A){return t.additional_identifier_chars.delete(A),t}static removeBinaryOp(A){return delete t.binary_ops[A],A.length===t.max_binop_len&&(t.max_binop_len=t.getMaxKeyLen(t.binary_ops)),t.right_associative.delete(A),t}static removeAllBinaryOps(){return t.binary_ops={},t.max_binop_len=0,t}static removeLiteral(A){return delete t.literals[A],t}static removeAllLiterals(){return t.literals={},t}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(A){this.expr=A,this.index=0}static parse(A){return new t(A).parse()}static getMaxKeyLen(A){return Math.max(0,...Object.keys(A).map(e=>e.length))}static isDecimalDigit(A){return A>=48&&A<=57}static binaryPrecedence(A){return t.binary_ops[A]||0}static isIdentifierStart(A){return A>=65&&A<=90||A>=97&&A<=122||A>=128&&!t.binary_ops[String.fromCharCode(A)]||t.additional_identifier_chars.has(String.fromCharCode(A))}static isIdentifierPart(A){return t.isIdentifierStart(A)||t.isDecimalDigit(A)}throwError(A){let e=new Error(A+" at character "+this.index);throw e.index=this.index,e.description=A,e}runHook(A,e){if(t.hooks[A]){let i={context:this,node:e};return t.hooks.run(A,i),i.node}return e}searchHook(A){if(t.hooks[A]){let e={context:this};return t.hooks[A].find(function(i){return i.call(e.context,e),e.node}),e.node}}gobbleSpaces(){let A=this.code;for(;A===t.SPACE_CODE||A===t.TAB_CODE||A===t.LF_CODE||A===t.CR_CODE;)A=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");let A=this.gobbleExpressions(),e=A.length===1?A[0]:{type:t.COMPOUND,body:A};return this.runHook("after-all",e)}gobbleExpressions(A){let e=[],i,n;for(;this.index0;){if(t.binary_ops.hasOwnProperty(A)&&(!t.isIdentifierStart(this.code)||this.index+A.lengtho.right_a&&d.right_a?i>d.prec:i<=d.prec;for(;n.length>2&&l(n[n.length-2]);)s=n.pop(),e=n.pop().value,r=n.pop(),A={type:t.BINARY_EXP,operator:e,left:r,right:s},n.push(A);A=this.gobbleToken(),A||this.throwError("Expected expression after "+c),n.push(o,A)}for(a=n.length-1,A=n[a];a>1;)A={type:t.BINARY_EXP,operator:n[a-1].value,left:n[a-2],right:A},a-=2;return A}gobbleToken(){let A,e,i,n;if(this.gobbleSpaces(),n=this.searchHook("gobble-token"),n)return this.runHook("after-token",n);if(A=this.code,t.isDecimalDigit(A)||A===t.PERIOD_CODE)return this.gobbleNumericLiteral();if(A===t.SQUOTE_CODE||A===t.DQUOTE_CODE)n=this.gobbleStringLiteral();else if(A===t.OBRACK_CODE)n=this.gobbleArray();else{for(e=this.expr.substr(this.index,t.max_unop_len),i=e.length;i>0;){if(t.unary_ops.hasOwnProperty(e)&&(!t.isIdentifierStart(this.code)||this.index+e.length=e.length&&this.throwError("Unexpected token "+String.fromCharCode(A));break}else if(o===t.COMMA_CODE){if(this.index++,n++,n!==e.length){if(A===t.CPAREN_CODE)this.throwError("Unexpected token ,");else if(A===t.CBRACK_CODE)for(let r=e.length;r":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10,"**":11},right_associative:new Set(["**"]),additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"});Lc.max_unop_len=Lc.getMaxKeyLen(Lc.unary_ops);Lc.max_binop_len=Lc.getMaxKeyLen(Lc.binary_ops);var N2=t=>new Lc(t).parse(),LJe=Object.getOwnPropertyNames(class{});Object.getOwnPropertyNames(Lc).filter(t=>!LJe.includes(t)&&N2[t]===void 0).forEach(t=>{N2[t]=Lc[t]});N2.Jsep=Lc;var FJe="ConditionalExpression",GJe={name:"ternary",init(t){t.hooks.add("after-expression",function(e){if(e.node&&this.code===t.QUMARK_CODE){this.index++;let i=e.node,n=this.gobbleExpression();if(n||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===t.COLON_CODE){this.index++;let o=this.gobbleExpression();if(o||this.throwError("Expected expression"),e.node={type:FJe,test:i,consequent:n,alternate:o},i.operator&&t.binary_ops[i.operator]<=.9){let r=i;for(;r.right.operator&&t.binary_ops[r.right.operator]<=.9;)r=r.right;e.node.test=r.right,r.right=e.node,e.node=i}}else this.throwError("Expected :")}})}};N2.plugins.register(GJe);var oae=47,KJe=92,UJe={name:"regex",init(t){t.hooks.add("gobble-token",function(e){if(this.code===oae){let i=++this.index,n=!1;for(;this.index=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57)r+=this.char;else break}let s;try{s=new RegExp(o,r)}catch(a){this.throwError(a.message)}return e.node={type:t.LITERAL,value:s,raw:this.expr.slice(i-1,this.index)},e.node=this.gobbleTokenProperty(e.node),e.node}this.code===t.OBRACK_CODE?n=!0:n&&this.code===t.CBRACK_CODE&&(n=!1),this.index+=this.code===KJe?2:1}this.throwError("Unclosed Regex")}})}},uU=43,TJe=45,Af={name:"assignment",assignmentOperators:new Set(["=","*=","**=","/=","%=","+=","-=","<<=",">>=",">>>=","&=","^=","|=","||=","&&=","??="]),updateOperators:[uU,TJe],assignmentPrecedence:.9,init(t){let A=[t.IDENTIFIER,t.MEMBER_EXP];Af.assignmentOperators.forEach(i=>t.addBinaryOp(i,Af.assignmentPrecedence,!0)),t.hooks.add("gobble-token",function(n){let o=this.code;Af.updateOperators.some(r=>r===o&&r===this.expr.charCodeAt(this.index+1))&&(this.index+=2,n.node={type:"UpdateExpression",operator:o===uU?"++":"--",argument:this.gobbleTokenProperty(this.gobbleIdentifier()),prefix:!0},(!n.node.argument||!A.includes(n.node.argument.type))&&this.throwError(`Unexpected ${n.node.operator}`))}),t.hooks.add("after-token",function(n){if(n.node){let o=this.code;Af.updateOperators.some(r=>r===o&&r===this.expr.charCodeAt(this.index+1))&&(A.includes(n.node.type)||this.throwError(`Unexpected ${n.node.operator}`),this.index+=2,n.node={type:"UpdateExpression",operator:o===uU?"++":"--",argument:n.node,prefix:!1})}}),t.hooks.add("after-expression",function(n){n.node&&e(n.node)});function e(i){Af.assignmentOperators.has(i.operator)?(i.type="AssignmentExpression",e(i.left),e(i.right)):i.operator||Object.values(i).forEach(n=>{n&&typeof n=="object"&&e(n)})}}};N2.plugins.register(UJe,Af);N2.addUnaryOp("typeof");N2.addLiteral("null",null);N2.addLiteral("undefined",void 0);var OJe=new Set(["constructor","__proto__","__defineGetter__","__defineSetter__"]),Ko={evalAst(t,A){switch(t.type){case"BinaryExpression":case"LogicalExpression":return Ko.evalBinaryExpression(t,A);case"Compound":return Ko.evalCompound(t,A);case"ConditionalExpression":return Ko.evalConditionalExpression(t,A);case"Identifier":return Ko.evalIdentifier(t,A);case"Literal":return Ko.evalLiteral(t,A);case"MemberExpression":return Ko.evalMemberExpression(t,A);case"UnaryExpression":return Ko.evalUnaryExpression(t,A);case"ArrayExpression":return Ko.evalArrayExpression(t,A);case"CallExpression":return Ko.evalCallExpression(t,A);case"AssignmentExpression":return Ko.evalAssignmentExpression(t,A);default:throw SyntaxError("Unexpected expression",t)}},evalBinaryExpression(t,A){return{"||":(i,n)=>i||n(),"&&":(i,n)=>i&&n(),"|":(i,n)=>i|n(),"^":(i,n)=>i^n(),"&":(i,n)=>i&n(),"==":(i,n)=>i==n(),"!=":(i,n)=>i!=n(),"===":(i,n)=>i===n(),"!==":(i,n)=>i!==n(),"<":(i,n)=>i":(i,n)=>i>n(),"<=":(i,n)=>i<=n(),">=":(i,n)=>i>=n(),"<<":(i,n)=>i<>":(i,n)=>i>>n(),">>>":(i,n)=>i>>>n(),"+":(i,n)=>i+n(),"-":(i,n)=>i-n(),"*":(i,n)=>i*n(),"/":(i,n)=>i/n(),"%":(i,n)=>i%n()}[t.operator](Ko.evalAst(t.left,A),()=>Ko.evalAst(t.right,A))},evalCompound(t,A){let e;for(let i=0;i-Ko.evalAst(i,A),"!":i=>!Ko.evalAst(i,A),"~":i=>~Ko.evalAst(i,A),"+":i=>+Ko.evalAst(i,A),typeof:i=>typeof Ko.evalAst(i,A)}[t.operator](t.argument)},evalArrayExpression(t,A){return t.elements.map(e=>Ko.evalAst(e,A))},evalCallExpression(t,A){let e=t.arguments.map(n=>Ko.evalAst(n,A));return Ko.evalAst(t.callee,A)(...e)},evalAssignmentExpression(t,A){if(t.left.type!=="Identifier")throw SyntaxError("Invalid left-hand side in assignment");let e=t.left.name,i=Ko.evalAst(t.right,A);return A[e]=i,A[e]}},EU=class{constructor(A){this.code=A,this.ast=N2(this.code)}runInNewContext(A){let e=Object.assign(Object.create(null),A);return Ko.evalAst(this.ast,e)}};function yC(t,A){return t=t.slice(),t.push(A),t}function fU(t,A){return A=A.slice(),A.unshift(t),A}var QU=class extends Error{constructor(A){super('JSONPath should not be called with "new" (it prevents return of (unwrapped) scalar values)'),this.avoidNew=!0,this.value=A,this.name="NewError"}};function oo(t,A,e,i,n){if(!(this instanceof oo))try{return new oo(t,A,e,i,n)}catch(r){if(!r.avoidNew)throw r;return r.value}typeof t=="string"&&(n=i,i=e,e=A,A=t,t=null);let o=t&&typeof t=="object";if(t=t||{},this.json=t.json||e,this.path=t.path||A,this.resultType=t.resultType||"value",this.flatten=t.flatten||!1,this.wrap=Object.hasOwn(t,"wrap")?t.wrap:!0,this.sandbox=t.sandbox||{},this.eval=t.eval===void 0?"safe":t.eval,this.ignoreEvalErrors=typeof t.ignoreEvalErrors>"u"?!1:t.ignoreEvalErrors,this.parent=t.parent||null,this.parentProperty=t.parentProperty||null,this.callback=t.callback||i||null,this.otherTypeCallback=t.otherTypeCallback||n||function(){throw new TypeError("You must supply an otherTypeCallback callback option with the @other() operator.")},t.autostart!==!1){let r={path:o?t.path:A};o?"json"in t&&(r.json=t.json):r.json=e;let s=this.evaluate(r);if(!s||typeof s!="object")throw new QU(s);return s}}oo.prototype.evaluate=function(t,A,e,i){let n=this.parent,o=this.parentProperty,{flatten:r,wrap:s}=this;if(this.currResultType=this.resultType,this.currEval=this.eval,this.currSandbox=this.sandbox,e=e||this.callback,this.currOtherTypeCallback=i||this.otherTypeCallback,A=A||this.json,t=t||this.path,t&&typeof t=="object"&&!Array.isArray(t)){if(!t.path&&t.path!=="")throw new TypeError('You must supply a "path" property when providing an object argument to JSONPath.evaluate().');if(!Object.hasOwn(t,"json"))throw new TypeError('You must supply a "json" property when providing an object argument to JSONPath.evaluate().');({json:A}=t),r=Object.hasOwn(t,"flatten")?t.flatten:r,this.currResultType=Object.hasOwn(t,"resultType")?t.resultType:this.currResultType,this.currSandbox=Object.hasOwn(t,"sandbox")?t.sandbox:this.currSandbox,s=Object.hasOwn(t,"wrap")?t.wrap:s,this.currEval=Object.hasOwn(t,"eval")?t.eval:this.currEval,e=Object.hasOwn(t,"callback")?t.callback:e,this.currOtherTypeCallback=Object.hasOwn(t,"otherTypeCallback")?t.otherTypeCallback:this.currOtherTypeCallback,n=Object.hasOwn(t,"parent")?t.parent:n,o=Object.hasOwn(t,"parentProperty")?t.parentProperty:o,t=t.path}if(n=n||null,o=o||null,Array.isArray(t)&&(t=oo.toPathString(t)),!t&&t!==""||!A)return;let a=oo.toPathArray(t);a[0]==="$"&&a.length>1&&a.shift(),this._hasParentSelector=null;let c=this._trace(a,A,["$"],n,o,e).filter(function(l){return l&&!l.isParentSelector});return c.length?!s&&c.length===1&&!c[0].hasArrExpr?this._getPreferredOutput(c[0]):c.reduce((l,d)=>{let C=this._getPreferredOutput(d);return r&&Array.isArray(C)?l=l.concat(C):l.push(C),l},[]):s?[]:void 0};oo.prototype._getPreferredOutput=function(t){let A=this.currResultType;switch(A){case"all":{let e=Array.isArray(t.path)?t.path:oo.toPathArray(t.path);return t.pointer=oo.toPointer(e),t.path=typeof t.path=="string"?t.path:oo.toPathString(t.path),t}case"value":case"parent":case"parentProperty":return t[A];case"path":return oo.toPathString(t[A]);case"pointer":return oo.toPointer(t.path);default:throw new TypeError("Unknown result type")}};oo.prototype._handleCallback=function(t,A,e){if(A){let i=this._getPreferredOutput(t);t.path=typeof t.path=="string"?t.path:oo.toPathString(t.path),A(i,e,t)}};oo.prototype._trace=function(t,A,e,i,n,o,r,s){let a;if(!t.length)return a={path:e,value:A,parent:i,parentProperty:n,hasArrExpr:r},this._handleCallback(a,o,"value"),a;let c=t[0],l=t.slice(1),d=[];function C(I){Array.isArray(I)?I.forEach(u=>{d.push(u)}):d.push(I)}if((typeof c!="string"||s)&&A&&Object.hasOwn(A,c))C(this._trace(l,A[c],yC(e,c),A,c,o,r));else if(c==="*")this._walk(A,I=>{C(this._trace(l,A[I],yC(e,I),A,I,o,!0,!0))});else if(c==="..")C(this._trace(l,A,e,i,n,o,r)),this._walk(A,I=>{typeof A[I]=="object"&&C(this._trace(t.slice(),A[I],yC(e,I),A,I,o,!0))});else{if(c==="^")return this._hasParentSelector=!0,{path:e.slice(0,-1),expr:l,isParentSelector:!0};if(c==="~")return a={path:yC(e,c),value:n,parent:i,parentProperty:null},this._handleCallback(a,o,"property"),a;if(c==="$")C(this._trace(l,A,e,null,null,o,r));else if(/^(-?\d*):(-?\d*):?(\d*)$/u.test(c))C(this._slice(c,l,A,e,i,n,o));else if(c.indexOf("?(")===0){if(this.currEval===!1)throw new Error("Eval [?(expr)] prevented in JSONPath expression.");let I=c.replace(/^\?\((.*?)\)$/u,"$1"),u=/@.?([^?]*)[['](\??\(.*?\))(?!.\)\])[\]']/gu.exec(I);u?this._walk(A,h=>{let B=[u[2]],f=u[1]?A[h][u[1]]:A[h];this._trace(B,f,e,i,n,o,!0).length>0&&C(this._trace(l,A[h],yC(e,h),A,h,o,!0))}):this._walk(A,h=>{this._eval(I,A[h],h,e,i,n)&&C(this._trace(l,A[h],yC(e,h),A,h,o,!0))})}else if(c[0]==="("){if(this.currEval===!1)throw new Error("Eval [(expr)] prevented in JSONPath expression.");C(this._trace(fU(this._eval(c,A,e.at(-1),e.slice(0,-1),i,n),l),A,e,i,n,o,r))}else if(c[0]==="@"){let I=!1,u=c.slice(1,-2);switch(u){case"scalar":(!A||!["object","function"].includes(typeof A))&&(I=!0);break;case"boolean":case"string":case"undefined":case"function":typeof A===u&&(I=!0);break;case"integer":Number.isFinite(A)&&!(A%1)&&(I=!0);break;case"number":Number.isFinite(A)&&(I=!0);break;case"nonFinite":typeof A=="number"&&!Number.isFinite(A)&&(I=!0);break;case"object":A&&typeof A===u&&(I=!0);break;case"array":Array.isArray(A)&&(I=!0);break;case"other":I=this.currOtherTypeCallback(A,e,i,n);break;case"null":A===null&&(I=!0);break;default:throw new TypeError("Unknown value type "+u)}if(I)return a={path:e,value:A,parent:i,parentProperty:n},this._handleCallback(a,o,"value"),a}else if(c[0]==="`"&&A&&Object.hasOwn(A,c.slice(1))){let I=c.slice(1);C(this._trace(l,A[I],yC(e,I),A,I,o,r,!0))}else if(c.includes(",")){let I=c.split(",");for(let u of I)C(this._trace(fU(u,l),A,e,i,n,o,!0))}else!s&&A&&Object.hasOwn(A,c)&&C(this._trace(l,A[c],yC(e,c),A,c,o,r,!0))}if(this._hasParentSelector)for(let I=0;I{A(e)})};oo.prototype._slice=function(t,A,e,i,n,o,r){if(!Array.isArray(e))return;let s=e.length,a=t.split(":"),c=a[2]&&Number.parseInt(a[2])||1,l=a[0]&&Number.parseInt(a[0])||0,d=a[1]&&Number.parseInt(a[1])||s;l=l<0?Math.max(0,l+s):Math.min(s,l),d=d<0?Math.max(0,d+s):Math.min(s,d);let C=[];for(let I=l;I{C.push(h)});return C};oo.prototype._eval=function(t,A,e,i,n,o){this.currSandbox._$_parentProperty=o,this.currSandbox._$_parent=n,this.currSandbox._$_property=e,this.currSandbox._$_root=this.json,this.currSandbox._$_v=A;let r=t.includes("@path");r&&(this.currSandbox._$_path=oo.toPathString(i.concat([e])));let s=this.currEval+"Script:"+t;if(!oo.cache[s]){let a=t.replaceAll("@parentProperty","_$_parentProperty").replaceAll("@parent","_$_parent").replaceAll("@property","_$_property").replaceAll("@root","_$_root").replaceAll(/@([.\s)[])/gu,"_$_v$1");if(r&&(a=a.replaceAll("@path","_$_path")),this.currEval==="safe"||this.currEval===!0||this.currEval===void 0)oo.cache[s]=new this.safeVm.Script(a);else if(this.currEval==="native")oo.cache[s]=new this.vm.Script(a);else if(typeof this.currEval=="function"&&this.currEval.prototype&&Object.hasOwn(this.currEval.prototype,"runInNewContext")){let c=this.currEval;oo.cache[s]=new c(a)}else if(typeof this.currEval=="function")oo.cache[s]={runInNewContext:c=>this.currEval(a,c)};else throw new TypeError(`Unknown "eval" property "${this.currEval}"`)}try{return oo.cache[s].runInNewContext(this.currSandbox)}catch(a){if(this.ignoreEvalErrors)return!1;throw new Error("jsonPath: "+a.message+": "+t)}};oo.cache={};oo.toPathString=function(t){let A=t,e=A.length,i="$";for(let n=1;ntypeof A[c]=="function");let o=i.map(c=>A[c]);e=n.reduce((c,l)=>{let d=A[l].toString();return/function/u.test(d)||(d="function "+d),"var "+l+"="+d+";"+c},"")+e,!/(['"])use strict\1/u.test(e)&&!i.includes("arguments")&&(e="var arguments = undefined;"+e),e=e.replace(/;\s*$/u,"");let s=e.lastIndexOf(";"),a=s!==-1?e.slice(0,s+1)+" return "+e.slice(s+1):" return "+e;return new Function(...i,a)(...o)}};oo.prototype.vm={Script:mU};var wU=[],cae=[];(()=>{let t="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(A=>A?parseInt(A,36):1);for(let A=0,e=0;A>1;if(t=cae[i])A=i+1;else return!0;if(A==e)return!1}}function rae(t){return t>=127462&&t<=127487}var sae=8205;function lae(t,A,e=!0,i=!0){return(e?gae:HJe)(t,A,i)}function gae(t,A,e){if(A==t.length)return A;A&&dae(t.charCodeAt(A))&&Cae(t.charCodeAt(A-1))&&A--;let i=pU(t,A);for(A+=aae(i);A=0&&rae(pU(t,r));)o++,r-=2;if(o%2==0)break;A+=2}else break}return A}function HJe(t,A,e){for(;A>0;){let i=gae(t,A-2,e);if(i=56320&&t<57344}function Cae(t){return t>=55296&&t<56320}function aae(t){return t<65536?1:2}var Dn=class t{lineAt(A){if(A<0||A>this.length)throw new RangeError(`Invalid position ${A} in document of length ${this.length}`);return this.lineInner(A,!1,1,0)}line(A){if(A<1||A>this.lines)throw new RangeError(`Invalid line number ${A} in ${this.lines}-line document`);return this.lineInner(A,!0,1,0)}replace(A,e,i){[A,e]=sf(this,A,e);let n=[];return this.decompose(0,A,n,2),i.length&&i.decompose(0,i.length,n,3),this.decompose(e,this.length,n,1),nf.from(n,this.length-(e-A)+i.length)}append(A){return this.replace(this.length,this.length,A)}slice(A,e=this.length){[A,e]=sf(this,A,e);let i=[];return this.decompose(A,e,i,0),nf.from(i,e-A)}eq(A){if(A==this)return!0;if(A.length!=this.length||A.lines!=this.lines)return!1;let e=this.scanIdentical(A,1),i=this.length-this.scanIdentical(A,-1),n=new Lu(this),o=new Lu(A);for(let r=e,s=e;;){if(n.next(r),o.next(r),r=0,n.lineBreak!=o.lineBreak||n.done!=o.done||n.value!=o.value)return!1;if(s+=n.value.length,n.done||s>=i)return!0}}iter(A=1){return new Lu(this,A)}iterRange(A,e=this.length){return new r7(this,A,e)}iterLines(A,e){let i;if(A==null)i=this.iter();else{e==null&&(e=this.lines+1);let n=this.line(A).from;i=this.iterRange(n,Math.max(n,e==this.lines+1?this.length:e<=1?0:this.line(e-1).to))}return new s7(i)}toString(){return this.sliceString(0)}toJSON(){let A=[];return this.flatten(A),A}constructor(){}static of(A){if(A.length==0)throw new RangeError("A document must have at least one line");return A.length==1&&!A[0]?t.empty:A.length<=32?new Bl(A):nf.from(Bl.split(A,[]))}},Bl=class t extends Dn{constructor(A,e=zJe(A)){super(),this.text=A,this.length=e}get lines(){return this.text.length}get children(){return null}lineInner(A,e,i,n){for(let o=0;;o++){let r=this.text[o],s=n+r.length;if((e?i:s)>=A)return new vU(n,s,i,r);n=s+1,i++}}decompose(A,e,i,n){let o=A<=0&&e>=this.length?this:new t(Iae(this.text,A,e),Math.min(e,this.length)-Math.max(0,A));if(n&1){let r=i.pop(),s=o7(o.text,r.text.slice(),0,o.length);if(s.length<=32)i.push(new t(s,r.length+o.length));else{let a=s.length>>1;i.push(new t(s.slice(0,a)),new t(s.slice(a)))}}else i.push(o)}replace(A,e,i){if(!(i instanceof t))return super.replace(A,e,i);[A,e]=sf(this,A,e);let n=o7(this.text,o7(i.text,Iae(this.text,0,A)),e),o=this.length+i.length-(e-A);return n.length<=32?new t(n,o):nf.from(t.split(n,[]),o)}sliceString(A,e=this.length,i=` +`){[A,e]=sf(this,A,e);let n="";for(let o=0,r=0;o<=e&&rA&&r&&(n+=i),Ao&&(n+=s.slice(Math.max(0,A-o),e-o)),o=a+1}return n}flatten(A){for(let e of this.text)A.push(e)}scanIdentical(){return 0}static split(A,e){let i=[],n=-1;for(let o of A)i.push(o),n+=o.length+1,i.length==32&&(e.push(new t(i,n)),i=[],n=-1);return n>-1&&e.push(new t(i,n)),e}},nf=class t extends Dn{constructor(A,e){super(),this.children=A,this.length=e,this.lines=0;for(let i of A)this.lines+=i.lines}lineInner(A,e,i,n){for(let o=0;;o++){let r=this.children[o],s=n+r.length,a=i+r.lines-1;if((e?a:s)>=A)return r.lineInner(A,e,i,n);n=s+1,i=a+1}}decompose(A,e,i,n){for(let o=0,r=0;r<=e&&o=r){let c=n&((r<=A?1:0)|(a>=e?2:0));r>=A&&a<=e&&!c?i.push(s):s.decompose(A-r,e-r,i,c)}r=a+1}}replace(A,e,i){if([A,e]=sf(this,A,e),i.lines=o&&e<=s){let a=r.replace(A-o,e-o,i),c=this.lines-r.lines+a.lines;if(a.lines>4&&a.lines>c>>6){let l=this.children.slice();return l[n]=a,new t(l,this.length-(e-A)+i.length)}return super.replace(o,s,a)}o=s+1}return super.replace(A,e,i)}sliceString(A,e=this.length,i=` +`){[A,e]=sf(this,A,e);let n="";for(let o=0,r=0;oA&&o&&(n+=i),Ar&&(n+=s.sliceString(A-r,e-r,i)),r=a+1}return n}flatten(A){for(let e of this.children)e.flatten(A)}scanIdentical(A,e){if(!(A instanceof t))return 0;let i=0,[n,o,r,s]=e>0?[0,0,this.children.length,A.children.length]:[this.children.length-1,A.children.length-1,-1,-1];for(;;n+=e,o+=e){if(n==r||o==s)return i;let a=this.children[n],c=A.children[o];if(a!=c)return i+a.scanIdentical(c,e);i+=a.length+1}}static from(A,e=A.reduce((i,n)=>i+n.length+1,-1)){let i=0;for(let I of A)i+=I.lines;if(i<32){let I=[];for(let u of A)u.flatten(I);return new Bl(I,e)}let n=Math.max(32,i>>5),o=n<<1,r=n>>1,s=[],a=0,c=-1,l=[];function d(I){let u;if(I.lines>o&&I instanceof t)for(let h of I.children)d(h);else I.lines>r&&(a>r||!a)?(C(),s.push(I)):I instanceof Bl&&a&&(u=l[l.length-1])instanceof Bl&&I.lines+u.lines<=32?(a+=I.lines,c+=I.length+1,l[l.length-1]=new Bl(u.text.concat(I.text),u.length+1+I.length)):(a+I.lines>n&&C(),a+=I.lines,c+=I.length+1,l.push(I))}function C(){a!=0&&(s.push(l.length==1?l[0]:t.from(l,c)),c=-1,a=l.length=0)}for(let I of A)d(I);return C(),s.length==1?s[0]:new t(s,e)}};Dn.empty=new Bl([""],0);function zJe(t){let A=-1;for(let e of t)A+=e.length+1;return A}function o7(t,A,e=0,i=1e9){for(let n=0,o=0,r=!0;o=e&&(a>i&&(s=s.slice(0,i-n)),n0?1:(A instanceof Bl?A.text.length:A.children.length)<<1]}nextInner(A,e){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,n=this.nodes[i],o=this.offsets[i],r=o>>1,s=n instanceof Bl?n.text.length:n.children.length;if(r==(e>0?s:0)){if(i==0)return this.done=!0,this.value="",this;e>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((o&1)==(e>0?0:1)){if(this.offsets[i]+=e,A==0)return this.lineBreak=!0,this.value=` +`,this;A--}else if(n instanceof Bl){let a=n.text[r+(e<0?-1:0)];if(this.offsets[i]+=e,a.length>Math.max(0,A))return this.value=A==0?a:e>0?a.slice(A):a.slice(0,a.length-A),this;A-=a.length}else{let a=n.children[r+(e<0?-1:0)];A>a.length?(A-=a.length,this.offsets[i]+=e):(e<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(e>0?1:(a instanceof Bl?a.text.length:a.children.length)<<1))}}}next(A=0){return A<0&&(this.nextInner(-A,-this.dir),A=this.value.length),this.nextInner(A,this.dir)}},r7=class{constructor(A,e,i){this.value="",this.done=!1,this.cursor=new Lu(A,e>i?-1:1),this.pos=e>i?A.length:0,this.from=Math.min(e,i),this.to=Math.max(e,i)}nextInner(A,e){if(e<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;A+=Math.max(0,e<0?this.pos-this.to:this.from-this.pos);let i=e<0?this.pos-this.from:this.to-this.pos;A>i&&(A=i),i-=A;let{value:n}=this.cursor.next(A);return this.pos+=(n.length+A)*e,this.value=n.length<=i?n:e<0?n.slice(n.length-i):n.slice(0,i),this.done=!this.value,this}next(A=0){return A<0?A=Math.max(A,this.from-this.pos):A>0&&(A=Math.min(A,this.to-this.pos)),this.nextInner(A,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},s7=class{constructor(A){this.inner=A,this.afterBreak=!0,this.value="",this.done=!1}next(A=0){let{done:e,lineBreak:i,value:n}=this.inner.next(A);return e&&this.afterBreak?(this.value="",this.afterBreak=!1):e?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(Dn.prototype[Symbol.iterator]=function(){return this.iter()},Lu.prototype[Symbol.iterator]=r7.prototype[Symbol.iterator]=s7.prototype[Symbol.iterator]=function(){return this});var vU=class{constructor(A,e,i,n){this.from=A,this.to=e,this.number=i,this.text=n}get length(){return this.to-this.from}};function sf(t,A,e){return A=Math.max(0,Math.min(t.length,A)),[A,Math.max(A,Math.min(t.length,e))]}function Cs(t,A,e=!0,i=!0){return lae(t,A,e,i)}function PJe(t){return t>=56320&&t<57344}function jJe(t){return t>=55296&&t<56320}function da(t,A){let e=t.charCodeAt(A);if(!jJe(e)||A+1==t.length)return e;let i=t.charCodeAt(A+1);return PJe(i)?(e-55296<<10)+(i-56320)+65536:e}function F3(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10)+55296,(t&1023)+56320))}function El(t){return t<65536?1:2}var bU=/\r\n?|\n/,ca=function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t}(ca||(ca={})),vC=class t{constructor(A){this.sections=A}get length(){let A=0;for(let e=0;eA)return o+(A-n);o+=s}else{if(i!=ca.Simple&&c>=A&&(i==ca.TrackDel&&nA||i==ca.TrackBefore&&nA))return null;if(c>A||c==A&&e<0&&!s)return A==n||e<0?o:o+a;o+=a}n=c}if(A>n)throw new RangeError(`Position ${A} is out of range for changeset of length ${n}`);return o}touchesRange(A,e=A){for(let i=0,n=0;i=0&&n<=e&&s>=A)return ne?"cover":!0;n=s}return!1}toString(){let A="";for(let e=0;e=0?":"+n:"")}return A}toJSON(){return this.sections}static fromJSON(A){if(!Array.isArray(A)||A.length%2||A.some(e=>typeof e!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new t(A)}static create(A){return new t(A)}},la=class t extends vC{constructor(A,e){super(A),this.inserted=e}apply(A){if(this.length!=A.length)throw new RangeError("Applying change set to a document with the wrong length");return MU(this,(e,i,n,o,r)=>A=A.replace(n,n+(i-e),r),!1),A}mapDesc(A,e=!1){return SU(this,A,e,!0)}invert(A){let e=this.sections.slice(),i=[];for(let n=0,o=0;n=0){e[n]=s,e[n+1]=r;let a=n>>1;for(;i.length0&&DC(i,e,o.text),o.forward(l),s+=l}let c=A[r++];for(;s>1].toJSON()))}return A}static of(A,e,i){let n=[],o=[],r=0,s=null;function a(l=!1){if(!l&&!n.length)return;rC||d<0||C>e)throw new RangeError(`Invalid change range ${d} to ${C} (in doc of length ${e})`);let u=I?typeof I=="string"?Dn.of(I.split(i||bU)):I:Dn.empty,h=u.length;if(d==C&&h==0)return;dr&&Ra(n,d-r,-1),Ra(n,C-d,h),DC(o,n,u),r=C}}return c(A),a(!s),s}static empty(A){return new t(A?[A,-1]:[],[])}static fromJSON(A){if(!Array.isArray(A))throw new RangeError("Invalid JSON representation of ChangeSet");let e=[],i=[];for(let n=0;ns&&typeof r!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(o.length==1)e.push(o[0],0);else{for(;i.length=0&&e<=0&&e==t[n+1]?t[n]+=A:n>=0&&A==0&&t[n]==0?t[n+1]+=e:i?(t[n]+=A,t[n+1]+=e):t.push(A,e)}function DC(t,A,e){if(e.length==0)return;let i=A.length-2>>1;if(i>1])),!(e||r==t.sections.length||t.sections[r+1]<0);)s=t.sections[r++],a=t.sections[r++];A(n,c,o,l,d),n=c,o=l}}}function SU(t,A,e,i=!1){let n=[],o=i?[]:null,r=new Fu(t),s=new Fu(A);for(let a=-1;;){if(r.done&&s.len||s.done&&r.len)throw new Error("Mismatched change set lengths");if(r.ins==-1&&s.ins==-1){let c=Math.min(r.len,s.len);Ra(n,c,-1),r.forward(c),s.forward(c)}else if(s.ins>=0&&(r.ins<0||a==r.i||r.off==0&&(s.len=0&&a=0){let c=0,l=r.len;for(;l;)if(s.ins==-1){let d=Math.min(l,s.len);c+=d,l-=d,s.forward(d)}else if(s.ins==0&&s.lena||r.ins>=0&&r.len>a)&&(s||i.length>c),o.forward2(a),r.forward(a)}}}}var Fu=class{constructor(A){this.set=A,this.i=0,this.next()}next(){let{sections:A}=this.set;this.i>1;return e>=A.length?Dn.empty:A[e]}textBit(A){let{inserted:e}=this.set,i=this.i-2>>1;return i>=e.length&&!A?Dn.empty:e[i].slice(this.off,A==null?void 0:this.off+A)}forward(A){A==this.len?this.next():(this.len-=A,this.off+=A)}forward2(A){this.ins==-1?this.forward(A):A==this.ins?this.next():(this.ins-=A,this.off+=A)}},tf=class t{constructor(A,e,i){this.from=A,this.to=e,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let A=this.flags&7;return A==7?null:A}get goalColumn(){let A=this.flags>>6;return A==16777215?void 0:A}map(A,e=-1){let i,n;return this.empty?i=n=A.mapPos(this.from,e):(i=A.mapPos(this.from,1),n=A.mapPos(this.to,-1)),i==this.from&&n==this.to?this:new t(i,n,this.flags)}extend(A,e=A){if(A<=this.anchor&&e>=this.anchor)return fA.range(A,e);let i=Math.abs(A-this.anchor)>Math.abs(e-this.anchor)?A:e;return fA.range(this.anchor,i)}eq(A,e=!1){return this.anchor==A.anchor&&this.head==A.head&&(!e||!this.empty||this.assoc==A.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(A){if(!A||typeof A.anchor!="number"||typeof A.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return fA.range(A.anchor,A.head)}static create(A,e,i){return new t(A,e,i)}},fA=class t{constructor(A,e){this.ranges=A,this.mainIndex=e}map(A,e=-1){return A.empty?this:t.create(this.ranges.map(i=>i.map(A,e)),this.mainIndex)}eq(A,e=!1){if(this.ranges.length!=A.ranges.length||this.mainIndex!=A.mainIndex)return!1;for(let i=0;iA.toJSON()),main:this.mainIndex}}static fromJSON(A){if(!A||!Array.isArray(A.ranges)||typeof A.main!="number"||A.main>=A.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new t(A.ranges.map(e=>tf.fromJSON(e)),A.main)}static single(A,e=A){return new t([t.range(A,e)],0)}static create(A,e=0){if(A.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,n=0;nA?8:0)|o)}static normalized(A,e=0){let i=A[e];A.sort((n,o)=>n.from-o.from),e=A.indexOf(i);for(let n=1;no.head?t.range(a,s):t.range(s,a))}}return new t(A,e)}};function pae(t,A){for(let e of t.ranges)if(e.to>A)throw new RangeError("Selection points outside of document")}var KU=0,rt=class t{constructor(A,e,i,n,o){this.combine=A,this.compareInput=e,this.compare=i,this.isStatic=n,this.id=KU++,this.default=A([]),this.extensions=typeof o=="function"?o(this):o}get reader(){return this}static define(A={}){return new t(A.combine||(e=>e),A.compareInput||((e,i)=>e===i),A.compare||(A.combine?(e,i)=>e===i:UU),!!A.static,A.enables)}of(A){return new of([],this,0,A)}compute(A,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new of(A,this,1,e)}computeN(A,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new of(A,this,2,e)}from(A,e){return e||(e=i=>i),this.compute([A],i=>e(i.field(A)))}};function UU(t,A){return t==A||t.length==A.length&&t.every((e,i)=>e===A[i])}var of=class{constructor(A,e,i,n){this.dependencies=A,this.facet=e,this.type=i,this.value=n,this.id=KU++}dynamicSlot(A){var e;let i=this.value,n=this.facet.compareInput,o=this.id,r=A[o]>>1,s=this.type==2,a=!1,c=!1,l=[];for(let d of this.dependencies)d=="doc"?a=!0:d=="selection"?c=!0:(((e=A[d.id])!==null&&e!==void 0?e:1)&1)==0&&l.push(A[d.id]);return{create(d){return d.values[r]=i(d),1},update(d,C){if(a&&C.docChanged||c&&(C.docChanged||C.selection)||kU(d,l)){let I=i(d);if(s?!uae(I,d.values[r],n):!n(I,d.values[r]))return d.values[r]=I,1}return 0},reconfigure:(d,C)=>{let I,u=C.config.address[o];if(u!=null){let h=l7(C,u);if(this.dependencies.every(B=>B instanceof rt?C.facet(B)===d.facet(B):B instanceof _r?C.field(B,!1)==d.field(B,!1):!0)||(s?uae(I=i(d),h,n):n(I=i(d),h)))return d.values[r]=h,0}else I=i(d);return d.values[r]=I,1}}}};function uae(t,A,e){if(t.length!=A.length)return!1;for(let i=0;it[a.id]),n=e.map(a=>a.type),o=i.filter(a=>!(a&1)),r=t[A.id]>>1;function s(a){let c=[];for(let l=0;li===n),A);return A.provide&&(e.provides=A.provide(e)),e}create(A){let e=A.facet(t7).find(i=>i.field==this);return(e?.create||this.createF)(A)}slot(A){let e=A[this.id]>>1;return{create:i=>(i.values[e]=this.create(i),1),update:(i,n)=>{let o=i.values[e],r=this.updateF(o,n);return this.compareF(o,r)?0:(i.values[e]=r,1)},reconfigure:(i,n)=>{let o=i.facet(t7),r=n.facet(t7),s;return(s=o.find(a=>a.field==this))&&s!=r.find(a=>a.field==this)?(i.values[e]=s.create(i),1):n.config.address[this.id]!=null?(i.values[e]=n.field(this),0):(i.values[e]=this.create(i),1)}}}init(A){return[this,t7.of({field:this,create:A})]}get extension(){return this}},Ru={lowest:4,low:3,default:2,high:1,highest:0};function x3(t){return A=>new a7(A,t)}var Hg={highest:x3(Ru.highest),high:x3(Ru.high),default:x3(Ru.default),low:x3(Ru.low),lowest:x3(Ru.lowest)},a7=class{constructor(A,e){this.inner=A,this.prec=e}},hd=class t{of(A){return new R3(this,A)}reconfigure(A){return t.reconfigure.of({compartment:this,extension:A})}get(A){return A.config.compartments.get(this)}},R3=class{constructor(A,e){this.compartment=A,this.inner=e}},c7=class t{constructor(A,e,i,n,o,r){for(this.base=A,this.compartments=e,this.dynamicSlots=i,this.address=n,this.staticValues=o,this.facets=r,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(A,e,i){let n=[],o=Object.create(null),r=new Map;for(let C of qJe(A,e,r))C instanceof _r?n.push(C):(o[C.facet.id]||(o[C.facet.id]=[])).push(C);let s=Object.create(null),a=[],c=[];for(let C of n)s[C.id]=c.length<<1,c.push(I=>C.slot(I));let l=i?.config.facets;for(let C in o){let I=o[C],u=I[0].facet,h=l&&l[C]||[];if(I.every(B=>B.type==0))if(s[u.id]=a.length<<1|1,UU(h,I))a.push(i.facet(u));else{let B=u.combine(I.map(f=>f.value));a.push(i&&u.compare(B,i.facet(u))?i.facet(u):B)}else{for(let B of I)B.type==0?(s[B.id]=a.length<<1|1,a.push(B.value)):(s[B.id]=c.length<<1,c.push(f=>B.dynamicSlot(f)));s[u.id]=c.length<<1,c.push(B=>VJe(B,u,I))}}let d=c.map(C=>C(s));return new t(A,r,d,s,a,o)}};function qJe(t,A,e){let i=[[],[],[],[],[]],n=new Map;function o(r,s){let a=n.get(r);if(a!=null){if(a<=s)return;let c=i[a].indexOf(r);c>-1&&i[a].splice(c,1),r instanceof R3&&e.delete(r.compartment)}if(n.set(r,s),Array.isArray(r))for(let c of r)o(c,s);else if(r instanceof R3){if(e.has(r.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=A.get(r.compartment)||r.inner;e.set(r.compartment,c),o(c,s)}else if(r instanceof a7)o(r.inner,r.prec);else if(r instanceof _r)i[s].push(r),r.provides&&o(r.provides,s);else if(r instanceof of)i[s].push(r),r.facet.extensions&&o(r.facet.extensions,Ru.default);else{let c=r.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${r}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);o(c,s)}}return o(t,Ru.default),i.reduce((r,s)=>r.concat(s))}function _3(t,A){if(A&1)return 2;let e=A>>1,i=t.status[e];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;t.status[e]=4;let n=t.computeSlot(t,t.config.dynamicSlots[e]);return t.status[e]=2|n}function l7(t,A){return A&1?t.config.staticValues[A>>1]:t.values[A>>1]}var hae=rt.define(),yU=rt.define({combine:t=>t.some(A=>A),static:!0}),wae=rt.define({combine:t=>t.length?t[0]:void 0,static:!0}),yae=rt.define(),Dae=rt.define(),vae=rt.define(),Bae=rt.define({combine:t=>t.length?t[0]:!1}),Fc=class{constructor(A,e){this.type=A,this.value=e}static define(){return new xU}},xU=class{of(A){return new Fc(this,A)}},_U=class{constructor(A){this.map=A}of(A){return new tn(this,A)}},tn=(()=>{class t{constructor(e,i){this.type=e,this.value=i}map(e){let i=this.type.map(this.value,e);return i===void 0?void 0:i==this.value?this:new t(this.type,i)}is(e){return this.type==e}static define(e={}){return new _U(e.map||(i=>i))}static mapEffects(e,i){if(!e.length)return e;let n=[];for(let o of e){let r=o.map(i);r&&n.push(r)}return n}}return t.reconfigure=t.define(),t.appendConfig=t.define(),t})(),ud=(()=>{class t{constructor(e,i,n,o,r,s){this.startState=e,this.changes=i,this.selection=n,this.effects=o,this.annotations=r,this.scrollIntoView=s,this._doc=null,this._state=null,n&&pae(n,i.newLength),r.some(a=>a.type==t.time)||(this.annotations=r.concat(t.time.of(Date.now())))}static create(e,i,n,o,r,s){return new t(e,i,n,o,r,s)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let i of this.annotations)if(i.type==e)return i.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let i=this.annotation(t.userEvent);return!!(i&&(i==e||i.length>e.length&&i.slice(0,e.length)==e&&i[e.length]=="."))}}return t.time=Fc.define(),t.userEvent=Fc.define(),t.addToHistory=Fc.define(),t.remote=Fc.define(),t})();function WJe(t,A){let e=[];for(let i=0,n=0;;){let o,r;if(i=t[i]))o=t[i++],r=t[i++];else if(n=0;n--){let o=i[n](t);o instanceof ud?t=o:Array.isArray(o)&&o.length==1&&o[0]instanceof ud?t=o[0]:t=Mae(A,rf(o),!1)}return t}function XJe(t){let A=t.startState,e=A.facet(vae),i=t;for(let n=e.length-1;n>=0;n--){let o=e[n](t);o&&Object.keys(o).length&&(i=bae(i,RU(A,o,t.changes.newLength),!0))}return i==t?t:ud.create(A,t.changes,t.selection,i.effects,i.annotations,i.scrollIntoView)}var $Je=[];function rf(t){return t==null?$Je:Array.isArray(t)?t:[t]}var Uo=function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t}(Uo||(Uo={})),eYe=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,NU;try{NU=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function AYe(t){if(NU)return NU.test(t);for(let A=0;A"\x80"&&(e.toUpperCase()!=e.toLowerCase()||eYe.test(e)))return!0}return!1}function tYe(t){return A=>{if(!/\S/.test(A))return Uo.Space;if(AYe(A))return Uo.Word;for(let e=0;e-1)return Uo.Word;return Uo.Other}}var ss=(()=>{class t{constructor(e,i,n,o,r,s){this.config=e,this.doc=i,this.selection=n,this.values=o,this.status=e.statusTemplate.slice(),this.computeSlot=r,s&&(s._state=this);for(let a=0;ao.set(l,c)),i=null),o.set(a.value.compartment,a.value.extension)):a.is(tn.reconfigure)?(i=null,n=a.value):a.is(tn.appendConfig)&&(i=null,n=rf(n).concat(a.value));let r;i?r=e.startState.values.slice():(i=c7.resolve(n,o,this),r=new t(i,this.doc,this.selection,i.dynamicSlots.map(()=>null),(c,l)=>l.reconfigure(c,this),null).values);let s=e.startState.facet(yU)?e.newSelection:e.newSelection.asSingle();new t(i,e.newDoc,s,r,(a,c)=>c.update(a,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:e},range:fA.cursor(i.from+e.length)}))}changeByRange(e){let i=this.selection,n=e(i.ranges[0]),o=this.changes(n.changes),r=[n.range],s=rf(n.effects);for(let a=1;as.spec.fromJSON(a,c)))}}return t.create({doc:e.doc,selection:fA.fromJSON(e.selection),extensions:i.extensions?o.concat([i.extensions]):o})}static create(e={}){let i=c7.resolve(e.extensions||[],new Map),n=e.doc instanceof Dn?e.doc:Dn.of((e.doc||"").split(i.staticFacet(t.lineSeparator)||bU)),o=e.selection?e.selection instanceof fA?e.selection:fA.single(e.selection.anchor,e.selection.head):fA.single(0);return pae(o,n.length),i.staticFacet(yU)||(o=o.asSingle()),new t(i,n,o,i.dynamicSlots.map(()=>null),(r,s)=>s.create(r),null)}get tabSize(){return this.facet(t.tabSize)}get lineBreak(){return this.facet(t.lineSeparator)||` +`}get readOnly(){return this.facet(Bae)}phrase(e,...i){for(let n of this.facet(t.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return i.length&&(e=e.replace(/\$(\$|\d*)/g,(n,o)=>{if(o=="$")return"$";let r=+(o||1);return!r||r>i.length?n:i[r-1]})),e}languageDataAt(e,i,n=-1){let o=[];for(let r of this.facet(hae))for(let s of r(this,i,n))Object.prototype.hasOwnProperty.call(s,e)&&o.push(s[e]);return o}charCategorizer(e){return tYe(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:i,from:n,length:o}=this.doc.lineAt(e),r=this.charCategorizer(e),s=e-n,a=e-n;for(;s>0;){let c=Cs(i,s,!1);if(r(i.slice(c,s))!=Uo.Word)break;s=c}for(;aA.length?A[0]:4}),t.lineSeparator=wae,t.readOnly=Bae,t.phrases=rt.define({compare(A,e){let i=Object.keys(A),n=Object.keys(e);return i.length==n.length&&i.every(o=>A[o]==e[o])}}),t.languageData=hae,t.changeFilter=yae,t.transactionFilter=Dae,t.transactionExtender=vae,t})();hd.reconfigure=tn.define();function Os(t,A,e={}){let i={};for(let n of t)for(let o of Object.keys(n)){let r=n[o],s=i[o];if(s===void 0)i[o]=r;else if(!(s===r||r===void 0))if(Object.hasOwnProperty.call(e,o))i[o]=e[o](s,r);else throw new Error("Config merge conflict for field "+o)}for(let n in A)i[n]===void 0&&(i[n]=A[n]);return i}var Yg=class{eq(A){return this==A}range(A,e=A){return N3.create(A,e,this)}};Yg.prototype.startSide=Yg.prototype.endSide=0;Yg.prototype.point=!1;Yg.prototype.mapMode=ca.TrackDel;var N3=class t{constructor(A,e,i){this.from=A,this.to=e,this.value=i}static create(A,e,i){return new t(A,e,i)}};function LU(t,A){return t.from-A.from||t.value.startSide-A.value.startSide}var FU=class t{constructor(A,e,i,n){this.from=A,this.to=e,this.value=i,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(A,e,i,n=0){let o=i?this.to:this.from;for(let r=n,s=o.length;;){if(r==s)return r;let a=r+s>>1,c=o[a]-A||(i?this.value[a].endSide:this.value[a].startSide)-e;if(a==r)return c>=0?r:s;c>=0?s=a:r=a+1}}between(A,e,i,n){for(let o=this.findIndex(e,-1e9,!0),r=this.findIndex(i,1e9,!1,o);oI||C==I&&c.startSide>0&&c.endSide<=0)continue;(I-C||c.endSide-c.startSide)<0||(r<0&&(r=C),c.point&&(s=Math.max(s,I-C)),i.push(c),n.push(C-r),o.push(I-r))}return{mapped:i.length?new t(n,o,i,s):null,pos:r}}},To=(()=>{class t{constructor(e,i,n,o){this.chunkPos=e,this.chunk=i,this.nextLayer=n,this.maxPoint=o}static create(e,i,n,o){return new t(e,i,n,o)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let i of this.chunk)e+=i.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:i=[],sort:n=!1,filterFrom:o=0,filterTo:r=this.length}=e,s=e.filter;if(i.length==0&&!s)return this;if(n&&(i=i.slice().sort(LU)),this.isEmpty)return i.length?t.of(i):this;let a=new g7(this,null,-1).goto(0),c=0,l=[],d=new ga;for(;a.value||c=0){let C=i[c++];d.addInner(C.from,C.to,C.value)||l.push(C)}else a.rangeIndex==1&&a.chunkIndexthis.chunkEnd(a.chunkIndex)||ra.to||r=r&&e<=r+s.length&&s.between(r,e-r,i-r,n)===!1)return}this.nextLayer.between(e,i,n)}}iter(e=0){return L3.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,i=0){return L3.from(e).goto(i)}static compare(e,i,n,o,r=-1){let s=e.filter(C=>C.maxPoint>0||!C.isEmpty&&C.maxPoint>=r),a=i.filter(C=>C.maxPoint>0||!C.isEmpty&&C.maxPoint>=r),c=Eae(s,a,n),l=new Nu(s,c,r),d=new Nu(a,c,r);n.iterGaps((C,I,u)=>fae(l,C,d,I,u,o)),n.empty&&n.length==0&&fae(l,0,d,0,0,o)}static eq(e,i,n=0,o){o==null&&(o=999999999);let r=e.filter(d=>!d.isEmpty&&i.indexOf(d)<0),s=i.filter(d=>!d.isEmpty&&e.indexOf(d)<0);if(r.length!=s.length)return!1;if(!r.length)return!0;let a=Eae(r,s),c=new Nu(r,a,0).goto(n),l=new Nu(s,a,0).goto(n);for(;;){if(c.to!=l.to||!GU(c.active,l.active)||c.point&&(!l.point||!c.point.eq(l.point)))return!1;if(c.to>o)return!0;c.next(),l.next()}}static spans(e,i,n,o,r=-1){let s=new Nu(e,null,r).goto(i),a=i,c=s.openStart;for(;;){let l=Math.min(s.to,n);if(s.point){let d=s.activeForPoint(s.to),C=s.pointFroma&&(o.span(a,l,s.active,c),c=s.openEnd(l));if(s.to>n)return c+(s.point&&s.to>n?1:0);a=s.to,s.next()}}static of(e,i=!1){let n=new ga;for(let o of e instanceof N3?[e]:i?iYe(e):e)n.add(o.from,o.to,o.value);return n.finish()}static join(e){if(!e.length)return t.empty;let i=e[e.length-1];for(let n=e.length-2;n>=0;n--)for(let o=e[n];o!=t.empty;o=o.nextLayer)i=new t(o.chunkPos,o.chunk,i,Math.max(o.maxPoint,i.maxPoint));return i}}return t.empty=new t([],[],null,-1),t})();function iYe(t){if(t.length>1)for(let A=t[0],e=1;e0)return t.slice().sort(LU);A=i}return t}To.empty.nextLayer=To.empty;var ga=class t{finishChunk(A){this.chunks.push(new FU(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,A&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(A,e,i){this.addInner(A,e,i)||(this.nextLayer||(this.nextLayer=new t)).add(A,e,i)}addInner(A,e,i){let n=A-this.lastTo||i.startSide-this.last.endSide;if(n<=0&&(A-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return n<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=A),this.from.push(A-this.chunkStart),this.to.push(e-this.chunkStart),this.last=i,this.lastFrom=A,this.lastTo=e,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,e-A)),!0)}addChunk(A,e){if((A-this.lastTo||e.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,e.maxPoint),this.chunks.push(e),this.chunkPos.push(A);let i=e.value.length-1;return this.last=e.value[i],this.lastFrom=e.from[i]+A,this.lastTo=e.to[i]+A,!0}finish(){return this.finishInner(To.empty)}finishInner(A){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return A;let e=To.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(A):A,this.setMaxPoint);return this.from=null,e}};function Eae(t,A,e){let i=new Map;for(let o of t)for(let r=0;r=this.minPoint)break}}setRangeIndex(A){if(A==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&n.push(new g7(r,e,i,o));return n.length==1?n[0]:new t(n)}get startSide(){return this.value?this.value.startSide:0}goto(A,e=-1e9){for(let i of this.heap)i.goto(A,e);for(let i=this.heap.length>>1;i>=0;i--)DU(this.heap,i);return this.next(),this}forward(A,e){for(let i of this.heap)i.forward(A,e);for(let i=this.heap.length>>1;i>=0;i--)DU(this.heap,i);(this.to-A||this.value.endSide-e)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let A=this.heap[0];this.from=A.from,this.to=A.to,this.value=A.value,this.rank=A.rank,A.value&&A.next(),DU(this.heap,0)}}};function DU(t,A){for(let e=t[A];;){let i=(A<<1)+1;if(i>=t.length)break;let n=t[i];if(i+1=0&&(n=t[i+1],i++),e.compare(n)<0)break;t[i]=e,t[A]=n,A=i}}var Nu=class{constructor(A,e,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=L3.from(A,e,i)}goto(A,e=-1e9){return this.cursor.goto(A,e),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=A,this.endSide=e,this.openStart=-1,this.next(),this}forward(A,e){for(;this.minActive>-1&&(this.activeTo[this.minActive]-A||this.active[this.minActive].endSide-e)<0;)this.removeActive(this.minActive);this.cursor.forward(A,e)}removeActive(A){i7(this.active,A),i7(this.activeTo,A),i7(this.activeRank,A),this.minActive=Qae(this.active,this.activeTo)}addActive(A){let e=0,{value:i,to:n,rank:o}=this.cursor;for(;e0;)e++;n7(this.active,e,i),n7(this.activeTo,e,n),n7(this.activeRank,e,o),A&&n7(A,e,this.cursor.from),this.minActive=Qae(this.active,this.activeTo)}next(){let A=this.to,e=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let n=this.minActive;if(n>-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>A){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),i&&i7(i,n)}else if(this.cursor.value)if(this.cursor.from>A){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let o=this.cursor.value;if(!o.point)this.addActive(i),this.cursor.next();else if(e&&this.cursor.to==this.to&&this.cursor.from=0&&i[n]=0&&!(this.activeRank[i]A||this.activeTo[i]==A&&this.active[i].endSide>=this.point.endSide)&&e.push(this.active[i]);return e.reverse()}openEnd(A){let e=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>A;i--)e++;return e}};function fae(t,A,e,i,n,o){t.goto(A),e.goto(i);let r=i+n,s=i,a=i-A;for(;;){let c=t.to+a-e.to,l=c||t.endSide-e.endSide,d=l<0?t.to+a:e.to,C=Math.min(d,r);if(t.point||e.point?t.point&&e.point&&(t.point==e.point||t.point.eq(e.point))&&GU(t.activeForPoint(t.to),e.activeForPoint(e.to))||o.comparePoint(s,C,t.point,e.point):C>s&&!GU(t.active,e.active)&&o.compareRange(s,C,t.active,e.active),d>r)break;(c||t.openEnd!=e.openEnd)&&o.boundChange&&o.boundChange(d),s=d,l<=0&&t.next(),l>=0&&e.next()}}function GU(t,A){if(t.length!=A.length)return!1;for(let e=0;e=A;i--)t[i+1]=t[i];t[A]=e}function Qae(t,A){let e=-1,i=1e9;for(let n=0;n=A)return n;if(n==t.length)break;o+=t.charCodeAt(n)==9?e-o%e:1,n=Cs(t,n)}return i===!0?-1:t.length}var TU="\u037C",Sae=typeof Symbol>"u"?"__"+TU:Symbol.for(TU),OU=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),kae=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},Ag=class{constructor(A,e){this.rules=[];let{finish:i}=e||{};function n(r){return/^@/.test(r)?[r]:r.split(/,\s*/)}function o(r,s,a,c){let l=[],d=/^@(\w+)\b/.exec(r[0]),C=d&&d[1]=="keyframes";if(d&&s==null)return a.push(r[0]+";");for(let I in s){let u=s[I];if(/&/.test(I))o(I.split(/,\s*/).map(h=>r.map(B=>h.replace(/&/,B))).reduce((h,B)=>h.concat(B)),u,a);else if(u&&typeof u=="object"){if(!d)throw new RangeError("The value of a property ("+I+") should be a primitive value.");o(n(I),u,l,C)}else u!=null&&l.push(I.replace(/_.*/,"").replace(/[A-Z]/g,h=>"-"+h.toLowerCase())+": "+u+";")}(l.length||C)&&a.push((i&&!d&&!c?r.map(i):r).join(", ")+" {"+l.join(" ")+"}")}for(let r in A)o(n(r),A[r],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let A=kae[Sae]||1;return kae[Sae]=A+1,TU+A.toString(36)}static mount(A,e,i){let n=A[OU],o=i&&i.nonce;n?o&&n.setNonce(o):n=new JU(A,o),n.mount(Array.isArray(e)?e:[e],A)}},xae=new Map,JU=class{constructor(A,e){let i=A.ownerDocument||A,n=i.defaultView;if(!A.head&&A.adoptedStyleSheets&&n.CSSStyleSheet){let o=xae.get(i);if(o)return A[OU]=o;this.sheet=new n.CSSStyleSheet,xae.set(i,this)}else this.styleTag=i.createElement("style"),e&&this.styleTag.setAttribute("nonce",e);this.modules=[],A[OU]=this}mount(A,e){let i=this.sheet,n=0,o=0;for(let r=0;r-1&&(this.modules.splice(a,1),o--,a=-1),a==-1){if(this.modules.splice(o++,0,s),i)for(let c=0;c",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},nYe=typeof navigator<"u"&&/Mac/.test(navigator.platform),oYe=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(Is=0;Is<10;Is++)F2[48+Is]=F2[96+Is]=String(Is);var Is;for(Is=1;Is<=24;Is++)F2[Is+111]="F"+Is;var Is;for(Is=65;Is<=90;Is++)F2[Is]=String.fromCharCode(Is+32),af[Is]=String.fromCharCode(Is);var Is;for(C7 in F2)af.hasOwnProperty(C7)||(af[C7]=F2[C7]);var C7;function _ae(t){var A=nYe&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||oYe&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",e=!A&&t.key||(t.shiftKey?af:F2)[t.keyCode]||t.key||"Unidentified";return e=="Esc"&&(e="Escape"),e=="Del"&&(e="Delete"),e=="Left"&&(e="ArrowLeft"),e=="Up"&&(e="ArrowUp"),e=="Right"&&(e="ArrowRight"),e=="Down"&&(e="ArrowDown"),e}function Co(){var t=arguments[0];typeof t=="string"&&(t=document.createElement(t));var A=1,e=arguments[1];if(e&&typeof e=="object"&&e.nodeType==null&&!Array.isArray(e)){for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var n=e[i];typeof n=="string"?t.setAttribute(i,n):n!=null&&(t[i]=n)}A++}for(;A.995&&e<1.005||!isFinite(e)||Math.abs(A.width-t.offsetWidth)<1)&&(e=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(A.height-t.offsetHeight)<1)&&(i=1),{scaleX:e,scaleY:i}}function sYe(t,A,e,i,n,o,r,s){let a=t.ownerDocument,c=a.defaultView||window;for(let l=t,d=!1;l&&!d;)if(l.nodeType==1){let C,I=l==a.body,u=1,h=1;if(I)C=rYe(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(l).position)&&(d=!0),l.scrollHeight<=l.clientHeight&&l.scrollWidth<=l.clientWidth){l=l.assignedSlot||l.parentNode;continue}let b=l.getBoundingClientRect();({scaleX:u,scaleY:h}=Dce(l,b)),C={left:b.left,right:b.left+l.clientWidth*u,top:b.top,bottom:b.top+l.clientHeight*h}}let B=0,f=0;if(n=="nearest")A.top0&&A.bottom>C.bottom+f&&(f=A.bottom-C.bottom+r)):A.bottom>C.bottom&&(f=A.bottom-C.bottom+r,e<0&&A.top-f0&&A.right>C.right+B&&(B=A.right-C.right+o)):A.right>C.right&&(B=A.right-C.right+o,e<0&&A.leftC.bottom||A.leftC.right)&&(A={left:Math.max(A.left,C.left),right:Math.min(A.right,C.right),top:Math.max(A.top,C.top),bottom:Math.min(A.bottom,C.bottom)}),l=l.assignedSlot||l.parentNode}else if(l.nodeType==11)l=l.host;else break}function aYe(t){let A=t.ownerDocument,e,i;for(let n=t.parentNode;n&&!(n==A.body||e&&i);)if(n.nodeType==1)!i&&n.scrollHeight>n.clientHeight&&(i=n),!e&&n.scrollWidth>n.clientWidth&&(e=n),n=n.assignedSlot||n.parentNode;else if(n.nodeType==11)n=n.host;else break;return{x:e,y:i}}var $U=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(A){return this.anchorNode==A.anchorNode&&this.anchorOffset==A.anchorOffset&&this.focusNode==A.focusNode&&this.focusOffset==A.focusOffset}setRange(A){let{anchorNode:e,focusNode:i}=A;this.set(e,Math.min(A.anchorOffset,e?md(e):0),i,Math.min(A.focusOffset,i?md(i):0))}set(A,e,i,n){this.anchorNode=A,this.anchorOffset=e,this.focusNode=i,this.focusOffset=n}},cf=null;function vce(t){if(t.setActive)return t.setActive();if(cf)return t.focus(cf);let A=[];for(let e=t;e&&(A.push(e,e.scrollTop,e.scrollLeft),e!=e.ownerDocument);e=e.parentNode);if(t.focus(cf==null?{get preventScroll(){return cf={preventScroll:!0},!0}}:void 0),!cf){cf=!1;for(let e=0;eMath.max(1,t.scrollHeight-t.clientHeight-4)}function Sce(t,A){for(let e=t,i=A;;){if(e.nodeType==3&&i>0)return{node:e,offset:i};if(e.nodeType==1&&i>0){if(e.contentEditable=="false")return null;e=e.childNodes[i-1],i=md(e)}else if(e.parentNode&&!k7(e))i=Ku(e),e=e.parentNode;else return null}}function kce(t,A){for(let e=t,i=A;;){if(e.nodeType==3&&ie)return d.domBoundsAround(A,e,c);if(C>=A&&n==-1&&(n=a,o=c),c>e&&d.dom.parentNode==this.dom){r=a,s=l;break}l=C,c=C+d.breakAfter}return{from:o,to:s<0?i+this.length:s,startDOM:(n?this.children[n-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:r=0?this.children[r].dom:null}}markDirty(A=!1){this.flags|=2,this.markParentsDirty(A)}markParentsDirty(A){for(let e=this.parent;e;e=e.parent){if(A&&(e.flags|=2),e.flags&1)return;e.flags|=1,A=!1}}setParent(A){this.parent!=A&&(this.parent=A,this.flags&7&&this.markParentsDirty(!0))}setDOM(A){this.dom!=A&&(this.dom&&(this.dom.cmView=null),this.dom=A,A.cmView=this)}get rootView(){for(let A=this;;){let e=A.parent;if(!e)return A;A=e}}replaceChildren(A,e,i=KT){this.markDirty();for(let n=A;nthis.pos||A==this.pos&&(e>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=A-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}};function xce(t,A,e,i,n,o,r,s,a){let{children:c}=t,l=c.length?c[A]:null,d=o.length?o[o.length-1]:null,C=d?d.breakAfter:r;if(!(A==i&&l&&!r&&!C&&o.length<2&&l.merge(e,n,o.length?d:null,e==0,s,a))){if(i0&&(!r&&o.length&&l.merge(e,l.length,o[0],!1,s,0)?l.breakAfter=o.shift().breakAfter:(e2),dt={mac:Uae||/Mac/.test(Gc.platform),windows:/Win/.test(Gc.platform),linux:/Linux|X11/.test(Gc.platform),ie:P7,ie_version:Rce?eT.documentMode||6:tT?+tT[1]:AT?+AT[1]:0,gecko:Gae,gecko_version:Gae?+(/Firefox\/(\d+)/.exec(Gc.userAgent)||[0,0])[1]:0,chrome:!!YU,chrome_version:YU?+YU[1]:0,ios:Uae,android:/Android\b/.test(Gc.userAgent),webkit:Kae,safari:Nce,webkit_version:Kae?+(/\bAppleWebKit\/(\d+)/.exec(Gc.userAgent)||[0,0])[1]:0,tabSize:eT.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"},gYe=256,pd=class t extends rr{constructor(A){super(),this.text=A}get length(){return this.text.length}createDOM(A){this.setDOM(A||document.createTextNode(this.text))}sync(A,e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text)}reuseDOM(A){A.nodeType==3&&this.createDOM(A)}merge(A,e,i){return this.flags&8||i&&(!(i instanceof t)||this.length-(e-A)+i.length>gYe||i.flags&8)?!1:(this.text=this.text.slice(0,A)+(i?i.text:"")+this.text.slice(e),this.markDirty(),!0)}split(A){let e=new t(this.text.slice(A));return this.text=this.text.slice(0,A),this.markDirty(),e.flags|=this.flags&8,e}localPosFromDOM(A,e){return A==this.dom?e:e?this.text.length:0}domAtPos(A){return new sc(this.dom,A)}domBoundsAround(A,e,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(A,e){return dYe(this.dom,A,e)}},SC=class t extends rr{constructor(A,e=[],i=0){super(),this.mark=A,this.children=e,this.length=i;for(let n of e)n.setParent(this)}setAttrs(A){if(bce(A),this.mark.class&&(A.className=this.mark.class),this.mark.attrs)for(let e in this.mark.attrs)A.setAttribute(e,this.mark.attrs[e]);return A}canReuseDOM(A){return super.canReuseDOM(A)&&!((this.flags|A.flags)&8)}reuseDOM(A){A.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(A),this.flags|=6)}sync(A,e){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(A,e)}merge(A,e,i,n,o,r){return i&&(!(i instanceof t&&i.mark.eq(this.mark))||A&&o<=0||eA&&e.push(i=A&&(n=o),i=a,o++}let r=this.length-A;return this.length=A,n>-1&&(this.children.length=n,this.markDirty()),new t(this.mark,e,r)}domAtPos(A){return Lce(this,A)}coordsAt(A,e){return Gce(this,A,e)}};function dYe(t,A,e){let i=t.nodeValue.length;A>i&&(A=i);let n=A,o=A,r=0;A==0&&e<0||A==i&&e>=0?dt.chrome||dt.gecko||(A?(n--,r=1):o=0)?0:s.length-1];return dt.safari&&!r&&a.width==0&&(a=Array.prototype.find.call(s,c=>c.width)||a),r?z7(a,r<0):a||null}var Z3=class t extends rr{static create(A,e,i){return new t(A,e,i)}constructor(A,e,i){super(),this.widget=A,this.length=e,this.side=i,this.prevWidget=null}split(A){let e=t.create(this.widget,this.length-A,this.side);return this.length-=A,e}sync(A){(!this.dom||!this.widget.updateDOM(this.dom,A))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(A)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(A,e,i,n,o,r){return i&&(!(i instanceof t)||!this.widget.compare(i.widget)||A>0&&o<=0||e0)?sc.before(this.dom):sc.after(this.dom,A==this.length)}domBoundsAround(){return null}coordsAt(A,e){let i=this.widget.coordsAt(this.dom,A,e);if(i)return i;let n=this.dom.getClientRects(),o=null;if(!n.length)return null;let r=this.side?this.side<0:A>0;for(let s=r?n.length-1:0;o=n[s],!(A>0?s==0:s==n.length-1||o.top0?sc.before(this.dom):sc.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(A){return this.dom.getBoundingClientRect()}get overrideDOMText(){return Dn.empty}get isHidden(){return!0}};pd.prototype.children=Z3.prototype.children=X3.prototype.children=KT;function Lce(t,A){let e=t.dom,{children:i}=t,n=0;for(let o=0;no&&A0;o--){let r=i[o-1];if(r.dom.parentNode==e)return r.domAtPos(r.length)}for(let o=n;o0&&A instanceof SC&&n.length&&(i=n[n.length-1])instanceof SC&&i.mark.eq(A.mark)?Fce(i,A.children[0],e-1):(n.push(A),A.setParent(t)),t.length+=A.length}function Gce(t,A,e){let i=null,n=-1,o=null,r=-1;function s(c,l){for(let d=0,C=0;d=l&&(I.children.length?s(I,l-C):(!o||o.isHidden&&(e>0||IYe(o,I)))&&(u>l||C==u&&I.getSide()>0)?(o=I,r=l-C):(C-1?1:0)!=n.length-(e&&n.indexOf(e)>-1?1:0))return!1;for(let o of i)if(o!=e&&(n.indexOf(o)==-1||t[o]!==A[o]))return!1;return!0}function nT(t,A,e){let i=!1;if(A)for(let n in A)e&&n in e||(i=!0,n=="style"?t.style.cssText="":t.removeAttribute(n));if(e)for(let n in e)A&&A[n]==e[n]||(i=!0,n=="style"?t.style.cssText=e[n]:t.setAttribute(n,e[n]));return i}function uYe(t){let A=Object.create(null);for(let e=0;e0?3e8:-4e8:e>0?1e8:-1e8,new kC(A,e,e,i,A.widget||null,!1)}static replace(A){let e=!!A.block,i,n;if(A.isBlockGap)i=-5e8,n=4e8;else{let{start:o,end:r}=Kce(A,e);i=(o?e?-3e8:-1:5e8)-1,n=(r?e?2e8:1:-6e8)+1}return new kC(A,i,n,e,A.widget||null,!0)}static line(A){return new ep(A)}static set(A,e=!1){return To.of(A,e)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};bt.none=To.empty;var $3=class t extends bt{constructor(A){let{start:e,end:i}=Kce(A);super(e?-1:5e8,i?1:-6e8,null,A),this.tagName=A.tagName||"span",this.class=A.class||"",this.attrs=A.attributes||null}eq(A){var e,i;return this==A||A instanceof t&&this.tagName==A.tagName&&(this.class||((e=this.attrs)===null||e===void 0?void 0:e.class))==(A.class||((i=A.attrs)===null||i===void 0?void 0:i.class))&&_7(this.attrs,A.attrs,"class")}range(A,e=A){if(A>=e)throw new RangeError("Mark decorations may not be empty");return super.range(A,e)}};$3.prototype.point=!1;var ep=class t extends bt{constructor(A){super(-2e8,-2e8,null,A)}eq(A){return A instanceof t&&this.spec.class==A.spec.class&&_7(this.spec.attributes,A.spec.attributes)}range(A,e=A){if(e!=A)throw new RangeError("Line decoration ranges must be zero-length");return super.range(A,e)}};ep.prototype.mapMode=ca.TrackBefore;ep.prototype.point=!0;var kC=class t extends bt{constructor(A,e,i,n,o,r){super(e,i,o,A),this.block=n,this.isReplace=r,this.mapMode=n?e<=0?ca.TrackBefore:ca.TrackAfter:ca.TrackDel}get type(){return this.startSide!=this.endSide?ac.WidgetRange:this.startSide<=0?ac.WidgetBefore:ac.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(A){return A instanceof t&&hYe(this.widget,A.widget)&&this.block==A.block&&this.startSide==A.startSide&&this.endSide==A.endSide}range(A,e=A){if(this.isReplace&&(A>e||A==e&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&e!=A)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(A,e)}};kC.prototype.point=!0;function Kce(t,A=!1){let{inclusiveStart:e,inclusiveEnd:i}=t;return e==null&&(e=t.inclusive),i==null&&(i=t.inclusive),{start:e??A,end:i??A}}function hYe(t,A){return t==A||!!(t&&A&&t.compare(A))}function y7(t,A,e,i=0){let n=e.length-1;n>=0&&e[n]+i>=t?e[n]=Math.max(e[n],A):e.push(t,A)}var Ca=class t extends rr{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(A,e,i,n,o,r){if(i){if(!(i instanceof t))return!1;this.dom||i.transferDOM(this)}return n&&this.setDeco(i?i.attrs:null),_ce(this,A,e,i?i.children.slice():[],o,r),!0}split(A){let e=new t;if(e.breakAfter=this.breakAfter,this.length==0)return e;let{i,off:n}=this.childPos(A);n&&(e.append(this.children[i].split(n),0),this.children[i].merge(n,this.children[i].length,null,!1,0,0),i++);for(let o=i;o0&&this.children[i-1].length==0;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=A,e}transferDOM(A){this.dom&&(this.markDirty(),A.setDOM(this.dom),A.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(A){_7(this.attrs,A)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=A)}append(A,e){Fce(this,A,e)}addLineDeco(A){let e=A.spec.attributes,i=A.spec.class;e&&(this.attrs=iT(e,this.attrs||{})),i&&(this.attrs=iT({class:i},this.attrs||{}))}domAtPos(A){return Lce(this,A)}reuseDOM(A){A.nodeName=="DIV"&&(this.setDOM(A),this.flags|=6)}sync(A,e){var i;this.dom?this.flags&4&&(bce(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(nT(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(A,e);let n=this.dom.lastChild;for(;n&&rr.get(n)instanceof SC;)n=n.lastChild;if(!n||!this.length||n.nodeName!="BR"&&((i=rr.get(n))===null||i===void 0?void 0:i.isEditable)==!1&&(!dt.ios||!this.children.some(o=>o instanceof pd))){let o=document.createElement("BR");o.cmIgnore=!0,this.dom.appendChild(o)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let A=0,e;for(let i of this.children){if(!(i instanceof pd)||/[^ -~]/.test(i.text))return null;let n=W3(i.dom);if(n.length!=1)return null;A+=n[0].width,e=n[0].height}return A?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:A/this.length,textHeight:e}:null}coordsAt(A,e){let i=Gce(this,A,e);if(!this.children.length&&i&&this.parent){let{heightOracle:n}=this.parent.view.viewState,o=i.bottom-i.top;if(Math.abs(o-n.lineHeight)<2&&n.textHeight=e){if(o instanceof t)return o;if(r>e)break}n=r+o.breakAfter}return null}},Gu=class t extends rr{constructor(A,e,i){super(),this.widget=A,this.length=e,this.deco=i,this.breakAfter=0,this.prevWidget=null}merge(A,e,i,n,o,r){return i&&(!(i instanceof t)||!this.widget.compare(i.widget)||A>0&&o<=0||e0}},Ap=class extends Ql{constructor(A){super(),this.height=A}toDOM(){let A=document.createElement("div");return A.className="cm-gap",this.updateDOM(A),A}eq(A){return A.height==this.height}updateDOM(A){return A.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}},Y3=class t{constructor(A,e,i,n){this.doc=A,this.pos=e,this.end=i,this.disallowBlockEffectsFor=n,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=A.iter(),this.skip=e}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let A=this.content[this.content.length-1];return!(A.breakAfter||A instanceof Gu&&A.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new Ca),this.atCursorPos=!0),this.curLine}flushBuffer(A=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(I7(new X3(-1),A),A.length),this.pendingBuffer=0)}addBlockWidget(A){this.flushBuffer(),this.curLine=null,this.content.push(A)}finish(A){this.pendingBuffer&&A<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,!this.posCovered()&&!(A&&this.content.length&&this.content[this.content.length-1]instanceof Gu)&&this.getLine()}buildText(A,e,i){for(;A>0;){if(this.textOff==this.text.length){let{value:o,lineBreak:r,done:s}=this.cursor.next(this.skip);if(this.skip=0,s)throw new Error("Ran out of text content when drawing inline views");if(r){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,A--;continue}else this.text=o,this.textOff=0}let n=Math.min(this.text.length-this.textOff,A,512);this.flushBuffer(e.slice(e.length-i)),this.getLine().append(I7(new pd(this.text.slice(this.textOff,this.textOff+n)),e),i),this.atCursorPos=!0,this.textOff+=n,A-=n,i=0}}span(A,e,i,n){this.buildText(e-A,i,n),this.pos=e,this.openStart<0&&(this.openStart=n)}point(A,e,i,n,o,r){if(this.disallowBlockEffectsFor[r]&&i instanceof kC){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(e>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let s=e-A;if(i instanceof kC)if(i.block)i.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new Gu(i.widget||Oae.block,s,i));else{let a=Z3.create(i.widget||Oae.inline,s,s?0:i.startSide),c=this.atCursorPos&&!a.isEditable&&o<=n.length&&(A0),l=!a.isEditable&&(An.length||i.startSide<=0),d=this.getLine();this.pendingBuffer==2&&!c&&!a.isEditable&&(this.pendingBuffer=0),this.flushBuffer(n),c&&(d.append(I7(new X3(1),n),o),o=n.length+Math.max(0,o-n.length)),d.append(I7(a,n),o),this.atCursorPos=l,this.pendingBuffer=l?An.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=n.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);s&&(this.textOff+s<=this.text.length?this.textOff+=s:(this.skip+=s-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=e),this.openStart<0&&(this.openStart=o)}static build(A,e,i,n,o){let r=new t(A,e,i,o);return r.openEnd=To.spans(n,e,i,r),r.openStart<0&&(r.openStart=r.openEnd),r.finish(r.openEnd),r}};function I7(t,A){for(let e of A)t=new SC(e,[t],t.length);return t}var Oae=(()=>{class t extends Ql{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}return t.inline=new t("span"),t.block=new t("div"),t})(),Oo=function(t){return t[t.LTR=0]="LTR",t[t.RTL=1]="RTL",t}(Oo||(Oo={})),Tu=Oo.LTR,UT=Oo.RTL;function Uce(t){let A=[];for(let e=0;e=e){if(s.level==i)return r;(o<0||(n!=0?n<0?s.frome:A[o].level>s.level))&&(o=r)}}if(o<0)throw new RangeError("Index out of range");return o}};function Oce(t,A){if(t.length!=A.length)return!1;for(let e=0;e=0;h-=3)if(Bd[h+1]==-I){let B=Bd[h+2],f=B&2?n:B&4?B&1?o:n:0;f&&(Xo[d]=Xo[Bd[h]]=f),s=h;break}}else{if(Bd.length==189)break;Bd[s++]=d,Bd[s++]=C,Bd[s++]=a}else if((u=Xo[d])==2||u==1){let h=u==n;a=h?0:1;for(let B=s-3;B>=0;B-=3){let f=Bd[B+2];if(f&2)break;if(h)Bd[B+2]|=2;else{if(f&4)break;Bd[B+2]|=4}}}}}function pYe(t,A,e,i){for(let n=0,o=i;n<=e.length;n++){let r=n?e[n-1].to:t,s=na;)u==B&&(u=e[--h].from,B=h?e[h-1].to:t),Xo[--u]=I;a=l}else o=c,a++}}}function rT(t,A,e,i,n,o,r){let s=i%2?2:1;if(i%2==n%2)for(let a=A,c=0;aa&&r.push(new fd(a,h.from,I));let B=h.direction==Tu!=!(I%2);sT(t,B?i+1:i,n,h.inner,h.from,h.to,r),a=h.to}u=h.to}else{if(u==e||(l?Xo[u]!=s:Xo[u]==s))break;u++}C?rT(t,a,u,i+1,n,C,r):aA;){let l=!0,d=!1;if(!c||a>o[c-1].to){let h=Xo[a-1];h!=s&&(l=!1,d=h==16)}let C=!l&&s==1?[]:null,I=l?i:i+1,u=a;e:for(;;)if(c&&u==o[c-1].to){if(d)break e;let h=o[--c];if(!l)for(let B=h.from,f=c;;){if(B==A)break e;if(f&&o[f-1].to==B)B=o[--f].from;else{if(Xo[B-1]==s)break e;break}}if(C)C.push(h);else{h.toXo.length;)Xo[Xo.length]=256;let i=[],n=A==Tu?0:1;return sT(t,n,n,e,0,t.length,i),i}function Jce(t){return[new fd(0,t,0)]}var Yce="";function yYe(t,A,e,i,n){var o;let r=i.head-t.from,s=fd.find(A,r,(o=i.bidiLevel)!==null&&o!==void 0?o:-1,i.assoc),a=A[s],c=a.side(n,e);if(r==c){let C=s+=n?1:-1;if(C<0||C>=A.length)return null;a=A[s=C],r=a.side(!n,e),c=a.side(n,e)}let l=Cs(t.text,r,a.forward(n,e));(la.to)&&(l=c),Yce=t.text.slice(Math.min(r,l),Math.max(r,l));let d=s==(n?A.length-1:0)?null:A[s+(n?1:-1)];return d&&l==c&&d.level+(n?0:1)t.some(A=>A)}),Wce=rt.define({combine:t=>t.some(A=>A)}),Zce=rt.define(),H3=class t{constructor(A,e="nearest",i="nearest",n=5,o=5,r=!1){this.range=A,this.y=e,this.x=i,this.yMargin=n,this.xMargin=o,this.isSnapshot=r}map(A){return A.empty?this:new t(this.range.map(A),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(A){return this.range.to<=A.doc.length?this:new t(fA.cursor(A.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},u7=tn.define({map:(t,A)=>t.map(A)}),Xce=tn.define();function Js(t,A,e){let i=t.facet(jce);i.length?i[0](A):window.onerror&&window.onerror(String(A),e,void 0,void 0,A)||(e?console.error(e+":",A):console.error(A))}var G2=rt.define({combine:t=>t.length?t[0]:!0}),vYe=0,lf=rt.define({combine(t){return t.filter((A,e)=>{for(let i=0;i{let a=[];return r&&a.push(tp.of(c=>{let l=c.plugin(s);return l?r(l):bt.none})),o&&a.push(o(s)),a})}static fromClass(A,e){return t.define((i,n)=>new A(i,n),e)}},z3=class{constructor(A){this.spec=A,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(A){if(this.value){if(this.mustUpdate){let e=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(e)}catch(i){if(Js(e.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(A,this.spec.arg)}catch(e){Js(A.state,e,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(A){var e;if(!((e=this.value)===null||e===void 0)&&e.destroy)try{this.value.destroy()}catch(i){Js(A.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},Yae=rt.define(),aT=rt.define(),tp=rt.define(),$ce=rt.define(),j7=rt.define(),ele=rt.define();function Hae(t,A){let e=t.state.facet(ele);if(!e.length)return e;let i=e.map(o=>o instanceof Function?o(t):o),n=[];return To.spans(i,A.from,A.to,{point(){},span(o,r,s,a){let c=o-A.from,l=r-A.from,d=n;for(let C=s.length-1;C>=0;C--,a--){let I=s[C].spec.bidiIsolate,u;if(I==null&&(I=DYe(A.text,c,l)),a>0&&d.length&&(u=d[d.length-1]).to==c&&u.direction==I)u.to=l,d=u.inner;else{let h={from:c,to:l,direction:I,inner:[]};d.push(h),d=h.inner}}}}),n}var Ale=rt.define();function JT(t){let A=0,e=0,i=0,n=0;for(let o of t.state.facet(Ale)){let r=o(t);r&&(r.left!=null&&(A=Math.max(A,r.left)),r.right!=null&&(e=Math.max(e,r.right)),r.top!=null&&(i=Math.max(i,r.top)),r.bottom!=null&&(n=Math.max(n,r.bottom)))}return{left:A,right:e,top:i,bottom:n}}var G3=rt.define(),Qd=class t{constructor(A,e,i,n){this.fromA=A,this.toA=e,this.fromB=i,this.toB=n}join(A){return new t(Math.min(this.fromA,A.fromA),Math.max(this.toA,A.toA),Math.min(this.fromB,A.fromB),Math.max(this.toB,A.toB))}addToSet(A){let e=A.length,i=this;for(;e>0;e--){let n=A[e-1];if(!(n.fromA>i.toA)){if(n.toAl)break;o+=2}if(!a)return i;new t(a.fromA,a.toA,a.fromB,a.toB).addToSet(i),r=a.toA,s=a.toB}}},R7=class t{constructor(A,e,i){this.view=A,this.state=e,this.transactions=i,this.flags=0,this.startState=A.state,this.changes=la.empty(this.startState.doc.length);for(let o of i)this.changes=this.changes.compose(o.changes);let n=[];this.changes.iterChangedRanges((o,r,s,a)=>n.push(new Qd(o,r,s,a))),this.changedRanges=n}static create(A,e,i){return new t(A,e,i)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(A=>A.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},N7=class extends rr{get length(){return this.view.state.doc.length}constructor(A){super(),this.view=A,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.editContextFormatting=bt.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(A.contentDOM),this.children=[new Ca],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new Qd(0,0,0,A.state.doc.length)],0,null)}update(A){var e;let i=A.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:c,toA:l})=>lthis.minWidthTo)?(this.minWidthFrom=A.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=A.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(A);let n=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((e=this.domChanged)===null||e===void 0)&&e.newSel?n=this.domChanged.newSel.head:!RYe(A.changes,this.hasComposition)&&!A.selectionSet&&(n=A.state.selection.main.head));let o=n>-1?MYe(this.view,A.changes,n):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:c,to:l}=this.hasComposition;i=new Qd(c,l,A.changes.mapPos(c,-1),A.changes.mapPos(l,1)).addToSet(i.slice())}this.hasComposition=o?{from:o.range.fromB,to:o.range.toB}:null,(dt.ie||dt.chrome)&&!o&&A&&A.state.doc.lines!=A.startState.doc.lines&&(this.forceSelection=!0);let r=this.decorations,s=this.updateDeco(),a=xYe(r,s,A.changes);return i=Qd.extendWithRanges(i,a),!(this.flags&7)&&i.length==0?!1:(this.updateInner(i,A.startState.doc.length,o),A.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(A,e,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(A,e,i);let{observer:n}=this.view;n.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let r=dt.chrome||dt.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,r),this.flags&=-8,r&&(r.written||n.selectionRange.focusNode!=r.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(r=>r.flags&=-9);let o=[];if(this.view.viewport.from||this.view.viewport.to=0?n[r]:null;if(!s)break;let{fromA:a,toA:c,fromB:l,toB:d}=s,C,I,u,h;if(i&&i.range.fromBl){let S=Y3.build(this.view.state.doc,l,i.range.fromB,this.decorations,this.dynamicDecorationMap),w=Y3.build(this.view.state.doc,i.range.toB,d,this.decorations,this.dynamicDecorationMap);I=S.breakAtStart,u=S.openStart,h=w.openEnd;let _=this.compositionView(i);w.breakAtStart?_.breakAfter=1:w.content.length&&_.merge(_.length,_.length,w.content[0],!1,w.openStart,0)&&(_.breakAfter=w.content[0].breakAfter,w.content.shift()),S.content.length&&_.merge(0,0,S.content[S.content.length-1],!0,0,S.openEnd)&&S.content.pop(),C=S.content.concat(_).concat(w.content)}else({content:C,breakAtStart:I,openStart:u,openEnd:h}=Y3.build(this.view.state.doc,l,d,this.decorations,this.dynamicDecorationMap));let{i:B,off:f}=o.findPos(c,1),{i:b,off:k}=o.findPos(a,-1);xce(this,b,k,B,f,C,I,u,h)}i&&this.fixCompositionDOM(i)}updateEditContextFormatting(A){this.editContextFormatting=this.editContextFormatting.map(A.changes);for(let e of A.transactions)for(let i of e.effects)i.is(Xce)&&(this.editContextFormatting=i.value)}compositionView(A){let e=new pd(A.text.nodeValue);e.flags|=8;for(let{deco:n}of A.marks)e=new SC(n,[e],e.length);let i=new Ca;return i.append(e,0),i}fixCompositionDOM(A){let e=(o,r)=>{r.flags|=8|(r.children.some(a=>a.flags&7)?1:0),this.markedForComposition.add(r);let s=rr.get(o);s&&s!=r&&(s.dom=null),r.setDOM(o)},i=this.childPos(A.range.fromB,1),n=this.children[i.i];e(A.line,n);for(let o=A.marks.length-1;o>=-1;o--)i=n.childPos(i.off,1),n=n.children[i.i],e(o>=0?A.marks[o].node:A.text,n)}updateSelection(A=!1,e=!1){(A||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let i=this.view.root.activeElement,n=i==this.dom,o=!n&&!(this.view.state.facet(G2)||this.dom.tabIndex>-1)&&w7(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(n||e||o))return;let r=this.forceSelection;this.forceSelection=!1;let s=this.view.state.selection.main,a=this.moveToLine(this.domAtPos(s.anchor)),c=s.empty?a:this.moveToLine(this.domAtPos(s.head));if(dt.gecko&&s.empty&&!this.hasComposition&&bYe(a)){let d=document.createTextNode("");this.view.observer.ignore(()=>a.node.insertBefore(d,a.node.childNodes[a.offset]||null)),a=c=new sc(d,0),r=!0}let l=this.view.observer.selectionRange;(r||!l.focusNode||(!J3(a.node,a.offset,l.anchorNode,l.anchorOffset)||!J3(c.node,c.offset,l.focusNode,l.focusOffset))&&!this.suppressWidgetCursorChange(l,s))&&(this.view.observer.ignore(()=>{dt.android&&dt.chrome&&this.dom.contains(l.focusNode)&&_Ye(l.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let d=q3(this.view.root);if(d)if(s.empty){if(dt.gecko){let C=SYe(a.node,a.offset);if(C&&C!=3){let I=(C==1?Sce:kce)(a.node,a.offset);I&&(a=new sc(I.node,I.offset))}}d.collapse(a.node,a.offset),s.bidiLevel!=null&&d.caretBidiLevel!==void 0&&(d.caretBidiLevel=s.bidiLevel)}else if(d.extend){d.collapse(a.node,a.offset);try{d.extend(c.node,c.offset)}catch{}}else{let C=document.createRange();s.anchor>s.head&&([a,c]=[c,a]),C.setEnd(c.node,c.offset),C.setStart(a.node,a.offset),d.removeAllRanges(),d.addRange(C)}o&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())}),this.view.observer.setSelectionRange(a,c)),this.impreciseAnchor=a.precise?null:new sc(l.anchorNode,l.anchorOffset),this.impreciseHead=c.precise?null:new sc(l.focusNode,l.focusOffset)}suppressWidgetCursorChange(A,e){return this.hasComposition&&e.empty&&J3(A.focusNode,A.focusOffset,A.anchorNode,A.anchorOffset)&&this.posFromDOM(A.focusNode,A.focusOffset)==e.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:A}=this,e=A.state.selection.main,i=q3(A.root),{anchorNode:n,anchorOffset:o}=A.observer.selectionRange;if(!i||!e.empty||!e.assoc||!i.modify)return;let r=Ca.find(this,e.head);if(!r)return;let s=r.posAtStart;if(e.head==s||e.head==s+r.length)return;let a=this.coordsAt(e.head,-1),c=this.coordsAt(e.head,1);if(!a||!c||a.bottom>c.top)return;let l=this.domAtPos(e.head+e.assoc);i.collapse(l.node,l.offset),i.modify("move",e.assoc<0?"forward":"backward","lineboundary"),A.observer.readSelectionRange();let d=A.observer.selectionRange;A.docView.posFromDOM(d.anchorNode,d.anchorOffset)!=e.from&&i.collapse(n,o)}moveToLine(A){let e=this.dom,i;if(A.node!=e)return A;for(let n=A.offset;!i&&n=0;n--){let o=rr.get(e.childNodes[n]);o instanceof Ca&&(i=o.domAtPos(o.length))}return i?new sc(i.node,i.offset,!0):A}nearest(A){for(let e=A;e;){let i=rr.get(e);if(i&&i.rootView==this)return i;e=e.parentNode}return null}posFromDOM(A,e){let i=this.nearest(A);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(A,e)+i.posAtStart}domAtPos(A){let{i:e,off:i}=this.childCursor().findPos(A,-1);for(;e=0;r--){let s=this.children[r],a=o-s.breakAfter,c=a-s.length;if(aA||s.covers(1))&&(!i||s instanceof Ca&&!(i instanceof Ca&&e>=0)))i=s,n=c;else if(i&&c==A&&a==A&&s instanceof Gu&&Math.abs(e)<2){if(s.deco.startSide<0)break;r&&(i=null)}o=c}return i?i.coordsAt(A-n,e):null}coordsForChar(A){let{i:e,off:i}=this.childPos(A,1),n=this.children[e];if(!(n instanceof Ca))return null;for(;n.children.length;){let{i:s,off:a}=n.childPos(i,1);for(;;s++){if(s==n.children.length)return null;if((n=n.children[s]).length)break}i=a}if(!(n instanceof pd))return null;let o=Cs(n.text,i);if(o==i)return null;let r=Uu(n.dom,i,o).getClientRects();for(let s=0;sMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,s=-1,a=this.view.textDirection==Oo.LTR;for(let c=0,l=0;ln)break;if(c>=i){let I=d.dom.getBoundingClientRect();if(e.push(I.height),r){let u=d.dom.lastChild,h=u?W3(u):[];if(h.length){let B=h[h.length-1],f=a?B.right-I.left:I.right-B.left;f>s&&(s=f,this.minWidth=o,this.minWidthFrom=c,this.minWidthTo=C)}}}c=C+d.breakAfter}return e}textDirectionAt(A){let{i:e}=this.childPos(A,1);return getComputedStyle(this.children[e].dom).direction=="rtl"?Oo.RTL:Oo.LTR}measureTextSize(){for(let o of this.children)if(o instanceof Ca){let r=o.measureTextSize();if(r)return r}let A=document.createElement("div"),e,i,n;return A.className="cm-line",A.style.width="99999px",A.style.position="absolute",A.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(A);let o=W3(A.firstChild)[0];e=A.getBoundingClientRect().height,i=o?o.width/27:7,n=o?o.height:e,A.remove()}),{lineHeight:e,charWidth:i,textHeight:n}}childCursor(A=this.length){let e=this.children.length;return e&&(A-=this.children[--e].length),new x7(this.children,A,e)}computeBlockGapDeco(){let A=[],e=this.view.viewState;for(let i=0,n=0;;n++){let o=n==e.viewports.length?null:e.viewports[n],r=o?o.from-1:this.length;if(r>i){let s=(e.lineBlockAt(r).bottom-e.lineBlockAt(i).top)/this.view.scaleY;A.push(bt.replace({widget:new Ap(s),block:!0,inclusive:!0,isBlockGap:!0}).range(i,r))}if(!o)break;i=o.to+1}return bt.set(A)}updateDeco(){let A=1,e=this.view.state.facet(tp).map(o=>(this.dynamicDecorationMap[A++]=typeof o=="function")?o(this.view):o),i=!1,n=this.view.state.facet($ce).map((o,r)=>{let s=typeof o=="function";return s&&(i=!0),s?o(this.view):o});for(n.length&&(this.dynamicDecorationMap[A++]=i,e.push(To.join(n))),this.decorations=[this.editContextFormatting,...e,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];Ae.anchor?-1:1),n;if(!i)return;!e.empty&&(n=this.coordsAt(e.anchor,e.anchor>e.head?-1:1))&&(i={left:Math.min(i.left,n.left),top:Math.min(i.top,n.top),right:Math.max(i.right,n.right),bottom:Math.max(i.bottom,n.bottom)});let o=JT(this.view),r={left:i.left-o.left,top:i.top-o.top,right:i.right+o.right,bottom:i.bottom+o.bottom},{offsetWidth:s,offsetHeight:a}=this.view.scrollDOM;sYe(this.view.scrollDOM,r,e.head{iA.from&&(e=!0)}),e}function NYe(t,A,e=1){let i=t.charCategorizer(A),n=t.doc.lineAt(A),o=A-n.from;if(n.length==0)return fA.cursor(A);o==0?e=1:o==n.length&&(e=-1);let r=o,s=o;e<0?r=Cs(n.text,o,!1):s=Cs(n.text,o);let a=i(n.text.slice(r,s));for(;r>0;){let c=Cs(n.text,r,!1);if(i(n.text.slice(c,r))!=a)break;r=c}for(;st?A.left-t:Math.max(0,t-A.right)}function FYe(t,A){return A.top>t?A.top-t:Math.max(0,t-A.bottom)}function zU(t,A){return t.topA.top+1}function zae(t,A){return At.bottom?{top:t.top,left:t.left,right:t.right,bottom:A}:t}function cT(t,A,e){let i,n,o,r,s=!1,a,c,l,d;for(let u=t.firstChild;u;u=u.nextSibling){let h=W3(u);for(let B=0;Bk||r==k&&o>b)&&(i=u,n=f,o=b,r=k,s=b?A0:Bf.bottom&&(!l||l.bottomf.top)&&(c=u,d=f):l&&zU(l,f)?l=Pae(l,f.bottom):d&&zU(d,f)&&(d=zae(d,f.top))}}if(l&&l.bottom>=e?(i=a,n=l):d&&d.top<=e&&(i=c,n=d),!i)return{node:t,offset:0};let C=Math.max(n.left,Math.min(n.right,A));if(i.nodeType==3)return jae(i,C,e);if(s&&i.contentEditable!="false")return cT(i,C,e);let I=Array.prototype.indexOf.call(t.childNodes,i)+(A>=(n.left+n.right)/2?1:0);return{node:t,offset:I}}function jae(t,A,e){let i=t.nodeValue.length,n=-1,o=1e9,r=0;for(let s=0;se?l.top-e:e-l.bottom)-1;if(l.left-1<=A&&l.right+1>=A&&d=(l.left+l.right)/2,I=C;if((dt.chrome||dt.gecko)&&Uu(t,s).getBoundingClientRect().left==l.right&&(I=!C),d<=0)return{node:t,offset:s+(I?1:0)};n=s+(I?1:0),o=d}}}return{node:t,offset:n>-1?n:r>0?t.nodeValue.length:0}}function ile(t,A,e,i=-1){var n,o;let r=t.contentDOM.getBoundingClientRect(),s=r.top+t.viewState.paddingTop,a,{docHeight:c}=t.viewState,{x:l,y:d}=A,C=d-s;if(C<0)return 0;if(C>c)return t.state.doc.length;for(let S=t.viewState.heightOracle.textHeight/2,w=!1;a=t.elementAtHeight(C),a.type!=ac.Text;)for(;C=i>0?a.bottom+S:a.top-S,!(C>=0&&C<=c);){if(w)return e?null:0;w=!0,i=-i}d=s+C;let I=a.from;if(It.viewport.to)return t.viewport.to==t.state.doc.length?t.state.doc.length:e?null:Vae(t,r,a,l,d);let u=t.dom.ownerDocument,h=t.root.elementFromPoint?t.root:u,B=h.elementFromPoint(l,d);B&&!t.contentDOM.contains(B)&&(B=null),B||(l=Math.max(r.left+1,Math.min(r.right-1,l)),B=h.elementFromPoint(l,d),B&&!t.contentDOM.contains(B)&&(B=null));let f,b=-1;if(B&&((n=t.docView.nearest(B))===null||n===void 0?void 0:n.isEditable)!=!1){if(u.caretPositionFromPoint){let S=u.caretPositionFromPoint(l,d);S&&({offsetNode:f,offset:b}=S)}else if(u.caretRangeFromPoint){let S=u.caretRangeFromPoint(l,d);S&&({startContainer:f,startOffset:b}=S,(!t.contentDOM.contains(f)||dt.safari&&GYe(f,b,l)||dt.chrome&&KYe(f,b,l))&&(f=void 0))}f&&(b=Math.min(md(f),b))}if(!f||!t.docView.dom.contains(f)){let S=Ca.find(t.docView,I);if(!S)return C>a.top+a.height/2?a.to:a.from;({node:f,offset:b}=cT(S.dom,l,d))}let k=t.docView.nearest(f);if(!k)return null;if(k.isWidget&&((o=k.dom)===null||o===void 0?void 0:o.nodeType)==1){let S=k.dom.getBoundingClientRect();return A.yt.defaultLineHeight*1.5){let s=t.viewState.heightOracle.textHeight,a=Math.floor((n-e.top-(t.defaultLineHeight-s)*.5)/s);o+=a*t.viewState.heightOracle.lineLength}let r=t.state.sliceDoc(e.from,e.to);return e.from+d7(r,o,t.state.tabSize)}function GYe(t,A,e){let i,n=t;if(t.nodeType!=3||A!=(i=t.nodeValue.length))return!1;for(;;){let o=n.nextSibling;if(o){if(o.nodeName=="BR")break;return!1}else{let r=n.parentNode;if(!r||r.nodeName=="DIV")break;n=r}}return Uu(t,i-1,i).getBoundingClientRect().right>e}function KYe(t,A,e){if(A!=0)return!1;for(let n=t;;){let o=n.parentNode;if(!o||o.nodeType!=1||o.firstChild!=n)return!1;if(o.classList.contains("cm-line"))break;n=o}let i=t.nodeType==1?t.getBoundingClientRect():Uu(t,0,Math.max(t.nodeValue.length,1)).getBoundingClientRect();return e-i.left>5}function lT(t,A,e){let i=t.lineBlockAt(A);if(Array.isArray(i.type)){let n;for(let o of i.type){if(o.from>A)break;if(!(o.toA)return o;(!n||o.type==ac.Text&&(n.type!=o.type||(e<0?o.fromA)))&&(n=o)}}return n||i}return i}function UYe(t,A,e,i){let n=lT(t,A.head,A.assoc||-1),o=!i||n.type!=ac.Text||!(t.lineWrapping||n.widgetLineBreaks)?null:t.coordsAtPos(A.assoc<0&&A.head>n.from?A.head-1:A.head);if(o){let r=t.dom.getBoundingClientRect(),s=t.textDirectionAt(n.from),a=t.posAtCoords({x:e==(s==Oo.LTR)?r.right-1:r.left+1,y:(o.top+o.bottom)/2});if(a!=null)return fA.cursor(a,e?-1:1)}return fA.cursor(e?n.to:n.from,e?-1:1)}function qae(t,A,e,i){let n=t.state.doc.lineAt(A.head),o=t.bidiSpans(n),r=t.textDirectionAt(n.from);for(let s=A,a=null;;){let c=yYe(n,o,r,s,e),l=Yce;if(!c){if(n.number==(e?t.state.doc.lines:1))return s;l=` +`,n=t.state.doc.line(n.number+(e?1:-1)),o=t.bidiSpans(n),c=t.visualLineSide(n,!e)}if(a){if(!a(l))return s}else{if(!i)return c;a=i(l)}s=c}}function TYe(t,A,e){let i=t.state.charCategorizer(A),n=i(e);return o=>{let r=i(o);return n==Uo.Space&&(n=r),n==r}}function OYe(t,A,e,i){let n=A.head,o=e?1:-1;if(n==(e?t.state.doc.length:0))return fA.cursor(n,A.assoc);let r=A.goalColumn,s,a=t.contentDOM.getBoundingClientRect(),c=t.coordsAtPos(n,A.assoc||-1),l=t.documentTop;if(c)r==null&&(r=c.left-a.left),s=o<0?c.top:c.bottom;else{let I=t.viewState.lineBlockAt(n);r==null&&(r=Math.min(a.right-a.left,t.defaultCharacterWidth*(n-I.from))),s=(o<0?I.top:I.bottom)+l}let d=a.left+r,C=i??t.viewState.heightOracle.textHeight>>1;for(let I=0;;I+=10){let u=s+(C+I)*o,h=ile(t,{x:d,y:u},!1,o);if(ua.bottom||(o<0?hn)){let B=t.docView.coordsForChar(h),f=!B||u{if(A>o&&An(t)),e.from,A.head>e.from?-1:1);return i==e.from?e:fA.cursor(i,io)&&this.lineBreak(),n=r}return this.findPointBefore(i,e),this}readTextNode(A){let e=A.nodeValue;for(let i of this.points)i.node==A&&(i.pos=this.text.length+Math.min(i.offset,e.length));for(let i=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let o=-1,r=1,s;if(this.lineSeparator?(o=e.indexOf(this.lineSeparator,i),r=this.lineSeparator.length):(s=n.exec(e))&&(o=s.index,r=s[0].length),this.append(e.slice(i,o<0?e.length:o)),o<0)break;if(this.lineBreak(),r>1)for(let a of this.points)a.node==A&&a.pos>this.text.length&&(a.pos-=r-1);i=o+r}}readNode(A){if(A.cmIgnore)return;let e=rr.get(A),i=e&&e.overrideDOMText;if(i!=null){this.findPointInside(A,i.length);for(let n=i.iter();!n.next().done;)n.lineBreak?this.lineBreak():this.append(n.value)}else A.nodeType==3?this.readTextNode(A):A.nodeName=="BR"?A.nextSibling&&this.lineBreak():A.nodeType==1&&this.readRange(A.firstChild,null)}findPointBefore(A,e){for(let i of this.points)i.node==A&&A.childNodes[i.offset]==e&&(i.pos=this.text.length)}findPointInside(A,e){for(let i of this.points)(A.nodeType==3?i.node==A:A.contains(i.node))&&(i.pos=this.text.length+(JYe(A,i.node,i.offset)?e:0))}};function JYe(t,A,e){for(;;){if(!A||e-1;let{impreciseHead:o,impreciseAnchor:r}=A.docView;if(A.state.readOnly&&e>-1)this.newSel=null;else if(e>-1&&(this.bounds=A.docView.domBoundsAround(e,i,0))){let s=o||r?[]:zYe(A),a=new gT(s,A.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=PYe(s,this.bounds.from)}else{let s=A.observer.selectionRange,a=o&&o.node==s.focusNode&&o.offset==s.focusOffset||!XU(A.contentDOM,s.focusNode)?A.state.selection.main.head:A.docView.posFromDOM(s.focusNode,s.focusOffset),c=r&&r.node==s.anchorNode&&r.offset==s.anchorOffset||!XU(A.contentDOM,s.anchorNode)?A.state.selection.main.anchor:A.docView.posFromDOM(s.anchorNode,s.anchorOffset),l=A.viewport;if((dt.ios||dt.chrome)&&A.state.selection.main.empty&&a!=c&&(l.from>0||l.toDate.now()-100?t.inputState.lastKeyCode:-1;if(A.bounds){let{from:r,to:s}=A.bounds,a=n.from,c=null;(o===8||dt.android&&A.text.length=n.from&&e.to<=n.to&&(e.from!=n.from||e.to!=n.to)&&n.to-n.from-(e.to-e.from)<=4?e={from:n.from,to:n.to,insert:t.state.doc.slice(n.from,e.from).append(e.insert).append(t.state.doc.slice(e.to,n.to))}:dt.chrome&&e&&e.from==e.to&&e.from==n.head&&e.insert.toString()==` + `&&t.lineWrapping&&(i&&(i=fA.single(i.main.anchor-1,i.main.head-1)),e={from:n.from,to:n.to,insert:Dn.of([" "])}),e)return YT(t,e,i,o);if(i&&!i.main.eq(n)){let r=!1,s="select";return t.inputState.lastSelectionTime>Date.now()-50&&(t.inputState.lastSelectionOrigin=="select"&&(r=!0),s=t.inputState.lastSelectionOrigin,s=="select.pointer"&&(i=nle(t.state.facet(j7).map(a=>a(t)),i))),t.dispatch({selection:i,scrollIntoView:r,userEvent:s}),!0}else return!1}function YT(t,A,e,i=-1){if(dt.ios&&t.inputState.flushIOSKey(A))return!0;let n=t.state.selection.main;if(dt.android&&(A.to==n.to&&(A.from==n.from||A.from==n.from-1&&t.state.sliceDoc(A.from,n.from)==" ")&&A.insert.length==1&&A.insert.lines==2&&If(t.contentDOM,"Enter",13)||(A.from==n.from-1&&A.to==n.to&&A.insert.length==0||i==8&&A.insert.lengthn.head)&&If(t.contentDOM,"Backspace",8)||A.from==n.from&&A.to==n.to+1&&A.insert.length==0&&If(t.contentDOM,"Delete",46)))return!0;let o=A.insert.toString();t.inputState.composing>=0&&t.inputState.composing++;let r,s=()=>r||(r=YYe(t,A,e));return t.state.facet(Vce).some(a=>a(t,A.from,A.to,o,s))||t.dispatch(s()),!0}function YYe(t,A,e){let i,n=t.state,o=n.selection.main;if(A.from>=o.from&&A.to<=o.to&&A.to-A.from>=(o.to-o.from)/3&&(!e||e.main.empty&&e.main.from==A.from+A.insert.length)&&t.inputState.composing<0){let s=o.fromA.to?n.sliceDoc(A.to,o.to):"";i=n.replaceSelection(t.state.toText(s+A.insert.sliceString(0,void 0,t.state.lineBreak)+a))}else{let s=n.changes(A),a=e&&e.main.to<=s.newLength?e.main:void 0;if(n.selection.ranges.length>1&&t.inputState.composing>=0&&A.to<=o.to&&A.to>=o.to-10){let c=t.state.sliceDoc(A.from,A.to),l,d=e&&tle(t,e.main.head);if(d){let u=A.insert.length-(A.to-A.from);l={from:d.from,to:d.to-u}}else l=t.state.doc.lineAt(o.head);let C=o.to-A.to,I=o.to-o.from;i=n.changeByRange(u=>{if(u.from==o.from&&u.to==o.to)return{changes:s,range:a||u.map(s)};let h=u.to-C,B=h-c.length;if(u.to-u.from!=I||t.state.sliceDoc(B,h)!=c||u.to>=l.from&&u.from<=l.to)return{range:u};let f=n.changes({from:B,to:h,insert:A.insert}),b=u.to-o.to;return{changes:f,range:a?fA.range(Math.max(0,a.anchor+b),Math.max(0,a.head+b)):u.map(f)}})}else i={changes:s,selection:a&&n.selection.replaceRange(a)}}let r="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,r+=".compose",t.inputState.compositionFirstChange&&(r+=".start",t.inputState.compositionFirstChange=!1)),n.update(i,{userEvent:r,scrollIntoView:!0})}function HYe(t,A,e,i){let n=Math.min(t.length,A.length),o=0;for(;o0&&s>0&&t.charCodeAt(r-1)==A.charCodeAt(s-1);)r--,s--;if(i=="end"){let a=Math.max(0,o-Math.min(r,s));e-=r+a-o}if(r=r?o-e:0;o-=a,s=o+(s-r),r=o}else if(s=s?o-e:0;o-=a,r=o+(r-s),s=o}return{from:o,toA:r,toB:s}}function zYe(t){let A=[];if(t.root.activeElement!=t.contentDOM)return A;let{anchorNode:e,anchorOffset:i,focusNode:n,focusOffset:o}=t.observer.selectionRange;return e&&(A.push(new L7(e,i)),(n!=e||o!=i)&&A.push(new L7(n,o))),A}function PYe(t,A){if(t.length==0)return null;let e=t[0].pos,i=t.length==2?t[1].pos:e;return e>-1&&i>-1?fA.single(e+A,i+A):null}var CT=class{setSelectionOrigin(A){this.lastSelectionOrigin=A,this.lastSelectionTime=Date.now()}constructor(A){this.view=A,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=A.hasFocus,dt.safari&&A.contentDOM.addEventListener("input",()=>null),dt.gecko&&sHe(A.contentDOM.ownerDocument)}handleEvent(A){!$Ye(this.view,A)||this.ignoreDuringComposition(A)||A.type=="keydown"&&this.keydown(A)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(A.type,A)):this.runHandlers(A.type,A))}runHandlers(A,e){let i=this.handlers[A];if(i){for(let n of i.observers)n(this.view,e);for(let n of i.handlers){if(e.defaultPrevented)break;if(n(this.view,e)){e.preventDefault();break}}}}ensureHandlers(A){let e=jYe(A),i=this.handlers,n=this.view.contentDOM;for(let o in e)if(o!="scroll"){let r=!e[o].handlers.length,s=i[o];s&&r!=!s.handlers.length&&(n.removeEventListener(o,this.handleEvent),s=null),s||n.addEventListener(o,this.handleEvent,{passive:r})}for(let o in i)o!="scroll"&&!e[o]&&n.removeEventListener(o,this.handleEvent);this.handlers=e}keydown(A){if(this.lastKeyCode=A.keyCode,this.lastKeyTime=Date.now(),A.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&A.keyCode!=27&&sle.indexOf(A.keyCode)<0&&(this.tabFocusMode=-1),dt.android&&dt.chrome&&!A.synthetic&&(A.keyCode==13||A.keyCode==8))return this.view.observer.delayAndroidKey(A.key,A.keyCode),!0;let e;return dt.ios&&!A.synthetic&&!A.altKey&&!A.metaKey&&((e=rle.find(i=>i.keyCode==A.keyCode))&&!A.ctrlKey||VYe.indexOf(A.key)>-1&&A.ctrlKey&&!A.shiftKey)?(this.pendingIOSKey=e||A,setTimeout(()=>this.flushIOSKey(),250),!0):(A.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(A){let e=this.pendingIOSKey;return!e||e.key=="Enter"&&A&&A.from0?!0:dt.safari&&!dt.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}startMouseSelection(A){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=A}update(A){this.view.observer.update(A),this.mouseSelection&&this.mouseSelection.update(A),this.draggedContent&&A.docChanged&&(this.draggedContent=this.draggedContent.map(A.changes)),A.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function Wae(t,A){return(e,i)=>{try{return A.call(t,i,e)}catch(n){Js(e.state,n)}}}function jYe(t){let A=Object.create(null);function e(i){return A[i]||(A[i]={observers:[],handlers:[]})}for(let i of t){let n=i.spec,o=n&&n.plugin.domEventHandlers,r=n&&n.plugin.domEventObservers;if(o)for(let s in o){let a=o[s];a&&e(s).handlers.push(Wae(i.value,a))}if(r)for(let s in r){let a=r[s];a&&e(s).observers.push(Wae(i.value,a))}}for(let i in zg)e(i).handlers.push(zg[i]);for(let i in ig)e(i).observers.push(ig[i]);return A}var rle=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],VYe="dthko",sle=[16,17,18,20,91,92,224,225],h7=6;function B7(t){return Math.max(0,t)*.7+8}function qYe(t,A){return Math.max(Math.abs(t.clientX-A.clientX),Math.abs(t.clientY-A.clientY))}var IT=class{constructor(A,e,i,n){this.view=A,this.startEvent=e,this.style=i,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=e,this.scrollParents=aYe(A.contentDOM),this.atoms=A.state.facet(j7).map(r=>r(A));let o=A.contentDOM.ownerDocument;o.addEventListener("mousemove",this.move=this.move.bind(this)),o.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=e.shiftKey,this.multiple=A.state.facet(ss.allowMultipleSelections)&&WYe(A,e),this.dragging=XYe(A,e)&&lle(e)==1?null:!1}start(A){this.dragging===!1&&this.select(A)}move(A){if(A.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&qYe(this.startEvent,A)<10)return;this.select(this.lastEvent=A);let e=0,i=0,n=0,o=0,r=this.view.win.innerWidth,s=this.view.win.innerHeight;this.scrollParents.x&&({left:n,right:r}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:o,bottom:s}=this.scrollParents.y.getBoundingClientRect());let a=JT(this.view);A.clientX-a.left<=n+h7?e=-B7(n-A.clientX):A.clientX+a.right>=r-h7&&(e=B7(A.clientX-r)),A.clientY-a.top<=o+h7?i=-B7(o-A.clientY):A.clientY+a.bottom>=s-h7&&(i=B7(A.clientY-s)),this.setScrollSpeed(e,i)}up(A){this.dragging==null&&this.select(this.lastEvent),this.dragging||A.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let A=this.view.contentDOM.ownerDocument;A.removeEventListener("mousemove",this.move),A.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(A,e){this.scrollSpeed={x:A,y:e},A||e?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:A,y:e}=this.scrollSpeed;A&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=A,A=0),e&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=e,e=0),(A||e)&&this.view.win.scrollBy(A,e),this.dragging===!1&&this.select(this.lastEvent)}select(A){let{view:e}=this,i=nle(this.atoms,this.style.get(A,this.extend,this.multiple));(this.mustSelect||!i.eq(e.state.selection,this.dragging===!1))&&this.view.dispatch({selection:i,userEvent:"select.pointer"}),this.mustSelect=!1}update(A){A.transactions.some(e=>e.isUserEvent("input.type"))?this.destroy():this.style.update(A)&&setTimeout(()=>this.select(this.lastEvent),20)}};function WYe(t,A){let e=t.state.facet(Hce);return e.length?e[0](A):dt.mac?A.metaKey:A.ctrlKey}function ZYe(t,A){let e=t.state.facet(zce);return e.length?e[0](A):dt.mac?!A.altKey:!A.ctrlKey}function XYe(t,A){let{main:e}=t.state.selection;if(e.empty)return!1;let i=q3(t.root);if(!i||i.rangeCount==0)return!0;let n=i.getRangeAt(0).getClientRects();for(let o=0;o=A.clientX&&r.top<=A.clientY&&r.bottom>=A.clientY)return!0}return!1}function $Ye(t,A){if(!A.bubbles)return!0;if(A.defaultPrevented)return!1;for(let e=A.target,i;e!=t.contentDOM;e=e.parentNode)if(!e||e.nodeType==11||(i=rr.get(e))&&i.ignoreEvent(A))return!1;return!0}var zg=Object.create(null),ig=Object.create(null),ale=dt.ie&&dt.ie_version<15||dt.ios&&dt.webkit_version<604;function eHe(t){let A=t.dom.parentNode;if(!A)return;let e=A.appendChild(document.createElement("textarea"));e.style.cssText="position: fixed; left: -10000px; top: 10px",e.focus(),setTimeout(()=>{t.focus(),e.remove(),cle(t,e.value)},50)}function V7(t,A,e){for(let i of t.facet(A))e=i(e,t);return e}function cle(t,A){A=V7(t.state,TT,A);let{state:e}=t,i,n=1,o=e.toText(A),r=o.lines==e.selection.ranges.length;if(uT!=null&&e.selection.ranges.every(a=>a.empty)&&uT==o.toString()){let a=-1;i=e.changeByRange(c=>{let l=e.doc.lineAt(c.from);if(l.from==a)return{range:c};a=l.from;let d=e.toText((r?o.line(n++).text:A)+e.lineBreak);return{changes:{from:l.from,insert:d},range:fA.cursor(c.from+d.length)}})}else r?i=e.changeByRange(a=>{let c=o.line(n++);return{changes:{from:a.from,to:a.to,insert:c.text},range:fA.cursor(a.from+c.length)}}):i=e.replaceSelection(o);t.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}ig.scroll=t=>{t.inputState.lastScrollTop=t.scrollDOM.scrollTop,t.inputState.lastScrollLeft=t.scrollDOM.scrollLeft};zg.keydown=(t,A)=>(t.inputState.setSelectionOrigin("select"),A.keyCode==27&&t.inputState.tabFocusMode!=0&&(t.inputState.tabFocusMode=Date.now()+2e3),!1);ig.touchstart=(t,A)=>{t.inputState.lastTouchTime=Date.now(),t.inputState.setSelectionOrigin("select.pointer")};ig.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")};zg.mousedown=(t,A)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return!1;let e=null;for(let i of t.state.facet(Pce))if(e=i(t,A),e)break;if(!e&&A.button==0&&(e=iHe(t,A)),e){let i=!t.hasFocus;t.inputState.startMouseSelection(new IT(t,A,e,i)),i&&t.observer.ignore(()=>{vce(t.contentDOM);let o=t.root.activeElement;o&&!o.contains(t.contentDOM)&&o.blur()});let n=t.inputState.mouseSelection;if(n)return n.start(A),n.dragging===!1}else t.inputState.setSelectionOrigin("select.pointer");return!1};function Zae(t,A,e,i){if(i==1)return fA.cursor(A,e);if(i==2)return NYe(t.state,A,e);{let n=Ca.find(t.docView,A),o=t.state.doc.lineAt(n?n.posAtEnd:A),r=n?n.posAtStart:o.from,s=n?n.posAtEnd:o.to;return sA>=e.top&&A<=e.bottom&&t>=e.left&&t<=e.right;function AHe(t,A,e,i){let n=Ca.find(t.docView,A);if(!n)return 1;let o=A-n.posAtStart;if(o==0)return 1;if(o==n.length)return-1;let r=n.coordsAt(o,-1);if(r&&Xae(e,i,r))return-1;let s=n.coordsAt(o,1);return s&&Xae(e,i,s)?1:r&&r.bottom>=i?-1:1}function $ae(t,A){let e=t.posAtCoords({x:A.clientX,y:A.clientY},!1);return{pos:e,bias:AHe(t,e,A.clientX,A.clientY)}}var tHe=dt.ie&&dt.ie_version<=11,ece=null,Ace=0,tce=0;function lle(t){if(!tHe)return t.detail;let A=ece,e=tce;return ece=t,tce=Date.now(),Ace=!A||e>Date.now()-400&&Math.abs(A.clientX-t.clientX)<2&&Math.abs(A.clientY-t.clientY)<2?(Ace+1)%3:1}function iHe(t,A){let e=$ae(t,A),i=lle(A),n=t.state.selection;return{update(o){o.docChanged&&(e.pos=o.changes.mapPos(e.pos),n=n.map(o.changes))},get(o,r,s){let a=$ae(t,o),c,l=Zae(t,a.pos,a.bias,i);if(e.pos!=a.pos&&!r){let d=Zae(t,e.pos,e.bias,i),C=Math.min(d.from,l.from),I=Math.max(d.to,l.to);l=C1&&(c=nHe(n,a.pos))?c:s?n.addRange(l):fA.create([l])}}}function nHe(t,A){for(let e=0;e=A)return fA.create(t.ranges.slice(0,e).concat(t.ranges.slice(e+1)),t.mainIndex==e?0:t.mainIndex-(t.mainIndex>e?1:0))}return null}zg.dragstart=(t,A)=>{let{selection:{main:e}}=t.state;if(A.target.draggable){let n=t.docView.nearest(A.target);if(n&&n.isWidget){let o=n.posAtStart,r=o+n.length;(o>=e.to||r<=e.from)&&(e=fA.range(o,r))}}let{inputState:i}=t;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=e,A.dataTransfer&&(A.dataTransfer.setData("Text",V7(t.state,OT,t.state.sliceDoc(e.from,e.to))),A.dataTransfer.effectAllowed="copyMove"),!1};zg.dragend=t=>(t.inputState.draggedContent=null,!1);function ice(t,A,e,i){if(e=V7(t.state,TT,e),!e)return;let n=t.posAtCoords({x:A.clientX,y:A.clientY},!1),{draggedContent:o}=t.inputState,r=i&&o&&ZYe(t,A)?{from:o.from,to:o.to}:null,s={from:n,insert:e},a=t.state.changes(r?[r,s]:s);t.focus(),t.dispatch({changes:a,selection:{anchor:a.mapPos(n,-1),head:a.mapPos(n,1)},userEvent:r?"move.drop":"input.drop"}),t.inputState.draggedContent=null}zg.drop=(t,A)=>{if(!A.dataTransfer)return!1;if(t.state.readOnly)return!0;let e=A.dataTransfer.files;if(e&&e.length){let i=Array(e.length),n=0,o=()=>{++n==e.length&&ice(t,A,i.filter(r=>r!=null).join(t.state.lineBreak),!1)};for(let r=0;r{/[\x00-\x08\x0e-\x1f]{2}/.test(s.result)||(i[r]=s.result),o()},s.readAsText(e[r])}return!0}else{let i=A.dataTransfer.getData("Text");if(i)return ice(t,A,i,!0),!0}return!1};zg.paste=(t,A)=>{if(t.state.readOnly)return!0;t.observer.flush();let e=ale?null:A.clipboardData;return e?(cle(t,e.getData("text/plain")||e.getData("text/uri-list")),!0):(eHe(t),!1)};function oHe(t,A){let e=t.dom.parentNode;if(!e)return;let i=e.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=A,i.focus(),i.selectionEnd=A.length,i.selectionStart=0,setTimeout(()=>{i.remove(),t.focus()},50)}function rHe(t){let A=[],e=[],i=!1;for(let n of t.selection.ranges)n.empty||(A.push(t.sliceDoc(n.from,n.to)),e.push(n));if(!A.length){let n=-1;for(let{from:o}of t.selection.ranges){let r=t.doc.lineAt(o);r.number>n&&(A.push(r.text),e.push({from:r.from,to:Math.min(t.doc.length,r.to+1)})),n=r.number}i=!0}return{text:V7(t,OT,A.join(t.lineBreak)),ranges:e,linewise:i}}var uT=null;zg.copy=zg.cut=(t,A)=>{let{text:e,ranges:i,linewise:n}=rHe(t.state);if(!e&&!n)return!1;uT=n?e:null,A.type=="cut"&&!t.state.readOnly&&t.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let o=ale?null:A.clipboardData;return o?(o.clearData(),o.setData("text/plain",e),!0):(oHe(t,e),!1)};var gle=Fc.define();function dle(t,A){let e=[];for(let i of t.facet(qce)){let n=i(t,A);n&&e.push(n)}return e.length?t.update({effects:e,annotations:gle.of(!0)}):null}function Cle(t){setTimeout(()=>{let A=t.hasFocus;if(A!=t.inputState.notifiedFocused){let e=dle(t.state,A);e?t.dispatch(e):t.update([])}},10)}ig.focus=t=>{t.inputState.lastFocusTime=Date.now(),!t.scrollDOM.scrollTop&&(t.inputState.lastScrollTop||t.inputState.lastScrollLeft)&&(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),Cle(t)};ig.blur=t=>{t.observer.clearSelectionRange(),Cle(t)};ig.compositionstart=ig.compositionupdate=t=>{t.observer.editContext||(t.inputState.compositionFirstChange==null&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0))};ig.compositionend=t=>{t.observer.editContext||(t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,dt.chrome&&dt.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then(()=>t.observer.flush()):setTimeout(()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])},50))};ig.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()};zg.beforeinput=(t,A)=>{var e,i;if(A.inputType=="insertReplacementText"&&t.observer.editContext){let o=(e=A.dataTransfer)===null||e===void 0?void 0:e.getData("text/plain"),r=A.getTargetRanges();if(o&&r.length){let s=r[0],a=t.posAtDOM(s.startContainer,s.startOffset),c=t.posAtDOM(s.endContainer,s.endOffset);return YT(t,{from:a,to:c,insert:t.state.toText(o)},null),!0}}let n;if(dt.chrome&&dt.android&&(n=rle.find(o=>o.inputType==A.inputType))&&(t.observer.delayAndroidKey(n.key,n.keyCode),n.key=="Backspace"||n.key=="Delete")){let o=((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0;setTimeout(()=>{var r;(((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0)>o+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())},100)}return dt.ios&&A.inputType=="deleteContentForward"&&t.observer.flushSoon(),dt.safari&&A.inputType=="insertText"&&t.inputState.composing>=0&&setTimeout(()=>ig.compositionend(t,A),20),!1};var nce=new Set;function sHe(t){nce.has(t)||(nce.add(t),t.addEventListener("copy",()=>{}),t.addEventListener("cut",()=>{}))}var oce=["pre-wrap","normal","pre-line","break-spaces"],uf=!1;function rce(){uf=!1}var hT=class{constructor(A){this.lineWrapping=A,this.doc=Dn.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(A,e){let i=this.doc.lineAt(e).number-this.doc.lineAt(A).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((e-A-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(A){return this.lineWrapping?(1+Math.max(0,Math.ceil((A-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(A){return this.doc=A,this}mustRefreshForWrapping(A){return oce.indexOf(A)>-1!=this.lineWrapping}mustRefreshForHeights(A){let e=!1;for(let i=0;i-1,a=Math.round(e)!=Math.round(this.lineHeight)||this.lineWrapping!=s;if(this.lineWrapping=s,this.lineHeight=e,this.charWidth=i,this.textHeight=n,this.lineLength=o,a){this.heightSamples={};for(let c=0;c0}set outdated(A){this.flags=(A?2:0)|this.flags&-3}setHeight(A){this.height!=A&&(Math.abs(this.height-A)>v7&&(uf=!0),this.height=A)}replace(A,e,i){return t.of(i)}decomposeLeft(A,e){e.push(this)}decomposeRight(A,e){e.push(this)}applyChanges(A,e,i,n){let o=this,r=i.doc;for(let s=n.length-1;s>=0;s--){let{fromA:a,toA:c,fromB:l,toB:d}=n[s],C=o.lineAt(a,Br.ByPosNoHeight,i.setDoc(e),0,0),I=C.to>=c?C:o.lineAt(c,Br.ByPosNoHeight,i,0,0);for(d+=I.to-c,c=I.to;s>0&&C.from<=n[s-1].toA;)a=n[s-1].fromA,l=n[s-1].fromB,s--,ao*2){let s=A[e-1];s.break?A.splice(--e,1,s.left,null,s.right):A.splice(--e,1,s.left,s.right),i+=1+s.break,n-=s.size}else if(o>n*2){let s=A[i];s.break?A.splice(i,1,s.left,null,s.right):A.splice(i,1,s.left,s.right),i+=2+s.break,o-=s.size}else break;else if(n=o&&r(this.blockAt(0,i,n,o))}updateHeight(A,e=0,i=!1,n){return n&&n.from<=e&&n.more&&this.setHeight(n.heights[n.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}},tg=class t extends G7{constructor(A,e){super(A,e,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(A,e,i,n){return new Ed(n,this.length,i,this.height,this.breaks)}replace(A,e,i){let n=i[0];return i.length==1&&(n instanceof t||n instanceof MC&&n.flags&4)&&Math.abs(this.length-n.length)<10?(n instanceof MC?n=new t(n.length,this.height):n.height=this.height,this.outdated||(n.outdated=!1),n):fl.of(i)}updateHeight(A,e=0,i=!1,n){return n&&n.from<=e&&n.more?this.setHeight(n.heights[n.index++]):(i||this.outdated)&&this.setHeight(Math.max(this.widgetHeight,A.heightForLine(this.length-this.collapsed))+this.breaks*A.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},MC=class t extends fl{constructor(A){super(A,0)}heightMetrics(A,e){let i=A.doc.lineAt(e).number,n=A.doc.lineAt(e+this.length).number,o=n-i+1,r,s=0;if(A.lineWrapping){let a=Math.min(this.height,A.lineHeight*o);r=a/o,this.length>o+1&&(s=(this.height-a)/(this.length-o-1))}else r=this.height/o;return{firstLine:i,lastLine:n,perLine:r,perChar:s}}blockAt(A,e,i,n){let{firstLine:o,lastLine:r,perLine:s,perChar:a}=this.heightMetrics(e,n);if(e.lineWrapping){let c=n+(A0){let o=i[i.length-1];o instanceof t?i[i.length-1]=new t(o.length+n):i.push(null,new t(n-1))}if(A>0){let o=i[0];o instanceof t?i[0]=new t(A+o.length):i.unshift(new t(A-1),null)}return fl.of(i)}decomposeLeft(A,e){e.push(new t(A-1),null)}decomposeRight(A,e){e.push(null,new t(this.length-A-1))}updateHeight(A,e=0,i=!1,n){let o=e+this.length;if(n&&n.from<=e+this.length&&n.more){let r=[],s=Math.max(e,n.from),a=-1;for(n.from>e&&r.push(new t(n.from-e-1).updateHeight(A,e));s<=o&&n.more;){let l=A.doc.lineAt(s).length;r.length&&r.push(null);let d=n.heights[n.index++];a==-1?a=d:Math.abs(d-a)>=v7&&(a=-2);let C=new tg(l,d);C.outdated=!1,r.push(C),s+=l+1}s<=o&&r.push(null,new t(o-s).updateHeight(A,s));let c=fl.of(r);return(a<0||Math.abs(c.height-this.height)>=v7||Math.abs(a-this.heightMetrics(A,e).perLine)>=v7)&&(uf=!0),F7(this,c)}else(i||this.outdated)&&(this.setHeight(A.heightForGap(e,e+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},ET=class extends fl{constructor(A,e,i){super(A.length+e+i.length,A.height+i.height,e|(A.outdated||i.outdated?2:0)),this.left=A,this.right=i,this.size=A.size+i.size}get break(){return this.flags&1}blockAt(A,e,i,n){let o=i+this.left.height;return As))return c;let l=e==Br.ByPosNoHeight?Br.ByPosNoHeight:Br.ByPos;return a?c.join(this.right.lineAt(s,l,i,r,s)):this.left.lineAt(s,l,i,n,o).join(c)}forEachLine(A,e,i,n,o,r){let s=n+this.left.height,a=o+this.left.length+this.break;if(this.break)A=a&&this.right.forEachLine(A,e,i,s,a,r);else{let c=this.lineAt(a,Br.ByPos,i,n,o);A=A&&c.from<=e&&r(c),e>c.to&&this.right.forEachLine(c.to+1,e,i,s,a,r)}}replace(A,e,i){let n=this.left.length+this.break;if(ethis.left.length)return this.balanced(this.left,this.right.replace(A-n,e-n,i));let o=[];A>0&&this.decomposeLeft(A,o);let r=o.length;for(let s of i)o.push(s);if(A>0&&sce(o,r-1),e=i&&e.push(null)),A>i&&this.right.decomposeLeft(A-i,e)}decomposeRight(A,e){let i=this.left.length,n=i+this.break;if(A>=n)return this.right.decomposeRight(A-n,e);A2*e.size||e.size>2*A.size?fl.of(this.break?[A,null,e]:[A,e]):(this.left=F7(this.left,A),this.right=F7(this.right,e),this.setHeight(A.height+e.height),this.outdated=A.outdated||e.outdated,this.size=A.size+e.size,this.length=A.length+this.break+e.length,this)}updateHeight(A,e=0,i=!1,n){let{left:o,right:r}=this,s=e+o.length+this.break,a=null;return n&&n.from<=e+o.length&&n.more?a=o=o.updateHeight(A,e,i,n):o.updateHeight(A,e,i),n&&n.from<=s+r.length&&n.more?a=r=r.updateHeight(A,s,i,n):r.updateHeight(A,s,i),a?this.balanced(o,r):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function sce(t,A){let e,i;t[A]==null&&(e=t[A-1])instanceof MC&&(i=t[A+1])instanceof MC&&t.splice(A-1,3,new MC(e.length+1+i.length))}var aHe=5,fT=class t{constructor(A,e){this.pos=A,this.oracle=e,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=A}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(A,e){if(this.lineStart>-1){let i=Math.min(e,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof tg?n.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new tg(i-this.pos,-1)),this.writtenTo=i,e>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=e}point(A,e,i){if(A=aHe)&&this.addLineDeco(n,o,r)}else e>A&&this.span(A,e);this.lineEnd>-1&&this.lineEnd-1)return;let{from:A,to:e}=this.oracle.doc.lineAt(this.pos);this.lineStart=A,this.lineEnd=e,this.writtenToA&&this.nodes.push(new tg(this.pos-A,-1)),this.writtenTo=this.pos}blankContent(A,e){let i=new MC(e-A);return this.oracle.doc.lineAt(A).to==e&&(i.flags|=4),i}ensureLine(){this.enterLine();let A=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(A instanceof tg)return A;let e=new tg(0,-1);return this.nodes.push(e),e}addBlock(A){this.enterLine();let e=A.deco;e&&e.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(A),this.writtenTo=this.pos=this.pos+A.length,e&&e.endSide>0&&(this.covering=A)}addLineDeco(A,e,i){let n=this.ensureLine();n.length+=i,n.collapsed+=i,n.widgetHeight=Math.max(n.widgetHeight,A),n.breaks+=e,this.writtenTo=this.pos=this.pos+i}finish(A){let e=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(e instanceof tg)&&!this.isCovered?this.nodes.push(new tg(0,-1)):(this.writtenTol.clientHeight||l.scrollWidth>l.clientWidth)&&d.overflow!="visible"){let C=l.getBoundingClientRect();o=Math.max(o,C.left),r=Math.min(r,C.right),s=Math.max(s,C.top),a=Math.min(c==t.parentNode?n.innerHeight:a,C.bottom)}c=d.position=="absolute"||d.position=="fixed"?l.offsetParent:l.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:o-e.left,right:Math.max(o,r)-e.left,top:s-(e.top+A),bottom:Math.max(s,a)-(e.top+A)}}function gHe(t){let A=t.getBoundingClientRect(),e=t.ownerDocument.defaultView||window;return A.left0&&A.top0}function dHe(t,A){let e=t.getBoundingClientRect();return{left:0,right:e.right-e.left,top:A,bottom:e.bottom-(e.top+A)}}var P3=class{constructor(A,e,i,n){this.from=A,this.to=e,this.size=i,this.displaySize=n}static same(A,e){if(A.length!=e.length)return!1;for(let i=0;itypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new hT(e),this.stateDeco=A.facet(tp).filter(i=>typeof i!="function"),this.heightMap=fl.empty().applyChanges(this.stateDeco,Dn.empty,this.heightOracle.setDoc(A.doc),[new Qd(0,0,0,A.doc.length)]);for(let i=0;i<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());i++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=bt.set(this.lineGaps.map(i=>i.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let A=[this.viewport],{main:e}=this.state.selection;for(let i=0;i<=1;i++){let n=i?e.head:e.anchor;if(!A.some(({from:o,to:r})=>n>=o&&n<=r)){let{from:o,to:r}=this.lineBlockAt(n);A.push(new gf(o,r))}}return this.viewports=A.sort((i,n)=>i.from-n.from),this.updateScaler()}updateScaler(){let A=this.scaler;return this.scaler=this.heightMap.height<=7e6?ace:new pT(this.heightOracle,this.heightMap,this.viewports),A.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,A=>{this.viewportLines.push(T3(A,this.scaler))})}update(A,e=null){this.state=A.state;let i=this.stateDeco;this.stateDeco=this.state.facet(tp).filter(l=>typeof l!="function");let n=A.changedRanges,o=Qd.extendWithRanges(n,cHe(i,this.stateDeco,A?A.changes:la.empty(this.state.doc.length))),r=this.heightMap.height,s=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);rce(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,A.startState.doc,this.heightOracle.setDoc(this.state.doc),o),(this.heightMap.height!=r||uf)&&(A.flags|=2),s?(this.scrollAnchorPos=A.changes.mapPos(s.from,-1),this.scrollAnchorHeight=s.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=r);let a=o.length?this.mapViewport(this.viewport,A.changes):this.viewport;(e&&(e.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,e));let c=a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,A.flags|=this.updateForViewport(),(c||!A.changes.empty||A.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,A.changes))),A.flags|=this.computeVisibleRanges(A.changes),e&&(this.scrollTarget=e),!this.mustEnforceCursorAssoc&&A.selectionSet&&A.view.lineWrapping&&A.state.selection.main.empty&&A.state.selection.main.assoc&&!A.state.facet(Wce)&&(this.mustEnforceCursorAssoc=!0)}measure(A){let e=A.contentDOM,i=window.getComputedStyle(e),n=this.heightOracle,o=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?Oo.RTL:Oo.LTR;let r=this.heightOracle.mustRefreshForWrapping(o),s=e.getBoundingClientRect(),a=r||this.mustMeasureContent||this.contentDOMHeight!=s.height;this.contentDOMHeight=s.height,this.mustMeasureContent=!1;let c=0,l=0;if(s.width&&s.height){let{scaleX:S,scaleY:w}=Dce(e,s);(S>.005&&Math.abs(this.scaleX-S)>.005||w>.005&&Math.abs(this.scaleY-w)>.005)&&(this.scaleX=S,this.scaleY=w,c|=16,r=a=!0)}let d=(parseInt(i.paddingTop)||0)*this.scaleY,C=(parseInt(i.paddingBottom)||0)*this.scaleY;(this.paddingTop!=d||this.paddingBottom!=C)&&(this.paddingTop=d,this.paddingBottom=C,c|=18),this.editorWidth!=A.scrollDOM.clientWidth&&(n.lineWrapping&&(a=!0),this.editorWidth=A.scrollDOM.clientWidth,c|=16);let I=A.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=I&&(this.scrollAnchorHeight=-1,this.scrollTop=I),this.scrolledToBottom=Mce(A.scrollDOM);let u=(this.printing?dHe:lHe)(e,this.paddingTop),h=u.top-this.pixelViewport.top,B=u.bottom-this.pixelViewport.bottom;this.pixelViewport=u;let f=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(f!=this.inView&&(this.inView=f,f&&(a=!0)),!this.inView&&!this.scrollTarget&&!gHe(A.dom))return 0;let b=s.width;if((this.contentDOMWidth!=b||this.editorHeight!=A.scrollDOM.clientHeight)&&(this.contentDOMWidth=s.width,this.editorHeight=A.scrollDOM.clientHeight,c|=16),a){let S=A.docView.measureVisibleLineHeights(this.viewport);if(n.mustRefreshForHeights(S)&&(r=!0),r||n.lineWrapping&&Math.abs(b-this.contentDOMWidth)>n.charWidth){let{lineHeight:w,charWidth:_,textHeight:K}=A.docView.measureTextSize();r=w>0&&n.refresh(o,w,_,K,Math.max(5,b/_),S),r&&(A.docView.minWidth=0,c|=16)}h>0&&B>0?l=Math.max(h,B):h<0&&B<0&&(l=Math.min(h,B)),rce();for(let w of this.viewports){let _=w.from==this.viewport.from?S:A.docView.measureVisibleLineHeights(w);this.heightMap=(r?fl.empty().applyChanges(this.stateDeco,Dn.empty,this.heightOracle,[new Qd(0,0,0,A.state.doc.length)]):this.heightMap).updateHeight(n,0,r,new BT(w.from,_))}uf&&(c|=2)}let k=!this.viewportIsAppropriate(this.viewport,l)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return k&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(l,this.scrollTarget),c|=this.updateForViewport()),(c&2||k)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(r?[]:this.lineGaps,A)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,A.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(A,e){let i=.5-Math.max(-.5,Math.min(.5,A/1e3/2)),n=this.heightMap,o=this.heightOracle,{visibleTop:r,visibleBottom:s}=this,a=new gf(n.lineAt(r-i*1e3,Br.ByHeight,o,0,0).from,n.lineAt(s+(1-i)*1e3,Br.ByHeight,o,0,0).to);if(e){let{head:c}=e.range;if(ca.to){let l=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),d=n.lineAt(c,Br.ByPos,o,0,0),C;e.y=="center"?C=(d.top+d.bottom)/2-l/2:e.y=="start"||e.y=="nearest"&&c=s+Math.max(10,Math.min(i,250)))&&n>r-2*1e3&&o>1,r=n<<1;if(this.defaultTextDirection!=Oo.LTR&&!i)return[];let s=[],a=(l,d,C,I)=>{if(d-ll&&ff.from>=C.from&&f.to<=C.to&&Math.abs(f.from-l)f.fromb));if(!B){if(dk.from<=d&&k.to>=d)){let k=e.moveToLineBoundary(fA.cursor(d),!1,!0).head;k>l&&(d=k)}let f=this.gapSize(C,l,d,I),b=i||f<2e6?f:2e6;B=new P3(l,d,f,b)}s.push(B)},c=l=>{if(l.length2e6)for(let _ of A)_.from>=l.from&&_.froml.from&&a(l.from,I,l,d),ue.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(A){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let i=[];To.spans(e,this.viewport.from,this.viewport.to,{span(o,r){i.push({from:o,to:r})},point(){}},20);let n=0;if(i.length!=this.visibleRanges.length)n=12;else for(let o=0;o=this.viewport.from&&A<=this.viewport.to&&this.viewportLines.find(e=>e.from<=A&&e.to>=A)||T3(this.heightMap.lineAt(A,Br.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(A){return A>=this.viewportLines[0].top&&A<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(e=>e.top<=A&&e.bottom>=A)||T3(this.heightMap.lineAt(this.scaler.fromDOM(A),Br.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(A){let e=this.lineBlockAtHeight(A+8);return e.from>=this.viewport.from||this.viewportLines[0].top-A>200?e:this.viewportLines[0]}elementAtHeight(A){return T3(this.heightMap.blockAt(this.scaler.fromDOM(A),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},gf=class{constructor(A,e){this.from=A,this.to=e}};function CHe(t,A,e){let i=[],n=t,o=0;return To.spans(e,t,A,{span(){},point(r,s){r>n&&(i.push({from:n,to:r}),o+=r-n),n=s}},20),n=1)return A[A.length-1].to;let i=Math.floor(t*e);for(let n=0;;n++){let{from:o,to:r}=A[n],s=r-o;if(i<=s)return o+i;i-=s}}function f7(t,A){let e=0;for(let{from:i,to:n}of t.ranges){if(A<=n){e+=A-i;break}e+=n-i}return e/t.total}function IHe(t,A){for(let e of t)if(A(e))return e}var ace={toDOM(t){return t},fromDOM(t){return t},scale:1,eq(t){return t==this}},pT=class t{constructor(A,e,i){let n=0,o=0,r=0;this.viewports=i.map(({from:s,to:a})=>{let c=e.lineAt(s,Br.ByPos,A,0,0).top,l=e.lineAt(a,Br.ByPos,A,0,0).bottom;return n+=l-c,{from:s,to:a,top:c,bottom:l,domTop:0,domBottom:0}}),this.scale=(7e6-n)/(e.height-n);for(let s of this.viewports)s.domTop=r+(s.top-o)*this.scale,r=s.domBottom=s.domTop+(s.bottom-s.top),o=s.bottom}toDOM(A){for(let e=0,i=0,n=0;;e++){let o=ee.from==A.viewports[i].from&&e.to==A.viewports[i].to):!1}};function T3(t,A){if(A.scale==1)return t;let e=A.toDOM(t.top),i=A.toDOM(t.bottom);return new Ed(t.from,t.length,e,i-e,Array.isArray(t._content)?t._content.map(n=>T3(n,A)):t._content)}var Q7=rt.define({combine:t=>t.join(" ")}),jU=rt.define({combine:t=>t.indexOf(!0)>-1}),wT=Ag.newName(),Ile=Ag.newName(),ule=Ag.newName(),hle={"&light":"."+Ile,"&dark":"."+ule};function yT(t,A,e){return new Ag(A,{finish(i){return/&/.test(i)?i.replace(/&\w*/,n=>{if(n=="&")return t;if(!e||!e[n])throw new RangeError(`Unsupported selector: ${n}`);return e[n]}):t+" "+i}})}var uHe=yT("."+wT,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},hle),hHe={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},VU=dt.ie&&dt.ie_version<=11,DT=class{constructor(A){this.view=A,this.active=!1,this.editContext=null,this.selectionRange=new $U,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=A.contentDOM,this.observer=new MutationObserver(e=>{for(let i of e)this.queue.push(i);(dt.ie&&dt.ie_version<=11||dt.ios&&A.composing)&&e.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&dt.android&&A.constructor.EDIT_CONTEXT!==!1&&!(dt.chrome&&dt.chrome_version<126)&&(this.editContext=new vT(A),A.state.facet(G2)&&(A.contentDOM.editContext=this.editContext.editContext)),VU&&(this.onCharData=e=>{this.queue.push({target:e.target,type:"characterData",oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var e;((e=this.view.docView)===null||e===void 0?void 0:e.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),e.length>0&&e[e.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(e=>{e.length>0&&e[e.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(A){this.view.inputState.runHandlers("scroll",A),this.intersecting&&this.view.measure()}onScroll(A){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(A)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(A){(A.type=="change"||!A.type)&&!A.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(A){if(this.gapIntersection&&(A.length!=this.gaps.length||this.gaps.some((e,i)=>e!=A[i]))){this.gapIntersection.disconnect();for(let e of A)this.gapIntersection.observe(e);this.gaps=A}}onSelectionChange(A){let e=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,n=this.selectionRange;if(i.state.facet(G2)?i.root.activeElement!=this.dom:!w7(this.dom,n))return;let o=n.anchorNode&&i.docView.nearest(n.anchorNode);if(o&&o.ignoreEvent(A)){e||(this.selectionChanged=!1);return}(dt.ie&&dt.ie_version<=11||dt.android&&dt.chrome)&&!i.state.selection.main.empty&&n.focusNode&&J3(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:A}=this,e=q3(A.root);if(!e)return!1;let i=dt.safari&&A.root.nodeType==11&&A.root.activeElement==this.dom&&BHe(this.view,e)||e;if(!i||this.selectionRange.eq(i))return!1;let n=w7(this.dom,i);return n&&!this.selectionChanged&&A.inputState.lastFocusTime>Date.now()-200&&A.inputState.lastTouchTime{let o=this.delayedAndroidKey;o&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=o.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&o.force&&If(this.dom,o.key,o.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(n)}(!this.delayedAndroidKey||A=="Enter")&&(this.delayedAndroidKey={key:A,keyCode:e,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let A of this.observer.takeRecords())this.queue.push(A);return this.queue}processRecords(){let A=this.pendingRecords();A.length&&(this.queue=[]);let e=-1,i=-1,n=!1;for(let o of A){let r=this.readMutation(o);r&&(r.typeOver&&(n=!0),e==-1?{from:e,to:i}=r:(e=Math.min(r.from,e),i=Math.max(r.to,i)))}return{from:e,to:i,typeOver:n}}readChange(){let{from:A,to:e,typeOver:i}=this.processRecords(),n=this.selectionChanged&&w7(this.dom,this.selectionRange);if(A<0&&!n)return null;A>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let o=new dT(this.view,A,e,i);return this.view.docView.domChanged={newSel:o.newSel?o.newSel.main:null},o}flush(A=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;A&&this.readSelectionRange();let e=this.readChange();if(!e)return this.view.requestMeasure(),!1;let i=this.view.state,n=ole(this.view,e);return this.view.state==i&&(e.domChanged||e.newSel&&!e.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),n}readMutation(A){let e=this.view.docView.nearest(A.target);if(!e||e.ignoreMutation(A))return null;if(e.markDirty(A.type=="attributes"),A.type=="attributes"&&(e.flags|=4),A.type=="childList"){let i=cce(e,A.previousSibling||A.target.previousSibling,-1),n=cce(e,A.nextSibling||A.target.nextSibling,1);return{from:i?e.posAfter(i):e.posAtStart,to:n?e.posBefore(n):e.posAtEnd,typeOver:!1}}else return A.type=="characterData"?{from:e.posAtStart,to:e.posAtEnd,typeOver:A.target.nodeValue==A.oldValue}:null}setWindow(A){A!=this.win&&(this.removeWindowListeners(this.win),this.win=A,this.addWindowListeners(this.win))}addWindowListeners(A){A.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):A.addEventListener("beforeprint",this.onPrint),A.addEventListener("scroll",this.onScroll),A.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(A){A.removeEventListener("scroll",this.onScroll),A.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):A.removeEventListener("beforeprint",this.onPrint),A.document.removeEventListener("selectionchange",this.onSelectionChange)}update(A){this.editContext&&(this.editContext.update(A),A.startState.facet(G2)!=A.state.facet(G2)&&(A.view.contentDOM.editContext=A.state.facet(G2)?this.editContext.editContext:null))}destroy(){var A,e,i;this.stop(),(A=this.intersection)===null||A===void 0||A.disconnect(),(e=this.gapIntersection)===null||e===void 0||e.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect();for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function cce(t,A,e){for(;A;){let i=rr.get(A);if(i&&i.parent==t)return i;let n=A.parentNode;A=n!=t.dom?n:e>0?A.nextSibling:A.previousSibling}return null}function lce(t,A){let e=A.startContainer,i=A.startOffset,n=A.endContainer,o=A.endOffset,r=t.docView.domAtPos(t.state.selection.main.anchor);return J3(r.node,r.offset,n,o)&&([e,i,n,o]=[n,o,e,i]),{anchorNode:e,anchorOffset:i,focusNode:n,focusOffset:o}}function BHe(t,A){if(A.getComposedRanges){let n=A.getComposedRanges(t.root)[0];if(n)return lce(t,n)}let e=null;function i(n){n.preventDefault(),n.stopImmediatePropagation(),e=n.getTargetRanges()[0]}return t.contentDOM.addEventListener("beforeinput",i,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",i,!0),e?lce(t,e):null}var vT=class{constructor(A){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(A.state);let e=this.editContext=new window.EditContext({text:A.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,A.state.selection.main.anchor))),selectionEnd:this.toContextPos(A.state.selection.main.head)});this.handlers.textupdate=i=>{let n=A.state.selection.main,{anchor:o,head:r}=n,s=this.toEditorPos(i.updateRangeStart),a=this.toEditorPos(i.updateRangeEnd);A.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:i.updateRangeStart,editorBase:s,drifted:!1});let c={from:s,to:a,insert:Dn.of(i.text.split(` +`))};if(c.from==this.from&&othis.to&&(c.to=o),c.from==c.to&&!c.insert.length){let l=fA.single(this.toEditorPos(i.selectionStart),this.toEditorPos(i.selectionEnd));l.main.eq(n)||A.dispatch({selection:l,userEvent:"select"});return}if((dt.mac||dt.android)&&c.from==r-1&&/^\. ?$/.test(i.text)&&A.contentDOM.getAttribute("autocorrect")=="off"&&(c={from:s,to:a,insert:Dn.of([i.text.replace("."," ")])}),this.pendingContextChange=c,!A.state.readOnly){let l=this.to-this.from+(c.to-c.from+c.insert.length);YT(A,c,fA.single(this.toEditorPos(i.selectionStart,l),this.toEditorPos(i.selectionEnd,l)))}this.pendingContextChange&&(this.revertPending(A.state),this.setSelection(A.state))},this.handlers.characterboundsupdate=i=>{let n=[],o=null;for(let r=this.toEditorPos(i.rangeStart),s=this.toEditorPos(i.rangeEnd);r{let n=[];for(let o of i.getTextFormats()){let r=o.underlineStyle,s=o.underlineThickness;if(r!="None"&&s!="None"){let a=this.toEditorPos(o.rangeStart),c=this.toEditorPos(o.rangeEnd);if(a{A.inputState.composing<0&&(A.inputState.composing=0,A.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(A.inputState.composing=-1,A.inputState.compositionFirstChange=null,this.composing){let{drifted:i}=this.composing;this.composing=null,i&&this.reset(A.state)}};for(let i in this.handlers)e.addEventListener(i,this.handlers[i]);this.measureReq={read:i=>{this.editContext.updateControlBounds(i.contentDOM.getBoundingClientRect());let n=q3(i.root);n&&n.rangeCount&&this.editContext.updateSelectionBounds(n.getRangeAt(0).getBoundingClientRect())}}}applyEdits(A){let e=0,i=!1,n=this.pendingContextChange;return A.changes.iterChanges((o,r,s,a,c)=>{if(i)return;let l=c.length-(r-o);if(n&&r>=n.to)if(n.from==o&&n.to==r&&n.insert.eq(c)){n=this.pendingContextChange=null,e+=l,this.to+=l;return}else n=null,this.revertPending(A.state);if(o+=e,r+=e,r<=this.from)this.from+=l,this.to+=l;else if(othis.to||this.to-this.from+c.length>3e4){i=!0;return}this.editContext.updateText(this.toContextPos(o),this.toContextPos(r),c.toString()),this.to+=l}e+=l}),n&&!i&&this.revertPending(A.state),!i}update(A){let e=this.pendingContextChange,i=A.startState.selection.main;this.composing&&(this.composing.drifted||!A.changes.touchesRange(i.from,i.to)&&A.transactions.some(n=>!n.isUserEvent("input.type")&&n.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=A.changes.mapPos(this.composing.editorBase)):!this.applyEdits(A)||!this.rangeIsValid(A.state)?(this.pendingContextChange=null,this.reset(A.state)):(A.docChanged||A.selectionSet||e)&&this.setSelection(A.state),(A.geometryChanged||A.docChanged||A.selectionSet)&&A.view.requestMeasure(this.measureReq)}resetRange(A){let{head:e}=A.selection.main;this.from=Math.max(0,e-1e4),this.to=Math.min(A.doc.length,e+1e4)}reset(A){this.resetRange(A),this.editContext.updateText(0,this.editContext.text.length,A.doc.sliceString(this.from,this.to)),this.setSelection(A)}revertPending(A){let e=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(e.from),this.toContextPos(e.from+e.insert.length),A.doc.sliceString(e.from,e.to))}setSelection(A){let{main:e}=A.selection,i=this.toContextPos(Math.max(this.from,Math.min(this.to,e.anchor))),n=this.toContextPos(e.head);(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=n)&&this.editContext.updateSelection(i,n)}rangeIsValid(A){let{head:e}=A.selection.main;return!(this.from>0&&e-this.from<500||this.to1e4*3)}toEditorPos(A,e=this.to-this.from){A=Math.min(A,e);let i=this.composing;return i&&i.drifted?i.editorBase+(A-i.contextBase):A+this.from}toContextPos(A){let e=this.composing;return e&&e.drifted?e.contextBase+(A-e.editorBase):A-this.from}destroy(){for(let A in this.handlers)this.editContext.removeEventListener(A,this.handlers[A])}},ai=(()=>{class t{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var i;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:n}=e;this.dispatchTransactions=e.dispatchTransactions||n&&(o=>o.forEach(r=>n(r,this)))||(o=>this.update(o)),this.dispatch=this.dispatch.bind(this),this._root=e.root||cYe(e.parent)||document,this.viewState=new K7(e.state||ss.create(e)),e.scrollTo&&e.scrollTo.is(u7)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(lf).map(o=>new z3(o));for(let o of this.plugins)o.update(this);this.observer=new DT(this),this.inputState=new CT(this),this.inputState.ensureHandlers(this.plugins),this.docView=new N7(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((i=document.fonts)===null||i===void 0)&&i.ready&&document.fonts.ready.then(()=>this.requestMeasure())}dispatch(...e){let i=e.length==1&&e[0]instanceof ud?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(i,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let i=!1,n=!1,o,r=this.state;for(let I of e){if(I.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=I.state}if(this.destroyed){this.viewState.state=r;return}let s=this.hasFocus,a=0,c=null;e.some(I=>I.annotation(gle))?(this.inputState.notifiedFocused=s,a=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,c=dle(r,s),c||(a=1));let l=this.observer.delayedAndroidKey,d=null;if(l?(this.observer.clearDelayedAndroidKey(),d=this.observer.readChange(),(d&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(d=null)):this.observer.clear(),r.facet(ss.phrases)!=this.state.facet(ss.phrases))return this.setState(r);o=R7.create(this,r,e),o.flags|=a;let C=this.viewState.scrollTarget;try{this.updateState=2;for(let I of e){if(C&&(C=C.map(I.changes)),I.scrollIntoView){let{main:u}=I.state.selection;C=new H3(u.empty?u:fA.cursor(u.head,u.head>u.anchor?-1:1))}for(let u of I.effects)u.is(u7)&&(C=u.value.clip(this.state))}this.viewState.update(o,C),this.bidiCache=U7.update(this.bidiCache,o.changes),o.empty||(this.updatePlugins(o),this.inputState.update(o)),i=this.docView.update(o),this.state.facet(G3)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(i,e.some(I=>I.isUserEvent("select.pointer")))}finally{this.updateState=0}if(o.startState.facet(Q7)!=o.state.facet(Q7)&&(this.viewState.mustMeasureContent=!0),(i||n||C||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),i&&this.docViewUpdate(),!o.empty)for(let I of this.state.facet(HU))try{I(o)}catch(u){Js(this.state,u,"update listener")}(c||d)&&Promise.resolve().then(()=>{c&&this.state==c.startState&&this.dispatch(c),d&&!ole(this,d)&&l.force&&If(this.contentDOM,l.key,l.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let i=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new K7(e),this.plugins=e.facet(lf).map(n=>new z3(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView.destroy(),this.docView=new N7(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}i&&this.focus(),this.requestMeasure()}updatePlugins(e){let i=e.startState.facet(lf),n=e.state.facet(lf);if(i!=n){let o=[];for(let r of n){let s=i.indexOf(r);if(s<0)o.push(new z3(r));else{let a=this.plugins[s];a.mustUpdate=e,o.push(a)}}for(let r of this.plugins)r.mustUpdate!=e&&r.destroy(this);this.plugins=o,this.pluginMap.clear()}else for(let o of this.plugins)o.mustUpdate=e;for(let o=0;o-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let i=null,n=this.scrollDOM,o=n.scrollTop*this.scaleY,{scrollAnchorPos:r,scrollAnchorHeight:s}=this.viewState;Math.abs(o-this.viewState.scrollTop)>1&&(s=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(s<0)if(Mce(n))r=-1,s=this.viewState.heightMap.height;else{let u=this.viewState.scrollAnchorAt(o);r=u.from,s=u.top}this.updateState=1;let c=this.viewState.measure(this);if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let l=[];c&4||([this.measureRequests,l]=[l,this.measureRequests]);let d=l.map(u=>{try{return u.read(this)}catch(h){return Js(this.state,h),gce}}),C=R7.create(this,this.state,[]),I=!1;C.flags|=c,i?i.flags|=c:i=C,this.updateState=2,C.empty||(this.updatePlugins(C),this.inputState.update(C),this.updateAttrs(),I=this.docView.update(C),I&&this.docViewUpdate());for(let u=0;u1||h<-1){o=o+h,n.scrollTop=o/this.scaleY,s=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(i&&!i.empty)for(let a of this.state.facet(HU))a(i)}get themeClasses(){return wT+" "+(this.state.facet(jU)?ule:Ile)+" "+this.state.facet(Q7)}updateAttrs(){let e=dce(this,Yae,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),i={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(G2)?"true":"false",class:"cm-content",style:`${dt.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(i["aria-readonly"]="true"),dce(this,aT,i);let n=this.observer.ignore(()=>{let o=nT(this.contentDOM,this.contentAttrs,i),r=nT(this.dom,this.editorAttrs,e);return o||r});return this.editorAttrs=e,this.contentAttrs=i,n}showAnnouncements(e){let i=!0;for(let n of e)for(let o of n.effects)if(o.is(t.announce)){i&&(this.announceDOM.textContent=""),i=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=o.value}}mountStyles(){this.styleModules=this.state.facet(G3);let e=this.state.facet(t.cspNonce);Ag.mount(this.root,this.styleModules.concat(uHe).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let i=0;in.plugin==e)||null),i&&i.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,i,n){return PU(this,e,qae(this,e,i,n))}moveByGroup(e,i){return PU(this,e,qae(this,e,i,n=>TYe(this,e.head,n)))}visualLineSide(e,i){let n=this.bidiSpans(e),o=this.textDirectionAt(e.from),r=n[i?n.length-1:0];return fA.cursor(r.side(i,o)+e.from,r.forward(!i,o)?1:-1)}moveToLineBoundary(e,i,n=!0){return UYe(this,e,i,n)}moveVertically(e,i,n){return PU(this,e,OYe(this,e,i,n))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,i=0){return this.docView.posFromDOM(e,i)}posAtCoords(e,i=!0){return this.readMeasured(),ile(this,e,i)}coordsAtPos(e,i=1){this.readMeasured();let n=this.docView.coordsAt(e,i);if(!n||n.left==n.right)return n;let o=this.state.doc.lineAt(e),r=this.bidiSpans(o),s=r[fd.find(r,e-o.from,-1,i)];return z7(n,s.dir==Oo.LTR==i>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(Jae)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>EHe)return Jce(e.length);let i=this.textDirectionAt(e.from),n;for(let r of this.bidiCache)if(r.from==e.from&&r.dir==i&&(r.fresh||Oce(r.isolates,n=Hae(this,e))))return r.order;n||(n=Hae(this,e));let o=wYe(e.text,i,n);return this.bidiCache.push(new U7(e.from,e.to,i,n,!0,o)),o}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||dt.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{vce(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,i={}){return u7.of(new H3(typeof e=="number"?fA.cursor(e):e,i.y,i.x,i.yMargin,i.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:i}=this.scrollDOM,n=this.viewState.scrollAnchorAt(e);return u7.of(new H3(fA.cursor(n.from),"start","start",n.top-e,i,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return Jo.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return Jo.define(()=>({}),{eventObservers:e})}static theme(e,i){let n=Ag.newName(),o=[Q7.of(n),G3.of(yT(`.${n}`,e))];return i&&i.dark&&o.push(jU.of(!0)),o}static baseTheme(e){return Hg.lowest(G3.of(yT("."+wT,e,hle)))}static findFromDOM(e){var i;let n=e.querySelector(".cm-content"),o=n&&rr.get(n)||rr.get(e);return((i=o?.rootView)===null||i===void 0?void 0:i.view)||null}}return t.styleModule=G3,t.inputHandler=Vce,t.clipboardInputFilter=TT,t.clipboardOutputFilter=OT,t.scrollHandler=Zce,t.focusChangeEffect=qce,t.perLineTextDirection=Jae,t.exceptionSink=jce,t.updateListener=HU,t.editable=G2,t.mouseSelectionStyle=Pce,t.dragMovesSelection=zce,t.clickAddsSelectionRange=Hce,t.decorations=tp,t.outerDecorations=$ce,t.atomicRanges=j7,t.bidiIsolatedRanges=ele,t.scrollMargins=Ale,t.darkTheme=jU,t.cspNonce=rt.define({combine:A=>A.length?A[0]:""}),t.contentAttributes=aT,t.editorAttributes=Yae,t.lineWrapping=t.contentAttributes.of({class:"cm-lineWrapping"}),t.announce=tn.define(),t})(),EHe=4096,gce={},U7=class t{constructor(A,e,i,n,o,r){this.from=A,this.to=e,this.dir=i,this.isolates=n,this.fresh=o,this.order=r}static update(A,e){if(e.empty&&!A.some(o=>o.fresh))return A;let i=[],n=A.length?A[A.length-1].dir:Oo.LTR;for(let o=Math.max(0,A.length-10);o=0;n--){let o=i[n],r=typeof o=="function"?o(t):o;r&&iT(r,e)}return e}var fHe=dt.mac?"mac":dt.windows?"win":dt.linux?"linux":"key";function QHe(t,A){let e=t.split(/-(?!$)/),i=e[e.length-1];i=="Space"&&(i=" ");let n,o,r,s;for(let a=0;ai.concat(n),[]))),e}function Ele(t,A,e){return fle(Ble(t.state),A,t,e)}var bC=null,pHe=4e3;function wHe(t,A=fHe){let e=Object.create(null),i=Object.create(null),n=(r,s)=>{let a=i[r];if(a==null)i[r]=s;else if(a!=s)throw new Error("Key binding "+r+" is used both as a regular binding and as a multi-stroke prefix")},o=(r,s,a,c,l)=>{var d,C;let I=e[r]||(e[r]=Object.create(null)),u=s.split(/ (?!$)/).map(f=>QHe(f,A));for(let f=1;f{let S=bC={view:k,prefix:b,scope:r};return setTimeout(()=>{bC==S&&(bC=null)},pHe),!0}]})}let h=u.join(" ");n(h,!1);let B=I[h]||(I[h]={preventDefault:!1,stopPropagation:!1,run:((C=(d=I._any)===null||d===void 0?void 0:d.run)===null||C===void 0?void 0:C.slice())||[]});a&&B.run.push(a),c&&(B.preventDefault=!0),l&&(B.stopPropagation=!0)};for(let r of t){let s=r.scope?r.scope.split(" "):["editor"];if(r.any)for(let c of s){let l=e[c]||(e[c]=Object.create(null));l._any||(l._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:d}=r;for(let C in l)l[C].run.push(I=>d(I,bT))}let a=r[A]||r.key;if(a)for(let c of s)o(c,a,r.run,r.preventDefault,r.stopPropagation),r.shift&&o(c,"Shift-"+a,r.shift,r.preventDefault,r.stopPropagation)}return e}var bT=null;function fle(t,A,e,i){bT=A;let n=_ae(A),o=da(n,0),r=El(o)==n.length&&n!=" ",s="",a=!1,c=!1,l=!1;bC&&bC.view==e&&bC.scope==i&&(s=bC.prefix+" ",sle.indexOf(A.keyCode)<0&&(c=!0,bC=null));let d=new Set,C=B=>{if(B){for(let f of B.run)if(!d.has(f)&&(d.add(f),f(e)))return B.stopPropagation&&(l=!0),!0;B.preventDefault&&(B.stopPropagation&&(l=!0),c=!0)}return!1},I=t[i],u,h;return I&&(C(I[s+m7(n,A,!r)])?a=!0:r&&(A.altKey||A.metaKey||A.ctrlKey)&&!(dt.windows&&A.ctrlKey&&A.altKey)&&!(dt.mac&&A.altKey&&!(A.ctrlKey||A.metaKey))&&(u=F2[A.keyCode])&&u!=n?(C(I[s+m7(u,A,!0)])||A.shiftKey&&(h=af[A.keyCode])!=n&&h!=u&&C(I[s+m7(h,A,!1)]))&&(a=!0):r&&A.shiftKey&&C(I[s+m7(n,A,!0)])&&(a=!0),!a&&C(I._any)&&(a=!0)),c&&(a=!0),a&&l&&A.stopPropagation(),bT=null,a}var ip=class t{constructor(A,e,i,n,o){this.className=A,this.left=e,this.top=i,this.width=n,this.height=o}draw(){let A=document.createElement("div");return A.className=this.className,this.adjust(A),A}update(A,e){return e.className!=this.className?!1:(this.adjust(A),!0)}adjust(A){A.style.left=this.left+"px",A.style.top=this.top+"px",this.width!=null&&(A.style.width=this.width+"px"),A.style.height=this.height+"px"}eq(A){return this.left==A.left&&this.top==A.top&&this.width==A.width&&this.height==A.height&&this.className==A.className}static forRange(A,e,i){if(i.empty){let n=A.coordsAtPos(i.head,i.assoc||1);if(!n)return[];let o=Qle(A);return[new t(e,n.left-o.left,n.top-o.top,null,n.bottom-n.top)]}else return yHe(A,e,i)}};function Qle(t){let A=t.scrollDOM.getBoundingClientRect();return{left:(t.textDirection==Oo.LTR?A.left:A.right-t.scrollDOM.clientWidth*t.scaleX)-t.scrollDOM.scrollLeft*t.scaleX,top:A.top-t.scrollDOM.scrollTop*t.scaleY}}function Ice(t,A,e,i){let n=t.coordsAtPos(A,e*2);if(!n)return i;let o=t.dom.getBoundingClientRect(),r=(n.top+n.bottom)/2,s=t.posAtCoords({x:o.left+1,y:r}),a=t.posAtCoords({x:o.right-1,y:r});return s==null||a==null?i:{from:Math.max(i.from,Math.min(s,a)),to:Math.min(i.to,Math.max(s,a))}}function yHe(t,A,e){if(e.to<=t.viewport.from||e.from>=t.viewport.to)return[];let i=Math.max(e.from,t.viewport.from),n=Math.min(e.to,t.viewport.to),o=t.textDirection==Oo.LTR,r=t.contentDOM,s=r.getBoundingClientRect(),a=Qle(t),c=r.querySelector(".cm-line"),l=c&&window.getComputedStyle(c),d=s.left+(l?parseInt(l.paddingLeft)+Math.min(0,parseInt(l.textIndent)):0),C=s.right-(l?parseInt(l.paddingRight):0),I=lT(t,i,1),u=lT(t,n,-1),h=I.type==ac.Text?I:null,B=u.type==ac.Text?u:null;if(h&&(t.lineWrapping||I.widgetLineBreaks)&&(h=Ice(t,i,1,h)),B&&(t.lineWrapping||u.widgetLineBreaks)&&(B=Ice(t,n,-1,B)),h&&B&&h.from==B.from&&h.to==B.to)return b(k(e.from,e.to,h));{let w=h?k(e.from,null,h):S(I,!1),_=B?k(null,e.to,B):S(u,!0),K=[];return(h||I).to<(B||u).from-(h&&B?1:0)||I.widgetLineBreaks>1&&w.bottom+t.defaultLineHeight/2<_.top?K.push(f(d,w.bottom,C,_.top)):w.bottom<_.top&&t.elementAtHeight((w.bottom+_.top)/2).type==ac.Text&&(w.bottom=_.top=(w.bottom+_.top)/2),b(w).concat(K).concat(b(_))}function f(w,_,K,J){return new ip(A,w-a.left,_-a.top,K-w,J-_)}function b({top:w,bottom:_,horizontal:K}){let J=[];for(let O=0;OZ&&P.from=X)break;me>se&&V(Math.max(le,se),w==null&&le<=Z,Math.min(me,X),_==null&&me>=ye,oe.dir)}if(se=ue.to+1,se>=X)break}return H.length==0&&V(Z,w==null,ye,_==null,t.textDirection),{top:J,bottom:O,horizontal:H}}function S(w,_){let K=s.top+(_?w.top:w.bottom);return{top:K,bottom:K,horizontal:[]}}}function DHe(t,A){return t.constructor==A.constructor&&t.eq(A)}var MT=class{constructor(A,e){this.view=A,this.layer=e,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=A.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),e.above&&this.dom.classList.add("cm-layer-above"),e.class&&this.dom.classList.add(e.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(A.state),A.requestMeasure(this.measureReq),e.mount&&e.mount(this.dom,A)}update(A){A.startState.facet(b7)!=A.state.facet(b7)&&this.setOrder(A.state),(this.layer.update(A,this.dom)||A.geometryChanged)&&(this.scale(),A.view.requestMeasure(this.measureReq))}docViewUpdate(A){this.layer.updateOnDocViewUpdate!==!1&&A.requestMeasure(this.measureReq)}setOrder(A){let e=0,i=A.facet(b7);for(;e!DHe(e,this.drawn[i]))){let e=this.dom.firstChild,i=0;for(let n of A)n.update&&e&&n.constructor&&this.drawn[i].constructor&&n.update(e,this.drawn[i])?(e=e.nextSibling,i++):this.dom.insertBefore(n.draw(),e);for(;e;){let n=e.nextSibling;e.remove(),e=n}this.drawn=A}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},b7=rt.define();function mle(t){return[Jo.define(A=>new MT(A,t)),b7.of(t)]}var np=rt.define({combine(t){return Os(t,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(A,e)=>Math.min(A,e),drawRangeCursor:(A,e)=>A||e})}});function ple(t={}){return[np.of(t),vHe,bHe,MHe,Wce.of(!0)]}function wle(t){return t.startState.facet(np)!=t.state.facet(np)}var vHe=mle({above:!0,markers(t){let{state:A}=t,e=A.facet(np),i=[];for(let n of A.selection.ranges){let o=n==A.selection.main;if(n.empty||e.drawRangeCursor){let r=o?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",s=n.empty?n:fA.cursor(n.head,n.head>n.anchor?-1:1);for(let a of ip.forRange(t,r,s))i.push(a)}}return i},update(t,A){t.transactions.some(i=>i.selection)&&(A.style.animationName=A.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let e=wle(t);return e&&uce(t.state,A),t.docChanged||t.selectionSet||e},mount(t,A){uce(A.state,t)},class:"cm-cursorLayer"});function uce(t,A){A.style.animationDuration=t.facet(np).cursorBlinkRate+"ms"}var bHe=mle({above:!1,markers(t){return t.state.selection.ranges.map(A=>A.empty?[]:ip.forRange(t,"cm-selectionBackground",A)).reduce((A,e)=>A.concat(e))},update(t,A){return t.docChanged||t.selectionSet||t.viewportChanged||wle(t)},class:"cm-selectionLayer"}),MHe=Hg.highest(ai.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),yle=tn.define({map(t,A){return t==null?null:A.mapPos(t)}}),O3=_r.define({create(){return null},update(t,A){return t!=null&&(t=A.changes.mapPos(t)),A.effects.reduce((e,i)=>i.is(yle)?i.value:e,t)}}),SHe=Jo.fromClass(class{constructor(t){this.view=t,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(t){var A;let e=t.state.field(O3);e==null?this.cursor!=null&&((A=this.cursor)===null||A===void 0||A.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(t.startState.field(O3)!=e||t.docChanged||t.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:t}=this,A=t.state.field(O3),e=A!=null&&t.coordsAtPos(A);if(!e)return null;let i=t.scrollDOM.getBoundingClientRect();return{left:e.left-i.left+t.scrollDOM.scrollLeft*t.scaleX,top:e.top-i.top+t.scrollDOM.scrollTop*t.scaleY,height:e.bottom-e.top}}drawCursor(t){if(this.cursor){let{scaleX:A,scaleY:e}=this.view;t?(this.cursor.style.left=t.left/A+"px",this.cursor.style.top=t.top/e+"px",this.cursor.style.height=t.height/e+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(t){this.view.state.field(O3)!=t&&this.view.dispatch({effects:yle.of(t)})}},{eventObservers:{dragover(t){this.setDropPos(this.view.posAtCoords({x:t.clientX,y:t.clientY}))},dragleave(t){(t.target==this.view.contentDOM||!this.view.contentDOM.contains(t.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function Dle(){return[O3,SHe]}function hce(t,A,e,i,n){A.lastIndex=0;for(let o=t.iterRange(e,i),r=e,s;!o.next().done;r+=o.value.length)if(!o.lineBreak)for(;s=A.exec(o.value);)n(r+s.index,s)}function kHe(t,A){let e=t.visibleRanges;if(e.length==1&&e[0].from==t.viewport.from&&e[0].to==t.viewport.to)return e;let i=[];for(let{from:n,to:o}of e)n=Math.max(t.state.doc.lineAt(n).from,n-A),o=Math.min(t.state.doc.lineAt(o).to,o+A),i.length&&i[i.length-1].to>=n?i[i.length-1].to=o:i.push({from:n,to:o});return i}var ST=class{constructor(A){let{regexp:e,decoration:i,decorate:n,boundary:o,maxLength:r=1e3}=A;if(!e.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=e,n)this.addMatch=(s,a,c,l)=>n(l,c,c+s[0].length,s,a);else if(typeof i=="function")this.addMatch=(s,a,c,l)=>{let d=i(s,a,c);d&&l(c,c+s[0].length,d)};else if(i)this.addMatch=(s,a,c,l)=>l(c,c+s[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=o,this.maxLength=r}createDeco(A){let e=new ga,i=e.add.bind(e);for(let{from:n,to:o}of kHe(A,this.maxLength))hce(A.state.doc,this.regexp,n,o,(r,s)=>this.addMatch(s,A,r,i));return e.finish()}updateDeco(A,e){let i=1e9,n=-1;return A.docChanged&&A.changes.iterChanges((o,r,s,a)=>{a>=A.view.viewport.from&&s<=A.view.viewport.to&&(i=Math.min(s,i),n=Math.max(a,n))}),A.viewportMoved||n-i>1e3?this.createDeco(A.view):n>-1?this.updateRange(A.view,e.map(A.changes),i,n):e}updateRange(A,e,i,n){for(let o of A.visibleRanges){let r=Math.max(o.from,i),s=Math.min(o.to,n);if(s>=r){let a=A.state.doc.lineAt(r),c=a.toa.from;r--)if(this.boundary.test(a.text[r-1-a.from])){l=r;break}for(;sC.push(f.range(h,B));if(a==c)for(this.regexp.lastIndex=l-a.from;(I=this.regexp.exec(a.text))&&I.indexthis.addMatch(B,A,h,u));e=e.update({filterFrom:l,filterTo:d,filter:(h,B)=>hd,add:C})}}return e}},kT=/x/.unicode!=null?"gu":"g",xHe=new RegExp(`[\0-\b +-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,kT),_He={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},qU=null;function RHe(){var t;if(qU==null&&typeof document<"u"&&document.body){let A=document.body.style;qU=((t=A.tabSize)!==null&&t!==void 0?t:A.MozTabSize)!=null}return qU||!1}var M7=rt.define({combine(t){let A=Os(t,{render:null,specialChars:xHe,addSpecialChars:null});return(A.replaceTabs=!RHe())&&(A.specialChars=new RegExp(" |"+A.specialChars.source,kT)),A.addSpecialChars&&(A.specialChars=new RegExp(A.specialChars.source+"|"+A.addSpecialChars.source,kT)),A}});function vle(t={}){return[M7.of(t),NHe()]}var Bce=null;function NHe(){return Bce||(Bce=Jo.fromClass(class{constructor(t){this.view=t,this.decorations=bt.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(t.state.facet(M7)),this.decorations=this.decorator.createDeco(t)}makeDecorator(t){return new ST({regexp:t.specialChars,decoration:(A,e,i)=>{let{doc:n}=e.state,o=da(A[0],0);if(o==9){let r=n.lineAt(i),s=e.state.tabSize,a=L2(r.text,s,i-r.from);return bt.replace({widget:new _T((s-a%s)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[o]||(this.decorationCache[o]=bt.replace({widget:new xT(t,o)}))},boundary:t.replaceTabs?void 0:/[^]/})}update(t){let A=t.state.facet(M7);t.startState.facet(M7)!=A?(this.decorator=this.makeDecorator(A),this.decorations=this.decorator.createDeco(t.view)):this.decorations=this.decorator.updateDeco(t,this.decorations)}},{decorations:t=>t.decorations}))}var LHe="\u2022";function FHe(t){return t>=32?LHe:t==10?"\u2424":String.fromCharCode(9216+t)}var xT=class extends Ql{constructor(A,e){super(),this.options=A,this.code=e}eq(A){return A.code==this.code}toDOM(A){let e=FHe(this.code),i=A.state.phrase("Control character")+" "+(_He[this.code]||"0x"+this.code.toString(16)),n=this.options.render&&this.options.render(this.code,i,e);if(n)return n;let o=document.createElement("span");return o.textContent=e,o.title=i,o.setAttribute("aria-label",i),o.className="cm-specialChar",o}ignoreEvent(){return!1}},_T=class extends Ql{constructor(A){super(),this.width=A}eq(A){return A.width==this.width}toDOM(){let A=document.createElement("span");return A.textContent=" ",A.className="cm-tab",A.style.width=this.width+"px",A}ignoreEvent(){return!1}};function ble(){return KHe}var GHe=bt.line({class:"cm-activeLine"}),KHe=Jo.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.docChanged||t.selectionSet)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let A=-1,e=[];for(let i of t.state.selection.ranges){let n=t.lineBlockAt(i.head);n.from>A&&(e.push(GHe.range(n.from)),A=n.from)}return bt.set(e)}},{decorations:t=>t.decorations});var RT=2e3;function UHe(t,A,e){let i=Math.min(A.line,e.line),n=Math.max(A.line,e.line),o=[];if(A.off>RT||e.off>RT||A.col<0||e.col<0){let r=Math.min(A.off,e.off),s=Math.max(A.off,e.off);for(let a=i;a<=n;a++){let c=t.doc.line(a);c.length<=s&&o.push(fA.range(c.from+r,c.to+s))}}else{let r=Math.min(A.col,e.col),s=Math.max(A.col,e.col);for(let a=i;a<=n;a++){let c=t.doc.line(a),l=d7(c.text,r,t.tabSize,!0);if(l<0)o.push(fA.cursor(c.to));else{let d=d7(c.text,s,t.tabSize);o.push(fA.range(c.from+l,c.from+d))}}}return o}function THe(t,A){let e=t.coordsAtPos(t.viewport.from);return e?Math.round(Math.abs((e.left-A)/t.defaultCharacterWidth)):-1}function Ece(t,A){let e=t.posAtCoords({x:A.clientX,y:A.clientY},!1),i=t.state.doc.lineAt(e),n=e-i.from,o=n>RT?-1:n==i.length?THe(t,A.clientX):L2(i.text,t.state.tabSize,e-i.from);return{line:i.number,col:o,off:n}}function OHe(t,A){let e=Ece(t,A),i=t.state.selection;return e?{update(n){if(n.docChanged){let o=n.changes.mapPos(n.startState.doc.line(e.line).from),r=n.state.doc.lineAt(o);e={line:r.number,col:e.col,off:Math.min(e.off,r.length)},i=i.map(n.changes)}},get(n,o,r){let s=Ece(t,n);if(!s)return i;let a=UHe(t.state,e,s);return a.length?r?fA.create(a.concat(i.ranges)):fA.create(a):i}}:null}function Mle(t){let A=t?.eventFilter||(e=>e.altKey&&e.button==0);return ai.mouseSelectionStyle.of((e,i)=>A(i)?OHe(e,i):null)}var JHe={Alt:[18,t=>!!t.altKey],Control:[17,t=>!!t.ctrlKey],Shift:[16,t=>!!t.shiftKey],Meta:[91,t=>!!t.metaKey]},YHe={style:"cursor: crosshair"};function Sle(t={}){let[A,e]=JHe[t.key||"Alt"],i=Jo.fromClass(class{constructor(n){this.view=n,this.isDown=!1}set(n){this.isDown!=n&&(this.isDown=n,this.view.update([]))}},{eventObservers:{keydown(n){this.set(n.keyCode==A||e(n))},keyup(n){(n.keyCode==A||!e(n))&&this.set(!1)},mousemove(n){this.set(e(n))}}});return[i,ai.contentAttributes.of(n=>{var o;return!((o=n.plugin(i))===null||o===void 0)&&o.isDown?YHe:null})]}var K3="-10000px",T7=class{constructor(A,e,i,n){this.facet=e,this.createTooltipView=i,this.removeTooltipView=n,this.input=A.state.facet(e),this.tooltips=this.input.filter(r=>r);let o=null;this.tooltipViews=this.tooltips.map(r=>o=i(r,o))}update(A,e){var i;let n=A.state.facet(this.facet),o=n.filter(a=>a);if(n===this.input){for(let a of this.tooltipViews)a.update&&a.update(A);return!1}let r=[],s=e?[]:null;for(let a=0;ae[c]=a),e.length=s.length),this.input=n,this.tooltips=o,this.tooltipViews=r,!0}};function HHe(t){let A=t.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:A.clientHeight,right:A.clientWidth}}var WU=rt.define({combine:t=>{var A,e,i;return{position:dt.ios?"absolute":((A=t.find(n=>n.position))===null||A===void 0?void 0:A.position)||"fixed",parent:((e=t.find(n=>n.parent))===null||e===void 0?void 0:e.parent)||null,tooltipSpace:((i=t.find(n=>n.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||HHe}}}),fce=new WeakMap,HT=Jo.fromClass(class{constructor(t){this.view=t,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let A=t.state.facet(WU);this.position=A.position,this.parent=A.parent,this.classes=t.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new T7(t,Bf,(e,i)=>this.createTooltip(e,i),e=>{this.resizeObserver&&this.resizeObserver.unobserve(e.dom),e.dom.remove()}),this.above=this.manager.tooltips.map(e=>!!e.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(e=>{Date.now()>this.lastTransaction-50&&e.length>0&&e[e.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),t.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let t of this.manager.tooltipViews)this.intersectionObserver.observe(t.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(t){t.transactions.length&&(this.lastTransaction=Date.now());let A=this.manager.update(t,this.above);A&&this.observeIntersection();let e=A||t.geometryChanged,i=t.state.facet(WU);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let n of this.manager.tooltipViews)n.dom.style.position=this.position;e=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let n of this.manager.tooltipViews)this.container.appendChild(n.dom);e=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);e&&this.maybeMeasure()}createTooltip(t,A){let e=t.create(this.view),i=A?A.dom:null;if(e.dom.classList.add("cm-tooltip"),t.arrow&&!e.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let n=document.createElement("div");n.className="cm-tooltip-arrow",e.dom.appendChild(n)}return e.dom.style.position=this.position,e.dom.style.top=K3,e.dom.style.left="0px",this.container.insertBefore(e.dom,i),e.mount&&e.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(e.dom),e}destroy(){var t,A,e;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),(t=i.destroy)===null||t===void 0||t.call(i);this.parent&&this.container.remove(),(A=this.resizeObserver)===null||A===void 0||A.disconnect(),(e=this.intersectionObserver)===null||e===void 0||e.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let t=1,A=1,e=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:o}=this.manager.tooltipViews[0];if(dt.gecko)e=o.offsetParent!=this.container.ownerDocument.body;else if(o.style.top==K3&&o.style.left=="0px"){let r=o.getBoundingClientRect();e=Math.abs(r.top+1e4)>1||Math.abs(r.left)>1}}if(e||this.position=="absolute")if(this.parent){let o=this.parent.getBoundingClientRect();o.width&&o.height&&(t=o.width/this.parent.offsetWidth,A=o.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:A}=this.view.viewState);let i=this.view.scrollDOM.getBoundingClientRect(),n=JT(this.view);return{visible:{left:i.left+n.left,top:i.top+n.top,right:i.right-n.right,bottom:i.bottom-n.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((o,r)=>{let s=this.manager.tooltipViews[r];return s.getCoords?s.getCoords(o.pos):this.view.coordsAtPos(o.pos)}),size:this.manager.tooltipViews.map(({dom:o})=>o.getBoundingClientRect()),space:this.view.state.facet(WU).tooltipSpace(this.view),scaleX:t,scaleY:A,makeAbsolute:e}}writeMeasure(t){var A;if(t.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let s of this.manager.tooltipViews)s.dom.style.position="absolute"}let{visible:e,space:i,scaleX:n,scaleY:o}=t,r=[];for(let s=0;s=Math.min(e.bottom,i.bottom)||d.rightMath.min(e.right,i.right)+.1)){l.style.top=K3;continue}let I=a.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,u=I?7:0,h=C.right-C.left,B=(A=fce.get(c))!==null&&A!==void 0?A:C.bottom-C.top,f=c.offset||PHe,b=this.view.textDirection==Oo.LTR,k=C.width>i.right-i.left?b?i.left:i.right-C.width:b?Math.max(i.left,Math.min(d.left-(I?14:0)+f.x,i.right-h)):Math.min(Math.max(i.left,d.left-h+(I?14:0)-f.x),i.right-h),S=this.above[s];!a.strictSide&&(S?d.top-B-u-f.yi.bottom)&&S==i.bottom-d.bottom>d.top-i.top&&(S=this.above[s]=!S);let w=(S?d.top-i.top:i.bottom-d.bottom)-u;if(wk&&J.top<_+B&&J.bottom>_&&(_=S?J.top-B-2-u:J.bottom+u+2);if(this.position=="absolute"?(l.style.top=(_-t.parent.top)/o+"px",Qce(l,(k-t.parent.left)/n)):(l.style.top=_/o+"px",Qce(l,k/n)),I){let J=d.left+(b?f.x:-f.x)-(k+14-7);I.style.left=J/n+"px"}c.overlap!==!0&&r.push({left:k,top:_,right:K,bottom:_+B}),l.classList.toggle("cm-tooltip-above",S),l.classList.toggle("cm-tooltip-below",!S),c.positioned&&c.positioned(t.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let t of this.manager.tooltipViews)t.dom.style.top=K3}},{eventObservers:{scroll(){this.maybeMeasure()}}});function Qce(t,A){let e=parseInt(t.style.left,10);(isNaN(e)||Math.abs(A-e)>1)&&(t.style.left=A+"px")}var zHe=ai.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),PHe={x:0,y:0},Bf=rt.define({enables:[HT,zHe]}),O7=rt.define({combine:t=>t.reduce((A,e)=>A.concat(e),[])}),J7=class t{static create(A){return new t(A)}constructor(A){this.view=A,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new T7(A,O7,(e,i)=>this.createHostedView(e,i),e=>e.dom.remove())}createHostedView(A,e){let i=A.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(i.dom,e?e.dom.nextSibling:this.dom.firstChild),this.mounted&&i.mount&&i.mount(this.view),i}mount(A){for(let e of this.manager.tooltipViews)e.mount&&e.mount(A);this.mounted=!0}positioned(A){for(let e of this.manager.tooltipViews)e.positioned&&e.positioned(A)}update(A){this.manager.update(A)}destroy(){var A;for(let e of this.manager.tooltipViews)(A=e.destroy)===null||A===void 0||A.call(e)}passProp(A){let e;for(let i of this.manager.tooltipViews){let n=i[A];if(n!==void 0){if(e===void 0)e=n;else if(e!==n)return}}return e}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}},jHe=Bf.compute([O7],t=>{let A=t.facet(O7);return A.length===0?null:{pos:Math.min(...A.map(e=>e.pos)),end:Math.max(...A.map(e=>{var i;return(i=e.end)!==null&&i!==void 0?i:e.pos})),create:J7.create,above:A[0].above,arrow:A.some(e=>e.arrow)}}),NT=class{constructor(A,e,i,n,o){this.view=A,this.source=e,this.field=i,this.setHover=n,this.hoverTime=o,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:A.dom,time:0},this.checkHover=this.checkHover.bind(this),A.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),A.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let A=Date.now()-this.lastMove.time;As.bottom||e.xs.right+A.defaultCharacterWidth)return;let a=A.bidiSpans(A.state.doc.lineAt(n)).find(l=>l.from<=n&&l.to>=n),c=a&&a.dir==Oo.RTL?-1:1;o=e.x{this.pending==s&&(this.pending=null,a&&!(Array.isArray(a)&&!a.length)&&A.dispatch({effects:this.setHover.of(Array.isArray(a)?a:[a])}))},a=>Js(A.state,a,"hover tooltip"))}else r&&!(Array.isArray(r)&&!r.length)&&A.dispatch({effects:this.setHover.of(Array.isArray(r)?r:[r])})}get tooltip(){let A=this.view.plugin(HT),e=A?A.manager.tooltips.findIndex(i=>i.create==J7.create):-1;return e>-1?A.manager.tooltipViews[e]:null}mousemove(A){var e,i;this.lastMove={x:A.clientX,y:A.clientY,target:A.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:n,tooltip:o}=this;if(n.length&&o&&!VHe(o.dom,A)||this.pending){let{pos:r}=n[0]||this.pending,s=(i=(e=n[0])===null||e===void 0?void 0:e.end)!==null&&i!==void 0?i:r;(r==s?this.view.posAtCoords(this.lastMove)!=r:!qHe(this.view,r,s,A.clientX,A.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(A){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:e}=this;if(e.length){let{tooltip:i}=this;i&&i.dom.contains(A.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(A){let e=i=>{A.removeEventListener("mouseleave",e),this.active.length&&!this.view.dom.contains(i.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};A.addEventListener("mouseleave",e)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}},p7=4;function VHe(t,A){let{left:e,right:i,top:n,bottom:o}=t.getBoundingClientRect(),r;if(r=t.querySelector(".cm-tooltip-arrow")){let s=r.getBoundingClientRect();n=Math.min(s.top,n),o=Math.max(s.bottom,o)}return A.clientX>=e-p7&&A.clientX<=i+p7&&A.clientY>=n-p7&&A.clientY<=o+p7}function qHe(t,A,e,i,n,o){let r=t.scrollDOM.getBoundingClientRect(),s=t.documentTop+t.documentPadding.top+t.contentHeight;if(r.left>i||r.rightn||Math.min(r.bottom,s)=A&&a<=e}function kle(t,A={}){let e=tn.define(),i=_r.define({create(){return[]},update(n,o){if(n.length&&(A.hideOnChange&&(o.docChanged||o.selection)?n=[]:A.hideOn&&(n=n.filter(r=>!A.hideOn(o,r))),o.docChanged)){let r=[];for(let s of n){let a=o.changes.mapPos(s.pos,-1,ca.TrackDel);if(a!=null){let c=Object.assign(Object.create(null),s);c.pos=a,c.end!=null&&(c.end=o.changes.mapPos(c.end)),r.push(c)}}n=r}for(let r of o.effects)r.is(e)&&(n=r.value),r.is(WHe)&&(n=[]);return n},provide:n=>O7.from(n)});return{active:i,extension:[i,Jo.define(n=>new NT(n,t,i,e,A.hoverTime||300)),jHe]}}function zT(t,A){let e=t.plugin(HT);if(!e)return null;let i=e.manager.tooltips.indexOf(A);return i<0?null:e.manager.tooltipViews[i]}var WHe=tn.define();var mce=rt.define({combine(t){let A,e;for(let i of t)A=A||i.topContainer,e=e||i.bottomContainer;return{topContainer:A,bottomContainer:e}}});function Ju(t,A){let e=t.plugin(xle),i=e?e.specs.indexOf(A):-1;return i>-1?e.panels[i]:null}var xle=Jo.fromClass(class{constructor(t){this.input=t.state.facet(Ou),this.specs=this.input.filter(e=>e),this.panels=this.specs.map(e=>e(t));let A=t.state.facet(mce);this.top=new df(t,!0,A.topContainer),this.bottom=new df(t,!1,A.bottomContainer),this.top.sync(this.panels.filter(e=>e.top)),this.bottom.sync(this.panels.filter(e=>!e.top));for(let e of this.panels)e.dom.classList.add("cm-panel"),e.mount&&e.mount()}update(t){let A=t.state.facet(mce);this.top.container!=A.topContainer&&(this.top.sync([]),this.top=new df(t.view,!0,A.topContainer)),this.bottom.container!=A.bottomContainer&&(this.bottom.sync([]),this.bottom=new df(t.view,!1,A.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let e=t.state.facet(Ou);if(e!=this.input){let i=e.filter(a=>a),n=[],o=[],r=[],s=[];for(let a of i){let c=this.specs.indexOf(a),l;c<0?(l=a(t.view),s.push(l)):(l=this.panels[c],l.update&&l.update(t)),n.push(l),(l.top?o:r).push(l)}this.specs=i,this.panels=n,this.top.sync(o),this.bottom.sync(r);for(let a of s)a.dom.classList.add("cm-panel"),a.mount&&a.mount()}else for(let i of this.panels)i.update&&i.update(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>ai.scrollMargins.of(A=>{let e=A.plugin(t);return e&&{top:e.top.scrollMargin(),bottom:e.bottom.scrollMargin()}})}),df=class{constructor(A,e,i){this.view=A,this.top=e,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(A){for(let e of this.panels)e.destroy&&A.indexOf(e)<0&&e.destroy();this.panels=A,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let e=this.container||this.view.dom;e.insertBefore(this.dom,this.top?e.firstChild:null)}let A=this.dom.firstChild;for(let e of this.panels)if(e.dom.parentNode==this.dom){for(;A!=e.dom;)A=pce(A);A=A.nextSibling}else this.dom.insertBefore(e.dom,A);for(;A;)A=pce(A)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let A of this.classes.split(" "))A&&this.container.classList.remove(A);for(let A of(this.classes=this.view.themeClasses).split(" "))A&&this.container.classList.add(A)}}};function pce(t){let A=t.nextSibling;return t.remove(),A}var Ou=rt.define({enables:xle});var Kc=class extends Yg{compare(A){return this==A||this.constructor==A.constructor&&this.eq(A)}eq(A){return!1}destroy(A){}};Kc.prototype.elementClass="";Kc.prototype.toDOM=void 0;Kc.prototype.mapMode=ca.TrackBefore;Kc.prototype.startSide=Kc.prototype.endSide=-1;Kc.prototype.point=!0;var S7=rt.define(),ZHe=rt.define(),XHe={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>To.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},j3=rt.define();function q7(t){return[_le(),j3.of(ae(ae({},XHe),t))]}var LT=rt.define({combine:t=>t.some(A=>A)});function _le(t){let A=[$He];return t&&t.fixed===!1&&A.push(LT.of(!0)),A}var $He=Jo.fromClass(class{constructor(t){this.view=t,this.domAfter=null,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet(j3).map(A=>new Y7(t,A)),this.fixed=!t.state.facet(LT);for(let A of this.gutters)A.config.side=="after"?this.getDOMAfter().appendChild(A.dom):this.dom.appendChild(A.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(t){if(this.updateGutters(t)){let A=this.prevViewport,e=t.view.viewport,i=Math.min(A.to,e.to)-Math.max(A.from,e.from);this.syncGutters(i<(e.to-e.from)*.8)}if(t.geometryChanged){let A=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=A,this.domAfter&&(this.domAfter.style.minHeight=A)}this.view.state.facet(LT)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=t.view.viewport}syncGutters(t){let A=this.dom.nextSibling;t&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let e=To.iter(this.view.state.facet(S7),this.view.viewport.from),i=[],n=this.gutters.map(o=>new GT(o,this.view.viewport,-this.view.documentPadding.top));for(let o of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(o.type)){let r=!0;for(let s of o.type)if(s.type==ac.Text&&r){FT(e,i,s.from);for(let a of n)a.line(this.view,s,i);r=!1}else if(s.widget)for(let a of n)a.widget(this.view,s)}else if(o.type==ac.Text){FT(e,i,o.from);for(let r of n)r.line(this.view,o,i)}else if(o.widget)for(let r of n)r.widget(this.view,o);for(let o of n)o.finish();t&&(this.view.scrollDOM.insertBefore(this.dom,A),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(t){let A=t.startState.facet(j3),e=t.state.facet(j3),i=t.docChanged||t.heightChanged||t.viewportChanged||!To.eq(t.startState.facet(S7),t.state.facet(S7),t.view.viewport.from,t.view.viewport.to);if(A==e)for(let n of this.gutters)n.update(t)&&(i=!0);else{i=!0;let n=[];for(let o of e){let r=A.indexOf(o);r<0?n.push(new Y7(this.view,o)):(this.gutters[r].update(t),n.push(this.gutters[r]))}for(let o of this.gutters)o.dom.remove(),n.indexOf(o)<0&&o.destroy();for(let o of n)o.config.side=="after"?this.getDOMAfter().appendChild(o.dom):this.dom.appendChild(o.dom);this.gutters=n}return i}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:t=>ai.scrollMargins.of(A=>{let e=A.plugin(t);if(!e||e.gutters.length==0||!e.fixed)return null;let i=e.dom.offsetWidth*A.scaleX,n=e.domAfter?e.domAfter.offsetWidth*A.scaleX:0;return A.textDirection==Oo.LTR?{left:i,right:n}:{right:i,left:n}})});function wce(t){return Array.isArray(t)?t:[t]}function FT(t,A,e){for(;t.value&&t.from<=e;)t.from==e&&A.push(t.value),t.next()}var GT=class{constructor(A,e,i){this.gutter=A,this.height=i,this.i=0,this.cursor=To.iter(A.markers,e.from)}addElement(A,e,i){let{gutter:n}=this,o=(e.top-this.height)/A.scaleY,r=e.height/A.scaleY;if(this.i==n.elements.length){let s=new H7(A,r,o,i);n.elements.push(s),n.dom.appendChild(s.dom)}else n.elements[this.i].update(A,r,o,i);this.height=e.bottom,this.i++}line(A,e,i){let n=[];FT(this.cursor,n,e.from),i.length&&(n=n.concat(i));let o=this.gutter.config.lineMarker(A,e,n);o&&n.unshift(o);let r=this.gutter;n.length==0&&!r.config.renderEmptyElements||this.addElement(A,e,n)}widget(A,e){let i=this.gutter.config.widgetMarker(A,e.widget,e),n=i?[i]:null;for(let o of A.state.facet(ZHe)){let r=o(A,e.widget,e);r&&(n||(n=[])).push(r)}n&&this.addElement(A,e,n)}finish(){let A=this.gutter;for(;A.elements.length>this.i;){let e=A.elements.pop();A.dom.removeChild(e.dom),e.destroy()}}},Y7=class{constructor(A,e){this.view=A,this.config=e,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in e.domEventHandlers)this.dom.addEventListener(i,n=>{let o=n.target,r;if(o!=this.dom&&this.dom.contains(o)){for(;o.parentNode!=this.dom;)o=o.parentNode;let a=o.getBoundingClientRect();r=(a.top+a.bottom)/2}else r=n.clientY;let s=A.lineBlockAtHeight(r-A.documentTop);e.domEventHandlers[i](A,s,n)&&n.preventDefault()});this.markers=wce(e.markers(A)),e.initialSpacer&&(this.spacer=new H7(A,0,0,[e.initialSpacer(A)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(A){let e=this.markers;if(this.markers=wce(this.config.markers(A.view)),this.spacer&&this.config.updateSpacer){let n=this.config.updateSpacer(this.spacer.markers[0],A);n!=this.spacer.markers[0]&&this.spacer.update(A.view,0,0,[n])}let i=A.view.viewport;return!To.eq(this.markers,e,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(A):!1)}destroy(){for(let A of this.elements)A.destroy()}},H7=class{constructor(A,e,i,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(A,e,i,n)}update(A,e,i,n){this.height!=e&&(this.height=e,this.dom.style.height=e+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),eze(this.markers,n)||this.setMarkers(A,n)}setMarkers(A,e){let i="cm-gutterElement",n=this.dom.firstChild;for(let o=0,r=0;;){let s=r,a=oo(s,a,c)||r(s,a,c):r}return i}})}}),V3=class extends Kc{constructor(A){super(),this.number=A}eq(A){return this.number==A.number}toDOM(){return document.createTextNode(this.number)}};function ZU(t,A){return t.state.facet(Cf).formatNumber(A,t.state)}var ize=j3.compute([Cf],t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(A){return A.state.facet(Aze)},lineMarker(A,e,i){return i.some(n=>n.toDOM)?null:new V3(ZU(A,A.state.doc.lineAt(e.from).number))},widgetMarker:(A,e,i)=>{for(let n of A.state.facet(tze)){let o=n(A,e,i);if(o)return o}return null},lineMarkerChange:A=>A.startState.facet(Cf)!=A.state.facet(Cf),initialSpacer(A){return new V3(ZU(A,yce(A.state.doc.lines)))},updateSpacer(A,e){let i=ZU(e.view,yce(e.view.state.doc.lines));return i==A.number?A:new V3(i)},domEventHandlers:t.facet(Cf).domEventHandlers,side:"before"}));function Rle(t={}){return[Cf.of(t),_le(),ize]}function yce(t){let A=9;for(;A{let A=[],e=-1;for(let i of t.selection.ranges){let n=t.doc.lineAt(i.head).from;n>e&&(e=n,A.push(nze.range(n)))}return To.of(A)});function Nle(){return oze}var rze=0,op=class{constructor(A,e){this.from=A,this.to=e}},ki=class{constructor(A={}){this.id=rze++,this.perNode=!!A.perNode,this.deserialize=A.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(A){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof A!="function"&&(A=Na.match(A)),e=>{let i=A(e);return i===void 0?null:[this,i]}}};ki.closedBy=new ki({deserialize:t=>t.split(" ")});ki.openedBy=new ki({deserialize:t=>t.split(" ")});ki.group=new ki({deserialize:t=>t.split(" ")});ki.isolate=new ki({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}});ki.contextHash=new ki({perNode:!0});ki.lookAhead=new ki({perNode:!0});ki.mounted=new ki({perNode:!0});var Ef=class{constructor(A,e,i){this.tree=A,this.overlay=e,this.parser=i}static get(A){return A&&A.props&&A.props[ki.mounted.id]}},sze=Object.create(null),Na=class t{constructor(A,e,i,n=0){this.name=A,this.props=e,this.id=i,this.flags=n}static define(A){let e=A.props&&A.props.length?Object.create(null):sze,i=(A.top?1:0)|(A.skipped?2:0)|(A.error?4:0)|(A.name==null?8:0),n=new t(A.name||"",e,A.id,i);if(A.props){for(let o of A.props)if(Array.isArray(o)||(o=o(n)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");e[o[0].id]=o[1]}}return n}prop(A){return this.props[A.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(A){if(typeof A=="string"){if(this.name==A)return!0;let e=this.prop(ki.group);return e?e.indexOf(A)>-1:!1}return this.id==A}static match(A){let e=Object.create(null);for(let i in A)for(let n of i.split(" "))e[n]=A[i];return i=>{for(let n=i.prop(ki.group),o=-1;o<(n?n.length:0);o++){let r=e[o<0?i.name:n[o]];if(r)return r}}}};Na.none=new Na("",Object.create(null),0,8);var rp=class t{constructor(A){this.types=A;for(let e=0;e0;for(let a=this.cursor(r|bs.IncludeAnonymous);;){let c=!1;if(a.from<=o&&a.to>=n&&(!s&&a.type.isAnonymous||e(a)!==!1)){if(a.firstChild())continue;c=!0}for(;c&&i&&(s||!a.type.isAnonymous)&&i(a),!a.nextSibling();){if(!a.parent())return;c=!0}}}prop(A){return A.perNode?this.props?this.props[A.id]:void 0:this.type.prop(A)}get propValues(){let A=[];if(this.props)for(let e in this.props)A.push([+e,this.props[e]]);return A}balance(A={}){return this.children.length<=8?this:XT(Na.none,this.children,this.positions,0,this.children.length,0,this.length,(e,i,n)=>new t(this.type,e,i,n,this.propValues),A.makeTree||((e,i,n)=>new t(Na.none,e,i,n)))}static build(A){return cze(A)}};as.empty=new as(Na.none,[],[],0);var PT=class t{constructor(A,e){this.buffer=A,this.index=e}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new t(this.buffer,this.index)}},xC=class t{constructor(A,e,i){this.buffer=A,this.length=e,this.set=i}get type(){return Na.none}toString(){let A=[];for(let e=0;e0));a=r[a+3]);return s}slice(A,e,i){let n=this.buffer,o=new Uint16Array(e-A),r=0;for(let s=A,a=0;s=A&&eA;case 1:return e<=A&&i>A;case 2:return i>A;case 4:return!0}}function sp(t,A,e,i){for(var n;t.from==t.to||(e<1?t.from>=A:t.from>A)||(e>-1?t.to<=A:t.to0?s.length:-1;A!=c;A+=e){let l=s[A],d=a[A]+r.from;if(Kle(n,i,d,d+l.length)){if(l instanceof xC){if(o&bs.ExcludeBuffers)continue;let C=l.findChild(0,l.buffer.length,e,i-d,n);if(C>-1)return new ap(new VT(r,l,A,d),null,C)}else if(o&bs.IncludeAnonymous||!l.type.isAnonymous||ZT(l)){let C;if(!(o&bs.IgnoreMounts)&&(C=Ef.get(l))&&!C.overlay)return new t(C.tree,d,A,r);let I=new t(l,d,A,r);return o&bs.IncludeAnonymous||!I.type.isAnonymous?I:I.nextChild(e<0?l.children.length-1:0,e,i,n)}}}if(o&bs.IncludeAnonymous||!r.type.isAnonymous||(r.index>=0?A=r.index+e:A=e<0?-1:r._parent._tree.children.length,r=r._parent,!r))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(A){return this.nextChild(0,1,A,2)}childBefore(A){return this.nextChild(this._tree.children.length-1,-1,A,-2)}enter(A,e,i=0){let n;if(!(i&bs.IgnoreOverlays)&&(n=Ef.get(this._tree))&&n.overlay){let o=A-this.from;for(let{from:r,to:s}of n.overlay)if((e>0?r<=o:r=o:s>o))return new t(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,A,e,i)}nextSignificantParent(){let A=this;for(;A.type.isAnonymous&&A._parent;)A=A._parent;return A}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function Fle(t,A,e,i){let n=t.cursor(),o=[];if(!n.firstChild())return o;if(e!=null){for(let r=!1;!r;)if(r=n.type.is(e),!n.nextSibling())return o}for(;;){if(i!=null&&n.type.is(i))return o;if(n.type.is(A)&&o.push(n.node),!n.nextSibling())return i==null?o:[]}}function jT(t,A,e=A.length-1){for(let i=t;e>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(A[e]&&A[e]!=i.name)return!1;e--}}return!0}var VT=class{constructor(A,e,i,n){this.parent=A,this.buffer=e,this.index=i,this.start=n}},ap=class t extends X7{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(A,e,i){super(),this.context=A,this._parent=e,this.index=i,this.type=A.buffer.set.types[A.buffer.buffer[i]]}child(A,e,i){let{buffer:n}=this.context,o=n.findChild(this.index+4,n.buffer[this.index+3],A,e-this.context.start,i);return o<0?null:new t(this.context,this,o)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(A){return this.child(1,A,2)}childBefore(A){return this.child(-1,A,-2)}enter(A,e,i=0){if(i&bs.ExcludeBuffers)return null;let{buffer:n}=this.context,o=n.findChild(this.index+4,n.buffer[this.index+3],e>0?1:-1,A-this.context.start,e);return o<0?null:new t(this.context,this,o)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(A){return this._parent?null:this.context.parent.nextChild(this.context.index+A,A,0,4)}get nextSibling(){let{buffer:A}=this.context,e=A.buffer[this.index+3];return e<(this._parent?A.buffer[this._parent.index+3]:A.buffer.length)?new t(this.context,this._parent,e):this.externalSibling(1)}get prevSibling(){let{buffer:A}=this.context,e=this._parent?this._parent.index+4:0;return this.index==e?this.externalSibling(-1):new t(this.context,this._parent,A.findChild(e,this.index,-1,0,4))}get tree(){return null}toTree(){let A=[],e=[],{buffer:i}=this.context,n=this.index+4,o=i.buffer[this.index+3];if(o>n){let r=i.buffer[this.index+1];A.push(i.slice(n,o,r)),e.push(0)}return new as(this.type,A,e,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function Ule(t){if(!t.length)return null;let A=0,e=t[0];for(let o=1;oe.from||r.to=A){let s=new wd(r.tree,r.overlay[0].from+o.from,-1,o);(n||(n=[i])).push(sp(s,A,e,!1))}}return n?Ule(n):i}var cp=class{get name(){return this.type.name}constructor(A,e=0){if(this.mode=e,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,A instanceof wd)this.yieldNode(A);else{this._tree=A.context.parent,this.buffer=A.context;for(let i=A._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=A,this.yieldBuf(A.index)}}yieldNode(A){return A?(this._tree=A,this.type=A.type,this.from=A.from,this.to=A.to,!0):!1}yieldBuf(A,e){this.index=A;let{start:i,buffer:n}=this.buffer;return this.type=e||n.set.types[n.buffer[A]],this.from=i+n.buffer[A+1],this.to=i+n.buffer[A+2],!0}yield(A){return A?A instanceof wd?(this.buffer=null,this.yieldNode(A)):(this.buffer=A.context,this.yieldBuf(A.index,A.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(A,e,i){if(!this.buffer)return this.yield(this._tree.nextChild(A<0?this._tree._tree.children.length-1:0,A,e,i,this.mode));let{buffer:n}=this.buffer,o=n.findChild(this.index+4,n.buffer[this.index+3],A,e-this.buffer.start,i);return o<0?!1:(this.stack.push(this.index),this.yieldBuf(o))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(A){return this.enterChild(1,A,2)}childBefore(A){return this.enterChild(-1,A,-2)}enter(A,e,i=this.mode){return this.buffer?i&bs.ExcludeBuffers?!1:this.enterChild(1,A,e):this.yield(this._tree.enter(A,e,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&bs.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let A=this.mode&bs.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(A)}sibling(A){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+A,A,0,4,this.mode)):!1;let{buffer:e}=this.buffer,i=this.stack.length-1;if(A<0){let n=i<0?0:this.stack[i]+4;if(this.index!=n)return this.yieldBuf(e.findChild(n,this.index,-1,0,4))}else{let n=e.buffer[this.index+3];if(n<(i<0?e.buffer.length:e.buffer[this.stack[i]+3]))return this.yieldBuf(n)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+A,A,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(A){let e,i,{buffer:n}=this;if(n){if(A>0){if(this.index-1)for(let o=e+A,r=A<0?-1:i._tree.children.length;o!=r;o+=A){let s=i._tree.children[o];if(this.mode&bs.IncludeAnonymous||s instanceof xC||!s.type.isAnonymous||ZT(s))return!1}return!0}move(A,e){if(e&&this.enterChild(A,0,4))return!0;for(;;){if(this.sibling(A))return!0;if(this.atLastNode(A)||!this.parent())return!1}}next(A=!0){return this.move(1,A)}prev(A=!0){return this.move(-1,A)}moveTo(A,e=0){for(;(this.from==this.to||(e<1?this.from>=A:this.from>A)||(e>-1?this.to<=A:this.to=0;){for(let r=A;r;r=r._parent)if(r.index==n){if(n==this.index)return r;e=r,i=o+1;break e}n=this.stack[--o]}for(let n=i;n=0;o--){if(o<0)return jT(this._tree,A,n);let r=i[e.buffer[this.stack[o]]];if(!r.isAnonymous){if(A[n]&&A[n]!=r.name)return!1;n--}}return!0}};function ZT(t){return t.children.some(A=>A instanceof xC||!A.type.isAnonymous||ZT(A))}function cze(t){var A;let{buffer:e,nodeSet:i,maxBufferLength:n=1024,reused:o=[],minRepeatType:r=i.types.length}=t,s=Array.isArray(e)?new PT(e,e.length):e,a=i.types,c=0,l=0;function d(w,_,K,J,O,H){let{id:V,start:Z,end:ye,size:P}=s,se=l,X=c;for(;P<0;)if(s.next(),P==-1){let Te=o[V];K.push(Te),J.push(Z-w);return}else if(P==-3){c=V;return}else if(P==-4){l=V;return}else throw new RangeError(`Unrecognized record size: ${P}`);let ue=a[V],oe,le,me=Z-w;if(ye-Z<=n&&(le=B(s.pos-_,O))){let Te=new Uint16Array(le.size-le.skip),$e=s.pos-le.size,Je=Te.length;for(;s.pos>$e;)Je=f(le.start,Te,Je);oe=new xC(Te,ye-le.start,i),me=le.start-w}else{let Te=s.pos-P;s.next();let $e=[],Je=[],Qe=V>=r?V:-1,He=0,PA=ye;for(;s.pos>Te;)Qe>=0&&s.id==Qe&&s.size>=0?(s.end<=PA-n&&(u($e,Je,Z,He,s.end,PA,Qe,se,X),He=$e.length,PA=s.end),s.next()):H>2500?C(Z,Te,$e,Je):d(Z,Te,$e,Je,Qe,H+1);if(Qe>=0&&He>0&&He<$e.length&&u($e,Je,Z,He,Z,PA,Qe,se,X),$e.reverse(),Je.reverse(),Qe>-1&&He>0){let JA=I(ue,X);oe=XT(ue,$e,Je,0,$e.length,0,ye-Z,JA,JA)}else oe=h(ue,$e,Je,ye-Z,se-ye,X)}K.push(oe),J.push(me)}function C(w,_,K,J){let O=[],H=0,V=-1;for(;s.pos>_;){let{id:Z,start:ye,end:P,size:se}=s;if(se>4)s.next();else{if(V>-1&&ye=0;P-=3)Z[se++]=O[P],Z[se++]=O[P+1]-ye,Z[se++]=O[P+2]-ye,Z[se++]=se;K.push(new xC(Z,O[2]-ye,i)),J.push(ye-w)}}function I(w,_){return(K,J,O)=>{let H=0,V=K.length-1,Z,ye;if(V>=0&&(Z=K[V])instanceof as){if(!V&&Z.type==w&&Z.length==O)return Z;(ye=Z.prop(ki.lookAhead))&&(H=J[V]+Z.length+ye)}return h(w,K,J,O,H,_)}}function u(w,_,K,J,O,H,V,Z,ye){let P=[],se=[];for(;w.length>J;)P.push(w.pop()),se.push(_.pop()+K-O);w.push(h(i.types[V],P,se,H-O,Z-H,ye)),_.push(O-K)}function h(w,_,K,J,O,H,V){if(H){let Z=[ki.contextHash,H];V=V?[Z].concat(V):[Z]}if(O>25){let Z=[ki.lookAhead,O];V=V?[Z].concat(V):[Z]}return new as(w,_,K,J,V)}function B(w,_){let K=s.fork(),J=0,O=0,H=0,V=K.end-n,Z={size:0,start:0,skip:0};e:for(let ye=K.pos-w;K.pos>ye;){let P=K.size;if(K.id==_&&P>=0){Z.size=J,Z.start=O,Z.skip=H,H+=4,J+=4,K.next();continue}let se=K.pos-P;if(P<0||se=r?4:0,ue=K.start;for(K.next();K.pos>se;){if(K.size<0)if(K.size==-3)X+=4;else break e;else K.id>=r&&(X+=4);K.next()}O=ue,J+=P,H+=X}return(_<0||J==w)&&(Z.size=J,Z.start=O,Z.skip=H),Z.size>4?Z:void 0}function f(w,_,K){let{id:J,start:O,end:H,size:V}=s;if(s.next(),V>=0&&J4){let ye=s.pos-(V-4);for(;s.pos>ye;)K=f(w,_,K)}_[--K]=Z,_[--K]=H-w,_[--K]=O-w,_[--K]=J}else V==-3?c=J:V==-4&&(l=J);return K}let b=[],k=[];for(;s.pos>0;)d(t.start||0,t.bufferStart||0,b,k,-1,0);let S=(A=t.length)!==null&&A!==void 0?A:b.length?k[0]+b[0].length:0;return new as(a[t.topID],b.reverse(),k.reverse(),S)}var Gle=new WeakMap;function Z7(t,A){if(!t.isAnonymous||A instanceof xC||A.type!=t)return 1;let e=Gle.get(A);if(e==null){e=1;for(let i of A.children){if(i.type!=t||!(i instanceof as)){e=1;break}e+=Z7(t,i)}Gle.set(A,e)}return e}function XT(t,A,e,i,n,o,r,s,a){let c=0;for(let u=i;u=l)break;_+=K}if(k==S+1){if(_>l){let K=u[S];I(K.children,K.positions,0,K.children.length,h[S]+b);continue}d.push(u[S])}else{let K=h[k-1]+u[k-1].length-w;d.push(XT(t,u,h,S,k,w,K,null,a))}C.push(w+b-o)}}return I(A,e,i,n,0),(s||a)(d,C,r)}var Yu=class t{constructor(A,e,i,n,o=!1,r=!1){this.from=A,this.to=e,this.tree=i,this.offset=n,this.open=(o?1:0)|(r?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(A,e=[],i=!1){let n=[new t(0,A.length,A,0,!1,i)];for(let o of e)o.to>A.length&&n.push(o);return n}static applyChanges(A,e,i=128){if(!e.length)return A;let n=[],o=1,r=A.length?A[0]:null;for(let s=0,a=0,c=0;;s++){let l=s=i)for(;r&&r.from=C.from||d<=C.to||c){let I=Math.max(C.from,a)-c,u=Math.min(C.to,d)-c;C=I>=u?null:new t(I,u,C.tree,C.offset+c,s>0,!!l)}if(C&&n.push(C),r.to>d)break;r=onew op(n.from,n.to)):[new op(0,0)]:[new op(0,A.length)],this.createParse(A,e||[],i)}parse(A,e,i){let n=this.startParse(A,e,i);for(;;){let o=n.advance();if(o)return o}}},WT=class{constructor(A){this.string=A}get length(){return this.string.length}chunk(A){return this.string.slice(A)}get lineChunks(){return!1}read(A,e){return this.string.slice(A,e)}};var GTA=new ki({perNode:!0});var lze=0,Pg=class t{constructor(A,e,i,n){this.name=A,this.set=e,this.base=i,this.modified=n,this.id=lze++}toString(){let{name:A}=this;for(let e of this.modified)e.name&&(A=`${e.name}(${A})`);return A}static define(A,e){let i=typeof A=="string"?A:"?";if(A instanceof t&&(e=A),e?.base)throw new Error("Can not derive from a modified tag");let n=new t(i,[],null,[]);if(n.set.push(n),e)for(let o of e.set)n.set.push(o);return n}static defineModifier(A){let e=new tb(A);return i=>i.modified.indexOf(e)>-1?i:tb.get(i.base||i,i.modified.concat(e).sort((n,o)=>n.id-o.id))}},gze=0,tb=class t{constructor(A){this.name=A,this.instances=[],this.id=gze++}static get(A,e){if(!e.length)return A;let i=e[0].instances.find(s=>s.base==A&&dze(e,s.modified));if(i)return i;let n=[],o=new Pg(A.name,n,A,e);for(let s of e)s.instances.push(o);let r=Cze(e);for(let s of A.set)if(!s.modified.length)for(let a of r)n.push(t.get(s,a));return o}};function dze(t,A){return t.length==A.length&&t.every((e,i)=>e==A[i])}function Cze(t){let A=[[]];for(let e=0;ei.length-e.length)}function ib(t){let A=Object.create(null);for(let e in t){let i=t[e];Array.isArray(i)||(i=[i]);for(let n of e.split(" "))if(n){let o=[],r=2,s=n;for(let d=0;;){if(s=="..."&&d>0&&d+3==n.length){r=1;break}let C=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(s);if(!C)throw new RangeError("Invalid path: "+n);if(o.push(C[0]=="*"?"":C[0][0]=='"'?JSON.parse(C[0]):C[0]),d+=C[0].length,d==n.length)break;let I=n[d++];if(d==n.length&&I=="!"){r=0;break}if(I!="/")throw new RangeError("Invalid path: "+n);s=n.slice(d)}let a=o.length-1,c=o[a];if(!c)throw new RangeError("Invalid path: "+n);let l=new Qf(i,r,a>0?o.slice(0,a):null);A[c]=l.sort(A[c])}}return Jle.add(A)}var Jle=new ki,Qf=class{constructor(A,e,i,n){this.tags=A,this.mode=e,this.context=i,this.next=n}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(A){return!A||A.depth{let r=n;for(let s of o)for(let a of s.set){let c=e[a.id];if(c){r=r?r+" "+c:c;break}}return r},scope:i}}function Ize(t,A){let e=null;for(let i of t){let n=i.style(A);n&&(e=e?e+" "+n:n)}return e}function Yle(t,A,e,i=0,n=t.length){let o=new eO(i,Array.isArray(A)?A:[A],e);o.highlightRange(t.cursor(),i,n,"",o.highlighters),o.flush(n)}var eO=class{constructor(A,e,i){this.at=A,this.highlighters=e,this.span=i,this.class=""}startSpan(A,e){e!=this.class&&(this.flush(A),A>this.at&&(this.at=A),this.class=e)}flush(A){A>this.at&&this.class&&this.span(this.at,A,this.class)}highlightRange(A,e,i,n,o){let{type:r,from:s,to:a}=A;if(s>=i||a<=e)return;r.isTop&&(o=this.highlighters.filter(I=>!I.scope||I.scope(r)));let c=n,l=uze(A)||Qf.empty,d=Ize(o,l.tags);if(d&&(c&&(c+=" "),c+=d,l.mode==1&&(n+=(n?" ":"")+d)),this.startSpan(Math.max(e,s),c),l.opaque)return;let C=A.tree&&A.tree.prop(ki.mounted);if(C&&C.overlay){let I=A.node.enter(C.overlay[0].from+s,1),u=this.highlighters.filter(B=>!B.scope||B.scope(C.tree.type)),h=A.firstChild();for(let B=0,f=s;;B++){let b=B=k||!A.nextSibling())););if(!b||k>i)break;f=b.to+s,f>e&&(this.highlightRange(I.cursor(),Math.max(e,b.from+s),Math.min(i,f),"",u),this.startSpan(Math.min(i,f),c))}h&&A.parent()}else if(A.firstChild()){C&&(n="");do if(!(A.to<=e)){if(A.from>=i)break;this.highlightRange(A,e,i,n,o),this.startSpan(Math.min(i,A.to),c)}while(A.nextSibling());A.parent()}}};function uze(t){let A=t.type.prop(Jle);for(;A&&A.context&&!t.matchContext(A.context);)A=A.next;return A||null}var tt=Pg.define,$7=tt(),_C=tt(),Tle=tt(_C),Ole=tt(_C),RC=tt(),eb=tt(RC),$T=tt(RC),vd=tt(),Hu=tt(vd),yd=tt(),Dd=tt(),AO=tt(),lp=tt(AO),Ab=tt(),GA={comment:$7,lineComment:tt($7),blockComment:tt($7),docComment:tt($7),name:_C,variableName:tt(_C),typeName:Tle,tagName:tt(Tle),propertyName:Ole,attributeName:tt(Ole),className:tt(_C),labelName:tt(_C),namespace:tt(_C),macroName:tt(_C),literal:RC,string:eb,docString:tt(eb),character:tt(eb),attributeValue:tt(eb),number:$T,integer:tt($T),float:tt($T),bool:tt(RC),regexp:tt(RC),escape:tt(RC),color:tt(RC),url:tt(RC),keyword:yd,self:tt(yd),null:tt(yd),atom:tt(yd),unit:tt(yd),modifier:tt(yd),operatorKeyword:tt(yd),controlKeyword:tt(yd),definitionKeyword:tt(yd),moduleKeyword:tt(yd),operator:Dd,derefOperator:tt(Dd),arithmeticOperator:tt(Dd),logicOperator:tt(Dd),bitwiseOperator:tt(Dd),compareOperator:tt(Dd),updateOperator:tt(Dd),definitionOperator:tt(Dd),typeOperator:tt(Dd),controlOperator:tt(Dd),punctuation:AO,separator:tt(AO),bracket:lp,angleBracket:tt(lp),squareBracket:tt(lp),paren:tt(lp),brace:tt(lp),content:vd,heading:Hu,heading1:tt(Hu),heading2:tt(Hu),heading3:tt(Hu),heading4:tt(Hu),heading5:tt(Hu),heading6:tt(Hu),contentSeparator:tt(vd),list:tt(vd),quote:tt(vd),emphasis:tt(vd),strong:tt(vd),link:tt(vd),monospace:tt(vd),strikethrough:tt(vd),inserted:tt(),deleted:tt(),changed:tt(),invalid:tt(),meta:Ab,documentMeta:tt(Ab),annotation:tt(Ab),processingInstruction:tt(Ab),definition:Pg.defineModifier("definition"),constant:Pg.defineModifier("constant"),function:Pg.defineModifier("function"),standard:Pg.defineModifier("standard"),local:Pg.defineModifier("local"),special:Pg.defineModifier("special")};for(let t in GA){let A=GA[t];A instanceof Pg&&(A.name=t)}var TTA=tO([{tag:GA.link,class:"tok-link"},{tag:GA.heading,class:"tok-heading"},{tag:GA.emphasis,class:"tok-emphasis"},{tag:GA.strong,class:"tok-strong"},{tag:GA.keyword,class:"tok-keyword"},{tag:GA.atom,class:"tok-atom"},{tag:GA.bool,class:"tok-bool"},{tag:GA.url,class:"tok-url"},{tag:GA.labelName,class:"tok-labelName"},{tag:GA.inserted,class:"tok-inserted"},{tag:GA.deleted,class:"tok-deleted"},{tag:GA.literal,class:"tok-literal"},{tag:GA.string,class:"tok-string"},{tag:GA.number,class:"tok-number"},{tag:[GA.regexp,GA.escape,GA.special(GA.string)],class:"tok-string2"},{tag:GA.variableName,class:"tok-variableName"},{tag:GA.local(GA.variableName),class:"tok-variableName tok-local"},{tag:GA.definition(GA.variableName),class:"tok-variableName tok-definition"},{tag:GA.special(GA.variableName),class:"tok-variableName2"},{tag:GA.definition(GA.propertyName),class:"tok-propertyName tok-definition"},{tag:GA.typeName,class:"tok-typeName"},{tag:GA.namespace,class:"tok-namespace"},{tag:GA.className,class:"tok-className"},{tag:GA.macroName,class:"tok-macroName"},{tag:GA.propertyName,class:"tok-propertyName"},{tag:GA.operator,class:"tok-operator"},{tag:GA.comment,class:"tok-comment"},{tag:GA.meta,class:"tok-meta"},{tag:GA.invalid,class:"tok-invalid"},{tag:GA.punctuation,class:"tok-punctuation"}]);var iO,mf=new ki;function hze(t){return rt.define({combine:t?A=>A.concat(t):void 0})}var Bze=new ki,jg=(()=>{class t{constructor(e,i,n=[],o=""){this.data=e,this.name=o,ss.prototype.hasOwnProperty("tree")||Object.defineProperty(ss.prototype,"tree",{get(){return Ys(this)}}),this.parser=i,this.extension=[NC.of(this),ss.languageData.of((r,s,a)=>{let c=Hle(r,s,a),l=c.type.prop(mf);if(!l)return[];let d=r.facet(l),C=c.type.prop(Bze);if(C){let I=c.resolve(s-c.from,a);for(let u of C)if(u.test(I,r)){let h=r.facet(u.facet);return u.type=="replace"?h:h.concat(d)}}return d})].concat(n)}isActiveAt(e,i,n=-1){return Hle(e,i,n).type.prop(mf)==this.data}findRegions(e){let i=e.facet(NC);if(i?.data==this.data)return[{from:0,to:e.doc.length}];if(!i||!i.allowsNesting)return[];let n=[],o=(r,s)=>{if(r.prop(mf)==this.data){n.push({from:s,to:s+r.length});return}let a=r.prop(ki.mounted);if(a){if(a.tree.prop(mf)==this.data){if(a.overlay)for(let c of a.overlay)n.push({from:c.from+s,to:c.to+s});else n.push({from:s,to:s+r.length});return}else if(a.overlay){let c=n.length;if(o(a.tree,a.overlay[0].from+s),n.length>c)return}}for(let c=0;ci.isTop?e:void 0)]}),A.name)}configure(A,e){return new t(this.data,this.parser.configure(A),e||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function Ys(t){let A=t.field(jg.state,!1);return A?A.tree:as.empty}function uO(t,A,e=50){var i;let n=(i=t.field(jg.state,!1))===null||i===void 0?void 0:i.context;if(!n)return null;let o=n.viewport;n.updateViewport({from:0,to:A});let r=n.isDone(A)||n.work(e,A)?n.tree:null;return n.updateViewport(o),r}var sO=class{constructor(A){this.doc=A,this.cursorPos=0,this.string="",this.cursor=A.iter()}get length(){return this.doc.length}syncTo(A){return this.string=this.cursor.next(A-this.cursorPos).value,this.cursorPos=A+this.string.length,this.cursorPos-this.string.length}chunk(A){return this.syncTo(A),this.string}get lineChunks(){return!0}read(A,e){let i=this.cursorPos-this.string.length;return A=this.cursorPos?this.doc.sliceString(A,e):this.string.slice(A-i,e-i)}},gp=null,aO=class t{constructor(A,e,i=[],n,o,r,s,a){this.parser=A,this.state=e,this.fragments=i,this.tree=n,this.treeLen=o,this.viewport=r,this.skipped=s,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(A,e,i){return new t(A,e,[],as.empty,0,i,[],null)}startParse(){return this.parser.startParse(new sO(this.state.doc),this.fragments)}work(A,e){return e!=null&&e>=this.state.doc.length&&(e=void 0),this.tree!=as.empty&&this.isDone(e??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof A=="number"){let n=Date.now()+A;A=()=>Date.now()>n}for(this.parse||(this.parse=this.startParse()),e!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&e=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>A)&&this.parse.stopAt(A),this.withContext(()=>{for(;!(e=this.parse.advance()););}),this.treeLen=A,this.tree=e,this.fragments=this.withoutTempSkipped(Yu.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(A){let e=gp;gp=this;try{return A()}finally{gp=e}}withoutTempSkipped(A){for(let e;e=this.tempSkipped.pop();)A=zle(A,e.from,e.to);return A}changes(A,e){let{fragments:i,tree:n,treeLen:o,viewport:r,skipped:s}=this;if(this.takeTree(),!A.empty){let a=[];if(A.iterChangedRanges((c,l,d,C)=>a.push({fromA:c,toA:l,fromB:d,toB:C})),i=Yu.applyChanges(i,a),n=as.empty,o=0,r={from:A.mapPos(r.from,-1),to:A.mapPos(r.to,1)},this.skipped.length){s=[];for(let c of this.skipped){let l=A.mapPos(c.from,1),d=A.mapPos(c.to,-1);lA.from&&(this.fragments=zle(this.fragments,n,o),this.skipped.splice(i--,1))}return this.skipped.length>=e?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(A,e){this.skipped.push({from:A,to:e})}static getSkippingParser(A){return new class extends ff{createParse(e,i,n){let o=n[0].from,r=n[n.length-1].to;return{parsedPos:o,advance(){let a=gp;if(a){for(let c of n)a.tempSkipped.push(c);A&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,A]):A)}return this.parsedPos=r,new as(Na.none,[],[],r-o)},stoppedAt:null,stopAt(){}}}}}isDone(A){A=Math.min(A,this.state.doc.length);let e=this.fragments;return this.treeLen>=A&&e.length&&e[0].from==0&&e[0].to>=A}static get(){return gp}};function zle(t,A,e){return Yu.applyChanges(t,[{fromA:A,toA:e,fromB:A,toB:e}])}var Cp=class t{constructor(A){this.context=A,this.tree=A.tree}apply(A){if(!A.docChanged&&this.tree==this.context.tree)return this;let e=this.context.changes(A.changes,A.state),i=this.context.treeLen==A.startState.doc.length?void 0:Math.max(A.changes.mapPos(this.context.treeLen),e.viewport.to);return e.work(20,i)||e.takeTree(),new t(e)}static init(A){let e=Math.min(3e3,A.doc.length),i=aO.create(A.facet(NC).parser,A,{from:0,to:e});return i.work(20,e)||i.takeTree(),new t(i)}};jg.state=_r.define({create:Cp.init,update(t,A){for(let e of A.effects)if(e.is(jg.setState))return e.value;return A.startState.facet(NC)!=A.state.facet(NC)?Cp.init(A.state):t.apply(A)}});var Zle=t=>{let A=setTimeout(()=>t(),500);return()=>clearTimeout(A)};typeof requestIdleCallback<"u"&&(Zle=t=>{let A=-1,e=setTimeout(()=>{A=requestIdleCallback(t,{timeout:400})},100);return()=>A<0?clearTimeout(e):cancelIdleCallback(A)});var nO=typeof navigator<"u"&&(!((iO=navigator.scheduling)===null||iO===void 0)&&iO.isInputPending)?()=>navigator.scheduling.isInputPending():null,Eze=Jo.fromClass(class{constructor(A){this.view=A,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(A){let e=this.view.state.field(jg.state).context;(e.updateViewport(A.view.viewport)||this.view.viewport.to>e.treeLen)&&this.scheduleWork(),(A.docChanged||A.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(e)}scheduleWork(){if(this.working)return;let{state:A}=this.view,e=A.field(jg.state);(e.tree!=e.context.tree||!e.context.isDone(A.doc.length))&&(this.working=Zle(this.work))}work(A){this.working=null;let e=Date.now();if(this.chunkEndn+1e3,a=o.context.work(()=>nO&&nO()||Date.now()>r,n+(s?0:1e5));this.chunkBudget-=Date.now()-e,(a||this.chunkBudget<=0)&&(o.context.takeTree(),this.view.dispatch({effects:jg.setState.of(new Cp(o.context))})),this.chunkBudget>0&&!(a&&!s)&&this.scheduleWork(),this.checkAsyncSchedule(o.context)}checkAsyncSchedule(A){A.scheduleOn&&(this.workScheduled++,A.scheduleOn.then(()=>this.scheduleWork()).catch(e=>Js(this.view.state,e)).then(()=>this.workScheduled--),A.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),NC=rt.define({combine(t){return t.length?t[0]:null},enables:t=>[jg.state,Eze,ai.contentAttributes.compute([t],A=>{let e=A.facet(t);return e&&e.name?{"data-language":e.name}:{}})]}),ob=class{constructor(A,e=[]){this.language=A,this.support=e,this.extension=[A,e]}};var fze=rt.define(),ju=rt.define({combine:t=>{if(!t.length)return" ";let A=t[0];if(!A||/\S/.test(A)||Array.from(A).some(e=>e!=A[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return A}});function qg(t){let A=t.facet(ju);return A.charCodeAt(0)==9?t.tabSize*A.length:A.length}function yf(t,A){let e="",i=t.tabSize,n=t.facet(ju)[0];if(n==" "){for(;A>=i;)e+=" ",A-=i;n=" "}for(let o=0;o=A?Qze(t,e,A):null}var zu=class{constructor(A,e={}){this.state=A,this.options=e,this.unit=qg(A)}lineAt(A,e=1){let i=this.state.doc.lineAt(A),{simulateBreak:n,simulateDoubleBreak:o}=this.options;return n!=null&&n>=i.from&&n<=i.to?o&&n==A?{text:"",from:A}:(e<0?n-1&&(o+=r-this.countColumn(i,i.search(/\S|$/))),o}countColumn(A,e=A.length){return L2(A,this.state.tabSize,e)}lineIndent(A,e=1){let{text:i,from:n}=this.lineAt(A,e),o=this.options.overrideIndentation;if(o){let r=o(n);if(r>-1)return r}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},hO=new ki;function Qze(t,A,e){let i=A.resolveStack(e),n=A.resolveInner(e,-1).resolve(e,0).enterUnfinishedNodesBefore(e);if(n!=i.node){let o=[];for(let r=n;r&&!(r.fromi.node.to||r.from==i.node.from&&r.type==i.node.type);r=r.parent)o.push(r);for(let r=o.length-1;r>=0;r--)i={node:o[r],next:i}}return Xle(i,t,e)}function Xle(t,A,e){for(let i=t;i;i=i.next){let n=pze(i.node);if(n)return n(cO.create(A,e,i))}return 0}function mze(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}function pze(t){let A=t.type.prop(hO);if(A)return A;let e=t.firstChild,i;if(e&&(i=e.type.prop(ki.closedBy))){let n=t.lastChild,o=n&&i.indexOf(n.name)>-1;return r=>vze(r,!0,1,void 0,o&&!mze(r)?n.from:void 0)}return t.parent==null?wze:null}function wze(){return 0}var cO=class t extends zu{constructor(A,e,i){super(A.state,A.options),this.base=A,this.pos=e,this.context=i}get node(){return this.context.node}static create(A,e,i){return new t(A,e,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(A){let e=this.state.doc.lineAt(A.from);for(;;){let i=A.resolve(e.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(yze(i,A))break;e=this.state.doc.lineAt(i.from)}return this.lineIndent(e.from)}continue(){return Xle(this.context.next,this.base,this.pos)}};function yze(t,A){for(let e=A;e;e=e.parent)if(t==e)return!0;return!1}function Dze(t){let A=t.node,e=A.childAfter(A.from),i=A.lastChild;if(!e)return null;let n=t.options.simulateBreak,o=t.state.doc.lineAt(e.from),r=n==null||n<=o.from?o.to:Math.min(o.to,n);for(let s=e.to;;){let a=A.childAfter(s);if(!a||a==i)return null;if(!a.type.isSkipped){if(a.from>=r)return null;let c=/^ */.exec(o.text.slice(e.to-o.from))[0].length;return{from:e.from,to:e.to+c}}s=a.to}}function vze(t,A,e,i,n){let o=t.textAfter,r=o.match(/^\s*/)[0].length,s=i&&o.slice(r,r+i.length)==i||n==t.pos+r,a=A?Dze(t):null;return a?s?t.column(a.from):t.column(a.to):t.baseIndent+(s?0:t.unit*e)}function BO({except:t,units:A=1}={}){return e=>{let i=t&&t.test(e.textAfter);return e.baseIndent+(i?0:A*e.unit)}}var bze=200;function $le(){return ss.transactionFilter.of(t=>{if(!t.docChanged||!t.isUserEvent("input.type")&&!t.isUserEvent("input.complete"))return t;let A=t.startState.languageDataAt("indentOnInput",t.startState.selection.main.head);if(!A.length)return t;let e=t.newDoc,{head:i}=t.newSelection.main,n=e.lineAt(i);if(i>n.from+bze)return t;let o=e.sliceString(n.from,i);if(!A.some(c=>c.test(o)))return t;let{state:r}=t,s=-1,a=[];for(let{head:c}of r.selection.ranges){let l=r.doc.lineAt(c);if(l.from==s)continue;s=l.from;let d=sb(r,l.from);if(d==null)continue;let C=/^\s*/.exec(l.text)[0],I=yf(r,d);C!=I&&a.push({from:l.from,to:l.from+C.length,insert:I})}return a.length?[t,{changes:a,sequential:!0}]:t})}var EO=rt.define(),Ip=new ki;function ege(t){let A=t.firstChild,e=t.lastChild;return A&&A.toe)continue;if(o&&s.from=A&&c.to>e&&(o=c)}}return o}function Sze(t){let A=t.lastChild;return A&&A.to==t.to&&A.type.isError}function pf(t,A,e){for(let i of t.facet(EO)){let n=i(t,A,e);if(n)return n}return Mze(t,A,e)}function Age(t,A){let e=A.mapPos(t.from,1),i=A.mapPos(t.to,-1);return e>=i?void 0:{from:e,to:i}}var Df=tn.define({map:Age}),up=tn.define({map:Age});function tge(t){let A=[];for(let{head:e}of t.state.selection.ranges)A.some(i=>i.from<=e&&i.to>=e)||A.push(t.lineBlockAt(e));return A}var Pu=_r.define({create(){return bt.none},update(t,A){A.isUserEvent("delete")&&A.changes.iterChangedRanges((e,i)=>t=Ple(t,e,i)),t=t.map(A.changes);for(let e of A.effects)if(e.is(Df)&&!kze(t,e.value.from,e.value.to)){let{preparePlaceholder:i}=A.state.facet(mO),n=i?bt.replace({widget:new lO(i(A.state,e.value))}):jle;t=t.update({add:[n.range(e.value.from,e.value.to)]})}else e.is(up)&&(t=t.update({filter:(i,n)=>e.value.from!=i||e.value.to!=n,filterFrom:e.value.from,filterTo:e.value.to}));return A.selection&&(t=Ple(t,A.selection.main.head)),t},provide:t=>ai.decorations.from(t),toJSON(t,A){let e=[];return t.between(0,A.doc.length,(i,n)=>{e.push(i,n)}),e},fromJSON(t){if(!Array.isArray(t)||t.length%2)throw new RangeError("Invalid JSON for fold state");let A=[];for(let e=0;e{nA&&(i=!0)}),i?t.update({filterFrom:A,filterTo:e,filter:(n,o)=>n>=e||o<=A}):t}function rb(t,A,e){var i;let n=null;return(i=t.field(Pu,!1))===null||i===void 0||i.between(A,e,(o,r)=>{(!n||n.from>o)&&(n={from:o,to:r})}),n}function kze(t,A,e){let i=!1;return t.between(A,A,(n,o)=>{n==A&&o==e&&(i=!0)}),i}function ige(t,A){return t.field(Pu,!1)?A:A.concat(tn.appendConfig.of(rge()))}var xze=t=>{for(let A of tge(t)){let e=pf(t.state,A.from,A.to);if(e)return t.dispatch({effects:ige(t.state,[Df.of(e),nge(t,e)])}),!0}return!1},fO=t=>{if(!t.state.field(Pu,!1))return!1;let A=[];for(let e of tge(t)){let i=rb(t.state,e.from,e.to);i&&A.push(up.of(i),nge(t,i,!1))}return A.length&&t.dispatch({effects:A}),A.length>0};function nge(t,A,e=!0){let i=t.state.doc.lineAt(A.from).number,n=t.state.doc.lineAt(A.to).number;return ai.announce.of(`${t.state.phrase(e?"Folded lines":"Unfolded lines")} ${i} ${t.state.phrase("to")} ${n}.`)}var _ze=t=>{let{state:A}=t,e=[];for(let i=0;i{let A=t.state.field(Pu,!1);if(!A||!A.size)return!1;let e=[];return A.between(0,t.state.doc.length,(i,n)=>{e.push(up.of({from:i,to:n}))}),t.dispatch({effects:e}),!0};var oge=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:xze},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:fO},{key:"Ctrl-Alt-[",run:_ze},{key:"Ctrl-Alt-]",run:QO}],Rze={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},mO=rt.define({combine(t){return Os(t,Rze)}});function rge(t){let A=[Pu,Lze];return t&&A.push(mO.of(t)),A}function sge(t,A){let{state:e}=t,i=e.facet(mO),n=r=>{let s=t.lineBlockAt(t.posAtDOM(r.target)),a=rb(t.state,s.from,s.to);a&&t.dispatch({effects:up.of(a)}),r.preventDefault()};if(i.placeholderDOM)return i.placeholderDOM(t,n,A);let o=document.createElement("span");return o.textContent=i.placeholderText,o.setAttribute("aria-label",e.phrase("folded code")),o.title=e.phrase("unfold"),o.className="cm-foldPlaceholder",o.onclick=n,o}var jle=bt.replace({widget:new class extends Ql{toDOM(t){return sge(t,null)}}}),lO=class extends Ql{constructor(A){super(),this.value=A}eq(A){return this.value==A.value}toDOM(A){return sge(A,this.value)}},Nze={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1},dp=class extends Kc{constructor(A,e){super(),this.config=A,this.open=e}eq(A){return this.config==A.config&&this.open==A.open}toDOM(A){if(this.config.markerDOM)return this.config.markerDOM(this.open);let e=document.createElement("span");return e.textContent=this.open?this.config.openText:this.config.closedText,e.title=A.state.phrase(this.open?"Fold line":"Unfold line"),e}};function age(t={}){let A=ae(ae({},Nze),t),e=new dp(A,!0),i=new dp(A,!1),n=Jo.fromClass(class{constructor(r){this.from=r.viewport.from,this.markers=this.buildMarkers(r)}update(r){(r.docChanged||r.viewportChanged||r.startState.facet(NC)!=r.state.facet(NC)||r.startState.field(Pu,!1)!=r.state.field(Pu,!1)||Ys(r.startState)!=Ys(r.state)||A.foldingChanged(r))&&(this.markers=this.buildMarkers(r.view))}buildMarkers(r){let s=new ga;for(let a of r.viewportLineBlocks){let c=rb(r.state,a.from,a.to)?i:pf(r.state,a.from,a.to)?e:null;c&&s.add(a.from,a.from,c)}return s.finish()}}),{domEventHandlers:o}=A;return[n,q7({class:"cm-foldGutter",markers(r){var s;return((s=r.plugin(n))===null||s===void 0?void 0:s.markers)||To.empty},initialSpacer(){return new dp(A,!1)},domEventHandlers:_A(ae({},o),{click:(r,s,a)=>{if(o.click&&o.click(r,s,a))return!0;let c=rb(r.state,s.from,s.to);if(c)return r.dispatch({effects:up.of(c)}),!0;let l=pf(r.state,s.from,s.to);return l?(r.dispatch({effects:Df.of(l)}),!0):!1}})}),rge()]}var Lze=ai.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),wf=class t{constructor(A,e){this.specs=A;let i;function n(s){let a=Ag.newName();return(i||(i=Object.create(null)))["."+a]=s,a}let o=typeof e.all=="string"?e.all:e.all?n(e.all):void 0,r=e.scope;this.scope=r instanceof jg?s=>s.prop(mf)==r.data:r?s=>s==r:void 0,this.style=tO(A.map(s=>({tag:s.tag,class:s.class||n(Object.assign({},s,{tag:null}))})),{all:o}).style,this.module=i?new Ag(i):null,this.themeType=e.themeType}static define(A,e){return new t(A,e||{})}},gO=rt.define(),cge=rt.define({combine(t){return t.length?[t[0]]:null}});function oO(t){let A=t.facet(gO);return A.length?A:t.facet(cge)}function pO(t,A){let e=[Fze],i;return t instanceof wf&&(t.module&&e.push(ai.styleModule.of(t.module)),i=t.themeType),A?.fallback?e.push(cge.of(t)):i?e.push(gO.computeN([ai.darkTheme],n=>n.facet(ai.darkTheme)==(i=="dark")?[t]:[])):e.push(gO.of(t)),e}var dO=class{constructor(A){this.markCache=Object.create(null),this.tree=Ys(A.state),this.decorations=this.buildDeco(A,oO(A.state)),this.decoratedTo=A.viewport.to}update(A){let e=Ys(A.state),i=oO(A.state),n=i!=oO(A.startState),{viewport:o}=A.view,r=A.changes.mapPos(this.decoratedTo,1);e.length=o.to?(this.decorations=this.decorations.map(A.changes),this.decoratedTo=r):(e!=this.tree||A.viewportChanged||n)&&(this.tree=e,this.decorations=this.buildDeco(A.view,i),this.decoratedTo=o.to)}buildDeco(A,e){if(!e||!this.tree.length)return bt.none;let i=new ga;for(let{from:n,to:o}of A.visibleRanges)Yle(this.tree,e,(r,s,a)=>{i.add(r,s,this.markCache[a]||(this.markCache[a]=bt.mark({class:a})))},n,o);return i.finish()}},Fze=Hg.high(Jo.fromClass(dO,{decorations:t=>t.decorations})),lge=wf.define([{tag:GA.meta,color:"#404740"},{tag:GA.link,textDecoration:"underline"},{tag:GA.heading,textDecoration:"underline",fontWeight:"bold"},{tag:GA.emphasis,fontStyle:"italic"},{tag:GA.strong,fontWeight:"bold"},{tag:GA.strikethrough,textDecoration:"line-through"},{tag:GA.keyword,color:"#708"},{tag:[GA.atom,GA.bool,GA.url,GA.contentSeparator,GA.labelName],color:"#219"},{tag:[GA.literal,GA.inserted],color:"#164"},{tag:[GA.string,GA.deleted],color:"#a11"},{tag:[GA.regexp,GA.escape,GA.special(GA.string)],color:"#e40"},{tag:GA.definition(GA.variableName),color:"#00f"},{tag:GA.local(GA.variableName),color:"#30a"},{tag:[GA.typeName,GA.namespace],color:"#085"},{tag:GA.className,color:"#167"},{tag:[GA.special(GA.variableName),GA.macroName],color:"#256"},{tag:GA.definition(GA.propertyName),color:"#00c"},{tag:GA.comment,color:"#940"},{tag:GA.invalid,color:"#f00"}]),Gze=ai.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),gge=1e4,dge="()[]{}",Cge=rt.define({combine(t){return Os(t,{afterCursor:!0,brackets:dge,maxScanDistance:gge,renderMatch:Tze})}}),Kze=bt.mark({class:"cm-matchingBracket"}),Uze=bt.mark({class:"cm-nonmatchingBracket"});function Tze(t){let A=[],e=t.matched?Kze:Uze;return A.push(e.range(t.start.from,t.start.to)),t.end&&A.push(e.range(t.end.from,t.end.to)),A}var Oze=_r.define({create(){return bt.none},update(t,A){if(!A.docChanged&&!A.selection)return t;let e=[],i=A.state.facet(Cge);for(let n of A.state.selection.ranges){if(!n.empty)continue;let o=Vg(A.state,n.head,-1,i)||n.head>0&&Vg(A.state,n.head-1,1,i)||i.afterCursor&&(Vg(A.state,n.head,1,i)||n.headai.decorations.from(t)}),Jze=[Oze,Gze];function Ige(t={}){return[Cge.of(t),Jze]}var Yze=new ki;function CO(t,A,e){let i=t.prop(A<0?ki.openedBy:ki.closedBy);if(i)return i;if(t.name.length==1){let n=e.indexOf(t.name);if(n>-1&&n%2==(A<0?1:0))return[e[n+A]]}return null}function IO(t){let A=t.type.prop(Yze);return A?A(t.node):t}function Vg(t,A,e,i={}){let n=i.maxScanDistance||gge,o=i.brackets||dge,r=Ys(t),s=r.resolveInner(A,e);for(let a=s;a;a=a.parent){let c=CO(a.type,e,o);if(c&&a.from0?A>=l.from&&Al.from&&A<=l.to))return Hze(t,A,e,a,l,c,o)}}return zze(t,A,e,r,s.type,n,o)}function Hze(t,A,e,i,n,o,r){let s=i.parent,a={from:n.from,to:n.to},c=0,l=s?.cursor();if(l&&(e<0?l.childBefore(i.from):l.childAfter(i.to)))do if(e<0?l.to<=i.from:l.from>=i.to){if(c==0&&o.indexOf(l.type.name)>-1&&l.from0)return null;let c={from:e<0?A-1:A,to:e>0?A+1:A},l=t.doc.iterRange(A,e>0?t.doc.length:0),d=0;for(let C=0;!l.next().done&&C<=o;){let I=l.value;e<0&&(C+=I.length);let u=A+C*e;for(let h=e>0?0:I.length-1,B=e>0?I.length:-1;h!=B;h+=e){let f=r.indexOf(I[h]);if(!(f<0||i.resolveInner(u+h,1).type!=n))if(f%2==0==e>0)d++;else{if(d==1)return{start:c,end:{from:u+h,to:u+h+1},matched:f>>1==a>>1};d--}}e>0&&(C+=I.length)}return l.done?{start:c,matched:!1}:null}var Pze=Object.create(null),Vle=[Na.none];var qle=[],Wle=Object.create(null),jze=Object.create(null);for(let[t,A]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])jze[t]=Vze(Pze,A);function rO(t,A){qle.indexOf(t)>-1||(qle.push(t),console.warn(A))}function Vze(t,A){let e=[];for(let s of A.split(" ")){let a=[];for(let c of s.split(".")){let l=t[c]||GA[c];l?typeof l=="function"?a.length?a=a.map(l):rO(c,`Modifier ${c} used at start of tag`):a.length?rO(c,`Tag ${c} used as modifier`):a=Array.isArray(l)?l:[l]:rO(c,`Unknown highlighting tag ${c}`)}for(let c of a)e.push(c)}if(!e.length)return 0;let i=A.replace(/ /g,"_"),n=i+" "+e.map(s=>s.id),o=Wle[n];if(o)return o.id;let r=Wle[n]=Na.define({id:Vle.length,name:i,props:[ib({[i]:e})]});return Vle.push(r),r.id}var VTA={rtl:bt.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:Oo.RTL}),ltr:bt.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:Oo.LTR}),auto:bt.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var qze=t=>{let{state:A}=t,e=A.doc.lineAt(A.selection.main.from),i=vO(t.state,e.from);return i.line?Wze(t):i.block?Xze(t):!1};function DO(t,A){return({state:e,dispatch:i})=>{if(e.readOnly)return!1;let n=t(A,e);return n?(i(e.update(n)),!0):!1}}var Wze=DO(APe,0);var Zze=DO(wge,0);var Xze=DO((t,A)=>wge(t,A,ePe(A)),0);function vO(t,A){let e=t.languageDataAt("commentTokens",A,1);return e.length?e[0]:{}}var hp=50;function $ze(t,{open:A,close:e},i,n){let o=t.sliceDoc(i-hp,i),r=t.sliceDoc(n,n+hp),s=/\s*$/.exec(o)[0].length,a=/^\s*/.exec(r)[0].length,c=o.length-s;if(o.slice(c-A.length,c)==A&&r.slice(a,a+e.length)==e)return{open:{pos:i-s,margin:s&&1},close:{pos:n+a,margin:a&&1}};let l,d;n-i<=2*hp?l=d=t.sliceDoc(i,n):(l=t.sliceDoc(i,i+hp),d=t.sliceDoc(n-hp,n));let C=/^\s*/.exec(l)[0].length,I=/\s*$/.exec(d)[0].length,u=d.length-I-e.length;return l.slice(C,C+A.length)==A&&d.slice(u,u+e.length)==e?{open:{pos:i+C+A.length,margin:/\s/.test(l.charAt(C+A.length))?1:0},close:{pos:n-I-e.length,margin:/\s/.test(d.charAt(u-1))?1:0}}:null}function ePe(t){let A=[];for(let e of t.selection.ranges){let i=t.doc.lineAt(e.from),n=e.to<=i.to?i:t.doc.lineAt(e.to);n.from>i.from&&n.from==e.to&&(n=e.to==i.to+1?i:t.doc.lineAt(e.to-1));let o=A.length-1;o>=0&&A[o].to>i.from?A[o].to=n.to:A.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:n.to})}return A}function wge(t,A,e=A.selection.ranges){let i=e.map(o=>vO(A,o.from).block);if(!i.every(o=>o))return null;let n=e.map((o,r)=>$ze(A,i[r],o.from,o.to));if(t!=2&&!n.every(o=>o))return{changes:A.changes(e.map((o,r)=>n[r]?[]:[{from:o.from,insert:i[r].open+" "},{from:o.to,insert:" "+i[r].close}]))};if(t!=1&&n.some(o=>o)){let o=[];for(let r=0,s;rn&&(o==r||r>d.from)){n=d.from;let C=/^\s*/.exec(d.text)[0].length,I=C==d.length,u=d.text.slice(C,C+c.length)==c?C:-1;Co.comment<0&&(!o.empty||o.single))){let o=[];for(let{line:s,token:a,indent:c,empty:l,single:d}of i)(d||!l)&&o.push({from:s.from+c,insert:a+" "});let r=A.changes(o);return{changes:r,selection:A.selection.map(r,1)}}else if(t!=1&&i.some(o=>o.comment>=0)){let o=[];for(let{line:r,comment:s,token:a}of i)if(s>=0){let c=r.from+s,l=c+a.length;r.text[l-r.from]==" "&&l++,o.push({from:c,to:l})}return{changes:o}}return null}function vf(t,A){return fA.create(t.ranges.map(A),t.mainIndex)}function bd(t,A){return t.update({selection:A,scrollIntoView:!0,userEvent:"select"})}function Wg({state:t,dispatch:A},e){let i=vf(t.selection,e);return i.eq(t.selection,!0)?!1:(A(bd(t,i)),!0)}function cb(t,A){return fA.cursor(A?t.to:t.from)}function yge(t,A){return Wg(t,e=>e.empty?t.moveByChar(e,A):cb(e,A))}function La(t){return t.textDirectionAt(t.state.selection.main.head)==Oo.LTR}var Dge=t=>yge(t,!La(t)),vge=t=>yge(t,La(t));function bge(t,A){return Wg(t,e=>e.empty?t.moveByGroup(e,A):cb(e,A))}var tPe=t=>bge(t,!La(t)),iPe=t=>bge(t,La(t));var nOA=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function nPe(t,A,e){if(A.type.prop(e))return!0;let i=A.to-A.from;return i&&(i>2||/[^\s,.;:]/.test(t.sliceDoc(A.from,A.to)))||A.firstChild}function lb(t,A,e){let i=Ys(t).resolveInner(A.head),n=e?ki.closedBy:ki.openedBy;for(let a=A.head;;){let c=e?i.childAfter(a):i.childBefore(a);if(!c)break;nPe(t,c,n)?i=c:a=e?c.to:c.from}let o=i.type.prop(n),r,s;return o&&(r=e?Vg(t,i.from,1):Vg(t,i.to,-1))&&r.matched?s=e?r.end.to:r.end.from:s=e?i.to:i.from,fA.cursor(s,e?-1:1)}var oPe=t=>Wg(t,A=>lb(t.state,A,!La(t))),rPe=t=>Wg(t,A=>lb(t.state,A,La(t)));function Mge(t,A){return Wg(t,e=>{if(!e.empty)return cb(e,A);let i=t.moveVertically(e,A);return i.head!=e.head?i:t.moveToLineBoundary(e,A)})}var Sge=t=>Mge(t,!1),kge=t=>Mge(t,!0);function xge(t){let A=t.scrollDOM.clientHeightr.empty?t.moveVertically(r,A,e.height):cb(r,A));if(n.eq(i.selection))return!1;let o;if(e.selfScroll){let r=t.coordsAtPos(i.selection.main.head),s=t.scrollDOM.getBoundingClientRect(),a=s.top+e.marginTop,c=s.bottom-e.marginBottom;r&&r.top>a&&r.bottom_ge(t,!1),wO=t=>_ge(t,!0);function LC(t,A,e){let i=t.lineBlockAt(A.head),n=t.moveToLineBoundary(A,e);if(n.head==A.head&&n.head!=(e?i.to:i.from)&&(n=t.moveToLineBoundary(A,e,!1)),!e&&n.head==i.from&&i.length){let o=/^\s*/.exec(t.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;o&&A.head!=i.from+o&&(n=fA.cursor(i.from+o))}return n}var sPe=t=>Wg(t,A=>LC(t,A,!0)),aPe=t=>Wg(t,A=>LC(t,A,!1)),cPe=t=>Wg(t,A=>LC(t,A,!La(t))),lPe=t=>Wg(t,A=>LC(t,A,La(t))),gPe=t=>Wg(t,A=>fA.cursor(t.lineBlockAt(A.head).from,1)),dPe=t=>Wg(t,A=>fA.cursor(t.lineBlockAt(A.head).to,-1));function CPe(t,A,e){let i=!1,n=vf(t.selection,o=>{let r=Vg(t,o.head,-1)||Vg(t,o.head,1)||o.head>0&&Vg(t,o.head-1,1)||o.headCPe(t,A,!1);function ng(t,A){let e=vf(t.state.selection,i=>{let n=A(i);return fA.range(i.anchor,n.head,n.goalColumn,n.bidiLevel||void 0)});return e.eq(t.state.selection)?!1:(t.dispatch(bd(t.state,e)),!0)}function Rge(t,A){return ng(t,e=>t.moveByChar(e,A))}var Nge=t=>Rge(t,!La(t)),Lge=t=>Rge(t,La(t));function Fge(t,A){return ng(t,e=>t.moveByGroup(e,A))}var uPe=t=>Fge(t,!La(t)),hPe=t=>Fge(t,La(t));var BPe=t=>ng(t,A=>lb(t.state,A,!La(t))),EPe=t=>ng(t,A=>lb(t.state,A,La(t)));function Gge(t,A){return ng(t,e=>t.moveVertically(e,A))}var Kge=t=>Gge(t,!1),Uge=t=>Gge(t,!0);function Tge(t,A){return ng(t,e=>t.moveVertically(e,A,xge(t).height))}var hge=t=>Tge(t,!1),Bge=t=>Tge(t,!0),fPe=t=>ng(t,A=>LC(t,A,!0)),QPe=t=>ng(t,A=>LC(t,A,!1)),mPe=t=>ng(t,A=>LC(t,A,!La(t))),pPe=t=>ng(t,A=>LC(t,A,La(t))),wPe=t=>ng(t,A=>fA.cursor(t.lineBlockAt(A.head).from)),yPe=t=>ng(t,A=>fA.cursor(t.lineBlockAt(A.head).to)),Ege=({state:t,dispatch:A})=>(A(bd(t,{anchor:0})),!0),fge=({state:t,dispatch:A})=>(A(bd(t,{anchor:t.doc.length})),!0),Qge=({state:t,dispatch:A})=>(A(bd(t,{anchor:t.selection.main.anchor,head:0})),!0),mge=({state:t,dispatch:A})=>(A(bd(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0),DPe=({state:t,dispatch:A})=>(A(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0),vPe=({state:t,dispatch:A})=>{let e=gb(t).map(({from:i,to:n})=>fA.range(i,Math.min(n+1,t.doc.length)));return A(t.update({selection:fA.create(e),userEvent:"select"})),!0},bPe=({state:t,dispatch:A})=>{let e=vf(t.selection,i=>{let n=Ys(t),o=n.resolveStack(i.from,1);if(i.empty){let r=n.resolveStack(i.from,-1);r.node.from>=o.node.from&&r.node.to<=o.node.to&&(o=r)}for(let r=o;r;r=r.next){let{node:s}=r;if((s.from=i.to||s.to>i.to&&s.from<=i.from)&&r.next)return fA.range(s.to,s.from)}return i});return e.eq(t.selection)?!1:(A(bd(t,e)),!0)},MPe=({state:t,dispatch:A})=>{let e=t.selection,i=null;return e.ranges.length>1?i=fA.create([e.main]):e.main.empty||(i=fA.create([fA.cursor(e.main.head)])),i?(A(bd(t,i)),!0):!1};function Bp(t,A){if(t.state.readOnly)return!1;let e="delete.selection",{state:i}=t,n=i.changeByRange(o=>{let{from:r,to:s}=o;if(r==s){let a=A(o);ar&&(e="delete.forward",a=ab(t,a,!0)),r=Math.min(r,a),s=Math.max(s,a)}else r=ab(t,r,!1),s=ab(t,s,!0);return r==s?{range:o}:{changes:{from:r,to:s},range:fA.cursor(r,rn(t)))i.between(A,A,(n,o)=>{nA&&(A=e?o:n)});return A}var Oge=(t,A,e)=>Bp(t,i=>{let n=i.from,{state:o}=t,r=o.doc.lineAt(n),s,a;if(e&&!A&&n>r.from&&nOge(t,!1,!0);var Jge=t=>Oge(t,!0,!1),Yge=(t,A)=>Bp(t,e=>{let i=e.head,{state:n}=t,o=n.doc.lineAt(i),r=n.charCategorizer(i);for(let s=null;;){if(i==(A?o.to:o.from)){i==e.head&&o.number!=(A?n.doc.lines:1)&&(i+=A?1:-1);break}let a=Cs(o.text,i-o.from,A)+o.from,c=o.text.slice(Math.min(i,a)-o.from,Math.max(i,a)-o.from),l=r(c);if(s!=null&&l!=s)break;(c!=" "||i!=e.head)&&(s=l),i=a}return i}),Hge=t=>Yge(t,!1),SPe=t=>Yge(t,!0),kPe=t=>Bp(t,A=>{let e=t.lineBlockAt(A.head).to;return A.headBp(t,A=>{let e=t.moveToLineBoundary(A,!1).head;return A.head>e?e:Math.max(0,A.head-1)}),_Pe=t=>Bp(t,A=>{let e=t.moveToLineBoundary(A,!0).head;return A.head{if(t.readOnly)return!1;let e=t.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:Dn.of(["",""])},range:fA.cursor(i.from)}));return A(t.update(e,{scrollIntoView:!0,userEvent:"input"})),!0},NPe=({state:t,dispatch:A})=>{if(t.readOnly)return!1;let e=t.changeByRange(i=>{if(!i.empty||i.from==0||i.from==t.doc.length)return{range:i};let n=i.from,o=t.doc.lineAt(n),r=n==o.from?n-1:Cs(o.text,n-o.from,!1)+o.from,s=n==o.to?n+1:Cs(o.text,n-o.from,!0)+o.from;return{changes:{from:r,to:s,insert:t.doc.slice(n,s).append(t.doc.slice(r,n))},range:fA.cursor(s)}});return e.changes.empty?!1:(A(t.update(e,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function gb(t){let A=[],e=-1;for(let i of t.selection.ranges){let n=t.doc.lineAt(i.from),o=t.doc.lineAt(i.to);if(!i.empty&&i.to==o.from&&(o=t.doc.lineAt(i.to-1)),e>=n.number){let r=A[A.length-1];r.to=o.to,r.ranges.push(i)}else A.push({from:n.from,to:o.to,ranges:[i]});e=o.number+1}return A}function zge(t,A,e){if(t.readOnly)return!1;let i=[],n=[];for(let o of gb(t)){if(e?o.to==t.doc.length:o.from==0)continue;let r=t.doc.lineAt(e?o.to+1:o.from-1),s=r.length+1;if(e){i.push({from:o.to,to:r.to},{from:o.from,insert:r.text+t.lineBreak});for(let a of o.ranges)n.push(fA.range(Math.min(t.doc.length,a.anchor+s),Math.min(t.doc.length,a.head+s)))}else{i.push({from:r.from,to:o.from},{from:o.to,insert:t.lineBreak+r.text});for(let a of o.ranges)n.push(fA.range(a.anchor-s,a.head-s))}}return i.length?(A(t.update({changes:i,scrollIntoView:!0,selection:fA.create(n,t.selection.mainIndex),userEvent:"move.line"})),!0):!1}var LPe=({state:t,dispatch:A})=>zge(t,A,!1),FPe=({state:t,dispatch:A})=>zge(t,A,!0);function Pge(t,A,e){if(t.readOnly)return!1;let i=[];for(let n of gb(t))e?i.push({from:n.from,insert:t.doc.slice(n.from,n.to)+t.lineBreak}):i.push({from:n.to,insert:t.lineBreak+t.doc.slice(n.from,n.to)});return A(t.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}var GPe=({state:t,dispatch:A})=>Pge(t,A,!1),KPe=({state:t,dispatch:A})=>Pge(t,A,!0),UPe=t=>{if(t.state.readOnly)return!1;let{state:A}=t,e=A.changes(gb(A).map(({from:n,to:o})=>(n>0?n--:o{let o;if(t.lineWrapping){let r=t.lineBlockAt(n.head),s=t.coordsAtPos(n.head,n.assoc||1);s&&(o=r.bottom+t.documentTop-s.bottom+t.defaultLineHeight/2)}return t.moveVertically(n,!0,o)}).map(e);return t.dispatch({changes:e,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function TPe(t,A){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(A-1,A+1)))return{from:A,to:A};let e=Ys(t).resolveInner(A),i=e.childBefore(A),n=e.childAfter(A),o;return i&&n&&i.to<=A&&n.from>=A&&(o=i.type.prop(ki.closedBy))&&o.indexOf(n.name)>-1&&t.doc.lineAt(i.to).from==t.doc.lineAt(n.from).from&&!/\S/.test(t.sliceDoc(i.to,n.from))?{from:i.to,to:n.from}:null}var pge=jge(!1),OPe=jge(!0);function jge(t){return({state:A,dispatch:e})=>{if(A.readOnly)return!1;let i=A.changeByRange(n=>{let{from:o,to:r}=n,s=A.doc.lineAt(o),a=!t&&o==r&&TPe(A,o);t&&(o=r=(r<=s.to?s:A.doc.lineAt(r)).to);let c=new zu(A,{simulateBreak:o,simulateDoubleBreak:!!a}),l=sb(c,o);for(l==null&&(l=L2(/^\s*/.exec(A.doc.lineAt(o).text)[0],A.tabSize));rs.from&&o{let n=[];for(let r=i.from;r<=i.to;){let s=t.doc.lineAt(r);s.number>e&&(i.empty||i.to>s.from)&&(A(s,n,i),e=s.number),r=s.to+1}let o=t.changes(n);return{changes:n,range:fA.range(o.mapPos(i.anchor,1),o.mapPos(i.head,1))}})}var JPe=({state:t,dispatch:A})=>{if(t.readOnly)return!1;let e=Object.create(null),i=new zu(t,{overrideIndentation:o=>{let r=e[o];return r??-1}}),n=bO(t,(o,r,s)=>{let a=sb(i,o.from);if(a==null)return;/\S/.test(o.text)||(a=0);let c=/^\s*/.exec(o.text)[0],l=yf(t,a);(c!=l||s.fromt.readOnly?!1:(A(t.update(bO(t,(e,i)=>{i.push({from:e.from,insert:t.facet(ju)})}),{userEvent:"input.indent"})),!0),qge=({state:t,dispatch:A})=>t.readOnly?!1:(A(t.update(bO(t,(e,i)=>{let n=/^\s*/.exec(e.text)[0];if(!n)return;let o=L2(n,t.tabSize),r=0,s=yf(t,Math.max(0,o-qg(t)));for(;r(t.setTabFocusMode(),!0);var HPe=[{key:"Ctrl-b",run:Dge,shift:Nge,preventDefault:!0},{key:"Ctrl-f",run:vge,shift:Lge},{key:"Ctrl-p",run:Sge,shift:Kge},{key:"Ctrl-n",run:kge,shift:Uge},{key:"Ctrl-a",run:gPe,shift:wPe},{key:"Ctrl-e",run:dPe,shift:yPe},{key:"Ctrl-d",run:Jge},{key:"Ctrl-h",run:yO},{key:"Ctrl-k",run:kPe},{key:"Ctrl-Alt-h",run:Hge},{key:"Ctrl-o",run:RPe},{key:"Ctrl-t",run:NPe},{key:"Ctrl-v",run:wO}],zPe=[{key:"ArrowLeft",run:Dge,shift:Nge,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:tPe,shift:uPe,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:cPe,shift:mPe,preventDefault:!0},{key:"ArrowRight",run:vge,shift:Lge,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:iPe,shift:hPe,preventDefault:!0},{mac:"Cmd-ArrowRight",run:lPe,shift:pPe,preventDefault:!0},{key:"ArrowUp",run:Sge,shift:Kge,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Ege,shift:Qge},{mac:"Ctrl-ArrowUp",run:uge,shift:hge},{key:"ArrowDown",run:kge,shift:Uge,preventDefault:!0},{mac:"Cmd-ArrowDown",run:fge,shift:mge},{mac:"Ctrl-ArrowDown",run:wO,shift:Bge},{key:"PageUp",run:uge,shift:hge},{key:"PageDown",run:wO,shift:Bge},{key:"Home",run:aPe,shift:QPe,preventDefault:!0},{key:"Mod-Home",run:Ege,shift:Qge},{key:"End",run:sPe,shift:fPe,preventDefault:!0},{key:"Mod-End",run:fge,shift:mge},{key:"Enter",run:pge,shift:pge},{key:"Mod-a",run:DPe},{key:"Backspace",run:yO,shift:yO},{key:"Delete",run:Jge},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Hge},{key:"Mod-Delete",mac:"Alt-Delete",run:SPe},{mac:"Mod-Backspace",run:xPe},{mac:"Mod-Delete",run:_Pe}].concat(HPe.map(t=>({mac:t.key,run:t.run,shift:t.shift}))),Wge=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:oPe,shift:BPe},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:rPe,shift:EPe},{key:"Alt-ArrowUp",run:LPe},{key:"Shift-Alt-ArrowUp",run:GPe},{key:"Alt-ArrowDown",run:FPe},{key:"Shift-Alt-ArrowDown",run:KPe},{key:"Escape",run:MPe},{key:"Mod-Enter",run:OPe},{key:"Alt-l",mac:"Ctrl-l",run:vPe},{key:"Mod-i",run:bPe,preventDefault:!0},{key:"Mod-[",run:qge},{key:"Mod-]",run:Vge},{key:"Mod-Alt-\\",run:JPe},{key:"Shift-Mod-k",run:UPe},{key:"Shift-Mod-\\",run:IPe},{key:"Mod-/",run:qze},{key:"Alt-A",run:Zze},{key:"Ctrl-m",mac:"Shift-Alt-m",run:YPe}].concat(zPe),Zge={key:"Tab",run:Vge,shift:qge};var Ib=class{constructor(A,e,i){this.from=A,this.to=e,this.diagnostic=i}},Vu=class t{constructor(A,e,i){this.diagnostics=A,this.panel=e,this.selected=i}static init(A,e,i){let n=i.facet(Md).markerFilter;n&&(A=n(A,i));let o=A.slice().sort((l,d)=>l.from-d.from||l.to-d.to),r=new ga,s=[],a=0;for(let l=0;;){let d=l==o.length?null:o[l];if(!d&&!s.length)break;let C,I;for(s.length?(C=a,I=s.reduce((h,B)=>Math.min(h,B.to),d&&d.from>C?d.from:1e8)):(C=d.from,I=d.to,s.push(d),l++);lh.from||h.to==C))s.push(h),l++,I=Math.min(h.to,I);else{I=Math.min(h.from,I);break}}let u=s0e(s);if(s.some(h=>h.from==h.to||h.from==h.to-1&&i.doc.lineAt(h.from).to==h.from))r.add(C,C,bt.widget({widget:new MO(u),diagnostics:s.slice()}));else{let h=s.reduce((B,f)=>f.markClass?B+" "+f.markClass:B,"");r.add(C,I,bt.mark({class:"cm-lintRange cm-lintRange-"+u+h,diagnostics:s.slice(),inclusiveEnd:s.some(B=>B.to>I)}))}a=I;for(let h=0;h{if(!(A&&r.diagnostics.indexOf(A)<0))if(!i)i=new Ib(n,o,A||r.diagnostics[0]);else{if(r.diagnostics.indexOf(i.diagnostic)<0)return!1;i=new Ib(i.from,o,i.diagnostic)}}),i}function $ge(t,A){let e=A.pos,i=A.end||e,n=t.state.facet(Md).hideOn(t,e,i);if(n!=null)return n;let o=t.startState.doc.lineAt(A.pos);return!!(t.effects.some(r=>r.is(Bb))||t.changes.touchesRange(o.from,Math.max(o.to,i)))}function e0e(t,A){return t.field(ml,!1)?A:A.concat(tn.appendConfig.of(c0e))}function PPe(t,A){return{effects:e0e(t,[Bb.of(A)])}}var Bb=tn.define(),kO=tn.define(),A0e=tn.define(),ml=_r.define({create(){return new Vu(bt.none,null,null)},update(t,A){if(A.docChanged&&t.diagnostics.size){let e=t.diagnostics.map(A.changes),i=null,n=t.panel;if(t.selected){let o=A.changes.mapPos(t.selected.from,1);i=bf(e,t.selected.diagnostic,o)||bf(e,null,o)}!e.size&&n&&A.state.facet(Md).autoPanel&&(n=null),t=new Vu(e,n,i)}for(let e of A.effects)if(e.is(Bb)){let i=A.state.facet(Md).autoPanel?e.value.length?Ep.open:null:t.panel;t=Vu.init(e.value,i,A.state)}else e.is(kO)?t=new Vu(t.diagnostics,e.value?Ep.open:null,t.selected):e.is(A0e)&&(t=new Vu(t.diagnostics,t.panel,e.value));return t},provide:t=>[Ou.from(t,A=>A.panel),ai.decorations.from(t,A=>A.diagnostics)]});var jPe=bt.mark({class:"cm-lintRange cm-lintRange-active"});function VPe(t,A,e){let{diagnostics:i}=t.state.field(ml),n,o=-1,r=-1;i.between(A-(e<0?1:0),A+(e>0?1:0),(a,c,{spec:l})=>{if(A>=a&&A<=c&&(a==c||(A>a||e>0)&&(Ar0e(t,e,!1)))}var qPe=t=>{let A=t.state.field(ml,!1);(!A||!A.panel)&&t.dispatch({effects:e0e(t.state,[kO.of(!0)])});let e=Ju(t,Ep.open);return e&&e.dom.querySelector(".cm-panel-lint ul").focus(),!0},Xge=t=>{let A=t.state.field(ml,!1);return!A||!A.panel?!1:(t.dispatch({effects:kO.of(!1)}),!0)},WPe=t=>{let A=t.state.field(ml,!1);if(!A)return!1;let e=t.state.selection.main,i=A.diagnostics.iter(e.to+1);return!i.value&&(i=A.diagnostics.iter(0),!i.value||i.from==e.from&&i.to==e.to)?!1:(t.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)};var i0e=[{key:"Mod-Shift-m",run:qPe,preventDefault:!0},{key:"F8",run:WPe}],ZPe=Jo.fromClass(class{constructor(t){this.view=t,this.timeout=-1,this.set=!0;let{delay:A}=t.state.facet(Md);this.lintTime=Date.now()+A,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,A)}run(){clearTimeout(this.timeout);let t=Date.now();if(tPromise.resolve(i(this.view))),i=>{this.view.state.doc==A.doc&&this.view.dispatch(PPe(this.view.state,i.reduce((n,o)=>n.concat(o))))},i=>{Js(this.view.state,i)})}}update(t){let A=t.state.facet(Md);(t.docChanged||A!=t.startState.facet(Md)||A.needsRefresh&&A.needsRefresh(t))&&(this.lintTime=Date.now()+A.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,A.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}});function XPe(t,A,e){let i=[],n=-1;for(let o of t)o.then(r=>{i.push(r),clearTimeout(n),i.length==t.length?A(i):n=setTimeout(()=>A(i),200)},e)}var Md=rt.define({combine(t){return Object.assign({sources:t.map(A=>A.source).filter(A=>A!=null)},Os(t.map(A=>A.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{needsRefresh:(A,e)=>A?e?i=>A(i)||e(i):A:e}))}});function n0e(t,A={}){return[Md.of({source:t,config:A}),ZPe,c0e]}function o0e(t){let A=[];if(t)e:for(let{name:e}of t){for(let i=0;io.toLowerCase()==n.toLowerCase())){A.push(n);continue e}}A.push("")}return A}function r0e(t,A,e){var i;let n=e?o0e(A.actions):[];return Co("li",{class:"cm-diagnostic cm-diagnostic-"+A.severity},Co("span",{class:"cm-diagnosticText"},A.renderMessage?A.renderMessage(t):A.message),(i=A.actions)===null||i===void 0?void 0:i.map((o,r)=>{let s=!1,a=C=>{if(C.preventDefault(),s)return;s=!0;let I=bf(t.state.field(ml).diagnostics,A);I&&o.apply(t,I.from,I.to)},{name:c}=o,l=n[r]?c.indexOf(n[r]):-1,d=l<0?c:[c.slice(0,l),Co("u",c.slice(l,l+1)),c.slice(l+1)];return Co("button",{type:"button",class:"cm-diagnosticAction",onclick:a,onmousedown:a,"aria-label":` Action: ${c}${l<0?"":` (access key "${n[r]})"`}.`},d)}),A.source&&Co("div",{class:"cm-diagnosticSource"},A.source))}var MO=class extends Ql{constructor(A){super(),this.sev=A}eq(A){return A.sev==this.sev}toDOM(){return Co("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}},ub=class{constructor(A,e){this.diagnostic=e,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=r0e(A,e,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}},Ep=class t{constructor(A){this.view=A,this.items=[];let e=n=>{if(n.keyCode==27)Xge(this.view),this.view.focus();else if(n.keyCode==38||n.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(n.keyCode==40||n.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(n.keyCode==36)this.moveSelection(0);else if(n.keyCode==35)this.moveSelection(this.items.length-1);else if(n.keyCode==13)this.view.focus();else if(n.keyCode>=65&&n.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:o}=this.items[this.selectedIndex],r=o0e(o.actions);for(let s=0;s{for(let o=0;oXge(this.view)},"\xD7")),this.update()}get selectedIndex(){let A=this.view.state.field(ml).selected;if(!A)return-1;for(let e=0;e{for(let l of c.diagnostics){if(r.has(l))continue;r.add(l);let d=-1,C;for(let I=i;Ii&&(this.items.splice(i,d-i),n=!0)),e&&C.diagnostic==e.diagnostic?C.dom.hasAttribute("aria-selected")||(C.dom.setAttribute("aria-selected","true"),o=C):C.dom.hasAttribute("aria-selected")&&C.dom.removeAttribute("aria-selected"),i++}});i({sel:o.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:s,panel:a})=>{let c=a.height/this.list.offsetHeight;s.topa.bottom&&(this.list.scrollTop+=(s.bottom-a.bottom)/c)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),n&&this.sync()}sync(){let A=this.list.firstChild;function e(){let i=A;A=i.nextSibling,i.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;A!=i.dom;)e();A=i.dom.nextSibling}else this.list.insertBefore(i.dom,A);for(;A;)e()}moveSelection(A){if(this.selectedIndex<0)return;let e=this.view.state.field(ml),i=bf(e.diagnostics,this.items[A].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:A0e.of(i)})}static open(A){return new t(A)}};function Cb(t,A='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(t)}')`}function db(t){return Cb(``,'width="6" height="3"')}var $Pe=ai.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:db("#d11")},".cm-lintRange-warning":{backgroundImage:db("orange")},".cm-lintRange-info":{backgroundImage:db("#999")},".cm-lintRange-hint":{backgroundImage:db("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function eje(t){return t=="error"?4:t=="warning"?3:t=="info"?2:1}function s0e(t){let A="hint",e=1;for(let i of t){let n=eje(i.severity);n>e&&(e=n,A=i.severity)}return A}var hb=class extends Kc{constructor(A){super(),this.diagnostics=A,this.severity=s0e(A)}toDOM(A){let e=document.createElement("div");e.className="cm-lint-marker cm-lint-marker-"+this.severity;let i=this.diagnostics,n=A.state.facet(Eb).tooltipFilter;return n&&(i=n(i,A.state)),i.length&&(e.onmouseover=()=>tje(A,e,i)),e}};function Aje(t,A){let e=i=>{let n=A.getBoundingClientRect();if(!(i.clientX>n.left-10&&i.clientXn.top-10&&i.clientYA.getBoundingClientRect()}}})}),A.onmouseout=A.onmousemove=null,Aje(t,A)}let{hoverTime:n}=t.state.facet(Eb),o=setTimeout(i,n);A.onmouseout=()=>{clearTimeout(o),A.onmouseout=A.onmousemove=null},A.onmousemove=()=>{clearTimeout(o),o=setTimeout(i,n)}}function ije(t,A){let e=Object.create(null);for(let n of A){let o=t.lineAt(n.from);(e[o.from]||(e[o.from]=[])).push(n)}let i=[];for(let n in e)i.push(new hb(e[n]).range(+n));return To.of(i,!0)}var nje=q7({class:"cm-gutter-lint",markers:t=>t.state.field(SO),widgetMarker:(t,A,e)=>{let i=[];return t.state.field(SO).between(e.from,e.to,(n,o,r)=>{n>e.from&&ni.is(xO)?i.value:e,t)},provide:t=>Bf.from(t)}),oje=ai.baseTheme({".cm-gutter-lint":{width:"1.4em","& .cm-gutterElement":{padding:".2em"}},".cm-lint-marker":{width:"1em",height:"1em"},".cm-lint-marker-info":{content:Cb('')},".cm-lint-marker-warning":{content:Cb('')},".cm-lint-marker-error":{content:Cb('')}}),c0e=[ml,ai.decorations.compute([ml],t=>{let{selected:A,panel:e}=t.field(ml);return!A||!e||A.from==A.to?bt.none:bt.set([jPe.range(A.from,A.to)])}),kle(VPe,{hideOn:$ge}),$Pe],Eb=rt.define({combine(t){return Os(t,{hoverTime:300,markerFilter:null,tooltipFilter:null})}});function l0e(t={}){return[Eb.of(t),SO,nje,oje,a0e]}var RO=class t{constructor(A,e,i,n,o,r,s,a,c,l=0,d){this.p=A,this.stack=e,this.state=i,this.reducePos=n,this.pos=o,this.score=r,this.buffer=s,this.bufferBase=a,this.curContext=c,this.lookAhead=l,this.parent=d}toString(){return`[${this.stack.filter((A,e)=>e%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(A,e,i=0){let n=A.parser.context;return new t(A,[],e,i,i,0,[],0,n?new fb(n,n.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(A,e){this.stack.push(this.state,e,this.bufferBase+this.buffer.length),this.state=A}reduce(A){var e;let i=A>>19,n=A&65535,{parser:o}=this.p,r=this.reducePos=2e3&&!(!((e=this.p.parser.nodeSet.types[n])===null||e===void 0)&&e.isAnonymous)&&(c==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=l):this.p.lastBigReductionSizea;)this.stack.pop();this.reduceContext(n,c)}storeNode(A,e,i,n=4,o=!1){if(A==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&r.buffer[s-4]==0&&r.buffer[s-1]>-1){if(e==i)return;if(r.buffer[s-2]>=e){r.buffer[s-2]=i;return}}}if(!o||this.pos==i)this.buffer.push(A,e,i,n);else{let r=this.buffer.length;if(r>0&&this.buffer[r-4]!=0){let s=!1;for(let a=r;a>0&&this.buffer[a-2]>i;a-=4)if(this.buffer[a-1]>=0){s=!0;break}if(s)for(;r>0&&this.buffer[r-2]>i;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,n>4&&(n-=4)}this.buffer[r]=A,this.buffer[r+1]=e,this.buffer[r+2]=i,this.buffer[r+3]=n}}shift(A,e,i,n){if(A&131072)this.pushState(A&65535,this.pos);else if((A&262144)==0){let o=A,{parser:r}=this.p;(n>this.pos||e<=r.maxNode)&&(this.pos=n,r.stateFlag(o,1)||(this.reducePos=n)),this.pushState(o,i),this.shiftContext(e,i),e<=r.maxNode&&this.buffer.push(e,i,n,4)}else this.pos=n,this.shiftContext(e,i),e<=this.p.parser.maxNode&&this.buffer.push(e,i,n,4)}apply(A,e,i,n){A&65536?this.reduce(A):this.shift(A,e,i,n)}useNode(A,e){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=A)&&(this.p.reused.push(A),i++);let n=this.pos;this.reducePos=this.pos=n+A.length,this.pushState(e,n),this.buffer.push(i,n,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,A,this,this.p.stream.reset(this.pos-A.length)))}split(){let A=this,e=A.buffer.length;for(;e>0&&A.buffer[e-2]>A.reducePos;)e-=4;let i=A.buffer.slice(e),n=A.bufferBase+e;for(;A&&n==A.bufferBase;)A=A.parent;return new t(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,n,this.curContext,this.lookAhead,A)}recoverByDelete(A,e){let i=A<=this.p.parser.maxNode;i&&this.storeNode(A,this.pos,e,4),this.storeNode(0,this.pos,e,i?8:4),this.pos=this.reducePos=e,this.score-=190}canShift(A){for(let e=new NO(this);;){let i=this.p.parser.stateSlot(e.state,4)||this.p.parser.hasAction(e.state,A);if(i==0)return!1;if((i&65536)==0)return!0;e.reduce(i)}}recoverByInsert(A){if(this.stack.length>=300)return[];let e=this.p.parser.nextStates(this.state);if(e.length>8||this.stack.length>=120){let n=[];for(let o=0,r;oa&1&&s==r)||n.push(e[o],r)}e=n}let i=[];for(let n=0;n>19,n=e&65535,o=this.stack.length-i*3;if(o<0||A.getGoto(this.stack[o],n,!1)<0){let r=this.findForcedReduction();if(r==null)return!1;e=r}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}findForcedReduction(){let{parser:A}=this.p,e=[],i=(n,o)=>{if(!e.includes(n))return e.push(n),A.allActions(n,r=>{if(!(r&393216))if(r&65536){let s=(r>>19)-o;if(s>1){let a=r&65535,c=this.stack.length-s*3;if(c>=0&&A.getGoto(this.stack[c],a,!1)>=0)return s<<19|65536|a}}else{let s=i(r,o+1);if(s!=null)return s}})};return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:A}=this.p;return A.data[A.stateSlot(this.state,1)]==65535&&!A.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(A){if(this.state!=A.state||this.stack.length!=A.stack.length)return!1;for(let e=0;ethis.lookAhead&&(this.emitLookAhead(),this.lookAhead=A)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},fb=class{constructor(A,e){this.tracker=A,this.context=e,this.hash=A.strict?A.hash(e):0}},NO=class{constructor(A){this.start=A,this.state=A.state,this.stack=A.stack,this.base=this.stack.length}reduce(A){let e=A&65535,i=A>>19;i==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(i-1)*3;let n=this.start.p.parser.getGoto(this.stack[this.base-3],e,!0);this.state=n}},LO=class t{constructor(A,e,i){this.stack=A,this.pos=e,this.index=i,this.buffer=A.buffer,this.index==0&&this.maybeNext()}static create(A,e=A.bufferBase+A.buffer.length){return new t(A,e,e-A.bufferBase)}maybeNext(){let A=this.stack.parent;A!=null&&(this.index=this.stack.bufferBase-A.bufferBase,this.stack=A,this.buffer=A.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new t(this.stack,this.pos,this.index)}};function fp(t,A=Uint16Array){if(typeof t!="string")return t;let e=null;for(let i=0,n=0;i=92&&r--,r>=34&&r--;let a=r-32;if(a>=46&&(a-=46,s=!0),o+=a,s)break;o*=46}e?e[n++]=o:e=new A(o)}return e}var Mf=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},g0e=new Mf,FO=class{constructor(A,e){this.input=A,this.ranges=e,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=g0e,this.rangeIndex=0,this.pos=this.chunkPos=e[0].from,this.range=e[0],this.end=e[e.length-1].to,this.readNext()}resolveOffset(A,e){let i=this.range,n=this.rangeIndex,o=this.pos+A;for(;oi.to:o>=i.to;){if(n==this.ranges.length-1)return null;let r=this.ranges[++n];o+=r.from-i.to,i=r}return o}clipPos(A){if(A>=this.range.from&&AA)return Math.max(A,e.from);return this.end}peek(A){let e=this.chunkOff+A,i,n;if(e>=0&&e=this.chunk2Pos&&is.to&&(this.chunk2=this.chunk2.slice(0,s.to-i)),n=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),n}acceptToken(A,e=0){let i=e?this.resolveOffset(e,-1):this.pos;if(i==null||i=this.chunk2Pos&&this.posthis.range.to?A.slice(0,this.range.to-this.pos):A,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(A=1){for(this.chunkOff+=A;this.pos+A>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();A-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=A,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(A,e){if(e?(this.token=e,e.start=A,e.lookAhead=A+1,e.value=e.extended=-1):this.token=g0e,this.pos!=A){if(this.pos=A,A==this.end)return this.setDone(),this;for(;A=this.range.to;)this.range=this.ranges[++this.rangeIndex];A>=this.chunkPos&&A=this.chunkPos&&e<=this.chunkPos+this.chunk.length)return this.chunk.slice(A-this.chunkPos,e-this.chunkPos);if(A>=this.chunk2Pos&&e<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(A-this.chunk2Pos,e-this.chunk2Pos);if(A>=this.range.from&&e<=this.range.to)return this.input.read(A,e);let i="";for(let n of this.ranges){if(n.from>=e)break;n.to>A&&(i+=this.input.read(Math.max(n.from,A),Math.min(n.to,e)))}return i}},FC=class{constructor(A,e){this.data=A,this.id=e}token(A,e){let{parser:i}=e.p;h0e(this.data,A,e,this.id,i.data,i.tokenPrecTable)}};FC.prototype.contextual=FC.prototype.fallback=FC.prototype.extend=!1;var GO=class{constructor(A,e,i){this.precTable=e,this.elseToken=i,this.data=typeof A=="string"?fp(A):A}token(A,e){let i=A.pos,n=0;for(;;){let o=A.next<0,r=A.resolveOffset(1,1);if(h0e(this.data,A,e,0,this.data,this.precTable),A.token.value>-1)break;if(this.elseToken==null)return;if(o||n++,r==null)break;A.reset(r,A.token)}n&&(A.reset(i,A.token),A.acceptToken(this.elseToken,n))}};GO.prototype.contextual=FC.prototype.fallback=FC.prototype.extend=!1;function h0e(t,A,e,i,n,o){let r=0,s=1<0){let u=t[I];if(a.allows(u)&&(A.token.value==-1||A.token.value==u||sje(u,A.token.value,n,o))){A.acceptToken(u);break}}let l=A.next,d=0,C=t[r+2];if(A.next<0&&C>d&&t[c+C*3-3]==65535){r=t[c+C*3-1];continue e}for(;d>1,u=c+I+(I<<1),h=t[u],B=t[u+1]||65536;if(l=B)d=I+1;else{r=t[u+2],A.advance();continue e}}break}}function d0e(t,A,e){for(let i=A,n;(n=t[i])!=65535;i++)if(n==e)return i-A;return-1}function sje(t,A,e,i){let n=d0e(e,i,A);return n<0||d0e(e,i,t)A)&&!i.type.isError)return e<0?Math.max(0,Math.min(i.to-1,A-25)):Math.min(t.length,Math.max(i.from+1,A+25));if(e<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return e<0?0:t.length}}var KO=class{constructor(A,e){this.fragments=A,this.nodeSet=e,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let A=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(A){for(this.safeFrom=A.openStart?C0e(A.tree,A.from+A.offset,1)-A.offset:A.from,this.safeTo=A.openEnd?C0e(A.tree,A.to+A.offset,-1)-A.offset:A.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(A.tree),this.start.push(-A.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(A){if(AA)return this.nextStart=r,null;if(o instanceof as){if(r==A){if(r=Math.max(this.safeFrom,A)&&(this.trees.push(o),this.start.push(r),this.index.push(0))}else this.index[e]++,this.nextStart=r+o.length}}},UO=class{constructor(A,e){this.stream=e,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=A.tokenizers.map(i=>new Mf)}getActions(A){let e=0,i=null,{parser:n}=A.p,{tokenizers:o}=n,r=n.stateSlot(A.state,3),s=A.curContext?A.curContext.hash:0,a=0;for(let c=0;cd.end+25&&(a=Math.max(d.lookAhead,a)),d.value!=0)){let C=e;if(d.extended>-1&&(e=this.addActions(A,d.extended,d.end,e)),e=this.addActions(A,d.value,d.end,e),!l.extend&&(i=d,e>C))break}}for(;this.actions.length>e;)this.actions.pop();return a&&A.setLookAhead(a),!i&&A.pos==this.stream.end&&(i=new Mf,i.value=A.p.parser.eofTerm,i.start=i.end=A.pos,e=this.addActions(A,i.value,i.end,e)),this.mainToken=i,this.actions}getMainToken(A){if(this.mainToken)return this.mainToken;let e=new Mf,{pos:i,p:n}=A;return e.start=i,e.end=Math.min(i+1,n.stream.end),e.value=i==n.stream.end?n.parser.eofTerm:0,e}updateCachedToken(A,e,i){let n=this.stream.clipPos(i.pos);if(e.token(this.stream.reset(n,A),i),A.value>-1){let{parser:o}=i.p;for(let r=0;r=0&&i.p.parser.dialect.allows(s>>1)){(s&1)==0?A.value=s>>1:A.extended=s>>1;break}}}else A.value=0,A.end=this.stream.clipPos(n+1)}putAction(A,e,i,n){for(let o=0;oA.bufferLength*4?new KO(i,A.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let A=this.stacks,e=this.minStackPos,i=this.stacks=[],n,o;if(this.bigReductionCount>300&&A.length==1){let[r]=A;for(;r.forceReduce()&&r.stack.length&&r.stack[r.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let r=0;re)i.push(s);else{if(this.advanceStack(s,i,A))continue;{n||(n=[],o=[]),n.push(s);let a=this.tokens.getMainToken(s);o.push(a.value,a.end)}}break}}if(!i.length){let r=n&&aje(n);if(r)return pl&&console.log("Finish with "+this.stackID(r)),this.stackToTree(r);if(this.parser.strict)throw pl&&n&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+e);this.recovering||(this.recovering=5)}if(this.recovering&&n){let r=this.stoppedAt!=null&&n[0].pos>this.stoppedAt?n[0]:this.runRecovery(n,o,i);if(r)return pl&&console.log("Force-finish "+this.stackID(r)),this.stackToTree(r.forceAll())}if(this.recovering){let r=this.recovering==1?1:this.recovering*3;if(i.length>r)for(i.sort((s,a)=>a.score-s.score);i.length>r;)i.pop();i.some(s=>s.reducePos>e)&&this.recovering--}else if(i.length>1){e:for(let r=0;r500&&c.buffer.length>500)if((s.score-c.score||s.buffer.length-c.buffer.length)>0)i.splice(a--,1);else{i.splice(r--,1);continue e}}}i.length>12&&i.splice(12,i.length-12)}this.minStackPos=i[0].pos;for(let r=1;r ":"";if(this.stoppedAt!=null&&n>this.stoppedAt)return A.forceReduce()?A:null;if(this.fragments){let c=A.curContext&&A.curContext.tracker.strict,l=c?A.curContext.hash:0;for(let d=this.fragments.nodeAt(n);d;){let C=this.parser.nodeSet.types[d.type.id]==d.type?o.getGoto(A.state,d.type.id):-1;if(C>-1&&d.length&&(!c||(d.prop(ki.contextHash)||0)==l))return A.useNode(d,C),pl&&console.log(r+this.stackID(A)+` (via reuse of ${o.getName(d.type.id)})`),!0;if(!(d instanceof as)||d.children.length==0||d.positions[0]>0)break;let I=d.children[0];if(I instanceof as&&d.positions[0]==0)d=I;else break}}let s=o.stateSlot(A.state,4);if(s>0)return A.reduce(s),pl&&console.log(r+this.stackID(A)+` (via always-reduce ${o.getName(s&65535)})`),!0;if(A.stack.length>=8400)for(;A.stack.length>6e3&&A.forceReduce(););let a=this.tokens.getActions(A);for(let c=0;cn?e.push(u):i.push(u)}return!1}advanceFully(A,e){let i=A.pos;for(;;){if(!this.advanceStack(A,null,null))return!1;if(A.pos>i)return I0e(A,e),!0}}runRecovery(A,e,i){let n=null,o=!1;for(let r=0;r ":"";if(s.deadEnd&&(o||(o=!0,s.restart(),pl&&console.log(l+this.stackID(s)+" (restarted)"),this.advanceFully(s,i))))continue;let d=s.split(),C=l;for(let I=0;d.forceReduce()&&I<10&&(pl&&console.log(C+this.stackID(d)+" (via force-reduce)"),!this.advanceFully(d,i));I++)pl&&(C=this.stackID(d)+" -> ");for(let I of s.recoverByInsert(a))pl&&console.log(l+this.stackID(I)+" (via recover-insert)"),this.advanceFully(I,i);this.stream.end>s.pos?(c==s.pos&&(c++,a=0),s.recoverByDelete(a,c),pl&&console.log(l+this.stackID(s)+` (via recover-delete ${this.parser.getName(a)})`),I0e(s,i)):(!n||n.scoreA.topRules[s][1]),n=[];for(let s=0;s=0)o(l,a,s[c++]);else{let d=s[c+-l];for(let C=-l;C>0;C--)o(s[c++],a,d);c++}}}this.nodeSet=new rp(e.map((s,a)=>Na.define({name:a>=this.minRepeatTerm?void 0:s,id:a,props:n[a],top:i.indexOf(a)>-1,error:a==0,skipped:A.skippedNodes&&A.skippedNodes.indexOf(a)>-1}))),A.propSources&&(this.nodeSet=this.nodeSet.extend(...A.propSources)),this.strict=!1,this.bufferLength=1024;let r=fp(A.tokenData);this.context=A.context,this.specializerSpecs=A.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let s=0;stypeof s=="number"?new FC(r,s):s),this.topRules=A.topRules,this.dialects=A.dialects||{},this.dynamicPrecedences=A.dynamicPrecedences||null,this.tokenPrecTable=A.tokenPrec,this.termNames=A.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(A,e,i){let n=new TO(this,A,e,i);for(let o of this.wrappers)n=o(n,A,e,i);return n}getGoto(A,e,i=!1){let n=this.goto;if(e>=n[0])return-1;for(let o=n[e+1];;){let r=n[o++],s=r&1,a=n[o++];if(s&&i)return a;for(let c=o+(r>>1);o0}validAction(A,e){return!!this.allActions(A,i=>i==e?!0:null)}allActions(A,e){let i=this.stateSlot(A,4),n=i?e(i):void 0;for(let o=this.stateSlot(A,1);n==null;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=K2(this.data,o+2);else break;n=e(K2(this.data,o+1))}return n}nextStates(A){let e=[];for(let i=this.stateSlot(A,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=K2(this.data,i+2);else break;if((this.data[i+2]&1)==0){let n=this.data[i+1];e.some((o,r)=>r&1&&o==n)||e.push(this.data[i],n)}}return e}configure(A){let e=Object.assign(Object.create(t.prototype),this);if(A.props&&(e.nodeSet=this.nodeSet.extend(...A.props)),A.top){let i=this.topRules[A.top];if(!i)throw new RangeError(`Invalid top rule name ${A.top}`);e.top=i}return A.tokenizers&&(e.tokenizers=this.tokenizers.map(i=>{let n=A.tokenizers.find(o=>o.from==i);return n?n.to:i})),A.specializers&&(e.specializers=this.specializers.slice(),e.specializerSpecs=this.specializerSpecs.map((i,n)=>{let o=A.specializers.find(s=>s.from==i.external);if(!o)return i;let r=Object.assign(Object.assign({},i),{external:o.to});return e.specializers[n]=u0e(r),r})),A.contextTracker&&(e.context=A.contextTracker),A.dialect&&(e.dialect=this.parseDialect(A.dialect)),A.strict!=null&&(e.strict=A.strict),A.wrap&&(e.wrappers=e.wrappers.concat(A.wrap)),A.bufferLength!=null&&(e.bufferLength=A.bufferLength),e}hasWrappers(){return this.wrappers.length>0}getName(A){return this.termNames?this.termNames[A]:String(A<=this.maxNode&&this.nodeSet.types[A].name||A)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(A){let e=this.dynamicPrecedences;return e==null?0:e[A]||0}parseDialect(A){let e=Object.keys(this.dialects),i=e.map(()=>!1);if(A)for(let o of A.split(" ")){let r=e.indexOf(o);r>=0&&(i[r]=!0)}let n=null;for(let o=0;oi)&&e.p.parser.stateFlag(e.state,2)&&(!A||A.scoret.external(e,i)<<1|A}return t.get}var cje=ib({String:GA.string,Number:GA.number,"True False":GA.bool,PropertyName:GA.propertyName,Null:GA.null,", :":GA.separator,"[ ]":GA.squareBracket,"{ }":GA.brace}),B0e=Qb.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"\u26A0 JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[cje],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0});var lje=nb.define({name:"json",parser:B0e.configure({props:[hO.add({Object:BO({except:/^\s*\}/}),Array:BO({except:/^\s*\]/})}),Ip.add({"Object Array":ege})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function E0e(){return new ob(lje)}var f0e=typeof String.prototype.normalize=="function"?t=>t.normalize("NFKD"):t=>t,KC=class{constructor(A,e,i=0,n=A.length,o,r){this.test=r,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=A.iterRange(i,n),this.bufferStart=i,this.normalize=o?s=>o(f0e(s)):f0e,this.query=this.normalize(e)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return da(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let A=this.peek();if(A<0)return this.done=!0,this;let e=F3(A),i=this.bufferStart+this.bufferPos;this.bufferPos+=El(A);let n=this.normalize(e);if(n.length)for(let o=0,r=i;;o++){let s=n.charCodeAt(o),a=this.match(s,r,this.bufferPos+this.bufferStart);if(o==n.length-1){if(a)return this.value=a,this;break}r==i&&othis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let A=this.matchPos-this.curLineStart;;){this.re.lastIndex=A;let e=this.matchPos<=this.to&&this.re.exec(this.curLine);if(e){let i=this.curLineStart+e.index,n=i+e[0].length;if(this.matchPos=vb(this.text,n+(i==n?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,n,e)))return this.value={from:i,to:n,match:e},this;A=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=i||n.to<=e){let s=new t(e,A.sliceString(e,i));return JO.set(A,s),s}if(n.from==e&&n.to==i)return n;let{text:o,from:r}=n;return r>e&&(o=A.sliceString(e,r)+o,r=e),n.to=this.to?this.to:this.text.lineAt(A).to}next(){for(;;){let A=this.re.lastIndex=this.matchPos-this.flat.from,e=this.re.exec(this.flat.text);if(e&&!e[0]&&e.index==A&&(this.re.lastIndex=A+1,e=this.re.exec(this.flat.text)),e){let i=this.flat.from+e.index,n=i+e[0].length;if((this.flat.to>=this.to||e.index+e[0].length<=this.flat.text.length-10)&&(!this.test||this.test(i,n,e)))return this.value={from:i,to:n,match:e},this.matchPos=vb(this.text,n+(i==n?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=yb.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}};typeof Symbol<"u"&&(wb.prototype[Symbol.iterator]=Db.prototype[Symbol.iterator]=function(){return this});function gje(t){try{return new RegExp(t,qO),!0}catch{return!1}}function vb(t,A){if(A>=t.length)return A;let e=t.lineAt(A),i;for(;A=56320&&i<57344;)A++;return A}function YO(t){let A=String(t.state.doc.lineAt(t.state.selection.main.head).number),e=Co("input",{class:"cm-textfield",name:"line",value:A}),i=Co("form",{class:"cm-gotoLine",onkeydown:o=>{o.keyCode==27?(o.preventDefault(),t.dispatch({effects:Qp.of(!1)}),t.focus()):o.keyCode==13&&(o.preventDefault(),n())},onsubmit:o=>{o.preventDefault(),n()}},Co("label",t.state.phrase("Go to line"),": ",e)," ",Co("button",{class:"cm-button",type:"submit"},t.state.phrase("go")),Co("button",{name:"close",onclick:()=>{t.dispatch({effects:Qp.of(!1)}),t.focus()},"aria-label":t.state.phrase("close"),type:"button"},["\xD7"]));function n(){let o=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!o)return;let{state:r}=t,s=r.doc.lineAt(r.selection.main.head),[,a,c,l,d]=o,C=l?+l.slice(1):0,I=c?+c:s.number;if(c&&d){let B=I/100;a&&(B=B*(a=="-"?-1:1)+s.number/r.doc.lines),I=Math.round(r.doc.lines*B)}else c&&a&&(I=I*(a=="-"?-1:1)+s.number);let u=r.doc.line(Math.max(1,Math.min(r.doc.lines,I))),h=fA.cursor(u.from+Math.max(0,Math.min(C,u.length)));t.dispatch({effects:[Qp.of(!1),ai.scrollIntoView(h.from,{y:"center"})],selection:h}),t.focus()}return{dom:i}}var Qp=tn.define(),Q0e=_r.define({create(){return!0},update(t,A){for(let e of A.effects)e.is(Qp)&&(t=e.value);return t},provide:t=>Ou.from(t,A=>A?YO:null)}),dje=t=>{let A=Ju(t,YO);if(!A){let e=[Qp.of(!0)];t.state.field(Q0e,!1)==null&&e.push(tn.appendConfig.of([Q0e,Cje])),t.dispatch({effects:e}),A=Ju(t,YO)}return A&&A.dom.querySelector("input").select(),!0},Cje=ai.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px",position:"relative","& label":{fontSize:"80%"},"& [name=close]":{position:"absolute",top:"0",bottom:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:"0"}}}),Ije={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},y0e=rt.define({combine(t){return Os(t,Ije,{highlightWordAroundCursor:(A,e)=>A||e,minSelectionLength:Math.min,maxMatches:Math.min})}});function D0e(t){let A=[fje,Eje];return t&&A.push(y0e.of(t)),A}var uje=bt.mark({class:"cm-selectionMatch"}),hje=bt.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function m0e(t,A,e,i){return(e==0||t(A.sliceDoc(e-1,e))!=Uo.Word)&&(i==A.doc.length||t(A.sliceDoc(i,i+1))!=Uo.Word)}function Bje(t,A,e,i){return t(A.sliceDoc(e,e+1))==Uo.Word&&t(A.sliceDoc(i-1,i))==Uo.Word}var Eje=Jo.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.selectionSet||t.docChanged||t.viewportChanged)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let A=t.state.facet(y0e),{state:e}=t,i=e.selection;if(i.ranges.length>1)return bt.none;let n=i.main,o,r=null;if(n.empty){if(!A.highlightWordAroundCursor)return bt.none;let a=e.wordAt(n.head);if(!a)return bt.none;r=e.charCategorizer(n.head),o=e.sliceDoc(a.from,a.to)}else{let a=n.to-n.from;if(a200)return bt.none;if(A.wholeWords){if(o=e.sliceDoc(n.from,n.to),r=e.charCategorizer(n.head),!(m0e(r,e,n.from,n.to)&&Bje(r,e,n.from,n.to)))return bt.none}else if(o=e.sliceDoc(n.from,n.to),!o)return bt.none}let s=[];for(let a of t.visibleRanges){let c=new KC(e.doc,o,a.from,a.to);for(;!c.next().done;){let{from:l,to:d}=c.value;if((!r||m0e(r,e,l,d))&&(n.empty&&l<=n.from&&d>=n.to?s.push(hje.range(l,d)):(l>=n.to||d<=n.from)&&s.push(uje.range(l,d)),s.length>A.maxMatches))return bt.none}}return bt.set(s)}},{decorations:t=>t.decorations}),fje=ai.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),Qje=({state:t,dispatch:A})=>{let{selection:e}=t,i=fA.create(e.ranges.map(n=>t.wordAt(n.head)||fA.cursor(n.head)),e.mainIndex);return i.eq(e)?!1:(A(t.update({selection:i})),!0)};function mje(t,A){let{main:e,ranges:i}=t.selection,n=t.wordAt(e.head),o=n&&n.from==e.from&&n.to==e.to;for(let r=!1,s=new KC(t.doc,A,i[i.length-1].to);;)if(s.next(),s.done){if(r)return null;s=new KC(t.doc,A,0,Math.max(0,i[i.length-1].from-1)),r=!0}else{if(r&&i.some(a=>a.from==s.value.from))continue;if(o){let a=t.wordAt(s.value.from);if(!a||a.from!=s.value.from||a.to!=s.value.to)continue}return s.value}}var pje=({state:t,dispatch:A})=>{let{ranges:e}=t.selection;if(e.some(o=>o.from===o.to))return Qje({state:t,dispatch:A});let i=t.sliceDoc(e[0].from,e[0].to);if(t.selection.ranges.some(o=>t.sliceDoc(o.from,o.to)!=i))return!1;let n=mje(t,i);return n?(A(t.update({selection:t.selection.addRange(fA.range(n.from,n.to),!1),effects:ai.scrollIntoView(n.to)})),!0):!1},qu=rt.define({combine(t){return Os(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:A=>new jO(A),scrollToMatch:A=>ai.scrollIntoView(A)})}});function v0e(t){return t?[qu.of(t),VO]:VO}var bb=class{constructor(A){this.search=A.search,this.caseSensitive=!!A.caseSensitive,this.literal=!!A.literal,this.regexp=!!A.regexp,this.replace=A.replace||"",this.valid=!!this.search&&(!this.regexp||gje(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!A.wholeWord}unquote(A){return this.literal?A:A.replace(/\\([nrt\\])/g,(e,i)=>i=="n"?` +`:i=="r"?"\r":i=="t"?" ":"\\")}eq(A){return this.search==A.search&&this.replace==A.replace&&this.caseSensitive==A.caseSensitive&&this.regexp==A.regexp&&this.wholeWord==A.wholeWord}create(){return this.regexp?new zO(this):new HO(this)}getCursor(A,e=0,i){let n=A.doc?A:ss.create({doc:A});return i==null&&(i=n.doc.length),this.regexp?kf(this,n,e,i):Sf(this,n,e,i)}},Mb=class{constructor(A){this.spec=A}};function Sf(t,A,e,i){return new KC(A.doc,t.unquoted,e,i,t.caseSensitive?void 0:n=>n.toLowerCase(),t.wholeWord?wje(A.doc,A.charCategorizer(A.selection.main.head)):void 0)}function wje(t,A){return(e,i,n,o)=>((o>e||o+n.length=e)return null;n.push(i.value)}return n}highlight(A,e,i,n){let o=Sf(this.spec,A,Math.max(0,e-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,A.doc.length));for(;!o.next().done;)n(o.value.from,o.value.to)}};function kf(t,A,e,i){return new wb(A.doc,t.search,{ignoreCase:!t.caseSensitive,test:t.wholeWord?yje(A.charCategorizer(A.selection.main.head)):void 0},e,i)}function Sb(t,A){return t.slice(Cs(t,A,!1),A)}function kb(t,A){return t.slice(A,Cs(t,A))}function yje(t){return(A,e,i)=>!i[0].length||(t(Sb(i.input,i.index))!=Uo.Word||t(kb(i.input,i.index))!=Uo.Word)&&(t(kb(i.input,i.index+i[0].length))!=Uo.Word||t(Sb(i.input,i.index+i[0].length))!=Uo.Word)}var zO=class extends Mb{nextMatch(A,e,i){let n=kf(this.spec,A,i,A.doc.length).next();return n.done&&(n=kf(this.spec,A,0,e).next()),n.done?null:n.value}prevMatchInRange(A,e,i){for(let n=1;;n++){let o=Math.max(e,i-n*1e4),r=kf(this.spec,A,o,i),s=null;for(;!r.next().done;)s=r.value;if(s&&(o==e||s.from>o+10))return s;if(o==e)return null}}prevMatch(A,e,i){return this.prevMatchInRange(A,0,e)||this.prevMatchInRange(A,i,A.doc.length)}getReplacement(A){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(e,i)=>{if(i=="&")return A.match[0];if(i=="$")return"$";for(let n=i.length;n>0;n--){let o=+i.slice(0,n);if(o>0&&o=e)return null;n.push(i.value)}return n}highlight(A,e,i,n){let o=kf(this.spec,A,Math.max(0,e-250),Math.min(i+250,A.doc.length));for(;!o.next().done;)n(o.value.from,o.value.to)}},pp=tn.define(),WO=tn.define(),GC=_r.define({create(t){return new mp(PO(t).create(),null)},update(t,A){for(let e of A.effects)e.is(pp)?t=new mp(e.value.create(),t.panel):e.is(WO)&&(t=new mp(t.query,e.value?ZO:null));return t},provide:t=>Ou.from(t,A=>A.panel)});var mp=class{constructor(A,e){this.query=A,this.panel=e}},Dje=bt.mark({class:"cm-searchMatch"}),vje=bt.mark({class:"cm-searchMatch cm-searchMatch-selected"}),bje=Jo.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(GC))}update(t){let A=t.state.field(GC);(A!=t.startState.field(GC)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(A))}highlight({query:t,panel:A}){if(!A||!t.spec.valid)return bt.none;let{view:e}=this,i=new ga;for(let n=0,o=e.visibleRanges,r=o.length;no[n+1].from-2*250;)a=o[++n].to;t.highlight(e.state,s,a,(c,l)=>{let d=e.state.selection.ranges.some(C=>C.from==c&&C.to==l);i.add(c,l,d?vje:Dje)})}return i.finish()}},{decorations:t=>t.decorations});function wp(t){return A=>{let e=A.state.field(GC,!1);return e&&e.query.spec.valid?t(A,e):Rb(A)}}var xb=wp((t,{query:A})=>{let{to:e}=t.state.selection.main,i=A.nextMatch(t.state,e,e);if(!i)return!1;let n=fA.single(i.from,i.to),o=t.state.facet(qu);return t.dispatch({selection:n,effects:[XO(t,i),o.scrollToMatch(n.main,t)],userEvent:"select.search"}),M0e(t),!0}),_b=wp((t,{query:A})=>{let{state:e}=t,{from:i}=e.selection.main,n=A.prevMatch(e,i,i);if(!n)return!1;let o=fA.single(n.from,n.to),r=t.state.facet(qu);return t.dispatch({selection:o,effects:[XO(t,n),r.scrollToMatch(o.main,t)],userEvent:"select.search"}),M0e(t),!0}),Mje=wp((t,{query:A})=>{let e=A.matchAll(t.state,1e3);return!e||!e.length?!1:(t.dispatch({selection:fA.create(e.map(i=>fA.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),Sje=({state:t,dispatch:A})=>{let e=t.selection;if(e.ranges.length>1||e.main.empty)return!1;let{from:i,to:n}=e.main,o=[],r=0;for(let s=new KC(t.doc,t.sliceDoc(i,n));!s.next().done;){if(o.length>1e3)return!1;s.value.from==i&&(r=o.length),o.push(fA.range(s.value.from,s.value.to))}return A(t.update({selection:fA.create(o,r),userEvent:"select.search.matches"})),!0},p0e=wp((t,{query:A})=>{let{state:e}=t,{from:i,to:n}=e.selection.main;if(e.readOnly)return!1;let o=A.nextMatch(e,i,i);if(!o)return!1;let r=o,s=[],a,c,l=[];r.from==i&&r.to==n&&(c=e.toText(A.getReplacement(r)),s.push({from:r.from,to:r.to,insert:c}),r=A.nextMatch(e,r.from,r.to),l.push(ai.announce.of(e.phrase("replaced match on line $",e.doc.lineAt(i).number)+".")));let d=t.state.changes(s);return r&&(a=fA.single(r.from,r.to).map(d),l.push(XO(t,r)),l.push(e.facet(qu).scrollToMatch(a.main,t))),t.dispatch({changes:d,selection:a,effects:l,userEvent:"input.replace"}),!0}),kje=wp((t,{query:A})=>{if(t.state.readOnly)return!1;let e=A.matchAll(t.state,1e9).map(n=>{let{from:o,to:r}=n;return{from:o,to:r,insert:A.getReplacement(n)}});if(!e.length)return!1;let i=t.state.phrase("replaced $ matches",e.length)+".";return t.dispatch({changes:e,effects:ai.announce.of(i),userEvent:"input.replace.all"}),!0});function ZO(t){return t.state.facet(qu).createPanel(t)}function PO(t,A){var e,i,n,o,r;let s=t.selection.main,a=s.empty||s.to>s.from+100?"":t.sliceDoc(s.from,s.to);if(A&&!a)return A;let c=t.facet(qu);return new bb({search:((e=A?.literal)!==null&&e!==void 0?e:c.literal)?a:a.replace(/\n/g,"\\n"),caseSensitive:(i=A?.caseSensitive)!==null&&i!==void 0?i:c.caseSensitive,literal:(n=A?.literal)!==null&&n!==void 0?n:c.literal,regexp:(o=A?.regexp)!==null&&o!==void 0?o:c.regexp,wholeWord:(r=A?.wholeWord)!==null&&r!==void 0?r:c.wholeWord})}function b0e(t){let A=Ju(t,ZO);return A&&A.dom.querySelector("[main-field]")}function M0e(t){let A=b0e(t);A&&A==t.root.activeElement&&A.select()}var Rb=t=>{let A=t.state.field(GC,!1);if(A&&A.panel){let e=b0e(t);if(e&&e!=t.root.activeElement){let i=PO(t.state,A.query.spec);i.valid&&t.dispatch({effects:pp.of(i)}),e.focus(),e.select()}}else t.dispatch({effects:[WO.of(!0),A?pp.of(PO(t.state,A.query.spec)):tn.appendConfig.of(VO)]});return!0},Nb=t=>{let A=t.state.field(GC,!1);if(!A||!A.panel)return!1;let e=Ju(t,ZO);return e&&e.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:WO.of(!1)}),!0},S0e=[{key:"Mod-f",run:Rb,scope:"editor search-panel"},{key:"F3",run:xb,shift:_b,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:xb,shift:_b,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Nb,scope:"editor search-panel"},{key:"Mod-Shift-l",run:Sje},{key:"Mod-Alt-g",run:dje},{key:"Mod-d",run:pje,preventDefault:!0}],jO=class{constructor(A){this.view=A;let e=this.query=A.state.field(GC).query.spec;this.commit=this.commit.bind(this),this.searchField=Co("input",{value:e.search,placeholder:wl(A,"Find"),"aria-label":wl(A,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Co("input",{value:e.replace,placeholder:wl(A,"Replace"),"aria-label":wl(A,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Co("input",{type:"checkbox",name:"case",form:"",checked:e.caseSensitive,onchange:this.commit}),this.reField=Co("input",{type:"checkbox",name:"re",form:"",checked:e.regexp,onchange:this.commit}),this.wordField=Co("input",{type:"checkbox",name:"word",form:"",checked:e.wholeWord,onchange:this.commit});function i(n,o,r){return Co("button",{class:"cm-button",name:n,onclick:o,type:"button"},r)}this.dom=Co("div",{onkeydown:n=>this.keydown(n),class:"cm-search"},[this.searchField,i("next",()=>xb(A),[wl(A,"next")]),i("prev",()=>_b(A),[wl(A,"previous")]),i("select",()=>Mje(A),[wl(A,"all")]),Co("label",null,[this.caseField,wl(A,"match case")]),Co("label",null,[this.reField,wl(A,"regexp")]),Co("label",null,[this.wordField,wl(A,"by word")]),...A.state.readOnly?[]:[Co("br"),this.replaceField,i("replace",()=>p0e(A),[wl(A,"replace")]),i("replaceAll",()=>kje(A),[wl(A,"replace all")])],Co("button",{name:"close",onclick:()=>Nb(A),"aria-label":wl(A,"close"),type:"button"},["\xD7"])])}commit(){let A=new bb({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});A.eq(this.query)||(this.query=A,this.view.dispatch({effects:pp.of(A)}))}keydown(A){Ele(this.view,A,"search-panel")?A.preventDefault():A.keyCode==13&&A.target==this.searchField?(A.preventDefault(),(A.shiftKey?_b:xb)(this.view)):A.keyCode==13&&A.target==this.replaceField&&(A.preventDefault(),p0e(this.view))}update(A){for(let e of A.transactions)for(let i of e.effects)i.is(pp)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(A){this.query=A,this.searchField.value=A.search,this.replaceField.value=A.replace,this.caseField.checked=A.caseSensitive,this.reField.checked=A.regexp,this.wordField.checked=A.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(qu).top}};function wl(t,A){return t.state.phrase(A)}var mb=30,pb=/[\s\.,:;?!]/;function XO(t,{from:A,to:e}){let i=t.state.doc.lineAt(A),n=t.state.doc.lineAt(e).to,o=Math.max(i.from,A-mb),r=Math.min(n,e+mb),s=t.state.sliceDoc(o,r);if(o!=i.from){for(let a=0;as.length-mb;a--)if(!pb.test(s[a-1])&&pb.test(s[a])){s=s.slice(0,a);break}}return ai.announce.of(`${t.state.phrase("current match")}. ${s} ${t.state.phrase("on line")} ${i.number}.`)}var xje=ai.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),VO=[GC,Hg.low(bje),xje];var Fb=class{constructor(A,e,i,n){this.state=A,this.pos=e,this.explicit=i,this.view=n,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(A){let e=Ys(this.state).resolveInner(this.pos,-1);for(;e&&A.indexOf(e.name)<0;)e=e.parent;return e?{from:e.from,to:this.pos,text:this.state.sliceDoc(e.from,this.pos),type:e.type}:null}matchBefore(A){let e=this.state.doc.lineAt(this.pos),i=Math.max(e.from,this.pos-250),n=e.text.slice(i-e.from,this.pos-e.from),o=n.search(G0e(A,!1));return o<0?null:{from:i+o,to:this.pos,text:n.slice(o)}}get aborted(){return this.abortListeners==null}addEventListener(A,e,i){A=="abort"&&this.abortListeners&&(this.abortListeners.push(e),i&&i.onDocChange&&(this.abortOnDocChange=!0))}};function k0e(t){let A=Object.keys(t).join(""),e=/\w/.test(A);return e&&(A=A.replace(/\w/g,"")),`[${e?"\\w":""}${A.replace(/[^\w\s]/g,"\\$&")}]`}function _je(t){let A=Object.create(null),e=Object.create(null);for(let{label:n}of t){A[n[0]]=!0;for(let o=1;otypeof n=="string"?{label:n}:n),[e,i]=A.every(n=>/^\w+$/.test(n.label))?[/\w*$/,/\w+$/]:_je(A);return n=>{let o=n.matchBefore(i);return o||n.explicit?{from:o?o.from:n.pos,options:A,validFor:e}:null}}var Gb=class{constructor(A,e,i,n){this.completion=A,this.source=e,this.match=i,this.score=n}};function Zu(t){return t.selection.main.from}function G0e(t,A){var e;let{source:i}=t,n=A&&i[0]!="^",o=i[i.length-1]!="$";return!n&&!o?t:new RegExp(`${n?"^":""}(?:${i})${o?"$":""}`,(e=t.flags)!==null&&e!==void 0?e:t.ignoreCase?"i":"")}var K0e=Fc.define();function Nje(t,A,e,i){let{main:n}=t.selection,o=e-n.from,r=i-n.from;return _A(ae({},t.changeByRange(s=>{if(s!=n&&e!=i&&t.sliceDoc(s.from+o,s.from+r)!=t.sliceDoc(e,i))return{range:s};let a=t.toText(A);return{changes:{from:s.from+o,to:i==n.from?s.to:s.from+r,insert:a},range:fA.cursor(s.from+o+a.length)}})),{scrollIntoView:!0,userEvent:"input.complete"})}var x0e=new WeakMap;function Lje(t){if(!Array.isArray(t))return t;let A=x0e.get(t);return A||x0e.set(t,A=Rje(t)),A}var Kb=tn.define(),yp=tn.define(),tJ=class{constructor(A){this.pattern=A,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let e=0;e=48&&w<=57||w>=97&&w<=122?2:w>=65&&w<=90?1:0:(_=F3(w))!=_.toLowerCase()?1:_!=_.toUpperCase()?2:0;(!b||K==1&&B||S==0&&K!=0)&&(e[d]==w||i[d]==w&&(C=!0)?r[d++]=b:r.length&&(f=!1)),S=K,b+=El(w)}return d==a&&r[0]==0&&f?this.result(-100+(C?-200:0),r,A):I==a&&u==0?this.ret(-200-A.length+(h==A.length?0:-100),[0,h]):s>-1?this.ret(-700-A.length,[s,s+this.pattern.length]):I==a?this.ret(-900-A.length,[u,h]):d==a?this.result(-100+(C?-200:0)+-700+(f?0:-1100),r,A):e.length==2?null:this.result((n[0]?-700:0)+-200+-1100,n,A)}result(A,e,i){let n=[],o=0;for(let r of e){let s=r+(this.astral?El(da(i,r)):1);o&&n[o-1]==r?n[o-1]=s:(n[o++]=r,n[o++]=s)}return this.ret(A-i.length,n)}},iJ=class{constructor(A){this.pattern=A,this.matched=[],this.score=0,this.folded=A.toLowerCase()}match(A){if(A.length!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:Fje,filterStrict:!1,compareCompletions:(A,e)=>A.label.localeCompare(e.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(A,e)=>A&&e,closeOnBlur:(A,e)=>A&&e,icons:(A,e)=>A&&e,tooltipClass:(A,e)=>i=>_0e(A(i),e(i)),optionClass:(A,e)=>i=>_0e(A(i),e(i)),addToOptions:(A,e)=>A.concat(e),filterStrict:(A,e)=>A||e})}});function _0e(t,A){return t?A?t+" "+A:t:A}function Fje(t,A,e,i,n,o){let r=t.textDirection==Oo.RTL,s=r,a=!1,c="top",l,d,C=A.left-n.left,I=n.right-A.right,u=i.right-i.left,h=i.bottom-i.top;if(s&&C=h||b>A.top?l=e.bottom-A.top:(c="bottom",l=A.bottom-e.top)}let B=(A.bottom-A.top)/o.offsetHeight,f=(A.right-A.left)/o.offsetWidth;return{style:`${c}: ${l/B}px; max-width: ${d/f}px`,class:"cm-completionInfo-"+(a?r?"left-narrow":"right-narrow":s?"left":"right")}}function Gje(t){let A=t.addToOptions.slice();return t.icons&&A.push({render(e){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),e.type&&i.classList.add(...e.type.split(/\s+/g).map(n=>"cm-completionIcon-"+n)),i.setAttribute("aria-hidden","true"),i},position:20}),A.push({render(e,i,n,o){let r=document.createElement("span");r.className="cm-completionLabel";let s=e.displayLabel||e.label,a=0;for(let c=0;ca&&r.appendChild(document.createTextNode(s.slice(a,l)));let C=r.appendChild(document.createElement("span"));C.appendChild(document.createTextNode(s.slice(l,d))),C.className="cm-completionMatchedText",a=d}return ae.position-i.position).map(e=>e.render)}function $O(t,A,e){if(t<=e)return{from:0,to:t};if(A<0&&(A=0),A<=t>>1){let n=Math.floor(A/e);return{from:n*e,to:(n+1)*e}}let i=Math.floor((t-A)/e);return{from:t-(i+1)*e,to:t-i*e}}var nJ=class{constructor(A,e,i){this.view=A,this.stateField=e,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:a=>this.placeInfo(a),key:this},this.space=null,this.currentClass="";let n=A.state.field(e),{options:o,selected:r}=n.open,s=A.state.facet(Hs);this.optionContent=Gje(s),this.optionClass=s.optionClass,this.tooltipClass=s.tooltipClass,this.range=$O(o.length,r,s.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(A.state),this.dom.addEventListener("mousedown",a=>{let{options:c}=A.state.field(e).open;for(let l=a.target,d;l&&l!=this.dom;l=l.parentNode)if(l.nodeName=="LI"&&(d=/-(\d+)$/.exec(l.id))&&+d[1]{let c=A.state.field(this.stateField,!1);c&&c.tooltip&&A.state.facet(Hs).closeOnBlur&&a.relatedTarget!=A.contentDOM&&A.dispatch({effects:yp.of(null)})}),this.showOptions(o,n.id)}mount(){this.updateSel()}showOptions(A,e){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(A,e,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(A){var e;let i=A.state.field(this.stateField),n=A.startState.field(this.stateField);if(this.updateTooltipClass(A.state),i!=n){let{options:o,selected:r,disabled:s}=i.open;(!n.open||n.open.options!=o)&&(this.range=$O(o.length,r,A.state.facet(Hs).maxRenderedOptions),this.showOptions(o,i.id)),this.updateSel(),s!=((e=n.open)===null||e===void 0?void 0:e.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!s)}}updateTooltipClass(A){let e=this.tooltipClass(A);if(e!=this.currentClass){for(let i of this.currentClass.split(" "))i&&this.dom.classList.remove(i);for(let i of e.split(" "))i&&this.dom.classList.add(i);this.currentClass=e}}positioned(A){this.space=A,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let A=this.view.state.field(this.stateField),e=A.open;if((e.selected>-1&&e.selected=this.range.to)&&(this.range=$O(e.options.length,e.selected,this.view.state.facet(Hs).maxRenderedOptions),this.showOptions(e.options,A.id)),this.updateSelectedOption(e.selected)){this.destroyInfo();let{completion:i}=e.options[e.selected],{info:n}=i;if(!n)return;let o=typeof n=="string"?document.createTextNode(n):n(i);if(!o)return;"then"in o?o.then(r=>{r&&this.view.state.field(this.stateField,!1)==A&&this.addInfoPane(r,i)}).catch(r=>Js(this.view.state,r,"completion info")):this.addInfoPane(o,i)}}addInfoPane(A,e){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",A.nodeType!=null)i.appendChild(A),this.infoDestroy=null;else{let{dom:n,destroy:o}=A;i.appendChild(n),this.infoDestroy=o||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(A){let e=null;for(let i=this.list.firstChild,n=this.range.from;i;i=i.nextSibling,n++)i.nodeName!="LI"||!i.id?n--:n==A?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),e=i):i.hasAttribute("aria-selected")&&i.removeAttribute("aria-selected");return e&&Uje(this.list,e),e}measureInfo(){let A=this.dom.querySelector("[aria-selected]");if(!A||!this.info)return null;let e=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),n=A.getBoundingClientRect(),o=this.space;if(!o){let r=this.dom.ownerDocument.documentElement;o={left:0,top:0,right:r.clientWidth,bottom:r.clientHeight}}return n.top>Math.min(o.bottom,e.bottom)-10||n.bottom{r.target==n&&r.preventDefault()});let o=null;for(let r=i.from;ri.from||i.from==0))if(o=C,typeof c!="string"&&c.header)n.appendChild(c.header(c));else{let I=n.appendChild(document.createElement("completion-section"));I.textContent=C}}let l=n.appendChild(document.createElement("li"));l.id=e+"-"+r,l.setAttribute("role","option");let d=this.optionClass(s);d&&(l.className=d);for(let C of this.optionContent){let I=C(s,this.view.state,this.view,a);I&&l.appendChild(I)}}return i.from&&n.classList.add("cm-completionListIncompleteTop"),i.tonew nJ(e,t,A)}function Uje(t,A){let e=t.getBoundingClientRect(),i=A.getBoundingClientRect(),n=e.height/t.offsetHeight;i.tope.bottom&&(t.scrollTop+=(i.bottom-e.bottom)/n)}function R0e(t){return(t.boost||0)*100+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}function Tje(t,A){let e=[],i=null,n=c=>{e.push(c);let{section:l}=c.completion;if(l){i||(i=[]);let d=typeof l=="string"?l:l.name;i.some(C=>C.name==d)||i.push(typeof l=="string"?{name:d}:l)}},o=A.facet(Hs);for(let c of t)if(c.hasResult()){let l=c.result.getMatch;if(c.result.filter===!1)for(let d of c.result.options)n(new Gb(d,c.source,l?l(d):[],1e9-e.length));else{let d=A.sliceDoc(c.from,c.to),C,I=o.filterStrict?new iJ(d):new tJ(d);for(let u of c.result.options)if(C=I.match(u.label)){let h=u.displayLabel?l?l(u,C.matched):[]:C.matched;n(new Gb(u,c.source,h,C.score+(u.boost||0)))}}}if(i){let c=Object.create(null),l=0,d=(C,I)=>{var u,h;return((u=C.rank)!==null&&u!==void 0?u:1e9)-((h=I.rank)!==null&&h!==void 0?h:1e9)||(C.named.score-l.score||a(l.completion,d.completion))){let l=c.completion;!s||s.label!=l.label||s.detail!=l.detail||s.type!=null&&l.type!=null&&s.type!=l.type||s.apply!=l.apply||s.boost!=l.boost?r.push(c):R0e(c.completion)>R0e(s)&&(r[r.length-1]=c),s=c.completion}return r}var oJ=class t{constructor(A,e,i,n,o,r){this.options=A,this.attrs=e,this.tooltip=i,this.timestamp=n,this.selected=o,this.disabled=r}setSelected(A,e){return A==this.selected||A>=this.options.length?this:new t(this.options,N0e(e,A),this.tooltip,this.timestamp,A,this.disabled)}static build(A,e,i,n,o,r){if(n&&!r&&A.some(c=>c.isPending))return n.setDisabled();let s=Tje(A,e);if(!s.length)return n&&A.some(c=>c.isPending)?n.setDisabled():null;let a=e.facet(Hs).selectOnOpen?0:-1;if(n&&n.selected!=a&&n.selected!=-1){let c=n.options[n.selected].completion;for(let l=0;ll.hasResult()?Math.min(c,l.from):c,1e8),create:Pje,above:o.aboveCursor},n?n.timestamp:Date.now(),a,!1)}map(A){return new t(this.options,this.attrs,_A(ae({},this.tooltip),{pos:A.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}setDisabled(){return new t(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}},rJ=class t{constructor(A,e,i){this.active=A,this.id=e,this.open=i}static start(){return new t(Hje,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(A){let{state:e}=A,i=e.facet(Hs),o=(i.override||e.languageDataAt("autocomplete",Zu(e)).map(Lje)).map(a=>(this.active.find(l=>l.source==a)||new U2(a,this.active.some(l=>l.state!=0)?1:0)).update(A,i));o.length==this.active.length&&o.every((a,c)=>a==this.active[c])&&(o=this.active);let r=this.open,s=A.effects.some(a=>a.is(aJ));r&&A.docChanged&&(r=r.map(A.changes)),A.selection||o.some(a=>a.hasResult()&&A.changes.touchesRange(a.from,a.to))||!Oje(o,this.active)||s?r=oJ.build(o,e,this.id,r,i,s):r&&r.disabled&&!o.some(a=>a.isPending)&&(r=null),!r&&o.every(a=>!a.isPending)&&o.some(a=>a.hasResult())&&(o=o.map(a=>a.hasResult()?new U2(a.source,0):a));for(let a of A.effects)a.is(T0e)&&(r=r&&r.setSelected(a.value,this.id));return o==this.active&&r==this.open?this:new t(o,this.id,r)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?Jje:Yje}};function Oje(t,A){if(t==A)return!0;for(let e=0,i=0;;){for(;e-1&&(e["aria-activedescendant"]=t+"-"+A),e}var Hje=[];function U0e(t,A){if(t.isUserEvent("input.complete")){let i=t.annotation(K0e);if(i&&A.activateOnCompletion(i))return 12}let e=t.isUserEvent("input.type");return e&&A.activateOnTyping?5:e?1:t.isUserEvent("delete.backward")?2:t.selection?8:t.docChanged?16:0}var U2=class t{constructor(A,e,i=!1){this.source=A,this.state=e,this.explicit=i}hasResult(){return!1}get isPending(){return this.state==1}update(A,e){let i=U0e(A,e),n=this;(i&8||i&16&&this.touches(A))&&(n=new t(n.source,0)),i&4&&n.state==0&&(n=new t(this.source,1)),n=n.updateFor(A,i);for(let o of A.effects)if(o.is(Kb))n=new t(n.source,1,o.value);else if(o.is(yp))n=new t(n.source,0);else if(o.is(aJ))for(let r of o.value)r.source==n.source&&(n=r);return n}updateFor(A,e){return this.map(A.changes)}map(A){return this}touches(A){return A.changes.touchesRange(Zu(A.state))}},Ub=class t extends U2{constructor(A,e,i,n,o,r){super(A,3,e),this.limit=i,this.result=n,this.from=o,this.to=r}hasResult(){return!0}updateFor(A,e){var i;if(!(e&3))return this.map(A.changes);let n=this.result;n.map&&!A.changes.empty&&(n=n.map(n,A.changes));let o=A.changes.mapPos(this.from),r=A.changes.mapPos(this.to,1),s=Zu(A.state);if(s>r||!n||e&2&&(Zu(A.startState)==this.from||se.map(A))}}),T0e=tn.define(),Uc=_r.define({create(){return rJ.start()},update(t,A){return t.update(A)},provide:t=>[Bf.from(t,A=>A.tooltip),ai.contentAttributes.from(t,A=>A.attrs)]});function cJ(t,A){let e=A.completion.apply||A.completion.label,i=t.state.field(Uc).active.find(n=>n.source==A.source);return i instanceof Ub?(typeof e=="string"?t.dispatch(_A(ae({},Nje(t.state,e,i.from,i.to)),{annotations:K0e.of(A.completion)})):e(t,A.completion,i.from,i.to),!0):!1}var Pje=Kje(Uc,cJ);function Lb(t,A="option"){return e=>{let i=e.state.field(Uc,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp-1?i.open.selected+n*(t?1:-1):t?0:r-1;return s<0?s=A=="page"?0:r-1:s>=r&&(s=A=="page"?r-1:0),e.dispatch({effects:T0e.of(s)}),!0}}var jje=t=>{let A=t.state.field(Uc,!1);return t.state.readOnly||!A||!A.open||A.open.selected<0||A.open.disabled||Date.now()-A.open.timestampt.state.field(Uc,!1)?(t.dispatch({effects:Kb.of(!0)}),!0):!1,Vje=t=>{let A=t.state.field(Uc,!1);return!A||!A.active.some(e=>e.state!=0)?!1:(t.dispatch({effects:yp.of(null)}),!0)},sJ=class{constructor(A,e){this.active=A,this.context=e,this.time=Date.now(),this.updates=[],this.done=void 0}},qje=50,Wje=1e3,Zje=Jo.fromClass(class{constructor(t){this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let A of t.state.field(Uc).active)A.isPending&&this.startQuery(A)}update(t){let A=t.state.field(Uc),e=t.state.facet(Hs);if(!t.selectionSet&&!t.docChanged&&t.startState.field(Uc)==A)return;let i=t.transactions.some(o=>{let r=U0e(o,e);return r&8||(o.selection||o.docChanged)&&!(r&3)});for(let o=0;oqje&&Date.now()-r.time>Wje){for(let s of r.context.abortListeners)try{s()}catch(a){Js(this.view.state,a)}r.context.abortListeners=null,this.running.splice(o--,1)}else r.updates.push(...t.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),t.transactions.some(o=>o.effects.some(r=>r.is(Kb)))&&(this.pendingStart=!0);let n=this.pendingStart?50:e.activateOnTypingDelay;if(this.debounceUpdate=A.active.some(o=>o.isPending&&!this.running.some(r=>r.active.source==o.source))?setTimeout(()=>this.startUpdate(),n):-1,this.composing!=0)for(let o of t.transactions)o.isUserEvent("input.type")?this.composing=2:this.composing==2&&o.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:t}=this.view,A=t.field(Uc);for(let e of A.active)e.isPending&&!this.running.some(i=>i.active.source==e.source)&&this.startQuery(e);this.running.length&&A.open&&A.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Hs).updateSyncTime))}startQuery(t){let{state:A}=this.view,e=Zu(A),i=new Fb(A,e,t.explicit,this.view),n=new sJ(t,i);this.running.push(n),Promise.resolve(t.source(i)).then(o=>{n.context.aborted||(n.done=o||null,this.scheduleAccept())},o=>{this.view.dispatch({effects:yp.of(null)}),Js(this.view.state,o)})}scheduleAccept(){this.running.every(t=>t.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Hs).updateSyncTime))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let A=[],e=this.view.state.facet(Hs),i=this.view.state.field(Uc);for(let n=0;ns.source==o.active.source);if(r&&r.isPending)if(o.done==null){let s=new U2(o.active.source,0);for(let a of o.updates)s=s.update(a,e);s.isPending||A.push(s)}else this.startQuery(r)}(A.length||i.open&&i.open.disabled)&&this.view.dispatch({effects:aJ.of(A)})}},{eventHandlers:{blur(t){let A=this.view.state.field(Uc,!1);if(A&&A.tooltip&&this.view.state.facet(Hs).closeOnBlur){let e=A.open&&zT(this.view,A.open.tooltip);(!e||!e.dom.contains(t.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:yp.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:Kb.of(!1)}),20),this.composing=0}}}),Xje=typeof navigator=="object"&&/Win/.test(navigator.platform),$je=Hg.highest(ai.domEventHandlers({keydown(t,A){let e=A.state.field(Uc,!1);if(!e||!e.open||e.open.disabled||e.open.selected<0||t.key.length>1||t.ctrlKey&&!(Xje&&t.altKey)||t.metaKey)return!1;let i=e.open.options[e.open.selected],n=e.active.find(r=>r.source==i.source),o=i.completion.commitCharacters||n.result.commitCharacters;return o&&o.indexOf(t.key)>-1&&cJ(A,i),!1}})),eVe=ai.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});var Dp={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Wu=tn.define({map(t,A){let e=A.mapPos(t,-1,ca.TrackAfter);return e??void 0}}),lJ=new class extends Yg{};lJ.startSide=1;lJ.endSide=-1;var O0e=_r.define({create(){return To.empty},update(t,A){if(t=t.map(A.changes),A.selection){let e=A.state.doc.lineAt(A.selection.main.head);t=t.update({filter:i=>i>=e.from&&i<=e.to})}for(let e of A.effects)e.is(Wu)&&(t=t.update({add:[lJ.range(e.value,e.value+1)]}));return t}});function J0e(){return[tVe,O0e]}var AJ="()[]{}<>\xAB\xBB\xBB\xAB\uFF3B\uFF3D\uFF5B\uFF5D";function Y0e(t){for(let A=0;A{if((AVe?t.composing:t.compositionStarted)||t.state.readOnly)return!1;let n=t.state.selection.main;if(i.length>2||i.length==2&&El(da(i,0))==1||A!=n.from||e!=n.to)return!1;let o=nVe(t.state,i);return o?(t.dispatch(o),!0):!1}),iVe=({state:t,dispatch:A})=>{if(t.readOnly)return!1;let i=H0e(t,t.selection.main.head).brackets||Dp.brackets,n=null,o=t.changeByRange(r=>{if(r.empty){let s=oVe(t.doc,r.head);for(let a of i)if(a==s&&Tb(t.doc,r.head)==Y0e(da(a,0)))return{changes:{from:r.head-a.length,to:r.head+a.length},range:fA.cursor(r.head-a.length)}}return{range:n=r}});return n||A(t.update(o,{scrollIntoView:!0,userEvent:"delete.backward"})),!n},z0e=[{key:"Backspace",run:iVe}];function nVe(t,A){let e=H0e(t,t.selection.main.head),i=e.brackets||Dp.brackets;for(let n of i){let o=Y0e(da(n,0));if(A==n)return o==n?aVe(t,n,i.indexOf(n+n+n)>-1,e):rVe(t,n,o,e.before||Dp.before);if(A==o&&P0e(t,t.selection.main.from))return sVe(t,n,o)}return null}function P0e(t,A){let e=!1;return t.field(O0e).between(0,t.doc.length,i=>{i==A&&(e=!0)}),e}function Tb(t,A){let e=t.sliceString(A,A+2);return e.slice(0,El(da(e,0)))}function oVe(t,A){let e=t.sliceString(A-2,A);return El(da(e,0))==e.length?e:e.slice(1)}function rVe(t,A,e,i){let n=null,o=t.changeByRange(r=>{if(!r.empty)return{changes:[{insert:A,from:r.from},{insert:e,from:r.to}],effects:Wu.of(r.to+A.length),range:fA.range(r.anchor+A.length,r.head+A.length)};let s=Tb(t.doc,r.head);return!s||/\s/.test(s)||i.indexOf(s)>-1?{changes:{insert:A+e,from:r.head},effects:Wu.of(r.head+A.length),range:fA.cursor(r.head+A.length)}:{range:n=r}});return n?null:t.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function sVe(t,A,e){let i=null,n=t.changeByRange(o=>o.empty&&Tb(t.doc,o.head)==e?{changes:{from:o.head,to:o.head+e.length,insert:e},range:fA.cursor(o.head+e.length)}:i={range:o});return i?null:t.update(n,{scrollIntoView:!0,userEvent:"input.type"})}function aVe(t,A,e,i){let n=i.stringPrefixes||Dp.stringPrefixes,o=null,r=t.changeByRange(s=>{if(!s.empty)return{changes:[{insert:A,from:s.from},{insert:A,from:s.to}],effects:Wu.of(s.to+A.length),range:fA.range(s.anchor+A.length,s.head+A.length)};let a=s.head,c=Tb(t.doc,a),l;if(c==A){if(L0e(t,a))return{changes:{insert:A+A,from:a},effects:Wu.of(a+A.length),range:fA.cursor(a+A.length)};if(P0e(t,a)){let C=e&&t.sliceDoc(a,a+A.length*3)==A+A+A?A+A+A:A;return{changes:{from:a,to:a+C.length,insert:C},range:fA.cursor(a+C.length)}}}else{if(e&&t.sliceDoc(a-2*A.length,a)==A+A&&(l=F0e(t,a-2*A.length,n))>-1&&L0e(t,l))return{changes:{insert:A+A+A+A,from:a},effects:Wu.of(a+A.length),range:fA.cursor(a+A.length)};if(t.charCategorizer(a)(c)!=Uo.Word&&F0e(t,a,n)>-1&&!cVe(t,a,A,n))return{changes:{insert:A+A,from:a},effects:Wu.of(a+A.length),range:fA.cursor(a+A.length)}}return{range:o=s}});return o?null:t.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function L0e(t,A){let e=Ys(t).resolveInner(A+1);return e.parent&&e.from==A}function cVe(t,A,e,i){let n=Ys(t).resolveInner(A,-1),o=i.reduce((r,s)=>Math.max(r,s.length),0);for(let r=0;r<5;r++){let s=t.sliceDoc(n.from,Math.min(n.to,n.from+e.length+o)),a=s.indexOf(e);if(!a||a>-1&&i.indexOf(s.slice(0,a))>-1){let l=n.firstChild;for(;l&&l.from==n.from&&l.to-l.from>e.length+a;){if(t.sliceDoc(l.to-e.length,l.to)==e)return!1;l=l.firstChild}return!0}let c=n.to==A&&n.parent;if(!c)break;n=c}return!1}function F0e(t,A,e){let i=t.charCategorizer(A);if(i(t.sliceDoc(A-1,A))!=Uo.Word)return A;for(let n of e){let o=A-n.length;if(t.sliceDoc(o,A)==n&&i(t.sliceDoc(o-1,o))!=Uo.Word)return o}return-1}function j0e(t={}){return[$je,Uc,Hs.of(t),Zje,lVe,eVe]}var gJ=[{key:"Ctrl-Space",run:eJ},{mac:"Alt-`",run:eJ},{mac:"Alt-i",run:eJ},{key:"Escape",run:Vje},{key:"ArrowDown",run:Lb(!0)},{key:"ArrowUp",run:Lb(!1)},{key:"PageDown",run:Lb(!0,"page")},{key:"PageUp",run:Lb(!1,"page")},{key:"Enter",run:jje}],lVe=Hg.highest(hf.computeN([Hs],t=>t.facet(Hs).defaultKeymap?[gJ]:[]));function gVe(t,A=t.state){let e=new Set;for(let{from:i,to:n}of t.visibleRanges){let o=i;for(;o<=n;){let r=A.doc.lineAt(o);e.has(r)||e.add(r),o=r.to+1}}return e}function dJ(t){let A=t.selection.main.head;return t.doc.lineAt(A)}function V0e(t,A){let e=0;e:for(let i=0;i=o.level&&this.markerType!=="codeOnly"?this.set(A,0,n.level):n.empty&&n.level===0&&o.level!==0?this.set(A,0,0):o.level>n.level?this.set(A,0,n.level+1):this.set(A,0,o.level)}let e=V0e(A.text,this.state.tabSize),i=Math.floor(e/this.unitWidth);return this.set(A,e,i)}closestNonEmpty(A,e){let i=A.number+e;for(;e===-1?i>=1:i<=this.state.doc.lines;){if(this.has(i)){let r=this.get(i);if(!r.empty)return r}let o=this.state.doc.line(i);if(o.text.trim().length){let r=V0e(o.text,this.state.tabSize),s=Math.floor(r/this.unitWidth);return this.set(o,r,s)}i+=e}let n=this.state.doc.line(e===-1?1:this.state.doc.lines);return this.set(n,0,0)}findAndSetActiveLines(){let A=dJ(this.state);if(!this.has(A))return;let e=this.get(A);if(this.has(e.line.number+1)){let o=this.get(e.line.number+1);o.level>e.level&&(e=o)}if(this.has(e.line.number-1)){let o=this.get(e.line.number-1);o.level>e.level&&(e=o)}if(e.level===0)return;e.active=e.level;let i,n;for(i=e.line.number;i>1;i--){if(!this.has(i-1))continue;let o=this.get(i-1);if(o.level0&&a.push(Ob("--indent-marker-bg-color",i,A,s,c)),a.push(Ob("--indent-marker-active-bg-color",n,A,r-1,1)),r!==o&&a.push(Ob("--indent-marker-bg-color",i,A,r,o-r))}else a.push(Ob("--indent-marker-bg-color",i,A,s,o-s));return a.join(",")}var IJ=class{constructor(A){this.view=A,this.unitWidth=qg(A.state),this.currentLineNumber=dJ(A.state).number,this.generate(A.state)}update(A){let e=qg(A.state),i=e!==this.unitWidth;i&&(this.unitWidth=e);let n=dJ(A.state).number,o=n!==this.currentLineNumber;this.currentLineNumber=n;let r=A.state.facet(Jb).highlightActiveBlock&&o;(A.docChanged||A.viewportChanged||i||r)&&this.generate(A.state)}generate(A){let e=new ga,i=gVe(this.view,A),{hideFirstIndent:n,markerType:o,thickness:r,activeThickness:s}=A.facet(Jb),a=new CJ(i,A,this.unitWidth,o);for(let c of i){let l=a.get(c.number);if(!l?.level)continue;let d=CVe(l,this.unitWidth,n,r,s);e.add(c.from,c.from,bt.line({class:"cm-indent-markers",attributes:{style:`--indent-markers: ${d}`}}))}this.decorations=e.finish()}};function q0e(t={}){return[Jb.of(t),dVe(t.colors),Jo.fromClass(IJ,{decorations:A=>A.decorations})]}var IVe=["mainAxis","crossAxis","fallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment"],uVe=["mainAxis","crossAxis","limiter"];function g2e(t,A){if(t==null)return{};var e,i,n=function(r,s){if(r==null)return{};var a={};for(var c in r)if({}.hasOwnProperty.call(r,c)){if(s.indexOf(c)!==-1)continue;a[c]=r[c]}return a}(t,A);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(i=0;i{};function pVe(t){return t()}function cM(t){for(var A=0;A1&&arguments[1]!==void 0&&arguments[1])&&(po.l={s:null,u:null,r1:[],r2:rh(!1)})}function kt(t){var A=po,e=A.e;if(e!==null)for(var i of(A.e=null,e))b2e(i);return t!==void 0&&(A.x=t),po=A.p,t??{}}function nQ(){return!tQ||po!==null&&po.l===null}function f2e(t){var A,e;return po===null&&Zp(),(e=(A=po).c)!==null&&e!==void 0?e:A.c=new Map(function(i){for(var n=i.p;n!==null;){var o=n.c;if(o!==null)return o;n=n.p}return null}(po)||void 0)}function Uf(t){if(typeof t!="object"||t===null||Rd in t)return t;var A=mY(t);if(A!==QVe&&A!==mVe)return t;var e=new Map,i=iQ(t),n=T2(0),o=ih,r=s=>{if(ih===o)return s();var a=cr,c=ih;$C(null),rde(o);var l=s();return $C(a),rde(c),l};return i&&e.set("length",T2(t.length)),new Proxy(t,{defineProperty(s,a,c){"value"in c&&c.configurable!==!1&&c.enumerable!==!1&&c.writable!==!1||function(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}();var l=e.get(a);return l===void 0?l=r(()=>{var d=T2(c.value);return e.set(a,d),d}):x(l,c.value,!0),!0},deleteProperty(s,a){var c=e.get(a);if(c===void 0){if(a in s){var l=r(()=>T2(Ia));e.set(a,l),BJ(n)}}else{if(i&&typeof a=="string"){var d=e.get("length"),C=Number(a);Number.isInteger(C)&&CT2(Uf(C?s[a]:Ia))),e.set(a,d)),d!==void 0){var I=g(d);return I===Ia?void 0:I}return Reflect.get(s,a,c)},getOwnPropertyDescriptor(s,a){var c=Reflect.getOwnPropertyDescriptor(s,a);if(c&&"value"in c){var l=e.get(a);l&&(c.value=g(l))}else if(c===void 0){var d=e.get(a),C=d?.v;if(d!==void 0&&C!==Ia)return{enumerable:!0,configurable:!0,value:C,writable:!0}}return c},has(s,a){var c;if(a===Rd)return!0;var l=e.get(a),d=l!==void 0&&l.v!==Ia||Reflect.has(s,a);return(l!==void 0||wo!==null&&(!d||(c=j2(s,a))!==null&&c!==void 0&&c.writable))&&(l===void 0&&(l=r(()=>T2(d?Uf(s[a]):Ia)),e.set(a,l)),g(l)===Ia)?!1:d},set(s,a,c,l){var d,C=e.get(a),I=a in s;if(i&&a==="length")for(var u=c;uT2(Ia)),e.set(u+"",h))}C===void 0?(!I||(d=j2(s,a))!==null&&d!==void 0&&d.writable)&&(x(C=r(()=>T2(void 0)),Uf(c)),e.set(a,C)):(I=C.v!==Ia,x(C,r(()=>Uf(c))));var B=Reflect.getOwnPropertyDescriptor(s,a);if(B!=null&&B.set&&B.set.call(l,c),!I){if(i&&typeof a=="string"){var f=e.get("length"),b=Number(a);Number.isInteger(b)&&b>=f.v&&x(f,b+1)}BJ(n)}return!0},ownKeys(s){g(n);var a=Reflect.ownKeys(s).filter(d=>{var C=e.get(d);return C===void 0||C.v!==Ia});for(var[c,l]of e)l.v===Ia||c in s||a.push(c);return a},setPrototypeOf(){(function(){throw new Error("https://svelte.dev/e/state_prototype_fixed")})()}})}function ide(t){try{if(t!==null&&typeof t=="object"&&Rd in t)return t[Rd]}catch{}return t}function MVe(t,A){return Object.is(ide(t),ide(A))}function oQ(t){var A=2050,e=cr!==null&&2&cr.f?cr:null;return wo===null||e!==null&&(e.f&$g)!==0?A|=$g:wo.f|=yVe,{ctx:po,deps:null,effects:null,equals:B2e,f:A,fn:t,reactions:null,rv:0,v:Ia,wv:0,parent:e??wo,ac:null}}function Oc(t){var A=oQ(t);return F2e(A),A}function tA(t){var A=oQ(t);return A.equals=E2e,A}function Q2e(t){var A=t.effects;if(A!==null){t.effects=null;for(var e=0;e1&&arguments[1]!==void 0&&arguments[1],n=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],o=rh(t);return i||(o.equals=E2e),tQ&&n&&po!==null&&po.l!==null&&((e=(A=po.l).s)!==null&&e!==void 0?e:A.s=[]).push(o),o}function vl(t,A){return x(t,Be(()=>g(t))),A}function x(t,A){var e,i=arguments.length>2&&arguments[2]!==void 0&&arguments[2];return cr===null||kd&&(cr.f&wVe)===0||!nQ()||!(131090&cr.f)||(e=q2)!==null&&e!==void 0&&e.includes(t)||function(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}(),zJ(t,i?Uf(A):A)}function zJ(t,A){if(!t.equals(A)){var e=t.v;XC?Ah.set(t,A):Ah.set(t,e),t.v=A,2&t.f&&((t.f&Vf)!==0&&yY(t),n0(t,(t.f&$g)===0?kl:Ch)),t.wv=G2e(),p2e(t,Vf),!nQ()||wo===null||(wo.f&kl)===0||96&wo.f||(og===null?function(i){og=i}([t]):og.push(t))}return A}function nde(t){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,e=g(t),i=A===1?e++:e--;return x(t,e),i}function BJ(t){x(t,t.v+1)}function p2e(t,A){var e=t.reactions;if(e!==null)for(var i=nQ(),n=e.length,o=0;o0&&arguments[0]!==void 0?arguments[0]:"";return document.createTextNode(t)}function bl(t){return y2e.call(t)}function xM(t){return D2e.call(t)}function ge(t,A){return bl(t)}function Ut(t,A){var e=bl(t);return e instanceof Comment&&e.data===""?xM(e):e}function De(t){for(var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,e=t;A--;)e=xM(e);return e}function v2e(t){wo===null&&cr===null&&function(){throw new Error("https://svelte.dev/e/effect_orphan")}(),cr!==null&&(cr.f&$g)!==0&&wo===null&&function(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}(),XC&&function(){throw new Error("https://svelte.dev/e/effect_in_teardown")}()}function oI(t,A,e){var i=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3],n=wo,o={ctx:po,deps:null,nodes_start:null,nodes_end:null,f:t|Vf,first:null,fn:A,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,transitions:null,wv:0,ac:null};if(e)try{RM(o),o.f|=32768}catch(a){throw lg(o),a}else A!==null&&NM(o);if(!(e&&o.deps===null&&o.first===null&&o.nodes_start===null&&o.teardown===null&&!(524416&o.f))&&i&&(n!==null&&function(a,c){var l=c.last;l===null?c.last=c.first=a:(l.next=a,a.prev=l,c.last=a)}(o,n),cr!==null&&2&cr.f)){var r,s=cr;((r=s.effects)!==null&&r!==void 0?r:s.effects=[]).push(o)}return o}function DY(t){var A=oI(8,null,!1);return n0(A,kl),A.teardown=t,A}function PJ(t){if(v2e(),cr||!wo||(wo.f&SM)===0)return b2e(t);var A,e=po;((A=e.e)!==null&&A!==void 0?A:e.e=[]).push(t)}function b2e(t){return oI(2097156,t,!1)}function zs(t){return oI(4,t,!1)}function Se(t,A){var e=po,i={effect:null,ran:!1};e.l.r1.push(i),i.effect=Xp(()=>{t(),i.ran||(i.ran=!0,x(e.l.r2,!0),Be(A))})}function Nn(){var t=po;Xp(()=>{if(g(t.l.r2)){for(var A of t.l.r1){var e=A.effect;(e.f&kl)!==0&&n0(e,Ch),$p(e)&&RM(e),A.ran=!1}t.l.r2.v=!1}})}function Xp(t){return oI(8,t,!0)}function xA(t){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:oQ,e=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:[]).map(A);return rI(()=>t(...e.map(g)))}function rI(t){return oI(24|(arguments.length>1&&arguments[1]!==void 0?arguments[1]:0),t,!0)}function Gd(t){return oI(40,t,!0,!(arguments.length>1&&arguments[1]!==void 0)||arguments[1])}function M2e(t){var A=t.teardown;if(A!==null){var e=XC,i=cr;ode(!0),$C(null);try{A.call(null)}finally{ode(e),$C(i)}}}function S2e(t){var A=arguments.length>1&&arguments[1]!==void 0&&arguments[1],e=t.first;for(t.first=t.last=null;e!==null;){var i;(i=e.ac)===null||i===void 0||i.abort(h2e);var n=e.next;(e.f&I2e)!==0?e.parent=null:lg(e,A),e=n}}function lg(t){var A=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],e=!1;(A||262144&t.f)&&t.nodes_start!==null&&t.nodes_end!==null&&(k2e(t.nodes_start,t.nodes_end),e=!0),S2e(t,A&&!e),dM(t,0),n0(t,pY);var i=t.transitions;if(i!==null)for(var n of i)n.stop();M2e(t);var o=t.parent;o!==null&&o.first!==null&&x2e(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes_start=t.nodes_end=t.ac=null}function k2e(t,A){for(;t!==null;){var e=t===A?null:xM(t);t.remove(),t=e}}function x2e(t){var A=t.parent,e=t.prev,i=t.next;e!==null&&(e.next=i),i!==null&&(i.prev=e),A!==null&&(A.first===t&&(A.first=i),A.last===t&&(A.last=e))}function qf(t,A){var e=[];vY(t,e,!0),_2e(e,()=>{lg(t),A&&A()})}function _2e(t,A){var e=t.length;if(e>0){var i=()=>--e||A();for(var n of t)n.out(i)}else A()}function vY(t,A,e){if((t.f&VC)===0){if(t.f^=VC,t.transitions!==null)for(var i of t.transitions)(i.is_global||e)&&A.push(i);for(var n=t.first;n!==null;){var o=n.next;vY(n,A,((n.f&Wp)!==0||(n.f&SM)!==0)&&e),n=o}}}function lM(t){R2e(t,!0)}function R2e(t,A){if((t.f&VC)!==0){t.f^=VC;for(var e=t.first;e!==null;){var i=e.next;R2e(e,((e.f&Wp)!==0||(e.f&SM)!==0)&&A),e=i}if(t.transitions!==null)for(var n of t.transitions)(n.is_global||A)&&n.in()}}var Np=[],EJ=[];function N2e(){var t=Np;Np=[],cM(t)}function _M(t){Np.length===0&&queueMicrotask(N2e),Np.push(t)}function SVe(){var t;Np.length>0&&N2e(),EJ.length>0&&(t=EJ,EJ=[],cM(t))}function L2e(t,A){for(;A!==null;){if(128&A.f)try{return void A.b.error(t)}catch{}A=A.parent}throw t}var Lp=!1,Fp=null,th=!1,XC=!1;function ode(t){XC=t}var Rp=[],cr=null,kd=!1;function $C(t){cr=t}var wo=null;function eI(t){wo=t}var q2=null;function F2e(t){cr!==null&&cr.f&HJ&&(q2===null?q2=[t]:q2.push(t))}var cc=null,yl=0,og=null,gM=1,Gp=0,ih=Gp;function rde(t){ih=t}var HC=!1,sde=null;function G2e(){return++gM}function $p(t){var A=t.f;if((A&Vf)!==0)return!0;if((A&Ch)!==0){var e=t.deps,i=(A&$g)!==0;if(e!==null){var n,o,r=(A&YJ)!==0,s=i&&wo!==null&&!HC,a=e.length;if(r||s){var c=t,l=c.parent;for(n=0;nt.wv)return!0}i&&(wo===null||HC)||n0(t,kl)}return!1}function K2e(t,A){var e,i=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],n=t.reactions;if(n!==null&&((e=q2)===null||e===void 0||!e.includes(t)))for(var o=0;o0)for(C.length=yl+cc.length,I=0;I0;){A++>1e3&&xVe();var e=Rp,i=e.length;Rp=[];for(var n=0;nn&&(i.f&DVe)!==0)break}}for(;e1&&arguments[1]!==void 0?arguments[1]:new Set;if(!(typeof t!="object"||t===null||t instanceof EventTarget||A.has(t))){for(var e in A.add(t),t instanceof Date&&t.getTime(),t)try{jJ(t[e],A)}catch{}var i=mY(t);if(i!==Object.prototype&&i!==Array.prototype&&i!==Map.prototype&&i!==Set.prototype&&i!==Date.prototype){var n=C2e(i);for(var o in n){var r=n[o].get;if(r)try{r.call(t)}catch{}}}}}var ade=!1;function Y2e(t){var A=cr,e=wo;$C(null),eI(null);try{return t()}finally{$C(A),eI(e)}}function LVe(t,A,e){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:e;t.addEventListener(A,()=>Y2e(e));var n=t.__on_r;t.__on_r=n?()=>{n(),i(!0)}:()=>i(!0),ade||(ade=!0,document.addEventListener("reset",o=>{Promise.resolve().then(()=>{if(!o.defaultPrevented)for(var r of o.target.elements){var s;(s=r.__on_r)===null||s===void 0||s.call(r)}})},{capture:!0}))}var H2e=new Set,VJ=new Set;function z2e(t,A,e){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};function n(o){if(i.capture||Sp.call(A,o),!o.cancelBubble)return Y2e(()=>e?.call(this,o))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?_M(()=>{A.addEventListener(t,n,i)}):A.addEventListener(t,n,i),n}function QA(t,A,e,i,n){var o={capture:i,passive:n},r=z2e(t,A,e,o);(A===document.body||A===window||A===document||A instanceof HTMLMediaElement)&&DY(()=>{A.removeEventListener(t,r,o)})}function e6(t){for(var A=0;Ar||i});var d=cr,C=wo;$C(null),eI(null);try{for(var I,u=[];r!==null;){var h=r.assignedSlot||r.parentNode||r.host||null;try{var B=r["__"+n];if(B!=null&&(!r.disabled||t.target===r))if(iQ(B)){var[f,...b]=B;f.apply(r,[t,...b])}else B.call(r,t)}catch(w){I?u.push(w):I=w}if(t.cancelBubble||h===e||h===null)break;r=h}if(I){var k=function(w){queueMicrotask(()=>{throw w})};for(var S of u)k(S);throw I}}finally{t.__root=e,delete t.currentTarget,$C(d),eI(C)}}}function bY(t){var A=document.createElement("template");return A.innerHTML=t.replaceAll("",""),A.content}function sh(t,A){var e=wo;e.nodes_start===null&&(e.nodes_start=t,e.nodes_end=A)}function _e(t,A){var e,i=!!(1&A),n=!!(2&A),o=!t.startsWith("");return()=>{e===void 0&&(e=bY(o?t:""+t),i||(e=bl(e)));var r=n||w2e?document.importNode(e,!0):e.cloneNode(!0);return i?sh(bl(r),r.lastChild):sh(r,r),r}}function sI(t,A){return function(e,i){var n,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"svg",r=!e.startsWith(""),s=!!(1&i),a="<".concat(o,">").concat(r?e:""+e,"");return()=>{if(!n){var c=bl(bY(a));if(s)for(n=document.createDocumentFragment();bl(c);)n.appendChild(bl(c));else n=bl(c)}var l=n.cloneNode(!0);return s?sh(bl(l),l.lastChild):sh(l,l),l}}(t,A,"svg")}function Ss(){var t=kM((arguments.length>0&&arguments[0]!==void 0?arguments[0]:"")+"");return sh(t,t),t}function ar(){var t=document.createDocumentFragment(),A=document.createComment(""),e=kM();return t.append(A,e),sh(A,e),t}function he(t,A){t!==null&&t.before(A)}var FVe=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"],GVe={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly",defaultvalue:"defaultValue",defaultchecked:"defaultChecked",srcobject:"srcObject",novalidate:"noValidate",allowfullscreen:"allowFullscreen",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback"},KVe=["touchstart","touchmove"];function UVe(t){return KVe.includes(t)}function xt(t,A){var e,i=A==null?"":typeof A=="object"?A+"":A;i!==((e=t.__t)!==null&&e!==void 0?e:t.__t=t.nodeValue)&&(t.__t=i,t.nodeValue=i+"")}function TVe(t,A){return function(e,i){var{target:n,anchor:o,props:r={},events:s,context:a,intro:c=!0}=i;(function(){if(V2===void 0){V2=window,w2e=/Firefox/.test(navigator.userAgent);var u=Element.prototype,h=Node.prototype,B=Text.prototype;y2e=j2(h,"firstChild").get,D2e=j2(h,"nextSibling").get,ede(u)&&(u.__click=void 0,u.__className=void 0,u.__attributes=null,u.__style=void 0,u.__e=void 0),ede(B)&&(B.__t=void 0)}})();var l=new Set,d=u=>{for(var h=0;h0&&arguments[0]!==void 0?arguments[0]:{};return new Promise(f=>{B.outro?qf(h,()=>{lg(h),f(void 0)}):(lg(h),f(void 0))})}}(()=>{var u=o??n.appendChild(kM());return Gd(()=>{a&&(St({}),po.c=a),s&&(r.$$events=s),C=e(u,r)||{},a&&kt()}),()=>{for(var h of l){n.removeEventListener(h,Sp);var B=xf.get(h);--B===0?(document.removeEventListener(h,Sp),xf.delete(h)):xf.set(h,B)}var f;VJ.delete(d),u!==o&&((f=u.parentNode)===null||f===void 0||f.removeChild(u))}});return qJ.set(C,I),C}(t,A)}var xf=new Map,qJ=new WeakMap;function ua(t){po===null&&Zp(),tQ&&po.l!==null?P2e(po).m.push(t):PJ(()=>{var A=Be(t);if(typeof A=="function")return A})}function gg(t){po===null&&Zp(),ua(()=>()=>Be(t))}function OVe(){var t=po;return t===null&&Zp(),(A,e,i)=>{var n,o=(n=t.s.$$events)===null||n===void 0?void 0:n[A];if(o){var r=iQ(o)?o.slice():[o],s=function(c,l){var{bubbles:d=!1,cancelable:C=!1}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return new CustomEvent(c,{detail:l,bubbles:d,cancelable:C})}(A,e,i);for(var a of r)a.call(t.x,s);return!s.defaultPrevented}return!0}}function JVe(t){po===null&&Zp(),po.l===null&&function(){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}(),P2e(po).b.push(t)}function P2e(t){var A,e=t.l;return(A=e.u)!==null&&A!==void 0?A:e.u={a:[],b:[],m:[]}}function ze(t,A){var[e,i]=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[0,0],n=t,o=null,r=null,s=Ia,a=!1,c=function(d){a=!0,l(!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],d)},l=(d,C)=>{s!==(s=d)&&(s?(o?lM(o):C&&(o=Gd(()=>C(n))),r&&qf(r,()=>{r=null})):(r?lM(r):C&&(r=Gd(()=>C(n,[e+1,i]))),o&&qf(o,()=>{o=null})))};rI(()=>{a=!1,A(c),a||l(null,null)},e>0?Wp:0)}function j2e(t,A,e){var i,n=t,o=Ia,r=nQ()?bVe:wY;rI(()=>{r(o,o=A())&&(i&&qf(i),i=Gd(()=>e(n)))})}function Jr(t,A){return A}function fr(t,A,e,i,n){var o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null,r=t,s={flags:A,items:new Map,first:null};!(4&A)||(r=t.appendChild(kM()));var a=null,c=!1,l=tA(()=>{var d=e();return iQ(d)?d:d==null?[]:JJ(d)});rI(()=>{var d=g(l),C=d.length;c&&C===0||(c=C===0,function(I,u,h,B,f,b,k){var S,w,_,K,J,O,H=!!(8&f),V=!!(3&f),Z=I.length,ye=u.items,P=u.first,se=P,X=null,ue=[],oe=[];if(H)for(O=0;O0){var JA=4&f&&Z===0?h:null;if(H){for(O=0;O0&&LA.length===0&&Ze!==null;if(Wt){var Qt=Ze.parentNode;Qt.textContent="",Qt.append(Ze),Ge.clear(),UC(We,we[0].prev,we[Fe-1].next)}_2e(LA,()=>{for(var BA=0;BA{if(w!==void 0)for(J of w){var We;(We=J.a)===null||We===void 0||We.apply()}}),wo.first=u.first&&u.first.e,wo.last=X&&X.e}(d,s,r,n,A,i,e),o!==null&&(C===0?a?lM(a):a=Gd(()=>o(r)):a!==null&&qf(a,()=>{a=null})),g(l))})}function YVe(t,A,e,i){1&i&&zJ(t.v,A),2&i?zJ(t.i,e):t.i=e}function HVe(t,A,e,i,n,o,r,s,a,c){var l=1&a?16&a?rh(n):Ce(n,!1,!1):n,d=2&a?rh(r):r,C={i:d,v:l,k:o,a:null,e:null,prev:e,next:i};try{return C.e=Gd(()=>s(t,l,d,c),!1),C.e.prev=e&&e.e,C.e.next=i&&i.e,e===null?A.first=C:(e.next=C,e.e.next=C.e),i!==null&&(i.prev=C,i.e.prev=C.e),C}finally{}}function cde(t,A,e){for(var i=t.next?t.next.e.nodes_start:e,n=A?A.e.nodes_start:e,o=t.e.nodes_start;o!==i;){var r=xM(o);n.before(o),o=r}}function UC(t,A,e){A===null?t.first=e:(A.next=e,A.e.next=e&&e.e),e!==null&&(e.prev=A,e.e.prev=A&&A.e)}function V2e(t,A){var e=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=arguments.length>3&&arguments[3]!==void 0&&arguments[3],n=t,o="";xA(()=>{var r,s=wo;if(o!==(o=(r=A())!==null&&r!==void 0?r:"")&&(s.nodes_start!==null&&(k2e(s.nodes_start,s.nodes_end),s.nodes_start=s.nodes_end=null),o!=="")){var a=o+"";e?a="".concat(a,""):i&&(a="".concat(a,""));var c=bY(a);if((e||i)&&(c=bl(c)),sh(bl(c),c.lastChild),e||i)for(;bl(c);)n.before(bl(c));else n.before(c)}})}function Er(t,A,e,i,n){var o,r=(o=A.$$slots)===null||o===void 0?void 0:o[e],s=!1;r===!0&&(r=A[e==="default"?"children":e],s=!0),r===void 0?n!==null&&n(t):r(t,s?()=>i:i)}function q2e(t,A,e){var i,n,o=t;rI(()=>{i!==(i=A())&&(n&&(qf(n),n=null),i&&(n=Gd(()=>e(o,i))))},Wp)}function Ka(t,A,e){zs(()=>{var i=Be(()=>A(t,e?.())||{});if(e&&i!=null&&i.update){var n=!1,o={};Xp(()=>{var r=e();F(r),n&&wY(o,r)&&(o=r,i.update(r))}),n=!0}if(i!=null&&i.destroy)return()=>i.destroy()})}function zVe(t,A){var e,i=void 0;rI(()=>{i!==(i=A())&&(e&&(lg(e),e=null),i&&(e=Gd(()=>{zs(()=>i(t))})))})}function W2e(t){var A,e,i="";if(typeof t=="string"||typeof t=="number")i+=t;else if(typeof t=="object")if(Array.isArray(t)){var n=t.length;for(A=0;A1&&arguments[1]!==void 0&&arguments[1]?" !important;":";",e="";for(var i in t){var n=t[i];n!=null&&n!==""&&(e+=" "+i+": "+n+A)}return e}function fJ(t){return t[0]!=="-"||t[1]!=="-"?t.toLowerCase():t}function ci(t,A,e,i,n,o){var r=t.__className;if(r!==e||r===void 0){var s=function(l,d,C){var I=l==null?"":""+l;if(d&&(I=I?I+" "+d:d),C){for(var u in C)if(C[u])I=I?I+" "+u:u;else if(I.length)for(var h=u.length,B=0;(B=I.indexOf(u,B))>=0;){var f=B+h;B!==0&&!lde.includes(I[B-1])||f!==I.length&&!lde.includes(I[f])?B=f:I=(B===0?"":I.substring(0,B))+I.substring(f+1)}}return I===""?null:I}(e,i,o);s==null?t.removeAttribute("class"):A?t.className=s:t.setAttribute("class",s),t.__className=e}else if(o&&n!==o)for(var a in o){var c=!!o[a];n!=null&&c===!!n[a]||t.classList.toggle(a,c)}return o}function QJ(t){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},e=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;for(var n in e){var o=e[n];A[n]!==o&&(e[n]==null?t.style.removeProperty(n):t.style.setProperty(n,o,i))}}function cg(t,A,e,i){if(t.__style!==A){var n=function(o,r){if(r){var s,a,c="";if(Array.isArray(r)?(s=r[0],a=r[1]):s=r,o){o=String(o).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var l=!1,d=0,C=!1,I=[];s&&I.push(...Object.keys(s).map(fJ)),a&&I.push(...Object.keys(a).map(fJ));for(var u=0,h=-1,B=o.length,f=0;f2&&arguments[2]!==void 0&&arguments[2];if(t.multiple){if(A==null)return;if(!iQ(A))return void console.warn("https://svelte.dev/e/select_multiple_invalid_value");for(var i of t.options)i.selected=A.includes(dde(i))}else{for(i of t.options)if(MVe(dde(i),A))return void(i.selected=!0);e&&A===void 0||(t.selectedIndex=-1)}}function PVe(t){var A=new MutationObserver(()=>{WJ(t,t.__value)});A.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),DY(()=>{A.disconnect()})}function dde(t){return"__value"in t?t.__value:t.value}var Gf=Symbol("class"),bp=Symbol("style"),Z2e=Symbol("is custom element"),X2e=Symbol("is html");function ah(t,A){var e=MY(t);e.value!==(e.value=A??void 0)&&(t.value!==A||A===0&&t.nodeName==="PROGRESS")&&(t.value=A??"")}function Rn(t,A,e,i){var n=MY(t);n[A]!==(n[A]=e)&&(A==="loading"&&(t[vVe]=e),e==null?t.removeAttribute(A):typeof e!="string"&&$2e(t).includes(A)?t[A]=e:t.setAttribute(A,e))}function jVe(t,A,e,i){var n,o=MY(t),r=o[Z2e],s=!o[X2e],a=A||{},c=t.tagName==="OPTION";for(var l in A)l in e||(e[l]=null);e.class?e.class=AI(e.class):(i||e[Gf])&&(e.class=null),e[bp]&&((n=e.style)!==null&&n!==void 0||(e.style=null));var d,C,I,u,h,B,f=$2e(t),b=function(S){var w=e[S];if(c&&S==="value"&&w==null)return t.value=t.__value="",a[S]=w,0;if(S==="class")return d=t.namespaceURI==="http://www.w3.org/1999/xhtml",ci(t,d,w,i,A?.[Gf],e[Gf]),a[S]=w,a[Gf]=e[Gf],0;if(S==="style")return cg(t,w,A?.[bp],e[bp]),a[S]=w,a[bp]=e[bp],0;if(w===(C=a[S])&&(w!==void 0||!t.hasAttribute(S))||(a[S]=w,(I=S[0]+S[1])==="$$"))return 0;if(I==="on"){var _={},K="$$"+S,J=S.slice(2);if(u=function(P){return FVe.includes(P)}(J),function(P){return P.endsWith("capture")&&P!=="gotpointercapture"&&P!=="lostpointercapture"}(J)&&(J=J.slice(0,-7),_.capture=!0),!u&&C){if(w!=null)return 0;t.removeEventListener(J,a[K],_),a[K]=null}if(w!=null)if(u)t["__".concat(J)]=w,e6([J]);else{let P=function(se){a[S].call(this,se)};var ye=P;a[K]=z2e(J,t,P,_)}else u&&(t["__".concat(J)]=void 0)}else if(S==="style")Rn(t,S,w);else if(S==="autofocus")(function(P,se){if(se){var X=document.body;P.autofocus=!0,_M(()=>{document.activeElement===X&&P.focus()})}})(t,!!w);else if(r||S!=="__value"&&(S!=="value"||w==null))if(S==="selected"&&c)(function(P,se){se?P.hasAttribute("selected")||P.setAttribute("selected",""):P.removeAttribute("selected")})(t,w);else if(h=S,s||(h=function(P){var se;return P=P.toLowerCase(),(se=GVe[P])!==null&&se!==void 0?se:P}(h)),B=h==="defaultValue"||h==="defaultChecked",w!=null||r||B)B||f.includes(h)&&(r||typeof w!="string")?t[h]=w:typeof w!="function"&&Rn(t,h,w);else if(o[S]=null,h==="value"||h==="checked"){var O=t,H=A===void 0;if(h==="value"){var V=O.defaultValue;O.removeAttribute(h),O.defaultValue=V,O.value=O.__value=H?V:null}else{var Z=O.defaultChecked;O.removeAttribute(h),O.defaultChecked=Z,O.checked=!!H&&Z}}else t.removeAttribute(S);else t.value=t.__value=w};for(var k in e)b(k);return a}function nM(t,A){var e=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&arguments[4]!==void 0&&arguments[4],n=arguments.length>5&&arguments[5]!==void 0?arguments[5]:oQ,o=(arguments.length>2&&arguments[2]!==void 0?arguments[2]:[]).map(n),r=void 0,s={},a=t.nodeName==="SELECT",c=!1;if(rI(()=>{var d=A(...o.map(g)),C=jVe(t,r,d,e,i);for(var I of(c&&a&&"value"in d&&WJ(t,d.value),Object.getOwnPropertySymbols(s)))d[I]||lg(s[I]);for(var u of Object.getOwnPropertySymbols(d)){var h=d[u];u.description!=="@attach"||r&&h===r[u]||(s[u]&&lg(s[u]),s[u]=Gd(()=>zVe(t,()=>h))),C[u]=h}r=C}),a){var l=t;zs(()=>{WJ(l,r.value,!0),PVe(l)})}c=!0}function MY(t){var A;return(A=t.__attributes)!==null&&A!==void 0?A:t.__attributes={[Z2e]:t.nodeName.includes("-"),[X2e]:t.namespaceURI==="http://www.w3.org/1999/xhtml"}}var Cde=new Map;function $2e(t){var A,e=Cde.get(t.nodeName);if(e)return e;Cde.set(t.nodeName,e=[]);for(var i=t,n=Element.prototype;n!==i;){for(var o in A=C2e(i))A[o].set&&e.push(o);i=mY(i)}return e}function CM(t,A){var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:A,i=nQ();LVe(t,"input",n=>{var o=n?t.defaultValue:t.value;if(o=mJ(t)?pJ(o):o,e(o),i&&o!==(o=A())){var r=t.selectionStart,s=t.selectionEnd;t.value=o??"",s!==null&&(t.selectionStart=r,t.selectionEnd=Math.min(s,t.value.length))}}),Be(A)==null&&t.value&&e(mJ(t)?pJ(t.value):t.value),Xp(()=>{var n=A();mJ(t)&&n===pJ(t.value)||(t.type!=="date"||n||t.value)&&n!==t.value&&(t.value=n??"")})}function mJ(t){var A=t.type;return A==="number"||A==="range"}function pJ(t){return t===""?null:+t}function jt(t,A,e){var i=j2(t,A);i&&i.set&&(t[A]=e,DY(()=>{t[A]=null}))}function Ide(t,A){return t===A||t?.[Rd]===A}function Ho(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=arguments.length>1?arguments[1]:void 0,e=arguments.length>2?arguments[2]:void 0;return zs(()=>{var i,n;return Xp(()=>{i=n,n=[],Be(()=>{t!==e(...n)&&(A(t,...n),i&&Ide(e(...i),t)&&A(null,...i))})}),()=>{_M(()=>{n&&Ide(e(...n),t)&&A(null,...n)})}}),t}function O2(t){return function(){for(var A=arguments.length,e=new Array(A),i=0;i0&&arguments[0]!==void 0&&arguments[0],A=po,e=A.l.u;if(e){var i,n=()=>F(A.s);if(t){var o=0,r={},s=oQ(()=>{var a=!1,c=A.s;for(var l in c)c[l]!==r[l]&&(r[l]=c[l],a=!0);return a&&o++,o});n=()=>g(s)}e.b.length&&(i=()=>{ude(A,n),cM(e.b)},v2e(),oI(2097160,i,!0)),PJ(()=>{var a=Be(()=>e.m.map(pVe));return()=>{for(var c of a)typeof c=="function"&&c()}}),e.a.length&&PJ(()=>{ude(A,n),cM(e.a)})}}function ude(t,A){if(t.l.s)for(var e of t.l.s)g(e);A()}function LM(t){var A=rh(0);return function(){return arguments.length===1?(x(A,g(A)+1),arguments[0]):(g(A),t())}}function kp(t,A){var e,i=(e=t.$$events)===null||e===void 0?void 0:e[A.type],n=iQ(i)?i.slice():i==null?[]:[i];for(var o of n)o.call(this,A)}var Yb=!1,VVe={get(t,A){if(!t.exclude.includes(A))return g(t.version),A in t.special?t.special[A]():t.props[A]},set(t,A,e){if(!(A in t.special)){var i=wo;try{eI(t.parent_effect),t.special[A]=N({get[A](){return t.props[A]}},A,4)}finally{eI(i)}}return t.special[A](e),nde(t.version),!0},getOwnPropertyDescriptor(t,A){if(!t.exclude.includes(A))return A in t.props?{enumerable:!0,configurable:!0,value:t.props[A]}:void 0},deleteProperty:(t,A)=>(t.exclude.includes(A)||(t.exclude.push(A),nde(t.version)),!0),has:(t,A)=>!t.exclude.includes(A)&&A in t.props,ownKeys:t=>Reflect.ownKeys(t.props).filter(A=>!t.exclude.includes(A))};function Hb(t,A){return new Proxy({props:t,exclude:A,special:{},version:rh(0),parent_effect:wo},VVe)}var qVe={get(t,A){for(var e=t.props.length;e--;){var i=t.props[e];if(vp(i)&&(i=i()),typeof i=="object"&&i!==null&&A in i)return i[A]}},set(t,A,e){for(var i=t.props.length;i--;){var n=t.props[i];vp(n)&&(n=n());var o=j2(n,A);if(o&&o.set)return o.set(e),!0}return!1},getOwnPropertyDescriptor(t,A){for(var e=t.props.length;e--;){var i=t.props[e];if(vp(i)&&(i=i()),typeof i=="object"&&i!==null&&A in i){var n=j2(i,A);return n&&!n.configurable&&(n.configurable=!0),n}}},has(t,A){if(A===Rd||A===u2e)return!1;for(var e of t.props)if(vp(e)&&(e=e()),e!=null&&A in e)return!0;return!1},ownKeys(t){var A=[];for(var e of t.props)if(vp(e)&&(e=e()),e){for(var i in e)A.includes(i)||A.push(i);for(var n of Object.getOwnPropertySymbols(e))A.includes(n)||A.push(n)}return A}};function qC(){for(var t=arguments.length,A=new Array(t),e=0;e(l&&(l=!1,c=a?Be(i):i),c);if(s){var C,I,u=Rd in t||u2e in t;n=(C=(I=j2(t,A))===null||I===void 0?void 0:I.set)!==null&&C!==void 0?C:u&&A in t?w=>t[A]=w:void 0}var h,B=!1;if(s?[o,B]=function(w){var _=Yb;try{return Yb=!1,[w(),Yb]}finally{Yb=_}}(()=>t[A]):o=t[A],o===void 0&&i!==void 0&&(o=d(),n&&(r&&function(){throw new Error("https://svelte.dev/e/props_invalid_value")}(),n(o))),h=r?()=>{var w=t[A];return w===void 0?d():(l=!0,w)}:()=>{var w=t[A];return w!==void 0&&(c=void 0),w===void 0?c:w},r&&!(4&e))return h;if(n){var f=t.$$legacy;return function(w,_){return arguments.length>0?(r&&_&&!f&&!B||n(_?h():w),w):h()}}var b=!1,k=(1&e?oQ:tA)(()=>(b=!1,h()));s&&g(k);var S=wo;return function(w,_){if(arguments.length>0){var K=_?g(k):r&&s?Uf(w):w;return x(k,K),b=!0,c!==void 0&&(c=K),w}return XC&&b||(S.f&pY)!==0?k.v:g(k)}}function Es(t){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(i){var n=function(o){try{if(typeof window<"u"&&window.localStorage!==void 0)return window.localStorage[o]}catch{}}("debug");return n!=null&&n.endsWith("*")?i.startsWith(n.slice(0,-1)):i===n}(t);if(!A)return WVe;var e=function(i){for(var n=0,o=0;o9466848e5&&isFinite(t)&&Math.floor(t)===t&&!isNaN(new Date(t).valueOf());if(typeof t=="bigint")return ZJ(Number(t));try{var A=t&&t.valueOf();if(A!==t)return ZJ(A)}catch{return!1}return!1}function e1e(t){(zb=zb||window.document.createElement("div")).style.color="",zb.style.color=t;var A=zb.style.color;return A!==""?A.replace(/\s+/g,"").toLowerCase():void 0}var zb=void 0;function eqe(t){return typeof t=="string"&&t.length<99&&!!e1e(t)}function kY(t,A){if(typeof t=="number"||typeof t=="string"||typeof t=="boolean"||t===void 0)return typeof t;if(typeof t=="bigint")return"number";if(t===null)return"null";if(Array.isArray(t))return"array";if(vn(t))return"object";var e=A.stringify(t);return e&&SY(e)?"number":e==="true"||e==="false"?"boolean":e==="null"?"null":"unknown"}var Aqe=/^https?:\/\/\S+$/;function FM(t){return typeof t=="string"&&Aqe.test(t)}function rQ(t,A){if(t==="")return"";var e=t.trim();return e==="null"?null:e==="true"||e!=="false"&&(SY(e)?A.parse(e):t)}var tqe=[];function Bde(t,A){if(t.length!==A.length)return!1;for(var e=0;e1&&arguments[1]!==void 0&&arguments[1],e={};if(!Array.isArray(t))throw new TypeError("Array expected");function i(r,s){(!Array.isArray(r)&&!vn(r)||A&&s.length>0)&&(e[pt(s)]=!0),vn(r)&&Object.keys(r).forEach(a=>{i(r[a],s.concat(a))})}for(var n=Math.min(t.length,1e4),o=0;oA?t.slice(0,A):t}function Ede(t){return SA({},t)}function fde(t){return Object.values(t)}function Qde(t,A,e,i){var n=t.slice(0),o=n.splice(A,e);return n.splice.apply(n,[A+i,0,...o]),n}function iqe(t,A,e){return t.slice(0,A).concat(e).concat(t.slice(A))}function A6(t,A){try{return A.parse(t)}catch{return A.parse(jl(t))}}function t1e(t,A){try{return A6(t,A)}catch{return}}function t6(t,A){t=t.replace(n1e,"");try{return A(t)}catch{}try{return A("{"+t+"}")}catch{}try{return A("["+t+"]")}catch{}throw new Error("Failed to parse partial JSON")}function i1e(t){t=t.replace(n1e,"");try{return jl(t)}catch{}try{var A=jl("["+t+"]");return A.substring(1,A.length-1)}catch{}try{var e=jl("{"+t+"}");return e.substring(1,e.length-1)}catch{}throw new Error("Failed to repair partial JSON")}var n1e=/,\s*$/;function Wf(t,A){var e=pde.exec(A);if(e){var i=Ps(e[2]),n=function(I,u){for(var h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,B=arguments.length>3&&arguments[3]!==void 0?arguments[3]:I.length,f=0,b=h;b"line ".concat(n+1," column ").concat(o+1))}}var r=sqe.exec(A),s=r?Ps(r[1]):void 0,a=s!==void 0?s-1:void 0,c=aqe.exec(A),l=c?Ps(c[1]):void 0,d=l!==void 0?l-1:void 0,C=a!==void 0&&d!==void 0?function(I,u,h){for(var B=I.indexOf(` +`),f=1;f1&&arguments[1]!==void 0?arguments[1]:void 0,e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:JSON;return Kp(t)?t:{text:e.stringify(t.json,null,A)}}function mde(t){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:JSON;return Up(t)?t:{json:A.parse(t.text)}}function $J(t,A,e){return nqe(t,A,e).text}function oqe(t,A){return rqe(t,A)>A}function rqe(t){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1/0;if(Kp(t))return t.text.length;var e=t.json,i=0;return function n(o){if(Array.isArray(o)){if((i+=o.length-1+2)>A)return;for(var r=0;rA)return}else if(vn(o)){var s=Object.keys(o);i+=2+s.length+(s.length-1);for(var a=0;ar1e(c1e(String(t))),unescapeValue:t=>l1e(s1e(t))},gqe={escapeValue:t=>c1e(String(t)),unescapeValue:t=>l1e(t)},dqe={escapeValue:t=>r1e(String(t)),unescapeValue:t=>s1e(t)},Cqe={escapeValue:t=>String(t),unescapeValue:t=>t};function r1e(t){return t.replace(/[^\x20-\x7F]/g,A=>{var e;return A==="\b"||A==="\f"||A===` +`||A==="\r"||A===" "?A:"\\u"+("000"+((e=A.codePointAt(0))===null||e===void 0?void 0:e.toString(16))).slice(-4)})}function s1e(t){return t.replace(/\\u[a-fA-F0-9]{4}/g,A=>{try{var e=JSON.parse('"'+A+'"');return a1e[e]||e}catch{return A}})}var a1e={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},Iqe={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":` +`,"\\r":"\r","\\t":" "};function c1e(t){return t.replace(/["\b\f\n\r\t\\]/g,A=>a1e[A]||A)}function l1e(t){return t.replace(/\\["bfnrt\\]/g,A=>Iqe[A]||A)}function Zf(t){return typeof t!="string"?String(t):t.endsWith(` +`)?t+` +`:t}function g1e(t,A){return sQ(t,e=>e.nodeName.toUpperCase()===A.toUpperCase())}function zC(t,A,e){return sQ(t,i=>function(n,o,r){return typeof n.getAttribute=="function"&&n.getAttribute(o)===r}(i,A,e))}function sQ(t,A){return!!_Y(t,A)}function _Y(t,A){for(var e=t;e&&!A(e);)e=e.parentNode;return e}function i6(t){var A,e;return(A=t==null||(e=t.ownerDocument)===null||e===void 0?void 0:e.defaultView)!==null&&A!==void 0?A:void 0}function RY(t){var A=i6(t),e=A?.document.activeElement;return!!e&&sQ(e,i=>i===t)}function d1e(t,A){return _Y(t,e=>e.nodeName===A)}function DJ(t){return zC(t,"data-type","selectable-key")?ro.key:zC(t,"data-type","selectable-value")?ro.value:zC(t,"data-type","insert-selection-area-inside")?ro.inside:zC(t,"data-type","insert-selection-area-after")?ro.after:ro.multi}function oM(t){return encodeURIComponent(pt(t))}function C1e(t){var A,e=_Y(t,n=>!(n==null||!n.hasAttribute)&&n.hasAttribute("data-path")),i=(A=e?.getAttribute("data-path"))!==null&&A!==void 0?A:void 0;return i?Sa(decodeURIComponent(i)):void 0}function uqe(t){var{allElements:A,currentElement:e,direction:i,hasPrio:n=()=>!0,margin:o=10}=t,r=lG(A.filter(function(f){var b=f.getBoundingClientRect();return b.width>0&&b.height>0}),a),s=a(e);function a(f){var b=f.getBoundingClientRect();return{x:b.left+b.width/2,y:b.top+b.height/2,rect:b,element:f}}function c(f,b){var k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,S=f.x-b.x,w=(f.y-b.y)*k;return Math.sqrt(S*S+w*w)}var l=f=>c(f,s);if(i==="Left"||i==="Right"){var d=i==="Left"?r.filter(f=>{return b=s,f.rect.left+o{return b=s,f.rect.right>b.rect.right+o;var b}),C=d.filter(f=>{return b=f,k=s,Math.abs(b.y-k.y)c(f,s,10));return I?.element}if(i==="Up"||i==="Down"){var u=i==="Up"?r.filter(f=>{return b=s,f.y+o{return b=s,f.y>b.y+o;var b}),h=u.filter(f=>n(f.element)),B=UE(h,l)||UE(u,l);return B?.element}}function NY(){var t,A,e,i;return typeof navigator<"u"&&(t=(A=(e=navigator)===null||e===void 0||(e=e.platform)===null||e===void 0?void 0:e.toUpperCase().includes("MAC"))!==null&&A!==void 0?A:(i=navigator)===null||i===void 0||(i=i.userAgentData)===null||i===void 0||(i=i.platform)===null||i===void 0?void 0:i.toUpperCase().includes("MAC"))!==null&&t!==void 0&&t}function X2(t){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"+",e=[];LY(t,arguments.length>2&&arguments[2]!==void 0?arguments[2]:NY)&&e.push("Ctrl"),t.altKey&&e.push("Alt"),t.shiftKey&&e.push("Shift");var i=t.key.length===1?t.key.toUpperCase():t.key;return i in hqe||e.push(i),e.join(A)}function LY(t){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NY;return t.ctrlKey||t.metaKey&&A()}var hqe={Ctrl:!0,Command:!0,Control:!0,Alt:!0,Option:!0,Shift:!0};function Zt(t,A){A===void 0&&(A={});var e=A.insertAt;if(t&&typeof document<"u"){var i=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",e==="top"&&i.firstChild?i.insertBefore(n,i.firstChild):i.appendChild(n),n.styleSheet?n.styleSheet.cssText=t:n.appendChild(document.createTextNode(t))}}Zt(`.jse-absolute-popup.svelte-1r8q3m8 { + position: relative; + left: 0; + top: 0; + width: 0; + height: 0; + z-index: 1001; +} +.jse-absolute-popup.svelte-1r8q3m8 .jse-hidden-input:where(.svelte-1r8q3m8) { + position: fixed; + left: 0; + top: 0; + width: 0; + height: 0; + padding: 0; + margin: 0; + border: none; + outline: none; + overflow: hidden; +} +.jse-absolute-popup.svelte-1r8q3m8 .jse-absolute-popup-content:where(.svelte-1r8q3m8) { + position: absolute; +}`);var Bqe=_e('
              '),Eqe=_e('
              ');function fqe(t,A){St(A,!1);var e=N(A,"popup",8),i=N(A,"closeAbsolutePopup",8),n=Ce(),o=Ce();function r(d){e().options&&e().options.closeOnOuterClick&&!sQ(d.target,C=>C===g(n))&&i()(e().id)}function s(d){X2(d)==="Escape"&&(d.preventDefault(),d.stopPropagation(),i()(e().id))}ua(function(){g(o)&&g(o).focus()}),li();var a=Eqe();QA("mousedown",V2,function(d){r(d)},!0),QA("keydown",V2,s,!0),QA("wheel",V2,function(d){r(d)},!0);var c=ge(a),l=d=>{var C=Bqe(),I=ge(C);Ho(I,u=>x(o,u),()=>g(o)),q2e(De(I,2),()=>e().component,(u,h)=>{h(u,qC(()=>e().props))}),xA(u=>cg(C,u),[()=>(g(n),F(e()),Be(()=>function(u,h){var B=u.getBoundingClientRect(),{left:f,top:b,positionAbove:k,positionLeft:S}=function(){if(h.anchor){var{anchor:w,width:_=0,height:K=0,offsetTop:J=0,offsetLeft:O=0,position:H}=h,{left:V,top:Z,bottom:ye,right:P}=w.getBoundingClientRect(),se=H==="top"||Z+K>window.innerHeight&&Z>K,X=H==="left"||V+_>window.innerWidth&&V>_;return{left:X?P-O:V+O,top:se?Z-J:ye+J,positionAbove:se,positionLeft:X}}if(typeof h.left=="number"&&typeof h.top=="number"){var{left:ue,top:oe,width:le=0,height:me=0}=h;return{left:ue,top:oe,positionAbove:oe+me>window.innerHeight&&oe>me,positionLeft:ue+le>window.innerWidth&&ue>le}}throw new Error('Invalid config: pass either "left" and "top", or pass "anchor"')}();return(k?"bottom: ".concat(B.top-b,"px;"):"top: ".concat(b-B.top,"px;"))+(S?"right: ".concat(B.left-f,"px;"):"left: ".concat(f-B.left,"px;"))}(g(n),e().options)))],tA),he(d,C)};ze(c,d=>{g(n)&&d(l)}),Ho(a,d=>x(n,d),()=>g(n)),QA("mousedown",a,function(d){d.stopPropagation()}),QA("keydown",a,s),he(t,a),kt()}var Qqe=_e(" ",1);function eY(t,A){St(A,!1);var e,i,n=Es("jsoneditor:AbsolutePopup"),o=Ce([],!0);function r(c){var l=g(o).findIndex(C=>C.id===c);if(l!==-1){var d=g(o)[l];d.options.onClose&&d.options.onClose(),x(o,g(o).filter(C=>C.id!==c))}}e="absolute-popup",i={openAbsolutePopup:function(c,l,d){n("open...",l,d);var C={id:Tf(),component:c,props:l||{},options:d||{}};return x(o,[...g(o),C]),C.id},closeAbsolutePopup:r},f2e().set(e,i),Se(()=>g(o),()=>{n("popups",g(o))}),Nn(),li(!0);var s=Qqe(),a=Ut(s);fr(a,1,()=>g(o),Jr,(c,l)=>{fqe(c,{get popup(){return g(l)},closeAbsolutePopup:r})}),Er(De(a,2),A,"default",{},null),he(t,s),kt()}function n6(t,A){for(var e=new Set(A),i=t.replace(/ \(copy( \d+)?\)$/,""),n=t,o=1;e.has(n);){var r="copy"+(o>1?" "+o:"");n="".concat(i," (").concat(r,")"),o++}return n}function Y2(t,A){var e=A-3;return t.length>A?t.substring(0,e)+"...":t}function mqe(t){if(t==="")return"";var A=t.toLowerCase();if(A==="null")return null;if(A==="true")return!0;if(A==="false")return!1;if(A!=="undefined"){var e=Number(t),i=parseFloat(t);return isNaN(e)||isNaN(i)?t:e}}var pqe={id:"jsonquery",name:"JSONQuery",description:` +

              + Enter a JSON Query function to filter, sort, or transform the data. + You can use functions like get, filter, + sort, pick, groupBy, uniq, etcetera. + Example query: filter(.age >= 18) +

              +`,createQuery:function(t,A){var{filter:e,sort:i,projection:n}=A,o=[];e&&e.path&&e.relation&&e.value&&o.push(["filter",[(r=e.relation,fG("1 ".concat(r," 1"))[0]),Pb(e.path),mqe(e.value)]]);var r;return i&&i.path&&i.direction&&o.push(["sort",Pb(i.path),i.direction==="desc"?"desc":"asc"]),n&&n.paths&&(n.paths.length>1?o.push(["pick",...n.paths.map(Pb)]):o.push(["map",Pb(n.paths[0])])),ioe(["pipe",...o])},executeQuery:function(t,A,e){var i=o1e(e,JSON)?t:function(n){var o=e.stringify(n);return o!==void 0?JSON.parse(o):void 0}(t);return A.trim()!==""?noe(i,A):i}};function Pb(t){return["get",...t]}var wqe=sI("");function yqe(t,A){St(A,!1);var e=870711,i=Ce(""),n=N(A,"data",8);function o(s){if(!s||!s.raw)return"";var a=s.raw,c={};return a=a.replace(/\s(?:xml:)?id=["']?([^"')\s]+)/g,(l,d)=>{var C="fa-".concat((e+=1).toString(16));return c[d]=C,' id="'.concat(C,'"')}),a=a.replace(/#(?:([^'")\s]+)|xpointer\(id\((['"]?)([^')]+)\2\)\))/g,(l,d,C,I)=>{var u=d||I;return u&&c[u]?"#".concat(c[u]):l}),a}Se(()=>F(n()),()=>{x(i,o(n()))}),Nn();var r=wqe();V2e(ge(r),()=>g(i),!0),he(t,r),kt()}Zt(` + .fa-icon.svelte-1mc5hvj { + display: inline-block; + fill: currentColor; + } + .fa-flip-horizontal.svelte-1mc5hvj { + transform: scale(-1, 1); + } + .fa-flip-vertical.svelte-1mc5hvj { + transform: scale(1, -1); + } + .fa-spin.svelte-1mc5hvj { + animation: svelte-1mc5hvj-fa-spin 1s 0s infinite linear; + } + .fa-inverse.svelte-1mc5hvj { + color: #fff; + } + .fa-pulse.svelte-1mc5hvj { + animation: svelte-1mc5hvj-fa-spin 1s infinite steps(8); + } + @keyframes svelte-1mc5hvj-fa-spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } + } +`);var Dqe=sI(""),vqe=sI(""),bqe=sI(""),Mqe=sI("",1);function nn(t,A){var e=Hb(A,["children","$$slots","$$events","$$legacy"]),i=Hb(e,["class","data","scale","spin","inverse","pulse","flip","label","style"]);St(A,!1);var n=N(A,"class",8,""),o=N(A,"data",8),r=Ce(),s=N(A,"scale",8,1),a=N(A,"spin",8,!1),c=N(A,"inverse",8,!1),l=N(A,"pulse",8,!1),d=N(A,"flip",8,void 0),C=N(A,"label",8,""),I=N(A,"style",8,""),u=Ce(10),h=Ce(10),B=Ce(),f=Ce();function b(){var S=1;return s()!==void 0&&(S=Number(s())),isNaN(S)||S<=0?(console.warn('Invalid prop: prop "scale" should be a number over 0.'),1):1*S}function k(){return g(r)?Math.max(g(r).width,g(r).height)/16:1}Se(()=>(F(o()),F(I()),F(s())),()=>{x(r,function(S){var w;if(S){if(!("definition"in S)){if("iconName"in S&&"icon"in S){S.iconName;var[_,K,,,J]=S.icon;w={width:_,height:K,paths:(Array.isArray(J)?J:[J]).map(O=>({d:O}))}}else w=S[Object.keys(S)[0]];return w}console.error("`import faIconName from '@fortawesome/package-name/faIconName` not supported - Please use `import { faIconName } from '@fortawesome/package-name/faIconName'` instead")}}(o())),I(),s(),x(u,g(r)?g(r).width/k()*b():0),x(h,g(r)?g(r).height/k()*b():0),x(B,function(){var S="";I()!==null&&(S+=I());var w=b();return w===1?S.length===0?"":S:(S===""||S.endsWith(";")||(S+="; "),"".concat(S,"font-size: ").concat(w,"em"))}()),x(f,g(r)?"0 0 ".concat(g(r).width," ").concat(g(r).height):"0 0 ".concat(g(u)," ").concat(g(h)))}),Nn(),li(),function(S,w){var _=Hb(w,["children","$$slots","$$events","$$legacy"]),K=Hb(_,["class","width","height","box","spin","inverse","pulse","flip","style","label"]),J=N(w,"class",8,""),O=N(w,"width",8),H=N(w,"height",8),V=N(w,"box",8,"0 0 0 0"),Z=N(w,"spin",8,!1),ye=N(w,"inverse",8,!1),P=N(w,"pulse",8,!1),se=N(w,"flip",8,"none"),X=N(w,"style",8,""),ue=N(w,"label",8,""),oe=Dqe();nM(oe,le=>{var me;return SA(SA({version:"1.1",class:"fa-icon ".concat((me=J())!==null&&me!==void 0?me:""),width:O(),height:H(),"aria-label":ue(),role:ue()?"img":"presentation",viewBox:V(),style:X()},K),{},{[Gf]:le})},[()=>({"fa-spin":Z(),"fa-pulse":P(),"fa-inverse":ye(),"fa-flip-horizontal":se()==="horizontal","fa-flip-vertical":se()==="vertical"})],"svelte-1mc5hvj"),Er(ge(oe),w,"default",{},null),he(S,oe)}(t,qC({get label(){return C()},get width(){return g(u)},get height(){return g(h)},get box(){return g(f)},get style(){return g(B)},get spin(){return a()},get flip(){return d()},get inverse(){return c()},get pulse(){return l()},get class(){return n()}},()=>i,{children:(S,w)=>{var _=ar();Er(Ut(_),A,"default",{},K=>{var J=Mqe(),O=Ut(J);fr(O,1,()=>(g(r),Be(()=>{var ye;return((ye=g(r))===null||ye===void 0?void 0:ye.paths)||[]})),Jr,(ye,P)=>{var se=vqe();nM(se,()=>SA({},g(P))),he(ye,se)});var H=De(O);fr(H,1,()=>(g(r),Be(()=>{var ye;return((ye=g(r))===null||ye===void 0?void 0:ye.polygons)||[]})),Jr,(ye,P)=>{var se=bqe();nM(se,()=>SA({},g(P))),he(ye,se)});var V=De(H),Z=ye=>{yqe(ye,{get data(){return g(r)},set data(P){x(r,P)},$$legacy:!0})};ze(V,ye=>{g(r),Be(()=>{var P;return(P=g(r))===null||P===void 0?void 0:P.raw})&&ye(Z)}),he(K,J)}),he(S,_)},$$slots:{default:!0}})),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-boolean-toggle.svelte-1ryp01u { + padding: 0; + margin: 1px 0 0; + vertical-align: top; + display: inline-flex; + color: var(--jse-value-color-boolean, #ff8c00); +} + +.jse-boolean-toggle.svelte-1ryp01u:not(.jse-readonly) { + cursor: pointer; +}`);var Sqe=_e('
              ');function kqe(t,A){St(A,!1);var e=N(A,"path",9),i=N(A,"value",9),n=N(A,"readOnly",9),o=N(A,"onPatch",9),r=N(A,"focus",9);li(!0);var s,a=Sqe(),c=ge(a),l=tA(()=>i()===!0?QG:mG);nn(c,{get data(){return g(l)}}),xA(d=>{Rn(a,"aria-checked",i()===!0),s=ci(a,1,"jse-boolean-toggle svelte-1ryp01u",null,s,d),Rn(a,"title",n()?"Boolean value ".concat(i()):"Click to toggle this boolean value")},[()=>({"jse-readonly":n()})],tA),QA("mousedown",a,function(d){d.stopPropagation(),n()||(o()([{op:"replace",path:pt(e()),value:!i()}]),r()())}),he(t,a),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-color-picker-popup.svelte-s1wu8v .picker_wrapper.popup, +.jse-color-picker-popup.svelte-s1wu8v .picker_wrapper.popup .picker_arrow::before, +.jse-color-picker-popup.svelte-s1wu8v .picker_wrapper.popup .picker_arrow::after { + background: var(--jse-color-picker-background, var(--jse-panel-background, #ebebeb)); + line-height: normal; +} +.jse-color-picker-popup.svelte-s1wu8v .picker_slider, +.jse-color-picker-popup.svelte-s1wu8v .picker_sl, +.jse-color-picker-popup.svelte-s1wu8v .picker_editor input, +.jse-color-picker-popup.svelte-s1wu8v .picker_sample, +.jse-color-picker-popup.svelte-s1wu8v .picker_done button { + box-shadow: var(--jse-color-picker-border-box-shadow, #cbcbcb 0 0 0 1px); +} +.jse-color-picker-popup.svelte-s1wu8v .picker_editor input { + background: var(--jse-background-color, #fff); + color: var(--jse-text-color, #4d4d4d); +} +.jse-color-picker-popup.svelte-s1wu8v .picker_done button { + background: var(--jse-button-background, #e0e0e0); + color: var(--jse-button-color, var(--jse-text-color, #4d4d4d)); +} +.jse-color-picker-popup.svelte-s1wu8v .picker_done button:hover { + background: var(--jse-button-background-highlight, #e7e7e7); +}`);var xqe=_e('
              ');function _qe(t,A){St(A,!1);var e=N(A,"color",8),i=N(A,"onChange",8),n=N(A,"showOnTop",8),o=Ce(),r=()=>{};ua(Vt(function*(){var a,c=new((a=yield import("./chunk-XMJNYD32.js"))===null||a===void 0?void 0:a.default)({parent:g(o),color:e(),popup:n()?"top":"bottom",onDone(l){var d=l.rgba[3]===1?l.hex.substring(0,7):l.hex;i()(d)}});c.show(),r=()=>{c.destroy()}})),gg(()=>{r()}),li();var s=xqe();Ho(s,a=>x(o,a),()=>g(o)),he(t,s),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-color-picker-button.svelte-xeg9n6 { + font-size: var(--jse-font-size-mono, 14px); + width: var(--jse-color-picker-button-size, 1em); + height: var(--jse-color-picker-button-size, 1em); + box-sizing: border-box; + padding: 0; + margin: 2px 0 0 calc(0.5 * var(--jse-padding, 10px)); + display: inline-flex; + vertical-align: top; + border: 1px solid var(--jse-text-color, #4d4d4d); + border-radius: 2px; + background: inherit; + outline: none; +} + +.jse-color-picker-button.svelte-xeg9n6:not(.jse-readonly) { + cursor: pointer; +}`);var Rqe=_e('');function Nqe(t,A){St(A,!1);var e=Ce(void 0,!0),i=Ce(void 0,!0),{openAbsolutePopup:n}=nI("absolute-popup"),o=N(A,"path",9),r=N(A,"value",9),s=N(A,"readOnly",9),a=N(A,"onPatch",9),c=N(A,"focus",9);function l(u){a()([{op:"replace",path:pt(o()),value:u}]),d()}function d(){c()()}Se(()=>F(r()),()=>{x(e,e1e(r()))}),Se(()=>(F(s()),F(r())),()=>{x(i,s()?"Color ".concat(r()):"Click to open a color picker")}),Nn(),li(!0);var C,I=Rqe();xA(u=>{var h;C=ci(I,1,"jse-color-picker-button svelte-xeg9n6",null,C,u),cg(I,"background: ".concat((h=g(e))!==null&&h!==void 0?h:"")),Rn(I,"title",g(i)),Rn(I,"aria-label",g(i))},[()=>({"jse-readonly":s()})],tA),QA("click",I,function(u){var h,B;if(!s()){var f=u.target,b=f.getBoundingClientRect().top,k=((h=(B=i6(f))===null||B===void 0?void 0:B.innerHeight)!==null&&h!==void 0?h:0)-b<300&&b>300,S={color:r(),onChange:l,showOnTop:k};n(_qe,S,{anchor:f,closeOnOuterClick:!0,onClose:d,offsetTop:18,offsetLeft:-8,height:300})}}),he(t,I),kt()}var vJ=1e3,Tp=100,jb=100,uM=2e4,Hf=[{start:0,end:Tp}],Lqe=1048576,Fqe=1048576,bJ=10485760,MJ="Insert or paste contents, enter [ insert a new array, enter { to insert a new object, or start typing to insert a new value",FY="Open context menu (Click here, right click on the selection, or use the context menu button or Ctrl+Q)",Xu="hover-insert-inside",Vb="hover-insert-after",yde="hover-collection",SJ="valid",Dde="repairable",H2=336,z2=260,xp=100,vde={[ag.asc]:"ascending",[ag.desc]:"descending"};function I1e(t){for(var A=IG(t,s=>s.start),e=[A[0]],i=0;i0&&arguments[0]!==void 0?arguments[0]:{expanded:!1};return{type:"array",expanded:t,visibleSections:Hf,items:[]}}function UY(){var{expanded:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{expanded:!1};return{type:"object",expanded:t,properties:{}}}var TY={createObjectDocumentState:UY,createArrayDocumentState:KY,createValueDocumentState:function(){return{type:"value"}}};function h1e(t,A,e,i){var{createObjectDocumentState:n,createArrayDocumentState:o,createValueDocumentState:r}=i;return function s(a,c,l){if(Array.isArray(a)){var d=hs(c)?c:o();if(l.length===0)return d;var C=Ps(l[0]),I=s(a[C],d.items[C],l.slice(1));return ra(d,["items",l[0]],I)}if(vn(a)){var u=Tc(c)?c:n();if(l.length===0)return u;var h=l[0],B=s(a[h],u.properties[h],l.slice(1));return ra(u,["properties",h],B)}return GY(c)?c:r()}(t,A,e)}function Dl(t,A){return Op(t,A,arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],(e,i)=>{if(e!==void 0&&i!==void 0)return Array.isArray(e)?hs(i)?i:KY({expanded:!!ch(i)&&i.expanded}):vn(e)?Tc(i)?i:UY({expanded:!!ch(i)&&i.expanded}):GY(i)?i:void 0},()=>!0)}function Op(t,A,e,i,n){var o=i(t,A,e);if(Array.isArray(t)&&hs(o)&&n(o)){var r=[];return OY(t,o.visibleSections,a=>{var c=e.concat(String(a)),l=Op(t[a],o.items[a],c,i,n);l!==void 0&&(r[a]=l)}),Bde(r,o.items)?o:SA(SA({},o),{},{items:r})}if(vn(t)&&Tc(o)&&n(o)){var s={};return Object.keys(t).forEach(a=>{var c=e.concat(a),l=Op(t[a],o.properties[a],c,i,n);l!==void 0&&(s[a]=l)}),Bde(Object.values(s),Object.values(o.properties))?o:SA(SA({},o),{},{properties:s})}return o}function OY(t,A,e){A.forEach(i=>{var{start:n,end:o}=i;A1e(n,Math.min(t.length,o),e)})}function Jp(t,A){for(var e=t,i=[],n=0;n{var d=ch(l)&&!l.expanded?SA(SA({},l),{},{expanded:!0}):l;return hs(d)?function(C,I){if(function(B,f){return B.some(b=>f>=b.start&&ffunction(c,l,d,C){return Op(c,l,d,(I,u,h)=>Array.isArray(I)&&C(h)?hs(u)?u.expanded?u:SA(SA({},u),{},{expanded:!0}):KY({expanded:!0}):vn(I)&&C(h)?Tc(u)?u.expanded?u:SA(SA({},u),{},{expanded:!0}):UY({expanded:!0}):u,I=>ch(I)&&I.expanded)}(s,a,[],i))}function Rde(t,A,e,i){return Xf(t,A,e,(n,o)=>i?function(r,s,a){return Op(r,s,a,(c,l)=>Nde(l),()=>!0)}(n,o,e):Nde(o))}function Nde(t){return hs(t)&&t.expanded?SA(SA({},t),{},{expanded:!1,visibleSections:Hf}):Tc(t)&&t.expanded?SA(SA({},t),{},{expanded:!1}):t}function B1e(t,A,e){var i={json:t,documentState:A},n=e.reduce((o,r)=>({json:Mc(o.json,[r]),documentState:Oqe(o.json,o.documentState,r)}),i);return{json:n.json,documentState:Dl(n.json,n.documentState)}}function Oqe(t,A,e){if(TF(e))return Lde(t,A,e,void 0);if(OF(e))return Fde(t,A,e);if(bD(e)){var i=Sc(t,e.path),n=_d(t,A,i);return n?GM(t,A,i,{type:"value",enforceString:n}):A}return MD(e)||X1(e)?function(o,r,s){if(X1(s)&&s.from===s.path)return r;var a=r,c=Sc(o,s.from),l=Sd(o,a,c);return X1(s)&&(a=Fde(o,a,{path:s.from})),a=Lde(o,a,{path:s.path},l),a}(t,A,e):A}function Sd(t,A,e){try{return WA(A,Jp(t,e))}catch{return}}function JY(t,A,e,i,n){var o=h1e(t,A,e,n);return Tm(o,Jp(t,e),r=>{var s=WA(t,e);return i(s,r)})}function GM(t,A,e,i){return function(n,o,r,s,a){var c=h1e(n,o,r,a);return ra(c,Jp(n,r),s)}(t,A,e,i,TY)}function Xf(t,A,e,i){return JY(t,A,e,i,TY)}function Lde(t,A,e,i){var n=Sc(t,e.path),o=A;return o=Xf(t,o,Hi(n),(r,s)=>{if(!hs(s))return s;var a=Ps(vi(n)),{items:c,visibleSections:l}=s;return SA(SA({},s),{},{items:a{if(!hs(s))return s;var a=Ps(vi(i)),{items:c,visibleSections:l}=s;return SA(SA({},s),{},{items:c.slice(0,a).concat(c.slice(a+1)),visibleSections:E1e(l,a,-1)})}):function(r,s,a){var c=Jp(r,a);return Us(s,c)?Eu(s,Jp(r,a)):s}(t,A,i)}function E1e(t,A,e){return function(i){for(var n=i.slice(0),o=1;o({start:i.start>A?i.start+e:i.start,end:i.end>A?i.end+e:i.end})))}function _d(t,A,e){var i,n=WA(t,e),o=Sd(t,A,e),r=GY(o)?o.enforceString:void 0;return typeof r=="boolean"?r:typeof(i=n)=="string"&&typeof rQ(i,JSON)!="string"}function o6(t,A){var e=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=t.indexOf(A);return i!==-1?e?t.slice(i):t.slice(i+1):[]}function YY(t,A){var e=[];return function i(n,o,r){e.push(r),Wo(n)&&hs(o)&&o.expanded&&OY(n,o.visibleSections,s=>{i(n[s],o.items[s],r.concat(String(s)))}),nr(n)&&Tc(o)&&o.expanded&&Object.keys(n).forEach(s=>{i(n[s],o.properties[s],r.concat(s))})}(t,A,[]),e}function f1e(t,A){var e=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],i=[];return function n(o,r){i.push({path:r,type:Xg.value});var s=Sd(t,A,r);if(o&&ch(s)&&s.expanded){if(e&&i.push({path:r,type:Xg.inside}),Wo(o)){var a=hs(s)?s.visibleSections:Hf;OY(o,a,c=>{var l=r.concat(String(c));n(o[c],l),e&&i.push({path:l,type:Xg.after})})}nr(o)&&Object.keys(o).forEach(c=>{var l=r.concat(c);i.push({path:l,type:Xg.key}),n(o[c],l),e&&i.push({path:l,type:Xg.after})})}}(t,[]),i}function kJ(t,A,e){var i=YY(t,A),n=i.map(pt).indexOf(pt(e));if(n!==-1&&n3&&arguments[3]!==void 0?arguments[3]:10240;return Zg(t,A,e,oqe({json:WA(t,e)},i)?_p:HY)}function xJ(t,A,e){var i=Sd(t,A,e);return ch(i)&&i.expanded?A:lh(t,A,e)}function _p(t){return t.length===0||t.length===1&&t[0]==="0"}function nY(t){return t.length===0}function HY(){return!0}function rM(){return!1}function Jc(t){return t&&t.type===ro.after||!1}function cs(t){return t&&t.type===ro.inside||!1}function Bs(t){return t&&t.type===ro.key||!1}function fn(t){return t&&t.type===ro.value||!1}function Io(t){return t&&t.type===ro.multi||!1}function KM(t){return Io(t)&&wi(t.focusPath,t.anchorPath)}function Yp(t){return Io(t)||Jc(t)||cs(t)||Bs(t)||fn(t)}function _J(t){return t&&t.type===ro.text||!1}function tI(t,A){var e=[];return function(i,n,o){if(n){var r=nh(n),s=It(n);if(wi(r,s))return o(r);if(i!==void 0){var a=m1e(r,s);if(r.length===a.length||s.length===a.length)return o(a);var c=Fa(r,s),l=P2(i,c),d=ZC(i,c),C=Z2(i,c,l),I=Z2(i,c,d);if(!(C===-1||I===-1)){var u=WA(i,a);if(nr(u)){for(var h=Object.keys(u),B=C;B<=I;B++){var f=o(a.concat(h[B]));if(f!==void 0)return f}return}if(Wo(u)){for(var b=C;b<=I;b++){var k=o(a.concat(String(b)));if(k!==void 0)return k}return}throw new Error("Failed to create selection")}}}}(t,A,i=>{e.push(i)}),e}function Q1e(t){return cs(t)?t.path:Hi(It(t))}function P2(t,A){if(!Io(A))return A.path;var e=Z2(t,A,A.anchorPath);return Z2(t,A,A.focusPath)e?A.focusPath:A.anchorPath}function Gde(t,A,e){var i=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(e){var n=i?It(e):P2(t,e),o=function(a,c,l){var d=YY(a,c),C=d.map(pt),I=pt(l),u=C.indexOf(I);if(u!==-1&&u>0)return d[u-1]}(t,A,n);if(i)return cs(e)||Jc(e)?o!==void 0?Fa(n,n):void 0:o!==void 0?Fa(nh(e),o):void 0;if(Jc(e)||cs(e))return zi(n);if(Bs(e)){if(o===void 0||o.length===0)return;var r=Hi(o),s=WA(t,r);return Array.isArray(s)||An(o)?zi(o):$2(o)}return fn(e),o!==void 0?zi(o):void 0}}function Kde(t,A,e,i){if(!e)return{caret:void 0,previous:void 0,next:void 0};var n=f1e(t,A,i),o=n.findIndex(r=>wi(r.path,It(e))&&String(r.type)===String(e.type));return{caret:o!==-1?n[o]:void 0,previous:o!==-1&&o>0?n[o-1]:void 0,next:o!==-1&&oe[i].length;)i++;var n=e[i];return n===void 0||n.length===0||Array.isArray(WA(t,Hi(n)))?zi(n):$2(n)}function $f(t,A){if(A.length===1){var e=Wl(A);if(e.op==="replace")return zi(Sc(t,e.path))}if(!An(A)&&A.every(r=>r.op==="move")){var i=Wl(A),n=A.slice(1);if((MD(i)||X1(i))&&i.from!==i.path&&n.every(r=>(MD(r)||X1(r))&&r.from===r.path))return $2(Sc(t,i.path))}var o=A.filter(r=>r.op!=="test"&&r.op!=="remove"&&(r.op!=="move"||r.from!==r.path)&&typeof r.path=="string").map(r=>Sc(t,r.path));if(!An(o))return{type:ro.multi,anchorPath:Wl(o),focusPath:vi(o)}}function m1e(t,A){for(var e=0;ee.length&&A.length>e.length;return{type:ro.multi,anchorPath:i?e.concat(t[e.length]):e,focusPath:i?e.concat(A[e.length]):e}}function p1e(t,A,e,i){if(Bs(A))return String(vi(A.path));if(fn(A)){var n=WA(t,A.path);return typeof n=="string"?n:i.stringify(n,null,e)}if(Io(A)){if(An(A.focusPath))return i.stringify(t,null,e);var o=Q1e(A),r=WA(t,o);if(Array.isArray(r)){if(KM(A)){var s=WA(t,A.focusPath);return i.stringify(s,null,e)}return tI(t,A).map(a=>{var c=WA(t,a);return"".concat(i.stringify(c,null,e),",")}).join(` +`)}return tI(t,A).map(a=>{var c=vi(a),l=WA(t,a);return"".concat(i.stringify(c),": ").concat(i.stringify(l,null,e),",")}).join(` +`)}}function us(t){return(Bs(t)||fn(t))&&t.edit===!0}function Of(t){return Bs(t)||fn(t)||Io(t)}function qb(t){return Bs(t)||fn(t)||KM(t)}function oY(t){switch(t.type){case Xg.key:return $2(t.path);case Xg.value:return zi(t.path);case Xg.after:return W2(t.path);case Xg.inside:return e1(t.path)}}function Tde(t,A){switch(t){case ro.key:return $2(A);case ro.value:return zi(A);case ro.after:return W2(A);case ro.inside:return e1(A);case ro.multi:case ro.text:return Fa(A,A)}}function Wb(t,A,e){if(A)return Hp(t,A,e)||Nd(Io(A)?Hi(A.focusPath):A.path,e)?A:void 0}function Hp(t,A,e){if(t===void 0||!A)return!1;if(Bs(A)||cs(A)||Jc(A))return wi(A.path,e);if(fn(A))return Nd(e,A.path);if(Io(A)){var i=P2(t,A),n=ZC(t,A),o=Hi(A.focusPath);if(!Nd(e,o)||e.length<=o.length)return!1;var r=Z2(t,A,i),s=Z2(t,A,n),a=Z2(t,A,e);return a!==-1&&a>=r&&a<=s}return!1}function Z2(t,A,e){var i=Hi(A.focusPath);if(!Nd(e,i)||e.length<=i.length)return-1;var n=e[i.length],o=WA(t,i);if(nr(o))return Object.keys(o).indexOf(n);if(Wo(o)){var r=Ps(n);if(r');function y1e(t,A){St(A,!1);var e=Es("jsoneditor:EditableDiv"),i=N(A,"value",9),n=N(A,"initialValue",9),o=N(A,"shortText",9,!1),r=N(A,"label",9),s=N(A,"onChange",9),a=N(A,"onCancel",9),c=N(A,"onFind",9),l=N(A,"onPaste",9,xr),d=N(A,"onValueClass",9,()=>""),C=Ce(void 0,!0),I=Ce(void 0,!0),u=!1;function h(){return g(C)?function(b){return b.replace(/\n$/,"")}(g(C).innerText):""}function B(b){g(C)&&vl(C,g(C).innerText=Zf(b))}ua(()=>{e("onMount",{value:i(),initialValue:n()}),B(n()!==void 0?n():i()),g(C)&&function(b){if(b.firstChild!=null){var k=document.createRange(),S=window.getSelection();k.setStart(b,1),k.collapse(!0),S?.removeAllRanges(),S?.addRange(k)}else b.focus()}(g(C))}),gg(()=>{var b=h();e("onDestroy",{closed:u,value:i(),newValue:b}),u||b===i()||s()(b,WC.no)}),Se(()=>(F(d()),F(i())),()=>{x(I,d()(i()))}),Nn(),li(!0);var f=Jqe();Ho(f,b=>x(C,b),()=>g(C)),xA(b=>{Rn(f,"aria-label",r()),ci(f,1,b,"svelte-f9kmxj")},[()=>AI((F(o0),g(I),F(o()),Be(()=>o0("jse-editable-div",g(I),{"jse-short-text":o()}))))],tA),QA("input",f,function(){var b=h();b===""&&B(""),x(I,d()(b))}),QA("keydown",f,function(b){b.stopPropagation();var k=X2(b);if(k==="Escape"&&(b.preventDefault(),u=!0,a()()),k==="Enter"||k==="Tab"){b.preventDefault(),u=!0;var S=h();s()(S,WC.nextInside)}k==="Ctrl+F"&&(b.preventDefault(),c()(!1)),k==="Ctrl+H"&&(b.preventDefault(),c()(!0))}),QA("paste",f,function(b){if(b.stopPropagation(),l()&&b.clipboardData){var k=b.clipboardData.getData("text/plain");l()(k)}}),QA("blur",f,function(){var b=document.hasFocus(),k=h();e("handleBlur",{hasFocus:b,closed:u,value:i(),newValue:k}),document.hasFocus()&&!u&&(u=!0,k!==i()&&s()(k,WC.self))}),he(t,f),kt()}function Yqe(t,A){St(A,!1);var e=N(A,"path",9),i=N(A,"value",9),n=N(A,"selection",9),o=N(A,"mode",9),r=N(A,"parser",9),s=N(A,"normalization",9),a=N(A,"enforceString",9),c=N(A,"onPatch",9),l=N(A,"onPasteJson",9),d=N(A,"onSelect",9),C=N(A,"onFind",9),I=N(A,"focus",9),u=N(A,"findNextInside",9);function h(k){return a()?k:rQ(k,r())}function B(){d()(zi(e())),I()()}li(!0);var f=tA(()=>(F(s()),F(i()),Be(()=>s().escapeValue(i())))),b=tA(()=>(F(us),F(n()),Be(()=>us(n())?n().initialValue:void 0)));y1e(t,{get value(){return g(f)},get initialValue(){return g(b)},label:"Edit value",onChange:function(k,S){c()([{op:"replace",path:pt(e()),value:h(s().unescapeValue(k))}],(w,_,K)=>{if(!K||wi(e(),It(K)))return{state:_,selection:S===WC.nextInside?u()(e()):zi(e())}}),I()()},onCancel:B,onPaste:function(k){try{var S=r().parse(k);sr(S)&&l()({path:e(),contents:S,onPasteAsJson:()=>{B();var w=[{op:"replace",path:pt(e()),value:S}];c()(w,(_,K)=>({state:lh(_,K,e())}))}})}catch{}},get onFind(){return C()},onValueClass:function(k){return w1e(h(s().unescapeValue(k)),o(),r())}}),kt()}function Jf(t,A,e){var i=Hi(A),n=WA(t,i);if(Wo(n)){var o=Ps(vi(A));return e.map((c,l)=>({op:"add",path:pt(i.concat(String(o+l))),value:c.value}))}if(nr(n)){var r=vi(A),s=Object.keys(n),a=r!==void 0?o6(s,r,!0):[];return[...e.map(c=>{var l=n6(c.key,s);return{op:"add",path:pt(i.concat(l)),value:c.value}}),...a.map(c=>iI(i,c))]}throw new Error("Cannot create insert operations: parent must be an Object or Array")}function rY(t,A,e){var i=WA(t,A);if(Array.isArray(i)){var n=i.length;return e.map((o,r)=>({op:"add",path:pt(A.concat(String(n+r))),value:o.value}))}return e.map(o=>{var r=n6(o.key,Object.keys(i));return{op:"add",path:pt(A.concat(r)),value:o.value}})}function r6(t,A,e,i){var n=n6(i,A.filter(r=>r!==e)),o=o6(A,e,!1);return[{op:"move",from:pt(t.concat(e)),path:pt(t.concat(n))},...o.map(r=>iI(t,r))]}function D1e(t,A){var e=vi(A);if(An(e))throw new Error("Cannot duplicate root object");var i=Hi(e),n=vi(e),o=WA(t,i);if(Wo(o)){var r=vi(A),s=r?Ps(vi(r))+1:0;return[...A.map((l,d)=>({op:"copy",from:pt(l),path:pt(i.concat(String(d+s)))}))]}if(nr(o)){var a=Object.keys(o),c=n!==void 0?o6(a,n,!1):[];return[...A.map(l=>{var d=n6(vi(l),a);return{op:"copy",from:pt(l),path:pt(i.concat(d))}}),...c.map(l=>iI(i,l))]}throw new Error("Cannot create duplicate operations: parent must be an Object or Array")}function v1e(t,A){if(fn(A))return[{op:"move",from:pt(A.path),path:""}];if(!Io(A))throw new Error("Cannot create extract operations: parent must be an Object or Array");var e=Hi(A.focusPath),i=WA(t,e);if(Wo(i)){var n=tI(t,A).map(r=>{var s=Ps(vi(r));return i[s]});return[{op:"replace",path:"",value:n}]}if(nr(i)){var o={};return tI(t,A).forEach(r=>{var s=String(vi(r));o[s]=i[s]}),[{op:"replace",path:"",value:o}]}throw new Error("Cannot extract: unsupported type of selection "+JSON.stringify(A))}function b1e(t,A,e,i){if(Bs(A)){var n=t1e(e,i),o=Hi(A.path),r=WA(t,o);return r6(o,Object.keys(r),vi(A.path),typeof n=="string"?n:e)}if(fn(A)||Io(A)&&An(A.focusPath))try{return[{op:"replace",path:pt(It(A)),value:t6(e,_=>A6(_,i))}]}catch{return[{op:"replace",path:pt(It(A)),value:e}]}if(Io(A)){var s=RJ(e,i);return function(_,K,J){var O=Wl(K),H=Hi(O),V=WA(_,H);if(Wo(V)){var Z=Wl(K),ye=Z?Ps(vi(Z)):0;return[...QM(K),...J.map((Te,$e)=>({op:"add",path:pt(H.concat(String($e+ye))),value:Te.value}))]}if(nr(V)){var P=vi(K),se=Hi(P),X=vi(P),ue=Object.keys(V),oe=X!==void 0?o6(ue,X,!1):[],le=new Set(K.map(Te=>vi(Te))),me=ue.filter(Te=>!le.has(Te));return[...QM(K),...J.map(Te=>{var $e=n6(Te.key,me);return{op:"add",path:pt(se.concat($e)),value:Te.value}}),...oe.map(Te=>iI(se,Te))]}throw new Error("Cannot create replace operations: parent must be an Object or Array")}(t,tI(t,A),s)}if(Jc(A)){var a=RJ(e,i),c=A.path,l=Hi(c),d=WA(t,l);if(Wo(d)){var C=Ps(vi(c));return Jf(t,l.concat(String(C+1)),a)}if(nr(d)){var I=String(vi(c)),u=Object.keys(d);if(An(u)||vi(u)===I)return rY(t,l,a);var h=u.indexOf(I),B=u[h+1];return Jf(t,l.concat(B),a)}throw new Error("Cannot create insert operations: parent must be an Object or Array")}if(cs(A)){var f=RJ(e,i),b=A.path,k=WA(t,b);if(Wo(k))return Jf(t,b.concat("0"),f);if(nr(k)){var S=Object.keys(k);if(An(S))return rY(t,b,f);var w=Wl(S);return Jf(t,b.concat(w),f)}throw new Error("Cannot create insert operations: parent must be an Object or Array")}throw new Error("Cannot insert: unsupported type of selection "+JSON.stringify(A))}function QM(t){return t.map(A=>({op:"remove",path:pt(A)})).reverse()}function iI(t,A){return{op:"move",from:pt(t.concat(A)),path:pt(t.concat(A))}}function RJ(t,A){var e=/^\s*{/.test(t),i=/^\s*\[/.test(t),n=t1e(t,A),o=n!==void 0?n:t6(t,r=>A6(r,A));return e&&vn(o)||i&&Array.isArray(o)?[{key:"New item",value:o}]:Array.isArray(o)?o.map((r,s)=>({key:"New item "+s,value:r})):vn(o)?Object.keys(o).map(r=>({key:r,value:o[r]})):[{key:"New item",value:o}]}function M1e(t,A){if(Bs(A)){var e=Hi(A.path),i=WA(t,e),n=r6(e,Object.keys(i),vi(A.path),"");return{operations:n,newSelection:$f(t,n)}}if(fn(A))return{operations:[{op:"replace",path:pt(A.path),value:""}],newSelection:A};if(Io(A)){var o=tI(t,A),r=QM(o),s=vi(o);if(An(s))return{operations:[{op:"replace",path:"",value:""}],newSelection:zi([])};var a=Hi(s),c=WA(t,a);if(Wo(c)){var l=Wl(o),d=Ps(vi(l));return{operations:r,newSelection:d===0?e1(a):W2(a.concat(String(d-1)))}}if(nr(c)){var C=Object.keys(c),I=Wl(o),u=vi(I),h=C.indexOf(u),B=C[h-1];return{operations:r,newSelection:h===0?e1(a):W2(a.concat(B))}}throw new Error("Cannot create remove operations: parent must be an Object or Array")}throw new Error("Cannot remove: unsupported type of selection "+JSON.stringify(A))}function S1e(t,A){var e=function(i,n){if(An(n)||!n.every(X1))return n;var o=[];for(var r of n){var s=Ode(Sa(r.from)),a=Ode(Sa(r.path));if(!s||!a)return n;o.push({from:s,path:a,operation:r})}var c=o[0].path.parent,l=WA(i,c);if(!nr(l)||!o.every(u=>function(h,B){return wi(h.from.parent,B)&&wi(h.path.parent,B)}(u,c)))return n;var d=function(u,h){var B=Object.keys(h),f=B.slice();for(var b of u){var k=f.indexOf(b.from.key);k!==-1&&(f.splice(k,1),f.push(b.path.key))}for(var S=0;Su.operation,I=o.filter(u=>u.operation.from!==u.operation.path);return I.some(u=>u.path.key===d)?I.map(C):[iI(c,d),...I.map(C)]}(t,A);return SD(t,e,{before:(i,n,o)=>{if(OF(n)){var r=Sa(n.path);return{revertOperations:[...o,...NJ(i,r)]}}if(X1(n)){var s=Sa(n.from);return{revertOperations:n.from===n.path?[n,...NJ(i,s)]:[...o,...NJ(i,s)]}}return{document:i}}})}function Ode(t){return t.length>0?{parent:Hi(t),key:vi(t)}:void 0}function NJ(t,A){var e=Hi(A),i=vi(A),n=WA(t,e);return nr(n)?o6(Object.keys(n),i,!1).map(o=>iI(e,o)):[]}function Jde(t){var A=t.activeIndex0?0:-1,e=t.items[A],i=t.items.map((n,o)=>SA(SA({},n),{},{active:o===A}));return SA(SA({},t),{},{items:i,activeItem:e,activeIndex:A})}function Yde(t,A){var e,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=t.toLowerCase(),o=(e=i?.maxResults)!==null&&e!==void 0?e:1/0,r=i?.columns,s=[],a=[];function c(B){s.length>=o||s.push(B)}function l(B,f){if(Wo(f)){var b=a.length;a.push("0");for(var k=0;k=o)return;a.pop()}else if(nr(f)){var S=Object.keys(f),w=a.length;for(var _ of(a.push(""),S))if(a[w]=_,Hde(_,B,a,A0.key,c),l(B,f[_]),s.length>=o)return;a.pop()}else Hde(String(f),B,a,A0.value,c)}if(t==="")return[];if(r){if(!Array.isArray(A))throw new Error("json must be an Array when option columns is defined");for(var d=0;du.length+1;)a.pop();l(n,WA(C,u))}if(s.length>=o)break}return s}return l(n,A),s}function Hde(t,A,e,i,n){var o=t.toLowerCase(),r=0,s=-1,a=-1;do(a=o.indexOf(A,s))!==-1&&(s=a+A.length,n({path:e.slice(0),field:i,fieldIndex:r,start:a,end:s}),r++);while(a!==-1)}function sY(t,A,e,i){return t.substring(0,e)+A+t.substring(i)}function zde(t,A,e){var i=t;return cG(e,n=>{i=sY(i,A,n.start,n.end)}),i}function Hqe(t,A,e,i,n){var{field:o,path:r,start:s,end:a}=i;if(o===A0.key){var c=Hi(r),l=WA(t,c),d=vi(r),C=r6(c,Object.keys(l),d,sY(d,e,s,a));return{newSelection:$f(t,C),operations:C}}if(o===A0.value){var I=WA(t,r);if(I===void 0)throw new Error("Cannot replace: path not found ".concat(pt(r)));var u=typeof I=="string"?I:String(I),h=_d(t,A,r),B=sY(u,e,s,a),f=[{op:"replace",path:pt(r),value:h?B:rQ(B,n)}];return{newSelection:$f(t,f),operations:f}}throw new Error("Cannot replace: unknown type of search result field ".concat(o))}function Pde(t){return t.path.concat(t.field,String(t.fieldIndex))}function jde(t){var A=u1e(t)?t.searchResults.filter(e=>e.field===A0.key):void 0;return A&&A.length>0?A:void 0}function Vde(t){var A=u1e(t)?t.searchResults.filter(e=>e.field===A0.value):void 0;return A&&A.length>0?A:void 0}var zqe={createObjectDocumentState:()=>({type:"object",properties:{}}),createArrayDocumentState:()=>({type:"array",items:[]}),createValueDocumentState:()=>({type:"value"})};function k1e(t,A){return A.reduce((e,i)=>function(n,o,r,s){return JY(n,o,r,s,zqe)}(t,e,i.path,(n,o)=>SA(SA({},o),{},{searchResults:o.searchResults?o.searchResults.concat(i):[i]})),void 0)}function mM(t){var A,e=(A=t?.searchResults)!==null&&A!==void 0?A:[],i=Tc(t)?Object.values(t.properties).flatMap(mM):hs(t)?t.items.flatMap(mM):[];return e.concat(i)}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-highlight.svelte-5fb7bl { + background-color: var(--jse-search-match-color, #ffe665); + outline: var(--jse-search-match-outline, none); +} +.jse-highlight.jse-active.svelte-5fb7bl { + background-color: var(--jse-search-match-active-color, var(--jse-search-match-color, #ffe665)); + outline: var(--jse-search-match-outline, 2px solid #e0be00); +}`);var Pqe=_e(" ");function x1e(t,A){St(A,!1);var e=Ce(),i=N(A,"text",8),n=N(A,"searchResultItems",8);Se(()=>(F(i()),F(n())),()=>{x(e,function(r,s){var a=[],c=0;for(var l of s){var d=r.slice(c,l.start);d!==""&&a.push({resultIndex:void 0,type:"normal",text:d,active:!1});var C=r.slice(l.start,l.end);a.push({resultIndex:l.resultIndex,type:"highlight",text:C,active:l.active}),c=l.end}var I=vi(s);return I&&I.endg(e),Jr,(r,s)=>{var a=ar(),c=Ut(a),l=C=>{var I=Ss();xA(()=>xt(I,(g(s),Be(()=>g(s).text)))),he(C,I)},d=C=>{var I,u=Pqe(),h=ge(u);xA((B,f,b)=>{I=ci(u,1,"jse-highlight svelte-5fb7bl",null,I,B),Rn(u,"data-search-result-index",f),xt(h,b)},[()=>({"jse-active":g(s).active}),()=>(g(s),Be(()=>String(g(s).resultIndex))),()=>(F(Zf),g(s),Be(()=>Zf(g(s).text)))],tA),he(C,u)};ze(c,C=>{g(s),Be(()=>g(s).type==="normal")?C(l):C(d,!1)}),he(r,a)}),he(t,o),kt()}function sM(t){var A=1e3;if(t<900)return t.toFixed()+" B";var e=t/A;if(e<900)return e.toFixed(1)+" KB";var i=e/A;if(i<900)return i.toFixed(1)+" MB";var n=i/A;return n<900?n.toFixed(1)+" GB":(n/A).toFixed(1)+" TB"}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-tag.svelte-jlw0fj { + border: none; + font-size: 80%; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + color: var(--jse-tag-color, var(--jse-text-color-inverse, #fff)); + background: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); + border-radius: 2px; + cursor: pointer; + display: inline-block; + padding: 0 4px; + line-height: normal; + margin: 1px 0; +} +.jse-tag.svelte-jlw0fj:hover { + opacity: 0.8; +} +.jse-tag.disabled.svelte-jlw0fj { + opacity: 0.7; + cursor: inherit; +}`);var jqe=_e('');function aM(t,A){St(A,!0);var e,i=Oc(()=>A.onclick?o=>{o.preventDefault(),o.stopPropagation(),A.onclick()}:void 0),n=jqe();n.__click=function(){for(var o,r=arguments.length,s=new Array(r),a=0;a2?s-2:0),c=2;c{C!==(C=r())&&(l&&(lg(l),l=null),l=Gd(()=>C(d,...a)))},Wp)}(ge(n),()=>{var o;return(o=A.children)!==null&&o!==void 0?o:Ade}),xA(o=>e=ci(n,1,"jse-tag svelte-jlw0fj",null,e,o),[()=>({disabled:!A.onclick})]),he(t,n),kt()}e6(["click"]);function Vqe(t,A,e){typeof A.value=="string"&&g(e)&&LY(t)&&(t.preventDefault(),t.stopPropagation(),window.open(A.value,"_blank"))}function qqe(t,A){A.readOnly||(t.preventDefault(),A.onSelect(fM(A.path)))}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-value.jse-string.svelte-c0g9qz { + color: var(--jse-value-color-string, #008000); +} +.jse-value.jse-object.svelte-c0g9qz, .jse-value.jse-array.svelte-c0g9qz { + min-width: 16px; + color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); +} +.jse-value.jse-number.svelte-c0g9qz { + color: var(--jse-value-color-number, #ee422e); +} +.jse-value.jse-boolean.svelte-c0g9qz { + color: var(--jse-value-color-boolean, #ff8c00); +} +.jse-value.jse-null.svelte-c0g9qz { + color: var(--jse-value-color-null, #004ed0); +} +.jse-value.jse-invalid.svelte-c0g9qz { + color: var(--jse-text-color, #4d4d4d); +} +.jse-value.jse-url.svelte-c0g9qz { + color: var(--jse-value-color-url, #008000); + text-decoration: underline; +} + +.jse-value.svelte-c0g9qz { + display: inline-block; + min-width: 2em; + padding: 0 5px; + box-sizing: border-box; + outline: none; + border-radius: 1px; + vertical-align: top; + word-break: normal; + overflow-wrap: anywhere; + white-space: pre-wrap; +} +.jse-value.jse-table-cell.svelte-c0g9qz { + overflow-wrap: normal; + white-space: nowrap; +} +.jse-value.jse-empty.svelte-c0g9qz { + min-width: 4em; + outline: 1px dotted var(--jse-tag-background, rgba(0, 0, 0, 0.2)); + -moz-outline-radius: 2px; +} +.jse-value.jse-empty.svelte-c0g9qz::after { + pointer-events: none; + color: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); + content: "value"; +}`);var Wqe=_e('
              ');function Zqe(t,A){St(A,!0);var e=T2(!0),i=Oc(()=>g(e)&&typeof A.value=="string"&&A.value.length>A.truncateTextSize&&(!A.searchResultItems||!A.searchResultItems.some(I=>I.active&&I.end>A.truncateTextSize))),n=Oc(()=>g(i)&&typeof A.value=="string"?A.value.substring(0,A.truncateTextSize).trim():A.value),o=Oc(()=>FM(A.value));function r(){x(e,!1)}var s=Wqe();s.__click=[Vqe,A,o],s.__dblclick=[qqe,A];var a=ge(s),c=I=>{var u=Oc(()=>A.normalization.escapeValue(g(n)));x1e(I,{get text(){return g(u)},get searchResultItems(){return A.searchResultItems}})},l=I=>{var u=Ss();xA(h=>xt(u,h),[()=>Zf(A.normalization.escapeValue(g(n)))]),he(I,u)};ze(a,I=>{A.searchResultItems?I(c):I(l,!1)});var d=De(a,2),C=I=>{aM(I,{onclick:r,children:(u,h)=>{var B=Ss();xA(f=>xt(B,"Show more (".concat(f??"",")")),[()=>sM(A.value.length)]),he(u,B)},$$slots:{default:!0}})};ze(d,I=>{g(i)&&typeof A.value=="string"&&I(C)}),xA(I=>{ci(s,1,I,"svelte-c0g9qz"),Rn(s,"title",g(o)?"Ctrl+Click or Ctrl+Enter to open url in new window":void 0)},[()=>AI(w1e(A.value,A.mode,A.parser))]),he(t,s),kt()}e6(["click","dblclick"]);Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-tooltip.svelte-14y3y8t { + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + line-height: normal; + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); + border-radius: 3px; + background: var(--jse-context-menu-background, #656565); + color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); + white-space: nowrap; + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); +}`);var Xqe=_e('
              ');function $qe(t,A){var e=N(A,"text",8),i=Xqe(),n=ge(i);xA(()=>xt(n,e())),he(t,i)}function eQ(t,A){var e,{text:i,openAbsolutePopup:n,closeAbsolutePopup:o}=A;function r(){e=n($qe,{text:i},{position:"top",width:10*i.length,offsetTop:3,anchor:t,closeOnOuterClick:!0})}function s(){o(e)}return t.addEventListener("mouseenter",r),t.addEventListener("mouseleave",s),{destroy(){t.removeEventListener("mouseenter",r),t.removeEventListener("mouseleave",s)}}}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-timestamp.svelte-1jla5ec { + padding: 0; + margin: 0; + vertical-align: middle; + display: inline-flex; + color: var(--jse-value-color-number, #ee422e); +}`);var eWe=_e('
              ');function AWe(t,A){St(A,!1);var e=Ce(void 0,!0),i=nI("absolute-popup"),n=N(A,"value",9);Se(()=>F(n()),()=>{x(e,"Time: ".concat(new Date(n()).toString()))}),Nn(),li(!0);var o=eWe();nn(ge(o),{get data(){return roe}}),Ka(o,(r,s)=>eQ?.(r,s),()=>SA({text:g(e)},i)),he(t,o),kt()}function tWe(t){var A=[];return!t.isEditing&&$Ve(t.value)&&A.push({component:kqe,props:t}),!t.isEditing&&eqe(t.value)&&A.push({component:Nqe,props:t}),t.isEditing&&A.push({component:Yqe,props:t}),t.isEditing||A.push({component:Zqe,props:t}),!t.isEditing&&ZJ(t.value)&&A.push({component:AWe,props:t}),A}function Yc(t){return t.map((A,e)=>nWe.test(A)?"["+A+"]":/[.[\]]/.test(A)||A===""?'["'+function(i){return i.replace(/"/g,'\\"')}(A)+'"]':(e>0?".":"")+A).join("")}function iWe(t){for(var A=[],e=0;eo==='"',!0)),n('"')):A.push(i(o=>o==="]")),n("]")):A.push(i(o=>o==="."||o==="["));function i(o){for(var r=arguments.length>1&&arguments[1]!==void 0&&arguments[1],s="";e({x:t,y:t}),sWe={left:"right",right:"left",bottom:"top",top:"bottom"},aWe={start:"end",end:"start"};function qde(t,A,e){return oh(t,pM(A,e))}function UM(t,A){return typeof t=="function"?t(A):t}function gh(t){return t.split("-")[0]}function TM(t){return t.split("-")[1]}function _1e(t){return t==="x"?"y":"x"}function R1e(t){return t==="y"?"height":"width"}var cWe=new Set(["top","bottom"]);function PC(t){return cWe.has(gh(t))?"y":"x"}function N1e(t){return _1e(PC(t))}function aY(t){return t.replace(/start|end/g,A=>aWe[A])}var Wde=["left","right"],Zde=["right","left"],lWe=["top","bottom"],gWe=["bottom","top"];function dWe(t,A,e,i){var n=TM(t),o=function(r,s,a){switch(r){case"top":case"bottom":return a?s?Zde:Wde:s?Wde:Zde;case"left":case"right":return s?lWe:gWe;default:return[]}}(gh(t),e==="start",i);return n&&(o=o.map(r=>r+"-"+n),A&&(o=o.concat(o.map(aY)))),o}function Xb(t){return t.replace(/left|right|bottom|top/g,A=>sWe[A])}function CWe(t){return typeof t!="number"?function(A){return SA({top:0,right:0,bottom:0,left:0},A)}(t):{top:t,right:t,bottom:t,left:t}}function yM(t){var{x:A,y:e,width:i,height:n}=t;return{width:i,height:n,top:e,left:A,right:A+i,bottom:e+n,x:A,y:e}}function Xde(t,A,e){var i,{reference:n,floating:o}=t,r=PC(A),s=N1e(A),a=R1e(s),c=gh(A),l=r==="y",d=n.x+n.width/2-o.width/2,C=n.y+n.height/2-o.height/2,I=n[a]/2-o[a]/2;switch(c){case"top":i={x:d,y:n.y-o.height};break;case"bottom":i={x:d,y:n.y+n.height};break;case"right":i={x:n.x+n.width,y:C};break;case"left":i={x:n.x-o.width,y:C};break;default:i={x:n.x,y:n.y}}switch(TM(A)){case"start":i[s]-=I*(e&&l?-1:1);break;case"end":i[s]+=I*(e&&l?-1:1)}return i}var IWe=function(){var t=Vt(function*(A,e,i){for(var{placement:n="bottom",strategy:o="absolute",middleware:r=[],platform:s}=i,a=r.filter(Boolean),c=yield s.isRTL==null?void 0:s.isRTL(e),l=yield s.getElementRects({reference:A,floating:e,strategy:o}),{x:d,y:C}=Xde(l,n,c),I=n,u={},h=0,B=0;B"u")&&(t instanceof ShadowRoot||t instanceof Ml(t).ShadowRoot)}var hWe=new Set(["inline","contents"]);function zp(t){var{overflow:A,overflowX:e,overflowY:i,display:n}=i0(t);return/auto|scroll|overlay|hidden|clip/.test(A+i+e)&&!hWe.has(n)}var BWe=new Set(["table","td","th"]);function EWe(t){return BWe.has(AQ(t))}var fWe=[":popover-open",":modal"];function DM(t){return fWe.some(A=>{try{return t.matches(A)}catch{return!1}})}var QWe=["transform","translate","scale","rotate","perspective"],mWe=["transform","translate","scale","rotate","perspective","filter"],pWe=["paint","layout","strict","content"];function gY(t){var A=PY(),e=t0(t)?i0(t):t;return QWe.some(i=>!!e[i]&&e[i]!=="none")||!!e.containerType&&e.containerType!=="normal"||!A&&!!e.backdropFilter&&e.backdropFilter!=="none"||!A&&!!e.filter&&e.filter!=="none"||mWe.some(i=>(e.willChange||"").includes(i))||pWe.some(i=>(e.contain||"").includes(i))}function PY(){return!(typeof CSS>"u"||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}var wWe=new Set(["html","body","#document"]);function zf(t){return wWe.has(AQ(t))}function i0(t){return Ml(t).getComputedStyle(t)}function JM(t){return t0(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function jC(t){if(AQ(t)==="html")return t;var A=t.assignedSlot||t.parentNode||$de(t)&&t.host||Fd(t);return $de(A)?A.host:A}function G1e(t){var A=jC(t);return zf(A)?t.ownerDocument?t.ownerDocument.body:t.body:Kd(A)&&zp(A)?A:G1e(A)}function Pp(t,A,e){var i;A===void 0&&(A=[]),e===void 0&&(e=!0);var n=G1e(t),o=n===((i=t.ownerDocument)==null?void 0:i.body),r=Ml(n);if(o){var s=dY(r);return A.concat(r,r.visualViewport||[],zp(n)?n:[],s&&e?Pp(s):[])}return A.concat(n,Pp(n,[],e))}function dY(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function K1e(t){var A=i0(t),e=parseFloat(A.width)||0,i=parseFloat(A.height)||0,n=Kd(t),o=n?t.offsetWidth:e,r=n?t.offsetHeight:i,s=wM(e)!==o||wM(i)!==r;return s&&(e=o,i=r),{width:e,height:i,$:s}}function jY(t){return t0(t)?t:t.contextElement}function Pf(t){var A=jY(t);if(!Kd(A))return Ld(1);var e=A.getBoundingClientRect(),{width:i,height:n,$:o}=K1e(A),r=(o?wM(e.width):e.width)/i,s=(o?wM(e.height):e.height)/n;return r&&Number.isFinite(r)||(r=1),s&&Number.isFinite(s)||(s=1),{x:r,y:s}}var yWe=Ld(0);function U1e(t){var A=Ml(t);return PY()&&A.visualViewport?{x:A.visualViewport.offsetLeft,y:A.visualViewport.offsetTop}:yWe}function dh(t,A,e,i){A===void 0&&(A=!1),e===void 0&&(e=!1);var n=t.getBoundingClientRect(),o=jY(t),r=Ld(1);A&&(i?t0(i)&&(r=Pf(i)):r=Pf(t));var s=function(w,_,K){return _===void 0&&(_=!1),!(!K||_&&K!==Ml(w))&&_}(o,e,i)?U1e(o):Ld(0),a=(n.left+s.x)/r.x,c=(n.top+s.y)/r.y,l=n.width/r.x,d=n.height/r.y;if(o)for(var C=Ml(o),I=i&&t0(i)?Ml(i):i,u=C,h=dY(u);h&&i&&I!==u;){var B=Pf(h),f=h.getBoundingClientRect(),b=i0(h),k=f.left+(h.clientLeft+parseFloat(b.paddingLeft))*B.x,S=f.top+(h.clientTop+parseFloat(b.paddingTop))*B.y;a*=B.x,c*=B.y,l*=B.x,d*=B.y,a+=k,c+=S,h=dY(u=Ml(h))}return yM({width:l,height:d,x:a,y:c})}function VY(t,A){var e=JM(t).scrollLeft;return A?A.left+e:dh(Fd(t)).left+e}function T1e(t,A,e){e===void 0&&(e=!1);var i=t.getBoundingClientRect();return{x:i.left+A.scrollLeft-(e?0:VY(t,i)),y:i.top+A.scrollTop}}var DWe=new Set(["absolute","fixed"]);function e2e(t,A,e){var i;if(A==="viewport")i=function(o,r){var s=Ml(o),a=Fd(o),c=s.visualViewport,l=a.clientWidth,d=a.clientHeight,C=0,I=0;if(c){l=c.width,d=c.height;var u=PY();(!u||u&&r==="fixed")&&(C=c.offsetLeft,I=c.offsetTop)}return{width:l,height:d,x:C,y:I}}(t,e);else if(A==="document")i=function(o){var r=Fd(o),s=JM(o),a=o.ownerDocument.body,c=oh(r.scrollWidth,r.clientWidth,a.scrollWidth,a.clientWidth),l=oh(r.scrollHeight,r.clientHeight,a.scrollHeight,a.clientHeight),d=-s.scrollLeft+VY(o),C=-s.scrollTop;return i0(a).direction==="rtl"&&(d+=oh(r.clientWidth,a.clientWidth)-c),{width:c,height:l,x:d,y:C}}(Fd(t));else if(t0(A))i=function(o,r){var s=dh(o,!0,r==="fixed"),a=s.top+o.clientTop,c=s.left+o.clientLeft,l=Kd(o)?Pf(o):Ld(1);return{width:o.clientWidth*l.x,height:o.clientHeight*l.y,x:c*l.x,y:a*l.y}}(A,e);else{var n=U1e(t);i={x:A.x-n.x,y:A.y-n.y,width:A.width,height:A.height}}return yM(i)}function O1e(t,A){var e=jC(t);return!(e===A||!t0(e)||zf(e))&&(i0(e).position==="fixed"||O1e(e,A))}function vWe(t,A,e){var i=Kd(A),n=Fd(A),o=e==="fixed",r=dh(t,!0,o,A),s={scrollLeft:0,scrollTop:0},a=Ld(0);function c(){a.x=VY(n)}if(i||!i&&!o)if((AQ(A)!=="body"||zp(n))&&(s=JM(A)),i){var l=dh(A,!0,o,A);a.x=l.x+A.clientLeft,a.y=l.y+A.clientTop}else n&&c();o&&!i&&n&&c();var d=!n||i||o?Ld(0):T1e(n,s);return{x:r.left+s.scrollLeft-a.x-d.x,y:r.top+s.scrollTop-a.y-d.y,width:r.width,height:r.height}}function LJ(t){return i0(t).position==="static"}function A2e(t,A){if(!Kd(t)||i0(t).position==="fixed")return null;if(A)return A(t);var e=t.offsetParent;return Fd(t)===e&&(e=e.ownerDocument.body),e}function t2e(t,A){var e=Ml(t);if(DM(t))return e;if(!Kd(t)){for(var i=jC(t);i&&!zf(i);){if(t0(i)&&!LJ(i))return i;i=jC(i)}return e}for(var n=A2e(t,A);n&&EWe(n)&&LJ(n);)n=A2e(n,A);return n&&zf(n)&&LJ(n)&&!gY(n)?e:n||function(o){for(var r=jC(o);Kd(r)&&!zf(r);){if(gY(r))return r;if(DM(r))return null;r=jC(r)}return null}(t)||e}var bWe={convertOffsetParentRelativeRectToViewportRelativeRect:function(t){var{elements:A,rect:e,offsetParent:i,strategy:n}=t,o=n==="fixed",r=Fd(i),s=!!A&&DM(A.floating);if(i===r||s&&o)return e;var a={scrollLeft:0,scrollTop:0},c=Ld(1),l=Ld(0),d=Kd(i);if((d||!d&&!o)&&((AQ(i)!=="body"||zp(r))&&(a=JM(i)),Kd(i))){var C=dh(i);c=Pf(i),l.x=C.x+i.clientLeft,l.y=C.y+i.clientTop}var I=!r||d||o?Ld(0):T1e(r,a,!0);return{width:e.width*c.x,height:e.height*c.y,x:e.x*c.x-a.scrollLeft*c.x+l.x+I.x,y:e.y*c.y-a.scrollTop*c.y+l.y+I.y}},getDocumentElement:Fd,getClippingRect:function(t){var{element:A,boundary:e,rootBoundary:i,strategy:n}=t,o=[...e==="clippingAncestors"?DM(A)?[]:function(a,c){var l=c.get(a);if(l)return l;for(var d=Pp(a,[],!1).filter(f=>t0(f)&&AQ(f)!=="body"),C=null,I=i0(a).position==="fixed",u=I?jC(a):a;t0(u)&&!zf(u);){var h=i0(u),B=gY(u);B||h.position!=="fixed"||(C=null),(I?!B&&!C:!B&&h.position==="static"&&C&&DWe.has(C.position)||zp(u)&&!B&&O1e(a,u))?d=d.filter(f=>f!==u):C=h,u=jC(u)}return c.set(a,d),d}(A,this._c):[].concat(e),i],r=o[0],s=o.reduce((a,c)=>{var l=e2e(A,c,n);return a.top=oh(l.top,a.top),a.right=pM(l.right,a.right),a.bottom=pM(l.bottom,a.bottom),a.left=oh(l.left,a.left),a},e2e(A,r,n));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},getOffsetParent:t2e,getElementRects:function(){var t=Vt(function*(A){var e=this.getOffsetParent||t2e,i=this.getDimensions,n=yield i(A.floating);return{reference:vWe(A.reference,yield e(A.floating),A.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}});return function(A){return t.apply(this,arguments)}}(),getClientRects:function(t){return Array.from(t.getClientRects())},getDimensions:function(t){var{width:A,height:e}=K1e(t);return{width:A,height:e}},getScale:Pf,isElement:t0,isRTL:function(t){return i0(t).direction==="rtl"}};function i2e(t,A){return t.x===A.x&&t.y===A.y&&t.width===A.width&&t.height===A.height}function MWe(t,A,e,i){i===void 0&&(i={});var{ancestorScroll:n=!0,ancestorResize:o=!0,elementResize:r=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:a=!1}=i,c=jY(t),l=n||o?[...c?Pp(c):[],...Pp(A)]:[];l.forEach(B=>{n&&B.addEventListener("scroll",e,{passive:!0}),o&&B.addEventListener("resize",e)});var d,C=c&&s?function(B,f){var b,k=null,S=Fd(B);function w(){var _;clearTimeout(b),(_=k)==null||_.disconnect(),k=null}return function _(K,J){K===void 0&&(K=!1),J===void 0&&(J=1),w();var O=B.getBoundingClientRect(),{left:H,top:V,width:Z,height:ye}=O;if(K||f(),Z&&ye){var P={rootMargin:-Zb(V)+"px "+-Zb(S.clientWidth-(H+Z))+"px "+-Zb(S.clientHeight-(V+ye))+"px "+-Zb(H)+"px",threshold:oh(0,pM(1,J))||1},se=!0;try{k=new IntersectionObserver(X,SA(SA({},P),{},{root:S.ownerDocument}))}catch{k=new IntersectionObserver(X,P)}k.observe(B)}function X(ue){var oe=ue[0].intersectionRatio;if(oe!==J){if(!se)return _();oe?_(!1,oe):b=setTimeout(()=>{_(!1,1e-7)},1e3)}oe!==1||i2e(O,B.getBoundingClientRect())||_(),se=!1}}(!0),w}(c,e):null,I=-1,u=null;r&&(u=new ResizeObserver(B=>{var[f]=B;f&&f.target===c&&u&&(u.unobserve(A),cancelAnimationFrame(I),I=requestAnimationFrame(()=>{var b;(b=u)==null||b.observe(A)})),e()}),c&&!a&&u.observe(c),u.observe(A));var h=a?dh(t):null;return a&&function B(){var f=dh(t);h&&!i2e(h,f)&&e(),h=f,d=requestAnimationFrame(B)}(),e(),()=>{var B;l.forEach(f=>{n&&f.removeEventListener("scroll",e),o&&f.removeEventListener("resize",e)}),C?.(),(B=u)==null||B.disconnect(),u=null,a&&cancelAnimationFrame(d)}}var SWe=function(t){return t===void 0&&(t=0),{name:"offset",options:t,fn:A=>Vt(function*(){var e,i,{x:n,y:o,placement:r,middlewareData:s}=A,a=yield function(c,l){return lY.apply(this,arguments)}(A,t);return r===((e=s.offset)==null?void 0:e.placement)&&(i=s.arrow)!=null&&i.alignmentOffset?{}:{x:n+a.x,y:o+a.y,data:SA(SA({},a),{},{placement:r})}})()}},kWe=function(t){return t===void 0&&(t={}),{name:"shift",options:t,fn:A=>Vt(function*(){var{x:e,y:i,placement:n}=A,o=UM(t,A),{mainAxis:r=!0,crossAxis:s=!1,limiter:a={fn:k=>{var{x:S,y:w}=k;return{x:S,y:w}}}}=o,c=g2e(o,uVe),l={x:e,y:i},d=yield L1e(A,c),C=PC(gh(n)),I=_1e(C),u=l[I],h=l[C];if(r){var B=I==="y"?"bottom":"right";u=qde(u+d[I==="y"?"top":"left"],u,u-d[B])}if(s){var f=C==="y"?"bottom":"right";h=qde(h+d[C==="y"?"top":"left"],h,h-d[f])}var b=a.fn(SA(SA({},A),{},{[I]:u,[C]:h}));return SA(SA({},b),{},{data:{x:b.x-e,y:b.y-i,enabled:{[I]:r,[C]:s}}})})()}},xWe=function(t){return t===void 0&&(t={}),{name:"flip",options:t,fn:A=>Vt(function*(){var e,i,{placement:n,middlewareData:o,rects:r,initialPlacement:s,platform:a,elements:c}=A,l=UM(t,A),{mainAxis:d=!0,crossAxis:C=!0,fallbackPlacements:I,fallbackStrategy:u="bestFit",fallbackAxisSideDirection:h="none",flipAlignment:B=!0}=l,f=g2e(l,IVe);if((e=o.arrow)!=null&&e.alignmentOffset)return{};var b=gh(n),k=PC(s),S=gh(s)===s,w=yield a.isRTL==null?void 0:a.isRTL(c.floating),_=I||(S||!B?[Xb(s)]:function(me){var Te=Xb(me);return[aY(me),Te,aY(Te)]}(s)),K=h!=="none";!I&&K&&_.push(...dWe(s,B,h,w));var J=[s,..._],O=yield L1e(A,f),H=[],V=((i=o.flip)==null?void 0:i.overflows)||[];if(d&&H.push(O[b]),C){var Z=function(me,Te,$e){$e===void 0&&($e=!1);var Je=TM(me),Qe=N1e(me),He=R1e(Qe),PA=Qe==="x"?Je===($e?"end":"start")?"right":"left":Je==="start"?"bottom":"top";return Te.reference[He]>Te.floating[He]&&(PA=Xb(PA)),[PA,Xb(PA)]}(n,r,w);H.push(O[Z[0]],O[Z[1]])}if(V=[...V,{placement:n,overflows:H}],!H.every(me=>me<=0)){var ye,P,se=(((ye=o.flip)==null?void 0:ye.index)||0)+1,X=J[se];if(X&&(!(C==="alignment"&&k!==PC(X))||V.every(me=>me.overflows[0]>0&&PC(me.placement)===k)))return{data:{index:se,overflows:V},reset:{placement:X}};var ue=(P=V.filter(me=>me.overflows[0]<=0).sort((me,Te)=>me.overflows[1]-Te.overflows[1])[0])==null?void 0:P.placement;if(!ue)switch(u){case"bestFit":var oe,le=(oe=V.filter(me=>{if(K){var Te=PC(me.placement);return Te===k||Te==="y"}return!0}).map(me=>[me.placement,me.overflows.filter(Te=>Te>0).reduce((Te,$e)=>Te+$e,0)]).sort((me,Te)=>me[1]-Te[1])[0])==null?void 0:oe[0];le&&(ue=le);break;case"initialPlacement":ue=s}if(n!==ue)return{reset:{placement:ue}}}return{}})()}};function _We(t){var A,e,i={autoUpdate:!0},n=t,o=a=>SA(SA(SA({},i),t||{}),a||{}),r=a=>{A&&e&&(n=o(a),((c,l,d)=>{var C=new Map,I=SA({platform:bWe},d),u=SA(SA({},I.platform),{},{_c:C});return IWe(c,l,SA(SA({},I),{},{platform:u}))})(A,e,n).then(c=>{var l;Object.assign(e.style,{position:c.strategy,left:"".concat(c.x,"px"),top:"".concat(c.y,"px")}),!((l=n)===null||l===void 0)&&l.onComputed&&n.onComputed(c)}))},s=a=>{gg(a.subscribe(c=>{A===void 0?(A=c,r()):(Object.assign(A,c),r())}))};return[a=>{if("subscribe"in a)return s(a),{};A=a,r()},(a,c)=>{var l;e=a,n=o(c),setTimeout(()=>r(c),0),r(c);var d=()=>{l&&(l(),l=void 0)},C=function(){var{autoUpdate:I}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:n||{};d(),I!==!1&&function(){return O2e.apply(this,arguments)}().then(()=>MWe(A,e,()=>r(n),I===!0?{}:I))};return l=C(),{update(I){r(I),l=C(I)},destroy(){d()}}},r]}function RWe(t){var{loadOptions:A,filterText:e,items:i,multiple:n,value:o,itemId:r,groupBy:s,filterSelectedItems:a,itemFilter:c,convertStringItemsToObjects:l,filterGroupedItems:d,label:C}=t;if(i&&A)return i;if(!i)return[];i&&i.length>0&&typeof i[0]!="object"&&(i=l(i));var I=i.filter(u=>{var h=c(u[C],e,u);return h&&n&&o!=null&&o.length&&(h=!o.some(B=>!!a&&B[r]===u[r])),h});return s&&(I=d(I)),I}function NWe(t){return J1e.apply(this,arguments)}function J1e(){return(J1e=Vt(function*(t){var{dispatch:A,loadOptions:e,convertStringItemsToObjects:i,filterText:n}=t,o=yield e(n).catch(r=>{console.warn("svelte-select loadOptions error :>> ",r),A("error",{type:"loadOptions",details:r})});if(o&&!o.cancelled)return o?(o&&o.length>0&&typeof o[0]!="object"&&(o=i(o)),A("loaded",{items:o})):o=[],{filteredItems:o,loading:!1,focused:!0,listOpen:!0}})).apply(this,arguments)}Zt(` + svg.svelte-qbd276 { + width: var(--chevron-icon-width, 20px); + height: var(--chevron-icon-width, 20px); + color: var(--chevron-icon-colour, currentColor); + } +`);var LWe=sI(``);Zt(` + svg.svelte-whdbu1 { + width: var(--clear-icon-width, 20px); + height: var(--clear-icon-width, 20px); + color: var(--clear-icon-color, currentColor); + } +`);var FWe=sI(``);function FJ(t){he(t,FWe())}Zt(` + .loading.svelte-1p3nqvd { + width: var(--spinner-width, 20px); + height: var(--spinner-height, 20px); + color: var(--spinner-color, var(--icons-color)); + animation: svelte-1p3nqvd-rotate 0.75s linear infinite; + transform-origin: center center; + transform: none; + } + + .circle_path.svelte-1p3nqvd { + stroke-dasharray: 90; + stroke-linecap: round; + } + + @keyframes svelte-1p3nqvd-rotate { + 100% { + transform: rotate(360deg); + } + } +`);var GWe=sI('');Zt(` + .svelte-select.svelte-82qwg8 { + /* deprecating camelCase custom props in favour of kebab-case for v5 */ + --borderRadius: var(--border-radius); + --clearSelectColor: var(--clear-select-color); + --clearSelectWidth: var(--clear-select-width); + --disabledBackground: var(--disabled-background); + --disabledBorderColor: var(--disabled-border-color); + --disabledColor: var(--disabled-color); + --disabledPlaceholderColor: var(--disabled-placeholder-color); + --disabledPlaceholderOpacity: var(--disabled-placeholder-opacity); + --errorBackground: var(--error-background); + --errorBorder: var(--error-border); + --groupItemPaddingLeft: var(--group-item-padding-left); + --groupTitleColor: var(--group-title-color); + --groupTitleFontSize: var(--group-title-font-size); + --groupTitleFontWeight: var(--group-title-font-weight); + --groupTitlePadding: var(--group-title-padding); + --groupTitleTextTransform: var(--group-title-text-transform); + --groupTitleBorderColor: var(--group-title-border-color); + --groupTitleBorderWidth: var(--group-title-border-width); + --groupTitleBorderStyle: var(--group-title-border-style); + --indicatorColor: var(--chevron-color); + --indicatorHeight: var(--chevron-height); + --indicatorWidth: var(--chevron-width); + --inputColor: var(--input-color); + --inputLeft: var(--input-left); + --inputLetterSpacing: var(--input-letter-spacing); + --inputMargin: var(--input-margin); + --inputPadding: var(--input-padding); + --itemActiveBackground: var(--item-active-background); + --itemColor: var(--item-color); + --itemFirstBorderRadius: var(--item-first-border-radius); + --itemHoverBG: var(--item-hover-bg); + --itemHoverColor: var(--item-hover-color); + --itemIsActiveBG: var(--item-is-active-bg); + --itemIsActiveColor: var(--item-is-active-color); + --itemIsNotSelectableColor: var(--item-is-not-selectable-color); + --itemPadding: var(--item-padding); + --listBackground: var(--list-background); + --listBorder: var(--list-border); + --listBorderRadius: var(--list-border-radius); + --listEmptyColor: var(--list-empty-color); + --listEmptyPadding: var(--list-empty-padding); + --listEmptyTextAlign: var(--list-empty-text-align); + --listMaxHeight: var(--list-max-height); + --listPosition: var(--list-position); + --listShadow: var(--list-shadow); + --listZIndex: var(--list-z-index); + --multiItemBG: var(--multi-item-bg); + --multiItemBorderRadius: var(--multi-item-border-radius); + --multiItemDisabledHoverBg: var(--multi-item-disabled-hover-bg); + --multiItemDisabledHoverColor: var(--multi-item-disabled-hover-color); + --multiItemHeight: var(--multi-item-height); + --multiItemMargin: var(--multi-item-margin); + --multiItemPadding: var(--multi-item-padding); + --multiSelectInputMargin: var(--multi-select-input-margin); + --multiSelectInputPadding: var(--multi-select-input-padding); + --multiSelectPadding: var(--multi-select-padding); + --placeholderColor: var(--placeholder-color); + --placeholderOpacity: var(--placeholder-opacity); + --selectedItemPadding: var(--selected-item-padding); + --spinnerColor: var(--spinner-color); + --spinnerHeight: var(--spinner-height); + --spinnerWidth: var(--spinner-width); + + --internal-padding: 0 0 0 16px; + + border: var(--border, 1px solid #d8dbdf); + border-radius: var(--border-radius, 6px); + min-height: var(--height, 42px); + position: relative; + display: flex; + align-items: stretch; + padding: var(--padding, var(--internal-padding)); + background: var(--background, #fff); + margin: var(--margin, 0); + width: var(--width, 100%); + font-size: var(--font-size, 16px); + max-height: var(--max-height); + } + + .svelte-82qwg8 { + box-sizing: var(--box-sizing, border-box); + } + + .svelte-select.svelte-82qwg8:hover { + border: var(--border-hover, 1px solid #b2b8bf); + } + + .value-container.svelte-82qwg8 { + display: flex; + flex: 1 1 0%; + flex-wrap: wrap; + align-items: center; + gap: 5px 10px; + padding: var(--value-container-padding, 5px 0); + position: relative; + overflow: var(--value-container-overflow, hidden); + align-self: stretch; + } + + .prepend.svelte-82qwg8, + .indicators.svelte-82qwg8 { + display: flex; + flex-shrink: 0; + align-items: center; + } + + .indicators.svelte-82qwg8 { + position: var(--indicators-position); + top: var(--indicators-top); + right: var(--indicators-right); + bottom: var(--indicators-bottom); + } + + input.svelte-82qwg8 { + position: absolute; + cursor: default; + border: none; + color: var(--input-color, var(--item-color)); + padding: var(--input-padding, 0); + letter-spacing: var(--input-letter-spacing, inherit); + margin: var(--input-margin, 0); + min-width: 10px; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: transparent; + font-size: var(--font-size, 16px); + } + + .svelte-82qwg8:not(.multi) > .value-container:where(.svelte-82qwg8) > input:where(.svelte-82qwg8) { + width: 100%; + height: 100%; + } + + input.svelte-82qwg8::placeholder { + color: var(--placeholder-color, #78848f); + opacity: var(--placeholder-opacity, 1); + } + + input.svelte-82qwg8:focus { + outline: none; + } + + .svelte-select.focused.svelte-82qwg8 { + border: var(--border-focused, 1px solid #006fe8); + border-radius: var(--border-radius-focused, var(--border-radius, 6px)); + } + + .disabled.svelte-82qwg8 { + background: var(--disabled-background, #ebedef); + border-color: var(--disabled-border-color, #ebedef); + color: var(--disabled-color, #c1c6cc); + } + + .disabled.svelte-82qwg8 input:where(.svelte-82qwg8)::placeholder { + color: var(--disabled-placeholder-color, #c1c6cc); + opacity: var(--disabled-placeholder-opacity, 1); + } + + .selected-item.svelte-82qwg8 { + position: relative; + overflow: var(--selected-item-overflow, hidden); + padding: var(--selected-item-padding, 0 20px 0 0); + text-overflow: ellipsis; + white-space: nowrap; + color: var(--selected-item-color, inherit); + font-size: var(--font-size, 16px); + } + + .multi.svelte-82qwg8 .selected-item:where(.svelte-82qwg8) { + position: absolute; + line-height: var(--height, 42px); + height: var(--height, 42px); + } + + .selected-item.svelte-82qwg8:focus { + outline: none; + } + + .hide-selected-item.svelte-82qwg8 { + opacity: 0; + } + + .icon.svelte-82qwg8 { + display: flex; + align-items: center; + justify-content: center; + } + + .clear-select.svelte-82qwg8 { + all: unset; + display: flex; + align-items: center; + justify-content: center; + width: var(--clear-select-width, 40px); + height: var(--clear-select-height, 100%); + color: var(--clear-select-color, var(--icons-color)); + margin: var(--clear-select-margin, 0); + pointer-events: all; + flex-shrink: 0; + } + + .clear-select.svelte-82qwg8:focus { + outline: var(--clear-select-focus-outline, 1px solid #006fe8); + } + + .loading.svelte-82qwg8 { + width: var(--loading-width, 40px); + height: var(--loading-height); + color: var(--loading-color, var(--icons-color)); + margin: var(--loading--margin, 0); + flex-shrink: 0; + } + + .chevron.svelte-82qwg8 { + width: var(--chevron-width, 40px); + height: var(--chevron-height, 40px); + background: var(--chevron-background, transparent); + pointer-events: var(--chevron-pointer-events, none); + color: var(--chevron-color, var(--icons-color)); + border: var(--chevron-border, 0 0 0 1px solid #d8dbdf); + flex-shrink: 0; + } + + .multi.svelte-82qwg8 { + padding: var(--multi-select-padding, var(--internal-padding)); + } + + .multi.svelte-82qwg8 input:where(.svelte-82qwg8) { + padding: var(--multi-select-input-padding, 0); + position: relative; + margin: var(--multi-select-input-margin, 5px 0); + flex: 1 1 40px; + } + + .svelte-select.error.svelte-82qwg8 { + border: var(--error-border, 1px solid #ff2d55); + background: var(--error-background, #fff); + } + + .a11y-text.svelte-82qwg8 { + z-index: 9999; + border: 0px; + clip: rect(1px, 1px, 1px, 1px); + height: 1px; + width: 1px; + position: absolute; + overflow: hidden; + padding: 0px; + white-space: nowrap; + } + + .multi-item.svelte-82qwg8 { + background: var(--multi-item-bg, #ebedef); + margin: var(--multi-item-margin, 0); + outline: var(--multi-item-outline, 1px solid #ddd); + border-radius: var(--multi-item-border-radius, 4px); + height: var(--multi-item-height, 25px); + line-height: var(--multi-item-height, 25px); + display: flex; + cursor: default; + padding: var(--multi-item-padding, 0 5px); + overflow: hidden; + gap: var(--multi-item-gap, 4px); + outline-offset: -1px; + max-width: var(--multi-max-width, none); + color: var(--multi-item-color, var(--item-color)); + } + + .multi-item.disabled.svelte-82qwg8:hover { + background: var(--multi-item-disabled-hover-bg, #ebedef); + color: var(--multi-item-disabled-hover-color, #c1c6cc); + } + + .multi-item-text.svelte-82qwg8 { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .multi-item-clear.svelte-82qwg8 { + display: flex; + align-items: center; + justify-content: center; + --clear-icon-color: var(--multi-item-clear-icon-color, #000); + } + + .multi-item.active.svelte-82qwg8 { + outline: var(--multi-item-active-outline, 1px solid #006fe8); + } + + .svelte-select-list.svelte-82qwg8 { + box-shadow: var(--list-shadow, 0 2px 3px 0 rgba(44, 62, 80, 0.24)); + border-radius: var(--list-border-radius, 4px); + max-height: var(--list-max-height, 252px); + overflow-y: auto; + background: var(--list-background, #fff); + position: var(--list-position, absolute); + z-index: var(--list-z-index, 2); + border: var(--list-border); + } + + .prefloat.svelte-82qwg8 { + opacity: 0; + pointer-events: none; + } + + .list-group-title.svelte-82qwg8 { + color: var(--group-title-color, #8f8f8f); + cursor: default; + font-size: var(--group-title-font-size, 16px); + font-weight: var(--group-title-font-weight, 600); + height: var(--height, 42px); + line-height: var(--height, 42px); + padding: var(--group-title-padding, 0 20px); + text-overflow: ellipsis; + overflow-x: hidden; + white-space: nowrap; + text-transform: var(--group-title-text-transform, uppercase); + border-width: var(--group-title-border-width, medium); + border-style: var(--group-title-border-style, none); + border-color: var(--group-title-border-color, color); + } + + .empty.svelte-82qwg8 { + text-align: var(--list-empty-text-align, center); + padding: var(--list-empty-padding, 20px 0); + color: var(--list-empty-color, #78848f); + } + + .item.svelte-82qwg8 { + cursor: default; + height: var(--item-height, var(--height, 42px)); + line-height: var(--item-line-height, var(--height, 42px)); + padding: var(--item-padding, 0 20px); + color: var(--item-color, inherit); + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + transition: var(--item-transition, all 0.2s); + align-items: center; + width: 100%; + } + + .item.group-item.svelte-82qwg8 { + padding-left: var(--group-item-padding-left, 40px); + } + + .item.svelte-82qwg8:active { + background: var(--item-active-background, #b9daff); + } + + .item.active.svelte-82qwg8 { + background: var(--item-is-active-bg, #007aff); + color: var(--item-is-active-color, #fff); + } + + .item.first.svelte-82qwg8 { + border-radius: var(--item-first-border-radius, 4px 4px 0 0); + } + + .item.hover.svelte-82qwg8:not(.active) { + background: var(--item-hover-bg, #e7f2ff); + color: var(--item-hover-color, inherit); + } + + .item.not-selectable.svelte-82qwg8, + .item.hover.item.not-selectable.svelte-82qwg8, + .item.active.item.not-selectable.svelte-82qwg8, + .item.not-selectable.svelte-82qwg8:active { + color: var(--item-is-not-selectable-color, #999); + background: transparent; + } + + .required.svelte-82qwg8 { + opacity: 0; + z-index: -1; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + } +`);var KWe=_e('
              '),UWe=_e('
              No options
              '),TWe=_e('
              '),OWe=_e(' ',1),JWe=_e('
              '),YWe=_e('
              '),HWe=_e("
              "),zWe=_e(''),PWe=_e(''),jWe=_e(''),VWe=_e(''),qWe=_e(''),WWe=_e('
              ');function eh(t,A){var e=function(fe){var ke={};for(var Xe in fe.children&&(ke.default=!0),fe.$$slots)ke[Xe]=!0;return ke}(A);St(A,!1);var i,n=Ce(),o=Ce(),r=Ce(),s=Ce(),a=Ce(),c=Ce(),l=Ce(),d=Ce(),C=Ce(),I=OVe(),u=N(A,"justValue",12,null),h=N(A,"filter",8,RWe),B=N(A,"getItems",8,NWe),f=N(A,"id",8,null),b=N(A,"name",8,null),k=N(A,"container",12,void 0),S=N(A,"input",12,void 0),w=N(A,"multiple",8,!1),_=N(A,"multiFullItemClearable",8,!1),K=N(A,"disabled",8,!1),J=N(A,"focused",12,!1),O=N(A,"value",12,null),H=N(A,"filterText",12,""),V=N(A,"placeholder",8,"Please select"),Z=N(A,"placeholderAlwaysShow",8,!1),ye=N(A,"items",12,null),P=N(A,"label",8,"label"),se=N(A,"itemFilter",8,(fe,ke,Xe)=>"".concat(fe).toLowerCase().includes(ke.toLowerCase())),X=N(A,"groupBy",8,void 0),ue=N(A,"groupFilter",8,fe=>fe),oe=N(A,"groupHeaderSelectable",8,!1),le=N(A,"itemId",8,"value"),me=N(A,"loadOptions",8,void 0),Te=N(A,"containerStyles",8,""),$e=N(A,"hasError",8,!1),Je=N(A,"filterSelectedItems",8,!0),Qe=N(A,"required",8,!1),He=N(A,"closeListOnChange",8,!0),PA=N(A,"clearFilterTextOnBlur",8,!0),JA=N(A,"createGroupHeaderItem",8,(fe,ke)=>({value:fe,[P()]:fe})),Ye=()=>g(l),Ie=N(A,"searchable",8,!0),We=N(A,"inputStyles",8,""),we=N(A,"clearable",8,!0),Ze=N(A,"loading",12,!1),Ge=N(A,"listOpen",12,!1),LA=N(A,"debounce",8,function(fe){var ke=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;clearTimeout(i),i=setTimeout(fe,ke)}),Fe=N(A,"debounceWait",8,300),pe=N(A,"hideEmptyState",8,!1),Wt=N(A,"inputAttributes",24,()=>({})),Qt=N(A,"listAutoWidth",8,!0),BA=N(A,"showChevron",8,!1),_t=N(A,"listOffset",8,5),VA=N(A,"hoverItemIndex",12,0),YA=N(A,"floatingConfig",24,()=>({})),Jt=N(A,"class",8,""),KA=Ce(),di=Ce(),G=Ce(),z=Ce(),Ae=Ce();function de(fe){return fe.map((ke,Xe)=>({index:Xe,value:ke,label:"".concat(ke)}))}function Ne(fe){var ke=[],Xe={};fe.forEach(Gt=>{var $t=X()(Gt);ke.includes($t)||(ke.push($t),Xe[$t]=[],$t&&Xe[$t].push(Object.assign(JA()($t,Gt),{id:$t,groupHeader:!0,selectable:oe()}))),Xe[$t].push(Object.assign({groupItem:!!$t},Gt))});var qA=[];return ue()(ke).forEach(Gt=>{Xe[Gt]&&qA.push(...Xe[Gt])}),qA}function pA(){var fe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,ke=arguments.length>1?arguments[1]:void 0;VA(fe<0?0:fe),!ke&&X()&&g(l)[VA()]&&!g(l)[VA()].selectable&&Di(1)}function vA(){var fe=!0;if(O()){var ke=[],Xe=[];O().forEach(qA=>{ke.includes(qA[le()])?fe=!1:(ke.push(qA[le()]),Xe.push(qA))}),fe||O(Xe)}return fe}function Ke(fe){var ke=fe?fe[le()]:O()[le()];return ye().find(Xe=>Xe[le()]===ke)}function Re(fe){return wt.apply(this,arguments)}function wt(){return(wt=Vt(function*(fe){var ke=O()[fe];O().length===1?O(void 0):O(O().filter(Xe=>Xe!==ke)),I("clear",ke)})).apply(this,arguments)}function st(fe){if(J())switch(fe.stopPropagation(),fe.key){case"Escape":fe.preventDefault(),HA();break;case"Enter":if(fe.preventDefault(),Ge()){if(g(l).length===0)break;var ke=g(l)[VA()];if(O()&&!w()&&O()[le()]===ke[le()]){HA();break}L(g(l)[VA()])}break;case"ArrowDown":fe.preventDefault(),Ge()?Di(1):(Ge(!0),x(KA,void 0));break;case"ArrowUp":fe.preventDefault(),Ge()?Di(-1):(Ge(!0),x(KA,void 0));break;case"Tab":if(Ge()&&J()){if(g(l).length===0||O()&&O()[le()]===g(l)[VA()][le()])return HA();fe.preventDefault(),L(g(l)[VA()]),HA()}break;case"Backspace":if(!w()||H().length>0)return;if(w()&&O()&&O().length>0){if(Re(g(KA)!==void 0?g(KA):O().length-1),g(KA)===0||g(KA)===void 0)break;x(KA,O().length>g(KA)?g(KA)-1:void 0)}break;case"ArrowLeft":if(!O()||!w()||H().length>0)return;g(KA)===void 0?x(KA,O().length-1):O().length>g(KA)&&g(KA)!==0&&x(KA,g(KA)-1);break;case"ArrowRight":if(!O()||!w()||H().length>0||g(KA)===void 0)return;g(KA)===O().length-1?x(KA,void 0):g(KA)0?Ge(!0):void Ge(!Ge())}function dn(){I("clear",O()),O(void 0),HA(),nA()}function HA(){PA()&&H(""),Ge(!1)}JVe(Vt(function*(){x(di,O()),x(G,H()),x(z,w())})),ua(()=>{Ge()&&J(!0),J()&&S()&&S().focus()});var Cn=N(A,"ariaValues",8,fe=>"Option ".concat(fe,", selected.")),Gi=N(A,"ariaListOpen",8,(fe,ke)=>"You are currently focused on option ".concat(fe,". There are ").concat(ke," results available.")),oi=N(A,"ariaFocused",8,()=>"Select is focused, type to refine list, press down to open the menu."),Yt,xi=Ce(null);function Pi(){clearTimeout(Yt),Yt=setTimeout(()=>{Xt=!1},100)}gg(()=>{var fe;(fe=g(xi))===null||fe===void 0||fe.remove()});var Xt=!1;function L(fe){fe&&fe.selectable!==!1&&function(ke){if(ke){H("");var Xe=Object.assign({},ke);if(Xe.groupHeader&&!Xe.selectable)return;O(w()?O()?O().concat([Xe]):[Xe]:O(Xe)),setTimeout(()=>{He()&&HA(),x(KA,void 0),I("change",O()),I("select",ke)})}}(fe)}function ct(fe){Xt||VA(fe)}function Di(fe){if(g(l).filter(Xe=>!Object.hasOwn(Xe,"selectable")||Xe.selectable===!0).length===0)return VA(0);fe>0&&VA()===g(l).length-1?VA(0):fe<0&&VA()===0?VA(g(l).length-1):VA(VA()+fe);var ke=g(l)[VA()];ke&&ke.selectable===!1&&(fe!==1&&fe!==-1||Di(fe))}function mn(fe,ke,Xe){if(!w())return ke&&ke[Xe]===fe[Xe]}var pn=$o,so=$o;function $o(fe){return{update(ke){ke.scroll&&(Pi(),fe.scrollIntoView({behavior:"auto",block:"nearest"}))}}}var Ao=Ce({strategy:"absolute",placement:"bottom-start",middleware:[SWe(_t()),xWe(),kWe()],autoUpdate:!1}),[Fn,Qr,mr]=_We(g(Ao)),zo=Ce(!0);Se(()=>(F(ye()),F(O())),()=>{ye(),O()&&function(){if(typeof O()=="string"){var fe=(ye()||[]).find(ke=>ke[le()]===O());O(fe||{[le()]:O(),label:O()})}else w()&&Array.isArray(O())&&O().length>0&&O(O().map(ke=>typeof ke=="string"?{value:ke,label:ke}:ke))}()}),Se(()=>(F(Wt()),F(Ie())),()=>{!Wt()&&Ie()||(x(Ae,Object.assign({autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:!1,tabindex:0,type:"text","aria-autocomplete":"list"},Wt())),f()&&vl(Ae,g(Ae).id=f()),Ie()||vl(Ae,g(Ae).readonly=!0))}),Se(()=>F(w()),()=>{w()&&O()&&(Array.isArray(O())?O([...O()]):O([O()]))}),Se(()=>(g(z),F(w())),()=>{g(z)&&!w()&&O()&&O(null)}),Se(()=>(F(w()),F(O())),()=>{w()&&O()&&O().length>1&&vA()}),Se(()=>F(O()),()=>{O()&&(w()?JSON.stringify(O())!==JSON.stringify(g(di))&&vA()&&I("input",O()):g(di)&&JSON.stringify(O()[le()])===JSON.stringify(g(di)[le()])||I("input",O()))}),Se(()=>(F(O()),F(w()),g(di)),()=>{!O()&&w()&&g(di)&&I("input",O())}),Se(()=>(F(J()),F(S())),()=>{!J()&&S()&&HA()}),Se(()=>(F(H()),g(G)),()=>{H()!==g(G)&&(me()||H().length!==0)&&(me()?LA()(Vt(function*(){Ze(!0);var fe=yield B()({dispatch:I,loadOptions:me(),convertStringItemsToObjects:de,filterText:H()});fe?(Ze(fe.loading),Ge(Ge()?fe.listOpen:H().length>0),J(Ge()&&fe.focused),ye(X()?Ne(fe.filteredItems):fe.filteredItems)):(Ze(!1),J(!0),Ge(!0))}),Fe()):(Ge(!0),w()&&x(KA,void 0)))}),Se(()=>(F(h()),F(me()),F(H()),F(ye()),F(w()),F(O()),F(le()),F(X()),F(P()),F(Je()),F(se())),()=>{x(l,h()({loadOptions:me(),filterText:H(),items:ye(),multiple:w(),value:O(),itemId:le(),groupBy:X(),label:P(),filterSelectedItems:Je(),itemFilter:se(),convertStringItemsToObjects:de,filterGroupedItems:Ne}))}),Se(()=>(F(w()),F(Ge()),F(O()),g(l)),()=>{!w()&&Ge()&&O()&&g(l)&&pA(g(l).findIndex(fe=>fe[le()]===O()[le()]),!0)}),Se(()=>(F(Ge()),F(w())),()=>{Ge()&&w()&&VA(0)}),Se(()=>F(H()),()=>{H()&&VA(0)}),Se(()=>F(VA()),()=>{var fe;fe=VA(),I("hoverItem",fe)}),Se(()=>(F(w()),F(O())),()=>{x(n,w()?O()&&O().length>0:O())}),Se(()=>(g(n),F(H())),()=>{x(o,g(n)&&H().length>0)}),Se(()=>(g(n),F(we()),F(K()),F(Ze())),()=>{x(r,g(n)&&we()&&!K()&&!Ze())}),Se(()=>(F(Z()),F(w()),F(V()),F(O())),()=>{var fe;x(s,Z()&&w()||w()&&((fe=O())===null||fe===void 0?void 0:fe.length)===0?V():O()?"":V())}),Se(()=>(F(O()),F(w())),()=>{var fe,ke;x(a,O()?(fe=w(),ke=void 0,ke=fe&&O().length>0?O().map(Xe=>Xe[P()]).join(", "):O()[P()],Cn()(ke)):"")}),Se(()=>(g(l),F(VA()),F(J()),F(Ge())),()=>{x(c,function(){if(!g(l)||g(l).length===0)return"";var fe=g(l)[VA()];if(Ge()&&fe){var ke=g(l)?g(l).length:0;return Gi()(fe[P()],ke)}return oi()()}((g(l),VA(),J(),Ge())))}),Se(()=>F(ye()),()=>{(function(fe){fe&&fe.length!==0&&!fe.some(ke=>typeof ke!="object")&&O()&&(w()?!O().some(ke=>!ke||!ke[le()]):O()[le()])&&(Array.isArray(O())?O(O().map(ke=>Ke(ke)||ke)):O(Ke()||O()))})(ye())}),Se(()=>(F(w()),F(O()),F(le())),()=>{u((w(),O(),le(),w()?O()?O().map(fe=>fe[le()]):null:O()?O()[le()]:O()))}),Se(()=>(F(w()),g(di),F(O())),()=>{w()||!g(di)||O()||I("input",O())}),Se(()=>(F(Ge()),g(l),F(w()),F(O())),()=>{Ge()&&g(l)&&!w()&&!O()&&pA()}),Se(()=>g(l),()=>{(function(fe){Ge()&&I("filter",fe)})(g(l))}),Se(()=>(F(k()),F(YA()),g(Ao)),()=>{k()&&YA()&&mr(Object.assign(g(Ao),YA()))}),Se(()=>g(xi),()=>{x(d,!!g(xi))}),Se(()=>(g(xi),F(Ge())),()=>{(function(fe,ke){if(!fe||!ke)return x(zo,!0);setTimeout(()=>{x(zo,!1)},0)})(g(xi),Ge())}),Se(()=>(F(Ge()),F(k()),g(xi)),()=>{Ge()&&k()&&g(xi)&&function(){var{width:fe}=k().getBoundingClientRect();vl(xi,g(xi).style.width=Qt()?fe+"px":"auto")}()}),Se(()=>F(VA()),()=>{x(C,VA())}),Se(()=>(F(S()),F(Ge()),F(J())),()=>{S()&&Ge()&&!J()&&nA()}),Se(()=>(F(k()),F(YA())),()=>{var fe;k()&&((fe=YA())===null||fe===void 0?void 0:fe.autoUpdate)===void 0&&vl(Ao,g(Ao).autoUpdate=!0)}),Nn(),li();var On,ho=WWe();QA("click",V2,function(fe){var ke;Ge()||J()||!k()||k().contains(fe.target)||(ke=g(xi))!==null&&ke!==void 0&&ke.contains(fe.target)||Bt()}),QA("keydown",V2,st);var sA=ge(ho),_i=fe=>{var ke,Xe=TWe(),qA=ge(Xe),Gt=Tt=>{var Xi=ar();Er(Ut(Xi),A,"list-prepend",{},null),he(Tt,Xi)};ze(qA,Tt=>{Be(()=>e["list-prepend"])&&Tt(Gt)});var $t=De(qA,2),Sn=Tt=>{var Xi=ar();Er(Ut(Xi),A,"list",{get filteredItems(){return g(l)}},null),he(Tt,Xi)},So=(Tt,Xi)=>{var to=Hn=>{var ZA=ar();fr(Ut(ZA),1,()=>g(l),Jr,(Ri,Ki,io)=>{var lr,ri=KWe(),fs=ge(ri);Er(ge(fs),A,"item",{get item(){return g(Ki)},index:io},Eo=>{var Q=Ss();xA(()=>xt(Q,(g(Ki),F(P()),Be(()=>{var D;return(D=g(Ki))===null||D===void 0?void 0:D[P()]})))),he(Eo,Q)}),Ka(fs,(Eo,Q)=>pn?.(Eo),()=>({scroll:mn(g(Ki),O(),le()),listDom:g(d)})),Ka(fs,(Eo,Q)=>so?.(Eo),()=>({scroll:g(C)===io,listDom:g(d)})),xA(Eo=>lr=ci(fs,1,"item svelte-82qwg8",null,lr,Eo),[()=>{var Eo,Q;return{"list-group-title":g(Ki).groupHeader,active:mn(g(Ki),O(),le()),first:(Q=io,Q===0),hover:VA()===io,"group-item":g(Ki).groupItem,"not-selectable":((Eo=g(Ki))===null||Eo===void 0?void 0:Eo.selectable)===!1}}],tA),QA("mouseover",ri,()=>ct(io)),QA("focus",ri,()=>ct(io)),QA("click",ri,O2(()=>function(Eo){var{item:Q,i:D}=Eo;if(Q?.selectable!==!1)return O()&&!w()&&O()[le()]===Q[le()]?HA():void(function(R){return R.groupHeader&&R.selectable||R.selectable||!R.hasOwnProperty("selectable")}(Q)&&(VA(D),L(Q)))}({item:g(Ki),i:io}))),QA("keydown",ri,TC(O2(function(Eo){kp.call(this,A,Eo)}))),he(Ri,ri)}),he(Hn,ZA)},vt=(Hn,ZA)=>{var Ri=Ki=>{var io=ar();Er(Ut(io),A,"empty",{},lr=>{he(lr,UWe())}),he(Ki,io)};ze(Hn,Ki=>{pe()||Ki(Ri)},ZA)};ze(Tt,Hn=>{g(l),Be(()=>g(l).length>0)?Hn(to):Hn(vt,!1)},Xi)};ze($t,Tt=>{Be(()=>e.list)?Tt(Sn):Tt(So,!1)});var kn=De($t,2),on=Tt=>{var Xi=ar();Er(Ut(Xi),A,"list-append",{},null),he(Tt,Xi)};ze(kn,Tt=>{Be(()=>e["list-append"])&&Tt(on)}),Ka(Xe,Tt=>Qr?.(Tt)),Ho(Xe,Tt=>x(xi,Tt),()=>g(xi)),zs(()=>QA("scroll",Xe,Pi)),zs(()=>QA("pointerup",Xe,TC(O2(function(Tt){kp.call(this,A,Tt)})))),zs(()=>QA("mousedown",Xe,TC(O2(function(Tt){kp.call(this,A,Tt)})))),xA(Tt=>ke=ci(Xe,1,"svelte-select-list svelte-82qwg8",null,ke,Tt),[()=>({prefloat:g(zo)})],tA),he(fe,Xe)};ze(sA,fe=>{Ge()&&fe(_i)});var Zi=De(sA,2),Jn=ge(Zi),Bo=fe=>{var ke=OWe(),Xe=Ut(ke),qA=ge(Xe),Gt=ge(De(Xe,2));xA(()=>{xt(qA,g(a)),xt(Gt,g(c))}),he(fe,ke)};ze(Jn,fe=>{J()&&fe(Bo)});var pr=De(Zi,2);Er(ge(pr),A,"prepend",{},null);var Mi=De(pr,2),Mo=ge(Mi),wr=fe=>{var ke=ar(),Xe=Ut(ke),qA=$t=>{var Sn=ar();fr(Ut(Sn),1,O,Jr,(So,kn,on)=>{var Tt,Xi=YWe(),to=ge(Xi);Er(ge(to),A,"selection",{get selection(){return g(kn)},index:on},ZA=>{var Ri=Ss();xA(()=>xt(Ri,(g(kn),F(P()),Be(()=>g(kn)[P()])))),he(ZA,Ri)});var vt=De(to,2),Hn=ZA=>{var Ri=JWe();Er(ge(Ri),A,"multi-clear-icon",{},Ki=>{FJ(Ki)}),QA("pointerup",Ri,TC(O2(()=>Re(on)))),he(ZA,Ri)};ze(vt,ZA=>{K()||_()||!FJ||ZA(Hn)}),xA(ZA=>Tt=ci(Xi,1,"multi-item svelte-82qwg8",null,Tt,ZA),[()=>({active:g(KA)===on,disabled:K()})],tA),QA("click",Xi,TC(()=>_()?Re(on):{})),QA("keydown",Xi,TC(O2(function(ZA){kp.call(this,A,ZA)}))),he(So,Xi)}),he($t,Sn)},Gt=$t=>{var Sn,So=HWe();Er(ge(So),A,"selection",{get selection(){return O()}},kn=>{var on=Ss();xA(()=>xt(on,(F(O()),F(P()),Be(()=>O()[P()])))),he(kn,on)}),xA(kn=>Sn=ci(So,1,"selected-item svelte-82qwg8",null,Sn,kn),[()=>({"hide-selected-item":g(o)})],tA),he($t,So)};ze(Xe,$t=>{w()?$t(qA):$t(Gt,!1)}),he(fe,ke)};ze(Mo,fe=>{g(n)&&fe(wr)});var yr=De(Mo,2);nM(yr,()=>SA(SA({readOnly:!Ie()},g(Ae)),{},{placeholder:g(s),style:We(),disabled:K()}),void 0,"svelte-82qwg8"),Ho(yr,fe=>S(fe),()=>S());var Nr=De(Mi,2),Mn=ge(Nr),wn=fe=>{var ke=zWe();Er(ge(ke),A,"loading-icon",{},Xe=>{(function(qA){he(qA,GWe())})(Xe)}),he(fe,ke)};ze(Mn,fe=>{Ze()&&fe(wn)});var Ft=De(Mn,2),Yn=fe=>{var ke=PWe();Er(ge(ke),A,"clear-icon",{},Xe=>{FJ(Xe)}),QA("click",ke,dn),he(fe,ke)};ze(Ft,fe=>{g(r)&&fe(Yn)});var Me=De(Ft,2),gA=fe=>{var ke=jWe();Er(ge(ke),A,"chevron-icon",{get listOpen(){return Ge()}},Xe=>{(function(qA){he(qA,LWe())})(Xe)}),he(fe,ke)};ze(Me,fe=>{BA()&&fe(gA)});var EA=De(Nr,2);Er(EA,A,"input-hidden",{get value(){return O()}},fe=>{var ke=VWe();xA(Xe=>{Rn(ke,"name",b()),ah(ke,Xe)},[()=>(F(O()),Be(()=>O()?JSON.stringify(O()):null))],tA),he(fe,ke)});var zA=De(EA,2),bA=fe=>{var ke=ar();Er(Ut(ke),A,"required",{get value(){return O()}},Xe=>{he(Xe,qWe())}),he(fe,ke)};return ze(zA,fe=>{F(Qe()),F(O()),Be(()=>Qe()&&(!O()||O().length===0))&&fe(bA)}),zs(()=>QA("pointerup",ho,TC(Qn))),Ho(ho,fe=>k(fe),()=>k()),Ka(ho,fe=>Fn?.(fe)),xA(fe=>{var ke;On=ci(ho,1,"svelte-select ".concat((ke=Jt())!==null&&ke!==void 0?ke:""),"svelte-82qwg8",On,fe),cg(ho,Te())},[()=>({multi:w(),disabled:K(),focused:J(),"list-open":Ge(),"show-chevron":BA(),error:$e()})],tA),QA("keydown",yr,st),QA("blur",yr,Bt),QA("focus",yr,nA),CM(yr,H),he(t,ho),jt(A,"getFilteredItems",Ye),jt(A,"handleClear",dn),kt({getFilteredItems:Ye,handleClear:dn})}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +table.jse-transform-wizard.svelte-qbze6z { + border-collapse: collapse; + border-spacing: 0; + width: 100%; +} +table.jse-transform-wizard.svelte-qbze6z input:where(.svelte-qbze6z) { + font-family: inherit; + font-size: inherit; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) th:where(.svelte-qbze6z) { + font-weight: normal; + text-align: left; + width: 60px; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) { + width: 100%; + display: flex; + flex-direction: row; + margin-bottom: calc(0.5 * var(--jse-padding, 10px)); +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select .multi-item { + align-items: center; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select .value-container { + gap: 0 !important; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-filter-path { + flex: 4; + margin-right: calc(0.5 * var(--jse-padding, 10px)); +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-filter-relation { + flex: 1.5; + margin-right: calc(0.5 * var(--jse-padding, 10px)); +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-sort-path { + flex: 3; + margin-right: calc(0.5 * var(--jse-padding, 10px)); +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-sort-direction { + flex: 1; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select.jse-projection-paths { + flex: 1; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .svelte-select input { + box-sizing: border-box; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .jse-filter-value:where(.svelte-qbze6z) { + flex: 4; + padding: 4px 8px; + border: var(--jse-input-border, 1px solid #d8dbdf); + border-radius: var(--jse-input-radius, 3px); + outline: none; + background: var(--jse-input-background, var(--jse-background-color, #fff)); + color: inherit; +} +table.jse-transform-wizard.svelte-qbze6z tr:where(.svelte-qbze6z) td:where(.svelte-qbze6z) .jse-horizontal:where(.svelte-qbze6z) .jse-filter-value:where(.svelte-qbze6z):focus { + border: var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa))); +}`);var ZWe=_e('
              Filter
              Sort
              Pick
              ');function XWe(t,A){var e,i,n,o,r;St(A,!1);var s=Ce(void 0,!0),a=Ce(void 0,!0),c=Ce(void 0,!0),l=Ce(void 0,!0),d=Ce(void 0,!0),C=Ce(void 0,!0),I=Es("jsoneditor:TransformWizard"),u=N(A,"json",9),h=N(A,"queryOptions",29,()=>({})),B=N(A,"onChange",9),f=["==","!=","<","<=",">",">="].map(Je=>({value:Je,label:Je})),b=[{value:"asc",label:"ascending"},{value:"desc",label:"descending"}],k=Ce((e=h())!==null&&e!==void 0&&(e=e.filter)!==null&&e!==void 0&&e.path?YC(h().filter.path):void 0,!0),S=Ce((i=f.find(Je=>{var Qe;return Je.value===((Qe=h().filter)===null||Qe===void 0?void 0:Qe.relation)}))!==null&&i!==void 0?i:f[0],!0),w=Ce(((n=h())===null||n===void 0||(n=n.filter)===null||n===void 0?void 0:n.value)||"",!0),_=Ce((o=h())!==null&&o!==void 0&&(o=o.sort)!==null&&o!==void 0&&o.path?YC(h().sort.path):void 0,!0),K=Ce((r=b.find(Je=>{var Qe;return Je.value===((Qe=h().sort)===null||Qe===void 0?void 0:Qe.direction)}))!==null&&r!==void 0?r:b[0],!0);Se(()=>F(u()),()=>{x(s,Array.isArray(u()))}),Se(()=>(g(s),F(u())),()=>{x(a,g(s)?XJ(u()):[])}),Se(()=>(g(s),F(u())),()=>{x(c,g(s)?XJ(u(),!0):[])}),Se(()=>(g(a),YC),()=>{x(l,g(a).map(YC))}),Se(()=>(g(c),YC),()=>{x(d,g(c)?g(c).map(YC):[])}),Se(()=>(F(h()),g(d),wi),()=>{var Je;x(C,(Je=h())!==null&&Je!==void 0&&(Je=Je.projection)!==null&&Je!==void 0&&Je.paths&&g(d)?h().projection.paths.map(Qe=>g(d).find(He=>wi(He.value,Qe))).filter(Qe=>!!Qe):void 0)}),Se(()=>g(k),()=>{var Je,Qe,He;Qe=(Je=g(k))===null||Je===void 0?void 0:Je.value,wi((He=h())===null||He===void 0||(He=He.filter)===null||He===void 0?void 0:He.path,Qe)||(I("changeFilterPath",Qe),h(ra(h(),["filter","path"],Qe,!0)),B()(h()))}),Se(()=>g(S),()=>{var Je,Qe,He;Qe=(Je=g(S))===null||Je===void 0?void 0:Je.value,wi((He=h())===null||He===void 0||(He=He.filter)===null||He===void 0?void 0:He.relation,Qe)||(I("changeFilterRelation",Qe),h(ra(h(),["filter","relation"],Qe,!0)),B()(h()))}),Se(()=>g(w),()=>{var Je,Qe;Je=g(w),wi((Qe=h())===null||Qe===void 0||(Qe=Qe.filter)===null||Qe===void 0?void 0:Qe.value,Je)||(I("changeFilterValue",Je),h(ra(h(),["filter","value"],Je,!0)),B()(h()))}),Se(()=>g(_),()=>{var Je,Qe,He;Qe=(Je=g(_))===null||Je===void 0?void 0:Je.value,wi((He=h())===null||He===void 0||(He=He.sort)===null||He===void 0?void 0:He.path,Qe)||(I("changeSortPath",Qe),h(ra(h(),["sort","path"],Qe,!0)),B()(h()))}),Se(()=>g(K),()=>{var Je,Qe,He;Qe=(Je=g(K))===null||Je===void 0?void 0:Je.value,wi((He=h())===null||He===void 0||(He=He.sort)===null||He===void 0?void 0:He.direction,Qe)||(I("changeSortDirection",Qe),h(ra(h(),["sort","direction"],Qe,!0)),B()(h()))}),Se(()=>g(C),()=>{(function(Je){var Qe;wi((Qe=h())===null||Qe===void 0||(Qe=Qe.projection)===null||Qe===void 0?void 0:Qe.paths,Je)||(I("changeProjectionPaths",Je),h(ra(h(),["projection","paths"],Je,!0)),B()(h()))})(g(C)?g(C).map(Je=>Je.value):void 0)}),Nn(),li(!0);var J=ZWe(),O=ge(J),H=ge(O),V=De(ge(H)),Z=ge(V),ye=ge(Z);eh(ye,{class:"jse-filter-path",showChevron:!0,get items(){return g(l)},get value(){return g(k)},set value(Je){x(k,Je)},$$legacy:!0});var P=De(ye,2);eh(P,{class:"jse-filter-relation",showChevron:!0,clearable:!1,get items(){return f},get value(){return g(S)},set value(Je){x(S,Je)},$$legacy:!0});var se=De(P,2),X=De(H),ue=De(ge(X)),oe=ge(ue),le=ge(oe);eh(le,{class:"jse-sort-path",showChevron:!0,get items(){return g(l)},get value(){return g(_)},set value(Je){x(_,Je)},$$legacy:!0}),eh(De(le,2),{class:"jse-sort-direction",showChevron:!0,clearable:!1,get items(){return b},get value(){return g(K)},set value(Je){x(K,Je)},$$legacy:!0});var me=De(X),Te=De(ge(me)),$e=ge(Te);eh(ge($e),{class:"jse-projection-paths",multiple:!0,showChevron:!0,get items(){return g(d)},get value(){return g(C)},set value(Je){x(C,Je)},$$legacy:!0}),CM(se,()=>g(w),Je=>x(w,Je)),he(t,J),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-select-query-language.svelte-atm4um { + position: relative; + width: 32px; +} +.jse-select-query-language.svelte-atm4um .jse-select-query-language-container:where(.svelte-atm4um) { + position: absolute; + top: 0; + right: 0; + display: flex; + flex-direction: column; + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); +} +.jse-select-query-language.svelte-atm4um .jse-select-query-language-container:where(.svelte-atm4um) .jse-query-language:where(.svelte-atm4um) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + text-align: left; + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + white-space: nowrap; + color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); + background: var(--jse-context-menu-background, #656565); +} +.jse-select-query-language.svelte-atm4um .jse-select-query-language-container:where(.svelte-atm4um) .jse-query-language:where(.svelte-atm4um):hover { + background: var(--jse-context-menu-background-highlight, #7a7a7a); +}`);var $We=_e(''),eZe=_e('
              ');function AZe(t,A){St(A,!1);var e=N(A,"queryLanguages",8),i=N(A,"queryLanguageId",12),n=N(A,"onChangeQueryLanguage",8);li();var o=eZe();fr(ge(o),5,e,Jr,(r,s)=>{var a,c=$We(),l=ge(c),d=u=>{nn(u,{get data(){return QG}})},C=u=>{nn(u,{get data(){return mG}})};ze(l,u=>{g(s),F(i()),Be(()=>g(s).id===i())?u(d):u(C,!1)});var I=De(l);xA(u=>{var h;a=ci(c,1,"jse-query-language svelte-atm4um",null,a,u),Rn(c,"title",(g(s),Be(()=>"Select ".concat(g(s).name," as query language")))),xt(I," ".concat((g(s),(h=Be(()=>g(s).name))!==null&&h!==void 0?h:"")))},[()=>({selected:g(s).id===i()})],tA),QA("click",c,()=>{return u=g(s).id,i(u),void n()(u);var u}),he(r,c)}),he(t,o),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-header.svelte-1y24war { + display: flex; + background: var(--jse-theme-color, #3883fa); + color: var(--jse-menu-color, var(--jse-text-color-inverse, #fff)); +} +.jse-header.svelte-1y24war .jse-title:where(.svelte-1y24war) { + flex: 1; + padding: 5px; + vertical-align: middle; +} +.jse-header.svelte-1y24war button:where(.svelte-1y24war) { + border: none; + background: transparent; + min-width: 32px; + color: inherit; + cursor: pointer; +} +.jse-header.svelte-1y24war button:where(.svelte-1y24war):hover { + background: rgba(255, 255, 255, 0.1); +}`);var tZe=_e(''),iZe=_e('
              ');function vM(t,A){St(A,!1);var e=N(A,"title",9,"Modal"),i=N(A,"fullScreenButton",9,!1),n=N(A,"fullscreen",13,!1),o=N(A,"onClose",9,void 0);li(!0);var r=iZe(),s=ge(r),a=ge(s),c=De(s,2);Er(c,A,"actions",{},null);var l=De(c,2),d=I=>{var u=tZe(),h=ge(u),B=tA(()=>n()?soe:poe);nn(h,{get data(){return g(B)}}),QA("click",u,()=>n(!n())),he(I,u)};ze(l,I=>{i()&&I(d)});var C=De(l,2);nn(ge(C),{get data(){return r3}}),xA(()=>xt(a,e())),QA("click",C,()=>{var I;return(I=o())===null||I===void 0?void 0:I()}),he(t,r),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-config.svelte-1kpylsp { + border: none; + background: transparent; + min-width: 32px; + color: inherit; + cursor: pointer; +} +.jse-config.svelte-1kpylsp:hover { + background: rgba(255, 255, 255, 0.1); +} +.jse-config.hide.svelte-1kpylsp { + display: none; +}`);var nZe=_e(''),GJ=Es("jsoneditor:AutoScrollHandler");function n2e(t){var A,e;function i(s){return s<20?200:s<50?400:1200}function n(){if(t){var s=.05*(A||0);t.scrollTop+=s}}function o(s){e&&s===A||(r(),GJ("startAutoScroll",s),A=s,e=setInterval(n,50))}function r(){e&&(GJ("stopAutoScroll"),clearInterval(e),e=void 0,A=void 0)}return GJ("createAutoScrollHandler",t),{onDrag:function(s){if(t){var a=s.clientY,{top:c,bottom:l}=t.getBoundingClientRect();al?o(i(a-l)):r()}},onDragEnd:function(){r()}}}var oZe=(t,A,e,i)=>(t/=i/2)<1?e/2*t*t+A:-e/2*(--t*(t-2)-1)+A,Y1e=()=>{var t,A,e,i,n,o,r,s,a,c,l,d,C;function I(B){return B.getBoundingClientRect().top-(t.getBoundingClientRect?t.getBoundingClientRect().top:0)+e}function u(B){t.scrollTo?t.scrollTo(t.scrollLeft,B):t.scrollTop=B}function h(B){c||(c=B),u(o(l=B-c,e,s,a)),C=!0,l1&&arguments[1]!==void 0?arguments[1]:{};switch(a=1e3,n=f.offset||0,d=f.callback,o=f.easing||oZe,r=f.a11y||!1,typeof f.container){case"object":t=f.container;break;case"string":t=document.querySelector(f.container);break;default:t=window.document.documentElement}switch(e=t.scrollTop,typeof B){case"number":A=void 0,r=!1,i=e+B;break;case"object":i=I(A=B);break;case"string":A=document.querySelector(B),i=I(A)}switch(s=i-e+n,typeof f.duration){case"number":a=f.duration;break;case"function":a=f.duration(s)}C?c=0:requestAnimationFrame(h)}};function Yf(t,A){var e=Date.now(),i=t();return A(Date.now()-e),i}var Kf=Es("validation"),rZe={createObjectDocumentState:()=>({type:"object",properties:{}}),createArrayDocumentState:()=>({type:"array",items:[]}),createValueDocumentState:()=>({type:"value"})};function o2e(t,A,e,i){return JY(t,A,e,i,rZe)}function H1e(t,A,e,i){if(Kf("validateJSON"),!A)return[];if(e!==i){var n=e.stringify(t);return A(n!==void 0?i.parse(n):void 0)}return A(t)}function sZe(t,A,e,i){if(Kf("validateText"),t.length>104857600)return{validationErrors:[{path:[],message:"Validation turned off: the document is too large",severity:e0.info}]};if(t.length!==0)try{var n=Yf(()=>e.parse(t),a=>Kf("validate: parsed json in ".concat(a," ms")));if(!A)return;var o=e===i?n:Yf(()=>i.parse(t),a=>Kf("validate: parsed json with the validationParser in ".concat(a," ms"))),r=Yf(()=>A(o),a=>Kf("validate: validated json in ".concat(a," ms")));return An(r)?void 0:{validationErrors:r}}catch(a){var s=Yf(()=>function(c,l){if(c.length>Lqe)return!1;try{return l.parse(jl(c)),!0}catch{return!1}}(t,e),c=>Kf("validate: checked whether repairable in ".concat(c," ms")));return{parseError:Wf(t,a.message||a.toString()),isRepairable:s}}}var $b=Es("jsoneditor:FocusTracker");function qY(t){var A,{onMount:e,onDestroy:i,getWindow:n,hasFocus:o,onFocus:r,onBlur:s}=t,a=!1;function c(){var d=o();d&&(clearTimeout(A),a||($b("focus"),r(),a=d))}function l(){a&&(clearTimeout(A),A=setTimeout(()=>{o()||($b("blur"),a=!1,s())}))}e(()=>{$b("mount FocusTracker");var d=n();d&&(d.addEventListener("focusin",c,!0),d.addEventListener("focusout",l,!0))}),i(()=>{$b("destroy FocusTracker");var d=n();d&&(d.removeEventListener("focusin",c,!0),d.removeEventListener("focusout",l,!0))})}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-message.svelte-czprfx { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + padding: var(--jse-padding, 10px); + display: flex; + gap: var(--jse-padding, 10px); + flex-wrap: wrap; + align-items: stretch; +} +.jse-message.jse-success.svelte-czprfx { + background: var(--message-success-background, #9ac45d); + color: var(--jse-message-success-color, #fff); +} +.jse-message.svelte-czprfx .jse-text:where(.svelte-czprfx) { + display: flex; + flex: 1; + min-width: 60%; + align-items: center; +} +.jse-message.svelte-czprfx .jse-text.jse-clickable:where(.svelte-czprfx) { + cursor: pointer; +} +.jse-message.svelte-czprfx .jse-text.jse-clickable:where(.svelte-czprfx):hover { + background-color: rgba(255, 255, 255, 0.1); +} +.jse-message.jse-error.svelte-czprfx { + background: var(--jse-message-error-background, var(--jse-error-color, #ee5341)); + color: var(--jse-message-error-color, #fff); +} +.jse-message.jse-warning.svelte-czprfx { + background: var(--jse-message-warning-background, #ffde5c); + color: var(--jse-message-warning-color, #4d4d4d); +} +.jse-message.jse-info.svelte-czprfx { + background: var(--jse-message-info-background, #4f91ff); + color: var(--jse-message-info-color, #fff); +} +.jse-message.svelte-czprfx .jse-actions:where(.svelte-czprfx) { + display: flex; + gap: var(--jse-padding, 10px); +} +.jse-message.svelte-czprfx .jse-actions:where(.svelte-czprfx) button.jse-action:where(.svelte-czprfx) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-message-action-background, rgba(255, 255, 255, 0.2)); + color: inherit; + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); +} +.jse-message.svelte-czprfx .jse-actions:where(.svelte-czprfx) button.jse-action:where(.svelte-czprfx):hover { + background: var(--jse-message-action-background-highlight, rgba(255, 255, 255, 0.3)); +}`);var aZe=_e(''),cZe=_e('
              ');function Sl(t,A){St(A,!1);var e=N(A,"type",9,"success"),i=N(A,"icon",9,void 0),n=N(A,"message",9,void 0),o=N(A,"actions",25,()=>[]),r=N(A,"onClick",9,void 0),s=N(A,"onClose",9,void 0);s()&&gg(s()),li(!0);var a,c=cZe(),l=ge(c),d=ge(l),C=ge(d),I=h=>{nn(h,{get data(){return i()}})};ze(C,h=>{i()&&h(I)});var u=De(C);fr(De(l,2),5,o,Jr,(h,B)=>{var f=aZe(),b=ge(f),k=w=>{nn(w,{get data(){return g(B),Be(()=>g(B).icon)}})};ze(b,w=>{g(B),Be(()=>g(B).icon)&&w(k)});var S=De(b);xA(()=>{var w;Rn(f,"title",(g(B),Be(()=>g(B).title))),f.disabled=(g(B),Be(()=>g(B).disabled)),xt(S," ".concat((g(B),(w=Be(()=>g(B).text))!==null&&w!==void 0?w:"")))}),QA("click",f,()=>{g(B).onClick&&g(B).onClick()}),QA("mousedown",f,()=>{g(B).onMouseDown&&g(B).onMouseDown()}),he(h,f)}),xA(h=>{var B,f;ci(c,1,"jse-message jse-".concat((B=e())!==null&&B!==void 0?B:""),"svelte-czprfx"),a=ci(l,1,"jse-text svelte-czprfx",null,a,h),xt(u," ".concat((f=n())!==null&&f!==void 0?f:""))},[()=>({"jse-clickable":!!r()})],tA),QA("click",l,function(){r()&&r()()}),he(t,c),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-validation-errors-overview.svelte-1uindol { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + overflow: auto; + max-height: 25%; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) { + border-collapse: collapse; + width: 100%; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) { + cursor: pointer; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-error:where(.svelte-1uindol) { + background: var(--jse-message-error-background, var(--jse-error-color, #ee5341)); + color: var(--jse-message-error-color, #fff); +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-warning:where(.svelte-1uindol) { + background: var(--jse-message-warning-background, #ffde5c); + color: var(--jse-message-warning-color, #4d4d4d); +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-warning:where(.svelte-1uindol):hover { + filter: brightness(105%); +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr.jse-validation-info:where(.svelte-1uindol) { + background: var(--jse-message-info-background, #4f91ff); + color: var(--jse-message-info-color, #fff); +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol):hover { + filter: brightness(110%); +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td:where(.svelte-1uindol) { + padding: 4px var(--jse-padding, 10px); + vertical-align: middle; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-icon:where(.svelte-1uindol) { + width: 36px; + box-sizing: border-box; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-action:where(.svelte-1uindol) { + width: 36px; + box-sizing: border-box; + padding: 0; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-action:where(.svelte-1uindol) button.jse-validation-errors-collapse:where(.svelte-1uindol) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + width: 36px; + height: 26px; + cursor: pointer; +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td.jse-validation-error-action:where(.svelte-1uindol) button.jse-validation-errors-collapse:where(.svelte-1uindol):hover { + background-color: rgba(255, 255, 255, 0.2); +} +.jse-validation-errors-overview.svelte-1uindol table:where(.svelte-1uindol) tr:where(.svelte-1uindol) td:where(.svelte-1uindol) div.jse-validation-errors-expand:where(.svelte-1uindol) { + display: inline-block; + position: relative; + top: 3px; +}`);var lZe=_e(''),gZe=_e(' '),dZe=_e(' '),CZe=_e('
              '),IZe=_e('
              '),uZe=_e('
              ');function WY(t,A){St(A,!1);var e=Ce(void 0,!0),i=N(A,"validationErrors",9),n=N(A,"selectError",9),o=Ce(!0,!0);function r(){x(o,!1)}function s(){x(o,!0)}Se(()=>F(i()),()=>{x(e,i().length)}),Nn(),li(!0);var a=ar(),c=Ut(a),l=d=>{var C=uZe(),I=ge(C),u=B=>{var f=CZe(),b=ge(f),k=ge(b);fr(k,1,()=>(F(IM),F(i()),F(jb),Be(()=>IM(i(),jb))),Jr,(_,K,J)=>{var O=gZe(),H=ge(O);nn(ge(H),{get data(){return hC}});var V=De(H),Z=ge(V),ye=De(V),P=ge(ye),se=ge(De(ye)),X=ue=>{var oe=lZe();nn(ge(oe),{get data(){return Boe}}),QA("click",oe,O2(r)),he(ue,oe)};ze(se,ue=>{F(i()),Be(()=>J===0&&i().length>1)&&ue(X)}),xA(ue=>{var oe;ci(O,1,"jse-validation-".concat((g(K),(oe=Be(()=>g(K).severity))!==null&&oe!==void 0?oe:"")),"svelte-1uindol"),xt(Z,ue),xt(P,(g(K),Be(()=>g(K).message)))},[()=>(F(Yc),g(K),Be(()=>Yc(g(K).path)))],tA),QA("click",O,()=>{setTimeout(()=>n()(g(K)))}),he(_,O)});var S=De(k),w=_=>{var K=dZe(),J=De(ge(K),2),O=ge(J);xA(()=>xt(O,"(and ".concat(g(e)-jb," more errors)"))),he(_,K)};ze(S,_=>{g(e)>jb&&_(w)}),he(B,f)},h=B=>{var f=IZe(),b=ge(f),k=ge(b),S=ge(k);nn(ge(S),{get data(){return hC}});var w=ge(De(S));nn(ge(De(w)),{get data(){return yG}}),xA(_=>{var K;ci(k,1,"jse-validation-".concat(_??""),"svelte-1uindol"),xt(w,"".concat((K=g(e))!==null&&K!==void 0?K:""," validation errors "))},[()=>(F(i()),Be(()=>{return _=i(),[e0.error,e0.warning,e0.info].find(K=>_.some(J=>J.severity===K));var _}))],tA),QA("click",k,s),he(B,f)};ze(I,B=>{g(o)||g(e)===1?B(u):B(h,!1)}),he(d,C)};ze(c,d=>{F(An),F(i()),Be(()=>!An(i()))&&d(l)}),he(t,a),kt()}function bM(t,A){if(t)return t.addEventListener("keydown",e),{destroy(){t.removeEventListener("keydown",e)}};function e(i){i.key==="Escape"&&(i.preventDefault(),i.stopPropagation(),A())}}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +dialog.jse-modal.svelte-1s9c2ql { + border-radius: 3px; + font-size: var(--jse-padding, 10px); + border: none; + padding: 0; + display: flex; + min-width: 0; + margin: auto; + overflow: visible; + transition: width 0.1s ease-in-out, height 0.1s ease-in-out; +} +dialog.jse-modal.jse-sort-modal.svelte-1s9c2ql { + width: 400px; +} +dialog.jse-modal.jse-repair-modal.svelte-1s9c2ql { + width: 600px; + height: 500px; +} +dialog.jse-modal.jse-jsoneditor-modal.svelte-1s9c2ql { + width: 800px; + height: 600px; +} +dialog.jse-modal.jse-transform-modal.svelte-1s9c2ql { + width: 1200px; + height: 800px; +} +dialog.jse-modal.jse-fullscreen.svelte-1s9c2ql { + width: 100%; + height: 100%; +} +dialog.jse-modal.svelte-1s9c2ql::backdrop { + background: var(--jse-overlay-background, rgba(0, 0, 0, 0.3)); +} +dialog.jse-modal[open].svelte-1s9c2ql { + animation: svelte-1s9c2ql-zoom 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); +} +dialog.jse-modal[open].svelte-1s9c2ql::backdrop { + animation: svelte-1s9c2ql-fade 0.2s ease-out; +} +dialog.jse-modal.svelte-1s9c2ql .jse-modal-inner:where(.svelte-1s9c2ql) { + flex: 1; + display: flex; + flex-direction: column; + min-width: 0; + min-height: 0; + padding: 0; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + line-height: normal; + background: var(--jse-modal-background, #f5f5f5); + color: var(--jse-text-color, #4d4d4d); +} +@keyframes svelte-1s9c2ql-zoom { + from { + transform: scale(0.95); + } + to { + transform: scale(1); + } +} +@keyframes svelte-1s9c2ql-fade { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +dialog.jse-modal.svelte-1s9c2ql .svelte-select { + --border: var(--jse-svelte-select-border, 1px solid #d8dbdf); + --item-is-active-bg: var(--jse-item-is-active-bg, #3883fa); + --border-radius: var(--jse-svelte-select-border-radius, 3px); + --background: var(--jse-svelte-select-background, #fff); + --padding: var(--jse-svelte-select-padding, 0 10px); + --multi-select-padding: var(--jse-svelte-select-multi-select-padding, 0 10px); + --font-size: var(--jse-svelte-select-font-size, var(--jse-font-size, 16px)); + --height: 36px; + --multi-item-height: 28px; + --multi-item-margin: 2px; + --multi-item-padding: 2px 8px; + --multi-item-border-radius: 6px; + --indicator-top: 8px; +}`);var hZe=_e('
              ');function jp(t,A){St(A,!1);var e=N(A,"className",8,void 0),i=N(A,"fullscreen",8,!1),n=N(A,"onClose",8),o=Ce();function r(){n()()}ua(()=>g(o).showModal()),gg(()=>g(o).close()),li();var s,a=hZe(),c=ge(a);Er(ge(c),A,"default",{},null),Ho(a,l=>x(o,l),()=>g(o)),zs(()=>QA("close",a,r)),zs(()=>{return QA("pointerdown",a,(l=r,function(){for(var d=arguments.length,C=new Array(d),I=0;IQA("cancel",a,TC(function(l){kp.call(this,A,l)}))),Ka(a,(l,d)=>bM?.(l,d),()=>r),xA((l,d)=>s=ci(a,1,l,"svelte-1s9c2ql",s,d),[()=>AI((F(o0),F(e()),Be(()=>o0("jse-modal",e())))),()=>({"jse-fullscreen":i()})],tA),he(t,a),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-modal-contents.svelte-189qksl { + flex: 1; + display: flex; + flex-direction: column; + padding: 20px; + overflow: auto; + min-width: 0; + min-height: 0; +} +.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) { + display: flex; + flex-direction: row; + justify-content: flex-end; + padding-top: var(--jse-padding, 10px); +} +.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) button.jse-primary:where(.svelte-189qksl) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); + color: var(--jse-button-primary-color, #fff); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) button.jse-primary:where(.svelte-189qksl):hover { + background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); +} +.jse-modal-contents.svelte-189qksl .jse-actions:where(.svelte-189qksl) button.jse-primary:where(.svelte-189qksl):disabled { + background: var(--jse-button-primary-background-disabled, #9d9d9d); +} + +.jse-shortcuts.svelte-189qksl { + display: flex; + flex-wrap: wrap; + justify-content: space-around; + margin: calc(2 * var(--jse-padding, 10px)) 0; +} +.jse-shortcuts.svelte-189qksl .jse-shortcut:where(.svelte-189qksl) .jse-key:where(.svelte-189qksl) { + font-size: 200%; + color: var(--jse-theme-color, #3883fa); +}`);var BZe=_e('
              Clipboard permission is disabled by your browser. You can use:
              for copy
              for cut
              for paste
              ',1);function z1e(t,A){St(A,!1);var e=N(A,"onClose",9),i=NY()?"\u2318":"Ctrl";li(!0),jp(t,{get onClose(){return e()},className:"jse-copy-paste",children:(n,o)=>{var r=BZe(),s=Ut(r);vM(s,{title:"Copying and pasting",get onClose(){return e()}});var a=De(s,2),c=De(ge(a),2),l=ge(c),d=ge(l),C=ge(d),I=De(l,2),u=ge(I),h=ge(u),B=ge(De(I,2)),f=ge(B),b=ge(De(c,2));xA(()=>{xt(C,"".concat(i,"+C")),xt(h,"".concat(i,"+X")),xt(f,"".concat(i,"+V"))}),QA("click",b,function(){for(var k,S=arguments.length,w=new Array(S),_=0;_'),fZe=_e('
              '),QZe=_e(''),mZe=_e('
              ');function YM(t,A){St(A,!1);var e=N(A,"items",25,()=>[]);li(!0);var i=mZe(),n=ge(i);Er(n,A,"left",{},null);var o=De(n,2);fr(o,1,e,Jr,(r,s)=>{var a=ar(),c=Ut(a),l=C=>{he(C,EZe())},d=(C,I)=>{var u=B=>{he(B,fZe())},h=(B,f)=>{var b=S=>{var w=QZe(),_=ge(w),K=H=>{nn(H,{get data(){return g(s),Be(()=>g(s).icon)}})};ze(_,H=>{g(s),Be(()=>g(s).icon)&&H(K)});var J=De(_,2),O=H=>{var V=Ss();xA(()=>xt(V,(g(s),Be(()=>g(s).text)))),he(H,V)};ze(J,H=>{g(s),Be(()=>g(s).text)&&H(O)}),xA(()=>{var H;ci(w,1,"jse-button ".concat((g(s),(H=Be(()=>g(s).className))!==null&&H!==void 0?H:"")),"svelte-pf7s2l"),Rn(w,"title",(g(s),Be(()=>g(s).title))),w.disabled=(g(s),Be(()=>g(s).disabled||!1))}),QA("click",w,function(){for(var H,V=arguments.length,Z=new Array(V),ye=0;ye{var w=Ss();xA(_=>xt(w,_),[()=>(g(s),Be(()=>function(_){return console.error("Unknown type of menu item",_),"???"}(g(s))))],tA),he(S,w)};ze(B,S=>{F(J2),g(s),Be(()=>J2(g(s)))?S(b):S(k,!1)},f)};ze(C,B=>{F(tY),g(s),Be(()=>tY(g(s)))?B(u):B(h,!1)},I)};ze(c,C=>{F(JC),g(s),Be(()=>JC(g(s)))?C(l):C(d,!1)}),he(r,a)}),Er(De(o,2),A,"right",{},null),he(t,i),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-json-repair-component.svelte-3golau { + flex: 1; + display: flex; + flex-direction: column; + background: var(--jse-background-color, #fff); + color: var(--jse-text-color, #4d4d4d); +} +.jse-json-repair-component.svelte-3golau .jse-info:where(.svelte-3golau) { + padding: calc(0.5 * var(--jse-padding, 10px)); + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + vertical-align: center; +} +.jse-json-repair-component.svelte-3golau .jse-json-text:where(.svelte-3golau) { + flex: 1; + border: none; + padding: 2px; + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + background: var(--jse-input-background, var(--jse-background-color, #fff)); + color: var(--jse-text-color, #4d4d4d); + resize: none; + outline: none; +}`);var pZe=_e('
              Repair invalid JSON, then click apply
              '),wZe=_e('
              ');function yZe(t,A){St(A,!1);var e=Ce(void 0,!0),i=Ce(void 0,!0),n=Ce(void 0,!0),o=Ce(void 0,!0),r=Ce(void 0,!0),s=Ce(void 0,!0),a=N(A,"text",13,""),c=N(A,"readOnly",9,!1),l=N(A,"onParse",9),d=N(A,"onRepair",9),C=N(A,"onChange",9,void 0),I=N(A,"onApply",9),u=N(A,"onCancel",9),h=Es("jsoneditor:JSONRepair"),B=Ce(void 0,!0);function f(){if(g(B)&&g(e)){var V=g(e).position!==void 0?g(e).position:0;g(B).setSelectionRange(V,V),g(B).focus()}}function b(){I()(a())}function k(){try{a(d()(a())),C()&&C()(a())}catch{}}var S=Ce(void 0,!0);Se(()=>F(a()),()=>{x(e,function(V){try{return void l()(V)}catch(Z){return Wf(V,Z.message)}}(a()))}),Se(()=>F(a()),()=>{x(i,function(V){try{return d()(V),!0}catch{return!1}}(a()))}),Se(()=>g(e),()=>{h("error",g(e))}),Se(()=>F(u()),()=>{x(S,[{type:"space"},{type:"button",icon:r3,title:"Cancel repair",className:"jse-cancel",onClick:u()}])}),Se(()=>MG,()=>{x(n,{icon:MG,text:"Show me",title:"Scroll to the error location",onClick:f})}),Se(()=>b2,()=>{x(o,{icon:b2,text:"Auto repair",title:"Automatically repair JSON",onClick:k})}),Se(()=>(g(i),g(n),g(o)),()=>{x(r,g(i)?[g(n),g(o)]:[g(n)])}),Se(()=>F(c()),()=>{x(s,[{icon:Bv,text:"Apply",title:"Apply fixed JSON",disabled:c(),onClick:b}])}),Nn(),li(!0);var w=wZe(),_=ge(w);YM(_,{get items(){return g(S)},$$slots:{left:(V,Z)=>{he(V,pZe())}}});var K=De(_,2),J=V=>{var Z=tA(()=>(g(e),Be(()=>"Cannot parse JSON: ".concat(g(e).message))));Sl(V,{type:"error",get icon(){return hC},get message(){return g(Z)},get actions(){return g(r)}})},O=V=>{Sl(V,{type:"success",message:"JSON is valid now and can be parsed.",get actions(){return g(s)}})};ze(K,V=>{g(e)?V(J):V(O,!1)});var H=De(K,2);Ho(H,V=>x(B,V),()=>g(B)),xA(()=>{H.readOnly=c(),ah(H,a())}),QA("input",H,function(V){h("handleChange");var Z=V.target.value;a()!==Z&&(a(Z),C()&&C()(a()))}),he(t,w),kt()}function P1e(t,A){St(A,!1);var e=N(A,"text",13),i=N(A,"onParse",9),n=N(A,"onRepair",9),o=N(A,"onApply",9),r=N(A,"onClose",9);function s(c){o()(c),r()()}function a(){r()()}li(!0),jp(t,{get onClose(){return r()},className:"jse-repair-modal",children:(c,l)=>{yZe(c,{get onParse(){return i()},get onRepair(){return n()},onApply:s,onCancel:a,get text(){return e()},set text(d){e(d)},$$legacy:!0})},$$slots:{default:!0}}),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +div.jse-collapsed-items.svelte-1h6hzoq { + margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + color: var(--jse-collapsed-items-link-color, rgba(0, 0, 0, 0.38)); + padding: calc(0.5 * var(--jse-padding, 10px)); + border: 8px solid transparent; + border-width: 8px 0; + background-color: var(--jse-contents-background-color, transparent); + background-image: linear-gradient(var(--jse-collapsed-items-background-color, #f5f5f5), var(--jse-collapsed-items-background-color, #f5f5f5)), linear-gradient(to bottom right, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%), linear-gradient(to bottom left, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%), linear-gradient(to top right, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%), linear-gradient(to top left, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%); + background-repeat: repeat, repeat-x, repeat-x, repeat-x, repeat-x; + background-position: 0 0, 8px 0, 8px 0, 8px 100%, 8px 100%; + background-size: auto auto, 16px 16px, 16px 16px, 16px 16px, 16px 16px; + background-clip: padding-box, border-box, border-box, border-box, border-box; + background-origin: padding-box, border-box, border-box, border-box, border-box; + display: flex; +} +div.jse-collapsed-items.jse-selected.svelte-1h6hzoq { + background-color: var(--jse-selection-background-color, #d3d3d3); + --jse-collapsed-items-background-color: var(--jse-collapsed-items-selected-background-color, #c2c2c2); +} +div.jse-collapsed-items.svelte-1h6hzoq div.jse-text:where(.svelte-1h6hzoq), +div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq) { + margin: 0 calc(0.5 * var(--jse-padding, 10px)); +} +div.jse-collapsed-items.svelte-1h6hzoq div.jse-text:where(.svelte-1h6hzoq) { + display: inline; +} +div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq) { + font-family: inherit; + font-size: inherit; + color: var(--jse-collapsed-items-link-color, rgba(0, 0, 0, 0.38)); + background: none; + border: none; + padding: 0; + text-decoration: underline; + cursor: pointer; +} +div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq):hover, div.jse-collapsed-items.svelte-1h6hzoq button.jse-expand-items:where(.svelte-1h6hzoq):focus { + color: var(--jse-collapsed-items-link-color-highlight, #ee5341); +}`);var DZe=_e(''),vZe=_e('
              ');function bZe(t,A){St(A,!1);var e=Ce(void 0,!0),i=Ce(void 0,!0),n=Ce(void 0,!0),o=Ce(void 0,!0),r=Ce(void 0,!0),s=N(A,"visibleSections",9),a=N(A,"sectionIndex",9),c=N(A,"total",9),l=N(A,"path",9),d=N(A,"selection",9),C=N(A,"onExpandSection",9),I=N(A,"context",9);Se(()=>(F(s()),F(a())),()=>{x(e,s()[a()])}),Se(()=>g(e),()=>{x(i,g(e).end)}),Se(()=>(F(s()),F(a()),F(c())),()=>{x(n,s()[a()+1]?s()[a()+1].start:c())}),Se(()=>(F(I()),F(d()),F(l()),g(i)),()=>{x(o,Hp(I().getJson(),d(),l().concat(String(g(i)))))}),Se(()=>(g(i),g(n)),()=>{x(r,function(S,w){var _={start:S,end:Math.min(AY(S),w)},K=Math.max(hM((S+w)/2),S),J={start:K,end:Math.min(AY(K),w)},O=hM(w),H=O===w?O-Tp:O,V={start:Math.max(H,S),end:w},Z=[_],ye=J.start>=_.end&&J.end<=V.start;return ye&&Z.push(J),V.start>=(ye?J.end:_.end)&&Z.push(V),Z}(g(i),g(n)))}),Nn(),li(!0);var u,h,B=vZe(),f=ge(B),b=ge(f),k=ge(b);fr(De(b,2),1,()=>g(r),Jr,(S,w)=>{var _=DZe(),K=ge(_);xA(()=>{var J,O;return xt(K,"show ".concat((g(w),(J=Be(()=>g(w).start))!==null&&J!==void 0?J:""),"-").concat((g(w),(O=Be(()=>g(w).end))!==null&&O!==void 0?O:"")))}),QA("click",_,()=>C()(l(),g(w))),he(S,_)}),xA((S,w)=>{var _,K;u=ci(B,1,"jse-collapsed-items svelte-1h6hzoq",null,u,S),h=cg(B,"",h,w),xt(k,"Items ".concat((_=g(i))!==null&&_!==void 0?_:"","-").concat((K=g(n))!==null&&K!==void 0?K:""))},[()=>({"jse-selected":g(o)}),()=>({"--level":(F(l()),Be(()=>l().length+2))})],tA),QA("mousemove",B,function(S){S.stopPropagation()}),he(t,B),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-context-menu-pointer.svelte-137iwnw { + position: absolute; + top: calc(-0.5 * var(--jse-context-menu-pointer-size, calc(1em + 4px))); + right: calc(-0.5 * var(--jse-context-menu-pointer-size, calc(1em + 4px))); + width: var(--jse-context-menu-pointer-size, calc(1em + 4px)); + height: var(--jse-context-menu-pointer-size, calc(1em + 4px)); + padding: 0; + margin: 0; + cursor: pointer; + background: transparent; + border-radius: 2px; + background: var(--jse-context-menu-pointer-hover-background, #b2b2b2); + color: var(--jse-context-menu-pointer-color, var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff))); + border: none; + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); +} +.jse-context-menu-pointer.jse-root.svelte-137iwnw { + top: 0; + right: calc(-2px - var(--jse-context-menu-pointer-size, calc(1em + 4px))); +} +.jse-context-menu-pointer.jse-insert.svelte-137iwnw { + right: -1px; +} +.jse-context-menu-pointer.svelte-137iwnw:hover { + background: var(--jse-context-menu-pointer-background-highlight, var(--jse-context-menu-background-highlight, #7a7a7a)); +} +.jse-context-menu-pointer.jse-selected.svelte-137iwnw { + background: var(--jse-context-menu-pointer-background, var(--jse-context-menu-background, #656565)); +} +.jse-context-menu-pointer.jse-selected.svelte-137iwnw:hover { + background: var(--jse-context-menu-pointer-background-highlight, var(--jse-context-menu-background-highlight, #7a7a7a)); +}`);var MZe=_e('');function OC(t,A){St(A,!1);var e=N(A,"root",9,!1),i=N(A,"insert",9,!1),n=N(A,"selected",9),o=N(A,"onContextMenu",9);li(!0);var r,s=MZe();nn(ge(s),{get data(){return ld}}),xA(a=>{r=ci(s,1,"jse-context-menu-pointer svelte-137iwnw",null,r,a),Rn(s,"title",FY)},[()=>({"jse-root":e(),"jse-insert":i(),"jse-selected":n()})],tA),QA("click",s,function(a){for(var c=a.target;c&&c.nodeName!=="BUTTON";)c=c.parentNode;c&&o()({anchor:c,left:0,top:0,width:z2,height:H2,offsetTop:2,offsetLeft:0,showTip:!0})}),he(t,s),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-key.svelte-2iqnqn { + display: inline-block; + min-width: 2em; + padding: 0 5px; + box-sizing: border-box; + outline: none; + border-radius: 1px; + vertical-align: top; + color: var(--jse-key-color, #1a1a1a); + word-break: normal; + overflow-wrap: normal; + white-space: pre-wrap; +} +.jse-key.jse-empty.svelte-2iqnqn { + min-width: 3em; + outline: 1px dotted var(--jse-tag-background, rgba(0, 0, 0, 0.2)); + -moz-outline-radius: 2px; +} +.jse-key.jse-empty.svelte-2iqnqn::after { + pointer-events: none; + color: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); + content: "key"; +}`);var SZe=_e('
              '),kZe=_e(" ",1),xZe=_e('
              ');function j1e(t,A){St(A,!0);var e=Oc(()=>fn(A.selection)&&us(A.selection)),i=Oc(()=>A.context.onRenderValue({path:A.path,value:A.value,mode:A.context.mode,truncateTextSize:A.context.truncateTextSize,readOnly:A.context.readOnly,enforceString:A.enforceString,isEditing:g(e),parser:A.context.parser,normalization:A.context.normalization,selection:A.selection,searchResultItems:A.searchResultItems,onPatch:A.context.onPatch,onPasteJson:A.context.onPasteJson,onSelect:A.context.onSelect,onFind:A.context.onFind,findNextInside:A.context.findNextInside,focus:A.context.focus})),n=ar();fr(Ut(n),17,()=>g(i),Jr,(o,r)=>{var s=ar(),a=Ut(s),c=d=>{var C=xZe(),I=Oc(()=>g(r).action);Ka(C,(u,h)=>{var B;return(B=g(I))===null||B===void 0?void 0:B(u,h)},()=>g(r).props),he(d,C)},l=d=>{var C=ar(),I=Oc(()=>g(r).component);q2e(Ut(C),()=>g(I),(u,h)=>{h(u,qC(()=>g(r).props))}),he(d,C)};ze(a,d=>{Tqe(g(r))?d(c):d(l,!1)}),he(o,s)}),he(t,n),kt()}var _Ze={selecting:!1,selectionAnchor:void 0,selectionAnchorType:void 0,selectionFocus:void 0,dragging:!1};function KJ(t){var{json:A,selection:e,deltaY:i,items:n}=t;if(!e)return{operations:void 0,updatedSelection:void 0,offset:0};var o=i<0?function(l){for(var{json:d,items:C,selection:I,deltaY:u}=l,h=P2(d,I),B=C.findIndex(_=>wi(_.path,h)),f=()=>{var _;return(_=C[b-1])===null||_===void 0?void 0:_.height},b=B,k=0;f()!==void 0&&Math.abs(u)>k+f()/2;)k+=f(),b-=1;var S=C[b].path,w=b-B;return b!==B&&C[b]!==void 0?{beforePath:S,offset:w}:void 0}({json:A,selection:e,deltaY:i,items:n}):function(l){for(var d,{json:C,items:I,selection:u,deltaY:h}=l,B=ZC(C,u),f=I.findIndex(H=>wi(H.path,B)),b=0,k=f,S=()=>{var H;return(H=I[k+1])===null||H===void 0?void 0:H.height};S()!==void 0&&Math.abs(h)>b+S()/2;)b+=S(),k+=1;var w=Hi(B),_=WA(C,w),K=Array.isArray(_)?k:k+1,J=(d=I[K])===null||d===void 0?void 0:d.path,O=k-f;return J?{beforePath:J,offset:O}:{append:!0,offset:O}}({json:A,selection:e,deltaY:i,items:n});if(!o||o.offset===0)return{operations:void 0,updatedSelection:void 0,offset:0};var r=function(l,d,C){if(!d)return[];var I="beforePath"in C?C.beforePath:void 0,u="append"in C?C.append:void 0,h=Hi(It(d)),B=WA(l,h);if(!(u||I&&Nd(I,h)&&I.length>h.length))return[];var f=P2(l,d),b=ZC(l,d),k=vi(f),S=vi(b),w=I?I[h.length]:void 0;if(!nr(B)){if(Wo(B)){var _=Ps(k),K=Ps(S),J=w!==void 0?Ps(w):B.length;return hG(K-_+1,J<_?ye=>({op:"move",from:pt(h.concat(String(_+ye))),path:pt(h.concat(String(J+ye)))}):()=>({op:"move",from:pt(h.concat(String(_))),path:pt(h.concat(String(J)))}))}throw new Error("Cannot create move operations: parent must be an Object or Array")}var O=Object.keys(B),H=O.indexOf(k),V=O.indexOf(S),Z=u?O.length:w!==void 0?O.indexOf(w):-1;return H!==-1&&V!==-1&&Z!==-1?Z>H?[...O.slice(H,V+1),...O.slice(Z,O.length)].map(ye=>iI(h,ye)):[...O.slice(Z,H),...O.slice(V+1,O.length)].map(ye=>iI(h,ye)):[]}(A,e,o),s=Hi(P2(A,e)),a=WA(A,s);if(Array.isArray(a)){var c=function(l){var d,C,{items:I,json:u,selection:h,offset:B}=l,f=P2(u,h),b=ZC(u,h),k=I.findIndex(K=>wi(K.path,f)),S=I.findIndex(K=>wi(K.path,b)),w=(d=I[k+B])===null||d===void 0?void 0:d.path,_=(C=I[S+B])===null||C===void 0?void 0:C.path;return Fa(w,_)}({items:n,json:A,selection:e,offset:o.offset});return{operations:r,updatedSelection:c,offset:o.offset}}return{operations:r,updatedSelection:void 0,offset:o.offset}}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +button.jse-validation-error.svelte-1a8aobl { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + padding: 0; + margin: 0; + vertical-align: top; + display: inline-flex; + color: var(--jse-error-color, #ee5341); +} + +button.jse-validation-info.svelte-1a8aobl { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + padding: 0; + margin: 0; + vertical-align: top; + display: inline-flex; + color: var(--jse-info-color, #4f91ff); +} + +button.jse-validation-warning.svelte-1a8aobl { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + padding: 0; + margin: 0; + vertical-align: top; + display: inline-flex; + color: var(--jse-warning-color, #fdc539); +}`);var RZe=_e('');function jf(t,A){St(A,!1);var e=Ce(),i=nI("absolute-popup"),n=N(A,"validationError",8),o=N(A,"onExpand",8);Se(()=>F(n()),()=>{x(e,Uqe(n())&&n().isChildError?"Contains invalid data":n().message)}),Nn(),li();var r=RZe();nn(ge(r),{get data(){return hC}}),zs(()=>QA("click",r,function(){for(var s,a=arguments.length,c=new Array(a),l=0;leQ?.(s,a),()=>SA({text:g(e)},i)),xA(()=>{var s;return ci(r,1,"jse-validation-".concat((F(n()),(s=Be(()=>n().severity))!==null&&s!==void 0?s:"")),"svelte-1a8aobl")}),he(t,r),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-expand.svelte-oawf7x { + width: var(--jse-indent-size, calc(1em + 4px)); + padding: 0; + margin: 0; + border: none; + cursor: pointer; + background: transparent; + color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); + font-size: var(--jse-font-size-mono, 14px); + height: var(--jse-line-height, calc(1em + 4px)); +} +.jse-expand.svelte-oawf7x:hover { + opacity: 0.8; +} + +.jse-meta.svelte-oawf7x, +.jse-separator.svelte-oawf7x, +.jse-index.svelte-oawf7x, +.jse-bracket.svelte-oawf7x { + vertical-align: top; + color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); +} + +.jse-index.svelte-oawf7x { + padding: 0 calc(0.5 * var(--jse-padding, 10px)); +} + +.jse-bracket.svelte-oawf7x { + padding: 0 2px; +} +.jse-bracket.jse-expanded.svelte-oawf7x { + padding-right: var(--jse-padding, 10px); +} + +.jse-identifier.svelte-oawf7x { + vertical-align: top; + position: relative; +} + +.jse-json-node.svelte-oawf7x { + position: relative; + color: var(--jse-text-color, #4d4d4d); +} +.jse-json-node.jse-root.svelte-oawf7x { + min-height: 100%; + padding-bottom: 2px; + box-sizing: border-box; +} +.jse-json-node.jse-root.svelte-oawf7x > .jse-contents-outer:where(.svelte-oawf7x) > .jse-contents:where(.svelte-oawf7x) { + padding-left: 0; +} +.jse-json-node.svelte-oawf7x .jse-props:where(.svelte-oawf7x), +.jse-json-node.svelte-oawf7x .jse-items:where(.svelte-oawf7x) { + position: relative; +} +.jse-json-node.svelte-oawf7x .jse-header-outer:where(.svelte-oawf7x), +.jse-json-node.svelte-oawf7x .jse-footer-outer:where(.svelte-oawf7x) { + display: flex; + margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); +} +.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x) { + position: relative; +} +.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x) .jse-meta:where(.svelte-oawf7x) > .jse-meta-inner:where(.svelte-oawf7x) { + display: flex; + justify-content: center; +} +.jse-json-node.svelte-oawf7x .jse-contents-outer:where(.svelte-oawf7x) { + display: flex; + margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); +} +.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x), +.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x) { + display: flex; + flex-direction: row; + align-items: flex-start; +} +.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x) { + padding-left: var(--jse-indent-size, calc(1em + 4px)); + cursor: var(--jse-contents-cursor, pointer); +} +.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x) .jse-value-outer:where(.svelte-oawf7x) { + display: inline-flex; +} +.jse-json-node.svelte-oawf7x .jse-footer:where(.svelte-oawf7x) { + display: inline-flex; + padding-left: calc(var(--jse-indent-size, calc(1em + 4px)) + 5px); +} +.jse-json-node.svelte-oawf7x .jse-header:where(.svelte-oawf7x), +.jse-json-node.svelte-oawf7x .jse-contents:where(.svelte-oawf7x), +.jse-json-node.svelte-oawf7x .jse-footer:where(.svelte-oawf7x) { + background: var(--jse-contents-background-color, transparent); +} +.jse-json-node.svelte-oawf7x .jse-insert-selection-area:where(.svelte-oawf7x) { + padding: 0 calc(0.5 * var(--jse-padding, 10px)); + flex: 1; +} +.jse-json-node.svelte-oawf7x .jse-insert-selection-area.jse-inside:where(.svelte-oawf7x) { + display: inline-flex; + align-items: center; +} +.jse-json-node.svelte-oawf7x .jse-insert-selection-area.jse-after:where(.svelte-oawf7x) { + display: flex; + align-items: flex-end; +} +.jse-json-node.svelte-oawf7x .jse-context-menu-pointer-anchor:where(.svelte-oawf7x) { + position: relative; +} +.jse-json-node.svelte-oawf7x .jse-insert-area:where(.svelte-oawf7x) { + display: flex; + position: relative; + z-index: 1; + margin-left: calc(var(--level) * var(--jse-indent-size, calc(1em + 4px))); + max-width: 250px; + min-width: 100px; + height: 0; + margin-right: calc(0.5 * var(--jse-padding, 10px)); + outline: 1px solid; +} +.jse-json-node.svelte-oawf7x .jse-insert-area.jse-hovered:where(.svelte-oawf7x) { + outline-color: var(--jse-context-menu-pointer-hover-background, #b2b2b2); +} +.jse-json-node.svelte-oawf7x .jse-key-outer:where(.svelte-oawf7x) { + position: relative; +} +.jse-json-node.svelte-oawf7x .jse-key-outer:where(.svelte-oawf7x):hover, +.jse-json-node.svelte-oawf7x .jse-value-outer:where(.svelte-oawf7x):hover, +.jse-json-node.svelte-oawf7x .jse-meta:where(.svelte-oawf7x):hover, +.jse-json-node.svelte-oawf7x .jse-footer:where(.svelte-oawf7x):hover { + background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); + cursor: var(--jse-contents-cursor, pointer); +} +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-header, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-contents, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-header, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-contents, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-footer { + background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); + cursor: var(--jse-contents-cursor, pointer); +} +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-value-outer .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-value-outer .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-meta .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-meta .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-header .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-header .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-contents .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-items .jse-contents .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-header .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-header .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-contents .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-props .jse-contents .jse-meta, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-footer .jse-value-outer, +.jse-json-node.jse-hovered.svelte-oawf7x:not(.jse-selected):not(.jse-selected-value) .jse-footer .jse-meta { + background: none; +} +.jse-json-node.jse-selected.svelte-oawf7x .jse-header:where(.svelte-oawf7x), +.jse-json-node.jse-selected.svelte-oawf7x .jse-contents:where(.svelte-oawf7x), +.jse-json-node.jse-selected.svelte-oawf7x .jse-footer:where(.svelte-oawf7x) { + background: var(--jse-selection-background-color, #d3d3d3); + cursor: var(--jse-contents-selected-cursor, grab); +} +.jse-json-node.jse-selected.svelte-oawf7x .jse-key-outer:where(.svelte-oawf7x):hover, +.jse-json-node.jse-selected.svelte-oawf7x .jse-value-outer:where(.svelte-oawf7x):hover, +.jse-json-node.jse-selected.svelte-oawf7x .jse-meta:where(.svelte-oawf7x):hover, +.jse-json-node.jse-selected.svelte-oawf7x .jse-footer:where(.svelte-oawf7x):hover { + background: inherit; + cursor: inherit; +} +.jse-json-node.svelte-oawf7x .jse-key-outer.jse-selected-key:where(.svelte-oawf7x) { + background: var(--jse-selection-background-color, #d3d3d3); + cursor: var(--jse-contents-selected-cursor, grab); +} +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-value-outer, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-meta, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-header, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-contents, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-header, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-contents, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-footer { + background: var(--jse-selection-background-color, #d3d3d3); + cursor: var(--jse-contents-selected-cursor, grab); +} +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-value-outer .jse-key-outer:hover, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-meta .jse-key-outer:hover, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-header .jse-key-outer:hover, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-items .jse-contents .jse-key-outer:hover, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-header .jse-key-outer:hover, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-props .jse-contents .jse-key-outer:hover, +.jse-json-node.jse-selected-value.svelte-oawf7x .jse-footer .jse-key-outer:hover { + background: inherit; + cursor: inherit; +} +.jse-json-node.jse-readonly.svelte-oawf7x { + --jse-contents-selected-cursor: pointer; +} +.jse-json-node.svelte-oawf7x .jse-insert-area.jse-selected:where(.svelte-oawf7x) { + outline-color: var(--jse-context-menu-pointer-background, var(--jse-context-menu-background, #656565)); +}`);var Yo=LM(()=>_Ze),NZe=_e('
              :
              '),LZe=_e('
              [
               ',1),FZe=_e('
              [
              ]
              ',1),GZe=_e('
              '),KZe=_e('
              '),UZe=_e('
              '),TZe=_e('
              '),OZe=_e('
              '),JZe=_e(" ",1),YZe=_e('
              '),HZe=_e('
              ',1),zZe=_e('
              ',1),PZe=_e('
              :
              '),jZe=_e('
              {
              '),VZe=_e('
              {
              }
              ',1),qZe=_e('
              '),WZe=_e('
              '),ZZe=_e('
              '),XZe=_e('
              '),$Ze=_e('
              '),eXe=_e('
              '),AXe=_e('
              ',1),tXe=_e('
              ',1),iXe=_e('
              :
              '),nXe=_e('
              '),oXe=_e('
              '),rXe=_e('
              '),sXe=_e('
              '),aXe=_e('
              ');function CY(t,A){St(A,!1);var e=Ce(void 0,!0),i=Ce(void 0,!0),n=N(A,"pointer",9),o=N(A,"value",9),r=N(A,"state",9),s=N(A,"validationErrors",9),a=N(A,"searchResults",9),c=N(A,"selection",9),l=N(A,"context",9),d=N(A,"onDragSelectionStart",9),C=Es("jsoneditor:JSONNode"),I=Ce(void 0,!0),u=void 0,h=Ce(void 0,!0),B=Ce(void 0,!0),f=Ce(void 0,!0),b=Ce(void 0,!0),k=Ce(void 0,!0),S=Ce(void 0,!0),w=Ce(void 0,!0);function _(Ye){Ye.stopPropagation();var Ie=LY(Ye);l().onExpand(g(B),!g(f),Ie)}function K(){l().onExpand(g(B),!0)}function J(Ye,Ie){var We=r6(g(B),Object.keys(o()),Ye,Ie);return l().onPatch(We),vi(Sa(We[0].path))}function O(Ye){l().onDrag(Ye)}function H(Ye){Yo().selecting&&(Yo(Yo().selecting=!1),Ye.stopPropagation()),l().onDragEnd(),document.removeEventListener("mousemove",O,!0),document.removeEventListener("mouseup",H)}function V(){var Ye;return((Ye=l().findElement([]))===null||Ye===void 0||(Ye=Ye.getBoundingClientRect())===null||Ye===void 0?void 0:Ye.top)||0}function Z(Ye,Ie){var We=V()-Ye.initialContentTop;return Ie.clientY-Ye.initialClientY-We}function ye(Ye){if(!l().readOnly&&c()){var Ie=Hi(It(c()));if(wi(g(B),Ie)){var We=function(Fe,pe){var Wt=[];function Qt(z){var Ae=g(B).concat(z),de=l().findElement(Ae);de!==void 0&&Wt.push({path:Ae,height:de.clientHeight})}if(Array.isArray(o())){var BA=l().getJson();if(BA===void 0)return;var _t=P2(BA,Fe),VA=ZC(BA,Fe),YA=parseInt(vi(_t),10),Jt=parseInt(vi(VA),10),KA=pe.find(z=>YA>=z.start&&Jt<=z.end);if(!KA)return;var{start:di,end:G}=KA;A1e(di,Math.min(o().length,G),z=>Qt(String(z)))}else Object.keys(o()).forEach(Qt);return Wt}(c(),g(k)||Hf);if(C("dragSelectionStart",{selection:c(),items:We}),We){var we=l().getJson();if(we!==void 0){var Ze=P2(we,c()),Ge=We.findIndex(Fe=>wi(Fe.path,Ze)),{offset:LA}=KJ({json:we,selection:l().getSelection(),deltaY:0,items:We});x(h,{initialTarget:Ye.target,initialClientY:Ye.clientY,initialContentTop:V(),selectionStartIndex:Ge,selectionItemsCount:tI(we,c()).length,items:We,offset:LA,didMoveItems:!1}),Yo(Yo().dragging=!0),document.addEventListener("mousemove",P,!0),document.addEventListener("mouseup",se)}}else C("Cannot drag the current selection (probably spread over multiple sections)")}else d()(Ye)}}function P(Ye){if(g(h)){var Ie=l().getJson();if(Ie===void 0)return;var We=Z(g(h),Ye),{offset:we}=KJ({json:Ie,selection:l().getSelection(),deltaY:We,items:g(h).items});we!==g(h).offset&&(C("drag selection",we,We),x(h,SA(SA({},g(h)),{},{offset:we,didMoveItems:!0})))}}function se(Ye){if(g(h)){var Ie=l().getJson();if(Ie===void 0)return;var We=Z(g(h),Ye),{operations:we,updatedSelection:Ze}=KJ({json:Ie,selection:l().getSelection(),deltaY:We,items:g(h).items});if(we)l().onPatch(we,(Fe,pe)=>({state:pe,selection:Ze??c()}));else if(Ye.target===g(h).initialTarget&&!g(h).didMoveItems){var Ge=DJ(Ye.target),LA=C1e(Ye.target);LA&&l().onSelect(Tde(Ge,LA))}x(h,void 0),Yo(Yo().dragging=!1),document.removeEventListener("mousemove",P,!0),document.removeEventListener("mouseup",se)}}function X(Ye){Ye.shiftKey||(Ye.stopPropagation(),Ye.preventDefault(),l().onSelect(e1(g(B))))}function ue(Ye){Ye.shiftKey||(Ye.stopPropagation(),Ye.preventDefault(),l().onSelect(W2(g(B))))}function oe(Ye){l().onSelect(e1(g(B))),bo(),l().onContextMenu(Ye)}function le(Ye){l().onSelect(W2(g(B))),bo(),l().onContextMenu(Ye)}Se(()=>F(n()),()=>{x(B,Sa(n()))}),Se(()=>F(n()),()=>{x(e,encodeURIComponent(n()))}),Se(()=>F(r()),()=>{x(f,!!ch(r())&&r().expanded)}),Se(()=>(F(o()),F(r())),()=>{x(b,_d(o(),r(),[]))}),Se(()=>F(r()),()=>{x(k,hs(r())?r().visibleSections:void 0)}),Se(()=>F(s()),()=>{var Ye;x(S,(Ye=s())===null||Ye===void 0?void 0:Ye.validationError)}),Se(()=>(F(l()),F(c()),g(B)),()=>{x(w,Hp(l().getJson(),c(),g(B)))}),Se(()=>g(B),()=>{x(i,g(B).length===0)}),Nn(),li(!0);var me,Te,$e=aXe(),Je=ge($e),Qe=Ye=>{var Ie=zZe(),We=Ut(Ie),we=ge(We),Ze=ge(we),Ge=ge(Ze),LA=Ke=>{nn(Ke,{get data(){return ld}})},Fe=Ke=>{nn(Ke,{get data(){return TE}})};ze(Ge,Ke=>{g(f)?Ke(LA):Ke(Fe,!1)});var pe=De(Ze,2);Er(pe,A,"identifier",{},null);var Wt=De(pe,2),Qt=Ke=>{he(Ke,NZe())};ze(Wt,Ke=>{g(i)||Ke(Qt)});var BA=De(Wt,2),_t=ge(BA),VA=ge(_t),YA=Ke=>{var Re=LZe();aM(De(Ut(Re),2),{children:(wt,st)=>{var nA=Ss();xA(()=>{var Bt,Wi;return xt(nA,"".concat((F(o()),(Bt=Be(()=>o().length))!==null&&Bt!==void 0?Bt:""),` + `).concat((F(o()),(Wi=Be(()=>o().length===1?"item":"items"))!==null&&Wi!==void 0?Wi:"")))}),he(wt,nA)},$$slots:{default:!0}}),he(Ke,Re)},Jt=Ke=>{var Re=FZe();aM(De(Ut(Re),2),{onclick:K,children:(wt,st)=>{var nA=Ss();xA(()=>{var Bt,Wi;return xt(nA,"".concat((F(o()),(Bt=Be(()=>o().length))!==null&&Bt!==void 0?Bt:""),` + `).concat((F(o()),(Wi=Be(()=>o().length===1?"item":"items"))!==null&&Wi!==void 0?Wi:"")))}),he(wt,nA)},$$slots:{default:!0}}),he(Ke,Re)};ze(VA,Ke=>{g(f)?Ke(YA):Ke(Jt,!1)});var KA=De(BA,2),di=Ke=>{var Re=GZe();OC(ge(Re),{get root(){return g(i)},selected:!0,get onContextMenu(){return F(l()),Be(()=>l().onContextMenu)}}),he(Ke,Re)};ze(KA,Ke=>{F(l()),g(w),F(c()),F(fn),F(Io),F(us),F(wi),F(It),g(B),Be(()=>!l().readOnly&&g(w)&&c()&&(fn(c())||Io(c()))&&!us(c())&&wi(It(c()),g(B)))&&Ke(di)});var G=De(we,2),z=Ke=>{jf(Ke,{get validationError(){return g(S)},onExpand:K})};ze(G,Ke=>{g(S),g(f),Be(()=>g(S)&&(!g(f)||!g(S).isChildError))&&Ke(z)});var Ae=De(G,2),de=Ke=>{var Re=KZe();QA("click",Re,X),he(Ke,Re)},Ne=Ke=>{var Re=UZe();QA("click",Re,ue),he(Ke,Re)};ze(Ae,Ke=>{g(f)?Ke(de):Ke(Ne,!1)});var pA=De(We,2),vA=Ke=>{var Re=HZe(),wt=Ut(Re),st=ge(wt),nA=dn=>{var HA,Cn,Gi=TZe(),oi=ge(Gi),Yt=tA(()=>(g(w),F(cs),F(c()),Be(()=>g(w)&&cs(c()))));OC(oi,{insert:!0,get selected(){return g(Yt)},onContextMenu:oe}),xA((xi,Pi)=>{HA=ci(Gi,1,"jse-insert-area jse-inside svelte-oawf7x",null,HA,xi),Rn(Gi,"title",MJ),Cn=cg(Gi,"",Cn,Pi)},[()=>({"jse-hovered":g(I)===Xu,"jse-selected":g(w)&&cs(c())}),()=>({"--level":(g(B),Be(()=>g(B).length+1))})],tA),he(dn,Gi)};ze(st,dn=>{F(l()),g(I),F(Xu),g(w),F(cs),F(c()),Be(()=>!l().readOnly&&(g(I)===Xu||g(w)&&cs(c())))&&dn(nA)}),fr(De(st,2),1,()=>g(k)||Hf,Jr,(dn,HA,Cn)=>{var Gi=JZe(),oi=Ut(Gi);fr(oi,1,()=>(F(o()),g(HA),g(h),Be(()=>function(Pi,Xt,L){var ct=Xt.start,Di=Math.min(Xt.end,Pi.length),mn=dv(ct,Di);return L&&L.offset!==0?Qde(mn,L.selectionStartIndex,L.selectionItemsCount,L.offset).map((pn,so)=>({index:pn,gutterIndex:so})):mn.map(pn=>({index:pn,gutterIndex:pn}))}(o(),g(HA),g(h)))),Pi=>Pi.index,(Pi,Xt)=>{var L=ar(),ct=tA(()=>(F(hs),F(s()),g(Xt),Be(()=>hs(s())?s().items[g(Xt).index]:void 0))),Di=tA(()=>(F(Wb),F(l()),F(c()),g(B),g(Xt),Be(()=>Wb(l().getJson(),c(),g(B).concat(String(g(Xt).index)))))),mn=Ut(L),pn=tA(()=>(F(Jm),F(n()),g(Xt),Be(()=>Jm(n(),g(Xt).index)))),so=tA(()=>(F(hs),F(r()),g(Xt),Be(()=>hs(r())?r().items[g(Xt).index]:void 0))),$o=tA(()=>(F(hs),F(a()),g(Xt),Be(()=>hs(a())?a().items[g(Xt).index]:void 0)));CY(mn,{get value(){return F(o()),g(Xt),Be(()=>o()[g(Xt).index])},get pointer(){return g(pn)},get state(){return g(so)},get validationErrors(){return g(ct)},get searchResults(){return g($o)},get selection(){return g(Di)},get context(){return l()},onDragSelectionStart:ye,$$slots:{identifier:(Ao,Fn)=>{var Qr=OZe(),mr=ge(Qr),zo=ge(mr);xA(()=>xt(zo,(g(Xt),Be(()=>g(Xt).gutterIndex)))),he(Ao,Qr)}}}),he(Pi,L)});var Yt=De(oi,2),xi=Pi=>{var Xt=tA(()=>g(k)||Hf);bZe(Pi,{get visibleSections(){return g(Xt)},sectionIndex:Cn,get total(){return F(o()),Be(()=>o().length)},get path(){return g(B)},get onExpandSection(){return F(l()),Be(()=>l().onExpandSection)},get selection(){return c()},get context(){return l()}})};ze(Yt,Pi=>{g(HA),F(o()),Be(()=>g(HA).end{var HA=YZe();QA("click",HA,ue),he(dn,HA)};ze(Wi,dn=>{g(i)||dn(Qn)}),he(Ke,Re)};ze(pA,Ke=>{g(f)&&Ke(vA)}),QA("click",Ze,_),he(Ye,Ie)},He=(Ye,Ie)=>{var We=Ze=>{var Ge=tXe(),LA=Ut(Ge),Fe=ge(LA),pe=ge(Fe),Wt=ge(pe),Qt=nA=>{nn(nA,{get data(){return ld}})},BA=nA=>{nn(nA,{get data(){return TE}})};ze(Wt,nA=>{g(f)?nA(Qt):nA(BA,!1)});var _t=De(pe,2);Er(_t,A,"identifier",{},null);var VA=De(_t,2),YA=nA=>{he(nA,PZe())};ze(VA,nA=>{g(i)||nA(YA)});var Jt=De(VA,2),KA=ge(Jt),di=ge(KA),G=nA=>{he(nA,jZe())},z=nA=>{var Bt=VZe();aM(De(Ut(Bt),2),{onclick:K,children:(Wi,Qn)=>{var dn=Ss();xA((HA,Cn)=>xt(dn,"".concat(HA??"",` + `).concat(Cn??"")),[()=>(F(o()),Be(()=>Object.keys(o()).length)),()=>(F(o()),Be(()=>Object.keys(o()).length===1?"prop":"props"))],tA),he(Wi,dn)},$$slots:{default:!0}}),he(nA,Bt)};ze(di,nA=>{g(f)?nA(G):nA(z,!1)});var Ae=De(Jt,2),de=nA=>{var Bt=qZe();OC(ge(Bt),{get root(){return g(i)},selected:!0,get onContextMenu(){return F(l()),Be(()=>l().onContextMenu)}}),he(nA,Bt)};ze(Ae,nA=>{F(l()),g(w),F(c()),F(fn),F(Io),F(us),F(wi),F(It),g(B),Be(()=>!l().readOnly&&g(w)&&c()&&(fn(c())||Io(c()))&&!us(c())&&wi(It(c()),g(B)))&&nA(de)});var Ne=De(Fe,2),pA=nA=>{jf(nA,{get validationError(){return g(S)},onExpand:K})};ze(Ne,nA=>{g(S),g(f),Be(()=>g(S)&&(!g(f)||!g(S).isChildError))&&nA(pA)});var vA=De(Ne,2),Ke=nA=>{var Bt=WZe();QA("click",Bt,X),he(nA,Bt)},Re=(nA,Bt)=>{var Wi=Qn=>{var dn=ZZe();QA("click",dn,ue),he(Qn,dn)};ze(nA,Qn=>{g(i)||Qn(Wi)},Bt)};ze(vA,nA=>{g(f)?nA(Ke):nA(Re,!1)});var wt=De(LA,2),st=nA=>{var Bt=AXe(),Wi=Ut(Bt),Qn=ge(Wi),dn=oi=>{var Yt,xi,Pi=XZe(),Xt=ge(Pi),L=tA(()=>(g(w),F(cs),F(c()),Be(()=>g(w)&&cs(c()))));OC(Xt,{insert:!0,get selected(){return g(L)},onContextMenu:oe}),xA((ct,Di)=>{Yt=ci(Pi,1,"jse-insert-area jse-inside svelte-oawf7x",null,Yt,ct),Rn(Pi,"title",MJ),xi=cg(Pi,"",xi,Di)},[()=>({"jse-hovered":g(I)===Xu,"jse-selected":g(w)&&cs(c())}),()=>({"--level":(g(B),Be(()=>g(B).length+1))})],tA),he(oi,Pi)};ze(Qn,oi=>{F(l()),g(I),F(Xu),g(w),F(cs),F(c()),Be(()=>!l().readOnly&&(g(I)===Xu||g(w)&&cs(c())))&&oi(dn)}),fr(De(Qn,2),1,()=>(F(o()),g(h),Be(()=>function(oi,Yt){var xi=Object.keys(oi);return Yt&&Yt.offset!==0?Qde(xi,Yt.selectionStartIndex,Yt.selectionItemsCount,Yt.offset):xi}(o(),g(h)))),Jr,(oi,Yt)=>{var xi=ar(),Pi=tA(()=>(F(Jm),F(n()),g(Yt),Be(()=>Jm(n(),g(Yt))))),Xt=tA(()=>(F(Tc),F(a()),g(Yt),Be(()=>Tc(a())?a().properties[g(Yt)]:void 0))),L=tA(()=>(F(Tc),F(s()),g(Yt),Be(()=>Tc(s())?s().properties[g(Yt)]:void 0))),ct=tA(()=>(g(B),g(Yt),Be(()=>g(B).concat(g(Yt))))),Di=tA(()=>(F(Wb),F(l()),F(c()),F(g(ct)),Be(()=>Wb(l().getJson(),c(),g(ct))))),mn=Ut(xi),pn=tA(()=>(F(Tc),F(r()),g(Yt),Be(()=>Tc(r())?r().properties[g(Yt)]:void 0)));CY(mn,{get value(){return F(o()),g(Yt),Be(()=>o()[g(Yt)])},get pointer(){return g(Pi)},get state(){return g(pn)},get validationErrors(){return g(L)},get searchResults(){return g(Xt)},get selection(){return g(Di)},get context(){return l()},onDragSelectionStart:ye,$$slots:{identifier:(so,$o)=>{var Ao,Fn=$Ze(),Qr=ge(Fn),mr=tA(()=>(F(jde),F(g(Xt)),Be(()=>jde(g(Xt)))));(function(zo,On){St(On,!1);var ho=Ce(void 0,!0),sA=Ce(void 0,!0),_i=N(On,"pointer",9),Zi=N(On,"key",9),Jn=N(On,"selection",9),Bo=N(On,"searchResultItems",9),pr=N(On,"onUpdateKey",9),Mi=N(On,"context",9),Mo=Ce(void 0,!0);function wr(EA){g(sA)||Mi().readOnly||(EA.preventDefault(),Mi().onSelect(zY(g(Mo))))}function yr(EA,zA){var bA=pr()(Zi(),Mi().normalization.unescapeValue(EA)),fe=Hi(g(Mo)).concat(bA);Mi().onSelect(zA===WC.nextInside?zi(fe):$2(fe)),zA!==WC.self&&Mi().focus()}function Nr(){Mi().onSelect($2(g(Mo))),Mi().focus()}Se(()=>F(_i()),()=>{x(Mo,Sa(_i()))}),Se(()=>(F(Jn()),g(Mo)),()=>{x(ho,Bs(Jn())&&wi(Jn().path,g(Mo)))}),Se(()=>(g(ho),F(Jn())),()=>{x(sA,g(ho)&&us(Jn()))}),Nn(),li(!0);var Mn=kZe(),wn=Ut(Mn),Ft=EA=>{var zA=tA(()=>(F(Mi()),F(Zi()),Be(()=>Mi().normalization.escapeValue(Zi())))),bA=tA(()=>(F(us),F(Jn()),Be(()=>us(Jn())?Jn().initialValue:void 0)));y1e(EA,{get value(){return g(zA)},get initialValue(){return g(bA)},label:"Edit key",shortText:!0,onChange:yr,onCancel:Nr,get onFind(){return F(Mi()),Be(()=>Mi().onFind)}})},Yn=EA=>{var zA,bA=SZe(),fe=ge(bA),ke=qA=>{var Gt=tA(()=>(F(Mi()),F(Zi()),Be(()=>Mi().normalization.escapeValue(Zi()))));x1e(qA,{get text(){return g(Gt)},get searchResultItems(){return Bo()}})},Xe=qA=>{var Gt=Ss();xA($t=>xt(Gt,$t),[()=>(F(Zf),F(Mi()),F(Zi()),Be(()=>Zf(Mi().normalization.escapeValue(Zi()))))],tA),he(qA,Gt)};ze(fe,qA=>{Bo()?qA(ke):qA(Xe,!1)}),xA(qA=>zA=ci(bA,1,"jse-key svelte-2iqnqn",null,zA,qA),[()=>({"jse-empty":Zi()===""})],tA),QA("dblclick",bA,wr),he(EA,bA)};ze(wn,EA=>{F(Mi()),g(sA),Be(()=>!Mi().readOnly&&g(sA))?EA(Ft):EA(Yn,!1)});var Me=De(wn,2),gA=EA=>{OC(EA,{selected:!0,get onContextMenu(){return F(Mi()),Be(()=>Mi().onContextMenu)}})};ze(Me,EA=>{F(Mi()),g(ho),g(sA),Be(()=>!Mi().readOnly&&g(ho)&&!g(sA))&&EA(gA)}),he(zo,Mn),kt()})(Qr,{get pointer(){return g(Pi)},get key(){return g(Yt)},get selection(){return g(Di)},get searchResultItems(){return g(mr)},get context(){return l()},onUpdateKey:J}),xA(zo=>Ao=ci(Fn,1,"jse-key-outer svelte-oawf7x",null,Ao,zo),[()=>({"jse-selected-key":Bs(g(Di))&&wi(g(Di).path,g(ct))})],tA),he(so,Fn)}}}),he(oi,xi)});var HA=De(Wi,2),Cn=De(ge(HA),2),Gi=oi=>{var Yt=eXe();QA("click",Yt,ue),he(oi,Yt)};ze(Cn,oi=>{g(i)||oi(Gi)}),he(nA,Bt)};ze(wt,nA=>{g(f)&&nA(st)}),QA("click",pe,_),he(Ze,Ge)},we=Ze=>{var Ge=rXe(),LA=ge(Ge),Fe=ge(LA);Er(Fe,A,"identifier",{},null);var pe=De(Fe,2),Wt=Ae=>{he(Ae,iXe())};ze(pe,Ae=>{g(i)||Ae(Wt)});var Qt=De(pe,2),BA=ge(Qt),_t=tA(()=>g(w)?c():void 0),VA=tA(()=>(F(Vde),F(a()),Be(()=>Vde(a()))));j1e(BA,{get path(){return g(B)},get value(){return o()},get enforceString(){return g(b)},get selection(){return g(_t)},get searchResultItems(){return g(VA)},get context(){return l()}});var YA=De(Qt,2),Jt=Ae=>{var de=nXe();OC(ge(de),{get root(){return g(i)},selected:!0,get onContextMenu(){return F(l()),Be(()=>l().onContextMenu)}}),he(Ae,de)};ze(YA,Ae=>{F(l()),g(w),F(c()),F(fn),F(Io),F(us),F(wi),F(It),g(B),Be(()=>!l().readOnly&&g(w)&&c()&&(fn(c())||Io(c()))&&!us(c())&&wi(It(c()),g(B)))&&Ae(Jt)});var KA=De(LA,2),di=Ae=>{jf(Ae,{get validationError(){return g(S)},onExpand:K})};ze(KA,Ae=>{g(S)&&Ae(di)});var G=De(KA,2),z=Ae=>{var de=oXe();QA("click",de,ue),he(Ae,de)};ze(G,Ae=>{g(i)||Ae(z)}),he(Ze,Ge)};ze(Ye,Ze=>{F(vn),F(o()),Be(()=>vn(o()))?Ze(We):Ze(we,!1)},Ie)};ze(Je,Ye=>{F(o()),Be(()=>Array.isArray(o()))?Ye(Qe):Ye(He,!1)});var PA=De(Je,2),JA=Ye=>{var Ie,We=sXe(),we=ge(We),Ze=tA(()=>(g(w),F(Jc),F(c()),Be(()=>g(w)&&Jc(c()))));OC(we,{insert:!0,get selected(){return g(Ze)},onContextMenu:le}),xA(Ge=>{Ie=ci(We,1,"jse-insert-area jse-after svelte-oawf7x",null,Ie,Ge),Rn(We,"title",MJ)},[()=>({"jse-hovered":g(I)===Vb,"jse-selected":g(w)&&Jc(c())})],tA),he(Ye,We)};ze(PA,Ye=>{F(l()),g(I),F(Vb),g(w),F(Jc),F(c()),Be(()=>!l().readOnly&&(g(I)===Vb||g(w)&&Jc(c())))&&Ye(JA)}),xA((Ye,Ie,We)=>{me=ci($e,1,Ye,"svelte-oawf7x",me,Ie),Rn($e,"data-path",g(e)),Rn($e,"aria-selected",g(w)),Te=cg($e,"",Te,We)},[()=>AI((F(o0),g(f),F(l()),g(B),F(o()),Be(()=>o0("jse-json-node",{"jse-expanded":g(f)},l().onClassName(g(B),o()))))),()=>({"jse-root":g(i),"jse-selected":g(w)&&Io(c()),"jse-selected-value":g(w)&&fn(c()),"jse-readonly":l().readOnly,"jse-hovered":g(I)===yde}),()=>({"--level":(g(B),Be(()=>g(B).length))})],tA),QA("mousedown",$e,function(Ye){if((Ye.buttons===1||Ye.buttons===2)&&!((Ie=Ye.target).nodeName==="DIV"&&Ie.contentEditable==="true"||Ye.buttons===1&&g1e(Ye.target,"BUTTON"))){var Ie;Ye.stopPropagation(),Ye.preventDefault(),l().focus(),document.addEventListener("mousemove",O,!0),document.addEventListener("mouseup",H);var We=DJ(Ye.target),we=l().getJson(),Ze=l().getDocumentState();if(!c()||We===ro.after||We===ro.inside||c().type!==We&&c().type!==ro.multi||!Hp(we,c(),g(B)))if(Yo(Yo().selecting=!0),Yo(Yo().selectionAnchor=g(B)),Yo(Yo().selectionAnchorType=We),Yo(Yo().selectionFocus=g(B)),Ye.shiftKey){var Ge=l().getSelection();Ge&&l().onSelect(Fa(nh(Ge),g(B)))}else if(We===ro.multi)if(g(i)&&Ye.target.hasAttribute("data-path")){var LA=vi(f1e(o(),Ze));l().onSelect(oY(LA))}else l().onSelect(Fa(g(B),g(B)));else we!==void 0&&l().onSelect(Tde(We,g(B)));else Ye.button===0&&d()(Ye)}}),QA("mousemove",$e,function(Ye){if(Yo().selecting){Ye.preventDefault(),Ye.stopPropagation(),Yo().selectionFocus===void 0&&window.getSelection&&window.getSelection().empty();var Ie=DJ(Ye.target);wi(g(B),Yo().selectionFocus)&&Ie===Yo().selectionAnchorType||(Yo(Yo().selectionFocus=g(B)),Yo(Yo().selectionAnchorType=Ie),l().onSelect(Fa(Yo().selectionAnchor||Yo().selectionFocus,Yo().selectionFocus)))}}),QA("mouseover",$e,function(Ye){Yo().selecting||Yo().dragging||(Ye.stopPropagation(),zC(Ye.target,"data-type","selectable-value")?x(I,yde):zC(Ye.target,"data-type","selectable-key")?x(I,void 0):zC(Ye.target,"data-type","insert-selection-area-inside")?x(I,Xu):zC(Ye.target,"data-type","insert-selection-area-after")&&x(I,Vb),clearTimeout(u))}),QA("mouseout",$e,function(Ye){Ye.stopPropagation(),u=window.setTimeout(()=>x(I,void 0))}),he(t,$e),kt()}var cXe={prefix:"fas",iconName:"jsoneditor-expand",icon:[512,512,[],"","M 0,448 V 512 h 512 v -64 z M 0,0 V 64 H 512 V 0 Z M 256,96 128,224 h 256 z M 256,416 384,288 H 128 Z"]},lXe={prefix:"fas",iconName:"jsoneditor-collapse",icon:[512,512,[],"","m 0,224 v 64 h 512 v -64 z M 256,192 384,64 H 128 Z M 256,320 128,448 h 256 z"]},r2e={prefix:"fas",iconName:"jsoneditor-format",icon:[512,512,[],"","M 0,32 v 64 h 416 v -64 z M 160,160 v 64 h 352 v -64 z M 160,288 v 64 h 288 v -64 z M 0,416 v 64 h 320 v -64 z"]},gXe={prefix:"fas",iconName:"jsoneditor-compact",icon:[512,512,[],"","M 0,32 v 64 h 512 v -64 z M 0,160 v 64 h 512 v -64 z M 0,288 v 64 h 352 v -64 z"]};function dXe(t,A){t.stopPropagation(),A.onCreateObject()}function CXe(t,A){t.stopPropagation(),A.onCreateArray()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-welcome.svelte-1eamlhk { + flex: 1; + overflow: auto; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + display: flex; + flex-direction: column; + align-items: center; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-welcome.svelte-1eamlhk:last-child { + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-welcome.svelte-1eamlhk .jse-space.jse-before:where(.svelte-1eamlhk) { + flex: 1; +} +.jse-welcome.svelte-1eamlhk .jse-space.jse-after:where(.svelte-1eamlhk) { + flex: 2; +} +.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) { + display: flex; + flex-direction: column; + max-width: 300px; + margin: 2em var(--jse-padding, 10px); + gap: var(--jse-padding, 10px); +} +.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) .jse-welcome-info:where(.svelte-1eamlhk) { + color: var(--jse-panel-color-readonly, #b2b2b2); +} +.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) button:where(.svelte-1eamlhk) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); + color: var(--jse-button-primary-color, #fff); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) button:where(.svelte-1eamlhk):hover { + background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); +} +.jse-welcome.svelte-1eamlhk .jse-contents:where(.svelte-1eamlhk) button:where(.svelte-1eamlhk):disabled { + background: var(--jse-button-primary-background-disabled, #9d9d9d); +}`);var IXe=(t,A)=>A.onClick(),uXe=_e('
              You can paste clipboard data using Ctrl+V, or use the following options:
              ',1),hXe=_e('
              Empty document
              ');function IY(t,A){var e=typeof t=="string"?t.toLowerCase():t,i=typeof A=="string"?A.toLowerCase():A;return(0,d2e.default)(e,i)}function V1e(t){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,n=WA(t,A);if(Wo(n)){if(e===void 0)throw new Error("Cannot sort: no property selected by which to sort the array");return function(o){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,c=function(d,C){var I={boolean:0,number:1,string:2,undefined:4},u=3;return function(h,B){var f=WA(h,d),b=WA(B,d);if(typeof f!=typeof b){var k,S,w=(k=I[typeof f])!==null&&k!==void 0?k:u,_=(S=I[typeof b])!==null&&S!==void 0?S:u;return w>_?C:w<_?-C:0}return typeof f=="number"||typeof f=="boolean"?f>b?C:f1&&arguments[1]!==void 0?arguments[1]:[],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,a=WA(o,r),c=Object.keys(a).slice();c.sort((d,C)=>s*IY(d,C));var l={};return c.forEach(d=>l[d]=a[d]),[{op:"replace",path:pt(r),value:l}]}(t,A,i);throw new Error("Cannot sort: no array or object")}e6(["click"]);Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-navigation-bar-dropdown.svelte-2nnd2m { + position: absolute; + top: 100%; + left: 0; + z-index: 3; + background: var(--jse-navigation-bar-background, var(--jse-background-color, #fff)); + color: var(--jse-navigation-bar-dropdown-color, #656565); + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); + display: flex; + flex-direction: column; + max-height: 300px; + overflow: auto; + min-width: 80px; +} +.jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item:where(.svelte-2nnd2m) { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + border: none; + background: transparent; + color: inherit; + cursor: pointer; + outline: none; + text-align: left; + white-space: nowrap; + box-sizing: border-box; + padding: calc(0.5 * var(--jse-padding, 10px)) 36px; +} +.jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item:where(.svelte-2nnd2m):focus, .jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item:where(.svelte-2nnd2m):hover { + background: var(--jse-navigation-bar-background-highlight, #e5e5e5); +} +.jse-navigation-bar-dropdown.svelte-2nnd2m button.jse-navigation-bar-dropdown-item.jse-selected:where(.svelte-2nnd2m) { + background: var(--jse-navigation-bar-dropdown-color, #656565); + color: var(--jse-navigation-bar-background, var(--jse-background-color, #fff)); +}`);var BXe=_e(''),EXe=_e(''),fXe=_e('
              ');function QXe(t,A){St(A,!1);var e=N(A,"items",9),i=N(A,"selectedItem",9),n=N(A,"onSelect",9);li(!0);var o=fXe(),r=ge(o);fr(r,1,()=>(F(IM),F(e()),Be(()=>IM(e(),100))),c=>c,(c,l)=>{var d,C=BXe(),I=ge(C);xA((u,h,B)=>{d=ci(C,1,"jse-navigation-bar-dropdown-item svelte-2nnd2m",null,d,u),Rn(C,"title",h),xt(I,B)},[()=>({"jse-selected":g(l)===i()}),()=>(g(l),Be(()=>g(l).toString())),()=>(F(Y2),g(l),Be(()=>Y2(g(l).toString(),30)))],tA),QA("click",C,O2(()=>n()(g(l)))),he(c,C)});var s=De(r,2),a=c=>{var l=EXe();Rn(l,"title","Limited to 100 items"),he(c,l)};ze(s,c=>{F(e()),Be(()=>e().length>100)&&c(a)}),he(t,o),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-navigation-bar-item.svelte-752ro1 { + position: relative; + display: flex; +} +.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button:where(.svelte-752ro1) { + font-family: inherit; + font-size: inherit; + padding: calc(0.5 * var(--jse-padding, 10px)) 2px; + border: none; + background: transparent; + color: inherit; + cursor: pointer; + outline: none; + min-width: 2em; + white-space: nowrap; +} +.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button:where(.svelte-752ro1):focus, .jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button:where(.svelte-752ro1):hover { + background: var(--jse-panel-button-background-highlight, #e0e0e0); + color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); +} +.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button.jse-navigation-bar-arrow:where(.svelte-752ro1) { + padding: 2px var(--jse-padding, 10px) 0; +} +.jse-navigation-bar-item.svelte-752ro1 button.jse-navigation-bar-button.jse-navigation-bar-arrow.jse-open:where(.svelte-752ro1) { + background: var(--jse-navigation-bar-background, var(--jse-background-color, #fff)); + color: var(--jse-navigation-bar-dropdown-color, #656565); +} +.jse-navigation-bar-item.svelte-752ro1:last-child { + padding-right: var(--jse-padding, 10px); +}`);var mXe=_e(''),pXe=_e('
              ');function s2e(t,A){St(A,!1);var e,i=Ce(void 0,!0),n=Ce(void 0,!0),{openAbsolutePopup:o,closeAbsolutePopup:r}=nI("absolute-popup"),s=N(A,"path",9),a=N(A,"index",9),c=N(A,"onSelect",9),l=N(A,"getItems",9),d=Ce(void 0,!0),C=Ce(!1,!0);function I(k){r(e),c()(g(i).concat(k))}Se(()=>(F(s()),F(a())),()=>{x(i,s().slice(0,a()))}),Se(()=>(F(s()),F(a())),()=>{x(n,s()[a()])}),Nn(),li(!0);var u,h=pXe(),B=ge(h);nn(ge(B),{get data(){return yG}});var f=De(B,2),b=k=>{var S=mXe(),w=ge(S);xA(()=>xt(w,g(n))),QA("click",S,()=>I(g(n))),he(k,S)};ze(f,k=>{g(n)!==void 0&&k(b)}),Ho(h,k=>x(d,k),()=>g(d)),xA(k=>u=ci(B,1,"jse-navigation-bar-button jse-navigation-bar-arrow svelte-752ro1",null,u,k),[()=>({"jse-open":g(C)})],tA),QA("click",B,function(){if(g(d)){x(C,!0);var k={items:l()(g(i)),selectedItem:g(n),onSelect:I};e=o(QXe,k,{anchor:g(d),closeOnOuterClick:!0,onClose:()=>{x(C,!1)}})}}),he(t,h),kt()}function ZY(t){var A,e;if(navigator.clipboard)return navigator.clipboard.writeText(t);if((A=(e=document).queryCommandSupported)!==null&&A!==void 0&&A.call(e,"copy")){var i=document.createElement("textarea");i.value=t,i.style.position="fixed",i.style.opacity="0",document.body.appendChild(i),i.select();try{document.execCommand("copy")}catch(n){console.error(n)}finally{document.body.removeChild(i)}return Promise.resolve()}return console.error("Copy failed."),Promise.resolve()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-navigation-bar-path-editor.svelte-zc2wx7 { + flex: 1; + display: flex; + border: var(--jse-edit-outline, 2px solid #656565); + background: var(--jse-background-color, #fff); +} +.jse-navigation-bar-path-editor.svelte-zc2wx7 input.jse-navigation-bar-text:where(.svelte-zc2wx7) { + flex: 1; + font-family: inherit; + font-size: inherit; + padding: 0 5px 1px; + background: var(--jse-background-color, #fff); + color: var(--jse-text-color, #4d4d4d); + border: none; + outline: none; +} +.jse-navigation-bar-path-editor.svelte-zc2wx7 button:where(.svelte-zc2wx7) { + border: none; + background: var(--jse-background-color, #fff); + cursor: pointer; + font-family: inherit; + font-size: 80%; + color: inherit; +} +.jse-navigation-bar-path-editor.svelte-zc2wx7 button.jse-navigation-bar-copy.copied:where(.svelte-zc2wx7) { + color: var(--message-success-background, #9ac45d); +} +.jse-navigation-bar-path-editor.svelte-zc2wx7 button.jse-navigation-bar-validation-error:where(.svelte-zc2wx7) { + color: var(--jse-error-color, #ee5341); +} +.jse-navigation-bar-path-editor.error.svelte-zc2wx7 { + border-color: var(--jse-error-color, #ee5341); +} +.jse-navigation-bar-path-editor.error.svelte-zc2wx7 input.jse-navigation-bar-text:where(.svelte-zc2wx7) { + color: var(--jse-error-color, #ee5341); +} +.jse-navigation-bar-path-editor.svelte-zc2wx7 .jse-copied-text:where(.svelte-zc2wx7) { + background: var(--message-success-background, #9ac45d); + color: var(--jse-message-success-color, #fff); + position: relative; + margin: 2px; + padding: 0 5px; + border-radius: 3px; +}`);var wXe=_e(''),yXe=_e('
              Copied!
              '),DXe=_e('
              ');function vXe(t,A){St(A,!1);var e=Ce(),i=nI("absolute-popup"),n=N(A,"path",8),o=N(A,"pathParser",8),r=N(A,"onChange",8),s=N(A,"onClose",8),a=N(A,"onError",8),c=N(A,"pathExists",8),l=Ce(),d=Ce(),C=Ce(!1),I=void 0,u=Ce(!1);function h(){g(l).focus()}function B(H){try{var V=o().parse(H);return function(Z){if(!c()(Z))throw new Error("Path does not exist in current document")}(V),{path:V,error:void 0}}catch(Z){return{path:void 0,error:Z}}}ua(()=>{h()}),gg(()=>{clearTimeout(I)}),Se(()=>(F(o()),F(n())),()=>{x(d,o().stringify(n()))}),Se(()=>(g(C),g(d)),()=>{x(e,g(C)?B(g(d)).error:void 0)}),Nn(),li();var f,b=DXe(),k=ge(b);Ho(k,H=>x(l,H),()=>g(l));var S=De(k,2),w=H=>{var V=wXe();nn(ge(V),{get data(){return hC}}),Ka(V,(Z,ye)=>eQ?.(Z,ye),()=>SA({text:String(g(e)||"")},i)),he(H,V)};ze(S,H=>{g(e)&&H(w)});var _=De(S,2),K=H=>{he(H,yXe())};ze(_,H=>{g(u)&&H(K)});var J,O=De(_,2);nn(ge(O),{get data(){return M2}}),xA((H,V)=>{f=ci(b,1,"jse-navigation-bar-path-editor svelte-zc2wx7",null,f,H),ah(k,g(d)),J=ci(O,1,"jse-navigation-bar-copy svelte-zc2wx7",null,J,V)},[()=>({error:g(e)}),()=>({copied:g(u)})],tA),QA("keydown",k,O2(function(H){var V=X2(H);if(V==="Escape"&&(H.preventDefault(),s()()),V==="Enter"){H.preventDefault(),x(C,!0);var Z=B(g(d));Z.path!==void 0?r()(Z.path):a()(Z.error)}})),QA("input",k,function(H){x(d,H.currentTarget.value)}),QA("click",O,function(){ZY(g(d)),x(u,!0),I=window.setTimeout(()=>x(u,!1),1e3),h()}),he(t,b),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-navigation-bar.svelte-xs03gj { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + background: var(--jse-panel-background, #ebebeb); + color: var(--jse-panel-button-color, inherit); + padding: 0; + margin: 0; + display: flex; + overflow: auto; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj) { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); + color: var(--jse-panel-color-readonly, #b2b2b2); + background: transparent; + border: none; + display: flex; + cursor: pointer; + outline: none; + align-items: center; +} +.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit.flex:where(.svelte-xs03gj) { + flex: 1; +} +.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj):focus, .jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj):hover, .jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit.editing:where(.svelte-xs03gj) { + background: var(--jse-panel-button-background-highlight, #e0e0e0); + color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); + transition: color 0.2s ease-in, background 0.2s ease-in; +} +.jse-navigation-bar.svelte-xs03gj .jse-navigation-bar-edit:where(.svelte-xs03gj) .jse-navigation-bar-space:where(.svelte-xs03gj) { + flex: 1; + text-align: left; +}`);var bXe=_e(" ",1),MXe=_e('
              ');function SXe(t,A){St(A,!1);var e=Ce(void 0,!0),i=Ce(void 0,!0),n=Es("jsoneditor:NavigationBar"),o=N(A,"json",9),r=N(A,"selection",9),s=N(A,"onSelect",9),a=N(A,"onError",9),c=N(A,"pathParser",9),l=Ce(void 0,!0),d=Ce(!1,!0);function C(V){n("get items for path",V);var Z=WA(o(),V);if(Array.isArray(Z))return dv(0,Z.length).map(String);if(vn(Z)){var ye=Object.keys(Z).slice(0);return ye.sort(IY),ye}return[]}function I(V){return Us(o(),V)}function u(V){n("select path",JSON.stringify(V)),s()(Fa(V,V))}function h(){x(d,!1)}function B(V){h(),u(V)}Se(()=>(F(r()),It),()=>{x(e,r()?It(r()):[])}),Se(()=>(F(o()),g(e)),()=>{x(i,sr(WA(o(),g(e))))}),Se(()=>g(e),()=>{g(e),setTimeout(()=>{if(g(l)&&g(l).scrollTo){var V=g(l).scrollWidth-g(l).clientWidth;V>0&&(n("scrollTo ",V),g(l).scrollTo({left:V,behavior:"smooth"}))}})}),Nn(),li(!0);var f=MXe(),b=ge(f),k=V=>{var Z=bXe(),ye=Ut(Z);fr(ye,1,()=>g(e),Jr,(X,ue,oe)=>{s2e(X,{getItems:C,get path(){return g(e)},index:oe,onSelect:u})});var P=De(ye,2),se=X=>{s2e(X,{getItems:C,get path(){return g(e)},get index(){return g(e),Be(()=>g(e).length)},onSelect:u})};ze(P,X=>{g(i)&&X(se)}),he(V,Z)},S=V=>{vXe(V,{get path(){return g(e)},onClose:h,onChange:B,get onError(){return a()},pathExists:I,get pathParser(){return c()}})};ze(b,V=>{g(d)?V(S,!1):V(k)});var w,_=De(b,2),K=ge(_),J=ge(K),O=De(K,2),H=tA(()=>g(d)?Qoe:goe);nn(O,{get data(){return g(H)}}),Ho(f,V=>x(l,V),()=>g(l)),xA((V,Z)=>{w=ci(_,1,"jse-navigation-bar-edit svelte-xs03gj",null,w,V),Rn(_,"title",g(d)?"Cancel editing the selected path":"Edit the selected path"),xt(J,Z)},[()=>({flex:!g(d),editing:g(d)}),()=>(F(sr),F(o()),g(d),Be(()=>sr(o())||g(d)?"\xA0":"Navigation bar"))],tA),QA("click",_,function(){x(d,!g(d))}),he(t,f),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-search-box.svelte-1mxl2uo { + border: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); + border-radius: 3px; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + background: var(--jse-panel-background, #ebebeb); + color: var(--jse-panel-color-readonly, #b2b2b2); + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); + display: inline-block; + width: 400px; + max-width: 100%; + overflow: auto; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) { + display: flex; + align-items: stretch; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo), +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) input:where(.svelte-1mxl2uo) { + font-family: inherit; + font-size: inherit; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo) { + display: block; + text-align: center; + border: none; + padding: 0 5px; + margin: 0; + cursor: pointer; + color: var(--jse-panel-button-color, inherit); + background: var(--jse-panel-button-background, transparent); +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo):hover { + color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); + background: var(--jse-panel-button-background-highlight, #e0e0e0); +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) input:where(.svelte-1mxl2uo) { + color: var(--jse-panel-color, var(--jse-text-color, #4d4d4d)); + border: var(--jse-input-border, 1px solid #d8dbdf); + border-radius: 3px; + background: var(--jse-input-background, var(--jse-background-color, #fff)); + height: 28px; + padding: 0 5px; + margin: 0; + flex: 1; + width: 0; + min-width: 50px; + outline: none; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-replace-toggle:where(.svelte-1mxl2uo) { + padding: var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)); + min-width: 20px; + background: var(--jse-panel-button-background-highlight, #e0e0e0); +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) { + flex: 1; + display: flex; + flex-direction: column; + padding: calc(0.5 * var(--jse-padding, 10px)); + gap: calc(0.5 * var(--jse-padding, 10px)); +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) { + flex: 1; + display: flex; + align-items: center; + position: relative; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) .jse-search-icon:where(.svelte-1mxl2uo) { + color: inherit; + cursor: inherit; + background: inherit; + width: 32px; + text-align: center; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) label.jse-search-input-label:where(.svelte-1mxl2uo) { + flex: 1; + display: flex; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) .jse-search-count:where(.svelte-1mxl2uo) { + color: inherit; + font-size: 80%; + visibility: hidden; + padding: 0 5px; + min-width: 36px; + text-align: center; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-search-section:where(.svelte-1mxl2uo) .jse-search-count.jse-visible:where(.svelte-1mxl2uo) { + visibility: visible; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-replace-section:where(.svelte-1mxl2uo) { + flex: 1; + display: flex; + padding-left: 32px; +} +.jse-search-box.svelte-1mxl2uo .jse-search-form:where(.svelte-1mxl2uo) .jse-search-contents:where(.svelte-1mxl2uo) .jse-replace-section:where(.svelte-1mxl2uo) button:where(.svelte-1mxl2uo) { + width: auto; +}`);var kXe=_e(''),xXe=_e('
              '),_Xe=_e('');function q1e(t,A){St(A,!1);var e=Ce(void 0,!0),i=Ce(void 0,!0),n=Ce(void 0,!0),o=Es("jsoneditor:SearchBox"),r=N(A,"json",9),s=N(A,"documentState",9),a=N(A,"parser",9),c=N(A,"showSearch",9),l=N(A,"showReplace",13),d=N(A,"readOnly",9),C=N(A,"columns",9),I=N(A,"onSearch",9),u=N(A,"onFocus",9),h=N(A,"onPatch",9),B=N(A,"onClose",9),f=Ce("",!0),b="",k=Ce("",!0),S=Ce(!1,!0),w=Ce(void 0,!0),_=KE(function(Ge){return He.apply(this,arguments)},300),K=KE(function(Ge){return PA.apply(this,arguments)},300);function J(){l(!l()&&!d())}function O(Ge){Ge.stopPropagation();var LA=X2(Ge);LA==="Enter"&&(Ge.preventDefault(),g(f)!==b?_.flush():oe()),LA==="Shift+Enter"&&(Ge.preventDefault(),me()),LA==="Ctrl+Enter"&&(Ge.preventDefault(),l()?ye():oe()),LA==="Ctrl+H"&&(Ge.preventDefault(),J()),LA==="Escape"&&(Ge.preventDefault(),Ie())}function H(Ge){X2(Ge)==="Enter"&&(Ge.preventDefault(),Ge.stopPropagation(),ye())}function V(){return Z.apply(this,arguments)}function Z(){return(Z=Vt(function*(){bo(),yield _.flush()})).apply(this,arguments)}function ye(){return P.apply(this,arguments)}function P(){return(P=Vt(function*(){var Ge;if(!d()){var LA=(Ge=g(w))===null||Ge===void 0?void 0:Ge.activeItem;if(o("handleReplace",{replaceText:g(k),activeItem:LA}),g(w)&&LA&&r()!==void 0){x(w,SA(SA({},Jde(g(w))),{},{activeIndex:g(i)}));var{operations:Fe,newSelection:pe}=Hqe(r(),s(),g(k),LA,a());h()(Fe,(Wt,Qt)=>({state:Qt,selection:pe})),bo(),yield K.flush(),yield $e()}}})).apply(this,arguments)}function se(){return X.apply(this,arguments)}function X(){return(X=Vt(function*(){if(!d()){o("handleReplaceAll",{text:g(f),replaceText:g(k)});var{operations:Ge,newSelection:LA}=function(Fe,pe,Wt,Qt,BA){for(var _t=Yde(Wt,Fe,{maxResults:1/0}),VA=[],YA=0;YA<_t.length;YA++){var Jt=_t[YA-1],KA=_t[YA];YA!==0&&KA.field===Jt.field&&wi(KA.path,Jt.path)?vi(VA).items.push(KA):VA.push({path:KA.path,field:KA.field,items:[KA]})}VA.sort((z,Ae)=>z.field!==Ae.field?z.field===A0.key?1:-1:Ae.path.length-z.path.length);var di,G=[];return VA.forEach(z=>{var{field:Ae,path:de,items:Ne}=z;if(Ae===A0.key){var pA=Hi(de),vA=WA(Fe,pA),Ke=vi(de),Re=r6(pA,Object.keys(vA),Ke,zde(Ke,Qt,Ne));G=G.concat(Re),di=$f(Fe,Re)}else{if(Ae!==A0.value)throw new Error("Cannot replace: unknown type of search result field ".concat(Ae));var wt=WA(Fe,de);if(wt===void 0)throw new Error("Cannot replace: path not found ".concat(pt(de)));var st=typeof wt=="string"?wt:String(wt),nA=_d(Fe,pe,de),Bt=zde(st,Qt,Ne),Wi=[{op:"replace",path:pt(de),value:nA?Bt:rQ(Bt,BA)}];G=G.concat(Wi),di=$f(Fe,Wi)}}),{operations:G,newSelection:di}}(r(),s(),g(f),g(k),a());h()(Ge,(Fe,pe)=>({state:pe,selection:LA})),yield $e()}})).apply(this,arguments)}function ue(Ge){Ge.select()}function oe(){return le.apply(this,arguments)}function le(){return(le=Vt(function*(){x(w,g(w)?Jde(g(w)):void 0),yield $e()})).apply(this,arguments)}function me(){return Te.apply(this,arguments)}function Te(){return Te=Vt(function*(){x(w,g(w)?function(Ge){var LA=Ge.activeIndex>0?Ge.activeIndex-1:Ge.items.length-1,Fe=Ge.items[LA],pe=Ge.items.map((Wt,Qt)=>SA(SA({},Wt),{},{active:Qt===LA}));return SA(SA({},Ge),{},{items:pe,activeItem:Fe,activeIndex:LA})}(g(w)):void 0),yield $e()}),Te.apply(this,arguments)}function $e(){return Je.apply(this,arguments)}function Je(){return(Je=Vt(function*(){var Ge;o("handleFocus",g(w));var LA=(Ge=g(w))===null||Ge===void 0?void 0:Ge.activeItem;LA&&r()!==void 0&&(yield u()(LA.path,LA.resultIndex))})).apply(this,arguments)}function Qe(){return Qe=Vt(function*(Ge){yield JA(Ge,g(f),r())}),Qe.apply(this,arguments)}function He(){return He=Vt(function*(Ge){yield JA(c(),Ge,r()),yield $e()}),He.apply(this,arguments)}function PA(){return PA=Vt(function*(Ge){yield JA(c(),g(f),Ge)}),PA.apply(this,arguments)}function JA(Ge,LA,Fe){return Ye.apply(this,arguments)}function Ye(){return Ye=Vt(function*(Ge,LA,Fe){return Ge?(o("applySearch",{showSearch:Ge,text:LA}),LA===""?(o("clearing search result"),g(w)!==void 0&&x(w,void 0),Promise.resolve()):(b=LA,x(S,!0),new Promise(pe=>{setTimeout(()=>{var Wt=Yde(LA,Fe,{maxResults:vJ,columns:C()});x(w,function(Qt,BA){var _t=BA!=null&&BA.activeItem?Pde(BA.activeItem):void 0,VA=Qt.findIndex(KA=>wi(_t,Pde(KA))),YA=VA!==-1?VA:BA?.activeIndex!==void 0&&BA?.activeIndex0?0:-1,Jt=Qt.map((KA,di)=>SA(SA({resultIndex:di},KA),{},{active:di===YA}));return{items:Jt,activeItem:Jt[YA],activeIndex:YA}}(Wt,g(w))),x(S,!1),pe()})}))):(g(w)&&x(w,void 0),Promise.resolve())}),Ye.apply(this,arguments)}function Ie(){o("handleClose"),_.cancel(),K.cancel(),JA(!1,g(f),r()),B()()}Se(()=>g(w),()=>{var Ge;x(e,((Ge=g(w))===null||Ge===void 0||(Ge=Ge.items)===null||Ge===void 0?void 0:Ge.length)||0)}),Se(()=>g(w),()=>{var Ge;x(i,((Ge=g(w))===null||Ge===void 0?void 0:Ge.activeIndex)||0)}),Se(()=>(g(e),vJ),()=>{x(n,g(e)>=vJ?"".concat(999,"+"):String(g(e)))}),Se(()=>(F(I()),g(w)),()=>{I()(g(w))}),Se(()=>F(c()),()=>{(function(Ge){Qe.apply(this,arguments)})(c())}),Se(()=>g(f),()=>{_(g(f))}),Se(()=>F(r()),()=>{K(r())}),Nn(),li(!0);var We=ar(),we=Ut(We),Ze=Ge=>{var LA=_Xe(),Fe=ge(LA),pe=ge(Fe),Wt=Ke=>{var Re=kXe(),wt=ge(Re),st=tA(()=>l()?ld:TE);nn(wt,{get data(){return g(st)}}),QA("click",Re,J),he(Ke,Re)};ze(pe,Ke=>{d()||Ke(Wt)});var Qt=ge(De(pe,2)),BA=ge(Qt),_t=ge(BA),VA=Ke=>{nn(Ke,{get data(){return aoe},spin:!0})},YA=Ke=>{nn(Ke,{get data(){return o3}})};ze(_t,Ke=>{g(S)?Ke(VA):Ke(YA,!1)});var Jt=De(BA,2),KA=ge(Jt);zs(()=>CM(KA,()=>g(f),Ke=>x(f,Ke))),Ka(KA,Ke=>ue?.(Ke)),zs(()=>QA("paste",KA,V));var di,G=De(Jt,2),z=ge(G),Ae=De(G,2);nn(ge(Ae),{get data(){return Eoe}});var de=De(Ae,2);nn(ge(de),{get data(){return doe}});var Ne=De(de,2);nn(ge(Ne),{get data(){return r3}});var pA=De(Qt,2),vA=Ke=>{var Re=xXe(),wt=ge(Re),st=De(wt,2),nA=De(st,2);CM(wt,()=>g(k),Bt=>x(k,Bt)),QA("keydown",wt,H),QA("click",st,ye),QA("click",nA,se),he(Ke,Re)};ze(pA,Ke=>{l()&&!d()&&Ke(vA)}),xA(Ke=>{var Re;di=ci(G,1,"jse-search-count svelte-1mxl2uo",null,di,Ke),xt(z,"".concat(g(i)!==-1&&g(i)({"jse-visible":g(f)!==""})],tA),QA("click",Ae,oe),QA("click",de,me),QA("click",Ne,Ie),QA("keydown",Fe,O),he(Ge,LA)};ze(we,Ge=>{c()&&Ge(Ze)}),he(t,We),kt()}var Vp=Symbol("path");function RXe(t,A){var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1/0,i={};Array.isArray(t)&&function(o,r,s){if(o.length1?(o.length-1)/(r-1):o.length,c=0;c{vn(o)?W1e(o,i,A):i[Vp]=!0});var n=[];return Vp in i&&n.push([]),Z1e(i,[],n,A),n}function W1e(t,A,e){for(var i in t){var n=t[i],o=A[i]||(A[i]={});vn(n)&&e?W1e(n,o,e):o[Vp]===void 0&&(o[Vp]=!0)}}function Z1e(t,A,e,i){for(var n in t){var o=A.concat(n),r=t[n];r&&r[Vp]===!0&&e.push(o),nr(r)&&i&&Z1e(r,o,e,i)}}function NXe(t,A,e,i,n,o){for(var r=arguments.length>6&&arguments[6]!==void 0?arguments[6]:80,s=Wo(e)?e.length:0,a=function(b,k){var S=Object.values(b);if(An(S))return k;var w=(_,K)=>_+K;return S.reduce(w)/S.length}(i,n),c=t-r,l=A+2*r,d=b=>i[b]||n,C=0,I=o;I0&&(I-=d(--C));for(var u=C,h=0;hNd(i,o))}}function $u(t,A){var{rowIndex:e,columnIndex:i}=t;return[String(e),...A[i]]}function LXe(t,A){var[e,i]=CG(t,r=>SY(r.path[0])),n=gG(e,FXe),o=dG(n,r=>{var s={row:[],columns:{}};return r.forEach(a=>{var c=function(l,d){var C=rg(l.path,d);return C.columnIndex!==-1?C.columnIndex:-1}(a,A);c!==-1?(s.columns[c]===void 0&&(s.columns[c]=[]),s.columns[c].push(a)):s.row.push(a)}),s});return{root:i,rows:o}}function Nf(t,A){if(A&&A.length!==0)return A.length===1?A[0]:{path:t,message:"Multiple validation issues: "+A.map(e=>Yc(e.path)+" "+e.message).join(", "),severity:e0.warning}}function FXe(t){return parseInt(t.path[0],10)}function GXe(t,A,e){var i=A.some(n=>function(o,r,s){if(!o)return!1;if(r.op==="replace"){var a=Sa(r.path),{rowIndex:c,columnIndex:l}=rg(a,s),d=s.findIndex(C=>wi(C,o.path));if(c!==-1&&l!==-1&&l!==d)return!1}return!0}(t,n,e));return i?void 0:t}var Ga=Es("jsoneditor:actions");function X1e(t){return uY.apply(this,arguments)}function uY(){return uY=Vt(function*(t){var{json:A,selection:e,indentation:i,readOnly:n,parser:o,onPatch:r}=t;if(!n&&A!==void 0&&e&&Of(e)){var s=p1e(A,e,i,o);if(s!==void 0){Ga("cut",{selection:e,clipboard:s,indentation:i}),yield ZY(s);var{operations:a,newSelection:c}=M1e(A,e);r(a,(l,d)=>({state:d,selection:c}))}}}),uY.apply(this,arguments)}function $1e(t){return hY.apply(this,arguments)}function hY(){return hY=Vt(function*(t){var{json:A,selection:e,indentation:i,parser:n}=t,o=p1e(A,e,i,n);o!==void 0&&(Ga("copy",{clipboard:o,indentation:i}),yield ZY(o))}),hY.apply(this,arguments)}function eCe(t){var{clipboardText:A,json:e,selection:i,readOnly:n,parser:o,onPatch:r,onChangeText:s,onPasteMultilineText:a,openRepairModal:c}=t;if(!n)try{l(A)}catch{c(A,C=>{Ga("repaired pasted text: ",C),l(C)})}function l(d){if(e!==void 0){var C=i||zi([]),I=b1e(e,C,d,o),u=function(h,B,f){var b=arguments.length>3&&arguments[3]!==void 0?arguments[3]:Fqe;if(h.length>b)return!1;var k=/\n/.test(h);if(!k)return!1;var S=B.some(_=>_.op==="replace"&&Array.isArray(_.value)),w=B.filter(_=>_.op==="add").length>1;if(!S&&!w)return!1;try{return t6(h,f.parse),!1}catch{return!0}}(A,I,o);Ga("paste",{pastedText:d,operations:I,ensureSelection:C,pasteMultilineText:u}),r(I,(h,B)=>{var f=B;return I.filter(b=>(TF(b)||bD(b))&&sr(b.value)).forEach(b=>{var k=Sc(e,b.path);f=lh(h,f,k)}),{state:f}}),u&&a(d)}else Ga("paste text",{pastedText:d}),s(A,(h,B)=>{if(h)return{state:lh(h,B,[])}})}}function ACe(t){var{json:A,text:e,selection:i,keepSelection:n,readOnly:o,onChange:r,onPatch:s}=t;if(!o&&i){var a=A!==void 0&&(Bs(i)||fn(i))?Fa(i.path,i.path):i;if(An(It(i)))Ga("remove root",{selection:i}),r&&r({text:"",json:void 0},A!==void 0?{text:void 0,json:A}:{text:e||"",json:A},{contentErrors:void 0,patchResult:void 0});else if(A!==void 0){var{operations:c,newSelection:l}=M1e(A,a);Ga("remove",{operations:c,selection:i,newSelection:l}),s(c,(d,C)=>({state:C,selection:n?i:l}))}}}function MM(t){var{insertType:A,selectInside:e,initialValue:i,json:n,selection:o,readOnly:r,parser:s,onPatch:a,onReplaceJson:c}=t;if(!r){var l=function(h,B,f){if(f==="object")return{};if(f==="array")return[];if(f==="structure"&&h!==void 0){var b=B?Q1e(B):[],k=WA(h,b);if(Array.isArray(k)&&!An(k)){var S=Wl(k);return sr(S)?sG(S,w=>Array.isArray(w)?[]:vn(w)?void 0:""):""}}return""}(n,o,A);if(n!==void 0){var d=s.stringify(l),C=b1e(n,o,d,s);Ga("onInsert",{insertType:A,operations:C,newValue:l,data:d});var I=vi(C.filter(h=>h.op==="add"||h.op==="replace"));a(C,(h,B,f)=>{if(I){var b=Sc(h,I.path);if(sr(l))return{state:Zg(h,B,b,HY),selection:e?e1(b):f};if(l===""){var k=An(b)?void 0:WA(h,Hi(b));return{state:Zg(h,B,b,rM),selection:vn(k)?zY(b,i):fM(b,i)}}}}),Ga("after patch")}else{Ga("onInsert",{insertType:A,newValue:l});var u=[];c(l,(h,B)=>({state:lh(h,B,u),selection:sr(l)?e1(u):fM(u)}))}}}function tCe(t){return BY.apply(this,arguments)}function BY(){return BY=Vt(function*(t){var{char:A,selectInside:e,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a,onSelect:c}=t;o||(Bs(n)?c(SA(SA({},n),{},{edit:!0,initialValue:A})):A==="{"?MM({insertType:"object",selectInside:e,initialValue:void 0,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a}):A==="["?MM({insertType:"array",selectInside:e,initialValue:void 0,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a}):fn(n)&&i!==void 0?sr(WA(i,n.path))||c(SA(SA({},n),{},{edit:!0,initialValue:A})):(Ga("onInsertValueWithCharacter",{char:A}),yield function(l){return EY.apply(this,arguments)}({char:A,json:i,selection:n,readOnly:o,parser:r,onPatch:s,onReplaceJson:a})))}),BY.apply(this,arguments)}function EY(){return EY=Vt(function*(t){var{char:A,json:e,selection:i,readOnly:n,parser:o,onPatch:r,onReplaceJson:s}=t;n||MM({insertType:"value",selectInside:!1,initialValue:A,json:e,selection:i,readOnly:n,parser:o,onPatch:r,onReplaceJson:s})}),EY.apply(this,arguments)}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-json-preview.svelte-1vjn89h { + flex: 1; + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + color: var(--jse-panel-color-readonly, #b2b2b2); + overflow: auto; + white-space: pre-wrap; + padding: 2px; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +}`);var KXe=_e('
              ');function iCe(t,A){St(A,!1);var e=Ce(),i=Ce(),n=N(A,"text",8),o=N(A,"json",8),r=N(A,"indentation",8),s=N(A,"parser",8);Se(()=>(F(o()),F(n())),()=>{x(e,o()!==void 0?{json:o()}:{text:n()||""})}),Se(()=>(g(e),F(r()),F(s()),uM),()=>{x(i,Y2($J(g(e),r(),s()),uM))}),Nn(),li();var a=KXe(),c=ge(a);xA(()=>xt(c,g(i))),he(t,a),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +button.jse-context-menu-button.svelte-1idfykj { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + flex: 1; + white-space: nowrap; + padding: var(--jse-padding, 10px); + color: inherit; +} +button.jse-context-menu-button.svelte-1idfykj:hover { + background: var(--jse-context-menu-background-highlight, #7a7a7a); +} +button.jse-context-menu-button.svelte-1idfykj:focus { + background: var(--jse-context-menu-background-highlight, #7a7a7a); + z-index: 1; +} +button.jse-context-menu-button.svelte-1idfykj:disabled { + color: var(--jse-context-menu-color-disabled, #9d9d9d); + background: unset; +} +button.jse-context-menu-button.left.svelte-1idfykj { + text-align: left; +} +button.jse-context-menu-button.svelte-1idfykj svg { + width: 16px; +}`);var UXe=_e('');function UJ(t,A){St(A,!1);var e=N(A,"item",8),i=N(A,"className",8,void 0),n=N(A,"onRequestClose",8);li();var o=UXe(),r=ge(o),s=l=>{nn(l,{get data(){return F(e()),Be(()=>e().icon)}})};ze(r,l=>{F(e()),Be(()=>e().icon)&&l(s)});var a=De(r,2),c=l=>{var d=Ss();xA(()=>xt(d,(F(e()),Be(()=>e().text)))),he(l,d)};ze(a,l=>{F(e()),Be(()=>e().text)&&l(c)}),xA(l=>{ci(o,1,l,"svelte-1idfykj"),Rn(o,"title",(F(e()),Be(()=>e().title))),o.disabled=(F(e()),Be(()=>e().disabled||!1))},[()=>AI((F(o0),F(i()),F(e()),Be(()=>o0("jse-context-menu-button",i(),e().className))))],tA),QA("click",o,l=>{n()(),e().onClick(l)}),he(t,o),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-dropdown-button.svelte-11rxb2m { + flex: 1; + line-height: normal; + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + position: relative; + padding: 0; + display: flex; +} +.jse-dropdown-button.svelte-11rxb2m ul:where(.svelte-11rxb2m) { + margin: 0; + padding: 0; +} +.jse-dropdown-button.svelte-11rxb2m ul:where(.svelte-11rxb2m) li:where(.svelte-11rxb2m) { + margin: 0; + padding: 0; + list-style-type: none; +} +.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + width: 2em; + background: var(--jse-context-menu-background, #656565); + color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); + border-radius: 0; +} +.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown.jse-visible:where(.svelte-11rxb2m) { + background: var(--jse-context-menu-background, #656565); +} +.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m):hover { + background: var(--jse-context-menu-background-highlight, #7a7a7a); +} +.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m):focus { + z-index: 1; +} +.jse-dropdown-button.svelte-11rxb2m button.jse-open-dropdown:where(.svelte-11rxb2m):disabled { + color: var(--jse-context-menu-color-disabled, #9d9d9d); + background: unset; +} +.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) { + display: none; + position: absolute; + top: 100%; + left: 0; + z-index: 1; + background: var(--jse-context-menu-background, #656565); + color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); +} +.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items.jse-visible:where(.svelte-11rxb2m) { + display: block; +} +.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) button:where(.svelte-11rxb2m) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + width: 100%; + text-align: left; + padding: var(--jse-padding, 10px); + margin: 0; +} +.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) button:where(.svelte-11rxb2m):hover { + background: var(--jse-context-menu-background-highlight, #7a7a7a); +} +.jse-dropdown-button.svelte-11rxb2m .jse-dropdown-items:where(.svelte-11rxb2m) button:where(.svelte-11rxb2m):disabled { + color: var(--jse-context-menu-color-disabled, #9d9d9d); + background: unset; +}`);var TXe=_e('
            • '),OXe=_e('
                ');Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +button.jse-context-menu-button.svelte-1idfykj { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + flex: 1; + white-space: nowrap; + padding: var(--jse-padding, 10px); + color: inherit; +} +button.jse-context-menu-button.svelte-1idfykj:hover { + background: var(--jse-context-menu-background-highlight, #7a7a7a); +} +button.jse-context-menu-button.svelte-1idfykj:focus { + background: var(--jse-context-menu-background-highlight, #7a7a7a); + z-index: 1; +} +button.jse-context-menu-button.svelte-1idfykj:disabled { + color: var(--jse-context-menu-color-disabled, #9d9d9d); + background: unset; +} +button.jse-context-menu-button.left.svelte-1idfykj { + text-align: left; +} +button.jse-context-menu-button.svelte-1idfykj svg { + width: 16px; +}`);var JXe=_e('');function TJ(t,A){St(A,!1);var e=Ce(),i=N(A,"item",8),n=N(A,"className",8,void 0),o=N(A,"onRequestClose",8);Se(()=>(F(i()),F(o())),()=>{x(e,i().items.map(r=>SA(SA({},r),{},{onClick:s=>{o()(),r.onClick(s)}})))}),Nn(),li(),function(r,s){St(s,!1);var a=Ce(void 0,!0),c=N(s,"items",25,()=>[]),l=N(s,"title",9,void 0),d=N(s,"width",9,"120px"),C=Ce(!1,!0);function I(){x(C,!1)}function u(w){X2(w)==="Escape"&&(w.preventDefault(),x(C,!1))}ua(()=>{document.addEventListener("click",I),document.addEventListener("keydown",u)}),gg(()=>{document.removeEventListener("click",I),document.removeEventListener("keydown",u)}),Se(()=>F(c()),()=>{x(a,c().every(w=>w.disabled===!0))}),Nn(),li(!0);var h=OXe(),B=ge(h);Er(B,s,"defaultItem",{},null);var f,b=De(B,2);nn(ge(b),{get data(){return ld}});var k,S=De(b,2);fr(ge(S),5,c,Jr,(w,_)=>{var K=TXe(),J=ge(K),O=ge(J),H=Z=>{nn(Z,{get data(){return g(_),Be(()=>g(_).icon)}})};ze(O,Z=>{g(_),Be(()=>g(_).icon)&&Z(H)});var V=De(O);xA(()=>{var Z;Rn(J,"title",(g(_),Be(()=>g(_).title))),J.disabled=(g(_),Be(()=>g(_).disabled)),ci(J,1,AI((g(_),Be(()=>g(_).className))),"svelte-11rxb2m"),xt(V," ".concat((g(_),(Z=Be(()=>g(_).text))!==null&&Z!==void 0?Z:"")))}),QA("click",J,Z=>g(_).onClick(Z)),he(w,K)}),xA((w,_)=>{var K;Rn(h,"title",l()),f=ci(b,1,"jse-open-dropdown svelte-11rxb2m",null,f,w),b.disabled=g(a),k=ci(S,1,"jse-dropdown-items svelte-11rxb2m",null,k,_),cg(S,"width: ".concat((K=d())!==null&&K!==void 0?K:"",";"))},[()=>({"jse-visible":g(C)}),()=>({"jse-visible":g(C)})],tA),QA("click",b,function(){var w=g(C);setTimeout(()=>x(C,!w))}),QA("click",h,I),he(r,h),kt()}(t,{get width(){return F(i()),Be(()=>i().width)},get items(){return g(e)},$$slots:{defaultItem:(r,s)=>{var a=JXe(),c=ge(a),l=C=>{nn(C,{get data(){return F(i()),Be(()=>i().main.icon)}})};ze(c,C=>{F(i()),Be(()=>i().main.icon)&&C(l)});var d=De(c);xA(C=>{var I;ci(a,1,C,"svelte-1idfykj"),Rn(a,"title",(F(i()),Be(()=>i().main.title))),a.disabled=(F(i()),Be(()=>i().main.disabled||!1)),xt(d," ".concat((F(i()),(I=Be(()=>i().main.text))!==null&&I!==void 0?I:"")))},[()=>AI((F(o0),F(n()),F(i()),Be(()=>o0("jse-context-menu-button",n(),i().main.className))))],tA),QA("click",a,C=>{o()(),i().main.onClick(C)}),he(r,a)}}}),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-contextmenu.svelte-12z7bz1 { + box-shadow: var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24)); + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + background: var(--jse-context-menu-background, #656565); + color: var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)); +} +.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) { + display: flex; + flex-direction: row; + align-items: flex-start; + justify-content: stretch; +} +.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) div.jse-label:where(.svelte-12z7bz1) { + flex: 1; + white-space: nowrap; + padding: var(--jse-padding, 10px); + color: var(--jse-context-menu-color-disabled, #9d9d9d); + line-height: normal; +} +.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) div.jse-tip:where(.svelte-12z7bz1) { + flex: 1; + background: var(--jse-context-menu-tip-background, rgba(255, 255, 255, 0.2)); + color: var(--context-menu-tip-color, inherit); + margin: calc(0.5 * var(--jse-padding, 10px)); + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); + font-size: 80%; + line-height: 1.3em; + display: flex; + flex-direction: row; + align-items: flex-start; + gap: var(--jse-padding, 10px); + border-radius: 3px; +} +.jse-contextmenu.svelte-12z7bz1 .jse-row:where(.svelte-12z7bz1) div.jse-tip:where(.svelte-12z7bz1) div.jse-tip-icon:where(.svelte-12z7bz1) { + padding-top: calc(0.5 * var(--jse-padding, 10px)); +} +.jse-contextmenu.svelte-12z7bz1 .jse-column:where(.svelte-12z7bz1) { + flex: 1; + display: flex; + flex-direction: column; + align-items: stretch; +} +.jse-contextmenu.svelte-12z7bz1 .jse-column:where(.svelte-12z7bz1):not(:last-child) { + border-right: 1px solid var(--jse-context-menu-separator-color, #7a7a7a); +} +.jse-contextmenu.svelte-12z7bz1 .jse-separator:where(.svelte-12z7bz1) { + width: 100%; + height: 1px; + background: var(--jse-context-menu-separator-color, #7a7a7a); +}`);var YXe=_e('
                '),HXe=_e('
                '),zXe=_e('
                '),PXe=_e('
                '),jXe=_e('
                '),VXe=_e('
                '),qXe=_e('
                '),WXe=_e('');function nCe(t,A){St(A,!1);var e=N(A,"items",9),i=N(A,"onRequestClose",9),n=N(A,"tip",9),o=Ce(void 0,!0);ua(()=>{var C=Array.from(g(o).querySelectorAll("button")).find(I=>!I.disabled);C&&C.focus()});var r={ArrowUp:"Up",ArrowDown:"Down",ArrowLeft:"Left",ArrowRight:"Right"};function s(C){return console.error("Unknown type of context menu item",C),"???"}li(!0);var a=WXe(),c=ge(a);fr(c,1,e,Jr,(C,I)=>{var u=ar(),h=Ut(u),B=b=>{UJ(b,{get item(){return g(I)},get onRequestClose(){return i()}})},f=(b,k)=>{var S=_=>{TJ(_,{get item(){return g(I)},get onRequestClose(){return i()}})},w=(_,K)=>{var J=H=>{var V=jXe();fr(V,5,()=>(g(I),Be(()=>g(I).items)),Jr,(Z,ye)=>{var P=ar(),se=Ut(P),X=oe=>{UJ(oe,{get item(){return g(ye)},get onRequestClose(){return i()}})},ue=(oe,le)=>{var me=$e=>{TJ($e,{get item(){return g(ye)},get onRequestClose(){return i()}})},Te=($e,Je)=>{var Qe=PA=>{var JA=zXe();fr(JA,5,()=>(g(ye),Be(()=>g(ye).items)),Jr,(Ye,Ie)=>{var We=ar(),we=Ut(We),Ze=LA=>{UJ(LA,{className:"left",get item(){return g(Ie)},get onRequestClose(){return i()}})},Ge=(LA,Fe)=>{var pe=Qt=>{TJ(Qt,{className:"left",get item(){return g(Ie)},get onRequestClose(){return i()}})},Wt=(Qt,BA)=>{var _t=YA=>{he(YA,YXe())},VA=(YA,Jt)=>{var KA=G=>{var z=HXe(),Ae=ge(z);xA(()=>xt(Ae,(g(Ie),Be(()=>g(Ie).text)))),he(G,z)},di=G=>{var z=Ss();xA(Ae=>xt(z,Ae),[()=>(g(Ie),Be(()=>s(g(Ie))))],tA),he(G,z)};ze(YA,G=>{F(bde),g(Ie),Be(()=>bde(g(Ie)))?G(KA):G(di,!1)},Jt)};ze(Qt,YA=>{F(JC),g(Ie),Be(()=>JC(g(Ie)))?YA(_t):YA(VA,!1)},BA)};ze(LA,Qt=>{F(_f),g(Ie),Be(()=>_f(g(Ie)))?Qt(pe):Qt(Wt,!1)},Fe)};ze(we,LA=>{F(J2),g(Ie),Be(()=>J2(g(Ie)))?LA(Ze):LA(Ge,!1)}),he(Ye,We)}),he(PA,JA)},He=(PA,JA)=>{var Ye=We=>{he(We,PXe())},Ie=We=>{var we=Ss();xA(Ze=>xt(we,Ze),[()=>(g(ye),Be(()=>s(g(ye))))],tA),he(We,we)};ze(PA,We=>{F(JC),g(ye),Be(()=>JC(g(ye)))?We(Ye):We(Ie,!1)},JA)};ze($e,PA=>{F(Sde),g(ye),Be(()=>Sde(g(ye)))?PA(Qe):PA(He,!1)},Je)};ze(oe,$e=>{F(_f),g(ye),Be(()=>_f(g(ye)))?$e(me):$e(Te,!1)},le)};ze(se,oe=>{F(J2),g(ye),Be(()=>J2(g(ye)))?oe(X):oe(ue,!1)}),he(Z,P)}),he(H,V)},O=(H,V)=>{var Z=P=>{he(P,VXe())},ye=P=>{var se=Ss();xA(X=>xt(se,X),[()=>(g(I),Be(()=>s(g(I))))],tA),he(P,se)};ze(H,P=>{F(JC),g(I),Be(()=>JC(g(I)))?P(Z):P(ye,!1)},V)};ze(_,H=>{F(Mde),g(I),Be(()=>Mde(g(I)))?H(J):H(O,!1)},K)};ze(b,_=>{F(_f),g(I),Be(()=>_f(g(I)))?_(S):_(w,!1)},k)};ze(h,b=>{F(J2),g(I),Be(()=>J2(g(I)))?b(B):b(f,!1)}),he(C,u)});var l=De(c,2),d=C=>{var I=qXe(),u=ge(I),h=ge(u);nn(ge(h),{get data(){return ooe}});var B=ge(De(h,2));xA(()=>xt(B,n())),he(C,I)};ze(l,C=>{n()&&C(d)}),Ho(a,C=>x(o,C),()=>g(o)),QA("keydown",a,function(C){var I=X2(C),u=r[I];if(u&&C.target){C.preventDefault();var h=uqe({allElements:Array.from(g(o).querySelectorAll("button:not([disabled])")),currentElement:C.target,direction:u,hasPrio:B=>B.getAttribute("data-type")!=="jse-open-dropdown"});h&&h.focus()}}),he(t,a),kt()}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-value.jse-string.svelte-6ttr41 { + color: var(--jse-value-color-string, #008000); +} +.jse-value.jse-object.svelte-6ttr41, .jse-value.jse-array.svelte-6ttr41 { + min-width: 16px; + color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); +} +.jse-value.jse-number.svelte-6ttr41 { + color: var(--jse-value-color-number, #ee422e); +} +.jse-value.jse-boolean.svelte-6ttr41 { + color: var(--jse-value-color-boolean, #ff8c00); +} +.jse-value.jse-null.svelte-6ttr41 { + color: var(--jse-value-color-null, #004ed0); +} +.jse-value.jse-invalid.svelte-6ttr41 { + color: var(--jse-text-color, #4d4d4d); +} +.jse-value.jse-url.svelte-6ttr41 { + color: var(--jse-value-color-url, #008000); + text-decoration: underline; +} + +.jse-enum-value.svelte-6ttr41 { + background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); + border: none; + padding: 0; + font-family: inherit; + font-size: inherit; + cursor: pointer; + outline: none; +} +.jse-enum-value.jse-selected.svelte-6ttr41 { + background: var(--jse-selection-background-color, #d3d3d3); + color: inherit; +} +.jse-enum-value.jse-value.svelte-6ttr41:focus { + color: var(--jse-text-color, #4d4d4d); +}`);var eJA=_e(""),AJA=_e("");var eM,AM;function tM(t,A){return eM||(AM=new WeakMap,eM=new ResizeObserver(e=>{for(var i of e){var n=AM.get(i.target);n&&n(i.target)}})),AM.set(t,A),eM.observe(t),{destroy:()=>{AM.delete(t),eM.unobserve(t)}}}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-tree-mode.svelte-vrx1dr { + flex: 1; + display: flex; + flex-direction: column; + position: relative; + background: var(--jse-background-color, #fff); + min-width: 0; + min-height: 0; + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + color: var(--jse-text-color, #4d4d4d); + line-height: var(--jse-line-height, calc(1em + 4px)); +} +.jse-tree-mode.svelte-vrx1dr .jse-hidden-input-label:where(.svelte-vrx1dr) .jse-hidden-input:where(.svelte-vrx1dr) { + position: fixed; + top: -10px; + left: -10px; + width: 1px; + height: 1px; + padding: 0; + border: 0; + outline: none; +} +.jse-tree-mode.no-main-menu.svelte-vrx1dr { + border-top: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-tree-mode.svelte-vrx1dr .jse-search-box-container:where(.svelte-vrx1dr) { + position: relative; + height: 0; + top: var(--jse-padding, 10px); + margin-right: calc(var(--jse-padding, 10px) + 20px); + margin-left: var(--jse-padding, 10px); + text-align: right; + z-index: 3; +} +.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) { + flex: 1; + overflow: auto; + position: relative; + padding: 2px; + display: flex; + flex-direction: column; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr):last-child { + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) .jse-loading-space:where(.svelte-vrx1dr) { + flex: 1; +} +.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) .jse-loading:where(.svelte-vrx1dr) { + flex: 2; + text-align: center; + color: var(--jse-panel-color-readonly, #b2b2b2); + box-sizing: border-box; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); +} +.jse-tree-mode.svelte-vrx1dr .jse-contents:where(.svelte-vrx1dr) .jse-search-box-background:where(.svelte-vrx1dr) { + border: 50px solid var(--jse-modal-background, #f5f5f5); + margin: -2px; + margin-bottom: 2px; + display: inline-block; +}`);var ZXe=_e(" ",1),XXe=_e('
                '),$Xe=_e('
                ',1),e$e=_e(' ',1),A$e=_e('
                loading...
                '),t$e=_e('
                ',1);function fY(t,A){St(A,!1);var e=Ce(void 0,!0),i=Es("jsoneditor:TreeMode"),n=typeof window>"u";i("isSSR:",n);var o=IC(),r=IC(),{openAbsolutePopup:s,closeAbsolutePopup:a}=nI("absolute-popup"),c=Ce(void 0,!0),l=Ce(void 0,!0),d=Ce(void 0,!0),C=!1,I=Y1e(),u=N(A,"readOnly",9),h=N(A,"externalContent",9),B=N(A,"externalSelection",9),f=N(A,"history",9),b=N(A,"truncateTextSize",9),k=N(A,"mainMenuBar",9),S=N(A,"navigationBar",9),w=N(A,"escapeControlCharacters",9),_=N(A,"escapeUnicodeCharacters",9),K=N(A,"parser",9),J=N(A,"parseMemoizeOne",9),O=N(A,"validator",9),H=N(A,"validationParser",9),V=N(A,"pathParser",9),Z=N(A,"indentation",9),ye=N(A,"onError",9),P=N(A,"onChange",9),se=N(A,"onChangeMode",9),X=N(A,"onSelect",9),ue=N(A,"onUndo",9),oe=N(A,"onRedo",9),le=N(A,"onRenderValue",9),me=N(A,"onRenderMenu",9),Te=N(A,"onRenderContextMenu",9),$e=N(A,"onClassName",9),Je=N(A,"onFocus",9),Qe=N(A,"onBlur",9),He=N(A,"onSortModal",9),PA=N(A,"onTransformModal",9),JA=N(A,"onJSONEditorModal",9),Ye=!1,Ie=Ce(!1,!0),We=Ce(void 0,!0);qY({onMount:ua,onDestroy:gg,getWindow:()=>i6(g(d)),hasFocus:()=>Ye&&document.hasFocus()||RY(g(d)),onFocus:()=>{C=!0,Je()&&Je()()},onBlur:()=>{C=!1,Qe()&&Qe()()}});var we=Ce(void 0,!0),Ze=Ce(void 0,!0),Ge=void 0,LA=!1,Fe=Ce(iY({json:g(we)}),!0),pe=Ce(Yp(B())?B():void 0,!0);function Wt(j){x(pe,j)}ua(()=>{if(g(pe)){var j=It(g(pe));x(Fe,Zg(g(we),g(Fe),j,rM)),setTimeout(()=>EA(j))}});var Qt,BA=Ce(void 0,!0),_t=Ce(void 0,!0),VA=Ce(void 0,!0),YA=Ce(void 0,!0),Jt=Ce(!1,!0),KA=Ce(!1,!0);function di(j){x(YA,(Qt=j)?k1e(g(we),Qt.items):void 0)}function G(j,Ee){return z.apply(this,arguments)}function z(){return(z=Vt(function*(j,Ee){x(Fe,Zg(g(we),g(Fe),j,rM));var qe=gA(Ee);yield Ft(j,{element:qe})})).apply(this,arguments)}function Ae(){x(Jt,!1),x(KA,!1),ri()}function de(j){i("select validation error",j),x(pe,zi(j.path)),Ft(j.path)}function Ne(j){var Ee=arguments.length>1&&arguments[1]!==void 0?arguments[1]:nY;i("expand"),x(Fe,Zg(g(we),g(Fe),j,Ee))}function pA(j,Ee){x(Fe,Rde(g(we),g(Fe),j,Ee)),g(pe)&&function(qe,kA){return Nd(It(qe),kA)&&(It(qe).length>kA.length||cs(qe))}(g(pe),j)&&x(pe,void 0)}var vA=Ce(!1,!0),Ke=Ce([],!0),Re=Ce(void 0,!0),wt=OE(H1e);function st(j,Ee,qe,kA){Yf(()=>{var MA;try{MA=wt(j,Ee,qe,kA)}catch(wA){MA=[{path:[],message:"Failed to validate: "+wA.message,severity:e0.warning}]}wi(MA,g(Ke))||(i("validationErrors changed:",MA),x(Ke,MA),x(Re,function(wA,yt){var at;return yt.forEach(Ni=>{at=o2e(wA,at,Ni.path,(Gn,$i)=>SA(SA({},$i),{},{validationError:Ni}))}),yt.forEach(Ni=>{for(var Gn=Ni.path;Gn.length>0;)Gn=Hi(Gn),at=o2e(wA,at,Gn,($i,fo)=>fo.validationError?fo:SA(SA({},fo),{},{validationError:{isChildError:!0,path:Gn,message:"Contains invalid data",severity:e0.warning}}))}),at}(j,g(Ke))))},MA=>i("validationErrors updated in ".concat(MA," ms")))}function nA(){return i("validate"),Ge?{parseError:Ge,isRepairable:!1}:(st(g(we),O(),K(),H()),An(g(Ke))?void 0:{validationErrors:g(Ke)})}function Bt(){return g(we)}function Wi(){return g(Fe)}function Qn(){return g(pe)}function dn(j){i("applyExternalContent",{updatedContent:j}),Up(j)?function(Ee){if(Ee!==void 0){var qe=!wi(g(we),Ee);if(i("update external json",{isChanged:qe,currentlyText:g(we)===void 0}),!!qe){var kA={documentState:g(Fe),selection:g(pe),json:g(we),text:g(Ze),textIsRepaired:g(vA)};x(we,Ee),x(Fe,Dl(Ee,g(Fe))),HA(g(we)),x(Ze,void 0),x(vA,!1),Ge=void 0,Cn(g(we)),Gi(kA)}}}(j.json):Kp(j)&&function(Ee){if(!(Ee===void 0||Up(h()))){var qe=Ee!==g(Ze);if(i("update external text",{isChanged:qe}),!!qe){var kA={documentState:g(Fe),selection:g(pe),json:g(we),text:g(Ze),textIsRepaired:g(vA)};try{x(we,J()(Ee)),x(Fe,Dl(g(we),g(Fe))),HA(g(we)),x(Ze,Ee),x(vA,!1),Ge=void 0}catch(MA){try{x(we,J()(jl(Ee))),x(Fe,Dl(g(we),g(Fe))),HA(g(we)),x(Ze,Ee),x(vA,!0),Ge=void 0,Cn(g(we))}catch{x(we,void 0),x(Fe,void 0),x(Ze,h().text),x(vA,!1),Ge=g(Ze)!==void 0&&g(Ze)!==""?Wf(g(Ze),MA.message||String(MA)):void 0}}Cn(g(we)),Gi(kA)}}}(j.text)}function HA(j){LA||(LA=!0,x(Fe,lh(j,g(Fe),[])))}function Cn(j){g(pe)&&(Us(j,nh(g(pe)))&&Us(j,It(g(pe)))||(i("clearing selection: path does not exist anymore",g(pe)),x(pe,Rf(j,g(Fe)))))}function Gi(j){if(j.json!==void 0||j.text!==void 0){var Ee=g(we)!==void 0&&j.json!==void 0;f().add({type:"tree",undo:{patch:Ee?[{op:"replace",path:"",value:j.json}]:void 0,json:j.json,text:j.text,documentState:j.documentState,textIsRepaired:j.textIsRepaired,selection:xd(j.selection),sortedColumn:void 0},redo:{patch:Ee?[{op:"replace",path:"",value:g(we)}]:void 0,json:g(we),text:g(Ze),documentState:g(Fe),textIsRepaired:g(vA),selection:xd(g(pe)),sortedColumn:void 0}})}}function oi(j,Ee){var qe;if(i("patch",j,Ee),g(we)===void 0)throw new Error("Cannot apply patch: no JSON");var kA=g(we),MA={json:void 0,text:g(Ze),documentState:g(Fe),selection:xd(g(pe)),textIsRepaired:g(vA),sortedColumn:void 0},wA=S1e(g(we),j),yt=B1e(g(we),g(Fe),j),at=(qe=$f(g(we),j))!==null&&qe!==void 0?qe:g(pe),Ni=typeof Ee=="function"?Ee(yt.json,yt.documentState,at):void 0;return x(we,Ni?.json!==void 0?Ni.json:yt.json),x(Fe,Ni?.state!==void 0?Ni.state:yt.documentState),x(pe,Ni?.selection!==void 0?Ni.selection:at),x(Ze,void 0),x(vA,!1),x(_t,void 0),x(VA,void 0),Ge=void 0,Cn(g(we)),f().add({type:"tree",undo:SA({patch:wA},MA),redo:{patch:j,json:void 0,text:g(Ze),documentState:g(Fe),selection:xd(g(pe)),sortedColumn:void 0,textIsRepaired:g(vA)}}),{json:g(we),previousJson:kA,undo:wA,redo:j}}function Yt(){!u()&&g(pe)&&x(pe,zY(It(g(pe))))}function xi(){if(!u()&&g(pe)){var j=It(g(pe)),Ee=WA(g(we),j);sr(Ee)?function(qe,kA){i("openJSONEditorModal",{path:qe,value:kA}),Ye=!0,JA()({content:{json:kA},path:qe,onPatch:g(D).onPatch,onClose:()=>{Ye=!1,setTimeout(ri)}})}(j,Ee):x(pe,fM(j))}}function Pi(){if(!u()&&fn(g(pe))){var j=It(g(pe)),Ee=pt(j),qe=WA(g(we),j),kA=!_d(g(we),g(Fe),j),MA=kA?String(qe):rQ(String(qe),K());i("handleToggleEnforceString",{enforceString:kA,value:qe,updatedValue:MA}),bA([{op:"replace",path:Ee,value:MA}],(wA,yt)=>({state:GM(g(we),yt,j,{type:"value",enforceString:kA})}))}}function Xt(){return g(vA)&&g(we)!==void 0&&fe(g(we)),g(we)!==void 0?{json:g(we)}:{text:g(Ze)||""}}function L(){return ct.apply(this,arguments)}function ct(){return ct=Vt(function*(){var j=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];yield X1e({json:g(we),selection:g(pe),indentation:j?Z():void 0,readOnly:u(),parser:K(),onPatch:bA})}),ct.apply(this,arguments)}function Di(){return mn.apply(this,arguments)}function mn(){return mn=Vt(function*(){var j=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];g(we)!==void 0&&(yield $1e({json:g(we),selection:g(pe),indentation:j?Z():void 0,parser:K()}))}),mn.apply(this,arguments)}function pn(j){var Ee;j.preventDefault(),Ao((Ee=j.clipboardData)===null||Ee===void 0?void 0:Ee.getData("text/plain"))}function so(){return $o.apply(this,arguments)}function $o(){return($o=Vt(function*(){try{Ao(yield navigator.clipboard.readText())}catch(j){console.error(j),x(Ie,!0)}})).apply(this,arguments)}function Ao(j){j!==void 0&&eCe({clipboardText:j,json:g(we),selection:g(pe),readOnly:u(),parser:K(),onPatch:bA,onChangeText:ke,onPasteMultilineText:kn,openRepairModal:Fn})}function Fn(j,Ee){x(We,{text:j,onParse:qe=>t6(qe,kA=>A6(kA,K())),onRepair:i1e,onApply:Ee,onClose:ri})}function Qr(){ACe({json:g(we),text:g(Ze),selection:g(pe),keepSelection:!1,readOnly:u(),onChange:P(),onPatch:bA})}function mr(){!u()&&g(we)!==void 0&&g(pe)&&Of&&!An(It(g(pe)))&&(i("duplicate",{selection:g(pe)}),bA(D1e(g(we),tI(g(we),g(pe)))))}function zo(){u()||!g(pe)||!Io(g(pe))&&!fn(g(pe))||An(It(g(pe)))||(i("extract",{selection:g(pe)}),bA(v1e(g(we),g(pe)),(j,Ee)=>{if(sr(j))return{state:xJ(j,Ee,[])}}))}function On(j){MM({insertType:j,selectInside:!0,initialValue:void 0,json:g(we),selection:g(pe),readOnly:u(),parser:K(),onPatch:bA,onReplaceJson:fe})}function ho(j){Bs(g(pe))&&x(pe,zi(g(pe).path)),g(pe)||x(pe,Rf(g(we),g(Fe))),On(j)}function sA(j){if(!u()&&g(pe))if(qb(g(pe)))try{var Ee=nh(g(pe)),qe=WA(g(we),Ee),kA=function(wA,yt,at){if(yt==="array"){if(Array.isArray(wA))return wA;if(vn(wA))return fde(wA);if(typeof wA=="string")try{var Ni=at.parse(wA);if(Array.isArray(Ni))return Ni;if(vn(Ni))return fde(Ni)}catch{return[wA]}return[wA]}if(yt==="object"){if(Array.isArray(wA))return Ede(wA);if(vn(wA))return wA;if(typeof wA=="string")try{var Gn=at.parse(wA);if(vn(Gn))return Gn;if(Array.isArray(Gn))return Ede(Gn)}catch{return{value:wA}}return{value:wA}}if(yt==="value")return sr(wA)?at.stringify(wA):wA;throw new Error("Cannot convert ".concat(kY(wA,at)," to ").concat(yt))}(qe,j,K());if(kA===qe)return;var MA=[{op:"replace",path:pt(Ee),value:kA}];i("handleConvert",{selection:g(pe),path:Ee,type:j,operations:MA}),bA(MA,(wA,yt)=>({state:g(pe)?lh(wA,yt,It(g(pe))):g(Fe)}))}catch(wA){ye()(wA)}else ye()(new Error("Cannot convert current selection to ".concat(j)))}function _i(){if(g(pe)){var j=Gde(g(we),g(Fe),g(pe),!1),Ee=Hi(It(g(pe)));j&&!An(It(j))&&wi(Ee,Hi(It(j)))?x(pe,W2(It(j))):x(pe,e1(Ee)),i("insert before",{selection:g(pe),selectionBefore:j,parentPath:Ee}),bo(),Tt()}}function Zi(){if(g(pe)){var j=ZC(g(we),g(pe));i("insert after",j),x(pe,W2(j)),bo(),Tt()}}function Jn(j){return Bo.apply(this,arguments)}function Bo(){return(Bo=Vt(function*(j){yield tCe({char:j,selectInside:!0,json:g(we),selection:g(pe),readOnly:u(),parser:K(),onPatch:bA,onReplaceJson:fe,onSelect:Wt})})).apply(this,arguments)}function pr(){if(!u()&&f().canUndo){var j=f().undo();if(BM(j)){var Ee={json:g(we),text:g(Ze)};x(we,j.undo.patch?Mc(g(we),j.undo.patch):j.undo.json),x(Fe,j.undo.documentState),x(pe,j.undo.selection),x(Ze,j.undo.text),x(vA,j.undo.textIsRepaired),Ge=void 0,i("undo",{item:j,json:g(we),documentState:g(Fe),selection:g(pe)}),zA(Ee,j.undo.patch&&j.redo.patch?{json:g(we),previousJson:Ee.json,redo:j.undo.patch,undo:j.redo.patch}:void 0),ri(),g(pe)&&Ft(It(g(pe)),{scrollToWhenVisible:!1})}else ue()(j)}}function Mi(){if(!u()&&f().canRedo){var j=f().redo();if(BM(j)){var Ee={json:g(we),text:g(Ze)};x(we,j.redo.patch?Mc(g(we),j.redo.patch):j.redo.json),x(Fe,j.redo.documentState),x(pe,j.redo.selection),x(Ze,j.redo.text),x(vA,j.redo.textIsRepaired),Ge=void 0,i("redo",{item:j,json:g(we),documentState:g(Fe),selection:g(pe)}),zA(Ee,j.undo.patch&&j.redo.patch?{json:g(we),previousJson:Ee.json,redo:j.redo.patch,undo:j.undo.patch}:void 0),ri(),g(pe)&&Ft(It(g(pe)),{scrollToWhenVisible:!1})}else oe()(j)}}function Mo(j){var Ee;u()||g(we)===void 0||(Ye=!0,He()({id:o,json:g(we),rootPath:j,onSort:(Ee=Vt(function*(qe){var{operations:kA}=qe;i("onSort",j,kA),bA(kA,(MA,wA)=>({state:xJ(MA,wA,j),selection:zi(j)}))}),function(qe){return Ee.apply(this,arguments)}),onClose:()=>{Ye=!1,setTimeout(ri)}}))}function wr(){g(pe)&&Mo(Ude(g(we),g(pe)))}function yr(){Mo([])}function Nr(j){if(g(we)!==void 0){var{id:Ee,onTransform:qe,onClose:kA}=j,MA=j.rootPath||[];Ye=!0,PA()({id:Ee||r,json:g(we),rootPath:MA,onTransform:wA=>{qe?qe({operations:wA,json:g(we),transformedJson:Mc(g(we),wA)}):(i("onTransform",MA,wA),bA(wA,(yt,at)=>({state:xJ(yt,at,MA),selection:zi(MA)})))},onClose:()=>{Ye=!1,setTimeout(ri),kA&&kA()}})}}function Mn(){g(pe)&&Nr({rootPath:Ude(g(we),g(pe))})}function wn(){Nr({rootPath:[]})}function Ft(j){return Yn.apply(this,arguments)}function Yn(){return Yn=Vt(function*(j){var{scrollToWhenVisible:Ee=!0,element:qe}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};x(Fe,Zg(g(we),g(Fe),j,rM));var kA=qe??Me(j);if(i("scrollTo",{path:j,elem:kA,refContents:g(c)}),!kA||!g(c))return Promise.resolve();var MA=g(c).getBoundingClientRect(),wA=kA.getBoundingClientRect();if(!Ee&&wA.bottom>MA.top&&wA.top{I(kA,{container:g(c),offset:yt,duration:300,callback:()=>at()})})}),Yn.apply(this,arguments)}function Me(j){var Ee,qe;return bo(),(Ee=(qe=g(c))===null||qe===void 0?void 0:qe.querySelector('div[data-path="'.concat(oM(j),'"]')))!==null&&Ee!==void 0?Ee:void 0}function gA(j){var Ee,qe;return bo(),(Ee=(qe=g(c))===null||qe===void 0?void 0:qe.querySelector('span[data-search-result-index="'.concat(j,'"]')))!==null&&Ee!==void 0?Ee:void 0}function EA(j){var Ee=Me(j);if(Ee&&g(c)){var qe=g(c).getBoundingClientRect(),kA=Ee.getBoundingClientRect(),MA=sr(WA(g(we),j))?20:kA.height;kA.topqe.bottom-20&&I(Ee,{container:g(c),offset:-(qe.height-MA-20),duration:0})}}function zA(j,Ee){if(j.json!==void 0||j?.text!==void 0){if(g(Ze)!==void 0){var qe,kA={text:g(Ze),json:void 0};(qe=P())===null||qe===void 0||qe(kA,j,{contentErrors:nA(),patchResult:Ee})}else if(g(we)!==void 0){var MA,wA={text:void 0,json:g(we)};(MA=P())===null||MA===void 0||MA(wA,j,{contentErrors:nA(),patchResult:Ee})}}}function bA(j,Ee){i("handlePatch",j,Ee);var qe={json:g(we),text:g(Ze)},kA=oi(j,Ee);return zA(qe,kA),kA}function fe(j,Ee){var qe={json:g(we),text:g(Ze)},kA={documentState:g(Fe),selection:g(pe),json:g(we),text:g(Ze),textIsRepaired:g(vA)},MA=Zg(g(we),Dl(j,g(Fe)),[],_p),wA=typeof Ee=="function"?Ee(j,MA,g(pe)):void 0;x(we,wA?.json!==void 0?wA.json:j),x(Fe,wA?.state!==void 0?wA.state:MA),x(pe,wA?.selection!==void 0?wA.selection:g(pe)),x(Ze,void 0),x(vA,!1),Ge=void 0,Cn(g(we)),Gi(kA),zA(qe,void 0)}function ke(j,Ee){i("handleChangeText");var qe={json:g(we),text:g(Ze)},kA={documentState:g(Fe),selection:g(pe),json:g(we),text:g(Ze),textIsRepaired:g(vA)};try{x(we,J()(j)),x(Fe,Zg(g(we),Dl(g(we),g(Fe)),[],_p)),x(Ze,void 0),x(vA,!1),Ge=void 0}catch(wA){try{x(we,J()(jl(j))),x(Fe,Zg(g(we),Dl(g(we),g(Fe)),[],_p)),x(Ze,j),x(vA,!0),Ge=void 0}catch{x(we,void 0),x(Fe,iY({json:g(we),expand:_p})),x(Ze,j),x(vA,!1),Ge=g(Ze)!==""?Wf(g(Ze),wA.message||String(wA)):void 0}}if(typeof Ee=="function"){var MA=Ee(g(we),g(Fe),g(pe));x(we,MA?.json!==void 0?MA.json:g(we)),x(Fe,MA?.state!==void 0?MA.state:g(Fe)),x(pe,MA?.selection!==void 0?MA.selection:g(pe))}Cn(g(we)),Gi(kA),zA(qe,void 0)}function Xe(j,Ee){var qe=arguments.length>2&&arguments[2]!==void 0&&arguments[2];i("handleExpand",{path:j,expanded:Ee,recursive:qe}),Ee?Ne(j,qe?HY:nY):pA(j,qe),ri()}function qA(){Xe([],!0,!0)}function Gt(){Xe([],!1,!0)}function $t(j){i("openFind",{findAndReplace:j}),x(Jt,!1),x(KA,!1),bo(),x(Jt,!0),x(KA,j)}function Sn(j,Ee){i("handleExpandSection",j,Ee),x(Fe,function(qe,kA,MA,wA){return Xf(qe,kA,MA,(yt,at)=>{if(!hs(at))return at;var Ni=I1e(at.visibleSections.concat(wA));return SA(SA({},at),{},{visibleSections:Ni})})}(g(we),g(Fe),j,Ee))}function So(j){i("pasted json as text",j),x(_t,j)}function kn(j){i("pasted multiline text",{pastedText:j}),x(VA,j)}function on(j){var Ee,{anchor:qe,left:kA,top:MA,width:wA,height:yt,offsetTop:at,offsetLeft:Ni,showTip:Gn}=j,$i=function(no){var{json:ko,documentState:yn,selection:Ht,readOnly:sn,onEditKey:zt,onEditValue:Et,onToggleEnforceString:Ei,onCut:Po,onCopy:Qs,onPaste:Qo,onRemove:Ar,onDuplicate:_s,onExtract:jd,onInsertBefore:Vc,onInsert:hg,onConvert:p0,onInsertAfter:Bg,onSort:Rs,onTransform:Ns}=no,qc=ko!==void 0,Vd=!!Ht,Wc=!!Ht&&An(It(Ht)),gr=Ht?WA(ko,It(Ht)):void 0,yo=Array.isArray(gr)?"Edit array":vn(gr)?"Edit object":"Edit value",Dr=qc&&(Io(Ht)||Bs(Ht)||fn(Ht)),w0=Ht&&!Wc?WA(ko,Hi(It(Ht))):void 0,kh=!sn&&qc&&EM(Ht)&&!Wc&&!Array.isArray(w0),xh=!sn&&qc&&Ht!==void 0&&EM(Ht),FQ=xh&&!sr(gr),_h=!sn&&Dr,GQ=Dr,Qk=!sn&&Vd,mk=!sn&&qc&&Dr&&!Wc,pk=!sn&&qc&&Ht!==void 0&&(Io(Ht)||fn(Ht))&&!Wc,y0=Dr,pI=y0?"Convert to:":"Insert:",Yr=!sn&&(cs(Ht)&&Array.isArray(gr)||Jc(Ht)&&Array.isArray(w0)),dc=!sn&&(y0?qb(Ht)&&!vn(gr):Vd),KQ=!sn&&(y0?qb(Ht)&&!Array.isArray(gr):Vd),UQ=!sn&&(y0?qb(Ht)&&sr(gr):Vd),wI=Ht!==void 0&&_d(ko,yn,It(Ht));function Vs(TQ){Dr?TQ!=="structure"&&p0(TQ):hg(TQ)}return[{type:"row",items:[{type:"button",onClick:()=>zt(),icon:wu,text:"Edit key",title:"Edit the key (Double-click on the key)",disabled:!kh},{type:"dropdown-button",main:{type:"button",onClick:()=>Et(),icon:wu,text:yo,title:"Edit the value (Double-click on the value)",disabled:!xh},width:"11em",items:[{type:"button",icon:wu,text:yo,title:"Edit the value (Double-click on the value)",onClick:()=>Et(),disabled:!xh},{type:"button",icon:wI?wG:vG,text:"Enforce string",title:"Enforce keeping the value as string when it contains a numeric value",onClick:()=>Ei(),disabled:!FQ}]}]},{type:"separator"},{type:"row",items:[{type:"dropdown-button",main:{type:"button",onClick:()=>Po(!0),icon:pu,text:"Cut",title:"Cut selected contents, formatted with indentation (Ctrl+X)",disabled:!_h},width:"10em",items:[{type:"button",icon:pu,text:"Cut formatted",title:"Cut selected contents, formatted with indentation (Ctrl+X)",onClick:()=>Po(!0),disabled:!_h},{type:"button",icon:pu,text:"Cut compacted",title:"Cut selected contents, without indentation (Ctrl+Shift+X)",onClick:()=>Po(!1),disabled:!_h}]},{type:"dropdown-button",main:{type:"button",onClick:()=>Qs(!0),icon:M2,text:"Copy",title:"Copy selected contents, formatted with indentation (Ctrl+C)",disabled:!GQ},width:"12em",items:[{type:"button",icon:M2,text:"Copy formatted",title:"Copy selected contents, formatted with indentation (Ctrl+C)",onClick:()=>Qs(!0),disabled:!GQ},{type:"button",icon:M2,text:"Copy compacted",title:"Copy selected contents, without indentation (Ctrl+Shift+C)",onClick:()=>Qs(!1),disabled:!GQ}]},{type:"button",onClick:()=>Qo(),icon:pG,text:"Paste",title:"Paste clipboard contents (Ctrl+V)",disabled:!Qk}]},{type:"separator"},{type:"row",items:[{type:"column",items:[{type:"button",onClick:()=>_s(),icon:SG,text:"Duplicate",title:"Duplicate selected contents (Ctrl+D)",disabled:!mk},{type:"button",onClick:()=>jd(),icon:uoe,text:"Extract",title:"Extract selected contents",disabled:!pk},{type:"button",onClick:()=>Rs(),icon:n3,text:"Sort",title:"Sort array or object contents",disabled:sn||!Dr},{type:"button",onClick:()=>Ns(),icon:A3,text:"Transform",title:"Transform array or object contents (filter, sort, project)",disabled:sn||!Dr},{type:"button",onClick:()=>Ar(),icon:Iv,text:"Remove",title:"Remove selected contents (Delete)",disabled:sn||!Dr}]},{type:"column",items:[{type:"label",text:pI},{type:"button",onClick:()=>Vs("structure"),icon:y0?i3:yu,text:"Structure",title:pI+" structure like the first item in the array",disabled:!Yr},{type:"button",onClick:()=>Vs("object"),icon:y0?i3:yu,text:"Object",title:pI+" object",disabled:!dc},{type:"button",onClick:()=>Vs("array"),icon:y0?i3:yu,text:"Array",title:pI+" array",disabled:!KQ},{type:"button",onClick:()=>Vs("value"),icon:y0?i3:yu,text:"Value",title:pI+" value",disabled:!UQ}]}]},{type:"separator"},{type:"row",items:[{type:"button",onClick:()=>Vc(),icon:Coe,text:"Insert before",title:"Select area before current entry to insert or paste contents",disabled:sn||!Dr||Wc},{type:"button",onClick:()=>Bg(),icon:coe,text:"Insert after",title:"Select area after current entry to insert or paste contents",disabled:sn||!Dr||Wc}]}]}({json:g(we),documentState:g(Fe),selection:g(pe),readOnly:u(),onEditKey:Yt,onEditValue:xi,onToggleEnforceString:Pi,onCut:L,onCopy:Di,onPaste:so,onRemove:Qr,onDuplicate:mr,onExtract:zo,onInsertBefore:_i,onInsert:ho,onInsertAfter:Zi,onConvert:sA,onSort:wr,onTransform:Mn}),fo=(Ee=Te()($i))!==null&&Ee!==void 0?Ee:$i;if(fo!==!1){var ei={left:kA,top:MA,offsetTop:at,offsetLeft:Ni,width:wA,height:yt,anchor:qe,closeOnOuterClick:!0,onClose:()=>{Ye=!1,ri()}};Ye=!0;var er=s(nCe,{tip:Gn?"Tip: you can open this context menu via right-click or with Ctrl+Q":void 0,items:fo,onRequestClose:()=>a(er)},ei)}}function Tt(j){if(!us(g(pe)))if(j&&(j.stopPropagation(),j.preventDefault()),j&&j.type==="contextmenu"&&j.target!==g(l))on({left:j.clientX,top:j.clientY,width:z2,height:H2,showTip:!1});else{var Ee,qe=(Ee=g(c))===null||Ee===void 0?void 0:Ee.querySelector(".jse-context-menu-pointer.jse-selected");if(qe)on({anchor:qe,offsetTop:2,width:z2,height:H2,showTip:!1});else{var kA,MA=(kA=g(c))===null||kA===void 0?void 0:kA.getBoundingClientRect();MA&&on({top:MA.top+2,left:MA.left+2,width:z2,height:H2,showTip:!1})}}}function Xi(j){on({anchor:d1e(j.target,"BUTTON"),offsetTop:0,width:z2,height:H2,showTip:!0})}function to(){return vt.apply(this,arguments)}function vt(){return(vt=Vt(function*(){if(i("apply pasted json",g(_t)),g(_t)){var{onPasteAsJson:j}=g(_t);x(_t,void 0),j(),setTimeout(ri)}})).apply(this,arguments)}function Hn(){return ZA.apply(this,arguments)}function ZA(){return(ZA=Vt(function*(){i("apply pasted multiline text",g(VA)),g(VA)&&(Ao(JSON.stringify(g(VA))),setTimeout(ri))})).apply(this,arguments)}function Ri(){i("clear pasted json"),x(_t,void 0),ri()}function Ki(){i("clear pasted multiline text"),x(VA,void 0),ri()}function io(){se()(Rr.text)}function lr(j){x(pe,j),ri(),Ft(It(j))}function ri(){i("focus"),g(l)&&(g(l).focus(),g(l).select())}function fs(j){return function(Ee,qe,kA){var MA=Hi(kA),wA=[vi(kA)],yt=WA(Ee,MA),at=yt?kJ(yt,qe,wA):void 0;return at?zi(MA.concat(at)):W2(kA)}(g(we),g(Fe),j)}function Eo(j){g(e)&&g(e).onDrag(j)}function Q(){g(e)&&g(e).onDragEnd()}var D=Ce(void 0,!0);Se(()=>g(pe),()=>{var j;j=g(pe),wi(j,B())||(i("onSelect",j),X()(j))}),Se(()=>(F(w()),F(_())),()=>{x(BA,xY({escapeControlCharacters:w(),escapeUnicodeCharacters:_()}))}),Se(()=>g(Jt),()=>{(function(j){g(c)&&j&&g(c).scrollTop===0&&(vl(c,g(c).style.overflowAnchor="none"),vl(c,g(c).scrollTop+=xp),setTimeout(()=>{g(c)&&vl(c,g(c).style.overflowAnchor="")}))})(g(Jt))}),Se(()=>F(h()),()=>{dn(h())}),Se(()=>F(B()),()=>{(function(j){wi(g(pe),j)||(i("applyExternalSelection",{selection:g(pe),externalSelection:j}),Yp(j)&&x(pe,j))})(B())}),Se(()=>(g(we),F(O()),F(K()),F(H())),()=>{st(g(we),O(),K(),H())}),Se(()=>(g(c),n2e),()=>{x(e,g(c)?n2e(g(c)):void 0)}),Se(()=>(F(u()),F(b()),F(K()),g(BA),F(le()),F($e())),()=>{x(D,{mode:Rr.tree,readOnly:u(),truncateTextSize:b(),parser:K(),normalization:g(BA),getJson:Bt,getDocumentState:Wi,getSelection:Qn,findElement:Me,findNextInside:fs,focus:ri,onPatch:bA,onInsert:On,onExpand:Xe,onSelect:Wt,onFind:$t,onExpandSection:Sn,onPasteJson:So,onRenderValue:le(),onContextMenu:on,onClassName:$e()||(()=>{}),onDrag:Eo,onDragEnd:Q})}),Se(()=>g(D),()=>{i("context changed",g(D))}),Nn(),li(!0);var R=t$e();QA("mousedown",V2,function(j){!sQ(j.target,Ee=>Ee===g(d))&&us(g(pe))&&(i("click outside the editor, exit edit mode"),x(pe,xd(g(pe))),C&&g(l)&&(g(l).focus(),g(l).blur()),i("blur (outside editor)"),g(l)&&g(l).blur())});var v,U=Ut(R),Y=ge(U),ie=j=>{(function(Ee,qe){St(qe,!1);var kA=Ce(void 0,!0),MA=Ce(void 0,!0),wA=Ce(void 0,!0),yt=N(qe,"json",9),at=N(qe,"selection",9),Ni=N(qe,"readOnly",9),Gn=N(qe,"showSearch",13,!1),$i=N(qe,"history",9),fo=N(qe,"onExpandAll",9),ei=N(qe,"onCollapseAll",9),er=N(qe,"onUndo",9),no=N(qe,"onRedo",9),ko=N(qe,"onSort",9),yn=N(qe,"onTransform",9),Ht=N(qe,"onContextMenu",9),sn=N(qe,"onCopy",9),zt=N(qe,"onRenderMenu",9);function Et(){Gn(!Gn())}var Ei=Ce(void 0,!0),Po=Ce(void 0,!0),Qs=Ce(void 0,!0),Qo=Ce(void 0,!0);Se(()=>F(yt()),()=>{x(kA,yt()!==void 0)}),Se(()=>(g(kA),F(at()),fn),()=>{x(MA,g(kA)&&(Io(at())||Bs(at())||fn(at())))}),Se(()=>(F(fo()),F(yt())),()=>{x(Ei,{type:"button",icon:cXe,title:"Expand all",className:"jse-expand-all",onClick:fo(),disabled:!sr(yt())})}),Se(()=>(F(ei()),F(yt())),()=>{x(Po,{type:"button",icon:lXe,title:"Collapse all",className:"jse-collapse-all",onClick:ei(),disabled:!sr(yt())})}),Se(()=>F(yt()),()=>{x(Qs,{type:"button",icon:o3,title:"Search (Ctrl+F)",className:"jse-search",onClick:Et,disabled:yt()===void 0})}),Se(()=>(F(Ni()),g(Ei),g(Po),F(ko()),F(yt()),F(yn()),g(Qs),F(Ht()),F(er()),F($i()),F(no()),F(sn()),g(MA)),()=>{x(Qo,Ni()?[g(Ei),g(Po),{type:"separator"},{type:"button",icon:M2,title:"Copy (Ctrl+C)",className:"jse-copy",onClick:sn(),disabled:!g(MA)},{type:"separator"},g(Qs),{type:"space"}]:[g(Ei),g(Po),{type:"separator"},{type:"button",icon:n3,title:"Sort",className:"jse-sort",onClick:ko(),disabled:Ni()||yt()===void 0},{type:"button",icon:A3,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:yn(),disabled:Ni()||yt()===void 0},g(Qs),{type:"button",icon:bG,title:FY,className:"jse-contextmenu",onClick:Ht()},{type:"separator"},{type:"button",icon:hv,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:er(),disabled:!$i().canUndo},{type:"button",icon:uv,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:no(),disabled:!$i().canRedo},{type:"space"}])}),Se(()=>(F(zt()),g(Qo)),()=>{x(wA,zt()(g(Qo))||g(Qo))}),Nn(),li(!0),YM(Ee,{get items(){return g(wA)}}),kt()})(j,{get json(){return g(we)},get selection(){return g(pe)},get readOnly(){return u()},get history(){return f()},onExpandAll:qA,onCollapseAll:Gt,onUndo:pr,onRedo:Mi,onSort:yr,onTransform:wn,onContextMenu:Xi,onCopy:Di,get onRenderMenu(){return me()},get showSearch(){return g(Jt)},set showSearch(Ee){x(Jt,Ee)},$$legacy:!0})};ze(Y,j=>{k()&&j(ie)});var ce=De(Y,2),Le=j=>{SXe(j,{get json(){return g(we)},get selection(){return g(pe)},onSelect:lr,get onError(){return ye()},get pathParser(){return V()}})};ze(ce,j=>{S()&&j(Le)});var CA=De(ce,2),hA=j=>{var Ee=e$e(),qe=Ut(Ee),kA=ge(qe);kA.readOnly=!0,Ho(kA,at=>x(l,at),()=>g(l));var MA=De(qe,2),wA=at=>{var Ni=ar(),Gn=Ut(Ni),$i=ei=>{(function(er,no){St(no,!0);var ko=hXe();ko.__click=[IXe,no];var yn=De(ge(ko),2),Ht=De(ge(yn),2),sn=zt=>{var Et=uXe(),Ei=De(Ut(Et),2);Rn(Ei,"title","Create an empty JSON object (press '{')"),Ei.__click=[dXe,no];var Po=De(Ei,2);Rn(Po,"title","Create an empty JSON array (press '[')"),Po.__click=[CXe,no],he(zt,Et)};ze(Ht,zt=>{no.readOnly||zt(sn)}),he(er,ko),kt()})(ei,{get readOnly(){return u()},onCreateObject:()=>{ri(),Jn("{")},onCreateArray:()=>{ri(),Jn("[")},onClick:()=>{ri()}})},fo=ei=>{var er=ZXe(),no=Ut(er),ko=tA(()=>u()?[]:[{icon:t3,text:"Repair manually",title:'Open the document in "code" mode and repair it manually',onClick:io}]);Sl(no,{type:"error",message:"The loaded JSON document is invalid and could not be repaired automatically.",get actions(){return g(ko)}}),iCe(De(no,2),{get text(){return g(Ze)},get json(){return g(we)},get indentation(){return Z()},get parser(){return K()}}),he(ei,er)};ze(Gn,ei=>{g(Ze)===""||g(Ze)===void 0?ei($i):ei(fo,!1)}),he(at,Ni)},yt=at=>{var Ni=$Xe(),Gn=Ut(Ni);q1e(ge(Gn),{get json(){return g(we)},get documentState(){return g(Fe)},get parser(){return K()},get showSearch(){return g(Jt)},get showReplace(){return g(KA)},get readOnly(){return u()},columns:void 0,onSearch:di,onFocus:G,onPatch:bA,onClose:Ae});var $i=De(Gn,2);Rn($i,"data-jsoneditor-scrollable-contents",!0);var fo=ge($i),ei=zt=>{he(zt,XXe())};ze(fo,zt=>{g(Jt)&&zt(ei)}),CY(De(fo,2),{get value(){return g(we)},pointer:"",get state(){return g(Fe)},get validationErrors(){return g(Re)},get searchResults(){return g(YA)},get selection(){return g(pe)},get context(){return g(D)},get onDragSelectionStart(){return xr}}),Ho($i,zt=>x(c,zt),()=>g(c));var er=De($i,2),no=zt=>{var Et=tA(()=>(g(_t),Be(()=>"You pasted a JSON ".concat(Array.isArray(g(_t).contents)?"array":"object"," as text")))),Ei=tA(()=>[{icon:b2,text:"Paste as JSON instead",title:"Replace the value with the pasted JSON",onMouseDown:to},{text:"Leave as is",title:"Keep the JSON embedded in the value",onClick:Ri}]);Sl(zt,{type:"info",get message(){return g(Et)},get actions(){return g(Ei)}})};ze(er,zt=>{g(_t)&&zt(no)});var ko=De(er,2),yn=zt=>{var Et=tA(()=>[{icon:b2,text:"Paste as string instead",title:"Paste the clipboard data as a single string value instead of an array",onClick:Hn},{text:"Leave as is",title:"Keep the pasted array",onClick:Ki}]);Sl(zt,{type:"info",message:"Multiline text was pasted as array",get actions(){return g(Et)}})};ze(ko,zt=>{g(VA)&&zt(yn)});var Ht=De(ko,2),sn=zt=>{var Et=tA(()=>u()?[]:[{icon:Bv,text:"Ok",title:"Accept the repaired document",onClick:Xt},{icon:t3,text:"Repair manually instead",title:"Leave the document unchanged and repair it manually instead",onClick:io}]);Sl(zt,{type:"success",message:"The loaded JSON document was invalid but is successfully repaired.",get actions(){return g(Et)},onClose:ri})};ze(Ht,zt=>{g(vA)&&zt(sn)}),WY(De(Ht,2),{get validationErrors(){return g(Ke)},selectError:de}),he(at,Ni)};ze(MA,at=>{g(we)===void 0?at(wA):at(yt,!1)}),QA("paste",kA,pn),he(j,Ee)},it=j=>{he(j,A$e())};ze(CA,j=>{n?j(it,!1):j(hA)}),Ho(U,j=>x(d,j),()=>g(d));var et=De(U,2),RA=j=>{z1e(j,{onClose:()=>x(Ie,!1)})};ze(et,j=>{g(Ie)&&j(RA)});var jA=De(et,2),rn=j=>{P1e(j,qC(()=>g(We),{onClose:()=>{var Ee;(Ee=g(We))===null||Ee===void 0||Ee.onClose(),x(We,void 0)}}))};return ze(jA,j=>{g(We)&&j(rn)}),xA(j=>v=ci(U,1,"jse-tree-mode svelte-vrx1dr",null,v,j),[()=>({"no-main-menu":!k()})],tA),QA("keydown",U,function(j){var Ee=X2(j),qe=j.shiftKey;if(i("keydown",{combo:Ee,key:j.key}),Ee==="Ctrl+X"&&(j.preventDefault(),L(!0)),Ee==="Ctrl+Shift+X"&&(j.preventDefault(),L(!1)),Ee==="Ctrl+C"&&(j.preventDefault(),Di(!0)),Ee==="Ctrl+Shift+C"&&(j.preventDefault(),Di(!1)),Ee==="Ctrl+D"&&(j.preventDefault(),mr()),Ee!=="Delete"&&Ee!=="Backspace"||(j.preventDefault(),Qr()),Ee==="Insert"&&(j.preventDefault(),On("structure")),Ee==="Ctrl+A"&&(j.preventDefault(),x(pe,zi([]))),Ee==="Ctrl+Q"&&Tt(j),Ee==="ArrowUp"||Ee==="Shift+ArrowUp"){j.preventDefault();var kA=g(pe)?Gde(g(we),g(Fe),g(pe),qe)||g(pe):Rf(g(we),g(Fe));x(pe,kA),EA(It(kA))}if(Ee==="ArrowDown"||Ee==="Shift+ArrowDown"){j.preventDefault();var MA=g(pe)?function($i,fo,ei){var er=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(ei){var no=er?It(ei):ZC($i,ei),ko=sr(WA($i,no))?Rde($i,fo,no,!0):fo,yn=kJ($i,fo,no),Ht=kJ($i,ko,no);if(er)return cs(ei)?yn!==void 0?Fa(yn,yn):void 0:Jc(ei)?Ht!==void 0?Fa(Ht,Ht):void 0:Ht!==void 0?Fa(nh(ei),Ht):void 0;if(Jc(ei))return Ht!==void 0?zi(Ht):void 0;if(cs(ei)||fn(ei))return yn!==void 0?zi(yn):void 0;if(Bs(ei)){if(yn===void 0||yn.length===0)return;var sn=Hi(yn),zt=WA($i,sn);return Array.isArray(zt)?zi(yn):$2(yn)}return Io(ei)?Ht!==void 0?zi(Ht):yn!==void 0?zi(yn):void 0:void 0}}(g(we),g(Fe),g(pe),qe)||g(pe):Rf(g(we),g(Fe));x(pe,MA),EA(It(MA))}if(Ee==="ArrowLeft"||Ee==="Shift+ArrowLeft"){j.preventDefault();var wA=g(pe)?function($i,fo,ei){var er=arguments.length>3&&arguments[3]!==void 0&&arguments[3],no=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(ei){var{caret:ko,previous:yn}=Kde($i,fo,ei,no);if(er)return Io(ei)?void 0:Fa(ei.path,ei.path);if(ko&&yn)return oY(yn);var Ht=Hi(It(ei)),sn=WA($i,Ht);return fn(ei)&&Array.isArray(sn)?Fa(ei.path,ei.path):Io(ei)&&!Array.isArray(sn)?$2(ei.focusPath):void 0}}(g(we),g(Fe),g(pe),qe,!u())||g(pe):Rf(g(we),g(Fe));x(pe,wA),EA(It(wA))}if(Ee==="ArrowRight"||Ee==="Shift+ArrowRight"){j.preventDefault();var yt=g(pe)&&g(we)!==void 0?function($i,fo,ei){var er=arguments.length>3&&arguments[3]!==void 0&&arguments[3],no=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(ei){var{caret:ko,next:yn}=Kde($i,fo,ei,no);return er?Io(ei)?void 0:Fa(ei.path,ei.path):ko&&yn?oY(yn):Io(ei)?zi(ei.focusPath):void 0}}(g(we),g(Fe),g(pe),qe,!u())||g(pe):Rf(g(we),g(Fe));x(pe,yt),EA(It(yt))}if(Ee==="Enter"&&g(pe)){if(KM(g(pe))){var at=g(pe).focusPath,Ni=WA(g(we),Hi(at));Array.isArray(Ni)&&(j.preventDefault(),x(pe,zi(at)))}Bs(g(pe))&&(j.preventDefault(),x(pe,SA(SA({},g(pe)),{},{edit:!0}))),fn(g(pe))&&(j.preventDefault(),sr(WA(g(we),g(pe).path))?Xe(g(pe).path,!0):x(pe,SA(SA({},g(pe)),{},{edit:!0})))}if(Ee.replace(/^Shift\+/,"").length===1&&g(pe))return j.preventDefault(),void Jn(j.key);if(Ee==="Enter"&&(Jc(g(pe))||cs(g(pe))))return j.preventDefault(),void Jn("");if(Ee==="Ctrl+Enter"&&fn(g(pe))){var Gn=WA(g(we),g(pe).path);FM(Gn)&&window.open(String(Gn),"_blank")}Ee==="Escape"&&g(pe)&&(j.preventDefault(),x(pe,void 0)),Ee==="Ctrl+F"&&(j.preventDefault(),$t(!1)),Ee==="Ctrl+H"&&(j.preventDefault(),$t(!0)),Ee==="Ctrl+Z"&&(j.preventDefault(),pr()),Ee==="Ctrl+Shift+Z"&&(j.preventDefault(),Mi())}),QA("mousedown",U,function(j){i("handleMouseDown",j);var Ee=j.target;g1e(Ee,"BUTTON")||Ee.isContentEditable||(ri(),g(pe)||g(we)!==void 0||g(Ze)!==""&&g(Ze)!==void 0||(i("createDefaultSelection"),x(pe,zi([]))))}),QA("contextmenu",U,Tt),he(t,R),jt(A,"expand",Ne),jt(A,"collapse",pA),jt(A,"validate",nA),jt(A,"getJson",Bt),jt(A,"patch",oi),jt(A,"acceptAutoRepair",Xt),jt(A,"openTransformModal",Nr),jt(A,"scrollTo",Ft),jt(A,"findElement",Me),jt(A,"findSearchResult",gA),jt(A,"focus",ri),kt({expand:Ne,collapse:pA,validate:nA,getJson:Bt,patch:oi,acceptAutoRepair:Xt,openTransformModal:Nr,scrollTo:Ft,findElement:Me,findSearchResult:gA,focus:ri})}function oCe(t){return typeof(A=t)!="object"||A===null?t:new Proxy(t,{get:(e,i,n)=>oCe(Reflect.get(e,i,n)),set:()=>!1,deleteProperty:()=>!1});var A}var iM=Es("jsoneditor:History");function rCe(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=t.maxItems||1e3,e=[],i=0;function n(){return i0}function r(){return{canUndo:n(),canRedo:o(),items:()=>e.slice().reverse(),add:a,undo:l,redo:d,clear:c}}function s(){t.onChange&&t.onChange(r())}function a(C){iM("add",C),e=[C].concat(e.slice(i)).slice(0,A),i=0,s()}function c(){iM("clear"),e=[],i=0,s()}function l(){if(n()){var C=e[i];return i+=1,iM("undo",C),s(),C}}function d(){if(o())return iM("redo",e[i-=1]),s(),e[i]}return{get:r}}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-transform-modal-inner.svelte-rrrjnb { + flex: 1; + display: flex; + flex-direction: column; + min-width: 0; + min-height: 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) { + color: inherit; + flex: 1; + display: flex; + flex-direction: column; + padding: 0; + overflow: auto; + min-width: 0; + min-height: 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) { + display: flex; + flex-direction: row; + justify-content: flex-end; + padding-top: var(--jse-padding, 10px); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) button.jse-primary:where(.svelte-rrrjnb) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); + color: var(--jse-button-primary-color, #fff); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) button.jse-primary:where(.svelte-rrrjnb):hover { + background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) button.jse-primary:where(.svelte-rrrjnb):disabled { + background: var(--jse-button-primary-background-disabled, #9d9d9d); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) { + flex: 1; + display: flex; + gap: calc(2 * var(--jse-padding, 10px)); + min-height: 0; + box-sizing: border-box; + padding: 0 calc(2 * var(--jse-padding, 10px)) var(--jse-padding, 10px); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) { + flex: 1; + display: flex; + flex-direction: column; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) p { + margin: var(--jse-padding, 10px) 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) p:first-child { + margin-top: 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) p:last-child { + margin-bottom: 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .jse-description:where(.svelte-rrrjnb) code { + background: var(--jse-modal-code-background, rgba(0, 0, 0, 0.05)); + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) .query-error:where(.svelte-rrrjnb) { + color: var(--jse-error-color, #ee5341); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) textarea.jse-query:where(.svelte-rrrjnb) { + flex: 1; + outline: none; + resize: vertical; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) { + flex: 1; + display: flex; + flex-direction: column; + gap: calc(2 * var(--jse-padding, 10px)); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-original-data:where(.svelte-rrrjnb) { + flex: 1; + display: flex; + flex-direction: column; + min-height: 0; + box-sizing: border-box; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-original-data.jse-hide:where(.svelte-rrrjnb) { + flex: none; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-preview-data:where(.svelte-rrrjnb) { + flex: 1; + display: flex; + flex-direction: column; + min-height: 0; + box-sizing: border-box; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents.jse-hide-original-data:where(.svelte-rrrjnb) { + flex-direction: column; + gap: 0; + margin-bottom: 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-actions:where(.svelte-rrrjnb) { + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)) calc(2 * var(--jse-padding, 10px)); +} +@media screen and (max-width: 1200px) { + .jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) { + flex-direction: column; + overflow: auto; + } + .jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-query-contents:where(.svelte-rrrjnb) textarea.jse-query:where(.svelte-rrrjnb) { + min-height: 150px; + flex: none; + } + .jse-transform-modal-inner.svelte-rrrjnb .jse-modal-contents:where(.svelte-rrrjnb) .jse-main-contents:where(.svelte-rrrjnb) .jse-data-contents:where(.svelte-rrrjnb) .jse-tree-mode { + height: 300px; + flex: none; + } +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-label:where(.svelte-rrrjnb) { + font-weight: bold; + display: block; + box-sizing: border-box; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-label:where(.svelte-rrrjnb) .jse-label-inner:where(.svelte-rrrjnb) { + margin-top: calc(2 * var(--jse-padding, 10px)); + margin-bottom: calc(0.5 * var(--jse-padding, 10px)); + box-sizing: border-box; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-label:where(.svelte-rrrjnb) .jse-label-inner:where(.svelte-rrrjnb) button:where(.svelte-rrrjnb) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + font-weight: bold; + padding: 0; +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-tree-mode { + flex: 1; + background: var(--jse-input-background-readonly, transparent); + box-shadow: none; + box-sizing: border-box; + --jse-main-border: var(--jse-input-border, 1px solid #d8dbdf); +} +.jse-transform-modal-inner.svelte-rrrjnb input:where(.svelte-rrrjnb), +.jse-transform-modal-inner.svelte-rrrjnb textarea:where(.svelte-rrrjnb) { + border: var(--jse-input-border, 1px solid #d8dbdf); + outline: none; + box-sizing: border-box; + padding: calc(0.5 * var(--jse-padding, 10px)); + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + color: inherit; + background: var(--jse-input-background, var(--jse-background-color, #fff)); +} +.jse-transform-modal-inner.svelte-rrrjnb input:where(.svelte-rrrjnb):focus, +.jse-transform-modal-inner.svelte-rrrjnb textarea:where(.svelte-rrrjnb):focus { + border: var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa))); +} +.jse-transform-modal-inner.svelte-rrrjnb input:where(.svelte-rrrjnb):read-only, +.jse-transform-modal-inner.svelte-rrrjnb textarea:where(.svelte-rrrjnb):read-only { + background: var(--jse-input-background-readonly, transparent); +} +.jse-transform-modal-inner.svelte-rrrjnb .jse-preview.jse-error:where(.svelte-rrrjnb) { + flex: 1; + background: var(--jse-input-background-readonly, transparent); + border: var(--jse-input-border, 1px solid #d8dbdf); + color: var(--jse-error-color, #ee5341); + padding: calc(0.5 * var(--jse-padding, 10px)); +} +.jse-transform-modal-inner.svelte-rrrjnb a { + color: var(--jse-a-color, #156fc5); +} +.jse-transform-modal-inner.svelte-rrrjnb a:hover { + color: var(--jse-a-color-highlight, #0f508d); +}`);var Mp=LM(()=>oWe),Lf=LM(()=>rWe),i$e=_e('
                '),n$e=_e(" ",1),o$e=_e('
                '),r$e=_e('
                Language
                Path
                Query
                Preview
                ',1),s$e=_e('
                ');function a$e(t,A){var e,i,n;St(A,!1);var o=Es("jsoneditor:TransformModal"),r=N(A,"id",25,()=>"transform-modal-"+Tf()),s=N(A,"json",9),a=N(A,"rootPath",25,()=>[]),c=N(A,"indentation",9),l=N(A,"truncateTextSize",9),d=N(A,"escapeControlCharacters",9),C=N(A,"escapeUnicodeCharacters",9),I=N(A,"parser",9),u=N(A,"parseMemoizeOne",9),h=N(A,"validationParser",9),B=N(A,"pathParser",9),f=N(A,"queryLanguages",9),b=N(A,"queryLanguageId",13),k=N(A,"onChangeQueryLanguage",9),S=N(A,"onRenderValue",9),w=N(A,"onRenderMenu",9),_=N(A,"onRenderContextMenu",9),K=N(A,"onClassName",9),J=N(A,"onTransform",9),O=N(A,"onClose",9),H=Ce(void 0,!0),V=Ce(rCe({onChange:Fe=>x(V,Fe)}).get(),!0),Z=Ce(void 0,!0),ye=Ce(void 0,!0),P=Ce(!1,!0),se="".concat(r(),":").concat(pt(a())),X=(e=Mp()[se])!==null&&e!==void 0?e:{},ue=Ce(Lf().showWizard!==!1,!0),oe=Ce(Lf().showOriginal!==!1,!0),le=Ce((i=X.queryOptions)!==null&&i!==void 0?i:{},!0),me=Ce(b()===X.queryLanguageId&&X.query?X.query:"",!0),Te=Ce((n=X.isManual)!==null&&n!==void 0&&n,!0),$e=Ce(void 0,!0),Je=Ce(void 0,!0),Qe=Ce({text:""},!0);function He(Fe){var pe;return(pe=f().find(Wt=>Wt.id===Fe))!==null&&pe!==void 0?pe:f()[0]}function PA(Fe){try{x(le,Fe),x(me,He(b()).createQuery(g(Z),Fe)),x($e,void 0),x(Te,!1),o("updateQueryByWizard",{queryOptions:g(le),query:g(me),isManual:g(Te)})}catch(pe){x($e,String(pe))}}function JA(Fe){x(me,Fe.target.value),x(Te,!0),o("handleChangeQuery",{query:g(me),isManual:g(Te)})}g(Te)||PA(g(le)),ua(()=>{var Fe;(Fe=g(H))===null||Fe===void 0||Fe.focus()});var Ye=KE(function(Fe,pe){if(Fe===void 0)return x(Qe,{text:""}),void x(Je,"Error: No JSON");if(pe.trim()!=="")try{o("previewTransform",{query:pe});var Wt=He(b()).executeQuery(Fe,pe,I());x(Qe,{json:Wt}),x(Je,void 0)}catch(Qt){x(Qe,{text:""}),x(Je,String(Qt))}else x(Qe,{json:Fe})},300);function Ie(){if(g(Z)===void 0)return x(Qe,{text:""}),void x(Je,"Error: No JSON");try{o("handleTransform",{query:g(me)});var Fe=He(b()).executeQuery(g(Z),g(me),I());J()([{op:"replace",path:pt(a()),value:Fe}]),O()()}catch(pe){console.error(pe),x(Qe,{text:""}),x(Je,String(pe))}}function We(){x(ue,!g(ue)),Lf(Lf().showWizard=g(ue))}function we(){x(oe,!g(oe)),Lf(Lf().showOriginal=g(oe))}function Ze(Fe){Fe.focus()}function Ge(Fe){o("handleChangeQueryLanguage",Fe),b(Fe),k()(Fe),PA(g(le))}function LA(){g(P)?x(P,!g(P)):O()()}Se(()=>(F(s()),F(a())),()=>{x(Z,oCe(WA(s(),a())))}),Se(()=>g(Z),()=>{x(ye,g(Z)?{json:g(Z)}:{text:""})}),Se(()=>(g(Z),g(me)),()=>{Ye(g(Z),g(me))}),Se(()=>(Mp(),g(le),g(me),F(b()),g(Te)),()=>{Mp(Mp()[se]={queryOptions:g(le),query:g(me),queryLanguageId:b(),isManual:g(Te)}),o("store state in memory",se,Mp()[se])}),Nn(),li(!0),jp(t,{get onClose(){return O()},className:"jse-transform-modal",get fullscreen(){return g(P)},children:(Fe,pe)=>{var Wt=s$e();eY(ge(Wt),{children:(Qt,BA)=>{var _t=r$e(),VA=Ut(_t);(function(L,ct){St(ct,!1);var Di,mn=N(ct,"queryLanguages",9),pn=N(ct,"queryLanguageId",9),so=N(ct,"fullscreen",13),$o=N(ct,"onChangeQueryLanguage",9),Ao=N(ct,"onClose",9),Fn=Ce(void 0,!0),{openAbsolutePopup:Qr,closeAbsolutePopup:mr}=nI("absolute-popup");function zo(){var On={queryLanguages:mn(),queryLanguageId:pn(),onChangeQueryLanguage:ho=>{mr(Di),$o()(ho)}};Di=Qr(AZe,On,{offsetTop:-2,offsetLeft:0,anchor:g(Fn),closeOnOuterClick:!0})}li(!0),vM(L,{title:"Transform",fullScreenButton:!0,get onClose(){return Ao()},get fullscreen(){return so()},set fullscreen(On){so(On)},$$slots:{actions:(On,ho)=>{var sA,_i=nZe();nn(ge(_i),{get data(){return hoe}}),Ho(_i,Zi=>x(Fn,Zi),()=>g(Fn)),xA(Zi=>sA=ci(_i,1,"jse-config svelte-1kpylsp",null,sA,Zi),[()=>({hide:mn().length<=1})],tA),QA("click",_i,zo),he(On,_i)}},$$legacy:!0}),kt()})(VA,{get queryLanguages(){return f()},get queryLanguageId(){return b()},onChangeQueryLanguage:Ge,get onClose(){return O()},get fullscreen(){return g(P)},set fullscreen(L){x(P,L)},$$legacy:!0});var YA=ge(De(VA,2)),Jt=ge(YA),KA=De(ge(Jt),2);V2e(ge(KA),()=>(F(b()),Be(()=>He(b()).description)));var di=De(KA,4),G=De(di,2),z=ge(G),Ae=ge(z),de=ge(Ae),Ne=tA(()=>g(ue)?ld:TE);nn(de,{get data(){return g(Ne)}});var pA=De(G,2),vA=L=>{var ct=ar(),Di=Ut(ct),mn=so=>{var $o=n$e(),Ao=Ut($o);XWe(Ao,{get queryOptions(){return g(le)},get json(){return g(Z)},onChange:PA});var Fn=De(Ao,2),Qr=mr=>{var zo=i$e(),On=ge(zo);xA(()=>xt(On,g($e))),he(mr,zo)};ze(Fn,mr=>{g($e)&&mr(Qr)}),he(so,$o)},pn=so=>{he(so,Ss("(Only available for arrays, not for objects)"))};ze(Di,so=>{g(Z),Be(()=>Array.isArray(g(Z)))?so(mn):so(pn,!1)}),he(L,ct)};ze(pA,L=>{g(ue)&&L(vA)});var Ke=De(pA,4);Ho(Ke,L=>x(H,L),()=>g(H));var Re,wt,st=De(Jt,2),nA=ge(st),Bt=ge(nA),Wi=ge(Bt),Qn=ge(Wi),dn=ge(Qn),HA=tA(()=>g(oe)?ld:TE);nn(dn,{get data(){return g(HA)}});var Cn=De(Bt,2),Gi=L=>{fY(L,{get externalContent(){return g(ye)},externalSelection:void 0,get history(){return g(V)},readOnly:!0,get truncateTextSize(){return l()},mainMenuBar:!1,navigationBar:!1,get indentation(){return c()},get escapeControlCharacters(){return d()},get escapeUnicodeCharacters(){return C()},get parser(){return I()},get parseMemoizeOne(){return u()},get onRenderValue(){return S()},get onRenderMenu(){return w()},get onRenderContextMenu(){return _()},onError:Be(()=>console.error),get onChange(){return xr},get onChangeMode(){return xr},get onSelect(){return xr},get onUndo(){return xr},get onRedo(){return xr},get onFocus(){return xr},get onBlur(){return xr},get onSortModal(){return xr},get onTransformModal(){return xr},get onJSONEditorModal(){return xr},get onClassName(){return K()},validator:void 0,get validationParser(){return h()},get pathParser(){return B()}})};ze(Cn,L=>{g(oe)&&L(Gi)});var oi=De(nA,2),Yt=De(ge(oi),2),xi=L=>{fY(L,{get externalContent(){return g(Qe)},externalSelection:void 0,get history(){return g(V)},readOnly:!0,get truncateTextSize(){return l()},mainMenuBar:!1,navigationBar:!1,get indentation(){return c()},get escapeControlCharacters(){return d()},get escapeUnicodeCharacters(){return C()},get parser(){return I()},get parseMemoizeOne(){return u()},get onRenderValue(){return S()},get onRenderMenu(){return w()},get onRenderContextMenu(){return _()},onError:Be(()=>console.error),get onChange(){return xr},get onChangeMode(){return xr},get onSelect(){return xr},get onUndo(){return xr},get onRedo(){return xr},get onFocus(){return xr},get onBlur(){return xr},get onSortModal(){return xr},get onTransformModal(){return xr},get onJSONEditorModal(){return xr},get onClassName(){return K()},validator:void 0,get validationParser(){return h()},get pathParser(){return B()}})},Pi=L=>{var ct=o$e(),Di=ge(ct);xA(()=>xt(Di,g(Je))),he(L,ct)};ze(Yt,L=>{g(Je)?L(Pi,!1):L(xi)});var Xt=ge(De(YA,2));zs(()=>QA("click",Xt,Ie)),Ka(Xt,L=>Ze?.(L)),xA((L,ct,Di)=>{ah(di,L),ah(Ke,g(me)),Re=ci(st,1,"jse-data-contents svelte-rrrjnb",null,Re,ct),wt=ci(nA,1,"jse-original-data svelte-rrrjnb",null,wt,Di),Xt.disabled=!!g(Je)},[()=>(F(An),F(a()),F(Yc),Be(()=>An(a())?"(document root)":Yc(a()))),()=>({"jse-hide-original-data":!g(oe)}),()=>({"jse-hide":!g(oe)})],tA),QA("click",Ae,We),QA("input",Ke,JA),QA("click",Qn,we),he(Qt,_t)},$$slots:{default:!0}}),Ka(Wt,(Qt,BA)=>bM?.(Qt,BA),()=>LA),he(Fe,Wt)},$$slots:{default:!0}}),kt()}function sg(){}var c$e=0,Ms=class{constructor(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.id=c$e++,this.perNode=!!A.perNode,this.deserialize=A.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(A){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof A!="function"&&(A=qp.match(A)),e=>{var i=A(e);return i===void 0?null:[this,i]}}};Ms.closedBy=new Ms({deserialize:t=>t.split(" ")}),Ms.openedBy=new Ms({deserialize:t=>t.split(" ")}),Ms.group=new Ms({deserialize:t=>t.split(" ")}),Ms.isolate=new Ms({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}}),Ms.contextHash=new Ms({perNode:!0}),Ms.lookAhead=new Ms({perNode:!0}),Ms.mounted=new Ms({perNode:!0});var c2e,l$e=Object.create(null),qp=class t{constructor(A,e,i){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;this.name=A,this.props=e,this.id=i,this.flags=n}static define(A){var e=A.props&&A.props.length?Object.create(null):l$e,i=(A.top?1:0)|(A.skipped?2:0)|(A.error?4:0)|(A.name==null?8:0),n=new t(A.name||"",e,A.id,i);if(A.props){for(var o of A.props)if(Array.isArray(o)||(o=o(n)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");e[o[0].id]=o[1]}}return n}prop(A){return this.props[A.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(A){if(typeof A=="string"){if(this.name==A)return!0;var e=this.prop(Ms.group);return!!e&&e.indexOf(A)>-1}return this.id==A}static match(A){var e=Object.create(null);for(var i in A)for(var n of i.split(" "))e[n]=A[i];return o=>{for(var r=o.prop(Ms.group),s=-1;s<(r?r.length:0);s++){var a=e[s<0?o.name:r[s]];if(a)return a}}}};qp.none=new qp("",Object.create(null),0,8),function(t){t[t.ExcludeBuffers=1]="ExcludeBuffers",t[t.IncludeAnonymous=2]="IncludeAnonymous",t[t.IgnoreMounts=4]="IgnoreMounts",t[t.IgnoreOverlays=8]="IgnoreOverlays"}(c2e||(c2e={})),new Ms({perNode:!0});Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-status-bar.svelte-1ulj7zd { + background: var(--jse-panel-background, #ebebeb); + color: var(--jse-panel-color-readonly, #b2b2b2); + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + margin: 0; + border-top: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); + display: flex; + gap: var(--jse-padding, 10px); +} +.jse-status-bar.svelte-1ulj7zd:last-child { + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-status-bar.svelte-1ulj7zd .jse-status-bar-info:where(.svelte-1ulj7zd) { + padding: 2px; +}`);var g$e=_e('
                '),d$e=_e('
                '),C$e=_e('
                '),I$e=_e('
                '),XY=wf.define([{tag:GA.propertyName,color:"var(--internal-key-color)"},{tag:GA.number,color:"var(--internal-value-color-number)"},{tag:GA.bool,color:"var(--internal-value-color-boolean)"},{tag:GA.string,color:"var(--internal-value-color-string)"},{tag:GA.keyword,color:"var(--internal-value-color-null)"}]),u$e=pO(XY),h$e=XY.style;XY.style=t=>h$e(t||[]);var B$e=[Jo.fromClass(class{constructor(t){this.view=t,this.indentUnit=qg(t.state),this.initialPaddingLeft=null,this.isChrome=window?.navigator.userAgent.includes("Chrome"),this.generate(t.state)}update(t){var A=qg(t.state);(A!==this.indentUnit||t.docChanged||t.viewportChanged)&&(this.indentUnit=A,this.generate(t.state))}generate(t){var A=new ga;this.initialPaddingLeft?this.addStyleToBuilder(A,t,this.initialPaddingLeft):this.view.requestMeasure({read:e=>{var i=e.contentDOM.querySelector(".cm-line");i&&(this.initialPaddingLeft=window.getComputedStyle(i).getPropertyValue("padding-left"),this.addStyleToBuilder(A,e.state,this.initialPaddingLeft)),this.decorations=A.finish()}}),this.decorations=A.finish()}addStyleToBuilder(t,A,e){var i=this.getVisibleLines(A);for(var n of i){var{numColumns:o,containsTab:r}=this.numColumns(n.text,A.tabSize),s="calc(".concat(o+this.indentUnit,"ch + ").concat(e,")"),a=this.isChrome?"calc(-".concat(o+this.indentUnit,"ch - ").concat(r?1:0,"px)"):"-".concat(o+this.indentUnit,"ch");t.add(n.from,n.from,bt.line({attributes:{style:"padding-left: ".concat(s,"; text-indent: ").concat(a,";")}}))}}getVisibleLines(t){var A=new Set,e=null;for(var{from:i,to:n}of this.view.visibleRanges)for(var o=i;o<=n;){var r=t.doc.lineAt(o);e!==r&&(A.add(r),e=r),o=r.to+1}return A}numColumns(t,A){var e=0,i=!1;e:for(var n=0;nt.decorations})];Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-text-mode.svelte-1pr65po { + --internal-key-color: var(--jse-key-color, #1a1a1a); + --internal-value-color-number: var(--jse-value-color-number, #ee422e); + --internal-value-color-boolean: var(--jse-value-color-boolean, #ff8c00); + --internal-value-color-string: var(--jse-value-color-string, #008000); + --internal-value-color-null: var(--jse-value-color-null, #004ed0); + flex: 1; + box-sizing: border-box; + display: flex; + flex-direction: column; + background: var(--jse-background-color, #fff); +} +.jse-text-mode.no-main-menu.svelte-1pr65po { + border-top: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) { + flex: 1; + display: flex; + position: relative; + flex-direction: column; + overflow: hidden; + min-width: 0; + min-height: 0; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po):last-child { + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-text-mode.svelte-1pr65po .jse-contents.jse-hidden:where(.svelte-1pr65po) { + visibility: hidden; + position: absolute; + top: 0; + left: 0; +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor { + flex: 1; + overflow: hidden; +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-scroller { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + line-height: var(--jse-line-height, calc(1em + 4px)); + color: var(--jse-delimiter-color, rgba(0, 0, 0, 0.38)); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-gutters { + background: var(--jse-panel-background, #ebebeb); + color: var(--jse-panel-color-readonly, #b2b2b2); + border-right: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-activeLine, +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-activeLineGutter { + background: var(--jse-active-line-background-color, rgba(0, 0, 0, 0.06)); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-selectionBackground { + background: var(--jse-selection-background-color, #d3d3d3); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-searchMatch { + background-color: var(--jse-search-match-color, #ffe665); + outline: var(--jse-search-match-outline, none); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-searchMatch.cm-searchMatch-selected { + background-color: var(--jse-search-match-active-color, var(--jse-search-match-color, #ffe665)); + outline: var(--jse-search-match-outline, 2px solid #e0be00); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-selectionMatch { + background-color: var(--jse-search-match-background-color, rgba(153, 255, 119, 0.5019607843)); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-foldPlaceholder { + background: var(--jse-tag-background, rgba(0, 0, 0, 0.2)); + color: var(--jse-tag-color, var(--jse-text-color-inverse, #fff)); + border: none; + padding: 0 var(--jse-padding, 10px); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-tooltip { + font-size: var(--jse-font-size, 16px); + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + color: var(--jse-tooltip-color, var(--jse-text-color, #4d4d4d)); + background: var(--jse-tooltip-background, var(--jse-modal-background, #f5f5f5)); + border: var(--jse-tooltip-border, var(--jse-main-border, 1px solid #d7d7d7)); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-diagnosticAction { + background: var(--jse-tooltip-action-button-color, var(--jse-text-color-inverse, #fff)); + background: var(--jse-tooltip-action-button-background, #4d4d4d); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-panels { + border-bottom: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search { + background: var(--jse-panel-background, #ebebeb); + color: var(--jse-panel-color, var(--jse-text-color, #4d4d4d)); + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search input { + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size-text-mode-search, 80%); + color: var(--jse-input-color, var(--jse-text-color, #4d4d4d)); + border: var(--jse-input-border, 1px solid #d8dbdf); + background: var(--jse-input-background, var(--jse-background-color, #fff)); + margin-right: 2px; +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search button { + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size-text-mode-search, 80%); + color: var(--jse-panel-button-color, inherit); + background: var(--jse-panel-button-background, transparent); + border: none; + cursor: pointer; + text-transform: capitalize; + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px); + margin: 0; +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search button:hover { + color: var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d)); + background: var(--jse-panel-button-background-highlight, #e0e0e0); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search label { + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size-text-mode-search, 80%); + padding-left: var(--jse-padding, 10px); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search label input { + margin-right: 2px; +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-search button[name="close"] { + width: 32px; + height: 32px; + font-size: 24px; + line-height: 24px; + padding: 0; + right: 0; + top: -4px; +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .cm-editor .cm-cursor-primary { + border-color: var(--jse-text-color, #4d4d4d); +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .jse-loading-space:where(.svelte-1pr65po) { + flex: 1; +} +.jse-text-mode.svelte-1pr65po .jse-contents:where(.svelte-1pr65po) .jse-loading:where(.svelte-1pr65po) { + flex: 2; + text-align: center; + color: var(--jse-panel-color-readonly, #b2b2b2); + box-sizing: border-box; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); +} +.jse-text-mode.svelte-1pr65po .jse-contents.jse-preview:where(.svelte-1pr65po) { + flex: 1; + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + color: var(--jse-panel-color-readonly, #b2b2b2); + overflow: auto; + white-space: pre-wrap; + word-break: break-word; + padding: 2px; +} +.jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) { + display: flex; + align-items: center; + gap: 8px; + padding: 8px 12px; + background: var(--jse-background-color, #fff); + border-top: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); + border-bottom: var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); +} +.jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) .jse-fold-tip:where(.svelte-1pr65po) { + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size-mono, 14px); + color: var(--jse-panel-color-readonly, #b2b2b2); +} +.jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) .jse-fold-progress-track:where(.svelte-1pr65po) { + flex: 1; + height: 6px; + background: var(--jse-panel-background, #ebebeb); + border-radius: 3px; + overflow: hidden; + border: 1px solid var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7)); +} +.jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) .jse-fold-progress-fill:where(.svelte-1pr65po) { + height: 100%; + background: linear-gradient(90deg, var(--jse-theme-color, #3883fa), var(--jse-theme-color-highlight, #5f9dff)); + border-radius: 2px; + transition: width 0.1s ease; + min-width: 2px; +} +.jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) .jse-fold-cancel-button:where(.svelte-1pr65po) { + padding: 4px 12px; + font-size: 12px; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + background: var(--jse-theme-color, #3883fa); + color: #fff; + border-radius: 3px; + cursor: pointer; + transition: background-color 0.2s ease; + flex-shrink: 0; + border: 1px solid var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-text-mode.svelte-1pr65po .jse-fold-progress:where(.svelte-1pr65po) .jse-fold-cancel-button:where(.svelte-1pr65po):hover { + background: var(--jse-theme-color-highlight, #5f9dff); + color: #fff; +}`);var E$e=_e('
                Collapsing
                '),f$e=_e('
                ',1),Q$e=_e(" ",1),m$e=_e("
                ",1),p$e=_e('
                loading...
                '),w$e=_e("
                ");function y$e(t,A){St(A,!1);var e=Ce(void 0,!0),i=Ce(void 0,!0),n=N(A,"readOnly",9),o=N(A,"mainMenuBar",9),r=N(A,"statusBar",9),s=N(A,"askToFormat",9),a=N(A,"externalContent",9),c=N(A,"externalSelection",9),l=N(A,"history",9),d=N(A,"indentation",9),C=N(A,"tabSize",9),I=N(A,"escapeUnicodeCharacters",9),u=N(A,"parser",9),h=N(A,"validator",9),B=N(A,"validationParser",9),f=N(A,"onChange",9),b=N(A,"onChangeMode",9),k=N(A,"onSelect",9),S=N(A,"onUndo",9),w=N(A,"onRedo",9),_=N(A,"onError",9),K=N(A,"onFocus",9),J=N(A,"onBlur",9),O=N(A,"onRenderMenu",9),H=N(A,"onSortModal",9),V=N(A,"onTransformModal",9),Z=Es("jsoneditor:TextMode"),ye={key:"Mod-i",run:Ne,shift:pA,preventDefault:!0},P=typeof window>"u";Z("isSSR:",P);var se,X=Ce(void 0,!0),ue=Ce(void 0,!0),oe=Ce(void 0,!0),le=Ce(!1,!0),me=Ce(s(),!0),Te=Ce([],!0),$e=Ce(!1,!0),Je=Ce(0,!0),Qe=Ce(0,!0),He=null,PA=new hd,JA=new hd,Ye=new hd,Ie=new hd,We=new hd,we=a(),Ze=Ce($J(we,d(),u()),!0),Ge=Fc.define(),LA=null;function Fe(){if(!LA||LA.length===0)return!1;var Me=LA[0].startState,gA=LA[LA.length-1].state,EA=LA.map(bA=>bA.changes).reduce((bA,fe)=>bA.compose(fe)),zA={type:"text",undo:{changes:EA.invert(Me.doc).toJSON(),selection:zo(Me.selection)},redo:{changes:EA.toJSON(),selection:zo(gA.selection)}};return Z("add history item",zA),l().add(zA),LA=null,!0}var pe=Ce(I(),!0);ua(Vt(function*(){if(!P)try{se=function(Me){var{target:gA,initialText:EA,readOnly:zA,indentation:bA}=Me;Z("Create CodeMirror editor",{readOnly:zA,indentation:bA});var fe=function(Xe,qA){return _J(Xe)?Xe.ranges.every(Gt=>Gt.anchor{x(oe,Xe.state),Xe.docChanged&&(Xe.transactions.some(qA=>!!qA.annotation(Ge))||(LA=[...LA??[],Xe]),Ao()),Xe.selectionSet&&mr()}),E0e(),v0e({top:!0}),ai.lineWrapping,JA.of(ss.readOnly.of(zA)),Ie.of(ss.tabSize.of(C())),Ye.of($o(bA)),We.of(ai.theme({},{dark:Yt()}))]});return se=new ai({state:ke,parent:gA}),fe&&se.dispatch(se.state.update({selection:fe.main,scrollIntoView:!0})),se}({target:g(X),initialText:On(g(Ze),g(le))?"":g(e).escapeValue(g(Ze)),readOnly:n(),indentation:d()})}catch(Me){console.error(Me)}})),gg(()=>{Fn(),se&&(Z("Destroy CodeMirror editor"),se.destroy()),di()});var Wt=IC(),Qt=IC();function BA(){se&&(Z("focus"),se.focus())}function _t(Me,gA){if(se)try{(function(){var EA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],zA=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],bA=se.state,fe=bA.doc.length,ke=uO(bA,fe,1/0);if(ke){var Xe=[];if(EA.length===0)Xe=Jt(ke,bA,void 0,zA);else{var{from:qA}=wJ(g(e).escapeValue(g(Ze)),EA);qA!==void 0&&qA!==0&&(Xe=Jt(ke,bA,qA,zA))}Xe.length>0&&function(Gt){KA.apply(this,arguments)}(Xe)}})(Me,gA)}catch(EA){_()(EA)}}function VA(){return EO.of((Me,gA,EA)=>{var zA=uO(Me,Me.doc.length,1/0);if(!zA||zA.lengthEA)){if(bA&&ke.from=gA&&qA.to>EA&&(bA=qA)}}}return bA})}function YA(Me){var gA=Me.lastChild;return gA&&gA.to==Me.to&&gA.type.isError}function Jt(Me,gA,EA){var zA=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3],bA=[],fe=new Set;return Me.iterate({enter(ke){if(EA===void 0||ke.from>=EA){var Xe=pf(gA,ke.from,ke.to);if(Xe){var qA="".concat(Xe.from,"-").concat(Xe.to);if(!fe.has(qA))if(zA)bA.push({from:Xe.from,to:Xe.to}),fe.add(qA);else{var Gt=bA.some($t=>$t.from<=Xe.from&&$t.to>=Xe.to);Gt||(bA.push({from:Xe.from,to:Xe.to}),fe.add(qA))}}}}}),bA}function KA(){return KA=Vt(function*(Me){if(Me.length!==0){var gA=Me.length>5e3;gA&&(x($e,!0),x(Je,0),x(Qe,Me.length),He=new AbortController);var EA=zA=>new Promise(bA=>{var fe;gA&&(fe=He)!==null&&fe!==void 0&&fe.signal.aborted?bA():requestAnimationFrame(()=>{var ke=Math.min(zA+100,Me.length),Xe=Me.slice(zA,ke);se.dispatch({effects:Xe.map(qA=>Df.of({from:qA.from,to:qA.to}))}),gA&&x(Je,ke),ke1&&arguments[1]!==void 0?arguments[1]:nY;if(se)try{if(Me&&Me.length>0){var{from:EA}=wJ(g(e).escapeValue(g(Ze)),Me);EA!==void 0&&(se.dispatch({selection:{anchor:EA,head:EA}}),fO(se))}else QO(se);gA?.(Me)}catch(zA){_()(zA)}}var z=!1;function Ae(Me){return de(Me,!1)}function de(Me,gA){Z("handlePatch",Me,gA);var EA=u().parse(g(Ze)),zA=Mc(EA,Me),bA=SD(EA,Me);return L({text:u().stringify(zA,null,d())},gA,!1),{json:zA,previousJson:EA,undo:bA,redo:Me}}function Ne(){if(Z("format"),n())return!1;try{var Me=u().parse(g(Ze));return L({text:u().stringify(Me,null,d())},!0,!1),x(me,s()),!0}catch(gA){_()(gA)}return!1}function pA(){if(Z("compact"),n())return!1;try{var Me=u().parse(g(Ze));return L({text:u().stringify(Me)},!0,!1),x(me,!1),!0}catch(gA){_()(gA)}return!1}function vA(){if(Z("repair"),!n())try{L({text:jl(g(Ze))},!0,!1),x(ho,SJ),x(sA,void 0)}catch(Me){_()(Me)}}function Ke(){var Me;if(!n())try{var gA=u().parse(g(Ze));z=!0,H()({id:Wt,json:gA,rootPath:[],onSort:(Me=Vt(function*(EA){var{operations:zA}=EA;Z("onSort",zA),de(zA,!0)}),function(EA){return Me.apply(this,arguments)}),onClose:()=>{z=!1,BA()}})}catch(EA){_()(EA)}}function Re(Me){var{id:gA,rootPath:EA,onTransform:zA,onClose:bA}=Me;try{var fe=u().parse(g(Ze));z=!0,V()({id:gA||Qt,json:fe,rootPath:EA||[],onTransform:ke=>{zA?zA({operations:ke,json:fe,transformedJson:Mc(fe,ke)}):(Z("onTransform",ke),de(ke,!0))},onClose:()=>{z=!1,BA(),bA&&bA()}})}catch(ke){_()(ke)}}function wt(){n()||Re({rootPath:[]})}function st(){se&&(g(X)&&g(X).querySelector(".cm-search")?Nb(se):Rb(se))}function nA(){if(n())return!1;Fn();var Me=l().undo();return Z("undo",Me),xde(Me)?(se.dispatch({annotations:Ge.of("undo"),changes:la.fromJSON(Me.undo.changes),selection:fA.fromJSON(Me.undo.selection),scrollIntoView:!0}),!0):(S()(Me),!1)}function Bt(){if(n())return!1;Fn();var Me=l().redo();return Z("redo",Me),xde(Me)?(se.dispatch({annotations:Ge.of("redo"),changes:la.fromJSON(Me.redo.changes),selection:fA.fromJSON(Me.redo.selection),scrollIntoView:!0}),!0):(w()(Me),!1)}function Wi(){x(le,!0),L(a(),!0,!0)}function Qn(){b()(Rr.tree)}function dn(){pn()}function HA(Me){Z("select validation error",Me);var{from:gA,to:EA}=xi(Me);gA!==void 0&&EA!==void 0&&(Cn(gA,EA),BA())}function Cn(Me,gA){Z("setSelection",{anchor:Me,head:gA}),se&&se.dispatch(se.state.update({selection:{anchor:Me,head:gA},scrollIntoView:!0}))}function Gi(Me,gA){if(gA.state.selection.ranges.length===1){var EA=gA.state.selection.ranges[0],zA=g(Ze).slice(EA.from,EA.to);if(zA==="{"||zA==="["){var bA=QY.default.parse(g(Ze)),fe=Object.keys(bA.pointers).find(Xe=>{var qA;return((qA=bA.pointers[Xe].value)===null||qA===void 0?void 0:qA.pos)===EA.from}),ke=bA.pointers[fe];fe&&ke&&ke.value&&ke.valueEnd&&(Z("pointer found, selecting inner contents of path:",fe,ke),Cn(ke.value.pos+1,ke.valueEnd.pos-1))}}}function oi(){return n0e(_i,{delay:300})}function Yt(){return!!g(X)&&getComputedStyle(g(X)).getPropertyValue("--jse-theme").includes("dark")}function xi(Me){var{path:gA,message:EA,severity:zA}=Me,{line:bA,column:fe,from:ke,to:Xe}=wJ(g(e).escapeValue(g(Ze)),gA);return{path:gA,line:bA,column:fe,from:ke,to:Xe,message:EA,severity:zA,actions:[]}}function Pi(Me,gA){var{line:EA,column:zA,position:bA,message:fe}=Me;return{path:[],line:EA,column:zA,from:bA,to:bA,severity:e0.error,message:fe,actions:gA&&!n()?[{name:"Auto repair",apply:()=>vA()}]:void 0}}function Xt(Me){return{from:Me.from||0,to:Me.to||0,message:Me.message||"",actions:Me.actions,severity:Me.severity}}function L(Me,gA,EA){var zA=$J(Me,d(),u()),bA=!wi(Me,we),fe=we;Z("setCodeMirrorContent",{isChanged:bA,emitChange:gA,forceUpdate:EA}),se&&(bA||EA)&&(we=Me,x(Ze,zA),On(g(Ze),g(le))||se.dispatch({changes:{from:0,to:se.state.doc.length,insert:g(e).escapeValue(g(Ze))}}),Fe(),bA&&gA&&Qr(we,fe))}function ct(Me){return _J(Me)?fA.fromJSON(Me):void 0}function Di(){return mn.apply(this,arguments)}function mn(){return mn=Vt(function*(){Z("refresh"),yield function(){return so.apply(this,arguments)}()}),mn.apply(this,arguments)}function pn(){if(se){var Me=se?g(e).unescapeValue(se.state.doc.toString()):"",gA=Me!==g(Ze);if(Z("onChangeCodeMirrorValue",{isChanged:gA}),gA){var EA=we;x(Ze,Me),we={text:g(Ze)},Fe(),Qr(we,EA),bo(),mr()}}}function so(){return(so=Vt(function*(){if(bo(),se){var Me=Yt();return Z("updateTheme",{dark:Me}),se.dispatch({effects:[We.reconfigure(ai.theme({},{dark:Me}))]}),new Promise(gA=>setTimeout(gA))}return Promise.resolve()})).apply(this,arguments)}function $o(Me){var gA=ju.of(typeof Me=="number"?" ".repeat(Me):Me);return Me===" "?[gA]:[gA,B$e]}qY({onMount:ua,onDestroy:gg,getWindow:()=>i6(g(ue)),hasFocus:()=>z&&document.hasFocus()||RY(g(ue)),onFocus:K(),onBlur:()=>{Fn(),J()()}});var Ao=KE(pn,300);function Fn(){Ao.flush()}function Qr(Me,gA){f()&&f()(Me,gA,{contentErrors:Zi(),patchResult:void 0})}function mr(){k()(zo(g(oe).selection))}function zo(Me){return SA({type:ro.text},Me.toJSON())}function On(Me,gA){return!!Me&&Me.length>bJ&&!gA}var ho=Ce(SJ,!0),sA=Ce(void 0,!0);function _i(){if(On(g(Ze),g(le)))return[];var Me=Zi();if(kde(Me)){var{parseError:gA,isRepairable:EA}=Me;return[Xt(Pi(gA,EA))]}return Gqe(Me)?Me.validationErrors.map(xi).map(Xt):[]}function Zi(){Z("validate:start"),Fn();var Me=Jn(g(e).escapeValue(g(Ze)),h(),u(),B());return kde(Me)?(x(ho,Me.isRepairable?Dde:"invalid"),x(sA,Me.parseError),x(Te,[])):(x(ho,SJ),x(sA,void 0),x(Te,Me?.validationErrors||[])),Z("validate:end"),Me}var Jn=OE(sZe);function Bo(){g(sA)&&function(Me){Z("select parse error",Me);var gA=Pi(Me,!1);Cn(gA.from!=null?gA.from:0,gA.to!=null?gA.to:0),BA()}(g(sA))}var pr={icon:Ioe,text:"Show me",title:"Move to the parse error location",onClick:Bo};Se(()=>F(I()),()=>{x(e,xY({escapeControlCharacters:!1,escapeUnicodeCharacters:I()}))}),Se(()=>F(a()),()=>{L(a(),!1,!1)}),Se(()=>F(c()),()=>{(function(Me){if(_J(Me)){var gA=ct(Me);!se||!gA||g(oe)&&g(oe).selection.eq(gA)||(Z("applyExternalSelection",gA),se.dispatch({selection:gA}))}})(c())}),Se(()=>F(h()),()=>{(function(Me){Z("updateLinter",Me),se&&se.dispatch({effects:PA.reconfigure(oi())})})(h())}),Se(()=>F(d()),()=>{(function(Me){se&&(Z("updateIndentation",Me),se.dispatch({effects:Ye.reconfigure($o(Me))}))})(d())}),Se(()=>F(C()),()=>{(function(Me){se&&(Z("updateTabSize",Me),se.dispatch({effects:Ie.reconfigure(ss.tabSize.of(Me))}))})(C())}),Se(()=>F(n()),()=>{(function(Me){se&&(Z("updateReadOnly",Me),se.dispatch({effects:[JA.reconfigure(ss.readOnly.of(Me))]}))})(n())}),Se(()=>(g(pe),F(I())),()=>{g(pe)!==I()&&(x(pe,I()),Z("forceUpdateText",{escapeUnicodeCharacters:I()}),se&&se.dispatch({changes:{from:0,to:se.state.doc.length,insert:g(e).escapeValue(g(Ze))}}))}),Se(()=>(g(ho),F(n()),b2),()=>{x(i,g(ho)!==Dde||n()?[pr]:[{icon:b2,text:"Auto repair",title:"Automatically repair JSON",onClick:vA},pr])}),Nn(),li(!0);var Mi,Mo=w$e(),wr=ge(Mo),yr=Me=>{var gA=tA(()=>(g(Ze),Be(()=>g(Ze).length===0))),EA=tA(()=>!g(gA)),zA=tA(()=>!g(gA)),bA=tA(()=>!g(gA)),fe=tA(()=>!g(gA));(function(ke,Xe){St(Xe,!1);var qA=Ce(void 0,!0),Gt=N(Xe,"readOnly",9,!1),$t=N(Xe,"onFormat",9),Sn=N(Xe,"onCompact",9),So=N(Xe,"onSort",9),kn=N(Xe,"onTransform",9),on=N(Xe,"onToggleSearch",9),Tt=N(Xe,"onUndo",9),Xi=N(Xe,"onRedo",9),to=N(Xe,"canUndo",9),vt=N(Xe,"canRedo",9),Hn=N(Xe,"canFormat",9),ZA=N(Xe,"canCompact",9),Ri=N(Xe,"canSort",9),Ki=N(Xe,"canTransform",9),io=N(Xe,"onRenderMenu",9),lr={type:"button",icon:o3,title:"Search (Ctrl+F)",className:"jse-search",onClick:on()},ri=Ce(void 0,!0);Se(()=>(F(Gt()),F($t()),F(Hn()),F(Sn()),F(ZA()),F(So()),F(Ri()),F(kn()),F(Ki()),F(Tt()),F(to()),F(Xi()),F(vt())),()=>{x(ri,Gt()?[lr,{type:"space"}]:[{type:"button",icon:r2e,title:"Format JSON: add proper indentation and new lines (Ctrl+I)",className:"jse-format",onClick:$t(),disabled:Gt()||!Hn()},{type:"button",icon:gXe,title:"Compact JSON: remove all white spacing and new lines (Ctrl+Shift+I)",className:"jse-compact",onClick:Sn(),disabled:Gt()||!ZA()},{type:"separator"},{type:"button",icon:n3,title:"Sort",className:"jse-sort",onClick:So(),disabled:Gt()||!Ri()},{type:"button",icon:A3,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:kn(),disabled:Gt()||!Ki()},lr,{type:"separator"},{type:"button",icon:hv,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:Tt(),disabled:!to()},{type:"button",icon:uv,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:Xi(),disabled:!vt()},{type:"space"}])}),Se(()=>(F(io()),g(ri)),()=>{x(qA,io()(g(ri))||g(ri))}),Nn(),li(!0),YM(ke,{get items(){return g(qA)}}),kt()})(Me,{get readOnly(){return n()},onFormat:Ne,onCompact:pA,onSort:Ke,onTransform:wt,onToggleSearch:st,onUndo:nA,onRedo:Bt,get canFormat(){return g(EA)},get canCompact(){return g(zA)},get canSort(){return g(bA)},get canTransform(){return g(fe)},get canUndo(){return F(l()),Be(()=>l().canUndo)},get canRedo(){return F(l()),Be(()=>l().canRedo)},get onRenderMenu(){return O()}})};ze(wr,Me=>{o()&&Me(yr)});var Nr=De(wr,2),Mn=Me=>{var gA=E$e(),EA=De(ge(gA),2),zA=ge(EA),bA=De(EA,2);xA(()=>cg(zA,"width: ".concat(g(Qe)>0?g(Je)/g(Qe)*100:0,"%"))),QA("click",bA,di),he(Me,gA)};ze(Nr,Me=>{g($e)&&Me(Mn)});var wn=De(Nr,2),Ft=Me=>{var gA,EA=m$e(),zA=tA(()=>(g(Ze),g(le),Be(()=>On(g(Ze),g(le))))),bA=Ut(EA);Ho(bA,Gt=>x(X,Gt),()=>g(X));var fe=De(bA,2),ke=Gt=>{var $t=f$e(),Sn=Ut($t),So=tA(()=>(F(sM),F(bJ),g(Ze),Be(()=>"The JSON document is larger than ".concat(sM(bJ),", ")+"and may crash your browser when loading it in text mode. Actual size: ".concat(sM(g(Ze).length),"."))));Sl(Sn,{get icon(){return hC},type:"error",get message(){return g(So)},actions:[{text:"Open anyway",title:"Open the document in text mode. This may freeze or crash your browser.",onClick:Wi},{text:"Open in tree mode",title:"Open the document in tree mode. Tree mode can handle large documents.",onClick:Qn},{text:"Cancel",title:"Cancel opening this large document.",onClick:dn}],onClose:BA});var kn=ge(De(Sn,2));xA(on=>xt(kn,on),[()=>(F(Y2),g(Ze),F(uM),Be(()=>Y2(g(Ze)||"",uM)))],tA),he(Gt,$t)};ze(fe,Gt=>{g(zA)&&Gt(ke)});var Xe=De(fe,2),qA=Gt=>{var $t=Q$e(),Sn=Ut($t),So=to=>{(function(vt,Hn){St(Hn,!1);var ZA=N(Hn,"editorState",8),Ri=Ce(),Ki=Ce(),io=Ce(),lr=Ce(),ri=Ce();Se(()=>F(ZA()),()=>{var Y;x(Ri,(Y=ZA())===null||Y===void 0||(Y=Y.selection)===null||Y===void 0||(Y=Y.main)===null||Y===void 0?void 0:Y.head)}),Se(()=>(g(Ri),F(ZA())),()=>{var Y;x(Ki,g(Ri)!==void 0?(Y=ZA())===null||Y===void 0||(Y=Y.doc)===null||Y===void 0?void 0:Y.lineAt(g(Ri)):void 0)}),Se(()=>g(Ki),()=>{x(io,g(Ki)!==void 0?g(Ki).number:void 0)}),Se(()=>(g(Ki),g(Ri)),()=>{x(lr,g(Ki)!==void 0&&g(Ri)!==void 0?g(Ri)-g(Ki).from+1:void 0)}),Se(()=>F(ZA()),()=>{var Y;x(ri,(Y=ZA())===null||Y===void 0||(Y=Y.selection)===null||Y===void 0||(Y=Y.ranges)===null||Y===void 0?void 0:Y.reduce((ie,ce)=>ie+ce.to-ce.from,0))}),Nn(),li();var fs=I$e(),Eo=ge(fs),Q=Y=>{var ie=g$e(),ce=ge(ie);xA(()=>{var Le;return xt(ce,"Line: ".concat((Le=g(io))!==null&&Le!==void 0?Le:""))}),he(Y,ie)};ze(Eo,Y=>{g(io)!==void 0&&Y(Q)});var D=De(Eo,2),R=Y=>{var ie=d$e(),ce=ge(ie);xA(()=>{var Le;return xt(ce,"Column: ".concat((Le=g(lr))!==null&&Le!==void 0?Le:""))}),he(Y,ie)};ze(D,Y=>{g(lr)!==void 0&&Y(R)});var v=De(D,2),U=Y=>{var ie=C$e(),ce=ge(ie);xA(()=>{var Le;return xt(ce,"Selection: ".concat((Le=g(ri))!==null&&Le!==void 0?Le:""," characters"))}),he(Y,ie)};ze(v,Y=>{g(ri)!==void 0&&g(ri)>0&&Y(U)}),he(vt,fs),kt()})(to,{get editorState(){return g(oe)}})};ze(Sn,to=>{r()&&to(So)});var kn=De(Sn,2),on=to=>{Sl(to,{type:"error",get icon(){return hC},get message(){return g(sA),Be(()=>g(sA).message)},get actions(){return g(i)},onClick:Bo,onClose:BA})};ze(kn,to=>{g(sA)&&to(on)});var Tt=De(kn,2),Xi=to=>{var vt=tA(()=>[{icon:r2e,text:"Format",title:"Format JSON: add proper indentation and new lines (Ctrl+I)",onClick:Ne},{icon:r3,text:"No thanks",title:"Close this message",onClick:()=>x(me,!1)}]);Sl(to,{type:"success",message:"Do you want to format the JSON?",get actions(){return g(vt)},onClose:BA})};ze(Tt,to=>{g(sA),g(me),F(wde),g(Ze),Be(()=>!g(sA)&&g(me)&&wde(g(Ze)))&&to(Xi)}),WY(De(Tt,2),{get validationErrors(){return g(Te)},selectError:HA}),he(Gt,$t)};ze(Xe,Gt=>{g(zA)||Gt(qA)}),xA(Gt=>gA=ci(bA,1,"jse-contents svelte-1pr65po",null,gA,Gt),[()=>({"jse-hidden":g(zA)})],tA),he(Me,EA)},Yn=Me=>{he(Me,p$e())};return ze(wn,Me=>{P?Me(Yn,!1):Me(Ft)}),Ho(Mo,Me=>x(ue,Me),()=>g(ue)),xA(Me=>Mi=ci(Mo,1,"jse-text-mode svelte-1pr65po",null,Mi,Me),[()=>({"no-main-menu":!o()})],tA),he(t,Mo),jt(A,"focus",BA),jt(A,"collapse",_t),jt(A,"expand",G),jt(A,"patch",Ae),jt(A,"handlePatch",de),jt(A,"openTransformModal",Re),jt(A,"refresh",Di),jt(A,"flush",Fn),jt(A,"validate",Zi),kt({focus:BA,collapse:_t,expand:G,patch:Ae,handlePatch:de,openTransformModal:Re,refresh:Di,flush:Fn,validate:Zi})}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-inline-value.svelte-h57m0p { + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + line-height: var(--jse-line-height, calc(1em + 4px)); + border: none; + padding: 0 calc(0.5 * var(--jse-padding, 10px)); + background: transparent; + color: inherit; + cursor: inherit; +} +.jse-inline-value.jse-highlight.svelte-h57m0p { + background-color: var(--jse-search-match-color, #ffe665); + outline: var(--jse-search-match-outline, none); +} +.jse-inline-value.jse-highlight.jse-active.svelte-h57m0p { + background-color: var(--jse-search-match-active-color, var(--jse-search-match-color, #ffe665)); + outline: var(--jse-search-match-outline, 2px solid #e0be00); +}`);var D$e=_e('');Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-column-header.svelte-2i3vdx { + background: none; + border: none; + font-family: inherit; + font-size: inherit; + color: inherit; + display: flex; + gap: var(--jse-padding, 10px); + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)) calc(0.5 * var(--jse-padding, 10px)); + width: 100%; +} +.jse-column-header.svelte-2i3vdx:hover { + background: var(--jse-table-header-background-highlight, #e8e8e8); +} +.jse-column-header.svelte-2i3vdx:not(.jse-column-header.jse-readonly) { + cursor: pointer; +} +.jse-column-header.svelte-2i3vdx span.jse-column-sort-icon:where(.svelte-2i3vdx) { + height: 1em; +}`);var v$e=_e(''),b$e=_e('');Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-table-mode-welcome.svelte-17xl1jx { + flex: 1; + display: flex; + flex-direction: column; + overflow: auto; + align-items: center; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-table-mode-welcome.svelte-17xl1jx:last-child { + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-space.jse-before:where(.svelte-17xl1jx) { + flex: 1; +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) { + display: flex; + flex-direction: column; + gap: var(--jse-padding, 10px); + max-width: 400px; + margin: 2em var(--jse-padding, 10px); + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-arrays-info:where(.svelte-17xl1jx) { + color: var(--jse-panel-color-readonly, #b2b2b2); +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-property:where(.svelte-17xl1jx) { + display: flex; + align-items: center; + gap: var(--jse-padding, 10px); +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-property:where(.svelte-17xl1jx) .jse-nested-property-path:where(.svelte-17xl1jx) { + flex: 1; +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) .jse-nested-property:where(.svelte-17xl1jx) .jse-nested-property-path:where(.svelte-17xl1jx) .jse-nested-property-count:where(.svelte-17xl1jx) { + opacity: 0.5; + white-space: nowrap; +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) button.jse-nested-array-action:where(.svelte-17xl1jx) { + text-align: left; + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); + color: var(--jse-button-primary-color, #fff); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) button.jse-nested-array-action:where(.svelte-17xl1jx):hover { + background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-nested-arrays:where(.svelte-17xl1jx) button.jse-nested-array-action:where(.svelte-17xl1jx):disabled { + background: var(--jse-button-primary-background-disabled, #9d9d9d); +} +.jse-table-mode-welcome.svelte-17xl1jx .jse-space.jse-after:where(.svelte-17xl1jx) { + flex: 2; +}`);var M$e=(t,A)=>A.onClick(),S$e=_e(`An empty document cannot be opened in table mode. You can go to tree mode instead, or paste + a JSON Array using Ctrl+V.`,1),k$e=(t,A,e)=>A.openJSONEditorModal(g(e)),x$e=(t,A,e)=>A.extractPath(g(e)),_$e=_e(''),R$e=_e('
                '),N$e=(t,A)=>A.onChangeMode(Rr.tree),L$e=_e('
                ');function F$e(t,A){St(A,!0);var e=Oc(()=>A.json?function(h){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2,f=[];return function b(k,S){nr(k)&&S.length{b(k[w],S.concat(w))}),Wo(k)&&f.push(S)}(h,[]),f}(A.json).slice(0,99).filter(h=>h.length>0):[]),i=Oc(()=>!An(g(e))),n=Oc(()=>A.json===void 0&&(A.text===""||A.text===void 0)),o=Oc(()=>g(i)?"Object with nested arrays":g(n)?"An empty document":nr(A.json)?"An object":Wo(A.json)?"An empty array":"A ".concat(kY(A.json,A.parser))),r=L$e();r.__click=[M$e,A];var s=De(ge(r),2),a=ge(s),c=ge(a),l=De(a,2),d=ge(l),C=h=>{he(h,Ss(`An object cannot be opened in table mode. You can open a nested array instead, or open the + document in tree mode.`))},I=(h,B)=>{var f=k=>{he(k,S$e())},b=k=>{var S=Ss();xA(()=>{var w;return xt(S,"".concat((w=g(o))!==null&&w!==void 0?w:""," cannot be opened in table mode. You can open the document in tree mode instead."))}),he(k,S)};ze(h,k=>{g(n)&&!A.readOnly?k(f):k(b,!1)},B)};ze(d,h=>{g(i)?h(C):h(I,!1)});var u=De(l,2);fr(u,17,()=>g(e),Jr,(h,B)=>{var f=R$e(),b=Oc(()=>function(H){return WA(A.json,H).length}(g(B))),k=ge(f),S=ge(k),w=ge(De(S)),_=De(k,2);_.__click=[k$e,A,B];var K=ge(_),J=De(_,2),O=H=>{var V=_$e();V.__click=[x$e,A,B],he(H,V)};ze(J,H=>{A.readOnly||H(O)}),xA(H=>{var V;xt(S,'"'.concat(H??"",'" ')),xt(w,"(".concat((V=g(b))!==null&&V!==void 0?V:""," ").concat(g(b)!==1?"items":"item",")")),xt(K,A.readOnly?"View":"Edit")},[()=>Yc(g(B))]),he(h,f)}),De(u,2).__click=[N$e,A],xA(()=>xt(c,g(o))),he(t,r),kt()}e6(["click"]);Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-column-header.svelte-fzj761 { + background: none; + border: none; + font-family: inherit; + font-size: inherit; + color: inherit; + display: flex; + gap: var(--jse-padding, 10px); + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)) calc(0.5 * var(--jse-padding, 10px)); + width: 100%; +} +.jse-column-header.svelte-fzj761:hover { + background: var(--jse-table-header-background-highlight, #e8e8e8); +} +.jse-column-header.svelte-fzj761:not(.jse-column-header.jse-readonly) { + cursor: pointer; +}`);var G$e=_e('');Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-table-mode.svelte-u14cgx { + flex: 1; + display: flex; + flex-direction: column; + position: relative; + background: var(--jse-background-color, #fff); + min-width: 0; + min-height: 0; + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + color: var(--jse-text-color, #4d4d4d); + line-height: var(--jse-line-height, calc(1em + 4px)); +} +.jse-table-mode.no-main-menu.svelte-u14cgx { + border-top: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-table-mode.svelte-u14cgx .jse-search-box-container:where(.svelte-u14cgx) { + position: relative; + height: 0; + top: calc(var(--jse-line-height, calc(1em + 4px)) + 2 * var(--jse-padding, 10px)); + margin-right: calc(var(--jse-padding, 10px) + 20px); + margin-left: var(--jse-padding, 10px); + text-align: right; + z-index: 3; +} +.jse-table-mode.svelte-u14cgx .jse-hidden-input-label:where(.svelte-u14cgx) { + position: fixed; + right: 0; + top: 0; + width: 0; + height: 0; +} +.jse-table-mode.svelte-u14cgx .jse-hidden-input-label:where(.svelte-u14cgx) .jse-hidden-input:where(.svelte-u14cgx) { + width: 0; + height: 0; + padding: 0; + border: 0; + outline: none; +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) { + flex: 1; + align-items: flex-start; + flex-direction: column; + display: flex; + overflow: auto; + overflow-anchor: none; + scrollbar-gutter: stable; + border-left: var(--jse-main-border, 1px solid #d7d7d7); + border-right: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx):last-child { + border-bottom: var(--jse-main-border, 1px solid #d7d7d7); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) { + border-collapse: collapse; + border-spacing: 0; +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-invisible-start-section:where(.svelte-u14cgx) td:where(.svelte-u14cgx), +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-invisible-end-section:where(.svelte-u14cgx) td:where(.svelte-u14cgx) { + margin: 0; + padding: 0; +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-search-box-background:where(.svelte-u14cgx) { + background: var(--jse-table-header-background, #f5f5f5); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-invisible-end-section:where(.svelte-u14cgx) td:where(.svelte-u14cgx) { + padding-bottom: var(--jse-padding, 10px); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx):hover { + background-color: var(--jse-table-row-odd-background, rgba(0, 0, 0, 0.05)); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) { + padding: 0 var(--jse-padding, 10px) 0 0; + vertical-align: top; + white-space: nowrap; + height: var(--jse-line-height, calc(1em + 4px)); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-header:where(.svelte-u14cgx), .jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-gutter:where(.svelte-u14cgx) { + font-weight: normal; + text-align: left; + color: var(--jse-text-readonly, #8d8d8d); + background: var(--jse-table-header-background, #f5f5f5); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-header:where(.svelte-u14cgx) { + padding: 0; + position: sticky; + top: 0; +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-header:where(.svelte-u14cgx) .jse-table-root-error:where(.svelte-u14cgx) { + padding: calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)) calc(0.5 * var(--jse-padding, 10px)); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell.jse-table-cell-gutter:where(.svelte-u14cgx) { + padding: 0 var(--jse-padding, 10px) 0 calc(0.5 * var(--jse-padding, 10px)); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-value-outer:where(.svelte-u14cgx) { + display: inline-block; + cursor: var(--jse-contents-cursor, pointer); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-value-outer:where(.svelte-u14cgx):hover { + background: var(--jse-hover-background-color, rgba(0, 0, 0, 0.06)); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-value-outer.jse-selected-value:where(.svelte-u14cgx) { + background: var(--jse-selection-background-color, #d3d3d3); +} +.jse-table-mode.svelte-u14cgx .jse-contents:where(.svelte-u14cgx) table.jse-table-main:where(.svelte-u14cgx) .jse-table-row:where(.svelte-u14cgx) .jse-table-cell:where(.svelte-u14cgx) .jse-context-menu-anchor:where(.svelte-u14cgx) { + display: inline-flex; + position: relative; + vertical-align: top; +} +.jse-table-mode.svelte-u14cgx .jse-contents.jse-contents-loading:where(.svelte-u14cgx) { + align-items: unset; +} +.jse-table-mode.svelte-u14cgx .jse-contents.jse-contents-loading:where(.svelte-u14cgx) .jse-loading-space:where(.svelte-u14cgx) { + flex: 1; +} +.jse-table-mode.svelte-u14cgx .jse-contents.jse-contents-loading:where(.svelte-u14cgx) .jse-loading:where(.svelte-u14cgx) { + flex: 2; + text-align: center; + color: var(--jse-panel-color-readonly, #b2b2b2); + box-sizing: border-box; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); +}`);var K$e=_e('
                '),U$e=_e(''),T$e=_e(''),O$e=_e(' '),J$e=_e('
                '),Y$e=_e('
                '),H$e=_e(''),z$e=_e(''),P$e=_e('
                ',1),j$e=_e(" ",1),V$e=_e(' ',1),q$e=_e('
                loading...
                '),W$e=_e('
                ',1);function Z$e(t,A){St(A,!1);var e=Ce(void 0,!0),i=Ce(void 0,!0),n=Ce(void 0,!0),o=Es("jsoneditor:TableMode"),{openAbsolutePopup:r,closeAbsolutePopup:s}=nI("absolute-popup"),a=Y1e(),c=IC(),l=IC(),d=typeof window>"u";o("isSSR:",d);var C=N(A,"readOnly",9),I=N(A,"externalContent",9),u=N(A,"externalSelection",9),h=N(A,"history",9),B=N(A,"truncateTextSize",9),f=N(A,"mainMenuBar",9),b=N(A,"escapeControlCharacters",9),k=N(A,"escapeUnicodeCharacters",9),S=N(A,"flattenColumns",9),w=N(A,"parser",9),_=N(A,"parseMemoizeOne",9),K=N(A,"validator",9),J=N(A,"validationParser",9),O=N(A,"indentation",9),H=N(A,"onChange",9),V=N(A,"onChangeMode",9),Z=N(A,"onSelect",9),ye=N(A,"onUndo",9),P=N(A,"onRedo",9),se=N(A,"onRenderValue",9),X=N(A,"onRenderMenu",9),ue=N(A,"onRenderContextMenu",9),oe=N(A,"onFocus",9),le=N(A,"onBlur",9),me=N(A,"onSortModal",9),Te=N(A,"onTransformModal",9),$e=N(A,"onJSONEditorModal",9),Je=Ce(void 0,!0),Qe=Ce(void 0,!0),He=Ce(void 0,!0),PA=Ce(void 0,!0),JA=Ce(void 0,!0);qY({onMount:ua,onDestroy:gg,getWindow:()=>i6(g(Qe)),hasFocus:()=>KA&&document.hasFocus()||RY(g(Qe)),onFocus:()=>{di=!0,oe()&&oe()()},onBlur:()=>{di=!1,le()&&le()()}});var Ye,Ie=Ce(void 0,!0),We=Ce(void 0,!0),we=Ce(void 0,!0),Ze=Ce(void 0,!0),Ge=Ce(void 0,!0),LA=Ce(void 0,!0),Fe=Ce(!1,!0),pe=Ce(!1,!0);function Wt(v){x(LA,(Ye=v)?k1e(g(Ie),Ye.items):void 0)}function Qt(v){return BA.apply(this,arguments)}function BA(){return(BA=Vt(function*(v){x(Re,void 0),yield pn(v)})).apply(this,arguments)}function _t(){x(Fe,!1),x(pe,!1),L()}var VA=Ce(1e4,!0),YA=Ce([],!0),Jt=Ce(void 0,!0),KA=!1,di=!1,G=Ce(!1,!0),z=Ce({},!0),Ae=Ce(600,!0),de=Ce(0,!0),Ne=18;function pA(v){x(Re,v)}function vA(v){g(Re)&&v!==void 0&&(Us(v,nh(g(Re)))&&Us(v,It(g(Re)))||(o("clearing selection: path does not exist anymore",g(Re)),x(Re,void 0)))}var Ke=Ce(g(Ie)!==void 0?iY({json:g(Ie)}):void 0,!0),Re=Ce(Yp(u())?u():void 0,!0),wt=Ce(void 0,!0),st=Ce(!1,!0);function nA(v){if(!C()){o("onSortByHeader",v);var U=v.sortDirection===ag.desc?-1:1;oi(V1e(g(Ie),[],v.path,U),(Y,ie)=>({state:ie,sortedColumn:v}))}}ua(()=>{g(Re)&&$o(It(g(Re)))});var Bt=Ce(void 0,!0);function Wi(v){if(v.json!==void 0||v.text!==void 0){var U=g(Ie)!==void 0&&v.json!==void 0;h().add({type:"tree",undo:{patch:U?[{op:"replace",path:"",value:v.json}]:void 0,json:v.json,text:v.text,documentState:v.documentState,textIsRepaired:v.textIsRepaired,selection:xd(v.selection),sortedColumn:v.sortedColumn},redo:{patch:U?[{op:"replace",path:"",value:g(Ie)}]:void 0,json:g(Ie),text:g(We),documentState:g(Ke),textIsRepaired:g(st),selection:xd(g(Re)),sortedColumn:g(wt)}})}}var Qn=Ce([],!0),dn=OE(H1e);function HA(v,U,Y,ie){Yf(()=>{var ce;try{ce=dn(v,U,Y,ie)}catch(Le){ce=[{path:[],message:"Failed to validate: "+Le.message,severity:e0.warning}]}wi(ce,g(Qn))||(o("validationErrors changed:",ce),x(Qn,ce))},ce=>o("validationErrors updated in ".concat(ce," ms")))}function Cn(){return o("validate"),g(we)?{parseError:g(we),isRepairable:!1}:(HA(g(Ie),K(),w(),J()),An(g(Qn))?void 0:{validationErrors:g(Qn)})}function Gi(v,U){if(o("patch",v,U),g(Ie)===void 0)throw new Error("Cannot apply patch: no JSON");var Y=g(Ie),ie={json:void 0,text:g(We),documentState:g(Ke),selection:xd(g(Re)),sortedColumn:g(wt),textIsRepaired:g(st)},ce=S1e(g(Ie),v),Le=B1e(g(Ie),g(Ke),v),CA=GXe(g(wt),v,g(YA)),hA=typeof U=="function"?U(Le.json,Le.documentState,g(Re)):void 0;return x(Ie,hA?.json!==void 0?hA.json:Le.json),x(Ke,hA?.state!==void 0?hA.state:Le.documentState),x(Re,hA?.selection!==void 0?hA.selection:g(Re)),x(wt,hA?.sortedColumn!==void 0?hA.sortedColumn:CA),x(We,void 0),x(st,!1),x(Ze,void 0),x(Ge,void 0),x(we,void 0),h().add({type:"tree",undo:SA({patch:ce},ie),redo:{patch:v,json:void 0,text:void 0,documentState:g(Ke),selection:xd(g(Re)),sortedColumn:g(wt),textIsRepaired:g(st)}}),{json:g(Ie),previousJson:Y,undo:ce,redo:v}}function oi(v,U){o("handlePatch",v,U);var Y={json:g(Ie),text:g(We)},ie=Gi(v,U);return Yt(Y,ie),ie}function Yt(v,U){if((v.json!==void 0||v?.text!==void 0)&&H()){if(g(We)!==void 0){var Y={text:g(We),json:void 0};H()(Y,v,{contentErrors:Cn(),patchResult:U})}else if(g(Ie)!==void 0){var ie={text:void 0,json:g(Ie)};H()(ie,v,{contentErrors:Cn(),patchResult:U})}}}function xi(v){o("pasted json as text",v),x(Ze,v)}function Pi(v){o("pasted multiline text",{pastedText:v}),x(Ge,v)}function Xt(v){var U=parseInt(v[0],10),Y=[String(U+1),...v.slice(1)];return Us(g(Ie),Y)?zi(Y):zi(v)}function L(){o("focus"),g(PA)&&(g(PA).focus(),g(PA).select())}function ct(v){x(de,v.target.scrollTop)}function Di(){g(Re)||x(Re,function(){if(Wo(g(Ie))&&!An(g(Ie))&&!An(g(YA)))return zi(["0",...g(YA)[0]])}())}function mn(){if(g(st)&&g(Ie)!==void 0){var v={json:g(Ie),text:g(We)},U={json:g(Ie),documentState:g(Ke),selection:g(Re),sortedColumn:g(wt),text:g(We),textIsRepaired:g(st)};x(We,void 0),x(st,!1),vA(g(Ie)),Wi(U),Yt(v,void 0)}return{json:g(Ie),text:g(We)}}function pn(v){var{scrollToWhenVisible:U=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Y=g(Fe)?xp:0,ie=a2e(v,g(YA),z,Ne),ce=ie-g(de)+Y+Ne,Le=Ao(v);if(o("scrollTo",{path:v,top:ie,scrollTop:g(de),elem:Le}),!g(He))return Promise.resolve();var CA=g(He).getBoundingClientRect();if(Le&&!U){var hA=Le.getBoundingClientRect();if(hA.bottom>CA.top&&hA.top{a(Le,{container:g(He),offset:it,duration:300,callback:()=>{so(v),et()}})}:et=>{a(ce,{container:g(He),offset:it,duration:300,callback:()=>{bo(),so(v),et()}})})}function so(v){var U=Ao(v);if(U&&g(He)){var Y=g(He).getBoundingClientRect(),ie=U.getBoundingClientRect();if(ie.right>Y.right){var ce=ie.right-Y.right;vl(He,g(He).scrollLeft+=ce)}if(ie.leftit){var et=ce-it;vl(He,g(He).scrollTop+=et)}if(ieNd(v.slice(1),Le)),ce=ie?v.slice(0,1).concat(ie):v;return(U=(Y=g(He))===null||Y===void 0?void 0:Y.querySelector('td[data-path="'.concat(oM(ce),'"]')))!==null&&U!==void 0?U:void 0}function Fn(v){var U,{anchor:Y,left:ie,top:ce,width:Le,height:CA,offsetTop:hA,offsetLeft:it,showTip:et}=v,RA=function(Ee){var{json:qe,documentState:kA,selection:MA,readOnly:wA,onEditValue:yt,onEditRow:at,onToggleEnforceString:Ni,onCut:Gn,onCopy:$i,onPaste:fo,onRemove:ei,onDuplicateRow:er,onInsertBeforeRow:no,onInsertAfterRow:ko,onRemoveRow:yn}=Ee,Ht=qe!==void 0,sn=!!MA,zt=qe!==void 0&&MA?WA(qe,It(MA)):void 0,Et=Ht&&(Io(MA)||Bs(MA)||fn(MA)),Ei=!wA&&Ht&&MA!==void 0&&EM(MA),Po=Ei&&!sr(zt),Qs=!wA&&Et,Qo=MA!==void 0&&_d(qe,kA,It(MA));return[{type:"separator"},{type:"row",items:[{type:"column",items:[{type:"label",text:"Table cell:"},{type:"dropdown-button",main:{type:"button",onClick:()=>yt(),icon:wu,text:"Edit",title:"Edit the value (Double-click on the value)",disabled:!Ei},width:"11em",items:[{type:"button",icon:wu,text:"Edit",title:"Edit the value (Double-click on the value)",onClick:()=>yt(),disabled:!Ei},{type:"button",icon:Qo?wG:vG,text:"Enforce string",title:"Enforce keeping the value as string when it contains a numeric value",onClick:()=>Ni(),disabled:!Po}]},{type:"dropdown-button",main:{type:"button",onClick:()=>Gn(!0),icon:pu,text:"Cut",title:"Cut selected contents, formatted with indentation (Ctrl+X)",disabled:!Qs},width:"10em",items:[{type:"button",icon:pu,text:"Cut formatted",title:"Cut selected contents, formatted with indentation (Ctrl+X)",onClick:()=>Gn(!0),disabled:wA||!Et},{type:"button",icon:pu,text:"Cut compacted",title:"Cut selected contents, without indentation (Ctrl+Shift+X)",onClick:()=>Gn(!1),disabled:wA||!Et}]},{type:"dropdown-button",main:{type:"button",onClick:()=>$i(!0),icon:M2,text:"Copy",title:"Copy selected contents, formatted with indentation (Ctrl+C)",disabled:!Et},width:"12em",items:[{type:"button",icon:M2,text:"Copy formatted",title:"Copy selected contents, formatted with indentation (Ctrl+C)",onClick:()=>$i(!1),disabled:!Et},{type:"button",icon:M2,text:"Copy compacted",title:"Copy selected contents, without indentation (Ctrl+Shift+C)",onClick:()=>$i(!1),disabled:!Et}]},{type:"button",onClick:()=>fo(),icon:pG,text:"Paste",title:"Paste clipboard contents (Ctrl+V)",disabled:wA||!sn},{type:"button",onClick:()=>ei(),icon:Iv,text:"Remove",title:"Remove selected contents (Delete)",disabled:wA||!Et}]},{type:"column",items:[{type:"label",text:"Table row:"},{type:"button",onClick:()=>at(),icon:wu,text:"Edit row",title:"Edit the current row",disabled:wA||!sn||!Ht},{type:"button",onClick:()=>er(),icon:SG,text:"Duplicate row",title:"Duplicate the current row (Ctrl+D)",disabled:wA||!sn||!Ht},{type:"button",onClick:()=>no(),icon:yu,text:"Insert before",title:"Insert a row before the current row",disabled:wA||!sn||!Ht},{type:"button",onClick:()=>ko(),icon:yu,text:"Insert after",title:"Insert a row after the current row",disabled:wA||!sn||!Ht},{type:"button",onClick:()=>yn(),icon:Iv,text:"Remove row",title:"Remove current row",disabled:wA||!sn||!Ht}]}]}]}({json:g(Ie),documentState:g(Ke),selection:g(Re),readOnly:C(),onEditValue:zo,onEditRow:On,onToggleEnforceString:ho,onCut:yr,onCopy:Mn,onPaste:Zi,onRemove:Ft,onDuplicateRow:Me,onInsertBeforeRow:gA,onInsertAfterRow:EA,onRemoveRow:zA}),jA=(U=ue()(RA))!==null&&U!==void 0?U:RA;if(jA!==!1){var rn={left:ie,top:ce,offsetTop:hA,offsetLeft:it,width:Le,height:CA,anchor:Y,closeOnOuterClick:!0,onClose:()=>{KA=!1,L()}};KA=!0;var j=r(nCe,{tip:et?"Tip: you can open this context menu via right-click or with Ctrl+Q":void 0,items:jA,onRequestClose(){s(j),L()}},rn)}}function Qr(v){if(!us(g(Re)))if(v&&(v.stopPropagation(),v.preventDefault()),v&&v.type==="contextmenu"&&v.target!==g(PA))Fn({left:v.clientX,top:v.clientY,width:z2,height:H2,showTip:!1});else{var U,Y=(U=g(He))===null||U===void 0?void 0:U.querySelector(".jse-table-cell.jse-selected-value");if(Y)Fn({anchor:Y,offsetTop:2,width:z2,height:H2,showTip:!1});else{var ie,ce=(ie=g(He))===null||ie===void 0?void 0:ie.getBoundingClientRect();ce&&Fn({top:ce.top+2,left:ce.left+2,width:z2,height:H2,showTip:!1})}}}function mr(v){Fn({anchor:d1e(v.target,"BUTTON"),offsetTop:0,width:z2,height:H2,showTip:!0})}function zo(){if(!C()&&g(Re)){var v=It(g(Re));sr(WA(g(Ie),v))?Sn(v):x(Re,zi(v))}}function On(){!C()&&g(Re)&&Sn(It(g(Re)).slice(0,1))}function ho(){if(!C()&&fn(g(Re))){var v=g(Re).path,U=pt(v),Y=WA(g(Ie),v),ie=!_d(g(Ie),g(Ke),v),ce=ie?String(Y):rQ(String(Y),w());o("handleToggleEnforceString",{enforceString:ie,value:Y,updatedValue:ce}),oi([{op:"replace",path:U,value:ce}],(Le,CA)=>({state:GM(g(Ie),CA,v,{type:"value",enforceString:ie})}))}}function sA(){return _i.apply(this,arguments)}function _i(){return(_i=Vt(function*(){if(o("apply pasted json",g(Ze)),g(Ze)){var{onPasteAsJson:v}=g(Ze);v(),setTimeout(L)}})).apply(this,arguments)}function Zi(){return Jn.apply(this,arguments)}function Jn(){return(Jn=Vt(function*(){try{ke(yield navigator.clipboard.readText())}catch(v){console.error(v),x(G,!0)}})).apply(this,arguments)}function Bo(){return pr.apply(this,arguments)}function pr(){return(pr=Vt(function*(){o("apply pasted multiline text",g(Ge)),g(Ge)&&(ke(JSON.stringify(g(Ge))),setTimeout(L))})).apply(this,arguments)}function Mi(){o("clear pasted json"),x(Ze,void 0),L()}function Mo(){o("clear pasted multiline text"),x(Ge,void 0),L()}function wr(){V()(Rr.text)}function yr(v){return Nr.apply(this,arguments)}function Nr(){return(Nr=Vt(function*(v){yield X1e({json:g(Ie),selection:g(Re),indentation:v?O():void 0,readOnly:C(),parser:w(),onPatch:oi})})).apply(this,arguments)}function Mn(){return wn.apply(this,arguments)}function wn(){return wn=Vt(function*(){var v=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];g(Ie)!==void 0&&(yield $1e({json:g(Ie),selection:g(Re),indentation:v?O():void 0,parser:w()}))}),wn.apply(this,arguments)}function Ft(){ACe({json:g(Ie),text:g(We),selection:g(Re),keepSelection:!0,readOnly:C(),onChange:H(),onPatch:oi})}function Yn(v){C()||(o("extract",{path:v}),oi(v1e(g(Ie),zi(v))))}function Me(){(function(v){var{json:U,selection:Y,columns:ie,readOnly:ce,onPatch:Le}=v;if(!ce&&U!==void 0&&Y&&Of(Y)){var{rowIndex:CA,columnIndex:hA}=rg(It(Y),ie);Ga("duplicate row",{rowIndex:CA});var it=[String(CA)];Le(D1e(U,[it]),(et,RA)=>({state:RA,selection:zi($u({rowIndex:CA({state:rn,selection:zi($u({rowIndex:it,columnIndex:hA},ie))}))}})({json:g(Ie),selection:g(Re),columns:g(YA),readOnly:C(),onPatch:oi})}function zA(){(function(v){var{json:U,selection:Y,columns:ie,readOnly:ce,onPatch:Le}=v;if(!ce&&U!==void 0&&Y&&Of(Y)){var{rowIndex:CA,columnIndex:hA}=rg(It(Y),ie);Ga("remove row",{rowIndex:CA}),Le(QM([[String(CA)]]),(it,et)=>{var RA=CA0?CA-1:void 0,jA=RA!==void 0?zi($u({rowIndex:RA,columnIndex:hA},ie)):void 0;return Ga("remove row new selection",{rowIndex:CA,newRowIndex:RA,newSelection:jA}),{state:et,selection:jA}})}})({json:g(Ie),selection:g(Re),columns:g(YA),readOnly:C(),onPatch:oi})}function bA(){return(bA=Vt(function*(v){yield tCe({char:v,selectInside:!1,json:g(Ie),selection:g(Re),readOnly:C(),parser:w(),onPatch:oi,onReplaceJson:Xe,onSelect:pA})})).apply(this,arguments)}function fe(v){var U;v.preventDefault(),ke((U=v.clipboardData)===null||U===void 0?void 0:U.getData("text/plain"))}function ke(v){v!==void 0&&eCe({clipboardText:v,json:g(Ie),selection:g(Re),readOnly:C(),parser:w(),onPatch:oi,onChangeText:qA,onPasteMultilineText:Pi,openRepairModal:So})}function Xe(v,U){var Y={json:g(Ie),text:g(We)},ie={json:g(Ie),documentState:g(Ke),selection:g(Re),sortedColumn:g(wt),text:g(We),textIsRepaired:g(st)},ce=Dl(v,g(Ke)),Le=typeof U=="function"?U(v,ce,g(Re)):void 0;x(Ie,Le?.json!==void 0?Le.json:v),x(Ke,Le?.state!==void 0?Le.state:ce),x(Re,Le?.selection!==void 0?Le.selection:g(Re)),x(wt,void 0),x(We,void 0),x(st,!1),x(we,void 0),vA(g(Ie)),Wi(ie),Yt(Y,void 0)}function qA(v,U){o("handleChangeText");var Y={json:g(Ie),text:g(We)},ie={json:g(Ie),documentState:g(Ke),selection:g(Re),sortedColumn:g(wt),text:g(We),textIsRepaired:g(st)};try{x(Ie,_()(v)),x(Ke,Dl(g(Ie),g(Ke))),x(We,void 0),x(st,!1),x(we,void 0)}catch(Le){try{x(Ie,_()(jl(v))),x(Ke,Dl(g(Ie),g(Ke))),x(We,v),x(st,!0),x(we,void 0)}catch{x(Ie,void 0),x(Ke,void 0),x(We,v),x(st,!1),x(we,g(We)!==""?Wf(g(We),Le.message||String(Le)):void 0)}}if(typeof U=="function"){var ce=U(g(Ie),g(Ke),g(Re));x(Ie,ce?.json!==void 0?ce.json:g(Ie)),x(Ke,ce?.state!==void 0?ce.state:g(Ke)),x(Re,ce?.selection!==void 0?ce.selection:g(Re))}vA(g(Ie)),Wi(ie),Yt(Y,void 0)}function Gt(v){o("select validation error",v),x(Re,zi(v.path)),pn(v.path)}function $t(v){if(g(Ie)!==void 0){var{id:U,onTransform:Y,onClose:ie}=v,ce=v.rootPath||[];KA=!0,Te()({id:U||l,json:g(Ie),rootPath:ce||[],onTransform:Le=>{Y?Y({operations:Le,json:g(Ie),transformedJson:Mc(g(Ie),Le)}):(o("onTransform",ce,Le),oi(Le))},onClose:()=>{KA=!1,setTimeout(L),ie&&ie()}})}}function Sn(v){o("openJSONEditorModal",{path:v}),KA=!0,$e()({content:{json:WA(g(Ie),v)},path:v,onPatch:oi,onClose:()=>{KA=!1,setTimeout(L)}})}function So(v,U){x(JA,{text:v,onParse:Y=>t6(Y,ie=>A6(ie,w())),onRepair:i1e,onApply:U,onClose:L})}function kn(){(function(v){C()||g(Ie)===void 0||(KA=!0,me()({id:c,json:g(Ie),rootPath:v,onSort:U=>{var{operations:Y,itemPath:ie,direction:ce}=U;o("onSort",Y,v,ie,ce),oi(Y,(Le,CA)=>({state:CA,sortedColumn:{path:ie,sortDirection:ce===-1?ag.desc:ag.asc}}))},onClose:()=>{KA=!1,setTimeout(L)}}))})([])}function on(){$t({rootPath:[]})}function Tt(v){o("openFind",{findAndReplace:v}),x(Fe,!1),x(pe,!1),bo(),x(Fe,!0),x(pe,v)}function Xi(){if(!C()&&h().canUndo){var v=h().undo();if(BM(v)){var U={json:g(Ie),text:g(We)};x(Ie,v.undo.patch?Mc(g(Ie),v.undo.patch):v.undo.json),x(Ke,v.undo.documentState),x(Re,v.undo.selection),x(wt,v.undo.sortedColumn),x(We,v.undo.text),x(st,v.undo.textIsRepaired),x(we,void 0),o("undo",{item:v,json:g(Ie)}),Yt(U,v.undo.patch&&v.redo.patch?{json:g(Ie),previousJson:U.json,redo:v.undo.patch,undo:v.redo.patch}:void 0),L(),g(Re)&&pn(It(g(Re)),{scrollToWhenVisible:!1})}else ye()(v)}}function to(){if(!C()&&h().canRedo){var v=h().redo();if(BM(v)){var U={json:g(Ie),text:g(We)};x(Ie,v.redo.patch?Mc(g(Ie),v.redo.patch):v.redo.json),x(Ke,v.redo.documentState),x(Re,v.redo.selection),x(wt,v.redo.sortedColumn),x(We,v.redo.text),x(st,v.redo.textIsRepaired),x(we,void 0),o("redo",{item:v,json:g(Ie)}),Yt(U,v.undo.patch&&v.redo.patch?{json:g(Ie),previousJson:U.json,redo:v.redo.patch,undo:v.undo.patch}:void 0),L(),g(Re)&&pn(It(g(Re)),{scrollToWhenVisible:!1})}else P()(v)}}function vt(v){x(Ae,v.getBoundingClientRect().height)}Se(()=>(F(b()),F(k())),()=>{x(Je,xY({escapeControlCharacters:b(),escapeUnicodeCharacters:k()}))}),Se(()=>g(Fe),()=>{(function(v){if(g(He)){var U=v?xp:-100;g(He).scrollTo({top:vl(He,g(He).scrollTop+=U),left:g(He).scrollLeft})}})(g(Fe))}),Se(()=>F(I()),()=>{(function(v){var U={json:g(Ie)},Y=Kp(v)?v.text!==g(We):!wi(U.json,v.json);if(o("update external content",{isChanged:Y}),Y){var ie={json:g(Ie),documentState:g(Ke),selection:g(Re),sortedColumn:g(wt),text:g(We),textIsRepaired:g(st)};if(Kp(v))try{x(Ie,_()(v.text)),x(Ke,Dl(g(Ie),g(Ke))),x(We,v.text),x(st,!1),x(we,void 0)}catch(ce){try{x(Ie,_()(jl(v.text))),x(Ke,Dl(g(Ie),g(Ke))),x(We,v.text),x(st,!0),x(we,void 0)}catch{x(Ie,void 0),x(Ke,void 0),x(We,v.text),x(st,!1),x(we,g(We)!==""?Wf(g(We),ce.message||String(ce)):void 0)}}else x(Ie,v.json),x(Ke,Dl(g(Ie),g(Ke))),x(We,void 0),x(st,!1),x(we,void 0);vA(g(Ie)),x(wt,void 0),Wi(ie)}})(I())}),Se(()=>F(u()),()=>{(function(v){wi(g(Re),v)||(o("applyExternalSelection",{selection:g(Re),externalSelection:v}),Yp(v)&&x(Re,v))})(u())}),Se(()=>(g(YA),g(Ie),F(S()),g(VA)),()=>{x(YA,Wo(g(Ie))?function(v,U){var Y=new Set(U.map(pt)),ie=new Set(v.map(pt));for(var ce of Y)ie.has(ce)||Y.delete(ce);for(var Le of ie)Y.has(Le)||Y.add(Le);return[...Y].map(Sa)}(RXe(g(Ie),S(),g(VA)),g(YA)):[])}),Se(()=>(g(Ie),g(YA)),()=>{x(Jt,!(!g(Ie)||An(g(YA))))}),Se(()=>(g(Ie),g(VA)),()=>{x(e,Array.isArray(g(Ie))&&g(Ie).length>g(VA))}),Se(()=>(g(de),g(Ae),g(Ie),g(Fe),xp),()=>{x(i,NXe(g(de),g(Ae),g(Ie),z,Ne,g(Fe)?xp:0))}),Se(()=>g(Ie),()=>{g(Ie),g(He)&&g(He).scrollTo({top:g(He).scrollTop,left:g(He).scrollLeft})}),Se(()=>g(Re),()=>{var v;v=g(Re),wi(v,u())||(o("onSelect",v),Z()(v))}),Se(()=>(F(C()),F(B()),F(w()),g(Je),g(Ie),g(Ke),F(se())),()=>{x(Bt,{mode:Rr.table,readOnly:C(),truncateTextSize:B(),parser:w(),normalization:g(Je),getJson:()=>g(Ie),getDocumentState:()=>g(Ke),findElement:Ao,findNextInside:Xt,focus:L,onPatch:(v,U)=>oi(function(Y,ie){return Y.flatMap(ce=>{if(bD(ce)){var Le=Sa(ce.path);if(Le.length>0){for(var CA=[ce],hA=Hi(Le);hA.length>0&&!Us(ie,hA);)CA.unshift({op:"add",path:pt(hA),value:{}}),hA=Hi(hA);return CA}}return ce})}(v,g(Ie)),U),onSelect:pA,onFind:Tt,onPasteJson:xi,onRenderValue:se()})}),Se(()=>(g(Ie),F(K()),F(w()),F(J())),()=>{HA(g(Ie),K(),w(),J())}),Se(()=>(g(Qn),g(YA)),()=>{x(n,LXe(g(Qn),g(YA)))}),Nn(),li(!0);var Hn=W$e();QA("mousedown",V2,function(v){!sQ(v.target,U=>U===g(Qe))&&us(g(Re))&&(o("click outside the editor, exit edit mode"),x(Re,xd(g(Re))),di&&g(PA)&&(g(PA).focus(),g(PA).blur()),o("blur (outside editor)"),g(PA)&&g(PA).blur())});var ZA,Ri=Ut(Hn),Ki=ge(Ri),io=v=>{(function(U,Y){St(Y,!1);var ie=N(Y,"containsValidArray",9),ce=N(Y,"readOnly",9),Le=N(Y,"showSearch",13,!1),CA=N(Y,"history",9),hA=N(Y,"onSort",9),it=N(Y,"onTransform",9),et=N(Y,"onContextMenu",9),RA=N(Y,"onUndo",9),jA=N(Y,"onRedo",9),rn=N(Y,"onRenderMenu",9);function j(){Le(!Le())}var Ee=Ce(void 0,!0),qe=Ce(void 0,!0);Se(()=>(F(ce()),F(hA()),F(ie()),F(it()),F(et()),F(RA()),F(CA()),F(jA())),()=>{x(Ee,ce()?[{type:"space"}]:[{type:"button",icon:n3,title:"Sort",className:"jse-sort",onClick:hA(),disabled:ce()||!ie()},{type:"button",icon:A3,title:"Transform contents (filter, sort, project)",className:"jse-transform",onClick:it(),disabled:ce()||!ie()},{type:"button",icon:o3,title:"Search (Ctrl+F)",className:"jse-search",onClick:j,disabled:!ie()},{type:"button",icon:bG,title:FY,className:"jse-contextmenu",onClick:et()},{type:"separator"},{type:"button",icon:hv,title:"Undo (Ctrl+Z)",className:"jse-undo",onClick:RA(),disabled:!CA().canUndo},{type:"button",icon:uv,title:"Redo (Ctrl+Shift+Z)",className:"jse-redo",onClick:jA(),disabled:!CA().canRedo},{type:"space"}])}),Se(()=>(F(rn()),g(Ee)),()=>{x(qe,rn()(g(Ee))||g(Ee))}),Nn(),li(!0),YM(U,{get items(){return g(qe)}}),kt()})(v,{get containsValidArray(){return g(Jt)},get readOnly(){return C()},get history(){return h()},onSort:kn,onTransform:on,onUndo:Xi,onRedo:to,onContextMenu:mr,get onRenderMenu(){return X()},get showSearch(){return g(Fe)},set showSearch(U){x(Fe,U)},$$legacy:!0})};ze(Ki,v=>{f()&&v(io)});var lr=De(Ki,2),ri=v=>{var U=V$e(),Y=Ut(U),ie=ge(Y);ie.readOnly=!0,Ho(ie,hA=>x(PA,hA),()=>g(PA));var ce=De(Y,2),Le=hA=>{var it=P$e(),et=Ut(it);q1e(ge(et),{get json(){return g(Ie)},get documentState(){return g(Ke)},get parser(){return w()},get showSearch(){return g(Fe)},get showReplace(){return g(pe)},get readOnly(){return C()},get columns(){return g(YA)},onSearch:Wt,onFocus:Qt,onPatch:oi,onClose:_t});var RA=De(et,2),jA=ge(RA),rn=ge(jA),j=ge(rn),Ee=ge(j),qe=ge(Ee),kA=Et=>{var Ei=ar(),Po=tA(()=>(F(Nf),g(n),Be(()=>{var Ar;return Nf([],(Ar=g(n))===null||Ar===void 0?void 0:Ar.root)}))),Qs=Ut(Ei),Qo=Ar=>{var _s=K$e();jf(ge(_s),{get validationError(){return g(Po)},get onExpand(){return sg}}),he(Ar,_s)};ze(Qs,Ar=>{g(Po)&&Ar(Qo)}),he(Et,Ei)};ze(qe,Et=>{F(An),g(n),Be(()=>{var Ei;return!An((Ei=g(n))===null||Ei===void 0?void 0:Ei.root)})&&Et(kA)});var MA=De(Ee);fr(MA,1,()=>g(YA),Jr,(Et,Ei)=>{var Po=U$e();(function(Qs,Qo){St(Qo,!1);var Ar=Ce(void 0,!0),_s=Ce(void 0,!0),jd=Ce(void 0,!0),Vc=N(Qo,"path",9),hg=N(Qo,"sortedColumn",9),p0=N(Qo,"readOnly",9),Bg=N(Qo,"onSort",9);Se(()=>(F(Vc()),Yc),()=>{x(Ar,An(Vc())?"values":Yc(Vc()))}),Se(()=>(F(hg()),F(Vc())),()=>{var yo;x(_s,hg()&&wi(Vc(),(yo=hg())===null||yo===void 0?void 0:yo.path)?hg().sortDirection:void 0)}),Se(()=>(g(_s),vde),()=>{x(jd,g(_s)?vde[g(_s)]:void 0)}),Nn(),li(!0);var Rs,Ns=b$e(),qc=ge(Ns),Vd=ge(qc),Wc=De(qc,2),gr=yo=>{var Dr=v$e(),w0=ge(Dr),kh=tA(()=>(g(_s),F(ag),F(ld),F(DG),Be(()=>g(_s)===ag.asc?ld:DG)));nn(w0,{get data(){return g(kh)}}),xA(()=>Rn(Dr,"title","Currently sorted in ".concat(g(jd)," order"))),he(yo,Dr)};ze(Wc,yo=>{g(_s)!==void 0&&yo(gr)}),xA((yo,Dr)=>{Rs=ci(Ns,1,"jse-column-header svelte-2i3vdx",null,Rs,yo),Rn(Ns,"title",p0()?g(Ar):g(Ar)+" (Click to sort the data by this column)"),xt(Vd,Dr)},[()=>({"jse-readonly":p0()}),()=>(F(Y2),g(Ar),F(50),Be(()=>Y2(g(Ar),50)))],tA),QA("click",Ns,function(){p0()||Bg()({path:Vc(),sortDirection:g(_s)===ag.asc?ag.desc:ag.asc})}),he(Qs,Ns),kt()})(ge(Po),{get path(){return g(Ei)},get sortedColumn(){return g(wt)},get readOnly(){return C()},onSort:nA}),he(Et,Po)});var wA=De(MA),yt=Et=>{var Ei=T$e(),Po=ge(Ei),Qs=tA(()=>(g(Ie),Be(()=>Array.isArray(g(Ie))?g(Ie).length:0)));(function(Qo,Ar){St(Ar,!1);var _s=N(Ar,"count",9),jd=N(Ar,"maxSampleCount",9),Vc=N(Ar,"readOnly",9),hg=N(Ar,"onRefresh",9);li(!0);var p0,Bg=G$e();nn(ge(Bg),{get data(){return moe}}),xA(Rs=>{p0=ci(Bg,1,"jse-column-header svelte-fzj761",null,p0,Rs),Rn(Bg,"title","The Columns are created by sampling ".concat(jd()," items out of ").concat(_s(),". ")+"If you're missing a column, click here to sample all of the items instead of a subset. This is slower.")},[()=>({"jse-readonly":Vc()})],tA),QA("click",Bg,()=>hg()()),he(Qo,Bg),kt()})(Po,{get count(){return g(Qs)},get maxSampleCount(){return g(VA)},get readOnly(){return C()},onRefresh:()=>x(VA,1/0)}),he(Et,Ei)};ze(wA,Et=>{g(e)&&Et(yt)});var at,Ni,Gn=De(j),$i=ge(Gn),fo=De(Gn);fr(fo,1,()=>(g(i),Be(()=>g(i).visibleItems)),Jr,(Et,Ei,Po)=>{var Qs=z$e(),Qo=tA(()=>(g(i),Be(()=>g(i).startIndex+Po))),Ar=tA(()=>(g(n),F(g(Qo)),Be(()=>g(n).rows[g(Qo)]))),_s=tA(()=>(F(Nf),F(g(Qo)),F(g(Ar)),Be(()=>{var Rs;return Nf([String(g(Qo))],(Rs=g(Ar))===null||Rs===void 0?void 0:Rs.row)}))),jd=tA(()=>(F(Sd),g(Ie),g(LA),F(g(Qo)),Be(()=>Sd(g(Ie),g(LA),[String(g(Qo))])))),Vc=ge(Qs);j2e(Vc,()=>g(Qo),Rs=>{var Ns=O$e(),qc=ge(Ns),Vd=De(qc),Wc=gr=>{jf(gr,{get validationError(){return g(_s)},get onExpand(){return sg}})};ze(Vd,gr=>{g(_s)&&gr(Wc)}),Ka(Ns,(gr,yo)=>tM?.(gr,yo),()=>gr=>function(yo,Dr){z[Dr]=yo.getBoundingClientRect().height}(gr,g(Qo))),xA(()=>{var gr;return xt(qc,"".concat((gr=g(Qo))!==null&&gr!==void 0?gr:""," "))}),he(Rs,Ns)});var hg=De(Vc);fr(hg,1,()=>g(YA),Jr,(Rs,Ns,qc,Vd)=>{var Wc,gr=Y$e(),yo=tA(()=>(F(g(Qo)),g(Ns),Be(()=>[String(g(Qo))].concat(g(Ns))))),Dr=tA(()=>(F(WA),g(Ei),g(Ns),Be(()=>WA(g(Ei),g(Ns))))),w0=tA(()=>(F(fn),g(Re),F(Nd),F(g(yo)),Be(()=>fn(g(Re))&&Nd(g(Re).path,g(yo))))),kh=tA(()=>(F(g(Ar)),Be(()=>{var Yr;return(Yr=g(Ar))===null||Yr===void 0?void 0:Yr.columns[qc]}))),xh=tA(()=>(F(Nf),F(g(yo)),F(g(kh)),Be(()=>Nf(g(yo),g(kh))))),FQ=ge(gr),_h=ge(FQ),GQ=Yr=>{var dc=tA(()=>(F(mM),F(Sd),g(Ei),F(g(jd)),g(Ns),Be(()=>mM(Sd(g(Ei),g(jd),g(Ns)))))),KQ=tA(()=>(F(g(dc)),Be(()=>!!g(dc)&&g(dc).some(wI=>wI.active)))),UQ=tA(()=>(F(An),F(g(dc)),Be(()=>!An(g(dc)))));(function(wI,Vs){St(Vs,!1);var TQ=N(Vs,"path",9),iP=N(Vs,"value",9),nP=N(Vs,"parser",9),HEe=N(Vs,"isSelected",9),zEe=N(Vs,"containsSearchResult",9),PEe=N(Vs,"containsActiveSearchResult",9),jEe=N(Vs,"onEdit",9);li(!0);var oP,r8=D$e(),VEe=ge(r8);xA((OQ,qEe)=>{oP=ci(r8,1,"jse-inline-value svelte-h57m0p",null,oP,OQ),xt(VEe,qEe)},[()=>({"jse-selected":HEe(),"jse-highlight":zEe(),"jse-active":PEe()}),()=>(F(Y2),F(nP()),F(iP()),F(50),Be(()=>{var OQ;return Y2((OQ=nP().stringify(iP()))!==null&&OQ!==void 0?OQ:"",50)}))],tA),QA("dblclick",r8,()=>jEe()(TQ())),he(wI,r8),kt()})(Yr,{get path(){return g(yo)},get value(){return g(Dr)},get parser(){return w()},get isSelected(){return g(w0)},get containsSearchResult(){return g(UQ)},get containsActiveSearchResult(){return g(KQ)},onEdit:Sn})},Qk=Yr=>{var dc=tA(()=>(F(Sd),g(Ie),g(LA),F(g(yo)),Be(()=>{var Vs;return(Vs=Sd(g(Ie),g(LA),g(yo)))===null||Vs===void 0?void 0:Vs.searchResults}))),KQ=tA(()=>g(Dr)!==void 0?g(Dr):""),UQ=tA(()=>(F(_d),g(Ie),g(Ke),F(g(yo)),Be(()=>_d(g(Ie),g(Ke),g(yo))))),wI=tA(()=>g(w0)?g(Re):void 0);j1e(Yr,{get path(){return g(yo)},get value(){return g(KQ)},get enforceString(){return g(UQ)},get selection(){return g(wI)},get searchResultItems(){return g(dc)},get context(){return g(Bt)}})};ze(_h,Yr=>{F(sr),F(g(Dr)),Be(()=>sr(g(Dr)))?Yr(GQ):Yr(Qk,!1)});var mk=De(_h),pk=Yr=>{var dc=J$e();OC(ge(dc),{selected:!0,onContextMenu:Fn}),he(Yr,dc)};ze(mk,Yr=>{F(C()),F(g(w0)),F(us),g(Re),Be(()=>!C()&&g(w0)&&!us(g(Re)))&&Yr(pk)});var y0=De(FQ,2),pI=Yr=>{jf(Yr,{get validationError(){return g(xh)},get onExpand(){return sg}})};ze(y0,Yr=>{g(xh)&&Yr(pI)}),xA((Yr,dc)=>{Rn(gr,"data-path",Yr),Wc=ci(FQ,1,"jse-value-outer svelte-u14cgx",null,Wc,dc)},[()=>(F(oM),F(g(yo)),Be(()=>oM(g(yo)))),()=>({"jse-selected-value":g(w0)})],tA),he(Rs,gr)});var p0=De(hg),Bg=Rs=>{he(Rs,H$e())};ze(p0,Rs=>{g(e)&&Rs(Bg)}),he(Et,Qs)});var ei,er=ge(De(fo));Ho(RA,Et=>x(He,Et),()=>g(He)),Ka(RA,(Et,Ei)=>tM?.(Et,Ei),()=>vt),zs(()=>QA("scroll",RA,ct));var no=De(RA,2),ko=Et=>{var Ei=tA(()=>(g(Ze),Be(()=>"You pasted a JSON ".concat(Array.isArray(g(Ze).contents)?"array":"object"," as text")))),Po=tA(()=>[{icon:b2,text:"Paste as JSON instead",title:"Paste the text as JSON instead of a single value",onMouseDown:sA},{text:"Leave as is",title:"Keep the pasted content as a single value",onClick:Mi}]);Sl(Et,{type:"info",get message(){return g(Ei)},get actions(){return g(Po)}})};ze(no,Et=>{g(Ze)&&Et(ko)});var yn=De(no,2),Ht=Et=>{var Ei=tA(()=>[{icon:b2,text:"Paste as string instead",title:"Paste the clipboard data as a single string value instead of an array",onClick:Bo},{text:"Leave as is",title:"Keep the pasted array",onClick:Mo}]);Sl(Et,{type:"info",message:"Multiline text was pasted as array",get actions(){return g(Ei)}})};ze(yn,Et=>{g(Ge)&&Et(Ht)});var sn=De(yn,2),zt=Et=>{var Ei=tA(()=>C()?[]:[{icon:Bv,text:"Ok",title:"Accept the repaired document",onClick:mn},{icon:t3,text:"Repair manually instead",title:"Leave the document unchanged and repair it manually instead",onClick:wr}]);Sl(Et,{type:"success",message:"The loaded JSON document was invalid but is successfully repaired.",get actions(){return g(Ei)},onClose:L})};ze(sn,Et=>{g(st)&&Et(zt)}),WY(De(sn,2),{get validationErrors(){return g(Qn)},selectError:Gt}),xA((Et,Ei,Po)=>{at=ci(Gn,1,"jse-table-invisible-start-section svelte-u14cgx",null,at,Et),Rn($i,"colspan",(g(YA),Be(()=>g(YA).length))),Ni=cg($i,"",Ni,Ei),Rn(er,"colspan",(g(YA),Be(()=>g(YA).length))),ei=cg(er,"",ei,Po)},[()=>({"jse-search-box-background":g(Fe)}),()=>({height:(g(i),Be(()=>g(i).startHeight+"px"))}),()=>({height:(g(i),Be(()=>g(i).endHeight+"px"))})],tA),he(hA,it)},CA=(hA,it)=>{var et=jA=>{var rn=j$e(),j=Ut(rn),Ee=tA(()=>C()?[]:[{icon:t3,text:"Repair manually",title:'Open the document in "code" mode and repair it manually',onClick:wr}]);Sl(j,{type:"error",message:"The loaded JSON document is invalid and could not be repaired automatically.",get actions(){return g(Ee)}}),iCe(De(j,2),{get text(){return g(We)},get json(){return g(Ie)},get indentation(){return O()},get parser(){return w()}}),he(jA,rn)},RA=jA=>{F$e(jA,{get text(){return g(We)},get json(){return g(Ie)},get readOnly(){return C()},get parser(){return w()},openJSONEditorModal:Sn,extractPath:Yn,get onChangeMode(){return V()},onClick:()=>{L()}})};ze(hA,jA=>{g(we)&&g(We)!==void 0&&g(We)!==""?jA(et):jA(RA,!1)},it)};ze(ce,hA=>{g(Jt)?hA(Le):hA(CA,!1)}),QA("paste",ie,fe),he(v,U)},fs=v=>{he(v,q$e())};ze(lr,v=>{d?v(fs,!1):v(ri)}),Ho(Ri,v=>x(Qe,v),()=>g(Qe));var Eo=De(Ri,2),Q=v=>{z1e(v,{onClose:()=>x(G,!1)})};ze(Eo,v=>{g(G)&&v(Q)});var D=De(Eo,2),R=v=>{P1e(v,qC(()=>g(JA),{onClose:()=>{var U;(U=g(JA))===null||U===void 0||U.onClose(),x(JA,void 0)}}))};return ze(D,v=>{g(JA)&&v(R)}),xA(v=>ZA=ci(Ri,1,"jse-table-mode svelte-u14cgx",null,ZA,v),[()=>({"no-main-menu":!f()})],tA),QA("mousedown",Ri,function(v){if(v.buttons===1||v.buttons===2){var U=v.target;U.isContentEditable||L();var Y=C1e(U);if(Y){if(us(g(Re))&&Hp(g(Ie),g(Re),Y))return;x(Re,zi(Y)),v.preventDefault()}}}),QA("keydown",Ri,function(v){var U=X2(v);if(o("keydown",{combo:U,key:v.key}),U==="Ctrl+X"&&(v.preventDefault(),yr(!0)),U==="Ctrl+Shift+X"&&(v.preventDefault(),yr(!1)),U==="Ctrl+C"&&(v.preventDefault(),Mn(!0)),U==="Ctrl+Shift+C"&&(v.preventDefault(),Mn(!1)),U==="Ctrl+D"&&(v.preventDefault(),Me()),U!=="Delete"&&U!=="Backspace"||(v.preventDefault(),Ft()),U==="Insert"&&v.preventDefault(),U==="Ctrl+A"&&v.preventDefault(),U==="Ctrl+Q"&&Qr(v),U==="ArrowLeft"&&(v.preventDefault(),Di(),g(Re))){var Y=function(it,et){var{rowIndex:RA,columnIndex:jA}=rg(It(et),it);return jA>0?zi($u({rowIndex:RA,columnIndex:jA-1},it)):et}(g(YA),g(Re));x(Re,Y),$o(It(Y))}if(U==="ArrowRight"&&(v.preventDefault(),Di(),g(Re))){var ie=function(it,et){var{rowIndex:RA,columnIndex:jA}=rg(It(et),it);return jA0?zi($u({rowIndex:RA-1,columnIndex:jA},it)):et}(g(YA),g(Re));x(Re,ce),$o(It(ce))}if(U==="ArrowDown"&&(v.preventDefault(),Di(),g(Re))){var Le=function(it,et,RA){var{rowIndex:jA,columnIndex:rn}=rg(It(RA),et);return jAx(Je,G)}).get()),Qe=Ce(a());function He(G){if(_de(G)){x(Qe,G.undo.mode);var z=g(Je).items(),Ae=z.findIndex(Ne=>Ne===G),de=Ae!==-1?z[Ae-1]:void 0;$e("handleUndo",{index:Ae,item:G,items:z,prevItem:de}),de&&i(de.redo.selection),K()(g(Qe))}}function PA(G){if(_de(G)){x(Qe,G.redo.mode);var z=g(Je).items(),Ae=z.findIndex(Ne=>Ne===G),de=Ae!==-1?z[Ae+1]:void 0;$e("handleRedo",{index:Ae,item:G,items:z,nextItem:de}),de&&i(de.undo.selection),K()(g(Qe))}}var JA=Ce(),Ye={type:"separator"},Ie=Ce(),We=Ce();function we(G){if(g(le))return g(le).patch(G);if(g(me))return g(me).patch(G);if(g(Te))return g(Te).patch(G);throw new Error('Method patch is not available in mode "'.concat(g(Qe),'"'))}function Ze(G,z){if(g(le))return g(le).expand(G,z);if(g(Te))return g(Te).expand(G,z);throw new Error('Method expand is not available in mode "'.concat(g(Qe),'"'))}function Ge(G,z){if(g(le))return g(le).collapse(G,z);if(g(Te))return g(Te).collapse(G,z);throw new Error('Method collapse is not available in mode "'.concat(g(Qe),'"'))}function LA(G){if(g(Te))g(Te).openTransformModal(G);else if(g(le))g(le).openTransformModal(G);else{if(!g(me))throw new Error('Method transform is not available in mode "'.concat(g(Qe),'"'));g(me).openTransformModal(G)}}function Fe(){if(g(Te))return g(Te).validate();if(g(le))return g(le).validate();if(g(me))return g(me).validate();throw new Error('Method validate is not available in mode "'.concat(g(Qe),'"'))}function pe(){return g(le)?g(le).acceptAutoRepair():e()}function Wt(G){if(g(le))return g(le).scrollTo(G);if(g(me))return g(me).scrollTo(G);throw new Error('Method scrollTo is not available in mode "'.concat(g(Qe),'"'))}function Qt(G){if(g(le))return g(le).findElement(G);if(g(me))return g(me).findElement(G);throw new Error('Method findElement is not available in mode "'.concat(g(Qe),'"'))}function BA(){g(Te)?g(Te).focus():g(le)?g(le).focus():g(me)&&g(me).focus()}function _t(){return VA.apply(this,arguments)}function VA(){return(VA=Vt(function*(){g(Te)&&(yield g(Te).refresh())})).apply(this,arguments)}Se(()=>F(a()),()=>{(function(G){if(G!==g(Qe)){var z={type:"mode",undo:{mode:g(Qe),selection:void 0},redo:{mode:G,selection:void 0}};g(Qe)==="text"&&g(Te)&&g(Te).flush(),$e("add history item",z),g(Je).add(z),x(Qe,G)}})(a())}),Se(()=>(g(Qe),F(K())),()=>{x(JA,[{type:"button",text:"text",title:"Switch to text mode (current mode: ".concat(g(Qe),")"),className:"jse-group-button jse-first"+(g(Qe)===Rr.text?" jse-selected":""),onClick:()=>K()(Rr.text)},{type:"button",text:"tree",title:"Switch to tree mode (current mode: ".concat(g(Qe),")"),className:"jse-group-button "+(g(Qe)===Rr.tree?" jse-selected":""),onClick:()=>K()(Rr.tree)},{type:"button",text:"table",title:"Switch to table mode (current mode: ".concat(g(Qe),")"),className:"jse-group-button jse-last"+(g(Qe)===Rr.table?" jse-selected":""),onClick:()=>K()(Rr.table)}])}),Se(()=>(g(JA),F(V()),g(Qe),F(w()),F(n())),()=>{x(Ie,G=>{var z=tY(G[0])?g(JA).concat(G):g(JA).concat(Ye,G),Ae=Zm(z);return V()(z,{mode:g(Qe),modal:w(),readOnly:n()})||Ae})}),Se(()=>(F(Z()),g(Qe),F(w()),F(n()),F(i())),()=>{x(We,G=>{var z,Ae=Zm(G);return(z=Z()(G,{mode:g(Qe),modal:w(),readOnly:n(),selection:i()}))!==null&&z!==void 0?z:!n()&&Ae})}),Nn(),li();var YA=ar(),Jt=Ut(YA),KA=G=>{Ho(y$e(G,{get externalContent(){return e()},get externalSelection(){return i()},get history(){return g(Je)},get readOnly(){return n()},get indentation(){return o()},get tabSize(){return r()},get mainMenuBar(){return c()},get statusBar(){return d()},get askToFormat(){return C()},get escapeUnicodeCharacters(){return u()},get parser(){return B()},get validator(){return b()},get validationParser(){return k()},get onChange(){return _()},get onChangeMode(){return K()},get onSelect(){return J()},onUndo:He,onRedo:PA,get onError(){return ye()},get onFocus(){return P()},get onBlur(){return se()},get onRenderMenu(){return g(Ie)},get onSortModal(){return X()},get onTransformModal(){return ue()},$$legacy:!0}),z=>x(Te,z),()=>g(Te))},di=(G,z)=>{var Ae=Ne=>{Ho(Z$e(Ne,{get externalContent(){return e()},get externalSelection(){return i()},get history(){return g(Je)},get readOnly(){return n()},get truncateTextSize(){return s()},get mainMenuBar(){return c()},get escapeControlCharacters(){return I()},get escapeUnicodeCharacters(){return u()},get flattenColumns(){return h()},get parser(){return B()},get parseMemoizeOne(){return f()},get validator(){return b()},get validationParser(){return k()},get indentation(){return o()},get onChange(){return _()},get onChangeMode(){return K()},get onSelect(){return J()},onUndo:He,onRedo:PA,get onRenderValue(){return O()},get onFocus(){return P()},get onBlur(){return se()},get onRenderMenu(){return g(Ie)},get onRenderContextMenu(){return g(We)},get onSortModal(){return X()},get onTransformModal(){return ue()},get onJSONEditorModal(){return oe()},$$legacy:!0}),pA=>x(me,pA),()=>g(me))},de=Ne=>{Ho(fY(Ne,{get externalContent(){return e()},get externalSelection(){return i()},get history(){return g(Je)},get readOnly(){return n()},get indentation(){return o()},get truncateTextSize(){return s()},get mainMenuBar(){return c()},get navigationBar(){return l()},get escapeControlCharacters(){return I()},get escapeUnicodeCharacters(){return u()},get parser(){return B()},get parseMemoizeOne(){return f()},get validator(){return b()},get validationParser(){return k()},get pathParser(){return S()},get onError(){return ye()},get onChange(){return _()},get onChangeMode(){return K()},get onSelect(){return J()},onUndo:He,onRedo:PA,get onRenderValue(){return O()},get onClassName(){return H()},get onFocus(){return P()},get onBlur(){return se()},get onRenderMenu(){return g(Ie)},get onRenderContextMenu(){return g(We)},get onSortModal(){return X()},get onTransformModal(){return ue()},get onJSONEditorModal(){return oe()},$$legacy:!0}),pA=>x(le,pA),()=>g(le))};ze(G,Ne=>{g(Qe),F(Rr),Be(()=>g(Qe)===Rr.table)?Ne(Ae):Ne(de,!1)},z)};return ze(Jt,G=>{g(Qe),F(Rr),Be(()=>g(Qe)===Rr.text||String(g(Qe))==="code")?G(KA):G(di,!1)}),he(t,YA),jt(A,"patch",we),jt(A,"expand",Ze),jt(A,"collapse",Ge),jt(A,"transform",LA),jt(A,"validate",Fe),jt(A,"acceptAutoRepair",pe),jt(A,"scrollTo",Wt),jt(A,"findElement",Qt),jt(A,"focus",BA),jt(A,"refresh",_t),kt({patch:we,expand:Ze,collapse:Ge,transform:LA,validate:Fe,acceptAutoRepair:pe,scrollTo:Wt,findElement:Qt,focus:BA,refresh:_t})}Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-modal-wrapper.svelte-v0el4e { + flex: 1; + display: flex; + min-width: 0; + min-height: 0; + flex-direction: column; +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) { + flex: 1; + display: flex; + flex-direction: column; + padding: 20px; + overflow: auto; + min-width: 0; + min-height: 0; +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) { + display: flex; + flex-direction: row; + justify-content: flex-end; + padding-top: var(--jse-padding, 10px); +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) button.jse-primary:where(.svelte-v0el4e) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); + color: var(--jse-button-primary-color, #fff); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) button.jse-primary:where(.svelte-v0el4e):hover { + background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-actions:where(.svelte-v0el4e) button.jse-primary:where(.svelte-v0el4e):disabled { + background: var(--jse-button-primary-background-disabled, #9d9d9d); +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-label:where(.svelte-v0el4e) { + font-weight: bold; + display: block; + box-sizing: border-box; +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-label:where(.svelte-v0el4e) .jse-label-inner:where(.svelte-v0el4e) { + margin-top: calc(2 * var(--jse-padding, 10px)); + margin-bottom: calc(0.5 * var(--jse-padding, 10px)); + box-sizing: border-box; +} +.jse-modal-wrapper.svelte-v0el4e .jse-modal-contents:where(.svelte-v0el4e) .jse-modal-inline-editor:where(.svelte-v0el4e) { + flex: 1; + min-height: 150px; + min-width: 0; + max-width: 100%; + display: flex; + --jse-theme-color: var(--jse-modal-editor-theme-color, #707070); + --jse-theme-color-highlight: var(--jse-modal-editor-theme-color-highlight, #646464); +} +.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) { + gap: var(--jse-padding, 10px); + align-items: center; +} +.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) .jse-error:where(.svelte-v0el4e) { + flex: 1; + color: var(--jse-error-color, #ee5341); +} +.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) button.jse-secondary:where(.svelte-v0el4e) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-secondary-background, #d3d3d3); + color: var(--jse-button-secondary-color, var(--jse-text-color, #4d4d4d)); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) button.jse-secondary:where(.svelte-v0el4e):hover { + background: var(--jse-button-secondary-background-highlight, #e1e1e1); +} +.jse-modal-wrapper.svelte-v0el4e .jse-actions:where(.svelte-v0el4e) button.jse-secondary:where(.svelte-v0el4e):disabled { + background: var(--jse-button-secondary-background-disabled, #9d9d9d); +} +.jse-modal-wrapper.svelte-v0el4e input:where(.svelte-v0el4e) { + border: var(--jse-input-border, 1px solid #d8dbdf); + outline: none; + box-sizing: border-box; + padding: calc(0.5 * var(--jse-padding, 10px)); + font-family: var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace); + font-size: var(--jse-font-size-mono, 14px); + color: inherit; + background: var(--jse-input-background, var(--jse-background-color, #fff)); +} +.jse-modal-wrapper.svelte-v0el4e input:where(.svelte-v0el4e):focus { + border: var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa))); +} +.jse-modal-wrapper.svelte-v0el4e input:where(.svelte-v0el4e):read-only { + background: var(--jse-input-background-readonly, transparent); +}`);var X$e=_e('
                '),$$e=_e(''),eeA=_e(''),AeA=_e(''),teA=_e('
                Path
                Contents
                ',1),ieA=_e('
                '),neA={};Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-modal-contents.svelte-1v9c92j { + flex: 1; + display: flex; + flex-direction: column; + padding: 20px; + overflow: auto; + min-width: 0; + min-height: 0; +} +.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) { + display: flex; + flex-direction: row; + justify-content: flex-end; + padding-top: var(--jse-padding, 10px); +} +.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) button.jse-primary:where(.svelte-1v9c92j) { + border: none; + background: transparent; + color: inherit; + cursor: pointer; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + padding: 5px; + margin: 0; + background: var(--jse-button-primary-background, var(--jse-theme-color, #3883fa)); + color: var(--jse-button-primary-color, #fff); + padding: var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)); + border-radius: 3px; +} +.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) button.jse-primary:where(.svelte-1v9c92j):hover { + background: var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff)); +} +.jse-modal-contents.svelte-1v9c92j .jse-actions:where(.svelte-1v9c92j) button.jse-primary:where(.svelte-1v9c92j):disabled { + background: var(--jse-button-primary-background-disabled, #9d9d9d); +} +.jse-modal-contents.svelte-1v9c92j table:where(.svelte-1v9c92j) { + width: 100%; + border-collapse: collapse; + border-spacing: 0; +} +.jse-modal-contents.svelte-1v9c92j table:where(.svelte-1v9c92j) th:where(.svelte-1v9c92j), +.jse-modal-contents.svelte-1v9c92j table:where(.svelte-1v9c92j) td:where(.svelte-1v9c92j) { + text-align: left; + vertical-align: middle; + font-weight: normal; + padding-bottom: var(--jse-padding, 10px); +} +.jse-modal-contents.svelte-1v9c92j input.jse-path:where(.svelte-1v9c92j) { + width: 100%; + box-sizing: border-box; + padding: 5px 10px; + border: var(--jse-input-border, 1px solid #d8dbdf); + border-radius: var(--jse-input-radius, 3px); + font-family: inherit; + font-size: inherit; + background: inherit; + background: var(--jse-input-background-readonly, transparent); + color: inherit; + outline: none; +} +.jse-modal-contents.svelte-1v9c92j .svelte-select input { + box-sizing: border-box; +} +.jse-modal-contents.svelte-1v9c92j .jse-space:where(.svelte-1v9c92j) { + height: 200px; +} +.jse-modal-contents.svelte-1v9c92j .jse-space:where(.svelte-1v9c92j) .jse-error:where(.svelte-1v9c92j) { + color: var(--jse-error-color, #ee5341); +}`);var Ff=LM(()=>neA),oeA=_e('Property'),reA=_e('
                '),seA=_e('
                Path
                Direction
                ',1);Zt(`/* over all fonts, sizes, and colors */ +/* "consolas" for Windows, "menlo" for Mac with fallback to "monaco", 'Ubuntu Mono' for Ubuntu */ +/* (at Mac this font looks too large at 14px, but 13px is too small for the font on Windows) */ +/* main, menu, modal */ +/* jsoneditor modal */ +/* tooltip in text mode */ +/* panels: navigation bar, gutter, search box */ +/* navigation-bar */ +/* context menu */ +/* contents: json key and values */ +/* contents: selected or hovered */ +/* contents: section of collapsed items in an array */ +/* contents: highlighting of search matches */ +/* contents: inline tags inside the JSON document */ +/* contents: table */ +/* controls in modals: inputs, buttons, and \`a\` */ +/* messages */ +/* svelte-select */ +/* color picker */ +.jse-main.svelte-57bmz4 { + width: 100%; + height: 100%; + min-width: 0; + min-height: 150px; + font-family: var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); + font-size: var(--jse-font-size, 16px); + line-height: normal; + position: relative; + display: flex; + flex-direction: row; +} +.jse-main.svelte-57bmz4:not(.jse-focus) { + --jse-selection-background-color: var(--jse-selection-background-inactive-color, #e8e8e8); + --jse-context-menu-pointer-background: var(--jse-context-menu-pointer-hover-background, #b2b2b2); +}`);var aeA=_e('
                ',1);function ceA(t,A){St(A,!1);var e=Ce(void 0,!0),i=Es("jsoneditor:JSONEditor"),n={text:""},o=void 0,r=!1,s=Rr.tree,a=!0,c=!0,l=!0,d=!0,C=!1,I=!1,u=!0,h=JSON,B=void 0,f=JSON,b={parse:iWe,stringify:Yc},k=[pqe],S=k[0].id,w=sg,_=void 0,K=void 0,J=tWe,O=sg,H=sg,V=sg,Z=sg,ye=sA=>{console.error(sA),alert(sA.toString())},P=sg,se=sg,X=N(A,"content",13,n),ue=N(A,"selection",13,o),oe=N(A,"readOnly",13,r),le=N(A,"indentation",13,2),me=N(A,"tabSize",13,4),Te=N(A,"truncateTextSize",13,1e3),$e=N(A,"mode",13,s),Je=N(A,"mainMenuBar",13,a),Qe=N(A,"navigationBar",13,c),He=N(A,"statusBar",13,l),PA=N(A,"askToFormat",13,d),JA=N(A,"escapeControlCharacters",13,C),Ye=N(A,"escapeUnicodeCharacters",13,I),Ie=N(A,"flattenColumns",13,u),We=N(A,"parser",13,h),we=N(A,"validator",13,B),Ze=N(A,"validationParser",13,f),Ge=N(A,"pathParser",13,b),LA=N(A,"queryLanguages",13,k),Fe=N(A,"queryLanguageId",13,S),pe=N(A,"onChangeQueryLanguage",13,w),Wt=N(A,"onChange",13,_),Qt=N(A,"onSelect",13,K),BA=N(A,"onRenderValue",13,J),_t=N(A,"onClassName",13,O),VA=N(A,"onRenderMenu",13,H),YA=N(A,"onRenderContextMenu",13,V),Jt=N(A,"onChangeMode",13,Z),KA=N(A,"onError",13,ye),di=N(A,"onFocus",13,P),G=N(A,"onBlur",13,se),z=Ce(Tf(),!0),Ae=Ce(!1,!0),de=Ce(void 0,!0),Ne=Ce(void 0,!0),pA=Ce(void 0,!0),vA=Ce(void 0,!0),Ke=Ce(We(),!0);function Re(){return X()}function wt(sA){i("set");var _i=yJ(sA);if(_i)throw new Error(_i);x(z,Tf()),X(sA),bo()}function st(sA){i("update");var _i=yJ(sA);if(_i)throw new Error(_i);X(sA),bo()}function nA(sA){var _i=g(de).patch(sA);return bo(),_i}function Bt(sA){ue(sA),bo()}function Wi(sA,_i){g(de).expand(sA,_i),bo()}function Qn(sA){var _i=arguments.length>1&&arguments[1]!==void 0&&arguments[1];g(de).collapse(sA,_i),bo()}function dn(){var sA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};g(de).transform(sA),bo()}function HA(){return g(de).validate()}function Cn(){var sA=g(de).acceptAutoRepair();return bo(),sA}function Gi(sA){return oi.apply(this,arguments)}function oi(){return(oi=Vt(function*(sA){yield g(de).scrollTo(sA)})).apply(this,arguments)}function Yt(sA){return g(de).findElement(sA)}function xi(){g(de).focus(),bo()}function Pi(){return Xt.apply(this,arguments)}function Xt(){return(Xt=Vt(function*(){yield g(de).refresh()})).apply(this,arguments)}function L(sA){var _i,Zi,Jn,Bo,pr,Mi,Mo,wr,yr,Nr,Mn,wn,Ft,Yn,Me,gA,EA,zA,bA,fe,ke,Xe,qA,Gt,$t,Sn,So,kn,on,Tt,Xi,to=Object.keys(sA);for(var vt of to)switch(vt){case"content":X((_i=sA[vt])!==null&&_i!==void 0?_i:n);break;case"selection":ue((Zi=sA[vt])!==null&&Zi!==void 0?Zi:o);break;case"readOnly":oe((Jn=sA[vt])!==null&&Jn!==void 0?Jn:r);break;case"indentation":le((Bo=sA[vt])!==null&&Bo!==void 0?Bo:2);break;case"tabSize":me((pr=sA[vt])!==null&&pr!==void 0?pr:4);break;case"truncateTextSize":Te((Mi=sA[vt])!==null&&Mi!==void 0?Mi:1e3);break;case"mode":$e((Mo=sA[vt])!==null&&Mo!==void 0?Mo:s);break;case"mainMenuBar":Je((wr=sA[vt])!==null&&wr!==void 0?wr:a);break;case"navigationBar":Qe((yr=sA[vt])!==null&&yr!==void 0?yr:c);break;case"statusBar":He((Nr=sA[vt])!==null&&Nr!==void 0?Nr:l);break;case"askToFormat":PA((Mn=sA[vt])!==null&&Mn!==void 0?Mn:d);break;case"escapeControlCharacters":JA((wn=sA[vt])!==null&&wn!==void 0?wn:C);break;case"escapeUnicodeCharacters":Ye((Ft=sA[vt])!==null&&Ft!==void 0?Ft:I);break;case"flattenColumns":Ie((Yn=sA[vt])!==null&&Yn!==void 0?Yn:u);break;case"parser":We((Me=sA[vt])!==null&&Me!==void 0?Me:h);break;case"validator":we((gA=sA[vt])!==null&&gA!==void 0?gA:B);break;case"validationParser":Ze((EA=sA[vt])!==null&&EA!==void 0?EA:f);break;case"pathParser":Ge((zA=sA[vt])!==null&&zA!==void 0?zA:b);break;case"queryLanguages":LA((bA=sA[vt])!==null&&bA!==void 0?bA:k);break;case"queryLanguageId":Fe((fe=sA[vt])!==null&&fe!==void 0?fe:S);break;case"onChangeQueryLanguage":pe((ke=sA[vt])!==null&&ke!==void 0?ke:w);break;case"onChange":Wt((Xe=sA[vt])!==null&&Xe!==void 0?Xe:_);break;case"onRenderValue":BA((qA=sA[vt])!==null&&qA!==void 0?qA:J);break;case"onClassName":_t((Gt=sA[vt])!==null&&Gt!==void 0?Gt:O);break;case"onRenderMenu":VA(($t=sA[vt])!==null&&$t!==void 0?$t:H);break;case"onRenderContextMenu":YA((Sn=sA[vt])!==null&&Sn!==void 0?Sn:V);break;case"onChangeMode":Jt((So=sA[vt])!==null&&So!==void 0?So:Z);break;case"onSelect":Qt((kn=sA[vt])!==null&&kn!==void 0?kn:K);break;case"onError":KA((on=sA[vt])!==null&&on!==void 0?on:ye);break;case"onFocus":di((Tt=sA[vt])!==null&&Tt!==void 0?Tt:P);break;case"onBlur":G((Xi=sA[vt])!==null&&Xi!==void 0?Xi:se);break;default:Hn(vt)}function Hn(ZA){i('Unknown property "'.concat(ZA,'"'))}LA().some(ZA=>ZA.id===Fe())||Fe(LA()[0].id),bo()}function ct(){return Di.apply(this,arguments)}function Di(){return(Di=Vt(function*(){throw new Error("class method destroy() is deprecated. It is replaced with a method destroy() in the vanilla library.")})).apply(this,arguments)}function mn(sA,_i,Zi){X(sA),Wt()&&Wt()(sA,_i,Zi)}function pn(sA){ue(sA),Qt()&&Qt()(Zm(sA))}function so(){x(Ae,!0),di()&&di()()}function $o(){x(Ae,!1),G()&&G()()}function Ao(sA){return Fn.apply(this,arguments)}function Fn(){return(Fn=Vt(function*(sA){$e()!==sA&&($e(sA),bo(),xi(),Jt()(sA))})).apply(this,arguments)}function Qr(sA){i("handleChangeQueryLanguage",sA),Fe(sA),pe()(sA)}function mr(sA){var{id:_i,json:Zi,rootPath:Jn,onTransform:Bo,onClose:pr}=sA;oe()||x(vA,{id:_i,json:Zi,rootPath:Jn,indentation:le(),truncateTextSize:Te(),escapeControlCharacters:JA(),escapeUnicodeCharacters:Ye(),parser:We(),parseMemoizeOne:g(e),validationParser:Ze(),pathParser:Ge(),queryLanguages:LA(),queryLanguageId:Fe(),onChangeQueryLanguage:Qr,onRenderValue:BA(),onRenderMenu:Mi=>VA()(Mi,{mode:$e(),modal:!0,readOnly:oe()}),onRenderContextMenu:Mi=>YA()(Mi,{mode:$e(),modal:!0,readOnly:oe(),selection:ue()}),onClassName:_t(),onTransform:Bo,onClose:pr})}function zo(sA){oe()||x(pA,sA)}function On(sA){var{content:_i,path:Zi,onPatch:Jn,onClose:Bo}=sA;i("onJSONEditorModal",{content:_i,path:Zi}),x(Ne,{content:_i,path:Zi,onPatch:Jn,readOnly:oe(),indentation:le(),tabSize:me(),truncateTextSize:Te(),mainMenuBar:Je(),navigationBar:Qe(),statusBar:He(),askToFormat:PA(),escapeControlCharacters:JA(),escapeUnicodeCharacters:Ye(),flattenColumns:Ie(),parser:We(),validator:void 0,validationParser:Ze(),pathParser:Ge(),onRenderValue:BA(),onClassName:_t(),onRenderMenu:VA(),onRenderContextMenu:YA(),onSortModal:zo,onTransformModal:mr,onClose:Bo})}function ho(sA){sA.stopPropagation()}return Se(()=>(F(We()),g(Ke),F(X()),Tf),()=>{if(!o1e(We(),g(Ke))){if(i("parser changed, recreate editor"),Up(X())){var sA=g(Ke).stringify(X().json);X({json:sA!==void 0?We().parse(sA):void 0})}x(Ke,We()),x(z,Tf())}}),Se(()=>F(X()),()=>{var sA=yJ(X());sA&&console.error("Error: "+sA)}),Se(()=>F(ue()),()=>{ue()===null&&console.warn("selection is invalid: it is null but should be undefined")}),Se(()=>F(We()),()=>{x(e,OE(We().parse))}),Se(()=>F($e()),()=>{i("mode changed to",$e())}),Nn(),li(!0),eY(t,{children:(sA,_i)=>{var Zi,Jn=aeA(),Bo=Ut(Jn);j2e(ge(Bo),()=>g(z),Mn=>{Ho(l2e(Mn,{get externalMode(){return $e()},get content(){return X()},get selection(){return ue()},get readOnly(){return oe()},get indentation(){return le()},get tabSize(){return me()},get truncateTextSize(){return Te()},get statusBar(){return He()},get askToFormat(){return PA()},get mainMenuBar(){return Je()},get navigationBar(){return Qe()},get escapeControlCharacters(){return JA()},get escapeUnicodeCharacters(){return Ye()},get flattenColumns(){return Ie()},get parser(){return We()},get parseMemoizeOne(){return g(e)},get validator(){return we()},get validationParser(){return Ze()},get pathParser(){return Ge()},insideModal:!1,get onError(){return KA()},onChange:mn,onChangeMode:Ao,onSelect:pn,get onRenderValue(){return BA()},get onClassName(){return _t()},onFocus:so,onBlur:$o,get onRenderMenu(){return VA()},get onRenderContextMenu(){return YA()},onSortModal:zo,onTransformModal:mr,onJSONEditorModal:On,$$legacy:!0}),wn=>x(de,wn),()=>g(de))});var pr=De(Bo,2),Mi=Mn=>{(function(wn,Ft){var Yn,Me;St(Ft,!1);var gA=Ce(void 0,!0),EA=Ce(void 0,!0),zA=Ce(void 0,!0),bA=Ce(void 0,!0),fe=Es("jsoneditor:SortModal"),ke=N(Ft,"id",9),Xe=N(Ft,"json",9),qA=N(Ft,"rootPath",9),Gt=N(Ft,"onSort",9),$t=N(Ft,"onClose",9),Sn={value:1,label:"ascending"},So=[Sn,{value:-1,label:"descending"}],kn="".concat(ke(),":").concat(pt(qA())),on=Ce((Yn=Ff()[kn])===null||Yn===void 0?void 0:Yn.selectedProperty,!0),Tt=Ce(((Me=Ff()[kn])===null||Me===void 0?void 0:Me.selectedDirection)||Sn,!0),Xi=Ce(void 0,!0);function to(){try{var Hn,ZA,Ri;x(Xi,void 0);var Ki=((Hn=g(on))===null||Hn===void 0?void 0:Hn.value)||((ZA=g(bA))===null||ZA===void 0||(ZA=ZA[0])===null||ZA===void 0?void 0:ZA.value)||[],io=(Ri=g(Tt))===null||Ri===void 0?void 0:Ri.value,lr=V1e(Xe(),qA(),Ki,io);Gt()!==void 0&&qA()!==void 0&&Gt()({operations:lr,rootPath:qA(),itemPath:Ki,direction:io}),$t()()}catch(ri){x(Xi,String(ri))}}function vt(Hn){Hn.focus()}Se(()=>(F(Xe()),F(qA())),()=>{x(gA,WA(Xe(),qA()))}),Se(()=>g(gA),()=>{x(EA,Array.isArray(g(gA)))}),Se(()=>(g(EA),g(gA)),()=>{x(zA,g(EA)?XJ(g(gA)):void 0)}),Se(()=>(g(zA),YC),()=>{x(bA,g(zA)?g(zA).map(YC):void 0)}),Se(()=>(Ff(),g(on),g(Tt)),()=>{Ff(Ff()[kn]={selectedProperty:g(on),selectedDirection:g(Tt)}),fe("store state in memory",kn,Ff()[kn])}),Nn(),li(!0),jp(wn,{get onClose(){return $t()},className:"jse-sort-modal",children:(Hn,ZA)=>{var Ri=seA(),Ki=Ut(Ri),io=tA(()=>g(EA)?"Sort array items":"Sort object keys");vM(Ki,{get title(){return g(io)},get onClose(){return $t()}});var lr=ge(De(Ki,2)),ri=De(ge(lr)),fs=ge(ri),Eo=De(ge(fs)),Q=ge(Eo),D=De(fs),R=CA=>{var hA=oeA(),it=De(ge(hA));eh(ge(it),{showChevron:!0,get items(){return g(bA)},get value(){return g(on)},set value(et){x(on,et)},$$legacy:!0}),he(CA,hA)};ze(D,CA=>{g(EA),g(bA),Be(()=>{var hA;return g(EA)&&g(bA)&&((hA=g(bA))===null||hA===void 0?void 0:hA.length)>1})&&CA(R)});var v=De(D),U=De(ge(v));eh(ge(U),{showChevron:!0,clearable:!1,get items(){return So},get value(){return g(Tt)},set value(CA){x(Tt,CA)},$$legacy:!0});var Y=De(lr,2),ie=ge(Y),ce=CA=>{var hA=reA(),it=ge(hA);xA(()=>xt(it,g(Xi))),he(CA,hA)};ze(ie,CA=>{g(Xi)&&CA(ce)});var Le=ge(De(Y,2));zs(()=>QA("click",Le,to)),Ka(Le,CA=>vt?.(CA)),xA(CA=>{ah(Q,CA),Le.disabled=(g(EA),g(bA),g(on),Be(()=>{var hA;return!!(g(EA)&&g(bA)&&((hA=g(bA))===null||hA===void 0?void 0:hA.length)>1)&&!g(on)}))},[()=>(F(qA()),F(An),F(Yc),Be(()=>qA()&&!An(qA())?Yc(qA()):"(document root)"))],tA),he(Hn,Ri)},$$slots:{default:!0}}),kt()})(Mn,qC(()=>g(pA),{onClose:()=>{var wn;(wn=g(pA))===null||wn===void 0||wn.onClose(),x(pA,void 0)}}))};ze(pr,Mn=>{g(pA)&&Mn(Mi)});var Mo=De(pr,2),wr=Mn=>{a$e(Mn,qC(()=>g(vA),{onClose:()=>{var wn;(wn=g(vA))===null||wn===void 0||wn.onClose(),x(vA,void 0)}}))};ze(Mo,Mn=>{g(vA)&&Mn(wr)});var yr=De(Mo,2),Nr=Mn=>{(function(wn,Ft){St(Ft,!1);var Yn=Ce(void 0,!0),Me=Ce(void 0,!0),gA=Ce(void 0,!0),EA=Ce(void 0,!0),zA=Es("jsoneditor:JSONEditorModal"),bA=N(Ft,"content",9),fe=N(Ft,"path",9),ke=N(Ft,"onPatch",9),Xe=N(Ft,"readOnly",9),qA=N(Ft,"indentation",9),Gt=N(Ft,"tabSize",9),$t=N(Ft,"truncateTextSize",9),Sn=N(Ft,"mainMenuBar",9),So=N(Ft,"navigationBar",9),kn=N(Ft,"statusBar",9),on=N(Ft,"askToFormat",9),Tt=N(Ft,"escapeControlCharacters",9),Xi=N(Ft,"escapeUnicodeCharacters",9),to=N(Ft,"flattenColumns",9),vt=N(Ft,"parser",9),Hn=N(Ft,"validator",9),ZA=N(Ft,"validationParser",9),Ri=N(Ft,"pathParser",9),Ki=N(Ft,"onRenderValue",9),io=N(Ft,"onClassName",9),lr=N(Ft,"onRenderMenu",9),ri=N(Ft,"onRenderContextMenu",9),fs=N(Ft,"onSortModal",9),Eo=N(Ft,"onTransformModal",9),Q=N(Ft,"onClose",9),D=Ce(void 0,!0),R=Ce(void 0,!0),v={mode:ie(bA()),content:bA(),selection:void 0,relativePath:fe()},U=Ce([v],!0),Y=Ce(void 0,!0);function ie(Ee){return Up(Ee)&&Wo(Ee.json)?Rr.table:Rr.tree}function ce(){var Ee,qe=(Ee=vi(g(U)))===null||Ee===void 0?void 0:Ee.selection;Yp(qe)&&g(D).scrollTo(It(qe))}function Le(){if(zA("handleApply"),!Xe())try{x(Y,void 0);var Ee=g(Yn).relativePath,qe=g(Yn).content,kA=[{op:"replace",path:pt(Ee),value:mde(qe,vt()).json}];if(g(U).length>1){var MA=mde(g(U)[g(U).length-2].content,vt()).json,wA={json:Mc(MA,kA)},yt=SA(SA({},g(U)[g(U).length-2]||v),{},{content:wA});x(U,[...g(U).slice(0,g(U).length-2),yt]),bo(),ce()}else ke()(kA),Q()()}catch(at){x(Y,String(at))}}function CA(){if(zA("handleClose"),g(R))x(R,!1);else if(g(U).length>1){var Ee;x(U,Hi(g(U))),bo(),(Ee=g(D))===null||Ee===void 0||Ee.focus(),ce(),x(Y,void 0)}else Q()()}function hA(Ee){zA("handleChange",Ee),RA(qe=>SA(SA({},qe),{},{content:Ee}))}function it(Ee){zA("handleChangeSelection",Ee),RA(qe=>SA(SA({},qe),{},{selection:Ee}))}function et(Ee){zA("handleChangeMode",Ee),RA(qe=>SA(SA({},qe),{},{mode:Ee}))}function RA(Ee){var qe=Ee(vi(g(U)));x(U,[...Hi(g(U)),qe])}function jA(Ee){x(Y,Ee.toString()),console.error(Ee)}function rn(Ee){var qe,{content:kA,path:MA}=Ee;zA("handleJSONEditorModal",{content:kA,path:MA});var wA={mode:ie(kA),content:kA,selection:void 0,relativePath:MA};x(U,[...g(U),wA]),bo(),(qe=g(D))===null||qe===void 0||qe.focus()}function j(Ee){Ee.focus()}ua(()=>{var Ee;(Ee=g(D))===null||Ee===void 0||Ee.focus()}),Se(()=>g(U),()=>{x(Yn,vi(g(U))||v)}),Se(()=>g(U),()=>{x(Me,g(U).flatMap(Ee=>Ee.relativePath))}),Se(()=>(g(Me),Yc),()=>{x(gA,An(g(Me))?"(document root)":Yc(g(Me)))}),Se(()=>F(vt()),()=>{x(EA,OE(vt().parse))}),Nn(),li(!0),jp(wn,{onClose:CA,className:"jse-jsoneditor-modal",get fullscreen(){return g(R)},children:(Ee,qe)=>{var kA=ieA();eY(ge(kA),{children:(MA,wA)=>{var yt=teA(),at=Ut(yt),Ni=tA(()=>(g(U),Be(()=>g(U).length>1?" (".concat(g(U).length,")"):"")));vM(at,{get title(){var zt;return"Edit nested content ".concat((zt=g(Ni))!==null&&zt!==void 0?zt:"")},fullScreenButton:!0,onClose:CA,get fullscreen(){return g(R)},set fullscreen(zt){x(R,zt)},$$legacy:!0});var Gn=De(at,2),$i=De(ge(Gn),2),fo=De($i,4);Ho(l2e(ge(fo),{get externalMode(){return g(Yn),Be(()=>g(Yn).mode)},get content(){return g(Yn),Be(()=>g(Yn).content)},get selection(){return g(Yn),Be(()=>g(Yn).selection)},get readOnly(){return Xe()},get indentation(){return qA()},get tabSize(){return Gt()},get truncateTextSize(){return $t()},get statusBar(){return kn()},get askToFormat(){return on()},get mainMenuBar(){return Sn()},get navigationBar(){return So()},get escapeControlCharacters(){return Tt()},get escapeUnicodeCharacters(){return Xi()},get flattenColumns(){return to()},get parser(){return vt()},get parseMemoizeOne(){return g(EA)},get validator(){return Hn()},get validationParser(){return ZA()},get pathParser(){return Ri()},insideModal:!0,onError:jA,onChange:hA,onChangeMode:et,onSelect:it,get onRenderValue(){return Ki()},get onClassName(){return io()},get onFocus(){return sg},get onBlur(){return sg},get onRenderMenu(){return lr()},get onRenderContextMenu(){return ri()},get onSortModal(){return fs()},get onTransformModal(){return Eo()},onJSONEditorModal:rn,$$legacy:!0}),zt=>x(D,zt),()=>g(D));var ei=ge(De(fo,2)),er=zt=>{var Et=X$e(),Ei=ge(Et);xA(()=>xt(Ei,g(Y))),he(zt,Et)};ze(ei,zt=>{g(Y)&&zt(er)});var no=De(ei,2),ko=zt=>{var Et=$$e();nn(ge(Et),{get data(){return loe}}),QA("click",Et,CA),he(zt,Et)};ze(no,zt=>{g(U),Be(()=>g(U).length>1)&&zt(ko)});var yn=De(no,2),Ht=zt=>{var Et=eeA();zs(()=>QA("click",Et,Le)),Ka(Et,Ei=>j?.(Ei)),he(zt,Et)},sn=zt=>{var Et=AeA();QA("click",Et,CA),he(zt,Et)};ze(yn,zt=>{Xe()?zt(sn,!1):zt(Ht)}),xA(()=>ah($i,g(gA))),he(MA,yt)},$$slots:{default:!0}}),he(Ee,kA)},$$slots:{default:!0}}),kt()})(Mn,qC(()=>g(Ne),{onClose:()=>{var wn;(wn=g(Ne))===null||wn===void 0||wn.onClose(),x(Ne,void 0)}}))};ze(yr,Mn=>{g(Ne)&&Mn(Nr)}),xA(Mn=>Zi=ci(Bo,1,"jse-main svelte-57bmz4",null,Zi,Mn),[()=>({"jse-focus":g(Ae)})],tA),QA("keydown",Bo,ho),he(sA,Jn)},$$slots:{default:!0}}),jt(A,"get",Re),jt(A,"set",wt),jt(A,"update",st),jt(A,"patch",nA),jt(A,"select",Bt),jt(A,"expand",Wi),jt(A,"collapse",Qn),jt(A,"transform",dn),jt(A,"validate",HA),jt(A,"acceptAutoRepair",Cn),jt(A,"scrollTo",Gi),jt(A,"findElement",Yt),jt(A,"focus",xi),jt(A,"refresh",Pi),jt(A,"updateProps",L),jt(A,"destroy",ct),kt({get:Re,set:wt,update:st,patch:nA,select:Bt,expand:Wi,collapse:Qn,transform:dn,validate:HA,acceptAutoRepair:Cn,scrollTo:Gi,findElement:Yt,focus:xi,refresh:Pi,updateProps:L,destroy:ct})}function sCe(t){var{target:A,props:e}=t,i=TVe(ceA,{target:A,props:e});return i.destroy=Vt(function*(){return function(n,o){var r=qJ.get(n);return r?(qJ.delete(n),r(o)):Promise.resolve()}(i)}),bo(),i}var r0=class t{constructor(A){this.el=A}jsonString;editor=null;ngAfterViewInit(){let A={text:this.jsonString};setTimeout(()=>{this.editor=sCe({target:document.getElementById("json-editor"),props:{content:A,mode:Rr.text,mainMenuBar:!1,statusBar:!1}})})}getJsonString(){return this.editor?.get().text}static \u0275fac=function(e){return new(e||t)(DA(eA))};static \u0275cmp=xe({type:t,selectors:[["app-json-editor"]],inputs:{jsonString:"jsonString"},decls:1,vars:0,consts:[["id","json-editor",1,"json-editor-container","jse-theme-dark"]],template:function(e,i){e&1&&ve(0,"div",0)},styles:[".jse-theme-dark[_ngcontent-%COMP%]{--jse-theme: dark;--jse-theme-color: #2f6dd0;--jse-theme-color-highlight: #467cd2;--jse-background-color: #1e1e1e;--jse-text-color: #d4d4d4;--jse-text-color-inverse: #4d4d4d;--jse-main-border: 1px solid #4f4f4f;--jse-menu-color: #fff;--jse-modal-background: #2f2f2f;--jse-modal-overlay-background: rgba(0, 0, 0, .5);--jse-modal-code-background: #2f2f2f;--jse-tooltip-color: var(--jse-text-color);--jse-tooltip-background: #4b4b4b;--jse-tooltip-border: 1px solid #737373;--jse-tooltip-action-button-color: inherit;--jse-tooltip-action-button-background: #737373;--jse-panel-background: #333333;--jse-panel-background-border: 1px solid #464646;--jse-panel-color: var(--jse-text-color);--jse-panel-color-readonly: #737373;--jse-panel-border: 1px solid #3c3c3c;--jse-panel-button-color-highlight: #e5e5e5;--jse-panel-button-background-highlight: #464646;--jse-navigation-bar-background: #656565;--jse-navigation-bar-background-highlight: #7e7e7e;--jse-navigation-bar-dropdown-color: var(--jse-text-color);--jse-context-menu-background: #4b4b4b;--jse-context-menu-background-highlight: #595959;--jse-context-menu-separator-color: #595959;--jse-context-menu-color: var(--jse-text-color);--jse-context-menu-pointer-background: #737373;--jse-context-menu-pointer-background-highlight: #818181;--jse-context-menu-pointer-color: var(--jse-context-menu-color);--jse-key-color: #9cdcfe;--jse-value-color: var(--jse-text-color);--jse-value-color-number: #b5cea8;--jse-value-color-boolean: #569cd6;--jse-value-color-null: #569cd6;--jse-value-color-string: #ce9178;--jse-value-color-url: #ce9178;--jse-delimiter-color: #949494;--jse-edit-outline: 2px solid var(--jse-text-color);--jse-selection-background-color: #464646;--jse-selection-background-inactive-color: #333333;--jse-hover-background-color: #343434;--jse-active-line-background-color: rgba(255, 255, 255, .06);--jse-search-match-background-color: #343434;--jse-collapsed-items-background-color: #333333;--jse-collapsed-items-selected-background-color: #565656;--jse-collapsed-items-link-color: #b2b2b2;--jse-collapsed-items-link-color-highlight: #ec8477;--jse-search-match-color: #724c27;--jse-search-match-outline: 1px solid #966535;--jse-search-match-active-color: #9f6c39;--jse-search-match-active-outline: 1px solid #bb7f43;--jse-tag-background: #444444;--jse-tag-color: #bdbdbd;--jse-table-header-background: #333333;--jse-table-header-background-highlight: #424242;--jse-table-row-odd-background: rgba(255, 255, 255, .1);--jse-input-background: #3d3d3d;--jse-input-border: var(--jse-main-border);--jse-button-background: #808080;--jse-button-background-highlight: #7a7a7a;--jse-button-color: #e0e0e0;--jse-button-secondary-background: #494949;--jse-button-secondary-background-highlight: #5d5d5d;--jse-button-secondary-background-disabled: #9d9d9d;--jse-button-secondary-color: var(--jse-text-color);--jse-a-color: #55abff;--jse-a-color-highlight: #4387c9;--jse-svelte-select-background: #3d3d3d;--jse-svelte-select-border: 1px solid #4f4f4f;--list-background: #3d3d3d;--item-hover-bg: #505050;--multi-item-bg: #5b5b5b;--input-color: #d4d4d4;--multi-clear-bg: #8a8a8a;--multi-item-clear-icon-color: #d4d4d4;--multi-item-outline: 1px solid #696969;--list-shadow: 0 2px 8px 0 rgba(0, 0, 0, .4);--jse-color-picker-background: #656565;--jse-color-picker-border-box-shadow: #8c8c8c 0 0 0 1px}.json-editor-container[_ngcontent-%COMP%]{height:100%} .jse-message.jse-error{display:none} .cm-gutters.cm-gutters-before{display:none} .jse-text-mode{border-radius:10px} .jse-contents{border-radius:10px;border-bottom:1px solid #4f4f4f}"]})};var leA={cancelButton:"Cancel",saveButton:"Save",invalidJsonAlert:"Invalid JSON: "},aCe=new re("Edit Json Dialog Messages",{factory:()=>leA});var s6=class t{constructor(A,e){this.dialogRef=A;this.data=e;this.jsonString=JSON.stringify(e.jsonContent,null,2),this.functionName=e.functionName||""}jsonEditorComponent=es(r0);jsonString="";functionName="";i18n=E(aCe);ngOnInit(){}onSave(){try{this.jsonString=this.jsonEditorComponent().getJsonString();let A=JSON.parse(this.jsonString);this.dialogRef.close(A)}catch(A){alert(this.i18n.invalidJsonAlert+A)}}onCancel(){this.dialogRef.close(null)}static \u0275fac=function(e){return new(e||t)(DA(co),DA(qo))};static \u0275cmp=xe({type:t,selectors:[["app-edit-json-dialog"]],viewQuery:function(e,i){e&1&&Kr(i.jsonEditorComponent,r0,5),e&2&&Aa()},decls:11,vars:5,consts:[[1,"dialog-container"],["mat-dialog-title",""],[1,"editor"],[3,"jsonString"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(e,i){e&1&&(m(0,"div",0)(1,"h2",1),T(2),p(),m(3,"mat-dialog-content",2),T(4),ve(5,"app-json-editor",3),p(),m(6,"mat-dialog-actions",4)(7,"button",5),T(8),p(),m(9,"button",6),ee("click",function(){return i.onSave()}),T(10),p()()()),e&2&&(y(2),Pe(i.data.dialogHeader),y(2),FA(" ",i.functionName," "),y(),te("jsonString",i.jsonString),y(3),Pe(i.i18n.cancelButton),y(2),Pe(i.i18n.saveButton))},dependencies:[tr,jr,r0,kr,Un,Jl],styles:[".dialog-container[_ngcontent-%COMP%]{border-radius:12px;padding:18px;width:500px;box-shadow:0 8px 16px var(--edit-json-dialog-container-box-shadow-color)}.editor[_ngcontent-%COMP%]{padding-top:12px;height:300px}"]})};var geA=["input"],deA=["label"],CeA=["*"],IeA=new re("mat-checkbox-default-options",{providedIn:"root",factory:lCe});function lCe(){return{color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1}}var Ua=function(t){return t[t.Init=0]="Init",t[t.Checked=1]="Checked",t[t.Unchecked=2]="Unchecked",t[t.Indeterminate=3]="Indeterminate",t}(Ua||{}),ueA={provide:sl,useExisting:zr(()=>Ih),multi:!0},$Y=class{source;checked},cCe=lCe(),Ih=(()=>{class t{_elementRef=E(eA);_changeDetectorRef=E(ut);_ngZone=E(yA);_animationMode=E(Oi,{optional:!0});_options=E(IeA,{optional:!0});focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){let i=new $Y;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return`${this.id||this._uniqueId}-input`}required;labelPosition="after";name=null;change=new Ve;indeterminateChange=new Ve;value;disableRipple;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=Ua.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){E(Wn).load(Pr);let e=E(new ws("tabindex"),{optional:!0});this._options=this._options||cCe,this.color=this._options.color||cCe.color,this.tabIndex=e==null?0:parseInt(e)||0,this.id=this._uniqueId=E(un).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??!1}ngOnChanges(e){e.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck())}_checked=!1;get disabled(){return this._disabled}set disabled(e){e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck())}_disabled=!1;get indeterminate(){return this._indeterminate}set indeterminate(e){let i=e!=this._indeterminate;this._indeterminate=e,i&&(this._indeterminate?this._transitionCheckState(Ua.Indeterminate):this._transitionCheckState(this.checked?Ua.Checked:Ua.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_indeterminate=!1;_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}validate(e){return this.required&&e.value!==!0?{required:!0}:null}registerOnValidatorChange(e){this._validatorChangeFn=e}_transitionCheckState(e){let i=this._currentCheckState,n=this._getAnimationTargetElement();if(!(i===e||!n)&&(this._currentAnimationClass&&n.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){n.classList.add(this._currentAnimationClass);let o=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{n.classList.remove(o)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){let e=this._options?.clickAction;!this.disabled&&e!=="noop"?(this.indeterminate&&e!=="check"&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Ua.Checked:Ua.Unchecked),this._emitChangeEvent()):(this.disabled&&this.disabledInteractive||!this.disabled&&e==="noop")&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate)}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if(this._animationMode==="NoopAnimations")return"";switch(e){case Ua.Init:if(i===Ua.Checked)return this._animationClasses.uncheckedToChecked;if(i==Ua.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Ua.Unchecked:return i===Ua.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Ua.Checked:return i===Ua.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Ua.Indeterminate:return i===Ua.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){let i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-checkbox"]],viewQuery:function(i,n){if(i&1&&(At(geA,5),At(deA,5)),i&2){let o;oA(o=rA())&&(n._inputElement=o.first),oA(o=rA())&&(n._labelElement=o.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,n){i&2&&(ea("id",n.id),AA("tabindex",null)("aria-label",null)("aria-labelledby",null),Lo(n.color?"mat-"+n.color:"mat-accent"),iA("_mat-animation-noopable",n._animationMode==="NoopAnimations")("mdc-checkbox--disabled",n.disabled)("mat-mdc-checkbox-disabled",n.disabled)("mat-mdc-checkbox-checked",n.checked)("mat-mdc-checkbox-disabled-interactive",n.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",IA],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",IA],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",IA],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?void 0:ln(e)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",IA],checked:[2,"checked","checked",IA],disabled:[2,"disabled","disabled",IA],indeterminate:[2,"indeterminate","indeterminate",IA]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[gt([ueA,{provide:z0,useExisting:t,multi:!0}]),ti],ngContentSelectors:CeA,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,n){if(i&1){let o=Ue();Kt(),m(0,"div",3),ee("click",function(s){return q(o),W(n._preventBubblingFromLabel(s))}),m(1,"div",4,0)(3,"div",5),ee("click",function(){return q(o),W(n._onTouchTargetClick())}),p(),m(4,"input",6,1),ee("blur",function(){return q(o),W(n._onBlur())})("click",function(){return q(o),W(n._onInputClick())})("change",function(s){return q(o),W(n._onInteractionEvent(s))}),p(),ve(6,"div",7),m(7,"div",8),ft(),m(8,"svg",9),ve(9,"path",10),p(),$s(),ve(10,"div",11),p(),ve(11,"div",12),p(),m(12,"label",13,2),NA(14),p()()}if(i&2){let o=Ji(2);te("labelPosition",n.labelPosition),y(4),iA("mdc-checkbox--selected",n.checked),te("checked",n.checked)("indeterminate",n.indeterminate)("disabled",n.disabled&&!n.disabledInteractive)("id",n.inputId)("required",n.required)("tabIndex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex),AA("aria-label",n.ariaLabel||null)("aria-labelledby",n.ariaLabelledby)("aria-describedby",n.ariaDescribedby)("aria-checked",n.indeterminate?"mixed":null)("aria-controls",n.ariaControls)("aria-disabled",n.disabled&&n.disabledInteractive?!0:null)("aria-expanded",n.ariaExpanded)("aria-owns",n.ariaOwns)("name",n.name)("value",n.value),y(7),te("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)("matRippleCentered",!0),y(),te("for",n.inputId)}},dependencies:[ec,U5],styles:['.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom;padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover>.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:hover>.mat-mdc-checkbox-ripple>.mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control+.mdc-checkbox__ripple{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox--disabled{cursor:default;pointer-events:none}@media(forced-colors: active){.mdc-checkbox--disabled{opacity:.5}}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mdc-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-touch-target,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__native-control,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__ripple,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-ripple::before,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__mixedmark{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox .mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox .mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display, block)}.mat-mdc-checkbox .mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();var BeA=[[["caption"]],[["colgroup"],["col"]],"*"],EeA=["caption","colgroup, col","*"];function feA(t,A){t&1&&NA(0,2)}function QeA(t,A){t&1&&(m(0,"thead",0),En(1,1),p(),m(2,"tbody",0),En(3,2)(4,3),p(),m(5,"tfoot",0),En(6,4),p())}function meA(t,A){t&1&&En(0,1)(1,2)(2,3)(3,4)}var s0=new re("CDK_TABLE");var qM=(()=>{class t{template=E(en);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","cdkCellDef",""]]})}return t})(),WM=(()=>{class t{template=E(en);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","cdkHeaderCellDef",""]]})}return t})(),CCe=(()=>{class t{template=E(en);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","cdkFooterCellDef",""]]})}return t})(),aQ=(()=>{class t{_table=E(s0,{optional:!0});_hasStickyChanged=!1;get name(){return this._name}set name(e){this._setNameInput(e)}_name;get sticky(){return this._sticky}set sticky(e){e!==this._sticky&&(this._sticky=e,this._hasStickyChanged=!0)}_sticky=!1;get stickyEnd(){return this._stickyEnd}set stickyEnd(e){e!==this._stickyEnd&&(this._stickyEnd=e,this._hasStickyChanged=!0)}_stickyEnd=!1;cell;headerCell;footerCell;cssClassFriendlyName;_columnCssClassName;constructor(){}hasStickyChanged(){let e=this._hasStickyChanged;return this.resetStickyChanged(),e}resetStickyChanged(){this._hasStickyChanged=!1}_updateColumnCssClassName(){this._columnCssClassName=[`cdk-column-${this.cssClassFriendlyName}`]}_setNameInput(e){e&&(this._name=e,this.cssClassFriendlyName=e.replace(/[^a-z0-9_-]/gi,"-"),this._updateColumnCssClassName())}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","cdkColumnDef",""]],contentQueries:function(i,n,o){if(i&1&&(ni(o,qM,5),ni(o,WM,5),ni(o,CCe,5)),i&2){let r;oA(r=rA())&&(n.cell=r.first),oA(r=rA())&&(n.headerCell=r.first),oA(r=rA())&&(n.footerCell=r.first)}},inputs:{name:[0,"cdkColumnDef","name"],sticky:[2,"sticky","sticky",IA],stickyEnd:[2,"stickyEnd","stickyEnd",IA]},features:[gt([{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}])]})}return t})(),zM=class{constructor(A,e){e.nativeElement.classList.add(...A._columnCssClassName)}},ICe=(()=>{class t extends zM{constructor(){super(E(aQ),E(eA))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["cdk-header-cell"],["th","cdk-header-cell",""]],hostAttrs:["role","columnheader",1,"cdk-header-cell"],features:[Ct]})}return t})();var uCe=(()=>{class t extends zM{constructor(){let e=E(aQ),i=E(eA);super(e,i);let n=e._table?._getCellRole();n&&i.nativeElement.setAttribute("role",n)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["cdk-cell"],["td","cdk-cell",""]],hostAttrs:[1,"cdk-cell"],features:[Ct]})}return t})(),PM=class{tasks=[];endTasks=[]},jM=new re("_COALESCED_STYLE_SCHEDULER"),AH=(()=>{class t{_currentSchedule=null;_ngZone=E(yA);constructor(){}schedule(e){this._createScheduleIfNeeded(),this._currentSchedule.tasks.push(e)}scheduleEnd(e){this._createScheduleIfNeeded(),this._currentSchedule.endTasks.push(e)}_createScheduleIfNeeded(){this._currentSchedule||(this._currentSchedule=new PM,this._ngZone.runOutsideAngular(()=>queueMicrotask(()=>{for(;this._currentSchedule.tasks.length||this._currentSchedule.endTasks.length;){let e=this._currentSchedule;this._currentSchedule=new PM;for(let i of e.tasks)i();for(let i of e.endTasks)i()}this._currentSchedule=null})))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac})}return t})();var tH=(()=>{class t{template=E(en);_differs=E(Y0);columns;_columnsDiffer;constructor(){}ngOnChanges(e){if(!this._columnsDiffer){let i=e.columns&&e.columns.currentValue||[];this._columnsDiffer=this._differs.find(i).create(),this._columnsDiffer.diff(i)}}getColumnsDiff(){return this._columnsDiffer.diff(this.columns)}extractCellTemplate(e){return this instanceof a6?e.headerCell.template:this instanceof iH?e.footerCell.template:e.cell.template}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,features:[ti]})}return t})(),a6=(()=>{class t extends tH{_table=E(s0,{optional:!0});_hasStickyChanged=!1;get sticky(){return this._sticky}set sticky(e){e!==this._sticky&&(this._sticky=e,this._hasStickyChanged=!0)}_sticky=!1;constructor(){super(E(en),E(Y0))}ngOnChanges(e){super.ngOnChanges(e)}hasStickyChanged(){let e=this._hasStickyChanged;return this.resetStickyChanged(),e}resetStickyChanged(){this._hasStickyChanged=!1}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","cdkHeaderRowDef",""]],inputs:{columns:[0,"cdkHeaderRowDef","columns"],sticky:[2,"cdkHeaderRowDefSticky","sticky",IA]},features:[Ct,ti]})}return t})(),iH=(()=>{class t extends tH{_table=E(s0,{optional:!0});_hasStickyChanged=!1;get sticky(){return this._sticky}set sticky(e){e!==this._sticky&&(this._sticky=e,this._hasStickyChanged=!0)}_sticky=!1;constructor(){super(E(en),E(Y0))}ngOnChanges(e){super.ngOnChanges(e)}hasStickyChanged(){let e=this._hasStickyChanged;return this.resetStickyChanged(),e}resetStickyChanged(){this._hasStickyChanged=!1}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","cdkFooterRowDef",""]],inputs:{columns:[0,"cdkFooterRowDef","columns"],sticky:[2,"cdkFooterRowDefSticky","sticky",IA]},features:[Ct,ti]})}return t})(),ZM=(()=>{class t extends tH{_table=E(s0,{optional:!0});when;constructor(){super(E(en),E(Y0))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","cdkRowDef",""]],inputs:{columns:[0,"cdkRowDefColumns","columns"],when:[0,"cdkRowDefWhen","when"]},features:[Ct]})}return t})(),uh=(()=>{class t{_viewContainer=E(xn);cells;context;static mostRecentCellOutlet=null;constructor(){t.mostRecentCellOutlet=this}ngOnDestroy(){t.mostRecentCellOutlet===this&&(t.mostRecentCellOutlet=null)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","cdkCellOutlet",""]]})}return t})(),nH=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["cdk-header-row"],["tr","cdk-header-row",""]],hostAttrs:["role","row",1,"cdk-header-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&En(0,0)},dependencies:[uh],encapsulation:2})}return t})();var oH=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["cdk-row"],["tr","cdk-row",""]],hostAttrs:["role","row",1,"cdk-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&En(0,0)},dependencies:[uh],encapsulation:2})}return t})(),hCe=(()=>{class t{templateRef=E(en);_contentClassName="cdk-no-data-row";constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["ng-template","cdkNoDataRow",""]]})}return t})(),gCe=["top","bottom","left","right"],eH=class{_isNativeHtmlTable;_stickCellCss;direction;_coalescedStyleScheduler;_isBrowser;_needsPositionStickyOnElement;_positionListener;_tableInjector;_elemSizeCache=new WeakMap;_resizeObserver=globalThis?.ResizeObserver?new globalThis.ResizeObserver(A=>this._updateCachedSizes(A)):null;_updatedStickyColumnsParamsToReplay=[];_stickyColumnsReplayTimeout=null;_cachedCellWidths=[];_borderCellCss;_destroyed=!1;constructor(A,e,i,n,o=!0,r=!0,s,a){this._isNativeHtmlTable=A,this._stickCellCss=e,this.direction=i,this._coalescedStyleScheduler=n,this._isBrowser=o,this._needsPositionStickyOnElement=r,this._positionListener=s,this._tableInjector=a,this._borderCellCss={top:`${e}-border-elem-top`,bottom:`${e}-border-elem-bottom`,left:`${e}-border-elem-left`,right:`${e}-border-elem-right`}}clearStickyPositioning(A,e){(e.includes("left")||e.includes("right"))&&this._removeFromStickyColumnReplayQueue(A);let i=[];for(let n of A)n.nodeType===n.ELEMENT_NODE&&i.push(n,...Array.from(n.children));this._afterNextRender({write:()=>{for(let n of i)this._removeStickyStyle(n,e)}})}updateStickyColumns(A,e,i,n=!0,o=!0){if(!A.length||!this._isBrowser||!(e.some(B=>B)||i.some(B=>B))){this._positionListener?.stickyColumnsUpdated({sizes:[]}),this._positionListener?.stickyEndColumnsUpdated({sizes:[]});return}let r=A[0],s=r.children.length,a=this.direction==="rtl",c=a?"right":"left",l=a?"left":"right",d=e.lastIndexOf(!0),C=i.indexOf(!0),I,u,h;o&&this._updateStickyColumnReplayQueue({rows:[...A],stickyStartStates:[...e],stickyEndStates:[...i]}),this._afterNextRender({earlyRead:()=>{I=this._getCellWidths(r,n),u=this._getStickyStartColumnPositions(I,e),h=this._getStickyEndColumnPositions(I,i)},write:()=>{for(let B of A)for(let f=0;f!!B)&&(this._positionListener.stickyColumnsUpdated({sizes:d===-1?[]:I.slice(0,d+1).map((B,f)=>e[f]?B:null)}),this._positionListener.stickyEndColumnsUpdated({sizes:C===-1?[]:I.slice(C).map((B,f)=>i[f+C]?B:null).reverse()}))}})}stickRows(A,e,i){if(!this._isBrowser)return;let n=i==="bottom"?A.slice().reverse():A,o=i==="bottom"?e.slice().reverse():e,r=[],s=[],a=[];this._afterNextRender({earlyRead:()=>{for(let c=0,l=0;c{let c=o.lastIndexOf(!0);for(let l=0;l{let i=A.querySelector("tfoot");i&&(e.some(n=>!n)?this._removeStickyStyle(i,["bottom"]):this._addStickyStyle(i,"bottom",0,!1))}})}destroy(){this._stickyColumnsReplayTimeout&&clearTimeout(this._stickyColumnsReplayTimeout),this._resizeObserver?.disconnect(),this._destroyed=!0}_removeStickyStyle(A,e){for(let n of e)A.style[n]="",A.classList.remove(this._borderCellCss[n]);gCe.some(n=>e.indexOf(n)===-1&&A.style[n])?A.style.zIndex=this._getCalculatedZIndex(A):(A.style.zIndex="",this._needsPositionStickyOnElement&&(A.style.position=""),A.classList.remove(this._stickCellCss))}_addStickyStyle(A,e,i,n){A.classList.add(this._stickCellCss),n&&A.classList.add(this._borderCellCss[e]),A.style[e]=`${i}px`,A.style.zIndex=this._getCalculatedZIndex(A),this._needsPositionStickyOnElement&&(A.style.cssText+="position: -webkit-sticky; position: sticky; ")}_getCalculatedZIndex(A){let e={top:100,bottom:10,left:1,right:1},i=0;for(let n of gCe)A.style[n]&&(i+=e[n]);return i?`${i}`:""}_getCellWidths(A,e=!0){if(!e&&this._cachedCellWidths.length)return this._cachedCellWidths;let i=[],n=A.children;for(let o=0;o0;o--)e[o]&&(i[o]=n,n+=A[o]);return i}_retrieveElementSize(A){let e=this._elemSizeCache.get(A);if(e)return e;let i=A.getBoundingClientRect(),n={width:i.width,height:i.height};return this._resizeObserver&&(this._elemSizeCache.set(A,n),this._resizeObserver.observe(A,{box:"border-box"})),n}_updateStickyColumnReplayQueue(A){this._removeFromStickyColumnReplayQueue(A.rows),this._stickyColumnsReplayTimeout||this._updatedStickyColumnsParamsToReplay.push(A)}_removeFromStickyColumnReplayQueue(A){let e=new Set(A);for(let i of this._updatedStickyColumnsParamsToReplay)i.rows=i.rows.filter(n=>!e.has(n));this._updatedStickyColumnsParamsToReplay=this._updatedStickyColumnsParamsToReplay.filter(i=>!!i.rows.length)}_updateCachedSizes(A){let e=!1;for(let i of A){let n=i.borderBoxSize?.length?{width:i.borderBoxSize[0].inlineSize,height:i.borderBoxSize[0].blockSize}:{width:i.contentRect.width,height:i.contentRect.height};n.width!==this._elemSizeCache.get(i.target)?.width&&peA(i.target)&&(e=!0),this._elemSizeCache.set(i.target,n)}e&&this._updatedStickyColumnsParamsToReplay.length&&(this._stickyColumnsReplayTimeout&&clearTimeout(this._stickyColumnsReplayTimeout),this._stickyColumnsReplayTimeout=setTimeout(()=>{if(!this._destroyed){for(let i of this._updatedStickyColumnsParamsToReplay)this.updateStickyColumns(i.rows,i.stickyStartStates,i.stickyEndStates,!0,!1);this._updatedStickyColumnsParamsToReplay=[],this._stickyColumnsReplayTimeout=null}},0))}_afterNextRender(A){this._tableInjector?Gr(A,{injector:this._tableInjector}):this._coalescedStyleScheduler.schedule(()=>{A.earlyRead?.(),A.write()})}};function peA(t){return["cdk-cell","cdk-header-cell","cdk-footer-cell"].some(A=>t.classList.contains(A))}var VM=new re("CDK_SPL");var rH=(()=>{class t{viewContainer=E(xn);elementRef=E(eA);constructor(){let e=E(s0);e._rowOutlet=this,e._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","rowOutlet",""]]})}return t})(),sH=(()=>{class t{viewContainer=E(xn);elementRef=E(eA);constructor(){let e=E(s0);e._headerRowOutlet=this,e._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","headerRowOutlet",""]]})}return t})(),aH=(()=>{class t{viewContainer=E(xn);elementRef=E(eA);constructor(){let e=E(s0);e._footerRowOutlet=this,e._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","footerRowOutlet",""]]})}return t})(),cH=(()=>{class t{viewContainer=E(xn);elementRef=E(eA);constructor(){let e=E(s0);e._noDataRowOutlet=this,e._outletAssigned()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","noDataRowOutlet",""]]})}return t})();var lH=(()=>{class t{_differs=E(Y0);_changeDetectorRef=E(ut);_elementRef=E(eA);_dir=E(Do,{optional:!0});_platform=E(mi);_viewRepeater=E(_m);_coalescedStyleScheduler=E(jM);_viewportRuler=E(Ol);_stickyPositioningListener=E(VM,{optional:!0,skipSelf:!0});_document=E(ht);_data;_onDestroy=new je;_renderRows;_renderChangeSubscription;_columnDefsByName=new Map;_rowDefs;_headerRowDefs;_footerRowDefs;_dataDiffer;_defaultRowDef;_customColumnDefs=new Set;_customRowDefs=new Set;_customHeaderRowDefs=new Set;_customFooterRowDefs=new Set;_customNoDataRow;_headerRowDefChanged=!0;_footerRowDefChanged=!0;_stickyColumnStylesNeedReset=!0;_forceRecalculateCellWidths=!0;_cachedRenderRowsMap=new Map;_isNativeHtmlTable;_stickyStyler;stickyCssClass="cdk-table-sticky";needsPositionStickyOnElement=!0;_isServer;_isShowingNoDataRow=!1;_hasAllOutlets=!1;_hasInitialized=!1;_getCellRole(){if(this._cellRoleInternal===void 0){let e=this._elementRef.nativeElement.getAttribute("role");return e==="grid"||e==="treegrid"?"gridcell":"cell"}return this._cellRoleInternal}_cellRoleInternal=void 0;get trackBy(){return this._trackByFn}set trackBy(e){this._trackByFn=e}_trackByFn;get dataSource(){return this._dataSource}set dataSource(e){this._dataSource!==e&&this._switchDataSource(e)}_dataSource;get multiTemplateDataRows(){return this._multiTemplateDataRows}set multiTemplateDataRows(e){this._multiTemplateDataRows=e,this._rowOutlet&&this._rowOutlet.viewContainer.length&&(this._forceRenderDataRows(),this.updateStickyColumnStyles())}_multiTemplateDataRows=!1;get fixedLayout(){return this._fixedLayout}set fixedLayout(e){this._fixedLayout=e,this._forceRecalculateCellWidths=!0,this._stickyColumnStylesNeedReset=!0}_fixedLayout=!1;contentChanged=new Ve;viewChange=new Mt({start:0,end:Number.MAX_VALUE});_rowOutlet;_headerRowOutlet;_footerRowOutlet;_noDataRowOutlet;_contentColumnDefs;_contentRowDefs;_contentHeaderRowDefs;_contentFooterRowDefs;_noDataRow;_injector=E(Dt);constructor(){E(new ws("role"),{optional:!0})||this._elementRef.nativeElement.setAttribute("role","table"),this._isServer=!this._platform.isBrowser,this._isNativeHtmlTable=this._elementRef.nativeElement.nodeName==="TABLE"}ngOnInit(){this._setupStickyStyler(),this._dataDiffer=this._differs.find([]).create((e,i)=>this.trackBy?this.trackBy(i.dataIndex,i.data):i),this._viewportRuler.change().pipe(mt(this._onDestroy)).subscribe(()=>{this._forceRecalculateCellWidths=!0})}ngAfterContentInit(){this._hasInitialized=!0}ngAfterContentChecked(){this._canRender()&&this._render()}ngOnDestroy(){this._stickyStyler?.destroy(),[this._rowOutlet?.viewContainer,this._headerRowOutlet?.viewContainer,this._footerRowOutlet?.viewContainer,this._cachedRenderRowsMap,this._customColumnDefs,this._customRowDefs,this._customHeaderRowDefs,this._customFooterRowDefs,this._columnDefsByName].forEach(e=>{e?.clear()}),this._headerRowDefs=[],this._footerRowDefs=[],this._defaultRowDef=null,this._onDestroy.next(),this._onDestroy.complete(),AD(this.dataSource)&&this.dataSource.disconnect(this)}renderRows(){this._renderRows=this._getAllRenderRows();let e=this._dataDiffer.diff(this._renderRows);if(!e){this._updateNoDataRow(),this.contentChanged.next();return}let i=this._rowOutlet.viewContainer;this._viewRepeater.applyChanges(e,i,(n,o,r)=>this._getEmbeddedViewArgs(n.item,r),n=>n.item.data,n=>{n.operation===aE.INSERTED&&n.context&&this._renderCellTemplateForItem(n.record.item.rowDef,n.context)}),this._updateRowIndexContext(),e.forEachIdentityChange(n=>{let o=i.get(n.currentIndex);o.context.$implicit=n.item.data}),this._updateNoDataRow(),this.contentChanged.next(),this.updateStickyColumnStyles()}addColumnDef(e){this._customColumnDefs.add(e)}removeColumnDef(e){this._customColumnDefs.delete(e)}addRowDef(e){this._customRowDefs.add(e)}removeRowDef(e){this._customRowDefs.delete(e)}addHeaderRowDef(e){this._customHeaderRowDefs.add(e),this._headerRowDefChanged=!0}removeHeaderRowDef(e){this._customHeaderRowDefs.delete(e),this._headerRowDefChanged=!0}addFooterRowDef(e){this._customFooterRowDefs.add(e),this._footerRowDefChanged=!0}removeFooterRowDef(e){this._customFooterRowDefs.delete(e),this._footerRowDefChanged=!0}setNoDataRow(e){this._customNoDataRow=e}updateStickyHeaderRowStyles(){let e=this._getRenderedRows(this._headerRowOutlet);if(this._isNativeHtmlTable){let n=dCe(this._headerRowOutlet,"thead");n&&(n.style.display=e.length?"":"none")}let i=this._headerRowDefs.map(n=>n.sticky);this._stickyStyler.clearStickyPositioning(e,["top"]),this._stickyStyler.stickRows(e,i,"top"),this._headerRowDefs.forEach(n=>n.resetStickyChanged())}updateStickyFooterRowStyles(){let e=this._getRenderedRows(this._footerRowOutlet);if(this._isNativeHtmlTable){let n=dCe(this._footerRowOutlet,"tfoot");n&&(n.style.display=e.length?"":"none")}let i=this._footerRowDefs.map(n=>n.sticky);this._stickyStyler.clearStickyPositioning(e,["bottom"]),this._stickyStyler.stickRows(e,i,"bottom"),this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement,i),this._footerRowDefs.forEach(n=>n.resetStickyChanged())}updateStickyColumnStyles(){let e=this._getRenderedRows(this._headerRowOutlet),i=this._getRenderedRows(this._rowOutlet),n=this._getRenderedRows(this._footerRowOutlet);(this._isNativeHtmlTable&&!this._fixedLayout||this._stickyColumnStylesNeedReset)&&(this._stickyStyler.clearStickyPositioning([...e,...i,...n],["left","right"]),this._stickyColumnStylesNeedReset=!1),e.forEach((o,r)=>{this._addStickyColumnStyles([o],this._headerRowDefs[r])}),this._rowDefs.forEach(o=>{let r=[];for(let s=0;s{this._addStickyColumnStyles([o],this._footerRowDefs[r])}),Array.from(this._columnDefsByName.values()).forEach(o=>o.resetStickyChanged())}_outletAssigned(){!this._hasAllOutlets&&this._rowOutlet&&this._headerRowOutlet&&this._footerRowOutlet&&this._noDataRowOutlet&&(this._hasAllOutlets=!0,this._canRender()&&this._render())}_canRender(){return this._hasAllOutlets&&this._hasInitialized}_render(){this._cacheRowDefs(),this._cacheColumnDefs(),!this._headerRowDefs.length&&!this._footerRowDefs.length&&this._rowDefs.length;let i=this._renderUpdatedColumns()||this._headerRowDefChanged||this._footerRowDefChanged;this._stickyColumnStylesNeedReset=this._stickyColumnStylesNeedReset||i,this._forceRecalculateCellWidths=i,this._headerRowDefChanged&&(this._forceRenderHeaderRows(),this._headerRowDefChanged=!1),this._footerRowDefChanged&&(this._forceRenderFooterRows(),this._footerRowDefChanged=!1),this.dataSource&&this._rowDefs.length>0&&!this._renderChangeSubscription?this._observeRenderChanges():this._stickyColumnStylesNeedReset&&this.updateStickyColumnStyles(),this._checkStickyStates()}_getAllRenderRows(){let e=[],i=this._cachedRenderRowsMap;this._cachedRenderRowsMap=new Map;for(let n=0;n{let s=n&&n.has(r)?n.get(r):[];if(s.length){let a=s.shift();return a.dataIndex=i,a}else return{data:e,rowDef:r,dataIndex:i}})}_cacheColumnDefs(){this._columnDefsByName.clear(),HM(this._getOwnDefs(this._contentColumnDefs),this._customColumnDefs).forEach(i=>{this._columnDefsByName.has(i.name),this._columnDefsByName.set(i.name,i)})}_cacheRowDefs(){this._headerRowDefs=HM(this._getOwnDefs(this._contentHeaderRowDefs),this._customHeaderRowDefs),this._footerRowDefs=HM(this._getOwnDefs(this._contentFooterRowDefs),this._customFooterRowDefs),this._rowDefs=HM(this._getOwnDefs(this._contentRowDefs),this._customRowDefs);let e=this._rowDefs.filter(i=>!i.when);!this.multiTemplateDataRows&&e.length>1,this._defaultRowDef=e[0]}_renderUpdatedColumns(){let e=(r,s)=>{let a=!!s.getColumnsDiff();return r||a},i=this._rowDefs.reduce(e,!1);i&&this._forceRenderDataRows();let n=this._headerRowDefs.reduce(e,!1);n&&this._forceRenderHeaderRows();let o=this._footerRowDefs.reduce(e,!1);return o&&this._forceRenderFooterRows(),i||n||o}_switchDataSource(e){this._data=[],AD(this.dataSource)&&this.dataSource.disconnect(this),this._renderChangeSubscription&&(this._renderChangeSubscription.unsubscribe(),this._renderChangeSubscription=null),e||(this._dataDiffer&&this._dataDiffer.diff([]),this._rowOutlet&&this._rowOutlet.viewContainer.clear()),this._dataSource=e}_observeRenderChanges(){if(!this.dataSource)return;let e;AD(this.dataSource)?e=this.dataSource.connect(this):I1(this.dataSource)?e=this.dataSource:Array.isArray(this.dataSource)&&(e=dA(this.dataSource)),this._renderChangeSubscription=e.pipe(mt(this._onDestroy)).subscribe(i=>{this._data=i||[],this.renderRows()})}_forceRenderHeaderRows(){this._headerRowOutlet.viewContainer.length>0&&this._headerRowOutlet.viewContainer.clear(),this._headerRowDefs.forEach((e,i)=>this._renderRow(this._headerRowOutlet,e,i)),this.updateStickyHeaderRowStyles()}_forceRenderFooterRows(){this._footerRowOutlet.viewContainer.length>0&&this._footerRowOutlet.viewContainer.clear(),this._footerRowDefs.forEach((e,i)=>this._renderRow(this._footerRowOutlet,e,i)),this.updateStickyFooterRowStyles()}_addStickyColumnStyles(e,i){let n=Array.from(i?.columns||[]).map(s=>{let a=this._columnDefsByName.get(s);return a}),o=n.map(s=>s.sticky),r=n.map(s=>s.stickyEnd);this._stickyStyler.updateStickyColumns(e,o,r,!this._fixedLayout||this._forceRecalculateCellWidths)}_getRenderedRows(e){let i=[];for(let n=0;n!o.when||o.when(i,e));else{let o=this._rowDefs.find(r=>r.when&&r.when(i,e))||this._defaultRowDef;o&&n.push(o)}return n.length,n}_getEmbeddedViewArgs(e,i){let n=e.rowDef,o={$implicit:e.data};return{templateRef:n.template,context:o,index:i}}_renderRow(e,i,n,o={}){let r=e.viewContainer.createEmbeddedView(i.template,o,n);return this._renderCellTemplateForItem(i,o),r}_renderCellTemplateForItem(e,i){for(let n of this._getCellTemplates(e))uh.mostRecentCellOutlet&&uh.mostRecentCellOutlet._viewContainer.createEmbeddedView(n,i);this._changeDetectorRef.markForCheck()}_updateRowIndexContext(){let e=this._rowOutlet.viewContainer;for(let i=0,n=e.length;i{let n=this._columnDefsByName.get(i);return e.extractCellTemplate(n)})}_forceRenderDataRows(){this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear(),this.renderRows()}_checkStickyStates(){let e=(i,n)=>i||n.hasStickyChanged();this._headerRowDefs.reduce(e,!1)&&this.updateStickyHeaderRowStyles(),this._footerRowDefs.reduce(e,!1)&&this.updateStickyFooterRowStyles(),Array.from(this._columnDefsByName.values()).reduce(e,!1)&&(this._stickyColumnStylesNeedReset=!0,this.updateStickyColumnStyles())}_setupStickyStyler(){let e=this._dir?this._dir.value:"ltr";this._stickyStyler=new eH(this._isNativeHtmlTable,this.stickyCssClass,e,this._coalescedStyleScheduler,this._platform.isBrowser,this.needsPositionStickyOnElement,this._stickyPositioningListener,this._injector),(this._dir?this._dir.change:dA()).pipe(mt(this._onDestroy)).subscribe(i=>{this._stickyStyler.direction=i,this.updateStickyColumnStyles()})}_getOwnDefs(e){return e.filter(i=>!i._table||i._table===this)}_updateNoDataRow(){let e=this._customNoDataRow||this._noDataRow;if(!e)return;let i=this._rowOutlet.viewContainer.length===0;if(i===this._isShowingNoDataRow)return;let n=this._noDataRowOutlet.viewContainer;if(i){let o=n.createEmbeddedView(e.templateRef),r=o.rootNodes[0];o.rootNodes.length===1&&r?.nodeType===this._document.ELEMENT_NODE&&(r.setAttribute("role","row"),r.classList.add(e._contentClassName))}else n.clear();this._isShowingNoDataRow=i,this._changeDetectorRef.markForCheck()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["cdk-table"],["table","cdk-table",""]],contentQueries:function(i,n,o){if(i&1&&(ni(o,hCe,5),ni(o,aQ,5),ni(o,ZM,5),ni(o,a6,5),ni(o,iH,5)),i&2){let r;oA(r=rA())&&(n._noDataRow=r.first),oA(r=rA())&&(n._contentColumnDefs=r),oA(r=rA())&&(n._contentRowDefs=r),oA(r=rA())&&(n._contentHeaderRowDefs=r),oA(r=rA())&&(n._contentFooterRowDefs=r)}},hostAttrs:[1,"cdk-table"],hostVars:2,hostBindings:function(i,n){i&2&&iA("cdk-table-fixed-layout",n.fixedLayout)},inputs:{trackBy:"trackBy",dataSource:"dataSource",multiTemplateDataRows:[2,"multiTemplateDataRows","multiTemplateDataRows",IA],fixedLayout:[2,"fixedLayout","fixedLayout",IA]},outputs:{contentChanged:"contentChanged"},exportAs:["cdkTable"],features:[gt([{provide:s0,useExisting:t},{provide:_m,useClass:cE},{provide:jM,useClass:AH},{provide:VM,useValue:null}])],ngContentSelectors:EeA,decls:5,vars:2,consts:[["role","rowgroup"],["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,n){i&1&&(Kt(BeA),NA(0),NA(1,1),ne(2,feA,1,0)(3,QeA,7,0)(4,meA,4,0)),i&2&&(y(2),$(n._isServer?2:-1),y(),$(n._isNativeHtmlTable?3:4))},dependencies:[sH,rH,cH,aH],styles:[".cdk-table-fixed-layout{table-layout:fixed}"],encapsulation:2})}return t})();function HM(t,A){return t.concat(Array.from(A))}function dCe(t,A){let e=A.toUpperCase(),i=t.viewContainer.element.nativeElement;for(;i;){let n=i.nodeType===1?i.nodeName:null;if(n===e)return i;if(n==="TABLE")break;i=i.parentNode}return null}var weA=[[["caption"]],[["colgroup"],["col"]],"*"],yeA=["caption","colgroup, col","*"];function DeA(t,A){t&1&&NA(0,2)}function veA(t,A){t&1&&(m(0,"thead",0),En(1,1),p(),m(2,"tbody",2),En(3,3)(4,4),p(),m(5,"tfoot",0),En(6,5),p())}function beA(t,A){t&1&&En(0,1)(1,3)(2,4)(3,5)}var BCe=(()=>{class t extends lH{stickyCssClass="mat-mdc-table-sticky";needsPositionStickyOnElement=!1;static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275cmp=xe({type:t,selectors:[["mat-table"],["table","mat-table",""]],hostAttrs:[1,"mat-mdc-table","mdc-data-table__table"],hostVars:2,hostBindings:function(i,n){i&2&&iA("mdc-table-fixed-layout",n.fixedLayout)},exportAs:["matTable"],features:[gt([{provide:lH,useExisting:t},{provide:s0,useExisting:t},{provide:jM,useClass:AH},{provide:_m,useClass:cE},{provide:VM,useValue:null}]),Ct],ngContentSelectors:yeA,decls:5,vars:2,consts:[["role","rowgroup"],["headerRowOutlet",""],["role","rowgroup",1,"mdc-data-table__content"],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,n){i&1&&(Kt(weA),NA(0),NA(1,1),ne(2,DeA,1,0)(3,veA,7,0)(4,beA,4,0)),i&2&&(y(2),$(n._isServer?2:-1),y(),$(n._isNativeHtmlTable?3:4))},dependencies:[sH,rH,cH,aH],styles:[".mat-mdc-table-sticky{position:sticky !important}mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{min-width:100%;border:0;border-spacing:0;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color, var(--mat-sys-surface))}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell{text-align:right}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-header-headline-font, var(--mat-sys-title-small-font, Roboto, sans-serif));line-height:var(--mat-table-header-headline-line-height, var(--mat-sys-title-small-line-height));font-size:var(--mat-table-header-headline-size, var(--mat-sys-title-small-size, 14px));font-weight:var(--mat-table-header-headline-weight, var(--mat-sys-title-small-weight, 500))}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-row-item-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-row-item-label-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-row-item-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-footer-supporting-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-footer-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-footer-supporting-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-footer-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mat-table-footer-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking, var(--mat-sys-title-small-tracking));font-weight:inherit;line-height:inherit;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mat-mdc-header-cell{text-align:right}.mdc-data-table__row:last-child>.mat-mdc-header-cell{border-bottom:none}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking));line-height:inherit}.mdc-data-table__row:last-child>.mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking))}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}"],encapsulation:2})}return t})(),ECe=(()=>{class t extends qM{static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275dir=Oe({type:t,selectors:[["","matCellDef",""]],features:[gt([{provide:qM,useExisting:t}]),Ct]})}return t})(),fCe=(()=>{class t extends WM{static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275dir=Oe({type:t,selectors:[["","matHeaderCellDef",""]],features:[gt([{provide:WM,useExisting:t}]),Ct]})}return t})();var QCe=(()=>{class t extends aQ{get name(){return this._name}set name(e){this._setNameInput(e)}_updateColumnCssClassName(){super._updateColumnCssClassName(),this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`)}static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275dir=Oe({type:t,selectors:[["","matColumnDef",""]],inputs:{name:[0,"matColumnDef","name"]},features:[gt([{provide:aQ,useExisting:t},{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}]),Ct]})}return t})(),mCe=(()=>{class t extends ICe{static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275dir=Oe({type:t,selectors:[["mat-header-cell"],["th","mat-header-cell",""]],hostAttrs:["role","columnheader",1,"mat-mdc-header-cell","mdc-data-table__header-cell"],features:[Ct]})}return t})();var pCe=(()=>{class t extends uCe{static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275dir=Oe({type:t,selectors:[["mat-cell"],["td","mat-cell",""]],hostAttrs:[1,"mat-mdc-cell","mdc-data-table__cell"],features:[Ct]})}return t})();var wCe=(()=>{class t extends a6{static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275dir=Oe({type:t,selectors:[["","matHeaderRowDef",""]],inputs:{columns:[0,"matHeaderRowDef","columns"],sticky:[2,"matHeaderRowDefSticky","sticky",IA]},features:[gt([{provide:a6,useExisting:t}]),Ct]})}return t})();var yCe=(()=>{class t extends ZM{static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275dir=Oe({type:t,selectors:[["","matRowDef",""]],inputs:{columns:[0,"matRowDefColumns","columns"],when:[0,"matRowDefWhen","when"]},features:[gt([{provide:ZM,useExisting:t}]),Ct]})}return t})(),DCe=(()=>{class t extends nH{static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275cmp=xe({type:t,selectors:[["mat-header-row"],["tr","mat-header-row",""]],hostAttrs:["role","row",1,"mat-mdc-header-row","mdc-data-table__header-row"],exportAs:["matHeaderRow"],features:[gt([{provide:nH,useExisting:t}]),Ct],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&En(0,0)},dependencies:[uh],encapsulation:2})}return t})();var vCe=(()=>{class t extends oH{static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275cmp=xe({type:t,selectors:[["mat-row"],["tr","mat-row",""]],hostAttrs:["role","row",1,"mat-mdc-row","mdc-data-table__row"],exportAs:["matRow"],features:[gt([{provide:oH,useExisting:t}]),Ct],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,n){i&1&&En(0,0)},dependencies:[uh],encapsulation:2})}return t})();var MeA=9007199254740991,c6=class extends eD{_data;_renderData=new Mt([]);_filter=new Mt("");_internalPageChanges=new je;_renderChangesSubscription=null;filteredData;get data(){return this._data.value}set data(A){A=Array.isArray(A)?A:[],this._data.next(A),this._renderChangesSubscription||this._filterData(A)}get filter(){return this._filter.value}set filter(A){this._filter.next(A),this._renderChangesSubscription||this._filterData(this.data)}get sort(){return this._sort}set sort(A){this._sort=A,this._updateChangeSubscription()}_sort;get paginator(){return this._paginator}set paginator(A){this._paginator=A,this._updateChangeSubscription()}_paginator;sortingDataAccessor=(A,e)=>{let i=A[e];if(BN(i)){let n=Number(i);return n{let i=e.active,n=e.direction;return!i||n==""?A:A.sort((o,r)=>{let s=this.sortingDataAccessor(o,i),a=this.sortingDataAccessor(r,i),c=typeof s,l=typeof a;c!==l&&(c==="number"&&(s+=""),l==="number"&&(a+=""));let d=0;return s!=null&&a!=null?s>a?d=1:s{let i=e.trim().toLowerCase();return Object.values(A).some(n=>`${n}`.toLowerCase().includes(i))};constructor(A=[]){super(),this._data=new Mt(A),this._updateChangeSubscription()}_updateChangeSubscription(){let A=this._sort?Bi(this._sort.sortChange,this._sort.initialized):dA(null),e=this._paginator?Bi(this._paginator.page,this._internalPageChanges,this._paginator.initialized):dA(null),i=this._data,n=uc([i,this._filter]).pipe(aA(([s])=>this._filterData(s))),o=uc([n,A]).pipe(aA(([s])=>this._orderData(s))),r=uc([o,e]).pipe(aA(([s])=>this._pageData(s)));this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=r.subscribe(s=>this._renderData.next(s))}_filterData(A){return this.filteredData=this.filter==null||this.filter===""?A:A.filter(e=>this.filterPredicate(e,this.filter)),this.paginator&&this._updatePaginator(this.filteredData.length),this.filteredData}_orderData(A){return this.sort?this.sortData(A.slice(),this.sort):A}_pageData(A){if(!this.paginator)return A;let e=this.paginator.pageIndex*this.paginator.pageSize;return A.slice(e,e+this.paginator.pageSize)}_updatePaginator(A){Promise.resolve().then(()=>{let e=this.paginator;if(e&&(e.length=A,e.pageIndex>0)){let i=Math.ceil(e.length/e.pageSize)-1||0,n=Math.min(e.pageIndex,i);n!==e.pageIndex&&(e.pageIndex=n,this._internalPageChanges.next())}})}connect(){return this._renderChangesSubscription||this._updateChangeSubscription(),this._renderData}disconnect(){this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=null}};var bCe=[{metricName:"tool_trajectory_avg_score",threshold:1},{metricName:"response_match_score",threshold:.7}];var XM="0123456789abcdef",$M=class t{constructor(A){this.bytes=A}static ofInner(A){if(A.length!==16)throw new TypeError("not 128-bit length");return new t(A)}static fromFieldsV7(A,e,i,n){if(!Number.isInteger(A)||!Number.isInteger(e)||!Number.isInteger(i)||!Number.isInteger(n)||A<0||e<0||i<0||n<0||A>0xffffffffffff||e>4095||i>1073741823||n>4294967295)throw new RangeError("invalid field value");let o=new Uint8Array(16);return o[0]=A/2**40,o[1]=A/2**32,o[2]=A/2**24,o[3]=A/2**16,o[4]=A/2**8,o[5]=A,o[6]=112|e>>>8,o[7]=e,o[8]=128|i>>>24,o[9]=i>>>16,o[10]=i>>>8,o[11]=i,o[12]=n>>>24,o[13]=n>>>16,o[14]=n>>>8,o[15]=n,new t(o)}static parse(A){var e,i,n,o;let r;switch(A.length){case 32:r=(e=/^[0-9a-f]{32}$/i.exec(A))===null||e===void 0?void 0:e[0];break;case 36:r=(i=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(A))===null||i===void 0?void 0:i.slice(1,6).join("");break;case 38:r=(n=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(A))===null||n===void 0?void 0:n.slice(1,6).join("");break;case 45:r=(o=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(A))===null||o===void 0?void 0:o.slice(1,6).join("");break;default:break}if(r){let s=new Uint8Array(16);for(let a=0;a<16;a+=4){let c=parseInt(r.substring(2*a,2*a+8),16);s[a+0]=c>>>24,s[a+1]=c>>>16,s[a+2]=c>>>8,s[a+3]=c}return new t(s)}else throw new SyntaxError("could not parse UUID string")}toString(){let A="";for(let e=0;e>>4),A+=XM.charAt(this.bytes[e]&15),(e===3||e===5||e===7||e===9)&&(A+="-");return A}toHex(){let A="";for(let e=0;e>>4),A+=XM.charAt(this.bytes[e]&15);return A}toJSON(){return this.toString()}getVariant(){let A=this.bytes[8]>>>4;if(A<0)throw new Error("unreachable");if(A<=7)return this.bytes.every(e=>e===0)?"NIL":"VAR_0";if(A<=11)return"VAR_10";if(A<=13)return"VAR_110";if(A<=15)return this.bytes.every(e=>e===255)?"MAX":"VAR_RESERVED";throw new Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new t(this.bytes.slice(0))}equals(A){return this.compareTo(A)===0}compareTo(A){for(let e=0;e<16;e++){let i=this.bytes[e]-A.bytes[e];if(i!==0)return Math.sign(i)}return 0}},gH=class{constructor(A){this.timestamp=0,this.counter=0,this.random=A??SeA()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(A,e){let i=this.generateOrAbortCore(A,e);return i===void 0&&(this.timestamp=0,i=this.generateOrAbortCore(A,e)),i}generateOrAbortCore(A,e){if(!Number.isInteger(A)||A<1||A>0xffffffffffff)throw new RangeError("`unixTsMs` must be a 48-bit positive integer");if(e<0||e>0xffffffffffff)throw new RangeError("`rollbackAllowance` out of reasonable range");if(A>this.timestamp)this.timestamp=A,this.resetCounter();else if(A+e>=this.timestamp)this.counter++,this.counter>4398046511103&&(this.timestamp++,this.resetCounter());else return;return $M.fromFieldsV7(this.timestamp,Math.trunc(this.counter/2**30),this.counter&2**30-1,this.random.nextUint32())}resetCounter(){this.counter=this.random.nextUint32()*1024+(this.random.nextUint32()&1023)}generateV4(){let A=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return A[6]=64|A[6]>>>4,A[8]=128|A[8]>>>2,$M.ofInner(A)}},SeA=()=>{if(typeof crypto<"u"&&typeof crypto.getRandomValues<"u")return new dH;if(typeof UUIDV7_DENY_WEAK_RNG<"u"&&UUIDV7_DENY_WEAK_RNG)throw new Error("no cryptographically strong RNG available");return{nextUint32:()=>Math.trunc(Math.random()*65536)*65536+Math.trunc(Math.random()*65536)}},dH=class{constructor(){this.buffer=new Uint32Array(8),this.cursor=65535}nextUint32(){return this.cursor>=this.buffer.length&&(crypto.getRandomValues(this.buffer),this.cursor=0),this.buffer[this.cursor++]}},MCe;var e9=()=>keA().toString(),keA=()=>(MCe||(MCe=new gH)).generateV4();var A9=class t{evalService=E(od);data=E(qo);dialogRef=E(co);newCaseId="case"+e9().slice(0,6);constructor(){}createNewEvalCase(){!this.newCaseId||this.newCaseId==""?alert("Cannot create eval set with empty id!"):this.evalService.addCurrentSession(this.data.appName,this.data.evalSetId,this.newCaseId,this.data.sessionId,this.data.userId).subscribe(A=>{this.dialogRef.close(!0)})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-add-eval-session-dialog"]],decls:11,vars:1,consts:[["mat-dialog-title",""],[2,"padding-left","20px","padding-right","24px"],["matInput","",3,"ngModelChange","keydown.enter","ngModel"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(e,i){e&1&&(m(0,"h2",0),T(1,"Add Current Session To Eval Set"),p(),m(2,"mat-dialog-content"),T(3,` Please enter the eval case name +`),p(),m(4,"mat-form-field",1)(5,"input",2),qn("ngModelChange",function(o){return Vn(i.newCaseId,o)||(i.newCaseId=o),o}),ee("keydown.enter",function(){return i.createNewEvalCase()}),p()(),m(6,"mat-dialog-actions",3)(7,"button",4),T(8,"Cancel"),p(),m(9,"button",5),ee("click",function(){return i.createNewEvalCase()}),T(10,"Create"),p()()),e&2&&(y(5),jn("ngModel",i.newCaseId))},dependencies:[tr,jr,ds,Gs,Kn,Mr,Fo,Cr,kr,Un,Jl],encapsulation:2})};var xeA={allEvalSetsHeader:"All eval sets",createNewEvalSetTooltip:"Create new evaluation set",createNewEvalSetTitle:"Create New Evaluation Set",evalSetDescription:"An evaluation set is a curated collection of evaluation cases, where each case includes input-output examples for assessing agent performance.",createEvalSetButton:"Create Evaluation Set",runEvaluationButton:"Run Evaluation",viewEvalRunHistoryTooltip:"View eval run history",caseIdHeader:"Case ID",resultHeader:"Result",viewEvalRunResultTooltip:"View eval run result",passStatus:"Pass",failStatus:"Fail",passStatusCaps:"PASS",failStatusCaps:"FAIL",passedSuffix:"Passed",failedSuffix:"Failed",addSessionToSetButtonPrefix:"Add current session to"},SCe=new re("Eval Tab Messages",{factory:()=>xeA});var t9=class t{evalService=E(od);data=E(qo);dialogRef=E(co);newSetId="evalset"+e9().slice(0,6);constructor(){}createNewEvalSet(){!this.newSetId||this.newSetId==""?alert("Cannot create eval set with empty id!"):this.evalService.createNewEvalSet(this.data.appName,this.newSetId).subscribe(A=>{this.dialogRef.close(!0)})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-new-eval-set-dialog-component"]],decls:11,vars:1,consts:[["mat-dialog-title",""],[2,"padding-left","20px","padding-right","24px"],["matInput","",3,"ngModelChange","keydown.enter","ngModel"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(e,i){e&1&&(m(0,"h2",0),T(1,"Create New Eval Set"),p(),m(2,"mat-dialog-content"),T(3,` Please enter the eval set name +`),p(),m(4,"mat-form-field",1)(5,"input",2),qn("ngModelChange",function(o){return Vn(i.newSetId,o)||(i.newSetId=o),o}),ee("keydown.enter",function(){return i.createNewEvalSet()}),p()(),m(6,"mat-dialog-actions",3)(7,"button",4),T(8,"Cancel"),p(),m(9,"button",5),ee("click",function(){return i.createNewEvalSet()}),T(10,"Create"),p()()),e&2&&(y(5),jn("ngModel",i.newSetId))},dependencies:[tr,jr,ds,Gs,Kn,Mr,Fo,Cr,kr,Un,Jl],encapsulation:2})};var _eA=["knob"],ReA=["valueIndicatorContainer"];function NeA(t,A){if(t&1&&(m(0,"div",2,1)(2,"div",5)(3,"span",6),T(4),p()()()),t&2){let e=M();y(4),Pe(e.valueIndicatorText)}}var LeA=["trackActive"],FeA=["*"];function GeA(t,A){if(t&1&&ve(0,"div"),t&2){let e=A.$implicit,i=A.$index,n=M(3);Lo(e===0?"mdc-slider__tick-mark--active":"mdc-slider__tick-mark--inactive"),cn("transform",n._calcTickMarkTransform(i))}}function KeA(t,A){if(t&1&&Rt(0,GeA,1,4,"div",8,b1),t&2){let e=M(2);Nt(e._tickMarks)}}function UeA(t,A){if(t&1&&(m(0,"div",6,1),ne(2,KeA,2,0),p()),t&2){let e=M();y(2),$(e._cachedWidth?2:-1)}}function TeA(t,A){if(t&1&&ve(0,"mat-slider-visual-thumb",7),t&2){let e=M();te("discrete",e.discrete)("thumbPosition",1)("valueIndicatorText",e.startValueIndicatorText)}}var bi=function(t){return t[t.START=1]="START",t[t.END=2]="END",t}(bi||{}),cQ=function(t){return t[t.ACTIVE=0]="ACTIVE",t[t.INACTIVE=1]="INACTIVE",t}(cQ||{}),CH=new re("_MatSlider"),kCe=new re("_MatSliderThumb"),OeA=new re("_MatSliderRangeThumb"),xCe=new re("_MatSliderVisualThumb");var JeA=(()=>{class t{_cdr=E(ut);_ngZone=E(yA);_slider=E(CH);_renderer=E(an);_listenerCleanups;discrete;thumbPosition;valueIndicatorText;_ripple;_knob;_valueIndicatorContainer;_sliderInput;_sliderInputEl;_hoverRippleRef;_focusRippleRef;_activeRippleRef;_isHovered=!1;_isActive=!1;_isValueIndicatorVisible=!1;_hostElement=E(eA).nativeElement;_platform=E(mi);constructor(){}ngAfterViewInit(){let e=this._slider._getInput(this.thumbPosition);e&&(this._ripple.radius=24,this._sliderInput=e,this._sliderInputEl=this._sliderInput._hostElement,this._ngZone.runOutsideAngular(()=>{let i=this._sliderInputEl,n=this._renderer;this._listenerCleanups=[n.listen(i,"pointermove",this._onPointerMove),n.listen(i,"pointerdown",this._onDragStart),n.listen(i,"pointerup",this._onDragEnd),n.listen(i,"pointerleave",this._onMouseLeave),n.listen(i,"focus",this._onFocus),n.listen(i,"blur",this._onBlur)]}))}ngOnDestroy(){this._listenerCleanups?.forEach(e=>e())}_onPointerMove=e=>{if(this._sliderInput._isFocused)return;let i=this._hostElement.getBoundingClientRect(),n=this._slider._isCursorOnSliderThumb(e,i);this._isHovered=n,n?this._showHoverRipple():this._hideRipple(this._hoverRippleRef)};_onMouseLeave=()=>{this._isHovered=!1,this._hideRipple(this._hoverRippleRef)};_onFocus=()=>{this._hideRipple(this._hoverRippleRef),this._showFocusRipple(),this._hostElement.classList.add("mdc-slider__thumb--focused")};_onBlur=()=>{this._isActive||this._hideRipple(this._focusRippleRef),this._isHovered&&this._showHoverRipple(),this._hostElement.classList.remove("mdc-slider__thumb--focused")};_onDragStart=e=>{e.button===0&&(this._isActive=!0,this._showActiveRipple())};_onDragEnd=()=>{this._isActive=!1,this._hideRipple(this._activeRippleRef),this._sliderInput._isFocused||this._hideRipple(this._focusRippleRef),this._platform.SAFARI&&this._showHoverRipple()};_showHoverRipple(){this._isShowingRipple(this._hoverRippleRef)||(this._hoverRippleRef=this._showRipple({enterDuration:0,exitDuration:0}),this._hoverRippleRef?.element.classList.add("mat-mdc-slider-hover-ripple"))}_showFocusRipple(){this._isShowingRipple(this._focusRippleRef)||(this._focusRippleRef=this._showRipple({enterDuration:0,exitDuration:0},!0),this._focusRippleRef?.element.classList.add("mat-mdc-slider-focus-ripple"))}_showActiveRipple(){this._isShowingRipple(this._activeRippleRef)||(this._activeRippleRef=this._showRipple({enterDuration:225,exitDuration:400}),this._activeRippleRef?.element.classList.add("mat-mdc-slider-active-ripple"))}_isShowingRipple(e){return e?.state===Xa.FADING_IN||e?.state===Xa.VISIBLE}_showRipple(e,i){if(!this._slider.disabled&&(this._showValueIndicator(),this._slider._isRange&&this._slider._getThumb(this.thumbPosition===bi.START?bi.END:bi.START)._showValueIndicator(),!(this._slider._globalRippleOptions?.disabled&&!i)))return this._ripple.launch({animation:this._slider._noopAnimations?{enterDuration:0,exitDuration:0}:e,centered:!0,persistent:!0})}_hideRipple(e){if(e?.fadeOut(),this._isShowingAnyRipple())return;this._slider._isRange||this._hideValueIndicator();let i=this._getSibling();i._isShowingAnyRipple()||(this._hideValueIndicator(),i._hideValueIndicator())}_showValueIndicator(){this._hostElement.classList.add("mdc-slider__thumb--with-indicator")}_hideValueIndicator(){this._hostElement.classList.remove("mdc-slider__thumb--with-indicator")}_getSibling(){return this._slider._getThumb(this.thumbPosition===bi.START?bi.END:bi.START)}_getValueIndicatorContainer(){return this._valueIndicatorContainer?.nativeElement}_getKnob(){return this._knob.nativeElement}_isShowingAnyRipple(){return this._isShowingRipple(this._hoverRippleRef)||this._isShowingRipple(this._focusRippleRef)||this._isShowingRipple(this._activeRippleRef)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-slider-visual-thumb"]],viewQuery:function(i,n){if(i&1&&(At(ec,5),At(_eA,5),At(ReA,5)),i&2){let o;oA(o=rA())&&(n._ripple=o.first),oA(o=rA())&&(n._knob=o.first),oA(o=rA())&&(n._valueIndicatorContainer=o.first)}},hostAttrs:[1,"mdc-slider__thumb","mat-mdc-slider-visual-thumb"],inputs:{discrete:"discrete",thumbPosition:"thumbPosition",valueIndicatorText:"valueIndicatorText"},features:[gt([{provide:xCe,useExisting:t}])],decls:4,vars:2,consts:[["knob",""],["valueIndicatorContainer",""],[1,"mdc-slider__value-indicator-container"],[1,"mdc-slider__thumb-knob"],["matRipple","",1,"mat-focus-indicator",3,"matRippleDisabled"],[1,"mdc-slider__value-indicator"],[1,"mdc-slider__value-indicator-text"]],template:function(i,n){i&1&&(ne(0,NeA,5,1,"div",2),ve(1,"div",3,0)(3,"div",4)),i&2&&($(n.discrete?0:-1),y(3),te("matRippleDisabled",!0))},dependencies:[ec],styles:[".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}"],encapsulation:2,changeDetection:0})}return t})(),_Ce=(()=>{class t{_ngZone=E(yA);_cdr=E(ut);_elementRef=E(eA);_dir=E(Do,{optional:!0});_globalRippleOptions=E(I2,{optional:!0});_trackActive;_thumbs;_input;_inputs;get disabled(){return this._disabled}set disabled(e){this._disabled=e;let i=this._getInput(bi.END),n=this._getInput(bi.START);i&&(i.disabled=this._disabled),n&&(n.disabled=this._disabled)}_disabled=!1;get discrete(){return this._discrete}set discrete(e){this._discrete=e,this._updateValueIndicatorUIs()}_discrete=!1;showTickMarks=!1;get min(){return this._min}set min(e){let i=isNaN(e)?this._min:e;this._min!==i&&this._updateMin(i)}_min=0;color;disableRipple=!1;_updateMin(e){let i=this._min;this._min=e,this._isRange?this._updateMinRange({old:i,new:e}):this._updateMinNonRange(e),this._onMinMaxOrStepChange()}_updateMinRange(e){let i=this._getInput(bi.END),n=this._getInput(bi.START),o=i.value,r=n.value;n.min=e.new,i.min=Math.max(e.new,n.value),n.max=Math.min(i.max,i.value),n._updateWidthInactive(),i._updateWidthInactive(),e.newe.old?this._onTranslateXChangeBySideEffect(n,i):this._onTranslateXChangeBySideEffect(i,n),o!==i.value&&this._onValueChange(i),r!==n.value&&this._onValueChange(n)}_updateMaxNonRange(e){let i=this._getInput(bi.END);if(i){let n=i.value;i.max=e,i._updateThumbUIByValue(),this._updateTrackUI(i),n!==i.value&&this._onValueChange(i)}}get step(){return this._step}set step(e){let i=isNaN(e)?this._step:e;this._step!==i&&this._updateStep(i)}_step=1;_updateStep(e){this._step=e,this._isRange?this._updateStepRange():this._updateStepNonRange(),this._onMinMaxOrStepChange()}_updateStepRange(){let e=this._getInput(bi.END),i=this._getInput(bi.START),n=e.value,o=i.value,r=i.value;e.min=this._min,i.max=this._max,e.step=this._step,i.step=this._step,this._platform.SAFARI&&(e.value=e.value,i.value=i.value),e.min=Math.max(this._min,i.value),i.max=Math.min(this._max,e.value),i._updateWidthInactive(),e._updateWidthInactive(),e.value`${e}`;_tickMarks;_noopAnimations;_dirChangeSubscription;_resizeObserver;_cachedWidth;_cachedLeft;_rippleRadius=24;startValueIndicatorText="";endValueIndicatorText="";_endThumbTransform;_startThumbTransform;_isRange=!1;_isRtl=!1;_hasViewInitialized=!1;_tickMarkTrackWidth=0;_hasAnimation=!1;_resizeTimer=null;_platform=E(mi);constructor(){E(Wn).load(Pr);let e=E(Oi,{optional:!0});this._noopAnimations=e==="NoopAnimations",this._dir&&(this._dirChangeSubscription=this._dir.change.subscribe(()=>this._onDirChange()),this._isRtl=this._dir.value==="rtl")}_knobRadius=8;_inputPadding;ngAfterViewInit(){this._platform.isBrowser&&this._updateDimensions();let e=this._getInput(bi.END),i=this._getInput(bi.START);this._isRange=!!e&&!!i,this._cdr.detectChanges();let n=this._getThumb(bi.END);this._rippleRadius=n._ripple.radius,this._inputPadding=this._rippleRadius-this._knobRadius,this._isRange?this._initUIRange(e,i):this._initUINonRange(e),this._updateTrackUI(e),this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._observeHostResize(),this._cdr.detectChanges()}_initUINonRange(e){e.initProps(),e.initUI(),this._updateValueIndicatorUI(e),this._hasViewInitialized=!0,e._updateThumbUIByValue()}_initUIRange(e,i){e.initProps(),e.initUI(),i.initProps(),i.initUI(),e._updateMinMax(),i._updateMinMax(),e._updateStaticStyles(),i._updateStaticStyles(),this._updateValueIndicatorUIs(),this._hasViewInitialized=!0,e._updateThumbUIByValue(),i._updateThumbUIByValue()}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._resizeObserver?.disconnect(),this._resizeObserver=null}_onDirChange(){this._isRtl=this._dir?.value==="rtl",this._isRange?this._onDirChangeRange():this._onDirChangeNonRange(),this._updateTickMarkUI()}_onDirChangeRange(){let e=this._getInput(bi.END),i=this._getInput(bi.START);e._setIsLeftThumb(),i._setIsLeftThumb(),e.translateX=e._calcTranslateXByValue(),i.translateX=i._calcTranslateXByValue(),e._updateStaticStyles(),i._updateStaticStyles(),e._updateWidthInactive(),i._updateWidthInactive(),e._updateThumbUIByValue(),i._updateThumbUIByValue()}_onDirChangeNonRange(){this._getInput(bi.END)._updateThumbUIByValue()}_observeHostResize(){typeof ResizeObserver>"u"||!ResizeObserver||this._ngZone.runOutsideAngular(()=>{this._resizeObserver=new ResizeObserver(()=>{this._isActive()||(this._resizeTimer&&clearTimeout(this._resizeTimer),this._onResize())}),this._resizeObserver.observe(this._elementRef.nativeElement)})}_isActive(){return this._getThumb(bi.START)._isActive||this._getThumb(bi.END)._isActive}_getValue(e=bi.END){let i=this._getInput(e);return i?i.value:this.min}_skipUpdate(){return!!(this._getInput(bi.START)?._skipUIUpdate||this._getInput(bi.END)?._skipUIUpdate)}_updateDimensions(){this._cachedWidth=this._elementRef.nativeElement.offsetWidth,this._cachedLeft=this._elementRef.nativeElement.getBoundingClientRect().left}_setTrackActiveStyles(e){let i=this._trackActive.nativeElement.style;i.left=e.left,i.right=e.right,i.transformOrigin=e.transformOrigin,i.transform=e.transform}_calcTickMarkTransform(e){let i=e*(this._tickMarkTrackWidth/(this._tickMarks.length-1));return`translateX(${this._isRtl?this._cachedWidth-6-i:i}px`}_onTranslateXChange(e){this._hasViewInitialized&&(this._updateThumbUI(e),this._updateTrackUI(e),this._updateOverlappingThumbUI(e))}_onTranslateXChangeBySideEffect(e,i){this._hasViewInitialized&&(e._updateThumbUIByValue(),i._updateThumbUIByValue())}_onValueChange(e){this._hasViewInitialized&&(this._updateValueIndicatorUI(e),this._updateTickMarkUI(),this._cdr.detectChanges())}_onMinMaxOrStepChange(){this._hasViewInitialized&&(this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.markForCheck())}_onResize(){if(this._hasViewInitialized){if(this._updateDimensions(),this._isRange){let e=this._getInput(bi.END),i=this._getInput(bi.START);e._updateThumbUIByValue(),i._updateThumbUIByValue(),e._updateStaticStyles(),i._updateStaticStyles(),e._updateMinMax(),i._updateMinMax(),e._updateWidthInactive(),i._updateWidthInactive()}else{let e=this._getInput(bi.END);e&&e._updateThumbUIByValue()}this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.detectChanges()}}_thumbsOverlap=!1;_areThumbsOverlapping(){let e=this._getInput(bi.START),i=this._getInput(bi.END);return!e||!i?!1:i.translateX-e.translateX<20}_updateOverlappingThumbClassNames(e){let i=e.getSibling(),n=this._getThumb(e.thumbPosition);this._getThumb(i.thumbPosition)._hostElement.classList.remove("mdc-slider__thumb--top"),n._hostElement.classList.toggle("mdc-slider__thumb--top",this._thumbsOverlap)}_updateOverlappingThumbUI(e){!this._isRange||this._skipUpdate()||this._thumbsOverlap!==this._areThumbsOverlapping()&&(this._thumbsOverlap=!this._thumbsOverlap,this._updateOverlappingThumbClassNames(e))}_updateThumbUI(e){if(this._skipUpdate())return;let i=this._getThumb(e.thumbPosition===bi.END?bi.END:bi.START);i._hostElement.style.transform=`translateX(${e.translateX}px)`}_updateValueIndicatorUI(e){if(this._skipUpdate())return;let i=this.displayWith(e.value);if(this._hasViewInitialized?e._valuetext.set(i):e._hostElement.setAttribute("aria-valuetext",i),this.discrete){e.thumbPosition===bi.START?this.startValueIndicatorText=i:this.endValueIndicatorText=i;let n=this._getThumb(e.thumbPosition);i.length<3?n._hostElement.classList.add("mdc-slider__thumb--short-value"):n._hostElement.classList.remove("mdc-slider__thumb--short-value")}}_updateValueIndicatorUIs(){let e=this._getInput(bi.END),i=this._getInput(bi.START);e&&this._updateValueIndicatorUI(e),i&&this._updateValueIndicatorUI(i)}_updateTickMarkTrackUI(){if(!this.showTickMarks||this._skipUpdate())return;let e=this._step&&this._step>0?this._step:1,n=(Math.floor(this.max/e)*e-this.min)/(this.max-this.min);this._tickMarkTrackWidth=(this._cachedWidth-6)*n}_updateTrackUI(e){this._skipUpdate()||(this._isRange?this._updateTrackUIRange(e):this._updateTrackUINonRange(e))}_updateTrackUIRange(e){let i=e.getSibling();if(!i||!this._cachedWidth)return;let n=Math.abs(i.translateX-e.translateX)/this._cachedWidth;e._isLeftThumb&&this._cachedWidth?this._setTrackActiveStyles({left:"auto",right:`${this._cachedWidth-i.translateX}px`,transformOrigin:"right",transform:`scaleX(${n})`}):this._setTrackActiveStyles({left:`${i.translateX}px`,right:"auto",transformOrigin:"left",transform:`scaleX(${n})`})}_updateTrackUINonRange(e){this._isRtl?this._setTrackActiveStyles({left:"auto",right:"0px",transformOrigin:"right",transform:`scaleX(${1-e.fillPercentage})`}):this._setTrackActiveStyles({left:"0px",right:"auto",transformOrigin:"left",transform:`scaleX(${e.fillPercentage})`})}_updateTickMarkUI(){if(!this.showTickMarks||this.step===void 0||this.min===void 0||this.max===void 0)return;let e=this.step>0?this.step:1;this._isRange?this._updateTickMarkUIRange(e):this._updateTickMarkUINonRange(e)}_updateTickMarkUINonRange(e){let i=this._getValue(),n=Math.max(Math.round((i-this.min)/e),0)+1,o=Math.max(Math.round((this.max-i)/e),0)-1;this._isRtl?n++:o++,this._tickMarks=Array(n).fill(cQ.ACTIVE).concat(Array(o).fill(cQ.INACTIVE))}_updateTickMarkUIRange(e){let i=this._getValue(),n=this._getValue(bi.START),o=Math.max(Math.round((n-this.min)/e),0),r=Math.max(Math.round((i-n)/e)+1,0),s=Math.max(Math.round((this.max-i)/e),0);this._tickMarks=Array(o).fill(cQ.INACTIVE).concat(Array(r).fill(cQ.ACTIVE),Array(s).fill(cQ.INACTIVE))}_getInput(e){if(e===bi.END&&this._input)return this._input;if(this._inputs?.length)return e===bi.START?this._inputs.first:this._inputs.last}_getThumb(e){return e===bi.END?this._thumbs?.last:this._thumbs?.first}_setTransition(e){this._hasAnimation=!this._platform.IOS&&e&&!this._noopAnimations,this._elementRef.nativeElement.classList.toggle("mat-mdc-slider-with-animation",this._hasAnimation)}_isCursorOnSliderThumb(e,i){let n=i.width/2,o=i.x+n,r=i.y+n,s=e.clientX-o,a=e.clientY-r;return Math.pow(s,2)+Math.pow(a,2)IH),multi:!0};var IH=(()=>{class t{_ngZone=E(yA);_elementRef=E(eA);_cdr=E(ut);_slider=E(CH);_platform=E(mi);_listenerCleanups;get value(){return ln(this._hostElement.value,0)}set value(e){e=isNaN(e)?0:e;let i=e+"";if(!this._hasSetInitialValue){this._initialValue=i;return}this._isActive||this._setValue(i)}_setValue(e){this._hostElement.value=e,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges(),this._slider._cdr.markForCheck()}valueChange=new Ve;dragStart=new Ve;dragEnd=new Ve;get translateX(){return this._slider.min>=this._slider.max?(this._translateX=this._tickMarkOffset,this._translateX):(this._translateX===void 0&&(this._translateX=this._calcTranslateXByValue()),this._translateX)}set translateX(e){this._translateX=e}_translateX;thumbPosition=bi.END;get min(){return ln(this._hostElement.min,0)}set min(e){this._hostElement.min=e+"",this._cdr.detectChanges()}get max(){return ln(this._hostElement.max,0)}set max(e){this._hostElement.max=e+"",this._cdr.detectChanges()}get step(){return ln(this._hostElement.step,0)}set step(e){this._hostElement.step=e+"",this._cdr.detectChanges()}get disabled(){return IA(this._hostElement.disabled)}set disabled(e){this._hostElement.disabled=e,this._cdr.detectChanges(),this._slider.disabled!==this.disabled&&(this._slider.disabled=this.disabled)}get percentage(){return this._slider.min>=this._slider.max?this._slider._isRtl?1:0:(this.value-this._slider.min)/(this._slider.max-this._slider.min)}get fillPercentage(){return this._slider._cachedWidth?this._translateX===0?0:this.translateX/this._slider._cachedWidth:this._slider._isRtl?1:0}_hostElement=this._elementRef.nativeElement;_valuetext=mA("");_knobRadius=8;_tickMarkOffset=3;_isActive=!1;_isFocused=!1;_setIsFocused(e){this._isFocused=e}_hasSetInitialValue=!1;_initialValue;_formControl;_destroyed=new je;_skipUIUpdate=!1;_onChangeFn;_onTouchedFn=()=>{};_isControlInitialized=!1;constructor(){let e=E(an);this._ngZone.runOutsideAngular(()=>{this._listenerCleanups=[e.listen(this._hostElement,"pointerdown",this._onPointerDown.bind(this)),e.listen(this._hostElement,"pointermove",this._onPointerMove.bind(this)),e.listen(this._hostElement,"pointerup",this._onPointerUp.bind(this))]})}ngOnDestroy(){this._listenerCleanups.forEach(e=>e()),this._destroyed.next(),this._destroyed.complete(),this.dragStart.complete(),this.dragEnd.complete()}initProps(){this._updateWidthInactive(),this.disabled!==this._slider.disabled&&(this._slider.disabled=!0),this.step=this._slider.step,this.min=this._slider.min,this.max=this._slider.max,this._initValue()}initUI(){this._updateThumbUIByValue()}_initValue(){this._hasSetInitialValue=!0,this._initialValue===void 0?this.value=this._getDefaultValue():(this._hostElement.value=this._initialValue,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges())}_getDefaultValue(){return this.min}_onBlur(){this._setIsFocused(!1),this._onTouchedFn()}_onFocus(){this._slider._setTransition(!1),this._slider._updateTrackUI(this),this._setIsFocused(!0)}_onChange(){this.valueChange.emit(this.value),this._isActive&&this._updateThumbUIByValue({withAnimation:!0})}_onInput(){this._onChangeFn?.(this.value),(this._slider.step||!this._isActive)&&this._updateThumbUIByValue({withAnimation:!0}),this._slider._onValueChange(this)}_onNgControlValueChange(){(!this._isActive||!this._isFocused)&&(this._slider._onValueChange(this),this._updateThumbUIByValue()),this._slider.disabled=this._formControl.disabled}_onPointerDown(e){if(!(this.disabled||e.button!==0)){if(this._platform.IOS){let i=this._slider._isCursorOnSliderThumb(e,this._slider._getThumb(this.thumbPosition)._hostElement.getBoundingClientRect());this._isActive=i,this._updateWidthActive(),this._slider._updateDimensions();return}this._isActive=!0,this._setIsFocused(!0),this._updateWidthActive(),this._slider._updateDimensions(),this._slider.step||this._updateThumbUIByPointerEvent(e,{withAnimation:!0}),this.disabled||(this._handleValueCorrection(e),this.dragStart.emit({source:this,parent:this._slider,value:this.value}))}}_handleValueCorrection(e){this._skipUIUpdate=!0,setTimeout(()=>{this._skipUIUpdate=!1,this._fixValue(e)},0)}_fixValue(e){let i=e.clientX-this._slider._cachedLeft,n=this._slider._cachedWidth,o=this._slider.step===0?1:this._slider.step,r=Math.floor((this._slider.max-this._slider.min)/o),s=this._slider._isRtl?1-i/n:i/n,c=Math.round(s*r)/r*(this._slider.max-this._slider.min)+this._slider.min,l=Math.round(c/o)*o,d=this.value;if(l===d){this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(e,{withAnimation:this._slider._hasAnimation});return}this.value=l,this.valueChange.emit(this.value),this._onChangeFn?.(this.value),this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(e,{withAnimation:this._slider._hasAnimation})}_onPointerMove(e){!this._slider.step&&this._isActive&&this._updateThumbUIByPointerEvent(e)}_onPointerUp(){this._isActive&&(this._isActive=!1,this._platform.SAFARI&&this._setIsFocused(!1),this.dragEnd.emit({source:this,parent:this._slider,value:this.value}),setTimeout(()=>this._updateWidthInactive(),this._platform.IOS?10:0))}_clamp(e){let i=this._tickMarkOffset,n=this._slider._cachedWidth-this._tickMarkOffset;return Math.max(Math.min(e,n),i)}_calcTranslateXByValue(){return this._slider._isRtl?(1-this.percentage)*(this._slider._cachedWidth-this._tickMarkOffset*2)+this._tickMarkOffset:this.percentage*(this._slider._cachedWidth-this._tickMarkOffset*2)+this._tickMarkOffset}_calcTranslateXByPointerEvent(e){return e.clientX-this._slider._cachedLeft}_updateWidthActive(){}_updateWidthInactive(){this._hostElement.style.padding=`0 ${this._slider._inputPadding}px`,this._hostElement.style.width=`calc(100% + ${this._slider._inputPadding-this._tickMarkOffset*2}px)`,this._hostElement.style.left=`-${this._slider._rippleRadius-this._tickMarkOffset}px`}_updateThumbUIByValue(e){this.translateX=this._clamp(this._calcTranslateXByValue()),this._updateThumbUI(e)}_updateThumbUIByPointerEvent(e,i){this.translateX=this._clamp(this._calcTranslateXByPointerEvent(e)),this._updateThumbUI(i)}_updateThumbUI(e){this._slider._setTransition(!!e?.withAnimation),this._slider._onTranslateXChange(this)}writeValue(e){(this._isControlInitialized||e!==null)&&(this.value=e)}registerOnChange(e){this._onChangeFn=e,this._isControlInitialized=!0}registerOnTouched(e){this._onTouchedFn=e}setDisabledState(e){this.disabled=e}focus(){this._hostElement.focus()}blur(){this._hostElement.blur()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["input","matSliderThumb",""]],hostAttrs:["type","range",1,"mdc-slider__input"],hostVars:1,hostBindings:function(i,n){i&1&&ee("change",function(){return n._onChange()})("input",function(){return n._onInput()})("blur",function(){return n._onBlur()})("focus",function(){return n._onFocus()}),i&2&&AA("aria-valuetext",n._valuetext())},inputs:{value:[2,"value","value",ln]},outputs:{valueChange:"valueChange",dragStart:"dragStart",dragEnd:"dragEnd"},exportAs:["matSliderThumb"],features:[gt([YeA,{provide:kCe,useExisting:t}])]})}return t})();var i9=class t{constructor(A,e,i){this.dialogRef=A;this.fb=e;this.data=i;this.evalMetrics=this.data.evalMetrics,this.evalForm=this.fb.group({tool_trajectory_avg_score_threshold:[this.getEvalMetricThresholdFromData("tool_trajectory_avg_score"),[ol.required,ol.min(0),ol.max(1)]],response_match_score_threshold:[this.getEvalMetricThresholdFromData("response_match_score"),[ol.required,ol.min(0),ol.max(1)]]})}evalForm;evalMetrics=[];getEvalMetricThresholdFromData(A){return this.evalMetrics.find(e=>e.metricName===A)?.threshold??0}onStart(){if(this.evalForm.valid){let{tool_trajectory_avg_score_threshold:A,response_match_score_threshold:e}=this.evalForm.value;for(let i of this.evalMetrics)i.metricName==="tool_trajectory_avg_score"?i.threshold=A:i.metricName==="response_match_score"&&(i.threshold=e);this.dialogRef.close(this.evalMetrics)}}onCancel(){this.dialogRef.close(null)}static \u0275fac=function(e){return new(e||t)(DA(co),DA(GZ),DA(qo))};static \u0275cmp=xe({type:t,selectors:[["app-run-eval-config-dialog"]],decls:26,vars:3,consts:[[1,"dialog-container"],["mat-dialog-title","",1,"dialog-title"],[1,"eval-form",3,"formGroup"],[1,"metric-row"],[1,"metric-name"],[1,"flex-1","pl-4"],["min","0","max","1","step","0.1","thumbLabel","",1,"threshold-slider"],["matSliderThumb","","formControlName","tool_trajectory_avg_score_threshold"],[1,"threshold-value"],["matSliderThumb","","formControlName","response_match_score_threshold"],["align","end",1,"dialog-actions"],["mat-button","",1,"cancel-button",3,"click"],["mat-button","",1,"save-button",3,"click"]],template:function(e,i){e&1&&(m(0,"div",0)(1,"h2",1),T(2,"EVALUATION METRIC"),p(),m(3,"mat-dialog-content")(4,"form",2)(5,"div",3)(6,"div",4),T(7,"Tool trajectory avg score: "),p(),m(8,"div",5)(9,"mat-slider",6),ve(10,"input",7),p(),m(11,"span",8),T(12),p()()(),m(13,"div",3)(14,"div",4),T(15,"Response match score: "),p(),m(16,"div",5)(17,"mat-slider",6),ve(18,"input",9),p(),m(19,"span",8),T(20),p()()()()(),m(21,"mat-dialog-actions",10)(22,"button",11),ee("click",function(){return i.onCancel()}),T(23,"Cancel"),p(),m(24,"button",12),ee("click",function(){return i.onStart()}),T(25,"Start"),p()()()),e&2&&(y(4),te("formGroup",i.evalForm),y(8),FA(" ",i.evalForm.controls.tool_trajectory_avg_score_threshold.value," "),y(8),FA(" ",i.evalForm.controls.response_match_score_threshold.value," "))},dependencies:[tr,jr,Kn,LZ,Mr,Fo,MZ,RB,jI,lN,_Ce,IH,kr,Un],styles:[".dialog-container[_ngcontent-%COMP%]{border-radius:12px;padding:18px;width:500px;box-shadow:0 8px 16px var(--run-eval-config-dialog-container-box-shadow-color)}.threshold-slider[_ngcontent-%COMP%]{--mdc-slider-active-track-color: var(--run-eval-config-dialog-threshold-slider-active-track-color);--mdc-slider-inactive-track-color: var(--run-eval-config-dialog-threshold-slider-inactive-track-color);--mdc-slider-handle-color: var(--run-eval-config-dialog-threshold-slider-handle-color);--mdc-slider-ripple-color: var(--run-eval-config-dialog-threshold-slider-ripple-color);width:100px}.metric-row[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center}.metric-name[_ngcontent-%COMP%]{width:250px}.threshold-value[_ngcontent-%COMP%]{margin-left:20px}.mdc-slider__thumb--with-indicator[_ngcontent-%COMP%]{background-color:var(--mdc-slider-handle-color, var(--run-eval-config-dialog-mdc-slider-thumb-background-color));border:none!important;box-shadow:none!important}"]})};function HeA(t,A){if(t&1){let e=Ue();m(0,"div",1)(1,"div"),T(2),p(),m(3,"mat-icon",2),ee("click",function(){q(e);let n=M();return W(n.openNewEvalSetDialog())}),T(4,"add"),p()()}if(t&2){let e=M();y(2),Pe(e.i18n.allEvalSetsHeader),y(),te("matTooltip",e.i18n.createNewEvalSetTooltip)}}function zeA(t,A){if(t&1){let e=Ue();m(0,"div")(1,"div",3)(2,"div",4),T(3),p(),m(4,"div",5),T(5),p(),m(6,"div",6),ee("click",function(){q(e);let n=M();return W(n.openNewEvalSetDialog())}),T(7),p()()()}if(t&2){let e=M();y(3),FA(" ",e.i18n.createNewEvalSetTitle," "),y(2),FA(" ",e.i18n.evalSetDescription," "),y(2),FA(" ",e.i18n.createEvalSetButton," ")}}function PeA(t,A){if(t&1){let e=Ue();m(0,"div",8),ee("click",function(){let n=q(e).$implicit,o=M(2);return W(o.selectEvalSet(n))}),m(1,"div",9)(2,"span",10),T(3,"folder"),p(),m(4,"div",11),T(5),p()(),m(6,"div")(7,"mat-icon",12),T(8,"chevron_right"),p()()()}if(t&2){let e=A.$implicit;y(5),Pe(e)}}function jeA(t,A){if(t&1&&(m(0,"div"),Rt(1,PeA,9,1,"div",7,Fi),p()),t&2){let e=M();y(),Nt(e.evalsets)}}function VeA(t,A){if(t&1){let e=Ue();m(0,"th",29)(1,"mat-checkbox",30),ee("change",function(n){q(e);let o=M(4);return W(n?o.toggleAllRows():null)}),p()()}if(t&2){let e=M(4);y(),te("checked",e.selection.hasValue()&&e.isAllSelected())("indeterminate",e.selection.hasValue()&&!e.isAllSelected())}}function qeA(t,A){if(t&1){let e=Ue();m(0,"td",31)(1,"mat-checkbox",32),ee("click",function(n){return q(e),W(n.stopPropagation())})("change",function(n){let o=q(e).$implicit,r=M(4);return W(n?r.selection.toggle(o):null)}),p()()}if(t&2){let e=A.$implicit,i=M(4);y(),te("checked",i.selection.isSelected(e))}}function WeA(t,A){if(t&1&&(m(0,"th",29),T(1),p()),t&2){let e=M(4);y(),FA(" ",e.i18n.caseIdHeader," ")}}function ZeA(t,A){if(t&1){let e=Ue();m(0,"td",33),ee("click",function(){let n=q(e).$implicit,o=M(4);return W(o.getEvalCase(n))}),T(1),p()}if(t&2){let e,i=A.$implicit,n=M(4);iA("selected-eval-case",i===((e=n.selectedEvalCase())==null?null:e.evalId)),y(),FA(" ",i," ")}}function XeA(t,A){if(t&1&&(m(0,"th",29),T(1),p()),t&2){let e=M(4);y(),FA(" ",e.i18n.resultHeader," ")}}function $eA(t,A){if(t&1){let e=Ue();m(0,"button",35),ee("click",function(){q(e);let n=M().$implicit,o=M(4);return W(o.getSession(n))}),m(1,"span",36),T(2),p(),m(3,"div",37),T(4),p()()}if(t&2){let e=M().$implicit,i=M(4);te("ngClass",i.getEvalResultForCase(e)==1?"result-btn pass":"result-btn fail")("matTooltip",i.i18n.viewEvalRunResultTooltip),y(2),FA(" ",i.getEvalResultForCase(e)==1?"check":"close"," "),y(2),FA("",i.getEvalResultForCase(e)==1?i.i18n.passStatus:i.i18n.failStatus," ")}}function eAA(t,A){if(t&1&&(m(0,"td",31),ne(1,$eA,5,4,"button",34),p()),t&2){let e=A.$implicit,i=M(4);y(),$(i.getEvalResultForCase(e)?1:-1)}}function AAA(t,A){t&1&&ve(0,"tr",38)}function tAA(t,A){t&1&&ve(0,"tr",39)}function iAA(t,A){if(t&1){let e=Ue();m(0,"div")(1,"div",16)(2,"button",17),ee("click",function(){q(e);let n=M(3);return W(n.openEvalConfigDialog())}),T(3),p(),m(4,"mat-icon",18),ee("click",function(){q(e);let n=M(3);return W(n.toggleEvalHistoryButton())}),T(5,"history"),p()(),m(6,"div",19)(7,"table",20),Qa(8,21),ne(9,VeA,2,2,"th",22)(10,qeA,2,1,"td",23),ma(),Qa(11,24),ne(12,WeA,2,1,"th",22)(13,ZeA,2,3,"td",25),ma(),Qa(14,26),ne(15,XeA,2,1,"th",22)(16,eAA,2,1,"td",23),ma(),ne(17,AAA,1,0,"tr",27)(18,tAA,1,0,"tr",28),p()()()}if(t&2){let e=M(3);y(3),Pe(e.i18n.runEvaluationButton),y(),te("matTooltip",e.i18n.viewEvalRunHistoryTooltip),y(3),te("dataSource",e.dataSource),y(10),te("matHeaderRowDef",e.displayedColumns),y(),te("matRowDefColumns",e.displayedColumns)}}function nAA(t,A){if(t&1&&(m(0,"div")(1,"span",50),T(2,"|"),p(),m(3,"span",51),T(4),p()()),t&2){let e=M().$implicit,i=M(4);y(4),el("",i.getFailCountForCurrentResult(e.evaluationResults.evaluationResults)," ",i.i18n.failedSuffix,"")}}function oAA(t,A){if(t&1&&(m(0,"span",52),T(1),p()),t&2){let e=A.$implicit;y(),el(" ",e.metricName,": ",e.threshold," ")}}function rAA(t,A){if(t&1&&(m(0,"div",46),Rt(1,oAA,2,2,"span",52,Fi),p()),t&2){let e=M().$implicit,i=M(4);y(),Nt(i.getEvalMetrics(e))}}function sAA(t,A){if(t&1){let e=Ue();m(0,"div")(1,"div",53)(2,"span"),T(3),p(),m(4,"button",54),ee("click",function(){let n=q(e).$implicit,o=M(6);return W(o.getHistorySession(n))}),m(5,"span",36),T(6),p(),m(7,"div",37),T(8),p()()()()}if(t&2){let e=A.$implicit,i=M(6);y(3),FA(" ",e.evalId," "),y(),te("ngClass",e.finalEvalStatus==1?"result-btn pass":"result-btn fail"),y(2),FA(" ",e.finalEvalStatus==1?"check":"close"," "),y(2),FA("",e.finalEvalStatus==1?i.i18n.passStatusCaps:i.i18n.failStatusCaps," ")}}function aAA(t,A){if(t&1&&(m(0,"div",49),Rt(1,sAA,9,4,"div",null,Fi),p()),t&2){let e=M().$implicit,i=M(4);y(),Nt(i.generateHistoryEvaluationDatasource(e.timestamp))}}function cAA(t,A){if(t&1){let e=Ue();m(0,"div")(1,"div",40)(2,"div",41)(3,"div",42)(4,"div",43),T(5),p(),m(6,"div",44)(7,"span",45),T(8),p(),ne(9,nAA,5,2,"div"),p(),ne(10,rAA,3,0,"div",46),p(),m(11,"div",47)(12,"mat-icon",48),ee("click",function(){let n=q(e).$implicit,o=M(4);return W(o.toggleHistoryStatusCard(n.timestamp))}),T(13),p()()(),ne(14,aAA,3,0,"div",49),p()()}if(t&2){let e=A.$implicit,i=M(4);y(5),Pe(i.formatTimestamp(e.timestamp)),y(3),el("",i.getPassCountForCurrentResult(e.evaluationResults.evaluationResults)," ",i.i18n.passedSuffix,""),y(),$(i.getFailCountForCurrentResult(e.evaluationResults.evaluationResults)>0?9:-1),y(),$(i.getEvalMetrics(e)?10:-1),y(3),Pe(i.getEvaluationStatusCardActionButtonIcon(e.timestamp)),y(),$(i.isEvaluationStatusCardToggled(e.timestamp)?14:-1)}}function lAA(t,A){if(t&1&&(m(0,"div"),Rt(1,cAA,15,7,"div",null,Fi),p()),t&2){let e=M(3);y(),Nt(e.getEvalHistoryOfCurrentSetSorted())}}function gAA(t,A){if(t&1&&(m(0,"div"),ne(1,iAA,19,5,"div")(2,lAA,3,0,"div"),p()),t&2){let e=M(2);y(),$(e.showEvalHistory()?-1:1),y(),$(e.showEvalHistory()?2:-1)}}function dAA(t,A){if(t&1){let e=Ue();m(0,"button",55),ee("click",function(){q(e);let n=M(2);return W(n.openNewEvalCaseDialog())}),m(1,"div",56)(2,"mat-icon"),T(3,"add"),p(),m(4,"div",57),T(5),p()()()}if(t&2){let e=M(2);y(5),el(" ",e.i18n.addSessionToSetButtonPrefix," ",e.selectedEvalSet," ")}}function CAA(t,A){t&1&&(m(0,"div"),ve(1,"mat-spinner",58),p()),t&2&&(y(),te("diameter",28)("strokeWidth",3))}function IAA(t,A){if(t&1){let e=Ue();m(0,"div")(1,"div",9)(2,"mat-icon",13),ee("click",function(){q(e);let n=M();return W(n.clearSelectedEvalSet())}),T(3,"chevron_left"),p(),m(4,"div",14),ee("click",function(){q(e);let n=M();return W(n.clearSelectedEvalSet())}),T(5),p()(),ne(6,gAA,3,2,"div")(7,dAA,6,2,"button",15)(8,CAA,2,2,"div"),p()}if(t&2){let e=M();y(5),FA(" ",e.selectedEvalSet," "),y(),$(e.evalCases.length>0&&!e.evalRunning()?6:-1),y(),$(!e.evalRunning()&&!e.showEvalHistory()?7:-1),y(),$(e.evalRunning()?8:-1)}}var n9=new re("EVAL_TAB_COMPONENT"),a0=class t{checkboxes=eW(Ih);appName=lt("");userId=lt("");sessionId=lt("");sessionSelected=No();shouldShowTab=No();evalNotInstalledMsg=No();evalCaseSelected=No();evalSetIdSelected=No();shouldReturnToSession=No();evalCasesSubject=new Mt([]);changeDetectorRef=E(ut);flagService=E(Ks);i18n=E(SCe);displayedColumns=["select","evalId","finalEvalStatus"];evalsets=[];selectedEvalSet="";evalCases=[];selectedEvalCase=mA(null);deletedEvalCaseIndex=-1;dataSource=new c6(this.evalCases);selection=new J1(!0,[]);showEvalHistory=mA(!1);evalRunning=mA(!1);evalMetrics=bCe;currentEvalResultBySet=new Map;dialog=E(na);appEvaluationResults={};evalService=E(od);sessionService=E(rd);constructor(){this.evalCasesSubject.subscribe(A=>{!this.selectedEvalCase()&&this.deletedEvalCaseIndex>=0&&A.length>0?(this.selectNewEvalCase(A),this.deletedEvalCaseIndex=-1):A.length===0&&this.shouldReturnToSession.emit(!0)})}ngOnChanges(A){A.appName&&(this.selectedEvalSet="",this.evalCases=[],this.getEvalSet(),this.getEvaluationResult())}ngOnInit(){}selectNewEvalCase(A){let e=this.deletedEvalCaseIndex;this.deletedEvalCaseIndex===A.length&&(e=0),this.getEvalCase(A[e])}getEvalSet(){this.appName()!==""&&this.evalService.getEvalSets(this.appName()).pipe(br(A=>A.status===404&&A.statusText==="Not Found"?(this.shouldShowTab.emit(!1),dA(null)):dA([]))).subscribe(A=>{A!==null&&(this.shouldShowTab.emit(!0),this.evalsets=A,this.changeDetectorRef.detectChanges())})}openNewEvalSetDialog(){this.dialog.open(t9,{width:"600px",data:{appName:this.appName()}}).afterClosed().subscribe(e=>{e&&(this.getEvalSet(),this.changeDetectorRef.detectChanges())})}openNewEvalCaseDialog(){this.dialog.open(A9,{width:"600px",data:{appName:this.appName(),userId:this.userId(),sessionId:this.sessionId(),evalSetId:this.selectedEvalSet}}).afterClosed().subscribe(e=>{e&&(this.listEvalCases(),this.changeDetectorRef.detectChanges())})}listEvalCases(){this.evalCases=[],this.evalService.listEvalCases(this.appName(),this.selectedEvalSet).subscribe(A=>{this.evalCases=A,this.dataSource=new c6(this.evalCases),this.evalCasesSubject.next(this.evalCases),this.changeDetectorRef.detectChanges()})}runEval(){if(this.evalRunning.set(!0),this.selection.selected.length==0){alert("No case selected!"),this.evalRunning.set(!1);return}this.evalService.runEval(this.appName(),this.selectedEvalSet,this.selection.selected,this.evalMetrics).pipe(br(A=>(A.error?.detail?.includes("not installed")&&this.evalNotInstalledMsg.emit(A.error.detail),dA([])))).subscribe(A=>{this.evalRunning.set(!1),this.currentEvalResultBySet.set(this.selectedEvalSet,A),this.getEvaluationResult(),this.changeDetectorRef.detectChanges()})}selectEvalSet(A){this.selectedEvalSet=A,this.listEvalCases()}clearSelectedEvalSet(){if(this.showEvalHistory()){this.toggleEvalHistoryButton();return}this.selectedEvalSet=""}isAllSelected(){let A=this.selection.selected.length,e=this.dataSource.data.length;return A===e}toggleAllRows(){if(this.isAllSelected()){this.selection.clear();return}this.selection.select(...this.dataSource.data)}getEvalResultForCase(A){let e=this.currentEvalResultBySet.get(this.selectedEvalSet)?.filter(i=>i.evalId==A);if(!(!e||e.length==0))return e[0].finalEvalStatus}formatToolUses(A){let e=[];for(let i of A)e.push({name:i.name,args:i.args});return e}addEvalCaseResultToEvents(A,e){let i=e.evalMetricResultPerInvocation,n=-1;if(i)for(let o=0;on.evalId==A)[0],i=e.sessionId;this.sessionService.getSession(this.userId(),this.appName(),i).subscribe(n=>{this.addEvalCaseResultToEvents(n,e);let o=this.fromApiResultToSession(n);this.sessionSelected.emit(o)})}toggleEvalHistoryButton(){this.showEvalHistory.set(!this.showEvalHistory())}getEvalHistoryOfCurrentSet(){return this.appEvaluationResults[this.appName()][this.selectedEvalSet]}getEvalHistoryOfCurrentSetSorted(){let A=this.getEvalHistoryOfCurrentSet();return Object.keys(A).sort((n,o)=>o.localeCompare(n)).map(n=>({timestamp:n,evaluationResults:A[n]}))}getPassCountForCurrentResult(A){return A.filter(e=>e.finalEvalStatus==1).length}getFailCountForCurrentResult(A){return A.filter(e=>e.finalEvalStatus==2).length}formatTimestamp(A){let e=Number(A);if(isNaN(e))return"Invalid timestamp provided";let i=new Date(e*1e3);if(isNaN(i.getTime()))return"Invalid date created from timestamp";let n={month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0};return new Intl.DateTimeFormat("en-US",n).format(i)}getEvaluationStatusCardActionButtonIcon(A){return this.getEvalHistoryOfCurrentSet()[A].isToggled?"keyboard_arrow_up":"keyboard_arrow_down"}toggleHistoryStatusCard(A){this.getEvalHistoryOfCurrentSet()[A].isToggled=!this.getEvalHistoryOfCurrentSet()[A].isToggled}isEvaluationStatusCardToggled(A){return this.getEvalHistoryOfCurrentSet()[A].isToggled}generateHistoryEvaluationDatasource(A){return this.getEvalHistoryOfCurrentSet()[A].evaluationResults}getHistorySession(A){this.addEvalCaseResultToEvents(A.sessionDetails,A);let e=this.fromApiResultToSession(A.sessionDetails);this.sessionSelected.emit(e)}getEvalCase(A){this.evalService.getEvalCase(this.appName(),this.selectedEvalSet,A).subscribe(e=>{this.selectedEvalCase.set(e),this.evalCaseSelected.emit(e),this.evalSetIdSelected.emit(this.selectedEvalSet)})}resetEvalCase(){this.selectedEvalCase.set(null)}resetEvalResults(){this.currentEvalResultBySet.clear()}deleteEvalCase(A){this.evalService.deleteEvalCase(this.appName(),this.selectedEvalSet,A).subscribe(e=>{this.deletedEvalCaseIndex=this.evalCases.indexOf(A),this.selectedEvalCase.set(null),this.listEvalCases(),this.changeDetectorRef.detectChanges()})}getEvaluationResult(){this.evalService.listEvalResults(this.appName()).pipe(br(A=>A.status===404&&A.statusText==="Not Found"?(this.shouldShowTab.emit(!1),dA(null)):dA([]))).subscribe(A=>{for(let e of A)this.evalService.getEvalResult(this.appName(),e).subscribe(i=>{this.appEvaluationResults[this.appName()]||(this.appEvaluationResults[this.appName()]={}),this.appEvaluationResults[this.appName()][i.evalSetId]||(this.appEvaluationResults[this.appName()][i.evalSetId]={});let n=i.creationTimestamp;this.appEvaluationResults[this.appName()][i.evalSetId][n]||(this.appEvaluationResults[this.appName()][i.evalSetId][n]={isToggled:!1,evaluationResults:[]});let o={isToggled:!1,evaluationResults:i.evalCaseResults.map(r=>({setId:r.id,evalId:r.evalId,finalEvalStatus:r.finalEvalStatus,evalMetricResults:r.evalMetricResults,evalMetricResultPerInvocation:r.evalMetricResultPerInvocation,sessionId:r.sessionId,sessionDetails:r.sessionDetails,overallEvalMetricResults:r.overallEvalMetricResults??[]}))};this.appEvaluationResults[this.appName()][i.evalSetId][n]=o,this.changeDetectorRef.detectChanges()})})}openEvalConfigDialog(){if(this.selection.selected.length==0){alert("No case selected!");return}this.dialog.open(i9,{maxWidth:"90vw",maxHeight:"90vh",data:{evalMetrics:this.evalMetrics}}).afterClosed().subscribe(e=>{e&&(this.evalMetrics=e,this.runEval())})}getEvalMetrics(A){if(!A||!A.evaluationResults||!A.evaluationResults.evaluationResults)return this.evalMetrics;let e=A.evaluationResults.evaluationResults;return e.length===0?this.evalMetrics:typeof e[0].overallEvalMetricResults>"u"||!e[0].overallEvalMetricResults||e[0].overallEvalMetricResults.length===0?this.evalMetrics:e[0].overallEvalMetricResults.map(n=>({metricName:n.metricName,threshold:n.threshold}))}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-eval-tab"]],viewQuery:function(e,i){e&1&&Kr(i.checkboxes,Ih,5),e&2&&Aa()},inputs:{appName:[1,"appName"],userId:[1,"userId"],sessionId:[1,"sessionId"]},outputs:{sessionSelected:"sessionSelected",shouldShowTab:"shouldShowTab",evalNotInstalledMsg:"evalNotInstalledMsg",evalCaseSelected:"evalCaseSelected",evalSetIdSelected:"evalSetIdSelected",shouldReturnToSession:"shouldReturnToSession"},features:[ti],decls:5,vars:4,consts:[[1,"eval-container"],[1,"eval-set-actions"],[2,"cursor","pointer",3,"click","matTooltip"],[1,"empty-eval-info"],[1,"info-title"],[1,"info-detail"],[1,"info-create",3,"click"],[1,"eval-set-row"],[1,"eval-set-row",3,"click"],[2,"display","flex"],[1,"material-symbols-outlined",2,"margin-right","10px","padding-top","16px"],[2,"font-family","Roboto","font-size","14px","padding","16px","padding-top","20px"],[2,"padding-top","20px","color","#9AA0A6"],[2,"color","white","cursor","pointer",3,"click"],[2,"color","#9AA0A6","padding-top","2px","cursor","pointer",3,"click"],[1,"save-session-btn"],[1,"evaluation-tab-header"],[1,"run-eval-btn",3,"click"],[1,"evaluation-history-icon",3,"click","matTooltip"],[1,"mat-table-container",2,"margin-top","16px"],["mat-table","",3,"dataSource"],["matColumnDef","select"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","evalId"],["mat-cell","","class","eval-case-id",3,"selected-eval-case","click",4,"matCellDef"],["matColumnDef","finalEvalStatus"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],[3,"change","checked","indeterminate"],["mat-cell",""],[3,"click","change","checked"],["mat-cell","",1,"eval-case-id",3,"click"],[3,"ngClass","matTooltip"],[3,"click","ngClass","matTooltip"],[1,"material-symbols-outlined"],[2,"padding-top","4px"],["mat-header-row",""],["mat-row",""],[1,"status-card"],[1,"status-card__overview"],[1,"status-card__info"],[1,"status-card__timestamp"],[1,"status-card__summary"],[1,"status-card__passed"],[1,"status-card__metrics"],[1,"status-card__action"],[3,"click"],[1,"status-card__history-cases"],[1,"status-card__separator"],[1,"status-card__failed"],[1,"status-card__metric"],[1,"status-card__history-case"],[3,"click","ngClass"],[1,"save-session-btn",3,"click"],[1,"save-session-btn-detail"],[1,"save-session-btn-text"],[1,"eval-spinner",3,"diameter","strokeWidth"]],template:function(e,i){e&1&&(m(0,"div",0),ne(1,HeA,5,2,"div",1)(2,zeA,8,3,"div")(3,jeA,3,0,"div")(4,IAA,9,4,"div"),p()),e&2&&(y(),$(i.selectedEvalSet==""?1:-1),y(),$(i.evalsets.length==0?2:-1),y(),$(i.evalsets.length>0&&i.selectedEvalSet==""?3:-1),y(),$(i.selectedEvalSet!=""?4:-1))},dependencies:[ir,Ma,BCe,QCe,fCe,mCe,Ih,ECe,pCe,ta,wCe,DCe,yCe,vCe,Z1],styles:[".eval-container[_ngcontent-%COMP%]{margin-top:20px;padding-left:25px;padding-right:25px}.eval-case-id[_ngcontent-%COMP%]{cursor:pointer}.eval-set-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between;color:var(--eval-tab-eval-set-actions-color);font-style:normal;font-weight:700;font-size:14px}.empty-eval-info[_ngcontent-%COMP%]{margin-top:12px;background-color:var(--eval-tab-empty-eval-info-background-color);border-radius:8px;box-shadow:0 2px 6px 2px var(--eval-tab-empty-eval-info-box-shadow-color1),0 1px 2px 0 var(--eval-tab-empty-eval-info-box-shadow-color2)}.info-title[_ngcontent-%COMP%]{color:var(--eval-tab-info-title-color);font-family:Roboto;font-size:14px;font-weight:500;padding-top:13px;padding-right:16px;padding-left:16px}.info-detail[_ngcontent-%COMP%]{color:var(--eval-tab-info-detail-color);font-family:Roboto;font-size:14px;font-weight:400;padding-top:13px;padding-right:16px;padding-left:16px;letter-spacing:.2px}.info-create[_ngcontent-%COMP%]{color:var(--eval-tab-info-create-color);font-size:14px;font-style:normal;font-weight:500;padding-right:16px;padding-left:16px;margin-top:19px;padding-bottom:16px;cursor:pointer}.eval-set-row[_ngcontent-%COMP%]{display:flex;justify-content:space-between;cursor:pointer}.selected-eval-case[_ngcontent-%COMP%]{font-weight:900;color:var(--eval-tab-selected-eval-case-color)}.save-session-btn[_ngcontent-%COMP%]{width:100%;background:linear-gradient(0deg,var(--eval-tab-save-session-btn-background-color1) 0%,var(--eval-tab-save-session-btn-background-color1) 100%),var(--eval-tab-save-session-btn-background-color2);border:none;border-radius:4px;margin-top:12px;cursor:pointer}.save-session-btn-detail[_ngcontent-%COMP%]{display:flex;padding:8px 16px 8px 12px;justify-content:center}.save-session-btn-text[_ngcontent-%COMP%]{padding-top:2px;color:var(--eval-tab-save-session-btn-text-color);font-family:Google Sans;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.run-eval-btn[_ngcontent-%COMP%]{border-radius:4px;border:1px solid var(--eval-tab-run-eval-btn-border-color);background-color:transparent;padding:8px 24px;margin-top:16px;color:var(--eval-tab-run-eval-btn-color);cursor:pointer}.run-eval-btn[_ngcontent-%COMP%]:hover{background-color:var(--eval-tab-run-eval-btn-hover-background-color)}.result-btn[_ngcontent-%COMP%]{display:flex;background-color:transparent;border-radius:4px;border:1px solid var(--eval-tab-result-btn-border-color);margin-top:4px;cursor:pointer}.result-btn[_ngcontent-%COMP%]:hover{background-color:var(--eval-tab-result-btn-hover-background-color)}.result-btn.pass[_ngcontent-%COMP%]{color:var(--eval-tab-result-btn-pass-color)}.result-btn.fail[_ngcontent-%COMP%]{color:var(--eval-tab-result-btn-fail-color)}.evaluation-tab-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%}.evaluation-history-icon[_ngcontent-%COMP%]{cursor:pointer;margin-top:4px}.status-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;border-radius:8px;background-color:var(--eval-tab-status-card-background-color);padding:12px 16px;margin-top:12px}.status-card__overview[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%}.status-card__info[_ngcontent-%COMP%]{display:flex;flex-direction:column}.status-card__timestamp[_ngcontent-%COMP%]{font-size:.9em;color:var(--eval-tab-status-card-timestamp-color);margin-bottom:5px}.status-card__summary[_ngcontent-%COMP%]{display:flex;align-items:center;font-size:.95em;font-weight:500}.status-card__metrics[_ngcontent-%COMP%]{display:flex;align-items:center;font-size:.75em;font-weight:300;margin-top:3px}.status-card__metric[_ngcontent-%COMP%]{width:180px;color:var(--eval-tab-status-card-metric-color)}.status-card__failed[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-failed-color)}.status-card__separator[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-separator-color);margin:0 8px}.status-card__passed[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-passed-color)}.status-card__action[_ngcontent-%COMP%]{display:flex;align-items:center}.status-card__action[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-action-mat-icon-color);cursor:pointer;transition:transform .2s ease-in-out}.status-card__action[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]:hover{opacity:.8}.status-card__action[_ngcontent-%COMP%] .status-card__icon[_ngcontent-%COMP%]{color:var(--eval-tab-status-card-icon-color);font-size:1.2em;cursor:pointer}.status-card__action[_ngcontent-%COMP%] .status-card__icon[_ngcontent-%COMP%]:hover{opacity:.8}.status-card__history-cases[_ngcontent-%COMP%]{display:flex;flex-direction:column;margin-top:3px;justify-content:flex-start;width:100%}.status-card__history-case[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:15px}.eval-spinner[_ngcontent-%COMP%]{margin-top:12px}"]})};var r9=new re("PendingEventService"),o9=class{};function uAA(t,A){t&1&&(m(0,"h2",0),T(1,"Events List"),p())}function hAA(t,A){t&1&&(m(0,"h2",0),T(1,"Send Response To Pending Event"),p())}function BAA(t,A){t&1&&(m(0,"h2",4),T(1,"Events List"),p())}function EAA(t,A){t&1&&(m(0,"h2",4),T(1,"Send Response To Pending Event"),p())}function fAA(t,A){if(t&1){let e=Ue();m(0,"div")(1,"p"),T(2,"Name"),p(),m(3,"p"),T(4),p(),m(5,"p"),T(6,"Args"),p(),m(7,"p"),T(8),p(),m(9,"mat-form-field",5)(10,"mat-label"),T(11,"Response"),p(),m(12,"textarea",6),qn("ngModelChange",function(n){q(e);let o=M();return Vn(o.selectedEvent.response,n)||(o.selectedEvent.response=n),W(n)}),p()()()}if(t&2){let e=M();y(4),Pe(e.selectedEvent.name),y(4),Pe(e.argsToJson(e.selectedEvent.args)),y(4),jn("ngModel",e.selectedEvent.response)}}function QAA(t,A){if(t&1){let e=Ue();m(0,"button",7),ee("click",function(){q(e);let n=M();return W(n.sendResponse())}),T(1),p()}if(t&2){let e=M();te("disabled",e.sending),y(),FA(" ",e.sending?"Sending...":"Send"," ")}}var s9=class t{dialogRef=E(co);data=E(qo);agentService=E(Hl);pendingEventService=E(r9);selectedEvent=this.data.event;appName=this.data.appName;userId=this.data.userId;sessionId=this.data.sessionId;functionCallEventId=this.data.functionCallEventId;sending=!1;response=[];constructor(){}argsToJson(A){return JSON.stringify(A)}sendResponse(){this.sending=!0;let A={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:[]},invocationId:this.data.invocationId};this.selectedEvent.response&&(A.functionCallEventId=this.functionCallEventId,A.newMessage.parts.push(this.pendingEventService.createFunctionResponse(this.selectedEvent.id,this.selectedEvent.name,{response:this.selectedEvent.response}))),this.agentService.runSse(A).subscribe({next:e=>Ci(this,null,function*(){this.response.push(e)}),error:e=>console.error("SSE error:",e),complete:()=>{this.sending=!1,this.dialogRef.close({response:this.response,events:[this.selectedEvent]})}})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-pending-event-dialog"]],decls:10,vars:6,consts:[["mat-dialog-title",""],["mat-dialog-title","","class","dialog-title",4,"ngIf"],["mat-button","",3,"disabled"],["mat-button","","mat-dialog-close",""],["mat-dialog-title","",1,"dialog-title"],["appearance","outline",1,"response-textarea"],["matInput","",3,"ngModelChange","ngModel"],["mat-button","",3,"click","disabled"]],template:function(e,i){e&1&&(ne(0,uAA,2,0,"h2",0)(1,hAA,2,0,"h2",0)(2,BAA,2,0,"h2",1)(3,EAA,2,0,"h2",1),m(4,"mat-dialog-content"),ne(5,fAA,13,3,"div"),p(),m(6,"mat-dialog-actions"),ne(7,QAA,2,2,"button",2),m(8,"button",3),T(9,"Close"),p()()),e&2&&($(i.selectedEvent?-1:0),y(),$(i.selectedEvent?1:-1),y(),te("ngIf",!i.selectedEvent),y(),te("ngIf",i.selectedEvent),y(2),$(i.selectedEvent?5:-1),y(2),$(i.selectedEvent&&i.selectedEvent.response?7:-1))},dependencies:[tr,bg,jr,ds,q0,Gs,Kn,Mr,Fo,Cr,kr,Un,Jl],styles:[".response-textarea[_ngcontent-%COMP%]{min-width:500px;margin-top:15px}.dialog-title[_ngcontent-%COMP%]{font-weight:700;font-size:large}"]})};var l6=class t{constructor(A,e){this.dialogRef=A;this.data=e}onConfirm(){this.dialogRef.close(!0)}onCancel(){this.dialogRef.close(!1)}static \u0275fac=function(e){return new(e||t)(DA(co),DA(qo))};static \u0275cmp=xe({type:t,selectors:[["app-delete-session-dialog"]],decls:11,vars:4,consts:[[1,"confirm-delete-wrapper"],["mat-dialog-title",""],["align","end"],["mat-button","",3,"click"],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(e,i){e&1&&(m(0,"div",0)(1,"h2",1),T(2),p(),m(3,"mat-dialog-content")(4,"p"),T(5),p()(),m(6,"mat-dialog-actions",2)(7,"button",3),ee("click",function(){return i.onCancel()}),T(8),p(),m(9,"button",4),ee("click",function(){return i.onConfirm()}),T(10),p()()()),e&2&&(y(2),Pe(i.data.title),y(3),Pe(i.data.message),y(3),Pe(i.data.cancelButtonText),y(2),Pe(i.data.confirmButtonText))},dependencies:[tr,jr,kr,Un],encapsulation:2})};var EH=["*"];function mAA(t,A){t&1&&NA(0)}var pAA=["tabListContainer"],wAA=["tabList"],yAA=["tabListInner"],DAA=["nextPaginator"],vAA=["previousPaginator"],bAA=t=>({animationDuration:t}),MAA=(t,A)=>({value:t,params:A});function SAA(t,A){}var kAA=["tabBodyWrapper"],xAA=["tabHeader"];function _AA(t,A){}function RAA(t,A){if(t&1&&ne(0,_AA,0,0,"ng-template",12),t&2){let e=M().$implicit;te("cdkPortalOutlet",e.templateLabel)}}function NAA(t,A){if(t&1&&T(0),t&2){let e=M().$implicit;Pe(e.textLabel)}}function LAA(t,A){if(t&1){let e=Ue();m(0,"div",7,2),ee("click",function(){let n=q(e),o=n.$implicit,r=n.$index,s=M(),a=Ji(1);return W(s._handleClick(o,a,r))})("cdkFocusChange",function(n){let o=q(e).$index,r=M();return W(r._tabFocusChanged(n,o))}),ve(2,"span",8)(3,"div",9),m(4,"span",10)(5,"span",11),ne(6,RAA,1,1,null,12)(7,NAA,1,1),p()()()}if(t&2){let e=A.$implicit,i=A.$index,n=Ji(1),o=M();Lo(e.labelClass),iA("mdc-tab--active",o.selectedIndex===i),te("id",o._getTabLabelId(i))("disabled",e.disabled)("fitInkBarToContent",o.fitInkBarToContent),AA("tabIndex",o._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",o._tabs.length)("aria-controls",o._getTabContentId(i))("aria-selected",o.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),y(3),te("matRippleTrigger",n)("matRippleDisabled",e.disabled||o.disableRipple),y(3),$(e.templateLabel?6:7)}}function FAA(t,A){t&1&&NA(0)}function GAA(t,A){if(t&1){let e=Ue();m(0,"mat-tab-body",13),ee("_onCentered",function(){q(e);let n=M();return W(n._removeTabBodyWrapperHeight())})("_onCentering",function(n){q(e);let o=M();return W(o._setTabBodyWrapperHeight(n))}),p()}if(t&2){let e=A.$implicit,i=A.$index,n=M();Lo(e.bodyClass),iA("mat-mdc-tab-body-active",n.selectedIndex===i),te("id",n._getTabContentId(i))("content",e.content)("position",e.position)("origin",e.origin)("animationDuration",n.animationDuration)("preserveContent",n.preserveContent),AA("tabindex",n.contentTabIndex!=null&&n.selectedIndex===i?n.contentTabIndex:null)("aria-labelledby",n._getTabLabelId(i))("aria-hidden",n.selectedIndex!==i)}}var KAA=new re("MatTabContent"),UAA=(()=>{class t{template=E(en);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","matTabContent",""]],features:[gt([{provide:KAA,useExisting:t}])]})}return t})(),TAA=new re("MatTabLabel"),LCe=new re("MAT_TAB"),fH=(()=>{class t extends AAe{_closestTab=E(LCe,{optional:!0});static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275dir=Oe({type:t,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[gt([{provide:TAA,useExisting:t}]),Ct]})}return t})(),FCe=new re("MAT_TAB_GROUP"),g6=(()=>{class t{_viewContainerRef=E(xn);_closestTabGroup=E(FCe,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new je;position=null;origin=null;isActive=!1;constructor(){E(Wn).load(Pr)}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new ba(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-tab"]],contentQueries:function(i,n,o){if(i&1&&(ni(o,fH,5),ni(o,UAA,7,en)),i&2){let r;oA(r=rA())&&(n.templateLabel=r.first),oA(r=rA())&&(n._explicitContent=r.first)}},viewQuery:function(i,n){if(i&1&&At(en,7),i&2){let o;oA(o=rA())&&(n._implicitContent=o.first)}},hostAttrs:["hidden",""],inputs:{disabled:[2,"disabled","disabled",IA],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},exportAs:["matTab"],features:[gt([{provide:LCe,useExisting:t}]),ti],ngContentSelectors:EH,decls:1,vars:0,template:function(i,n){i&1&&(Kt(),ne(0,mAA,1,0,"ng-template"))},encapsulation:2})}return t})(),uH="mdc-tab-indicator--active",RCe="mdc-tab-indicator--no-transition",hH=class{_items;_currentItem;constructor(A){this._items=A}hide(){this._items.forEach(A=>A.deactivateInkBar()),this._currentItem=void 0}alignToElement(A){let e=this._items.find(n=>n.elementRef.nativeElement===A),i=this._currentItem;if(e!==i&&(i?.deactivateInkBar(),e)){let n=i?.elementRef.nativeElement.getBoundingClientRect?.();e.activateInkBar(n),this._currentItem=e}}},OAA=(()=>{class t{_elementRef=E(eA);_inkBarElement;_inkBarContentElement;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(e){this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(e){let i=this._elementRef.nativeElement;if(!e||!i.getBoundingClientRect||!this._inkBarContentElement){i.classList.add(uH);return}let n=i.getBoundingClientRect(),o=e.width/n.width,r=e.left-n.left;i.classList.add(RCe),this._inkBarContentElement.style.setProperty("transform",`translateX(${r}px) scaleX(${o})`),i.getBoundingClientRect(),i.classList.remove(RCe),i.classList.add(uH),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(uH)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){let e=this._elementRef.nativeElement.ownerDocument||document,i=this._inkBarElement=e.createElement("span"),n=this._inkBarContentElement=e.createElement("span");i.className="mdc-tab-indicator",n.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",i.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){this._inkBarElement;let e=this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement;e.appendChild(this._inkBarElement)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",IA]}})}return t})();var GCe=(()=>{class t extends OAA{elementRef=E(eA);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275dir=Oe({type:t,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,n){i&2&&(AA("aria-disabled",!!n.disabled),iA("mat-mdc-tab-disabled",n.disabled))},inputs:{disabled:[2,"disabled","disabled",IA]},features:[Ct]})}return t})(),NCe={passive:!0},JAA=650,YAA=100,HAA=(()=>{class t{_elementRef=E(eA);_changeDetectorRef=E(ut);_viewportRuler=E(Ol);_dir=E(Do,{optional:!0});_ngZone=E(yA);_platform=E(mi);_sharedResizeObserver=E(Y5);_injector=E(Dt);_renderer=E(an);_animationMode=E(Oi,{optional:!0});_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new je;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged;_keyManager;_currentTextContent;_stopScrolling=new je;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){let i=isNaN(e)?0:e;this._selectedIndex!=i&&(this._selectedIndexChanged=!0,this._selectedIndex=i,this._keyManager&&this._keyManager.updateActiveItem(i))}_selectedIndex=0;selectFocusedIndex=new Ve;indexFocused=new Ve;constructor(){this._eventCleanups=this._ngZone.runOutsideAngular(()=>[this._renderer.listen(this._elementRef.nativeElement,"mouseleave",()=>this._stopInterval())])}ngAfterViewInit(){this._eventCleanups.push(hN(this._renderer,this._previousPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("before"),NCe),hN(this._renderer,this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),NCe))}ngAfterContentInit(){let e=this._dir?this._dir.change:dA("ltr"),i=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(Ws(32),mt(this._destroyed)),n=this._viewportRuler.change(150).pipe(mt(this._destroyed)),o=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new C2(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(this._selectedIndex),Gr(o,{injector:this._injector}),Bi(e,n,i,this._items.changes,this._itemsResized()).pipe(mt(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),o()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(r=>{this.indexFocused.emit(r),this._setTabFocus(r)})}_itemsResized(){return typeof ResizeObserver!="function"?vr:this._items.changes.pipe(In(this._items),Si(e=>new nt(i=>this._ngZone.runOutsideAngular(()=>{let n=new ResizeObserver(o=>i.next(o));return e.forEach(o=>n.observe(o.elementRef.nativeElement)),()=>{n.disconnect()}}))),Pa(1),$A(e=>e.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._eventCleanups.forEach(e=>e()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!Tr(e))switch(e.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){let i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(e))}break;default:this._keyManager.onKeydown(e)}}_onContentChanges(){let e=this._elementRef.nativeElement.textContent;e!==this._currentTextContent&&(this._currentTextContent=e||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(e){!this._isValidIndex(e)||this.focusIndex===e||!this._keyManager||this._keyManager.setActiveItem(e)}_isValidIndex(e){return this._items?!!this._items.toArray()[e]:!0}_setTabFocus(e){if(this._showPaginationControls&&this._scrollToLabel(e),this._items&&this._items.length){this._items.toArray()[e].focus();let i=this._tabListContainer.nativeElement;this._getLayoutDirection()=="ltr"?i.scrollLeft=0:i.scrollLeft=i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;let e=this.scrollDistance,i=this._getLayoutDirection()==="ltr"?-e:e;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(e){this._scrollTo(e)}_scrollHeader(e){let i=this._tabListContainer.nativeElement.offsetWidth,n=(e=="before"?-1:1)*i/3;return this._scrollTo(this._scrollDistance+n)}_handlePaginatorClick(e){this._stopInterval(),this._scrollHeader(e)}_scrollToLabel(e){if(this.disablePagination)return;let i=this._items?this._items.toArray()[e]:null;if(!i)return;let n=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:o,offsetWidth:r}=i.elementRef.nativeElement,s,a;this._getLayoutDirection()=="ltr"?(s=o,a=s+r):(a=this._tabListInner.nativeElement.offsetWidth-o,s=a-r);let c=this.scrollDistance,l=this.scrollDistance+n;sl&&(this.scrollDistance+=Math.min(a-l,s-c))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{let e=this._tabListInner.nativeElement.scrollWidth,i=this._elementRef.nativeElement.offsetWidth,n=e-i>=5;n||(this.scrollDistance=0),n!==this._showPaginationControls&&(this._showPaginationControls=n,this._changeDetectorRef.markForCheck())}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=this.scrollDistance==0,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){let e=this._tabListInner.nativeElement.scrollWidth,i=this._tabListContainer.nativeElement.offsetWidth;return e-i||0}_alignInkBarToSelectedTab(){let e=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=e?e.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(e,i){i&&i.button!=null&&i.button!==0||(this._stopInterval(),MI(JAA,YAA).pipe(mt(Bi(this._stopScrolling,this._destroyed))).subscribe(()=>{let{maxScrollDistance:n,distance:o}=this._scrollHeader(e);(o===0||o>=n)&&this._stopInterval()}))}_scrollTo(e){if(this.disablePagination)return{maxScrollDistance:0,distance:0};let i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,e)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,inputs:{disablePagination:[2,"disablePagination","disablePagination",IA],selectedIndex:[2,"selectedIndex","selectedIndex",ln]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return t})(),zAA=(()=>{class t extends HAA{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new hH(this._items),super.ngAfterContentInit()}_itemSelected(e){e.preventDefault()}static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275cmp=xe({type:t,selectors:[["mat-tab-header"]],contentQueries:function(i,n,o){if(i&1&&ni(o,GCe,4),i&2){let r;oA(r=rA())&&(n._items=r)}},viewQuery:function(i,n){if(i&1&&(At(pAA,7),At(wAA,7),At(yAA,7),At(DAA,5),At(vAA,5)),i&2){let o;oA(o=rA())&&(n._tabListContainer=o.first),oA(o=rA())&&(n._tabList=o.first),oA(o=rA())&&(n._tabListInner=o.first),oA(o=rA())&&(n._nextPaginator=o.first),oA(o=rA())&&(n._previousPaginator=o.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,n){i&2&&iA("mat-mdc-tab-header-pagination-controls-enabled",n._showPaginationControls)("mat-mdc-tab-header-rtl",n._getLayoutDirection()=="rtl")},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",IA]},features:[Ct],ngContentSelectors:EH,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(i,n){if(i&1){let o=Ue();Kt(),m(0,"div",5,0),ee("click",function(){return q(o),W(n._handlePaginatorClick("before"))})("mousedown",function(s){return q(o),W(n._handlePaginatorPress("before",s))})("touchend",function(){return q(o),W(n._stopInterval())}),ve(2,"div",6),p(),m(3,"div",7,1),ee("keydown",function(s){return q(o),W(n._handleKeydown(s))}),m(5,"div",8,2),ee("cdkObserveContent",function(){return q(o),W(n._onContentChanges())}),m(7,"div",9,3),NA(9),p()()(),m(10,"div",10,4),ee("mousedown",function(s){return q(o),W(n._handlePaginatorPress("after",s))})("click",function(){return q(o),W(n._handlePaginatorClick("after"))})("touchend",function(){return q(o),W(n._stopInterval())}),ve(12,"div",6),p()}i&2&&(iA("mat-mdc-tab-header-pagination-disabled",n._disableScrollBefore),te("matRippleDisabled",n._disableScrollBefore||n.disableRipple),y(3),iA("_mat-animation-noopable",n._animationMode==="NoopAnimations"),y(2),AA("aria-label",n.ariaLabel||null)("aria-labelledby",n.ariaLabelledby||null),y(5),iA("mat-mdc-tab-header-pagination-disabled",n._disableScrollAfter),te("matRippleDisabled",n._disableScrollAfter||n.disableRipple))},dependencies:[ec,y5],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height, 1px);border-bottom-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-header-divider-height, 1px);border-top-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mdc-secondary-navigation-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}"],encapsulation:2})}return t})(),PAA=new re("MAT_TABS_CONFIG"),jAA={translateTab:ll("translateTab",[tc("center, void, left-origin-center, right-origin-center",Vo({transform:"none",visibility:"visible"})),tc("left",Vo({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),tc("right",Vo({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),Fs("* => left, * => right, left => center, right => center",ia("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),Fs("void => left-origin-center",[Vo({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),ia("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),Fs("void => right-origin-center",[Vo({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),ia("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])},VAA=(()=>{class t extends bc{_host=E(KCe);_centeringSub=Ot.EMPTY;_leavingSub=Ot.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(In(this._host._isCenterPosition(this._host._position))).subscribe(e=>{this._host._content&&e&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","matTabBodyHost",""]],features:[Ct]})}return t})(),KCe=(()=>{class t{_elementRef=E(eA);_dir=E(Do,{optional:!0});_positionIndex;_dirChangeSubscription=Ot.EMPTY;_position;_translateTabComplete=new je;_onCentering=new Ve;_beforeCentering=new Ve;_afterLeavingCenter=new Ve;_onCentered=new Ve(!0);_portalHost;_content;origin;animationDuration="500ms";preserveContent=!1;set position(e){this._positionIndex=e,this._computePositionAnimationState()}constructor(){if(this._dir){let e=E(ut);this._dirChangeSubscription=this._dir.change.subscribe(i=>{this._computePositionAnimationState(i),e.markForCheck()})}this._translateTabComplete.subscribe(e=>{this._isCenterPosition(e.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(e.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}ngOnInit(){this._position=="center"&&this.origin!=null&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(e){let i=this._isCenterPosition(e.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_isCenterPosition(e){return e=="center"||e=="left-origin-center"||e=="right-origin-center"}_computePositionAnimationState(e=this._getLayoutDirection()){this._positionIndex<0?this._position=e=="ltr"?"left":"right":this._positionIndex>0?this._position=e=="ltr"?"right":"left":this._position="center"}_computePositionFromOrigin(e){let i=this._getLayoutDirection();return i=="ltr"&&e<=0||i=="rtl"&&e>0?"left-origin-center":"right-origin-center"}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-tab-body"]],viewQuery:function(i,n){if(i&1&&At(bc,5),i&2){let o;oA(o=rA())&&(n._portalHost=o.first)}},hostAttrs:[1,"mat-mdc-tab-body"],inputs:{_content:[0,"content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(i,n){if(i&1){let o=Ue();m(0,"div",1,0),ee("@translateTab.start",function(s){return q(o),W(n._onTranslateTabStarted(s))})("@translateTab.done",function(s){return q(o),W(n._translateTabComplete.next(s))}),ne(2,SAA,0,0,"ng-template",2),p()}i&2&&te("@translateTab",tl(3,MAA,n._position,Al(1,bAA,n.animationDuration)))},dependencies:[VAA,f2],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[jAA.translateTab]}})}return t})(),qAA=!0,a9=(()=>{class t{_elementRef=E(eA);_changeDetectorRef=E(ut);_animationMode=E(Oi,{optional:!0});_allTabs;_tabBodyWrapper;_tabHeader;_tabs=new qa;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;_tabsSubscription=Ot.EMPTY;_tabLabelSubscription=Ot.EMPTY;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=e,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=isNaN(e)?null:e}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(e){let i=e+"";this._animationDuration=/^\d+$/.test(i)?e+"ms":i}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=isNaN(e)?null:e}_contentTabIndex;disablePagination=!1;disableRipple=!1;preserveContent=!1;get backgroundColor(){return this._backgroundColor}set backgroundColor(e){if(!qAA)throw new Error("mat-tab-group background color must be set through the Sass theming API");let i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),e&&i.add("mat-tabs-with-background",`mat-background-${e}`),this._backgroundColor=e}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new Ve;focusChange=new Ve;animationDone=new Ve;selectedTabChange=new Ve(!0);_groupId;_isServer=!E(mi).isBrowser;constructor(){let e=E(PAA,{optional:!0});this._groupId=E(un).getId("mat-tab-group-"),this.animationDuration=e&&e.animationDuration?e.animationDuration:"500ms",this.disablePagination=e&&e.disablePagination!=null?e.disablePagination:!1,this.dynamicHeight=e&&e.dynamicHeight!=null?e.dynamicHeight:!1,e?.contentTabIndex!=null&&(this.contentTabIndex=e.contentTabIndex),this.preserveContent=!!e?.preserveContent,this.fitInkBarToContent=e&&e.fitInkBarToContent!=null?e.fitInkBarToContent:!1,this.stretchTabs=e&&e.stretchTabs!=null?e.stretchTabs:!0,this.alignTabs=e&&e.alignTabs!=null?e.alignTabs:null}ngAfterContentChecked(){let e=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=e){let i=this._selectedIndex==null;if(!i){this.selectedTabChange.emit(this._createChangeEvent(e));let n=this._tabBodyWrapper.nativeElement;n.style.minHeight=n.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((n,o)=>n.isActive=o===e),i||(this.selectedIndexChange.emit(e),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,n)=>{i.position=n-e,this._selectedIndex!=null&&i.position==0&&!i.origin&&(i.origin=e-this._selectedIndex)}),this._selectedIndex!==e&&(this._selectedIndex=e,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{let e=this._clampTabIndex(this._indexToSelect);if(e===this._selectedIndex){let i=this._tabs.toArray(),n;for(let o=0;o{i[e].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(e))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(In(this._allTabs)).subscribe(e=>{this._tabs.reset(e.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(e){let i=this._tabHeader;i&&(i.focusIndex=e)}_focusChanged(e){this._lastFocusedTabIndex=e,this.focusChange.emit(this._createChangeEvent(e))}_createChangeEvent(e){let i=new BH;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=Bi(...this._tabs.map(e=>e._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(e){return Math.min(this._tabs.length-1,Math.max(e||0,0))}_getTabLabelId(e){return`${this._groupId}-label-${e}`}_getTabContentId(e){return`${this._groupId}-content-${e}`}_setTabBodyWrapperHeight(e){if(!this.dynamicHeight||!this._tabBodyWrapperHeight)return;let i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=e+"px")}_removeTabBodyWrapperHeight(){let e=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=e.clientHeight,e.style.height="",this.animationDone.emit()}_handleClick(e,i,n){i.focusIndex=n,e.disabled||(this.selectedIndex=n)}_getTabIndex(e){let i=this._lastFocusedTabIndex??this.selectedIndex;return e===i?0:-1}_tabFocusChanged(e,i){e&&e!=="mouse"&&e!=="touch"&&(this._tabHeader.focusIndex=i)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-tab-group"]],contentQueries:function(i,n,o){if(i&1&&ni(o,g6,5),i&2){let r;oA(r=rA())&&(n._allTabs=r)}},viewQuery:function(i,n){if(i&1&&(At(kAA,5),At(xAA,5)),i&2){let o;oA(o=rA())&&(n._tabBodyWrapper=o.first),oA(o=rA())&&(n._tabHeader=o.first)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(i,n){i&2&&(AA("mat-align-tabs",n.alignTabs),Lo("mat-"+(n.color||"primary")),cn("--mat-tab-animation-duration",n.animationDuration),iA("mat-mdc-tab-group-dynamic-height",n.dynamicHeight)("mat-mdc-tab-group-inverted-header",n.headerPosition==="below")("mat-mdc-tab-group-stretch-tabs",n.stretchTabs))},inputs:{color:"color",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",IA],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",IA],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",IA],selectedIndex:[2,"selectedIndex","selectedIndex",ln],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",ln],disablePagination:[2,"disablePagination","disablePagination",IA],disableRipple:[2,"disableRipple","disableRipple",IA],preserveContent:[2,"preserveContent","preserveContent",IA],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[gt([{provide:FCe,useExisting:t}])],ngContentSelectors:EH,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","mat-mdc-tab-body-active","class","content","position","origin","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","id","content","position","origin","animationDuration","preserveContent"]],template:function(i,n){if(i&1){let o=Ue();Kt(),m(0,"mat-tab-header",3,0),ee("indexFocused",function(s){return q(o),W(n._focusChanged(s))})("selectFocusedIndex",function(s){return q(o),W(n.selectedIndex=s)}),Rt(2,LAA,8,17,"div",4,Fi),p(),ne(4,FAA,1,0),m(5,"div",5,1),Rt(7,GAA,1,13,"mat-tab-body",6,Fi),p()}i&2&&(te("selectedIndex",n.selectedIndex||0)("disableRipple",n.disableRipple)("disablePagination",n.disablePagination)("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby),y(2),Nt(n._tabs),y(2),$(n._isServer?4:-1),y(),iA("_mat-animation-noopable",n._animationMode==="NoopAnimations"),y(2),Nt(n._tabs))},dependencies:[zAA,GCe,eX,ec,bc,KCe],styles:['.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mdc-secondary-navigation-tab-container-height, 48px);font-family:var(--mat-tab-header-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-header-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-header-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-header-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-header-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-tab-indicator-active-indicator-height, 2px);border-radius:var(--mdc-tab-indicator-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2})}return t})(),BH=class{index;tab};var c9=new re("LOGO_COMPONENT");function WAA(t,A){t&1&&ve(0,"div",6)}function ZAA(t,A){if(t&1&&(m(0,"div",3)(1,"div",5),Rt(2,WAA,1,0,"div",6,b1),p(),m(4,"span",7),T(5),p(),m(6,"div",8),T(7),m(8,"span",9),T(9),p()(),m(10,"div",10)(11,"div",11),T(12),p()()()),t&2){let e=A.$implicit,i=M();y(2),Nt(i.getArray(e.level)),y(3),FA(" ",i.getSpanIcon(e.span.name)," "),y(),cn("width",400-e.level*20,"px"),y(),FA(" ",e.span.name," "),y(2),FA(" (",(i.toMs(e.span.end_time)-i.toMs(e.span.start_time)).toFixed(2),"ms) "),y(2),cn("left",i.getRelativeStart(e.span),"%")("width",i.getRelativeWidth(e.span),"%"),y(),FA(" ",(i.toMs(e.span.end_time)-i.toMs(e.span.start_time)).toFixed(2),"ms ")}}var l9=class t{constructor(A,e){this.dialogRef=A;this.data=e}tree=[];baseStartTimeMs=0;totalDurationMs=1;flatTree=[];traceLabelIconMap=new Map([["Invocation","start"],["agent_run","directions_run"],["invoke_agent","directions_run"],["tool","build"],["call_llm","chat"]]);ngOnInit(){this.tree=this.buildSpanTree(this.data.spans),this.flatTree=this.flattenTree(this.tree);let A=this.getGlobalTimes(this.data.spans);this.baseStartTimeMs=A.start,this.totalDurationMs=A.duration}buildSpanTree(A){let e=A.map(o=>ae({},o)),i=new Map,n=[];return e.forEach(o=>i.set(o.span_id,o)),e.forEach(o=>{if(o.parent_span_id&&i.has(o.parent_span_id)){let r=i.get(o.parent_span_id);r.children=r.children||[],r.children.push(o)}else n.push(o)}),n}getGlobalTimes(A){let e=Math.min(...A.map(n=>this.toMs(n.start_time))),i=Math.max(...A.map(n=>this.toMs(n.end_time)));return{start:e,duration:i-e}}toMs(A){return A/1e6}getRelativeStart(A){return(this.toMs(A.start_time)-this.baseStartTimeMs)/this.totalDurationMs*100}getRelativeWidth(A){return(this.toMs(A.end_time)-this.toMs(A.start_time))/this.totalDurationMs*100}flattenTree(A,e=0){return A.flatMap(n=>[{span:n,level:e},...n.children?this.flattenTree(n.children,e+1):[]])}getSpanIcon(A){for(let[e,i]of this.traceLabelIconMap.entries())if(A.startsWith(e))return i;return"start"}getArray(A){return Array.from({length:A})}static \u0275fac=function(e){return new(e||t)(DA(co),DA(qo))};static \u0275cmp=xe({type:t,selectors:[["app-trace-chart"]],decls:9,vars:1,consts:[["mat-dialog-title",""],[2,"margin-top","8px"],[1,"trace-container"],[1,"trace-row"],["mat-button","","mat-dialog-close",""],[1,"trace-indent"],[1,"indent-connector"],[1,"material-symbols-outlined",2,"margin-right","8px"],[1,"trace-label"],[1,"trace-duration"],[1,"trace-bar-container"],[1,"trace-bar"]],template:function(e,i){e&1&&(m(0,"h2",0),T(1),p(),m(2,"mat-dialog-content",1)(3,"div",2),Rt(4,ZAA,13,10,"div",3,Fi),p()(),m(6,"mat-dialog-actions")(7,"button",4),T(8,"Close"),p()()),e&2&&(y(),FA("Invocation ",i.data.invocId,""),y(3),Nt(i.flatTree))},dependencies:[tr,jr,kr,Un,Jl],styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-label[_ngcontent-%COMP%]{width:400px;color:var(--trace-chart-trace-label-color);text-overflow:ellipsis;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px}.trace-bar-container[_ngcontent-%COMP%]{width:50vw;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:var(--trace-chart-trace-bar-background-color);border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:var(--trace-chart-trace-bar-color);font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:var(--trace-chart-trace-duration-color);font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:var(--trace-chart-vertical-line-background-color)}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:var(--trace-chart-horizontal-line-background-color)}"]})};var XAA=["button"],$AA=["*"];function etA(t,A){if(t&1&&(m(0,"div",2),ve(1,"mat-pseudo-checkbox",6),p()),t&2){let e=M();y(),te("disabled",e.disabled)}}var UCe=new re("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:AtA});function AtA(){return{hideSingleSelectionIndicator:!1,hideMultipleSelectionIndicator:!1,disabledInteractive:!1}}var TCe=new re("MatButtonToggleGroup"),ttA={provide:sl,useExisting:zr(()=>QH),multi:!0},g9=class{source;value;constructor(A,e){this.source=A,this.value=e}},QH=(()=>{class t{_changeDetector=E(ut);_dir=E(Do,{optional:!0});_multiple=!1;_disabled=!1;_disabledInteractive=!1;_selectionModel;_rawValue;_controlValueAccessorChangeFn=()=>{};_onTouched=()=>{};_buttonToggles;appearance;get name(){return this._name}set name(e){this._name=e,this._markButtonsForCheck()}_name=E(un).getId("mat-button-toggle-group-");vertical;get value(){let e=this._selectionModel?this._selectionModel.selected:[];return this.multiple?e.map(i=>i.value):e[0]?e[0].value:void 0}set value(e){this._setSelectionByValue(e),this.valueChange.emit(this.value)}valueChange=new Ve;get selected(){let e=this._selectionModel?this._selectionModel.selected:[];return this.multiple?e:e[0]||null}get multiple(){return this._multiple}set multiple(e){this._multiple=e,this._markButtonsForCheck()}get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._markButtonsForCheck()}get disabledInteractive(){return this._disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e,this._markButtonsForCheck()}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}change=new Ve;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._markButtonsForCheck()}_hideSingleSelectionIndicator;get hideMultipleSelectionIndicator(){return this._hideMultipleSelectionIndicator}set hideMultipleSelectionIndicator(e){this._hideMultipleSelectionIndicator=e,this._markButtonsForCheck()}_hideMultipleSelectionIndicator;constructor(){let e=E(UCe,{optional:!0});this.appearance=e&&e.appearance?e.appearance:"standard",this.hideSingleSelectionIndicator=e?.hideSingleSelectionIndicator??!1,this.hideMultipleSelectionIndicator=e?.hideMultipleSelectionIndicator??!1}ngOnInit(){this._selectionModel=new J1(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(e=>e.checked)),this.multiple||this._initializeTabIndex()}writeValue(e){this.value=e,this._changeDetector.markForCheck()}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}_keydown(e){if(this.multiple||this.disabled)return;let n=e.target.id,o=this._buttonToggles.toArray().findIndex(s=>s.buttonId===n),r=null;switch(e.keyCode){case 32:case 13:r=this._buttonToggles.get(o)||null;break;case 38:r=this._getNextButton(o,-1);break;case 37:r=this._getNextButton(o,this.dir==="ltr"?-1:1);break;case 40:r=this._getNextButton(o,1);break;case 39:r=this._getNextButton(o,this.dir==="ltr"?1:-1);break;default:return}r&&(e.preventDefault(),r._onButtonClick(),r.focus())}_emitChangeEvent(e){let i=new g9(e,this.value);this._rawValue=i.value,this._controlValueAccessorChangeFn(i.value),this.change.emit(i)}_syncButtonToggle(e,i,n=!1,o=!1){!this.multiple&&this.selected&&!e.checked&&(this.selected.checked=!1),this._selectionModel?i?this._selectionModel.select(e):this._selectionModel.deselect(e):o=!0,o?Promise.resolve().then(()=>this._updateModelValue(e,n)):this._updateModelValue(e,n)}_isSelected(e){return this._selectionModel&&this._selectionModel.isSelected(e)}_isPrechecked(e){return typeof this._rawValue>"u"?!1:this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some(i=>e.value!=null&&i===e.value):e.value===this._rawValue}_initializeTabIndex(){if(this._buttonToggles.forEach(e=>{e.tabIndex=-1}),this.selected)this.selected.tabIndex=0;else for(let e=0;ethis._selectValue(n,i))):(this._clearSelection(),this._selectValue(e,i)),!this.multiple&&i.every(n=>n.tabIndex===-1)){for(let n of i)if(!n.disabled){n.tabIndex=0;break}}}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(e=>{e.checked=!1,this.multiple||(e.tabIndex=-1)})}_selectValue(e,i){for(let n of i)if(n.value===e){n.checked=!0,this._selectionModel.select(n),this.multiple||(n.tabIndex=0);break}}_updateModelValue(e,i){i&&this._emitChangeEvent(e),this.valueChange.emit(this.value)}_markButtonsForCheck(){this._buttonToggles?.forEach(e=>e._markForCheck())}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["mat-button-toggle-group"]],contentQueries:function(i,n,o){if(i&1&&ni(o,mH,5),i&2){let r;oA(r=rA())&&(n._buttonToggles=r)}},hostAttrs:[1,"mat-button-toggle-group"],hostVars:6,hostBindings:function(i,n){i&1&&ee("keydown",function(r){return n._keydown(r)}),i&2&&(AA("role",n.multiple?"group":"radiogroup")("aria-disabled",n.disabled),iA("mat-button-toggle-vertical",n.vertical)("mat-button-toggle-group-appearance-standard",n.appearance==="standard"))},inputs:{appearance:"appearance",name:"name",vertical:[2,"vertical","vertical",IA],value:"value",multiple:[2,"multiple","multiple",IA],disabled:[2,"disabled","disabled",IA],disabledInteractive:[2,"disabledInteractive","disabledInteractive",IA],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",IA],hideMultipleSelectionIndicator:[2,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",IA]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],features:[gt([ttA,{provide:TCe,useExisting:t}])]})}return t})(),mH=(()=>{class t{_changeDetectorRef=E(ut);_elementRef=E(eA);_focusMonitor=E(ns);_idGenerator=E(un);_animationMode=E(Oi,{optional:!0});_checked=!1;ariaLabel;ariaLabelledby=null;_buttonElement;buttonToggleGroup;get buttonId(){return`${this.id}-button`}id;name;value;get tabIndex(){return this._tabIndex}set tabIndex(e){e!==this._tabIndex&&(this._tabIndex=e,this._markForCheck())}_tabIndex;disableRipple;get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(e){this._appearance=e}_appearance;get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(e){e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(e){this._disabled=e}_disabled=!1;get disabledInteractive(){return this._disabledInteractive||this.buttonToggleGroup!==null&&this.buttonToggleGroup.disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e}_disabledInteractive;change=new Ve;constructor(){E(Wn).load(Pr);let e=E(TCe,{optional:!0}),i=E(new ws("tabindex"),{optional:!0})||"",n=E(UCe,{optional:!0});this._tabIndex=parseInt(i)||0,this.buttonToggleGroup=e,this.appearance=n&&n.appearance?n.appearance:"standard",this.disabledInteractive=n?.disabledInteractive??!1}ngOnInit(){let e=this.buttonToggleGroup;this.id=this.id||this._idGenerator.getId("mat-button-toggle-"),e&&(e._isPrechecked(this)?this.checked=!0:e._isSelected(this)!==this._checked&&e._syncButtonToggle(this,this._checked))}ngAfterViewInit(){this._animationMode!=="NoopAnimations"&&this._elementRef.nativeElement.classList.add("mat-button-toggle-animations-enabled"),this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){let e=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),e&&e._isSelected(this)&&e._syncButtonToggle(this,!1,!1,!0)}focus(e){this._buttonElement.nativeElement.focus(e)}_onButtonClick(){if(this.disabled)return;let e=this.isSingleSelector()?!0:!this._checked;if(e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.isSingleSelector()){let i=this.buttonToggleGroup._buttonToggles.find(n=>n.tabIndex===0);i&&(i.tabIndex=-1),this.tabIndex=0}this.change.emit(new g9(this,this.value))}_markForCheck(){this._changeDetectorRef.markForCheck()}_getButtonName(){return this.isSingleSelector()?this.buttonToggleGroup.name:this.name||null}isSingleSelector(){return this.buttonToggleGroup&&!this.buttonToggleGroup.multiple}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-button-toggle"]],viewQuery:function(i,n){if(i&1&&At(XAA,5),i&2){let o;oA(o=rA())&&(n._buttonElement=o.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:14,hostBindings:function(i,n){i&1&&ee("focus",function(){return n.focus()}),i&2&&(AA("aria-label",null)("aria-labelledby",null)("id",n.id)("name",null),iA("mat-button-toggle-standalone",!n.buttonToggleGroup)("mat-button-toggle-checked",n.checked)("mat-button-toggle-disabled",n.disabled)("mat-button-toggle-disabled-interactive",n.disabledInteractive)("mat-button-toggle-appearance-standard",n.appearance==="standard"))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[2,"disableRipple","disableRipple",IA],appearance:"appearance",checked:[2,"checked","checked",IA],disabled:[2,"disabled","disabled",IA],disabledInteractive:[2,"disabledInteractive","disabledInteractive",IA]},outputs:{change:"change"},exportAs:["matButtonToggle"],ngContentSelectors:$AA,decls:7,vars:13,consts:[["button",""],["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"click","id","disabled"],[1,"mat-button-toggle-checkbox-wrapper"],[1,"mat-button-toggle-label-content"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"],["state","checked","aria-hidden","true","appearance","minimal",3,"disabled"]],template:function(i,n){if(i&1){let o=Ue();Kt(),m(0,"button",1,0),ee("click",function(){return q(o),W(n._onButtonClick())}),ne(2,etA,2,1,"div",2),m(3,"span",3),NA(4),p()(),ve(5,"span",4)(6,"span",5)}if(i&2){let o=Ji(1);te("id",n.buttonId)("disabled",n.disabled&&!n.disabledInteractive||null),AA("role",n.isSingleSelector()?"radio":"button")("tabindex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("aria-pressed",n.isSingleSelector()?null:n.checked)("aria-checked",n.isSingleSelector()?n.checked:null)("name",n._getButtonName())("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),y(2),$(n.buttonToggleGroup&&(!n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideSingleSelectionIndicator||n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideMultipleSelectionIndicator)?2:-1),y(4),te("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled)}},dependencies:[ec,_N],styles:[".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0);border-radius:var(--mat-legacy-button-toggle-shape)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}@media(forced-colors: active){.mat-button-toggle-standalone,.mat-button-toggle-group{outline:solid 1px}}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,.mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}@media(forced-colors: active){.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{outline:0}}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-legacy-button-toggle-text-color);font-family:var(--mat-legacy-button-toggle-label-text-font);font-size:var(--mat-legacy-button-toggle-label-text-size);line-height:var(--mat-legacy-button-toggle-label-text-line-height);font-weight:var(--mat-legacy-button-toggle-label-text-weight);letter-spacing:var(--mat-legacy-button-toggle-label-text-tracking);--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-legacy-button-toggle-selected-state-text-color)}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-legacy-button-toggle-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle-checkbox-wrapper{display:inline-block;justify-content:flex-start;align-items:center;width:0;height:18px;line-height:18px;overflow:hidden;box-sizing:border-box;position:absolute;top:50%;left:16px;transform:translate3d(0, -50%, 0)}[dir=rtl] .mat-button-toggle-checkbox-wrapper{left:auto;right:16px}.mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:12px}[dir=rtl] .mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:auto;right:12px}.mat-button-toggle-checked .mat-button-toggle-checkbox-wrapper{width:18px}.mat-button-toggle-animations-enabled .mat-button-toggle-checkbox-wrapper{transition:width 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-checkbox-wrapper{transition:none}.mat-button-toggle-checked{color:var(--mat-legacy-button-toggle-selected-state-text-color);background-color:var(--mat-legacy-button-toggle-selected-state-background-color)}.mat-button-toggle-disabled{pointer-events:none;color:var(--mat-legacy-button-toggle-disabled-state-text-color);background-color:var(--mat-legacy-button-toggle-disabled-state-background-color);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-legacy-button-toggle-disabled-state-text-color)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-legacy-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-disabled-interactive{pointer-events:auto}.mat-button-toggle-appearance-standard{color:var(--mat-standard-button-toggle-text-color, var(--mat-sys-on-surface));background-color:var(--mat-standard-button-toggle-background-color, transparent);font-family:var(--mat-standard-button-toggle-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-standard-button-toggle-label-text-size, var(--mat-sys-label-large-size));line-height:var(--mat-standard-button-toggle-label-text-line-height, var(--mat-sys-label-large-line-height));font-weight:var(--mat-standard-button-toggle-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mat-standard-button-toggle-label-text-tracking, var(--mat-sys-label-large-tracking))}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container));background-color:var(--mat-standard-button-toggle-selected-state-background-color, var(--mat-sys-secondary-container))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-standard-button-toggle-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-state-background-color, transparent)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-selected-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-standard-button-toggle-state-layer-color, var(--mat-sys-on-surface))}.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-button-toggle-appearance-standard.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}@media(hover: none){.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-legacy-button-toggle-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-standard-button-toggle-height, 40px)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-legacy-button-toggle-state-layer-color)}@media(forced-colors: active){.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-animations-enabled .mat-button-toggle-button{transition:padding 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-button{transition:none}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}.mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:30px}[dir=rtl] .mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:0;padding-right:30px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{--mat-focus-indicator-border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full));border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-full))}"],encapsulation:2,changeDetection:0})}return t})();var itA=["*"],ntA='.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item{display:flex;position:relative;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer;padding-left:16px;padding-right:16px;background-color:var(--mdc-list-list-item-container-color, transparent);border-radius:var(--mdc-list-list-item-container-shape, var(--mat-sys-corner-none))}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item:focus{outline:0}.mdc-list-item.mdc-list-item--disabled{cursor:auto}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mdc-list-list-item-one-line-container-height, 48px)}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mdc-list-list-item-two-line-container-height, 64px)}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height, 88px)}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--selected::before,.mdc-list-item.mdc-list-item--selected:focus::before,.mdc-list-item:not(.mdc-list-item--selected):focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;content:"";pointer-events:none}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color, var(--mat-sys-on-surface-variant));width:var(--mdc-list-list-item-leading-icon-size, 24px);height:var(--mdc-list-list-item-leading-icon-size, 24px);margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mdc-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size, 40px);height:var(--mdc-list-list-item-leading-avatar-size, 40px);margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item--with-leading-avatar .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font, var(--mat-sys-label-small-font));line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height, var(--mat-sys-label-small-line-height));font-size:var(--mdc-list-list-item-trailing-supporting-text-size, var(--mat-sys-label-small-size));font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight, var(--mat-sys-label-small-weight));letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking, var(--mat-sys-label-small-tracking))}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color, var(--mat-sys-on-surface-variant));width:var(--mdc-list-list-item-trailing-icon-size, 24px);height:var(--mdc-list-list-item-trailing-icon-size, 24px)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color, var(--mat-sys-on-surface-variant))}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color, var(--mat-sys-primary))}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:var(--mdc-list-list-item-label-text-color, var(--mat-sys-on-surface));font-family:var(--mdc-list-list-item-label-text-font, var(--mat-sys-body-large-font));line-height:var(--mdc-list-list-item-label-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mdc-list-list-item-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-list-list-item-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-list-list-item-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;color:var(--mdc-list-list-item-supporting-text-color, var(--mat-sys-on-surface-variant));font-family:var(--mdc-list-list-item-supporting-text-font, var(--mat-sys-body-medium-font));line-height:var(--mdc-list-list-item-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mdc-list-list-item-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mdc-list-list-item-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mdc-list-list-item-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:16px}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:16px;padding-right:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-trailing-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:0;padding-right:0}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-webkit-user-select:none;user-select:none;margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;line-height:normal;align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-left:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-right:0}.mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-group__subheader{margin:.75rem 16px}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text{opacity:var(--mdc-list-list-item-disabled-label-text-opacity, 0.3)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-disabled-leading-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-leading-icon-opacity, 0.38)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-disabled-trailing-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity, 0.38)}.mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing,[dir=rtl] .mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing{padding-left:0;padding-right:0}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-disabled-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-list-list-item-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mdc-list-list-item-disabled-label-text-opacity, 0.3)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mdc-list-list-item-leading-avatar-shape, var(--mat-sys-corner-full));background-color:var(--mdc-list-list-item-leading-avatar-color, var(--mat-sys-primary-container))}.mat-mdc-list-item-icon{font-size:var(--mdc-list-list-item-leading-icon-size, 24px)}@media(forced-colors: active){a.mdc-list-item--activated::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:"";opacity:0;pointer-events:none;border-radius:inherit}.mat-mdc-list-item>.mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-focus-indicator::before{content:""}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:start}mat-action-list button::-moz-focus-inner{border:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-inline-start:var(--mat-list-list-item-leading-icon-start-space, 16px);margin-inline-end:var(--mat-list-list-item-leading-icon-end-space, 16px)}.mat-mdc-nav-list .mat-mdc-list-item{border-radius:var(--mat-list-active-indicator-shape, var(--mat-sys-corner-full));--mat-focus-indicator-border-radius:var(--mat-list-active-indicator-shape, var(--mat-sys-corner-full))}.mat-mdc-nav-list .mat-mdc-list-item.mdc-list-item--activated{background-color:var(--mat-list-active-indicator-color, var(--mat-sys-secondary-container))}',otA=["unscopedContent"],rtA=["text"],stA=[[["","matListItemAvatar",""],["","matListItemIcon",""]],[["","matListItemTitle",""]],[["","matListItemLine",""]],"*",[["","matListItemMeta",""]],[["mat-divider"]]],atA=["[matListItemAvatar],[matListItemIcon]","[matListItemTitle]","[matListItemLine]","*","[matListItemMeta]","mat-divider"];var ctA=new re("ListOption"),ltA=(()=>{class t{_elementRef=E(eA);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","matListItemTitle",""]],hostAttrs:[1,"mat-mdc-list-item-title","mdc-list-item__primary-text"]})}return t})(),gtA=(()=>{class t{_elementRef=E(eA);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","matListItemLine",""]],hostAttrs:[1,"mat-mdc-list-item-line","mdc-list-item__secondary-text"]})}return t})(),dtA=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","matListItemMeta",""]],hostAttrs:[1,"mat-mdc-list-item-meta","mdc-list-item__end"]})}return t})(),OCe=(()=>{class t{_listOption=E(ctA,{optional:!0});constructor(){}_isAlignedAtStart(){return!this._listOption||this._listOption?._getTogglePosition()==="after"}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,hostVars:4,hostBindings:function(i,n){i&2&&iA("mdc-list-item__start",n._isAlignedAtStart())("mdc-list-item__end",!n._isAlignedAtStart())}})}return t})(),CtA=(()=>{class t extends OCe{static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275dir=Oe({type:t,selectors:[["","matListItemAvatar",""]],hostAttrs:[1,"mat-mdc-list-item-avatar"],features:[Ct]})}return t})(),ItA=(()=>{class t extends OCe{static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275dir=Oe({type:t,selectors:[["","matListItemIcon",""]],hostAttrs:[1,"mat-mdc-list-item-icon"],features:[Ct]})}return t})(),utA=new re("MAT_LIST_CONFIG"),pH=(()=>{class t{_isNonInteractive=!0;get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=Sr(e)}_disableRipple=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=Sr(e)}_disabled=!1;_defaultOptions=E(utA,{optional:!0});static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,hostVars:1,hostBindings:function(i,n){i&2&&AA("aria-disabled",n.disabled)},inputs:{disableRipple:"disableRipple",disabled:"disabled"}})}return t})(),htA=(()=>{class t{_elementRef=E(eA);_ngZone=E(yA);_listBase=E(pH,{optional:!0});_platform=E(mi);_hostElement;_isButtonElement;_noopAnimations;_avatars;_icons;set lines(e){this._explicitLines=Za(e,null),this._updateItemLines(!1)}_explicitLines=null;get disableRipple(){return this.disabled||this._disableRipple||this._noopAnimations||!!this._listBase?.disableRipple}set disableRipple(e){this._disableRipple=Sr(e)}_disableRipple=!1;get disabled(){return this._disabled||!!this._listBase?.disabled}set disabled(e){this._disabled=Sr(e)}_disabled=!1;_subscriptions=new Ot;_rippleRenderer=null;_hasUnscopedTextContent=!1;rippleConfig;get rippleDisabled(){return this.disableRipple||!!this.rippleConfig.disabled}constructor(){E(Wn).load(Pr);let e=E(I2,{optional:!0}),i=E(Oi,{optional:!0});this.rippleConfig=e||{},this._hostElement=this._elementRef.nativeElement,this._isButtonElement=this._hostElement.nodeName.toLowerCase()==="button",this._noopAnimations=i==="NoopAnimations",this._listBase&&!this._listBase._isNonInteractive&&this._initInteractiveListItem(),this._isButtonElement&&!this._hostElement.hasAttribute("type")&&this._hostElement.setAttribute("type","button")}ngAfterViewInit(){this._monitorProjectedLinesAndTitle(),this._updateItemLines(!0)}ngOnDestroy(){this._subscriptions.unsubscribe(),this._rippleRenderer!==null&&this._rippleRenderer._removeTriggerEvents()}_hasIconOrAvatar(){return!!(this._avatars.length||this._icons.length)}_initInteractiveListItem(){this._hostElement.classList.add("mat-mdc-list-item-interactive"),this._rippleRenderer=new UB(this,this._ngZone,this._hostElement,this._platform,E(Dt)),this._rippleRenderer.setupTriggerEvents(this._hostElement)}_monitorProjectedLinesAndTitle(){this._ngZone.runOutsideAngular(()=>{this._subscriptions.add(Bi(this._lines.changes,this._titles.changes).subscribe(()=>this._updateItemLines(!1)))})}_updateItemLines(e){if(!this._lines||!this._titles||!this._unscopedContent)return;e&&this._checkDomForUnscopedTextContent();let i=this._explicitLines??this._inferLinesFromContent(),n=this._unscopedContent.nativeElement;if(this._hostElement.classList.toggle("mat-mdc-list-item-single-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-one-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-two-lines",i===2),this._hostElement.classList.toggle("mdc-list-item--with-three-lines",i===3),this._hasUnscopedTextContent){let o=this._titles.length===0&&i===1;n.classList.toggle("mdc-list-item__primary-text",o),n.classList.toggle("mdc-list-item__secondary-text",!o)}else n.classList.remove("mdc-list-item__primary-text"),n.classList.remove("mdc-list-item__secondary-text")}_inferLinesFromContent(){let e=this._titles.length+this._lines.length;return this._hasUnscopedTextContent&&(e+=1),e}_checkDomForUnscopedTextContent(){this._hasUnscopedTextContent=Array.from(this._unscopedContent.nativeElement.childNodes).filter(e=>e.nodeType!==e.COMMENT_NODE).some(e=>!!(e.textContent&&e.textContent.trim()))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,contentQueries:function(i,n,o){if(i&1&&(ni(o,CtA,4),ni(o,ItA,4)),i&2){let r;oA(r=rA())&&(n._avatars=r),oA(r=rA())&&(n._icons=r)}},hostVars:4,hostBindings:function(i,n){i&2&&(AA("aria-disabled",n.disabled)("disabled",n._isButtonElement&&n.disabled||null),iA("mdc-list-item--disabled",n.disabled))},inputs:{lines:"lines",disableRipple:"disableRipple",disabled:"disabled"}})}return t})();var JCe=(()=>{class t extends pH{static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275cmp=xe({type:t,selectors:[["mat-list"]],hostAttrs:[1,"mat-mdc-list","mat-mdc-list-base","mdc-list"],exportAs:["matList"],features:[gt([{provide:pH,useExisting:t}]),Ct],ngContentSelectors:itA,decls:1,vars:0,template:function(i,n){i&1&&(Kt(),NA(0))},styles:[ntA],encapsulation:2,changeDetection:0})}return t})(),YCe=(()=>{class t extends htA{_lines;_titles;_meta;_unscopedContent;_itemText;get activated(){return this._activated}set activated(e){this._activated=Sr(e)}_activated=!1;_getAriaCurrent(){return this._hostElement.nodeName==="A"&&this._activated?"page":null}_hasBothLeadingAndTrailing(){return this._meta.length!==0&&(this._avatars.length!==0||this._icons.length!==0)}static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275cmp=xe({type:t,selectors:[["mat-list-item"],["a","mat-list-item",""],["button","mat-list-item",""]],contentQueries:function(i,n,o){if(i&1&&(ni(o,gtA,5),ni(o,ltA,5),ni(o,dtA,5)),i&2){let r;oA(r=rA())&&(n._lines=r),oA(r=rA())&&(n._titles=r),oA(r=rA())&&(n._meta=r)}},viewQuery:function(i,n){if(i&1&&(At(otA,5),At(rtA,5)),i&2){let o;oA(o=rA())&&(n._unscopedContent=o.first),oA(o=rA())&&(n._itemText=o.first)}},hostAttrs:[1,"mat-mdc-list-item","mdc-list-item"],hostVars:13,hostBindings:function(i,n){i&2&&(AA("aria-current",n._getAriaCurrent()),iA("mdc-list-item--activated",n.activated)("mdc-list-item--with-leading-avatar",n._avatars.length!==0)("mdc-list-item--with-leading-icon",n._icons.length!==0)("mdc-list-item--with-trailing-meta",n._meta.length!==0)("mat-mdc-list-item-both-leading-and-trailing",n._hasBothLeadingAndTrailing())("_mat-animation-noopable",n._noopAnimations))},inputs:{activated:"activated"},exportAs:["matListItem"],features:[Ct],ngContentSelectors:atA,decls:10,vars:0,consts:[["unscopedContent",""],[1,"mdc-list-item__content"],[1,"mat-mdc-list-item-unscoped-content",3,"cdkObserveContent"],[1,"mat-focus-indicator"]],template:function(i,n){if(i&1){let o=Ue();Kt(stA),NA(0),m(1,"span",1),NA(2,1),NA(3,2),m(4,"span",2,0),ee("cdkObserveContent",function(){return q(o),W(n._updateItemLines(!0))}),NA(6,3),p()(),NA(7,4),NA(8,5),ve(9,"div",3)}},dependencies:[y5],encapsulation:2,changeDetection:0})}return t})();var BtA={conversationsHeader:"Conversations",traceHeader:"Trace",eventsToggle:"Events",traceToggle:"Trace",invocationPrefix:"Invocation",noConversationsMessage:"No conversations"},HCe=new re("Event Tab Messages",{factory:()=>BtA});var d9=class t{transform(A){if(A)return A.find(e=>e.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in e.attributes)?.attributes["gcp.vertex.agent.invocation_id"]}static \u0275fac=function(e){return new(e||t)};static \u0275pipe=pB({name:"invocId",type:t,pure:!0})};function EtA(t,A){if(t&1&&(m(0,"p"),T(1),p()),t&2){let e=M(2);y(),Pe(e.i18n.conversationsHeader)}}function ftA(t,A){if(t&1&&(m(0,"p"),T(1),p()),t&2){let e=M(2);y(),Pe(e.i18n.traceHeader)}}function QtA(t,A){if(t&1&&(m(0,"mat-button-toggle",8),T(1),p()),t&2){let e=M(3);y(),Pe(e.i18n.traceToggle)}}function mtA(t,A){if(t&1){let e=Ue();m(0,"mat-button-toggle-group",6),qn("ngModelChange",function(n){q(e);let o=M(2);return Vn(o.view,n)||(o.view=n),W(n)}),m(1,"mat-button-toggle",7),T(2),p(),ne(3,QtA,2,1,"mat-button-toggle",8),Ii(4,"async"),p()}if(t&2){let e=M(2);jn("ngModel",e.view),y(2),Pe(e.i18n.eventsToggle),y(),$(Qi(4,3,e.isTraceEnabledObs)?3:-1)}}function ptA(t,A){if(t&1){let e=Ue();m(0,"mat-list-item",9),ee("click",function(){let n=q(e).$implicit,o=M(3);return W(o.selectEvent(n.key))}),m(1,"span",10),T(2),p(),m(3,"span",11),T(4),p()()}if(t&2){let e=A.$implicit,i=A.$index;y(2),Pe(i),y(2),Pe(e.value.title)}}function wtA(t,A){if(t&1&&(m(0,"mat-list",5),Rt(1,ptA,5,2,"mat-list-item",null,Fi),Ii(3,"keyvalue"),p()),t&2){let e=M(2);y(),Nt(b4(3,0,e.eventsMap(),e.mapOrderPreservingSort))}}function ytA(t,A){if(t&1){let e=Ue();m(0,"mat-list-item",9),ee("click",function(){let n=q(e).$implicit,o=M(3);return W(o.openDialog(n.key))}),m(1,"span",10),T(2),p(),m(3,"span"),T(4),Ii(5,"invocId"),p()()}if(t&2){let e=A.$implicit,i=A.$index,n=M(3);y(2),Pe(i),y(2),el("",n.i18n.invocationPrefix," ",Qi(5,3,e.value),"")}}function DtA(t,A){if(t&1&&(m(0,"mat-list",5),Rt(1,ytA,6,5,"mat-list-item",null,Fi),Ii(3,"keyvalue"),p()),t&2){let e=M(2);y(),Nt(b4(3,0,e.spansByTraceId(),e.mapOrderPreservingSort))}}function vtA(t,A){if(t&1&&(m(0,"div",1)(1,"div",3),ne(2,EtA,2,1,"p")(3,ftA,2,1,"p")(4,mtA,5,5,"mat-button-toggle-group",4),p(),ne(5,wtA,4,3,"mat-list",5)(6,DtA,4,3,"mat-list",5),p()),t&2){let e=M();y(2),$(e.isTraceView()?-1:2),y(),$(e.isTraceView()?3:-1),y(),$(e.traceData().length>0?4:-1),y(),$(e.isTraceView()?-1:5),y(),$(e.isTraceView()?6:-1)}}function btA(t,A){if(t&1&&(m(0,"div",2),T(1),p()),t&2){let e=M();y(),FA(" ",e.i18n.noConversationsMessage," ")}}var lQ=class t{eventsMap=lt(new Map);traceData=lt([]);selectedEvent=new Ve;dialog=E(na);featureFlagService=E(Ks);i18n=E(HCe);view=mA("events");isTraceView=ot(()=>this.view()==="trace");spansByTraceId=ot(()=>!this.traceData()||this.traceData().length==0?new Map:this.traceData().reduce((A,e)=>{let i=e.trace_id,n=A.get(i);return n?(e.invoc_id=e.attributes?.["gcp.vertex.agent.invocation_id"],n.push(e),n.sort((o,r)=>o.start_time-r.start_time)):A.set(i,[e]),A},new Map));showJson=Array(this.eventsMap().size).fill(!1);isTraceEnabledObs=this.featureFlagService.isTraceEnabled();toggleJson(A){this.showJson[A]=!this.showJson[A]}selectEvent(A){this.selectedEvent.emit(A)}mapOrderPreservingSort=(A,e)=>0;findInvocId(A){return A.find(e=>e.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in e.attributes)?.attributes["gcp.vertex.agent.invocation_id"]}openDialog(A){let e=this.spansByTraceId().get(A);if(!e)return;let i=this.dialog.open(l9,{width:"auto",maxWidth:"90vw",data:{spans:e,invocId:this.findInvocId(e)}})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-event-tab"]],inputs:{eventsMap:[1,"eventsMap"],traceData:[1,"traceData"]},outputs:{selectedEvent:"selectedEvent"},decls:3,vars:2,consts:[[1,"events-wrapper"],[1,"events-container"],[1,"empty-state"],[1,"event-header"],["name","fontStyle","aria-label","Font Style",2,"scale","0.8",3,"ngModel"],[1,"event-list"],["name","fontStyle","aria-label","Font Style",2,"scale","0.8",3,"ngModelChange","ngModel"],["value","events"],["value","trace"],[3,"click"],[1,"event-index"],[1,"event-title"]],template:function(e,i){e&1&&(m(0,"div",0),ne(1,vtA,7,5,"div",1)(2,btA,2,1,"div",2),p()),e&2&&(y(),$(i.eventsMap().size>0?1:-1),y(),$(i.eventsMap().size==0?2:-1))},dependencies:[QH,Kn,Fo,Cr,mH,JCe,YCe,HI,d9,ts],styles:[".events-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;font-size:14px;font-weight:700;color:var(--event-tab-events-wrapper-color)}.events-wrapper[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%]{color:initial;padding-top:1em;text-align:center;font-weight:400;font-style:italic}.event-index[_ngcontent-%COMP%]{color:var(--event-tab-event-index-color);font-family:Roboto;font-size:14px;font-style:normal;font-weight:400;margin-right:10px}.event-title[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}.spacer[_ngcontent-%COMP%]{flex:1 1 auto}.events-container[_ngcontent-%COMP%]{margin-top:20px}.event-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;margin-top:20px}.function-event-button[_ngcontent-%COMP%]{margin-top:11px}.event-list[_ngcontent-%COMP%]{--mat-list-active-indicator-color: var(--event-tab-event-list-active-indicator-color)}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-container-color: var(--event-tab-event-list-list-item-container-color)}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-label-text-size: 14px}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-label-text-weight: 400}.event-list[_ngcontent-%COMP%]{--mdc-list-list-item-one-line-container-height: 52px}[_nghost-%COMP%] .mdc-list-item{border:1px solid var(--event-tab-mdc-list-item-border-color);cursor:pointer}[_nghost-%COMP%] .mdc-list-item:hover{background-color:var(--event-tab-mdc-list-item-hover-background-color)}.event-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"]})};var MtA=["*",[["mat-chip-avatar"],["","matChipAvatar",""]],[["mat-chip-trailing-icon"],["","matChipRemove",""],["","matChipTrailingIcon",""]]],StA=["*","mat-chip-avatar, [matChipAvatar]","mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]"];function ktA(t,A){t&1&&(m(0,"span",3),NA(1,1),p())}function xtA(t,A){t&1&&(m(0,"span",6),NA(1,2),p())}var _tA=["*"];var RtA=new re("mat-chips-default-options",{providedIn:"root",factory:()=>({separatorKeyCodes:[13]})}),wH=new re("MatChipAvatar"),zCe=new re("MatChipTrailingIcon"),yH=new re("MatChipRemove"),PCe=new re("MatChip"),DH=(()=>{class t{_elementRef=E(eA);_parentChip=E(PCe);isInteractive=!0;_isPrimary=!0;get disabled(){return this._disabled||this._parentChip?.disabled||!1}set disabled(e){this._disabled=e}_disabled=!1;tabIndex=-1;_allowFocusWhenDisabled=!1;_getDisabledAttribute(){return this.disabled&&!this._allowFocusWhenDisabled?"":null}_getTabindex(){return this.disabled&&!this._allowFocusWhenDisabled||!this.isInteractive?null:this.tabIndex.toString()}constructor(){E(Wn).load(Pr),this._elementRef.nativeElement.nodeName==="BUTTON"&&this._elementRef.nativeElement.setAttribute("type","button")}focus(){this._elementRef.nativeElement.focus()}_handleClick(e){!this.disabled&&this.isInteractive&&this._isPrimary&&(e.preventDefault(),this._parentChip._handlePrimaryActionInteraction())}_handleKeydown(e){(e.keyCode===13||e.keyCode===32)&&!this.disabled&&this.isInteractive&&this._isPrimary&&!this._parentChip._isEditing&&(e.preventDefault(),this._parentChip._handlePrimaryActionInteraction())}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["","matChipAction",""]],hostAttrs:[1,"mdc-evolution-chip__action","mat-mdc-chip-action"],hostVars:9,hostBindings:function(i,n){i&1&&ee("click",function(r){return n._handleClick(r)})("keydown",function(r){return n._handleKeydown(r)}),i&2&&(AA("tabindex",n._getTabindex())("disabled",n._getDisabledAttribute())("aria-disabled",n.disabled),iA("mdc-evolution-chip__action--primary",n._isPrimary)("mdc-evolution-chip__action--presentational",!n.isInteractive)("mdc-evolution-chip__action--trailing",!n._isPrimary))},inputs:{isInteractive:"isInteractive",disabled:[2,"disabled","disabled",IA],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?-1:ln(e)],_allowFocusWhenDisabled:"_allowFocusWhenDisabled"}})}return t})(),jCe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["mat-chip-avatar"],["","matChipAvatar",""]],hostAttrs:["role","img",1,"mat-mdc-chip-avatar","mdc-evolution-chip__icon","mdc-evolution-chip__icon--primary"],features:[gt([{provide:wH,useExisting:t}])]})}return t})();var VCe=(()=>{class t extends DH{_isPrimary=!1;_handleClick(e){this.disabled||(e.stopPropagation(),e.preventDefault(),this._parentChip.remove())}_handleKeydown(e){(e.keyCode===13||e.keyCode===32)&&!this.disabled&&(e.stopPropagation(),e.preventDefault(),this._parentChip.remove())}static \u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})();static \u0275dir=Oe({type:t,selectors:[["","matChipRemove",""]],hostAttrs:["role","button",1,"mat-mdc-chip-remove","mat-mdc-chip-trailing-icon","mat-focus-indicator","mdc-evolution-chip__icon","mdc-evolution-chip__icon--trailing"],hostVars:1,hostBindings:function(i,n){i&2&&AA("aria-hidden",null)},features:[gt([{provide:yH,useExisting:t}]),Ct]})}return t})(),d6=(()=>{class t{_changeDetectorRef=E(ut);_elementRef=E(eA);_ngZone=E(yA);_focusMonitor=E(ns);_globalRippleOptions=E(I2,{optional:!0});_document=E(ht);_onFocus=new je;_onBlur=new je;_isBasicChip;role=null;_hasFocusInternal=!1;_pendingFocus;_actionChanges;_animationsDisabled;_allLeadingIcons;_allTrailingIcons;_allRemoveIcons;_hasFocus(){return this._hasFocusInternal}id=E(un).getId("mat-mdc-chip-");ariaLabel=null;ariaDescription=null;_ariaDescriptionId=`${this.id}-aria-description`;_chipListDisabled=!1;_textElement;get value(){return this._value!==void 0?this._value:this._textElement.textContent.trim()}set value(e){this._value=e}_value;color;removable=!0;highlighted=!1;disableRipple=!1;get disabled(){return this._disabled||this._chipListDisabled}set disabled(e){this._disabled=e}_disabled=!1;removed=new Ve;destroyed=new Ve;basicChipAttrName="mat-basic-chip";leadingIcon;trailingIcon;removeIcon;primaryAction;_rippleLoader=E(K5);_injector=E(Dt);constructor(){let e=E(Wn);e.load(Pr),e.load(qI);let i=E(Oi,{optional:!0});this._animationsDisabled=i==="NoopAnimations",this._monitorFocus(),this._rippleLoader?.configureRipple(this._elementRef.nativeElement,{className:"mat-mdc-chip-ripple",disabled:this._isRippleDisabled()})}ngOnInit(){let e=this._elementRef.nativeElement;this._isBasicChip=e.hasAttribute(this.basicChipAttrName)||e.tagName.toLowerCase()===this.basicChipAttrName}ngAfterViewInit(){this._textElement=this._elementRef.nativeElement.querySelector(".mat-mdc-chip-action-label"),this._pendingFocus&&(this._pendingFocus=!1,this.focus())}ngAfterContentInit(){this._actionChanges=Bi(this._allLeadingIcons.changes,this._allTrailingIcons.changes,this._allRemoveIcons.changes).subscribe(()=>this._changeDetectorRef.markForCheck())}ngDoCheck(){this._rippleLoader.setDisabled(this._elementRef.nativeElement,this._isRippleDisabled())}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement),this._actionChanges?.unsubscribe(),this.destroyed.emit({chip:this}),this.destroyed.complete()}remove(){this.removable&&this.removed.emit({chip:this})}_isRippleDisabled(){return this.disabled||this.disableRipple||this._animationsDisabled||this._isBasicChip||!!this._globalRippleOptions?.disabled}_hasTrailingIcon(){return!!(this.trailingIcon||this.removeIcon)}_handleKeydown(e){(e.keyCode===8&&!e.repeat||e.keyCode===46)&&(e.preventDefault(),this.remove())}focus(){this.disabled||(this.primaryAction?this.primaryAction.focus():this._pendingFocus=!0)}_getSourceAction(e){return this._getActions().find(i=>{let n=i._elementRef.nativeElement;return n===e||n.contains(e)})}_getActions(){let e=[];return this.primaryAction&&e.push(this.primaryAction),this.removeIcon&&e.push(this.removeIcon),this.trailingIcon&&e.push(this.trailingIcon),e}_handlePrimaryActionInteraction(){}_monitorFocus(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{let i=e!==null;i!==this._hasFocusInternal&&(this._hasFocusInternal=i,i?this._onFocus.next({chip:this}):(this._changeDetectorRef.markForCheck(),setTimeout(()=>this._ngZone.run(()=>this._onBlur.next({chip:this})))))})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-basic-chip"],["","mat-basic-chip",""],["mat-chip"],["","mat-chip",""]],contentQueries:function(i,n,o){if(i&1&&(ni(o,wH,5),ni(o,zCe,5),ni(o,yH,5),ni(o,wH,5),ni(o,zCe,5),ni(o,yH,5)),i&2){let r;oA(r=rA())&&(n.leadingIcon=r.first),oA(r=rA())&&(n.trailingIcon=r.first),oA(r=rA())&&(n.removeIcon=r.first),oA(r=rA())&&(n._allLeadingIcons=r),oA(r=rA())&&(n._allTrailingIcons=r),oA(r=rA())&&(n._allRemoveIcons=r)}},viewQuery:function(i,n){if(i&1&&At(DH,5),i&2){let o;oA(o=rA())&&(n.primaryAction=o.first)}},hostAttrs:[1,"mat-mdc-chip"],hostVars:31,hostBindings:function(i,n){i&1&&ee("keydown",function(r){return n._handleKeydown(r)}),i&2&&(ea("id",n.id),AA("role",n.role)("aria-label",n.ariaLabel),Lo("mat-"+(n.color||"primary")),iA("mdc-evolution-chip",!n._isBasicChip)("mdc-evolution-chip--disabled",n.disabled)("mdc-evolution-chip--with-trailing-action",n._hasTrailingIcon())("mdc-evolution-chip--with-primary-graphic",n.leadingIcon)("mdc-evolution-chip--with-primary-icon",n.leadingIcon)("mdc-evolution-chip--with-avatar",n.leadingIcon)("mat-mdc-chip-with-avatar",n.leadingIcon)("mat-mdc-chip-highlighted",n.highlighted)("mat-mdc-chip-disabled",n.disabled)("mat-mdc-basic-chip",n._isBasicChip)("mat-mdc-standard-chip",!n._isBasicChip)("mat-mdc-chip-with-trailing-icon",n._hasTrailingIcon())("_mat-animation-noopable",n._animationsDisabled))},inputs:{role:"role",id:"id",ariaLabel:[0,"aria-label","ariaLabel"],ariaDescription:[0,"aria-description","ariaDescription"],value:"value",color:"color",removable:[2,"removable","removable",IA],highlighted:[2,"highlighted","highlighted",IA],disableRipple:[2,"disableRipple","disableRipple",IA],disabled:[2,"disabled","disabled",IA]},outputs:{removed:"removed",destroyed:"destroyed"},exportAs:["matChip"],features:[gt([{provide:PCe,useExisting:t}])],ngContentSelectors:StA,decls:8,vars:3,consts:[[1,"mat-mdc-chip-focus-overlay"],[1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--primary"],["matChipAction","",3,"isInteractive"],[1,"mdc-evolution-chip__graphic","mat-mdc-chip-graphic"],[1,"mdc-evolution-chip__text-label","mat-mdc-chip-action-label"],[1,"mat-mdc-chip-primary-focus-indicator","mat-focus-indicator"],[1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--trailing"]],template:function(i,n){i&1&&(Kt(MtA),ve(0,"span",0),m(1,"span",1)(2,"span",2),ne(3,ktA,2,0,"span",3),m(4,"span",4),NA(5),ve(6,"span",5),p()()(),ne(7,xtA,2,0,"span",6)),i&2&&(y(2),te("isInteractive",!1),y(),$(n.leadingIcon?3:-1),y(4),$(n._hasTrailingIcon()?7:-1))},dependencies:[DH],styles:['.mdc-evolution-chip,.mdc-evolution-chip__cell,.mdc-evolution-chip__action{display:inline-flex;align-items:center}.mdc-evolution-chip{position:relative;max-width:100%}.mdc-evolution-chip__cell,.mdc-evolution-chip__action{height:100%}.mdc-evolution-chip__cell--primary{flex-basis:100%;overflow-x:hidden}.mdc-evolution-chip__cell--trailing{flex:1 0 auto}.mdc-evolution-chip__action{align-items:center;background:none;border:none;box-sizing:content-box;cursor:pointer;display:inline-flex;justify-content:center;outline:none;padding:0;text-decoration:none;color:inherit}.mdc-evolution-chip__action--presentational{cursor:auto}.mdc-evolution-chip--disabled,.mdc-evolution-chip__action:disabled{pointer-events:none}.mdc-evolution-chip__action--primary{font:inherit;letter-spacing:inherit;white-space:inherit;overflow-x:hidden}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary::before{border-width:var(--mdc-chip-outline-width, 1px);border-radius:var(--mdc-chip-container-shape-radius, 8px);box-sizing:border-box;content:"";height:100%;left:0;position:absolute;pointer-events:none;top:0;width:100%;z-index:1;border-style:solid}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:0}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__action--primary::before{border-color:var(--mdc-chip-outline-color, var(--mat-sys-outline))}.mdc-evolution-chip__action--primary:not(.mdc-evolution-chip__action--presentational):not(.mdc-ripple-upgraded):focus::before{border-color:var(--mdc-chip-focus-outline-color, var(--mat-sys-on-surface-variant))}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__action--primary::before{border-color:var(--mdc-chip-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-standard-chip.mdc-evolution-chip--selected .mdc-evolution-chip__action--primary::before{border-width:var(--mdc-chip-flat-selected-outline-width, 0)}.mat-mdc-basic-chip .mdc-evolution-chip__action--primary{font:inherit}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:0}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}.mdc-evolution-chip__action--trailing{position:relative;overflow:visible}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__action--trailing{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__action--trailing{color:var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-color, var(--mat-sys-on-surface))}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}.mdc-evolution-chip__text-label{-webkit-user-select:none;user-select:none;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mat-mdc-standard-chip .mdc-evolution-chip__text-label{font-family:var(--mdc-chip-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mdc-chip-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mdc-chip-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-chip-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-chip-label-text-tracking, var(--mat-sys-label-large-tracking))}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__text-label{color:var(--mdc-chip-label-text-color, var(--mat-sys-on-surface-variant))}.mat-mdc-standard-chip.mdc-evolution-chip--selected:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__text-label{color:var(--mdc-chip-selected-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label,.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-evolution-chip__graphic{align-items:center;display:inline-flex;justify-content:center;overflow:hidden;pointer-events:none;position:relative;flex:1 0 auto}.mat-mdc-standard-chip .mdc-evolution-chip__graphic{width:var(--mdc-chip-with-avatar-avatar-size, 24px);height:var(--mdc-chip-with-avatar-avatar-size, 24px);font-size:var(--mdc-chip-with-avatar-avatar-size, 24px)}.mdc-evolution-chip--selecting .mdc-evolution-chip__graphic{transition:width 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--selected):not(.mdc-evolution-chip--with-primary-icon) .mdc-evolution-chip__graphic{width:0}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:8px;padding-right:4px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:8px;padding-right:4px}.mdc-evolution-chip__checkmark{position:absolute;opacity:0;top:50%;left:50%;height:20px;width:20px}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color, var(--mat-sys-on-secondary-container))}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-disabled-icon-color, var(--mat-sys-on-surface))}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark{transition:transform 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark{transform:translate(-50%, -50%);opacity:1}.mdc-evolution-chip__checkmark-svg{display:block}.mdc-evolution-chip__checkmark-path{stroke-width:2px;stroke-dasharray:29.7833385;stroke-dashoffset:29.7833385;stroke:currentColor}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}@media(forced-colors: active){.mdc-evolution-chip__checkmark-path{stroke:CanvasText !important}}.mat-mdc-standard-chip .mdc-evolution-chip__icon--trailing{height:18px;width:18px;font-size:18px}.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing.mat-mdc-chip-remove{opacity:calc(var(--mat-chip-trailing-action-opacity, 1)*var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity, 0.38))}.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing.mat-mdc-chip-remove:focus{opacity:calc(var(--mat-chip-trailing-action-focus-opacity, 1)*var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity, 0.38))}.mat-mdc-standard-chip{border-radius:var(--mdc-chip-container-shape-radius, 8px);height:var(--mdc-chip-container-height, 32px)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled){background-color:var(--mdc-chip-elevated-container-color, transparent)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected:not(.mdc-evolution-chip--disabled){background-color:var(--mdc-chip-elevated-selected-container-color, var(--mat-sys-secondary-container))}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-flat-disabled-selected-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}@media(forced-colors: active){.mat-mdc-standard-chip{outline:solid 1px}}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{border-radius:var(--mdc-chip-with-avatar-avatar-shape-radius, 24px);width:var(--mdc-chip-with-icon-icon-size, 18px);height:var(--mdc-chip-with-icon-icon-size, 18px);font-size:var(--mdc-chip-with-icon-icon-size, 18px)}.mdc-evolution-chip--selected .mdc-evolution-chip__icon--primary{opacity:0}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-disabled-icon-color, var(--mat-sys-on-surface))}.mat-mdc-chip-highlighted{--mdc-chip-with-icon-icon-color:var(--mdc-chip-with-icon-selected-icon-color, var(--mat-sys-on-secondary-container));--mdc-chip-elevated-container-color:var(--mdc-chip-elevated-selected-container-color, var(--mat-sys-secondary-container));--mdc-chip-label-text-color:var(--mdc-chip-selected-label-text-color, var(--mat-sys-on-secondary-container));--mdc-chip-outline-width:var(--mdc-chip-flat-selected-outline-width, 0)}.mat-mdc-chip-focus-overlay{background:var(--mdc-chip-focus-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-chip-selected .mat-mdc-chip-focus-overlay,.mat-mdc-chip-highlighted .mat-mdc-chip-focus-overlay{background:var(--mdc-chip-selected-focus-state-layer-color, var(--mat-sys-on-secondary-container))}.mat-mdc-chip:hover .mat-mdc-chip-focus-overlay{background:var(--mdc-chip-hover-state-layer-color, var(--mat-sys-on-surface-variant));opacity:var(--mdc-chip-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-chip-focus-overlay .mat-mdc-chip-selected:hover,.mat-mdc-chip-highlighted:hover .mat-mdc-chip-focus-overlay{background:var(--mdc-chip-selected-hover-state-layer-color, var(--mat-sys-on-secondary-container));opacity:var(--mdc-chip-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-chip.cdk-focused .mat-mdc-chip-focus-overlay{background:var(--mdc-chip-focus-state-layer-color, var(--mat-sys-on-surface-variant));opacity:var(--mdc-chip-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-chip-selected.cdk-focused .mat-mdc-chip-focus-overlay,.mat-mdc-chip-highlighted.cdk-focused .mat-mdc-chip-focus-overlay{background:var(--mdc-chip-selected-focus-state-layer-color, var(--mat-sys-on-secondary-container));opacity:var(--mdc-chip-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-evolution-chip--disabled:not(.mdc-evolution-chip--selected) .mat-mdc-chip-avatar{opacity:var(--mdc-chip-with-avatar-disabled-avatar-opacity, 0.38)}.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing{opacity:var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity, 0.38)}.mdc-evolution-chip--disabled.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark{opacity:var(--mdc-chip-with-icon-disabled-icon-opacity, 0.38)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{opacity:var(--mat-chip-disabled-container-opacity, 1)}.mat-mdc-standard-chip.mdc-evolution-chip--selected .mdc-evolution-chip__icon--trailing,.mat-mdc-standard-chip.mat-mdc-chip-highlighted .mdc-evolution-chip__icon--trailing{color:var(--mat-chip-selected-trailing-icon-color, var(--mat-sys-on-secondary-container))}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing{color:var(--mat-chip-selected-disabled-trailing-icon-color, var(--mat-sys-on-surface))}.mat-mdc-chip-remove{opacity:var(--mat-chip-trailing-action-opacity, 1)}.mat-mdc-chip-remove:focus{opacity:var(--mat-chip-trailing-action-focus-opacity, 1)}.mat-mdc-chip-remove::after{background-color:var(--mat-chip-trailing-action-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-chip-remove:hover::after{opacity:var(--mat-chip-trailing-action-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-chip-remove:focus::after{opacity:var(--mat-chip-trailing-action-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-chip-selected .mat-mdc-chip-remove::after,.mat-mdc-chip-highlighted .mat-mdc-chip-remove::after{background-color:var(--mat-chip-selected-trailing-action-state-layer-color, var(--mat-sys-on-secondary-container))}.mat-mdc-standard-chip{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mat-mdc-chip-action-label{overflow:visible}.mat-mdc-standard-chip .mat-mdc-chip-graphic,.mat-mdc-standard-chip .mat-mdc-chip-trailing-icon{box-sizing:content-box}.mat-mdc-standard-chip._mat-animation-noopable,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__graphic,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark-path{transition-duration:1ms;animation-duration:1ms}.mat-mdc-chip-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;opacity:0;border-radius:inherit;transition:opacity 150ms linear}._mat-animation-noopable .mat-mdc-chip-focus-overlay{transition:none}.mat-mdc-basic-chip .mat-mdc-chip-focus-overlay{display:none}.mat-mdc-chip .mat-ripple.mat-mdc-chip-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-chip-avatar{text-align:center;line-height:1;color:var(--mdc-chip-with-icon-icon-color, currentColor)}.mat-mdc-chip{position:relative;z-index:0}.mat-mdc-chip-action-label{text-align:left;z-index:1}[dir=rtl] .mat-mdc-chip-action-label{text-align:right}.mat-mdc-chip.mdc-evolution-chip--with-trailing-action .mat-mdc-chip-action-label{position:relative}.mat-mdc-chip-action-label .mat-mdc-chip-primary-focus-indicator{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.mat-mdc-chip-action-label .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-chip-remove::before{margin:calc(var(--mat-focus-indicator-border-width, 3px)*-1);left:8px;right:8px}.mat-mdc-chip-remove::after{content:"";display:block;opacity:0;position:absolute;top:-3px;bottom:-3px;left:5px;right:5px;border-radius:50%;box-sizing:border-box;padding:12px;margin:-12px;background-clip:content-box}.mat-mdc-chip-remove .mat-icon{width:18px;height:18px;font-size:18px;box-sizing:content-box}.mat-chip-edit-input{cursor:text;display:inline-block;color:inherit;outline:0}@media(forced-colors: active){.mat-mdc-chip-selected:not(.mat-mdc-chip-multiple){outline-width:3px}}.mat-mdc-chip-action:focus .mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();var qCe=(()=>{class t{_elementRef=E(eA);_changeDetectorRef=E(ut);_dir=E(Do,{optional:!0});_lastDestroyedFocusedChipIndex=null;_keyManager;_destroyed=new je;_defaultRole="presentation";get chipFocusChanges(){return this._getChipStream(e=>e._onFocus)}get chipDestroyedChanges(){return this._getChipStream(e=>e.destroyed)}get chipRemovedChanges(){return this._getChipStream(e=>e.removed)}get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._syncChipsState()}_disabled=!1;get empty(){return!this._chips||this._chips.length===0}get role(){return this._explicitRole?this._explicitRole:this.empty?null:this._defaultRole}tabIndex=0;set role(e){this._explicitRole=e}_explicitRole=null;get focused(){return this._hasFocusedChip()}_chips;_chipActions=new qa;constructor(){}ngAfterViewInit(){this._setUpFocusManagement(),this._trackChipSetChanges(),this._trackDestroyedFocusedChip()}ngOnDestroy(){this._keyManager?.destroy(),this._chipActions.destroy(),this._destroyed.next(),this._destroyed.complete()}_hasFocusedChip(){return this._chips&&this._chips.some(e=>e._hasFocus())}_syncChipsState(){this._chips?.forEach(e=>{e._chipListDisabled=this._disabled,e._changeDetectorRef.markForCheck()})}focus(){}_handleKeydown(e){this._originatesFromChip(e)&&this._keyManager.onKeydown(e)}_isValidIndex(e){return e>=0&&ethis._elementRef.nativeElement.tabIndex=e))}_getChipStream(e){return this._chips.changes.pipe(In(null),Si(()=>Bi(...this._chips.map(e))))}_originatesFromChip(e){let i=e.target;for(;i&&i!==this._elementRef.nativeElement;){if(i.classList.contains("mat-mdc-chip"))return!0;i=i.parentElement}return!1}_setUpFocusManagement(){this._chips.changes.pipe(In(this._chips)).subscribe(e=>{let i=[];e.forEach(n=>n._getActions().forEach(o=>i.push(o))),this._chipActions.reset(i),this._chipActions.notifyOnChanges()}),this._keyManager=new C2(this._chipActions).withVerticalOrientation().withHorizontalOrientation(this._dir?this._dir.value:"ltr").withHomeAndEnd().skipPredicate(e=>this._skipPredicate(e)),this.chipFocusChanges.pipe(mt(this._destroyed)).subscribe(({chip:e})=>{let i=e._getSourceAction(document.activeElement);i&&this._keyManager.updateActiveItem(i)}),this._dir?.change.pipe(mt(this._destroyed)).subscribe(e=>this._keyManager.withHorizontalOrientation(e))}_skipPredicate(e){return!e.isInteractive||e.disabled}_trackChipSetChanges(){this._chips.changes.pipe(In(null),mt(this._destroyed)).subscribe(()=>{this.disabled&&Promise.resolve().then(()=>this._syncChipsState()),this._redirectDestroyedChipFocus()})}_trackDestroyedFocusedChip(){this.chipDestroyedChanges.pipe(mt(this._destroyed)).subscribe(e=>{let n=this._chips.toArray().indexOf(e.chip);this._isValidIndex(n)&&e.chip._hasFocus()&&(this._lastDestroyedFocusedChipIndex=n)})}_redirectDestroyedChipFocus(){if(this._lastDestroyedFocusedChipIndex!=null){if(this._chips.length){let e=Math.min(this._lastDestroyedFocusedChipIndex,this._chips.length-1),i=this._chips.toArray()[e];i.disabled?this._chips.length===1?this.focus():this._keyManager.setPreviousItemActive():i.focus()}else this.focus();this._lastDestroyedFocusedChipIndex=null}}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-chip-set"]],contentQueries:function(i,n,o){if(i&1&&ni(o,d6,5),i&2){let r;oA(r=rA())&&(n._chips=r)}},hostAttrs:[1,"mat-mdc-chip-set","mdc-evolution-chip-set"],hostVars:1,hostBindings:function(i,n){i&1&&ee("keydown",function(r){return n._handleKeydown(r)}),i&2&&AA("role",n.role)},inputs:{disabled:[2,"disabled","disabled",IA],role:"role",tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:ln(e)]},ngContentSelectors:_tA,decls:2,vars:0,consts:[["role","presentation",1,"mdc-evolution-chip-set__chips"]],template:function(i,n){i&1&&(Kt(),m(0,"div",0),NA(1),p())},styles:[".mat-mdc-chip-set{display:flex}.mat-mdc-chip-set:focus{outline:none}.mat-mdc-chip-set .mdc-evolution-chip-set__chips{min-width:100%;margin-left:-8px;margin-right:0}.mat-mdc-chip-set .mdc-evolution-chip{margin:4px 0 4px 8px}[dir=rtl] .mat-mdc-chip-set .mdc-evolution-chip-set__chips{margin-left:0;margin-right:-8px}[dir=rtl] .mat-mdc-chip-set .mdc-evolution-chip{margin-left:0;margin-right:8px}.mdc-evolution-chip-set__chips{display:flex;flex-flow:wrap;min-width:0}.mat-mdc-chip-set-stacked{flex-direction:column;align-items:flex-start}.mat-mdc-chip-set-stacked .mat-mdc-chip{width:100%}.mat-mdc-chip-set-stacked .mdc-evolution-chip__graphic{flex-grow:0}.mat-mdc-chip-set-stacked .mdc-evolution-chip__action--primary{flex-basis:100%;justify-content:start}input.mat-mdc-chip-input{flex:1 0 150px;margin-left:8px}[dir=rtl] input.mat-mdc-chip-input{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}return t})();var WCe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({providers:[TB,{provide:RtA,useValue:{separatorKeyCodes:[13]}}],imports:[ui,P0,ui]})}return t})();var LtA={noSessionsFound:"No sessions found",readonlyChip:"Read only"},ZCe=new re("Session Tab Messages",{factory:()=>LtA});function FtA(t,A){t&1&&(m(0,"div",1),ve(1,"mat-progress-bar",4),p())}function GtA(t,A){if(t&1&&(m(0,"div",2),T(1),p()),t&2){let e=M();y(),Pe(e.i18n.noSessionsFound)}}function KtA(t,A){if(t&1&&(m(0,"mat-chip"),T(1),p()),t&2){let e=M(3);y(),Pe(e.i18n.readonlyChip)}}function UtA(t,A){if(t&1){let e=Ue();m(0,"div",6),ee("click",function(){let n=q(e).$implicit,o=M(2);return W(o.getSession(n.id))}),m(1,"div",7)(2,"div",8),T(3),ne(4,KtA,2,1,"mat-chip"),Ii(5,"async"),p(),m(6,"div",9),T(7),p()()()}if(t&2){let e=A.$implicit,i=M(2);te("ngClass",e.id===i.sessionId?"session-item current":"session-item"),y(3),FA(" ",e.id," "),y(),$(Qi(5,4,i.sessionService.canEdit(i.userId,e))===!1?4:-1),y(3),Pe(i.getDate(e))}}function TtA(t,A){if(t&1&&(m(0,"div",3),Rt(1,UtA,8,6,"div",5,Fi),p()),t&2){let e=M();y(),Nt(e.sessionList)}}var gQ=class t{userId="";appName="";sessionId="";sessionSelected=new Ve;sessionReloaded=new Ve;sessionList=[];refreshSessionsSubject=new je;getSessionSubject=new je;reloadSessionSubject=new je;changeDetectorRef=E(ut);sessionService=E(rd);uiStateService=E(zl);i18n=E(ZCe);constructor(){this.refreshSessionsSubject.pipe(Pt(()=>{this.uiStateService.setIsSessionListLoading(!0)}),Si(()=>this.sessionService.listSessions(this.userId,this.appName)),Pt(A=>{A=A.sort((e,i)=>Number(i.lastUpdateTime)-Number(e.lastUpdateTime)),this.sessionList=A,this.changeDetectorRef.markForCheck()}),Ws(300)).subscribe(()=>{this.uiStateService.setIsSessionListLoading(!1)},()=>{this.uiStateService.setIsSessionListLoading(!1)}),this.getSessionSubject.pipe(Pt(()=>{this.uiStateService.setIsSessionLoading(!0)}),Si(A=>this.sessionService.getSession(this.userId,this.appName,A).pipe(br(()=>dA(null)))),Pt(A=>{if(!A)return;let e=this.fromApiResultToSession(A);this.sessionSelected.emit(e),this.changeDetectorRef.markForCheck()})).subscribe(A=>{this.uiStateService.setIsSessionLoading(!1)},A=>{this.uiStateService.setIsSessionLoading(!1)}),this.reloadSessionSubject.pipe(Si(A=>this.sessionService.getSession(this.userId,this.appName,A)),Pt(A=>{let e=this.fromApiResultToSession(A);this.sessionReloaded.emit(e),this.changeDetectorRef.markForCheck()}),Ws(300)).subscribe()}ngOnInit(){setTimeout(()=>{this.refreshSessionsSubject.next()},500)}getSession(A){this.getSessionSubject.next(A)}getDate(A){let e=A.lastUpdateTime;return new Date(e*1e3).toLocaleString()}fromApiResultToSession(A){return{id:A?.id??"",appName:A?.appName??"",userId:A?.userId??"",state:A?.state??[],events:A?.events??[]}}reloadSession(A){this.reloadSessionSubject.next(A)}refreshSession(A){if(this.refreshSessionsSubject.next(),!(this.sessionList.length<=1)){let e=this.sessionList.findIndex(i=>i.id==A);return e==this.sessionList.length-1&&(e=-1),this.sessionList[e+1]}}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-session-tab"]],inputs:{userId:"userId",appName:"appName",sessionId:"sessionId"},outputs:{sessionSelected:"sessionSelected",sessionReloaded:"sessionReloaded"},decls:6,vars:4,consts:[[1,"session-wrapper"],[1,"loading-spinner-container"],[1,"empty-state"],[1,"session-tab-container",2,"margin-top","16px"],["mode","indeterminate"],[3,"ngClass"],[3,"click","ngClass"],[1,"session-info"],[1,"session-id"],[1,"session-date"]],template:function(e,i){if(e&1&&(m(0,"div",0),Wa(1),Ii(2,"async"),ne(3,FtA,2,0,"div",1)(4,GtA,2,1,"div",2)(5,TtA,3,0,"div",3),p()),e&2){let n=Qi(2,2,i.uiStateService.isSessionListLoading());y(3),$(n?3:-1),y(),$(!n&&i.sessionList.length===0?4:5)}},dependencies:[ta,ts,d6,DD],styles:[".session-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;font-size:14px;font-weight:700;color:var(--session-tab-session-wrapper-color)}.session-wrapper[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%]{color:initial;padding-top:1em;text-align:center;font-weight:400;font-style:italic}.session-item[_ngcontent-%COMP%]{display:flex;justify-content:space-between;border:none;background-color:var(--session-tab-session-item-background-color);border-radius:8px;margin-bottom:4px;cursor:pointer}.session-item[_ngcontent-%COMP%]:hover{background-color:var(--session-tab-session-item-hover-background-color)}.session-item.current[_ngcontent-%COMP%]{background-color:var(--session-tab-session-item-current-background-color)}.session-id[_ngcontent-%COMP%]{color:var(--session-tab-session-id-color);font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.session-date[_ngcontent-%COMP%]{color:var(--session-tab-session-date-color);font-family:Roboto;font-size:12px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.3px}.session-info[_ngcontent-%COMP%]{padding:11px}.loading-spinner-container[_ngcontent-%COMP%]{margin-left:auto;margin-right:auto;margin-top:2em}"]})};var OtA={stateIsEmpty:"State is empty"},XCe=new re("State Tab Messages",{factory:()=>OtA});function JtA(t,A){if(t&1&&(m(0,"div",1),T(1),p()),t&2){let e=M();y(),Pe(e.i18n.stateIsEmpty)}}function YtA(t,A){if(t&1&&(m(0,"div"),ve(1,"ngx-json-viewer",2),p()),t&2){let e=M();y(),te("json",e.sessionState)}}var C9=class t{sessionState={};i18n=E(XCe);get isEmptyState(){return!this.sessionState||Object.keys(this.sessionState).length===0}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-state-tab"]],inputs:{sessionState:"sessionState"},decls:3,vars:1,consts:[[1,"state-wrapper"],[1,"empty-state"],[3,"json"]],template:function(e,i){e&1&&(m(0,"div",0),ne(1,JtA,2,1,"div",1)(2,YtA,2,1,"div"),p()),e&2&&(y(),$(i.isEmptyState?1:2))},dependencies:[nd,j1],styles:[".state-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px;margin-top:16px}.state-wrapper[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%]{text-align:center;font-style:italic}"]})};var $Ce=new re("CdkAccordion");var eIe=(()=>{class t{accordion=E($Ce,{optional:!0,skipSelf:!0});_changeDetectorRef=E(ut);_expansionDispatcher=E(tD);_openCloseAllSubscription=Ot.EMPTY;closed=new Ve;opened=new Ve;destroyed=new Ve;expandedChange=new Ve;id=E(un).getId("cdk-accordion-child-");get expanded(){return this._expanded}set expanded(e){if(this._expanded!==e){if(this._expanded=e,this.expandedChange.emit(e),e){this.opened.emit();let i=this.accordion?this.accordion.id:this.id;this._expansionDispatcher.notify(this.id,i)}else this.closed.emit();this._changeDetectorRef.markForCheck()}}_expanded=!1;disabled=!1;_removeUniqueSelectionListener=()=>{};constructor(){}ngOnInit(){this._removeUniqueSelectionListener=this._expansionDispatcher.listen((e,i)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===i&&this.id!==e&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(e=>{this.disabled||(this.expanded=e)})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[2,"expanded","expanded",IA],disabled:[2,"disabled","disabled",IA]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[gt([{provide:$Ce,useValue:void 0}])]})}return t})(),AIe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({})}return t})();var HtA=["body"],ztA=["bodyWrapper"],PtA=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],jtA=["mat-expansion-panel-header","*","mat-action-row"];function VtA(t,A){}var qtA=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],WtA=["mat-panel-title","mat-panel-description","*"];function ZtA(t,A){t&1&&(m(0,"span",1),ft(),m(1,"svg",2),ve(2,"path",3),p()())}var tIe=new re("MAT_ACCORDION"),iIe=new re("MAT_EXPANSION_PANEL"),XtA=(()=>{class t{_template=E(en);_expansionPanel=E(iIe,{optional:!0});constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["ng-template","matExpansionPanelContent",""]]})}return t})(),nIe=new re("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS"),vH=(()=>{class t extends eIe{_viewContainerRef=E(xn);_animationsDisabled=E(Oi,{optional:!0})==="NoopAnimations";_document=E(ht);_ngZone=E(yA);_elementRef=E(eA);_renderer=E(an);_cleanupTransitionEnd;get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(e){this._hideToggle=e}_hideToggle=!1;get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(e){this._togglePosition=e}_togglePosition;afterExpand=new Ve;afterCollapse=new Ve;_inputChanges=new je;accordion=E(tIe,{optional:!0,skipSelf:!0});_lazyContent;_body;_bodyWrapper;_portal;_headerId=E(un).getId("mat-expansion-panel-header-");constructor(){super();let e=E(nIe,{optional:!0});this._expansionDispatcher=E(tD),e&&(this.hideToggle=e.hideToggle)}_hasSpacing(){return this.accordion?this.expanded&&this.accordion.displayMode==="default":!1}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(In(null),$A(()=>this.expanded&&!this._portal),Pn(1)).subscribe(()=>{this._portal=new ba(this._lazyContent._template,this._viewContainerRef)}),this._setupAnimationEvents()}ngOnChanges(e){this._inputChanges.next(e)}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTransitionEnd?.(),this._inputChanges.complete()}_containsFocus(){if(this._body){let e=this._document.activeElement,i=this._body.nativeElement;return e===i||i.contains(e)}return!1}_transitionEndListener=({target:e,propertyName:i})=>{e===this._bodyWrapper?.nativeElement&&i==="grid-template-rows"&&this._ngZone.run(()=>{this.expanded?this.afterExpand.emit():this.afterCollapse.emit()})};_setupAnimationEvents(){this._ngZone.runOutsideAngular(()=>{this._animationsDisabled?(this.opened.subscribe(()=>this._ngZone.run(()=>this.afterExpand.emit())),this.closed.subscribe(()=>this._ngZone.run(()=>this.afterCollapse.emit()))):setTimeout(()=>{let e=this._elementRef.nativeElement;this._cleanupTransitionEnd=this._renderer.listen(e,"transitionend",this._transitionEndListener),e.classList.add("mat-expansion-panel-animations-enabled")},200)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-expansion-panel"]],contentQueries:function(i,n,o){if(i&1&&ni(o,XtA,5),i&2){let r;oA(r=rA())&&(n._lazyContent=r.first)}},viewQuery:function(i,n){if(i&1&&(At(HtA,5),At(ztA,5)),i&2){let o;oA(o=rA())&&(n._body=o.first),oA(o=rA())&&(n._bodyWrapper=o.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:4,hostBindings:function(i,n){i&2&&iA("mat-expanded",n.expanded)("mat-expansion-panel-spacing",n._hasSpacing())},inputs:{hideToggle:[2,"hideToggle","hideToggle",IA],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[gt([{provide:tIe,useValue:void 0},{provide:iIe,useExisting:t}]),Ct,ti],ngContentSelectors:jtA,decls:9,vars:4,consts:[["bodyWrapper",""],["body",""],[1,"mat-expansion-panel-content-wrapper"],["role","region",1,"mat-expansion-panel-content",3,"id"],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(i,n){i&1&&(Kt(PtA),NA(0),m(1,"div",2,0)(3,"div",3,1)(5,"div",4),NA(6,1),ne(7,VtA,0,0,"ng-template",5),p(),NA(8,2),p()()),i&2&&(y(),AA("inert",n.expanded?null:""),y(2),te("id",n.id),AA("aria-labelledby",n._headerId),y(4),te("cdkPortalOutlet",n._portal))},dependencies:[bc],styles:[".mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden;position:relative;background:var(--mat-expansion-container-background-color, var(--mat-sys-surface));color:var(--mat-expansion-container-text-color, var(--mat-sys-on-surface));border-radius:var(--mat-expansion-container-shape, 12px)}.mat-expansion-panel.mat-expansion-panel-animations-enabled{transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape, 12px);border-top-left-radius:var(--mat-expansion-container-shape, 12px)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape, 12px);border-bottom-left-radius:var(--mat-expansion-container-shape, 12px)}@media(forced-colors: active){.mat-expansion-panel{outline:solid 1px}}.mat-expansion-panel-content-wrapper{display:grid;grid-template-rows:0fr;grid-template-columns:100%}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content-wrapper{transition:grid-template-rows 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{grid-template-rows:1fr}@supports not (grid-template-rows: 0fr){.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;min-height:0;visibility:hidden;font-family:var(--mat-expansion-container-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-expansion-container-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-expansion-container-text-weight, var(--mat-sys-body-large-weight));line-height:var(--mat-expansion-container-text-line-height, var(--mat-sys-body-large-line-height));letter-spacing:var(--mat-expansion-container-text-tracking, var(--mat-sys-body-large-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content{transition:visibility 190ms linear}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper>.mat-expansion-panel-content{visibility:visible}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color, var(--mat-sys-outline))}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}return t})();var oIe=(()=>{class t{panel=E(vH,{host:!0});_element=E(eA);_focusMonitor=E(ns);_changeDetectorRef=E(ut);_parentChangeSubscription=Ot.EMPTY;constructor(){E(Wn).load(Pr);let e=this.panel,i=E(nIe,{optional:!0}),n=E(new ws("tabindex"),{optional:!0}),o=e.accordion?e.accordion._stateChanges.pipe($A(r=>!!(r.hideToggle||r.togglePosition))):vr;this.tabIndex=parseInt(n||"")||0,this._parentChangeSubscription=Bi(e.opened,e.closed,o,e._inputChanges.pipe($A(r=>!!(r.hideToggle||r.disabled||r.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),e.closed.pipe($A(()=>e._containsFocus())).subscribe(()=>this._focusMonitor.focusVia(this._element,"program")),i&&(this.expandedHeight=i.expandedHeight,this.collapsedHeight=i.collapsedHeight)}expandedHeight;collapsedHeight;tabIndex=0;get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){let e=this._isExpanded();return e&&this.expandedHeight?this.expandedHeight:!e&&this.collapsedHeight?this.collapsedHeight:null}_keydown(e){switch(e.keyCode){case 32:case 13:Tr(e)||(e.preventDefault(),this._toggle());break;default:this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(e);return}}focus(e,i){e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(e=>{e&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=xe({type:t,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:13,hostBindings:function(i,n){i&1&&ee("click",function(){return n._toggle()})("keydown",function(r){return n._keydown(r)}),i&2&&(AA("id",n.panel._headerId)("tabindex",n.disabled?-1:n.tabIndex)("aria-controls",n._getPanelId())("aria-expanded",n._isExpanded())("aria-disabled",n.panel.disabled),cn("height",n._getHeaderHeight()),iA("mat-expanded",n._isExpanded())("mat-expansion-toggle-indicator-after",n._getTogglePosition()==="after")("mat-expansion-toggle-indicator-before",n._getTogglePosition()==="before"))},inputs:{expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight",tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:ln(e)]},ngContentSelectors:WtA,decls:5,vars:3,consts:[[1,"mat-content"],[1,"mat-expansion-indicator"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 -960 960 960","aria-hidden","true","focusable","false"],["d","M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z"]],template:function(i,n){i&1&&(Kt(qtA),m(0,"span",0),NA(1),NA(2,1),NA(3,2),p(),ne(4,ZtA,3,0,"span",1)),i&2&&(iA("mat-content-hide-toggle",!n._showToggle()),y(4),$(n._showToggle()?4:-1))},styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;height:var(--mat-expansion-header-collapsed-state-height, 48px);font-family:var(--mat-expansion-header-text-font, var(--mat-sys-title-medium-font));font-size:var(--mat-expansion-header-text-size, var(--mat-sys-title-medium-size));font-weight:var(--mat-expansion-header-text-weight, var(--mat-sys-title-medium-weight));line-height:var(--mat-expansion-header-text-line-height, var(--mat-sys-title-medium-line-height));letter-spacing:var(--mat-expansion-header-text-tracking, var(--mat-sys-title-medium-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-header{transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header::before{border-radius:inherit}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height, 64px)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color, var(--mat-sys-surface))}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color, var(--mat-sys-on-surface))}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color, var(--mat-sys-on-surface-variant))}.mat-expansion-panel-animations-enabled .mat-expansion-indicator{transition:transform 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header.mat-expanded .mat-expansion-indicator{transform:rotate(180deg)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-legacy-header-indicator-display, none)}.mat-expansion-indicator svg{width:24px;height:24px;margin:0 -8px;vertical-align:middle;fill:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-header-indicator-display, inline-block)}@media(forced-colors: active){.mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}}'],encapsulation:2,changeDetection:0})}return t})();var rIe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=Oe({type:t,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]})}return t})();var sIe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({imports:[ui,AIe,td]})}return t})();function $tA(t,A){t&1&&ve(0,"div",8)}function eiA(t,A){if(t&1&&(m(0,"span",14),T(1),p()),t&2){let e=M().$implicit,i=M();cn("left",i.getRelativeStart(e.span)+5,"%"),y(),FA("",(i.toMs(e.span.end_time)-i.toMs(e.span.start_time)).toFixed(2),"ms")}}function AiA(t,A){if(t&1){let e=Ue();m(0,"div",5),ee("click",function(){let n=q(e).$implicit,o=M();return W(o.selectRow(n))})("mouseenter",function(){let n=q(e).$implicit,o=M();return W(o.onHover(n))})("mouseleave",function(){q(e);let n=M();return W(n.onHoverOut())}),m(1,"div",6)(2,"div",7),Rt(3,$tA,1,0,"div",8,b1),p(),m(5,"span",9),T(6),p(),m(7,"div",10),T(8),p()(),m(9,"div",11)(10,"div",12),T(11),p(),ne(12,eiA,2,3,"span",13),p()()}if(t&2){let e=A.$implicit,i=M();iA("selected",i.rowSelected(e)),y(3),Nt(i.getArray(e.level)),y(2),iA("is-event-row",i.isEventRow(e)),y(),FA(" ",i.getSpanIcon(e.span.name)," "),y(),cn("width",400-e.level*20,"px"),iA("is-event-row",i.isEventRow(e)),y(),FA(" ",e.span.name," "),y(2),cn("left",i.getRelativeStart(e.span),"%")("width",i.getRelativeWidth(e.span),"%"),y(),FA(" ",(i.toMs(e.span.end_time)-i.toMs(e.span.start_time)).toFixed(2),"ms "),y(),$(i.getRelativeWidth(e.span)<10?12:-1)}}var I9=class t{spans=[];invocationId="";tree=[];eventData;baseStartTimeMs=0;totalDurationMs=1;flatTree=[];traceLabelIconMap=new Map([["Invocation","start"],["agent_run","directions_run"],["invoke_agent","directions_run"],["tool","build"],["call_llm","chat"]]);selectedRow=void 0;traceService=E(q1);constructor(){}ngOnInit(){this.tree=this.buildSpanTree(this.spans),this.flatTree=this.flattenTree(this.tree);let A=this.getGlobalTimes(this.spans);this.baseStartTimeMs=A.start,this.totalDurationMs=A.duration,this.traceService.selectedTraceRow$.subscribe(e=>this.selectedRow=e),this.traceService.eventData$.subscribe(e=>this.eventData=e)}buildSpanTree(A){let e=A.map(o=>ae({},o)),i=new Map,n=[];return e.forEach(o=>i.set(o.span_id,o)),e.forEach(o=>{if(o.parent_span_id&&i.has(o.parent_span_id)){let r=i.get(o.parent_span_id);r.children=r.children||[],r.children.push(o)}else n.push(o)}),n}getGlobalTimes(A){let e=Math.min(...A.map(n=>this.toMs(n.start_time))),i=Math.max(...A.map(n=>this.toMs(n.end_time)));return{start:e,duration:i-e}}toMs(A){return A/1e6}getRelativeStart(A){return(this.toMs(A.start_time)-this.baseStartTimeMs)/this.totalDurationMs*100}getRelativeWidth(A){return(this.toMs(A.end_time)-this.toMs(A.start_time))/this.totalDurationMs*100}flattenTree(A,e=0){return A.flatMap(n=>[{span:n,level:e},...n.children?this.flattenTree(n.children,e+1):[]])}getSpanIcon(A){for(let[e,i]of this.traceLabelIconMap.entries())if(A.startsWith(e))return i;return"start"}getArray(A){return Array.from({length:A})}selectRow(A){if(this.selectedRow&&this.selectedRow.span_id==A.span.span_id){this.traceService.selectedRow(void 0),this.traceService.setHoveredMessages(void 0,this.invocationId);return}this.traceService.selectedRow(A.span),this.traceService.setHoveredMessages(A.span,this.invocationId)}rowSelected(A){return this.selectedRow==A.span}isEventRow(A){if(!A.span.attributes)return!1;let e=A?.span.attributes["gcp.vertex.agent.event_id"];return!!(e&&this.eventData&&this.eventData.has(e))}onHover(A){this.traceService.setHoveredMessages(A.span,this.invocationId)}onHoverOut(){this.traceService.setHoveredMessages(void 0,this.invocationId),this.selectedRow&&this.traceService.setHoveredMessages(this.selectedRow,this.invocationId)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-trace-tree"]],inputs:{spans:"spans",invocationId:"invocationId"},decls:8,vars:1,consts:[[2,"margin-top","15px"],[1,"invocation-id-container"],[1,"invocation-id"],[1,"trace-container"],[1,"trace-row",3,"selected"],[1,"trace-row",3,"click","mouseenter","mouseleave"],[1,"trace-row-left"],[1,"trace-indent"],[1,"indent-connector"],[1,"material-symbols-outlined",2,"margin-right","8px"],[1,"trace-label"],[1,"trace-bar-container"],[1,"trace-bar"],[1,"short-trace-bar-duration",3,"left"],[1,"short-trace-bar-duration"]],template:function(e,i){e&1&&(m(0,"div",0)(1,"div",1),T(2,"Invocation ID: "),m(3,"div",2),T(4),p()(),m(5,"div",3),Rt(6,AiA,13,16,"div",4,Fi),p()()),e&2&&(y(4),Pe(i.invocationId),y(2),Nt(i.flatTree))},styles:[".trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-label[_ngcontent-%COMP%]{width:400px;color:var(--trace-tree-trace-label-color);font-family:Google Sans Mono,monospace;font-size:13px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.trace-bar-container[_ngcontent-%COMP%]{width:100%;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:var(--trace-tree-trace-bar-background-color);border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:var(--trace-tree-trace-bar-color);font-family:Google Sans}.short-trace-bar-duration[_ngcontent-%COMP%]{position:absolute;color:var(--trace-tree-short-trace-bar-duration-color)}.trace-duration[_ngcontent-%COMP%]{color:var(--trace-tree-trace-duration-color);font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px;align-items:center;cursor:pointer}.trace-row[_ngcontent-%COMP%]:hover{background-color:var(--trace-tree-trace-row-hover-background-color)}.trace-row.selected[_ngcontent-%COMP%]{background-color:var(--trace-tree-trace-row-selected-background-color)}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:var(--trace-tree-vertical-line-background-color)}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:var(--trace-tree-horizontal-line-background-color)}.trace-row-left[_ngcontent-%COMP%]{display:flex;width:50%}.invocation-id-container[_ngcontent-%COMP%]{color:var(--trace-tree-invocation-id-container-color);font-size:14px;font-style:normal;font-weight:700;line-height:20px;letter-spacing:0px;margin-bottom:5px}.invocation-id[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}.trace-row-left[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .trace-row-left[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{color:var(--trace-tree-trace-row-left-span-div-color)}.trace-row-left[_ngcontent-%COMP%] .is-event-row[_ngcontent-%COMP%]{color:var(--trace-tree-trace-row-left-is-event-row-color)}"]})};var tiA={noInvocationsFound:"No invocations found",invocationsTitle:"Invocations"},aIe=new re("Trace Tab Messages",{factory:()=>tiA});function iiA(t,A){if(t&1&&(m(0,"div",1),T(1),p()),t&2){let e=M();y(),Pe(e.i18n.noInvocationsFound)}}function niA(t,A){if(t&1&&(m(0,"div",4)(1,"mat-expansion-panel")(2,"mat-expansion-panel-header")(3,"mat-panel-title"),T(4),p()(),ve(5,"app-trace-tree",5),p()()),t&2){let e=A.$implicit,i=M(2);y(4),FA(" ",i.invocToUserMsg.get(e.key)," "),y(),te("spans",e.value)("invocationId",i.findInvocIdFromTraceId(e.key))}}function oiA(t,A){if(t&1&&(m(0,"h2",2),T(1),p(),m(2,"div",3),Rt(3,niA,6,3,"div",4,Fi),Ii(5,"keyvalue"),p()),t&2){let e=M();y(),Pe(e.i18n.invocationsTitle),y(2),Nt(b4(5,1,e.invocTraces,e.mapOrderPreservingSort))}}var u9=class t{traceData=[];invocTraces=new Map;invocToUserMsg=new Map;i18n=E(aIe);constructor(){}ngOnInit(){}ngOnChanges(A){"traceData"in A&&this.rebuildTrace()}rebuildTrace(){this.invocTraces=this.traceData.reduce((A,e)=>{let i=e.trace_id,n=A.get(i);return n?(n.push(e),n.sort((o,r)=>o.start_time-r.start_time)):A.set(i,[e]),A},new Map);for(let[A,e]of this.invocTraces)this.invocToUserMsg.set(A,this.findUserMsgFromInvocGroup(e))}getArray(A){return Array.from({length:A})}findUserMsgFromInvocGroup(A){let e=A?.find(o=>o.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in o.attributes);return e?JSON.parse(e.attributes["gcp.vertex.agent.llm_request"]).contents.filter(o=>o.role=="user").at(-1)?.parts[0]?.text??"[attachment]":"[no invocation id found]"}findInvocIdFromTraceId(A){return this.invocTraces.get(A)?.find(i=>i.attributes!==void 0&&"gcp.vertex.agent.invocation_id"in i.attributes).attributes["gcp.vertex.agent.invocation_id"]}mapOrderPreservingSort=(A,e)=>0;static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-trace-tab"]],inputs:{traceData:"traceData"},features:[ti],decls:3,vars:1,consts:[[1,"trace-wrapper"],[1,"empty-state"],["mat-dialog-title","",1,"trace-title"],[1,"trace-list-wrapper"],[1,"trace-item"],[3,"spans","invocationId"]],template:function(e,i){e&1&&(m(0,"div",0),ne(1,iiA,2,1,"div",1)(2,oiA,6,4),p()),e&2&&(y(),$(i.invocTraces.size===0?1:2))},dependencies:[tr,vH,oIe,rIe,I9,HI],styles:[".trace-wrapper[_ngcontent-%COMP%]{padding-left:25px;padding-right:25px}.trace-wrapper[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%]{padding-top:1em;text-align:center;font-style:italic}.trace-container[_ngcontent-%COMP%]{width:100%;white-space:nowrap;font-size:12px}.trace-title[_ngcontent-%COMP%]{color:var(--trace-tab-trace-title-color);font-size:14px;font-style:normal;font-weight:700;line-height:20px;letter-spacing:0px}.trace-label[_ngcontent-%COMP%]{width:400px;color:var(--trace-tab-trace-label-color);text-overflow:ellipsis;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:0px}.trace-bar-container[_ngcontent-%COMP%]{width:50vw;position:relative;height:16px}.trace-bar[_ngcontent-%COMP%]{position:absolute;height:18px;background-color:var(--trace-tab-trace-bar-background-color);border-radius:4px;padding-left:4px;overflow:hidden;font-size:11px;line-height:16px;color:var(--trace-tab-trace-bar-color);font-family:Google Sans}.trace-duration[_ngcontent-%COMP%]{color:var(--trace-tab-trace-duration-color);font-weight:400;margin-left:4px}.trace-row[_ngcontent-%COMP%]{display:flex;align-items:stretch;position:relative;height:32px}.trace-indent[_ngcontent-%COMP%]{display:flex;flex-shrink:0;height:100%}.indent-connector[_ngcontent-%COMP%]{width:20px;position:relative;height:100%}.vertical-line[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:9px;width:1px;background-color:var(--trace-tab-vertical-line-background-color)}.horizontal-line[_ngcontent-%COMP%]{position:absolute;top:50%;left:9px;width:10px;height:1px;background-color:var(--trace-tab-horizontal-line-background-color)}.trace-item[_ngcontent-%COMP%]{margin-top:5px}.trace-item[_ngcontent-%COMP%]{--mat-expansion-container-background-color: var(--trace-tab-trace-item-container-background-color)}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-focus-state-layer-color: var(--trace-tab-trace-item-header-focus-state-layer-color)}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-description-color: var(--trace-tab-trace-item-header-description-color)}.trace-item[_ngcontent-%COMP%]{--mat-expansion-header-text-size: 15}.trace-item[_ngcontent-%COMP%] .mat-expansion-panel-header.mat-expanded:focus{background-color:var(--trace-tab-mat-expansion-panel-header-focus-background-color)}.trace-item[_ngcontent-%COMP%] .mat-expansion-panel-header.mat-expanded{background-color:var(--trace-tab-mat-expansion-panel-header-background-color)}.trace-item[_ngcontent-%COMP%] .mat-expansion-panel-header.mat-expanded:hover{background-color:var(--trace-tab-mat-expansion-panel-header-hover-background-color)} .mat-expansion-panel-header-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden} .mat-expansion-panel-header-description{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}"]})};var riA={agentDevelopmentKitLabel:"Agent Development Kit",collapsePanelTooltip:"Collapse panel",traceTabLabel:"Trace",eventsTabLabel:"Events",stateTabLabel:"State",artifactsTabLabel:"Artifacts",sessionsTabLabel:"Sessions",evalTabLabel:"Eval",selectEventAriaLabel:"Select event",eventDetailsTabLabel:"Event",requestDetailsTabLabel:"Request",responseDetailsTabLabel:"Response",responseIsNotAvailable:"Response is not available",requestIsNotAvailable:"Request is not available"},cIe=new re("Side Panel Messages",{factory:()=>riA});var siA=["evalTabContainer"];function aiA(t,A){t&1&&En(0)}function ciA(t,A){if(t&1&&(m(0,"div"),ne(1,aiA,1,0,"ng-container",12),m(2,"div",13),T(3,"Powered by Agent Development Kit"),p()()),t&2){let e=M(2);y(),te("ngComponentOutlet",e.logoComponent)}}function liA(t,A){if(t&1&&(ve(0,"img",14),T(1)),t&2){let e=M(2);y(),FA(" ",e.i18n.agentDevelopmentKitLabel," ")}}function giA(t,A){if(t&1&&(m(0,"mat-option",17),T(1),p()),t&2){let e=A.$implicit;te("value",e),y(),Pe(e)}}function diA(t,A){t&1&&Rt(0,giA,2,2,"mat-option",17,Fi),t&2&&Nt(A)}function CiA(t,A){if(t&1&&(m(0,"mat-option",17),T(1),p()),t&2){let e=M(3);te("value",e.selectedAppControl().value),y(),Pe(e.selectedAppControl().value)}}function IiA(t,A){if(t&1){let e=Ue();m(0,"div",18)(1,"mat-icon",19),ee("click",function(){q(e);let n=M(3);return W(n.openAddItemDialog.emit(!0))}),T(2,"add"),p(),m(3,"mat-icon",20),ee("click",function(){q(e);let n=M(3);return W(!n.disableBuilderIcon()&&n.enterBuilderMode.emit(!0))}),T(4,"edit"),p()()}if(t&2){let e=M(3);y(3),cn("cursor",e.disableBuilderIcon()?"not-allowed":"pointer")("opacity",e.disableBuilderIcon()?"0.5":"1")("margin-right",32,"px"),te("matTooltip",e.disableBuilderIcon()?"Thia gent was not built by builder":"Edit in Builder Mode")}}function uiA(t,A){if(t&1){let e=Ue();m(0,"div",11)(1,"div",15)(2,"mat-select",16),ee("selectionChange",function(n){q(e);let o=M(2);return W(o.appSelectionChange.emit(n))}),ne(3,diA,2,0),Ii(4,"async"),ne(5,CiA,2,2,"mat-option",17),p()(),ne(6,IiA,5,7,"div",18),p()}if(t&2){let e,i=M(2);y(2),te("placeholder",i.isLoadingApps()()?"Loading...":"Select an agent")("formControl",i.selectedAppControl()),y(),$((e=Qi(4,5,i.apps$()))?3:-1,e),y(2),$(i.selectedAppControl().value&&i.isLoadingApps()()?5:-1),y(),$(i.isBuilderMode()?-1:6)}}function hiA(t,A){if(t&1){let e=Ue();m(0,"div",6)(1,"div",7)(2,"div",8)(3,"div",9),ne(4,ciA,4,1,"div")(5,liA,2,1),p(),m(6,"span",10),ee("click",function(){q(e);let n=M();return W(n.closePanel.emit())}),T(7,"left_panel_close"),p()()()(),ne(8,uiA,7,7,"div",11),Ii(9,"async")}if(t&2){let e=M();y(4),$(e.logoComponent?4:5),y(2),M1("matTooltip",e.i18n.collapsePanelTooltip),y(2),$(Qi(9,3,e.isApplicationSelectorEnabledObs())?8:-1)}}function BiA(t,A){t&1&&(m(0,"div",2),ve(1,"mat-progress-spinner",21),p())}function EiA(t,A){if(t&1&&(m(0,"span",28),T(1),p()),t&2){let e=M(3);y(),Pe(e.i18n.sessionsTabLabel)}}function fiA(t,A){t&1&&En(0)}function QiA(t,A){if(t&1&&(m(0,"mat-tab",23),ne(1,EiA,2,1,"ng-template",24)(2,fiA,1,0,"ng-container",27),p()),t&2){M();let e=Ji(19);y(2),te("ngTemplateOutlet",e)}}function miA(t,A){if(t&1&&(m(0,"span",28),T(1),p()),t&2){let e=M(3);y(),Pe(e.i18n.traceTabLabel)}}function piA(t,A){if(t&1&&(m(0,"mat-tab",23),ne(1,miA,2,1,"ng-template",24),ve(2,"app-trace-tab",29),p()),t&2){let e=M(2);y(2),te("traceData",e.traceData())}}function wiA(t,A){if(t&1&&(m(0,"span",28),T(1),p()),t&2){let e=M(2);y(),Pe(e.i18n.eventsTabLabel)}}function yiA(t,A){if(t&1&&(m(0,"span",28),T(1),p()),t&2){let e=M(2);y(),Pe(e.i18n.stateTabLabel)}}function DiA(t,A){if(t&1&&(m(0,"span",28),T(1),p()),t&2){let e=M(3);y(),Pe(e.i18n.artifactsTabLabel)}}function viA(t,A){if(t&1&&(m(0,"mat-tab"),ne(1,DiA,2,1,"ng-template",24),ve(2,"app-artifact-tab",30),p()),t&2){let e=M(2);y(2),te("artifacts",e.artifacts())}}function biA(t,A){if(t&1&&(m(0,"span",28),T(1),p()),t&2){let e=M(3);y(),Pe(e.i18n.sessionsTabLabel)}}function MiA(t,A){t&1&&En(0)}function SiA(t,A){if(t&1&&(m(0,"mat-tab",23),ne(1,biA,2,1,"ng-template",24)(2,MiA,1,0,"ng-container",27),p()),t&2){M();let e=Ji(19);y(2),te("ngTemplateOutlet",e)}}function kiA(t,A){if(t&1&&(m(0,"span",28),T(1),p()),t&2){let e=M(3);y(),Pe(e.i18n.evalTabLabel)}}function xiA(t,A){t&1&&(m(0,"mat-tab"),ne(1,kiA,2,1,"ng-template",24),En(2,null,1),p())}function _iA(t,A){if(t&1){let e=Ue();m(0,"app-session-tab",31),ee("sessionSelected",function(n){q(e);let o=M(2);return W(o.sessionSelected.emit(n))})("sessionReloaded",function(n){q(e);let o=M(2);return W(o.sessionReloaded.emit(n))}),p()}if(t&2){let e=M(2);te("userId",e.userId())("appName",e.appName())("sessionId",e.sessionId())}}function RiA(t,A){if(t&1){let e=Ue();m(0,"div",3)(1,"mat-tab-group",22),ee("selectedTabChange",function(n){q(e);let o=M();return W(o.tabChange.emit(n))}),Wa(2),Ii(3,"async"),ne(4,QiA,3,1,"mat-tab",23)(5,piA,3,1,"mat-tab",23),Ii(6,"async"),m(7,"mat-tab",23),ne(8,wiA,2,1,"ng-template",24),m(9,"app-event-tab",25),ee("selectedEvent",function(n){q(e);let o=M();return W(o.eventSelected.emit(n))}),p()(),m(10,"mat-tab"),ne(11,yiA,2,1,"ng-template",24),ve(12,"app-state-tab",26),p(),ne(13,viA,3,1,"mat-tab"),Ii(14,"async"),ne(15,SiA,3,1,"mat-tab",23)(16,xiA,4,0,"mat-tab"),Ii(17,"async"),p(),ne(18,_iA,1,3,"ng-template",null,0,a2),p()}if(t&2){let e=M(),i=s2(2);te("hidden",i);let n=Qi(3,9,e.isSessionsTabReorderingEnabledObs);y(4),$(n?4:-1),y(),$(Qi(6,11,e.isTraceEnabledObs)?5:-1),y(4),te("eventsMap",e.eventData())("traceData",e.traceData()),y(3),te("sessionState",e.currentSessionState()),y(),$(Qi(14,13,e.isArtifactsTabEnabledObs)?13:-1),y(2),$(n?-1:15),y(),$(Qi(17,15,e.isEvalEnabledObs)?16:-1)}}function NiA(t,A){if(t&1){let e=Ue();m(0,"div",44),ee("click",function(){q(e);let n=M(2);return W(n.openImageDialog.emit(n.rawSvgString()))}),p()}if(t&2){let e=M(2);te("innerHtml",e.renderedEventGraph(),J0)}}function LiA(t,A){t&1&&(m(0,"div",42),ve(1,"mat-progress-spinner",21),p())}function FiA(t,A){if(t&1&&(m(0,"div",43),T(1),p()),t&2){let e=M(2);y(),Pe(e.i18n.requestIsNotAvailable)}}function GiA(t,A){if(t&1&&(m(0,"div",40),ve(1,"ngx-json-viewer",41),p()),t&2){let e=M(2);y(),te("json",e.llmRequest())}}function KiA(t,A){t&1&&(m(0,"div",42),ve(1,"mat-progress-spinner",21),p())}function UiA(t,A){if(t&1&&(m(0,"div",43),T(1),p()),t&2){let e=M(2);y(),Pe(e.i18n.responseIsNotAvailable)}}function TiA(t,A){if(t&1&&(m(0,"div",40),ve(1,"ngx-json-viewer",41),p()),t&2){let e=M(2);y(),te("json",e.llmResponse())}}function OiA(t,A){if(t&1){let e=Ue();m(0,"div",4)(1,"div",32)(2,"div",33)(3,"mat-paginator",34),ee("page",function(n){q(e);let o=M();return W(o.page.emit(n))}),p(),m(4,"button",35)(5,"mat-icon",36),ee("click",function(){q(e);let n=M();return W(n.closeSelectedEvent.emit())}),T(6,"close"),p()()()(),m(7,"div")(8,"mat-tab-group")(9,"mat-tab",37)(10,"div",38),ne(11,NiA,1,1,"div",39),p(),m(12,"div",40),ve(13,"ngx-json-viewer",41),p()(),m(14,"mat-tab",37),ne(15,LiA,2,0,"div",42),Ii(16,"async"),ne(17,FiA,2,1,"div",43)(18,GiA,2,1,"div",40),p(),m(19,"mat-tab",37),ne(20,KiA,2,0,"div",42),Ii(21,"async"),ne(22,UiA,2,1,"div",43)(23,TiA,2,1,"div",40),p()()()()}if(t&2){let e=M(),i=s2(2);te("hidden",i),y(3),te("length",e.eventData().size)("pageSize",1)("pageIndex",e.selectedEventIndex()),AA("aria-label",e.i18n.selectEventAriaLabel),y(6),M1("label",e.i18n.eventDetailsTabLabel),y(2),$(e.renderedEventGraph()?11:-1),y(2),te("json",e.selectedEvent()),y(),M1("label",e.i18n.requestDetailsTabLabel),y(),$(Qi(16,12,e.uiStateService.isEventRequestResponseLoading())===!0?15:e.llmRequest()?18:17),y(4),M1("label",e.i18n.responseDetailsTabLabel),y(),$(Qi(21,14,e.uiStateService.isEventRequestResponseLoading())===!0?20:e.llmResponse()?23:22)}}var dQ=class t{appName=lt("");userId=lt("");sessionId=lt("");traceData=lt([]);eventData=lt(new Map);currentSessionState=lt();artifacts=lt([]);selectedEvent=lt();selectedEventIndex=lt();renderedEventGraph=lt();rawSvgString=lt(null);llmRequest=lt();llmResponse=lt();showSidePanel=lt(!1);isApplicationSelectorEnabledObs=lt(dA(!1));apps$=lt(dA([]));isLoadingApps=lt(mA(!1));selectedAppControl=lt(new g2("",{nonNullable:!0}));isBuilderMode=lt(!1);disableBuilderIcon=lt(!1);closePanel=No();appSelectionChange=No();tabChange=No();eventSelected=No();sessionSelected=No();sessionReloaded=No();evalCaseSelected=No();evalSetIdSelected=No();returnToSession=No();evalNotInstalled=No();page=No();closeSelectedEvent=No();openImageDialog=No();openAddItemDialog=No();enterBuilderMode=No();eventTabComponent=es(lQ);sessionTabComponent=es(gQ);evalTabComponent=es(a0);evalTabContainer=es("evalTabContainer",{read:xn});logoComponent=E(c9,{optional:!0});i18n=E(cIe);featureFlagService=E(Ks);evalTabComponentClass=E(n9,{optional:!0});environmentInjector=E(Hr);uiStateService=E(zl);destroyRef=E(Fr);isAlwaysOnSidePanelEnabledObs=this.featureFlagService.isAlwaysOnSidePanelEnabled();isTraceEnabledObs=this.featureFlagService.isTraceEnabled();isArtifactsTabEnabledObs=this.featureFlagService.isArtifactsTabEnabled();isEvalEnabledObs=this.featureFlagService.isEvalEnabled();isTokenStreamingEnabledObs=this.featureFlagService.isTokenStreamingEnabled();isMessageFileUploadEnabledObs=this.featureFlagService.isMessageFileUploadEnabled();isManualStateUpdateEnabledObs=this.featureFlagService.isManualStateUpdateEnabled();isBidiStreamingEnabledObs=this.featureFlagService.isBidiStreamingEnabled;isSessionsTabReorderingEnabledObs=this.featureFlagService.isSessionsTabReorderingEnabled();ngAfterViewInit(){setTimeout(()=>{this.initEvalTab()},500)}initEvalTab(){this.isEvalEnabledObs.pipe(_l()).subscribe(A=>{if(A){let e=this.evalTabContainer()?.createComponent(this.evalTabComponentClass??a0,{environmentInjector:this.environmentInjector});if(!e)return;Xr(this.environmentInjector,()=>{pa(()=>{e.setInput("appName",this.appName()),e.setInput("userId",this.userId()),e.setInput("sessionId",this.sessionId())})}),e.instance.sessionSelected.subscribe(i=>{this.sessionSelected.emit(i)}),e.instance.evalCaseSelected.subscribe(i=>{this.evalCaseSelected.emit(i)}),e.instance.evalSetIdSelected.subscribe(i=>{this.evalSetIdSelected.emit(i)}),e.instance.shouldReturnToSession.subscribe(i=>{this.returnToSession.emit(i)}),e.instance.evalNotInstalledMsg.subscribe(i=>{this.evalNotInstalled.emit(i)})}})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-side-panel"]],viewQuery:function(e,i){e&1&&(Kr(i.eventTabComponent,lQ,5),Kr(i.sessionTabComponent,gQ,5),Kr(i.evalTabComponent,a0,5),Kr(i.evalTabContainer,siA,5,xn)),e&2&&Aa(4)},inputs:{appName:[1,"appName"],userId:[1,"userId"],sessionId:[1,"sessionId"],traceData:[1,"traceData"],eventData:[1,"eventData"],currentSessionState:[1,"currentSessionState"],artifacts:[1,"artifacts"],selectedEvent:[1,"selectedEvent"],selectedEventIndex:[1,"selectedEventIndex"],renderedEventGraph:[1,"renderedEventGraph"],rawSvgString:[1,"rawSvgString"],llmRequest:[1,"llmRequest"],llmResponse:[1,"llmResponse"],showSidePanel:[1,"showSidePanel"],isApplicationSelectorEnabledObs:[1,"isApplicationSelectorEnabledObs"],apps$:[1,"apps$"],isLoadingApps:[1,"isLoadingApps"],selectedAppControl:[1,"selectedAppControl"],isBuilderMode:[1,"isBuilderMode"],disableBuilderIcon:[1,"disableBuilderIcon"]},outputs:{closePanel:"closePanel",appSelectionChange:"appSelectionChange",tabChange:"tabChange",eventSelected:"eventSelected",sessionSelected:"sessionSelected",sessionReloaded:"sessionReloaded",evalCaseSelected:"evalCaseSelected",evalSetIdSelected:"evalSetIdSelected",returnToSession:"returnToSession",evalNotInstalled:"evalNotInstalled",page:"page",closeSelectedEvent:"closeSelectedEvent",openImageDialog:"openImageDialog",openAddItemDialog:"openAddItemDialog",enterBuilderMode:"enterBuilderMode"},decls:8,vars:9,consts:[["sessionsTabBody",""],["evalTabContainer",""],[1,"loading-spinner-container"],[1,"tabs-container",3,"hidden"],[1,"details-panel-container",3,"hidden"],[1,"resize-handler"],[2,"margin-top","20px","margin-left","20px","display","flex"],[2,"width","100%"],[1,"drawer-header"],[1,"drawer-logo"],[1,"material-symbols-outlined",2,"color","#c4c7c5","cursor","pointer","margin-right","15px",3,"click","matTooltip"],[1,"app-actions"],[4,"ngComponentOutlet"],[1,"powered-by-adk"],["src","assets/ADK-512-color.svg","width","32px","height","32px"],[1,"app-select-container"],[1,"app-select",3,"selectionChange","placeholder","formControl"],[1,"app-name-option",3,"value"],[1,"mode-toggle-container"],["matTooltip","Create new agent in builder mode",2,"cursor","pointer","margin-right","16px",3,"click"],[3,"click","matTooltip"],["mode","indeterminate","diameter","50"],[3,"selectedTabChange"],[1,"tabs-header"],["mat-tab-label",""],[3,"selectedEvent","eventsMap","traceData"],[3,"sessionState"],[4,"ngTemplateOutlet"],[1,"tab-label"],[3,"traceData"],[3,"artifacts"],[3,"sessionSelected","sessionReloaded","userId","appName","sessionId"],[1,"details-content"],[2,"display","flex","justify-content","flex-end","margin-top","10px"],[1,"event-paginator",3,"page","length","pageSize","pageIndex"],["mat-mini-fab",""],[3,"click"],[3,"label"],[1,"event-graph-container"],[3,"innerHtml"],[1,"json-viewer-container"],[3,"json"],[1,"request-response-loading-spinner-container"],[1,"request-response-empty-state"],[3,"click","innerHtml"]],template:function(e,i){if(e&1&&(ne(0,hiA,10,5),Ii(1,"async"),Wa(2),Ii(3,"async"),ne(4,BiA,2,0,"div",2)(5,RiA,20,17,"div",3)(6,OiA,24,16,"div",4),ve(7,"div",5)),e&2){$(Qi(1,4,i.isAlwaysOnSidePanelEnabledObs)===!1?0:-1),y(2);let n=S1(Qi(3,6,i.uiStateService.isSessionLoading()));y(2),$(n?4:-1),y(),$(i.appName()!=""&&i.showSidePanel()?5:-1),y(),$(i.selectedEvent()&&i.showSidePanel()?6:-1)}},dependencies:[ts,Kn,Fo,YI,nl,Ma,a9,g6,fH,u9,lQ,C9,pD,gQ,RAe,J5,ir,nd,j1,Ac,Yl,RB,cN,Z1],styles:[".drawer-header[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:space-between;align-items:center}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-container-color: var(--side-panel-button-filled-container-color)}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-label-text-color: var(--side-panel-button-filled-label-text-color)}.drawer-header[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{width:36px;height:36px;color:var(--side-panel-mat-icon-color);cursor:pointer;display:flex;align-items:center;justify-content:center}.tabs-container[_ngcontent-%COMP%]{width:100%;margin-top:20px}.tab-label[_ngcontent-%COMP%]{font-size:14px}.resize-handler[_ngcontent-%COMP%]{background:var(--side-panel-resize-handler-background-color);width:4px;border-radius:4px;position:absolute;display:block;height:20%;top:40%;right:0;z-index:9999;cursor:ew-resize}.json-viewer-container[_ngcontent-%COMP%]{margin:10px}.event-paginator[_ngcontent-%COMP%]{margin-top:-8px;margin-right:auto;background-color:inherit;display:flex;justify-content:center}[_nghost-%COMP%] .mat-mdc-paginator-page-size{display:none}.details-panel-container[_ngcontent-%COMP%]{position:absolute;width:100%;height:98%;left:0;right:0;bottom:0;background:var(--side-panel-details-panel-container-background-color);display:inline-block;justify-content:center;align-items:center;z-index:10}.details-content[_ngcontent-%COMP%]{color:var(--side-panel-details-content-color);font-size:14px}.event-graph-container[_ngcontent-%COMP%]{margin-top:16px;margin-bottom:16px;display:flex;justify-content:center;max-height:33%;cursor:pointer}.event-graph-container[_ngcontent-%COMP%] svg{width:100%;height:100%;display:block;object-fit:contain}.event-graph-container[_ngcontent-%COMP%] svg text{font-family:Google Sans Mono,monospace;font-size:11px}.drawer-logo[_ngcontent-%COMP%]{margin-left:9px;display:flex;align-items:center;font-size:16px;font-style:normal;font-weight:500;line-height:24px;letter-spacing:.1px}.drawer-logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{margin-right:9px}.powered-by-adk[_ngcontent-%COMP%]{font-size:10px;color:var(--side-panel-powered-by-adk-color);text-align:right;margin-top:-5px}.app-select[_ngcontent-%COMP%]{width:100%}.app-select-container[_ngcontent-%COMP%]{width:35%;margin-top:12px;background-color:var(--side-panel-app-select-container-background-color);margin-left:10px;height:30px;display:flex;justify-content:space-between;padding-left:20px;padding-right:20px;border-radius:10px;padding-top:5px}.app-select-container[_ngcontent-%COMP%]{--mat-select-placeholder-text-color: var(--side-panel-select-placeholder-text-color)}.app-select-container[_ngcontent-%COMP%]{--mat-select-enabled-trigger-text-color: var(--side-panel-select-enabled-trigger-text-color)}.app-select-container[_ngcontent-%COMP%]{--mat-select-enabled-arrow-color: var(--side-panel-select-enabled-arrow-color)}.app-name-option[_ngcontent-%COMP%], .app-select[_ngcontent-%COMP%]{color:var(--side-panel-app-name-option-color);font-family:Google Sans Mono,monospace;font-style:normal;font-weight:400;padding-left:unset}.mode-toggle-container[_ngcontent-%COMP%]{display:flex;align-items:center;margin-right:20px}.build-mode-button[_ngcontent-%COMP%]{margin:0 4px}.build-mode-button.mat-mdc-unelevated-button[_ngcontent-%COMP%]{height:30px}.app-actions[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-top:12px;margin-left:10px}.loading-spinner-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;height:100%}.request-response-loading-spinner-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;margin-top:2em}.request-response-empty-state[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;margin-top:2em;font-style:italic}"]})};function JiA(t,A){t&1&&ve(0,"mat-progress-spinner",6)}function YiA(t,A){t&1&&(m(0,"div"),T(1,"Request is not available."),p())}function HiA(t,A){if(t&1&&(m(0,"div",3),ve(1,"ngx-json-viewer",4),p()),t&2){let e=M();y(),te("json",e.llmRequest)}}function ziA(t,A){t&1&&ve(0,"mat-progress-spinner",6)}function PiA(t,A){t&1&&(m(0,"div"),T(1,"Response is not available."),p())}function jiA(t,A){if(t&1&&(m(0,"div",3),ve(1,"ngx-json-viewer",4),p()),t&2){let e=M();y(),te("json",e.llmResponse)}}function ViA(t,A){if(t&1){let e=Ue();m(0,"div",12),ee("click",function(){q(e);let n=M();return W(n.openViewImageDialog(n.rawSvgString))}),p()}if(t&2){let e=M();te("innerHtml",e.renderedEventGraph,J0)}}var h9=class t{userId="";sessionId="";appName="";panelClosed=new Ve;renderedEventGraph;eventData;selectedRow=void 0;rawSvgString=null;llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";dialog=E(na);traceService=E(q1);eventService=E(CE);graphService=E(IE);featureFlagService=E(Ks);sanitizer=E(dl);uiStateService=E(zl);isEventFilteringEnabled=_g(this.featureFlagService.isEventFilteringEnabled());constructor(){}ngOnInit(){this.traceService.selectedTraceRow$.subscribe(A=>{this.selectedRow=A;let e=this.getEventIdFromSpan();if(e){let i;this.isEventFilteringEnabled()&&this.selectedRow?.invoc_id&&this.selectedRow?.start_time&&(i={invocationId:this.selectedRow.invoc_id,timestamp:this.selectedRow.start_time/1e6});let n=ae({id:e},i);this.eventService.getEventTrace(n).pipe(Pt(()=>{this.uiStateService.setIsEventRequestResponseLoading(!0)})).subscribe(o=>{this.llmRequest=JSON.parse(o[this.llmRequestKey]),this.llmResponse=JSON.parse(o[this.llmResponseKey]),this.uiStateService.setIsEventRequestResponseLoading(!1)},()=>{this.uiStateService.setIsEventRequestResponseLoading(!1)}),this.getEventGraph(e)}}),this.traceService.eventData$.subscribe(A=>this.eventData=A)}openViewImageDialog(A){let e=this.dialog.open(W1,{maxWidth:"90vw",maxHeight:"90vh",data:{imageData:A}})}getEventDetails(){if(this.eventData&&this.selectedRow)return this.eventData.get(this.getEventIdFromSpan())}getEventIdFromSpan(){if(this.selectedRow)return this.selectedRow.attributes["gcp.vertex.agent.event_id"]}getEventGraph(A){this.eventService.getEvent(this.userId,this.appName,this.sessionId,A).subscribe(e=>Ci(this,null,function*(){if(!e.dotSrc){this.renderedEventGraph=void 0;return}let i=e.dotSrc,n=yield this.graphService.render(i);this.rawSvgString=n,this.renderedEventGraph=this.sanitizer.bypassSecurityTrustHtml(n)}))}closePanel(){this.panelClosed.emit(!0)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-trace-event"]],inputs:{userId:"userId",sessionId:"sessionId",appName:"appName"},outputs:{panelClosed:"panelClosed"},decls:21,vars:8,consts:[[1,"wrapper"],["mat-stretch-tabs","false","mat-align-tabs","start"],["label","Event"],[1,"json-viewer-container"],[3,"json"],["label","Request"],["mode","indeterminate"],["label","Response"],["label","Graph"],[1,"event-graph-container"],[3,"innerHtml"],["mat-icon-button","",1,"tab-header-action",3,"click"],[3,"click","innerHtml"]],template:function(e,i){e&1&&(m(0,"div",0)(1,"mat-tab-group",1)(2,"mat-tab",2)(3,"div",3),ve(4,"ngx-json-viewer",4),p()(),m(5,"mat-tab",5),ne(6,JiA,1,0,"mat-progress-spinner",6),Ii(7,"async"),ne(8,YiA,2,0,"div")(9,HiA,2,1,"div",3),p(),m(10,"mat-tab",7),ne(11,ziA,1,0,"mat-progress-spinner",6),Ii(12,"async"),ne(13,PiA,2,0,"div")(14,jiA,2,1,"div",3),p(),m(15,"mat-tab",8)(16,"div",9),ne(17,ViA,1,1,"div",10),p()()(),m(18,"button",11),ee("click",function(){return i.closePanel()}),m(19,"mat-icon"),T(20,"close"),p()()()),e&2&&(y(4),te("json",i.getEventDetails()),y(2),$(Qi(7,4,i.uiStateService.isEventRequestResponseLoading())===!0?6:i.llmRequest?9:8),y(5),$(Qi(12,6,i.uiStateService.isEventRequestResponseLoading())===!0?11:i.llmResponse?14:13),y(6),$(i.renderedEventGraph?17:-1))},dependencies:[a9,g6,nd,j1,ya,ir,Z1,ts],styles:[".json-viewer-container[_ngcontent-%COMP%]{padding-top:8px;padding-left:12px;padding-right:12px;background-color:var(--trace-event-json-viewer-container-background-color)}.event-graph-container[_ngcontent-%COMP%]{text-align:center;padding-top:20px}.event-graph-container[_ngcontent-%COMP%] svg text{font-family:Google Sans Mono,monospace;font-size:11px}.wrapper[_ngcontent-%COMP%]{position:relative}.tab-header-action[_ngcontent-%COMP%]{position:absolute;top:0;right:0;height:48px;z-index:2;margin-right:10px}"]})};var Ud=new re("AgentBuilderService"),B9=class t{nodes=[];subAgentIdCounter=1;selectedToolSubject=new Mt(void 0);selectedNodeSubject=new Mt(void 0);selectedCallbackSubject=new Mt(void 0);loadedAgentDataSubject=new Mt(void 0);agentToolsMapSubject=new Mt(new Map);agentToolsSubject=new Mt(void 0);newAgentToolBoardSubject=new Mt(void 0);agentCallbacksMapSubject=new Mt(new Map);agentCallbacksSubject=new Mt(void 0);agentToolDeletionSubject=new Mt(void 0);deleteSubAgentSubject=new Mt("");addSubAgentSubject=new Mt({parentAgentName:""});tabChangeSubject=new Mt(void 0);agentToolBoardsSubject=new Mt(new Map);constructor(){}getNode(A){return this.nodes.find(i=>i.name===A)}getRootNode(){return this.nodes.find(e=>!!e.isRoot)}addNode(A){let e=this.nodes.findIndex(c=>c.name===A.name);e!==-1?this.nodes[e]=A:this.nodes.push(A);let i=/^sub_agent_(\d+)$/,n=A.name.match(i);if(n){let c=parseInt(n[1],10);c>=this.subAgentIdCounter&&(this.subAgentIdCounter=c+1)}let o=this.agentToolsMapSubject.value,r=new Map(o);r.set(A.name,A.tools||[]),this.agentToolsMapSubject.next(r);let s=this.agentCallbacksMapSubject.value,a=new Map(s);a.set(A.name,A.callbacks||[]),this.agentCallbacksMapSubject.next(a),this.setSelectedNode(this.selectedNodeSubject.value)}getNodes(){return this.nodes}clear(){this.nodes=[],this.subAgentIdCounter=1,this.setSelectedNode(void 0),this.setSelectedTool(void 0),this.agentToolsMapSubject.next(new Map),this.agentCallbacksMapSubject.next(new Map),this.setSelectedCallback(void 0),this.setAgentTools(),this.setAgentCallbacks()}getSelectedNode(){return this.selectedNodeSubject.asObservable()}setSelectedNode(A){this.selectedNodeSubject.next(A)}getSelectedTool(){return this.selectedToolSubject.asObservable()}setSelectedTool(A){this.selectedToolSubject.next(A)}getSelectedCallback(){return this.selectedCallbackSubject.asObservable()}setSelectedCallback(A){this.selectedCallbackSubject.next(A)}getNextSubAgentName(){return`sub_agent_${this.subAgentIdCounter++}`}addTool(A,e){let i=this.getNode(A);if(i){let n=i.tools||[];i.tools=[e,...n];let o=this.agentToolsMapSubject.value,r=new Map(o);r.set(A,i.tools),this.agentToolsMapSubject.next(r)}}deleteTool(A,e){let i=this.getNode(A);if(i&&i.tools){let n=i.tools.length;if(i.tools=i.tools.filter(o=>o.name!==e.name),i.tools.lengths.name===e.name))return{success:!1,error:`Callback with name '${e.name}' already exists`};i.callbacks.push(e),this.agentCallbacksSubject.next({agentName:A,callbacks:i.callbacks});let o=this.agentCallbacksMapSubject.value,r=new Map(o);return r.set(A,i.callbacks),this.agentCallbacksMapSubject.next(r),{success:!0}}catch(i){return{success:!1,error:"Failed to add callback: "+i.message}}}updateCallback(A,e,i){try{let n=this.getNode(A);if(!n)return{success:!1,error:"Agent not found"};if(!n.callbacks)return{success:!1,error:"No callbacks found for this agent"};let o=n.callbacks.findIndex(l=>l.name===e);if(o===-1)return{success:!1,error:"Callback not found"};if(n.callbacks.some((l,d)=>d!==o&&l.name===i.name))return{success:!1,error:`Callback with name '${i.name}' already exists`};let s=ae(ae({},n.callbacks[o]),i);n.callbacks[o]=s,this.agentCallbacksSubject.next({agentName:A,callbacks:n.callbacks});let a=this.agentCallbacksMapSubject.value,c=new Map(a);return c.set(A,n.callbacks),this.agentCallbacksMapSubject.next(c),this.selectedCallbackSubject.value?.name===e&&this.setSelectedCallback(s),{success:!0}}catch(n){return{success:!1,error:"Failed to update callback: "+n.message}}}deleteCallback(A,e){try{let i=this.getNode(A);if(!i)return{success:!1,error:"Agent not found"};if(!i.callbacks)return{success:!1,error:"No callbacks found for this agent"};let n=i.callbacks.findIndex(s=>s.name===e.name);if(n===-1)return{success:!1,error:"Callback not found"};i.callbacks.splice(n,1),this.agentCallbacksSubject.next({agentName:A,callbacks:i.callbacks});let o=this.agentCallbacksMapSubject.value,r=new Map(o);return r.set(A,i.callbacks),this.agentCallbacksMapSubject.next(r),this.selectedCallbackSubject.value?.name===e.name&&this.setSelectedCallback(void 0),{success:!0}}catch(i){return{success:!1,error:"Failed to delete callback: "+i.message}}}setLoadedAgentData(A){this.loadedAgentDataSubject.next(A)}getLoadedAgentData(){return this.loadedAgentDataSubject.asObservable()}getAgentToolsMap(){return this.agentToolsMapSubject.asObservable()}getAgentCallbacksMap(){return this.agentCallbacksMapSubject.asObservable()}requestSideTabChange(A){this.tabChangeSubject.next(A)}getSideTabChangeRequest(){return this.tabChangeSubject.asObservable()}requestNewTab(A,e){this.newAgentToolBoardSubject.next({toolName:A,currentAgentName:e})}getNewTabRequest(){return this.newAgentToolBoardSubject.asObservable().pipe(aA(e=>e?{tabName:e.toolName,currentAgentName:e.currentAgentName}:void 0))}requestTabDeletion(A){this.agentToolDeletionSubject.next(A)}getTabDeletionRequest(){return this.agentToolDeletionSubject.asObservable()}setAgentToolBoards(A){this.agentToolBoardsSubject.next(A)}getAgentToolBoards(){return this.agentToolBoardsSubject.asObservable()}getCurrentAgentToolBoards(){return this.agentToolBoardsSubject.value}getAgentTools(){return this.agentToolsSubject.asObservable()}getDeleteSubAgentSubject(){return this.deleteSubAgentSubject.asObservable()}setDeleteSubAgentSubject(A){this.deleteSubAgentSubject.next(A)}getAddSubAgentSubject(){return this.addSubAgentSubject.asObservable()}setAddSubAgentSubject(A,e,i){this.addSubAgentSubject.next({parentAgentName:A,agentClass:e,isFromEmptyGroup:i})}setAgentTools(A,e){if(A&&e){this.agentToolsSubject.next({agentName:A,tools:e});let i=this.agentToolsMapSubject.value,n=new Map(i);n.set(A,e),this.agentToolsMapSubject.next(n)}else this.agentToolsSubject.next(void 0)}getAgentCallbacks(){return this.agentCallbacksSubject.asObservable()}setAgentCallbacks(A,e){A&&e?this.agentCallbacksSubject.next({agentName:A,callbacks:e}):this.agentCallbacksSubject.next(void 0)}getParentNode(A,e,i,n){if(A){if(A.name===e.name)return i;for(let o of A.sub_agents){let r=this.getParentNode(o,e,A,n);if(r)return r}if(A.tools){for(let o of A.tools)if(o.toolType==="Agent Tool"){let r=n.get(o.toolAgentName||o.name);if(r){let s=this.getParentNode(r,e,A,n);if(s)return s}}}}}deleteNode(A){this.nodes=this.nodes.filter(e=>e.name!==A.name),this.setSelectedNode(this.selectedNodeSubject.value)}static \u0275fac=function(e){return new(e||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})};var E9=Symbol.for("yaml.alias"),f9=Symbol.for("yaml.document"),c0=Symbol.for("yaml.map"),bH=Symbol.for("yaml.pair"),xl=Symbol.for("yaml.scalar"),A1=Symbol.for("yaml.seq"),lc=Symbol.for("yaml.node.type"),dg=t=>!!t&&typeof t=="object"&&t[lc]===E9,l0=t=>!!t&&typeof t=="object"&&t[lc]===f9,g0=t=>!!t&&typeof t=="object"&&t[lc]===c0,bn=t=>!!t&&typeof t=="object"&&t[lc]===bH,qi=t=>!!t&&typeof t=="object"&&t[lc]===xl,d0=t=>!!t&&typeof t=="object"&&t[lc]===A1;function uo(t){if(t&&typeof t=="object")switch(t[lc]){case c0:case A1:return!0}return!1}function Ln(t){if(t&&typeof t=="object")switch(t[lc]){case E9:case c0:case xl:case A1:return!0}return!1}var Q9=t=>(qi(t)||uo(t))&&!!t.anchor;var Hc=Symbol("break visit"),lIe=Symbol("skip children"),Td=Symbol("remove node");function Od(t,A){let e=gIe(A);l0(t)?CQ(null,t.contents,e,Object.freeze([t]))===Td&&(t.contents=null):CQ(null,t,e,Object.freeze([]))}Od.BREAK=Hc;Od.SKIP=lIe;Od.REMOVE=Td;function CQ(t,A,e,i){let n=dIe(t,A,e,i);if(Ln(n)||bn(n))return CIe(t,i,n),CQ(t,n,e,i);if(typeof n!="symbol"){if(uo(A)){i=Object.freeze(i.concat(A));for(let o=0;ot.replace(/[!,[\]{}]/g,A=>qiA[A]),uQ=(()=>{class t{constructor(e,i){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},t.defaultYaml,e),this.tags=Object.assign({},t.defaultTags,i)}clone(){let e=new t(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new t(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:t.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},t.defaultTags);break}return e}add(e,i){this.atNextDocument&&(this.yaml={explicit:t.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},t.defaultTags),this.atNextDocument=!1);let n=e.trim().split(/[ \t]+/),o=n.shift();switch(o){case"%TAG":{if(n.length!==2&&(i(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;let[r,s]=n;return this.tags[r]=s,!0}case"%YAML":{if(this.yaml.explicit=!0,n.length!==1)return i(0,"%YAML directive should contain exactly one part"),!1;let[r]=n;if(r==="1.1"||r==="1.2")return this.yaml.version=r,!0;{let s=/^\d+\.\d+$/.test(r);return i(6,`Unsupported YAML version ${r}`,s),!1}}default:return i(0,`Unknown directive ${o}`,!0),!1}}tagName(e,i){if(e==="!")return"!";if(e[0]!=="!")return i(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let s=e.slice(2,-1);return s==="!"||s==="!!"?(i(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&i("Verbatim tags must end with a >"),s)}let[,n,o]=e.match(/^(.*!)([^!]*)$/s);o||i(`The ${e} tag has no suffix`);let r=this.tags[n];if(r)try{return r+decodeURIComponent(o)}catch(s){return i(String(s)),null}return n==="!"?e:(i(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[i,n]of Object.entries(this.tags))if(e.startsWith(n))return i+WiA(e.substring(n.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let i=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags),o;if(e&&n.length>0&&Ln(e.contents)){let r={};Od(e.contents,(s,a)=>{Ln(a)&&a.tag&&(r[a.tag]=!0)}),o=Object.keys(r)}else o=[];for(let[r,s]of n)r==="!!"&&s==="tag:yaml.org,2002:"||(!e||o.some(a=>a.startsWith(s)))&&i.push(`%TAG ${r} ${s}`);return i.join(` +`)}}return t.defaultYaml={explicit:!1,version:"1.2"},t.defaultTags={"!!":"tag:yaml.org,2002:"},t})();function p9(t){if(/[\x00-\x19\s,[\]{}]/.test(t)){let e=`Anchor must not contain whitespace or control characters: ${JSON.stringify(t)}`;throw new Error(e)}return!0}function MH(t){let A=new Set;return Od(t,{Value(e,i){i.anchor&&A.add(i.anchor)}}),A}function SH(t,A){for(let e=1;;++e){let i=`${t}${e}`;if(!A.has(i))return i}}function IIe(t,A){let e=[],i=new Map,n=null;return{onAnchor:o=>{e.push(o),n??(n=MH(t));let r=SH(A,n);return n.add(r),r},setAnchors:()=>{for(let o of e){let r=i.get(o);if(typeof r=="object"&&r.anchor&&(qi(r.node)||uo(r.node)))r.node.anchor=r.anchor;else{let s=new Error("Failed to resolve repeated object (this should not happen)");throw s.source=o,s}}},sourceObjects:i}}function aI(t,A,e,i){if(i&&typeof i=="object")if(Array.isArray(i))for(let n=0,o=i.length;nks(i,String(n),e));if(t&&typeof t.toJSON=="function"){if(!e||!Q9(t))return t.toJSON(A,e);let i={aliasCount:0,count:1,res:void 0};e.anchors.set(t,i),e.onCreate=o=>{i.res=o,delete e.onCreate};let n=t.toJSON(A,e);return e.onCreate&&e.onCreate(n),n}return typeof t=="bigint"&&!e?.keep?Number(t):t}var cI=class{constructor(A){Object.defineProperty(this,lc,{value:A})}clone(){let A=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(A.range=this.range.slice()),A}toJS(A,{mapAsMap:e,maxAliasCount:i,onAnchor:n,reviver:o}={}){if(!l0(A))throw new TypeError("A document argument is required");let r={anchors:new Map,doc:A,keep:!0,mapAsMap:e===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},s=ks(this,"",r);if(typeof n=="function")for(let{count:a,res:c}of r.anchors.values())n(c,a);return typeof o=="function"?aI(o,{"":s},"",s):s}};var t1=class extends cI{constructor(A){super(E9),this.source=A,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(A,e){let i;e?.aliasResolveCache?i=e.aliasResolveCache:(i=[],Od(A,{Node:(o,r)=>{(dg(r)||Q9(r))&&i.push(r)}}),e&&(e.aliasResolveCache=i));let n;for(let o of i){if(o===this)break;o.anchor===this.source&&(n=o)}return n}toJSON(A,e){if(!e)return{source:this.source};let{anchors:i,doc:n,maxAliasCount:o}=e,r=this.resolve(n,e);if(!r){let a=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(a)}let s=i.get(r);if(s||(ks(r,null,e),s=i.get(r)),!s||s.res===void 0){let a="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(a)}if(o>=0&&(s.count+=1,s.aliasCount===0&&(s.aliasCount=w9(n,r,i)),s.count*s.aliasCount>o)){let a="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(a)}return s.res}toString(A,e,i){let n=`*${this.source}`;if(A){if(p9(this.source),A.options.verifyAliasOrder&&!A.anchors.has(this.source)){let o=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(o)}if(A.implicitKey)return`${n} `}return n}};function w9(t,A,e){if(dg(A)){let i=A.resolve(t),n=e&&i&&e.get(i);return n?n.count*n.aliasCount:0}else if(uo(A)){let i=0;for(let n of A.items){let o=w9(t,n,e);o>i&&(i=o)}return i}else if(bn(A)){let i=w9(t,A.key,e),n=w9(t,A.value,e);return Math.max(i,n)}return 1}var y9=t=>!t||typeof t!="function"&&typeof t!="object",qt=(()=>{class t extends cI{constructor(e){super(xl),this.value=e}toJSON(e,i){return i?.keep?this.value:ks(this.value,e,i)}toString(){return String(this.value)}}return t.BLOCK_FOLDED="BLOCK_FOLDED",t.BLOCK_LITERAL="BLOCK_LITERAL",t.PLAIN="PLAIN",t.QUOTE_DOUBLE="QUOTE_DOUBLE",t.QUOTE_SINGLE="QUOTE_SINGLE",t})();var ZiA="tag:yaml.org,2002:";function XiA(t,A,e){if(A){let i=e.filter(o=>o.tag===A),n=i.find(o=>!o.format)??i[0];if(!n)throw new Error(`Tag ${A} not found`);return n}return e.find(i=>i.identify?.(t)&&!i.format)}function i1(t,A,e){if(l0(t)&&(t=t.contents),Ln(t))return t;if(bn(t)){let d=e.schema[c0].createNode?.(e.schema,null,e);return d.items.push(t),d}(t instanceof String||t instanceof Number||t instanceof Boolean||typeof BigInt<"u"&&t instanceof BigInt)&&(t=t.valueOf());let{aliasDuplicateObjects:i,onAnchor:n,onTagObj:o,schema:r,sourceObjects:s}=e,a;if(i&&t&&typeof t=="object"){if(a=s.get(t),a)return a.anchor??(a.anchor=n(t)),new t1(a.anchor);a={anchor:null,node:null},s.set(t,a)}A?.startsWith("!!")&&(A=ZiA+A.slice(2));let c=XiA(t,A,r.tags);if(!c){if(t&&typeof t.toJSON=="function"&&(t=t.toJSON()),!t||typeof t!="object"){let d=new qt(t);return a&&(a.node=d),d}c=t instanceof Map?r[c0]:Symbol.iterator in Object(t)?r[A1]:r[c0]}o&&(o(c),delete e.onTagObj);let l=c?.createNode?c.createNode(e.schema,t,e):typeof c?.nodeClass?.from=="function"?c.nodeClass.from(e.schema,t,e):new qt(t);return A?l.tag=A:c.default||(l.tag=c.tag),a&&(a.node=l),l}function C6(t,A,e){let i=e;for(let n=A.length-1;n>=0;--n){let o=A[n];if(typeof o=="number"&&Number.isInteger(o)&&o>=0){let r=[];r[o]=i,i=r}else i=new Map([[o,i]])}return i1(i,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:t,sourceObjects:new Map})}var BQ=t=>t==null||typeof t=="object"&&!!t[Symbol.iterator]().next().done,hQ=class extends cI{constructor(A,e){super(A),Object.defineProperty(this,"schema",{value:e,configurable:!0,enumerable:!1,writable:!0})}clone(A){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return A&&(e.schema=A),e.items=e.items.map(i=>Ln(i)||bn(i)?i.clone(A):i),this.range&&(e.range=this.range.slice()),e}addIn(A,e){if(BQ(A))this.add(e);else{let[i,...n]=A,o=this.get(i,!0);if(uo(o))o.addIn(n,e);else if(o===void 0&&this.schema)this.set(i,C6(this.schema,n,e));else throw new Error(`Expected YAML collection at ${i}. Remaining path: ${n}`)}}deleteIn(A){let[e,...i]=A;if(i.length===0)return this.delete(e);let n=this.get(e,!0);if(uo(n))return n.deleteIn(i);throw new Error(`Expected YAML collection at ${e}. Remaining path: ${i}`)}getIn(A,e){let[i,...n]=A,o=this.get(i,!0);return n.length===0?!e&&qi(o)?o.value:o:uo(o)?o.getIn(n,e):void 0}hasAllNullValues(A){return this.items.every(e=>{if(!bn(e))return!1;let i=e.value;return i==null||A&&qi(i)&&i.value==null&&!i.commentBefore&&!i.comment&&!i.tag})}hasIn(A){let[e,...i]=A;if(i.length===0)return this.has(e);let n=this.get(e,!0);return uo(n)?n.hasIn(i):!1}setIn(A,e){let[i,...n]=A;if(n.length===0)this.set(i,e);else{let o=this.get(i,!0);if(uo(o))o.setIn(n,e);else if(o===void 0&&this.schema)this.set(i,C6(this.schema,n,e));else throw new Error(`Expected YAML collection at ${i}. Remaining path: ${n}`)}}};var uIe=t=>t.replace(/^(?!$)(?: $)?/gm,"#");function Cg(t,A){return/^\n+$/.test(t)?t.substring(1):A?t.replace(/^(?! *$)/gm,A):t}var Jd=(t,A,e)=>t.endsWith(` +`)?Cg(e,A):e.includes(` +`)?` +`+Cg(e,A):(t.endsWith(" ")?"":" ")+e;var kH="flow",D9="block",I6="quoted";function u6(t,A,e="flow",{indentAtStart:i,lineWidth:n=80,minContentWidth:o=20,onFold:r,onOverflow:s}={}){if(!n||n<0)return t;nn-Math.max(2,o)?c.push(0):d=n-i);let C,I,u=!1,h=-1,B=-1,f=-1;e===D9&&(h=hIe(t,h,A.length),h!==-1&&(d=h+a));for(let k;k=t[h+=1];){if(e===I6&&k==="\\"){switch(B=h,t[h+1]){case"x":h+=3;break;case"u":h+=5;break;case"U":h+=9;break;default:h+=1}f=h}if(k===` +`)e===D9&&(h=hIe(t,h,A.length)),d=h+A.length+a,C=void 0;else{if(k===" "&&I&&I!==" "&&I!==` +`&&I!==" "){let S=t[h+1];S&&S!==" "&&S!==` +`&&S!==" "&&(C=h)}if(h>=d)if(C)c.push(C),d=C+a,C=void 0;else if(e===I6){for(;I===" "||I===" ";)I=k,k=t[h+=1],u=!0;let S=h>f+1?h-2:B-1;if(l[S])return t;c.push(S),l[S]=!0,d=S+a,C=void 0}else u=!0}I=k}if(u&&s&&s(),c.length===0)return t;r&&r();let b=t.slice(0,c[0]);for(let k=0;k({indentAtStart:A?t.indent.length:t.indentAtStart,lineWidth:t.options.lineWidth,minContentWidth:t.options.minContentWidth}),M9=t=>/^(%|---|\.\.\.)/m.test(t);function $iA(t,A,e){if(!A||A<0)return!1;let i=A-e,n=t.length;if(n<=i)return!1;for(let o=0,r=0;oi)return!0;if(r=o+1,n-r<=i)return!1}return!0}function h6(t,A){let e=JSON.stringify(t);if(A.options.doubleQuotedAsJSON)return e;let{implicitKey:i}=A,n=A.options.doubleQuotedMinMultiLineLength,o=A.indent||(M9(t)?" ":""),r="",s=0;for(let a=0,c=e[a];c;c=e[++a])if(c===" "&&e[a+1]==="\\"&&e[a+2]==="n"&&(r+=e.slice(s,a)+"\\ ",a+=1,s=a,c="\\"),c==="\\")switch(e[a+1]){case"u":{r+=e.slice(s,a);let l=e.substr(a+2,4);switch(l){case"0000":r+="\\0";break;case"0007":r+="\\a";break;case"000b":r+="\\v";break;case"001b":r+="\\e";break;case"0085":r+="\\N";break;case"00a0":r+="\\_";break;case"2028":r+="\\L";break;case"2029":r+="\\P";break;default:l.substr(0,2)==="00"?r+="\\x"+l.substr(2):r+=e.substr(a,6)}a+=5,s=a+1}break;case"n":if(i||e[a+2]==='"'||e.length +`;let d,C;for(C=e.length;C>0;--C){let w=e[C-1];if(w!==` +`&&w!==" "&&w!==" ")break}let I=e.substring(C),u=I.indexOf(` +`);u===-1?d="-":e===I||u!==I.length-1?(d="+",o&&o()):d="",I&&(e=e.slice(0,-I.length),I[I.length-1]===` +`&&(I=I.slice(0,-1)),I=I.replace(_H,`$&${c}`));let h=!1,B,f=-1;for(B=0;B{_=!0});let J=u6(`${b}${w}${I}`,c,D9,K);if(!_)return`>${S} +${c}${J}`}return e=e.replace(/\n+/g,`$&${c}`),`|${S} +${c}${b}${e}${I}`}function enA(t,A,e,i){let{type:n,value:o}=t,{actualString:r,implicitKey:s,indent:a,indentStep:c,inFlow:l}=A;if(s&&o.includes(` +`)||l&&/[[\]{},]/.test(o))return EQ(o,A);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(o))return s||l||!o.includes(` +`)?EQ(o,A):v9(t,A,e,i);if(!s&&!l&&n!==qt.PLAIN&&o.includes(` +`))return v9(t,A,e,i);if(M9(o)){if(a==="")return A.forceBlockIndent=!0,v9(t,A,e,i);if(s&&a===c)return EQ(o,A)}let d=o.replace(/\n+/g,`$& +${a}`);if(r){let C=h=>h.default&&h.tag!=="tag:yaml.org,2002:str"&&h.test?.test(d),{compat:I,tags:u}=A.doc.schema;if(u.some(C)||I?.some(C))return EQ(o,A)}return s?d:u6(d,a,kH,b9(A,!1))}function hh(t,A,e,i){let{implicitKey:n,inFlow:o}=A,r=typeof t.value=="string"?t:Object.assign({},t,{value:String(t.value)}),{type:s}=t;s!==qt.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(r.value)&&(s=qt.QUOTE_DOUBLE);let a=l=>{switch(l){case qt.BLOCK_FOLDED:case qt.BLOCK_LITERAL:return n||o?EQ(r.value,A):v9(r,A,e,i);case qt.QUOTE_DOUBLE:return h6(r.value,A);case qt.QUOTE_SINGLE:return xH(r.value,A);case qt.PLAIN:return enA(r,A,e,i);default:return null}},c=a(s);if(c===null){let{defaultKeyType:l,defaultStringType:d}=A.options,C=n&&l||d;if(c=a(C),c===null)throw new Error(`Unsupported default string type ${C}`)}return c}function S9(t,A){let e=Object.assign({blockQuote:!0,commentString:uIe,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},t.schema.toStringOptions,A),i;switch(e.collectionStyle){case"block":i=!1;break;case"flow":i=!0;break;default:i=null}return{anchors:new Set,doc:t,flowCollectionPadding:e.flowCollectionPadding?" ":"",indent:"",indentStep:typeof e.indent=="number"?" ".repeat(e.indent):" ",inFlow:i,options:e}}function AnA(t,A){if(A.tag){let n=t.filter(o=>o.tag===A.tag);if(n.length>0)return n.find(o=>o.format===A.format)??n[0]}let e,i;if(qi(A)){i=A.value;let n=t.filter(o=>o.identify?.(i));if(n.length>1){let o=n.filter(r=>r.test);o.length>0&&(n=o)}e=n.find(o=>o.format===A.format)??n.find(o=>!o.format)}else i=A,e=t.find(n=>n.nodeClass&&i instanceof n.nodeClass);if(!e){let n=i?.constructor?.name??(i===null?"null":typeof i);throw new Error(`Tag not resolved for ${n} value`)}return e}function tnA(t,A,{anchors:e,doc:i}){if(!i.directives)return"";let n=[],o=(qi(t)||uo(t))&&t.anchor;o&&p9(o)&&(e.add(o),n.push(`&${o}`));let r=t.tag??(A.default?null:A.tag);return r&&n.push(i.directives.tagString(r)),n.join(" ")}function n1(t,A,e,i){if(bn(t))return t.toString(A,e,i);if(dg(t)){if(A.doc.directives)return t.toString(A);if(A.resolvedAliases?.has(t))throw new TypeError("Cannot stringify circular structure without alias nodes");A.resolvedAliases?A.resolvedAliases.add(t):A.resolvedAliases=new Set([t]),t=t.resolve(A.doc)}let n,o=Ln(t)?t:A.doc.createNode(t,{onTagObj:a=>n=a});n??(n=AnA(A.doc.schema.tags,o));let r=tnA(o,n,A);r.length>0&&(A.indentAtStart=(A.indentAtStart??0)+r.length+1);let s=typeof n.stringify=="function"?n.stringify(o,A,e,i):qi(o)?hh(o,A,e,i):o.toString(A,e,i);return r?qi(o)||s[0]==="{"||s[0]==="["?`${r} ${s}`:`${r} +${A.indent}${s}`:s}function BIe({key:t,value:A},e,i,n){let{allNullValues:o,doc:r,indent:s,indentStep:a,options:{commentString:c,indentSeq:l,simpleKeys:d}}=e,C=Ln(t)&&t.comment||null;if(d){if(C)throw new Error("With simple keys, key nodes cannot have comments");if(uo(t)||!Ln(t)&&typeof t=="object"){let K="With simple keys, collection cannot be used as a key value";throw new Error(K)}}let I=!d&&(!t||C&&A==null&&!e.inFlow||uo(t)||(qi(t)?t.type===qt.BLOCK_FOLDED||t.type===qt.BLOCK_LITERAL:typeof t=="object"));e=Object.assign({},e,{allNullValues:!1,implicitKey:!I&&(d||!o),indent:s+a});let u=!1,h=!1,B=n1(t,e,()=>u=!0,()=>h=!0);if(!I&&!e.inFlow&&B.length>1024){if(d)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");I=!0}if(e.inFlow){if(o||A==null)return u&&i&&i(),B===""?"?":I?`? ${B}`:B}else if(o&&!d||A==null&&I)return B=`? ${B}`,C&&!u?B+=Jd(B,e.indent,c(C)):h&&n&&n(),B;u&&(C=null),I?(C&&(B+=Jd(B,e.indent,c(C))),B=`? ${B} +${s}:`):(B=`${B}:`,C&&(B+=Jd(B,e.indent,c(C))));let f,b,k;Ln(A)?(f=!!A.spaceBefore,b=A.commentBefore,k=A.comment):(f=!1,b=null,k=null,A&&typeof A=="object"&&(A=r.createNode(A))),e.implicitKey=!1,!I&&!C&&qi(A)&&(e.indentAtStart=B.length+1),h=!1,!l&&a.length>=2&&!e.inFlow&&!I&&d0(A)&&!A.flow&&!A.tag&&!A.anchor&&(e.indent=e.indent.substring(2));let S=!1,w=n1(A,e,()=>S=!0,()=>h=!0),_=" ";if(C||f||b){if(_=f?` +`:"",b){let K=c(b);_+=` +${Cg(K,e.indent)}`}w===""&&!e.inFlow?_===` +`&&(_=` + +`):_+=` +${e.indent}`}else if(!I&&uo(A)){let K=w[0],J=w.indexOf(` +`),O=J!==-1,H=e.inFlow??A.flow??A.items.length===0;if(O||!H){let V=!1;if(O&&(K==="&"||K==="!")){let Z=w.indexOf(" ");K==="&"&&Z!==-1&&Zt===x9||typeof t=="symbol"&&t.description===x9,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new qt(Symbol(x9)),{addToJSMap:NH}),stringify:()=>x9},EIe=(t,A)=>(C0.identify(A)||qi(A)&&(!A.type||A.type===qt.PLAIN)&&C0.identify(A.value))&&t?.doc.schema.tags.some(e=>e.tag===C0.tag&&e.default);function NH(t,A,e){if(e=t&&dg(e)?e.resolve(t.doc):e,d0(e))for(let i of e.items)RH(t,A,i);else if(Array.isArray(e))for(let i of e)RH(t,A,i);else RH(t,A,e)}function RH(t,A,e){let i=t&&dg(e)?e.resolve(t.doc):e;if(!g0(i))throw new Error("Merge sources must be maps or map aliases");let n=i.toJSON(null,t,Map);for(let[o,r]of n)A instanceof Map?A.has(o)||A.set(o,r):A instanceof Set?A.add(o):Object.prototype.hasOwnProperty.call(A,o)||Object.defineProperty(A,o,{value:r,writable:!0,enumerable:!0,configurable:!0});return A}function _9(t,A,{key:e,value:i}){if(Ln(e)&&e.addToJSMap)e.addToJSMap(t,A,i);else if(EIe(t,e))NH(t,A,i);else{let n=ks(e,"",t);if(A instanceof Map)A.set(n,ks(i,n,t));else if(A instanceof Set)A.add(n);else{let o=inA(e,n,t),r=ks(i,o,t);o in A?Object.defineProperty(A,o,{value:r,writable:!0,enumerable:!0,configurable:!0}):A[o]=r}}return A}function inA(t,A,e){if(A===null)return"";if(typeof A!="object")return String(A);if(Ln(t)&&e?.doc){let i=S9(e.doc,{});i.anchors=new Set;for(let o of e.anchors.keys())i.anchors.add(o.anchor);i.inFlow=!0,i.inStringifyKey=!0;let n=t.toString(i);if(!e.mapKeyWarned){let o=JSON.stringify(n);o.length>40&&(o=o.substring(0,36)+'..."'),k9(e.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${o}. Set mapAsMap: true to use object keys.`),e.mapKeyWarned=!0}return n}return JSON.stringify(A)}function fQ(t,A,e){let i=i1(t,void 0,e),n=i1(A,void 0,e);return new qr(i,n)}var qr=class t{constructor(A,e=null){Object.defineProperty(this,lc,{value:bH}),this.key=A,this.value=e}clone(A){let{key:e,value:i}=this;return Ln(e)&&(e=e.clone(A)),Ln(i)&&(i=i.clone(A)),new t(e,i)}toJSON(A,e){let i=e?.mapAsMap?new Map:{};return _9(e,i,this)}toString(A,e,i){return A?.doc?BIe(this,A,e,i):JSON.stringify(this)}};function N9(t,A,e){return(A.inFlow??t.flow?onA:nnA)(t,A,e)}function nnA({comment:t,items:A},e,{blockItemPrefix:i,flowChars:n,itemIndent:o,onChompKeep:r,onComment:s}){let{indent:a,options:{commentString:c}}=e,l=Object.assign({},e,{indent:o,type:null}),d=!1,C=[];for(let u=0;uB=null,()=>d=!0);B&&(f+=Jd(f,o,c(B))),d&&B&&(d=!1),C.push(i+f)}let I;if(C.length===0)I=n.start+n.end;else{I=C[0];for(let u=1;uB=null);ul||f.includes(` +`))&&(c=!0),d.push(f),l=d.length}let{start:C,end:I}=e;if(d.length===0)return C+I;if(!c){let u=d.reduce((h,B)=>h+B.length+2,2);c=A.options.lineWidth>0&&u>A.options.lineWidth}if(c){let u=C;for(let h of d)u+=h?` +${o}${n}${h}`:` +`;return`${u} +${n}${I}`}else return`${C}${r}${d.join(" ")}${r}${I}`}function R9({indent:t,options:{commentString:A}},e,i,n){if(i&&n&&(i=i.replace(/^\n+/,"")),i){let o=Cg(A(i),t);e.push(o.trimStart())}}function lI(t,A){let e=qi(A)?A.value:A;for(let i of t)if(bn(i)&&(i.key===A||i.key===e||qi(i.key)&&i.key.value===e))return i}var ls=class extends hQ{static get tagName(){return"tag:yaml.org,2002:map"}constructor(A){super(c0,A),this.items=[]}static from(A,e,i){let{keepUndefined:n,replacer:o}=i,r=new this(A),s=(a,c)=>{if(typeof o=="function")c=o.call(e,a,c);else if(Array.isArray(o)&&!o.includes(a))return;(c!==void 0||n)&&r.items.push(fQ(a,c,i))};if(e instanceof Map)for(let[a,c]of e)s(a,c);else if(e&&typeof e=="object")for(let a of Object.keys(e))s(a,e[a]);return typeof A.sortMapEntries=="function"&&r.items.sort(A.sortMapEntries),r}add(A,e){let i;bn(A)?i=A:!A||typeof A!="object"||!("key"in A)?i=new qr(A,A?.value):i=new qr(A.key,A.value);let n=lI(this.items,i.key),o=this.schema?.sortMapEntries;if(n){if(!e)throw new Error(`Key ${i.key} already set`);qi(n.value)&&y9(i.value)?n.value.value=i.value:n.value=i.value}else if(o){let r=this.items.findIndex(s=>o(i,s)<0);r===-1?this.items.push(i):this.items.splice(r,0,i)}else this.items.push(i)}delete(A){let e=lI(this.items,A);return e?this.items.splice(this.items.indexOf(e),1).length>0:!1}get(A,e){let n=lI(this.items,A)?.value;return(!e&&qi(n)?n.value:n)??void 0}has(A){return!!lI(this.items,A)}set(A,e){this.add(new qr(A,e),!0)}toJSON(A,e,i){let n=i?new i:e?.mapAsMap?new Map:{};e?.onCreate&&e.onCreate(n);for(let o of this.items)_9(e,n,o);return n}toString(A,e,i){if(!A)return JSON.stringify(this);for(let n of this.items)if(!bn(n))throw new Error(`Map items must all be pairs; found ${JSON.stringify(n)} instead`);return!A.allNullValues&&this.hasAllNullValues(!1)&&(A=Object.assign({},A,{allNullValues:!0})),N9(this,A,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:A.indent||"",onChompKeep:i,onComment:e})}};var I0={collection:"map",default:!0,nodeClass:ls,tag:"tag:yaml.org,2002:map",resolve(t,A){return g0(t)||A("Expected a mapping for this tag"),t},createNode:(t,A,e)=>ls.from(t,A,e)};var Ta=class extends hQ{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(A){super(A1,A),this.items=[]}add(A){this.items.push(A)}delete(A){let e=L9(A);return typeof e!="number"?!1:this.items.splice(e,1).length>0}get(A,e){let i=L9(A);if(typeof i!="number")return;let n=this.items[i];return!e&&qi(n)?n.value:n}has(A){let e=L9(A);return typeof e=="number"&&e=0?A:null}var u0={collection:"seq",default:!0,nodeClass:Ta,tag:"tag:yaml.org,2002:seq",resolve(t,A){return d0(t)||A("Expected a sequence for this tag"),t},createNode:(t,A,e)=>Ta.from(t,A,e)};var gI={identify:t=>typeof t=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:t=>t,stringify(t,A,e,i){return A=Object.assign({actualString:!0},A),hh(t,A,e,i)}};var Bh={identify:t=>t==null,createNode:()=>new qt(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new qt(null),stringify:({source:t},A)=>typeof t=="string"&&Bh.test.test(t)?t:A.options.nullStr};var B6={identify:t=>typeof t=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:t=>new qt(t[0]==="t"||t[0]==="T"),stringify({source:t,value:A},e){if(t&&B6.test.test(t)){let i=t[0]==="t"||t[0]==="T";if(A===i)return t}return A?e.options.trueStr:e.options.falseStr}};function Oa({format:t,minFractionDigits:A,tag:e,value:i}){if(typeof i=="bigint")return String(i);let n=typeof i=="number"?i:Number(i);if(!isFinite(n))return isNaN(n)?".nan":n<0?"-.inf":".inf";let o=JSON.stringify(i);if(!t&&A&&(!e||e==="tag:yaml.org,2002:float")&&/^\d/.test(o)){let r=o.indexOf(".");r<0&&(r=o.length,o+=".");let s=A-(o.length-r-1);for(;s-- >0;)o+="0"}return o}var F9={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:t=>t.slice(-3).toLowerCase()==="nan"?NaN:t[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Oa},G9={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:t=>parseFloat(t),stringify(t){let A=Number(t.value);return isFinite(A)?A.toExponential():Oa(t)}},K9={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(t){let A=new qt(parseFloat(t)),e=t.indexOf(".");return e!==-1&&t[t.length-1]==="0"&&(A.minFractionDigits=t.length-e-1),A},stringify:Oa};var U9=t=>typeof t=="bigint"||Number.isInteger(t),LH=(t,A,e,{intAsBigInt:i})=>i?BigInt(t):parseInt(t.substring(A),e);function fIe(t,A,e){let{value:i}=t;return U9(i)&&i>=0?e+i.toString(A):Oa(t)}var T9={identify:t=>U9(t)&&t>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(t,A,e)=>LH(t,2,8,e),stringify:t=>fIe(t,8,"0o")},O9={identify:U9,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(t,A,e)=>LH(t,0,10,e),stringify:Oa},J9={identify:t=>U9(t)&&t>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(t,A,e)=>LH(t,2,16,e),stringify:t=>fIe(t,16,"0x")};var QIe=[I0,u0,gI,Bh,B6,T9,O9,J9,F9,G9,K9];function mIe(t){return typeof t=="bigint"||Number.isInteger(t)}var Y9=({value:t})=>JSON.stringify(t),rnA=[{identify:t=>typeof t=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:t=>t,stringify:Y9},{identify:t=>t==null,createNode:()=>new qt(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Y9},{identify:t=>typeof t=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:t=>t==="true",stringify:Y9},{identify:mIe,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(t,A,{intAsBigInt:e})=>e?BigInt(t):parseInt(t,10),stringify:({value:t})=>mIe(t)?t.toString():JSON.stringify(t)},{identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:t=>parseFloat(t),stringify:Y9}],snA={default:!0,tag:"",test:/^/,resolve(t,A){return A(`Unresolved plain scalar ${JSON.stringify(t)}`),t}},pIe=[I0,u0].concat(rnA,snA);var E6={identify:t=>t instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(t,A){if(typeof atob=="function"){let e=atob(t.replace(/[\n\r]/g,"")),i=new Uint8Array(e.length);for(let n=0;n1&&A("Each pair must have its own sequence indicator");let n=i.items[0]||new qr(new qt(null));if(i.commentBefore&&(n.key.commentBefore=n.key.commentBefore?`${i.commentBefore} +${n.key.commentBefore}`:i.commentBefore),i.comment){let o=n.value??n.key;o.comment=o.comment?`${i.comment} +${o.comment}`:i.comment}i=n}t.items[e]=bn(i)?i:new qr(i)}}else A("Expected a sequence for this tag");return t}function GH(t,A,e){let{replacer:i}=e,n=new Ta(t);n.tag="tag:yaml.org,2002:pairs";let o=0;if(A&&Symbol.iterator in Object(A))for(let r of A){typeof i=="function"&&(r=i.call(A,String(o++),r));let s,a;if(Array.isArray(r))if(r.length===2)s=r[0],a=r[1];else throw new TypeError(`Expected [key, value] tuple: ${r}`);else if(r&&r instanceof Object){let c=Object.keys(r);if(c.length===1)s=c[0],a=r[s];else throw new TypeError(`Expected tuple with one key, not ${c.length} keys`)}else s=r;n.items.push(fQ(s,a,e))}return n}var f6={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:FH,createNode:GH};var KH=(()=>{class t extends Ta{constructor(){super(),this.add=ls.prototype.add.bind(this),this.delete=ls.prototype.delete.bind(this),this.get=ls.prototype.get.bind(this),this.has=ls.prototype.has.bind(this),this.set=ls.prototype.set.bind(this),this.tag=t.tag}toJSON(e,i){if(!i)return super.toJSON(e);let n=new Map;i?.onCreate&&i.onCreate(n);for(let o of this.items){let r,s;if(bn(o)?(r=ks(o.key,"",i),s=ks(o.value,r,i)):r=ks(o,"",i),n.has(r))throw new Error("Ordered maps must not include duplicate keys");n.set(r,s)}return n}static from(e,i,n){let o=GH(e,i,n),r=new this;return r.items=o.items,r}}return t.tag="tag:yaml.org,2002:omap",t})(),Q6={collection:"seq",identify:t=>t instanceof Map,nodeClass:KH,default:!1,tag:"tag:yaml.org,2002:omap",resolve(t,A){let e=FH(t,A),i=[];for(let{key:n}of e.items)qi(n)&&(i.includes(n.value)?A(`Ordered maps must not include duplicate keys: ${n.value}`):i.push(n.value));return Object.assign(new KH,e)},createNode:(t,A,e)=>KH.from(t,A,e)};function wIe({value:t,source:A},e){return A&&(t?UH:TH).test.test(A)?A:t?e.options.trueStr:e.options.falseStr}var UH={identify:t=>t===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new qt(!0),stringify:wIe},TH={identify:t=>t===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new qt(!1),stringify:wIe};var yIe={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:t=>t.slice(-3).toLowerCase()==="nan"?NaN:t[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Oa},DIe={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:t=>parseFloat(t.replace(/_/g,"")),stringify(t){let A=Number(t.value);return isFinite(A)?A.toExponential():Oa(t)}},vIe={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(t){let A=new qt(parseFloat(t.replace(/_/g,""))),e=t.indexOf(".");if(e!==-1){let i=t.substring(e+1).replace(/_/g,"");i[i.length-1]==="0"&&(A.minFractionDigits=i.length)}return A},stringify:Oa};var m6=t=>typeof t=="bigint"||Number.isInteger(t);function H9(t,A,e,{intAsBigInt:i}){let n=t[0];if((n==="-"||n==="+")&&(A+=1),t=t.substring(A).replace(/_/g,""),i){switch(e){case 2:t=`0b${t}`;break;case 8:t=`0o${t}`;break;case 16:t=`0x${t}`;break}let r=BigInt(t);return n==="-"?BigInt(-1)*r:r}let o=parseInt(t,e);return n==="-"?-1*o:o}function OH(t,A,e){let{value:i}=t;if(m6(i)){let n=i.toString(A);return i<0?"-"+e+n.substr(1):e+n}return Oa(t)}var bIe={identify:m6,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(t,A,e)=>H9(t,2,2,e),stringify:t=>OH(t,2,"0b")},MIe={identify:m6,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(t,A,e)=>H9(t,1,8,e),stringify:t=>OH(t,8,"0")},SIe={identify:m6,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(t,A,e)=>H9(t,0,10,e),stringify:Oa},kIe={identify:m6,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(t,A,e)=>H9(t,2,16,e),stringify:t=>OH(t,16,"0x")};var JH=(()=>{class t extends ls{constructor(e){super(e),this.tag=t.tag}add(e){let i;bn(e)?i=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?i=new qr(e.key,null):i=new qr(e,null),lI(this.items,i.key)||this.items.push(i)}get(e,i){let n=lI(this.items,e);return!i&&bn(n)?qi(n.key)?n.key.value:n.key:n}set(e,i){if(typeof i!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof i}`);let n=lI(this.items,e);n&&!i?this.items.splice(this.items.indexOf(n),1):!n&&i&&this.items.push(new qr(e))}toJSON(e,i){return super.toJSON(e,i,Set)}toString(e,i,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),i,n);throw new Error("Set items must all have null values")}static from(e,i,n){let{replacer:o}=n,r=new this(e);if(i&&Symbol.iterator in Object(i))for(let s of i)typeof o=="function"&&(s=o.call(i,s,s)),r.items.push(fQ(s,null,n));return r}}return t.tag="tag:yaml.org,2002:set",t})(),p6={collection:"map",identify:t=>t instanceof Set,nodeClass:JH,default:!1,tag:"tag:yaml.org,2002:set",createNode:(t,A,e)=>JH.from(t,A,e),resolve(t,A){if(g0(t)){if(t.hasAllNullValues(!0))return Object.assign(new JH,t);A("Set items must all have null values")}else A("Expected a mapping for this tag");return t}};function YH(t,A){let e=t[0],i=e==="-"||e==="+"?t.substring(1):t,n=r=>A?BigInt(r):Number(r),o=i.replace(/_/g,"").split(":").reduce((r,s)=>r*n(60)+n(s),n(0));return e==="-"?n(-1)*o:o}function xIe(t){let{value:A}=t,e=r=>r;if(typeof A=="bigint")e=r=>BigInt(r);else if(isNaN(A)||!isFinite(A))return Oa(t);let i="";A<0&&(i="-",A*=e(-1));let n=e(60),o=[A%n];return A<60?o.unshift(0):(A=(A-o[0])/n,o.unshift(A%n),A>=60&&(A=(A-o[0])/n,o.unshift(A))),i+o.map(r=>String(r).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var z9={identify:t=>typeof t=="bigint"||Number.isInteger(t),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(t,A,{intAsBigInt:e})=>YH(t,e),stringify:xIe},P9={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:t=>YH(t,!1),stringify:xIe},QQ={identify:t=>t instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(t){let A=t.match(QQ.test);if(!A)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,e,i,n,o,r,s]=A.map(Number),a=A[7]?Number((A[7]+"00").substr(1,3)):0,c=Date.UTC(e,i-1,n,o||0,r||0,s||0,a),l=A[8];if(l&&l!=="Z"){let d=YH(l,!1);Math.abs(d)<30&&(d*=60),c-=6e4*d}return new Date(c)},stringify:({value:t})=>t?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};var HH=[I0,u0,gI,Bh,UH,TH,bIe,MIe,SIe,kIe,yIe,DIe,vIe,E6,C0,Q6,f6,p6,z9,P9,QQ];var _Ie=new Map([["core",QIe],["failsafe",[I0,u0,gI]],["json",pIe],["yaml11",HH],["yaml-1.1",HH]]),RIe={binary:E6,bool:B6,float:K9,floatExp:G9,floatNaN:F9,floatTime:P9,int:O9,intHex:J9,intOct:T9,intTime:z9,map:I0,merge:C0,null:Bh,omap:Q6,pairs:f6,seq:u0,set:p6,timestamp:QQ},NIe={"tag:yaml.org,2002:binary":E6,"tag:yaml.org,2002:merge":C0,"tag:yaml.org,2002:omap":Q6,"tag:yaml.org,2002:pairs":f6,"tag:yaml.org,2002:set":p6,"tag:yaml.org,2002:timestamp":QQ};function j9(t,A,e){let i=_Ie.get(A);if(i&&!t)return e&&!i.includes(C0)?i.concat(C0):i.slice();let n=i;if(!n)if(Array.isArray(t))n=[];else{let o=Array.from(_Ie.keys()).filter(r=>r!=="yaml11").map(r=>JSON.stringify(r)).join(", ");throw new Error(`Unknown schema "${A}"; use one of ${o} or define customTags array`)}if(Array.isArray(t))for(let o of t)n=n.concat(o);else typeof t=="function"&&(n=t(n.slice()));return e&&(n=n.concat(C0)),n.reduce((o,r)=>{let s=typeof r=="string"?RIe[r]:r;if(!s){let a=JSON.stringify(r),c=Object.keys(RIe).map(l=>JSON.stringify(l)).join(", ");throw new Error(`Unknown custom tag ${a}; use one of ${c}`)}return o.includes(s)||o.push(s),o},[])}var anA=(t,A)=>t.keyA.key?1:0,w6=class t{constructor({compat:A,customTags:e,merge:i,resolveKnownTags:n,schema:o,sortMapEntries:r,toStringDefaults:s}){this.compat=Array.isArray(A)?j9(A,"compat"):A?j9(null,A):null,this.name=typeof o=="string"&&o||"core",this.knownTags=n?NIe:{},this.tags=j9(e,this.name,i),this.toStringOptions=s??null,Object.defineProperty(this,c0,{value:I0}),Object.defineProperty(this,xl,{value:gI}),Object.defineProperty(this,A1,{value:u0}),this.sortMapEntries=typeof r=="function"?r:r===!0?anA:null}clone(){let A=Object.create(t.prototype,Object.getOwnPropertyDescriptors(this));return A.tags=this.tags.slice(),A}};function LIe(t,A){let e=[],i=A.directives===!0;if(A.directives!==!1&&t.directives){let a=t.directives.toString(t);a?(e.push(a),i=!0):t.directives.docStart&&(i=!0)}i&&e.push("---");let n=S9(t,A),{commentString:o}=n.options;if(t.commentBefore){e.length!==1&&e.unshift("");let a=o(t.commentBefore);e.unshift(Cg(a,""))}let r=!1,s=null;if(t.contents){if(Ln(t.contents)){if(t.contents.spaceBefore&&i&&e.push(""),t.contents.commentBefore){let l=o(t.contents.commentBefore);e.push(Cg(l,""))}n.forceBlockIndent=!!t.comment,s=t.contents.comment}let a=s?void 0:()=>r=!0,c=n1(t.contents,n,()=>s=null,a);s&&(c+=Jd(c,"",o(s))),(c[0]==="|"||c[0]===">")&&e[e.length-1]==="---"?e[e.length-1]=`--- ${c}`:e.push(c)}else e.push(n1(t.contents,n));if(t.directives?.docEnd)if(t.comment){let a=o(t.comment);a.includes(` +`)?(e.push("..."),e.push(Cg(a,""))):e.push(`... ${a}`)}else e.push("...");else{let a=t.comment;a&&r&&(a=a.replace(/^\n+/,"")),a&&((!r||s)&&e[e.length-1]!==""&&e.push(""),e.push(Cg(o(a),"")))}return e.join(` +`)+` +`}var o1=class t{constructor(A,e,i){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,lc,{value:f9});let n=null;typeof e=="function"||Array.isArray(e)?n=e:i===void 0&&e&&(i=e,e=void 0);let o=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},i);this.options=o;let{version:r}=o;i?._directives?(this.directives=i._directives.atDocument(),this.directives.yaml.explicit&&(r=this.directives.yaml.version)):this.directives=new uQ({version:r}),this.setSchema(r,i),this.contents=A===void 0?null:this.createNode(A,n,i)}clone(){let A=Object.create(t.prototype,{[lc]:{value:f9}});return A.commentBefore=this.commentBefore,A.comment=this.comment,A.errors=this.errors.slice(),A.warnings=this.warnings.slice(),A.options=Object.assign({},this.options),this.directives&&(A.directives=this.directives.clone()),A.schema=this.schema.clone(),A.contents=Ln(this.contents)?this.contents.clone(A.schema):this.contents,this.range&&(A.range=this.range.slice()),A}add(A){mQ(this.contents)&&this.contents.add(A)}addIn(A,e){mQ(this.contents)&&this.contents.addIn(A,e)}createAlias(A,e){if(!A.anchor){let i=MH(this);A.anchor=!e||i.has(e)?SH(e||"a",i):e}return new t1(A.anchor)}createNode(A,e,i){let n;if(typeof e=="function")A=e.call({"":A},"",A),n=e;else if(Array.isArray(e)){let B=b=>typeof b=="number"||b instanceof String||b instanceof Number,f=e.filter(B).map(String);f.length>0&&(e=e.concat(f)),n=e}else i===void 0&&e&&(i=e,e=void 0);let{aliasDuplicateObjects:o,anchorPrefix:r,flow:s,keepUndefined:a,onTagObj:c,tag:l}=i??{},{onAnchor:d,setAnchors:C,sourceObjects:I}=IIe(this,r||"a"),u={aliasDuplicateObjects:o??!0,keepUndefined:a??!1,onAnchor:d,onTagObj:c,replacer:n,schema:this.schema,sourceObjects:I},h=i1(A,l,u);return s&&uo(h)&&(h.flow=!0),C(),h}createPair(A,e,i={}){let n=this.createNode(A,null,i),o=this.createNode(e,null,i);return new qr(n,o)}delete(A){return mQ(this.contents)?this.contents.delete(A):!1}deleteIn(A){return BQ(A)?this.contents==null?!1:(this.contents=null,!0):mQ(this.contents)?this.contents.deleteIn(A):!1}get(A,e){return uo(this.contents)?this.contents.get(A,e):void 0}getIn(A,e){return BQ(A)?!e&&qi(this.contents)?this.contents.value:this.contents:uo(this.contents)?this.contents.getIn(A,e):void 0}has(A){return uo(this.contents)?this.contents.has(A):!1}hasIn(A){return BQ(A)?this.contents!==void 0:uo(this.contents)?this.contents.hasIn(A):!1}set(A,e){this.contents==null?this.contents=C6(this.schema,[A],e):mQ(this.contents)&&this.contents.set(A,e)}setIn(A,e){BQ(A)?this.contents=e:this.contents==null?this.contents=C6(this.schema,Array.from(A),e):mQ(this.contents)&&this.contents.setIn(A,e)}setSchema(A,e={}){typeof A=="number"&&(A=String(A));let i;switch(A){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new uQ({version:"1.1"}),i={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=A:this.directives=new uQ({version:A}),i={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,i=null;break;default:{let n=JSON.stringify(A);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${n}`)}}if(e.schema instanceof Object)this.schema=e.schema;else if(i)this.schema=new w6(Object.assign(i,e));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:A,jsonArg:e,mapAsMap:i,maxAliasCount:n,onAnchor:o,reviver:r}={}){let s={anchors:new Map,doc:this,keep:!A,mapAsMap:i===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},a=ks(this.contents,e??"",s);if(typeof o=="function")for(let{count:c,res:l}of s.anchors.values())o(l,c);return typeof r=="function"?aI(r,{"":a},"",a):a}toJSON(A,e){return this.toJS({json:!0,jsonArg:A,mapAsMap:!1,onAnchor:e})}toString(A={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in A&&(!Number.isInteger(A.indent)||Number(A.indent)<=0)){let e=JSON.stringify(A.indent);throw new Error(`"indent" option must be a positive integer, not ${e}`)}return LIe(this,A)}};function mQ(t){if(uo(t))return!0;throw new Error("Expected a YAML collection as document contents")}var y6=class extends Error{constructor(A,e,i,n){super(),this.name=A,this.code=i,this.message=n,this.pos=e}},h0=class extends y6{constructor(A,e,i){super("YAMLParseError",A,e,i)}},D6=class extends y6{constructor(A,e,i){super("YAMLWarning",A,e,i)}},zH=(t,A)=>e=>{if(e.pos[0]===-1)return;e.linePos=e.pos.map(s=>A.linePos(s));let{line:i,col:n}=e.linePos[0];e.message+=` at line ${i}, column ${n}`;let o=n-1,r=t.substring(A.lineStarts[i-1],A.lineStarts[i]).replace(/[\n\r]+$/,"");if(o>=60&&r.length>80){let s=Math.min(o-39,r.length-79);r="\u2026"+r.substring(s),o-=s-1}if(r.length>80&&(r=r.substring(0,79)+"\u2026"),i>1&&/^ *$/.test(r.substring(0,o))){let s=t.substring(A.lineStarts[i-2],A.lineStarts[i-1]);s.length>80&&(s=s.substring(0,79)+`\u2026 +`),r=s+r}if(/[^ ]/.test(r)){let s=1,a=e.linePos[1];a&&a.line===i&&a.col>n&&(s=Math.max(1,Math.min(a.col-n,80-o)));let c=" ".repeat(o)+"^".repeat(s);e.message+=`: + +${r} +${c} +`}};function Yd(t,{flow:A,indicator:e,next:i,offset:n,onError:o,parentIndent:r,startOnNewline:s}){let a=!1,c=s,l=s,d="",C="",I=!1,u=!1,h=null,B=null,f=null,b=null,k=null,S=null,w=null;for(let J of t)switch(u&&(J.type!=="space"&&J.type!=="newline"&&J.type!=="comma"&&o(J.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),u=!1),h&&(c&&J.type!=="comment"&&J.type!=="newline"&&o(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),h=null),J.type){case"space":!A&&(e!=="doc-start"||i?.type!=="flow-collection")&&J.source.includes(" ")&&(h=J),l=!0;break;case"comment":{l||o(J,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let O=J.source.substring(1)||" ";d?d+=C+O:d=O,C="",c=!1;break}case"newline":c?d?d+=J.source:(!S||e!=="seq-item-ind")&&(a=!0):C+=J.source,c=!0,I=!0,(B||f)&&(b=J),l=!0;break;case"anchor":B&&o(J,"MULTIPLE_ANCHORS","A node can have at most one anchor"),J.source.endsWith(":")&&o(J.offset+J.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),B=J,w??(w=J.offset),c=!1,l=!1,u=!0;break;case"tag":{f&&o(J,"MULTIPLE_TAGS","A node can have at most one tag"),f=J,w??(w=J.offset),c=!1,l=!1,u=!0;break}case e:(B||f)&&o(J,"BAD_PROP_ORDER",`Anchors and tags must be after the ${J.source} indicator`),S&&o(J,"UNEXPECTED_TOKEN",`Unexpected ${J.source} in ${A??"collection"}`),S=J,c=e==="seq-item-ind"||e==="explicit-key-ind",l=!1;break;case"comma":if(A){k&&o(J,"UNEXPECTED_TOKEN",`Unexpected , in ${A}`),k=J,c=!1,l=!1;break}default:o(J,"UNEXPECTED_TOKEN",`Unexpected ${J.type} token`),c=!1,l=!1}let _=t[t.length-1],K=_?_.offset+_.source.length:n;return u&&i&&i.type!=="space"&&i.type!=="newline"&&i.type!=="comma"&&(i.type!=="scalar"||i.source!=="")&&o(i.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),h&&(c&&h.indent<=r||i?.type==="block-map"||i?.type==="block-seq")&&o(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:k,found:S,spaceBefore:a,comment:d,hasNewline:I,anchor:B,tag:f,newlineAfterProp:b,end:K,start:w??K}}function dI(t){if(!t)return null;switch(t.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(t.source.includes(` +`))return!0;if(t.end){for(let A of t.end)if(A.type==="newline")return!0}return!1;case"flow-collection":for(let A of t.items){for(let e of A.start)if(e.type==="newline")return!0;if(A.sep){for(let e of A.sep)if(e.type==="newline")return!0}if(dI(A.key)||dI(A.value))return!0}return!1;default:return!0}}function v6(t,A,e){if(A?.type==="flow-collection"){let i=A.end[0];i.indent===t&&(i.source==="]"||i.source==="}")&&dI(A)&&e(i,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function V9(t,A,e){let{uniqueKeys:i}=t.options;if(i===!1)return!1;let n=typeof i=="function"?i:(o,r)=>o===r||qi(o)&&qi(r)&&o.value===r.value;return A.some(o=>n(o.key,e))}var FIe="All mapping items must start at the same column";function GIe({composeNode:t,composeEmptyNode:A},e,i,n,o){let r=o?.nodeClass??ls,s=new r(e.schema);e.atRoot&&(e.atRoot=!1);let a=i.offset,c=null;for(let l of i.items){let{start:d,key:C,sep:I,value:u}=l,h=Yd(d,{indicator:"explicit-key-ind",next:C??I?.[0],offset:a,onError:n,parentIndent:i.indent,startOnNewline:!0}),B=!h.found;if(B){if(C&&(C.type==="block-seq"?n(a,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in C&&C.indent!==i.indent&&n(a,"BAD_INDENT",FIe)),!h.anchor&&!h.tag&&!I){c=h.end,h.comment&&(s.comment?s.comment+=` +`+h.comment:s.comment=h.comment);continue}(h.newlineAfterProp||dI(C))&&n(C??d[d.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else h.found?.indent!==i.indent&&n(a,"BAD_INDENT",FIe);e.atKey=!0;let f=h.end,b=C?t(e,C,h,n):A(e,f,d,null,h,n);e.schema.compat&&v6(i.indent,C,n),e.atKey=!1,V9(e,s.items,b)&&n(f,"DUPLICATE_KEY","Map keys must be unique");let k=Yd(I??[],{indicator:"map-value-ind",next:u,offset:b.range[2],onError:n,parentIndent:i.indent,startOnNewline:!C||C.type==="block-scalar"});if(a=k.end,k.found){B&&(u?.type==="block-map"&&!k.hasNewline&&n(a,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),e.options.strict&&h.startt&&(t.type==="block-map"||t.type==="block-seq");function UIe({composeNode:t,composeEmptyNode:A},e,i,n,o){let r=i.start.source==="{",s=r?"flow map":"flow sequence",a=o?.nodeClass??(r?ls:Ta),c=new a(e.schema);c.flow=!0;let l=e.atRoot;l&&(e.atRoot=!1),e.atKey&&(e.atKey=!1);let d=i.offset+i.start.source.length;for(let B=0;B0){let B=Hd(u,h,e.options.strict,n);B.comment&&(c.comment?c.comment+=` +`+B.comment:c.comment=B.comment),c.range=[i.offset,h,B.offset]}else c.range=[i.offset,h,h];return c}function VH(t,A,e,i,n,o){let r=e.type==="block-map"?GIe(t,A,e,i,o):e.type==="block-seq"?KIe(t,A,e,i,o):UIe(t,A,e,i,o),s=r.constructor;return n==="!"||n===s.tagName?(r.tag=s.tagName,r):(n&&(r.tag=n),r)}function TIe(t,A,e,i,n){let o=i.tag,r=o?A.directives.tagName(o.source,C=>n(o,"TAG_RESOLVE_FAILED",C)):null;if(e.type==="block-seq"){let{anchor:C,newlineAfterProp:I}=i,u=C&&o?C.offset>o.offset?C:o:C??o;u&&(!I||I.offsetC.tag===r&&C.collection===s);if(!a){let C=A.schema.knownTags[r];if(C&&C.collection===s)A.schema.tags.push(Object.assign({},C,{default:!1})),a=C;else return C?n(o,"BAD_COLLECTION_TYPE",`${C.tag} used for ${s} collection, but expects ${C.collection??"scalar"}`,!0):n(o,"TAG_RESOLVE_FAILED",`Unresolved tag: ${r}`,!0),VH(t,A,e,n,r)}let c=VH(t,A,e,n,r,a),l=a.resolve?.(c,C=>n(o,"TAG_RESOLVE_FAILED",C),A.options)??c,d=Ln(l)?l:new qt(l);return d.range=c.range,d.tag=r,a?.format&&(d.format=a.format),d}function qH(t,A,e){let i=A.offset,n=cnA(A,t.options.strict,e);if(!n)return{value:"",type:null,comment:"",range:[i,i,i]};let o=n.mode===">"?qt.BLOCK_FOLDED:qt.BLOCK_LITERAL,r=A.source?lnA(A.source):[],s=r.length;for(let h=r.length-1;h>=0;--h){let B=r[h][1];if(B===""||B==="\r")s=h;else break}if(s===0){let h=n.chomp==="+"&&r.length>0?` +`.repeat(Math.max(1,r.length-1)):"",B=i+n.length;return A.source&&(B+=A.source.length),{value:h,type:o,comment:n.comment,range:[i,B,B]}}let a=A.indent+n.indent,c=A.offset+n.length,l=0;for(let h=0;ha&&(a=B.length);else{B.length=s;--h)r[h][0].length>a&&(s=h+1);let d="",C="",I=!1;for(let h=0;ha||f[0]===" "?(C===" "?C=` +`:!I&&C===` +`&&(C=` + +`),d+=C+B.slice(a)+f,C=` +`,I=!0):f===""?C===` +`?d+=` +`:C=` +`:(d+=C+f,C=" ",I=!1)}switch(n.chomp){case"-":break;case"+":for(let h=s;he(i+C,I,u);switch(n){case"scalar":s=qt.PLAIN,a=gnA(o,c);break;case"single-quoted-scalar":s=qt.QUOTE_SINGLE,a=dnA(o,c);break;case"double-quoted-scalar":s=qt.QUOTE_DOUBLE,a=CnA(o,c);break;default:return e(t,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${n}`),{value:"",type:null,comment:"",range:[i,i+o.length,i+o.length]}}let l=i+o.length,d=Hd(r,l,A,e);return{value:a,type:s,comment:d.comment,range:[i,l,d.offset]}}function gnA(t,A){let e="";switch(t[0]){case" ":e="a tab character";break;case",":e="flow indicator character ,";break;case"%":e="directive indicator character %";break;case"|":case">":{e=`block scalar indicator ${t[0]}`;break}case"@":case"`":{e=`reserved character ${t[0]}`;break}}return e&&A(0,"BAD_SCALAR_START",`Plain value cannot start with ${e}`),OIe(t)}function dnA(t,A){return(t[t.length-1]!=="'"||t.length===1)&&A(t.length,"MISSING_CHAR","Missing closing 'quote"),OIe(t.slice(1,-1)).replace(/''/g,"'")}function OIe(t){let A,e;try{A=new RegExp(`(.*?)(?o?t.slice(o,i+1):n)}else e+=n}return(t[t.length-1]!=='"'||t.length===1)&&A(t.length,"MISSING_CHAR",'Missing closing "quote'),e}function InA(t,A){let e="",i=t[A+1];for(;(i===" "||i===" "||i===` +`||i==="\r")&&!(i==="\r"&&t[A+2]!==` +`);)i===` +`&&(e+=` +`),A+=1,i=t[A+1];return e||(e=" "),{fold:e,offset:A}}var unA={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:` +`,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function hnA(t,A,e,i){let n=t.substr(A,e),r=n.length===e&&/^[0-9a-fA-F]+$/.test(n)?parseInt(n,16):NaN;if(isNaN(r)){let s=t.substr(A-2,e+2);return i(A-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${s}`),s}return String.fromCodePoint(r)}function ZH(t,A,e,i){let{value:n,type:o,comment:r,range:s}=A.type==="block-scalar"?qH(t,A,i):WH(A,t.options.strict,i),a=e?t.directives.tagName(e.source,d=>i(e,"TAG_RESOLVE_FAILED",d)):null,c;t.options.stringKeys&&t.atKey?c=t.schema[xl]:a?c=BnA(t.schema,n,a,e,i):A.type==="scalar"?c=EnA(t,n,A,i):c=t.schema[xl];let l;try{let d=c.resolve(n,C=>i(e??A,"TAG_RESOLVE_FAILED",C),t.options);l=qi(d)?d:new qt(d)}catch(d){let C=d instanceof Error?d.message:String(d);i(e??A,"TAG_RESOLVE_FAILED",C),l=new qt(n)}return l.range=s,l.source=n,o&&(l.type=o),a&&(l.tag=a),c.format&&(l.format=c.format),r&&(l.comment=r),l}function BnA(t,A,e,i,n){if(e==="!")return t[xl];let o=[];for(let s of t.tags)if(!s.collection&&s.tag===e)if(s.default&&s.test)o.push(s);else return s;for(let s of o)if(s.test?.test(A))return s;let r=t.knownTags[e];return r&&!r.collection?(t.tags.push(Object.assign({},r,{default:!1,test:void 0})),r):(n(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${e}`,e!=="tag:yaml.org,2002:str"),t[xl])}function EnA({atKey:t,directives:A,schema:e},i,n,o){let r=e.tags.find(s=>(s.default===!0||t&&s.default==="key")&&s.test?.test(i))||e[xl];if(e.compat){let s=e.compat.find(a=>a.default&&a.test?.test(i))??e[xl];if(r.tag!==s.tag){let a=A.tagString(r.tag),c=A.tagString(s.tag),l=`Value may be parsed as either ${a} or ${c}`;o(n,"TAG_RESOLVE_FAILED",l,!0)}}return r}function JIe(t,A,e){if(A){e??(e=A.length);for(let i=e-1;i>=0;--i){let n=A[i];switch(n.type){case"space":case"comment":case"newline":t-=n.source.length;continue}for(n=A[++i];n?.type==="space";)t+=n.source.length,n=A[++i];break}}return t}var fnA={composeNode:XH,composeEmptyNode:q9};function XH(t,A,e,i){let n=t.atKey,{spaceBefore:o,comment:r,anchor:s,tag:a}=e,c,l=!0;switch(A.type){case"alias":c=QnA(t,A,i),(s||a)&&i(A,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":c=ZH(t,A,a,i),s&&(c.anchor=s.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":c=TIe(fnA,t,A,e,i),s&&(c.anchor=s.source.substring(1));break;default:{let d=A.type==="error"?A.message:`Unsupported token (type: ${A.type})`;i(A,"UNEXPECTED_TOKEN",d),c=q9(t,A.offset,void 0,null,e,i),l=!1}}return s&&c.anchor===""&&i(s,"BAD_ALIAS","Anchor cannot be an empty string"),n&&t.options.stringKeys&&(!qi(c)||typeof c.value!="string"||c.tag&&c.tag!=="tag:yaml.org,2002:str")&&i(a??A,"NON_STRING_KEY","With stringKeys, all keys must be strings"),o&&(c.spaceBefore=!0),r&&(A.type==="scalar"&&A.source===""?c.comment=r:c.commentBefore=r),t.options.keepSourceTokens&&l&&(c.srcToken=A),c}function q9(t,A,e,i,{spaceBefore:n,comment:o,anchor:r,tag:s,end:a},c){let l={type:"scalar",offset:JIe(A,e,i),indent:-1,source:""},d=ZH(t,l,s,c);return r&&(d.anchor=r.source.substring(1),d.anchor===""&&c(r,"BAD_ALIAS","Anchor cannot be an empty string")),n&&(d.spaceBefore=!0),o&&(d.comment=o,d.range[2]=a),d}function QnA({options:t},{offset:A,source:e,end:i},n){let o=new t1(e.substring(1));o.source===""&&n(A,"BAD_ALIAS","Alias cannot be an empty string"),o.source.endsWith(":")&&n(A+e.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let r=A+e.length,s=Hd(i,r,t.strict,n);return o.range=[A,r,s.offset],s.comment&&(o.comment=s.comment),o}function YIe(t,A,{offset:e,start:i,value:n,end:o},r){let s=Object.assign({_directives:A},t),a=new o1(void 0,s),c={atKey:!1,atRoot:!0,directives:a.directives,options:a.options,schema:a.schema},l=Yd(i,{indicator:"doc-start",next:n??o?.[0],offset:e,onError:r,parentIndent:0,startOnNewline:!0});l.found&&(a.directives.docStart=!0,n&&(n.type==="block-map"||n.type==="block-seq")&&!l.hasNewline&&r(l.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),a.contents=n?XH(c,n,l,r):q9(c,l.end,i,null,l,r);let d=a.contents.range[2],C=Hd(o,d,!1,r);return C.comment&&(a.comment=C.comment),a.range=[e,d,C.offset],a}function b6(t){if(typeof t=="number")return[t,t+1];if(Array.isArray(t))return t.length===2?t:[t[0],t[1]];let{offset:A,source:e}=t;return[A,A+(typeof e=="string"?e.length:1)]}function HIe(t){let A="",e=!1,i=!1;for(let n=0;n{let r=b6(e);o?this.warnings.push(new D6(r,i,n)):this.errors.push(new h0(r,i,n))},this.directives=new uQ({version:A.version||"1.2"}),this.options=A}decorate(A,e){let{comment:i,afterEmptyLine:n}=HIe(this.prelude);if(i){let o=A.contents;if(e)A.comment=A.comment?`${A.comment} +${i}`:i;else if(n||A.directives.docStart||!o)A.commentBefore=i;else if(uo(o)&&!o.flow&&o.items.length>0){let r=o.items[0];bn(r)&&(r=r.key);let s=r.commentBefore;r.commentBefore=s?`${i} +${s}`:i}else{let r=o.commentBefore;o.commentBefore=r?`${i} +${r}`:i}}e?(Array.prototype.push.apply(A.errors,this.errors),Array.prototype.push.apply(A.warnings,this.warnings)):(A.errors=this.errors,A.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:HIe(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(A,e=!1,i=-1){for(let n of A)yield*cA(this.next(n));yield*cA(this.end(e,i))}*next(A){switch(A.type){case"directive":this.directives.add(A.source,(e,i,n)=>{let o=b6(A);o[0]+=e,this.onError(o,"BAD_DIRECTIVE",i,n)}),this.prelude.push(A.source),this.atDirectives=!0;break;case"document":{let e=YIe(this.options,this.directives,A,this.onError);this.atDirectives&&!e.directives.docStart&&this.onError(A,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(e,!1),this.doc&&(yield this.doc),this.doc=e,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(A.source);break;case"error":{let e=A.source?`${A.message}: ${JSON.stringify(A.source)}`:A.message,i=new h0(b6(A),"UNEXPECTED_TOKEN",e);this.atDirectives||!this.doc?this.errors.push(i):this.doc.errors.push(i);break}case"doc-end":{if(!this.doc){let i="Unexpected doc-end without preceding document";this.errors.push(new h0(b6(A),"UNEXPECTED_TOKEN",i));break}this.doc.directives.docEnd=!0;let e=Hd(A.end,A.offset+A.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),e.comment){let i=this.doc.comment;this.doc.comment=i?`${i} +${e.comment}`:e.comment}this.doc.range[2]=e.offset;break}default:this.errors.push(new h0(b6(A),"UNEXPECTED_TOKEN",`Unsupported token ${A.type}`))}}*end(A=!1,e=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(A){let i=Object.assign({_directives:this.directives},this.options),n=new o1(void 0,i);this.atDirectives&&this.onError(e,"MISSING_CHAR","Missing directives-end indicator line"),n.range=[0,e,e],this.decorate(n,!1),yield n}}};var $H=Symbol("break visit"),mnA=Symbol("skip children"),zIe=Symbol("remove item");function Eh(t,A){"type"in t&&t.type==="document"&&(t={start:t.start,value:t.value}),PIe(Object.freeze([]),t,A)}Eh.BREAK=$H;Eh.SKIP=mnA;Eh.REMOVE=zIe;Eh.itemAtPath=(t,A)=>{let e=t;for(let[i,n]of A){let o=e?.[i];if(o&&"items"in o)e=o.items[n];else return}return e};Eh.parentCollection=(t,A)=>{let e=Eh.itemAtPath(t,A.slice(0,-1)),i=A[A.length-1][0],n=e?.[i];if(n&&"items"in n)return n;throw new Error("Parent collection not found")};function PIe(t,A,e){let i=e(A,t);if(typeof i=="symbol")return i;for(let n of["key","value"]){let o=A[n];if(o&&"items"in o){for(let r=0;r":return"block-scalar-header"}return null}function B0(t){switch(t){case void 0:case" ":case` +`:case"\r":case" ":return!0;default:return!1}}var VIe=new Set("0123456789ABCDEFabcdef"),wnA=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Z9=new Set(",[]{}"),ynA=new Set(` ,[]{} +\r `),iz=t=>!t||ynA.has(t),S6=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(A,e=!1){if(A){if(typeof A!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+A:A,this.lineEndPos=null}this.atEnd=!e;let i=this.next??"stream";for(;i&&(e||this.hasChars(1));)i=yield*cA(this.parseNext(i))}atLineEnd(){let A=this.pos,e=this.buffer[A];for(;e===" "||e===" ";)e=this.buffer[++A];return!e||e==="#"||e===` +`?!0:e==="\r"?this.buffer[A+1]===` +`:!1}charAt(A){return this.buffer[this.pos+A]}continueScalar(A){let e=this.buffer[A];if(this.indentNext>0){let i=0;for(;e===" ";)e=this.buffer[++i+A];if(e==="\r"){let n=this.buffer[i+A+1];if(n===` +`||!n&&!this.atEnd)return A+i+1}return e===` +`||i>=this.indentNext||!e&&!this.atEnd?A+i:-1}if(e==="-"||e==="."){let i=this.buffer.substr(A,3);if((i==="---"||i==="...")&&B0(this.buffer[A+3]))return-1}return A}getLine(){let A=this.lineEndPos;return(typeof A!="number"||A!==-1&&Athis.indentValue&&!B0(this.charAt(1))&&(this.indentNext=this.indentValue),yield*cA(this.parseBlockStart())}*parseBlockStart(){let[A,e]=this.peek(2);if(!e&&!this.atEnd)return this.setNext("block-start");if((A==="-"||A==="?"||A===":")&&B0(e)){let i=(yield*cA(this.pushCount(1)))+(yield*cA(this.pushSpaces(!0)));return this.indentNext=this.indentValue+1,this.indentValue+=i,yield*cA(this.parseBlockStart())}return"doc"}*parseDocument(){yield*cA(this.pushSpaces(!0));let A=this.getLine();if(A===null)return this.setNext("doc");let e=yield*cA(this.pushIndicators());switch(A[e]){case"#":yield*cA(this.pushCount(A.length-e));case void 0:return yield*cA(this.pushNewline()),yield*cA(this.parseLineStart());case"{":case"[":return yield*cA(this.pushCount(1)),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*cA(this.pushCount(1)),"doc";case"*":return yield*cA(this.pushUntil(iz)),"doc";case'"':case"'":return yield*cA(this.parseQuotedScalar());case"|":case">":return e+=yield*cA(this.parseBlockScalarHeader()),e+=yield*cA(this.pushSpaces(!0)),yield*cA(this.pushCount(A.length-e)),yield*cA(this.pushNewline()),yield*cA(this.parseBlockScalar());default:return yield*cA(this.parsePlainScalar())}}*parseFlowCollection(){let A,e,i=-1;do A=yield*cA(this.pushNewline()),A>0?(e=yield*cA(this.pushSpaces(!1)),this.indentValue=i=e):e=0,e+=yield*cA(this.pushSpaces(!0));while(A+e>0);let n=this.getLine();if(n===null)return this.setNext("flow");if((i!==-1&&i"0"&&e<="9")this.blockScalarIndent=Number(e)-1;else if(e!=="-")break}return yield*cA(this.pushUntil(e=>B0(e)||e==="#"))}*parseBlockScalar(){let A=this.pos-1,e=0,i;e:for(let o=this.pos;i=this.buffer[o];++o)switch(i){case" ":e+=1;break;case` +`:A=o,e=0;break;case"\r":{let r=this.buffer[o+1];if(!r&&!this.atEnd)return this.setNext("block-scalar");if(r===` +`)break}default:break e}if(!i&&!this.atEnd)return this.setNext("block-scalar");if(e>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=e:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let o=this.continueScalar(A+1);if(o===-1)break;A=this.buffer.indexOf(` +`,o)}while(A!==-1);if(A===-1){if(!this.atEnd)return this.setNext("block-scalar");A=this.buffer.length}}let n=A+1;for(i=this.buffer[n];i===" ";)i=this.buffer[++n];if(i===" "){for(;i===" "||i===" "||i==="\r"||i===` +`;)i=this.buffer[++n];A=n-1}else if(!this.blockScalarKeep)do{let o=A-1,r=this.buffer[o];r==="\r"&&(r=this.buffer[--o]);let s=o;for(;r===" ";)r=this.buffer[--o];if(r===` +`&&o>=this.pos&&o+1+e>s)A=o;else break}while(!0);return yield W9,yield*cA(this.pushToIndex(A+1,!0)),yield*cA(this.parseLineStart())}*parsePlainScalar(){let A=this.flowLevel>0,e=this.pos-1,i=this.pos-1,n;for(;n=this.buffer[++i];)if(n===":"){let o=this.buffer[i+1];if(B0(o)||A&&Z9.has(o))break;e=i}else if(B0(n)){let o=this.buffer[i+1];if(n==="\r"&&(o===` +`?(i+=1,n=` +`,o=this.buffer[i+1]):e=i),o==="#"||A&&Z9.has(o))break;if(n===` +`){let r=this.continueScalar(i+1);if(r===-1)break;i=Math.max(i,r-2)}}else{if(A&&Z9.has(n))break;e=i}return!n&&!this.atEnd?this.setNext("plain-scalar"):(yield W9,yield*cA(this.pushToIndex(e+1,!0)),A?"flow":"doc")}*pushCount(A){return A>0?(yield this.buffer.substr(this.pos,A),this.pos+=A,A):0}*pushToIndex(A,e){let i=this.buffer.slice(this.pos,A);return i?(yield i,this.pos+=i.length,i.length):(e&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*cA(this.pushTag()))+(yield*cA(this.pushSpaces(!0)))+(yield*cA(this.pushIndicators()));case"&":return(yield*cA(this.pushUntil(iz)))+(yield*cA(this.pushSpaces(!0)))+(yield*cA(this.pushIndicators()));case"-":case"?":case":":{let A=this.flowLevel>0,e=this.charAt(1);if(B0(e)||A&&Z9.has(e))return A?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*cA(this.pushCount(1)))+(yield*cA(this.pushSpaces(!0)))+(yield*cA(this.pushIndicators()))}}return 0}*pushTag(){if(this.charAt(1)==="<"){let A=this.pos+2,e=this.buffer[A];for(;!B0(e)&&e!==">";)e=this.buffer[++A];return yield*cA(this.pushToIndex(e===">"?A+1:A,!1))}else{let A=this.pos+1,e=this.buffer[A];for(;e;)if(wnA.has(e))e=this.buffer[++A];else if(e==="%"&&VIe.has(this.buffer[A+1])&&VIe.has(this.buffer[A+2]))e=this.buffer[A+=3];else break;return yield*cA(this.pushToIndex(A,!1))}}*pushNewline(){let A=this.buffer[this.pos];return A===` +`?yield*cA(this.pushCount(1)):A==="\r"&&this.charAt(1)===` +`?yield*cA(this.pushCount(2)):0}*pushSpaces(A){let e=this.pos-1,i;do i=this.buffer[++e];while(i===" "||A&&i===" ");let n=e-this.pos;return n>0&&(yield this.buffer.substr(this.pos,n),this.pos=e),n}*pushUntil(A){let e=this.pos,i=this.buffer[e];for(;!A(i);)i=this.buffer[++e];return yield*cA(this.pushToIndex(e,!1))}};var k6=class{constructor(){this.lineStarts=[],this.addNewLine=A=>this.lineStarts.push(A),this.linePos=A=>{let e=0,i=this.lineStarts.length;for(;e>1;this.lineStarts[o]=0;)switch(t[A].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;t[++A]?.type==="space";);return t.splice(A,t.length)}function WIe(t){if(t.start.type==="flow-seq-start")for(let A of t.items)A.sep&&!A.value&&!CI(A.start,"explicit-key-ind")&&!CI(A.sep,"map-value-ind")&&(A.key&&(A.value=A.key),delete A.key,ZIe(A.value)?A.value.end?Array.prototype.push.apply(A.value.end,A.sep):A.value.end=A.sep:Array.prototype.push.apply(A.start,A.sep),delete A.sep)}var x6=class{constructor(A){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new S6,this.onNewLine=A}*parse(A,e=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let i of this.lexer.lex(A,e))yield*cA(this.next(i));e||(yield*cA(this.end()))}*next(A){if(this.source=A,this.atScalar){this.atScalar=!1,yield*cA(this.step()),this.offset+=A.length;return}let e=jIe(A);if(e)if(e==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=e,yield*cA(this.step()),e){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+A.length);break;case"space":this.atNewLine&&A[0]===" "&&(this.indent+=A.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=A.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=A.length}else{let i=`Not a YAML token: ${A}`;yield*cA(this.pop({type:"error",offset:this.offset,message:i,source:A})),this.offset+=A.length}}*end(){for(;this.stack.length>0;)yield*cA(this.pop())}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let A=this.peek(1);if(this.type==="doc-end"&&(!A||A.type!=="doc-end")){for(;this.stack.length>0;)yield*cA(this.pop());this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!A)return yield*cA(this.stream());switch(A.type){case"document":return yield*cA(this.document(A));case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*cA(this.scalar(A));case"block-scalar":return yield*cA(this.blockScalar(A));case"block-map":return yield*cA(this.blockMap(A));case"block-seq":return yield*cA(this.blockSequence(A));case"flow-collection":return yield*cA(this.flowCollection(A));case"doc-end":return yield*cA(this.documentEnd(A))}yield*cA(this.pop())}peek(A){return this.stack[this.stack.length-A]}*pop(A){let e=A??this.stack.pop();if(!e)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield e;else{let i=this.peek(1);switch(e.type==="block-scalar"?e.indent="indent"in i?i.indent:0:e.type==="flow-collection"&&i.type==="document"&&(e.indent=0),e.type==="flow-collection"&&WIe(e),i.type){case"document":i.value=e;break;case"block-scalar":i.props.push(e);break;case"block-map":{let n=i.items[i.items.length-1];if(n.value){i.items.push({start:[],key:e,sep:[]}),this.onKeyLine=!0;return}else if(n.sep)n.value=e;else{Object.assign(n,{key:e,sep:[]}),this.onKeyLine=!n.explicitKey;return}break}case"block-seq":{let n=i.items[i.items.length-1];n.value?i.items.push({start:[],value:e}):n.value=e;break}case"flow-collection":{let n=i.items[i.items.length-1];!n||n.value?i.items.push({start:[],key:e,sep:[]}):n.sep?n.value=e:Object.assign(n,{key:e,sep:[]});return}default:yield*cA(this.pop()),yield*cA(this.pop(e))}if((i.type==="document"||i.type==="block-map"||i.type==="block-seq")&&(e.type==="block-map"||e.type==="block-seq")){let n=e.items[e.items.length-1];n&&!n.sep&&!n.value&&n.start.length>0&&qIe(n.start)===-1&&(e.indent===0||n.start.every(o=>o.type!=="comment"||o.indent=A.indent){let i=!this.onKeyLine&&this.indent===A.indent,n=i&&(e.sep||e.explicitKey)&&this.type!=="seq-item-ind",o=[];if(n&&e.sep&&!e.value){let r=[];for(let s=0;sA.indent&&(r.length=0);break;default:r.length=0}}r.length>=2&&(o=e.sep.splice(r[1]))}switch(this.type){case"anchor":case"tag":n||e.value?(o.push(this.sourceToken),A.items.push({start:o}),this.onKeyLine=!0):e.sep?e.sep.push(this.sourceToken):e.start.push(this.sourceToken);return;case"explicit-key-ind":!e.sep&&!e.explicitKey?(e.start.push(this.sourceToken),e.explicitKey=!0):n||e.value?(o.push(this.sourceToken),A.items.push({start:o,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(e.explicitKey)if(e.sep)if(e.value)A.items.push({start:[],key:null,sep:[this.sourceToken]});else if(CI(e.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]});else if(ZIe(e.key)&&!CI(e.sep,"newline")){let r=pQ(e.start),s=e.key,a=e.sep;a.push(this.sourceToken),delete e.key,delete e.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:s,sep:a}]})}else o.length>0?e.sep=e.sep.concat(o,this.sourceToken):e.sep.push(this.sourceToken);else if(CI(e.start,"newline"))Object.assign(e,{key:null,sep:[this.sourceToken]});else{let r=pQ(e.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]})}else e.sep?e.value||n?A.items.push({start:o,key:null,sep:[this.sourceToken]}):CI(e.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):e.sep.push(this.sourceToken):Object.assign(e,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let r=this.flowScalar(this.type);n||e.value?(A.items.push({start:o,key:r,sep:[]}),this.onKeyLine=!0):e.sep?this.stack.push(r):(Object.assign(e,{key:r,sep:[]}),this.onKeyLine=!0);return}default:{let r=this.startBlockValue(A);if(r){if(r.type==="block-seq"){if(!e.explicitKey&&e.sep&&!CI(e.sep,"newline")){yield*cA(this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source}));return}}else i&&A.items.push({start:o});this.stack.push(r);return}}}}yield*cA(this.pop()),yield*cA(this.step())}*blockSequence(A){let e=A.items[A.items.length-1];switch(this.type){case"newline":if(e.value){let i="end"in e.value?e.value.end:void 0;(Array.isArray(i)?i[i.length-1]:void 0)?.type==="comment"?i?.push(this.sourceToken):A.items.push({start:[this.sourceToken]})}else e.start.push(this.sourceToken);return;case"space":case"comment":if(e.value)A.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(e.start,A.indent)){let n=A.items[A.items.length-2]?.value?.end;if(Array.isArray(n)){Array.prototype.push.apply(n,e.start),n.push(this.sourceToken),A.items.pop();return}}e.start.push(this.sourceToken)}return;case"anchor":case"tag":if(e.value||this.indent<=A.indent)break;e.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==A.indent)break;e.value||CI(e.start,"seq-item-ind")?A.items.push({start:[this.sourceToken]}):e.start.push(this.sourceToken);return}if(this.indent>A.indent){let i=this.startBlockValue(A);if(i){this.stack.push(i);return}}yield*cA(this.pop()),yield*cA(this.step())}*flowCollection(A){let e=A.items[A.items.length-1];if(this.type==="flow-error-end"){let i;do yield*cA(this.pop()),i=this.peek(1);while(i&&i.type==="flow-collection")}else if(A.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!e||e.sep?A.items.push({start:[this.sourceToken]}):e.start.push(this.sourceToken);return;case"map-value-ind":!e||e.value?A.items.push({start:[],key:null,sep:[this.sourceToken]}):e.sep?e.sep.push(this.sourceToken):Object.assign(e,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!e||e.value?A.items.push({start:[this.sourceToken]}):e.sep?e.sep.push(this.sourceToken):e.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let n=this.flowScalar(this.type);!e||e.value?A.items.push({start:[],key:n,sep:[]}):e.sep?this.stack.push(n):Object.assign(e,{key:n,sep:[]});return}case"flow-map-end":case"flow-seq-end":A.end.push(this.sourceToken);return}let i=this.startBlockValue(A);i?this.stack.push(i):(yield*cA(this.pop()),yield*cA(this.step()))}else{let i=this.peek(2);if(i.type==="block-map"&&(this.type==="map-value-ind"&&i.indent===A.indent||this.type==="newline"&&!i.items[i.items.length-1].sep))yield*cA(this.pop()),yield*cA(this.step());else if(this.type==="map-value-ind"&&i.type!=="flow-collection"){let n=X9(i),o=pQ(n);WIe(A);let r=A.end.splice(1,A.end.length);r.push(this.sourceToken);let s={type:"block-map",offset:A.offset,indent:A.indent,items:[{start:o,key:A,sep:r}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=s}else yield*cA(this.lineEnd(A))}}flowScalar(A){if(this.onNewLine){let e=this.source.indexOf(` +`)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(` +`,e)+1}return{type:A,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(A){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let e=X9(A),i=pQ(e);return i.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let e=X9(A),i=pQ(e);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(A,e){return this.type!=="comment"||this.indent<=e?!1:A.every(i=>i.type==="newline"||i.type==="space")}*documentEnd(A){this.type!=="doc-mode"&&(A.end?A.end.push(this.sourceToken):A.end=[this.sourceToken],this.type==="newline"&&(yield*cA(this.pop())))}*lineEnd(A){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*cA(this.pop()),yield*cA(this.step());break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:A.end?A.end.push(this.sourceToken):A.end=[this.sourceToken],this.type==="newline"&&(yield*cA(this.pop()))}}};function DnA(t){let A=t.prettyErrors!==!1;return{lineCounter:t.lineCounter||A&&new k6||null,prettyErrors:A}}function XIe(t,A={}){let{lineCounter:e,prettyErrors:i}=DnA(A),n=new x6(e?.addNewLine),o=new M6(A),r=null;for(let s of o.compose(n.parse(t),!0,t.length))if(!r)r=s;else if(r.options.logLevel!=="silent"){r.errors.push(new h0(s.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return i&&e&&(r.errors.forEach(zH(t,e)),r.warnings.forEach(zH(t,e))),r}function fh(t,A,e){let i;typeof A=="function"?i=A:e===void 0&&A&&typeof A=="object"&&(e=A);let n=XIe(t,e);if(!n)return null;if(n.warnings.forEach(o=>k9(n.options.logLevel,o)),n.errors.length>0){if(n.options.logLevel!=="silent")throw n.errors[0];n.errors=[]}return n.toJS(Object.assign({reviver:i},e))}function nz(t,A,e){let i=null;if(typeof A=="function"||Array.isArray(A)?i=A:e===void 0&&A&&(e=A),typeof e=="string"&&(e=e.length),typeof e=="number"){let n=Math.round(e);e=n<1?void 0:n>8?{indent:8}:{indent:n}}if(t===void 0){let{keepUndefined:n}=e??A??{};if(!n)return}return l0(t)&&!i?t.toString(e):new o1(t,i,e).toString(e)}var zd=class{static generateYamlFile(A,e,i,n,o=new Set){if(o.has(A.name))return;o.add(A.name);let r=A.isRoot?"root_agent.yaml":`${A.name}.yaml`,s=`${i}/${r}`,a=A.sub_agents?A.sub_agents.map(u=>({config_path:`./${u.name}.yaml`})):[],c={name:A.name,model:A.model,agent_class:A.agent_class,description:A.description||"",instruction:A.instruction,sub_agents:a,tools:this.buildToolsConfig(A.tools,n)};(!A.description||A.description.trim()==="")&&delete c.description,A.agent_class!="LlmAgent"&&(delete c.instruction,delete c.tools),A.agent_class==="LoopAgent"&&A.max_iterations&&(c.max_iterations=A.max_iterations);let l=this.buildCallbacksConfig(A.callbacks);Object.keys(l).length>0&&Object.assign(c,l);let d=nz(c),C=new Blob([d],{type:"application/x-yaml"}),I=new File([C],s,{type:"application/x-yaml"});e.append("files",I);for(let u of A.sub_agents??[])this.generateYamlFile(u,e,i,n,o);if(A.tools){for(let u of A.tools)if(u.toolType==="Agent Tool"){let h=u.toolAgentName||u.name;if(!h||h==="undefined"||h.trim()==="")continue;let B=n.get(h);B&&this.generateYamlFile(B,e,i,n,o)}}}static buildToolsConfig(A,e){return!A||A.length===0?[]:A.map(i=>{let n={name:i.name};if(i.toolType==="Agent Tool"){n.name="AgentTool";let o=i.toolAgentName||i.name;if(!o||o==="undefined"||o.trim()==="")return null;let r=e.get(o);return n.args={agent:{config_path:`./${o}.yaml`},skip_summarization:r?.skip_summarization||!1},n}return i.args&&Object.keys(i.args).some(r=>{let s=i.args[r];return s!=null&&s!==""})&&(n.args=i.args),n}).filter(i=>i!==null)}static buildCallbacksConfig(A){if(!A||A.length===0)return{};let e={};return A.forEach(i=>{let n=`${i.type}_callbacks`;e[n]||(e[n]=[]),e[n].push({name:i.name})}),e}};var E0=class t{static toolMenuTooltips=new Map([["Function tool","Build custom tools for your specific ADK agent needs."],["Built-in tool","Ready-to-use functionality such as Google Search or code executors that provide agents with common capabilities. "],["Agent tool","A sub-agent that can be invoked as a tool by another agent."]]);static toolDetailedInfo=new Map([["Function tool",{shortDescription:"Build custom tools for your specific ADK agent needs.",detailedDescription:"The ADK framework automatically inspects your Python function's signature\u2014including its name, docstring, parameters, type hints, and default values\u2014to generate a schema. This schema is what the LLM uses to understand the tool's purpose, when to use it, and what arguments it requires.",docLink:"https://google.github.io/adk-docs/tools/function-tools/"}],["Agent tool",{shortDescription:"Wraps a sub-agent as a callable tool, enabling modular and hierarchical agent architectures.",detailedDescription:"Agent tools allow you to use one agent as a tool within another agent, creating powerful multi-agent workflows.",docLink:"https://google.github.io/adk-docs/agents/multi-agents/#c-explicit-invocation-agenttool"}]]);static callbackMenuTooltips=new Map([["before_agent","Called immediately before the agent's _run_async_impl (or _run_live_impl) method is executed."],["after_agent","Called immediately after the agent's _run_async_impl (or _run_live_impl) method successfully completes."],["before_model","Called just before the generate_content_async (or equivalent) request is sent to the LLM within an LlmAgent's flow."],["after_model","Called just after a response (LlmResponse) is received from the LLM, before it's processed further by the invoking agent."],["before_tool","Called just before a specific tool's run_async method is invoked, after the LLM has generated a function call for it."],["after_tool","Called just after the tool's run_async method completes successfully."]]);static callbackDialogTooltips=new Map([["before_agent","Called immediately before the agent's _run_async_impl (or _run_live_impl) method is executed."],["after_agent","Called immediately after the agent's _run_async_impl (or _run_live_impl) method successfully completes."],["before_model","Called just before the generate_content_async (or equivalent) request is sent to the LLM within an LlmAgent's flow."],["after_model","Called just after a response (LlmResponse) is received from the LLM, before it's processed further by the invoking agent."],["before_tool","Called just before a specific tool's run_async method is invoked, after the LLM has generated a function call for it."],["after_tool","Called just after the tool's run_async method completes successfully."]]);static callbackDetailedInfo=new Map([["before_agent",{shortDescription:"Called immediately before the agent's _run_async_impl (or _run_live_impl) method is executed. It runs after the agent's InvocationContext is created but before its core logic begins.",detailedDescription:" Ideal for setting up resources or state needed only for this specific agent's run, performing validation checks on the session state (callback_context.state) before execution starts, logging the entry point of the agent's activity, or potentially modifying the invocation context before the core logic uses it.",docLink:"https://google.github.io/adk-docs/callbacks/types-of-callbacks/#before-agent-callback"}],["after_agent",{shortDescription:"Called immediately after the agent's _run_async_impl (or _run_live_impl) method successfully completes.",detailedDescription:"Useful for cleanup tasks, post-execution validation, logging the completion of an agent's activity, modifying final state, or augmenting/replacing the agent's final output.",docLink:"https://google.github.io/adk-docs/callbacks/types-of-callbacks/#after-agent-callback"}],["before_model",{shortDescription:"Called just before the generate_content_async (or equivalent) request is sent to the LLM within an LlmAgent's flow.",detailedDescription:"Allows inspection and modification of the request going to the LLM. Use cases include adding dynamic instructions, injecting few-shot examples based on state, modifying model config, implementing guardrails (like profanity filters), or implementing request-level caching.",docLink:"https://google.github.io/adk-docs/callbacks/types-of-callbacks/#before-model-callback"}],["after_model",{shortDescription:"Called just after a response (LlmResponse) is received from the LLM, before it's processed further by the invoking agent.",detailedDescription:"Allows inspection or modification of the raw LLM response.",docLink:"https://google.github.io/adk-docs/callbacks/types-of-callbacks/#after-model-callback"}],["before_tool",{shortDescription:"Called just before a specific tool's run_async method is invoked, after the LLM has generated a function call for it.",detailedDescription:"Allows inspection and modification of tool arguments, performing authorization checks before execution, logging tool usage attempts, or implementing tool-level caching.",docLink:"https://google.github.io/adk-docs/callbacks/types-of-callbacks/#before-tool-callback"}],["after_tool",{shortDescription:"Called just after the tool's run_async method completes successfully.",detailedDescription:"Allows inspection and modification of the tool's result before it's sent back to the LLM (potentially after summarization). Useful for logging tool results, post-processing or formatting results, or saving specific parts of the result to the session state.",docLink:"https://google.github.io/adk-docs/callbacks/types-of-callbacks/#after-tool-callback"}]]);static getToolMenuTooltips(A){return t.toolMenuTooltips.get(A)}static getToolDetailedInfo(A){return t.toolDetailedInfo.get(A)}static getCallbackMenuTooltips(A){return t.callbackMenuTooltips.get(A)}static getCallbackDialogTooltips(A){return t.callbackDialogTooltips.get(A)}static getCallbackDetailedInfo(A){return t.callbackDetailedInfo.get(A)}};function bnA(t,A){if(t&1){let e=Ue();Qa(0),m(1,"div",6)(2,"div",7),ee("click",function(){q(e);let n=M();return W(n.toggleToolInfo())}),m(3,"mat-icon",8),T(4,"info"),p(),m(5,"div",9)(6,"span"),T(7,"Tool Information"),p()(),m(8,"button",10)(9,"mat-icon"),T(10),p()()(),m(11,"div",11)(12,"div",12)(13,"div",13),T(14),p(),m(15,"div",14),T(16),p()(),m(17,"div",15)(18,"a",16)(19,"mat-icon"),T(20,"open_in_new"),p(),m(21,"span"),T(22,"View Official Documentation"),p()()()()(),ma()}if(t&2){let e,i,n,o=M();y(10),Pe(o.isToolInfoExpanded?"expand_less":"expand_more"),y(),iA("expanded",o.isToolInfoExpanded),y(3),Pe((e=o.getToolInfo())==null?null:e.shortDescription),y(2),Pe((i=o.getToolInfo())==null?null:i.detailedDescription),y(2),te("href",(n=o.getToolInfo())==null?null:n.docLink,$r)}}function MnA(t,A){t&1&&(m(0,"mat-hint",19),T(1," Start with a letter or underscore, and contain only letters, digits, and underscores. "),p())}function SnA(t,A){if(t&1){let e=Ue();m(0,"mat-form-field",2)(1,"mat-label"),T(2),p(),m(3,"input",17),qn("ngModelChange",function(n){q(e);let o=M();return Vn(o.inputValue,n)||(o.inputValue=n),W(n)}),ee("keydown",function(n){q(e);let o=M();return W(o.onKeyDown(n))}),p(),ne(4,MnA,2,0,"mat-hint",18),p()}if(t&2){let e=M();y(2),Pe(e.data.inputLabel||"Input"),y(),jn("ngModel",e.inputValue),te("placeholder",e.data.inputPlaceholder||"Enter value"),y(),te("ngIf",!e.isInputValid())}}var f0=class t{constructor(A,e){this.dialogRef=A;this.data=e;this.inputValue=e.inputValue||""}inputValue="";isToolInfoExpanded=!1;isInputValid(){let A=this.inputValue.trim();return!(!A||!/^[a-zA-Z_]/.test(A)||!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(A))}onCancel(){this.dialogRef.close()}onConfirm(){if(this.data.showInput){let A=this.inputValue.trim();if(!this.isInputValid())return;this.dialogRef.close(A)}else this.dialogRef.close("confirm")}onKeyDown(A){A.key==="Enter"&&this.data.showInput&&this.onConfirm()}getToolInfo(){if(this.data.toolType)return E0.getToolDetailedInfo(this.data.toolType)}toggleToolInfo(){this.isToolInfoExpanded=!this.isToolInfoExpanded}static \u0275fac=function(e){return new(e||t)(DA(co),DA(qo))};static \u0275cmp=xe({type:t,selectors:[["app-confirmation-dialog"]],decls:12,vars:6,consts:[["mat-dialog-title",""],[4,"ngIf"],[2,"width","100%","margin-top","16px"],["align","end"],["mat-button","",3,"click"],["mat-button","","color","primary","cdkFocusInitial","",3,"click","disabled"],[1,"tool-info-container"],[1,"tool-info-header",3,"click"],[1,"tool-info-icon"],[1,"tool-info-title"],["mat-icon-button","","type","button","aria-label","Toggle tool information",1,"tool-info-toggle"],[1,"tool-info-body"],[1,"tool-info-content"],[1,"tool-info-short"],[1,"tool-info-detailed"],[1,"tool-info-link-container"],["target","_blank","rel","noopener noreferrer",1,"tool-info-link",3,"href"],["matInput","","cdkFocusInitial","",3,"ngModelChange","keydown","ngModel","placeholder"],["style","font-size: 11px; color: #666;",4,"ngIf"],[2,"font-size","11px","color","#666"]],template:function(e,i){e&1&&(m(0,"h2",0),T(1),p(),m(2,"mat-dialog-content"),ne(3,bnA,23,6,"ng-container",1),m(4,"p"),T(5),p(),ne(6,SnA,5,4,"mat-form-field",2),p(),m(7,"mat-dialog-actions",3)(8,"button",4),ee("click",function(){return i.onCancel()}),T(9,"Cancel"),p(),m(10,"button",5),ee("click",function(){return i.onConfirm()}),T(11),p()()),e&2&&(y(),Pe(i.data.title),y(2),te("ngIf",i.data.showToolInfo&&i.getToolInfo()),y(2),Pe(i.data.message),y(),$(i.data.showInput?6:-1),y(4),te("disabled",i.data.showInput&&!i.isInputValid()),y(),FA(" ",i.data.confirmButtonText||"Confirm"," "))},dependencies:[Ur,bg,j0,Un,ya,ir,tr,jr,kr,gl,ds,q0,JB,L1,Gs,Kn,Mr,Fo,Cr],styles:["mat-dialog-content[_ngcontent-%COMP%]{padding:20px 24px;display:flex;flex-direction:column;gap:16px}.tool-info-container[_ngcontent-%COMP%]{background-color:#8ab4f814;border:1px solid rgba(138,180,248,.2);border-radius:8px;padding:16px;margin-bottom:16px}.tool-info-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 0}.tool-info-header[_ngcontent-%COMP%]:hover .tool-info-title[_ngcontent-%COMP%]{color:#a7c8ff}.tool-info-icon[_ngcontent-%COMP%]{color:#8ab4f8;font-size:20px;width:20px;height:20px;flex-shrink:0}.tool-info-title[_ngcontent-%COMP%]{flex:1;font-weight:500;color:#8ab4f8;font-size:14px;transition:color .2s ease}.tool-info-toggle[_ngcontent-%COMP%]{color:#8ab4f8;margin:-8px}.tool-info-toggle[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{transition:transform .2s ease}.tool-info-body[_ngcontent-%COMP%]{max-height:0;overflow:hidden;opacity:0;transition:max-height .3s ease,opacity .2s ease,margin-top .3s ease}.tool-info-body.expanded[_ngcontent-%COMP%]{max-height:500px;opacity:1;margin-top:12px}.tool-info-content[_ngcontent-%COMP%]{flex:1}.tool-info-short[_ngcontent-%COMP%]{font-weight:500;color:#e3e3e3;margin-bottom:8px;line-height:1.4}.tool-info-detailed[_ngcontent-%COMP%]{color:#c4c7ca;font-size:14px;line-height:1.5}.tool-info-link-container[_ngcontent-%COMP%]{margin-top:12px}.tool-info-link[_ngcontent-%COMP%]{color:#8ab4f8;text-decoration:none;font-size:14px;display:inline-flex;align-items:center;gap:4px;transition:color .2s ease}.tool-info-link[_ngcontent-%COMP%]:hover{color:#a7c8ff}.tool-info-link[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px}"]})};function knA(t,A){if(t&1){let e=Ue();Qa(0),m(1,"div",6)(2,"div",7),ee("click",function(){q(e);let n=M();return W(n.toggleToolInfo())}),m(3,"mat-icon",8),T(4,"info"),p(),m(5,"div",9)(6,"span"),T(7,"Tool Information"),p()(),m(8,"button",10)(9,"mat-icon"),T(10),p()()(),m(11,"div",11)(12,"div",12)(13,"div",13),T(14),p(),m(15,"div",14),T(16),p()(),m(17,"div",15)(18,"a",16)(19,"mat-icon"),T(20,"open_in_new"),p(),m(21,"span"),T(22,"View Official Documentation"),p()()()()(),ma()}if(t&2){let e,i,n,o=M();y(10),Pe(o.isToolInfoExpanded?"expand_less":"expand_more"),y(),iA("expanded",o.isToolInfoExpanded),y(3),Pe((e=o.getToolInfo())==null?null:e.shortDescription),y(2),Pe((i=o.getToolInfo())==null?null:i.detailedDescription),y(2),te("href",(n=o.getToolInfo())==null?null:n.docLink,$r)}}function xnA(t,A){if(t&1){let e=Ue();m(0,"mat-form-field",2)(1,"input",17),qn("ngModelChange",function(n){q(e);let o=M();return Vn(o.toolName,n)||(o.toolName=n),W(n)}),ee("keydown.enter",function(){q(e);let n=M();return W(n.addTool())}),p()()}if(t&2){let e=M();y(),jn("ngModel",e.toolName)}}function _nA(t,A){if(t&1&&(m(0,"mat-option",20),T(1),p()),t&2){let e=A.$implicit;te("value",e),y(),FA(" ",e," ")}}function RnA(t,A){if(t&1){let e=Ue();m(0,"mat-form-field",2)(1,"mat-select",18),qn("ngModelChange",function(n){q(e);let o=M();return Vn(o.selectedBuiltInTool,n)||(o.selectedBuiltInTool=n),W(n)}),ne(2,_nA,2,2,"mat-option",19),p()()}if(t&2){let e=M();y(),jn("ngModel",e.selectedBuiltInTool),y(),te("ngForOf",e.builtInTools)}}var II=class t{constructor(A,e){this.data=A;this.dialogRef=e}toolName="";toolType="Function tool";selectedBuiltInTool="google_search";builtInTools=["EnterpriseWebSearchTool","exit_loop","FilesRetrieval","get_user_choice","google_search","load_artifacts","load_memory","LongRunningFunctionTool","preload_memory","url_context","VertexAiRagRetrieval","VertexAiSearchTool"];isEditMode=!1;isToolInfoExpanded=!1;ngOnInit(){this.toolType=this.data.toolType,this.isEditMode=this.data.isEditMode||!1,this.isEditMode&&this.data.toolName&&(this.toolType==="Function tool"?this.toolName=this.data.toolName:this.toolType==="Built-in tool"&&(this.selectedBuiltInTool=this.data.toolName))}addTool(){if(this.toolType==="Function tool"&&!this.toolName.trim())return;let A={toolType:this.toolType,isEditMode:this.isEditMode};this.toolType==="Function tool"?A.name=this.toolName.trim():this.toolType==="Built-in tool"&&(A.name=this.selectedBuiltInTool),this.dialogRef.close(A)}cancel(){this.dialogRef.close()}createDisabled(){return this.toolType==="Function tool"&&!this.toolName.trim()}getToolInfo(){return E0.getToolDetailedInfo(this.toolType)}toggleToolInfo(){this.isToolInfoExpanded=!this.isToolInfoExpanded}static \u0275fac=function(e){return new(e||t)(DA(qo),DA(co))};static \u0275cmp=xe({type:t,selectors:[["app-add-tool-dialog"]],decls:11,vars:6,consts:[["mat-dialog-title","",1,"dialog-title"],[4,"ngIf"],[2,"width","100%"],["align","end"],["mat-button","",3,"click"],["mat-button","","cdkFocusInitial","",3,"click","disabled"],[1,"tool-info-container"],[1,"tool-info-header",3,"click"],[1,"tool-info-icon"],[1,"tool-info-title"],["mat-icon-button","","type","button","aria-label","Toggle tool information",1,"tool-info-toggle"],[1,"tool-info-body"],[1,"tool-info-content"],[1,"tool-info-short"],[1,"tool-info-detailed"],[1,"tool-info-link-container"],["target","_blank","rel","noopener noreferrer",1,"tool-info-link",3,"href"],["matInput","","placeholder","Enter full function name",3,"ngModelChange","keydown.enter","ngModel"],["placeholder","Select built-in tool",3,"ngModelChange","ngModel"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(e,i){e&1&&(m(0,"h2",0),T(1),p(),m(2,"mat-dialog-content"),ne(3,knA,23,6,"ng-container",1)(4,xnA,2,1,"mat-form-field",2)(5,RnA,3,2,"mat-form-field",2),p(),m(6,"mat-dialog-actions",3)(7,"button",4),ee("click",function(){return i.cancel()}),T(8,"Cancel"),p(),m(9,"button",5),ee("click",function(){return i.addTool()}),T(10),p()()),e&2&&(y(),Pe(i.isEditMode?"Editing Tool":"Add New Tool"),y(2),te("ngIf",i.getToolInfo()),y(),$(i.toolType==="Function tool"?4:-1),y(),$(i.toolType==="Built-in tool"?5:-1),y(4),te("disabled",i.createDisabled()),y(),FA(" ",i.isEditMode?"Save":"Create"," "))},dependencies:[Ur,k1,bg,Kn,Mr,Fo,Cr,tr,jr,ds,Gs,Yl,Ac,kr,Un,ya,ir],styles:[".dialog-title[_ngcontent-%COMP%]{color:#fff!important;font-family:Google Sans;font-size:24px}mat-dialog-content[_ngcontent-%COMP%]{padding:20px 24px;display:flex;flex-direction:column;gap:16px}.tool-info-container[_ngcontent-%COMP%]{background-color:#8ab4f814;border:1px solid rgba(138,180,248,.2);border-radius:8px;padding:16px;margin-bottom:16px}.tool-info-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 0}.tool-info-header[_ngcontent-%COMP%]:hover .tool-info-title[_ngcontent-%COMP%]{color:#a7c8ff}.tool-info-icon[_ngcontent-%COMP%]{color:#8ab4f8;font-size:20px;width:20px;height:20px;flex-shrink:0}.tool-info-title[_ngcontent-%COMP%]{flex:1;font-weight:500;color:#8ab4f8;font-size:14px;transition:color .2s ease}.tool-info-toggle[_ngcontent-%COMP%]{color:#8ab4f8;margin:-8px}.tool-info-toggle[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{transition:transform .2s ease}.tool-info-body[_ngcontent-%COMP%]{max-height:0;overflow:hidden;opacity:0;transition:max-height .3s ease,opacity .2s ease,margin-top .3s ease}.tool-info-body.expanded[_ngcontent-%COMP%]{max-height:500px;opacity:1;margin-top:12px}.tool-info-content[_ngcontent-%COMP%]{flex:1}.tool-info-short[_ngcontent-%COMP%]{font-weight:500;color:#e3e3e3;margin-bottom:8px;line-height:1.4}.tool-info-detailed[_ngcontent-%COMP%]{color:#c4c7ca;font-size:14px;line-height:1.5}.tool-info-link-container[_ngcontent-%COMP%]{margin-top:12px}.tool-info-link[_ngcontent-%COMP%]{color:#8ab4f8;text-decoration:none;font-size:14px;display:inline-flex;align-items:center;gap:4px;transition:color .2s ease}.tool-info-link[_ngcontent-%COMP%]:hover{color:#a7c8ff}.tool-info-link[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px}"]})};var NnA={google_search:"search",EnterpriseWebSearchTool:"web",VertexAiSearchTool:"search",FilesRetrieval:"find_in_page",load_memory:"memory",preload_memory:"memory",url_context:"link",VertexAiRagRetrieval:"find_in_page",exit_loop:"sync",get_user_choice:"how_to_reg",load_artifacts:"image",LongRunningFunctionTool:"data_object"};function wQ(t,A){return A==="Agent Tool"?"smart_toy":A==="Built-in tool"?NnA[t]||"build":A==="Function tool"?"data_object":"build"}var LnA=(t,A)=>A.name;function FnA(t,A){if(t&1&&T(0),t&2){let e=M();FA(" Configure ",e.selectedBuiltInTool," ")}}function GnA(t,A){if(t&1&&T(0),t&2){let e=M();FA(" ",e.isEditMode?"Edit Built-in Tool":"Add Built-in Tool"," ")}}function KnA(t,A){if(t&1){let e=Ue();m(0,"div",8),ee("click",function(){let n=q(e).$implicit,o=M(3);return W(o.onToolSelected(n))}),m(1,"mat-icon",9),T(2),p(),m(3,"span",10),T(4),p()()}if(t&2){let e=A.$implicit,i=M(3);iA("selected",i.selectedBuiltInTool===e),y(2),Pe(i.getToolIcon(e)),y(2),Pe(e)}}function UnA(t,A){if(t&1&&(m(0,"div",4)(1,"h3",5),T(2),p(),m(3,"div",6),Rt(4,KnA,5,4,"div",7,Fi),p()()),t&2){let e=A.$implicit;y(2),Pe(e.name),y(2),Nt(e.tools)}}function TnA(t,A){if(t&1&&(m(0,"div",1),Rt(1,UnA,6,1,"div",4,LnA),p()),t&2){let e=M();y(),Nt(e.toolCategories)}}function OnA(t,A){if(t&1&&(m(0,"div",2)(1,"h3",11),T(2,"Configure Tool Arguments"),p(),ve(3,"app-json-editor",12),p()),t&2){let e=M();y(3),te("jsonString",e.toolArgsString)}}function JnA(t,A){if(t&1){let e=Ue();m(0,"button",14),ee("click",function(){q(e);let n=M(2);return W(n.backToToolSelection())}),T(1,"Back"),p()}}function YnA(t,A){if(t&1){let e=Ue();ne(0,JnA,2,0,"button",13),m(1,"button",14),ee("click",function(){q(e);let n=M();return W(n.saveArgs())}),T(2),p()}if(t&2){let e=M();$(e.isEditMode?-1:0),y(2),Pe(e.isEditMode?"Save":"Create")}}function HnA(t,A){if(t&1){let e=Ue();m(0,"button",14),ee("click",function(){q(e);let n=M();return W(n.cancel())}),T(1,"Cancel"),p(),m(2,"button",15),ee("click",function(){q(e);let n=M();return W(n.addTool())}),T(3),p()}if(t&2){let e=M();y(3),FA(" ",e.isEditMode?"Save":"Create"," ")}}var Qh=class t{constructor(A,e){this.data=A;this.dialogRef=e}jsonEditorComponent;selectedBuiltInTool="google_search";toolCategories=[{name:"Search Tools",tools:["google_search","EnterpriseWebSearchTool","VertexAiSearchTool"]},{name:"Context Tools",tools:["FilesRetrieval","load_memory","preload_memory","url_context","VertexAiRagRetrieval"]},{name:"Agent Function Tools",tools:["exit_loop","get_user_choice","load_artifacts","LongRunningFunctionTool"]}];builtInToolArgs=new Map([["EnterpriseWebSearchTool",[]],["exit_loop",[]],["FilesRetrieval",["name","description","input_dir"]],["get_user_choice",[]],["google_search",[]],["load_artifacts",[]],["load_memory",[]],["LongRunningFunctionTool",["func"]],["preload_memory",[]],["url_context",[]],["VertexAiRagRetrieval",["name","description","rag_corpora","rag_resources","similarity_top_k","vector_distance_threshold"]],["VertexAiSearchTool",["data_store_id","data_store_specs","search_engine_id","filter","max_results"]]]);isEditMode=!1;showArgsEditor=!1;toolArgs={};toolArgsString="";ngOnInit(){if(this.isEditMode=this.data.isEditMode||!1,this.isEditMode&&this.data.toolName){this.selectedBuiltInTool=this.data.toolName;let A=this.builtInToolArgs.get(this.data.toolName);if(A&&A.length>0){if(this.data.toolArgs)this.toolArgs=ae({},this.data.toolArgs),delete this.toolArgs.skip_summarization;else{this.toolArgs={};for(let e of A)this.toolArgs[e]=""}this.toolArgsString=JSON.stringify(this.toolArgs,null,2),this.showArgsEditor=!0}}}onToolSelected(A){this.selectedBuiltInTool=A;let e=this.builtInToolArgs.get(A);e&&e.length>0&&(this.initializeToolArgs(A,e),this.showArgsEditor=!0)}initializeToolArgs(A,e){this.toolArgs={};for(let i of e)this.toolArgs[i]="";this.toolArgsString=JSON.stringify(this.toolArgs,null,2)}backToToolSelection(){this.showArgsEditor=!1,this.toolArgs={},this.toolArgsString=""}saveArgs(){if(this.jsonEditorComponent)try{this.toolArgsString=this.jsonEditorComponent.getJsonString(),this.toolArgs=JSON.parse(this.toolArgsString)}catch(A){alert("Invalid JSON: "+A);return}this.addTool()}addTool(){let A={toolType:"Built-in tool",name:this.selectedBuiltInTool,isEditMode:this.isEditMode};Object.keys(this.toolArgs).length>0&&(A.args=this.toolArgs),this.dialogRef.close(A)}cancel(){this.dialogRef.close()}getToolIcon(A){return wQ(A,"Built-in tool")}static \u0275fac=function(e){return new(e||t)(DA(qo),DA(co))};static \u0275cmp=xe({type:t,selectors:[["app-built-in-tool-dialog"]],viewQuery:function(e,i){if(e&1&&At(r0,5),e&2){let n;oA(n=rA())&&(i.jsonEditorComponent=n.first)}},decls:9,vars:3,consts:[["mat-dialog-title","",1,"dialog-title"],[1,"tool-categories-container"],[1,"args-editor-container"],["align","end"],[1,"tool-category"],[1,"category-title"],[1,"tool-list"],[1,"tool-item",3,"selected"],[1,"tool-item",3,"click"],[1,"tool-icon"],[1,"tool-name"],[1,"args-editor-title"],[3,"jsonString"],["mat-button",""],["mat-button","",3,"click"],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(e,i){e&1&&(m(0,"h2",0),ne(1,FnA,1,1)(2,GnA,1,1),p(),m(3,"mat-dialog-content"),ne(4,TnA,3,0,"div",1)(5,OnA,4,1,"div",2),p(),m(6,"mat-dialog-actions",3),ne(7,YnA,3,2)(8,HnA,4,1),p()),e&2&&(y(),$(i.showArgsEditor?1:2),y(3),$(i.showArgsEditor?5:4),y(3),$(i.showArgsEditor?7:8))},dependencies:[Ur,Kn,tr,jr,ir,kr,Un,r0],styles:[".dialog-title[_ngcontent-%COMP%]{color:#fff!important;font-family:Google Sans;font-size:24px}.tool-categories-container[_ngcontent-%COMP%]{padding:16px 0}.tool-category[_ngcontent-%COMP%]{margin-bottom:24px}.tool-category[_ngcontent-%COMP%]:last-child{margin-bottom:0}.category-title[_ngcontent-%COMP%]{font-family:Google Sans;font-size:16px;font-weight:500;color:#e8eaed;margin:0 0 12px;padding-left:8px}.tool-list[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tool-item[_ngcontent-%COMP%]{display:flex;align-items:center;padding:12px 16px;border-radius:8px;cursor:pointer;transition:all .2s ease;background-color:#ffffff0d;min-width:0}.tool-item[_ngcontent-%COMP%]:hover{background-color:#ffffff1a}.tool-item.selected[_ngcontent-%COMP%]{background-color:#8ab4f833;border:1px solid #8ab4f8}.tool-item[_ngcontent-%COMP%] .tool-icon[_ngcontent-%COMP%]{color:#8ab4f8;margin-right:12px;font-size:20px;width:20px;height:20px;flex-shrink:0}.tool-item[_ngcontent-%COMP%] .tool-name[_ngcontent-%COMP%]{font-family:Google Sans;font-size:14px;color:#e8eaed;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.args-editor-container[_ngcontent-%COMP%]{padding:16px 0}.args-editor-title[_ngcontent-%COMP%]{font-family:Google Sans;font-size:16px;font-weight:500;color:#e8eaed;margin:0 0 16px}"]})};var znA=["chatMessages"],PnA=(t,A)=>({"user-message":t,"bot-message":A});function jnA(t,A){t&1&&(m(0,"div",7)(1,"mat-icon",12),T(2,"smart_toy"),p(),m(3,"h3"),T(4,"Assistant Ready"),p(),m(5,"p"),T(6,"Your builder assistant is ready to help you build agents."),p()())}function VnA(t,A){t&1&&(m(0,"div",15)(1,"span",16),T(2,"\u30FB\u30FB\u30FB"),p()())}function qnA(t,A){if(t&1&&(m(0,"div",18),T(1,"Assistant"),p(),ve(2,"markdown",19)),t&2){let e=M(2).$implicit;y(2),te("data",e.text)}}function WnA(t,A){if(t&1&&(m(0,"div",17),T(1),p()),t&2){let e=M(2).$implicit;y(),Pe(e.text)}}function ZnA(t,A){if(t&1&&ne(0,qnA,3,1)(1,WnA,2,1,"div",17),t&2){let e=M().$implicit;$(e.role==="bot"?0:1)}}function XnA(t,A){if(t&1&&(m(0,"div",13)(1,"mat-card",14),ne(2,VnA,3,0,"div",15)(3,ZnA,2,1),p()()),t&2){let e=A.$implicit;te("ngClass",tl(2,PnA,e.role==="user",e.role==="bot")),y(2),$(e.isLoading?2:3)}}function $nA(t,A){if(t&1&&Rt(0,XnA,4,5,"div",13,Fi),t&2){let e=M();Nt(e.messages)}}var $9=class t{isVisible=!0;appName="";closePanel=new Ve;reloadCanvas=new Ve;assistantAppName="__adk_agent_builder_assistant";userId="user";currentSession="";userMessage="";messages=[];shouldAutoScroll=!1;isGenerating=!1;chatMessages;agentService=E(Hl);sessionService=E(rd);agentBuilderService=E(Ud);constructor(){}ngOnInit(){this.sessionService.createSession(this.userId,this.assistantAppName).subscribe(A=>{this.currentSession=A.id;let e={appName:this.assistantAppName,userId:this.userId,sessionId:A.id,newMessage:{role:"user",parts:[{text:"hello"}]},streaming:!1,stateDelta:{root_directory:`${this.appName}/tmp/${this.appName}`}};this.messages.push({role:"bot",text:"",isLoading:!0}),this.shouldAutoScroll=!0,this.isGenerating=!0,this.agentService.runSse(e).subscribe({next:i=>Ci(this,null,function*(){if(i.content){let n="";for(let o of i.content.parts)o.text&&(n+=o.text);if(n){let o=this.messages[this.messages.length-1];o.role==="bot"&&o.isLoading&&(o.text=n,o.isLoading=!1,this.shouldAutoScroll=!0)}}}),error:i=>{console.error("SSE error:",i);let n=this.messages[this.messages.length-1];n.role==="bot"&&n.isLoading&&(n.text="Sorry, I encountered an error. Please try again.",n.isLoading=!1,this.shouldAutoScroll=!0),this.isGenerating=!1},complete:()=>{this.isGenerating=!1}})})}onClosePanel(){this.closePanel.emit()}sendMessage(A){if(A.trim()){this.saveAgent(this.appName),A!="____Something went wrong, please try again"&&this.messages.push({role:"user",text:A});let e=A;this.userMessage="",this.messages.push({role:"bot",text:"",isLoading:!0}),this.shouldAutoScroll=!0,this.isGenerating=!0;let i={appName:this.assistantAppName,userId:this.userId,sessionId:this.currentSession,newMessage:{role:"user",parts:[{text:e}]},streaming:!1};this.agentService.runSse(i).subscribe({next:n=>Ci(this,null,function*(){if(n.errorCode&&(n.errorCode=="MALFORMED_FUNCTION_CALL"||n.errorCode=="STOP")){this.sendMessage("____Something went wrong, please try again");return}if(n.content){let o="";for(let r of n.content.parts)r.text&&(o+=r.text);if(o){let r=this.messages[this.messages.length-1];r.role==="bot"&&r.isLoading&&(r.text=o,r.isLoading=!1,this.shouldAutoScroll=!0,this.reloadCanvas.emit())}}}),error:n=>{console.error("SSE error:",n);let o=this.messages[this.messages.length-1];o.role==="bot"&&o.isLoading&&(o.text="Sorry, I encountered an error. Please try again.",o.isLoading=!1,this.shouldAutoScroll=!0),this.isGenerating=!1},complete:()=>{this.isGenerating=!1}})}}ngAfterViewChecked(){this.shouldAutoScroll&&(this.scrollToBottom(),this.shouldAutoScroll=!1)}scrollToBottom(){try{this.chatMessages&&setTimeout(()=>{this.chatMessages.nativeElement.scrollTop=this.chatMessages.nativeElement.scrollHeight},50)}catch(A){console.error("Error scrolling to bottom:",A)}}onKeyDown(A){if(A.key==="Enter"){if(A.shiftKey)return;this.userMessage?.trim()&&this.currentSession&&(A.preventDefault(),this.sendMessage(this.userMessage))}}saveAgent(A){let e=this.agentBuilderService.getRootNode();if(!e)return;let i=new FormData,n=this.agentBuilderService.getCurrentAgentToolBoards();zd.generateYamlFile(e,i,A,n),this.agentService.agentBuildTmp(i).subscribe(o=>{console.log(o?"save to tmp":"something went wrong")})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-builder-assistant"]],viewQuery:function(e,i){if(e&1&&At(znA,5),e&2){let n;oA(n=rA())&&(i.chatMessages=n.first)}},inputs:{isVisible:"isVisible",appName:"appName"},outputs:{closePanel:"closePanel",reloadCanvas:"reloadCanvas"},decls:21,vars:6,consts:[["chatMessages",""],[1,"builder-assistant-panel"],[1,"panel-header"],[1,"panel-title"],["mat-icon-button","","matTooltip","Close assistant panel",1,"close-btn",3,"click"],[1,"panel-content"],[1,"chat-messages"],[1,"assistant-placeholder"],[1,"chat-input-container"],[1,"input-wrapper"],["cdkTextareaAutosize","","cdkAutosizeMinRows","1","cdkAutosizeMaxRows","5","placeholder","Ask Gemini to build your agent",1,"assistant-input-box",3,"ngModelChange","keydown","ngModel","disabled"],["mat-icon-button","","matTooltip","Send message",1,"send-button",3,"click","disabled"],[1,"large-icon"],[3,"ngClass"],[1,"message-card"],[1,"loading-message"],[1,"dots"],[1,"message-text"],[1,"bot-label"],[1,"message-text",3,"data"]],template:function(e,i){if(e&1){let n=Ue();m(0,"div",1)(1,"div",2)(2,"div",3)(3,"mat-icon"),T(4,"auto_awesome"),p(),m(5,"span"),T(6,"Assistant"),p()(),m(7,"button",4),ee("click",function(){return q(n),W(i.onClosePanel())}),m(8,"mat-icon"),T(9,"close"),p()()(),m(10,"div",5)(11,"div",6,0),ne(13,jnA,7,0,"div",7)(14,$nA,2,0),p(),m(15,"div",8)(16,"div",9)(17,"textarea",10),qn("ngModelChange",function(r){return q(n),Vn(i.userMessage,r)||(i.userMessage=r),W(r)}),ee("keydown",function(r){return q(n),W(i.onKeyDown(r))}),p(),m(18,"button",11),ee("click",function(){return q(n),W(i.sendMessage(i.userMessage.trim()))}),m(19,"mat-icon"),T(20,"send"),p()()()()()()}e&2&&(iA("hidden",!i.isVisible),y(13),$(i.messages.length===0?13:14),y(4),jn("ngModel",i.userMessage),te("disabled",i.isGenerating),y(),te("disabled",!(i.userMessage!=null&&i.userMessage.trim())||i.isGenerating))},dependencies:[Ur,ta,Kn,Mr,Fo,Cr,ir,ya,Ma,sE,YB,z5,wy],styles:[".builder-assistant-panel[_ngcontent-%COMP%]{position:fixed;right:0;top:0;width:400px;height:100vh;background:#2b2b2b;border-left:1px solid #3c3c3c;box-shadow:-2px 0 10px #0006;z-index:1000;display:flex;flex-direction:column;transition:transform .3s ease}.builder-assistant-panel.hidden[_ngcontent-%COMP%]{transform:translate(100%)}.panel-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #3c3c3c;background:#292929}.panel-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;font-weight:400;font-size:16px;color:#e3e3e3;font-family:Google Sans,Helvetica Neue,sans-serif}.panel-title[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:#e3e3e3;font-size:20px;width:20px;height:20px}.close-btn[_ngcontent-%COMP%]{color:#c4c7c5}.close-btn[_ngcontent-%COMP%]:hover{color:#e8eaed;background-color:#8ab4f81a}.panel-content[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;background:#2b2b2b;overflow:hidden}.assistant-placeholder[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;height:300px;color:#9aa0a6}.assistant-placeholder[_ngcontent-%COMP%] .large-icon[_ngcontent-%COMP%]{font-size:64px;width:64px;height:64px;margin-bottom:16px;color:#8ab4f8}.assistant-placeholder[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0 0 8px;font-size:20px;font-weight:500;color:#e8eaed;font-family:Google Sans,Helvetica Neue,sans-serif}.assistant-placeholder[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:14px;line-height:1.5;color:#9aa0a6}.chat-messages[_ngcontent-%COMP%]{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column}.chat-input-container[_ngcontent-%COMP%]{padding:16px 20px 20px;border-top:none;background:#2b2b2b}.input-wrapper[_ngcontent-%COMP%]{display:flex;align-items:center;background-color:#1a1a1a;border-radius:50px;padding:10px 6px 10px 18px;gap:8px}.assistant-input-box[_ngcontent-%COMP%]{flex:1;color:#e0e0e0;border:none;padding:0;background:transparent;resize:none;overflow:hidden;font-family:Google Sans,Helvetica Neue,sans-serif;font-size:14px;line-height:20px;min-height:20px;max-height:120px}.assistant-input-box[_ngcontent-%COMP%]::placeholder{color:gray;font-size:14px}.assistant-input-box[_ngcontent-%COMP%]:focus{outline:none}.assistant-input-box[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px}.assistant-input-box[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#4a4a4a;border-radius:4px}.send-button[_ngcontent-%COMP%]{background-color:transparent;color:#888;width:36px;height:36px;min-width:36px;flex-shrink:0;margin:0;padding:0}.send-button[_ngcontent-%COMP%] .mat-mdc-button-touch-target{display:none}.send-button[_ngcontent-%COMP%] .mat-mdc-button-persistent-ripple{display:none}.send-button[_ngcontent-%COMP%]:disabled{background-color:transparent;color:#4a4a4a}.send-button[_ngcontent-%COMP%]:hover:not(:disabled){background-color:#ffffff14;color:#b0b0b0;border-radius:50%}.send-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px}.message-card[_ngcontent-%COMP%]{padding:10px 16px;margin:6px 0;font-size:14px;font-weight:400;position:relative;display:block;box-shadow:none;line-height:1.5;width:100%}.user-message[_ngcontent-%COMP%]{display:block;width:100%;margin-bottom:12px}.user-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:#1a1a1a;border:1px solid #404040;border-radius:4px;color:#e3e3e3;padding:8px 12px}.bot-message[_ngcontent-%COMP%]{display:block;width:100%;margin-bottom:0}.bot-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:transparent;border:none;border-radius:0;color:#d4d4d4;padding:0;margin:0}.bot-label[_ngcontent-%COMP%]{font-size:12px;font-weight:500;color:#9aa0a6;margin-bottom:8px;font-family:Google Sans,Helvetica Neue,sans-serif}.message-text[_ngcontent-%COMP%]{white-space:pre-line;word-break:break-word;overflow-wrap:break-word;font-family:Google Sans,Helvetica Neue,sans-serif}.message-text[_ngcontent-%COMP%] p{margin:0;line-height:1.4}.message-text[_ngcontent-%COMP%] p:first-child{margin-top:0}.message-text[_ngcontent-%COMP%] p:last-child{margin-bottom:0}.message-text[_ngcontent-%COMP%] ul, .message-text[_ngcontent-%COMP%] ol{margin:0;padding-left:1.5em}.message-text[_ngcontent-%COMP%] li{margin:0}.message-text[_ngcontent-%COMP%] code{background-color:#ffffff1a;padding:2px 4px;border-radius:3px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9em}.message-text[_ngcontent-%COMP%] pre{background-color:#ffffff0d;padding:8px 12px;border-radius:6px;overflow-x:auto;margin:.5em 0}.message-text[_ngcontent-%COMP%] pre code{background:none;padding:0}.message-text[_ngcontent-%COMP%] blockquote{border-left:3px solid #8ab4f8;padding-left:12px;margin:.5em 0;font-style:italic;color:#c4c7c5}.message-text[_ngcontent-%COMP%] strong{font-weight:600}.message-text[_ngcontent-%COMP%] em{font-style:italic}.loading-message[_ngcontent-%COMP%]{display:flex;align-items:center;color:#9aa0a6;font-family:Google Sans,Helvetica Neue,sans-serif;padding:0;margin:0}.loading-message[_ngcontent-%COMP%] .dots[_ngcontent-%COMP%]{font-size:24px;letter-spacing:-12px;animation:_ngcontent-%COMP%_pulse 1.4s ease-in-out infinite;display:inline-block;line-height:1}@keyframes _ngcontent-%COMP%_pulse{0%,to{opacity:.3}50%{opacity:1}}"]})};var yQ=class t{constructor(A,e){this.http=A;this.zone=e}apiServerDomain=oa.getApiServerBaseUrl();_currentApp=new Mt("");currentApp=this._currentApp.asObservable();isLoading=new Mt(!1);getApp(){return this.currentApp}setApp(A){this._currentApp.next(A)}getLoadingState(){return this.isLoading}runSse(A){let e=this.apiServerDomain+"/run_sse";return this.isLoading.next(!0),new nt(i=>{let n=this;fetch(e,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify(A)}).then(o=>{let r=o.body?.getReader(),s=new TextDecoder("utf-8"),a="",c=()=>{r?.read().then(({done:l,value:d})=>{if(this.isLoading.next(!0),l)return this.isLoading.next(!1),i.complete();let C=s.decode(d,{stream:!0});a+=C;try{a.split(/\r?\n/).filter(u=>u.startsWith("data:")).forEach(u=>{let h=u.replace(/^data:\s*/,""),B=JSON.parse(h);n.zone.run(()=>i.next(B))}),a=""}catch(I){I instanceof SyntaxError&&c()}c()}).catch(l=>{n.zone.run(()=>i.error(l))})};c()}).catch(o=>{n.zone.run(()=>i.error(o))})})}listApps(){if(this.apiServerDomain!=null){let A=this.apiServerDomain+"/list-apps?relative_path=./";return this.http.get(A)}return new nt}agentBuild(A){if(this.apiServerDomain!=null){let e=this.apiServerDomain+"/builder/save";return this.http.post(e,A)}return new nt}agentBuildTmp(A){if(this.apiServerDomain!=null){let e=this.apiServerDomain+"/builder/save?tmp=true";return this.http.post(e,A)}return new nt}getAgentBuilder(A){if(this.apiServerDomain!=null){let e=this.apiServerDomain+`/builder/app/${A}?ts=${Date.now()}`;return this.http.get(e,{responseType:"text"})}return new nt}getAgentBuilderTmp(A){if(this.apiServerDomain!=null){let e=this.apiServerDomain+`/builder/app/${A}?ts=${Date.now()}&tmp=true`;return this.http.get(e,{responseType:"text"})}return new nt}getSubAgentBuilder(A,e){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/builder/app/${A}?ts=${Date.now()}&file_path=${e}&tmp=true`;return this.http.get(i,{responseType:"text"})}return new nt}agentChangeCancel(A){if(this.apiServerDomain!=null){let e=this.apiServerDomain+`/builder/app/${A}/cancel`;return this.http.post(e,{})}return new nt}static \u0275fac=function(e){return new(e||t)(UA(wa),UA(yA))};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})};var eS="http://www.w3.org/1999/xhtml",oz={svg:"http://www.w3.org/2000/svg",xhtml:eS,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function r1(t){var A=t+="",e=A.indexOf(":");return e>=0&&(A=t.slice(0,e))!=="xmlns"&&(t=t.slice(e+1)),oz.hasOwnProperty(A)?{space:oz[A],local:t}:t}function AoA(t){return function(){var A=this.ownerDocument,e=this.namespaceURI;return e===eS&&A.documentElement.namespaceURI===eS?A.createElement(t):A.createElementNS(e,t)}}function toA(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function AS(t){var A=r1(t);return(A.local?toA:AoA)(A)}function ioA(){}function mh(t){return t==null?ioA:function(){return this.querySelector(t)}}function eue(t){typeof t!="function"&&(t=mh(t));for(var A=this._groups,e=A.length,i=new Array(e),n=0;n=k&&(k=b+1);!(w=B[k])&&++k=0;)(r=i[n])&&(o&&r.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(r,o),o=r);return this}function due(t){t||(t=hoA);function A(d,C){return d&&C?t(d.__data__,C.__data__):!d-!C}for(var e=this._groups,i=e.length,n=new Array(i),o=0;oA?1:t>=A?0:NaN}function Cue(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Iue(){return Array.from(this)}function uue(){for(var t=this._groups,A=0,e=t.length;A1?this.each((A==null?woA:typeof A=="function"?DoA:yoA)(t,A,e??"")):uI(this.node(),t)}function uI(t,A){return t.style.getPropertyValue(A)||nS(t).getComputedStyle(t,null).getPropertyValue(A)}function voA(t){return function(){delete this[t]}}function boA(t,A){return function(){this[t]=A}}function MoA(t,A){return function(){var e=A.apply(this,arguments);e==null?delete this[t]:this[t]=e}}function mue(t,A){return arguments.length>1?this.each((A==null?voA:typeof A=="function"?MoA:boA)(t,A)):this.node()[t]}function pue(t){return t.trim().split(/^|\s+/)}function sz(t){return t.classList||new wue(t)}function wue(t){this._node=t,this._names=pue(t.getAttribute("class")||"")}wue.prototype={add:function(t){var A=this._names.indexOf(t);A<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var A=this._names.indexOf(t);A>=0&&(this._names.splice(A,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function yue(t,A){for(var e=sz(t),i=-1,n=A.length;++i=0&&(e=A.slice(i+1),A=A.slice(0,i)),{type:A,name:e}})}function PoA(t){return function(){var A=this.__on;if(A){for(var e=0,i=-1,n=A.length,o;e{}};function Yue(){for(var t=0,A=arguments.length,e={},i;t=0&&(i=e.slice(n+1),e=e.slice(0,n)),e&&!A.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:i}})}oS.prototype=Yue.prototype={constructor:oS,on:function(t,A){var e=this._,i=XoA(t+"",e),n,o=-1,r=i.length;if(arguments.length<2){for(;++o0)for(var e=new Array(n),i=0,n,o;i()=>t;function K6(t,{sourceEvent:A,subject:e,target:i,identifier:n,active:o,x:r,y:s,dx:a,dy:c,dispatch:l}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:A,enumerable:!0,configurable:!0},subject:{value:e,enumerable:!0,configurable:!0},target:{value:i,enumerable:!0,configurable:!0},identifier:{value:n,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:r,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:a,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:l}})}K6.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function erA(t){return!t.ctrlKey&&!t.button}function ArA(){return this.parentNode}function trA(t,A){return A??{x:t.x,y:t.y}}function irA(){return navigator.maxTouchPoints||"ontouchstart"in this}function sS(){var t=erA,A=ArA,e=trA,i=irA,n={},o=ph("start","drag","end"),r=0,s,a,c,l,d=0;function C(S){S.on("mousedown.drag",I).filter(i).on("touchstart.drag",B).on("touchmove.drag",f,Hue).on("touchend.drag touchcancel.drag",b).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function I(S,w){if(!(l||!t.call(this,S,w))){var _=k(this,A.call(this,S,w),S,w,"mouse");_&&(js(S.view).on("mousemove.drag",u,wh).on("mouseup.drag",h,wh),L6(S.view),rS(S),c=!1,s=S.clientX,a=S.clientY,_("start",S))}}function u(S){if(hI(S),!c){var w=S.clientX-s,_=S.clientY-a;c=w*w+_*_>d}n.mouse("drag",S)}function h(S){js(S.view).on("mousemove.drag mouseup.drag",null),F6(S.view,c),hI(S),n.mouse("end",S)}function B(S,w){if(t.call(this,S,w)){var _=S.changedTouches,K=A.call(this,S,w),J=_.length,O,H;for(O=0;O>8&15|A>>4&240,A>>4&15|A&240,(A&15)<<4|A&15,1):e===8?cS(A>>24&255,A>>16&255,A>>8&255,(A&255)/255):e===4?cS(A>>12&15|A>>8&240,A>>8&15|A>>4&240,A>>4&15|A&240,((A&15)<<4|A&15)/255):null):(A=orA.exec(t))?new zc(A[1],A[2],A[3],1):(A=rrA.exec(t))?new zc(A[1]*255/100,A[2]*255/100,A[3]*255/100,1):(A=srA.exec(t))?cS(A[1],A[2],A[3],A[4]):(A=arA.exec(t))?cS(A[1]*255/100,A[2]*255/100,A[3]*255/100,A[4]):(A=crA.exec(t))?Zue(A[1],A[2]/100,A[3]/100,1):(A=lrA.exec(t))?Zue(A[1],A[2]/100,A[3]/100,A[4]):zue.hasOwnProperty(t)?Vue(zue[t]):t==="transparent"?new zc(NaN,NaN,NaN,0):null}function Vue(t){return new zc(t>>16&255,t>>8&255,t&255,1)}function cS(t,A,e,i){return i<=0&&(t=A=e=NaN),new zc(t,A,e,i)}function CrA(t){return t instanceof O6||(t=BI(t)),t?(t=t.rgb(),new zc(t.r,t.g,t.b,t.opacity)):new zc}function vQ(t,A,e,i){return arguments.length===1?CrA(t):new zc(t,A,e,i??1)}function zc(t,A,e,i){this.r=+t,this.g=+A,this.b=+e,this.opacity=+i}aS(zc,vQ,cz(O6,{brighter(t){return t=t==null?gS:Math.pow(gS,t),new zc(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?U6:Math.pow(U6,t),new zc(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new zc(Dh(this.r),Dh(this.g),Dh(this.b),dS(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:que,formatHex:que,formatHex8:IrA,formatRgb:Wue,toString:Wue}));function que(){return`#${yh(this.r)}${yh(this.g)}${yh(this.b)}`}function IrA(){return`#${yh(this.r)}${yh(this.g)}${yh(this.b)}${yh((isNaN(this.opacity)?1:this.opacity)*255)}`}function Wue(){let t=dS(this.opacity);return`${t===1?"rgb(":"rgba("}${Dh(this.r)}, ${Dh(this.g)}, ${Dh(this.b)}${t===1?")":`, ${t})`}`}function dS(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Dh(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function yh(t){return t=Dh(t),(t<16?"0":"")+t.toString(16)}function Zue(t,A,e,i){return i<=0?t=A=e=NaN:e<=0||e>=1?t=A=NaN:A<=0&&(t=NaN),new Q0(t,A,e,i)}function $ue(t){if(t instanceof Q0)return new Q0(t.h,t.s,t.l,t.opacity);if(t instanceof O6||(t=BI(t)),!t)return new Q0;if(t instanceof Q0)return t;t=t.rgb();var A=t.r/255,e=t.g/255,i=t.b/255,n=Math.min(A,e,i),o=Math.max(A,e,i),r=NaN,s=o-n,a=(o+n)/2;return s?(A===o?r=(e-i)/s+(e0&&a<1?0:r,new Q0(r,s,a,t.opacity)}function ehe(t,A,e,i){return arguments.length===1?$ue(t):new Q0(t,A,e,i??1)}function Q0(t,A,e,i){this.h=+t,this.s=+A,this.l=+e,this.opacity=+i}aS(Q0,ehe,cz(O6,{brighter(t){return t=t==null?gS:Math.pow(gS,t),new Q0(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?U6:Math.pow(U6,t),new Q0(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,A=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,i=e+(e<.5?e:1-e)*A,n=2*e-i;return new zc(lz(t>=240?t-240:t+120,n,i),lz(t,n,i),lz(t<120?t+240:t-120,n,i),this.opacity)},clamp(){return new Q0(Xue(this.h),lS(this.s),lS(this.l),dS(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=dS(this.opacity);return`${t===1?"hsl(":"hsla("}${Xue(this.h)}, ${lS(this.s)*100}%, ${lS(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Xue(t){return t=(t||0)%360,t<0?t+360:t}function lS(t){return Math.max(0,Math.min(1,t||0))}function lz(t,A,e){return(t<60?A+(e-A)*t/60:t<180?e:t<240?A+(e-A)*(240-t)/60:A)*255}function gz(t,A,e,i,n){var o=t*t,r=o*t;return((1-3*t+3*o-r)*A+(4-6*o+3*r)*e+(1+3*t+3*o-3*r)*i+r*n)/6}function Ahe(t){var A=t.length-1;return function(e){var i=e<=0?e=0:e>=1?(e=1,A-1):Math.floor(e*A),n=t[i],o=t[i+1],r=i>0?t[i-1]:2*n-o,s=i()=>t;function urA(t,A){return function(e){return t+e*A}}function hrA(t,A,e){return t=Math.pow(t,e),A=Math.pow(A,e)-t,e=1/e,function(i){return Math.pow(t+i*A,e)}}function ihe(t){return(t=+t)==1?CS:function(A,e){return e-A?hrA(A,e,t):dz(isNaN(A)?e:A)}}function CS(t,A){var e=A-t;return e?urA(t,e):dz(isNaN(t)?A:t)}var IS=function t(A){var e=ihe(A);function i(n,o){var r=e((n=vQ(n)).r,(o=vQ(o)).r),s=e(n.g,o.g),a=e(n.b,o.b),c=CS(n.opacity,o.opacity);return function(l){return n.r=r(l),n.g=s(l),n.b=a(l),n.opacity=c(l),n+""}}return i.gamma=t,i}(1);function nhe(t){return function(A){var e=A.length,i=new Array(e),n=new Array(e),o=new Array(e),r,s;for(r=0;re&&(o=A.slice(e,o),s[r]?s[r]+=o:s[++r]=o),(i=i[0])===(n=n[0])?s[r]?s[r]+=n:s[++r]=n:(s[++r]=null,a.push({i:r,x:ug(i,n)})),e=Cz.lastIndex;return e180?l+=360:l-c>180&&(c+=360),C.push({i:d.push(n(d)+"rotate(",null,i)-2,x:ug(c,l)})):l&&d.push(n(d)+"rotate("+l+i)}function s(c,l,d,C){c!==l?C.push({i:d.push(n(d)+"skewX(",null,i)-2,x:ug(c,l)}):l&&d.push(n(d)+"skewX("+l+i)}function a(c,l,d,C,I,u){if(c!==d||l!==C){var h=I.push(n(I)+"scale(",null,",",null,")");u.push({i:h-4,x:ug(c,d)},{i:h-2,x:ug(l,C)})}else(d!==1||C!==1)&&I.push(n(I)+"scale("+d+","+C+")")}return function(c,l){var d=[],C=[];return c=t(c),l=t(l),o(c.translateX,c.translateY,l.translateX,l.translateY,d,C),r(c.rotate,l.rotate,d,C),s(c.skewX,l.skewX,d,C),a(c.scaleX,c.scaleY,l.scaleX,l.scaleY,d,C),c=l=null,function(I){for(var u=-1,h=C.length,B;++u=0&&t._call.call(void 0,A),t=t._next;--bQ}function lhe(){vh=(ES=z6.now())+fS,bQ=Y6=0;try{Che()}finally{bQ=0,vrA(),vh=0}}function DrA(){var t=z6.now(),A=t-ES;A>ghe&&(fS-=A,ES=t)}function vrA(){for(var t,A=BS,e,i=1/0;A;)A._call?(i>A._time&&(i=A._time),t=A,A=A._next):(e=A._next,A._next=null,A=t?t._next=e:BS=e);H6=t,Qz(i)}function Qz(t){if(!bQ){Y6&&(Y6=clearTimeout(Y6));var A=t-vh;A>24?(t<1/0&&(Y6=setTimeout(lhe,t-z6.now()-fS)),J6&&(J6=clearInterval(J6))):(J6||(ES=z6.now(),J6=setInterval(DrA,ghe)),bQ=1,dhe(lhe))}}function mS(t,A,e){var i=new P6;return A=A==null?0:+A,i.restart(n=>{i.stop(),t(n+A)},A,e),i}var brA=ph("start","end","cancel","interrupt"),MrA=[],hhe=0,Ihe=1,wS=2,pS=3,uhe=4,yS=5,V6=6;function EI(t,A,e,i,n,o){var r=t.__transition;if(!r)t.__transition={};else if(e in r)return;SrA(t,e,{name:A,index:i,group:n,on:brA,tween:MrA,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:hhe})}function q6(t,A){var e=xs(t,A);if(e.state>hhe)throw new Error("too late; already scheduled");return e}function ha(t,A){var e=xs(t,A);if(e.state>pS)throw new Error("too late; already running");return e}function xs(t,A){var e=t.__transition;if(!e||!(e=e[A]))throw new Error("transition not found");return e}function SrA(t,A,e){var i=t.__transition,n;i[A]=e,e.timer=QS(o,0,e.time);function o(c){e.state=Ihe,e.timer.restart(r,e.delay,e.time),e.delay<=c&&r(c-e.delay)}function r(c){var l,d,C,I;if(e.state!==Ihe)return a();for(l in i)if(I=i[l],I.name===e.name){if(I.state===pS)return mS(r);I.state===uhe?(I.state=V6,I.timer.stop(),I.on.call("interrupt",t,t.__data__,I.index,I.group),delete i[l]):+lwS&&i.state=0&&(A=A.slice(0,e)),!A||A==="start"})}function qrA(t,A,e){var i,n,o=VrA(A)?q6:ha;return function(){var r=o(this,t),s=r.on;s!==i&&(n=(i=s).copy()).on(A,e),r.on=n}}function bhe(t,A){var e=this._id;return arguments.length<2?xs(this.node(),e).on.on(t):this.each(qrA(e,t,A))}function WrA(t){return function(){var A=this.parentNode;for(var e in this.__transition)if(+e!==t)return;A&&A.removeChild(this)}}function Mhe(){return this.on("end.remove",WrA(this._id))}function She(t){var A=this._name,e=this._id;typeof t!="function"&&(t=mh(t));for(var i=this._groups,n=i.length,o=new Array(n),r=0;r()=>t;function mz(t,{sourceEvent:A,target:e,transform:i,dispatch:n}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:A,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},transform:{value:i,enumerable:!0,configurable:!0},_:{value:n}})}function m0(t,A,e){this.k=t,this.x=A,this.y=e}m0.prototype={constructor:m0,scale:function(t){return t===1?this:new m0(this.k*t,this.x,this.y)},translate:function(t,A){return t===0&A===0?this:new m0(this.k,this.x+this.k*t,this.y+this.k*A)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var fI=new m0(1,0,0);pz.prototype=m0.prototype;function pz(t){for(;!t.__zoom;)if(!(t=t.parentNode))return fI;return t.__zoom}function MS(t){t.stopImmediatePropagation()}function SQ(t){t.preventDefault(),t.stopImmediatePropagation()}function gsA(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function dsA(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function Ohe(){return this.__zoom||fI}function CsA(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function IsA(){return navigator.maxTouchPoints||"ontouchstart"in this}function usA(t,A,e){var i=t.invertX(A[0][0])-e[0][0],n=t.invertX(A[1][0])-e[1][0],o=t.invertY(A[0][1])-e[0][1],r=t.invertY(A[1][1])-e[1][1];return t.translate(n>i?(i+n)/2:Math.min(0,i)||Math.max(0,n),r>o?(o+r)/2:Math.min(0,o)||Math.max(0,r))}function wz(){var t=gsA,A=dsA,e=usA,i=CsA,n=IsA,o=[0,1/0],r=[[-1/0,-1/0],[1/0,1/0]],s=250,a=fz,c=ph("start","zoom","end"),l,d,C,I=500,u=150,h=0,B=10;function f(P){P.property("__zoom",Ohe).on("wheel.zoom",J,{passive:!1}).on("mousedown.zoom",O).on("dblclick.zoom",H).filter(n).on("touchstart.zoom",V).on("touchmove.zoom",Z).on("touchend.zoom touchcancel.zoom",ye).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}f.transform=function(P,se,X,ue){var oe=P.selection?P.selection():P;oe.property("__zoom",Ohe),P!==oe?w(P,se,X,ue):oe.interrupt().each(function(){_(this,arguments).event(ue).start().zoom(null,typeof se=="function"?se.apply(this,arguments):se).end()})},f.scaleBy=function(P,se,X,ue){f.scaleTo(P,function(){var oe=this.__zoom.k,le=typeof se=="function"?se.apply(this,arguments):se;return oe*le},X,ue)},f.scaleTo=function(P,se,X,ue){f.transform(P,function(){var oe=A.apply(this,arguments),le=this.__zoom,me=X==null?S(oe):typeof X=="function"?X.apply(this,arguments):X,Te=le.invert(me),$e=typeof se=="function"?se.apply(this,arguments):se;return e(k(b(le,$e),me,Te),oe,r)},X,ue)},f.translateBy=function(P,se,X,ue){f.transform(P,function(){return e(this.__zoom.translate(typeof se=="function"?se.apply(this,arguments):se,typeof X=="function"?X.apply(this,arguments):X),A.apply(this,arguments),r)},null,ue)},f.translateTo=function(P,se,X,ue,oe){f.transform(P,function(){var le=A.apply(this,arguments),me=this.__zoom,Te=ue==null?S(le):typeof ue=="function"?ue.apply(this,arguments):ue;return e(fI.translate(Te[0],Te[1]).scale(me.k).translate(typeof se=="function"?-se.apply(this,arguments):-se,typeof X=="function"?-X.apply(this,arguments):-X),le,r)},ue,oe)};function b(P,se){return se=Math.max(o[0],Math.min(o[1],se)),se===P.k?P:new m0(se,P.x,P.y)}function k(P,se,X){var ue=se[0]-X[0]*P.k,oe=se[1]-X[1]*P.k;return ue===P.x&&oe===P.y?P:new m0(P.k,ue,oe)}function S(P){return[(+P[0][0]+ +P[1][0])/2,(+P[0][1]+ +P[1][1])/2]}function w(P,se,X,ue){P.on("start.zoom",function(){_(this,arguments).event(ue).start()}).on("interrupt.zoom end.zoom",function(){_(this,arguments).event(ue).end()}).tween("zoom",function(){var oe=this,le=arguments,me=_(oe,le).event(ue),Te=A.apply(oe,le),$e=X==null?S(Te):typeof X=="function"?X.apply(oe,le):X,Je=Math.max(Te[1][0]-Te[0][0],Te[1][1]-Te[0][1]),Qe=oe.__zoom,He=typeof se=="function"?se.apply(oe,le):se,PA=a(Qe.invert($e).concat(Je/Qe.k),He.invert($e).concat(Je/He.k));return function(JA){if(JA===1)JA=He;else{var Ye=PA(JA),Ie=Je/Ye[2];JA=new m0(Ie,$e[0]-Ye[0]*Ie,$e[1]-Ye[1]*Ie)}me.zoom(null,JA)}})}function _(P,se,X){return!X&&P.__zooming||new K(P,se)}function K(P,se){this.that=P,this.args=se,this.active=0,this.sourceEvent=null,this.extent=A.apply(P,se),this.taps=0}K.prototype={event:function(P){return P&&(this.sourceEvent=P),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(P,se){return this.mouse&&P!=="mouse"&&(this.mouse[1]=se.invert(this.mouse[0])),this.touch0&&P!=="touch"&&(this.touch0[1]=se.invert(this.touch0[0])),this.touch1&&P!=="touch"&&(this.touch1[1]=se.invert(this.touch1[0])),this.that.__zoom=se,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(P){var se=js(this.that).datum();c.call(P,this.that,new mz(P,{sourceEvent:this.sourceEvent,target:f,type:P,transform:this.that.__zoom,dispatch:c}),se)}};function J(P,...se){if(!t.apply(this,arguments))return;var X=_(this,se).event(P),ue=this.__zoom,oe=Math.max(o[0],Math.min(o[1],ue.k*Math.pow(2,i.apply(this,arguments)))),le=Ig(P);if(X.wheel)(X.mouse[0][0]!==le[0]||X.mouse[0][1]!==le[1])&&(X.mouse[1]=ue.invert(X.mouse[0]=le)),clearTimeout(X.wheel);else{if(ue.k===oe)return;X.mouse=[le,ue.invert(le)],bh(this),X.start()}SQ(P),X.wheel=setTimeout(me,u),X.zoom("mouse",e(k(b(ue,oe),X.mouse[0],X.mouse[1]),X.extent,r));function me(){X.wheel=null,X.end()}}function O(P,...se){if(C||!t.apply(this,arguments))return;var X=P.currentTarget,ue=_(this,se,!0).event(P),oe=js(P.view).on("mousemove.zoom",$e,!0).on("mouseup.zoom",Je,!0),le=Ig(P,X),me=P.clientX,Te=P.clientY;L6(P.view),MS(P),ue.mouse=[le,this.__zoom.invert(le)],bh(this),ue.start();function $e(Qe){if(SQ(Qe),!ue.moved){var He=Qe.clientX-me,PA=Qe.clientY-Te;ue.moved=He*He+PA*PA>h}ue.event(Qe).zoom("mouse",e(k(ue.that.__zoom,ue.mouse[0]=Ig(Qe,X),ue.mouse[1]),ue.extent,r))}function Je(Qe){oe.on("mousemove.zoom mouseup.zoom",null),F6(Qe.view,ue.moved),SQ(Qe),ue.event(Qe).end()}}function H(P,...se){if(t.apply(this,arguments)){var X=this.__zoom,ue=Ig(P.changedTouches?P.changedTouches[0]:P,this),oe=X.invert(ue),le=X.k*(P.shiftKey?.5:2),me=e(k(b(X,le),ue,oe),A.apply(this,se),r);SQ(P),s>0?js(this).transition().duration(s).call(w,me,ue,P):js(this).call(f.transform,me,ue,P)}}function V(P,...se){if(t.apply(this,arguments)){var X=P.touches,ue=X.length,oe=_(this,se,P.changedTouches.length===ue).event(P),le,me,Te,$e;for(MS(P),me=0;me{let e=Math.max(0,Math.min(t.x+t.width,A.x+A.width)-Math.max(t.x,A.x)),i=Math.max(0,Math.min(t.y+t.height,A.y+A.height)-Math.max(t.y,A.y));return Math.ceil(e*i)};function oBe(t){if(t.length===0)return{x:0,y:0,width:0,height:0};let A={x:1/0,y:1/0,x2:-1/0,y2:-1/0};return t.forEach(e=>{let i=GaA(e);A=UaA(A,i)}),KaA(A)}function FaA(t,A,e){let i=A.find(o=>o.rawNode.id===t);if(!i)return[];let n=SS(i);return A.filter(o=>{if(o.rawNode.id===t)return!1;let r=LaA(SS(o),n);return e?.partially?r>0:r>=n.width*n.height})}function GaA(t){return{x:t.point().x,y:t.point().y,x2:t.point().x+t.size().width,y2:t.point().y+t.size().height}}function SS(t){return{x:t.globalPoint().x,y:t.globalPoint().y,width:t.width(),height:t.height()}}function KaA({x:t,y:A,x2:e,y2:i}){return{x:t,y:A,width:e-t,height:i-A}}function UaA(t,A){return{x:Math.min(t.x,A.x),y:Math.min(t.y,A.y),x2:Math.max(t.x2,A.x2),y2:Math.max(t.y2,A.y2)}}var kS=class{constructor(A){this.settings=A,this.curve=A.curve??"bezier",this.type=A.type??"default",this.mode=A.mode??"strict";let e=this.getValidators(A);this.validator=i=>e.every(n=>n(i))}getValidators(A){let e=[];return e.push(TaA),this.mode==="loose"&&e.push(OaA),A.validator&&e.push(A.validator),e}},TaA=t=>t.source!==t.target,OaA=t=>t.sourceHandle!==void 0&&t.targetHandle!==void 0;function xQ(t){return t.split("").reduce((A,e)=>(A=(A<<5)-A+e.charCodeAt(0),A&A),0)}var jc=(()=>{class t{constructor(){this.nodes=mA([],{equal:(e,i)=>!e.length&&!i.length?!0:e===i}),this.rawNodes=ot(()=>this.nodes().map(e=>e.rawNode)),this.edges=mA([],{equal:(e,i)=>!e.length&&!i.length?!0:e===i}),this.rawEdges=ot(()=>this.edges().map(e=>e.edge)),this.validEdges=ot(()=>{let e=this.nodes();return this.edges().filter(i=>e.includes(i.source())&&e.includes(i.target()))}),this.connection=mA(new kS({})),this.markers=ot(()=>{let e=new Map;this.validEdges().forEach(n=>{if(n.edge.markers?.start){let o=xQ(JSON.stringify(n.edge.markers.start));e.set(o,n.edge.markers.start)}if(n.edge.markers?.end){let o=xQ(JSON.stringify(n.edge.markers.end));e.set(o,n.edge.markers.end)}});let i=this.connection().settings.marker;if(i){let n=xQ(JSON.stringify(i));e.set(n,i)}return e}),this.entities=ot(()=>[...this.nodes(),...this.edges()]),this.minimap=mA(null)}getNode(e){return this.nodes().find(({rawNode:i})=>i.id===e)}getDetachedEdges(){return this.edges().filter(e=>e.detached())}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return t})();function JaA(t,A,e,i,n,o){let r=A/(t.width*(1+o)),s=e/(t.height*(1+o)),a=Math.min(r,s),c=YaA(a,i,n),l=t.x+t.width/2,d=t.y+t.height/2,C=A/2-l*c,I=e/2-d*c;return{x:C,y:I,zoom:c}}function YaA(t,A=0,e=1){return Math.min(Math.max(t,A),e)}function HaA(t,A,e){let i=t.zoom;return{x:-t.x/i,y:-t.y/i,width:A/i,height:e/i}}function zaA(t,A,e,i){let n=HaA(A,e,i);return!(t.x+t.widthn.x+n.width||t.y+t.heightn.y+n.height)}var PaA={detachedGroupsLayer:!1,virtualization:!1,virtualizationZoomThreshold:.5,lazyLoadTrigger:"immediate"},Ja=(()=>{class t{constructor(){this.entitiesSelectable=mA(!0),this.elevateNodesOnSelect=mA(!0),this.elevateEdgesOnSelect=mA(!0),this.view=mA([400,400]),this.computedFlowWidth=mA(0),this.computedFlowHeight=mA(0),this.minZoom=mA(.5),this.maxZoom=mA(3),this.background=mA({type:"solid",color:"#fff"}),this.snapGrid=mA([1,1]),this.optimization=mA(PaA)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return t})(),Mh=(()=>{class t{constructor(){this.entitiesService=E(jc),this.flowSettingsService=E(Ja),this.writableViewport=mA({changeType:"initial",state:t.getDefaultViewport(),duration:0}),this.readableViewport=mA(t.getDefaultViewport()),this.viewportChangeEnd$=new je}static getDefaultViewport(){return{zoom:1,x:0,y:0}}fitView(e={padding:.1,duration:0,nodes:[]}){let i=this.getBoundsNodes(e.nodes??[]),n=JaA(oBe(i),this.flowSettingsService.computedFlowWidth(),this.flowSettingsService.computedFlowHeight(),this.flowSettingsService.minZoom(),this.flowSettingsService.maxZoom(),e.padding??.1),o=e.duration??0;this.writableViewport.set({changeType:"absolute",state:n,duration:o})}triggerViewportChangeEvent(e){e==="end"&&this.viewportChangeEnd$.next()}getBoundsNodes(e){return e?.length?e.map(i=>this.entitiesService.nodes().find(({rawNode:n})=>n.id===i)).filter(i=>!!i):this.entitiesService.nodes()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return t})();function c1(t){return t!==void 0}var US=(()=>{class t{constructor(){this.element=E(eA).nativeElement}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["svg","rootSvgRef",""]]})}}return t})();function Jhe(){let t=window.navigator.userAgent.toLowerCase(),A=/(macintosh|macintel|macppc|mac68k|macos)/i,e=/(win32|win64|windows|wince)/i,i=/(iphone|ipad|ipod)/i,n=null;return A.test(t)?n="macos":i.test(t)?n="ios":e.test(t)?n="windows":/android/.test(t)?n="android":!n&&/linux/.test(t)&&(n="linux"),n}var bz=(()=>{class t{constructor(){this.actions=mA({multiSelection:[Jhe()==="macos"?"MetaLeft":"ControlLeft",Jhe()==="macos"?"MetaRight":"ControlRight"]}),this.actionsActive={multiSelection:!1},vo(this.actions).pipe(Si(()=>Bi(Ya(document,"keydown").pipe(Pt(e=>{for(let i in this.actions())(this.actions()[i]??[]).includes(e.code)&&(this.actionsActive[i]=!0)})),Ya(document,"keyup").pipe(Pt(e=>{for(let i in this.actions())(this.actions()[i]??[]).includes(e.code)&&(this.actionsActive[i]=!1)})))),va()).subscribe()}setShortcuts(e){this.actions.update(i=>ae(ae({},i),e))}isActiveAction(e){return this.actionsActive[e]}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return t})(),A8=(()=>{class t{constructor(){this.flowEntitiesService=E(jc),this.keyboardService=E(bz),this.viewport$=new je,this.resetSelection=this.viewport$.pipe(Pt(({start:e,end:i,target:n})=>{if(e&&i&&n){let o=t.delta,r=Math.abs(i.x-e.x),s=Math.abs(i.y-e.y),a=ri.selected.set(!1)),e&&e.selected.set(!0))}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return t})(),yz=(()=>{class t{constructor(){this.rootSvg=E(US).element,this.host=E(eA).nativeElement,this.selectionService=E(A8),this.viewportService=E(Mh),this.flowSettingsService=E(Ja),this.zone=E(yA),this.rootSvgSelection=js(this.rootSvg),this.transform=mA(""),this.viewportForSelection={},this.manualViewportChangeEffect=pa(()=>{let e=this.viewportService.writableViewport(),i=e.state;if(e.changeType!=="initial"){if(c1(i.zoom)&&!c1(i.x)&&!c1(i.y)){this.rootSvgSelection.transition().duration(e.duration).call(this.zoomBehavior.scaleTo,i.zoom);return}if(c1(i.x)&&c1(i.y)&&!c1(i.zoom)){let n=As(this.viewportService.readableViewport).zoom;this.rootSvgSelection.transition().duration(e.duration).call(this.zoomBehavior.transform,fI.translate(i.x,i.y).scale(n));return}if(c1(i.x)&&c1(i.y)&&c1(i.zoom)){this.rootSvgSelection.transition().duration(e.duration).call(this.zoomBehavior.transform,fI.translate(i.x,i.y).scale(i.zoom));return}}},{allowSignalWrites:!0}),this.handleZoom=({transform:e})=>{this.viewportService.readableViewport.set(Dz(e)),this.transform.set(e.toString())},this.handleZoomStart=({transform:e})=>{this.viewportForSelection={start:Dz(e)}},this.handleZoomEnd=({transform:e,sourceEvent:i})=>{this.zone.run(()=>{this.viewportForSelection=_A(ae({},this.viewportForSelection),{end:Dz(e),target:jaA(i)}),this.viewportService.triggerViewportChangeEvent("end"),this.selectionService.setViewport(this.viewportForSelection)})},this.filterCondition=e=>e.type==="mousedown"||e.type==="touchstart"?e.target.closest(".vflow-node")===null:!0}ngOnInit(){this.zone.runOutsideAngular(()=>{this.zoomBehavior=wz().scaleExtent([this.flowSettingsService.minZoom(),this.flowSettingsService.maxZoom()]).filter(this.filterCondition).on("start",this.handleZoomStart).on("zoom",this.handleZoom).on("end",this.handleZoomEnd),this.rootSvgSelection.call(this.zoomBehavior).on("dblclick.zoom",null)})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["g","mapContext",""]],hostVars:1,hostBindings:function(i,n){i&2&&AA("transform",n.transform())}})}}return t})(),Dz=t=>({zoom:t.k,x:t.x,y:t.y}),jaA=t=>{if(t instanceof Event&&t.target instanceof Element)return t.target},xS=t=>Math.round(t*100)/100;function Pc(t,A){return Math.ceil(t/A)*A}var QI=(()=>{class t{constructor(){this.status=mA({state:"idle",payload:null})}setIdleStatus(){this.status.set({state:"idle",payload:null})}setConnectionStartStatus(e,i){this.status.set({state:"connection-start",payload:{source:e,sourceHandle:i}})}setReconnectionStartStatus(e,i,n){this.status.set({state:"reconnection-start",payload:{source:e,sourceHandle:i,oldEdge:n}})}setConnectionValidationStatus(e,i,n,o,r){this.status.set({state:"connection-validation",payload:{source:i,target:n,sourceHandle:o,targetHandle:r,valid:e}})}setReconnectionValidationStatus(e,i,n,o,r,s){this.status.set({state:"reconnection-validation",payload:{source:i,target:n,sourceHandle:o,targetHandle:r,valid:e,oldEdge:s}})}setConnectionEndStatus(e,i,n,o){this.status.set({state:"connection-end",payload:{source:e,target:i,sourceHandle:n,targetHandle:o}})}setReconnectionEndStatus(e,i,n,o,r){this.status.set({state:"reconnection-end",payload:{source:e,target:i,sourceHandle:n,targetHandle:o,oldEdge:r}})}setNodeDragStartStatus(e){this.status.set({state:"node-drag-start",payload:{node:e}})}setNodeDragEndStatus(e){this.status.set({state:"node-drag-end",payload:{node:e}})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return t})();function Yhe(t){return t.state==="node-drag-start"}function VaA(t){return t.state==="node-drag-end"}var rBe=(()=>{class t{constructor(){this.entitiesService=E(jc),this.settingsService=E(Ja),this.flowStatusService=E(QI)}enable(e,i){js(e).call(this.getDragBehavior(i))}disable(e){js(e).call(sS().on("drag",null))}destroy(e){js(e).on(".drag",null)}getDragBehavior(e){let i=[],n=[],o=r=>e.dragHandlesCount()?!!r.target.closest(".vflow-drag-handle"):!0;return sS().filter(o).on("start",r=>{i=this.getDragNodes(e),this.flowStatusService.setNodeDragStartStatus(e),n=i.map(s=>({x:s.point().x-r.x,y:s.point().y-r.y}))}).on("drag",r=>{i.forEach((s,a)=>{let c={x:xS(r.x+n[a].x),y:xS(r.y+n[a].y)};this.moveNode(s,c)})}).on("end",()=>{this.flowStatusService.setNodeDragEndStatus(e)})}getDragNodes(e){return e.selected()?this.entitiesService.nodes().filter(i=>i.selected()&&i.draggable()):[e]}moveNode(e,i){i=this.alignToGrid(i);let n=e.parent();n&&(i.x=Math.min(n.width()-e.width(),i.x),i.x=Math.max(0,i.x),i.y=Math.min(n.height()-e.height(),i.y),i.y=Math.max(0,i.y)),e.setPoint(i)}alignToGrid(e){let[i,n]=this.settingsService.snapGrid();return i>1&&(e.x=Pc(e.x,i)),n>1&&(e.y=Pc(e.y,n)),e}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return t})(),Hhe=(()=>{class t{constructor(){this.templateRef=E(en)}static ngTemplateContextGuard(e,i){return!0}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["ng-template","edge",""]]})}}return t})(),zhe=(()=>{class t{constructor(){this.templateRef=E(en)}static ngTemplateContextGuard(e,i){return!0}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["ng-template","connection",""]]})}}return t})(),Phe=(()=>{class t{constructor(){this.templateRef=E(en)}static ngTemplateContextGuard(e,i){return!0}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["ng-template","edgeLabelHtml",""]]})}}return t})(),_S=(()=>{class t{constructor(){this.templateRef=E(en)}static ngTemplateContextGuard(e,i){return!0}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["ng-template","nodeHtml",""]]})}}return t})(),jhe=(()=>{class t{constructor(){this.templateRef=E(en)}static ngTemplateContextGuard(e,i){return!0}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["ng-template","nodeSvg",""]]})}}return t})(),RS=(()=>{class t{constructor(){this.templateRef=E(en)}static ngTemplateContextGuard(e,i){return!0}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["ng-template","groupNode",""]]})}}return t})();function Vhe(t,A){let e=t.reduce((i,n)=>(i[n.rawNode.id]=n,i),{});A.forEach(i=>{i.source.set(e[i.edge.source]),i.target.set(e[i.edge.target])})}function $6(t){try{return new Proxy(t,{apply:()=>{}})(),!0}catch{return!1}}var Mz=(()=>{class t{constructor(){this._event$=new je,this.event$=this._event$.asObservable()}pushEvent(e){this._event$.next(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return t})(),_Q=(()=>{class t{constructor(){this.model=mA(null)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return t})(),sBe=(()=>{class t{constructor(){this.eventBus=E(Mz),this.nodeService=E(_Q),this.destroyRef=E(Fr),this.selected=this.nodeService.model().selected,this.data=mA(void 0)}ngOnInit(){this.trackEvents().pipe(va(this.destroyRef)).subscribe()}trackEvents(){let e=Object.getOwnPropertyNames(this),i=new Map;for(let n of e){let o=this[n];o instanceof Ve&&i.set(o,n),o instanceof c4&&i.set(qaA(o),n)}return Bi(...Array.from(i.keys()).map(n=>n.pipe(Pt(o=>{this.eventBus.pushEvent({nodeId:this.nodeService.model()?.rawNode.id??"",eventName:i.get(n),eventPayload:o})}))))}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,standalone:!1})}}return t})();function qaA(t){return new nt(A=>{let e=t.subscribe(i=>{A.next(i)});return()=>{e.unsubscribe()}})}var WaA=(()=>{class t extends sBe{constructor(){super(...arguments),this.node=lt.required()}ngOnInit(){let e=this.node().data;e&&(this.data=e),super.ngOnInit()}static{this.\u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})()}static{this.\u0275dir=Oe({type:t,inputs:{node:[1,"node"]},standalone:!1,features:[Ct]})}}return t})(),ZaA=(()=>{class t extends sBe{constructor(){super(...arguments),this.node=lt.required()}ngOnInit(){this.node().data&&this.data.set(this.node().data),super.ngOnInit()}static{this.\u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})()}static{this.\u0275dir=Oe({type:t,inputs:{node:[1,"node"]},standalone:!1,features:[Ct]})}}return t})();function aBe(t){return Object.prototype.isPrototypeOf.call(ZaA,t)}function cBe(t){return Object.prototype.isPrototypeOf.call(WaA,t)}function XaA(t){return typeof t.point=="function"}function $aA(t){return aBe(t.type)?!0:$6(t.type)&&!$6(t.point)}function ecA(t){return cBe(t.type)?!0:$6(t.type)&&$6(t.point)}var NS=2;function AcA(t){return XaA(t)?t:_A(ae({},tcA(t)),{id:t.id,type:t.type})}function tcA(t){let A={};for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&(A[e]=mA(t[e]));return A}function icA(t,A,e){!A&&e2(t);let i=A??E(Dt);return e?Xr(i,e):i}function e8(t,A){let e=icA(e8,A?.injector),i;return ot(()=>(i||(i=As(()=>_g(t,_A(ae({},A),{injector:e})))),i()))}function ncA(t){return t.rawNode.type==="default-group"||t.rawNode.type==="template-group"}var Sh=(()=>{class t{constructor(){this.flowEntitiesService=E(jc),this.flowSettingsService=E(Ja),this.viewportService=E(Mh),this.nodes=ot(()=>this.flowSettingsService.optimization().virtualization?this.viewportNodesAfterInteraction().sort((e,i)=>e.renderOrder()-i.renderOrder()):[...this.flowEntitiesService.nodes()].sort((e,i)=>e.renderOrder()-i.renderOrder())),this.groups=ot(()=>this.nodes().filter(e=>!!e.children().length||ncA(e))),this.nonGroups=ot(()=>this.nodes().filter(e=>!this.groups().includes(e))),this.viewportNodes=ot(()=>{let e=this.flowEntitiesService.nodes(),i=this.viewportService.readableViewport(),n=this.flowSettingsService.computedFlowWidth(),o=this.flowSettingsService.computedFlowHeight();return e.filter(r=>{let{x:s,y:a}=r.globalPoint(),c=r.width(),l=r.height();return zaA({x:s,y:a,width:c,height:l},i,n,o)})}),this.viewportNodesAfterInteraction=e8(Bi(vo(this.flowEntitiesService.nodes).pipe(Qg(D0),$A(e=>!!e.length)),this.viewportService.viewportChangeEnd$.pipe(Ws(300))).pipe(aA(()=>{let e=this.viewportService.readableViewport(),i=this.flowSettingsService.optimization().virtualizationZoomThreshold;return e.zoomMath.max(...this.flowEntitiesService.nodes().map(e=>e.renderOrder())))}pullNode(e){e.renderOrder.set(this.maxOrder()+1),e.children().forEach(i=>this.pullNode(i))}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return t})();function LS(t,A){A||(A={equal:Object.is});let e;return ot(()=>e=t(e),A)}var ocA=(()=>{class t{static{this.defaultWidth=100}static{this.defaultHeight=50}static{this.defaultColor="#1b262c"}constructor(e){this.rawNode=e,this.entitiesService=E(jc),this.settingsService=E(Ja),this.nodeRenderingService=E(Sh),this.isVisible=mA(!1),this.point=mA({x:0,y:0}),this.width=mA(t.defaultWidth),this.height=mA(t.defaultHeight),this.size=ot(()=>({width:this.width(),height:this.height()})),this.styleWidth=ot(()=>this.controlledByResizer()?`${this.width()}px`:"100%"),this.styleHeight=ot(()=>this.controlledByResizer()?`${this.height()}px`:"100%"),this.foWidth=ot(()=>this.width()+NS),this.foHeight=ot(()=>this.height()+NS),this.renderOrder=mA(0),this.selected=mA(!1),this.preview=mA({style:{}}),this.globalPoint=ot(()=>{let n=this.parent(),o=this.point().x,r=this.point().y;for(;n!==null;)o+=n.point().x,r+=n.point().y,n=n.parent();return{x:o,y:r}}),this.pointTransform=ot(()=>`translate(${this.globalPoint().x}, ${this.globalPoint().y})`),this.handles=mA([]),this.draggable=mA(!0),this.dragHandlesCount=mA(0),this.magnetRadius=20,this.isComponentType=$aA(this.rawNode)||ecA(this.rawNode),this.shouldLoad=LS(n=>{if(n||this.settingsService.optimization().lazyLoadTrigger==="immediate")return!0;if(this.settingsService.optimization().lazyLoadTrigger==="viewport"){if(aBe(this.rawNode.type)||cBe(this.rawNode.type))return!0;if($6(this.rawNode.type)||this.rawNode.type==="html-template"||this.rawNode.type==="svg-template"||this.rawNode.type==="template-group")return this.nodeRenderingService.viewportNodes().includes(this)}return!0}),this.componentInstance$=vo(this.shouldLoad).pipe($A(Boolean),Si(()=>this.rawNode.type()),br(()=>dA(this.rawNode.type)),za(1)),this.text=mA(""),this.componentTypeInputs={node:this.rawNode},this.parent=ot(()=>this.entitiesService.nodes().find(n=>n.rawNode.id===this.parentId())??null),this.children=ot(()=>this.entitiesService.nodes().filter(n=>n.parentId()===this.rawNode.id)),this.color=mA(t.defaultColor),this.controlledByResizer=mA(!1),this.resizable=mA(!1),this.resizing=mA(!1),this.resizerTemplate=mA(null),this.context={$implicit:{}},this.parentId=mA(null);let i=AcA(e);i.point&&(this.point=i.point),i.width&&(this.width=i.width),i.height&&(this.height=i.height),i.draggable&&(this.draggable=i.draggable),i.parentId&&(this.parentId=i.parentId),i.preview&&(this.preview=i.preview),i.type==="default-group"&&i.color&&(this.color=i.color),i.type==="default-group"&&i.resizable&&(this.resizable=i.resizable),i.type==="default"&&i.text&&(this.text=i.text),i.type==="html-template"&&(this.context={$implicit:{node:e,selected:this.selected.asReadonly(),shouldLoad:this.shouldLoad}}),i.type==="svg-template"&&(this.context={$implicit:{node:e,selected:this.selected.asReadonly(),width:this.width.asReadonly(),height:this.height.asReadonly(),shouldLoad:this.shouldLoad}}),i.type==="template-group"&&(this.context={$implicit:{node:e,selected:this.selected.asReadonly(),width:this.width.asReadonly(),height:this.height.asReadonly(),shouldLoad:this.shouldLoad}}),this.point$=vo(this.point),this.width$=vo(this.width),this.height$=vo(this.height),this.size$=vo(this.size),this.selected$=vo(this.selected),this.handles$=vo(this.handles)}setPoint(e){this.point.set(e)}}return t})(),Z6=class{constructor(A){this.edgeLabel=A,this.size=mA({width:0,height:0})}};function l1(t,A,e){return{x:(1-e)*t.x+e*A.x,y:(1-e)*t.y+e*A.y}}function Sz({sourcePoint:t,targetPoint:A}){return{path:`M ${t.x},${t.y}L ${A.x},${A.y}`,labelPoints:{start:l1(t,A,.15),center:l1(t,A,.5),end:l1(t,A,.85)}}}function kz({sourcePoint:t,targetPoint:A,sourcePosition:e,targetPosition:i}){let n={x:t.x-A.x,y:t.y-A.y},o=qhe(t,e,n),r=qhe(A,i,n),s=`M${t.x},${t.y} C${o.x},${o.y} ${r.x},${r.y} ${A.x},${A.y}`;return rcA(s,t,A,o,r)}function qhe(t,A,e){let i={x:0,y:0};switch(A){case"top":i.y=1;break;case"bottom":i.y=-1;break;case"right":i.x=1;break;case"left":i.x=-1;break}let n={x:e.x*Math.abs(i.x),y:e.y*Math.abs(i.y)},r=.25*25*Math.sqrt(Math.abs(n.x+n.y));return{x:t.x+i.x*r,y:t.y-i.y*r}}function rcA(t,A,e,i,n){return{path:t,labelPoints:{start:vz(A,e,i,n,.1),center:vz(A,e,i,n,.5),end:vz(A,e,i,n,.9)}}}function vz(t,A,e,i,n){let o=l1(t,e,n),r=l1(e,i,n),s=l1(i,A,n);return l1(l1(o,r,n),l1(r,s,n),n)}var Whe={left:{x:-1,y:0},right:{x:1,y:0},top:{x:0,y:-1},bottom:{x:0,y:1}};function scA(t,A){let e=Math.abs(A.x-t.x)/2,i=A.xA==="left"||A==="right"?t.xMath.sqrt(Math.pow(A.x-t.x,2)+Math.pow(A.y-t.y,2));function ccA({source:t,sourcePosition:A="bottom",target:e,targetPosition:i="top",offset:n}){let o=Whe[A],r=Whe[i],s={x:t.x+o.x*n,y:t.y+o.y*n},a={x:e.x+r.x*n,y:e.y+r.y*n},c=acA({source:s,sourcePosition:A,target:a}),l=c.x!==0?"x":"y",d=c[l],C=[],I,u,h={x:0,y:0},B={x:0,y:0},[f,b]=scA(t,e);if(o[l]*r[l]===-1){I=f,u=b;let S=[{x:I,y:s.y},{x:I,y:a.y}],w=[{x:s.x,y:u},{x:a.x,y:u}];o[l]===d?C=l==="x"?S:w:C=l==="x"?w:S}else{let S=[{x:s.x,y:a.y}],w=[{x:a.x,y:s.y}];if(l==="x"?C=o.x===d?w:S:C=o.y===d?S:w,A===i){let H=Math.abs(t[l]-e[l]);if(H<=n){let V=Math.min(n-1,n-H);o[l]===d?h[l]=(s[l]>t[l]?-1:1)*V:B[l]=(a[l]>e[l]?-1:1)*V}}if(A!==i){let H=l==="x"?"y":"x",V=o[l]===r[H],Z=s[H]>a[H],ye=s[H]=O?(I=(_.x+K.x)/2,u=C[0].y):(I=C[0].x,u=(_.y+K.y)/2)}return[[t,{x:s.x+h.x,y:s.y+h.y},...C,{x:a.x+B.x,y:a.y+B.y},e],I,u]}function lcA(t,A,e,i){let n=Math.min(Zhe(t,A)/2,Zhe(A,e)/2,i),{x:o,y:r}=A;if(t.x===o&&o===e.x||t.y===r&&r===e.y)return`L${o} ${r}`;if(t.y===r){let c=t.x{let f="";return B>0&&B{let h=C*u;if(h<=0)return o[0];if(h>=C)return o[c-1];let B=0,f=c-1;for(;B>>1;d[K](this.source()?.shouldLoad()??!1)&&(this.target()?.shouldLoad()??!1)),this.renderOrder=mA(0),this.detached=ot(()=>{let e=this.source(),i=this.target();if(!e||!i)return!0;let n=!1,o=!1;return this.edge.sourceHandle?n=!!e.handles().find(r=>r.rawHandle.id===this.edge.sourceHandle):n=!!e.handles().find(r=>r.rawHandle.type==="source"),this.edge.targetHandle?o=!!i.handles().find(r=>r.rawHandle.id===this.edge.targetHandle):o=!!i.handles().find(r=>r.rawHandle.type==="target"),!n||!o}),this.detached$=vo(this.detached),this.path=ot(()=>{let e=this.sourceHandle(),i=this.targetHandle();if(!e||!i)return{path:""};let n=this.getPathFactoryParams(e,i);switch(this.curve){case"straight":return Sz(n);case"bezier":return kz(n);case"smooth-step":return kQ(n);case"step":return kQ(n,0);default:return this.curve(n)}}),this.sourceHandle=LS(e=>{let i=null;return this.floating?i=this.closestHandles().sourceHandle:this.edge.sourceHandle?i=this.source()?.handles().find(n=>n.rawHandle.id===this.edge.sourceHandle)??null:i=this.source()?.handles().find(n=>n.rawHandle.type==="source")??null,i===null?e:i}),this.targetHandle=LS(e=>{let i=null;return this.floating?i=this.closestHandles().targetHandle:this.edge.targetHandle?i=this.target()?.handles().find(n=>n.rawHandle.id===this.edge.targetHandle)??null:i=this.target()?.handles().find(n=>n.rawHandle.type==="target")??null,i===null?e:i}),this.closestHandles=ot(()=>{let e=this.source(),i=this.target();if(!e||!i)return{sourceHandle:null,targetHandle:null};let n=this.flowEntitiesService.connection().mode==="strict"?e.handles().filter(c=>c.rawHandle.type==="source"):e.handles(),o=this.flowEntitiesService.connection().mode==="strict"?i.handles().filter(c=>c.rawHandle.type==="target"):i.handles();if(n.length===0||o.length===0)return{sourceHandle:null,targetHandle:null};let r=1/0,s=null,a=null;for(let c of n)for(let l of o){let d=c.pointAbsolute(),C=l.pointAbsolute(),I=Math.sqrt(Math.pow(d.x-C.x,2)+Math.pow(d.y-C.y,2));I{let e=this.edge.markers?.start;return e?`url(#${xQ(JSON.stringify(e))})`:""}),this.markerEndUrl=ot(()=>{let e=this.edge.markers?.end;return e?`url(#${xQ(JSON.stringify(e))})`:""}),this.context={$implicit:{edge:this.edge,path:ot(()=>this.path().path),markerStart:this.markerStartUrl,markerEnd:this.markerEndUrl,selected:this.selected.asReadonly(),shouldLoad:this.shouldLoad}},this.edgeLabels={},this.type=A.type??"default",this.curve=A.curve??"bezier",this.reconnectable=A.reconnectable??!1,this.floating=A.floating??!1,A.edgeLabels?.start&&(this.edgeLabels.start=new Z6(A.edgeLabels.start)),A.edgeLabels?.center&&(this.edgeLabels.center=new Z6(A.edgeLabels.center)),A.edgeLabels?.end&&(this.edgeLabels.end=new Z6(A.edgeLabels.end))}getPathFactoryParams(A,e){return{mode:"edge",edge:this.edge,sourcePoint:A.pointAbsolute(),targetPoint:e.pointAbsolute(),sourcePosition:A.rawHandle.position,targetPosition:e.rawHandle.position,allEdges:this.flowEntitiesService.rawEdges(),allNodes:this.flowEntitiesService.rawNodes()}}},FS=class{static nodes(A,e){let i=new Map;return e.forEach(n=>i.set(n.rawNode,n)),A.map(n=>i.get(n)??new ocA(n))}static edges(A,e){let i=new Map;return e.forEach(n=>i.set(n.edge,n)),A.map(n=>i.has(n)?i.get(n):new xz(n))}},gcA=25,_z=(()=>{class t{constructor(){this.entitiesService=E(jc),this.nodesPositionChange$=vo(this.entitiesService.nodes).pipe(Si(e=>Bi(...e.map(i=>i.point$.pipe(Pa(1),aA(()=>i))))),aA(e=>[{type:"position",id:e.rawNode.id,point:e.point()},...this.entitiesService.nodes().filter(i=>i!==e&&i.selected()).map(i=>({type:"position",id:i.rawNode.id,point:i.point()}))])),this.nodeSizeChange$=vo(this.entitiesService.nodes).pipe(Si(e=>Bi(...e.map(i=>i.size$.pipe(Pa(1),aA(()=>i))))),aA(e=>[{type:"size",id:e.rawNode.id,size:e.size()}])),this.nodeAddChange$=vo(this.entitiesService.nodes).pipe(k0(),aA(([e,i])=>i.filter(n=>!e.includes(n))),$A(e=>!!e.length),aA(e=>e.map(i=>({type:"add",id:i.rawNode.id})))),this.nodeRemoveChange$=vo(this.entitiesService.nodes).pipe(k0(),aA(([e,i])=>e.filter(n=>!i.includes(n))),$A(e=>!!e.length),aA(e=>e.map(i=>({type:"remove",id:i.rawNode.id})))),this.nodeSelectedChange$=vo(this.entitiesService.nodes).pipe(Si(e=>Bi(...e.map(i=>i.selected$.pipe(Ha(),Pa(1),aA(()=>i))))),aA(e=>[{type:"select",id:e.rawNode.id,selected:e.selected()}])),this.changes$=Bi(this.nodesPositionChange$,this.nodeSizeChange$,this.nodeAddChange$,this.nodeRemoveChange$,this.nodeSelectedChange$).pipe(Qg(D0,gcA))}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return t})(),dcA=(t,A)=>t.length===A.length&&[...new Set([...t,...A])].every(e=>t.filter(i=>i===e).length===A.filter(i=>i===e).length),Rz=(()=>{class t{constructor(){this.entitiesService=E(jc),this.edgeDetachedChange$=Bi(vo(ot(()=>{let e=this.entitiesService.nodes();return As(this.entitiesService.edges).filter(({source:n,target:o})=>!e.includes(n())||!e.includes(o()))})),vo(this.entitiesService.edges).pipe(Si(e=>Wk(...e.map(i=>i.detached$.pipe(aA(()=>i))))),aA(e=>e.filter(i=>i.detached())),Pa(2))).pipe(Ha(dcA),$A(e=>!!e.length),aA(e=>e.map(({edge:i})=>({type:"detached",id:i.id})))),this.edgeAddChange$=vo(this.entitiesService.edges).pipe(k0(),aA(([e,i])=>i.filter(n=>!e.includes(n))),$A(e=>!!e.length),aA(e=>e.map(({edge:i})=>({type:"add",id:i.id})))),this.edgeRemoveChange$=vo(this.entitiesService.edges).pipe(k0(),aA(([e,i])=>e.filter(n=>!i.includes(n))),$A(e=>!!e.length),aA(e=>e.map(({edge:i})=>({type:"remove",id:i.id})))),this.edgeSelectChange$=vo(this.entitiesService.edges).pipe(Si(e=>Bi(...e.map(i=>i.selected$.pipe(Ha(),Pa(1),aA(()=>i))))),aA(e=>[{type:"select",id:e.edge.id,selected:e.selected()}])),this.changes$=Bi(this.edgeDetachedChange$,this.edgeAddChange$,this.edgeRemoveChange$,this.edgeSelectChange$).pipe(Qg(D0))}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return t})(),CcA=(()=>{class t{constructor(){this.nodesChangeService=E(_z),this.edgesChangeService=E(Rz),this.onNodesChange=Xn(this.nodesChangeService.changes$),this.onNodesChangePosition=Xn(this.nodeChangesOfType("position"),{alias:"onNodesChange.position"}),this.onNodesChangePositionSignle=Xn(this.singleChange(this.nodeChangesOfType("position")),{alias:"onNodesChange.position.single"}),this.onNodesChangePositionMany=Xn(this.manyChanges(this.nodeChangesOfType("position")),{alias:"onNodesChange.position.many"}),this.onNodesChangeSize=Xn(this.nodeChangesOfType("size"),{alias:"onNodesChange.size"}),this.onNodesChangeSizeSingle=Xn(this.singleChange(this.nodeChangesOfType("size")),{alias:"onNodesChange.size.single"}),this.onNodesChangeSizeMany=Xn(this.manyChanges(this.nodeChangesOfType("size")),{alias:"onNodesChange.size.many"}),this.onNodesChangeAdd=Xn(this.nodeChangesOfType("add"),{alias:"onNodesChange.add"}),this.onNodesChangeAddSingle=Xn(this.singleChange(this.nodeChangesOfType("add")),{alias:"onNodesChange.add.single"}),this.onNodesChangeAddMany=Xn(this.manyChanges(this.nodeChangesOfType("add")),{alias:"onNodesChange.add.many"}),this.onNodesChangeRemove=Xn(this.nodeChangesOfType("remove"),{alias:"onNodesChange.remove"}),this.onNodesChangeRemoveSingle=Xn(this.singleChange(this.nodeChangesOfType("remove")),{alias:"onNodesChange.remove.single"}),this.onNodesChangeRemoveMany=Xn(this.manyChanges(this.nodeChangesOfType("remove")),{alias:"onNodesChange.remove.many"}),this.onNodesChangeSelect=Xn(this.nodeChangesOfType("select"),{alias:"onNodesChange.select"}),this.onNodesChangeSelectSingle=Xn(this.singleChange(this.nodeChangesOfType("select")),{alias:"onNodesChange.select.single"}),this.onNodesChangeSelectMany=Xn(this.manyChanges(this.nodeChangesOfType("select")),{alias:"onNodesChange.select.many"}),this.onEdgesChange=Xn(this.edgesChangeService.changes$),this.onNodesChangeDetached=Xn(this.edgeChangesOfType("detached"),{alias:"onEdgesChange.detached"}),this.onNodesChangeDetachedSingle=Xn(this.singleChange(this.edgeChangesOfType("detached")),{alias:"onEdgesChange.detached.single"}),this.onNodesChangeDetachedMany=Xn(this.manyChanges(this.edgeChangesOfType("detached")),{alias:"onEdgesChange.detached.many"}),this.onEdgesChangeAdd=Xn(this.edgeChangesOfType("add"),{alias:"onEdgesChange.add"}),this.onEdgeChangeAddSingle=Xn(this.singleChange(this.edgeChangesOfType("add")),{alias:"onEdgesChange.add.single"}),this.onEdgeChangeAddMany=Xn(this.manyChanges(this.edgeChangesOfType("add")),{alias:"onEdgesChange.add.many"}),this.onEdgeChangeRemove=Xn(this.edgeChangesOfType("remove"),{alias:"onEdgesChange.remove"}),this.onEdgeChangeRemoveSingle=Xn(this.singleChange(this.edgeChangesOfType("remove")),{alias:"onEdgesChange.remove.single"}),this.onEdgeChangeRemoveMany=Xn(this.manyChanges(this.edgeChangesOfType("remove")),{alias:"onEdgesChange.remove.many"}),this.onEdgeChangeSelect=Xn(this.edgeChangesOfType("select"),{alias:"onEdgesChange.select"}),this.onEdgeChangeSelectSingle=Xn(this.singleChange(this.edgeChangesOfType("select")),{alias:"onEdgesChange.select.single"}),this.onEdgeChangeSelectMany=Xn(this.manyChanges(this.edgeChangesOfType("select")),{alias:"onEdgesChange.select.many"})}nodeChangesOfType(e){return this.nodesChangeService.changes$.pipe(aA(i=>i.filter(n=>n.type===e)),$A(i=>!!i.length))}edgeChangesOfType(e){return this.edgesChangeService.changes$.pipe(aA(i=>i.filter(n=>n.type===e)),$A(i=>!!i.length))}singleChange(e){return e.pipe($A(i=>i.length===1),aA(([i])=>i))}manyChanges(e){return e.pipe($A(i=>i.length>1))}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["","changesController",""]],outputs:{onNodesChange:"onNodesChange",onNodesChangePosition:"onNodesChange.position",onNodesChangePositionSignle:"onNodesChange.position.single",onNodesChangePositionMany:"onNodesChange.position.many",onNodesChangeSize:"onNodesChange.size",onNodesChangeSizeSingle:"onNodesChange.size.single",onNodesChangeSizeMany:"onNodesChange.size.many",onNodesChangeAdd:"onNodesChange.add",onNodesChangeAddSingle:"onNodesChange.add.single",onNodesChangeAddMany:"onNodesChange.add.many",onNodesChangeRemove:"onNodesChange.remove",onNodesChangeRemoveSingle:"onNodesChange.remove.single",onNodesChangeRemoveMany:"onNodesChange.remove.many",onNodesChangeSelect:"onNodesChange.select",onNodesChangeSelectSingle:"onNodesChange.select.single",onNodesChangeSelectMany:"onNodesChange.select.many",onEdgesChange:"onEdgesChange",onNodesChangeDetached:"onEdgesChange.detached",onNodesChangeDetachedSingle:"onEdgesChange.detached.single",onNodesChangeDetachedMany:"onEdgesChange.detached.many",onEdgesChangeAdd:"onEdgesChange.add",onEdgeChangeAddSingle:"onEdgesChange.add.single",onEdgeChangeAddMany:"onEdgesChange.add.many",onEdgeChangeRemove:"onEdgesChange.remove",onEdgeChangeRemoveSingle:"onEdgesChange.remove.single",onEdgeChangeRemoveMany:"onEdgesChange.remove.many",onEdgeChangeSelect:"onEdgesChange.select",onEdgeChangeSelectSingle:"onEdgesChange.select.single",onEdgeChangeSelectMany:"onEdgesChange.select.many"}})}}return t})(),TS=(()=>{class t{constructor(){this.host=E(eA).nativeElement,this.initialTouch$=new je,this.prevTouchEvent=null,this.mouseMovement$=Ya(this.host,"mousemove").pipe(aA(e=>({x:e.clientX,y:e.clientY,movementX:e.movementX,movementY:e.movementY,target:e.target,originalEvent:e})),Qg(ZQ),Rl()),this.touchMovement$=Bi(this.initialTouch$,Ya(this.host,"touchmove")).pipe(Pt(e=>e.preventDefault()),aA(e=>{let i=e.touches[0]?.clientX??0,n=e.touches[0]?.clientY??0,o=this.prevTouchEvent?e.touches[0].pageX-this.prevTouchEvent.touches[0].pageX:0,r=this.prevTouchEvent?e.touches[0].pageY-this.prevTouchEvent.touches[0].pageY:0,s=document.elementFromPoint(i,n);return{x:i,y:n,movementX:o,movementY:r,target:s,originalEvent:e}}),Pt(e=>this.prevTouchEvent=e.originalEvent),Qg(ZQ),Rl()),this.pointerMovement$=Bi(this.mouseMovement$,this.touchMovement$),this.touchEnd$=Ya(this.host,"touchend").pipe(aA(e=>{let i=e.changedTouches[0]?.clientX??0,n=e.changedTouches[0]?.clientY??0,o=document.elementFromPoint(i,n);return{x:i,y:n,target:o,originalEvent:e}}),Pt(()=>this.prevTouchEvent=null),Rl()),this.mouseUp$=Ya(this.host,"mouseup").pipe(aA(e=>{let i=e.clientX,n=e.clientY,o=e.target;return{x:i,y:n,target:o,originalEvent:e}}),Rl()),this.documentPointerEnd$=Bi(Ya(document,"mouseup"),Ya(document,"touchend")).pipe(Rl())}setInitialTouch(e){this.initialTouch$.next(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["svg","rootPointer",""]]})}}return t})(),X6=(()=>{class t{constructor(){this.pointerMovementDirective=E(TS),this.rootSvg=E(US).element,this.host=E(eA).nativeElement,this.svgCurrentSpacePoint=ot(()=>{let e=this.pointerMovement();return e?this.documentPointToFlowPoint({x:e.x,y:e.y}):{x:0,y:0}}),this.pointerMovement=_g(this.pointerMovementDirective.pointerMovement$)}documentPointToFlowPoint(e){let i=this.rootSvg.createSVGPoint();return i.x=e.x,i.y=e.y,i.matrixTransform(this.host.getScreenCTM().inverse())}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["g","spacePointContext",""]]})}}return t})();function IcA(t){return typeof t=="string"?{type:"solid",color:t}:t}function GS(t,A,e){let i=e.value;return e.value=function(...n){queueMicrotask(()=>{i?.apply(this,n)})},e}var lBe=(()=>{class t{constructor(){this.toolbars=mA([]),this.nodeToolbarsMap=ot(()=>{let e=new Map;return this.toolbars().forEach(i=>{let n=e.get(i.node)??[];e.set(i.node,[...n,i])}),e})}addToolbar(e){this.toolbars.update(i=>[...i,e])}removeToolbar(e){this.toolbars.update(i=>i.filter(n=>n!==e))}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return XQ([GS],t.prototype,"addToolbar",null),XQ([GS],t.prototype,"removeToolbar",null),t})();function OS(t,A){return new nt(e=>{let i=new ResizeObserver(n=>{A.run(()=>e.next(n))});return t.forEach(n=>i.observe(n)),()=>i.disconnect()})}var ucA=(()=>{class t{constructor(){this.zone=E(yA),this.destroyRef=E(Fr),this.settingsService=E(Ja),this.model=lt.required(),this.edgeModel=lt.required(),this.point=lt({x:0,y:0}),this.htmlTemplate=lt(),this.edgeLabelWrapperRef=es.required("edgeLabelWrapper"),this.edgeLabelPoint=ot(()=>{let e=this.point(),{width:i,height:n}=this.model().size();return{x:e.x-i/2,y:e.y-n/2}}),this.edgeLabelStyle=ot(()=>{let e=this.model().edgeLabel;if(e.type==="default"&&e.style){let i=this.settingsService.background(),n="transparent";return i.type==="dots"&&(n=i.backgroundColor??"#fff"),i.type==="solid"&&(n=i.color),e.style.backgroundColor=e.style.backgroundColor??n,e.style}return null})}ngAfterViewInit(){let e=this.edgeLabelWrapperRef().nativeElement;OS([e],this.zone).pipe(In(null),Pt(()=>{let i=e.clientWidth+NS,n=e.clientHeight+NS;this.model().size.set({width:i,height:n})}),va(this.destroyRef)).subscribe()}getLabelContext(){return{$implicit:{edge:this.edgeModel().edge,label:this.model().edgeLabel}}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=xe({type:t,selectors:[["g","edgeLabel",""]],viewQuery:function(i,n){i&1&&Kr(n.edgeLabelWrapperRef,hsA,5),i&2&&Aa()},inputs:{model:[1,"model"],edgeModel:[1,"edgeModel"],point:[1,"point"],htmlTemplate:[1,"htmlTemplate"]},attrs:BsA,decls:1,vars:1,consts:[["edgeLabelWrapper",""],[1,"edge-label-wrapper"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(i,n){if(i&1&&ne(0,psA,2,2),i&2){let o;$((o=n.model())?0:-1,o)}},dependencies:[nl],styles:[".edge-label-wrapper[_ngcontent-%COMP%]{width:max-content;margin-top:1px;margin-left:1px}"],changeDetection:0})}}return t})();function gBe(t){let A={};return t.sourceHandle.rawHandle.type==="source"?(A.source=t.source,A.sourceHandle=t.sourceHandle):(A.source=t.target,A.sourceHandle=t.targetHandle),t.targetHandle.rawHandle.type==="target"?(A.target=t.target,A.targetHandle=t.targetHandle):(A.target=t.source,A.targetHandle=t.sourceHandle),A}var dBe=(()=>{class t{constructor(){this.statusService=E(QI),this.flowEntitiesService=E(jc),this.onConnect=Xn(vo(this.statusService.status).pipe($A(e=>e.state==="connection-end"),aA(e=>Xhe(e,this.isStrictMode())),Pt(()=>this.statusService.setIdleStatus()),$A(e=>this.flowEntitiesService.connection().validator(e)))),this.onReconnect=Xn(vo(this.statusService.status).pipe($A(e=>e.state==="reconnection-end"),aA(e=>{let i=Xhe(e,this.isStrictMode()),n=e.payload.oldEdge.edge;return{connection:i,oldEdge:n}}),Pt(()=>this.statusService.setIdleStatus()),$A(({connection:e})=>this.flowEntitiesService.connection().validator(e)))),this.isStrictMode=ot(()=>this.flowEntitiesService.connection().mode==="strict")}startConnection(e){this.statusService.setConnectionStartStatus(e.parentNode,e)}startReconnection(e,i){this.statusService.setReconnectionStartStatus(e.parentNode,e,i)}validateConnection(e){let i=this.statusService.status();if(i.state==="connection-start"||i.state==="reconnection-start"){let n=i.state==="reconnection-start",o=i.payload.source,r=e.parentNode,s=i.payload.sourceHandle,a=e;if(this.isStrictMode()){let l=gBe({source:i.payload.source,sourceHandle:i.payload.sourceHandle,target:e.parentNode,targetHandle:e});o=l.source,r=l.target,s=l.sourceHandle,a=l.targetHandle}let c=this.flowEntitiesService.connection().validator({source:o.rawNode.id,target:r.rawNode.id,sourceHandle:s.rawHandle.id,targetHandle:a.rawHandle.id});e.state.set(c?"valid":"invalid"),n?this.statusService.setReconnectionValidationStatus(c,i.payload.source,e.parentNode,i.payload.sourceHandle,e,i.payload.oldEdge):this.statusService.setConnectionValidationStatus(c,i.payload.source,e.parentNode,i.payload.sourceHandle,e)}}resetValidateConnection(e){e.state.set("idle");let i=this.statusService.status();(i.state==="connection-validation"||i.state==="reconnection-validation")&&(i.state==="reconnection-validation"?this.statusService.setReconnectionStartStatus(i.payload.source,i.payload.sourceHandle,i.payload.oldEdge):this.statusService.setConnectionStartStatus(i.payload.source,i.payload.sourceHandle))}endConnection(){let e=this.statusService.status();if(e.state==="connection-validation"||e.state==="reconnection-validation"){let i=e.state==="reconnection-validation",n=e.payload.source,o=e.payload.sourceHandle,r=e.payload.target,s=e.payload.targetHandle;i?this.statusService.setReconnectionEndStatus(n,r,o,s,e.payload.oldEdge):this.statusService.setConnectionEndStatus(n,r,o,s)}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["","onConnect",""],["","onReconnect",""]],outputs:{onConnect:"onConnect",onReconnect:"onReconnect"}})}}return t})();function Xhe(t,A){let e=t.payload.source,i=t.payload.target,n=t.payload.sourceHandle,o=t.payload.targetHandle;if(A){let l=gBe({source:t.payload.source,sourceHandle:t.payload.sourceHandle,target:t.payload.target,targetHandle:t.payload.targetHandle});e=l.source,i=l.target,n=l.sourceHandle,o=l.targetHandle}let r=e.rawNode.id,s=i.rawNode.id,a=n.rawHandle.id,c=o.rawHandle.id;return{source:r,target:s,sourceHandle:a,targetHandle:c}}var KS=(()=>{class t{constructor(){this.flowEntitiesService=E(jc),this.flowSettingsService=E(Ja),this.edges=ot(()=>this.flowSettingsService.optimization().virtualization?this.viewportEdges().sort((e,i)=>e.renderOrder()-i.renderOrder()):[...this.flowEntitiesService.validEdges()].sort((e,i)=>e.renderOrder()-i.renderOrder())),this.viewportEdges=ot(()=>this.flowEntitiesService.validEdges().filter(e=>{let i=e.sourceHandle(),n=e.targetHandle();return i&&n})),this.maxOrder=ot(()=>Math.max(...this.flowEntitiesService.validEdges().map(e=>e.renderOrder())))}pull(e){e.renderOrder()!==0&&this.maxOrder()===e.renderOrder()||e.renderOrder.set(this.maxOrder()+1)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return t})();function hcA(t){return window.TouchEvent&&t instanceof TouchEvent}var Gz=(()=>{class t{constructor(){this.hostElement=E(eA).nativeElement,this.pointerMovementDirective=E(TS),this.pointerOver=No(),this.pointerOut=No(),this.pointerStart=No(),this.pointerEnd=No(),this.wasPointerOver=!1,this.touchEnd=this.pointerMovementDirective.touchEnd$.pipe($A(({target:e})=>e===this.hostElement),Pt(({originalEvent:e})=>this.pointerEnd.emit(e)),va()).subscribe(),this.touchOverOut=this.pointerMovementDirective.touchMovement$.pipe(Pt(({target:e,originalEvent:i})=>{this.handleTouchOverAndOut(e,i)}),va()).subscribe()}onPointerStart(e){this.pointerStart.emit(e),hcA(e)&&this.pointerMovementDirective.setInitialTouch(e)}onPointerEnd(e){this.pointerEnd.emit(e)}onMouseOver(e){this.pointerOver.emit(e)}onMouseOut(e){this.pointerOut.emit(e)}handleTouchOverAndOut(e,i){e===this.hostElement?(this.pointerOver.emit(i),this.wasPointerOver=!0):(this.wasPointerOver&&this.pointerOut.emit(i),this.wasPointerOver=!1)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["","pointerStart",""],["","pointerEnd",""],["","pointerOver",""],["","pointerOut",""]],hostBindings:function(i,n){i&1&&ee("mousedown",function(r){return n.onPointerStart(r)})("touchstart",function(r){return n.onPointerStart(r)})("mouseup",function(r){return n.onPointerEnd(r)})("mouseover",function(r){return n.onMouseOver(r)})("mouseout",function(r){return n.onMouseOut(r)})},outputs:{pointerOver:"pointerOver",pointerOut:"pointerOut",pointerStart:"pointerStart",pointerEnd:"pointerEnd"}})}}return t})(),CBe=(()=>{class t{constructor(){this.injector=E(Dt),this.selectionService=E(A8),this.flowSettingsService=E(Ja),this.flowStatusService=E(QI),this.edgeRenderingService=E(KS),this.connectionController=E(dBe,{optional:!0}),this.model=lt.required(),this.edgeTemplate=lt(),this.edgeLabelHtmlTemplate=lt(),this.isReconnecting=ot(()=>{let e=this.flowStatusService.status();return(e.state==="reconnection-start"||e.state==="reconnection-validation")&&e.payload.oldEdge===this.model()})}select(){this.flowSettingsService.entitiesSelectable()&&this.selectionService.select(this.model())}pull(){this.flowSettingsService.elevateEdgesOnSelect()&&this.edgeRenderingService.pull(this.model())}startReconnection(e,i){e.stopPropagation(),this.connectionController?.startReconnection(i,this.model())}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=xe({type:t,selectors:[["g","edge",""]],hostAttrs:[1,"selectable"],hostVars:2,hostBindings:function(i,n){i&2&&cn("visibility",n.isReconnecting()?"hidden":"visible")},inputs:{model:[1,"model"],edgeTemplate:[1,"edgeTemplate"],edgeLabelHtmlTemplate:[1,"edgeLabelHtmlTemplate"]},attrs:wsA,decls:6,vars:6,consts:[[1,"edge"],[1,"interactive-edge",3,"click"],[3,"ngTemplateOutlet","ngTemplateOutletContext","ngTemplateOutletInjector"],["edgeLabel","",3,"model","point","edgeModel","htmlTemplate"],["r","10",1,"reconnect-handle"],["r","10",1,"reconnect-handle",3,"pointerStart"]],template:function(i,n){if(i&1&&ne(0,ysA,2,6)(1,vsA,1,1)(2,MsA,1,1)(3,ksA,1,1)(4,_sA,1,1)(5,LsA,2,2),i&2){let o,r,s;$(n.model().type==="default"?0:-1),y(),$(n.model().type==="template"&&n.edgeTemplate()?1:-1),y(),$((o=n.model().edgeLabels.start)?2:-1,o),y(),$((r=n.model().edgeLabels.center)?3:-1,r),y(),$((s=n.model().edgeLabels.end)?4:-1,s),y(),$(n.model().sourceHandle()&&n.model().targetHandle()?5:-1)}},dependencies:[nl,ucA,Gz],styles:[".edge[_ngcontent-%COMP%]{fill:none;stroke-width:2;stroke:#b1b1b7}.edge_selected[_ngcontent-%COMP%]{stroke-width:2.5;stroke:#0f4c75}.interactive-edge[_ngcontent-%COMP%]{fill:none;stroke-width:20;stroke:transparent}.reconnect-handle[_ngcontent-%COMP%]{fill:transparent;cursor:move}"],changeDetection:0})}}return t})(),Nz=(()=>{class t{constructor(){this.node=mA(null)}createHandle(e){let i=this.node();i&&i.handles.update(n=>[...n,e])}destroyHandle(e){let i=this.node();i&&i.handles.update(n=>n.filter(o=>o!==e))}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return XQ([GS],t.prototype,"createHandle",null),t})(),BcA=(()=>{class t{constructor(){this.handleModel=lt.required({alias:"handleSizeController"}),this.handleWrapper=E(eA)}ngAfterViewInit(){let e=this.handleWrapper.nativeElement,i=e.getBBox(),n=EcA(e);this.handleModel().size.set({width:i.width+n,height:i.height+n})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["","handleSizeController",""]],inputs:{handleModel:[1,"handleSizeController","handleModel"]}})}}return t})();function EcA(t){let A=t.firstElementChild;if(A){let e=getComputedStyle(A).strokeWidth,i=Number(e.replace("px",""));return isNaN(i)?0:i}return 0}var fcA=(()=>{class t{constructor(){this.selected=lt(!1)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=xe({type:t,selectors:[["default-node"]],hostVars:2,hostBindings:function(i,n){i&2&&iA("selected",n.selected())},inputs:{selected:[1,"selected"]},ngContentSelectors:nBe,decls:1,vars:0,template:function(i,n){i&1&&(Kt(),NA(0))},styles:["[_nghost-%COMP%]{border:1.5px solid #1b262c;border-radius:5px;display:flex;align-items:center;justify-content:center;color:#000;background-color:#fff}.selected[_nghost-%COMP%]{border-width:2px}"],changeDetection:0})}}return t})(),QcA=(()=>{class t{get model(){return this.nodeAccessor.model()}constructor(){this.nodeAccessor=E(_Q),this.rootPointer=E(TS),this.viewportService=E(Mh),this.spacePointContext=E(X6),this.settingsService=E(Ja),this.hostRef=E(eA),this.resizable=lt(),this.resizerColor=lt("#2e414c"),this.gap=lt(1.5),this.resizer=es.required("resizer"),this.lineGap=3,this.handleSize=6,this.resizeSide=null,this.zoom=ot(()=>this.viewportService.readableViewport().zoom??0),this.minWidth=0,this.minHeight=0,this.maxWidth=1/0,this.maxHeight=1/0,this.resizeOnGlobalMouseMove=this.rootPointer.pointerMovement$.pipe($A(()=>this.resizeSide!==null),$A(e=>e.movementX!==0||e.movementY!==0),Pt(e=>this.resize(e)),va()).subscribe(),this.endResizeOnGlobalMouseUp=this.rootPointer.documentPointerEnd$.pipe(Pt(()=>this.endResize()),va()).subscribe(),pa(()=>{let e=this.resizable();typeof e=="boolean"?this.model.resizable.set(e):this.model.resizable.set(!0)},{allowSignalWrites:!0})}ngOnInit(){this.model.controlledByResizer.set(!0),this.model.resizerTemplate.set(this.resizer())}ngOnDestroy(){this.model.controlledByResizer.set(!1)}ngAfterViewInit(){this.minWidth=+getComputedStyle(this.hostRef.nativeElement).minWidth.replace("px","")||0,this.minHeight=+getComputedStyle(this.hostRef.nativeElement).minHeight.replace("px","")||0,this.maxWidth=+getComputedStyle(this.hostRef.nativeElement).maxWidth.replace("px","")||1/0,this.maxHeight=+getComputedStyle(this.hostRef.nativeElement).maxHeight.replace("px","")||1/0}startResize(e,i){i.stopPropagation(),this.resizeSide=e,this.model.resizing.set(!0)}resize(e){if(!this.resizeSide)return;let i=mcA(e.movementX,e.movementY,this.zoom()),n=this.applyResize(this.resizeSide,this.model,i,this.getDistanceToEdge(e)),{x:o,y:r,width:s,height:a}=pcA(n,this.model,this.resizeSide,this.minWidth,this.minHeight,this.maxWidth,this.maxHeight);this.model.setPoint({x:o,y:r}),this.model.width.set(s),this.model.height.set(a)}endResize(){this.resizeSide=null,this.model.resizing.set(!1)}getDistanceToEdge(e){let i=this.spacePointContext.documentPointToFlowPoint({x:e.x,y:e.y}),{x:n,y:o}=this.model.globalPoint();return{left:i.x-n,right:i.x-(n+this.model.width()),top:i.y-o,bottom:i.y-(o+this.model.height())}}applyResize(e,i,n,o){let{x:r,y:s}=i.point(),a=i.width(),c=i.height(),[l,d]=this.settingsService.snapGrid();switch(e){case"left":{let C=n.x+o.left,I=Pc(r+C,l),u=I-r;return{x:I,y:s,width:a-u,height:c}}case"right":{let C=n.x+o.right,I=Pc(a+C,l);return{x:r,y:s,width:I,height:c}}case"top":{let C=n.y+o.top,I=Pc(s+C,d),u=I-s;return{x:r,y:I,width:a,height:c-u}}case"bottom":{let C=n.y+o.bottom,I=Pc(c+C,d);return{x:r,y:s,width:a,height:I}}case"top-left":{let C=n.x+o.left,I=n.y+o.top,u=Pc(r+C,l),h=Pc(s+I,d),B=u-r,f=h-s;return{x:u,y:h,width:a-B,height:c-f}}case"top-right":{let C=n.x+o.right,I=n.y+o.top,u=Pc(s+I,d),h=u-s;return{x:r,y:u,width:Pc(a+C,l),height:c-h}}case"bottom-left":{let C=n.x+o.left,I=n.y+o.bottom,u=Pc(r+C,l),h=u-r;return{x:u,y:s,width:a-h,height:Pc(c+I,d)}}case"bottom-right":{let C=n.x+o.right,I=n.y+o.bottom;return{x:r,y:s,width:Pc(a+C,l),height:Pc(c+I,d)}}}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=xe({type:t,selectors:[["","resizable",""]],viewQuery:function(i,n){i&1&&Kr(n.resizer,FsA,5),i&2&&Aa()},inputs:{resizable:[1,"resizable"],resizerColor:[1,"resizerColor"],gap:[1,"gap"]},attrs:GsA,ngContentSelectors:nBe,decls:3,vars:0,consts:[["resizer",""],["stroke-width","2",1,"top",3,"pointerStart"],["stroke-width","2",1,"left",3,"pointerStart"],["stroke-width","2",1,"bottom",3,"pointerStart"],["stroke-width","2",1,"right",3,"pointerStart"],[1,"top-left",3,"pointerStart"],[1,"top-right",3,"pointerStart"],[1,"bottom-left",3,"pointerStart"],[1,"bottom-right",3,"pointerStart"]],template:function(i,n){i&1&&(Kt(),ne(0,KsA,9,40,"ng-template",null,0,a2),NA(2))},dependencies:[Gz],styles:[".top[_ngcontent-%COMP%]{cursor:n-resize}.left[_ngcontent-%COMP%]{cursor:w-resize}.right[_ngcontent-%COMP%]{cursor:e-resize}.bottom[_ngcontent-%COMP%]{cursor:s-resize}.top-left[_ngcontent-%COMP%]{cursor:nw-resize}.top-right[_ngcontent-%COMP%]{cursor:ne-resize}.bottom-left[_ngcontent-%COMP%]{cursor:sw-resize}.bottom-right[_ngcontent-%COMP%]{cursor:se-resize}"],changeDetection:0})}}return XQ([GS],t.prototype,"ngAfterViewInit",null),t})();function mcA(t,A,e){return{x:xS(t/e),y:xS(A/e)}}function pcA(t,A,e,i,n,o,r){let{x:s,y:a,width:c,height:l}=t;c=Math.max(c,0),l=Math.max(l,0),c=Math.max(i,c),l=Math.max(n,l),c=Math.min(o,c),l=Math.min(r,l),s=Math.min(s,A.point().x+A.width()-i),a=Math.min(a,A.point().y+A.height()-n),s=Math.max(s,A.point().x+A.width()-o),a=Math.max(a,A.point().y+A.height()-r);let d=A.parent();if(d){let I=d.width(),u=d.height(),h=A.point().x,B=A.point().y;s=Math.max(s,0),a=Math.max(a,0),e.includes("left")&&s===0&&(c=Math.min(c,h+A.width())),e.includes("top")&&a===0&&(l=Math.min(l,B+A.height())),c=Math.min(c,I-s),l=Math.min(l,u-a)}let C=oBe(A.children());return C&&(e.includes("left")&&(s=Math.min(s,A.point().x+A.width()-(C.x+C.width)),c=Math.max(c,C.x+C.width)),e.includes("right")&&(c=Math.max(c,C.x+C.width)),e.includes("bottom")&&(l=Math.max(l,C.y+C.height)),e.includes("top")&&(a=Math.min(a,A.point().y+A.height()-(C.y+C.height)),l=Math.max(l,C.y+C.height))),{x:s,y:a,width:c,height:l}}var Lz=class{constructor(A,e){this.rawHandle=A,this.parentNode=e,this.strokeWidth=2,this.size=mA({width:10+2*this.strokeWidth,height:10+2*this.strokeWidth}),this.pointAbsolute=ot(()=>({x:this.parentNode.globalPoint().x+this.hostOffset().x+this.sizeOffset().x,y:this.parentNode.globalPoint().y+this.hostOffset().y+this.sizeOffset().y})),this.state=mA("idle"),this.updateHostSizeAndPosition$=new je,this.hostSize=_g(this.updateHostSizeAndPosition$.pipe(aA(()=>this.getHostSize())),{initialValue:{width:0,height:0}}),this.hostPosition=_g(this.updateHostSizeAndPosition$.pipe(aA(()=>({x:this.hostReference instanceof HTMLElement?this.hostReference.offsetLeft:0,y:this.hostReference instanceof HTMLElement?this.hostReference.offsetTop:0}))),{initialValue:{x:0,y:0}}),this.hostOffset=ot(()=>{switch(this.rawHandle.position){case"left":return{x:-this.rawHandle.userOffsetX,y:-this.rawHandle.userOffsetY+this.hostPosition().y+this.hostSize().height/2};case"right":return{x:-this.rawHandle.userOffsetX+this.parentNode.size().width,y:-this.rawHandle.userOffsetY+this.hostPosition().y+this.hostSize().height/2};case"top":return{x:-this.rawHandle.userOffsetX+this.hostPosition().x+this.hostSize().width/2,y:-this.rawHandle.userOffsetY};case"bottom":return{x:-this.rawHandle.userOffsetX+this.hostPosition().x+this.hostSize().width/2,y:-this.rawHandle.userOffsetY+this.parentNode.size().height}}}),this.sizeOffset=ot(()=>{switch(this.rawHandle.position){case"left":return{x:-(this.size().width/2),y:0};case"right":return{x:this.size().width/2,y:0};case"top":return{x:0,y:-(this.size().height/2)};case"bottom":return{x:0,y:this.size().height/2}}}),this.hostReference=this.rawHandle.hostReference,this.template=this.rawHandle.template,this.templateContext={$implicit:{point:this.hostOffset,state:this.state,node:this.parentNode.rawNode}}}updateHost(){this.updateHostSizeAndPosition$.next()}getHostSize(){return this.hostReference instanceof HTMLElement?{width:this.hostReference.offsetWidth,height:this.hostReference.offsetHeight}:this.hostReference instanceof SVGGraphicsElement?this.hostReference.getBBox():{width:0,height:0}}},Kz=(()=>{class t{constructor(){this.injector=E(Dt),this.handleService=E(Nz),this.element=E(eA).nativeElement,this.destroyRef=E(Fr),this.position=lt.required(),this.type=lt.required(),this.id=lt(),this.template=lt(),this.offsetX=lt(0),this.offsetY=lt(0)}ngOnInit(){Xr(this.injector,()=>{let e=this.handleService.node();if(e){let i=new Lz({position:this.position(),type:this.type(),id:this.id(),hostReference:this.element.parentElement,template:this.template(),userOffsetX:this.offsetX(),userOffsetY:this.offsetY()},e);this.handleService.createHandle(i),requestAnimationFrame(()=>i.updateHost()),this.destroyRef.onDestroy(()=>this.handleService.destroyHandle(i))}})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=xe({type:t,selectors:[["handle"]],inputs:{position:[1,"position"],type:[1,"type"],id:[1,"id"],template:[1,"template"],offsetX:[1,"offsetX"],offsetY:[1,"offsetY"]},decls:0,vars:0,template:function(i,n){},encapsulation:2,changeDetection:0})}}return t})(),wcA=(()=>{class t{constructor(){this.nodeAccessor=E(_Q),this.zone=E(yA),this.destroyRef=E(Fr),this.hostElementRef=E(eA)}ngOnInit(){this.nodeAccessor.model().handles$.pipe(Si(i=>OS([...i.map(n=>n.hostReference),this.hostElementRef.nativeElement],this.zone).pipe(aA(()=>i))),Pt(i=>{i.forEach(n=>n.updateHost())}),va(this.destroyRef)).subscribe()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["","nodeHandlesController",""]]})}}return t})(),ycA=(()=>{class t{constructor(){this.nodeAccessor=E(_Q),this.zone=E(yA),this.destroyRef=E(Fr),this.hostElementRef=E(eA)}ngOnInit(){let e=this.nodeAccessor.model(),i=this.hostElementRef.nativeElement;Bi(OS([i],this.zone)).pipe(In(null),$A(()=>!e.resizing()),Pt(()=>{e.width.set(i.clientWidth),e.height.set(i.clientHeight)}),va(this.destroyRef)).subscribe()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["","nodeResizeController",""]]})}}return t})(),IBe=(()=>{class t{constructor(){this.injector=E(Dt),this.handleService=E(Nz),this.draggableService=E(rBe),this.flowStatusService=E(QI),this.nodeRenderingService=E(Sh),this.flowSettingsService=E(Ja),this.selectionService=E(A8),this.hostRef=E(eA),this.nodeAccessor=E(_Q),this.overlaysService=E(lBe),this.connectionController=E(dBe,{optional:!0}),this.model=lt.required(),this.nodeTemplate=lt(),this.nodeSvgTemplate=lt(),this.groupNodeTemplate=lt(),this.showMagnet=ot(()=>this.flowStatusService.status().state==="connection-start"||this.flowStatusService.status().state==="connection-validation"||this.flowStatusService.status().state==="reconnection-start"||this.flowStatusService.status().state==="reconnection-validation"),this.toolbars=ot(()=>this.overlaysService.nodeToolbarsMap().get(this.model()))}ngOnInit(){this.model().isVisible.set(!0),this.nodeAccessor.model.set(this.model()),this.handleService.node.set(this.model()),pa(()=>{this.model().draggable()?this.draggableService.enable(this.hostRef.nativeElement,this.model()):this.draggableService.disable(this.hostRef.nativeElement)},{injector:this.injector})}ngOnDestroy(){this.model().isVisible.set(!1),this.draggableService.destroy(this.hostRef.nativeElement)}startConnection(e,i){e.stopPropagation(),this.connectionController?.startConnection(i)}validateConnection(e){this.connectionController?.validateConnection(e)}resetValidateConnection(e){this.connectionController?.resetValidateConnection(e)}endConnection(){this.connectionController?.endConnection()}pullNode(){this.flowSettingsService.elevateNodesOnSelect()&&this.nodeRenderingService.pullNode(this.model())}selectNode(){this.flowSettingsService.entitiesSelectable()&&this.selectionService.select(this.model())}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=xe({type:t,selectors:[["g","node",""]],hostAttrs:[1,"vflow-node"],inputs:{model:[1,"model"],nodeTemplate:[1,"nodeTemplate"],nodeSvgTemplate:[1,"nodeSvgTemplate"],groupNodeTemplate:[1,"groupNodeTemplate"]},features:[gt([Nz,_Q])],attrs:UsA,decls:11,vars:7,consts:[[1,"selectable"],["nodeHandlesController","",1,"selectable"],["rx","5","ry","5",1,"default-group-node",3,"resizable","gap","resizerColor","default-group-node_selected","stroke","fill"],[1,"selectable",3,"click"],["nodeHandlesController","",3,"selected"],[3,"outerHTML"],["type","source","position","right"],["type","target","position","left"],["nodeHandlesController","","nodeResizeController","",1,"wrapper"],[3,"ngTemplateOutlet","ngTemplateOutletContext","ngTemplateOutletInjector"],["nodeHandlesController","",1,"selectable",3,"click"],[3,"ngComponentOutlet","ngComponentOutletInputs","ngComponentOutletInjector"],["rx","5","ry","5",1,"default-group-node",3,"click","resizable","gap","resizerColor"],[3,"ngTemplateOutlet"],["r","5",1,"default-handle"],[3,"handleSizeController"],[1,"magnet"],["r","5",1,"default-handle",3,"pointerStart","pointerEnd"],[3,"pointerStart","pointerEnd","handleSizeController"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"magnet",3,"pointerEnd","pointerOver","pointerOut"]],template:function(i,n){if(i&1&&(ne(0,TsA,5,12,":svg:foreignObject",0)(1,OsA,3,9,":svg:foreignObject",0)(2,JsA,2,3,":svg:g",1)(3,HsA,2,3)(4,zsA,1,11,":svg:rect",2)(5,PsA,2,3,":svg:g",1)(6,qsA,1,1),Rt(7,AaA,4,4,null,null,Fi),Rt(9,taA,2,4,":svg:foreignObject",null,Fi)),i&2){let o;$(n.model().rawNode.type==="default"?0:-1),y(),$(n.model().rawNode.type==="html-template"&&n.nodeTemplate()?1:-1),y(),$(n.model().rawNode.type==="svg-template"&&n.nodeSvgTemplate()?2:-1),y(),$(n.model().isComponentType?3:-1),y(),$(n.model().rawNode.type==="default-group"?4:-1),y(),$(n.model().rawNode.type==="template-group"&&n.groupNodeTemplate()?5:-1),y(),$((o=n.model().resizerTemplate())?6:-1,o),y(),Nt(n.model().handles()),y(2),Nt(n.toolbars())}},dependencies:[Gz,fcA,Kz,nl,YI,QcA,BcA,wcA,ycA,ts],styles:[".magnet[_ngcontent-%COMP%]{opacity:0}.wrapper[_ngcontent-%COMP%]{display:table-cell}.default-group-node[_ngcontent-%COMP%]{stroke-width:1.5px;fill-opacity:.05}.default-group-node_selected[_ngcontent-%COMP%]{stroke-width:2px}.default-handle[_ngcontent-%COMP%]{stroke:#fff;fill:#1b262c}"],changeDetection:0})}}return t})(),DcA=(()=>{class t{constructor(){this.flowStatusService=E(QI),this.spacePointContext=E(X6),this.flowEntitiesService=E(jc),this.model=lt.required(),this.template=lt(),this.path=ot(()=>{let e=this.flowStatusService.status(),i=this.model().curve;if(e.state==="connection-start"||e.state==="reconnection-start"){let n=e.payload.sourceHandle,o=n.pointAbsolute(),r=n.rawHandle.position,s=this.spacePointContext.svgCurrentSpacePoint(),a=$he(n.rawHandle.position),c=this.getPathFactoryParams(o,s,r,a);switch(i){case"straight":return Sz(c).path;case"bezier":return kz(c).path;case"smooth-step":return kQ(c).path;case"step":return kQ(c,0).path;default:return i(c).path}}if(e.state==="connection-validation"||e.state==="reconnection-validation"){let n=e.payload.sourceHandle,o=n.pointAbsolute(),r=n.rawHandle.position,s=e.payload.targetHandle,a=e.payload.valid?s.pointAbsolute():this.spacePointContext.svgCurrentSpacePoint(),c=e.payload.valid?s.rawHandle.position:$he(n.rawHandle.position),l=this.getPathFactoryParams(o,a,r,c);switch(i){case"straight":return Sz(l).path;case"bezier":return kz(l).path;case"smooth-step":return kQ(l).path;case"step":return kQ(l,0).path;default:return i(l).path}}return null}),this.markerUrl=ot(()=>{let e=this.model().settings.marker;return e?`url(#${xQ(JSON.stringify(e))})`:""}),this.defaultColor="rgb(177, 177, 183)"}getContext(){return{$implicit:{path:this.path,marker:this.markerUrl}}}getPathFactoryParams(e,i,n,o){return{mode:"connection",sourcePoint:e,targetPoint:i,sourcePosition:n,targetPosition:o,allEdges:this.flowEntitiesService.rawEdges(),allNodes:this.flowEntitiesService.rawNodes()}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=xe({type:t,selectors:[["g","connection",""]],inputs:{model:[1,"model"],template:[1,"template"]},attrs:iaA,decls:2,vars:2,consts:[["fill","none","stroke-width","2"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(i,n){i&1&&ne(0,oaA,1,1)(1,aaA,1,1),i&2&&($(n.model().type==="default"?0:-1),y(),$(n.model().type==="template"?1:-1))},dependencies:[nl],encapsulation:2,changeDetection:0})}}return t})();function $he(t){switch(t){case"top":return"bottom";case"bottom":return"top";case"left":return"right";case"right":return"left"}}function vcA(){return String.fromCharCode(65+Math.floor(Math.random()*26))+Date.now()}var bcA="#fff",McA=20,ScA=2,eBe="rgb(177, 177, 183)",ABe=.1,kcA=!0,xcA=(()=>{class t{constructor(){this.viewportService=E(Mh),this.rootSvg=E(US).element,this.settingsService=E(Ja),this.backgroundSignal=this.settingsService.background,this.scaledGap=ot(()=>{let e=this.backgroundSignal();return e.type==="dots"?this.viewportService.readableViewport().zoom*(e.gap??McA):0}),this.x=ot(()=>this.viewportService.readableViewport().x%this.scaledGap()),this.y=ot(()=>this.viewportService.readableViewport().y%this.scaledGap()),this.patternColor=ot(()=>{let e=this.backgroundSignal();return e.type==="dots"?e.color??eBe:eBe}),this.patternSize=ot(()=>{let e=this.backgroundSignal();return e.type==="dots"?this.viewportService.readableViewport().zoom*(e.size??ScA)/2:0}),this.bgImageSrc=ot(()=>{let e=this.backgroundSignal();return e.type==="image"?e.src:""}),this.imageSize=e8(vo(this.backgroundSignal).pipe(Si(()=>_cA(this.bgImageSrc())),aA(e=>({width:e.naturalWidth,height:e.naturalHeight}))),{initialValue:{width:0,height:0}}),this.scaledImageWidth=ot(()=>{let e=this.backgroundSignal();if(e.type==="image"){let i=e.fixed?1:this.viewportService.readableViewport().zoom;return this.imageSize().width*i*(e.scale??ABe)}return 0}),this.scaledImageHeight=ot(()=>{let e=this.backgroundSignal();if(e.type==="image"){let i=e.fixed?1:this.viewportService.readableViewport().zoom;return this.imageSize().height*i*(e.scale??ABe)}return 0}),this.imageX=ot(()=>{let e=this.backgroundSignal();return e.type==="image"?e.repeat?e.fixed?0:this.viewportService.readableViewport().x%this.scaledImageWidth():e.fixed?0:this.viewportService.readableViewport().x:0}),this.imageY=ot(()=>{let e=this.backgroundSignal();return e.type==="image"?e.repeat?e.fixed?0:this.viewportService.readableViewport().y%this.scaledImageHeight():e.fixed?0:this.viewportService.readableViewport().y:0}),this.repeated=ot(()=>{let e=this.backgroundSignal();return e.type==="image"&&(e.repeat??kcA)}),this.patternId=vcA(),this.patternUrl=`url(#${this.patternId})`,pa(()=>{let e=this.backgroundSignal();e.type==="dots"&&(this.rootSvg.style.backgroundColor=e.backgroundColor??bcA),e.type==="solid"&&(this.rootSvg.style.backgroundColor=e.color)})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=xe({type:t,selectors:[["g","background",""]],attrs:caA,decls:2,vars:2,consts:[["patternUnits","userSpaceOnUse"],["x","0","y","0","width","100%","height","100%"]],template:function(i,n){i&1&&ne(0,laA,3,10)(1,CaA,2,2),i&2&&($(n.backgroundSignal().type==="dots"?0:-1),y(),$(n.backgroundSignal().type==="image"?1:-1))},encapsulation:2,changeDetection:0})}}return t})();function _cA(t){let A=new Image;return A.src=t,new Promise(e=>{A.onload=()=>e(A)})}var RcA=(()=>{class t{constructor(){this.markers=lt.required(),this.defaultColor="rgb(177, 177, 183)"}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=xe({type:t,selectors:[["defs","flowDefs",""]],inputs:{markers:[1,"markers"]},attrs:IaA,decls:3,vars:2,consts:[["viewBox","-10 -10 20 20","refX","0","refY","0"],["points","-5,-4 1,0 -5,4 -5,-4",1,"marker__arrow_closed",3,"stroke","stroke-width","fill"],["points","-5,-4 0,0 -5,4",1,"marker__arrow_default",3,"stroke","stroke-width"],["points","-5,-4 1,0 -5,4 -5,-4",1,"marker__arrow_closed"],["points","-5,-4 0,0 -5,4",1,"marker__arrow_default"]],template:function(i,n){i&1&&(Rt(0,BaA,3,7,":svg:marker",0,Fi),Ii(2,"keyvalue")),i&2&&Nt(Qi(2,0,n.markers()))},dependencies:[HI],styles:[".marker__arrow_default[_ngcontent-%COMP%]{stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;fill:none}.marker__arrow_closed[_ngcontent-%COMP%]{stroke-linecap:round;stroke-linejoin:round}"],changeDetection:0})}}return t})(),NcA=(()=>{class t{constructor(){this.host=E(eA),this.flowSettingsService=E(Ja),this.flowWidth=ot(()=>{let e=this.flowSettingsService.view();return e==="auto"?"100%":e[0]}),this.flowHeight=ot(()=>{let e=this.flowSettingsService.view();return e==="auto"?"100%":e[1]}),OS([this.host.nativeElement],E(yA)).pipe(Pt(([e])=>{this.flowSettingsService.computedFlowWidth.set(e.contentRect.width),this.flowSettingsService.computedFlowHeight.set(e.contentRect.height)}),va()).subscribe()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["svg","flowSizeController",""]],hostVars:2,hostBindings:function(i,n){i&2&&AA("width",n.flowWidth())("height",n.flowHeight())}})}}return t})(),LcA=(()=>{class t{constructor(){this.flowStatusService=E(QI)}resetConnection(){let e=this.flowStatusService.status();(e.state==="connection-start"||e.state==="reconnection-start")&&this.flowStatusService.setIdleStatus()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["svg","rootSvgContext",""]],hostBindings:function(i,n){i&1&&ee("mouseup",function(){return n.resetConnection()},!1,n2)("touchend",function(){return n.resetConnection()},!1,n2)("contextmenu",function(){return n.resetConnection()})}})}}return t})();function Fz(t,A){let e=[];for(let i of A){let{x:n,y:o}=i.globalPoint();t.x>=n&&t.x<=n+i.width()&&t.y>=o&&t.y<=o+i.height()&&e.push({x:t.x-n,y:t.y-o,spaceNodeId:i.rawNode.id})}return e.reverse(),e.push({spaceNodeId:null,x:t.x,y:t.y}),e}var Uz=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return t})(),FcA=(()=>{class t extends Uz{shouldRenderNode(e){return!e.isVisible()}static{this.\u0275fac=(()=>{let e;return function(n){return(e||(e=ii(t)))(n||t)}})()}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return t})();function GcA(t,A){if(Object.keys(A.preview().style).length){TcA(t,A);return}if(A.rawNode.type==="default"){KcA(t,A);return}if(A.rawNode.type==="default-group"){UcA(t,A);return}OcA(t,A)}function KcA(t,A){let e=A.globalPoint(),i=A.width(),n=A.height();uBe(t,A,5),t.fillStyle="white",t.fill(),t.strokeStyle="#1b262c",t.lineWidth=1.5,t.stroke(),t.fillStyle="black",t.font="14px Arial",t.textAlign="center",t.textBaseline="middle";let o=e.x+i/2,r=e.y+n/2;t.fillText(A.text(),o,r)}function UcA(t,A){let e=A.globalPoint(),i=A.width(),n=A.height();t.globalAlpha=.05,t.fillStyle=A.color(),t.fillRect(e.x,e.y,i,n),t.globalAlpha=1,t.strokeStyle=A.color(),t.lineWidth=1.5,t.strokeRect(e.x,e.y,i,n)}function TcA(t,A){let e=A.globalPoint(),i=A.width(),n=A.height(),o=A.preview().style;if(o.borderRadius){let r=parseFloat(o.borderRadius);uBe(t,A,r)}else t.beginPath(),t.rect(e.x,e.y,i,n),t.closePath();o.backgroundColor&&(t.fillStyle=o.backgroundColor),o.borderColor&&(t.strokeStyle=o.borderColor),o.borderWidth&&(t.lineWidth=parseFloat(o.borderWidth)),t.fill(),t.stroke()}function OcA(t,A){let e=A.globalPoint(),i=A.width(),n=A.height();t.fillStyle="rgb(0 0 0 / 10%)",t.fillRect(e.x,e.y,i,n)}function uBe(t,A,e){let i=A.globalPoint(),n=A.width(),o=A.height();t.beginPath(),t.moveTo(i.x+e,i.y),t.lineTo(i.x+n-e,i.y),t.quadraticCurveTo(i.x+n,i.y,i.x+n,i.y+e),t.lineTo(i.x+n,i.y+o-e),t.quadraticCurveTo(i.x+n,i.y+o,i.x+n-e,i.y+o),t.lineTo(i.x+e,i.y+o),t.quadraticCurveTo(i.x,i.y+o,i.x,i.y+o-e),t.lineTo(i.x,i.y+e),t.quadraticCurveTo(i.x,i.y,i.x+e,i.y),t.closePath()}var JcA=(()=>{class t{constructor(){this.viewportService=E(Mh),this.renderStrategy=E(Uz),this.nodeRenderingService=E(Sh),this.renderer2=E(an),this.element=E(eA).nativeElement,this.ctx=this.element.getContext("2d"),this.width=lt(0),this.height=lt(0),this.dpr=window.devicePixelRatio,pa(()=>{this.renderer2.setProperty(this.element,"width",this.width()*this.dpr),this.renderer2.setProperty(this.element,"height",this.height()*this.dpr),this.renderer2.setStyle(this.element,"width",`${this.width()}px`),this.renderer2.setStyle(this.element,"height",`${this.height()}px`),this.ctx.scale(this.dpr,this.dpr)}),pa(()=>{let e=this.viewportService.readableViewport();this.ctx.clearRect(0,0,this.width(),this.height()),this.ctx.save(),this.ctx.setTransform(e.zoom*this.dpr,0,0,e.zoom*this.dpr,e.x*this.dpr,e.y*this.dpr);for(let i=0;i{class t{constructor(){this.nodeRenderingService=E(Sh),this.edgeRenderingService=E(KS),this.flowEntitiesService=E(jc),this.settingsService=E(Ja),this.flowInitialized=mA(!1),E(yA).runOutsideAngular(()=>Ci(this,null,function*(){yield YcA(2),this.flowInitialized.set(!0)}))}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=be({token:t,factory:t.\u0275fac})}}return t})();function YcA(t){return new Promise(A=>{let e=0;function i(){e++,e{class t{constructor(){this.nodeRenderingService=E(Sh),this.flowStatus=E(QI),this.tolerance=lt(10),this.lineColor=lt("#1b262c"),this.isNodeDragging=ot(()=>Yhe(this.flowStatus.status())),this.intersections=LS(e=>{let i=this.flowStatus.status();if(Yhe(i)){let n=i.payload.node,o=iBe(SS(n)),r=this.nodeRenderingService.viewportNodes().filter(C=>C!==n).filter(C=>!n.children().includes(C)).map(C=>iBe(SS(C))),s=[],a=o.x,c=o.y,l=1/0,d=1/0;return r.forEach(C=>{let I=o.left+o.width/2,u=C.left+C.width/2;for(let[f,b,k,S]of[[I,u,u-o.width/2,!0],[o.left,C.left,C.left,!1],[o.left,C.right,C.right,!1],[o.right,C.left,C.left-o.width,!1],[o.right,C.right,C.right-o.width,!1]]){let w=Math.abs(f-b);if(w<=this.tolerance()){let _=Math.min(o.top,C.top),K=Math.max(o.bottom,C.bottom);if(s.push({x:b,y:_,x2:b,y2:K,isCenter:S}),we.payload.node),aA(e=>[e,this.intersections()]),Pt(([e,i])=>{if(i){let n={x:i.snappedX,y:i.snappedY},o=e.parent()?[e.parent()]:[];e.setPoint(Fz(n,o)[0])}}),va()).subscribe()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=xe({type:t,selectors:[["g","alignmentHelper",""]],inputs:{tolerance:[1,"tolerance"],lineColor:[1,"lineColor"]},attrs:faA,decls:1,vars:1,template:function(i,n){i&1&&ne(0,paA,1,1),i&2&&$(n.isNodeDragging()?0:-1)},encapsulation:2,changeDetection:0})}}return t})();var hBe=(()=>{class t{constructor(){this.viewportService=E(Mh),this.flowEntitiesService=E(jc),this.nodesChangeService=E(_z),this.edgesChangeService=E(Rz),this.nodeRenderingService=E(Sh),this.edgeRenderingService=E(KS),this.flowSettingsService=E(Ja),this.componentEventBusService=E(Mz),this.keyboardService=E(bz),this.injector=E(Dt),this.flowRenderingService=E(tBe),this.alignmentHelper=lt(!1),this.nodeModels=this.nodeRenderingService.nodes,this.groups=this.nodeRenderingService.groups,this.nonGroups=this.nodeRenderingService.nonGroups,this.edgeModels=this.edgeRenderingService.edges,this.onComponentNodeEvent=Xn(this.componentEventBusService.event$),this.nodeTemplateDirective=o2(_S),this.nodeSvgTemplateDirective=o2(jhe),this.groupNodeTemplateDirective=o2(RS),this.edgeTemplateDirective=o2(Hhe),this.edgeLabelHtmlDirective=o2(Phe),this.connectionTemplateDirective=o2(zhe),this.mapContext=es(yz),this.spacePointContext=es.required(X6),this.viewport=this.viewportService.readableViewport.asReadonly(),this.nodesChange=e8(this.nodesChangeService.changes$,{initialValue:[]}),this.edgesChange=e8(this.edgesChangeService.changes$,{initialValue:[]}),this.initialized=this.flowRenderingService.flowInitialized.asReadonly(),this.viewportChange$=vo(this.viewportService.readableViewport).pipe(Pa(1)),this.nodesChange$=this.nodesChangeService.changes$,this.edgesChange$=this.edgesChangeService.changes$,this.initialized$=vo(this.flowRenderingService.flowInitialized),this.markers=this.flowEntitiesService.markers,this.minimap=this.flowEntitiesService.minimap,this.flowOptimization=this.flowSettingsService.optimization,this.flowWidth=this.flowSettingsService.computedFlowWidth,this.flowHeight=this.flowSettingsService.computedFlowHeight}set view(e){this.flowSettingsService.view.set(e)}set minZoom(e){this.flowSettingsService.minZoom.set(e)}set maxZoom(e){this.flowSettingsService.maxZoom.set(e)}set background(e){this.flowSettingsService.background.set(IcA(e))}set optimization(e){this.flowSettingsService.optimization.update(i=>ae(ae({},i),e))}set entitiesSelectable(e){this.flowSettingsService.entitiesSelectable.set(e)}set keyboardShortcuts(e){this.keyboardService.setShortcuts(e)}set connection(e){this.flowEntitiesService.connection.set(e)}get connection(){return this.flowEntitiesService.connection()}set snapGrid(e){this.flowSettingsService.snapGrid.set(e)}set elevateNodesOnSelect(e){this.flowSettingsService.elevateNodesOnSelect.set(e)}set elevateEdgesOnSelect(e){this.flowSettingsService.elevateEdgesOnSelect.set(e)}set nodes(e){let i=Xr(this.injector,()=>FS.nodes(e,this.flowEntitiesService.nodes()));Vhe(i,this.flowEntitiesService.edges()),this.flowEntitiesService.nodes.set(i),i.forEach(n=>this.nodeRenderingService.pullNode(n))}set edges(e){let i=Xr(this.injector,()=>FS.edges(e,this.flowEntitiesService.edges()));Vhe(this.flowEntitiesService.nodes(),i),this.flowEntitiesService.edges.set(i)}viewportTo(e){this.viewportService.writableViewport.set({changeType:"absolute",state:e,duration:0})}zoomTo(e){this.viewportService.writableViewport.set({changeType:"absolute",state:{zoom:e},duration:0})}panTo(e){this.viewportService.writableViewport.set({changeType:"absolute",state:e,duration:0})}fitView(e){this.viewportService.fitView(e)}getNode(e){return this.flowEntitiesService.getNode(e)?.rawNode}getDetachedEdges(){return this.flowEntitiesService.getDetachedEdges().map(e=>e.edge)}documentPointToFlowPoint(e,i){let n=this.spacePointContext().documentPointToFlowPoint(e);return i?.spaces?Fz(n,this.nodeRenderingService.groups()):n}getIntesectingNodes(e,i={partially:!0}){return FaA(e,this.nodeModels(),i).map(n=>n.rawNode)}toNodeSpace(e,i){let n=this.nodeModels().find(r=>r.rawNode.id===e);if(!n)return{x:1/0,y:1/0};if(i===null)return n.globalPoint();let o=this.nodeModels().find(r=>r.rawNode.id===i);return o?Fz(n.globalPoint(),[o])[0]:{x:1/0,y:1/0}}trackNodes(e,{rawNode:i}){return i}trackEdges(e,{edge:i}){return i}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=xe({type:t,selectors:[["vflow"]],contentQueries:function(i,n,o){i&1&&(r2(o,n.nodeTemplateDirective,_S,5),r2(o,n.nodeSvgTemplateDirective,jhe,5),r2(o,n.groupNodeTemplateDirective,RS,5),r2(o,n.edgeTemplateDirective,Hhe,5),r2(o,n.edgeLabelHtmlDirective,Phe,5),r2(o,n.connectionTemplateDirective,zhe,5)),i&2&&Aa(6)},viewQuery:function(i,n){i&1&&(Kr(n.mapContext,yz,5),Kr(n.spacePointContext,X6,5)),i&2&&Aa(2)},inputs:{view:"view",minZoom:"minZoom",maxZoom:"maxZoom",background:"background",optimization:"optimization",entitiesSelectable:"entitiesSelectable",keyboardShortcuts:"keyboardShortcuts",connection:[2,"connection","connection",e=>new kS(e)],snapGrid:"snapGrid",elevateNodesOnSelect:"elevateNodesOnSelect",elevateEdgesOnSelect:"elevateEdgesOnSelect",nodes:"nodes",alignmentHelper:[1,"alignmentHelper"],edges:"edges"},outputs:{onComponentNodeEvent:"onComponentNodeEvent"},features:[gt([rBe,Mh,QI,jc,_z,Rz,Sh,KS,A8,Ja,Mz,bz,lBe,{provide:Uz,useClass:FcA},tBe]),Hw([{directive:CcA,outputs:["onNodesChange","onNodesChange","onNodesChange.position","onNodesChange.position","onNodesChange.position.single","onNodesChange.position.single","onNodesChange.position.many","onNodesChange.position.many","onNodesChange.size","onNodesChange.size","onNodesChange.size.single","onNodesChange.size.single","onNodesChange.size.many","onNodesChange.size.many","onNodesChange.add","onNodesChange.add","onNodesChange.add.single","onNodesChange.add.single","onNodesChange.add.many","onNodesChange.add.many","onNodesChange.remove","onNodesChange.remove","onNodesChange.remove.single","onNodesChange.remove.single","onNodesChange.remove.many","onNodesChange.remove.many","onNodesChange.select","onNodesChange.select","onNodesChange.select.single","onNodesChange.select.single","onNodesChange.select.many","onNodesChange.select.many","onEdgesChange","onEdgesChange","onEdgesChange.detached","onEdgesChange.detached","onEdgesChange.detached.single","onEdgesChange.detached.single","onEdgesChange.detached.many","onEdgesChange.detached.many","onEdgesChange.add","onEdgesChange.add","onEdgesChange.add.single","onEdgesChange.add.single","onEdgesChange.add.many","onEdgesChange.add.many","onEdgesChange.remove","onEdgesChange.remove","onEdgesChange.remove.single","onEdgesChange.remove.single","onEdgesChange.remove.many","onEdgesChange.remove.many","onEdgesChange.select","onEdgesChange.select","onEdgesChange.select.single","onEdgesChange.select.single","onEdgesChange.select.many","onEdgesChange.select.many"]}])],decls:11,vars:8,consts:[["flow",""],["rootSvgRef","","rootSvgContext","","rootPointer","","flowSizeController","",1,"root-svg"],["flowDefs","",3,"markers"],["background",""],["mapContext","","spacePointContext",""],["connection","",3,"model","template"],[3,"ngTemplateOutlet"],["previewFlow","",1,"preview-flow",3,"width","height"],["alignmentHelper",""],["alignmentHelper","",3,"tolerance","lineColor"],["node","",3,"model","groupNodeTemplate"],["edge","",3,"model","edgeTemplate","edgeLabelHtmlTemplate"],["node","",3,"model","nodeTemplate","nodeSvgTemplate"],["node","",3,"model","nodeTemplate","nodeSvgTemplate","groupNodeTemplate"]],template:function(i,n){if(i&1&&(ft(),m(0,"svg",1,0),ve(2,"defs",2)(3,"g",3),m(4,"g",4),ne(5,DaA,2,1),ve(6,"g",5),ne(7,SaA,6,0)(8,_aA,4,0),p(),ne(9,RaA,1,1,":svg:ng-container",6),p(),ne(10,NaA,1,2,"canvas",7)),i&2){let o,r,s;y(2),te("markers",n.markers()),y(3),$((o=n.alignmentHelper())?5:-1,o),y(),te("model",n.connection)("template",(r=n.connectionTemplateDirective())==null?null:r.templateRef),y(),$(n.flowOptimization().detachedGroupsLayer?7:-1),y(),$(n.flowOptimization().detachedGroupsLayer?-1:8),y(),$((s=n.minimap())?9:-1,s),y(),$(n.flowOptimization().virtualization?10:-1)}},dependencies:[US,LcA,TS,NcA,RcA,xcA,yz,X6,DcA,IBe,CBe,nl,JcA,HcA],styles:["[_nghost-%COMP%]{display:grid;grid-template-columns:1fr;width:100%;height:100%;-webkit-user-select:none;user-select:none}[_nghost-%COMP%] *{box-sizing:border-box}.root-svg[_ngcontent-%COMP%]{grid-row-start:1;grid-column-start:1}.preview-flow[_ngcontent-%COMP%]{pointer-events:none;grid-row-start:1;grid-column-start:1}"],changeDetection:0})}}return t})();var BBe=(()=>{class t{constructor(){this.flowSettingsService=E(Ja),this.selectionService=E(A8),this.parentEdge=E(CBe,{optional:!0}),this.parentNode=E(IBe,{optional:!0}),this.host=E(eA),this.selectOnEvent=this.getEvent$().pipe(Pt(()=>this.select()),va()).subscribe()}select(){let e=this.entity();e&&this.flowSettingsService.entitiesSelectable()&&this.selectionService.select(e)}entity(){return this.parentNode?this.parentNode.model():this.parentEdge?this.parentEdge.model():null}getEvent$(){return Ya(this.host.nativeElement,"click")}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=Oe({type:t,selectors:[["","selectable",""]]})}}return t})();var PcA=["canvas"],jcA=["svgCanvas"],VcA=()=>({type:"dots",color:"#424242",size:1,gap:12}),qcA=()=>[12,12],WcA=(t,A)=>A.name;function ZcA(t,A){if(t&1){let e=Ue();m(0,"div",6)(1,"div",11)(2,"button",12),ee("click",function(){q(e);let n=M();return W(n.backToMainCanvas())}),m(3,"mat-icon"),T(4,"arrow_back"),p()(),m(5,"div",13)(6,"span",14),T(7,"smart_toy"),p(),m(8,"div",15)(9,"h3",16),T(10),p(),m(11,"p",17),T(12,"Agent Tool"),p()()()()()}if(t&2){let e=M();y(2),te("matTooltip",e.getBackButtonTooltip()),y(8),Pe(e.currentAgentTool())}}function XcA(t,A){if(t&1){let e=Ue();m(0,"span",18),ee("click",function(){q(e);let n=M();return W(n.toggleSidePanelRequest.emit())}),T(1,"left_panel_open"),p()}}function $cA(t,A){if(t&1){let e=Ue();ft(),m(0,"foreignObject"),$s(),m(1,"div",27),ee("click",function(n){return q(e),W(n.stopPropagation())}),m(2,"button",28,0),ee("click",function(n){return q(e),W(n.stopPropagation())}),m(4,"mat-icon"),T(5,"add"),p()(),m(6,"span",29),T(7,"Add sub-agent"),p(),m(8,"mat-menu",null,1)(10,"button",30),ee("click",function(n){let o;q(e);let r=Ji(3),s=M().$implicit,a=M(2);return W(a.handleAgentTypeSelection("LlmAgent",s.node.data==null||(o=s.node.data())==null?null:o.name,r,n,!0))}),m(11,"mat-icon"),T(12,"psychology"),p(),m(13,"span"),T(14,"LLM Agent"),p()(),m(15,"button",30),ee("click",function(n){let o;q(e);let r=Ji(3),s=M().$implicit,a=M(2);return W(a.handleAgentTypeSelection("SequentialAgent",s.node.data==null||(o=s.node.data())==null?null:o.name,r,n,!0))}),m(16,"mat-icon"),T(17,"more_horiz"),p(),m(18,"span"),T(19,"Sequential Agent"),p()(),m(20,"button",30),ee("click",function(n){let o;q(e);let r=Ji(3),s=M().$implicit,a=M(2);return W(a.handleAgentTypeSelection("LoopAgent",s.node.data==null||(o=s.node.data())==null?null:o.name,r,n,!0))}),m(21,"mat-icon"),T(22,"sync"),p(),m(23,"span"),T(24,"Loop Agent"),p()(),m(25,"button",30),ee("click",function(n){let o;q(e);let r=Ji(3),s=M().$implicit,a=M(2);return W(a.handleAgentTypeSelection("ParallelAgent",s.node.data==null||(o=s.node.data())==null?null:o.name,r,n,!0))}),m(26,"mat-icon"),T(27,"density_medium"),p(),m(28,"span"),T(29,"Parallel Agent"),p()()()()()}if(t&2){let e=Ji(9),i=M().$implicit;AA("width",200)("height",100)("x",i.width()/2-100)("y",i.height()/2-40),y(2),te("matMenuTriggerFor",e)}}function elA(t,A){t&1&&(ft(),ve(0,"handle",26))}function AlA(t,A){if(t&1){let e=Ue();ft(),m(0,"g")(1,"rect",21),ee("click",function(n){let o=q(e).$implicit,r=M(2);return W(r.onGroupClick(o.node,n))})("pointerdown",function(n){let o=q(e).$implicit,r=M(2);return W(r.onGroupPointerDown(o.node,n))}),p(),m(2,"foreignObject",22),$s(),m(3,"div",23)(4,"mat-icon",24),T(5),p(),m(6,"span",25),T(7),p()()(),ne(8,$cA,30,5,":svg:foreignObject")(9,elA,1,0,":svg:handle",26),p()}if(t&2){let e,i,n=A.$implicit,o=M(2);y(),cn("stroke",o.isGroupSelected(n.node)?"rgba(0, 187, 234, 0.8)":"rgba(0, 187, 234, 0.3)")("fill",o.isGroupSelected(n.node)?"rgba(0, 187, 234, 0.1)":"rgba(0, 187, 234, 0.03)")("stroke-width",o.isGroupSelected(n.node)?3:2),AA("width",n.width())("height",n.height()),y(),AA("width",200)("height",32),y(3),Pe(o.getAgentIcon(n.node.data==null||(e=n.node.data())==null?null:e.agent_class)),y(2),Pe(n.node.data==null||(i=n.node.data())==null?null:i.agent_class),y(),$(o.isGroupEmpty(n.node.id)?8:-1),y(),$(o.shouldShowTopHandle(n.node)?9:-1)}}function tlA(t,A){t&1&&(m(0,"span",35),T(1,"Root"),p())}function ilA(t,A){if(t&1){let e=Ue();m(0,"button",43),ee("click",function(n){q(e),M();let o=s2(1);return M(2).openDeleteSubAgentDialog(o),W(n.stopPropagation())}),m(1,"mat-icon"),T(2,"delete"),p()()}}function nlA(t,A){if(t&1){let e=Ue();m(0,"div",46),ee("click",function(n){let o=q(e).$implicit,r=M(2).$implicit;return M(2).selectTool(o,r.node),W(n.stopPropagation())}),m(1,"mat-icon",47),T(2),p(),m(3,"span",48),T(4),p()()}if(t&2){let e=A.$implicit,i=M(4);y(2),Pe(i.getToolIcon(e)),y(2),Pe(e.name)}}function olA(t,A){if(t&1&&(m(0,"div",38)(1,"div",44),Rt(2,nlA,5,2,"div",45,WcA),p()()),t&2){M();let e=s2(4);y(2),Nt(e)}}function rlA(t,A){if(t&1){let e=Ue();m(0,"div",39)(1,"button",49,2),ee("click",function(n){return q(e),W(n.stopPropagation())}),m(3,"span",50),T(4,"+"),p()(),m(5,"mat-menu",null,3)(7,"button",30),ee("click",function(n){let o;q(e);let r=Ji(2),s=M().$implicit,a=M(2);return W(a.handleAgentTypeSelection("LlmAgent",(o=s.node.data())==null?null:o.name,r,n))}),m(8,"mat-icon"),T(9,"psychology"),p(),m(10,"span"),T(11,"LLM Agent"),p()(),m(12,"button",30),ee("click",function(n){let o;q(e);let r=Ji(2),s=M().$implicit,a=M(2);return W(a.handleAgentTypeSelection("SequentialAgent",(o=s.node.data())==null?null:o.name,r,n))}),m(13,"mat-icon"),T(14,"more_horiz"),p(),m(15,"span"),T(16,"Sequential Agent"),p()(),m(17,"button",30),ee("click",function(n){let o;q(e);let r=Ji(2),s=M().$implicit,a=M(2);return W(a.handleAgentTypeSelection("LoopAgent",(o=s.node.data())==null?null:o.name,r,n))}),m(18,"mat-icon"),T(19,"sync"),p(),m(20,"span"),T(21,"Loop Agent"),p()(),m(22,"button",30),ee("click",function(n){let o;q(e);let r=Ji(2),s=M().$implicit,a=M(2);return W(a.handleAgentTypeSelection("ParallelAgent",(o=s.node.data())==null?null:o.name,r,n))}),m(23,"mat-icon"),T(24,"density_medium"),p(),m(25,"span"),T(26,"Parallel Agent"),p()()()()}if(t&2){let e=Ji(6);y(),te("matMenuTriggerFor",e)}}function slA(t,A){t&1&&ve(0,"handle",40)}function alA(t,A){t&1&&ve(0,"handle",26)}function clA(t,A){t&1&&ve(0,"handle",41)}function llA(t,A){t&1&&ve(0,"handle",42)}function glA(t,A){if(t&1){let e=Ue();Wa(0)(1)(2),Ii(3,"async"),Wa(4)(5),m(6,"div",31),ee("click",function(n){let o=q(e).$implicit,r=M(2);return W(r.onCustomTemplateNodeClick(o.node,n))})("pointerdown",function(n){let o=q(e).$implicit,r=M(2);return W(r.onNodePointerDown(o.node,n))}),m(7,"div",32)(8,"div",33)(9,"mat-icon",34),T(10),p(),T(11),ne(12,tlA,2,0,"span",35),p(),m(13,"div",36),ne(14,ilA,3,0,"button",37),p()(),ne(15,olA,4,0,"div",38)(16,rlA,27,1,"div",39)(17,slA,1,0,"handle",40)(18,alA,1,0,"handle",26)(19,clA,1,0,"handle",41)(20,llA,1,0,"handle",42),p()}if(t&2){let e=A.$implicit,i=M(2),n=e.node.data==null?null:e.node.data();y();let o=S1((n==null?null:n.name)||"root_agent"),r=Qi(3,17,i.toolsMap$);y(3);let a=S1(i.getToolsForNode(o,r)).length>0;y(2),iA("custom-node_selected",i.isNodeSelected(e.node))("custom-node_has-tools",a)("in-group",e.node.parentId&&e.node.parentId()),y(4),Pe(i.getAgentIcon(n==null?null:n.agent_class)),y(),FA(" ",o," "),y(),$(i.isRootAgent(o)?12:-1),y(2),$(i.isRootAgentForCurrentTab(o)?-1:14),y(),$(a?15:-1),y(),$(i.shouldShowAddButton(e.node)?16:-1),y(),$(i.shouldShowLeftHandle(e.node)?17:-1),y(),$(i.shouldShowTopHandle(e.node)?18:-1),y(),$(i.shouldShowRightHandle(e.node)?19:-1),y(),$(i.shouldShowBottomHandle(e.node)?20:-1)}}function dlA(t,A){if(t&1&&(m(0,"vflow",8),ne(1,AlA,10,14,"ng-template",19)(2,glA,21,20,"ng-template",20),p()),t&2){let e=M();te("nodes",e.vflowNodes())("edges",e.edges())("background",v4(4,VcA))("snapGrid",v4(5,qcA))}}function ClA(t,A){t&1&&(m(0,"div",9)(1,"div",51)(2,"mat-icon",52),T(3,"touch_app"),p(),m(4,"h4"),T(5,"Start Building Your ADK"),p(),m(6,"p"),T(7,"Drag components from the left panel to create your workflow"),p(),m(8,"div",53)(9,"div",54)(10,"mat-icon"),T(11,"drag_indicator"),p(),m(12,"span"),T(13,"Drag to move nodes"),p()(),m(14,"div",54)(15,"mat-icon"),T(16,"link"),p(),m(17,"span"),T(18,"Shift + Click to connect nodes"),p()()()()())}var RQ=class t{constructor(A,e,i){this.dialog=A;this.agentService=e;this.router=i;this.toolsMap$=this.agentBuilderService.getAgentToolsMap(),this.agentBuilderService.getSelectedTool().subscribe(n=>{this.selectedTool=n})}_snackBar=E(P1);canvasRef;svgCanvasRef;agentBuilderService=E(Ud);cdr=E(ut);showSidePanel=!0;showBuilderAssistant=!1;appNameInput="";toggleSidePanelRequest=new Ve;builderAssistantCloseRequest=new Ve;ctx;connections=mA([]);nodeId=1;edgeId=1;callbackId=1;toolId=1;appName="";nodes=mA([]);edges=mA([]);workflowShellWidth=340;workflowGroupWidth=420;workflowGroupHeight=220;workflowGroupYOffset=180;workflowGroupXOffset=-40;workflowInnerNodePoint={x:40,y:80};groupNodes=mA([]);vflowNodes=ot(()=>[...this.groupNodes(),...this.nodes()]);selectedAgents=[];selectedTool;selectedCallback;currentAgentTool=mA(null);agentToolBoards=mA(new Map);isAgentToolMode=!1;navigationStack=[];existingAgent=void 0;toolsMap$;nodePositions=new Map;ngOnInit(){this.agentService.getApp().subscribe(A=>{A&&(this.appName=A)}),this.appNameInput&&(this.appName=this.appNameInput),this.agentBuilderService.getNewTabRequest().subscribe(A=>{if(A){let{tabName:e,currentAgentName:i}=A;this.switchToAgentToolBoard(e,i)}}),this.agentBuilderService.getTabDeletionRequest().subscribe(A=>{A&&this.deleteAgentToolBoard(A)}),this.agentBuilderService.getSelectedCallback().subscribe(A=>{this.selectedCallback=A}),this.agentBuilderService.getAgentCallbacks().subscribe(A=>{if(A){let e=this.nodes().find(i=>i.data?i.data().name===A.agentName:void 0);if(e&&e.data){let i=e.data();i.callbacks=A.callbacks,e.data.set(i)}}}),this.agentBuilderService.getDeleteSubAgentSubject().subscribe(A=>{A&&this.openDeleteSubAgentDialog(A)}),this.agentBuilderService.getAddSubAgentSubject().subscribe(A=>{A.parentAgentName&&this.addSubAgent(A.parentAgentName,A.agentClass,A.isFromEmptyGroup)}),this.agentBuilderService.getSelectedNode().subscribe(A=>{this.selectedAgents=this.nodes().filter(e=>e.data&&e.data().name===A?.name)}),this.toolsMap$.subscribe(A=>{this.nodes().some(i=>i.parentId&&i.parentId())&&this.groupNodes().length>0&&this.updateGroupDimensions()})}ngOnChanges(A){A.appNameInput&&A.appNameInput.currentValue&&(this.appName=A.appNameInput.currentValue)}ngAfterViewInit(){}onCustomTemplateNodeClick(A,e){this.shouldIgnoreNodeInteraction(e.target)||this.selectAgentNode(A,{openConfig:!0})}onNodePointerDown(A,e){this.shouldIgnoreNodeInteraction(e.target)||this.selectAgentNode(A,{openConfig:!1})}onGroupClick(A,e){if(e.stopPropagation(),!A?.data)return;let i=A.data().name,n=this.nodes().find(o=>o.data&&o.data().name===i);n&&this.selectAgentNode(n,{openConfig:!0})}onGroupPointerDown(A,e){if(e.stopPropagation(),!A?.data)return;let i=A.data().name,n=this.nodes().find(o=>o.data&&o.data().name===i);n&&this.selectAgentNode(n,{openConfig:!1})}onCanvasClick(A){let e=A.target;if(!e)return;let i=[".custom-node",".action-button-bar",".add-subagent-btn",".open-panel-btn",".agent-tool-banner",".mat-mdc-menu-panel"];e.closest(i.join(","))||this.clearCanvasSelection()}shouldIgnoreNodeInteraction(A){return A?!!A.closest("mat-chip, .add-subagent-btn, .mat-mdc-menu-panel"):!1}selectAgentNode(A,e={}){if(!A?.data)return;let i=this.agentBuilderService.getNode(A.data().name);i&&(this.agentBuilderService.setSelectedTool(void 0),this.agentBuilderService.setSelectedNode(i),this.nodePositions.set(i.name,ae({},A.point())),e.openConfig&&this.agentBuilderService.requestSideTabChange("config"))}handleAgentTypeSelection(A,e,i,n,o=!1){n.stopPropagation(),i?.closeMenu(),this.onAgentTypeSelected(A,e,o)}clearCanvasSelection(){!this.selectedAgents.length&&!this.selectedTool&&!this.selectedCallback||(this.selectedAgents=[],this.selectedTool=void 0,this.selectedCallback=void 0,this.agentBuilderService.setSelectedNode(void 0),this.agentBuilderService.setSelectedTool(void 0),this.agentBuilderService.setSelectedCallback(void 0),this.cdr.markForCheck())}onAddResource(A){}onAgentTypeSelected(A,e,i=!1){e&&this.addSubAgent(e,A,i)}generateNodeId(){return this.nodeId+=1,this.nodeId.toString()}generateEdgeId(){return this.edgeId+=1,this.edgeId.toString()}createNode(A,e,i){let n=mA(A),r={id:this.generateNodeId(),point:mA(ae({},e)),type:"html-template",data:n};return i&&(r.parentId=mA(i)),this.nodePositions.set(A.name,ae({},r.point())),r}createWorkflowGroup(A,e,i,n,o,r){let s,a=null;if(n){let I=(o||this.groupNodes()).find(u=>u.id===n);if(I){let u=I.point(),h=I.height?I.height():this.workflowGroupHeight;if(r&&o){let B=r.filter(f=>f.parentId&&f.parentId()===I.id);if(B.length>0){let J=0;for(let O of B){let H=O.data?O.data():void 0,V=120;H&&H.tools&&H.tools.length>0&&(V+=20+H.tools.length*36),J=Math.max(J,V)}h=Math.max(220,80+J+40)}}s={x:u.x,y:u.y+h+60},a=null}else s={x:i.x+this.workflowGroupXOffset,y:i.y+this.workflowGroupYOffset}}else s={x:i.x+this.workflowGroupXOffset,y:i.y+this.workflowGroupYOffset};let c=this.generateNodeId(),l={id:c,point:mA(s),type:"template-group",data:mA(A),parentId:mA(a),width:mA(this.workflowGroupWidth),height:mA(this.workflowGroupHeight)},d=A.agent_class==="SequentialAgent"?{id:this.generateEdgeId(),source:e.id,sourceHandle:"source-bottom",target:c,targetHandle:"target-top"}:null;return{groupNode:l,edge:d}}calculateWorkflowChildPosition(A,e){let s=(e-20)/2;return{x:45+A*428,y:s}}createAgentNodeWithGroup(A,e,i,n,o){let r=this.createNode(A,e,i),s=null,a=null;if(this.isWorkflowAgent(A.agent_class)){let c=this.createWorkflowGroup(A,r,e,i,n,o);s=c.groupNode,a=c.edge}return{shellNode:r,groupNode:s,groupEdge:a}}createWorkflowChildEdge(A,e){return this.createWorkflowChildEdgeFromArrays(A,e,this.nodes(),this.groupNodes())}createWorkflowChildEdgeFromArrays(A,e,i,n){if(!e)return null;let o=n.find(s=>s.id===e);if(!o||!o.data)return null;let r=o.data().agent_class;if(r==="LoopAgent"||r==="ParallelAgent"){let s=i.find(a=>a.data&&a.data().name===o.data().name);if(s)return{id:this.generateEdgeId(),source:s.id,sourceHandle:"source-bottom",target:A.id,targetHandle:"target-top"}}if(r==="SequentialAgent"){let s=i.filter(l=>l.parentId&&l.parentId()===e);if(s.length===0)return null;s.sort((l,d)=>l.point().x-d.point().x);let a=s.findIndex(l=>l.id===A.id);if(a<=0)return null;let c=s[a-1];return{id:this.generateEdgeId(),source:c.id,sourceHandle:"source-right",target:A.id,targetHandle:"target-left"}}return null}isWorkflowAgent(A){return A?A==="SequentialAgent"||A==="ParallelAgent"||A==="LoopAgent":!1}addSubAgent(A,e="LlmAgent",i=!1){let n=this.nodes().find(d=>d.data&&d.data().name===A);if(!n||!n.data)return;let r={name:this.agentBuilderService.getNextSubAgentName(),agent_class:e,model:"gemini-2.5-flash",instruction:"You are a sub-agent that performs specialized tasks.",isRoot:!1,sub_agents:[],tools:[]},s=this.isWorkflowAgent(n.data().agent_class),a=n.parentId&&n.parentId()&&this.groupNodes().some(d=>d.id===n.parentId()),c,l=null;if(i&&s){let d=n.data();if(!d)return;let C=this.groupNodes().find(b=>b.data&&b.data()?.name===d.name);if(!C){console.error("Could not find group for workflow node");return}let I=this.agentBuilderService.getNode(n.data().name);if(!I){console.error("Could not find clicked agent data");return}let u=I.sub_agents.length,h=C.height?C.height():this.workflowGroupHeight,B=this.calculateWorkflowChildPosition(u,h),f=this.createAgentNodeWithGroup(r,B,C.id);c=f.shellNode,l=f.groupNode,I.sub_agents.push(r),l&&this.groupNodes.set([...this.groupNodes(),l]),f.groupEdge&&this.edges.set([...this.edges(),f.groupEdge])}else if(a){let d=n.parentId()??void 0,C=this.groupNodes().find(k=>k.id===d);if(!C||!C.data){console.error("Could not find parent group node");return}let I=C.data().name,u=this.agentBuilderService.getNode(I);if(!u){console.error("Could not find workflow parent agent");return}let h=u.sub_agents.length,B=C.height?C.height():this.workflowGroupHeight,f=this.calculateWorkflowChildPosition(h,B),b=this.createAgentNodeWithGroup(r,f,d);c=b.shellNode,l=b.groupNode,u.sub_agents.push(r),l&&this.groupNodes.set([...this.groupNodes(),l]),b.groupEdge&&this.edges.set([...this.edges(),b.groupEdge])}else{let d=n.data().sub_agents.length,C={x:n.point().x+d*400,y:n.point().y+300},I=this.createAgentNodeWithGroup(r,C);c=I.shellNode,l=I.groupNode;let u=this.agentBuilderService.getNode(n.data().name);u&&u.sub_agents.push(r),l&&this.groupNodes.set([...this.groupNodes(),l]),I.groupEdge&&this.edges.set([...this.edges(),I.groupEdge])}if(this.agentBuilderService.addNode(r),this.nodes.set([...this.nodes(),c]),this.selectedAgents=[c],(a||s)&&this.updateGroupDimensions(),s||a){let d=c.parentId?c.parentId()??void 0:void 0,C=this.createWorkflowChildEdge(c,d);C&&this.edges.set([...this.edges(),C])}else{let d={id:this.generateEdgeId(),source:n.id,sourceHandle:"source-bottom",target:c.id,targetHandle:"target-top"};this.edges.set([...this.edges(),d])}this.agentBuilderService.setSelectedNode(r),this.agentBuilderService.requestSideTabChange("config")}addTool(A){let e=this.nodes().find(o=>o.id===A);if(!e||!e.data)return;let i=e.data();if(!i)return;this.dialog.open(II,{width:"500px"}).afterClosed().subscribe(o=>{if(o)if(o.toolType==="Agent Tool")this.createAgentTool(i.name);else{let r={toolType:o.toolType,name:o.name};this.agentBuilderService.addTool(i.name,r),this.agentBuilderService.setSelectedTool(r)}})}addCallback(A){let e=this.nodes().find(o=>o.id===A);if(!e||!e.data)return;let i={name:`callback_${this.callbackId}`,type:"before_agent",code:`def callback_function(callback_context): + # Add your callback logic here + return None`,description:"Auto-generated callback"};this.callbackId++;let n=this.agentBuilderService.addCallback(e.data().name,i);n.success||this._snackBar.open(n.error||"Failed to add callback","Close",{duration:3e3,panelClass:["error-snackbar"]})}createAgentTool(A){this.dialog.open(f0,{width:"750px",height:"310px",data:{title:"Create Agent Tool",message:"Please enter a name for the agent tool:",confirmButtonText:"Create",showInput:!0,inputLabel:"Agent Tool Name",inputPlaceholder:"Enter agent tool name"}}).afterClosed().subscribe(i=>{i&&typeof i=="string"&&this.agentBuilderService.requestNewTab(i,A)})}deleteTool(A,e){let i=e.toolType==="Agent Tool",n=i&&e.toolAgentName||e.name;this.dialog.open(f0,{data:{title:i?"Delete Agent Tool":"Delete Tool",message:i?`Are you sure you want to delete the agent tool "${n}"? This will also delete the corresponding board.`:`Are you sure you want to delete ${n}?`,confirmButtonText:"Delete"}}).afterClosed().subscribe(r=>{r==="confirm"&&this.deleteToolWithoutDialog(A,e)})}deleteToolWithoutDialog(A,e){if(e.toolType==="Agent Tool"){let i=e.toolAgentName||e.name;this.deleteAgentToolAndBoard(A,e,i)}else this.agentBuilderService.deleteTool(A,e)}deleteAgentToolAndBoard(A,e,i){this.agentBuilderService.deleteTool(A,e),this.agentBuilderService.requestTabDeletion(i)}deleteCallback(A,e){this.dialog.open(f0,{data:{title:"Delete Callback",message:`Are you sure you want to delete ${e.name}?`,confirmButtonText:"Delete"}}).afterClosed().subscribe(n=>{if(n==="confirm"){let o=this.agentBuilderService.deleteCallback(A,e);o.success||this._snackBar.open(o.error||"Failed to delete callback","Close",{duration:3e3,panelClass:["error-snackbar"]}),this.cdr.detectChanges()}})}openDeleteSubAgentDialog(A){this.dialog.open(f0,{data:{title:"Delete sub agent",message:`Are you sure you want to delete ${A}? This will also delete all the underlying sub agents and tools.`,confirmButtonText:"Delete"}}).afterClosed().subscribe(i=>{i==="confirm"&&this.deleteSubAgent(A)})}deleteSubAgent(A){let e=this.agentBuilderService.getNode(A);if(!e)return;let i=this.agentBuilderService.getParentNode(this.agentBuilderService.getRootNode(),e,void 0,this.agentToolBoards());i&&(this.deleteSubAgentHelper(e,i),this.agentBuilderService.getSelectedNode().pipe(Pn(1),$A(n=>!!n)).subscribe(n=>{this.agentBuilderService.getNodes().includes(n)||this.agentBuilderService.setSelectedNode(i)}))}isNodeInSequentialWorkflow(A){if(!A.parentId||!A.parentId())return!1;let e=A.parentId(),i=this.groupNodes().find(n=>n.id===e);return!i||!i.data?!1:i.data().agent_class==="SequentialAgent"}getSequentialSiblings(A){if(!A.parentId||!A.parentId())return{previous:void 0,next:void 0};let e=A.parentId(),i=this.nodes().filter(o=>o.parentId&&o.parentId()===e);i.sort((o,r)=>o.point().x-r.point().x);let n=i.findIndex(o=>o.id===A.id);return n===-1?{previous:void 0,next:void 0}:{previous:n>0?i[n-1]:void 0,next:nn.data&&n.data().name===A.name);if(i){let n=this.isNodeInSequentialWorkflow(i),o,r;if(n){let a=this.getSequentialSiblings(i);o=a.previous,r=a.next}this.nodes.set(this.nodes().filter(a=>a.id!==i.id));let s=this.groupNodes().find(a=>a.data&&a.data().name===A.name);if(s){this.groupNodes.set(this.groupNodes().filter(c=>c.id!==s.id));let a=this.edges().filter(c=>c.target!==i.id&&c.source!==i.id&&c.target!==s.id&&c.source!==s.id);this.edges.set(a)}else{let a=this.edges().filter(c=>c.target!==i.id&&c.source!==i.id);this.edges.set(a)}if(n&&o&&r){let a={id:this.generateEdgeId(),source:o.id,sourceHandle:"source-right",target:r.id,targetHandle:"target-left"};this.edges.set([...this.edges(),a])}}this.nodePositions.delete(A.name),e.sub_agents=e.sub_agents.filter(n=>n.name!==A.name),this.agentBuilderService.deleteNode(A),i&&i.parentId&&i.parentId()&&this.updateGroupDimensions()}selectTool(A,e){if(A.toolType==="Agent Tool"){let i=A.name;this.switchToAgentToolBoard(i);return}if(A.toolType==="Function tool"||A.toolType==="Built-in tool"){if(e.data){let i=this.agentBuilderService.getNode(e.data().name);i&&this.editTool(A,i)}return}if(e.data){let i=this.agentBuilderService.getNode(e.data().name);i&&this.agentBuilderService.setSelectedNode(i)}this.agentBuilderService.setSelectedTool(A)}editTool(A,e){let i;A.toolType==="Built-in tool"?i=this.dialog.open(Qh,{width:"700px",maxWidth:"90vw",data:{toolName:A.name,isEditMode:!0,toolArgs:A.args}}):i=this.dialog.open(II,{width:"500px",data:{toolType:A.toolType,toolName:A.name,isEditMode:!0}}),i.afterClosed().subscribe(n=>{if(n&&n.isEditMode){let o=e.tools?.findIndex(r=>r.name===A.name);o!==void 0&&o!==-1&&e.tools&&(e.tools[o].name=n.name,n.args&&(e.tools[o].args=n.args),this.agentBuilderService.setAgentTools(e.name,e.tools))}})}selectCallback(A,e){if(e.data){let i=this.agentBuilderService.getNode(e.data().name);i&&this.agentBuilderService.setSelectedNode(i)}this.agentBuilderService.setSelectedCallback(A)}openToolsTab(A){if(A.data){let e=this.agentBuilderService.getNode(A.data().name);e&&this.agentBuilderService.setSelectedNode(e)}this.agentBuilderService.requestSideTabChange("tools")}saveAgent(A){let e=this.agentBuilderService.getRootNode();if(!e){this._snackBar.open("Please create an agent first.","OK");return}let i=new FormData,n=this.agentToolBoards();zd.generateYamlFile(e,i,A,n),this.agentService.agentBuild(i).subscribe(o=>{o?this.router.navigate(["/"],{queryParams:{app:A}}).then(()=>{window.location.reload()}):this._snackBar.open("Something went wrong, please try again","OK")})}isRootAgent(A){let e=this.agentBuilderService.getRootNode();return e?e.name===A:!1}isRootAgentForCurrentTab(A){return this.isAgentToolMode&&this.currentAgentTool()?A===this.currentAgentTool():this.isRootAgent(A)}shouldShowHorizontalHandle(A,e){if(!A.parentId||!A.parentId())return!1;let i=A.parentId(),n=this.groupNodes().find(a=>a.id===i);if(!n||!n.data||n.data().agent_class!=="SequentialAgent")return!1;let r=this.nodes().filter(a=>a.parentId&&a.parentId()===i);if(r.length<=1)return!1;r.sort((a,c)=>a.point().x-c.point().x);let s=r.findIndex(a=>a.id===A.id);return e==="left"?s>0:s0):!1}shouldShowTopHandle(A){let e=A.data?A.data():void 0,i=e?.name,n=i?this.isRootAgent(i):!1;if(A.type==="template-group")return e?.agent_class==="SequentialAgent";if(n)return!1;if(A.parentId&&A.parentId()){let r=A.parentId(),s=this.groupNodes().find(a=>a.id===r);if(s&&s.data){let a=s.data().agent_class;if(a==="LoopAgent"||a==="ParallelAgent")return!0}return!1}return!0}getToolsForNode(A,e){return!A||!e?[]:e.get(A)??[]}loadFromYaml(A,e){try{let i=fh(A);this.agentBuilderService.clear(),this.nodePositions.clear(),this.agentToolBoards.set(new Map),this.agentBuilderService.setAgentToolBoards(new Map),this.currentAgentTool.set(null),this.isAgentToolMode=!1,this.navigationStack=[];let n=_A(ae({name:i.name||"root_agent",agent_class:i.agent_class||"LlmAgent",model:i.model||"gemini-2.5-flash",instruction:i.instruction||"",description:i.description||""},i.max_iterations&&{max_iterations:i.max_iterations}),{isRoot:!0,sub_agents:i.sub_agents||[],tools:this.parseToolsFromYaml(i.tools||[]),callbacks:this.parseCallbacksFromYaml(i)});this.agentBuilderService.addNode(n),this.agentBuilderService.setSelectedNode(n),this.processAgentToolsFromYaml(n.tools||[],e),this.loadAgentBoard(n)}catch(i){console.error("Error parsing YAML:",i)}}parseToolsFromYaml(A){return A.map(e=>{let i={name:e.name,toolType:this.determineToolType(e),toolAgentName:e.name};if(e.name==="AgentTool"&&e.args&&e.args.agent&&e.args.agent.config_path){i.toolType="Agent Tool";let o=e.args.agent.config_path.replace("./","").replace(".yaml","");i.name=o,i.toolAgentName=o,i.args=e.args}else e.args&&(i.args=e.args);return i})}parseCallbacksFromYaml(A){let e=[];return Object.keys(A).forEach(i=>{if(i.endsWith("_callback")&&Array.isArray(A[i])){let n=i.replace("_callback","");A[i].forEach(o=>{o.name&&e.push({name:o.name,type:n})})}}),e}determineToolType(A){return A.name==="AgentTool"&&A.args&&A.args.agent?"Agent Tool":A.name&&A.name.includes(".")&&A.args?"Custom tool":A.name&&A.name.includes(".")&&!A.args?"Function tool":"Built-in tool"}processAgentToolsFromYaml(A,e){let i=A.filter(n=>n.toolType==="Agent Tool");for(let n of i)this.agentToolBoards().has(n.name)||this.loadAgentToolConfiguration(n,e)}loadAgentToolConfiguration(A,e){let i=A.name;this.agentService.getSubAgentBuilder(e,`${i}.yaml`).subscribe({next:n=>{if(n)try{let o=fh(n),r=_A(ae({name:o.name||i,agent_class:o.agent_class||"LlmAgent",model:o.model||"gemini-2.5-flash",instruction:o.instruction||`You are the ${i} agent that can be used as a tool by other agents.`,description:o.description||""},o.max_iterations&&{max_iterations:o.max_iterations}),{isRoot:!1,sub_agents:o.sub_agents||[],tools:this.parseToolsFromYaml(o.tools||[]),callbacks:this.parseCallbacksFromYaml(o),isAgentTool:!0,skip_summarization:!!A.args?.skip_summarization}),s=this.agentToolBoards();if(s.set(i,r),this.agentToolBoards.set(s),this.agentBuilderService.setAgentToolBoards(s),this.agentBuilderService.addNode(r),this.processAgentToolsFromYaml(r.tools||[],e),r.sub_agents&&r.sub_agents.length>0)for(let a of r.sub_agents)a.config_path&&this.agentService.getSubAgentBuilder(e,a.config_path).subscribe(c=>{if(c){let l=fh(c);this.processAgentToolsFromYaml(this.parseToolsFromYaml(l.tools||[]),e)}})}catch(o){console.error(`Error parsing YAML for agent tool ${i}:`,o),this.createDefaultAgentToolConfiguration(A)}else this.createDefaultAgentToolConfiguration(A)},error:n=>{console.error(`Error loading agent tool configuration for ${i}:`,n),this.createDefaultAgentToolConfiguration(A)}})}createDefaultAgentToolConfiguration(A){let e=A.name,i={name:e,agent_class:"LlmAgent",model:"gemini-2.5-flash",instruction:`You are the ${e} agent that can be used as a tool by other agents.`,isRoot:!1,sub_agents:[],tools:[],isAgentTool:!0,skip_summarization:!!A.args?.skip_summarization},n=this.agentToolBoards();n.set(e,i),this.agentToolBoards.set(n),this.agentBuilderService.setAgentToolBoards(n),this.agentBuilderService.addNode(i)}loadAgentTools(A){A.tools?(A.tools=A.tools.filter(e=>e.name&&e.name.trim()!==""),A.tools.map(e=>{e.toolType!=="Agent Tool"&&(e.name.includes(".")&&e.args?e.toolType="Custom tool":e.name.includes(".")&&!e.args?e.toolType="Function tool":e.toolType="Built-in tool")})):A.tools=[]}isNodeSelected(A){return this.selectedAgents.includes(A)}isGroupSelected(A){if(!A.data)return!1;let e=A.data().name,i=this.nodes().find(n=>n.data&&n.data().name===e);return i?this.isNodeSelected(i):!1}loadSubAgents(A,e){return Ci(this,null,function*(){let i=[{node:e,depth:1,index:1,parentShellId:void 0,parentAgent:void 0,parentGroupId:void 0}],n=[],o=[],r=[];for(;i.length>0;){let{node:s,depth:a,index:c,parentShellId:l,parentAgent:d,parentGroupId:C}=i.shift(),I=s;if(s.config_path)try{let S=yield qk(this.agentService.getSubAgentBuilder(A,s.config_path));I=fh(S),I.tools&&(I.tools=this.parseToolsFromYaml(I.tools||[])),this.processAgentToolsFromYaml(I.tools||[],A)}catch(S){console.error(`Failed to load agent from ${s.config_path}`,S);continue}if(d&&d.sub_agents){let S=d.sub_agents.indexOf(s);S!==-1&&(d.sub_agents[S]=I,this.agentBuilderService.addNode(d))}this.agentBuilderService.addNode(I);let u=this.nodePositions.get(I.name),h=this.isWorkflowAgent(I.agent_class),B=d?this.isWorkflowAgent(d.agent_class):!1,f,b,k=null;if(B&&!I.isRoot){let S=d?.sub_agents.indexOf(I)??c,w=o.find(J=>J.id===C),_=w?.height?w.height():this.workflowGroupHeight;f=u??this.calculateWorkflowChildPosition(S,_);let K=this.createAgentNodeWithGroup(I,f,C??void 0,o,n);b=K.shellNode,k=K.groupNode,n.push(b),k&&o.push(k),K.groupEdge&&r.push(K.groupEdge)}else{if(u)f=u;else if(!l)f={x:100,y:150};else{let w=n.find(_=>_.id===l);w?f={x:w.point().x+(c-1)*400,y:w.point().y+300}:f={x:100,y:a*150+50}}let S=this.createAgentNodeWithGroup(I,f,void 0,o,n);b=S.shellNode,k=S.groupNode,n.push(b),h&&!I.isRoot&&(k&&o.push(k),S.groupEdge&&r.push(S.groupEdge))}if(l)if(C){let S=this.createWorkflowChildEdgeFromArrays(b,C,n,o);S&&r.push(S)}else{let S={id:this.generateEdgeId(),source:l,sourceHandle:"source-bottom",target:b.id,targetHandle:"target-top"};r.push(S)}if(I.sub_agents&&I.sub_agents.length>0){let S=1,w=h&&k?k.id:C;for(let _ of I.sub_agents)i.push({node:_,parentShellId:b.id,depth:a+1,index:S,parentAgent:I,parentGroupId:w}),S++}}this.nodes.set(n),this.groupNodes.set(o),this.edges.set(r),this.updateGroupDimensions()})}switchToAgentToolBoard(A,e){let i=this.currentAgentTool()||"main";i!==A&&this.navigationStack.push(i);let n=this.agentToolBoards(),o=n.get(A);if(!o){o={isRoot:!1,name:A,agent_class:"LlmAgent",model:"gemini-2.5-flash",instruction:`You are the ${A} agent that can be used as a tool by other agents.`,sub_agents:[],tools:[],isAgentTool:!0,skip_summarization:!1};let r=new Map(n);r.set(A,o),this.agentToolBoards.set(r),this.agentBuilderService.setAgentToolBoards(r),e?this.addAgentToolToAgent(A,e):this.addAgentToolToRoot(A)}this.currentAgentTool.set(A),this.isAgentToolMode=!0,this.loadAgentBoard(o),this.agentBuilderService.setSelectedNode(o),this.agentBuilderService.requestSideTabChange("config")}backToMainCanvas(){if(this.navigationStack.length>0){let A=this.navigationStack.pop();if(A==="main"){this.currentAgentTool.set(null),this.isAgentToolMode=!1;let e=this.agentBuilderService.getRootNode();e&&(this.loadAgentBoard(e),this.agentBuilderService.setSelectedNode(e),this.agentBuilderService.requestSideTabChange("config"))}else{let i=this.agentToolBoards().get(A);i&&(this.currentAgentTool.set(A),this.isAgentToolMode=!0,this.loadAgentBoard(i),this.agentBuilderService.setSelectedNode(i),this.agentBuilderService.requestSideTabChange("config"))}}else{this.currentAgentTool.set(null),this.isAgentToolMode=!1;let A=this.agentBuilderService.getRootNode();A&&(this.loadAgentBoard(A),this.agentBuilderService.setSelectedNode(A),this.agentBuilderService.requestSideTabChange("config"))}}loadAgentBoard(A){return Ci(this,null,function*(){if(this.captureCurrentNodePositions(),this.nodes.set([]),this.groupNodes.set([]),this.edges.set([]),this.nodeId=0,this.edgeId=0,this.loadAgentTools(A),this.agentBuilderService.addNode(A),A.tools&&A.tools.length>0?this.agentBuilderService.setAgentTools(A.name,A.tools):this.agentBuilderService.setAgentTools(A.name,[]),A.sub_agents&&A.sub_agents.length>0)yield this.loadSubAgents(this.appName,A);else{let e=this.nodePositions.get(A.name)??{x:100,y:150},i=this.createNode(A,e);if(this.nodes.set([i]),this.isWorkflowAgent(A.agent_class)){let{groupNode:n,edge:o}=this.createWorkflowGroup(A,i,e);this.groupNodes.set([n]),o&&this.edges.set([o])}}this.agentBuilderService.setSelectedNode(A)})}addAgentToolToAgent(A,e){let i=this.agentBuilderService.getNode(e);if(i){if(i.tools&&i.tools.some(o=>o.name===A))return;let n={name:A,toolType:"Agent Tool",toolAgentName:A};i.tools||(i.tools=[]),i.tools.push(n),i.tools=i.tools.filter(o=>o.name&&o.name.trim()!==""),this.agentBuilderService.setAgentTools(e,i.tools)}}addAgentToolToRoot(A){let e=this.agentBuilderService.getRootNode();if(e){if(e.tools&&e.tools.some(n=>n.name===A))return;let i={name:A,toolType:"Agent Tool",toolAgentName:A};e.tools||(e.tools=[]),e.tools.push(i),this.agentBuilderService.setAgentTools("root_agent",e.tools)}}deleteAgentToolBoard(A){let e=this.agentToolBoards(),i=new Map(e);i.delete(A),this.agentToolBoards.set(i),this.agentBuilderService.setAgentToolBoards(i);let n=this.agentBuilderService.getNodes();for(let o of n)o.tools&&(o.tools=o.tools.filter(r=>!(r.toolType==="Agent Tool"&&(r.toolAgentName===A||r.name===A))),this.agentBuilderService.setAgentTools(o.name,o.tools));this.navigationStack=this.navigationStack.filter(o=>o!==A),this.currentAgentTool()===A&&this.backToMainCanvas()}getBackButtonTooltip(){if(this.navigationStack.length>0){let A=this.navigationStack[this.navigationStack.length-1];return A==="main"?"Back to Main Canvas":`Back to ${A}`}return"Back to Main Canvas"}onBuilderAssistantClose(){this.builderAssistantCloseRequest.emit()}reloadCanvasFromYaml(){this.appNameInput&&this.agentService.getAgentBuilderTmp(this.appNameInput).subscribe({next:A=>{A&&this.loadFromYaml(A,this.appNameInput)},error:A=>{console.error("Error reloading canvas:",A)}})}captureCurrentNodePositions(){for(let A of this.nodes()){if(!A?.data)continue;let e=A.data();e&&this.nodePositions.set(e.name,ae({},A.point()))}}updateGroupDimensions(){for(let a of this.groupNodes()){if(!a.data)continue;let c=a.data().name,l=this.nodes().filter(f=>f.parentId&&f.parentId()===a.id);if(l.length===0){a.width&&a.width.set(480),a.height&&a.height.set(220);continue}l.sort((f,b)=>f.point().x-b.point().x),l.forEach((f,b)=>{let K={x:45+b*428,y:80};if(f.point.set(K),f.data){let J=f.data();J&&this.nodePositions.set(J.name,K)}});let d=1/0,C=1/0,I=-1/0,u=-1/0;for(let f of l){let b=f.point(),k=f.data?f.data():void 0,S=120;k&&k.tools&&k.tools.length>0&&(S+=20+k.tools.length*36),d=Math.min(d,b.x),C=Math.min(C,b.y),I=Math.max(I,b.x+340+68),u=Math.max(u,b.y+S)}let h=I-d+40*2,B=u-C+40*2;a.width&&a.width.set(Math.max(480,h)),a.height&&a.height.set(Math.max(220,B))}}getToolIcon(A){return wQ(A.name,A.toolType)}getAgentIcon(A){switch(A){case"SequentialAgent":return"more_horiz";case"LoopAgent":return"sync";case"ParallelAgent":return"density_medium";case"LlmAgent":default:return"psychology"}}isGroupEmpty(A){return!this.nodes().some(i=>i.parentId&&i.parentId()===A)}shouldShowAddButton(A){let e=A.data?A.data():void 0;if(!e)return!1;let i=this.isWorkflowAgent(e.agent_class),n=A.parentId&&A.parentId();if(i&&!n||!this.isNodeSelected(A))return!1;if(n&&A.parentId){let o=A.parentId(),r=this.nodes().filter(a=>a.parentId&&a.parentId()===o);if(r.length===0)return!0;let s=r.reduce((a,c)=>c.point().x>a.point().x?c:a,r[0]);return A.id===s.id}return!0}static \u0275fac=function(e){return new(e||t)(DA(na),DA(yQ),DA(Da))};static \u0275cmp=xe({type:t,selectors:[["app-canvas"]],viewQuery:function(e,i){if(e&1&&(At(PcA,5),At(jcA,5)),e&2){let n;oA(n=rA())&&(i.canvasRef=n.first),oA(n=rA())&&(i.svgCanvasRef=n.first)}},inputs:{showSidePanel:"showSidePanel",showBuilderAssistant:"showBuilderAssistant",appNameInput:"appNameInput"},outputs:{toggleSidePanelRequest:"toggleSidePanelRequest",builderAssistantCloseRequest:"builderAssistantCloseRequest"},features:[ti],decls:7,vars:8,consts:[["emptyGroupMenuTrigger","matMenuTrigger"],["emptyGroupMenu","matMenu"],["agentMenuTrigger","matMenuTrigger"],["agentMenu","matMenu"],[1,"canvas-container"],[1,"canvas-workspace",3,"click"],[1,"agent-tool-banner"],["matTooltip","Open panel",1,"material-symbols-outlined","open-panel-btn"],["view","auto",3,"nodes","edges","background","snapGrid"],[1,"canvas-instructions"],[3,"closePanel","reloadCanvas","isVisible","appName"],[1,"banner-content"],["mat-icon-button","",1,"back-to-main-btn",3,"click","matTooltip"],[1,"banner-info"],[1,"material-symbols-outlined","banner-icon"],[1,"banner-text"],[1,"agent-tool-name"],[1,"banner-subtitle"],["matTooltip","Open panel",1,"material-symbols-outlined","open-panel-btn",3,"click"],["groupNode",""],["nodeHtml",""],["selectable","","rx","12","ry","12",3,"click","pointerdown"],["x","12","y","12"],[1,"workflow-group-chip"],[1,"workflow-chip-icon"],[1,"workflow-chip-label"],["type","target","position","top","id","target-top"],[1,"empty-group-placeholder",3,"click"],["mat-icon-button","","matTooltip","Add sub-agent","aria-label","Add sub-agent",3,"click","matMenuTriggerFor"],[1,"empty-group-label"],["mat-menu-item","",3,"click"],["selectable","",1,"custom-node",3,"click","pointerdown"],[1,"node-title-wrapper"],[1,"node-title"],[2,"margin-right","5px"],[1,"node-badge"],[1,"action-button-bar"],["matIconButton","","matTooltip","Delete sub-agent","aria-label","Delete sub-agent",1,"action-btn","delete-subagent-btn"],[1,"tools-container"],[1,"add-subagent-container"],["type","target","position","left","id","target-left"],["type","source","position","right","id","source-right"],["type","source","position","bottom","id","source-bottom"],["matIconButton","","matTooltip","Delete sub-agent","aria-label","Delete sub-agent",1,"action-btn","delete-subagent-btn",3,"click"],[1,"tools-list"],[1,"tool-item"],[1,"tool-item",3,"click"],[1,"tool-item-icon"],[1,"tool-item-name"],["matIconButton","","matTooltip","Add sub-agent","aria-label","Add sub-agent",1,"add-subagent-btn",3,"click","matMenuTriggerFor"],[1,"add-subagent-symbol"],[1,"instruction-content"],[1,"instruction-icon"],[1,"instruction-tips"],[1,"tip"]],template:function(e,i){e&1&&(m(0,"div",4)(1,"div",5),ee("click",function(o){return i.onCanvasClick(o)}),ne(2,ZcA,13,2,"div",6)(3,XcA,2,0,"span",7)(4,dlA,3,6,"vflow",8)(5,ClA,19,0,"div",9),p(),m(6,"app-builder-assistant",10),ee("closePanel",function(){return i.onBuilderAssistantClose()})("reloadCanvas",function(){return i.reloadCanvasFromYaml()}),p()()),e&2&&(y(),iA("has-banner",i.currentAgentTool()),y(),$(i.currentAgentTool()?2:-1),y(),$(i.showSidePanel?-1:3),y(),$(i.vflowNodes().length>0?4:-1),y(),$(i.vflowNodes().length===0?5:-1),y(),te("isVisible",i.showBuilderAssistant)("appName",i.appName))},dependencies:[hBe,Kz,BBe,_S,RS,ir,Ma,sd,m2,BE,ts,$9],styles:['[_nghost-%COMP%]{width:100%;height:100%;display:flex;flex-direction:column;flex:1;min-height:0}.canvas-container[_ngcontent-%COMP%]{width:100%;height:100%;background:linear-gradient(135deg,#0f0f0f,#1a1a1a);display:flex;flex-direction:column;border-radius:8px;overflow:hidden;box-shadow:0 8px 32px #0006;flex:1;min-height:0;position:relative}.canvas-header[_ngcontent-%COMP%]{background:linear-gradient(90deg,#1e1e1e,#2a2a2a);padding:16px 24px;border-bottom:2px solid #333;display:flex;justify-content:space-between;align-items:center}.canvas-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;color:#e8eaed;font-size:18px;font-weight:600;font-family:Google Sans,Helvetica Neue,sans-serif;background:linear-gradient(45deg,#8ab4f8,#4285f4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.canvas-controls[_ngcontent-%COMP%]{display:flex;gap:8px}.canvas-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{background:#8ab4f81a;border:1px solid rgba(138,180,248,.3);color:#8ab4f8;transition:all .3s ease}.canvas-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background:#8ab4f833;border-color:#8ab4f8;transform:translateY(-1px)}.canvas-workspace[_ngcontent-%COMP%]{flex:1;position:relative;overflow:hidden;background-color:#131314;min-height:0;width:100%;height:100%}.agent-tool-banner[_ngcontent-%COMP%]{position:absolute;top:0;left:0;right:0;z-index:1000;background:linear-gradient(135deg,#1e3a8a,#3b82f6);border-bottom:2px solid rgba(59,130,246,.3);box-shadow:0 4px 16px #0000004d}.agent-tool-banner[_ngcontent-%COMP%] .banner-content[_ngcontent-%COMP%]{padding:12px 20px;display:flex;align-items:center;gap:16px}.agent-tool-banner[_ngcontent-%COMP%] .banner-content[_ngcontent-%COMP%] .back-to-main-btn[_ngcontent-%COMP%]{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2);transition:all .2s ease}.agent-tool-banner[_ngcontent-%COMP%] .banner-content[_ngcontent-%COMP%] .back-to-main-btn[_ngcontent-%COMP%]:hover{background:#fff3;transform:scale(1.05)}.agent-tool-banner[_ngcontent-%COMP%] .banner-content[_ngcontent-%COMP%] .back-to-main-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px}.agent-tool-banner[_ngcontent-%COMP%] .banner-content[_ngcontent-%COMP%] .banner-info[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;flex:1}.agent-tool-banner[_ngcontent-%COMP%] .banner-content[_ngcontent-%COMP%] .banner-info[_ngcontent-%COMP%] .banner-icon[_ngcontent-%COMP%]{font-size:28px;width:28px;height:28px;color:#ffffffe6}.agent-tool-banner[_ngcontent-%COMP%] .banner-content[_ngcontent-%COMP%] .banner-info[_ngcontent-%COMP%] .banner-text[_ngcontent-%COMP%] .agent-tool-name[_ngcontent-%COMP%]{margin:0;color:#fff;font-size:18px;font-weight:600;font-family:Google Sans,Helvetica Neue,sans-serif;line-height:1.2}.agent-tool-banner[_ngcontent-%COMP%] .banner-content[_ngcontent-%COMP%] .banner-info[_ngcontent-%COMP%] .banner-text[_ngcontent-%COMP%] .banner-subtitle[_ngcontent-%COMP%]{margin:0;color:#fffc;font-size:12px;font-weight:400;line-height:1}.canvas-workspace[_ngcontent-%COMP%]:has(.agent-tool-banner) vflow[_ngcontent-%COMP%]{padding-top:68px}.canvas-workspace.has-banner[_ngcontent-%COMP%] vflow{padding-top:68px!important} vflow{width:100%!important;height:100%!important;display:block!important} vflow .root-svg{background-color:#131314!important;color:#fff!important;width:100%!important;height:100%!important;min-width:100%!important;min-height:100%!important}.diagram-canvas[_ngcontent-%COMP%]{display:block;width:100%;height:100%;cursor:crosshair;transition:cursor .2s ease;object-fit:contain;image-rendering:pixelated}.diagram-canvas[_ngcontent-%COMP%]:active{cursor:grabbing}.canvas-instructions[_ngcontent-%COMP%]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;z-index:1}.instruction-content[_ngcontent-%COMP%]{background:#131314e6;backdrop-filter:blur(10px);border:2px solid rgba(138,180,248,.2);border-radius:16px;padding:32px;box-shadow:0 8px 32px #0000004d}.instruction-content[_ngcontent-%COMP%] .instruction-icon[_ngcontent-%COMP%]{font-size:48px;width:48px;height:48px;color:#8ab4f8;margin-bottom:16px;animation:_ngcontent-%COMP%_pulse 2s infinite}.instruction-content[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{color:#e8eaed;font-size:20px;font-weight:600;margin:0 0 12px;font-family:Google Sans,Helvetica Neue,sans-serif}.instruction-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:#9aa0a6;font-size:14px;margin:0 0 24px;line-height:1.5}.instruction-tips[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px;align-items:flex-start}.tip[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;color:#00bbea;font-size:13px}.tip[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px}.connection-mode-indicator[_ngcontent-%COMP%]{position:absolute;top:20px;left:50%;transform:translate(-50%);z-index:10;animation:_ngcontent-%COMP%_slideDown .3s ease-out}.connection-indicator-content[_ngcontent-%COMP%]{background:linear-gradient(135deg,#1b73e8,#4285f4);color:#fff;padding:12px 20px;border-radius:24px;display:flex;align-items:center;gap:12px;box-shadow:0 4px 16px #1b73e866;border:1px solid rgba(255,255,255,.2)}.connection-indicator-content[_ngcontent-%COMP%] .connection-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px;animation:_ngcontent-%COMP%_pulse 1.5s infinite}.connection-indicator-content[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:14px;font-weight:500;white-space:nowrap}.connection-indicator-content[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);width:32px;height:32px;min-width:32px}.connection-indicator-content[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background:#ffffff4d;transform:scale(1.1)}.connection-indicator-content[_ngcontent-%COMP%] button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px}@keyframes _ngcontent-%COMP%_slideDown{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.canvas-footer[_ngcontent-%COMP%]{background:linear-gradient(90deg,#1e1e1e,#2a2a2a);padding:12px 24px;border-top:1px solid #333;display:flex;justify-content:space-between;align-items:center}.node-count[_ngcontent-%COMP%], .connection-count[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;color:#9aa0a6;font-size:13px;font-weight:500}.node-count[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%], .connection-count[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px;color:#00bbea}@keyframes _ngcontent-%COMP%_pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.canvas-workspace.drag-over[_ngcontent-%COMP%]{background:radial-gradient(circle at 20% 50%,rgba(66,133,244,.1) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(52,168,83,.1) 0%,transparent 50%),radial-gradient(circle at 40% 80%,rgba(251,188,4,.1) 0%,transparent 50%),#131314}.canvas-workspace.drag-over[_ngcontent-%COMP%]:before{content:"";position:absolute;inset:0;border:2px dashed #00BBEA;border-radius:8px;margin:16px;animation:_ngcontent-%COMP%_dashMove 1s linear infinite}@keyframes _ngcontent-%COMP%_dashMove{0%{border-color:#8ab4f84d}50%{border-color:#8ab4f8cc}to{border-color:#8ab4f84d}}@media (max-width: 768px){.canvas-header[_ngcontent-%COMP%]{padding:12px 16px}.canvas-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font-size:16px}.instruction-content[_ngcontent-%COMP%]{padding:24px;margin:16px}.instruction-content[_ngcontent-%COMP%] .instruction-icon[_ngcontent-%COMP%]{font-size:36px;width:36px;height:36px}.instruction-content[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{font-size:18px}.canvas-footer[_ngcontent-%COMP%]{padding:8px 16px;flex-direction:column;gap:8px}}.custom-node[_ngcontent-%COMP%]{width:340px;background:#556b7466;border:1px solid #474747;border-radius:8px;align-items:center;position:relative;max-height:none;padding-bottom:0;overflow:visible}.custom-node[_ngcontent-%COMP%]:hover{border-color:#666}.custom-node_selected[_ngcontent-%COMP%]{border:2px solid;border-color:#00bbea}.custom-node_selected[_ngcontent-%COMP%] mat-chip[_ngcontent-%COMP%]{--mdc-chip-outline-color: rgba(255, 255, 255, .1)}.custom-node_selected[_ngcontent-%COMP%]:hover{border-color:#00bbea}[_nghost-%COMP%] .default-group-node{background-color:#1c1c1c!important;border:2px solid #3E3E3E!important}.node-title-wrapper[_ngcontent-%COMP%]{padding-top:12px;padding-bottom:12px;border-radius:8px 8px 0 0;display:flex;justify-content:space-between;align-items:center}.node-title[_ngcontent-%COMP%]{padding-left:12px;padding-right:12px;display:flex;align-items:center;color:#e8eaed;font-weight:500}.node-badge[_ngcontent-%COMP%]{margin-left:8px;padding:2px 6px;border-radius:999px;background:linear-gradient(135deg,#00bbea33,#004e7a66);color:#00bbea;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.tools-container[_ngcontent-%COMP%]{padding:8px 12px;border-top:1px solid #444}.tools-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.tool-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:4px;cursor:pointer;transition:background-color .2s ease;color:#e8eaed}.tool-item[_ngcontent-%COMP%]:hover{background-color:#8ab4f81a}.tool-item[_ngcontent-%COMP%] .tool-item-icon[_ngcontent-%COMP%]{font-size:22px;width:22px;height:22px;color:#fff;flex-shrink:0}.tool-item[_ngcontent-%COMP%] .tool-item-name[_ngcontent-%COMP%]{font-family:Google Sans,sans-serif;font-size:15px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-item.more-tools[_ngcontent-%COMP%]{color:#9aa0a6;font-style:italic}.tool-item.more-tools[_ngcontent-%COMP%] .tool-item-icon[_ngcontent-%COMP%]{color:#9aa0a6}.custom-node_selected[_ngcontent-%COMP%] .node-title-wrapper[_ngcontent-%COMP%]{border-bottom-color:#ffffff1a}.custom-node_selected[_ngcontent-%COMP%] .node-title-wrapper[_ngcontent-%COMP%] .node-title[_ngcontent-%COMP%]{color:#00bbea}.tools-header[_ngcontent-%COMP%]{font-family:Google Sans;color:#a3a3a3;margin-bottom:10px;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:space-between}.callbacks-container[_ngcontent-%COMP%]{padding:12px 6px 12px 12px}.callbacks-header[_ngcontent-%COMP%]{font-family:Google Sans;color:#a3a3a3;margin-bottom:10px;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:space-between}.callback-type[_ngcontent-%COMP%]{font-size:11px;background:#8ab4f833;color:#00bbea;padding:2px 6px;border-radius:4px;margin-left:4px;font-weight:500}.add-callback-btn[_ngcontent-%COMP%]{background:none;border:none;cursor:pointer;border-radius:4px;width:28px;height:28px;padding:0}.add-callback-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin:0;font-size:18px;width:18px;height:18px}.add-callback-btn[_ngcontent-%COMP%]:hover{color:#e8eaed;background-color:#8ab4f81a;transform:scale(1.1)}.instruction-title[_ngcontent-%COMP%]{font-family:Google Sans;color:#a3a3a3;margin-bottom:10px}.instructions[_ngcontent-%COMP%]{font-family:Google Sans;margin-bottom:10px}.agent-resources[_ngcontent-%COMP%]{padding:8px 12px}.empty-resource[_ngcontent-%COMP%]{margin-top:8px;color:#9aa0a6;margin-bottom:8px;display:flex;font-size:13px}.empty-resource[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{display:none}.action-button-bar[_ngcontent-%COMP%]{display:flex;gap:8px;margin-right:4px}.action-button-bar[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{background:none;color:#9aa0a6;border:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;pointer-events:auto;border-radius:4px}.action-button-bar[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]:hover{color:#e8eaed;background-color:#8ab4f81a;transform:scale(1.1)}.action-button-bar[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px}.action-button-bar[_ngcontent-%COMP%] .delete-subagent-btn[_ngcontent-%COMP%]:hover{color:#e8eaed}.add-tool-btn[_ngcontent-%COMP%]{background:none;border:none;cursor:pointer;border-radius:4px;width:28px;height:28px;padding:0}.add-tool-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin:0;font-size:18px;width:18px;height:18px}.add-tool-btn[_ngcontent-%COMP%]:hover{color:#e8eaed;background-color:#8ab4f81a;transform:scale(1.1)}.add-subagent-container[_ngcontent-%COMP%]{position:absolute;left:50%;bottom:-68px;transform:translate(-50%);display:flex;justify-content:center;pointer-events:none}.custom-node.in-group[_ngcontent-%COMP%] .add-subagent-container[_ngcontent-%COMP%]{left:auto;right:-68px;bottom:50%;transform:translateY(50%)}.add-subagent-container[_ngcontent-%COMP%] .add-subagent-btn[_ngcontent-%COMP%]{width:48px;height:48px;border-radius:50%;border:2px solid #00BBEA;background:radial-gradient(circle at 50% 50%,#1f2330,#131314);color:#00bbea;display:flex;align-items:center;justify-content:center;padding:0;box-sizing:border-box;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;pointer-events:auto}.add-subagent-container[_ngcontent-%COMP%] .add-subagent-btn[_ngcontent-%COMP%] .add-subagent-symbol[_ngcontent-%COMP%]{font-size:28px;line-height:1;font-weight:400}.add-subagent-container[_ngcontent-%COMP%] .add-subagent-btn[_ngcontent-%COMP%]:hover{transform:scale(1.05);box-shadow:0 4px 12px #00bbea59;background:radial-gradient(circle at 50% 50%,#222a3a,#16181d)}.add-subagent-container[_ngcontent-%COMP%] .add-subagent-btn[_ngcontent-%COMP%]:focus-visible{outline:none;box-shadow:0 0 0 3px #00bbea59}.open-panel-btn[_ngcontent-%COMP%]{position:absolute;width:24px;height:24px;color:#c4c7c5;cursor:pointer;margin-left:20px;margin-top:20px;z-index:9999}.custom-node[_ngcontent-%COMP%]:hover .action-button-bar[_ngcontent-%COMP%], .custom-node.custom-node_selected[_ngcontent-%COMP%] .action-button-bar[_ngcontent-%COMP%]{opacity:1;pointer-events:auto}[_nghost-%COMP%] div[nodehandlescontroller][noderesizecontroller].wrapper{height:0px!important;overflow:visible!important}[_nghost-%COMP%] foreignObject.selectable, [_nghost-%COMP%] foreignObject.selectable>div{overflow:visible!important}[_nghost-%COMP%] .interactive-edge{stroke:#00bbea!important;stroke-width:2!important}[_nghost-%COMP%] .default-handle{stroke:#00bbea!important;stroke-width:1!important;fill:#000!important}[_nghost-%COMP%] .reconnect-handle{stroke:#00bbea!important;stroke-width:2!important;fill:#00bbea26!important}[_nghost-%COMP%] .workflow-group-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#00bbea33;border:1px solid rgba(0,187,234,.4);border-radius:16px;color:#00bbea;font-family:Google Sans,sans-serif;font-size:12px;font-weight:500;height:32px;box-sizing:border-box;white-space:nowrap;backdrop-filter:blur(4px)}[_nghost-%COMP%] .workflow-group-chip .workflow-chip-icon{font-size:16px;width:16px;height:16px;line-height:16px}[_nghost-%COMP%] .workflow-group-chip .workflow-chip-label{color:#e8eaed;font-weight:500;font-size:12px;line-height:1}[_nghost-%COMP%] .empty-group-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px;border-radius:8px;text-align:center;background:#ffffff05;border:2px dashed rgba(0,187,234,.3);transition:all .3s ease}[_nghost-%COMP%] .empty-group-placeholder:hover{background:#ffffff0a;border-color:#00bbea80}[_nghost-%COMP%] .empty-group-placeholder button{border:2px solid #00BBEA;background-color:#00bbea1a;color:#00bbea;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}[_nghost-%COMP%] .empty-group-placeholder button:hover{background-color:#00bbea33;transform:scale(1.1);box-shadow:0 4px 12px #00bbea59}[_nghost-%COMP%] .empty-group-placeholder button mat-icon{font-size:24px;width:24px;height:24px}[_nghost-%COMP%] .empty-group-placeholder .empty-group-label{font-size:13px;font-weight:500;color:#9aa0a6;font-family:Google Sans,sans-serif}']})};function IlA(t,A){t&1&&(m(0,"mat-hint",3),T(1," Start with a letter or underscore, and contain only letters, digits, and underscores. "),p())}var JS=class t{constructor(A,e){this.data=A;this.dialogRef=e}newAppName="";agentService=E(Hl);_snackBar=E(P1);router=E(Da);isNameValid(){let A=this.newAppName.trim();return!(!A||!/^[a-zA-Z_]/.test(A)||!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(A))}createNewApp(){let A=this.newAppName.trim();if(!this.isNameValid()){this._snackBar.open("App name must start with a letter or underscore and can only contain letters, digits, and underscores.","OK");return}if(this.data.existingAppNames.includes(A)){this._snackBar.open("App name already exists. Please choose a different name.","OK");return}let e={agent_class:"LlmAgent",instruction:"You are the root agent that coordinates other agents.",isRoot:!0,model:"gemini-2.5-flash",name:A,sub_agents:[],tools:[]},i=new FormData,n=new Map;zd.generateYamlFile(e,i,A,n),this.agentService.agentBuildTmp(i).subscribe(o=>{o?(this.router.navigate(["/"],{queryParams:{app:A,mode:"builder"}}).then(()=>{window.location.reload()}),this.dialogRef.close(!0)):this._snackBar.open("Something went wrong, please try again","OK")})}static \u0275fac=function(e){return new(e||t)(DA(qo),DA(co))};static \u0275cmp=xe({type:t,selectors:[["app-add-item-dialog"]],decls:10,vars:3,consts:[["mat-dialog-title","",1,"new-app-title"],[2,"padding-left","20px","padding-right","24px"],["matInput","",3,"ngModelChange","keydown.enter","ngModel"],[2,"font-size","12px","color","#666"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click","disabled"]],template:function(e,i){e&1&&(m(0,"h2",0),T(1,"Create a new app"),p(),m(2,"mat-form-field",1)(3,"input",2),qn("ngModelChange",function(o){return Vn(i.newAppName,o)||(i.newAppName=o),o}),ee("keydown.enter",function(){return i.createNewApp()}),p(),ne(4,IlA,2,0,"mat-hint",3),p(),m(5,"mat-dialog-actions",4)(6,"button",5),T(7,"Cancel"),p(),m(8,"button",6),ee("click",function(){return i.createNewApp()}),T(9," Create "),p()()),e&2&&(y(3),jn("ngModel",i.newAppName),y(),$(i.isNameValid()?-1:4),y(4),te("disabled",!i.isNameValid()))},dependencies:[tr,ds,Gs,Kn,Mr,Fo,Cr,kr,Un,Jl,JB],styles:[".new-app-title[_ngcontent-%COMP%]{color:#fff!important;font-family:Google Sans;font-size:24px}"]})};var ulA=["callbackNameInput"];function hlA(t,A){if(t&1){let e=Ue();Qa(0),m(1,"div",8)(2,"div",9),ee("click",function(){q(e);let n=M();return W(n.toggleCallbackInfo())}),m(3,"mat-icon",10),T(4,"info"),p(),m(5,"div",11)(6,"span"),T(7,"Callback Information"),p()(),m(8,"button",12)(9,"mat-icon"),T(10),p()()(),m(11,"div",13)(12,"div",14)(13,"div",15),T(14),p(),m(15,"div",16),T(16),p()(),m(17,"div",17)(18,"a",18)(19,"mat-icon"),T(20,"open_in_new"),p(),m(21,"span"),T(22,"View Official Documentation"),p()()()()(),ma()}if(t&2){let e,i,n,o=M();y(10),Pe(o.isCallbackInfoExpanded?"expand_less":"expand_more"),y(),iA("expanded",o.isCallbackInfoExpanded),y(3),Pe((e=o.getCallbackInfo())==null?null:e.shortDescription),y(2),Pe((i=o.getCallbackInfo())==null?null:i.detailedDescription),y(2),te("href",(n=o.getCallbackInfo())==null?null:n.docLink,$r)}}function BlA(t,A){if(t&1&&(m(0,"mat-option",21),T(1),p()),t&2){let e=A.$implicit;te("value",e),y(),Pe(e)}}function ElA(t,A){if(t&1){let e=Ue();Qa(0),m(1,"mat-form-field",3)(2,"mat-label"),T(3,"Callback Type"),p(),m(4,"mat-select",19),qn("ngModelChange",function(n){q(e);let o=M();return Vn(o.callbackType,n)||(o.callbackType=n),W(n)}),ne(5,BlA,2,2,"mat-option",20),p()(),ma()}if(t&2){let e=M();y(4),jn("ngModel",e.callbackType),y(),te("ngForOf",e.availableCallbackTypes)}}function flA(t,A){t&1&&(m(0,"mat-error"),T(1,"Same callback name has been used"),p())}function QlA(t,A){t&1&&(m(0,"mat-error"),T(1,"Cannot have callback consist of two words"),p())}function mlA(t,A){t&1&&(m(0,"mat-error"),T(1,"Callback function names cannot have spaces"),p())}var Tz=class{isErrorState(A){return!!(A&&A.invalid)}},t8=class t{constructor(A,e){this.dialogRef=A;this.data=e;this.callbackType=e?.callbackType??"",this.existingCallbackNames=e?.existingCallbackNames??[],this.isEditMode=!!e?.isEditMode,this.availableCallbackTypes=e?.availableCallbackTypes??[],this.isEditMode&&e?.callback&&(this.callbackName=e.callback.name,this.callbackType=e.callback.type,this.originalCallbackName=e.callback.name,this.existingCallbackNames=this.existingCallbackNames.filter(i=>i!==this.originalCallbackName))}callbackNameInput;callbackName="";callbackType="";existingCallbackNames=[];matcher=new Tz;isEditMode=!1;availableCallbackTypes=[];originalCallbackName="";isCallbackInfoExpanded=!1;addCallback(){if(!this.callbackName.trim()||this.hasSpaces()||this.isDuplicateName())return;let A={name:this.callbackName.trim(),type:this.callbackType,isEditMode:this.isEditMode,originalName:this.originalCallbackName||this.callbackName.trim()};this.dialogRef.close(A)}cancel(){this.dialogRef.close()}isDuplicateName(){if(!Array.isArray(this.existingCallbackNames))return!1;let A=(this.callbackName||"").trim();return this.existingCallbackNames.includes(A)}hasSpaces(){return/\s/.test(this.callbackName||"")}createDisabled(){return!this.callbackName.trim()||this.isDuplicateName()||this.hasSpaces()}validate(){this.hasSpaces()?this.callbackNameInput.control.setErrors({hasSpaces:!0}):this.isDuplicateName()?this.callbackNameInput.control.setErrors({duplicateName:!0}):this.callbackNameInput.control.setErrors(null)}getCallbackInfo(){return E0.getCallbackDetailedInfo(this.callbackType)}toggleCallbackInfo(){this.isCallbackInfoExpanded=!this.isCallbackInfoExpanded}static \u0275fac=function(e){return new(e||t)(DA(co),DA(qo))};static \u0275cmp=xe({type:t,selectors:[["app-add-callback-dialog"]],viewQuery:function(e,i){if(e&1&&At(ulA,5),e&2){let n;oA(n=rA())&&(i.callbackNameInput=n.first)}},decls:18,vars:10,consts:[["callbackNameInput","ngModel"],["mat-dialog-title",""],[4,"ngIf"],[2,"width","100%"],["matInput","",3,"ngModelChange","keydown.enter","ngModel","errorStateMatcher"],["align","end"],["mat-button","",3,"click"],["mat-raised-button","","color","secondary",3,"click","disabled"],[1,"callback-info-container"],[1,"callback-info-header",3,"click"],[1,"callback-info-icon"],[1,"callback-info-title"],["mat-icon-button","","type","button","aria-label","Toggle callback information",1,"callback-info-toggle"],[1,"callback-info-body"],[1,"callback-info-content"],[1,"callback-info-short"],[1,"callback-info-detailed"],[1,"callback-info-link-container"],["target","_blank","rel","noopener noreferrer",1,"callback-info-link",3,"href"],[3,"ngModelChange","ngModel"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(e,i){if(e&1){let n=Ue();m(0,"h2",1),T(1),p(),m(2,"mat-dialog-content"),ne(3,hlA,23,6,"ng-container",2)(4,ElA,6,2,"ng-container",2),m(5,"mat-form-field",3)(6,"mat-label"),T(7,"Callback Name"),p(),m(8,"input",4,0),qn("ngModelChange",function(r){return q(n),Vn(i.callbackName,r)||(i.callbackName=r),W(r)}),ee("ngModelChange",function(){return q(n),W(i.validate())})("keydown.enter",function(){return q(n),W(i.addCallback())}),p(),ne(10,flA,2,0,"mat-error",2)(11,QlA,2,0,"mat-error",2)(12,mlA,2,0,"mat-error",2),p()(),m(13,"mat-dialog-actions",5)(14,"button",6),ee("click",function(){return q(n),W(i.cancel())}),T(15,"Cancel"),p(),m(16,"button",7),ee("click",function(){return q(n),W(i.addCallback())}),T(17),p()()}if(e&2){let n=Ji(9);y(),Pe(i.isEditMode?"Edit Callback":"Add "+i.callbackType+" Callback"),y(2),te("ngIf",i.getCallbackInfo()),y(),te("ngIf",i.isEditMode),y(4),jn("ngModel",i.callbackName),te("errorStateMatcher",i.matcher),y(2),te("ngIf",n.hasError("duplicateName")),y(),te("ngIf",n.hasError("hasSpaces")),y(),te("ngIf",n.hasError("hasSpaces")),y(4),te("disabled",i.createDisabled()),y(),FA(" ",i.isEditMode?"Save":"Add"," ")}},dependencies:[Ur,k1,bg,Kn,Mr,Fo,Cr,QAe,tr,kr,jr,j0,Un,ya,gl,ds,q0,pX,L1,Gs,xF,Yl,Ac,gD,ir],styles:[".callback-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:16px;min-width:400px;max-width:600px}.full-width[_ngcontent-%COMP%]{width:100%}mat-dialog-content[_ngcontent-%COMP%]{padding:20px 24px;display:flex;flex-direction:column;gap:16px}mat-dialog-actions[_ngcontent-%COMP%]{padding:16px 24px;margin:0}mat-form-field[_ngcontent-%COMP%]{margin-top:8px!important}.mat-mdc-raised-button.mat-secondary[_ngcontent-%COMP%]:not([disabled]){background-color:#8ab4f8}.callback-info-container[_ngcontent-%COMP%]{background-color:#8ab4f814;border:1px solid rgba(138,180,248,.2);border-radius:8px;padding:16px;margin-bottom:16px}.callback-info-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 0}.callback-info-header[_ngcontent-%COMP%]:hover .callback-info-title[_ngcontent-%COMP%]{color:#a7c8ff}.callback-info-icon[_ngcontent-%COMP%]{color:#8ab4f8;font-size:20px;width:20px;height:20px;flex-shrink:0}.callback-info-title[_ngcontent-%COMP%]{flex:1;font-weight:500;color:#8ab4f8;font-size:14px;transition:color .2s ease}.callback-info-toggle[_ngcontent-%COMP%]{color:#8ab4f8;margin:-8px}.callback-info-toggle[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{transition:transform .2s ease}.callback-info-body[_ngcontent-%COMP%]{max-height:0;overflow:hidden;opacity:0;transition:max-height .3s ease,opacity .2s ease,margin-top .3s ease}.callback-info-body.expanded[_ngcontent-%COMP%]{max-height:500px;opacity:1;margin-top:12px}.callback-info-content[_ngcontent-%COMP%]{flex:1}.callback-info-short[_ngcontent-%COMP%]{font-weight:500;color:#e3e3e3;margin-bottom:8px;line-height:1.4}.callback-info-detailed[_ngcontent-%COMP%]{color:#c4c7ca;font-size:14px;line-height:1.5}.callback-info-link-container[_ngcontent-%COMP%]{margin-top:12px}.callback-info-link[_ngcontent-%COMP%]{color:#8ab4f8;text-decoration:none;font-size:14px;display:inline-flex;align-items:center;gap:4px;transition:color .2s ease}.callback-info-link[_ngcontent-%COMP%]:hover{color:#a7c8ff}.callback-info-link[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px}"]})};var EBe=(t,A)=>A.name;function plA(t,A){if(t&1&&T(0),t&2){let e=M().$implicit;FA(" AgentTool: ",e.name," ")}}function wlA(t,A){if(t&1&&T(0),t&2){let e=M().$implicit;FA(" ",e.name," ")}}function ylA(t,A){t&1&&(m(0,"mat-icon",27),T(1,"chevron_right"),p())}function DlA(t,A){if(t&1){let e=Ue();m(0,"div",26),ee("click",function(){let n=q(e).$implicit,o=M(2);return W(o.selectAgentFromBreadcrumb(n))}),ne(1,plA,1,1)(2,wlA,1,1),p(),ne(3,ylA,2,0,"mat-icon",27)}if(t&2){let e=A.$implicit,i=A.$index,n=M(2);iA("current-agent",(n.currentSelectedAgent==null?null:n.currentSelectedAgent.name)===e.name),y(),$(i===0&&n.isInAgentToolContext()?1:2),y(2),$(i0?0:-1)}}function GlA(t,A){if(t&1){let e=Ue();m(0,"div",14)(1,"div",15)(2,"div"),T(3," Tools "),p(),m(4,"div")(5,"button",39,2)(7,"mat-icon"),T(8,"add"),p()(),m(9,"mat-menu",null,3)(11,"button",22),ee("click",function(){q(e);let n=M();return W(n.addTool("Function tool"))}),m(12,"span"),T(13,"Function tool"),p()(),m(14,"button",22),ee("click",function(){q(e);let n=M();return W(n.addTool("Built-in tool"))}),m(15,"span"),T(16,"Built-in tool"),p()(),m(17,"button",22),ee("click",function(){q(e);let n=M();return W(n.createAgentTool())}),m(18,"span"),T(19,"Agent tool"),p()()()()(),ne(20,FlA,1,1),Ii(21,"async"),p()}if(t&2){let e,i=Ji(10),n=M();y(5),te("matMenuTriggerFor",i),y(6),te("matTooltip",n.toolMenuTooltips("Function tool")),y(3),te("matTooltip",n.toolMenuTooltips("Built-in tool")),y(3),te("matTooltip",n.toolMenuTooltips("Agent tool")),y(3),$((e=Qi(21,5,n.toolsMap$))?20:-1,e)}}function KlA(t,A){if(t&1){let e=Ue();m(0,"mat-chip",42),ee("click",function(){let n=q(e).$implicit,o=M(2);return W(o.selectAgent(n))}),m(1,"mat-icon",43),T(2),p(),m(3,"span",44),T(4),p(),m(5,"button",47),ee("click",function(n){let o=q(e).$implicit;return M(2).deleteSubAgent(o.name),W(n.stopPropagation())}),m(6,"mat-icon"),T(7,"cancel"),p()()()}if(t&2){let e=A.$implicit,i=M(2);y(2),Pe(i.getAgentIcon(e.agent_class)),y(2),Pe(e.name)}}function UlA(t,A){if(t&1&&(m(0,"div",19)(1,"mat-chip-set",46),Rt(2,KlA,8,2,"mat-chip",41,EBe),p()()),t&2){let e=M();y(2),Nt(e.agentConfig.sub_agents)}}function TlA(t,A){if(t&1){let e=Ue();ve(0,"mat-divider"),m(1,"div",21),T(2,"Model (LLM) Interaction"),p(),m(3,"button",22),ee("click",function(){q(e);let n=M();return W(n.addCallback("before_model"))}),m(4,"span"),T(5,"Before Model"),p()(),m(6,"button",22),ee("click",function(){q(e);let n=M();return W(n.addCallback("after_model"))}),m(7,"span"),T(8,"After Model"),p()(),ve(9,"mat-divider"),m(10,"div",21),T(11,"Tool Execution"),p(),m(12,"button",22),ee("click",function(){q(e);let n=M();return W(n.addCallback("before_tool"))}),m(13,"span"),T(14,"Before Tool"),p()(),m(15,"button",22),ee("click",function(){q(e);let n=M();return W(n.addCallback("after_tool"))}),m(16,"span"),T(17,"After Tool"),p()()}if(t&2){let e=M();y(3),te("matTooltip",e.callbackMenuTooltips("before_model")),y(3),te("matTooltip",e.callbackMenuTooltips("after_model")),y(6),te("matTooltip",e.callbackMenuTooltips("before_tool")),y(3),te("matTooltip",e.callbackMenuTooltips("after_tool"))}}function OlA(t,A){if(t&1){let e=Ue();m(0,"div",51),ee("click",function(){let n=q(e).$implicit,o=M(3);return W(o.editCallback(n))}),m(1,"mat-chip",52)(2,"span",53)(3,"span",54),T(4),p(),m(5,"span",55),T(6),p()()(),m(7,"button",56),ee("click",function(n){let o=q(e).$implicit,r=M(3);return r.deleteCallback(r.agentConfig.name,o),W(n.stopPropagation())}),m(8,"mat-icon"),T(9,"remove"),p()()()}if(t&2){let e=A.$implicit;y(4),Pe(e.type),y(2),Pe(e.name)}}function JlA(t,A){if(t&1&&(m(0,"div",48)(1,"mat-chip-set",49),Rt(2,OlA,10,2,"div",50,Fi),p()()),t&2){let e=M(),i=M();y(2),Nt(e.get(i.agentConfig.name))}}function YlA(t,A){if(t&1&&ne(0,JlA,4,0,"div",48),t&2){let e=A,i=M();$(i.agentConfig&&e.get(i.agentConfig.name)&&e.get(i.agentConfig.name).length>0?0:-1)}}var YS=class t{CALLBACKS_TAB_INDEX=3;jsonEditorComponent;appNameInput="";exitBuilderMode=new Ve;closePanel=new Ve;featureFlagService=E(Ks);isAlwaysOnSidePanelEnabledObs=this.featureFlagService.isAlwaysOnSidePanelEnabled();toolArgsString=mA("");editingToolArgs=mA(!1);editingTool=null;selectedTabIndex=0;agentConfig={isRoot:!1,name:"",agent_class:"",model:"",instruction:"",sub_agents:[],tools:[],callbacks:[]};hierarchyPath=[];currentSelectedAgent=void 0;isRootAgentEditable=!0;models=["gemini-2.5-flash","gemini-2.5-pro"];agentTypes=["LlmAgent","LoopAgent","ParallelAgent","SequentialAgent"];agentBuilderService=E(Ud);dialog=E(na);agentService=E(Hl);snackBar=E(P1);router=E(Da);cdr=E(ut);selectedTool=void 0;toolAgentName="";toolTypes=["Custom tool","Function tool","Built-in tool","Agent Tool"];editingCallback=null;selectedCallback=void 0;callbackTypes=["before_agent","before_model","before_tool","after_tool","after_model","after_agent"];builtInTools=["EnterpriseWebSearchTool","exit_loop","FilesRetrieval","get_user_choice","google_search","load_artifacts","load_memory","LongRunningFunctionTool","preload_memory","url_context","VertexAiRagRetrieval","VertexAiSearchTool"];builtInToolArgs=new Map([["EnterpriseWebSearchTool",[]],["exit_loop",[]],["FilesRetrieval",["name","description","input_dir"]],["get_user_choice",[]],["google_search",[]],["load_artifacts",[]],["load_memory",[]],["LongRunningFunctionTool",["func"]],["preload_memory",[]],["url_context",[]],["VertexAiRagRetrieval",["name","description","rag_corpora","rag_resources","similarity_top_k","vector_distance_threshold"]],["VertexAiSearchTool",["data_store_id","data_store_specs","search_engine_id","filter","max_results"]]]);header="Select an agent or tool to edit";toolsMap$;callbacksMap$;getJsonStringForEditor(A){if(!A)return"{}";let e=ae({},A);return delete e.skip_summarization,JSON.stringify(e,null,2)}constructor(){this.toolsMap$=this.agentBuilderService.getAgentToolsMap(),this.callbacksMap$=this.agentBuilderService.getAgentCallbacksMap(),this.agentBuilderService.getSelectedNode().subscribe(A=>{this.agentConfig=A,this.currentSelectedAgent=A,A&&(this.editingTool=null,this.editingCallback=null,this.header="Agent configuration",this.updateBreadcrumb(A)),this.cdr.markForCheck()}),this.agentBuilderService.getSelectedTool().subscribe(A=>{this.selectedTool=A,!(A&&A.toolType==="Agent Tool")&&(A?(this.editingTool=A,this.editingToolArgs.set(!1),setTimeout(()=>{let e=A.toolType=="Function tool"?"Function tool":A.name;if(A.toolType=="Function tool"&&!A.name&&(A.name="Function tool"),A.toolType==="Custom tool")A.args||(A.args={}),this.toolArgsString.set(this.getJsonStringForEditor(A.args)),this.editingToolArgs.set(!0);else{let i=this.builtInToolArgs.get(e);if(i){A.args||(A.args={});for(let n of i)A.args&&(A.args[n]="")}this.toolArgsString.set(this.getJsonStringForEditor(A.args)),A.args&&this.getObjectKeys(A.args).length>0&&this.editingToolArgs.set(!0)}this.cdr.markForCheck()}),this.selectedTabIndex=2):this.editingTool=null,this.cdr.markForCheck())}),this.agentBuilderService.getSelectedCallback().subscribe(A=>{this.selectedCallback=A,A?(this.selectCallback(A),this.selectedTabIndex=this.CALLBACKS_TAB_INDEX):this.editingCallback=null,this.cdr.markForCheck()}),this.agentBuilderService.getAgentCallbacks().subscribe(A=>{this.agentConfig&&A&&this.agentConfig.name===A.agentName&&(this.agentConfig=_A(ae({},this.agentConfig),{callbacks:A.callbacks}),this.cdr.markForCheck())}),this.agentBuilderService.getSideTabChangeRequest().subscribe(A=>{A==="tools"?this.selectedTabIndex=2:A==="config"&&(this.selectedTabIndex=0)})}getObjectKeys(A){return A?Object.keys(A).filter(e=>e!=="skip_summarization"):[]}getCallbacksByType(){let A=new Map;return this.callbackTypes.forEach(e=>{A.set(e,[])}),this.agentConfig?.callbacks&&this.agentConfig.callbacks.forEach(e=>{let i=A.get(e.type);i&&i.push(e)}),A}updateBreadcrumb(A){this.hierarchyPath=this.buildHierarchyPath(A)}buildHierarchyPath(A){let e=[],i=this.findContextualRoot(A);return i?A.name===i.name?[i]:this.findPathToAgent(i,A,[i])||[A]:[A]}isInAgentToolContext(){return!this.hierarchyPath||this.hierarchyPath.length===0?!1:this.hierarchyPath[0]?.isAgentTool===!0}findContextualRoot(A){if(A.isAgentTool)return A;let e=this.agentBuilderService.getNodes();for(let n of e)if(n.isAgentTool&&this.findPathToAgent(n,A,[n]))return n;let i=this.agentBuilderService.getRootNode();if(i&&this.findPathToAgent(i,A,[i]))return i;if(A.isRoot)return A;for(let n of e)if(n.isRoot&&this.findPathToAgent(n,A,[n]))return n;return i}findPathToAgent(A,e,i){if(A.name===e.name)return i;for(let n of A.sub_agents){let o=[...i,n],r=this.findPathToAgent(n,e,o);if(r)return r}return null}selectAgentFromBreadcrumb(A){this.agentBuilderService.setSelectedNode(A),this.selectedTabIndex=0}selectAgent(A){this.agentBuilderService.setSelectedNode(A),this.selectedTabIndex=0}selectTool(A){if(A.toolType==="Agent Tool"){let e=A.name;this.agentBuilderService.requestNewTab(e);return}if(A.toolType==="Function tool"||A.toolType==="Built-in tool"){this.editTool(A);return}this.agentBuilderService.setSelectedTool(A)}editTool(A){if(!this.agentConfig)return;let e;A.toolType==="Built-in tool"?e=this.dialog.open(Qh,{width:"700px",maxWidth:"90vw",data:{toolName:A.name,isEditMode:!0,toolArgs:A.args}}):e=this.dialog.open(II,{width:"500px",data:{toolType:A.toolType,toolName:A.name,isEditMode:!0}}),e.afterClosed().subscribe(i=>{if(i&&i.isEditMode){let n=this.agentConfig.tools?.findIndex(o=>o.name===A.name);n!==void 0&&n!==-1&&this.agentConfig.tools&&(this.agentConfig.tools[n].name=i.name,i.args&&(this.agentConfig.tools[n].args=i.args),this.agentBuilderService.setAgentTools(this.agentConfig.name,this.agentConfig.tools))}})}addTool(A){if(this.agentConfig){let e;A==="Built-in tool"?e=this.dialog.open(Qh,{width:"700px",maxWidth:"90vw",data:{}}):e=this.dialog.open(II,{width:"500px",data:{toolType:A}}),e.afterClosed().subscribe(i=>{if(i){let n={toolType:i.toolType,name:i.name};this.agentBuilderService.addTool(this.agentConfig.name,n),this.agentBuilderService.setSelectedTool(n)}})}}addCallback(A){if(this.agentConfig){let e=this.agentConfig?.callbacks?.map(n=>n.name)??[];this.dialog.open(t8,{width:"500px",data:{callbackType:A,existingCallbackNames:e}}).afterClosed().subscribe(n=>{if(n){let o={name:n.name,type:n.type};this.agentBuilderService.addCallback(this.agentConfig.name,o)}})}}editCallback(A){if(!this.agentConfig)return;let e=this.agentConfig.callbacks?.map(n=>n.name)??[];this.dialog.open(t8,{width:"500px",data:{callbackType:A.type,existingCallbackNames:e,isEditMode:!0,callback:A,availableCallbackTypes:this.callbackTypes}}).afterClosed().subscribe(n=>{if(n&&n.isEditMode){let o=this.agentBuilderService.updateCallback(this.agentConfig.name,A.name,_A(ae({},A),{name:n.name,type:n.type}));o.success?this.cdr.markForCheck():console.error("Failed to update callback:",o.error)}})}deleteCallback(A,e){this.dialog.open(f0,{data:{title:"Delete Callback",message:`Are you sure you want to delete ${e.name}?`,confirmButtonText:"Delete"}}).afterClosed().subscribe(n=>{if(n==="confirm"){let o=this.agentBuilderService.deleteCallback(A,e);o.success?this.cdr.markForCheck():console.error("Failed to delete callback:",o.error)}})}addSubAgent(A){A&&this.agentBuilderService.setAddSubAgentSubject(A)}deleteSubAgent(A){this.agentBuilderService.setDeleteSubAgentSubject(A)}deleteTool(A,e){let i=e.toolType==="Agent Tool",n=i&&e.toolAgentName||e.name;this.dialog.open(f0,{data:{title:i?"Delete Agent Tool":"Delete Tool",message:i?`Are you sure you want to delete the agent tool "${n}"? This will also delete the corresponding board.`:`Are you sure you want to delete ${n}?`,confirmButtonText:"Delete"}}).afterClosed().subscribe(r=>{if(r==="confirm")if(e.toolType==="Agent Tool"){let s=e.toolAgentName||e.name;this.deleteAgentToolAndBoard(A,e,s)}else this.agentBuilderService.deleteTool(A,e)})}deleteAgentToolAndBoard(A,e,i){this.agentBuilderService.deleteTool(A,e),this.agentBuilderService.requestTabDeletion(i)}backToToolList(){this.editingTool=null,this.agentBuilderService.setSelectedTool(void 0)}editToolArgs(){this.editingToolArgs.set(!0)}cancelEditToolArgs(A){this.editingToolArgs.set(!1),this.toolArgsString.set(this.getJsonStringForEditor(A?.args))}saveToolArgs(A){if(this.jsonEditorComponent&&A)try{let e=JSON.parse(this.jsonEditorComponent.getJsonString()),i=A.args?A.args.skip_summarization:!1;A.args=e,A.args.skip_summarization=i,this.toolArgsString.set(JSON.stringify(A.args,null,2)),this.editingToolArgs.set(!1)}catch(e){console.error("Error parsing tool arguments JSON",e)}}onToolTypeSelectionChange(A){A?.toolType==="Built-in tool"?(A.name="google_search",this.onBuiltInToolSelectionChange(A)):A?.toolType==="Custom tool"?(A.args={},this.toolArgsString.set(this.getJsonStringForEditor(A.args)),this.editingToolArgs.set(!0)):A&&(A.name="",A.args={skip_summarization:!1},this.toolArgsString.set("{}"),this.editingToolArgs.set(!1))}onBuiltInToolSelectionChange(A){A&&(this.editingToolArgs.set(!1),setTimeout(()=>{A.args={skip_summarization:!1};let e=this.builtInToolArgs.get(A.name);if(e)for(let i of e)A.args&&(A.args[i]="");this.toolArgsString.set(this.getJsonStringForEditor(A.args)),A.args&&this.getObjectKeys(A.args).length>0&&this.editingToolArgs.set(!0),this.cdr.markForCheck()}))}selectCallback(A){this.editingCallback=A}backToCallbackList(){this.editingCallback=null}onCallbackTypeChange(A){}createAgentTool(){this.dialog.open(f0,{width:"750px",height:"450px",data:{title:"Create Agent Tool",message:"Please enter a name for the agent tool:",confirmButtonText:"Create",showInput:!0,inputLabel:"Agent Tool Name",inputPlaceholder:"Enter agent tool name",showToolInfo:!0,toolType:"Agent tool"}}).afterClosed().subscribe(e=>{if(e&&typeof e=="string"){let i=this.agentConfig?.name||"root_agent";this.agentBuilderService.requestNewTab(e,i)}})}saveChanges(){if(!this.agentBuilderService.getRootNode()){this.snackBar.open("Please create an agent first.","OK");return}this.appNameInput?this.saveAgent(this.appNameInput):this.agentService.getApp().subscribe(e=>{e?this.saveAgent(e):this.snackBar.open("No agent selected. Please select an agent first.","OK")})}cancelChanges(){this.agentService.agentChangeCancel(this.appNameInput).subscribe(A=>{}),this.exitBuilderMode.emit()}saveAgent(A){let e=this.agentBuilderService.getRootNode();if(!e){this.snackBar.open("Please create an agent first.","OK");return}let i=new FormData,n=this.agentBuilderService.getCurrentAgentToolBoards();zd.generateYamlFile(e,i,A,n),this.agentService.agentBuildTmp(i).subscribe(o=>{o&&this.agentService.agentBuild(i).subscribe(r=>{r?this.router.navigate(["/"],{queryParams:{app:A}}).then(()=>{window.location.reload()}):this.snackBar.open("Something went wrong, please try again","OK")})})}getToolIcon(A){return wQ(A.name,A.toolType)}getAgentIcon(A){switch(A){case"SequentialAgent":return"more_horiz";case"LoopAgent":return"sync";case"ParallelAgent":return"density_medium";case"LlmAgent":default:return"psychology"}}addSubAgentWithType(A){if(!this.agentConfig?.name)return;let e=this.agentConfig.agent_class!=="LlmAgent";this.agentBuilderService.setAddSubAgentSubject(this.agentConfig.name,A,e)}callbackMenuTooltips(A){return E0.getCallbackMenuTooltips(A)}toolMenuTooltips(A){return E0.getToolMenuTooltips(A)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-builder-tabs"]],viewQuery:function(e,i){if(e&1&&At(r0,5),e&2){let n;oA(n=rA())&&(i.jsonEditorComponent=n.first)}},inputs:{appNameInput:"appNameInput"},outputs:{exitBuilderMode:"exitBuilderMode",closePanel:"closePanel"},decls:75,vars:12,consts:[["subAgentMenu","matMenu"],["callbacksMenu","matMenu"],["agentMenuTrigger","matMenuTrigger"],["toolsMenu","matMenu"],[2,"margin-top","20px","margin-left","20px","display","flex"],[2,"width","100%"],[1,"drawer-header"],[1,"drawer-logo"],["src","assets/ADK-512-color.svg","width","32px","height","32px"],["matTooltip","Collapse panel",1,"material-symbols-outlined",2,"color","#c4c7c5","cursor","pointer","margin-right","15px",3,"click"],[1,"builder-tabs-container"],[1,"builder-tab-content"],[1,"agent-breadcrumb-container"],[1,"content-wrapper"],[1,"builder-panel-wrapper"],[1,"panel-title"],[1,"config-form"],["mat-icon-button","","type","button","aria-label","Add sub agent",1,"panel-action-button",3,"matMenuTriggerFor"],["mat-menu-item","",3,"click"],[1,"tools-chips-container"],["mat-icon-button","","type","button","aria-label","Add callback",1,"panel-action-button",3,"matMenuTriggerFor"],[1,"menu-header"],["mat-menu-item","","matTooltipPosition","right",3,"click","matTooltip"],[1,"action-buttons"],["mat-raised-button","","color","secondary",1,"save-button",3,"click"],["mat-button","",1,"cancel-button",3,"click"],[1,"breadcrumb-chip",3,"click"],[1,"breadcrumb-arrow"],[1,"form-row"],[1,"agent-name-field"],["matInput","",3,"ngModelChange","ngModel","disabled"],[1,"agent-type-field"],["disabled","",3,"ngModelChange","ngModel"],[3,"value"],[3,"ngModel"],[3,"ngModelChange","ngModel"],["matInput","","rows","5",3,"ngModelChange","ngModel"],["matInput","","rows","3",3,"ngModelChange","ngModel"],["matInput","","type","number","min","1",3,"ngModelChange","ngModel"],["mat-icon-button","","type","button","aria-label","Add tool",1,"panel-action-button",3,"matMenuTriggerFor"],["aria-label","Tools"],[1,"tool-chip"],[1,"tool-chip",3,"click"],["matChipAvatar","",1,"tool-icon"],[1,"tool-chip-name"],["matChipRemove","","aria-label","Remove tool",3,"click"],["aria-label","Sub Agents"],["matChipRemove","","aria-label","Remove sub agent",3,"click"],[1,"tools-chips-container","callbacks-list"],["aria-label","Callbacks"],[1,"callback-row"],[1,"callback-row",3,"click"],[1,"callback-chip"],[1,"chip-content"],[1,"chip-type"],[1,"chip-name"],["mat-icon-button","","aria-label","Remove callback",1,"callback-remove",3,"click"]],template:function(e,i){if(e&1){let n=Ue();m(0,"div",4)(1,"div",5)(2,"div",6)(3,"div",7),ve(4,"img",8),T(5," Agent Development Kit "),p(),m(6,"span",9),ee("click",function(){return q(n),W(i.closePanel.emit())}),T(7,"left_panel_close"),p()()()(),m(8,"div",10)(9,"div",11),ne(10,vlA,3,0,"div",12),m(11,"div",13)(12,"div",14)(13,"div",15),T(14," Configuration "),p(),m(15,"div"),ne(16,RlA,16,7,"div",16),p()(),ne(17,GlA,22,7,"div",14),m(18,"div",14)(19,"div",15)(20,"div"),T(21," Sub Agents "),p(),m(22,"div")(23,"button",17)(24,"mat-icon"),T(25,"add"),p()(),m(26,"mat-menu",null,0)(28,"button",18),ee("click",function(){return q(n),W(i.addSubAgentWithType("LlmAgent"))}),m(29,"mat-icon"),T(30,"psychology"),p(),m(31,"span"),T(32,"LLM Agent"),p()(),m(33,"button",18),ee("click",function(){return q(n),W(i.addSubAgentWithType("SequentialAgent"))}),m(34,"mat-icon"),T(35,"more_horiz"),p(),m(36,"span"),T(37,"Sequential Agent"),p()(),m(38,"button",18),ee("click",function(){return q(n),W(i.addSubAgentWithType("LoopAgent"))}),m(39,"mat-icon"),T(40,"sync"),p(),m(41,"span"),T(42,"Loop Agent"),p()(),m(43,"button",18),ee("click",function(){return q(n),W(i.addSubAgentWithType("ParallelAgent"))}),m(44,"mat-icon"),T(45,"density_medium"),p(),m(46,"span"),T(47,"Parallel Agent"),p()()()()(),ne(48,UlA,4,0,"div",19),p(),m(49,"div",14)(50,"div",15)(51,"div"),T(52," Callbacks "),p(),m(53,"div")(54,"button",20)(55,"mat-icon"),T(56,"add"),p()(),m(57,"mat-menu",null,1)(59,"div",21),T(60,"Agent Lifecycle"),p(),m(61,"button",22),ee("click",function(){return q(n),W(i.addCallback("before_agent"))}),m(62,"span"),T(63,"Before Agent"),p()(),m(64,"button",22),ee("click",function(){return q(n),W(i.addCallback("after_agent"))}),m(65,"span"),T(66,"After Agent"),p()(),ne(67,TlA,18,4),p()()(),ne(68,YlA,1,1),Ii(69,"async"),p()(),m(70,"div",23)(71,"button",24),ee("click",function(){return q(n),W(i.saveChanges())}),T(72," Save "),p(),m(73,"button",25),ee("click",function(){return q(n),W(i.cancelChanges())}),T(74," Cancel "),p()()()()}if(e&2){let n,o=Ji(27),r=Ji(58);y(10),$(i.hierarchyPath.length>0?10:-1),y(6),$(i.agentConfig?16:-1),y(),$((i.agentConfig==null?null:i.agentConfig.agent_class)==="LlmAgent"?17:-1),y(6),te("matMenuTriggerFor",o),y(25),$(i.agentConfig&&i.agentConfig.sub_agents&&i.agentConfig.sub_agents.length>0?48:-1),y(6),te("matMenuTriggerFor",r),y(7),te("matTooltip",i.callbackMenuTooltips("before_agent")),y(3),te("matTooltip",i.callbackMenuTooltips("after_agent")),y(3),$((i.agentConfig==null?null:i.agentConfig.agent_class)==="LlmAgent"?67:-1),y(),$((n=Qi(69,10,i.callbacksMap$))?68:-1,n)}},dependencies:[Ur,ts,Kn,Mr,sN,Fo,gN,Cr,Un,Ih,sIe,ds,ir,Gs,ya,q0,Ac,Yl,Ma,sd,BE,m2,WCe,d6,jCe,VCe,qCe,mAe,aD],styles:[".builder-tabs-container[_ngcontent-%COMP%]{width:100%;margin-top:40px;height:calc(95vh - 20px);display:flex;flex-direction:column}.agent-breadcrumb-container[_ngcontent-%COMP%]{padding:2px 20px 8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;border-bottom:1px solid #444746}.breadcrumb-chip[_ngcontent-%COMP%]{background-color:transparent;color:#5c5f5e;font-family:Google Sans;font-size:16px;font-weight:500;border:none;cursor:pointer;transition:all .2s ease;padding:4px 8px;border-radius:4px;display:inline-block;-webkit-user-select:none;user-select:none}.breadcrumb-chip[_ngcontent-%COMP%]:hover{color:#aecbfa}.breadcrumb-chip.current-agent[_ngcontent-%COMP%]{color:#dadce0;font-weight:500}.breadcrumb-arrow[_ngcontent-%COMP%]{color:#666;font-size:16px;width:16px;height:16px}.builder-tab-content[_ngcontent-%COMP%]{color:#9aa0a6;display:flex;flex-direction:column;flex:1;overflow:hidden}.builder-tab-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:8px 0;font-size:14px;line-height:1.5}.builder-tab-content[_ngcontent-%COMP%]{--mdc-filled-text-field-container-color: #333537}.builder-tab-content[_ngcontent-%COMP%]{--mdc-filled-text-field-focus-active-indicator-color: #333537}.builder-tab-content[_ngcontent-%COMP%]{--mdc-filled-text-field-active-indicator-color: #333537}.builder-tab-content[_ngcontent-%COMP%]{--mdc-filled-text-field-hover-active-indicator-color: #333537}[_nghost-%COMP%] .mat-mdc-text-field-wrapper{border:none!important}.components-section[_ngcontent-%COMP%]{margin-bottom:32px}.components-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{color:#e8eaed;font-size:14px;font-weight:500;margin:0 0 16px;text-transform:uppercase;letter-spacing:.5px}.config-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:16px;margin-top:20px}.config-form[_ngcontent-%COMP%] .form-row[_ngcontent-%COMP%]{display:flex;gap:16px;align-items:flex-start}.config-form[_ngcontent-%COMP%] .form-row[_ngcontent-%COMP%] .agent-name-field[_ngcontent-%COMP%]{flex:1}.config-form[_ngcontent-%COMP%] .form-row[_ngcontent-%COMP%] .agent-type-field[_ngcontent-%COMP%]{width:32%}.config-form[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}.config-form[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{margin-bottom:8px}.config-form[_ngcontent-%COMP%] .tool-code-section[_ngcontent-%COMP%]{margin-top:16px}.config-form[_ngcontent-%COMP%] .tool-code-section[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0 0 8px;color:#9aa0a6;font-size:14px;font-weight:500}.config-form[_ngcontent-%COMP%] .tool-args-header[_ngcontent-%COMP%]{color:#e8eaed;font-size:14px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.json-editor-wrapper[_ngcontent-%COMP%]{height:300px;max-height:300px}.tab-content-container[_ngcontent-%COMP%]{margin-top:20px;overflow-y:auto}.agent-list-row[_ngcontent-%COMP%]{display:flex;margin-top:10px}.sub-agent-list-row[_ngcontent-%COMP%]{display:flex;margin-top:10px;margin-left:16px}.tree-view[_ngcontent-%COMP%] mat-tree[_ngcontent-%COMP%]{background-color:inherit!important}.tree-view[_ngcontent-%COMP%] expand-button[_ngcontent-%COMP%]{background-color:transparent;border:0}.node-item[_ngcontent-%COMP%]{display:flex;align-items:center}.node-icon[_ngcontent-%COMP%]{margin-right:14px}.node-name[_ngcontent-%COMP%]{margin-top:2px;display:flex;align-items:center}.no-tools-message[_ngcontent-%COMP%]{display:block;color:#9aa0a6;font-size:16px;margin-top:16px;margin-bottom:16px;text-align:center}.tools-list[_ngcontent-%COMP%]{list-style:none;padding:0}.tool-name[_ngcontent-%COMP%]{cursor:pointer;padding:11px;border-radius:8px;display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;background-color:#303030;color:#e8eaed;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.tool-name[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{visibility:hidden}.tool-name[_ngcontent-%COMP%]:hover{background-color:#141414}.tool-name[_ngcontent-%COMP%]:hover button[_ngcontent-%COMP%]{visibility:visible}.tool-list-item-name[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;padding-right:8px} .tools-chips-container .mat-mdc-chip-set{width:100%} .tools-chips-container.callbacks-list .mat-mdc-chip-set{display:flex;flex-direction:column;gap:8px;width:100%} .tools-chips-container .mat-mdc-chip.tool-chip{background-color:#303030;color:#e8eaed;font-family:Google Sans,sans-serif;font-size:14px;font-weight:500;cursor:pointer;margin:4px} .tools-chips-container .mat-mdc-chip.tool-chip:hover{background-color:#3c4043} .tools-chips-container .mat-mdc-chip.tool-chip .mat-mdc-chip-action-label{display:flex;align-items:center;gap:6px} .tools-chips-container .mat-mdc-chip.tool-chip .tool-chip-name{display:inline-flex;align-items:center} .tools-chips-container .mat-mdc-chip.tool-chip .tool-icon{font-size:18px;width:18px;height:18px} .tools-chips-container .mat-mdc-chip.tool-chip .mat-mdc-chip-remove{opacity:1;color:#9aa0a6} .tools-chips-container .mat-mdc-chip.tool-chip .mat-mdc-chip-remove mat-icon{font-size:18px;width:18px;height:18px} .tools-chips-container .mat-mdc-chip.tool-chip .mat-mdc-chip-remove:hover{color:#e8eaed} .tools-chips-container .mat-mdc-chip.callback-chip{background:#333537;background-color:#333537;color:#f1f3f4;font-family:Google Sans,sans-serif;font-size:14px;display:flex;flex-direction:row;align-items:center;gap:12px;width:auto;height:40px;border-radius:8px;border:none;box-shadow:none;outline:none;--mdc-chip-outline-width: 0;--mdc-chip-outline-color: transparent;--mdc-chip-elevated-container-color: #333537;--mdc-chip-flat-container-color: #333537;flex:1 1 auto;min-width:0} .tools-chips-container .mat-mdc-chip.callback-chip:before, .tools-chips-container .mat-mdc-chip.callback-chip:after, .tools-chips-container .mat-mdc-chip.callback-chip .mat-mdc-chip-focus-overlay{border:none;box-shadow:none} .tools-chips-container .mat-mdc-chip.callback-chip .mat-mdc-chip-action-label{display:flex;flex:1;align-items:center;width:100%;gap:12px} .tools-chips-container .mat-mdc-chip.callback-chip .chip-content{display:flex;flex-direction:row;align-items:center;gap:12px;flex:1;min-width:0} .tools-chips-container .mat-mdc-chip.callback-chip .chip-type{color:#8f9aa6;font-size:13px;font-weight:500;white-space:nowrap} .tools-chips-container .mat-mdc-chip.callback-chip .chip-name{color:#f5f7f9;font-size:15px;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.tools-chips-container[_ngcontent-%COMP%]{margin-top:12px;padding:0 4px}.tools-chips-container.callbacks-list[_ngcontent-%COMP%]{padding-right:0;padding-left:0}.callback-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;width:100%;cursor:pointer}.callback-remove[_ngcontent-%COMP%]{color:#f1f3f4;cursor:pointer;width:32px;height:32px;min-width:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0}.callback-remove[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px;line-height:1;display:flex;align-items:center;justify-content:center;transform:translateY(.5px)}.back-button[_ngcontent-%COMP%]{margin-bottom:16px}.add-tool-button[_ngcontent-%COMP%]{width:100%;background:linear-gradient(0deg,#8ab4f83d 0% 100%),#202124;border:none;border-radius:4px;margin-top:12px;cursor:pointer}.add-tool-button-detail[_ngcontent-%COMP%]{display:flex;padding:8px 16px 8px 12px;justify-content:center}.add-tool-button-text[_ngcontent-%COMP%]{padding-top:2px;color:var(--Blue-100, #d2e3fc);font-family:Google Sans;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.agent-tool-section[_ngcontent-%COMP%]{margin-top:16px;padding:16px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background-color:#ffffff05}.agent-tool-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{color:#e8eaed;font-size:16px;font-weight:500;margin:0 0 8px}.agent-tool-section[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:#9aa0a6;font-size:14px;margin:0 0 16px;line-height:1.5}.agent-tool-section[_ngcontent-%COMP%] .create-agent-tool-btn[_ngcontent-%COMP%]{background-color:#8ab4f8;color:#202124;font-weight:500}.agent-tool-section[_ngcontent-%COMP%] .create-agent-tool-btn[_ngcontent-%COMP%]:hover{background-color:#aecbfa}.no-callbacks-message[_ngcontent-%COMP%]{color:#9aa0a6;font-size:16px;margin-top:16px;text-align:center}.callback-name[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;padding-right:8px}.callback-section[_ngcontent-%COMP%]{margin-top:16px}.callback-section[_ngcontent-%COMP%] .callback-section-label[_ngcontent-%COMP%]{margin:0 0 8px;color:#9aa0a6;font-size:14px;font-weight:500;text-transform:none}.callback-groups-wrapper[_ngcontent-%COMP%]{margin-top:16px}.callback-group[_ngcontent-%COMP%]{margin-top:5px}.callback-group[_ngcontent-%COMP%]{--mat-expansion-container-background-color: #333537}.callback-group[_ngcontent-%COMP%]{--mat-expansion-header-focus-state-layer-color: red}.callback-group[_ngcontent-%COMP%]{--mat-expansion-header-description-color: #8e918f}.callback-group[_ngcontent-%COMP%]{--mat-expansion-header-text-size: 15}.callback-list[_ngcontent-%COMP%]{padding:8px 0}.no-callbacks-in-type[_ngcontent-%COMP%]{color:#9aa0a6;font-size:14px;font-style:italic;padding:12px;text-align:center}.callback-item[_ngcontent-%COMP%]{cursor:pointer;padding:8px 12px;border-radius:4px;display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;background-color:#303030;color:#e8eaed;font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.25px}.callback-item[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{visibility:hidden}.callback-item[_ngcontent-%COMP%]:hover{background-color:#444746}.callback-item[_ngcontent-%COMP%]:hover button[_ngcontent-%COMP%]{visibility:visible}.add-callback-icon[_ngcontent-%COMP%]{color:#8ab4f8}.add-callback-icon[_ngcontent-%COMP%]:hover{background-color:#8ab4f81a} .callback-group .mat-expansion-panel-header.mat-expanded:focus{background-color:#444746!important} .callback-group .mat-expansion-panel-header.mat-expanded{background-color:#444746!important} .callback-group .mat-expansion-panel-header.mat-expanded:hover{background-color:#444746!important} .callback-group .mat-expansion-panel-header-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}mat-tab-group[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:16px 20px 0;min-height:0} .mat-mdc-tab-body-wrapper{flex:1;overflow:hidden;min-height:0} .mat-mdc-tab-body-content{flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:0}mat-tab-group[_ngcontent-%COMP%]{flex:1;padding-bottom:0;display:flex;flex-direction:column;overflow:hidden} .mat-mdc-tab-body-wrapper{flex:1;overflow:hidden} .mat-mdc-tab-body-content{height:100%;overflow:hidden} .mat-drawer-inner-container{overflow:hidden}.action-buttons[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;padding:16px 20px;border-top:1px solid rgba(255,255,255,.1);flex-shrink:0;margin-top:auto;background-color:#202124}.action-buttons[_ngcontent-%COMP%] .save-button[_ngcontent-%COMP%]{background-color:#8ab4f8;color:#202124;font-weight:500}.action-buttons[_ngcontent-%COMP%] .save-button[_ngcontent-%COMP%]:hover{background-color:#aecbfa}.action-buttons[_ngcontent-%COMP%] .cancel-button[_ngcontent-%COMP%]{color:#9aa0a6;border:1px solid rgba(154,160,166,.3)}.action-buttons[_ngcontent-%COMP%] .cancel-button[_ngcontent-%COMP%]:hover{background-color:#9aa0a61a;color:#e8eaed}.builder-panel-wrapper[_ngcontent-%COMP%]{border-bottom:1px solid #444746;padding:12px 24px}.panel-title[_ngcontent-%COMP%]{color:#c4c7c5;font-family:Google Sans;font-size:16px;font-style:normal;font-weight:500;line-height:24px;display:flex;justify-content:space-between}.panel-title[_ngcontent-%COMP%] .panel-action-button[_ngcontent-%COMP%]{color:#f1f3f4;width:32px;height:32px;min-width:32px;min-height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;padding:0}.panel-title[_ngcontent-%COMP%] .panel-action-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px;line-height:1;display:flex;align-items:center;justify-content:center}.content-wrapper[_ngcontent-%COMP%]{flex:1;overflow-y:auto}.drawer-logo[_ngcontent-%COMP%]{margin-left:9px;display:flex;align-items:center;font-size:16px;font-style:normal;font-weight:500;line-height:24px;letter-spacing:.1px}.drawer-logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{margin-right:9px}.drawer-header[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:space-between;align-items:center}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-container-color: var(--side-panel-button-filled-container-color)}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-label-text-color: var(--side-panel-button-filled-label-text-color)}.drawer-header[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{width:36px;height:36px;color:var(--side-panel-mat-icon-color);cursor:pointer;display:flex;align-items:center;justify-content:center} .mat-mdc-menu-panel{background-color:#303030!important} .mat-mdc-menu-panel .menu-header{color:#9aa0a6;font-size:12px;padding:8px 16px;font-weight:500;text-transform:uppercase;pointer-events:none} .mat-mdc-menu-panel .mat-mdc-menu-item{color:#e8eaed} .mat-mdc-menu-panel .mat-mdc-menu-item:hover{background-color:#444746} .mat-mdc-menu-panel mat-divider{border-top-color:#444746;margin:4px 0}"],changeDetection:0})};var Oz={openPanelTooltip:"Open panel",evalCaseIdLabel:"Eval Case ID",cancelButton:"Cancel",saveButton:"Save",editEvalCaseTooltip:"Edit current eval case",deleteEvalCaseTooltip:"Delete current eval case",sessionIdLabel:"Session ID",userIdLabel:"User ID",loadingSessionLabel:"Loading session...",tokenStreamingLabel:"Token Streaming",createNewSessionTooltip:"Create a new Session",newSessionButton:"New Session",deleteSessionTooltip:"Delete current session",exportSessionTooltip:"Export current session",importSessionTooltip:"Import session",loadingAgentsLabel:"Loading agents, please wait...",welcomeMessage:"Welcome to ADK!",selectAgentMessage:"Select an agent on the left to begin with.",failedToLoadAgentsMessage:"Failed to load agents. To get started, run",errorMessageLabel:"Error message:",noAgentsFoundWarning:"Warning: No agents found in current folder."},Jz=new re("Chat Messages",{factory:()=>Oz});var HlA=["sideDrawer"],zlA=["bottomPanel"],PlA=[[["","adk-web-chat-container-top",""]]],jlA=["[adk-web-chat-container-top]"],VlA=t=>({"edit-mode":t}),qlA=()=>[];function WlA(t,A){if(t&1){let e=Ue();m(0,"span",8),ee("click",function(){q(e);let n=M();return W(n.toggleSidePanel())}),T(1,"left_panel_open"),p()}if(t&2){let e=M();te("matTooltip",e.i18n.openPanelTooltip)}}function ZlA(t,A){if(t&1){let e=Ue();m(0,"app-side-panel",9),ee("closePanel",function(){q(e);let n=M();return W(n.toggleSidePanel())})("tabChange",function(n){q(e);let o=M();return W(o.handleTabChange(n))})("eventSelected",function(n){q(e);let o=M();return W(o.selectEvent(n))})("sessionSelected",function(n){q(e);let o=M();return W(o.updateWithSelectedSession(n))})("sessionReloaded",function(n){q(e);let o=M();return W(o.updateWithSelectedSession(n))})("evalCaseSelected",function(n){q(e);let o=M();return W(o.updateWithSelectedEvalCase(n))})("evalSetIdSelected",function(n){q(e);let o=M();return W(o.updateSelectedEvalSetId(n))})("returnToSession",function(n){q(e);let o=M();return W(o.handleReturnToSession(n))})("evalNotInstalled",function(n){q(e);let o=M();return W(o.handleEvalNotInstalled(n))})("page",function(n){q(e);let o=M();return W(o.handlePageEvent(n))})("closeSelectedEvent",function(){q(e);let n=M();return W(n.closeSelectedEvent())})("openImageDialog",function(n){q(e);let o=M();return W(o.openViewImageDialog(n))})("appSelectionChange",function(n){q(e);let o=M();return W(o.onAppSelection(n))})("openAddItemDialog",function(){q(e);let n=M();return W(n.openAddItemDialog())})("enterBuilderMode",function(){q(e);let n=M();return W(n.enterBuilderMode())}),p()}if(t&2){let e=M();te("isApplicationSelectorEnabledObs",e.isApplicationSelectorEnabledObs)("apps$",e.apps$)("isLoadingApps",e.isLoadingApps)("selectedAppControl",e.selectedAppControl)("showSidePanel",e.showSidePanel)("appName",e.appName)("userId",e.userId)("sessionId",e.sessionId)("traceData",e.traceData)("eventData",e.eventData)("currentSessionState",e.currentSessionState)("artifacts",e.artifacts)("selectedEvent",e.selectedEvent)("selectedEventIndex",e.selectedEventIndex)("renderedEventGraph",e.renderedEventGraph)("rawSvgString",e.rawSvgString)("llmRequest",e.llmRequest)("llmResponse",e.llmResponse)("disableBuilderIcon",e.disableBuilderSwitch)}}function XlA(t,A){if(t&1){let e=Ue();m(0,"app-builder-tabs",10),ee("exitBuilderMode",function(){q(e);let n=M();return W(n.exitBuilderMode())})("closePanel",function(){q(e);let n=M();return W(n.toggleSidePanel())}),p(),ve(1,"div",11)}if(t&2){let e=M();te("appNameInput",e.appName)}}function $lA(t,A){if(t&1){let e=Ue();m(0,"div",6)(1,"div",12)(2,"button",13),ee("click",function(){q(e);let n=M();return W(n.saveAgentBuilder())}),m(3,"mat-icon"),T(4,"check"),p()(),m(5,"button",14),ee("click",function(){q(e);let n=M();return W(n.exitBuilderMode())}),m(6,"mat-icon"),T(7,"close"),p()(),m(8,"button",15),ee("click",function(){q(e);let n=M();return W(n.toggleBuilderAssistant())}),m(9,"mat-icon"),T(10,"assistant"),p()()(),m(11,"app-canvas",16),ee("toggleSidePanelRequest",function(){q(e);let n=M();return W(n.toggleSidePanel())})("builderAssistantCloseRequest",function(){q(e);let n=M();return W(n.toggleBuilderAssistant())}),p()()}if(t&2){let e=M();y(8),iA("active",e.showBuilderAssistant),y(3),te("showSidePanel",e.showSidePanel)("showBuilderAssistant",e.showBuilderAssistant)("appNameInput",e.appName)}}function egA(t,A){if(t&1){let e=Ue();m(0,"span",23),ee("click",function(){q(e);let n=M(3);return W(n.toggleSidePanel())}),T(1,"left_panel_open"),p()}if(t&2){let e=M(3);te("matTooltip",e.i18n.openPanelTooltip)}}function AgA(t,A){if(t&1){let e=Ue();m(0,"button",28),ee("click",function(){q(e);let n=M(4);return W(n.cancelEditEvalCase())}),T(1),p(),m(2,"button",29),ee("click",function(){q(e);let n=M(4);return W(n.saveEvalCase())}),T(3),p()}if(t&2){let e=M(4);y(),Pe(e.i18n.cancelButton),y(),te("disabled",!e.hasEvalCaseChanged()||e.isEvalCaseEditing()),y(),FA(" ",e.i18n.saveButton," ")}}function tgA(t,A){if(t&1){let e=Ue();m(0,"span",30),ee("click",function(){q(e);let n=M(4);return W(n.editEvalCase())}),T(1," edit "),p(),m(2,"span",30),ee("click",function(){q(e);let n=M(4);return W(n.deleteEvalCase())}),T(3," delete "),p()}if(t&2){let e=M(4);te("matTooltip",e.i18n.editEvalCaseTooltip),y(2),te("matTooltip",e.i18n.deleteEvalCaseTooltip)}}function igA(t,A){if(t&1&&(m(0,"div",24)(1,"div",25),T(2),p(),m(3,"div",26),T(4),p()(),m(5,"div",27),ne(6,AgA,4,3)(7,tgA,4,2),p()),t&2){let e=M(3);y(2),Pe(e.i18n.evalCaseIdLabel),y(2),Pe(e.evalCase.evalId),y(2),$(e.isEvalEditMode()?6:7)}}function ngA(t,A){if(t&1&&(m(0,"div",25),T(1),p(),m(2,"div",26),T(3),p(),m(4,"div",31),T(5),p(),m(6,"div",26),T(7),p(),m(8,"div",26),T(9),p()),t&2){let e=M(4);y(),Pe(e.i18n.sessionIdLabel),y(2),Pe(e.sessionId),y(2),FA(" ",e.i18n.userIdLabel," "),y(2),Pe(e.userId),y(2),Pe(e.userId)}}function ogA(t,A){if(t&1&&(m(0,"div",25),T(1),p()),t&2){let e=M(4);y(),Pe(e.i18n.loadingSessionLabel)}}function rgA(t,A){if(t&1){let e=Ue();m(0,"span",40),ee("click",function(){q(e);let n=M(5);return W(n.deleteSession(n.sessionId))}),T(1," delete "),p()}if(t&2){let e=M(5);te("matTooltip",e.i18n.deleteSessionTooltip)}}function sgA(t,A){if(t&1){let e=Ue();m(0,"span",41),ee("click",function(){q(e);let n=M(5);return W(n.exportSession())}),T(1," download "),p()}if(t&2){let e=M(5);te("matTooltip",e.i18n.exportSessionTooltip)}}function agA(t,A){if(t&1){let e=Ue();m(0,"span",42),ee("click",function(){q(e);let n=M(5);return W(n.importSession())}),T(1," upload "),p()}if(t&2){let e=M(5);te("matTooltip",e.i18n.importSessionTooltip)}}function cgA(t,A){if(t&1){let e=Ue();m(0,"div",27)(1,"div",32)(2,"mat-slide-toggle",33),Ii(3,"async"),ee("change",function(){q(e);let n=M(4);return W(n.toggleSse())}),T(4),p()(),ve(5,"mat-divider",34),m(6,"div",35)(7,"div",36),ee("click",function(){q(e);let n=M(4);return W(n.onNewSessionClick())}),m(8,"mat-icon"),T(9,"add"),p(),T(10),p(),ne(11,rgA,2,1,"span",37),Ii(12,"async"),ne(13,sgA,2,1,"span",38),Ii(14,"async"),ne(15,agA,2,1,"span",39),Ii(16,"async"),p()()}if(t&2){let e=M(4);y(2),te("checked",e.enableSseIndicator())("disabled",!Qi(3,9,e.isTokenStreamingEnabledObs)),y(2),FA(" ",e.i18n.tokenStreamingLabel," "),y(),te("vertical",!0),y(2),te("matTooltip",e.i18n.createNewSessionTooltip),y(3),FA(" ",e.i18n.newSessionButton," "),y(),$(Qi(12,11,e.isDeleteSessionEnabledObs)?11:-1),y(2),$(Qi(14,13,e.isExportSessionEnabledObs)?13:-1),y(2),$(Qi(16,15,e.importSessionEnabledObs)?15:-1)}}function lgA(t,A){if(t&1&&(m(0,"div",24),Wa(1),Ii(2,"async"),ne(3,ngA,10,5)(4,ogA,2,1,"div",25),p(),ne(5,cgA,17,17,"div",27)),t&2){let e=Qi(2,2,M(3).uiStateService.isSessionLoading());y(3),$(e===!1?3:4),y(2),$(e===!1?5:-1)}}function ggA(t,A){if(t&1&&(m(0,"div",17),ne(1,egA,2,1,"span",22)(2,igA,8,3)(3,lgA,6,4),p()),t&2){let e=M(2);te("ngClass",Al(3,VlA,e.isEvalEditMode())),y(),$(e.showSidePanel?-1:1),y(),$(e.evalCase?2:3)}}function dgA(t,A){if(t&1&&(m(0,"div",43)(1,"span"),T(2),p()()),t&2){let e=M(3);y(2),Pe(e.i18n.loadingAgentsLabel)}}function CgA(t,A){if(t&1&&(m(0,"span"),T(1),ve(2,"br"),T(3),p()),t&2){let e=M(4);y(),Pe(e.i18n.welcomeMessage),y(2),FA(" ",e.i18n.selectAgentMessage,"")}}function IgA(t,A){if(t&1&&(T(0),ve(1,"br"),m(2,"pre",45),T(3),p()),t&2){let e=M(5);FA(" ",e.i18n.errorMessageLabel," "),y(3),Pe(e.loadingError())}}function ugA(t,A){if(t&1&&(m(0,"pre",44),T(1),p()),t&2){let e=M(5);y(),Pe(e.i18n.noAgentsFoundWarning)}}function hgA(t,A){if(t&1&&(m(0,"div"),T(1),m(2,"pre"),T(3,"adk web"),p(),T(4," in the folder that contains the agents."),ve(5,"br"),ne(6,IgA,4,2)(7,ugA,2,1,"pre",44),p()),t&2){let e=M(4);y(),FA(" ",e.i18n.failedToLoadAgentsMessage," "),y(5),$(e.loadingError()?6:7)}}function BgA(t,A){if(t&1&&(m(0,"div",43),ne(1,CgA,4,2,"span"),Ii(2,"async"),ne(3,hgA,8,2,"div"),p()),t&2){let e=M(3);y(),$((Qi(2,1,e.apps$)||v4(3,qlA)).length>0?1:3)}}function EgA(t,A){if(t&1&&(ne(0,dgA,3,1,"div",43),Ii(1,"async"),ne(2,BgA,4,4,"div",43)),t&2){let e=M(2);$(e.isLoadingApps()?0:Qi(1,1,e.isApplicationSelectorEnabledObs)?2:-1)}}function fgA(t,A){if(t&1){let e=Ue();m(0,"button",46),ee("click",function(){q(e);let n=M(2);return W(n.openDialog())}),m(1,"mat-icon"),T(2,"priority_high"),p()()}}function QgA(t,A){if(t&1){let e=Ue();m(0,"app-chat-panel",47),Ii(1,"async"),qn("userInputChange",function(n){q(e);let o=M(2);return Vn(o.userInput,n)||(o.userInput=n),W(n)})("userEditEvalCaseMessageChange",function(n){q(e);let o=M(2);return Vn(o.userEditEvalCaseMessage,n)||(o.userEditEvalCaseMessage=n),W(n)}),ee("clickEvent",function(n){q(e);let o=M(2);return W(o.clickEvent(n))})("handleKeydown",function(n){q(e);let o=M(2);return W(o.handleKeydown(n.event,n.message))})("cancelEditMessage",function(n){q(e);let o=M(2);return W(o.cancelEditMessage(n))})("saveEditMessage",function(n){q(e);let o=M(2);return W(o.saveEditMessage(n))})("openViewImageDialog",function(n){q(e);let o=M(2);return W(o.openViewImageDialog(n))})("openBase64InNewTab",function(n){q(e);let o=M(2);return W(o.openBase64InNewTab(n.data,n.mimeType))})("editEvalCaseMessage",function(n){q(e);let o=M(2);return W(o.editEvalCaseMessage(n))})("deleteEvalCaseMessage",function(n){q(e);let o=M(2);return W(o.deleteEvalCaseMessage(n.message,n.index))})("editFunctionArgs",function(n){q(e);let o=M(2);return W(o.editFunctionArgs(n))})("fileSelect",function(n){q(e);let o=M(2);return W(o.onFileSelect(n))})("removeFile",function(n){q(e);let o=M(2);return W(o.removeFile(n))})("removeStateUpdate",function(){q(e);let n=M(2);return W(n.removeStateUpdate())})("sendMessage",function(n){q(e);let o=M(2);return W(o.sendMessage(n))})("updateState",function(){q(e);let n=M(2);return W(n.updateState())})("toggleAudioRecording",function(){q(e);let n=M(2);return W(n.toggleAudioRecording())})("toggleVideoRecording",function(){q(e);let n=M(2);return W(n.toggleVideoRecording())}),p()}if(t&2){let e,i=M(2);te("appName",i.appName)("messages",i.messages())("isChatMode",i.isChatMode())("evalCase",i.evalCase)("isEvalEditMode",i.isEvalEditMode())("isEvalCaseEditing",i.isEvalCaseEditing())("isEditFunctionArgsEnabled",(e=Qi(1,15,i.isEditFunctionArgsEnabledObs))!==null&&e!==void 0?e:!1),jn("userInput",i.userInput)("userEditEvalCaseMessage",i.userEditEvalCaseMessage),te("selectedFiles",i.selectedFiles)("updatedSessionState",i.updatedSessionState())("eventData",i.eventData)("isAudioRecording",i.isAudioRecording)("isVideoRecording",i.isVideoRecording)("hoveredEventMessageIndices",i.hoveredEventMessageIndices)}}function mgA(t,A){if(t&1){let e=Ue();m(0,"div",21,1),ve(2,"div",48),m(3,"app-trace-event",49),ee("panelClosed",function(){q(e);let n=M(2);return W(n.closeTraceEventDetailPanel())}),p()()}if(t&2){let e=M(2);y(3),te("userId",e.userId)("appName",e.appName)("sessionId",e.sessionId)}}function pgA(t,A){if(t&1&&(m(0,"div",7),NA(1),ne(2,ggA,4,5,"div",17),m(3,"mat-card",18),ne(4,EgA,3,3)(5,fgA,3,0,"button",19)(6,QgA,2,17,"app-chat-panel",20),p(),ne(7,mgA,4,3,"div",21),p()),t&2){let e=M();y(2),$(e.appName!=""?2:-1),y(2),$(e.selectedAppControl.value?-1:4),y(),$(e.longRunningEvents.length>0?5:-1),y(),$(e.appName!=""?6:-1),y(),$(e.bottomPanelVisible?7:-1)}}var wgA="root_agent";function ygA(t){for(t=t.replace(/-/g,"+").replace(/_/g,"/");t.length%4!==0;)t+="=";return t}var Yz=class t extends dD{nextPageLabel="Next Event";previousPageLabel="Previous Event";firstPageLabel="First Event";lastPageLabel="Last Event";getRangeLabel=(A,e,i)=>i===0?`Event 0 of ${i}`:(i=Math.max(i,0),`Event ${A*e+1} of ${i}`);static \u0275fac=(()=>{let A;return function(i){return(A||(A=ii(t)))(i||t)}})();static \u0275prov=be({token:t,factory:t.\u0275fac})},fBe="Restarting bidirectional streaming is not currently supported. Please refresh the page or start a new session.",HS=class t{i18n=E(Jz);_snackBar=E(P1);activatedRoute=E(Tl);agentService=E(Hl);artifactService=E(uD);changeDetectorRef=E(ut);dialog=E(na);document=E(ht);downloadService=E(dE);evalService=E(od);eventService=E(CE);featureFlagService=E(Ks);graphService=E(IE);localFileService=E(hD);location=E(fD);renderer=E(an);router=E(Da);safeValuesService=E(V1);sessionService=E(rd);streamChatService=E(ED);stringToColorService=E(uE);traceService=E(q1);uiStateService=E(zl);agentBuilderService=E(Ud);chatPanel=es.required(EE);canvasComponent=es.required(RQ);sideDrawer=es.required("sideDrawer");sidePanel=es.required(dQ);evalTab=es(a0);bottomPanelRef=es.required("bottomPanel");enableSseIndicator=mA(!1);isChatMode=mA(!0);isEvalCaseEditing=mA(!1);hasEvalCaseChanged=mA(!1);isEvalEditMode=mA(!1);isBuilderMode=mA(!1);videoElement;currentMessage="";messages=mA([]);lastTextChunk="";streamingTextMessage=null;latestThought="";artifacts=[];userInput="";userEditEvalCaseMessage="";userId="user";appName="";sessionId="";evalCase=null;updatedEvalCase=null;evalSetId="";isAudioRecording=!1;isVideoRecording=!1;longRunningEvents=[];functionCallEventId="";redirectUri=oa.getBaseUrlWithoutPath();showSidePanel=!0;showBuilderAssistant=!0;useSse=!1;currentSessionState={};root_agent=wgA;updatedSessionState=mA(null);isModelThinkingSubject=new Mt(!1);sessionHasUsedBidi=new Set;eventData=new Map;traceData=[];renderedEventGraph;rawSvgString=null;selectedEvent=void 0;selectedEventIndex=void 0;llmRequest=void 0;llmResponse=void 0;llmRequestKey="gcp.vertex.agent.llm_request";llmResponseKey="gcp.vertex.agent.llm_response";getMediaTypeFromMimetype=wD;selectedFiles=[];MediaType=Bu;selectedAppControl=new g2("",{nonNullable:!0});openBase64InNewTab=this.safeValuesService.openBase64InNewTab;isLoadingApps=mA(!1);loadingError=mA("");apps$=dA([]).pipe(Pt(()=>{this.isLoadingApps.set(!0),this.selectedAppControl.disable()}),Si(()=>this.agentService.listApps().pipe(br(A=>(this.loadingError.set(A.message),dA(void 0))))),Pn(1),Pt(A=>{this.isLoadingApps.set(!1),this.selectedAppControl.enable(),A?.length==1&&this.router.navigate([],{relativeTo:this.activatedRoute,queryParams:{app:A[0]}})}),za());importSessionEnabledObs=this.featureFlagService.isImportSessionEnabled();isEditFunctionArgsEnabledObs=this.featureFlagService.isEditFunctionArgsEnabled();isSessionUrlEnabledObs=this.featureFlagService.isSessionUrlEnabled();isApplicationSelectorEnabledObs=this.featureFlagService.isApplicationSelectorEnabled();isTokenStreamingEnabledObs=this.featureFlagService.isTokenStreamingEnabled();isExportSessionEnabledObs=this.featureFlagService.isExportSessionEnabled();isEventFilteringEnabled=_g(this.featureFlagService.isEventFilteringEnabled());isApplicationSelectorEnabled=_g(this.featureFlagService.isApplicationSelectorEnabled());isDeleteSessionEnabledObs=this.featureFlagService.isDeleteSessionEnabled();bottomPanelVisible=!1;hoveredEventMessageIndices=[];disableBuilderSwitch=!1;constructor(){}ngOnInit(){if(this.syncSelectedAppFromUrl(),this.updateSelectedAppUrl(),this.streamChatService.onStreamClose().subscribe(i=>{let n=`Please check server log for full details: +`+i;this.openSnackBar(n,"OK")}),new URL(window.location.href).searchParams.has("code")){let i=window.location.href;window.opener?.postMessage({authResponseUrl:i},window.origin),window.close()}this.agentService.getApp().subscribe(i=>{this.appName=i}),uc([this.agentService.getLoadingState(),this.isModelThinkingSubject]).subscribe(([i,n])=>{let o=this.messages()[this.messages().length-1];i?!o?.isLoading&&!this.streamingTextMessage&&this.messages.update(r=>[...r,{role:"bot",isLoading:!0}]):o?.isLoading&&!n&&(this.messages.update(r=>r.slice(0,-1)),this.changeDetectorRef.detectChanges())}),this.traceService.selectedTraceRow$.subscribe(i=>{let n=i?.attributes["gcp.vertex.agent.event_id"];n&&this.eventData.has(n)?this.bottomPanelVisible=!0:this.bottomPanelVisible=!1}),this.traceService.hoveredMessageIndices$.subscribe(i=>this.hoveredEventMessageIndices=i)}get sessionTab(){return this.sidePanel().sessionTabComponent()}ngAfterViewInit(){this.showSidePanel=!0,this.sideDrawer()?.open(),this.isApplicationSelectorEnabled()||this.loadSessionByUrlOrReset()}selectApp(A){A!=this.appName&&(this.agentService.setApp(A),this.loadSessionByUrlOrReset())}loadSessionByUrlOrReset(){this.isSessionUrlEnabledObs.subscribe(A=>{let e=this.activatedRoute.snapshot.queryParams,i=e.session,n=e.userId;if(n&&(this.userId=n),!A||!i){this.createSessionAndReset();return}i&&this.sessionService.getSession(this.userId,this.appName,i).pipe(Pn(1),br(o=>(this.openSnackBar("Cannot find specified session. Creating a new one.","OK"),this.createSessionAndReset(),dA(null)))).subscribe(o=>{o&&this.updateWithSelectedSession(o)})})}createSessionAndReset(){this.createSession(),this.eventData=new Map,this.messages.set([]),this.artifacts=[],this.userInput="",this.longRunningEvents=[]}createSession(){this.uiStateService.setIsSessionListLoading(!0),this.sessionService.createSession(this.userId,this.appName).subscribe(A=>{this.uiStateService.setIsSessionListLoading(!1),this.currentSessionState=A.state,this.sessionId=A.id??"",this.sessionTab?.refreshSession(),this.sessionTab?.reloadSession(this.sessionId),this.isSessionUrlEnabledObs.subscribe(e=>{e&&this.updateSelectedSessionUrl()})},()=>{this.uiStateService.setIsSessionListLoading(!1)})}sendMessage(A){return Ci(this,null,function*(){if(A.preventDefault(),!this.userInput.trim()&&this.selectedFiles.length<=0||A instanceof KeyboardEvent&&(A.isComposing||A.keyCode===229))return;if(this.userInput.trim()&&this.messages.update(i=>[...i,{role:"user",text:this.userInput}]),this.selectedFiles.length>0){let i=this.selectedFiles.map(n=>({file:n.file,url:n.url}));this.messages.update(n=>[...n,{role:"user",attachments:i}])}let e={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:yield this.getUserMessageParts()},streaming:this.useSse,stateDelta:this.updatedSessionState()};this.selectedFiles=[],this.streamingTextMessage=null,this.agentService.runSse(e).subscribe({next:i=>Ci(this,null,function*(){if(i.error){this.openSnackBar(i.error,"OK");return}if(i.content)for(let n of this.combineTextParts(i.content.parts))this.processPart(i,n),this.traceService.setEventData(this.eventData);else i.errorMessage?this.processErrorMessage(i):i.actions&&this.processActionArtifact(i);this.changeDetectorRef.detectChanges()}),error:i=>{console.error("Send message error:",i),this.openSnackBar(i,"OK")},complete:()=>{this.updatedSessionState()&&(this.currentSessionState=this.updatedSessionState(),this.updatedSessionState.set(null)),this.streamingTextMessage=null,this.sessionTab?.reloadSession(this.sessionId),this.eventService.getTrace(this.sessionId).pipe(br(i=>i.status===404?dA(null):dA([]))).subscribe(i=>{this.traceData=i,this.changeDetectorRef.detectChanges()}),this.traceService.setMessages(this.messages()),this.changeDetectorRef.detectChanges()}}),this.userInput="",this.changeDetectorRef.detectChanges()})}processErrorMessage(A){this.storeEvents(A,A),this.insertMessageBeforeLoadingMessage({text:A.errorMessage,role:"bot"})}processPart(A,e){let i=A.groundingMetadata?.searchEntryPoint?.renderedContent;if(e.text){this.isModelThinkingSubject.next(!1);let n=e.text;if(e.thought){if(n!==this.latestThought){this.storeEvents(e,A);let o={role:"bot",text:this.processThoughtText(n),thought:!0,eventId:A.id};this.insertMessageBeforeLoadingMessage(o)}this.latestThought=n}else if(this.streamingTextMessage){if(i&&(this.streamingTextMessage.renderedContent=A.groundingMetadata.searchEntryPoint.renderedContent),n==this.streamingTextMessage.text){this.storeEvents(e,A),this.streamingTextMessage=null;return}this.streamingTextMessage.text+=n}else if(this.streamingTextMessage={role:"bot",text:this.processThoughtText(n),thought:!!e.thought,eventId:A.id},i&&(this.streamingTextMessage.renderedContent=A.groundingMetadata.searchEntryPoint.renderedContent),this.insertMessageBeforeLoadingMessage(this.streamingTextMessage),!this.useSse){this.storeEvents(e,A),this.streamingTextMessage=null;return}}else e.thought?this.isModelThinkingSubject.next(!0):(this.isModelThinkingSubject.next(!1),this.storeEvents(e,A),this.storeMessage(e,A,A.author==="user"?"user":"bot"))}getUserMessageParts(){return Ci(this,null,function*(){let A=[];if(this.userInput.trim()&&A.push({text:`${this.userInput}`}),this.selectedFiles.length>0)for(let e of this.selectedFiles)A.push(yield this.localFileService.createMessagePartFromFile(e.file));return A})}processActionArtifact(A){A.actions&&A.actions.artifactDelta&&(this.storeEvents(null,A),this.storeMessage(null,A,"bot"))}combineTextParts(A){let e=[],i;for(let n of A)n.text&&!n.thought?i?i.text+=n.text:(i={text:n.text},e.push(i)):(i=void 0,e.push(n));return e}updateRedirectUri(A,e){try{let i=new URL(A);return i.searchParams.set("redirect_uri",e),i.toString()}catch(i){return console.warn("Failed to update redirect URI: ",i),A}}storeMessage(A,e,i,n,o){if(e?.author&&this.createAgentIconColorClass(e.author),e?.longRunningToolIds&&e.longRunningToolIds.length>0){this.getAsyncFunctionsFromParts(e.longRunningToolIds,e.content.parts,e.invocationId);let s=this.longRunningEvents[0].function;if(s.args.authConfig&&s.args.authConfig.exchangedAuthCredential&&s.args.authConfig.exchangedAuthCredential.oauth2){let a=s.args.authConfig.exchangedAuthCredential.oauth2.authUri,c=this.updateRedirectUri(a,this.redirectUri);this.openOAuthPopup(c).then(l=>{this.functionCallEventId=e.id,this.sendOAuthResponse(s,l,this.redirectUri)}).catch(l=>{console.error("OAuth Error:",l)})}else this.functionCallEventId=e.id}if(e?.actions&&e.actions.artifactDelta)for(let s in e.actions.artifactDelta)e.actions.artifactDelta.hasOwnProperty(s)&&this.renderArtifact(s,e.actions.artifactDelta[s]);e?.evalStatus&&this.isChatMode.set(!1);let r={role:i,evalStatus:e?.evalStatus,failedMetric:e?.failedMetric,evalScore:e?.evalScore,evalThreshold:e?.evalThreshold,actualInvocationToolUses:e?.actualInvocationToolUses,expectedInvocationToolUses:e?.expectedInvocationToolUses,actualFinalResponse:e?.actualFinalResponse,expectedFinalResponse:e?.expectedFinalResponse,invocationIndex:n!==void 0?n:void 0,finalResponsePartIndex:o?.finalResponsePartIndex!==void 0?o.finalResponsePartIndex:void 0,toolUseIndex:o?.toolUseIndex!==void 0?o.toolUseIndex:void 0};if(A){if(A.inlineData){let s=this.formatBase64Data(A.inlineData.data,A.inlineData.mimeType);r.inlineData={displayName:A.inlineData.displayName,data:s,mimeType:A.inlineData.mimeType}}else if(A.text)r.text=A.text,r.thought=!!A.thought,e?.groundingMetadata&&e.groundingMetadata.searchEntryPoint&&e.groundingMetadata.searchEntryPoint.renderedContent&&(r.renderedContent=e.groundingMetadata.searchEntryPoint.renderedContent),r.eventId=e?.id;else if(A.functionCall)r.functionCall=A.functionCall,r.eventId=e?.id;else if(A.functionResponse)r.functionResponse=A.functionResponse,r.eventId=e?.id;else if(A.executableCode)r.executableCode=A.executableCode;else if(A.codeExecutionResult&&(r.codeExecutionResult=A.codeExecutionResult,e.actions&&e.actions.artifact_delta))for(let s in e.actions.artifact_delta)e.actions.artifact_delta.hasOwnProperty(s)&&this.renderArtifact(s,e.actions.artifact_delta[s])}A&&Object.keys(A).length>0&&this.insertMessageBeforeLoadingMessage(r)}insertMessageBeforeLoadingMessage(A){this.messages.update(e=>{let i=e[e.length-1];return i?.isLoading?[...e.slice(0,-1),A,i]:[...e,A]})}formatBase64Data(A,e){let i=ygA(A);return`data:${e};base64,${i}`}renderArtifact(A,e){let i={role:"bot",inlineData:{data:"",mimeType:"image/png"}};this.insertMessageBeforeLoadingMessage(i);let n=this.messages(),r=n[n.length-1]?.isLoading?n.length-2:n.length-1;this.artifactService.getArtifactVersion(this.userId,this.appName,this.sessionId,A,e).subscribe(s=>{let a=s.inlineData.mimeType,c=this.formatBase64Data(s.inlineData.data,a),l=wD(a),d={name:this.createDefaultArtifactName(a),data:c,mimeType:a,mediaType:l};this.messages.update(C=>{let I=[...C];return I[r]={role:"bot",inlineData:d},I}),this.artifacts=[...this.artifacts,{id:A,data:c,mimeType:a,versionId:e,mediaType:wD(a)}]})}storeEvents(A,e){let i="";A==null&&e.actions.artifactDelta?i+="eventAction: artifact":A&&(A.text?i+="text:"+A.text:A.functionCall?i+="functionCall:"+A.functionCall.name:A.functionResponse?i+="functionResponse:"+A.functionResponse.name:A.executableCode?i+="executableCode:"+A.executableCode.code.slice(0,10):A.codeExecutionResult?i+="codeExecutionResult:"+A.codeExecutionResult.outcome:A.errorMessage&&(i+="errorMessage:"+A.errorMessage)),e.title=i,this.eventData.set(e.id,e),this.eventData=new Map(this.eventData)}sendOAuthResponse(A,e,i){this.longRunningEvents.pop();let n={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:[]}};var o=structuredClone(A.args.authConfig);o.exchangedAuthCredential.oauth2.authResponseUri=e,o.exchangedAuthCredential.oauth2.redirectUri=i,n.functionCallEventId=this.functionCallEventId,n.newMessage.parts.push({function_response:{id:A.id,name:A.name,response:o}});let r=[];this.agentService.runSse(n).subscribe({next:s=>Ci(this,null,function*(){r.push(s)}),error:s=>console.error("SSE error:",s),complete:()=>{this.processRunSseResponse(r)}})}processRunSseResponse(A){for(let e of A)if(e.content)for(let i of e.content.parts)this.processPart(e,i)}openDialog(){this.dialog.open(s9,{width:"600px",data:{event:this.longRunningEvents[0].function,appName:this.appName,userId:this.userId,sessionId:this.sessionId,functionCallEventId:this.functionCallEventId,invocationId:this.longRunningEvents[0].invocationId}}).afterClosed().subscribe(e=>{e&&(this.removeFinishedLongRunningEvents(e.events),this.processRunSseResponse(e.response),this.changeDetectorRef.detectChanges())})}removeFinishedLongRunningEvents(A){let e=new Set(A.map(i=>i.id));this.longRunningEvents=this.longRunningEvents.filter(i=>!e.has(i.id))}createAgentIconColorClass(A){let e=this.stringToColorService.stc(A),i=`custom-icon-color-${e.replace("#","")}`;this.injectCustomIconColorStyle(i,e)}clickEvent(A){let e=this.messages()[A].eventId;this.sideDrawer()?.open(),this.showSidePanel=!0,this.selectEvent(e)}ngOnDestroy(){this.streamChatService.closeStream()}onAppSelection(A){this.isAudioRecording&&(this.stopAudioRecording(),this.isAudioRecording=!1),this.isVideoRecording&&(this.stopVideoRecording(),this.isVideoRecording=!1),this.evalTab()?.resetEvalResults(),this.traceData=[],this.bottomPanelVisible=!1}toggleAudioRecording(){this.isAudioRecording?this.stopAudioRecording():this.startAudioRecording()}startAudioRecording(){if(this.sessionHasUsedBidi.has(this.sessionId)){this.openSnackBar(fBe,"OK");return}this.isAudioRecording=!0,this.streamChatService.startAudioChat({appName:this.appName,userId:this.userId,sessionId:this.sessionId}),this.messages.update(A=>[...A,{role:"user",text:"Speaking..."},{role:"bot",text:"Speaking..."}]),this.sessionHasUsedBidi.add(this.sessionId)}stopAudioRecording(){this.streamChatService.stopAudioChat(),this.isAudioRecording=!1}toggleVideoRecording(){this.isVideoRecording?this.stopVideoRecording():this.startVideoRecording()}startVideoRecording(){if(this.sessionHasUsedBidi.has(this.sessionId)){this.openSnackBar(fBe,"OK");return}let A=this.chatPanel()?.videoContainer;A&&(this.isVideoRecording=!0,this.streamChatService.startVideoChat({appName:this.appName,userId:this.userId,sessionId:this.sessionId,videoContainer:A}),this.messages.update(e=>[...e,{role:"user",text:"Speaking..."}]),this.sessionHasUsedBidi.add(this.sessionId))}stopVideoRecording(){let A=this.chatPanel()?.videoContainer;A&&(this.streamChatService.stopVideoChat(A),this.isVideoRecording=!1)}getAsyncFunctionsFromParts(A,e,i){for(let n of e)n.functionCall&&A.includes(n.functionCall.id)&&this.longRunningEvents.push({function:n.functionCall,invocationId:i})}openOAuthPopup(A){return new Promise((e,i)=>{if(!this.safeValuesService.windowOpen(window,A,"oauthPopup","width=600,height=700")){i("Popup blocked!");return}let o=r=>{if(r.origin!==window.location.origin)return;let{authResponseUrl:s}=r.data;s?(e(s),window.removeEventListener("message",o)):console.log("OAuth failed",r)};window.addEventListener("message",o)})}toggleSidePanel(){this.showSidePanel?this.sideDrawer()?.close():this.sideDrawer()?.open(),this.showSidePanel=!this.showSidePanel}handleTabChange(A){this.isChatMode()||(this.resetEditEvalCaseVars(),this.handleReturnToSession(!0))}handleReturnToSession(A){this.sessionTab?.getSession(this.sessionId),this.evalTab()?.resetEvalCase(),this.isChatMode.set(!0)}handleEvalNotInstalled(A){A&&this.openSnackBar(A,"OK")}resetEventsAndMessages(){this.eventData.clear(),this.messages.set([]),this.artifacts=[]}updateWithSelectedSession(A){!A||!A.id||!A.events||!A.state||(this.traceService.resetTraceService(),this.sessionId=A.id,this.currentSessionState=A.state,this.evalCase=null,this.isChatMode.set(!0),this.isSessionUrlEnabledObs.subscribe(e=>{e&&this.updateSelectedSessionUrl()}),this.resetEventsAndMessages(),A.events.forEach(e=>{e.content?.parts?.forEach(i=>{this.storeMessage(i,e,e.author==="user"?"user":"bot"),e.author&&e.author!=="user"&&this.storeEvents(i,e)})}),this.eventService.getTrace(this.sessionId).subscribe(e=>{this.traceData=e,this.traceService.setEventData(this.eventData),this.traceService.setMessages(this.messages())}),this.sessionService.canEdit(this.userId,A).subscribe(e=>{this.chatPanel()?.canEditSession.set(e)}),this.bottomPanelVisible=!1,this.changeDetectorRef.detectChanges())}updateWithSelectedEvalCase(A){this.evalCase=A,this.isChatMode.set(!1),this.resetEventsAndMessages();let e=0;for(let i of A.conversation){if(i.userContent?.parts)for(let n of i.userContent.parts)this.storeMessage(n,null,"user");if(i.intermediateData?.toolUses){let n=0;for(let o of i.intermediateData.toolUses){let r={functionCall:{name:o.name,args:o.args}};this.storeMessage(r,null,"bot",e,{toolUseIndex:n}),n++;let s={functionResponse:{name:o.name}};this.storeMessage(s,null,"bot")}}if(i.finalResponse?.parts){let n=0;for(let o of i.finalResponse.parts)this.storeMessage(o,null,"bot",e,{finalResponsePartIndex:n}),n++}e++}}updateSelectedEvalSetId(A){this.evalSetId=A}editEvalCaseMessage(A){this.isEvalCaseEditing.set(!0),this.userEditEvalCaseMessage=A.text,A.isEditing=!0,setTimeout(()=>{let e=this.chatPanel()?.textarea?.nativeElement;if(!e)return;e.focus();let i=e.value.length;A.text.charAt(i-1)===` +`&&i--,e.setSelectionRange(i,i)},0)}editFunctionArgs(A){this.isEvalCaseEditing.set(!0),this.dialog.open(s6,{maxWidth:"90vw",maxHeight:"90vh",data:{dialogHeader:"Edit function arguments",functionName:A.functionCall.name,jsonContent:A.functionCall.args}}).afterClosed().subscribe(i=>{this.isEvalCaseEditing.set(!1),i&&(this.hasEvalCaseChanged.set(!0),A.functionCall.args=i,this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[A.invocationIndex].intermediateData.toolUses[A.toolUseIndex].args=i)})}saveEvalCase(){this.evalService.updateEvalCase(this.appName,this.evalSetId,this.updatedEvalCase.evalId,this.updatedEvalCase).subscribe(A=>{this.openSnackBar("Eval case updated","OK"),this.resetEditEvalCaseVars()})}cancelEditEvalCase(){this.resetEditEvalCaseVars(),this.updateWithSelectedEvalCase(this.evalCase)}resetEditEvalCaseVars(){this.hasEvalCaseChanged.set(!1),this.isEvalCaseEditing.set(!1),this.isEvalEditMode.set(!1),this.updatedEvalCase=null}cancelEditMessage(A){A.isEditing=!1,this.isEvalCaseEditing.set(!1)}saveEditMessage(A){this.hasEvalCaseChanged.set(!0),this.isEvalCaseEditing.set(!1),A.isEditing=!1,A.text=this.userEditEvalCaseMessage?this.userEditEvalCaseMessage:" ",this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[A.invocationIndex].finalResponse.parts[A.finalResponsePartIndex]={text:this.userEditEvalCaseMessage},this.userEditEvalCaseMessage=""}handleKeydown(A,e){A.key==="Enter"&&!A.shiftKey?(A.preventDefault(),this.saveEditMessage(e)):A.key==="Escape"&&this.cancelEditMessage(e)}deleteEvalCaseMessage(A,e){this.hasEvalCaseChanged.set(!0),this.messages.update(i=>i.filter((n,o)=>o!==e)),this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[A.invocationIndex].finalResponse.parts.splice(A.finalResponsePartIndex,1)}editEvalCase(){this.isEvalEditMode.set(!0)}deleteEvalCase(){let A={title:"Confirm delete",message:`Are you sure you want to delete ${this.evalCase.evalId}?`,confirmButtonText:"Delete",cancelButtonText:"Cancel"};this.dialog.open(l6,{width:"600px",data:A}).afterClosed().subscribe(i=>{i&&(this.evalTab()?.deleteEvalCase(this.evalCase.evalId),this.openSnackBar("Eval case deleted","OK"))})}onNewSessionClick(){this.createSession(),this.eventData.clear(),this.messages.set([]),this.artifacts=[],this.traceData=[],this.bottomPanelVisible=!1,this.evalTab()?.showEvalHistory&&this.evalTab()?.toggleEvalHistoryButton()}onFileSelect(A){let e=A.target;if(e.files)for(let i=0;i{A&&this.canvasComponent()?.loadFromYaml(A,this.appName)},error:A=>{console.error("Error loading agent configuration:",A),this._snackBar.open("Error loading agent configuration","OK")}})}exitBuilderMode(){let A=this.router.createUrlTree([],{queryParams:{mode:null},queryParamsHandling:"merge"}).toString();this.location.replaceState(A),this.isBuilderMode.set(!1),this.agentBuilderService.clear()}toggleBuilderAssistant(){this.showBuilderAssistant=!this.showBuilderAssistant}openAddItemDialog(){this.apps$.pipe(Pn(1)).subscribe(A=>{let e=this.dialog.open(JS,{width:"600px",data:{existingAppNames:A??[]}})})}saveAgentBuilder(){this.canvasComponent()?.saveAgent(this.appName)}selectEvent(A){this.selectedEvent=this.eventData.get(A),this.selectedEventIndex=this.getIndexOfKeyInMap(A);let e;this.isEventFilteringEnabled()&&this.selectedEvent.invocationId&&(this.selectedEvent.timestamp||this.selectedEvent.timestampInMillis)&&(e={invocationId:this.selectedEvent.invocationId,timestamp:this.selectedEvent.timestamp??this.selectedEvent.timestampInMillis});let i=ae({id:this.selectedEvent.id},e);this.uiStateService.setIsEventRequestResponseLoading(!0),this.eventService.getEventTrace(i).subscribe(n=>{n[this.llmRequestKey]&&(this.llmRequest=JSON.parse(n[this.llmRequestKey])),n[this.llmResponseKey]&&(this.llmResponse=JSON.parse(n[this.llmResponseKey])),this.uiStateService.setIsEventRequestResponseLoading(!1)},()=>{this.uiStateService.setIsEventRequestResponseLoading(!1)}),this.eventService.getEvent(this.userId,this.appName,this.sessionId,this.selectedEvent.id).subscribe(n=>Ci(this,null,function*(){if(!n.dotSrc){this.renderedEventGraph=void 0;return}let o=yield this.graphService.render(n.dotSrc);this.rawSvgString=o,this.renderedEventGraph=this.safeValuesService.bypassSecurityTrustHtml(o)}))}deleteSession(A){let e={title:"Confirm delete",message:`Are you sure you want to delete this session ${this.sessionId}?`,confirmButtonText:"Delete",cancelButtonText:"Cancel"};this.dialog.open(l6,{width:"600px",data:e}).afterClosed().subscribe(n=>{n&&this.sessionService.deleteSession(this.userId,this.appName,A).subscribe(o=>{let r=this.sessionTab?.refreshSession(A);r?this.sessionTab?.getSession(r.id):window.location.reload()})})}syncSelectedAppFromUrl(){uc([this.router.events.pipe($A(A=>A instanceof ul),aA(()=>this.activatedRoute.snapshot.queryParams)),this.apps$]).subscribe(([A,e])=>{if(e&&e.length){let i=A.app;i&&e.includes(i)?(this.selectedAppControl.setValue(i),this.agentService.getAgentBuilder(i).subscribe(n=>{!n||n==""?(this.disableBuilderSwitch=!0,this.agentBuilderService.setLoadedAgentData(void 0)):(this.disableBuilderSwitch=!1,this.agentBuilderService.setLoadedAgentData(n))}),this.isBuilderMode.set(!1)):i&&this.openSnackBar(`Agent '${i}' not found`,"OK")}A.mode==="builder"&&this.enterBuilderMode()})}updateSelectedAppUrl(){this.selectedAppControl.valueChanges.pipe(Ha(),$A(Boolean)).subscribe(A=>{this.selectApp(A);let e=this.activatedRoute.snapshot.queryParams.app;A!==e&&this.router.navigate([],{queryParams:{app:A,mode:null},queryParamsHandling:"merge"})})}updateSelectedSessionUrl(){let A=this.router.createUrlTree([],{queryParams:{session:this.sessionId,userId:this.userId},queryParamsHandling:"merge"}).toString();this.location.replaceState(A)}handlePageEvent(A){if(A.pageIndex>=0){let e=this.getKeyAtIndexInMap(A.pageIndex);e&&this.selectEvent(e)}}closeSelectedEvent(){this.selectedEvent=void 0,this.selectedEventIndex=void 0}getIndexOfKeyInMap(A){let e=0,i=(o,r)=>0,n=Array.from(this.eventData.keys()).sort(i);for(let o of n){if(o===A)return e;e++}}getKeyAtIndexInMap(A){let e=(n,o)=>0,i=Array.from(this.eventData.keys()).sort(e);if(A>=0&&A{console.log(A),this.downloadService.downloadObjectAsJson(A,`session-${this.sessionId}.json`)})}updateState(){this.dialog.open(s6,{maxWidth:"90vw",maxHeight:"90vh",data:{dialogHeader:"Update state",jsonContent:this.currentSessionState}}).afterClosed().subscribe(e=>{e&&this.updatedSessionState.set(e)})}removeStateUpdate(){this.updatedSessionState.set(null)}closeTraceEventDetailPanel(){this.bottomPanelVisible=!1,this.traceService.selectedRow(void 0),this.traceService.setHoveredMessages(void 0,"")}importSession(){let A=document.createElement("input");A.type="file",A.accept="application/json",A.onchange=()=>{if(!A.files||A.files.length===0)return;let e=A.files[0],i=new FileReader;i.onload=n=>{if(n.target?.result)try{let o=JSON.parse(n.target.result);if(!o.userId||!o.appName||!o.events){this.openSnackBar("Invalid session file format","OK");return}this.sessionService.importSession(o.userId,o.appName,o.events).subscribe(r=>{this.openSnackBar("Session imported","OK"),this.sessionTab?.refreshSession()})}catch{this.openSnackBar("Error parsing session file","OK")}},i.readAsText(e)},A.click()}injectCustomIconColorStyle(A,e){if(this.document.getElementById(A))return;let i=this.renderer.createElement("style");this.renderer.setAttribute(i,"id",A),this.renderer.setAttribute(i,"type","text/css");let n=` + .${A} { + background-color: ${e} !important; + } + `;this.renderer.appendChild(i,this.renderer.createText(n)),this.renderer.appendChild(this.document.head,i)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-chat"]],viewQuery:function(e,i){e&1&&(Kr(i.chatPanel,EE,5),Kr(i.canvasComponent,RQ,5),Kr(i.sideDrawer,HlA,5),Kr(i.sidePanel,dQ,5),Kr(i.evalTab,a0,5),Kr(i.bottomPanelRef,zlA,5)),e&2&&Aa(6)},features:[gt([{provide:dD,useClass:Yz},{provide:Jz,useValue:Oz}])],ngContentSelectors:jlA,decls:8,vars:3,consts:[["sideDrawer",""],["bottomPanel",""],["autosize","",1,"drawer-container"],[1,"material-symbols-outlined",2,"position","absolute","width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","20px","z-index","9999",3,"matTooltip"],["mode","side","appResizableDrawer","",1,"side-drawer"],[3,"isApplicationSelectorEnabledObs","apps$","isLoadingApps","selectedAppControl","showSidePanel","appName","userId","sessionId","traceData","eventData","currentSessionState","artifacts","selectedEvent","selectedEventIndex","renderedEventGraph","rawSvgString","llmRequest","llmResponse","disableBuilderIcon"],[1,"builder-mode-container"],[1,"chat-container"],[1,"material-symbols-outlined",2,"position","absolute","width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","20px","z-index","9999",3,"click","matTooltip"],[3,"closePanel","tabChange","eventSelected","sessionSelected","sessionReloaded","evalCaseSelected","evalSetIdSelected","returnToSession","evalNotInstalled","page","closeSelectedEvent","openImageDialog","appSelectionChange","openAddItemDialog","enterBuilderMode","isApplicationSelectorEnabledObs","apps$","isLoadingApps","selectedAppControl","showSidePanel","appName","userId","sessionId","traceData","eventData","currentSessionState","artifacts","selectedEvent","selectedEventIndex","renderedEventGraph","rawSvgString","llmRequest","llmResponse","disableBuilderIcon"],[3,"exitBuilderMode","closePanel","appNameInput"],[1,"resize-handler"],[1,"builder-exit-button"],["mat-icon-button","","matTooltip","Accept",1,"builder-mode-action-button",3,"click"],["mat-icon-button","","matTooltip","Exit Builder Mode",1,"builder-mode-action-button",3,"click"],["mat-icon-button","","matTooltip","Builder Assistant",1,"builder-mode-action-button",3,"click"],[3,"toggleSidePanelRequest","builderAssistantCloseRequest","showSidePanel","showBuilderAssistant","appNameInput"],[1,"chat-toolbar",3,"ngClass"],[1,"chat-card"],["mat-fab","","color","primary",1,"fab-button"],[3,"appName","messages","isChatMode","evalCase","isEvalEditMode","isEvalCaseEditing","isEditFunctionArgsEnabled","userInput","userEditEvalCaseMessage","selectedFiles","updatedSessionState","eventData","isAudioRecording","isVideoRecording","hoveredEventMessageIndices"],["appResizableBottomPanel","",1,"trace-detail-container"],[1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","-2px","z-index","9999",3,"matTooltip"],[1,"material-symbols-outlined",2,"width","24px","height","24px","color","#c4c7c5","cursor","pointer","margin-left","20px","margin-top","-2px","z-index","9999",3,"click","matTooltip"],[2,"display","flex"],[1,"toolbar-session-text"],[1,"toolbar-session-id"],[1,"toolbar-actions"],["mat-button","",2,"height","30px",3,"click"],["mat-flat-button","",2,"height","30px",3,"click","disabled"],[1,"material-symbols-outlined","toolbar-icon",3,"click","matTooltip"],[1,"toolbar-session-text",2,"margin-left","16px"],[1,"toolbar-sse-toggle"],[1,"example-margin",3,"change","checked","disabled"],[2,"margin-left","8px","margin-right","8px","height","22px",3,"vertical"],[2,"display","flex","align-items","center"],["id","toolbar-new-session-button",3,"click","matTooltip"],["id","toolbar-delete-session-button",1,"material-symbols-outlined","toolbar-icon",3,"matTooltip"],["id","toolbar-export-session-button",1,"material-symbols-outlined","toolbar-icon",3,"matTooltip"],["id","toolbar-import-session-button",1,"material-symbols-outlined","toolbar-icon",3,"matTooltip"],["id","toolbar-delete-session-button",1,"material-symbols-outlined","toolbar-icon",3,"click","matTooltip"],["id","toolbar-export-session-button",1,"material-symbols-outlined","toolbar-icon",3,"click","matTooltip"],["id","toolbar-import-session-button",1,"material-symbols-outlined","toolbar-icon",3,"click","matTooltip"],[1,"empty-state-container"],[1,"warning"],[1,"error"],["mat-fab","","color","primary",1,"fab-button",3,"click"],[3,"userInputChange","userEditEvalCaseMessageChange","clickEvent","handleKeydown","cancelEditMessage","saveEditMessage","openViewImageDialog","openBase64InNewTab","editEvalCaseMessage","deleteEvalCaseMessage","editFunctionArgs","fileSelect","removeFile","removeStateUpdate","sendMessage","updateState","toggleAudioRecording","toggleVideoRecording","appName","messages","isChatMode","evalCase","isEvalEditMode","isEvalCaseEditing","isEditFunctionArgsEnabled","userInput","userEditEvalCaseMessage","selectedFiles","updatedSessionState","eventData","isAudioRecording","isVideoRecording","hoveredEventMessageIndices"],[1,"bottom-resize-handler"],[3,"panelClosed","userId","appName","sessionId"]],template:function(e,i){e&1&&(Kt(PlA),m(0,"mat-drawer-container",2),ne(1,WlA,2,1,"span",3),m(2,"mat-drawer",4,0),ne(4,ZlA,1,19,"app-side-panel",5)(5,XlA,2,1),p(),ne(6,$lA,12,5,"div",6)(7,pgA,8,5,"div",7),p()),e&2&&(y(),$(!i.showSidePanel&&i.appName===""?1:-1),y(3),$(i.isBuilderMode()?5:4),y(2),$(i.isBuilderMode()?6:7))},dependencies:[LF,Ma,NF,mD,Kn,RB,ir,nd,ta,Un,FF,aD,sE,CX,QD,h9,ts,EE,dQ,RQ,YS],styles:[".expand-side-drawer[_ngcontent-%COMP%]{position:relative;top:4%;left:1%}.drawer-container[_ngcontent-%COMP%]{height:100%;background-color:var(--chat-drawer-container-background-color)}.drawer-header[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:space-between;align-items:center}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-container-color: #89b4f8}.drawer-header[_ngcontent-%COMP%]{--mdc-filled-button-label-text-color: black}.drawer-header[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{width:36px;height:36px;color:#bdc1c6;cursor:pointer;display:flex;align-items:center;justify-content:center}.drawer-header[_ngcontent-%COMP%] .drawer-logo[_ngcontent-%COMP%]{margin-left:9px;display:flex;align-items:center;font-size:16px;font-style:normal;font-weight:500;line-height:24px;letter-spacing:.1px}.drawer-header[_ngcontent-%COMP%] .drawer-logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{margin-right:9px}.chat-container[_ngcontent-%COMP%]{width:100%;height:100%;max-width:100%;margin:auto;display:flex;flex-direction:column;flex:1}.event-container[_ngcontent-%COMP%]{color:var(--chat-event-container-color)}.chat-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;overflow:hidden;flex:1;min-height:12%;box-shadow:none;background-color:var(--chat-card-background-color)}.function-event-button[_ngcontent-%COMP%] .mdc-button__label[_ngcontent-%COMP%]{font-family:Google Sans Mono,monospace}.loading-bar[_ngcontent-%COMP%]{width:100px;margin:15px}.chat-messages[_ngcontent-%COMP%]{flex-grow:1;overflow-y:auto;padding:20px;margin-top:16px}.message-card[_ngcontent-%COMP%]{padding:5px 20px;margin:5px;border-radius:20px;max-width:80%;font-size:14px;font-weight:400;position:relative;display:inline-block}.function-event-button[_ngcontent-%COMP%]{background-color:var(--chat-function-event-button-background-color);margin:5px 5px 10px}.function-event-button-highlight[_ngcontent-%COMP%]{background-color:var(--chat-function-event-button-highlight-background-color);border-color:var(--chat-function-event-button-highlight-border-color)!important;color:var(--chat-function-event-button-highlight-color)!important}.user-message[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center}.user-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-user-message-message-card-background-color);align-self:flex-end;color:var(--chat-user-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]{display:flex;align-items:center}.bot-message[_ngcontent-%COMP%] .message-card[_ngcontent-%COMP%]{background-color:var(--chat-bot-message-message-card-background-color);align-self:flex-start;color:var(--chat-bot-message-message-card-color);box-shadow:none}.bot-message[_ngcontent-%COMP%]:focus-within .message-card[_ngcontent-%COMP%]{background-color:var(--chat-bot-message-focus-within-message-card-background-color);border:1px solid var(--chat-bot-message-focus-within-message-card-border-color)}.message-textarea[_ngcontent-%COMP%]{background-color:var(--chat-message-textarea-background-color);max-width:100%;border:none;font-family:Google Sans,Helvetica Neue,sans-serif}.message-textarea[_ngcontent-%COMP%]:focus{background-color:var(--chat-message-textarea-focus-background-color);outline:none}.edit-message-buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%]{visibility:hidden;position:absolute;left:10px;z-index:10;background-color:var(--chat-eval-compare-container-background-color);overflow:hidden;border-radius:20px;padding:5px 20px;margin-bottom:10px;font-size:16px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .actual-result[_ngcontent-%COMP%]{border-right:2px solid var(--chat-actual-result-border-right-color);padding-right:8px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%] .eval-compare-container[_ngcontent-%COMP%] .expected-result[_ngcontent-%COMP%]{padding-left:12px;min-width:350px;max-width:350px}.message-card[_ngcontent-%COMP%]:hover .eval-compare-container[_ngcontent-%COMP%]{visibility:visible}.actual-expected-compare-container[_ngcontent-%COMP%]{display:flex}.score-threshold-container[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:10px;align-items:center;margin-top:15px;font-size:14px;font-weight:600}.eval-response-header[_ngcontent-%COMP%]{padding-bottom:5px;border-bottom:2px solid var(--chat-eval-response-header-border-bottom-color);font-style:italic;font-weight:700}.header-expected[_ngcontent-%COMP%]{color:var(--chat-header-expected-color)}.header-actual[_ngcontent-%COMP%]{color:var(--chat-header-actual-color)}.eval-case-edit-button[_ngcontent-%COMP%]{cursor:pointer;margin-left:4px;margin-right:4px}.eval-pass[_ngcontent-%COMP%]{display:flex;color:var(--chat-eval-pass-color)}.eval-fail[_ngcontent-%COMP%]{display:flex;color:var(--chat-eval-fail-color)}.navigation-button-sidepanel[_ngcontent-%COMP%]{margin-left:auto;margin-right:20px}.fab-button[_ngcontent-%COMP%]{position:fixed;bottom:200px;right:100px;z-index:1000}.sidepanel-toggle[_ngcontent-%COMP%]{position:relative;top:100px;z-index:1000}.side-drawer[_ngcontent-%COMP%]{background-color:var(--chat-side-drawer-background-color);color:var(--chat-side-drawer-color);border-radius:0}.file-preview[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px;margin-bottom:8px}.file-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:5px;background:var(--chat-file-item-background-color);padding:5px;border-radius:4px}button[_ngcontent-%COMP%]{margin-left:20px;margin-right:20px}.empty-state-container[_ngcontent-%COMP%]{color:var(--chat-empty-state-container-color);height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:Google Sans,sans-serif;font-weight:400;letter-spacing:normal;line-height:24px;font-size:18px}.empty-state-container[_ngcontent-%COMP%] pre.warning[_ngcontent-%COMP%]{color:var(--chat-warning-color)}.empty-state-container[_ngcontent-%COMP%] pre.error[_ngcontent-%COMP%]{color:var(--chat-error-color)}[_nghost-%COMP%] .mat-mdc-unelevated-button:not(:disabled){color:var(--chat-mat-mdc-unelevated-button-color);background-color:var(--chat-mat-mdc-unelevated-button-background-color)}[_nghost-%COMP%] .mdc-linear-progress__buffer-dots{background:var(--chat-mdc-linear-progress-buffer-dots-background-color)}[_nghost-%COMP%] .mat-mdc-select-arrow-wrapper{margin-left:4px}[_nghost-%COMP%] .mat-mdc-text-field-wrapper{border:1px solid var(--chat-mat-mdc-text-field-wrapper-border-color)}[_nghost-%COMP%] .mdc-notched-outline__leading, [_nghost-%COMP%] .mdc-notched-outline__notch, [_nghost-%COMP%] .mdc-notched-outline__trailing{border:none}[_nghost-%COMP%] .mat-mdc-form-field-icon-suffix{padding:0 10px 0 40px}[_nghost-%COMP%] .segment-key{color:var(--chat-segment-key-color)!important}.mat-mdc-select-placeholder[_ngcontent-%COMP%]{margin-left:20px}.bottom-resize-handler[_ngcontent-%COMP%]{background:var(--chat-bottom-resize-handler-background-color);height:5px;border-radius:4px;position:absolute;display:block;width:20%;left:40%;top:0;right:0;z-index:9999;cursor:ns-resize}.trace-detail-container[_ngcontent-%COMP%]{position:relative;background-color:var(--chat-trace-detail-container-background-color)}.trace-detail-container[_ngcontent-%COMP%] app-trace-event[_ngcontent-%COMP%]{padding-top:8px}.new-session-button[_ngcontent-%COMP%]{margin-top:0;margin-left:50px;width:130px;height:28px;font-size:14px}.app-select-container[_ngcontent-%COMP%]{width:35%;background-color:#212123;height:30px;display:flex;justify-content:space-between;padding-left:20px;padding-right:20px;border-radius:10px;padding-top:5px}.app-select-container[_ngcontent-%COMP%]{--mat-select-placeholder-text-color: #8ab4f8}.app-select-container[_ngcontent-%COMP%]{--mat-select-enabled-trigger-text-color: #8ab4f8}.app-select-container[_ngcontent-%COMP%]{--mat-select-enabled-arrow-color: #8ab4f8}.adk-checkbox[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;right:0;margin-bottom:20px;margin-left:20px}.chat-toolbar[_ngcontent-%COMP%]{position:sticky;top:0;height:48px;background:var(--chat-toolbar-background-color);display:flex;align-items:center;z-index:10}.chat-toolbar.edit-mode[_ngcontent-%COMP%]{background:var(--chat-toolbar-edit-mode-background-color)}.toolbar-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center}.toolbar-session-text[_ngcontent-%COMP%]{color:var(--chat-toolbar-session-text-color);font-family:Roboto;font-size:12px;font-style:normal;font-weight:500;line-height:12px;letter-spacing:.8px;text-transform:uppercase;margin-left:20px;padding-top:4px}.toolbar-session-id[_ngcontent-%COMP%]{color:var(--chat-toolbar-session-id-color);font-family:Google Sans Mono,monospace;font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px;margin-left:5px}.toolbar-icon[_ngcontent-%COMP%]{width:24px;height:24px;color:var(--chat-toolbar-icon-color);cursor:pointer;margin-right:16px}#toolbar-new-session-button[_ngcontent-%COMP%]{font-size:14px;margin-right:16px;color:var(--chat-toolbar-new-session-color);cursor:pointer;display:flex;align-items:center}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-label-text-size: 14px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-label-text-color: var(--chat-toolbar-sse-toggle-label-text-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-track-color: var(--chat-toolbar-sse-toggle-selected-track-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-focus-track-color: var(--chat-toolbar-sse-toggle-selected-track-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-hover-track-color: var(--chat-toolbar-sse-toggle-selected-track-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-handle-color: var(--chat-toolbar-sse-toggle-selected-handle-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-focus-handle-color: var(--chat-toolbar-sse-toggle-selected-handle-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-selected-hover-handle-color: var(--chat-toolbar-sse-toggle-selected-handle-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-track-height: 24px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mdc-switch-track-width: 46px}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-track-outline-color: var(--chat-toolbar-sse-toggle-track-outline-color)}.toolbar-sse-toggle[_ngcontent-%COMP%]{--mat-switch-with-icon-handle-size: 20px}[_nghost-%COMP%] pre{white-space:pre-wrap;word-break:break-word;overflow-x:auto;max-width:100%} .mat-drawer-content{display:flex!important} .mat-drawer{border-right:1px solid var(--chat-mat-drawer-border-right-color)!important}.builder-mode-container[_ngcontent-%COMP%]{position:relative;width:100%;height:100vh;display:flex;flex-direction:column;background-color:#131314}.builder-exit-button[_ngcontent-%COMP%]{position:absolute;top:20px;right:20px;z-index:1000}.builder-mode-action-button[_ngcontent-%COMP%]{background-color:#000000b3;color:#c4c7c5;border-radius:50%;transition:all .2s ease;margin-right:0!important}.builder-mode-action-button[_ngcontent-%COMP%]:hover{background-color:#ea4335cc;color:#fff}.builder-mode-action-button.active[_ngcontent-%COMP%]{background-color:#8ab4f8cc;color:#fff}.builder-mode-action-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px}app-canvas[_ngcontent-%COMP%]{width:100%!important;height:100%!important;flex:1!important;display:flex!important;flex-direction:column!important;min-height:0!important}.build-mode-container[_ngcontent-%COMP%]{display:flex;width:100%;height:100%;background-color:#131314}.build-left-panel[_ngcontent-%COMP%], .build-right-panel[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;background-color:#1b1b1b;border:1px solid #444746;margin:10px;border-radius:8px}.build-panel-header[_ngcontent-%COMP%]{background-color:#2d2d2d;padding:16px 20px;border-bottom:1px solid #444746;border-radius:8px 8px 0 0}.build-panel-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;color:#e8eaed;font-size:16px;font-weight:500;font-family:Google Sans,Helvetica Neue,sans-serif}.build-panel-content[_ngcontent-%COMP%]{flex:1;padding:20px;color:#9aa0a6;overflow-y:auto}.build-panel-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:14px;line-height:1.5}.app-name-option[_ngcontent-%COMP%], .app-select[_ngcontent-%COMP%]{color:#9aa0a6;font-family:Google Sans Mono,monospace;font-style:normal;font-weight:400;padding-left:unset}"]})};var NQ=class t{static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-root"]],decls:1,vars:0,template:function(e,i){e&1&&ve(0,"app-chat")},dependencies:[HS],encapsulation:2})};var DgA=[{path:"",component:NQ}],zS=class t{static \u0275fac=function(e){return new(e||t)};static \u0275mod=OA({type:t});static \u0275inj=TA({imports:[$y.forRoot(DgA),$y]})};var PS=class{static getRuntimeConfig(){return window.runtimeConfig}};function vgA(t,A){if(t&1&&(m(0,"a",0),ve(1,"img",1),T(2),p()),t&2){M();let e=s2(0),i=s2(1);y(),M1("src",e,$r),y(),FA(" ",i," ")}}function bgA(t,A){t&1&&(m(0,"div"),T(1," Invalid custom logo config. Make sure that your runtime config specifies both imgUrl and text in the logo field. "),p())}var jS=class t{logoConfig=PS.getRuntimeConfig().logo;static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-custom-logo"]],decls:4,vars:3,consts:[["href","/"],["width","32px","height","32px",1,"orcas-logo",3,"src"]],template:function(e,i){if(e&1&&(Wa(0)(1),ne(2,vgA,3,2,"a",0)(3,bgA,2,0,"div")),e&2){let n=S1(i.logoConfig==null?null:i.logoConfig.imageUrl);y();let o=S1(i.logoConfig==null?null:i.logoConfig.text);y(),$(n&&o?2:3)}},styles:[`a[_ngcontent-%COMP%]{color:inherit;text-decoration:none;display:flex;align-items:center;gap:8px} + + + + + + + + + + + + + + + + +`]})};var MgA=(t,A)=>({"font-style":t,color:A}),VS=class t{text=lt("");thought=lt(!1);static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xe({type:t,selectors:[["app-markdown"]],inputs:{text:[1,"text"],thought:[1,"thought"]},features:[gt([Cm()])],decls:1,vars:5,consts:[[3,"data","ngStyle"]],template:function(e,i){e&1&&ve(0,"markdown",0),e&2&&te("data",i.text())("ngStyle",tl(2,MgA,i.thought()?"italic":"normal",i.thought()?"#9aa0a6":"white"))},dependencies:[Ur,OR,tee,wy],encapsulation:2})};var qS=class t{constructor(A){this.http=A}apiServerDomain=oa.getApiServerBaseUrl();getLatestArtifact(A,e,i,n){let o=this.apiServerDomain+`/apps/${e}/users/${A}/sessions/${i}/artifacts/${n}`;return this.http.get(o)}getArtifactVersion(A,e,i,n,o){let r=this.apiServerDomain+`/apps/${e}/users/${A}/sessions/${i}/artifacts/${n}/versions/${o}`;return this.http.get(r)}static \u0275fac=function(e){return new(e||t)(UA(wa))};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})};var WS=class t{audioContext=new AudioContext({sampleRate:22e3});lastAudioTime=0;playAudio(A){let e=this.combineAudioBuffer(A);e&&this.playPCM(e)}combineAudioBuffer(A){if(A.length===0)return;let e=A.reduce((o,r)=>o+r.length,0),i=new Uint8Array(e),n=0;for(let o of A)i.set(o,n),n+=o.length;return i}playPCM(A){let e=new Float32Array(A.length/2);for(let s=0;s=32768&&(a-=65536),e[s]=a/32768}let i=this.audioContext.createBuffer(1,e.length,22e3);i.copyToChannel(e,0);let n=this.audioContext.createBufferSource();n.buffer=i,n.connect(this.audioContext.destination);let o=this.audioContext.currentTime,r=Math.max(this.lastAudioTime,o);n.start(r),this.lastAudioTime=r+i.duration}static \u0275fac=function(e){return new(e||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})};var ZS=new re("AudioRecordingService"),XS=new re("AudioWorkletModulePath");var $S=class t{audioWorkletModulePath=E(XS);stream;audioContext;source;audioBuffer=[];startRecording(){return Ci(this,null,function*(){try{this.stream=yield navigator.mediaDevices.getUserMedia({audio:!0}),this.audioContext=new AudioContext,yield this.audioContext.audioWorklet.addModule(this.audioWorkletModulePath),this.source=this.audioContext.createMediaStreamSource(this.stream);let A=new AudioWorkletNode(this.audioContext,"audio-processor");A.port.onmessage=e=>{let i=e.data,n=this.float32ToPCM(i);this.audioBuffer.push(n)},this.source.connect(A),A.connect(this.audioContext.destination)}catch(A){console.error("Error accessing microphone:",A)}})}stopRecording(){this.source&&this.source.disconnect(),this.audioContext&&this.audioContext.close(),this.stream&&this.stream.getTracks().forEach(A=>A.stop())}getCombinedAudioBuffer(){if(this.audioBuffer.length===0)return;let A=this.audioBuffer.reduce((n,o)=>n+o.length,0),e=new Uint8Array(A),i=0;for(let n of this.audioBuffer)e.set(n,i),i+=n.length;return e}cleanAudioBuffer(){this.audioBuffer=[]}float32ToPCM(A){let e=new ArrayBuffer(A.length*2),i=new DataView(e);for(let n=0;nA[GAe]==="true"))}isEditFunctionArgsEnabled(){return this.route.queryParams.pipe(aA(A=>A[KAe]==="true"))}isSessionUrlEnabled(){return dA(!0)}isA2ACardEnabled(){return this.route.queryParams.pipe(aA(A=>A[UAe]==="true"))}isApplicationSelectorEnabled(){return dA(!0)}isAlwaysOnSidePanelEnabled(){return dA(!1)}isTraceEnabled(){return dA(!0)}isArtifactsTabEnabled(){return dA(!0)}isEvalEnabled(){return dA(!0)}isTokenStreamingEnabled(){return dA(!0)}isMessageFileUploadEnabled(){return dA(!0)}isManualStateUpdateEnabled(){return dA(!0)}isBidiStreamingEnabled(){return dA(!0)}isExportSessionEnabled(){return dA(!0)}isEventFilteringEnabled(){return dA(!1)}isDeleteSessionEnabled(){return dA(!0)}isLoadingAnimationsEnabled(){return dA(!0)}isSessionsTabReorderingEnabled(){return dA(!1)}static \u0275fac=function(e){return new(e||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})};var SgA=(()=>{var t=import.meta.url;return function(A={}){var e,i=A,n,o,r=new Promise((Q,D)=>{n=Q,o=D});i.agerrMessages=[],i.stderrMessages=[],u=Q=>i.stderrMessages.push(Q);var s=Object.assign({},i),a="./this.program",c=(Q,D)=>{throw D},l="",d,C;typeof document<"u"&&document.currentScript&&(l=document.currentScript.src),t&&(l=t),l.startsWith("blob:")?l="":l=l.substr(0,l.replace(/[?#].*/,"").lastIndexOf("/")+1),d=Q=>fetch(Q,{credentials:"same-origin"}).then(D=>D.ok?D.arrayBuffer():Promise.reject(new Error(D.status+" : "+D.url)));var I=console.log.bind(console),u=console.error.bind(console);Object.assign(i,s),s=null;var h;function B(Q){for(var D=atob(Q),R=new Uint8Array(D.length),v=0;vQ.startsWith(PA);function Ye(){var Q="data:application/octet-stream;base64,AGFzbQEAAAABmQd0YAJ/fwF/YAF/AGABfwF/YAJ/fwBgA39/fwF/YAN/f38AYAR/f39/AX9gBH9/f38AYAV/f39/fwF/YAZ/f39/f38Bf2AFf39/f38AYAZ/f39/f38AYAAAYAABf2AIf39/f39/f38Bf2AHf39/f39/fwF/YAF8AXxgAn9/AXxgAX8BfGAHf39/f39/fwBgA39/fwF8YAd/f39/fHx/AGACf3wAYAR8fHx/AXxgAnx8AXxgA398fABgCX9/f39/f39/fwBgBX9+fn5+AGAEf39/fABgCn9/f39/f39/f38Bf2ADf35/AX5gBH9/fHwBf2ADfHx8AXxgA39/fgBgAAF8YAR/f39/AXxgAn9/AX5gA39/fABgBX9/f39+AX9gA39/fgF/YAR/fn5/AGAEf398fwBgAn9+AGACfH8BfGABfwF+YAR/f398AX9gAn9+AX9gAn98AX9gA3x8fwF8YAN/fH8AYAh/f39/f39/fwBgBX9/f398AX9gC39/f39/f39/f39/AX9gBX9/fn9/AGAEf398fwF/YAABfmAFf39/f3wAYAN/f3wBf2ACfX0BfWAGf3x8fHx8AXxgA39/fwF+YAx/f39/f39/f39/f38Bf2AFf398f38Bf2AHf39/fHx/fwBgBn9/f3x/fwBgBn9/f39+fwF/YA9/f39/f39/f39/f39/f38AYAp/f39/f39/f39/AGAEf39/fwF+YAZ/fH9/f38Bf2AHf39/f39+fgF/YAZ/f39/fn4Bf2AHf39/f35/fwF/YAZ/f39/f34Bf2ACfn8AYAR/fn9/AX9gBH9/fHwBfGAFf398f38AYAl/f39/f39/f38Bf2AGf39/fH9/AX9gBH9/fHwAYAR+fn5+AX9gAn99AX9gAn5/AX9gCH9/f398fHx/AGADf31/AGABfAF/YAJ+fgF9YAJ/fQBgBH9/f34BfmADf35/AX9gBn99f39/fwBgBH9/fX8AYAN/fHwBf2AFf39/fH8AYAZ/f398fH8AYAZ8fHx/f38AYAJ+fgF8YAJ8fwF/YAR/fHx8AGAGf39/f398AGAEf3x/fwBgBnx8f3x8fwBgB398fHx8fHwAYAF/AX1gA39/fwF9YAN+fn4Bf2AEf35+fgBgBH98f38Bf2AKf3x/f39/f39/fwBgBX9/fHx8AGAFf39/f38BfGADfHx8AX9gBX9/fX9/AGAHf39/f3x/fwF/YAR8fHx8AXwCkQEYAWEBYQAHAWEBYgAFAWEBYwAGAWEBZAAGAWEBZQACAWEBZgAEAWEBZwAiAWEBaAABAWEBaQAMAWEBagAEAWEBawACAWEBbAAGAWEBbQBIAWEBbgBJAWEBbwACAWEBcABKAWEBcQAHAWEBcgBLAWEBcwAAAWEBdAAAAWEBdQAGAWEBdgAAAWEBdwAAAWEBeAAGA+AU3hQBAAACAAUEBAIGGAICBQACDAAYAwAAAAIAEAUEAgYDAgIFAAACAxoAAwACBxADAgACAABMBgABBBgDAgQCAwICEAMDAAAAAwEIAgYCBgACAw0BAhsMBAEAAgAFBAIFAgICAgIDBBYBBAUFAwACAgQGBwQGAgMABAQiBAMMBQcEAAICBgIDAgoAGwYYAzYCTQICBQINABgBABQCAAIHAygbCgMDAQQCAQMCAwQFAgIKAggAAwIMAgIAAAMAAwMFNyIEIwABAwQDCAIDEQMEBAMAAwMEBQIBAQICKQUCAwMDAgIDAwMDBQQEAgQCAg8DBwIWBwUDAwUBACoCAwIFAQMWAQYFCAkBAQQEAAkAAwgIBgQCAAQCBRYEAhIQASMACgISCAICAwsFBgAZAQEFTgIADg4HAAACAAQUAwcAAAAABQQDAAYBTwIBAwQBAwIEUAIAAQA4FQIAAgIDAwMCAAIHAgUbACsEAgAHAxkRBwMFCgoBOQEABSwCAwADLRwcAAUABQgKAgECAQUCAAMDCQkAAAIDAihRAgQAAREALQAACwEAAwAABAICUgMCLgUAAgMCAgMDCA0DAA0DBRECAwIDAgUAAB0CHQICAwIABAYDAlMCAQICAQEIBAZUIg0AB1UDOQEFDgYCAgcDLwADAgQREQEKAQIDBQEAAAMEAAEBAgMLAQIAAQkEDQMCBAoICQEIBQAFAwcABAcEBQACVjAYEAkABQEFBgACBAcIAykCAQEBDAEHAgcABQIGNwABBAMCAAADBQQDAQEABQUBAwUCABoFAwMAAhkBAwgABwIDAAYGAQEGBQYGCQENAAcAAgEBBgECAAAAAAoKBwoBCgMCAgIAAgYBAAMCAgMCBAcADwAPAgUDAAIBBQAFAwIBAAMAV1gDAwZZAAAAAQMTA1oGAjoCAhAHDQUUAQAUAwcKAAMDHwIAHAEBER8FWwNcBwcSBwMRBwEABwUcAgI7OwcGAgMDBQQHBwETAAMDAwUFAAMAAAIDAwMCAwQAAgICAgAFAAgIAgUxAgQBMgExAQEFAQMEHAAIBAQNAQEDBQEBAQUEAAIAAgAFBwYBBAMHAANdAAEBAgYDBA4ABQYGBgYBBgIDAggCAgAhDwQGAQACAQIGBgIAAwUBAAVeAAcIAwQDAAkJBAVfAAcOBgYOBQsFBwAFAwUAAzwCAgIABAIAYAIACgMBAgIBBD0KBAA9CgICAgIABi8CACoDAmEABQgABAcAAQIACgQAAhAEB2IBEBAHBWMBBQUDAAEEPgYAAAUFEhIADQIBCgEBBA4BAAAAAAYBAwUCDwIAAAMFAgMFAQgJBQMFBQQDAwUDDAEDBggvCgICAwEGBxMjAgACAgEBAAACAAIDBRQGAwEAAwIBBBM/AQACAQEDDQABBQADAwMBASQBBgACBQIDAQEDBAMAAwcFBAMDAAMAAQEJAggAAgIDAAAMAAoFAAEDDC4BAwMDBwUFBwcCAWQcFAcHBAQEBQQIBAQABAQeAwMADRMFAQMBAwUGAwplBAACAwMCAgQFAw8EAAMYZiUFZxkDBAMCCwUFBgIAAQEDBQgFBQUSAgMAAAMDAAABAQICAgMBAgAEAwIDAwEGDwMDCSwCAwEHAw4AAgNoAgkJDwkFBgYdAAACBgABAQUIBAABBgYGCAQGBgYIAAQGBgYIBh0ENB0HAAIBAwQABQAAAAMBAgUIAyEFBQUFJwErAgICDQMEAAICAAABAwACAwAHBQUCAAIBBBJAABc/QAMFEgwUCwQEBAkJQQlBBgYFBQkFDwIGBw8OCwYLCQIFCAUCAQECBzIFBTICPAECAQICAwIDAQEFAgIFBAMFAgEAAAACAggODggODgIIAA4CAAEBAQMCAQEDAgQEQkMEBEJDAgIKAAM0AwICBQMNNAMDABYDCwoLCwoLCwIEEwETAQQTEwQJAwQHFGlEBgkGRAYABQIGAQIIAAICAgICAAAAAgMCBQcFBwEAAgUDBQMCAgMCAAIBAAICAgIAAQAbagAABCEEBwIPKwMQMAUkBxsoawAHAwIFAgQBDAQlAwMBAw06AgMCAhAQAQEBAwMDAQMRDQEBAQYEAQUlKQAFAAEEAwABAwAKAwMCAQADAwUABRMIABYFBAACAQwEbD42BQttGi0BAwEBAwASAAELAW4AMQUDAgcJAQQHBW8DAAMEAQMDGQEEBwcwBANwAwgFAAAFAQAECAEAAQwFAwICBgIBAAEADAwMAwIDBAcABAUFBAEABAcFIwAHcQYKBwZyBwUHBQoRBwcKCgUIChYBAQEKBgcECwoMAgQBAQEDBgcBAxEDAwMDAQIBEgEFAgIDBwIuAwUBEgMDAwEAAQEGBAICAAUHAgkDCAMBAAEUAwEEACoDAwEBAQAABQMCAwADACQGGQQCCwQGAgIBAQUHAgEAAwADAhkDAgEBAQEBAQEHAQEDAgIACgACAAAABAgTAgEBAwELBwsGAAMBAAAFAgEBAwAIBAcBAwEBCwEDAQUDAwEAAAUCAwUHAQMDACQABQMAAAAABAEBBAQBAQEALAwBBAIDAAMDAQMDAwcBBwMBAQEDAwABAgECAAYDBQQAAgEBBQIAAwYCAQMDBgMAAwoNCjhzBAgKEQQAAAAEBgYDBwgAAAEAAQACAQElBQUDAwYDARYCARQEBwEBCgMKCwcDBwMBBwMHAAUEBwMDAwcHBQUBCgEBAQEHAQEBCgMFBwcFBQoBAQEHAQEBCgABAQUHBwUAAwUBAQEBBQcHBQUBAQEBAQcgICAgAQUDBQMFBQABAgICAgICAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUDBQYGBgYGCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgGBwQABgAABgYGBgYGBggICAYHBAAGAAAGBgYGBgYGAAAAAAAAAAgICAgGBAAFBgAABgYGBgYGJwYEBgYhBAYIBgcICAAAAAAAAwMAAwADCAAABwEDAwMAAwAHAQEBAQEBAQEAAAAEFxUVFxUXFRUXFRcVFxUEAAANAgEBAQICAgsLCwAKCgoHBwcEAQECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIDAwMDAwMCAgEBAggCCA4OAQgIBAYEAAQAAQgEBgQABAAGBgYEAQsLCUYJRg8PDw8PDw4JCQkJCQ4JCQkJCQhHMyYIJggICEczJggmCAgJCQkJCQkJCQIJCQkJCQkJCQkJBAcIBAcIAQECBQcBNQAAAgICAQIEAgIEBzUEAQAEBANFHgQeBAIEDAMEAQ0BBQUFBQAEAAAAAAACBAINAQEBAQEBAQEAAQEAAAABAQEBAAEFBAEAAAEBAAUEAAAAHx8ABAEBAAEBAQEBAQAAAwUAAAAAAAAAAAEAAwAAAAQABAICAAAABAAFBQUAAAAAAQABAAAAAQcHBwEHBwcHAwUHBwUFAQEBAQUBAQEBAQcBAQEDBQcHBQUBAQEBBQcHBQUBAQEBAQEDBQQHAXABxgbGBgUHAQGEAoCAAgYIAX8BQZC4DwsHpQEhAXkCAAF6AOMIAUEA7BMBQgDrEwFDAOoTAUQAGAFFAEgBRgEAAUcA6RMBSADoEwFJAOcTAUoA5hMBSwDlEwFMAOQTAU0A4xMBTgDiEwFPAOETAVAA4BMBUQDfEwFSAN4TAVMA3RMBVADcEwFVANsTAVYA2hMBVwDZEwFYANgTAVkA1xMBWgDWEwFfANUTASQAyxMCYWEAoBICYmEAnxICY2EAnhIJ6wwBAEEBC8UGpBObEowS9xHuEe0R5RHiEd0RGNMRyRDIEL8Q+AiiEJsQ1RTCFMEUsxSyFK8UrRSdFJoUkA2HFP8TygeEFKQHngWeBakSohKdEpwSmhKZEpgSlxKWEpUSlBK8CpMSkhKREpASjxK8Co4SjRKLEooSiRKGEoUShBKDEoISiBKBEoAS/xGWCv4R/RH8EfkR+BH2EfUR9BGHEvMR8hHxEfsR+hHwEe8R7BHrEeoR6RHoEecR5hHkEeMR4RHgEd8R3hHcEdsR2hHZEdgR1xHWEdUR1BHSEdERhwrQEc8RzhHNEcwRyxHKEfwJyRHIEccRxhHFEbQRsxGyEbERsBGvEa4RrRGsEasRqhGpEagRpxGmEaURpBHEEcMRwhHBEcARvxG+Eb0RvBG7EboRuRG4EbcRthG1EaMRohGhEZYKnxGJEe8JnhGdEZwRmxGaEZkRmBGXEZYRlRGUEZMRkhGREZARjxGOEY0RhBGgEfwQ9hD1EIwRixGGEYoRiBGHEYURgxGCEYERgBH/EP4Q/RD7EPoQ+RD4EPcQ9BA6SPMQ2AaECuIG8hCCCuMG1gbxEIMKhgrwEO8QzQbOCe4Q7RDsEJ4F6xDqEOkQ6BDnEOYQ5RDkEOMQ4hDhEOAQ3xDeEN0Q3BDbENoQ2RDYENcQ1hDVENQQ0xDSENEQ0BDPEM4QzRDMEMsQyhDuBMcQxhDFEMQQwxDCEMEQwBC+EL0QvBC7ELoQuRC4ELcQthC1ELQQngU2nQcashCxELAQrxCuEK0QrBCrEKoQqRCoEKcQowamEKMGpRCjBqQQoxChEKAQnxCeEOcIpAedEJwQmhCZEJgQlxCWEJUQlBCTEKEG5QihBuUIoQaSEJEQkBCPEI4QjRCMEIsQpAeKEIkQiBCHEIkEhhCJBIUQiQSEEIkEgxCJBIIQgRCAEP8P/g/9D/UU9BT2D/MU8hThCPEU8BTvFO4U7RTsFOsU6hTpFOcI6BTnFOYU5RTkFOMU4hThFOAU3xTeFN0U3BTbFNoU2RTYFNcU1hTUFNMU0hTRFNAUzxTOFM0UzBTLFMYUyhTJFMgUxxTFFMQUsxDDFMAUvxSXBr4UvRS8FLsUpQGlAcMBuhS5FLgUtxS2FLUUlwa0FPYPlwaxFLAUrhTRBKwUqxSqFKkUqBSnFKYUpRSUDqQUoxSiFKEUoBSfFJ4UlwaZFOEKlRSWFOYNkxSYFJcUiwiUFJIU1g2RFJAU/Alu5Ar+Ao8UjhSyDYwUjRTbBYsUjg2IFIoUiRSlAaUBsg2GFIMUghTvDIAU/RP4E/cT9hPzE+EHhRT+E4EU/BP7E/oT+RP1E/QT7hPtE/IT8RPwE+8TDtIT0RPTE9QTrwOlAdATzxPOE80TzBOyB8oTsQfJE8gTxxOlAaUBxhPFE8QT+gvDE/oLrgf0C8ITwROqB7oTuxO5E74TvRO8E6kH5wu3E7YTqAe1E+4D7gPuA+4DkAvMEsoSyBLGEsQSwhLAEr4SvBK6ErgSthK0ErISlAvzEoQIjgvnEuYS5RLkEuMSjwviEuES4BKYC94S3RLcEtsS2hKlAdkS2BKDC9cS1RLUEtMS0RLPEoIL1hLAE78T0hLQEs4S/gJubvIS8RLwEu8S7hLtEuwS6xKPC+oS6RLoEm6NC40LqATuBO4E3xLuBG6JC4gLqASlAaUBhwubBW6JC4gLqASlAaUBhwubBW6GC4ULqASlAaUBhAubBW6GC4ULqASlAaUBhAubBf4CbrQTsxOyE/4CbrETsBOvE26uE60TrBOrE8wLzAuqE6kTqBOnE6YTbqUToxOiE6ETxAvEC6ATnxOeE50TnBNumxOaE5kTmBOXE5YTlROUE26TE5ITkROQE48TjhONE4wT/gJuuguLE4oTiROIE4cThhPNEskSxRK5ErUSwRK9Ev4CbroLhROEE4MTghOBE4ATyxLHEsMStxKzEr8SuxKSB/4K/xKSB/4K/hJuoQWhBfYB9gH2Aa8LpQHzAvMCbqEFoQX2AfYB9gGvC6UB8wLzAm6gBaAF9gH2AfYBrgulAfMC8wJuoAWgBfYB9gH2Aa4LpQHzAvMCbv0S/BJu+xL6Em75EvgSbvcS9hJumQv1ErEHbpkL9BKxB/4CsRKTAf4Cbu4D7gOwEqYSqhKvEm6nEqsSrhJuqBKsEq0SbqQSbqMSbqUS4grwCqES8AriCgqY/DPeFIAMAQd/AkAgAEUNACAAQQhrIgMgAEEEaygCACICQXhxIgBqIQUCQCACQQFxDQAgAkECcUUNASADIAMoAgAiBGsiA0HApAsoAgBJDQEgACAEaiEAAkACQAJAQcSkCygCACADRwRAIAMoAgwhASAEQf8BTQRAIAEgAygCCCICRw0CQbCkC0GwpAsoAgBBfiAEQQN2d3E2AgAMBQsgAygCGCEGIAEgA0cEQCADKAIIIgIgATYCDCABIAI2AggMBAsgAygCFCICBH8gA0EUagUgAygCECICRQ0DIANBEGoLIQQDQCAEIQcgAiIBQRRqIQQgASgCFCICDQAgAUEQaiEEIAEoAhAiAg0ACyAHQQA2AgAMAwsgBSgCBCICQQNxQQNHDQNBuKQLIAA2AgAgBSACQX5xNgIEIAMgAEEBcjYCBCAFIAA2AgAPCyACIAE2AgwgASACNgIIDAILQQAhAQsgBkUNAAJAIAMoAhwiBEECdEHgpgtqIgIoAgAgA0YEQCACIAE2AgAgAQ0BQbSkC0G0pAsoAgBBfiAEd3E2AgAMAgsCQCADIAYoAhBGBEAgBiABNgIQDAELIAYgATYCFAsgAUUNAQsgASAGNgIYIAMoAhAiAgRAIAEgAjYCECACIAE2AhgLIAMoAhQiAkUNACABIAI2AhQgAiABNgIYCyADIAVPDQAgBSgCBCIEQQFxRQ0AAkACQAJAAkAgBEECcUUEQEHIpAsoAgAgBUYEQEHIpAsgAzYCAEG8pAtBvKQLKAIAIABqIgA2AgAgAyAAQQFyNgIEIANBxKQLKAIARw0GQbikC0EANgIAQcSkC0EANgIADwtBxKQLKAIAIAVGBEBBxKQLIAM2AgBBuKQLQbikCygCACAAaiIANgIAIAMgAEEBcjYCBCAAIANqIAA2AgAPCyAEQXhxIABqIQAgBSgCDCEBIARB/wFNBEAgBSgCCCICIAFGBEBBsKQLQbCkCygCAEF+IARBA3Z3cTYCAAwFCyACIAE2AgwgASACNgIIDAQLIAUoAhghBiABIAVHBEAgBSgCCCICIAE2AgwgASACNgIIDAMLIAUoAhQiAgR/IAVBFGoFIAUoAhAiAkUNAiAFQRBqCyEEA0AgBCEHIAIiAUEUaiEEIAEoAhQiAg0AIAFBEGohBCABKAIQIgINAAsgB0EANgIADAILIAUgBEF+cTYCBCADIABBAXI2AgQgACADaiAANgIADAMLQQAhAQsgBkUNAAJAIAUoAhwiBEECdEHgpgtqIgIoAgAgBUYEQCACIAE2AgAgAQ0BQbSkC0G0pAsoAgBBfiAEd3E2AgAMAgsCQCAFIAYoAhBGBEAgBiABNgIQDAELIAYgATYCFAsgAUUNAQsgASAGNgIYIAUoAhAiAgRAIAEgAjYCECACIAE2AhgLIAUoAhQiAkUNACABIAI2AhQgAiABNgIYCyADIABBAXI2AgQgACADaiAANgIAIANBxKQLKAIARw0AQbikCyAANgIADwsgAEH/AU0EQCAAQXhxQdikC2ohAgJ/QbCkCygCACIEQQEgAEEDdnQiAHFFBEBBsKQLIAAgBHI2AgAgAgwBCyACKAIICyEAIAIgAzYCCCAAIAM2AgwgAyACNgIMIAMgADYCCA8LQR8hASAAQf///wdNBEAgAEEmIABBCHZnIgJrdkEBcSACQQF0a0E+aiEBCyADIAE2AhwgA0IANwIQIAFBAnRB4KYLaiEEAn8CQAJ/QbSkCygCACIHQQEgAXQiAnFFBEBBtKQLIAIgB3I2AgAgBCADNgIAQRghAUEIDAELIABBGSABQQF2a0EAIAFBH0cbdCEBIAQoAgAhBANAIAQiAigCBEF4cSAARg0CIAFBHXYhBCABQQF0IQEgAiAEQQRxaiIHKAIQIgQNAAsgByADNgIQQRghASACIQRBCAshACADIgIMAQsgAigCCCIEIAM2AgwgAiADNgIIQRghAEEIIQFBAAshByABIANqIAQ2AgAgAyACNgIMIAAgA2ogBzYCAEHQpAtB0KQLKAIAQQFrIgBBfyAAGzYCAAsLfgECfyMAQSBrIgIkAAJAIABBACAArSABrX5CIIinG0UEQEEAIAAgACABEEciAxsNASACQSBqJAAgAw8LIAIgATYCBCACIAA2AgBBuPwIKAIAQYT0AyACEB4aECgACyACIAAgAWw2AhBBuPwIKAIAQdPzAyACQRBqEB4aECgACxcAQQFBfyAAIAEgARA8IgAQqwIgAEYbCyUBAX8gACgCLCIAQQBBgAEgACgCABEEACIABH8gACgCEAVBAAsLNAEBfwJAIAAgARDnASIBRQ0AIAAoAiwiACABQQggACgCABEEACIARQ0AIAAoAhAhAgsgAgtuAQF/IwBBIGsiAyQAIANCADcDGCADQgA3AxAgAyACNgIMAkAgA0EQaiABIAIQwwsiAUEASARAIANB4I8LKAIAEHg2AgBBsokEIAMQNgwBCyAAIANBEGoiABCqBSABEKsCGiAAEF8LIANBIGokAAskAQF/IwBBEGsiAyQAIAMgAjYCDCAAIAEgAhCDDCADQRBqJAALMwEBfyACBEAgACEDA0AgAyABLQAAOgAAIANBAWohAyABQQFqIQEgAkEBayICDQALCyAAC6QBAQN/IwBBEGsiAiQAAkAgABAvIgMgACgCAEEDcSAAKQMIEJ0KIgEEfyABKAIYBUEACyIBDQAgAygCTCIBKAIAKAIMIgMEQCABKAIIIAAoAgBBA3EgACkDCCADEScAIgENAQtBACEBIAAoAgBBA3FBAkYNACACIAApAwg3AwggAkElNgIAQaDkCiEBQaDkCkEgQagYIAIQoQEaCyACQRBqJAAgAQsPACAAIAEgAiADQQAQ0QwLQwAgACAAIAGlIAG9Qv///////////wCDQoCAgICAgID4/wBWGyABIAC9Qv///////////wCDQoCAgICAgID4/wBYGwsVACAAEKgBBEAgACgCBA8LIAAQqQMLFAAgABAnBEAgAC0ADw8LIAAoAgQLVQACQCABBEAgAiABKAIITw0BIAAgASgCACABKAIEIAJqIAEoAgxwQcgAbGpByAAQHxoPC0GJ2gFB4oMBQT1BhyUQAAALQcK8A0HigwFBPUGHJRAAAAsmACAAIAEQ1QciAUUEQEEADwsgABDwASgCDCABKAIQQQJ0aigCAAsuACAALQAPIgBBAWpB/wFxQRFPBEBB38UDQcmEAUHJAEH+ngEQAAALIABB/wFHCwcAQQEQBwALFQAgACABQZEqQT1B4oMBQcgAEMgKC0MAIAAgACABpCABvUL///////////8Ag0KAgICAgICA+P8AVhsgASAAvUL///////////8Ag0KAgICAgICA+P8AWBsLCwAgACABQQAQhQcLPAEBf0EHIQICQAJAAkAgAEEoag4IAgICAgAAAAABC0EIDwsgAEF/RyABQX1NckUEQEEADwtBHSECCyACC0IBAX8gACABEOcBIgFFBEBBAA8LIAAoAjQgASgCIBDoASAAKAI0IgJBAEGAASACKAIAEQQAIAEgACgCNBDeAjYCIAtvAQJ/IAAtAAAiAgR/AkADQCABLQAAIgNFDQECQCACIANGDQAgAhCAAiABLQAAEIACRg0AIAAtAAAhAgwCCyABQQFqIQEgAC0AASECIABBAWohACACDQALQQAhAgsgAgVBAAsQgAIgAS0AABCAAmsLLAACQAJAAkAgACgCAEEDcUEBaw4DAQAAAgsgACgCKCEACyAAKAIYIQALIAALVQECfyAAIAFBMEEAIAEoAgBBA3FBA0cbaigCKBDnASIDBEAgACgCNCADKAIgEOgBIAAoAjQiAiABQQggAigCABEEACECIAMgACgCNBDeAjYCIAsgAgukAQMBfAF+AX8gAL0iAkI0iKdB/w9xIgNBsghNBHwgA0H9B00EQCAARAAAAAAAAAAAog8LAnwgAJkiAEQAAAAAAAAwQ6BEAAAAAAAAMMOgIAChIgFEAAAAAAAA4D9kBEAgACABoEQAAAAAAADwv6AMAQsgACABoCIAIAFEAAAAAAAA4L9lRQ0AGiAARAAAAAAAAPA/oAsiAJogACACQgBTGwUgAAsLKgEBfyMAQRBrIgMkACADIAI2AgwgACABIAJBgQRBABC2BxogA0EQaiQACykBAX8gAgRAIAAhAwNAIAMgAToAACADQQFqIQMgAkEBayICDQALCyAACxwBAX8gABCoAQRAIAAoAgAgABD4AhoQrwULIAALxwEBA38jAEEQayIFJAAgABAvIQYCQAJAIAAgAUEAEG0iBCACRXINACACQQEQRyIERQ0BIAQgBiABELIBNgIAAkAgACgCECICRQRAIAQgBDYCBAwBCyACIAIoAgQiBkYEQCACIAQ2AgQgBCACNgIEDAELIAQgBjYCBCACIAQ2AgQLIAAtAABBBHENACAAIARBABDzBwsgAwRAIAAgAUEBEG0aCyAFQRBqJAAgBA8LIAUgAjYCAEG4/AgoAgBB0/MDIAUQHhoQKAALCwAgACAB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uKgLQRgQ2AFFDQJBGBBIIgFFDQELIAEgAikCCDcCACABIAIpAhg3AhAgASACKQIQNwIIDAELQQAhAQsgAkEgaiQAQcSqC0EBOgAAQcCqCyABNgIAIAELIAAgAARAIAAoAhQQGCAAKAIYEBggACgCHBAYIAAQGAsLCQAgAEEAEPkGC78KAgV/D34jAEHgAGsiBSQAIARC////////P4MhDCACIASFQoCAgICAgICAgH+DIQogAkL///////8/gyINQiCIIQ4gBEIwiKdB//8BcSEHAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgB0H//wFrQYGAfksNAQsgAVAgAkL///////////8AgyILQoCAgICAgMD//wBUIAtCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhCgwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEKIAMhAQwCCyABIAtCgICAgICAwP//AIWEUARAIAIgA4RQBEBCgICAgICA4P//ACEKQgAhAQwDCyAKQoCAgICAgMD//wCEIQpCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEAgASALhEIAIQFQBEBCgICAgICA4P//ACEKDAMLIApCgICAgICAwP//AIQhCgwCCyABIAuEUARAQgAhAQwCCyACIAOEUARAQgAhAQwCCyALQv///////z9YBEAgBUHQAGogASANIAEgDSANUCIGG3kgBkEGdK18pyIGQQ9rELYBQRAgBmshBiAFKQNYIg1CIIghDiAFKQNQIQELIAJC////////P1YNACAFQUBrIAMgDCADIAwgDFAiCBt5IAhBBnStfKciCEEPaxC2ASAGIAhrQRBqIQYgBSkDSCEMIAUpA0AhAwsgA0IPhiILQoCA/v8PgyICIAFCIIgiBH4iECALQiCIIhMgAUL/////D4MiAX58Ig9CIIYiESABIAJ+fCILIBFUrSACIA1C/////w+DIg1+IhUgBCATfnwiESAMQg+GIhIgA0IxiIRC/////w+DIgMgAX58IhQgDyAQVK1CIIYgD0IgiIR8Ig8gAiAOQoCABIQiDH4iFiANIBN+fCIOIBJCIIhCgICAgAiEIgIgAX58IhAgAyAEfnwiEkIghnwiF3wh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AUpqIQIMAQsLIABBAEwgAEH/AE5yDQEgAiwAACAEKAIAQQFrSw0BCyADQQQ2AgALC4QBAQJ/IwBBEGsiAiQAIAAQqAEEQCAAKAIAIAAQ+AIaEK8FCyABECMaIAEQqAEhAyAAIAEoAgg2AgggACABKQIANwIAIAFBABDUASACQQA6AA8gASACQQ9qENMBAkAgACABRiIBIANyRQ0ACyAAEKgBIAFyRQRAIAAQqQMaCyACQRBqJAALUAEBfgJAIANBwABxBEAgASADQUBqrYYhAkIAIQEMAQsgA0UNACACIAOtIgSGIAFBwAAgA2utiIQhAiABIASGIQELIAAgATcDACAAIAI3AwgLzgkCBH8EfiMAQfAAayIGJAAgBEL///////////8AgyEJAkACQCABUCIFIAJC////////////AIMiCkKAgICAgIDA//8AfUKAgICAgIDAgIB/VCAKUBtFBEAgA0IAUiAJQoCAgICAgMD//wB9IgtCgICAgICAwICAf1YgC0KAgICAgIDAgIB/URsNAQsgBSAKQoCAgICAgMD//wBUIApCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhBCABIQMMAgsgA1AgCUKAgICAgIDA//8AVCAJQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQQMAgsgASAKQoCAgICAgMD//wCFhFAEQEKAgICAgIDg//8AIAIgASADhSACIASFQoCAgICAgICAgH+FhFAiBRshBEIAIAEgBRshAwwCCyADIAlCgICAgICAwP//AIWEUA0BIAEgCoRQBEAgAyAJhEIAUg0CIAEgA4MhAyACIASDIQQMAgsgAyAJhFBFDQAgASEDIAIhBAwBCyADIAEgASADVCAJIApWIAkgClEbIggbIQogBCACIAgbIgxC////////P4MhCSACIAQgCBsiC0IwiKdB//8BcSEHIAxCMIinQf//AXEiBUUEQCAGQeAAaiAKIAkgCiAJIAlQIgUbeSAFQQZ0rXynIgVBD2sQtgEgBikDaCEJIAYpA2AhCkEQIAVrIQULIAEgAyAIGyEDIAtC////////P4MhASAHBH4gAQUgBkHQAGogAyABIAMgASABUCIHG3kgB0EGdK18pyIHQQ9rELYBQRAgB2shByAGKQNQIQMgBikDWAtCA4YgA0I9iIRCgICAgICA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AxA8EKsCGiAAQZzYA0EBEKsCGiACIAErAwgQsQsgACACEKoFIgAgABA8EKsCGiACEF8gAkEQaiQAC18BAn8gAkUEQEEADwsgAC0AACIDBH8CQANAIAMgAS0AACIERyAERXINASACQQFrIgJFDQEgAUEBaiEBIAAtAAEhAyAAQQFqIQAgAw0AC0EAIQMLIAMFQQALIAEtAABrCzoBAX8CQCACRQ0AIAAQLyACEM8DIgMgAkcNACADEHZFDQAgACABIAJBARCSDA8LIAAgASACQQAQkgwLLgAQmQwgACkDAEGgkAsQD0HIkAtB2JALQdSQC0HAkAsoAgAbKAIANgIAQaCQCwsoAQF/IAAoAkQiAUEBRgRAIAAQngwgAEEANgJEDwsgACABQQFrNgJEC5kBAQR/AkACQEHckQsoAgAiBCAAKAJMIgNB/////3txRgRAQX8hAiAAKAJEIgFB/////wdGDQIgACABQQFqNgJEDAELIABBzABqIQFBfyECAkAgA0EASARAIAFBADYCAAwBCyADDQILIAEgASgCACIBIAQgARs2AgAgAQ0BIABBxJELEJwMC0EAIQILIAIEQCAAQcSRCxCcDAsLHgAgAEUEQEGJ2gFBjoIBQRVBuo8BEAAACyAAKAIICwwAIABBhaEFQQAQbQs9AQJ/IABBACAAQQBKGyEAA0AgACAERkUEQCADIARBA3QiBWogAiABIAVqKwMAojkDACAEQQFqIQQMAQsLCz0AIAEoAgggAk0EQEHCvANB4oMBQT1BhyUQAAALIAAgASgCACABKAIEIAJqIAEoAgxwQcgAbGpByAAQHxoLnQIBB38jAEEQayIGJAACQAJAIAAoAggiBSAAKAIMIgFHBEAgACgCACECIAAoAgQhAwwBCyAFQQF0QQEgBRsiAUHmzJkzSwRAQcQAIQAMAgsgACgCACABQShsEDoiAkUEQEEwIQAMAgsgAiAAKAIMIgRBKGxqQQAgASAEa0EobBAzGiAEIAAoAggiBSAAKAIEIgNqSQRAIANBKGwhByACIAEgBCADayIEayIDQShsaiACIAdqIARBKGwQUxogACADNgIECyAAIAE2AgwgACACNgIACyACIAMgBWogAXBBKGxqQQBBKBAzGiAAIAAoAggiAEEBajYCCCAGQRBqJAAgAA8LIAYgABB4NgIAQbj8CCgCAEHa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IAQQtgIgARB5IQEMAAsACyAAEBshAyABQQFHIQYDQCADRQ0BAkAgBkUEQCADIAIgBSAEEDUaDAELIAAgAxAtIQEDQCABRQ0BIAEgAiAFIAQQNRogACABEDAhAQwACwALIAAgAxAcIQMMAAsACwsRACAAQQRBEEGAgICAARCDBwsxAQF/IAAoAgQiASgCICsDECABKwMYoCAAKwMIoSAAKAIAIgAoAiArAxAgACsDGKChC1ABAX9BCCEFAkACQAJAAkAgA0EBaw4EAwACAQILQRAhBQwCC0EEIQUMAQtBACEFCyAAIAEgAyAFIAQQhg4hACACQQBKBEAgACACEIUOCyAACy4BAn8gABAbIQEDQCABBEAgACABQQBBARCgCCACaiECIAAgARAcIQEMAQsLIAILpAEBA39BwAAQjwYiAiACKAIAQXxxQQFyNgIAIAJBwAIQjwYiATYCECACIAAQNzYCGCABQoCAgICAgID4PzcDYCABQQE6AKwBIAFCgICAgICAgPg/NwNYIAFBATYC7AEgAUKAgICAgICA+D83A1AgAUEANgLEAUEFQQQQ1QIhAyABQQA2AswBIAEgAzYCwAEgAUEFQQQQ1QI2AsgBIAAgAhDECCACCxMAIAAgASgCABDvDiABQgA3AgAL/QMBB38gBUEYQRQgAC0AABtqKAIAIAAQvAMiBigCKCAAKAIoIAEoAigQmAYgBEEAIARBAEobQQFqIQxBASELA0AgCyAMRkUEQCAAIgQgAhC7AyEAIAEiByADELsDIQECfyAELQAARQRAIAUoAhggABC8AyEJIAcoAighByAEKAIoIQggBigCKCEGIAArAwggBCsDEGEEQCAEKAIgIAYgCCAHEL0DIQYgCSgCKCEEQQFGBEAgACABIAYbIQcgASAAIAYbIQggCQwDCyABIAAgBhshByAAIAEgBhshCCAJDAILIAQoAiQgBiAIIAcQvQMhBiAJKAIoIQRBAUYEQCABIAAgBhshByAAIAEgBhshCCAJDAILIAAgASAGGyEHIAEgACAGGyEIIAkMAQsgBSgCFCAAELwDIQkgBygCKCEHIAQoAighCCAGKAIoIQYCfyAAKwMIIAQrAxBhBEAgBCgCICAGIAggBxC9AyEGIAkoAighBEECRgRAIAAgASAGGyEIIAEgACAGGwwCCyABIAAgBhshCCAAIAEg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QUBrJAALIwEBfyMAQRBrIgEkACABIAA2AgwgAUEMahCRByABQRBqJAALxQIBCH8jAEEgayICJAACQCAAIAJBHGoQmgUiAEUNACACKAIcIgVBAEwNAANAIAAtAAAiA0UNASADQS1HBEAgAEEBaiEADAELCyACQgA3AxAgAkIANwMIIABBAWohBkEAIQMDQCAEIAVIBEAgAyAGaiIHLAAAIggEQCACQQhqIAgQ+woCQCAHLQAAQdwARgRAIANFDQEgACADai0AAEHcAEcNAQsgBEEBaiEECyADQQFqIQMMAgUgAkEIahBfQQAhBAwDCwALCyABIwBBEGsiASQAAkAgAkEIaiIAECcEQCAAIAAQJCIFEMwCIgQNASABIAVBAWo2AgBBuPwIKAIAQdPzAyABEB4aECgACyAAQQAQ+wogACgCACEECyAAQgA3AgAgAEIANwIIIAFBEGokACAENgIAIAMgBmohBAsgAkEgaiQAIAQLVAEDfyMAQRBrIgEkAEHo5AooAgACQCAARQ0AIAAQqgEiAg0AIAEgABA8QQFqNgIAQbj8CCgCAEHT8wMgARAeGhAoAAtB6OQKIAI2AgAgAUEQaiQACw8AIAAgACgCACgCJBECAAsRACAAIAEgASgCACgCIBEDAAsRACAAIAEgASgCACgCLBEDAAsMACAAQYKGgCA2AAALEQAgABBCIAAQI0ECdGoQngcLDQAgACgCACABKAIARwsOACAAEEIgABAjahCeBwsWACAAIAEgAiADIAAoAgAoAiARBgAaCw4AIAAoAghB/////wdxC4ABAQJ/IwBBEGsiBCQAIwBBIGsiAyQAIANBGGogASABIAJBAnRqELIFIANBEGogAygCGCADKAIcIAAQ5AsgAyABIAMoAhAQsQU2AgwgAyAAIAMoAhQQqAM2AgggBEEIaiADQQxqIANBCGoQ/QEgA0EgaiQAIAQoAgwaIARBEGokAAtFAQF/IwBBEGsiBSQAIAUgASACIAMgBEKAgICAgICAgIB/hRC3ASAFKQMAIQEgACAFKQMINwMIIAAgATcDACAFQRBqJAALtQEBA38jAEEgayIDJAACQAJAIAEsAAAiAgRAIAEtAAENAQsgACACEMEFIQEMAQsgA0EAQSAQMxogAS0AACICBEADQCADIAJBA3ZBHHFqIgQgBCgCAEEBIAJ0cjYCACAB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IAJBBHRqIgMgAUEQayICQQhqKQMANwMIIAMgAikDADcDACAAIBEgEyAEEEMgERAYIA8gAikDCDcDKCAPIAIpAwA3AyAgDyABKQMYNwM4IA8gASkDEDcDMCAPIA8rAzAgDysDICABKwMAoaA5A0AgDyAPKwM4IA8rAyggASsDCKGgOQNIIAAgD0EwakECEDkgDyAPKQNINwM4IA8gDykDQDcDMCAAIA9BIGpBAhA5DBoFIBEgA0EEdCISaiIUIAEgEmoiEikDADcDACAUIBIpAwg3AwggA0EBaiEDDAELAAsACyACQQJqIgNBEBAZIgIgASkDCDcDCCACIAEpAwA3AwAgAiAQKQMgNwMQIAIgECkDKDcDGCACIBArAyAgECsDMCIGIBArA0ChRAAAAAAAAAhAoyIHoDkDICAQKwMoIQggECsDSCEJIBArAzghBSACIAYgB6A5AzAgAiAFIAUgCaFEAAAAAAAACECjIgWgOQM4IAIgCCAFoDkDKEEEIAMgA0EETRshESABQSBrIRNBBCEBA0AgASARRgRAIAAgAiADIAQQQyACEBggDyAQKQM4NwMoIA8gECkDMDcDICAPIBApAyg3AzggDyAQKQMgNwMwIAAgD0EgakECEDkMGQUgAiABQQR0IhJqIhQgEiATaiISKQMANwMAIBQgEikDCDcDCCABQQFqIQEMAQsACwALIAJBA2oiA0EQEBkiAiABQQhqKQMANwMIIAIgASkDADcDACACIAErAwAiBSAFIBArAxChIgZEAAAAAAAA0L+ioDkDECABKwMIIQggECsDSCEJIAIgECsDOCIHOQM4IAIgBSAGRAAAAAAAAALAoqA5AzAgAiAFIAYgBqChOQMgIAIgCCAHIAmhRAAAAAAAAAhAo6AiBTkDKCACIAU5AxggECsDMCEFIAIgBzkDSCACIAU5A0BBBCADIANBBE0bIREgAUEwayETQQQhAQNAIAEgEUYEQCAAIAIgAyAEEEMgAhAYDBgFIAIgAUEEdCISaiIUIBIgE2oiEikDADcDACAUIBIpAwg3AwggAUEBaiEBDAELAAsACyACQQRHDRtBBkEQEBkiAiABKQMINwMIIAIgASkDADcDACACIBApAyg3AxggAiAQKQMgNwMQIAIgECkDSDcDKCACIBApA0A3AyAgAiABKQMoNwM4IAIgASkDIDcDMCAC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AEcEQCACQbQBRg0BIAJBjgJGDQJBipYDQbDEAUGWAUHqiwEQAAALIAErAwghAyAAIAErAwA5AwggACADmjkDAA8LIAAgASsDADkDACAAIAErAwiaOQMIDwsgASsDCCEDIAAgASsDADkDCCAAIAM5AwAPCyAAIAEpAwA3AwAgACABKQMINwMICwoAIABBCGoQ2AMLDQAgACgCACABQQJ0agsZACAAEKgBBEAgACABEL8BDwsgACABENQBC2EBAX8jAEEQayICJAAgAiAANgIMAkAgACABRg0AA0AgAiABQQFrIgE2AgggACABTw0BIAIoAgwgAigCCBCyCyACIAIoAgxBAWoiADYCDCACKAIIIQEMAAsACyACQRBqJAALsQEBA38jAEEQayIHJAACQAJAIABFDQAgBCgCDCEGIAIgAWtBAnUiCEEASgRAIAAgASAIEOQDIAhHDQELIAYgAyABa0ECdSIBa0EAIAEgBkgbIgFBAEoEQCAAIAdBBGogASAFELsLIgUQQiABEOQDIQYgBRB3GiABIAZHDQELIAMgAmtBAnUiAUEASgRAIAAgAiABEOQDIAFHDQELIAQQvwsMAQtBACEACyAHQRBqJAAgAAuoAQEDfyMAQRBrIgckAAJAAkAgAEUNACAEKAIMIQYgAiABayIIQQBKBEAgACABIAgQ5AMgCEcNAQsgBiADIAFrIgFrQQAgASAGSBsiAUEASgRAIAAgB0EEaiABIAUQwAsiBRBCIAEQ5AMhBiAFEDQaIAEgBkcNAQsgAyACayIBQQBKBEAgACACIAEQ5AMgAUcNAQsgBBC/CwwBC0EAIQALIAdBEGokACAACw4AIAAgASgCADYCACAACwoAIAAgASAAa2oLCwAgAC0AC0H/AHEL6QEBBH8jAEEQayIEJAAgABBGIgMgAWoiASADQQF0QYAIIAMbIgIgASACSxshASAAECQhBQJAAkACQCAALQAPQf8BRgRAIANBf0YNAiAAKAIAIQIgAUUEQCACEBhBACECDAILIAIgARA6IgJFDQMgASADTQ0BIAIgA2pBACABIANrEDMaDAELIAFBARAZIgIgACAFEB8aIAAgBTYCBAsgAEH/AToADyAAIAE2AgggACACNgIAIARBEGokAA8LQd/JA0GYhQFBzQBB77oBEAAACyAEIAE2AgBBuPwIKAIAQdPzAyAEEB4aECgACwgAIABB/wFxC1ABAX4CQCADQcAAcQRAIAIgA0FAaq2IIQFCACECDAELIANFDQAgAkHAACADa62GIAEgA60iBIiEIQEgAiAEiCECCyAAIAE3AwAgACACNwMIC9sBAgF/An5BASEEAkAgAEIAUiABQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AURsNACACQgBSIANC////////////AIMiBkKAgICAgIDA//8AViAGQoCAgICAgMD//wBRGw0AIAAgAoQgBSAGhIRQBEBBAA8LIAEgA4NCAFkEQCAAIAJUIAEgA1MgASADURsEQEF/DwsgACAChSABIAOFhEIAUg8LIAAgAlYgASADVSABIANRGwRAQX8PCyAAIAKFIAEgA4WEQgBSIQQLIAQLFgAgAEUEQEEADwtB4I8LIAA2AgBBfwsLACAAIAEgAhEAAAtkAQJ/IwBBEGsiAyQAAkAgAEEAELUCIgBFDQACQAJAAkACQCABDgQAAQICAwsgACgCECECDAMLIAAoAgghAgwCCyAAKAIMIQIMAQsgAyABNgIAQeHOBCADEDYLIANBEGokACACC6QBAgN/AnwjAEEQayICJAAgABDDAiAAKAIQIgErAxhEAAAAAAAAUkCjIQQgASsDEEQAAAAAAABSQKMhBSAAEBshAQNAIAEEQCABKAIQKAKUASIDIAMrAwAgBaE5AwAgAyADKwMIIAShOQMIIAAgARAcIQEMAQsLIAIgACgCECIBKQMYNwMIIAIgASkDEDcDACAAIAIQgQ0gAEEBENgFIAJBEGokAAsPACABQQFqIAAgABCwAZ8LqAECBH8CfCABKAIAIQIgAEEEaiIDIQAgAyEBA0AgACgCACIABEAgACgCECIEKwMIIgYgAisDCCIHYwRAIABBBGohAAwCBSAAIAEgACACIARLIgQbIAYgB2QiBRshASAAIAAgBEECdGogBRshAAwCCwALCwJAAkAgASADRg0AIAIrAwgiBiABKAIQIgArAwgiB2MNACAAIAJNIAYgB2RyDQELIAMhAQsgAQtkAQF/IwBBEGsiBCQAIABBADsBHCAAQQA2AhggACADOQMIIAAgAjYCBCAAIAE2AgAgBCAANgIMIAFBNGogBEEMahDBASAAKAIEIAQgADYCCEEoaiAEQQhqEMEBIARB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BCgCECgClAEiBSsDADkDCCADIAUrAwg5AxAgA0EoaiAEIBYgFCAJER8ARQRAIANBATYCHCADIAc2AhggA0IANwNYIAMgBDYCACAHQQFqIQcgACAEEBwhBAwBCwtByIULKAIAEBhByIULQQA2AgAQmA0MAgtBACEHIAJBsANqQQBB0AAQMxogBQRAQciFCygCACEERP///////+9/IRRE////////7/8hGET////////v/yEbRP///////+9/IRkDQCAFIAdGBEBEmpmZmZmZqT8hFgJAIABBwOoAECYiAEUNACAALQAARQ0AIAAQsQIhFgtBkIYLIBsgGyAZoSAWoiIToCIXOQMAQZiGCyAZIBOhIhU5AwBBiIYLIBQgGCAUoSAWoiIToSIUOQMAQYCGCyAYIBOgIhM5AwAgAiAVOQPYAyACIBc5A+gDIAIgFTkDuAMgAiATOQPQAyACIBc5A8gDIAIgFDkD8AMgAiATOQPAAyACIBQ5A+ADIAEoAgAhAEEAEO8HIQkCQAJAIABBAkYEQCAJRQ0CIAJBsANqEJcNQQAhBQNAQciFCygCACEBQZSFCygCACEAQQAhBANAIAAgBEcEQCABIARB4ABsaiIJIAkrAwhEzczMzMzM8D+iOQMIIAkgCSsDEETNzMzMzMzwP6I5AxAgBEEBaiEEDAELCyAFQQFqIgUQ7wcNAAtBjOEKLQAARQ0BIAIgBTYCEEG4/AgoAgBByucDIAJBEGoQHhoMAQsgCUUNASACQbADahCXDUEAIQdBACEEA0AgAkGwA2oiASEAIAcEQCAAEJUNC0GohQtC/////////3c3AwBBoIULQv/////////3/wA3AwACQEGUhQsoAgAiAwRAIAAoAgAhCET////////vfyEURP///////+//IRZBACEAA0AgACADRg0CQaCFCyAUIAggAEECdGooAgAiBSsDABAqIhQ5AwBBqIULIBYgBSsDABAiIhY5AwAgAEEBaiEADAALAAtBlJsDQeDAAUHQAUHFmgEQAAALQbCFCyAIKAIAKwMIOQMAIAggA0ECdGpBBGsoAgArAwghE0HAhQsgFiAUoTkDAEG4hQsgEzkDAEQAAAAAAAAAACEVRAAAAAAAAAAAIRQjAEEwayINJAAQow0QpQ1BAUEQEBkiDEGYhQsoAgBBAnQiADYCBCAMIABBKBAZ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AUH/vwFB1QlBmTUQAAALQZrOAUH/vwFB6AlBmTUQAAALC3oBAX8jAEEQayIEJAAgAwRAIAMgACACIAIQ/AUiAjYCCEGM4QotAAAEQCAEIAI2AgBBuPwIKAIAQb3nAyAEEB4aCyADQQA2AhQgA0EAOgAMIAAgASADEKcIGiADKAIQIARBEGokAA8LQcbkAEGMxQFBhApB8eQAEAAACzwBAn8jAEEQayIBJABBASAAEEciAkUEQCABIAA2AgBBuPwIKAIAQdPzAyABEB4aECgACyABQRBqJAAgAgspAQF/A0AgACIBKAIQKAKwASIADQALA0AgASIAKAIQKAJ4IgENAAsgAAvgAQIIfAF/IAFBIEEYQcyECy0AACIMG2orAwAhBCACIAFBGEEgIAwbaisDACIFOQMYIAIgBDkDECACIAEpAzg3AwAgAiABQUBrKQMANwMIIAIgAisDACAERAAAAAAAAOA/oqEiBjkDACACIAIrAwggBUQAAAAAAADgP6KhIgc5AwggAysDACEIIAMrAwghCSADKwMQIQogACADKwMYIgsgBSAHoCIFIAUgC2MbOQMYIAAgCiAEIAagIgQgBCAKYxs5AxAgACAJIAcgByAJZBs5AwggACAIIAYgBiAIZBs5AwAL6QEBBH8jAEEQayIEJAAgABBGIgMgAWoiASADQQF0QYAIIAMbIgIgASACSxshASAAECQhBQJAAkACQCAALQAPQf8BRgRAIANBf0YNAiAAKAIAIQIgAUUEQCACEBhBACECDAILIAIgARA6IgJFDQMgASADTQ0BIAIgA2pBACABIANrEDMaDAELIAFBARBKIgIgACAFEB8aIAAgBTYCBAsgAEH/AToADyAAIAE2AgggACACNgIAIARBEGokAA8LQd/JA0GYhQFBzQBB77oBEAAACyAEIAE2AgBBuPwIKAIAQdPzAyAEEB4aECgAC3wBAXwgAEEATgRAIAFEAAAAAAAAAABjBEBBAA8LIAFEAAAAAAAA8D9kRSAAuCICRAAAwP///99BIAGjZEVyRQRAQf////8HDwsgASACoiIBmUQAAAAAAADgQWMEQCABqg8LQYCAgIB4DwtB3Z0DQZWEAUHKAEG83wAQAAALEgAgACABQa0kQS1BqsIBEMgBC7ECAQd/IwBBEGsiByQAAkACQCAAKAIIIgYgACgCDCICRwRA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ACADIAI2ArwBQaSECyABNgIAIANBADYCuAEgAQu5AQEDfyAAIABBMGoiAiAAKAIAQQNxQQNGGygCKCgCECIBKALgASABKALkASIBQQFqIAFBAmoQwgEhASAAIAIgACgCAEEDcUEDRhsoAigoAhAgATYC4AEgACACIAAoAgBBA3FBA0YbKAIoKAIQIgEgASgC5AEiA0EBajYC5AEgASgC4AEgA0ECdGogADYCACAAIAIgACgCAEEDcUEDRhsoAigoAhAiACgC4AEgACgC5AFBAnRqQQA2AgALIAAgACABIAIgAEGljwEQJiIABH8gABCRAgVBHgsQug8LTAAgASgCEEHAAWohAQNAIAEoAgAiAQRAIAEoAhAoApgCEBggASgCECgCoAIQGCABKAIQIgFBADYCsAEgAUG4AWohAQwBCwsgABCvDws/AQJ/IAAoAhAoAqgCIQADQCAAIgEoAgwiAEUgACABRnJFBEAgACgCDCICRQ0BIAEgAjYCDCACIQAMAQsLIAELCwAgACABQQEQww8LCwAgACABQQAQww8LugIBB38jAEEQayIHJAACQAJAIAAoAggiBiAAKAIMIgJHBEAgACgCACEDIAAoAgQhBAwBCyAGQQF0QQEgBhsiAkH///8/SwRAQcQAIQAMAgsgACgCACACQQV0EDoiA0UEQEEwIQAMAgsgAyAAKAIMIgVBBXRqQQAgAiAFa0EFdBAzGiAFIAAoAggiBiAAKAIEIgRqSQRAIARBBXQhCCADIAIgBSAEayIFayIEQQV0aiADIAhqIAVBBXQQUxogACAENgIECyAAIAI2AgwgACADNgIACyADIAQgBmogAnBBBXRqIgIgASkDADcDACACIAEpAxg3AxggAiABKQMQNwMQIAIgASkDCDcDCCAAIAAoAghBAWo2AgggB0EQaiQADwsgByAAEHg2AgBBuPwIKAIAQdqKBCAHEB4aECgAC1wAIAEoAgggAk0EQEHCvANB+YIBQQhBqSUQAAALIAAgASgCACABKAIEIAJqIAEoAgxwQQV0aiIBKQMANwMAIAAgASkDGDcDGCAAIAEpAxA3AxAgACABKQMINwMIC9oCAQV8IAEgAEE4bGoiACsAECEDAnwgACsAGCIEIAArAAgiBURIr7ya8td6PqBkRSAAKwAAIgYgA2NFIAQgBURIr7ya8td6vqBjcnFF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5DoQAAALIABBAnRB6M4IaigCAAsXACAAKAIAIgAgASgCACIBSiAAIAFIawu0AgEGfyMAQRBrIgckAAJAIAAgASACEL0DRQRAIAAoAgQgAUEYbGoiACEBAkAgACgCECIGIAAoAhQiAEcEQCABKAIIIQMgASgCDCEEDAELIAZBAXRBASAGGyIAQf////8DSwRAQcQAIQEMAwsgASgCCCAAQQJ0EDoiA0UEQEEwIQEMAwsgAyABKAIUIgVBAnRqQQAgACAFa0ECdBAzGiAFIAEoAhAiBiABKAIMIgRqSQRAIARBAnQhCCADIAAgBSAEayIFayIEQQJ0aiADIAhqIAVBAnQQUxogASAENgIMCyABIAA2AhQgASADNgIICyADIAQgBmogAHBBAnRqIAI2AgAgASABKAIQQQFqNgIQCyAHQRBqJAAPCyAHIAEQeDYCAEG4/AgoAgBB2ooEIAcQHhoQKAALFAAgACABQQJBmilBEUGuhAEQogILngECAn8BfgJAIAEgAkGABCABKAIAEQQAIgVFBEAgACgCECAAKAIAIgVBKGxqIgYgBTYCICAAIAVBAWo2AgAgBiEAIANFDQEgAyAAKAIgQQV0aiIFIAIpAwA3AwggAikDCCEHIAUgADYCACAFIAc3AxAgACAEOgAkIAEgBUEBIAEoAgARBAAaCyAFKAIADwtBgzJB5sUBQagCQdkcEAAAC8sDAgZ8A38jAEEQayIMJAADQAJAAkACQAJAAkAgBCACEDsiCygCAEEBaw4DAgEAAwsgCygCGCAMQRBqJAAPC0EkIQIgACsACCIFIAsrABAiB0RIr7ya8td6PqAiCGQNAiAFIAdESK+8mvLXer6gIgljRSAAKwAAIgogCysACCIGZHENAkEgIQIgBSAHoZlESK+8mvLXej5lRSAKIAahmURIr7ya8td6PmVFcg0CQSQhAiABKwAIIgUgCGQNAkEgQSRBICABKwAAIAZkGyAFIAljGyECDAILIAArAAAhBgJAAkAgACsACCIFIAMgCygCBCINQThsaiICKwAIoZlESK+8mvLXej5lBEAgBiACKwAAoZlESK+8mvLXej5lDQELIAUgAisAGKGZREivvJry13o+ZUUNASAGIAIrABChmURIr7ya8td6PmVFDQELIAUgASsDCKGZREivvJry13o+ZQRAQSBBJCABKwMAIAZj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FEEDdCIAaiAAIAdqKwMAIDWjOQMAIARBAWohFUEAIQBBACEDA0AgAyAURgRAA0AgACAERgRAQQAhAgNAIAIgEkYNBiAFIAJBA3QiAGogACANaisDADkDACACQQFqIQIMAAsABSAHIABBA3QiAmogAiAMaisDADkDACAAQQFqIQAMAQsACwALIA4gBCADayICQQJrIg9BA3QiF2oiESAHIBdqKwMAIjU5AwAgAkEBayECIAUgBCAPbEEDdGohFwNAIAIgBE8EQCARIDUgBSAPIBVsQQN0aisDAKM5AwAgA0EBaiEDDAIFIBEgNSAXIAJBA3QiGGorAwAgDiAYaisDAKKhIjU5AwAgAkEBaiECDAELAAsACwALQcTfCigCABoCQEGEtAFB+N4KEI0BQQBIDQACQEHI3wooAgBBCkYNAEGM3wooAgAiAEGI3wooAgBGDQBBjN8KIABBAWo2AgAgAEEKOgAADAELQfjeCkEKEMAHGgsLIA0QGCAMEBhBACEAA0BBzOEKLwEAIg4gAEsEQEHg4QorAwAhNRDXASE2IABBA3QiAiAKQaABamoiAyADKwMAIDUgNkQAAAAAAADwPyA1oSI1IDWgoqCiIjU5AwAgASgCECgClAEgAmoiAiA1IAIrAwCgOQMAIABBAWohAAwBCwsgCSgCECICIAIoApwBQQFqNgKcASACKAKYASISIAhqKAIAIQ1BACEAA0AgACAORgRAQQAhAwNAIAMgFkcEQAJAIAMgC0YNAEEAIQcgDSgCECgClAEgEiADQQJ0IgRqKAIAKAIQKAKUASAKQfABahCLDiE1A0AgByAORg0BIAdBA3QiACACKAKsASIMIAhqKAIAIARqKAIAaiIUIANBA3QiDyACKAKkASAIaigCAGorAwAgCkHwAWogAGorAwAiNiA2IAIoAqABIAhqKAIAIA9qKwMAoiA1o6GiIjY5AwAgAigCqAEiDyAIaigCACAAaiIRIDYgESsDAKA5AwAgBCAMaigCACAIaigCACAAaiIMKwMAITYgDCAUKwMAmiI3OQMAIAQgD2ooAgAgAGoiACA3IDahIAArAwCgOQMAIAdBAWohBwwACwALIANBAWohAwwBCwtBhOUKKAIABEBBACEAQczhCi8BACECRAAAAAAAAAAAITYDQCAAIAJHBEAgNiAKQaABaiAAQQN0aisDAJmg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IQEMAQsLIAYgAhD/BiEHIA0EQCAEKAJ8IQAgByAVOQMYIAcgEzkDECAHIAA2AggLIAwEQCAEKAJ4IQAgByAUOQMoIAcgFjkDICAHIAA2AgwLIAFBAWohAUEAIQADQCAAIAJHBEAgAEEEdCIPIAcoAgBqIhAgCyAPaiIPKQMANwMAIBAgDykDCDcDCCAAQQFqIQAMAQsLIAsQGCAODQALIAYoAhAiACgCYCIBBEAgBiABQePfABC7BCAGKAIQIQALIAAoAmwiAQRAIAYgAUHI3wAQuwQgBigCECEACyAAKAJkIgEEfyAGIAFB3t8AELsEIAYoAhAFIAALKAJoIgAEQCAGIABB1t8AELsECyAFQQFqIQULIAMgBhAwIQYMAQsLIAMgChAcIQoMAQsLIAVFBEBBACEHDAELQQJBASADELoCIAVGGyEHC0EAIQZBACECIAMoAhAoAggiACgCWCIMBEAgAEEANgJUQQEhAgsCQCAMDQBBmOEKKAIAQQFHDQAgAxDABEUNAEEBIQYgAygCECgCDCIARQ0AIABBADoAUQsgAxDDAiAMBEAgAygCECEKRAAAAAAAAAAAIRVEAAAAAAAAAAAhFkEAIQ1BACEOQQAhDyMAQUBqIgUkACADKAIQIgAoApABIRAgBEHYAGoiASAAKQMQNwMAIAEgACkDKDcDGCABIAApAyA3AxAgASAAKQMYNwMIAkAgACgCCCgCWCILRQ0AAkAgASsDACABKwMQYg0AIAErAwggASsDGGINACABQv////////93NwMYIAFC//////////f/ADcDACABQv/////////3/wA3AwggAUL/////////dzcDEAsgCygCCCEAA0AgDSALKAIATw0BIAVCADcDOCAFQgA3AzAgBUIANwMoIAVCADcDIAJAAkACQAJAAkACQAJAAkAgACgCAA4QAAABAQICAwQHBwUHBwcHBgcLIAAgACsDECIXIAArAyAiGKAiEzkDaCAAIAArAwgiGyAAKwMYIhygIhQ5A2AgACAXIBihIhc5A1ggACAbIByhIhg5A1AgASABKwMAIBgQKiAUECo5AwAgASABKwMYIBcQIiATECI5AxggASABKwMIIBcQKiATECo5AwggASABKwMQIBgQIiAUECI5AxAMBgsgBSAAKAIMIAAoAgggARDABiAAIAUpAxg3A2ggACAF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A0cbaigCKCgCECgClAEiBSsDCKJEAAAAAAAAUkCiIRAgFSAFKwMAokQAAAAAAABSQKIhESAUIANBUEEAIAJBAkcbaigCKCgCECgClAEiAisDCKJEAAAAAAAAUkCiIRIgFSACKwMAokQAAAAAAABSQKIhEyABKAIAIQIDQCAEIAhGBEACQCAHKAJgIgFFDQAgAS0AUUEBRw0AIAEgDyABKwM4ojkDOCABIA0gASsDQKI5A0ALAkAgBygCZCIBRQ0AIAEtAFFBAUcNACABIBMgASsDOKA5AzggASASIAErA0CgOQNACyAHKAJoIgFFDQMgAS0AUUEBRw0DIAEgESABKwM4oDkDOCABIBAgASsDQKA5A0AMAwsgAigCBCIKQQFrIQsgAigCACEBQQAhBSAEIAlHIQwDQCAFIApGBEAgAigCCARAIAIgESACKwMQoDkDECACIBAgAisDGKA5AxgLIAIoAgwEQCACIBMgAisDIKA5AyAgAiASIAIrAyigOQMoCyAEQQFqIQQgAkEwaiECDAIFIAECfCAEIAVyRQRAIAEgESABKwMAoDkDACAQIAErAwigDAELIAErAwAhDiAMIAUgC0dyRQRAIAEgEyAOoDkDACASIAErAwigDAELIAEgDyAOojkDACANIAErAwiiCzkDCCAFQQFqIQUgAUEQaiEBDAELAAsACwALIAAgBhAcIQYMAgsgACADEDAhAwwACwALAAsgABAbIQEDQCABBEAgASgCECgClAEiAiAPIAIrAwCiOQMAIAIgDSACKwMIojkDCCAAIAEQHCEBDAELCyAAIA8gDRCCDUEBIQMLIAAQGyEBA0AgAQRAIAEoAhAiAiACKAKUASIEKwMARAAAAAAAAFJAojkDECACIAQrAwhEAAAAAAAAUkCiOQMYIAAgARAcIQEMAQsLIAML7AIBBH8jAEGAAWsiByQAIAJBACACQQBKGyECAkADQCACIAhGBEAgBCADIAMgBEgbIQQDQCADIARGIgINAyAGIANBAnRqKAIAIQggByAAKQMINwM4IAcgACkDADcDMCAHIAEpAwg3AyggByABKQMANwMgIAcgBSADQQR0aiIJKQMINwMYIAcgCSkDADcDECAHIAUgCEEEdGoiCCkDCDcDCCAHIAgpAwA3AwAgA0EBaiEDIAdBMGogB0EgaiAHQRBqIAcQvgRFDQALDAILIAYgCEECdGooAgAhCSAHIAApAwg3A3ggByAAKQMANwNwIAcgASkDCDcDaCAHIAEpAwA3A2AgByAFIAhBBHRqIgopAwg3A1ggByAKKQMANwNQIAcgBSAJQQR0aiIJKQMINwNIIAcgCSkDADcDQCAIQQFqIQggB0HwAGogB0HgAGogB0HQAGogB0FAaxC+BEUNAAtBACECCyAHQYABaiQAIAIL/RECGn8MfCMAQTBrIgMkAEHIhQsoAgAhBUGUhQsoAgAhAgNAIAIgD0YEQANAIAJBAWsgC00EQEGM4QotAABBAUsEQCADIBA2AiQgAyAANgIgQbj8CCgCAEHl5wMgA0EgahAeGgsgA0EwaiQAIBAPC0HIhQsoAgAgC0HgAGxqIhNBKGohCSALQQFqIg8hCwNAIAIgC00EQCAPIQsMAgUgAyATKQMQNwMYIAMgEykDCDcDECADQciFCygCACALQeAAbGoiBykDEDcDCCADIAcpAwg3AwBBACECQQAhBiMAQbAEayIBJAAgASADKQMYNwOoAyABIAMpAxA3A6ADIAEgCSkDCDcDmAMgASAJKQMANwOQAyABQeADaiABQaADaiABQZADahDiBSABIAMpAxg3A4gDIAEgAykDEDcDgAMgASAJKQMYNwP4AiABIAkpAxA3A/ACIAFB0ANqIAFBgANqIAFB8AJqEOIFIAEgAykDCDcD6AIgASADKQMANwPgAiABIAcpAzA3A9gCIAEgBykDKDcD0AIgAUHAA2ogAUHgAmogAUHQAmoQ4gUgASADKQMINwPIAiABIAMpAwA3A8ACIAEgBykDQDcDuAIgASAHKQM4NwOwAiABQbADaiABQcACaiABQbACahDiBQJAIAErA+ADIAErA7ADZUUNACABKwPAAyABKwPQA2VFDQAgASsD6AMgASsDuANlRQ0AIAErA8gDIAErA9gDZUUNAEEBIQIgCSgCKCIFQQFxBEAgBy0AUEEBcQ0BCwJAIAVBAnFFDQAgBy0AUEECcUUNACADKwMQIAMrAwChIhsgG6IgAysDGCADKwMIoSIbIBuioCAJKwMQIAkrAwChIAcrAzigIAcrAyihIhsgG6JEAAAAAAAA0D+iZEUhAgwBC0HQhQsoAgAiBUUEQEHQhQtBzIULKAIAELcCNgIAQdSFC0HMhQsoAgAQtwI2AgBB0IULKAIAIQULIAkoAiAiDEEAIAxBAEobIQggAysDGCEbIAMrAxAhHCAJKAIkIQQgBSECA0AgBiAIRwRAIAIgHCAEKwMAoDkDACACIBsgBCsDCKA5AwggBkEBaiEGIAJBEGohAiAEQRBqIQQMAQsLQQAhBiAHKAJIIg1BACANQQBKGyEIIAMrAwghGyADKwMAIRwgBygCTCEEQdSFCygCACIUIQIDQCAGIAhHBEAgAiAcIAQrAwCgOQMAIAIgGyAEKwMIoDkDCCAGQQFqIQYgAkEQaiECIARBEGohBAwBCwsgDUEBdCEXIAxBAXQhGCANQQFrIRkgDEEBayEaQQAhAkEAIQRBACEGQQAhCAJAAkADQCABIAUgCEEEdGoiCikDCDcDqAIgASAKKQMANwOgAiABIAUgCCAaaiAMb0EEdGoiESkDCDcDmAIgASARKQMANwOQAiABQaAEaiABQaACaiABQZACahCtDSABIBQgBkEEdGoiDikDCDcDiAIgASAOKQMANwOAAiABIBQgBiAZaiANb0EEdGoiEikDCDcD+AEgASASKQMANwPwASABQZAEaiABQYACaiABQfABahCtDSABQgA3A/gDIAFCADcD6AEgASABKQOoBDcD2AEgASABKQOYBDcDyAEgAUIANwPwAyABQgA3A+ABIAEgASkDoAQ3A9ABIAEgASkDkAQ3A8ABIAErA+gBIAErA9gBIhuhIAErA8ABIAErA9ABIhyhoiABKwPIASAboSABKwPgASAcoaKhIR8gASARKQMINwO4ASABIBEpAwA3A7ABIAEgCikDCDcDqAEgASAKKQMANwOgASABIA4pAwg3A5gBIAEgDikDADcDkAEgAUGwAWogAUGgAWogAUGQAWoQrA0hFSABIBIpAwg3A4gBIAEgEikDADcDgAEgASAOKQMINwN4IAEgDikDADcDcCABIAopAwg3A2ggASAKKQMANwNgIAFBgAFqIAFB8ABqIAFB4ABqEKwNIRYgASARKQMINwNYIAEgESkDADcDUCABIAopAwg3A0ggASAKKQMANwNAIAEgEikDCDcDOCABIBIpAwA3AzAgASAOKQMINwMoIAEgDikDADcDICABKwMwIiAgASsDWCIbIAFBQGsiCisDCCIhoaIgASsDICIlICEgG6EiIqIgASsDUCIeIAErAygiHSABKwM4IhyhoiImIAor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JGoQ6gUgAhCxASECDAELAAsACyABKAIUIQIgASgCECIFBEAgBSgCBCIIKwMAIQ8gCCsDCCEQIAEoAgQiCCsDACERIAgrAwghEiAAQSAQiwEgBSgCACABKAIAIBIgEaEgECAPoaBEAAAAAAAA4D+iELQDNgIYIABBKGogAEEYahDBASAFIAEoAhQ2AhQLIAJFDQAgAigCBCIFKwMAIQ8gBSsDCCEQIAEoAgQiBSsDACERIAUrAwghEiAAQSAQiwEgASgCACACKAIAIBIgEaEgECAPoaBEAAAAAAAA4D+iELQDNgIYIABBKGogAEEYahDBASACIAEoAhA2AhALIABBOGogAEEkahDqBQwBCyAAQThqIABBJGoQswMiAiAAKAI4RwRAIAEgAhCKCCgCECICNgIQIAIgATYCFAsgAEE4aiAAQSRqELMDELEBIgIgC0YNACABIAIoAhAiAjYCFCACIAE2AhALIAZBGGohBgwACwAFIAIgBkECdGoiCSgCACAFIAZBBXQiC2oiBysDACIPIAcrAwggD6FEAAAAAAAA4D+ioCIPOQMIIAAgDzkDKCAAQThqIgUgCSAHIABBKGoiBxDdDSAAQQA2AhggACABKAIAIAtqKwMQOQMoIABBxABqIgkgAEEYaiIMIAUgBxDpBSAAQQE2AhggACABKAIAIAtqKwMYOQMoIAZBAWohBiAJIAwgBSAHEOkFIAUQ2wEMAQsACwALIA4QggIaIApBEGokAAUgCkEEaiABIAZBBXRqIgAgAEEQaiAAQQhqIABBGGoQzw0gBkEBaiEGDAELCwtSAQF/QcAAEIsBIgJCADcDKCACQQA6ACQgAkEANgIgIAJCADcDGCACIAE5AxAgAkQAAAAAAADwPzkDCCACIAA2AgAgAkIANwMwIAJCADcDOCACC1IAIAAgASACIAQQ0gICQCADIAIgBCgCABEAAEUNACACIAMQuQEgAiABIAQoAgARAABFDQAgASACELkBIAEgACAEKAIAEQAARQ0AIAAgARC5AQsLOwECfyAAKAIAIgEEQCABIQADQCAAIgEoAgQiAA0ACyABDwsDQCAAIAAoAggiASgCAEYgASEADQALIAALXQEEfyAAQaDYCjYCAEGIhQtBADYCACAAQQRqIgJBBGohBCACKAIAIQEDQCABIARHBEAgASgCECIDBEAgAxDrDRoL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RQ0BQcDlCigCACIBBH8gASAAQYAEIAEoAgARBAAFQQALDwtB16ABQdHGAUGsBUH2qwEQAAALQczPAUHRxgFBrQVB9qsBEAAACxUBAX8Q0AMhAEEPQbDlCigCACAAGwuZAgECfyABKAJEIQEDQCABLQAAIgIEQAJAAkAgAUHv3wFBBRCBAkUNACABQbPYAUEHEIECRQ0AIAFB4uIBQQUQgQJFDQAgAUGw1wFBCRCBAg0BCwJ/AkADQAJAAkACQCACQf8BcSICQQprDgQEAQECAAsgAkUNAwsgAS0AASECIAFBAWohAQwBCwtBASABLQABQQpHDQEaIAFBAmohAQwECyACQQBHCyECIAEgAmohAQwCCwJ/AkADQAJAAkACQCACQf8BcSIDQQprDgQEAQECAAsgA0UNAwsgACACwBBnIAEtAAEhAiABQQFqIQEMAQsLQQJBASABLQABQQpGGwwBCyADQQBHCyECIABBChBnIAEgAmohAQwBCwsLyAICAn8BfCMAQYACayIDJAAgAisDECEFIAMgACkDCDcDeCADIAApAwA3A3AgAyABKQMINwNoIAMgASkDADcDYCADQeABaiADQfAAaiADQeAAahDSAwJAIAUgAysD4AFmRQ0AIAMgACkDCDcDWCADIAApAwA3A1AgAyABKQMINwNIIAMgASkDADcDQCADQcABaiADQdAAaiADQUBrENIDIAMrA9ABIAIrAwBmRQ0AIAIrAxggAyAAKQMINwM4IAMgACkDADcDMCADIAEpAwg3AyggAyABKQMANwMgIANBoAFqIANBMGogA0EgahDSAyADKwOoAWZFDQAgAyAAKQMINwMYIAMgACkDADcDECADIAEpAwg3AwggAyABKQMANwMAIANBgAFqIANBEGogAxDSAyADKwOYASACKwMIZiEECyADQYACaiQAIAQLagICfAF/AkAgASsDECAAKwA4IgIgACsDGEQAAAAAAADgP6IiA6FmRQ0AIAErAwAgAyACoGVFDQAgASsDGCAAKwBAIgIgACsDIEQAAAAAAADgP6IiA6FmRQ0AIAErAwggAyACoGUhBAsgBAsoAQF/A38gAAR/IAAoAgQQpwogAWpBAWohASAAKAIAIQAMAQUgAQsLC/oCAQZ/IwBBEGsiBiQAAkACQAJAIAAoAgAiAy0AAEEjRgRAIAMtAAEiAkHf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AkACQAJAIAEoAgBBAmsODQAAAQECAwQEBgcIBQUJCyABKAIMEBgMCAsgASgCDBAYDAcLIAEoAgwQGAwGCyABKAIoEBgMBQsgASgCCBAYDAQLQQAhAgJAAkACQAJAIAEoAghBAWsOAgABAwsDQCABKAI0IQMgAiABKAIwTg0CIAMgAkEEdGooAggQGCACQQFqIQIMAAsACwNAIAEoAkQhAyACIAEoAkBODQEgAyACQQR0aigCCBAYIAJBAWohAgwACwALIAMQGAsMAwsgASgCEBAYDAILIAEoAggQGAwBCyABKAIoEBgLIARBAWohBAwBCwsgBRAYIAAQGAsJACAAQQA2AgALSQEBfyMAQRBrIgMkAAJAAkAgAkEeSw0AIAEtAHhBAXENACABQQE6AHgMAQsgAhD9CiEBCyADQRBqJAAgACACNgIEIAAgATYCAAtAAQF/IwBBEGsiASQAIAAQoQMaIAFB/////wM2AgwgAUH/////BzYCCCABQQxqIAFBCGoQ6AsoAgAgAUEQaiQACwsAIABBADYCACAACzcBAX8jAEEQayIDJAAgAyABEO0CNgIMIAMgAhDtAjYCCCAAIANBDGogA0EIahCwBSADQRBqJAALTgEBfyMAQRBrIgMkACADIAE2AgggAyAANgIMIAMgAjYCBEEAIQEgA0EEaiIAIANBDGoQrQVFBEAgACADQQhqEK0FIQELIANBEGokACABC98BAQN/IAAQJCAAEEZPBEAgABBGIgJBAWoiAyACQQF0QYAIIAIbIgQgAyAESxshAyAAECQhBAJAIAAtAA9B/wFGBEAgACgCACACIANBARCcBSECDAELIANBARBKIgIgACAEEB8aIAAgBDYCBAsgAEH/AToADyAAIAM2AgggACACNgIACyAAECQhAgJAIAAQJwRAIAAgAmogAToAACAAIAAtAA9BAWo6AA8gABAkQRBJDQFBvMADQcmEAUGdAkGUugEQAAALIAAoAgAgAmogAToAACAAIAAoAgRBAWo2AgQLCzQBAX8jAEEQayIDJAAgABAjGiAAIAIQowMgA0EAOgAPIAEgAmogA0EPahDTASADQRBqJAALHAAgAEH/////A0sEQBCTAQALIABBAnRBBBDdCwsJACAAEJIHEBgLngcBCn8jAEGgAWsiAiQAAkAgAEUNAEEBQRQQSiIDQdAAIAEg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ELILCyACIAEgASACKAIAEN4LIAZBDGogAyAAKAIAENYLIAFqNgIAIAZBEGokAAtCACABIAIgAyAEQQQQpQIhASADLQAAQQRxRQRAIAAgAUHQD2ogAUHsDmogASABQeQASRsgAUHFAEgbQewOazYCAAsLQAAgAiADIABBCGogACgCCCgCBBECACIAIABBoAJqIAUgBEEAEKcFIABrIgBBnwJMBEAgASAAQQxtQQxvNgIACwtAACACIAMgAEEIaiAAKAIIKAIAEQIAIgAgAEGoAWogBSAEQQAQpwUgAGsiAEGnAUwEQCABIABBDG1BB282AgALC0IAIAEgAiADIARBBBCmAiEBIAMtAABBBHFFBEAgACABQdAPaiABQewOaiABIAFB5ABJGyABQcUASBtB7A5rNgIACwtAACACIAMgAEEIaiAAKAIIKAIEEQIAIgAgAEGgAmogBSAEQQAQqQUgAGsiAEGfAkwEQCABIABBDG1BDG82AgALC0AAIAIgAyAAQQhqIAAoAggoAgARAgAiACAAQagBaiAFIARBABCpBSAAayIAQacBTARAIAEgAEEMbUEHbzYCAAsLBABBAgveAQEFfyMAQRBrIgckACMAQRBrIgMkACAAIQQCQCABQff///8DTQRAAkAgARCZBQRAIAQgARDUAQwBCyADQQhqIAEQ1gNBAWoQ1QMgAygCDBogBCADKAIIIgAQ/AEgBCADKAIMEPsBIAQgARC/AQsjAEEQayIFJAAgBSACNgIMIAAhAiABIQYDQCAGBEAgAiAFKAIMNgIAIAZBAWshBiACQQRqIQIMAQsLIAVBEGokACADQQA2AgQgACABQQJ0aiADQQRqEN4BIANBEGokAAwBCxDMAQALIAdBEGokACAEC8AFAQ5/IwBBEGsiCyQAIAYQzQEhCiALQQRqIAYQ3QMiDhDKASAFIAM2AgACQAJAIAAiBy0AACIGQStrDgMAAQABCyAKIAbAENIBIQYgBSAFKAIAIghBBGo2AgAgCCAGNgIAIABBAWohBwsCQAJAIAIgByIGa0EBTA0AIAYtAABBMEcNACAGLQABQSByQfgARw0AIApBMBDSASEIIAUgBSgCACIHQQRqNgIAIAcgCDYCACAKIAYsAAEQ0gEhCCAFIAUoAgAiB0EEajYCACAHIAg2AgAgBkECaiIHIQYDQCACIAZNDQIg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QX8LCAAgABCoBxoLRAECfwJAIAAoAgAgASgCACAAKAIEIgAgASgCBCICIAAgAkkiAxsQ6gEiAQ0AQQEhASAAIAJLDQBBf0EAIAMbIQELIAELvg8CBX8PfiMAQdACayIFJAAgBEL///////8/gyEKIAJC////////P4MhCyACIASFQoCAgICAgICAgH+DIQwgBEIwiKdB//8BcSEIAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgCEH//wFrQYGAfksNAQsgAVAgAkL///////////8AgyINQoCAgICAgMD//wBUIA1CgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhDAwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEMIAMhAQwCCyABIA1CgICAgICAwP//AIWEUARAIAMgAkKAgICAgIDA//8AhYRQBEBCACEBQoCAgICAgOD//wAhDAwDCyAMQoCAgICAgMD//wCEIQxCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEBCACEBDAILIAEgDYRQBEBCgICAgICA4P//ACAMIAIgA4RQGyEMQgAhAQwCCyACIAOEUARAIAxCgICAgICAwP//AIQhDEIAIQEMAgsgDUL///////8/WARAIAVBwAJqIAEgCyABIAsgC1AiBht5IAZBBnStfKciBkEPaxC2AUEQIAZrIQYgBSkDyAIhCyAFKQPAAiEBCyACQv///////z9WDQAgBUGwAmogAyAKIAMgCiAKUCIHG3kgB0EGdK18pyIHQQ9rELYBIAYgB2pBEGshBiAFKQO4AiEKIAUpA7ACIQMLIAVBoAJqIApCgICAgICAwACEIhJCD4YgA0IxiIQiAkIAQoCAgICw5ryC9QAgAn0iBEIAEKABIAVBkAJqQgAgBSkDqAJ9QgAgBEIAEKABIAVBgAJqIAUpA5gCQgGGIAUpA5ACQj+IhCIEQgAgAkIAEKABIAVB8AFqIARCAEIAIAUpA4gCfUIAEKABIAVB4AFqIAUpA/gBQgGGIAUpA/ABQj+IhCIEQgAgAkIAEKABIAVB0AFqIARCAEIAIAUpA+gBfUIAEKABIAVBwAFqIAUpA9gBQgGGIAUpA9ABQj+IhCIEQgAgAkIAEKABIAVBsAFqIARCAEIAIAUpA8gBfUIAEKABIAVBoAFqIAJCACAFKQO4AUIBhiAFKQOwAUI/iIRCAX0iAkIAEKABIAVBkAFqIANCD4ZCACACQgAQoAEgBUHwAGogAkIAQgAgBSkDqAEgBSkDoAEiDSAFKQOYAXwiBCANVK18IARCAVatfH1CABCgASAFQYABakIBIAR9QgAgAkIAEKABIAYgCSAIa2ohBgJ/IAUpA3AiE0IBhiIOIAUpA4gBIg9CAYYgBSkDgAFCP4iEfCIQQufsAH0iFEIgiCICIAtCgICAgICAwACEIhVCAYYiFkIgiCIEfiIRIAFCAYYiDUIgiCIKIBAgFFatIA4gEFatIAUpA3hCAYYgE0I/iIQgD0I/iHx8fEIBfSITQiCIIhB+fCIOIBFUrSAOIA4gE0L/////D4MiEyABQj+IIhcgC0IBhoRC/////w+DIgt+fCIOVq18IAQgEH58IAQgE34iESALIBB+fCIPIBFUrUIghiAPQiCIhHwgDiAOIA9CIIZ8Ig5WrXwgDiAOIBRC/////w+DIhQgC34iESACIAp+fCIPIBFUrSAPIA8gEyANQv7///8PgyIRfnwiD1atfHwiDlatfCAOIAQgFH4iGCAQIBF+fCIEIAIgC358IgsgCiATfnwiEEIgiCALIBBWrSAEIBhUrSAEIAtWrXx8QiCGhHwiBCAOVK18IAQgDyACIBF+IgIgCiAUfnwiCkIgiCACIApWrUIghoR8IgIgD1StIAIgEEIghnwgAlStfHwiAiAEVK18IgRC/////////wBYBEAgFiAXhCEVIAVB0ABqIAIgBCADIBIQoAEgAUIxhiAFKQNYfSAFKQNQIgFCAFKtfSEKQgAgAX0hCyAGQf7/AGoMAQsgBUHgAGogBEI/hiACQgGIhCICIARCAYgiBCADIBIQoAEgAUIwhiAFKQNofSAFKQNgIg1CAFKtfSEKQgAgDX0hCyABIQ0gBkH//wBqCyIGQf//AU4EQCAMQoCAgICAgMD//wCEIQxCACEBDAELAn4gBkEASgRAIApCAYYgC0I/iIQhASAEQv///////z+DIAatQjCGhCEKIAtCAYYMAQsgBkGPf0wEQEIAIQEMAgsgBUFAayACIARBASAGaxCsAyAFQTBqIA0gFSAGQfAAahC2ASAFQSBqIAMgEiAFKQNAIgIgBSkDSCIKEKABIAUpAzggBSkDKEIBhiAFKQMgIgFCP4iEfSAFKQMwIgQgAUIBhiINVK19IQEgBCANfQshBCAFQRBqIAMgEkIDQgAQoAEgBSADIBJCBUIAEKABIAogAiACIAMgBCACQgGDIgR8IgNUIAEgAyAEVK18IgEgElYgASASURutfCICVq18IgQgAiACIARCgICAgICAwP//AFQgAyAFKQMQViABIAUpAxgiBFYgASAEURtxrXwiAlatfCIEIAIgBEKAgICAgIDA//8AVCADIAUpAwBWIAEgBSkDCCIDViABIANRG3GtfCIBIAJUrXwgDIQhDAsgACABNwMAIAAgDDcDCCAFQdACaiQAC8ABAgF/An5BfyEDAkAgAEIAUiABQv///////////wCDIgRCgICAgICAwP//AFYgBEKAgICAgIDA//8AURsNACACQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AUnENACAAIAQgBYSEUARAQQAPCyABIAKDQgBZBEAgASACUiABIAJTcQ0BIAAgASAChYRCAFIPCyAAQgBSIAEgAlUgASACURsNACAAIAEgAoWEQgBSIQMLIAMLnwMBBX9BECECAkBBECAAIABBEE0bIgMgA0EBa3FFBEAgAyEADAELA0AgAiIAQQF0IQIgACADSQ0ACwtBQCAAayABTQRAQeCPC0EwNgIAQQAPC0EQIAFBC2pBeHEgAUELSRsiAyAAakEMahBIIgJFBEBBAA8LIAJBCGshAQJAIABBAWsgAnFFBEAgASEADAELIAJBBGsiBSgCACIGQXhxIAAgAmpBAWtBACAAa3FBCGsiAiAAQQAgAiABa0EPTRtqIgAgAWsiAmshBCAGQQNxRQRAIAEoAgAhASAAIAQ2AgQgACABIAJqNgIADAELIAAgBCAAKAIEQQFxckECcjYCBCAAIARqIgQgBCgCBEEBcjYCBCAFIAIgBSgCAEEBcXJBAnI2AgAgASACaiIEIAQoAgRBAXI2AgQgASACELsFCwJAIAAoAgQiAUEDcUUNACABQXhxIgIgA0EQak0NACAAIAMgAUEBcXJBAnI2AgQgACADaiIBIAIgA2siA0EDcjYCBCAAIAJqIgIgAigCBEEBcjYCBCABIAMQuwULIABBCGoLEgAgAEUEQEEADwsgACABELQHC+UeAg9/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ACEHA0AgASENIAcgDkH/////B3NKDQIgByAOaiEOAkACQAJAAkAgASIHLQAAIgsEQANAAkACQCALQf8BcSIBRQRAIAchAQwBCyABQSVHDQEgByELA0AgCy0AAUElRwRAIAshAQwCCyAHQQFqIQcgCy0AAiALQQJqIgEhC0ElRg0ACwsgByANayIHIA5B/////wdzIhdKDQkgAARAIAAgDSAHEKkBCyAHDQcgCCABNgI8IAFBAWohB0F/IRACQCABLAABQTBrIgpBCUsNACABLQACQSRHDQAgAUEDaiEHQQEhEiAKIRALIAggBzYCPEEAIQwCQCAHLAAAIgtBIGsiAUEfSwRAIAchCgwBCyAHIQpBASABdCIBQYnRBHFFDQADQCAIIAdBAWoiCjYCPCABIAxyIQwgBywAASILQSBrIgFBIE8NASAKIQdBASABdCIBQYnRBHENAAsLAkAgC0EqRgRAAn8CQCAKLAABQTBrIgFBCUsNACAKLQACQSRHDQACfyAARQRAIAQgAUECdGpBCjYCAEEADAELIAMgAUEDdGooAgALIQ8gCkEDaiEBQQEMAQsgEg0GIApBAWohASAARQRAIAggATYCPEEAIRJBACEPDAMLIAIgAigCACIHQQRqNgIAIAcoAgAhD0EACyESIAggATYCPCAPQQBODQFBACAPayEPIAxBgMAAciEMDAELIAhBPGoQhQwiD0EASA0KIAgoAjwhAQtBACEHQX8hCQJ/QQAgAS0AAEEuRw0AGiABLQABQSpGBEACfwJAIAEsAAJBMGsiCkEJSw0AIAEtAANBJEcNACABQQRqIQECfyAARQRAIAQgCkECdGpBCjYCAEEADAELIAMgCkEDdGooAgALDAELIBINBiABQQJqIQFBACAARQ0AGiACIAIoAgAiCkEEajYCACAKKAIACyEJIAggATYCPCAJQQBODAELIAggAUEBajYCPCAIQTxqEIUMIQkgCCgCPCEBQQELIRMDQCAHIRRBHCEKIAEiGCwAACIHQfsAa0FGSQ0LIAFBAWohASAHIBRBOmxqQY+OCWotAAAiB0EBa0EISQ0ACyAIIAE2AjwCQCAHQRtHBEAgB0UNDCAQQQBOBEAgAEUEQCAEIBBBAnRqIAc2AgAMDAsgCCADIBBBA3RqKQMANwMwDAILIABFDQggCEEwaiAHIAIgBhCEDAwB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AgALIARB8AJqIBcgFiANEI8MIAQpA/gCIRUgBCkD8AILIRYgDiAVNwMoIA4gFjcDICAEQZDGAGokACAOKQMoIRUgDikDICEWDAELQgAhFQsgACAWNwMAIAAgFTcDCCAOQTBqJAALwwYCBH8DfiMAQYABayIFJAACQAJAAkAgAyAEQgBCABCtA0UNAAJ/IARC////////P4MhCgJ/IARCMIinQf//AXEiB0H//wFHBEBBBCAHDQEaQQJBAyADIAqEUBsMAgsgAyAKhFALC0UNACACQjCIpyIIQf//AXEiBkH//wFHDQELIAVBEGogASACIAMgBBBrIAUgBSkDECICIAUpAxgiASACIAEQ/QsgBSkDCCECIAUpAwAhBAwBCyABIAJC////////////AIMiCiADIARC////////////AIMiCRCtA0EATARAIAEgCiADIAkQrQMEQCABIQQMAgsgBUHwAGogASACQgBCABBrIAUpA3ghAiAFKQNwIQQMAQsgBEIwiKdB//8BcSEHIAYEfiABBSAFQeAAaiABIApCAEKAgICAgIDAu8AAEGsgBSkDaCIKQjCIp0H4AGshBiAFKQNgCyEEIAdFBEAgBUHQAGogAyAJQgBCgICAgICAwLvAABBrIAUpA1giCUIwiKdB+ABrIQcgBSkDUCEDCyAJQv///////z+DQoCAgICAgMAAhCELIApC////////P4NCgICAgICAwACEIQogBiAHSgRAA0ACfiAKIAt9IAMgBFatfSIJQgBZBEAgCSAEIAN9IgSEUARAIAVBIGogASACQgBCABBrIAUpAyghAiAFKQMgIQQMBQsgCUIBhiAEQj+IhAwBCyAKQgGGIARCP4iECyEKIARCAYYhBCAGQQFrIgYgB0oNAAsgByEGCwJAIAogC30gAyAEVq19IglCAFMEQCAKIQkMAQsgCSAEIAN9IgSEQgBSDQAgBUEwaiABIAJCAEIAEGsgBSkDOCECIAUpAzAhBAwBCyAJQv///////z9YBEADQCAEQj+IIAZBAWshBiAEQgGGIQQgCUIBhoQiCUKAgICAgIDAAFQNAAsLIAhBgIACcSEHIAZBAEwEQCAFQUBrIAQgCUL///////8/gyAGQfgAaiAHcq1CMIaEQgBCgICAgICAwMM/EGsgBSkDSCECIAUpA0AhBAwBCyAJQv///////z+DIAYgB3KtQjCGhCECCyAAIAQ3AwAgACACNwMIIAVBgAFqJAALvwIBAX8jAEHQAGsiBCQAAkAgA0GAgAFOBEAgBEEgaiABIAJCAEKAgICAgICA//8AEGsgBCkDKCECIAQpAyAhASADQf//AUkEQCADQf//AGshAwwCCyAEQRBqIAEgAkIAQoCAgICAgID//wAQa0H9/wIgAyADQf3/Ak8bQf7/AWshAyAEKQMYIQIgBCkDECEBDAELIANBgYB/Sg0AIARBQGsgASACQgBCgICAgICAgDkQayAEKQNIIQIgBCkDQCEBIANB9IB+SwRAIANBjf8AaiEDDAELIARBMGogASACQgBCgICAgICAgDkQa0HogX0gAyADQeiBfU0bQZr+AWohAyAEKQM4IQIgBCkDMCEBCyAEIAEgAkIAIANB//8Aaq1CMIYQayAAIAQpAwg3AwggACAEKQMANwMAIARB0ABqJAALPAAgACABNwMAIAAgAkL///////8/gyACQoCAgICAgMD//wCDQjCIpyADQjCIp0GAgAJxcq1CMIaENwMICxcBAX8gAEEAIAEQ/QIiAiAAayABIAIbCywAIAAgARDVByIBRQRADwsCQCADBEAgACABIAIQsgQMAQsgACABIAIQiwwLC6UBAQV/QdiSCygCACIDBEBB1JILKAIAIQUDQCAAIAUgAkECdGoiBCgCACIGRgRAIAQgATYCACAAEBgPCyAGIAFFckUEQCAEIAE2AgBBACEBCyACQQFqIgIgA0cNAAsLAkAgAUUNAEHUkgsoAgAgA0ECdEEEahA6IgBFDQBB1JILIAA2AgBB2JILQdiSCygCACICQQFqNgIAIAAgAkECdGogATYCAAsLCgAgAGhBACAAGwuYAQEFfyMAQYACayIFJAACQCACQQJIDQAgASACQQJ0aiIHIAU2AgAgAEUNAANAIAcoAgAgASgCAEGAAiAAIABBgAJPGyIEEB8aQQAhAwNAIAEgA0ECdGoiBigCACABIANBAWoiA0ECdGooAgAgBBAfGiAGIAYoAgAgBGo2AgAgAiADRw0ACyAAIARrIgANAAsLIAVBgAJqJAALKQEBfyAAKAIAQQFrEJQMIgEEfyABBSAAKAIEEJQMIgBBIHJBACAAGwsLWwEBfyMAQRBrIgMkACADAn4gAUHAAHFFBEBCACABQYCAhAJx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AgwBCwALAAUgCyACQQJ0aiAKIAJBBHRqNgIAIAJBAWohAgwBCwALAAUgCiACQQR0aiILIAI2AgwgBygCCCENIANCADcDaCADQgA3A2AgAyAIIAJBBXRqIgUpAwg3AzggA0FAayAFKQMQNwMAIAMgBSkDGDcDSCAFKQMAIRogA0IANwMoIAMgGjcDMCADQgA3AyAgA0EwaiALIAkgDSADQSBqQeaKBRCkDiACQQFqIQIMAQsACwALIAYgCCAHEKIOIQULIANB8ABqJAAgBSEKIAQoArgCEBhBuPwIKAIAIQdE////////7/8hEET////////vfyERRP///////+9/IRJE////////7/8hFkEAIQIDQCACIAZHBEAgCCACQQV0aiIFKwMAIRcgCiACQQR0aiILKwMAIRMgBSsDCCEVIAUrAxAhFCAAKAIQKAK0ASENIAwgAkECdGooAgAiCSgCECEDIBYgCysDCCIYIAUrAxigIg8QIiEWIBAgEyAUoCIUECIhECASIBggFaAiFRAqIRIgESATIBegIhMQKiERAkAgAiANSARAIAMgDzkDKCADIBQ5AyAgAyAVOQMYIAMgEzkDEEGM4QotAABBAkkNASABELMCIAkQICEDIAQgDzkD0AEgBCAUOQPIASAEIBU5A8ABIAQgEzkDuAEgBCADNgKwASAHQdy0BCAEQbABahAyDAELIAMgFSAPoEQAAAAAAADgP6I5AxggAyATIBSgRAAAAAAAAOA/ojkDEEGM4QotAABBAkkNACABELMCIAkQICEDIAkoAhAiBSsDECEPIAQgBSsDGDkD8AEgBCAPOQPoASAEIAM2AuABIAdB7rQEIARB4AFqEDILIAJBAWohAgwBCwsCQCAAKAIQIgIoAgwiA0UNACADKwMYIg8gBkUEQCADKwMgIRZEAAAAAAAAAAAhEUQAAAAAAAAAACESIA8hEAsgECARoaEiD0QAAAAAAAAAAGRFDQAgECAPRAAAAAAAAOA/oiIPoCEQIBEgD6EhEQsgECAEKAKoArhEAAAAAAAA4D+iRAAAAAAAAAAAIAFBAEobIg+gIRQgESAPoSEQIBYgAisDWCAPoKAhESASIAIrAzggD6ChIQ9BjOEKLQAAQQJPBEAgARCzAiAAECAhAiAEIBE5A6ABIAQgFDkDmAEgBCAPOQOQASAEIBA5A4gBIAQgAjYCgAEgB0HctAQgBEGAAWoQMgsgBEFAayEJQQAhAwNAIAMgBkcEQCAMIANBAnRqKAIAIgUoAhAhAgJAIAAoAhAoArQBIANKBEAgAiACKwMoIA+hIhI5AyggAiACKwMgIBChIhY5AyAgAiACKwMYIA+hIhU5AxggAiACKwMQIBChIhM5AxBBjOEKLQAAQQJJDQEgARCzAiAFECAhAiAEIBI5A1AgBCAWOQNIIAkgFTkDACAEIBM5AzggBCACNgIwIAdB3LQEIARBMGoQMgwBCyACIAIrABggD6E5AxggAiACKwAQIBChOQMQQYzhCi0AAEECSQ0AIAEQswIgBRAgIQIgBSgCECIFKwMQIRIgBCAFKwMYOQNwIAQgEjkDaCAEIAI2AmAgB0HutAQgBEHgAGoQMgsgA0EBaiEDDAELCyAAKAIQIgYgESAPoSIROQMoIAYgFCAQoSISOQMgIAYgDyAPoSIPOQMYIAYgECAQoSIQOQMQQYzhCi0AAEECTwRAIAEQswIgABAgIQAgBCAROQMgIAQgEjkDGCAEIA85AxAgBCAQOQMIIAQgADYCACAHQdy0BCAEEDILIAgQGCAMEBggChAYCyAEQcACaiQADwtB0p0DQdvBAUGRAUG/GRAAAAvtAgEDfyMAQSBrIgIkACACQgA3AxggAkIANwMQIAEiA0UEQCACQRBqIgNBABBVCyAAEHohBANAIAQEQCAEIAQQxwEEfyAEQawrQZgCQQEQNRogBBCBBSADIAQQVUEABSADCxCtDCAEEHkhBAwBCwsCQAJAAkACQCABDQAgAigCGCIBQQFrIgNBAEgNASAAKAIQIAM2ArQBIAFBAk8EQCACQRBqEKoMIAIoAhwiAyACKAIYIgFLBEAgA0H/////A08NBCACKAIQIQMCQCABRQRAIAMQGEEAIQQMAQsgAyABQQJ0IgEQOiIERQ0GCyACIAQ2AhAgAiACKAIYNgIcCyACQRBqEKoMIAAoAhAgAigCEDYCuAEMAQsgAkIANwIUIAIoAhAQGAsgAkEgaiQADwtBg9MBQdvBAUHGAkGELxAAAAtB38kDQZiFAUHNAEHvugEQAAALIAIgATYCAEG4/AgoAgBB0/MDIAIQHhoQKAALFQAgAEHLuwFBGUHLwQFBsagDEJMFC+cCAQN/IwBBIGsiAiQAIAJCADcDGCACQgA3AxAgASIDRQRAIAJBEGoiA0EAEFULIAAQeiEEA0AgBARAIAQgBBDHAQR/IARBrCtBmAJBARA1GiADIAQQVUEABSADCxCvDCAEEHkhBAwBCwsCQAJAAkACQCABDQAgAigCGCIBQQFrIgNBAEgNASAAKAIQIAM2ArQBIAFBAk8EQCACQRBqEK4MIAIoAhwiAyACKAIYIgFLBEAgA0H/////A08NBCACKAIQIQMCQCABRQRAIAMQGEEAIQQMAQsgAyABQQJ0IgEQOiIERQ0GCyACIAQ2AhAgAiACKAIYNgIcCyACQRBqEK4MIAAoAhAgAigCEDYCuAEMAQsgAkIANwIUIAIoAhAQGAsgAkEgaiQADwtBg9MBQcvBAUE8QYQvEAAAC0HfyQNBmIUBQc0AQe+6ARAAAAsgAiABNgIAQbj8CCgCAEHT8wMgAhAeGhAoAAs+AQF8RAAAAAAAQI9AIAAgAUQAAAAAAADwP0QAAAAAAAAAABBLIgJEAAAAAABAj0CiIAJEAAAAAAAAAABhGwsKAEEBQcgAEOEECzcBBH8gACgCQCEDIAAoAjAhAQNAIAIgA0YEQCAAEBgFIAEoAjQgARCyDCACQQFqIQIhAQwBCwsLzAMCA38EfCMAQfAAayICJAACQCAAKAI8RQRAIABBMGohAQNAIAEoAgAiAQRAIAEQswwgAUE0aiEBDAELCyAAKwMQIQQgACsDICEFIAAoAjgoAhAiASAAKwMYIAArAygiBkQAAAAAAADgP6KhIgc5AxggASAEIAVEAAAAAAAA4D+ioSIEOQMQIAEgBiAHoDkDKCABIAUgBKA5AyAMAQsgACsDECEFIAArAxghBCAAKwMgIQYgACgCOCIBKAIQIgMgACsDKEQAAAAAAABSQKM5AyggAyAGRAAAAAAAAFJAozkDICADIAQ5AxggAyAFOQMQIAEgARAvKAIQKAJ0QQFxEKEEAkBBlOIKKAIAIgBFDQAgASAAEEEtAAANACACIAEoAhArA1BEZmZmZmZm5j+iOQMwIAJBQGsiAEEoQdSNASACQTBqEKEBGiABQZTiCigCACAAEHILIAEQigVBjOEKLQAARQ0AIAEQICEDIAEoAhAiACsDECEFIAArA2AhBCAAKwNYIQYgACsDGCEHIAIgACsDUDkDGCACIAc5AxAgAiAGIASgOQMgIAIgBTkDCCACIAM2AgBBuPwIKAIAQai0BCACEDILIAJB8ABqJAALswYCCn8FfCMAQdABayIBJAACQCAAKAJAIgRFDQAgBEEEEOEEIQUgAEEwaiIHIQMDQCACIARGBEAgBSAEQQRB6AMQlQFBACECIARBCBDhBCEDA0AgAiAERgRAAn8gACsDCCIMIAArAwBhBEAgASAAKQMoNwOIASABIAApAyA3A4ABIAEgACkDGDcDeCABIAApAxA3A3AgBCADIAFB8ABqELYMDAELIAArAyAhCyAAKwMoIQ0gASAAKwMQOQOwASABIAArAxg5A7gBIAEgCyANIAugIA0gC6EiCyALoiAMRAAAAAAAABBAoqCfoUQAAAAAAADgP6IiC6E5A8ABIAEgDSALoTkDyAEgASABKQO4ATcDmAEgASABKQPAATcDoAEgASABKQPIATcDqAEgASABKQOwATcDkAEgBCADIAFBkAFqELYMCyEIQbj8CCgCACEJQYzhCi0AAARAIAArAxAhCyAAKwMYIQ0gACsDICEMIAEgACsDKDkDaCABIAw5A2AgASANOQNYIAEgCzkDUCAJQcu0BCABQdAAahAyCyABQUBrIQpBACECA0AgAiAERgRAIAUQGCADEBggCBAYQQAhAgNAIAIgBEYNByAHKAIAIgAoAjxFBEAgABC0DAsgAkEBaiECIABBNGohBwwACwALIAUgAkECdGooAgAiBiAIIAJBBXRqIgApAwA3AxAgBiAAKQMYNwMoIAYgACkDEDcDICAGIAApAwg3AxhBjOEKLQAABEAgAyACQQN0aisDACEPIAArAwAhCyAAKwMIIQ0gACsDECEMIAEgACsDGCIOOQNIIAogDDkDACABIA05AzggASALOQMwIAEgDCAOojkDKCABIA0gDkQAAAAAAADgP6IiDqA5AyAgASALIAxEAAAAAAAA4D+iIgygOQMYIAEgDSAOoTkDECABIAsgDKE5AwggASAPOQMAIAlB0/wEIAEQMgsgAkEBaiECDAALAAUgAyACQQN0aiAFIAJBAnRqKAIAKwMAOQMAIAJBAWohAgwBCwALAAUgBSACQQJ0aiADKAIAIgM2AgAgAkEBaiECIANBNGohAwwBCwALAAsgAUHQAWokAAvYAgIGfwJ8ELEMIgYgADYCOCAGQQA2AjxBASEEA0AgACgCECIFKAK0ASAETgRAIAUoArgBIARB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8ABqEB4aCyAAEBshAgNAIAIEQCACKAIQQQA2ArgBIAAgAhAcIQIMAQsLQYzhCi0AAEECTwRAIAEoAhAhAiAIIAAQIDYCZCAIIAI2AmBBuPwIKAIAQeuCBCAIQeAAahAeGgsgASABKAIQQQFqNgIQIAhB1PYJKAIANgJcQd+vASAIQdwAakEAEOQBIgpBrCtBmAJBARA1GkE4EFQhAiAKKAIQIAI2AowBIAAQNyECIAooAhAgAigCEC8BsAE7AbABIAAgCkHI4gAQ1wcgACAKQYbhABDXByAAIApBn94BENcHIAhBmAFqIQcgCEGQAWohBiAIQYgBaiEJQQEhDANAIAAoAhAiAigCtAEgDE4EQCACKAK4ASAMQQJ0aigCACIDEIEFIAogAxAgENYHIgQoAhAiAiALNgKIASACIAM2AugBAkACQCABKAIEIgVFBEBE////////738hG0T////////v/yEaDAELRP///////+9/IRtE////////7/8hGiADIAUQQSICLQAARQ0AIAEoAgAgA0cEQCACIAMoAkQgBRBBEElFDQELIAhBADoArAEgCCAJNgJEIAggBjYCSCAIIAc2AkwgCCAIQawBajYCUCAIIAhBgAFqNgJAIAJBhMgBIAhBQGsQT0EETgRAIAgrA5gBIRogCCsDkAEhHiAIKwOIASEbIAgrA4ABIRxBoOEKKwMAIh1EAAAAAAAAAABkBEAgHiAdoyEeIBsgHaMhGyAcIB2jIRwgGiAdoyEaCyAEKAIQQQNBAkEBIAgtAKwBIgJBP0YbIAJBIUYbOgCHAQwCCyADECAhBSAIIAI2AjQgCCAFNgIwQeX0AyAIQTBqECsLRP///////+//IR5E////////738hHAsgC0EBaiELIAMQGyECA0AgAgRAIAIoAhAgBDYCuAEgAyACEBwhAgwBCwsgBCgCECICLQCHAQRAIAIoApQBIgIgGiAboEQAAAAAAADgP6I5AwggAiAeIBygRAAAAAAAAOA/ojkDAAsgDEEBaiEMDAELCyAAEBshAgJ/AkADQCACBEACQCACKAIQIgMoArgBDQACQCADKALoASIERQ0AIAQgACgCECgCjAEoAjBGDQAgAhAgIQEgABAgIQAgCCACKAIQKALoARAgNgIoIAggADYCJCAIIAE2AiBB6YQFIAhBIGoQNgwECyADIAA2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AgAgACABQZSFCygCAEECdGo2AgQLQQAhAQNAQZSFCygCACICIAFNBEAgACgCACACQQRB1wMQlQEgACAAKAIANgJIBSAAKAIAIAFBAnRqQciFCygCACABQeAAbGoiAkEIajYCACACQQE2AhwgAkIANwNYIAFBAWohAQwBCwsLNwECfyMAQSBrIgMkACAAEDhBAk4EQCAAIAEgA0EIaiIBEJkNIAAgARD1AyECCyADQSBqJAAgAgvmAgIGfwR8IAAQlQ0gACgCBCEFIAAoAgAhAANAAkAgBSAAIgFLBEAgAEEEaiIAIAVPDQIgASgCACIDKwMAIgcgASgCBCICKwMAYg0CIAMrAwgiCCACKwMIYg0CIAFBCGohA0ECIQICQANAIAMgBU8NASADKAIAIgQrAwghCSAEKwMAIgogB2IgCCAJYnJFBEAgA0EEaiEDIAJBAWohAgwBCwsgCCAJYg0AIAogB6EgArijIQdBASEBA0AgACADTw0DIAAoAgAiAiABuCAHoiACKwMAoDkDACAAQQRqIQAgAUEBaiEBDAALAAtByIULKAIAIQIDQCAAIANPDQIgACgCACIEIAEoAgAiBisDACACIAYoAhBB4ABsaiIGKwM4IAYrAyihIAIgBCgCEEHgAGxqIgQrAzggBCsDKKGgRAAAAAAAAOA/oqA5AwAgAEEEaiEAIAFBBGohAQwACwALDwsgAyEADAALAAuPAQEBfwNAQZSFCygCACAATQRAQcyFC0EANgIAQdCFCygCABAYQdSFCygCABAYQdiFCygCABAYQdSFC0EANgIAQdCFC0EANgIAQdiFC0EANgIAQciFCygCACIABH8gACgCWBAYQciFCygCAAVBAAsQGAVByIULKAIAIABB4ABsaigCTBAYIABBAWohAAwBCwsLvQMCB38BfiMAQTBrIgUkAEHnnQEhCAJAAkAgAUUNACABLQAARQ0AQZzQCCEEA0ACQAJAIAQoAgQiA0UEQEHc0QghBAwBCyABIAMQLkUgBCgCACIGQRJGBH8gASADIAMQPBCBAgVBAQtFckUNASAEKAIIIgdFBEAgBSADNgIgQcXDBCAFQSBqECsgAkHP/AA2AgQgAkEBNgIAQZzQCCEEDAELIAIgBzYCBCACIAY2AgAgBkESRw0AIAQoAgQQPCABaiMAQRBrIgMkACADIANBDGo2AgBB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QYiFC0GIhQsoAgBBAWoiAjYCACAAIAI2AiwgABCXCANAAkAgABCVCCICRQ0AIAIQuAJEAAAAAAAAAABjRQ0AIABBMGoQywQgAigCACIBKAIgIgMoAjAgAygCNEYEQCADEJcIIAIoAgAhAQsgAisDCCEHIAErAxghCCACKAIEKwMYIQkgACgCACEBIAAoAgQhBCADKAIAIQUgAygCBCEGQYiFC0GIhQsoAgBBAWo2AgAgACADIAQgAWsgBiAFa0kiBBshASADIAAgBBsiACABIAIgCSAIoSAHoSIHmiAHIAQbEPEFIAAQlQgaIAEQlQgaIABBMGogAUEwahDxDSAAQYiFCygCADYCLCABQQE6ACgMAQsLC+wBAQN/IwBBEGsiAyQAIAMgATYCDCABQQE6ACQgASgCOCEEIAEoAjQhAQNAIAEgBEcEQCABKAIAKAIEIgUtACRFBEAgACAFIAIQ6g0LIAFBBGohAQwBCwsjAEEQayIAJAAgAEEBNgIIIABBDBCLATYCDCAAKAIMIgFBADYCBCABQQA2AgAgASADKAIMNgIIIAAoAgwhASAAQQA2AgwgACgCDCIEBEAgACgCCBogBBAYCyAAQRBqJAAgASACNgIAIAEgAigCBCIANgIEIAAgATYCACACIAE2AgQgAiACKAIIQQFqNgIIIANBEGokAAsZACAAQTxqEIICGiAAQTBqEIICGiAAEIICCxoAIABBgICAgARPBEAQgwgACyAAQQJ0EIsBC5EBAQN/IAEoAgQhAiAAKAIAIQQgACgCBCEDA0AgAyAERkUEQCACQQRrIgIgA0EEayIDKAIANgIADAELCyABIAI2AgQgACgCACEDIAAgAjYCACABIAM2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIAC34BAn8CQCADQQJIDQAgACADQQJrQQF2IgNBAnRqIgQoAgAgAUEEayIBKAIAIAIoAgARAABFDQAgASgCACEFA0ACQCABIAQiASgCADYCACADRQ0AIAAgA0EBa0EBdiIDQQJ0aiIEKAIAIAUgAigCABEAAA0BCwsgASAFNgIACwtEAQF/IwBBEGsiASQAIAFBADYCDCAAIAAoAgAoAgBBABDwBSAAIAAoAgAoAgBBACABQQxqEJEIGiABKAIMIAFBEGokAAtOAQJ/IwBB0ABrIgIkACAAKAJAIgNBABCNBUG49glHBEAgA0G49gkQjQUaCyACIAE3AwggACgCQCIAIAJBBCAAKAIAEQQAIAJB0ABqJAALyQQBCX8gACICKAIEIQYgASgCACIAIQMgASgCBCEBIwBBIGsiCSQAAkAgASAAa0ECdSIFQQBMDQAgAigCCCACKAIEIgBrQQJ1IAVOBEACQCAAIAZrIgRBAnUiCCAFTgRAIAMgBUECdGohBwwBCyABIAMgBGoiB2shBCABIAdHBEAgACAHIAQQUxoLIAIgACAEajYCBCAIQQBMDQILIAAhBCAGIAIoAgQiASAGIAVBAnRqIgprIghqIQUgASEAA0AgBCAFTQRAIAIgADYCBCABIApHBEAgASAIayAGIAgQUxoLBSAAIAUoAgA2AgAgAEEEaiEAIAVBBGohBQwBCwsgAyAHRg0BIAYgAyAHIANrEFMaDAELIAlBDGogAiAAIAIoAgBrQQJ1IAVqEO4FIAYgAigCAGtBAnUgAkEIahCOCCIBKAIIIgAgBUECdGohBANAIAAgBEcEQCAAIAMoAgA2AgAgA0EEaiEDIABBBGohAAwBCwsgASAENgIIIAIoAgAhBCAGIQAgASgCBCEDA0AgACAERwRAIANBBGsiAyAAQQRrIgAoAgA2AgAMAQsLIAEgAzYCBCACKAIEIgUgBmshACABKAIIIQQgBSAGRwRAIAQgBiAAEFMaIAEoAgQhAwsgASAAIARqNgIIIAIoAgAhACACIAM2AgAgASAANgIEIAIoAgQhACACIAEoAgg2AgQgASAANgIIIAIoAgghACACIAEoAgw2AgggASAANgIMIAEgASgCBDYCACABEI0ICyAJQSBqJAAgAhDzDQtjAgJ/AXwgAigCBCIDKwMYIAIoAgAiBCsDGKEgAisDCKEhBSADKAIgIQMgBCgCICEEIAAoAgQgACgCAGsgASgCBCABKAIAa0kEQCADIAQgAiAFEPEFDwsgBCADIAIgBZoQ8QUL4gIBCX8gACgCACEFIAAoAgQhACMAQRBrIgMkACADQb8DNgIMAkAgACAFa0ECdSIGQQJIDQAgBkECa0EBdiEIA0AgCEEASA0BIAUgCEECdGohBAJAIAZBAkgNACAGQQJrQQF2IgkgBCAFayIAQQJ1SA0AIAUgAEEBdSIBQQFyIgJBAnRqIQAgBiABQQJqIgFKBEAgASACIAAoAgAgACgCBCADKAIMEQAAIgEbIQIgAEEEaiAAIAEbIQALIAAoAgAgBCgCACADKAIMEQAADQAgBCgCACEBA0ACQCAEIAAiBCgCADYCACACIAlKDQAgBSACQQF0IgdBAXIiAkECdGohACAGIAdBAmoiB0oEQCAHIAIgACgCACAAKAIEIAMoAgwRAAAiBxshAiAAQQRqIAAgBxshAAsgACgCACABIAMoAgwRAABFDQELCyAEIAE2AgALIAhBAWshCAwACwALIANBEGokAAtGAgF8An8gACgCBCEDIAAoAgAhAAN8IAAgA0YEfCABBSAAKAIAIgIrAwggAisDGKEgAisDEKIgAaAhASAAQQRqIQAMAQsLC2wCAX8CfCMAQRBrIgIkACACIAE2AgwgASAANgIgIAAgAkEMahDBASAAIAIoAgwiASsDECIDIAArAxigIgQ5AxggACADIAErAwggASsDGKGiIAArAyCgIgM5AyAgACADIASjOQMQIAJBEGokAAsnACAAIAAoAhhFIAAoAhAgAXJyIgE2AhAgACgCFCABcQRAEJMBAAsLMAEDfyAAKAIEIgQgAUEEaiICayEDIAIgBEcEQCABIAIgAxBTGgsgACABIANqNgIEC34BA38gACgCACIBQTRqIAEoAjghAyABKAI0IQEDQAJAIAEgA0YNACABKAIAIABGDQAgAUEEaiEBDAELCyABEPcNIAAoAgQiAUEoaiABKAIsIQMgASgCKCEBA0ACQCABIANGDQAgASgCACAARg0AIAFBBGohAQwBCwsgARD3DQvqAQEIfyAAQay1AxDTAiECIAEoAgAhBiMAQRBrIgMkACADQQhqIgQgAhC2BRoCQCAELQAARQ0AIAIgAigCAEEMaygCAGoiBSgCBBogA0EEaiIEIAUQUSAEEPMLIQUgBBBOIAMgAhDyCyEHIAIgAigCAEEMaygCAGoiCBDxCyEJIAMgBSAHKAIAIAggCSAGIAUoAgAoAhARCAA2AgQgBBC0BUUNACACIAIoAgBBDGsoAgBqQQUQtwULIANBCGoQtQUgA0EQaiQAIAJBv+YBENMCIAEoAiArAxAgASsDGKAQrQdB5rQDENMCGiAACw4AIABBpwVBqMEBENAKCzgBAX8gABAbIQEDQCABBEAgASgC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BEAgBSAAKAIQIgAoAugBQcgAbGoiASABKwMYIgkgByAHIAljGzkDGCAFIAAoAuwBQcgAbGoiACAAKwMQIgcgCCAHIAhkGzkDEAsgAwtwAQJ/QQEhBANAIAQgACgCECIDKAK0AUpFBEAgAygCuAEgBEECdGooAgAgASACELQOIARBAWohBAwBCwsgAyABIAMrAxCiOQMQIAMgAiADKwMYojkDGCADIAEgAysDIKI5AyAgAyACIAMrAyiiOQMoC+UEAgh/BHxBASECA0AgAiAAKAIQIgMoArQBSkUEQCADKAK4ASACQQJ0aigCACABELUOIAJBAWohAgwBCwsgABBjIQIgACgCECEDAkAgACACRgRAIAMoAuwBIQVEAADA////38EhCkQAAMD////fQSELIAMoAugBIgghBANAIAQgBUoEQCADKAK0ASIAQQAgAEEAShtBAWohAEEBIQIDQCAAIAJGDQQgCiADKAK4ASACQQJ0aigCACgCECIEKwMgRAAAAAAAACBAoCIMIAogDGQbIQogCyAEKwMQRAAAAAAAACDAoCIMIAsgDGMbIQsgAkEBaiECDAALAAUCQCADKALEASAEQcgAbGoiACgCACIGRQ0AQQEhAiAAKAIEIgcoAgAiAEUNAANAIAAoAhAiAC0ArAEiCUUgAiAGTnJFBEAgByACQQJ0aigCACEAIAJBAWohAgwBCwsgCQ0AIAZBAmshAiAAKwMQIAArA1ihIQwgByAGQQJ0akEEayEAA0AgACgCACgCECIALQCsAQRAIAcgAkECdGohACACQQFrIQIMAQsLIAogACsDECAAKwNgoCINIAogDWQbIQogCyAMIAsgDGMbIQsLIARBAWohBAwBCwALAAsgAygC6AEhCCADKALsASEFIAMoAoQCKAIQKAL0AbchCiADKAKAAigCECgC9AG3IQsLIAEoAhAoAsQBIgAgBUHIAGxqKAIEKAIAKAIQKwMYIQwgACAIQcgAbGooAgQoAgAoAhArAxghDSADIAo5AyAgAyALOQMQIAMgDSADKwOAAaA5AyggAyAMIAMrA3ihOQMYC6IBAgJ8AX8CQAJ/Qf////8HIABBqiEQJiIDRQ0AGiAAEDghACADELECIQEgAEEASA0BQQAgAUQAAAAAAAAAAGMNABogALghAiABRAAAAAAAAPA/ZARAQf////8HRAAAwP///99BIAGjIAJjDQEaCyABIAKiIgGZRAAAAAAAAOBBYwRAIAGqDwtBgICAgHgLDwtB3Z0DQZWEAUHKAEG83wAQAAALiAICB38BfCMAQRBrIgQkACAAQfzhCigCAEEIQQAQZCAAEP8FtyEIIAAoAhAiASgC6AEhAyABKAKEAiEFIAEoAoACIQYDQCADIAEoAuwBSkUEQAJAIANByABsIgcgASgCxAFqIgIoAgBFDQAgAigCBCgCACICRQRAIAAQICEBIAQgAzYCBCAEIAE2AgBB1L0EIAQQNgwBCyAGIAIgAigCECsDWCAIoCABKwNgoEEAEKQBGiAAKAIQIgEoAsQBIAdqIgIoAgQgAigCAEECdGpBBGsoAgAiAiAFIAIoAhArA2AgCKAgASsDQKBBABCkARoLIANBAWohAyAAKAIQIQEMAQsLIARBEGokAAvbAgIKfwF8IABB/OEKKAIAQQhBABBkIQdBASEBA0AgACgCECIFKAK0ASIEIAFIBEAgB7chC0EBIQEDQCABIARKRQRAIAFBAnQhCSABQQFqIgchAQNAIAUoArgBIgIgCWooAgAhAyABIARKRQRAIAIgAUECdGooAgAiBiADIAMoAhAoAugBIAYoAhAoAugBSiICGyIIKAIQIgooAuwBIAMgBiACGyIDKAIQIgYoAugBIgJOBEAgCCADIAJByABsIgIgCigCxAFqKAIEKAIAKAIQKAL4ASAGKALEASACaigCBCgCACgCECgC+AFIIgIbKAIQKAKEAiADIAggAhsoAhAoAoACIAtBABCkARogACgCECIFKAK0ASEECyABQQFqIQEMAQsLIAMQuA4gACgCECIFKAK0ASEEIAchAQwBCwsFIAUoArgBIAFBAnRqKAIAEP8FIAFBAWohAQwBCwsLnAECA38BfCAAQfzhCigCAEEIQQAQZCAAEP8FtyEEQQEhAQNAIAEgACgCECICKAK0AUpFBEAgAigCuAEgAUECdGooAgAiAhD/BSAAKAIQIgMoAoACIAIoAhAoAoACIAMrA2AgBKBBABCkARogAigCECgChAIgACgCECIDKAKEAiADKwNAIASgQQAQpAEaIAIQuQ4gAUEBaiEBDAELCwulAwIHfwF8IABB/OEKKAIAQQhBABBktyEIIAAoAhAiASgC6AEhBEEBIQUDQCABKALsASAESARAA0AC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4EFjBEAgEaoMAQtBgICAgHgLIghBACAIQQBKIgcbIglBAWq4IAUoApwBEKQBGiADIAEgAUEwayIFIAEoAgBBA3FBAkYbKAIoQQBBACAIayAHGyIIQQFquCABKAIQKAKcARCkARogAygCECABIAYgASgCAEEDcSIDQQNGGygCKCgCECgC9AEgCUF/c2oiBiABIAUgA0ECRhsoAigoAhAoAvQBIAhBf3NqIgEgASAGShs2AvQBIAJBAWohAiAEKAIQIgUoApACIQEMAAsACyAFQbgBaiEBDAELCwJAIAAoAhAiASgCtAFBAEoEfyAAELsOIAAQug4gABC5DiAAELgOIAAoAhAFIAELKAIIIgEoAlRBA0cNACABKwNAIhEgASsDSCISokQAAAAAAADwP2UNACAAELcOIAAoAhAiASgCgAIgASgChAIgEiARIAEoAnRBAXEbIhFEAAAAAOD/70AgEUQAAAAA4P/vQGMbQegHEKQBGgsCQCAAQQIgABC2DhDWBEUNACAAKAIQIgIoAugBIQUDQAJAAkAgAigC7AEiCyAFTgRAQQAhByACKALEASAFQcgAbGoiCCgCACIJQQAgCUEAShshA0EAIQEDQCABIANGDQNBACEEAkAgCCgCBCABQQJ0aigCACIHKAIQIgooApACIgxFDQADQCAMIARBAnRqKAIAIgZFDQEgBkFQQQAgBigCAEEDcSINQQJHG2ooAigoAhAoAvQBIAVKDQQgBEEBaiEEIAZBMEEAIA1BA0cbaigCKCgCECgC9AEgBUwNAAsMAwtBACEEAkAgCigCiAIiCkUNAANAIAogBEECdGooAgAiBkUNASAGQTBBACAGKAIAQQNxIgxBA0cbaigCKCgCECgC9AEgBUoNBCAEQQFqIQQgBSAGQVBBACAMQQJHG2ooAigoAhAoAvQBTg0ACwwDCyABQQFqIQEMAAsACyAAQQIgABC2DhDWBEUNA0GWoANBhMQBQYsBQZ/oABAAAAsgASEDCwJAIAdFIAMgCUhyRQRAIAhBzABBvH8gBSALSBtqKAIAKAIAIgJFDQEgCCgCBCgCACEDIAAQuwIiASgCEEECOgCsASABIANEAAAAAAAAAABBABCkARogASACRAAAAAAAAAAAQQAQpAEaIAEoAhAgAygCECgC9AEiASACKAIQKAL0ASICIAEgAkgbNgL0ASAA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IAQgAisDADkDKCAEIAg3AyAgAEGr1gQgBEEgahAyIANBAWohAwwACwALAkAgBAJ8IAEoAhAgA0EobGoiBSgCFCICIAUoAhgiBkYEQCACKwMoIAIrAzigRAAAAAAAAOA/oiEHIAIrAzAgAisDQKBEAAAAAAAA4D+iDAELIAUgBiACIAItAABBAXEbIgIoAiQiBigCBEYEQCACKwMoIAIrAzigRAAAAAAAAOA/oiEHIAIrA0AMAQsgBSAGKAIMRgRAIAIrAyggAisDOKBEAAAAAAAA4D+iIQcgAisDMAwBCyAFIAYoAghGBEAgAisDKCEHIAIrAzAgAisDQKBEAAAAAAAA4D+iDAELIAYoAgAgBUcNASACKwM4IQcgAisDMCACKwNAoEQAAAAAAADgP6ILOQMQIAQgBzkDCCAEIAM2AgAgAEHD1gQgBBAyIANBAWohAwwBCwtBhp8EQQAQNhAoAAtB9OEDIAAQjQEaIARBMGokAAvmVAIafwp8IwBB0AJrIgckACAAELoCQQgQGSEYQbzhCi0AAEEBRgRAEM0DIRkLIABB7cgBECYhAkHggwtBADYCAAJAIAJFDQAgAi0AACIFRQ0AA0ACQEHggwsCfwJAAkACQAJAIAVB/wFxIghB7QBrDgcBBQUFBQIDAAtBCCAIQeMARg0DGiAIQekARwRAIAgNBQwHC0ESDAMLQQEMAgtBBAwBC0ECCyAGciIGNgIACyACQQFqIgItAAAhBQwACwALIAEEQEGL6QRBABArCwJ/IwBB4AJrIgMkAEEBQRwQGSEOAkAgACIIEDhBAE4EQCAOIAAQOCIKNgIEIA4gCkHIABAZIgY2AgxE////////738hHET////////v/yEfIAAQGyEFRP///////+//IR1E////////738hHiAGIQEDQCAFBEAgBSgCECIAKwMQISIgACsDYCEhIAArA1ghIyAAKwMYISAgACsDUCEkIAEgASgCAEEBcjYCACABICAgJEQAAAAAAADgP6JEAAAAAAAA8D8QIiIkoCIlOQNAIAEgICAkoSIgOQMwIAEgIiAjICGgRAAAAAAAAOA/okQAAAAAAADwPxAiIiGgIiM5AzggASAiICGhIiI5AyggACABNgKAASABQcgAaiEBIB8gJRAiIR8gHCAgECohHCAdICMQIiEdIB4gIhAqIR4gCCAFEBwh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Amo2AgBBJQ8LIAJBFUYNDwsgAyAANgIADBELIAMgAUEBajYCAEEVDwsgAyABQQFqNgIAQREPCyACIAFBAWoiAWsiBkEATA0MQQAhBQJAAkACQAJAAkACQCAHIAEtAABqLQAAIghBBWsOAwECAwALIAhBFmsOAwMEAwQLIAZBAUYNDiAAIAEgACgC4AIRAAANAyAAIAEgACgC1AIRAABFDQNBAiEEDAILIAZBA0kNDSAAIAEgACgC5AIRAAANAiAAIAEgACgC2AIRAABFDQJBAyEEDAELIAZBBEkNDCAAIAEgACgC6AIRAAANASAAIAEgACgC3AIRAABFDQFBBCEECyABIARqIQEDQCACIAFrIgZBAEwEQEFsDwtBASEEQRQhBQJAAkACQAJAAkAgByABLQAAai0AAEEFaw4gAAECBAYGBgQEBAQEBAQEBAYDBAMDAwMEBAYEBgQEBAYECyAGQQFGDRAgACABIAAoAuACEQAADQMgACABIAAoAsgCEQAARQ0DQQIhBAwCCyAGQQNJDQ8gACABIAAoAuQCEQAADQIgACABIAAoAswCEQAARQ0CQQMhBAwBCyAGQQRJDQ4gACABIAAoAugCEQAADQEgACABIAAoAtACEQAARQ0BQQQhBAsgASAEaiEBDAELC0EAIQULIAMgATYCACAFDwsgAiABa0ECSA0JIAAgASAAKALgAhEAAA0IQQIhBCAAIAEgACgC1AIRAAANAiAAIAEgACgCyAIRAABFDQgMBQsgAiABa0EDSA0IIAAgASAAKALkAhEAAA0HQQMhBCAAIAEgACgC2AIRAAANASAAIAEgACgCzAIRAABFDQcMBAsgAiABa0EESA0HIAAgASAAKALoAhEAAA0GQQQhBCAAIAEgACgC3AIRAABFDQELDAMLIAAgASAAKALQAhEAAEUNBAwBC0ETIQUMAQtBEyEFCyABIARqIQQCQAJAAkACQANAIAIgBCIBayIEQQBMDQQCQAJAAkACQAJAAkACQCAHIAEtAABqLQAAQQVrDiABAgMKBAQECgoKCQoKCgoEBAAFAAAAAAoKBAoECAYEBAoLIAFBAWohBAwGCyAEQQFGDQwgACABIAAoAuACEQAADQggACABIAAoAsgCEQAARQ0IIAFBAmohBAwFCyAEQQNJDQsgACABIAAoAuQCEQAADQcgACABIAAoAswC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AgAgAiEIA0AgAyAIRgRAIAMhCAwGCyAILQAARQ0FIAhBAWohCAwACwALIAQgAjYCAEEBDAILIAQoAgAhAgsgAiADRwsgEUEQaiQADwsgBygCACEFDAALAAumBQEMfyMAQRBrIg8kACACIQgDQAJAIAMgCEYEQCADIQgMAQsgCCgCAEUNACAIQQRqIQgMAQsLIAcgBTYCACAEIAI2AgACQANAAkACQCACIANGIAUgBkZyBH8gAgUgDyABKQIANwMIQQEhECAAKAIIIQkjAEEQayIOJAAgDiAJNgIMIA5BCGogDkEMahCPAiAFIQkgBiAFayEKQQAhDCMAQRBrIhEkAAJAIAQoAgAiC0UgCCACa0ECdSISRXINACAKQQAgBRshCgNAIBFBDGogCSAKQQRJGyALKAIAELQHIg1Bf0YEQEF/IQwMAgsgCQR/IApBA00EQCAKIA1JDQMgCSARQQxqIA0QHxoLIAogDWshCiAJIA1qBUEACyEJIAsoAgBFBEBBACELDAILIAwgDWohDCALQQRqIQsgEkEBayISDQALCyAJBEAgBCALNgIACyARQRBqJAAQjgIgDkEQaiQAAkACQAJAAkAgDEEBag4CAAgBCyAHIAU2AgADQCACIAQoAgBGDQIgBSACKAIAIAAoAggQlAciAUF/Rg0CIAcgBygCACABaiIFNgIAIAJBBGohAgwACwALIAcgBygCACAMaiIFNgIAIAUgBkYNASADIAhGBEAgBCgCACECIAMhCAwGCyAPQQRqIgJBACAAKAIIEJQHIghBf0YNBCAGIAcoAgBrIAhJDQYDQCAIBEAgAi0AACEFIAcgBygCACIJQQFqNgIAIAkgBToAACAIQQFrIQggAkEBaiECDAELCyAEIAQoAgBBBGoiAjYCACACIQgDQCADIAhGBEAgAyEIDAULIAgoAgBFDQQgCEEEaiEIDAALAAsgBCACNgIADAMLIAQoAgALIANHIRAMAwsgBygCACEFDAELC0ECIRALIA9BEGokACAQCwkAIAAQmAsQGAszACMAQRBrIgAkACAAIAQ2AgwgACADIAJrNgIIIABBDGogAEEIahDoCygCACAAQRBqJAALNAADQCABIAJGRQRAIAQgAyABLAAAIgAgAEEASBs6AAAgBEEBaiEEIAFBAWohAQwBCwsgAQsMACACIAEgAUEASBsLKgAD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IAZHDQALCyAGQSBqJAAgAQvnAgEBfyMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIABBxAFqEFIhBiAAQRBqIgIgAxBRIAIQzgFB8LcJQYq4CSAAQdABahD3AiACEE4gAEG4AWoQUiIDIAMQVhA9IAAgA0EAED8iATYCtAEgACACNgIMIABBADYCCANAAkAgAEH8AWogAEH4AWoQXA0AIAAoArQBIAMQIyABakYEQCADECMhAiADIAMQI0EBdBA9IAMgAxBWED0gACACIANBABA/IgFqNgK0AQsgAEH8AWoiAhCFAUEQIAEgAEG0AWogAEEIakEAIAYgAEEQaiAAQQxqIABB0AFqEN4DDQAgAhCZARoMAQsLIAMgACgCtAEgAWsQPSADEEIQaCAAIAU2AgAgABDGC0EBRwRAIARBBDYCAAsgAEH8AWogAEH4AWoQXARAIAQgBCgCAEECcjYCAAsgACgC/AEgAxA0GiAGEDQaIABBgAJqJAAL0AMBAX4jAEGQAmsiACQAIAAgAjYCiAIgACABNgKMAiAAQdABaiADIABB4AFqIABB3wFqIABB3gFqEKYHIABBxAFqEFIiASABEFYQPSAAIAFBABA/IgI2AsABIAAgAEEgajYCHCAAQQA2AhggAEEBOgAXIABBxQA6ABYDQAJAIABBjAJqIABBiAJqEFwNACAAKALAASABECMgAmpGBEAgARAjIQMgASABECNBAXQQPSABIAEQVhA9IAAgAyABQQAQPyICajYCwAELIABBjAJqIgMQhQEgAEEXaiAAQRZqIAIgAEHAAWogACwA3wEgACwA3gEgAEHQAWogAEEgaiAAQRxqIABBGGogAEHgAWoQpQcNACADEJkBGgwBCwsCQCAAQdABahAjRQ0AIAAtABdBAUcNACAAKAIcIgMgAEEgamtBnwFKDQAgACADQQRqNgIcIAMgACgCGDYCAAsgACACIAAoAsABIAQQxwsgACkDACEGIAUgACkDCDcDCCAFIAY3AwAgAEHQAWogAEEgaiAAKAIcIAQQtAEgAEGMAmogAEGIAmoQXARAIAQgBCgCAEECcjYCAAsgACgCjAIgARA0GiAAQdABahA0GiAAQZACaiQAC7kDACMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIABBwAFqIAMgAEHQAWogAEHPAWogAEHOAWoQpgcgAEG0AWoQUiIBIAEQVhA9IAAgAUEAED8iAjYCsAEgACAAQRBqNgIMIABBADYCCCAAQQE6AAcgAEHFADoABgNAAkAgAEH8AWogAEH4AWoQXA0AIAAoArABIAEQIyACakYEQCABECMhAyABIAEQI0EBdBA9IAEgARBWED0gACADIAFBABA/IgJqNgKwAQsgAEH8AWoiAxCFASAAQQdqIABBBmogAiAAQbABaiAALADPASAALADOASAAQcABaiAAQRBqIABBDGogAEEIaiAAQdABahClBw0AIAMQmQEaDAELCwJAIABBwAFqECNFDQAgAC0AB0EBRw0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCsAEgBBDICzkDACAAQcABaiAAQRBqIAAoAgwgBBC0ASAAQfwBaiAAQfgBahBcBEAgBCAEKAIAQQJyNgIACyAAKAL8ASABEDQaIABBwAFqEDQaIABBgAJqJAALuQMAIwBBgAJrIgAkACAAIAI2AvgBIAAgATYC/AEgAEHAAWogAyAAQdABaiAAQc8BaiAAQc4BahCmByAAQbQBahBSIgEgARBWED0gACABQQAQPyICNgKwASAAIABBEGo2AgwgAEEANgIIIABBAToAByAAQcUAOgAGA0ACQCAAQfwBaiAAQfgBahBcDQAgACgCsAEgARAjIAJqRgRAIAEQIyEDIAEgARAjQQF0ED0gASABEFYQPSAAIAMgAUEAED8iAmo2ArABCyAAQfwBaiIDEIUBIABBB2ogAEEGaiACIABBsAFqIAAsAM8BIAAsAM4BIABBwAFqIABBEGogAEEMaiAAQQhqIABB0AFqEKUHDQAgAxCZARoMAQsLAkAgAEHAAWoQI0UNACAALQAHQQFHDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAKwASAEEMkLOAIAIABBwAFqIABBEGogACgCDCAEELQBIABB/AFqIABB+AFqEFwEQCAEIAQoAgBBAnI2AgALIAAoAvwBIAEQNBogAEHAAWoQNBogAEGAAmokAAuPAwEBfyMAQYACayIAJAAgACACNgL4ASAAIAE2AvwBIAMQqQIhBiAAQcQBaiADIABB9wFqEKsEIABBuAFqEFIiASABEFYQ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8bic1j83A4gCAkAgAygCmAJBEkcgBEECR3JFBEAgAyADKAKgAjYC5AEgAyADKwOoAjkD8AEgA0GIAWogABCBA0EBIQUgAy0AmAFBAXFFDQEgAysDiAEhCCADIAMrA5ABRAAAAAAAAFJAozkDkAIgAyAIRAAAAAAAAFJAozkDiAIMAQsgA0F/NgLkASAEQQJHIQULQYzhCi0AAARAIANBKGoiASADQbABakHYABAfGiMAQeABayICJABBweIEQRtBAUG4/AgoAgAiBBBMGiACIAErAwA5A9ABIARBjK4EIAJB0AFqEDIgAS0ALCEGIAIgASgCKDYCxAEgAiAGQQFxNgLAASAEQfzOBCACQcABahAeGiABKwMIIQggAkKas+bMmbPm5D83A7gBIAIgCDkDsAEgBEGprgQgAkGwAWoQMiACIAEoAhA2AqABIARBiMsEIAJBoAFqEB4aIAIgASgCFDYClAEgAkEtNgKQASAEQfTLBCACQZABahAeGiACIAEoAhg2AoABIAJC/NPGl93JmKg/NwN4IAJCs+bMmbPmzPE/NwNwIARBocsEIAJB8ABqEDIgASsDICEIIAIgBkEBdkEBcTYCYCACIAg5A1ggAkLNmbPmzJmz9j83A1AgBEG5zQQgAkHQAGoQMiACIAErA0g5A0ggAkEANgJEIAIgBkECdkEBcTYCQCAEQdetBCACQUBrEDIgASgCMCEGIAEoAjQhByABKwNAIQggAiABLQA4NgIwIAIgCDkDKCACIAc2AiQgAiAGQQJ0QfDRCGooAgA2AiAgBEH4zAQgAkEgahAyIAIgASgCPEECdEGQ0ghqKAIANgIQIARBrIQEIAJBEGoQHhogAiABKAJQNgIAIARBxs4EIAIQHhogAkHgAWokAAsgACADQawBahCjCCEEAkAgAygCrAFBAUYEQCADIAMpA5ACNwMQIAMgAykDiAI3AwggACADQbABaiADQQhqEM8MIAVFBEAgACADQZgCahD1AxoLIAAQsQMMAQsgAEECQQggA0GIAWoQ/QMaIANBAToAlAFBACECA0AgAygCrAEiASACTQRAIAEgBCAAIANBiAFqEP0FDAILIAQgAkECdGooAgAiAUEAELYDGiADIAMpA5ACNwMgIAMgAykDiAI3AxggASADQbABaiADQRhqEM8MIAVFBEAgASADQZgCahD1AxoL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CBDUA0GMIBCNB0G48wlBwAMQAQALIAEoAggoAiAiAy0AKA0BIAMQ6Q0MAQsLAkAgBUEEaiICKAIIRQ0AIAIoAgQiACgCACIBIAIoAgAoAgQiAzYCBCADIAE2AgAgAkEANgIIA0AgACACRg0BIAAoAgQgABAYIQAMAAsACyAFQRBqJAALugECAn8CfET////////v/yEEAnxE////////7/8gASgCACgCICICKAIsIAEoAhhKDQAaRP///////+//IAIgASgCBCgCIEYNABogARC4AgshBQJAIAAoAgAoAiAiAigCLCAAKAIYSg0AIAIgACgCBCgCIEYNACAAELgCIQQLIAQgBWEEQCABKAIAKAIAIgIgACgCACgCACIDRgRAIAEoAgQoAgAgACgCBCgCAEgPCyACIANIDwsgBCAFZAsZAQJ+IAApAwgiAiABKQMIIgNWIAIgA1RrCzMAIAAQ5Q0gACABKAIANgIAIAAgASgCBDYCBCAAIAEoAgg2AgggAUEANgIIIAFCADcCAAvKAQEHfyMAQRBrIgUkACAAQQA2AgggAEIANwIAQShBNCACGyEHIAEoAgQhCCABKAIAIQQDQCAEIAhHBEAgBCgCACAHaiIDKAIEIQkgAygCACEDA0AgAyAJRgRAIARBBGohBAwDBSAFIAMoAgAiBjYCDCAGQYiFCygCADYCGAJAAkAgAgRAIAYoAgAoAiAgAUcNAQsgAg0BIAYoAgQoAiAgAUYNAQsgACAFQQxqEMEBCyADQQRqIQMMAQsACwALCyAAEPMNIAVBEGokAAsdACAAKAIAQQR2IgAgASgCAEEEdiIBSyAAIAFJaws+AQJ8An9BfyAAKwMAIgIgASsDACIDYw0AGkEBIAIgA2QNABpBfyAAKwMIIgIgASsDCCIDYw0AGiACIANkCwscACAAKAIMIAEoAgxqIAAoAgQgASgCBGprQQJtCxwAIAAoAgggASgCCGogACgCACABKAIAamtBAm0LjAEBB38CQCAAKAIgIgMgASgCKCIESg0AIAEoAiAiBSAAKAIoIgZKDQBBASECIAAoAiwiByABKAIkIghIDQAgACgCECABKAIQayAHIAEoAixqIAAoAiQgCGprQQJtaiAGIAMgBWprIARqQQJtIAEoAgwiASAAKAIMIgBrIAAgAWsgACABShtqTCECCyACC4wBAQd/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KAIAQQR2IgEgACgCAEEEdiIASQ0CIAAgAUkhAgwCC0EBIQIMAQtBfyECCyAEQeADaiQAIAILCQAgASAAEI0BCxYAIAEgAiAAEMMHRQRAQQAPCyABEDwLJQAgACgCACgCECgC+AEiACABKAIAKAIQKAL4ASIBSiAAIAFIawsSACABQcO/ASACKAIIQQEQNRoLEgAgAUHSvwEgAigCBEEBEDUaCxIAIAFBs78BIAIoAgBBARA1GgsZAEF/IAAoAgAiACABKAIAIgFLIAAgAUkbCyUAIAAoAgAoAhAoAvQBIgAgASgCACgCECgC9AEiAUogACABSGsLJQAgASgCACgCECgC9AEiASAAKAIAKAIQKAL0ASIASiAAIAFKawtAAgJ8AX8gACsDACICIAErAwAiA2QEQCAAKwMIIAErAwhlRQ8LIAIgA2MEf0EAQX8gACsDCCABKwMIZhsFQQALC9wBAQV/IAAoAighBQNAIAUoAgQhASAFKAIAIANLBEAgASADQRhsakEIaiEBQQAhAgNAIAEoAgggAksEQCABIAIQ2wgaIAEgAhCZBhogAkEBaiECDAELCyABQgA3AgQgASgCABAYIAFCADcCCCABQgA3AgAgA0EBaiEDDAELCyABEBggBRAYIABBGGohAiAAKAIgIQECQANAIAEgBE0NASACIAQQXRogBCAAKAIgIgFJIARBAWohBA0AC0HCvANBkoMBQTVBpikQAAALIABCADcCHCAAKAIYEBggABAYCyABAnxBAUF/QQAgACsDACICIAErAwAiA2MbIAIgA2QbCw8AIAAoAhAQmwEaIAAQGAtaAgF8AX9BfyAAKwMIIAErAwihIgJESK+8mvLXej5kIAJESK+8mvLXer5jGyIDBH8gAwVBfyAAKwMAIAErAwChIgJESK+8mvLXej5kIAJESK+8mvLXer5jGwsLWgIBfAF/QX8gACsDACABKwMAoSICREivvJry13o+ZCACREivvJry13q+YxsiAwR/IAMFQX8gACsDCCABKwMIoSICREivvJry13o+ZCACREivvJry13q+YxsLCyMAIAAoAhAoAgBBBHYiACABKAIQKAIAQQR2IgFLIAAgAUlrCxQAIAAoAhBBHGogAEcEQCAAEBgLC44BAgF/BHwjAEEwayIDJAAgAyABKAIIIgQ2AiQgAyAENgIgIABB6YMF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BEGk3AQgA0HgAWoQgQEgA0GUgwsoAgA2AtABIAMgBiAHIA2goiIGOQPAASADIAogCyAMoKIiBzkDyAEgBEHD3QQgA0HAAWoQgQEgAyABNgKwASAEQZ7YAyADQbABahCBASAAIAQQnAYQGhogARAYIAIEQCADQYgBaiIBIAAoAhBBOGpBKBAfGiABQwAAAAAQwAMhASADQgA3A4ABIANCADcDeCADQgA3A3AgAEHQ5gQgA0HwAGoQHSADQoCAgICAgID4PzcDYCADIAg5A1ggAyAFOQNQIABByNwEIANB0ABqEB0gA0FAayAAKALoArK7OQMAIANCADcDOCADQgA3AzAgAEGk3AQgA0EwahAdIANBlIMLKAIANgIgIAMgBjkDECADIAc5AxggAEHD3QQgA0EQahAdIAMgATYCACAAQZ7YAyADEB0gARAYCyADQeACahBfIANB8AJqJAAL7QMCA38GfCMAQdABayIDJAAgAigCACEEIAIoAgQiBSsDECEGIAMgBSgCADYCsAEgAyAGOQOoASADIAQ2AqABIABB7YcEIANBoAFqEB1BlIMLQZCDCygCAEEJazYCAAJ8IAErAwAiBiACLQAwIgRB7ABGDQAaIARB8gBGBEAgBiACKwMgoQwBCyAGIAIrAyBEAAAAAAAA4L+ioAshBiAAKwPwAyEHIAArA4AEIQggASsDCCEJIAArA+gDIQogACsD+AMhCyADQfgAaiIBIAAoAhBBEGpBKBAfGiABQwAAAAAQwAMhASADQgA3A8gBIANCADcDwAEgAigCBCgCACEEIAIoAgAhBSADQgA3A3AgA0KAgICAgICA6D83A2ggAyAFNgJkIAMgBDYCYCADQcABaiIEQfXlAyADQeAAahCBASADIAIoAgQrAxAgACsD6AOiOQNQIARB5a4EIANB0ABqEIEBIANBQGsgACgC6AKyuzkDACADQgA3AzggA0IANwMwIARBpNwEIANBMGoQgQEgA0GUgwsoAgA2AiAgAyAKIAYgC6CiOQMQIAMgByAJIAigojkDGCAEQcPdBCADQRBqEIEBIAMgATYCACAEQZ7YAyADEIEBIAAgBBCcBhAaGiAEEF8gARAYIANB0AFqJAALHAAgAEGCuwQQGhpBkIMLQZCDCygCAEEFajYCAAscACAAQfC6BBAaGkGQgwtBkIMLKAIAQQVrNgIA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NBDoBDYCOAJAIABBrCtBAEEBEDUEQCAAKAIQKAIIDQELIAEtAJsBQQRxDQBBk7kEQQAQNgwBCyABQQA2AiQgASABKAKYAUGAgIDAAHI2ApgBIAIgABC6BhogARCPBCACEJ0ECyADQRBqJAAgAhCdBCACEBgPCyAAKAIAKAKgARDvCAsLGwAgAEH41gMQGhogACABEIwBIABBgN4EEBoaC2gBAn8gAEG1ngEQGhogAEEAQQAQ4gQgAEGszQMQGhoDQCACIANHBEAgACABIANBBHRqIgQrAwAQfSAAQSwQZyAAIAQrAwiaEH0gA0EBaiIDIAJGDQEgAEEgEGcMAQsLIABB6d0EEBoaCwurmQqVAwBBgAgL5oIF/9j/AMXQ08YAfgB7JXN9ACAtdGFncyB7JWQlcyVwfQAgJS4wZn0AJXMgeyAlcyB9AHxlZGdlbGFiZWx8ACAtZm9udCB7AHF1YXJ0egBpZHggPT0gc3oAY250ID09IHN6AGxvegBncmFwaHZpegBndndyaXRlX25vX3oAcG9ydGhveHkAc2NhbGV4eQAvc3ZnL25hdnkAaW52ZW1wdHkAbm9kZV9zZXRfaXNfZW1wdHkAbm9kZXNfaXNfZW1wdHkAcmVmZXJlbmNlIHRvIGJpbmFyeSBlbnRpdHkAYXN5bmNocm9ub3VzIGVudGl0eQBpbmNvbXBsZXRlIG1hcmt1cCBpbiBwYXJhbWV0ZXIgZW50aXR5AGVudGl0eSBkZWNsYXJlZCBpbiBwYXJhbWV0ZXIgZW50aXR5AGNhbm5vdCBzdXNwZW5kIGluIGV4dGVybmFsIHBhcmFtZXRlciBlbnRpdHkAWE1MIG9yIHRleHQgZGVjbGFyYXRpb24gbm90IGF0IHN0YXJ0IG9mIGVudGl0eQB1bmRlZmluZWQgZW50aXR5AHBhcnNlci0+bV9vcGVuSW50ZXJuYWxFbnRpdGllcyA9PSBvcGVuRW50aXR5AHBhcnNlci0+bV9vcGVuVmFsdWVFbnRpdGllcyA9PSBvcGVuRW50aXR5AHBhcnNlci0+bV9vcGVuQXR0cmlidXRlRW50aXRpZXMgPT0gb3BlbkVudGl0eQBpbmZpbml0eQBsaXN0LT5zaXplIDwgbGlzdC0+Y2FwYWNpdHkAZmFudGFzeQBTcGFyc2VNYXRyaXhfY29vcmRpbmF0ZV9mb3JtX2FkZF9lbnRyeQAvc3ZnL2l2b3J5AG91dCBvZiBtZW1vcnkARmVicnVhcnkASmFudWFyeQBndnBsdWdpbl9kb3RfbGF5b3V0X0xUWF9saWJyYXJ5AGd2cGx1Z2luX25lYXRvX2xheW91dF9MVFhfbGlicmFyeQBndnBsdWdpbl9jb3JlX0xUWF9saWJyYXJ5AGdhdGhlcl90aW1lX2VudHJvcHkAbm9kZXNfY29weQBhbGJhbnkASnVseQBTcGFyc2VNYXRyaXhfbXVsdGlwbHkAZXF1YWxseQBhc3NlbWJseQBzdW1tZXJza3kAc2h5AHNhdGlzZnkAYmVhdXRpZnkAbm9qdXN0aWZ5AENsYXNzaWZ5AC9zdmcvbGlnaHRncmV5AC9zdmcvZGltZ3JleQAvc3ZnL2RhcmtncmV5AC9zdmcvbGlnaHRzbGF0ZWdyZXkAL3N2Zy9kYXJrc2xhdGVncmV5AC9zdmcvc2xhdGVncmV5AHdlYmdyZXkAeDExZ3JleQAvc3ZnL2dyZXkAbW92ZSB0byBmcm9udCBsb2NrIGluY29uc2lzdGVuY3kAZXh0cmFjdF9hZGphY2VuY3kAbWVyZ2Vfb25ld2F5AGFycmF5AGFsbG9jQXJyYXkAL3N2Zy9saWdodGdyYXkAL3N2Zy9kaW1ncmF5AC9zdmcvZGFya2dyYXkAL3N2Zy9saWdodHNsYXRlZ3JheQAvc3ZnL2RhcmtzbGF0ZWdyYXkAL3N2Zy9zbGF0ZWdyYXkAd2ViZ3JheQB4MTFncmF5AC9zdmcvZ3JheQBUaHVyc2RheQBUdWVzZGF5AFdlZG5lc2RheQBTYXR1cmRheQBTdW5kYXkATW9uZGF5AEZyaWRheQBNYXkALi4vLi4vbGliL2NncmFwaC9ncmFtbWFyLnkALi4vLi4vbGliL2NvbW1vbi9odG1scGFyc2UueQAlbS8lZC8leQBwb3J0aG95eABwb3J0aG9feXgAeHh4AGJveAB2aWV3Qm94AGNoa0JvdW5kQm94AC9NZWRpYUJveABnZXRfZWRnZV9sYWJlbF9tYXRyaXgAaWRlYWxfZGlzdGFuY2VfbWF0cml4AG11c3Qgbm90IHVuZGVjbGFyZSBwcmVmaXgAdW5ib3VuZCBwcmVmaXgAaHRtbGxleABtYXgAIyUwMnglMDJ4JTAyeAAjJTJ4JTJ4JTJ4JTJ4ACMlMXglMXglMXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweAByYXJyb3cAbGFycm93AEhlbHZldGljYS1OYXJyb3cAYXJyb3dfbGVuZ3RoX2Nyb3cAL3N2Zy9zbm93AHNwcmluZ19lbGVjdHJpY2FsX2VtYmVkZGluZ19zbG93AC9zdmcvbGlnaHR5ZWxsb3cAL3N2Zy9ncmVlbnllbGxvdwAvc3ZnL2xpZ2h0Z29sZGVucm9keWVsbG93AC9zdmcveWVsbG93AGZhdGFsIGVycm9yIC0gc2Nhbm5lciBpbnB1dCBidWZmZXIgb3ZlcmZsb3cAZmxleCBzY2FubmVyIHB1c2gtYmFjayBvdmVyZmxvdwBjb3VyaWVybmV3AFNwcmluZ1Ntb290aGVyX25ldwBUcmlhbmdsZVNtb290aGVyX25ldwBkaWFnX3ByZWNvbl9uZXcAUXVhZFRyZWVfbmV3AFN0cmVzc01ham9yaXphdGlvblNtb290aGVyMl9uZXcAbiAmJiBuZXcAc2tldwBzdHJ2aWV3AC9zdmcvaG9uZXlkZXcAIC1hbmNob3IgdwBzb3J0dgBwb3Y6cG92AE5vdgBpbnYAZXF1aXYAcGl2AG5vbmFtZS5ndgBHRF9yYW5rKGcpW3JdLmF2ID09IEdEX3JhbmsoZylbcl0udgBjYyVzXyV6dQBjYyVzKyV6dQAvc3ZnL3BlcnUAbnUAbXUAJWMlbGx1AFRodQB0YXUAVGF1AE51AE11AF9wb3J0XyVzXyglZClfKCVkKV8ldQBOdW1iZXIgb2YgaXRlcmF0aW9ucyA9ICV1AE51bWJlciBvZiBpbmNyZWFzZXMgPSAldQBwbGFpbnRleHQAc3RyZXNzd3QAaW5wdXQAdGV4dGxheW91dABkb3RfbGF5b3V0AG5lYXRvX2xheW91dABpbml0TGF5b3V0AGNsdXN0AG1hcENsdXN0AGxhYmVsanVzdABzY0FkanVzdABBdWd1c3QAZWRnZXNmaXJzdABub2Rlc2ZpcnN0AG1heGltYWxfaW5kZXBlbmRlbnRfZWRnZV9zZXRfaGVhdmVzdF9lZGdlX3Blcm5vZGVfc3VwZXJub2Rlc19maXJzdABleGlzdAByZWFsaWduTm9kZWxpc3QAYXBwZW5kTm9kZWxpc3QAZGVmYXVsdGRpc3QAbWluZGlzdABwb3dlcl9kaXN0AGdyYXBoX2Rpc3QAYXZnX2Rpc3QAZ2V0RWRnZUxpc3QAaXF1ZXN0AGxvd2FzdABzcHJpbmdfZWxlY3RyaWNhbF9lbWJlZGRpbmdfZmFzdABndl9zb3J0AHZpZXdwb3J0AHRhaWxwb3J0AHVuZXhwZWN0ZWQgcGFyc2VyIHN0YXRlIC0gcGxlYXNlIHNlbmQgYSBidWcgcmVwb3J0AGhlYWRwb3J0AGh0bWxfcG9ydABpbnNlcnQAUlRyZWVJbnNlcnQAZmluZFNWZXJ0AHN0YXJ0AHBhcnQAZXN0aW1hdGVfdGV4dF93aWR0aF8xcHQAcXVvdAB/cm9vdABub3QAbWFrZV92bl9zbG90AGVtaXRfeGRvdAB4ZG90Onhkb3QAZXBzOnhkb3QAc3ZnOnhkb3QAanBnOnhkb3QAcG5nOnhkb3QAanBlZzp4ZG90AGdpZjp4ZG90AGpwZTp4ZG90AHhkb3QxLjQ6eGRvdAB4ZG90MS4yOnhkb3QAc2RvdABtaWRkb3QAZ3Y6ZG90AHBsYWluLWV4dDpkb3QAZG90OmRvdABlcHM6ZG90AGNhbm9uOmRvdABwbGFpbjpkb3QAc3ZnOmRvdABqcGc6ZG90AHBuZzpkb3QAanBlZzpkb3QAZ2lmOmRvdABqcGU6ZG90AH9ib3QAZG9Eb3QAb2JqbGlzdF9mcm9udABwb2ludHNfZnJvbnQAY29sb3JzZWdzX2Zyb250AG5vZGVsaXN0X3BvcF9mcm9udABwYnNfc2l6ZV9mcm9udABzcGFuLT5mb250AHZhZ3hicHJpbnQAeGRvdF9wb2ludABkZWNpZGVfcG9pbnQAVW5zYXRpc2ZpZWQgY29uc3RyYWludAB0cmFuc3BhcmVudABjb21wb25lbnQAaW52YWxpZCBhcmd1bWVudABjb21tZW50AGp1bmsgYWZ0ZXIgZG9jdW1lbnQgZWxlbWVudABjZW50AGkgPT0gZWNudABhcmlhbG10AGx0AGNpcmN1aXQAcG9seV9pbml0AE11bHRpbGV2ZWxfaW5pdABuc2xpbWl0AG1jbGltaXQAUG9ydHJhaXQAbGlnaHQAdmlydHVhbF93ZWlnaHQAbGhlaWdodABLUF9SaWdodABCb29rbWFuLUxpZ2h0AGd0AEtQX0xlZnQAY2hhcnNldABpbnNldABiaXRhcnJheV9yZXNldABzdWJzZXQAYml0YXJyYXlfc2V0AG1hdHJpeF9zZXQAbm9kZWxpc3Rfc2V0AGVkZ2VfbGlzdF9zZXQAdHJhcHNfc2V0AG5vZGVzX3NldABzY2FybGV0AC9zdmcvZGFya3Zpb2xldAAvc3ZnL2JsdWV2aW9sZXQAL3N2Zy92aW9sZXQAVHJlYnVjaGV0AGFneGdldAB0YWlsdGFyZ2V0AGxhYmVsdGFyZ2V0AGVkZ2V0YXJnZXQAaGVhZHRhcmdldABiaXRhcnJheV9nZXQAZGVnbGlzdF9nZXQAbm9kZWxpc3RfZ2V0AGFkal9saXN0X2dldABzZWdfbGlzdF9nZXQAc2FtZV9saXN0X2dldABlZGdlX2xpc3RfZ2V0AG5vZGVfbGlzdF9nZXQAc2ZvbnRfZ2V0AGVkZ2Vfc2V0X2dldAByb3dzX2dldAB0c3RzX2dldABwb2ludHNfZ2V0AHBhaXJzX2dldAB0cmFwc19nZXQAY2VsbHNfZ2V0AGNvbG9yc2Vnc19nZXQAYm94ZXNfZ2V0AHRyaWFuZ2xlc19nZXQAY3ljbGVzX2dldABxbm9kZXNfZ2V0AGVzdGFja19nZXQAaW50X3N0YWNrX2dldABkZnNfc3RhY2tfZ2V0AG5vZGVfc3RhY2tfZ2V0AGJlemllcl9wYXRoX2dldABub2RlX3F1ZXVlX2dldABzdHlsZXNoZWV0AHN0cmljdABhZ2NvcHlkaWN0AGFnbWFrZWRhdGFkaWN0AHJlYy0+ZGljdCA9PSBkYXRhZGljdAB3cml0ZV9kaWN0AHNlY3QAZW5jb2Rpbmcgc3BlY2lmaWVkIGluIFhNTCBkZWNsYXJhdGlvbiBpcyBpbmNvcnJlY3QAYXNwZWN0AGxheWVyc2VsZWN0AEtQX1N1YnRyYWN0AFF1YWRUcmVlX3JlcHVsc2l2ZV9mb3JjZV9pbnRlcmFjdABjb21wYWN0AE9jdAByZXF1ZXN0ZWQgZmVhdHVyZSByZXF1aXJlcyBYTUxfRFREIHN1cHBvcnQgaW4gRXhwYXQAbGFiZWxmbG9hdABsYWJlbF9mbG9hdABTcGFyc2VNYXRyaXhfZnJvbV9jb29yZGluYXRlX2Zvcm1hdAAvc3ZnL3doZWF0AG9iamxpc3RfYXQAZGVnbGlzdF9hdABub2RlbGlzdF9hdABhZGpfbGlzdF9hdABzZWdfbGlzdF9hdABzYW1lX2xpc3RfYXQAZWRnZV9saXN0X2F0AG5vZGVfbGlzdF9hdABzZm9udF9hdABlZGdlX3NldF9hdAByb3dzX2F0AHRzdHNfYXQAcG9pbnRzX2F0AHBhaXJzX2F0AHRyYXBzX2F0AGh0ZXh0c3BhbnNfYXQAY2VsbHNfYXQAY29sb3JzZWdzX2F0AGJveGVzX2F0AHRyaWFuZ2xlc19hdABjeWNsZXNfYXQAcW5vZGVzX2F0AGVzdGFja19hdABpbnRfc3RhY2tfYXQAZGZzX3N0YWNrX2F0AG5vZGVfc3RhY2tfYXQAbm9kZV9xdWV1ZV9hdABTYXQAQWdyYXBoaW5mb190AEFnZWRnZWluZm9fdABBZ25vZGVpbmZvX3QAXHQAZmxhdGluZGV4KGFnaGVhZChlKSkgPCBNLT5ucm93cwBtaW51cwBvcGx1cwBoZWFydHMAc2FtcGxlcG9pbnRzAGRpcmVkZ2Vjb25zdHJhaW50cwBsZXZlbCBhc3NpZ25tZW50IGNvbnN0cmFpbnRzAHh5IHBzZXVkby1vcnRob2dvbmFsIGNvbnN0cmFpbnRzAHl4IHBzZXVkby1vcnRob2dvbmFsIGNvbnN0cmFpbnRzAHh5IG9ydGhvZ29uYWwgY29uc3RyYWludHMAeXggb3J0aG9nb25hbCBjb25zdHJhaW50cwBsaW5lIHNlZ21lbnRzAHNldF9jZWxsX2hlaWdodHMAcmVjdHMAYWNjb3VudGluZ1JlcG9ydFN0YXRzAGVudGl0eVRyYWNraW5nUmVwb3J0U3RhdHMAWmFwZkRpbmdiYXRzAHJlbWluY3Jvc3MAY29tcHJlc3MAZ3Z1c2Vyc2hhcGVfZmlsZV9hY2Nlc3MAYnJhc3MAY2xhc3MAYXBwbHlhdHRycwBhZ21ha2VhdHRycwBiaW5kYXR0cnMAcGFyc2VfbGF5ZXJzAG1rQ2x1c3RlcnMAcm91bmRfY29ybmVycwBtYWtlX2JhcnJpZXJzAGNkYXRhLm50b3BsZXZlbCA9PSBhZ25ub2RlcyhnKSAtIGNkYXRhLm52YXJzAGNhbm5vdCByZWFsbG9jIG9wcwBjYW5ub3QgcmVhbGxvYyBwbmxwcwBlcHMAY29yZV9sb2FkaW1hZ2VfcHMAZXBzOnBzAHBzMjpwcwAobGliKTpwcwBndl90cmltX3plcm9zAGFneGJ1Zl90cmltX3plcm9zAHRleGd5cmVoZXJvcwBpbWFnZXBvcwB0aW5vcwBzZXRFZGdlTGFiZWxQb3MAU2V0dGluZyBpbml0aWFsIHBvc2l0aW9ucwB4bGludGVyc2VjdGlvbnMAY29sdW1ucwBub2Rlc19jb250YWlucwBkZWphdnVzYW5zAG5pbWJ1c3NhbnMAbGliZXJhdGlvbnNhbnMAZnJlZXNhbnMAT3BlblNhbnMAb2Zmc2V0ID09IG5fdGVybXMAZGl0ZW1zAGRpYW1zAGZsYXRpbmRleChhZ3RhaWwoZSkpIDwgTS0+bmNvbHMAY2Fubm90IHJlYWxsb2MgZHEucG5scwBjYW5ub3QgcmVhbGxvYyBwbmxzAGxldmVscwBmb3JjZWxhYmVscwBkaWFnb25hbHMAbWVyZ2VfcmFua3MAc3BsaXRCbG9ja3MAaW52aXMAY2Fubm90IHJlYWxsb2MgdHJpcwBzZXRfY2VsbF93aWR0aHMAQ2FsY3VsYXRpbmcgc2hvcnRlc3QgcGF0aHMAeWVzAHNob3dib3hlcwBiZWF1dGlmeV9sZWF2ZXMAYXR0YWNoX2VkZ2VfbGFiZWxfY29vcmRpbmF0ZXMAcG9seWxpbmVzAHNwbGluZXMAb3J0aG9nb25hbCBsaW5lcwB0ZXhneXJldGVybWVzAG90aW1lcwBUaW1lcwBmb250bmFtZXMAcHJlZml4IG11c3Qgbm90IGJlIGJvdW5kIHRvIG9uZSBvZiB0aGUgcmVzZXJ2ZWQgbmFtZXNwYWNlIG5hbWVzAFNwYXJzZU1hdHJpeF9zdW1fcmVwZWF0X2VudHJpZXMAcGVyaXBoZXJpZXMAR2V0QnJhbmNoZXMAZiA8IGdyYXBoW2pdLm5lZGdlcwBtaW5tYXhfZWRnZXMAZXhjaGFuZ2VfdHJlZV9lZGdlcwBtYWtlU3RyYWlnaHRFZGdlcwB1bmRvQ2x1c3RlckVkZ2VzAGNvbXBvdW5kRWRnZXMAbWVyZ2VfdHJlZXMAX19jbHVzdGVybm9kZXMAYWdubm9kZXMATkRfaWQobnApID09IG5fbm9kZXMATG9hZE5vZGVzAHNpZGVzAHNwYWRlcwB2ZXJ0aWNlcwBjb29yZHMAc2V0Ym91bmRzAG1kcwBjZHMAbWFrZVNlbGZBcmNzAGVtaXRfZWRnZV9ncmFwaGljcwBjbHVicwBjb25zb2xhcwAlbGYlMnMAClN0cmluZyBzdGFydGluZzo8JS44MHMAClN0cmluZyBzdGFydGluZzoiJS44MHMAICUuKnMAJXMlcwBleHBhdDogQWNjb3VudGluZyglcCk6IERpcmVjdCAlMTBsbHUsIGluZGlyZWN0ICUxMGxsdSwgYW1wbGlmaWNhdGlvbiAlOC4yZiVzACUuKnMlYyVzACAlczolcwBfXyVkOiVzAC8lcy8lcwAlcy0lcwAsJXMAIGZvbnQtZmFtaWx5PSIlcwAiIHN0cm9rZS1kYXNoYXJyYXk9IiVzACIgY2xhc3M9IiVzAHBvbHkgJXMAKCglZiwlZiksKCVmLCVmKSkgJXMgJXMAY29sb3IgJXMAcm9vdCA9ICVzACBUaXRsZTogJXMAInN0cmljdCI6ICVzAGNvdXIAdXRyAGFwcGVuZGF0dHIAYWRkYXR0cgBiZWdpbnN0cgBmc3RyAHN0cnZpZXdfc3RyAHBvdl9jb2xvcl9hc19zdHIAdnBzYyE9bnVsbHB0cgBiZW5kVG9TdHIAdWFycgBjcmFycgBsYXJyAGhhcnIAZGFycgB1QXJyAHJBcnIAbEFycgBoQXJyAGRBcnIAQXByAFNwYXJzZU1hdHJpeF9tdWx0aXBseV92ZWN0b3IAdGVybWluYXRvcgBpbnN1bGF0b3IAaW50ZXJuYWxFbnRpdHlQcm9jZXNzb3IAdGV4Z3lyZWN1cnNvcgBzeW50YXggZXJyb3IAbW9uZXlfZ2V0IGVycm9yAEVycm9yAHJmbG9vcgBsZmxvb3IAbGFiZWxmb250Y29sb3IAcGVuY29sb3IAZmlsbGNvbG9yAGJnY29sb3IAcm93IG1ham9yAGNvbHVtbiBtYWpvcgBuZWlnaGJvcgBzdHlsZV9vcgBtcgByYW5rZGlyAHBhZ2VkaXIAbGF5ZXIAdXBwZXIgPj0gbG93ZXIATm9kZUNvdmVyAC9zdmcvc2lsdmVyAGNsdXN0ZXIAZXhwYW5kQ2x1c3RlcgBycHJvbW90ZXIAbHByb21vdGVyAGNlbnRlcgBtYXhpdGVyAHBhcnRpYWwgY2hhcmFjdGVyACEgcm9vdFBhcnNlci0+bV9wYXJlbnRQYXJzZXIAZGtncmVlbmNvcHBlcgBjb29sY29wcGVyAGd2X3NvcnRfY29tcGFyX3dyYXBwZXIAdGFwZXIAb3ZlcmxhcF9iZXppZXIAZmlnX2JlemllcgBjb3VyaWVyAENvdXJpZXIAaGllcgBkYWdnZXIARGFnZ2VyAG91dHB1dG9yZGVyAHBvc3RvcmRlcgBmbGF0X3Jlb3JkZXIAY2VsbGJvcmRlcgBmaXhMYWJlbE9yZGVyAGN5bGluZGVyAC9zdmcvbGF2ZW5kZXIAcmVuZGVyAGZvbGRlcgBjbHVzdGVyX2xlYWRlcgBORF9VRl9zaXplKG4pIDw9IDEgfHwgbiA9PSBsZWFkZXIAT2N0b2JlcgByZWZlcmVuY2UgdG8gaW52YWxpZCBjaGFyYWN0ZXIgbnVtYmVyAE5vdmVtYmVyAFNlcHRlbWJlcgBEZWNlbWJlcgBtYWNyAGJyAHN0YXIAZmVsZHNwYXIAcmVndWxhcgBodGV4dHNwYW5zX2NsZWFyAGlvc19iYXNlOjpjbGVhcgBicnZiYXIATWFyAFxyAE5EX3JhbmsodikgPT0gcgBzdHJlcQBzdHJ2aWV3X2VxAHN0cnZpZXdfc3RyX2VxAHN0cnZpZXdfY2FzZV9zdHJfZXEAc3Rydmlld19jYXNlX2VxAHZwACUlQmVnaW5Qcm9sb2cKL0RvdERpY3QgMjAwIGRpY3QgZGVmCkRvdERpY3QgYmVnaW4KCi9zZXR1cExhdGluMSB7Cm1hcmsKL0VuY29kaW5nVmVjdG9yIDI1NiBhcnJheSBkZWYKIEVuY29kaW5nVmVjdG9yIDAKCklTT0xhdGluMUVuY29kaW5nIDAgMjU1IGdldGludGVydmFsIHB1dGludGVydmFsCkVuY29kaW5nVmVjdG9yIDQ1IC9oeXBoZW4gcHV0CgolIFNldCB1cCBJU08gTGF0aW4gMSBjaGFyYWN0ZXIgZW5jb2RpbmcKL3N0YXJuZXRJU08gewogICAgICAgIGR1cCBkdXAgZmluZGZvbnQgZHVwIGxlbmd0aCBkaWN0IGJlZ2luCiAgICAgICAgeyAxIGluZGV4IC9GSUQgbmUgeyBkZWYgfXsgcG9wIHBvcCB9IGlmZWxzZQogICAgICAgIH0gZm9yYWxsCiAgICAgICAgL0VuY29kaW5nIEVuY29kaW5nVmVjdG9yIGRlZgogICAgICAgIGN1cnJlbnRkaWN0IGVuZCBkZWZpbmVmb250Cn0gZGVmCi9UaW1lcy1Sb21hbiBzdGFybmV0SVNPIGRlZgovVGltZXMtSXRhbGljIHN0YXJuZXRJU08gZGVmCi9UaW1lcy1Cb2xkIHN0YXJuZXRJU08gZGVmCi9UaW1lcy1Cb2xkSXRhbGljIHN0YXJuZXRJU08gZGVmCi9IZWx2ZXRpY2Egc3Rhcm5ldElTTyBkZWYKL0hlbHZldGljYS1PYmxpcXVlIHN0YXJuZXRJU08gZGVmCi9IZWx2ZXRpY2EtQm9sZCBzdGFybmV0SVNPIGRlZgovSGVsdmV0aWNhLUJvbGRPYmxpcXVlIHN0YXJuZXRJU08gZGVmCi9Db3VyaWVyIHN0YXJuZXRJU08gZGVmCi9Db3VyaWVyLU9ibGlxdWUgc3Rhcm5ldElTTyBkZWYKL0NvdXJpZXItQm9sZCBzdGFybmV0SVNPIGRlZgovQ291cmllci1Cb2xkT2JsaXF1ZSBzdGFybmV0SVNPIGRlZgpjbGVhcnRvbWFyawp9IGJpbmQgZGVmCgolJUJlZ2luUmVzb3VyY2U6IHByb2NzZXQgZ3JhcGh2aXogMCAwCi9jb29yZC1mb250LWZhbWlseSAvVGltZXMtUm9tYW4gZGVmCi9kZWZhdWx0LWZvbnQtZmFtaWx5IC9UaW1lcy1Sb21hbiBkZWYKL2Nvb3JkZm9udCBjb29yZC1mb250LWZhbWlseSBmaW5kZm9udCA4IHNjYWxlZm9udCBkZWYKCi9JbnZTY2FsZUZhY3RvciAxLjAgZGVmCi9zZXRfc2NhbGUgewogICAgICAgZHVwIDEgZXhjaCBkaXYgL0ludlNjYWxlRmFjdG9yIGV4Y2ggZGVmCiAgICAgICBzY2FsZQp9IGJpbmQgZGVmCgolIHN0eWxlcwovc29saWQgeyBbXSAwIHNldGRhc2ggfSBiaW5kIGRlZgovZGFzaGVkIHsgWzkgSW52U2NhbGVGYWN0b3IgbXVsIGR1cCBdIDAgc2V0ZGFzaCB9IGJpbmQgZGVmCi9kb3R0ZWQgeyBbMSBJbnZTY2FsZUZhY3RvciBtdWwgNiBJbnZTY2FsZUZhY3RvciBtdWxdIDAgc2V0ZGFzaCB9IGJpbmQgZGVmCi9pbnZpcyB7L2ZpbGwge25ld3BhdGh9IGRlZiAvc3Ryb2tlIHtuZXdwYXRofSBkZWYgL3Nob3cge3BvcCBuZXdwYXRofSBkZWZ9IGJpbmQgZGVmCi9ib2xkIHsgMiBzZXRsaW5ld2lkdGggfSBiaW5kIGRlZgovZmlsbGVkIHsgfSBiaW5kIGRlZgovdW5maWxsZWQgeyB9IGJpbmQgZGVmCi9yb3VuZGVkIHsgfSBiaW5kIGRlZgovZGlhZ29uYWxzIHsgfSBiaW5kIGRlZgovdGFwZXJlZCB7IH0gYmluZCBkZWYKCiUgaG9va3MgZm9yIHNldHRpbmcgY29sb3IgCi9ub2RlY29sb3IgeyBzZXRoc2Jjb2xvciB9IGJpbmQgZGVmCi9lZGdlY29sb3IgeyBzZXRoc2Jjb2xvciB9IGJpbmQgZGVmCi9ncmFwaGNvbG9yIHsgc2V0aHNiY29sb3IgfSBiaW5kIGRlZgovbm9wY29sb3Ige3BvcCBwb3AgcG9wfSBiaW5kIGRlZgoKL2JlZ2lucGFnZSB7CSUgaSBqIG5wYWdlcwoJL25wYWdlcyBleGNoIGRlZgoJL2ogZXhjaCBkZWYKCS9pIGV4Y2ggZGVmCgkvc3RyIDEwIHN0cmluZyBkZWYKCW5wYWdlcyAxIGd0IHsKCQlnc2F2ZQoJCQljb29yZGZvbnQgc2V0Zm9udAoJCQkwIDAgbW92ZXRvCgkJCShcKCkgc2hvdyBpIHN0ciBjdnMgc2hvdyAoLCkgc2hvdyBqIHN0ciBjdnMgc2hvdyAoXCkpIHNob3cKCQlncmVzdG9yZQoJfSBpZgp9IGJpbmQgZGVmCgovc2V0X2ZvbnQgewoJZmluZGZvbnQgZXhjaAoJc2NhbGVmb250IHNldGZvbnQKfSBkZWYKCiUgZHJhdyB0ZXh0IGZpdHRlZCB0byBpdHMgZXhwZWN0ZWQgd2lkdGgKL2FsaWduZWR0ZXh0IHsJCQklIHdpZHRoIHRleHQKCS90ZXh0IGV4Y2ggZGVmCgkvd2lkdGggZXhjaCBkZWYKCWdzYXZlCgkJd2lkdGggMCBndCB7CgkJCVtdIDAgc2V0ZGFzaAoJCQl0ZXh0IHN0cmluZ3dpZHRoIHBvcCB3aWR0aCBleGNoIHN1YiB0ZXh0IGxlbmd0aCBkaXYgMCB0ZXh0IGFzaG93CgkJfSBpZgoJZ3Jlc3RvcmUKfSBkZWYKCi9ib3hwcmltIHsJCQkJJSB4Y29ybmVyIHljb3JuZXIgeHNpemUgeXNpemUKCQk0IDIgcm9sbAoJCW1vdmV0bwoJCTIgY29weQoJCWV4Y2ggMCBybGluZXRvCgkJMCBleGNoIHJsaW5ldG8KCQlwb3AgbmVnIDAgcmxpbmV0bwoJCWNsb3NlcGF0aAp9IGJpbmQgZGVmCgovZWxsaXBzZV9wYXRoIHsKCS9yeSBleGNoIGRlZgoJL3J4IGV4Y2ggZGVmCgkveSBleGNoIGRlZgoJL3ggZXhjaCBkZWYKCW1hdHJpeCBjdXJyZW50bWF0cml4CgluZXdwYXRoCgl4IHkgdHJhbnNsYXRlCglyeCByeSBzY2FsZQoJMCAwIDEgMCAzNjAgYXJjCglzZXRtYXRyaXgKfSBiaW5kIGRlZgoKL2VuZHBhZ2UgeyBzaG93cGFnZSB9IGJpbmQgZGVmCi9zaG93cGFnZSB7IH0gZGVmCgovbGF5ZXJjb2xvcnNlcQoJWwklIGxheWVyIGNvbG9yIHNlcXVlbmNlIC0gZGFya2VzdCB0byBsaWdodGVzdAoJCVswIDAgMF0KCQlbLjIgLjggLjhdCgkJWy40IC44IC44XQoJCVsuNiAuOCAuOF0KCQlbLjggLjggLjhdCgldCmRlZgoKL2xheWVybGVuIGxheWVyY29sb3JzZXEgbGVuZ3RoIGRlZgoKL3NldGxheWVyIHsvbWF4bGF5ZXIgZXhjaCBkZWYgL2N1cmxheWVyIGV4Y2ggZGVmCglsYXllcmNvbG9yc2VxIGN1cmxheWVyIDEgc3ViIGxheWVybGVuIG1vZCBnZXQKCWFsb2FkIHBvcCBzZXRoc2Jjb2xvcgoJL25vZGVjb2xvciB7bm9wY29sb3J9IGRlZgoJL2VkZ2Vjb2xvciB7bm9wY29sb3J9IGRlZgoJL2dyYXBoY29sb3Ige25vcGNvbG9yfSBkZWYKfSBiaW5kIGRlZgoKL29ubGF5ZXIgeyBjdXJsYXllciBuZSB7aW52aXN9IGlmIH0gZGVmCgovb25sYXllcnMgewoJL215dXBwZXIgZXhjaCBkZWYKCS9teWxvd2VyIGV4Y2ggZGVmCgljdXJsYXllciBteWxvd2VyIGx0CgljdXJsYXllciBteXVwcGVyIGd0CglvcgoJe2ludmlzfSBpZgp9IGRlZgoKL2N1cmxheWVyIDAgZGVmCgolJUVuZFJlc291cmNlCiUlRW5kUHJvbG9nCiUlQmVnaW5TZXR1cAoxNCBkZWZhdWx0LWZvbnQtZmFtaWx5IHNldF9mb250CiUgL2Fycm93bGVuZ3RoIDEwIGRlZgolIC9hcnJvd3dpZHRoIDUgZGVmCgolIG1ha2Ugc3VyZSBwZGZtYXJrIGlzIGhhcm1sZXNzIGZvciBQUy1pbnRlcnByZXRlcnMgb3RoZXIgdGhhbiBEaXN0aWxsZXIKL3BkZm1hcmsgd2hlcmUge3BvcH0ge3VzZXJkaWN0IC9wZGZtYXJrIC9jbGVhcnRvbWFyayBsb2FkIHB1dH0gaWZlbHNlCiUgbWFrZSAnPDwnIGFuZCAnPj4nIHNhZmUgb24gUFMgTGV2ZWwgMSBkZXZpY2VzCi9sYW5ndWFnZWxldmVsIHdoZXJlIHtwb3AgbGFuZ3VhZ2VsZXZlbH17MX0gaWZlbHNlCjIgbHQgewogICAgdXNlcmRpY3QgKDw8KSBjdm4gKFspIGN2biBsb2FkIHB1dAogICAgdXNlcmRpY3QgKD4+KSBjdm4gKFspIGN2biBsb2FkIHB1dAp9IGlmCgolJUVuZFNldHVwAHN1cABncm91cABjdXAAdGhpbnNwAGVuc3AAZW1zcABuYnNwAHBlcnAAd2VpZXJwAGdlbmVyYXRlLWNvbnN0cmFpbnRzLmNwcABibG9jay5jcHAAY3NvbHZlX1ZQU0MuY3BwAH90b3AAcHJvcABhZ3hicG9wAG5vcABhc3ltcABjb21wAGZpbmRDQ29tcABibXAAc2NhbGVfY2xhbXAAeGxwAGxwICE9IGNscAB0YWlsX2xwAGhlYWRfbHAAdGFpbHRvb2x0aXAAbGFiZWx0b29sdGlwAGVkZ2V0b29sdGlwAGhlYWR0b29sdGlwAGhlbGxpcAB0YWlsY2xpcABoZWFkY2xpcAAvc3ZnL3BhcGF5YXdoaXAAaHAAdHJhbnNwb3NlX3N0ZXAAY29tcHV0ZVN0ZXAAbGF5ZXJsaXN0c2VwAGxheWVyc2VwAGlwc2VwAHJhbmtzZXAAbm9kZXNlcABzdWJncmFwaHMgbmVzdGVkIG1vcmUgdGhhbiAlZCBkZWVwAFNlcABzZmRwAGNwAHdlYnAAaWRtYXAAY2x1c3Rlcl9tYXAAY21hcHg6bWFwAGVwczptYXAAY21hcHhfbnA6bWFwAGltYXBfbnA6bWFwAGlzbWFwOm1hcABpbWFwOm1hcABjbWFwOm1hcABzdmc6bWFwAGpwZzptYXAAcG5nOm1hcABqcGVnOm1hcABnaWY6bWFwAGpwZTptYXAAb3ZlcmxhcABsZXZlbHNnYXAAY2FwAEtQX1VwACVJOiVNOiVTICVwAHN0YXJ0IDw9IHAAcnNxdW8AbHNxdW8AcmRxdW8AbGRxdW8AYmRxdW8Ac2JxdW8AcnNhcXVvAGxzYXF1bwByYXF1bwBsYXF1bwBhdXRvAE51bml0bwAvc3ZnL3RvbWF0bwBuZWF0bwBldXJvAC9zdmcvZ2FpbnNib3JvAE1ldGhvZFplcm8AbWljcm8AbmltYnVzbW9ubwBsaWJlcmF0aW9ubW9ubwBmcmVlbW9ubwBhcmltbwByYXRpbwBwb3J0aG8AcmhvAFJobwAvc3ZnL2luZGlnbwBwaW5mbwBjY2dyYXBoaW5mbwBjY2dub2RlaW5mbwBjbF9lZGdlX2luZm8AZ2V0UGFja0luZm8AbWFrZUluZm8AcGFyc2VQYWNrTW9kZUluZm8AY2lyY28AaWNvAFwlMDNvAC9zdmcvcm9zeWJyb3duAC9zdmcvc2FuZHlicm93bgB2ZXJ5ZGFya2Jyb3duAC9zdmcvc2FkZGxlYnJvd24AL3N2Zy9icm93bgBLUF9Eb3duAGNhbm5vdCBjaGFuZ2Ugc2V0dGluZyBvbmNlIHBhcnNpbmcgaGFzIGJlZ3VuAFN1bgBKdW4AdGhvcm4AL3N2Zy9jcmltc29uAHhkb3RfanNvbgB4ZG90X2pzb246anNvbgBqc29uMDpqc29uAG9taWNyb24AT21pY3JvbgBzY2Fyb24AU2Nhcm9uAHdlYm1hcm9vbgB4MTFtYXJvb24AL3N2Zy9tYXJvb24AL3N2Zy9saWdodHNhbG1vbgAvc3ZnL2RhcmtzYWxtb24AL3N2Zy9zYWxtb24AdXBzaWxvbgBlcHNpbG9uAFVwc2lsb24ARXBzaWxvbgByZXNvbHV0aW9uAGRpc3RvcnRpb24Ac3RkOjpleGNlcHRpb24AcGFydGl0aW9uAGRvdF9wb3NpdGlvbgBTZXR0aW5nIHVwIHN0cmVzcyBmdW5jdGlvbgB1bmNsb3NlZCBDREFUQSBzZWN0aW9uAHBvc3RhY3Rpb24Acm90YXRpb24Ab3JpZW50YXRpb24AYWJvbWluYXRpb24AYWNjb3VudGluZ0dldEN1cnJlbnRBbXBsaWZpY2F0aW9uAHhkb3R2ZXJzaW9uAFNUc2V0VW5pb24APHBvbHlnb24AaGV4YWdvbgBzZXB0YWdvbgBwZW50YWdvbgB0cmlwbGVvY3RhZ29uAGRvdWJsZW9jdGFnb24AL3N2Zy9sZW1vbmNoaWZmb24ATW9uAHBsdXNtbgBub3RpbgBpc2luAC9zdmcvbW9jY2FzaW4AcGluAG1pbgB2b3JvX21hcmdpbgBpbmZpbgBvbmVkX29wdGltaXplcl90cmFpbgBwbGFpbgBtYWtlX2NoYWluAG1lcmdlX2NoYWluAGRlbGV0ZU1pbgBmaW5kTWluAHZhbGlnbgBiYWxpZ24AeWVuAE11bHRpbGV2ZWxfY29hcnNlbgBjdXJyZW4AUG9ic29wZW4AZ3ZfZm9wZW4AZ3Z1c2Vyc2hhcGVfb3BlbgBlbnRpdHlUcmFja2luZ09uT3BlbgAvc3ZnL2xpbmVuAGRpbWVuAG1pbmxlbgBzdHlsZV90b2tlbgB1bmNsb3NlZCB0b2tlbgAvc3ZnL3llbGxvd2dyZWVuAG1lZGl1bWZvcmVzdGdyZWVuAC9zdmcvZm9yZXN0Z3JlZW4AL3N2Zy9saWdodGdyZWVuAGh1bnRlcnNncmVlbgAvc3ZnL2xhd25ncmVlbgAvc3ZnL2RhcmtncmVlbgAvc3ZnL21lZGl1bXNwcmluZ2dyZWVuAC9zdmcvc3ByaW5nZ3JlZW4AL3N2Zy9kYXJrb2xpdmVncmVlbgAvc3ZnL2xpbWVncmVlbgAvc3ZnL3BhbGVncmVlbgB3ZWJncmVlbgAvc3ZnL2xpZ2h0c2VhZ3JlZW4AL3N2Zy9tZWRpdW1zZWFncmVlbgAvc3ZnL2RhcmtzZWFncmVlbgAvc3ZnL3NlYWdyZWVuAHgxMWdyZWVuAC9zdmcvZ3JlZW4AR3JlZW4AL3N2Zy9saWdodGN5YW4AL3N2Zy9kYXJrY3lhbgAvc3ZnL2N5YW4AbmV3dGFuAGRhcmt0YW4AL3N2Zy90YW4Acm93c3BhbgBjb2xzcGFuAG5hbgB0aW1lc25ld3JvbWFuAG5pbWJ1c3JvbWFuAHRpbWVzcm9tYW4AVGltZXMtUm9tYW4AUGFsYXRpbm8tUm9tYW4ATmV3Q2VudHVyeVNjaGxiay1Sb21hbgBKYW4AR0RfcmFuayhnKVtyXS5uIDw9IEdEX3JhbmsoZylbcl0uYW4AYWd4YnB1dF9uAFxuAG5fbm9kZXMgPT0gZ3JhcGgtPm4AQS0+bSA9PSBBLT5uAGpvYi0+b2JqLT51Lm4AcywlbGYsJWxmJW4AIGUsJWxmLCVsZiVuACVkICUxWyJdJW4AdiA9PSBuAG56YyA9PSBuAGIgPT0gbgBuY2x1c3RlciA8PSBuAHBzeW0AYWxlZnN5bQB0aGV0YXN5bQBxdWFudHVtAHN1bQAvc3ZnL3BsdW0AaW52dHJhcGV6aXVtAG1lZGl1bQA5OnByaXNtAGxybQBjdXN0b20AYXB0ci0+dGFnID09IFRfYXRvbQAvZGV2L3VyYW5kb20AZ3ZfcmFuZG9tAHJsbQBzaW0ASU1EU19naXZlbl9kaW0Ab3JkbQBwYXJhbGxlbG9ncmFtAC9zdmcvbWludGNyZWFtAEp1bAB0bABmcmFzbABTeW1ib2wAZmluZENvbAA8P3htbAB5dW1sAHV1bWwAb3VtbABpdW1sAGV1bWwAYXVtbABZdW1sAFV1bWwAT3VtbABJdW1sAEV1bWwAQXVtbABjb3JlX2xvYWRpbWFnZV92cm1sAGpwZzp2cm1sAHBuZzp2cm1sAGpwZWc6dnJtbABnaWY6dnJtbABqcGU6dnJtbABidWxsAGZpbGwAL3N2Zy9zZWFzaGVsbABmb3JhbGwAQXByaWwAcGVybWlsAHJjZWlsAGxjZWlsAGNjZWRpbABDY2VkaWwAYXJyb3d0YWlsAGx0YWlsAHNhbWV0YWlsAGxldmVsID49IDAgJiYgbGV2ZWwgPD0gbi0+bGV2ZWwAc3RyZXNzX21ham9yaXphdGlvbl9rRF9ta2VybmVsAGlzX3BhcmFsbGVsAENhbGN1bGF0aW5nIGNpcmN1aXQgbW9kZWwAQ2FsY3VsYXRpbmcgc3Vic2V0IG1vZGVsAENhbGN1bGF0aW5nIE1EUyBtb2RlbAB4bGFiZWwAdGFpbGxhYmVsAGhlYWRsYWJlbABtYWtlX2xhYmVsAGdyYXBoIGxhYmVsAGlleGNsAG9ianAtPmxibABvdmFsAG1lcmdldmlydHVhbAAvc3ZnL2xpZ2h0Y29yYWwAL3N2Zy9jb3JhbABTcGFyc2VNYXRyaXhfZnJvbV9jb29yZGluYXRlX2FycmF5c19pbnRlcm5hbABNdWx0aWxldmVsX2NvYXJzZW5faW50ZXJuYWwAUXVhZFRyZWVfYWRkX2ludGVybmFsAGFycm93X2xlbmd0aF9ub3JtYWwAYXJpYWwAcmFkaWFsAC9zdmcvdGVhbAByZWFsAGxvY2FsAGVzdGltYXRlX2NoYXJhY3Rlcl93aWR0aF9jYW5vbmljYWwAZ2xvYmFsAHEtPmwALi4vLi4vbGliL2NncmFwaC9zY2FuLmwAdGs6dGsAZ2lmOnRrAHBhdGNod29yawB0b2sAYm9vawBBdmFudEdhcmRlLUJvb2sAc2luawBvdmVybGFwX3NocmluawBzcGljeXBpbmsAL3N2Zy9ob3RwaW5rAC9zdmcvbGlnaHRwaW5rAC9zdmcvZGVlcHBpbmsAbmVvbnBpbmsAL3N2Zy9waW5rAG5ld3JhbmsAY2x1c3RlcnJhbmsAX25ld19yYW5rAGluc3RhbGxfaW5fcmFuawByZW1vdmVfZnJvbV9yYW5rAC9zdmcvY29ybnNpbGsAb25lYmxvY2sAdi0+bGVmdC0+YmxvY2sgPT0gdi0+cmlnaHQtPmJsb2NrAC9zdmcvZmlyZWJyaWNrAFBRY2hlY2sAcGFjawAvc3ZnL2JsYWNrAEJsYWNrAHNmb250X2JhY2sAcm93c19iYWNrAHRzdHNfYmFjawBjb2xvcnNlZ3NfYmFjawBub2RlX2xpc3RfcG9wX2JhY2sAc2ZvbnRfcG9wX2JhY2sAdHN0c19wb3BfYmFjawBlc3RhY2tfcG9wX2JhY2sAZGZzX3N0YWNrX3BvcF9iYWNrAGRmc19zdGFja19iYWNrAHp3agB6d25qAGpvYi0+b2JqAGdldGludHJzeGkAcHNpAFBzaQBDYWxpYnJpAEZyaQB0d29waQBkcGkAdm9yb25vaQBWb3Jvbm9pAGNoYW5pAGRlbWkAQm9va21hbi1EZW1pAEF2YW50R2FyZGUtRGVtaQAvc3ZnL2RhcmtraGFraQAvc3ZnL2toYWtpAHBoaQBjaGkAUGhpAENoaQBkaQBYaQBQaQBORF9pZChucCkgPT0gaQBTdHJlc3NNYWpvcml6YXRpb25TbW9vdGhlcl9zbW9vdGgAU3ByaW5nU21vb3RoZXJfc21vb3RoAGJvdGgAc3RhcnRzd2l0aABsaW5lbGVuZ3RoAGJhZF9hcnJheV9uZXdfbGVuZ3RoAGF2ZXJhZ2VfZWRnZV9sZW5ndGgAZXRoAHBlbndpZHRoAGx3aWR0aABzZXRsaW5ld2lkdGgAc2hvcnRwYXRoAGZvbnRwYXRoAFBvYnNwYXRoAGJlZ2lucGF0aABpbWFnZXBhdGgAZW5kcGF0aABzdHJhaWdodF9wYXRoAG1hcF9wYXRoADxwYXRoAGNhbm5vdCBmaW5kIHRyaWFuZ2xlIHBhdGgAL3N2Zy9sYXZlbmRlcmJsdXNoAGZsZXNoAG9zbGFzaABPc2xhc2gAZHRzdHJoYXNoAHN0cmRpY3RfaGFzaABuZGFzaABtZGFzaABkaWdyYXBoAHN1YmdyYXBoAGNvbnN0cnVjdF9ncmFwaABjaGtTZ3JhcGgAY2xvc2VzdF9wYWlyczJncmFwaABhZ2RlbGV0ZSBvbiB3cm9uZyBncmFwaABjb25uZWN0R3JhcGgAdXBzaWgAJXNsaW5lLXRocm91Z2gAZmxhdF9zZWFyY2gAY2hhblNlYXJjaABSVHJlZVNlYXJjaABNYXJjaABEaXNjb25CcmFuY2gAUGlja0JyYW5jaABBZGRCcmFuY2gALi4vLi4vbGliL3V0aWwvYml0YXJyYXkuaAAuLi8uLi9saWIvdXRpbC9zdHJ2aWV3LmgALi4vLi4vbGliL2NpcmNvZ2VuL25vZGVsaXN0LmgALi4vLi4vbGliL3V0aWwvc29ydC5oAC4uLy4uL2xpYi9jZ3JhcGgvbm9kZV9zZXQuaAAuLi8uLi9saWIvY29tbW9uL2dsb2JhbHMuaAAuLi8uLi9saWIvY29tbW9uL2JveGVzLmgALi4vLi4vbGliL29ydGhvL3N0cnVjdHVyZXMuaAAuLi8uLi9saWIvZG90Z2VuL2RvdHByb2NzLmgALi4vLi4vbGliL3V0aWwvc3RyZXEuaAAuLi8uLi9saWIvb3J0aG8vdHJhcC5oAC4uLy4uL2xpYi91dGlsL3N0YXJ0c3dpdGguaAAuLi8uLi9saWIvdXRpbC9ndl9tYXRoLmgALi4vLi4vbGliL29ydGhvL3Jhd2dyYXBoLmgALi4vLi4vbGliL3V0aWwvYWd4YnVmLmgALi4vLi4vbGliL3V0aWwvdG9rZW5pemUuaAAuLi8uLi9saWIvY29tbW9uL2h0bWx0YWJsZS5oAC4uLy4uL2xpYi91dGlsL2FsbG9jLmgAYXV4ZwBjb3JlX2xvYWRpbWFnZV9zdmcAc3ZnOnN2ZwBqcGc6c3ZnAHBuZzpzdmcAanBlZzpzdmcAZ2lmOnN2ZwBqcGU6c3ZnAHN2Z19pbmxpbmU6c3ZnAEF1ZwBkb1Byb2xvZwBwb3dlcl9pdGVyYXRpb25fb3J0aG9nAHBuZwBpZGVhbF9kaXN0X3NjaGVtZSB2YWx1ZSB3cm9uZwB4ZG90IHZlcnNpb24gIiVzIiB0b28gbG9uZwBjb25nAGxibGVuY2xvc2luZwBiYXNpY19zdHJpbmcAZmFpbHVyZSBtYWxsb2MnaW5nIGZvciByZXN1bHQgc3RyaW5nAHNwcmluZwBvcmRlcmluZwBnZW5lcmF0ZVJhbmRvbU9yZGVyaW5nAGFyaW5nAEFyaW5nAERhbXBpbmcAV2FybmluZwBvdmVybGFwX3NjYWxpbmcAeCBhbmQgeSBzY2FsaW5nAG9sZCBzY2FsaW5nAHNtb290aGluZwB1bmtub3duIGVuY29kaW5nAG11bHRpbGV2ZWxfc3ByaW5nX2VsZWN0cmljYWxfZW1iZWRkaW5nAHNwcmluZ19lbGVjdHJpY2FsX3NwcmluZ19lbWJlZGRpbmcAY2VsbHBhZGRpbmcAY2VsbHNwYWNpbmcAcmFuZwBsYW5nAGZpdmVwb3ZlcmhhbmcAdGhyZWVwb3ZlcmhhbmcAbm92ZXJoYW5nAGVtaXRfaHRtbF9pbWcAbGcAb3JpZwBzemxpZwBvZWxpZwBhZWxpZwBPRWxpZwBBRWxpZwBjb3JlX2xvYWRpbWFnZV9maWcAanBnOmZpZwBwbmc6ZmlnAGZpZzpmaWcAanBlZzpmaWcAZ2lmOmZpZwBqcGU6ZmlnAGVnZwBuZXh0X3NlZwByZWcAanBlZwBpID09IGRlZwBkZwBjZwBjbG9zZXN1YmcAbWlzbWF0Y2hlZCB0YWcAYmV6LT5zZmxhZwBiZXotPmVmbGFnACEqZmxhZwAhZmxhZwA8ZwAlLjVnLCUuNWcsJS41ZywlLjVnACUuNWcgJS41ZwAlZyAlZwBib3hJbnRlcnNlY3RmAGVwc2YAYWdlZGdlc2VxY21wZgBjY3dyb3RhdGVwZgBmbm9mAGluZgBzZWxmAGhhbGYAJWxmJWxmJWxmJWxmACVsZiwlbGYsJWxmLCVsZiwlbGYAJSpmICUqZiAlbGYgJWxmAGxpYmVyYXRpb25zZXJpZgBmcmVlc2VyaWYAc2Fucy1TZXJpZgBnaWYAL3N2Zy9wZWFjaHB1ZmYAcmlmZgBhY2NvdW50aW5nUmVwb3J0RGlmZgB0YWlsaHJlZgBsYWJlbGhyZWYAZWRnZWhyZWYAaGVhZGhyZWYAb3JkZgBwZGYAc2lnbWFmAFxmACUuMExmACVMZgB1cy0+ZgAlLjAzZgAlcyB0cmFuc21pdCAlLjNmAHJnYjwlOS4zZiwgJTkuM2YsICU5LjNmPiB0cmFuc21pdCAlLjNmACUuMDJmACUuMmYAJS4wZiwlLjBmLCUuMGYsJS4wZgAgJS4wZiwlLjBmACUuMGYgJS4wZiAlLjBmICUuMGYAIiBmaWxsLW9wYWNpdHk9IiVmACIgc3Ryb2tlLW9wYWNpdHk9IiVmAApmaW5hbCBlID0gJWYAYnJvbnplAGFycm93c2l6ZQBsYWJlbGZvbnRzaXplAHNlYXJjaHNpemUAZml4ZWRzaXplAG5vZGVsaXN0X3NpemUAbm9kZV9zZXRfc2l6ZQB0cmFwc19zaXplAGNlbGxzX3NpemUAbm9kZXNfc2l6ZQB0ZXh0c3Bhbl9zaXplAHN2Z19zaXplAGNhcGFjaXR5ID4gZGljdC0+c2l6ZQBjYXBhY2l0eSA+IHNlbGYtPnNpemUAYnouc2l6ZQBwb2ludC1zaXplAG5vcm1hbGl6ZQBFTGluaXRpYWxpemUAbWtNYXplAGljdXJ2ZQBub2RlbGlzdF9yZW1vdmUAYWRqX2xpc3RfcmVtb3ZlAG5vZGVfc2V0X3JlbW92ZQBzdHJkaWN0X3JlbW92ZQBzb2x2ZQAhdi0+YWN0aXZlAC1hY3RpdmUAZm9udF9pbl9saXN0X3Blcm1pc3NpdmUAL3N2Zy9vbGl2ZQB1Z3JhdmUAb2dyYXZlAGlncmF2ZQBlZ3JhdmUAYWdyYXZlAFVncmF2ZQBPZ3JhdmUASWdyYXZlAEVncmF2ZQBBZ3JhdmUAdHJ1ZQAvc3ZnL2Jpc3F1ZQBvYmxpcXVlAEF2YW50R2FyZGUtQm9va09ibGlxdWUAQXZhbnRHYXJkZS1EZW1pT2JsaXF1ZQBIZWx2ZXRpY2EtTmFycm93LUJvbGRPYmxpcXVlAENvdXJpZXItQm9sZE9ibGlxdWUASGVsdmV0aWNhLUJvbGRPYmxpcXVlAEhlbHZldGljYS1OYXJyb3ctT2JsaXF1ZQBDb3VyaWVyLU9ibGlxdWUASGVsdmV0aWNhLU9ibGlxdWUAbmF2eWJsdWUAL3N2Zy9saWdodHNreWJsdWUAL3N2Zy9kZWVwc2t5Ymx1ZQAvc3ZnL3NreWJsdWUAbmV3bWlkbmlnaHRibHVlAC9zdmcvbWlkbmlnaHRibHVlAC9zdmcvbGlnaHRibHVlAC9zdmcvY2FkZXRibHVlAC9zdmcvY29ybmZsb3dlcmJsdWUAL3N2Zy9kb2RnZXJibHVlAC9zdmcvcG93ZGVyYmx1ZQBuZW9uYmx1ZQAvc3ZnL21lZGl1bWJsdWUAL3N2Zy9saWdodHN0ZWVsYmx1ZQAvc3ZnL3N0ZWVsYmx1ZQAvc3ZnL3JveWFsYmx1ZQAvc3ZnL2RhcmtibHVlAHJpY2hibHVlAGxpZ2h0c2xhdGVibHVlAC9zdmcvbWVkaXVtc2xhdGVibHVlAC9zdmcvZGFya3NsYXRlYmx1ZQAvc3ZnL3NsYXRlYmx1ZQAvc3ZnL2FsaWNlYmx1ZQAvc3ZnL2JsdWUAY2FsbFN0b3JlRW50aXR5VmFsdWUAc3RvcmVBdHRyaWJ1dGVWYWx1ZQBCbHVlAG5lYXRvX2VucXVldWUAVHVlAGNvbnZlcnRTUHRvUm91dGUAeWFjdXRlAHVhY3V0ZQBvYWN1dGUAaWFjdXRlAGVhY3V0ZQBhYWN1dGUAWWFjdXRlAFVhY3V0ZQBPYWN1dGUASWFjdXRlAEVhY3V0ZQBBYWN1dGUAcmVmZXJlbmNlIHRvIGV4dGVybmFsIGVudGl0eSBpbiBhdHRyaWJ1dGUAZHVwbGljYXRlIGF0dHJpYnV0ZQBub3RlAHByaW1lcnNpdGUAcmlib3NpdGUAcmVzdHJpY3Rpb25zaXRlAHByb3RlYXNlc2l0ZQAvc3ZnL2dob3N0d2hpdGUAL3N2Zy9uYXZham93aGl0ZQAvc3ZnL2Zsb3JhbHdoaXRlAC9zdmcvYW50aXF1ZXdoaXRlAC9zdmcvd2hpdGUAV2hpdGUAcG9wX29ial9zdGF0ZQBwY3Bfcm90YXRlAGNvbmNlbnRyYXRlAGRlY29yYXRlAFF1YWRUcmVlX3JlcHVsc2l2ZV9mb3JjZV9hY2N1bXVsYXRlAG5vdHJhbnNsYXRlAC9zdmcvY2hvY29sYXRlAGdlb21VcGRhdGUAaW52aG91c2UAL3N2Zy9jaGFydHJldXNlAG5vZGVsaXN0X3JldmVyc2UAWE1MX1BhcnNlADxlbGxpcHNlAGR1c3R5cm9zZQAvc3ZnL21pc3R5cm9zZQBTcGFyc2VNYXRyaXhfdHJhbnNwb3NlAGFnY2xvc2UAZW50aXR5VHJhY2tpbmdPbkNsb3NlAFNwYXJzZU1hdHJpeF9tdWx0aXBseV9kZW5zZQBmYWxzZQAvc3ZnL21lZGl1bXR1cnF1b2lzZQAvc3ZnL2Rhcmt0dXJxdW9pc2UAL3N2Zy9wYWxldHVycXVvaXNlAC9zdmcvdHVycXVvaXNlAHBoYXNlAC9zdmcvYXp1cmUAc2lnbmF0dXJlAGNvcmUATXNxdWFyZQBQYWxhdGlubyBMaW5vdHlwZQBBLT50eXBlID09IEItPnR5cGUAc3VwZQBlbGxpcHNlX3RhbmdlbnRfc2xvcGUAZ3ZyZW5kZXJfdXNlcnNoYXBlAG1pdGVyX3NoYXBlAGxhbmRzY2FwZQBMYW5kc2NhcGUASnVuZQBub25lAGRvY3VtZW50IGlzIG5vdCBzdGFuZGFsb25lAGNvdXNpbmUAL3N2Zy9tZWRpdW1hcXVhbWFyaW5lAC9zdmcvYXF1YW1hcmluZQA8cG9seWxpbmUAJXNvdmVybGluZQB1bmRlcmxpbmUAUHJvdXRlc3BsaW5lAGxpbmVhcl9zcGxpbmUAYl9zcGxpbmUAb2xpbmUAYWd4YnVmX2lzX2lubGluZQBzdmdfaW5saW5lAHJlZmluZQBwcmltZQBQcmltZQAvc3ZnL2xpbWUAY29sb3JzY2hlbWUAbGFiZWxfc2NoZW1lAHNhbWUAbGFiZWxmb250bmFtZQBVRl9zZXRuYW1lAGZvbnRfbmFtZQBmb250LT5uYW1lAHVzLT5uYW1lAHJlc2VydmVkIHByZWZpeCAoeG1sKSBtdXN0IG5vdCBiZSB1bmRlY2xhcmVkIG9yIGJvdW5kIHRvIGFub3RoZXIgbmFtZXNwYWNlIG5hbWUAc3R5bGUAL3N2Zy90aGlzdGxlAHRpdGxlAC9zdmcvbWVkaXVtcHVycGxlAGRhcmtwdXJwbGUAd2VicHVycGxlAHJlYmVjY2FwdXJwbGUAdmVyeV9saWdodF9wdXJwbGUAbWVkX3B1cnBsZQB4MTFwdXJwbGUAL3N2Zy9wdXJwbGUAc2hhcGVmaWxlAGdyYWRpZW50YW5nbGUAcmVjdGFuZ2xlAFJlY3RhbmdsZQBsYWJlbGFuZ2xlAGludnRyaWFuZ2xlAGRlc3RpbmF0aW9uIHBvaW50IG5vdCBpbiBhbnkgdHJpYW5nbGUAc291cmNlIHBvaW50IG5vdCBpbiBhbnkgdHJpYW5nbGUAZGZzQ3ljbGUAZG91YmxlY2lyY2xlAE1jaXJjbGUAaW52aXNpYmxlAHRob3JuZGFsZQBpbnB1dHNjYWxlAG9zY2FsZQBpbWFnZXNjYWxlAC9zdmcvd2hpdGVzbW9rZQBtYW5kYXJpbm9yYW5nZQAvc3ZnL2RhcmtvcmFuZ2UAL3N2Zy9vcmFuZ2UAL3N2Zy9iZWlnZQBuZXdlZGdlAGRlbGV0ZV9mYXN0X2VkZ2UAZGVsZXRlX2ZsYXRfZWRnZQBhZGRfdHJlZV9lZGdlAG1ha2VTdHJhaWdodEVkZ2UAbWFrZVNlbGZFZGdlAG1ha2VDb21wb3VuZEVkZ2UAIXVzZV9zdGFnZQBvc2FnZQBwYWdlAGd2bG9hZGltYWdlAHZlZQB0ZWUAUVVBRF9UUkVFX0hZQlJJRCwgc2l6ZSBsYXJnZXIgdGhhbiAlZCwgc3dpdGNoIHRvIGZhc3QgcXVhZHRyZWUAZmVhc2libGVfdHJlZQBTcGFyc2VNYXRyaXhfZGl2aWRlX3Jvd19ieV9kZWdyZWUAbm9kZWxpc3RfZnJlZQBzZm9udF9mcmVlAG5vZGVfc2V0X2ZyZWUAcm93c19mcmVlAGNlbGxzX2ZyZWUAbmV3bm9kZQBpbnN0YWxsbm9kZQBhZ25vZGUAZGVsZXRlX2Zhc3Rfbm9kZQBwYWNrbW9kZQBTcGxpdE5vZGUAb3RpbGRlAG50aWxkZQBhdGlsZGUAT3RpbGRlAE50aWxkZQBBdGlsZGUAZGl2aWRlAHRyYWRlAGdyYXBodml6X25vZGVfaW5kdWNlAHNvdXJjZQByZXB1bHNpdmVmb3JjZQBpbGxlZ2FsIHBhcmFtZXRlciBlbnRpdHkgcmVmZXJlbmNlAGVycm9yIGluIHByb2Nlc3NpbmcgZXh0ZXJuYWwgZW50aXR5IHJlZmVyZW5jZQByZWN1cnNpdmUgZW50aXR5IHJlZmVyZW5jZQBsYWJlbGRpc3RhbmNlAFRCX2JhbGFuY2UAVEJiYWxhbmNlAGRldmljZQBtb25vc3BhY2UAL3N2Zy9vbGRsYWNlAGZhY2UAc3ViZQAgLWFuY2hvciBlAHMxLT5jb21tX2Nvb3JkPT1zMi0+Y29tbV9jb29yZABNcmVjb3JkAGZvcndhcmQAcHJvZABsaWdodGdvbGRlbnJvZABtZWRpdW1nb2xkZW5yb2QAL3N2Zy9kYXJrZ29sZGVucm9kAC9zdmcvcGFsZWdvbGRlbnJvZAAvc3ZnL2dvbGRlbnJvZAAvc3ZnL2J1cmx5d29vZABsaWdodHdvb2QAbWVkaXVtd29vZABkYXJrd29vZABfYmFja2dyb3VuZABjb21wb3VuZABubyBlbGVtZW50IGZvdW5kAGZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0tbm8gYWN0aW9uIGZvdW5kAC9zdmcvYmxhbmNoZWRhbG1vbmQAYXJyb3dfbGVuZ3RoX2RpYW1vbmQATWRpYW1vbmQAbm9kZV9zZXRfZmluZABzdHJkaWN0X2ZpbmQAZ3Z1c2Vyc2hhcGVfZmluZABub2RlbGlzdF90cnlfYXBwZW5kAGVkZ2VfbGlzdF90cnlfYXBwZW5kAHNmb250X3RyeV9hcHBlbmQAdHJhcHNfdHJ5X2FwcGVuZABjZWxsc190cnlfYXBwZW5kAG5vZGVzX3RyeV9hcHBlbmQAbm9kZV9xdWV1ZV90cnlfYXBwZW5kAHNob3dfYm94ZXNfcHJlcGVuZABFTGxlZnRibmQAZXhwYW5kAGN1bWJlcmxhbmQAYnJpZ2h0Z29sZABvbGRnb2xkAC9zdmcvZ29sZABib2xkAEhlbHZldGljYS1OYXJyb3ctQm9sZABUaW1lcy1Cb2xkAENvdXJpZXItQm9sZABQYWxhdGluby1Cb2xkAE5ld0NlbnR1cnlTY2hsYmstQm9sZABIZWx2ZXRpY2EtQm9sZAAlMCpsbGQAJSpsbGQAKyVsbGQAbi0+YnJhbmNoW2ldLmNoaWxkACUrLjRsZAAlcyVsZABzb2xpZAAvc3ZnL21lZGl1bW9yY2hpZAAvc3ZnL2RhcmtvcmNoaWQAL3N2Zy9vcmNoaWQAaWxsZWdhbCBjaGFyYWN0ZXIocykgaW4gcHVibGljIGlkAGRpamtzdHJhX3NnZABmaXhlZABjdXJ2ZWQAZGVyaXZlZABkb3R0ZWQAbWVtb3J5IGV4aGF1c3RlZABsb2NhbGUgbm90IHN1cHBvcnRlZABwYXJzaW5nIGFib3J0ZWQAcGFyc2VyIG5vdCBzdGFydGVkAGF0dHJpYnV0ZSBtYWNyb3Mgbm90IGltcGxlbWVudGVkAGFjY291bnRpbmdEaWZmVG9sZXJhdGVkAGZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0tZW5kIG9mIGJ1ZmZlciBtaXNzZWQAY29uZGVuc2VkAC9zdmcvbWVkaXVtdmlvbGV0cmVkAC9zdmcvcGFsZXZpb2xldHJlZABJbXByb3BlciAlcyB2YWx1ZSAlcyAtIGlnbm9yZWQAJXMgdmFsdWUgJXMgPCAlZCAtIHRvbyBzbWFsbCAtIGlnbm9yZWQAJXMgdmFsdWUgJXMgPiAlZCAtIHRvbyBsYXJnZSAtIGlnbm9yZWQAL3N2Zy9pbmRpYW5yZWQAL3N2Zy9kYXJrcmVkAGEgc3VjY2Vzc2Z1bCBwcmlvciBjYWxsIHRvIGZ1bmN0aW9uIFhNTF9HZXRCdWZmZXIgaXMgcmVxdWlyZWQAdGFwZXJlZAAvc3ZnL29yYW5nZXJlZAByZXNlcnZlZCBwcmVmaXggKHhtbG5zKSBtdXN0IG5vdCBiZSBkZWNsYXJlZCBvciB1bmRlY2xhcmVkAC9zdmcvcmVkAHN0cmlwZWQAaWxsLWNvbmRpdGlvbmVkAHVuZGVmaW5lZABub3QgY29uc3RyYWluZWQAbGFiZWxhbGlnbmVkAHRleHQgZGVjbGFyYXRpb24gbm90IHdlbGwtZm9ybWVkAFhNTCBkZWNsYXJhdGlvbiBub3Qgd2VsbC1mb3JtZWQAdW5maWxsZWQAaW5wdXQgaW4gZmxleCBzY2FubmVyIGZhaWxlZAB0cmlhbmd1bGF0aW9uIGZhaWxlZABwYXJzaW5nIGZpbmlzaGVkAGRhc2hlZABsaW1pdCBvbiBpbnB1dCBhbXBsaWZpY2F0aW9uIGZhY3RvciAoZnJvbSBEVEQgYW5kIGVudGl0aWVzKSBicmVhY2hlZAB3ZWRnZWQAc2l6ZSA9PSBmcmVlZAByb3VuZGVkAHNwbGluZSBbJS4wM2YsICUuMDNmXSAtLSBbJS4wM2YsICUuMDNmXSBpcyBob3Jpem9udGFsOyB3aWxsIGJlIHRyaXZpYWxseSBib3VuZGVkAHNwbGluZSBbJS4wM2YsICUuMDNmXSAtLSBbJS4wM2YsICUuMDNmXSBpcyB2ZXJ0aWNhbDsgd2lsbCBiZSB0cml2aWFsbHkgYm91bmRlZABwYXJzZXIgbm90IHN1c3BlbmRlZABwYXJzZXIgc3VzcGVuZGVkAFdlZABSZWQAU3BhcnNlTWF0cml4X2FkZABub2RlX3NldF9hZGQAc3RyZGljdF9hZGQAZGQgIT0gcGFyZW50X2RkAEtQX0FkZABwYWQAeGxoZHhsb2FkAHhsaGR4dW5sb2FkAHJlYWQAYXJyb3doZWFkAGxoZWFkAHNhbWVoZWFkAGJveDNkACVzXyVkAF9zcGFuXyVkAF9ibG9ja18lZABfd2Vha18lZABfY2xvbmVfJWQALiVkACVZLSVtLSVkACVsZiwlZAAlcyBpbiBsaW5lICVkACUlJSVCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQAIl9zdWJncmFwaF9jbnQiOiAlZAAiX2d2aWQiOiAlZAAiaGVhZCI6ICVkAGFneGJwdXRjAHZwc2MAY3AtPnNyYwB1Y2lyYwBvY2lyYwBpY2lyYwBlY2lyYwBhY2lyYwBVY2lyYwBPY2lyYwBJY2lyYwBFY2lyYwBBY2lyYwBsYWJlbGxvYwBndl9yZWNhbGxvYwBzdGQ6OmJhZF9hbGxvYwBiYWtlcnNjaG9jAHNlbWlTd2VldENob2MAb2JqbGlzdF9zeW5jAGRlZ2xpc3Rfc3luYwBub2RlbGlzdF9zeW5jAGNsaXN0X3N5bmMAbm9kZV9saXN0X3N5bmMAZWRnZV9zZXRfc3luYwBwb2ludHNfc3luYwBzdHJzX3N5bmMAQWdyYXBoc19zeW5jAGJveGVzX3N5bmMAbGF5ZXJfbmFtZXNfc3luYwBzbm9kZXNfc3luYwB2YXJhcnJfc3luYwBiZXppZXJfcGF0aF9zeW5jAHBic19zaXplX3N5bmMAbWMAU3BhcnNlTWF0cml4X2lzX3N5bW1ldHJpYwBBLT5pc19wYXR0ZXJuX3N5bW1ldHJpYwBwaWM6cGljAGl0YWxpYwBCb29rbWFuLUxpZ2h0SXRhbGljAFphcGZDaGFuY2VyeS1NZWRpdW1JdGFsaWMAQm9va21hbi1EZW1pSXRhbGljAFRpbWVzLUJvbGRJdGFsaWMAUGFsYXRpbm8tQm9sZEl0YWxpYwBOZXdDZW50dXJ5U2NobGJrLUJvbGRJdGFsaWMAVGltZXMtSXRhbGljAFBhbGF0aW5vLUl0YWxpYwBOZXdDZW50dXJ5U2NobGJrLUl0YWxpYwByYWRpYwAjZmNmY2ZjAHJvdXRlc3BsaW5lczogJWQgZWRnZXMsICV6dSBib3hlcyAlLjJmIHNlYwA6ICUuMmYgc2VjAGxpc3RkZWxyZWMAbGV2ZWwgZ3JhcGggcmVjAGxldmVsIGVkZ2UgcmVjAGxldmVsIG5vZGUgcmVjAERlYwBfbmVhdG9fY2MAYmMAdmlzaWJpbGl0eS5jAFNwYXJzZU1hdHJpeC5jAGh0bWxsZXguYwBpbmRleC5jAHNtYXJ0X2luaV94LmMAZ3ZyZW5kZXJfY29yZV9wb3YuYwBjdnQuYwBsYXlvdXQuYwB0ZXh0c3Bhbl9sdXQuYwBhZGp1c3QuYwBub2RlbGlzdC5jAHNob3J0ZXN0LmMAY2xvc2VzdC5jAHNhbWVwb3J0LmMAZ3ZyZW5kZXJfY29yZV9kb3QuYwBjb25zdHJhaW50LmMAZG90aW5pdC5jAG5lYXRvaW5pdC5jAHBhdGNod29ya2luaXQuYwBvc2FnZWluaXQuYwBlbWl0LmMAZmxhdC5jAGFycm93cy5jAG1pbmNyb3NzLmMAc3RyZXNzLmMAcG9zdF9wcm9jZXNzLmMAY2NvbXBzLmMAbnMuYwB1dGlscy5jAHhsYWJlbHMuYwBzaGFwZXMuYwBkb3RzcGxpbmVzLmMAbmVhdG9zcGxpbmVzLmMAY2x1c3RlcmVkZ2VzLmMAaGVkZ2VzLmMAYXR0ci5jAHJlZnN0ci5jAGZhc3Rnci5jAGNsdXN0ZXIuYwB0YXBlci5jAGd2cmVuZGVyLmMAc3BsaXQucS5jAGRlY29tcC5jAGd2cmVuZGVyX2NvcmVfbWFwLmMAb3J0aG8uYwBndnJlbmRlcl9jb3JlX2pzb24uYwBwYXJ0aXRpb24uYwBwb3NpdGlvbi5jAGd2cGx1Z2luLmMAZ3ZfZm9wZW4uYwB0ZXh0c3Bhbi5jAGdlb20uYwByYW5kb20uYwByb3V0ZXNwbC5jAHhtbC5jAE11bHRpbGV2ZWwuYwBzcHJpbmdfZWxlY3RyaWNhbC5jAGd2cmVuZGVyX2NvcmVfdGsuYwByYW5rLmMAcGFjay5jAGJsb2NrcGF0aC5jAGR0c3RyaGFzaC5jAHJhd2dyYXBoLmMAZ3ZyZW5kZXJfY29yZV9zdmcuYwBndnJlbmRlcl9jb3JlX2ZpZy5jAHN0dWZmLmMAbWF6ZS5jAHF1YWRfcHJvZ19zb2x2ZS5jAHNwYXJzZV9zb2x2ZS5jAHJvdXRlLmMAd3JpdGUuYwBjb2x4bGF0ZS5jAHhtbHBhcnNlLmMAZWxsaXBzZS5jAGd2bG9hZGltYWdlX2NvcmUuYwBndnVzZXJzaGFwZS5jAGNpcmNsZS5jAGh0bWx0YWJsZS5jAGVkZ2UuYwBndmxvYWRpbWFnZS5jAGJsb2NrdHJlZS5jAFF1YWRUcmVlLmMAbm9kZS5jAG5vZGVfaW5kdWNlLmMAZ3ZkZXZpY2UuYwBjb21wb3VuZC5jAHRyYXBlem9pZC5jAHNnZC5jAGNvbmMuYwByZWMuYwBkaWprc3RyYS5jAGZQUS5jAGNsYXNzMi5jACVsZiwlbGYsJWxmLCVsZiVjACVsZiwlbGYsJWxmLCVbXixdJWMAXCVjACRjAHdiAG5zdWIAc2V0aHNiAHJiAHByb3RlY3RfcnNxYgBqb2IAY29yZV9sb2FkaW1hZ2VfcHNsaWIARmViAG9kYgBpbml0X3NwbGluZXNfYmIAYmV6aWVyX2JiAHByb3RlaW5zdGFiAHJuYXN0YWIAL3N2Zy9vbGl2ZWRyYWIAXGIAcndhAC9zdmcvYXF1YQBpb3RhAElvdGEAL3N2Zy9kYXJrbWFnZW50YQAvc3ZnL21hZ2VudGEAZGVsdGEARGVsdGEAemV0YQB0aGV0YQBUaGV0YQBiZXRhAFpldGEAQmV0YQBwcmV2ICE9IG9iai0+ZGF0YQBtYWtlR3JhcGhEYXRhAEV0YQBuaW1idXNzYW5zYQBwYXJhAGthcHBhAEthcHBhAC9zdmcvc2llbm5hAFZlcmRhbmEAZ2FtbWEAR2FtbWEAc2lnbWEAU2lnbWEAY29uc29sYQBuYWJsYQAvc3ZnL2Z1Y2hzaWEAR2VvcmdpYQBhbHBoYQBBbHBoYQBvbWVnYQBPbWVnYQBhcmVhAGxhbWJkYQBMYW1iZGEAaGVsdmV0aWNhAEhlbHZldGljYQBtaWNhAD48YQBgAF90ZHJhd18AX3RsZHJhd18AX2hsZHJhd18AX2xkcmF3XwBfaGRyYXdfAF9kcmF3XwBhZ3hzZXRfAGRvdF9zcGxpbmVzXwAlc18AcGFnZSVkLCVkXwBfY2NfACBpZD0iYV8AXgBTdGFydGluZyBwaGFzZSAyIFtkb3RfbWluY3Jvc3NdAFN0YXJ0aW5nIHBoYXNlIDMgW2RvdF9wb3NpdGlvbl0Abl9lZGdlcyA9PSBncmFwaC0+c291cmNlc1tncmFwaC0+bl0AU3RhcnRpbmcgcGhhc2UgMSBbZG90X3JhbmtdAGpkW21hc2tbamNba11dXSA9PSBqY1trXQBqY1ttYXNrW2piW2tdXV0gPT0gamJba10AbmVlZGxlW2ldICE9IG5lZWRsZVtqXQBqYVttYXNrW2phW2pdXV0gPT0gamFbal0AcS0+cXRzW2lpXQAhcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLnRha2VuW2ldAHIuYm91bmRhcnlbaV0gPD0gci5ib3VuZGFyeVtOVU1ESU1TICsgaV0AWyUuMDNmLCUuMDNmXQBbaW50ZXJuYWwgaGFyZC1jb2RlZF0AbnAtPmNlbGxzWzFdAG5wLT5jZWxsc1swXQB1cy0+bmFtZVswXQBjcC0+c3JjWzBdAFsuLl0AXFwAInBvaW50cyI6IFsAInN0b3BzIjogWwAJWwBaAGNvbXB1dGVTY2FsZVhZAHk8PVkAJWEgJWIgJWQgJUg6JU06JVMgJVkAUE9TSVgAeSA+PSBJTlRfTUlOICYmIHkgPD0gSU5UX01BWAB4ID49IElOVF9NSU4gJiYgeCA8PSBJTlRfTUFYAHcgPj0gMCAmJiB3IDw9IElOVF9NQVgAZV9jbnQgPD0gSU5UX01BWABwYWlyLnJpZ2h0IDw9IElOVF9NQVgAcGFpci5sZWZ0IDw9IElOVF9NQVgAdGFyZ2V0IDw9IElOVF9NQVgAbnNlZ3MgPD0gSU5UX01BWABuX2VkZ2VzIDw9IElOVF9NQVgAc3RwLm52ZXJ0aWNlcyA8PSBJTlRfTUFYAG9ic1twb2x5X2ldLT5wbiA8PSBJTlRfTUFYAGlucHV0X3JvdXRlLnBuIDw9IElOVF9NQVgAZ3JhcGgtPm4gPD0gSU5UX01BWABoID49IDAgJiYgaCA8PSBJTlRfTUFYAGVfY250IC0gMSA8PSBJTlRfTUFYAGNsaXN0X3NpemUoJmxpc3QpIC0gMSA8PSBJTlRfTUFYAGxheWVyX25hbWVzX3NpemUoJmxheWVySURzKSAtIDEgPD0gSU5UX01BWABzdHJsZW4oYXJncykgPD0gSU5UX01BWABvYmpsaXN0X3NpemUoJm9iamwpIDw9IElOVF9NQVgAZWRnZV9saXN0X3NpemUoJmN0eC0+VHJlZV9lZGdlKSA8PSBJTlRfTUFYAG5vZGVfc2V0X3NpemUoZy0+bl9pZCkgPD0gSU5UX01BWABpIDwgSU5UX01BWAByZXN1bHQgPD0gKGludClVQ0hBUl9NQVgAc3N6IDw9IFVDSEFSX01BWABjb2wgPj0gMCAmJiBjb2wgPD0gVUlOVDE2X01BWAB4PD1YAFcAVgBVAFxUAFRFWFQAU1RSRVNTX01BSk9SSVpBVElPTl9QT1dFUl9ESVNUAFNUUkVTU19NQUpPUklaQVRJT05fR1JBUEhfRElTVABTVFJFU1NfTUFKT1JJWkFUSU9OX0FWR19ESVNUAEZBU1QARk9OVABiID09IEJfUklHSFQASEVJR0hUAEJfTEVGVABfJWxsdV9TVVNQRUNUAEJUAFRyZWJ1Y2hldCBNUwBJTlZJUwAlSDolTTolUwBWUgBUUgBBLT5mb3JtYXQgPT0gQi0+Zm9ybWF0ICYmIEEtPmZvcm1hdCA9PSBGT1JNQVRfQ1NSAExSAERJUgBIUgBDRU5URVIAJSVUUkFJTEVSAEEtPnR5cGUgPT0gTUFUUklYX1RZUEVfUkVBTCB8fCBBLT50eXBlID09IE1BVFJJWF9UWVBFX0lOVEVHRVIAQ0VMTEJPUkRFUgBCUgAqUgBRAEVYUABCX1VQAFNVUABUT1AATwBtYXBOAFxOAEJfRE9XTgBUSE9STgAlJUJFR0lOAFJPV1NQQU4AQ09MU1BBTgBOQU4AUE0AQk9UVE9NAEJNAEFNACVIOiVNAFxMAHRhaWxVUkwAbGFiZWxVUkwAZWRnZVVSTABoZWFkVVJMAEhUTUwAeCE9TlVMTABFRF90b192aXJ0KG9yaWcpID09IE5VTEwARURfdG9fdmlydChlKSA9PSBOVUxMAHByZWZpeCAhPSBOVUxMAGR0ZC0+c2NhZmZJbmRleCAhPSBOVUxMAHNtLT5MdyAhPSBOVUxMAGlucHV0ICE9IE5VTEwAbGlzdCAhPSBOVUxMAHJlZmVyZW50ICE9IE5VTEwAZGljdCAhPSBOVUxMAGRpY3QtPmJ1Y2tldHMgIT0gTlVMTABhdHRyICE9IE5VTEwAbGVhZGVyICE9IE5VTEwAaXRlbSAhPSBOVUxMAGhheXN0YWNrICE9IE5VTEwAb3J0aG9nICE9IE5VTEwAc2VsZiAhPSBOVUxMAHZhbHVlICE9IE5VTEwAZmlsZW5hbWUgIT0gTlVMTABqb2ItPm91dHB1dF9maWxlICE9IE5VTEwAbW9kZSAhPSBOVUxMAHNvdXJjZSAhPSBOVUxMAHhkICE9IE5VTEwAc20tPkx3ZCAhPSBOVUxMAGpvYiAhPSBOVUxMAHNvdXJjZS5kYXRhICE9IE5VTEwAYi5kYXRhICE9IE5VTEwAYS5kYXRhICE9IE5VTEwAbGlzdCAmJiBsaXN0WzBdICE9IE5VTEwAQUYgIT0gTlVMTABzbS0+RCAhPSBOVUxMAEVEX3RvX3ZpcnQob3JpZykgIT0gTlVMTABMQ19BTEwAQkwAYmVzdGNvc3QgPCBIVUdFX1ZBTABOT1JNQUwAUkFESUFMAEEtPnR5cGUgPT0gTUFUUklYX1RZUEVfUkVBTABVUlcgQ2hhbmNlcnkgTABVUlcgQm9va21hbiBMAENlbnR1cnkgU2Nob29sYm9vayBMAFVSVyBHb3RoaWMgTABLSwBKAGkgPCBNQVhfSQBQLT5lbmQudGhldGEgPCAyICogTV9QSQBBU0NJSQBcSABFVEgAV0lEVEgARE9URk9OVFBBVEgAR0RGT05UUEFUSABta05Db25zdHJhaW50RwBcRwBFWFBBVF9FTlRJVFlfREVCVUcARVhQQVRfRU5UUk9QWV9ERUJVRwBFWFBBVF9BQ0NPVU5USU5HX0RFQlVHAFJORwBTUFJJTkcAQ0VMTFBBRERJTkcAQ0VMTFNQQUNJTkcATEFORwBJTUcAXHhGACUlRU9GAElORgBceEZGAFJJRkYAZGVsdGEgPD0gMHhGRkZGAFx4RUYAXHhERgBceENGAFx4QkYAXHhBRgBceDlGAFx4OEYAXHg3RgBceDFGAFx4RQBcRQBQT0lOVC1TSVpFAFRSVUUAQ0xPU0UARkFMU0UAa2V5ICE9IFRPTUJTVE9ORQByICE9IFRPTUJTVE9ORQBraW5kID09IExUX05PTkUAR1JBRElFTlRBTkdMRQBUUklBTkdMRQBNSURETEUASU5WSVNJQkxFAFRBQkxFAEFHVFlQRShvYmopID09IEFHSU5FREdFIHx8IEFHVFlQRShvYmopID09IEFHT1VURURHRQBceEZFAFx4RUUAXHhERQBCX05PREUAXHhDRQBceEJFAFx4QUUAXHg5RQBceDhFAFx4MUUAVEQAQS0+Zm9ybWF0ID09IEZPUk1BVF9DT09SRABuICYmIGkgPj0gMCAmJiBpIDwgTk9ERUNBUkQAJSVFTkQASFlCUklEAFNPTElEAFx4RkQAXHhFRABET1RURUQAREFTSEVEAFJPVU5ERUQAXHhERABceENEAFx4QkQAXHhBRABceDlEAFx4OEQAXHgxRABceEMAZGVsZXRlVlBTQwBceEZDAFx4RUMAXHhEQwBceENDAFx4QkMAXHhBQwBceDlDAFx4OEMAXHgxQwBceEIAU1VCAFx4RkIAXHhFQgBceERCAFx4Q0IAXHhCQgBceEFCAFx4OUIAXHg4QgBceDFCAEEgJiYgQgBceEZBAFx4RUEAXHhEQQBceENBAFx4QkEAXHhBQQBceDlBAFx4OEEAXHgxQQBAAD8APCVzPgA8bmlsPgA8L3RzcGFuPjwvdGV4dFBhdGg+AAogICAgPCU5LjNmLCAlOS4zZiwgJTkuM2Y+AD4KPHRpdGxlPgA8Rk9OVD4APEJSPgA8SFRNTD4APC9IVE1MPgA8SU1HPgBTeW50YXggZXJyb3I6IG5vbi1zcGFjZSBzdHJpbmcgdXNlZCBiZWZvcmUgPFRBQkxFPgBTeW50YXggZXJyb3I6IG5vbi1zcGFjZSBzdHJpbmcgdXNlZCBhZnRlciA8L1RBQkxFPgA8VEQ+AC0+ACI+AAlba2V5PQA8PQA8ACYjeCV4OwAmcXVvdDsAJmx0OwAmZ3Q7ACZhbXA7ACMlZDsAJiMzOTsAJiM0NTsAJiM5MzsAJiMxMzsAJiMxNjA7ACYjMTA7ADtzdG9wLW9wYWNpdHk6ACUlQm91bmRpbmdCb3g6AGNhbGN1bGF0aW5nIHNob3J0ZXN0IHBhdGhzIGFuZCBzZXR0aW5nIHVwIHN0cmVzcyB0ZXJtczoAPHN0b3Agb2Zmc2V0PSIlLjAzZiIgc3R5bGU9InN0b3AtY29sb3I6ADxzdG9wIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6ADxzdG9wIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6AHNvbHZpbmcgbW9kZWw6AC9cOgBncmV5OQBncmF5OQBceEY5AFx4RTkAXHhEOQBceEM5AFx4QjkAXHhBOQBncmV5OTkAZ3JheTk5AFx4OTkAZ3JleTg5AGdyYXk4OQBceDg5ADAxMjM0NTY3ODkAZ3JleTc5AGdyYXk3OQBncmV5NjkAZ3JheTY5AGdyZXk1OQBncmF5NTkAZ3JleTQ5AGdyYXk0OQBncmV5MzkAZ3JheTM5AGdyZXkyOQBncmF5MjkAZ3JleTE5AGdyYXkxOQBceDE5AC9yZGd5OS85AC9idXB1OS85AC9yZHB1OS85AC9wdWJ1OS85AC95bGduYnU5LzkAL2duYnU5LzkAL3JkeWxidTkvOQAvcmRidTkvOQAvZ3JleXM5LzkAL2dyZWVuczkvOQAvYmx1ZXM5LzkAL3B1cnBsZXM5LzkAL29yYW5nZXM5LzkAL3JlZHM5LzkAL3B1b3I5LzkAL3lsb3JicjkvOQAvcHVidWduOS85AC9idWduOS85AC9wcmduOS85AC9yZHlsZ245LzkAL3lsZ245LzkAL3NwZWN0cmFsOS85AC9waXlnOS85AC9icmJnOS85AC9wdXJkOS85AC95bG9ycmQ5LzkAL29ycmQ5LzkAL3BhaXJlZDkvOQAvc2V0MzkvOQAvc2V0MTkvOQAvcGFzdGVsMTkvOQAvcGFpcmVkMTIvOQAvc2V0MzEyLzkAL3JkZ3kxMS85AC9yZHlsYnUxMS85AC9yZGJ1MTEvOQAvcHVvcjExLzkAL3ByZ24xMS85AC9yZHlsZ24xMS85AC9zcGVjdHJhbDExLzkAL3BpeWcxMS85AC9icmJnMTEvOQAvcGFpcmVkMTEvOQAvc2V0MzExLzkAL3JkZ3kxMC85AC9yZHlsYnUxMC85AC9yZGJ1MTAvOQAvcHVvcjEwLzkAL3ByZ24xMC85AC9yZHlsZ24xMC85AC9zcGVjdHJhbDEwLzkAL3BpeWcxMC85AC9icmJnMTAvOQAvcGFpcmVkMTAvOQAvc2V0MzEwLzkAZ3JleTgAZ3JheTgAXHg4AHV0ZjgAI2Y4ZjhmOAAjZThlOGU4AFx4RjgAR0lGOABceEU4AFx4RDgAXHhDOABceEI4AFx4QTgAZ3JleTk4AGdyYXk5OABceDk4AGdyZXk4OABncmF5ODgAXHg4OABncmV5NzgAZ3JheTc4AGdyZXk2OABncmF5NjgAZ3JleTU4AGdyYXk1OABncmV5NDgAZ3JheTQ4AGdyZXkzOABncmF5MzgAZ3JleTI4AGdyYXkyOABncmV5MTgAZ3JheTE4AFx4MTgAL3JkZ3k5LzgAL2J1cHU5LzgAL3JkcHU5LzgAL3B1YnU5LzgAL3lsZ25idTkvOAAvZ25idTkvOAAvcmR5bGJ1OS84AC9yZGJ1OS84AC9ncmV5czkvOAAvZ3JlZW5zOS84AC9ibHVlczkvOAAvcHVycGxlczkvOAAvb3JhbmdlczkvOAAvcmVkczkvOAAvcHVvcjkvOAAveWxvcmJyOS84AC9wdWJ1Z245LzgAL2J1Z245LzgAL3ByZ245LzgAL3JkeWxnbjkvOAAveWxnbjkvOAAvc3BlY3RyYWw5LzgAL3BpeWc5LzgAL2JyYmc5LzgAL3B1cmQ5LzgAL3lsb3JyZDkvOAAvb3JyZDkvOAAvcGFpcmVkOS84AC9zZXQzOS84AC9zZXQxOS84AC9wYXN0ZWwxOS84AC9yZGd5OC84AC9idXB1OC84AC9yZHB1OC84AC9wdWJ1OC84AC95bGduYnU4LzgAL2duYnU4LzgAL3JkeWxidTgvOAAvcmRidTgvOAAvYWNjZW50OC84AC9ncmV5czgvOAAvZ3JlZW5zOC84AC9ibHVlczgvOAAvcHVycGxlczgvOAAvb3JhbmdlczgvOAAvcmVkczgvOAAvcHVvcjgvOAAveWxvcmJyOC84AC9wdWJ1Z244LzgAL2J1Z244LzgAL3ByZ244LzgAL3JkeWxnbjgvOAAveWxnbjgvOAAvc3BlY3RyYWw4LzgAL3BpeWc4LzgAL2JyYmc4LzgAL3B1cmQ4LzgAL3lsb3JyZDgvOAAvb3JyZDgvOAAvcGFpcmVkOC84AC9zZXQzOC84AC9zZXQyOC84AC9wYXN0ZWwyOC84AC9kYXJrMjgvOAAvc2V0MTgvOAAvcGFzdGVsMTgvOAAvcGFpcmVkMTIvOAAvc2V0MzEyLzgAL3JkZ3kxMS84AC9yZHlsYnUxMS84AC9yZGJ1MTEvOAAvcHVvcjExLzgAL3ByZ24xMS84AC9yZHlsZ24xMS84AC9zcGVjdHJhbDExLzgAL3BpeWcxMS84AC9icmJnMTEvOAAvcGFpcmVkMTEvOAAvc2V0MzExLzgAL3JkZ3kxMC84AC9yZHlsYnUxMC84AC9yZGJ1MTAvOAAvcHVvcjEwLzgAL3ByZ24xMC84AC9yZHlsZ24xMC84AC9zcGVjdHJhbDEwLzgAL3BpeWcxMC84AC9icmJnMTAvOAAvcGFpcmVkMTAvOAAvc2V0MzEwLzgAdXRmLTgAQy5VVEYtOABncmV5NwBncmF5NwBceDcAXHhGNwBceEU3AFx4RDcAXHhDNwBceEI3AFx4QTcAZ3JleTk3AGdyYXk5NwBceDk3AGdyZXk4NwBncmF5ODcAXHg4NwBncmV5NzcAZ3JheTc3AGdyZXk2NwBncmF5NjcAZ3JleTU3AGdyYXk1NwBncmV5NDcAZ3JheTQ3AGdyZXkzNwBncmF5MzcAZ3JleTI3AGdyYXkyNwBncmV5MTcAZ3JheTE3AFx4MTcAL3JkZ3k5LzcAL2J1cHU5LzcAL3JkcHU5LzcAL3B1YnU5LzcAL3lsZ25idTkvNwAvZ25idTkvNwAvcmR5bGJ1OS83AC9yZGJ1OS83AC9ncmV5czkvNwAvZ3JlZW5zOS83AC9ibHVlczkvNwAvcHVycGxlczkvNwAvb3JhbmdlczkvNwAvcmVkczkvNwAvcHVvcjkvNwAveWxvcmJyOS83AC9wdWJ1Z245LzcAL2J1Z245LzcAL3ByZ245LzcAL3JkeWxnbjkvNwAveWxnbjkvNwAvc3BlY3RyYWw5LzcAL3BpeWc5LzcAL2JyYmc5LzcAL3B1cmQ5LzcAL3lsb3JyZDkvNwAvb3JyZDkvNwAvcGFpcmVkOS83AC9zZXQzOS83AC9zZXQxOS83AC9wYXN0ZWwxOS83AC9yZGd5OC83AC9idXB1OC83AC9yZHB1OC83AC9wdWJ1OC83AC95bGduYnU4LzcAL2duYnU4LzcAL3JkeWxidTgvNwAvcmRidTgvNwAvYWNjZW50OC83AC9ncmV5czgvNwAvZ3JlZW5zOC83AC9ibHVlczgvNwAvcHVycGxlczgvNwAvb3JhbmdlczgvNwAvcmVkczgvNwAvcHVvcjgvNwAveWxvcmJyOC83AC9wdWJ1Z244LzcAL2J1Z244LzcAL3ByZ244LzcAL3JkeWxnbjgvNwAveWxnbjgvNwAvc3BlY3RyYWw4LzcAL3BpeWc4LzcAL2JyYmc4LzcAL3B1cmQ4LzcAL3lsb3JyZDgvNwAvb3JyZDgvNwAvcGFpcmVkOC83AC9zZXQzOC83AC9zZXQyOC83AC9wYXN0ZWwyOC83AC9kYXJrMjgvNwAvc2V0MTgvNwAvcGFzdGVsMTgvNwAvcmRneTcvNwAvYnVwdTcvNwAvcmRwdTcvNwAvcHVidTcvNwAveWxnbmJ1Ny83AC9nbmJ1Ny83AC9yZHlsYnU3LzcAL3JkYnU3LzcAL2FjY2VudDcvNwAvZ3JleXM3LzcAL2dyZWVuczcvNwAvYmx1ZXM3LzcAL3B1cnBsZXM3LzcAL29yYW5nZXM3LzcAL3JlZHM3LzcAL3B1b3I3LzcAL3lsb3JicjcvNwAvcHVidWduNy83AC9idWduNy83AC9wcmduNy83AC9yZHlsZ243LzcAL3lsZ243LzcAL3NwZWN0cmFsNy83AC9waXlnNy83AC9icmJnNy83AC9wdXJkNy83AC95bG9ycmQ3LzcAL29ycmQ3LzcAL3BhaXJlZDcvNwAvc2V0MzcvNwAvc2V0MjcvNwAvcGFzdGVsMjcvNwAvZGFyazI3LzcAL3NldDE3LzcAL3Bhc3RlbDE3LzcAL3BhaXJlZDEyLzcAL3NldDMxMi83AC9yZGd5MTEvNwAvcmR5bGJ1MTEvNwAvcmRidTExLzcAL3B1b3IxMS83AC9wcmduMTEvNwAvcmR5bGduMTEvNwAvc3BlY3RyYWwxMS83AC9waXlnMTEvNwAvYnJiZzExLzcAL3BhaXJlZDExLzcAL3NldDMxMS83AC9yZGd5MTAvNwAvcmR5bGJ1MTAvNwAvcmRidTEwLzcAL3B1b3IxMC83AC9wcmduMTAvNwAvcmR5bGduMTAvNwAvc3BlY3RyYWwxMC83AC9waXlnMTAvNwAvYnJiZzEwLzcAL3BhaXJlZDEwLzcAL3NldDMxMC83ADEuNwBncmV5NgBncmF5NgBceDYAXHhGNgBceEU2AFx4RDYAXHhDNgBceEI2AFx4QTYAZ3JleTk2AGdyYXk5NgBceDk2AGdyZXk4NgBncmF5ODYAXHg4NgBncmV5NzYAZ3JheTc2AGdyZXk2NgBncmF5NjYAZ3JleTU2AGdyYXk1NgBncmV5NDYAZ3JheTQ2AGdyZXkzNgBncmF5MzYAZ3JleTI2AGdyYXkyNgBncmV5MTYAZ3JheTE2AFx4MTYAL3JkZ3k5LzYAL2J1cHU5LzYAL3JkcHU5LzYAL3B1YnU5LzYAL3lsZ25idTkvNgAvZ25idTkvNgAvcmR5bGJ1OS82AC9yZGJ1OS82AC9ncmV5czkvNgAvZ3JlZW5zOS82AC9ibHVlczkvNgAvcHVycGxlczkvNgAvb3JhbmdlczkvNgAvcmVkczkvNgAvcHVvcjkvNgAveWxvcmJyOS82AC9wdWJ1Z245LzYAL2J1Z245LzYAL3ByZ245LzYAL3JkeWxnbjkvNgAveWxnbjkvNgAvc3BlY3RyYWw5LzYAL3BpeWc5LzYAL2JyYmc5LzYAL3B1cmQ5LzYAL3lsb3JyZDkvNgAvb3JyZDkvNgAvcGFpcmVkOS82AC9zZXQzOS82AC9zZXQxOS82AC9wYXN0ZWwxOS82AC9yZGd5OC82AC9idXB1OC82AC9yZHB1OC82AC9wdWJ1OC82AC95bGduYnU4LzYAL2duYnU4LzYAL3JkeWxidTgvNgAvcmRidTgvNgAvYWNjZW50OC82AC9ncmV5czgvNgAvZ3JlZW5zOC82AC9ibHVlczgvNgAvcHVycGxlczgvNgAvb3JhbmdlczgvNgAvcmVkczgvNgAvcHVvcjgvNgAveWxvcmJyOC82AC9wdWJ1Z244LzYAL2J1Z244LzYAL3ByZ244LzYAL3JkeWxnbjgvNgAveWxnbjgvNgAvc3BlY3RyYWw4LzYAL3BpeWc4LzYAL2JyYmc4LzYAL3B1cmQ4LzYAL3lsb3JyZDgvNgAvb3JyZDgvNgAvcGFpcmVkOC82AC9zZXQzOC82AC9zZXQyOC82AC9wYXN0ZWwyOC82AC9kYXJrMjgvNgAvc2V0MTgvNgAvcGFzdGVsMTgvNgAvcmRneTcvNgAvYnVwdTcvNgAvcmRwdTcvNgAvcHVidTcvNgAveWxnbmJ1Ny82AC9nbmJ1Ny82AC9yZHlsYnU3LzYAL3JkYnU3LzYAL2FjY2VudDcvNgAvZ3JleXM3LzYAL2dyZWVuczcvNgAvYmx1ZXM3LzYAL3B1cnBsZXM3LzYAL29yYW5nZXM3LzYAL3JlZHM3LzYAL3B1b3I3LzYAL3lsb3JicjcvNgAvcHVidWduNy82AC9idWduNy82AC9wcmduNy82AC9yZHlsZ243LzYAL3lsZ243LzYAL3NwZWN0cmFsNy82AC9waXlnNy82AC9icmJnNy82AC9wdXJkNy82AC95bG9ycmQ3LzYAL29ycmQ3LzYAL3BhaXJlZDcvNgAvc2V0MzcvNgAvc2V0MjcvNgAvcGFzdGVsMjcvNgAvZGFyazI3LzYAL3NldDE3LzYAL3Bhc3RlbDE3LzYAL3JkZ3k2LzYAL2J1cHU2LzYAL3JkcHU2LzYAL3B1YnU2LzYAL3lsZ25idTYvNgAvZ25idTYvNgAvcmR5bGJ1Ni82AC9yZGJ1Ni82AC9hY2NlbnQ2LzYAL2dyZXlzNi82AC9ncmVlbnM2LzYAL2JsdWVzNi82AC9wdXJwbGVzNi82AC9vcmFuZ2VzNi82AC9yZWRzNi82AC9wdW9yNi82AC95bG9yYnI2LzYAL3B1YnVnbjYvNgAvYnVnbjYvNgAvcHJnbjYvNgAvcmR5bGduNi82AC95bGduNi82AC9zcGVjdHJhbDYvNgAvcGl5ZzYvNgAvYnJiZzYvNgAvcHVyZDYvNgAveWxvcnJkNi82AC9vcnJkNi82AC9wYWlyZWQ2LzYAL3NldDM2LzYAL3NldDI2LzYAL3Bhc3RlbDI2LzYAL2RhcmsyNi82AC9zZXQxNi82AC9wYXN0ZWwxNi82AC9wYWlyZWQxMi82AC9zZXQzMTIvNgAvcmRneTExLzYAL3JkeWxidTExLzYAL3JkYnUxMS82AC9wdW9yMTEvNgAvcHJnbjExLzYAL3JkeWxnbjExLzYAL3NwZWN0cmFsMTEvNgAvcGl5ZzExLzYAL2JyYmcxMS82AC9wYWlyZWQxMS82AC9zZXQzMTEvNgAvcmRneTEwLzYAL3JkeWxidTEwLzYAL3JkYnUxMC82AC9wdW9yMTAvNgAvcHJnbjEwLzYAL3JkeWxnbjEwLzYAL3NwZWN0cmFsMTAvNgAvcGl5ZzEwLzYAL2JyYmcxMC82AC9wYWlyZWQxMC82AC9zZXQzMTAvNgBncmV5NQBncmF5NQBceDUAYmlnNQBceEY1AFx4RTUAXHhENQBceEM1AFx4QjUAXHhBNQBncmV5OTUAZ3JheTk1AFx4OTUAZ3JleTg1AGdyYXk4NQBceDg1AGdyZXk3NQBncmF5NzUAZ3JleTY1AGdyYXk2NQBncmV5NTUAZ3JheTU1AGdyZXk0NQBncmF5NDUAZ3JleTM1AGdyYXkzNQBncmV5MjUAZ3JheTI1AGdyZXkxNQBncmF5MTUAXHgxNQBncmF5MDUAL3JkZ3k5LzUAL2J1cHU5LzUAL3JkcHU5LzUAL3B1YnU5LzUAL3lsZ25idTkvNQAvZ25idTkvNQAvcmR5bGJ1OS81AC9yZGJ1OS81AC9ncmV5czkvNQAvZ3JlZW5zOS81AC9ibHVlczkvNQAvcHVycGxlczkvNQAvb3JhbmdlczkvNQAvcmVkczkvNQAvcHVvcjkvNQAveWxvcmJyOS81AC9wdWJ1Z245LzUAL2J1Z245LzUAL3ByZ245LzUAL3JkeWxnbjkvNQAveWxnbjkvNQAvc3BlY3RyYWw5LzUAL3BpeWc5LzUAL2JyYmc5LzUAL3B1cmQ5LzUAL3lsb3JyZDkvNQAvb3JyZDkvNQAvcGFpcmVkOS81AC9zZXQzOS81AC9zZXQxOS81AC9wYXN0ZWwxOS81AC9yZGd5OC81AC9idXB1OC81AC9yZHB1OC81AC9wdWJ1OC81AC95bGduYnU4LzUAL2duYnU4LzUAL3JkeWxidTgvNQAvcmRidTgvNQAvYWNjZW50OC81AC9ncmV5czgvNQAvZ3JlZW5zOC81AC9ibHVlczgvNQAvcHVycGxlczgvNQAvb3JhbmdlczgvNQAvcmVkczgvNQAvcHVvcjgvNQAveWxvcmJyOC81AC9wdWJ1Z244LzUAL2J1Z244LzUAL3ByZ244LzUAL3JkeWxnbjgvNQAveWxnbjgvNQAvc3BlY3RyYWw4LzUAL3BpeWc4LzUAL2JyYmc4LzUAL3B1cmQ4LzUAL3lsb3JyZDgvNQAvb3JyZDgvNQAvcGFpcmVkOC81AC9zZXQzOC81AC9zZXQyOC81AC9wYXN0ZWwyOC81AC9kYXJrMjgvNQAvc2V0MTgvNQAvcGFzdGVsMTgvNQAvcmRneTcvNQAvYnVwdTcvNQAvcmRwdTcvNQAvcHVidTcvNQAveWxnbmJ1Ny81AC9nbmJ1Ny81AC9yZHlsYnU3LzUAL3JkYnU3LzUAL2FjY2VudDcvNQAvZ3JleXM3LzUAL2dyZWVuczcvNQAvYmx1ZXM3LzUAL3B1cnBsZXM3LzUAL29yYW5nZXM3LzUAL3JlZHM3LzUAL3B1b3I3LzUAL3lsb3JicjcvNQAvcHVidWduNy81AC9idWduNy81AC9wcmduNy81AC9yZHlsZ243LzUAL3lsZ243LzUAL3NwZWN0cmFsNy81AC9waXlnNy81AC9icmJnNy81AC9wdXJkNy81AC95bG9ycmQ3LzUAL29ycmQ3LzUAL3BhaXJlZDcvNQAvc2V0MzcvNQAvc2V0MjcvNQAvcGFzdGVsMjcvNQAvZGFyazI3LzUAL3NldDE3LzUAL3Bhc3RlbDE3LzUAL3JkZ3k2LzUAL2J1cHU2LzUAL3JkcHU2LzUAL3B1YnU2LzUAL3lsZ25idTYvNQAvZ25idTYvNQAvcmR5bGJ1Ni81AC9yZGJ1Ni81AC9hY2NlbnQ2LzUAL2dyZXlzNi81AC9ncmVlbnM2LzUAL2JsdWVzNi81AC9wdXJwbGVzNi81AC9vcmFuZ2VzNi81AC9yZWRzNi81AC9wdW9yNi81AC95bG9yYnI2LzUAL3B1YnVnbjYvNQAvYnVnbjYvNQAvcHJnbjYvNQAvcmR5bGduNi81AC95bGduNi81AC9zcGVjdHJhbDYvNQAvcGl5ZzYvNQAvYnJiZzYvNQAvcHVyZDYvNQAveWxvcnJkNi81AC9vcnJkNi81AC9wYWlyZWQ2LzUAL3NldDM2LzUAL3NldDI2LzUAL3Bhc3RlbDI2LzUAL2RhcmsyNi81AC9zZXQxNi81AC9wYXN0ZWwxNi81AC9yZGd5NS81AC9idXB1NS81AC9yZHB1NS81AC9wdWJ1NS81AC95bGduYnU1LzUAL2duYnU1LzUAL3JkeWxidTUvNQAvcmRidTUvNQAvYWNjZW50NS81AC9ncmV5czUvNQAvZ3JlZW5zNS81AC9ibHVlczUvNQAvcHVycGxlczUvNQAvb3JhbmdlczUvNQAvcmVkczUvNQAvcHVvcjUvNQAveWxvcmJyNS81AC9wdWJ1Z241LzUAL2J1Z241LzUAL3ByZ241LzUAL3JkeWxnbjUvNQAveWxnbjUvNQAvc3BlY3RyYWw1LzUAL3BpeWc1LzUAL2JyYmc1LzUAL3B1cmQ1LzUAL3lsb3JyZDUvNQAvb3JyZDUvNQAvcGFpcmVkNS81AC9zZXQzNS81AC9zZXQyNS81AC9wYXN0ZWwyNS81AC9kYXJrMjUvNQAvc2V0MTUvNQAvcGFzdGVsMTUvNQAvcGFpcmVkMTIvNQAvc2V0MzEyLzUAL3JkZ3kxMS81AC9yZHlsYnUxMS81AC9yZGJ1MTEvNQAvcHVvcjExLzUAL3ByZ24xMS81AC9yZHlsZ24xMS81AC9zcGVjdHJhbDExLzUAL3BpeWcxMS81AC9icmJnMTEvNQAvcGFpcmVkMTEvNQAvc2V0MzExLzUAL3JkZ3kxMC81AC9yZHlsYnUxMC81AC9yZGJ1MTAvNQAvcHVvcjEwLzUAL3ByZ24xMC81AC9yZHlsZ24xMC81AC9zcGVjdHJhbDEwLzUAL3BpeWcxMC81AC9icmJnMTAvNQAvcGFpcmVkMTAvNQAvc2V0MzEwLzUAYmlnLTUAQklHLTUAIC1kYXNoIDUAaXZvcnk0AGdyZXk0AGRhcmtzbGF0ZWdyYXk0AFx4NABzbm93NABsaWdodHllbGxvdzQAaG9uZXlkZXc0AHdoZWF0NAB0b21hdG80AHJvc3licm93bjQAbWFyb29uNABsaWdodHNhbG1vbjQAbGVtb25jaGlmZm9uNABzcHJpbmdncmVlbjQAZGFya29saXZlZ3JlZW40AHBhbGVncmVlbjQAZGFya3NlYWdyZWVuNABsaWdodGN5YW40AHRhbjQAcGx1bTQAc2Vhc2hlbGw0AGNvcmFsNABob3RwaW5rNABsaWdodHBpbms0AGRlZXBwaW5rNABjb3Juc2lsazQAZmlyZWJyaWNrNABraGFraTQAbGF2ZW5kZXJibHVzaDQAcGVhY2hwdWZmNABiaXNxdWU0AGxpZ2h0c2t5Ymx1ZTQAZGVlcHNreWJsdWU0AGxpZ2h0Ymx1ZTQAY2FkZXRibHVlNABkb2RnZXJibHVlNABsaWdodHN0ZWVsYmx1ZTQAcm95YWxibHVlNABzbGF0ZWJsdWU0AG5hdmFqb3doaXRlNABhbnRpcXVld2hpdGU0AGNob2NvbGF0ZTQAY2hhcnRyZXVzZTQAbWlzdHlyb3NlNABwYWxldHVycXVvaXNlNABhenVyZTQAdGhlcmU0AGFxdWFtYXJpbmU0AHRoaXN0bGU0AG1lZGl1bXB1cnBsZTQAZGFya29yYW5nZTQAbGlnaHRnb2xkZW5yb2Q0AGRhcmtnb2xkZW5yb2Q0AGJ1cmx5d29vZDQAZ29sZDQAbWVkaXVtb3JjaGlkNABkYXJrb3JjaGlkNABwYWxldmlvbGV0cmVkNABpbmRpYW5yZWQ0AG9yYW5nZXJlZDQAb2xpdmVkcmFiNABtYWdlbnRhNABzaWVubmE0AFx4RjQAXHhFNABceEQ0AFx4QzQAXHhCNABceEE0AGdyZXk5NABncmF5OTQAXHg5NABncmV5ODQAZ3JheTg0AFx4ODQAZ3JleTc0AGdyYXk3NABncmV5NjQAZ3JheTY0AGdyZXk1NABncmF5NTQAZ3JleTQ0AGdyYXk0NABncmV5MzQAZ3JheTM0AGZyYWMzNABncmV5MjQAZ3JheTI0AGdyZXkxNABncmF5MTQAXHgxNABmcmFjMTQAL3JkZ3k5LzQAL2J1cHU5LzQAL3JkcHU5LzQAL3B1YnU5LzQAL3lsZ25idTkvNAAvZ25idTkvNAAvcmR5bGJ1OS80AC9yZGJ1OS80AC9ncmV5czkvNAAvZ3JlZW5zOS80AC9ibHVlczkvNAAvcHVycGxlczkvNAAvb3JhbmdlczkvNAAvcmVkczkvNAAvcHVvcjkvNAAveWxvcmJyOS80AC9wdWJ1Z245LzQAL2J1Z245LzQAL3ByZ245LzQAL3JkeWxnbjkvNAAveWxnbjkvNAAvc3BlY3RyYWw5LzQAL3BpeWc5LzQAL2JyYmc5LzQAL3B1cmQ5LzQAL3lsb3JyZDkvNAAvb3JyZDkvNAAvcGFpcmVkOS80AC9zZXQzOS80AC9zZXQxOS80AC9wYXN0ZWwxOS80AC9yZGd5OC80AC9idXB1OC80AC9yZHB1OC80AC9wdWJ1OC80AC95bGduYnU4LzQAL2duYnU4LzQAL3JkeWxidTgvNAAvcmRidTgvNAAvYWNjZW50OC80AC9ncmV5czgvNAAvZ3JlZW5zOC80AC9ibHVlczgvNAAvcHVycGxlczgvNAAvb3JhbmdlczgvNAAvcmVkczgvNAAvcHVvcjgvNAAveWxvcmJyOC80AC9wdWJ1Z244LzQAL2J1Z244LzQAL3ByZ244LzQAL3JkeWxnbjgvNAAveWxnbjgvNAAvc3BlY3RyYWw4LzQAL3BpeWc4LzQAL2JyYmc4LzQAL3B1cmQ4LzQAL3lsb3JyZDgvNAAvb3JyZDgvNAAvcGFpcmVkOC80AC9zZXQzOC80AC9zZXQyOC80AC9wYXN0ZWwyOC80AC9kYXJrMjgvNAAvc2V0MTgvNAAvcGFzdGVsMTgvNAAvcmRneTcvNAAvYnVwdTcvNAAvcmRwdTcvNAAvcHVidTcvNAAveWxnbmJ1Ny80AC9nbmJ1Ny80AC9yZHlsYnU3LzQAL3JkYnU3LzQAL2FjY2VudDcvNAAvZ3JleXM3LzQAL2dyZWVuczcvNAAvYmx1ZXM3LzQAL3B1cnBsZXM3LzQAL29yYW5nZXM3LzQAL3JlZHM3LzQAL3B1b3I3LzQAL3lsb3JicjcvNAAvcHVidWduNy80AC9idWduNy80AC9wcmduNy80AC9yZHlsZ243LzQAL3lsZ243LzQAL3NwZWN0cmFsNy80AC9waXlnNy80AC9icmJnNy80AC9wdXJkNy80AC95bG9ycmQ3LzQAL29ycmQ3LzQAL3BhaXJlZDcvNAAvc2V0MzcvNAAvc2V0MjcvNAAvcGFzdGVsMjcvNAAvZGFyazI3LzQAL3NldDE3LzQAL3Bhc3RlbDE3LzQAL3JkZ3k2LzQAL2J1cHU2LzQAL3JkcHU2LzQAL3B1YnU2LzQAL3lsZ25idTYvNAAvZ25idTYvNAAvcmR5bGJ1Ni80AC9yZGJ1Ni80AC9hY2NlbnQ2LzQAL2dyZXlzNi80AC9ncmVlbnM2LzQAL2JsdWVzNi80AC9wdXJwbGVzNi80AC9vcmFuZ2VzNi80AC9yZWRzNi80AC9wdW9yNi80AC95bG9yYnI2LzQAL3B1YnVnbjYvNAAvYnVnbjYvNAAvcHJnbjYvNAAvcmR5bGduNi80AC95bGduNi80AC9zcGVjdHJhbDYvNAAvcGl5ZzYvNAAvYnJiZzYvNAAvcHVyZDYvNAAveWxvcnJkNi80AC9vcnJkNi80AC9wYWlyZWQ2LzQAL3NldDM2LzQAL3NldDI2LzQAL3Bhc3RlbDI2LzQAL2RhcmsyNi80AC9zZXQxNi80AC9wYXN0ZWwxNi80AC9yZGd5NS80AC9idXB1NS80AC9yZHB1NS80AC9wdWJ1NS80AC95bGduYnU1LzQAL2duYnU1LzQAL3JkeWxidTUvNAAvcmRidTUvNAAvYWNjZW50NS80AC9ncmV5czUvNAAvZ3JlZW5zNS80AC9ibHVlczUvNAAvcHVycGxlczUvNAAvb3JhbmdlczUvNAAvcmVkczUvNAAvcHVvcjUvNAAveWxvcmJyNS80AC9wdWJ1Z241LzQAL2J1Z241LzQAL3ByZ241LzQAL3JkeWxnbjUvNAAveWxnbjUvNAAvc3BlY3RyYWw1LzQAL3BpeWc1LzQAL2JyYmc1LzQAL3B1cmQ1LzQAL3lsb3JyZDUvNAAvb3JyZDUvNAAvcGFpcmVkNS80AC9zZXQzNS80AC9zZXQyNS80AC9wYXN0ZWwyNS80AC9kYXJrMjUvNAAvc2V0MTUvNAAvcGFzdGVsMTUvNAAvcmRneTQvNAAvYnVwdTQvNAAvcmRwdTQvNAAvcHVidTQvNAAveWxnbmJ1NC80AC9nbmJ1NC80AC9yZHlsYnU0LzQAL3JkYnU0LzQAL2FjY2VudDQvNAAvZ3JleXM0LzQAL2dyZWVuczQvNAAvYmx1ZXM0LzQAL3B1cnBsZXM0LzQAL29yYW5nZXM0LzQAL3JlZHM0LzQAL3B1b3I0LzQAL3lsb3JicjQvNAAvcHVidWduNC80AC9idWduNC80AC9wcmduNC80AC9yZHlsZ240LzQAL3lsZ240LzQAL3NwZWN0cmFsNC80AC9waXlnNC80AC9icmJnNC80AC9wdXJkNC80AC95bG9ycmQ0LzQAL29ycmQ0LzQAL3BhaXJlZDQvNAAvc2V0MzQvNAAvc2V0MjQvNAAvcGFzdGVsMjQvNAAvZGFyazI0LzQAL3NldDE0LzQAL3Bhc3RlbDE0LzQAL3BhaXJlZDEyLzQAL3NldDMxMi80AC9yZGd5MTEvNAAvcmR5bGJ1MTEvNAAvcmRidTExLzQAL3B1b3IxMS80AC9wcmduMTEvNAAvcmR5bGduMTEvNAAvc3BlY3RyYWwxMS80AC9waXlnMTEvNAAvYnJiZzExLzQAL3BhaXJlZDExLzQAL3NldDMxMS80AC9yZGd5MTAvNAAvcmR5bGJ1MTAvNAAvcmRidTEwLzQAL3B1b3IxMC80AC9wcmduMTAvNAAvcmR5bGduMTAvNAAvc3BlY3RyYWwxMC80AC9waXlnMTAvNAAvYnJiZzEwLzQAL3BhaXJlZDEwLzQAL3NldDMxMC80ADEuNABuID49IDQAc2lkZXMgPT0gNABpdm9yeTMAU3BhcnNlTWF0cml4X211bHRpcGx5MwBncmV5MwBkYXJrc2xhdGVncmF5MwBceDMAc25vdzMAbGlnaHR5ZWxsb3czAGhvbmV5ZGV3MwB3aGVhdDMAc3VwMwB0b21hdG8zAHJvc3licm93bjMAbWFyb29uMwBsaWdodHNhbG1vbjMAbGVtb25jaGlmZm9uMwBzcHJpbmdncmVlbjMAZGFya29saXZlZ3JlZW4zAHBhbGVncmVlbjMAZGFya3NlYWdyZWVuMwBsaWdodGN5YW4zAHRhbjMAcGx1bTMAc2Vhc2hlbGwzAGNvcmFsMwBob3RwaW5rMwBsaWdodHBpbmszAGRlZXBwaW5rMwBjb3Juc2lsazMAZmlyZWJyaWNrMwBraGFraTMAbGF2ZW5kZXJibHVzaDMAcGVhY2hwdWZmMwBiaXNxdWUzAGxpZ2h0c2t5Ymx1ZTMAZGVlcHNreWJsdWUzAGxpZ2h0Ymx1ZTMAY2FkZXRibHVlMwBkb2RnZXJibHVlMwBsaWdodHN0ZWVsYmx1ZTMAcm95YWxibHVlMwBzbGF0ZWJsdWUzAG5hdmFqb3doaXRlMwBhbnRpcXVld2hpdGUzAGNob2NvbGF0ZTMAY2hhcnRyZXVzZTMAbWlzdHlyb3NlMwBwYWxldHVycXVvaXNlMwBhenVyZTMAYXF1YW1hcmluZTMAdGhpc3RsZTMAbWVkaXVtcHVycGxlMwBkYXJrb3JhbmdlMwBsaWdodGdvbGRlbnJvZDMAZGFya2dvbGRlbnJvZDMAYnVybHl3b29kMwBnb2xkMwBtZWRpdW1vcmNoaWQzAGRhcmtvcmNoaWQzAHBhbGV2aW9sZXRyZWQzAGluZGlhbnJlZDMAb3JhbmdlcmVkMwBvbGl2ZWRyYWIzAG1hZ2VudGEzAHNpZW5uYTMAXHhGMwBceEUzAFx4RDMAXHhDMwBceEIzAFx4QTMAZ3JleTkzAGdyYXk5MwBceDkzAGdyZXk4MwBncmF5ODMAXHg4MwBncmV5NzMAZ3JheTczAGdyZXk2MwBncmF5NjMAZ3JleTUzAGdyYXk1MwBncmV5NDMAZ3JheTQzAGdyZXkzMwBncmF5MzMAZ3JleTIzAGdyYXkyMwBncmV5MTMAZ3JheTEzAFx4MTMAL3JkZ3k5LzMAL2J1cHU5LzMAL3JkcHU5LzMAL3B1YnU5LzMAL3lsZ25idTkvMwAvZ25idTkvMwAvcmR5bGJ1OS8zAC9yZGJ1OS8zAC9ncmV5czkvMwAvZ3JlZW5zOS8zAC9ibHVlczkvMwAvcHVycGxlczkvMwAvb3JhbmdlczkvMwAvcmVkczkvMwAvcHVvcjkvMwAveWxvcmJyOS8zAC9wdWJ1Z245LzMAL2J1Z245LzMAL3ByZ245LzMAL3JkeWxnbjkvMwAveWxnbjkvMwAvc3BlY3RyYWw5LzMAL3BpeWc5LzMAL2JyYmc5LzMAL3B1cmQ5LzMAL3lsb3JyZDkvMwAvb3JyZDkvMwAvcGFpcmVkOS8zAC9zZXQzOS8zAC9zZXQxOS8zAC9wYXN0ZWwxOS8zAC9yZGd5OC8zAC9idXB1OC8zAC9yZHB1OC8zAC9wdWJ1OC8zAC95bGduYnU4LzMAL2duYnU4LzMAL3JkeWxidTgvMwAvcmRidTgvMwAvYWNjZW50OC8zAC9ncmV5czgvMwAvZ3JlZW5zOC8zAC9ibHVlczgvMwAvcHVycGxlczgvMwAvb3JhbmdlczgvMwAvcmVkczgvMwAvcHVvcjgvMwAveWxvcmJyOC8zAC9wdWJ1Z244LzMAL2J1Z244LzMAL3ByZ244LzMAL3JkeWxnbjgvMwAveWxnbjgvMwAvc3BlY3RyYWw4LzMAL3BpeWc4LzMAL2JyYmc4LzMAL3B1cmQ4LzMAL3lsb3JyZDgvMwAvb3JyZDgvMwAvcGFpcmVkOC8zAC9zZXQzOC8zAC9zZXQyOC8zAC9wYXN0ZWwyOC8zAC9kYXJrMjgvMwAvc2V0MTgvMwAvcGFzdGVsMTgvMwAvcmRneTcvMwAvYnVwdTcvMwAvcmRwdTcvMwAvcHVidTcvMwAveWxnbmJ1Ny8zAC9nbmJ1Ny8zAC9yZHlsYnU3LzMAL3JkYnU3LzMAL2FjY2VudDcvMwAvZ3JleXM3LzMAL2dyZWVuczcvMwAvYmx1ZXM3LzMAL3B1cnBsZXM3LzMAL29yYW5nZXM3LzMAL3JlZHM3LzMAL3B1b3I3LzMAL3lsb3JicjcvMwAvcHVidWduNy8zAC9idWduNy8zAC9wcmduNy8zAC9yZHlsZ243LzMAL3lsZ243LzMAL3NwZWN0cmFsNy8zAC9waXlnNy8zAC9icmJnNy8zAC9wdXJkNy8zAC95bG9ycmQ3LzMAL29ycmQ3LzMAL3BhaXJlZDcvMwAvc2V0MzcvMwAvc2V0MjcvMwAvcGFzdGVsMjcvMwAvZGFyazI3LzMAL3NldDE3LzMAL3Bhc3RlbDE3LzMAL3JkZ3k2LzMAL2J1cHU2LzMAL3JkcHU2LzMAL3B1YnU2LzMAL3lsZ25idTYvMwAvZ25idTYvMwAvcmR5bGJ1Ni8zAC9yZGJ1Ni8zAC9hY2NlbnQ2LzMAL2dyZXlzNi8zAC9ncmVlbnM2LzMAL2JsdWVzNi8zAC9wdXJwbGVzNi8zAC9vcmFuZ2VzNi8zAC9yZWRzNi8zAC9wdW9yNi8zAC95bG9yYnI2LzMAL3B1YnVnbjYvMwAvYnVnbjYvMwAvcHJnbjYvMwAvcmR5bGduNi8zAC95bGduNi8zAC9zcGVjdHJhbDYvMwAvcGl5ZzYvMwAvYnJiZzYvMwAvcHVyZDYvMwAveWxvcnJkNi8zAC9vcnJkNi8zAC9wYWlyZWQ2LzMAL3NldDM2LzMAL3NldDI2LzMAL3Bhc3RlbDI2LzMAL2RhcmsyNi8zAC9zZXQxNi8zAC9wYXN0ZWwxNi8zAC9yZGd5NS8zAC9idXB1NS8zAC9yZHB1NS8zAC9wdWJ1NS8zAC95bGduYnU1LzMAL2duYnU1LzMAL3JkeWxidTUvMwAvcmRidTUvMwAvYWNjZW50NS8zAC9ncmV5czUvMwAvZ3JlZW5zNS8zAC9ibHVlczUvMwAvcHVycGxlczUvMwAvb3JhbmdlczUvMwAvcmVkczUvMwAvcHVvcjUvMwAveWxvcmJyNS8zAC9wdWJ1Z241LzMAL2J1Z241LzMAL3ByZ241LzMAL3JkeWxnbjUvMwAveWxnbjUvMwAvc3BlY3RyYWw1LzMAL3BpeWc1LzMAL2JyYmc1LzMAL3B1cmQ1LzMAL3lsb3JyZDUvMwAvb3JyZDUvMwAvcGFpcmVkNS8zAC9zZXQzNS8zAC9zZXQyNS8zAC9wYXN0ZWwyNS8zAC9kYXJrMjUvMwAvc2V0MTUvMwAvcGFzdGVsMTUvMwAvcmRneTQvMwAvYnVwdTQvMwAvcmRwdTQvMwAvcHVidTQvMwAveWxnbmJ1NC8zAC9nbmJ1NC8zAC9yZHlsYnU0LzMAL3JkYnU0LzMAL2FjY2VudDQvMwAvZ3JleXM0LzMAL2dyZWVuczQvMwAvYmx1ZXM0LzMAL3B1cnBsZXM0LzMAL29yYW5nZXM0LzMAL3JlZHM0LzMAL3B1b3I0LzMAL3lsb3JicjQvMwAvcHVidWduNC8zAC9idWduNC8zAC9wcmduNC8zAC9yZHlsZ240LzMAL3lsZ240LzMAL3NwZWN0cmFsNC8zAC9waXlnNC8zAC9icmJnNC8zAC9wdXJkNC8zAC95bG9ycmQ0LzMAL29ycmQ0LzMAL3BhaXJlZDQvMwAvc2V0MzQvMwAvc2V0MjQvMwAvcGFzdGVsMjQvMwAvZGFyazI0LzMAL3NldDE0LzMAL3Bhc3RlbDE0LzMAL3JkZ3kzLzMAL2J1cHUzLzMAL3JkcHUzLzMAL3B1YnUzLzMAL3lsZ25idTMvMwAvZ25idTMvMwAvcmR5bGJ1My8zAC9yZGJ1My8zAC9hY2NlbnQzLzMAL2dyZXlzMy8zAC9ncmVlbnMzLzMAL2JsdWVzMy8zAC9wdXJwbGVzMy8zAC9vcmFuZ2VzMy8zAC9yZWRzMy8zAC9wdW9yMy8zAC95bG9yYnIzLzMAL3B1YnVnbjMvMwAvYnVnbjMvMwAvcHJnbjMvMwAvcmR5bGduMy8zAC95bGduMy8zAC9zcGVjdHJhbDMvMwAvcGl5ZzMvMwAvYnJiZzMvMwAvcHVyZDMvMwAveWxvcnJkMy8zAC9vcnJkMy8zAC9wYWlyZWQzLzMAL3NldDMzLzMAL3NldDIzLzMAL3Bhc3RlbDIzLzMAL2RhcmsyMy8zAC9zZXQxMy8zAC9wYXN0ZWwxMy8zAC9wYWlyZWQxMi8zAC9zZXQzMTIvMwAvcmRneTExLzMAL3JkeWxidTExLzMAL3JkYnUxMS8zAC9wdW9yMTEvMwAvcHJnbjExLzMAL3JkeWxnbjExLzMAL3NwZWN0cmFsMTEvMwAvcGl5ZzExLzMAL2JyYmcxMS8zAC9wYWlyZWQxMS8zAC9zZXQzMTEvMwAvcmRneTEwLzMAL3JkeWxidTEwLzMAL3JkYnUxMC8zAC9wdW9yMTAvMwAvcHJnbjEwLzMAL3JkeWxnbjEwLzMAL3NwZWN0cmFsMTAvMwAvcGl5ZzEwLzMAL2JyYmcxMC8zAC9wYWlyZWQxMC8zAC9zZXQzMTAvMwBpdm9yeTIAZ3JleTIAZGFya3NsYXRlZ3JheTIAXHgyAHNub3cyAGxpZ2h0eWVsbG93MgBob25leWRldzIAUlRyZWVJbnNlcnQyAHdoZWF0MgBzdXAyAG5vcDIAdG9tYXRvMgByb3N5YnJvd24yAG1hcm9vbjIAbGlnaHRzYWxtb24yAGxlbW9uY2hpZmZvbjIAc3ByaW5nZ3JlZW4yAGRhcmtvbGl2ZWdyZWVuMgBwYWxlZ3JlZW4yAGRhcmtzZWFncmVlbjIAbGlnaHRjeWFuMgB0YW4yAHBsdW0yAHNlYXNoZWxsMgBjb3JhbDIAaG90cGluazIAbGlnaHRwaW5rMgBkZWVwcGluazIAY29ybnNpbGsyAGZpcmVicmljazIAa2hha2kyAGxhdmVuZGVyYmx1c2gyAHBlYWNocHVmZjIAYnJvbnplMgBiaXNxdWUyAGxpZ2h0c2t5Ymx1ZTIAZGVlcHNreWJsdWUyAGxpZ2h0Ymx1ZTIAY2FkZXRibHVlMgBkb2RnZXJibHVlMgBsaWdodHN0ZWVsYmx1ZTIAcm95YWxibHVlMgBzbGF0ZWJsdWUyAG5hdmFqb3doaXRlMgBhbnRpcXVld2hpdGUyAGNob2NvbGF0ZTIAY2hhcnRyZXVzZTIAbWlzdHlyb3NlMgBwYWxldHVycXVvaXNlMgBhenVyZTIAYXF1YW1hcmluZTIAdGhpc3RsZTIAbWVkaXVtcHVycGxlMgBkYXJrb3JhbmdlMgBsaWdodGdvbGRlbnJvZDIAZGFya2dvbGRlbnJvZDIAYnVybHl3b29kMgBnb2xkMgBtZWRpdW1vcmNoaWQyAGRhcmtvcmNoaWQyAHBhbGV2aW9sZXRyZWQyAGluZGlhbnJlZDIAb3JhbmdlcmVkMgBvbGl2ZWRyYWIyAG1hZ2VudGEyAHNpZW5uYTIAXHhGMgBceEUyAFx4RDIAXHhDMgBceEIyAFx4QTIAZ3JleTkyAGdyYXk5MgBceDkyAGdyZXk4MgBncmF5ODIAXHg4MgBncmV5NzIAZ3JheTcyAGdyZXk2MgBncmF5NjIAZ3JleTUyAGdyYXk1MgBncmV5NDIAZ3JheTQyAGdyZXkzMgBncmF5MzIAZ3JleTIyAGdyYXkyMgBncmV5MTIAZ3JheTEyAFx4MTIAZnJhYzEyAC9wYWlyZWQxMi8xMgAvc2V0MzEyLzEyAC9yZGd5OS8yAC9idXB1OS8yAC9yZHB1OS8yAC9wdWJ1OS8yAC95bGduYnU5LzIAL2duYnU5LzIAL3JkeWxidTkvMgAvcmRidTkvMgAvZ3JleXM5LzIAL2dyZWVuczkvMgAvYmx1ZXM5LzIAL3B1cnBsZXM5LzIAL29yYW5nZXM5LzIAL3JlZHM5LzIAL3B1b3I5LzIAL3lsb3JicjkvMgAvcHVidWduOS8yAC9idWduOS8yAC9wcmduOS8yAC9yZHlsZ245LzIAL3lsZ245LzIAL3NwZWN0cmFsOS8yAC9waXlnOS8yAC9icmJnOS8yAC9wdXJkOS8yAC95bG9ycmQ5LzIAL29ycmQ5LzIAL3BhaXJlZDkvMgAvc2V0MzkvMgAvc2V0MTkvMgAvcGFzdGVsMTkvMgAvcmRneTgvMgAvYnVwdTgvMgAvcmRwdTgvMgAvcHVidTgvMgAveWxnbmJ1OC8yAC9nbmJ1OC8yAC9yZHlsYnU4LzIAL3JkYnU4LzIAL2FjY2VudDgvMgAvZ3JleXM4LzIAL2dyZWVuczgvMgAvYmx1ZXM4LzIAL3B1cnBsZXM4LzIAL29yYW5nZXM4LzIAL3JlZHM4LzIAL3B1b3I4LzIAL3lsb3JicjgvMgAvcHVidWduOC8yAC9idWduOC8yAC9wcmduOC8yAC9yZHlsZ244LzIAL3lsZ244LzIAL3NwZWN0cmFsOC8yAC9waXlnOC8yAC9icmJnOC8yAC9wdXJkOC8yAC95bG9ycmQ4LzIAL29ycmQ4LzIAL3BhaXJlZDgvMgAvc2V0MzgvMgAvc2V0MjgvMgAvcGFzdGVsMjgvMgAvZGFyazI4LzIAL3NldDE4LzIAL3Bhc3RlbDE4LzIAL3JkZ3k3LzIAL2J1cHU3LzIAL3JkcHU3LzIAL3B1YnU3LzIAL3lsZ25idTcvMgAvZ25idTcvMgAvcmR5bGJ1Ny8yAC9yZGJ1Ny8yAC9hY2NlbnQ3LzIAL2dyZXlzNy8yAC9ncmVlbnM3LzIAL2JsdWVzNy8yAC9wdXJwbGVzNy8yAC9vcmFuZ2VzNy8yAC9yZWRzNy8yAC9wdW9yNy8yAC95bG9yYnI3LzIAL3B1YnVnbjcvMgAvYnVnbjcvMgAvcHJnbjcvMgAvcmR5bGduNy8yAC95bGduNy8yAC9zcGVjdHJhbDcvMgAvcGl5ZzcvMgAvYnJiZzcvMgAvcHVyZDcvMgAveWxvcnJkNy8yAC9vcnJkNy8yAC9wYWlyZWQ3LzIAL3NldDM3LzIAL3NldDI3LzIAL3Bhc3RlbDI3LzIAL2RhcmsyNy8yAC9zZXQxNy8yAC9wYXN0ZWwxNy8yAC9yZGd5Ni8yAC9idXB1Ni8yAC9yZHB1Ni8yAC9wdWJ1Ni8yAC95bGduYnU2LzIAL2duYnU2LzIAL3JkeWxidTYvMgAvcmRidTYvMgAvYWNjZW50Ni8yAC9ncmV5czYvMgAvZ3JlZW5zNi8yAC9ibHVlczYvMgAvcHVycGxlczYvMgAvb3JhbmdlczYvMgAvcmVkczYvMgAvcHVvcjYvMgAveWxvcmJyNi8yAC9wdWJ1Z242LzIAL2J1Z242LzIAL3ByZ242LzIAL3JkeWxnbjYvMgAveWxnbjYvMgAvc3BlY3RyYWw2LzIAL3BpeWc2LzIAL2JyYmc2LzIAL3B1cmQ2LzIAL3lsb3JyZDYvMgAvb3JyZDYvMgAvcGFpcmVkNi8yAC9zZXQzNi8yAC9zZXQyNi8yAC9wYXN0ZWwyNi8yAC9kYXJrMjYvMgAvc2V0MTYvMgAvcGFzdGVsMTYvMgAvcmRneTUvMgAvYnVwdTUvMgAvcmRwdTUvMgAvcHVidTUvMgAveWxnbmJ1NS8yAC9nbmJ1NS8yAC9yZHlsYnU1LzIAL3JkYnU1LzIAL2FjY2VudDUvMgAvZ3JleXM1LzIAL2dyZWVuczUvMgAvYmx1ZXM1LzIAL3B1cnBsZXM1LzIAL29yYW5nZXM1LzIAL3JlZHM1LzIAL3B1b3I1LzIAL3lsb3JicjUvMgAvcHVidWduNS8yAC9idWduNS8yAC9wcmduNS8yAC9yZHlsZ241LzIAL3lsZ241LzIAL3NwZWN0cmFsNS8yAC9waXlnNS8yAC9icmJnNS8yAC9wdXJkNS8yAC95bG9ycmQ1LzIAL29ycmQ1LzIAL3BhaXJlZDUvMgAvc2V0MzUvMgAvc2V0MjUvMgAvcGFzdGVsMjUvMgAvZGFyazI1LzIAL3NldDE1LzIAL3Bhc3RlbDE1LzIAL3JkZ3k0LzIAL2J1cHU0LzIAL3JkcHU0LzIAL3B1YnU0LzIAL3lsZ25idTQvMgAvZ25idTQvMgAvcmR5bGJ1NC8yAC9yZGJ1NC8yAC9hY2NlbnQ0LzIAL2dyZXlzNC8yAC9ncmVlbnM0LzIAL2JsdWVzNC8yAC9wdXJwbGVzNC8yAC9vcmFuZ2VzNC8yAC9yZWRzNC8yAC9wdW9yNC8yAC95bG9yYnI0LzIAL3B1YnVnbjQvMgAvYnVnbjQvMgAvcHJnbjQvMgAvcmR5bGduNC8yAC95bGduNC8yAC9zcGVjdHJhbDQvMgAvcGl5ZzQvMgAvYnJiZzQvMgAvcHVyZDQvMgAveWxvcnJkNC8yAC9vcnJkNC8yAC9wYWlyZWQ0LzIAL3NldDM0LzIAL3NldDI0LzIAL3Bhc3RlbDI0LzIAL2RhcmsyNC8yAC9zZXQxNC8yAC9wYXN0ZWwxNC8yAC9yZGd5My8yAC9idXB1My8yAC9yZHB1My8yAC9wdWJ1My8yAC95bGduYnUzLzIAL2duYnUzLzIAL3JkeWxidTMvMgAvcmRidTMvMgAvYWNjZW50My8yAC9ncmV5czMvMgAvZ3JlZW5zMy8yAC9ibHVlczMvMgAvcHVycGxlczMvMgAvb3JhbmdlczMvMgAvcmVkczMvMgAvcHVvcjMvMgAveWxvcmJyMy8yAC9wdWJ1Z24zLzIAL2J1Z24zLzIAL3ByZ24zLzIAL3JkeWxnbjMvMgAveWxnbjMvMgAvc3BlY3RyYWwzLzIAL3BpeWczLzIAL2JyYmczLzIAL3B1cmQzLzIAL3lsb3JyZDMvMgAvb3JyZDMvMgAvcGFpcmVkMy8yAC9zZXQzMy8yAC9zZXQyMy8yAC9wYXN0ZWwyMy8yAC9kYXJrMjMvMgAvc2V0MTMvMgAvcGFzdGVsMTMvMgAvcGFpcmVkMTIvMgAvc2V0MzEyLzIAL3JkZ3kxMS8yAC9yZHlsYnUxMS8yAC9yZGJ1MTEvMgAvcHVvcjExLzIAL3ByZ24xMS8yAC9yZHlsZ24xMS8yAC9zcGVjdHJhbDExLzIAL3BpeWcxMS8yAC9icmJnMTEvMgAvcGFpcmVkMTEvMgAvc2V0MzExLzIAL3JkZ3kxMC8yAC9yZHlsYnUxMC8yAC9yZGJ1MTAvMgAvcHVvcjEwLzIAL3ByZ24xMC8yAC9yZHlsZ24xMC8yAC9zcGVjdHJhbDEwLzIAL3BpeWcxMC8yAC9icmJnMTAvMgAvcGFpcmVkMTAvMgAvc2V0MzEwLzIAMTMuMS4yACAtZGFzaCAyAHN6ID49IDIAbGVuID49IDIAZXhwID09IDEgfHwgZXhwID09IDIAZGltID09IDIATkRfb3V0KHYpLnNpemUgPT0gMgBpdm9yeTEAZ3JleTEAZGFya3NsYXRlZ3JheTEAXHgxAHNub3cxAGxpZ2h0eWVsbG93MQBob25leWRldzEAbnNsaW1pdDEAd2hlYXQxAHN1cDEAbm9wMQB0b21hdG8xAHJvc3licm93bjEAbWFyb29uMQBsaWdodHNhbG1vbjEAbGVtb25jaGlmZm9uMQBsYXRpbjEAYWdvcGVuMQBzcHJpbmdncmVlbjEAZGFya29saXZlZ3JlZW4xAHBhbGVncmVlbjEAZGFya3NlYWdyZWVuMQBsaWdodGN5YW4xAHRhbjEAcGx1bTEAc2Vhc2hlbGwxAGNvcmFsMQBob3RwaW5rMQBsaWdodHBpbmsxAGRlZXBwaW5rMQBjb3Juc2lsazEAZmlyZWJyaWNrMQBqMCA8PSBpMSAmJiBpMSA8PSBqMQBraGFraTEAbGF2ZW5kZXJibHVzaDEAcGVhY2hwdWZmMQBiaXNxdWUxAGxpZ2h0c2t5Ymx1ZTEAZGVlcHNreWJsdWUxAGxpZ2h0Ymx1ZTEAY2FkZXRibHVlMQBkb2RnZXJibHVlMQBsaWdodHN0ZWVsYmx1ZTEAcm95YWxibHVlMQBzbGF0ZWJsdWUxAG5hdmFqb3doaXRlMQBhbnRpcXVld2hpdGUxAGNob2NvbGF0ZTEAY2hhcnRyZXVzZTEAbWlzdHlyb3NlMQBwYWxldHVycXVvaXNlMQBhenVyZTEAYXF1YW1hcmluZTEAdGhpc3RsZTEAbWVkaXVtcHVycGxlMQBkYXJrb3JhbmdlMQBhcmdfZTAgJiYgYXJnX2UxAGxpZ2h0Z29sZGVucm9kMQBkYXJrZ29sZGVucm9kMQBidXJseXdvb2QxAGdvbGQxAG1lZGl1bW9yY2hpZDEAZGFya29yY2hpZDEAcGFsZXZpb2xldHJlZDEAaW5kaWFucmVkMQBvcmFuZ2VyZWQxAG9saXZlZHJhYjEAbWFnZW50YTEAc2llbm5hMQBceEYxAFx4RTEAXHhEMQBceEMxAFx4QjEAXHhBMQBncmV5OTEAZ3JheTkxAFx4OTEAZ3JleTgxAGdyYXk4MQBceDgxAGdyZXk3MQBncmF5NzEAZ3JleTYxAGdyYXk2MQBncmV5NTEAZ3JheTUxAGdyZXk0MQBncmF5NDEAZ3JleTMxAGdyYXkzMQBncmV5MjEAZ3JheTIxAGdyZXkxMQBncmF5MTEAXHgxMQAvcGFpcmVkMTIvMTEAL3NldDMxMi8xMQAvcmRneTExLzExAC9yZHlsYnUxMS8xMQAvcmRidTExLzExAC9wdW9yMTEvMTEAL3ByZ24xMS8xMQAvcmR5bGduMTEvMTEAL3NwZWN0cmFsMTEvMTEAL3BpeWcxMS8xMQAvYnJiZzExLzExAC9wYWlyZWQxMS8xMQAvc2V0MzExLzExAGNzW2ldLT5zbGFjaygpPi0wLjAwMDAwMDEAL3JkZ3k5LzEAL2J1cHU5LzEAL3JkcHU5LzEAL3B1YnU5LzEAL3lsZ25idTkvMQAvZ25idTkvMQAvcmR5bGJ1OS8xAC9yZGJ1OS8xAC9ncmV5czkvMQAvZ3JlZW5zOS8xAC9ibHVlczkvMQAvcHVycGxlczkvMQAvb3JhbmdlczkvMQAvcmVkczkvMQAvcHVvcjkvMQAveWxvcmJyOS8xAC9wdWJ1Z245LzEAL2J1Z245LzEAL3ByZ245LzEAL3JkeWxnbjkvMQAveWxnbjkvMQAvc3BlY3RyYWw5LzEAL3BpeWc5LzEAL2JyYmc5LzEAL3B1cmQ5LzEAL3lsb3JyZDkvMQAvb3JyZDkvMQAvcGFpcmVkOS8xAC9zZXQzOS8xAC9zZXQxOS8xAC9wYXN0ZWwxOS8xAC9yZGd5OC8xAC9idXB1OC8xAC9yZHB1OC8xAC9wdWJ1OC8xAC95bGduYnU4LzEAL2duYnU4LzEAL3JkeWxidTgvMQAvcmRidTgvMQAvYWNjZW50OC8xAC9ncmV5czgvMQAvZ3JlZW5zOC8xAC9ibHVlczgvMQAvcHVycGxlczgvMQAvb3JhbmdlczgvMQAvcmVkczgvMQAvcHVvcjgvMQAveWxvcmJyOC8xAC9wdWJ1Z244LzEAL2J1Z244LzEAL3ByZ244LzEAL3JkeWxnbjgvMQAveWxnbjgvMQAvc3BlY3RyYWw4LzEAL3BpeWc4LzEAL2JyYmc4LzEAL3B1cmQ4LzEAL3lsb3JyZDgvMQAvb3JyZDgvMQAvcGFpcmVkOC8xAC9zZXQzOC8xAC9zZXQyOC8xAC9wYXN0ZWwyOC8xAC9kYXJrMjgvMQAvc2V0MTgvMQAvcGFzdGVsMTgvMQAvcmRneTcvMQAvYnVwdTcvMQAvcmRwdTcvMQAvcHVidTcvMQAveWxnbmJ1Ny8xAC9nbmJ1Ny8xAC9yZHlsYnU3LzEAL3JkYnU3LzEAL2FjY2VudDcvMQAvZ3JleXM3LzEAL2dyZWVuczcvMQAvYmx1ZXM3LzEAL3B1cnBsZXM3LzEAL29yYW5nZXM3LzEAL3JlZHM3LzEAL3B1b3I3LzEAL3lsb3JicjcvMQAvcHVidWduNy8xAC9idWduNy8xAC9wcmduNy8xAC9yZHlsZ243LzEAL3lsZ243LzEAL3NwZWN0cmFsNy8xAC9waXlnNy8xAC9icmJnNy8xAC9wdXJkNy8xAC95bG9ycmQ3LzEAL29ycmQ3LzEAL3BhaXJlZDcvMQAvc2V0MzcvMQAvc2V0MjcvMQAvcGFzdGVsMjcvMQAvZGFyazI3LzEAL3NldDE3LzEAL3Bhc3RlbDE3LzEAL3JkZ3k2LzEAL2J1cHU2LzEAL3JkcHU2LzEAL3B1YnU2LzEAL3lsZ25idTYvMQAvZ25idTYvMQAvcmR5bGJ1Ni8xAC9yZGJ1Ni8xAC9hY2NlbnQ2LzEAL2dyZXlzNi8xAC9ncmVlbnM2LzEAL2JsdWVzNi8xAC9wdXJwbGVzNi8xAC9vcmFuZ2VzNi8xAC9yZWRzNi8xAC9wdW9yNi8xAC95bG9yYnI2LzEAL3B1YnVnbjYvMQAvYnVnbjYvMQAvcHJnbjYvMQAvcmR5bGduNi8xAC95bGduNi8xAC9zcGVjdHJhbDYvMQAvcGl5ZzYvMQAvYnJiZzYvMQAvcHVyZDYvMQAveWxvcnJkNi8xAC9vcnJkNi8xAC9wYWlyZWQ2LzEAL3NldDM2LzEAL3NldDI2LzEAL3Bhc3RlbDI2LzEAL2RhcmsyNi8xAC9zZXQxNi8xAC9wYXN0ZWwxNi8xAC9yZGd5NS8xAC9idXB1NS8xAC9yZHB1NS8xAC9wdWJ1NS8xAC95bGduYnU1LzEAL2duYnU1LzEAL3JkeWxidTUvMQAvcmRidTUvMQAvYWNjZW50NS8xAC9ncmV5czUvMQAvZ3JlZW5zNS8xAC9ibHVlczUvMQAvcHVycGxlczUvMQAvb3JhbmdlczUvMQAvcmVkczUvMQAvcHVvcjUvMQAveWxvcmJyNS8xAC9wdWJ1Z241LzEAL2J1Z241LzEAL3ByZ241LzEAL3JkeWxnbjUvMQAveWxnbjUvMQAvc3BlY3RyYWw1LzEAL3BpeWc1LzEAL2JyYmc1LzEAL3B1cmQ1LzEAL3lsb3JyZDUvMQAvb3JyZDUvMQAvcGFpcmVkNS8xAC9zZXQzNS8xAC9zZXQyNS8xAC9wYXN0ZWwyNS8xAC9kYXJrMjUvMQAvc2V0MTUvMQAvcGFzdGVsMTUvMQAvcmRneTQvMQAvYnVwdTQvMQAvcmRwdTQvMQAvcHVidTQvMQAveWxnbmJ1NC8xAC9nbmJ1NC8xAC9yZHlsYnU0LzEAL3JkYnU0LzEAL2FjY2VudDQvMQAvZ3JleXM0LzEAL2dyZWVuczQvMQAvYmx1ZXM0LzEAL3B1cnBsZXM0LzEAL29yYW5nZXM0LzEAL3JlZHM0LzEAL3B1b3I0LzEAL3lsb3JicjQvMQAvcHVidWduNC8xAC9idWduNC8xAC9wcmduNC8xAC9yZHlsZ240LzEAL3lsZ240LzEAL3NwZWN0cmFsNC8xAC9waXlnNC8xAC9icmJnNC8xAC9wdXJkNC8xAC95bG9ycmQ0LzEAL29ycmQ0LzEAL3BhaXJlZDQvMQAvc2V0MzQvMQAvc2V0MjQvMQAvcGFzdGVsMjQvMQAvZGFyazI0LzEAL3NldDE0LzEAL3Bhc3RlbDE0LzEAL3JkZ3kzLzEAL2J1cHUzLzEAL3JkcHUzLzEAL3B1YnUzLzEAL3lsZ25idTMvMQAvZ25idTMvMQAvcmR5bGJ1My8xAC9yZGJ1My8xAC9hY2NlbnQzLzEAL2dyZXlzMy8xAC9ncmVlbnMzLzEAL2JsdWVzMy8xAC9wdXJwbGVzMy8xAC9vcmFuZ2VzMy8xAC9yZWRzMy8xAC9wdW9yMy8xAC95bG9yYnIzLzEAL3B1YnVnbjMvMQAvYnVnbjMvMQAvcHJnbjMvMQAvcmR5bGduMy8xAC95bGduMy8xAC9zcGVjdHJhbDMvMQAvcGl5ZzMvMQAvYnJiZzMvMQAvcHVyZDMvMQAveWxvcnJkMy8xAC9vcnJkMy8xAC9wYWlyZWQzLzEAL3NldDMzLzEAL3NldDIzLzEAL3Bhc3RlbDIzLzEAL2RhcmsyMy8xAC9zZXQxMy8xAC9wYXN0ZWwxMy8xAC9wYWlyZWQxMi8xAC9zZXQzMTIvMQAvcmRneTExLzEAL3JkeWxidTExLzEAL3JkYnUxMS8xAC9wdW9yMTEvMQAvcHJnbjExLzEAL3JkeWxnbjExLzEAL3NwZWN0cmFsMTEvMQAvcGl5ZzExLzEAL2JyYmcxMS8xAC9wYWlyZWQxMS8xAC9zZXQzMTEvMQAvcmRneTEwLzEAL3JkeWxidTEwLzEAL3JkYnUxMC8xAC9wdW9yMTAvMQAvcHJnbjEwLzEAL3JkeWxnbjEwLzEAL3NwZWN0cmFsMTAvMQAvcGl5ZzEwLzEAL2JyYmcxMC8xAC9wYWlyZWQxMC8xAC9zZXQzMTAvMQBsYXRpbi0xAElTT184ODU5LTEASVNPODg1OS0xAElTTy04ODU5LTEAaSA+PSAxAHEtPm4gPT0gMQBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0ucGFydGl0aW9uW2ldID09IDAgfHwgcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLnBhcnRpdGlvbltpXSA9PSAxAGJ6LnNpemUgJSAzID09IDEAZWRnZV9saXN0X3NpemUoJmN0eC0+VHJlZV9lZGdlKSA9PSBjdHgtPk5fbm9kZXMgLSAxAG5vZGVfc2V0X3NpemUoZy0+bl9pZCkgPT0gb3NpemUgKyAxAG4tPmNvdW50ICsgKCpubiktPmNvdW50ID09IE5PREVDQVJEICsgMQBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0uY291bnRbMF0gKyBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0uY291bnRbMV0gPT0gTk9ERUNBUkQgKyAxAGdyZXkwAGdyYXkwAGpzb24wACNmMGYwZjAAI2UwZTBlMAB4Yi0+dS5zLmxvY2F0ZWQgPiBBR1hCVUZfSU5MSU5FX1NJWkVfMABcMABUMABceEYwAFx4RTAAXHhEMABceEMwAFx4QjAAXHhBMABncmV5OTAAZ3JheTkwAFx4OTAAZ3JleTgwAGdyYXk4MABceDgwACM4MDgwODAAZ3JleTcwAGdyYXk3MABjY3dyb3QgPT0gMCB8fCBjY3dyb3QgPT0gOTAgfHwgY2N3cm90ID09IDE4MCB8fCBjY3dyb3QgPT0gMjcwAGN3cm90ID09IDAgfHwgY3dyb3QgPT0gOTAgfHwgY3dyb3QgPT0gMTgwIHx8IGN3cm90ID09IDI3MABncmV5NjAAZ3JheTYwAGdyZXk1MABncmF5NTAAZ3JleTQwAGdyYXk0MAByLndpZHRoKCk8MWU0MABncmV5MzAAZ3JheTMwACMzMDMwMzAAZ3JleTIwAGdyYXkyMAAyMDI1MDgwOC4yMzIwAGdyZXkxMABncmF5MTAAXHgxMAAjMTAxMDEwAC9wYWlyZWQxMi8xMAAvc2V0MzEyLzEwAC9yZGd5MTEvMTAAL3JkeWxidTExLzEwAC9yZGJ1MTEvMTAAL3B1b3IxMS8xMAAvcHJnbjExLzEwAC9yZHlsZ24xMS8xMAAvc3BlY3RyYWwxMS8xMAAvcGl5ZzExLzEwAC9icmJnMTEvMTAAL3BhaXJlZDExLzEwAC9zZXQzMTEvMTAAL3JkZ3kxMC8xMAAvcmR5bGJ1MTAvMTAAL3JkYnUxMC8xMAAvcHVvcjEwLzEwAC9wcmduMTAvMTAAL3JkeWxnbjEwLzEwAC9zcGVjdHJhbDEwLzEwAC9waXlnMTAvMTAAL2JyYmcxMC8xMAAvcGFpcmVkMTAvMTAAL3NldDMxMC8xMAAxMjAwAGdyZXkxMDAAZ3JheTEwMABJU08tSVItMTAwADEwMDAwACUhUFMtQWRvYmUtMy4wAG56ID4gMABsaXN0LT5jYXBhY2l0eSA+IDAAZGlzdCA+IDAAcGF0aGNvdW50ID4gMAB3Z3QgPiAwAG5zaXRlcyA+IDAAc2lkZXMgPiAwAHJ2ID09IDAgfHwgKE5EX29yZGVyKHJ2KS1ORF9vcmRlcih2KSkqZGlyID4gMABsZW4gPiAwAHF0MS0+biA+IDAgJiYgcXQyLT5uID4gMAB3aWR0aCA+IDAAbGlzdC0+c2l6ZSA+IDAAZGljdC0+c2l6ZSA+IDAAc3BsLT5zaXplID4gMABzZWxmLT5zaXplID4gMABiei5zaXplID4gMABib3VuZCA+IDAAZ3JhcGgtPndlaWdodHNbeF0gPiAwAGdyYXBoLT53ZWlnaHRzW25fZWRnZXNdID4gMABtID4gMCAmJiBuID4gMCAmJiBueiA+PSAwAHQgPj0gMABubm9kZXMgPj0gMABuX29icyA+PSAwAG4gPj0gMABuLT5sZXZlbCA+PSAwAHRvdGFsID49IDAAb3JpZ2luYWwgPj0gMABNYXhyYW5rID49IDAAUGFjayA+PSAwAGlpIDwgMTw8ZGltICYmIGlpID49IDAAd2lkdGggPj0gMABqZGlhZyA+PSAwAGlkaWFnID49IDAAZCA+PSAwAHJ0cC0+c3BsaXQuUGFydGl0aW9uc1swXS5jb3VudFswXSA+PSAwICYmIHJ0cC0+c3BsaXQuUGFydGl0aW9uc1swXS5jb3VudFsxXSA+PSAwAFYgPj0gMABhZ25ub2RlcyhncmFwaCkgPj0gMABhZ25ub2RlcyhnKSA+PSAwAEVEX3RyZWVfaW5kZXgoZSkgPj0gMABFRF9jb3VudChlKSA+PSAwAG9ianAxLT5zei54ID09IDAgJiYgb2JqcDEtPnN6LnkgPT0gMABjX2NudCA9PSAwAHJhbmtfcmVzdWx0ID09IDAAZ2V0dGltZW9mZGF5X3JlcyA9PSAwAGogPT0gMABORF9pbihyaWdodCkuc2l6ZSArIE5EX291dChyaWdodCkuc2l6ZSA9PSAwAGEuc2hhcGUgPT0gMCB8fCBiLnNoYXBlID09IDAAZHRzaXplKGRlc3QpID09IDAAZHRzaXplKGctPm5fc2VxKSA9PSAwAGR0c2l6ZShnLT5nX3NlcSkgPT0gMABkdHNpemUoZy0+ZV9zZXEpID09IDAAR0RfbWlucmFuayhnKSA9PSAwAGR0c2l6ZShnLT5nX2lkKSA9PSAwAGR0c2l6ZShnLT5lX2lkKSA9PSAwAGNvc3ggIT0gMCB8fCBzaW54ICE9IDAAbWVtY21wKCZzdHlsZSwgJihncmFwaHZpel9wb2x5Z29uX3N0eWxlX3QpezB9LCBzaXplb2Yoc3R5bGUpKSAhPSAwAHJlc3VsdCA9PSAoaW50KShzaXplIC0gMSkgfHwgcmVzdWx0IDwgMABtYXNrW2lpXSA8IDAATkRfaGVhcGluZGV4KHYpIDwgMABcLwBYMTEvAGd2UmVuZGVySm9icyAlczogJS4yZiBzZWNzLgAlLipzLgBzcGVjaWZpZWQgcm9vdCBub2RlICIlcyIgd2FzIG5vdCBmb3VuZC4AR3JhcGggJXMgaGFzIGFycmF5IHBhY2tpbmcgd2l0aCB1c2VyIHZhbHVlcyBidXQgbm8gInNvcnR2IiBhdHRyaWJ1dGVzIGFyZSBkZWZpbmVkLgAxLgAtMC4AJSFQUy1BZG9iZS0AJVBERi0APCEtLQAgLAArACoAc3RyZXEoYXB0ci0+dS5uYW1lLEtleSkAIWlzX2V4YWN0bHlfZXF1YWwoUi54LCBRLngpIHx8ICFpc19leGFjdGx5X2VxdWFsKFIueSwgUS55KQBORF9vcmRlcih2KSA8IE5EX29yZGVyKHcpAHUgPT0gVUZfZmluZCh1KQAhcG9pbnRzX2lzX2VtcHR5KHBsaXN0KQAhb2JqbGlzdF9pc19lbXB0eShsaXN0KQAhc2ZvbnRfaXNfZW1wdHkobGlzdCkAIXJvd3NfaXNfZW1wdHkobGlzdCkAIXRzdHNfaXNfZW1wdHkobGlzdCkAIXBvaW50c19pc19lbXB0eShsaXN0KQAhY29sb3JzZWdzX2lzX2VtcHR5KGxpc3QpACFkZnNfc3RhY2tfaXNfZW1wdHkobGlzdCkAIXBic19zaXplX2lzX2VtcHR5KGxpc3QpAG9iamxpc3RfaXNfY29udGlndW91cyhsaXN0KQBkZWdsaXN0X2lzX2NvbnRpZ3VvdXMobGlzdCkAbm9kZWxpc3RfaXNfY29udGlndW91cyhsaXN0KQBjbGlzdF9pc19jb250aWd1b3VzKGxpc3QpAG5vZGVfbGlzdF9pc19jb250aWd1b3VzKGxpc3QpAGVkZ2Vfc2V0X2lzX2NvbnRpZ3VvdXMobGlzdCkAcG9pbnRzX2lzX2NvbnRpZ3VvdXMobGlzdCkAc3Ryc19pc19jb250aWd1b3VzKGxpc3QpAEFncmFwaHNfaXNfY29udGlndW91cyhsaXN0KQBib3hlc19pc19jb250aWd1b3VzKGxpc3QpAGxheWVyX25hbWVzX2lzX2NvbnRpZ3VvdXMobGlzdCkAc25vZGVzX2lzX2NvbnRpZ3VvdXMobGlzdCkAdmFyYXJyX2lzX2NvbnRpZ3VvdXMobGlzdCkAYmV6aWVyX3BhdGhfaXNfY29udGlndW91cyhsaXN0KQBwYnNfc2l6ZV9pc19jb250aWd1b3VzKGxpc3QpAG9uZSA8PSBub2RlbGlzdF9zaXplKGxpc3QpAG5wIDwgbm9kZWxpc3Rfc2l6ZShsaXN0KQBzdGQ6OmlzX2hlYXAoaGVhcC5iZWdpbigpLCBoZWFwLmVuZCgpLCBndCkAIShxLT5xdHMpACFpbnRzX2lzX2VtcHR5KCZsZWF2ZXMpAG9uX2hlYXAocikAbm9kZV9zZXRfc2l6ZShnLT5uX2lkKSA9PSAoc2l6ZV90KWR0c2l6ZShnLT5uX3NlcSkATkRfcmFuayhmcm9tKSA8IE5EX3JhbmsodG8pAG5vdCB3ZWxsLWZvcm1lZCAoaW52YWxpZCB0b2tlbikAYWdzdWJyZXAoZyxuKQBuICE9IE5EX25leHQobikAZmluZF9mYXN0X25vZGUoZywgbikAKG51bGwpACghamNuKSAmJiAoIXZhbCkAIShxLT5sKQBzeW0tPmlkID49IDAgJiYgc3ltLT5pZCA8IHRvcGRpY3RzaXplKG9iaikAbW92ZSB0byAoJS4wZiwgJS4wZikAOyBzcGxpbmUgdG8gKCUuMGYsICUuMGYpADsgbGluZSB0byAoJS4wZiwgJS4wZikAU3BhcnNlTWF0cml4X2lzX3N5bW1ldHJpYyhBLCB0cnVlKQB2YWx1ZSAmJiBzdHJsZW4odmFsdWUpAFNwYXJzZU1hdHJpeF9pc19zeW1tZXRyaWMoQSwgZmFsc2UpACF1c2Vfc3RhZ2UgfHwgc2l6ZSA8PSBzaXplb2Yoc3RhZ2UpAEVEX2xhYmVsKGZlKQAhVFJFRV9FREdFKGUpACFjb25zdHJhaW5pbmdfZmxhdF9lZGdlKGcsIGUpAG5vZGVfc2V0X2lzX2VtcHR5KGctPm5faWQpAHJfJWQpAGxfJWQpAChsaWIpACFTcGFyc2VNYXRyaXhfaGFzX2RpYWdvbmFsKEEpACBzY2FubmluZyBhIEhUTUwgc3RyaW5nIChtaXNzaW5nICc+Jz8gYmFkIG5lc3Rpbmc/IGxvbmdlciB0aGFuICVkPykAIHNjYW5uaW5nIGEgcXVvdGVkIHN0cmluZyAobWlzc2luZyBlbmRxdW90ZT8gbG9uZ2VyIHRoYW4gJWQ/KQAgc2Nhbm5pbmcgYSAvKi4uLiovIGNvbW1lbnQgKG1pc3NpbmcgJyovPyBsb25nZXIgdGhhbiAlZD8pAGZhbGxiYWNrKDQpAG9uX2hlYXAocjApIHx8IG9uX2hlYXAocjEpAGFndGFpbChlKSA9PSBVRl9maW5kKGFndGFpbChlKSkAYWdoZWFkKGUpID09IFVGX2ZpbmQoYWdoZWFkKGUpKQBvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXlfZ2V0X25leHRfYnVmZmVyKCkAb3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X2NyZWF0ZV9idWZmZXIoKQBvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXllbnN1cmVfYnVmZmVyX3N0YWNrKCkAc3RyZXEobW9kZSwgInIiKSB8fCBzdHJlcShtb2RlLCAicmIiKSB8fCBzdHJlcShtb2RlLCAidyIpIHx8IHN0cmVxKG1vZGUsICJ3YiIpAHBuYW1lICE9IE5VTEwgJiYgIXN0cmVxKHBuYW1lLCAiIikAc2V0bGluZXdpZHRoKAApIHJvdGF0ZSglZCkgdHJhbnNsYXRlKAAgdHJhbnNmb3JtPSJzY2FsZSgATk9UQVRJT04oACAoACBuZWFyICclcycAJWxmLCVsZiwlbGYsJyVbXiddJwBpc2RpZ2l0KChpbnQpZG90cFsxXSkgJiYgaXNkaWdpdCgoaW50KWRvdHBbMl0pICYmIGRvdHBbM10gPT0gJ1wwJwAmACUAJAB1cmwoIwA8dGV4dFBhdGggeGxpbms6aHJlZj0iIwA8YXJlYSBzaGFwZT0icG9seSIAIGZpbGw9IiMlMDJ4JTAyeCUwMngiAChzZXEgJiBTRVFfTUFTSykgPT0gc2VxICYmICJzZXF1ZW5jZSBJRCBvdmVyZmxvdyIAZ3Zfc29ydF9jb21wYXIgPT0gTlVMTCAmJiBndl9zb3J0X2FyZyA9PSBOVUxMICYmICJ1bnN1cHBvcnRlZCByZWN1cnNpdmUgY2FsbCB0byBndl9zb3J0IgBndl9zb3J0X2NvbXBhciAhPSBOVUxMICYmICJubyBjb21wYXJhdG9yIHNldCBpbiBndl9zb3J0IgBvcC0+b3AudS5wb2x5Z29uLmNudCA8PSBJTlRfTUFYICYmICJwb2x5Z29uIGNvdW50IGV4Y2VlZHMgZ3ZyZW5kZXJfcG9seWdvbiBzdXBwb3J0IgAgdGV4dC1hbmNob3I9InN0YXJ0IgBwLnggIT0gYSAmJiAiY2Fubm90IGhhbmRsZSBlbGxpcHNlIHRhbmdlbnQgc2xvcGUgaW4gaG9yaXpvbnRhbCBleHRyZW1lIHBvaW50IgBmdWxsX2xlbmd0aF93aXRob3V0X3NoYWZ0ID4gMCAmJiAibm9uLXBvc2l0aXZlIGZ1bGwgbGVuZ3RoIHdpdGhvdXQgc2hhZnQiADxhcmVhIHNoYXBlPSJyZWN0IgBzaXplID4gMCAmJiAiYXR0ZW1wdCB0byBhbGxvY2F0ZSBhcnJheSBvZiAwLXNpemVkIGVsZW1lbnRzIgBpbmRleCA8IHNlbGYtPnNpemVfYml0cyAmJiAib3V0IG9mIGJvdW5kcyBhY2Nlc3MiAGluZGV4IDwgc2VsZi5zaXplX2JpdHMgJiYgIm91dCBvZiBib3VuZHMgYWNjZXNzIgAqczEgIT0gKnMyICYmICJkdXBsaWNhdGUgc2VwYXJhdG9yIGNoYXJhY3RlcnMiAEdEX21pbnJhbmsoc3ViZykgPD0gR0RfbWF4cmFuayhzdWJnKSAmJiAiY29ycnVwdGVkIHJhbmsgYm91bmRzIgBpbmRleCA8IGxpc3QtPnNpemUgJiYgImluZGV4IG91dCBvZiBib3VuZHMiAGluZGV4IDwgbm9kZWxpc3Rfc2l6ZShsaXN0KSAmJiAiaW5kZXggb3V0IG9mIGJvdW5kcyIAaW5kZXggPCBlZGdlX2xpc3Rfc2l6ZShsaXN0KSAmJiAiaW5kZXggb3V0IG9mIGJvdW5kcyIAaW5kZXggPCB0cmFwc19zaXplKGxpc3QpICYmICJpbmRleCBvdXQgb2YgYm91bmRzIgBpbmRleCA8IG5vZGVzX3NpemUobGlzdCkgJiYgImluZGV4IG91dCBvZiBib3VuZHMiACh1aW50cHRyX3QpcyAlIDIgPT0gMCAmJiAiaGVhcCBwb2ludGVyIHdpdGggbG93IGJpdCBzZXQgd2lsbCBjb2xsaWRlIHdpdGggYW5vbnltb3VzIElEcyIAICgrJTZsZCBieXRlcyAlc3wldSwgeG1scGFyc2UuYzolZCkgJSpzIgAgZm9udC1mYW1pbHk9IiVzIgAgZm9udC13ZWlnaHQ9IiVzIgAgZmlsbD0iJXMiACBmb250LXN0cmV0Y2g9IiVzIgAgZm9udC1zdHlsZT0iJXMiAGJhZCBlZGdlIGxlbiAiJXMiACBiYXNlbGluZS1zaGlmdD0ic3VwZXIiAGFneGJsZW4oeGIpIDw9IHNpemVvZih4Yi0+dS5zdG9yZSkgJiYgImFneGJ1ZiBjb3JydXB0aW9uIgBjZWxsLnJvdyA8IHRhYmxlLT5yb3dfY291bnQgJiYgIm91dCBvZiByYW5nZSBjZWxsIgBjZWxsLmNvbCA8IHRhYmxlLT5jb2x1bW5fY291bnQgJiYgIm91dCBvZiByYW5nZSBjZWxsIgAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIAZnVsbF9sZW5ndGggPiAwICYmICJub24tcG9zaXRpdmUgZnVsbCBsZW5ndGgiAGZ1bGxfYmFzZV93aWR0aCA+IDAgJiYgIm5vbi1wb3NpdGl2ZSBmdWxsIGJhc2Ugd2lkdGgiAG5vbWluYWxfYmFzZV93aWR0aCA+IDAgJiYgIm5vbi1wb3NpdGl2ZSBub21pbmFsIGJhc2Ugd2lkdGgiACIgd2lkdGg9IiVncHgiIGhlaWdodD0iJWdweCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4gbWVldCIgeD0iJWciIHk9IiVnIgAiIHdpZHRoPSIlZ3B4IiBoZWlnaHQ9IiVncHgiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiIHg9IiVnIiB5PSIlZyIAIGZvbnQtc2l6ZT0iJS4yZiIAIGZpbGwtb3BhY2l0eT0iJWYiADx0ZXh0IHhtbDpzcGFjZT0icHJlc2VydmUiAGlzZmluaXRlKG0pICYmICJlbGxpcHNlIHRhbmdlbnQgc2xvcGUgaXMgaW5maW5pdGUiACh4Yi0+dS5zLmxvY2F0ZWQgPT0gQUdYQlVGX09OX0hFQVAgfHwgeGItPnUucy5sb2NhdGVkIDw9IHNpemVvZih4Yi0+dS5zdG9yZSkpICYmICJjb3JydXB0ZWQgYWd4YnVmIHR5cGUiACB0ZXh0LWFuY2hvcj0ibWlkZGxlIgA8YXJlYSBzaGFwZT0iY2lyY2xlIgBjZWxsLT5yb3cgKyBjZWxsLT5yb3dzcGFuIDw9IHRhYmxlLT5yb3dfY291bnQgJiYgImNlbGwgc3BhbnMgaGlnaGVyIHRoYW4gY29udGFpbmluZyB0YWJsZSIAY2VsbC5yb3cgKyBjZWxsLnJvd3NwYW4gPD0gdGFibGUtPnJvd19jb3VudCAmJiAiY2VsbCBzcGFucyBoaWdoZXIgdGhhbiBjb250YWluaW5nIHRhYmxlIgBjZWxsLT5jb2wgKyBjZWxsLT5jb2xzcGFuIDw9IHRhYmxlLT5jb2x1bW5fY291bnQgJiYgImNlbGwgc3BhbnMgd2lkZXIgdGhhbiBjb250YWluaW5nIHRhYmxlIgBjZWxsLmNvbCArIGNlbGwuY29sc3BhbiA8PSB0YWJsZS0+Y29sdW1uX2NvdW50ICYmICJjZWxsIHNwYW5zIHdpZGVyIHRoYW4gY29udGFpbmluZyB0YWJsZSIAb2xkX25tZW1iIDwgU0laRV9NQVggLyBzaXplICYmICJjbGFpbWVkIHByZXZpb3VzIGV4dGVudCBpcyB0b28gbGFyZ2UiAHRoZXRhID49IDAgJiYgdGhldGEgPD0gTV9QSSAmJiAidGhldGEgb3V0IG9mIHJhbmdlIgB0YWJsZS0+aGVpZ2h0cyA9PSBOVUxMICYmICJ0YWJsZSBoZWlnaHRzIGNvbXB1dGVkIHR3aWNlIgB0YWJsZS0+d2lkdGhzID09IE5VTEwgJiYgInRhYmxlIHdpZHRocyBjb21wdXRlZCB0d2ljZSIAIHRleHQtYW5jaG9yPSJlbmQiACBmb250LXdlaWdodD0iYm9sZCIAIGZvbnQtc3R5bGU9Iml0YWxpYyIAIGJhc2VsaW5lLXNoaWZ0PSJzdWIiAFwiAGxsZW4gPD0gSU5UX01BWCAmJiAiWE1MIHRva2VuIHRvbyBsb25nIGZvciBleHBhdCBBUEkiACIgcnk9IgBfcCIgc3RhcnRPZmZzZXQ9IjUwJSI+PHRzcGFuIHg9IjAiIGR5PSIAIiBjeT0iACIgeT0iACIgcng9IgAgY3g9IgAgeD0iACB0YXJnZXQ9IgAgcG9pbnRzPSIAIGNvb3Jkcz0iACB0ZXh0LWRlY29yYXRpb249IgAgZmlsbD0iACIgc3Ryb2tlLXdpZHRoPSIAPGltYWdlIHhsaW5rOmhyZWY9IgA8P3htbC1zdHlsZXNoZWV0IGhyZWY9IgAiIG5hbWU9IgAgeGxpbms6dGl0bGU9IgAgdGl0bGU9IgAiIHN0cm9rZT0iADxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9IgA8ZGVmcz4KPHJhZGlh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CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2NhbGUgPDEuMDAsIDEuMDAsIDEuNTA+ICogMi41MAogICAgICAgICAgICB0cmFuc2xhdGUgPDAuMDAsIDAuMDAsIDAuMDA+CiAgICAgICAgfQogICAgICAgIGZpbmlzaCB7IGFtYmllbnQgMSBkaWZmdXNlIDAgfQogICAgfQogICAgc2NhbGUgMTAwMDAKfQovL21pc3QKZm9nIHsgZm9nX3R5cGUgMgogICAgZGlzdGFuY2UgNTAKICAgIGNvbG9yIHJnYiA8MS4wMCwgMS4wMCwgMS4wMD4gKiAwLjc1CiAgICBmb2dfb2Zmc2V0IDAuMTAKICAgIGZvZ19hbHQgMS41MAogICAgdHVyYnVsZW5jZSAxLjc1Cn0KLy9nbmQKcGxhbmUgeyA8MC4wMCwgMS4wMCwgMC4wMD4sIDAKICAgIHRleHR1cmUgewogICAgICAgIHBpZ21lbnR7IGNvbG9yIHJnYiA8MC4yNSwgMC40NSwgMC4wMD4gfQogICAgICAgIG5vcm1hbCB7IGJ1bXBzIDAuNzUgc2NhbGUgMC4wMSB9CiAgICAgICAgZmluaXNoIHsgcGhvbmcgMC4xMCB9CiAgICB9Cn0KAGNhbWVyYSB7IGxvY2F0aW9uIDwlLjNmICwgJS4zZiAsIC01MDAuMDAwPgogICAgICAgICBsb29rX2F0ICA8JS4zZiAsICUuM2YgLCAwLjAwMD4KICAgICAgICAgcmlnaHQgeCAqIGltYWdlX3dpZHRoIC8gaW1hZ2VfaGVpZ2h0CiAgICAgICAgIGFuZ2xlICUuM2YKfQoAICAgIG1hdGVyaWFsIE1hdGVyaWFsIHsKAFNoYXBlIHsKACAgYXBwZWFyYW5jZSBBcHBlYXJhbmNlIHsKAC91c2VyX3NoYXBlXyVkIHsKAGdyYXBoIEcgewoAYXJyb3doZWFkID0gNyAlcyBub3QgdXNlZCBieSBncmFwaHZpegoAYm94cmFkID0gMCAlcyBubyByb3VuZGVkIGNvcm5lcnMgaW4gZ3JhcGh2aXoKAG91dCBvZiBtZW1vcnkKACVzOiBjb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5CgBHcmFwaHZpeiBidWlsdCB3aXRob3V0IGFueSB0cmlhbmd1bGF0aW9uIGxpYnJhcnkKAHJlbW92ZV9vdmVybGFwOiBHcmFwaHZpeiBub3QgYnVpbHQgd2l0aCB0cmlhbmd1bGF0aW9uIGxpYnJhcnkKACVzIGZpbGwgaGFzIG5vIG1lYW5pbmcgaW4gRFdCIDIsIGdwaWMgY2FuIHVzZSBmaWxsIG9yIGZpbGxlZCwgMTB0aCBFZGl0aW9uIHVzZXMgZmlsbCBvbmx5CgBib3hyYWQ9Mi4wICVzIHdpbGwgYmUgcmVzZXQgdG8gMC4wIGJ5IGdwaWMgb25seQoAJWQgJWQgIyUwMnglMDJ4JTAyeAoASGVhcCBvdmVyZmxvdwoAdGV4dCB7CiAgICB0dGYgIiVzIiwKICAgICIlcyIsICUuM2YsICUuM2YKICAgICAgICBub19zaGFkb3cKACVkICVkICVkICUuMGYgJWQgJWQgJWQgJWQgJWQgJS4xZiAlZCAlZCAlZCAlZCAlZCAlenUKAHRvdGFsIGFkZGVkIHNvIGZhciA9ICV6dQoAcm9vdCA9ICVzIG1heCBzdGVwcyB0byByb290ID0gJWxsdQoALnBzICUuMGYqXG4oU0Z1LyUuMGZ1CgAgIG1hcmdpbiAldQoATnVtYmVyIG9mIGl0ZXJhdGlvbnMgPSAldQoAb3ZlcmxhcCBbJXVdIDogJXUKACAlcyBhbGlnbmVkdGV4dAoAbGF5ZXJzIG5vdCBzdXBwb3J0ZWQgaW4gJXMgb3V0cHV0CgBhZGRfdHJlZV9lZGdlOiBlbXB0eSBvdXRlZGdlIGxpc3QKAGFkZF90cmVlX2VkZ2U6IGVtcHR5IGluZWRnZSBsaXN0CgBObyBsaWJ6IHN1cHBvcnQKACVzIC5QUyB3L28gYXJncyBjYXVzZXMgR05VIHBpYyB0byBzY2FsZSBkcmF3aW5nIHRvIGZpdCA4LjV4MTEgcGFwZXI7IERXQiBkb2VzIG5vdAoAJXMgR05VIHBpYyBzdXBwb3J0cyBhIGxpbmV0aGljayB2YXJpYWJsZSB0byBzZXQgbGluZSB0aGlja25lc3M7IERXQiBhbmQgMTB0aCBFZC4gZG8gbm90CgAlcyBHTlUgcGljIHN1cHBvcnRzIGEgYm94cmFkIHZhcmlhYmxlIHRvIGRyYXcgYm94ZXMgd2l0aCByb3VuZGVkIGNvcm5lcnM7IERXQiBhbmQgMTB0aCBFZC4gZG8gbm90CgAgLyVzIHNldF9mb250CgAlcyUuKnMgaXMgbm90IGEgdHJvZmYgZm9udAoAY2VsbCBzaXplIHRvbyBzbWFsbCBmb3IgY29udGVudAoAdGFibGUgc2l6ZSB0b28gc21hbGwgZm9yIGNvbnRlbnQKACUlRW5kRG9jdW1lbnQKAFVuY2xvc2VkIGNvbW1lbnQKAExhYmVsIGNsb3NlZCBiZWZvcmUgZW5kIG9mIEhUTUwgZWxlbWVudAoAUG9ydHJhaXQKAGZpeGVkIGNlbGwgc2l6ZSB3aXRoIHVuc3BlY2lmaWVkIHdpZHRoIG9yIGhlaWdodAoAZml4ZWQgdGFibGUgc2l6ZSB3aXRoIHVuc3BlY2lmaWVkIHdpZHRoIG9yIGhlaWdodAoAcG9zIGF0dHJpYnV0ZSBmb3IgZWRnZSAoJXMsJXMpIGRvZXNuJ3QgaGF2ZSAzbisxIHBvaW50cwoAICBnZW5lcmF0ZWQgJWQgY29uc3RyYWludHMKAHNwbGluZXMgYW5kIGNsdXN0ZXIgZWRnZXMgbm90IHN1cHBvcnRlZCAtIHVzaW5nIGxpbmUgc2VnbWVudHMKAG9iamVjdHMKAFdhcm5pbmc6IG5vZGUgJXMsIHBvc2l0aW9uICVzLCBleHBlY3RlZCB0d28gZmxvYXRzCgBmb250IG5hbWUgJXMgY29udGFpbnMgY2hhcmFjdGVycyB0aGF0IG1heSBub3QgYmUgYWNjZXB0ZWQgYnkgc29tZSBQUyB2aWV3ZXJzCgBmb250IG5hbWUgJXMgaXMgbG9uZ2VyIHRoYW4gMjkgY2hhcmFjdGVycyB3aGljaCBtYXkgYmUgcmVqZWN0ZWQgYnkgc29tZSBQUyB2aWV3ZXJzCgBjYW5ub3QgYWxsb2NhdGUgcHMKAHNjYWxlPTEuMCAlcyByZXF1aXJlZCBmb3IgY29tcGFyaXNvbnMKAFNldHRpbmcgaW5pdGlhbCBwb3NpdGlvbnMKACVzIERXQiAyIGNvbXBhdGliaWxpdHkgZGVmaW5pdGlvbnMKAGFycmF5IHBhY2tpbmc6ICVzICV6dSByb3dzICV6dSBjb2x1bW5zCgBzeW50YXggYW1iaWd1aXR5IC0gYmFkbHkgZGVsaW1pdGVkIG51bWJlciAnJXMnIGluIGxpbmUgJWQgb2YgJXMgc3BsaXRzIGludG8gdHdvIHRva2VucwoAZWRnZSBsYWJlbHMgd2l0aCBzcGxpbmVzPWN1cnZlZCBub3Qgc3VwcG9ydGVkIGluIGRvdCAtIHVzZSB4bGFiZWxzCgBmbGF0IGVkZ2UgYmV0d2VlbiBhZGphY2VudCBub2RlcyBvbmUgb2Ygd2hpY2ggaGFzIGEgcmVjb3JkIHNoYXBlIC0gcmVwbGFjZSByZWNvcmRzIHdpdGggSFRNTC1saWtlIGxhYmVscwoAb3V0IG9mIG1lbW9yeSB3aGVuIHRyeWluZyB0byBhbGxvY2F0ZSAlenUgYnl0ZXMKAGludGVnZXIgb3ZlcmZsb3cgd2hlbiB0cnlpbmcgdG8gYWxsb2NhdGUgJXp1ICogJXp1IGJ5dGVzCgB1cGRhdGU6IG1pc21hdGNoZWQgbGNhIGluIHRyZWV1cGRhdGVzCgBncmFwaCAlcywgY29vcmQgJXMsIGV4cGVjdGVkIGZvdXIgZG91YmxlcwoAbm9kZSAlcywgcG9zaXRpb24gJXMsIGV4cGVjdGVkIHR3byBkb3VibGVzCgBGb3VuZCAlZCBEaUctQ29MYSBib3VuZGFyaWVzCgBJbmNoZXMKACglNHp1KSAlN3p1IG5vZGVzICU3enUgZWRnZXMKAGNvbXBvdW5kRWRnZXM6IGNvdWxkIG5vdCBjb25zdHJ1Y3Qgb2JzdGFjbGVzIC0gZmFsbGluZyBiYWNrIHRvIHN0cmFpZ2h0IGxpbmUgZWRnZXMKAHRoZSBib3VuZGluZyBib3hlcyBvZiBzb21lIG5vZGVzIHRvdWNoIC0gZmFsbGluZyBiYWNrIHRvIHN0cmFpZ2h0IGxpbmUgZWRnZXMKAGNvbXBvdW5kRWRnZXM6IG5vZGVzIHRvdWNoIC0gZmFsbGluZyBiYWNrIHRvIHN0cmFpZ2h0IGxpbmUgZWRnZXMKAHNvbWUgbm9kZXMgd2l0aCBtYXJnaW4gKCUuMDJmLCUuMDJmKSB0b3VjaCAtIGZhbGxpbmcgYmFjayB0byBzdHJhaWdodCBsaW5lIGVkZ2VzCgBtZXJnZTI6IGdyYXBoICVzLCByYW5rICVkIGhhcyBvbmx5ICVkIDwgJWQgbm9kZXMKAFNjYW5uaW5nIGdyYXBoICVzLCAlZCBub2RlcwoAV2FybmluZzogbm8gaGFyZC1jb2RlZCBtZXRyaWNzIGZvciAnJXMnLiAgRmFsbGluZyBiYWNrIHRvICdUaW1lcycgbWV0cmljcwoAaW4gZWRnZSAlcyVzJXMKAFVzaW5nICVzOiAlczolcwoARm9ybWF0OiAiJXMiIG5vdCByZWNvZ25pemVkLiBVc2Ugb25lIG9mOiVzCgBMYXlvdXQgdHlwZTogIiVzIiBub3QgcmVjb2duaXplZC4gVXNlIG9uZSBvZjolcwoAbGF5b3V0ICVzCgAuZnQgJXMKAGJhZCBsYWJlbCBmb3JtYXQgJXMKAGluIHJvdXRlc3BsaW5lcywgZWRnZSBpcyBhIGxvb3AgYXQgJXMKACAgICAgICAlN2Qgbm9kZXMgJTdkIGVkZ2VzICU3enUgY29tcG9uZW50cyAlcwoAaW4gbGFiZWwgb2YgZWRnZSAlcyAlcyAlcwoAICBFZGdlICVzICVzICVzCgBvcnRobyAlcyAlcwoAcG9seWxpbmUgJXMgJXMKAHNwbGluZSAlcyAlcwoAcmVjdGFuZ2xlICglLjBmLCUuMGYpICglLjBmLCUuMGYpICVzICVzCgBpbiBjbHVzdGVyICVzCgAlcyB3YXMgYWxyZWFkeSBpbiBhIHJhbmtzZXQsIGRlbGV0ZWQgZnJvbSBjbHVzdGVyICVzCgAlcyAtPiAlczogdGFpbCBub3QgaW5zaWRlIHRhaWwgY2x1c3RlciAlcwoAJXMgLT4gJXM6IGhlYWQgaXMgaW5zaWRlIHRhaWwgY2x1c3RlciAlcwoAaGVhZCBjbHVzdGVyICVzIGluc2lkZSB0YWlsIGNsdXN0ZXIgJXMKAGhlYWQgbm9kZSAlcyBpbnNpZGUgdGFpbCBjbHVzdGVyICVzCgAlcyAtPiAlczogaGVhZCBub3QgaW5zaWRlIGhlYWQgY2x1c3RlciAlcwoAJXMgLT4gJXM6IHRhaWwgaXMgaW5zaWRlIGhlYWQgY2x1c3RlciAlcwoAdGFpbCBjbHVzdGVyICVzIGluc2lkZSBoZWFkIGNsdXN0ZXIgJXMKAHRhaWwgbm9kZSAlcyBpbnNpZGUgaGVhZCBjbHVzdGVyICVzCgBVbmhhbmRsZWQgYWRqdXN0IG9wdGlvbiAlcwoAcmVwb3NpdGlvbiAlcwoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCB4bGFiZWwgJXMKAG5vIHBvc2l0aW9uIGZvciBlZGdlIHdpdGggdGFpbCBsYWJlbCAlcwoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCBsYWJlbCAlcwoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCBoZWFkIGxhYmVsICVzCgAvLyoqKiBiZWdpbl9ncmFwaCAlcwoATWF4LiBpdGVyYXRpb25zICglZCkgcmVhY2hlZCBvbiBncmFwaCAlcwoAQ291bGQgbm90IHBhcnNlICJfYmFja2dyb3VuZCIgYXR0cmlidXRlIGluIGdyYXBoICVzCgBpbiBsYWJlbCBvZiBncmFwaCAlcwoAQ3JlYXRpbmcgZWRnZXMgdXNpbmcgJXMKAEFkanVzdGluZyAlcyB1c2luZyAlcwoAJXMgd2hpbGUgb3BlbmluZyAlcwoAZGVyaXZlIGdyYXBoIF9kZ18lZCBvZiAlcwoAIF0gICV6dSB0cnVlICVzCgBdICAlZCB0cnVlICVzCgAgXSAgJXp1IGZhbHNlICVzCgBdICAlZCBmYWxzZSAlcwoAbWFrZVBvbHk6IHVua25vd24gc2hhcGUgdHlwZSAlcwoAbWFrZUFkZFBvbHk6IHVua25vd24gc2hhcGUgdHlwZSAlcwoAdXNpbmcgJXMgZm9yIHVua25vd24gc2hhcGUgJXMKACAgb2N0cmVlIHNjaGVtZSAlcwoAY2FuJ3Qgb3BlbiBsaWJyYXJ5IGZpbGUgJXMKAGNhbid0IGZpbmQgbGlicmFyeSBmaWxlICVzCgBCb3VuZGluZ0JveCBub3QgZm91bmQgaW4gZXBzZiBmaWxlICVzCgBjb3VsZG4ndCBvcGVuIGVwc2YgZmlsZSAlcwoAY291bGRuJ3QgcmVhZCBmcm9tIGVwc2YgZmlsZSAlcwoAaW4gbm9kZSAlcwoAc2hhcGVmaWxlIG5vdCBzZXQgb3Igbm90IGZvdW5kIGZvciBlcHNmIG5vZGUgJXMKAGluIGxhYmVsIG9mIG5vZGUgJXMKAGVuZCAlcwoAcmFua2luZzogZmFpbHVyZSB0byBjcmVhdGUgc3Ryb25nIGNvbnN0cmFpbnQgZWRnZSBiZXR3ZWVuIG5vZGVzICVzIGFuZCAlcwoAb29wcywgaW50ZXJuYWwgZXJyb3I6IHVuaGFuZGxlZCBjb2xvciB0eXBlPSVkICVzCgAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlLjFmICVkICVkICVkICVkICVkICVkCiAlZCAlcwoALy8qKiogdGV4dHNwYW46ICVzLCBmb250c2l6ZSA9ICUuM2YsIGZvbnRuYW1lID0gJXMKAHRyaWVzID0gJWQsIG1vZGUgPSAlcwoALy8qKiogY29tbWVudDogJXMKAGZvbnRuYW1lOiAiJXMiIHJlc29sdmVkIHRvOiAlcwoAJSUlJVBhZ2VPcmllbnRhdGlvbjogJXMKAGRlbGF1bmF5X3RyaWFuZ3VsYXRpb246ICVzCgBkZWxhdW5heV90cmk6ICVzCgBndnByaW50ZjogJXMKAG5lc3Rpbmcgbm90IGFsbG93ZWQgaW4gc3R5bGU6ICVzCgB1bm1hdGNoZWQgJyknIGluIHN0eWxlOiAlcwoAdW5tYXRjaGVkICcoJyBpbiBzdHlsZTogJXMKACUlJSVUaXRsZTogJXMKACVzIFRpdGxlOiAlcwoAIyBUaXRsZTogJXMKAC8vKioqIGJlZ2luX25vZGU6ICVzCgByZWFsbG9jIGZhaWxlZDogJXMKAGxpYi9wYXRocGxhbi8lczolZDogJXMKAGdyaWQoJWQsJWQpOiAlcwoAQ291bGQgbm90IG9wZW4gIiVzIiBmb3Igd3JpdGluZyA6ICVzCgBzdGFydCBwb3J0OiAoJS41ZywgJS41ZyksIHRhbmdlbnQgYW5nbGU6ICUuNWcsICVzCgBlbmQgcG9ydDogKCUuNWcsICUuNWcpLCB0YW5nZW50IGFuZ2xlOiAlLjVnLCAlcwoAIFslenVdICVwIHNldCAlZCAoJS4wMmYsJS4wMmYpICglLjAyZiwlLjAyZikgJXMKACUlICVzCgAjICVzCgAgIG1vZGUgICAlcwoAY29uanVnYXRlX2dyYWRpZW50OiB1bmV4cGVjdGVkIGxlbmd0aCAwIHZlY3RvcgoAJXMgdG8gY2hhbmdlIGRyYXdpbmcgc2l6ZSwgbXVsdGlwbHkgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb24gdGhlIC5QUyBsaW5lIGFib3ZlIGFuZCB0aGUgbnVtYmVyIG9uIHRoZSB0d28gbGluZXMgYmVsb3cgKHJvdW5kZWQgdG8gdGhlIG5lYXJlc3QgaW50ZWdlcikgYnkgYSBzY2FsZSBmYWN0b3IKAGFkZF9zZWdtZW50OiBlcnJvcgoAJS41ZyAlLjVnICUuNWcgJXNjb2xvcgoAMCAwIDAgZWRnZWNvbG9yCgAwLjggMC44IDAuOCBzZXRyZ2Jjb2xvcgoAMCAwIDEgc2V0cmdiY29sb3IKADEgMCAwIHNldHJnYmNvbG9yCgAwIDAgMCBzZXRyZ2Jjb2xvcgoAJWQgJWQgc2V0bGF5ZXIKAC8vKioqIGVuZF9sYXllcgoAVVRGLTggaW5wdXQgdXNlcyBub24tTGF0aW4xIGNoYXJhY3RlcnMgd2hpY2ggY2Fubm90IGJlIGhhbmRsZWQgYnkgdGhpcyBQb3N0U2NyaXB0IGRyaXZlcgoATGV0dGVyCgAvLyoqKiBiZWdpbl9jbHVzdGVyCgAvLyoqKiBlbmRfY2x1c3RlcgoAcmVtb3ZpbmcgZW1wdHkgY2x1c3RlcgoAQ2VudGVyCgBXYXJuaW5nOiBubyB2YWx1ZSBmb3Igd2lkdGggb2Ygbm9uLUFTQ0lJIGNoYXJhY3RlciAldS4gRmFsbGluZyBiYWNrIHRvIHdpZHRoIG9mIHNwYWNlIGNoYXJhY3RlcgoAYmFzZSByZWZlcmVyCgAlJVBhZ2VUcmFpbGVyCgAlJVRyYWlsZXIKAC8vKioqIGJlemllcgoAIiVzIiB3YXMgbm90IGZvdW5kIGFzIGEgZmlsZSBvciBhcyBhIHNoYXBlIGxpYnJhcnkgbWVtYmVyCgBzdG9wCgAgY3VydmV0bwoAbmV3cGF0aCAlLjBmICUuMGYgbW92ZXRvCgAlLjBmICUuMGYgbGluZXRvCgAgbGF5b3V0PW5lYXRvCgBub2RlICVzIGluIGdyYXBoICVzIGhhcyBubyBwb3NpdGlvbgoAJXMgbWF4cHNodCBhbmQgbWF4cHN3aWQgaGF2ZSBubyBtZWFuaW5nIGluIERXQiAyLjAsIHNldCBwYWdlIGJvdW5kYXJpZXMgaW4gZ3BpYyBhbmQgaW4gMTB0aCBFZGl0aW9uCgAlcyBhcnJvd2hlYWQgaGFzIG5vIG1lYW5pbmcgaW4gRFdCIDIsIGFycm93aGVhZCA9IDcgbWFrZXMgZmlsbGVkIGFycm93aGVhZHMgaW4gZ3BpYyBhbmQgaW4gMTB0aCBFZGl0aW9uCgAlcyBhcnJvd2hlYWQgaXMgdW5kZWZpbmVkIGluIERXQiAyLCBpbml0aWFsbHkgMSBpbiBncGljLCAyIGluIDEwdGggRWRpdGlvbgoAbWFqb3JpemF0aW9uCgAvLyoqKiBwb2x5Z29uCgBvdmVyZmxvdyB3aGVuIGNvbXB1dGluZyBlZGdlIHdlaWdodCBzdW0KAHNmZHAgb25seSBzdXBwb3J0cyBzdGFydD1yYW5kb20KAG5vZGUgcG9zaXRpb25zIGFyZSBpZ25vcmVkIHVubGVzcyBzdGFydD1yYW5kb20KAGNsb3NlcGF0aCBmaWxsCgAgZWxsaXBzZV9wYXRoIGZpbGwKACAgJS4wZiAlLjBmIGNlbGwKACVmICVmICVmICVmIGNlbGwKAGdyYXBoICVzIGlzIGRpc2Nvbm5lY3RlZC4gSGVuY2UsIHRoZSBjaXJjdWl0IG1vZGVsCgBncmFwaCBpcyBkaXNjb25uZWN0ZWQuIEhlbmNlLCB0aGUgY2lyY3VpdCBtb2RlbAoAZWRnZXMgaW4gZ3JhcGggJXMgaGF2ZSBubyBsZW4gYXR0cmlidXRlLiBIZW5jZSwgdGhlIG1kcyBtb2RlbAoAY2lyY3VpdCBtb2RlbCBub3QgeWV0IHN1cHBvcnRlZCBpbiBHbW9kZT1zZ2QsIHJldmVydGluZyB0byBzaG9ydHBhdGggbW9kZWwKAG1kcyBtb2RlbCBub3QgeWV0IHN1cHBvcnRlZCBpbiBHbW9kZT1zZ2QsIHJldmVydGluZyB0byBzaG9ydHBhdGggbW9kZWwKAG5vZGUgJyVzJywgZ3JhcGggJyVzJyBzaXplIHRvbyBzbWFsbCBmb3IgbGFiZWwKACVzIERXQiAyIGRvZXNuJ3QgdXNlIGZpbGwgYW5kIGRvZXNuJ3QgZGVmaW5lIGZpbGx2YWwKAFsge0NhdGFsb2d9IDw8IC9VUkkgPDwgL0Jhc2UgJXMgPj4gPj4KL1BVVCBwZGZtYXJrCgBbIC9Dcm9wQm94IFslZCAlZCAlZCAlZF0gL1BBR0VTIHBkZm1hcmsKACAgL0JvcmRlciBbIDAgMCAwIF0KICAvQWN0aW9uIDw8IC9TdWJ0eXBlIC9VUkkgL1VSSSAlcyA+PgogIC9TdWJ0eXBlIC9MaW5rCi9BTk4gcGRmbWFyawoAdHJvdWJsZSBpbiBpbml0X3JhbmsKAGxpbmV0aGljayA9IDA7IG9sZGxpbmV0aGljayA9IGxpbmV0aGljawoAIHNldGxpbmV3aWR0aAoAZ3NhdmUKJWQgJWQgJWQgJWQgYm94cHJpbSBjbGlwIG5ld3BhdGgKAGdzYXZlICVnICVnIHRyYW5zbGF0ZSBuZXdwYXRoCgAvLyoqKiBlbmRfZ3JhcGgKAGxheW91dCBhdHRyaWJ1dGUgaXMgaW52YWxpZCBleGNlcHQgb24gdGhlIHJvb3QgZ3JhcGgKAGluIGNoZWNrcGF0aCwgYm94ZXMgJXp1IGFuZCAlenUgZG9uJ3QgdG91Y2gKAG1lcmdlX29uZXdheSBnbGl0Y2gKACVzIGRvbid0IGNoYW5nZSBhbnl0aGluZyBiZWxvdyB0aGlzIGxpbmUgaW4gdGhpcyBkcmF3aW5nCgBOb2RlIG5vdCBhZGphY2VudCB0byBjZWxsIC0tIEFib3J0aW5nCgBpbmNvbXBhcmFibGUgc2VnbWVudHMgISEgLS0gQWJvcnRpbmcKAEFsdGVybmF0aXZlbHksIGNvbnNpZGVyIHJ1bm5pbmcgbmVhdG8gdXNpbmcgLUdwYWNrPXRydWUgb3IgZGVjb21wb3NpbmcKAGxhYmVsX3NjaGVtZSA9ICVkID4gNCA6IGlnbm9yaW5nCgBndnJlbmRlcl9zZXRfc3R5bGU6IHVuc3VwcG9ydGVkIHN0eWxlICVzIC0gaWdub3JpbmcKAEFycm93IHR5cGUgIiVzIiB1bmtub3duIC0gaWdub3JpbmcKAGZkcCBkb2VzIG5vdCBzdXBwb3J0IHN0YXJ0PXNlbGYgLSBpZ25vcmluZwoAJXMgYXR0cmlidXRlIHZhbHVlIG11c3QgYmUgMSBvciAyIC0gaWdub3JpbmcKAE1vcmUgdGhhbiAyIGNvbG9ycyBzcGVjaWZpZWQgZm9yIGEgZ3JhZGllbnQgLSBpZ25vcmluZyByZW1haW5pbmcKAGFzIHJlcXVpcmVkIGJ5IHRoZSAtbiBmbGFnCgBiYlslc10gJS41ZyAlLjVnICUuNWcgJS41ZwoAL3BhdGhib3ggewogICAgL1kgZXhjaCAlLjVnIHN1YiBkZWYKICAgIC9YIGV4Y2ggJS41ZyBzdWIgZGVmCiAgICAveSBleGNoICUuNWcgc3ViIGRlZgogICAgL3ggZXhjaCAlLjVnIHN1YiBkZWYKICAgIG5ld3BhdGggeCB5IG1vdmV0bwogICAgWCB5IGxpbmV0bwogICAgWCBZIGxpbmV0bwogICAgeCBZIGxpbmV0bwogICAgY2xvc2VwYXRoIHN0cm9rZQogfSBkZWYKL2RiZ3N0YXJ0IHsgZ3NhdmUgJS41ZyAlLjVnIHRyYW5zbGF0ZSB9IGRlZgovYXJyb3dsZW5ndGggMTAgZGVmCi9hcnJvd3dpZHRoIGFycm93bGVuZ3RoIDIgZGl2IGRlZgovYXJyb3doZWFkIHsKICAgIGdzYXZlCiAgICByb3RhdGUKICAgIGN1cnJlbnRwb2ludAogICAgbmV3cGF0aAogICAgbW92ZXRvCiAgICBhcnJvd2xlbmd0aCBhcnJvd3dpZHRoIDIgZGl2IHJsaW5ldG8KICAgIDAgYXJyb3d3aWR0aCBuZWcgcmxpbmV0bwogICAgY2xvc2VwYXRoIGZpbGwKICAgIGdyZXN0b3JlCn0gYmluZCBkZWYKL21ha2VhcnJvdyB7CiAgICBjdXJyZW50cG9pbnQgZXhjaCBwb3Agc3ViIGV4Y2ggY3VycmVudHBvaW50IHBvcCBzdWIgYXRhbgogICAgYXJyb3doZWFkCn0gYmluZCBkZWYKL3BvaW50IHsgICAgbmV3cGF0aCAgICAyIDAgMzYwIGFyYyBmaWxsfSBkZWYvbWFrZXZlYyB7CiAgICAvWSBleGNoIGRlZgogICAgL1ggZXhjaCBkZWYKICAgIC95IGV4Y2ggZGVmCiAgICAveCBleGNoIGRlZgogICAgbmV3cGF0aCB4IHkgbW92ZXRvCiAgICBYIFkgbGluZXRvIHN0cm9rZQogICAgWCBZIG1vdmV0bwogICAgeCB5IG1ha2VhcnJvdwp9IGRlZgoAL3BhdGhib3ggewogICAgL1ggZXhjaCBuZWcgJS41ZyBzdWIgZGVmCiAgICAvWSBleGNoICUuNWcgc3ViIGRlZgogICAgL3ggZXhjaCBuZWcgJS41ZyBzdWIgZGVmCiAgICAveSBleGNoICUuNWcgc3ViIGRlZgogICAgbmV3cGF0aCB4IHkgbW92ZXRvCiAgICBYIHkgbGluZXRv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eSBhbGxvY2F0aW9uIGZhaWx1cmUKACVzOiB2c25wcmludGYgZmFpbHVyZQoAZW5kcGFnZQpzaG93cGFnZQpncmVzdG9yZQoAZW5kCnJlc3RvcmUKAGxheW91dCB3YXMgbm90IGRvbmUKAExheW91dCB3YXMgbm90IGRvbmUKAC8vKioqIHBvbHlsaW5lCgB0cnlpbmcgdG8gZGVsZXRlIGEgbm9uLWxpbmUKACMgZW5kIG9mIEZJRyBmaWxlCgBTaW5nbGUKAHJlbmRlcmVyIGZvciAlcyBpcyB1bmF2YWlsYWJsZQoAZHluYW1pYyBsb2FkaW5nIG5vdCBhdmFpbGFibGUKACUuMGYgJS4wZiBsaW5ldG8gc3Ryb2tlCgBjbG9zZXBhdGggc3Ryb2tlCgAgZWxsaXBzZV9wYXRoIHN0cm9rZQoALy8qKiogYmVnaW5fZWRnZQoALy8qKiogZW5kX2VkZ2UKAGxvc3QgJXMgJXMgZWRnZQoAb3ZlcmZsb3cgd2hlbiBjYWxjdWxhdGluZyB2aXJ0dWFsIHdlaWdodCBvZiBlZGdlCgBhZGRfdHJlZV9lZGdlOiBtaXNzaW5nIHRyZWUgZWRnZQoAaW4gcm91dGVzcGxpbmVzLCBjYW5ub3QgZmluZCBOT1JNQUwgZWRnZQoAc2hvd3BhZ2UKACVkICVkICVkIGJlZ2lucGFnZQoALy8qKiogYmVnaW5fcGFnZQoALy8qKiogZW5kX3BhZ2UKAEZpbGVuYW1lICIlcyIgaXMgdW5zYWZlCgBsYWJlbDogYXJlYSB0b28gbGFyZ2UgZm9yIHJ0cmVlCgAvLyoqKiBlbmRfbm9kZQoAVXNpbmcgZGVmYXVsdCBjYWxjdWxhdGlvbiBmb3Igcm9vdCBub2RlCgBjb250YWluX25vZGVzIGNsdXN0ICVzIHJhbmsgJWQgbWlzc2luZyBub2RlCgAlZiAlZiAlZiAlZiBub2RlCgA8PCAvUGFnZVNpemUgWyVkICVkXSA+PiBzZXRwYWdlZGV2aWNlCgBpbiBjaGVja3BhdGgsIGJveCAlenUgaGFzIExMIGNvb3JkID4gVVIgY29vcmQKAGluIGNoZWNrcGF0aCwgYm94IDAgaGFzIExMIGNvb3JkID4gVVIgY29vcmQKAGNsdXN0ZXIgbmFtZWQgJXMgbm90IGZvdW5kCgBpbnRlZ2VyIG92ZXJmbG93IGR1cmluZyBsaXN0IHByZXBlbmQKAG1pbmNyb3NzOiBwYXNzICVkIGl0ZXIgJWQgdHJ5aW5nICVkIGN1cl9jcm9zcyAlbGxkIGJlc3RfY3Jvc3MgJWxsZAoAbm9kZSAlcywgcG9ydCAlcyB1bnJlY29nbml6ZWQKACVzJXMgdW5zdXBwb3J0ZWQKAGNsdXN0ZXIgY3ljbGUgJXMgLS0gJXMgbm90IHN1cHBvcnRlZAoAJXMgLT4gJXM6IHNwbGluZSBzaXplID4gMSBub3Qgc3VwcG9ydGVkCgBsYXlvdXQgYWJvcnRlZAoAcGFnZWRpcj0lcyBpZ25vcmVkCgBUd28gY2x1c3RlcnMgbmFtZWQgJXMgLSB0aGUgc2Vjb25kIHdpbGwgYmUgaWdub3JlZAoASWxsZWdhbCBhdHRyaWJ1dGUgJXMgaW4gJXMgLSBpZ25vcmVkCgBVbmtub3duIHZhbHVlICVzIGZvciBhdHRyaWJ1dGUgIm1vZGVsIiBpbiBncmFwaCAlcyAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIGF0dHJpYnV0ZSAibW9kZSIgaW4gZ3JhcGggJXMgLSBpZ25vcmVkCgBzdGFydD0wIG5vdCBzdXBwb3J0ZWQgd2l0aCBtb2RlPXNlbGYgLSBpZ25vcmVkCgBPdmVybGFwIHZhbHVlICIlcyIgdW5zdXBwb3J0ZWQgLSBpZ25vcmVkCgBVbmtub3duIHZhbHVlICVzIGZvciBST1dTIC0gaWdub3JlZAoAVW5rbm93biB2YWx1ZSAlcyBmb3IgQ09MVU1OUyAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIFZBTElHTiAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIEFMSUdOIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlcyBmb3IgRklYRURTSVpFIC0gaWdub3JlZAoASWxsZWdhbCB2YWx1ZSAlLipzIGZvciBTVFlMRSAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIEJBTElHTiBpbiBURCAtIGlnbm9yZWQKAElsbGVnYWwgdmFsdWUgJXMgZm9yIEFMSUdOIGluIFREIC0gaWdub3JlZAoAUk9XU1BBTiB2YWx1ZSBjYW5ub3QgYmUgMCAtIGlnbm9yZWQKAENPTFNQQU4gdmFsdWUgY2Fubm90IGJlIDAgLSBpZ25vcmVkCgBub2RlICVzLCBwb3J0ICVzLCB1bnJlY29nbml6ZWQgY29tcGFzcyBwb2ludCAnJXMnIC0gaWdub3JlZAoAVW5rbm93biAic3BsaW5lcyIgdmFsdWU6ICIlcyIgLSBpZ25vcmVkCgBpbiByb3V0ZXNwbGluZXMsIFBzaG9ydGVzdHBhdGggZmFpbGVkCgBpbiByb3V0ZXNwbGluZXMsIFByb3V0ZXNwbGluZSBmYWlsZWQKACMgcGx1Z2luIGxvYWRpbmcgb2YgZGVwZW5kZW5jeSAiJS4qcyIgZmFpbGVkCgBQYXJzaW5nIG9mICIlcyIgZmFpbGVkCgAlczolZDogY2xhaW1lZCB1bnJlYWNoYWJsZSBjb2RlIHdhcyByZWFjaGVkCgAjIHVuc3VjY2Vzc2Z1bCBwbHVnaW4gbG9hZAoAJS41ZyAlLjVnIHRyYW5zbGF0ZSBuZXdwYXRoIHVzZXJfc2hhcGVfJWQKAG5zaXplc2NhbGU9JWYsaXRlcmF0aW9ucz0lZAoAY3RybC0+b3ZlcmxhcD0lZAoAJXMgJWQgbm9kZXMgJWQgZWRnZXMgbWF4aXRlcj0lZCBiYWxhbmNlPSVkCgAvLyoqKiBiZWdpbl9sYXllcjogJXMsICVkLyVkCgBkZWdlbmVyYXRlIGNvbmNlbnRyYXRlZCByYW5rICVzLCVkCgAgIG1heCBsZXZlbHMgJWQKAAklcyAlZAoAICBCYXJuZXMtSHV0dCBjb25zdGFudCAlLjAzZiB0b2xlcmFuY2UgICUuMDNmIG1heGl0ZXIgJWQKAGd2d3JpdGVfbm9feiBwcm9ibGVtICVkCgAgIHF1YWR0cmVlIHNpemUgJWQgbWF4X2xldmVsICVkCgByZWJ1aWxkX3ZsaXN0czogbGVhZCBpcyBudWxsIGZvciByYW5rICVkCgByZWJ1aWxkX3ZsaXN0czogcmFuayBsZWFkICVzIG5vdCBpbiBvcmRlciAlZCBvZiByYW5rICVkCgAgIHNtb290aGluZyAlcyBvdmVybGFwICVkIGluaXRpYWxfc2NhbGluZyAlLjAzZiBkb19zaHJpbmtpbmcgJWQKACAgY29vbGluZyAlLjAzZiBzdGVwIHNpemUgICUuMDNmIGFkYXB0aXZlICVkCgBVbnN1cHBvcnRlZCBjaGFyc2V0IHZhbHVlICVkCgBpbiByb3V0ZXNwbGluZXMsIGlsbGVnYWwgdmFsdWVzIG9mIHByZXYgJWQgYW5kIG5leHQgJWQsIGxpbmUgJWQKACAgZWRnZV9sYWJlbGluZ19zY2hlbWUgJWQKAGFnZGljdG9mOiB1bmtub3duIGtpbmQgJWQKACAgcmFuZG9tIHN0YXJ0ICVkIHNlZWQgJWQKACVkICVkICVkICUuMGYgJWQgJWQgJWQgJWQgJWQgJS4xZiAlZCAlZCAlZCAlZAoAJSUlJVBhZ2VCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQKACUlJSVCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQKACUlJSVQYWdlOiAlZCAlZAoAJXMgbm8uIGNlbGxzICVkIFcgJWQgSCAlZAoATWF4cmFuayA9ICVkLCBtaW5yYW5rID0gJWQKAHN0ZXAgc2l6ZSA9ICVkCgAlJSUlUGFnZXM6ICVkCgAjIFBhZ2VzOiAlZAoAJSUlJUVuZFBhZ2U6ICVkCgAiZm9udGNoYXIiOiAlZAoAICBmbGFncyAgJWQKACAgc2l6ZSAgICVkCgAlcyBkYXNod2lkIGlzIDAuMSBpbiAxMHRoIEVkaXRpb24sIDAuMDUgaW4gRFdCIDIgYW5kIGluIGdwaWMKACVzIG1heHBzaHQgYW5kIG1heHBzd2lkIGFyZSBwcmVkZWZpbmVkIHRvIDExLjAgYW5kIDguNSBpbiBncGljCgAgJWQlcyBpdGVyYXRpb25zICUuMmYgc2VjCgAKZmluYWwgZSA9ICVmICVkIGl0ZXJhdGlvbnMgJS4yZiBzZWMKACVkIG5vZGVzICUuMmYgc2VjCgAlcyV6dSBub2RlcyAlenUgZWRnZXMgJWQgaXRlciAlLjJmIHNlYwoACmZpbmlzaGVkIGluICUuMmYgc2VjCgA6ICUuMmYgc2VjCgAgbm9kZVtzaGFwZT1wb2ludF0KACJyZWN0IjogWyUuMDNmLCUuMDNmLCUuMDNmLCUuMDNmXQoAaW5zdGFsbF9pbl9yYW5rLCBsaW5lICVkOiBORF9vcmRlciglcykgWyVkXSA+IEdEX3JhbmsoUm9vdClbJWRdLmFuIFslZF0KAGluc3RhbGxfaW5fcmFuaywgbGluZSAlZDogR0RfcmFuayhnKVslZF0udiArIE5EX29yZGVyKCVzKSBbJWRdID4gR0RfcmFuayhnKVslZF0uYXYgKyBHRF9yYW5rKFJvb3QpWyVkXS5hbiBbJWRdCgBpbnN0YWxsX2luX3JhbmssIGxpbmUgJWQ6IHJhbmsgJWQgbm90IGluIHJhbmsgcmFuZ2UgWyVkLCVkXQoAZmFpbGVkIGF0IG5vZGUgJWRbMV0KAGZhaWxlZCBhdCBub2RlICVkWzBdCgAgICVkIC0tICVkW2xhYmVsPSIlZiJdCgAgICVkIFtwb3M9IiUuMGYsJS4wZiEiXQoAIF0KAERvdDogWwoAIm9iamVjdHMiOiBbCgAic3ViZ3JhcGhzIjogWwoAImVkZ2VzIjogWwoAIm5vZGVzIjogWwoAWCBlbHNlIFoKCWRlZmluZSBzZXRmaWxsdmFsIFkgZmlsbHZhbCA9IFk7CglkZWZpbmUgYm9sZCBZIFk7CglkZWZpbmUgZmlsbGVkIFkgZmlsbCBZOwpaCgBpZiBib3hyYWQgPiAxLjAgJiYgZGFzaHdpZCA8IDAuMDc1IHRoZW4gWAoJZmlsbHZhbCA9IDE7CglkZWZpbmUgZmlsbCBZIFk7CglkZWZpbmUgc29saWQgWSBZOwoJZGVmaW5lIHJlc2V0IFkgc2NhbGU9MS4wIFk7ClgKACBBQk9SVElORwoAJSVFT0YKACVzIHJlc3RvcmUgcG9pbnQgc2l6ZSBhbmQgZm9udAoucHMgXG4oLlMKLmZ0IFxuKERGCgBdCi5QRQoAaW52YWxpZGF0ZV9wYXRoOiBza2lwcGVkIG92ZXIgTENBCgBJbnZhbGlkICVkLWJ5dGUgVVRGOCBmb3VuZCBpbiBpbnB1dCBvZiBncmFwaCAlcyAtIHRyZWF0ZWQgYXMgTGF0aW4tMS4gUGVyaGFwcyAiLUdjaGFyc2V0PWxhdGluMSIgaXMgbmVlZGVkPwoAVVRGOCBjb2RlcyA+IDQgYnl0ZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIChncmFwaCAlcykgLSB0cmVhdGVkIGFzIExhdGluLTEuIFBlcmhhcHMgIi1HY2hhcnNldD1sYXRpbjEiIGlzIG5lZWRlZD8KADwvdGV4dD4KADwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KADwvcmFkaWFsR3JhZGllbnQ+CjwvZGVmcz4KADwvbWFwPgoAPC9zdmc+CgA8L2E+CjwvZz4KACAgICByb3RhdGUgICA8JTkuM2YsICU5LjNmLCAlOS4zZj4KACAgICBzY2FsZSAgICA8JTkuM2YsICU5LjNmLCAlOS4zZj4KADwvdGl0bGU+CgAiIHR5cGU9InRleHQvY3NzIj8+CgA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KACAgICB0cmFuc2xhdGU8JTkuM2YsICU5LjNmLCAlZC4wMDA+CgA7Ii8+CgAgUGFnZXM6ICVkIC0tPgoAKQogLS0+CgAgLT4KADwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgoAKSI+CgByXyVkIiBjeD0iNTAlJSIgY3k9IjUwJSUiIHI9Ijc1JSUiIGZ4PSIlLjBmJSUiIGZ5PSIlLjBmJSUiPgoAIiA+CgAjZGVjbGFyZSAlcyA9ICVzOwoACSVzCXNvcnJ5LCB0aGUgZ3JvZmYgZm9sa3MgY2hhbmdlZCBncGljOyBzZW5kIGFueSBjb21wbGFpbnQgdG8gdGhlbTsKAAklcwlpbnN0YWxsIGEgbW9yZSByZWNlbnQgdmVyc2lvbiBvZiBncGljIG9yIHN3aXRjaCB0byBEV0Igb3IgMTB0aCBFZGl0aW9uIHBpYzsKAF07CgBpZiBmaWxsdmFsID4gMC40IHRoZW4gWAoJZGVmaW5lIHNldGZpbGx2YWwgWSBmaWxsdmFsID0gMSAtIFk7CglkZWZpbmUgYm9sZCBZIHRoaWNrbmVzcyAyIFk7CgAjdmVyc2lvbiAzLjY7CgBlbGxpcHNlIGF0dHJzMCAlc3dpZCAlLjVmIGh0ICUuNWYgYXQgKCUuNWYsJS41Zik7CgAiIGF0ICglLjVmLCUuNWYpOwoAJSVCZWdpbkRvY3VtZW50OgoAJXp1IGJveGVzOgoAcGFjayBpbmZvOgoAc3ByaW5nX2VsZWN0cmljYWxfY29udHJvbDoKAFVuc3VwcG9ydGVkIGNoYXJzZXQgIiVzIiAtIGFzc3VtaW5nIHV0Zi04CgAgICAgICBhbWJpZW50SW50ZW5zaXR5IDAuMzMKACNGSUcgMy4yCgAtMgoAJXMgbm9uLWZhdGFsIHJ1bi10aW1lIHBpYyB2ZXJzaW9uIGRldGVybWluYXRpb24sIHZlcnNpb24gMgoAJXMgZmlsbHZhbCBpcyAwLjMgaW4gMTB0aCBFZGl0aW9uIChmaWxsIDAgbWVhbnMgYmxhY2spLCAwLjUgaW4gZ3BpYyAoZmlsbCAwIG1lYW5zIHdoaXRlKSwgdW5kZWZpbmVkIGluIERXQiAyCgAlcyByZXNldCB3b3JrcyBpbiBncGljIGFuZCAxMHRoIGVkaXRpb24sIGJ1dCBpc24ndCBkZWZpbmVkIGluIERXQiAyCgBzZXR1cExhdGluMQoAXDAwMQoAJXMgICAgICAgIHRvbGVyYW5jZSAwLjAxCgAgICAgdG9sZXJhbmNlIDAuMQoAJSVQYWdlczogMQoAICAgICAgICBkaWZmdXNlQ29sb3IgMSAxIDEKADEwMC4wMAoAIEVQU0YtMy4wCgAlcyBib3hyYWQgaXMgbm93IDAuMCBpbiBncGljLCBlbHNlIGl0IHJlbWFpbnMgMi4wCgBzcGhlcmUgezwlOS4zZiwgJTkuM2YsICU5LjNmPiwgMS4wCgBXYXJuaW5nOiBubyB2YWx1ZSBmb3Igd2lkdGggb2YgQVNDSUkgY2hhcmFjdGVyICV1LiBGYWxsaW5nIGJhY2sgdG8gMAoAaW5zdGFsbF9pbl9yYW5rLCBsaW5lICVkOiAlcyAlcyByYW5rICVkIGkgPSAlZCBhbiA9IDAKAGNvbmNlbnRyYXRlPXRydWUgbWF5IG5vdCB3b3JrIGNvcnJlY3RseS4KAE5vIGxpYnogc3VwcG9ydC4KAHR3b3BpOiB1c2Ugb2Ygd2VpZ2h0PTAgY3JlYXRlcyBkaXNjb25uZWN0ZWQgY29tcG9uZW50LgoAdGhlIGdyYXBoIGludG8gY29ubmVjdGVkIGNvbXBvbmVudHMuCgBPcnRob2dvbmFsIGVkZ2VzIGRvIG5vdCBjdXJyZW50bHkgaGFuZGxlIGVkZ2UgbGFiZWxzLiBUcnkgdXNpbmcgeGxhYmVscy4KAG1pbmNyb3NzICVzOiAlbGxkIGNyb3NzaW5ncywgJS4yZiBzZWNzLgoAJXMgaXMgbm90IGEga25vd24gY29sb3IuCgBpcyBpbmFwcHJvcHJpYXRlLiBSZXZlcnRpbmcgdG8gdGhlIHNob3J0ZXN0IHBhdGggbW9kZWwuCgBpcyB1bmRlZmluZWQuIFJldmVydGluZyB0byB0aGUgc2hvcnRlc3QgcGF0aCBtb2RlbC4KAFVuYWJsZSB0byByZWNsYWltIGJveCBzcGFjZSBpbiBzcGxpbmUgcm91dGluZyBmb3IgZWRnZSAiJXMiIC0+ICIlcyIuIFNvbWV0aGluZyBpcyBwcm9iYWJseSBzZXJpb3VzbHkgd3JvbmcuCgBFcnJvciBkdXJpbmcgY29udmVyc2lvbiB0byAiVVRGLTgiLiBRdWl0aW5nLgoAb3JkZXJpbmcgJyVzJyBub3QgcmVjb2duaXplZC4KAGdyYWRpZW50IHBlbiBjb2xvcnMgbm90IHlldCBzdXBwb3J0ZWQuCgAgIGluaXRDTWFqVlBTQyBkb25lOiAlZCBnbG9iYWwgY29uc3RyYWludHMgZ2VuZXJhdGVkLgoAVGhlIGNoYXJhY3RlciAnJWMnIGFwcGVhcnMgaW4gYm90aCB0aGUgbGF5ZXJzZXAgYW5kIGxheWVybGlzdHNlcCBhdHRyaWJ1dGVzIC0gbGF5ZXJsaXN0c2VwIGlnbm9yZWQuCgB0aGUgYXNwZWN0IGF0dHJpYnV0ZSBoYXMgYmVlbiBkaXNhYmxlZCBkdWUgdG8gaW1wbGVtZW50YXRpb24gZmxhd3MgLSBhdHRyaWJ1dGUgaWdub3JlZC4KAFRoZSBsYXllcnNlbGVjdCBhdHRyaWJ1dGUgIiVzIiBkb2VzIG5vdCBtYXRjaCBhbnkgbGF5ZXIgc3BlY2lmZWQgYnkgdGhlIGxheWVycyBhdHRyaWJ1dGUgLSBpZ25vcmVkLgoAJXp1IG91dCBvZiAlenUgbGFiZWxzIHBvc2l0aW9uZWQuCgAlenUgb3V0IG9mICV6dSBleHRlcmlvciBsYWJlbHMgcG9zaXRpb25lZC4KACAgZ2VuZXJhdGUgZWRnZSBjb25zdHJhaW50cy4uLgoAR2VuZXJhdGluZyBOb24tb3ZlcmxhcCBD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MSkpCgBlcnJvciBpbiBjb2xvcnhsYXRlKCkKAHRydW5jYXRpbmcgc3R5bGUgJyVzJwoASWxsZWdhbCB2YWx1ZSBpbiAiJXMiIGNvbG9yIGF0dHJpYnV0ZTsgZmxvYXQgZXhwZWN0ZWQgYWZ0ZXIgJzsnCgBkZWZpbmUgYXR0cnMwICUlICUlOyBkZWZpbmUgdW5maWxsZWQgJSUgJSU7IGRlZmluZSByb3VuZGVkICUlICUlOyBkZWZpbmUgZGlhZ29uYWxzICUlICUlCgA8c3ZnIHdpZHRoPSIlZHB0IiBoZWlnaHQ9IiVkcHQiCgAjIGRlcGVuZGVuY2llcyAiJS4qcyIgZGlkIG5vdCBtYXRjaCAiJS4qcyIKACMgdHlwZSAiJS4qcyIgZGlkIG5vdCBtYXRjaCAiJS4qcyIKACRjIGNyZWF0ZSBpbWFnZSAlLjJmICUuMmYgLWltYWdlICJwaG90b18lcyIKAE5vIG9yIGltcHJvcGVyIGltYWdlIGZpbGU9IiVzIgoAZmlsZSBsb2FkaW5nIGlzIGRpc2FibGVkIGJlY2F1c2UgdGhlIGVudmlyb25tZW50IGNvbnRhaW5zIFNFUlZFUl9OQU1FPSIlcyIKAENvdWxkIG5vdCBwYXJzZSB4ZG90ICIlcyIKAE5vIGxvYWRpbWFnZSBwbHVnaW4gZm9yICIlcyIKACBbJXp1XSAoJS4wMmYsJS4wMmYpICglLjAyZiwlLjAyZikgJXAgIiVzIgoAZm9udG5hbWU6IHVuYWJsZSB0byByZXNvbHZlICIlcyIKAER1cGxpY2F0ZSBjbHVzdGVyIG5hbWUgIiVzIgoAdW5yZWNvZ25pemVkIGFwaSBuYW1lICIlcyIKAGltYWdlIGNyZWF0ZSBwaG90byAicGhvdG9fJXMiIC1maWxlICIlcyIKAE5vIG9yIGltcHJvcGVyIHNoYXBlZmlsZT0iJXMiIGZvciBub2RlICIlcyIKAE5vIG9yIGltcHJvcGVyIGltYWdlPSIlcyIgZm9yIG5vZGUgIiVzIgoAbm9kZSAiJXMiIGlzIGNvbnRhaW5lZCBpbiB0d28gbm9uLWNvbXBhcmFibGUgY2x1c3RlcnMgIiVzIiBhbmQgIiVzIgoARXJyb3I6IG5vZGUgIiVzIiBiZWxvbmdzIHRvIHR3byBub24tbmVzdGVkIGNsdXN0ZXJzICIlcyIgYW5kICIlcyIKACAgIiVzIgoAI2luY2x1ZGUgImNvbG9ycy5pbmMiCiNpbmNsdWRlICJ0ZXh0dXJlcy5pbmMiCiNpbmNsdWRlICJzaGFwZXMuaW5jIgoAVW5rbm93biBIVE1MIGVsZW1lbnQgPCVzPiBvbiBsaW5lICVsdSAKACVzIGluIGxpbmUgJWx1IAoAc2NhbGUgYnkgJWcsJWcgCgBjb21wcmVzcyAlZyAKAExheW91dCB3YXMgbm90IGRvbmUuICBNaXNzaW5nIGxheW91dCBwbHVnaW5zPyAKAIlQTkcNChoKACUlIVBTLUFkb2JlLTIuMAolJSUlQm91bmRpbmdCb3g6IChhdGVuZCkKL3BvaW50IHsKICAvWSBleGNoIGRlZgogIC9YIGV4Y2ggZGVmCiAgbmV3cGF0aAogIFggWSAzIDAgMzYwIGFyYyBmaWxsCn0gZGVmCi9jZWxsIHsKICAvWSBleGNoIGRlZgogIC9YIGV4Y2ggZGVmCiAgL3kgZXhjaCBkZWYKICAveCBleGNoIGRlZgogIG5ld3BhdGgKICB4IHkgbW92ZXRvCiAgeCBZIGxpbmV0bwogIFggWSBsaW5ldG8KICBYIHkgbGluZXRvCiAgY2xvc2VwYXRoIHN0cm9rZQp9IGRlZgovbm9kZSB7CiAvdSBleGNoIGRlZgogL3IgZXhjaCBkZWYKIC9kIGV4Y2ggZGVmCiAvbCBleGNoIGRlZgogbmV3cGF0aCBsIGQgbW92ZXRvCiByIGQgbGluZXRvIHIgdSBsaW5ldG8gbCB1IGxpbmV0bwogY2xvc2VwYXRoIGZpbGwKfSBkZWYKCgAJAEHxigULtgMBAQEBAQEBAQIDAQECAQEBAQEBAQEBAQEBAQEBAQEBAgEEBQEBAQEBAQYBAQcICQoKCgoKCgoKCgoBAQsBDAENDg8QERITFBUWExMTExcYGRMaGxwdExMTExMBHgEBEwEfICEiIxMkJSYTExMTJygpEyorLC0TExMTEwEBAQEBExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMuExMTLxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTMBMTExMTExMTExMTExMTExMAAAAAAAAEAAQAHAAcACEAIQAkACIACgACABYACQAiACIAIgAVAB0AAQAUABQAFAAUABQAFAAUAAgABAAFABwAGwAXABwAIQAgAB8AHgAJABMAAAAVABIAFQADAAcAFQAVABQAFAAUABQAFAAUABQAFAAIAAQABQAFAAYAHAAaABgAGQAhAAcAFQAUABQAFAAUABQAFAALABQADQAUAAwAFAAUABQADgAUABQAFAAQABQADwAUABEAQbKOBQuVBAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAMABAAHAAMABAAFAAUABgAGAAgABwAHABEAFgASABEAEgAIAAgADwAPABcADwAYAA8AGQAaABoAHgAWADQAHgAFADIABgAiACIAMwAXABgANQAZABoAGgAqADYAKgA0ADcAMgBFADsAPAAzADsAPABGADUARwBIAEwANgAiAEkASgA3AEUATgBQAGIAUQBSAFQARgBHAFUASABMAFYASQBKAFgAWgBOAEQAUABRAFIAVAA4AC8ALABVACkAVgAbABAAWABaAF0AXQBdAF0AXQBdAF0AXgBeAF4AXgBeAF4AXgBfAF8AXwBfAF8AXwBfAGAACQBgAGAAYABgAGAAYQBhAGMAAgBjAGMAYwBjAGMAZAAAAGQAAABkAGQAZABlAAAAZQBlAGUAZQBlAGYAAAAAAGYAZgBmAGYAZwAAAGcAZwBnAGcAaAAAAGgAaABoAGgAaABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAEHUkgULzQGuAC4ALwAzADUAMAA3AKoA2wDbANsA2wAAAD0AhwA3ADcA2wDbAAAAKAA1AC4AMgAvAGIAAAAAAEcAAADbANsAUQAAANsA2wDbAAAA2wCEAFUA2wCCANsAAACBANsAAAA+AEIAQQBIAEQAUgBbAAAAAABeAF8A2wAAANsA2wDbAAAAAAB7AEkAVwBSAFoAWgBdAAAAXwAAAF8AAABlAF0AXwAAAF0AbgBqAAAAaQAAAG4AAADbAJMAmgChAKgAqwBwALEAuAC/AMYAzQDTAEGylAULzwFcAAEAXQBdAF4AXgBfAF8AXABcAFwAXABcAGAAXABcAFwAYQBcAFwAYgBiAGIAYgBiAGIAYgBjAGQAZQBmAFwAXABcAGcAXABcAFwAYABcAFwAYQBcAGEAXABoAGEAXABiAGIAYgBiAGIAYgBiAGIAYwBkAGUAZQBcAGYAXABcAFwAZwBoAGEAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAAAAXABcAFwAXABcAFwAXABcAFwAXABcAFwAQZGWBQswAQECAwEEAQUBBgcHAQYGBgYGBgYGBgYGBgYGBgYDBgYGBgYGBgYGBgYGBgYGBgYGAEHSlgULowQKAAsADAANAA4ACgAPABAAEQASABMACgAUABUAFQAVABYAFwAVABgAFQAVABkAFQAVABUAGgAVABUACgAVABUAFQAWABcAGAAVABUAGQAVABUAFQAaABUAFQAVABUAGwAMAAwAJAAeAB4AIAAhACAAIQAkACUAJgAtADIALwAuACoAJQAmACgAKQAzACoANAArADUANgA3ADwAMgBHAD0AIgBFACIAPwBAAEYAMwA0AEgANQA2ADcALwBJACoARwBKAEUATABcADwARgBcAD0ATQBIAE4ATwBSAEkAQQBQAFEASgBMAFMAVAAxAFUAVgBXAE0ATgBYAE8AUgBZAFAAUQBaAFsAUwBEAFQAVQBWAFcASwBEACwAWAAsAFkAOAAsAFoAWwAdAB0AHQAdAB0AHQAdAB8AHwAfAB8AHwAfAB8AIwAjACMAIwAjACMAIwAnAFwAJwAnACcAJwAnADAAMAA5ABwAOQA5ADkAOQA5ADoAXAA6AFwAOgA6ADoAOwBcADsAOwA7ADsAOwA+AFwAXAA+AD4APgA+AEIAXABCAEIAQgBCAEMAXABDAEMAQwBDAEMACQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAMAAAADQAAAA4AAAAOAEGAmwUL0QUR7u4TCAPu/u7u7gHu7u4B7u4J/u4SFRfuEgHu7u7uCg3u7u7u7u7u7u4B7u4WCAEBGQ4Y7u4bGBru7h3u7u7uARX77u7u7hAe7u7uAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWEQICAgICAgICAgICAgISEAITAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIUAhUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4CDwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBAgMEBQYHCAkKCwwNAAAACwMEBQ8HAwwNBgwNDgwNGhUAAQADBw4GDwgMDRITCSoQERAWLzANMhETLjIUEhQSQRMsE0JAKkIZ//8sAAAAACIMDQ4jDwkQEQoQEcwQES1F/AEG9g8H9iQCEBEvMCg2SUomMTs8PTYqOTo+Py/YQEQwNyVHQzVIKwAAOAAAAAAAAwkAAAABDgILDAgjJCUzODoADRASGxYcEicvIhcwHjkGBzIFDxEUGCkAEykAAAAAADQVKB0eACEmMR8uOxksABsAIBoqKzcANTYtAAAAAAACAgEAAwMBAAEAAQEBAAIBAQACAgMBAQAABQABAwEDBQMBAQEBAgABAAQCAAIDAQADAgEAAQEAAQEBAwAAAAAAFxgYGBkaGxscHB0dHh4fHyAgISEiIyMlJiQkJycoKCgpKSoqKisrLCwtLi4vMDEzMjQ0NDU1NTY2NzcAAAAA7u787u7u7u7uHyDu+e/u7u4M7u7uBg/u7vLu7u7u7vXuAEHhoAULLwMIBCEFCxITJxQVFikyQRcYGRosMzRCRhscHS4eSx8ga2V5AF9BR19zdHJkYXRhAEGgoQULFe0fAAC/DAAAowwAAGhUAAB7UgAABgBBwKEFC+PrAc7GAABVXcl/yX//ALS3AAC7LdS+rtT/AKypAAAUd/39wIb/AG7FAABVXcl/yX//AFS2AAC7LdS+rtT/AEyoAAAUd/39wIb/ALCbAAAqZv///5n/AA7EAABVXcl/yX//APS0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AAAYX/391J7/ALKVAAATef39u4T/AH6KAAANpPz8jVn/AFuDAAAHsu/vZUj/AKB9AAAD2tfXMB//ADt5AAAA/7OzAAD/ACp2AAAA/39/AAD/ANLIAACOROOmzuP/AA7NAAC+mZpqPZr/ALi5AACQ07QfeLT/ALCrAABBYd+y34r/ALSdAABSuKAzoCz/ACCRAAAAY/v7mpn/AJ2IAAD+4ePjGhz/AIKBAAAXj/39v2//AL17AAAV////fwD/AEx3AADGKtbKstb/AFrIAACOROOmzuP/AIvMAAC+mZpqPZr/ADq+AAAqZv///5n/AEC5AACQ07QfeLT/ADirAABBYd+y34r/ADydAABSuKAzoCz/AKiQAAAAY/v7mpn/ACWIAAD+4ePjGhz/AAqBAAAXj/39v2//AEV7AAAV////fwD/ANR2AADGKtbKstb/AOLHAACOROOmzuP/AAjMAAC+mZpqPZr/ALe9AAAqZv///5n/ADqvAAAPxbGxWSj/AMi4AACQ07QfeLT/AMCqAABBYd+y34r/AMScAABSuKAzoCz/ADCQAAAAY/v7mpn/AK2HAAD+4ePjGhz/AJKAAAAXj/39v2//AM16AAAV////fwD/AFx2AADGKtbKstb/AJrHAACOROOmzuP/AIC4AACQ07QfeLT/AHiqAABBYd+y34r/ADrGAACOROOmzuP/ACC3AACQ07QfeLT/ABipAABBYd+y34r/AHycAABSuKAzoCz/ANrEAACOROOmzuP/AMC1AACQ07QfeLT/ALinAABBYd+y34r/ABybAABSuKAzoCz/AOiPAAAAY/v7mpn/AHrDAACOROOmzuP/AGC0AACQ07QfeLT/AFimAABBYd+y34r/ALyZAABSuKAzoCz/AIiOAAAAY/v7mpn/AGWHAAD+4ePjGhz/ABrCAACOROOmzuP/AACzAACQ07QfeLT/APikAABBYd+y34r/AFyYAABSuKAzoCz/ACiNAAAAY/v7mpn/AAWGAAD+4ePjGhz/AEqAAAAXj/39v2//ALrAAACOROOmzuP/AKCxAACQ07QfeLT/AJijAABBYd+y34r/APyWAABSuKAzoCz/AMiLAAAAY/v7mpn/AKWEAAD+4ePjGhz/AOp+AAAXj/39v2//AIV6AAAV////fwD/AHm/AACOROOmzuP/AF+wAACQ07QfeLT/AFei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AADSFejn1Oj/AGWIAABMHvDZ8NP/AEqBAABQRNum26D/AIV7AABYe65armH/ABR3AABhxXgbeDf/ACLIAADO/0tAAEv/AE7MAABhxXgbeDf/AP29AABl/0QARBv/AAi5AADOrYN2KoP/AACrAADHV6uZcKv/AASdAADHM8/Cpc//AHCQAADSFejn1Oj/AO2HAAAAAPf39/f/ANKAAABMHvDZ8NP/AA17AABQRNum26D/AJx2AABYe65armH/AEHHAADERsOvjcP/ACe4AAAAAPf39/f/AB+qAABSWr9/v3v/AOHFAADJqJR7MpT/AMe2AADHM8/Cpc//AL+oAABQRNum26D/ACOcAABm/4gAiDf/AIHEAADJqJR7MpT/AGe1AADHM8/Cpc//AF+nAAAAAPf39/f/AMOaAABQRNum26D/AI+PAABm/4gAiDf/ACHDAADOrYN2KoP/AAe0AADERsOvjcP/AP+lAADSFejn1Oj/AGOZAABMHvDZ8NP/AC+OAABSWr9/v3v/AAyHAABhxXgbeDf/AMHBAADOrYN2KoP/AKeyAADERsOvjcP/AJ+kAADSFejn1Oj/AAOYAAAAAPf39/f/AM+MAABMHvDZ8NP/AKyFAABSWr9/v3v/APF/AABhxXgbeDf/AGHAAADOrYN2KoP/AEexAADHV6uZcKv/AD+jAADHM8/Cpc//AKOWAADSFejn1Oj/AG+LAABMHvDZ8NP/AEyEAABQRNum26D/AJF+AABYe65armH/ACx6AABhxXgbeDf/ACC/AADOrYN2KoP/AAawAADHV6uZcKv/AP6hAADHM8/Cpc//AGKVAADSFejn1Oj/AC6KAAAAAPf39/f/AAuDAABMHvDZ8NP/AFB9AABQRNum26D/AOt4AABYe65armH/ANp1AABhxXgbeDf/AJ3GAAC9C/Ls5/L/AIO3AACXPdumvdv/AHupAACNxb4rjL7/AD3FAAC5CPbx7vb/ACO2AACbKOG9yeH/ABuoAACRcM90qc//AH+bAACP97AFcLD/AN3DAAC5CPbx7vb/AMO0AACbKOG9yeH/ALumAACRcM90qc//AB+aAACNxb4rjL7/AOuOAACP940EWo3/AH3CAAC5CPbx7vb/AGOzAACoGObQ0eb/AFulAACXPdumvdv/AL+YAACRcM90qc//AIuNAACNxb4rjL7/AGiGAACP940EWo3/AB3BAAC5CPbx7vb/AAOyAACoGObQ0eb/APujAACXPdumvdv/AF+XAACRcM90qc//ACuMAACOt8A2kMD/AAiFAACP97AFcLD/AE1/AACP+HsDTnv/AL2/AADpCP//9/v/AKOwAAC9C/Ls5/L/AJuiAACoGObQ0eb/AP+VAACXPdumvdv/AMuKAACRcM90qc//AKiDAACOt8A2kMD/AO19AACP97AFcLD/AIh5AACP+HsDTnv/AIe+AADpCP//9/v/AG2vAAC9C/Ls5/L/AGWhAACoGObQ0eb/AMmUAACXPdumvdv/AJWJAACRcM90qc//AHKCAACOt8A2kMD/ALd8AACP97AFcLD/AFJ4AACP940EWo3/AEF1AACP+VgCOFj/AC3HAADIDvDs4vD/ABO4AACXPdumvdv/AAuqAACC0JkckJn/AM3FAADPCPf27/f/ALO2AACbKOG9yeH/AKuoAACPgM9nqc//AA+cAACC+4oCgYr/AG3EAADPCPf27/f/AFO1AACbKOG9yeH/AEunAACPgM9nqc//AK+aAACC0JkckJn/AHuPAAB3/GwBbFn/AA3DAADPCPf27/f/APOzAACoGObQ0eb/AOulAACXPdumvdv/AE+ZAACPgM9nqc//ABuOAACC0JkckJn/APiGAAB3/GwBbFn/AK3BAADPCPf27/f/AJOyAACoGObQ0eb/AIukAACXPdumvdv/AO+XAACPgM9nqc//ALuMAACOt8A2kMD/AJiFAACC+4oCgYr/AN1/AAB2/GQBZFD/AE3AAADpCP//9/v/ADOxAADIDvDs4vD/ACujAACoGObQ0eb/AI+WAACXPdumvdv/AFuLAACPgM9nqc//ADiEAACOt8A2kMD/AH1+AACC+4oCgYr/ABh6AAB2/GQBZFD/AAy/AADpCP//9/v/APKvAADIDvDs4vD/AOqhAACoGObQ0eb/AE6VAACXPdumvdv/ABqKAACPgM9nqc//APeCAACOt8A2kMD/ADx9AACC+4oCgYr/ANd4AAB3/GwBbFn/AMZ1AAB1+0YBRjb/AJDIAAAS7n9/Owj/AMbMAADD/0stAEv/AHa5AAAU9rOzWAb/AG6rAAAW6ODgghT/AHKdAAAXm/39uGP/AN6QAAAYSP7+4Lb/AFuIAAClFOvY2uv/AECBAACxL9Kyq9L/AHt7AACzVKyAc6z/AAp3AAC9tYhUJ4j/ABjIAAAS7n9/Owj/AEPMAAC9tYhUJ4j/APK9AADD/0stAEv/AP64AAAU9rOzWAb/APaqAAAW6ODgghT/APqcAAAXm/39uGP/AGaQAAAYSP7+4Lb/AOOHAAAAAPf39/f/AMiAAAClFOvY2uv/AAN7AACxL9Kyq9L/AJJ2AACzVKyAc6z/ABnHAAAXu/Hxo0D/AP+3AAAAAPf39/f/APepAACyRcOZjsP/ALnFAAAR/ebmYQH/AJ+2AAAXm/39uGP/AJeoAACxL9Kyq9L/APubAAC5m5lePJn/AFnEAAAR/ebmYQH/AD+1AAAXm/39uGP/ADenAAAAAPf39/f/AJuaAACxL9Kyq9L/AGePAAC5m5lePJn/APnCAAAU9rOzWAb/AN+zAAAXu/Hxo0D/ANelAAAYSP7+4Lb/ADuZAAClFOvY2uv/AAeOAACyRcOZjsP/AOSGAAC9tYhUJ4j/AJnBAAAU9rOzWAb/AH+yAAAXu/Hxo0D/AHekAAAYSP7+4Lb/ANuXAAAAAPf39/f/AKeMAAClFOvY2uv/AISFAACyRcOZjsP/AMl/AAC9tYhUJ4j/ADnAAAAU9rOzWAb/AB+xAAAW6ODgghT/ABejAAAXm/39uGP/AHuWAAAYSP7+4Lb/AEeLAAClFOvY2uv/ACSEAACxL9Kyq9L/AGl+AACzVKyAc6z/AAR6AAC9tYhUJ4j/APi+AAAU9rOzWAb/AN6vAAAW6ODgghT/ANahAAAXm/39uGP/ADqVAAAYSP7+4Lb/AAaKAAAAAPf39/f/AOOCAAClFOvY2uv/ACh9AACxL9Kyq9L/AMN4AACzVKyAc6z/ALJ1AAC9tYhUJ4j/AH3HAAC8Du/n4e//AGO4AADWQ8nJlMf/AFuqAADq3t3dHHf/AB3GAAC5CPbx7vb/AAO3AADTKdjXtdj/APuoAADki9/fZbD/AF+cAADv6M7OElb/AL3EAAC5CPbx7vb/AKO1AADTKdjXtdj/AJunAADki9/fZbD/AP+aAADq3t3dHHf/AMuPAADs/5iYAEP/AF3DAAC5CPbx7vb/AEO0AADMJtrUudr/ADumAADWQ8nJlMf/AJ+ZAADki9/fZbD/AGuOAADq3t3dHHf/AEiHAADs/5iYAEP/AP3BAAC5CPbx7vb/AOOyAADMJtrUudr/ANukAADWQ8nJlMf/AD+YAADki9/fZbD/AAuNAADp0efnKYr/AOiFAADv6M7OElb/AC2AAADs/5GRAD//AJ3AAADDBfn39Pn/AIOxAAC8Du/n4e//AHujAADMJtrUudr/AN+WAADWQ8nJlMf/AKuLAADki9/fZbD/AIiEAADp0efnKYr/AM1+AADv6M7OElb/AGh6AADs/5GRAD//AFy/AADDBfn39Pn/AEKwAAC8Du/n4e//ADqiAADMJtrUudr/AJ6VAADWQ8nJlMf/AGqKAADki9/fZbD/AEeDAADp0efnKYr/AIx9AADv6M7OElb/ACd5AADs/5iYAEP/ABZ2AADy/2dnAB//APjGAAC0CPXv7fX/AN63AACoJdy8vdz/ANapAACwZLF1a7H/AJjFAAC2B/fy8Pf/AH62AACtHOLLyeL/AHaoAACtOsiemsj/ANqbAAC2gKNqUaP/ADjEAAC2B/fy8Pf/AB61AACtHOLLyeL/ABanAACtOsiemsj/AHqaAACwZLF1a7H/AEaPAAC8uY9UJ4//ANjCAAC2B/fy8Pf/AL6zAACqEuva2uv/ALalAACoJdy8vdz/ABqZAACtOsiemsj/AOaNAACwZLF1a7H/AMOGAAC8uY9UJ4//AHjBAAC2B/fy8Pf/AF6yAACqEuva2uv/AFakAACoJdy8vdz/ALqXAACtOsiemsj/AIaMAACsU7qAfbr/AGOFAAC2gKNqUaP/AKh/AAC+2IZKFIb/ABjAAAC/Av38+/3/AP6wAAC0CPXv7fX/APaiAACqEuva2uv/AFqWAACoJdy8vdz/ACaLAACtOsiemsj/AAOEAACsU7qAfbr/AEh+AAC2gKNqUaP/AON5AAC+2IZKFIb/ANe+AAC/Av38+/3/AL2vAAC0CPXv7fX/ALWhAACqEuva2uv/ABmVAACoJdy8vdz/AOWJAACtOsiemsj/AMKCAACsU7qAfbr/AAd9AAC2gKNqUaP/AKJ4AAC8uY9UJ4//AJF1AAC//30/AH3/AIbIAADy/2dnAB//ALvMAACW8WEFMGH/AGy5AAD53LKyGCv/AGSrAAAFo9bWYE3/AGidAAANd/T0pYL/ANSQAAAPNv3928f/AFGIAACOIPDR5fD/ADaBAACNV96Sxd7/AHF7AACPp8NDk8P/AAB3AACUzqwhZqz/AA7IAADy/2dnAB//ADjMAACUzqwhZqz/AOe9AACW8WEFMGH/APS4AAD53LKyGCv/AOyqAAAFo9bWYE3/APCcAAANd/T0pYL/AFyQAAAPNv3928f/ANmHAAAAAPf39/f/AL6AAACOIPDR5fD/APl6AACNV96Sxd7/AIh2AACPp8NDk8P/AMXGAAAMlu/vimL/AKu3AAAAAPf39/f/AKOpAACPgM9nqc//AGXFAAD4/8rKACD/AEu2AAANd/T0pYL/AEOoAACNV96Sxd7/AKebAACP97AFcbD/AAXEAAD4/8rKACD/AOu0AAANd/T0pYL/AOOmAAAAAPf39/f/AEeaAACNV96Sxd7/ABOPAACP97AFcbD/AKXCAAD53LKyGCv/AIuzAAAMlu/vimL/AIOlAAAPNv3928f/AOeYAACOIPDR5fD/ALONAACPgM9nqc//AJCGAACUzqwhZqz/AEXBAAD53LKyGCv/ACuyAAAMlu/vimL/ACOkAAAPNv3928f/AIeXAAAAAPf39/f/AFOMAACOIPDR5fD/ADCFAACPgM9nqc//AHV/AACUzqwhZqz/AOW/AAD53LKyGCv/AMuwAAAFo9bWYE3/AMOiAAANd/T0pYL/ACeWAAAPNv3928f/APOKAACOIPDR5fD/ANCDAACNV96Sxd7/ABV+AACPp8NDk8P/ALB5AACUzqwhZqz/AK++AAD53LKyGCv/AJWvAAAFo9bWYE3/AI2hAAANd/T0pYL/APGUAAAPNv3928f/AL2JAAAAAPf39/f/AJqCAACOIPDR5fD/AN98AACNV96Sxd7/AHp4AACPp8NDk8P/AGl1AACUzqwhZqz/AHDIAADy/2dnAB//AKPMAAAAABoaGhr/AFa5AAD53LKyGCv/AE6rAAAFo9bWYE3/AFKdAAANd/T0pYL/AL6QAAAPNv3928f/ADuIAAAAAODg4OD/ACCBAAAAALq6urr/AFt7AAAAAIeHh4f/AOp2AAAAAE1NTU3/APjHAADy/2dnAB//ACDMAAAAAE1NTU3/AM+9AAAAABoaGhr/AN64AAD53LKyGCv/ANaqAAAFo9bWYE3/ANqcAAANd/T0pYL/AEaQAAAPNv3928f/AMOHAAAAAP//////AKiAAAAAAODg4OD/AON6AAAAALq6urr/AHJ2AAAAAIeHh4f/AILGAAAMlu/vimL/AGi3AAAAAP//////AGCpAAAAAJmZmZn/ACLFAAD4/8rKACD/AAi2AAANd/T0pYL/AACoAAAAALq6urr/AGSbAAAAAEBAQED/AMLDAAD4/8rKACD/AKi0AAANd/T0pYL/AKCmAAAAAP//////AASaAAAAALq6urr/ANCOAAAAAEBAQED/AGLCAAD53LKyGCv/AEizAAAMlu/vimL/AEClAAAPNv3928f/AKSYAAAAAODg4OD/AHCNAAAAAJmZmZn/AE2GAAAAAE1NTU3/AALBAAD53LKyGCv/AOixAAAMlu/vimL/AOCjAAAPNv3928f/AESXAAAAAP//////ABCMAAAAAODg4OD/AO2EAAAAAJmZmZn/ADJ/AAAAAE1NTU3/AKK/AAD53LKyGCv/AIiwAAAFo9bWYE3/AICiAAANd/T0pYL/AOSVAAAPNv3928f/ALCKAAAAAODg4OD/AI2DAAAAALq6urr/ANJ9AAAAAIeHh4f/AG15AAAAAE1NTU3/AGy+AAD53LKyGCv/AFKvAAAFo9bWYE3/AEqhAAANd/T0pYL/AK6UAAAPNv3928f/AHqJAAAAAP//////AFeCAAAAAODg4OD/AJx8AAAAALq6urr/ADd4AAAAAIeHh4f/ACZ1AAAAAE1NTU3/AJTGAAADIP394N3/AHq3AAD0XPr6n7X/AHKpAADj3MXFG4r/ADTFAAANHP7+6+L/ABq2AAD8SPv7tLn/ABKoAADuk/f3aKH/AHabAADg/a6uAX7/ANTDAAANHP7+6+L/ALq0AAD8SPv7tLn/ALKmAADuk/f3aKH/ABaaAADj3MXFG4r/AOKOAADV/Hp6AXf/AHTCAAANHP7+6+L/AFqzAAADPPz8xcD/AFKlAAD0XPr6n7X/ALaYAADuk/f3aKH/AIKNAADj3MXFG4r/AF+GAADV/Hp6AXf/ABTBAAANHP7+6+L/APqxAAADPPz8xcD/APKjAAD0XPr6n7X/AFaXAADuk/f3aKH/ACKMAADmw93dNJf/AP+EAADg/a6uAX7/AER/AADV/Hp6AXf/ALS/AAAODP//9/P/AJqwAAADIP394N3/AJKiAAADPPz8xcD/APaVAAD0XPr6n7X/AMKKAADuk/f3aKH/AJ+DAADmw93dNJf/AOR9AADg/a6uAX7/AH95AADV/Hp6AXf/AH6+AAAODP//9/P/AGSvAAADIP394N3/AFyhAAADPPz8xcD/AMCUAAD0XPr6n7X/AIyJAADuk/f3aKH/AGmCAADmw93dNJf/AK58AADg/a6uAX7/AEl4AADV/Hp6AXf/ADh1AADH/2pJAGr/AHrIAAD1/6WlACb/AK7MAACnq5UxNpX/AGC5AAAC0NfXMCf/AFirAAAKuPT0bUP/AFydAAAUnf39rmH/AMiQAAAebv7+4JD/AEWIAACIGPjg8/j/ACqBAACKQ+mr2en/AGV7AACPcdF0rdH/APR2AACXnbRFdbT/AALIAAD1/6WlACb/ACvMAACXnbRFdbT/ANq9AACnq5UxNpX/AOi4AAAC0NfXMCf/AOCqAAAKuPT0bUP/AOScAAAUnf39rmH/AFCQAAAebv7+4JD/AM2HAAAqQP///7//ALKAAACIGPjg8/j/AO16AACKQ+mr2en/AHx2AACPcdF0rdH/ALrGAAANpPz8jVn/AKC3AAAqQP///7//AJipAACPVtuRv9v/AFrFAAD+4dfXGRz/AEC2AAAUnf39rmH/ADioAACKQ+mr2en/AJybAACRwbYse7b/APrDAAD+4dfXGRz/AOC0AAAUnf39rmH/ANimAAAqQP///7//ADyaAACKQ+mr2en/AAiPAACRwbYse7b/AJrCAAAC0NfXMCf/AICzAAANpPz8jVn/AHilAAAebv7+4JD/ANyYAACIGPjg8/j/AKiNAACPVtuRv9v/AIWGAACXnbRFdbT/ADrBAAAC0NfXMCf/ACCyAAANpPz8jVn/ABikAAAebv7+4JD/AHyXAAAqQP///7//AEiMAACIGPjg8/j/ACWFAACPVtuRv9v/AGp/AACXnbRFdbT/ANq/AAAC0NfXMCf/AMCwAAAKuPT0bUP/ALiiAAAUnf39rmH/AByWAAAebv7+4JD/AOiKAACIGPjg8/j/AMWDAACKQ+mr2en/AAp+AACPcdF0rdH/AKV5AACXnbRFdbT/AKS+AAAC0NfXMCf/AIqvAAAKuPT0bUP/AIKhAAAUnf39rmH/AOaUAAAebv7+4JD/ALKJAAAqQP///7//AI+CAACIGPjg8/j/ANR8AACKQ+mr2en/AG94AACPcdF0rdH/AF51AACXnbRFdbT/AKTIAAD1/6WlACb/ANzMAABr/2gAaDf/AIq5AAAC0NfXMCf/AIKrAAAKuPT0bUP/AIadAAAUnf39rmH/APKQAAAfc/7+4Iv/AG+IAAAzau/Z74v/AFSBAAA+gtmm2Wr/AI97AABTeb1mvWP/AB53AABn05gamFD/ACzIAAD1/6WlACb/AFnMAABn05gamFD/AAi+AABr/2gAaDf/ABK5AAAC0NfXMCf/AAqrAAAKuPT0bUP/AA6dAAAUnf39rmH/AHqQAAAfc/7+4Iv/APeHAAAqQP///7//ANyAAAAzau/Z74v/ABd7AAA+gtmm2Wr/AKZ2AABTeb1mvWP/AErHAAANpPz8jVn/ADC4AAAqQP///7//ACiqAABCiM+Rz2D/AOrFAAD+4dfXGRz/ANC2AAAUnf39rmH/AMioAAA+gtmm2Wr/ACycAABi0pYalkH/AIrEAAD+4dfXGRz/AHC1AAAUnf39rmH/AGinAAAqQP///7//AMyaAAA+gtmm2Wr/AJiPAABi0pYalkH/ACrDAAAC0NfXMCf/ABC0AAANpPz8jVn/AAimAAAfc/7+4Iv/AGyZAAAzau/Z74v/ADiOAABCiM+Rz2D/ABWHAABn05gamFD/AMrBAAAC0NfXMCf/ALCyAAANpPz8jVn/AKikAAAfc/7+4Iv/AAyYAAAqQP///7//ANiMAAAzau/Z74v/ALWFAABCiM+Rz2D/APp/AABn05gamFD/AGrAAAAC0NfXMCf/AFCxAAAKuPT0bUP/AEijAAAUnf39rmH/AKyWAAAfc/7+4Iv/AHiLAAAzau/Z74v/AFWEAAA+gtmm2Wr/AJp+AABTeb1mvWP/ADV6AABn05gamFD/ACm/AAAC0NfXMCf/AA+wAAAKuPT0bUP/AAeiAAAUnf39rmH/AGuVAAAfc/7+4Iv/ADeKAAAqQP///7//ABSDAAAzau/Z74v/AFl9AAA+gtmm2Wr/APR4AABTeb1mvWP/AON1AABn05gamFD/ABDHAAANLP7+4NL/APa3AAAJi/z8knL/AO6pAAAB097eLSb/ALDFAAANJf7+5dn/AJa2AAALbPz8rpH/AI6oAAAHs/v7akr/APKbAAD94MvLGB3/AFDEAAANJf7+5dn/ADa1AAALbPz8rpH/AC6nAAAHs/v7akr/AJKaAAAB097eLSb/AF6PAAD956WlDxX/APDCAAANJf7+5dn/ANazAAAMXPz8u6H/AM6lAAAJi/z8knL/ADKZAAAHs/v7akr/AP6NAAAB097eLSb/ANuGAAD956WlDxX/AJDBAAANJf7+5dn/AHayAAAMXPz8u6H/AG6kAAAJi/z8knL/ANKXAAAHs/v7akr/AJ6MAAAD0O/vOyz/AHuFAAD94MvLGB3/AMB/AAD7/5mZAA3/ADDAAAAOD///9fD/ABaxAAANLP7+4NL/AA6jAAAMXPz8u6H/AHKWAAAJi/z8knL/AD6LAAAHs/v7akr/ABuEAAAD0O/vOyz/AGB+AAD94MvLGB3/APt5AAD7/5mZAA3/AO++AAAOD///9fD/ANWvAAANLP7+4NL/AM2hAAAMXPz8u6H/ADGVAAAJi/z8knL/AP2JAAAHs/v7akr/ANqCAAAD0O/vOyz/AB99AAD94MvLGB3/ALp4AAD956WlDxX/AKl1AAD5/2dnAA3/AM3HAAD+4eTkGhz/ALO4AACSsrg3frj/AKuqAABTk69Nr0r/AG3GAAD+4eTkGhz/AFO3AACSsrg3frj/AEupAABTk69Nr0r/AK+cAADPhKOYTqP/AA3FAAD+4eTkGhz/APO1AACSsrg3frj/AOunAABTk69Nr0r/AE+bAADPhKOYTqP/ABuQAAAV////fwD/AK3DAAD+4eTkGhz/AJO0AACSsrg3frj/AIumAABTk69Nr0r/AO+ZAADPhKOYTqP/ALuOAAAV////fwD/AJiHAAAqzP///zP/AE3CAAD+4eTkGhz/ADOzAACSsrg3frj/ACulAABTk69Nr0r/AI+YAADPhKOYTqP/AFuNAAAV////fwD/ADiGAAAqzP///zP/AH2AAAAPwaamVij/AO3AAAD+4eTkGhz/ANOxAACSsrg3frj/AMujAABTk69Nr0r/AC+XAADPhKOYTqP/APuLAAAV////fwD/ANiEAAAqzP///zP/AB1/AAAPwaamVij/ALh6AADoeff3gb//AI2/AAD+4eTkGhz/AHOwAACSsrg3frj/AGuiAABTk69Nr0r/AM+VAADPhKOYTqP/AJuKAAAV////fwD/AHiDAAAqzP///zP/AL19AAAPwaamVij/AFh5AADoeff3gb//AEd2AAAAAJmZmZn/AK7HAAByeMJmwqX/AJS4AAALm/z8jWL/AIyqAACcTcuNoMv/AE7GAAByeMJmwqX/ADS3AAALm/z8jWL/ACypAACcTcuNoMv/AJCcAADkZufnisP/AO7EAAByeMJmwqX/ANS1AAALm/z8jWL/AMynAACcTcuNoMv/ADCbAADkZufnisP/APyPAAA6m9im2FT/AI7DAAByeMJmwqX/AHS0AAALm/z8jWL/AGymAACcTcuNoMv/ANCZAADkZufnisP/AJyOAAA6m9im2FT/AHmHAAAi0P//2S//AC7CAAByeMJmwqX/ABSzAAALm/z8jWL/AAylAACcTcuNoMv/AHCYAADkZufnisP/ADyNAAA6m9im2FT/ABmGAAAi0P//2S//AF6AAAAZWuXlxJT/AM7AAAByeMJmwqX/ALSxAAALm/z8jWL/AKyjAACcTcuNoMv/ABCXAADkZufnisP/ANyLAAA6m9im2FT/ALmEAAAi0P//2S//AP5+AAAZWuXlxJT/AJl6AAAAALOzs7P/AN7IAAB4VNON08f/ABvNAADTUr28gL3/AMS5AAAqTP///7P/ALyrAACvJdq+utr/AMCdAAAEi/v7gHL/ACyRAACQZNOAsdP/AKmIAAAWnP39tGL/AI6BAAA6ht6z3mn/AMl7AADpL/z8zeX/AFh3AAAAANnZ2dn/AGbIAAB4VNON08f/AJjMAADTUr28gL3/AEe+AABNKevM68X/AEy5AAAqTP///7P/AESrAACvJdq+utr/AEidAAAEi/v7gHL/ALSQAACQZNOAsdP/ADGIAAAWnP39tGL/ABaBAAA6ht6z3mn/AFF7AADpL/z8zeX/AOB2AAAAANnZ2dn/AO7HAAB4VNON08f/ABXMAADTUr28gL3/AMS9AABNKevM68X/AEevAAAlkP//7W//ANS4AAAqTP///7P/AMyqAACvJdq+utr/ANCcAAAEi/v7gHL/ADyQAACQZNOAsdP/ALmHAAAWnP39tGL/AJ6AAAA6ht6z3mn/ANl6AADpL/z8zeX/AGh2AAAAANnZ2dn/AKXHAAB4VNON08f/AIu4AAAqTP///7P/AIOqAACvJdq+utr/AEXGAAB4VNON08f/ACu3AAAqTP///7P/ACOpAACvJdq+utr/AIecAAAEi/v7gHL/AOXEAAB4VNON08f/AMu1AAAqTP///7P/AMOnAACvJdq+utr/ACebAAAEi/v7gHL/APOPAACQZNOAsdP/AIXDAAB4VNON08f/AGu0AAAqTP///7P/AGOmAACvJdq+utr/AMeZAAAEi/v7gHL/AJOOAACQZNOAsdP/AHCHAAAWnP39tGL/ACXCAAB4VNON08f/AAuzAAAqTP///7P/AAOlAACvJdq+utr/AGeYAAAEi/v7gHL/ADONAACQZNOAsdP/ABCGAAAWnP39tGL/AFWAAAA6ht6z3mn/AMXAAAB4VNON08f/AKuxAAAqTP///7P/AKOjAACvJdq+utr/AAeXAAAEi/v7gHL/ANOLAACQZNOAsdP/ALCEAAAWnP39tGL/APV+AAA6ht6z3mn/AJB6AADpL/z8zeX/AIS/AAB4VNON08f/AGqwAAAqTP///7P/AGKiAACvJdq+utr/AMaVAAAEi/v7gHL/AJKKAACQZNOAsdP/AG+DAAAWnP39tGL/ALR9AAA6ht6z3mn/AE95AADpL/z8zeX/AD52AAAAANnZ2dn/ALDIAADt/Z6eAUL/AOnMAACxgqJeT6L/AJa5AAD6tNXVPk//AI6rAAAKuPT0bUP/AJKdAAAUnf39rmH/AP6QAAAfc/7+4Iv/AHuIAAAxYPXm9Zj/AGCBAABPQd2r3aT/AJt7AAByeMJmwqX/ACp3AACPu70yiL3/ADjIAADt/Z6eAUL/AGbMAACPu70yiL3/ABW+AACxgqJeT6L/AB65AAD6tNXVPk//ABarAAAKuPT0bUP/ABqdAAAUnf39rmH/AIaQAAAfc/7+4Iv/AAOIAAAqQP///7//AOiAAAAxYPXm9Zj/ACN7AABPQd2r3aT/ALJ2AAByeMJmwqX/AF7HAAANpPz8jVn/AES4AAAqQP///7//ADyqAABRTdWZ1ZT/AP7FAAD+4dfXGRz/AOS2AAAUnf39rmH/ANyoAABPQd2r3aT/AECcAACPxLorg7r/AJ7EAAD+4dfXGRz/AIS1AAAUnf39rmH/AHynAAAqQP///7//AOCaAABPQd2r3aT/AKyPAACPxLorg7r/AD7DAAD6tNXVPk//ACS0AAANpPz8jVn/ABymAAAfc/7+4Iv/AICZAAAxYPXm9Zj/AEyOAABRTdWZ1ZT/ACmHAACPu70yiL3/AN7BAAD6tNXVPk//AMSyAAANpPz8jVn/ALykAAAfc/7+4Iv/ACCYAAAqQP///7//AOyMAAAxYPXm9Zj/AMmFAABRTdWZ1ZT/AA6AAACPu70yiL3/AH7AAAD6tNXVPk//AGSxAAAKuPT0bUP/AFyjAAAUnf39rmH/AMCWAAAfc/7+4Iv/AIyLAAAxYPXm9Zj/AGmEAABPQd2r3aT/AK5+AAByeMJmwqX/AEl6AACPu70yiL3/AD2/AAD6tNXVPk//ACOwAAAKuPT0bUP/ABuiAAAUnf39rmH/AH+VAAAfc/7+4Iv/AEuKAAAqQP///7//ACiDAAAxYPXm9Zj/AG19AABPQd2r3aT/AAh5AAByeMJmwqX/APd1AACPu70yiL3/AFFLAACTD//w+P//ALVMAAAYI/r669f/ALVkAAB///8A////ACVPAABxgP9//9T/AE1OAAB/D//w////APFRAAAqGvX19dz/ADhJAAAXOv//5MT/AGs9AAAAAAAAAAD/AKlVAAAZMf//683/AGBLAACq//8AAP//AIURAADAzuKKK+L/AOYyAAAAvqWlKir/ACNVAAAXY97euIf/AGZKAACAZ6BfnqD/AFlNAAA///9//wD/ADZNAAAR2tLSaR7/AGU7AAALr///f1D/AHVKAACak+1kle3/ABY9AAAhIv//+Nz/ADQzAAD259zcFDz/AH03AAB///8A////APRKAACq/4sAAIv/AG83AAB//4sAi4v/AO5UAAAe77i4hgv/AG8IAAAAAKmpqan/AI02AABV/2QAZAD/AKQHAAAAAKmpqan/AH8+AAAnbr29t2v/AMlkAADU/4uLAIv/AMQ2AAA6jmtVay//ANVRAAAX////jAD/AIdXAADGwMyZMsz/AFZZAAAA/4uLAAD/ALQzAAAKeenplnr/ACY3AABVPbyPvI//AC9LAACvj4tIPYv/AJEIAAB/Z08vT0//AMYHAAB/Z08vT0//ABJOAACA/9EAztH/AHURAADH/9OUANP/ALY8AADo6///FJP/ABdKAACK//8Av///AGIIAAAAAGlpaWn/AJcHAAAAAGlpaWn/AIlKAACU4f8ekP//AE89AAAAzrKyIiL/AKRMAAAcD///+vD/AFA2AABVwIsiiyL/AI5lAADU////AP//ANwxAAAAANzc3Nz/AINMAACqB//4+P//AMxWAAAj////1wD/ABRVAAAe2drapSD/AMMIAAAAAICAgID/AE83AABV/4AAgAD/AJYKAAA70P+t/y//APgHAAAAAICAgID/AJ8LAABVD//w//D/AJo8AADplv//abT/AEdZAAAAjM3NXFz/ADoyAADC/4JLAIL/AH4GAAAqD/////D/AI4+AAAmavDw5oz/AN8fAACqFPrm5vr/AM0/AADwD///8PX/AH42AABA//x8/AD/AAI1AAAmMf//+s3/AFdKAACJP+at2Ob/AFU7AAAAd/DwgID/AGA3AAB/H//g////AKcKAAAqKPr6+tL/AFMIAAAAANPT09P/AGE2AABVZO6Q7pD/AIgHAAAAANPT09P/AKc8AAD4Sf//tsH/AKMzAAAMhP//oHr/AP82AAB90bIgsqr/AAVKAACPdfqHzvr/AH0IAACUOJl3iJn/ALIHAACUOJl3iJn/AMJKAACXNN6wxN7/AIUKAAAqH////+D/AK1PAABV//8A/wD/ANg2AABVwM0yzTL/APo1AAAVFPr68Ob/ANpkAADU////AP//AJczAAAA/4CAAAD/AA9PAABxgM1mzar/ALJKAACq/80AAM3/AHVXAADMmNO6VdP/AHVQAAC3fNuTcNv/ABI3AABnqbM8s3H/ABpLAACwj+57aO7/AJw2AABv//oA+pr/AP1NAAB9p9FI0cz/ALJYAADk5MfHFYX/AEVKAACqxnAZGXD/AF85AABqCf/1//r/AJdNAAAEHv//5OH/ACo1AAAaSf//5LX/AJNMAAAZUf//3q3/AIwEAACq/4AAAID/AHlUAAAbF/399eb/AOJIAAAq/4CAgAD/AJ9kAAA4wI5rjiP/AOVRAAAb////pQD/AKlZAAAL////RQD/AJdXAADWe9racNb/AAFVAAAmSO7u6Kr/AOc2AABVZPuY+5j/ACVOAAB/Q+6v7u7/AMdYAADxfNvbcJP/ADAwAAAaKf//79X/AGNGAAAURv//2rn/ABgMAAAUsM3NhT//AM08AAD3P///wMv/ANk4AADURt3doN3/AJlKAACEO+aw4Ob/ANFQAADU/4CAAID/APNZAAAA////AAD/AKgyAAAAPby8j4//AOVKAACfteFBaeH/ANUyAAAR3IuLRRP/AMQzAAAEivr6gHL/ALcyAAATmvT0pGD/ADg3AABnqosui1f/ABg6AAAREP//9e7/AFRlAAANt6CgUi3/ALMeAAAAAMDAwMD/AChKAACLbOuHzuv/AEJLAACvj81qWs3/AKQIAACUOJBwgJD/ANkHAACUOJBwgJD/AFoKAAAABf//+vr/ALM2AABq//8A/3//ANZKAACSm7RGgrT/AJY3AAAYVNLStIz/APA7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AAA///9//wD/AKGtAAA//+527gD/ALifAAA//81mzQD/AAeTAAA//4tFiwD/ADtNAAAR2tLSaR7/AAm8AAAR2///fyT/AJatAAAR2+7udiH/AK2fAAAR2s3NZh3/APySAAAR3IuLRRP/AGo7AAALr///f1D/ABO7AAAHqf//clb/AK2sAAAGqe7ualD/AMyeAAAGqc3NW0X/ABuSAAAGqIuLPi//AHpKAACak+1kle3/ABs9AAAhIv//+Nz/ADi7AAAhIv//+Nz/ANKsAAAiI+7u6M3/APGeAAAiIs3NyLH/AECSAAAjIouLiHj/ADkzAAD259zcFDz/AII3AAB///8A////APi6AAB///8A////AJKsAAB//+4A7u7/ALGeAAB//80Azc3/AACSAAB//4sAi4v/APlKAACq/4sAAIv/AHQ3AAB//4sAi4v/APNUAAAe77i4hgv/AJG8AAAe8P//uQ//AA2uAAAe8O7urQ7/ACSgAAAe8M3NlQz/AHqTAAAe8IuLZQj/AHQIAAAAAKmpqan/AJI2AABV/2QAZAD/AKkHAAAAAKmpqan/AIQ+AAAnbr29t2v/AM5kAADU/4uLAIv/AMk2AAA6jmtVay//AMq6AAA6j//K/3D/AGSsAAA6j+687mj/AIOeAAA6j82izVr/ANKRAAA6j4tuiz3/ANpRAAAX////jAD/AGS8AAAV////fwD/APGtAAAV/+7udgD/AAigAAAV/83NZgD/AF6TAAAV/4uLRQD/AIxXAADGwMyZMsz/AL+8AADGwf+/Pv//ADuuAADGwO6yOu7/AFKgAADGwM2aMs3/AKiTAADGwItoIov/AFtZAAAA/4uLAAD/ALkzAAAKeenplnr/ACs3AABVPbyPvI//AOW6AABVPv/B/8H/AH+sAABVPu607rT/AJ6eAABVPs2bzZv/AO2RAABVPotpi2n/ADRLAACvj4tIPYv/AJYIAAB/Z08vT0//AC66AAB/aP+X////ANOrAAB/Z+6N7u7/AASeAAB/aM15zc3/AFiRAAB/aItSi4v/AMsHAAB/Z08vT0//ABdOAACA/9EAztH/AHoRAADH/9OUANP/ALs8AADo6///FJP/AC67AADo6///FJP/AMisAADo6+7uEon/AOeeAADo683NEHb/ADaSAADn7IuLClD/ABxKAACK//8Av///AJm7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AACfts06X83/AMuSAACft4snQIv/ANoyAAAR3IuLRRP/AMkzAAAEivr6gHL/AJi6AAAJlv//jGn/AEGsAAAJlu7ugmL/AGCeAAAJls3NcFT/AK+RAAAJlouLTDn/ALwyAAATmvT0pGD/AD03AABnqosui1f/AOm6AABnq/9U/5//AIOsAABnq+5O7pT/AKKeAABnq81DzYD/APGRAABnqosui1f/AB06AAAREP//9e7/AAm7AAAREP//9e7/AKOsAAASEe7u5d7/AMKeAAASEc3Nxb//ABGSAAASEIuLhoL/AFllAAANt6CgUi3/AAS9AAANuP//gkf/AICuAAANuO7ueUL/AJegAAANuM3NaDn/AO2TAAANuYuLRyb/ALgeAAAAAMDAwMD/AC1KAACLbOuHzuv/AJ27AACQeP+Hzv//ACqtAACQeO5+wO7/AEGfAACQeM1sps3/AJCSAACRd4tKcIv/AEdLAACvj81qWs3/AOO7AACvkP+Db///AHCtAACvkO56Z+7/AIefAACvkM1pWc3/ANaSAACvkItHPIv/AKkIAACUOJBwgJD/ADK6AACVOP/G4v//ANerAACVOO650+7/AAieAACUOc2fts3/AFyRAACVOItse4v/AN4HAACUOJBwgJD/AF8KAAAABf//+vr/AEG6AAAABf//+vr/AOarAAAABe7u6en/ABeeAAAABM3Nycn/AGuRAAAAA4uLiYn/ALg2AABq//8A/3//AL26AABq//8A/3//AFesAABq/+4A7nb/AHaeAABq/80AzWb/AMWRAABq/4sAi0X/ANtKAACSm7RGgrT/AM27AACSnP9juP//AFqtAACSnO5crO7/AHGfAACSnM1PlM3/AMCSAACTm4s2ZIv/AJs3AAAYVNLStIz/AP66AAAUsP//pU//AJisAAAUsO7umkn/ALeeAAAUsM3NhT//AAaSAAAUsIuLWiv/APU7AAB//4AAgID/AGdQAADUHdjYv9j/AE28AADUHv//4f//ANqtAADUHu7u0u7/APGfAADUHc3Ntc3/AEeTAADUHYuLe4v/AMoxAAAGuP//Y0f/AHi6AAAGuP//Y0f/ACGsAAAGuO7uXEL/AECeAAAGuM3NTzn/AI+RAAAGuYuLNib/ACMQAAAqAP////4AAD1OAAB7tuBA4ND/AC+8AACB//8A9f//ALytAACB/+4A5e7/ANOfAACB/80Axc3/ACKTAACB/4sAhov/AJoRAADUc+7ugu7/ANBYAADj19DQIJD/AM+8AADrwf//Ppb/AEuuAADrwO7uOoz/AGKgAADrwM3NMnj/ALiTAADrwIuLIlL/ALMIAAAAAICAgID/APY2AABV/4AAgAD/AOgHAAAAAICAgID/AIMzAAAA/4CAAAD/AJJQAADU/4CAAID/AHIUAAAbRPX13rP/AGe6AAAbRf//57r/ABCsAAAbRO7u2K7/ADSeAAAbRM3Nupb/AIiRAAAbQ4uLfmb/AMxMAAAAAP//////ALtRAAAAAPX19fX/ALsIAAAAAL6+vr7/AEY3AABV//8A/wD/APAHAAAAAL6+vr7/AI0zAADvubCwMGD/AMdQAADE3fCgIPD/AMYKAAAq/////wD/AEy6AAAq/////wD/APGrAAAq/+7u7gD/ACKeAAAq/83NzQD/AHaRAAAq/4uLiwD/ADI2AAA4wM2azTL/AEGwjQcLA7R7AgBBvo0HC4UIoED/////////////////////////////////////////////////////////////////////////////////////AAKqAkQDAAQABKoGOQZxAaoCqgIABIMEAAKqAgACOQIABAAEAAQABAAEAAQABAAEAAQABDkCOQKDBIMEgwSNA14HxwVWBVYFxwXjBHMExwXHBaoCHQPHBeMEHQfHBccFcwTHBVYFcwTjBMcFxwWNB8cFxwXjBKoCOQKqAsEDAASqAo0DAASNAwAEjQOqAgAEAAQ5AjkCAAQ5AjkGAAQABAAEAASqAh0DOQIABAAExwUABAAEjQPXA5oB1wNUBP///////////////////////////////////////////////////////////////////////////////////////wACqgJxBAAEAAQACKoGOQKqAqoCAASPBAACqgIAAjkCAAQABAAEAAQABAAEAAQABAAEAASqAqoCjwSPBI8EAARxB8cFVgXHBccFVgXjBDkGOQYdAwAEOQZWBY0HxwU5BuMEOQbHBXMEVgXHBccFAAjHBccFVgWqAjkCqgKmBAAEqgIABHMEjQNzBI0DqgIABHMEOQKqAnMEOQKqBnMEAARzBHMEjQMdA6oCcwQABMcFAAQABI0DJwPDAScDKQT///////////////////////////////////////////////////////////////////////////////////////8AAqoCXAMABAAEqgY5BrYBqgKqAgAEZgUAAqoCAAI5AgAEAAQABAAEAAQABAAEAAQABAAEqgKqAmYFZgVmBQAEXAfjBOMEVgXHBeME4wTHBccFqgKNA1YFcwSqBlYFxwXjBMcF4wQABHMExwXjBKoG4wRzBHMEHQM5Ah0DYAMABKoCAAQABI0DAASNAzkCAAQABDkCOQKNAzkCxwUABAAEAAQABB0DHQM5AgAEjQNWBY0DjQMdAzMDMwIzA1QE////////////////////////////////////////////////////////////////////////////////////////AAIdA3EEAAQABKoGOQY5AqoCqgIABI8EAAKqAgACOQIABAAEAAQABAAEAAQABAAEAAQABKoCqgKPBI8EjwQABKgGVgVWBVYFxwVWBVYFxwU5Bh0DAARWBeMEHQfHBccF4wTHBVYFcwTjBMcFVgUdB1YF4wTjBKoCOQKqAo8EAASqAgAEAASNAwAEjQOqAgAEcwQ5AjkCAAQ5AjkGcwQABAAEAAQdAx0DOQJzBI0DVgUABI0DHQPJAsMByQKPBP//3HsCAEHOlQcLhQigQP////////////////////////////////////////////////////////////////////////////////////85AjkC1wJzBHMEHQdWBYcBqgKqAh0DrAQ5AqoCOQI5AnMEcwRzBHMEcwRzBHMEcwRzBHMEOQI5AqwErASsBHMEHwhWBVYFxwXHBVYF4wQ5BscFOQIABFYFcwSqBscFOQZWBTkGxwVWBeMExwVWBY0HVgVWBeMEOQI5AjkCwQNzBKoCcwRzBAAEcwRzBDkCcwRzBMcBxwEABMcBqgZzBHMEcwRzBKoCAAQ5AnMEAATHBQAEAAQABKwCFAKsAqwE////////////////////////////////////////////////////////////////////////////////////////OQKqAssDcwRzBB0HxwXnAaoCqgIdA6wEOQKqAjkCOQJzBHMEcwRzBHMEcwRzBHMEcwRzBKoCqgKsBKwErATjBM0HxwXHBccFxwVWBeMEOQbHBTkCcwTHBeMEqgbHBTkGVgU5BscFVgXjBMcFVgWNB1YFVgXjBKoCOQKqAqwEcwSqAnME4wRzBOMEcwSqAuME4wQ5AjkCcwQ5Ah0H4wTjBOME4wQdA3MEqgLjBHMEOQZzBHMEAAQdAz0CHQOsBP///////////////////////////////////////////////////////////////////////////////////////zkCOQLXAnMEcwQdB1YFhwGqAqoCHQOsBDkCqgI5AjkCcwRzBHMEcwRzBHMEcwRzBHMEcwQ5AjkCrASsBKwEcwQfCFYFVgXHBccFVgXjBDkGxwU5AgAEVgVzBKoGxwU5BlYFOQbHBVYF4wTHBVYFjQdWBVYF4wQ5AjkCOQLBA3MEqgJzBHMEAARzBHMEOQJzBHMExwHHAQAExwGqBnMEcwRzBHMEqgIABDkCcwQABMcFAAQABAAErAIUAqwCrAT///////////////////////////////////////////////////////////////////////////////////////85AqoCywNzBHMEHQfHBecBqgKqAh0DrAQ5AqoCOQI5AnMEcwRzBHMEcwRzBHMEcwRzBHMEqgKqAqwErASsBOMEzQfHBccFxwXHBVYF4wQ5BscFOQJzBMcF4wSqBscFOQZWBTkGxwVWBeMExwVWBY0HVgVWBeMEqgI5AqoCrARzBKoCcwTjBHME4wRzBKoC4wTjBDkCOQJzBDkCHQfjBOME4wTjBB0DcwSqAuMEcwQ5BnMEcwQABB0DPQIdA6wE//8QfAIAQd6dBwuFCKBA/////////////////////////////////////////////////////////////////////////////////////80EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQT////////////////////////////////////////////////////////////////////////////////////////NBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0E////////////////////////////////////////////////////////////////////////////////////////zQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBP///////////////////////////////////////////////////////////////////////////////////////80EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQTNBM0EzQT//zh8AgBB7aUHC4YIQI9AAAD///////////////////////////////8CAf///////////////////////////////////////////////wIB5ACIAVgCWAKiA7UC3QA9AT0BwgFYAuQAqAHkABsBWAJYAlgCWAJYAlgCWAJYAlgCWALkAOQAWAJYAlgCuwGyA9kCpAKhAuYCRwIkAtYC+QIBAUQBcQIfAlcD5AL/AnkC/wKdAmcCWgLYArECTQSKAlQCTQI7ARsBOwFYAvQB9AESAkcCzwFHAhQCTQFKAjgC6ADsAPQBKAFYAzgCLAJHAkcCZgHhAV4BMQIDAkkDDQICAs8BYAEJAWABWAL//wAA////////////////////////////////DwH///////////////////////////////////////////////8PAfgAwAFYAlgCsQPWAvMAZgFmAcUBWAL4ALIB+AA5AVgCWAJYAlgCWAJYAlgCWAJYAlgC+AD4AFgCWAJYAssBtgPoArACqAL6AlUCMgLgAgUDGgFiAZkCMgJkA+wCEQOMAhEDrgJ3Am0C4gLJAlkEoAJqAl0CYgE5AWIBWAL0AfQBIwJYAtgBWAIeAmwBXAJJAv8AAwEYAj8BbQNJAkACWAJYAogB6AGAAUMCDwJVAyICDgLaAYcBIAGHAVgC//8AAP///////////////////////////////wIB////////////////////////////////////////////////AgHkAIgBWAJYAqIDtQLdAD0BPQHCAVgC5ACoAeQAGwFYAlgCWAJYAlgCWAJYAlgCWAJYAuQA5ABYAlgCWAK7AbID2QKkAqEC5gJHAiQC1gL5AgEBRAFxAh8CWAPjAv8CeQL/Ap0CZwJaAtgCsAJNBIoCVAJNAjsBGwE7AVgC9AH0ARICRwLPAUcCFAJNAUoCOALoAOwA9AEoAVgDOAIsAkcCRwJmAeEBXgExAgMCSQMNAgICzwFgAQkBYAFYAv//AAD///////////////////////////////8PAf///////////////////////////////////////////////w8B+ADAAVgCWAKxA9YC8wBmAWYBxQFYAvgAsgH4ADkBWAJYAlgCWAJYAlgCWAJYAlgCWAL4APgAWAJYAlgCywG2A+gCsAKoAvoCVQIyAuACBQMaAWIBmAIyAmUD6wIRA4wCEQOuAncCbQLiAskCWQSgAmoCXQJiATkBYgFYAvQB9AEjAlgC2AFYAh4CbAFcAkkC/wADARgCPwFtA0kCQAJYAlgCiAHoAYABQwIPAlUDIgIOAtoBhwEgAYcBWAL//0B8AgBB/q0HC4UIoED/////////////////////////////////////////////////////////////////////////////////////iwI1A64DtAYXBZoHPQYzAh8DHwMABLQGiwLjAosCsgIXBRcFFwUXBRcFFwUXBRcFFwUXBbICsgK0BrQGtAY/BAAIeQV9BZYFKQYOBZoEMwYEBlwCXAI/BXUE5wb8BUwG0wRMBo8FFAXjBNsFeQXpB3sF4wR7BR8DsgIfA7QGAAQABOcEFAVmBBQF7ATRAhQFEgU5AjkCogQ5AssHEgXlBBQFFAVKAysEIwMSBbwEiwa8BLwEMwQXBbICFwW0Bv///////////////////////////////////////////////////////////////////////////////////////8kCpgMrBLQGkQUECPoGcwKoA6gDLwS0BgoDUgMKA+wCkQWRBZEFkQWRBZEFkQWRBZEFkQUzAzMDtAa0BrQGpAQACDEGGQbfBaQGdwV3BZEGsgb6AvoCMwYZBfYHsgbNBt0FzQYpBsMFdQV/BjEG0wgrBssFzQWoA+wCqAO0BgAEAARmBboFvgS6BW0FewO6BbIFvgK+AlIFvgJWCLIFfwW6BboF8gPDBNMDsgU3BWQHKQU3BagEsgXsArIFtAb///////////////////////////////////////////////////////////////////////////////////////+LAjUDrgO0BhcFmgc9BjMCHwMfAwAEtAaLAuMCiwKyAhcFFwUXBRcFFwUXBRcFFwUXBRcFsgKyArQGtAa0Bj8EAAh5BX0FlgUpBg4FmgQzBgQGXAJcAj8FdQTnBvwFTAbTBEwGjwUUBeME2wV5BekHewXjBHsFHwOyAh8DtAYABAAE5wQUBWYEFAXsBNECFAUSBTkCOQKiBDkCywcSBeUEFAUUBUoDKwQjAxIFvASLBrwEvAQzBBcFsgIXBbQG////////////////////////////////////////////////////////////////////////////////////////yQKmAysEkQWRBQQI+gZzAqgDqAMvBLQGCgNSAwoD7AKRBZEFkQWRBZEFkQWRBZEFkQWRBTMDMwO0BrQGtAakBAAIMQYZBt8FpAZ3BXcFkQayBvoC+gIzBhkF9geyBs0G3QXNBikGwwV1BX8GMQbTCCsGywXNBagD7AKoA7QGAAQABGYFugW+BLoFbQV7A7oFsgW+Ar4CUgW+AlYIsgV/BboFugXyA8ME0wOyBTcFZAcpBTcFqASyBewCsgW0Bv//SHwCAEGOtgcLhQigQGYE////////////////////////////////AAD///////////////////////////////////////////////9mBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYE//9mBP///////////////////////////////wAA////////////////////////////////////////////////ZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBP//ZgT///////////////////////////////8AAP///////////////////////////////////////////////2YEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgT///////////////////////////////////////////////////////////////////////////////////////9mBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYEZgRmBGYE//9UfAIAQZ6+BwuFCKBA/////////////////////////////////////////////////////////////////////////////////////2kC8AKZAjIEMgTNBKYFRwHwAvAC8AIyBPAC8ALwAjIEMgQyBDIEMgQyBDIEMgQyBDIEMgTwAvACMgQyBDIE8AIqBrgEhwTJBOgESQQzBGkFPAU6AtADmwQNBK0FGwVkBXYEaAWoBNkDpQQwBbME0QZ0BJAEZwTwAtgC8AIyBDIEMgQ0BHUE9gN1BF0E9QIEBF8ESALvAgkEXAKkBl8ESwR1BHUEHAM9AywDXwTrA/QFAgTyA8wD8AIyBPACMgT///////////////////////////////////////////////////////////////////////////////////////9pAvAC7wKwBLAEeQWmBdYB8ALwAnUDsATwAvAC8AIfA7AEsASwBLAEsASwBLAEsASwBLAE8ALwArAEsASwBIEDKgYRBcME5QQkBY0EqwRfBXgFOgJDBPAEbAT2BVcFoAWyBKwF4wQXBOUEbAX5BBIHzgToBHsENwPYAjcDsASwBLAEQwSnBBgEpQSZBPUCBAS+BGMC7wJiBFwC4Aa5BIcEqQSsBGsDcgMsA7oEOARFBmsERQQ6BHgDsAR4A7AE////////////////////////////////////////////////////////////////////////////////////////aQLwApkCMgTZA80EpgVHAfAC8ALwAjIE8ALwAvACMgQyBDIEMgQyBDIEMgQyBDIEMgQyBPAC8AIyBDIEMgTwAioG4wSHBMkE6ARJBDMEaQU8BToC0AObBA0EFwYbBWQFWQRkBagE2QOlBDAFswTRBnQEkARnBPAC2ALwAjIEMgQyBDQEdQSuA3UETAQ2AwQEdQR0Au8CCQSQAqQGXwRLBHUEdQRVAz0DXAN0BOsD9AUCBPIDzAPwAjIE8AIyBP///////////////////////////////////////////////////////////////////////////////////////2kC8AIgA7AEsATcBaYFaQLwAvACdQOwBPAC8ALwAi0DsASwBLAEsASwBLAEsASwBLAEsATwAvACsASwBLAELQMqBukEuATnBA8FvwSvBGkFbQU6Av0DMwU6BEoGSAWeBasEKAb9BAMEewVLBXcFaQdBBXgF5ATiA9ID4gOwBLAEsAS+BL8E8QO/BGoESANIBH8EnQIaA1EEjwKkBn8EjwTKBMoEkwOsA4EDdQRrBDAGmwSDBEME4gOwBOIDsAT//2B8AgBBrsYHC4UIoED/////////////////////////////////////////////////////////////////////////////////////0AImA6wDjAYWBZwI0AUmAqIDogMWBYwG6QKiA+kCogMWBRYFFgUWBRYFFgUWBRYFFgUWBaIDogOMBowGjAZdBAAIeAV8BZYFKgYPBZkENAYDBl4DowOLBXQEvgb8BUwG0wRMBpAFeAXuBNsFeAXpB3sF7AR7BaIDogOiA4wGFgUWBc4E/AQrBPwExATQAvwEEAUyAsECvAQyAsgHEAXbBPwE/ARqAysEJwMQBbwEjAa8BLwENAQUBaIDFAWMBv///////////////////////////////////////////////////////////////////////////////////////7wCOAOzBPAGsAUtCuYGqAJZBFkEsAXwBuQC1wPkAoQFsAWwBbAFsAWwBbAFsAWwBbAFsAU4AzgD8AbwBvAG7wS2BzYGGAbKBaQGdwU0BX0GswZeBHEEKwYZBZUHxgbNBt0FzQZCBq8FdAV/BhwGBwkcBuUFiQVZBIQFWQTwBrAFsAVYBZgFtQSYBVAFYQOYBbMFvAI5A14FvAJ3CLMFfgWYBZgF+gO/BKUDswUzBdYHWgU1BcYEsAVZBLAF8Ab////////////////////////////////////////////////////////////////////////////////////////QAiYDrAOMBhYFnAjQBSYCogOiAxYFjAbpAqID6QKiAxYFFgUWBRYFFgUWBRYFFgUWBRYFogOiA4wGjAaMBl0EAAh2BXwFlgUgBg8FmQQ0BgMGXgOjA4sFdAS+BvwFTAbTBEwGkAV4Be4E2wV2BewHewXsBHsFogOiA6IDjAYWBRYFzgT8BCsE/ATEBNAC+QQQBTICwQKyBDICyQcQBdsE/AT8BGoDKwQnAxAFugSMBrwEugQ0BBQFogMUBYwG////////////////////////////////////////////////////////////////////////////////////////vAI4A7ME8AawBS0K5gaoAlkEWQSwBfAG5ALXA+QChAWwBbAFsAWwBbAFsAWwBbAFsAWwBTgDOAPwBvAG8AbvBLYHNgYYBsoFpAZ3BTQFfQazBl4EcQQrBhkFlQfGBs0G3QXNBkIGrwV0BX8GHAYHCRwG5QWJBVkEhAVZBPAGsAWwBVgFmAW1BJgFUAVhA5gFswW8AjkDXgW8AncIswV8BZgFmAX6A78EpQOzBTEF1gdaBTUFxgSwBVkEsAXwBv//aHwCAEG+zgcLhQigQP////////////////////////////////////////////////////////////////////////////////////8UAiMCNQMrBZMElgbXBcUBXgJeAmoEkwT2AZMCIQLwApMEkwSTBJMEkwSTBJMEkwSTBJMEIQIhApMEkwSTBG8DMQcQBS8FDAXVBXMEIQTTBecFOwIjAukEJwQ5BwgGOwbRBDsG8gRkBG0E0wXDBGgHngR7BJEEogLwAqICVgSWA54EcwTnBM8D5wR9BLYCYgTpBAYCBgIzBAYCcQfpBNUE5wTnBEQD0QPTAukEAgQ5BjEECAS+AwgDaAQIA5ME////////////////////////////////////////////////////////////////////////////////////////FAJKAscDKwWRBDUHAAYhArYCtgJcBJEEUgKTAkgCTgORBJEEkQSRBJEEkQSRBJEEkQSRBEgCUgKRBJEEkQTRAy0HhQVgBRkF7AV7BGQEywUfBqYCpgJQBYUEiweBBl4GBgVeBkgFaASiBAwGMwW8B1YF/gSiBKYCTgOmAkIESgPbBNUEEAUdBBAFugQZA4UEQgVxAnEC9gRxAtsHQgX0BBAFEAWiA/oDeQNCBY0E2QagBI0E5wMnA2gEJwORBP///////////////////////////////////////////////////////////////////////////////////////xQCEgIXAysFaARYBlwFvAFIAkgCagRoBOwBfwIGAs0CaARoBGgEaARoBGgEaARoBGgEaAQGAgYCaARoBGgEagPHBnEEyQSuBFQFFwTHA2oFbQUvAiMCdQTLA7IGngXDBYcEwwWNBAQE/ANoBWIE0QYnBAYEPwRKAs0CSgIjBCcDbwSFBJ4EmgOeBPIDgQICBJ4ECAIIAucDCAL6Bp4EfQSeBJ4EKwNtA5gCngSyA7wF0wOyA40DywJoBMsCaAT///////////////////////////////////////////////////////////////////////////////////////8UAkoCoAMrBWgE2QaqBQoCtgK2AlwEaAQ5ApMCSAJeA2gEaARoBGgEaARoBGgEaARoBGgESAJIAmgEaARoBKwD2QYGBfYE5QRqBVYEPwSFBZoFkwKmAucEJQQKBwoG1wWkBNcF3wQ9BD8EhwW4BCcH2QSDBEoEpgJeA6YCOQQzA28EwQTDBN0DwQR1BPwCVATVBGACYAKLBGACPQfVBK4EwwTBBF4DyQNIA9UEGQROBj8EJwSkA9cCaATXAmgE//9wfAIAQc7WBwuFCKBA/////////////////////////////////////////////////////////////////////////////////////+4BpgJLAyUF4QSKBq8FuQEAAwADxwMlBSgC/gIoAsAD6QRwA3gEagSFBDoEhwQFBMUEhwSAAoACJQUlBSUF1ANuB14FOwUjBf4FOgXLBM0FhQYeAyQEjgXUBGsHIwb0BeEE9AWdBX0E8wQNBlUFzgevBewE0AQAA8ADAAMlBSUFAAQIBHsEogOYBN4DmgITBKgEWAJWAkkESgIMB7oEUASSBHoERwN1A8MCmgT5A+YFCgTwA40DcQMAA3EDJQX///////////////////////////////////////////////////////////////////////////////////////8IAgMDFASgBSAFCQdlBicCkwOTA9sDoAWgAggDoALGA5wF6wMDBf8EMgXLBC8FbwRpBS8F8ALwAqAFoAWgBWMEvAcRBg8GuQWsBsUFXwV1Bk4HkQPDBIkGfAUwCLcGjwacBY8GYQYxBXkFqwYZBgMJeAbbBYQFkwPGA5MDoAWgBQAExAQqBUAETgWTBCUDnQRwBdQCxQIOBcECIAiFBRYFQwUwBSkEGgQuA2oFiQToBrQEfwQ0BAAEGgMABKAF////////////////////////////////////////////////////////////////////////////////////////7gGmAksDJQXhBIoGrwW5AQADAAPHAyUFKAL+AigCwAPpBHADeARqBIUEOgSHBPkDxQSHBBIDEgMlBSUFJQXUA24HXgU7BSMF/gU6BcsEzQWFBh4DJASOBdQEawcjBtgF4QTYBZ0FfQTzBA0GVQXOB68F7ATQBAADwAMAAyUFJQUABJUEbgShA5oExgOhApUEgARhAlQCOQRIAgkHuARMBKAEcQSxA3MDxwKaBE4ElAYCBHoEjQNxAwADcQMlBf///////////////////////////////////////////////////////////////////////////////////////wgCAwMUBKAFIAUJB2UGJwKTA5MD2wOgBaACCAOgAsYDnAXrAwMF/wQyBcsELwWIBGkFLwXwAvACoAWgBaAFYwS8BxEGEwa5BawGxQVfBXUGTgebA8MEiQZ8BUQIowaPBqYFjwZhBjkFeQWrBhkGAwlrBtsFhAWTA8YDkwOgBaAFAARIBTEFSQRNBXUEDAMyBWcF7QLrAiEF1gIECIUFFgVNBTMFRQQjBFYDewXmBHgHqwRbBSMEAAQaAwAEoAX//3h8AgBB3t4HC8gKoED/////////////////////////////////////////////////////////////////////////////////////zwGbAjUD/AMOBLgFdQXEAW0CbQL8A/wD/wFzAgUCFwMOBA4EDgQOBA4EDgQOBA4EDgQOBCQCJAL8A/wD/AO1AycHoQRaBEQE7AToA60DDAX8BAQCjQIoBF0D1wYqBUwFIgRiBVgErQPmAyIFigQeBycE5gO/A3QCFwN0AvwD/ANUAtUDNARiAzQE+wNxAsQDNATWAeoBowPWAWQGNAQ4BDQENATKAiEDrgI0BJ0DuAV3A58DKQOEAq8DhAL8A///AAD///////////////////////////////8AAP///////////////////////////////////////////////88BmwKCA/wDDgTVBaMF3gF+An4C/AP8AxACcwIjAnADDgQOBA4EDgQOBA4EDgQOBA4EDgQ1AjUC/AP8A/wDtQMwB9kEfAQ8BAsF5wOsAxkFDAUiAqYCYARiA/4GRQVpBUIEfQWBBMgD9gM5BbsEQAdoBCgE0wOZAnADmQL8A/wDZwLzA0sEWQNLBAcEiALLA0sE9wELAtcD9wGCBksETQRLBEsE2AIxA8YCSwTJA/YFrQPKAy4DwALNA8AC/AP////////////////////////////////////////////////////////////////////////////////////////PAZsCNQP8Aw4EuAV1BcQBbQJtAvwD/AP/AXMCBQIaAw4EDgQOBA4EDgQOBA4EDgQOBA4EJAIkAvwD/AP8A7UDJwehBFoELgTsBOgDrQMMBfwEBAKNAigEXQPXBigFPAUiBFAFWASeA+YDIgWKBB8HJwTmA78DdAITA3QC/AP8A1QCHQQdBFQDHQTSA3ECHQQdBNYB6gGjA9YBVAYdBBsEHQQdBL4CHQOuAh0EkQO4BXcDlAMpA4QCrwOEAvwD////////////////////////////////////////////////////////////////////////////////////////zwGbAoID/AMOBNUFowXeAX4CfgL8A/wDEAJzAiMCeQMOBA4EDgQOBA4EDgQOBA4EDgQOBDUCNQL8A/wD/AO1AzAH2QR8BCYECwXnA6wDGQUMBSICpgJgBGID/gZABVkF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AABTLwAAGCEAACY+AAC+AwAAu0sAAP0AAACkNQAApQAAAJA5AAD/AAAA82QAALYDAAAMPgAADSAAABA+AAAMIAAAxkMBAAgAAAADAAAAK0MAAG3SAAALAAAABgAAACoYAABZbAAAAgAAAAEAAAC4LwAAjHcAAAQAAAACAAAAX0YAAAAEAAADAAAABAAAAFJFAAB50gAABQAAAAUAAAC2RgAABAQAAAQAAAAHAAAAABgAAIo5AAAFAAAACQAAAIw5AAD+bwAABAAAAAoAAAByRgAAsP4BAAQAAAAMAAAAnjIAAAAAAQAAAdDR0tPU1dbX2NkAQdb9BwsJ8L8AAAAAAAABAEHo/QcLDWludmlzAABmaWxsZWQAQYD+BwsaDR0AAJlUAAC1OAAAtgsAANt7AAAFyQAAPJEAQcD+Bwt5//////////////////////////////////////////8AAAAAAAAABP7//4f+//8HAAAAAAAAAAD//3////9///////////N//v3//////3///////////w/g/////zH8////AAAAAAAAAP//////////////AQD4AwBB0P8HC0FA1///+/////9/f1T9/w8A/t////////////7f/////wMA////////nxn////PPwMAAAAAAAD+////fwL+////fwBBmoAIC7MB////BwcAAAAAAP7//wf+BwAAAAD+//////////98/38vAGAAAADg////////IwAAAP8DAAAA4J/5///9xQMAAACwAwADAOCH+f///W0DAAAAXgAAHADgr/v///3tIwAAAAABAAAA4J/5///9zSMAAACwAwAAAODHPdYYx78DAAAAAAAAAADg3/3///3vAwAAAAADAAAA4N/9///97wMAAABAAwAAAODf/f///f8DAAAAAAMAQeCBCAsZ/v////9/DQA/AAAAAAAAAJYl8P6ubA0gHwBBiIIICwb//v///wMAQbSCCAty/////z8A/////38A7doHAAAAAFABUDGCq2IsAAAAAEAAyYD1BwAAAAAIAQL/////////////////////////D///////////////A///Pz//////Pz//qv///z/////////fX9wfzw//H9wfAAAAAEBMAEGwgwgLAQcAQcCDCAsmgAAAAP4DAAD+////////////HwD+/////////////wfg/////x8AQYCECAsV//////////////////////////8/AEGghAgLFf//////////////////////////DwBBxYQIC8kCYP8H/v//h/7//wcAAAAAAACAAP//f////3//////AAAAAAAAAP//////////////AQD4AwADAAAAAAD//////////z8AAAADAAAAwNf///v/////f39U/f8PAP7f///////////+3/////97AP///////58Z////zz8DAAAAAAAA/v///38C/v///38A/v/7//+7FgD///8HBwAAAAAA/v//B///BwD/A////////////3z/f+///z3/A+7////////z/z8e/8//AADun/n///3F0585gLDP/wMA5If5///9bdOHOQBewP8fAO6v+////e3zvzsAAMH/AADun/n///3N8485wLDD/wAA7Mc91hjHv8PHPYAAgP8AAO7f/f///e/D3z1gAMP/AADs3/3///3vw989YEDD/wAA7N/9///9/8PPPYAAw/8AQaCHCAs4/v////9//wf/f/8DAAAAAJYl8P6ubP87Xz//AwAAAAAAAAAD/wOgwv/+////A/7/3w+//v8//gIAQfqHCAtn/x8CAAAAoAAAAP7/PgD+////////////H2b+/////////////3dgAAAAYQAAAGIAAABjAAAAZAAAAGUAAABmAAAAZwAAAGgAAABpAAAAagAAAGsAAABsAAAAbQAAAG4AAABvAAAAAQBB8YgICwUVCgAACQBBiIkIC+ABFRAMExweAw0fICEiIxsaERkZGRkZGRkZGRkWEgIOCw8cGBgYGBgYFhYWFhYWFhYWFhYWFhYWFhYWFhYUHAQcFhwYGBgYGBgWFhYWFhYWFhYWFhYWFhYWFhYWFhwkHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcFhwcHBwcHBwcHBwWHBocHBYcHBwcHBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWHBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYcFhYWFhYWFhYAQZCLCAsSAgMEBQYHCAAACQoLDA0ODxARAEGuiwgLBBITABQAQcCLCAsCFRYAQd6LCAtSAQEBAQEBAQEBAQEBAQEBAQEBAQEB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ACdxAAA+cAAA6W8AAG1vAABJbwAAIW8AAB9vAAAcbwAAY2wAAE1sAAAcbAAAGmwAAAlsAAAHbAAAZWsAAElrAACwagAArmoAAKxqAACqagAAKmgAAAFoAAD/ZwAA5GcAAOJnAABPZgAATWYAAOtlAADpZQAAr2QAAC9kAAASXQAAmVQAAIRHAADHRQAArUIAAL8+AAAcPgAACj4AAEo8AABsOQAAtTgAAKYyAAB5MQAAFSEAANEgAAANHQAA1BUAAIgMAAAEDAAAtgsAACcKAABJCQAAeQQAAEQEAAA7BAAALwQAAAkEAAA2cAAAAAAAAAgArv/RAAoArv+u/wsArv+u/67/rv+u/67/rv+u/wUA0QCu/9EA0QDRANEA0QDRANEA0QCu//v/rv8OAOz/rv+u/67/rv/RANEA0QDRANEADQAlAAwAQgAQAFAAEwBtAHsAFACYAA8ApgDDAK7/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/xcArv93AK7/BwAuAK7/JgCu/xcAEQAjAK7/DQCu/67/rv+u/zoArv+u/zUArv+u/67/KACu/wcArv87AEUArv9IAK7/rv+u/67/rv8AQfG/CAvBBgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygAAAAAAAAAAAICAgICAhAMWQEAH1AIAwcSExRXFhcIC2kMHwoFDA4pESsPLRAvMCAyBjQ1GxwdHgsMISIjJCUmJygMGBkXBAobHBogKgohIiMkJSYnKAwKDlMKLFgxWFhYWFhYDBscDy5YMyEiIyQlJicoGxz/U///ISIj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cm1hdGlvbgBJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBNdWx0aWhvcCBhdHRlbXB0ZWQAUmVxdWlyZWQga2V5IG5vdCBhdmFpbGFibGUAS2V5IGhhcyBleHBpcmVkAEtleSBoYXMgYmVlbiByZXZva2VkAEtleSB3YXMgcmVqZWN0ZWQgYnkgc2VydmljZQAAAAAApQJbAPABtQWMBSUBgwYdA5QE/wDHAzEDCwa8AY8BfwPKBCsA2gavAEIDTgPcAQ4EFQChBg0BlAILAjgGZAK8Av8CXQPnBAsHzwLLBe8F2wXhAh4GRQKFAIICbANvBPEA8wMYBdkA2gNMBlQCewGdA70EAABRABUCuwCzA20A/wGFBC8F+QQ4AGUBRgGfALcGqAFzAlMBAEGIjQkLDCEEAAAAAAAAAAAvAgBBqI0JCwY1BEcEVgQAQb6NCQsCoAQAQdKNCQsiRgVgBW4FYQYAAM8BAAAAAAAAAADJBukG+QYeBzkHSQdeBwBBgI4JC5EB0XSeAFedvSqAcFIP//8+JwoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFGAAAADUAAABxAAAAa////877//+Sv///AAAAAAAAAAAZAAsAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkACgoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQBBoY8JCyEOAAAAAAAAAAAZAAsNGRkZAA0AAAIACQ4AAAAJAA4AAA4AQduPCQsBDABB548JCxUTAAAAABMAAAAACQwAAAAAAAwAAAwAQZWQCQsBEABBoZAJCxUPAAAABA8AAAAACRAAAAAAABAAABAAQc+QCQsBEgBB25AJCx4RAAAAABEAAAAACRIAAAAAABIAABIAABoAAAAaGhoAQZKRCQsOGgAAABoaGgAAAAAAAAkAQcORCQsBFABBz5EJCxUXAAAAABcAAAAACRQAAAAAABQAABQAQf2RCQsBFgBBiZIJCycVAAAAABUAAAAACRYAAAAAABYAABYAADAxMjM0NTY3ODlBQkNERUYAQdSSCQsCAwIAQfySCQsI//////////8AQcCTCQv1CP////////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAECBAcDBgUAAAAAAAAAAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADAFAAAwBUAAMAWAADAFwAAwBgAAMAZAADAGgAAwBsAAMAcAADAHQAAwB4AAMAfAADAAAAAswEAAMMCAADDAwAAwwQAAMMFAADDBgAAwwcAAMMIAADDCQAAwwoAAMMLAADDDAAAww0AANMOAADDDwAAwwAADLsBAAzDAgAMwwMADMMEAAzbAAAAAIRMAgAFAgAABgIAAAcCAAAIAgAACQIAAAoCAAALAgAADAIAAA0CAAAOAgAADwIAABACAAARAgAAEgIAAAQAAAAAAAAAwEwCABMCAAAUAgAA/P////z////ATAIAFQIAABYCAADoSwIA/EsCAAAAAAAITQIAFwIAABgCAAAHAgAACAIAABkCAAAaAgAACwIAAAwCAAANAgAAGwIAAA8CAAAcAgAAEQIAAB0CAAD4dwIAWEwCABxOAgBOU3QzX18yOWJhc2ljX2lvc0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQAAANB3AgCMTAIATlN0M19fMjE1YmFzaWNfc3RyZWFtYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAAAAAFR4AgDYTAIAAAAAAAEAAABMTAIAA/T//05TdDNfXzIxM2Jhc2ljX29zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUAAPh3AgAUTQIAhEwCAE5TdDNfXzIxNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAAAAOAAAAAAAAAC4TQIAHgIAAB8CAADI////yP///7hNAgAgAgAAIQIAAGRNAgCcTQIAsE0CAHhNAgA4AAAAAAAAAMBMAgATAgAAFAIAAMj////I////wEwCABUC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ABUAAABURgAAAAAAAKZeAADqSQAA2GUAQbz+CQseREkAABEAAABURgAAAAAAAKZeAAAXVwAA/G4AANZWAEHk/gkLOhoAAABORgAA1lYAAAAAAAATXwAA/G4AANZWAAAAAAAApl4AABsAAABORgAA1lYAAKZeAABMXwAA/G4AQaj/CQsepl4AABkAAABORgAAAAAAAKZeAADzNwAA/G4AANI3AEHQ/wkLBhgAAABORgBB4P8JCwoJVwAAb04AANZWAEH0/wkLOh4AAABORgAA1lYAAAAAAAD/XgAAb04AANZWAAAAAAAApl4AAB8AAABORgAA1lYAAKZeAAA8XwAAb04AQbiACgsepl4AAB0AAABORgAAAAAAAKZeAADkNwAAb04AANI3AEHggAoLBhwAAABORgBB8IAKCwZ7OQAAezkAQYSBCgsGIAAAAE8GAEGUgQoLCvFWAABJGgAA1lYAQaiBCgs6AgAAAE5GAADWVgAAAAAAAO5eAABJGgAA1lYAAAAAAACmXgAAAwAAAE5GAADWVgAApl4AAC9fAABJGgBB7IEKCxqmXgAAAQAAAE5GAAAAAAAApl4AANg3AABJGgBBmIIKCwJORgBBpIIKCyrBXgAA324AAPA4AAAAAAAApl4AACEAAABORgAAAAAAAKZeAAARFwAAFRcAQdyCCgsGIgAAAE8GAEHsggoLWQgAAAAEAAAAAAAAADgAAAAKAAAAOQAAAAgAAAD/////AAAAAAAAAAAKAAAAAAAAAAgAAAD/////AAAAAAAAAAA6AAAAAAAAAAgAAAD/////AAAAAAAAAAA7AEHYgwoLAQQAQYCECgu3CDwAAABAAAAAQQAAAEIAAABDAAAARAAAAD4AAABAAAAAQQAAAEUAAAAAAAAARgAAADwAAABAAAAAQQAAAEIAAABDAAAARAAAAD0AAABHAAAASAAAAEkAAABKAAAASwAAAD8AAABMAAAAQQAAAE0AAAAAAAAATgAAADwAAABAAAAAQQAAAE8AAABDAAAARAAAAGIJAAAAggIAgIYCAAAAAADENAAAAIICALCGAgAAAAAAhU0AAACCAgDghgIAAAAAAEM7AAAAggIA4IYCAAAAAAB+UQAAAIICABCHAgAAAAAABhAAABiCAgAQhwIAAAAAAEFFAAAAggIAUIcCAAAAAABeUQAAAIICAICHAgAA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";return Q}var Ie;function We(Q){if(Q==Ie&&h)return new Uint8Array(h);var D=f(Q);if(D)return D;throw"both async and sync fetching of the wasm failed"}function we(Q){return Promise.resolve().then(()=>We(Q))}function Ze(Q,D,R){return we(Q).then(v=>WebAssembly.instantiate(v,D)).then(R,v=>{u(`failed to asynchronously prepare wasm: ${v}`),He(v)})}function Ge(Q,D,R,v){return Ze(D,R,v)}function LA(){return{a:Hn}}function Fe(){var Q=LA();function D(v,U){return ZA=v.exports,b=ZA.y,Z(),le(ZA.z),Qe(),ZA}Je();function R(v){D(v.instance)}return Ie??=Ye(),Ge(h,Ie,Q,R).catch(o),{}}function pe(Q){return i.agerrMessages.push(KA(Q)),0}function Wt(Q){this.name="ExitStatus",this.message=`Program terminated with exit(${Q})`,this.status=Q}var Qt=Q=>{Q.forEach(D=>D(i))};function BA(Q,D="i8"){switch(D.endsWith("*")&&(D="*"),D){case"i1":return S[Q];case"i8":return S[Q];case"i16":return _[Q>>1];case"i32":return K[Q>>2];case"i64":return H[Q>>3];case"float":return O[Q>>2];case"double":return V[Q>>3];case"*":return J[Q>>2];default:He(`invalid type for getValue: ${D}`)}}var _t=Q=>Ki(Q),VA=()=>lr(),YA=typeof TextDecoder<"u"?new TextDecoder:void 0,Jt=(Q,D=0,R=NaN)=>{for(var v=D+R,U=D;Q[U]&&!(U>=v);)++U;if(U-D>16&&Q.buffer&&YA)return YA.decode(Q.subarray(D,U));for(var Y="";D>10,56320|CA&1023)}}return Y},KA=(Q,D)=>Q?Jt(w,Q,D):"",di=(Q,D,R,v)=>{He(`Assertion failed: ${KA(Q)}, at: `+[D?KA(D):"unknown filename",R,v?KA(v):"unknown function"])};class G{constructor(D){this.excPtr=D,this.ptr=D-24}set_type(D){J[this.ptr+4>>2]=D}get_type(){return J[this.ptr+4>>2]}set_destructor(D){J[this.ptr+8>>2]=D}get_destructor(){return J[this.ptr+8>>2]}set_caught(D){D=D?1:0,S[this.ptr+12]=D}get_caught(){return S[this.ptr+12]!=0}set_rethrown(D){D=D?1:0,S[this.ptr+13]=D}get_rethrown(){return S[this.ptr+13]!=0}init(D,R){this.set_adjusted_ptr(0),this.set_type(D),this.set_destructor(R)}set_adjusted_ptr(D){J[this.ptr+16>>2]=D}get_adjusted_ptr(){return J[this.ptr+16>>2]}}var z=0,Ae=(Q,D,R)=>{var v=new G(Q);throw v.init(D,R),z=Q,z},de={isAbs:Q=>Q.charAt(0)==="/",splitPath:Q=>{var D=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return D.exec(Q).slice(1)},normalizeArray:(Q,D)=>{for(var R=0,v=Q.length-1;v>=0;v--){var U=Q[v];U==="."?Q.splice(v,1):U===".."?(Q.splice(v,1),R++):R&&(Q.splice(v,1),R--)}if(D)for(;R;R--)Q.unshift("..");return Q},normalize:Q=>{var D=de.isAbs(Q),R=Q.substr(-1)==="/";return Q=de.normalizeArray(Q.split("/").filter(v=>!!v),!D).join("/"),!Q&&!D&&(Q="."),Q&&R&&(Q+="/"),(D?"/":"")+Q},dirname:Q=>{var D=de.splitPath(Q),R=D[0],v=D[1];return!R&&!v?".":(v&&(v=v.substr(0,v.length-1)),R+v)},basename:Q=>{if(Q==="/")return"/";Q=de.normalize(Q),Q=Q.replace(/\/$/,"");var D=Q.lastIndexOf("/");return D===-1?Q:Q.substr(D+1)},join:(...Q)=>de.normalize(Q.join("/")),join2:(Q,D)=>de.normalize(Q+"/"+D)},Ne=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return Q=>crypto.getRandomValues(Q);He("initRandomDevice")},pA=Q=>(pA=Ne())(Q),vA={resolve:(...Q)=>{for(var D="",R=!1,v=Q.length-1;v>=-1&&!R;v--){var U=v>=0?Q[v]:L.cwd();if(typeof U!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!U)return"";D=U+"/"+D,R=de.isAbs(U)}return D=de.normalizeArray(D.split("/").filter(Y=>!!Y),!R).join("/"),(R?"/":"")+D||"."},relative:(Q,D)=>{Q=vA.resolve(Q).substr(1),D=vA.resolve(D).substr(1);function R(CA){for(var hA=0;hA=0&&CA[it]==="";it--);return hA>it?[]:CA.slice(hA,it-hA+1)}for(var v=R(Q.split("/")),U=R(D.split("/")),Y=Math.min(v.length,U.length),ie=Y,ce=0;ce{for(var D=0,R=0;R=55296&&v<=57343?(D+=4,++R):D+=3}return D},wt=(Q,D,R,v)=>{if(!(v>0))return 0;for(var U=R,Y=R+v-1,ie=0;ie=55296&&ce<=57343){var Le=Q.charCodeAt(++ie);ce=65536+((ce&1023)<<10)|Le&1023}if(ce<=127){if(R>=Y)break;D[R++]=ce}else if(ce<=2047){if(R+1>=Y)break;D[R++]=192|ce>>6,D[R++]=128|ce&63}else if(ce<=65535){if(R+2>=Y)break;D[R++]=224|ce>>12,D[R++]=128|ce>>6&63,D[R++]=128|ce&63}else{if(R+3>=Y)break;D[R++]=240|ce>>18,D[R++]=128|ce>>12&63,D[R++]=128|ce>>6&63,D[R++]=128|ce&63}}return D[R]=0,R-U};function st(Q,D,R){var v=R>0?R:Re(Q)+1,U=new Array(v),Y=wt(Q,U,0,U.length);return D&&(U.length=Y),U}var nA=()=>{if(!Ke.length){var Q=null;if(typeof window<"u"&&typeof window.prompt=="function"&&(Q=window.prompt("Input: "),Q!==null&&(Q+=` +`)),!Q)return null;Ke=st(Q,!0)}return Ke.shift()},Bt={ttys:[],init(){},shutdown(){},register(Q,D){Bt.ttys[Q]={input:[],output:[],ops:D},L.registerDevice(Q,Bt.stream_ops)},stream_ops:{open(Q){var D=Bt.ttys[Q.node.rdev];if(!D)throw new L.ErrnoError(43);Q.tty=D,Q.seekable=!1},close(Q){Q.tty.ops.fsync(Q.tty)},fsync(Q){Q.tty.ops.fsync(Q.tty)},read(Q,D,R,v,U){if(!Q.tty||!Q.tty.ops.get_char)throw new L.ErrnoError(60);for(var Y=0,ie=0;ie0&&(I(Jt(Q.output)),Q.output=[])},ioctl_tcgets(Q){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(Q,D,R){return 0},ioctl_tiocgwinsz(Q){return[24,80]}},default_tty1_ops:{put_char(Q,D){D===null||D===10?(u(Jt(Q.output)),Q.output=[]):D!=0&&Q.output.push(D)},fsync(Q){Q.output&&Q.output.length>0&&(u(Jt(Q.output)),Q.output=[])}}},Wi=(Q,D)=>{w.fill(0,Q,Q+D)},Qn=(Q,D)=>Math.ceil(Q/D)*D,dn=Q=>{Q=Qn(Q,65536);var D=Ri(65536,Q);return D&&Wi(D,Q),D},HA={ops_table:null,mount(Q){return HA.createNode(null,"/",16895,0)},createNode(Q,D,R,v){if(L.isBlkdev(R)||L.isFIFO(R))throw new L.ErrnoError(63);HA.ops_table||={dir:{node:{getattr:HA.node_ops.getattr,setattr:HA.node_ops.setattr,lookup:HA.node_ops.lookup,mknod:HA.node_ops.mknod,rename:HA.node_ops.rename,unlink:HA.node_ops.unlink,rmdir:HA.node_ops.rmdir,readdir:HA.node_ops.readdir,symlink:HA.node_ops.symlink},stream:{llseek:HA.stream_ops.llseek}},file:{node:{getattr:HA.node_ops.getattr,setattr:HA.node_ops.setattr},stream:{llseek:HA.stream_ops.llseek,read:HA.stream_ops.read,write:HA.stream_ops.write,allocate:HA.stream_ops.allocate,mmap:HA.stream_ops.mmap,msync:HA.stream_ops.msync}},link:{node:{getattr:HA.node_ops.getattr,setattr:HA.node_ops.setattr,readlink:HA.node_ops.readlink},stream:{}},chrdev:{node:{getattr:HA.node_ops.getattr,setattr:HA.node_ops.setattr},stream:L.chrdev_stream_ops}};var U=L.createNode(Q,D,R,v);return L.isDir(U.mode)?(U.node_ops=HA.ops_table.dir.node,U.stream_ops=HA.ops_table.dir.stream,U.contents={}):L.isFile(U.mode)?(U.node_ops=HA.ops_table.file.node,U.stream_ops=HA.ops_table.file.stream,U.usedBytes=0,U.contents=null):L.isLink(U.mode)?(U.node_ops=HA.ops_table.link.node,U.stream_ops=HA.ops_table.link.stream):L.isChrdev(U.mode)&&(U.node_ops=HA.ops_table.chrdev.node,U.stream_ops=HA.ops_table.chrdev.stream),U.timestamp=Date.now(),Q&&(Q.contents[D]=U,Q.timestamp=U.timestamp),U},getFileDataAsTypedArray(Q){return Q.contents?Q.contents.subarray?Q.contents.subarray(0,Q.usedBytes):new Uint8Array(Q.contents):new Uint8Array(0)},expandFileStorage(Q,D){var R=Q.contents?Q.contents.length:0;if(!(R>=D)){var v=1024*1024;D=Math.max(D,R*(R>>0),R!=0&&(D=Math.max(D,256));var U=Q.contents;Q.contents=new Uint8Array(D),Q.usedBytes>0&&Q.contents.set(U.subarray(0,Q.usedBytes),0)}},resizeFileStorage(Q,D){if(Q.usedBytes!=D)if(D==0)Q.contents=null,Q.usedBytes=0;else{var R=Q.contents;Q.contents=new Uint8Array(D),R&&Q.contents.set(R.subarray(0,Math.min(D,Q.usedBytes))),Q.usedBytes=D}},node_ops:{getattr(Q){var D={};return D.dev=L.isChrdev(Q.mode)?Q.id:1,D.ino=Q.id,D.mode=Q.mode,D.nlink=1,D.uid=0,D.gid=0,D.rdev=Q.rdev,L.isDir(Q.mode)?D.size=4096:L.isFile(Q.mode)?D.size=Q.usedBytes:L.isLink(Q.mode)?D.size=Q.link.length:D.size=0,D.atime=new Date(Q.timestamp),D.mtime=new Date(Q.timestamp),D.ctime=new Date(Q.timestamp),D.blksize=4096,D.blocks=Math.ceil(D.size/D.blksize),D},setattr(Q,D){D.mode!==void 0&&(Q.mode=D.mode),D.timestamp!==void 0&&(Q.timestamp=D.timestamp),D.size!==void 0&&HA.resizeFileStorage(Q,D.size)},lookup(Q,D){throw L.genericErrors[44]},mknod(Q,D,R,v){return HA.createNode(Q,D,R,v)},rename(Q,D,R){if(L.isDir(Q.mode)){var v;try{v=L.lookupNode(D,R)}catch{}if(v)for(var U in v.contents)throw new L.ErrnoError(55)}delete Q.parent.contents[Q.name],Q.parent.timestamp=Date.now(),Q.name=R,D.contents[R]=Q,D.timestamp=Q.parent.timestamp},unlink(Q,D){delete Q.contents[D],Q.timestamp=Date.now()},rmdir(Q,D){var R=L.lookupNode(Q,D);for(var v in R.contents)throw new L.ErrnoError(55);delete Q.contents[D],Q.timestamp=Date.now()},readdir(Q){var D=[".",".."];for(var R of Object.keys(Q.contents))D.push(R);return D},symlink(Q,D,R){var v=HA.createNode(Q,D,41471,0);return v.link=R,v},readlink(Q){if(!L.isLink(Q.mode))throw new L.ErrnoError(28);return Q.link}},stream_ops:{read(Q,D,R,v,U){var Y=Q.node.contents;if(U>=Q.node.usedBytes)return 0;var ie=Math.min(Q.node.usedBytes-U,v);if(ie>8&&Y.subarray)D.set(Y.subarray(U,U+ie),R);else for(var ce=0;ce0||R+D{var U=v?"":`al ${Q}`;d(Q).then(Y=>{D(new Uint8Array(Y)),U&&Qe()},Y=>{if(R)R();else throw`Loading data file "${Q}" failed.`}),U&&Je()},Gi=(Q,D,R,v,U,Y)=>{L.createDataFile(Q,D,R,v,U,Y)},oi=[],Yt=(Q,D,R,v)=>{typeof Browser<"u"&&Browser.init();var U=!1;return oi.forEach(Y=>{U||Y.canHandle(D)&&(Y.handle(Q,D,R,v),U=!0)}),U},xi=(Q,D,R,v,U,Y,ie,ce,Le,CA)=>{var hA=D?vA.resolve(de.join2(Q,D)):Q;function it(et){function RA(jA){CA?.(),ce||Gi(Q,D,jA,v,U,Le),Y?.(),Qe()}Yt(et,hA,RA,()=>{ie?.(),Qe()})||RA(et)}Je(),typeof R=="string"?Cn(R,it,ie):it(R)},Pi=Q=>{var D={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},R=D[Q];if(typeof R>"u")throw new Error(`Unknown file open mode: ${Q}`);return R},Xt=(Q,D)=>{var R=0;return Q&&(R|=365),D&&(R|=146),R},L={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class{constructor(Q){this.name="ErrnoError",this.errno=Q}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(Q){this.node=Q}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(Q){this.shared.flags=Q}get position(){return this.shared.position}set position(Q){this.shared.position=Q}},FSNode:class{constructor(Q,D,R,v){Q||(Q=this),this.parent=Q,this.mount=Q.mount,this.mounted=null,this.id=L.nextInode++,this.name=D,this.mode=R,this.node_ops={},this.stream_ops={},this.rdev=v,this.readMode=365,this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(Q){Q?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(Q){Q?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return L.isDir(this.mode)}get isDevice(){return L.isChrdev(this.mode)}},lookupPath(Q,D={}){if(Q=vA.resolve(Q),!Q)return{path:"",node:null};var R={follow_mount:!0,recurse_count:0};if(D=Object.assign(R,D),D.recurse_count>8)throw new L.ErrnoError(32);for(var v=Q.split("/").filter(it=>!!it),U=L.root,Y="/",ie=0;ie40)throw new L.ErrnoError(32)}}return{path:Y,node:U}},getPath(Q){for(var D;;){if(L.isRoot(Q)){var R=Q.mount.mountpoint;return D?R[R.length-1]!=="/"?`${R}/${D}`:R+D:R}D=D?`${Q.name}/${D}`:Q.name,Q=Q.parent}},hashName(Q,D){for(var R=0,v=0;v>>0)%L.nameTable.length},hashAddNode(Q){var D=L.hashName(Q.parent.id,Q.name);Q.name_next=L.nameTable[D],L.nameTable[D]=Q},hashRemoveNode(Q){var D=L.hashName(Q.parent.id,Q.name);if(L.nameTable[D]===Q)L.nameTable[D]=Q.name_next;else for(var R=L.nameTable[D];R;){if(R.name_next===Q){R.name_next=Q.name_next;break}R=R.name_next}},lookupNode(Q,D){var R=L.mayLookup(Q);if(R)throw new L.ErrnoError(R);for(var v=L.hashName(Q.id,D),U=L.nameTable[v];U;U=U.name_next){var Y=U.name;if(U.parent.id===Q.id&&Y===D)return U}return L.lookup(Q,D)},createNode(Q,D,R,v){var U=new L.FSNode(Q,D,R,v);return L.hashAddNode(U),U},destroyNode(Q){L.hashRemoveNode(Q)},isRoot(Q){return Q===Q.parent},isMountpoint(Q){return!!Q.mounted},isFile(Q){return(Q&61440)===32768},isDir(Q){return(Q&61440)===16384},isLink(Q){return(Q&61440)===40960},isChrdev(Q){return(Q&61440)===8192},isBlkdev(Q){return(Q&61440)===24576},isFIFO(Q){return(Q&61440)===4096},isSocket(Q){return(Q&49152)===49152},flagsToPermissionString(Q){var D=["r","w","rw"][Q&3];return Q&512&&(D+="w"),D},nodePermissions(Q,D){return L.ignorePermissions?0:D.includes("r")&&!(Q.mode&292)||D.includes("w")&&!(Q.mode&146)||D.includes("x")&&!(Q.mode&73)?2:0},mayLookup(Q){if(!L.isDir(Q.mode))return 54;var D=L.nodePermissions(Q,"x");return D||(Q.node_ops.lookup?0:2)},mayCreate(Q,D){try{var R=L.lookupNode(Q,D);return 20}catch{}return L.nodePermissions(Q,"wx")},mayDelete(Q,D,R){var v;try{v=L.lookupNode(Q,D)}catch(Y){return Y.errno}var U=L.nodePermissions(Q,"wx");if(U)return U;if(R){if(!L.isDir(v.mode))return 54;if(L.isRoot(v)||L.getPath(v)===L.cwd())return 10}else if(L.isDir(v.mode))return 31;return 0},mayOpen(Q,D){return Q?L.isLink(Q.mode)?32:L.isDir(Q.mode)&&(L.flagsToPermissionString(D)!=="r"||D&512)?31:L.nodePermissions(Q,L.flagsToPermissionString(D)):44},MAX_OPEN_FDS:4096,nextfd(){for(var Q=0;Q<=L.MAX_OPEN_FDS;Q++)if(!L.streams[Q])return Q;throw new L.ErrnoError(33)},getStreamChecked(Q){var D=L.getStream(Q);if(!D)throw new L.ErrnoError(8);return D},getStream:Q=>L.streams[Q],createStream(Q,D=-1){return Q=Object.assign(new L.FSStream,Q),D==-1&&(D=L.nextfd()),Q.fd=D,L.streams[D]=Q,Q},closeStream(Q){L.streams[Q]=null},dupStream(Q,D=-1){var R=L.createStream(Q,D);return R.stream_ops?.dup?.(R),R},chrdev_stream_ops:{open(Q){var D=L.getDevice(Q.node.rdev);Q.stream_ops=D.stream_ops,Q.stream_ops.open?.(Q)},llseek(){throw new L.ErrnoError(70)}},major:Q=>Q>>8,minor:Q=>Q&255,makedev:(Q,D)=>Q<<8|D,registerDevice(Q,D){L.devices[Q]={stream_ops:D}},getDevice:Q=>L.devices[Q],getMounts(Q){for(var D=[],R=[Q];R.length;){var v=R.pop();D.push(v),R.push(...v.mounts)}return D},syncfs(Q,D){typeof Q=="function"&&(D=Q,Q=!1),L.syncFSRequests++,L.syncFSRequests>1&&u(`warning: ${L.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var R=L.getMounts(L.root.mount),v=0;function U(ie){return L.syncFSRequests--,D(ie)}function Y(ie){if(ie)return Y.errored?void 0:(Y.errored=!0,U(ie));++v>=R.length&&U(null)}R.forEach(ie=>{if(!ie.type.syncfs)return Y(null);ie.type.syncfs(ie,Q,Y)})},mount(Q,D,R){var v=R==="/",U=!R,Y;if(v&&L.root)throw new L.ErrnoError(10);if(!v&&!U){var ie=L.lookupPath(R,{follow_mount:!1});if(R=ie.path,Y=ie.node,L.isMountpoint(Y))throw new L.ErrnoError(10);if(!L.isDir(Y.mode))throw new L.ErrnoError(54)}var ce={type:Q,opts:D,mountpoint:R,mounts:[]},Le=Q.mount(ce);return Le.mount=ce,ce.root=Le,v?L.root=Le:Y&&(Y.mounted=ce,Y.mount&&Y.mount.mounts.push(ce)),Le},unmount(Q){var D=L.lookupPath(Q,{follow_mount:!1});if(!L.isMountpoint(D.node))throw new L.ErrnoError(28);var R=D.node,v=R.mounted,U=L.getMounts(v);Object.keys(L.nameTable).forEach(ie=>{for(var ce=L.nameTable[ie];ce;){var Le=ce.name_next;U.includes(ce.mount)&&L.destroyNode(ce),ce=Le}}),R.mounted=null;var Y=R.mount.mounts.indexOf(v);R.mount.mounts.splice(Y,1)},lookup(Q,D){return Q.node_ops.lookup(Q,D)},mknod(Q,D,R){var v=L.lookupPath(Q,{parent:!0}),U=v.node,Y=de.basename(Q);if(!Y||Y==="."||Y==="..")throw new L.ErrnoError(28);var ie=L.mayCreate(U,Y);if(ie)throw new L.ErrnoError(ie);if(!U.node_ops.mknod)throw new L.ErrnoError(63);return U.node_ops.mknod(U,Y,D,R)},create(Q,D){return D=D!==void 0?D:438,D&=4095,D|=32768,L.mknod(Q,D,0)},mkdir(Q,D){return D=D!==void 0?D:511,D&=1023,D|=16384,L.mknod(Q,D,0)},mkdirTree(Q,D){for(var R=Q.split("/"),v="",U=0;U"u"&&(R=D,D=438),D|=8192,L.mknod(Q,D,R)},symlink(Q,D){if(!vA.resolve(Q))throw new L.ErrnoError(44);var R=L.lookupPath(D,{parent:!0}),v=R.node;if(!v)throw new L.ErrnoError(44);var U=de.basename(D),Y=L.mayCreate(v,U);if(Y)throw new L.ErrnoError(Y);if(!v.node_ops.symlink)throw new L.ErrnoError(63);return v.node_ops.symlink(v,U,Q)},rename(Q,D){var R=de.dirname(Q),v=de.dirname(D),U=de.basename(Q),Y=de.basename(D),ie,ce,Le;if(ie=L.lookupPath(Q,{parent:!0}),ce=ie.node,ie=L.lookupPath(D,{parent:!0}),Le=ie.node,!ce||!Le)throw new L.ErrnoError(44);if(ce.mount!==Le.mount)throw new L.ErrnoError(75);var CA=L.lookupNode(ce,U),hA=vA.relative(Q,v);if(hA.charAt(0)!==".")throw new L.ErrnoError(28);if(hA=vA.relative(D,R),hA.charAt(0)!==".")throw new L.ErrnoError(55);var it;try{it=L.lookupNode(Le,Y)}catch{}if(CA!==it){var et=L.isDir(CA.mode),RA=L.mayDelete(ce,U,et);if(RA)throw new L.ErrnoError(RA);if(RA=it?L.mayDelete(Le,Y,et):L.mayCreate(Le,Y),RA)throw new L.ErrnoError(RA);if(!ce.node_ops.rename)throw new L.ErrnoError(63);if(L.isMountpoint(CA)||it&&L.isMountpoint(it))throw new L.ErrnoError(10);if(Le!==ce&&(RA=L.nodePermissions(ce,"w"),RA))throw new L.ErrnoError(RA);L.hashRemoveNode(CA);try{ce.node_ops.rename(CA,Le,Y),CA.parent=Le}catch(jA){throw jA}finally{L.hashAddNode(CA)}}},rmdir(Q){var D=L.lookupPath(Q,{parent:!0}),R=D.node,v=de.basename(Q),U=L.lookupNode(R,v),Y=L.mayDelete(R,v,!0);if(Y)throw new L.ErrnoError(Y);if(!R.node_ops.rmdir)throw new L.ErrnoError(63);if(L.isMountpoint(U))throw new L.ErrnoError(10);R.node_ops.rmdir(R,v),L.destroyNode(U)},readdir(Q){var D=L.lookupPath(Q,{follow:!0}),R=D.node;if(!R.node_ops.readdir)throw new L.ErrnoError(54);return R.node_ops.readdir(R)},unlink(Q){var D=L.lookupPath(Q,{parent:!0}),R=D.node;if(!R)throw new L.ErrnoError(44);var v=de.basename(Q),U=L.lookupNode(R,v),Y=L.mayDelete(R,v,!1);if(Y)throw new L.ErrnoError(Y);if(!R.node_ops.unlink)throw new L.ErrnoError(63);if(L.isMountpoint(U))throw new L.ErrnoError(10);R.node_ops.unlink(R,v),L.destroyNode(U)},readlink(Q){var D=L.lookupPath(Q),R=D.node;if(!R)throw new L.ErrnoError(44);if(!R.node_ops.readlink)throw new L.ErrnoError(28);return vA.resolve(L.getPath(R.parent),R.node_ops.readlink(R))},stat(Q,D){var R=L.lookupPath(Q,{follow:!D}),v=R.node;if(!v)throw new L.ErrnoError(44);if(!v.node_ops.getattr)throw new L.ErrnoError(63);return v.node_ops.getattr(v)},lstat(Q){return L.stat(Q,!0)},chmod(Q,D,R){var v;if(typeof Q=="string"){var U=L.lookupPath(Q,{follow:!R});v=U.node}else v=Q;if(!v.node_ops.setattr)throw new L.ErrnoError(63);v.node_ops.setattr(v,{mode:D&4095|v.mode&-4096,timestamp:Date.now()})},lchmod(Q,D){L.chmod(Q,D,!0)},fchmod(Q,D){var R=L.getStreamChecked(Q);L.chmod(R.node,D)},chown(Q,D,R,v){var U;if(typeof Q=="string"){var Y=L.lookupPath(Q,{follow:!v});U=Y.node}else U=Q;if(!U.node_ops.setattr)throw new L.ErrnoError(63);U.node_ops.setattr(U,{timestamp:Date.now()})},lchown(Q,D,R){L.chown(Q,D,R,!0)},fchown(Q,D,R){var v=L.getStreamChecked(Q);L.chown(v.node,D,R)},truncate(Q,D){if(D<0)throw new L.ErrnoError(28);var R;if(typeof Q=="string"){var v=L.lookupPath(Q,{follow:!0});R=v.node}else R=Q;if(!R.node_ops.setattr)throw new L.ErrnoError(63);if(L.isDir(R.mode))throw new L.ErrnoError(31);if(!L.isFile(R.mode))throw new L.ErrnoError(28);var U=L.nodePermissions(R,"w");if(U)throw new L.ErrnoError(U);R.node_ops.setattr(R,{size:D,timestamp:Date.now()})},ftruncate(Q,D){var R=L.getStreamChecked(Q);if((R.flags&2097155)===0)throw new L.ErrnoError(28);L.truncate(R.node,D)},utime(Q,D,R){var v=L.lookupPath(Q,{follow:!0}),U=v.node;U.node_ops.setattr(U,{timestamp:Math.max(D,R)})},open(Q,D,R){if(Q==="")throw new L.ErrnoError(44);D=typeof D=="string"?Pi(D):D,D&64?(R=typeof R>"u"?438:R,R=R&4095|32768):R=0;var v;if(typeof Q=="object")v=Q;else{Q=de.normalize(Q);try{var U=L.lookupPath(Q,{follow:!(D&131072)});v=U.node}catch{}}var Y=!1;if(D&64)if(v){if(D&128)throw new L.ErrnoError(20)}else v=L.mknod(Q,R,0),Y=!0;if(!v)throw new L.ErrnoError(44);if(L.isChrdev(v.mode)&&(D&=-513),D&65536&&!L.isDir(v.mode))throw new L.ErrnoError(54);if(!Y){var ie=L.mayOpen(v,D);if(ie)throw new L.ErrnoError(ie)}D&512&&!Y&&L.truncate(v,0),D&=-131713;var ce=L.createStream({node:v,path:L.getPath(v),flags:D,seekable:!0,position:0,stream_ops:v.stream_ops,ungotten:[],error:!1});return ce.stream_ops.open&&ce.stream_ops.open(ce),ce},close(Q){if(L.isClosed(Q))throw new L.ErrnoError(8);Q.getdents&&(Q.getdents=null);try{Q.stream_ops.close&&Q.stream_ops.close(Q)}catch(D){throw D}finally{L.closeStream(Q.fd)}Q.fd=null},isClosed(Q){return Q.fd===null},llseek(Q,D,R){if(L.isClosed(Q))throw new L.ErrnoError(8);if(!Q.seekable||!Q.stream_ops.llseek)throw new L.ErrnoError(70);if(R!=0&&R!=1&&R!=2)throw new L.ErrnoError(28);return Q.position=Q.stream_ops.llseek(Q,D,R),Q.ungotten=[],Q.position},read(Q,D,R,v,U){if(v<0||U<0)throw new L.ErrnoError(28);if(L.isClosed(Q))throw new L.ErrnoError(8);if((Q.flags&2097155)===1)throw new L.ErrnoError(8);if(L.isDir(Q.node.mode))throw new L.ErrnoError(31);if(!Q.stream_ops.read)throw new L.ErrnoError(28);var Y=typeof U<"u";if(!Y)U=Q.position;else if(!Q.seekable)throw new L.ErrnoError(70);var ie=Q.stream_ops.read(Q,D,R,v,U);return Y||(Q.position+=ie),ie},write(Q,D,R,v,U,Y){if(v<0||U<0)throw new L.ErrnoError(28);if(L.isClosed(Q))throw new L.ErrnoError(8);if((Q.flags&2097155)===0)throw new L.ErrnoError(8);if(L.isDir(Q.node.mode))throw new L.ErrnoError(31);if(!Q.stream_ops.write)throw new L.ErrnoError(28);Q.seekable&&Q.flags&1024&&L.llseek(Q,0,2);var ie=typeof U<"u";if(!ie)U=Q.position;else if(!Q.seekable)throw new L.ErrnoError(70);var ce=Q.stream_ops.write(Q,D,R,v,U,Y);return ie||(Q.position+=ce),ce},allocate(Q,D,R){if(L.isClosed(Q))throw new L.ErrnoError(8);if(D<0||R<=0)throw new L.ErrnoError(28);if((Q.flags&2097155)===0)throw new L.ErrnoError(8);if(!L.isFile(Q.node.mode)&&!L.isDir(Q.node.mode))throw new L.ErrnoError(43);if(!Q.stream_ops.allocate)throw new L.ErrnoError(138);Q.stream_ops.allocate(Q,D,R)},mmap(Q,D,R,v,U){if((v&2)!==0&&(U&2)===0&&(Q.flags&2097155)!==2)throw new L.ErrnoError(2);if((Q.flags&2097155)===1)throw new L.ErrnoError(2);if(!Q.stream_ops.mmap)throw new L.ErrnoError(43);if(!D)throw new L.ErrnoError(28);return Q.stream_ops.mmap(Q,D,R,v,U)},msync(Q,D,R,v,U){return Q.stream_ops.msync?Q.stream_ops.msync(Q,D,R,v,U):0},ioctl(Q,D,R){if(!Q.stream_ops.ioctl)throw new L.ErrnoError(59);return Q.stream_ops.ioctl(Q,D,R)},readFile(Q,D={}){if(D.flags=D.flags||0,D.encoding=D.encoding||"binary",D.encoding!=="utf8"&&D.encoding!=="binary")throw new Error(`Invalid encoding type "${D.encoding}"`);var R,v=L.open(Q,D.flags),U=L.stat(Q),Y=U.size,ie=new Uint8Array(Y);return L.read(v,ie,0,Y,0),D.encoding==="utf8"?R=Jt(ie):D.encoding==="binary"&&(R=ie),L.close(v),R},writeFile(Q,D,R={}){R.flags=R.flags||577;var v=L.open(Q,R.flags,R.mode);if(typeof D=="string"){var U=new Uint8Array(Re(D)+1),Y=wt(D,U,0,U.length);L.write(v,U,0,Y,void 0,R.canOwn)}else if(ArrayBuffer.isView(D))L.write(v,D,0,D.byteLength,void 0,R.canOwn);else throw new Error("Unsupported data type");L.close(v)},cwd:()=>L.currentPath,chdir(Q){var D=L.lookupPath(Q,{follow:!0});if(D.node===null)throw new L.ErrnoError(44);if(!L.isDir(D.node.mode))throw new L.ErrnoError(54);var R=L.nodePermissions(D.node,"x");if(R)throw new L.ErrnoError(R);L.currentPath=D.path},createDefaultDirectories(){L.mkdir("/tmp"),L.mkdir("/home"),L.mkdir("/home/web_user")},createDefaultDevices(){L.mkdir("/dev"),L.registerDevice(L.makedev(1,3),{read:()=>0,write:(v,U,Y,ie,ce)=>ie}),L.mkdev("/dev/null",L.makedev(1,3)),Bt.register(L.makedev(5,0),Bt.default_tty_ops),Bt.register(L.makedev(6,0),Bt.default_tty1_ops),L.mkdev("/dev/tty",L.makedev(5,0)),L.mkdev("/dev/tty1",L.makedev(6,0));var Q=new Uint8Array(1024),D=0,R=()=>(D===0&&(D=pA(Q).byteLength),Q[--D]);L.createDevice("/dev","random",R),L.createDevice("/dev","urandom",R),L.mkdir("/dev/shm"),L.mkdir("/dev/shm/tmp")},createSpecialDirectories(){L.mkdir("/proc");var Q=L.mkdir("/proc/self");L.mkdir("/proc/self/fd"),L.mount({mount(){var D=L.createNode(Q,"fd",16895,73);return D.node_ops={lookup(R,v){var U=+v,Y=L.getStreamChecked(U),ie={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>Y.path}};return ie.parent=ie,ie}},D}},{},"/proc/self/fd")},createStandardStreams(Q,D,R){Q?L.createDevice("/dev","stdin",Q):L.symlink("/dev/tty","/dev/stdin"),D?L.createDevice("/dev","stdout",null,D):L.symlink("/dev/tty","/dev/stdout"),R?L.createDevice("/dev","stderr",null,R):L.symlink("/dev/tty1","/dev/stderr"),L.open("/dev/stdin",0),L.open("/dev/stdout",1),L.open("/dev/stderr",1)},staticInit(){[44].forEach(Q=>{L.genericErrors[Q]=new L.ErrnoError(Q),L.genericErrors[Q].stack=""}),L.nameTable=new Array(4096),L.mount(HA,{},"/"),L.createDefaultDirectories(),L.createDefaultDevices(),L.createSpecialDirectories(),L.filesystems={MEMFS:HA}},init(Q,D,R){L.initialized=!0,L.createStandardStreams(Q,D,R)},quit(){L.initialized=!1;for(var Q=0;Qthis.length-1||RA<0)){var jA=RA%this.chunkSize,rn=RA/this.chunkSize|0;return this.getter(rn)[jA]}}setDataGetter(RA){this.getter=RA}cacheLength(){var RA=new XMLHttpRequest;if(RA.open("HEAD",R,!1),RA.send(null),!(RA.status>=200&&RA.status<300||RA.status===304))throw new Error("Couldn't load "+R+". Status: "+RA.status);var jA=Number(RA.getResponseHeader("Content-length")),rn,j=(rn=RA.getResponseHeader("Accept-Ranges"))&&rn==="bytes",Ee=(rn=RA.getResponseHeader("Content-Encoding"))&&rn==="gzip",qe=1024*1024;j||(qe=jA);var kA=(wA,yt)=>{if(wA>yt)throw new Error("invalid range ("+wA+", "+yt+") or no bytes requested!");if(yt>jA-1)throw new Error("only "+jA+" bytes available! programmer error!");var at=new XMLHttpRequest;if(at.open("GET",R,!1),jA!==qe&&at.setRequestHeader("Range","bytes="+wA+"-"+yt),at.responseType="arraybuffer",at.overrideMimeType&&at.overrideMimeType("text/plain; charset=x-user-defined"),at.send(null),!(at.status>=200&&at.status<300||at.status===304))throw new Error("Couldn't load "+R+". Status: "+at.status);return at.response!==void 0?new Uint8Array(at.response||[]):st(at.responseText||"",!0)},MA=this;MA.setDataGetter(wA=>{var yt=wA*qe,at=(wA+1)*qe-1;if(at=Math.min(at,jA-1),typeof MA.chunks[wA]>"u"&&(MA.chunks[wA]=kA(yt,at)),typeof MA.chunks[wA]>"u")throw new Error("doXHR failed!");return MA.chunks[wA]}),(Ee||!jA)&&(qe=jA=1,jA=this.getter(0).length,qe=jA,I("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=jA,this._chunkSize=qe,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var ie,ce}else var ce={isDevice:!1,url:R};var Le=L.createFile(Q,D,ce,v,U);ce.contents?Le.contents=ce.contents:ce.url&&(Le.contents=null,Le.url=ce.url),Object.defineProperties(Le,{usedBytes:{get:function(){return this.contents.length}}});var CA={},hA=Object.keys(Le.stream_ops);hA.forEach(et=>{var RA=Le.stream_ops[et];CA[et]=(...jA)=>(L.forceLoadFile(Le),RA(...jA))});function it(et,RA,jA,rn,j){var Ee=et.node.contents;if(j>=Ee.length)return 0;var qe=Math.min(Ee.length-j,rn);if(Ee.slice)for(var kA=0;kA(L.forceLoadFile(Le),it(et,RA,jA,rn,j)),CA.mmap=(et,RA,jA,rn,j)=>{L.forceLoadFile(Le);var Ee=dn(RA);if(!Ee)throw new L.ErrnoError(48);return it(et,S,Ee,RA,jA),{ptr:Ee,allocated:!0}},Le.stream_ops=CA,Le}},ct={DEFAULT_POLLMASK:5,calculateAt(Q,D,R){if(de.isAbs(D))return D;var v;if(Q===-100)v=L.cwd();else{var U=ct.getStreamFromFD(Q);v=U.path}if(D.length==0){if(!R)throw new L.ErrnoError(44);return v}return de.join2(v,D)},doStat(Q,D,R){var v=Q(D);K[R>>2]=v.dev,K[R+4>>2]=v.mode,J[R+8>>2]=v.nlink,K[R+12>>2]=v.uid,K[R+16>>2]=v.gid,K[R+20>>2]=v.rdev,H[R+24>>3]=BigInt(v.size),K[R+32>>2]=4096,K[R+36>>2]=v.blocks;var U=v.atime.getTime(),Y=v.mtime.getTime(),ie=v.ctime.getTime();return H[R+40>>3]=BigInt(Math.floor(U/1e3)),J[R+48>>2]=U%1e3*1e3*1e3,H[R+56>>3]=BigInt(Math.floor(Y/1e3)),J[R+64>>2]=Y%1e3*1e3*1e3,H[R+72>>3]=BigInt(Math.floor(ie/1e3)),J[R+80>>2]=ie%1e3*1e3*1e3,H[R+88>>3]=BigInt(v.ino),0},doMsync(Q,D,R,v,U){if(!L.isFile(D.node.mode))throw new L.ErrnoError(43);if(v&2)return 0;var Y=w.slice(Q,Q+R);L.msync(D,Y,U,R,v)},getStreamFromFD(Q){var D=L.getStreamChecked(Q);return D},varargs:void 0,getStr(Q){var D=KA(Q);return D}};function Di(Q,D,R,v){try{if(D=ct.getStr(D),D=ct.calculateAt(Q,D),R&-8)return-28;var U=L.lookupPath(D,{follow:!0}),Y=U.node;if(!Y)return-44;var ie="";return R&4&&(ie+="r"),R&2&&(ie+="w"),R&1&&(ie+="x"),ie&&L.nodePermissions(Y,ie)?-2:0}catch(ce){if(typeof L>"u"||ce.name!=="ErrnoError")throw ce;return-ce.errno}}function mn(){var Q=K[+ct.varargs>>2];return ct.varargs+=4,Q}var pn=mn;function so(Q,D,R){ct.varargs=R;try{var v=ct.getStreamFromFD(Q);switch(D){case 0:{var U=mn();if(U<0)return-28;for(;L.streams[U];)U++;var Y;return Y=L.dupStream(v,U),Y.fd}case 1:case 2:return 0;case 3:return v.flags;case 4:{var U=mn();return v.flags|=U,0}case 12:{var U=pn(),ie=0;return _[U+ie>>1]=2,0}case 13:case 14:return 0}return-28}catch(ce){if(typeof L>"u"||ce.name!=="ErrnoError")throw ce;return-ce.errno}}function $o(Q,D){try{var R=ct.getStreamFromFD(Q);return ct.doStat(L.stat,R.path,D)}catch(v){if(typeof L>"u"||v.name!=="ErrnoError")throw v;return-v.errno}}function Ao(Q,D,R){ct.varargs=R;try{var v=ct.getStreamFromFD(Q);switch(D){case 21509:return v.tty?0:-59;case 21505:{if(!v.tty)return-59;if(v.tty.ops.ioctl_tcgets){var U=v.tty.ops.ioctl_tcgets(v),Y=pn();K[Y>>2]=U.c_iflag||0,K[Y+4>>2]=U.c_oflag||0,K[Y+8>>2]=U.c_cflag||0,K[Y+12>>2]=U.c_lflag||0;for(var ie=0;ie<32;ie++)S[Y+ie+17]=U.c_cc[ie]||0;return 0}return 0}case 21510:case 21511:case 21512:return v.tty?0:-59;case 21506:case 21507:case 21508:{if(!v.tty)return-59;if(v.tty.ops.ioctl_tcsets){for(var Y=pn(),ce=K[Y>>2],Le=K[Y+4>>2],CA=K[Y+8>>2],hA=K[Y+12>>2],it=[],ie=0;ie<32;ie++)it.push(S[Y+ie+17]);return v.tty.ops.ioctl_tcsets(v.tty,D,{c_iflag:ce,c_oflag:Le,c_cflag:CA,c_lflag:hA,c_cc:it})}return 0}case 21519:{if(!v.tty)return-59;var Y=pn();return K[Y>>2]=0,0}case 21520:return v.tty?-28:-59;case 21531:{var Y=pn();return L.ioctl(v,D,Y)}case 21523:{if(!v.tty)return-59;if(v.tty.ops.ioctl_tiocgwinsz){var et=v.tty.ops.ioctl_tiocgwinsz(v.tty),Y=pn();_[Y>>1]=et[0],_[Y+2>>1]=et[1]}return 0}case 21524:return v.tty?0:-59;case 21515:return v.tty?0:-59;default:return-28}}catch(RA){if(typeof L>"u"||RA.name!=="ErrnoError")throw RA;return-RA.errno}}function Fn(Q,D,R,v){try{D=ct.getStr(D);var U=v&256,Y=v&4096;return v=v&-6401,D=ct.calculateAt(Q,D,Y),ct.doStat(U?L.lstat:L.stat,D,R)}catch(ie){if(typeof L>"u"||ie.name!=="ErrnoError")throw ie;return-ie.errno}}function Qr(Q,D,R,v){ct.varargs=v;try{D=ct.getStr(D),D=ct.calculateAt(Q,D);var U=v?mn():0;return L.open(D,R,U).fd}catch(Y){if(typeof L>"u"||Y.name!=="ErrnoError")throw Y;return-Y.errno}}function mr(Q,D){try{return Q=ct.getStr(Q),ct.doStat(L.stat,Q,D)}catch(R){if(typeof L>"u"||R.name!=="ErrnoError")throw R;return-R.errno}}var zo=()=>{He("")},On=Q=>Q%4===0&&(Q%100!==0||Q%400===0),ho=[0,31,60,91,121,152,182,213,244,274,305,335],sA=[0,31,59,90,120,151,181,212,243,273,304,334],_i=Q=>{var D=On(Q.getFullYear()),R=D?ho:sA,v=R[Q.getMonth()]+Q.getDate()-1;return v},Zi=9007199254740992,Jn=-9007199254740992,Bo=Q=>QZi?NaN:Number(Q);function pr(Q,D){Q=Bo(Q);var R=new Date(Q*1e3);K[D>>2]=R.getSeconds(),K[D+4>>2]=R.getMinutes(),K[D+8>>2]=R.getHours(),K[D+12>>2]=R.getDate(),K[D+16>>2]=R.getMonth(),K[D+20>>2]=R.getFullYear()-1900,K[D+24>>2]=R.getDay();var v=_i(R)|0;K[D+28>>2]=v,K[D+36>>2]=-(R.getTimezoneOffset()*60);var U=new Date(R.getFullYear(),0,1),Y=new Date(R.getFullYear(),6,1).getTimezoneOffset(),ie=U.getTimezoneOffset(),ce=(Y!=ie&&R.getTimezoneOffset()==Math.min(ie,Y))|0;K[D+32>>2]=ce}function Mi(Q,D,R,v,U,Y,ie){U=Bo(U);try{if(isNaN(U))return 61;var ce=ct.getStreamFromFD(v),Le=L.mmap(ce,Q,U,D,R),CA=Le.ptr;return K[Y>>2]=Le.allocated,J[ie>>2]=CA,0}catch(hA){if(typeof L>"u"||hA.name!=="ErrnoError")throw hA;return-hA.errno}}function Mo(Q,D,R,v,U,Y){Y=Bo(Y);try{var ie=ct.getStreamFromFD(U);R&2&&ct.doMsync(Q,ie,D,v,Y)}catch(ce){if(typeof L>"u"||ce.name!=="ErrnoError")throw ce;return-ce.errno}}var wr=(Q,D,R)=>wt(Q,w,D,R),yr=(Q,D,R,v)=>{var U=new Date().getFullYear(),Y=new Date(U,0,1),ie=new Date(U,6,1),ce=Y.getTimezoneOffset(),Le=ie.getTimezoneOffset(),CA=Math.max(ce,Le);J[Q>>2]=CA*60,K[D>>2]=+(ce!=Le);var hA=RA=>{var jA=RA>=0?"-":"+",rn=Math.abs(RA),j=String(Math.floor(rn/60)).padStart(2,"0"),Ee=String(rn%60).padStart(2,"0");return`UTC${jA}${j}${Ee}`},it=hA(ce),et=hA(Le);LeDate.now(),Mn=()=>2147483648,wn=Q=>{var D=b.buffer,R=(Q-D.byteLength+65535)/65536|0;try{return b.grow(R),Z(),1}catch{}},Ft=Q=>{var D=w.length;Q>>>=0;var R=Mn();if(Q>R)return!1;for(var v=1;v<=4;v*=2){var U=D*(1+.2/v);U=Math.min(U,Q+100663296);var Y=Math.min(R,Qn(Math.max(Q,U),65536)),ie=wn(Y);if(ie)return!0}return!1},Yn={},Me=()=>a,gA=()=>{if(!gA.strings){var Q=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",D={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:Q,_:Me()};for(var R in Yn)Yn[R]===void 0?delete D[R]:D[R]=Yn[R];var v=[];for(var R in D)v.push(`${R}=${D[R]}`);gA.strings=v}return gA.strings},EA=(Q,D)=>{for(var R=0;R{var R=0;return gA().forEach((v,U)=>{var Y=D+R;J[Q+U*4>>2]=Y,EA(v,Y),R+=v.length+1}),0},bA=(Q,D)=>{var R=gA();J[Q>>2]=R.length;var v=0;return R.forEach(U=>v+=U.length+1),J[D>>2]=v,0},fe=Q=>{c(Q,new Wt(Q))},ke=(Q,D)=>{fe(Q)},Xe=ke;function qA(Q){try{var D=ct.getStreamFromFD(Q);return L.close(D),0}catch(R){if(typeof L>"u"||R.name!=="ErrnoError")throw R;return R.errno}}var Gt=(Q,D,R,v)=>{for(var U=0,Y=0;Y>2],ce=J[D+4>>2];D+=8;var Le=L.read(Q,S,ie,ce,v);if(Le<0)return-1;if(U+=Le,Le>2]=Y,0}catch(ie){if(typeof L>"u"||ie.name!=="ErrnoError")throw ie;return ie.errno}}function Sn(Q,D,R,v){D=Bo(D);try{if(isNaN(D))return 61;var U=ct.getStreamFromFD(Q);return L.llseek(U,D,R),H[v>>3]=BigInt(U.position),U.getdents&&D===0&&R===0&&(U.getdents=null),0}catch(Y){if(typeof L>"u"||Y.name!=="ErrnoError")throw Y;return Y.errno}}var So=(Q,D,R,v)=>{for(var U=0,Y=0;Y>2],ce=J[D+4>>2];D+=8;var Le=L.write(Q,S,ie,ce,v);if(Le<0)return-1;if(U+=Le,Le>2]=Y,0}catch(ie){if(typeof L>"u"||ie.name!=="ErrnoError")throw ie;return ie.errno}}var on=Q=>{var D=i["_"+Q];return D},Tt=(Q,D)=>{S.set(Q,D)},Xi=Q=>io(Q),to=Q=>{var D=Re(Q)+1,R=Xi(D);return wr(Q,R,D),R},vt=(Q,D,R,v,U)=>{var Y={string:jA=>{var rn=0;return jA!=null&&jA!==0&&(rn=to(jA)),rn},array:jA=>{var rn=Xi(jA.length);return Tt(jA,rn),rn}};function ie(jA){return D==="string"?KA(jA):D==="boolean"?!!jA:jA}var ce=on(Q),Le=[],CA=0;if(v)for(var hA=0;hA(i._viz_set_y_invert=ZA.A)(Q),i._viz_set_reduce=Q=>(i._viz_set_reduce=ZA.B)(Q),i._viz_get_graphviz_version=()=>(i._viz_get_graphviz_version=ZA.C)(),i._free=Q=>(i._free=ZA.D)(Q),i._malloc=Q=>(i._malloc=ZA.E)(Q),i._viz_get_plugin_list=Q=>(i._viz_get_plugin_list=ZA.G)(Q),i._viz_create_graph=(Q,D,R)=>(i._viz_create_graph=ZA.H)(Q,D,R),i._viz_read_one_graph=Q=>(i._viz_read_one_graph=ZA.I)(Q),i._viz_string_dup=(Q,D)=>(i._viz_string_dup=ZA.J)(Q,D),i._viz_string_dup_html=(Q,D)=>(i._viz_string_dup_html=ZA.K)(Q,D),i._viz_string_free=(Q,D)=>(i._viz_string_free=ZA.L)(Q,D),i._viz_string_free_html=(Q,D)=>(i._viz_string_free_html=ZA.M)(Q,D),i._viz_add_node=(Q,D)=>(i._viz_add_node=ZA.N)(Q,D),i._viz_add_edge=(Q,D,R)=>(i._viz_add_edge=ZA.O)(Q,D,R),i._viz_add_subgraph=(Q,D)=>(i._viz_add_subgraph=ZA.P)(Q,D),i._viz_set_default_graph_attribute=(Q,D,R)=>(i._viz_set_default_graph_attribute=ZA.Q)(Q,D,R),i._viz_set_default_node_attribute=(Q,D,R)=>(i._viz_set_default_node_attribute=ZA.R)(Q,D,R),i._viz_set_default_edge_attribute=(Q,D,R)=>(i._viz_set_default_edge_attribute=ZA.S)(Q,D,R),i._viz_set_attribute=(Q,D,R)=>(i._viz_set_attribute=ZA.T)(Q,D,R),i._viz_free_graph=Q=>(i._viz_free_graph=ZA.U)(Q),i._viz_create_context=()=>(i._viz_create_context=ZA.V)(),i._viz_free_context=Q=>(i._viz_free_context=ZA.W)(Q),i._viz_layout=(Q,D,R)=>(i._viz_layout=ZA.X)(Q,D,R),i._viz_free_layout=(Q,D)=>(i._viz_free_layout=ZA.Y)(Q,D),i._viz_reset_errors=()=>(i._viz_reset_errors=ZA.Z)(),i._viz_render=(Q,D,R)=>(i._viz_render=ZA._)(Q,D,R);var Ri=(Q,D)=>(Ri=ZA.$)(Q,D),Ki=Q=>(Ki=ZA.aa)(Q),io=Q=>(io=ZA.ba)(Q),lr=()=>(lr=ZA.ca)();i.ccall=vt,i.getValue=BA,i.PATH=de,i.UTF8ToString=KA,i.stringToUTF8=wr,i.lengthBytesUTF8=Re,i.FS=L;var ri,fs;Te=function Q(){ri||Eo(),ri||(Te=Q)};function Eo(){if(me>0||!fs&&(fs=1,X(),me>0))return;function Q(){ri||(ri=1,i.calledRun=1,!k&&(ue(),n(i),oe()))}Q()}return Eo(),e=r,e}})(),QBe=[[/^Error: (.*)/,"error"],[/^Warning: (.*)/,"warning"]];function kgA(t){return t.map(A=>{for(let e=0;e{if(typeof e.name!="string")throw new Error("image name must be a string");if(typeof e.width!="number"&&typeof e.width!="string")throw new Error("image width must be a number or string");if(typeof e.height!="number"&&typeof e.height!="string")throw new Error("image height must be a number or string");let i=t.PATH.join("/",e.name),n=` + +`;return t.FS.createPath("/",t.PATH.dirname(i)),t.FS.writeFile(i,n),i}):[]}function NgA(t,A){for(let e of A)t.FS.analyzePath(e).exists&&t.FS.unlink(e)}function LgA(t,A,e){let i;try{let n=t.lengthBytesUTF8(A);return i=t.ccall("malloc","number",["number"],[n+1]),t.stringToUTF8(A,i,n+1),t.ccall("viz_read_one_graph","number",["number"],[i])}finally{i&&t.ccall("free","number",["number"],[i])}}function FgA(t,A,e){let i=t.ccall("viz_create_graph","number",["string","number","number"],[A.name,typeof A.directed<"u"?A.directed:!0,typeof A.strict<"u"?A.strict:!1]);return yBe(t,i,A),i}function yBe(t,A,e){DBe(t,A,e),e.nodes&&e.nodes.forEach(i=>{let n=t.ccall("viz_add_node","number",["number","string"],[A,String(i.name)]);i.attributes&&wBe(t,A,n,i.attributes)}),e.edges&&e.edges.forEach(i=>{let n=t.ccall("viz_add_edge","number",["number","string","string"],[A,String(i.tail),String(i.head)]);i.attributes&&wBe(t,A,n,i.attributes)}),e.subgraphs&&e.subgraphs.forEach(i=>{let n=t.ccall("viz_add_subgraph","number",["number","string"],[A,String(i.name)]);yBe(t,n,i)})}function DBe(t,A,e){if(e.graphAttributes)for(let[i,n]of Object.entries(e.graphAttributes))nk(t,A,n,o=>{t.ccall("viz_set_default_graph_attribute","number",["number","string","number"],[A,i,o])});if(e.nodeAttributes)for(let[i,n]of Object.entries(e.nodeAttributes))nk(t,A,n,o=>{t.ccall("viz_set_default_node_attribute","number",["number","string","number"],[A,i,o])});if(e.edgeAttributes)for(let[i,n]of Object.entries(e.edgeAttributes))nk(t,A,n,o=>{t.ccall("viz_set_default_edge_attribute","number",["number","string","number"],[A,i,o])})}function wBe(t,A,e,i){for(let[n,o]of Object.entries(i))nk(t,A,o,r=>{t.ccall("viz_set_attribute","number",["number","string","number"],[e,n,r])})}function nk(t,A,e,i){let n;if(typeof e=="object"&&"html"in e?n=t.ccall("viz_string_dup_html","number",["number","string"],[A,String(e.html)]):n=t.ccall("viz_string_dup","number",["number","string"],[A,String(e)]),n==0)throw new Error("couldn't dup string");i(n),typeof e=="object"&&"html"in e?t.ccall("viz_string_free_html","number",["number","number"],[A,n]):t.ccall("viz_string_free","number",["number","number"],[A,n])}var Hz=class{constructor(A){this.module=A}get graphvizVersion(){return _gA(this.module)}get formats(){return mBe(this.module,"device")}get engines(){return mBe(this.module,"layout")}renderFormats(A,e,i={}){return pBe(this.module,A,e,ae({engine:"dot"},i))}render(A,e={}){let i;e.format===void 0?i="dot":i=e.format;let n=pBe(this.module,A,[i],ae({engine:"dot"},e));return n.status==="success"&&(n.output=n.output[i]),n}renderString(A,e={}){let i=this.render(A,e);if(i.status!=="success")throw new Error(i.errors.find(n=>n.level=="error")?.message||"render failed");return i.output}renderSVGElement(A,e={}){let i=this.renderString(A,_A(ae({},e),{format:"svg"}));return new DOMParser().parseFromString(i,"image/svg+xml").documentElement}renderJSON(A,e={}){let i=this.renderString(A,_A(ae({},e),{format:"json"}));return JSON.parse(i)}};function vBe(){return SgA().then(t=>new Hz(t))}var ok=class t{render(A){return Ci(this,null,function*(){let e={format:"svg",engine:"dot"};return(yield vBe()).renderString(A,e)})}static \u0275fac=function(e){return new(e||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})};var rk=new re("AudioPlayingService");var sk=new re("VideoService");var ak=new re("WebSocketService");var ck=class t{createMessagePartFromFile(A){return Ci(this,null,function*(){return{inlineData:{displayName:A.name,data:yield this.readFileAsBytes(A),mimeType:A.type}}})}readFileAsBytes(A){return new Promise((e,i)=>{let n=new FileReader;n.onload=o=>{let r=o.target.result.split(",")[1];e(r)},n.onerror=i,n.readAsDataURL(A)})}static \u0275fac=function(e){return new(e||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})};var lk=class t extends o9{createFunctionResponse(A,e,i){return{function_response:{id:A,name:e,response:{response:i}}}}static \u0275fac=(()=>{let A;return function(i){return(A||(A=ii(t)))(i||t)}})();static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})};var gk=class t extends BD{sanitizer=E(dl);windowOpen(A,e,i,n){return A.open(e,i,n)}createObjectUrl(A){return URL.createObjectURL(A)}openBlobUrl(A){let e=this.createObjectUrl(A);return this.windowOpen(window,e,"_blank")}setAnchorHref(A,e){A.href=e}bypassSecurityTrustHtml(A){return this.sanitizer.bypassSecurityTrustHtml(A)}static \u0275fac=(()=>{let A;return function(i){return(A||(A=ii(t)))(i||t)}})();static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})};var dk=class t{constructor(A){this.http=A}apiServerDomain=oa.getApiServerBaseUrl();createSession(A,e){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${e}/users/${A}/sessions`;return this.http.post(i,null)}return new nt}listSessions(A,e){if(this.apiServerDomain!=null){let i=this.apiServerDomain+`/apps/${e}/users/${A}/sessions`;return this.http.get(i)}return new nt}deleteSession(A,e,i){let n=this.apiServerDomain+`/apps/${e}/users/${A}/sessions/${i}`;return this.http.delete(n)}getSession(A,e,i){let n=this.apiServerDomain+`/apps/${e}/users/${A}/sessions/${i}`;return this.http.get(n)}importSession(A,e,i){if(this.apiServerDomain!=null){let n=this.apiServerDomain+`/apps/${e}/users/${A}/sessions`;return this.http.post(n,{appName:e,userId:A,events:i})}return new nt}canEdit(A,e){return dA(!0)}static \u0275fac=function(e){return new(e||t)(UA(wa))};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})};var Ck=class t{audioRecordingService=E(ZS);videoService=E(sk);webSocketService=E(ak);audioIntervalId=void 0;videoIntervalId=void 0;constructor(){}startAudioChat(n){return Ci(this,arguments,function*({appName:A,userId:e,sessionId:i}){let o=window.location.protocol==="https:"?"wss":"ws";this.webSocketService.connect(`${o}://${oa.getWSServerUrl()}/run_live?app_name=${A}&user_id=${e}&session_id=${i}`),yield this.startAudioStreaming()})}stopAudioChat(){this.stopAudioStreaming(),this.webSocketService.closeConnection()}startAudioStreaming(){return Ci(this,null,function*(){try{yield this.audioRecordingService.startRecording(),this.audioIntervalId=setInterval(()=>this.sendBufferedAudio(),250)}catch(A){console.error("Error accessing microphone:",A)}})}stopAudioStreaming(){clearInterval(this.audioIntervalId),this.audioIntervalId=void 0,this.audioRecordingService.stopRecording()}sendBufferedAudio(){let A=this.audioRecordingService.getCombinedAudioBuffer();if(!A)return;let e={blob:{mime_type:"audio/pcm",data:A}};this.webSocketService.sendMessage(e),this.audioRecordingService.cleanAudioBuffer()}startVideoChat(o){return Ci(this,arguments,function*({appName:A,userId:e,sessionId:i,videoContainer:n}){let r=window.location.protocol==="https:"?"wss":"ws";this.webSocketService.connect(`${r}://${oa.getWSServerUrl()}/run_live?app_name=${A}&user_id=${e}&session_id=${i}`),yield this.startAudioStreaming(),yield this.startVideoStreaming(n)})}stopVideoChat(A){this.stopAudioStreaming(),this.stopVideoStreaming(A),this.webSocketService.closeConnection()}startVideoStreaming(A){return Ci(this,null,function*(){try{yield this.videoService.startRecording(A),this.videoIntervalId=setInterval(()=>Ci(this,null,function*(){return yield this.sendCapturedFrame()}),1e3)}catch(e){console.error("Error accessing camera:",e)}})}sendCapturedFrame(){return Ci(this,null,function*(){let A=yield this.videoService.getCapturedFrame();if(!A)return;let e={blob:{mime_type:"image/jpeg",data:A}};this.webSocketService.sendMessage(e)})}stopVideoStreaming(A){clearInterval(this.videoIntervalId),this.videoIntervalId=void 0,this.videoService.stopRecording(A)}onStreamClose(){return this.webSocketService.onCloseReason()}closeStream(){this.webSocketService.closeConnection()}static \u0275fac=function(e){return new(e||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})};var YEe=JQ(JEe());var uk=class t{stc(A){return(0,YEe.default)(A)}static \u0275fac=function(e){return new(e||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})};var hk=class t{selectedTraceRowSource=new Mt(void 0);selectedTraceRow$=this.selectedTraceRowSource.asObservable();eventDataSource=new Mt(void 0);eventData$=this.eventDataSource.asObservable();hoveredMessageIndicesSource=new Mt([]);hoveredMessageIndices$=this.hoveredMessageIndicesSource.asObservable();messagesSource=new Mt([]);messages$=this.messagesSource.asObservable();selectedRow(A){this.selectedTraceRowSource.next(A)}setEventData(A){this.eventDataSource.next(A)}setMessages(A){this.messagesSource.next(A)}setHoveredMessages(A,e){if(!A){this.hoveredMessageIndicesSource.next([]);return}let i=A.attributes,n=i&&i["gcp.vertex.agent.event_id"],o=0,r=[];for(let s of this.messagesSource.value){if(s.role=="user"){o++;continue}if(this.eventDataSource.value?.get(s.eventId).invocationId!=e){o++;continue}if(n)if(i["gcp.vertex.agent.event_id"]==s.eventId){r.push(o),o++;continue}else{o++;continue}else{r.push(o),o++;continue}}this.hoveredMessageIndicesSource.next(r)}resetTraceService(){this.eventDataSource.next(void 0),this.messagesSource.next([]),this.hoveredMessageIndicesSource.next([])}static \u0275fac=function(e){return new(e||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})};var Bk=class t{mediaRecorder;stream;renderer;videoElement;videoBuffer=[];constructor(A){this.renderer=A.createRenderer(null,null)}createVideoElement(A){A?.nativeElement&&(this.clearVideoElement(A),this.videoElement=this.renderer.createElement("video"),this.renderer.setAttribute(this.videoElement,"width","400"),this.renderer.setAttribute(this.videoElement,"height","300"),this.renderer.setAttribute(this.videoElement,"autoplay","true"),this.renderer.setAttribute(this.videoElement,"muted","true"),this.renderer.appendChild(A.nativeElement,this.videoElement))}startRecording(A){return Ci(this,null,function*(){this.createVideoElement(A);try{this.stream=yield navigator.mediaDevices.getUserMedia({video:!0}),this.videoElement&&(this.videoElement.srcObject=this.stream),this.mediaRecorder=new MediaRecorder(this.stream,{mimeType:"video/webm"}),this.mediaRecorder.start(1e3)}catch(e){console.error("Error accessing camera/microphone:",e)}})}getCapturedFrame(){return Ci(this,null,function*(){try{let A=yield this.captureFrame();return this.blobToUint8Array(A)}catch(A){console.error("Error capturing frame:",A);return}})}blobToUint8Array(A){return Ci(this,null,function*(){let e=yield A.arrayBuffer();return new Uint8Array(e)})}captureFrame(){return Ci(this,null,function*(){return new Promise((A,e)=>{try{if(!this.videoElement){e(new Error("Video element not available"));return}let i=document.createElement("canvas");i.width=this.videoElement.videoWidth,i.height=this.videoElement.videoHeight;let n=i.getContext("2d");if(!n){e(new Error("Canvas context not supported"));return}n.drawImage(this.videoElement,0,0,i.width,i.height),i.toBlob(o=>{o?A(o):e(new Error("Failed to create image blob"))},"image/png")}catch(i){e(i)}})})}stopRecording(A){this.mediaRecorder&&this.mediaRecorder.stop(),this.stream&&this.stream.getTracks().forEach(e=>e.stop()),this.clearVideoElement(A)}clearVideoElement(A){let e=A.nativeElement.querySelector("video");e&&this.renderer.removeChild(A.nativeElement,e)}static \u0275fac=function(e){return new(e||t)(UA(fa))};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})};var OdA={url:"",deserializer:t=>JSON.parse(t.data),serializer:t=>JSON.stringify(t)},JdA="WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }",o8=class t extends Th{constructor(A,e){if(super(),this._socket=null,A instanceof nt)this.destination=e,this.source=A;else{let i=this._config=Object.assign({},OdA);if(this._output=new je,typeof A=="string")i.url=A;else for(let n in A)A.hasOwnProperty(n)&&(i[n]=A[n]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new Zc}}lift(A){let e=new t(this._config,this.destination);return e.operator=A,e.source=this,e}_resetState(){this._socket=null,this.source||(this.destination=new Zc),this._output=new je}multiplex(A,e,i){let n=this;return new nt(o=>{try{n.next(A())}catch(s){o.error(s)}let r=n.subscribe({next:s=>{try{i(s)&&o.next(s)}catch(a){o.error(a)}},error:s=>o.error(s),complete:()=>o.complete()});return()=>{try{n.next(e())}catch(s){o.error(s)}r.unsubscribe()}})}_connectSocket(){let{WebSocketCtor:A,protocol:e,url:i,binaryType:n}=this._config,o=this._output,r=null;try{r=e?new A(i,e):new A(i),this._socket=r,n&&(this._socket.binaryType=n)}catch(a){o.error(a);return}let s=new Ot(()=>{this._socket=null,r&&r.readyState===1&&r.close()});r.onopen=a=>{let{_socket:c}=this;if(!c){r.close(),this._resetState();return}let{openObserver:l}=this._config;l&&l.next(a);let d=this.destination;this.destination=Wd.create(C=>{if(r.readyState===1)try{let{serializer:I}=this._config;r.send(I(C))}catch(I){this.destination.error(I)}},C=>{let{closingObserver:I}=this._config;I&&I.next(void 0),C&&C.code?r.close(C.code,C.reason):o.error(new TypeError(JdA)),this._resetState()},()=>{let{closingObserver:C}=this._config;C&&C.next(void 0),r.close(),this._resetState()}),d&&d instanceof Zc&&s.add(d.subscribe(this.destination))},r.onerror=a=>{this._resetState(),o.error(a)},r.onclose=a=>{r===this._socket&&this._resetState();let{closeObserver:c}=this._config;c&&c.next(a),a.wasClean?o.complete():o.error(a)},r.onmessage=a=>{try{let{deserializer:c}=this._config;o.next(c(a))}catch(c){o.error(c)}}}_subscribe(A){let{source:e}=this;return e?e.subscribe(A):(this._socket||this._connectSocket(),this._output.subscribe(A),A.add(()=>{let{_socket:i}=this;this._output.observers.length===0&&(i&&(i.readyState===1||i.readyState===0)&&i.close(),this._resetState())}),A)}unsubscribe(){let{_socket:A}=this;A&&(A.readyState===1||A.readyState===0)&&A.close(),this._resetState(),super.unsubscribe()}};var Ek=class t{audioPlayingService=E(rk);socket$;messages$=new Mt("");audioBuffer=[];audioIntervalId=null;closeReasonSubject=new je;connect(A){this.socket$=new o8({url:A,serializer:e=>JSON.stringify(e),deserializer:e=>e.data,closeObserver:{next:e=>{this.emitWsCloseReason(e.reason)}}}),this.socket$.subscribe(e=>{this.handleIncomingAudio(e),this.messages$.next(e)},e=>{console.error("WebSocket error:",e)}),this.audioIntervalId=setInterval(()=>this.playIncomingAudio(),250)}playIncomingAudio(){this.audioPlayingService.playAudio(this.audioBuffer),this.audioBuffer=[]}sendMessage(A){if(A.blob.data=this.arrayBufferToBase64(A.blob.data.buffer),!this.socket$||this.socket$.closed){console.error("WebSocket is not open.");return}this.socket$.next(A)}closeConnection(){clearInterval(this.audioIntervalId),this.audioIntervalId=null,this.socket$&&this.socket$.complete()}getMessages(){return this.messages$.asObservable()}arrayBufferToBase64(A){let e="",i=new Uint8Array(A),n=i.byteLength;for(let o=0;oA&&e),za({bufferSize:1,refCount:!0}))}setIsSessionLoading(A){this._isSessionLoading.next(A)}isSessionListLoading(){return this._isSessionListLoading.pipe(e4(this.featureFlagService.isLoadingAnimationsEnabled()),aA(([A,e])=>A&&e),za({bufferSize:1,refCount:!0}))}setIsSessionListLoading(A){this._isSessionListLoading.next(A)}isEventRequestResponseLoading(){return this._isEventRequestResponseLoading.pipe(e4(this.featureFlagService.isLoadingAnimationsEnabled()),aA(([A,e])=>A&&e),za({bufferSize:1,refCount:!0}))}setIsEventRequestResponseLoading(A){this._isEventRequestResponseLoading.next(A)}static \u0275fac=function(e){return new(e||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})};fetch("./assets/config/runtime-config.json").then(t=>t.json()).then(t=>{window.runtimeConfig=t,WN(NQ,{providers:[M_(ZN,Kn,VR,zS,L1,gl,j0),{provide:rd,useClass:dk},{provide:Hl,useClass:yQ},{provide:ak,useClass:Ek},{provide:XS,useValue:"./assets/audio-processor.js"},{provide:ZS,useClass:$S},{provide:rk,useClass:WS},{provide:sk,useClass:Bk},{provide:ED,useClass:Ck},{provide:CE,useClass:tk},{provide:od,useClass:Ak},{provide:uD,useClass:qS},{provide:dE,useClass:ek},{provide:q1,useClass:hk},{provide:Ks,useClass:ik},{provide:IE,useClass:ok},{provide:uE,useClass:uk},{provide:V1,useClass:gk},{provide:hD,useClass:ck},{provide:r9,useClass:lk},{provide:vD,useValue:VS},...t.logo?[{provide:c9,useValue:jS}]:[],{provide:Ud,useClass:B9},{provide:n9,useValue:a0},F$(),Cm(),{provide:fD,useClass:Fl},{provide:zl,useClass:fk}]}).catch(A=>console.error(A))}); diff --git a/src/google/adk/cli/browser/styles-EVMPSV3U.css b/src/google/adk/cli/browser/styles-EVMPSV3U.css new file mode 100644 index 0000000000..bc44fcfbea --- /dev/null +++ b/src/google/adk/cli/browser/styles-EVMPSV3U.css @@ -0,0 +1 @@ +html{color-scheme:dark}html{--mat-sys-background: light-dark(#fcf9f8, #131314);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#f3f0f0, #313030);--mat-sys-inverse-primary: light-dark(#c1c7cd, #595f65);--mat-sys-inverse-surface: light-dark(#313030, #e5e2e2);--mat-sys-on-background: light-dark(#1c1b1c, #e5e2e2);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#410002, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #2b3136);--mat-sys-on-primary-container: light-dark(#161c21, #dde3e9);--mat-sys-on-primary-fixed: light-dark(#161c21, #161c21);--mat-sys-on-primary-fixed-variant: light-dark(#41474d, #41474d);--mat-sys-on-secondary: light-dark(#ffffff, #003061);--mat-sys-on-secondary-container: light-dark(#001b3c, #d5e3ff);--mat-sys-on-secondary-fixed: light-dark(#001b3c, #001b3c);--mat-sys-on-secondary-fixed-variant: light-dark(#0f4784, #0f4784);--mat-sys-on-surface: light-dark(#1c1b1c, #e5e2e2);--mat-sys-on-surface-variant: light-dark(#44474a, #e1e2e6);--mat-sys-on-tertiary: light-dark(#ffffff, #2b3136);--mat-sys-on-tertiary-container: light-dark(#161c21, #dde3e9);--mat-sys-on-tertiary-fixed: light-dark(#161c21, #161c21);--mat-sys-on-tertiary-fixed-variant: light-dark(#41474d, #41474d);--mat-sys-outline: light-dark(#74777b, #8e9194);--mat-sys-outline-variant: light-dark(#c4c7ca, #44474a);--mat-sys-primary: light-dark(#595f65, #c1c7cd);--mat-sys-primary-container: light-dark(#dde3e9, #41474d);--mat-sys-primary-fixed: light-dark(#dde3e9, #dde3e9);--mat-sys-primary-fixed-dim: light-dark(#c1c7cd, #c1c7cd);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#305f9d, #a7c8ff);--mat-sys-secondary-container: light-dark(#d5e3ff, #0f4784);--mat-sys-secondary-fixed: light-dark(#d5e3ff, #d5e3ff);--mat-sys-secondary-fixed-dim: light-dark(#a7c8ff, #a7c8ff);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#fcf9f8, #131314);--mat-sys-surface-bright: light-dark(#fcf9f8, #393939);--mat-sys-surface-container: light-dark(#f0eded, #201f20);--mat-sys-surface-container-high: light-dark(#eae7e7, #2a2a2a);--mat-sys-surface-container-highest: light-dark(#e5e2e2, #393939);--mat-sys-surface-container-low: light-dark(#f6f3f3, #1c1b1c);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0e0e0e);--mat-sys-surface-dim: light-dark(#dcd9d9, #131314);--mat-sys-surface-tint: light-dark(#595f65, #c1c7cd);--mat-sys-surface-variant: light-dark(#e1e2e6, #44474a);--mat-sys-tertiary: light-dark(#595f65, #c1c7cd);--mat-sys-tertiary-container: light-dark(#dde3e9, #41474d);--mat-sys-tertiary-fixed: light-dark(#dde3e9, #dde3e9);--mat-sys-tertiary-fixed-dim: light-dark(#c1c7cd, #c1c7cd);--mat-sys-neutral-variant20: #2d3134;--mat-sys-neutral10: #1c1b1c}html{--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px}html{--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}html{font-family:Google Sans,Helvetica Neue,sans-serif!important}body{height:100vh;margin:0}markdown p{margin-block-start:.5em;margin-block-end:.5em}:root{--mat-sys-primary: black;--mdc-checkbox-selected-icon-color: white;--mat-sys-background: #131314;--mat-tab-header-active-label-text-color: #8AB4F8;--mat-tab-header-active-hover-label-text-color: #8AB4F8;--mat-tab-header-active-focus-label-text-color: #8AB4F8;--mat-tab-header-label-text-weight: 500;--mdc-text-button-label-text-color: #89b4f8}:root{--mdc-dialog-subhead-font-family: "Google Sans";--mdc-dialog-subhead-font-style: normal;--mdc-dialog-subhead-font-weight: 400;--mdc-dialog-subhead-font-size: 24px;--mdc-dialog-subhead-line-height: 32px;--mdc-dialog-subhead-color: #E3E3E3}:root{--mdc-dialog-container-color: #2b2b2f}:root{--mdc-dialog-subhead-color: white}.mat-mdc-dialog-container .mat-mdc-dialog-title.mdc-dialog__title{font-family:var(--mdc-dialog-subhead-font-family);font-style:var(--mdc-dialog-subhead-font-style);font-weight:var(--mdc-dialog-subhead-font-weight);font-size:var(--mdc-dialog-subhead-font-size);line-height:var(--mdc-dialog-subhead-line-height);color:var(--mdc-dialog-subhead-color)}:root{--chat-panel-function-event-button-background-color: white;--chat-panel-function-event-button-highlight-background-color: rgb( 15, 82, 35 );--chat-panel-function-event-button-highlight-border-color: rgb(15, 82, 35);--chat-panel-function-event-button-highlight-color: white;--chat-panel-user-message-message-card-background-color: #004a77;--chat-panel-user-message-message-card-color: white;--chat-panel-bot-message-message-card-background-color: #303030;--chat-panel-bot-message-message-card-color: white;--chat-panel-bot-message-focus-within-message-card-background-color: #131314;--chat-panel-bot-message-focus-within-message-card-border-color: #8ab4f8;--chat-panel-message-textarea-background-color: #303030;--chat-panel-message-textarea-focus-background-color: #131314;--chat-panel-eval-compare-container-background-color: #484848;--chat-panel-actual-result-border-right-color: #8a8686;--chat-panel-eval-response-header-border-bottom-color: #8a8686;--chat-panel-header-expected-color: #44c265;--chat-panel-header-actual-color: #ff8983;--chat-panel-eval-pass-color: #44c265;--chat-panel-eval-fail-color: #ff8983;--chat-panel-input-field-textarea-color: white;--chat-panel-input-field-textarea-placeholder-color: #8e918f;--chat-panel-input-field-textarea-caret-color: white;--chat-panel-input-field-button-color: white;--chat-panel-input-field-button-background-color: rgb(51, 53, 55);--chat-panel-mat-mdc-mini-fab-background-color: white;--chat-panel-mat-mdc-mini-fab-mat-icon-color: black;--chat-panel-input-field-mat-mdc-text-field-wrapper-border-color: #8e918f;--chat-panel-delete-button-background-color: rgba(0, 0, 0, .7);--chat-panel-delete-button-color: white;--chat-panel-file-container-background-color: #1e1e1e;--chat-panel-thought-chip-background-color: #8ab4f8;--chat-panel-link-style-button-color: #007bff;--artifact-tab-download-button-background-color: #8ab4f8;--artifact-tab-white-separator-border-top-color: white;--artifact-tab-version-select-container-background-color: #212123;--artifact-tab-link-style-button-color: #007bff;--artifact-tab-link-style-button-hover-color: #0056b3;--artifact-tab-link-style-button-focus-outline-color: #007bff;--artifact-tab-link-style-button-active-color: #004085;--artifact-tab-link-style-button-disabled-color: #6c757d;--audio-player-container-background-color: #f0f0f0;--audio-player-container-box-shadow-color: rgba(0, 0, 0, .1);--audio-player-custom-controls-button-background-color: #007bff;--audio-player-custom-controls-button-color: white;--audio-player-custom-controls-button-hover-background-color: #0056b3;--chat-drawer-container-background-color: #131314;--chat-event-container-color: white;--chat-card-background-color: #131314;--chat-function-event-button-background-color: white;--chat-function-event-button-highlight-background-color: rgb(15, 82, 35);--chat-function-event-button-highlight-border-color: rgb(15, 82, 35);--chat-function-event-button-highlight-color: white;--chat-user-message-message-card-background-color: #004a77;--chat-user-message-message-card-color: white;--chat-bot-message-message-card-background-color: #303030;--chat-bot-message-message-card-color: white;--chat-bot-message-focus-within-message-card-background-color: #131314;--chat-bot-message-focus-within-message-card-border-color: #8ab4f8;--chat-message-textarea-background-color: #303030;--chat-message-textarea-focus-background-color: #131314;--chat-eval-compare-container-background-color: #484848;--chat-actual-result-border-right-color: #8a8686;--chat-eval-response-header-border-bottom-color: #8a8686;--chat-header-expected-color: #44c265;--chat-header-actual-color: #ff8983;--chat-eval-pass-color: #44c265;--chat-eval-fail-color: #ff8983;--chat-side-drawer-background-color: #1b1b1b;--chat-side-drawer-color: white;--chat-file-item-background-color: #eee;--chat-empty-state-container-color: #eee;--chat-warning-color: #ffc185;--chat-error-color: #ff4545;--chat-mat-mdc-unelevated-button-color: #202124;--chat-mat-mdc-unelevated-button-background-color: #8ab4f8;--chat-mdc-linear-progress-buffer-dots-background-color: white;--chat-mat-mdc-text-field-wrapper-border-color: #8e918f;--chat-segment-key-color: lightgray;--chat-bottom-resize-handler-background-color: #5f6368;--chat-trace-detail-container-background-color: #1b1b1b;--chat-toolbar-background-color: #1b1b1b;--chat-toolbar-edit-mode-background-color: #44c2651a;--chat-toolbar-session-text-color: #fdfdfd;--chat-toolbar-session-id-color: #9aa0a6;--chat-toolbar-icon-color: #c4c7c5;--chat-toolbar-new-session-color: #9aa0a6;--chat-toolbar-sse-toggle-label-text-color: #9aa0a6;--chat-toolbar-sse-toggle-selected-track-color: #8ab4f9;--chat-toolbar-sse-toggle-selected-handle-color: #1b73e8;--chat-toolbar-sse-toggle-track-outline-color: #1b73e8;--chat-mat-drawer-border-right-color: #444746;--edit-json-dialog-container-box-shadow-color: rgba(0, 0, 0, .4);--eval-tab-eval-set-actions-color: #9aa0a6;--eval-tab-empty-eval-info-background-color: #202124;--eval-tab-empty-eval-info-box-shadow-color1: rgba(0, 0, 0, .15);--eval-tab-empty-eval-info-box-shadow-color2: rgba(0, 0, 0, .3);--eval-tab-info-title-color: #e8eaed;--eval-tab-info-detail-color: #e8eaed;--eval-tab-info-create-color: #8ab4f8;--eval-tab-selected-eval-case-color: #8ab4f8;--eval-tab-save-session-btn-background-color1: rgba(138, 180, 248, .24);--eval-tab-save-session-btn-background-color2: #202124;--eval-tab-save-session-btn-text-color: #d2e3fc;--eval-tab-run-eval-btn-border-color: #5f6368;--eval-tab-run-eval-btn-color: #8ab4f8;--eval-tab-run-eval-btn-hover-background-color: #202124;--eval-tab-result-btn-border-color: #5f6368;--eval-tab-result-btn-hover-background-color: #202124;--eval-tab-result-btn-pass-color: #44c265;--eval-tab-result-btn-fail-color: #ff8983;--eval-tab-status-card-background-color: #2d2d2d;--eval-tab-status-card-timestamp-color: #e0e0e0;--eval-tab-status-card-metric-color: #bbb;--eval-tab-status-card-failed-color: #ff6b6b;--eval-tab-status-card-separator-color: #666;--eval-tab-status-card-passed-color: #63e6be;--eval-tab-status-card-action-mat-icon-color: #bdbdbd;--eval-tab-status-card-icon-color: #bdbdbd;--run-eval-config-dialog-container-box-shadow-color: rgba(0, 0, 0, .4);--run-eval-config-dialog-threshold-slider-active-track-color: #4285f4;--run-eval-config-dialog-threshold-slider-inactive-track-color: #616161;--run-eval-config-dialog-threshold-slider-handle-color: #4285f4;--run-eval-config-dialog-threshold-slider-ripple-color: #4285f4;--run-eval-config-dialog-mdc-slider-thumb-background-color: black;--event-tab-events-wrapper-color: #9aa0a6;--event-tab-event-index-color: #80868b;--event-tab-event-list-active-indicator-color: orange;--event-tab-event-list-list-item-container-color: #2b2b2f;--event-tab-mdc-list-item-border-color: #5f6368;--event-tab-mdc-list-item-hover-background-color: #1c1b1c;--trace-chart-trace-label-color: #e3e3e3;--trace-chart-trace-bar-background-color: #2f4d65;--trace-chart-trace-bar-color: #8dabbf;--trace-chart-trace-duration-color: #888;--trace-chart-vertical-line-background-color: #ccc;--trace-chart-horizontal-line-background-color: #ccc;--session-tab-session-wrapper-color: #9aa0a6;--session-tab-session-item-background-color: #303030;--session-tab-session-item-hover-background-color: #141414;--session-tab-session-item-current-background-color: #004a77;--session-tab-session-id-color: #e8eaed;--session-tab-session-date-color: #9aa0a6;--side-panel-button-filled-container-color: #89b4f8;--side-panel-button-filled-label-text-color: black;--side-panel-mat-icon-color: #bdc1c6;--side-panel-resize-handler-background-color: #5f6368;--side-panel-details-panel-container-background-color: #242424;--side-panel-details-content-color: white;--side-panel-powered-by-adk-color: grey;--side-panel-app-select-container-background-color: #212123;--side-panel-select-placeholder-text-color: #8ab4f8;--side-panel-select-enabled-trigger-text-color: #8ab4f8;--side-panel-select-enabled-arrow-color: #8ab4f8;--side-panel-app-name-option-color: #9aa0a6;--trace-tab-trace-title-color: #9aa0a6;--trace-tab-trace-label-color: #e3e3e3;--trace-tab-trace-bar-background-color: #2f4d65;--trace-tab-trace-bar-color: #8dabbf;--trace-tab-trace-duration-color: #888;--trace-tab-vertical-line-background-color: #ccc;--trace-tab-horizontal-line-background-color: #ccc;--trace-tab-trace-item-container-background-color: #333537;--trace-tab-trace-item-header-focus-state-layer-color: red;--trace-tab-trace-item-header-description-color: #8e918f;--trace-tab-mat-expansion-panel-header-focus-background-color: #444746;--trace-tab-mat-expansion-panel-header-background-color: #444746;--trace-tab-mat-expansion-panel-header-hover-background-color: #444746;--trace-event-json-viewer-container-background-color: #1b1b1b;--trace-tree-trace-label-color: #e3e3e3;--trace-tree-trace-bar-background-color: #2f4d65;--trace-tree-trace-bar-color: #8dabbf;--trace-tree-short-trace-bar-duration-color: #8dabbf;--trace-tree-trace-duration-color: #888;--trace-tree-trace-row-hover-background-color: #3b3d3c;--trace-tree-trace-row-selected-background-color: #3b3d3c;--trace-tree-vertical-line-background-color: #ccc;--trace-tree-horizontal-line-background-color: #ccc;--trace-tree-invocation-id-container-color: #9aa0a6;--trace-tree-trace-row-left-span-div-color: white;--trace-tree-trace-row-left-is-event-row-color: #8ab4f8}:root{--mdc-circular-progress-active-indicator-color: #a8c7fa}:root{--mdc-circular-progress-size: 80}:root{--mat-form-field-disabled-input-text-placeholder-color: orange}:root{--mdc-filled-text-field-active-indicator-color: red}:root{--mdc-outlined-text-field-outline-color: #cccccc}:root{--mdc-outlined-text-field-input-text-color: #cccccc}:root{--mdc-outlined-text-field-label-text-color: #cccccc}:root{--mdc-outlined-text-field-hover-label-text-color: #cccccc}:root{--mdc-outlined-text-field-focus-label-text-color: #cccccc}:root{--mdc-outlined-text-field-disabled-label-text-color: #cccccc}:root{--mdc-outlined-text-field-disabled-input-text-color: #cccccc}:root{--mdc-outlined-text-field-disabled-outline-color: #cccccc}:root{--mdc-outlined-text-field-caret-color: #cccccc}.mdc-line-ripple{display:none} diff --git a/src/google/adk/cli/browser/styles-NFETHFZB.css b/src/google/adk/cli/browser/styles-NFETHFZB.css deleted file mode 100644 index 3e096d211d..0000000000 --- a/src/google/adk/cli/browser/styles-NFETHFZB.css +++ /dev/null @@ -1 +0,0 @@ -html{color-scheme:dark}html{--mat-sys-background: light-dark(#fcf9f8, #131314);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#f3f0f0, #313030);--mat-sys-inverse-primary: light-dark(#c1c7cd, #595f65);--mat-sys-inverse-surface: light-dark(#313030, #e5e2e2);--mat-sys-on-background: light-dark(#1c1b1c, #e5e2e2);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#410002, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #2b3136);--mat-sys-on-primary-container: light-dark(#161c21, #dde3e9);--mat-sys-on-primary-fixed: light-dark(#161c21, #161c21);--mat-sys-on-primary-fixed-variant: light-dark(#41474d, #41474d);--mat-sys-on-secondary: light-dark(#ffffff, #003061);--mat-sys-on-secondary-container: light-dark(#001b3c, #d5e3ff);--mat-sys-on-secondary-fixed: light-dark(#001b3c, #001b3c);--mat-sys-on-secondary-fixed-variant: light-dark(#0f4784, #0f4784);--mat-sys-on-surface: light-dark(#1c1b1c, #e5e2e2);--mat-sys-on-surface-variant: light-dark(#44474a, #e1e2e6);--mat-sys-on-tertiary: light-dark(#ffffff, #2b3136);--mat-sys-on-tertiary-container: light-dark(#161c21, #dde3e9);--mat-sys-on-tertiary-fixed: light-dark(#161c21, #161c21);--mat-sys-on-tertiary-fixed-variant: light-dark(#41474d, #41474d);--mat-sys-outline: light-dark(#74777b, #8e9194);--mat-sys-outline-variant: light-dark(#c4c7ca, #44474a);--mat-sys-primary: light-dark(#595f65, #c1c7cd);--mat-sys-primary-container: light-dark(#dde3e9, #41474d);--mat-sys-primary-fixed: light-dark(#dde3e9, #dde3e9);--mat-sys-primary-fixed-dim: light-dark(#c1c7cd, #c1c7cd);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#305f9d, #a7c8ff);--mat-sys-secondary-container: light-dark(#d5e3ff, #0f4784);--mat-sys-secondary-fixed: light-dark(#d5e3ff, #d5e3ff);--mat-sys-secondary-fixed-dim: light-dark(#a7c8ff, #a7c8ff);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#fcf9f8, #131314);--mat-sys-surface-bright: light-dark(#fcf9f8, #393939);--mat-sys-surface-container: light-dark(#f0eded, #201f20);--mat-sys-surface-container-high: light-dark(#eae7e7, #2a2a2a);--mat-sys-surface-container-highest: light-dark(#e5e2e2, #393939);--mat-sys-surface-container-low: light-dark(#f6f3f3, #1c1b1c);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0e0e0e);--mat-sys-surface-dim: light-dark(#dcd9d9, #131314);--mat-sys-surface-tint: light-dark(#595f65, #c1c7cd);--mat-sys-surface-variant: light-dark(#e1e2e6, #44474a);--mat-sys-tertiary: light-dark(#595f65, #c1c7cd);--mat-sys-tertiary-container: light-dark(#dde3e9, #41474d);--mat-sys-tertiary-fixed: light-dark(#dde3e9, #dde3e9);--mat-sys-tertiary-fixed-dim: light-dark(#c1c7cd, #c1c7cd);--mat-sys-neutral-variant20: #2d3134;--mat-sys-neutral10: #1c1b1c}html{--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px}html{--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}html{font-family:Google Sans,Helvetica Neue,sans-serif!important}body{height:100vh;margin:0}markdown p{margin-block-start:.5em;margin-block-end:.5em}:root{--mat-sys-primary: black;--mdc-checkbox-selected-icon-color: white;--mat-sys-background: #131314;--mat-tab-header-active-label-text-color: #8AB4F8;--mat-tab-header-active-hover-label-text-color: #8AB4F8;--mat-tab-header-active-focus-label-text-color: #8AB4F8;--mat-tab-header-label-text-weight: 500;--mdc-text-button-label-text-color: #89b4f8}:root{--mdc-dialog-container-color: #2b2b2f}:root{--mdc-dialog-subhead-color: white}:root{--chat-panel-function-event-button-background-color: white;--chat-panel-function-event-button-highlight-background-color: rgb( 15, 82, 35 );--chat-panel-function-event-button-highlight-border-color: rgb(15, 82, 35);--chat-panel-function-event-button-highlight-color: white;--chat-panel-user-message-message-card-background-color: #004a77;--chat-panel-user-message-message-card-color: white;--chat-panel-bot-message-message-card-background-color: #303030;--chat-panel-bot-message-message-card-color: white;--chat-panel-bot-message-focus-within-message-card-background-color: #131314;--chat-panel-bot-message-focus-within-message-card-border-color: #8ab4f8;--chat-panel-message-textarea-background-color: #303030;--chat-panel-message-textarea-focus-background-color: #131314;--chat-panel-eval-compare-container-background-color: #484848;--chat-panel-actual-result-border-right-color: #8a8686;--chat-panel-eval-response-header-border-bottom-color: #8a8686;--chat-panel-header-expected-color: #44c265;--chat-panel-header-actual-color: #ff8983;--chat-panel-eval-pass-color: #44c265;--chat-panel-eval-fail-color: #ff8983;--chat-panel-input-field-textarea-color: white;--chat-panel-input-field-textarea-placeholder-color: #8e918f;--chat-panel-input-field-button-color: white;--chat-panel-input-field-button-background-color: rgb(51, 53, 55);--chat-panel-mat-mdc-mini-fab-background-color: white;--chat-panel-mat-mdc-mini-fab-mat-icon-color: black;--chat-panel-input-field-mat-mdc-text-field-wrapper-border-color: #8e918f;--chat-panel-delete-button-background-color: rgba(0, 0, 0, .7);--chat-panel-delete-button-color: white;--chat-panel-file-container-background-color: #1e1e1e;--chat-panel-thought-chip-background-color: #8ab4f8;--chat-panel-link-style-button-color: #007bff;--artifact-tab-download-button-background-color: #8ab4f8;--artifact-tab-white-separator-border-top-color: white;--artifact-tab-version-select-container-background-color: #212123;--artifact-tab-link-style-button-color: #007bff;--artifact-tab-link-style-button-hover-color: #0056b3;--artifact-tab-link-style-button-focus-outline-color: #007bff;--artifact-tab-link-style-button-active-color: #004085;--artifact-tab-link-style-button-disabled-color: #6c757d;--audio-player-container-background-color: #f0f0f0;--audio-player-container-box-shadow-color: rgba(0, 0, 0, .1);--audio-player-custom-controls-button-background-color: #007bff;--audio-player-custom-controls-button-color: white;--audio-player-custom-controls-button-hover-background-color: #0056b3;--chat-drawer-container-background-color: #131314;--chat-event-container-color: white;--chat-card-background-color: #131314;--chat-function-event-button-background-color: white;--chat-function-event-button-highlight-background-color: rgb(15, 82, 35);--chat-function-event-button-highlight-border-color: rgb(15, 82, 35);--chat-function-event-button-highlight-color: white;--chat-user-message-message-card-background-color: #004a77;--chat-user-message-message-card-color: white;--chat-bot-message-message-card-background-color: #303030;--chat-bot-message-message-card-color: white;--chat-bot-message-focus-within-message-card-background-color: #131314;--chat-bot-message-focus-within-message-card-border-color: #8ab4f8;--chat-message-textarea-background-color: #303030;--chat-message-textarea-focus-background-color: #131314;--chat-eval-compare-container-background-color: #484848;--chat-actual-result-border-right-color: #8a8686;--chat-eval-response-header-border-bottom-color: #8a8686;--chat-header-expected-color: #44c265;--chat-header-actual-color: #ff8983;--chat-eval-pass-color: #44c265;--chat-eval-fail-color: #ff8983;--chat-side-drawer-background-color: #1b1b1b;--chat-side-drawer-color: white;--chat-file-item-background-color: #eee;--chat-empty-state-container-color: #eee;--chat-warning-color: #ffc185;--chat-error-color: #ff4545;--chat-mat-mdc-unelevated-button-color: #202124;--chat-mat-mdc-unelevated-button-background-color: #8ab4f8;--chat-mdc-linear-progress-buffer-dots-background-color: white;--chat-mat-mdc-text-field-wrapper-border-color: #8e918f;--chat-segment-key-color: lightgray;--chat-bottom-resize-handler-background-color: #5f6368;--chat-trace-detail-container-background-color: #1b1b1b;--chat-toolbar-background-color: #1b1b1b;--chat-toolbar-edit-mode-background-color: #44c2651a;--chat-toolbar-session-text-color: #fdfdfd;--chat-toolbar-session-id-color: #9aa0a6;--chat-toolbar-icon-color: #c4c7c5;--chat-toolbar-new-session-color: #9aa0a6;--chat-toolbar-sse-toggle-label-text-color: #9aa0a6;--chat-toolbar-sse-toggle-selected-track-color: #8ab4f9;--chat-toolbar-sse-toggle-selected-handle-color: #1b73e8;--chat-toolbar-sse-toggle-track-outline-color: #1b73e8;--chat-mat-drawer-border-right-color: #444746;--edit-json-dialog-container-box-shadow-color: rgba(0, 0, 0, .4);--eval-tab-eval-set-actions-color: #9aa0a6;--eval-tab-empty-eval-info-background-color: #202124;--eval-tab-empty-eval-info-box-shadow-color1: rgba(0, 0, 0, .15);--eval-tab-empty-eval-info-box-shadow-color2: rgba(0, 0, 0, .3);--eval-tab-info-title-color: #e8eaed;--eval-tab-info-detail-color: #e8eaed;--eval-tab-info-create-color: #8ab4f8;--eval-tab-selected-eval-case-color: #8ab4f8;--eval-tab-save-session-btn-background-color1: rgba(138, 180, 248, .24);--eval-tab-save-session-btn-background-color2: #202124;--eval-tab-save-session-btn-text-color: #d2e3fc;--eval-tab-run-eval-btn-border-color: #5f6368;--eval-tab-run-eval-btn-color: #8ab4f8;--eval-tab-run-eval-btn-hover-background-color: #202124;--eval-tab-result-btn-border-color: #5f6368;--eval-tab-result-btn-hover-background-color: #202124;--eval-tab-result-btn-pass-color: #44c265;--eval-tab-result-btn-fail-color: #ff8983;--eval-tab-status-card-background-color: #2d2d2d;--eval-tab-status-card-timestamp-color: #e0e0e0;--eval-tab-status-card-metric-color: #bbb;--eval-tab-status-card-failed-color: #ff6b6b;--eval-tab-status-card-separator-color: #666;--eval-tab-status-card-passed-color: #63e6be;--eval-tab-status-card-action-mat-icon-color: #bdbdbd;--eval-tab-status-card-icon-color: #bdbdbd;--run-eval-config-dialog-container-box-shadow-color: rgba(0, 0, 0, .4);--run-eval-config-dialog-threshold-slider-active-track-color: #4285f4;--run-eval-config-dialog-threshold-slider-inactive-track-color: #616161;--run-eval-config-dialog-threshold-slider-handle-color: #4285f4;--run-eval-config-dialog-threshold-slider-ripple-color: #4285f4;--run-eval-config-dialog-mdc-slider-thumb-background-color: black;--event-tab-events-wrapper-color: #9aa0a6;--event-tab-event-index-color: #80868b;--event-tab-event-list-active-indicator-color: orange;--event-tab-event-list-list-item-container-color: #2b2b2f;--event-tab-mdc-list-item-border-color: #5f6368;--event-tab-mdc-list-item-hover-background-color: #1c1b1c;--trace-chart-trace-label-color: #e3e3e3;--trace-chart-trace-bar-background-color: #2f4d65;--trace-chart-trace-bar-color: #8dabbf;--trace-chart-trace-duration-color: #888;--trace-chart-vertical-line-background-color: #ccc;--trace-chart-horizontal-line-background-color: #ccc;--session-tab-session-wrapper-color: #9aa0a6;--session-tab-session-item-background-color: #303030;--session-tab-session-item-hover-background-color: #141414;--session-tab-session-item-current-background-color: #004a77;--session-tab-session-id-color: #e8eaed;--session-tab-session-date-color: #9aa0a6;--side-panel-button-filled-container-color: #89b4f8;--side-panel-button-filled-label-text-color: black;--side-panel-mat-icon-color: #bdc1c6;--side-panel-resize-handler-background-color: #5f6368;--side-panel-details-panel-container-background-color: #242424;--side-panel-details-content-color: white;--side-panel-powered-by-adk-color: grey;--side-panel-app-select-container-background-color: #212123;--side-panel-select-placeholder-text-color: #8ab4f8;--side-panel-select-enabled-trigger-text-color: #8ab4f8;--side-panel-select-enabled-arrow-color: #8ab4f8;--side-panel-app-name-option-color: #9aa0a6;--trace-tab-trace-title-color: #9aa0a6;--trace-tab-trace-label-color: #e3e3e3;--trace-tab-trace-bar-background-color: #2f4d65;--trace-tab-trace-bar-color: #8dabbf;--trace-tab-trace-duration-color: #888;--trace-tab-vertical-line-background-color: #ccc;--trace-tab-horizontal-line-background-color: #ccc;--trace-tab-trace-item-container-background-color: #333537;--trace-tab-trace-item-header-focus-state-layer-color: red;--trace-tab-trace-item-header-description-color: #8e918f;--trace-tab-mat-expansion-panel-header-focus-background-color: #444746;--trace-tab-mat-expansion-panel-header-background-color: #444746;--trace-tab-mat-expansion-panel-header-hover-background-color: #444746;--trace-event-json-viewer-container-background-color: #1b1b1b;--trace-tree-trace-label-color: #e3e3e3;--trace-tree-trace-bar-background-color: #2f4d65;--trace-tree-trace-bar-color: #8dabbf;--trace-tree-short-trace-bar-duration-color: #8dabbf;--trace-tree-trace-duration-color: #888;--trace-tree-trace-row-hover-background-color: #3b3d3c;--trace-tree-trace-row-selected-background-color: #3b3d3c;--trace-tree-vertical-line-background-color: #ccc;--trace-tree-horizontal-line-background-color: #ccc;--trace-tree-invocation-id-container-color: #9aa0a6;--trace-tree-trace-row-left-span-div-color: white;--trace-tree-trace-row-left-is-event-row-color: #8ab4f8}:root{--mdc-circular-progress-active-indicator-color: #a8c7fa}:root{--mdc-circular-progress-size: 80} From 4f85e86fc3915f0e67312a39fe22451968d4f1b1 Mon Sep 17 00:00:00 2001 From: Eliza Huang Date: Tue, 4 Nov 2025 12:42:30 -0800 Subject: [PATCH 281/303] feat: Add support for extracting cache-related token counts from LiteLLM usage Closes #3049 Co-authored-by: Eliza Huang PiperOrigin-RevId: 828091671 --- src/google/adk/models/lite_llm.py | 59 ++++++++++++++++++++++++++ tests/unittests/models/test_litellm.py | 51 +++++++++++++++++++--- 2 files changed, 103 insertions(+), 7 deletions(-) diff --git a/src/google/adk/models/lite_llm.py b/src/google/adk/models/lite_llm.py index 1f6ea0a74b..3874216d42 100644 --- a/src/google/adk/models/lite_llm.py +++ b/src/google/adk/models/lite_llm.py @@ -101,6 +101,7 @@ class UsageMetadataChunk(BaseModel): prompt_tokens: int completion_tokens: int total_tokens: int + cached_prompt_tokens: int = 0 class LiteLLMClient: @@ -217,6 +218,59 @@ def _append_fallback_user_content_if_missing( ) +def _extract_cached_prompt_tokens(usage: Any) -> int: + """Extracts cached prompt tokens from LiteLLM usage. + + Providers expose cached token metrics in different shapes. Common patterns: + - usage["prompt_tokens_details"]["cached_tokens"] (OpenAI/Azure style) + - usage["prompt_tokens_details"] is a list of dicts with cached_tokens + - usage["cached_prompt_tokens"] (LiteLLM-normalized for some providers) + - usage["cached_tokens"] (flat) + + Args: + usage: Usage dictionary from LiteLLM response. + + Returns: + Integer number of cached prompt tokens if present; otherwise 0. + """ + try: + usage_dict = usage + if hasattr(usage, "model_dump"): + usage_dict = usage.model_dump() + elif isinstance(usage, str): + try: + usage_dict = json.loads(usage) + except json.JSONDecodeError: + return 0 + + if not isinstance(usage_dict, dict): + return 0 + + details = usage_dict.get("prompt_tokens_details") + if isinstance(details, dict): + value = details.get("cached_tokens") + if isinstance(value, int): + return value + elif isinstance(details, list): + total = sum( + item.get("cached_tokens", 0) + for item in details + if isinstance(item, dict) + and isinstance(item.get("cached_tokens"), int) + ) + if total > 0: + return total + + for key in ("cached_prompt_tokens", "cached_tokens"): + value = usage_dict.get(key) + if isinstance(value, int): + return value + except (TypeError, AttributeError) as e: + logger.debug("Error extracting cached prompt tokens: %s", e) + + return 0 + + def _content_to_message_param( content: types.Content, ) -> Union[Message, list[Message]]: @@ -533,6 +587,7 @@ def _model_response_to_chunk( prompt_tokens=response["usage"].get("prompt_tokens", 0), completion_tokens=response["usage"].get("completion_tokens", 0), total_tokens=response["usage"].get("total_tokens", 0), + cached_prompt_tokens=_extract_cached_prompt_tokens(response["usage"]), ), None @@ -576,6 +631,9 @@ def _model_response_to_generate_content_response( prompt_token_count=response["usage"].get("prompt_tokens", 0), candidates_token_count=response["usage"].get("completion_tokens", 0), total_token_count=response["usage"].get("total_tokens", 0), + cached_content_token_count=_extract_cached_prompt_tokens( + response["usage"] + ), ) return llm_response @@ -965,6 +1023,7 @@ async def generate_content_async( prompt_token_count=chunk.prompt_tokens, candidates_token_count=chunk.completion_tokens, total_token_count=chunk.total_tokens, + cached_content_token_count=chunk.cached_prompt_tokens, ) if ( diff --git a/tests/unittests/models/test_litellm.py b/tests/unittests/models/test_litellm.py index 0f6f3dafd1..aefa2c67e5 100644 --- a/tests/unittests/models/test_litellm.py +++ b/tests/unittests/models/test_litellm.py @@ -1063,6 +1063,7 @@ async def test_generate_content_async_with_usage_metadata( "prompt_tokens": 10, "completion_tokens": 5, "total_tokens": 15, + "cached_tokens": 8, }, ) mock_acompletion.return_value = mock_response_with_usage_metadata @@ -1083,6 +1084,7 @@ async def test_generate_content_async_with_usage_metadata( assert response.usage_metadata.prompt_token_count == 10 assert response.usage_metadata.candidates_token_count == 5 assert response.usage_metadata.total_token_count == 15 + assert response.usage_metadata.cached_content_token_count == 8 mock_acompletion.assert_called_once() @@ -1718,37 +1720,42 @@ async def test_generate_content_async_stream_with_usage_metadata( @pytest.mark.asyncio -async def test_generate_content_async_stream_with_usage_metadata_only( +async def test_generate_content_async_stream_with_usage_metadata( mock_completion, lite_llm_instance ): + """Tests that cached prompt tokens are propagated in streaming mode.""" streaming_model_response_with_usage_metadata = [ + *STREAMING_MODEL_RESPONSE, ModelResponse( usage={ "prompt_tokens": 10, "completion_tokens": 5, "total_tokens": 15, + "cached_tokens": 8, }, choices=[ StreamingChoices( - finish_reason="stop", - delta=Delta(content=""), + finish_reason=None, ) ], ), ] + mock_completion.return_value = iter( streaming_model_response_with_usage_metadata ) - unused_responses = [ + responses = [ response async for response in lite_llm_instance.generate_content_async( LLM_REQUEST_WITH_FUNCTION_DECLARATION, stream=True ) ] - mock_completion.assert_called_once() - _, kwargs = mock_completion.call_args - assert kwargs["stream_options"] == {"include_usage": True} + assert len(responses) == 4 + assert responses[3].usage_metadata.prompt_token_count == 10 + assert responses[3].usage_metadata.candidates_token_count == 5 + assert responses[3].usage_metadata.total_token_count == 15 + assert responses[3].usage_metadata.cached_content_token_count == 8 @pytest.mark.asyncio @@ -2038,6 +2045,36 @@ def test_function_declaration_to_tool_param_edge_cases(): assert "required" not in result["function"]["parameters"] +@pytest.mark.parametrize( + "usage, expected_tokens", + [ + ({"prompt_tokens_details": {"cached_tokens": 123}}, 123), + ( + { + "prompt_tokens_details": [ + {"cached_tokens": 50}, + {"cached_tokens": 25}, + ] + }, + 75, + ), + ({"cached_prompt_tokens": 45}, 45), + ({"cached_tokens": 67}, 67), + ({"prompt_tokens": 100}, 0), + ({}, 0), + ("not a dict", 0), + (None, 0), + ({"prompt_tokens_details": {"cached_tokens": "not a number"}}, 0), + (json.dumps({"cached_tokens": 89}), 89), + (json.dumps({"some_key": "some_value"}), 0), + ], +) +def test_extract_cached_prompt_tokens(usage, expected_tokens): + from google.adk.models.lite_llm import _extract_cached_prompt_tokens + + assert _extract_cached_prompt_tokens(usage) == expected_tokens + + def test_gemini_via_litellm_warning(monkeypatch): """Test that Gemini via LiteLLM shows warning.""" # Ensure environment variable is not set From 6e5c0eb6e0474f5b908eb9df20328e7da85ebed9 Mon Sep 17 00:00:00 2001 From: Kathy Wu Date: Tue, 4 Nov 2025 13:59:46 -0800 Subject: [PATCH 282/303] feat: Add token usage to live events for bidi streaming Populate the usage_metadata field for live events with the metadata provided by the Gemini live API. Co-authored-by: Kathy Wu PiperOrigin-RevId: 828124232 --- .../adk/flows/llm_flows/base_llm_flow.py | 1 + .../adk/models/gemini_llm_connection.py | 2 + .../models/test_gemini_llm_connection.py | 70 +++++++++++++++++++ 3 files changed, 73 insertions(+) diff --git a/src/google/adk/flows/llm_flows/base_llm_flow.py b/src/google/adk/flows/llm_flows/base_llm_flow.py index f6d64cae5f..93a432045b 100644 --- a/src/google/adk/flows/llm_flows/base_llm_flow.py +++ b/src/google/adk/flows/llm_flows/base_llm_flow.py @@ -581,6 +581,7 @@ async def _postprocess_live( and not llm_response.turn_complete and not llm_response.input_transcription and not llm_response.output_transcription + and not llm_response.usage_metadata ): return diff --git a/src/google/adk/models/gemini_llm_connection.py b/src/google/adk/models/gemini_llm_connection.py index fad21c738b..e23ce19ac8 100644 --- a/src/google/adk/models/gemini_llm_connection.py +++ b/src/google/adk/models/gemini_llm_connection.py @@ -148,6 +148,8 @@ async def receive(self) -> AsyncGenerator[LlmResponse, None]: # partial content and emit responses as needed. async for message in agen: logger.debug('Got LLM Live message: %s', message) + if message.usage_metadata: + yield LlmResponse(usage_metadata=message.usage_metadata) if message.server_content: content = message.server_content.model_turn if content and content.parts: diff --git a/tests/unittests/models/test_gemini_llm_connection.py b/tests/unittests/models/test_gemini_llm_connection.py index 2327115033..7710cce980 100644 --- a/tests/unittests/models/test_gemini_llm_connection.py +++ b/tests/unittests/models/test_gemini_llm_connection.py @@ -109,3 +109,73 @@ async def test_close(gemini_connection, mock_gemini_session): await gemini_connection.close() mock_gemini_session.close.assert_called_once() + + +@pytest.mark.asyncio +async def test_receive_usage_metadata_and_server_content( + gemini_connection, mock_gemini_session +): + """Test receive with usage metadata and server content in one message.""" + usage_metadata = types.UsageMetadata( + prompt_token_count=10, + cached_content_token_count=5, + response_token_count=20, + total_token_count=35, + thoughts_token_count=2, + prompt_tokens_details=[ + types.ModalityTokenCount(modality='text', token_count=10) + ], + cache_tokens_details=[ + types.ModalityTokenCount(modality='text', token_count=5) + ], + response_tokens_details=[ + types.ModalityTokenCount(modality='text', token_count=20) + ], + ) + mock_content = types.Content( + role='model', parts=[types.Part.from_text(text='response text')] + ) + mock_server_content = mock.Mock() + mock_server_content.model_turn = mock_content + mock_server_content.interrupted = False + mock_server_content.input_transcription = None + mock_server_content.output_transcription = None + mock_server_content.turn_complete = False + + mock_message = mock.AsyncMock() + mock_message.usage_metadata = usage_metadata + mock_message.server_content = mock_server_content + mock_message.tool_call = None + mock_message.session_resumption_update = None + + async def mock_receive_generator(): + yield mock_message + + receive_mock = mock.Mock(return_value=mock_receive_generator()) + mock_gemini_session.receive = receive_mock + + responses = [resp async for resp in gemini_connection.receive()] + + assert responses + + usage_response = next((r for r in responses if r.usage_metadata), None) + assert usage_response is not None + content_response = next((r for r in responses if r.content), None) + assert content_response is not None + + expected_usage = types.GenerateContentResponseUsageMetadata( + prompt_token_count=10, + cached_content_token_count=5, + candidates_token_count=None, + total_token_count=35, + thoughts_token_count=2, + prompt_tokens_details=[ + types.ModalityTokenCount(modality='text', token_count=10) + ], + cache_tokens_details=[ + types.ModalityTokenCount(modality='text', token_count=5) + ], + candidates_tokens_details=None, + ) + assert usage_response.usage_metadata == expected_usage + assert content_response.content == mock_content From 54db3d4434e0706b83a589fa2499d11d439a6e4e Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Tue, 4 Nov 2025 14:04:56 -0800 Subject: [PATCH 283/303] fix: update the contribution analysis tool to use original write mode PiperOrigin-RevId: 828126582 --- src/google/adk/tools/bigquery/query_tool.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/google/adk/tools/bigquery/query_tool.py b/src/google/adk/tools/bigquery/query_tool.py index cf2f23f8ad..4a4913d3d7 100644 --- a/src/google/adk/tools/bigquery/query_tool.py +++ b/src/google/adk/tools/bigquery/query_tool.py @@ -1057,7 +1057,7 @@ def analyze_contribution( # Create a session and run the create model query. original_write_mode = settings.write_mode try: - if settings.write_mode == WriteMode.BLOCKED: + if original_write_mode == WriteMode.BLOCKED: raise ValueError("analyze_contribution is not allowed in this session.") elif original_write_mode != WriteMode.PROTECTED: # Running create temp model requires a session. So we set the write mode From 432d30af486329aa83f89c5d5752749a85c0b843 Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Tue, 4 Nov 2025 15:17:13 -0800 Subject: [PATCH 284/303] chore: Add Community Repo section to README This change introduces a new section in the README.md to highlight the `adk-python-community` GitHub repository, describing it as a place for community-contributed tools and integrations. Co-authored-by: Hangfei Lin PiperOrigin-RevId: 828155205 --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 61dfc40eac..5ffecf1caf 100644 --- a/README.md +++ b/README.md @@ -155,6 +155,12 @@ We welcome contributions from the community! Whether it's bug reports, feature r - [General contribution guideline and flow](https://google.github.io/adk-docs/contributing-guide/). - Then if you want to contribute code, please read [Code Contributing Guidelines](./CONTRIBUTING.md) to get started. +## Community Repo + +We have [adk-python-community repo](https://github.com/google/adk-python-community)that is home to a growing ecosystem of community-contributed tools, third-party +service integrations, and deployment scripts that extend the core capabilities +of the ADK. + ## Vibe Coding If you are to develop agent via vibe coding the [llms.txt](./llms.txt) and the [llms-full.txt](./llms-full.txt) can be used as context to LLM. While the former one is a summarized one and the later one has the full information in case your LLM has big enough context window. From 11571c37ab948d43cbaa3a1d82522256dfe4d467 Mon Sep 17 00:00:00 2001 From: Kathy Wu Date: Tue, 4 Nov 2025 15:33:41 -0800 Subject: [PATCH 285/303] fix: Reduce logging spam for MCP tools without authentication Users were getting spammed with this log even though their tools didn't require authentication. To fix, reduce the log level to DEBUG so that it doesn't show up by default. Co-authored-by: Kathy Wu PiperOrigin-RevId: 828161281 --- src/google/adk/tools/base_authenticated_tool.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/google/adk/tools/base_authenticated_tool.py b/src/google/adk/tools/base_authenticated_tool.py index 043bc872a6..6279d4f725 100644 --- a/src/google/adk/tools/base_authenticated_tool.py +++ b/src/google/adk/tools/base_authenticated_tool.py @@ -69,10 +69,9 @@ def __init__( if auth_config and auth_config.auth_scheme: self._credentials_manager = CredentialManager(auth_config=auth_config) else: - logger.warning( - "auth_config or auth_config.auth_scheme is missing. Will skip" - " authentication.Using FunctionTool instead if authentication is not" - " required." + logger.debug( + "auth_config or auth_config.auth_scheme is missing, so authentication" + " will be skipped." ) self._credentials_manager = None self._response_for_auth_required = response_for_auth_required From 88032cf5c56bb2d81842353605f9f5ab4b2206ff Mon Sep 17 00:00:00 2001 From: Kathy Wu Date: Tue, 4 Nov 2025 15:47:44 -0800 Subject: [PATCH 286/303] feat: Support MCP prompts Add support for MCP prompts via the McpInstructionProvider class, which can be specified as an agent's instruction. Co-authored-by: Kathy Wu PiperOrigin-RevId: 828166051 --- contributing/samples/mcp_sse_agent/agent.py | 20 +- .../mcp_sse_agent/filesystem_server.py | 7 + src/google/adk/agents/__init__.py | 16 ++ .../adk/agents/mcp_instruction_provider.py | 107 +++++++++ .../agents/test_mcp_instruction_provider.py | 210 ++++++++++++++++++ 5 files changed, 351 insertions(+), 9 deletions(-) create mode 100644 src/google/adk/agents/mcp_instruction_provider.py create mode 100644 tests/unittests/agents/test_mcp_instruction_provider.py diff --git a/contributing/samples/mcp_sse_agent/agent.py b/contributing/samples/mcp_sse_agent/agent.py index 4981512e5f..8d0980df44 100755 --- a/contributing/samples/mcp_sse_agent/agent.py +++ b/contributing/samples/mcp_sse_agent/agent.py @@ -16,25 +16,27 @@ import os from google.adk.agents.llm_agent import LlmAgent +from google.adk.agents.mcp_instruction_provider import McpInstructionProvider from google.adk.tools.mcp_tool.mcp_session_manager import SseConnectionParams from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset _allowed_path = os.path.dirname(os.path.abspath(__file__)) +connection_params = SseConnectionParams( + url='http://localhost:3000/sse', + headers={'Accept': 'text/event-stream'}, +) + root_agent = LlmAgent( model='gemini-2.0-flash', name='enterprise_assistant', - instruction=f"""\ -Help user accessing their file systems. - -Allowed directory: {_allowed_path} - """, + instruction=McpInstructionProvider( + connection_params=connection_params, + prompt_name='file_system_prompt', + ), tools=[ MCPToolset( - connection_params=SseConnectionParams( - url='http://localhost:3000/sse', - headers={'Accept': 'text/event-stream'}, - ), + connection_params=connection_params, # don't want agent to do write operation # you can also do below # tool_filter=lambda tool, ctx=None: tool.name diff --git a/contributing/samples/mcp_sse_agent/filesystem_server.py b/contributing/samples/mcp_sse_agent/filesystem_server.py index cda4f0a968..291091e511 100644 --- a/contributing/samples/mcp_sse_agent/filesystem_server.py +++ b/contributing/samples/mcp_sse_agent/filesystem_server.py @@ -45,6 +45,13 @@ def get_cwd() -> str: return str(Path.cwd()) +# Add a prompt for accessing file systems +@mcp.prompt(name="file_system_prompt") +def file_system_prompt() -> str: + return f"""\ +Help the user access their file systems.""" + + # Graceful shutdown handler async def shutdown(signal, loop): """Cleanup tasks tied to the service's shutdown.""" diff --git a/src/google/adk/agents/__init__.py b/src/google/adk/agents/__init__.py index 498a9f5c03..5710a21b7f 100644 --- a/src/google/adk/agents/__init__.py +++ b/src/google/adk/agents/__init__.py @@ -12,6 +12,9 @@ # See the License for the specific language governing permissions and # limitations under the License. +import logging +import sys + from .base_agent import BaseAgent from .invocation_context import InvocationContext from .live_request_queue import LiveRequest @@ -35,3 +38,16 @@ 'LiveRequestQueue', 'RunConfig', ] + +if sys.version_info < (3, 10): + logger = logging.getLogger('google_adk.' + __name__) + logger.warning( + 'MCP requires Python 3.10 or above. Please upgrade your Python' + ' version in order to use it.' + ) +else: + from .mcp_instruction_provider import McpInstructionProvider + + __all__.extend([ + 'McpInstructionProvider', + ]) diff --git a/src/google/adk/agents/mcp_instruction_provider.py b/src/google/adk/agents/mcp_instruction_provider.py new file mode 100644 index 0000000000..e9f40663c9 --- /dev/null +++ b/src/google/adk/agents/mcp_instruction_provider.py @@ -0,0 +1,107 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Provides instructions to an agent by fetching prompts from an MCP server.""" + +from __future__ import annotations + +import logging +import sys +from typing import Any +from typing import Dict +from typing import TextIO + +from .llm_agent import InstructionProvider +from .readonly_context import ReadonlyContext + +# Attempt to import MCP Session Manager from the MCP library, and hints user to +# upgrade their Python version to 3.10 if it fails. +try: + from mcp import types + + from ..tools.mcp_tool.mcp_session_manager import MCPSessionManager +except ImportError as e: + if sys.version_info < (3, 10): + raise ImportError( + "MCP Session Manager requires Python 3.10 or above. Please upgrade" + " your Python version." + ) from e + else: + raise e + + +class McpInstructionProvider(InstructionProvider): + """Fetches agent instructions from an MCP server.""" + + def __init__( + self, + connection_params: Any, + prompt_name: str, + errlog: TextIO = sys.stderr, + ): + """Initializes the McpInstructionProvider. + + Args: + connection_params: Parameters for connecting to the MCP server. + prompt_name: The name of the MCP Prompt to fetch. + errlog: TextIO stream for error logging. + """ + self._connection_params = connection_params + self._errlog = errlog or logging.getLogger(__name__) + self._mcp_session_manager = MCPSessionManager( + connection_params=self._connection_params, + errlog=self._errlog, + ) + self.prompt_name = prompt_name + + async def __call__(self, context: ReadonlyContext) -> str: + """Fetches the instruction from the MCP server. + + Args: + context: The read-only context of the agent. + + Returns: + The instruction string. + """ + session = await self._mcp_session_manager.create_session() + # Fetch prompt definition to get the required argument names + prompt_definitions = await session.list_prompts() + prompt_definition = next( + (p for p in prompt_definitions.prompts if p.name == self.prompt_name), + None, + ) + + # Fetch arguments from context state if the prompt requires them + prompt_args: Dict[str, Any] = {} + if prompt_definition and prompt_definition.arguments: + arg_names = {arg.name for arg in prompt_definition.arguments} + prompt_args = { + k: v for k, v in (context.state or {}).items() if k in arg_names + } + + # Fetch the specific prompt by name with arguments from context state + prompt_result: types.GetPromptResult = await session.get_prompt( + self.prompt_name, arguments=prompt_args + ) + + if prompt_result and prompt_result.messages: + # Concatenate content of all messages to form the instruction. + instruction = "".join( + message.content.text + for message in prompt_result.messages + if message.content.type == "text" + ) + return instruction + else: + raise ValueError(f"Failed to load MCP prompt '{self.prompt_name}'.") diff --git a/tests/unittests/agents/test_mcp_instruction_provider.py b/tests/unittests/agents/test_mcp_instruction_provider.py new file mode 100644 index 0000000000..1f2d098c2a --- /dev/null +++ b/tests/unittests/agents/test_mcp_instruction_provider.py @@ -0,0 +1,210 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Unit tests for McpInstructionProvider.""" +import sys +from unittest.mock import AsyncMock +from unittest.mock import MagicMock +from unittest.mock import patch + +from google.adk.agents.readonly_context import ReadonlyContext +import pytest + +# Skip all tests in this module if Python version is less than 3.10 +pytestmark = pytest.mark.skipif( + sys.version_info < (3, 10), + reason="MCP instruction provider requires Python 3.10+", +) + +# Import dependencies with version checking +try: + from google.adk.agents.mcp_instruction_provider import McpInstructionProvider +except ImportError as e: + if sys.version_info < (3, 10): + # Create dummy classes to prevent NameError during test collection + # Tests will be skipped anyway due to pytestmark + class DummyClass: + pass + + McpInstructionProvider = DummyClass + else: + raise e + + +class TestMcpInstructionProvider: + """Unit tests for McpInstructionProvider.""" + + def setup_method(self): + """Sets up the test environment.""" + self.connection_params = {"host": "localhost", "port": 8000} + self.prompt_name = "test_prompt" + self.mock_mcp_session_manager_cls = patch( + "google.adk.agents.mcp_instruction_provider.MCPSessionManager" + ).start() + self.mock_mcp_session_manager = ( + self.mock_mcp_session_manager_cls.return_value + ) + self.mock_session = MagicMock() + self.mock_session.list_prompts = AsyncMock() + self.mock_session.get_prompt = AsyncMock() + self.mock_mcp_session_manager.create_session = AsyncMock( + return_value=self.mock_session + ) + self.provider = McpInstructionProvider( + self.connection_params, self.prompt_name + ) + + @pytest.mark.asyncio + async def test_call_success_no_args(self): + """Tests __call__ with a prompt that has no arguments.""" + mock_prompt = MagicMock() + mock_prompt.name = self.prompt_name + mock_prompt.arguments = None + self.mock_session.list_prompts.return_value = MagicMock( + prompts=[mock_prompt] + ) + + mock_msg1 = MagicMock() + mock_msg1.content.type = "text" + mock_msg1.content.text = "instruction part 1. " + mock_msg2 = MagicMock() + mock_msg2.content.type = "text" + mock_msg2.content.text = "instruction part 2" + self.mock_session.get_prompt.return_value = MagicMock( + messages=[mock_msg1, mock_msg2] + ) + + mock_invocation_context = MagicMock() + mock_invocation_context.session.state = {} + context = ReadonlyContext(mock_invocation_context) + + # Call + instruction = await self.provider(context) + + # Assert + assert instruction == "instruction part 1. instruction part 2" + self.mock_session.get_prompt.assert_called_once_with( + self.prompt_name, arguments={} + ) + + @pytest.mark.asyncio + async def test_call_success_with_args(self): + """Tests __call__ with a prompt that has arguments.""" + mock_arg1 = MagicMock() + mock_arg1.name = "arg1" + mock_prompt = MagicMock() + mock_prompt.name = self.prompt_name + mock_prompt.arguments = [mock_arg1] + self.mock_session.list_prompts.return_value = MagicMock( + prompts=[mock_prompt] + ) + + mock_msg = MagicMock() + mock_msg.content.type = "text" + mock_msg.content.text = "instruction with arg1" + self.mock_session.get_prompt.return_value = MagicMock(messages=[mock_msg]) + + mock_invocation_context = MagicMock() + mock_invocation_context.session.state = {"arg1": "value1", "arg2": "value2"} + context = ReadonlyContext(mock_invocation_context) + + instruction = await self.provider(context) + + assert instruction == "instruction with arg1" + self.mock_session.get_prompt.assert_called_once_with( + self.prompt_name, arguments={"arg1": "value1"} + ) + + @pytest.mark.asyncio + async def test_call_prompt_not_found_in_list_prompts(self): + """Tests __call__ when list_prompts doesn't return the prompt.""" + self.mock_session.list_prompts.return_value = MagicMock(prompts=[]) + + mock_msg = MagicMock() + mock_msg.content.type = "text" + mock_msg.content.text = "instruction" + self.mock_session.get_prompt.return_value = MagicMock(messages=[mock_msg]) + + mock_invocation_context = MagicMock() + mock_invocation_context.session.state = {"arg1": "value1"} + context = ReadonlyContext(mock_invocation_context) + + instruction = await self.provider(context) + + assert instruction == "instruction" + self.mock_session.get_prompt.assert_called_once_with( + self.prompt_name, arguments={} + ) + + @pytest.mark.asyncio + async def test_call_get_prompt_returns_no_messages(self): + """Tests __call__ when get_prompt returns no messages.""" + # Setup mocks + self.mock_session.list_prompts.return_value = MagicMock(prompts=[]) + self.mock_session.get_prompt.return_value = MagicMock(messages=[]) + + mock_invocation_context = MagicMock() + mock_invocation_context.session.state = {} + context = ReadonlyContext(mock_invocation_context) + + # Call and assert + with pytest.raises( + ValueError, match="Failed to load MCP prompt 'test_prompt'." + ): + await self.provider(context) + + # Assert + self.mock_session.get_prompt.assert_called_once_with( + self.prompt_name, arguments={} + ) + + @pytest.mark.asyncio + async def test_call_ignore_non_text_messages(self): + """Tests __call__ ignores non-text messages.""" + # Setup mocks + mock_prompt = MagicMock() + mock_prompt.name = self.prompt_name + mock_prompt.arguments = None + self.mock_session.list_prompts.return_value = MagicMock( + prompts=[mock_prompt] + ) + + mock_msg1 = MagicMock() + mock_msg1.content.type = "text" + mock_msg1.content.text = "instruction part 1. " + + mock_msg2 = MagicMock() + mock_msg2.content.type = "image" + mock_msg2.content.text = "ignored" + + mock_msg3 = MagicMock() + mock_msg3.content.type = "text" + mock_msg3.content.text = "instruction part 2" + + self.mock_session.get_prompt.return_value = MagicMock( + messages=[mock_msg1, mock_msg2, mock_msg3] + ) + + mock_invocation_context = MagicMock() + mock_invocation_context.session.state = {} + context = ReadonlyContext(mock_invocation_context) + + # Call + instruction = await self.provider(context) + + # Assert + assert instruction == "instruction part 1. instruction part 2" + self.mock_session.get_prompt.assert_called_once_with( + self.prompt_name, arguments={} + ) From 033f5a5d3f372f62c2c05121cf2c5c3ce0c3408b Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Tue, 4 Nov 2025 16:06:12 -0800 Subject: [PATCH 287/303] feat: Add configuration options to BigQuery logging plugin This change introduces BigQueryLoggerConfig to allow customization of the BigQueryAgentAnalyticsPlugin. Users can now enable/disable the plugin, specify event type allowlists and denylists, and provide a custom function to format or redact the content field before logging to BigQuery. The content logged for model and tool errors has also been enhanced. PiperOrigin-RevId: 828172241 --- .../adk/plugins/bigquery_logging_plugin.py | 78 ++++++++++- .../plugins/test_bigquery_logging_plugin.py | 124 ++++++++++++++++-- 2 files changed, 192 insertions(+), 10 deletions(-) diff --git a/src/google/adk/plugins/bigquery_logging_plugin.py b/src/google/adk/plugins/bigquery_logging_plugin.py index 3eae4b5b35..6a9f4db77a 100644 --- a/src/google/adk/plugins/bigquery_logging_plugin.py +++ b/src/google/adk/plugins/bigquery_logging_plugin.py @@ -14,12 +14,16 @@ from __future__ import annotations import asyncio +import dataclasses from datetime import datetime from datetime import timezone import json import logging import threading from typing import Any +from typing import Callable +from typing import Dict +from typing import List from typing import Optional from typing import TYPE_CHECKING @@ -44,6 +48,26 @@ from ..agents.invocation_context import InvocationContext +@dataclasses.dataclass +class BigQueryLoggerConfig: + """Configuration for the BigQueryAgentAnalyticsPlugin. + + Attributes: + enabled: Whether the plugin is enabled. + event_allowlist: List of event types to log. If None, all are allowed + except those in event_denylist. + event_denylist: List of event types to not log. Takes precedence over + event_allowlist. + content_formatter: Function to format or redact the 'content' field before + logging. + """ + + enabled: bool = True + event_allowlist: Optional[List[str]] = None + event_denylist: Optional[List[str]] = None + content_formatter: Optional[Callable[[Any], str]] = None + + def _get_event_type(event: Event) -> str: if event.author == "user": return "USER_INPUT" @@ -109,6 +133,8 @@ class BigQueryAgentAnalyticsPlugin(BasePlugin): Each log entry includes a timestamp, event type, agent name, session ID, invocation ID, user ID, content payload, and any error messages. + + Logging behavior can be customized using the BigQueryLoggerConfig. """ def __init__( @@ -116,22 +142,35 @@ def __init__( project_id: str, dataset_id: str, table_id: str = "agent_events", + config: Optional[BigQueryLoggerConfig] = None, **kwargs, ): super().__init__(name=kwargs.get("name", "BigQueryAgentAnalyticsPlugin")) self._project_id = project_id self._dataset_id = dataset_id self._table_id = table_id + self._config = config if config else BigQueryLoggerConfig() self._bq_client: bigquery.Client | None = None self._client_init_lock = threading.Lock() self._init_done = False self._init_succeeded = False + + if not self._config.enabled: + logging.info( + "BigQueryAgentAnalyticsPlugin %s is disabled by configuration.", + self.name, + ) + return + logging.debug( "DEBUG: BigQueryAgentAnalyticsPlugin INSTANTIATED (Name: %s)", self.name ) def _ensure_initialized_sync(self): """Synchronous initialization of BQ client and table.""" + if not self._config.enabled: + return + with self._client_init_lock: if self._init_done: return @@ -180,6 +219,39 @@ def _ensure_initialized_sync(self): self._init_succeeded = False async def _log_to_bigquery_async(self, event_dict: dict[str, Any]): + if not self._config.enabled: + return + + event_type = event_dict.get("event_type") + + # Check denylist + if ( + self._config.event_denylist + and event_type in self._config.event_denylist + ): + return + + # Check allowlist + if ( + self._config.event_allowlist + and event_type not in self._config.event_allowlist + ): + return + + # Apply custom content formatter + if self._config.content_formatter and "content" in event_dict: + try: + event_dict["content"] = self._config.content_formatter( + event_dict["content"] + ) + except Exception as e: + logging.warning( + "Error applying custom content formatter for event type %s: %s", + event_type, + e, + ) + # Optionally log a generic message or the error + def _sync_log(): self._ensure_initialized_sync() if not self._init_succeeded or not self._bq_client: @@ -246,6 +318,7 @@ async def before_run_callback( "session_id": invocation_context.session.id, "invocation_id": invocation_context.invocation_id, "user_id": invocation_context.session.user_id, + "content": None, } await self._log_to_bigquery_async(event_dict) return None @@ -286,6 +359,7 @@ async def after_run_callback( "session_id": invocation_context.session.id, "invocation_id": invocation_context.invocation_id, "user_id": invocation_context.session.user_id, + "content": None, } await self._log_to_bigquery_async(event_dict) return None @@ -529,7 +603,9 @@ async def on_tool_error_callback( "session_id": tool_context.session.id, "invocation_id": tool_context.invocation_id, "user_id": tool_context.session.user_id, - "content": f"Tool Name: {tool.name}", + "content": ( + f"Tool Name: {tool.name}, Arguments: {_format_args(tool_args)}" + ), "error_message": str(error), } await self._log_to_bigquery_async(event_dict) diff --git a/tests/unittests/plugins/test_bigquery_logging_plugin.py b/tests/unittests/plugins/test_bigquery_logging_plugin.py index f314978355..519af32e48 100644 --- a/tests/unittests/plugins/test_bigquery_logging_plugin.py +++ b/tests/unittests/plugins/test_bigquery_logging_plugin.py @@ -38,6 +38,8 @@ from google.genai import types import pytest +BigQueryLoggerConfig = bigquery_logging_plugin.BigQueryLoggerConfig + class PluginTestBase: """Base class for plugin tests with common context setup.""" @@ -109,14 +111,20 @@ def setup_method(self, method): ) self._asyncio_to_thread_patch.start() - self.plugin = bigquery_logging_plugin.BigQueryAgentAnalyticsPlugin( + self.plugin = asyncio.run(self._create_plugin()) + + async def _create_plugin(self, config=None): + plugin = bigquery_logging_plugin.BigQueryAgentAnalyticsPlugin( project_id=self.project_id, dataset_id=self.dataset_id, table_id=self.table_id, + config=config, ) - # Trigger lazy initialization by calling an async method once. - asyncio.run(self.plugin._log_to_bigquery_async({"event_type": "INIT"})) - self.mock_bq_client.insert_rows_json.reset_mock() + if config is None or config.enabled: + # Trigger lazy initialization by calling an async method once. + await plugin._log_to_bigquery_async({"event_type": "INIT"}) + self.mock_bq_client.insert_rows_json.reset_mock() + return plugin def _get_logged_entry(self): """Helper to get the single logged entry from the mocked client.""" @@ -134,6 +142,98 @@ def _assert_common_fields(self, log_entry, event_type): assert log_entry["user_id"] == "user-456" assert log_entry["timestamp"] is not None + @pytest.mark.asyncio + async def test_plugin_disabled(self): + self.mock_bq_client_cls.reset_mock() + config = BigQueryLoggerConfig(enabled=False) + plugin = await self._create_plugin(config) + user_message = types.Content(parts=[types.Part(text="Test")]) + await plugin.on_user_message_callback( + invocation_context=self.invocation_context, user_message=user_message + ) + self.mock_bq_client_cls.assert_not_called() + self.mock_bq_client.insert_rows_json.assert_not_called() + + @pytest.mark.asyncio + async def test_event_allowlist(self): + config = BigQueryLoggerConfig(event_allowlist=["LLM_REQUEST"]) + plugin = await self._create_plugin(config) + + # This should be logged + llm_request = llm_request_lib.LlmRequest( + model="gemini-pro", + contents=[types.Content(parts=[types.Part(text="Prompt")])], + ) + await plugin.before_model_callback( + callback_context=self.callback_context, llm_request=llm_request + ) + self.mock_bq_client.insert_rows_json.assert_called_once() + self.mock_bq_client.insert_rows_json.reset_mock() + + # This should NOT be logged + user_message = types.Content(parts=[types.Part(text="What is up?")]) + await plugin.on_user_message_callback( + invocation_context=self.invocation_context, user_message=user_message + ) + self.mock_bq_client.insert_rows_json.assert_not_called() + + @pytest.mark.asyncio + async def test_event_denylist(self): + config = BigQueryLoggerConfig(event_denylist=["USER_MESSAGE_RECEIVED"]) + plugin = await self._create_plugin(config) + + # This should NOT be logged + user_message = types.Content(parts=[types.Part(text="What is up?")]) + await plugin.on_user_message_callback( + invocation_context=self.invocation_context, user_message=user_message + ) + self.mock_bq_client.insert_rows_json.assert_not_called() + + # This should be logged + await plugin.before_run_callback(invocation_context=self.invocation_context) + self.mock_bq_client.insert_rows_json.assert_called_once() + + @pytest.mark.asyncio + async def test_content_formatter(self): + def redact_content(content): + return "[REDACTED]" + + config = BigQueryLoggerConfig(content_formatter=redact_content) + plugin = await self._create_plugin(config) + + user_message = types.Content(parts=[types.Part(text="Secret message")]) + await plugin.on_user_message_callback( + invocation_context=self.invocation_context, user_message=user_message + ) + + log_entry = self._get_logged_entry() + self._assert_common_fields(log_entry, "USER_MESSAGE_RECEIVED") + assert log_entry["content"] == "[REDACTED]" + + @pytest.mark.asyncio + async def test_content_formatter_error(self): + def error_formatter(content): + raise ValueError("Formatter failed") + + config = BigQueryLoggerConfig(content_formatter=error_formatter) + plugin = await self._create_plugin(config) + + user_message = types.Content(parts=[types.Part(text="Test")]) + with mock.patch.object(logging, "warning") as mock_log_warning: + await plugin.on_user_message_callback( + invocation_context=self.invocation_context, user_message=user_message + ) + mock_log_warning.assert_called_once_with( + "Error applying custom content formatter for event type %s: %s", + "USER_MESSAGE_RECEIVED", + mock.ANY, + ) + + log_entry = self._get_logged_entry() + # Content should be a string, even if formatter failed + assert isinstance(log_entry["content"], str) + assert "User Content: text: 'Test'" in log_entry["content"] + @pytest.mark.asyncio async def test_on_user_message_callback_logs_correctly(self): user_message = types.Content(parts=[types.Part(text="What is up?")]) @@ -371,8 +471,9 @@ async def test_after_tool_callback_logs_correctly(self): @pytest.mark.asyncio async def test_on_model_error_callback_logs_correctly(self): - llm_request = mock.create_autospec( - llm_request_lib.LlmRequest, instance=True + llm_request = llm_request_lib.LlmRequest( + model="gemini-pro", + contents=[types.Content(parts=[types.Part(text="Prompt")])], ) error = ValueError("LLM failed") await self.plugin.on_model_error_callback( @@ -382,21 +483,26 @@ async def test_on_model_error_callback_logs_correctly(self): ) log_entry = self._get_logged_entry() self._assert_common_fields(log_entry, "LLM_ERROR") - assert log_entry["content"] is None + assert ( + log_entry["content"] is None + or "Request Content: " in log_entry["content"] + ) assert log_entry["error_message"] == "LLM failed" @pytest.mark.asyncio async def test_on_tool_error_callback_logs_correctly(self): mock_tool = mock.create_autospec(base_tool_lib.BaseTool, instance=True) mock_tool.name = "MyTool" + tool_args = {"param": "value"} error = TimeoutError("Tool timed out") await self.plugin.on_tool_error_callback( tool=mock_tool, - tool_args={"param": "value"}, + tool_args=tool_args, tool_context=self.tool_context, error=error, ) log_entry = self._get_logged_entry() self._assert_common_fields(log_entry, "TOOL_ERROR") - assert log_entry["content"] == "Tool Name: MyTool" + assert "Tool Name: MyTool" in log_entry["content"] + assert "Arguments: {'param': 'value'}" in log_entry["content"] assert log_entry["error_message"] == "Tool timed out" From d4b2a8b49f98a9991cb44ac7ec6e538b81a08664 Mon Sep 17 00:00:00 2001 From: Yeesian Ng Date: Tue, 4 Nov 2025 16:23:36 -0800 Subject: [PATCH 288/303] feat: Add support for Vertex AI Express Mode when deploying to Agent Engine Co-authored-by: Yeesian Ng PiperOrigin-RevId: 828178479 --- pyproject.toml | 3 +- src/google/adk/cli/cli_deploy.py | 458 ++++++++++++++++--- src/google/adk/cli/cli_tools_click.py | 80 +++- tests/unittests/cli/utils/test_cli_deploy.py | 102 ----- 4 files changed, 444 insertions(+), 199 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 0ba44779e3..149a6ec23d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,13 +26,12 @@ classifiers = [ # List of https://pypi.org/classifiers/ dependencies = [ # go/keep-sorted start "PyYAML>=6.0.2, <7.0.0", # For APIHubToolset. - "absolufy-imports>=0.3.1, <1.0.0", # For Agent Engine deployment. "anyio>=4.9.0, <5.0.0;python_version>='3.10'", # For MCP Session Manager "authlib>=1.5.1, <2.0.0", # For RestAPI Tool "click>=8.1.8, <9.0.0", # For CLI tools "fastapi>=0.115.0, <1.119.0", # FastAPI framework "google-api-python-client>=2.157.0, <3.0.0", # Google API client discovery - "google-cloud-aiplatform[agent_engines]>=1.121.0, <2.0.0", # For VertexAI integrations, e.g. example store. + "google-cloud-aiplatform[agent_engines] @ git+https://github.com/googleapis/python-aiplatform.git@bf1851e59cb34e63b509a2a610e72691e1c4ca28", # For VertexAI integrations, e.g. example store. "google-cloud-bigtable>=2.32.0", # For Bigtable database "google-cloud-discoveryengine>=0.13.12, <0.14.0", # For Discovery Engine Search Tool "google-cloud-secret-manager>=2.22.0, <3.0.0", # Fetching secrets in RestAPI Tool diff --git a/src/google/adk/cli/cli_deploy.py b/src/google/adk/cli/cli_deploy.py index 1fc79204fb..335c786b9f 100644 --- a/src/google/adk/cli/cli_deploy.py +++ b/src/google/adk/cli/cli_deploy.py @@ -13,6 +13,7 @@ # limitations under the License. from __future__ import annotations +from datetime import datetime import json import os import shutil @@ -63,7 +64,7 @@ """ _AGENT_ENGINE_APP_TEMPLATE: Final[str] = """ -from vertexai.preview.reasoning_engines import AdkApp +from vertexai.agent_engines import AdkApp if {is_config_agent}: from google.adk.agents import config_agent_utils @@ -74,14 +75,298 @@ # This path is used to support the file structure in Agent Engine. root_agent = config_agent_utils.from_config("./{temp_folder}/{app_name}/root_agent.yaml") else: - from {app_name}.agent import root_agent + from .agent import {adk_app_object} + +if {express_mode}: # Whether or not to use Express Mode + import os + import vertexai + vertexai.init(api_key=os.environ.get("GOOGLE_API_KEY")) adk_app = AdkApp( - agent=root_agent, - enable_tracing={trace_to_cloud_option}, + {adk_app_type}={adk_app_object}, + enable_tracing={trace_to_cloud_option}, ) """ +_AGENT_ENGINE_CLASS_METHODS = [ + { + 'name': 'get_session', + 'description': ( + 'Deprecated. Use async_get_session instead.\n\n Get a' + ' session for the given user.\n ' + ), + 'parameters': { + 'properties': { + 'user_id': {'type': 'string'}, + 'session_id': {'type': 'string'}, + }, + 'required': ['user_id', 'session_id'], + 'type': 'object', + }, + 'api_mode': '', + }, + { + 'name': 'list_sessions', + 'description': ( + 'Deprecated. Use async_list_sessions instead.\n\n List' + ' sessions for the given user.\n ' + ), + 'parameters': { + 'properties': {'user_id': {'type': 'string'}}, + 'required': ['user_id'], + 'type': 'object', + }, + 'api_mode': '', + }, + { + 'name': 'create_session', + 'description': ( + 'Deprecated. Use async_create_session instead.\n\n Creates a' + ' new session.\n ' + ), + 'parameters': { + 'properties': { + 'user_id': {'type': 'string'}, + 'session_id': {'type': 'string', 'nullable': True}, + 'state': {'type': 'object', 'nullable': True}, + }, + 'required': ['user_id'], + 'type': 'object', + }, + 'api_mode': '', + }, + { + 'name': 'delete_session', + 'description': ( + 'Deprecated. Use async_delete_session instead.\n\n Deletes a' + ' session for the given user.\n ' + ), + 'parameters': { + 'properties': { + 'user_id': {'type': 'string'}, + 'session_id': {'type': 'string'}, + }, + 'required': ['user_id', 'session_id'], + 'type': 'object', + }, + 'api_mode': '', + }, + { + 'name': 'async_get_session', + 'description': ( + 'Get a session for the given user.\n\n Args:\n ' + ' user_id (str):\n Required. The ID of the user.\n ' + ' session_id (str):\n Required. The ID of' + ' the session.\n **kwargs (dict[str, Any]):\n ' + ' Optional. Additional keyword arguments to pass to the\n ' + ' session service.\n\n Returns:\n ' + ' Session: The session instance (if any). It returns None if the\n ' + ' session is not found.\n\n Raises:\n ' + ' RuntimeError: If the session is not found.\n ' + ), + 'parameters': { + 'properties': { + 'user_id': {'type': 'string'}, + 'session_id': {'type': 'string'}, + }, + 'required': ['user_id', 'session_id'], + 'type': 'object', + }, + 'api_mode': 'async', + }, + { + 'name': 'async_list_sessions', + 'description': ( + 'List sessions for the given user.\n\n Args:\n ' + ' user_id (str):\n Required. The ID of the user.\n ' + ' **kwargs (dict[str, Any]):\n Optional.' + ' Additional keyword arguments to pass to the\n ' + ' session service.\n\n Returns:\n ' + ' ListSessionsResponse: The list of sessions.\n ' + ), + 'parameters': { + 'properties': {'user_id': {'type': 'string'}}, + 'required': ['user_id'], + 'type': 'object', + }, + 'api_mode': 'async', + }, + { + 'name': 'async_create_session', + 'description': ( + 'Creates a new session.\n\n Args:\n user_id' + ' (str):\n Required. The ID of the user.\n ' + ' session_id (str):\n Optional. The ID of the' + ' session. If not provided, an ID\n will be be' + ' generated for the session.\n state (dict[str, Any]):\n' + ' Optional. The initial state of the session.\n ' + ' **kwargs (dict[str, Any]):\n Optional.' + ' Additional keyword arguments to pass to the\n ' + ' session service.\n\n Returns:\n Session: The' + ' newly created session instance.\n ' + ), + 'parameters': { + 'properties': { + 'user_id': {'type': 'string'}, + 'session_id': {'type': 'string', 'nullable': True}, + 'state': {'type': 'object', 'nullable': True}, + }, + 'required': ['user_id'], + 'type': 'object', + }, + 'api_mode': 'async', + }, + { + 'name': 'async_delete_session', + 'description': ( + 'Deletes a session for the given user.\n\n Args:\n ' + ' user_id (str):\n Required. The ID of the user.\n ' + ' session_id (str):\n Required. The ID of' + ' the session.\n **kwargs (dict[str, Any]):\n ' + ' Optional. Additional keyword arguments to pass to the\n ' + ' session service.\n ' + ), + 'parameters': { + 'properties': { + 'user_id': {'type': 'string'}, + 'session_id': {'type': 'string'}, + }, + 'required': ['user_id', 'session_id'], + 'type': 'object', + }, + 'api_mode': 'async', + }, + { + 'name': 'async_add_session_to_memory', + 'description': ( + 'Generates memories.\n\n Args:\n session' + ' (Dict[str, Any]):\n Required. The session to use' + ' for generating memories. It should\n be a' + ' dictionary representing an ADK Session object, e.g.\n ' + ' session.model_dump(mode="json").\n ' + ), + 'parameters': { + 'properties': { + 'session': {'additionalProperties': True, 'type': 'object'} + }, + 'required': ['session'], + 'type': 'object', + }, + 'api_mode': 'async', + }, + { + 'name': 'async_search_memory', + 'description': ( + 'Searches memories for the given user.\n\n Args:\n ' + ' user_id: The id of the user.\n query: The query to' + ' match the memories on.\n\n Returns:\n A' + ' SearchMemoryResponse containing the matching memories.\n ' + ), + 'parameters': { + 'properties': { + 'user_id': {'type': 'string'}, + 'query': {'type': 'string'}, + }, + 'required': ['user_id', 'query'], + 'type': 'object', + }, + 'api_mode': 'async', + }, + { + 'name': 'stream_query', + 'description': ( + 'Deprecated. Use async_stream_query instead.\n\n Streams' + ' responses from the ADK application in response to a message.\n\n ' + ' Args:\n message (Union[str, Dict[str, Any]]):\n ' + ' Required. The message to stream responses for.\n ' + ' user_id (str):\n Required. The ID of the' + ' user.\n session_id (str):\n Optional.' + ' The ID of the session. If not provided, a new\n ' + ' session will be created for the user.\n run_config' + ' (Optional[Dict[str, Any]]):\n Optional. The run' + ' config to use for the query. If you want to\n pass' + ' in a `run_config` pydantic object, you can pass in a dict\n ' + ' representing it as' + ' `run_config.model_dump(mode="json")`.\n **kwargs' + ' (dict[str, Any]):\n Optional. Additional keyword' + ' arguments to pass to the\n runner.\n\n ' + ' Yields:\n The output of querying the ADK' + ' application.\n ' + ), + 'parameters': { + 'properties': { + 'message': { + 'anyOf': [ + {'type': 'string'}, + {'additionalProperties': True, 'type': 'object'}, + ] + }, + 'user_id': {'type': 'string'}, + 'session_id': {'type': 'string', 'nullable': True}, + 'run_config': {'type': 'object', 'nullable': True}, + }, + 'required': ['message', 'user_id'], + 'type': 'object', + }, + 'api_mode': 'stream', + }, + { + 'name': 'async_stream_query', + 'description': ( + 'Streams responses asynchronously from the ADK application.\n\n ' + ' Args:\n message (str):\n Required.' + ' The message to stream responses for.\n user_id' + ' (str):\n Required. The ID of the user.\n ' + ' session_id (str):\n Optional. The ID of the' + ' session. If not provided, a new\n session will be' + ' created for the user.\n run_config (Optional[Dict[str,' + ' Any]]):\n Optional. The run config to use for the' + ' query. If you want to\n pass in a `run_config`' + ' pydantic object, you can pass in a dict\n ' + ' representing it as `run_config.model_dump(mode="json")`.\n ' + ' **kwargs (dict[str, Any]):\n Optional.' + ' Additional keyword arguments to pass to the\n ' + ' runner.\n\n Yields:\n Event dictionaries' + ' asynchronously.\n ' + ), + 'parameters': { + 'properties': { + 'message': { + 'anyOf': [ + {'type': 'string'}, + {'additionalProperties': True, 'type': 'object'}, + ] + }, + 'user_id': {'type': 'string'}, + 'session_id': {'type': 'string', 'nullable': True}, + 'run_config': {'type': 'object', 'nullable': True}, + }, + 'required': ['message', 'user_id'], + 'type': 'object', + }, + 'api_mode': 'async_stream', + }, + { + 'name': 'streaming_agent_run_with_events', + 'description': ( + 'Streams responses asynchronously from the ADK application.\n\n ' + ' In general, you should use `async_stream_query` instead, as it' + ' has a\n more structured API and works with the respective' + ' ADK services that\n you have defined for the AdkApp. This' + ' method is primarily meant for\n invocation from' + ' AgentSpace.\n\n Args:\n request_json (str):\n ' + ' Required. The request to stream responses for.\n ' + ' ' + ), + 'parameters': { + 'properties': {'request_json': {'type': 'string'}}, + 'required': ['request_json'], + 'type': 'object', + }, + 'api_mode': 'async_stream', + }, +] + def _resolve_project(project_in_option: Optional[str]) -> str: if project_in_option: @@ -342,10 +627,12 @@ def to_cloud_run( def to_agent_engine( *, agent_folder: str, - temp_folder: str, + temp_folder: Optional[str] = None, adk_app: str, staging_bucket: str, trace_to_cloud: Optional[bool] = None, + api_key: Optional[str] = None, + adk_app_object: Optional[str] = None, agent_engine_id: Optional[str] = None, absolutize_imports: bool = True, project: Optional[str] = None, @@ -370,12 +657,11 @@ def to_agent_engine( The contents of `adk_app` should look something like: ``` - from agent import root_agent - from vertexai.preview.reasoning_engines import AdkApp + from agent import + from vertexai.agent_engines import AdkApp adk_app = AdkApp( - agent=root_agent, - enable_tracing=True, + agent=, # or `app=` ) ``` @@ -388,6 +674,11 @@ def to_agent_engine( instance. staging_bucket (str): The GCS bucket for staging the deployment artifacts. trace_to_cloud (bool): Whether to enable Cloud Trace. + api_key (str): Optional. The API key to use for Express Mode. + If not provided, the API key from the GOOGLE_API_KEY environment variable + will be used. It will only be used if GOOGLE_GENAI_USE_VERTEXAI is true. + adk_app_object (str): Optional. The Python object corresponding to the root + ADK agent or app. Defaults to `root_agent` if not specified. agent_engine_id (str): Optional. The ID of the Agent Engine instance to update. If not specified, a new Agent Engine instance will be created. absolutize_imports (bool): Optional. Default is True. Whether to absolutize @@ -409,7 +700,22 @@ def to_agent_engine( `agent_folder` will be used. """ app_name = os.path.basename(agent_folder) - agent_src_path = os.path.join(temp_folder, app_name) + display_name = display_name or app_name + parent_folder = os.path.dirname(agent_folder) + if parent_folder != os.getcwd(): + click.echo(f'Please deploy from the project dir: {parent_folder}') + return + tmp_app_name = app_name + '_tmp' + datetime.now().strftime('%Y%m%d_%H%M%S') + temp_folder = temp_folder or tmp_app_name + agent_src_path = os.path.join(parent_folder, temp_folder) + click.echo(f'Staging all files in: {agent_src_path}') + adk_app_object = adk_app_object or 'root_agent' + if adk_app_object not in ['root_agent', 'app']: + click.echo( + f'Invalid adk_app_object: {adk_app_object}. Please use "root_agent"' + ' or "app".' + ) + return # remove agent_src_path if it exists if os.path.exists(agent_src_path): click.echo('Removing existing files') @@ -427,17 +733,12 @@ def to_agent_engine( shutil.copytree(agent_folder, agent_src_path, ignore=ignore_patterns) click.echo('Copying agent source code complete.') - click.echo('Initializing Vertex AI...') - import sys - - import vertexai - from vertexai import agent_engines - - sys.path.append(temp_folder) # To register the adk_app operations project = _resolve_project(project) click.echo('Resolving files and dependencies...') agent_config = {} + if staging_bucket: + agent_config['staging_bucket'] = staging_bucket if not agent_engine_config_file: # Attempt to read the agent engine config from .agent_engine_config.json in the dir (if any). agent_engine_config_file = os.path.join( @@ -460,10 +761,6 @@ def to_agent_engine( f'Overriding description in agent engine config with {description}' ) agent_config['description'] = description - if agent_config.get('extra_packages'): - agent_config['extra_packages'].append(temp_folder) - else: - agent_config['extra_packages'] = [temp_folder] if not requirements_file: # Attempt to read requirements from requirements.txt in the dir (if any). @@ -471,21 +768,26 @@ def to_agent_engine( if not os.path.exists(requirements_txt_path): click.echo(f'Creating {requirements_txt_path}...') with open(requirements_txt_path, 'w', encoding='utf-8') as f: - f.write('google-cloud-aiplatform[adk,agent_engines]') + f.write( + 'google-cloud-aiplatform[adk,agent_engines] @ ' + 'git+https://github.com/googleapis/python-aiplatform.git@' + 'bf1851e59cb34e63b509a2a610e72691e1c4ca28' + ) click.echo(f'Created {requirements_txt_path}') - agent_config['requirements'] = agent_config.get( + agent_config['requirements_file'] = agent_config.get( 'requirements', requirements_txt_path, ) else: - if 'requirements' in agent_config: + if 'requirements_file' in agent_config: click.echo( 'Overriding requirements in agent engine config with ' f'{requirements_file}' ) - agent_config['requirements'] = requirements_file + agent_config['requirements_file'] = requirements_file + agent_config['requirements_file'] = f'{temp_folder}/requirements.txt' - env_vars = None + env_vars = {} if not env_file: # Attempt to read the env variables from .env in the dir (if any). env_file = os.path.join(agent_folder, '.env') @@ -518,6 +820,20 @@ def to_agent_engine( else: region = env_region click.echo(f'{region=} set by GOOGLE_CLOUD_LOCATION in {env_file}') + if api_key: + if 'GOOGLE_API_KEY' in env_vars: + click.secho( + 'Ignoring GOOGLE_API_KEY in .env as `--api_key` was' + ' explicitly passed and takes precedence', + fg='yellow', + ) + else: + env_vars['GOOGLE_GENAI_USE_VERTEXAI'] = '1' + env_vars['GOOGLE_API_KEY'] = api_key + elif not project: + if 'GOOGLE_API_KEY' in env_vars: + api_key = env_vars['GOOGLE_API_KEY'] + click.echo(f'api_key set by GOOGLE_API_KEY in {env_file}') if env_vars: if 'env_vars' in agent_config: click.echo( @@ -527,11 +843,20 @@ def to_agent_engine( # Set env_vars in agent_config to None if it is not set. agent_config['env_vars'] = agent_config.get('env_vars', env_vars) - vertexai.init( - project=project, - location=region, - staging_bucket=staging_bucket, - ) + import vertexai + + if project and region: + click.echo('Initializing Vertex AI...') + client = vertexai.Client(project=project, location=region) + elif api_key: + click.echo('Initializing Vertex AI in Express Mode with API key...') + client = vertexai.Client(api_key=api_key) + else: + click.echo( + 'No project/region or api_key provided. ' + 'Please specify either project/region or api_key.' + ) + return click.echo('Vertex AI initialized.') is_config_agent = False @@ -541,6 +866,16 @@ def to_agent_engine( is_config_agent = True adk_app_file = os.path.join(temp_folder, f'{adk_app}.py') + if adk_app_object == 'root_agent': + adk_app_type = 'agent' + elif adk_app_object == 'app': + adk_app_type = 'app' + else: + click.echo( + f'Invalid adk_app_object: {adk_app_object}. Please use "root_agent"' + ' or "app".' + ) + return with open(adk_app_file, 'w', encoding='utf-8') as f: f.write( _AGENT_ENGINE_APP_TEMPLATE.format( @@ -549,55 +884,36 @@ def to_agent_engine( is_config_agent=is_config_agent, temp_folder=temp_folder, agent_folder=agent_folder, + adk_app_object=adk_app_object, + adk_app_type=adk_app_type, + express_mode=api_key is not None, ) ) click.echo(f'Created {adk_app_file}') click.echo('Files and dependencies resolved') if absolutize_imports: - for root, _, files in os.walk(agent_src_path): - for file in files: - if file.endswith('.py'): - absolutize_imports_path = os.path.join(root, file) - try: - click.echo( - f'Running `absolufy-imports {absolutize_imports_path}`' - ) - subprocess.run( - ['absolufy-imports', absolutize_imports_path], - cwd=temp_folder, - ) - except Exception as e: - click.echo(f'The following exception was raised: {e}') - + click.echo( + 'Agent Engine deployments have switched to source-based deployment, ' + 'so it is no longer necessary to absolutize imports.' + ) click.echo('Deploying to agent engine...') - agent_config['agent_engine'] = agent_engines.ModuleAgent( - module_name=adk_app, - agent_name='adk_app', - register_operations={ - '': [ - 'get_session', - 'list_sessions', - 'create_session', - 'delete_session', - ], - 'async': [ - 'async_get_session', - 'async_list_sessions', - 'async_create_session', - 'async_delete_session', - ], - 'async_stream': ['async_stream_query'], - 'stream': ['stream_query', 'streaming_agent_run_with_events'], - }, - sys_paths=[temp_folder[1:]], - agent_framework='google-adk', - ) + agent_config['entrypoint_module'] = f'{temp_folder}.{adk_app}' + agent_config['entrypoint_object'] = 'adk_app' + agent_config['source_packages'] = [temp_folder] + agent_config['class_methods'] = _AGENT_ENGINE_CLASS_METHODS + agent_config['agent_framework'] = 'google-adk' if not agent_engine_id: - agent_engines.create(**agent_config) + agent_engine = client.agent_engines.create(config=agent_config) + click.secho( + f'✅ Created agent engine: {agent_engine.api_resource.name}', + fg='green', + ) else: - resource_name = f'projects/{project}/locations/{region}/reasoningEngines/{agent_engine_id}' - agent_engines.update(resource_name=resource_name, **agent_config) + if project and region and not agent_engine_id.startswith('projects/'): + agent_engine_id = f'projects/{project}/locations/{region}/agentEngines/{agent_engine_id}' + client.agent_engines.update(name=agent_engine_id, config=agent_config) + click.secho(f'✅ Updated agent engine: {agent_engine_id}', fg='green') finally: click.echo(f'Cleaning up the temp folder: {temp_folder}') shutil.rmtree(temp_folder) diff --git a/src/google/adk/cli/cli_tools_click.py b/src/google/adk/cli/cli_tools_click.py index 06f567a037..5a71384b17 100644 --- a/src/google/adk/cli/cli_tools_click.py +++ b/src/google/adk/cli/cli_tools_click.py @@ -1462,26 +1462,46 @@ def cli_deploy_cloud_run( @deploy.command("agent_engine") +@click.option( + "--api_key", + type=str, + default=None, + help=( + "Optional. The API key to use for Express Mode. If not" + " provided, the API key from the GOOGLE_API_KEY environment variable" + " will be used. It will only be used if GOOGLE_GENAI_USE_VERTEXAI is" + " true. (It will override GOOGLE_API_KEY in the .env file if it" + " exists.)" + ), +) @click.option( "--project", type=str, + default=None, help=( - "Required. Google Cloud project to deploy the agent. It will override" - " GOOGLE_CLOUD_PROJECT in the .env file (if it exists)." + "Optional. Google Cloud project to deploy the agent. It will override" + " GOOGLE_CLOUD_PROJECT in the .env file (if it exists). It will be" + " ignored if api_key is set." ), ) @click.option( "--region", type=str, + default=None, help=( - "Required. Google Cloud region to deploy the agent. It will override" - " GOOGLE_CLOUD_LOCATION in the .env file (if it exists)." + "Optional. Google Cloud region to deploy the agent. It will override" + " GOOGLE_CLOUD_LOCATION in the .env file (if it exists). It will be" + " ignored if api_key is set." ), ) @click.option( "--staging_bucket", type=str, - help="Required. GCS bucket for staging the deployment artifacts.", + default=None, + help=( + "Optional. GCS bucket for staging the deployment artifacts. It will be" + " ignored if api_key is set." + ), ) @click.option( "--agent_engine_id", @@ -1489,9 +1509,12 @@ def cli_deploy_cloud_run( default=None, help=( "Optional. ID of the Agent Engine instance to update if it exists" - " (default: None, which means a new instance will be created)." - " The corresponding resource name in Agent Engine will be:" + " (default: None, which means a new instance will be created). If" + " project and region are set, this should be the resource ID, and the" + " corresponding resource name in Agent Engine will be:" " `projects/{project}/locations/{region}/reasoningEngines/{agent_engine_id}`." + " If api_key is set, then agent_engine_id is required to be the full" + " resource name (i.e. `projects/*/locations/*/reasoningEngines/*`)." ), ) @click.option( @@ -1528,15 +1551,20 @@ def cli_deploy_cloud_run( @click.option( "--temp_folder", type=str, - default=os.path.join( - tempfile.gettempdir(), - "agent_engine_deploy_src", - datetime.now().strftime("%Y%m%d_%H%M%S"), - ), + default=None, help=( "Optional. Temp folder for the generated Agent Engine source files." " If the folder already exists, its contents will be removed." - " (default: a timestamped folder in the system temp directory)." + " (default: a timestamped folder in the current working directory)." + ), +) +@click.option( + "--adk_app_object", + type=str, + default=None, + help=( + "Optional. Python object corresponding to the root ADK agent or app." + " It can only be `root_agent` or `app`. (default: `root_agent`)" ), ) @click.option( @@ -1561,12 +1589,8 @@ def cli_deploy_cloud_run( @click.option( "--absolutize_imports", type=bool, - default=True, - help=( - "Optional. Whether to absolutize imports. If True, all relative imports" - " will be converted to absolute import statements (default: True)." - " NOTE: This flag is temporary and will be removed in the future." - ), + default=False, + help=" NOTE: This flag is deprecated and will be removed in the future.", ) @click.option( "--agent_engine_config_file", @@ -1587,15 +1611,17 @@ def cli_deploy_cloud_run( ) def cli_deploy_agent_engine( agent: str, - project: str, - region: str, - staging_bucket: str, + project: Optional[str], + region: Optional[str], + staging_bucket: Optional[str], agent_engine_id: Optional[str], trace_to_cloud: Optional[bool], + api_key: Optional[str], display_name: str, description: str, adk_app: str, - temp_folder: str, + adk_app_object: Optional[str], + temp_folder: Optional[str], env_file: str, requirements_file: str, absolutize_imports: bool, @@ -1605,9 +1631,13 @@ def cli_deploy_agent_engine( Example: + # With Express Mode API Key + adk deploy agent_engine --api_key=[api_key] my_agent + + # With Google Cloud Project and Region adk deploy agent_engine --project=[project] --region=[region] --staging_bucket=[staging_bucket] --display_name=[app_name] - path/to/my_agent + my_agent """ try: cli_deploy.to_agent_engine( @@ -1617,6 +1647,8 @@ def cli_deploy_agent_engine( staging_bucket=staging_bucket, agent_engine_id=agent_engine_id, trace_to_cloud=trace_to_cloud, + api_key=api_key, + adk_app_object=adk_app_object, display_name=display_name, description=description, adk_app=adk_app, diff --git a/tests/unittests/cli/utils/test_cli_deploy.py b/tests/unittests/cli/utils/test_cli_deploy.py index b2a31f70f3..696344eb44 100644 --- a/tests/unittests/cli/utils/test_cli_deploy.py +++ b/tests/unittests/cli/utils/test_cli_deploy.py @@ -95,34 +95,6 @@ def _factory(include_requirements: bool, include_env: bool) -> Path: return _factory -@pytest.fixture -def mock_vertex_ai( - monkeypatch: pytest.MonkeyPatch, -) -> Generator[mock.MagicMock, None, None]: - """Mocks the entire vertexai module and its sub-modules.""" - mock_vertexai = mock.MagicMock() - mock_agent_engines = mock.MagicMock() - mock_vertexai.agent_engines = mock_agent_engines - mock_vertexai.init = mock.MagicMock() - mock_agent_engines.create = mock.MagicMock() - mock_agent_engines.ModuleAgent = mock.MagicMock( - return_value="mock-agent-engine-object" - ) - - sys.modules["vertexai"] = mock_vertexai - sys.modules["vertexai.agent_engines"] = mock_agent_engines - - mock_dotenv = mock.MagicMock() - mock_dotenv.dotenv_values = mock.MagicMock(return_value={"FILE_VAR": "value"}) - sys.modules["dotenv"] = mock_dotenv - - yield mock_vertexai - - del sys.modules["vertexai"] - del sys.modules["vertexai.agent_engines"] - del sys.modules["dotenv"] - - # _resolve_project def test_resolve_project_with_option() -> None: """It should return the explicit project value untouched.""" @@ -216,80 +188,6 @@ def test_get_service_option_by_adk_version( assert actual.rstrip() == expected.rstrip() -@pytest.mark.usefixtures("mock_vertex_ai") -@pytest.mark.parametrize("has_reqs", [True, False]) -@pytest.mark.parametrize("has_env", [True, False]) -def test_to_agent_engine_happy_path( - monkeypatch: pytest.MonkeyPatch, - agent_dir: Callable[[bool, bool], Path], - tmp_path: Path, - has_reqs: bool, - has_env: bool, -) -> None: - """ - Tests the happy path for the `to_agent_engine` function. - """ - src_dir = agent_dir(has_reqs, has_env) - temp_folder = tmp_path / "build" - app_name = src_dir.name - rmtree_recorder = _Recorder() - - monkeypatch.setattr(shutil, "rmtree", rmtree_recorder) - - cli_deploy.to_agent_engine( - agent_folder=str(src_dir), - temp_folder=str(temp_folder), - adk_app="my_adk_app", - staging_bucket="gs://my-staging-bucket", - trace_to_cloud=True, - project="my-gcp-project", - region="us-central1", - display_name="My Test Agent", - description="A test agent.", - ) - - assert (temp_folder / app_name / "agent.py").is_file() - assert (temp_folder / app_name / "__init__.py").is_file() - - adk_app_path = temp_folder / "my_adk_app.py" - assert adk_app_path.is_file() - content = adk_app_path.read_text() - assert f"from {app_name}.agent import root_agent" in content - assert "adk_app = AdkApp(" in content - assert "enable_tracing=True" in content - - reqs_path = temp_folder / app_name / "requirements.txt" - assert reqs_path.is_file() - if not has_reqs: - assert "google-cloud-aiplatform[adk,agent_engines]" in reqs_path.read_text() - - vertexai = sys.modules["vertexai"] - vertexai.init.assert_called_once_with( - project="my-gcp-project", - location="us-central1", - staging_bucket="gs://my-staging-bucket", - ) - - dotenv = sys.modules["dotenv"] - if has_env: - dotenv.dotenv_values.assert_called_once() - expected_env_vars = {"FILE_VAR": "value"} - else: - dotenv.dotenv_values.assert_not_called() - expected_env_vars = None - - vertexai.agent_engines.create.assert_called_once() - create_kwargs = vertexai.agent_engines.create.call_args.kwargs - assert create_kwargs["agent_engine"] == "mock-agent-engine-object" - assert create_kwargs["display_name"] == "My Test Agent" - assert create_kwargs["description"] == "A test agent." - assert create_kwargs["requirements"] == str(reqs_path) - assert create_kwargs["extra_packages"] == [str(temp_folder)] - assert create_kwargs["env_vars"] == expected_env_vars - - assert str(rmtree_recorder.get_last_call_args()[0]) == str(temp_folder) - - @pytest.mark.parametrize("include_requirements", [True, False]) def test_to_gke_happy_path( monkeypatch: pytest.MonkeyPatch, From 0c49aef25170972d3eaaeec6b496b76bdf3b38c2 Mon Sep 17 00:00:00 2001 From: Hyeongjun Kang Date: Tue, 4 Nov 2025 18:29:43 -0800 Subject: [PATCH 289/303] =?UTF-8?q?chore:=20correct=20typo=20in=20pyprojec?= =?UTF-8?q?t.toml=20(swtich=20=E2=86=92=20switch)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge https://github.com/google/adk-python/pull/2651 ### Summary Correct a misspelling in the build configuration: - "swtich" → "switch" in `pyproject.toml`. ### Rationale This is a spelling fix only. It improves readability and avoids potential confusion in configuration. There is no impact on runtime behavior, tests, or public APIs. ### Notes - Follows Conventional Commits style for build/config changes (`build:`). - CLA status should be green via the Google CLA bot. COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/2651 from marsboy02:docs/fix-type-pyproject b78c014c864b1a143ffc157c7a8c807f5f19d31d PiperOrigin-RevId: 828221776 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 149a6ec23d..f27b3b5992 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -206,7 +206,7 @@ asyncio_mode = "auto" python_version = "3.9" exclude = "tests/" plugins = ["pydantic.mypy"] -# Start with non-strict mode, and swtich to strict mode later. +# Start with non-strict mode, and switch to strict mode later. # strict = true disable_error_code = ["import-not-found", "import-untyped", "unused-ignore"] follow_imports = "skip" From 4284c619010b8246c1ecaa011f14b6cc9de512dd Mon Sep 17 00:00:00 2001 From: Nimantha Cooray Date: Tue, 4 Nov 2025 20:40:10 -0800 Subject: [PATCH 290/303] fix: agent evaluations detailed output rows wrapping issue Merge https://github.com/google/adk-python/pull/3381 ### Link to Issue or Description of Change **1. Link to an existing issue (if applicable):** - Closes: #3363 - This PR sets a max column width for the table printed in detailed output of agent evaluations. **Problem:** The detailed output of agent evaluations is not readable due to rows in the table getting wrapped. This happens when there are long text values in cells. 508807185-9e8fe1c3-d04a-43dd-acf9-0befaa1b247d **Solution:** Existing code uses `tabulate` python package to format the table. We can set a maximum column width using `maxcolwidths` parameter. I have set it to `25`. After the fix: 508810179-b91c5bca-fb43-480b-90ff-bca2e909417c ### Testing Plan I have manually tested if the output is properly displayed after changes. Please let me know if any unit tests can be added for this. **Unit Tests:** - [ ] I have added or updated unit tests for my change. - [x] All unit tests pass locally. image **Manual End-to-End (E2E) Tests:** 1. Create a simple agent using adk (preferably an agent that outputs a long text). 2. Create an evalset for this agent. 3. Run the evalset with `print_detailed_results` option and check if the output is properly displayed. If you want a quick setup for testing this, I have a sample repo with an agent and an evalset [here](https://github.com/nimanthadilz/adk-test/tree/reproduce-print-detailed-results). You will have to manually build & install the fixed adk version to test it. ### Checklist - [x] I have read the [CONTRIBUTING.md](https://github.com/google/adk-python/blob/main/CONTRIBUTING.md) document. - [x] I have performed a self-review of my own code. - [x] I have commented my code, particularly in hard-to-understand areas. - [ ] I have added tests that prove my fix is effective or that my feature works. - [x] New and existing unit tests pass locally with my changes. - [x] I have manually tested my changes end-to-end. - [x] Any dependent changes have been merged and published in downstream modules. COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3381 from nimanthadilz:fix-eval-output-rows-wrapping-issue f6d40121f621df60c4596a1c62e0c54e4da309d3 PiperOrigin-RevId: 828265715 --- src/google/adk/cli/cli_eval.py | 4 +++- src/google/adk/evaluation/agent_evaluator.py | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/google/adk/cli/cli_eval.py b/src/google/adk/cli/cli_eval.py index bc472e0907..cce160ae36 100644 --- a/src/google/adk/cli/cli_eval.py +++ b/src/google/adk/cli/cli_eval.py @@ -269,7 +269,9 @@ def pretty_print_eval_result(eval_result: EvalCaseResult): if df_result[col].dtype == "object": df_result[col] = df_result[col].str.wrap(40) - click.echo(tabulate(df_result, headers="keys", tablefmt="grid")) + click.echo( + tabulate(df_result, headers="keys", tablefmt="grid", maxcolwidths=25) + ) click.echo("\n\n") # Few empty lines for visual clarity diff --git a/src/google/adk/evaluation/agent_evaluator.py b/src/google/adk/evaluation/agent_evaluator.py index e8f552879d..8c8359f2f2 100644 --- a/src/google/adk/evaluation/agent_evaluator.py +++ b/src/google/adk/evaluation/agent_evaluator.py @@ -453,7 +453,11 @@ def _print_details( ), }) - print(tabulate(pd.DataFrame(data), headers="keys", tablefmt="grid")) + print( + tabulate( + pd.DataFrame(data), headers="keys", tablefmt="grid", maxcolwidths=25 + ) + ) print("\n\n") # Few empty lines for visual clarity @staticmethod From 63353b2b74e23e97385892415c5a3f2a59c3504f Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Tue, 4 Nov 2025 22:16:22 -0800 Subject: [PATCH 291/303] feat: Refactor gepa sample code and clean-up user demo colab PiperOrigin-RevId: 828293079 --- contributing/samples/gepa/adk_agent.py | 17 +- contributing/samples/gepa/experiment.py | 675 ++++++ .../samples/gepa/gepa_tau_bench.ipynb | 2153 +++++++++++------ contributing/samples/gepa/rater_lib.py | 178 ++ .../gepa/rubric_validation_template.txt | 170 ++ contributing/samples/gepa/run_experiment.py | 116 + 6 files changed, 2526 insertions(+), 783 deletions(-) create mode 100644 contributing/samples/gepa/experiment.py create mode 100644 contributing/samples/gepa/rater_lib.py create mode 100644 contributing/samples/gepa/rubric_validation_template.txt create mode 100644 contributing/samples/gepa/run_experiment.py diff --git a/contributing/samples/gepa/adk_agent.py b/contributing/samples/gepa/adk_agent.py index ad3570dd7a..15e153da79 100644 --- a/contributing/samples/gepa/adk_agent.py +++ b/contributing/samples/gepa/adk_agent.py @@ -31,8 +31,10 @@ from google.adk.agents import loop_agent from google.adk.events import event as event_lib from google.adk.models import google_llm +from google.adk.planners import built_in_planner from google.adk.tools import base_tool from google.genai import types +from retry import api as retry class EnvResponse(Protocol): @@ -134,6 +136,11 @@ def _adk_agent( model=model or 'gemini-2.5-flash', retry_options=_default_retry_options(), ), + planner=built_in_planner.BuiltInPlanner( + thinking_config=types.ThinkingConfig( + thinking_budget=-1, include_thoughts=False + ) + ), instruction=instruction, tools=tools, generate_content_config=types.GenerateContentConfig( @@ -173,11 +180,17 @@ async def _run_async_impl(self, ctx: Any) -> Any: return if last_event.content and last_event.content.parts: - next_message = last_event.content.parts[-1].text + next_message = '\n\n'.join([p.text for p in last_event.content.parts]) else: logging.warn('Empty content with event=%s', last_event) next_message = '' - env_response = self.env.step(types.Part(text=next_message)) + env_response = retry.retry_call( + self.env.step, + fargs=(types.Part(text=next_message),), + tries=3, + delay=2, + backoff=2, + ) output_event = event_lib.Event( content=types.Content( diff --git a/contributing/samples/gepa/experiment.py b/contributing/samples/gepa/experiment.py new file mode 100644 index 0000000000..b7a79caeeb --- /dev/null +++ b/contributing/samples/gepa/experiment.py @@ -0,0 +1,675 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Runs Tau-bench.""" + +from __future__ import annotations + +from concurrent.futures import ThreadPoolExecutor +import dataclasses +from datetime import datetime +import json +import logging +import multiprocessing +import os +import random +import traceback +from typing import Any +from typing import Callable +from typing import TypedDict + +import gepa +from gepa.core.adapter import EvaluationBatch +from gepa.core.adapter import GEPAAdapter +from google.genai import types +from litellm import provider_list +import rater_lib +from retry import retry +from tau_bench.envs import get_env +from tau_bench.envs.retail import tasks_dev +from tau_bench.envs.retail import tasks_test +from tau_bench.envs.retail import tasks_train +from tau_bench.envs.user import UserStrategy +from tau_bench.run import display_metrics +from tau_bench.types import EnvRunResult +from tau_bench.types import RunConfig +import tau_bench_agent as tau_bench_agent_lib + +from google import genai + + +class FilterInferenceWarnings(logging.Filter): + """Filters out Vertex inference warning about non-text parts in response.""" + + def filter(self, record: logging.LogRecord) -> bool: + """Filters out Vertex inference warning about non-text parts in response.""" + if record.levelname != 'WARNING': + return True + message_identifier = record.getMessage() + return not message_identifier.startswith( + 'Warning: there are non-text parts in the response:' + ) + + +def run_tau_bench_rollouts( + config: RunConfig, + print_results: bool = False, + system_instruction: str | None = None, + rater: rater_lib.Rater | None = None, +) -> list[EnvRunResult]: + """Runs a set of tau-bench tasks with a given agent configuration. + + This is a customized version of the standard tau-bench run function, adapted + for this experiment's needs. It handles environment setup, agent creation, + task execution in parallel, and result aggregation. + + Args: + config: A RunConfig object specifying the environment, models, and other + parameters for the run. + print_results: If True, prints the result of each task as it completes. + system_instruction: An optional system instruction to use for the agent, + overriding the default. + rater: An optional rater to evaluate the agent's performance. + + Returns: + A list of EnvRunResult objects, one for each completed task. + """ + if config.env not in ['retail', 'airline']: + raise ValueError('Only retail and airline envs are supported') + if config.model_provider not in provider_list: + raise ValueError('Invalid model provider') + if config.user_model_provider not in provider_list: + raise ValueError('Invalid user model provider') + if config.agent_strategy not in ['tool-calling', 'act', 'react', 'few-shot']: + raise ValueError('Invalid agent strategy') + if config.task_split not in ['train', 'test', 'dev']: + raise ValueError('Invalid task split') + if config.user_strategy not in [item.value for item in UserStrategy]: + raise ValueError('Invalid user strategy') + + random.seed(config.seed) + time_str = datetime.now().strftime('%m%d%H%M%S') + model_name = config.model.split('/')[-1] + ckpt_filename = ( + f'{config.agent_strategy}-{model_name}-{config.temperature}_range_' + f'{config.start_index}-{config.end_index}_user-{config.user_model}-' + f'{config.user_strategy}_{time_str}.json' + ) + ckpt_path = os.path.join(config.log_dir, ckpt_filename) + if not os.path.exists(config.log_dir): + os.makedirs(config.log_dir) + + print(f'Loading user with strategy: {config.user_strategy}') + env = get_env( + config.env, + user_strategy=config.user_strategy, + user_model=config.user_model, + user_provider=config.user_model_provider, + task_split=config.task_split, + ) + if system_instruction: + env.wiki = system_instruction + agent = tau_bench_agent_lib.adk_agent_factory( + tools_info=env.tools_info, + wiki=env.wiki, + config=config, + ) + if config.end_index == -1: + end_index = len(env.tasks) + else: + end_index = min(config.end_index, len(env.tasks)) + results: list[EnvRunResult] = [] + lock = multiprocessing.Lock() + if config.task_ids: + print(f'Running tasks {config.task_ids} (checkpoint path: {ckpt_path})') + else: + print( + f'Running tasks {config.start_index} to {end_index} ' + f'(checkpoint path: {ckpt_path})' + ) + for i in range(config.num_trials): + if config.task_ids: + idxs = config.task_ids + else: + idxs = list(range(config.start_index, end_index)) + if config.shuffle: + random.shuffle(idxs) + + @retry(tries=3, delay=10, backoff=2) + def _run_with_retry(idx: int) -> EnvRunResult: + isolated_env = get_env( + config.env, + user_strategy=config.user_strategy, + user_model=config.user_model, + task_split=config.task_split, + user_provider=config.user_model_provider, + task_index=idx, + ) + if print_results: + print(f'Running task {idx}') + res = agent.solve( + env=isolated_env, + task_index=idx, + ) + + rating = ( + rater(res.messages[1:] if len(res.messages) > 1 else res.messages) + if rater + else None + ) + info = dict(res.info) + info['metrics'] = dict(rating=rating, reward=res.reward) + + if rater: + score = rating['score'] + feedback = {k: v for k, v in rating.items() if k != 'score'} + else: + score = res.reward + feedback = ( + 'The agent successfully resolved all customer issues' + if score > 0 + else 'The agent failed to resolve all customer issues correctly' + ) + + info['feedback'] = feedback + return EnvRunResult( + task_id=idx, + reward=score, + info=info, + traj=res.messages, + trial=i, + ) + + def _run(idx: int) -> EnvRunResult: + try: + result = _run_with_retry(idx) + except Exception as e: + logging.warning('Inference error: %s', str(e)) + result = EnvRunResult( + task_id=idx, + reward=0.0, + info={ + 'error': str(e), + 'traceback': traceback.format_exc(), + 'metrics': dict(reward=0.0), + }, + traj=[], + trial=i, + ) + + if print_results: + print( + '✅' if result.reward == 1 else '❌', + f'task_id={idx}', + ) + print('-----') + with lock: + data = [] + if os.path.exists(ckpt_path): + with open(ckpt_path, 'r') as f: + data = json.load(f) + with open(ckpt_path, 'w') as f: + json.dump(data + [result.model_dump()], f, indent=2) + return result + + with ThreadPoolExecutor(max_workers=config.max_concurrency) as executor: + res = list(executor.map(_run, idxs)) + results.extend(res) + + display_metrics(results) + + if rater: + print('Environment reward:') + display_metrics([ + EnvRunResult( + task_id=r.task_id, + reward=r.info['metrics']['reward'], + info={}, + traj=[], + trial=r.trial, + ) + for r in results + ]) + + with open(ckpt_path, 'w') as f: + json.dump([result.model_dump() for result in results], f, indent=2) + print(f'\n📄 Results saved to {ckpt_path}\n') + return results + + +class TauBenchDataInst(TypedDict): + env: str + task_id: int + task_split: str + + +class TauBenchTrajectory(TypedDict): + + result_traj: list[dict[str, Any]] + + +class TauBenchRolloutOutput(TypedDict): + env: str + task_id: int + reward: float + task_info: dict[str, Any] + + +class TauBenchAdapter( + GEPAAdapter[ + TauBenchDataInst, + TauBenchTrajectory, + TauBenchRolloutOutput, + ] +): + """A GEPA adapter for evaluating agent performance on tau-bench benchmark.""" + + def __init__( + self, + env_name: str, + agent_model: str = 'gemini-2.5-flash', + agent_model_provider: str = 'vertex_ai', + user_model: str = 'gemini-2.5-pro', + user_model_provider: str = 'vertex_ai', + agent_strategy: str = 'tool-calling', + user_strategy: str = 'llm', + system_instruction_name: str = 'system_instruction', + max_concurrency: int = 4, + rater: rater_lib.Rater | None = None, + log_dir: str | None = None, + ): + """Initializes the TauBenchAdapter. + + Args: + env_name: environment + agent_model: The model to use for the agent. + agent_model_provider: The provider for the agent model. + user_model: The model to use for simulating the user. + user_model_provider: The provider for the user model. + agent_strategy: The agent strategy to use (e.g., 'tool-calling'). + user_strategy: The user simulation strategy (e.g., 'llm'). + system_instruction_name: The key in the candidate dictionary that holds + the system instruction. + max_concurrency: The maximum number of tasks to run in parallel. + rater: An optional rater to evaluate the agent's performance. + log_dir: The directory to save traces and other logs. + """ + self._env_name = env_name + self._agent_model = agent_model + self._agent_model_provider = agent_model_provider + self._user_model = user_model + self._user_model_provider = user_model_provider + self._agent_strategy = agent_strategy + self._user_strategy = user_strategy + self._max_concurrency = max_concurrency + self._system_instruction_name = system_instruction_name + self._rater = rater + self._log_dir = log_dir + + def evaluate( + self, + batch: list[TauBenchDataInst], + candidate: dict[str, str], + capture_traces: bool = False, + ) -> EvaluationBatch[TauBenchTrajectory, TauBenchRolloutOutput]: + """Evaluates a candidate prompt on a batch of tau-bench tasks. + + This method is called by GEPA during the optimization loop. It takes a + candidate prompt, runs it against the specified tasks from tau-bench, and + returns the results. + + Args: + batch: A list of task instances to evaluate on. Each instance specifies + the environment and task ID. + candidate: A dictionary containing the components to be evaluated, + including the system instruction. + capture_traces: (Not used in this adapter) Whether to capture detailed + traces. + + Returns: + An EvaluationBatch object containing scores, outputs, and trajectories for + each task in the batch. + """ + del capture_traces # Not used. + env = batch[0]['env'] + task_ids = [inst['task_id'] for inst in batch] + tau_bench_run_config = RunConfig( + env=env, + model=self._agent_model, + model_provider=self._agent_model_provider, + user_model=self._user_model, + user_model_provider=self._user_model_provider, + agent_strategy=self._agent_strategy, + user_strategy=self._user_strategy, + max_concurrency=self._max_concurrency, + task_ids=task_ids, + log_dir=self._log_dir, + task_split=batch[0]['task_split'], + ) + tau_bench_results = run_tau_bench_rollouts( + tau_bench_run_config, + system_instruction=candidate.get(self._system_instruction_name), + rater=self._rater, + ) + + outputs = [] + trajectories = [] + scores = [] + for res in tau_bench_results: + outputs.append( + TauBenchRolloutOutput( + env=env, + task_id=res.task_id, + reward=res.reward, + task_info=res.info, + ) + ) + result_traj = res.traj + trajectories.append(TauBenchTrajectory(result_traj=result_traj)) + scores.append(res.reward) + + return EvaluationBatch( + scores=scores, outputs=outputs, trajectories=trajectories + ) + + def make_reflective_dataset( + self, + candidate: dict[str, str], + eval_batch: EvaluationBatch[TauBenchTrajectory, TauBenchRolloutOutput], + components_to_update: list[str], + ) -> dict[str, list[dict[str, Any]]]: + """Creates a dataset for reflection based on evaluation results. + + This method transforms the trajectories and scores from an evaluation run + into a structured format that a reflection model can use to generate + suggestions for improving the prompt. + + Args: + candidate: The candidate that was evaluated. + eval_batch: The results of the evaluation. + components_to_update: A list of component names that the reflection should + focus on improving. + + Returns: + A dictionary where keys are component names and values are lists of + data instances for reflection. + """ + system_instruction = candidate[self._system_instruction_name] + + env = get_env( + self._env_name, + user_strategy=self._user_strategy, + user_model=self._user_model, + user_provider=self._user_model_provider, + task_split='train', + ) + + tool_definitions = json.dumps( + env.tools_info, + indent=2, + default=str, + ) + inputs = '\n\n'.join([ + f'# System Instruction\n{system_instruction}', + f'# Tool Definitions\n{tool_definitions}', + ]) + ret_d: dict[str, list[dict[str, Any]]] = {} + for comp in components_to_update: + items: list[dict[str, Any]] = [] + trace_instances = list( + zip( + eval_batch.trajectories, + eval_batch.scores, + eval_batch.outputs, + strict=True, + ) + ) + for trace_instance in trace_instances: + traj, _, rollout = trace_instance + messages = traj['result_traj'] + # Remove instructions. + if len(messages) > 1: + messages = messages[1:] + d = { + 'Inputs': inputs, + 'Generated Outputs': json.dumps(messages, indent=2, default=str), + 'Feedback': json.dumps( + rollout['task_info']['feedback'], indent=2, default=str + ), + } + items.append(d) + if items: + ret_d[comp] = items + assert ret_d, ( + 'empty reflective dataset for components ' + f'{[comp for comp in components_to_update]}' + ) + return ret_d + + +_DATASET_SPLITS = { + 'train': tasks_train.TASKS_TRAIN, + 'dev': tasks_dev.TASKS_DEV, + 'test': tasks_test.TASKS_TEST, +} + + +def _get_dataset(ds: Dataset) -> list[TauBenchDataInst]: + task_ids = ds.indexes or list(range(len(_DATASET_SPLITS[ds.split]))) + if ds.max_size is not None: + task_ids = task_ids[: ds.max_size] + random.shuffle(task_ids) + return task_ids + + +def _get_datasets( + config: ExperimentConfig, +) -> dict[str, list[int]]: + """Returns Tau-bench dataset splits.""" + random.seed(config.rnd_seed) + train_task_ids = _get_dataset(config.feedback_dataset) + eval_task_ids = _get_dataset(config.pareto_dataset) + test_task_ids = _get_dataset(config.eval_dataset) + logging.info( + 'Using datasets of size: train=%d, eval=%d, test=%d', + len(train_task_ids), + len(eval_task_ids), + len(test_task_ids), + ) + return dict( + train=train_task_ids, + dev=eval_task_ids, + test=test_task_ids, + ) + + +def _reflection_inference_fn(model: str) -> Callable[[str], str]: + """Returns an inference function on VertexAI based on provided model.""" + client = genai.Client() + + @retry(tries=3, delay=10, backoff=2) + def _fn(prompt): + return client.models.generate_content( + model=model, + contents=prompt, + config=types.GenerateContentConfig( + candidate_count=1, + thinking_config=types.ThinkingConfig( + include_thoughts=True, thinking_budget=-1 + ), + ), + ).text + + return _fn + + +SEED_SYSTEM_INSTRUCTION = ( + 'you are a customer support agent helping customers resolve their ' + 'issues by using the right tools' +) + + +@dataclasses.dataclass(frozen=True) +class Dataset: + + split: str + indexes: list[int] | None = None + max_size: int = None + + +@dataclasses.dataclass +class ExperimentConfig: + """Configures a GEPA experiment on Tau-bench.""" + + tau_bench_env: str + agent_model: str + agent_model_provider: str + user_model: str + user_model_provider: str + max_concurrency: int + num_eval_trials: int + rnd_seed: int + max_metric_calls: int + reflection_model: str + reflection_minibatch_size: int + use_rater: bool + feedback_dataset: Dataset + pareto_dataset: Dataset + eval_dataset: Dataset + + +def _rater(config: ExperimentConfig) -> rater_lib.Rater: + env = get_env( + config.tau_bench_env, + user_strategy='llm', + user_model=config.user_model, + user_provider=config.user_model_provider, + task_split='train', + ) + return rater_lib.Rater(json.dumps(env.tools_info, indent=2)) + + +def run_gepa( + output_dir: str, seed_instructions: str, config: ExperimentConfig +) -> Any: + """Runs the GEPA optimization loop to train a new system instruction. + + Args: + output_dir: The directory to save experiment results and artifacts. + seed_instructions: Agent instructions to initialize the agent with. + config: The experiment configuration. + + Returns: + The results of the GEPA optimization. + """ + # This section sets up and runs the GEPA optimization experiment. + # Here we define all the parameters for the tau-bench environment, the GEPA + # optimization loop, and the models to be used. + datasets = _get_datasets(config) + training_set = [ + TauBenchDataInst( + env=config.tau_bench_env, + task_id=task_id, + task_split=config.feedback_dataset.split, + ) + for task_id in datasets['train'] + ] + eval_set = [ + TauBenchDataInst( + env=config.tau_bench_env, + task_id=task_id, + task_split=config.pareto_dataset.split, + ) + for task_id in datasets['dev'] + ] + system_instruction_name = 'system_instruction' + + tau_bench_adapter = TauBenchAdapter( + env_name=config.tau_bench_env, + agent_model=config.agent_model, + agent_model_provider=config.agent_model_provider, + user_model=config.user_model, + user_model_provider=config.user_model_provider, + agent_strategy='tool-calling', + user_strategy='llm', + system_instruction_name=system_instruction_name, + max_concurrency=config.max_concurrency, + rater=_rater(config) if config.use_rater else None, + log_dir=os.path.join(output_dir, 'traces'), + ) + + gepa_results = gepa.optimize( + seed_candidate={ + system_instruction_name: seed_instructions, + }, + trainset=training_set, + valset=eval_set, + task_lm=None, # this must be None when a custom adapter is used + adapter=tau_bench_adapter, + max_metric_calls=config.max_metric_calls, + reflection_lm=_reflection_inference_fn(config.reflection_model), + reflection_minibatch_size=config.reflection_minibatch_size, + run_dir=output_dir, + ) + json.dump( + gepa_results.to_dict(), + open(os.path.join(output_dir, 'results.json'), 'w'), + ) + return gepa_results + + +def run_eval(output_dir: str, instructions: str, config: ExperimentConfig): + """Runs evaluation on the test set using the given instructions. + + Args: + output_dir: The directory to save evaluation results. + instructions: The system instructions to evaluate. + config: The experiment configuration. + """ + eval_dataset = _get_dataset(config.eval_dataset) + tau_bench_run_config = RunConfig( + env=config.tau_bench_env, + model=config.agent_model, + model_provider=config.agent_model_provider, + user_model=config.user_model, + user_model_provider=config.user_model_provider, + agent_strategy='tool-calling', + user_strategy='llm', + max_concurrency=config.max_concurrency, + num_trials=config.num_eval_trials, + task_ids=eval_dataset, + log_dir=output_dir, + task_split=config.eval_dataset.split, + ) + with open(os.path.join(output_dir, 'prompt.txt'), 'w') as f: + f.write(instructions) + + json.dump( + tau_bench_run_config.model_dump(), + open(os.path.join(output_dir, 'run_config.json'), 'w'), + ) + tau_bench_results = run_tau_bench_rollouts( + tau_bench_run_config, + system_instruction=instructions, + rater=_rater(config) if config.use_rater else None, + ) + total = len(tau_bench_results) + numerator = sum(1 for res in tau_bench_results if res.reward == 1) + print( + f'average reward (total={total}): {numerator/total if total > 0 else 0}' + ) + json.dump( + dict(results=[r.model_dump() for r in tau_bench_results]), + open(os.path.join(output_dir, 'results.json'), 'w'), + ) diff --git a/contributing/samples/gepa/gepa_tau_bench.ipynb b/contributing/samples/gepa/gepa_tau_bench.ipynb index 46814bf46b..448fdc8d9b 100644 --- a/contributing/samples/gepa/gepa_tau_bench.ipynb +++ b/contributing/samples/gepa/gepa_tau_bench.ipynb @@ -6,14 +6,32 @@ "id": "882gPGOGM7-i" }, "source": [ - "# Setup" + "# Optimizing Agent Prompts with GEPA on Tau-bench\n", + "\n", + "This demo notebook walks you through optimizing an AI agent's prompt using the\n", + "**Genetic-Pareto (GEPA)** algorithm. We'll use the Google Agent Development\n", + "Kit (ADK) to build and run our agent in **Tau-bench**, a benchmark designed to\n", + "test agents in realistic, conversational scenarios involving tool use and\n", + "adherence to policies.\n", + "\n", + "**Our Goal:** To take a simple, underperforming prompt and automatically\n", + "improve it using GEPA, increasing the agent's reliability on a customer\n", + "support task.\n", + "\n", + "## Prerequisites\n", + "\n", + "* **Google Cloud Project:** You'll need access to a Google Cloud Project with\n", + " Vertex AI enabled to run the language models.\n", + "* **Installation:** Ensure `google-adk`, `tau-bench`, and\n", + " `google-cloud-aiplatform` are installed.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "id": "GqUHYdvRJ7pt" + "id": "GqUHYdvRJ7pt", + "language": "python" }, "outputs": [], "source": [ @@ -25,890 +43,1460 @@ "%cd ..\n", "!pip install gepa --quiet\n", "\n", - "!pip install retry --quiet\n", - "\n", - "%cd tau-bench/" + "!pip install retry --quiet" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "id": "SdGCJfEtz8Nq" + "id": "SdGCJfEtz8Nq", + "cellView": "form" }, "outputs": [], "source": [ "#@title Setup and Authentication\n", + "from datetime import datetime\n", + "import json\n", "import logging\n", "import os\n", "\n", "from google.genai import types\n", + "import experiment as experiment_lib\n", + "\n", + "\n", + "# @markdown ### ☁️ Configure Vertex AI Access\n", + "# @markdown Enter your Google Cloud Project ID and Location.\n", + "\n", "#@markdown Configure Vertex AI Access\n", "\n", "GCP_PROJECT = '' #@param {type: 'string'}\n", "GCP_LOCATION = 'us-central1' #@param {type: 'string'}\n", "\n", + "# @markdown ---\n", + "# @markdown ### 🧠 Configure LLM Models\n", + "# @markdown We recommend starting with Flash models for speed and cost-efficiency\n", + "# @markdown during optimization, but larger models like `gemini-1.5-pro` can also\n", + "# @markdown be used, especially for the reflection model.\n", + "AGENT_MODEL_NAME = 'gemini-2.5-flash' # @param {type: 'string'}\n", + "USER_MODEL_NAME = 'gemini-2.5-flash' # @param {type: 'string'}\n", + "REFLECTION_MODEL_NAME = 'gemini-2.5-pro' # @param {type: 'string'}\n", + "\n", + "# @markdown ---\n", + "# @markdown ### ⚙️ Configure Experiment Parameters\n", + "# @markdown These control the dataset size, evaluation runs, and GEPA budget.\n", + "# @markdown For a quick demo, keep these values small. For a real run, you might\n", + "# @markdown increase `MAX_DATASET_SIZE` to 50-100 and `MAX_METRIC_CALLS` to 100+.\n", + "MAX_DATASET_SIZE = 10 # @param {type: 'integer'}\n", + "NUM_EVAL_TRIALS = 4 # @param {type: 'integer'}\n", + "MAX_METRIC_CALLS = 100 # @param {type: 'integer'}\n", + "MAX_CONCURRENCY = 4 # @param {type: 'integer'}\n", + "\n", + "# The ADK uses these environment variables to connect to Vertex AI via the\n", + "# Google GenAI SDK.\n", "os.environ['GOOGLE_GENAI_USE_VERTEXAI'] = 'true'\n", "os.environ['GOOGLE_CLOUD_PROJECT'] = GCP_PROJECT\n", "os.environ['GOOGLE_CLOUD_LOCATION'] = GCP_LOCATION\n", "\n", "# Set a logging verbosity suited for this experiment. See\n", "# https://github.com/google/adk-python/issues/1852 for context\n", - "class _FilterInferenceWarnings(logging.Filter):\n", - " \"\"\"Filters out Vertex inference warning about non-text parts in response.\"\"\"\n", - "\n", - " def filter(self, record):\n", - " if record.levelname != 'WARNING':\n", - " return True\n", - " message_identifier = record.getMessage()\n", - " return not message_identifier.startswith(\n", - " 'Warning: there are non-text parts in the response:'\n", - " )\n", - "\n", - "\n", - "types.logger.addFilter(_FilterInferenceWarnings())" + "types.logger.addFilter(experiment_lib.FilterInferenceWarnings())" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": { - "cellView": "form", - "id": "gAERCrlhgiam" + "id": "HbKlznZHvskm" }, - "outputs": [], "source": [ - "#@title Discover Tau-bench Tool Definitions\n", - "# This section dynamically discovers and imports tool definitions from the\n", - "# tau-bench library. The code below is searches for the base 'Tool' class and\n", - "# then looks for all subclasses in the 'retail' and 'airline' domains.\n", - "import sys, pathlib, importlib, inspect, ast\n", - "\n", - "REPO_ROOT = pathlib.Path.cwd()\n", - "PKG_ROOT = REPO_ROOT / 'tau_bench'\n", - "DOMAINS = ['retail', 'airline']\n", - "\n", - "if str(REPO_ROOT) not in sys.path:\n", - " sys.path.insert(0, str(REPO_ROOT))\n", - "\n", - "def import_Tool():\n", - " \"\"\"Finds and imports the base `Tool` class from the tau-bench library.\n", - "\n", - " It tries several known locations for the `Tool` class. As a fallback, it\n", - " searches for any file defining 'class Tool(' and attempts to import from\n", - " there.\n", - "\n", - " Returns:\n", - " The `Tool` class object.\n", - "\n", - " Raises:\n", - " ImportError: If the `Tool` class cannot be located.\n", - " \"\"\"\n", - " candidates = [\n", - " 'tau_bench.core.tool:Tool',\n", - " 'tau_bench.core.tools:Tool',\n", - " 'tau_bench.tools:Tool',\n", - " 'tau_bench.envs.core.tool:Tool',\n", - " 'tau_bench.envs.core.tools:Tool',\n", - " 'tau_bench.envs.tool:Tool',\n", - " ]\n", - " for spec in candidates:\n", - " mod, name = spec.split(':')\n", - " try:\n", - " return getattr(importlib.import_module(mod), name)\n", - " except Exception:\n", - " pass\n", - " # Fallback: find any file that defines 'class Tool(' and import it\n", - " for p in PKG_ROOT.rglob('*.py'):\n", - " try:\n", - " txt = p.read_text(encoding='utf-8', errors='ignore')\n", - " except Exception:\n", - " continue\n", - " if 'class Tool(' in txt:\n", - " mod = '.'.join(p.relative_to(REPO_ROOT).with_suffix('').parts)\n", - " try:\n", - " return getattr(importlib.import_module(mod), 'Tool')\n", - " except Exception:\n", - " pass\n", - " raise ImportError('Could not locate the Tool class in tau_bench')\n", - "\n", - "Tool = import_Tool()\n", - "\n", - "def module_name_from_path(pyfile: pathlib.Path) -> str:\n", - " rel = pyfile.relative_to(REPO_ROOT).with_suffix('')\n", - " return '.'.join(rel.parts)\n", - "\n", - "def ast_inherits_tool(pyfile: pathlib.Path) -> list:\n", - " \"\"\"Returns a list of fully-qualified class names.\n", - "\n", - " These include 'Tool' or '*.Tool'.\n", - " \"\"\"\n", - " out = []\n", - " try:\n", - " code = pyfile.read_text(encoding='utf-8', errors='ignore')\n", - " tree = ast.parse(code, filename=str(pyfile))\n", - " except Exception:\n", - " return out\n", - " modname = module_name_from_path(pyfile)\n", - " for node in ast.walk(tree):\n", - " if isinstance(node, ast.ClassDef):\n", - " inherits = False\n", - " for base in node.bases:\n", - " try:\n", - " base_txt = ast.unparse(base)\n", - " except Exception:\n", - " if hasattr(base, \"id\"):\n", - " base_txt = base.id\n", - " elif hasattr(base, \"attr\"):\n", - " base_txt = base.attr\n", - " else:\n", - " base_txt = ''\n", - " if base_txt == 'Tool' or base_txt.endswith('.Tool'):\n", - " inherits = True\n", - " break\n", - " if inherits:\n", - " out.append(f'{modname}.{node.name}')\n", - " return out\n", - "\n", - "def collect_for_domain(domain: str) -> list:\n", - " \"\"\"Collects all tool classes for a given domain (e.g., 'retail').\n", - "\n", - " It first tries to import modules and check for subclasses of `Tool` using\n", - " `issubclass`. If importing fails for any reason, it falls back to a\n", - " heuristic based on AST parsing to identify tool classes.\n", - "\n", - " Args:\n", - " domain: The domain to search for tools in (e.g., 'retail', 'airline').\n", - "\n", - " Returns:\n", - " A list of tool classes found for the given domain.\n", - " \"\"\"\n", - " tools_dir = PKG_ROOT / 'envs' / domain / 'tools'\n", - " if not tools_dir.exists():\n", - " return []\n", - " results = []\n", - " for pyfile in sorted(tools_dir.rglob('*.py')):\n", - " if pyfile.name == '__init__.py':\n", - " continue\n", - " modname = module_name_from_path(pyfile)\n", - " # Try import-based check first\n", - " try:\n", - " mod = importlib.import_module(modname)\n", - " for _, cls in inspect.getmembers(mod, inspect.isclass):\n", - " if getattr(cls, '__module__', None) != mod.__name__:\n", - " continue\n", - " if cls is Tool:\n", - " continue\n", - " try:\n", - " if issubclass(cls, Tool):\n", - " results.append(cls)\n", - " except Exception:\n", - " pass\n", - " except Exception:\n", - " # Import failed → AST heuristic\n", - " results.extend(ast_inherits_tool(pyfile))\n", - " # Dedup preserve order\n", - " seen, deduped = set(), []\n", - " for q in results:\n", - " if q not in seen:\n", - " seen.add(q)\n", - " deduped.append(q)\n", - " return deduped\n", - "\n", - "tool_classes_by_domain = {d: collect_for_domain(d) for d in DOMAINS}\n", - "tool_definitions_by_domain = {}\n", - "for domain, tool_classes in tool_classes_by_domain.items():\n", - " tool_definitions_by_domain[domain] = []\n", - " for tool_class in tool_classes:\n", - " tool_info = tool_class.get_info()\n", - " if tool_info.get('type') != 'function' or not tool_info.get('function'):\n", - " continue\n", - " tool_definitions_by_domain[domain].append(tool_info['function'])" + "# Initial Inference: A First Look at Our Agent\n", + "\n", + "Before we start optimizing, let's see how our agent performs with a very basic\n", + "prompt. This will help us understand the task and see what a failure case looks\n", + "like.\n", + "\n", + "**The Task:** We're using the **'retail'** environment from Tau-bench. In this\n", + "environment, our agent acts as a customer support agent for an online store. It\n", + "needs to use a set of tools (like `check_order_status`, `issue_refund`, etc.)\n", + "to help a simulated user resolve their issues, while following specific support\n", + "policies (e.g., only refunding orders less than 30 days old).\n", + "\n", + "**Our Agent:** The agent is built with ADK using a standard tool-calling\n", + "strategy. It receives the conversation history and a list of available tools,\n", + "and it must decide whether to respond to the user or call a tool.\n", + "\n", + "**The Initial Prompt:** We'll start with a simple, one-line instruction. As\n", + "we'll see, this is often not enough for an agent to perform reliably in complex\n", + "scenarios." ] }, { - "cell_type": "markdown", + "cell_type": "code", + "source": [ + "#@title Define an initial instruction\n", + "\n", + "# @markdown This is our starting \"seed\" prompt. It's very generic and doesn't give the agent much guidance on how to behave or use tools.\n", + "BASE_SYSTEM_INSTRUCTION = 'you are a customer support agent helping customers resolve their issues by using the right tools' # @param {type: 'string'}\n", + "\n", + "print(BASE_SYSTEM_INSTRUCTION)" + ], "metadata": { - "id": "WQteYUPIM-HQ" + "id": "U8FyG4ep1OLW", + "cellView": "form" }, - "source": [ - "# Classes and Functions" - ] + "execution_count": null, + "outputs": [] }, { "cell_type": "code", "execution_count": null, "metadata": { - "id": "SZVk-I-Kl1uL" + "id": "GNlTPbCXvskn", + "outputId": "02514309-4027-4760-9724-b8cadfbf7c86", + "cellView": "form" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading user with strategy: llm\n", + "Running tasks [1, 2, 9, 12] (checkpoint path: results/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104135627.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Unclosed client session\n", + "client_session: \n", + "Unclosed connector\n", + "connections: ['deque([(, 95679.854398078)])']\n", + "connector: \n", + "Unclosed client session\n", + "client_session: \n", + "Unclosed connector\n", + "connections: ['deque([(, 95859.665770103)])']\n", + "connector: \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.25\n", + "📈 Pass^k\n", + " k=1: 0.25\n", + "\n", + "📄 Results saved to results/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104135627.json\n", + "\n" + ] + } + ], "source": [ - "#@title Core Logic for Tau-Bench Evaluation\n", - "# This section defines the main components for running tau-bench evaluations and\n", - "# integrating them with GEPA:\n", - "# - A custom runner for tau-bench experiments.\n", - "# - Data structures for trajectories and outputs.\n", - "# - A GEPA adapter that bridges GEPA's optimization process with tau-bench.\n", - "\n", + "#@title Initial Inference: A First Look at Our Agent\n", "\n", - "from concurrent.futures import ThreadPoolExecutor\n", - "from datetime import datetime\n", - "import os\n", - "import json\n", - "import multiprocessing\n", - "import random\n", - "from retry import retry\n", - "import traceback\n", - "from typing import List\n", - "\n", - "import tau_bench_agent as tau_bench_agent_lib\n", - "from tau_bench.envs import get_env\n", - "from tau_bench.run import display_metrics\n", "from tau_bench.types import EnvRunResult, RunConfig\n", - "from litellm import provider_list\n", - "from tau_bench.envs.user import UserStrategy\n", - "\n", - "\n", - "def custom_run(\n", - " config: RunConfig,\n", - " print_results: bool = False,\n", - " custom_system_instruction: str = None) -> List[EnvRunResult]:\n", - " \"\"\"Runs a set of tau-bench tasks with a given agent configuration.\n", - "\n", - " This is a customized version of the standard tau-bench run function, adapted\n", - " for this experiment's needs. It handles environment setup, agent creation,\n", - " task execution in parallel, and result aggregation.\n", - "\n", - " Args:\n", - " config: A RunConfig object specifying the environment, models, and other\n", - " parameters for the run.\n", - " print_results: If True, prints the result of each task as it completes.\n", - " custom_system_instruction: An optional system instruction to use for the\n", - " agent, overriding the default.\n", - "\n", - " Returns:\n", - " A list of EnvRunResult objects, one for each completed task.\n", - " \"\"\"\n", - " if config.env not in ['retail', 'airline']:\n", - " raise ValueError('Only retail and airline envs are supported')\n", - " if config.model_provider not in provider_list:\n", - " raise ValueError('Invalid model provider')\n", - " if config.user_model_provider not in provider_list:\n", - " raise ValueError('Invalid user model provider')\n", - " if config.agent_strategy not in [\n", - " 'tool-calling', 'act', 'react', 'few-shot'\n", - " ]:\n", - " raise ValueError('Invalid agent strategy')\n", - " if config.task_split not in ['train', 'test', 'dev']:\n", - " raise ValueError('Invalid task split')\n", - " if config.user_strategy not in [item.value for item in UserStrategy]:\n", - " raise ValueError('Invalid user strategy')\n", - "\n", - " random.seed(config.seed)\n", - " time_str = datetime.now().strftime('%m%d%H%M%S')\n", - " model_name = config.model.split('/')[-1]\n", - " ckpt_filename = (\n", - " f'{config.agent_strategy}-{model_name}-{config.temperature}_range_'\n", - " f'{config.start_index}-{config.end_index}_user-{config.user_model}-'\n", - " f'{config.user_strategy}_{time_str}.json'\n", - " )\n", - " ckpt_path = os.path.join(config.log_dir, ckpt_filename)\n", - " if not os.path.exists(config.log_dir):\n", - " os.makedirs(config.log_dir)\n", - "\n", - " print(f'Loading user with strategy: {config.user_strategy}')\n", - " env = get_env(\n", - " config.env,\n", - " user_strategy=config.user_strategy,\n", - " user_model=config.user_model,\n", - " user_provider=config.user_model_provider,\n", - " task_split=config.task_split,\n", - " )\n", - " if custom_system_instruction:\n", - " env.wiki = custom_system_instruction\n", - " agent = tau_bench_agent_lib.adk_agent_factory(\n", - " tools_info=env.tools_info,\n", - " wiki=env.wiki,\n", - " config=config,\n", - " )\n", - " if config.end_index == -1:\n", - " end_index = len(env.tasks)\n", - " else:\n", - " end_index = min(config.end_index, len(env.tasks))\n", - " results: List[EnvRunResult] = []\n", - " lock = multiprocessing.Lock()\n", - " if config.task_ids and len(config.task_ids) > 0:\n", - " print(f'Running tasks {config.task_ids} (checkpoint path: {ckpt_path})')\n", - " else:\n", - " print(\n", - " f'Running tasks {config.start_index} to {end_index} '\n", - " f'(checkpoint path: {ckpt_path})'\n", - " )\n", - " for i in range(config.num_trials):\n", - " if config.task_ids and len(config.task_ids) > 0:\n", - " idxs = config.task_ids\n", - " else:\n", - " idxs = list(range(config.start_index, end_index))\n", - " if config.shuffle:\n", - " random.shuffle(idxs)\n", - "\n", - " @retry(tries=3, delay=10, backoff=2)\n", - " def _run_with_retry(idx: int) -> EnvRunResult:\n", - " isolated_env = get_env(\n", - " config.env,\n", - " user_strategy=config.user_strategy,\n", - " user_model=config.user_model,\n", - " task_split=config.task_split,\n", - " user_provider=config.user_model_provider,\n", - " task_index=idx,\n", - " )\n", - " if print_results:\n", - " print(f'Running task {idx}')\n", - " res = agent.solve(\n", - " env=isolated_env,\n", - " task_index=idx,\n", - " )\n", - " return EnvRunResult(\n", - " task_id=idx,\n", - " reward=res.reward,\n", - " info=res.info,\n", - " traj=res.messages,\n", - " trial=i,\n", - " )\n", - "\n", - " def _run(idx: int) -> EnvRunResult:\n", - " try:\n", - " result = _run_with_retry(idx)\n", - " except Exception as e:\n", - " logging.warning('Inference error: %s', str(e))\n", - " result = EnvRunResult(\n", - " task_id=idx,\n", - " reward=0.0,\n", - " info={'error': str(e), 'traceback': traceback.format_exc()},\n", - " traj=[],\n", - " trial=i,\n", - " )\n", - "\n", - " if print_results:\n", - " print(\n", - " '✅' if result.reward == 1 else '❌',\n", - " f'task_id={idx}',\n", - " # result.info,\n", - " )\n", - " print('-----')\n", - " with lock:\n", - " data = []\n", - " if os.path.exists(ckpt_path):\n", - " with open(ckpt_path, 'r') as f:\n", - " data = json.load(f)\n", - " with open(ckpt_path, 'w') as f:\n", - " json.dump(data + [result.model_dump()], f, indent=2)\n", - " return result\n", - "\n", - " with ThreadPoolExecutor(max_workers=config.max_concurrency) as executor:\n", - " res = list(executor.map(_run, idxs))\n", - " results.extend(res)\n", - "\n", - " display_metrics(results)\n", - "\n", - " with open(ckpt_path, 'w') as f:\n", - " json.dump([result.model_dump() for result in results], f, indent=2)\n", - " print(f'\\n📄 Results saved to {ckpt_path}\\n')\n", - " return results" + "\n", + "# We will run our ADK agent on two tasks from the Tau-bench 'dev' set.\n", + "# The `run_tau_bench_rollouts` function handles the interaction between the\n", + "# agent and the simulated user environment.\n", + "print('Running initial inference for tasks 1 and 2...')\n", + "inference_results = experiment_lib.run_tau_bench_rollouts(\n", + " config=RunConfig(\n", + " env='retail',\n", + " model=AGENT_MODEL_NAME,\n", + " model_provider='vertex_ai',\n", + " user_model=USER_MODEL_NAME,\n", + " user_model_provider='vertex_ai',\n", + " agent_strategy='tool-calling',\n", + " user_strategy='llm', # The user is simulated by an LLM\n", + " max_concurrency=MAX_CONCURRENCY,\n", + " task_ids=[\n", + " 1,\n", + " 2,\n", + " ], # We'll just run two specific tasks for this initial look\n", + " task_split='dev',\n", + " ),\n", + " system_instruction=BASE_SYSTEM_INSTRUCTION,\n", + ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "id": "hZkwAFkINKG_" + "id": "B3ZEiRgZvskn", + "outputId": "804df2c6-964e-4982-e298-64d14ba2d84e", + "cellView": "form" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--- Trajectory Example ---\n", + "**SYSTEM**: you are a customer support agent helping customers resolve their issues by using the right tools\n", + "\n", + "**USER**: Hello. I need to make an exchange regarding a recent order I received.\n", + "\n", + "**MODEL**: I can help you with that. What is the order ID?\n", + "\n", + "**USER**: The order ID is #W7273336.\n", + "\n", + "**MODEL**: Okay, you want to exchange items from order #W7273336.\n", + "\n", + "Could you please tell me:\n", + "1. What are the item IDs of the products you wish to exchange?\n", + "2. What are the item IDs of the new products you would like to receive?\n", + "3. What payment method would you like to use to cover any price differences or receive refunds (e.g., gift card, credit card)?\n", + "\n", + "**USER**: I don't have the specific item IDs at hand, but I can describe the products. I received a black laser gaming mouse and a 4-foot metal bookshelf. I need to exchange both of these.\n", + "\n", + "**MODEL**: I understand. Since you don't have the item IDs, I'll need to look up the order details to identify them.\n", + "\n", + "\n", + "**MODEL**: 📞 Tool Call: `get_order_details(order_id='#W7273336')`\n", + "\n", + "**USER**: ↪️ Tool Response from `get_order_details`: `{\"order_id\": \"#W7273336\", \"user_id\": \"omar_lopez_3107\", \"address\": {\"address1\": \"959 Broadway\", \"address2\": \"Suite 363\", \"city\": \"Los Angeles\", \"country\": \"USA\", \"state\": \"CA\", \"zip\": \"90339\"}, \"items\": [{\"name\": \"Espresso Machine\", \"product_id\": \"4354588079\", \"item_id\": \"6200867091\", \"price\": 2955.17, \"options\": {\"pressure\": \"19 bar\", \"capacity\": \"1L\", \"type\": \"capsule\"}}, {\"name\": \"Bookshelf\", \"product_id\": \"8600330539\", \"item_id\": \"8018699955\", \"price\": 467.86, \"options\": {\"material\": \"metal\", \"color\": \"brown\", \"height\": \"4 ft\"}}, {\"name\": \"Gaming Mouse\", \"product_id\": \"5713490933\", \"item_id\": \"8214883393\", \"price\": 150.58, \"options\": {\"color\": \"black\", \"sensor type\": \"laser\", \"connectivity\": \"wireless\"}}, {\"name\": \"Pet Bed\", \"product_id\": \"2747247837\", \"item_id\": \"6857426243\", \"price\": 196.53, \"options\": {\"size\": \"medium\", \"material\": \"fleece\", \"color\": \"grey\"}}, {\"name\": \"Air Purifier\", \"product_id\": \"3821016478\", \"item_id\": \"9375701158\", \"price\": 489.5, \"options\": {\"room size\": \"medium\", \"filter type\": \"carbon\", \"features\": \"quiet operation\"}}], \"fulfillments\": [{\"tracking_id\": [\"555296392986\"], \"item_ids\": [\"6200867091\", \"8018699955\", \"8214883393\", \"6857426243\", \"9375701158\"]}], \"status\": \"delivered\", \"payment_history\": [{\"transaction_type\": \"payment\", \"amount\": 4259.64, \"payment_method_id\": \"paypal_1530316\"}]}`\n", + "\n", + "**MODEL**: Thank you for waiting. I've looked up the details for order #W7273336.\n", + "\n", + "The item ID for the black laser gaming mouse is **8214883393**.\n", + "The item ID for the 4-foot metal bookshelf is **8018699955**.\n", + "\n", + "Now, please tell me:\n", + "1. What are the item IDs of the new gaming mouse and bookshelf you would like to receive?\n", + "2. What payment method would you like to use to cover any price differences or receive refunds (e.g., gift card, credit card)? The original payment method for this order was PayPal, with `payment_method_id`: \"paypal_1530316\")?\n", + "\n", + "**USER**: Thank you for providing those. I need to exchange the black laser gaming mouse (item ID 8214883393). I'd like to get a white optical mouse instead. The black doesn't suit my setup, and I prefer optical over laser. I don't care if it's wired or wireless, just whichever is cheaper.\n", + "\n", + "As for the 4-foot metal bookshelf (item ID 8018699955), it's just too short. I need a taller one. I want to exchange it for a 5-feet tall glass bookshelf.\n", + "\n", + "Regarding the glass bookshelf, I'm not sure about the color yet. What are the available color options for the 5-feet glass bookshelves? As for payment, we can discuss that once we figure out the replacement items.\n", + "\n", + "**MODEL**: Okay, I understand. You want to exchange the black laser gaming mouse (item ID 8214883393) for a white optical mouse, and the 4-foot metal bookshelf (item ID 8018699955) for a 5-foot tall glass bookshelf.\n", + "\n", + "Let's find the options for these. First, I'll look up the product types to find suitable replacements.\n", + "\n", + "\n", + "**MODEL**: 📞 Tool Call: `list_all_product_types()`\n", + "\n", + "**USER**: ↪️ Tool Response from `list_all_product_types`: `{\"Action Camera\": \"3377618313\", \"Air Purifier\": \"3821016478\", \"Backpack\": \"2524789262\", \"Bicycle\": \"9783735446\", \"Bluetooth Speaker\": \"4768869376\", \"Bookshelf\": \"8600330539\", \"Coffee Maker\": \"7996920482\", \"Cycling Helmet\": \"7765186836\", \"Desk Lamp\": \"6817146515\", \"Digital Camera\": \"8940227892\", \"Dumbbell Set\": \"7233192239\", \"E-Reader\": \"3801771308\", \"Electric Kettle\": \"1075968781\", \"Electric Toothbrush\": \"7352963235\", \"Espresso Machine\": \"4354588079\", \"Fleece Jacket\": \"8560156827\", \"Gaming Mouse\": \"5713490933\", \"Garden Hose\": \"6679515468\", \"Grill\": \"6819683148\", \"Headphones\": \"6992792935\", \"Hiking Boots\": \"7363354090\", \"Indoor Security Camera\": \"2985987096\", \"Jigsaw Puzzle\": \"1808611083\", \"LED Light Bulb\": \"2696197613\", \"Laptop\": \"4760268021\", \"Luggage Set\": \"5426915165\", \"Makeup Kit\": \"5149340237\", \"Mechanical Keyboard\": \"1656367028\", \"Notebook\": \"2892623495\", \"Office Chair\": \"4794339885\", \"Patio Umbrella\": \"9743693396\", \"Perfume\": \"6858788497\", \"Pet Bed\": \"2747247837\", \"Portable Charger\": \"6942297802\", \"Running Shoes\": \"6938111410\", \"Skateboard\": \"1968349452\", \"Smart Thermostat\": \"4896585277\", \"Smart Watch\": \"6945232052\", \"Smartphone\": \"1801728040\", \"Sneakers\": \"7471004230\", \"Sunglasses\": \"7314138884\", \"T-Shirt\": \"9523456873\", \"Tablet\": \"8024098596\", \"Tea Kettle\": \"9832717871\", \"Vacuum Cleaner\": \"1762337868\", \"Wall Clock\": \"2344688344\", \"Water Bottle\": \"8310926033\", \"Wireless Earbuds\": \"9924732112\", \"Wristwatch\": \"6066914160\", \"Yoga Mat\": \"4635925001\"}`\n", + "\n", + "**MODEL**: Okay, I have the product IDs. Now I'll look up the details for gaming mice and bookshelves to find suitable replacements based on your preferences.\n", + "\n", + "First, let's check for white optical gaming mice.\n", + "\n", + "**MODEL**: 📞 Tool Call: `get_product_details(product_id='5713490933')`\n", + "\n", + "**USER**: ↪️ Tool Response from `get_product_details`: `{\"name\": \"Gaming Mouse\", \"product_id\": \"5713490933\", \"variants\": {\"8896479688\": {\"item_id\": \"8896479688\", \"options\": {\"color\": \"white\", \"sensor type\": \"optical\", \"connectivity\": \"wireless\"}, \"available\": true, \"price\": 143.15}, \"8214883393\": {\"item_id\": \"8214883393\", \"options\": {\"color\": \"black\", \"sensor type\": \"laser\", \"connectivity\": \"wireless\"}, \"available\": true, \"price\": 150.58}, \"7420906769\": {\"item_id\": \"7420906769\", \"options\": {\"color\": \"white\", \"sensor type\": \"laser\", \"connectivity\": \"wireless\"}, \"available\": false, \"price\": 138.47}, \"2193628750\": {\"item_id\": \"2193628750\", \"options\": {\"color\": \"black\", \"sensor type\": \"laser\", \"connectivity\": \"wired\"}, \"available\": true, \"price\": 162.15}, \"2880340443\": {\"item_id\": \"2880340443\", \"options\": {\"color\": \"white\", \"sensor type\": \"optical\", \"connectivity\": \"wired\"}, \"available\": true, \"price\": 137.22}, \"5019835484\": {\"item_id\": \"5019835484\", \"options\": {\"color\": \"RGB\", \"sensor type\": \"laser\", \"connectivity\": \"wired\"}, \"available\": false, \"price\": 138.73}, \"3330317167\": {\"item_id\": \"3330317167\", \"options\": {\"color\": \"black\", \"sensor type\": \"optical\", \"connectivity\": \"wired\"}, \"available\": true, \"price\": 137.32}, \"5796612084\": {\"item_id\": \"5796612084\", \"options\": {\"color\": \"RGB\", \"sensor type\": \"optical\", \"connectivity\": \"wired\"}, \"available\": false, \"price\": 158.89}}}`\n", + "\n", + "**MODEL**: Okay, I've found two white optical gaming mouse options:\n", + "\n", + "* A **wireless white optical mouse** (item ID: 8896479688) for $143.15.\n", + "* A **wired white optical mouse** (item ID: 2880340443) for $137.22.\n", + "\n", + "Since you prefer the cheaper option, the **wired white optical mouse (item ID: 2880340443)** would be the one.\n", + "\n", + "Now, let's look for the 5-foot tall glass bookshelf and its color options.\n", + "\n", + "**MODEL**: 📞 Tool Call: `get_product_details(product_id='8600330539')`\n", + "\n", + "**USER**: ↪️ Tool Response from `get_product_details`: `{\"name\": \"Bookshelf\", \"product_id\": \"8600330539\", \"variants\": {\"8479046075\": {\"item_id\": \"8479046075\", \"options\": {\"material\": \"wood\", \"color\": \"white\", \"height\": \"5 ft\"}, \"available\": true, \"price\": 451.01}, \"8895454203\": {\"item_id\": \"8895454203\", \"options\": {\"material\": \"glass\", \"color\": \"white\", \"height\": \"5 ft\"}, \"available\": true, \"price\": 504.65}, \"6735339143\": {\"item_id\": \"6735339143\", \"options\": {\"material\": \"metal\", \"color\": \"brown\", \"height\": \"6 ft\"}, \"available\": true, \"price\": 471.77}, \"7373893106\": {\"item_id\": \"7373893106\", \"options\": {\"material\": \"glass\", \"color\": \"white\", \"height\": \"4 ft\"}, \"available\": false, \"price\": 531.22}, \"4894369688\": {\"item_id\": \"4894369688\", \"options\": {\"material\": \"glass\", \"color\": \"brown\", \"height\": \"5 ft\"}, \"available\": true, \"price\": 537.01}, \"1673859111\": {\"item_id\": \"1673859111\", \"options\": {\"material\": \"wood\", \"color\": \"black\", \"height\": \"4 ft\"}, \"available\": true, \"price\": 484.96}, \"1111254697\": {\"item_id\": \"1111254697\", \"options\": {\"material\": \"glass\", \"color\": \"white\", \"height\": \"6 ft\"}, \"available\": true, \"price\": 531.57}, \"3778705663\": {\"item_id\": \"3778705663\", \"options\": {\"material\": \"metal\", \"color\": \"black\", \"height\": \"6 ft\"}, \"available\": true, \"price\": 473.48}, \"8649999816\": {\"item_id\": \"8649999816\", \"options\": {\"material\": \"glass\", \"color\": \"brown\", \"height\": \"4 ft\"}, \"available\": false, \"price\": 540.49}, \"2960542086\": {\"item_id\": \"2960542086\", \"options\": {\"material\": \"wood\", \"color\": \"black\", \"height\": \"5 ft\"}, \"available\": true, \"price\": 512.77}, \"7154215719\": {\"item_id\": \"7154215719\", \"options\": {\"material\": \"wood\", \"color\": \"brown\", \"height\": \"6 ft\"}, \"available\": true, \"price\": 505.62}, \"4900661478\": {\"item_id\": \"4900661478\", \"options\": {\"material\": \"glass\", \"color\": \"black\", \"height\": \"5 ft\"}, \"available\": true, \"price\": 463.04}, \"1768466237\": {\"item_id\": \"1768466237\", \"options\": {\"material\": \"glass\", \"color\": \"black\", \"height\": \"3 ft\"}, \"available\": true, \"price\": 549.84}, \"2989722512\": {\"item_id\": \"2989722512\", \"options\": {\"material\": \"glass\", \"color\": \"white\", \"height\": \"3 ft\"}, \"available\": false, \"price\": 455.34}, \"7539442683\": {\"item_id\": \"7539442683\", \"options\": {\"material\": \"metal\", \"color\": \"black\", \"height\": \"4 ft\"}, \"available\": true, \"price\": 461.49}, \"8920458606\": {\"item_id\": \"8920458606\", \"options\": {\"material\": \"wood\", \"color\": \"white\", \"height\": \"4 ft\"}, \"available\": true, \"price\": 510.02}, \"2244749153\": {\"item_id\": \"2244749153\", \"options\": {\"material\": \"wood\", \"color\": \"brown\", \"height\": \"5 ft\"}, \"available\": true, \"price\": 473.82}, \"8018699955\": {\"item_id\": \"8018699955\", \"options\": {\"material\": \"metal\", \"color\": \"brown\", \"height\": \"4 ft\"}, \"available\": true, \"price\": 467.86}}}`\n", + "\n", + "**MODEL**: Great! I've found the options for the 5-foot tall glass bookshelf.\n", + "\n", + "For the **gaming mouse**, you can exchange your black laser gaming mouse (item ID 8214883393) for a **wired white optical mouse** (item ID 2880340443) for $137.22.\n", + "\n", + "For the **bookshelf**, you can exchange your 4-foot metal bookshelf (item ID 8018699955) for a 5-foot tall glass bookshelf. The available colors are:\n", + "* **White** (item ID: 8895454203) for $504.65\n", + "* **Brown** (item ID: 4894369688) for $537.01\n", + "* **Black** (item ID: 4900661478) for $463.04\n", + "\n", + "Which color would you prefer for the 5-foot tall glass bookshelf? Once you confirm the items, we can proceed with the exchange and discuss the payment method for any price differences.\n", + "\n", + "**USER**: Okay, that mouse sounds good. I'll go with the wired white optical mouse (item ID 2880340443).\n", + "\n", + "As for the bookshelf, hmm, white, brown, black... I'm really torn. Given my setup, I think the brown would actually look quite elegant. Yes, let's go with the brown 5-feet glass bookshelf (item ID 4894369688).\n", + "\n", + "**MODEL**: Excellent choices!\n", + "\n", + "So, to confirm, you would like to:\n", + "* Exchange the black laser gaming mouse (item ID 8214883393) for the wired white optical mouse (item ID 2880340443).\n", + "* Exchange the 4-foot metal bookshelf (item ID 8018699955) for the brown 5-foot glass bookshelf (item ID 4894369688).\n", + "\n", + "Before I process the exchange, please confirm which payment method you'd like to use for any price difference. The original payment method for this order was PayPal (payment method ID: paypal_1530316). Would you like to use this, or do you have another payment method in mind?\n", + "\n", + "**USER**: Yes, that's correct for both exchanges. And using PayPal, the original payment method, for any price difference is perfectly fine.\n", + "\n", + "**MODEL**: Great! I will proceed with exchanging the black laser gaming mouse (item ID 8214883393) for the wired white optical mouse (item ID 2880340443), and the 4-foot metal bookshelf (item ID 8018699955) for the brown 5-foot glass bookshelf (item ID 4894369688). Any price difference will be handled using your PayPal account (paypal_1530316).\n", + "\n", + "Please confirm with \"yes\" or \"no\" if you would like to proceed with this exchange.\n", + "\n", + "**USER**: Yes.\n", + "###STOP###\n", + "\n" + ] + } + ], "source": [ - "#@title GEPA Adapter for Tau-bench\n", - "# The TauBenchAdapter is the core component that allows GEPA to optimize prompts\n", - "# for tau-bench. It implements the GEPAAdapter interface, defining how to:\n", - "# 1. `evaluate`: Run a candidate prompt on a batch of tau-bench tasks and\n", - "# return scores.\n", - "# 2. `make_reflective_dataset`: Convert evaluation results into a dataset that\n", - "# can be used for reflection and prompt improvement.\n", - "\n", - "from typing import List, Any, TypedDict\n", - "import json\n", - "import gepa\n", - "from gepa.core.adapter import EvaluationBatch, GEPAAdapter\n", - "\n", - "\n", - "class TauBenchDataInst(TypedDict):\n", - " env: str\n", - " task_id: int\n", - "\n", - "\n", - "class TauBenchTrajectory(TypedDict):\n", - " result_traj: list[dict]\n", + "#@title Let's visualize one of the sampled trajectory\n", + "\n", + "def display_trajectory(trajectory):\n", + " \"\"\"Formats and prints a trajectory for display in Colab.\"\"\"\n", + " print('--- Trajectory Example ---')\n", + " for turn in trajectory:\n", + " role = turn['role']\n", + " parts = turn['parts']\n", + " for part in parts:\n", + " if txt := part.get('text'):\n", + " print(f'**{role.upper()}**: {txt}')\n", + " elif fc := part.get('function_call'):\n", + " args_str = ', '.join(f'{k}={v!r}' for k, v in fc['args'].items())\n", + " print(f'**{role.upper()}**: 📞 Tool Call: `{fc[\"name\"]}({args_str})`')\n", + " elif fr := part.get('function_response'):\n", + " try:\n", + " # result is often a JSON string that needs parsing for readability\n", + " result = json.dumps(json.loads(fr['result']), indent=2)\n", + " print(\n", + " f'**{role.upper()}**: ↪️ Tool Response from'\n", + " f' `{fr[\"name\"]}`:\\n```json\\n{result}\\n```'\n", + " )\n", + " except Exception:\n", + " print(\n", + " f'**{role.upper()}**: ↪️ Tool Response from'\n", + " f' `{fr[\"name\"]}`: `{fr[\"response\"][\"result\"]}`'\n", + " )\n", + " print() # new line after each turn\n", "\n", "\n", - "class TauBenchRolloutOutput(TypedDict):\n", - " env: str\n", - " task_id: int\n", - " reward: float\n", - " task_info: dict\n", + "# Let's inspect the \"trajectory\" of the first run. A trajectory is the full\n", + "# log of the conversation, including user messages, agent thoughts, tool calls,\n", + "# and tool outputs. Analyzing trajectories is key to understanding why an agent\n", + "# fails or succeeds.\n", + "print('\\nDisplaying trajectory for Task 1:')\n", + "display_trajectory(inference_results[0].traj)" + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Evaluate the Initial Prompt: Getting a Baseline\n", "\n", + "Running a couple of examples gives us a qualitative feel, but to systematically\n", + "improve our prompt, we need quantitative metrics. Let's evaluate our basic\n", + "prompt on a small dataset to get a baseline performance score.\n", "\n", - "def refine_tau_bench_trajectory(traj: list[dict[str, Any]]) -> None:\n", - " \"\"\"Removes unnecessary info from the trajectory, in place.\"\"\"\n", - " for content in traj:\n", - " for part in content[\"parts\"]:\n", - " # Drop all fields that are not populated.\n", - " to_drop = []\n", - " for key in part:\n", - " if not part[key]:\n", - " to_drop.append(key)\n", - " for key in to_drop:\n", - " del part[key]\n", + "The primary metric in Tau-bench is **reward**, which is 1 if the agent\n", + "successfully completes the task according to the environment's goals (e.g.,\n", + "user issue resolved, correct tool calls made) and 0 otherwise. Our goal is to\n", + "maximize the average reward." + ], + "metadata": { + "id": "cA70NpvcxanK" + } + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "mVFTLlSq5Lqn", + "outputId": "d22b2c37-ea3d-47fa-b7c0-d1a69e7ae585" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading user with strategy: llm\n", + "Running tasks [9, 8, 4, 2, 5, 3, 1, 0, 7, 6] (checkpoint path: temp_results/20251104150054446083/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104150054.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.525\n", + "📈 Pass^k\n", + " k=1: 0.525\n", + " k=2: 0.31666666666666665\n", + " k=3: 0.175\n", + " k=4: 0.1\n", + "\n", + "📄 Results saved to temp_results/20251104150054446083/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104150054.json\n", + "\n", + "average reward (total=40): 0.525\n" + ] + } + ], + "source": [ + "# For this demo, we'll use a small dataset. In a real-world scenario, you\n", + "# would use larger, distinct datasets for training, validation, and testing.\n", + "demo_dataset = experiment_lib.Dataset(split='dev', max_size=MAX_DATASET_SIZE)\n", + "\n", + "# We configure the experiment parameters, including the models, dataset,\n", + "# evaluation settings, and GEPA budget.\n", + "demo_config = experiment_lib.ExperimentConfig(\n", + " tau_bench_env='retail',\n", + " agent_model=AGENT_MODEL_NAME,\n", + " agent_model_provider='vertex_ai',\n", + " user_model=USER_MODEL_NAME,\n", + " user_model_provider='vertex_ai',\n", + " max_concurrency=MAX_CONCURRENCY,\n", + " num_eval_trials=NUM_EVAL_TRIALS, # We run each task multiple times for consistency\n", + " rnd_seed=42,\n", + " max_metric_calls=MAX_METRIC_CALLS, # GEPA budget: max prompt evaluations\n", + " reflection_model=REFLECTION_MODEL_NAME, # Model for GEPA's reflection step\n", + " reflection_minibatch_size=8,\n", + " use_rater=False, # Optional: LLM rater for nuanced feedback\n", + " # For this demo, we use the same small dataset for all splits.\n", + " # In a real optimization run, you would use separate datasets:\n", + " # - feedback_dataset: For generating trajectories for reflection.\n", + " # - pareto_dataset: For evaluating candidate prompts.\n", + " # - eval_dataset: A final, held-out set to test the optimized prompt.\n", + " feedback_dataset=demo_dataset,\n", + " pareto_dataset=demo_dataset,\n", + " eval_dataset=demo_dataset,\n", + ")\n", "\n", - " # For function calls / responses only keep function names, input arguments\n", - " # and outputs.\n", - " if fc := part.get(\"function_call\"):\n", - " part[\"function_call\"] = dict(name=fc[\"name\"], args=fc[\"args\"])\n", - " if fr := part.get(\"function_response\"):\n", - " part[\"function_response\"] = dict(name=fr[\"name\"], args=fr[\"response\"])\n", + "# We'll save the results of our runs in a temporary directory.\n", + "eval_output_dir = os.path.join(\n", + " 'eval_results', datetime.now().strftime('%Y%m%d%H%M%S%f')\n", + ")\n", + "os.makedirs(eval_output_dir)\n", + "logging.info('Writing to output_dir=%s', eval_output_dir)\n", "\n", "\n", - "class TauBenchAdapter(GEPAAdapter[\n", - " TauBenchDataInst,\n", - " TauBenchTrajectory,\n", - " TauBenchRolloutOutput,\n", - "]):\n", - " \"\"\"A GEPA adapter for evaluating agent performance on tau-bench benchmark.\"\"\"\n", + "# The `run_eval` function runs the agent with the given prompt on the evaluation\n", + "# dataset and prints the average reward.\n", + "print(f'--- Evaluating BASELINE prompt on {MAX_DATASET_SIZE} tasks ---')\n", + "eval_results = experiment_lib.run_eval(\n", + " output_dir=eval_output_dir,\n", + " config=demo_config,\n", + " instructions=BASE_SYSTEM_INSTRUCTION,\n", + ")\n", "\n", - " def __init__(\n", - " self,\n", - " agent_model='gemini-2.5-flash',\n", - " agent_model_provider='vertex_ai',\n", - " user_model='gemini-2.5-pro',\n", - " user_model_provider='vertex_ai',\n", - " agent_strategy='tool-calling',\n", - " user_strategy='llm',\n", - " system_instruction_name='system_instruction',\n", - " tools_description: list[dict[str, Any]] | None = None,\n", - " max_concurrency=4,\n", - " ):\n", - " \"\"\"Initializes the TauBenchAdapter.\n", - "\n", - " Args:\n", - " agent_model: The model to use for the agent.\n", - " agent_model_provider: The provider for the agent model.\n", - " user_model: The model to use for simulating the user.\n", - " user_model_provider: The provider for the user model.\n", - " agent_strategy: The agent strategy to use (e.g., 'tool-calling').\n", - " user_strategy: The user simulation strategy (e.g., 'llm').\n", - " system_instruction_name: The key in the candidate dictionary that holds\n", - " the system instruction.\n", - " tools_description: Describes each of the availble tools. This is used as context\n", - " for the prompt proposer.\n", - " max_concurrency: The maximum number of tasks to run in parallel.\n", - " \"\"\"\n", - " self._agent_model = agent_model\n", - " self._agent_model_provider = agent_model_provider\n", - " self._user_model = user_model\n", - " self._user_model_provider = user_model_provider\n", - " self._agent_strategy = agent_strategy\n", - " self._user_strategy = user_strategy\n", - " self._max_concurrency = max_concurrency\n", - " self._system_instruction_name = system_instruction_name\n", - " self._tools_description = tools_description\n", - "\n", - " def evaluate(\n", - " self,\n", - " batch: list[TauBenchDataInst],\n", - " candidate: dict[str, str],\n", - " capture_traces: bool = False,\n", - " ) -> EvaluationBatch[TauBenchTrajectory, TauBenchRolloutOutput]:\n", - " \"\"\"Evaluates a candidate prompt on a batch of tau-bench tasks.\n", - "\n", - " This method is called by GEPA during the optimization loop. It takes a\n", - " candidate prompt, runs it against the specified tasks from tau-bench, and\n", - " returns the results.\n", - "\n", - " Args:\n", - " batch: A list of task instances to evaluate on. Each instance specifies\n", - " the environment and task ID.\n", - " candidate: A dictionary containing the components to be evaluated,\n", - " including the system instruction.\n", - " capture_traces: (Not used in this adapter) Whether to capture detailed\n", - " traces.\n", - "\n", - " Returns:\n", - " An EvaluationBatch object containing scores, outputs, and trajectories for\n", - " each task in the batch.\n", - " \"\"\"\n", - " del capture_traces # Not used.\n", - " env = batch[0]['env']\n", - " task_ids = [inst['task_id'] for inst in batch]\n", - " tau_bench_run_config = RunConfig(\n", - " env=env,\n", - " model=self._agent_model,\n", - " model_provider=self._agent_model_provider,\n", - " user_model=self._user_model,\n", - " user_model_provider=self._user_model_provider,\n", - " agent_strategy=self._agent_strategy,\n", - " user_strategy=self._user_strategy,\n", - " max_concurrency=self._max_concurrency,\n", - " task_ids=task_ids\n", - " )\n", - " tau_bench_results = custom_run(\n", - " tau_bench_run_config,\n", - " custom_system_instruction=candidate.get(self._system_instruction_name),\n", - " )\n", - "\n", - " outputs = []\n", - " trajectories = []\n", - " scores = []\n", - " for res in tau_bench_results:\n", - " outputs.append(\n", - " TauBenchRolloutOutput(\n", - " env=env,\n", - " task_id=res.task_id,\n", - " reward=res.reward,\n", - " task_info=res.info))\n", - " result_traj = res.traj\n", - " refine_tau_bench_trajectory(result_traj)\n", - " trajectories.append(TauBenchTrajectory(result_traj=result_traj))\n", - " scores.append(res.reward)\n", - "\n", - " return EvaluationBatch(\n", - " scores=scores, outputs=outputs, trajectories=trajectories)\n", - "\n", - " def make_reflective_dataset(\n", - " self,\n", - " candidate: dict[str, str],\n", - " eval_batch: EvaluationBatch[TauBenchTrajectory, TauBenchRolloutOutput],\n", - " components_to_update: list[str]\n", - " ) -> dict[str, list[dict[str, Any]]]:\n", - " \"\"\"Creates a dataset for reflection based on evaluation results.\n", - "\n", - " This method transforms the trajectories and scores from an evaluation run\n", - " into a structured format that a reflection model can use to generate\n", - " suggestions for improving the prompt.\n", - "\n", - " Args:\n", - " candidate: The candidate that was evaluated.\n", - " eval_batch: The results of the evaluation.\n", - " components_to_update: A list of component names that the reflection\n", - " should focus on improving.\n", - "\n", - " Returns:\n", - " A dictionary where keys are component names and values are lists of\n", - " data instances for reflection.\n", - " \"\"\"\n", - " system_instruction = candidate[self._system_instruction_name]\n", - "\n", - " tool_definitions = json.dumps(\n", - " self._tools_description,\n", - " indent=2,\n", - " default=str,\n", - " )\n", - "\n", - " inputs = '\\n\\n'.join([\n", - " f'# System Instruction\\n{system_instruction}',\n", - " f'# Tool Definitions\\n{tool_definitions}',\n", - " ])\n", - " ret_d: dict[str, list[dict[str, Any]]] = {}\n", - " for comp in components_to_update:\n", - " items: list[dict[str, Any]] = []\n", - " trace_instances = list(zip(\n", - " eval_batch.trajectories,\n", - " eval_batch.scores,\n", - " eval_batch.outputs,\n", - " strict=True,\n", - " ))\n", - " for trace_instance in trace_instances:\n", - " traj, score, _ = trace_instance\n", - " if score > 0:\n", - " feedback = f'The agent successfully resolved all customer issues'\n", - " else:\n", - " feedback = (\n", - " f'The agent failed to resolve all customer issues correctly'\n", - " )\n", - " d = {\n", - " 'Inputs': inputs,\n", - " 'Generated Outputs': json.dumps(traj, indent=2, default=str),\n", - " 'Feedback': feedback\n", - " }\n", - " items.append(d)\n", - " if items:\n", - " ret_d[comp] = items\n", - " assert ret_d, (\n", - " 'empty reflective dataset for components '\n", - " f'{[comp for comp in components_to_update]}'\n", - " )\n", - " return ret_d\n" + "# This will show the detailed results of the evaluation run.\n", + "# The most important number is the final \"average reward\".\n", + "print('\\nBaseline evaluation results:')\n", + "print(eval_results)" ] }, { "cell_type": "markdown", - "metadata": { - "id": "_yQOx6WoNLGn" - }, "source": [ - "# Run Experiment" - ] + "# Run Prompt Optimization with GEPA\n", + "\n", + "Now we'll use **GEPA** to automatically improve our prompt.\n", + "\n", + "## What is GEPA?\n", + "\n", + "**GEPA (Genetic-Pareto)** is a prompt optimization algorithm that learns from\n", + "trial and error, using LLM-based reflection to understand failures and guide\n", + "prompt evolution. Here's a simplified view of how it works:\n", + "\n", + "1. **Run & Collect:** It runs the agent with a candidate prompt on a\n", + " few training examples (the `feedback_dataset`) to collect interaction\n", + " trajectories.\n", + "2. **Reflect:** It gives the trajectories to a \"reflection\" model,\n", + " which analyzes what went wrong and generates high-level\n", + " insights or \"rules\" for improvement. For example, it might notice *\"The\n", + " agent should always confirm the order number before issuing a refund.\"*\n", + "3. **Evolve:** It uses these insights to propose new candidate prompts by\n", + " editing existing prompts or combining ideas from different successful ones,\n", + " inspired by genetic algorithms.\n", + "4. **Evaluate & Select:** It evaluates these new prompts on a validation set\n", + " (the `pareto_dataset`) and keeps only the best-performing, diverse set of\n", + " prompts (the \"Pareto frontier\").\n", + "5. **Repeat:** It repeats this loop—collect, reflect, evolve, evaluate—until it\n", + " reaches its budget (`max_metric_calls`).\n", + "\n", + "The result is a detailed and robust prompt that has learned from its mistakes,\n", + "often capturing nuances that are difficult to discover through manual prompt\n", + "engineering." + ], + "metadata": { + "id": "iWZ0yYhfyGuC" + } }, { "cell_type": "code", "execution_count": null, "metadata": { - "id": "bE8_dE_DMqyk" + "id": "nqLkS8Abvskp", + "outputId": "179b299e-df19-453c-c76a-63d5d81784bb", + "cellView": "form" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading user with strategy: llm\n", + "Running tasks [3, 5, 2, 4, 1, 8, 7, 0, 6, 9] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104153507.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.7\n", + "📈 Pass^k\n", + " k=1: 0.7\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104153507.json\n", + "\n", + "Iteration 0: Base program full valset score: 0.7\n", + "Iteration 1: Selected program 0 score: 0.7\n", + "Loading user with strategy: llm\n", + "Running tasks [0, 1, 3, 2] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104153806.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.5\n", + "📈 Pass^k\n", + " k=1: 0.5\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104153806.json\n", + "\n", + "Iteration 1: Proposed new text for system_instruction: You are a customer support agent whose primary goal is to resolve customer issues efficiently and empathetically by utilizing the provided tools. Maintain a polite, helpful, and professional tone at all times.\n", + "\n", + "**Here's a breakdown of your responsibilities and guidelines:**\n", + "\n", + "1. **Initial Interaction & Information Gathering:**\n", + " * Always greet the customer warmly and acknowledge their issue.\n", + " * Prioritize obtaining the customer's order ID first.\n", + " * If the order ID is unavailable, attempt to find the user via `find_user_id_by_email`.\n", + " * If `find_user_id_by_email` returns an error, prompt the user for their first name, last name, and zip code to use `find_user_id_by_name_zip`.\n", + " * Once a `user_id` is successfully identified, use `get_user_details` to retrieve their order history and other relevant information.\n", + " * If multiple orders are associated with the user and the customer hasn't specified, use `get_order_details` for each relevant order to identify the one pertaining to their issue (e.g., by item name or type).\n", + " * For exchanges or modifications, use `get_product_details` to find available options and prices based on the customer's preferences and criteria.\n", + "\n", + "2. **Executing Actions (Cancellation, Exchange, Return, Modification):**\n", + " * **Explain Clearly:** Before attempting any action that modifies an order or user account, clearly explain the details of what will happen, including any associated timelines, requirements, or limitations (e.g., refund processing times, one-time exchange limits, follow-up emails for returns).\n", + " * **Seek Explicit Confirmation:** *Always* ask the user for explicit \"yes\" or \"no\" confirmation before calling any tool that alters their order or account. Reiterate the confirmed details to ensure accuracy.\n", + " * **Tool Calling:** Once explicit confirmation is received and all necessary arguments are gathered, call the appropriate tool. Infer parameters like cancellation `reason` (\"no longer needed\", \"ordered by mistake\") from the user's stated problem.\n", + " * **Report Outcome:** After a tool successfully executes, inform the customer of the outcome and any immediate or next steps they should expect (e.g., \"Your order has been cancelled,\" \"You will receive an email with return instructions shortly\").\n", + "\n", + "3. **Handling Limitations and Escalation:**\n", + " * **Acknowledge Tool Limitations:** Be aware of the specific constraints of your tools (e.g., `cancel_pending_order` only works for pending orders; `exchange_delivered_order_items` can only be done once per delivered order).\n", + " * **Unresolvable Requests:** If a customer's request cannot be fulfilled by any of your available tools (e.g., issuing coupons, direct price matching, or providing immediate refunds for credit card payments outside of the specified processing time), clearly and politely state your inability to perform that specific action.\n", + " * **Offer Transfer to Human Agent:** In cases where you cannot resolve the issue with your tools, or if the user explicitly requests it, offer to `transfer_to_human_agents`.\n", + " * **Comprehensive Summary for Transfer:** When transferring, provide a thorough and concise `summary` for the human agent. This summary should include the user's details, the full history of the conversation, the specific request, what actions were attempted, and why a transfer is necessary. If the user expresses specific conditions for the transfer, acknowledge them and assure the user that the human agent will be fully briefed on their concerns.\n", + "Loading user with strategy: llm\n", + "Running tasks [0, 1, 3, 2] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104153920.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.25\n", + "📈 Pass^k\n", + " k=1: 0.25\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104153920.json\n", + "\n", + "Iteration 1: New subsample score 1.0 is not better than old score 2.0, skipping\n", + "Iteration 2: Selected program 0 score: 0.7\n", + "Loading user with strategy: llm\n", + "Running tasks [6, 8, 4, 5] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104154009.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.5\n", + "📈 Pass^k\n", + " k=1: 0.5\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104154009.json\n", + "\n", + "Iteration 2: Proposed new text for system_instruction: you are a customer support agent helping customers resolve their issues by using the right tools.\n", + "\n", + "Here's how you should operate:\n", + "\n", + "1. **Understand the User's Core Issue:** Carefully identify what the user is trying to achieve (e.g., cancel an order, return an item, change an address, troubleshoot a technical problem).\n", + "\n", + "2. **Information Gathering - Order & User Details:**\n", + " * Always try to obtain the `order_id` first, as many tools require it and it's the most direct way to identify an order. Remember order IDs start with `#W`.\n", + " * If the user doesn't know the `order_id`, ask for their email address to use `find_user_id_by_email`.\n", + " * If the user cannot provide an email or if `find_user_id_by_email` fails to find a user, then ask for their first name, last name, and zip code to use `find_user_id_by_name_zip`.\n", + " * Once a `user_id` is obtained, use `get_user_details` to retrieve all associated `order_id`s, `payment_method`s, and addresses.\n", + " * For each relevant `order_id` (especially if multiple orders are found or the user's request is vague), use `get_order_details` to get its status and `item_id`s. This is crucial for verifying if an action (like cancellation, return, exchange, or modification) is applicable based on the order's status (e.g., 'pending' vs. 'delivered').\n", + " * Note that `product_id` is different from `item_id`. Ensure you are using the correct identifier for the specific tool parameter.\n", + "\n", + "3. **Tool Selection and Application - General Guidelines:**\n", + " * **Prioritize direct resolution with available tools.**\n", + " * Before executing any modifying action (cancel, modify, exchange, return), **always explicitly ask for user confirmation (yes/no)** after clearly explaining the details and implications (e.g., refund time, items involved, new address).\n", + " * **Crucially, once explicit \"yes\" confirmation is received for a modifying action, immediately call the corresponding tool.** Do not wait for further input after a \"yes\" unless the tool description explicitly states to.\n", + " * If a user makes multiple requests or adds to a request (e.g., returning a second item), update the proposed action to include all items and re-confirm the *entire* request with the user before executing the tool.\n", + "\n", + "4. **Tool-Specific Guidelines:**\n", + " * **`cancel_pending_order(order_id, reason)`:**\n", + " * Only for *pending* orders. If an order is \"processed\" or \"delivered\", it cannot be cancelled.\n", + " * The `reason` must be either \"no longer needed\" or \"ordered by mistake\". Infer this from the user's statement.\n", + " * Explain the cancellation and refund details: gift card refunds are immediate, while other payment methods (like PayPal, credit card) take 5-7 business days to process.\n", + " * **`return_delivered_order_items(order_id, item_ids, payment_method_id)`:**\n", + " * Only for *delivered* orders. The order status will change to 'return requested'.\n", + " * Explain return details: the user will receive a follow-up email with return instructions (how and where to send the item back).\n", + " * Determine the `payment_method_id` for the refund (either the original payment method or a gift card, based on user preference). If the user doesn't specify, offer both options.\n", + " * **`exchange_delivered_order_items(order_id, item_ids, new_item_ids, payment_method_id)` / `modify_pending_order_items(order_id, item_ids, new_item_ids, payment_method_id)`:**\n", + " * `exchange_delivered_order_items` is for *delivered* orders; `modify_pending_order_items` is for *pending* orders.\n", + " * For either, this action can only be done once per order.\n", + " * Ensure `new_item_ids` correspond to the same product type as `item_ids` and are in the same position.\n", + " * Determine the `payment_method_id` for any price differences.\n", + " * **`modify_pending_order_address(order_id, ...)` / `modify_pending_order_payment(order_id, ...)`:**\n", + " * These are strictly for *pending* orders.\n", + " * **`modify_user_address(user_id, ...)`:**\n", + " * Modifies the user's default shipping address, not a specific order's address unless explicitly stated by the user that they want to update their default address.\n", + "\n", + "5. **Handling Technical Issues and Faulty Products:**\n", + " * If a user reports a *technical issue* with a delivered product (e.g., \"earbuds not pairing\") and indicates that the product might be \"faulty\" or they have \"tried everything\", **first consider offering a return or exchange using the `return_delivered_order_items` or `exchange_delivered_order_items` tools.** These are direct solutions for defective items.\n", + " * Only if the user explicitly asks for technical troubleshooting *before* a return/exchange, or if the problem is purely informational/troubleshooting-based and cannot be resolved by any modification, return, or exchange tool, should you offer to `transfer_to_human_agents`.\n", + "\n", + "6. **Transfer to Human Agent (`transfer_to_human_agents(summary)`):**\n", + " * Use this tool if the user *explicitly requests* a human agent, or if the user's issue *cannot be resolved with any of the available tools* (e.g., a complex technical troubleshooting issue that genuinely requires expert help beyond a simple return/exchange, or a policy question not covered).\n", + " * Provide a clear, detailed, and concise `summary` of the user's issue and what has been attempted or discovered so far (e.g., user ID, order ID, specific item, problem description, previous troubleshooting steps if known).\n", + "\n", + "7. **Final Communication:** After a successful tool call, inform the user clearly about the outcome, any next steps, and what to expect (e.g., \"refund processed in 5-7 business days\", \"return labels emailed shortly\"). Conclude by asking if there's anything else you can assist with.\n", + "\n", + "8. **Maintain Professionalism:** Be empathetic, clear, and efficient in your communication. Avoid prematurely ending conversations (`###STOP###`) if further action or confirmation is required based on the user's last input or the natural flow of the resolution process.\n", + "Loading user with strategy: llm\n", + "Running tasks [6, 8, 4, 5] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104154113.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.75\n", + "📈 Pass^k\n", + " k=1: 0.75\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104154113.json\n", + "\n", + "Iteration 2: New subsample score 3.0 is better than old score 2.0. Continue to full eval and add to candidate pool.\n", + "Loading user with strategy: llm\n", + "Running tasks [3, 5, 2, 4, 1, 8, 7, 0, 6, 9] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104154203.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.8\n", + "📈 Pass^k\n", + " k=1: 0.8\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104154203.json\n", + "\n", + "Iteration 2: New program is on the linear pareto front\n", + "Iteration 2: Full valset score for new program: 0.8\n", + "Iteration 2: Full train_val score for new program: 0.8\n", + "Iteration 2: Individual valset scores for new program: [1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0]\n", + "Iteration 2: New valset pareto front scores: [1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0]\n", + "Iteration 2: Full valset pareto front score: 0.9\n", + "Iteration 2: Updated valset pareto front programs: [{0, 1}, {0, 1}, {1}, {0}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {1}]\n", + "Iteration 2: Best valset aggregate score so far: 0.8\n", + "Iteration 2: Best program as per aggregate score on train_val: 1\n", + "Iteration 2: Best program as per aggregate score on valset: 1\n", + "Iteration 2: Best score on valset: 0.8\n", + "Iteration 2: Best score on train_val: 0.8\n", + "Iteration 2: Linear pareto front program index: 1\n", + "Iteration 2: New program candidate index: 1\n", + "Iteration 3: Selected program 0 score: 0.7\n", + "Loading user with strategy: llm\n", + "Running tasks [7, 9, 9, 7] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104154520.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.5\n", + "📈 Pass^k\n", + " k=1: 1.0\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104154520.json\n", + "\n", + "Iteration 3: Proposed new text for system_instruction: You are a customer support agent helping customers resolve their issues by using the right tools. Your primary goal is to efficiently resolve customer issues while providing clear and helpful communication.\n", + "\n", + "**General Principles:**\n", + "\n", + "1. **Be Proactive in Information Gathering**:\n", + " * Always try to identify the customer's order by asking for the `order_id` first.\n", + " * If the `order_id` is unknown, attempt to find the `user_id` using their `email` with `find_user_id_by_email`.\n", + " * If the email is not available or the user cannot remember it, use `find_user_id_by_name_zip` with their `first_name`, `last_name`, and `zip` code.\n", + " * Once a `user_id` is obtained, use `get_user_details` to retrieve all associated `orders` and `payment_methods`. This is crucial for subsequent actions involving specific orders or payment details.\n", + " * For each relevant order found, use `get_order_details` to ascertain its status and item specifics.\n", + " * If a customer mentions a product by name but not its `item_id` or `product_id`, use `list_all_product_types` to find the `product_id`, then `get_product_details` to find the specific `item_id` and its variants.\n", + "\n", + "2. **Clear Communication & Confirmation**:\n", + " * Before calling any tool that modifies an order, user details, or initiates a transaction (e.g., `cancel_pending_order`, `exchange_delivered_order_items`, `modify_pending_order_address`, `modify_pending_order_items`, `modify_pending_order_payment`, `modify_user_address`, `return_delivered_order_items`), you **must** explain the exact details of the action and its consequences to the user.\n", + " * **Always** ask for explicit user confirmation (a clear \"yes\" or \"no\") before proceeding with any modifying tool call.\n", + "\n", + "3. **Payment Method Handling**:\n", + " * For any tool requiring a `payment_method_id` (for refunds or charges), you must use the exact ID format (e.g., `credit_card_0000000`, `gift_card_0000000`, `paypal_0000000`).\n", + " * Never guess or use generic terms like \"credit_card_paypal\". If the user states a preference for a payment type (like PayPal) but doesn't provide an ID, first attempt to find a valid `payment_method_id` from the `get_user_details` tool results. If a valid ID is found, use it. If not, inform the user about the limitation and propose alternatives or a transfer to a human agent.\n", + "\n", + "4. **Handling Returns/Exchanges for Delivered Items**:\n", + " * When a user wants to return a delivered item, use `return_delivered_order_items`. Explain that the order status will become 'return requested', a follow-up email with return instructions will be sent, and the refund typically takes 5-7 business days to process.\n", + " * If the user expresses concern about the item's condition (e.g., \"chipped skateboard\" in Example 1) and asks for a guarantee of a full refund, explicitly state that the refund amount is subject to inspection upon return. If the user then insists on a guarantee that cannot be provided, transfer them to a human agent.\n", + " * If the user simply wishes to return an item without specific concerns about its condition impacting the refund (as in Example 4), proceed with the return for the full item price using `return_delivered_order_items`.\n", + " * When a user wants to exchange a delivered item, use `exchange_delivered_order_items`. This can only be done once per delivered order.\n", + "\n", + "5. **Error Recovery**:\n", + " * If a tool call fails (e.g., due to an invalid parameter or a system error), inform the user about the error. Analyze the error message and attempt to correct the issue by gathering more specific information from the user or by using other tools to obtain the correct parameters (e.g., `get_user_details` to find the correct `payment_method_id` after a \"payment method not found\" error).\n", + "\n", + "6. **Transfer to Human Agent**:\n", + " * Only use the `transfer_to_human_agents` tool if:\n", + " * The user explicitly asks to speak with a human agent.\n", + " * You have exhausted all available tools and cannot resolve the user's issue (e.g., you cannot fulfill a user's request for a specific payment method that isn't supported by your tools and no alternative is acceptable to the user, or you cannot guarantee a specific outcome that the tools don't support).\n", + " * When transferring, provide a concise and informative `summary` of the user's issue and the attempts made to resolve it.\n", + "\n", + "**Specific Tool Information to Remember:**\n", + "\n", + "* Order IDs typically start with a '#' symbol, like `#W0000000`.\n", + "* Product IDs are different from item IDs.\n", + "* `cancel_pending_order` is only for orders with `status: \"pending\"`. Refunds go to gift card immediately if paid by gift card; otherwise, 5-7 business days.\n", + "* `modify_pending_order_items` can only be called once per pending order.\n", + "* `exchange_delivered_order_items` and `return_delivered_order_items` can only be done once per delivered order.\n", + "\n", + "Always strive to resolve the customer's issue with the tools at hand before considering a transfer. Prioritize understanding the customer's exact need and adapting your approach accordingly.\n", + "Loading user with strategy: llm\n", + "Running tasks [7, 9, 9, 7] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104154646.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.75\n", + "📈 Pass^k\n", + " k=1: 1.5\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104154646.json\n", + "\n", + "Iteration 3: New subsample score 3.0 is better than old score 2.0. Continue to full eval and add to candidate pool.\n", + "Loading user with strategy: llm\n", + "Running tasks [3, 5, 2, 4, 1, 8, 7, 0, 6, 9] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104154739.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.6\n", + "📈 Pass^k\n", + " k=1: 0.6\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104154739.json\n", + "\n", + "Iteration 3: Full valset score for new program: 0.6\n", + "Iteration 3: Full train_val score for new program: 0.6\n", + "Iteration 3: Individual valset scores for new program: [1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0]\n", + "Iteration 3: New valset pareto front scores: [1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0]\n", + "Iteration 3: Full valset pareto front score: 0.9\n", + "Iteration 3: Updated valset pareto front programs: [{0, 1, 2}, {0, 1, 2}, {1}, {0, 2}, {0, 1, 2}, {0, 1}, {0, 1}, {0, 1, 2}, {0, 1, 2}, {1, 2}]\n", + "Iteration 3: Best valset aggregate score so far: 0.8\n", + "Iteration 3: Best program as per aggregate score on train_val: 1\n", + "Iteration 3: Best program as per aggregate score on valset: 1\n", + "Iteration 3: Best score on valset: 0.8\n", + "Iteration 3: Best score on train_val: 0.8\n", + "Iteration 3: Linear pareto front program index: 1\n", + "Iteration 3: New program candidate index: 2\n", + "Iteration 4: Selected program 1 score: 0.8\n", + "Loading user with strategy: llm\n", + "Running tasks [3, 6, 8, 4] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104154902.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 1.0\n", + "📈 Pass^k\n", + " k=1: 1.0\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104154902.json\n", + "\n", + "Iteration 4: All subsample scores perfect. Skipping.\n", + "Iteration 4: Reflective mutation did not propose a new candidate\n", + "Iteration 5: Selected program 1 score: 0.8\n", + "Loading user with strategy: llm\n", + "Running tasks [0, 7, 9, 1] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104154939.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.75\n", + "📈 Pass^k\n", + " k=1: 0.75\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104154939.json\n", + "\n", + "Iteration 5: Proposed new text for system_instruction: you are a customer support agent helping customers resolve their issues by using the right tools.\n", + "\n", + "Here's how you should operate:\n", + "\n", + "1. **Understand the User's Core Issue:** Carefully identify what the user is trying to achieve (e.g., cancel an order, return an item, change an address, troubleshoot a technical problem).\n", + "\n", + "2. **Information Gathering - Order & User Details:**\n", + " * Always try to obtain the `order_id` first, as many tools require it and it's the most direct way to identify an order. Remember order IDs start with `#W`.\n", + " * If the user doesn't know the `order_id`, ask for their email address to use `find_user_id_by_email`.\n", + " * If the user cannot provide an email or if `find_user_id_by_email` fails to find a user, then ask for their first name, last name, and zip code to use `find_user_id_by_name_zip`.\n", + " * Once a `user_id` is obtained, use `get_user_details` to retrieve all associated `order_id`s, `payment_method`s, and addresses.\n", + " * For each relevant `order_id` (especially if multiple orders are found or the user's request is vague), use `get_order_details` to get its status and `item_id`s. This is crucial for verifying if an action (like cancellation, return, exchange, or modification) is applicable based on the order's status (e.g., 'pending' vs. 'delivered').\n", + " * Note that `product_id` is different from `item_id`. Ensure you are using the correct identifier for the specific tool parameter.\n", + "\n", + "3. **Tool Selection and Application - General Guidelines:**\n", + " * **Prioritize direct resolution with available tools.**\n", + " * Before executing any modifying action (cancel, modify, exchange, return), **always explicitly ask for user confirmation (yes/no)** after clearly explaining the details and implications (e.g., refund time, items involved, new address, total net charge/refund for exchanges).\n", + " * **CRITICALLY IMPORTANT:** Once explicit \"yes\" confirmation is received for a modifying action, **IMMEDIATELY CALL THE CORRESPONDING TOOL.** Do not wait for further input after a \"yes\" unless the tool description explicitly states to do so. The agent's next response *must* be the tool call.\n", + " * If a user makes multiple requests or adds to a request (e.g., returning a second item or modifying an item after initial confirmation), update the proposed action to include all items and re-confirm the *entire* request with the user before executing the tool.\n", + "\n", + "4. **Tool-Specific Guidelines:**\n", + " * **`cancel_pending_order(order_id, reason)`:**\n", + " * Only for *pending* orders. If an order is \"processed\" or \"delivered\", it cannot be cancelled.\n", + " * The `reason` must be either \"no longer needed\" or \"ordered by mistake\". Infer this from the user's statement.\n", + " * Explain the cancellation and refund details: gift card refunds are immediate, while other payment methods (like PayPal, credit card) take 5-7 business days to process.\n", + " * **`return_delivered_order_items(order_id, item_ids, payment_method_id)`:**\n", + " * Only for *delivered* orders. The order status will change to 'return requested'.\n", + " * Explain return details: the user will receive a follow-up email with return instructions (how and where to send the item back).\n", + " * Determine the `payment_method_id` for the refund (either the original payment method or a gift card, based on user preference). If the user doesn't specify, offer both options.\n", + " * **`exchange_delivered_order_items(order_id, item_ids, new_item_ids, payment_method_id)` / `modify_pending_order_items(order_id, item_ids, new_item_ids, payment_method_id)`:**\n", + " * `exchange_delivered_order_items` is for *delivered* orders; `modify_pending_order_items` is for *pending* orders.\n", + " * For either, this action can only be done once per order.\n", + " * Ensure `new_item_ids` correspond to the same product type as `item_ids` and are in the same position.\n", + " * Determine the `payment_method_id` for any price differences. If there's a net charge, use the user's preferred payment method. If there's a net refund, explain it will be issued to their chosen method.\n", + " * When proposing exchanges, clearly state the original item(s), the new item(s), and the calculated price difference (charge or refund).\n", + " * **`modify_pending_order_address(order_id, ...)` / `modify_pending_order_payment(order_id, ...)`:**\n", + " * These are strictly for *pending* orders.\n", + " * **`modify_user_address(user_id, ...)`:**\n", + " * Modifies the user's default shipping address, not a specific order's address unless explicitly stated by the user that they want to update their default address.\n", + "\n", + "5. **Handling Technical Issues and Faulty Products:**\n", + " * If a user reports a *technical issue* with a delivered product (e.g., \"earbuds not pairing\") and indicates that the product might be \"faulty\" or they have \"tried everything\", **first consider offering a return or exchange using the `return_delivered_order_items` or `exchange_delivered_order_items` tools.** These are direct solutions for defective items.\n", + " * Only if the user explicitly asks for technical troubleshooting *before* a return/exchange, or if the problem is purely informational/troubleshooting-based and cannot be resolved by any modification, return, or exchange tool, should you offer to `transfer_to_human_agents`.\n", + "\n", + "6. **Transfer to Human Agent (`transfer_to_human_agents(summary)`):**\n", + " * Use this tool if the user *explicitly requests* a human agent, or if the user's issue *cannot be resolved with any of the available tools* (e.g., a complex technical troubleshooting issue that genuinely requires expert help beyond a simple return/exchange, or a policy question not covered).\n", + " * Provide a clear, detailed, and concise `summary` of the user's issue and what has been attempted or discovered so far (e.g., user ID, order ID, specific item, problem description, previous troubleshooting steps if known).\n", + "\n", + "7. **Final Communication:** After a successful tool call, inform the user clearly about the outcome, any next steps, and what to expect (e.g., \"refund processed in 5-7 business days\", \"return labels emailed shortly\"). Conclude by asking if there's anything else you can assist with.\n", + "\n", + "8. **Maintain Professionalism:** Be empathetic, clear, and efficient in your communication. Avoid prematurely ending conversations (`###STOP###`) if further action or confirmation is required based on the user's last input or the natural flow of the resolution process.\n", + "Loading user with strategy: llm\n", + "Running tasks [0, 7, 9, 1] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104155047.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.75\n", + "📈 Pass^k\n", + " k=1: 0.75\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104155047.json\n", + "\n", + "Iteration 5: New subsample score 3.0 is not better than old score 3.0, skipping\n", + "Iteration 6: Selected program 0 score: 0.7\n", + "Loading user with strategy: llm\n", + "Running tasks [5, 2, 5, 4] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104155134.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.25\n", + "📈 Pass^k\n", + " k=1: 0.3333333333333333\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104155134.json\n", + "\n", + "Iteration 6: Proposed new text for system_instruction: You are a customer support agent. Your primary goal is to resolve customer issues efficiently and accurately by leveraging the provided tools.\n", + "\n", + "**General Guidelines:**\n", + "\n", + "1. **Prioritize Information Gathering:**\n", + " * Always begin by requesting the **order ID**.\n", + " * If the order ID is unavailable, ask for the **email address** associated with the customer's account.\n", + " * If the email is also unavailable or forgotten, then request their **first name, last name, and zip code**.\n", + " * Once a user ID is found (using `find_user_id_by_email` or `find_user_id_by_name_zip`), use `get_user_details` to retrieve all associated orders for that user.\n", + " * For each potential order, use `get_order_details` to inspect its contents and status to identify the specific order the customer is referring to.\n", + "\n", + "2. **Understand Tool Capabilities and Constraints:**\n", + " * **Always read tool descriptions carefully.** Pay close attention to any specific requirements, limitations, or instructions mentioned (e.g., \"can only be done once,\" \"requires explicit user confirmation,\" \"refund timing\").\n", + " * **Crucial for Delivered Order Returns/Exchanges:** The `return_delivered_order_items` and `exchange_delivered_order_items` functions can only be used *once per delivered order* by you.\n", + " * If a customer wants to return or exchange multiple items from a single delivered order, you **must collect all item IDs at once** and include them in a *single call* to the respective tool.\n", + " * If a return or exchange has already been successfully initiated for a delivered order, and the customer subsequently requests another return or exchange for an item from the *same delivered order*, you must inform them that the system only allows one such request per delivered order. In this scenario, you should offer to transfer them to a human agent.\n", + "\n", + "3. **Explain Actions and Obtain Explicit Confirmation:**\n", + " * Before executing *any* action that modifies an order (e.g., cancel, modify, return, exchange) or user details, clearly explain the proposed action, its full implications (e.g., refund processing times, items involved, where the refund will go), and *ask for explicit user confirmation (yes/no)*.\n", + " * **Payment Method Clarity:** If the customer mentions a payment method that conflicts with what is found in their user or order details (e.g., user says credit card, system shows PayPal), always clarify with the customer which payment method they wish to use for any refunds or charges *before* proceeding.\n", + "\n", + "4. **Handle Unresolvable Issues and Escalation:**\n", + " * If a customer's request cannot be fulfilled by your available tools (e.g., requesting an immediate refund for a credit card, requesting a price match, or a second return/exchange on a delivered order when the tool explicitly states it can only be done once), clearly explain *why* it cannot be done due to system or tool limitations.\n", + " * If you are unable to resolve the issue with your tools, or if the user explicitly asks to speak with a human, **transfer the user to a human agent** using the `transfer_to_human_agents` tool. Ensure you provide a concise and accurate summary of the customer's issue, including what has been discussed and what actions (or attempted actions) have taken place.\n", + "\n", + "5. **Maintain Professional and Empathetic Communication:**\n", + " * Always maintain a helpful, patient, and empathetic tone.\n", + " * Keep the customer informed throughout the process about the steps you are taking.\n", + " * Manage customer expectations regarding processing times (e.g., \"refund would take 5-7 business days to process\").\n", + "Loading user with strategy: llm\n", + "Running tasks [5, 2, 5, 4] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104155249.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.5\n", + "📈 Pass^k\n", + " k=1: 0.6666666666666666\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104155249.json\n", + "\n", + "Iteration 6: New subsample score 2.0 is better than old score 1.0. Continue to full eval and add to candidate pool.\n", + "Loading user with strategy: llm\n", + "Running tasks [3, 5, 2, 4, 1, 8, 7, 0, 6, 9] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104155321.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.8\n", + "📈 Pass^k\n", + " k=1: 0.8\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104155321.json\n", + "\n", + "Iteration 6: Full valset score for new program: 0.8\n", + "Iteration 6: Full train_val score for new program: 0.8\n", + "Iteration 6: Individual valset scores for new program: [1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0]\n", + "Iteration 6: New valset pareto front scores: [1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0]\n", + "Iteration 6: Full valset pareto front score: 0.9\n", + "Iteration 6: Updated valset pareto front programs: [{0, 1, 2, 3}, {0, 1, 2, 3}, {1}, {0, 2, 3}, {0, 1, 2, 3}, {0, 1, 3}, {0, 1, 3}, {0, 1, 2, 3}, {0, 1, 2, 3}, {1, 2, 3}]\n", + "Iteration 6: Best valset aggregate score so far: 0.8\n", + "Iteration 6: Best program as per aggregate score on train_val: 1\n", + "Iteration 6: Best program as per aggregate score on valset: 1\n", + "Iteration 6: Best score on valset: 0.8\n", + "Iteration 6: Best score on train_val: 0.8\n", + "Iteration 6: Linear pareto front program index: 1\n", + "Iteration 6: New program candidate index: 3\n", + "Iteration 7: Selected program 1 score: 0.8\n", + "Loading user with strategy: llm\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Running tasks [7, 1, 5, 0] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104155438.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.75\n", + "📈 Pass^k\n", + " k=1: 0.75\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104155438.json\n", + "\n", + "Iteration 7: Proposed new text for system_instruction: you are a customer support agent helping customers resolve their issues by using the right tools.\n", + "\n", + "Here's how you should operate:\n", + "\n", + "1. **Understand the User's Core Issue:** Carefully identify what the user is trying to achieve (e.g., cancel an order, return an item, change an address, troubleshoot a technical problem).\n", + "\n", + "2. **Information Gathering - Order & User Details:**\n", + " * Always try to obtain the `order_id` first, as many tools require it and it's the most direct way to identify an order. Remember order IDs start with `#W`.\n", + " * If the user doesn't know the `order_id`, ask for their email address to use `find_user_id_by_email`.\n", + " * If `find_user_id_by_email` fails to find a user, or if the user cannot provide an email, then ask for their first name, last name, and zip code to use `find_user_id_by_name_zip`.\n", + " * Once a `user_id` is obtained, use `get_user_details` to retrieve all associated `order_id`s, `payment_method`s, and addresses.\n", + " * For each relevant `order_id` (especially if multiple orders are found or the user's request is vague), use `get_order_details` to get its status and `item_id`s. This is crucial for verifying if an action (like cancellation, return, exchange, or modification) is applicable based on the order's status (e.g., 'pending' vs. 'delivered' vs. 'processed' vs. 'return requested' vs. 'exchange requested').\n", + " * Note that `product_id` is different from `item_id`. Ensure you are using the correct identifier for the specific tool parameter.\n", + "\n", + "3. **Tool Selection and Application - General Guidelines:**\n", + " * **Prioritize direct resolution with available tools.**\n", + " * Before executing any modifying action (cancel, modify, exchange, return), **always explicitly ask for user confirmation (yes/no)** after clearly explaining the details and implications (e.g., refund time, items involved, new address, potential charges/refunds).\n", + " * **Crucially, once explicit \"yes\" confirmation is received for a modifying action, immediately call the corresponding tool.** Do not wait for further input after a \"yes\" unless the tool description explicitly states to.\n", + " * If a user makes multiple requests or adds to a request (e.g., returning a second item), update the proposed action to include all items and re-confirm the *entire* request with the user before executing the tool.\n", + "\n", + "4. **Tool-Specific Guidelines:**\n", + " * **`cancel_pending_order(order_id, reason)`:**\n", + " * Only for *pending* orders. If an order is \"processed\" or \"delivered\", it cannot be cancelled.\n", + " * The `reason` must be either \"no longer needed\" or \"ordered by mistake\". Infer this from the user's statement.\n", + " * Explain the cancellation and refund details: gift card refunds are immediate, while other payment methods (like PayPal, credit card) take 5-7 business days to process.\n", + " * **`return_delivered_order_items(order_id, item_ids, payment_method_id)`:**\n", + " * Only for *delivered* orders. The order status will change to 'return requested'.\n", + " * **Crucial Constraint:** This tool can only be used *once per order*. If an `exchange_delivered_order_items` has already been successfully called on the same order, or if this tool has been called already, you cannot call it again.\n", + " * Explain return details: the user will receive a follow-up email with return instructions (how and where to send the item back).\n", + " * Determine the `payment_method_id` for the refund (either the original payment method or a gift card, based on user preference). If the user doesn't specify, offer both options.\n", + " * **`exchange_delivered_order_items(order_id, item_ids, new_item_ids, payment_method_id)` / `modify_pending_order_items(order_id, item_ids, new_item_ids, payment_method_id)`:**\n", + " * `exchange_delivered_order_items` is for *delivered* orders; `modify_pending_order_items` is for *pending* orders.\n", + " * **Crucial Constraint for `exchange_delivered_order_items`:** This tool can only be used *once per order*. If a `return_delivered_order_items` has already been successfully called on the same order, or if this tool has been called already, you cannot call it again.\n", + " * For either, ensure `new_item_ids` correspond to the same product type as `item_ids` and are in the same position.\n", + " * Determine the `payment_method_id` for any price differences (refund or charge). Clearly state the price difference and the resulting refund/charge to the user.\n", + " * **`modify_pending_order_address(order_id, ...)` / `modify_pending_order_payment(order_id, ...)`:**\n", + " * These are strictly for *pending* orders.\n", + " * **`modify_user_address(user_id, ...)`:**\n", + " * Modifies the user's default shipping address, not a specific order's address unless explicitly stated by the user that they want to update their default address.\n", + "\n", + "5. **Handling Technical Issues and Faulty Products:**\n", + " * If a user reports a *technical issue* with a delivered product (e.g., \"earbuds not pairing\") and indicates that the product might be \"faulty\" or they have \"tried everything\", **first consider offering a return or exchange using the `return_delivered_order_items` or `exchange_delivered_order_items` tools.** These are direct solutions for defective items.\n", + " * Only if the user explicitly asks for technical troubleshooting *before* a return/exchange, or if the problem is purely informational/troubleshooting-based and cannot be resolved by any modification, return, or exchange tool, should you offer to `transfer_to_human_agents`.\n", + "\n", + "6. **Transfer to Human Agent (`transfer_to_human_agents(summary)`):**\n", + " * Use this tool if the user *explicitly requests* a human agent.\n", + " * Use this tool if the user's issue *cannot be resolved with any of the available tools* due to their limitations (e.g., attempting a second exchange/return on a delivered order, a complex technical troubleshooting issue that genuinely requires expert help beyond a simple return/exchange, or a policy question not covered by tools).\n", + " * Provide a clear, detailed, and concise `summary` of the user's issue and what has been attempted or discovered so far (e.g., user ID, order ID, specific item, problem description, previous troubleshooting steps if known, and the specific tool limitation encountered).\n", + "\n", + "7. **Final Communication:** After a successful tool call, inform the user clearly about the outcome, any next steps, and what to expect (e.g., \"refund processed in 5-7 business days\", \"return labels emailed shortly\"). Conclude by asking if there's anything else you can assist with.\n", + "\n", + "8. **Maintain Professionalism:** Be empathetic, clear, and efficient in your communication. Avoid prematurely ending conversations (`###STOP###`) if further action or confirmation is required based on the user's last input or the natural flow of the resolution process.\n", + "Loading user with strategy: llm\n", + "Running tasks [7, 1, 5, 0] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104155551.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.5\n", + "📈 Pass^k\n", + " k=1: 0.5\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104155551.json\n", + "\n", + "Iteration 7: New subsample score 2.0 is not better than old score 3.0, skipping\n", + "Iteration 8: Selected program 3 score: 0.8\n", + "Loading user with strategy: llm\n", + "Running tasks [9, 8, 2, 3] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104155634.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.25\n", + "📈 Pass^k\n", + " k=1: 0.25\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104155634.json\n", + "\n", + "Iteration 8: Proposed new text for system_instruction: You are a customer support agent. Your primary goal is to resolve customer issues efficiently and accurately by leveraging the provided tools.\n", + "\n", + "**General Guidelines for Interaction and Information Gathering:**\n", + "\n", + "1. **Prioritize Information Gathering to Identify the User and Order:**\n", + " * Always begin by requesting the **order ID**.\n", + " * If the order ID is unavailable, ask for the **email address** associated with the customer's account.\n", + " * If the email is also unavailable or forgotten, then request their **first name, last name, and zip code**.\n", + " * Once a user ID is found (using `find_user_id_by_email` or `find_user_id_by_name_zip`), use `get_user_details` to retrieve all associated orders for that user.\n", + " * For each potential order retrieved, use `get_order_details` to inspect its contents and status. Clearly summarize the details of each order to the customer (e.g., items, status) to help them identify the specific order they are referring to.\n", + "\n", + "2. **Understand and Adhere to Tool Capabilities and Constraints:**\n", + " * **Always read tool descriptions carefully.** Pay close attention to any specific requirements, limitations, or instructions mentioned.\n", + " * **Crucial for Delivered Order Returns/Exchanges:** The `return_delivered_order_items` and `exchange_delivered_order_items` functions can only be used *once per delivered order* by you.\n", + " * If a customer wants to return or exchange multiple items from a single delivered order, you **must collect all item IDs at once** and include them in a *single call* to the respective tool.\n", + " * If a return or exchange has already been successfully initiated for a delivered order, and the customer subsequently requests another return or exchange for an item from the *same delivered order*, you must inform them that the system only allows one such request per delivered order. In this scenario, you should offer to transfer them to a human agent.\n", + " * **Crucial for Pending Order Modifications:** The `modify_pending_order_items` function can only be used *once per pending order*.\n", + " * **Product Search Limitations:** Your tools (`get_product_details`, `list_all_product_types`) do not allow you to search for products based on descriptive features (e.g., \"9 bar pressure\", \"capsule\", \"popular items\"). You can only get details for a product if the product ID is explicitly provided, or list broad product types. If a customer asks for product recommendations or to search based on specific, unsearchable features, clearly state this limitation and offer to transfer them to a human agent who may be able to provide such assistance.\n", + "\n", + "3. **Explain Actions, Obtain Explicit Confirmation, and Execute Promptly:**\n", + " * Before executing *any* action that modifies an order (e.g., cancel, modify, return, exchange) or user details, clearly explain the proposed action, its full implications (e.g., refund processing times, items involved, where the refund will go), and *ask for explicit user confirmation (yes/no)*.\n", + " * **Crucially, once explicit user confirmation (e.g., \"Yes, proceed,\" \"Confirm\") is received, immediately execute the corresponding tool call.** Do not wait for further turns before calling the tool if confirmation is given.\n", + " * **Payment Method Clarity:** If the customer mentions a payment method that conflicts with what is found in their user or order details (e.g., user says credit card, system shows PayPal), always clarify with the customer which payment method they wish to use for any refunds or charges *before* proceeding. Be prepared to explain the pros and cons (e.g., processing times) of different payment methods if requested.\n", + "\n", + "4. **Handle Unresolvable Issues and Escalation:**\n", + " * If a customer's request cannot be fulfilled by your available tools (e.g., requesting an immediate refund for a credit card, requesting a price match, or a second return/exchange on a delivered order when the tool explicitly states it can only be done once), clearly explain *why* it cannot be done due to system or tool limitations.\n", + " * If you are unable to resolve the issue with your tools, or if the user explicitly asks to speak with a human, **transfer the user to a human agent** using the `transfer_to_human_agents` tool.\n", + " * Ensure you provide a concise and accurate summary of the customer's issue, including what has been discussed and what actions (or attempted actions) have taken place, so the human agent has full context.\n", + "\n", + "5. **Maintain Professional and Empathetic Communication:**\n", + " * Always maintain a helpful, patient, and empathetic tone.\n", + " * Keep the customer informed throughout the process about the steps you are taking.\n", + " * Manage customer expectations regarding processing times (e.g., \"refund would take 5-7 business days to process\").\n", + "Loading user with strategy: llm\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Running tasks [9, 8, 2, 3] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104155758.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.5\n", + "📈 Pass^k\n", + " k=1: 0.5\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104155758.json\n", + "\n", + "Iteration 8: New subsample score 2.0 is better than old score 1.0. Continue to full eval and add to candidate pool.\n", + "Loading user with strategy: llm\n", + "Running tasks [3, 5, 2, 4, 1, 8, 7, 0, 6, 9] (checkpoint path: temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104155842.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.7\n", + "📈 Pass^k\n", + " k=1: 0.7\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/traces/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104155842.json\n", + "\n", + "Iteration 8: Full valset score for new program: 0.7\n", + "Iteration 8: Full train_val score for new program: 0.7\n", + "Iteration 8: Individual valset scores for new program: [1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0]\n", + "Iteration 8: New valset pareto front scores: [1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0]\n", + "Iteration 8: Full valset pareto front score: 0.9\n", + "Iteration 8: Updated valset pareto front programs: [{0, 1, 2, 3, 4}, {0, 1, 2, 3, 4}, {1}, {0, 2, 3, 4}, {0, 1, 2, 3, 4}, {0, 1, 3, 4}, {0, 1, 3, 4}, {0, 1, 2, 3, 4}, {0, 1, 2, 3, 4}, {1, 2, 3}]\n", + "Iteration 8: Best valset aggregate score so far: 0.8\n", + "Iteration 8: Best program as per aggregate score on train_val: 1\n", + "Iteration 8: Best program as per aggregate score on valset: 1\n", + "Iteration 8: Best score on valset: 0.8\n", + "Iteration 8: Best score on train_val: 0.8\n", + "Iteration 8: Linear pareto front program index: 1\n", + "Iteration 8: New program candidate index: 4\n" + ] + } + ], "source": [ - "#@title Experiment Configuration and Execution\n", - "# This section sets up and runs the GEPA optimization experiment.\n", - "# Here we define all the parameters for the tau-bench environment, the GEPA\n", - "# optimization loop, and the models to be used.\n", - "\n", - "#@markdown Tau-bench config\n", - "tau_bench_env = 'retail' #@param ['retail', 'airline']\n", - "agent_model = 'gemini-2.5-flash' #@param ['gemini-2.5-flash', 'gemini-2.0-flash']\n", - "agent_model_provider = 'vertex_ai' #@param ['vertex_ai', 'google']\n", - "user_model = 'gemini-2.5-flash' #@param ['gemini-2.5-flash', 'gemini-2.5-pro']\n", - "user_model_provider = 'vertex_ai' #@param ['vertex_ai', 'google']\n", - "max_concurrency = 8 #@param {type:\"integer\"}\n", - "num_eval_trials = 4 #@param {type: 'integer'}\n", - "#@markdown GEPA config\n", - "training_set_size = 20 #@param {type:\"integer\"}\n", - "eval_set_size = 20 #@param {type:\"integer\"}\n", - "rnd_seed = 42 #@param {type:\"integer\"}\n", - "max_metric_calls = 500 #@param {type:\"integer\"}\n", - "reflection_model = 'gemini-2.5-pro' #@param ['gemini-2.5-flash', 'gemini-2.5-pro']\n", - "reflection_minibatch_size = 3 #@param {type:\"integer\"}\n", - "\n", - "#@markdown Dataset and Candidate Setup\n", - "random.seed(rnd_seed)\n", - "domain_to_size = {'retail': 115, 'airline': 50}\n", - "all_tasks = set(range(domain_to_size[tau_bench_env]))\n", - "training_task_ids = random.sample(list(all_tasks), training_set_size)\n", - "eval_task_ids = random.sample(\n", - " list(all_tasks - set(training_task_ids)),\n", - " eval_set_size,\n", + "#@title Run GEPA (this might take ~10 minutes)\n", + "# This process can take around 10 minutes for the demo settings, as it\n", + "# involves multiple rounds of running the agent and calling the reflection model.\n", + "# A real run with more metric calls will take longer.\n", + "\n", + "# Create a new directory for the GEPA run artifacts.\n", + "gepa_output_dir = os.path.join(\n", + " 'gepa_results', datetime.now().strftime('%Y%m%d%H%M%S%f')\n", ")\n", - "test_task_ids = list(all_tasks - set(training_task_ids) - set(eval_task_ids))\n", - "\n", - "training_set = [\n", - " TauBenchDataInst(env=tau_bench_env, task_id=task_id)\n", - " for task_id in training_task_ids\n", - "]\n", - "eval_set = [\n", - " TauBenchDataInst(env=tau_bench_env, task_id=task_id)\n", - " for task_id in eval_task_ids\n", - "]\n", - "\n", - "system_instruction_name = 'system_instruction'\n", - "\n", - "SEED_SYSTEM_INSTRUCTION = (\n", - " 'you are a customer support agent helping customers resolve their '\n", - " 'issues by using the right tools'\n", + "os.makedirs(gepa_output_dir)\n", + "logging.info('Writing to output_dir=%s', gepa_output_dir)\n", + "\n", + "# The `run_gepa` function kicks off the optimization loop.\n", + "print(f'--- Running GEPA for {MAX_METRIC_CALLS} metric calls ---')\n", + "gepa_results = experiment_lib.run_gepa(\n", + " output_dir=gepa_output_dir,\n", + " config=demo_config,\n", + " seed_instructions=BASE_SYSTEM_INSTRUCTION,\n", ")\n", "\n", - "seed_candidate = {\n", - " system_instruction_name: SEED_SYSTEM_INSTRUCTION,\n", - "}" + "# The `val_aggregate_scores` attribute shows the performance of the best prompt\n", + "# found at each generation of the GEPA algorithm. You should see the score\n", + "# generally increasing over time as GEPA learns better prompts.\n", + "print('\\n--- GEPA Performance Over Generations (Reward) ---')\n", + "print(list(enumerate(gepa_results.val_aggregate_scores)))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "id": "8ctYtM8HpMM8" + "id": "dn_9mZ5Gvskp", + "outputId": "29cca9fb-dccb-41cc-d1f1-294c268af211", + "cellView": "form" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "you are a customer support agent helping customers resolve their issues by using the right tools.\n", + "\n", + "Here's how you should operate:\n", + "\n", + "1. **Understand the User's Core Issue:** Carefully identify what the user is trying to achieve (e.g., cancel an order, return an item, change an address, troubleshoot a technical problem).\n", + "\n", + "2. **Information Gathering - Order & User Details:**\n", + " * Always try to obtain the `order_id` first, as many tools require it and it's the most direct way to identify an order. Remember order IDs start with `#W`.\n", + " * If the user doesn't know the `order_id`, ask for their email address to use `find_user_id_by_email`.\n", + " * If the user cannot provide an email or if `find_user_id_by_email` fails to find a user, then ask for their first name, last name, and zip code to use `find_user_id_by_name_zip`.\n", + " * Once a `user_id` is obtained, use `get_user_details` to retrieve all associated `order_id`s, `payment_method`s, and addresses.\n", + " * For each relevant `order_id` (especially if multiple orders are found or the user's request is vague), use `get_order_details` to get its status and `item_id`s. This is crucial for verifying if an action (like cancellation, return, exchange, or modification) is applicable based on the order's status (e.g., 'pending' vs. 'delivered').\n", + " * Note that `product_id` is different from `item_id`. Ensure you are using the correct identifier for the specific tool parameter.\n", + "\n", + "3. **Tool Selection and Application - General Guidelines:**\n", + " * **Prioritize direct resolution with available tools.**\n", + " * Before executing any modifying action (cancel, modify, exchange, return), **always explicitly ask for user confirmation (yes/no)** after clearly explaining the details and implications (e.g., refund time, items involved, new address).\n", + " * **Crucially, once explicit \"yes\" confirmation is received for a modifying action, immediately call the corresponding tool.** Do not wait for further input after a \"yes\" unless the tool description explicitly states to.\n", + " * If a user makes multiple requests or adds to a request (e.g., returning a second item), update the proposed action to include all items and re-confirm the *entire* request with the user before executing the tool.\n", + "\n", + "4. **Tool-Specific Guidelines:**\n", + " * **`cancel_pending_order(order_id, reason)`:**\n", + " * Only for *pending* orders. If an order is \"processed\" or \"delivered\", it cannot be cancelled.\n", + " * The `reason` must be either \"no longer needed\" or \"ordered by mistake\". Infer this from the user's statement.\n", + " * Explain the cancellation and refund details: gift card refunds are immediate, while other payment methods (like PayPal, credit card) take 5-7 business days to process.\n", + " * **`return_delivered_order_items(order_id, item_ids, payment_method_id)`:**\n", + " * Only for *delivered* orders. The order status will change to 'return requested'.\n", + " * Explain return details: the user will receive a follow-up email with return instructions (how and where to send the item back).\n", + " * Determine the `payment_method_id` for the refund (either the original payment method or a gift card, based on user preference). If the user doesn't specify, offer both options.\n", + " * **`exchange_delivered_order_items(order_id, item_ids, new_item_ids, payment_method_id)` / `modify_pending_order_items(order_id, item_ids, new_item_ids, payment_method_id)`:**\n", + " * `exchange_delivered_order_items` is for *delivered* orders; `modify_pending_order_items` is for *pending* orders.\n", + " * For either, this action can only be done once per order.\n", + " * Ensure `new_item_ids` correspond to the same product type as `item_ids` and are in the same position.\n", + " * Determine the `payment_method_id` for any price differences.\n", + " * **`modify_pending_order_address(order_id, ...)` / `modify_pending_order_payment(order_id, ...)`:**\n", + " * These are strictly for *pending* orders.\n", + " * **`modify_user_address(user_id, ...)`:**\n", + " * Modifies the user's default shipping address, not a specific order's address unless explicitly stated by the user that they want to update their default address.\n", + "\n", + "5. **Handling Technical Issues and Faulty Products:**\n", + " * If a user reports a *technical issue* with a delivered product (e.g., \"earbuds not pairing\") and indicates that the product might be \"faulty\" or they have \"tried everything\", **first consider offering a return or exchange using the `return_delivered_order_items` or `exchange_delivered_order_items` tools.** These are direct solutions for defective items.\n", + " * Only if the user explicitly asks for technical troubleshooting *before* a return/exchange, or if the problem is purely informational/troubleshooting-based and cannot be resolved by any modification, return, or exchange tool, should you offer to `transfer_to_human_agents`.\n", + "\n", + "6. **Transfer to Human Agent (`transfer_to_human_agents(summary)`):**\n", + " * Use this tool if the user *explicitly requests* a human agent, or if the user's issue *cannot be resolved with any of the available tools* (e.g., a complex technical troubleshooting issue that genuinely requires expert help beyond a simple return/exchange, or a policy question not covered).\n", + " * Provide a clear, detailed, and concise `summary` of the user's issue and what has been attempted or discovered so far (e.g., user ID, order ID, specific item, problem description, previous troubleshooting steps if known).\n", + "\n", + "7. **Final Communication:** After a successful tool call, inform the user clearly about the outcome, any next steps, and what to expect (e.g., \"refund processed in 5-7 business days\", \"return labels emailed shortly\"). Conclude by asking if there's anything else you can assist with.\n", + "\n", + "8. **Maintain Professionalism:** Be empathetic, clear, and efficient in your communication. Avoid prematurely ending conversations (`###STOP###`) if further action or confirmation is required based on the user's last input or the natural flow of the resolution process.\n" + ] + } + ], "source": [ - "#@title Run GEPA Optimization\n", - "# With the configuration and adapter in place, this section creates the adapter\n", - "# instance and calls `gepa.optimize()` to start the Automatic Prompt\n", - "# Optimization (APO) process.\n", - "import litellm\n", - "\n", - "tau_bench_adapter = TauBenchAdapter(\n", - " agent_model=agent_model,\n", - " agent_model_provider=agent_model_provider,\n", - " user_model=user_model,\n", - " user_model_provider=user_model_provider,\n", - " agent_strategy='tool-calling',\n", - " user_strategy='llm',\n", - " system_instruction_name=system_instruction_name,\n", - " tools_description=tool_definitions_by_domain[tau_bench_env],\n", - " max_concurrency=max_concurrency,\n", - ")\n", - "\n", - "gepa_results = gepa.optimize(\n", - " seed_candidate=seed_candidate,\n", - " trainset=training_set,\n", - " valset=eval_set,\n", - " task_lm=None, # this must be None when a custom adapter is used\n", - " adapter=tau_bench_adapter,\n", - " max_metric_calls=max_metric_calls,\n", - " reflection_lm = (\n", - " lambda prompt: litellm.completion_with_retries(\n", - " model=f'vertex_ai/{reflection_model}',\n", - " messages=[{\"role\": \"user\", \"content\": prompt}],\n", - " num_retries=4, initial_delay=1, max_delay=1,\n", - " ).choices[0].message.content\n", - " ),\n", - " reflection_minibatch_size=reflection_minibatch_size,\n", - ")\n", - "list(enumerate(gepa_results.val_aggregate_scores))" + "#@title Visualize the optimized prompt\n", + "# Now, let's look at the final, optimized prompt that GEPA produced.\n", + "# It should be much more detailed than our initial one-line prompt!\n", + "print('\\n--- Optimized Prompt from GEPA ---')\n", + "print(gepa_results.best_candidate['system_instruction'])" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": { - "id": "W3awKFTnbBLW" + "id": "ifB36VOLvskp" }, - "outputs": [], "source": [ - "#@title Evaluate All Candidates\n", - "\n", - "\n", - "# This is the prompt from https://arxiv.org/pdf/2406.12045\n", - "DEFAULT_SYSTEM_INSTRUCTION = '''# Retail agent policy\n", - "\n", - "As a retail agent, you can help users cancel or modify pending orders, return or exchange delivered orders, modify their default user address, or provide information about their own profile, orders, and related products.\n", - "\n", - "- At the beginning of the conversation, you have to authenticate the user identity by locating their user id via email, or via name + zip code. This has to be done even when the user already provides the user id.\n", - "\n", - "- Once the user has been authenticated, you can provide the user with information about order, product, profile information, e.g. help the user look up order id.\n", - "\n", - "- You can only help one user per conversation (but you can handle multiple requests from the same user), and must deny any requests for tasks related to any other user.\n", - "\n", - "- Before taking consequential actions that update the database (cancel, modify, return, exchange), you have to list the action detail and obtain explicit user confirmation (yes) to proceed.\n", - "\n", - "- You should not make up any information or knowledge or procedures not provided from the user or the tools, or give subjective recommendations or comments.\n", - "\n", - "- You should at most make one tool call at a time, and if you take a tool call, you should not respond to the user at the same time. If you respond to the user, you should not make a tool call.\n", - "\n", - "- You should transfer the user to a human agent if and only if the request cannot be handled within the scope of your actions.\n", - "\n", - "## Domain basic\n", - "\n", - "- All times in the database are EST and 24 hour based. For example \"02:30:00\" means 2:30 AM EST.\n", - "\n", - "- Each user has a profile of its email, default address, user id, and payment methods. Each payment method is either a gift card, a paypal account, or a credit card.\n", - "\n", - "- Our retail store has 50 types of products. For each type of product, there are variant items of different options. For example, for a 't shirt' product, there could be an item with option 'color blue size M', and another item with option 'color red size L'.\n", - "\n", - "- Each product has an unique product id, and each item has an unique item id. They have no relations and should not be confused.\n", - "\n", - "- Each order can be in status 'pending', 'processed', 'delivered', or 'cancelled'. Generally, you can only take action on pending or delivered orders.\n", - "\n", - "- Exchange or modify order tools can only be called once. Be sure that all items to be changed are collected into a list before making the tool call!!!\n", - "\n", - "## Cancel pending order\n", - "\n", - "- An order can only be cancelled if its status is 'pending', and you should check its status before taking the action.\n", - "\n", - "- The user needs to confirm the order id and the reason (either 'no longer needed' or 'ordered by mistake') for cancellation.\n", - "\n", - "- After user confirmation, the order status will be changed to 'cancelled', and the total will be refunded via the original payment method immediately if it is gift card, otherwise in 5 to 7 business days.\n", - "\n", - "## Modify pending order\n", - "\n", - "- An order can only be modified if its status is 'pending', and you should check its status before taking the action.\n", - "\n", - "- For a pending order, you can take actions to modify its shipping address, payment method, or product item options, but nothing else.\n", - "\n", - "### Modify payment\n", + "# Evaluate the optimized Prompt\n", "\n", - "- The user can only choose a single payment method different from the original payment method.\n", + "GEPA has given us a new, improved prompt. But how much better is it?\n", "\n", - "- If the user wants the modify the payment method to gift card, it must have enough balance to cover the total amount.\n", - "\n", - "- After user confirmation, the order status will be kept 'pending'. The original payment method will be refunded immediately if it is a gift card, otherwise in 5 to 7 business days.\n", - "\n", - "### Modify items\n", - "\n", - "- This action can only be called once, and will change the order status to 'pending (items modifed)', and the agent will not be able to modify or cancel the order anymore. So confirm all the details are right and be cautious before taking this action. In particular, remember to remind the customer to confirm they have provided all items to be modified.\n", - "\n", - "- For a pending order, each item can be modified to an available new item of the same product but of different product option. There cannot be any change of product types, e.g. modify shirt to shoe.\n", - "\n", - "- The user must provide a payment method to pay or receive refund of the price difference. If the user provides a gift card, it must have enough balance to cover the price difference.\n", - "\n", - "## Return delivered order\n", - "\n", - "- An order can only be returned if its status is 'delivered', and you should check its status before taking the action.\n", - "\n", - "- The user needs to confirm the order id, the list of items to be returned, and a payment method to receive the refund.\n", - "\n", - "- The refund must either go to the original payment method, or an existing gift card.\n", - "\n", - "- After user confirmation, the order status will be changed to 'return requested', and the user will receive an email regarding how to return items.\n", - "\n", - "## Exchange delivered order\n", - "\n", - "- An order can only be exchanged if its status is 'delivered', and you should check its status before taking the action. In particular, remember to remind the customer to confirm they have provided all items to be exchanged.\n", - "\n", - "- For a delivered order, each item can be exchanged to an available new item of the same product but of different product option. There cannot be any change of product types, e.g. modify shirt to shoe.\n", - "\n", - "- The user must provide a payment method to pay or receive refund of the price difference. If the user provides a gift card, it must have enough balance to cover the price difference.\n", - "\n", - "- After user confirmation, the order status will be changed to 'exchange requested', and the user will receive an email regarding how to return items. There is no need to place a new order.\n", - "'''\n", - "\n", - "\n", - "all_system_instructions = [\n", - " DEFAULT_SYSTEM_INSTRUCTION,\n", - " SEED_SYSTEM_INSTRUCTION,\n", - " gepa_results.best_candidate['system_instruction'],\n", - "]\n", - "\n", - "\n", - "system_instruction_to_eval_results = {}\n", - "for system_instruction in all_system_instructions:\n", - " tau_bench_run_config = RunConfig(\n", - " env=tau_bench_env,\n", - " model=agent_model,\n", - " model_provider=agent_model_provider,\n", - " user_model=user_model,\n", - " user_model_provider=user_model_provider,\n", - " agent_strategy='tool-calling',\n", - " user_strategy='llm',\n", - " max_concurrency=max_concurrency,\n", - " num_trials=num_eval_trials,\n", - " task_ids=test_task_ids,\n", - " )\n", - " tau_bench_results = custom_run(\n", - " tau_bench_run_config,\n", - " custom_system_instruction=system_instruction,\n", - " )\n", - " total = len(tau_bench_results)\n", - " numerator = sum(1 for res in tau_bench_results if res.reward == 1)\n", - " print(\n", - " f'average reward (total={total}): {numerator/total if total > 0 else 0}'\n", - " )\n", - " system_instruction_to_eval_results[system_instruction] = tau_bench_results" + "To find out, we'll run the exact same evaluation we did initially, but this\n", + "time using the `best_candidate` prompt from GEPA. We can then directly compare\n", + "the average reward of the baseline prompt with the optimized one. This final\n", + "evaluation on a held-out test set (`eval_dataset`) is the true measure of our\n", + "success. In this demo we are reusing the same dataset for simplicity, but in a\n", + "real scenario, `eval_dataset` should be unseen during optimization." ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "id": "w4Q5hMuERuO6" + "id": "yR1y5zAevskp", + "outputId": "d1485f5a-d7cf-4bfc-e83c-0a03396e958e", + "cellView": "form" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading user with strategy: llm\n", + "Running tasks [5, 2, 8, 3, 1, 9, 4, 7, 6, 0] (checkpoint path: temp_results/20251104153507410436/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104160221.json)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🏆 Average reward: 0.75\n", + "📈 Pass^k\n", + " k=1: 0.75\n", + " k=2: 0.6\n", + " k=3: 0.525\n", + " k=4: 0.5\n", + "\n", + "📄 Results saved to temp_results/20251104153507410436/tool-calling-gemini-2.5-flash-0.0_range_0--1_user-gemini-2.5-flash-llm_1104160221.json\n", + "\n", + "average reward (total=40): 0.75\n" + ] + } + ], "source": [ - "print(gepa_results.best_candidate['system_instruction'])" + "#@title Run evaluation\n", + "\n", + "# Let's create a new directory for this final evaluation run.\n", + "final_eval_dir = os.path.join(\n", + " 'temp_results', 'final_eval', datetime.now().strftime('%Y%m%d%H%M%S%f')\n", + ")\n", + "os.makedirs(final_eval_dir)\n", + "\n", + "print(f'\\n--- Evaluating OPTIMIZED prompt on {MAX_DATASET_SIZE} tasks ---')\n", + "final_eval_results = experiment_lib.run_eval(\n", + " output_dir=final_eval_dir,\n", + " instructions=gepa_results.best_candidate['system_instruction'],\n", + " config=demo_config,\n", + ")\n", + "\n", + "print('\\nOptimized prompt evaluation results:')\n", + "print(final_eval_results)" ] }, + { + "cell_type": "markdown", + "source": [ + "## Conclusion\n", + "\n", + "You should see an improvement in the average reward compared to the\n", + "baseline evaluation. This demonstrates the power of using automated\n", + "prompt optimization techniques like GEPA to improve agent reliability without manual tuning." + ], + "metadata": { + "id": "lwEWN31bzu4L" + } + }, { "cell_type": "code", - "execution_count": null, + "source": [], "metadata": { - "id": "pbG7aBXLRuO6" + "id": "AWCzjpLdzvV-" }, - "outputs": [], - "source": [] + "execution_count": null, + "outputs": [] } ], "metadata": { @@ -917,7 +1505,10 @@ "build_target": "//learning/language/tunelab/tunekit/colab:colab_notebook", "kind": "private" }, - "provenance": [] + "provenance": [], + "collapsed_sections": [ + "cA70NpvcxanK" + ] }, "kernelspec": { "display_name": "Python 3 (ipykernel)", diff --git a/contributing/samples/gepa/rater_lib.py b/contributing/samples/gepa/rater_lib.py new file mode 100644 index 0000000000..739bba07b4 --- /dev/null +++ b/contributing/samples/gepa/rater_lib.py @@ -0,0 +1,178 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Library for rating agent trajectories.""" + +from __future__ import annotations + +import re +from typing import Any + +from google.genai import types +import jinja2 +from retry import retry + +from google import genai + + +def parse_rubric_validation_response( + rubric_val_response: str, +) -> dict[str, str]: + """Parses rubric validation response text into a dictionary. + + Args: + rubric_val_response: The text response from rubric validation. + + Returns: + A dictionary containing parsed property, evidence, rationale, and verdict. + """ + PROPERTY_PATTERN = ( + r'Property:\s*([\s\S]*?)(?=(?:Evidence:|Rationale:|Verdict:|$))' + ) + EVIDENCE_PATTERN = r'Evidence:\s*([\s\S]*?)(?=(?:Rationale:|Verdict:|$))' + RATIONALE_PATTERN = r'Rationale:\s*([\s\S]*?)(?=(?:Evidence:|Verdict:|$))' + VERDICT_PATTERN = r'Verdict:\s*([\s\S]*?)(?=(?:Evidence:|Rationale:|$))' + + property_list = [] + evidence_list = [] + rationale_list = [] + fulfillment_list = [] + property_blocks = rubric_val_response.split('Property: ')[1:] + for property_block in property_blocks: + property_name = re.search(PROPERTY_PATTERN, 'Property: ' + property_block) + if property_name is None: + continue + property_name = property_name.group(1).strip() + property_list.append(property_name) + + evidence_match = re.search(EVIDENCE_PATTERN, property_block, re.DOTALL) + evidence = evidence_match.group(1).strip() if evidence_match else '' + evidence_list.append(evidence) + + rationale_match = re.search(RATIONALE_PATTERN, property_block, re.DOTALL) + rationale = rationale_match.group(1).strip() if rationale_match else '' + rationale_list.append(rationale) + + verdict = re.search(VERDICT_PATTERN, property_block) + if verdict is None: + verdict_str = 'not_found' + else: + verdict_str = verdict.group(1).strip().lower() + if 'yes' in verdict_str: + verdict_str = 'yes' + elif 'no' in verdict_str: + verdict_str = 'no' + elif 'unkown' in verdict_str: + verdict_str = 'unknown' + else: + verdict_str = 'not_found' + fulfillment_list.append(verdict_str) + return dict( + property=property_list[0], + evidence=evidence_list[0], + rationale=rationale_list[0], + verdict=fulfillment_list[0], + ) + + +def format_user_agent_conversation(conv: list[dict[str, Any]]) -> str: + """Formats a conversation between user and agent into a string. + + Args: + conv: A list of conversation turns. + + Returns: + A formatted string representing the conversation. + """ + # conv is a list in this eval data + # if not, manually convert to list to re-use these logics + # if not isinstance(conv, list): + # conv = [conv] + res = '' + turn_idx = 1 + for turn in conv: + # if 'request' in conv[turn]:\ + role = turn['role'] + for part in turn['parts']: + if role == 'user' and (txt := part.get('text')): + res = res + f'USER TURN {turn_idx}:\n' + txt + '\n' + turn_idx += 1 + elif role == 'model' and (txt := part.get('text')): + res = res + f'The agent response is: {txt}' + '\n' + elif fc := part.get('function_call'): + res = ( + res + + f'The agent called the function {fc["name"]} with the following' + f' function arguments: {fc["args"]}.\n' + ) + elif fc := part.get('function_response'): + res = ( + res + + 'The execution result from the agent of function' + f' {fc["name"]} is: \n{fc["args"]}\n' + ) + return res + + +_COMPLETION_RUBRIC_CRITERIA = """The agent fulfilled the user's primary request. Description: It measures if the agent successfully completed the action the user initiated the contact for (e.g., processed a return, provided a tracking number, answered a policy question). A "yes" requires confirmed completion within the transcript.""" + + +class Rater: + """Rates agent trajectories using an LLM based on rubrics.""" + + def __init__(self, tool_declarations: str): + """Initializes the Rater. + + Args: + tool_declarations: JSON string of tool declarations for the agent. + """ + self._client = genai.Client() + self._tool_declarations = tool_declarations + with open('rubric_validation_template.txt') as f: + self._rubric_validation_template = f.read().strip() + + @retry(tries=3, delay=2, backoff=2) + def __call__(self, messages: list[dict[str, Any]]) -> dict[str, Any]: + """Rates a conversation based on rubric criteria. + + Args: + messages: A list of conversation messages between user and agent. + + Returns: + A dictionary containing rating information including score. + """ + env = jinja2.Environment() + env.globals['user_input'] = ( + messages[0].get('parts', [{}])[0].get('text', '') if messages else '' + ) + env.globals['developer_instructions'] = '' + env.globals['tool_declarations'] = self._tool_declarations + env.globals['model_response'] = format_user_agent_conversation(messages) + env.globals['decomposed_rubric'] = '* ' + _COMPLETION_RUBRIC_CRITERIA + contents = env.from_string(self._rubric_validation_template).render() + resp = self._client.models.generate_content( + model='gemini-2.5-pro', + contents=contents, + config=types.GenerateContentConfig( + candidate_count=1, + thinking_config=types.ThinkingConfig( + include_thoughts=True, thinking_budget=-1 + ), + ), + ) + got = parse_rubric_validation_response(resp.text) + got = dict(got) + got['score'] = float(got['verdict'] == 'yes') + got['rating_criteria'] = got.pop('property') + return got diff --git a/contributing/samples/gepa/rubric_validation_template.txt b/contributing/samples/gepa/rubric_validation_template.txt new file mode 100644 index 0000000000..1a99432ff2 --- /dev/null +++ b/contributing/samples/gepa/rubric_validation_template.txt @@ -0,0 +1,170 @@ +# Mission +Your mission is to act as an impartial quality assurance analyst. You will review a conversation transcript between a retail customer and a service agent. Your primary goal is to determine if the agent successfully fulfilled the user's request. + +You will be presented with the conversation and a single property: whether the user's request was fulfilled. You must use the transcript as the sole source of truth to objectively assess the outcome. + +# Rubric +**"yes"**: The agent successfully fulfilled the user's primary request based on clear evidence in the transcript, OR the user did not have an actionable request. +**"no"**: The agent failed to fulfill the user's primary request, the outcome was ambiguous, or the agent provided a resolution that did not align with what the user asked for. + +# Key Evaluation Principles +Your evaluation must follow a two-part process: first, identify the user's primary request, and second, judge the agent's final response and the conversation's outcome against that request. + +1. **Establish the User's Primary Request**: You must first read the entire conversation to understand what the user was trying to achieve. The primary request is the main reason the user initiated the contact. + * Your ONLY source of truth is the full conversation found in `` and ``. + * Examples of primary requests include: + * Returning an item. + * Checking an order status. + * Asking for product information. + * Filing a complaint about a product or service. + * Updating account information. + * If the user has multiple requests, focus on the main, initial one. If the conversation clearly pivots to a new, more important request, use that as the primary one. + +2. **Judge Fulfillment Based on Evidence**: Once you have identified the primary request, you must determine if the agent's actions and statements led to its fulfillment. A request is only considered fulfilled if there is unambiguous evidence in the transcript. + * **Evidence of Fulfillment ("yes")** can include: + * The agent explicitly stating the request is complete (e.g., "I've now processed your refund," "Your tracking number is XYZ."). + * The user explicitly confirming their issue is resolved (e.g., "Great, that's all I needed," "Thank you, that answers my question."). + * The agent providing a complete and direct answer to a question (e.g., User asks for store hours, agent provides them). + * **Evidence of Non-Fulfillment ("no")** can include: + * The agent is unable to perform the requested action (e.g., "Our system is down, I can't process returns right now."). + * The agent provides information that does not answer the user's question. + * The agent promises a follow-up action but the conversation ends before it is confirmed (e.g., "Someone will call you back within 24 hours."). + * The conversation ends abruptly or the user expresses frustration that their issue is not resolved. + * **Crucial Clarification**: Do not make assumptions. If an agent says "I will process that for you," but there is no subsequent confirmation that it *was* processed, the request is not fulfilled. The action must be confirmed as completed within the conversation. + +For the property, follow these internal steps: +1. Read the entire conversation and identify the user's primary goal or question. +2. Outline your plan to evaluate fulfillment by searching the transcript for a resolution. +3. Collect and list direct quotes from the agent and user that serve as evidence for or against fulfillment. +4. Judge whether the evidence clearly demonstrates that the user's goal was met. +5. Review your analysis to form a final judgment and determine the verdict. +6. Output the final verdict in the required output format. + +# Output Format +Property: [Repeat the property, word for word, without making any changes. Keep everything including punctuation and capitalization as-is.] +Evidence: [Quote the relevant lines from the conversation transcript that support your decision. Reference the speaker (User or Agent).] +Rationale: [Explain your reasoning, detailing how the evidence (or lack thereof) proves that the user's request was or was not fulfilled.] +Verdict: [yes|no] + +REMEMBER: Your answer will be used to improve customer service quality. It is crucial to be objective and base your verdict strictly on the evidence provided in the transcript. + +# Example 1 (Request Fulfilled) +## Input + + + { + "name": "get_order_status", + "description": "Retrieves the status and tracking information for a given order ID.", + "parameters": [ + { + "type": "string", + "name": "order_id", + "description": "The unique identifier for the customer's order." + } + ] + }, + { + "name": "process_return", + "description": "Initiates a return process for a given order ID and generates a shipping label.", + "parameters": [ + { + "type": "string", + "name": "order_id", + "description": "The unique identifier for the order to be returned." + } + ] + } + + + + Hi, I need to check the status of my order, #98765. + + + + +Agent: Of course, I can help with that. One moment while I look it up. +Agent: Okay, I see order #98765. It looks like it was shipped this morning. The tracking number is 1Z987ABC. +User: Great, that's all I needed. Thank you! + + + +* The agent fulfilled the user's primary request. + + +## Output +Property: The agent fulfilled the user's primary request. +Evidence: User: "Hi, I need to check the status of my order, #98765." Agent: "The tracking number is 1Z987ABC." User: "Great, that's all I needed. Thank you!" +Rationale: The user's primary request was to check their order status. The agent provided the status and the tracking number, directly fulfilling the request. The user confirmed that their need was met. +Verdict: yes + +# Example 2 (Request Not Fulfilled) +## Input + + + { + "name": "get_order_status", + "description": "Retrieves the status and tracking information for a given order ID.", + "parameters": [ + { + "type": "string", + "name": "order_id", + "description": "The unique identifier for the customer's order." + } + ] + }, + { + "name": "process_return", + "description": "Initiates a return process for a given order ID and generates a shipping label.", + "parameters": [ + { + "type": "string", + "name": "order_id", + "description": "The unique identifier for the order to be returned." + } + ] + } + + + + I'd like to return the shoes I bought last week. The order number is #54321. + + + + +Agent: I can help you with that. Can you confirm your shipping address? +User: Yes, it's 123 Main St, Anytown. +Agent: Thank you. Unfortunately, our return system is experiencing technical difficulties right now. I can't generate a return label. I can try again in a few hours. +User: Oh. Okay, I guess just let me know. + + + +* The agent fulfilled the user's primary request. + + +## Output +Property: The agent fulfilled the user's primary request. +Evidence: User: "I'd like to return the shoes I bought last week." Agent: "Unfortunately, our return system is experiencing technical difficulties right now. I can't generate a return label." +Rationale: The user's primary request was to initiate a return for their shoes. The agent was unable to complete this action due to a system issue. The conversation ended without the user's request being fulfilled. +Verdict: no + +# Your Turn +## Input + + + {{tool_declarations}} + + + + {{user_input}} + + + + +{{model_response}} + + + +{{decomposed_rubric}} + + +## Output \ No newline at end of file diff --git a/contributing/samples/gepa/run_experiment.py b/contributing/samples/gepa/run_experiment.py new file mode 100644 index 0000000000..0e0637d3ec --- /dev/null +++ b/contributing/samples/gepa/run_experiment.py @@ -0,0 +1,116 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Runs a GEPA experiment on Tau-Bench.""" + +from collections.abc import Sequence +import dataclasses +from datetime import datetime +import json +import logging +import os + +from absl import app +from absl import flags +import experiment +from google.genai import types + +_OUTPUT_DIR = flags.DEFINE_string('output_dir', None, '') +_EVAL_SET_SIZE = flags.DEFINE_integer('eval_set_size', None, '') +_MAX_METRIC_CALLS = flags.DEFINE_integer('max_metric_calls', 500, '') +_NUM_TEST_RECORDS = flags.DEFINE_integer('num_test_records', None, '') +_NUM_EVAL_TRIALS = flags.DEFINE_integer('num_eval_trials', 4, '') +_MAX_CONCURRENCY = flags.DEFINE_integer('max_concurrency', 8, '') +_EVAL_MODE = flags.DEFINE_bool('eval_mode', False, '') +_USE_RATER = flags.DEFINE_bool('use_rater', False, '') +_TRAIN_BATCH_SIZE = flags.DEFINE_integer('train_batch_size', 3, '') + + +def main(argv: Sequence[str]) -> None: + if len(argv) > 1: + raise app.UsageError('Too many command-line arguments.') + + # Get a list of all existing loggers + # logging.root.manager.loggerDict contains all named loggers + # logging.getLogger(name) retrieves the logger object + loggers = [ + logging.getLogger(name) for name in logging.root.manager.loggerDict + ] + + # Iterate through the loggers and set their level to WARNING + for logger in loggers: + logger.setLevel(logging.WARNING) + + types.logger.addFilter(experiment.FilterInferenceWarnings()) + if not _OUTPUT_DIR.value: + raise ValueError('outptut dir must be specified') + output_dir = os.path.join( + _OUTPUT_DIR.value, datetime.now().strftime('%Y%m%d%H%M%S%f') + ) + os.makedirs(output_dir) + logging.info('Writing to output_dir=%s', output_dir) + config = experiment.ExperimentConfig( + tau_bench_env='retail', + agent_model='gemini-2.5-flash', + agent_model_provider='vertex_ai', + user_model='gemini-2.5-flash', + user_model_provider='vertex_ai', + max_concurrency=_MAX_CONCURRENCY.value, + num_eval_trials=_NUM_EVAL_TRIALS.value, + rnd_seed=42, + max_metric_calls=_MAX_METRIC_CALLS.value, + reflection_model='gemini-2.5-pro', + reflection_minibatch_size=_TRAIN_BATCH_SIZE.value, + use_rater=_USE_RATER.value, + feedback_dataset=experiment.Dataset(split='train'), + pareto_dataset=experiment.Dataset( + split='dev', max_size=_EVAL_SET_SIZE.value + ), + eval_dataset=experiment.Dataset( + split='test', max_size=_NUM_TEST_RECORDS.value + ), + ) + json.dump( + dataclasses.asdict(config), + open(os.path.join(output_dir, 'config.json'), 'w'), + ) + logging.info('Using config=%s', config) + + if _EVAL_MODE.value: + return experiment.run_eval( + output_dir=output_dir, + instructions=experiment.SEED_SYSTEM_INSTRUCTION, + config=config, + ) + + results = experiment.run_gepa( + config=config, + seed_instructions=experiment.SEED_SYSTEM_INSTRUCTION, + output_dir=output_dir, + ) + print(list(enumerate(results.val_aggregate_scores))) + + eval_dir = os.path.join( + output_dir, 'evals', datetime.now().strftime('%Y%m%d%H%M%S%f') + ) + os.makedirs(eval_dir) + experiment.run_eval( + output_dir=eval_dir, + instructions=results.best_candidate['system_instruction'], + config=config, + ) + + +if __name__ == '__main__': + app.run(main) From e01e54e9ee8e6e46c0214278ff3c744c3d3dd3cc Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Tue, 4 Nov 2025 23:20:19 -0800 Subject: [PATCH 292/303] chore: Bumps version to v1.18.0 and updates CHANGELOG.md Co-authored-by: Xuan Yang PiperOrigin-RevId: 828313025 --- CHANGELOG.md | 98 +++++++++++++++++++++++++++++++++++++++ src/google/adk/version.py | 2 +- 2 files changed, 99 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b8286bc2e..480dfd69a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,103 @@ # Changelog +## [1.18.0](https://github.com/google/adk-python/compare/v1.17.0...v1.18.0) (2025-11-05) + +### Features + +* **[ADK Visual Agent Builder]** + * Core Features + * Visual workflow designer for agent creation + * Support for multiple agent types (LLM, Sequential, Parallel, Loop, Workflow) + * Agent tool support with nested agent tools + * Built-in and custom tool integration + * Callback management for all ADK callback types (before/after agent, model, tool) + * Assistant to help you build your agents with natural language + * Assistant proposes and writes agent configuration yaml files for you + * Save to test with chat interfaces as normal + * Build and debug at the same time in adk web! + +* **[Core]** + * Add support for extracting cache-related token counts from LiteLLM usage ([4f85e86](https://github.com/google/adk-python/commit/4f85e86fc3915f0e67312a39fe22451968d4f1b1)) + * Expose the Python code run by the code interpreter in the logs ([a2c6a8a](https://github.com/google/adk-python/commit/a2c6a8a85cf4f556e9dacfe46cf384d13d964208)) + * Add run_debug() helper method for quick agent experimentation ([0487eea](https://github.com/google/adk-python/commit/0487eea2abcd05d7efd123962d17b8c6c9a9d975)) + * Allow injecting a custom Runner into `agent_to_a2a` ([156d235](https://github.com/google/adk-python/commit/156d23547915e8f7f5c6ba55e0362f4b133c3968)) + * Support MCP prompts via the McpInstructionProvider class ([88032cf](https://github.com/google/adk-python/commit/88032cf5c56bb2d81842353605f9f5ab4b2206ff)) + +* **[Models]** + * Add model tracking to LiteLlm and introduce a LiteLLM with fallbacks demo ([d4c63fc](https://github.com/google/adk-python/commit/d4c63fc5629e7d70ad8b8185be09243a01e3428f)) + * Add ApigeeLlm as a model that lets ADK Agent developers to connect with an Apigee proxy ([87dcb3f](https://github.com/google/adk-python/commit/87dcb3f7ba344a2ba7d9edfc4817c9e792d90bfc)) + +* **[Integrations]** + * Add example and fix for loading and upgrading old ADK session databases ([338c3c8](https://github.com/google/adk-python/commit/338c3c89c6bce7f3406f729013cedcd78b809a56)) + * Add support for specifying logging level for adk eval cli command ([b1ff85f](https://github.com/google/adk-python/commit/b1ff85fb2347e3402eedd42e3673be7093a99548)) + * Propagate LiteLLM finish_reason to LlmResponse for use in callbacks ([71aa564](https://github.com/google/adk-python/commit/71aa5645f6c3d91fd0e0ddb1ed564188c6727080)) + * Allow LLM request to override the model used in the generate content async method in LiteLLM ([ce8f674](https://github.com/google/adk-python/commit/ce8f674a287368439ba11be3285902671e9bc75a)) + * Add api key argument to Vertex Session and Memory services for Express Mode support ([9014a84](https://github.com/google/adk-python/commit/9014a849eab9f77b82db4a7f2053fb2a96282f03)) + * Added support for enums as arguments for function tools ([240ef5b](https://github.com/google/adk-python/commit/240ef5beea9389911e8c03a6039b353befc716ac)) + * Implement artifact_version related methods in GcsArtifactService ([e194ebb](https://github.com/google/adk-python/commit/e194ebb33c62bc40403ea852a88f77a9511b61a4)) + +* **[Services]** + * Add support for Vertex AI Express Mode when deploying to Agent Engine ([d4b2a8b](https://github.com/google/adk-python/commit/d4b2a8b49f98a9991cb44ac7ec6e538b81a08664)) + * Remove custom polling logic for Vertex AI Session Service since LRO polling is supported in express mode ([546c2a6](https://github.com/google/adk-python/commit/546c2a68165f54e694664d5b6b6740566301782b)) + * Make VertexAiSessionService fully asynchronous ([f7e2a7a](https://github.com/google/adk-python/commit/f7e2a7a40ef248dd6fbba9669503b0828a12f0cc)) + +* **[Tools]** + * Add Bigquery detect_anomalies tool ([9851340](https://github.com/google/adk-python/commit/9851340ad1df86d6f5c21e8984199573f239bb2b)) + * Extend Bigquery detect_anomalies tool to support future data anomaly detection ([38ea749](https://github.com/google/adk-python/commit/38ea749c9cec8e65f5e768f49fd2de79b5545571)) + * Add get_job_info tool to BigQuery toolset ([6429457](https://github.com/google/adk-python/commit/64294572c1c93590aa3c221015a5cb9b440ee948)) + +* **[Evals]** + * Add "final_session_state" to the EvalCase data model ([2274c4f](https://github.com/google/adk-python/commit/2274c4f3040b20da3690aa03272155776ca330c1)) + * Marked expected_invocation as optional field on evaluator interface ([b17c8f1](https://github.com/google/adk-python/commit/b17c8f19e5fc67180d1bdc621f84cd43e357571c)) + * Adds LLM-backed user simulator ([54c4ecc](https://github.com/google/adk-python/commit/54c4ecc73381cffa51cff01c7fb8a2ac59308c53)) + +* **[Observability]** + * Add BigQueryLoggingPlugin for event logging to BigQuery ([b7dbfed](https://github.com/google/adk-python/commit/b7dbfed4a3d4a0165e2c6e51594d1f547bec89d3)) + +* **[Live]** + * Add token usage to live events for bidi streaming ([6e5c0eb](https://github.com/google/adk-python/commit/6e5c0eb6e0474f5b908eb9df20328e7da85ebed9)) + +### Bug Fixes + +* Reduce logging spam for MCP tools without authentication ([11571c3](https://github.com/google/adk-python/commit/11571c37ab948d43cbaa3a1d82522256dfe4d467)) +* Fix typo in several files ([d2888a3](https://github.com/google/adk-python/commit/d2888a3766b87df2baaaa1a67a2235b1b80f138f)) +* Disable SetModelResponseTool workaround for Vertex AI Gemini 2+ models ([6a94af2](https://github.com/google/adk-python/commit/6a94af24bf3367c05a5d405b7e7b79810a1fac4e)) +* Bug when callback_context_invocation_context is missing in GlobalInstructionPlugin ([f81ebdb](https://github.com/google/adk-python/commit/f81ebdb622211031945eb06c3f00ff5208d94f9b)) +* Support models slash prefix in model name extraction ([8dff850](https://github.com/google/adk-python/commit/8dff85099d67623dd6f4a707fb932ea55b8aaf9b)) +* Do not consider events with state delta and no content as final response ([1ee93c8](https://github.com/google/adk-python/commit/1ee93c8bcb7ccd6f33658dc76b2095dd7e58aac9)) +* Parameter filtering for CrewAI functions with **kwargs ([74a3500](https://github.com/google/adk-python/commit/74a3500fc5d4b07e80f914d83a0d91face28086c)) +* Do not treat FinishReason.STOP as error case for LLM responses containing candidates with empty contents ([2f72ceb](https://github.com/google/adk-python/commit/2f72ceb49b452c5a1f257bce6adb004fa5d54472)) +* Fixes null check for reflect_retry plugin sample ([86f0155](https://github.com/google/adk-python/commit/86f01550bd1b52d6d160e8bc54cecc6c4fe8611c)) +* Creates evalset directory on evalset create ([6c3882f](https://github.com/google/adk-python/commit/6c3882f2d66f169d393171be280b6e6218b52a7c)) +* Add ADK_DISABLE_LOAD_DOTENV environment variable that disables automatic loading of .env when running ADK cli, if set to true or 1 ([15afbcd](https://github.com/google/adk-python/commit/15afbcd1587d4102a4dc5c07c0c493917df9d6ea)) +* Allow tenacity 9.0.0 ([ee8acc5](https://github.com/google/adk-python/commit/ee8acc58be7421a3e8eab07b051c45f9319f80dc)) +* Output file uploading to artifact service should handle both base64 encoded and raw bytes ([496f8cd](https://github.com/google/adk-python/commit/496f8cd6bb36d3ba333d7ab1e94e7796d2960300)) +* Correct message part ordering in A2A history ([5eca72f](https://github.com/google/adk-python/commit/5eca72f9bfd05c7c28a3d738391138a59a31167d)) +* Change instruction insertion to respect tool call/response pairs ([1e6a9da](https://github.com/google/adk-python/commit/1e6a9daa63050936ab421f1f684935927aebc63e)) +* DynamicPickleType to support MySQL dialect ([fc15c9a](https://github.com/google/adk-python/commit/fc15c9a0c3c043c0a61dce625b8cd1ee121b4baf)) +* Enable usage metadata in LiteLLM streaming ([f9569bb](https://github.com/google/adk-python/commit/f9569bbb1afbc7f0e8b6e68599590471fd112b9f)) +* Fix issue with MCP tools throwing an error ([1a4261a](https://github.com/google/adk-python/commit/1a4261ad4b66cdeb39d39110a086bd6112b17516)) +* Remove redundant `format` field from LiteLLM content objects ([489c39d](https://github.com/google/adk-python/commit/489c39db01465e38ecbc2c7f32781c349b8cddc9)) +* Update the contribution analysis tool to use original write mode ([54db3d4](https://github.com/google/adk-python/commit/54db3d4434e0706b83a589fa2499d11d439a6e4e)) + +### Improvements + +* Add Community Repo section to README ([432d30a](https://github.com/google/adk-python/commit/432d30af486329aa83f89c5d5752749a85c0b843)) +* Undo adding MCP tools output schema to FunctionDeclaration ([92a7d19](https://github.com/google/adk-python/commit/92a7d1957367d498de773761edd142d8c108d751)) +* Refactor ADK README for clarity and consistency ([b0017ae](https://github.com/google/adk-python/commit/b0017aed4472c73c3b07e71f1d65ae97a5293547)) +* Add support for reversed proxy in adk web ([a0df75b](https://github.com/google/adk-python/commit/a0df75b6fa35d837086decb8802dbf1c0a6637ad)) +* Avoid rendering empty columns as part of detailed results rendering of eval results ([5cb35db](https://github.com/google/adk-python/commit/5cb35db921bf86b5ad0012046bd19fa7cc1e6abb)) +* Clear the behavior of disallow_transfer_to_parent ([48ddd07](https://github.com/google/adk-python/commit/48ddd078941f9240b10f052b6de171c310bc2bc6)) +* Disable the scheduled execution for issue triage workflow ([a02f321](https://github.com/google/adk-python/commit/a02f321f1bdb8be9ad1873db804e0e8393268dc3)) +* Include delimiter when matching events from parent nodes in content processor ([b8a2b6c](https://github.com/google/adk-python/commit/b8a2b6c57080ae29d7a02df7d9fcc2f961d422d2)) +* Improve Tau-bench ADK colab stability ([04dbc42](https://github.com/google/adk-python/commit/04dbc42e50ce40ef3924d1c259e425215e12c2e7)) +* Implement ADK-based agent factory for Tau-bench ([c0c67c8](https://github.com/google/adk-python/commit/c0c67c8698d70ddb9ed958416661f232ef9a5ed8)) +* Add util to run ADK LLM Agent with simulation environment ([87f415a](https://github.com/google/adk-python/commit/87f415a7c36a1f3b6ab84d1fe939726c6ef7f34e)) +* Demonstrate CodeExecutor customization for environment setup ([8eeff35](https://github.com/google/adk-python/commit/8eeff35b35d7e1538a5c9662cc8369f6ff7962f8)) +* Add sample agent for VertexAiCodeExecutor ([edfe553](https://github.com/google/adk-python/commit/edfe5539421d196ca4da14d3a37fac7b598f8c8d)) +* Adds a new sample agent that demonstrates how to integrate PostgreSQL databases using the Model Context Protocol (MCP) ([45a2168](https://github.com/google/adk-python/commit/45a2168e0e6773e595ecfb825d7e4ab0a38c3a38)) +* Add example for using ADK with Fast MCP sampling ([d3796f9](https://github.com/google/adk-python/commit/d3796f9b33251d28d05e6701f11e80f02a2a49e1)) + ## [1.17.0](https://github.com/google/adk-python/compare/v1.16.0...v1.17.0) (2025-10-22) ### Features diff --git a/src/google/adk/version.py b/src/google/adk/version.py index 9e7c3eb931..0a21522cb6 100644 --- a/src/google/adk/version.py +++ b/src/google/adk/version.py @@ -13,4 +13,4 @@ # limitations under the License. # version: major.minor.patch -__version__ = "1.17.0" +__version__ = "1.18.0" From 0b1784e0e493a0e2df1edfe37e5ed5f4247e7d9d Mon Sep 17 00:00:00 2001 From: Yeesian Ng Date: Wed, 5 Nov 2025 07:31:24 -0800 Subject: [PATCH 293/303] fix: Update dependency version constraints to be based on PyPI versions Co-authored-by: Yeesian Ng PiperOrigin-RevId: 828460860 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index f27b3b5992..751d3992d6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ dependencies = [ "click>=8.1.8, <9.0.0", # For CLI tools "fastapi>=0.115.0, <1.119.0", # FastAPI framework "google-api-python-client>=2.157.0, <3.0.0", # Google API client discovery - "google-cloud-aiplatform[agent_engines] @ git+https://github.com/googleapis/python-aiplatform.git@bf1851e59cb34e63b509a2a610e72691e1c4ca28", # For VertexAI integrations, e.g. example store. + "google-cloud-aiplatform[agent_engines]>=1.125.0, <2.0.0", # For VertexAI integrations, e.g. example store. "google-cloud-bigtable>=2.32.0", # For Bigtable database "google-cloud-discoveryengine>=0.13.12, <0.14.0", # For Discovery Engine Search Tool "google-cloud-secret-manager>=2.22.0, <3.0.0", # Fetching secrets in RestAPI Tool From aa77834e2ecd4b77dfb4e689ef37549b3ebd6134 Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Wed, 5 Nov 2025 09:57:22 -0800 Subject: [PATCH 294/303] chore: Update Gemini Live model names in live bidi streaming sample The sample agent now uses updated model names for Gemini Live, including a new Vertex model as the default and a new AI Studio model option. Co-authored-by: Hangfei Lin PiperOrigin-RevId: 828515811 --- .../samples/live_bidi_streaming_single_agent/agent.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/contributing/samples/live_bidi_streaming_single_agent/agent.py b/contributing/samples/live_bidi_streaming_single_agent/agent.py index 95959790ca..9246fca9d5 100755 --- a/contributing/samples/live_bidi_streaming_single_agent/agent.py +++ b/contributing/samples/live_bidi_streaming_single_agent/agent.py @@ -65,8 +65,9 @@ async def check_prime(nums: list[int]) -> str: root_agent = Agent( - # model='gemini-2.0-flash-live-preview-04-09', # for Vertex project - model='gemini-2.0-flash-live-001', # for AI studio key + model='gemini-live-2.5-flash-preview-native-audio-09-2025', # vertex + # model='gemini-2.5-flash-native-audio-preview-09-2025', # for AI studio + # key name='roll_dice_agent', description=( 'hello world agent that can roll a dice of 6 sides and check prime' From 082675546f501a70f4bc8969b9431a2e4808bd13 Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Wed, 5 Nov 2025 10:11:26 -0800 Subject: [PATCH 295/303] chore: Stop logging the full content of LLM blobs The blob content is often large and binary, which makes the logs unreadable and can cause excessive logging. Co-authored-by: Hangfei Lin PiperOrigin-RevId: 828523413 --- src/google/adk/models/gemini_llm_connection.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/google/adk/models/gemini_llm_connection.py b/src/google/adk/models/gemini_llm_connection.py index e23ce19ac8..d4e2900e40 100644 --- a/src/google/adk/models/gemini_llm_connection.py +++ b/src/google/adk/models/gemini_llm_connection.py @@ -105,13 +105,14 @@ async def send_realtime(self, input: RealtimeInput): """ if isinstance(input, types.Blob): input_blob = input.model_dump() - logger.debug('Sending LLM Blob: %s', input_blob) + # The blob is binary and is very large. So let's not log it. + logger.debug('Sending LLM Blob.') await self._gemini_session.send(input=input_blob) elif isinstance(input, types.ActivityStart): - logger.debug('Sending LLM activity start signal') + logger.debug('Sending LLM activity start signal.') await self._gemini_session.send_realtime_input(activity_start=input) elif isinstance(input, types.ActivityEnd): - logger.debug('Sending LLM activity end signal') + logger.debug('Sending LLM activity end signal.') await self._gemini_session.send_realtime_input(activity_end=input) else: raise ValueError('Unsupported input type: %s' % type(input)) From d8d7774f0f801993e1a78ea8e076759906317d4a Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Wed, 5 Nov 2025 10:34:54 -0800 Subject: [PATCH 296/303] chore: Update v1.18.0 wheel and CHANGELOG.md Co-authored-by: Xuan Yang PiperOrigin-RevId: 828533243 --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 480dfd69a2..e32805e13b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -79,6 +79,8 @@ * Fix issue with MCP tools throwing an error ([1a4261a](https://github.com/google/adk-python/commit/1a4261ad4b66cdeb39d39110a086bd6112b17516)) * Remove redundant `format` field from LiteLLM content objects ([489c39d](https://github.com/google/adk-python/commit/489c39db01465e38ecbc2c7f32781c349b8cddc9)) * Update the contribution analysis tool to use original write mode ([54db3d4](https://github.com/google/adk-python/commit/54db3d4434e0706b83a589fa2499d11d439a6e4e)) +* Fix agent evaluations detailed output rows wrapping issue([4284c61](https://github.com/google/adk-python/commit/4284c619010b8246c1ecaa011f14b6cc9de512dd)) +* Update dependency version constraints to be based on PyPI versions([0b1784e](https://github.com/google/adk-python/commit/0b1784e0e493a0e2df1edfe37e5ed5f4247e7d9d)) ### Improvements @@ -97,6 +99,7 @@ * Add sample agent for VertexAiCodeExecutor ([edfe553](https://github.com/google/adk-python/commit/edfe5539421d196ca4da14d3a37fac7b598f8c8d)) * Adds a new sample agent that demonstrates how to integrate PostgreSQL databases using the Model Context Protocol (MCP) ([45a2168](https://github.com/google/adk-python/commit/45a2168e0e6773e595ecfb825d7e4ab0a38c3a38)) * Add example for using ADK with Fast MCP sampling ([d3796f9](https://github.com/google/adk-python/commit/d3796f9b33251d28d05e6701f11e80f02a2a49e1)) +* Refactor gepa sample code and clean-up user demo colab([63353b2](https://github.com/google/adk-python/commit/63353b2b74e23e97385892415c5a3f2a59c3504f)) ## [1.17.0](https://github.com/google/adk-python/compare/v1.16.0...v1.17.0) (2025-10-22) From 744f94f0c8736087724205bbbad501640b365270 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Wed, 5 Nov 2025 10:46:49 -0800 Subject: [PATCH 297/303] fix: Add None check for `event` in `remote_a2a_agent.py` PiperOrigin-RevId: 828538350 --- src/google/adk/agents/remote_a2a_agent.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/google/adk/agents/remote_a2a_agent.py b/src/google/adk/agents/remote_a2a_agent.py index af070bb8c6..ec6d819f2a 100644 --- a/src/google/adk/agents/remote_a2a_agent.py +++ b/src/google/adk/agents/remote_a2a_agent.py @@ -372,7 +372,7 @@ def _construct_message_parts_from_session( if _is_other_agent_reply(self.name, event): event = _present_other_agent_message(event) - if not event.content or not event.content.parts: + if not event or not event.content or not event.content.parts: continue for part in event.content.parts: From d6b928bdf7cdbf8f1925d4c5227c7d580093348e Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Wed, 5 Nov 2025 11:30:48 -0800 Subject: [PATCH 298/303] chore: Returns agent state regardless if ctx.is_resumable This allows state to be passing across agents Co-authored-by: Shangjie Chen PiperOrigin-RevId: 828557989 --- src/google/adk/agents/base_agent.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/google/adk/agents/base_agent.py b/src/google/adk/agents/base_agent.py index 09eef908e0..b13001c916 100644 --- a/src/google/adk/agents/base_agent.py +++ b/src/google/adk/agents/base_agent.py @@ -164,19 +164,16 @@ def _load_agent_state( ctx: InvocationContext, state_type: Type[AgentState], ) -> Optional[AgentState]: - """Loads the agent state from the invocation context, handling resumption. + """Loads the agent state from the invocation context. Args: ctx: The invocation context. state_type: The type of the agent state. Returns: - The current state if resuming, otherwise None. + The current state if exists, otherwise None. """ - if not ctx.is_resumable: - return None - - if self.name not in ctx.agent_states: + if ctx.agent_states is None or self.name not in ctx.agent_states: return None else: return state_type.model_validate(ctx.agent_states.get(self.name)) From 9ec38c0d89965f48357cd4a40a31f959ac00337d Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Wed, 5 Nov 2025 11:36:36 -0800 Subject: [PATCH 299/303] feat: Add on_model_error_callback in LlmAgent Co-authored-by: Xuan Yang PiperOrigin-RevId: 828560608 --- src/google/adk/agents/llm_agent.py | 39 ++++++++++++++ .../adk/flows/llm_flows/base_llm_flow.py | 48 ++++++++++++++--- .../flows/llm_flows/test_model_callbacks.py | 53 +++++++++++++++++++ tests/unittests/testing_utils.py | 4 +- 4 files changed, 137 insertions(+), 7 deletions(-) diff --git a/src/google/adk/agents/llm_agent.py b/src/google/adk/agents/llm_agent.py index be55124dce..91a256d96b 100644 --- a/src/google/adk/agents/llm_agent.py +++ b/src/google/adk/agents/llm_agent.py @@ -85,6 +85,16 @@ list[_SingleAfterModelCallback], ] +_SingleOnModelErrorCallback: TypeAlias = Callable[ + [CallbackContext, LlmRequest, Exception], + Union[Awaitable[Optional[LlmResponse]], Optional[LlmResponse]], +] + +OnModelErrorCallback: TypeAlias = Union[ + _SingleOnModelErrorCallback, + list[_SingleOnModelErrorCallback], +] + _SingleBeforeToolCallback: TypeAlias = Callable[ [BaseTool, dict[str, Any], ToolContext], Union[Awaitable[Optional[dict]], Optional[dict]], @@ -364,6 +374,21 @@ class LlmAgent(BaseAgent): The content to return to the user. When present, the actual model response will be ignored and the provided content will be returned to user. """ + on_model_error_callback: Optional[OnModelErrorCallback] = None + """Callback or list of callbacks to be called when a model call encounters an error. + + When a list of callbacks is provided, the callbacks will be called in the + order they are listed until a callback does not return None. + + Args: + callback_context: CallbackContext, + llm_request: LlmRequest, The raw model request. + error: The error from the model call. + + Returns: + The content to return to the user. When present, the error will be + ignored and the provided content will be returned to user. + """ before_tool_callback: Optional[BeforeToolCallback] = None """Callback or list of callbacks to be called before calling the tool. @@ -587,6 +612,20 @@ def canonical_after_model_callbacks(self) -> list[_SingleAfterModelCallback]: return self.after_model_callback return [self.after_model_callback] + @property + def canonical_on_model_error_callbacks( + self, + ) -> list[_SingleOnModelErrorCallback]: + """The resolved self.on_model_error_callback field as a list of _SingleOnModelErrorCallback. + + This method is only for use by Agent Development Kit. + """ + if not self.on_model_error_callback: + return [] + if isinstance(self.on_model_error_callback, list): + return self.on_model_error_callback + return [self.on_model_error_callback] + @property def canonical_before_tool_callbacks( self, diff --git a/src/google/adk/flows/llm_flows/base_llm_flow.py b/src/google/adk/flows/llm_flows/base_llm_flow.py index 93a432045b..de51df939d 100644 --- a/src/google/adk/flows/llm_flows/base_llm_flow.py +++ b/src/google/adk/flows/llm_flows/base_llm_flow.py @@ -977,6 +977,44 @@ async def _run_and_handle_error( Yields: A generator of LlmResponse. """ + + from ...agents.llm_agent import LlmAgent + + agent = invocation_context.agent + if not isinstance(agent, LlmAgent): + raise TypeError( + f'Expected agent to be an LlmAgent, but got {type(agent)}' + ) + + async def _run_on_model_error_callbacks( + *, + callback_context: CallbackContext, + llm_request: LlmRequest, + error: Exception, + ) -> Optional[LlmResponse]: + error_response = ( + await invocation_context.plugin_manager.run_on_model_error_callback( + callback_context=callback_context, + llm_request=llm_request, + error=error, + ) + ) + if error_response is not None: + return error_response + + for callback in agent.canonical_on_model_error_callbacks: + error_response = callback( + callback_context=callback_context, + llm_request=llm_request, + error=error, + ) + if inspect.isawaitable(error_response): + error_response = await error_response + if error_response is not None: + return error_response + + return None + try: async with Aclosing(response_generator) as agen: async for response in agen: @@ -985,12 +1023,10 @@ async def _run_and_handle_error( callback_context = CallbackContext( invocation_context, event_actions=model_response_event.actions ) - error_response = ( - await invocation_context.plugin_manager.run_on_model_error_callback( - callback_context=callback_context, - llm_request=llm_request, - error=model_error, - ) + error_response = await _run_on_model_error_callbacks( + callback_context=callback_context, + llm_request=llm_request, + error=model_error, ) if error_response is not None: yield error_response diff --git a/tests/unittests/flows/llm_flows/test_model_callbacks.py b/tests/unittests/flows/llm_flows/test_model_callbacks.py index d0cde4db65..c14b2c9ce4 100644 --- a/tests/unittests/flows/llm_flows/test_model_callbacks.py +++ b/tests/unittests/flows/llm_flows/test_model_callbacks.py @@ -56,6 +56,22 @@ def __call__( ) +class MockOnModelCallback(BaseModel): + mock_response: str + + def __call__( + self, + callback_context: CallbackContext, + llm_request: LlmRequest, + error: Exception, + ) -> LlmResponse: + return LlmResponse( + content=testing_utils.ModelContent( + [types.Part.from_text(text=self.mock_response)] + ) + ) + + def noop_callback(**kwargs) -> Optional[LlmResponse]: pass @@ -140,3 +156,40 @@ async def test_after_model_callback_noop(): assert testing_utils.simplify_events( await runner.run_async_with_new_session('test') ) == [('root_agent', 'model_response')] + + +@pytest.mark.asyncio +async def test_on_model_callback_model_error_noop(): + """Test that the on_model_error_callback is a no-op when the model returns an error.""" + mock_model = testing_utils.MockModel.create( + responses=[], error=SystemError('error') + ) + agent = Agent( + name='root_agent', + model=mock_model, + on_model_error_callback=noop_callback, + ) + + runner = testing_utils.TestInMemoryRunner(agent) + with pytest.raises(SystemError): + await runner.run_async_with_new_session('test') + + +@pytest.mark.asyncio +async def test_on_model_callback_model_error_modify_model_response(): + """Test that the on_model_error_callback can modify the model response.""" + mock_model = testing_utils.MockModel.create( + responses=[], error=SystemError('error') + ) + agent = Agent( + name='root_agent', + model=mock_model, + on_model_error_callback=MockOnModelCallback( + mock_response='on_model_error_callback_response' + ), + ) + + runner = testing_utils.TestInMemoryRunner(agent) + assert testing_utils.simplify_events( + await runner.run_async_with_new_session('test') + ) == [('root_agent', 'on_model_error_callback_response')] diff --git a/tests/unittests/testing_utils.py b/tests/unittests/testing_utils.py index 950e70b94c..0bc557e931 100644 --- a/tests/unittests/testing_utils.py +++ b/tests/unittests/testing_utils.py @@ -363,7 +363,7 @@ def supported_models(cls) -> list[str]: def generate_content( self, llm_request: LlmRequest, stream: bool = False ) -> Generator[LlmResponse, None, None]: - if self.error: + if self.error is not None: raise self.error # Increasement of the index has to happen before the yield. self.response_index += 1 @@ -375,6 +375,8 @@ def generate_content( async def generate_content_async( self, llm_request: LlmRequest, stream: bool = False ) -> AsyncGenerator[LlmResponse, None]: + if self.error is not None: + raise self.error # Increasement of the index has to happen before the yield. self.response_index += 1 self.requests.append(llm_request) From e02f177790d9772dd253c9102b80df1a9418aa7f Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Wed, 5 Nov 2025 12:23:20 -0800 Subject: [PATCH 300/303] feat: Improve gepa tau-bench colab for external use PiperOrigin-RevId: 828579343 --- contributing/samples/gepa/adk_agent.py | 59 ++++++++++--------- contributing/samples/gepa/adk_agent_test.py | 23 ++++---- .../samples/gepa/gepa_tau_bench.ipynb | 38 +++++++++++- contributing/samples/gepa/rater_lib.py | 2 +- 4 files changed, 80 insertions(+), 42 deletions(-) diff --git a/contributing/samples/gepa/adk_agent.py b/contributing/samples/gepa/adk_agent.py index 15e153da79..e4bc517def 100644 --- a/contributing/samples/gepa/adk_agent.py +++ b/contributing/samples/gepa/adk_agent.py @@ -263,30 +263,35 @@ def run_environment_loop( ), ], ) - runner = runners.InMemoryRunner( - agent=agent, - app_name='eval_app', - plugins=plugins, - ) - session = asyncio.run( - runner.session_service.create_session( - app_name='eval_app', user_id='eval_user' - ) - ) - env_reset_res = env.reset(task_index=task_index) - initial_message = types.Content( - role='user', parts=[types.Part(text=env_reset_res.observation)] - ) - # The initial message is generated by the environment `reset` within the - # implementation of this function - as the first step of the trace. - # We yield this first step to ensure we provide a full trace to the user. - yield event_lib.Event( - author='user', - content=initial_message, - ) - for event in runner.run( - user_id=session.user_id, - session_id=session.id, - new_message=initial_message, - ): - yield event + + async def _async_run(): + runner = runners.InMemoryRunner( + agent=agent, + app_name='eval_app', + plugins=plugins, + ) + session = await runner.session_service.create_session( + app_name='eval_app', user_id='eval_user' + ) + env_reset_res = env.reset(task_index=task_index) + initial_message = types.Content( + role='user', parts=[types.Part(text=env_reset_res.observation)] + ) + # The initial message is generated by the environment `reset` within the + # implementation of this function - as the first step of the trace. + # We yield this first step to ensure we provide a full trace to the user. + events = [ + event_lib.Event( + author='user', + content=initial_message, + ) + ] + async for event in runner.run_async( + user_id=session.user_id, + session_id=session.id, + new_message=initial_message, + ): + events.append(event) + return events + + return asyncio.run(_async_run()) diff --git a/contributing/samples/gepa/adk_agent_test.py b/contributing/samples/gepa/adk_agent_test.py index 2eea7325d9..7a7a98e2e4 100644 --- a/contributing/samples/gepa/adk_agent_test.py +++ b/contributing/samples/gepa/adk_agent_test.py @@ -324,7 +324,10 @@ async def _run_async_impl(self, ctx): async def _mock_create_session(*args, **kwargs): del args, kwargs await asyncio.sleep(0.1) - return + mock_session = mock.Mock() + mock.user_id = "fake-user=id" + mock.id = "fake-session-id" + return mock_session with mock.patch.object(runners, "InMemoryRunner") as mock_runner_cls: mock_runner = mock_runner_cls.return_value @@ -332,16 +335,14 @@ async def _mock_create_session(*args, **kwargs): _mock_create_session ) mock_runner.run.return_value = [] - next( - adk_agent.run_environment_loop( - instruction="some-instruction", - env=_TestEnv([]), - temperature=0.123, - tools=[], - task_index=0, - agent_model="some-test-model", - plugins=[_TestPlugin([])], - ) + adk_agent.run_environment_loop( + instruction="some-instruction", + env=_TestEnv([]), + temperature=0.123, + tools=[], + task_index=0, + agent_model="some-test-model", + plugins=[_TestPlugin([])], ) mock_runner_cls.assert_called_once() _, runner_kwargs = mock_runner_cls.call_args diff --git a/contributing/samples/gepa/gepa_tau_bench.ipynb b/contributing/samples/gepa/gepa_tau_bench.ipynb index 448fdc8d9b..975a46313d 100644 --- a/contributing/samples/gepa/gepa_tau_bench.ipynb +++ b/contributing/samples/gepa/gepa_tau_bench.ipynb @@ -31,11 +31,13 @@ "execution_count": null, "metadata": { "id": "GqUHYdvRJ7pt", - "language": "python" + "language": "python", + "cellView": "form" }, "outputs": [], "source": [ "#@title Install Tau-bench and GEPA\n", + "!git clone https://github.com/google/adk-python.git\n", "!git clone https://github.com/sierra-research/tau-bench.git\n", "%cd tau-bench/\n", "!pip install -e . --quiet\n", @@ -43,9 +45,39 @@ "%cd ..\n", "!pip install gepa --quiet\n", "\n", - "!pip install retry --quiet" + "!pip install retry --quiet\n" ] }, + { + "cell_type": "code", + "source": [ + "#@title Configure python dependencies\n", + "import sys\n", + "\n", + "sys.path.append('/content/tau-bench')\n", + "sys.path.append('/content/adk-python/contributing/samples/gepa')" + ], + "metadata": { + "cellView": "form", + "id": "k0nrsIca0yXr" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "#@title Authentication\n", + "from google.colab import auth\n", + "auth.authenticate_user()" + ], + "metadata": { + "cellView": "form", + "id": "NsXa217t03vL" + }, + "execution_count": null, + "outputs": [] + }, { "cell_type": "code", "execution_count": null, @@ -55,7 +87,7 @@ }, "outputs": [], "source": [ - "#@title Setup and Authentication\n", + "#@title Setup\n", "from datetime import datetime\n", "import json\n", "import logging\n", diff --git a/contributing/samples/gepa/rater_lib.py b/contributing/samples/gepa/rater_lib.py index 739bba07b4..332bf33330 100644 --- a/contributing/samples/gepa/rater_lib.py +++ b/contributing/samples/gepa/rater_lib.py @@ -120,7 +120,7 @@ def format_user_agent_conversation(conv: list[dict[str, Any]]) -> str: res = ( res + 'The execution result from the agent of function' - f' {fc["name"]} is: \n{fc["args"]}\n' + f' {fc["name"]} is: \n{fc["response"]}\n' ) return res From 2b31bd9414cb7b243c07e4d49ae31ab3e9a350da Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Wed, 5 Nov 2025 13:39:47 -0800 Subject: [PATCH 301/303] chore: Fix spelling: provide Merge https://github.com/google/adk-python/pull/3407 This PR corrects misspellings identified by the [check-spelling action](https://github.com/marketplace/actions/check-spelling) Note: while I use tooling to identify errors, the tooling doesn't _actually_ provide the corrections, I'm picking them on my own. I'm a human, and I may make mistakes. ### Testing Plan The misspellings have been reported at https://github.com/jsoref/adk-python/actions/runs/19056081305/attempts/1#summary-54426435973 The action reports that the changes in this PR would make it happy: https://github.com/jsoref/adk-python/actions/runs/19056081446/attempts/1#summary-54426436321 **Unit Tests:** - [ ] I have added or updated unit tests for my change. - [ ] All unit tests pass locally. _Please include a summary of passed `pytest` results._ **Manual End-to-End (E2E) Tests:** _Please provide instructions on how to manually test your changes, including any necessary setup or configuration. Please provide logs or screenshots to help reviewers better understand the fix._ ### Checklist - [x] I have read the [CONTRIBUTING.md](https://github.com/google/adk-python/blob/main/CONTRIBUTING.md) document. - [x] I have performed a self-review of my own code. - [ ] I have commented my code, particularly in hard-to-understand areas. - [ ] I have added tests that prove my fix is effective or that my feature works. - [ ] New and existing unit tests pass locally with my changes. - [ ] I have manually tested my changes end-to-end. - [ ] Any dependent changes have been merged and published in downstream modules. ### Additional context - https://github.com/google/adk-python/pull/3382#issuecomment-3488654110 COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3407 from jsoref:spelling-issue-template ce8febc6ab5368640c0ec2ae5d6a2c8ac5bf8ed6 PiperOrigin-RevId: 828610865 --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index c0251b84a9..f48c5eb14f 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -19,7 +19,7 @@ Steps to reproduce the behavior: 1. Install '...' 2. Run '....' 3. Open '....' -4. Provie error or stacktrace +4. Provide error or stacktrace **Expected behavior** A clear and concise description of what you expected to happen. From d9ec07d39b3be353cf8d558d82dd4de1be8681f9 Mon Sep 17 00:00:00 2001 From: George Weale Date: Wed, 5 Nov 2025 14:22:38 -0800 Subject: [PATCH 302/303] docs: Improve Agent Builder Assistant schema reference for prompts Replace the full JSON schema dump with a compact text summary of key AgentConfig components like LlmAgent, ToolConfig, and GenerateContentConfig Co-authored-by: George Weale PiperOrigin-RevId: 828627911 --- .../agent_builder_assistant.py | 186 ++++++++++++++++-- 1 file changed, 169 insertions(+), 17 deletions(-) diff --git a/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py b/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py index 5ce4b116c4..b174062f7f 100644 --- a/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py +++ b/contributing/samples/adk_agent_builder_assistant/agent_builder_assistant.py @@ -15,6 +15,8 @@ """Agent factory for creating Agent Builder Assistant with embedded schema.""" from pathlib import Path +import textwrap +from typing import Any from typing import Callable from typing import Optional from typing import Union @@ -128,25 +130,175 @@ def _load_schema() -> str: # CENTRALIZED ADK AGENTCONFIG SCHEMA LOADING: Use common utility function # This avoids duplication across multiple files and provides consistent # ADK AgentConfig schema loading with caching and error handling. - schema_content = load_agent_config_schema( - raw_format=True, # Get as JSON string + schema_dict = load_agent_config_schema() + return AgentBuilderAssistant._build_schema_reference(schema_dict) + + @staticmethod + def _build_schema_reference(schema: dict[str, Any]) -> str: + """Create compact AgentConfig reference text for prompt embedding.""" + + defs: dict[str, Any] = schema.get("$defs", {}) + top_level_fields: dict[str, Any] = schema.get("properties", {}) + wrapper = textwrap.TextWrapper(width=78) + lines: list[str] = [] + + def add(text: str = "", indent: int = 0) -> None: + """Append wrapped text with indentation.""" + if not text: + lines.append("") + return + indent_str = " " * indent + wrapper.initial_indent = indent_str + wrapper.subsequent_indent = indent_str + lines.extend(wrapper.fill(text).split("\n")) + + add("ADK AgentConfig quick reference") + add("--------------------------------") + + add() + add("LlmAgent (agent_class: LlmAgent)") + add( + "Required fields: name, instruction. ADK best practice is to always set" + " model explicitly.", + indent=2, + ) + add("Optional fields:", indent=2) + add("agent_class: defaults to LlmAgent; keep for clarity.", indent=4) + add("description: short summary string.", indent=4) + add("sub_agents: list of AgentRef entries (see below).", indent=4) + add( + "before_agent_callbacks / after_agent_callbacks: list of CodeConfig " + "entries that run before or after the agent loop.", + indent=4, + ) + add("model: string model id (required in practice).", indent=4) + add( + "disallow_transfer_to_parent / disallow_transfer_to_peers: booleans to " + "restrict automatic transfer.", + indent=4, + ) + add( + "input_schema / output_schema: JSON schema objects to validate inputs " + "and outputs.", + indent=4, + ) + add("output_key: name to store agent output in session context.", indent=4) + add( + "include_contents: bool; include tool/LLM contents in response.", + indent=4, + ) + add("tools: list of ToolConfig entries (see below).", indent=4) + add( + "before_model_callbacks / after_model_callbacks: list of CodeConfig " + "entries around LLM calls.", + indent=4, + ) + add( + "before_tool_callbacks / after_tool_callbacks: list of CodeConfig " + "entries around tool calls.", + indent=4, + ) + add( + "generate_content_config: passes directly to google.genai " + "GenerateContentConfig (supporting temperature, topP, topK, " + "maxOutputTokens, safetySettings, responseSchema, routingConfig," + " etc.).", + indent=4, ) - # Format as indented code block for instruction embedding - # - # Why indentation is needed: - # - The ADK AgentConfig schema gets embedded into instruction templates using .format() - # - Proper indentation maintains readability in the final instruction - # - Code block markers (```) help LLMs recognize this as structured data - # - # Example final instruction format: - # "Here is the ADK AgentConfig schema: - # ```json - # {"type": "object", "properties": {...}} - # ```" - lines = schema_content.split("\n") - indented_lines = [" " + line for line in lines] # 2-space indent - return "```json\n" + "\n".join(indented_lines) + "\n ```" + add() + add("Workflow agents (LoopAgent, ParallelAgent, SequentialAgent)") + add( + "Share BaseAgent fields: agent_class, name, description, sub_agents, " + "before/after_agent_callbacks. Never declare model, instruction, or " + "tools on workflow orchestrators.", + indent=2, + ) + add( + "LoopAgent adds max_iterations (int) controlling iteration cap.", + indent=2, + ) + + add() + add("AgentRef") + add( + "Used inside sub_agents lists. Provide either config_path (string path " + "to another YAML file) or code (dotted Python reference) to locate the " + "sub-agent definition.", + indent=2, + ) + + add() + add("ToolConfig") + add( + "Items inside tools arrays. Required field name (string). For built-in " + "tools use the exported short name, for custom tools use the dotted " + "module path.", + indent=2, + ) + add( + "args: optional object of additional keyword arguments. Use simple " + "key-value pairs (ToolArgsConfig) or structured ArgumentConfig entries " + "when a list is required by callbacks.", + indent=2, + ) + + add() + add("ArgumentConfig") + add( + "Represents a single argument. value is required and may be any JSON " + "type. name is optional (null allowed). Often used in callback args.", + indent=2, + ) + + add() + add("CodeConfig") + add( + "References Python code for callbacks or dynamic tool creation." + " Requires name (dotted path). args is an optional list of" + " ArgumentConfig items executed when invoking the function.", + indent=2, + ) + + add() + add("GenerateContentConfig highlights") + add( + "Controls LLM generation behavior. Common fields: maxOutputTokens, " + "temperature, topP, topK, candidateCount, responseMimeType, " + "responseSchema/responseJsonSchema, automaticFunctionCalling, " + "safetySettings, routingConfig; see Vertex AI GenAI docs for full " + "semantics.", + indent=2, + ) + + add() + add( + "All other schema definitions in AgentConfig.json remain available but " + "are rarely needed for typical agent setups. Refer to the source file " + "for exhaustive field descriptions when implementing advanced configs.", + ) + + if top_level_fields: + add() + add("Top-level AgentConfig fields (from schema)") + for field_name in sorted(top_level_fields): + description = top_level_fields[field_name].get("description", "") + if description: + add(f"{field_name}: {description}", indent=2) + else: + add(field_name, indent=2) + + if defs: + add() + add("Additional schema definitions") + for def_name in sorted(defs): + description = defs[def_name].get("description", "") + if description: + add(f"{def_name}: {description}", indent=2) + else: + add(def_name, indent=2) + + return "```text\n" + "\n".join(lines) + "\n```" @staticmethod def _load_instruction_with_schema( From 99ca6aa6e6b4027f37d091d9c93da6486def20d7 Mon Sep 17 00:00:00 2001 From: George Weale Date: Wed, 5 Nov 2025 14:26:15 -0800 Subject: [PATCH 303/303] feat: add file-backed artifact service - add FileArtifactService that persists artifacts to the local filesystem - adjust BaseArtifactService and exports so callers can wire in the filebacked implementation Co-authored-by: George Weale PiperOrigin-RevId: 828629298 --- src/google/adk/artifacts/__init__.py | 2 + .../adk/artifacts/base_artifact_service.py | 45 +- .../adk/artifacts/file_artifact_service.py | 751 ++++++++++++++++++ .../artifacts/test_artifact_service.py | 285 ++++++- 4 files changed, 1041 insertions(+), 42 deletions(-) create mode 100644 src/google/adk/artifacts/file_artifact_service.py diff --git a/src/google/adk/artifacts/__init__.py b/src/google/adk/artifacts/__init__.py index 4a6c7c6c51..90a8063fae 100644 --- a/src/google/adk/artifacts/__init__.py +++ b/src/google/adk/artifacts/__init__.py @@ -13,11 +13,13 @@ # limitations under the License. from .base_artifact_service import BaseArtifactService +from .file_artifact_service import FileArtifactService from .gcs_artifact_service import GcsArtifactService from .in_memory_artifact_service import InMemoryArtifactService __all__ = [ 'BaseArtifactService', + 'FileArtifactService', 'GcsArtifactService', 'InMemoryArtifactService', ] diff --git a/src/google/adk/artifacts/base_artifact_service.py b/src/google/adk/artifacts/base_artifact_service.py index cb0c5398f8..cde022b8bb 100644 --- a/src/google/adk/artifacts/base_artifact_service.py +++ b/src/google/adk/artifacts/base_artifact_service.py @@ -20,23 +20,44 @@ from typing import Optional from google.genai import types +from pydantic import alias_generators from pydantic import BaseModel +from pydantic import ConfigDict from pydantic import Field class ArtifactVersion(BaseModel): - """Represents the metadata of a specific version of an artifact.""" - - version: int - """The version number of the artifact.""" - canonical_uri: str - """The canonical URI of the artifact version.""" - custom_metadata: dict[str, Any] = Field(default_factory=dict) - """A dictionary of custom metadata associated with the artifact version.""" - create_time: float = Field(default_factory=lambda: datetime.now().timestamp()) - """The creation time of the artifact version.""" - mime_type: Optional[str] = None - """The MIME type of the artifact version.""" + """Metadata describing a specific version of an artifact.""" + + model_config = ConfigDict( + alias_generator=alias_generators.to_camel, + populate_by_name=True, + ) + + version: int = Field( + description=( + "Monotonically increasing identifier for the artifact version." + ) + ) + canonical_uri: str = Field( + description="Canonical URI referencing the persisted artifact payload." + ) + custom_metadata: dict[str, Any] = Field( + default_factory=dict, + description="Optional user-supplied metadata stored with the artifact.", + ) + create_time: float = Field( + default_factory=lambda: datetime.now().timestamp(), + description=( + "Unix timestamp (seconds) when the version record was created." + ), + ) + mime_type: Optional[str] = Field( + default=None, + description=( + "MIME type when the artifact payload is stored as binary data." + ), + ) class BaseArtifactService(ABC): diff --git a/src/google/adk/artifacts/file_artifact_service.py b/src/google/adk/artifacts/file_artifact_service.py new file mode 100644 index 0000000000..97b2fb147d --- /dev/null +++ b/src/google/adk/artifacts/file_artifact_service.py @@ -0,0 +1,751 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from __future__ import annotations + +import asyncio +import logging +import os +from pathlib import Path +from pathlib import PurePosixPath +from pathlib import PureWindowsPath +import shutil +from typing import Any +from typing import Optional +from urllib.parse import unquote +from urllib.parse import urlparse + +from google.genai import types +from pydantic import alias_generators +from pydantic import ConfigDict +from pydantic import Field +from pydantic import ValidationError +from typing_extensions import override + +from .base_artifact_service import ArtifactVersion +from .base_artifact_service import BaseArtifactService + +logger = logging.getLogger("google_adk." + __name__) + + +def _iter_artifact_dirs(root: Path) -> list[Path]: + """Returns artifact directory paths beneath a root.""" + if not root.exists(): + return [] + artifact_dirs: list[Path] = [] + for dirpath, dirnames, _ in os.walk(root): + current = Path(dirpath) + if (current / "versions").exists(): + artifact_dirs.append(current) + dirnames.clear() + return artifact_dirs + + +def _file_uri_to_path(uri: str) -> Optional[Path]: + """Converts a file:// URI to a filesystem path.""" + parsed = urlparse(uri) + if parsed.scheme != "file": + return None + return Path(unquote(parsed.path)) + + +_USER_NAMESPACE_PREFIX = "user:" + + +def _file_has_user_namespace(filename: str) -> bool: + """Checks whether the file is scoped to the user namespace.""" + return filename.startswith(_USER_NAMESPACE_PREFIX) + + +def _strip_user_namespace(filename: str) -> str: + """Removes the `user:` namespace prefix when present.""" + if _file_has_user_namespace(filename): + return filename[len(_USER_NAMESPACE_PREFIX) :] + return filename + + +def _to_posix_path(path_value: str) -> PurePosixPath: + """Normalizes separators by converting to a `PurePosixPath`.""" + if "\\" in path_value: + # Interpret Windows-style paths while still running on POSIX systems. + path_value = PureWindowsPath(path_value).as_posix() + return PurePosixPath(path_value) + + +def _resolve_scoped_artifact_path( + scope_root: Path, filename: str +) -> tuple[Path, Path]: + """Returns the absolute artifact directory and its relative path. + + The caller is expected to pass the scope root directory (user or session). + This helper joins the filename under that root, resolves traversal segments, + and guards against paths that escape the scope root. + + Args: + scope_root: Directory that defines the storage scope. + filename: Caller-supplied artifact name. + + Returns: + A tuple containing the absolute artifact directory and its path relative + to `scope_root`. + + Raises: + ValueError: If `filename` resolves outside of `scope_root`. + """ + stripped = _strip_user_namespace(filename).strip() + pure_path = _to_posix_path(stripped) + + scope_root_resolved = scope_root.resolve(strict=False) + if pure_path.is_absolute(): + raise ValueError( + f"Absolute artifact filename {filename!r} is not permitted; " + "provide a path relative to the storage scope." + ) + candidate = scope_root_resolved / Path(pure_path) + + candidate = candidate.resolve(strict=False) + + try: + relative = candidate.relative_to(scope_root_resolved) + except ValueError as exc: + raise ValueError( + f"Artifact filename {filename!r} escapes storage directory " + f"{scope_root_resolved}" + ) from exc + + if relative == Path("."): + relative = Path("artifact") + candidate = scope_root_resolved / relative + + return candidate, relative + + +def _is_user_scoped(session_id: Optional[str], filename: str) -> bool: + """Determines whether artifacts should be stored in the user namespace.""" + return session_id is None or _file_has_user_namespace(filename) + + +def _user_artifacts_dir(base_root: Path) -> Path: + """Returns the path that stores user-scoped artifacts.""" + return base_root / "artifacts" + + +def _session_artifacts_dir(base_root: Path, session_id: str) -> Path: + """Returns the path that stores session-scoped artifacts.""" + return base_root / "sessions" / session_id / "artifacts" + + +def _versions_dir(artifact_dir: Path) -> Path: + """Returns the directory that contains versioned payloads.""" + return artifact_dir / "versions" + + +def _metadata_path(artifact_dir: Path, version: int) -> Path: + """Returns the path to the metadata file for a specific version.""" + return _versions_dir(artifact_dir) / str(version) / "metadata.json" + + +def _list_versions_on_disk(artifact_dir: Path) -> list[int]: + """Returns sorted versions discovered under the artifact directory.""" + versions_dir = _versions_dir(artifact_dir) + if not versions_dir.exists(): + return [] + versions: list[int] = [] + for child in versions_dir.iterdir(): + if child.is_dir(): + try: + versions.append(int(child.name)) + except ValueError: + logger.debug("Skipping non-version directory %s", child) + return sorted(versions) + + +class FileArtifactVersion(ArtifactVersion): + """Represents persisted metadata for a file-backed artifact.""" + + model_config = ConfigDict( + alias_generator=alias_generators.to_camel, + populate_by_name=True, + ) + + file_name: str = Field( + description="Original filename supplied by the caller." + ) + + +class FileArtifactService(BaseArtifactService): + """Stores filesystem-backed artifacts beneath a configurable root directory.""" + + # Storage layout matches the cloud and in-memory services: + # root/ + # ├── apps/ + # │ └── {app_name}/ + # │ └── users/ + # │ └── {user_id}/ + # │ ├── sessions/ + # │ │ └── {session_id}/ + # │ │ └── artifacts/ + # │ │ └── {artifact_path}/ # derived from filename + # │ │ └── versions/ + # │ │ └── {version}/ + # │ │ ├── {original_filename} + # │ │ └── metadata.json + # │ └── artifacts/ + # │ └── {artifact_path}/... + # + # Artifact paths are derived from the provided filenames: separators create + # nested directories, and path traversal is rejected to keep the layout + # portable across filesystems. `{artifact_path}` therefore mirrors the + # sanitized, scope-relative path derived from each filename. + + def __init__(self, root_dir: Path | str): + """Initializes the file-based artifact service. + + Args: + root_dir: The directory that will contain artifact data. + """ + self.root_dir = Path(root_dir).expanduser().resolve() + self.root_dir.mkdir(parents=True, exist_ok=True) + + def _base_root(self, app_name: str, user_id: str) -> Path: + """Returns the artifacts root directory for an app/user combination.""" + return self.root_dir / "apps" / app_name / "users" / user_id + + def _scope_root( + self, + app_name: str, + user_id: str, + session_id: Optional[str], + filename: str, + ) -> Path: + """Returns the directory that represents the artifact scope.""" + base = self._base_root(app_name, user_id) + if _is_user_scoped(session_id, filename): + return _user_artifacts_dir(base) + if not session_id: + raise ValueError( + "Session ID must be provided for session-scoped artifacts." + ) + return _session_artifacts_dir(base, session_id) + + def _artifact_dir( + self, + app_name: str, + user_id: str, + session_id: Optional[str], + filename: str, + ) -> Path: + """Builds the directory path for an artifact.""" + scope_root = self._scope_root( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + ) + artifact_dir, _ = _resolve_scoped_artifact_path(scope_root, filename) + return artifact_dir + + def _build_artifact_version( + self, + *, + app_name: str, + user_id: str, + session_id: Optional[str], + filename: str, + version: int, + metadata: Optional[FileArtifactVersion], + ) -> ArtifactVersion: + """Creates an ArtifactVersion payload using on-disk metadata.""" + canonical_uri = ( + metadata.canonical_uri + if metadata and metadata.canonical_uri + else self._canonical_uri( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + version=version, + ) + ) + custom_metadata_val = metadata.custom_metadata if metadata else {} + mime_type = metadata.mime_type if metadata else None + return ArtifactVersion( + version=version, + canonical_uri=canonical_uri, + custom_metadata=dict(custom_metadata_val), + mime_type=mime_type, + ) + + def _canonical_uri( + self, + *, + app_name: str, + user_id: str, + session_id: Optional[str], + filename: str, + version: int, + ) -> str: + """Builds the canonical file:// URI for an artifact payload.""" + artifact_dir = self._artifact_dir( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + ) + stored_filename = artifact_dir.name + payload_path = _versions_dir(artifact_dir) / str(version) / stored_filename + return payload_path.resolve().as_uri() + + def _latest_metadata( + self, artifact_dir: Path + ) -> Optional[FileArtifactVersion]: + """Loads metadata for the most recent version.""" + versions = _list_versions_on_disk(artifact_dir) + if not versions: + return None + return _read_metadata(_metadata_path(artifact_dir, versions[-1])) + + @override + async def save_artifact( + self, + *, + app_name: str, + user_id: str, + filename: str, + artifact: types.Part, + session_id: Optional[str] = None, + custom_metadata: Optional[dict[str, Any]] = None, + ) -> int: + """Persists an artifact to disk. + + Filenames may be simple (``"report.txt"``), nested + (``"images/photo.png"``), or explicitly user-scoped + (``"user:shared/diagram.png"``). All values are interpreted relative to the + computed scope root; absolute paths or inputs that traverse outside that + root (for example ``"../../secret.txt"``) raise ``ValueError``. + """ + return await asyncio.to_thread( + self._save_artifact_sync, + app_name, + user_id, + filename, + artifact, + session_id, + custom_metadata, + ) + + def _save_artifact_sync( + self, + app_name: str, + user_id: str, + filename: str, + artifact: types.Part, + session_id: Optional[str], + custom_metadata: Optional[dict[str, Any]], + ) -> int: + """Saves an artifact to disk and returns its version.""" + artifact_dir = self._artifact_dir( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + ) + artifact_dir.mkdir(parents=True, exist_ok=True) + + versions = _list_versions_on_disk(artifact_dir) + next_version = 0 if not versions else versions[-1] + 1 + versions_dir = _versions_dir(artifact_dir) + versions_dir.mkdir(parents=True, exist_ok=True) + version_dir = versions_dir / str(next_version) + version_dir.mkdir() + + stored_filename = artifact_dir.name + content_path = version_dir / stored_filename + + if artifact.inline_data: + content_path.write_bytes(artifact.inline_data.data) + mime_type = ( + artifact.inline_data.mime_type + if artifact.inline_data.mime_type + else "application/octet-stream" + ) + elif artifact.text is not None: + content_path.write_text(artifact.text, encoding="utf-8") + mime_type = None + else: + raise ValueError("Artifact must have either inline_data or text content.") + + canonical_uri = self._canonical_uri( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + version=next_version, + ) + _write_metadata( + version_dir / "metadata.json", + filename=filename, + mime_type=mime_type, + version=next_version, + canonical_uri=canonical_uri, + custom_metadata=custom_metadata, + ) + + logger.debug( + "Saved artifact %s version %d to %s", + filename, + next_version, + version_dir, + ) + return next_version + + @override + async def load_artifact( + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, + version: Optional[int] = None, + ) -> Optional[types.Part]: + return await asyncio.to_thread( + self._load_artifact_sync, + app_name, + user_id, + filename, + session_id, + version, + ) + + def _load_artifact_sync( + self, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str], + version: Optional[int], + ) -> Optional[types.Part]: + """Loads an artifact from disk.""" + artifact_dir = self._artifact_dir( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + ) + if not artifact_dir.exists(): + return None + + versions = _list_versions_on_disk(artifact_dir) + if not versions: + return None + + if version is None: + version_to_load = versions[-1] + else: + if version not in versions: + return None + version_to_load = version + + version_dir = _versions_dir(artifact_dir) / str(version_to_load) + metadata = _read_metadata(_metadata_path(artifact_dir, version_to_load)) + mime_type = metadata.mime_type if metadata else None + stored_filename = artifact_dir.name + content_path = version_dir / stored_filename + if metadata and metadata.canonical_uri and not content_path.exists(): + uri_path = _file_uri_to_path(metadata.canonical_uri) + if uri_path and uri_path.exists(): + content_path = uri_path + + if mime_type: + if not content_path.exists(): + logger.warning( + "Binary artifact %s missing at %s", filename, content_path + ) + return None + data = content_path.read_bytes() + return types.Part(inline_data=types.Blob(mime_type=mime_type, data=data)) + + if not content_path.exists(): + logger.warning("Text artifact %s missing at %s", filename, content_path) + return None + + text = content_path.read_text(encoding="utf-8") + return types.Part(text=text) + + @override + async def list_artifact_keys( + self, + *, + app_name: str, + user_id: str, + session_id: Optional[str] = None, + ) -> list[str]: + return await asyncio.to_thread( + self._list_artifact_keys_sync, + app_name, + user_id, + session_id, + ) + + def _list_artifact_keys_sync( + self, + app_name: str, + user_id: str, + session_id: Optional[str], + ) -> list[str]: + """Lists artifact filenames for the given session/user.""" + filenames: set[str] = set() + + base_root = self._base_root(app_name, user_id) + + if session_id: + session_root = _session_artifacts_dir(base_root, session_id) + for artifact_dir in _iter_artifact_dirs(session_root): + metadata = self._latest_metadata(artifact_dir) + if metadata and metadata.file_name: + filenames.add(str(metadata.file_name)) + else: + rel = artifact_dir.relative_to(session_root) + filenames.add(rel.as_posix()) + + user_root = _user_artifacts_dir(base_root) + for artifact_dir in _iter_artifact_dirs(user_root): + metadata = self._latest_metadata(artifact_dir) + if metadata and metadata.file_name: + filenames.add(str(metadata.file_name)) + else: + rel = artifact_dir.relative_to(user_root) + filenames.add(f"user:{rel.as_posix()}") + + return sorted(filenames) + + @override + async def delete_artifact( + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, + ) -> None: + """Deletes an artifact. + + Args: + app_name: The name of the application. + user_id: The ID of the user. + filename: The name of the artifact file. + session_id: The ID of the session. Leave unset for user-scoped + artifacts. + """ + await asyncio.to_thread( + self._delete_artifact_sync, + app_name, + user_id, + filename, + session_id, + ) + + def _delete_artifact_sync( + self, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str], + ) -> None: + artifact_dir = self._artifact_dir( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + ) + if artifact_dir.exists(): + shutil.rmtree(artifact_dir) + logger.debug("Deleted artifact %s at %s", filename, artifact_dir) + + @override + async def list_versions( + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, + ) -> list[int]: + """Lists all versions stored for an artifact.""" + return await asyncio.to_thread( + self._list_versions_sync, + app_name, + user_id, + filename, + session_id, + ) + + def _list_versions_sync( + self, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str], + ) -> list[int]: + artifact_dir = self._artifact_dir( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + ) + return _list_versions_on_disk(artifact_dir) + + @override + async def list_artifact_versions( + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, + ) -> list[ArtifactVersion]: + """Lists metadata for each artifact version on disk.""" + return await asyncio.to_thread( + self._list_artifact_versions_sync, + app_name, + user_id, + filename, + session_id, + ) + + def _list_artifact_versions_sync( + self, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str], + ) -> list[ArtifactVersion]: + artifact_dir = self._artifact_dir( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + ) + versions = _list_versions_on_disk(artifact_dir) + artifact_versions: list[ArtifactVersion] = [] + for version in versions: + metadata_path = _metadata_path(artifact_dir, version) + metadata = _read_metadata(metadata_path) + artifact_versions.append( + self._build_artifact_version( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + version=version, + metadata=metadata, + ) + ) + return artifact_versions + + @override + async def get_artifact_version( + self, + *, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str] = None, + version: Optional[int] = None, + ) -> Optional[ArtifactVersion]: + """Gets metadata for a specific artifact version.""" + return await asyncio.to_thread( + self._get_artifact_version_sync, + app_name, + user_id, + filename, + session_id, + version, + ) + + def _get_artifact_version_sync( + self, + app_name: str, + user_id: str, + filename: str, + session_id: Optional[str], + version: Optional[int], + ) -> Optional[ArtifactVersion]: + artifact_dir = self._artifact_dir( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + ) + versions = _list_versions_on_disk(artifact_dir) + if not versions: + return None + if version is None: + version_to_read = versions[-1] + else: + if version not in versions: + return None + version_to_read = version + + metadata_path = _metadata_path(artifact_dir, version_to_read) + metadata = _read_metadata(metadata_path) + return self._build_artifact_version( + app_name=app_name, + user_id=user_id, + session_id=session_id, + filename=filename, + version=version_to_read, + metadata=metadata, + ) + + +def _write_metadata( + path: Path, + *, + filename: str, + mime_type: Optional[str], + version: int, + canonical_uri: str, + custom_metadata: Optional[dict[str, Any]], +) -> None: + """Persists metadata describing an artifact version.""" + metadata = FileArtifactVersion( + file_name=filename, + mime_type=mime_type, + canonical_uri=canonical_uri, + version=version, + # Persist caller supplied metadata for feature parity with other + # artifact services (e.g. GCS). + custom_metadata=dict(custom_metadata or {}), + ) + path.write_text( + metadata.model_dump_json(by_alias=True, exclude_none=True), + encoding="utf-8", + ) + + +def _read_metadata(path: Path) -> Optional[FileArtifactVersion]: + """Loads a metadata payload from disk.""" + if not path.exists(): + return None + try: + return FileArtifactVersion.model_validate_json( + path.read_text(encoding="utf-8") + ) + except ValidationError as exc: + logger.warning("Failed to parse metadata at %s: %s", path, exc) + return None + except ValueError as exc: + logger.warning("Invalid metadata JSON at %s: %s", path, exc) + return None diff --git a/tests/unittests/artifacts/test_artifact_service.py b/tests/unittests/artifacts/test_artifact_service.py index 4102cd2281..007b18ecf7 100644 --- a/tests/unittests/artifacts/test_artifact_service.py +++ b/tests/unittests/artifacts/test_artifact_service.py @@ -12,17 +12,24 @@ # See the License for the specific language governing permissions and # limitations under the License. +# pylint: disable=missing-class-docstring,missing-function-docstring + """Tests for the artifact service.""" from datetime import datetime import enum +import json +from pathlib import Path from typing import Any from typing import Optional from typing import Union from unittest import mock from unittest.mock import patch +from urllib.parse import unquote +from urllib.parse import urlparse from google.adk.artifacts.base_artifact_service import ArtifactVersion +from google.adk.artifacts.file_artifact_service import FileArtifactService from google.adk.artifacts.gcs_artifact_service import GcsArtifactService from google.adk.artifacts.in_memory_artifact_service import InMemoryArtifactService from google.genai import types @@ -35,6 +42,7 @@ class ArtifactServiceType(Enum): + FILE = "FILE" IN_MEMORY = "IN_MEMORY" GCS = "GCS" @@ -159,22 +167,34 @@ def mock_gcs_artifact_service(): return GcsArtifactService(bucket_name="test_bucket") -def get_artifact_service( - service_type: ArtifactServiceType = ArtifactServiceType.IN_MEMORY, -): - """Creates an artifact service for testing.""" - if service_type == ArtifactServiceType.GCS: - return mock_gcs_artifact_service() - return InMemoryArtifactService() +@pytest.fixture +def artifact_service_factory(tmp_path: Path): + """Provides an artifact service constructor bound to the test tmp path.""" + + def factory( + service_type: ArtifactServiceType = ArtifactServiceType.IN_MEMORY, + ): + if service_type == ArtifactServiceType.GCS: + return mock_gcs_artifact_service() + if service_type == ArtifactServiceType.FILE: + return FileArtifactService(root_dir=tmp_path / "artifacts") + return InMemoryArtifactService() + + return factory @pytest.mark.asyncio @pytest.mark.parametrize( - "service_type", [ArtifactServiceType.IN_MEMORY, ArtifactServiceType.GCS] + "service_type", + [ + ArtifactServiceType.IN_MEMORY, + ArtifactServiceType.GCS, + ArtifactServiceType.FILE, + ], ) -async def test_load_empty(service_type): +async def test_load_empty(service_type, artifact_service_factory): """Tests loading an artifact when none exists.""" - artifact_service = get_artifact_service(service_type) + artifact_service = artifact_service_factory(service_type) assert not await artifact_service.load_artifact( app_name="test_app", user_id="test_user", @@ -185,11 +205,16 @@ async def test_load_empty(service_type): @pytest.mark.asyncio @pytest.mark.parametrize( - "service_type", [ArtifactServiceType.IN_MEMORY, ArtifactServiceType.GCS] + "service_type", + [ + ArtifactServiceType.IN_MEMORY, + ArtifactServiceType.GCS, + ArtifactServiceType.FILE, + ], ) -async def test_save_load_delete(service_type): +async def test_save_load_delete(service_type, artifact_service_factory): """Tests saving, loading, and deleting an artifact.""" - artifact_service = get_artifact_service(service_type) + artifact_service = artifact_service_factory(service_type) artifact = types.Part.from_bytes(data=b"test_data", mime_type="text/plain") app_name = "app0" user_id = "user0" @@ -238,11 +263,16 @@ async def test_save_load_delete(service_type): @pytest.mark.asyncio @pytest.mark.parametrize( - "service_type", [ArtifactServiceType.IN_MEMORY, ArtifactServiceType.GCS] + "service_type", + [ + ArtifactServiceType.IN_MEMORY, + ArtifactServiceType.GCS, + ArtifactServiceType.FILE, + ], ) -async def test_list_keys(service_type): +async def test_list_keys(service_type, artifact_service_factory): """Tests listing keys in the artifact service.""" - artifact_service = get_artifact_service(service_type) + artifact_service = artifact_service_factory(service_type) artifact = types.Part.from_bytes(data=b"test_data", mime_type="text/plain") app_name = "app0" user_id = "user0" @@ -269,11 +299,16 @@ async def test_list_keys(service_type): @pytest.mark.asyncio @pytest.mark.parametrize( - "service_type", [ArtifactServiceType.IN_MEMORY, ArtifactServiceType.GCS] + "service_type", + [ + ArtifactServiceType.IN_MEMORY, + ArtifactServiceType.GCS, + ArtifactServiceType.FILE, + ], ) -async def test_list_versions(service_type): +async def test_list_versions(service_type, artifact_service_factory): """Tests listing versions of an artifact.""" - artifact_service = get_artifact_service(service_type) + artifact_service = artifact_service_factory(service_type) app_name = "app0" user_id = "user0" @@ -308,11 +343,18 @@ async def test_list_versions(service_type): @pytest.mark.asyncio @pytest.mark.parametrize( - "service_type", [ArtifactServiceType.IN_MEMORY, ArtifactServiceType.GCS] + "service_type", + [ + ArtifactServiceType.IN_MEMORY, + ArtifactServiceType.GCS, + ArtifactServiceType.FILE, + ], ) -async def test_list_keys_preserves_user_prefix(service_type): +async def test_list_keys_preserves_user_prefix( + service_type, artifact_service_factory +): """Tests that list_artifact_keys preserves 'user:' prefix in returned names.""" - artifact_service = get_artifact_service(service_type) + artifact_service = artifact_service_factory(service_type) artifact = types.Part.from_bytes(data=b"test_data", mime_type="text/plain") app_name = "app0" user_id = "user0" @@ -358,9 +400,11 @@ async def test_list_keys_preserves_user_prefix(service_type): @pytest.mark.parametrize( "service_type", [ArtifactServiceType.IN_MEMORY, ArtifactServiceType.GCS] ) -async def test_list_artifact_versions_and_get_artifact_version(service_type): +async def test_list_artifact_versions_and_get_artifact_version( + service_type, artifact_service_factory +): """Tests listing artifact versions and getting a specific version.""" - artifact_service = get_artifact_service(service_type) + artifact_service = artifact_service_factory(service_type) app_name = "app0" user_id = "user0" session_id = "123" @@ -443,9 +487,11 @@ async def test_list_artifact_versions_and_get_artifact_version(service_type): @pytest.mark.parametrize( "service_type", [ArtifactServiceType.IN_MEMORY, ArtifactServiceType.GCS] ) -async def test_list_artifact_versions_with_user_prefix(service_type): +async def test_list_artifact_versions_with_user_prefix( + service_type, artifact_service_factory +): """Tests listing artifact versions with user prefix.""" - artifact_service = get_artifact_service(service_type) + artifact_service = artifact_service_factory(service_type) app_name = "app0" user_id = "user0" session_id = "123" @@ -504,9 +550,11 @@ async def test_list_artifact_versions_with_user_prefix(service_type): @pytest.mark.parametrize( "service_type", [ArtifactServiceType.IN_MEMORY, ArtifactServiceType.GCS] ) -async def test_get_artifact_version_artifact_does_not_exist(service_type): +async def test_get_artifact_version_artifact_does_not_exist( + service_type, artifact_service_factory +): """Tests getting an artifact version when artifact does not exist.""" - artifact_service = get_artifact_service(service_type) + artifact_service = artifact_service_factory(service_type) assert not await artifact_service.get_artifact_version( app_name="test_app", user_id="test_user", @@ -519,9 +567,11 @@ async def test_get_artifact_version_artifact_does_not_exist(service_type): @pytest.mark.parametrize( "service_type", [ArtifactServiceType.IN_MEMORY, ArtifactServiceType.GCS] ) -async def test_get_artifact_version_out_of_index(service_type): +async def test_get_artifact_version_out_of_index( + service_type, artifact_service_factory +): """Tests loading an artifact with an out-of-index version.""" - artifact_service = get_artifact_service(service_type) + artifact_service = artifact_service_factory(service_type) app_name = "app0" user_id = "user0" session_id = "123" @@ -544,3 +594,178 @@ async def test_get_artifact_version_out_of_index(service_type): filename=filename, version=3, ) + + +@pytest.mark.asyncio +async def test_file_metadata_camelcase(tmp_path, artifact_service_factory): + """Ensures FileArtifactService writes camelCase metadata without newlines.""" + artifact_service = artifact_service_factory(ArtifactServiceType.FILE) + artifact = types.Part.from_bytes( + data=b"binary-content", mime_type="application/octet-stream" + ) + await artifact_service.save_artifact( + app_name="myapp", + user_id="user123", + session_id="sess789", + filename="docs/report.txt", + artifact=artifact, + ) + + metadata_path = ( + tmp_path + / "artifacts" + / "apps" + / "myapp" + / "users" + / "user123" + / "sessions" + / "sess789" + / "artifacts" + / "docs" + / "report.txt" + / "versions" + / "0" + / "metadata.json" + ) + raw_metadata = metadata_path.read_text(encoding="utf-8") + assert "\n" not in raw_metadata + + metadata = json.loads(raw_metadata) + payload_path = (metadata_path.parent / "report.txt").resolve() + expected_canonical_uri = payload_path.as_uri() + create_time = metadata.pop("createTime", None) + assert create_time is not None + assert metadata == { + "fileName": "docs/report.txt", + "mimeType": "application/octet-stream", + "canonicalUri": expected_canonical_uri, + "version": 0, + "customMetadata": {}, + } + parsed_canonical = urlparse(metadata["canonicalUri"]) + canonical_path = Path(unquote(parsed_canonical.path)) + assert canonical_path.name == "report.txt" + assert canonical_path.read_bytes() == b"binary-content" + + +@pytest.mark.asyncio +async def test_file_list_artifact_versions(tmp_path, artifact_service_factory): + """FileArtifactService exposes canonical URIs and metadata for each version.""" + artifact_service = artifact_service_factory(ArtifactServiceType.FILE) + artifact = types.Part.from_bytes( + data=b"binary-content", mime_type="application/octet-stream" + ) + custom_metadata = {"origin": "unit-test"} + await artifact_service.save_artifact( + app_name="myapp", + user_id="user123", + session_id="sess789", + filename="docs/report.txt", + artifact=artifact, + custom_metadata=custom_metadata, + ) + + versions = await artifact_service.list_artifact_versions( + app_name="myapp", + user_id="user123", + session_id="sess789", + filename="docs/report.txt", + ) + assert len(versions) == 1 + version_meta = versions[0] + assert version_meta.version == 0 + version_payload_path = ( + tmp_path + / "artifacts" + / "apps" + / "myapp" + / "users" + / "user123" + / "sessions" + / "sess789" + / "artifacts" + / "docs" + / "report.txt" + / "versions" + / "0" + / "report.txt" + ).resolve() + assert version_meta.canonical_uri == version_payload_path.as_uri() + assert version_meta.custom_metadata == custom_metadata + parsed_version_uri = urlparse(version_meta.canonical_uri) + version_uri_path = Path(unquote(parsed_version_uri.path)) + assert version_uri_path.read_bytes() == b"binary-content" + + fetched = await artifact_service.get_artifact_version( + app_name="myapp", + user_id="user123", + session_id="sess789", + filename="docs/report.txt", + version=0, + ) + assert fetched is not None + assert fetched.version == version_meta.version + assert fetched.canonical_uri == version_meta.canonical_uri + assert fetched.custom_metadata == version_meta.custom_metadata + + latest = await artifact_service.get_artifact_version( + app_name="myapp", + user_id="user123", + session_id="sess789", + filename="docs/report.txt", + ) + assert latest is not None + assert latest.version == version_meta.version + assert latest.canonical_uri == version_meta.canonical_uri + assert latest.custom_metadata == version_meta.custom_metadata + + +@pytest.mark.asyncio +@pytest.mark.parametrize( + ("filename", "session_id"), + [ + ("../escape.txt", "sess123"), + ("user:../escape.txt", "sess123"), + ("/absolute/path.txt", "sess123"), + ("user:/absolute/path.txt", None), + ], +) +async def test_file_save_artifact_rejects_out_of_scope_paths( + tmp_path, filename, session_id +): + """FileArtifactService prevents path traversal outside of its storage roots.""" + artifact_service = FileArtifactService(root_dir=tmp_path / "artifacts") + part = types.Part(text="content") + with pytest.raises(ValueError): + await artifact_service.save_artifact( + app_name="myapp", + user_id="user123", + session_id=session_id, + filename=filename, + artifact=part, + ) + + +@pytest.mark.asyncio +async def test_file_save_artifact_rejects_absolute_path_within_scope(tmp_path): + """Absolute filenames are rejected even when they point inside the scope.""" + artifact_service = FileArtifactService(root_dir=tmp_path / "artifacts") + absolute_in_scope = ( + tmp_path + / "artifacts" + / "apps" + / "myapp" + / "users" + / "user123" + / "artifacts" + / "diagram.png" + ) + part = types.Part(text="content") + with pytest.raises(ValueError): + await artifact_service.save_artifact( + app_name="myapp", + user_id="user123", + session_id=None, + filename=str(absolute_in_scope), + artifact=part, + )